2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901157383418793070215408914993488416750924476146066808226480016847741185374234544243710753907774499206955170276183860626133138458300075204493382656029760673711320070932870912744374704723069697720931014169283681902551510865746377211125238978442505695369677078544996996794686445490598793163688923009879312773617821542499922957635148220826989519366803318252886939849646510582093923982948879332036250944311730123819706841614039701983767932068328237646480429531180232878250981945581530175671736133206981125099618188159304169035159888851934580727386673858942287922849989208680582574927961048419844436346324496848756023362482704197862320900216099023530436994184914631409343173814364054625315209618369088870701676839642437814059271456354906130310720851038375051011574770417189861068739696552126715468895703503540212340784981933432106817012100562788023519303322474501585390473041995777709350366041699732972508868769664035557071622684471625607988265178713419512466520103059212366771943252786753985589448969709640975459185695638023637016211204774272283648961342251644507818244235294863637214174023889344124796357437026375529444833799801612549227850925778256209262264832627793338656648162772516401910590049164499828931505660472580277863186415519565324425869829469593080191529872117255634754639644791014590409058629849679128740687050489585867174798546677575732056812884592054133405392200011378630094556068816674001698420558040336379537645203040243225661352783695117788386387443966253224985065499588623428189970773327617178392803494650143455889707194258639877275471096295374152111513683506275260232648472870392076431005958411661205452970302364725492966693811513732275364509888903136020572481765851180630364428123149655070475102544650117272115551948668508003685322818315219600373562527944951582841882947876108526398139559900673764829224437528718462457803619298197139914756448826260390338144182326251509748279877799643730899703888677822713836057729788241256119071766394650706330452795466185509666618566470971134447401607046262156807174818778443714369882185596709591025968620023537185887485696522000503117343920732113908032936344797273559552773490717837934216370120500545132638354400018632399149070547977805669785335804896690629511943247309958765523681285904138324116072260299833053537087613893963917795745401613722361878936526053815584158718692553860616477983402543512843961294603529133259427949043372990857315802909586313826832914771163963370924003168945863606064584592512699465572483918656420975268508230754425459937691704197778008536273094171016343490769642372229435236612557250881477922315197477806056967253801718077636034624592787784658506560507808442115296975218908740196609066518035165017925046195013665854366327125496399085491442000145747608193022120660243300964127048943903971771951806990869986066365832322787093765022601492910115171776359446020232493002804018677239102880978666056511832600436885088171572386698422422010249505518816948032210025154264946398128736776589276881635983124778865201411741109136011649950766290779436460058519419985601626479076153210387275571269925182756879893027617611461625493564959037980458381823233686120162437365698467037858533052758333379399075216606923805336988795651372855938834998947074161815501253970646481719467083481972144888987906765037959036696724949925452790337296361626589760394985767413973594410237443297093554779826296145914429364514286171585873397467918975712119561873857836447584484235555810500256114923915188930994634284139360803830916628188115037152849670597416256282360921680751501777253874025642534708790891372917228286115159156837252416307722544063378759310598267609442032619242853170187817729602354130606721360460003896610936470951414171857770141806064436368154644400533160877831431744408119494229755993140118886833148328027065538330046932901157441475631399972217038046170928945790962716622607407187499753592127560844147378233032703301682371936480021732857349359475643341299430248502357322145978432826414216848787216733670106150942434569844018733128101079451272237378861260581656680537143961278887325273738903928905068653241380627960259303877276977837928684093253658807339884572187460210053114833513238500478271693762180049047955979592905916554705057775143081751126989851884087185640260353055837378324229241856256442550226721559802740126179719280471396006891638286652770097527670697770364392602243728418408832518487704726384403795301669054659374616193238403638931313643271376888410268112198912752230562567562547017250863497653672886059667527408686274079128565769963137897530346606166698042182677245605306607738996242183408598820718646826232150802882863597468396543588566855037731312965879758105012149162076567699506597153447634703208532156036748286083786568030730626576334697742956346437167093971930608769634953288468336130388294310408002968738691170666661468000151211434422560238744743252507693870777751932999421372772112588436087158348356269616619805725266122067975406210620806498829184543953015299820925030054982570433905535701686531205264956148572492573862069174036952135337325316663454665885972866594511364413703313936721185695539521084584072443238355860631068069649248512326326995146035960372972531983684233639046321367101161928217111502828016044880588023820319814930963695967358327420249882456849412738605664913525267060462344505492275811517093149218795927180019409688669868370373022004753143381810927080300172059355305207007060722339994639905713115870996357773590271962850611465148375262095653467132900259943976631145459026858989791158370934193704411551219201171648805669459381311838437656206278463104903462939500294583411648241149697583260118007316994373935069662957124102732391387417549230718624545432220395527352952402459038057445028922468862853365422138157221311632881120521464898051800920247193917105553901139433166815158288436876069611025051710073927623855533862725535388309606716446623709226468096712540618695021431762116681400975952814939072226011126811531083873176173232352636058381731510345957365382235349929358228368510078108846343499835184044517042701893819942434100905753762577675711180900881641833192019626234162881665213747173254777277834887743665188287521566857195063719365653903894493664217640031215278702223664636357555035655769488865495002708539236171055021311474137441061344455441921013361729962856948991933691847294785807291560885103967819594298331864807560836795514966364489655929481878517840387733262470519450504198477420141839477312028158868457072905440575106012852580565947030468363445926525521370080687520095934536073162261187281739280746230946853678231060979215993600199462379934342106878134973469592464697525062469586169091785739765951993929939955675427146549104568607020990126068187049841780791739240719459963230602547079017745275131868099822847308607665368668555164677029113368275631072233467261137054907953658345386371962358563126183871567741187385277229225947433737856955384562468010139057278710165129666367644518724656537304024436841408144887329578473484900030194778880204603246608428753518483649591950828883232065221281041904480472479492913422849519700226013104300624107179715027934332634079959605314460532304885289729176598760166678119379323724538572096075822771784833616135826128962261181294559274627671377944875867536575448614076119311259585126557597345730153336426307679854433857617153334623252705720053039882894990342595662329757824887350292591668258944568946559926584547626945287805165017206747854178879822768065366506419109734345288783386217261562695826544782056729877564263253215942944180399432170000905426507630955884658951717091476074371368933194690909819045012903070995662266203031826493657336984195557769637876249188528656866076005660256054457113372868402055744160308370523122425872234388541231794813885500756893811249353863186352870837998456926199817945233640874295911807474534195514203517261842008455091708456823682008977394558426792142734775608796442792027083121501564063413416171664480698154837644915739001212170415478725919989438253649505147713793991472052195290793961376211072384942906163576045962312535060685376514231153496656837151166042207963944666211632551577290709784731562782775987881364919512574833287937715714590910648416426783099497236744201758622694021594079244805412553604313179926967391575424192966073123937635421392306178767539587114361040894099660894714183406983629936753626215452472984642137528910798843813060955526227208375186298370667872244301957937937860721072542772890717328548743743557819665117166183308811291202452040486822000723440350254482028342541878846536025915064452716577000445210977355858976226554849416217149895323834216001140629507184904277892585527430352213968356790180764060421383073087744601708426882722611771808426643336517800021719034492342642662922614560043373838683355553434530042648184739892156270860956506293404052649432442614456659212912256488935696550091543064261342526684725949143142393988454324863274618428466559853323122104662598901417121034460842716166190012571958707932175696985440133976220967494541854071184464339469901626983516078489245140589409463952678073545797003070511636825194877011897640028276484141605872061841852971891540196882532893091496653457535714273184820163846448324990378860690080727093276731275819665639411489617168329804551397295066876047409154204284299935410258291135022416907694316685742425225090269390348148564513030699251995904363840284292674125734224477655841778861717372654620854982944989467873509295816526320722589923687684570178230380965678831122893058091405726108658848458731016581511675333276748870148291674197015125597825727074064318086014281490241467804723275976842696339357735429301867394397163886117642090040686633988568416810038723892144831760701166845038872123643670433140911557332801829779887365909166596124020217785588548761761619893707943800566633648843650891448055710397652146960276625835990519870423001794655367885674302859746001437854832370687011900784994049309189191816493272597740300748796814848823429320230121280323274603922196875283405169069741942576146739781107154641862733690915849731850111839604825335187484389231772926135430249325628963713619772854566229244616444972845978677115741256703078718851093363444801496752406185365695320741705334867827548278154155619669110551014727990403868972204655508331707823948087859905019475631089841241446728218654599715966390156419417518209359326163168883801327587526014605076760983926257264111201352885913178482994756824725648855333572797722055435681263025357482165854140008053148206971372621497555760518904816223767904149267426000710459226953148351881374638871042735447676235779339939706323966049691453032738878745579059349377723201429548033450006952569809352828877837106705855677494813738586303857628230406940056653405848875270053088324591821834943180498341996399814587734358631159405704436835152853836094429559643606760902217418968835481316439974377641583652422346426195973904554506806952328507518687194490647677918867203064186307510535121498510512073138466487175475183829799901893177515506399810164664145921024068382946032085355540581471592732206775676692136640815059008069525406106285364082932766219319399338616238360691117677854482361293268581999652392754884274354144028845364555951247355461394031549520973970518962401579768326394506332304521926450496517354667756992957189896904709027302885449454166997919929480382549802859460290527631455803165140662291712234293758061439934849143621079935767373179489642524888137204355792875113858569733819760835244232404667780209483996399466848337747067254836188482730006483191638260221105552212467333231844630055044818499169966220877461402161570210296033185887273332987793525701823938612440268683395558706077581699543984695685406711744449324795195721594196458637361269155264575747869859642421765928968623835063704339398116713975447362286255068036826641355414480489977213731741191999700172939073033508690209225191244473932783761563218108428982077069741387070532661176836986477417871802027294129823108887968318808543673278068797716591116542244538066258617117294980382488799865040615639756299369628093581897614910171453435566595427570641944088338168411111662007597872441370823339178861147082286575310785366746950184621407364939173662549377830140743026684221503351177364718538723240404210379077502660201148149354822289166636407824501668153412135052785785393326061102498022730936367402135153864316930152674605360643517321547010914406508788236367642368311873909374642326090216463656275539768340194829327957506243996452725786244003759834220508089351290231224759706441056783618708771723335554654825989068612014101072224659040085537982352538851716235182565184822031252149507003783004112162121260527260599443204430562745229161288917668141606391312359753503903200775295873924124764518508091639114592960711563442043471335447209811784614510778723991406062902282766643092649005922498102910687594345338583303911787475759770659535709796400122240921990311582292596679131539915614380701292607801970225896629233681543124994122594600233994722281710566039318772268004938331489803385489094686851307892920642428191747958661999444111962087304980643850068526202584328420855823385669366498497208170461353761635840153428406741185875815465145982702286766718553093119233401912861706133648731831975608125694600894029530944291195902959685639230376899763274622839007354571445964141082292859222393328362101928229372435902830038844457013837716320565183519701001157220109569978904849644534346121292249647323561263219511557015658244276615993264631558066720531275969485380573642083849188870951760522878173394627476446568589009362661233111529108160415241002141959373497864316615567327027921095935430555797326605546779635520053783046195406369718429161685827341222171458858708142740902481854464217748769250933287856706746773812267528316535592452045780705413525769032535227389638474956462559403789249250076243868937764753101023237467337714745816255306980324990336764554303052745615129612145859444321507490514914539509810013887379263799648737283964168975551322759620118382486507469854920380976919326064376087432093856028156428497565493079097338541855835157894098140076918923890630905425348838968317629041202129491671958119357912031625143440965031328352167280213724159473440954983161383225054867081722214751384251667904454166173032008203309028954888085167972584958134071321805339888281393460498505323404725950972143314925866042485114058195797115641914588428330005256847768743059163904943068713431187961896374755033628209399493436903210319768981120555953694654247041733238953940460353253967583543953505167202616479613477909123279952649290451511483079233693821660107028726519381438448445326395173941101311525027504657493430637665418661289152644469262228843662994627324679587363835019371427864713980540382155134632237020715331348870831741465914924063594930209211220526103123906829413456967859585183934913823408842743124190991528708043328091329930789368671274139228900330699958759218152976124824091169515877899640903525773459382482320530555672380950222667904396142318529919891810655544124772045085102100715223523427925312669301082706339423217625700763231391593497099469332410139087791616512268044148097656189797350431513960669132583790337486208366954750832803187867077511775256639634792592197335779495554986552141933981702686399873883470102552620523123172152540625716367712700107609122815283265089843595689759610383721577268311707345522501941217015413187936518185020208773269061335921820007623272695032838273912438281981708711681089511878967467070733778695925655427133400523267060400043488434329027603604980278621607494696549892104744439278719345367017986739208038456337233119838558626380085163455971944419943446247611238446176157362420159350785208256006041015568898995017325543372980735616998611019084720966007083202805699170425901038769286583365577287586842504926903709342620280223998618034002113207421986429173836791762328264446457563303365567773748086441099691418277742534170109884358531893391759345115740238472929090154685591637926961968410006765983997449720472878818312002333832980305678654808714764645128242644782166442666167320960125647945148271256713266970673671446177956437523917429285039870225837340698523091904649672602434112703456111141498357839017934997137909136967064976371272484666132799082543054492955285949327938183416078270913266808656559211027337467001325834287152408356615221655749984312362782871066494015646701419437138238634547296069786933359731095371264994162826564637084905801515382053383265112895049385664687529211359322202656818564182608275387900024079158926460284908949222999661674377313477761341509652624483327093438984120569261451088578122491396169125342029181398986839013357958576244351940089439551805547465540000517662402028259448288338118863817495942848920135200909510078649418682560092739776675856425983785874977766695633501707485790272487013702642032839657563480108183561823721770822364231865915958836694873224117265044872683923284530109916775183768315998212632371238543573126812024451754018521326637405388029012497281808950215531006735981844304291052884593230647255904423559605519788393259303395729346630551604309237856772292935372084166931345752840118737468546916206489911647269094289829710656068018058078436004618662235628745913851859044162506632222495614487244138138497637971026760208455318241119639279410696194654264800067617276181156300636443211162248373791056236113588363345501022861705178904405704195778598333484633179219044946529230214692597565663899658937477287513933771055698024557574361905017724662145875923744186575300649980566883769642298255011950658378431252321353093712352439691496623101103282435700657814876772991609411539540633627524237129355499267134850315782388995675452879155784204831057493300601979582077395585228073070489509362355507698378819263571417793387502163443910141875767119389144162771096028594158097199134293132951459243736364564730350373745385034892861131416380947523017450887848856457412750033533034161380965600431058605483557739466250332300343415878146346021692350792161110131489482818953910289168163287093097131841398154276788180676286509780857182621170031400033773015815363341490932370347036375133545376345210503709954529420552320788174493709376770560093063536455109134816273782049856570556087842119640399723445564586076895155696868993848964391952252323097033010372772277108705649129661210614940727824420334140574414464599682369661188784116562903551178399440709617725671649197901681952345238074462998776648248737533130181427639105192346850819790017965199070504908652374428416527766114253515386651627813160909648028012344933724278669308948279134654439319652541548294945778757585994820991818245224493120777682508307682823350015970404191995605097053646964731424484538258881126027539095488526397086523390529418296918023571205453282318092703564917433719320806287313035896405708737799678451747405153174013848780828810060463889367116404777559854812639075047472950126094199903737212462016770305177903529527931687663050998374418598034988212393409198050551038215398276772913731380067153392401269545863764220650978108529076390797278413017645532475270737887640693664200121947457023582954813657818098679440202202808226379570067553935758080863189320758644442066446916493344676981808117165686652133896861735924509208014653125297779661371986959164518694323242464044016723819780207283944182645021831314833660193848919723178171543721921039466384737156302267018013435159304428538489418256788707212385205972638592249347636231221881137063075069182601096890692514171425142181534915321290777237485066354891708928507602343517682183550088296474106558148820492395337022705367056307503174997881870099892510201780156010422778362836443237297799299351609258845157720552328969783331264276712910939931037734259105923032776526676418748424410765644477670977903923249584163485277351719810646738371427429744689923204069325060628344689375430167878153206160090576934049061461766070943801109154432619290007452098959592011594123241022748454826054043618718363302689928586235821456438796952102352666733724344230915771832775658002119282703910423919664269111553335945696857828170203254955525288754644660746202947661160044355516047350442921279163587484735015902155221203882811680214138658651684645699648100156337412550984797301386562754601612792463597836614801638716027944054827101962907745436280926125675071817736417497632544367735036325800040429199069631173977878750815602273688249670776355598692849016287686996280537901818481488108339469000163807910759607455046889126867928123911488800367207297308013544313253477130941867171786075229813735391267728125939582205242899913716906856504215750567299912741771492796088315023586978161908949084877177225038608726183849479397574406649127605188781242336831254672783315131867589156683006792102159473368585912013953603016781104134444110309033887615204882969091046891676715553733466225455759752026247712427962259832784058335858976714742057240474397202328959037261486883880031741464902038435903585279931238710428459816089961019456916469838377182672646852648691729484141530046040042995850351641018990275293668674318349554474581241401907546816077709779205793838953781921288474099295370405469622265472788072486855080465710431238548733516530705707845842433355509582219128627972054554662670991319023703117796908927866231126613376711785129430593232816058265356238481641921447325437310020627384668123516910163592525882568064389463898808727352844064622081495138622752399389387349050826254724177817025820441298537604998278990200834983873629924981257423545684390230122617336658205467856711479730650770354756205674283001874730191973108811575167770050714320127263546019124608004516081086418355396699469369473222716707489728504641953929664347252547243576591929699490616701890614336169070561482809803632434541282299682759802266940456421813286245175496521472216208398245945766133427105649571935644315617745008283769357009954195418390291510331879339076142074670288679685949854397894573007689398900700739246974618128557646622654129132040522790712128206537750582800408971634671637090249067747363091369040026156464321595609108510924451624544201414426416601813859900174174082442453786101584333617772925806111591920084140918881912088582076270114836717607490469809144430572622111045833007893316981916039171506227929862827094462759150096832263450737254513668581724834984700808401638682097263713452054398022778663372932908299140106455897616974559784092114091676840202693702292317433344999869018415108889931651250900011637191149948520248215863962162949817530946230476048323993793910021425329964762351635690094450860580912024599046121186233182786144647277955232186359165518830579306577033314985100683571356243418818844057800288440181290313786537948696146304677269145529536901541670258380324778422724179945136535822609716525883567121335195468383353498015032693597981674632318476283063405883247312289512579442676398779467131210427633808726957386093146315391485487925140288850251897880760238389956156848503919958550292560541767676631453540584962967967813494201160033258744314387462483138502149804016819407956872192684626172874034809679319499656042991902818105976032632517464050164546062667655290106398687036682632990505777062663978684535843840576732982681634486467074399909175040188923192675575183540549560177329071272191345775249057715127733584233140083560809269622988941630472877800547437984985455628707299684073829372186238317665247160909671920072376588942261865504875526145578558987730087032347264183848310403948187436162244552861632876285411759464604970277244907992751464457929825498022586010017724378401677231668020041625472441794155478105541780367735533544670303264696194475608128319330956796855827719320312059416166939020496653521896728226719726400294933073847175447537619370178829763824872333618134994145416947365492548406337936743615410815934649604316035443547377288023610477431153307851599029777714996102746277697596124888794486098633494228528476513102779262797439819576175055913009933773682405109025837593451700153405222661440772370508900444966132958595360205560340094928209438629946188347909328941610988565949542131143356088102394237060871080264659132035601218759337916396664372828367523283916888653737513357948598601075693748896456571872925404485086244499478162738425172293439601372124062867836366758453319047439547406640152608719409157439552827739043038687727282620656631293874598753177499737992930432943717638018562800611416195639424143122543970991635651028483157654270379068371757648702300523881974987466368562926550582228877132217814404895380996810721430123946935309315240540812157054022744145218765419014283867442600118890417245705374707555505816328316872471102203537271661123048573404608792725016947010678311789270955272532221252243616733433663847565909497282218094186840742383515678688934211482039058242243242646436302014417879820221162484716574682911463154075637702227401358411090760784647800701827663362279781045463311312940448335701348695851652674595151876800333955224105481817678677721527982702501171958165776035497329237247320678536902575362339712168843908788792621882023055299371323971943330835362312488703864161943615065295512673342071985022597714086381220159808943635618085970100800816225574550391013219819790455200496185837777210480466355338066165170235950971332036315789456444878009456203697849734599020046068865727018658677578427585306457066171271949673710839506032675015324359090294915169737381108979347822976841001176579870981857251313722677497066092504818768355160037146386859189130117368052187432654260637007105953644250627604582523368805525211815664175534306811815482678441693152844084610875882143176416498356631275187281829486556585242068522218307553061183933269341644594153426517786533979805808281588063007499528975582046866125908536787386033184429055106897786984177356031181116775638725899115168032365470029879896289861810145964713079161443695646909095187885743988217305838849808095230775693588516160277195214889983586323231273089098615607773860069840352678267853872159209362558178898134162474864564332110431948214212997931881046363995414965394415013838687483848702246818293918603195986679623634893092830878407124004310227061375913680565188613134583079907050036075883272488678793240933800718641528533179435350734018911936385467300006604537837844724692888305469790001312489521004469490320588382949236139192843052491678330129801922551570503785218105529616236375236479626857516600665393641422730630016486526138918422435017974559936167940633035221118290715975388218397775528129815385701687022026202746786479166440307290184454979563998448368078519970882014077691992616749911483298218543827189462821653870648585886462216114103435703428788629790834188716062144300145332750297151046731560210000438695105837737797660034608876248616409386452521779352899475784962552439255986205214090523462508478304870464926883132894705538913572907069675995562985866695597216865060520728013421043557627791840217976266564845802615914071734770090394751680177099001293911378812485342559493128666534650337288463906499684606447419075243133239034049081952330443895590605478549546202632566768132624359250202495162756070809004364604214970256914885552650228103277621158422824332695286291376626754819935461181439133675797001412558701433194347640357253769143888996830882628446164255750340014289825576203863643841379065196129177773541836946762329829049812617176761915542925704384322399184822617443504701991712582146876831726460789596905699813532644359739651734733194847987580641379268854135525232757204573294772157068500169500469597583893735275386226649434564370716105115216171762375980509005532321548960628177943022686405795558457306005983764827033398594200985823514001795071045690191913590623041023367980809072401963126752689163621363510326480772329149508591512658121438233710729491480884723552863941959934556841563445779517270333742381299032601981605719711839506627582203218371360597180259408706155347131044822727168483955241059136059198124449784581108545112316681735348382537248253476367775817128672058651482853172735690698399351107634320913197803140316588973796283011784098064101750165110729329078321774875662893106503838060933728413992267333847782033020207005171889417064651462383667206327426443366121740117669149192355709056448030163422943018376552631084501725103075409426044096870662880662659005690824514076325991581644993614551724520570204430937223055502172222997062097492686097627874096264487720560430786348088857091434647932415362143031999656956107535704172072853342501713255588181132955040952178301394652164365942629607685705856985071571513172629289600725876015648405560886131654118359586287106654962825995351271932446357910465543891651509541873060710150344306095823022574559749442750676309263225299663382193952029279179732470945596910164029836830804263099104815675036235096549243025895752735214124451495424629722585101207078021101881067223479725793306531877134384667138075463834716354288549576109428418986017946587214444951988015508040425064521914849899204000073106723699446552460209087678823000643377256573850109698990581912909570798666994537650804079178524382220410705992788892677457520842875263779867303605612307107239225815047813791727312612348783340344738335736019732359466042737046352013271825924109060400976385858577169584195631095777485295798368447568031218748182028339418870763117316152898117564297113341814972180780404650776572044570828594174751149261793673799992201817893994333377311469119707378610419639864221660455889656832067013375057450388721113324367398402841886391476334916951140325834758415141703256901617849314557069041698580502177984976370147589148105432058549141006622017217197268789300121012674812702359408551626016894251114584996583155896604600915257978816703846259053832569205204257913789488275796032788775354668614418268277976512589535637614859944850497066384062661219571419110632460617741805772123816598724724322529690985336284407990300075945462815492355060864815579289619696170607152015898252997728035200026108888141765066362169059280215164291984840774461436178914151915179765378482826870187500302648676084332046585254705558824102546548060404373727718347690147206642344343742555141291785030324712634180765251878029255347740011048539969605499265080939106913376148418348845963656215266103322394174670643683405047499433398022856103130830384845712947673898562939376419144070365075446220611864991272496437998758065378502037531899726180144046677930501403015807092662132292736497186539528665675385721151336061144572228008511837578992195430634136923022931397511437024048302273576290399117944992484809150710024440784828665985794065255391410414973427802035201354199259776281781828253720229201081864494483492554217939827232793570958287485971267807831342861807504971757473737302962804773769089325589145981417248526582995108822300552232422185861913947951842201315533196343639226842591641686694381225371359607100317436519590277125716045884860448206744109352153279068160320542159679590664111201876185312567101502122394012856686084694359374081585364819125280049207240421721709139831231180540432770158356295136562746102488277064888650377651756788068724988616570948466657706745770002071443325255557365570831503200190829920965454987374197566086195334923129402639049309820147003711618294859399311999550704553811967112893677352499581820117747997886363932864058078108186573376681578938276564506429173966855795550531887153145523530703559947401862259881498546607377876987815423603970809774123615182459640268699796095645238285842359535646151854481657999664606482613966187203048391195602503811115509384202098945915557600838979899499645662625405141956107800902986670146352385320660325744668202594306188017730911092127411382691487843556793525728088755431646930772353637682260360801740406609971511768804349274891971330878229511237466326356353285173941894665109437457682707822099284680346841574431277398110441867620329544754680775111266636854799444609348099929518756664999022616860196720537491499512268236378958652454628134392893383651565369924131096381025591146439238052139078628935616609988364791756331767258565235910695203268959900548847534241605866898200674831631742863291196333991327090860650745952603571573230697121064234240815970683287076244371655327502287978025986909811112265588881515208374824500344630465059845696902761669582789829136135353062913314278818882493421364424178335193197865439402014653280834103417852724898790509199323692709965671335077119058999459519239906151561654803001453592125506964053452638234521559992105781913710301889792064088839747676671447273142544679235005246188492374553075757349027073424962988799969420945959610087025013294533253580456892857072412079659198092255505600619712835412702020725839941711755209208201510965095266851138975771508108494435082854587499129438575631156683245668279929918615390092558717168404956639919591540342183645372120236786086553647451756548793189256440852744891909181934116675835634397588860463494131118752410384254679379992035469104119354431132191360681296575685836117745646546748610619885914148057993187253675312434703354826375270813531055708180496424985846461479734675993159465147870250652710835087823506565323317977386566661816523900176649884854560549613002157761152558133961840270678149003502528768236078221073971023391468701597358685890152970103477805032921540143595952986834046574717562321966405154014779531674617262087273048206346524691099533273755610905783784559454691602236876896414259601646896471063480741099285464823530835401323329248640373180031952023174762065377261637174453605497266906017111767610477749716668901521638389743117141806222223457185679415072995262010862050847831274747919099968899372752290536747850205000386300365262188006709266741048060273419977566600294279410904000646542810744540076164295253624602614761804717443228899532858283977621846009676692675812703028065195354520531735368089545899021807831457758912802039700536331938211000954432412441979491929162052344213463956538407812094162148350011558836184211642839924540275907196215375701870670837310122461413620489265556681094670763865360830158476145125815885696100303370811970583444528746661988915346642448879119407114239401159869707957459463371702432684848646320189863528270923130470892156847582077530343876899787023234385843811250117140132657693205549118601535195516546279411755939679479588103339354132897025288935337481062578756203642942702575121211373302138119513957564191226851559624762032820387263420662273478682230365220196557293259050681348492922996472482293597878427209455782673299758538185364423706173535176530603968010878994905066544915445779521660385523980137981043405641824033961624949104547121048394392009459146475424247859910969000465413710916300967859515639473321909345118386699646227888558173532213268766349580591237612512030109838678411957258877992060412600498658950272471331467637222043883985583477701125994246912083085956667875319424651314443899711959681059379575321555242046594100814183511201741968534326723432718680996250454324756887020553419691995453009526443984463843465988304182629322392956126100458846442442850115515577659357803795650268061307217586720485417971578964015542768810904758995646054883629891402265800261341580394803579710190041515476550183917557726778971487934773727475257438981587050407019682151012188260880400845513327951628412806796789655701639170677798415291493974031581678968654488413190463683321791150591078138982610262719796968264111799186560389938954189284888517501225047547789995085440839838007254314688429884126160426822488230977885564957654240171145103939279802909976049044288321989767513205351152305456664671437959319152726802782102415406297958288284663556235809867256382005652155199517935510691277105385526619269035260813677176664350712134539837113575009758544059395586617378282971205446931822604016703085309116579731132595161017491934682500632857770046869871772552265257084287457330398597442306397518372099753390550958836236428144932474605224240519728251537875419627593274362788192837402531856685450408939294010405616668676644028682116072948303052364655609553510799871850413521213215347137706676813962114438916324032357415737737879088382676184587563610264351829518153924552117290229852785180255984784071796079041144720414760917658043029845017468679812775849717317332873052811349695916683878770723159683343225090702040190305035958919946666520375302719237642525529103479503438163577216981154643292456089511587320126754249757105208943626395013829621522140336210654228218767395801212864427885474919289769593157668919873051763886984615033545948985418495502516906168884191228733855226999768226096450075045000961168661291710931802823550425536539971660547539073489151896500274423289811817092482736108638015760072406016495470823313493615824351282990504054053339925770713210115037138986950767134479407480978454163281104063508048633935552384057355808637187635302618679717256081553287164361114748751070335129139235954529514074379431449009508099328721532351959996167502975324759319099380129686403797835535590713557083699473119235385310517366691540873124672334407025250069180267477250789589034488566730814872994648077864977093619693892908917182281340028455525139173559784561503531446034094412115120017386972614667869337331543410075875149082958227569193505421841064482649519438042405432553459652483737853106579790379775050314364746514224847688313234797626736898554749442779499165601085282576189643744646568197893194220775368246611104276719364818363605341087489710668663188050265559295681239596804492951666154098026107816916894187643533634494829001259293668405913700595269149344218618917421425610718968466263358744149769739215663927676877201451533022418531253084427272457711615055505190762762500165221662747962574244254205467857674781909594865005757110162648478337411980416259408133272299058914864221279680429847253562372028878300517885397379094552651351440731300498694534032459842369346270602425794325636606405975494712390923724581261545825266673047023193598665233788562442291882784364404346280948882887121019686427363704616392974856167800797799596968433677303524830474782406699282771400690316607099514731541919199114531825439062945732986866135248865005747802519776074426607983002915730305231990521857186285436875778609157269252325731716656252742758084606201770464331012124434092813146597602213604162230311677500859601284752892594633483124087667401281705430679852618689498950049182750083049989264720349869653633262109198306214950958772282608155667021556934846340797768795250382044423266974792648298990169385115521246889358732898783362678193617640236817146064951855087805966353546987882050947620163507570900242014984009678678454053541300504824049966469785580026289318265187087146139095214549879923004317795004895695292801126986325336467371795193630943996091763545687990028145151697437175183306322329421991321376145064113912698371289708293953608328830502560727275635483742054978566598954690899385589184410856051115103543674778107785005727181808096615427091430101615150130865228422387216181090431831637960464315231844346697999048653363753192959677260808534576522747140479419731922209602965825009374082497143730400873769880687970380472234888258198190256440868477497675089991641535021602239678163570976378140239628250543328018287981600469103366024159045046373335974881199986639956171710899118098511976164864992335943282742759833829310998064616053602436040408483796190725421658694094866820923961430838173036215206422978399825336980270399318040249288144306496147476000876543055716726972591146319906888238930053800615680077309844160613558437012775734637088220737929214095487179569478544149517315618281763439295702347104600882306375098775213912234195484711969823031695444680455179226692606313274982725209063290032799729329068272046476503669697652276736454190316398874330422263220213253681760441696120535321743527649379018772522636268831078793451941338259963687950209850330214723076033754423468716472237955077941303048654034889554002107651716308847597040983313061095102941408655740710746404019373477188153399020470367490843593090863547772105648619186038587158820244761381603903785326601858425689141091944645661626677537123659928324818657392514294985551415121367582884232859577594126844790369126620153084180417376989637590025469994541316593419856247807144349772019917026653807141072599106487098972593622433007067604760976904563415765733955495884489480936040771556887472884518381060690380265283182755603959053815072416276150472524877595786507848945473890965733127638529626645170044596263279346377211510285454723128800390584059184988338107113660736575369184280846558989823492193152052574783638552662054007035613102604051450793259257982274060121992493917351221453367079135006074865616573018540492174771620516784865079135733363342576859883612527202509440194306747286679834412930181313442990882340066529153857637791109557080006001435799563518115967647250756683677260523529397730163482357535728742366482946047704291664384035588464223707601117748210796259011802655488689951812394706259542545844913402034001964429653706430886609252688115495962911661686120361953192532626622711081421498561326464672119548011424551339463823859085409178786688269476027818532831554455652659339124878856395046441960224751860114052391875437425265816850030523018770961524116539806467854442731244621794913065026310629034027372604799401819299544542972563775071727056592717792855371955474338521823094927032183436782063826553411571627886039901574952080654434094624466346532535815748140224712606189730608605590650821630687096341197519257743186836717221390630930610193031823266664206281551296476853138610186729218893470393420722455567912395782602489783714735568207826754521426873142522526017958897591162387208075805272210313274447540833192151359345269613972205646992477182893105883947691708514206315571927036363450395296043628850885551600083719735263838389967891846003270736820832348471084717061608791952273882523475063808116060908401242224314761035633289406092824301254620138060326081219428768479071925462463090557492987816612719165482296443172635875245486075630206676569423553427746176355492318174561591856680616864287149641292905601300539134695698294908910039912590882903487919433686969426206629469485149314726889235716150324055422633916735831027285797230619981758687004922274186290770795088093362153463038429675256043696061101938427238831075877716535947786814990309787659008695834800431371768329548717526047141130648472708872466971645852187744421009000909161898194134563050289504845758221618873974439188330855099085660085431027963752474762653530315586845151202833966405474969463439862882919575103847815390683437177407140956283375544135679554246646013356636173058117116460627178540788984953343291003159856739323056934260853762309810471718269409376867543018370155575408223715380378383833427023795359344035494521739603270954077121073329365077664656037123647071092725808678971811824937995404770083693488892209638142815615956109318151837011351047901763835951681446276709034504574609974445001669186756610358893134838005127364111573045992059554711224439031964766427610381642859180374883543606632994368997300909251776011620437614116166881281782923823112217458502380807337272049088800951818895763141031574476843381004573850085236520693407100789559165498130372929444623063712843579848098719641430851468785250331289893195006457225822811754838876710610731781692812424836137964756924820763213564273572616098251424452625159525148752738056331509640525526597769220778066443381055624435381362589418097880156773789513103131573611360260478907619455918202893657701164168817036442426942830574574715674943915735933537631148302466687547275666530598197468223465786999722917924161560435576651833821670591578677993118358201898557303448836819344183059870218805022591928180477752238844071678947804147014146510735804520214991979808120956921956226323137418709797313208708645522367404161855907938167456582343530372833095037290224298027684515595286569231897980003830613787324345465005827227123250314207124881002906972263111290676290809511457580602708060928015044061394463506430697427854694774598768210044414534380337597173847772320520653010378613264188235860365690547733430709117591525825030294107389144418183787794906131375367946548933752603229062776319833379768166417210831405518641333022247871185118170365983659604939645714916860056567713605331924231852621667602220733688448444092344709485680279058941918299694677244562694433082412438461604082840064248670725836610114334042144736834536384965447010678273131695384359191204402839495419568744536764598754887261706871631095913158016097223820497725773074545629791279061775316632528572058587663767542829179335499236782120086019043694289561023017317431503522046656750884915930259266188165810087016584994564955868556282087472483183515163391892926465588805936012751518382354858934261652230866973145114120356599169341030769747744519470438367396000765786282454720646173808046029036391444938590124223801733770381546752976455965184926760393001719430425117940456798621146301384023710993472434557947300489298254026808216215223465602742584865956870745103527942916334059150250759923986112243403120569997805162238787722303963597091328568304861603621275795616013285618663881460047222005800175802822792721678427206499669568409057525907748861054938061169542935690773777928210841597374696131432918085104469539734850675905036623917221087323331699096033637717054747250269417329828904002393728795493865404638285967422163182015301396297343984795886286329347466506902840667190180812655399736759167997590108674839200628778885311027816950875457403846075946169195846106559633272834856095703055725024944163370665731502371268435819841541031544010084303806314421837767503498134081693252012408134522859746267151771522230637413592557475135351606691083594439996923158981567320330271292842412196519363037344079812046567953229863573745890316540070164722049894456290503958737889126805655164642744601747381752963134587393904845604142034264655604221122391346310231612908364469889012472851927785891952287736374404326592646722399821864527976648266730701688027220523386003728429031558284545938543490994494207509111085321387448232161510078089225162851232757243551019990381959933500326414460534703572930739125784817579874683534296297496525454268642349492703363994275193542400019731250988824196000957662572176218604745737695776495822017962583923763917178557994689224967501792519152182196246535755705642282203995466826483298229961672170801568010807997771265171562742957636669596619835074356671322183833585095366658066055971483767738669225516034636443862699772957506584689295998091689499818985885295378744895195270977662626841770885902843216763521326308388127663353633190041343328443476300679820237169336536528805801563903605627227521872724547642588409952164825544536620838117891177252256826114780142428969709671219675020944212262794370733287034106463121005573767274502716389752341114262878287367583588190567421630615234167894760568792771547897143262220410695879471864354399407386399489868361689193778366483271373636546769011737602466430822853624947126051732937772472767976358658060193962877180606791224268139228721340616948820295068316545897076236683025561675594774987151834269892089521826447105149114194411922770109776166458500689638494261655934731129610642823790482160562100942650761738380824790305109987907196118528325567874729429071510414689481049167510352958972423818022881512765822571907055376524552855115986364212442841762562301395386699703089436459076006849380408752108541598512780703332077798656359079684621915349445876771700637785731712110365174863716340983856265415555732926646164022797911959752485253003767417740561257003036258117048383853912072731918450647136691225764152137698962609403518041474320536003692341790354407357030583147416234528401889408089831251913077418233389818803163391595659545434057777843316811625518980604091830189075121701929836228970995989834054849622842893984698479386686142933245439835926370366993551842316616152445059805767457653355523387156782114666899968452270429545897109221636525739659502896456377660389880379415179178679106751990099661392062387323187867584205442793963667591041268218433750157430690459679470466856023582839197599752858653843381891200428537875493027689721681991133406972822555353000447439588300797997365184591314379464940862721496697191003593999747352627641261259953509026095400486693989558994874213795908028931969148458268731237101802297753011906842804407809381565980816946116793744256632446567996063637515463048331127222318123383717798004397310874026475365825756573510599783142648318796198437654958778036852617518353918449204881986297863297431369485117805792986364521932324813393930907545663680385136306197180339579795225395086974325465026591235850492830288329344892845913736216248525288774428918511040937463335906602332397119228144507355883733240578148626622074862155133750367755854941386783529282731090038231168553745209010951011747966630033303525341432300242882480513966314466326560815820452168839223120256710653884595032240023204536338955215399190110352173627209095655008464866053689754984789958755961031676965871612819519196688933266412037847504170817522737352709893437171676423299569356971662137827361388995305157118229608963940553804319393984539708644186542916558531686975370527607010614880257007853871508357794809523131527477357117136433564132429742081372668961491095642148035677922705666258342897734077187106498661504474787261642499766714813830539479849589380642028866679519434827501681920235916332470991859425203928180839530204349799193618533802014070724816273043134189859425038584043659932816519414973772867295895828819074900403315934360761896096694948000671943714240581053275177219524743449834141919799181799098646315832460215165755317541561989406982893157458518427833905810294116004986993077514285130212862025395087323887793574097812881870008299448314766781836446565100244678274456955918457680687049780448241057997107715775790935258038242273776124369087098751891490499042255680414631313092401010493682414492534279922013463805383423696437674288625951401461782018107341005654667082368543128163390496765587899014874779724792025022272181694051590421708921042875521886583086084527084239286525975361462900377801670016546716816053432929075730314665624858096395500800233476761870680865268787227831774202140689807034105062002352736322672919640340935712256236594964320769280581655144286432049552568385430792542999093531993294329660182207879331223232259282765560487633999884784264517318903658797564982076074782702588614099760507880367067322681924735136463567586112129530746447771494233438678767058244522966057970071344589875941266546094142114475400072117906074583306868662313091557800059665227361835363404399914452949607283790073382499760206304488060645748927405477306939713370079627461355344425147454236546627522526248699160771111315697253929437567322157587049524172324282065553228088686701536814829117385427357971541579436894910637597491515245100969865738256548995852167472605404683423386107608236057829419480093343700468665682585798273238751583025667201526046843614126529565198942911848879868190882773391472820637945122602945157073671056377200234278118026215026917904004880018089018473117511994254605944167733157779517354444909657521310263068360471403314423142980778956170512569300518042874723684355364027643927779086389665663901667766256785753542399474279194425446646433155541382655433884877788599720636796606923276017338588437631441481135616930304684200174340613952200724036588127982491432617316178138949709550383694795946179798292577409921719227832230063873849961384343984685022347804387337844709287038905364205574748362846168093636509737909002041185258355252015752392808264625557856581902269583763453426634209462144266724539871710477214821281576072753051733309634559093236645289780191751329877479529290995980697901485158395404442839883817975112453555484261267842177977282689897350079545058342737269372883869021252848433709174796032074795540809114918662086871848995504452106161554370832995028549036596173627265528680813247931066868558574016680224082279924333943609362233903214993572625074806174091736360623654644584763846478695205477195333842034039902447610560106127775464714641774126255485198301446274055386018557083599815448912868634807207100617870596693652186748059435699858596995540893292195072693375502358215614249945382347811383165916626831030651947302334193841640768236993576687234622196413225160762611619760347088440464730831726826112777236133819384906065344040439049098641269034792635039435318367410517625657047970644780046843230694302417490297311819511329357468545504847110787429054998706003739831137615448081890676207534245269934437557194466654535240882872675377591970745262863228402196295572479329871328524799946389389249432869177701901289142201887477604849398554711685248105599915744415515074312144061203337628695337924395471553942131210219544305567483704259075530049506649948026147945247390128028426466892294556649586213081189135002796549103448061501704072680100679489268553609449903739283835206279928201815764270549629974019008374934449506007543655257589055465524021034128621248090031629419758761959419565925567328742378561126697417713671044248219166714996117289039443936653402942265145756829074904021534010269239649772759047295733200279828160621305231306587315130769138323171936266644655022907350173476562930333185209492984752274625345642567022546957864848199775133263932215794782124933070511073674749180163456678888107821011518263148787551380271013798687512993751333038438856314151759089289869561975611230253108750571889625357632258342757633484210166681098845141414693117193142720280072234499419990039649482454575207049220916206142229127953226882390464982390815929611110037569995292512506736882338526482138969863840524370494021521875478251633470824303035210369278497625173178258608622156145191655734789400195587047847416588473648038659951196514095426150266151476512208202458160108012182759825774776523938591591650674498461491611651538212667269274612905337531630556544407934278765502673012145783248859487368990735121661183978773427158728709123113834724851460356613821880148405607160746524411188418007340678985871592739824521473283172146219073304920608174409141253889180879685389606278601181930994892408117023504135541268238637443412092677817297906947147590182648247611124145564239377322245386659928615514753427733706833441730731508054401388940840872531975955388976139864001656399069346006707805010585671966367961671400970315351323869728990017498629488833623898586321271765713301420713301799923263819820940429933777903452616658925779313954051453697304294620794880331410992499071132416945042413912653972740789849530737303641348936880603400096406315407018202892446673150597363213119262311791427949448972814772640383210217207180175616010251111790221637034762975722334357888635370305350083576791801206530166683167802698738607554237482985482463609816089576704219031456849429672866463623051017731322685792328321648189217329415531513869887818372322713640117558813325242941353486993846581371758576143309521476175517083424324341747795792263386634549594387368078395699119870593880855008375079840511266589730181493210619507690075875198368615261640872525948201269919239167222737184303852631072660000473678724749158286016944399200415711027060815072701476196799714901416392742828895784243980014979856581303057406200285540973826878198911589554875864866457092317218258703429605082034159388060065618457350818040323477500842141005745773428029854040495555292159864049332464810407730766116916055868048573026064677642585033018361743064133238877079996986413722755263176496628824679010945311171202438903234102599375115846519176751380775754483079530649250860028356296970450161379356962667597759234361663693750353686994545503928744499403283281289055605300914164466086912472560214553812482853076135561496184443649230142909382893732153128187975411392194156066316227848361521406689726610271237157795030621329160019888063691276474165670674854907953427623382539439900224989728836602639205187047906015840843029147873022466513711443954182534412690033311819142680707351592841804151005551991465649348727969693519929631171958212626272364580097080991667528203658186991119483658661027583758633229932255414774792104213241668482649531118265273510080316599588888148099457372937856814114380215238767064550632330672339395519642603974438298748223226620363528613025437966009431045001586048540270367897119346955799891891123022333816023022362777260848462961895507308506980615002814364253366663114333216452138825573463293668709567084322525643338959978124021641899469783483203760116139138554999339907866523058603320606419492989310124230811058001697459750385168871120377476315773118313600027425027224515709063044963692309383823291750764696840035564255037971068919998123196025337336774379706877138147475521901429285867817240442480493237503309570029291266303169705874092144564720227107964847786573106608321730937680338217421564466021903352039815316189357870835616033022551621551071794606218926743356419600836634838358967034091155130878201387234947143214004505139414289983505760387993433556776280233465658543512193618968768314398667357260408695111366498812299578016188828341240041261422514751845525025026408968236649464011778037767991571801463865547332652785694180055013634339535028708362206051218394185162391537097907680849096741942890611349799610346720773549595938688624279864114379284356205759555001443080512676644321836883214345837085490822400145857482286068595935026574057509392031358817224421649554168897855582651980462455278983432895784169688907562374672810448030185242177061365332360738562281666645976540768447159639307820910170907633779177114852054933679368684308324041267892209299304118905017564849174994523937706745245780191718416795418255543779302992492778924162772577881479747704460054236693461571352084174282118473536523675737023527914598376457122576461226056281278521695808928089883945944061653405219325148433061053227002311336803784333773897248813078743256149527442435847530111503451037376882238375738042820073585869380443315292531299610250961137616701875685259212089291313544731963084400668351551609139256929121757843791790048088480230293043926309213427686012265586304569131335609781567760987118092384406563531361826769237616133892378029727207362439672398541444807572868134367680005738239636107962231404294907280585514447713386823144995479293381312599719968940722338474045425923166397816082093992697446763239213707739918998533014838146223642994939020732850720980409053000591600916417101756054098143019064443799058312778266257622881081044147040977082480779051682258572357326652344149561690079855208488418860273527808612180494180600179411471104106887037386743781471612361419504740565210410022689878585254706890316570946771318221132055050465797018693377692782571452488372133946139878597863200480117928145468590965326166160684031600779015849468402243441639383136187422754177121703361511637823590596851688805613048385420875051269331441717058805172781279175640532829294273579718233608427846762923249803181698286541661328739090741167346123671090592361551138604472463787212446125804069317247691522192174090968802090088015356334717756643921257339931653303244258998525989667247441265036084164841607244821259805507548512323133313006214900427085427359859130413069182792585845094401507192176047942740477402533143054513677103119475445213217322258755504897992674685415295388714436963994063910992670182195398906851867558685744344692137920945906836779295282467954373022634724953594663002359989902482998538261403954108124273935302075751287742739928248669212856372400691848597711264803523760254697143093166365397185146238654216714292361916474021725477872389640431453641905411015143717737977524636327416192699904615958957939406229860414893025356786335035263820698214870035780611015522102244866332471843670355023266727497877304702161650197119374425056296399165593695935576400052363604451411489161551477763018763021360688252962744602380775231896468940430331821486556370146924764273954019094035844372519153521345576106980464697394245117979990487549514220100430902357136368926194937636026736458724929001626755970837979956474873545316865319001764272227510394460996414393226725321086660479125989383519266944975535680969319626420140427883657026103904561051516117920186989006730270823841032802134874567200628397448287132982239575791054208192863081766319870482873886390699224618483239929026853924998123670914216134887815012340933879997760974336157509109925854684759230857253686136053567621469294242643239066267086028461633760515735990508698003142397353689284352949580994344654143161898064514808492926957494129033633734104809435794073212660124507966137894422084858405364460216165178855689693026851889508324767933004048516889344111258343965904222111527362762786723666658457575595854094862482616944802017917482230858350078622552163593251257683829249780904311020487089757150333309636515768045019660252155270803521038481761670044437405721312942528209895454562763443535757416736389801083105799316979179167182711458374352220263877718052502907916454147911736162531558407684955832881902935642012196336848540808659280951315050126029195625760329325128472504698819081464753243423638638602479439210151932351013901177899974835271864693460245542470283753000337254039100859976509876428328029084456620216783622672722927377802136524040288172170124909748994544308268617722393852508837607497421959426552173017333558513894074573481441615113808453580397402777950720518934871707229554276836558267067663139119722118115284665022233834909066765541683369079594094045764729409013543564092779693798420657388914819902253990223159133881458514872251265609275767958737592070139150292165137208511371975227343654584116220662816602563336320744499185114691744550622971460865787363135853890236625572854245160180804871678236888855753250662542623677026042158351601748519818854608600365976067432333464104719910275623586453417486317265563913206064077547794396713836538773776108283000199373597603704672457378809679398944937958296029107469016094512884565500714580918878795426418201453696599628426868823634958792770070252989609967989759419557352539142377824433027467082820087226020534152927358475829375224873779378991367646421537278435539862440158564886921016447816616029621135700566383479903340496238759410928867789202700775049515114057825652950150244849682047443797108729431085416845405130163109022671129519591405208275468664181373058379332361505991420452558802135584747515162678153094655412405240916638575512988948347974233228545041405273542350703359849645936995349596985542449782495869291791824150680530025533704127787034764462443292059068329018866924002223919187146031753996668774779601217906886233110029086683054317870093550669443891319133335863680374475306645024184371360308522885821217202312741670097403514315321318039780336802281542234901837374941179732544785941579621043787870721548140917251636154151633813889125885179242377272296034973055338409428899189191611862495805600735705272278749403212506454262063044694708042779459738171468103951928215506880791367012101099442207370246136871960314911623709679393546363964481390257117680577997517512989796670732926748864300973988148737807673637928867677811705205343677057315668958991815308257616065918437605050517042420932313587248166186838210266799709829664362247236448986489768571001736435473369556193476385981877568559123762325808493415705708634507334439766047803866784617115203251155282371614692006347135703833772298773213650288688688594340512057983869370027833123654274505322834626697864469207809440521385286533846279707480178724779884611460150776171162618007815579154723052147599430580066520427101171256741858602741888013779312799381537276926121140668101565214419035673339261166971404538120100408117601232705131637431544875717687615755549162366017628802206010686555241416193143126715355871548667478993986855108735762610069230213595808381452906422177929877487841615163494973097007943683050809556212645927953336906319365944132611179442566024330646193120029531236193480345045030043150967985881118969505373356710863368869446655641126622879218121141214251673481364724490212752525556476232485056383913916307609763649902889305880534066313524709969933625681023603922640435887875507233198884175905212113903766092726584090238735534185164264448652478057638261600238582806931489222314577587837915649022275906993464816247343997332060130587960681363781529646159632606987449611053683842031053641836753735941763739559880885911889201148715454609247356135159799929997222980417071122569963109459450977655664099727228240152936630948910679632967355058304122586080507404109166785395692612344991028197595639557117530118234803041810290897196552782457702830853217337415939385958532036455905642297166799003222840812595690328869282912601392675878582847655990758280166111200631454113151441088757670818548942877376189915376645051642799854510774007719463980462650777766140535248310904978998595108731126206130187571086437357447083662153774709726601886562106815163280009080861985543035979484798697894664340270292908991434322239203334871082619686989346111771605619106812260158744108330930703775068769774858403241324746437630878896661519725561803714725900295507184242454051292467290397915325359990055573346001116935570202257224427729502638405383094339993833880188395538215403714473944651525123546035267423822541483282489901340230545508113902367680386497238999242578003158037255554101784618634786906460458658260360723069525761131841342252747864648523633247591026705624663508025530581422015522820509891978184204250282595218800988462318285124483930594551620054559077761219812979540401506539853415790536291017779397769578920845109792653829056267364026367031519576504933448795137662621922371856429991508288980809041891810154508131450343857340325795497078193852856999262388352215208144789406268899360852398275371744909037699041455552602491901263414313273738270759503908825312235368763898141825649655632945187096374840743606699125500260804241605625335918562309553765668661240278758831010214952846008048050280452540636912850105999124212705081331949759171467622673050442250759152902517427746364945550523251863224113884061912570129178813841815669182372154008936034751014485542546989378342396064608136668297500193791150617094526809847851528621231713778974174920875410645569595089679697949806797709616830579416743105192544863273588851184365971435833487560274054001655711783091261131173141690666060676137976901231410996720131237303297076789887400993173096873801267405389236122303707797270251913408503901017399248773524088810408077499244126353464131818587924807605532681228815843074713267682830972031490498688844561879760154682337154784154297422301665047593933121322565101891753685663381397368363361260109084195902155821118166774138439692058705150742548527448101545410793595135966536300491887695236775791473191842258068025398184189298889430382247661864058565918599430913245758865870446530953326685322613212098258391805383608141447913203196992760371947601912866743086152172430498528063801298342553794862878247588508206093892146686937298811915601156337012486754042059114649308882190502488576457520833639214994419371702685762222510741662309016658670677145688627933431535135056882161651128073185293331240709123438325023023411695017455023605054758240931756577016048845770177621831846155679784275410884995016109127208179135324067842671617920134289028615832773047948309717055374851093804180914917502454334322174459241330379283816943309750129185445969233887332886161442381001127558286232596285726481215383489006985115034853695444615421612832417005335831805200829157229046963655531781523984687254513063505069849810062055148440207695393241550967626808876035724639139552782222464391225926519212884469611074635861482528200173489575339542550194754426431489032333739267634091155271897684298877836173466135353885076563271078143124350189651092384536602369402760606421193842276657552106636718796032175271844046515604272898695602069970129063678471616547930688683058465080828866141119791388228981124982614345594089618135092268576114746094061479372400088421535358620527801250142700552744683591518403733093735804943424839404675057083479279483381332762379378446292093239994175933749178997864849581488188651491693024515128355798181123449008271686445483065466339752560796159358308214000219516113423370583591115452172937216640617081316020782133412603568520131613451368716009803787125567661439231464580856520840397442173527448137412152774752022592445615203656082688901939139579918441099715883127800208982759358981064821179361579518379370267414514009028330644662092805498391692610689751510839631321171285132574349645106814796947826197014832043922061401095234532092693117622981394220443081173173943388679657391357643776428193536214678374361361615911679265787001377481278485100414478454164645684966066991395095245279499147694410316125757768637136346444770067871310668324178715562817791223390778412751841931611881558872296767496057520531925948476793974864141288794756471330495435550447902771286900956433579134051273755703918068223447181679393291214484495538977286966010378415203906628907812182401412993685904651465192091986053477885768426965384594457001697584225312412680314184562687225811320400564334135243021027392137884152504757045338780024673785714700210873146932545579231347572436405444481320932665829868506591255717455683288314403227980492741044039217614384057507502886084235369667151916685104280017489717748112167841608544544001904492422943336663383476844380726243073190193635710674473634136984673285226055701264501233483674121357218301468480712418566257428522089091045837273862273007815666689142507334563732595672533543161715865333398433217236881260038090205857199308555731005087715337374464652118744817488687106523111986911140585034922391567554621424675504986767102649261765101107668765962588100391639483978119866155851962164876959363989045003832580410544205954828599552390657581080179368070808305189964685408364127529051828137448787696395483063850897561464218748892712948903980256230468121751455023302540860761158593216034652407639235936999491804707804967644868899809021237357804570403808207703573875885259760424346088510751993344701127417878788456746566404719016196335467707140905908269542251964094463195476586530321047238046252499719106901104562275792209269041327536996341457687952422445639730183112914511513227578413203762258624582247846966697859479149816105226287869441363736831251083106828987661237826975063430472632784537190244479709750173968312144933572907916487799150891632780188525045584887827223767052638118037924778355400181174529577473397140123520114599019847533584348612970929285294241398655075225078089193521041739634934286048713423704295727578625493659178054016525363304106920337046910930975887829382912964478906132000630965607478820821221409784723016806008358123369570514546501812926943645783578156085033033924660395537976308361372894986788428511398536155933527821037407330768184330408936244605767060961882945291713629409675925076313486366060113461159804341474507055114907166406356887390206902794534382369305311334409013813928491635074844490768283866874766636193034123762483801758404678512106982906051961123571888111507236073031585066225745663667407206689990613206277939941128057597983328787921441887254985430145466629450796707076881350222305805622259429830968877328567889714946238882721846476181530458443909672482323482595879636989084566647957542001959919192407076158230023289774397481126904765462568736843522290632178892276432893605359479030468111141305863482445664891592113822588678809725643516464043643284160762477661143498803197922305378896711480589680615942791896474019549894662329621625672647390158186929567656014442485018217133005279955513125398499199339070831380302140725567530226000335657159342831826509089793508696989505426358430467651456689976279896062959251197636729077625678627694699472806060942903149174935905115232356987153971278667180775786719103803689914453814845626826040034567982486898478111383280549404905197680083202996317570430114850873840485918501572643921874145924646174047352752505067839922731216001171603386047107100152356311597347111531981987106161098503757589655767289040603871681143130841728937108174127645812061190541459553788532003666152649236100301570446272317777886498067007235988895287474813721901750747000055711081789303548950179245520673290038188140686862479592722055916279022926005921077105104481033928789912868207054489799773196955743745297081954639424316690500839843989930367906555415960993248678224754243617589443717914037871681661890939002438620386100013621936672808724142911080802918960931275262026678819020855957081118538361661288487295278751432029563932959105083496870290606928384415225794197648249963184794148146608982817256904841843260619462542766936889535407323634283021896949477661260783463284903151280615010095391645306145542349233938062140077792563376193730520256993190997894043908474435969720520659990178285376762656835586254526974552609910245766196140375378595945063632270951224892419318137281416684270130960507345786590479042438520865081544913501364916986390481256666108437022947302667214991648496107468032615833525803528582757990385840916676188771995398886804319916508668877817014396631768155922620169913966131537380212941600069069475334316778026322072262658818427572160554614396773362584629973850773077514738333151014683952964113973296724579335403901361073952456862430080967204609955457089748930487538979555444437913037904223460377687292360013865695939523007680913777688477897462996994899490161418661315522008566736957708227203389366595906663505943300403637625911891956915616261227047886965103560627484231006054720914370694716610802773798485765434812498224442358283298135436451240922208966439872019979456190303973272546178231363633759276226563015658135455783197304193392690082829527182521388551265830376304774906259955149259431053074789010430098765808165081448626079751296333266752592723516117918367771289310531444716688351829205143436092924931911802493660517914853304210438997730192676860853477681495022992809380658400073117678954912860981123113070025356003478986006538050845325724315536544220676613523374082113078343603269400159269584595882978456494622713008555942933445207270077182063988874047421866977093496477581736835801931683221113655473922881842713738436905266386076624512842993684350826128813673585362938737923699288370479004847222403709198859125563411308494570675990320027516325139266942494856923209045968977756767626842247681200332795770593946131852523564562918059052959747912661628823814298246226541410672464872161743513173976971222280101006681787867761198259615376436418285734810880899885715702797222747347502484390226078804480757248077016210646701669651002026543712600466419355461658389459501435021608901857035581736618234374916226690773118001211882997373198910060609668411932660751654527418294595411892772641925461082463519316477838370782952183896453762363048580427744179071691463565462012151254186648853961615420551523750004267942534177645908215136752584797744651147504384605963258204688096677957090446458846738474816380456351881832103865947982043763347383890177597142362230577763955410112945234880983414766455593422094020597334523379563094414466982224570263671194932866539894913442255177464027325967229935813331108317118072340443268137372312096690524118567348973922341527507079541374534603865067866933962365355564791025085292842942277105930566606251522909241480570809711597834583511731682041296459670706333035692718214962922720732501269552161726498218957909088650853824908489044217555309468320556363164318939176262699310342894851843925396709224125659330791023654852941621322002511937952724803401331352470141821956184190557610301901995216474597344012116012392356793078231907702884158146056472914817451053880601097875059255371523561122901812847101379172151246674285000618182712761250252418761774859940845214927279025670059258544310277046369110988005543124572296838369804708640417060109669622318770653952757838744542291299666230164080547697058214171286363296501304165012781563977996319574126276340111301350827217722871291640022372302348090314853436770165449593807506342852930531311279659452666519604263504064548625433837722094284825435368231861829827131824898844982602857056906990457909981446491936545632594965700446890110499239392180881556261918344043622649655064498485216124984423759284436426120042566286021578011404678796623392281908045776241090764870874061570704866583981448458558032779973279291431957891103735300198731104868956562819173620367030391797106463099062854837028361184866722194576217750345117701104580012912559254626805374277273788637267830165683510923322806499084591796203056915668061808265869239205618954216319860047939611339532263959997495267988010745764665383774004374636951336856713625531840546384751916467379487432709166200980577171034755753331027027063173956124484137457827343763301018534384974502362657331917424465677874996650009387064418867334910998779260053408624428334504869073382793484253056987374694973333642671919689928495345610457193386652224715366811456665969597350759721884166987673216493318989671829786579746122165739224048569002253241603678053299909254389601699016641890388435483756480560126288304094213213002061645408219861380994627212143272344578068199258232028513982371189265412344607235971747779071720415231815751947935274564429846308888463853810686217152745316123031657058489743162098314013263066998966328885326821452040831107380320527846692799840031378789965256351268853684355596205980572789517544986942193269721332052863745779834873193888995746342520482133375525845710566195869320315632994515025191945596912314375799911383016561171855088166587567511843381457610603651428584278721902325981078345939707382251471118783115408757775600206641245622932391166067333864803670869537492448980680002176666748274269259686864337319165487177501063436083073762816139841073924100371967548338380543698803109839221402605142975912211591485059387706790687013510298622075022877211233456244210247151639412512589543377884928342363611244738228145045968214522535500359683253374891862786783594439790415980439921248898486607950450117011690925193831556094417053979006002913150242538482827828262233041513709295021921965083747146978458055506159145395064373164011733178077414975571167330346320084089540665416946657467357854831337701336289489043976700258630025406352640066016317128839203055763589894924128270224893738489067643853399318786080192231083288474598164177012640890785517778301316161620497927796705218472127303279707382238605819867446686109943830499604374073231957844732548574162397388520162023847842561635125971617831068501562991355598747588481510148154909373809333940744557008420901559038534449621283683136873751667805130825945997712574679397814919536428743211224215798515844916693625515693709168552526447207865279714664767603284713329855019456897727589834505860043168226586311766062372017210079222164101882993308084093840142137596971859768970427590415009465952527634876281358671173523649641210588549344966458986518265456343828511591376315695198952302628817949599715452212506674611743948844333126594322867109652811095016930283514965240828501201908310786780670618511457409707875631176107464288355939159854216731151530969487583789559795861326495698172052842910381727212131386815655244281098711688627439680218855815153675312183741199729194713254651991441885006720364819759441679508874879344167595983619600109948387447090791040997859746561124598519721575581346285461897286150207743745295395369296554490129530972889637677133538424297153941795471790955801201342101751509314916646990523663502330240872186547276296390657233414550059039138902536993171559171798230651626797447118579515065738685040882299348044455498505978232978986170294984183762552587574553031129919143411094130882381144430688430626553056016588014085610233242103002184605885869544185029774630858584961300372381903251622255707299757107273060660729169229780336470488409587112280451885119087185882995143315341285492971738497685231362760768684947803649482999044757157711410809580581412089560594716686262900361456026253348632849868160394633724366671129644602929157461811177891696958399470809547888635032811296268992311100998893178153139466818820283683633738222814149740069179421928888171391162839102956849182333589308133601314887483664642243817760810077391833937493469336447481505649336493231572353061093857968399021533814491269253507682110987383521975077366534754994317405805630991432182125473362813594883176814891943065304260297738854929745705694487830779458788650629708954998437601816940310569095871413868048463598536840341059483417884389631799564688157919371746567050474415280277125415694013658620977607356328329665641358170280880135463261048927687318299179503799444463281585951813801447168172849967930618141771319120992362829226125432360712262703245726379468635333917587374465520060088199752940175724212997235420696304278579506089111134165348934311491753149535300674197449790172351816715687541634849494912890017393774514319283824311832632650795303711778061858511535088099982004827618083072096496364769430661725491861437009713875679402186967101485403074715610913589331656001672521265425028986122593064841058988471296492309412151445639478899993271458759695557370908551506480023214764430372324661471115525785830710249368988145625687868347455188933851817916675790542104210363493162578704765431267906612166441422850174462784771327405955796006483432888278648370434560669664568997469103739877128915933132712662475055822586349284277183558316415936677122185376423762221047793389563787229025095430141822571803313001481133777369415084888675018931569948498389360526668180127839120058014315964419105466632368101482077993565230564904207113641922001771891079352432343227617877125682511264813329743549265686827487159866549430416484682205939216733594850578496228079324226498127052713984077209957072362270092450676656800691499665557378664118770797677548670287864318179415217961783106550302871572722822508120170607133803396418412112538562489201300107824621651369895110646111335624438381853662735637834369212793547092301196559149158005617072585185031672893704119363747806258242982507264648018215234302680814869781648243493534568558436963783841538380511844060436968716664165140361297299929126308428121491524698774293323052149999818290461194716767275037422213671866146540425344631416606498714990010006600415448684373522084830594959531828722805208286763003610917345086321330336472895841765887553452279384802977244857118155748935613115249267720063621983699806641595493886838364118914304437677154980265449590617382655911785459993785108614460149676455501036539712511385835050851124425177729238143962330437240360326031814429913657502460127875141179449013058034521999927011480717128477703012549948868418675729751892142956525124869439837290474103631218991242173395506887786431307500248233618327387296973765988200538959029354860549798023204004722368735574118581327343379789315820394128789897289732988125535145076415353605194621122170006763216111958410292525685365618131387840864771470997245530131707617121631866002914645013785878548020962447037713735877200867380541081400423114185258032932673963245969140448346657220428806792806160298840434005365340097065816946360966609111109687897518013252244782469579132518921226530560858665411153735849127902546543690208694198711255884537290632244232222871391220122487699768371476455985267392259049978855142500475852602979293061599134448983419735833160701075164523013107966203825792785331251617607899846301034934969814942610553678363660225612137670814210913735317806824201757374702871893102076069533557217043575351774615735248384321015713998137985966071296644383147912963592754296271294361426859221389930549806453991445886924727675985442715277884438367601499128973582599618697297565889787410821894223373445473752276931992226359735207229983873684843491768411910202466274795795643496150126574338457586388347358322425353281420478269344731299711893463545029946817471281792981674396445249566555323116499206771636645803182058496261322346526061754135324447020076618074189140401581485600010301199941095954923214344060676347697130895133891710505038563365035451664317744896400617388617611936226768905769556939187077039423049400384406226144495725166310170806429233451704224266796070754040285511823983615313837514324930563983818779955949425451967565591819686908852834348860508285296424375787129294393661773628301365958727230809694683989386763662264567911329774698126752265956210093183220817546947788787553561883350838702482953460785970236098656563767227557044952587398718125934419037852755713334098424501272585966924343176890189661454044536790471362942381561276568242478647361766717706470024311197110900074740659456503153750441779821923063237008720392120854995696810613791890299611789367521460223869056654813828582804495375301609214221959406387870747879911949208983740917885344175230647150302783979798645173366253295117751055590141604598733381868879778588172919766045163533535560476484205208888117228319900445042844868523383345301055339296373080397382306047141045254700948994076012152476028199638463435548529323771614108695919507868732760754000852200650318712392728578358070107625427696553559647894501660138162951779085311398110928315832169315638674597474495843852827016582461920922195291343234967793455856131402077659961425464632886773568917855768351696083928641888300948833247004479583169315338323823778763444263234563016795136710475104696690012177771280655224536893718714515673947334404472804509594330906836671106559533386029380009999490106427698596232604018637335728466795312296831563581454208905406512264191620155045004305621369918509410346096010305438166947959645858044251949051107333876799467344717186156477238117370356549176287075894560355191956039623011578663237502347250544610739794024751844155581780879628222319726929845166833069195050799933572591656755572945859621820526504733537123516236627704793332893221361418587859727716856827253037348368919118471971337530884467779432748571488278216088447657000414034999213767942096275608830815094380307056660227646781175333610281878007102197944287773131463878578172056614090230414999232482689824772221098521897581408797634861467636063686746119666203473046089172772400459530513769383753815434869811019906517069617740522182474226576521381527406126990127068808753864086699014617408905409818776718800761241519670641521176530843255442610175363482811968374933958257425412446342472335863607779809601997451877588454596458959567795588690984047682592534778499304578831285417470790597959094316277223278445789186942149294515401742146232403008419079752967824459691835094742021236179403090486349605340549312999194960879579525869771702366800338625057649380887409940095899481093979832311088387692364902214991111208706392028924906984353331527279913309863354543249714413780591322408149601564856798439664647802804090575808891902542366067745004134157943121125012752322501480672329796522304884937511660849761164127773953113020415668482655314113489932437478902689351739040432948516106597858322531682042028349936415959801973438898830209941521522886111751266861730519562493671800538456378551291718484178415947974355806178566807584910801858056955679901851983976606933582247791365045627057667351709615504933383904526124043955174491368851159874543409320401022189827075392124032410424244515700529683788157494684415080111386125611641024771909030500402406622789456070615121082661460986620404250105839780981920197267590107499248849661394411841597346103824011785567390805664833210390738670832986910780934958288887071106515596512225429291542129231080711597232757975108599113980768447326394264194520631382178622609991600867524462654570289690671922822830451691113636527745179758421471022190999062573733834727264986782444010489985076316306680502671159446362935251202694248108545306028106272642365382507733405754757017043670395964677159592610294383130748972455057290856884960913463231658194686605870921446537167556555319620918659526284482537313536981625173519301153415811713532920358731641688391079940006772660316175275829173983958526064541133189855057478471210535057956490959316721675656248187820027699637341558800008678525674224615114060157601159102564490022649800394984033580913091401978778436501679601674653702874660625843463297083037259804946535893189121639760131930794769720580347105531111172158592190662310280992120840692830919060173707646546556834132075563153150064534623210071335849076330483281534586984973325998011874796642731402793812899617205245406746952719480799303967301942740364665941544000927999086348066223349066952240446521589928642034350988584226920193405754968409048129555226547546507135328425434966160849547880907276499302527028150678628108252432229799853917598451888683870044771018667721594397085146646128711487495318621809417196768431446664351758376884367860814463196419125665740477186991609155509108789194312536719456512618784869108767299105655951551597396590343836281246291181177609494118801059463366710390497773120042435781157904298230450720383227812464136712979594150829183782132128768905459635863693448797497848411232749213316631628124563882382887156484478831424176501479801878582157687930630011537889980146236901358037533062461485760749325678076826510457380590188312376172718899337904871133955884852342402550023522006135749143182591424798293677754904963993507558396689675783643166183693076256035286029406628032554165354315180137148219417726722440052684019965333341840043455252965929185029401316006511243952978743642228069777204373637178734579484202387451512491579131394111486084164293479587936818686096896846408583341310178581427109554162933759151783923413031105433287035265999939049668221127681583165112468664511673513782143453366505983283474435362903123936720845931643949418811386079746701347096403785349071490898423178917397836506547519828833673957143600000034398633632120917189548990557486933977002456324759545044114225824107838668376554674001373243228091136926706828053975491111661711023974377494793351740361350053975814755208342857728009861894019843754464350814982183601125776324473894520516369385851364842599645183618569890887217897646947212468079003309250834966458416565542612941951088471972091066051055409337319548884064440802805795490080760400341546621376696064442937749858973536255919596185524481879403173745082560728951209454565621595404054258148869298427865823576731957992852931208662759223661151374457679160636216752674404512210510520908347074439861378290823527728958496256568819727927686947958061005737870841214448150347974223121032953592978223771340775495454777918138235426071846171083890978259644061705435469685670307454116342441344863086763279491776829230931832213414554825913672028232843965490018056532039607955170744960390066969903341992782126967677718352090839595453418667779448727403837333819852358842028401509815795946858745379895032573628098375922162292585985991238439935755732850286131559703629342498141780564616158634153386350772232699965088608709999648993730493071709678887401497461475428803874212506892121558766922423874347011209908590821640735763808173869597551760838776002775172530371334456548526356617201975630015800497902234195867380614424015024362889575032065336908257567855070205551055723818785746503710863081581858628158830545646622976948039706182654913851813267374852271882679179190913544078526854762541266833982405340224699899666525731556376458622518628230920854244128059976285054889130983317618849833529751360737720305713427396381265885674050138410747889433939966035918539341984163226176548573766719431328400506262951403578772646806495493557463264081869797186302187600258139957199236013453742297589182851675113581714726258285969407985185718700758231223170681348679308848992751816613996097531052957735846185258652118933393757718599163351121634410379104518450190230668930641789778081581013604494954096653636603700758810044502657349351277074267425786087848981856288699808516657133208358426133811426238554203157742466131088731063181119898802897228497905510751484037022905804830527318849599941566065373140212967022208219158629059526040406200118152696649100685875926556605675629633614342302328107474883950403809849818600561646460998192576162354787109138329675637615067325508606834337204387481867916689757465634560200025628896011911009804533504238420638240394341635029776888027798350874811782983494172116749194256016086853324353859511520618090312416981820793146150620738260971804582656870436239357574957373327815789043860113780785081102730494466118219574501701060593843365194586283606821085851304998204205784585771759338490155644473058345152914125616799705696574261399016819320562419279772820267142972587001932343378731539394031154111841014142927417035375420036987606087655001093452990070340324013348063885140957695571471903641520277211270701874215481239319532209975065530226468442277000205890459227424239049370515073677646298449716821219941982747940490926017157274393685697218629360073870778107974409755566278073712280303500488298439195464337533557878950640189986850602819024521911770186345051710870239033985505407044541890884720423764997490350385189495058979712866316446994074909594734115819346183366921695736050815850808379520363356199476919379650650168087102507350708252600468212428204343672458244788592565554878616144787175810685723568951507076022174335116273317094727659324132491327024255193915090836013462396123350010866146238506331270729877456189843842887640998361649647757146385732473332266538945235883659729551599051874117792886087602393061600161684340706116634492483951563191528827288228313754586782698306966912201309548159354507549235541677668764552125456812429364274741538156922195033315601516144922475124889575348359262262635454067047670338664100252772768008863832666294885827403696553293622360905724797947344340777042843185079019734690711412303641117292249293077319393097954528774124511839534803822103736446970469674930428109117972324486154132640315784309553966710614680838155489471467336524836791385664310847478486762430120184893291096152811080876174227791316293454944253954227273096450579761228853473931896008109652020901511045793776025295431301889381840102470101349293174435628835786098615456911616698573880249737569405581386305810998233725651649201554432168616905370546301761548096266208006330593207758971755899258621954620964554646243995353917432282254332671743084925083964613289295845679273654091199476162251559647040612970477598185518784414199486140131538593220607451859096088842802189433586919596049364096515703275275706415007762613237836481490052454814131959892963984413717814027641220876449896886297989108701642701690140078257483115989763306129511956804274853178863330411697671750638221352138397791384433256442884908729190670098024962815606262586369423226584906286280350572829831012669191096372583781493637749605945152169326449451882926395257723484200773560216569090770972649856428317786947778049643439917625492165006086262853294710556026704133845005078273906402875298641612874964737082351888921896126412795535364422869554305513087000098785575342231005471534128109570248708126543191232619564621493765275263564021273887651038832550073648999371671832800283988323193733015641232771853956549324229779530165348301284906778450374908917493473890156495885748021949967226211858743610397749463386330578874874055400054404393448881920441021347900345984119270249215570268737009709952053919309793194958832659221715083246219423001859743967064911495594117337281998690213116298866802674464434892330206070038212628417236796273071914050080840857039781519981488223900599489119464744386825337458899623751333782805329282720168159779700664883944824463322109283205040459830089435659542672568797149187034473382377679148292032831968381059077157271919030423653156509574645496434253280695103965587335498038509951434635061753614800501950452013502001802815069332419182678557377644140970809457456248548677049043683687175909180572697940104650194848531467266429786676876977892914311285050430981929497361659442594717547651352052450725975385779583727977029722314351999584995223440493945021154288672441887174095245547718674849114750318017733046899093179744729570351923876864055442781341698072493822197491242575101621874397729021477046380107314706531542013005838104589050067645573329981499458546551055263749143541958679925959814122187352384079574161233722640638604319889362498676496935925695921284959062544464743317599996851636603052164267704281546817775893392521155385905268233116083027511943848238615528524650103294672971981121053141258981651001207426881435775908252274668632061883768304509217845825262395941896730036408086242336576209791116417663313288523520624879229789594564503337331394223847785827171954123478604343761652415687179435625702156366666800885310067289470330795408045833241921884888707122756703331739392625090735561645136770641995391119488812406598216857871313850568506230941552068779875397406584842501352056151034898218737702450635833142436248074325424641959846474115756254410103896715766772631964425249319418064724237893346685610837898088303135713331577294356649560781253049175940158951469549652231185596690485594676079681901672666346501861829556698939650196145444017681628106044650684481395616672207292612101646923390167933996328330131638508309679427929345512684357603569019705231383646409613117749046007728408622147475476532215055181164898878790877809180090507060400612200100512715759912257252825233780268090305284615817395581981223970100920172022516063529224647816155335322754532645430870933209246318559765805617174468404500482853533965468626788523300449677955807616618018336687923125104608097738955654889628150895196220936750588416097522823282504337129701866081937489686999613014869246944824207236329123670525421454641629689104429816333732668716759467153926119506492247256272545432741934959955695902432790971743922580981036014863644091014917341830796463450648333034047657118270402768682714180845749984933920393174454026166636746466687543850939671299180674719098853127107267244285848706943070997565679491984189964257488847646220303256377511125340600879369045657792720352059213459242729652066833385106736152762610160266477724850833447198919868026561972364208475049626616077970929068447577982517955697582350843717461033103879117892394416301126340775357735205580400669825231912255705191336314072113497232265491510629617390506178571275094036231467009311761331320186311587308867982392980098050894915107883711940997503754736743057451872654140164469245767921857536803632891396641553420667056232729360011777814988861008308778495717098808586670231040432425267859555620773105430722980321259411079573491466846802205018161921507666491068620333787138260589876552104236681986701778616726719723741569178800016906566590469653161549236040618918209824140061037794071663420027358289119941826478127826596662070303847958814427902466692640327994040168001372934773015309418050705874211532846422030065507639667561683188970051520266566499294173828403273059407401471174784648392412256765235934185540664409837060836364576570818016642850442582245516508088644212121139143524539352255221624837917373303298123495289840986132737099574077867893493119752042379250228513758804367918545478364167731518214572265046408001042021004107660278077291525555032181823872217081127662086653176519264584524952696853763144379983403369471244472477969738905149411200109341400737940618594471655166126749307993747057729305217504263837983676681591835890496521637264929608371472040674289962767203154102115043337420571828540901363257214375920546404718943285486968835997851222621308129895815713915974645348060996015558772231934507603154116631129638437194003337360133055263525714904543279251907940071115047853780363708973401467534655174707470969358149127971881878543767977516759278223003129455185950428839027354946726676475060726436987613948068790805935317930017110002144177015044954964124543616562101509199978629724959058091918252554863587035293201420058570578554192177305053426875337990760387466896842834026487332908888817454530471947409392584073620582428493490247568833524462124561015627290651306185207329254341792522994174478551899950989599998774109514641700769893056201635021926926531665990932381182954119375454485094286218394241862180674571280993852588426319306701820980080509000198196217584589325168776985941105228454658356793629696192190808975368132104845187845162306239118780246040508249093360699980947762537929735970377590661459946385783782110171224463558451719416703447321627224432659148585957978237529763234429112423113686037245144387658012715940608787886385110896808831655050463090061488325454528199082562388058720428439418346878651425413776860542910797210042716581577830892298892426705300963990358223607456887192002717050562634379276091995418960273932863096592132860866113516677732678863936381316733972259528279930344200480443047267908314781726132779808609416881966180391801216897159720014750411547249515141050365790014682198153143369117183969236801627378505573465789414526396845208017702934796853900157301509192427251098757289596181258154313384824794784275717899006900482860924697520112663331458261249389273246188806998673405975692785169253707810445919864771156200766233836373688812562248357047719381902980923502800091617630646539769037461207761775310424362373327222539858777920902348843916405595859983155957213113572201536803012255576833797748586815330881597645559646307348986170444071965631722735119318496355853383142667278838334503929502937754404012839584407164497747467070573773281635284892667888932753841809432221740877096283171553737308738901163526963736764702604116554271267744300170440774596415035154466846989883081471711673591977493404140866686710887250626305478873960961808073562623368866993822044144291063277472808125183855402965433597958920418952952167800330358635917060744917899901667010507110287969962544530163817853422433826934198585932062878966056748051328052409814147654842848801447240837203479551540965529736180580526641404169081405650065306663527830520310176465019635521631396569895732763283616633158334641786662354498812075016707169149215331047006673935150023052730973025076575803867996053817576728257204318917925283698541453695686692503247929357194508067961040725957717233257533688571196220488747000661767905116010564549081891076163350991420662633687239418911489611779479008134832666507249505964851389692069950123959467416836620923119701645876240906883765587938520006979095538406103772087392136059096883611781992559392761220137173166980928432933584789138980968048937178814131478883870960209340798242036295667564225114022663896968434593705833709636380821657946503195205454166993982610975593870988470347537448765100331938094388427353416519480521582839097061468315056133311160374314325427816082428079648914867954125873478580290427396453680755184428997564616225679401317696296903390184402425625013231238201300381779451192041528619050048086815914949181885979792998737761904553100267001668506040597617165965868928153703250065852759110113456717000615598990905491153488403432561093362129628003728001616734908977851700818713878433443141874579633187905805595191765168900636832767199065347196467619579145257670009556054361162184758612900275456919584010766761933415495468759287077149471747826757744820941589147152513067467221418049117904151016162474904279545123079855572213843728125062682949390478837557122516733262041797053294441892500125477552926131338871090288217763395093255538406747776116921921192885054785808417122295404863650552168513440314366187350348137371855347902464574445997624100147625523407106447986110665383049839143323255855220712770172085993537648796177004970995751349857282128815867090652893797916582252270876037104061299826279996433578235157179663664035182625018967013722138850696559689288103451273527583078649030334396682597976736826004221675976241942929191154201658973953051518624188694450503583769109867295844843050159374556853746110450694976530431156742648128045269990643880766615744385023967811413700555660451345606494007736505188490043302973682911619945369942962555963269239427497458758295097555591208191129337714226234274058699003894827189381543990245333109240396499190551773079682183742848533132956526542258962465893682327804333629879364554438669359141191325091563026003117519365752980519900483255615493741202180024074457036001375153473513043249141314044980863133669654504913955928611585785821263309922576162798275448052250899027954387683964282929168350390017892226075735213073167988025995485009314288598877740338185639016297265478331469704055340108577557022711166116499803508657878158217189411322475976077564067149751787512424993522108843708811930734263207050469549862055134186220654005930641542425526491715449645374694849861075272220506902652328127123322134816363442202964405485999981782179737639170676469950072877203387975015316115588147937383883970018194683644191509366368859867748010164389061770577870775068310772709251173458822995825598575866740918352564787948371924967112627941928887042573918755539912612024961437272889384685286068468662394966533688165316237411111532961676740298072331599386547453150802859378249787279606708475663640986784032382360504406661237941762435774995240818249421875288354481916915330364215170099300800465233290553360919288974315083957041575312461744520577743168770224294103241021105752258665733673055721197405686989497324944405755295513927085573396663693091789729191616683115881651593648329556992307200560651327515888216207935957212946798839551015833651129400358103937051049588200715273740471993482714388268122715164050526371968657105657369826577632523561775920715827154519772679510015851457362164927305319709764977528635370155074354919473898110719509805636401084252459775239613175469396693668918090688906497021443247492565932989993384801028199545843182721879288356864736924174800948053327202180375920946717454644336792631872895708400364722262556440535360661299222568681956850655648544534451859068487569055869303111924445600902271243623510843302437564088347386677295400744355658106413466860424846943977039296171078518467789595681162531335701274530257486709784993774305212099485641012163195773168449038905190274719522071972120479312411066460345545132464586994797653392323464965868185415609190775721438973323118071460714002658922533681710177725020825273242725341423536931982047414888640861984170910782158830566268274104329491002750736573733323345877829418901333086101028366988599648041123991960043566794058868214426046145025952217045128120050461942832163777569371715568728814436149859050985578241207936836406245231945351777018108048208645820553390702497909052134296120209601725387188361809196083051370039391170664048871983709020364072156744559220662474484455181728917625308795220253306310904828412346272203490413438526957310335877146849073479715971982167083789036135813517235732067009411245564749570414079673994968453403851413759438867777835463097345255797812610040597773953291761071626993351622801264248965242182599102866001347518413366050163283769307785007240731149946152099245744132353249849969328131203348512641710717335319121096176395655663709618140640038387114645375119109236777874031544286579444481596390015293461355977611196837521368332029419179890956364499291302174233386327343536882857728034885226202401849952241667702950997582687194499913924299930728914996364211701464390109256766098872543694677687627545908156919236550023417470341570555961987814455752847816018657134267753207927737368411222193960323426040828854710640725841661756921310826525695165185054380755762890046258113647029604729955549646513472854797746620444944607431089617785231316027138364943166356880968411378414334969207850829127709975522013939897062449611625722102039950034315586827746498438701722637844906226215960770718371757518734264661378785192521702694206695082554931729344776809028642284389085187655702291408353847499270597921479572112573409726115807852147056035034044852036680395545078963414238293615276100395029801018485779153436266496389900458128421486022047231115313410324364546495011585149145849650651811245916220120287805890321350039179068447428950085811432338342782322075125691754688966969929267218738702696600505802560038801287774241508353237269280453253329444041509319110101045607436147415257589261941014362120027861903279313278562560993706163794620996251625928460876087459732096971317567714900671183548457228552682755167201874270585367504106643923919709451090141796240361175588292002439341867437330126013644336102538825325522551231580586997745765337755261195614416637384299161555198443749798724424307386916162382284287788906246065505835258956289433950255955592636266674315817085793704753767791860588314388659895547629735574000062505871313578051158661481357239984205796192568432687965448242615090957418152410051593909651338355812817319291466082211959600841960696278500655068226872347672971438467609843415022079782886281012952425838720351935578647934783437771702970813140329874097908147965952421564404239329431466115252049742923751962424438966452107344407168221070956514793570512586147704852303097654527534004901359102874764620696602451483732519825115581414512751370534359228501700352634582233914273748819020483385352309837416588902845011146993019842295597442172510310147868938896401788435746132692629092675853608760963166597601397685304154915863802648438186689889767462621325781848453137139388865080395991524106158114231529902423264952259647432319552516451945468827882489185575951973953394733820406381207144461488156460960959486447319509660857878447543655463294560026060060140352692970391076613504996165618099080440497685635336634806603048984126708180953720864448537807535541407779753022316435574830190845586580762267780516803238974528914933183865458129470917267811909957879726276518401618462188261517370321236875473288740105511936274829926165002580947481460135672486463669279585476137413391380368552871224955251612871190326662930938070764334131473201853617826123359359064248468436121423585752444917550804302953987892694271154404864078397075598587213711170781788406279227316978323558674585556636110230366547239216371412284707362696153278101958156126872183896146327765381368192791407186063192853336963336429088093641772382770266932712754114221445593752967143678785660831239983298931769318153965172805019992166851099552833615819589441777629050898531843906455802777899095182688341128627007093998158622227987006326712516715531567743419003075631596122116644373722722910251478399688137468324359860039335476967905585571519287110625883623293370638854840981450123822895192153423052971149386555151357418174790710061962115367955917745980302991252123531674766097758155425239539036949377300968793381802164533012319008704313281935718939794574495374449192234764427768123254965336553918789844359869037167053592967229322234062664691483281689657401142308986788739481025958729926646705177780235546714313998973834754933950606603416282694168392674825557139678753486569568400705055389324324237317708433607907703610465310489924949316009356767081234933680301793641694212755870790096199020269295459360015625504936497310317341744765665040562091569684045633086719439299945587460846101161946871333319416111116330714941043786254884385222059916707140558607455002402761424931614701892878162945925871184385424926800098623184045836741717629570733105192011208075773998242121372517218561081571967796785160630043814526273701023502713867708441680799383324477801660078881141824366579655389033429392704742692042875940591121009817828748339878035102280171803875064976240042615602602934657808819619095468674184122172201411197003654009448842485283805990388100622913639808069285815415452733379582371182536833889771561037816347105807596753812483612259183340084779468442979070200760168222832408378519649630239476007738324559449532014706215148554754251325982037973355663250732342235665015765559163936920978102623637545423251885415323648683722670472310919053821122778089340675871697250997293427832547657988701397415533674566456209551830396914695649000669752813329910501395422231087189878971781410469912226843322124255224099200752246501185187714247120096505065782238948566143724773354216070834451327718011434005382079038928597219287950652721893630473613623814804047552624842183655634891984327861391572241943816244503619730904043876974392506742234970071877357683443066027271942223841186616590339476550776426360051783209988779071275134036822879967510045846219083342687344171153407777796542770194112379753251017751186960606920205648599234400557483184510257517173715424370604962023418677586044195315410926691544612164818735752959316586753743855344429582907453030451239136661929122564772279777093159391344399762887943169242020834705414069293403197654048497545562452390805263846685473513238262962614340231824107379091418650803071056609192656898587695022937848192686710109208922627740317294394590873818038116734117293930659008360676302522875103152822362763894799406221850357441865249059389489972481002037192132567563333163319571938420034170040819474076072869975858328296420630514718805431887347966390736732974661273850941146869515721470782370964621045696387131714572022016246133111704828670575650803933700157500856872316429818477190503277589077105663112729709006442917338633832895897324611891997349376642542523941821501336461029143296930977863081140869496659404854528006364909741832411296444042971410151142875940314235076393404106460725102878817332760658531313665788147041629484225621515846055153828983439570464131182621000396038136840451292349587209586803866138083951124331466213666005638687264562447476806545367541018417725414974029373550220754772075171290814868209628067297919550630282120181443571965340752859641953363226512310346193461938079187834486229485338549419274602427039909467934648381170393116924613525486975046435105894445865095141049662604808480923225496717593179869011976773912124072710749032347176770642351637324311147157231047261869363478196234080433583128634996045242938116550635601062500080950601753469951254504605507476294644341845081164402888896991402093852239510560103467339130152223681805086012965658436489334376750391448958252514524773297368409500158559992661255766726424681328455037282750266367573938342171480373791603507596332887883567379752246231605390261525110437023074954471039819942067507012121404157086005546865401555986886128227862329572118840878929246209510711911317096940864603529582828247414051366104064062880057082939780095388462905953378324847153235954943900953136701597730192118375722548487222779322608639426727821328645937497350888114387531223351111710362136906514054770292584194896391891504195234375665732136348265273960460896535908208111201265989722068383846930837789637452174304948086975319942174095856506716629319723582229325092796700779505683659898017183913122170901394557200886018843201695744976322305988624520426912570090246854100312970910653452343154445989683204172385535779789890711586594120496787881095824756044403486393397351052090896418491783111157711707197088644668937252886522735017774554103756150936595497175261445125822670282722964529969060459169875310338644316159606896703812306141086280108591281615087625785198576103599333531215353639213010558283468135669683922319686285569235681841570017167754178898796821840787635174332109185810943283122062923797332369455591990845584270739401533663089593466748120108399426804727230849279978165503078970717424981016428849110638466128457325644131505258739248010988508428588400349515875475255517438669189141912254335816464164898980764106986874603995598853948571231116640524874313795715365065647796091143891379821188982425954117127048940274583156159451614648507498172932603792667077755329912824699042743818533056669745128869133047468745019342617072056814125142080359793461542398294879814812267684127767725252112170226603667011416868998562136610070806777255838680560432690286385367499448804460643496408107001153373258242205251564685722262875964776020633897252385418923231611592334384547151665361184415469001684720722524256316060967479502780978838184977692685975580082439949018955399131598415623881172990825846800181825323246203498615060708070929603006054053396868813447524948583010039169701307817430071998898046866096193554777192061742231604588039375157569830702549477953727100748462788928312879714868130625924576491633261281572549675279068015996280777672024511494334080309998295197939115765045749597577842379297011896086701608211404288619379589685930692899462895069366985471749139491870673109823356778149387865230746951221915957113432950854465447549765560059560694767237914495450187104360845957231324515055949164394227508590795776655197663113010207825977029155184852831979443591839141526745369568404191689753621517163820321209166948564688328145262767185495319332140792607575186173506694412612869483161505406923892002587322851588741094812246670969920970282435523233732161614293910391293924546981812470391238324791721110065680720748051067251909611643739542721373028973034047076785657434146315242587642711376660131551418320928724638096042765567136288528424942315601152812928630529125987107269783256112259045953306567894832781094106676166500105122976017978266178106345703321668709075532462194492017376081516506526055990312324143665594549403990585122193519093862631616559166874600562601115973732519931284082910974586982382765511124785749169538114668172372590246824164724048349029375746321767838824752376750126903009174173401173240234663891206001509549588344099874110709856708021635391380814410387703302127463999356120065937853637221264403868561273964297204946491866096748371834821879114699426750892147413478258580382867228386642725780838346065664951624962283201708902316490432686632810154398398846888644071072447428048620150909185698726857749988896651969110759088391776931216137216842485669904308486307751668242012221929845485600724210597028685630517903535931843281026864973654068233077751328237184387727473005310578473468950232042970019224756829471906170419558523429955670865611910659190539171132918941430955701307031877144631951348834388255626282900957605034146413007330312473450462050770891752910560421108615640544751009944073338042964380877129920148594055201885955680852144110951556684186420871668471050539288282983385905093436026367121221969532838580798097063296515252691556292182690387333527430093167910578467328290951748761518437454676086255109430180531907791263060510609296782221883146357758596301806656082702867846559441649936011089620233248414232958565577230564803899196421277932735510489374099711411805455476794326026066932993079694845635987531674086992364849167466701904346938031168594055391435951881633669375015730170972483287378164628822369782529873216580846626299089656293976154196439208107558830127241377925691837428780486194274930688481589207918330453574476330754832214358935415445523251204249772447511143878229989314089294804337289044190057920165567829984409205080484403300019494928859968021738124079402971031109511729856348356919027156314471810492011706469639149563477400865840248468859736872634212462309245107190345529705359826848510491758838740895848584118691707074973673703336142043201209130985883579789078290394076157205352180001131841541225607820036664735726375339446935841237340451924969292281589425816839614239385513246623433131803665174268277410010158649235015196108922886333113319038360404007129291601872366639571142432012288311307177128001398734227579586382806751295886530029128005802861237112282944098140462033930764166991549282366661020001011060008031076341072532543416494317707293689191974551683559212256757311141683127039063348603424261639701090451339644046569899129252782122443208393739920828254283180335782763583715752808178261207010802976748347774164535979759467092809594083860094504789049407041581969165463472803721943358336314913044773223948638385745495484441771511240777759688865391525588480287457836469344945178878070322118460137212208295502123841284771946126495544643148459846673923206771419977424124284075310296189124011612359084793202391737400234457834376954680268844267692861910157837759870293765594819775808131686717614062365068026470901656336330751255525583261282342426134210148171001248823794042262852947666373659059923177118568066676289227524926496778026430862749440497187622089720957740483874900570014179526892386077411804860777803146039581922435001359083699506445275872059356360561730387524561638412769577906665179644769689812457206922701835324331302919221309349671614646069722048895472345598934855837858745684517446699430798078597801929666856517466499840135733746596086966716736420136500443331307768947339773654455410365745363516076941997657760758500427772232228522418719637633485677907004593752640744502632709599649767716760239792391724926793066998331797674725862042199575762210255387674092000602024489147123378007545410539460671021098548998140368837764790478687950953647256805265946636549984140737608691678887530276339571474459253309976959187373372010010074109434112106535352003093605379330567983290406704375848008003736847881590426039699875327029621855662956405837842774364678135156164639309882298690366623351837301322105863431258703814662252415757409837437731062080289617007541617211523127891434075039703124723671683279064194732119210157333507737698943774422037933937691346929752144048781498773131445257224821894591095414153444665465530700704831578665401895641777571283918788892459763074794901980531030020928089196326145206085848877909606660439670528533430311117847583407868846206736953524432183854547875702645794937887520652188645483315949665746298259110928881903855642342416188858656637647511770227159350667299090481076809823701860005526168185532778280072288423624120515413876411035140424707176798171912706333461078089798467989652249580777369937257407541399594136555232982930970392982923286725429717089703081139515338080105802615953721471775800778184250115943153499950657517043482308564923459928823827544835561633505847002979357746326075104684471184194884820687813341953622010370224326032002661492636800109652366649885073857350790380206560617043582602581734812150721874355641997720953988629935985573570701017564977932714874746416727102877589664135424387882245953714273147864224156345526944823645836412918661542656182324105054675752384516409091454735461207028521603054325815271862604510488220479242119484707282331886721732450164885241794172598999938844178369014767376352311898898545783179991518462793238777597141067180111281073401514723432649798420633357766999034847314840912443934308264490438662024850313840171801162478567460167903124797408494760736178939873107750664241489237808745848517094502413395888105002149874573545270352583743461487286313479507013022322001297470094215223007424576823957914456261281137895380310520969930899494749586896334260276597245238769510425517863066623263434233214890737958493741344827159650986788374077841400514689723158862161633240723306180274620564642664821064219886266118183648572769916207881801459135686952883993436500366035403192369130053528089251600633193013365017838770220551587862312812095884953723748755979988730424156133562918918959913789067835450611338179257657665330625256220736460339472465065665547255551203627206440364354528331864469668269257604794989301504314926981416808568439304930897409718239228235051954909562905122146024172305768518193904868810328932684314407530827604720595899191759203379200397319833012014803361937034762259572513726368839173995348734582144852888426959818492528076177054903949223832370710044512735502640514765299023031669935150715776281675990828740740194891309388501716284205906401969871318098104045019838380994152378762629746208708093514983894593168386006225152977714371793236392952763059786429846480314846681628938146744572427179958555697968329209426852677390203773164571335948660129399406326573408254461824463178291749696429086715789046724290119595858758968223662889663779325058275525339656820999061298948346671026964306110738813384418265283801036587084799052379695314006746361763798661004858120996369326353815808039527710994862057800079396140446999268169836330289255419924007473820243094779231097473568950287094217888666537445085479432044093293125575237685364388822538837491423783448287582564535268963520548729247575826521275398560829820932266745923691237659974081158028277904448604761111556452123612532430823322933804819193755773152043986506856466917412295561452315653045463678439758553952426227313620495754536745201257164206886601627594452582709305842803981463792758249122588943175756579391157771982189102030560201834759781958624425259904985178209007050091561050067299087604041626024779151340888733715265925672763410229736185467970611826823200795119555014522295705788241198988629267779234081829170019564684509456671735285269624574779462072502878110853569241840261777121144617598332666519383951167429654408847461884192971172129583384077345278721464719380328134842945305147091952064217649090236120454973440567526440799920974377411329432465333250462307453277997064060808605929387320578742652483701625794406164744836474839624005012731439881761932458066320184879153710313261177037368528113093075514780981797960307857486298649410849975068747830834334143352185098553326752781700879881404821734183781642739580806000115855332591533933002362004699709560957131482709268909134489017312548851847763009148356702289729954011209639881554173969343874690664280702331892210017820664014228202133866234429865341230371070365602440212956188438456154238678894856429240947854899992877550718049141284435675880471987034294736117708466783352240440328642299801112157796220900313779500119792794988392204908790062990421410510049461529776508304307298412538723005095869489602053600468982367379682472524131979755129146990981193151723446837574853502809281196735489098197240097871772044751449637200204855388077976179078700180896373426341308496374558086671712452800775937522078282172250452422360687733697863997680440772603303285246225616008837531836487735798846823087128955012938641212525522445721014327047054618477136742454999788733399008386376543533791861356950434384633381882147513703497541441248661877959792912107525251942387815843936684367841774475292191478968223424995195326648108301082825520583643993432634799545291797752599042788495902724883518753302110885071795219953649862696813757856448599193177104392630736101341451196114197999391806726393353773542933281176391140420372655536396653707484131301374204740970738958045578056260585818031237100788048916432341846963050163035026762418409385248487293587090219494944663758401857501347335969340464674793872630552383927639223400670138031725448650236823108643468128330330277026612920649033558791681396055313500412613583378469417976647191190114484639137919588206784012842328312602168251948716975214347453619967492541023687783182146420115141761009795841112463500128112332002885195663517560892492177742725635799885667108086225640253997452467287004131180529483102157927687877726665012444263023354822624900062903474438868231684910801415594539668536750494221652356897061106705088361479491096715318334590001754663413891249392979740841549004735278119147217491723111033699151877671505108154961929489194061637558072066715472094521563264151307144625452122779977305109388665312957222951348060675973403194444912684748555654989597892250189476296149845898588430685315459136432318663622083637172945532029477381761265310024710403538075748100013459673028937174908033423335016678223623636675389687706983335557378308212789962762616271164383194084851312976164949111661779537910958989843676850674228531391311326942360706937290558688694930390133732006410466675004548810691597586865756335913323950663520273788326086312465401061710713964855370811496326223812547695663430225019669227365398429111357593024179537940235285155416132793419949348582894573084636224078176975151141688418404662837722284870140685358296635425441659253126154937894653689588701660511704278625346134902610586038073965723898257342431546322452251058083390347191860425723907562208878047551393505456703588478348280203714170318293154903957331774995474911390919842777135563099456667505739859276763543652853684405259629586696073684155935100881751478468812594161734979598690463261576039337790464840645116792284999989836436076549753812249497352238632072633191575027131662343866717934778639010719960869090877405547065985047444542876111884610223430738372786015109584149843475676856313906306078748332207653464612762685802082505681044954292983147167758633794743680570016815658482350107610991904348496001587689721995373234293461493592524828792954154041099149437885679959306588498076439458484786522399878062461423529959263162853321053167591673685087366794661165128603112559359533874430739416403437256520102136853757353675792199326939841273814163635869594803937836438172247896109637486970350868217393603846804013349041787602858678551100151280876503026436440376295598848111520976962621483952616990514432295532211459488889537755072247999822533538219198335147331797681419774297854369103426962657631235976054102165608434652921873518793816197891173151582877672064280145174029656771842218522572132996640026475996739081876464903202158228047734133626495758650652182030262511606666416775969620487805765765299006030793234764200741413651570173701032424770650204592625939239126756614768827035887129403364741287728354902033184450035823408075722084565079698268346889918492764534689647493256404863799907055377734984121896891367288513256307189860238768835806881873745218241817149518652386116886755020120721075328053907385566707537667931339044449037010810413299855989143171895485137914868846335607436103488804393061237883623045535187941430046773505108051100317378383283306646802382131616958051158331635897986553710012523684640521867630183475411406405750124984438400148972927359623245962469450541467570087025534536877285584028381746708992249701110405577547243066311090058399660954515653073436121532548019204648477041096317829955502697124895134823105619079135615618633468140630865643971447305434453044961312627429933423755759205314648273153790280619418489297602199632279737930233530905260077408976882205137776166466135237656120853777247203462372884081144423526834650060265611370790991018991126407089189714566262828172112133920791792955298811311141181934033101104049059014805906141757383794375522739365177732028859823328359628621282132426079565715031275121657985832805680395657274456354061135309275059206110287603465868788409426022035075627487542182548182750352729083525753821258377403331052544544947879800978070471931421201899745453305297390573872137832846075735971268221390940563230709701067891126784030483853565366050096651294343085744059284192018236414434051581401355300887254706803263210032283138914260444483781654198053933518505749742781522165908117241655490353488705118569053767623295995922800463862174784258257277885033805696189095887352718346885634044470385224900786770173407120192401899990509116528629935126427583663982846550895194318843413153092243571108996633409592186412218679008121955991938590970765113887030022072014188783699842059689799922357851989271797720755215417251803857862878188078616823664714625713388097539090458776533407267824197379787167524666698730953678653160654541214390136130185802925625726627709496197466087745808524439622371175406766481434946676413862277418844356874511575803392561741659418950887200355644283720953854987811271835540681315802303209982473299948266755710046567242252222326447857711865222417793897560315843032793757301790239170788976425574977439817303552731863487905182706100558681256630331172564540299661734771348062587745501872535909604344098065652369872803734494006366479451869037741865278665785458987464409901441547569797027334639173819283034012181779462266335038977592436152732503586212627342095830802613250010132206892907114602890650784555443021755339907131981340129161023007654805738489937567640932264468762516687088484696676753365402464379691201162447554675969111825529161263545159333860240522418291560986030949117672919686512862809627873482564346013134476947044853736511591897591596941794043607035953737189349367422484012010599898078290132791390311947096151445375086660066881672287938063208169410087458115243348461008586859001065034619616619530149647987432356303024366874181177546038176651266227025098833554579014845873335854855275606276617964221207639841607167102477814739422918178272543084316323963542698175295112896750107408670636367874663230536443405408431672453096595965054581758608117896041840662479617420022404228730887503830482906663039457773793532500931422160272679692494344581738568599367792260669676797354991834830416027084769137344171150364896613619014837851442489031829780314129000707688793652347488295248876873580075063073756930297637074304355371633058562897834022039520775535270424626026367648004169939849068661335607571943053874474579742683406081484157892340245209700970961302497861505930902138794510438578765314485752055199664243005105424484301429191210313199352578897130567693270615123526718541244723213669019648559311476948511977775025011414011503537133048479235089853083822061734059670199283740277976900397560670203749133857443792855083257532054412599600836162094167376353817045995235881873981521707904350593212232223136292487341323101534805894898837792360076227358000579972281981735922564330413069313404624825391821922051404686122525481113535304463243971318741729148258514300294358999433487290279629166467521943209808086773108330109225103792335433848881732259187142966376481129125974323343507721997244161545511988670811337798224626380401081648448726075714379446372547824529956156730363516664943826611936848546458654480306282640794437143694092704131217663329600753523310472734407974431857158449182567631885280111206569806247014776736053930254639833775394201431975366687836855243541526054217380231119998360483596122663153552465546355395072323148862144863706580778811911289313354735382583913418206608989578480236323994418105352367436960569136080342595280747549477179958914367822483417406997168740263157275248100259822941067643041717813589963185371850837109084990404162566175570531823281975702052987085727252052546377015747790091415826465082216909908916310794546642398302477995906834774702767505878740792578452116116506773637419862367632570123823083063455675312497763616445101748260843256190406051909947504378527063480374968391904569667145158250044060331082671784945121418145420725267435791362985756316491229535652575246255027416934392567692027538218454741185699668414415597296826571183850898619383682297009708509072522076130469880685066062752611644529717544909066793818044744436626110712233764847583951561049968437456035226680125400594556861171431225403844258441571501198763936859452293440069566437612366429435784436607078008703587033833125653410283456145408680885880865701445188905608631735662570329014018469059268884953100423319716296255464530668256401248007792271541943883440097640066743514595757178443129759726035854606986996900193393615336560605285504017062602022117491034910632121287344661989951441957259211483864376391431475690649637357927748152085410954012979386218951945501258476532578082266539512117278944562479190169514074321034552114050613197602522597379901321479353739831348977759229795041059427749182890502467318687837018851338814662629011954762226484073129927944740269944585361347373409495821484025536371693321710423646746471332779580572316713877006592832331925650418371005459621333682443981840281541363661749799798818374599657119467686348994391308593682696178578514572228242550339232511173396707236546776470669877966559523959224273592175315458601141195677575792497692423446214873134343321740758700272876627043206199583132143503228299294498502167568686563089408628722867718907628045663350384369466944781680930375407025376174296264524836857918276318613850205984122935112862136968349141567527079986050097534619584266248802869806220047379363517410532951927127666622736907138905377842209412060750478760380289257691051538468335044675967845046522490627119977316543085921514665186324648754994208125326394949060237555264075859101580612699872975822583615336982488818758459391579258819322121928149644199347603217543399122494177314433315965185267998594602514012997123072294410302583991941340968585898936899033170412188648175117035860752490325412915833454609895900178991534990418711732920217630473506262793008749536002771494087949407233315273550233776695057266203837442235566705592860084104207926813622900183256215391195995921665089345769336492026813849933347057643872488096110103300426277459705676742383100031470360037628303263161547783072302094657128458205474308556489093564776532680341218860426627736175980545743400270074056224816607965955958802450645437747303328744550860895626087435835971152840314185928756216033863569514936499799772825472246553947617046422427699666783235268556722146303027284147842514912131811404500161918892742719657472024325447511368781492159344238151463180725057628976211236095166616121654439723193110734920859033509842257593867149109419458281672415667434328741144321073423720755760802301688403327948101183279117260848680132151228131627066439703311680855718932963312536628028530056318839464800934990717350725469824785635057571475055568729318918360905610680578683002070488348949673325218519567614388718852272321739150710371679521825921147784825705825526713268625551814557226154628541210964744210603108767774583122568748590959221728298235452562579865826335675640817954780186896647984861538492060042168108912328866602985757052446704583641321011080539736002943325600896108631461471110931378835700149388376224767078560367792804604371165063085866910484648597857425991394300087411609566314730362968509939305972984952583491642454646419024346787593647254923366911141700782506847424820692449526489582786684166238594074921864043400747025712370627978052490999854161730658194057148877020634143963326478733867814903692360893826749508589249400078910941019261345770615033556665137623339727066867009872982461027846441061134791242008514505678233394362758443875978657187399746890973941635007446914941376581329860818107099520208466852870686808421762060251249636771798007829986048318779081537320041153492902608027962376848047202267557217817539114855970191470661187559439521504591636336655068889652016630557123114245881293515060308898906380965620414336332963674748086311249942728065466268807475696189363920948240212414942425729042863119191245609035945377217994152795013654732883938015384610263407414705324867360446838836820339950846069216578977289137605606258957855167620620284607136421691918198399863137964939227084042468413989047840787587353858847424987071524840799031160696241239746786233294579903394213272062034082347045674431130215242026463576268389719376139048461577233340298936728795042530397956914650261504623355358623209176730791361890605479710138129151490575357626800586368284199269143128144782845193528055727403990335249842354060026437197252307399964895661485347650844121208872829011860543322297141546743180145834942988961334422582815519753083479045351094778675517262645312145098380519044276764905801102712768880577054759692695120241309449233966090478499102253785307056954157114099646808694596831567231236584177247908712799954548417627881807662488340609710939025807670145124113706767684490168644733270954395476931769998049088016551771428258484955429886130977449264429386323501860746239392499672108453342113787153452275131682130353012209237818711927487165988768400863282386197283164214440206190586400318838851044632495360106514056267954859330120841874798753860127459326877991176928729667348967925538374764479359815213334563554771447019200931897848876351643776796681853304669148843519759202103289499907809183463876726105482823019649610514403319205594218189129514336598397705608027001190259333560223970615695007689121585452780907697428178636591275546670696840540057381508859035544877603842358052429688491806646551415075180267430890835373044827815285298054710879789499066167372445492949892787205932008754321675037895357912134431585603701726610074429760690699113244734784602372430696104509589182705422310495501336439868963590881860791599853101058915140966152986026877693555301637325072270877750758320097226120067788006446647560779625297871871008226989172683149854472986190896462307234648957835505096887250986462966735606107266219859434341960419096713743667376536860092829896356471707347325147049695067396799597139658413459627447354054994415288217182990795064711707520754632443344054935435280106318536373081639371889767554204415756444476552797628444685216011130244286012423967751862183072495543792855036524284967346827135046371521562320596465167275055914883841396250824870487399484183354688317476187539710323723429418398990790942986852784778496945808450736834877225446898349098849019369250651518245068096498245407562201173682546661318692090711513430503743444435586824573551282336026506475545384857678263512625115839720436176320416307295454880126782367806935135192482868366632331014265162789736328689664397034123927387198790494018195614200189762919200584886056468049666271810873209579179115039582010394137316635541552021669798013908636254268225269053344077707464255347360759270768050490330150975119374702143090103023467698838644684078389202291784019523910416621906603031237682969302289800072464773420711890712922965601362767503191058944104896112199701388999727096187299273473400939565457861959706932616460651320739299505888101161868560879830744097403335710932166345285098878799282108444717036928166885229108059505055946890260665989431413973181138879470784542353375132089350019441742258120580977453949406577587070185167165801378888385650110284381999472478526291252178725880785693932259121156745344718917498111547145292761671718568704879978473432330172276415471091516807764917716837429880902787878863292731150315582412090179560080273078675602082794843277930063303071166113130811998955762298920083351252777900379378869381218329138260138334609135261025157805015796963085211092333296096099576295468047343825862506983781196490956624795502371697100899229187711012275035899139054055622822914991285334562028830948475017401624808177476271222474098993857611882692603547782465363329991857850539065571322004791684289504407242926664199951107268344408246370055426816659239818020174534984881563861048286994037207497580315163541479919085222765462180354221413165812616606901618925414511924318475614641293610181917710969737437669779019303055310914037535596545831474904545575730589408810738641826797585591390178389620241207887717935011931120692322437474322548259533632917187050296363386367189121455753976896695256586673069188084155641342452379889054343119282798366391291151719357824663007507977935751398008445812987930302976619024002951945611834597600042865203149610053625368147636761508487262118151845741709545230411612671308011423450826444899832792970808829222557023278053346951599129392688843376081439251990674953821795221745099887113595500241427252919408171859005382876276547220585974962857310703152794477277962322246547283617112360990167665582128690194185760887128077990753605797618181963726463951790238147188061740732427388211782886434533964900624835168178691096694220294088930426025223865813031603441444054042397073678675815570039347139353387591051006586465007911322339995308370005133299274583476501672990165167416618357499503218485788222762429655753301958929257204258598347920051661084632439812439567840178563911428390348707111914400440617377256881996815367231409209848525666679836937122221062167493138572879926656415035877977071855714353541616656095752728638363783429055918464516148162985728565570880202561809353391889596829377472369308278784440398588550116327556397187013849815294508531867110276895042078777257435771497748072693666507684382539046386275178916112630192637596443082519672155657080901105133657345281598809250526080226620732264981337664782982098450930035189768944023155724207889868722096125654106254615173697220756372914763506030498162318005058434578080099130651003403495844254496885191845731274156410949045029206372231655914099963837265471598160764385792678214016170339301189338233149579532760357913968829853570452697452734890092203292549112318313625050024163424134863689378995173894069836422523398597164940433723529120845100358117173431162444727620137771820874036517680762451911319969152791472988175225422234243113623642093969337546475160128915820504289052466655237613986408175764703068614250629516802850889044905437296637791666688424594952179684755476782011212821908170573173374143937609692838202592701755873831389519477246238211138664822357708637456650721014082640574366263496678383637794856906772070161088343437611316597805199835022094755061342097394577307199375518054156818415169289847595259204638358618814156316876737544414585107197654307685383785544952837477967327958460648665370073445859453829462382089334542636469307956000556220872928554076159629236599761256504626873740865298481529159849935266609893168468824139764037033739795312464399619583676961141904027220675307290181821568297387944411938134222972980060427047960096243200267855836819807227202782880806497024711358176654230152934579755531192691883128096968438969429776888672363263180924873615124347469303815851562264091970636536971392581751454009276538729943435873278462241320944996527873656860015399654047954048623463000933710161637458878386468287084157241852244867609337508939019134878649171942599528732733784664330334158940611226145520106007725673367163705172737002636036824034295404863303499115251022330655242404942323494958436744041598270837713686249485999667835186883463663799513726805233755658140056477908156029855849860540698076574535930025502883314441498995892035350955310901265332845677754294828354243012379678095255657359006312920622025626435336440707824487903235825913163377140020753521949524437255011397397299469852363716662874192562068155925213330157827940015500353891467522311341743419331734797682567099034712689880723442549325559857368185853851873450008524336866518918464690001424072105909804511796799398463852855588812700296191234887453222866565149401729823034744319515177550476852891547641086310533912007353514941119020528514544223605397442264753856578041375268974255648673996250313497005096425162573719580588904718152955609664236359714453204215901399874715778766015302546246032237014929080124379160707156264106463030715701050829634962955126134584591247295978177357223441983726619195011170658285900160726329437703518644859836586893909316668087537806165458378486954993044161050046439884940994653753992571335289521140755442601442019738176675953225460087230060365247033926950214338690682845102783613673333868604522088928807785530544487133352698368307249713638924690301480814887214205598668558912047451092948687418431029532058267734698420746916151342454839612491075071500104294846515739000178982774820937969068334380927248895144949111283257727374306181938422473395023890291886281625412776093166884510597926785348109916648456391488702540047707512061007747058126957436357903843173009557538802212742220086099013052502621642415938663369319670625892806862072868459338415600731156195158536206503043062474129187465136987224844434034982149881882460555762661770601044682078461309215156430447527110787723604393878671466977973774781665073681566925015065758785454494249510530378162290315284783524066591016216316761718016600351383621080441785134007157008528770052499935418178158196990888922989946179850040407348126108460644713640143742820939441607221997330210632225349955319466960763175845001353361152786003244807551390785282335265045620501590654038406233383071688044041237318101975146615159183748142067724635374692269762347923967419785373373804689300402667409825069827601320746297586563730829435505106545653329156339600929992723187875128503373647087305546744598717265534689072853544968744642708500382054424617975966190334502723026895955673812607815206022152774555071526021448449019345738505973482860006129990187822912410956737882269614862317373615726332940590785213549312124484873091923766956860160861591034648365681342297428455151281123295558435190978497172594319956398531606462585891244121683838792402060040877582784032237971443388894102198904526168588476874785140362267171407882715425979452586410132506022649816531296693481079430447798584880416589022354269703075242118282528422615031112065415787007873726517506995382638177828676526363338843124952780860042119396839793101538427910539239911465330047384829979219945738093720565633384842367714371098708843165262054385620730086275550224569965437059899823281124172315986939119523651937518810045733917896186772459362315737513856189928494398848126684109481580566781212661315422472170164879548012091512107648233264714358079807113901313083489818988096617715720130642685816322818262992226985923769391856367769538506960443297493001241894677178866628918878478542946940206830990864865081430263257040852336008928178827351893702197098504993316139770099744391831178130273729261138455681497913392519602304745128331503392304695242233832531023624233849218659738933472874972057462172864525875390525241257103976509624302351659758382018475366111449158599179368757278915923087811296931837784374595946742194129594615276462189349488213742910221564945139877091060573970183592972801276880236242093476661760644487590315206092971069502623670216458282408842042087335285438773928854203734699050960776772831168440293712904093302170438277137019554817158044410407276323424782886965174732788289880548176782581841642293648670287038478717928665655350265065689639486036146525058175812893494855750365930708652913318694326827200865158087819558427786861802308111994978457072631605938831777296890442312812705446697661567239370144874482648387498807632899246933200321517581141858718178835442615355797082332936725401801084671968996506054681065439809441057313611423428687319756586985713712210455682135618403447164478927129963237281451258005257697347060215224666651026126474928805127960660110675154889686203493075609199307004235862218963624449837586982383940207066815116771005578449609339411193198168242157183703337272466347658632073535984707125559299334278552324804274586289626839356210264014667880209925468836909630030098760601630835042244754377525015829723903161699855268765624266086029755667555843337913576559292508019204573706101760537351361203457487980729382211585129331880947096527910131835045655830648145826257884961675782319232797961748381730749865848948207189790806801591305583773665192665995004420978293374689527849622148175389856770501652375385746204681934808665267478143669329865036847168367277511263852412133233016393890887844442420113134242627550718063499808469250131947315775858324298240303792954144024063708470055469856115551125859409529293336995297537689850801994057179854846453247425366874621729064515822824246586796815445270193484263575540608487183684691530804835070862685745227602559220769122662760974245527153074311990993540684529730029792259610336995113342301468803754321826596146071461171743189112095705503898447862959856075585447363892481492379243183202909981614602569385245791006615387200545600746124965370750824649927621703931094637783941785098422696547540456465104266599158913055672248027968630881831504291729805304488726232041426861464504918549182237246649363738227613605903302354777541667506655352007316643756674144967599336242079097594066427658673557560789300634944555522177230851747958732382419649202162771388621516243723841036825763104727711051029052664539150651838221872688688705864026732823271969305798719299814737468305099349221801274653581003365324789988095448576481467085976208437410281920423404572590913712155998626781946353464365818301907785140738806110766642945363041646706862117345490958126500594121915042228891471348762134688163663826668215035459448745732027951679232337681729966330093542859854151400448823447707601261770977138003179321685848528490073916655274611767968009062220493460786524025082306910896057334260495314676297919196675132378536208802143560318819398188157874783256965125521113441570622652079196869094415691900020153293527511730650542731875648353071918729536111286661416850944494791567899268037980452283029487054627410966313012776753290719902113876081161552781140274336222795940962064694349263124753842341557574361098333448903486733740357620981623451390006131529256259066427883740345708878773719277069002883272091481928260050236187776555076944041591069183088922245107113878625034257880144022977729282714283455853104361910007991550776349714108859341121700670822929246348624656130366851486201841153972549703695062964140258665030328223089847887138659765506997410791761141037643581190824509232596689102595705440845910108611952302736133640428249381931461644870882195331274373056078868584109179524586560875954052934560693639104026127864998305331287480826980615366632405389824334145457493716066781500279502465291850682557233596460155791003105129345315832398857655796408618784665758606523292442552649249189759110974173546114169283112049002642299534301500055973514944791706199015733297632937108088686618461113894047114775056154509551673090843693894089094036119082376200688866218163662455895440796362655430699074886137687012846081245552387460117051269749475814434919492107179058912672436988489091446422269687895096401617350661878779231637919854930966440001514210843330004688709018995774323794815600079200019654755615570224271519290242416799261646521493661104463592026026470924654893164525024910294951081016930152842073222268062813553198020096793430976730465373355019860477902487037525002375291902389251730365900010439201000481172943202101165232392181202442885370603642265124876397074775053771671735576905658723212969789545053489530388818642722497455919387637380313637335953709484649378564110177785607639803814653170031123151552457396431218692322295218613252196436866442389924975880062123426082772409212540592362978436096755785708256806587380021018368768125056080424837202644607599345940137408412162725552814046479789331675651378073573166849422293932866187886990423980129878057108232008950043004923354435006097627273252184947113106361403318855056703422419905098410458774618624364528885958364978012389504202694300050923097066826237868392665703649267783559280971920332536406245000947844584815410231103527163629953542819558417106904807263751407855384723037669267462670006739406128090826151599760064501025007847502494062243088878180037897842705426237847551366468416635528347263775892885186986570317205398965146002750026508708306402822154384156929387758374994400464347430437239415449306587895437025945944965697285785810942815820719872432376612996175691479528602346167887790361065545960999010860321322926607755654254558598838902231741077015806476783146925827977529690548577004802987898165113580674768471711695060989034012356975916047025665156020552055219666336089345844636448813247000318160747030566509838093777714377348081633159408881872910408743899115932666461803601444197793323910497830045778123383425924404146784159737869532415123932938638779246644729833510500210723544353337170257719969136112774640597995967250949271480692976172548747960414674922811558715404942534623222703787064548043284436251061282984734966367415074937050721313245244821484811463442134893301557754937530820154757963823776491059877151432721189980722951022830122513137904547333361580832727643186648802001956465673724908321353010087484832429452970920909242989445335669333305298416445358246443734112327146561671073509578609150066719226868384977041512331330606778729905320738845752470888955495287267918861375575463930572711666757041968546546277478029018712162731816942410822499641093191401410625265761143733011634330289411885798204790830479509190870033525354360685926176795821394111062434344493460896342746080656452955010471822358036483174373183688644000193690732868269313625019398461480039388053017644609475616825496558486537219385050904469009926229680832858435367202238369606594099219177084465118592555688839230009836815927669059286605044819884169454475392904021935167829430692343818993444083167970358796813437105155558316114498303412836530230400644446651710938863010734618894274836273716642232208314232755273856407387147556960652349528704713863740565481883333354691787263558095318634490462275007170822244618454903807573492875052259672074105605352602911571722016261599187260298983267817104258003971705205110970977174194826179171486455180183102146017205096629493897190071997335784847661232624485371092443354360877163092680946064435671432552443616240707495204464473688842074786031455379511558633701104784906267578360041110034270318234533844072754876380011658902273582139337910378344922945137136530685883075436488671902948228270420235960787130106378240306078648120224523291617428837916028600672574069168282232953433074900250223418739159976266869436889863268032154805633679834625554685278835298388622649291598257998903643188982260842166588599774273742002814721785862067292577370252744761392264431523403033109082408769310332896411961897661501961909951951668733226115868905291328941325650008302779070143752513100595691489761207659695697580199269541200388542041759629452609485406908461029364899742823675448272283716926032349928115802974302700662175862284405943717572513433695296530657347653467801208997540983745192340055188282610584124673039111683732053935977412049955115087937023684815495295778075292982699326101119512104852092258554081193065545985088139746738822868789667625474875252489768920388664627031776078627389056528714582596093179406198029656604680543102647838363286383544027808531097613983720753626292253152869881950107128031833551079913063829657791366319028431907722510364321862890114878079060057470053220595507459277241451665731671968600963693665233428252329553434923763264205550657109771352897715423834888218797171407091475602238500451858554816759215061455448988522219563288080890030232698879805249791820275644029315147475128340640142278939050978232510135161802450525451683834320608968266622592594588211536846564635123631290268333337464213673615431115440353896747304519069560905613750783595208328359982933915541178943936572534683435093452277496315714309817297559722066702452728580301840642686087601352967641425238018630307559320984967696388784772154991608612377350311112954089694370331983500648926791759626743106330007413312791632170125089063186221430833493391783203908768525070635495347729293290557996552875374040483618047967782794752283024333185845950045106686111031535525374928370027113808592544092301576611893146659766146784994719667803988966216167814332947254043366707456118425462323920145661530712053253106440945853352625115089285568451884127404154268342799066303149752165619179053335924760921191135439770721131326809372575019303308222678337089630707745112109553355386917995950753769392335777768851527166216854180900423249412673317017837135266392357152000667544056338784156383279245146542504002368359743499398370351241800504623044637856142796930664583333590495245215243453650733113302032182239523496317788129804340291706820128359452662670649415481578276145609203307065271791863265318821231799857642771371699985487766911410830811017010356925063180326376215969101477359821130091008274046529888366020577428211586429244204875783198086075451258361599024064434465429198865157602685264828082944732246547031790751766081013955575249045446675864301908816675835689123440996364990999795664078080363099196443206565726313786259668425746655560007335348180345026511386871350422684555871124740278892818216398111909307001665906921914615471381518571199482141925954353684356315469110859550202318534588251141515713489737577425098102314841045611808316796927683888426694018348204654807244127709302746487024408846590497558609288867296009761411386658355504835759508496295042265127117920676673264445753162162980438573855189171328380385828466004565009334005833416479708620290395585006173342727774859924909394164189641864913610290930127880983100400362719943027081159049747188844031769974954520453937302275159739190981520404935699189284971418696349396872918388957761708003291302933823349923364239095749164364189356206645733780545589776200262262871468458865345140089427179458822142837982990624503916863757173673397700915312212120381297835507563146091062602785518111343624039869601115510270321775757368831136100280786274080334459248150204395795869737632469396974558582313280825833726197205636623002224619269963886149081286158266098757954709030482914160997530514717350039729391958921552027064326439543760582654361368224492416988880332582271675903894080541125668487142250478303540031564979499365599909230041772293870235181863135349977775034871997617837522722705105784829306305557352626851349950351022604430435415207676552907086022578127278871398557274873079649147519081209215580830624265095765793943237962333759776204238788352841665120760584145264259575484839893195454990405954795405048777687969025960189936563753305991847729407213794976134620607725885119341440493809166307665627399974898535431992062677242835098325983129250328403424298144798728968244426497501538352393136117061004671805557327938944718604064341603612578960927223395175603573438090347490193713899793621756482078308167815410935295278196926537388828314496558464625114168607526041106599926487216731018600180770940296627957839598934353818007314185291493974337615856802615872906376482185537592764349766943312877032240424921485635554891701427828480949199823869151333027393896641816761727992188512331557992578737682206251122198343543112266113249545011590594057873950921960833707871372459002049650358254394262359381141508451970785523008218591409423515424739219508168770896925677003069441578453517083182743746427464589375418937772424709627966502024370048636975213591423922055781236774543198440690563630708122006127909510588741884158396331839350031406679053347676610880654165442868970541187970752200450204944570155948149027411730227379013718765495469836337598030391863238552171923365531724619080919797924576527738219158486741244000683139543346113342038698613697460517454097436519413726875961695871484767466908708046750310825689370467343049287705562946047919244498260276025688589925844031672387459637613408120116058704314235792009575364612177520879441630191416576697174231139741066535502157336851268787921586029082435307675919003136627479479706540713745484472130343569810298335910693371410382626724269797279853877920830826799767242434563164430864698762773024872358649048830209962859426092930448746371030849281228652066484133377904605989514086085550427295192230378637854622748224982027007419575093556521236385031830417671554429111231700360647392197391253386452558949071991584377274247788474663059319612098664899633171827371371301634599721201417251572549398626186138751828523875699318094735671462239416196141476103655284325090664071855861456089078568386311094116985318534074149637917902620238667361940598694168288951411086982146471581751039462515340884014427527962451675901098625299587164620627451094499730387892408051263489995253953869028224135107712382149690289257151369941813725445474873732840693858284422640827706283374346575610543757750768394580541601727384748632311137005970086354266881396716864227990005135166654163006455042182550695828126818670740573018957069579011796536225519419713318785273352057448092847669538111423879301025898349569687146330004063642146727410740939257243937972959783969868421384228452618749006204383761627953411339958149300842174075493416333825327950346891847675004837788519275663022460595168936231339246246837309661316943373395760059409597204567698135522033814842705321890672808098149636122329924704553937519848958805233254615910791846504420244877513783295453853004404206838051789030794945448449669513302486332092786557634628509354346914571722636936033951046485641588424280563140767175576151600251749196914092319500090953898433682266709967873975689322709505909914244456091591981306206483310425376907125592881863170373247570594282209372443138118458935775335811948355920175169076357869323928647200294055667864236813217581457777561292397454589638763627435843194598541918500975006371291399352405994343308319028163094985776625829056131858629548523722726216056180514342847439789855207258095495358256958547555884020254742694153183340323257049869024307410654978567740622959046181303767191020138428630920210295790930949129282309388288812182576842853259776611218427828097072945216937010238665248007407407711740696432538971963481117240918027246337442953968984497988745212070794128594262355095345133183231040716536655834376023127279252692996112948733893823879747536608361184524365613682540407127689342853087106630612052210867063307203632481764632629834429201214654540407162322903356115508108578085852093646562957902799696827251757393343263085112924537835050316762147970094085226459961162882377493355825437871419186104424390225813653818904466841474432933282120161110718900242483520859612594670684562087975466196853016606698136831869150172838493882968369364884341736233645339765937492684147691604480039183988215015081090916485898287986871266311439809687324816793711173749936133270275844504939982950392259830061454827045187464268062219647860139598756376569751065236333196225331059237598204767618273656614797912457868244379691739438020094107212190559218078105738504535734845650206800768541715495661511226615892574670599768263939086972284834203388506953978333697697597245495627816987558123017789588396131839829809607852657250245214018819616924224488899378561505959884932790004275780985783757643878738191096854033884129666769497347873952055104661157438502976299898171249072062287923880806839550297209349135954552006085188758835357341964468153880874846446823815139899430103757399330966385346155081173034153547092962369411649221974743132634653570619797594105993890404625183723423076718811433317366496733335458639222690891975034350374047712352820109718730831149535740942666338257041287797000531261202083480516343444500558505989239836451687297449331370788176602526038496106414141252069130301104107937167277988372554277200170643113667356612722780638675443091501525640750151755045831776949453647163622651360313256063513132799893249377495651481102975180144599103285738937588601633985406249592031442399505014087284100254253640647274727310354436697258704133466190432145351026209175711045401983125535805645838329272016403069433123789082374929836397180667703894530307173490457710604388375587331506421599711456342369563036510415877113588115152812468315560684433842693946940754549396460401087621847193252132977059233684258049604269838799624927151060347275191775609047539427210990139810031609475073336894698339387955445425093168854941692220958054837814603981253887807528575985053389971086902586626925530862438674881900826471502802485309267765814026600228439657925638937141851985786608462026303957413547345951592376851041875919807285210349619917393611186576033077667471892251289363625819185921447489651721023503305692172617684746716018125457250655005088984082858751891147124464563299503105145104452585324087914721285495806329672525717610657641743058255064495806307462307503437305433736984214958664351295983531411393905188771350054439190820180083729204275981542039515955011866527476297848019976405434550240263168782279402959873327601332819073850389048838964776218560536315188997083027163156631391902574561253747450498064960054431689098374641122931034044567621828575941500130975627334224560482117471921970451154913383285673394542980935460842320623024984704370322509129121521115395777321290805105346727164194411009559910740469116255084187975007590098973171579008607826259020809833843772101179783481133980071266253683979397154396169686665567398531536447199499956462745784021198497879446042086164738214344845342606159322524731485892838241244657767376419337375725581790102955249166091385153478851979434127902481806590453960566231301797605566787381234550588947105926595186718259393773806522708401922050912102478598903933476309043552244867714973643673691348198438290503062353259695706806661124695034062688080491789009109576050598690007416046427309000776083233140407136212188253488849909558368884862777278817434661264697270802251548051188644453047097228080364097678411584192369874986887586693934670794309106547912533593642005695876302312231320084057655524415472443001860531263241363039900417288558589897683762067452242574900427948585852612074953014141982214515530434807719460994306035294262976860583241396340397362861222675398359042948584024824540860645074014212919647102423297390111522780144316366768638356665224154560671025693684050926338335228991174974948347584173219112191318707633676249939182012813321591480837495711189982904551325002948790760609047861655547172840562752563859906676942857074946740591201402809294438905248282659884152709142854970725749330671665438989106998116929027113253746765566779404508878842366394040263644675393906445411341437880513757976413930779243276705766830518695619663399092655178899822412497039395743242702167213004034477520774674780413643314878827976857867282749202027462402208705625746509185257885444097323196246124928410674091715806882528579936576037177340504978634438744499860468141587862126506005023677561816160162313541709957061106151142179927001323183396528226988852104728658877213474548153287309150879936534441755859470576731274225630346810490114482313703549726133717348242688397773674585230135714817453463107421405465424715965328416853211721750670075911710734117466909722901076921778776398022311078110052571686504098563678324654502436572780732670851689239345015702001575172982447793456375272657031684274727650606466671860013707049274050011212395922654851729121477840523153801583565254730676096086150407445479193785616407006381393893601146730547067275968220685527416239293785180383237605854728325165649220681690341798795437061919595645847816831729889146105266719974811028911498530875725651582682870223130352203928541986765958252730633780229549466064495622659895854510858684033439469390702460450224658313082881007015357447375543554251955718184298321693667196521477692067819861682177143295332066657813494937301520617036183515312607035332526513015158430548265508080571941089594652675903720309684646465770328737023261791669572570305152191056947912116394204596811709892909506885081126469549490389142530786635150646916684332007121666646417972367819813081232577618147686118173644219282403480755425952932642390940186796757230646419640008362562236925426584899434258451133297936074498805008999741468560072844880619588928020288732695859265122167916968670258306869437729330763117716913812164922220987505222518528862033192169202720511598523588058005082501715108861714294113358552440638060174051593743514466305517703947540421564042519058204393611279969938545296011234282232414389480105547157980532893288414058787628878852473638508431578292052106612944043871183657940614457412041360958596062045690205489373532543430611104286574663560405134797302455597213263324645559554522546032686424254746080125772473166545030034154882222879408889833616524865374815146148509620160975898056544068807446372388576488803530906503919130035143811142326302550406872146518548961857533940786516856919150345921912216327399963981826840393556271082046430851556500395079280133647894311690078446800439719855561431197018926016920695816468941085880918403240815736765715168681372677528908013127537019576859159460737248021504348419396458717443803309918384020240761560015331865049093193093165415478168630991839098532014324656708311918245989135384023914793381842824143839111956176245078110891630911876505525797098450990674914420764406075673781872000070400850827644357889586386092791068649745844315833834484529208080711424330532279197732134605791181742897665439747215225734285488644933395950266070215381177702272586546271221623265385560645299562121550246013841454032760825239006234132110571799872648765028351901874968222934699158983317399840498563342604710578420787903699673677383476970005486035737420525135805484910366887075644975301525564901400563683385216674853950800178759703450832054936209539880830572627812366046241102412629738794206549117059670250185681718438460451748539512619514128270782383902259745138654609975270075593796415839346454808426274088454662179938838217979492135304884733403213945548562303199703141973491167062504657915523028137602397294951136572392258437679970302030433093876749988605597813782087953162813072779062138575889175380554788133785909825572738260619688944404656024713815172446723664641903881593023132806546983145526848268569932067546222028381866608090036798140455088093200876367130713101784567554215773011456010037421376083409450198048958364484539487309862477960624743128917777736806763854860430125418593924299007363231413074674287925755057688873555798058424204807181538446369921789103843692570829997230456393753531568469201455022197657381964599529022042785311389174223264530886688841871513790131410436312158579664452626842812013609634350087526911859873043089614254942441422513080821496017448287618357190884044785938211530589371189146745724239856984628180031215473890762108113644285715608611363713154524306576047572713445324526529977207617975931104553367640829425099916978862064160043706597823433934488723706263034435527088127429796432519836423211424617486376517901568568872741365465713074220823861953055510337971058122723405692297250636942434023975756559011554122052044689428580487964963054343610919898838578361589591205105697243043853636546834573837640866229520371170367215474817912764722242302154449698658998745338876223798948307864861161501894047953140264829812505311706005077456336995332843636542800134477884936940477798913943052361671214190052901000231049131657682124174920434692516012957926533506600505590483393171061876001652932017035709093981241592652983615924728836602635443503533400349171238924732325192217113824259521256001201469331140982115598277577121105673366908793312276604242688739558860785992714355794434469332910395546965897254170119979209462338174331205249751164814969496948624431572178852148530460325868140217500525042426124820977832273712542264508260079165108722905546406226012764293713264708709974758343923768873159726235168286577059485753694024921174873460195257918253931699577055591402718319994099831935719885501350255268404543860316606808143961679690605678377218607335323250207324256125993110014612129041303750523909051706417098415487412039902880879805011830809241513208924019253580745916352713417509589954939767278172571930619779880051369011078073301306302190325199798248509481800495300114550217157685290400250877246674892589145552269385078727305700201434265283665379179353259384408370998121784994136089623444141320966453436719992867978831632691774974532322108322011619234045740443874712577024360290894549184232852846343216450258159206634340861541827877292113774389263300357069181708785546460034050982687337924249225936374010150631141528537532566119892712878177772693500220340936518952586892983313950841497289328877205985365556455320121536874673992454082169741198445242126751072212146949944009225823985972284107667975714844371073654411965063999364986664626125959523859872611906800582525582802890448083206542425776664601988154287419564742229370600977905951940937528239044782749647510931036033451641378099818775586558540472150006930620873228978353943176406556648027496524525720740025664141185802752718162106002873025654809954740568229644966932111463711886148347023052008172870466737478995211688754596337529947836944560956329175146223660982438859617256692264164683191819379574194119917353104233620938305898199643798330803661482318497076527264932492056308623825716518519307336450093129664643614376517302020234038345001885789667754945950578731665033537994128253521063828523908505401324660976979229953209394206611869264664302722418605033342586684975197015777861738177166470990740096408868413609026002145609021842359517695188422045600272914388067884216698363830747027963862143646467276120113758276577948094389961134666627023489091529806838409654031991398339199320495683705977407452198437199091487976591280067591712150524263298847035377325950640422199400761415319168158614980071183315121797877883715741816164334622491402155520197976436977512030972810920593676882579543554915963068287662571101828090281507382737558213273997611367598183053479380956690546945915000549446755341158428339237790317223273266853043013765603821675643695045561131158015001960568714270294857678213254035982224369837762738122611074242716694029902699747666766969160770258133866140769945625177884913611201813114024861486461996505398242508607069976369134396531536270255809886570496121533622006764938766250791419199308403811218693539176370411206998043035449104437621827830068844402761646742473245372725709477776496241332759857501281762893296336488523719116298406211553393057233540125328334955064012611097361443422171177767242717393660236752341342526530445033112342008426513215602259693483712206085263142643483641942080895843345704241901486441256398182529187140857723810769948483070632694646749422010141223581669946574951072303413062195709790021692086056094095805908612085054332905462797366455250740987124549099687309269118024124472937983054832943459040280622105312481880816571237072938153796379502481787783808934400252159391766787271962301419439118140964887261986867305383086185419541842894055038445240655678010261479794039618096864592840945261900404880659913818843552243867940303927692272348918230300059794518403883702592550581177137492166755968043326439312140345798611089794325195251090564132211537459699700397314618498902369889096534738983020306686045442507252204172761738394800060108597655457698651683720675950750801104930714638602798519092240812949262276838526390123782270043138537134644999682272105168709363602625257951939529427347865925916602173071409277300149345475014176260206792021478114181999422927733694647718890007319754584034048600725651181634796658652117529044975780401128746226794869461352716743691186036624669871895497276280649169925992754170479325676611887231636493456892242265466954856828868503515218725305860272399661187578441928894560846801743795393584557319591704260487032742015333380485821148447635322773803376467302765381792923352137339050295472333669529858916990685101343379374241491068293723301298703936664103133250512971841650275605701800834108616380948759811029850928895262163482632508403597669913399435503791043472489843338349480741453333189960039170342761294959129122862864585449636946387088608621598746401459204600579732244670558659631778331365065716409921300684620365950365216818130788727270463369855071173419703874090475146074353626782089886131364451656742050394678490053689268355618175073042220164842874017836082997832606873384104350419514851725979165703584635070898355028613988047704115019358550987581180897486946930330181428767993114567386069748213054226085234532830896701768186768341734691639141865980914228769793075971857563090999736338783911168299343094807160932342849985089648270870208780262912748472476137473832120399436031922660604699535673983371896839116833755844926011183345065277062368482126628984479137900166480259832332182715804414877082675842464513383278563003588509437645662070730355485870862662463724489932552907081888506462646316417470126671783036340441441610091430285189617544702569631134508522382382370446644684802076544524992675661797108294290658982131650802148584169565078659950196991412387497213709526371046343492003377211703694666244533135639128509504526615774634932974817338363339002824111191607381605779062570280820488995366826134963041437390429240751546509996147724519145934477889264065853724727337237829928165884775363959620562792904132564186255359916632147749948424512855693897828126062247604581321339612290773885215823521159176013193965673868447880580794065770772697948260504581238028767273325691225245802454759878889214385163383442668596679882762878207716491650815084432582665031484431172947989502417681121526178371564695586328370422383306339098956082646267340556666447672906488060493881503983140143523205400984337772421098523886852460751288727990795394715953344502660419101315844339682894502301836010591490583362950541075222716599328936543969992982873442209449663501267552150525546164573440501638832181515487389335450306748707571495987514088296296110562574598056849509325759606247423483754670419381019281399322869779067523274787279795321726841087330491245891820804750762068398049992640704329386121944915079177053102997028124367187224990426066806470091223606110958919842840709961135447393219288450658056623065633721709173215353400426292374070071993238674143988198007527464892792216538072625865588708786150724378317736608070252114260113976840447792835308436434960238195341144698182025288888177986279169581762114686652113310770185852952811521357277548358394836881790071656516770271373696778889698702440712391974081659900978916554030561853567153607121123115087830294798270211788771819951792341088945459088077522742957625878058892693045287110846330191720975467835392088787522284309665618635984274560829567568791255560964594744953719478592331293183104527739682516508353232375740334012958461555279169171017634122930745594943096899941418417430908531931116345831460717139960440367817349980123772077193798176352656734560201068426193358321338783824752563346601404919370855941944418292361742589061544442284876470816152320792942313237041642181332714455363100790782884845908137131045857036084395956820981855455463763421390621008720173633634089922142035237952070332387315277446207971567072258306316169959713627172496167951098818475263559737940831308678208573882358650937795389637956218333521389097449182320640339166838387625177918633278914568311639936168277873086076315958624011635182692568522681603364263990029976452457275031771389750754928388963987555697847488626835771803834100639185871316800317873697822850615883558548315305750002221882151810336671162761412037305527793993754322401212929421082540280973577643560284297704678421570272192751399160064976574948685714356472111502907032083103522928276657170107356750533967259693463737855542353744239626327363201109039772261387092338439430140392255379452175565154255810933481112052444560558986466067542395286115556302193673018174943128615614168999272244681815439430381538476163240958409629174546127235247873008249899484617944385706482533517422247964769608041591924682969194029580449553419415053102299454937904811160841848137573566384994572644299275164433974090561287744674930200507692953301542120514044198923914587789878097020407208064842130740149020743693816250328906434564140271643641229680490838918049764414033041069862093713687487106824878615723139399001982088986780711095204783849768789422100272254574298671997183028651866652565249419407244658152876126297780809481118623835926374643912244768598375612445377184953745894103761314204877829450074830012515273612667958107407046431262892563513222533095945707510887717790476998337895850883343125902846149157943842423388460502061770395834251468093692550613367615588880624542999213953533509289839046826906581261908101084204961186654396857079993641195618990630497379230825929453352232675846551914622417810142316449178171151650230286217350567888516849182244524386933605473561667832017199415526410445904935066436252338740114610062809123722740633020925401405001634397239651786222147352300029654349768256924413891425546196902954217331119236198261007770209085037837528700439741659329932366369605424227510611987538643397879867461397566379292542643176752482181157918648924642245479284397589571510477645623026830619085207475141372376896177418132843624200393539173388253289100358549214129567706040373847890404160368323553284327739189315637882201029208938029420053378196107291550655360273279401351877102024437517739176991674126407733598677147167373935453276264259732043192660914559981909932110472987945528798753118097494943144650640777760445653503354033322336436584100083340176559135346286960190055418778523322444027646853770069654622359225778084470294570998505466124366380640674386522911030820661925257910053923648764948573448822477294938690067053159323736634748444677432056363102490969947238712364283294468177305441678576184770481181100262959004638136718915833395671337386300274019732053397352506877852119618740011300961670483047487657021986675911915767755147280152924371917184069591924506480097362517485599319689030565395021127559975463042342876306737226236007461069460106883869006732846059216613807629196548281989227248224659072567695382611782990728958514661497213240538445737395664884931049224386667746308495773205369176197688660968604028414738008497437536192302608276959714596412398814384585298982354354980644980222106628632237062934485900887516237473727570429881611968412018687060829366822811615721857839899409901539619248903410979986369061569739115422150664293609710521863100556668586893531227194505021641251480838284395582448240554876051533698474600659875590225476931304278602193103944133034785688641093750248369208005169261898267840402231878144757077804278988042429383321525055619153688041061168922576819564871947082282682832028951400470049671918336289640567284057318131607165189726857858482098605173136967855818328307516465013343990234852930313178461064157089404253151510612255002569762779100079757618456684487637622799059079850285704939427452137792346629663632799175871531913592902002788243817675387604663163374323621086607046071610240380710282179642539482208089603575303412784222058349498023633856684016932665170151740270203041095204249121915942081800738978549026023405187422212345792841638708335645063434987304363613148371910182821443204196527437238699788535321420471283585351236075877835381871131539071231237234964536051493618968568395998370184097964146109551344803104062877899480812256020330907794193543171854620597870350889938003044034259395810341509493916405566704969247399267112256781745610667161117819407879679077257747539173539510205249674811434111652531550311101508075043547803035404650885309151334375811048498679160513820960990194801990036857943402188518657036491196535347910236317599206018387008340091464029495835046281106683719282472590575802454599822645244493490149666412753633036715506037727131369357632081682329612383039467348485054690411555434958859426023453025617934340034042119394401962391793789712871144563392608412407883206001153363176228955607026262156595676518046301103822327068704834804042890317138588233487447989839449678176543052611743140451860568608907968249603436987782884785243848422136864795050908814789241127886013648368781789920238157955131446851022366817413054179623578528181502989928412137718849616501851907896987493169644649529872249965052610721023225639407299887060748114298748290251851646502745253009348094819857012386981381247194870872786456361469931546220923676694895842956729749846461603729033526400026540737079132087632714650816776031805817236622895777641788781772087463218771874680716750824088687489190665450853739556640696236067397610036274753635779733301224894969424579705858183713849706395744422226120977636797511160819161594829113969535616881339562632511286024115735687622158328184870152711459949908720783002311688786196679271632149519100549637622012522665445337633917324769991955863237082875806879697732103821979358214124911246293663406818033760715027995071356562202058111264086761520614078457988098062788280199869043032394124018298905706053207205042573344468030756275729489851014605961283478241288927194616607401738034374623789516724989557624044766470102629191961158005376218152698643198281695923812526275218215197854081230134707116629947024496103490604408145333922746475554296108708134155850969291762791589151631774909686325070483973171470362377510458315592477743622085341516287925354208280598951639160600452385382605451301874214354338491559614498452331301235340689375978219161791475200451781776445256385062780287115207556040748637508723722574011914361565110610761595550315003101012357717143656248950997748460624330096697031774612686993777315545268592890983061313881454389520667389992014222924419628944415894020555762827686746819322605067000366011976893555835006285009419519444626870474132134793279937764137395173655845686260895083185890369046482100248415142789173325372936925319969839530737916433336285199524953218562995932373513679057551611669556322278545031077772131684528051887420663543408368929773139524420501952518067320787485064650590804976250274373303660620441564556701643159000008290190203396918691569871151273800857514252440009558156650822724063774272337539660496917430228438159857961061164904233207522611457569676729857263294726381214068104034780316179073580248519072659405243466838464322938064429033319698728661361617579756034904947416952699738636656617391524531907942908159577800859880414829616541166368759371865759907670491838842715046465814492331455013219072076271034293733238269734651279158263908612146064727541087615250432960098556940966247573517302256677926045332961162742367739641619212432845598612781193816831826623232918873162441496435127295325081261358963160295417013896667241132144459202119055562599128987110553554043624203327675611338963476217187216017997255808362422545635578301421413670021866698209020111110626339498992740775463954762786485681930003415365918638805161124366943286987333373244887658285786181795023256068701744984882767131754367917351149742972937024892570492547745753352393540136571389795685489238870219521289069817761557485182211721075527517361357273661521255265418615734037507004906394120740267667457952757147076027380380316461934981556896044395334377956131646772711725805578939842391688173272140298673456215181991313046545034716417031883708858533890097578687584833496719306501721713541004355225155718244046158258336557698125108086865576343989212725037085616718212612351362597119067928209889151840823756349602026459701994515924254013286821555602798308081816203425518570107005133981449047017234605695778836160696301534388908839201311265652625343820352807312128006769789515095531237593976222582478089348273995549257617302991005385833248859477367517291720916682566890397742935989758544142767213835407534428763157368886944346950837795369896560978406212637588225200786323982332750000264715756886823482992965683730144382670358323802140851497027098325670953961272450451034481527783293136825066150883958126151024610314101425642697784998724959110170599330630738075758904825657796359661674311832108755976618450560945387231137941495586701326224572932300891390304548325667379930184357955625468550088741987314504663120142248397248754083734315263976289860009351594759920774687212074730290900162616206680109927345458076360378298490785887269026824021166511877202299912134022870798943866730957424095235487569494983180628332860462819967732776692263133237414819192967382708861997993612759110678637034668159734312161950758039483052900962739832763210232551010995184357720045750146562028193936675913132225648377120676356026375801085878518512150810474881947400345554304487626864460881455480197898294758325404600428613806700145703102343555241935385058104237937692917271389298558686017044464500755709536763665190521900088489633934572439760564158047915723653135327660484120157185859111560043005510415403039774242617566898831795099490264466710818507935067243425371354201370605277786122729898794405106865531143737444344694749055393790105722622868254756924056838469679852306402548684183821460121821331884549388870237385208174513936964099344128926745626288784561418211246011311689800962502872871475964262281234629917238588557492944282994440729121284342623185646918602093178082728114171631823097570749429982291657794820859940686870596108475779757191052388904239120700988799958136320363611088214575935843071085296900270000360809762579588448290570287008707752456512994243390813594864591246284751236067978448758489201135875180496687740638987718922309532973265393642762616182953773167789027460149789965514489549378944575426836275524075448855174224907317488663108892025298399993588239986271957865356559365722052794944494546091123006052899407757898858264531519175469584932825482508207904150586152393465485035079069317486620043603548733660402759069497452666753374152155478851835994981576679413974126583553583978566901416547534080581843950973775467592926015500361028697122281892128871900951223305611492541968526405848334022508857599801157859722750070914806091462237295297377003274215369608197714798440075121001930443282803077668961352791365650508666277667653212865551396753793556348538397076779644516954879862846545574303130138821134736454915261321744583720545838857711414944235565142993009449261339926393480244094276808587710877258189077402951363590398039641519948318829905870444617738230479162668791304255307499416025374192294984189895169855757349606327981093003275175062018170181679402680817488596922993195671886106542295474332992098085488132577766022685133559307606902602547426346267530166604458416693827374806408412166290585133057073463895451783767635402145900601819194835103995322170796976820687183069008294263730486939104344104373680749910972731654221933544777258607695810006227959872152184721260351770664411951445953148066815853476176342961111759748969669075706961582406670949875168338742281029875790495382679134490140922488635703748036296267796148562939533772197126507976943651230203830151273989675101183603867390419053782934934533896254643582131075877805879112683426602743600755866352598811648967663692505868173081754659894020951563717432232460490731468502364345237703537383883253867157192955542001045839859828397829577282258856845277604673283899697925730656393810827624163878435504056820915814113434661800854491285674079369023857754110800326931322547901081735281327797093858188935238143236991446886124596631250760399554803520025698506487222591518159072782476466732577494266380857487871239059164912982655361176287960151178820146214277975718238992230506106030766495446915867713937467954905092662069663232972869305957694210442729641411932134265354509799218310156886225208286233764739066817427115456636454775869048164216366408817160498092711868413514965138997281907883522098297364951766020013094492472355077008480992845434369722807311466847574249474300188868846521411206693281175040803310641531908554701381510786653595935025707426497856099773886275306214551122838880708302464887787759011570396704654924987315610940182988723865668059325187157286574534038179579098431826342882106380369313014999176685930075702539560380419007990758541011547865759655597441447728096361192977331317942124765006563837474718690772086388858603216223353752301380949718490647804873954933919532499877951717059174992411424189803634836811555669693768653334992620213418392911753302841065435978121135064459502992326796601467943052425576933097578562329520735435812246099834659237335925397280557751561651580751232009257692318571059408490419046758354767590392500460134208201099866070964957727407501321025498853983184377303775512181984305490103585715992692062171911242116638583996964635954908517099282436257058500220077036449119947880774496975060686156257305774699091712163834759586287446054047449000535733796987703385546979689700662191612510619688028087873688690374453912363272756089117926191488234211650406195712876283834129749204465103732661254326904332924668009293275789904785126794471525251720818420360395522691538532238111173660878431976895166248707729496234322632045084358048152120016201979295759166666359814907228458326566597747860588993591444742879046543373981236127854149477943506334920731567030575278714964025315503993658444294437391411731771102506051762452887033602705310349114606357029047376858265891829306891606352953738116686877907761003825593816626174130647208737336971480291745534698252265193497222178456517493449581433460190247840213220837950316500577091939832956727151489105253458498175455482501200256201998369501739640334944932782669756404047545084935736454923120158813723281707921502147934039174017610766767796868224665602475316095624953628066978390953614174439356726020034226374944910791830146621160069279148773265416026834812355336214661425103123558697683656342641434377299851047276594362640278231130563907824223882615731838514286098522724451367261444661971970857584439306312534537784827126391781671161647483843427596321792823389847762017998280704468080076158085144489107008468621348463752206372925580683352595785874208678099985489679688260484075722943742143015739156953638272713802788128335849140117341950958495399351593658269039396011378561511148844134039173185199217069841885149206157410461106112927483821866655651339112461441895989646895055675485385991582279129053127142262919035808780086596328222956642727558204088835614908518398313926582498972266419671532090827706698191531600501826212953582504039811631971089352020320391335478418990843184770083714616823860287238370096075335249985804279879615688004784356329582105337024802632065492041400292544195248695090188947032033642675478129886268685850549169133718551096848295168914952161158349157537764186822505375287145690696208701983251127363469110457409250739525560085597864459268767251778766842872854955095755645528431534995186410155973393223366727782513618526678096476255963474212181478219328968545072350792183380548263127443681706650834999209227188631806863987596448179535611048573638742555015417967032907864201340406005461360006448872124101198084959293244821020986414797736821049262781314729043837802081601589179958656008706989370590367367301861270313132560915609465133801344118073827670758557340449527872767531398494103409208726445337983674110361803464129859399889785535565619275232733062914856296410005083736911706971739461489596251225146459261248661216009017338950593834391593965760280857059420197800574054562603049857891374343329883919473950619538802208175324191396480778680520156877628070314686195867632809314539549721814211477975864477934699091210840597905322518779046539867261549986274425100704760061482766249667921835680829996660852639281305258387617374863838837532224011689958422556997885642863958303721197945490377030072036797281259714298663463336840630432657084069077911016762751649631895537278508908944641329025210629558521761774706442926877098875096998295346719291704217025021997782595099290141649413603064887649174562745482430704912603050497012562950006094115181144942472290687729619422409423641089262716068698303894627064012255035852020078110664117532964883872098847932104556916263446946119476165633024176366162062168299008667227309214102679000169633233272597134190199030090516669005105319293814882018135638198009002518124528235340087295388183128135716414695092214177433629925142587559228793598395886161401278566948834920250192657050080209024474245776049207711319272364624694400153776519387272928594187235406173266940764802720483346951581552450627203045285562458976987490558863031380488015393386148955673711026205695521291913599745237145699265923121691423505121884701003261215932324819765112809851134606328898216591068185109064465299413647178738707187527581262128862406401050697657252060433060297652481786686720785432660914286197904893119353798786298681488289395984775250074394177255682960198694256698349721024042565495665618111065315272662078806285809089360502069818927120326662239785213179027694847073563419450162726302100632924317372972673197180977911988915289964976445904054200457243305199467993043034413974113113263723590823180338934819660827069862667927021782132081578686341588683228077933193258984262045735194247745564599091915869830118065965958381046334725879680176790296498356836227973479308635246580732588511305535852384163792801581682763951460860089591799722721083458794473666351655913007839934262729618210620688862279546824346813178101428057661011829281496078180979003053205042196996155057900220994657607524874587607661836492138195935274803319727863942097171343858221767187426400156441383527783725559223712840450870725116186700426291688811524506864310159241490807155723791406863917134046281596498782934474665726882788364171627600654910647129303149311047068726282851552028149570623667061968217241341110733994102600235826710187161363107773384214151125928167169715898737562013566894222976374623793805840846104947582834392649161660735203555478101717519745517329323659755712447883449342832620787754968668714313177291819052765550792134156936627028440085647659070585475174910802798537702201785361055433884620092044794019774843780027792875940870033507705353312663789756506433103649211170258475013326731938401483950988381099658981845441296616230589744176949274117828520111623312122659709402623439369827930105836574122888446385817215496812148806662285823994753205592935975379513247177246804411467433613709940967030531442370377988342832786688741019555360245887295660575696563014122456095146740188183385593283963459237463793276617697151647629172331682744951984803629419515292130650348881180941928677234131907855192070567638102484414111159992708547022813258894417890340636858284832101066525809168501639650119862822615903714440139450392176472559910657585375740030085846039172463714267722158446519750938350376608365978660399167355680319373787651285062708731467981316386531496530949116567609730514495050435017810758837055851265172658175496137569121494906391407857131124657414262831798251940068829645267057350676541275797093819748112778313900051960090230913979742416259029670182169945669722648110981862950587508689439317970309216790222479679503048438625115185684594961475508137750458737164772648836260957577085262039760822947453519646782028462398292653948885675983076098933106758189760802478932266938089407665664350416472052915429277617134989976369711800220517267649431346082124942623307059128699449514181530535466034901912913385003152584578265434980592131015400381358500499425738807956231718761969700314349103905085486987301033912422524562668730491538166455719803897692549548079640181027572995957366307663921845777655002804738006880350293788045512685772024947532307393147690382431408875968671083836886036596481303271580056939382462721153583733991607221773820834827368737286806019829503245757161913293928512262915509217743944844178157864928925171654684927518435013382164428959385172271433255102885125747971358373454673237026382031304277503947527247963131808176214484229057477429192799659480729505017965188038162176917086526027596303850847749043577198619851602916566902772258159109616681049008486383389733092927076272798888166004710172244729249839152035097967111386323035310565950445771998329094946886238902593569882673034781098596463917784554214790908395198815098645421683044460115332640162550519585581351520330034569461673387628863220272484801642305870919468618255176358535593865648597884665084152640845124678342149157330407306219346618005882179472054364148927910660608757874845772921954793824472534373297244259820511737844501220531160609312922513978972541924101979517896407388692433873809991253430464354787637201892646583552757768206954548870603009810452943401466814189801597518760338208027522310727372187614611701261339214292551555265029348757469178041875685969241275697933812590418137564107757286649092204206944365168715700827762235847230759677332637637910676727451131182933946140325396256338949044655255042931463576379367181984212076009820632141125234294537921504022135289819306521668563343808530718682989479216827493072439820343070752768642743940306355468089392294014942006277678073488624890365267127526804476941954591679840761148921012839911413772206903106318880486314477557706210892859306699362566294352358335404099400323870448032205367730387523154210276440901260996895430538378975623201291873925118143742674866829294245034002455625105091032010171452989944462299993320754643738854962297684106666803007157711765060065954664839731901104438582814912700597829185705144225778836134566502651110487920961272532105860628380218485199650225885147711576744194738934860730107898067883211341387430011170616487690675271758663973245628831572473717459793940503641558721645187502182675423759156068091614707188854213045376818795926060078436005752914019904031698123514835448332761366571949788953240060513144193744032651897083443560575865390019208787861154769829030628489781869088950152590696320748601357575464997480024619456250522452298387279247360760393438956105250398248685711288277503298091949857514997037090928533539960054575959405939062006751908328240322020600194327351404553666470172774249610372671229803664445627702728320020432176694381802455844546629346423719362441670191233426618812815434105713812970741900936250048925914004139081985014082001388221179637510963217166597973925447741621116705417435157837546510801656363497847298133717350650742107625002631070731779095488722326289452410660230905170610857090742612542742022254773789234385158850815783292317532072965643451648998328491303532802815799642424293369305113733901971790292862139610875713307642281143399552960218573038634256299729792828094753024316680579201645901962039830974411889326874356124611795162698174039145518241401097746895605633745833200798660257488223549730565995868004320120087897504169873981156087531870833301296842749340679575699993348093466151639457540545813622293042804425154697200269129570065083019246827214885990800248450958585565106025942312081867181240646285689289050869876959332328172024681738932352822419964373747063608767813624210351268370604175641313450320641677516892905105176445999936312142089455775733602655500763002103145847439454329457542937031550355093959740302313796168637676829151879632566149146548297512452656592219063965397805304934750445579173879167264132986970163014225789646763597709074821986416519012862860796717824530856733227678036310463430550436510213912816729766946295551572384012013001537845884294821724598713599885863978886846059473022310974637243844112632899611006505073182933877635065703349514408652339261856630681908782344161016804840065407447046396204564637056681371002199515483025074538340115792627453171271893761243230948225132098216022675637562635061443400816691430758711012440884755780226223623817265587461351102985475955518716665250094014383740241837750327667173960218414477400983936390441315083602217105606336493635726441228369948547463112974485702731084459489761188584772270370863538734820281802899485745094168472405831670132176547053370102536934013571768598269727591063873489870021587902301752360343393944310286340371627728087979007267383385058420962866041032772580494260835029259183560890436791647091415894012611037991677503524839483577885480146219288965814927046333306335301080013359323375759536541181092888197537751353649798842375250830710636391335501416670909269242033560746835539848278062391096633794939864093915411935607339758817695474772923596983573431485401214837785432587557844899043096473373073056575686770348910643588158515401824310651108164925054414616734272656375190193318317945703111330344263994666976878475298509977111699397521793467227151274892145717835961128513864503655355665639823383315114079344530475109308082387180857005829460119008065502339749470835741797087046002617507890625261935814984158178865509982191154603968779800833780030747041557907273521074893547663151353111384174681488995197104399078329412028555975334626838399335815350239264338301542367753955997283836646779266627223162613270561690719736704091979703337378913654315885428331994395803887854114962572664682418028751499546608792289882808809678553525476160876562410399615632494804362644401252788069079355262116668157253565818056498651479900104409185735392999528476643349791772505818956785435738495800341039487956144531498535916411481710947353541164074865108398796336699364841821241939473210178563868244107042455609525975009970428734051278561798524355791717121926654416492563057438612597671650106250877875941759780145461651527017884392182924147099355605716718612530735108032227573547195770624444032741846659279428772602143812165807939145521619014054808030209173189887698677184290997935374429406829283288731333647873330768887034380305252644244799339831595183670256332764285053936804467434491841704845358655050901781392404368463754531875332509819568977717794967145785001214766965644822962519907406407677854929819075960848870181557317386033497014085413854250403756508473435354238476636041991841585701014271617065881693799460589199828446778963305604011630944975049593480446998454721021137288677080254942504164198428963665666500392689210577402577951636885832425158698545393906705760020946213061134233857726358659831978590116642919182086883027214332107545608111145051088168766754876523057239481114813352144050888497921158598444663071927988754743172164166074444262119367942301066149479005113340020158335375656726064598116288279405346303235953193276948645273340476357458552683323133642626452343022812345743427106922895981421487752183941190294220225702592304728050353065764885179299172336745258834794997919889571739835938972617464451217404581784462978479023459605647175998852297334051791912657221694555867938848872050640184908385265884590610895606009266616066433491309093380503004948237939223204249011085742873647595225172583402425049506525254117161266383505480167087468161179331902067114734913732239448179933702841905938872760191307720613206379803704385857491610968850220107020714754385916440402190807221416673794047890642528945600548349048823633545532508436967589684259363488631422628026320192260482357177336721219536876693416928353933338723801394839394156480207101919367552584006538368581943657089227336568606315554768302607745041194614068204925195546237492231272540361843101388417320190435790888390849384080882432463511171413028240208567499155447756831959325442849059965006006469481696085465788248805518025922894545116684209581426291814257067566000280811632464923007433612483410063337041244298291768029044595320037718931323036482829195089201821363990589456855983996922478053047787500367362970448609427598024115146435343029204193427352459805162202810135992290155859345076663354252130075050214630432023497028151084345490022592321307075598727082928169472396866293879148626705178583309255037685818177103364523044890508936197999087445118005932933942017617957906361015853504827267882674409226703078180251919940060277214288736543050804551268342037873965771933298795285723969406932586013418077674841263341171329174920732772009750690314229915494051324313333602021454914796846117037506222376066284032462084029979866672872732546409358380404867821746708030519672978963893069339216742842614321556802856707896470157195457376579226294975619392802284357773549719958006957915511326750631803798807132422200939761837518486155669386120477326132285173270050875030081172772132161877715696662871239077889096322266553104187241953024245785153073073013879612315689047743359320941046220971029309888537823659668060082596669433121479468671015915103113862434427014059704617473020742412127709275434650108066109475302047082918144039795799918946433426128654953634682012889268656104146440005431802576981964902562811739570349629835587185389264006251986657606474462512357788145849021128903621458925229242084410351333271338297236785923725218922311180503046534232136271202493593099512302074071968158558786336876779685985495791717175684149701997863252428709656832933065975861885952116171587743604638964362987280497699005900765381760895728673187589589690729329435271501704206501360154220363014632349374509655673127162652647671730656315633204181735454683620240619293873507515357972918094859242633771081214569951395006236564419197718226503443789843342673376641156986828623623164575282890868239609858143159880263075512182681258924511348456472705997839366917656317792781506769983513569127503506857267017058693018087324519955181784598516878136680491062983980168332103401850269637552998850139562244055476066028340816527305085521556902383075322667991829197538356422886128095253801524360766994289446898877592693817307158794502215098247466596348840493755753447590424756806135107592606912387291142611236435382772514720812798690700693022198051133553669179622474704164977137510023369505371240537786201196825454261764150790943492450885055599180008305851744310268100742910585984583659284974321806448421347995343451611640185610948496512029252341536444388739804257444522119574751756667127084284118324841375233809534243152072282913978715924197764465722318527332569798927709721776255972365338328918529182135559783558535255281681158191721822289826931291312872327412386363753866717256606584488904752864165648471594239664164343892339665555555775056239419193863222477925254050393716063049069930761687065083529101758357935028299671253460734031877085537483111418330889150878195974676967815239261824179834051442506094933576211788857140170281045041954674144373608829491885410879957890783209044444039193521356325614423066886263711876528466004235429187351177894113619572253767462973360978770268333236402722455106372239288331804947774037166672333143414155925040034438648517309581683632811844463126757145597317000305508898269907753889479090427468572793992144762925721551077879763222303170545277222039189543690707991561229361071544131931334294937812843467350623461256736954091776400118450265508992696471946089840265708040723127834324088608022241721396440060338599556556886442130988317005285790986479774340875476262876161585372681875497545328914004189373163974568210254278653921982754741845568717539303423155420488662443442952285634223356091244787971165693487787201237571751514342240963060758563430111655251335454987046939377437701243627485141491125870762001931740717436820203861270132139758996882284075122270599942134299132072673330977123608978946449389814396597359616656589938528166708626003051733334820830156279669969611561968178432649273285734161000739531555475306675620099607590535712589636423586213865268080564947826512935905608109543464384673713604499940401357188640319785463039257951865025521881657358156225763598643102776028296775234823526024702706491216530421643897608002955298311006243378135596498173836047979209090825756664332666680671227511876843528125122066343745310780109637865531448546222189852599617704865369479586845109653026014013882035705125097918406176896091785775956473438041961583194766978113952478674239477460734092431677982977550597297007671845290386617938748125816761287018399174373571156909740650823875731909968849759329074436416010239009062840305485392770043136038455242448423000531619078448867479139813489896639582918919505718757634532019670716941994971376724781748771395570466730277127479830530134240278916480680476203928606960919248302648680729583632671166626779676068363407507672637634904522589681581474018025580019717600241398693993492159001530411339629494191731716458887142873788787328881813048126199487199163427669969594397105941985223519355093614085016162631754846247919710268246156458060245644756395090123315909140966517984707330290356117755235259886436011948893889367141311185988070323786774455814288922171034067897445864864474561127675775195274080088686443802128666365672240573173872500358219425698875633084677898312643936057491021213669339018189535462254889741540600567777883833126206905884472877304057286508573191191574999883368737494688935934555103693783104430252413926926817148765471707475908495362870482441169960984335532025786534003242624468902544744738339127165534784474398425261220698635637846388972891364128077085535372084319489665275134260967427092297402788023397789645779212444835510784425706516938111442119215754808373127126741742885490551778453201317460476001308102194970734491440525081278375417302661796929064227766671037152456854439861066281284402717791657122207825410581391553880016678287253041845573479841432556638582127881556886744151702398849081135609746714203398836537056120963709935333132310857783774277954488985846488121970736265251601556337501058044637876328150007418448384138048748490398571025384288675251027310976943805008164232516317090679854329037351408013965676506408078627871504356000267155378839014265625054269206135989357848853049730603178733647050084283694901260544951484242260767187580148807479139066864567100903242236896023668060574602521273596303711669176423008129535137527142389173639910931137314672208936408019594232817962802908255501980359656559840425408305776266682427933568550126996721603354213240970125983723376799656113486887539825654211070254004728189643445301960225404729358416467342404974210620123972320453744822423136995824124157135116583185576165924580026367039827331387252414339407810803587139303738449437987903601633478919280426727540742142670752281515450991305001035168462454249717116669512213066546505564977564110385106266543645200287044967536241079709588152329710706303160566938074775580319537562864782723341049508927591142006690717379097318902032245615013945402438298099726769920424765272319924737370155731434720659195020719678584227765614098429400094376865752376359851468390061654928029909002962369511738255982696013620210003353868179434355937858379004708858492911426144943242344165695319322283992370858267013050028486169395378932457999853605920229079621349531700462217788209988321594134980339611913732956581839130786327285326063182706527441493339003864873182182862203122924499674941088300822058518425616663182718722992164091478103200352652426504140874602758082006913914273637371211638474961570708777336958849289062914047035146988420614766202152326345261577748124477080159970614665600896820980868258346739673322592322120724296309646731266109096636861283412026274913387343848161458019140027776292429624607495194280454975685645418617505849546999633775796273544797780517459832913974674208473686301938477187729923796643522371804804411536266862619747731644317493549506841656974081285024157012613157472079069439414636381338206448094542922426418299397466169364828540041097582467354812163921462435353330228644407484099145726447687428857760169927764055914867383726261024919610562204775635744008270320021753533984825328170338173705438969969799938126763264261104927359812102326989506260177614740941030741313819844531110345629659558736764498896681064521242649779181702159430735469303524136621277492872333895655970410106834362038275038336527859153019558137441667889685132753624312906878145629643662719027327533256034113302753850936700191269147981170339426787491419792129170708594557827881106040255763820288104256838268562683201215331510688601742035384043627410732528340332981323502093404328204168931053768695265264050913506283356589619830396429089520446200249234933115528981044938114122352091286319024968078756112384110250793156931820409499981144572008681753862113010524555162817616012935229205556660247747870876417284565057157462611637791064004407934874693428131930279934596287424863956894418998053332795562681750988240931457694388834756236736099959665760716699059196033490939811817152304881959210641162852266909261667186176189612471905771331297004258143281787971950190068242915595509502642828612389743276552830910025912454337404378466931001120624764363193054542562850603441869919429027298419270910979925369718742458463445141502673965834932717938637106387028430374290575691997613663198743356609612623376520636157227943291604464244065152273116445498522058252129658314777270475714303989134357348971136818463692717879360520444307911340121952147594012169821354606441077883342989454124698965327080573183880337670875809036839302290651293530690420764985054666484125890529434537482703552246096145466727537649376679333347284358229162282031959366970359666285546511346660999496178025772235590297682846894310119150869348430451775931952555566013569203185507585729259358014664116739978475413770917696988801604261337073838314748182916256282428305730006603872330270922325859338381596764243799238464046044947096866542204732446969012091809783135204980457155711698360530331464086252914495985537274687027460858517922375864434395911923404918091440467895586835328549556449600208435366737504198652113839684235675865725680448032004700470748466337725617491203715736969140998001716633293507840549249946905489105803515923587999602063492636453043374452334790502549887667922096609752034197241519444023270994593787862845138690464408982493059531655276253779265330953318774898003221404183960896766538657931878861971783403873756014209048723253897155723425806978397859937037319429537507272436300494278710671578781011676547431653626404800582567090423094325318230371379734840792283283851646583815940281858663919770085584904735869933720865698253286764426150250847350442137345912517021116562927517581374559935682041773954567359585394346693879560905748769420919005864853760305230080728648547206115712455399924152807147261594273061923555304518266721896357958453726848282879294028402273986628518764646069786044127496879432602305380494567378263737341114860324304037282156461011306059942922831080376607053903934939633633541810712831021322281976934303135106585099290114144334361449056797002334396458136685868049284706012173523986396924660225405719494113054602534157430426202230870669698809172347193811930669645877166201296090679448034397394809803020955244195702395813825085846744298740269519031596038921324993559856016509556476363339407448219894568812705192832549540691691303570894782869212614943702102357026151650072144417625293357657673063066958226848683873420204476121528000258236037953621487836405089856778487624094875915681796868056868248658385788240420214988990289109673453132164500648144142278282987788467070742972941956177537544774513791495611397429495181350509261278756446058633007677487345359228924572764758792634577682284199667688836680912736996422429518603208945054752434713622042988397681649085229449168655695948998256806140529800306814360838581131147975007911222848771051300650913762571373606943134995153524231326521021921429700529016468348733792813821706154287143487838558175673297627023216549803754309859708971132832882744332876446714083710544010773727506528483177885238631755413069561327331540165918149602341155893416442288175112401744300992809954368698291831304737335403344266833258939222139761616360100484378418618539044794830209833278072611767087715445864506161120041416132203519773932466339005468979415521409850894965078487164495068918210088148781360664215646002430129435434561143836286585220747990628685277175145965684343198472825567253746846394627917626280942056338743499498532408943638224273383299945097311763526345634916882570500131069075117332877449098523211374617011769305909063505486658293603309177800939624595835654043843933713623139860863054272873587848680715576238334900107431069328693846014946613249063099522741407571372751037376152163243189592054953419397732752690494411629859676590983230648874512124426878065837682478149262313586088780879092140249776985948101527620496331858045302586405743450268330377701359309942529190525194226834660787390808005806411921515779839373506544017159932357901692711448000508090954587623559825024649580054015663787661360921501420100469282409606274377861219126921490387797647718641881902427330894533061122368117464150591404089482841538558354058087404686554976418405587825723699532210114512913443264474403421796004214831977612081175236405076894152360411013704630339754647170172464088322955902340576362794123108937424245220897305655878027696832341033265421375208681285333513971007781098950131730346578579141843377701776035040693889607266818090218692355164868491246771861040165890235506477177550448277910663023678943843066706571638920113990086262046783834174886958673129484139547191539394344617415760558864005915934404881904955242016943514360008444068654690495039180620338398738265263334432746166611981850659720212787928996306495037059254825895173155863505670998480291370753299186892454621047286092844276638475956188902252389235775663212129335169084064746534408726865544842432802568237266351987518284661830648343153513257038546496008536656179652466175119120192912403388745411606543327325743465651437971214963210158136677540442452193216503953582602015844810411100571691372947999879647978770065239046941499376117111302928720547030294321890403046188396426277444679714692275384053682656674759652755701382005360847408110896373420569790524656294119446171238296565976403868647871498619319777356975703244954910993526666226409091153149913056732196955459414687852778487076953945462434565778754815545282771524754777669093041871794573705280775479163448082963892828510098223600663010051654701114951680747338188498067691050005832120841656292291829600368140707855585543714856427353693365523418695733922042983821657545829973414787620796889479881223559496028372696474522289084161973861113168649150699050902107732558304712185871378658559416366711914147652350522517570419668690459209941808943920880618606007313993152592424067074207234049871698529715771425388684669492703151234926588216524450607907034552551966964325552257960658707527074321776552604095322183356200998876235249734914028234468929079506585737450694413969105660626928015500108318900645238205250324915625715745114446717379838942025781764499384070087541383404430716672586170838530777603166213145389007161612026972647356814816309880669803238506501094377144092563262141427597056223602882242580300874745731312790901130977565843538164533846480909859365383443856827679425870467243262017378169606439041891462337685777828965166124598874360759912841989276836087066902476312548583421201949655119501923179283233066304513930021962984071084550696465894958843586735568630180865288773579766727963645953819165750819947257413515288238188746818437742931926996851301093160698889679088998005912044331717517877113844459917982910555076085267096174919399891433372790156559465662852586082790438574460397929649055630860283846856311221336224040545304508657782356237584376422384796010954180828075138517086614424818429120623212071767202197221103698380223050006934957510850300054624769780235708163643587779573311663613445651396061798286076460435124769469550383738029369730215052026177629130826373851963415605119020603525940369936508495399064340372121692052912097882334236216999785482601368377682916812649814195736051674511741643203283765499141191022808691895984868470656511263509985110626241047136498397445770040583858414430780641706662551444714059595295654087040880240504124158262670961975464964241261397860212491054287502355148466588812090579911301328221036697953547850604062579342509163802450893328028004210331530391788959100404700734936334432030241083499721663788007373381952652381563033925038737108426262075790487175021080124302849000662645790658322485701044860693346039870106728224721834612212478032972570977071737092472746689991430979714978384478737037539226140336374225837802196032842702796885119583269799406788310910718164297666999703611758745115540107220781965361130705861417385689723159828035598908348442250808110832115494924923981306460279095858016101765641832996455365801561790204815090206383795518147663818835772565993066031871181973410274258956378341639771569547230732204642512143617497394454037831949985231936245330302383956427344825101393145757002047423836467791371693130322675821674630898391945680908091267481394038484488787727362185432371776880386107871309107216565075313681629959940391695449504955726051992488618792152719993326721458652843638475744114178392466922081489147610097415105157689143124137333546970742669244764917584159946789243672810569475376509935647128729787602780290781976349724540491459341023181025650858402522621248262007959188247741379424421473578436319133895714889981995836023616938367477218764933261870774916976722004256495661365935265727735745026456093008273111968425497715563479925889481789204621652205838555418132788195490581267992575106258688983304312027984969928781790247198388103318735918141974642399740399755848580366764107956696848997659657737786969258678200232291537305927655377273965764886338119834243168152975856601133652693588016689577628985566409758106336069534952539898574513697909251742223564184780083184599349322618078905762889867252609275723705161378523386068678587327239793159568906244655654890729011961233395877787995360376553123290407574000279886006870544731009134015863908294300098559579796634324186061166509283526597262015719952601881301785661596359051204205277793662505650920806247138413645949831250432471069145675500706298615175947088233469573732764688909275836449923783840054407049630201869225535547937043021575130788583091388215735124666017998502153718985888480761337997844766168290784231020260997545878729490970296511505223355668431374527475648683635911341519528114940488397822793451208683631039623333826079988455900418734244967198248922643980859215273719089742733295517084235987747098730916804046938178987454689094906759637786279526398292487457040820102221165928899937555168311591362550708512401016754230481155846782528546654282644591560913181714447402601359708485273163354586397746686109950381355888273216954482036525282483547700528204407371451580735128140945541832851053394265654628720536279286083843121885056257720897109778698532420619752332674137214822523235988279590730436614207651220915107201289761254846291081964977930789789650721247333345074441855642448140397373755089682372423351650587449116892023747218130612640626096948588719076379166142804548778675327452858089300173298393274177436255433679659581396974278234034505455350295245096614535907327140831866853577153555976100280814473037618982111889220779590970522072508834536132963827491962487240979464463097298387637253696609500223638538968438776195861740201859019180687945156897582226651812922083032404835861035832244566795178689197986443546464338949141850949767793369279605007291170573671646466817242997125286066889886191412072347397354184843233116100256739862185388310681273323704397883887674478638987812949941753600405487481284756291601626557709357582406014627832120859335441760661661264296533088010276904079635742407132890838365893368640519798282708376806141129917291006472460059037033420416461476459221534182442902625065122705549836666248072743931496835132847446116105032559537842540793296358610634899015000487483068351048712529070392036881793448206581938349266583218899894287099442221495994764913793891130675516023445237149791980783249988810823631535629421281452911245855486601211884832506175439573230681008548802094570457349073396546705982967315144464859969257612578420216436349868999833964288795839758829702326627152438020724005056466490457038470904603502106286951639497932815547633491460551746979915525036618656556580901174984596005216585493742117291083466039402362763769981411608084615753999748922328853516596115366723588117112940135392007841532211619990683477729375360261961482296591067278111703832924311171132893403556401204225963201472547396037833462109945499317791072310344391888029556114467957717371820627316559490972802739450519364810211788192290356520017857117295893651192800364392295250435144949834043295244641109447219302212587457986195940647346418714535679090754641692279741331236356151236030011965785419775770974987493485377671950328716344019891041695226603019189324035024017204067048636467949939139822797930814165954420434792426945287557584423632501734909198117434588819372706602684880120383355643737030810722600186237278394291492069352940250805427928518560475780493309909891896470311468386893483834773952780387685148462139618594329458130561316377969560151677458186805175184530323771287960883466771368660979128222864271146481168379623296785910151218698670057545608526229564162152079324172020059942335256232849254532895473411760642380625564981148334949491805369602482957128917909260125094865532134947240991165962265470400624467106941147642604056161387055695640655690693544364325505408247316637547884045654817805344474525608538463740355279028847209335732887416687843700134925683955380996721500393746169527721914988058287055644271559173556868246303034520332100952524603829807229786925046640001728540663263754963029495560515490284171963785040285801345225274781180714823979041479593464970265475866899072038423622681597566688492016342973300187707655099153810953849829963039702573066256787202226874614749670930993968595070280012819715770318425034930610867154152004175954139745475875519862830297629115322841011505397918866431939603498336879193186519502752340327475639545868676882737503613304442186500612307199683939959518983540871276573254764525252160305571475296974670009498852016298228182250093211385973359498348815997657441380811518483772338259718245077936461053963238661815648096212203857767372156071856556987935672968716762930265732284752516569463333160505204527294024705810520075630195725472174194233630079737681698942988321504320150509077265133172435514238395273127529156101349274466969719056403282160046447363511225688921669823941729447373860750887816431633758835795927723859293956181144899050150855988394428703490395453388267857226397164559448947515113773374851699325652594004558349257061346370469957918379264286907561374947691999350497332530804057433947730513642222941695632704109077460358856185628692865848463079733648994960802602748888611019402233210048748260150909884460089554919851750193121741358862947855344282001494007417828174241176883582795675867978421860529811384059587696274325085962224641891038353393544815497099742689654103246448936988546178374777515821333669573248279665281039213276568457007938304689074096540358129075260192129432416436625329498914805636946013270565324080368944838589920801142620810553736225081399526587563327982630221687599508632926421370112952295775486040806325367335395524434753137171539753789275715365535570126104744163194596455821984651533055329902346785540629973068848997962677900050027756707894870923018321743510190237763056000553631896425308535795464288424913354014616097705073715467667395101106398367204814840512252844173710626539910433929380489042956912158159803777514486450403824802608775766757212457612007686819085176213604649463554829036687346914607182421961412289098922182095122652234173224465643668376357088838175144753846520656174132573632541931667692980566513073976297262962727861693142757972388140632983654381581780217897914943813829281319852002368255069121014956340117751282227083930291927782580624449017367779989313897007569177611942630906857598000407289317920496620145655602488338764220816316840679524494293717145196793250682451130415789344661323370630042954803666802154113391575222676005303915048961678149783291972679275301026737116228477837970369977330253626431049229435274161602774585322682496249218501479707332869693690160101696883804146977353461466549014082451354233608552739346901609326964306812485514082394724178432134798434327391060461234479782078884206697937266136840354117837381269414456019847309503583502833763111448737634833988754984238244223790810230580887787285778140639760534247083804375917581899414190358945192267478047231805635975938322122453150888983975518917719565109310035255373319865396702742977209951521803669663618102100751746936543971600170941326436747412411832459033550848629701882673315779356908407713114871763194126915547935329383202568218714280364407225010601562528972987314112962863582776033831479633756580374469166473472142896082001248578404910943673360665699685536595327455145867088233822514707334349577681246809760904591691593894834466525761903330103430173603484119875129479769209259635363969773959817762217999190722571297575076855126029054807186105088186088920244051381865024145006284364719268812837041332535006439217448188023997857983932028443927227930572895861560589813625061522913262109808238145014748694734365121867507214258551089407061431718584931627595008480647953675056714214243065135055833750147195674836079740027618481928275363163894319973839691047341484237901813497525616873265361161870571655045548385802584426695117006805016498818831427071272503350471142639273303350824846629840174507558828586339824341369252370581298539678239957997667789789008146028544867421062252550836231086592219934922572274220754563574040518253499253304152311349933369094852911179417745642762702977734075351267393809304861616816199505309550247429233381576915117459163050843513572593074917874484835264332097161776611349251118602712605176024075140188864443106966749569541022949661627725225668902532096784046483402000686805994874738468205687849484713288170919117293149148518030195251506137911947107620062814163756489830055201481502807327514517024925189903950337795438654811496395023335152705355073515974335173797996990911094119826548549499730265735788230449613639820974076233684132912883955831761970679096342725486801532202791249867159063585125207204534588747120339491807826133917956215860847402970637304097615163870272169394684909547301809972865167328356029217082536319846541132091273345546745123929706958239279017436962633645344197712794393408387804750738500531649637592967592102855680803081062433711361171490984063539699549920139204849207214168971822151062702958414329646470149433881729489607330821970327076348256387771298525648961397122464814359932528954380427653116227615571274743241827626393812718953420314370019703504281970730863260146635680865936469514164591015738452512343203713551295148314845538144915853888839483325657257351616732438502403736726587574074272877929431472997107313597255860568413173174479447313284961419310637107798301078705329693550482710339522462616616721167289595344850202283605735891061761592261948450997424522884405447156992785571606348410006933403544623375567359340042502871373576732637108753901975019393802956831818588056118966552581888418304613359015119934232332007468604303900329768060044584119371703552377883423718894697005210481964940987548179445650377965904635714823564037021655646825440974216321898708080417323765407856716958942154303974552071833277641682450582338183061406605918647463996989872964239482334502682608751493884444322671977183822026391411442515832424689280351204099007251718725738073789542708380910981809448854126293932317376071621791752297358424194327226880672932130636810604200778831079707396439826745907911465676960154531469914674100719230871861838705935258569625881435731256405765405056608281261163388320008935945162740412430617513084476162237174986059199971217986406566484283076955984563985097266865341168151502511861764937373852261399547138327722707851007382398652986512651654853345716035641010429543969370396394866465467435989025141428210624931201134053101503188178839671285126210587053463731673060688168633156746325011938810725310958931718437372318706999833404901388494043271332317208697857868979600824917777600807233613986950692410823182325860608212381710220599381390835543868328388691301314027410065215932533949425349271745513606204159183365694796670083368712257813788058467230692523801061726573853556058318269700011991200479950840228953450176531311841820329154698593483736197273503254136041590852004122148638382693949378033926113208605677397777410126473098406889276172405097450355707645365666433675441510765846863512128546287023415054737282782754452137158072569133763529731874966391548282107802326885065431838628753125875012422301940855954868527477605888000818673084206208906377899493181082087683392565200207355369443353744208327688517642889794489906646139166123653456892658888717962854101332486688234351973190841157816708760949568364240052217708771825352087091537440866878761477872055192567769822299764443158927506455942824372402515917088826173043960675798523375438128299023037280080665304216244551921563718845826670177686711498000222157541239716053191635594398426495025107199867948853456347788797618719827470175986724415539821821777312974217803638303555378153053642382289164468911611582614126880948783852013515632042791308952480178447160635916863094332063863871798578535040148766942674123150612681384328804125523497618275140997804597697339468773005346088955359023768595343483335630777340065446960921078921839751396707147794749124586872200310646584047918155928432560120082492394979054813172081938621883177512011989835569440546643530121039510328973654854757667823527693127360718661368085311812598058997845151653639852112266899842093570041441735766144043515773614621492119155300518381895428658165831766685312811186195097469196286652354383121140204320977958711500566364544286071354957501319275024021222380394468900282992733660436445384366321501250223112599479802345660193767853181346167835644209853579473638710882147997595998288410867316494499263717366066802721580278757722859801864677492148080014211657757155011153696709871364190059862296844482486997504851769847886322191437800657439892978254792748642822802659751435296695545589813028222050984527255176190980811829798003221996314958102926295441884143974237029818000585423668936518370846308291811074481126475931954697809263700854571712249953591244714426305194537671612474708424930968395056210204152598423657059150246411481401414396948756165920725249321185886785836213848128500517519699524401835784396265635884724203029541743383763615442299463065250975577095135827026664845263990001322322617257207933824781442409867387129388822443915926647187462369850902743948873619072013779043168797852747908717319265562113406812183041298906457298225111037833071044053706925759899928375471075896962157827592838379277617136764117277063106715746351087658994135005957999890909423067529737192189453759313288504745437931166736577051862906214619413237632149356062177727983264856810684915842043989064070650646538270228220390564126039536691714365002317697781635977127679581535061267633699906579739315657204256619171515640744770934873357059661515971280210793858214084699664809827439822085528942318202438754147190008727546655828559165435035713319112055560555704057385634150206285207315874006501744064163927983474993374867129296587290229775427407919640191488686773882705175792577246420887634413150711953999785498128257538968590209249516792630631964100651428365702958132843920179074994666996562924550308164001479032856208779611704081979989940427910798420929632354660836146472591477412792814449391581713244769716275471424125592386572934455758691000234936966265764174315059835007748677530969631780420089961881362037026125369893029356013194797622759225706070739724969083942265821467093714953870372486617038539723686894681957158936774134153887629419186514672588682112653378134478057254088167371935135278554145490707821971658491566091066674729801305017028549866901916836775210433234271480518105394098241038139715843132398553833955577348876242294361118636883521307948348798879051694245418342290972159428809368173760337799911839492105781722454789684565921550208020628401530656365818789555643124969707167088917537886154662596163457662495235611819348044885912023504099944975417514641815749980885851383578419390650410408428346270619948649966045866297470297558238761156009011989699549858110791302039135397490247021250628455660743986433086216753671136917228028056471549469539611563429738412673902581382776842608943574707346996415961404575103645776453421705386997787033984925414606853985927458832127893742822481487052543222158807327229036736334654489713141321994919891600902415297380095240767538567981592441528952513278904558461908657255138099084397062067905597526333421983281784302515145515887310142980836451662546553646921789926297908224741243500730449876700831010862733641832520483829020753362028351877879789442242592413983642531954823887186410618731941046538408590564661036204761722043473848468125600650939027443669017260124633078414735472179780052240199954996961090534477504835517864497068831976271927257749512784217098004532506619305746653789235786693782489178772736454378955277327120705573136754907110173866337834885612734707250293507691313092222657267745218224674369306696251104167242733180638451300910383902929437461954757109930699568050135992852214632552926666882663207029761080058486340189522750355188427312822518448687577015257223423802967195734522870017784183282028709639731832494468521514413210809622611396025652237748874525945600333819253163271379965100199622952129661170119230813163076978398847292406462812274559413225691751983607270129372731586199550729687637270047100717358555912295562190315251153570486194256457484762046522363535547156628295945826907153533613495487860079863749814569254441049395048573402134282284462559094843457731157982211869908247320473411076024990712870092179095180960686753076576413054712620827570979245407774534434213833060906186830746232780990423530971897277600998754716015689219218094488066347621864127686536224329094295413021897047219538841012887899974286332764930813025617498070250230766839894432166182516080926477516696329616913598692675547832127115160469344718886140453526779074972702610302064657305828210887644409264038884842912661728327931007150576752631332647796498195864195223868995384899121491118162135953396587847004882195447685223404995017662853065961043978292674311440817568429786024610178214090538099013525343838806665050044091977581529357603845260557467582811140541530943940877424505164534966165123601197361649073302474225148044718693070103324188748525584465088821528728689776649731250258906474509024673132615305952035206001834030849562330753062333306790462140835076420154818882507322705408452148198293243351953632876671191625853906776976810555409267875691516409758158376483791312163972931202606183934082132563900105419795515279781706278682780880431139834140047320145982404904203792854802412947727567133778482427886081109854371477729495803112124064878543004752169514946179182234951403110636474824090810382645530899865430097036118114185279282194470856630879866819727806656408464305533163611141137828975404391538131605945460050758354727999066677238573956092992053018361260484959847455203066321733946671692244081508707398169299639025493480413304467946296867906292197024268796814072585326855600645323079323075681025869361101848011348499029689433173045145642925794294106140596134363155342445192807790470008298017968605296787773293469243159141326338370988170002680544195451933395696139047367639307390750435382694953714644039663079754698032509741812881289838637131771924174753706014984424247789964315276872250202744560766652139625465161404273328948782054991587739856011444390562115312605798640645751888073987240493321876665578913761049390881476372624304233758433977445568893625368794308364164948791025233693376959475159699203942555647367986837762445076741996789476367873886419298319546845206056062437617508121668761553736891158819485902557339059197926443944180984575547256184869328939250694869780428601839051458540047756956897853433299942760476851182075563402254941525996393131454048287254843854097096035959324660642330479705204300598010730873949447345004448528445400430560776586443429041325237440150639709099356586806897754107424892811376124160328486568131090362438829613179127064968253588432674468339031327411995975687268581280160717942601011723048629566797126442716817477398305750748128753070534498718172598866179859268363567641338539404976787475813531227050503498587048285332719786652358978844610245191289730636233233555980586969166027278078157710298594664118655985630850116712187868964322763293166664017686996690951013395824381421916791276459062457278420452410542804762677157933959894211661519696844353254447684417933490715765980288658073235134540488638056248719818284080401611323145542390180568093410321342033235574092094137711947863973136860640469700559542542641296590525869884944458993884040879601237463523201547910899316638250871146382841378588022457430739657931969662326758785629944456664974966827661379580139646247218480709125190900936337467025438106427830385133250977544891462936056587477474829834978012962678888199607762191393559046881890016729357060813078273306396248021232959738011006169670496521105545059263120305023753560727874851159610295603692325573293067997791913609462362315727566582341098136671499231436558384765065494674387563866323913048736861699864003714572529824283067825820700937480672994253051236804370671837319440938559898365264098784044114589351402194070515824892423968174830597438593361183515039968607449776144313717090690277486902129683990942907183485305169885783674356639708585011566599534372599085578791293671942514175696763571183503317278973827756687746524990854700801212334625961688708554178860652953768656639699078899298423141431134809605508912036926612266830600706295776531238052726701142314640966147481379099340390334721319017205921349102836988405616193860350146272140178339347616368712151316355392774569297220790875199729405041874150597625360504797969075071101757533556751166535803010368727794428301551298696031178767259653051942470922339096274770747527562843162504662322815924845264052342715394402757488666503910743739072894545723357987993370924488149086189036263710681760685731399585710231863595496890959866048250880526727644591495476958394272633614686115231856525986909083539036040811278525332879751283558043942172309915220165095379509364757713994915804921482551755223539353577800347444516150314704375311362004462839687119864250450418900898245412808833398168979230771117308245971645673036337600286689546807585816200678156277761812365419507668080183881159947482681729972699084059656506539596215720461585919952688807166260157793884763123514495830268296431550042278028799406295486321698400794682215806333172090280168807552998464051296034189253961723192059669919289944256813354889074567156329791314692583140182089442889438284440335931129367623484462221809188759548507642193474351869767649332734178867172837554189334266056835151982796276863288104770156442114886131421199129154035837490436991364116461504895696389819457557874178829702648672291714949157291647404214261623811747850793853272764323039550557440386431395592296702641449928853023962196868047404378636256238527451236191434352670101222816016352005794410488890544572067066348701140532969291643060405388118621966586843142968222792878990879809285345625487075336646439367683663004393859238637854541806205873633128576452367852437583720524051330087539627601945289825692488703196874957810220669527315268791215940640903627495836784563181492398435063754028158039937692782731182486988149312616690517336423566564695660835852775985867324140857718526068067218864788969876111994406492852790550459630086894174616337602124326827585286526185774530792067383439555521224522619408487045545089714552873123313250433423058113735585604674523428331955876983627602230986558149973152658665546429077352318511179905557035050812042694273520057486018428476980781264155277021314407296316290335110173341618826106299275403021268474858636798626360606319915865184590861183048769678625265674724724257065390433469478913603707708706400912424840243291987280602419499358653265498911204798807072230894093801646810534310405184928869071493118228609283679780418033388153707123351904059761734585411512327814528178856285512111420473282494977415529198139745594677250578894434643677452569848484414052226250851343169644240205952794344343403401391607843986469462200495844926312618667660897613338184056032589099668529597709710801313377274265984860942009411915828080693011445195757714916643910297779339704764751786821977085252655125066445951776585741936729965031197748679165257453836891749666381644685383946876421462565931384214108281306882971151448637705245581406663438796462248168247336973927973418108025619671150430434074230276870627881314027411854388783927388044382926456717496487247890583331620909332373552792082868642452607785903081824727384654260799790364571548259345914528181141120341515582863697066419548048652549933853078487024449268334543570911659568176846559917950874232150620679878791486687316169009020820171755338473696413214891434678430737262628012270889912565975122007649691707353381630956303787557543978706498526819903164202902747787705120760451893441042741519352166564065188611961699388208911510578332350961379371460982190430777490288415229598618613063075914918569866093067317573119343737895679183784779724748191468155034621359270895655870607515536778962844365933024298522118502687459593294500326874871451531799102898166241806804459627078528224179776480068539301118851832925899063388250525975240371904746190529308424208869525648890818376166369791859775203493070953029931043599912525867755902232542812895581730853376370189162640159452782725724586253135690170003708073675872507250246986278423973933148266348082432894707185179550877740648721187174676703612770085874611653346902179235449546705194074696845940139353987696040510534267877645164623471592260363778641461580641982990449788426442995010606707117376854617834485156202658795148250837110818778341159828750658631323527246072322666070599357370344915607867862747583498251480073542837105211980365664332567511932915260729369750977295613831299591681589454996574199225641613281566157362158501538483729342957423679173939272978035785270806218064970790552547962593416134179931293489960370630242332476079567565246594096136759387181470903838397040349258724475919646512948814970370950390204256323960004953045520965442221204452609301274872685186562449134766631269435736657953321631496050471903487901191826891465704688232950685437195213271182143367585619422608757228248084622242858869933936805292496152740981519469493040060942514446360141939393178692911921724284603063545300769335583719423296685624922928073150526328278308437332357582635442079423416544503423762576084008385541255371305651777776935489596241142760493013371205119864684692846974623128472573402637833645570758019761380176777960274075549036268002969027092387233498701586702164739118717700187108426326985795127409116824733539660133194397576992589394280538385918237100206833884248752126675983157229677804050332970131425185833976852137909278981711488031304213285553316023997294754654320775397734175338449984404785828169494072652338898358552186792537096593253929642636363664599983756549340146820256686501350220442548659804865453196712826490903828230478872402286994251227315030872667777477514247379311791796994452717632691470723543205022067579065163656904969884095823685976092184003209345119057073127227853958906892688706201246455527358854561149307378219113983000149911818518663443224121534111750046472355752605357906093013745827287101241293925217514163718567170127872617322099741425506773904602541071821263416204915566923463212065145585011804064251587733761169280165615536965835383109534196693668684393939226857071362841007508381101959022671733163340032148822943355662686615403417273502729730045027190202806209224131197880910426202973183106455715322785783648636457150914872768979171628824759358019172530181210360141736297821429248415912028435418633543860603138565706831507760934965619440033623538010302331297360276572027663704251420126139309270344838157809951899366884748532943660253217304919908794251233078228794898089149454372560332371547423364065355049769139002163164512282200875102984247148833478150680039043721487924235492723792497935398588134426779196092222603325349904795917630839829720636782830425612702129092721342650942158706414600050617235312170129081373814790949601807806868819757885653130231167475332672481646456181296931669767227271828506115906978924991592921921422749688311552292643215103662166293066354832991119045582548097078332461939411465331393892603865075110528247496586355725428319546365335348857791500486817720510384756301520227020107159723112186089537192488099755946178697740950082776548035007656646673470387665260881741793596978875530196622340292455824456300070319096262679055343474874206741366435918738095491371971903266022229806811324689957209883582822337209556120716875836294744866910778934864401196947253946611407693925087390492031015585425046190279181118447756038245487526399214184378739626519356033444399136523032293218447559543612525465322217498746818780746178170258749906107242257143605187968994523368052833255472381866443188699828639881253280877837459243929950017706267300367569502765729826271667151057198929809860398320430300370369674930279037129247760051400206886439108704707902366721543054647610250058732857463149969400643463241274689470508166625823852004687516618520687130966287974047261581077441044117969132313943014763748631661260522671576620536771406714189134513187859586035668692828038748766056051234374383893736144467771233503713017703955047704623101575207434476076994171172655783962945853287934043919593942906119379511023692573184839725174155177110957022220055186865005282142568640102860555626102150373887942335179731776349859931760812295547372123194261084397355142314022891361672702842456507268517421369565870432142764609719388011681062030879977821234440240662714673716165346157252972367799786891740783262312886663770815494336909406663310279778002273014166269098834860248186595521578109022538207935470838111119798139312852409502824273032161561858085007092776044444750649726227020507577297593061892544687722386288523650519035159111906919214464634280453554969113673524111527823689565320086503631754857457318467670614021057242239650660558676697078586573459813189428789771773749412354590530067189126659956544338112051374825904959988240215140978039640679012807962121586639849726226608542490027870322992903876387643209169575490724739038247223475125892702454023586216732163673774757235947899010532047482430653870701860911211764643318630229740878325548252009769322848940908423314184487553106752034699259842456541635981191835639731095061832516776615890127622981580630164423761563092004072419530198944058169980045498531685446846194874899566985912753778403687709693984969995255717762684279797887453870965452673035995980146540674493880967985149806980246101329408868281152167065378130067347168925383693388778380132560325694928460842627792919621573845685054194139004224399463659060399789880810015744504584006857835750486436437305428143689301488486239994905492464664988209681080586992474758655242272984509583114509261319819259052025663334705150722916008373136281641452496141029180993364621892669138869524431902225928072779740745467900893167243230465190059112137777582267960496276514634795211406054782650470272221409028196519918081713976208809778282571785243454343365089860602603313031029866770140794059367262099198795013629808295400016277528812801591719304040134069043505342580633431339119502582872164660248780390304912394698539152764335310273899318917538414047358611268593122456956581534217461261518691533327674476677851669807171934393222031095100453511377712493756707320591617157247951979129751249368423356058251201093789341117221176311377314972234265884719294354072181731142046476909024046553307814023129273306502207644874991926142102860077977349370960260229707965897764561187991209070220349474496818521536840507331853674427953023640697055422688237429397368992859202294321958973094994423544148957718837845696032075865135187550823549665047184430076806189955674873089466719599706395089691533397762942148857099413684161996184034154040824178457443773595246115787594483960794121262375974939082474586548608145991178434164001472822512288823027169047051374981783247531515967672660692316835521049087096560540383304038759380646144309940224405794312079870859777622913823687723069799644352446030143757523534680588531641594212048251723578384033617718811841429537742383692581026380642523811900723649983999144460054332122161347081794189008460575834841948655081864786776247632079936005055894156696097376421161975912289933314424022741380131808092379678422705843527625041051403988726690016937835317411836990031048265495392888450236654585116732321133322273086855215973588388586786631233194502760271540895850928859113067174434444580567745873460854911652749866362591727501715209459425965077125807373761776719326724706339094998309678167592700932903766319075997334592280544676667031420790432274516911570803763205373792975355170975732226609931949531765724176546763227726407705165257668357331034643691481834400245174321051674250200480698329023001574190245253398432444006549058063053037546207944862583902719626382516886555075827045578135504390055834345901520182548727956942546083403573843615616304792446727145222174820406880733575534057635968149384453301137540983798679089652298422953816191360935870473545174556776440035846774619008423204143035366511048535797542371708887005554610150143602835153938463217722648851392369541283563752430147434170675714944118629849666820493161885155900044120825571674202765139770757126926715935527401530655444865541283157408992795711056335527123819362485749792672688312567145278849315419656535223087358365577794509880898078542976680652468967489095701956927876494327954259891595830066782971672420986457215606077236775296194423890327916656448991799379484359537230157444595476365122822363739660818119498942622422960107564629456216325010358675643836285116232997286944593122732243179107953806193031578107101680174020220195678961553164534479366624000829018373189058341995379639277996523719846099520898767884885434919364499952044033191531738418963174035704275473291908684878203803188638840907168388015329032577085548764700985232348701754890810461274056953037389089266448646740488620727948395755967931133518417334834538953978523347965366289899846819933934209244329185662084990749050421043843923179092474502517242387932678925787036048859941794198227943274863369081994786715980137473224068219737166070048144078673700626665477360068580796537092962366479487900075490996373017461815611382177931227098108068080651856725975598159489708899456963458421741527578901489540388893768187051885696793010972855026482642344910501992294709331045729895767349748585221969162669299750111912648949977065931265712573261067992032555871639841945570370794849951088591780571710078221706163345815483243397933096302696909115083067972526588054586173718780605814958658853169129551800528513187522033063347395696721120666738633439598689410771402766714448581649215863740030386809237522559344094136648205999981893119561345526615959187947048655806128616070405393880010720620421644247538569245602273810191803042936933381844553826731446677928329480152690263527129504095176035400779952777155488812346875648179000880553882245752001712388263789662401611495216937686782014685219135979721891623609061456748302364662689351108651441637366848914063469162098431595531619050477259938390140650797416815396439333901686589877575245744130703874551554653880842190609192871649390190584814465550212112582290726968928448035817897199758966216734182263654960900013622600996475548804368687993946474875244401286620298032933623042527894708191926372571919963486545610290449057233184720142686717077195053464452327347793276610180269248359053277952035095214424482565894474480395170244577887939114918108710551254007285635096093454903429220987954908798533660468842468442394140615726771556136007446430090688323817041759141882012217818307155770362237050956526518340036094981702678690193511568704042171697101850589198503675050418393134200359986735481818547750406072254090236030688422670040060390974678408624565345020711057673938042418529258649421255552776836231260034188672890103838080758592199607344077377370150252882431979167113473435275710909953092378394840260051748403071743098904596779858775785179953311752855949674956875549907055655372728335148061970120864776659310147641486427703174248428388970936920630675995160964013632926649289288923370487813016195160063533686042541441293097006711858301168047813118259247883517346883955820738365492922646572469723035501261740317224472763364842964401695828571778482769109114779225385482854482222902506576051053768048738948713127549490627933718075936254563147699910670025411938034628101448432399938756889495143876923495010834618792646299437545425487326094946603158203397815467103305177565851738729053595105087544364451426015229993571133276459657795502189846053455759543043645061099934501642914143075116659726188356346447620577352097104415231280732590369383287710749104017839568023895130270456380784917916111052304765215268999224090807415911051071669969141680993254648635444441827040039692452951135830522047014530144409787215194810348910898850664783148151708095803391818645014398690465188807363182272247080332230350183871920639690703551419211531992761413870307342970389797319028958382258010303903504405752137476378344701506138907515539771307482360256858434453923995811245490158432136112364163515054727198473197621881407043506208404853099032377609271733473495724772991042735702721708814774979362618898873325111995683433571872426741031864607066330190626977954597323960483943011634670442812761985225671192953810282986886771344083921162620950459965629353393556910258951191518898094632710578516533144473450914010897147188490085814930929129737704324781722901212946591387156538239002812084228767544750610745809775432593776141227501454883719448497657125849114779092397466492799429868350348585259426549239687401995061684278957611160218439127510037083920104817407962138225859501498256347962878968863179892414071948145026189625800266819874653744308507330758522693956997424139322808591424903462244143331279841198206795035466139851589776735852194701657797797121223667231408022889102802097016501506962255918249015460524362734219257238331579308179690712057466699845015280302290963782753613191678877873384024496472373656340977062990952891126716891922618713094726807924480844429251805183599337856053334670031250266011555231336699509608814895291794693158321876191430050253769931363538111346835978705661747302351847615232176752025316809242026273987070455660714220133845116085343231652794843470834044484308470038928071893374274356708859561981711740556430907802318132738380593706723304110302324676567300638470378792630803431147888182741543223636519063057920800430327870033776477102228880417887314075714107733658006315567578724369069747515205390320875370419685431714043784320519143647402582365346253675389594384269624091604263207030479046520295871911263376100909798554979937498844259438406244958480890694792739597035641842163391324001675540968664982575475874870365154980440196101627511056539591484180730988266260656879855608088828170078990109899269093029798743612626159346562203260645714190526053071619467495031399345394288141164913358402697862406110023355719209262241869897159069588925637908841135613181048973972243488240391789706869217391637275432337819804503573303971624068113753706570459797797921718066227497753492369626592101770609552927861594945396219870993016808539051975333499671508647613482988617447529532761159783635086962834117475619013090416740704125516123103019681548325782617279027983600422188620195987385545611027600807425900473918413798597010177082429477853254485395181170593096752853223544584299637563051509379889688115762070672354866301330608485421880197933153676860256502956123235978862451976978792873261118344810177712475484171731941788389361129878707000405957978472195400436245265950004143794099165064591287469939933941429667003785283682746053643939898905345513077013214509624721623641460907458014112073195026596736664671550578939506943562204662168344265094967668237488759246259288739767936337844196180021613588477819920390277232994062928519081095385003029702066997912566470300177442001860272087763709549820404238427187490502596221152905872536016282352160723014869128882557004292398892173730017008591599263676281515072185105111946162102805894835624168261936798882162441312260087148503066422031752040316351526937644955851786364469449249870383571212453365129377422097144384759239347398163509290386348210445516711868976983424892459778428437373981323052394728232665965781614728734602778609328321574904602694140583429624676224441577395075329924521951035646340424124998945553767658206782106612522220779408814918067718986254598591165038912376611213603188290950417846809877374582071156404783399546731228871781957669423746719532733868833020091057170962182601093560855623038332601087827146135808761768314181319684737688628232197714543286022811255145573768381774006559852702497665117777055508021983065455461586295647905309880784102463471113318064783932732120212661536115921468664729074309853936550045131678378412388002801350437107870041261907471228165648472611371376156206849008350445146711778117576906886724092111069989671152591858628600765556404649094518391321069477084807876681135460472782487262916024625894810136184933607140553246422319125948764788117516613590588107283074228098268038956686361325161752410862298681910335610223543254298129475622852527516899635489354291269277062017142314713268619110578845631959159962621251690182436533419941896360182345386991285055396566407096453856952034184651213226496087727968714784995494681941807906598758234621839229673851936947390161584962125218270013853604509931846810485927140701174372863044970241308124981687717319112939893159564444877541008068651906378662973378433365277695393546434261565806224123093654231924834296097734912268548086322763018603361082761623987987301534456276004948649732344094032518358083967528021781255902821542258689520596856345112357270887492432490195619870015097796367351954277922403909515074772760331433564943757851750011619353734972292931102860063652325075629303751119785573382072997059967727192579820939906562281550190592674563672309791949967541500026867259618538860445977149187332188981607616777787744230868737477745135225379860296876567540172690887231874606920753901346140582205696949652314619521404056094787664047029388832252200650706134841431491447388593643849214043168844501739317853425262755183549092705342915674000810625700639426155454401132437248560534502349211943488615123912627598925803551239670584642319532740672411338326872268802488643990483905851008628802873273537977757747127877575638646817795535113348877521314118188001793610413729390726204895937046786302118623732050747843295780087402919319384058184332499038138747063974461864251829304200285449161941852913154168916804070435069540173935202793958744550086263181499413308623553905359118944663105983291136060227176352181182088698670538991389293462640916596218377881171150349320871108109347479555378724694634729722353872063405569961368649638280269210171735848014811141301042881410380684212059957746440646199233523562331758847818589053300802506770495622966503285411244584358854713949916958435247285552399720889307805486535026431972166477477250701300267118999732969460746192544200341091917248131960203563748257099163600737451077397863344080970657151862917547868531610606562347148232317959196788671048367038599074845950840141427011065606038550234183761936201669897741098914780832283826032884641904429702139140767425241235343935539865683931424110722687006841911494061850666316959932450295275712624809095977358854923570615446748095988748218788671721406521978036685712996869925690309078059028277801552451588029990783003691993523156397589105914255533509855189176818547791412644883493602651144846465210727756470507598880526046455260020336319550552623502198950882650387055762574294268219168256053980686169433790616745674795749748860917494476151700583207800010140022393708727645483978722742206999164656014713659911290558840809503624198037133768446707941009338973848268445043129354379662793701172501195514161790729339571876330136175505373040124125836044343788384396532481539873960165046961009903290684204328279596081945893479796328851653041100882584066251171918136185363662229534393465937555538192338032820609774690880478781483673273848301722769150625040026160451554998513281426173124862071786154665757721885744633785453621445264462412919386743379337570375383480876874141432356778732798457146779019731661598352611070273763110735176128520315703254124870661758658675726918766111491977359423349688229808376384007810042778804901704730929561925969929046023331344532022369691719684509603732318045430251025093513880817632829833188659778910047822549745161547429394350974848561364550111066949819549055021609329604289812028391651145618202008725686104438044119643276019702672653334096013545177861855051644607353020111597676691510684139196458965523388059310284524364617499108944783303593520647569857859933544907001196326469571330882749325419627770827254016863513990845186934429520746472506148162890836053403358048178009716370393693642970803789821431685639540496030244761692127554159198063595353659008253787709391951012119929074728679574899609778837040116156028484465531721304196176918021371204092649565116837520970768998003300087632179124241572290749181224710995417199287577006520361850814476252368690615318065745878444717793524230004108603295644227084920640495202087012054857400378917236152561335785515225921722782089832606388296414480426135353525253311791969998423013378762129372944808842710804641436516785216819371010842750216684603315935974133558384650009328111612533952955006390607585584697978040218799448081381159282822185115099812174385391791010754667355720150830611675848933686479344324516705851383706272238468314411398697223201947668286398432248765615603020247553177637117148614568085831652498063296911424341838041711713808043960158043303565009013181448564303512502276565903725953055799836049720767557027995605837927269775174197015088815190650401701928006198027596402763599923668698653197786909571078146223058372144086744593173694189156768423394168077086189504169330851778722330640955856857155696585908125614080628838434218413043460986706564851712086076905035128286329561147063381680132839378986018369907066992166129067831556532310588340216081618823933528790562403525409950355227410417358261027192722301563269188424002683330185665071127654844619669986931735984838263251761132330961285716718609421356151212338869147907439357628400774273209781282359106126195549776144655317379342885810840602293782178294189607267782817561798165488511307499020696082780049591805851808274072107358222913979902994121899273004253695378767953672628279275462711572301440026481149924422079550932031865557749878707419333790803986611806972775750058535000590262262773285596583344037539181340787629115035909742268963511825983636970382886887860734996107895715007548218216359112838317507243121789562882323570668414717021095882209227810368665710636088211645789797880309146388492996499396328396570396484705307283926759664712239925670944888301779818538222279978538739121088529708146026518152147622504852576670793708404478304723152255226830552941569559144721674651190041893256806706611433652941884758882166967324834308341220990329538748936658146903346717085638782655857043669229721261933870490929569682781794869030540237498662879935688168891518629478193788011146936003299300504320148633144247760104976571453226642871970342758141433486336124318839420140087384042610634123085980901794877657884850192349475486867331259763470974576752313401584355381876897247411377423834365695857533530991570956147823277055248512748874408893795036164817972731212975751726107224955024078797892515126189026122292231721444717380774161231063044833948252308536358065558981340996333418152503113277325283339848358689552634974195804544689242101627144719026250807716477256302004305371807975579239229945282175112594482650749781692851043663295769343702189367919855322815969206646501828025886637184281952768724994800456950502225422272928068301477747151688542132904301695583481165833642157858185863748648094990231533243179054047063656197491931807879502320656079863534415373550038860189502742191712790375863369932078263775010920879264224333781368660300808433630939658169263471863533536716584757277664033992166128393004135837634554486075300470185099050781390056524592650711653899424320325102257501991321720028483219132575850143617798195666976867233819638448316109856027348433841434499664634244327956181650255118518718570164819025233706117421785950269460122323153058198202471654320016158005671279619091009241001441890470083865087825662708066819011510897486926834316605102231249549875953529783892630509702581743790423473031557666008670670078091903634352599709183004120913069485417603697560107765535395973552854863971714975445878783172891450336847605527801588705003403358782362797370036419023068930330638307540168900484581694177410632537628865543251143230580050720504404164762715322787145058200245970773344462906486535774651068578748373574966214364393354662014795776653727490961688699548370122070097723204233302281294910421790198460421051127333901245199913916838209393210599264492088550981310661035538769719258568369669966305903537563702709490421889675444737027979438986551851504261945223369465282740709032509659386165576176539840360144408388250323837969427747056294433116308731719701175393744928939923452714347613185360649690063146433459461931836403007046617393510599936916012881789292299487195943772600239029734420362326779465129365656872300953220317707850589371212261344903333688626873017519553046156687575381746325058107560214200188577636635696051625575732936707149828722858378237329216823604973787300183727934725468095166440991221201697893965852905429092431352050289148780438435893693124100399406297013859406447616159987827861475776566091486510532780162534732730297891722640348804502203255348478566514514711523260093062180323074850593650493103591775891193636505093868041375220595828344817552688364289646141410236358844917356064309274249364692257306625803465393191081833404715396358614812703856391327731388093488907261395233705337519424861619607226907692839142020933609713289867603371375891616181935137613051626482974882575809619880410147407256044601385913690109566223816716132677773693403534940808090049494444088249681275015146735696677020724672246916860754257035816142085882090436201069810187319133767683288235062282596374112617344539526182391013448299123712270515214721464092058563168333829746196853319949432101147565011383404131759184850076904642706568522368753064112852728722288589968636170577435471653464121256097067730462798514631541794892731737166396636944066476967840202959073698187037495149806946704388452789443100207972593709309571569207230539194212477969285582653003356868717153569522102341777247945668629096812938833749412957927073646892667909247791475287037805839521661621531895434856329275149781784616626161918726610687635893256262184034798145917404387411501395345054680820135221940188851206551762722136870736083910894023758740842500794363134257882149295083536085153289019923411963319769794681945227430901660381191902854830590030612082615504834429604245115053307184240377290956828768550224460815306969368874751841530487765315403559226894704469822524128476430953138384344767167241769393434723419830720201229155715753435965932012145988885218548352099560904047760657988064231704683473785680158321822975028244487671826529460156159063109123513260380420480251221229144779180978209026886163733212498538808433900189195181017098570518460114460978494540104316592034068415725905114650377576512560936594411254122627360706119826201551872422111622865332876470577299855029597356586411165927321339530500229993188826315865281953051121720757439648524922063071083211830883535434570000568944455173016211253103701503244522632820530705346785957112845827067612235828570694008887891510987922717757526000081215432102406833502567225381759496928583370241888117393389373037628816632895826191403651529268663671285237120885291960240216563635194445219834271033809794324040759786501254952905375594637299055839890004648993582288571854974058961855132307051265687294478948014006732370039532426901780821057837989411719012074864202139175850940557259629166172780132246546321932657732920565973723804863502588359446056835067205733820597817537787204729302993258583251854828700740109293768374538426196037692954827498196296367651933788011477079290776336844812920603840180341089986733660570992434272220509160204120805056857268197650297273807855776850023950989796219403245924966557883698144404465603676812960643293274870736376009893383083047862107744852379003438118267481079261815726138930647759423016842873895655201250823358160081734800185014209894917259399764925000654280771078790018837301950378022788866237917626366954975204483033722054582357296708918488699642589168875840667225562277785403898167044574903665331329432935358523551334183898581977337299507490159300746222916172080674734955963876619418843803249704894585270493571919701874583826201009629599996292861113287912966734526846341648057313554072467560854801832436263042303649869903701630331438131580119262005099900667478891089069534797667984906972375057384922098251925550755990721824905617598357682598374919485210422436150599551407011327778876617685180324370108457282989242143402004891734035552709186404644943795560796852587548972569566935042466572815521529188913363280789061136934745529489248696568927819564504247229019862184423556703306966207364748565189358202493908335821120859462376381166818295072094325590771797068476216433684965403621653688883634799513243890893923587588627870411227426951337610951966318342493295885535588565504096787693904059771677407709397907677338522447464973659443276692636302391870179074227778367096330437503798045246025589697581619771842395784099000029874610399588755708616898364394187375378078926088659240703653059517022393530047820235768943126275004988683300609346858171888696444695129003635592860088318146807155995117695523007453584306594737145367452896671396055899930687898293932438443537098061656432627823922765196979709544552243965030959056861034457026133271143537091044662243761200599259595903117077156060672341723329777300390304070884592941446600784369642675556625973925503803916790994817697547449833838912540515276726568409299941339026923037857821582784246995578675529145902805860901497163494346836140036146053207815780093673130234912445585792459004116904014942792642569122078106363210485544270304754622940477311388281974442644216182825617102741244887378223412129358970721596641307616405827023087717138981552700097604846999164639878476867285333697939880523372677841106136070985216573484578511343475678920025079710636444969086032947573184725058773347247255728498252964101571238788091993238776723817860725950005959434744104301044176760989071244893552892286141328203920429193917430965234317188205866588914652903667898623662686436232989374493513429577378710203419904078389213055899316993909309004688261717570706375252469961266682590856241263586233855714541331297140272646068882184906769215134100366378031488483339050787964258658099281189869535254806743373930703653313416456656249890417426709656420170699778916459965773680750276929666474793986708219717283967439300633761157656996625109691778078494836212661852920672738142969982701598088033799637327358374645161158396642525828497777141949331492855604567032657086718421721069596675967744062739642802337318370897161538856270497535692286890914114945169634074754259898122403920119785690993307191039453678185696061567538115568992765630734072426876956381369521207388100275956294739154747436784532632032921415137609158829906578826852549268924224501617835994067109008670285287021132215736398580219244510427931549511210080024684116338970813211669543597816156187151014329636339179489164258944301804652669430274660016225097532673660939794809142965926073913976314707904772092285948584387039369266081025124173514854348920704142238897583289069829088711468349235100582232847904386392731956104802727412314847596482236066570401206673358520179750003833415583412697298814712357893655256458954482663624913162660453251083484688509763899656579986308465530953763215666452230331157541888150528583966994271148282419248594206187345839858966150850898393561233294958394315148823182456352663968511210387729588963193348906324635255684913782561824496457020314320121614559820979309362797329877602632533855442159908863460089313011303676756839104106559069348869040528884437077148282370388325050287935019811249704803151456268580048688890036431862472846485582307854246951094044484874877634517782821898612325995479297062158805294506905806692345286161097081527762007195716092338851602256241061137545429291129948245776370818396738665254889832539082697872289446688886966133020846173938948978071144288968266521584851267366605378381187677937439683202471788498698165153040809277377013006541963865072108438424870529549179379302189169935310564026982113501069574778188386794680023782277586289454110605466050797826264262358001866225613963202777791058754667299587660756833563969697085710229072328073055892306626852835320380988660129497840963580063685351695638898731369946846917586775136437583042038135032137632560334809735292167839383899806297746734050510138263506636306670303074688993040970679945898743798848525485322089287813224231002305268187778887794137743340295902129931035017704261882498614277283350080271323476485396327811995515110301667885845826237075802526643670854881289561535865314092973496413715461422055317682894061995938458531584598362863077243257130701576664073640972758753381741259683525117745530906391170723933242380852276780691638993619943649007748738352947896690950667889765012551093084767914119771611002976975881614082252114575405872375777266911942247948518556683288663784603974570734077077955999010506527385307269719876028400241101821393417090057396738836627234905325222224445362787929558574825876945544670080572464508562425042930505589825068755705040345974728929298008167640988484612134521240632208143337696650145353351947853026702648214701809286957368532773419117518360844630672320829852879305859289948602365442228499521499489320625881726346771894531339941111055036575781495666305820787767401832975429911700627186717295601770878346263770389702462652451630975713460102474654669689116357250831768804220269970569289446684069160305809077931563038856019074854028832808137062506092393648850696298748398483088614850975083105527770132851539738678804856642100794423879780214904668856063119388487833823837271083827240927777238813851343330290555708608033254494714526385816051278624569904937128658300925525460876078972542648491483885580291548726678186744632730422359839487287863707839373394740317240240590316329748682229280034169707151427835450026672157087036596356704630679413485282909575230190187132801090815710231010985711205559898025603976500135945130235210467534527309398320094445036347680401424234781185673995838520772252905787916991660776372416993837251265975711930158287410843866352549434316061223041928822809066584828099055673860298823840667175363736309097291970075186086861544379467633496044464696327934893667826939635163960181092771056230521595427600015669592504979753826833142531006798147834975070746031644701611151101090621642116824579137510753668580756565756174214445990187818561638661353634202298570595623926987286156829067332070532994645522712879875068234746191697266037327521582789864238993573987132679841067362952027009025085643393592195765690822908369507789303025381479907164484088745180108329960089903951486653476346085906232427288007675894144405425138769899722350313956285050027939864302941741602025288491512409435781659291322006053337705347633969537470049009103690666637823095420089247079299732559571963694654706598673698581862764160847957286224111439308764208348850158813794968973244155640804655489779485123512324202389217236739112944177961047506425760076183286754660462470757102976997054666934819356366344691310729340302727633942482910140170354065511773301173000944991738581985554680268389349744917438466739262583990629078071478385026702229729711638142835847369681375849106112529110476514290979494020977489450056720564014311897971603041251170645012443798003321673032370348564800830949898772624597796209184994690520740291803064684016233024962344995667776705173000863671477304385431378785612180216962497659380214265682887653997033023370398284348966688746707298435650119392949797215789530349395013375527880970860805112380670571371993714665727665939481457280703941206052423153259050790115572379821606523536038598878275527106115446566905416522864933471086307685191586121774527798858286780411123006736752448955523764900058569981198694309153722856372796530538151155743121757095197468543978336928875178830058517502256360025982228076826696597883833717257369484798615625036778147749139928717268452222872712656233239348005918674760453451646324757968624872081642083884487656719464295895070275223608676064179024672783671670196952128666699812992927765389961541633135853031177702444993794138913774336345128034007162713205149790964415605313886582890147942738970799931080337374668958049022734419098008226463965595638504668022202833204288723451342681961511244038719727575073172146331204559304348060221835144101394687861300175505970567765329386682579475010490400132765790538833063800612305074886385127502454236421897311729670147530356205218929846400915466065517654640016092317667154939266940765762543725570698092592035002402405809694072227869306396066176984032047258033560032277006457948984000806213143293150623820755636963026884839512886187715298426512151855682554000474059362255906445411842634829915003410601966061794750084321143563352234509523602365872620297648345991397491168043921671352457652250735726249790476894323138686900806601776876468329790116620662531170631660579118988725437265439489027883227968118451689654065689003960043945293680057566064311243225884962798620641283253266134267238929776890677715435133259738505891156095676804069772511057873684730315111779329858258858736428382943054144289934369500664120883347077899641807669588601577255474824592105440595757600501573448539578162854852881277307892746479659752572072413414167264429543225460618016276806254906820601844529039577500337651629691637713641847578015357940810274075246533182507816235425057376579660174979664733691570740231920068432649367729604693701230952378559696317541596841778487065028880705398966705237918141664361958054986049340706192227913181779016551176962005212497612145138135147784702159382490219325914013483247683475247275605576401416795661325314195784496077694984521888340893033005025095119175222047776546476312697837777259339998708300539309825700587459121491070955558698310175497371110293092089844233334485592280825272475808277656594849380541875377792012294788326728732308256043684612550084563170384407968260134858057441311190485100760698179111357362121929380546989882569787816117663240812672083796561314444780024358590611179168616730234094094966571320671397305010707287092562885644399477813288998474337256093601295421628065764731870740185828905514978374100613562653688366836097999690584687570477139063954935638879798751808318718863492230104843558204160250327663430288626178601670385311114511228864927877940130342319803972763124527346876442288831687294982099907181045513852171236364866073577647267687792149389950068038610191489573240137584928103069308807816881596959445942758009367770296904062129394246846414081182384722367574308437854791940036269537873135987992033522388562006031642438295513069785406468148327929249356398176926924145470793172369589390277001649154057156639607538856297876084012582695514206658949596272202714584718438329038897710422314789357495902507605798112407767659080179601728435298613397072984863461147939596202037337977534461864610535802172713674418132719355556438054002403962703944449384856375740328813379082978721178637854322368943164353720757524817631967543504232545660336788577323077229535735024290723033378245179533229217644248906846487958260585207291665194325508679034931550074545829114717144136425056314448446370845418017365113422461225124921067638594348173142393019051359871444556214466795273499479582634615116209056849778491174822177523606532816186797051261158498127713126633301749867580290017587834646436381689807126809619781219118195693988654983057202075825297442856249360731934201620453812684724577397849265715904141671776576474245765932249588977019334535351518820622292978676513059792070080802369853227254103584557374353676827277687563881840535227708838140827550574738943024837349301558154490439970313426753285076289246261348342722410022271997008367434048761341135035206246378660613913131096931931089353033401925800308992822332456591737060626901699434202653674899079735051921931033860827044363124534564351259854122204957275949106942970453469666241317742783947165312247070145518515666569091784322216188683369212216715218488486431926437298208071684135258218641432795417903635054895766620295165350834645670557039809361058077333578447675731122834407930238094628081051239190124026924795409531854916633340718025231713440525320450024239282141340139435118179654588774844439799026959108380223440086004726724356568483640474849199561345786939503757296437115660835033876920142049935650284317625963433139164880487418456935946767439038870690901341279751558355807390575810484066333157050326280344004460865861714696554434125774850212372310795415915140810332616220514585849173689302310234438874509130817892903432964417312718822723109528256342929112223627401322588258293108412273516642059167158705153440027208634218911179411755560276728485791404156189340459828740965319248792724152763033036330567946827963620974711146518676285769261938337993271687939139961218176851050957595799348991706624872805252332639229076422004705000111570152255812231353344867322152128215653645330982081738455363318637611496324302247863254159510413698993788538469525074120978734467708595171067970795303357779269893356524012454032950619682312425252905743744001092232522978550563295838405786518365797985691407529802996752641675707355032624000835914957988376029634950089442265836345554645830571698322447223266290952982962428067817833390460552063198106105010991545191296431173796203346695874741745573341588443006157589446019521807679820456074960193101136150797967003017616474578432826315218355737754137719356840204041003355655691053951416893650971019435943009999968585666138071602457554660920883220213293463753637187044842420427589323756110463753431056416981395414814971094872276087494152609088030103617701229436683639069579486080786603677748328009503504803955106917561873977496708854467107992824561900600256976116177560096818039519176295793638466204282637998773784707957502683154465273785337020538386586793373088250279347664931856103682678906838251018418173668406157336041416061638485800589537133088008874047157035666042823557301156868806678833009127595147141076057928019591779141442722113246320116859112936495534725172238044011066288005236140061520469916832613777112169024578163678491631762116982895280804677163285215564020697561313648647801970949764567344777195690791903905859792334282284910775774975166310126540149768373946068916527528917344832322983780720701438475953227033919630022564636525458083221225780329334424138927947606912674977797402557080761877219640498126837950532843029153836300284359048703713480662246102544503650869389368652067419903057683062679537077397157074838144715282157368014849363065873964333993404575778052706849793627049518686300403128652648490711113859223419223947858983886401272432348821132552223103721991481653656713628775153027779520645815832012175522225226490438304374817954050802714210449009198930928135743629927642337555806966968270074245552643082132318603924400669729232114890019409549010156573586723005708000998590778807235023965309655234195632743439897213746571631604909200975836372838078949771908275419493712848193488331024005238340926539161732487496296174357951090469480763304742050549449400575025824006819501667004245646017311423951162022636426693113191198089594283699049296272265350870914151754072396486640650384417610147741172030948095384078709162824638013730142464872975382124048915282797598701665282805968721794203519130539853560121642294400265763714859361759240137277837394653252030881931277234121850333585040259052336886911878552341879846141141816369855867789402935564694209614141494389927678913925077726892437712595774122034474620682220306710763159991120920396521925937967350725856061474153519349889251821516039741891870279675428922481881083935413622021456150651843394409843085539354727457497671251646795551799277801750746280764419871005640591019537887285477132979091360639249049351610638182962527798008898472867513378757693636713348166113116689255232439487143084789378103927649580895957707526931989688503519406197476608140313774206989487999168576140418778479424138846232026106897449957103349952030102746672999284913163841395934095719112472906580587579521491310384299412761033402893621807615488192880289595122874609177512629816732578887859006956277084299857085929216482691117211972618363323377308714388060114227774015259241406023685097648700522094879237631736560900924090716521434218853757682130747265083851465743030830050972805515421423125737698003828422576922326103991508910921277404697077196335428648256400110169078987473622659719165958634504588046543744858417249815517490685979431575017976887832352014411160159696243960161717590542417142209193239217689486512962364303204313277709732293406838482967398287597287255107474149475677826940877914832570047967436876315449974891823226529106326280971458340934762959584704258561094591906867784842229146885401054866816963395482360342039758026844680875066802445912254291573306780351591022864522043034930937725355144552272282204356291697698980664714439717245583435336343663261123274800437356262941912351527925198877861824636214244032237903433110027575944701358341629878927743637619292366931154378268365963010384080240409660414761490805010559725089062974613021342709087731816070829025943817577642641276309213678372641910797290908994897180664587540113181216035214911684455194704647039542644726857069096646298633711390528439550948750694936729207437946098253332226711506585165726740750750972611140054454954573553860483637427138681464345836642490217916770411387345308573395748621621516200636023791696798500451272076423169857003150870805060069455667102798910826564480620200087917607239983836607382551617276409574702809215347913286213710166830798800503261933073311689756367225268064338564000635699052496344721996047965850191631358123104926678776019752904575414751197273841218587908671740152214376519669565270288351557019753247631397462034006168471348965406678518668906716118876379188530670240835088238830590346317833378610667099263675097290606832197779970607057850264840115377928323135082478368170385536840765776409348555577060787720808292581713047485373033160119394394661349885924863343766276969260053577417364061383113244826511499705260646628309591851703606068155640757476084618316858392324152216864322140084487773563891150866420612022660179732093629072769052412127515482885466236506580542447787737306124505241686237321456554249390248482524388617907425252032326285095444384676478841096082459229550057233263747948123810586310171103701051168254984583692715074179706980538226150375910456235974434809518488163747948654261652349040036207678179653383788695151749396382006094272191189390101696026436918717342658266034090874632027500746961244606463757597791062691172846788360794228091045957321227516633989988092640327079411008792281393379447890433415708654415849685242446500610112532624090092870301819939864036086244940370383035998886936383941130323888613284671499331916948614932304268187321939620963826934882255178688006580406783809156199261910782813100361122139402640464383643496576195957922733215611459669019382669513048331857287880393531409517969617045489670905909820507402205678940407118600600686909680327467825754542254293146636899881720445317742893375677453138341407866849471391138419786643559598388596027855721273604774559775911123182282103529827625674365135245423252477385812183874413065790806345232704467825738531008496332537514580062907043186796424324374815978858431732288357413567883712302735781102435984335539003903863835395785728793182374728184997166989698339416159598643415419615504970876087506739223843001704997205876553719066702985790847967497892691038512148241919060897863910887403120997586555424048717042915364835573711099191156215566666349444095921499295370856503846163339568098331822371223378493894759023249725637407571175738718683443404558250225937654319748187328527841630291415632696675952423134352050926565244960072398950445463902719027812720655361920578402554675730120599244673990626945233339764680687278456487392399730764093804673897460407918642345281918733539989803862749455409214852569050405816996110351044342004749974949567481767517118705345416255424156102133898355889223912197335580071051525688379363323990871789535468981738872546080470174356811999154755221315364922579593680590081894740659226500772487535347121283886271007421553534020379854497749828244664872295273279039013446905091875483886916572486595482788904363339068035311097471379598127670719396703786337072132739476793753670177913309468803206406737270068117812383036248933214726429617179025746152299808346556043971838973301288486113130362814243426291663520739005215679721135115929040585683507445217414721930677549204707760396026068945023509405298945241299939532549101041064835913161959854555298855569697658858658951589752493966484494947052617678653484067018031168172421575186328625199408672792164749771619558300778575803107631302263279236308413472320266796489660034410736799317727587683050637289250434195550063003077247105905042233754721321394006364487118505722128644195522270945152655405557461822000587837323438157504652410290090915122792762093883761761119361559722971701052045260650135337565529349742290061974264948841971649516635911604172689673568360994624513784819903827115836764561637918810549293380846714320525475454017065627770701945093356067547191941294571930226727827926478059130484291442733046951178402877415801044122044290522568412197076475932193583661089744677217697342505692100466184199343378727928015558524252580437955921907300087895421611023064708693162462472430633561479885318938385875754595884755867674446040006352972778555058703380286435820969873654255272593723915298801852759975937627006689398417476025456212748799703040345027289548068847505004433386116032366711187310497461625199469418159360323198744844617541823683981875001784104857123486917830866771432749005954855468289641644805369676752654920950220646945632231917138925728668118168431715217013236563698285829475111847557733382224289491827004335370549422954158627832229727393869915251666858041894868784492022427256465104599369056663978100372386121082017346779418215112888995074848336273098963803846301949596475834386592639044940554961203477861248727798888111620764556843270657695976920197680191993285891699453457299692218895142660954246727623046766092550930735866015483631762749988282605677680135371851036560465287988547750602433687172791522029860062683517669955524284392989658533438080261610331347894475045915820655354601310034344087823097622248664240156451192912171218147420547892759419589323456341743824112470807954308137873599581373242187327165640453413388453447370094674399642702286952646130547950886959796520896482116243658812456169803186874945676905933362612311230510582357524431100463460260732354558188164018576682593095118502504443181542029660403381839878782798364439322949623443583593030679730684546550573691496169087137020415651400261635288524460086619728104507967169749184423268060437139814054568971569786779670146649177101518324763975028678428448432997054194401531087929487843765956265352829692896161162852367763780253054234557987797199837717613240706180698494974869078696809253108762903067772095296839332165590958687455053275104446081178869035193856115505106800418845497084229313186340494091496483580376791883963607253012315436829246151432340264161082046236695965285632267358403303093259198187349475465872797803004305606412175360543584844159926637604755420981993323171162679280436847222850646589572840925662523260269926244640184559640423007124361746816213674493029534053202128027825267537543155426661130673439005157541951939482856382766541406116307220105182435350709969483881765193128916031701442417254495205926323815719518351792593646028508627705225613864247701631103731833903802864725235504125574139950632034784507378200076502835218703248204351173628237058066499559516667310231127124687345568235166836366154695238788514235029811683227274381135398698022889517687998917427272777904899751231769261073693838851244011382704470306648138907166479280479590426242482745130039233245544418974443604996418003392192478668476897857780307796080896040289865792881486185571783593282294520642370057666105544801951687445363065849157026885594374221107053510906128754272505443233015412305188485047298573666675037236524933290635113330290932614012461490306143710123217588061553361798762960703184895113394043196094267785015165103691332199064268116387536999895167239679300218719238348912871763504040303755897541212637854167663184786994988600559525413164763836766723337293822007323746442422920806538848246322241331584444586461233374825719482078346621702795996557629370093535252284231254984160268945639733524374145231743899791339582337780339132396996712683050455592219137210387802260726686517993299522714243370237699460958617937297150989517316645689510937366832856127714814495214261505033046010810467562535828977779097878120173639180676307787538113840969238665146008069751269748091514100163240704922810668487949770631070217663796141925427595235448567098230672163348474946257898137083289183592404504219598538548930808530290988760538500124076157358439952263978446195718497969589400478066582821199033961555431314562973747743657413501955556639834496577204688145916627378315045692387146459171970131386671194340256411833196830037823558286737452053326877555688670512335332583821163423368284510474383111778553424676913530382080336028230321669494796887988156795216511658480967885116120391413760738089457982011991124062181141835562359892761125105970745283814079934033442252439318508347944021852820570398105264729484943498254102977606121954818278622893275338205760440733501468020176653923599181113025894215070574316315679728470318125569315198847058907045518995690232480534565281688701425405408882782149994413433460029773243359772276883514401192169792989765159785717377716908215852995545127673589442702589190544645713598572755327153321065665617958270208086927758858745261293799687448197793120916118439291909849499134875431995085451034270184040018143575268218627906857456409586134457391694438250600932295237828665002560200921858103045285764934147544883977757998835715399758953827514747763275420651470367439848874574827393393893238624960894623042018476603599129173143544421801254265693951543032532773344468449734546825684954893417781143265635252586652875488011733553225990435863417131863669301170490655555041599328401673691526864381347131194905761594863087178640982276085086199342048584072860037766922518566044206044379701671742995524083684399110164029026620617653196661070218900551235425617510296584107917254727139795089505269792987978193943163991225810033726409912558304446133422597766088623395285647031685277326707315574605369491005610931255492831813362691393455115566031394878031097429543799888552102128604680298960456657345766173842786059797078182022331565637199233102216915919386757560117371302067452722059770395031354465490480256653349123297124102235440963941669484909261236980660196761764902575818775174899039278898801239992614471853084732145964238294693052098363445992352705151985896936954607429872125196758258989295557809924084201541806942062552479250863740371483621835258734788680188256445551847550732731466056244727956629465035970088778772128361993125776784225538144901937549744070640048351489294410133186705578236182773012638065283312235695574572406788243318268680607702213768062637104290446929811692932044591786234546356646028458184602533004989453437781321824575703636708588261405845220992493040130946139035016749870828930180775708014348614754076016273693251575181340308117824685680697505287766640690835696810197334354804781544126130392221570865293429375911743456927767979018641806124290294409483447235084946376070682429432745327530842101900639825259014096900787149439124576093510726147499241914569450849390620503217989806883025241207596918320556085036640287996949790919928351989231782755286877120084639353585629084771617191568167204439404881183766060335836611105283310556813206208915409286994971088609106090208232372977442849462247433298317171287145488942839427613021819654130911570786475527038927788480582703469842260851688402102970682155651677402778689055113935236157145114230422867832918483719134968809497764652572643522537899776265786496846668460851227323888935411396848058911652478911715992678151896748253270404546283477781107807130233391752018566366506618006263852408263603399837102078478376615312062627768266545478408538672047247526984876619031172248680234945476761379203363431626219090279065178047236901544260213085243903919682641210415581030457856358850700257813230924241574640249227741021755567336585280094327456197590239817981324291939718791436025032618968482778887315345581056018198821477660486239857698105789474880876540535891953822261635274315059008506272139542648639093738561543397411874177443873233678295289377641319358368622162223174145169296165047105724984963434539262653242225241893417478399003624573145853369201761441887615322593395571702593877373371553084732607193476286341682785310488423656185435355189887526033305996784609647500300454055362960899741778730299057098404053085117199194042494155771665460796471109472498426129005431550971708217870566893556920565402623162636844197050033941567956024165665537377738809925019008615388682458226706170590124189071537788969935963157303661046125950169128430640728648653463072344393475210377731292966829270068383532622284009224788328027780944956223951060886761924103632038819570832381311477270746157745880139058079908771195643649831624183738566207330438650483954089190428803572763642233610970683118757139583356097004286789561820034579657198419209051322796738703256765828489566037037406602810709191209142934533902918198176767154184502683337988146619863178064481222117814922486757835147013732856123880669006561193098872072516302617200039061085221896254711127924405652300542542736014867599394934799678740766386916411370020500118450396619220608166161399897664671736694921076396523038015401553834313622141072253041830288837720192165646334390238508833943903967067898336638147021973553368790026953956774731287920516692207700577843944792403331565189212265600616375573973145505318001368192562389183033156651385777830919481847523087440970224349244093008356969127122560984469463950500756513779070651972631624017838505457400790656763213901158903348134942319740284956010579264759869302989585866062210353079326118598634735465191326235668740793728375126516599609738770760908378332907379735092125765293594993362804067629294476380407939866780815721531774701346513171026986974768549157958217932303353348690485263528490253611710791417338114225908606907898022637332972539829099216951419591486969874202515273412528762613052444824100743096334165856836444471008995855982666866604398577099684479224310526410036254133226697845340694075762131811042185592672856339840530920332834314488635469416537251180728048108324849338648931154755656915515081053061288949710226316897254668287052459091300984748498970830158229426367656807833180556703618131453310678903747483909161363396050598143400215374269291023515711237719225004630264714130803159681665904203281570861798051590344567347300669579345578385097418017468636876922402807054261969558825753725789783251784376895761170869371875717164749385974518650452832978376314847804599681679553235365213259326029063324170138417739753156207866020902633867709274027718866562698930832780556092015831865529660692467114870378910834197484016267256913420414606942833428388241926340928802835271054637097687567112881643555839555968984603073176203615080208490226565705305634215919884231832131469094271016024177310021542271831654962749113151573382924247615821715734125463627506202211936019665086024031031873932271024765761246153480614129024556826283918937667667350018795665745483277164520474651603284702090320350260637385778796837912833601114847462024291263671680399418556594220352333281632389101338462307950181767385804461296079598772426530266914643338439547800125731162063499050588479585137918268368663914065374771125269657608120984234873845349946587413742907964379664268211426594954590022389945033161379708000599804767943761389007557916797299876132816613497858072150573331622590167380524126654655669512170713809487962271856943017016846410576607666778254381856661098068817419391010013763656423767047679978158777381347255258625001645417131603102384754888379856350776398571090486433467548562501321001898376760219073329306742688888949030393080616054795964249332285753800658635462787121715640912896749762170147366951399464877739808386569286402214027741110429643895557954910735089374158589641804038041755049124385550478566392284289373290124002325667625385484171447236603477399871430958700612440851822628968172584124469926857894949124202975450286971299358184075183401346169038519884591407291410888801189180168630233174931803169108267769829253158840852618612383456308654045653285533276221965406692245182379709313634900452465653934541060196813492235652298796215255894848293862607207597753667233313843940770112108042860158673427826702582532302210925188530481581375889130826464880326121120985408249790120713467493744071988158668357369053866465273807108370352059211732862111954442027341740418418660656962432714063390567648219572361443338580011435596327897292181915349881903645177368568867341644441764059804165064616540790681225846852687153704152448442035877636864313136642323996160692783781700584948250623263247950199955905258378661478048086770969891752916317297708297286799146016757420631619056838907898277594434436671327786349571275127582808510741370994937334792263214054009653436975922168381781531829024559445058304944761877162044649018299250030791859246347312221094291084983733582719242162536550540571108758806945525628653500697759846793459384006434104844673435951553694094879639962896166622879190924965842003301531125480642543199455028860713784482226682693208097959166329557697759955177536204080212439373128241851501043103527367834313121364184553640255331737721384483556365315015499089867247874650819035731353645804733105063588883685859868679263701948134312763688158136631566368714380234052417380364285142431975215375116829936691854794702178821486147495293383410129580367100665675942903134501811848994522883846189199347287253715922669158701970942512930900652501300623685597817150193471012330291857042544617733513277387132812235833362318469515258655365638774394916311880734091945579711037124951400837520861631033928450729249625335516574071229107264095256648917722208769071435640282045160719175482906665512448124683961284872157369903595882464211140483145715451081312185354512211534760027543715718202136227751388084411211888694543896215110534849618082049409664480758096723425619304822870676238921261153091513688862578440117319886105150313111139409342691856745602397672790422190933329977350705790085384163127182765699456656119048927462722271760390759674851049870455586783239767510169240948037996033189317316335471870680872830024657775905196526727543396922823558549283402965836408979095669102233062266188704319184616071126403031383992528614277097124348963769451032348009433587455027411940843818713462597859202694325445441569000371252050794806786919935718428904238533606430813569534635868494013141958270105817707032379129164424789582688380510444696229218405643710701695939935540633842106163110806970320362855398643963471643304913105755925854993595104469728197853335257245855972842785801421475427011471544585734298183418182066823074733181907203013593583349533823744129881249807723387266639533208677748977617074910217170232921356080817881188303742852932330316740078956349581732579683749285905378915459917799051709762017522124128623706167815188173485113852746401259248691929305216320369892357253996430707746632858440969760468228730160128918948019909810408390810375078908265040073022853981835161195080223701307112102721872512968037558852690322818231349185288062020898268499951960368841638454038148365870418332668872614601457797758880590008138189985351931965422246486996059545817576060490672585269295077436442590055842726487172209474057574813559355798643501424781316514562435655806557035492448663912683840004313000788057475497560711586529814724114322022540698806730465129784501415238758778962611832521213223184360952528065404089522125061825649940072773408434593794130973071058596107305075568021994774651374600769555944810647998008475113641868858571596341520740001622834995289408237325767473172715330884195262361034640257966134912528072015404190669448987293539686771909618882633927773962496650571102745472069695586407971700782465661305548461464919132624003966102099153007503488094222804825746973927413369495383738610033998062760639898203812496963730191843177523049993915936847615002814273688134128669274750934251567597314645737159002682475742393651962601885788741063990692699799953700108868276045339520412348127869374698718441867475220456839931770225442871170849513108320993482663496603509518978135948283534564589184804676912150994261761378059659196524928357120400283884325518192980175000505334054742086027791375002372455128220224945540811328340553130685235247491742349314383652715793955393396417226110614680043647665988459696906714405021550517373623304062158166020915245906422050022128513217571307847157646907524050318827380463544848380860665863926718005168141330170373757359234373848941988780945630772234914020892533424812528459695311934385455298958834503014288267551576438569477063227440153361235104804475836631018919717625275504827287362100720411701230266647463178008174891397966906226340607488155096083959284886792182803878596355798048062713716356605317946947168674621582840377187227172036782942706673567460658571127060114682024133411038785823547070906915255232406174751095801222857378610423121520922443376250217320022884771389269417646391225677369635194704016029707333023615767920797254203587019579847724194558937496298407977653991665725161633569614002249677480702804744825894816112180341171401256511965328215741751278733997491703545927718110487900843221116767029173048930880586578356677598078649679669925757941963419831748216433865717844725576446595555227612618860343370124177152282987982442978414303454243257077744144154367920571305677044716355672238813161106336495524335404866864247807807947066702734450532037794877465598487833765193784656391615167819474567635986604332673113072062217709610875499585732760763816490787078458163624547140052037146265354169606248421187694903235881646741509883878459529437155840750226730659696753350772433145837917805754702350342737004306284264707818779844224263877150410901010803858156396328623490098913859307553807141416040552370803619714022426586443285844495409655403976889497792033970631125177972715240508452480077294982507919040127912734573060833703389960181445722898037376315591517756598543672838479234368514772836744542882549509373305125209896074989429643505455195655557720244742228544737247534491414489600170114707671252095001176131709336430358958274835755167880766214497666557998656623870488444103974244401842564571956593205845763337127712693271724993770055808827559707568223550353085699686916461991711851580325645261306455752367232706723593234018636991969156021481335351614986339637522691826771448458516234210485859177352513449165744988447528714139373450817006338492390112434297809611726686876417709555621289882761699786324531195039012385192981692562730978027429894076533590985053008141846588565375540864231900436793277266611873877188070677865346662255936411046896641369180310440116148832624713073945869890199770537967900714244318126436891016003979977004269779349773705177063164286814344403836788823514830002161649081103444980654100137472226611724126376523023662218604535987330073116335745933160550988070127196929464516194720502214950984584531713879235574763561623192616294827806622009620182716169110793947880575439378914039862551618395820051404753392044961396565935052752732848454082473987717166475827631327893740643536451801807812381076522451859958499379964584547659554944620101908898233449045302621656295783349837221157967290992404976779447447294346526131288244138594337513174521971765334291658732584116300689179155012579882794543228929875084988268811661790006476401976176207149237222970484867767442111670419114610571665879530953634446192527913694288775673855406402154162839181046750546103981001212805347059334805002624775677579429881418125354176479644239033716422722268086223620275481734302907779321037480085785272342061793927972457715946107887915200512013875501096471765829004556664312695491811443141485792142847759489964386698097831971983761779897363861424433144542048951094120947441045083442639918706181683577297685492514150604038408442513584515572485213670320409256855485664721287400860824999346625133527901057413336741968232747117700599820102578936484996699471390464193166106850906177408810793321027681462922065230151638433072822980249155749973134527914298180111634760950152017477633230422519061112996483581417177368856103000760579673402700074018803419815433180716060162987974343944070070591497184556115205545360353816764480338405808440103957346388668388503471760321773924831130032243896071498849690900450413312184530788228955927307026834434956682924043770867498906587467786479546330252794008759479748708078103609355983673511591472203992725341968051695492173576985784415939394068909297999362622338689484084105639353782271339196684767464861504255074369356876860914387582818980205241639482576060244818824678275643536805936403569936130819394680552379769158390646934831254299797803246044233573240563688445451751117894715963198516438428953735565602765110273908512915243930424223907530265175260129466118160235788353470783638075350229642403204271376559471125094584517394818829615758788967861113738134926273954609302599764938990629089460732652566536024483483542204909449228105933225180551244782000363858288756934446590564264915128807758483063767072972038751210614437225788235042284399760495234142534458272440263263880528633679014700448931439459117631645134879362786883856400861741267147912539153306496180245201885476155073648494071967605976891899376933908802804062463967733139007178358392497036611102343790964616818997163706662221612723273026103615997694419151623822408503240599978288634382253767962421127900097174630725325671174580169287626834710015808292393896067998428545599249448949447031847460844876459869503189001690766779227841516386737408000499049026823290952740262399704025229186823461692057313244314362734570956435423583206733762700005766410990474366230306841758208894705672008228885781007411013868820777842471790106773977698295232805501518497683980263889453050432838226220386235791527293393925926433349284461969730794634860388319913326288113269383125968227723894025964993495576671163701685866393779954174104581907052990375931381225262797449311872947055755230677679406858785179705706303431286769205326804376601157639358025974367042289115075173941025168087938200488151767213468375815419262728586794338465766673324326195642428714823885216553009711537830437473312807981592783706932330057889379512181537133276038721281084706096328806164714348904553646386636747498237628982323253569667065229640985274831054576639664838578691111434517088480996111951031748558326934551817530934926795267033543666003254227773392581263534043489651222020707879468895968537039208140511638422476751952922406725622487275603386960281648591766202779346939246823577190846286560927823522317473496081071896370307612637948376978051644622584078322950643154639082275207690453827646738050367649408309076884446507230986959613736300319232132653009864445497472512035494274637235060232894337364594851669973814879014308655166234669702126237656461235337491844974104091984409189179380753663805192415916968183594680404863003806904092734839916753100893609723038405744063446229773512296078840231015714905693084645567279207662282808483091397450620200167988760527313306694176738257528037571727822578576755920419763975492687409262067039097439642848036784264828435687261526302858177685978678577247554727688077921487173143806960256239027174241492148798651002653380440020536569514535195210449104283740898658999191468130454494334980840752859340322733244544902468113392512091179253228663884619716399210553807024654694896976151833267818113563833737429980566762941720783214358702943614895731946006445323039748172407611705355374119849478261544601050224401757382074653194740685056388984878864446549128579228618916818603389122004935497886273643376438883791881456143915410229225475298707668145306224782266322234136383154973648442191409481017584622770748122862159328265422765801493554493148321474932646630409365527847454260749341878401274793894180879120063357075793234662642608239161590334965406785104787358946672230610157819057949092727820986080875531605513049973175653082215245427205481681266929284340571955956218220921186316352453656212547322813902270597152134222170140358404969216268857994064439408712038995251128590700138650060767421548108400168280057951437766858978967387002505738705488149289516385579124432534781981009740356866836051056243112576989491213187098873899848362357791545556759161857250867085827070924044976614010302543033758429075546630958713707390672827776455117318322049433717812610497370590364996867022311034876761574413912780946608084303083995046674551003915812876256240166398357561704954167786715256482465937539684907677920679221532532835322326504820124503805463362468285284200934153811207112573232041807672878664509627831303259294961131136001322734665613521812432461543165854496760663699365770719801597722656073603137404156096105595844250691114715091859855291141243072220406322474140992460734005833113466393355977108820564295880883040651349563328575213448994584892219281225190820022416059423344446171017050483702525995562100621067376222461292159094851081648376114539281560729117006080384405642532495564209280795989110874475459726141420865123769633909425140590256822710192678098179810504112893469983612235141646835333223629274932760418707858205941833295171571408817757688703087007028055056755500284221038965759443462157237146921422649562818813251401804702920364887824311549391206255555623112548187005495233728052387852141019761418059296233875092175465517180775766025265099713223496490834764615178281198649074034138396044954377166978994473983975404442078908212103573346556221042521574080595613562758698588297969765659845014833655512652828860894657714839970246650401491577934909358978337235905321915290168922597712244045190322445630118196790120395009933347226181980546546786643694795001854029611934848539530514672944022964155270221836181402548556013170982648710003298389930572006530976149614812401202494848604032471539259193987471194384289610009757986854807025752302874485499182283332080362843258859946438031892634606032281290903844253466301844512738075746118597916986733240212018874699339464499468159639200136529439137784287701711017131817503927247545915266142585438105156050584684176302388761163319834427807260579134112874420052518834212342792516999194005693172306214124325120689911322328796231898116718992396110628141820712226018951551810092334783586514086620944322551588522167569414673737419835236466682683453834305972908634680415344256181594080419816892025888899309103648715165173777499473496292679257653495103344698515120814075820450481017926827384835248725784830849625309503583544412211493642870758104089473872757061260343103858822017499775070827005064278280812324611374502844322605653979071371548422744672589346134196401042598014554036164340491898452543221638529344090288740521510040224562592648782967238458205092637170160285098499507955989895871016338522788287989403544015230395242338527690078536196351494768309237621031785977301432810926620468008635976837820499623196328604474521268904613192922973763799094361829882375824996540378479458667170253043834028755888936775860535079834825148794189179974896109581902923930310449606744866432409006090943497478567533712163282322774298321044277116782776670306304673270244163070198158207961872124576387214651768688228448260541945918859958389994203200627239529716341666933716096336994275926020984768060217570879733242174103897425425812123651826522686028987650970208671491256144634889820704200474202996217205673325542799447193634909543371511017957813456385604677130702475195857545571743530031553911587193799488327045948770557453892069161483047604057893626768502589247683799086822607088656249120861686750809114646215702724902336733056301086895343686557175100762628418208420950399543276386600173315609694848305620185105828636301873189139168495761615042825645450018563481208002104602630496123778955661862767429998124578593302525317330074690772580746606766294120816534069771154074605555578174484627331889777170129186521672513652354391525375400800647509707881224536478048784926315646759639605605226632183503506613319267158540207257073190125362486902895073786667166918316619920925875063585453980063233062046982372049309146746472187516730817026185034151431050723855653317037021250896901893671982039645847117024397737957637651142637193753131798517336417070931268833668447120317500792552335878548549961270242808884722231889417015694715029795218995466749324314028514278634317165894818422709798950856170436133856025183696907575221505245504462256121986412001500956824254060095124961672248383542166641777658430591141421921581416128885504793851798288566272559557428207253351473798373587913385069330975801565483560191218706459838900089429004537593267909118572113230619343771909463341159622202296824223941275669118619982382101829083848904757079193324840684917980737751491953592395368203486428425908414188230425640207993054459525560619285827057698897258830748929055331038104486341974902549547984437753551437395039995525093487138380590011016358740417744986879583039422696810788814058493825871763494737375379077841104302243214073003448257948942304037489062949677645409735899258985094241506231243465237728378927942883710673140617071734536260368032290290065112038394451384812331177882247003484722227864117907412508071314831231466493307439964975645734270437605385082573263210085028300876018915601726361262996722992210550083402082456304591687371942885175279872190366833516243013754034583991911060990449971349163044267822564867497633287629825024934501602590051050452213662389418679380663750785718240521620478165523775066621016274154809875666736147726460558959703726934498631387720729439229188279317847486237532396741779571199753694921525509971241736200089455005826190063215124637553249662167827581238391139875735793617836913149654531601911476068637639449324561814739398840569126403087548893423595752868652867312243098058449675177753562259631014363892224049070654400759803702548341829937040241575368908037901396260261644185041246143340885093567319707810997495966284859803364868248571789989156401410634792333516553823421284529383803146006159571336264336983929175335594650802872394221364851151210575067269583659647164106892759852702260964071940094652360832838523574430113242370725720675896112485720683921903617891083685282419809794249863519159484296438876755913717872971267073381603026072693413842807951490002317584680212981093419660106919347235308158563215268656953632139555236821864008431060468755809170103675906237116056662120876959040618646476269578254874189967663403798413549275453961166230309621319102372031544285761978873157871655100979748052140743715982048316359575246507307237852382286398233626638557533189711779509318734012176922140764877495408532796537260684360069241821448438871472791564549478732656526573384873618552178718585916046654587466755761955009490799581497903826084813326452129410829247540258321442879493122943982446430763510314766127555274508994601472623515495200257920090963221051022464807725348366091891265441816548705857249771773906054299851191377195764377016276963416587587593175880652210241083501267977653893352003397092975699626390593782127881097728211730072398432357559462897079079185506993703757834593439839180732772149929149615505827528439544840836800347579200485033826651926552509549319568412217589179401284576587757015212218981160597965838440235332216310162075001940561014528059359992205161602972043725077799579715066475041853548469324247995789481075303535904929477894721612966879119832735446887740462236620093822319293520516273072973555012857276009075543474526586780001389707154429227813247814660796709728293778232137744389476052525014559739219077453534991483753084290868481481764788395939029806134242014664405692550532394981858229264673872257718955400522772333538319724284099538920778540540841815829755604098323266822157165747504483715891149252939213863115477599221924832369835156764844795057729045558738329837383137744966635960640360834439456962325302962699873820096875184160146579960733423836655634900782560081158133092376841133750980389978472653365691966441242949611516559432710844286420041732298512474229666412648553433425985793160700638264690539901588820104467852197813615285473944937792378479299214095211101553207883275562534918539319409510980480042638703777200163230774129840957455449413734389931393633990292008765698535865256021844408358304577109779663369911176698929770758047885278005636376750101724053612494288938220520946131636215199238180465968969683843730985469701796006398860541767248578410099222521969656987332389866757091626720382990881283192995260221557436767272127959953595151427746590224993287064759701240990948467525523263087723034197578204914597261998299816696798546931547687678452926783483993000924040312685236967445363205942888806887600130623884271148846882248065179256937926271872014725542691238805546142796255085321186741663771721787424762344728948494177720916145881667576539093979061167960653384637485469107839070329174504121424167392912273769074337447361041241759268879090409817905716444852259328714283336748784541380891966116252573633428825966348057871439427354156720812127252481917667780303264489593988403104681819278568204482052717470277734873878683997877036577931109429389117849225735924259424388739920817780393292568770433591103003867281485559792150534706632634729644667012609557405453540619290043079083725160477051528837231515142771036121819578180630286827259285182128745591861565310653663060652815690394579324430939354287031898237491667958791085353314638478304570017318423228639164747954474901294782879019942502561306926085961211957499229131550802226693770779684987724264388156505898341469068335483598171384540038080585568268980852640512895252678340370398159729243117096857443781392491698634861060718450612869165085959491349396614459050456633826606942410614703828795875809314223760970234428985046311386158103367043908471113157874359802891362228152170927229235504540458186313958847818447991233309182341171809108327279319786001116439682839427021684590872417392239482769379453538956859271200435656174475958422747702654081333367809277094280447869140831888299580329140964620908076103227956906084691962842089640936244734776195283922228282602831485939352373335837583736510669235941526118647859378434178225862500327626128146506382667270558494442821817056336463539578693395326647030458263228257981501610332298527218497999224009953741463717727791311434917477259929255253357816153196899645882375373963656201593443951312378594142033309183385736462951423590687612764156350466731506542589411785967557850513731278941556379316472451010773458484393427702144132865915198784984823707879658653605575815107975357217689279861708934329905375495683173948352060952685838433390270558376669533357404358056084331274175473187265441823948522593148154599029063917235426980474187154214383548720637385957357805842238512055030088947681489812640487652515740485381980586844808761527516883305639269168436450081024368102851270980481288121635520183305128705271610813494279059262494741203016214998277046823585415574817150296271433979331155317920063250720481631992253220669317647222091726453071715955088546481412601972470422437541447905787890776431127552596389721865736147834748506062471351139334724023712112542785268895599452901858475973611416536480412957808925615501869598608401934303145119333321737124093624460391511622495753720298807139975891273492476167012904262801858041760707637470670225223438519847872392600497265312254085244366368925135894079873107310745513562887130523514468632971618311172076386281742537321431786274097858944633952456785986313239525942381812632975003345793757866795148193217429841322644847783949056789133958083636280065595420467679864445091403286749729705148289120460514667526593760390849798988926907560371674162068813474922321276600210409233067279112377539960941249251285926956248150836151592643325273251977129045902012966369654120710336047874794701424734699462910468194142350645897891135395269384878808643842539713157470368763368865464598192318844101088552956581691004939255988585041982005213984750902140147354848785275170777358876411719781207751091681459208808159068297625212138226220121465253037134981739794700489230935147300023512158871954108459560659045560139215227055967924142536809824441475569578635461370279761658731745643373054509318165378062072478878537947595661406752610811027381622966736583448736955991607703771418644721319265035324164857201585321709944919322966136295078580079747374755793287247933567230749173453437960652492026410188922491032230355332949225837519450601743938431081993721002229203806012405209535197453089719236017473324895624585842183580487388592635287685346842792988618633897956579507669957550214159034626567523911307792590469250635332224564267696493187587411455602102523790046661178255281453039128866069050967924680811129906484843948347288732893532232471325228651755614766221557539732922741730763901036845125384445637019900295723633396325679220061996579038988760390223139325093696396357581559278735398795327366965161760589366150086419289383329587217976744928162216709962290554473321144789610787452059915795616712138683970713486687590614926670417035626253607005492113193177484491880326847606125066530755718839738198570234810697597955191153795536330166353941903606802467474870612184022139343615751600885632903226546159033582140781743028208767146918419711160384630157230828886595783787516864466469048182936555900338354186451168331162339120270154098791424093988294138350620844461191333887131871553131088038765128709450991130767403367745696938519783864425767837752187396878137189399778968110850695550788623018527774554917531683764972236013914032718846375282152620862299114488771158129869101691631954522360970545091281180613547904119081740678133662267598067780517234092673218156926129248943401206209757611930803344532603199734844413807195069790055551458669278738101332634900212516296542511412170874085768717209636356679060530628978851524328125892944392346802442394688180999207024901872463978800702046522230450944326829212974824435486573864408421982148516210149669620721183369983825593358738139118797146810628128582934601061372803441660359384161647592266855640287380645065553453444531699890825091493481633374524590386721110224940043138609784302696429519820516679273205284689019942481425662103127425538320361882316585492089274199873480211481006837338301726554157378495953566359312400310279611950896037707630909192212015177445875657390412645262248714568751174452529091048663618728374620222129288409404223708085938959498919405973690874454479489045312854023850157765807741816872559524081188143781231338105957325807765149280016812747549337482078923389975915771702247041136740342748551901522816942757551410588780762347339018029139817905329927982865706384394810107828372035934096609372201288939091063838666202329001943325505485111699387150850342775684246490239291455908185038772592393328174673845225526459482258857299390406445817519202203643283563018958281488410836090431216829637762111810032250258170188774346324896742737357665224726870489354792016795701660805959709636027901188275153404129783626504180499946312212257280523878566812162438247634904878301745925682380887970262890655778969127109802155454253098350059573002291041706857475689254974294921111721604507323314048037221463204773366125823552708712023649459983351261330566455930066996854243954164691084599023361368011529929519779897223118521312586804766859619082508883448064781891489302253614042747004836264188880228188364833536745469522586787404455274662913561646291565701595583478734989285433954593625223240072461293512408597716918710975249973341259084977856559404278296154515401034489565930175799922679692435537308523814330206473604728121794506113953579784328595475459415078249108176886112921711080471523543570568405166998729564614778908741096793373112077118606575707153570983771720346068497322640261520074552454360831234623375238322799451972054173808516615292806795946333646481299028099241768740658321516993387507170811341493985002010214065912970853016242414576911695053999977719697617650858678209188906126715015712666604679964384179263247683071040225231368549214768757376228511444763098052171209244422968318211155333135809966745748200651727429979876729879010911349357438804803044395054931506024841728653138452560314151925404753250541932112116897773279842375289260978918635987453077650211719024095390348781596286418836889303500061733802962423052488461615282990956778844235036117627071568621772898503662790700065241329211241914010314724720692229097596211635109220841960231992989970157772021102839478319174300460472389516208698592528918014218964059971628485380377096578330371897004123035141756729475325141649215477450123502485940014693590524864033242787952067411337561745830718885958417336410896211652869792260160652197484048293121208345300445230570020726223706406397827793251943784331042705694301352946870696115225481117702348245820636618171865816120927970755500820698910315622757222104300063857368958957525947821122888865851590315529505726749330041146738333707350456450877772219331168033818406029642214563433354923016909956701934886303671944071879384719526866922374504343412496224221653907466304294422977743884174368006617224070770669606996160473331145240833170125375827507831491124828091874114501384470503611355367239794689487743708455078322135120066527336749319837058508739006827686747229273364886074581578779140280220427010261413734955001790983323775962735234621481040353508512882703372062821357705433999830903392634363920461461628524534540388654892119018870461182863341049604702738084572068460866889958213368767268322499153780829201290478794274740000336553315260222241089967445621914424694742442289518559216771472043645424095367660708549455182601422766165115551425833885019923248090159838225861251195598628575779536767697904549441590516166443149178992590434172241115925561253798038509400068498230385225379837834986115908527928630989916261564055693818729625170163617788638631272993523736874856058935437036071860931068067422596829083522358066565120297695545326703870716276294037577316270442160938933749113910160155048171622995777065534645837717114537351216865883719152970953873807657019294848500722453974661274632506167875476370473506740685219261992441581700047352364073441259184926343653175257146989449875583689502766074633311573191292393439704228192072371515361444536335569068886893271616087273537150144955630515692988121048801518532791609612617847264253883495027830091836213926504511417050563819385890915848553817700032804621898356430330415148511970335604154294938331013151505419001236432158010734413720984401052678620646313328007665194666698557762547209882856073752635251121899090822041831508582536234929691944066025206904986119222625983290802026123186963215498185180215309976686380693143988723966293320730334556763043001066110567242875564469413274046551341771671660352784719205348087566657522185766841086932588734138073236697575008113902064010945722878860098200422950886206657404063791941474112997408599913980794547408175419143599275934491483735551512341158319152816794227149166233986296351094147270364246744906397342053992987662500146652581288828312209651227027357587753690618788900908772761500319856580313547729511516229330459081529961648158889024327569789177693588756279938554230334021599387156192194838593232262526005815357177051569738031008677448332134728706498226076059331992433493029962311845350896797068109092524555736635693866649360838576911727907635340616755862855310366494988908054229169426871936737729081030998461781011855343283464518847639200956875512050725365907570234988144185808353566435019973442196165359230623285116029847645491602052955989879167766118633509935489542014771340101761619857590773118513047336567288599020289203741229371613889849204665877588043406436620181856768854409882932868026871864370523152365862666845983484638248494937656656970825450181201247823509807613325245436646138220675069549288395666639558087108164962564940906462066401912511032382674031136790885655991433182775861293698447691299129723366209306056888889309117228595919197287946061379265118638390327187503293810457898072490664043361888600618023046372884002818955487999576734185484713655517391805483853830002730602098255973975648517566455345769427836558095651384265670552469382044463878549993525612867124141413796269983545491412404671846655385966983726345355146842518179675967861231482084534808533535775737876150438358078240112094611050707365992280585525484454563254460902018980395961744337794303107510235046379848288082401246204638634502341457040422718917101279202014290640125098385983200731559128261451244143090723155630568724351718592916118692739303020043287094928969554106016095997734915174104808345843368698603345421723994139717926608044207563969603002413904110854849911620398333795566262283034689153330413971751480373117512715654319178170821669139931320193285709963992859410443821327516312664996492970930199171178065904324891245996808239551960789429623186822307753077647651585728476814851481522742513977039257048555723507947957218565475702658669591863433887857921940380544291961990940222728405466518386376490033705808081750093209611594079008545009918171063746263330176159679528985347577415099879526844934878427263697649933112792693041899601179257039744366194669081619028059286203191049096245764066479514077911416705175916031560454862452935670558956814517576407876930084546634804881239316592394880341658454529409948814419405997657076411639057980759886785820693420117725926468080541258684682554876967802700685686667539389920245493871954838881274179428217523165079409778237449767269323846143210819947629523592389643067478828638401919718528930291173253520208887092095936224008669992914689476037335019614314473990785645044169316779849142454931352822440580545437205641471343437669663326002136107165462370817215116953013274952767787257067729817374002180313733128508900651519163172731551558273758076347495158973758465717218203077138391991612586496565891498913685875607572739464990935347324899301764978754654817295840582638294305872905998543177169430866087978754999531087796549370127428652226423929491364776742904989413635155971762607690228649155934146026570552724165462589781367380866069931245011067459856094441065996405063344163555005950798104867667750362072820971824445681659197612019122174698536737635846567690401215200201103385012297587557283315008578975900107821793710011619778527739371169119528821811558122646581903537675225184617698655426165845231865831065631422806856216658928854740657392572496853846708831571760899767669762501155191767128331447977540402918007592895987255976722101944504783292630089015344356450937100195050511756778353073855831314501076464765664680973764542162356503287603768201216366751386831118937452964575218858514716006230124917696327357639117305895577256584828965761021723316236591544634232823066089014397368716360891860554323256828208425394385313122667665227671781882452596849830617979623128062962077832174538077419317466160732749279125461190607795822712028886006453548820777595336440937932984351903408849534508144822802085278633571068582649501458368211401796639713534996351948062627989787236989935969644962927728270769461379234335480482486249803616317383945869500676693907737041845763050857260226064493865197031052928278446224151309155455185032245878473613954723128204772947971994731336711768991212766782932545749294141249031883505358304634071362194318254489086700817202196845878002712358364075576462910087667343314588303663168091339552707713300565497201331478702742230039444982058085347577683927199217904931724227441130738319095883132009783935986978920410046451718067130866703898262755490476166606405251339193045011751805417254392998616116291843090983930389951795957279511382035347420486002258556242846080197210597206301146099922264433931707224626981924807961955124813616511148106832963783652563766628918085433190376389813539937694633339521386935914488036268006190634825124056427193627602613413768187219011723132472760194008021943058228916952304924544154679311162019192146924806341109512526774996495053124207950779126270311648816485046361568879709513699054185556272106873617100325847210278938345759828265096435751941116178537599627985816806443059592497360342163198179218828049328479329686791643366499340067298737812314681318527257410446477868419164742671415610338115464147216754249178386706393396646313569010283691054502457211414183269449828276240493520594796273430587210732883126781973604892513372327012282233235835274986877771188452654112339687948578095869386926853050577127328816736226094170444773964596959984860475979661333273574599352250236177008660295616870786771900332853706443167029917108117148355801634596825278698118359051083620470041529501129871358889709336412738016001640671530077001247613288810177971986561603951703962281364909572623954154671489500022957073367598774895232529874491918891547026495304657260467874034350154281470922267241060855220793606197423293633480256646062313442506733204656756305636590482331411236978131650275704733273072047637096690818413810384705735969479870104276686080426574701349834035973173322624519815947502570235718427645801305113222362725170542615284500227499464529493112317999537282302882568859926173118818065244880081684820056577409901309319963351148647876286507405674683249495500688423617861488807444633845271144889651807752232699308710587053344037494798051813090505142272978831199611321234044228734625424970882926699381818600093668045248329516609694356923925803705659433770305796736666948388184160126261242523327567219753759480975944581480290453742992617518180255243325925895503006710078786427333312580728560019195851339577557938441691835710623414225715962569199001857726310483878792083079117333317241621879301828510475336858444914902783493205266505219848645290864978509401776409723446985935788580053877101190212599522968615766252308022675005388445149718834795470707618739814368176128230221241834291402737122214673852409195842999959541115986352876617818579711661110229769711934515767434456804660853380341570449405159720420223634227903760314839324764639383620488680282926855313167779842806398195384461637217369561153669398079703447457206790366446954929315653470064243382037967338073701568836374916032563343056515632885520890289221823100662443784540485594665649004091465256397559060865281312229160406738144054195024925495006024954121069682605103475707072464552774606793578753332873276325886006940347349731261734899849569787873711775037114727240074210580615858963734608533291453580331151734858373255538808969454051185495517655217871493037638368108654725261603442500626251320651093630846648740760404608993241626121571105335953695722785366536972613155267866346519541006710969262390900717615480725202884875847647907608421462593326751094992397799421603309964306808821352791178582631026109718362821607747817328258394030206796209770973784076589368776594393763339715939730140061625825713674193532680248733223956623157814460516672421533010976729783236601043319258419931319932976221716916849810870213841276634449286971516241373104040515757606574017766094549015980831955990936471854121130562101628084576966319283416710384121624113377069456801811626885296348551679760985557532042588750709406282092683333497245859279851271428304309805306025634871812638439073991905929497946840263071848067659426096897207757441155717704523182823526949593638152546822578810331801362345962311323963320766790999386282684376359562163256871757426025711202755298171208337854065321749879125237235565053318031583374259715372532955490181140176657200650053973640552937544472696497015325026354279488505109429216840489011299024499571772168009359395162977718306537520459597382054943374061605690998296230668907074035327564857847672602131938903403716890549574836463227915351637335675703073400813899334014980989895352664104447070398294268713695843001097438533367137267582332182737309392715936221654391649063265444039776580471723244398752577638821579208548734407489282492241597888038620720628894264364455432719428302929445506476102643501400057039743228697215838122929117275388303284990182764204636820987089730273393128218867126769218198031791708540675912432088719341541290141846960281943604520670852151697989885180693203930684947713105923259790706297352536527120171069540333339191728590017741434774807490493925318243858058577159206225539746229034304167085145398092396362987612411585219122215649095298232715460652488421348066079957012902709818223544887243956289284898641672100661968923803646924762426466413626047555974493963123032227650440530445792845671723551573255774963464760601103698587576828041161947480015858100996234309941091444015658530981814623708890916966957377221774738224500896820208025465255568077765901035395994004590204834785662799613333045202704646611284166106737644648223735418592342819739597459728747819374515167990862009730549527425880504614412073861065542490460160490818419441209958787500125620759956008477985414289995927420361333375686636588410926501339987399675810044734701217871296991266023126246703156973601469959083257272601750906369154486312674370116288663158058114813235146792524197954631464516147887519124882383055056166880185145110795550963826059803696273276062751141108591339784479783149095999720386697309618790931236977401109221878454739625518863912584656126051022192528357795373406578261260944592635999051781174189016866545790368729126423730538848235417125012899401629814668001397761580045161666659236593051284542455725785747461233109077344530932998582907318861920451296972914511452413757192541302966184281901417346561885996486397515980161710405190981118153214662717983057400191428664914994261477351366459242559933471786719375417366661440422175899645728900776335745373586779716466251128923857389343032066616721114849509430280449287589839335438999347746303199515893149508054018187838900823769848201368962545057431109316060516855121384966999919868084350954587537892416879925117912953641055865033089625809425628341088451420536576096114962055172740714989429961238967046077235056649437370439052904106013773398402885455448463065662513225063883140283882867478219588435603751870886348430939311408399693685931034334127120251086636187721241873919349170060545289529748084595190202950752310402172002139064180326759697935622617415247071003297938743527223541977426321729109920268586636031484137378803023852826298243356157258928341516017488018957670399080521808636877300677571556143994564416650503809867161109624732869243910596550722415287013416405642445905822332660444249772291703879274113831471659852815534350265542837692601599724586567959632800601046687379037332187049694348129785643985690948401931964386454472679065956633853966368141183423828851611635755750909691194585441615311561186490277655450462483621225703646378191147739398552404401353458521374982498893295852765998962253779145045123121621024542802543939372891375469881112010809315229031336549577983938136917118628348235882193397237519142969421979769833873697213948379063648402514322828301205600115153845791829032320509756339058633617726326354275847705674652087207310618853283660880343848276021203949806550913436640183833690387874904834063946428193039596102910596927469567811525120048179977040587198982829001881062848329717635356767246120804569098409636617280534628456399537646758396352706944589462306437093241409969549620912225326944969425471139369067348715738551334916157819021130028312122910302235018472198007135817591558879500683287269674798925323786234542570528728801898039621069186563621055218799305399522653918211371393635122958794728186919610187985227493987620030032680326743917048560694584893172231793894357394409785259725021667726154025099240895685949562527603590725583831948216382354624627279504184861177990137498242480792271137724981912634397660143009837747846368933446712901364928061369821482792361716707609794015813552447291222614954235254540332926445669145215012791205369591208110767249981760193282378704393037452774124735688252763635425463611367558554302984816242463303914886202035129995494288982116964759483859629994657041194310321303558902427318600362630852293410527945716200870641908938022453708713451708256222575728878533078905227080871716206599201966562198433089289354012388406556985967470319134076373259269078724434356122641869665231555658787616889236635900534555811924490804865391658763703282802329600870649974769059210623707239512001318156096757957964577197129430007205104819944714174928971298269266306591468359114545007501234386602043177645531306936463721457275325612030722221106811974093739920259801335726350610236936362640060560998568955303647345085257652099972453068419443212154399595960379225229179114087127479094137187286692354496549472419849740861161352396230756811758670743394881925771268389441042777118478283385283506682908009547474836936117135484909743404190773772320419476558871448615019528089350871094082650174214803525044922776598551542546153534038575812313955111600701127353844305468116717861716068084775076215775344514863861497752895899373375920108177881049249391897715920781391298964427999687852025972434475387881298090951361147653122031585882519093123981787798755407188977121973358043062142448435454160184706282555442480125315821722298505250736658354122343149205646687163109118207383947973657247756018244461229400243518398472811373036021467927205044530251811003498892544779221306582406891594707587637058382812630527394449276522172318826493306197424085162715271741696461241354147461573790298579440691140309262777367949656791374906395705331318677540600974466058865010022420297478014738873250756536719762494743513743482412028727001970116502538831402164872215429975259746977584107982609295685377311864854781170184909423927800665038844966905960833705548408128628579324501547110142872955775046066202959667788415951084293992270149676860837432587714620078800522606690876202535036441142184999670135938563375408637552455875672513577667917279787250125273954594664155584931209602802236760462224304678679669644591478815083960619102006751929716436876422098403699906272570030798361895599213108668064514292172051384741260895161422877414979216277420683443083955456307225145208738707656675483660701373410447631190585737878075224402396603832857191100633963123804110371111785216068840914099480893348112219325615539607967635678989451053190380028895812385731666991218523358068273120495041456496071661602310046139863605223522515404054288606203230015058279549239941322262959679939884952374427047453337328850871436401067619351882264718310140570995905232546207472069473004823770523502925886851513412374857425648757125901277122724454872245842317538759192699664526956935823755342476146188076719011970304792469069661093774905987412591454905480208836592300144165212412550966154276512117067683973602723046312035078462755049908852229205079841468484222921639626785270802623602260690530800667372022608213701375602472251414795846872504256777377206618374678740642974166748385580987152356990452575113323366054771345483567301938263377929081651746365448347217591755601188029556809522996583857286821400451374239107738282589269331666488385876031999138019656687474385520771506882780881724100368079363495679770737420075472454930771451539830882234701566497063453246545592624420168406418911786052792811649255730711143013885518188726105355169955127955150832987824458399729883559496068790377750203702836755012458029279275582633337244467944151678136186445580069586149850417784753898486125832438031164545153805482755987363072071584357623594713803879990593041534402862492440002210894870371898493231729683442436774848766843606216528847970403911206105377727067442664318580641222288849853467621513766562837760462391352020888023063303745400828620726878434889395556535517509988633374575107764696103202218551115022736250870035298469146087358484191177129733950773277751550214864970116559134271438045310204074366356855124268715486876704311133532474402064794403363382146183023017827990463378537394713035054690039877748201090352433849803924250917144059116393551951224383718995231852120104642860667291370329931669870615590112362614130333557603340324096711731446200953692656910960110919079666519999510121395158118421839270108517256859099545297216074728107007606512646873255693284462996614202782976454110584268193262187466968524003600502210514468027327818400249261782273188989024502431516261526281947476853530669305361306910613911216777567578054958887836326871459452129477182629689700429625530681472388587577910691345459528245786430577672004754397888258228482581742511204178235909066301575488520397682398029645735423881049391918102349250361798847706861687852706006422546984025219874820750702226637200807429737263104079996980256925871179810441077938074400820807353401736982218107252562575254153177211361864942381768359745079406739058372893199353576724547649284690758363788334529444549224583240510224000129506323709671525310216577240763039370727369757306129546107316631565046668548013195950695331668444758360948497176694095973594485597919834943916854474547426860763153255332884199349970986605966176440084989429855041444746509554502434428734224990431130921925603690219867330876277643383609985412931114318149774363286637495785359323836935637496617773387080000885246541609011650813956695468440486518048156318009933916403106885222688862473258285044235477916019055809662667182843811072012993421551149156361447186730398820666388607469027503092056310406877332565169458980545502726602576923871121282388490975721967769328547072732269049388520138172194072791584366970306204020382716840281784757501994012913291413959270282167219010649668273349469274724181622996998270680411388188038453559258089332836116122671714669343036162127209323529147347203812583845951028729424022426212324838203482277805947781608332970422468906932454425221539409190247207573092155217512582194539186663155485695033878464885947674209954696025266301966463123467914074651210785892295213609004741155855486184342925543075164750761415057372888578579286765535163811522294799499435352949224262818211152376546328659388525788955923382438486818806888667383583774517870924490015104626709240298754735917274242436293545910639499230200813529541441425939843945136449135012812139468250837392219283007567849568403710356609489718969898240691719081142729939569538772635986749510721306419420982884377105691733703682695152300488579037219366700885374326095336563527712179311233376798061164546641631794938235831381540786602817461216584994785277167745576122335037325070171808708275301332754425375979932652155444439917367733020935065154834503286231513702715875451357628116643185279738374123481341604988006679200176075284196774690109145973507559265947858393158161196460300568284828950970790696398107348765437876942703570718361264540703689590109236097304395626267239150775285285250591260553332186398124727380361108134021051918450859508342139691808692059539161286984682566027976217786393417734504626405286074058857356339192820875536339514313216881876810613231467953236890715470682974393365880009178047788990108934479214833916695635752560340980747668023720201178031931993090867679212161587673524815622241528800629851384236207655759632479079113001692651020553627349346700570530677864774792936254415231720161611933099485897880164807248822561775939901085426316639982588508248789236004233444605951250784897952184359464494402726055595202396273640139913144270679386138339821949101091414521747617030347138528573397883888554904765064756474210472927466941367670481467612714234128890214473501444672003017670636831324372279536269456021672204606390281993315456953092482571293261594915122837941958535590497978001322601254268425839247222817684512541779710131581182859371749174130320233871601303274343623314783200791708736667708561381222020683780995495857503898216088186860073519540126055791548148436210549055440648141267395908228367698109234234394011405060907370438764115769951725947640571121046585046241763269988040065440216038097128878574846457874441503566397945019456317530811063133168941548727394210617915672099831299049898526080302603877821904652473257274460909108255196847699770160376438241696888345969405548890849376401305030027617224870114645629231370233449075815137231810524401348450438981823714208723496025063682904759156087050121091186289448909044957142543626790906876937297166255174455061673854129849163783072646947273232309256299892263290184421213225724012535255035797879338584151231853221187736874329210689502565841419146408384132044485373710171853467031178689448240241483652802157624734116560497136654186182043314408551941251733858702046102481391999103524732693435501472972809686890948746224711080306970147718829639413083025213177970088049660168122654956630696237012303378176815678128550483640999470895341144740911325691788313511783715371162753122059133341171442874694879880065372445510838520787174518698177430184212487464902134491139682668773831332519561120558209325228901256562930226761469927203566517815025354287608837289586952927676353299492772059768798464572769716127246754628478844236849129284422588643975070864990238778229140708766529734361644267920185451307016227724038287868418570252995647439525878763717259822796110552848700089091180464627212845449132918029464510142268287602070369338284250108888032486859689406400971326649294133722947959070754839904718151764087587047816628928889497227560624280023938511400718135408390817648211178710192808002886459701358242842231170085146643223263619523269206830557921568833606499905824182268485670822810168207887566668848134137395386739142223980145494556488581930878003835322671517957373196743325047821620812551472110544077537459389175395815643024451056370010275282955526939591256575958776855708599294115521443185775184263942544092566486360012709762777983195233960159116394713203998951872858527300929212282172811659688709044380843276759255807806207719368865036348147846417100619894063606226430950795664130503139026879455201104546782722732165815147843675553180909139249650476782002962865363823056817657823289788071866545447399995611124746016697675874970712722390560819563522447326064585262388608700068454419549956044827335424596074132685001931250847148000403010182741977162348942943244913004836841162581879178313985382517630545631204129306914027542175246351470943263754395559002971715468781672506907662548608825881950197091117518479739996036927642771732698284513426108452098645523736483706076194010909981897763273111207683800792279249258263900151017238520749991574565556737485478417265124248321427808015032038851219979674212633763009951153686633809816367388119321339698521206061318744305770141981458503972368534721869957725718462070338829568224638249280574531440205934358704159153623563065892820449279140220249274865311436655888733746352096163455773232832253813915106546797652918309885936521762829650181916377049231979341960571541039187733093691340855724099833168078976832317737323212426132042533682896976122921131227821971060537679134085570235432990567022099451400652870162364772119032701189317266349511143121584443659387745262775488712856932838240318437992137725687072922866072668957349430837336666750868666353254751661957610882766616018670153438522150687835211187098388533548772969116909352593445630665306603346247371481359764426600858830919916031161794038610863977483360721361650913281242023759422598209658061388546918357894724868376661551956834269758633155910854241414462007107932646780233991051978406341674858121403555900326083033866424430416176287440702562534084179267424308321640765165470147548382981584393492656749507609382034067227315766587138739160076046475596471354029521705382223830540867075155053585778065762869162541601523729342192168849867426980573083882804549897647211381227205778336619501765852356156515532268339186052290874910315327601674305911977134817286629501936608918668895298880786019650145076054520417296445320986337865689541007076853689785504383470839095682219944244053525399402609665621561881639927998410736821630881584560924271044383812239213460578699034976004281139452151703325213239035387225064699880612767725569248495458696425612312401263312170510583667087374820597364110547748739341320025553337492308094530898061179684859019840869488687854044584593846704085645484729558357180172934662491593683564819926365149365973825607623450451679542863880103479986089353961591483264427449923205203092331837209200086091941112137896670530058984346857901342844276447301761654645531242734274975647373113293978165444349864498155147906461745763353765362342535081808878722900515782741679422137388586913299199697542979333303246705583523574553560484703140233657602404838238850604991302782865185367102212579691105788698640725670913671147527860118638155833032169466610764486298844306023875876362822518310607605343932597368972024644944815733377056140023202713563021717642786819138286965086640058092608976214021284258749258809876533046452332920085660031882941832934964436979966840286889391940933139478150037340931743661046426646823817905211189741271247199270653857902152370817806031919897426432784523667254605636934085047335784905443989267719114803695613710011658519696710083230528113280029330701929203819847305643342417234149204972722200067934336258046604562216231385770289132243506613014353350692924535431637679293943533946324035778788573011202193347450512392751321725455978051748091654324067979130220555103436391455911289675055842612776106344720411748427025839819109819331239929966225285149015792655474217441628575091659872934974291046877317512363392899950165425969214223387601158037305727667282640051913785465773043490268484291982366527406400553438589830388705011280244231157529443536665964375940107125763358912845804879440898492956009049985981675454107599710935776977405754348296421881093518271093719183604889186716409993578194319865445039241480456821533809868459052931103177274240830290588525527244966900195666306956210107746512592473612444709630289592005730123939010908335752759222523145533412352704253859766846155110846045249251290773803294426566379754764954161669356394025641035351043353647997079143647202245945634191561229589445507577505987382658485258888952503138431790942470936263962177399817697649874891650745416839181058421120812862805023167709916572099814384446240808232647417431942097403503174857568373454412966910669589197228534509439515158380103327445033652274869147259753626769408205746411002513421074641400272535307562316288681321774257604326807318979358084529205148464635332919831742325722433120182803589391108718477518105446195535033552497794457141909716239280140641584389448954821514697130007550866545062020518709930039749965832589269050051464263696728032984471831942283460179061006418157113545947473976189225159743194804854684891909926389186269763312778237163122289985459563852873519215551732766728776800969343975020000413889979287757631228546440094069598411760099140351021698333631934784469182498798140870509545951981214490599890917794191170780659747507133751439033065126973718989353407684364754628035497874831821175326878721192618341489130798206178674750252025265291229974175983517497100914622076094638160387988018892225529174271673201657858762052084199462786372160970507699434699832716172064675449508942886959181528207957431660431456503098251793164844318525038029850387240794492997094497422208229308697144313257492662204362010602370274978981452907638536281245946948683227582201422729168385410998167666020736042115141145673501866758134212561351832741009241218569013486366713553756612037453776582290144886416683760943019567276424799600456611653582354940092309154872364792538127851265631575376914848929606218265138037106160163108725332179693115077237489801522442774887284675993505896395394922079073948093313569645921951013174771313877879678029375643704134388486845844005057014374915668462397660972394632840058829349577811385859416136985717527892053048655264911723435282706393140767767286502549748637085678979666902505744271473018503838407290376273841938501082170563173685110357089497246582149213934443301232982680029348743550266861205183723974960661224954093794754766542286695781141348379230552241525634281313456047528853431732186232348078162153274834450766605173225499322267694646045224984970567990459766071895194280404948601553028326402551534055591704472904153569117992781108279283945504549383984920038469470144207492035250463886565499319117127595079899332981008591232070330941183740660275937224189317861189142043390159670916744328544812832559742714146239126030771095555455710356829708459360786604287466590384372965529931941233744377042451190230120315685152621265079281101980308002316718149878692017862915100199885520253145042974213307111375544623930266667628684442916632986389516706755457711443492819423788993548062756716849627869167683635857933605551244827035900370016364586153433506725581717637451697535248922283541949814665533408853435357793685829400526470151577143573154901895453875697802923688657351789870484094632591728834759684055613512604664341735897829328181110210053409423090776720173514010536313179928084968891193430081378888736689468362865847763446703871726020288056408403734392874815952888371181199740026391667466873966468575863832368586644062589048242404839995667114281734402143073285942273555730238988517416783089209943418895485918234827130480693585014894508664320536231587376206438789600317838906706189993108407264159713606085943068639584551437131127507854891852002376227033159269536484244964263268787645491011166146899514081985302307405443230525506982323870135463778872342332842720631488986457774224420022722909387612345444600304100871080203825412023445165158268259442279472015330533253369310087521500102632031428295191207901483742914215870411213922276432501889958353029125874976581600542539376606227649306519495190531411523283190069582614325691281639124728510777934080072864203669666296934356760479059718980205288969460701110854279198529722583615020486692435886940390210565413581827997162882163115295316063104811405340166462904475858850926484443764917769015528239458556847631244379096481363191274382441578140394096451613963323691526751307032699861057132488847754471535978332259399795778555498490194830351070782845147255625221836357672630129052233271796405064378942071621689732447658753589005208406209561696170044877554503057468799196284056130821237912926660081391830197036866547947895464182365127874976800634956438305339918788698899065978618176097888674324416489146626825110976715969782495000063728451384291088489990419834559459502304526554760458871909811019836146278503643568215244567335006038832431360634958247412453991224353818195112130632857648037897092628962791290789311842868487950164143579669366364211433246286518858260615656937991364017617956982404940452266042119414655934192420294466836779340698116810278320223552412682685158011076765431169878720952088383714489937184676280606107543368024652114663280217981002285569026995535991498071213424761069002445878618802827839262808655190691505202623447870186051050412041977123972887860337471090107623988613598037613970929072942726167287646153586638637521544669665516796346807813626714458213897041105544375429434672788198440507909200095044256466880004724463041433664387611996156215678071657421055697452602533574789619928436559271318557547378509531878027725589424202137220691267309721844990809729877684588989494310108987951543297058405629920108473124721970391217715469706277187255435254165778186813879692425316692324472025112013755442317112642339851337559330304484684949458749933295712648829450601239584746582653614889955125372415553375218749675557924644295548068112337425632095980495232675690680249035125696714068984881094206367399618573782114276805601119885616850223891889037656331866260411914009732588629822424071045083584798938013247844583363117604870683760162470080287138222682628165326805788324277344077607198325569151268502912620008750524395775948632415477398854104092703749533377492696748404817475972771296564029978338419256796650779565510585013852907899711317397397474688112484267824153825318698220773980225547081480570107905674594984618467042690288783177959634959561987103913567521404557432397732506744300505018039531625381004755165959611124927150828706779179465636635716364896232312751137997508526286997378205826029729692575270022341224800785263632813773030780164526647023372376340510330285842556144032576221643241713798567125822252086931696555959513436109552618529316972726765347761865917567574497406442260929291121591849051534698783144310992507504586581827371601219367671196264583736093837939043548647703193970784151714631335344516012893711690593583615008879927286412133353598193342231702684971355839310425965829704521611998197044095824483342544103742850865098354022887791755313333853101685952773349804105616727980472056165886284753685106907683311739506612091477532911415937337100721104594098818910554366257608423436534777817983460365113761614817218967154116244046578903229957403668232954521203074719792786557307470428829566229290290104620415812308251270644545723136533162994984120402372649918254143131541285728594741321008420521883013243572751001173796361668093092542002769616330986216403933025007282059304108923669794557163692918551643749666628260779732646765716580214979975701892665162574724709320312554096513811297349422638632853213041433967972653016001312416236510490427652044564702414728831405450562510611362616159290121130541536880033697342882037724878985423523494178089177250035037576950493599127332944876808477179536668096232775860049218174390092071472143359505318482516635826689416499617616640940282219266715248397555987143992764747498940674922249633354033148804229100942630085997370305276040019942575883855387846109135079664594124435165641798793198406924576523087488907586408003429486233026098525461449001898642895125297681031111660164995791902791257065089168924987001042237117380607072778118436579870029164499909533529675047010462637730886571999238130419654372422906373284815309649465811902475915396149242031144153239629424676211711965850822385759401131446458736185551656964339691980828942383309464165682431767968198229165825245139043064239044927599021580569657530301601916718739797030297967281636284683191435158150872211527564553197225667679184217830076722110762746038608499989389729755480318531065053075801379698026725320354017255191006126882206988708876296542552551225755561033180414001638664364355995723800663747858316658698970608447362952412158973636210567123921437462806648276783869028447015765665923310241348228657110887343950652549808453027475296749928405586079066166950434577295003890823357205234068197584822025408684038534509963765400076315420983971849688096333311953392745177348654066995853919837128844167535382936549870860475037042047574986488666838603402499593476090684186997499947950346630648496413484068107675033909769314377161074640093246997432996585031248537235646654553324315494746836664532057908098084413963361847082925715720325781687597051121394930341081240420660770462483909383237015016036152295075862063568358546479573522286328574420848119978364722573121063589950649368982481509943856240126391934786842826770681912090652567246857507556667149656910590569934478300401620781404332733326741392871943457636539051944536715996067312740547043562221295970695858121107356767799697065608385753595805090012080344330001108658741700640763626011726015570319166354190134683551801803456255062075744079940505746361841010498442680879084900275283037394645134272043400813967653424080183208494508089910021996278400529338621532127725176658491377634477456553582585057787145390234571681437643908539751865070225920737646403104140104755035310311512536623949628478737945707385801867395375446444394067637828051087921247164234967374621516284949304974870697454745791500828820610248908425459516869919369161402272780710460328009748763927341279146892491816883583335598605818601392094332907281528380519356244588065658611413112119849979936226945918637238605878601245928111228707647416777974294838656186506074152052295754251145467010544354223358734823238351153599087005467190389261645438057707739536377540590506326491181953541975033099635616061482675454278371523776203523049673194817240519284715232081541885049092910671855043988839168573667067294226766811279488112350066007945875424424407735325538489117098939540312927925738871996187495461230262897718227047770067444714821824051666123489337370460154869099874754416747308082511260416785017618404241807479915742868953457865092118459121537924938667209912040537095134889507135857015331379293402029243977224232711366774464470207302953318209994328321973136433462537266208945699311135850427705494904746014294453463411995049613569499017563543605650979979648225877121542540554865604595004117691936004281718386986812022610549720135127494475892018200242575981836045411465227580614989991033800287260134533801798789179116471274580000132812015878560749351395296003283974247385367937642516391888848275378707309269439316020226946721178148615871675036048800950250308744139702722082103070619485599057058944520541354014348573769974507334589524532276763947146780080162310012626657462891352583849119926449897347129029827150919992735084446036165947065748631276917517701006769231442105083500595929168441676626667971140556668454340362985141727228615576555128915125831384280131931802118804513059975508464202674640389335485513476309279783949476985657649129723643460706850349694550082987409533727882395589280818056567629775815500326696779362007883891733973631198257908695746254944762990795511941208072139874111760533171197527306093042009539689994350127741532297876148930220401902046790972867395943300565884649757383427698493394027310837721515982485444605624385563478001853057831964601784660116184452014510641742156350165361593137805332416519324638282306395463330493983924215656275682625504491994675806949814204414571030213456351702955479522779311639647951055816089272196458187100326834165926656887934091064620888844634969769047556897683533228858388479476732430057289084628089912003416970743923676551633883766080060560579391444400682309814451500120547029340055993923647332655196762979431024099268775427853089743679566966979253606642049856094563662672660449983530413628282895537581776990738564207150059474637451387873925531315796633746745872310376362486946991917427791536475130850059774351556863316058283162956329040627498666771481454080255137827597871206001265834819409093228544842939268344105519756603591960572770461628953998738024630857068035228432543437922736827385802267930452230051706337328296862800896757501152620650901562780609044230823034552256094971529658043791448009940083940201720928109782309189849230545815019604044099322785751483723364243913043298673788565755857304347691525506438609461270983100920208900427420321821062314699503479057464523452354788065312761693816072059270834993036081828468725845058564158072813608346605057203264878752580204119208508751901716970568535225489565282183986399527847241922907033302874530876589532242414510094897661240359770454244463890866571790848144184585352215665011655826777967012981285081313993852974472603238463311528731677390750356328329559142564526008830152749845474379562660711008650687678875701354055126947596626694913868794663008666648717137928855357629911439575243181364355094870789286075924447031087297332968517102497046095721236283339511542627777670260491870185105922404186971996732375075426733921840751324711870867883278967390830642086698401080740667058093576317863085398843995618034102700720239755688387195092282174966697098895013546211826689852441298704706303013514413239209964071178962053130131534764949395027009229401591089706582512687605684885517523963221093761294475028678023005111355013732055919865443788472994311225955851378879127034768334455541037625415618434486487762329422013266648984238070680346194283643992929900556159064060504253398010035780297515908722309901663046545670472070456814388072345930469997125368974181953691531393170290177322269231954386597135133215210086345732500383045874455820996085107957405561003975704073225781887731512604111074744241030994965405174651163236742338962719304043578627024651256309432527480272774120741056857672163768326945021277453391334223126065035861583431761316582266649153925286693746375686663330171397516764629335193648349158696701805260096746498929360409459362291275078736690591993195105290617332196000144939426391723702455347618028855374360390923886630413031829768512226117363822686749435922545727184148570331040830674119693359778767885562566067256195381995412524684798391492354091118398989823830162700763779324001021019975212408468201245043657540257864072417424791569539900974252547884681886214334207746405807081705931459003234328610436535634265453866902018093994638394832827387349550561609749749885128208658924172218477673607513907447956633970369756115129039260007707921155188269108017169896639447279375319198784094714704704738903857387862177212615440209850629428144564922585480730677313570961917989428817317079794304912613394391176135414007937138028135638578691908531416076899558663449167084903364370383957563675742452700722837488326139214306437875707850842217318152058199588729383725559558156560020173947341418014176871463758057260223050395133961621336745833594809234195101326516068063372883636025576004606687858950334054173431976249340693844319468350269136395051257161720465613580229496369280562057515308977915858756500373426739377451411933255834044268641103563379803845206074763761778186181873395480938216966669357060425612054391618599955929149385792630626126425301620956634319936867663290289319572216935971118371807192672218903033605310235090575771960298021864352087569729724327984235303207508608302038241558673816650993688512203426297133787867968625726988686348895516349242835195159994541519033516942708400617465915373536800958180723237221741449309099349065906861268041891564695080001890083135589048927160866119074701249945466749453790040769996635871189370641830245167156261318855228753960419670286019292050592320801028054037255537195426352065943237829531726772218654813664487173704650316739095466182798121517090040048990212717940382443615665390992295410813365407742254839305380217822956636417464313595702348293362903864634296515781423536630077399529969660788782440616059043568564238160361522292685592602530433312597939248550216409617994595344793613739611192815088485359489542081712555972025415440476855599398841509600722036920926837449547134162655448690430561827327882192893267399747750356728931888808889351341231563399129385830435823498615740075422609141404497353368016559115400985909361387895540921415405361609547759856399663669654555359834751477096833313708256725563134160146811425799380361379432805141925465363736477416485028026060075215360169446591109595020325754186639009083461681116289587999820641219502311797049458499812946783054757047384649376478771239408766925858319084565398163786837965320530146320130986958899277681742657752914974515808008737232019210517373497371476420885033868940638145994600166421389050377075054780993261033723599020009941889169956220335593719398428183867697814922260224078121073889466291024328896647559311881332607142536572660158244480456151712016822267409086924093368363164504549652441136051900453385959918815084617090454497345564394701767380317088497798054508420998630530703010777552191534955375000664693566041001650653636269955549499202852122814318535296156924958784645739343131592087698650670724457825768765064934598784161530586439121832498748698250661439693305894127558731275342914315230638230644875631614363665232797953303551998453909099945027466362107708572698555335914631247763329654516737211507096837689019734508468618678482122883288900057582689089582899999999517485863398276331089803785185885058518383006074076347675057741459075101876992242872798643703990954131453444705850392246861400109011639757783993953111326142275191885899249837209389973711716483297139716236695560726229866278079850173676936812793085522234900050932709242170757730822564307197814848366641583657820476660944806757235994846778255918066871855102293009584963836431135636107428635937557240308044254614005633703600250581452086573176784861930862838801338262697390652886546811711880149091611661035861126681163972813708239473474584438246405140600743565706518100662078520421280677785042907637143646460143337656096999293834071671228807061949996242879424036415563858245608876914209454266281514726430538791604632465134134244341691814873963742006022447645119046837370165741980546862539338148597580677712015383846900048024172617468325519609276179575460815360634499176709079959625211008171686534952956058240965626523892962912995491718334638220798940525217043937432889377387555144886035332638574088631720760188438877932662417389130260656018644119763620504556037101898831542544951072627314482126181946341915752227510342110458785275370821548190286706362421021812147796149549474710858634839220675516978050776642214478302315542066488322353328734931462886216442332129312047763979186615641087662080674520993986736826855106069792146508263014498055861611847236933710907948822673320931607411192135290712794853297429306722337482505525295455029863055103755580438287707591259494661030218770539422475915538324960572784740599656277439875028111669995755513178170772680208689634422971958309099966273223297152274086628181817309771458404827242951457789934945546925359565924917978540628964344161110231368249243634115662082119227604157419605969967219775014069544601651218770728972180312667288488695944407516178918726469300625145538725579344345983885507084299968645763515100947645924515624531241903983732945992656327036318478590509433930634479691913441458220536959992978404397098951519973180231270436449758824468564977274352318498863594904137543797643249371289767365525854616194986503644565243184708484295139719650328734160532938999053177303671570891871482326773834543370763675648639549867880776437217443936752088309235118300031356617513357439922712841652526958117712243375314269979462432076106072502988342736999810407715842230980504644751693219183524477034257242614107215481755348557523849945973439270697670034632093630352124340126452238703279142280576114509881188967049008121320403005051527453907615670615600982241700879949737815715184276725192173829262737122182523860041619128043663757823436386941208314730513388182133241667104359799244509443825404043927489849851530299858530090338134098723054516774452551745948593727823897432474946565351457847294703379786778823921837631421337044226540374023767183750090535224001260297785110982751276756396084986965978696939466171026723350437536133327203909224917456887868373843168148504384976585351777520151248335636232524239153541690341855343743826899611970469357224898910265973028783508975465049683604754794401066973076957346770288691291949481670277151051452775148974761494792923369734847410607155413896862271491503136243646749898768005669871771771309749279506611286390948680544902452433136534280342435614431373927875117428469994776246361517771812013456335406246368967750932692171281228870538909052670368084513391240795770662992503356034021024316682379141157524525827124011046629765826991819789042779101128855196741920721898596335612350699724351837254147832691756893432081216733212808072927486343492212526688584562211280802118940535912186076577552030012760420658837777198136910324282396107581350955487502237007478539005953141055240289705538183972124335862573002932847608398418667540701687287857145859284697754516541389154413001762449957035975098153775495998921010059941692401023734576954044732299696932072960175374929708019109021145318661735399887936899627038417275292713499386749970041063275313950247535625938381613280543038923403795901082848630793228621570981656622566600130384601595836656081446302205968055431222651044725122954675328435479008470372199113169200436869073911053940033529216890727720379373235878820088152691793614291248089895496310649897916896323102535137375788485536519409861948341676387665951114336062912477796940810874121860170161086279509702081901774001203583215524653908475913002220933581050847191810934147496214479934392217250220745056056916671184046314718830017782869652127272747432528571174270453119157775315347152302595853602435808090465017306549120019578288269087547546924956648067381908362165994882542897165741488884276334964216986953069869183142489215330116459388028439451813274498896323148254890455517432719250850845853415161319312558124827070602709421501641821363614846114356997856268221017407073559140661376639816732273437264394352779757008855405760144131506752272522818557495125968992111151916787381009345492780780712758826029366991385174318394739276173854585669208882441060355815858744340530906252276458210945490335651045229073143091980230541279041776292283057883416406466758147251539583244222084311142344619749969874701035244013125532542500348694726060271768122774188066636341477672600919566217916279699201306457809930607056609210616402650726932965403203669553883822854690718408724171857678081952254749384577170657018338964095570999943321074076765251745617526291416862883254627849848145844333553509982281276259211777116253677476009937380100643004121252278169928340568991618031948789393266099001511954128789226054254600331277233606526779773567985371119463638494426456402806711298361510411814757121797972556494042117638724945941410836949649919999531552744817364169645405289409351911646900690566141417396012827453479545041532275666641847668732222554789783154438580425844126330288770311957883726324620747804245426367726529853821650084677368312485482673328185765756363764903740225344594118281514949028056710545188602459409205899180736655434996583559377092543347695313041962367961376997201925417083875067648235103152490334762755863201339604701259573037397595619473450329985787066872705873664116954924084165196545297487605537309077204323519781840987873283287858227105127156502239407890850012391052665245054930915727281234555146123501814927961460643896609471382755204571081188198002409055250086884870502130066986522066960831499127848988781454870428219899569345517053052005114499220089370600048455005025869397718022306740044388207111887329035802513187487210789716534363918471309656004862832398141122715873058044945277321397130484577317226264792173633288278237239403543241123277135831961470211130693221885510288114468008412383843795354550833949004257279341445081549824078666065259117976418854418901508728615194900481507348505545619288241869901153298478385286642478617142472700268695182472643776962453430039338468094249014397096172165888124710565660276790612107805696749892813992662582795020989984286236442765918959085057609987182699974796981852075737510246431222214341109958194341074256480213092454889557277377411663367344860295749453620479716719295533089949395770519622917114785362434884580998753243161030741838978762131713306458896035182198391615699022048945661164865323969102216858341518490098913340407407636510597513857934135125382984354628603863251113835117430665913334040455976818987349600477966412769372521656486336197110223498675991997652474266999385733193809861599017351196773540988284504086359929719355042159714581196230367851525344878717403677456685254401516095613037571958690667516923508908490194401152195739832903590950415359175149691968872147146743068792811274770393337989138276942633681098758573514122429369549525521502460221425909353483241021110964402113550145238073694083949230430175304925585818259237156982751790524389286447274794627390529718789795711670107565284002382278866960980007147274496391525777058027671906728465788532479506814622155057755340960306263527787730488308641387027933816070370959003172069043634764742423172133730277598773754081228210165916984293335759552385761298771607707436226996406306381434005974100247433261943637517719896376172732463691783217593991180577781523990471393117637503813959773919744753393134233005479619295840251012446650206766153429489026713969342429572182977992879188213833729921304904324427981448168980908724074168011534700037934228252253290845237086610070872441309747991529704415249063285731813836387218413636706367306433970018225985670460659217748450621488663856538982642545072106494877728529784073936644691003001861900259435902631186520505614292463499988812179816079027849256660249091768301134662454675900312822790677786969446038655442059795369534635139976033472809485643820678120769365665858366442937231426750705834904582725010384834146794740179893216377106313791853575086046228595258291915250031184645194820361283103774902873806000815255790347152289684116407232356288885944244525639042838668948177056542495337600092981205452393822605023053322744452930790792810717193766655711473751389001938295881507020181520891209351467188510995077955410146226638431012067642890090712363517827995521007972129630950841564558109812230675550212874855070285410114185053311762043832822297321646027037210159704913875815925110810453563793200538550758432576708247596398278682784281681338264336916733504214512018646907580330293715673270083753353579274792692109424738437891962337331854918269207402222573874217493657656811964983440919014876289746598545387797485382493658538136364828986814532939241531759267645531276750075740094469983448471283877302562520317354203631430802535736563292901479571592602062537723366175193849724616358694431556490802127735742457129067881999883425383240605732546405538014870328738263275067875494296499022606893628247805265312745666804331667152746071626966975500067608834130427671034704184328662877883727445244043035698946803949859715539911655232040328250328405797222260959842659392358214577207967221756102245247933574573320454011895653885932720030593470761221815286014596736792183073732137144844425441079695351544054878840953503303215575264826761810619232362471883286083502909901682071878029786898509170981793302874600585582282755075462645898953805893348155907155159608926251178440318199498866699730773410882578810999104269901908097545031774162353365129278784573591087562117897428148471723232794079153488101239438544738300459688911205326776526843114564035552678787860720238535081533281350767032835631280469786579607586632662369597289198129554777198818536614334915403422271593917618015267975551985730686373999938767129469084937334524581181043449382921073479362872098694240298119638364171452321425895236730808175294273268918452592224872679754730950304243392152576869360719473939373475811558282063991842779396046382212757369495933997357633482322781391539410913306104064453374640891607051168626624787386833947825123420065674439955475142504032629158758903175202085879413617501216624453192717244692775998333468429266387626874875479471333080309159016235726626071225861746237169050096946218081908906434427573272134191020241937893938278263078055686972060209750973575399759246979023637332635021924047861101699528398510046948963737941919347217145624470125095017693587206435421590706235482862629675763067874620915547865239156691411689391362205200236200831746008630656176758521513964745667809498410094891163229034202905727307531441418202116164991061597387542751912150472562141510320549279319015226942206399911264013115921645896800220516929995761208948633452877895661538405803123919828570024502396304395779435013149139450623980195502601077927937218460979225830509470370128170363029685697709043644539794841032056924000535905767703913295284761117242437297247765838261891882302601796655764252852707352598715945950581330547620706359076646261456097000269360674676654490982349727367593587300476405738931006672176139285265663383747773504392845312918575305391395051593921663254384323095417735993995889996446694055489849821416053980658389284224375198089248444373579707770432519882459112541367187662385801477891671333495209263430870449502965133331449645306537956694760073158377349782779241157846186667105102294906533655478091858483332162715338327179301134308404790980976815519120357353308939791735689823854657972914088174711148157671539508125946358607155864150364840271790265447230580863996965588778277481080496678495054550689246990933244453064446111069770271969871285607559028428680395744868972698736855082561577938413229457926076433059287047332200585009371636898959574934595757843567481635842427064807291506511802257304051581166194786910517563901246674283673373758200125087197690125374174513098040521929445148036597490621545601103780980656224128650240005468866428423795718431355382770027307398219779051465972459448967485978189944682893199967125642830757132262815162703649809208829333948058541016681845981770298319567269566587462990968578202189652515371176018980814781196920514819054386909601876568824404190800491241953398480709872569873864093626395670742875838323200193223444673261945370783046466804017965850806602605971445255797229436272842195381560190998338126239228838725629153486079109293435008328310059359086424738000636253912151554639195144476891242434806276781019835451285096276951419484205147570765632653779950906812318691861374374388760141939443638792347207162531907422407899726460428070546211342016385817800412548679848743082984535946986112983592015143730806170235913213231958352250971057856818109000681349090880859668639323098190207450154384411703669512933128387389247296452162698693105460828491387672069046472255218195082794596222713785638132909738441388859162617871550949709499720324476607068741623359878622254248267539245019722789242442846638383161949875193834981068102430083790961363753754902484084547404730365163018263357346302876197234104256209028861822625615141016598818955823425554122164978511975229603588508809108601286289553447682175613552362125576102468452167889348145400261609009233034846786279655706353150942770468614391620806620252859856693183642266699467949462694879464202051974556341829469165244994168134954804711188195624934639756681114805825950860793578144966011668950514099360175971791230739918045519223487748758943485400614747713485985241381530673326912608828558820934848073083471101002924911137958497189059674015138644506226226535390750972537269669824927211427713343649492397111802524491758860708411864881381104052035399498131020852528207465706521404324865878195631984156639565262116787061085454085268190136919343330173494488028369345676410756596052842331761758799972997706419872317258599584235684132313961644456142198725324721645991355850140167322637761270977315678814633812928903974589416522601805786837241694185164369759839569306397066052124065490370815860675573979708538002896296568154810732811999824006492664753404285673920892381621745120728407263507937088638776439078044847628423021201572909877175135138078293749694284602800593546732827998091811230085297472118624713039639615012512740323650191401460790202643108935328013147690762668703286754072387872680473827629380520883300946017566316311288855837631645577938104868293651715056716587917205021059714769138641058347222183889408497044827882650324847438393447104398890161702062998439594764964007348926852826762682351516344691791919154286460526953835092692566435787219090753889140206057810806569191530142497805874487006544155346264213718404949539595579066507974861103622058067325190594184827643506527948590220934488847902202673118757316375058647294911215062511665317909078411694071854077866657680971748478664277954345219667056697475368142287407537157245969762498213209857307553847952269092534246040125860577795242776364203646904231495733712424694717208402496395301169724241299573786562720740160189259008108762395256090673472664702594155485214889045138629182617236646975508533506048851101224630678114808475420683975476673221985737624819219176141198404833244721249263282887864541581698709096511719802006637303532002162764513296545164143279290900095342321665652849711538363343600012138848537890428436668794422244240848506898405313043903592197277431525599814204096737102655812596479127322996392936050662693889707603080454672870309327298405025947668240601075578016850774741408491249077594604290367047466349704910391865801416540228360350606574883845094326337824325176860274592833877745084996302319908815268845996532661970786727704471809974423934979326481978880035468892552318477896628747258497194585392121161274769008979672882058784864814170767952651776960742739295280670612560457817631977108871540259390202957490510325490025202159309190574505349455727931560906505706402282607505378424990379823088906989901380651446242959151136342766065711627742366464188381091841173362503761265686718356672528291014382575370788248950608254667706295675059099660076422046659944218549679835311980067360760048110465857098266131967300540098922016449432407749132307823235540028972972334454596018927275012140298836415356252729394039010362751581505280507111587339247267078664427934379417261202502506287609069585407653280041552086097787597518377256933986393635761395728757181057349519047108730221183619100542447514848930669953126853719315552011156260206167370268899248145266071655318136670573400097839124696714010161972373644302520644795200242454883191241922905739524380879775122334762916041748671918732545198089634030689893475060113220143109891873728020853223580218893395970561599051803869503104654648344693130032828866529211640300873386951868556280400048775459003580593977209473391480018832506484353292315949619820243795179281611775677944233775655306861664666198387537695116789801282316926762451131699521113713593666733366360786238097179867649503750437443242884321238074701230633758562187999836220530508233422229200145605219072426518878266059075060036218081637110021690316932303858757578898268413781461486141852268783054771810868880897220350742515792568872174374099308446887165886162383824654476705455740469316145796972395509340201974523910103957987526862638469851205731449060108515204387940904784855296774950957801749665894928505684598104141723825905448181789954825127103768259359895976310948550592145709027004831120182603681015679592943387128462198650526649350010894140995188258841791275289750226780511119557769490607645997513087647809003321540411898444718923351641438051707599371042379444062271185251762938241138283681357541781384496459930524151155117497212485497740224808148711732037387091372529302466445288128042326960511639656239764433258967919544912814482077891859883280558785125634458923438534895520150612767785333234032244067429640669793830906133135295864616908073871400256014385438008163757715798308493567925680854153439002862581135440769483044937925654948146815763188796724154227419539156339075094249353635117563632517510724210496885436042086012367163783918215881818347597422367883257164308632203004466864469530314613971505317923659398892162616790373759282288451555257358306502983862524031346390088554446571108648344407801604158177092051785448585917639458018843330619199572195554711938245785332696803806402014571041396523305290240868065270400262595366421460040485542400721038317480324923892463984444389875703475145141070507115146630622420381158100476240935563622119092421648397752675474688822290077605434743695885677166488288393488209535828346607283898171335196057776634331380782963229321095463631984304368909810191109064618352793501158933561691617218436676590586926529162859116027798907803756070241431727206779549185201930502577542459920815137705003385253111004415786249428818344877680723321114653851195095341066671966642032983428882735218780421529276539411160029439443127856006954940825744590163461092548033732738750003904458021943935716666216731812541077291470540691859157017931225062352284783501866813376847180627295537278660547075764644418688528508988728436144063807916038387968766256011147281699708160668252101155077049146887473926621218661661193794475146910362437666373705162645772053653787499599760553814848498240957619256207898917607537218556498737516230964123188899228664766077288902729714684004994472940884950183614311885819761521781848794456690178488519280177384712940007633473393680385198124344194112552673340325171546494697476214007180081360320307632718731136098829716806153592665366152275644734704363998651257803913257890336224351272808654308010590968930020942267607289362563721018587297890354656637743057757670236924382918231666532223675345626111023949438886000554068802595894596316046609074399723685113316427300973733136949037348696191757619781985750917349842491321537995054017481507150497325447085577004265629536492798923837511987226412990005179242217730646538554651451744731910158314529614645581944336688351467648028479682921692861093722543230211784554649252807561335071388743439698349065614323896550904789031986736880462216577686559716984134882659862990676252936078907108302961004570747142643809942033019786890443521594848092022237001447086097418307510458156154712595893289188032546016971999005681091407546640814724861678326663483860513612066326303356162296367783749820564642281969556402688704561746230661984429424442397260432891902209233370027646459155282174577354687406545621274024223101827405685453606737031732796696600146757921033090427546977133968635467874524000067804164831467766170349637253415380120468482441720517900138899491739000238984589526948643687625147102724619247367095414696964774105751918261756904766019131445005673602039875084198797492209379991092789928375550977242225441394189296686902387581231661974993652705676597504244377268776401936620537813342924128560947610243857298825909805287921619283520614493444886818164644876801807090361615195461946632507642843110355699548526043341724958877881582575886918931024975473308573261006782892130718393300241351715987073010737610466499064806231478580195541569051841252449900546597287672105813397550204741190672655844836531778836562466038854778696270104301633443418557515383316572613362738145357469684738652074465140891533390268160987943996570044823922293051553293746726483732147702735954676834298410077237192627614084816820023561590573176010653615538149028946962849976637993548562318092221003371547366712350894575436285715021400388724869655131942930625767517252987192436655161784641606801854029185928753409815903830466944679206599324659387619823617299628962722574883668462476943465978372963147114699221960476210944998947177356695943393118481068758784334112081320532960150105853869350284304441611387732677746813629826506607736678848790369658637188904185617063899604483078821984095529003578395537461257697513204448557142628648284642805311244122875350948949440002577282487227021546096492124166515185962998219306297880924854476463990618034147469068601048517459037875572870674168335148199184502687531026218835540347470511082439158437807217285176116444209116013180452777639396409024501418975965227975620917388252690599689808069566860715377139155112271741964483420891105737862374544591066003853033890321857028699017914302020579260977175041539410805274001864656556134994835946377453484057826483839326567774548945891026925336126115847433583978491609861153738150348534190904718998252345770304963259843273074403094327727236467256820789301001070072509859536875139833098272646460742755897816356059661140060381306505032741694355037696396093479678914478716749879616563406065681292425496542179085385637390398086258644161150933331283475439114333135819140255857017891748374231218472852593911591682141871107501959715020898979456508278001673382613586462232223193416787681815968579296639581914497688912581375536347850001051599997330843844650839798652771189357892474092285293622795426892363817400180626035944081737979348617784293684877428369391079122290220802340520164844535402330057676700398855083899104735371859794495738588622385227819711335206020393042985932179116791873416656482930179114913056235834857187914935301277394214603835176246994164288158037566175256466674303098093190333854757403365344198213190597086646764416798167824915236630778896849064169679425017757578081012040771373613061855514079773726336600869276852444001236895828857576798827002993575088626599844267914826832042143937638269749645311891373527162859006574741798368356198895520098313314386362008407325787641879828187264532892283843835356654017894431376281051578907517927638788797850555960227825775207085230718484026766490035821668020639355524816797136663827888313335015767608413955527087221977411339653081113876928560703202934217330782238904165922854612503111986182693827539962371243985021416552481592381334098563638668844040750252957865255305954350600318015031654558309895912043092514443216828531827791146910493980074714970081032080709512317993783480754147987608107459205202365303974994365679834719665274204818796930809358156212895034235461295132160245152138286131785366307181501852560449540986263275258478057537394701457886639612398608681208562441657764345279639833790613532219895152763734130816228387471730588129505285313363647195136547571416258557370406865884417004242377975702085357891522532962776386558880681415776289106695055975569832456578822420535184688348544506450599438802847961305578168985015480226274440846180129579980727011242729568125418034388263611016184256560792318579208647273956651983579187635842764948506843119427459613816312143288655148774456035500627028891463567821500745478827509305278359483837406222847570335753143422614080227135040317124996046438200092210377115866657137027244472872656923211162161115053502147827042755590189091395208735936706251545833484670429391500178207769392776578840202018582455421237908717245225698447562510341048868096710684110683191354924183975398376530502308838190864713075419380448703314070880793910114236482083622098784754007760725320050858133773392642145996956517958683405185111795008351754641611604409954743982910220134614415877356830006628505901312943575413721121861129018145890368815382962899963972386161974310245360465156406949572810244108051595289042148008492579943511676605187694091748225519188903613707667667411889526217860545433579893839399726315761600038559065947771412753108483562636790138586848556029739531690093561352460047668048387182662562045340083167392950570862057919190473924893313441849830317261713515135556316143855238503531483741911628200864806971656734844880061242335097424912181721619669059238948050375203859374531888605146439342467306389379823866719130941201459791706032316209849070553355856431675933636503657761421980625513306157724820186932699575640237141405736107678765866950092541711284724419499224133100721858744287806377036430691221463079770154214697656491422640488763292665040437976254683292985988250913173617672595837535150565191751182115893193077345341101374986027907047049806581779426602624785421198523546263050625915915380167523310268650087821688573352383546869335823115152864994059928643791211748556691496175897581732137864624212538471302774225594782387322550316952283750863523760838923667311443888096583956648179094517095912555053678613613921287773285088243043416282777469430678576903299053911923416981408518718052706851651421507518687392649621964033676318921987022173800375503880924420951208985174825597808206340376076939741302022002568565241931734256464560588869678705646699648219557122663864918832894485580801182176340900137468442861563581703055598103800304831665958483042826495729576862462818537918656193305506643721525375325868389259106800088168451726487726177024511305710082452876299040254526176674151721659098046472175840188217939735518202454626715967339379363801650930642484950871734529120229423311331545724890062071597751333139659272436816893512317478896570238614117560256622678040125738941062072711828172458230359807934666848161600797437387489691633703576577904687277822023361156985118536081734370054402676599773222948255965710575522824699864934975494513485803455854363966714288783028362794921688256166752237113246169329075009206558185320376296815055716675866381330419162407883299804524900100210732966934555204396939945772522454348665116424832139678627588344381449834464616357467198892946160644029694370510544542581620561709491903023755231485088304093916801420416787654030714782246779236894890466836430266735620871185470049187902133519737676727268589140572302200784628775076921615307805244245499095296576396068050554108185736682944276438658277396379075310257049434055541547051679988728105814232044438598731441283134931394935300471437679448338804270712469123012105823125355088369881531210526818181175857519525501065662989411530964855058328831847050463260957198825454202763497643602516175031824401721459203563524598648010875560941616226177438536414006253132631250261195481846919014482889857324962689198334238728008290761885992216837299253499954872454116939241588652046495223030537883152026750295209334392477673086162739792686886194399006948075189702638260110673213034687358435418256862644587334231725744183533930008138907436549232631915886253037474040480164266960479403936620780088688626634119917314213610173965219460750807118196100975363526514633965557980972243738197848793772692062108362560266897182099032813729080043497730956311254765715434461991386702519627814230952636154587335391749977346842190985317128226583231453372724961218547960407519193250452612095216646021082031250865524621625432328553703922135215756450562139665319207606458689024615538335989307851875361583802716699208813752807985016784059932247656116032669731743636208860293382912344157551435316684535851708498076935319404582662396097765452880203100516732597390675735555161182632230567859699350871160457910514281565544533325858446879078324835685245027269004819310062285522169942925461318023974685435409935807526062009503338726420286450895912561052653869389460428241303486233347801020102866159593269392529028727149032288208654304668266548322374395173845960006494684661173625413175880805099520539344538798527436746974410147102675210466242658230797238077496871980671438096007991475124984498793095067809380341128353121292605296945174774027459572472594151106538890232873428640033514800507274240239949756552818367171887788718170142097353938363069087110391915831482080520444030389715648647172790546655800347878737384217433113818948674294736174776700798746153590633431611385689792950972826776197881771308429523332728612966648096222348232478802209661682879886848513013656475951027316525877705860120008233057069821831529213008704509880010605331010401832935268021007863579844126396645470634552856131535634904769985546095592139148367656672790199441540285751157076062294161601421651956462257378482134564159835144007119691828913477573497013766711305290388176385308495634434768878394114307738774524087210935808916386278227579635351164577653361352787288037883420259682359953438986868289445651144262516276806162525117191848426531072243307187203531106374290064051565691003119018397355700748409527293900095792689972296060166934996299314674704444283178434171351349244209550318693108692190430160235986416083221591343237072153617964106291802109238719013903982429279754444148652640992152918242655948727269858691539391688143143551281247186903530720313144768115873837920406501829631847584627461328754305164396130229790010284577141163493052960589455220632840791602572366112603245304892048260366905311354491131444843615202487309682847336060606557901400190803769215887103143615369836182133517450917455865983216118627551660464001662332515356503125100476815657331326604426772094357368210804399317382575932969215862500268623031391359402378528900477024369367627727536799144218655430906552872550816726974842961975725708410953729675296993342455658983850216136047455222853900160735461053732124570899321573518282168367278862045347500607822658075533748604832590631740150009218529983213270244859747221910377275826460768900296579692879495065617991277972287922964366811295345034091642861043317036451408055301002594372687948457002693004804197342283347414883035358932723092136037621845900367698327388119035973045422795858896391188060076651217160084314683371212386049878986230673260432547016426821323726407934024206492864555912891982417073164317582822744823853523572383117049855099521746170549687760043906699923529468747209388590143393421919322458368564068133634007761735514732128603268853033236360682300140593288943674307274300536784087020080666026852116161381766630780094529866147299504285766467076009804757847642571630042962433508631556168956694835507102634807775471116089153052252882912592773630564027351974916601532944644151682736747012881560929899159165147356186229539496209485670896110904904871496325669906184405860450729348781756114095146098624094165292175248417854592330325663508670203317874497100296148946749908119744306060251631594606549258277700939820898554382756616319215411940893689345256862530934125239075258235433291433033662024394471717526560616360535717186348860000008937986518592965433987228802473738699302778856924587586456051552059362093815546411107229800231131369544394992933345294433224568112740656171264838471792188505388290431850560969621131335948700702161972341889868452312291446108046260195340804826739304108158116842355696349475284760585437751215655714380586769969127735066305000622964207123776061116499371490562957229187870322643061674236452675154729991254801500705367805676432218129857082422336216365786930479558498531817105613105330042454653087504997589294982218890053201069932622134856519200493002772780655286425991693485398159504751977548430825924024990010225462904923292259759030478233933925913533324886430170630102852397189214137203714638994726937516494454061599230397531691813039376215194567069762081223738863773799173434116877589660302212721027987920654759692549767363167514376690692319392413239816684149388630416118007962586759422626044699843395518174736007579437212285866352690271383037800959756885580242392608756815857186900684224780835792343459913355217942847211682020985205887306269245528132595194685934510747193608360408584729168275042674535479510019810529731136307738444337998945368020208287921435223465173622325685969481111598521121604172294311055210949337131783794736730549675670521149045091792961486901015251932285193264579172904209328814399495767838627003140878515207512111201179692297326393128198928832247794400901852299152299277821768191901379744130194332954417138802734695320035306085950517357137975331022242338451185554814269179580169988950194548540236000966268441097740020952283031176179758693200067565662957424983762216851272154412439613201625980453062771342020005919300691164930433860370927174145832632756625654406653074455365473370054055476824481599009395615524096261186972242306907275286563946516215378243346883390872472135183085616242702280657295525412597192874640796320049294465284225224994393298004883771676082880510102589912806747411067216203929522246693779620504362419110839295058999057596391618445017163761772219923105449311796633219762353359970181642443556529065120009934805954547543687018275012169247457337655276444184716123569374266263912372458708426553430572573673366609269992311275424509980941499020158385548555764069270974394882607344774494507860485318007550622259073600169131797476463642128579163309924224562145999626188890252976349890869474630663364722204357590027349680916306417065332698667508177750275170995775397040133881626301143623996522173999691746497933852014189243509486117052099804117139177149500733613830987914915024549001518697224060247876009723645901544393893852862579595231644495986374507340737487334791610185385463506646211085471052133081297899644116322984901913193081826166077783892378858856610425359000202207796390254232356064163431009637676484394579483572104201050217173230419022337390184973529043982592731647257597462930551532527893937242277321475507690188676464282911475142252456081506015610496347005558613606119265711937718448554496925753999812761907556587097685169973438999713166350925625719197237239366092368263296951673460355233825692238074432838850540283785465016746746802240390723207624812762866520209139439014379970813089388632957191807587911908764869490181778352580060978093847242461179647728152100266730174149760219697692129131748352095153698950261081618765287753991567790327739267057395258996993666769711416698599987650332710171952246467528219977514593326834732302693977613197904506532439813985263765410978586283896493770874078935360555535200242574831233038713420297117388599022498291634792791596213137598713511846991479298372418840155630056047380443044168348229310811764982387234339509913169201288501857119989938476679004051039357199163799941219088623925849433985563728531273367786452953270926850605074749361282371863296052544918455171909431582286597124048962905715445649114779713395173411430981233298994631704458233769303008059292688876350570417303203365361454551681371191367985779535913273246586697651483885671181234562559249128209718913635184656744216000764617582322954676985660468557461440903057514528793416111775036894382647182658782529723412778874589849375854703989616524239645489051989495318408304016199540242287199449442492898511475430836736942787613875783639969833176859909106822635681915689341676904029787922753387624870781657063255865319637952262841578995386895241802950739207434625483260406947889764973147051453941496488930373800847747602674752278033654969912448060327777637516216013354325587592896285256650764023575142156519550769364834863761787909163619479290311447194243556797870793183309977182992934448737589275336495647767614032056628344383322161063052618984588774314050306050435879861050193140038521535944921329782877245496614064968482680481719428289570285053531817774010829075830357164014471119424885924929207080181613846579134506369850443051146713949250218356999175063446470747923095569783048075117291535207470793065562218388456119489965202953999385894164671493524702835498613412552335549086260821122215385600098572951784977248272927512317565704421474029775663956549241996630844254031329132994061124375076577102398319638105590089090913161957702615960761704143096066114176294518753822283479863403106109922276399193263872518276072959340692814480742810803266051012158341091619883804909160251739308642494584488614229360851807453244867413905560128650906025608390510286380510368665228990595100644151128583679312079626959743347938135055893979532409724893204790417751983478441752918277907328678587208335507025852338009493790071020305844652659991905809577202787232555816198076324426050811932964026521926790820886772175984453528738678364615844896780113247354385232269833448265169776041758027761954753036621079207395727198903747531230285008252968716425984229891283633677768862031688711050228924818295743479672314099163245846665181192653121645592460375087784374607237806825427555353908099014409857171809583208326962605825083600003370561969493940673663599802967712221328619645675529653608945241827565407125845454389585696937930098527246515451792593713862374858566182373566246448762619631156992777149558354837796841583099668478895192283128375368693852866348214445698289484701709984102393842348998329210956292098184034269791092295246814225853333863371241140265418020162291933641383358987481353815397865708245420335017136689628862479261588458683508906216555223090585494453800138560032987731974809472762481764214774363567683821028111513746882851648710209924027763858193268364175559466478754162333049571807703932805465559337787460527041461420171224386337738004353515572502016280936794586347300615514977230778642881171088452682815250913899695457908293948815714844600873219448352823559517701237702511516438426453278348648867337553180877482051092660234348348439477988108719869146076112862546772466349062480991736539291410712879221371744324502511098382008855772291575582502737943365466755621786773111476124217974997045496056270536666158972358230634808033693217709647552390490318259850576669743953485119927284880275583110639155580297829348211116267065000251194841782859877370246259120765424051716656024340164483649180763017621300730083923362116876999390899414534619468643438313846767880038134583337656837696666240019105165397379740386810640874968628778179987724440906833423416682743835247591875949100564656568808093877333299489843809966704789166553324399429378230314446700935066980534845812141371793400803584796270901361655122660852398971369669475909890586055980565809645304482348329921606517204176639538889379720602542027154634575916390614744077501971279061262516666911886773634679984931456051298880571910193739803994111295097163040615426930975538673225516253669382358646600214084212204966875117881261589606793299767874792509557818202524191501240458086991410749519318999428308095815694418801799152046173893257237993548119943512097598584961306123135500974995744281512659565218580480358115180050321280990381114504280295247456506475161348986499077959784570339234692747635349964343947402435605935545843508165247785993257483935535602700621307895643650060962986520859475809964337212695214989589602746737837216108988918529091768591344422232688890656330946507808513921494212424239876484596882492059843480289536016861650188246195010092958280396609547883058761814068042803980627956168275984985844433286706404894115547431930348552634457584896612366603659292228052391948943103373513157457142626580026662318011422582521877919358115032621700087356444253900297668350209848235372910683778304247922978977217504516047888675818981795630170468142049857502820849352767030370179327231876954382621733636420626376984467110072819936669008429692566365589744166256191021899835391567184350958870939044797446856994126721639653614200146796563489719468468514866697715644156625804262877229490491807240883665004828629876390821345351680751507866193193874206985881997933618019809938565185588038129287522478009792185911744461778702883357366563242407660111797932265762824522185398136788962116181381389238682443203934160375878150098603476096372996962635757689044583238594138036690347884951874212247279719833826708245112819977460943685411288119819811653002128734611461323937982693821655449951173591407746512429222634696181434099081926295377173748453802404124510320920617035144996271621776066019758171508780442702382364538114934062144427753599744813917550471469062000020347609489891052066693911173976201006917363220328517922114352025638988392098119925424157797544977822184861059804768234891261537815238589632060893335419694872254714584313260206130630479438870620083291581736894745698444622716646533601987691418168483365518263089542840843406050912790489699571692840663760043151645406695496129776682634442397371165280992335674456859038769677316027041419460463480224421749778242096426412264264732718297406121592315747866723697395529302757628392755935622119408957587892083462680864368181382095219051021316826429852218744805858912998738857807086400490381549385920972667676667515334436991794406078801846275927981313444051662655910339615958723535145936620560775773239615336945153749543941788024842517073792855108152345638161403190480464638539684159980092191063527063473035529221771003458898687082310963490880737557871442223276959306721024940557131420426682741651553393901379429931174144499454497092271119739247304914139251855912653603852135515468034703607019640961621869031355416191315220358287960200960975021740055688202488795163527360787555730328346687214454538900112578785896198125396224255528296423694061524503115899960641024650520823504282184795831127441016149721955372633038846914029255838559960597658520943109950168090091844718015107856937192861062182178669290508280984324676722913797068453781569795298454069505829071650623007357671262746018129000330170150179728973159331919365165451276972208172749079656633480876085776662355287505920923375911242425407465864818100548407447866876631490544300755349842292670114302284603302467597238326951600917986842312668587940502132041788373711279846370889898777048323938393952906919980398781080196643268133683196202972020840052533788468691593176675716910752862714768247839987486118632330919762895026922378821276016261234666498620646324041061509430613306894381702988768372820689033061228428755750348103944590711929520520412039431286613993619716950829851140571178909629551724383956767618613662768356515199344926745406438166572938671736080532002678507315031919446412295222225396134100041579488251108852599477644528839344733666147976364343054445780722162753447781060367503479347464675410711650565367975629249338490854892594558506132696531193949713731185366512201899156462822691180609258446743509249811741527395563025802371252974225574427252980139609615107441348873255901598223631697724324956736797641676607247575308454214271787444403855518820035139399401279421801574327613347421401479113672013906692685373583000882086898601844282317735736816845483716890830376967162998660779205517077231834162103912128735045523827165181659689187110820576914954403096321649138336166064222265326399274989688174203146641356461612753893846412894251473414124088914068891628140323587631056433047857117123554866746469141658008394927670698130093299789923162935576422416276385177165204294272378821155113273205948036681470827496203532375069336654262571881793079003215700266333160189471497702091001432130599537477224503942794454652196920741644695422515972252665969056846066420777265322548878259103627714243454751453416456029771287456606682335029514380760795295495789011686802599922191779553447589784337551680400619792698680848092761805640863843541075572161356700149676452256573689691278433290573770482711835314469360123646997063391180604388793005197440232757265447907528078320407023862552022579743699959196267725489892616496600502826616131492192075763425095187014388379855738861612946441906584961204617934428728470125574198658102923264077534825264910541355479634594938109774370743990627547777651487120580359756622339065008185063558635937183435031361837627248673759628258075033230878488248490675873061735524687560164013006165386561709128238235910382093417920880846080613364861940630736545171737289674679098234153750264708991423681968428551042544376717863775842176077024172652185568796666201414412338405066564887562487175400718759432274593395965023063550965184932509954777972714524920340053446214379253292508133189081367262782764219014262847437707041592445873371750518484003406455105890722503067510686765695385615062898691300833486067516471504398466803978220824964896877413313946690168722589170465347585347178893365943149142996549197246559356848328632874006483076620433533304423532122545730524393750491502206397479186169425041183215655080048654898096576538060041765883044645173877636007359069922720624096129763797395587158378503868017671073143504930688359569244443175066877955514916965013825740410136026686466694758192540922146474100234849959511064048736446897286365871509960320130002263665240841544343745749590790282373872066560974585802772735342318291665126582426760945155967386439698561666402485779604756984501457376210127217483257506557470508378419055418897301657958725222998074993325912953907767466495865457642922216745934211966806285682457837696558705373615926174332134786393770117620812363181345609587266526787271401334778082114450779647793331619586910833078698046119606523664424126921804416478036547333971795366682347586580090318933102271965891374375105628903593730514085951555201530983616065355770471849628888401751319019202511729660918637058094168393729502839315361345455685193164794519953565879182032092412310137410269961980402739871143569202889390755020429811252055646058559469621687230851054195899231432571190158193240781759281500030070271204367490988009398047123093998503405956050877505388672556396927924831845451546986230297710426514596828929119574563357891399281239414499314619784045538798128412559747787845009034008380143529217813261465187398650323575401036160304041543102762155026142259228228095064160983828571874332784234947371563549625521331182749725504152519208466748689648686779625983044313242044892742207997583649772645831713970024433707866259457175287337029423706905332843830660191373926040856505614913538064164844898208745945957030410825882427118282088748561983552760711509610276410198999047123743760150365186429725324101595061558250900398494049976750922673827960698319429895456201385427037961345659053912723121650158375146614946128213741869911917688767377984540274533334596132539994115495343195147882808070464748750724874962296319920414816075567576244901236356418323553913987615098709172732918243953783160784589354175794995769060541993242327669444847708394442017652248139320736098216034070284254837951196061923260149859445596621169463285557713978098299000546248864816917876999253969508498896423313836498425706920562477415256689556150764986077030204794622119897301949662541022624149872172880976993108711176174892714179050737827788404603907979736722623807444898833142377783408208009395312936113682430363956668706126023027215720037006075534029781503228643381794670949702289384044369267126528058218507942805255320968127469073430860978228264349447360148752477772176153138280635787890324332065090992715836396671499790340614331183166144892683119588915569047749581596266735549435489390825103233231248997971155591056932543851664403054748045623284580216812415208094969078377491695864594718000792372777509276391356550800709338740856871730704457891308251176455233066097296339383878898575465665885419602367940303047228282885862711489460092260508921606055279502279108597315668940132154244063499991859789118948758447807153111132719541437167512249498563963201936161180184326039009077674336158283463786070960800275862296086242807495215496897827678741155803605371120984622471852967881250720536207485836257701974239079874953296952853383819708445876817012189370098981706893887727134066803654287811960101417397548424541170306451418093586724887745163538914080831158655139922683482840569231429684995351165592894033996039664580927806809692264036903346357833326772982831456499158958250990001563364830325346045908675416021512138839852724322053579262189565734473432796180820649370239237675613073845685988454767787025132226499158261670876087464490796632490350608399671939070118025025366121023568412532613202993045105791018771540961757265045938384003736317009061057575984951785908328888991403480592891475911500396861479965839768801285417814246784797589052454086880063297459311139412075022701198446833813006778067483088052995689523212000288517526864265095540666658064882890861343178771171195411359084464689477745650609453921525047619693637283137281072486037767811730305826593303904014177927872080065851817333200702114491251969226078322831702497619502500010502174970220673304842027574879370321890083412560105381051080440919238316649105413093455283465387960454892353695359614741022389694181971674685274729160020661905385762151670052700151104316576105662987584413983661827387231026750217754425739018657493964172444324204207472232538580866449961963141570087095223577156178008125809921816320224121388804707409077405079722373373970928010829119932105909046318024544734609327124943768555867058175443526179689491525992218882408090529516447959576038567724270334254526557956604609802314132008956046507212915488639229673134142770541844528997505015044241128943408503964854850936945463917444663606826657011671383575923693765367442365766738740765263170759924309203728356488121211520193177211599152361003236545088632919498885088271626966353495445697862601507239122679170953940654174459960796858573309532694789589838961260541309634295381230894196706764067133382035358412023424639752868563108833586635242316638988742038350189359818062165583805819608866515042246584671376828956083204109108538400606713160203059537585853550415953690969108111621812749181984458559535371989531863915280515237543729756655529071046921971105983296107120170635086860005966457750720484750907764573188157162013510402815565568501201696172392060808169657309683695441396334928450018029227104241339229284101651396560097570181684756863143810817548478801068705184299951138814628675608046453608282130340845932657915943624312987259719782871540028928020241965608620799262905572146999825442550463924232228256671520003372310876539069820975340842832612147082870865556167659251995578944297091320294889085125573495809201078771952261229894232563961311190391211918281804126247943465591907523287130595878439940552463367307099518257387443946153157216569310789981646744126507739681857491324335684934882849103774642610683485360303045850214933623999615409853823331812111878434528445252585302917547228294109348488877114628840307985983891359265419143755660145759349270633213314927022085911701616813407723306280020487014952006695805750708301633273029514471405696314776693998403973731133653389894844896810907182326966169696620130177069496937539878535994947587408877513322213513924401698801617731483228418875617634304514736421337767342720474666021199511433011976887972195374329482823999359933206137230148060605373633106552842153364314481038214396238302590944014193268299758519582392073513063204231176162273590902183243185645258419227580081161045360921527739169416320805601652878275044905775916572604938834761212297585373310299225899365419763239973253892959278776865964490365610313143130425109151312031279459103518264707839579786941450352859032431791679836307303638091870266271089282686567775089532899383506595171358472525647130702775021887470085113518704729873948901565580577520780902658752351567175959656617144224903326750647739077878885449872193966137153530271720547362663826396055732269362266263181106220609830534983616286148196806114719596068680448632651499469956431378383261368171681592095334828333648409490092012594304658868090606712335490552503934772777433716426363674761268050479841709931760295165083862708324336846028308653658148867686530205193332149508376949912471476915876197100150896303885735816822035848646762907866839823715672534508407740664064843351710929307882015960618699331545832115718657297947602051886712948880493492146703865081773953166307719460134423387991095301186652496790198048769585478680183641899172054243837861305354232174564801111745063905449691284147644029680555201019325413919412897613713603028775885599808459644551312706583068104469004990824269763973040129605866918108727216071642711977405483871283496676622468610430970189026619039221940267804406137914409353920162537354511321311727258743283448165171219185748379861045508290884343890450199997258624575765707904583947415828540546732590999034321238702606263481340994506039387342504654342742538649636740268923103086597263461564298690992107828924589730645265552481854146706858969380707542624575811174995558342406400500600939178458196690089740704435526068925172548799897406236350059298188375011836244426866590710156022220173420718285163231262743331894073500150974296187983937580444291852489345973293799216292120454964427123783623973659521857687184473505912868118925698806645979911338860233634488856539522725032371075141892651665257351375178355301496054913927390138587616679313338678789700640936706137578081608369644271780760221461904724396778247404198813151520809809709436097240398451493731893769851498744462900600452542608120759472654426882004352429895219085122443355683579987544662634385408920897065747250308038313669608705790564527278414454827436940925581841643895970587117839611737075983434931097732662435175628265736999482487765065743753931454853240843502996806821197030121146681070376892175967954239762717540617027013940940828997163091058002632713767743194107980436353070377621413436462633453962590475095880516885208095887831776543640188039841301638721913391065728468920720960562238299678390352823381122300454711240252603263594063365687878760967181236566602598210960941728023899092733426723793317895215158915912839511703154105912120376186908556147164806726996426733185475386841985493582539207251869173564881261561431149697509963503165552036023932868241108062459297038532233607770769776536557589713566995882900457641613245017332503182330627678789780298681389537597195311299940958594064443477919745901085560888760231447114026280857347298351024472434656620314748131043189783249593290844164712238137759486326406510715275691019020801141159446312999007458974609030979202924487186632336742560073847906870539713369189394857566352167764811976184912298808762884777385057419573535959854789449824954710577747197865802654606467102202625300840604511058912089784768163866432145887981287071339901744685477127007018930111444495538928440679984627619186433005242633697865935075872243018738161845323162823591082329157412613706406901504796429276782953628191307709533197451461549056900807938889147461438606633378105221058796912111069496775656058765738017721545203461674381572397154531336921866014545542884626069497267028359089239308030035233871529041732771716152343593310747358737219578143100108715326643699257046768518531006500064576777960770869860497659983267470273770376330500642535060706566130893023908142605137833539681596482644034992259724365611206863025644178467979585749264654507417212666641554810728918852438386748243132836852701054526452608601519680158642899947228473493272833572979384710324438006251123190383599003463464513977072684088158854603987646083926014015647795688577464311555102659982765570233597597611598506119638501073340110733809858713995002325818557916760250385513756807085902404878623178853108386449592433671221458873108806872890961611509605026875332080764917886404517758697310683539520232426886394874449332745745326388601511557622801592708906947368350934626586462808367394773984719302176883791028558450678274711123501866977244604841431934596727565431466122050325931608391319974914737013318946642413531916890042934771083429761795697303867989663853060267470376476723394639011429087053573468124687813326209891361812114879196258983755293541398376491715565682858914668322184366416091458503926887749385047652434398693646913353212655174152087605229078676093685154821955541867822746667682180125279510902966335558075981219126935152032987270396318830299957725442200732059039365063149465722597094083705855426281342755330808062396815741537279498448467739596527063678077142281580258140443357601709061809797230864254162476464804657412004640104608435207911331847550532099705696797921738212014748361076493669822636588992251524163926393550254361231166737208472487592553265631896599949995073013783601423157634433543435967478299178920726830564049352777666002835631472265648350028432489784094517109915842921832516578255908558269954434651099985279426977435192985834707004570721820513692937075659020888411040562170522360869865764720828187325292738479542670905764873026603976251997344745761958607193278079299682935138607249966201238292050613044716726165156486738542497286143745870297039493563145022549848790576364167382016854486089768294870085489374049105317488370551044370882927863410230509409385600676301041351934472394123930086149129287970068903728747923981814847422098969122649259688963549812328215147491095466523344488074550655021030392622540235303646896802662297629061692999763956423658785916180129881978642957064382164900727695306872334875711116579492010340650162239496758132892634678218706808108513355820952544471172824590702811457432284752357835452079852686502370954075604859470914413152276360230075698741931775904622045898469817756051024309532046732545222777569253509388518979638645163684965153153340716094948235953717062487261337870710650037739626850533412873370807375193677419893046233173682873091388249072251303940684799543436357961859903793649799126562165850611009234132510695352456139439747581494589398550687778856814596922954181743961559155606947951025046555750977867707313729007939919156306758502222691124644198645280296475967798961875735646526180686057983753315649194382272309083218874825970277629732776554837986498273434147308756303280212066501410864431404331584429379591298419577150459368518940770799835148427629462465830986403015671737222427638142802202484177575152001156153261868087296381049727811932121462269640130276789755256160795950805842727956730354164214442715117820366229512264640076423957198459550034583709285957397505824043440221590479492897575558620014836803518296521042431119651157569537088193734617274224735316383413209737198738823749696516884438312045341146040316979386324587127001217210104102494547096593499441577191283035285513944285794850519430694395925591010930813417190854961203615497388036328703735453251879632306284546441929424199390954172643930645987698157825299674609252575833669321305762109452674627241444631188866901859989433002663054323871675529782123537043504005593966174822051269872166001560514365596228814112397643535238268232546787154212641990910448166063015517628519623532068200301586471292883041030779908240384602441682384235048259274126959859079779730295536229748596318349407456024798568679622500115547089617281904849645587863200581681055339505388501157023992573012242385571902427199309544780768619844605657788091652025628391225283665607130219455659636405307932578557735819345407408114931209098765451256210473871465154751430877875107740719880093167785565180728187948952645752369220549816909477472596055745886935657212219700846223665808141352660859015759274620899178613636745103961283815036225304307277118130623489350292460873148004391137771602898854577390499636230798863486897832296602055208167335577530864793140840098511201177754879310766304790879165757537504454892734734492832367945448500541109917805752899899294715925075340335312141024595370214943191295170702894007387664700967437769547988648156762574697750436391363573513233885980076914906145254732324044803961841991877086301643407307898180249770620509885834690353848059668859625230062578029968827511335373205138936720002405889463733209886435629443517908615447502534702456852731710380055321977408373389301956847546000417560859136186523290510587388967731451777367283174591379429494304056430113241874077701279930645655192764934958681564887308734583531143002840922612493416769203807759709770979509733661807877457534709665726419695808527699068341768065725189587182141206094426376808052732662743596935520674156635816914571561167921924505631092552308236652162403477244168207983460292824829929398249608306586722761178870402353448125255433714124760862829430686295628837437859859479555424197344290097194095797076061003634974604432883958654716353444032505130861586072586260285224119375317996289883110475265031321492312538665258951931595590017215761137460454422976536040604842280103246390974189948374894477492496405033063648004267345819209897612003767573011131118081145346331374730166971441449774132585651706310561417024880380053033359268219627357110505385261035998602781588308785831462804179746221885203542159982176115436150237498698740034547582706583306222381381933437906854844410926610917893595372699085494264462874459178242366267394073497014054489224344105805762931423712322789987500484231091847055582479233393641238269882572493389968013875338654573707361500144538991913364048437906245262145002831251021611206881650971293406601673615267775652120621652338510161428392449751247180721494599482037531208971992414173250662758502950041203050495855897294298106158225670737681001954813042046993377846465743377345154509352748423967430447798796728389227175750595105122706829357852863495307951259752890376266485607527764335972935248087989259545633062916652631172679934095603005279693853872716815253275800758857703368576238128883862065494249393839318221232449602546232515672982051143740558479260942247038373556059004426911373077461655425282638937437603278213154548335208122744551358234082911434736894469074776316074376097409737420787559053553176107312533421580997943637080492769582216597864032865586611281133296534646872160855567974987685160322675275267947913634178981402871494525245003306554668468830494389421682981294793323428047358320798778173854197616033104212587255502164374871346558263812015335279780498644890602621997579785186325323386055797159908725037950844702063981146443761404613059492762791060167785849358253438325081452720069387591534458028894030026364255914039482430577687578067312512493845371898774699570041160977078812587257688612953223631443656004616094291006675357175959275145230301368016478205870570668399705779849403515368520721054553036548985160709075664067488866153797884734216472579050268428587130778173011846559698043362427614967622727310330687510127818201139178992877473246518050800300871099705826393056087427459189778943339192484409693618829476540272356666679309292577430038252368966498671866299929582045803602120228866863457777759188433451200482825073645784230115364371101497373900537739040150783436123148227164391022428644917473197310537761440047023049441175736336319294042884171449038613429362062260933356791276409846945337940584716541230663811630469627590101344485221264953461389951281063486125254652016393132295081223258435788687868090539068437912377200949413678712874518004247958545608523068335241128757387349450774823847583204075373070653309547103268919680660878282490978663694579498060133504885144531145586516175651416613248760143172329443193886802204570389800615454789619413734246311458761378917659128808102384306286752721127664242492130430461192811162031479456702455963372135948192706838715852057356166252947360027555696338854043172720962521186879547970715170892961083544931671234789217507352718659390753896721149373471041942015952495452584359778023531536559271288801588371704585443932877910693509304883248041295582530743367409388148586127119748744581641384760337379353412231175061317315375366017233286444325869713685358165651006165316370655427237839135935826848856152058531744211794161402334897737256366249234525743100739556437761927542325474278667750451543341198959981760907002785111390136396510674944271717169307695657478461401505013309520303998212593958125300904272572251435423444336603861429440662620135200999952034496305059665681071525446876426214516702416533374314374630364553188320562613082792036515229497114745576170493772233715987634177127386724744013270502526350963430410294505012735811052824555000299633706019623009815024783809077158802869609618847665140119795897887309640413226668029003364875940621583581993289028458887512964427713270784561949584765956581363003611795038864222266503007179539203844169202354285696765793119271927148633549680038443436256793996494031034314213961001684851284465310463315139427304142772580853326108373919510367414812929305714048162310671021869127059165821733491739559623000223607783748161096838612787115622281825651382063836115148948440238213778290859734167879522479061350339478967080885499941908781794168758670233906047665339714019284014463750068803670756099210473964305537386359994113322283003056468775165547167858750036424699690171959304713756989296385373380179748639381950341675127874053345463995940471354871930078733691913368951318139457295108271193981202584401458981559606625903005530179717131766300302789901519609592003690325832755219313288914809635428540566196389412468790737140997354050600235166386270653267076843462354231350270718252292512539313200530751791999557495082266812605563787907320649776835585770884344979643307203651416627252229430826652922393274903279629967574360236252232654746837451153490016031008250321530937043009308116392086463729839248844598054650605165701170734129741138253421493084652619883875124551973334123653986561149414328922856216693360678258032536007045433570828956698866655082373775306581273046284210245484514571599949239571007402882443756776896215064446026017881168728255544159374718041542505393804376076138226972427039481716703346463984365264149473877866118048965722586464700249340443052214542677331814281348647940261156123857407376987720680361050824486026024394819711878268478739249462800088161008058116129491415261233816402349424912539372895173694538026229413628915112030907860167117369858523428306573378035293133502460096008143018413816265305682643776377180886254554315449740780410603442288396257005420455362231411427550030496230335466541016503227502474004591458485644956855032314987085131159607340665048953492367884737093366830192330766772064826144392189622665782780580223359828661550366329878456554173720844509621128545859895547933316230206153587150939189605620858428476278586678144627667417615377270182595782064658785225192866066590169997592511841129846467321842058778087150235755949432897883985948719374307146054058840243967477391229108539453747116210938581687400000015078739701152230725254484186864824930666588807826701589622697303201733761954742943214944905514609846694822576500207877400752733258837398713606029148834614800727296815411203986557541062881146127147382239496430238636187458731210397282343264618338961030700804374510094126477297670880174313703682336954661862653614504803113244279934175923922891869303174253458012458748862576283065193248253812771354674646085381654082605827120906449275910286609325307640682504971630754984064217733135771328054804286495914130125187391202696459326170076520144031031862700976124425547210745458176813196964533744942124113553330387097342164433782013895307698525835475385641457373228165317131501761230692547649375167375328338990546876689201538916516749560357520866048739887677817221044010832313601980018888340803954203961781723399028025588953896104212066754843580097958006329202340201394792897250305028247209765797129715364506771147886432253224863223028045949034347233890528823133122487386907720812526981407813885746343478047841792000301991293462419951238284452549566933054207867858915122395247068093551168777649569089743822195891044952426945023341133537576174507777891698243029830166768296487369665966019394130363756418381936073127360042604700129879072395202550280755121692302074366045767005664001360156807314171211034380702915731591084947664539907898562547960764469446274052986625274607241255208226344542223491845537034972318902273149940419990468064671654603609255517986050848648138724950819470903918857129045990773936040342592283209863166917077210424366359732874590953091633244795246979403332135034394032368637162648106545385729478118408019917867503394867458552070425051270522846610476668560706080214551634839799019436811363042817096266015269412825622759675842143582409989129266255245178207755234209039074424105631953929808932217808361242792679630579652137896505170932720080520289100712328447786026366425483063802886488500871861706211091686346314060328283885798300743934622238887482174382713360077419690775243129185360868207787760730975073217125741224243306379440839374131649818505907601096380285216562410001388299778091137709541663210768850263166068452768970833628384567927923471772201475449310356654533721686450805003307439310354130797557146668670166199513347688442874724397019512268439282569812091413572404350949253339627640002170835694331770248886988184366913171205606539671120941344492504507828737606069441681239170924243724866987173636048134645052421595237983240937329266805412347193779216978854429999074280974530898084958108013823731988237353279149070949925606526501068555393309312899465485782729276153461525479522199348984764688646635978779654103604253302461875594194917711382203544456894938723119026658214502910056372334679822730770405507647744755411108207115342988200336975299184962587552774788350900901085163133241592056372211189075542896915743949730925861029933674625493173997343319446534451068224974038931840323977132153419159735577494950720142245858955747001048033043405863531545337042802886769168919602175157113995932679848845817679743223433723106935199244515719595308444894110179396239641873982108219950690658435295368170048873166044992852703918728559826622092151326380173558718005574819648634032275828294157160521872553252882753449474006871552036316409672581739637795570688659290343187535608802021831620595465422396385394913282213427833006650158003455827559414002887169155312140237309134732307282746548242694700990022724105612228262093604046532905696384008249417228976585383784200518170305858786213384668118535094776129878214201849810213684818242385459712052747412086312696486643027403912028517426061857183696498452023083301181851848815858137700522041203074904044806789086010509675777094881962903793371767069561017515977064808100935992294765985427251375901044490474778433130718370207899261757529569367233808395250703644007046769531044324276972818784651559672458213102249748585892691433437095195009722829477758893364241815665912495449152364642348700556589144472054665104159070812092447537098606687040344924895486627156498994577172330225727419743304387418706202576226594644339403469659030761069935974781309549802346315692848568984628408586819252113003823823183911550496676653997965181460745389694639801514701205034736788956723127081326935392139725935797933962867634146987993556245902307675384253849133197654415553877647775948502614780039472122691802257709160824448273605558080928718515425786340647215179334366326578969701780956790546588254251946094080418028124744754326834231354478334185686536504814726087491181478753440480997264893974346452431197125253372233825524996725995987707215149105205801868404933374267135326824826076111326123197403855041721640492351722979145858523683194797861955029972387327206354143024035853972328408488879557592267476074980298611618748906606004744141122793831944529995618255695057485603039835166208883640977598882699339910392866767673539648030357767526796799161041103727966814657245542865621192538913324838310703271912798456129953306003499226508628196969380140113841621235201350431146737971342531075791769773059619878532595590657560285244827611956253781172192104707046781676832145949396737379156457344885368028263583423370216153825741911875647593740279533313377505877878142644668026526577164140439489407166244829995891152828918487714468779649396074626230018064064930935034690284740450349825467340277504113986655611603945715942283498782622866855391636987300468389282216162864186554421674294215930895501066317669946403322685509557556842321720723955192097224213320145971464231442321552567769565498027344740183111932484265697662614995317475247656310925749201864860507419428583845348336022545467966794945163013269406694092040773390731191385815714989176276078297999271017354899586146659980979559311042278499674863288771472158570480365296863609173838924343706563189024350343541692313160143499452307831702534421630475662593857840457349820374088117019019807681765007757471258334748891868460650336364245320182767306718000964266855597232387056599283346277527401391434544633868337675720710009019731289912444002910633231028532051124207342973715543297107044592225159058059370923638938323043713757258526229664066575720233112422348906402809778118354937439468650925884018272107993857177386977163039636962587391483787449689668705022419261591669709775172971310598605861880644575435290944033956985277176080678539873627207857110826253497145919949426156728514783974013888989525316791201803515768435481676974330085583358183752262585112653165750793942836417843044723672197274080044104251964972386412382586864076512891910700000697586310084885361636027323800099328298592541091084632744933040870560727016074994684772112274696852144539106081944673746689204601845410229033839153677506117175842874836530454974401164650847223041930758690402465696328694678119871194072226401541421320262994309203862331345163907554602635051611911923165373118803489532663772742557591796313186250967482304568917523842970713657899084904498529092865650743637986214690636126035853706723967271895829766833561883550993200424691823462351435884694078748319793681198119075696080789259723149160194322395251962316121892595773379054814653019263567746529547985151627266957642733985685767344853516930369506380304254250273339734140457491887163236837945110101956837000791636315709739189397426518781917798147095874036145504277819967162021819536606933451928062541632321204556404983520931244042309912404702357663447263109052235254680987846365691592196661941435523196372042324243636709088077507347519689335831017718650201826139978001057023486609680483014378221191896621144163686610070096290937179211535364515483209806152527129508008544927806229841679371625937609694820803063727780299547136291769404311893597747046542481930190178463045451870852897534292486251352543360516336198619378552902993311301179740524706258760596803017061467343548352291137416425293286109710282542290588558828840384562012221723011540766772387509752231451073236476456978342957230302003948478947440881917071318392059224103666974124212786203698535043737631566796234497587865364319348836759886464174163234152243652714098740281976761752907151115266790995594094710945800703478321977030541831812856128212694218242879923318105045825893200013838397493003177728321735994145496811764054506112442675569245464469758215082631888772785916584010840253057723697891567235152647835606035209119801106571561011197194341226640536585004238827410666751282754779080342269164595030163111577094923370005417945913029445272110357822509208343347328505727035778343861679752139968723282046530731297343479304842342141953854062025386283861383802176573598007855092938196762149606958881331268346316132475056244383176636727178944267113923185462950224552550637965272801681725751020728242914992158587680683113098802418840080207719988000983417065052430225420678370317243816450152470273068312317727139521396269276927038214126465998840499693365980802436542811928675740829183530859491836321569113824095737605321285522325588528411554291919022773785598862291928213489468273136865717195556584846472149713764362488831843633226052408578953725281543709544556668914292903670108807012552453487957817749570096059293263963368553454009889728814212774069164005068678125117842685396275052346772856802740900874701989522431725122900388288659003705864201710121054555957428178706935227862647806128615514406031296738374692960671641265958819521714664570075611371440900032831758283672950670363835318391998457290698886908703034102062842929987708024776785638543017105938808424061856881111329013931737009215375144344370037585142958788919158897707110342002747464051204314212788421561016284745487027632958430217137314408977470167538421994315442641920393603946516431313391271211890043065333000919486022897539568726584007352638920547462983144685130355146544361085213843743139816683163343594362968839136961449796962661536944960192251016378929453368137242341164648059904306959544650350091197755788587424563326146200971323709313721531348248518922166419810400526463516640377979925612868348172576221687383346791078943565825625222553860976478164505256533922949906854531780570906896677299338297926607964905532901256830520853842229339934627490886695758869090264708879078822474813427026830199218992169041210375888361249581490718152792634187599105727268541546152551770103278615278243397770477170839133080508265888418484366360506080679025660233339417029658401642302308892633176060750808910391772670396672439355422410915920941876007506784793695834589856768721325012621591808693386524461724513418609305084578490126291755296046095856360970543739248798047843126749430696605286930368039789430090539121003774351097065431638491969067603206466160587547791697879861085259158655251289530533951304115707722448934532993025649669662459227908440818956397543769610359981165290265287064487872858298736373636246835199871257073129888793272333620204739110099047006601652380821554772630130220510161373508545428897445950127157953172127430249182057858744868011896749523595249170735456793421520265046277936199691673333543364021770512712822825963610374138428750919279655169206018578090937828834416214812777579157373220048156913733779199295009012216874190174238516120888404131115090030559750968785501410461684202317132523626432410620365955662919548550813331181748147214291570911087869999031096425694882745303903724420711960338330949448490548401034189937945144758259351358579587481433100313439144182080240216036468706389042960283534448515935383929709929229517539914677339707669063797811921350751010062197565827436829852623386057737329683504648333591270047757059638407566016928506200859862692628680450899973571111071791705212470776081978833632286545424870386502459304657725224848049435407566114328433412745845344377416826549626779866034165317581034301294398946026561379297091091382230985762590754921334542452278311941159441156793637936111689713197465068103486251459494650230221731133896979602970915954053067419344445076579289445042186828029134936980950768836672519281673811965589208307359279360594347078511245734323644727750673222599117503414726428630327081377671077009153145612791921057952693602831474842247472747144387292824907299343764325631475344345599361927954403515472838595913427063977145774066977205045902943537958898893539152512748391666774351224816173181979850731262295606171638299506627969601253430408693606263091262130557177195430238462996258603493419923980595477914394952381991571524565080058322904908310933698458611350984756519165429338610340264642872442481708113585180703692905692870810651497172610484433718167841764270407285873049931219291827284007319370868674379576184258144573937178893351867106364252342288970262566062354092802806732610053524803703202865511207164928449268355775438632314510656383625116420643239914167832400374091713815563984536588367555589775520686625391051473673102015546552670613829997775686267854483592963651833797437611157132892429299817835994548129790123436626044687135040807625768394625346504189272558862089743626803667906577374126594049056332213940656403356058380065223295723377368468974116434102918165378656468154848089140360369828219386834571953274293630284307176718219134503511296986539492541750451341157832731106449767926862391061651060817572368373218041911738026796628738951016286257455590611467095504209438405029261350886228183008413010326625909170982694159399300756114276866896410520447353941026014664842253410067537948060652566079372630075190889776685032016235844463046028477104891877773208385762998462221744810914059559719532877825353037289493227601115177212462765972241046104824470942431872110158383949354043860470145308464541573523027318529492589854782409868498251738369129588420743230656308342990920664631188846567636882304417178176861592176801754211605775643825014923124804645785913611887023663722622300007752882343272056508615595289902578505633129514123986951976324819521038134358082212288989733930060070442169936877970783414048272564029226831073996280382547842622086603135223698965998375337356270583394307717011097083209133351947365785960810395339083261836905050494025247995497427390264857034825475137462005558111844839429011779784822635162420896937267092130822174836273547243789590028682861943582367329928124323826074746161791300038666571429598709547152321202934889514872739845851480838238380545373855304462958096714640072995069419364546566935500906573398640070089690486574656707917433138183308451898519615888328922385316950325790785485487753758388848333864304925758579549639313380335509604739041876247696281370536651194076578897591136239446007643276541857004768550538396034364580282527667455602667210577436510055806151713616049155380417458333949051703901766361034892393599537364647275925392538627837777567186125726569694701697784366963524190364989064478060582304863530230026656131696340384627556888765030849917489392402624143841330766075611143061421876255780251118829531511264115760868167082611549232401575664088153920438077910567701274388172771970932530525391521523341053911024402483514182917255707400215988597488879292687738224159166248378710835162584724689927744799515282559860366131214308942744276198427933077426595998711331978526194995639410095205137033869038285824820547120595028171099049978622389994446619964080007093883015928898463176901698418066500825020892672853168639940246130366329906794854106089134489472826116001066067977545818798533678554666395638167640821285199394570252038243720085585191137439496356398807791907157048670821776082416905528220737174805766559177134283694168593197653979893916199909188737091729197303021324288707874305066387556659889751202821639584628626879019540879801531268803723930539031220208999255824920126884669130948305419166225238876389660123756272871329898362969875059564246324587386446015533842504421050252163652319209090178794384591685803731051754675294764775388589952677629608412200358327789508057369508113635558299179602849373245835665643560513470766345998045060446870128470883745154518148575517995293756682231135687588669343822738456994757485462637055645195136863646857822901151108701384922633895279713408929421845121498955358240880710458717242468247521981064550329002817308962216124557202664407433346804254870450077242699950826920692716872368617999951946435549242917763755349866816237636171321842277794149072275457835723966287298890171923059603080099326932815662955964830499934139731520016076081725801255619238450498680286782471090009687444706184245627468791156336682237307345168826600716685628986272353503485294598110784068717178311322344603188843351807681718971071958665245711633561653389515552820395300361835348130537610239074944631638169433266135450055109696492822073044913865902577283376749284039061249102814835732237088955164301072618331182647127152664678830551953791176579806208956884134460776290837360692596448343905826612167663555138048378634058085802092621708509019475228439819229217716096267997521163241175916466395957711487715751436507058947087872843813719459340792836087002044077913235207519417172376214308602300944679875909504351657641404991222529824433244206970437795009018172900698911935329714907838546629959745477862614150870611479410028485777922545929930302760787878879648967351851081626120641366045544713992535390645241684112587775240898663451109904729418128391219959696915053584592956026572374971311861747668429594395635604832059096947160703267263942696036698003324922568394934062877011747514142843102592560020830646140207357433992058356363136438882560240679025988966871913817399411102203087507947559712881176325535958452755883596987144789651250928441734339616849398043413935052766570170168491675759316083819563666298360973260224315374777610167287844834899841783565925827221659919147986891937445340378609281761664412590218760964625583447179818763782161755279643292218103938737316258062828107252105896825935629137872236324852391789521607926001984872001998220310980996179161688664735477291336889187201303128915309231005504591945357424073121924856274011212954266911686829358929853215002283904601509723316321084980086692491781438529686765827195358309311561179127173116465977473994784817568889472096891447653291015850014732537454851608844419745365846830141010828281982847729078576212940446408463149121586643782700952998878673277641934392934553107014902656484646339808368344169244165866226603382822244940566228530759361551434197721697318164834968999091632192484058365849595556351604177218123539196846350874514666033322277526571338870874519408969663901587881019403162734523949470700120687041116724461118556958060891474869304640479857534535357473641245155550178061549491882742926509069485693462699928870103131795005363942831027140840604685611928362771500202401470612828677838025307950084913727916653420453565240380717385104286572764789277475503812906854279251298911664830729760217187125070688508460299871730320112569150196705722951116230800410051682607539889403231836267945214299230734970759250185537819350052542457496095328236704240923163790740461985285647952399618006447311814388128994334002416195553441304529341897404056281988382840061058799352206732680972684048130871291749524481133233370168836644629689889810914200257661301486315509523461229973665026111090816424561781545727808035252033602452670630295252466100653797566822488687164927337166473122824848503601386926715590955608840668671678756179848007339906854451814860902047894367245606865536564949352982646880920608289970053742654098371220062664823438242897995676570639520100645697057251917997059499915783621492155604682477203914542820562882991581385059076047963178565577047796369762152648136707909840867406550436465719333782774617458168153872116819614000430979316365856597462317251681894795927009372385612565914738013707903920338355363417825517563369249616704694111606764719677758519779570645957068630962145070001732719630008420225969912804582687131583055434729952845374174493885275813981332771192080080747745261580246647875593772226950874128735291490273794255675526836995347338246226006477901351420823072223863727662946200961834047292539484450572867771313665479859767344458411695889872654921077402325907307557723373408596883083357131674172204281309263379898849635959815253177714285985598430583568675137850570803409946594291604873026747049654129157576712033700153058792728451658558296791867035846168531025096901699154832361006538194943794775604169503452935476954660821772051628073860863417374732797172811730405375154481370136220726527653245194487823065148701133669707669384037076041558550446748218114738218520114127216493530065863847429255102524877606127384686036304103430051845459776901117276361694105898596182664878158086596122551611950817335800085420400398177162899746277941402637127381974056715223581878004914021059326457152235427675202821346056301490825929276411990316141769995544755717087120118424584295633401604619861097054847799469094100456472001259211529749417206616464172642814606480263926235965770009840962394599446863226328489652697652982776732528403747556464970397704753511607256961459634425819907296881235216513961447566719980419487989646556353312128511908085553920331540700177843760086010760123116924370261970479668297590593608362497992301065287827358307315413346975726432596808474329058818551699472344689845228452096002130022134497883430869383253118191451971821948384440127215104447282819544974025806549309518783728143349794781758413676103541868968242108567788085448958325748796020732173332063340211454192247002218490241828742458359866482141755338469416639222243309249167631312028244798992375711923790895473369874358656250883105442058035034429085492846079572995346935357971132245634580417941423358024423541072913519044962498507660856756889876861825128293516893346723369851998128509837296422730694784169765084873918597146752119352754431161486987045206055390250548752452298385654029318775199129176527714645354656647898787961467275224472687282075581922738035598096773575563701219686737785487384888123293410337678653901797139463488773362853969836806060430119376511835976309495098097326294586922621395688278222316900505188731537254968727610758951127680369409734867863949373751579237610402237046458588973447148750240814235614987774408838686269617803335830244268510263102118923366159166924940601135140648269801180204806833350897113865233889844144716785270134964348110859839349683139926520508692848356888805857077428044226792599417485864296984994466474419337116456229230284776555018056063120746619773104994945280112425215975106903213780390086528695530782894297335963458376309636090842094797294075562828592244676450976296547473596396743619083078432026544068038985772944757470640019950504651624225861223336783705388232676790122041264882643838862657848514778571296099304424351864171229889981806717176288002777431289805866439104314174706028775659527800086984318687487171782935516562678917184660103417040589811640691623929819535554516571015316866257928214103698784140654542355141446297878538002813686326811907238906498212589307191737076897469600141265107096243513112824891817371839135084146675299495558260056533640667052445924656613452641868915608922007070854842451002667230073366431409744714974767267465802375853170118731909746739760719278829035327657509682276545302170893766332653016773349525382737914957975647879467962709110136827448694569746841782088777109674833078751536444502984798326202115424062591508629032639257573003341785624944750225874171616903257846390261929894271959097887422764493301616206505496243562330068493741986821416906620063426176809097607852939165200933049089504850948771252667366103353860341954709481854821204584520481110254792316072006460974467248402838139317966333755863307719775811463256840682069182748277247667036431908917094870114439419762024266658738612594699009241724889464168282485467302069904576419004924749858173233233693083132977648402576404464626306537748394056455889269332759298460313393928019552911502069537670763647327013923168224759705062354994707082277421332603057467924126670471113826263483428345427527253985150290574661969490225607779304721426343117131919067462927560606482157227560733187572599938517129659950156251812107283383502556456803738282145819632317572153436660549579529133998719481425645808991477522896265953696430833540165214775420086971220201947366068450479632883649756609257777828417603127339781676126479354916963815862657813309642670401049607442163671146012478444750457106007730288670117010002239341044077275756830836874357766095951167313136184776155780248802151358059946844950975712318868516766441819767247884883900857037406547466476197593350047016176963639430759027855966196801667699766718419555621924702343167510823083593821990400240622259335836793735574982574496726323444764412555588602060900743369368190784971919226468196810436099013603084859193349503269188416900438351030431297432258342543838589669415789184441290485587355920721565614249753660962822232314652348063255286488792758852367466980530531404524938750555244022889591870993869842601521929965641986356604010160272584290529725525623096911723476764777191389521054437183816352221071485544704654323983300133770918444409521862361499782565033757250752611310358375239038671957003178928859972480892852977995672054233799984413386116072277668482274102780465433503753891231028911013267439489472731351437814635897051146606227895625394808331885859802506457260473936013975608600117005066557368632443989446387048446950804945036237218397947912980925525999863855754757687970974697564011249018578669883471125918405986649003570461590613978881086029892305220108627402989110913644664330759638330288640022220710353264898546040213304532430276144471185090110133598782185183612596346880231342653696946787793465888507049802714298439505573435587382632221718487005300706466505426532084329984420545597991208397640563463313360795384081005663127908533997166131560761004142643284774233203441984703539636350081188633683928100881757927641657138536561648596836918577478229290067357384204965701345718928949068565617141572376513760014700102443365296895160239173546722302577021764785989733905116286349453991019653190929579066663191871876466896349139559056410827844113379799451889177296315448600691438924621048414707978661676423322746861369369043482885780865722598647273679712589180959757359465168677286854382284128941907784432119016820733169643373987730046054370112750558060885165162475875975173036391341606064007976352638109346740792685744349901088536825207895505412142234809570471380251340187182670827677278954188786174357147665036720938578435094375245731043433467608518138212329202555176613990321706763966110567767257309744768321144363973638230719117469231054559145541652019185908316822063676954208461952811436317937796585878628776940084047630428870127467324219726471497508038043963011933202085602860921344712812066277693521612557119477595030640475473813940785737548144284377682775939928497862576027770928304571923241645893549735285388351041853629942203708932567840936121376840684253951166966988511862082889938560735708458122576145783233195785826389541744025648147541115794754136593617599702012694142003724886797518926891395415973645102710519939021773450153065160219373719463468978140870128111181731594587966342058906023877019922717904252053229381321677034148677388241074248860137444669069748311015294548063229190498292434719719072561393093718722873546446811347547504221056697298684653776073433764535658385197688191244036211769487447736568644268400678021301185692021610576509238917688726662056391879371538571843527674048158685170071657401368700874181304202492427828362429964781765836491009784964651940957122802300022215583561969439090391093082910209263200233969404827413041182427821190110736212063864326794700508948950071747463679784053057704243332954306070276273949618811225238656052148356032435274100605121539423771049137929961207451362352801437643338876932229383324273966538233150970587638292220680830320524864947717075382933036884979277295541626341359852990870744019131690526421950453930597554701597677716433409850227357896531787904130861548580399784889886051951641178579316843923217814303065921203013738816438418784880993874271932700741369058275946040976648618035276759945650844120796443871718361444922293589038420775024091903857693307380342523640526107581970112133218248405576020984160526261273980822372894129843765908224672546739838367441199457071029691174996836165410114653634957563117049018254910180443560476565226895940107208563237277493051756579105368408095691149667365639600820959119469965649266591468230141122468148982521103437010803657990392520138335930569832549050321828126771513583804522198161074296502948479821202436027693273450188429677011084199354174397803434277866940706101368024537808493114402633205359153396915203392798510821156963282272783672892138825266256689899199267470943387898472815207674504851948951003408524924431775704218652484934330612704574479101530317279834718904427125046623534920139524261935412766366355271024620040923836462577078370048861534996805372598015267339562816695315438163249195281350672762934061875021171324340554954871077093778910182952794821009932936651333693885708670652599543053854015481266483112985998652229498889697925514435010813173017392105049643854505575822396661285256897915127026823675314483431804700604896726510112373650851014539576921207321342232767442670734213535948235745830291662904568667067313068385588442968590626954299002522328672650732940796169687094560813905028199149889893290688943910358749481693556439347483037223294112012900083614697160232420647386682412520016046589845567417231261390145993642404505932756002870304916693507883248786902915469051078545656270332372606210545974372535276642591378088197914285161778280104451148312042675255090736707296107536267209821530017246661713031228080939020356390515683493999871154840421931881986452603337602447613844318833218709168072605290114579423857274182000866779789182605637169869620844124208656660087706277208464737249072076460226583777364897012329992896503704580265990759811561212503747643542456057591699579037439666324583512763116736969274122199668791237407338995032701153315676910233232648190430385274711600023388348174001888230679046929471105600107589422121712013759692843731793024914423885049564334038642302374205457275577549752451903248624915647096842420327658483060990173119337884350646123370662326926992901666762767958049842330583531559610567122950098154261430615929123230626665724072917458729109813956666560705649335974823819177079106399575582682065937149486916646758501025814575392504815195100181981083892135126128471092222545759577540091539136562601321084980400953959291493479399539011303181520489423015012986522504815214697537784227542548593987949156759431638189756183258357737095404568321409715310993936870028353516089052769570833951597913425892974837572059605943961747884057321213129568028950431114185670543867161245362316695846355908900131222632201313652439802514535342888709241401108997649938376829252989447397765323776206766461162509277829830589680031833821598190948150991448486491881217162285298020615011608314697810787495313988851120763119606434275200865024100231929508860025040606725286498609366989288987298718140960914426869075231099373001807710099567310322771323365213268467270492521880074013710578579350693651422178849965221515235093358522907791163655848018752682967780322590019007004763287522877231184474045190091273560602015110980758153126988627724531213341911291883490207881174829946309783971937410946702814863646403104313374707189878282864262787585014828478669496685887952943726973433526830813433063552297130803546709584791986875215475774179359530720634038789905818779972973983012893021083552048441938509665025251959425452194417577726815019701015323860985777669113564372736110408191135526413667832453291731835389880694995412789220539400429131614406177297531904333331164770846277195773699386620628400459251149249759101659296313859314283753114340248726956395083770935057349089140827992013065920184224780850454648449446991547473608963308264121911968203238844280122238415521896132411761305651279430483768992946374006301181425134937189857588351216294780831487832939608420888464632328868710855407051308162131722070730385440546962861712027243535566427810410002370378476330515598475948146665954484599060595186706518559874293950237499904586746823568147213803043005411403281945651940682776480900819352088452665297103749714050821230867252711970626207776041206326242053360732544692179916915166569238931713594325286088605888452783753382832015632159441986969839716759641381307542709945853398702995905520947505045607060511086220679332776783132105440143769235723776614495164543135027366083101014321514292048492597098538721362227250001731987788335766514596094751356095240541120227312197922878081908838435037047118302874030204261760701145634656085495694850133351537979440029872081560233842692260842302570930989069655868004241618482638840247749590914592831780744713059527671356208583364782312279377216862537519646211211524297640611937542265908590699878992209531924495189391163193901519266100628119291706715805637626371899872739332783048149672577480810684123452421784927914212948936517890518675543898175975078863582369119487779324297201010017599553839684231290359483483762090530129532811677781641156952286040634908561392069690599941407059064037954489322659859368453023109598197424422359939519108196902417553456517736247327687639607518208487212678165970593222639860378354743071227574138357952402131855392162777869486725223664470202175282679883787751161026799543849381532137890410060248241430003406665726201533183981263749004993711176587306572961974792217951533050694872675456243278343445891361283018219364737549915442696430805960784112973617939007305538704110687015104616619769804950227185529469014732063737540482792432111946952742311362128795345238546240466665835949521319749002672419089644951782282767681737582300268217942297714914175474748198274013849786811784028308122141286755827144820965249986603981652876545954290566187414465389781744312340408045653224858105481144555786447818077010272296400137035052463485351213200769210190430309810443589841491094838873346315946046245588095230625581405353758528948426901229107781686237113796179568354153091044427724338006279613228218802638656779304597465699192731371490679480543027502726800504439401636202658342850453030143339385460724972494019279237288354444787182964404600553566862957218920318725116070552490923619557307919583158322422244877685472879450945247150946310306017527374886101819705244732862188514763342963647658967889163362927295127343779222170876495291670973422126399468223182771819002617279351631786851965734649983818692905315688781443489148505952414366333875472764495653555873680795451296203823866261944237229234033713918524479944681481454954658777994503814429931169055940864085454133355488468708230643622787860005389143321378205609349252536885318276289377449182232466624311576912053532536497308982766253113953760914733370372079999543668881896578710491436780160193514318325807402250740977305815580639261863529244665142716569576499682014026734239917589919978142153595332541295532754280315972736253474163159029112064222551801566210512584765652540323800158108052588899398853017836206022109804467159871935396299150057282336030008453203288349152251892986662993554696015527169821913290837408884243192583744025759723247308733310611283492860970773832840133002486764393071573154395221802889767563590832652819842084572172954755403630222886415441448129381003688691916585136082180329659276359025593738418784387162789506677543740516722809234722258175514203586446177213595013316568447576750790644476072590887503936281232864679931398021922531141129073675603951613893228850430409816272725783114343991542395537905825651979093653920510160699377369235161127634387304507541620619532698986431790404687202361264059008758320341599025712971929653920128638206451891920396328979517626485561298660596191454845936491927277420827758686435551206052839538804743527939577005618264995763098216880050050669060323913813519653609232704040271580049045827624018736009140754259456254963119707254943340000354384138711612294340286490665285383337431841954592400418001626524357549034632928417117124239223056866961601293097101915821548666673416530885302907699926029689557404410088600276537141489122440610112037994321058266331423171148197584511546922275339151125985204681469799502178749309345668077508893005760198088789148314554934092768993929447951968778399885127386068005388047783025649890208915869904644869064193005206140695984879541187081776488876669906136361568192331159677097600397163186197853049205333802464769369495454168741711609957420238589898811357942787122833855937889127607807649720607302630199087423295422844856439097452571130463421978489554720173705872527446318173453302398546605308918316567151947991804436768529240658802127486753714388997994081559617382461898921640230680855910066288896062412472596181632370725458615482977251545226152025969443452488172442056410631744421548618107957406390403328984759184862919280453810725499788266502632555474756104246743558169747101270203311642091421175814074911733320384894431976886101837277879838099622944335321169764026262617614756347027027746811557855348611158447406352816675159620310459196252041264674022404357052122017273711744370026677119351346111776539544114648377279145050681392343301819001261644345530734217739486774399894238991281136011142371478447552809055802844052961254439485501059504211845329551021258070680066526832411984279182862897584101967111102557719266578400644084019623900971893542552892804916828492457473680030442129466573200971536804277595848542679203103548690065558677552329858464950440687936287018140815685372962628176421529694795995235328000629379045747222165478421941340542202294253189556541176128520514839500476375054438050458050479689394891419246856135230445065943463911453457654256003077621001906362509989499221801370586344419061542074177334414684587387747645152150383908398932169294602483928585027720305554860719734309783017246521458930581852952175863622975739050394868162755190753760716739734639192469879778506864920894459313781298772214576576433207059912246668829273731446001996355536008039238225632393154684645163831758658198698022380318382442711996627121341731349000087760821154264286101810944470300450362142010257927910861908889768935549302994934023163885045039840769641186604065868805958132989873448377459559295045296141130490019210723352913779382371233042230430093817684852369290220217882713321278813266401696511632003727914217729081089518153712977873196522570399825360156311208135036809350548505080855457497432855908097309545371676124921616601240964299303054168034244711201506611521019824446676336459862925257376553601249083239451111805769770765542175386934022225553143245850935613999346438829908254934027830378035384308487461149120243273458231161698317062775317838260362038585028961893753281359622251933549299269572435840495158626355359495535785904675642790908631230559541396709800726143200594373519953089002768799510984802486843241322826629117528439217082684364183924175277000820185134565668021248011099573395237855290558262445455224282974048567008137856987423900041348446806247609106828508003404013995242394146895807264329479574608579321922052221391200367997096812463212404284661925883142330352858256345292970653889377407168104437047373247774761976841977527665579773959653696578789450374068924426449059867963219477690402526033266159080205328999916391051368439112576568102673355521818756751625463434605802337121297436594003515459664864625305667753037901535040299723459179740901042546136840411410275187439498754484096199194186501192331588828019897368676935916460783091056271178802161446727150672897594334991590692516299363128572160628489807193054788495364500885222626833893872563202956393440155892597806763250585051035116210158715300259636672484030670496296789083911950952455669942815114180730634799975263042726900030423019763021898136564599877991858933344418514314085009017526580405461540847749184240984844167949730417234117997983148354492220364774410126405622599690881922692916159167472712049255698256499249663726744447314074155156870821045249420735742699882216918073214294583770046149510026909541654533568044608763286575276526132187608970925871284454690709157851488391361410188189600690023987138769506415751762436863969348465867953562719244368265069282525774579417174478396454042399912192692420155314807445248900668110658013063569063084341650471976378904644247270157838743065159767679952694822054037907474889186040414181364894004304910385999155612556409043676761282070648437866255992148042144390025232411068779541171005155244662495910803408380516059452973015268259856699634039806931820484908039854316315066947683830903483556542152124731905355180826945287339994652088116344694812088428911068131589001566325078306172175988162513257872317716602430984116050401908809354381211195507084569417318644064420899284638441024428675652723106565255109492602584427496401603077946264452367202350565365159595496795626926260031711343129856823979081457440954956319901717830204074190873139260649591863249279480872073478024846659517872786302640708663265403454597079748103393476764319031572956685034676293260551722966271884204529072890618386205496887944439968006217292577939772925959080528067747707475099907300213975723715737813016386449705710153656929384503886972443529393284996656048153547603665527592422230803611570131293989642793434829391657382218073257274738972713251353087881783124736446417050035043475223233372420921554597681568170307926410783409806829982111990629865802952922645882221506072143587046562288824147294761112969152948970530344627657205957652909246431148435214970895840041075158255729714941932673757901419294735660756164988165050863468770328946077016422774120582287852333373961585968991248418810295960493768549438031226580333115688545333684692083966432106171989536407994068335548156062847803525186442464495073366776325237727762675099419665787294849165649535677340139754395671966590537101214101454456570889732055772546847745411427792929047362815905121721437870506506797010185405226901128771512091634750640137347603459352443342196672278134509441959866058511918475212445255698773708075806991484832966844715749547312550103546804796375170253976698073676248534218488993883788910151530876737721929514544234685447869497319476816804595627630759627728798108070633444746578637571436396732618195135163962905539962302328488475244373718481540152470375414793515945721808022369693131641913903776524534952944924093375914823971884040510796579445126349287139431940991108749714587170802617166981137203243600742678413680488018516735910004921476279902178499806539559509909758981340951004207780111727220020259621433170648780434005402377570734897111316335190500598193734486960009938445194226988273239094546221052599049543653008437191228764537627554524529006169475370490838639061625147094282289520480675699359662230822761474260518607370519179614910299149233169317864122699039725983155945229010285779964573566747983763305306016280421568831160887236344136188489617061232488591751573006035453221300940283434140309525280044119758615020454750585235972647326022306976075039859417624875615516476815388443677088836565337257194098972071595731527522581382831447928877071360129124691207710009637757539041437032845955629561256981271377450653286470354095652832177095903120818572847485907284204004312758811588006924617682337964463361437705516896903363074168069510278573056480492777054227097755070853421930605530433290987103263559141078918236818787328692460197028177450700089646686583742594438676668167118512694616884798291726067375546498220352955378235778447217808733413655831403588253150928533722841905682644500729702037278422440709039971762108882583595005135062825168172283695109153528972605952856842118845021435931191861424531050532647290368434196422557213388448689925307540056718219137193970662069031616735598298101799072768971198335575693617888708527364336082275533181045468937527442703286757369001709119414539811410345490014658631986546879764706229103663538928986053703722535966917651650418846130855699878602368590039923328828839940229001694924544927917679885698536862256181378056516214578562476007444697775273048592410149267757430838433223712474956928849921226263291182553553281315072918486660196209394879572403488191603431697544352182603295282596865053919157572094143885778376333265498218036740626099125140721293653505444913931395704262045737932221165139064700498977575938053906052081238121701376201084081744624271018925146106727017000767002025733374380929497655519232353422377350378524742086121551046172953430835315617691571685532172752694688254287925486616684686891037450894038914124012856240806062987851570404041135911426174151579336049971254193179949768648027634240270332501294060812793697218821383440687764485466509507954502811462562033464062577338003404899532737369684952602715049016348921869199012117219799221680404036679896602228802244413750284823210768117924066656944687510084269054340406633579209515594000359703366010284670443852409377204139307233361027563548574863225244113274173635034305569108149688436948912672540443983083912677077582559903924973071921776772484017043216969320986474705508548657493749106218945935011060415189955553405899463091975239230072182502505464949461761507044766688202348874352518730892136627561623631757483071218913414776973667052968592930934185096219991234429739927839939449051841270127330293662774120109843792688659865477046931779508336385192754801665681530823281537212844491251102140159232724805028929799098451928480196700690749047109682692041810398410729583321050618206882975028735396955534365421719855101121599386246893119799142087150771483678881201627192104254410144365196772283642167662814547278143618083926412577506050786097913482098607057514349068733019586138915722651098416088091934223388306776776070952653795172668506550377605478229207669467655635463897476582465492025986077927291164582670323078751942679356796889687525573546077892331770894957286568780808688195557112435089249996752038038990535328838531184981831951845208217994824274322917307079865123917716744844152514572969916882508831465898507381879872516618957923223440699450534071376214573583036890544565856767956125441111665350481442985755171798505163004984397659095320480574221150477911399763086501917142938586078156411001268203375386069499924509252116974866581290811900931681721916980609796445390279766202152364119515981941604726071135308418636506048739845059565490092529328351021263566632087513957390968936712746545005470183238943002999492663686604927499455410262772444940283086409273841536100323258290667562039110145403659351727318737317723397801238699013157057879701052723170823496226176355828694083918927914900767939165286364181466266261316760628077574994451124932178226953948832283849178270382391137437210226593845880331778293311765657858401795632795365267401138240621960668480768765703517576613158197006905847763395412420608803148553224301089858633117984652328699062944785868033971861514048487323282945819547465013939142213494093481772584823946162920482825891306302967000596172226889079685890829845111248329104105045945177801920471251404973434347692744649676141684232560711654858478545819020039053964667514730808834873696970836248338751146160327802950590472608165795515935381836038437050378469527142437475130086771915963718019289947232349307050997964807244099767989180298142872287610764787259377224649830916566288575490442586785698180290884847872735441887145286879072812497095014071896030264853043663600603477749448653309180634490602225686107055097209859158259695839159729975379464707275364108841321878689912077969572252418607601241956364139449642581818312994931417796846772477683874309174344880354837524034655890078333653061932943333289146887272831336773391606824577232247900617713979061456021614590800504709474489025025550831053510478876489556565408851498361835784650702604714385635970411021226235255980282752013461128272131148256214218031263373973892785062872116244258648501434469100475347567233435000696294728042878358242073152568093546797457312857642343996130326700028364789151945372532957829630927325314809676049336636937841842706516751093149342327061919763882967305714633579442682212323620409578645753492176848239700403157158999728862155222063633536296588994331519234484020660147457699569895118409617729417034933359001890112134054076499095709583575603739561371552553703862789155042780468843629372496498787724504936395632704147616872130126643667798821486135897928845266855797171549583894385298287467090622329025495547322968462947373116861989016523775827633475596656920402873999448046575982753502255858663558258438536267665503128054592463647416276353598850899838340961772094464409154962443467315494804294603079178800545243095927718775123165171948236831913254172762147825979614870630012620392010935191033547204298556150870209703977103918561401763005944786812865056064658898942528086943770363697985755460458805122863169500319971452041685023129495852575087182212138216118356021088682741512379278761952562509630626036509036590820859386949423323354860020945158947962476291260719286881981247439656664741002872113712637539053604132093363809021426464835762259143649476935790903420681820517963762543886375258924778809018151013387326461791291400381485573254467677576395983116657872934674990714160837513100612619175678497968791132555079180672063048607056140403874552453763037569066175926281166764698361004910250724338466569184194509539107993261075176935600539803718636658493163839256403954159272560204581884875207571082323647542038103089344061340052198090995035811843390499529209463812941294791215844722401316409372036381998085880772838735110024226229462903145523737278972668537314990226118797033867688350440471027054762984949628545195311487748957932589216819997425136856563594716293855810066710506365998750111340115999627748903615053656118032879390110155202187423645727410541947614149414213726218581363357305199976123397749946776950164527528436050640129475596598048598347578309013496934662444672217288585628017484364211622970624164461058660427949176320060333598411573772282390057179311646397498163702340694901132634126359742049069244792224125665603788395048716612604562278181103797900373652800123198653757359716958095722839487670501784990427729013528542364594002762780678773547699388963748136057426107527366564967460691063187706730281440942121492464702898949987860882281928603687195652758599217790244532318336630189038744430154390022689592784206895881076011760507789947712696591703370102965836919226549931351341675429553458141806086591381235070729161116419886441479297648389637880506735714894980280083864038860382903876443107174750385865041213636438310804433624284133396231515835846053489220475962562808160044939722395838863146756117051253637600940957757101940674075396722649646603145084477382709041680414260585337479076279154662500575446450109045556376585276304185021291793276315802744746599423353643625119373371823403924074325857861993453717830383246543967144445676268124551817715521249678719341140994738818655636969951391259070750546948534645347530605210849669106281708304651996484003391399956614162038539734733299864972231936399832136607187242701358466139092876517297352282087621964590241362643603179420772424979148895806889071331820389048340852821883446114014793220873447856788694995358063773214540517034135564049795551805399219818155109007900550714872863341826881219608250609110675038522719813087203130429123466602978649925415516172300604059087602266115005605880577190878890623119433303857898843035455342372613859123826752657421779786582829113492201047739623998134245823112174744737661975074696728670666655243398737543953248586415365690522277212279183077777625914449412590485077875167592382217194835568135861452183494221403849033124411529027611658466511322233720618888170964713666189287746705235590718431169568656262215705560524782905799393362053234906882995708207875297234372330007284671205505190994394538387942291692920625687003948184113822694034149294854439859964270070297412480421157573472487432986365508346142203014420918678984325977250190834397857516890293784498846628878007457148780587870330404771657610412069656727559493326502754449586110663301569299787129897483769279332110881392944565500362659291803130336864281719386764987660614392090120845159541531201532655659402082099892751088303426979112232496120216346368971889858127000199118357309801530707705053003011707976400708472888054780511259133321081254935129647700033235650496246618702547633249617661003624433357706248877700390836681553433361684757988108663561575888688538384597361975834254074504009534409610621672957853090022560890784293935996255448888655836619308276286559327823589025337821158988708041732924735015795094496538245100934488048526828316202578970954822690798194540422754664649599863694701618500022763091737882764732379694922252621848016290155529750567766540792033157218191339779332182436537095136213881050194890113172359084074279829990059082406049354104036541335745606707048145386441402139810428656456665307396206037225225158676175393024610894899246385634606301496984836827751929136548543257959421353847349089505542151775845852238170901133066382284456235972526296343285737030442986351112679429772711578545688606460695647319663987030217373111147982731256024815566165459208516826805170724052617672631677090516530758062590659935590333011618173371181568944904695878539158500646569209463849043809053216188782939564008272467178720038298927137020988426788221970366992230217928338541405885491147805517991759520797406786921043878313981465588571840727740180255847602189651858235953661758502636202393816772694337179852484283692110667479546693717417678034297426555447053778860724082091552522599451544537973497334319276615058870060183859168782005892452911214669406358509822574662965564077376321172411249574210343527970861529075255266035355686418431087825979631085951457938245316583795510398336033537992312762659374172584224366005084424155794488073408266433578953648609545671236980816917958541524236893463392779531529733683321958670438920154401903645752277321002499644209118804756039126109768856669227786561102542069262450211192344159035837126359804823671942219399179284763854704449795031797924967525554600204150237523835695822244958545402131308862823870094032669308652729556253625726318201756329851054906445217204606130865099392548439986692766838976994587651900891385878025989904722018200953647826189830472693210454491733187338975736011223346356264096419312542866352480007901344075322457995783290429361652710265048037304514705575463412940363455094181537688491908420665171651658372545498112511040968118519313099181709870219812506510969113630067688417502149152612918541319023039029304792496505196478318044663261906765218981551661945107047591335761847402315631088412465692463793418253261151464240697361126654189628669738486057124724094072579416073679310965905432570483687506918198162234445056487774117128043157556097589608266758382849490607461236828332992250459185194717136921806384451402426141681627078383533475171695070887891337676757465814553306432573170100574479044580465357731561374204144345579886613168559639134878945334931177677461196065700552508871543227095974750230291654046449539308348531476829194543649367263638540672054324515547508377139849931549909902216017797396423128695913335550202409767275071991912026762838064391930893732842601495330172307941312148001636670034643373618725774487848761676143121258591240676868318624982453158381518916379111667299595225792590405062438034867487935363926747874268226057597611160800637727248844091450679631743932052609874377257231517100035749152682843774448601826933232879520992902200529282365807565443547309150426918395126684763824670374426480062025008650454600240543661157014066292781587699315420540860104843915658303830301286847419700363391985931786187185662220409790856014900756057447078143224377543111473109986965607462114416627903794160232723983598686033544208735430440933538392993474111356331883531354702101793915020101323585034637633092321167743685495494996856613380862685740674825857119466683560488833667477492727702906533054747800796856880655669979396838903733856244328386774416322339315299329253595270626550746740934645826476301683081600855744763070030610921699493628464226540116538700451764969537809470859350180022713817986854607269725925500440390721905525340237447099133527268419175151887759552198058688889619935371343701128137959497994137471477914287949308952056179000802615459549637695863408438941187849899137649599132687116312186815735098855897474706211151019721374705809478858752407932737561168694722436206447941965826573751405217124692335741738212252691531115086648090113628377586404057422342600566391122659771356717801567390954916291333411602514121702117217615049194538793480748111099980837260678181347568910563750552843575928612497199249566398780432873338404257584768095432724272386869963225519977415303042473227727805720471986299636412520407863106494501246896847927917040262702124816920400867836707408552210850131596020062280752269502792210488407439498052377682772454064844891437979983617179420678673974494356579326416239270337994504504253618456782120914475496151112649077060630431578647493773234085852939878803669787128085819477903079038860705666294239518994539299796375877208557180113215722747268144893163146621765784066299915956535500164688575659119680643945304772346698479412498762564608755011626069880864232602654844246237184362565049983105955745918311124716729020824763743323933601165465721534087039653894092188939583098709618970385323530519019695681641699155524041136361998670453545735253516744173144788842225574510825111233249310752352383388543757089001561337212974311032205883746764709534088618835478012318532240475770408373859760002659857966586290193891309714405810088496736226692182261266992852683566464870119609838209227170497489136654900679961752227743489228369055019008292984163598305484314428457602680363030993383122657167438231260090427472784347332705562347631464087757883841234645202158764203346811705461279475459081532384858600046268634422966175804332170361627074849398590974338382899051682561067753029448652836735319292636687372383714742402846090548902299777413014897139474207451954233771024400425138961605608594585570414698098723214875826795074955611479105252778700541212567950944310242282428981877206418340096130721127484336587964673896851950169483341467782912077549703816848381727203797439419368271047818546927369336663194897070922646156643658547796475315644871044622733040333599098966023994487835302767349474742134175687956247564838772898112825228085445578217340264183386765341902515277005554267940137044209116916902209876353159756294307382581308463614192935281984719512668583585351791214693982331556371214390754582725183794203849759891513521068147968791914109166744976948791259003335585388810624177720485850093904687020454874196392417160869014722039559844888953622974963546405227555858924421105050651385221769783471962876701724375445541535242772230967635425019424303225839290532146777304320917325842549760448650923989278065634039094729713047429141901909240946772821722875697250300368719109012289693958266406373198321053456076475307332804881199802675597351824302022197078005252776231459532445617356002674915242471081986235387505510740483840479195811561742099652060700698822897169385039873964596946873954322362586028026299962442051534925677103474879678014898956507612186918838675073868830856081691035046136231226470438917076962290373734338627422044111859912940743796423219060471393969572806657609245146808210445486979798526220963258690579771700610285203704497389912650272010137222574522324021715682787449699072382286786288908879607276084957965497476791560027295142354479263656865263985906401034482062514604768449043520818401183842096233547971668773168213806507942372766580330169124265104417765702810332881768894581220291409673161833541033774714678905591451167518603074793046251070705739146517645933112603520783868587172311147056461271944699018898050257618104615512216168273361746606118402537467850928084179760072485053244867574717428749339141605639830825570528698379193027062033497997339828824012802900366121776813833637277354780048819072165248100950983514912554060565127762159487963285931638633939374264145433584919950754341624981856813210393802593368863852655535045597869281667229300231418352864213434964823196619642574849249139527315090741664101130988244544207384232335322296981796583890421894024276075444655293685949793427214835543004353805238866102863638405475580510833993122440334619056920178691243866646250355082118113491835343870549645730803031103304719519209384663268644274215887154183732025096209866709020156657924950147496720014272322603678862353803153408803987311457513974765517281078535903436960661161012721724344798306248300413730612507098457837554362335151864070110447226409204465593357013346754808858811889428596837662643638754926239573791529249605052652653081088540277153306014751468767579055549507761955054359475412545383930528830480172540408471719313742218464839006548899472039909907673498509524570931494299193293952006077562267689971539700010837691195858391838089983042312199464965742332913604974723071228522203802003755543381291130039177698564250435151633388685828892496855552549197566212649649015305591797433905648420508419898826680123760621757530876524053360337806139140668702926880839233315674891384043600518651968729053563485849953596125449339571311997089689253731966774641616676752404009527281720975442478851921528177966075933576309632352934348502295218122103526691601592044108416562242877989713623408504525378849404159163707229734260041941798348198220019925559770761920471833617305768943387797710066389528261328570530311458865839513864872528927504636735686440474720365489466808790698680253036423877136200248212552750731720745232958969174592286658412236327748513439782974575496137136492405157501893613045979597941826399467835591469297110262782287792255663999382972780576566477024512165728255730934042299934789968592158781677164606277046123313220311074573723098934826011693509530247751646107937108315487671838582564500987790576505385578747409091397781597453734765412531458564927457118838433123122866142172476914855571552282415009836107828623553376053638538390460369106828113184476272008487285246842896704437849954391446346072861281401065058238440564470963723935232815051206575559469512071218659131560537686684215868942584362143910822541814707372581636943203175223263059176969002960884042389822267817528357503422561793455372492977760520273634646422504686645369458211872585145733439924537952781676432044797410600634181295409464683806140864801074564130031668538533085418883926382923351575576415026900228905035416396542093913052443225075384414284939671174654567063719977137909679148409119258363484463158643882843362590798280361640397035870238176271889920240800613519266327927470166816593160078654901799002560164822703302374148964128833061079665234417484660418117794639159902432861364537950746253243724716737118241607698355515177860713187636936114143251796735394581148814377815336422202588332119574559600976481211206823512779191609877947883648652242178437559726871361208481406916319776114923305273814848175097871517429897506746112742072029242759625867852760840781755331744105352986728575573142846945961772029661670741051331647935496501188373504726145046896835103512948924294950197888992664460562400187784008360446802902705613829139904587633966588582050174920713753037794621631291246125198406602670532204827683565756249137415129142556281406613621982537913263957382788321729704325725503905204009331683039782780300549421569136029092828558076019818180781025267874973846636769726207497789090226250513366267768315842418739275060510091260345270878682579380285044938194184219144058676565422701211909166990820936905634116319418256811438690853728850370210742701247179493644451208794461858824695724919601128539952016344583035117102247483376232526994300913995526887508424177854897171428740635610128523844356144523968426193931180943290201708124807792054759031225684288553713792329981386537362146582217551315772106428543254827144360738980594612451347032963134097799481823103625070484650516835357044609423393720877844930928507053552423691563593344116379567691660513182657124385404004667066876248897085240710185754296858396548486212100471581586976596535845996483574890603478379717181558214065124202977047226761343303976403895761176475941532344821473595040040672216609377778390630375850073559873141518601548720936148602993483915361202261679393731956210099090752053153221407565192797990140130697512674464328170094363686778102551081102700052811597919868048753184622506983841552159916775429311911626498339526030180560398738832338969712378661665093288617436583852935432921779918101482279361541672884141532992526372154808769112351783537215688891471403461826989267134466589964154860860291931386931554131223074386878223264217600171585638513377814567715222496828172079371525756543385780535133896155303703826255911413264538237023137034455199459180761821929311001157933669001747646810955285096947491920714004085497018392784246724058109948239187410742295215599303359348535699450418816039750474407955568259226935392413409879232786019301492545758730458553525521580962026224872851475521230831867880558039643717794328775298575870054353812789915996491446215464243490017511437277332670677618526557019491247422639533232135334675203136949445215878924804708851348587806454860008677260381292354336011254396383572856779221396568244080359742376586805257954897750019905424465590560277473645737087745182571096836148108955115625363068600988364485299009171629143918537629858451992847049676869408697759746854290925282675721576093569943774227662737035700093869353875686384688003105049996405038462841742120975167919476874383784128257788115672274856892975945457108529353337848309907673718415581622043185163667184767920369200096685691822754700673564845010984757352156695031222255203563816303021142491761675164530616743118582539870939335672853629454031028034177721024909434474258898411215456982329445646794031419539619295744616106800911883874105888795692629042450653294355986715854872062710478634429271757681280387796928550183049232129368932526080740815719914183655431666710426721821006915184936273962273385352036741483601582765682854867808781965109188798800264159513520159115731336780373280197409434986348144392128167732508779413306029991396396222915311914396382340518411147036309081181795111020668977235355447439075086269821172484645882648284742253782017887957235887169218877941000217491074615665901981833930355637569476296189599792507121238110535543056260048158683139293537201822065252227700645519341215773230407041090876929748564829224678206286470976103437450512468055222618684797946666758004603859734991869035565506989641448664516732557449887290662223682722193222628146770938921381694233889594895162303435633231227790602215142530553743364886640957555368950571060246989870003799174418965397980885032009352566194402541931607936641085626389131239417142656249703450308575553474349809213786576468262130589374268707724508530570035118119724326907272225556466377180260927174327017553320044447828613915310498332252322879965705460702008912682134930303949422308818151894674446442391986211249775933574429914671765647324737255154070615532990158441033670934116818454292721157209095105693582193064289760486461065108479282127111257801135792576455910673487684364319553240794573996839127398097100719301958567953763985612842870818460585371682227265396419308184465269675684187169600495071042695117584378162325514955746657607527654908732350378063903037080923731952951038458374520988185917956310239123412814999500187202775389081013440579454446930719001997150592895360447745350184097520894000568391297602237514552521081794415360255966923288143267933846068638785129813044948107950826981708626392397344388074559536170727309095241755192097319792129534662123445969087634509522528471350614896322898688056869930912836922436467966937351663405276476718329769494241684387247790572469028628954909165667321502676332547398358312682563333941291550788536038698898631492058589428288240091419332068429388644889024617212886661692645610665844126268965129020065337529146784417422760723575208728944368017872044099813457172794095796905865753147502792979086185647089276992865718242386849873966036409033369052103675035314178193754022422910930289985797334695368660488950124891736061429999219813162572895153614287731025472943385206809987659668559731290111314619563285171309851079602871516620632882421601492675622608094486103883252369361364457540079799027256939046953891743626527253977381370456590837272822349632329205964090431338734827854135572913695180428050361901063728543417571111272105571363656749396005864154646621314459173517276312768425649577045282770452670437130307199945931496524063662439425791526174546724257858332558426668220451315171781711136561007163879760187828972026824924643761534540980849067523295732945695522987881112250124009342739216702785108172836629916925656383743510080945429442765124334226977129799486899204248934615588566153214851978896586605944463224645779495822677219578732881206001952629584714668468768608599581918564722174477458820323100402394106844135218338528785246493169255793663360068592968582946667859036044769640749373774192500282136033205680538912770827933594896341439199355504198390006154911595681388334434641180755328367033953646457102614601912722543535347079049097515299092292213178207054215514021836989603596353342874534268006285315350053447470419456265705472495331622592426014387750027920194369040241438405568479700970191903218889353123348019201951789122004912080213310092844142562890189845409281466031247985871401169452282202998355008202333238707942610277871090014053756381437904441921707650553138334836755284070008185921969211408478426472720771297572099465249909211770027937209046905392036995604680829010718829839873103120282785864325536262810214351864967224370646456487192211586992745205081783859748763265456585561484956769841352514197703320679815099131812791754479118140781186960086856379504505788794591353458272373241058502499048382209128859702927587695538443476199158181524474259960755944024216460074811000701260937986133332971403383789845789374105368368672222651560759188610745498567931092421196273754987707014544132418488210134162672973304005253397067240135856560598794160953437552779673104355240587824702547608970988094377880972429982840808790334416647149155803965880691945100270355341881626485691401083054891236306546929033842037183573466035639903369970397723402168115327929831813458064309022028218841440966287172522843513843144525787165343835069919339099570618372711211545565180178702247568679723286730228201954270339688600465989015095862830851396145961460066609179688705161409908083829201765755221081940083074972179924899417815583698894829322040009885111902471909438213451703325714414576944252816788484538669684480048424342891229293121928411099830768054873185440038259230869047013760514683745892742782034384214270857366623015752873813912597040069172024876663633755710259133617788569849522793933874329862368113282484163673389750015001424825496949002064049053086499388682151246264602313567194115474749009234490029508261513749347354103267203969760428468841798740577929270105983449182381833334339071770517744377500499536849216137249851208070744166397285775878332583060781424201256718841855158924684353293293207176867722705256893415817027745081872681614126085077669235638582184981892024165558162969944436558355760873566705986860079822604815946678680457890931555014879055704836382707326140490350784989947808203330291603948572135591081276195098013852740184890877452878033144340702219824754728629876726210833957072100108748981358847834536112826624086102688273764581089803674229926311834107198184861362900394205962941648962281106309196399756490255473902178284931941351599803720311352934796027252672936342932394779797742019628805344112440886929777534703646252055948482369003069763165770604379038730024028889594942493107209439510248064990347244280452500417747167184046351550494094596786275787253113035344315319275771186576306993042554865293076665296389367082953867521354681219521751275983613428000874235333965398138499255785664926949883572732691862271981070349078710176655238275089600835115534074545093880359655873029549573026976822874169777570776156747740281981253456785614494889515623806069755653537925478451529584801447177310814705381623588136201536685516469463702626291654016752275870284209675488627657297495538267761784597033419821112063137069589620121106088430673257866155404741095097353164167116452207083826536653785198400910771006956940947776395329144959692678724022045291428930840038095545938399929226677911749163040493817204572276853772950733267194756595467167523984238218178395388079359697347660595007912890021700403547062440971027936790845850814447535153818423652832508360221192848037406244100195174716654535920503811634807759334229270645239259238558479663986048526564633764646481807654179639014040883772553908331654268556398972452194204407147523090122866374272888553738213556451857489427177195891807500601301781528887093448750205356153278049156443744642804976932069730685228797269026526502012723363471764674550792246448185958923044224116499842189897469556888761960581007637592190008065410853610242683041748751576346576926764283798032914662528088058368391136917751105708418165093165777993342841529306255435292364301199740653514302050531928771701012121595431146064482308436341700024876830199695925231746285881940355626868877406260349529451591862910197255687689933773648668264095068845747662108230158506911073693976961875372465710233794392946242500985123610391963079635972018280891082152083568042530078241075467560581512429695006162753615813470446291501024854425604849136017031584826136191334411387197899862473259053371921665515372782572595267846197172562220082836580305660128649933620616187299170816259969142389738258940430971373491294471204132765266243001832753223044692342122807640285177090502404361371338828612261370646418818387144476999651708402943197232205314271745020705980770650282515926764571953810016844017487942162203003187742945674291877401948415007106326278540924162801133302181152180700096984155658258316428818997007377026853180879847953291985959301671879653621392460285352978712099030712766766586005546700908771395765165010327983072377172374141058710799940546028396412763200939030871374463221099171581674051780432571030044528382171303664840046826773159203291557306301185486228278949356228311266622510948385490781164556036198210868927682503284573360718198516873579851994299320810720665970298752353377232342293868096150445434322520708956315868137643084182947508407058736561126342310781239226938502416436333593522288377876783871785805331137629079628050763860743330355642812230186595155117130164192922976686356579506288338029771741450024604539715733231192521649775284859218835192480895296508321172971106515944486512308846812557446047664769009379021683552582167219311391482707145224148045579847187923070233473753622579013279755756636625917113418679861723095080344914157235068154192894457259056107280781446489924684449228123666662322470862494321023158557405082731701468332466643480270387530690291082815787501579957223274619565711777168459197548049594855476654118884496203471365620995825569534157906093729050736806319188232725147949718264043324722766984514586429787024015211310278424368914777482277452872887309669150924806607895178482572177103049270536639797146040823010269285463334751115732524339510304231384350043356577760479879041735578049173583761646371152150137245426068288317283504634944847418084752858663992744127974635439579106279591804223329400862915563509945041046658202487586720657587254483456196169565167241923393368598036012568068329081325519647221976586396259684022132585490556161528096302627565344321705892542059238566880157865270955815668322491784544384663150813453888759432426721009957271018429625583998653622590318457787898812615693508638513733381575784068491059994730644015513776347379323526762834045047760454416344048866205748967614576609135863865543352702897346089970905289119783793966326194391664150543470412139513419297473275864936260082268318805892783808473034799641102913686736763949812091548582033285113448615571726508145890967144944129721796471804445257807471087273226347368199946725165958993024737471812966838400327989263827885165507478281062093753022966559449755864594146472787719199309476649139392752447624966966309728254743101427034618050899124472327900850709228531263372871147800979767490442993814631910088779957538514990425647999686118985107617742245735567923385475430970353443602051212568028977774770662723016346040355759727711845574269556425408987173246945402511436764027934491166941651472690125685763978944095843574915629238266348345249663518674582166832519857915066399050756196896635879441676324019262419198309856793846978369237092381918597468246851302461124066623130979443263311282918884586221338507733715961016709204011372432948710885546445951813318991044449039391641480496674380593819596706422422903326670522855049289499262402167152695007062950088041355228823728156375123338401275799180619981396860196274422463604941445973410872088400812793845581445359075866804960928998116245944835496120629433866212245366254324186867499120431097774468792841100627676514682188542754722648428545312687874376660441378205163187901926827614492255381097156451493917898045373848000782347465872024392359601713933842638893941778484151138189313368311726687430669982631288724997860387578384446063280301332741247698247285763839811290702387759792013633463404858006627084600675928177809490718772886149864593809673556107242100620421651095488969118640260712347892728231929959141427583142050052070287601201822295401794458642670597481162397707200699332243782011101074086459370447793546442664285879368814004083934790320806325959039241413105370768980419234097395861359662629726755027358864674404449453049643015565805863009930196936727101377117715310470391536500088901780645522172729033722784116039529130410793982797047541919932418510198599643193684411339831339645367314740065557291888447554678279679506579677259804658563104988753445995438517721748799513464276340659265942916377317496604306023582684995703282866489305594240896599980106222658462704843924133868737975766928005355591133360447275621030128145198239669603720517505637810594523523423623014955806118787231516971445037782235201145795496417642712622179929224621365176014137480347187200992532274419974063950059579240013074825209410108328259432392300985735990428916247756368264126234863674387632115140571231898584553459619324566294193648156321825485756996489369040381580307410148422185943800521961967480406832394333456322676327646673798390043321504987265155767306909689011451394641085233046800052449214231423744429834795283170937527205474769211745391687666995429081677072029906256708769256133940956135695285453597988514244671077090932881776573512102546489663562295760732929492571230836777351536540454756003713481888359087547266328885229892218628388791960418822950856287522389928141507521425708171421390557768682356448970524002352524136749981952226081682177435698402753918188954700562989548845633059329828577474881009344561946851730158324174933604441110571405879364914606671300842302352238350240872167240581665185678430008582537163963426073609654321714487240817199544553830212009815783737950678918532257726543944547140460623366805364421704421478848526042756311777630443220743856875365896216195764472133729805580473541422429812273552507125205198162301300043408740677940140296269143046368251482251939051349356224539960629997373660458740877482735402050299973097725032118203444460677944423352612802965905042346481716760338036853632691782903158810138783657894056517097132402277962284154747402447249845717357631078440841537193635879958712188511122214741196995766134754409507055674180180198700338411100852714000094898660917336969946493530732901026058768825599837910835980765849028199912436881932944134663365322491770710145107070129332731134753049026854928273134357024661705022570700619123729617827756159388374061431954101897937289961220636295843633692484607965770524693065554844336361336707346441765935275598189190694271425413078093792515391249141638776852876315274679123252234610806885673036390798231548482149708482358993654991515727633191707363507936205924658207574152277947040862004665622536012586091252498066273710577692055983870151967980119038147947168641783977459100789331666597730215575904843996288898555127411697825783960159962779281252821498630209040067745946805731474249925339597878731961722477166169840151983412292775320342353865936647005959284563925054840254491298762376018420259699573538133385089096868701754962527179318382353841802292822745113914311158143961194453813468480214920931268247691861270653263913476936793786048747734144726750938572308231689628692275133904160304763751601472339388200236862284565034987095203814107928654412065594537477571929636422644222505685326371753161628553004826776371891579038544905177501482369152788451295599542154640884726024677570402808870479451183948303426166096906133510558634032197862938732875913193019653509385455931403574331609280281116852393097286374884250977131341634558412164357337652822884588264020783867572130673062926294952136618904954647102474602820076700782282576046705590302552366825402684946152651639702833956308261864351425921761480588628955630564463561208877289711818461598650301816839089131925667569213428278727113928453158957690715622517699980227115181118891359479222275838972680576349165327779134354236600760622450668791824202672752955673918373515208921134057451338652076060555345669030448844811993253873334935231354165371095717798440576971354831954391946427298619545396660244266896913734588504524686472973280957092233659459345051021211554255974952632931308370643199850528248562423293518083845910222822402227522802968408498738568813686795761688715001880851330690347607989792722524488777439945018768987566128030669072979409047944253397941740598658298939531976433274163907358239831619812158630948512850947369868910346957866405105619589427571302285703094465410742389916604006221312620291876984237982453279332118694043957721344698380724327457765483440341026106827634941920651095107119443749177564453331988983220066133886745786648965429863719295414464723843472422176615079588544593460856512584428112861917506099344449905367358239802106932458438109870613082274797398404043495881008892914782387535139792098674829940603923237164450075210774982673866656429161206357493222865946530009355856397934737574033926093172177120709222976407538996670812910129714054824202525680110884244572839092869473553596402055374848175684445833923724177842168741349258524823478597812940772895256696061760638532527117405019081668213042462335861362479040464293072613465593459819482122279699140365514487694443462721920845420743111243491049912199104177016884133246898665654753761519965856692805517936808060467943853807513026643563978453655152102911671445895935114678720362521094674094351067062863470229677709355332920208164344449647650233789006816432929321209531459650322565525498535839636438352510205161859615609875157191372418295522279982526433844108535480096102830374622423521535354932433728323656757737225191641572097651823666738396504865535887205354503109515607692540753671906496779234633070880088704203815993187123938747902730536597416669664467163432499855456879333763231225025412037085733506217114069445951671642906300614459483555747077620478461729697699228819363032273749676319398449626315663501996467413546275681834760194684799733384659214685741788577360395834962336593849263084736966032967516073106567120963728488680480519062408620868415237391055556615261322938463626503758958536960676710782018526439526400098832968874284591213174104259391929221905228200519753717085637153466903272572158274251247756147829280993464576519559933838526808116337856843176867127606539477536776076509353604722390823607274388895236579860721915767826176904182549519734066583081698112594150999717959933708473893516096462058753538754410304994018548030942103147863624331394138202706402262005076423696490669936418263272255836586359468810754343168149441233029723116610137405339181522233900081811112720372728456053329443337147575691546525010712821119158593172872696020381421632896857234720542709645987650769531822622756588903816972728061415564604721355767780002518865288862518020624618690512896179570945383973044964731314561315291710433775764355652534883834900075938040254861297382970684042565022566258220229302510045099033471010185625805596721048310375418027977049003656776547166164388952213389428174874708939238061267509815031456025558883339833492403391169228119534479187635973747454435632469762309762553122688945767582610456153889769452806616396232341391456850204149251067985733020306796449494781045632946979248389863660115865987460587449720450025702505405151685750616634900856453687417002237316716060009874813142217517913401382438927978898580677822389313351973925009431327469693962218904118049058112653976604919819350609041688946856455437115823253327051844213030139206913633988345336559783541633825811089001706491212492600803007531194220292499265657483573796396418367670772855181865589407623954919365935595529549118321928294887515158727994463454531859632969597751313252209937128751096252307448666719091425676202909972725797350562119568771575863809961631307877528586065950253936763412187874089507320280490924767010062015724872128863076243210447107211367888599596470944415215164690773025373690216879205872405942836059973672416678487138309193470555821073221681501089439034146371037893670656992557761061183698455196403444490651878963611546369149661395952943553106428524276630977527947622030238610446933011856765568470665248409220191324049689174940565480833206871492050698778206675240148049679113877345131995459485304802354140866066313814430249789327989231044424557618216343550313678072178705370793577563322144711715062393513383926844216682046197097410019260408720367713999359657305100894920694925499204019382151144979967073983456606321024433472741561237643706422603326493052741259163607155395908914840873974009242617050315640824470068042965171029649591432772299397747814412934350692651773960298408221886267099419785182401319019667820886645885175429423839460726975596055473592163124199860139445351766754107813671216114442915849218902461871999069917183674385086481309863627224771157930959818379001316197440427601907450516620248826689303584717380431616747812199429329330094442995776731539691920061480650947663755052872693027839780506992422388409496576578482306121176127768197810799301311337660553519761166372780503226498847073495378117612328198411748697592010130474809330846853440538699822823850432231104752206909323781302279539035128508613288027730859704264487968920762527625846936774619821252946090920267425058262398589595436065549862793643971726477409884383563637826071755664804915080899400633723473246686133451124082271140731627045233451643789601581002362630775103968344165213412849884857099895653231804352581158134766456988654301474664955143111271380738187229350631337514417730779643872034198258632060098939994040508159944759529131014585575176555366293796211461557170888982506799435162834386430014241988586904164802907621614112893927033846831382495686095609388667080036438036171140454119049982073121652265043415934434733134978652504911920945636477122191770816144067838008107268865531669185367648437553602994047533199497071638689144795450034596025243467775593061830664633159380798334227594703062651092579633157129625643894294960866898279149539211320317242813502855631037242953367994829169640511287293361378813400018407224659339711938014299606027337671815024531228179035201126955496726091965514147738528632036619181705794714741810512362888123232129769257909765265795243711579111963333212732496607624019546554957934370999152154700615335743894544184584380424108420236802750372832866464108192504920192722678035634341198547386117406608264304729034876698751152131401114599595423782644160437545532590254466429106791902916102723778256810798092285535716614176449300762158183813109022151602013986195437733538471552339873946844897956867854083385004095219035171545555906206246336494195633863183946598322351938842937193862232739574126441343582246332787359856173957570928607720059683478958906629962149214004650178405123872288089219619453456940077921819775981723589825358897426703625628137806340601647819534454314023630408514850840599065164778011885335054211899431548628668480103294826372948480788430689745607379774526027891018347202073020067269266567362754799729685174630566041348448611881511960272717360532394740483628093718577977794232069813851116974950185498089166107532619417356804241351972857974534954077678108129900425146850915813795860261728116932304731329496902746100721025799572477425179856336498354856062911737862807762467278236941480653537341335984974970926933514070571935666632533164144008985877701330483214669317026903627856637511691594784126760964244332363510285116750314727997165421720782727645572807524806351642011260271539939073508937447296513550938155473072279891957703983890141615059669771331767015056979515265483577632303993505855555237054740768264552592552272988262251992107375735397726989172431824878717742609667465057808331000460250735291207738692554234978954641057435275385566545566884759328372484523616467048551175749917978813258531596939616462665565781764641677224036084914768440071555991247570171816769638994420121446689052735626999458366744065842651658345216440011043656955958433763959996579752871303939504572552324541875682583458657027316698020363222732152775780376970814325544872825884087392245975837504798572358590496583426831899081434256346021214689875954012993388090132689410933367585688655061981212848634352301311535094488888098859714490718083597838390516227722261684616354570702517542680231194703740997006827917810225032053206283162745345251144586127362709301433045904013888540368072519221708126435173012038532120187330007314360385842626012833987227863560189038155506114778409705182422997065466290713013094510429107706284716337694535897419212906970736035142609746293476567082131378642231138412268781880249631280223318418438995488790186920723607053188387701574049466181727831622491363554454897660376675973063561950870697453087814579740127741389330338790589330988441113787553032462665253013355012695229561980362247737383193526235639062928710041902024332510931657985320038582291871292768109811914901393761358440560404542352257631489009836282152261274232379357871719151812612333334123906918560623035987376994377522775819920051030512929863255405665877031456990178082453966418638454058671738501111269822370502677703309915770506035516034212812562104583378385505289279906709795762011611062670557446239875327664077742125987267496618095377988173907994754072428554681445914940962604396348871400736808096861318373581721492397257953882911843120294728945408483220740965362642114838188175195861330429223173756652613513304940618945550203706936037781794129643254403618677943042571938920920340169235351633789211601565410161095243622234754684544045315416750267312948089134333855702383099175949308023006085825422761704026119633816585798088227702433688741117475168821300540044716719208960345164196464722780295565631549230440420135101342307337941094422412142502126195970097875447043978847572645756372759693010975928377521233141901253378239629189372439344453557142551368847731807197912302660561294875044451843784851710182091554651953815217760607767187231516901470430488119648385120812510342740655590889690339781464209009930942457541938673175710480127473455711314672623286820765573072704393025215936396951054938108170245936203825500383675515398157872718996418803922016550119361232129578880582785902547626084925099599173488612365416650457528866144082111950733711448713058525647490504279390846083077549518266230474576500478247338365355649837217789980467387163801321093177853291791737345655525568776368173986900641852805492242379317032469651080173854296822917659429990463006556975049732963481242542328740213498856298198742765802876261477027574539947215089921821458109106506576863940603133193851821434265059153494390398674014562213453550744642982360862072037239841678998820695155037726427034418811033415626409992828080314651609400237808332133534763748546940529678318381290386909592424664039466479515160681406721654622777528573358803831312034093217895739941806863051303475326079202389718368547360870949986993845007915934562273443748099967053342904308850205153003346356993147130634100702083931262219570187934514377634407199739411613474896071113233902860124233800642762874031535672209874154967214555634058821895829215071166814432146374573470461135526330687520563539319752572570857702141317025345131481878932482994410465297911681784304322364578077428585895247056203896166651494632410982470994081896163917324452317522002612802893341836434773737984842970367700485322099807634401988719970340304685336777851115089124430727353707376976815472492097476378200941484306788178411606495757082617089927508422698937172153883957340701731937542667448039525557599191725170785384885241498544387425613211832032921388515252493141967809202424527111815251147088519544261890711463996017505780638433106463482576799675026479343868261128072760908664852203154885947410597207338653293854462596294687772242669675644978056104976514315619588321991202641448640174094954994243818251976615188614153601064496375280609101263184264106194864818651688111109771835643418819142285798982616055037536679309213174416107958067632869582741812936989024729780587288514595073674194427249173015454966847655876085250252179987148507356158816539517144395403457260640403048774654833111772767736552838005316958159221070112714247721047975357444146990751203112586521352108773448822799215981395923235547989517782585902699381329169097581923467188060138442022269502700841258073995544617925399235709958164478874109103936668131175222670138767543813595871484986834986228100119130770033395057820013407459574734506571487662150789588991318933036061059721328728046914000616591063489546374949128705762801304626826695190848533317962235247052331764451587788661435999325047261122855762832008704334059684219678972082818932478423348065968836694610427080164421545340703933193189415204807001628492114635973652638926816904295204841780188032398070732013179845074709725208573638513384390097914382792606654399509565421336999950472995619903208760950617054866032050848243760316365077271262588888855803762494636821395826277733876665488128858364890378105603786536705974669615183068917809802642078395145495286471124059613605939663111560843985382734142342737087804959106141251441019276016640497791194513350424475647808331323747278893568753520893531891339380409655963544706396284747205115731742816109399291063011624622863318235526064223452213854069923635845143544593401137679674064178338439944833671835723461602139873173996333339760589870738731290400051556498084118980135993151852634759042849449430377462004945877867478022695369588488482581054867069116256770768624255371303736343607611475009129040334803085760629117239457186096956435787840973430220021730948614252430918593661842889272883719192808159595807148208328820283989290395811163242221633211238720957786463464721632835175494318582697226465546621342136969973319537070061097281667791711478752425735664831278811564168465363359767778931514687042973457123282819251175508041610952059218289621081966391092027386826546243342091428184954413338188573188547247013817565917853980124270958138497673267525321950166718962055565473918458006124925522826365564135931344611465594617197581534198621641792764824869350351223672087339457200841210400362565219335229679047809687435205003513569447065479847060818559064583902279426568794117522597440936225927836699912479139437623413759489828632708628519896212610383146621189758569447586528090713209253716841551306420250556055602742719133770479062063027097124542245002889968367095141417908011805712998203061277030448158108668768855045197570693671608680406893714949756566529176689557828983512479722986552185472514519831858814027104753227574405817925574984342532625080484165449280671077002288919915255512411378320725989458390787743077866738271133849017212499543439179734999512595110554048582732777260278199415351191594851595618897813375096331224078619649532465238404077803212052137445113464996038376695464377776167370300785793315973078164734989269404525928763259888961274573696864706456352321325131839160497147585704841067555800040422311998766451802607999785393887372556086856730995139253171480251896512296502352085462304128424767468101254530890591316084736813588948343058978406959811937851780356044477933761106244114407688816506831837690914431844446111536706988432275152873313427246242851579583176641395802169803160400126242004434934539792384260059993755061756491044152733422791252958170287938123455853163739830772476532583136978797491814586806678882036977239866054204905423782916089552255747185091640528202067625387074629128619658314386970864461916018878770223276033316302707688666932721870507459609336708913030128016385954780500847191770190748166612655681808623816880705515580176092843494936669308348330675013999052811687575701969000420828195104213580348305697805718656775676737308765927570392903510787818076346055668976749005216076453123146656455569806278601484098433987295213855766264922066813276702807251419358576717782779760178295238462204061077950960169186258093475498398334652976419429781106673226550780139757460780651394389841822349878211022195394352144885960260428678149306198128540629739845685519561402952043346813122166421371997450598917393062219743817476494614807020662600997160999624977782777232851671140300168601436719017595613918824177785144577631156576624490151540748691348709652030264449756102409714499415699683168677396658506525973351244966067835312246127505103682719674995484373837346054582611762851428373027557366941597418809425007248936726994340333218758902018176831840681045945791715571170645110980788791112210278481754341782468235030500132977830210269323484027025546766073378679530802156906858159690800230489790361075202573035688151156334468549574167901785116225599367628501585604258513129279796928626719023049492349737694768679573663333534749220203607107232486771703910203446440209961967189338089829314282989008401806657121543130303122504641284787368603517224048315755271304207756406349255237521742256989496480326097517404015849728162358256759028338120295939620317775164938448952548049676734459766916124683902556328993710881301179036851855506096914741098765345470453793992263626879163797499722927690894580666105507394486460883454147983730822561349085529679692578413770358432775797998385233384125079425323134974983746111989570134712098019574805820101675132756322607682794693862461724766467454397546032928160805945241170560239348133461522809319570745364990752228500944978862871885159813493615337416875057422204716649887040007638720300987353275585155233736211831487604048625624701385829024055077649754368823244296888416337578785622760735794397468006591058354011485134166412429038473718224727555565238294514138841212870225667852248545479583534740741795963644325460942752767403886631556007687562517068581698807177622204660067784376282086348909835084168533846165974132469646996418125132335006257001081857280260195918216784997358925026353133196624166052170727187276825839334836779510065566223014960328728305353089513163601772792861446450067047865583021954362421083597732251794134818022026705721823290335031780024196200055941274886103182347242827685628333024501506393508474273268565519415090984139928773047221260943470313309561065445220511091721020653543290176435198834814219563259814188748303108050500615207760185893548507163639370289736449056110777342755412180269568231334531889882949586454095987919782006445796208408693201670630339007488993682647133344034241457797485960335575538397176247046947643161287269880804426487584768432237277982395789184516237758096413002333277646216724494095286446851716941852455215032404481366709151894594577800205774676416999573714824805222524117690933866747058644808735784835648650722858689374310026787757560663352268871180682037977127678796506889986754309317183581656274188444223298083390956617378433954217157289248102503973236862206174011683063048701496509854780002389565602046726416521457040377548404924510169199624438783369825367421716850165094314086789455496806845442127176237026335059631378640683767557440315209896246181656836866582492721696260290070031575266107075182579857535591092834281279402749046748873039168837322678983187555683508557168276960293536978367842338914930394295603918809606041751098027854464279249599455801783601802151548212828908616506995973235275705869323205897733385380839876343623326567508646379804270294922767500752872258382183837247924018930992882648442663773404822185119437982898508106583000824361049316706937914870490817145480886234410555063316655168381741293504817896723278283269151857430091494450231025188911138611404095703719954664737952674182686995388792714575769744197544917179015420588867996366728578598012006274144879828882442408762382404333865021974829022535696452306700882752018274009668041229064736536140922001462282022179570302044324955325548333535815519746085487271027497018281407463481692613633954886682373449527627572405244424139382489232714018013414994571286023177986137308280415743938386129935220462042391581754200477129455296020206712092607851683879600423960849366684774071327814529069152268781930086283207046303862242509386130890804339777436600588003204496772541417042275076173752374965216718613721980175666139045142919691723296558733213882239442391357358563870103135021617283736506046814938525618845859675004910943666021568492458838464448616089405839421389821180413031516177675173109887217216526442715683619248825495190680189441791941605058356657692578493149679657000179461923503791482976751958544640351513630972872742022370181727657273503810846303981320450867423178219682143369231865540353508760170388233113852478300182164580454270465639754977061329060764710278552849512837764457682110419317911829065745412937234911371091561186087700180569518596131744120388532872009526084343938417789173729236984333271150277321361303226088317646049141134173799438924105511141541339872452062570214909684020819620490915935966320602245898644459648781270944613468333745266255332188090662081912355125997605218370818165696856739146260931355365329505968584554381204817117351069554908869065334761715215713560813142263142146246811652038125896145732541388230643379867009934977629090743203784066362615140793541216587336286365126793803596085676117518758002678411971338718419979303386084758786459537282559697953201209935808102225277889107439227680397709776622082244123122987780758433559380653176868548617778533110215794765190800872509339128827603229560010244666483152979979668050075583971200006356827988422010995032698650594871667688263362366713031543635567628944763629769183914695648009319258150720775616080444258950954573806762103061391169809477998725119626226025453513222095956255880364531231628094949991815442758296779106219617351620095388729736945078308810580866506754615883937340724232387359834999023209757131083696997120652954421679117093693525784555325598813878197529884359442748123509846162698706501735425694816953882036574778537421466770540784765858513657547708801916547740158228720787350781302992947050059730417134610880572461889766860453111292205287431088499774556595500805325077245125752662275672596353842971166383884708687407215669417078201464799794902763952925798982562380673902798207957016382174478609070935006047870397249702682186907109573046431514903361680077140427717785734022938320609637459121506541905841482383432441119317189716426861850107526271496583743808730883820239490012011932315278222504643661938178506237341225200174430416645301774587514443991477690616260685761050738739269694791575431514372084867931869892452186237563466237069631722311196612048515776074331374352277016300015530383411264000443974043246265001692435073563899641848547778779112063391683938658873859774414964956238420510239408607003654572735903328243898527045325649786965852900152628404619967607029469728217383953445611365887009331129029861544105274083229519593693561795786864373343351834538812911446007651721121796332908009063830138836289724573228036410326167143839219178043817166568627304992029305699896466199499872822565142429102485675242769054768905339477131447714173581911240566053619214602759838140294040353008537341209644606818729840767374458451963426350156183051877496800629657538099049390601437768317390797811721650050275571559008973796675960576789167012670012193120430781060691674278345173525318864465454765219168987899342472480224632022493496663761525771567534819363506881181191486923326420565059792460058172358702687142234029145517895142523634946030740619854095587129523535801714475370298934310403740141324386238164050526068830860866241084489392150657019194186989872031349821613798929073474873525678394733337067642244572599301537312249596558562329799835788471554678576150997916773026812599872991329518348049610032264056028694109171003228291016903497456118784790181969015439791211084613957191066296499354579466923028091688702844025692642946976627325142802420639869915485035894663837545622541962177239197042338142386433869068553646397585926326954294004334501572420696792037530858992481669368622558476977792579194988151533106802337915459164690762140206451168540518723041562550145153635210584005578000439542753727931110306808624967129328924782919477326456887641437293540107295834305700412037450050725449746330556601324656952629871402939211011519278782705222413608577299468509973306912334257246817795299753020559741001753550228461253685412530432276954125038651638680031272780638332865081330414003132520193487672642992704807929110657102571723748493878354191192822650132702314480413474633779378740886662973770669568683283906528071799218079740941478078102882121628536295409380475315085265293205712316405149282582723819484277296086757728905217084635225814745569031803544588706240525191517996222557834736201120774079975267389917986635775755362385886425544267927409741839558284059373160553592789901677666478705064006656703504977999728982204653877250411875496745152038322689101041868448872075510127573974709380405560447044499040701253439535551677728528026575639612633835391943497821419667893547094097941560802245249337714037755301919746153538466239970332305764910461454760330369935435841283654202399981179624103849808448736863595928295459264137057824292863471851156802893586281387198031439050605276426008530667477276590055497131369707287726942035369732545185612802163020127887169966415667103062146914707696135448265996099310780754627439216950393028694314311525696595414750792094046159053853825116660354990543879274464757196966035205416067655367106107944185351517130955100531461284089660191093578441087965411420920103717169201416016423103418820342074601594781529199114477959452367161819987991561176471292522484167701066042180336355711327629712296331569375439409216782174702372729261712528473029614755762271380540593073075069984087202909867185193272839758091530817551739155393431251763977987447488969671878481524563505515594759471509406764443324115959471458112785875012948857319525963254334738679688351628912350071524850865188101140394642380573531300765516008129964966009895546257902968220756345409180994395674618894132215580040592703664980265516470419684534869866851221650983928277149375418703000411002314655059439060244742292587926968795823542798978695892291651521162686363228726194846819669303264657084762905162836293099427686255070102366234205960145482876495457036256469235232363194273883300351721976962305616072484676955696623448608638680921711065242027460282392621773934499953570867245413702475091470418511567017169839744123458308152465720842109029729063374457235490844893002056894933882714920186946457262418595727535163514409716719198264242606795534660186254597288451344934348958341027508064675510982949816501428865503457978003143551619375433328338609382749309705200703717258677720586752761896208059690393886919793462371291553794509693358467872681862530190857391098615215229098983727282055923872418765148870789561939170269533128715502927890714717649865793466709221747564574394082332386673061492431907293493372918488005326009771082112216655071308941702851273811535662671268315605218519791644717575174951212745867812992015843943733465631169778911928229587466945480837382249133496733626330540909604401470283820281188506679512946965313277246356011366698746403334573464480766361078316212621606338228056711206535563840408306941845454732883709293425474861897946262396876781565286992546303346956661369030931695653972244640376692085198882182861472124773721202792552037154851323665492176442452946028732800457459629448567401186954617568050777873863346827097176884403431401750550853064742039412805872670131408328194607302454391837991878536410873456287805347046301402959835115008831918913996147784830026972202853761330129756535958355773083104378483869493672848435964396750355138517742874691552276609014116232189382117299193251547685689863465433422563612608970959848834059523690476634936986744292207937599627802771406734805571694256629782627364628091619515472811120026048573360783625730917304819794732222751046489772607502314192230042409235253093051511595443412622265444659232444092563580728542412477240472877650718480632630104328477744450559694644404882358957894268140560462210767653172104274528745804752101265211867461446720488323828962541122632198329591289921519641951270601633785219188950018974860999805696432881126324812904900592294192627366191947617355043060891477454944504884635546399648843616214540880204424351343291161571126232969651360493676746674288458158947853611653281244187823846263156461694921566002537558358864321125804568726110231909617230280925277251249208177862092772830053466615584012932921566876113439167415900096896213602120375067334122906304390646044413894356118292142178262350041958371149544686927539471550324673320905577296970237955605169579988653523396832418530412889323976830574515804359558248072622763073607255901460836392579250189950872595090765817966383757896528119138088360001138748167033068820778527059275413954399681928330446109492566390675892110008089932310583613857706833399619891246429476564066610939546831545841946556762984845548785860985860245929240005575804577830936525818586736397452911523453676899053807337093685824873414178160833533085799836772390894096363222229166204142940130597085771227359645202525394369851655994178981097602308506968050124458006673431065361157045284411242674145399203876908155383876118946953997029252580425835707394108909863775072826525687097757397072452149956643061726655118426941327611692229530478708922767289768300997691045160488274833072159184891866404850915378501735468038345455908447908602214245836656872594478246467039194952080339055356836359260324283806855811884860011545693657094806745601795033013923210617940348902286632745068454021883048899116069605210814759185945836740942244822741151207907673316802130095746490442954228858852024389553853280353234723874981951726232877431167957286895777453916352855145701858039428468058374407135966299001483387389434408445414482382747314092083900760764522392959276043836255691779849339974557245006486701246963865968399668849705021427881565834109921772657245303362189239454139727835568591212277601154241379483281107374244636528042508431605926890335103211018855683546991507442825965828373308279243879125011565448343214039982653928444415486202414285500418365756827819908145958368754875220614542441288708367715102373741761663146127338239102828116765007324308176264144048479936363936640891425164645537625178964361010959982525022500268839753350070826868917360677399784442097731618469185053262946992847491255792281607532750829666555995379954482259512392323019873606186593979558717226979632014841154563505058307366831916092427067250873473803061758877084262224185215066154637471144241191561505857065499753385782496359260357406986539070005211697943944148209156813111583400190930915358586638092887270598283164599632687545074116962829083505304351819664211697073707348137160045767040869255016747844015992102238478662670807200464361654852360288250208156744402613562348014381052460160063901760180890227424257963740824021269765688588037584572078510548419809967421042390286291667002459049992054792596736766123270259071015704903187826591351187916778885339066981101249784336212144612242771077346286707348991843464497484923400337426279256301701370862314810810264389153534076957027956143770756403412685422906821752538592090720238180908324524507400117277868651169720157227525212050463996438601751911086842201938466077697451991133199848208408371017337114948710109443689590587262797195170426533895372943300446302897346448250197965847876720717747902560961827253448983178481543223317394796813251717565387301221803431645254190189943653900392235484987738013847934117514514814758468188197935787837062275495214751568186456417833900248289371216096661117400046312100323665302805068912204053416185809879797895149336320751487962916136828658524475247962776545262077761120264439980512240053784251208750694957883906043526246646384584256743355910446636013352018262462847284562483242220594494456033788144138095671843789570525788293257551476065121148513657943936515408565655855514429499079019053775466436422442541506028944654276359103755181467076271995902824605491778861961276075512327689031288156082001513263440604773784705711832007541225059139404275054276988196412457352454831789333275952053423031953851824508722796349313710809617926936342262507721994489444770089698474957434434152429454510320826689371082003732147041536007623938509370275509049963282871296690174935818066606646294566901098457119787536615264240359252379365056168681750312498025975234230450738387656152778528139274063183967807698031975766223541782263882815829781264526586032352504932306560139054036060203544201207976632363646384398493424057198900913429868002373304979589701423458182128691519245772184312796040525657230822506603684930775652295238824220070003585785511875952118736333556145761801726501250437289363043150599332807406463223011288495300564024315404451143009745635544991900468489906219625245673303528375842199707201617750996453322959351341613461652458216064678962740373521259745674379745697543697578223719750859254943202019296330307848704166963527105928335162427543331007088241891840493113019434025284438655079429235238837007351832101318616058210888319174430486860440721976418272973617555788393286376775664690980419229271948066538729540865028045661943140826971041651880068902297285669423180589119702838522400238699342964843423892964363074695790125609201838360740733977868227490455797542501426877275991763424077528739842633591940614832204358555130909177181867865002336532174942454083401730052756724254511350067779189349533374756785444713518291412592924726960184923602763161889563309155421476096898304995511150499467442259016386047062468487201003167046507334964812681328018781047227136342046135921299058417498159743474407358909510779963379882827371779709917715842413720605643027479435366658305554290206658897355884051010675488228976170470393587135301166556013587042825683814888657160837708637618486700875665328133772634493816983387773463382328598644002376341792221479597063556967094223501340885671039732809940366144163691166993697485446968693661558117429402781750727705779039459155083289121406001642574028083407775652251028412650402409675390642089002789328169966741179812819027463754578737903038930125757054848780997441986552919481682327272213354867032883737472240364572728693303568743010300142055958062755526422542311672817776492027387543891214501728393138687005971804749600761354744459989363267457162507907845585388326052661290504562362139857555618235127065715465670773869969620145148920816459013773839210936448366655170674045202219692732218707772155007832879879849281337907924263777304955506634150958706810224579311492906034965869591830939453862449239567879632014025248507950317097976193429454558274843387994842477616821752873850846426519702426809091128471156942587044554239494084941620643261539412594372664969662689858070026850820955315828711203009446837638479039576623552504717509473450639876678924013057859194410137282743178599060412133421480419521656462043898741418501498361193183649716648681345662037612846224713509052254197352589262157345841818278604427336777079381652305782538335016610137629278973848530706922381334084202878577539433421163374762187329133150071779509460172672116139617700395154096011363665398379667136425671863181567250974607225700105790549359306364122262786907084986371275108050206926085106001233994391527518030100913003451320374770559055173923072151876655829971470706150874242944218881713709623145548414118096293796607496479415142078553568254481692906817225136039693381848287546567524039970243229327314335735003372325643733752567457366567598676380399243840223658348165935972106576338037896574058288156646294898369443984471493175562334374312298125339730257919205814406772158909902978897718862084630332574717869235085661800257625427860067092418366161776204013058732281466255213727038198654011565149044030510486674323916984463533616448932030301702251269631538332038512422628828001026460959102936543142285248668601578316171348107128671558616626630329754033926821779601870296676028642522559569227872513377142033256565289961660886126507226929574904896193468744434380772357005606956933085605873251000330001482227208782367710749757425589890993509983260691503156735792374168688664184873238596044562757054778381261145164709488909888839341303434352192343760739906225380621923283787843621888938977016486448389085750928510154031472316470200316939787303800225218270067327403136328848015113918068897585796980923102331508186703468402569255777185810318455339238043355993541365800958817954273551003794229422503866707544286913152105273251387382755864600132317249733620058406221159547117439907961661698240802003870258421470669661364363239800351802918891810735488479053210384379968600206599829592218878058724290202473544791789301509521247284317599454236218848242501231573022919458162357157928154281983514202936909089477824113524822411407969284815728681238423019271033240802564022149594232912644099847165523049210012115090195162064792672075371273941651492884497703113147086294446008383950703980808269474526128913041697253112991680023112445443943020428697321647814296937165063005426600591665437000200970153383136473140247612280664751042921385499478211097065128861396645504135335313085174835190564597373817780387494008969857806789311266048624367872325371451924773354156245210888575961929595115166088316462794143289647428997877911708252959459436107519256953887968224239336600919522645170437688832208396604778747232507860501173513790662207636035345039676429374968978132536590055343290446107956766907469530656883961765714926364550678739869897493878497924856047211365813093193374054793363755519521853893884243628599203484877005274372050344717716251359295876903960748913272699163670358809645709293572825738727868816121329158594957640480050550024225373386241110566900166489676416166869794619168540705233757574349320786015341270290997502772019821716470250103997552095391654783942458835793987992391715635678505518901255572700638124838865844747382052618576923923666828547131263225762653623620849173588103551450971060698989491639897585245868624214460806303335077022394091574368851879524129443891916149783132173555190319831354476526862940580528580025747440378337636362043249230560683162649986032972795704781966987471810932854192310025647313388771430318940110581490458121778720245803360740148570145538509107567976779708752377216144282998058128766650064388344919384059880779623878022390540195163275873082418835278974216403567290423100729914511491075369987156078320533794783723590793777225874735946761313768834022502947375680773254632236750236960756690466789701394742955291667588766923199171181884532886191284125672683972550574937552277648247870330614245983677695523898217522629414276746217177661332019138673628601669407780567226331333963534640096106706923710299106609617586773653160271411489947254364364040488406473715851694814347208302827007776026210209143653190494047277899725946817361711942133549688453957695039807447170322198096152153117215948425065516702592406874311338391370501203989438508154363547156442156688226164488527394801484667662175936120531207193777584935882891753257700778028670592206348962015897297113912467529512470598281228085753920673258811865134057218863657546650343330998310850807370024850299886406264995450507964092274902881367429616518347896008503458663468933272418266915319888380671953570164313601565830003164685285831540703034926132554138321103948151036333026092820495955474090097424397839367601456409396926933216391724769338648075464771129897479223890744684063990366094084779743288977342730156876479836977727967051981509011709058718993112592614522431309709039362179906666367745598500662200194022599112695909085094232522142398622249001923903115235564452584007433273027543042791565109498499474530489464377869680886185468852908691278583277992338917614724143436824216986702196374273238071053495116938888378209756670412976292012135819627165320028537295057686298576623814280163027989407609712304495440636317827408955263181653008261918674636856774258308023474711064769039804417838520162650772901479223927392489667923337585707928094616922294700353753161967484048559213150806376407591055442083706147743751346054415662479705081352696637659298040406907953667882169742517975486347606065351420501276138007812871092530189630123871929014542752377718213845098275068695265849115148031601442253808464598717389682859786911817024213111503996488307935861760242483930123552564968778929624392921641196345954101946339344217014743923140041374720595639396320662422031590554116125954047361280229252289819483758965647735144308113758169002173714434695886591403893059348864177712871609984606401935717130096324933058081429120836131840938126575714673372880372253986290219372064665067567182804158621483608991844598118119832248477841405817983781490152683232501684552904418086314335300647808488153179318963076965198814924900662849291448662848786271734903153805972672424428391249505091370477981386898713571404414485011565093756948562861884011422782494445898514196162015913858978069896825945622656246353044429569217915644632087660979732965726979170280470469950603678655567176619510888106065910721228331026018021264631878412727327455534467433832677133399481159460718957747599058304273851104218813819460092569941203976886482025662761466517510988624045370899624391810623360879975483917461788499113750841081735106555294855719246019969466115902659621281478948900198603666833490024330714196759356109928964698728159034536287521556677080139794885960756719912883621464378787165879458326704026421747406267675996557405724441849349484585401796332869677448493644167777078494631180355194274514016427722342958465743786975344255296619289908686433343584126568586654388886438514247117737411248868167819584442546605534576163834540420730261314857952730692031207433883222105042844011072735729634427032306609836733327527198117495059673328413773062041853752550492404581634865606910514112994327470095477388106085505956202074041230429227474355099566902152369705147232399545835112167096942785078980641767972052051815204726982426003454328364940387971424631428030132651017117451594953336641836796777359167397729200208033100380684224813925254220454991152579949040505844641727625075245570805474667279928165012950096061813276807987662490757599194629362466115142045789228451676187138722201065202858711087221427681050508910294784736860427948204209465235145281562696626636440374964668318391669863899942315423949496849314683340840835180432581784285500442963349334098548293253624933253606389366200648701259203061377021068792570751648979425738677945110258616190528344046186608825685642458403123429173458430526595278103904542129025063882122819978005644013773643132243275210785383341415314614691895610748029881936891787449427157816315929591664769607225284506846079451551315017725807660718663423248307087150445755696546308768982493036929898598700099278095921656472986629805146039900994042795070475842445264140651531175429199724203029158564480344527719413803083284674159820167896452241795870641590776231965490367745520552664186215522452558901933418188441977817887967756865862836118754391744424715305865348648681458831320754739136817796827371392742159904905734444603415411321524337316890276071531441033757944944890497918637091503143528154953931938188991645710630961999172250371116655630900495121571514510295554948096187861568945673554716286145839255315266194138783038321036867538714892682158228404053943704120801434836472221413467754473879143133736108992079528461211258188400065543600302651044708839749482483911548363986398512250716400669743709623221693588131169845246598938079002411255907945175619094246488697081443582110104050717497176443758029170938893972590723037615221208471157271520333698144815610378372951519884330281944506629211806390480188765148613463891493660402140354415929052034620277574091621201315912426546478596815890082952983192024013670409532241498137073119894621764319631499997606143061970425750602245451005139710187859223577238643717118698820789332973809592875182835601931501862051934732127097773771599446826477113570244080599082087401038228016971078637872162641856412529207317665345891629986915623781348446704597245674843822652277666016059829819560353311107999141974014133420194200254062348117578716766504248358118394641781011214900345534373269994408833905380792216752000633741255023804773008014581108521579896500226272490477429110703442532886570759926765662054865957023087645657415806765523338020924664297259952298161258024462453998184785500189264294414875365084417356344388381161095995478449944839382078642164020380314719096687621932900670189920389800179260495616165206249091405865892146044775068154429157365110944959045872370608464701146940672076561373914596645270436154417335201982650847375319376230095142086410367649272379108695309430284622458134709828969438752557836751992857690394092700127747617366275726696959084216533257460006826684178984897818740175309363119821413605123248148129167862086514966930326159046696900465963947759825282327524714530801309889161890430878683511921619564449737261825900640013638096071210106183457549369423991123378817622783254858631574107894751015343487262149452298555049941615134714114222523124983333206231902792258203850091649930056437164381592514637928207316633622382323175472986308806926730302278739540579019829037287852681464745905648215507907518056698449871514934556318476522963789533884583619486823513931851961237984703843101577678831136574014580472666156022131507814432076922705215582784244026326136433838106489195952829847192996535200075578926531128146723724706564037355955314349914314836764652960016130235176778913025104458778240239716157290881068441781644585615455108750118357622345841903310127796459409953913107016751005952954133114922776242197796746032081088036670454707428440148985118570611026834229396053426126690912380328349276425991623744535367979901652226692988115992957201465106735619339944695894748287554723234226764555273912886545461218719555022620965895017568895461257372072003507607149729588898264167043394953687337820777809419788707584427665138700926124149977636984336108857647088067790761698256616307281088915031366579533797266056072501781997537809989727763029944606973518286119262468206771175824575789572870449772490636472508771720962046145631110038519505529073850547952233486670858889158342450300583593622287016756813965966649579938998101485292637439530243647855798219872996162078082961888132144397406567358413167055602343510441856592491850105421000892761172509669797989555889190725162509905758205902545451779023466974211803800301208477613518479944757896175200704595414727317978759310694528251491759405128655762134182632447112612459172327637322031229860236046245846061867954230028319093359886060606128437548270850718454401088654014723288817409665783044991627882932613101079942655136330679062594987036677089615322072632029085082697355377695649146638787583213289069980806211541873528619961190542758238590085444955368993649647373775330805278933912910595263489106005540302485121719601675946227503929801289892578244418249575449271028597406127161625427033100670765427525902108999337480661482075092479417233203736200269242791449394110537632270646112110208028392724857468412178249565985053927100164974270959885884693347204104355221666941541086016618673411993885696266522942422926088413561259351638472538492987758309811249067409940483788167891060274080745569576623553918194246888444580458540314825019655981070142336533345065886311190716251089858528281542873862393900972697345624305822225825467354717193118814946890257793981647039702714095644659483588763683526722280428063078222321757818996832958511438256433896606629155506137400835783814491882628128344720391264208395153737578795028821311868866262282010624746763594367623685198676841751957270282153731904073151264944849817573765105813387396638197675290760037726843040033711113739975478199541573210519729154418808058990209165363913256440754236126885365418811891758342503335863900448927489566357745968622349844361629006431370741788729454580487846386015042188860416428124838576691705792183190016260270663626684215942332461101367980077764467281369838001736007851714672482419924453943704414218198102411421694313482524994726653691041296504252357115641827620130091530938393917921695406856495975491477824286565970674172136333568604403524126606809742723982755480690266809220640168995060431395382494744580493808233074262378345114409556391833947896344799129949052525497041942660060073438827114854359978727754128416535761742093605129075014998737732978738070517619440102699644321707731379395769588504229711866009266047940645676610576757285007917499411024458276132386918728084139025174008710362026605913031550255289046982881319065703185217184455261630536425798028863661784575434960895022151469558312427358132128925019800011760296353571954825989520330497955192977138391365989248319596329789174301774973846252958983178219010173614812942169357851095595797177198398898613062821089068081163937358704958076380656109670883432838731512691280577382084526563955463244778853429397724726886253322003745826244209878684969709779569116833141856882835057876035268908809309665897432979291581462359991834132319965249746758159322930889614087209885865966549319637170036708516357819615610538053802342351004737492246892262309793797444449357015487083216702632396977659740348692313746730789438385603892084974631817706740526562682011842847744361965916854207967176029936954413845106583264168421306249811815174496808746863297655889130068159719448068481308026479037210719656779827632532188428809164536022273105252531141378618218351016561000087301796742881765363525839630021755257451781156397258475096246387816091565595808529296307598690271532401221194612390307118508615551771287110052790879632499413793335519963032058020840294712232825024727775479784934372500816264823331754046264525658047629443626323617820368012066592403701009059699712130886178003840733120561617052795082656338307881824357190484636120021139459344027857133853653217455193082210743781257960221303781270265257967511934706024658024671087748206372126957155103831636573467671844211572403832664505390510063890152969594046497105717869484936086433037907440833744091921095527665508484785221704912708569093724332352887220674742440247568738432823192588192406249848471785145038749142177342704884588328723806788121998308873281240070169237448987166869071175525142873335347924942397979961493737047858461903512668524820998299580873814221919862981540286009471634781602353673958117303514752902598700925914053251474537189060041790844276299757654656102873538878598557488472654578460049441357087070483431587892129004354704714164544384158373821139905277298998862902539999122476132035702342936037479634804473202398440227870139306638681794719925747061599364695257482847583074997106548119688101019438001643083884091353767516990874331689045893305966150054179010704326101572320736115014318724981878408530088699248858678394224958575020088234837753821076689333582050247026505039572862467231731441390390894058245746855729636231261602807139540793115510485891981951461092041130192231829432037747888975781145471688566023942621910437032828794104404018694999592433576139103095176253982414597708597127372027904676380696715469466697173595881491212659047544259107403001202792358933799063399877474922479452246272096572905555404351787493401835047214432821797153738944221563424676329250589844727594072307352496458430123071302536162347722688430637380174622617120504674780413493776183309166814297125640073322231734654777574441450250836875637809846489340355041613114654088726132450524823042460397871566365132847868439637941295731415031439547270117680322190600949558427568740172712384557321687287639950109090506618503063269057401945547185530110537834337631854849826922360515771482505154425155970834158310143919079671784585158608686559852209081833149314818080553695546242543873803442563615524211460981949304163344922101581927783417983730486855356363775256266866902025326282329222487242310257707454035862531019251251363641320639897879039867238783141355810483032556852860852415061751476256739151344774893889172340982803737867337956967836808219605388082453868456552027871750757589092689419851049474088266357255562927959226586053356794989778681415528243373274026639125718604690415689521088900005366058052800652713879523118822437961474091829741107691259956134276053256586442886963345447458770523971497707546686188146628149398392381524170008860835498488874075053729093619742654730299765083687651612827082390239852373211067926694205230522241411753819705397712572206812805445179205015448130183893595354765991499835853176812196021523483154111962791954008331782314480308865368040731592452442837687293107202963318996691567422420127334404517821565502950153621255989488512910067181257638216107081035149739536093410655275453404800449214812817606800631192742706592730585640220148391400501043312215342451341499002402967918122570260761983891445415131613413464774871479530832671773670353733926253759255051685632956805703887667606698102144052809671891535574917172884759231222903988989129929486185614065459799383562427016542177634153932650172034968713458626682493982722320423678269730368598653384548051907019757039617679644793912744181488427237641034389056218034957299839491544157017013932448117940615561428258988040413089945092657411559646415742782950368047613470476177629781851599400069986048751772806475457589942701883376287483588071918445670801792561900735404135382126291673415947286365498793303259352623555586560575412797589036045523924617497175483511268338850908261417829286275863496916297882346046563950046583330138894436033077372684218710737613069032886111155254862919278896633683383304820930509102190413963824690800569636161412904454927569504912393624127886138503641111577993185533240390905439864630398156604229038394925096081540998051947313386457984294773590314760094019950189893782932568183117031033663916461152083463335949182055502258920152111484916554998844281067053099864053906502832553448766864394769199978278154538025206020195836576905542624300352703881241778261320985906262973660591319081268322149137329069432283882472572003210776209943562149836465155384107406451719306106792224189188529573262966678299776686111185278927329326970594395746040186448074640104176194707989131621433790888100957995296961337582318047614202286579121815637616590762632696951638926737745366191637465143672859450446907011978975980279401785339193419636987886281035611483959604231241079714342380846910269366738852688923883380808148761783726122354018319493974490343096016089217444957228054526184780214477136148735998108316641594398387106049301649196087157711885650883427731362556280322347789701647404515890328222644930410363224177851317846299481806678738068802154285414872044553131900164314114669163959325472294045438993336121640711281735745246876134244605892633368942389649801210631500115057192689416836995609655164349017331043729460532179957719362712674500423925786838631703029352694784541994596770596601099165794612932176879953459757536793922246133739463387131891461763063822497203430588048699606260128809357729888880551274233396862961887429784000300940562517671798356410461300717701296682548108402806581822617119930950254448647878324784409209476478577260582783721648736199785935626244713514729535835520025104764494593932807288764049519182592084659555784074775930461487031777066154196403946316672469763298332942058620710803508744896109983990981928513152858692493298816265128829862723317859910550671534851713345734809145661098882284562206371766582102242591889879985361021908391718781155986146644990389647100922710391898035447860351902212616487260562208778796317870892046105081563157332452636727029630013060374461152009722251725486510946955186777730304325998382596984295669305258490560540300544157972675097647556190712678400660295314504142806242063202521704542127133395402130695399011513263436919531426153289871315329602927515343396461296848761282674691015964259811939571313046771729548124692642892564786918657517092244307717516757026366970632882525528738120804157470667059805796843524787399799740550765509134622150777587668653474220519991031914738867487736366929641230652174092783172696128951207353501009294525261705525924588009214315883763334975794664796332185012491503419096938529125379623374684379553939138793251038461227540013540827674567125377768086769664041314800367096585983882658579152989234800552251446068742042900117234657138718998794021364744842021422191420493912773438775997715177212332973283026597034877591002603905540040423873843108298761838570905639507442745851800714809590107552327317566644071380120440360152256478069622039228213566195333279670732633326981605738374071505970036379763555676621521790462341680489901208509550623887106729386244690715601485349383295514179813169435872679939871706451750661228345024199174685849429245771998295029797742960393574102997871210148803231151607639900905342415382385645203068912420707057492407157673461300992593001093363254621238969916842592509605624739729536287630671926073637229823504979485617095335583170136272220648849746153526699053033724489859605926018436459863771176632359197494306330813957626396566848783782291332622037464131853745689433222726602329757928269151995210618755414170018312968854897497126548101120631139925934695269828845102142990039131928986556258622618725486217623282483931114681663144076790379806406372300671766463509641815978492733554778990846880067631204593128862521185094426871478322331222933711891474967227285499020089452211684453544876791543103959204741133180352246069714126199104232298185017748441972325464356260934297701753293329102105369378161489307633247092154885643174559788305069824119811596129157359400459694674601400240739251600386046615171024651248557138534283611128308243341773713245461190015584379470571370775764237264798695714684578969332299613867006639210888643596273124977943313026295751022564349480000925443980970738302178596998836927306324900023477202083361454699871947380365948645226318088195671266532392414243799864892305119130999615692391226630014595034929609020900420222311679458899777362199458583740342175386020325396199869523679530347253518897075955439773410627540979988521537712162191380892442009569088740021048626861325322826203188207723069796766338675459537536323820553626149114821526259999357190048193085164369616829177254247903801358264210234429224747676135099091445768490314276366836221328360937054316467806751414923541365799369829703242128491147875070924580605782209025404615295553240101022248663542929747550075110618100797671729347773409257274121713049096800771872963648759850059439729324289300002198797164552656900846271290654089652869769056287078646063037250453191854805700830965483576534327713878705722097374521697041819921759391844868334035169677359564843496573759334098831023069949070018254682187919719577591364699033422586182336343418476446048879619229600591686296090838563677550494975180757577314012136954768342188124515310673853412369021995558576211769528100698915373346461163214561648793815596557752406928811732239215188211866122511726139546865239664919927733207681546841847676586483573512737619426699229426023731621514455798748589335629389203411923772388004088193229898522818038665337235059977360440901879564235884889692980976680011538038685973774304673489248935944186469709583511824725212258395638795980551038650641304653893300044257356501755188429148683253202001741088190394423755425665510503884180403237388942932825649058474634519522688714400277840193092461239994289006971958497546039796534491018778001856370125154109039666748766975831874001081518045459764887832597780983402426539790595091897605330301926191496907441725695287863853449925732452816817013588994700769432671972082134642646320385566738376061100213479682567955080631732910916749876070575554050412479225809134055629462948635945936457625437376109061760624189809382486456586200995330890938697334432549062806237737899431834567587326008425493190009814723169411489492222813591091681603813736382967260401285251606292194466186829474800320661334895989919883267594546246782253035147486012521253207237401837479429549944426640316319136592971192966340788307887402261897388078500186654178329002926306510678423902593309836666302137682071714178487743573114866644302048704031444304357990365832076615648188553314564562962098223565711543596242316267926171816736907136110789386618248872102394364797904361966569773547963240576091495278790929137073325178533479808086890474273643064871114553852036479609380905358783047880357276775285322343940691070633283750487406458799610921962036631885258264796156004249525990013065034295275338745398540954004511750193966885643951466637098475185444215826864446554198122031930397731117529641626075731631403972701879053355030980309379011875669446871171927473112321014948167490463555308535312013777556382336417061890309933265195545179975337420420600288421589038767755630866739703420532672106776053355075744666703803026454726556480817016985586458000932487252896810219356131624744616401092069341389498183613089477533308577940100186657667260583575194373447516686129183050049258171700780354642920417790914458518977289798308192027863581536613230725266645269257576417880446166499713932429069093330243046177533901061791061821870522360806654673062187407109777658741068201323336003356237299480218859584022066910471247329601971972348546768298899090922938677230654400702152735966476116852715428426381237586859121970674132589585843487210660971347734659112280732059060294265970843031809175873042550584612084047498403523793471214479425985415650772864047446401367419577774718878392308861290889549877054692298008854674411993262949123057050476387175279514325911300042697114748221284958208829345304081128876320213467628111388965721902740073821729464371626470816006427014016922844891356851231434758702784934951714522337603516434994153147411418468688224238860948006392469244303068762717546343024784725603616546205582777018892801655043611078612396865069309219359439034647689213383096773883923904466070947114073594704900198366547295331703465383579387325603954973944898230223488180330914042968612282646575382909180884393290734092531936978849520424732717764498373123191663599190870206451911654683141198438591053894463198410185276474428613169243016954898112610188853847448040013406816597954287772784482573700564833586024036819763780473600609491529004738591263079467766114257485272133592572998849694339528677833963730780533127790244352290310598766034340683210589847308641685344562595939652886177762348265430863193156772395562229847305065460557525411406686352735369899329251570120971853255440464031541519220047194899876183951606825700530225859184144776769137708267742981842673796623156876631699519024190637419937559007560393457327128649197366468105359689897583540156272632298017528877285070434408930612614364043944235705832243267696196212194110491197640267665828279305127653640107658082670449533964045110798064706611773235261845994415175191954265468840641440005472560399137490058221115253249679388786201063596278734881726730700988474609251764940330879804478507353224735251921324944944995957905999337559461552807285158339255253943908633553319390157422397706520370841784319884128850216608103463459596989513609878299517025844942783934643805682104863869860983939631708189079598058474561988825988055529093810458963220307821790805806907506430842495941340547174554799422181747537300744311680412199082741151560257314687490376298093743466996069120010698882020206026164552447048803485244173193369199756883402484578744261267958510960626885479979037506727377652792750583722399657634727921495642215154460734489559005691569367722667260368692674154774535121720601788603236024927416014519409854570068904396543014660836511044123251661627029987119982280375464674504528822905371069822821155359620095702951786739900751781672525081702565809267615726618175784958705351908510006905417585679956108795780544143582993322149523701707946662127872662185264364849182758920681528029459154530986035966112165329334336973166790173456876409582848231948582301940075737489419126063378754646273633010453328304869437191114062502675338873130364244433064044764625171213149353727851712398978913216686394081547255939224404845043279113950381175708414306022757889839462923013956558942452536994574976940614053314812880011442648331225052691494501919795477832126688831146798533284166684316957124169290993728486992257246613415018542629653607595472213846535983760897306678308495529973458292430518901091219502529650868439684804030383938500823443848151923490810136293359629842885305388875410737820109342705116105329874518972008592098482989007057236609897098483264665961569275863054821880213537478987878021431659192816326300119005866042661765038453399709840804209122811770671841838695156767145721269816731758471764824235637356619179895293753912614689328883882521464960137503634092109034251897688247701794363740138046473471932364619572094584900121128916049530744375513578966179418640150766092812113283170817521881135813476753504376456738397984550610525514714057849463903526682761084956837802214824726926863498540738878834852958014201789559941855094238670520197778785178422206403000296133668620952199525452120575648103388696390606084344021040723564042344767516828087512247004380944190572763356792891817883717998651615691403582536227155992438125946967898246078337353555498092455471960298239874133556627795100871028511074429992443494180247052171554686080971659841776931277250843250949215917780243429129146359076043385079068460918025708084367054188032869542923963919799833709564505195483619768756579013877447324626904697123906811797456411877133749934515017924908353810707672341256610078739334309846159288035873435878546638303996567419426983909208363944842201990035328956527590635982408863774645688856690908171675919200425219028743038660921700082702231614012215137152078933740088475810181557723354833998443000418805548570424987322392382378144896030130790858466716135426570024568811083852358354404947136587410428812644060626034784907646519837567660997508324283694884469175907443712722832354920149574373861372707729549484552655464018192829940030529865182483549364082393636053525449683891154520086784724108277220070391497217265510930892405576355610055578566636662521975130561577191910212607757592762210210897554476030242691624523959644915673638434340604345658634848069122587034217257265762147199983124128786487232776651757313002332838783777638485323823406527027854965479194544931179780946919513949155336608729672583050252406752233556204858180315145272794798664996121636501601961545262272568399594167103135050433631324923496713494236772229162295289597377586625694630083941857271267612613631708404047864230544046088133451477216703024076842208457930805210203893680718571455437727927142936336844571419145354102000553723092658239386912288962894961455372215142671541503908975698277406788573223759213221096762693329034522090272042634734672382793242689489962736048878370905302728350177725420035350414880099445894551550762518702817831711380875144971539734418568264428534387112260008598343188805854387556527928167505791379034920195662140859180009293019376594633709793977073112630076462487976545313132704394640854001229803255886704865535841364961883659835918793790765823391270505084190043809973944281937784113927873884174065919408628977653351184459364250701573201265270917652911115765121209296718022049106939704021501500567626319851827003223372798615854912128684163874964675073992226020913411769837699560503931203731993267406849474551275821893254159288940815451363459131191377282658278599731842124362626907916563043574837656357699867472408291606461282074481162077277682684902860587848198572379292026682242426121374991134261012671152270102997147558662155307720563967937359838523238779324831852463640949021126733615839720560517984364064940717548061430997473946984482774558798254908359925767666092149732404746078088560250360692217735727449440598606730608559089763530821711944306567855175657811184458506135032904764424831108513742417253662146550084969788848213016120608697576813757739357532072154469916561786442030284916296230608065948931306697246873090290766638143826721594787952259385027263530829028966426285932279318562660515776529189152576939370577411716300379681180777662558182298706915476650907221606851991578692348597250699239353059576540600592658241867940579789214531837282815646150131043923229729433129186278390217566178044010594905029495836342022883850423387378197830405722700500257734724306788326512702897001607860910628208543119159788258933977345907390972823386482256102128512583438430284103614039890210016866766634244231561039256294727701380995115647658016543482166619084889185145903653458438379684220837978819080635736938679563117046886541449127718106072487226249377085530756024801489464936521407040002424954420811359514569771024854674834478447860195390508554599622171057103882415126461368000000774683369309986464106427976648833059386780605195303459192992695496046665511098599548706292073580500139679996537562210117776261140734904324260134911715723823229823526605850198315782482846498835754765175049675729155472164762643412736720402183918013317605081809033880681544124510232785958026316096871354854633517681063684200159706867865177354843759214376279263635384380682979290494549541300696077763102141864698007411914658623479979059487833412513619176958485612576461973976440669410573785308502776803839702479008044285332505473824981230523881503447942007611950698302021028775935382188275958608876927864889839873624578977667579997458771291263946396362874976501459423810464079642032473335132218045031261673622735355920469388083310718265034927747696238699937939532098809306744774050477578154419792814953479628251518788602061777713045165151382264482165074840652587913995263214285735456934704286519912419652719663828683202283062769221222469627555291958418463346008808303506074459789099358367389094701345815822806553145882585232950769981934618549285230812848164715619194722798183946165876034203542422884238526321193869074781659071536075152704647263434650919432437344760120800361683690424940386876675618990514238332687606923632408478905647725054586087200939365566913098544812862365552099276830266047404469801552933756296864360333120509666224151051957431085840633171694102473479336466603244906839477478157006590939177175388776856903948859653584212058838665792213073143391848069935911106815925610278556352690440187283545124497852711500446452961522226650191395673382623020364361408768975322461653581011850876812865722980417387927163275031472883256172165600089146599392020573646214364105052332817192758180204232649499584772293675392563501708245783183994640751787182143579509275226179197047458777339758591480580762301282377192161516175388972354944598862133757054112766768071484504871983712096945138131723007284756297094568970700256052956379418777450531656849321079830353427471265623477186746290881306671977736367051879610178185140099488731106259319022195767259005286617569601050818204523910378120247615177494476426122606512869710481761113617662762514201291041427308388827347692347695217746557550543266861475678324545468877926142357063327323584605912487231977447727645648732140955125423879874375152929364935773271754902198497544475888729830137417939362579125589883971986929061967743524375284965161192386290263322276066157867395580160961379268331698339328086725995282707293989482291464651273212174097511008879898641092202914377975248172748091763234797522685364444437382989513420784061032685932025752519251945273630667186222228079536232088097161232327915552095036253372254771257896532054433172417024428216801499670558707309985365822722329622445208261944346696228110953349932559167747871654953364801184322882755903561520864020228538413902161618021699589646331008328531421960089792145008164836008527291370747417545737552559904330417809039215420973620128306938505566360383444884925091145184412571285516550531448421223655347816903220238564843812450864331903857108612349282048006427753388216121170764116948559151012835418516836122240333687746628029290044939169153794898035022641976758478506965281409988455877743596067766217617739513864737391313511883772162484727279762736745697430422735705349876425558455200006993644812407837991178258249863215059122196219590301354249181468449734608389271210118666582849315008140488120741250119553051353521108054979926244236429822181418273964463377692301103559827142408986108842528434739308101680269510783017619112411595975819795563387125207078768366313191149126027509333349924105503007617569084244995530563104367003687621075693541809748801884710001603260321501488565329761814506433265648039642417840272282442400365414495532918128976104118865217881532685443927463415992735272012043715863262253713266793051164732632824488223481286471806981591947433224858982024894066753027085219156093744594800313882581523409908331713943303713620040016422960752993054197020621941809409633388126525602027393727556257391384375456752882432696791898034829703098491240477686254064660613594860906460076878756009482701775106166625975290242738172934951389792800046570784652594135726045840255035413583221236108059007320261987193794511732619830292543356757295930957910521645008894020688729954419535279002235946587818975247817265486447621592950947484659527344669062814723562322525981403769430767694586669030631245760518765354866576648215500323850942496322997906891272314604587211283286832842176462195340436554820553277118774390324262423831378340240404771379370902355261120648735602675891045793714321894985009689797875156526784512584537911555514623832696908550112961776631194940403705702145724483908308498390342227963741487582852324551838768670758178216001471079535293194651023541860304305198839802621880957496472439721925895812651756745136627294969608195833489908485220449425978767708933217645419168835822654069851264943161890077945700390799730389932309867458462997092032900724874422290049474850769465583806292760506384628477749111357266569476011217137122386400875621101554000407160049292123685445522561812176904093369058526351917904679592414040012255302651386781572765135031886845224634709445599493773139540101312855593397146272756001656229536421531329877806759111206637233110365998358705451619220957318198648175767464491134394316274371385182195772423320259161970555831176874046630359219522350393999812222489204187356029615322874633684043103601243086705805708724666766906960100075280855873773164927445211036934223418615457631729934197830964792737920787840858757402220035824046496501515868528986537628599048516762468065740935477501984859196973940067742804019149618070781965829849410072698953894369647000131767370306929352958207118886992499529066443146977107642779777974994210011095799600013368933354163717120037511100798670320033104107939235103294525773672666870562784328059606552617821310584680239402676803049586776147942751152464796608521944126615635478799037811800288748996979215302654222518501152116410129109367942995034503791997551788218053906497520831316502655735168119645021519730037027672173324385861380911788562348788381938432620937902628933150062448110743620993741729226914393902846197117227619837137777851732430761178308636175970817496076690531593236188637971695936642323403253233705210316332066534911537076063284562510166594309639987943292705225787206064076722806259748343614643584412123537421798639330312921102476283448373307326180833386941125333231191941862807521504586549797474982612543282490755184475057832839972864589252642746349158742674884328452417588703835721056048934548635524744876324470062652282867615171237783957357098217179243268335743360225542157463654879902019965944139625406647814922480744540629350902743106113970324459124232688592565715959219968036196743627213061601315720017798966261803075231343433816168012305622370433544475197226545503201438814211198054316237944129222144901340245449427228204777639231751007856885275765319139936639501668489517383357298707631259350383073039378575793999396238593792947381560019664525082586052476494224081300960028011570833533840232548271684474934596074215502864357132101824900895562639770589770046188153771072028165317643970021987947169419098760215019178560535880478870474251603306592905323047172776758669130599029719750763036070748511515333842695416976477435138918734151271783511788491886597362428178654083073411022594499228960328436231395985814852713833855565004675966205969777655023206629242534050094721150750695722817798217636289357528685575530006341421513096229297581866446045533175421927937080001740228868381952535857125575251534192459204317070732129683429045230350809602458590352881167873532540447762792264988565771347193144678039794845876635333225447108684875390644177416984285769314910873955304484402440700515200264958069490279591950393164249560624829255126197342747939133894367429176445715787346767389724268323970329885208888188847584027854227651778311015848475549954771482110080572519264829343812107095259852952159781693103424103255541985007393727424885601201074094640181220004935829608917999498697164505171681675280770369276675595909448106544207492520840630385172007968200382425804723897505310647651226286242106823241699368549508626270099916758698399564333622227743219926489176467492799699352915116544797644458304053692547349162747477262829708243410422724470793398142199474217862809565862766887537476296970218356606501739188764952669378236492933846019813122338994411793515134419897951625094659569833104053410412481423756855431390326279947212366609045534210452167499922595940378711585644616960246971744658257332716190961028699470441844254792464998793174008534578732297768923332488422672177436279032506921975268569718575025994991850862590957711468394966586740862056860077719475385303154444069574208865641317193348573518164342628465861921567696196487176138065362334104787220391726816447680238056230272987128597740036036070008021364380082719912079490139837231914446955914592443658934270663811217274646741692183099218413529319767010043838794925026553564564843632415038562489509443817523402375453770175931123168596642326867969731943779712956787588341986390536089175713488800162715535193290364797148821710689292730566763427534500300095277807183907971358238995755167846584655811030454018703211154900478896457741158820148668725908589911155229452568038979729028461010891767819304211306151869293780509027007306195259789553234726283318159980945945828449899032468510009187209053558321225389439980949139726508351480216302792730557140066159185301919897584116469368005049744042072826124277185471481442280127474661202630046298311313370441981103522370613992365957281425166643246451265887784504249272937231670771418489763910904431409264370915644243395331271999168768581205299680311416339016712399379134268860451147275857092709424028711308696224520344200960175904730750946918942262945573086706026238711245941079349818147554640028117881994231961223871284312738237192499068583534636874298355972060586983696753150739059515372699474875816953684271707853967185630365844031965545772098724139622250426265409745861318888249429895038494388918891997643294250535297821233595164554348180423681824756320422286060805935898242023058456184059356490636967945631447111227965672001447592326891955272258953757717052379150113749918537674991143143224244451129161237744415048522240125499637066793310006641539097461814280235635338172704236919775898590278657138102404016927869810539416596441043104002137857175936439916829165881861349304096591256057587743936382591387959721121154314824220788927879222877147525739354155044659024194013394906680645565860143806846399882963013826605159515099021070197122920805692272395314180056194830268316049617170910018237851957600592611912419494908136785517479688122186377908552534150521244791027631289421878612446965178314406275922721342233051502022023415051419880656808961140565902685128532743751059287789485768624133079414006092587208613547156043885667066781649551498420681994261076462290696273564187469375435583652521316211117201628729036169161468345759636174802904816245268288586076785930363170762242997406541424917091720936637216918226382835018266575567623666279980062894052415987778543818685467487486463469030331829868672440631133577318173059580355402886795405202512283872976664682967288622380432031077695408714820665940406643872812401545389047906130053862642567917441222127793576571999362256667165714274578819490408341592134747158526493234084112614164177519578439629245693555108103056802844569481623964354047518312010862322038674108300850429329565376126496680766874458056237062089190934272922054416703665472051844150044048023459362587014418936991110721557896619360922644430959979106657107612326114514517462618560850614568215407829367758404280704785054121334916041756259919075573484335557381772518212855770372026434773240229178803685950809124376609411466259247479034350525047013167432819857205736836697248836186719152479740948709129914181125235659716592046929426243146300846962788255370164176463208132773061740286079393384636138463721945188541837795863537261291952419391018835677942565872681913018640398222266716430872967299927140216836344787606241945128320036107810194868695229177484771147767799619432726629108938491614580811217598945999146741533768648453918101197817522757816082594283018009438956195822920398031316686915922503489103491843948952611280135541862865676513480533378376022227752163205879840145854720697871440282523877100105008880815076816642103020834104528418801197309586392696719859591515881116971581232674366541529515262098693515736125855839537268281622435668307111464912049633449502601878825839660940038088296405233616098524759290040072336315933546704765065846834881007216553738584192937882732073357736362534605309558237973265347337500146135246739478147895867625348662993731472117928516924895156672805317591253924401235190358549120495131793924046602442484779165287333868315535800697223648787866523981024717931283996141568496441648129650569700395646226841601150287596529048380503915395859546531834249112669862730688846795859032047636037627475021441605376416443638435029217436909206283096945996563599895641207570614902431428538841710464781171946874684216948856539267151008288130102820603423933686684131093696405334348907220773547675104432794154188006359310235046263057825810937040076371176282310654576774040245933135289687379951270898941768778486281564993784299196013340412767047390959074942611046134658139989932723491391546704605064832124824827083179618043153878094628238919837575429343655940759481575048476627393216196505814149081047146507421314533888152474906772570062333014557830418767955106103415968610116062470331255801208956312166127735276799040628665167634648151757907466140762225596802260719335127006101443324212292432947535736724668670580717217129301982862853596436768096888481274949463036119421401995374539878340011771559966287187343069677344851545523837697165809352718117948725524094822032879911889383188328272228492762451592935523907117350814319464513259311960718049993851893396966309574889972741638099967101889317614426704543456146845420217449247570222105453588033916597885163464623707754906451105382288157638720159418718154926403809010384299862785469591306948604733479415672042890325335746118073044474861298740064734791180774178884837195021549028349380704541473471557523505294546183124495775324129668494595628920932245943571457753168723875826123321756238015562811170600838909460420897876820247384455608258805199039554387587917343538993894517230830440011515425247081163989296208939519158037788716559562125890544000580591217257219316516180394912320141421414278538750759118584229684865866709522626128596857245891012228524430456425435216063359026914082868974946829720826704538905221859854274122293658860299981028167216647519275591108516563691316361383932588821850989536028654540762314718583439406499167479141885248418812437705115125887089285365774787752046083167406778878262081374013451651270467183830796786027720122865460214448888891875938098771222687753158072819684536095733588073002537626063455573731746726636712290997695289902609467348516642803076140730019719919479318341517747288221916937373475363140361549716498352982041419615830883399935993819798889161246327023554313518369532110480974876511244215908526233348798627173520330752187258458810059230326711515138232708647598665396589992223562738220509585573759616506881881998747799500234992349710518705329537186969489559557100710843690096920160578320551070682254625941295059692673464819773857843523773129425383347488350718229604567807747069528917136278040149649517679042151196438852104547524075376037995656196752719598938025626607348690749610031622656388405856366738209379339238375481232823326964706535548630296366601678923246264490052901950428882191491550053645267733335117023899121503947537041374652570494126612197958397764504757335349788307399407002272363612288460583896865853298449643537622525848017676586330813081628163780593316959709135219147016813889434659680563276673943206133274490634340934936195886260397991536150202105296558432368056173714545327445351324095870484835453752978972944215498038065322333913329274527063732539654305373467285949339780989624982416729882888080451508517521012138780866147563795749306025913221851769385976227529227314598693780028772802750001526270390662754683319541465472457775891113490777908702837099239794025643338175405581293332986257200766376577903768604757812385550735413189060049505092322153351984062661526333224758630702687525024652201914043233414574057185062966505695032041839225386790809810986042529361542991396133561927949046946802961842790981475957871982967539596644934484097362006223832306153412566499508453452457340889259883209233034205548781401956755856618448294542799512103277928217097619803652321290408050970348760129699892044298775677769943056774163943302586943475618034073264942185894398215789634098156377829374143615037707955174376857638966471692649340875582402520394081533760814349226929917980453320279220614154356727791966695761941923138803197387120960861562482061727276396036265379998012484058041522248454907269513979569550720218054399775993916359876614715084659054223409662810835192445625289386940259023661178454453299923625855158121518566742672603184347342248768100230045702872318405663198439347252957168341572046879452171189069474053334827610296621224423548823491213360016203313109116174615842330849894270928368798903901563239418911566500595920927004022958510059559375088301280508513947504343752815707949700925717284844910280841955574345475354056594045252175780216495240610987156498662588471735960085076254504505983311587624149701284774041711448462829024364074344525569024494831695422594801301750034962125315144462785048699456669316238046907331064328132761647599070041781005883561962668585841020927151233638758421681881172554075556443930110362763730719056414994903266704441841088513837682902010086891166311016680542247692560643095926180292936604639954187139448671100300407049622012006218040578429100656732436043912095504047231255016879829376390085674496970711196954351347993045303215842642619078061708189503979161498117797036970072821820203990186317150298832407193139393410451696349931059773156197140270572378155526143615107053381545398649898081007951201002277491215302041051696719662773647103516718642774136058220443856076572659789322953956239472902834765143910841726885727070742769552952180753991230832517649373601484431603013146880834421299354895909568713125402477515276777042108079357417950565188871914502291676176758901355559151697071992750645913802281652136490928332658636548583375203244978758952090645401121608331327521105720346610219681200075409207317691068059175554154466559858398312612973842723562212787469113708054355492850838662355943860320688270167823240325764756328616335446186585876921065236915401682652324291501409152879023598373844969790486514311340039221837824778752549315884052622609787087996351379850112978795006495035356234472516340962285698830882727443047771720235493237142348644064341578235278660520069976606390728638478002375425028887588592308447877583486460450270662450478521758186452252504215618684045326725680800569487905308093301305263210569438044081521293206009178231195248095586025892805093917290101060024296819756967331998292476797082406229693317954797131244779057953660153909506291328318381956911615012154117627487022993585211870381990039927272760937270049875172943812893737442686255350394349735751631690106017061980777769629833810538463567208968988742620095902500267664976631481195714888055374122423800855957729592382351669146528543312584075961863789591893511604257439732657333470817298548015031683642735704664715263147900462726978536937402727738001042711510410111628537020437590583296335217717376986183627376882214850597579997165256537450348150431433309133452956639305647534239628265682107260020116838666768790723383890786730809621217662875222771887831426338856499753166164678406357648652564994429934666280039095956524857391341006376354024958635467080828523447204777972111461284858390454257483208984872257339504640153383908576378258191701300386540834861062240871380374532281363551166896772576702793961906561184649588987747935043758753190334025069166807038744097202840105832691741223648008701883632893449322008894674478793980379240453228506618338774733767779259240431806103715168876813773518712803990679532789643661205788291376152619458014162906462835275403437649195134217286518774343633254688707132971828724328121057477814703832962473355672752937958197175466530743479972572695451590682998415525490291852278682796728068352353706330330481083403978147734091516898938308097368009554417282839391939120014351533703484264008149978141013308104785110265630203681051768413847811673083919268725036106320220791140946639446796490083986582345789799190591802155556980534058837333109897429805496744352510749690924609988937549924639437617189747311486025624536166560405559994921503427839864456820702570968172045233657434580064109881967709964064631852505890153548418484254490021087534936931865435610741209855330446434022177728796493117830638235387726536328611305220053219212234934388864395208666006793071593469548419091103219289560980069286604737674733724066595152899177750764764447640403095939479233120159051334941237554007262809647154312737147649417453508225588883806092216909303124403837716167788510844548907978332170842972634029472679387112091350095437288280759699185748723586875148136945785061384985827051740460703860389671621201845759824072154808146441478590690577267151848780493192582302617731434665389973004894057041637630630586340583490499784196163645047139971713974768930173179501459349019524142413447962718543017931260813032176122283706139611447352598655458819922799375832011986348217404394825386638895289901576618134908637508237857070159881235642814563740608132431169267202226994875485364379788850643274100819816480153620453937483191642159414497457265807464797369510141357204732267883497006947684263367910819057582335382129185139218335896582309423344394273472522949538131428352431979080088307190259479635103402337062570560854752706469343593818008703340092555184543645096043556101451985055397107252107126258561249066599488757146151143583313352259350864314786660651794575272515968309365795056801792945709025662691985378562166917887742119862670737892858372323915558517655738222246238502471601178765917129717499118677885617428073308344627520858749222588316995402288564881453340751793354632364695098752651408930434993195473908491779239788180333778862453436685344874388141825224984684163485390132075147708976961452138464821870857422002101418178313702284919740031011072367917867759338794016190436807145926377458358907746671498623741627321926284804272793704447508150668574848312007167250344358834011572353766539889661910431338555783257583352884336881085188654768185689770875624990636169611778120882680352891541550472648240127341712973265957880741462801612262694916447383347962224720118631750330154665517837488551488499519214919970647137584017297830914385003411848166256083669655298586525848520407785537475766849858402260522449648731748237480281986492252247372722963859391831882435810465256150265745848820471928596189246864676829298199174465588098318379933666984117658613156471165906871267943653452545742098476208035783888080185543447800363471797762593052345392760563165754491832586659951823502409552778898050367023594552097101426263588975626521216438563126733160142464227355746045763981520172581052734559626328347897164224530511007656738453311089296672966429763262457714265794541268129811175531945319296566956158111947836380194667872106971793779250383943344795012906031924440511291605760543543239293379202712589300063913665586506044386833761819937545408103275118274362340710226595893322627928395146068259273824867062459792972464354814927833704222794159368376750585949195411647225870066754487570536090780484392279350024476199097028484160345478795043724162552392979010193840569159555262475589198637535570984581236076970991502607486185419717264213180423852712545829179222028924169137154190463859776685109372965506312766953191202688441071788012981574005080525627222672767971400422082904541866700987380331583847271489936085786086308645162463245453031508930306959122541024071960411347003459357778573268949798078250567999068680423769678848517348773717640534516816955448656886966704649474604820668158285458803547714538894403377030130951369312441694982693109347407324603772197712105366694902810252739959150401199631831884045166162903922239817655204530309847170636483434585452938181726064522575924344782276209352111859429331105406353283576919396811840814119542924173619026600144931229149781559351317531890420218851895275788071072913993480697159107756154473928456000687791111330559067137478222005566569520580290349225474590516926025239385773352921785673365534051608780411333913833297903916580571175385338955395343439529436768372551372068334133244970279241047121748946190562600940618854462057826859154155552552346420328333328531839755938743996972140144905678663350268312632612108800609178105715751009837224924443266414551227088464754072764004106675095765897292952246733085144311968308537219941487885541848685786559305019045261213081342546350806772081417442507449150652848323292065105920588251168346609060736582484181878278374506872899209677923864884530569345819014162830034983977191766500507284755850249261458985592898273749099263969694276603944784228538024075307964456826224949960852921039276986891851582115269157522710794952513942522210368839747500142804412025310229795392220971613384932736892835609698356017312598274575930589386786697197639180323413809689639283716016317463327341781817359771141828717646241837445997159842185452268231568948334599235872535318431914870778717328080037352995552603131280191387545173343303135165316005652675661572657078693170164826223813683549180517314005658702083868983124123113901978833982910020064008144994882863473642930642418842481918520442389575450281268607963209796462670679340806663432212805877321023267661156714768496805540451593095255008642950435634113040131099278890007172927763254871709874658581317312883333557763717667004475150175697698074675680343718622741416676237445502498682814095615129640616200032361449220130066286582074999504896740908257532409809591926524509850400720275172918946172436098674078681368140505623569034317200119532020156648660184380942688416324923468441388210983061349938328762673531357765201509302134201406469799299126515096906184686470145864597697404612345253341517754685268945722936539748402274816405168009499320438970732479485233738869675659624135129732152106174105146100154150282583831039077029325555029194403876693723927398111516364292644424984042412798415889465565344518345478672800790313507897398051725880285219596398013469832977050048289507350740478026948195022117317768836007055468018826979837903495258250363228858892114385234053211826889362265596530319144519765355481496480881673380063691108692631772118276688447881076442106627036021357103279793894052880288526219801469436989909206576283629731776281547645491829336267072002072057500991303118712386586601144232871572885420229089355375508835991950518505220864004574947917436310218523237403090439027494915056071497391279184454268418459712029088735657170323787687697487501892479752116552985099595680155072534679303281281696131273533800477123876378114650735513319792770996447541571476062734828407279727442097887246478268683978869172225373977998973820326431868405265292496312480931412294813933156870598020812144041852447200178462514083987807194668041069609144717018682126984740577576170931183466281709693394057787597804947399060152359320399368924434090448862222714629605554073655882313850376803618342479222306159973498340178755227179988835743761211222078496125666728071449907027508743976549964926666856415562229728624006171549622155739653062439111200790488508034172657594059209414674033428586161584088632513840483713989429516836293314786616339321573804491558966801000462529294277888858773276167994891824046069312304171238642650632441998164610880959534529323899532175914871602200484864461127455642976236410312132479080244440326166181996205012106100403570265226581780411364322865057260557721565609483186566566581685409780591370887135647203951054368248119258977542306126124805114006076227862652793079248796838860863714315334537053599416111154181420087419250715107454554850113685513035818463682265144720784351095529395148629755686067152617435901072599264288163985583665092074852871971778954081330868356024996220668075145446731843853099304187965437375651402750043037594999966938935871594537983303415695430218475688164580429572179925640893099691541134315085732997533950830893615246261576503641510222880671879682993214994573399814295817781866047025159763916639096662270491062359859306883975925733349596465625102580064683547327860703853081999954944920201086312911745423628885998737361713116180738641832131607136394799084549455961559408866865331586747102270466485193377634230339303474297454836838235532982170533399526655545669538668385033822319007702291918722542151792585454807771680517328078774263880680499842047275416043592530116767453448689264958170670526054929607402427115296425752631314408803687777458962892337421412029178514798049087178109060159984105528907328530903977827485807458423985174660071783661964938937133450050720099194578935045544839163367300534391761224218263477326729661467077055233894537338529016644073405918346262378617910600851103703251869571080447968803380532871331823710981568397129650823600660079091641186395264093814367770047586648612190508500363561681350990114438170135703902548810714053985146379087904448224959032332936010040738805122651211343354956008886534778258005697103955891927518246359832240500327534905632741937617670627663381054239718623207233882755814459664275230079988901874180739713852007371821664297721486926808755624832851566059140186795935443714096609502898159868004878310769132585405042665683599753717656530824512623139545587784625941189468923573429665218633775787771751574482079960792781608540941440218074715406792124723410549808219572886577609151951532832135687346753535127089329729501499403934362504963168270397067505746326759916655357251111664090198105962837815091392359141204139100918948638474840228149166880692755291811486141887256603926108141845304640480041089555230251356065627610356780532347407023154956239239895682992612107869102424704605759477604771962292572163130673964886226584537330583829857323328420908323087751026611925847600615400766175504767494399539539606635270580208203488441876968773972470169833778955640997077294153152615378632362949677277301472205850828774823210146848868188085474614912227363964308817033440679275137338145969457406527783337958857186507561502455760256177336485878684046635682054943446005635320853748691046397759097081950511141354938170220661442475904303122056034661570403796036999457615149985774813449415659429905281579715579966323865509187092183017522713402577143194430839150332776678862411598958778161274486116476162199910073755207995052254585112954306271807459560354394139181231197735481186720613788216544253701547815267927611289756439707122716876516163787651247034498342627968513693812897192394895389793287779532961621729180741475007282449955618511399167941071448382109993851964968032670240421507716359543233702385454853818363699687860660144453577583299973483399112014398374198126035546801593964333910786926721137243980133589897249429000416309668081857361233759407555927584611876331653792821413658508626989673677616839560637014977097739901916758890219796103131996470689119348599743732768701445073076931546301063917947458188168998024838509796525124372106242273709323401210826733409673183726883007491670969153494805475030314756400237588303751656779523747508279290851311904819762084784280734380988866075455200240513312297713782049052936464212319179023816361201317671749771219700934536653107849613849513422633861066105682142532415217628850928090872762521237265489698949453189964674233875122469832281815771273991449934398144118686735003833765852705164982666901717245960174435335968597381961673858968758672026209248679989113698270627498251609946820057050994203146140391895461110809038835418555369955320906116737910015482086978872136804567677781409018555725009398098174959545213455403947141710925557550856455710775863204944591202107683741736710885945292875766046303187173767740017630682225965037733718498981714346989580322295110156596598233191167937202339615552825656514803695113162648399473503660011126275452718130535466367273154872143348961202268089836671285644024884145574472657472414049118901904953719011226015948678312427570573695932303762651361664066275900145156234943335531243671794481587676022577712561717428878041930520658916480917158862674217143871106838402242643229915095447078263212980431276344672930855739798751069922318931917643773502407286174356957714989308640855527554613919242653026971580668064898340065819277801561977028782962627508410852720163820601899762057058540781782848715260965261919831184843621312453004168662645366364018997938569758568790608327468941856349518548837756540502374294834114451724024960267829715894412556366588205212470818149279577908166111126649950048993621094007001671857710158510759566652183391339230729300631393850386056106655136849787738041390463498236689493387092489517953647930387838926042355486843365802666206348220463467404252405410709568619189946886844100657163665243333628203354780634895279331286391500382061929575176563548589591572692360626373591607291481763039270568453277635352514259605227271497663224281045721219253503218643595605518943620855863611484875474367031393447195797787119123013426084286984793764104355540163934607220544745456197977231938837582601479201411757688982311238958623754754361485956507568890496540590057537037988037037317840168678037019230855418982096189552881305213686384948258024819216629511522114665379105871607306969552851693202417085322468012977680457202408785740528252743494991691995411782187972868368558819886879756754444824605268329291824466776066505017193234616741921324025532234494845110259911956087794758325749042146460308659980303716841290361939050563709536567825294966920708280677891971915382142378995911763776789244088716149904929656807939329671153249579319383867821209327018904080730674870455051323066884409951331554028158335711386552254435739887541450978837902587666089685516010762307089185391697909797577379977042796419042914337069987008792072646412941113694350293762394042497010415832830212720635339248142916009522012442859007489624997750088053381188768593445213529481249040246481293617501199600977077999556660581159392367879221607312855854926405225160007172056396167801420746036938542598782547951070975986240239602120004243618670452840180624466856419315351838914443267248416707411412497864627988361769286691037490691663816747292778997679345912058953076156175616559024860293573884082718154926435103957764097536400385518853066396133485914222112987904536202542074382052734379133466047635206906643912043935528072126447364147202753989119080731818706256777032406966089707477850266695165438286161627504665414629980381890655858193629507396843636079667704990239820669877196858454791740795066709205284915048087670078347855195647991401732842452794689890203171297232054701233865392448668473248558989823182264096786649474701643082598620878322264419324699988932541364720059701059369717918725777050036187373478448998801344246159600495931266644765616801688525461416774262724330745443658941697401952117959527360020879812303822324263137876513115184873005756585682826523919606274687034055417234159858833778946183090124866162775808194134906063253621185824057302306400531286238476569513798849901207175129443447864863301497432985347596375658189156106236296078280228117713978997637657658367592670550975864447171464666012609230529412501859332219378988808481495144624703057567444522748980574748993788462079851736651096643439525316761442114118590439723599760857529104332325043360110360334835000664251038302890222317145134122962479112696383176519438567841420611011829002636418297515499159912985799181468543759809143845457694920564431776557380396291760445823913304820269291707859506692780872193634838438726638836978958298394876827735407994819510933266851581865484067497278342341849950854858679804756033180446936754259244884683862990240207980682630808109333629599950926129836648887282441563750208579181842146028329057961906612751855627276422428378613823434756661573255288702821417970415774696390067996582510430659469268416060827529935342869212748974249714676804615455517679576984868352005860020211035455312659544409940081310523764502721684170026030711802948178965766051513560843953166377914575976302916932957844039902675497130409746116144220337877349883075670706367135440549011582868519745461914461507728166223607693007169807736864402193629161029157537142957714213488421986042311605903668382964523829263471165899194110695741103476036421443952866811555274176130264507394373219065187509083407770859507176420083043516300611584398859097199468914208236119214111752509972549942795966311582209867129552248332768569262757864048528189672860110070324061610622850413816613358124141468538312692516921101090576594224340710557927067691750479760505631223608672224868410255574779826880335026770812165398478405804309425365130009810406702070368796553775241507182395483173461306601356927614906977477350957179448975720968858162114994649884640125786910289113219241371288018684672214169465423021112094464389615134427711833772171306762975266281597931514422673891809900155917782408709693394588403262020083750123341272365968287314673463263636062744970363065871943964668381787842140705908965107600517415373730631287463818389639935600538238278015001311152251986779966225274937088601078087854938991285846323418455585495189889971689546819356044675541765595188590682431251471832858488751022187795717318183663232540154381181082629754733530512978391919891964257846456636469453467484547423596373292277970493526575444977627399704915350330136371201335779566155608663024964757456159408430514767696409393500259590716115859570460300414100893865767795061727758630592773269360623297677526502299300713310179000563181668933534218708620612145982247054272675461318559007733696443192310729986741018924382080787326266800865886878014105463490204966865471903573164597305908130732955324042045759603612704808399606763739720573347553945548731947874188515825715271964762585807830054488584382717465358899853982070071703238596844979867648955865202518613263696745337194429495481229702020272839585323164062849937905990419459398509644668756070144923943548067965905443524824247211718640168396267447916911133326289313480038273541343511542691460456236748061673242582786034458098903552796834282353997118988327272883658051239074841572795160780468798636046619834593601233520001391112800397269715637707704042780585479350948146165993984305105657903277259392459236576956438548826459104572914081150440728500060668334160718720208102649081471075435118529085511136837184252340004351498379353179005048727005286480273399762992966124188820115950004876201942542056543221722115862389632035891781324308720523011677479364475529734740020454928642333280382439284504308422256938188434889568984904063696426542509499102806101464291235050334187398277663219970988022029641914420025322433437136244383472646858907752281416721321634045252314404883246296187928916563761730951059391697953998033831166389633021606400720063000691358190345565592675152476957204888310434615561257062713738936543862990971214157411707883954002687117839086384840066485954408007486085167890138191595023270234745998778295823262543319490331299180976688563353534756925946361357170661427738714666000676272367207029503904540253173128585368842543356643414645620358094375309654765348878670877893598533826385760478979260991216033850403379692490425999676107231570707792510993670635912692587125553665768154179038789189625289343975314815356636405969278586624997049626328653265657118768542956701801765057185607823963488715097683424309691844186568065034575490046805480964627582188962402976246183205426943100337444497639941115244344717317773899183529387005171357050351150124319664078687742724269250731435354185240614073800944725863527218874743784370164622936617534345828722789801445270793825064063049138762212254342687653161671312031840161170321095007695595667080164442836496640484357709734653884258985600850233018132568120475673763065472759290121553481885916360449289096429191532031595483961476759945186045712479032591316332285903579138050648403762407352221722981303229389961743760588345835296572171008696811036422300204833940953506783331156897923205951291762335648052372600724792759195714941150338438988863713972530486898780760204977683721592278258218426352814860849858857854110227694259507672037469432581684852295554899384944977423547220443381056262580356144232898551663732992463588474883727522718014034734163512072409995433021812921735285040631436546507731303939841191716895136245176930906794075051353190937769969167941022140786926823769009485921179167454785137690410487014712346546256045263013328870766343245200373535813790238008454042477383208247239873112953395949569675064242155743755865483355659568878670267469448705393296047105259866484596020006608637875635608391285994870255078690985319874534341400808624971184165931201660953668059618009565905839473041417721259382946977689839057828324919400814460696727891642281407999630314672365535475894996513165847722751228393395963797308377298005333088707629249572588787463855837970762659629952388478106257152268570570846532671937586857716823516981258647831806185125017768135931143588068044893648552950394945115220796101784172252234749418318235023697611747852586638158853109423320112179183384865616328428369477661430270457139120822715218943493379356958078718808298079298789784407523466705657359572533131932789753342403844249188707239687446298321205135688771920116932015546832316715799873254719095735619447022498116428701218977761672381879738419386556855983391667451502563682526728303675887632011215005276058875737775458158351386317842456591343797491090859413316415646058756518157485403354794255022781272992263057252278419899932241384643344912849741382299394917714066642324608044460163542506543693163902239321132317991594963377348123620762518980236351425653658417418071218958273016699150789083018369857768493599586266996651901307331415851419864781747272099156419944996198615635620810018189377094072607120842224870106491627757324415316821949803687145812391290122734490260771128819209940437148688548528124788708877210810355661596119604083061883871491508895627283008115700836659550672796782218438625747389029053367708195694045268368968833839209828703443416533584505570757530591713220994511604417259257443111094725819136190362433610119959639465931139474061449818500337070158749418937419265191221166336816800524022964252969084675823325097389235026764298218597023879688279247137105110679412305538634432120417854771938810397810075699805180508209870455490408856968262466633175909924839892196437960063780453451643414062525059780904411235910387112476693385479097975302901211076508294070323977798957992782974706485295442815460904728239936009934882226054580824743249565868422267207585077372363268430338686207986834061670968582868845352514063160477836069665049019784826822799153689928249907797443240464040797979173373013615829722865951191001762865586398132972226785796367884802148118851339120835916502062598262724911846384051516202115765774948448136971730068600285222983551119643164263581731507726772007206692857103098402593348183612275761470195960326811255847919502105893607421400669337463998779938487740053783122901562049679364583562116117087126803238271560101389529368204596387692468174211320427151245701807325553115255370908833833419108280833654764236267029047455943007097738253335258505512569867437773541426640855526130306444084138408860296905310193686936469859626102097110138719540692744170460803233005891061588268910940951063916452412336730121586484932716930437369471020268380289978387472061868085563657689588841615979397087789605703147228889583690962225781138983733365904905514068401546594838074897469494785821461932562517606550365642536231214791679073330660718510263518406095728181390506534907423385052822334418135814698530147404467169493015945219760624965285413165773027477201485739878540892568083649947146544629493166509343217380918910063614892106664680231173278930241309882016251296575967605527186196548776199520369379198922020830774100172586012149610802228948199522667670930321739801206190510981607054785790898396044921471711230537845184606196363900577882051620842405072784686758737004774599009852213877719865315374613350722691602964223233959851136044383722897285222377104644680515289846213732511298844781606541612097308777279861237194831387534001347203941496290336490446086658639663329178736917803050704405653401670652997012113854583204617662933724264731902548830506670025003494786693496534656002443914209699532635752703321968338714707208577152025718646794170436392301470336076057441162879228952218684863608502569925519052224494858966807920603564385702187963567563108369775421333725718564165030359342813091136175533640653082340286761921591714417111826879984244425810927965542402502804053792871989244363890124326523210110719194317859087531467712714115930134999260003076672068947644449812739063324625014980044598132707889125508059417641041501104515331532562003464087499824522590554235048301879732283817824502752084423741628787983148843422770524374277960591954550809107318683137019038117246280751824900922883711469975326674804983962310901731905646883034090668815307284752837544660689571695464320929454322190786451655422566063790079711081875134658024252965040280424754100764522210829991742727932115594737125280789721294253580864153593101064780152259883436935480003525314897488162589723561535158553501879045420666981596080418996574480170391290614077514343777047009148201323194249952866936689000191947846259923497156031544888881080492230161944605573501375612156075220309448129221120651947477531449236113303891599224019907101386019099050884248038132953265030162790970206380018326171362814062067277917832590833322135765280370881850390394337708219451079106616818890255251216467332344132420616287559539128606320035326044732840635591678687064889629140752165028137924021605836811463750693436109075048491441700549851866424902075700993645241002245880804333355750539382996460162839144655369749224910294077251329839097455734348758610334447698391913769579943138906069869981836243790962931844705557321603884707813675875881494774244968800205517124415893680857061413521969928091141605058647322440216720038665656911282923730566515621126631520650651364678443799259630654617744196453689295429177486585769590526425624547717614879488483658750848325111570768322700356627002987491266628865813879455449398138128658581731893972881957086295755088201114772422397615778182246690175490729479631375847196359701729478992660595614286663851827796744549489280125364549788714409525789210569291418386117544723462060391525547554936675331545846069383777993283956083904788158177052893527311856307875411459112761237451655203909662691698998141209082869989950878652068227089908071585528573185706577135231950715354047085554243718160239124157461218845559598839353419149204921854491390603362996597503422824105804807607535749933402366182544205250441107014410887446450003360894669464316470353720523764321792654294805537110731853970766267731740483080645327935202751199915386697575538059751409765607496600853370766739385782104780240337170568457016931825204475787960407417258918286074111795686659546583467802505326549770263441641022705252614808399969777204269012689169233506523499360183061502044674696256905551725358698779221202064241040942549286263466660539061356077548557000719428940405836065742470188903776344402233383219845833431675685360569399292808248742696957218159638444410787508478376546779317151767731299852212210173396050283327884483633395595189805441306485457077393676754281913836167910863412604484393339751632113483733552560836225865970344099217832350123201441940185536260800267403685972565068368463590389928476626885204471278678246329807111360847587000271740956627180466138457307370774086131447935053190491586183853621705851229884142486736670068526740259414207156550523299667498856501317395174244704535312740582544876529351481632845929177530716784948384573401591914984891548246725422890340659760701304860580073874648496616559510415638526794820690715056623731418169164901948031620617048985971318443137860359762027658933097518812532862264605575365169561529154063141501957511687760343177240043893940477921381949638173225245623693105674993764563456664167907597989355345078698362692958221343261704327810190944866135435882575113889075989243794990429666869898180062744858796256579117346184980669465362094065956419174065758134798773756131905523503817186414115920499112525231995787127773696463001304978815180198558126010871738917642059633492486838734011578868406307588934051765907623287887832667351337221654919763266357306980936871456740224937889089060617445814813403273776551337771759510344090386524980579552207669711505626188624521964045426323023791106566090096434807368488742290450090132986851921705617062709515461109191146492625324334987046841796841038733749913654574821866565868370156346007046953013216931894511988991857225701969871549147117814006079560637966903113221151090185898365355797382836733901981161235225451088141260388370880455390507209781721968799364709089188185582009749156129109834091058774873886938899615542221787288330706007891760471378921085883608352989685289725037998670523968837962686313788388999121500149396088362514278593404106988687928389922907782446380612053756278754589511434410677544186753340445793811294998201178041589237360419822605076099786094345907627845465120867387277534076744359624914179951112133483268686151100052506860078396090626975283459424049955032257233397320029421958858760583233212411162678292777387460059515908572320056026684818745834516483900677377292626809423295590909859999390392439239625560242044290816372405439778311416965604201406401585868426161043087404952253218862691245455291631831928495508262076884118655708475835912779261746554075339734082265456217104700792096165096570796478798422887404185168291472756851630094006662554575871409320772792835327009175854323212322227982752694872870108042718638916591140468929761917357800363253123907818883049375842829489310471916812140814712236804882872673576518841205175384023489720839599414733539024145774120660468765970385124425309594056785060755610422259731299831588913333505911680780485740410786225556966404871246343561909640764373659432501828564994073244685130513970580595186663262509605447106060847560976960608368320823885726852039670720244889651879016462426583992386262133421903532611528067611828145596153836689324057801210075410150713658285329601967310436083739914826571207152430687550903054007765036678232298969887314147420426229634600940587831890343524706937088879231992462118133224405177860041530587217165231900655385582346055529547210899916519655758130304032421502372441843353492313851258326835581898674944247397708722534222940166084385336853295262928261508089237123353661179653872270043128973458176237039677116078479595058082783660897961311544020936279499772561376169557187039574651168463765965177306521267297139831193876820061065152109740677151038774896030738816763745329773224324440195454326551680010437043635588696067400618872753768274673363530183994232323916334192470289493291230133289663381819514522201213685944236484666857377745231684777138244125422141760682175194602229582520364161842078556289371158108082373476040312397547562095705558752393704183195943482438574720442075135955273604016995346667990935031428361544248665491412282358581374814658388332238067629663243596777437447842225084807432246735335592924646379313318904326879419057969391454312509883603245684833341435243637252094736641878779700686096981749008847994502551651466522577224453519254060143041085945181272701010373901864246666927793421161254376843174687574085273750001039923305396418689420323250834203253969592646517496386871412135008599710032140074490110989603408046332939924410994720733326508443047109638831810712657679498494216081984124816765832054975109156537549976099836520022396363393538581003548302012633796747314071856429917125893388637137249183911867296954901728878351190489780665870587556923803958531642959961304072829865844138943020708679095884819671837050499294488003710879113541866233799669349020104560384571465995173224405024613586394124441376747914359796989139871787972700407732563360406850312515296371574431788749011052708137838935398901685220079819580777956393289016270179871795684582534281852719615017317746500013079585957772138173256985179717600143330321925912442254407485983970661577128508533652681267680644977239407428121070342026218600328169330667025901281960271122759786286235244471960100470149250598497625202995511821191290888892395569204263680461043749820603840768407872935026962391183068055088744350084998093665927035271001931910374290050828704628299687501366370109109436127442724775214782406865970406981773294626086232476877448483676486000056615495875129316546053699939602043033605786280265259053204000727326720094505504429636233115502884859334667978063868367157070194516321383369428451149970681152639956289688146513420411455495589782944718039174439398714055361358066138501135568952595319538556965771704981285771391986933390873829684178827219786928147254607171852617321142336625865561055311645047871148245404808560405702480024083390188801507817635394354255555655193642442774265144241944904732316842720161398874352373981473553907293166718336523625239937717709926786111619925937060661482165802674748966697558715150313533050471523443123700466874013536389368450577502359892931624840306549065728270531502237940827886254642979294324433928208500441350988721288685551297659878877335995949869654908075698043328090017850325713066496641543718657739661691145741863858272622801954718037860133568637814820618716902370899975111701894907000448713903190344197528648995519305270953739613960218015949661501779448059165035067363545186258178041326728746790860724731338915530205654837989657999200129180664699778312046637985399357466749004399301759233864144464500298741734226873108894773840826092386758869576016570152721600928809485817286213035601660659225526184245780348299424379253208901233806019557735267021969384286576789617194760728705275455424616666484714076900096223715509746251620158214644429027151824619857894157930660735886426929213183256457266549008983561059547540944510985639020536646716033232769772202816149275201025028059018523644481675309473918002202101034648619798765394349928250115577780721640587624456809607279977539564841758238312506874688968225127493457021754031375877280145490978530833470422143328169810185300861574242710740986530057016772613090350162946132675597943276292501788130330122006051590734886131163141542390904920383402918204612948353490027556792085855137796043594011840441808652872367721495282601928551525638956500378231193549064956530246194415556909608840572724968172937200871857157157046679213026849035833155810743711972374579358472162952666991352089018197883596749528004430065731123867912286066484638272748780476081097376068489726873105861046220617185353860637927496958434964103464405746435293731503705366056283482335165125219984402673399549172387549927799275942478069090891113803903185429432296246708245675937470174961911757482284046365758141381256246317990241038991268489429749280466566587417127024232202294940637622610830136387034790942106613650483416790343312904741545756988741417701184126531122581996503148687724940028143672814764886627864404146235006101811000229945797126806781668750793418336779497627056695410373974300739582903727353186582052153962642567357786101953264669500777432024167851434214574419281011341016764938197990129989151731142860016974410291838871990330486435090111075355801348241858913877968627971717027042184347321805055790437608924257782933390901803916863169692241925196597157917930933062887084048385926619069867429092506375498922945499933573975220757137656592516289352664858174841683028931952273249050086934917344881954756400546238843541643307960050062370078384616537944559934667700642596692075514548805500712304644339761963053923626592875825589647187570331622595381816189590911735804548661683673407511673688391746395364976663411549206743268170207176827113677219882544273300070792143694312622061935102917100359793697580153991699483467244532391827181142727736611250745010748808451215721791606965951222656257474155911104071680312478274237104808137952795501632659610728889173024198195473153611209017627031803016180147586921215472614825033880408215454859105147676091485626910964533019044118550802265458675459146383269472469531692719856028020637088366159874984729686711229438303601775213225801216104535200517019374057416617374252461086433278688816642280744000949295822245628009676705813500704062958906717014247329964260118872706596950536370725231812865356898763622572356258137193118070023741842799410605545135912298444800202180026615331360959395468637083082098347563590799213747824151036791632454114079146833122007244280154837140935167255692024722455289495348601089853720637376897971179201336181144658643565476310485481418682489976236419574642577892314366844854732084164073142641471545996994189854516365260238066196924759649914082995222498200537336286826347166163342104439946084294767109388574533834033432621478560515716013754832189224569361873508785278736835404658013389719658603487058347439668939428195484859565019405959463229357256511700860755969693575665749681310804653479114506919907164157187501648802789746265745126300310191172653155229635536153429940533103731327921951656117608705935251985701947405352928503484908945948252231721090113375974084072694499332689974556627629631640031295859913399891927056161579150053916172403946442020518543805610133127766760071334430856066673515587965163288412742454468294350370917099651947806542047709599375784717027380925437101145759197213283201077597456739368035078083850028457641754899273935395608495553230215494619529894722692372608864896089675542553585629233506750593888366533109824601888964178910958133518809146201674631633993694970796807219258402832441865795246553196123050676066110020918290790245762356711926373162447388593450745821645192716803453509040388994265000329894301820843958463904728365717384689427116792523540523589815825805736624733309767149295155350356231727978930707240806856058988319517851564761946161306007129208523329055543325859317678819440344928687150560876189472805541910548682092662871464593989578932441918642047762201921407699214028906420551677789846404549626453019003388759599979359927094696100908239503494965003123318931819945112571815772253579233425332406921157379053118443079351415341063130100924625690054764340509868581119215721967989589032625963714377749624446397472476112506911345686155455258266230402002651123064008058066533824318453017039165699967073682226829924602054795092724790943211558742175378821694305214789150952744479595404659312431558975039198412776389018602383191496682710690501331014688092132162621622434309411337765623052407252297925774442146825924508033721197368812527657569001309590206167571520781320119453120353030740311721727836172303827753355787432651646047792868435774296336970148329655852467817402968609430919894886071161166833291549503929087931417625295222890565023746925832492438996997191923843534708230948773072822124989851352690359708073077128359992681366979457408695588183203363711912206539283926659025189054763051936996909972817685902658223697549935426996874496879033331007285894876265904089302495477487042590370117460962579665494310654283782301883105478279409513419468397550129368287846522050597053387215898209426173617806727656991095601520042122970278270700220515523605760766107318296798006882936254798623656289965976562450763364786386266910727932697052425007819558271015377773087765001328753679181292209809316816695870678339826566012080126628620422231933066588259647304561495019418837155082749784792950940924683322279942400012350491658305332179010669248042139786152078096194834996131425490291779015278949620285560549685500090959517469446642477726165888890809178830044937077876474165037778670530122637910469497858568798025028145130485314714729486873986396347966475362453836262334122078637347139852674858113936809951680532864687577897424192560581175785032740486369000570791521490364460477322768735155452320681015296812830156532261628528802051662458257974494849526694584590668218035980106592866387859326742434567652494583391223148963189593385229580249667279813701734446450130716202314908345155271209493149842654632334502293875257149087527034368300472691087242163327087741910301761161320311698029893761935841519418268179333876856589142394138078774859548117784809114166369540598477688224554699478919474573480722025961588806868625966118878228790880271844997309124736298641448519964606224218403337546058767820214149893879279345998899057942163247442599744863367404126466264733735431816383530949832155237218619029497080336759457902317532821075610513956128572246362607293175665695172875897885060575649427117461681060542268433134054174147386659289318496967876310935981497299948459839588240381908721025171934568730226340768225893688812922896195983903849557645277136990725827098230753714294116069411614059628426235630837319288841519530157970217795790261838995266269777152736577732372054608656427699655700002287673739303047271924695987842851010726951205550193398425529656534371281227273139895380786958190276229854936021568448955591474333075042250922183902486042528775773989678335319372881987553678315670212034448118834758974451149865623412578859170721207920403401359919029813444774761551211851471630569312533879899663376717657692622381570317317078306269113202080773142098095226523936043464601174956749470047350851531568921036527520113439525963017087694518746661184108329058638500694283068946732254617935439543518647692013217885839360146148317330071111872719034424833778963431263096706232525951440080662087006103498943460228179267847644238797924539715785867983912208421001812989343279713071484073709455092973206791266036227315865759942626675590763131552587793470084240400274988179556112751204893448059335068409219149834054439458554896249618581141041884533697379771217056264563697726367686817517090822891558464021996260383748787620404919782955161376832812687406467789412339195868973508318461419000370424718527204584312058936988851018748099535562759903358956297939605181158395631050077136754291777784763880401093074647695807566058574048400140718330114913203994422618927271898951153711733114504414202769396740804184510574499170376483814631220924641196555513302772024322513626291836651303979675532785811510259010018925803224917359129959325206900988211654464463768102211266222622884376281608468505529383363600958819491112105907993688350240586611926793239370771696829345859906536301238066960686659477583680173077142561469314633241927467813597009058643685835384843115648266446759056386641713963562222624310272294329132931219876509221675730858459151647878831919302412060564700161858841188750079207745282757668228982099106321623134147433945609912017677194068411561601703374708803112673514461511626001400272837261128326531315153806207344432889758775826742614094448105280817698368454600317018766833347096159808964800577974718454820366587382271364871008810445452260974879115737672460908019284586619340995637268050772537786493192639567242079609094192775597712313604220380036321882407988768442558432238425584379785304963098709348685766457142458713629531658814868702742491962142073836889813123511048778388757350386694672372165948735836840511211432041309301237228881849567045031209053327140852753744935366678158167978470519435834334440794671481084923623414668016719646579394962504820879055013646893192297338640113004059332882773595200913370318263736462668293202470510186392100827049632668628245879908736747234442947817650291555991284304128957177781611031101805294936253914023806820217702348451518123013014948441363576872214823825713639630853171938803981866524065478364692896286828853771450993851180137761040534633431359399863123015503768275306902068349302350581124421584927915943971300212241737637062362919681041440538551115737316979277551404503552871071765965324921266236292503830128874565229721871343366434364919792212829696798717527477234526281750216154735830233328158366858962339049339428175234003342911904556518257275059545570536057271998272011958982408128994810133242977351158425267497358112498874682168541163266839705267232948414480432876312396971348946670125033926212521862433854745786288446087662263494901313809541726112554750128518719386150450905450622786476381564313468895809342654759137178451241274033661825069158486902478039090145716135047457776255981939593720136497470643635442955057686749948017937320333289660412533344038610146708655244563525522702597127748120174760411706776216830168157276802668321709915139706401970428468815771255670604786848317892206319314506827327536269461866557244599089968781623814645107241800928495671921832501268383726544126694983570401725818241049566725073802335701043099437738441240694059516118778781746039922935329179609282931247283738190630730552276862954694044518800645944607757301634190404968061017090527934265536969028876734384414556992722459085632100249332288261356925722844325606465345340062030211083845524085320166018907600091485737865732788113800927147213337075424253921106819598426591406263809545815928653942441822322885690129890820522846018683006785562105839240097632381609110253866543822224647718923123737017980477588662007144842999928350648391130751235073617151546073696121737340998869099892270853401946731461455582273179835511351420333823680344781606024086733460832163377543463367541661965143336159765867914487782448176476238717059900556543030908876549258077838710410717357825545887174338331066082966719131453537648482628436721679367460129368067201168107622918881810166048337923084173996258537937467977154061186419941056173175965222720599065797177972328058145094389083856262438180133624010210636438285674574244926655041045289129249082582460894033040219178453268139400856383832190498086605668227608349536454566436393757210512733697371951693160327969462875590663461624321136040070458209537605113766625439985575418660238731412710592215245696804392700663931652513218966773713750634121381958764197901968022277925463691073991826293837149773754001507570201900696347687736574821102764566981430913288378533989835151109480085251824791390032720470042641602158090800799406011833103233293046931798899413049696864020791523334521300843139526417909267095172786391091075272090623774766701112274708571167645982595028582369888910494829612631636041458555415238308730643829761639526297430097695004559778477184067201095312613940962479232562770787665882114486191697380292336577622011664913961834630412855596165944566073518088328492493555975741693544708620053557056847259795638790226483114839553640444190231732373644033422304359410661685729600835532668803403475010683639505612581018743770302846412906322871728193391814291825275279037003275047676508335389345714052906549548947259142887791236856288275630499650198882055628714314321425596032775813455247255919553468413947288604921394223442313056530705836851431966689585129100138460153741733232520717186499906172611723739436884587604869156677882222635843183371688949771040285910251487099771212427518954362913009040784115968716735361707174287279345856422869735508288289294562036019257902855904999296070895903437835180052845406848684190390857481465441575343894088493212757002650065229668523285758421918037078427404774376495862337599981939542832797944947884364548806045167211059034128298679326920878013362977579103439332760690117091953733340142417615298470616861618211754434870816977824001119264787927304096755237410416520871113663673953200321301969994800217931777792330180779138742587642153514160860101699525022772802038975304416297249490759510142741790847461166261109280806037640020156713817725411902050211882783299061708610754771357207549392084271843452841793698950657681760377194123382386047027402498506170719118167452533981389159478376771590236487531616440251123653099786848113916259144571466853047042537422878585795178369808052380275353621698595017621168052706463660613957467118736262388571054404769807576130640532671443708454924560455895206470866826426892033255564716351564619757573499868071700453330294583095942952965326376458147572106977470544139797697148846985100031553490556961956593933956541126811518643528172771001959614197848287761399513391193898298958513866356479123219255790564011735554842390350154845185243402456044885112347663050317273038888009243778470974414503025727838174744402916779894688714381843873244973898522830839156309208124581184868004942352528947692911461324791889334867374890394558231766949284927666623858402366329942731523987463775381311737097379819380559607575212279701107320046494761914771408960894431306376584661798730780060972526034468197777596497838057647666828781735111570128235800733023122994714149412164285439646261921978565529064668798105260257267288689548268169379790660814344307823028206546981471052890828486526503254837715514839619335791816194352566676027291746998241384314930385642141506854398788961820445945896397538872831099348469663404053144047026173187074205459096688813231621146044845826323615565324919579800218006354711004394550566319271587654384694448936376464820655973009193244730450031696278224384499854890612780519950604297859585898373469152956741174132574343149528029905119887470752986172785824677078527012697590246430289602592085477117643017478402743620632373959383543691847087828950425172005143734899060694282022635283940371615815797555744547262575914935235050937625697259216968089834658256094556436147633966966694229222463577650247474533523997114535032715097625935108133593928922900522552795906118144661427595767613537371479424287807692430401178174542026863159534513907403592852093504334855077579365154136988879072756284578262833405359637292546868032735119707603367256717004385197067911891048941253744393255125749050746084539543574043324606040500009459900155029280998349818274755110589187287075434668085792292226420732689698029428157586115439813222408048934010332061054136133558810658415812346482076865880166863591361571485575358181130673856452626610484134347346945818001235909390036063649325919262262288671382471257205367255538147726084867739793049000275166813801591262078207277611888738012750395279232033723215505294349506748203685894186907417464272962528772276952382138388694989695130051412600860888633547865876904382161857812301666426243844083778644861787000976323196229634542186102847697628285426532099707490255232488478325342927669940365956617657705219177305874980148471313605494779703359622114599960663432968012975718814452988106334745082465307247170638653994191705869863416589213822968096600569344363795332146897620492066038639316902928540051340387272464744511590004887663484701393077443606119222215258432465437585945574751498051284297510725320691344955012177381929624391678426679215492898234038144095978447142411078448849449076440615100016167953980573969205867248525552674821688430013797066476316584169715078863186722431584744763230883425783485925073620231148923320051143663156448825668550624744308962868928735069746321185609727684256257929513460747969792723862722031397862125647172736724320987946949393016594191922306300843789736157328502438759650597188022489907436565136773184871354633137960837643179935028134390507561883024444493284337296890806957110146435265159260558755650519489660326287841481462694326177265564888975507803179980772003820523869434089205693492750485526825634710648927208715621069746094801433107743863975337370227553211101699071660403935597443134922959047944459926914822353925195408078257122133060834775601640517977847984532643876927094783304222165341539898487543559118843861213461652961711949195754683741316810957549192153807692945384688833716336273298910869896975583236349646365869234901306444391466195676378445031543577719198578200591455789266009924011272628917556252531001692037078891683729175091232335497954935184860249174117590725822675662031366573798454974611374857287205772359706380453898181877584690327861996684665880863463530831082644501292768616333517332607707082562495763559995420258539095253659296244844782917569930672746756404758202402785846289327634780837069656726634263753337252471942010021868752964388197991045525609982363572599876445052887388077850920160796835696303131540677769106089043238617258567727911017016433395916192629540810510620802822342346104378945522144601020083846511962824180635970003465674630584033880805549803821819317879631833453429119412947860386329294379789318061369279198530341471586355066642850562239820597376388193924666254976825363018475415435897504809782587918134249807507801046343398765651357512815939521174572832256769970564726399351243523212524641990792560769790385446631332249194705350517910369508984226160580587178492571528722730820694917003943583497306627932170165238806584645809986071783281272944363851853148100128574029143222172683745184854437933497569396580727832537510444081401809626355873021316101102578035018727650431091787432276496023648757007692707283319858925078562961813464486733684218410875219080745751295424976710194078574846138874137136067453453006450471821545518022918267261314802546188835682089908596077012103618639722254944535890695521177122482880014458070444932499824956653453078259705056574062695870756773517883200062075955133999074350463915895348894675625063882164855223584359399279681349290369889662133779269623102518561397818455477962321825066259307751952142770170009458407919371738515397359790756290919727314143590136511261713751948747468239340028195653552028991269484953272710239380017735526273138617600601341855889632442751733856887356950938011870966529552019050949445964125492263034332793948367584569710235252155779049872621300571753160522928497076048183566808752438284404352519851397786943247234375694549685804995511747132993435450538953841866322806187731327530615341934960368164201593222870601554714310643043822522401224694248556211719455092723948359784645681707908242842190501094841878043160583843633729826889341602082656442024721095855446399053566298144321507390132576832941992248941050260954722357973805422226475910681633425403912859498884925999065896021923730013650013533470956946720425539039602053817890884169360466881285978630708501805026839642304208796634462452934630327142739183818242057889833310818511311060369702167811633453320831480042328491718311421650149274198563298909546996105813377441291868282884003730349309108852681275193312453040132350530010672865864645791649863758144553130825767964003273551050097981828189653408539501831681657261528499560589505579205285834210676114737466705783540010997665562359651503042299522735777093545481833212826798865076356223596369916324454065285243894600367737964847231342275369804373206536491433202533802772824457485548600317645540924370800340641234374058824277412483535670203539338440507546277477239664690479615712632559883502103410684156817773836625514857018617628923974810931596504287141491052993245814088846624944819505663905695290727946541210119182109380628511239446327050985043812269086493934404877338902083750085119064666095672703087960282517158586517317370428459065211163380884666302590593913948516499036867857702065141253344979839473792925347259310636932289836951864582206742312768903654936244594585743036489414380264191799389957920065207323007122976931726491360328649659848044092430352241416462305625627543291574456625933172105335724499132100587828556450215513603042136018620411668101099889340089309997854657112353783340293832477722135297632561805250433278372971588189095866730468873429551736373132481125232934710480311692587978430005928526429783678180569130461283798423792493804451033079764509688919740115726025069575300300792764574855102947849656941912658355678909206081303434275295509150501016032887276245174202851750990307487689352703146391974575248527245274326020231885919277632767659833385752519042573011246362224290873536602671898401429951362271722318052867829171276888181537137776619925286731204769767018271437163151068721477547473276366190849053221420828326104265063420781856132788876146020732515598908209576701165168246946229849626162296602275469858861265373844251495004535776600291268228823716581713317963082958513553292123283154873177606139518441377982875116787379467226746915495453880512239156406970826529029576501632038529326309493510844119539420845820675618330571945178315769317239043116189874864995309729970847042444686477753599670556505419061819041418023373571006472388147088808648911676518305194631742835907263936416676209571614323682339063417429728722688301407533224857118372686496780004458792040756935602802596015249943619552715179212889149966145468321634393565985102636302507604762826462416699457139891257045191120254325031485935437315949787933188825504078503826256808974044862513974828020561534883396391103978865324267567341528920922797760103638374761503980518676912600621751429050670863500209730052555779948753145232138454355284410940791569707089360278527598244540325288554012223903306792860250034917111284892201859340901706559703813723670901603857129730026902078157907558851115677977209066495801446990525565682191413605516652082498503004133652982142086061498263116196593729359593887476218802768242683597284250926457744767305056137053141157532870565629178222254100877697899554834983697348703985789922925809098615590888154490219241069156930767467632756818104040562200785485834892092183071140205239733488864133201106978941764869425282731066355930789500128139157774778830682536038996357932106376655614724464622780192086555788703707638196674371682073567982447147923456606488107000698206866409901956404597620663514032837759852018451344507151150717099022454369356953343285636423165918127370706820711527452540719212417690419213736707345617139944150855446025312288949522357278431250445763470560885308130708623696021640951615468470083934114704886026692154335022648424725802939293578315886270471831155735410184057687756121989385428537326265042185645848425810213674266690823940665276509267515213472667779848138126049926059559123943175592674574230595863245258256425456153553132668952046470847556089995453421931009504609094490647720638153689152803198342922050605434096233953131424507923385816466628965074815267449753083823227462960643867336320690222899367729739747960730724138729762986090796986862689781655750744426650305816077932431759011695968473240918284318556674743046156974628876931150635684234006381283414212790133508733306894833790094578332275341114280789951627336885786162591659633218648679218544500188873960867757094503480988509101807418189032566099427035046015288847087495835404179496473392222348300874869316878685260818288031842115260572615496252670169675540715548800114098880937749058739178789692256725756069783819067607544224235757004749766504673961808819739986257056757918581578585731362899148330915211640723460133460410367445343869861981581466313201729948001781318033912013631421577925933216838929593509908830122862663925924282132553454719198022527813505801825378123351742971177998797621783064125421706045607375641907704814377517084356684157669464592832054311693905162262876942625171148221990322311340364038868887810024458631343863989619162488901945290206311825234808282556380053566816587541900599576718497201916260450734827734289470013632850309694200523084737260455204572701791501202359779923150792783553662556165051306495795212193640631912538514863943362379577667270220694315403979532464923128959282888957003182702525721869115951756348356412757415804631542368742572353363741069799812719136073657873549925645627544814268302075147808968596728967668877198452998981922178481476803004896871708263845434465940983054432211504303472838874912713729838852770330956088989116020379184079107098282291378824641606494590208210612337188240938273107435251809845704988207878391288296592157430989693532060306339423368163094210049224678460660424847090671426211900966874420176867351314738628967180099944322972217958951557745988460627733753053142495794011533702954718642283847479200498801569684762514604649985264636964434915191037427225489144573863874024361770736363998278992909499570805630428917770240367886505925590016632510397078025134835262709974355684711587045879694598493562076082531197538406459271859421031759986412700253703391849301734433619397392761674264429864490632306908803403173846091592268096184895452986600273946649921320040104357661266379754657308823278677198382373156615976292243492472586018820681833982881093656635105804124519297408482294488909519869941027567744478044764997555912188180489660410772996572815884486698346471950699384525701299749820530197589824309272512723701694329827152255259407580943072628153204826488598349068032935477000178024997300687479516618965837766974431958463067977535762880168363145858927753608473607928176098976952785260656533904864973158949825611231023114063669571144487179080359572273509307086233799612906003150719513158633537008311463251730542890193176182969745984250512981933553577978845592970860033560996351151929119053031301550083120631939420742961608869319578048968983690903849683853052129179485791901596381600329000640672087441257839468054835521229177763381188128372891417811402855180171428254578898142504048885200726871605171229227591507536720323190675065006907397446766648548448197664911111395775349096401569733083992014758197630703681926858775647530572152606865512077415949275008053979487382556836982903430392750674962514257916657321784414888239265805004616160862442974548414986042885617357856691736114464808723884641743259858561081385666003073582800325092939150115113772449023763242824091536352911138334285354832643929434413051290152817929746679684401066675214627838561386137067097695129002473893842852225076931406134317800553152566048178615997706569124595809593088479902158587934202950098452927788759368930874214971265825145340838905063586120572522939835068466996102040156223200634989598798633343410391088401729008265190131932778198559499333897947209060484486215687651037268445056962530937542578963323611568047802876842194379986816800592944256570140295708911443572306740459585226205955066200612136852310875073950067924650263378644471794078685254044464313087982676113925794813022235994798424278356595015597014433498104947647622923735670022501985999000050483118362925292761549033886787447311482703643888173705767979401033946603858735714314232758433109391884930178623086822020062888425658705921056429548179658899963263949291661098132381045941843951064511784884752287161895507429715325049157857898134177576231747915525253017904199592657041847142622611289914627469522752198685494063708202126759826333828596012254860815550063593492421033862953747139580623679319791590334679743476026698292530924920087558222308727421912233784251116629128376301535772908318623802945129982591864438636861013810625627905297335543051089867223008000935496796239928452737345349436092871585169188160801089142444641520996519099135510894804695041396929586679788932709625871979719023532735236343266193415494706711345732973849326704249853821087484355608741517587186492137158220436580102102435928148432818011640971639760873146765817340716358364821284385685212186973464972918478256236029119993653164796356938933462408176493360016465716486667563461243152977739666105134918508471895248311602361151897161468874042259998541983418946144293704365752963535084340577611825456904352462013989079479846486572723479472146371049231286255461036004888055325198495094806189831662246865688822668963014852163273025684682707913774796401810896351921649962753479285884186383209532611609375463617689427065034725763722719208689372334536989318236688740868754346341689992658434796892367426362854373175761797768331175385423441302204470143045601545855683952261504378171535360320379151249595274052932385557532943564552180146144011981200881159570913755256415157026205793994964979621421946593251937794870793316860928165714415248194727491761964579961526553618871003018366081016856708424828315316412725618691235203374587515680991272242367670925859878940767320596425927760483408861595654127988943408858827438355653983940785958804592364166409554379488305819775103883205680658023635917062315315286483183473058164912571971360017702646851381751599944284056896466382288116376766907510121323570449252550032458448608513054057336752818107256973240941691063629122280126102664819042003008244902845091333731860741747250524088357838862345941624724789452608823808096577034839871999292057583248222051393665744530246912092419196981235452030963795284684348290008149470189968155053643779130381399119694837502613346938590475361102668733041213149484134283906011515287299316910449703058476063999954615580117201677809997219584260415498724558452215599517025860639318905480367886285748817365351167337838266848847653995710035209253936173516082541811699649806383383445712753806869534845392291655838369776160342670586114797722935951468327991188357156473026391562936441446523012261016371413046144353793072982871847161216055092492578126633754789696497973124213650497858078582042645819353812551828087715898513385959069955778497902080346755406757363316934800365853150891952645206894500383104617965481335912142841651120699361603109083410639580908767134979181905713973180629775902609083477109034742773139882143504024229842128723345683411241101081432195159029398484976958291437658113448489332591963127086739045704294230985745081162431872372290480657372443121655396193433052483854810845449994571094763336473447716907304862304578159073282224361522061731249752503004070440149290972395460757367009071701207992962597026041401245994172181306362026238555323492026744406325593140649324290754300101947271184337993959816942864601371378564710555497172490164733517191961875632462377038968818051410339262408628785404067202108814301452544966208725372404386562156970447938076526084617260538878062141849329848430220795201184630336708172382265103127157257831097132510464385704158311675923627421212854099151691908218259927216885795185036634447685245422461755892570476282827476573785439865503349640387868806547370588037852960865620779071272413719859174205960129151650512963774564639829234319049102949544503799795782168530519234065341529222262755723382007102976262421624918444838121389204409601428717067699606394867721427443984531856383128609753583667850081771975451318024481178940255996154186516170026195009417556457360007203260732838668345174914955325879022596460215019896923673311481817506738383841552541286041561872502100324654230741849992626454846120408839380309473781888910367674369286434870236086657619996100901698981310514305720972955366123489655283268940208688574360304334643729990326562558402705082788526261429592902231434950012054301224832697349612276163441308402114884803771677447702408947915045883593409702465191981569041136011076338936801766948183794826341894569097505387483944087224203643349166951471023063376283463635157365211090808836658364146548845036225509273163946128145768960475874077959145184434761089547927172587446166576402898694585812438365065677719174151112332046817014212044750740230107628693109078696436451333744245296545037688479854158559352781872183886323252960635022505520409235650085490514137857048215092685322843804268070530884794415711682060515144399481486912408861764854329315770557095642929310480521355681330468417672349070855073069845055132849790900500195247894746839358473236115719969075446338213638815979982773244301542107462654603003134259508760108358968536850180694119924078361687398963470482093050636129481973429203418869593469284120127981677093607671849508773629587651782628745929717808147596457327063593897432848525880791044317895651981458825058567387156220435805204216445969215404318566067836908885323522436519608831152215220362006892096045446545206506816579063998038954046979644712642907188614241962671160104769575032671555963996745651513209258990325772169214467555453900927088534897220281388982677380521035736611740333041501624842875740814822535306451747177752743302963363702700357993654804292226780077779161830171772707171208755589521759531967569344652695852662184586867889485689605087707490964188309633581547748890608196167240975671538484205448450055543397755946715019794718571774831005342582177930227613347548628378558995845731426387993336624658319316246273820715263288955378632242057827673529855353698806259198542164356660172248221612332771972656551366220379142734806794664283220368244937298901067052519822193075454350723563068536710414145352310881016463660671917736387482999177230527750310132052109031746104340069452576665597458081439445556194378368978587686755581985248037887728045402959040669551262070815851919340353350491133285901320734971124505943918054895431391856408398327595627203948085342141051047606187906081511375580773628128832170054566629679813794435017326272524864216241118205536460978534144095314553078927480485309806860631311894776690702327287232976313522153806144972104839397822491987013813115390290535587432423380629514963026931508894182413766678167929201269015583931951838513347874977973434543120219399706316869488895442823412429371723172101343792855735247065547245551056507754308286375505430698337548308278505895966833299176240282234562755641512842948956615049741483478035271746993892809294125914477952187440107579779903362918122618162660152686817748579641510827478484535337011647412482626966992312708120796470835810137487399735654553836775365979459259202493311980063314971161499671276154868536102407376132822836748634309217018440908103934396917420940426908841481686321381075006620650717726468201659298829230497400471684703142568439156497438415785709001832605193051429037283545992379006032870152444200132948634582265087448977663023168765926625733660414085948334227597054363164987970570386657236052571287839123022296601148452776703229310143159687951483039966240896357846005237883077749692841497942385690633381110048814206793396860594621468309469594113827376085277465434658323811768275133246569032303701854927509450389539664096301641707648970662699972316203654876715750470878568828158984663210062673783943795033669442390200837203145374229508244950265994014534197220773039332412516880147863127763736318632622330714727140794403574261738796988577870795514646672638905662544771005656313049925992501597866903916396901932241796065139223539458795619903880833818308640155433165598740658147685243463582884360459586294720137827445530429990603079049381210120596905885088200039498354375788566616128529828338690288838400815347094938971794649518467967807003062619565704393527745209111919538471451445097156990830244648784128928068613110747288361759994931912975843720523579808448383637757212545501032757304224166125440239750511057669685748475503736751107024513338596642654115955091219552082842060002713476465934434166974956058047776014177057439186799912955455663411386402319216596064374282041194071183539094788191033363512314634646597201524821302397220601493018647946132768709685570677407362966641152538948105567728275714840103447312352843508384057026061622508358167317527330240457028259824882756978900526432334219765665232931820135979896536948980924531022735166076613574165574443691974259417374795830232581237838800234046840191179858384157702103609324055405522076775280079508424072318084538857355396183402818411134734484101160683538714050467809557562037124508861529046820361769030406935504606024436331611670240191582812584068623737720861132151757280936919893683539404962762922718825285777135535967889961399340043287294525373663344833711062516303951606248496529708721648963917261548666274851014597105609501560103887118080291684592596449049823278897437410808291480064546918896767278044208593958349809519813844362131390438428829524182422548218732723454664578945957004016995304465727682403512256367265413655448897457500819211163686576277947111897220222507609332914174456497809751152624419433046914116310243516162275703910049863071244963091032067023448629758552247230939029349318583158837930226291561195641141738516645909607222712173296738051745801011396750775153970745800524478940804086206723497216791011280217256214046719956872134457918332554946552634175476431909178125722914543209349606192718917553771121163298651306808694866681002970716081385137250616599379959152267740948927019558916635449386403689817957846561305797839576395067605445831487480920392640669349748077056205715897290128127926354595153745965332973871394531056753617320023598138633574124589266778864071178672659909995105680186847708507975263705040220272203330022584770970161629372809375113768088259919091683744619297993148222557804837963607349441456592935620302556337667335466137166672215773557906807381652944229533309197630941092470957633438594750424171850783627523679488817675050958778770744431539171970786398114304845864578519242791403100837850289572715517899416925843099510859980849195418269169740228244292426316723570679990568265202604463847885070919028456422905226220917574076197689595264610358638666420359285450162398194177152055737467013767675531661203340165558970441378931952908718896319786580960163160125257982924304239308102706837759701475977449028869883983743719612548368636612887708261098040285283879500008478636693866286861445888761066575566067788780230509620096110788469804764221079183333947705855604111146949238408616905908432502499429662496317846319139548730672354637292756891501801742648922227575620421837264110008625435382334960234166521628443166983148746673816741538213049203006803933903585148295810987822224942813041034850997380500810918292040936531516871446403680259088871386803041334431182878136751964188081927303278267743005039532235227174713519526461017664887963673525324853154489909005453254162178572853078756586462172593264965316208134098146616056203776919726495180188991402716053724729297714254788018128850305269801848429198118357518580189600823900447050022079574079428868848148430567485919794211449253479358160680114507648489732785142977140524492802833332103765110812847841477732714743149231508110869149268199366959192170398490333160587912360225342207354498260248416878084581848692815722951329626691013996901140804979343051951250043590024559522358744361549114370130336763163819002369165768159764379422794624763237896712568907921953635483470064646731255063978681962704405159461552116847030737272357103699757453397349606359689382456612900006949481746075874694683323150913389645287249159392246201668716835986812679075327319791872196466011157187306619856831866976037104363464428377104628371897419114301318138250462330331755264226756746493557050535645543830532762166736169276163198249086538491270283129689697621072410630771422341785068241044774771877218588146281535794059788793313382699234577791944917462303499340587132037425788592060609332920246302702428583850878435148050324403551512623447714046939192725471878682477891455165432429915818543501389436439188000087705822545534641537803536585273970315744611569385771164526707115211477164047949031076429174167509791585308759459592572761477561307902235448319641458838203767450068539991056195066737959885391858081825174566726000862663996004326541345618970162419251727010090871229371920932430299918300359909592933891475711863026419570268083986432361698223312963200393954878150836798142911054927657661450654681133270679922114769810321444816715172158388884921954503215045863401975132636503706963896023684257835759349717807954915960003176308574669757451310130394576502391832546210011269296984784362719425115330532975129833560687702189959349906872265089869073202977394857302879506171778461318822822192232638537112870488240378772869545813674841860137285998593020978092279815439890727305716308852583800367158700493371977338513244425558109362619532418814259213305073643435414548255122865586428008851322073084294059292637261820477332627460276756166462516459608436697309941508423500119293397479643922684038381535357350342694019989805605575306721267823204704571597493376690112468506444769355233400393473111637900311873203175116336644944263959403533316408319515759982996710045758665426464299862921387164829246531460394422278362557556217677575752156518442792982348265665288318620419477886696017893683865592527897793086698775972886491672092140476629410140526863004750342499956677966750756367596503411713537195203107827074343345900505501532722714336138906248441452733295082873685883585079297619143786619742791818258922588073525568723004882947785863840295512324024798216470666129688240627930542281480185565272637856445943719193876375796003251858719186766444062773906924494629302574740295560422808506139320604042686518474020351569439678044016751829830686830677922333159168583267781666935054794167990891226345275762653228894354970945160630542311273912625225947526592927710176482778031144458071770501363370495164281670125992965020150356000166248344723357481491912049789500706701994794153566804833498934058565371438721888838187675177464493560771044548273364309184237660851806742784555272402603028559187596801826485117656914589589447742175157217144497518003851738721699441603753160528137919100189115682816249551872130568876261950579307818646492885535982570129936166670096432634454724015191004109396218651085356372176017785611122144703033440577215673614734387304192523091820706069028549596850030529385585816710593583147502736950597807084346340965819293933846374493399362529772134924645676692525169668391249877182027874962374445291595547786933834577463244485282564476488957537751686294108835517179258676446706540467754298306840405017092261408288587550162745324732837206710430164124465012091695726224345297392905541427245276858660793982277872907240612910662634153679289017871607414532071244456592551209768605172995888904384522331220628783354864273860843073758216152112749344385112515622767758270407228914139503919337883146214273462133872067498672717621220856369718933546911208283222469011479215728340561858601147914277004004020442799475874841249949388976184589936064023750904828819932563915813549749063521343879487322520357900760064247577822814976288099885118956038451120584952943114251579344351249259063099858448732649143032901463518033493723633705733739322955889282390900958694668594464516734436786718115618862093431397934618838974605388876415216284123016752438603499418014982655189166101881555248410966645384503822190308200677787251183309116810554192511814025605060425936587957054325751373639219795596706675632710830904131547884672643413509700658151979150837246011645523310863752026854242872121933484892330208888677854695772736061958751388328636228765074920880690263261644183364502449191815347406864400970032659528940630619768253736662614942181117530828709773153730783207645624977658827501768262129101039925339966062235508090387057120196989331281026734501404127926403886059552343374894149798935274855442493584909519356060763766137817282993054561494604584849909420940419664588963704055078044048284904896684839438349898526571457452209061925470886916901130110864546728350949513007956304253934954268850390824211306664741609570363414321517743992150338394224256483907290199224673833415187244431526331301704898410210432796120084404644465033620816227578476890171582520433055071840169467892203501554954909627631217968636665669554037362428037537305932463748267603202150894747168745258361401069206906943793009000419182221945097828945111866636382927555753862598300163284652705915928812720774795012668882604503816924565234759450963862284454842166108110931874239167837702390235204095854106094507532898118493723710039039072337891752520391781040633640202588146606684974873986816332122023457755298854506588487743193910888965450557463229503749621387273453315959784559563893126867810519023587351881955075415669815334653267140843470073415256644890296742409970231927310605892374231899920499515808625985864124692444354311749871530426743036584965812772235592403504682223698747253469873955044420782265741940822585269987969557607731172557304605277445480509435166715953444768094697074929995288712658739657852233387538560873155740502983544194454964813006125663252349322965859006188902279781756695326549200596309863474662171647631916118380811597459399682936849046733408247082015440290768828611606613672363784739705539248223896850853731575002238926952560728462794880761066955790788532977870369617898459343524134991607598652462475844981157162763957532531951114147596487147226920674089921948843498301729307366624381723172947783956848016110907590569830404778915356566347970758712828732721887437808521711703196232354527597205185205991079738676834736734145983019451386916593585500370143772076523970868522742446354158496880146496237744783974942749118936996295403411555475690582356265692425679891587623873295375196017321306535606553137729493651101778456330674579103849676725199128947152024456777607963208915658087370633941166569652438519107645962936694470691543382385532833903662037143184066782034178248574228480858844094798766952596136052424192073898296353186233324817605663635271293776196483990673094801487930473982465426746267042257197947252029628380707942880779120881747778570746331536226041938381929358450492450237609881490395985555616960121039909187508072158232687466833784405251644251996130048033087053101726447778280827087423655082005812332207232201049165930240072838160282357918016723316374524541676255403367086138877078446241769148816150790338589067517648763687907471692057251713766922355174149737789403603901285808493243275773259772919507910948746933128800520096118906535819060279945279504081719451796185013699020388752502498537533576582980554539044901590926205023101479173869060160050179211548309099078204793857697079606686783398475123121942051492547539341244172614093370433503178047956997323025696111081234459085736830647686610027781527194054700826150735949612994271874650681870109518108123479406588778296938929975081055948011041432587774904462716218770480483193617596375532325009724339116793667523565353001164365460802815724348277036384625573655336616143294999684073289502682009415341929749778043383163236099315210392476883128389624883324672010360393321049572603754582702099856994288947934166536040959838636426312749571199141510953769931807208520286999184461101073573131243566315294443698017677668035213445735045127911768040669138058306173956843146334551368681446078853567262826158845144057271465177210990163037528945962748386976524424967376210179442333614154392635028821727177518152354849345588901312687998980828556039897058593301878193242008120135459078450113688754928291569873294414800603987351719049216618858028580984951807862002059563645837408054456637791517856536548869724664134878715229614342128343957189322240047685315123468226058814567233318053519695977722249686519612642382999887097000100483753317582097694460656210368547375668486381000271169989447568875997958731514960660594156168063263377541347062444482373142883545112059654449230122418585382088107886455062757308794179090364814783097735185154328111860399526316950962386725521426439273712419941602825593323358280407520382092029409700626840020728394217805589167317460377556825540207461327226598479911987786138503513040204451205924026586167555292109217038190409798976830296399935074717000459850003761077686792672351294952248660438428321274139629855266721399442480855994370349653950100874013063240833659670642893756302128240469163389684046635249148805399684515544353633048039658571005131783679551993678551275395432973261139356305623340107234877737303140055747180649019155663518908146717111649900205139753578545775222054330679058722503086636960664953865471290963012631756993928501034498417606195670744288885345983056019920621983164410046543240519764904937642089602410884264741281559422401564476520940997171238289719866255375024847230686360593977430168852676118123864231374601488442419604936895376045834730586985939632920876160523374241112506879435600306735442333620648590944057226660902090567230014800010462988353806395026832429415328363433207467316038528893460747470136756475597766500738055903887176494562693334890402861947563424907738904571529407023254246303319734804628930917193194688249286955031710235078616838686393531332714981375707069742550201848364832761855534834946121395161515720305710262070145603609363875615041893247669112720026925740403371022862854628087306513271279282902443401481628226056564408963849497650486881068326140812546371369928097403185035179642451920322142803126863853924033532416322232903159544401165161599084684120886161844331685083050091702897005430498940467845159013392430770114088908942884335744137627895672905013441888302064960391654875777395276368117544666615577634434802756782782351384887154707342067783524936339685717843330476842951399310821329000221104924407886951912995122532363454853934487247753293044107992105882977083523538927458894724403004411987944234801032312736132421862932625721312227436646407310094425384477108263335834416740960103532760333118252422397832521541065083297557840285847611513823600918809219719836005646444806951744664897912699142581166009494224561564691203888550504803657414457841126781666866388500047639546601996165553965399721902047985265707190750925002826576902195936468861534315788796352839458254842974637235539276236858659422126979988233527455775963084949801869490608230107337983754515621723217895814454712261224301914379594575438124752972326322596228394970965422227357908375532588261079996065882108020763421374096144577262997983214901281755154413092902132220291970014161822418026231757464765930943182872733978260054775155634414431926983703622773600572060470183783574729245912886414341523868143262366318039391736612386739060145345134472654956159222491460322682864359755655417342051546245032394828062291437910072888050469549595042063812918764463480080644355106481200298095411614318482448573857612250415253084873641495705093541169389616602137623012750426226775315632916929672158575540907977308861893598095619526700554604029660524557232213642174416546954702082685418057137330100480242439742101020422641213521054244284484787569802501722190080105177086372706380621626559765232397030298200667643005196514012297688861086027891258164892054551488186175633553739758020489217199431132052265491073040610006319490761489106352769361317345389435344633865603748326717153789896986218873333983146590490725374235176584547655200116240263222744156509031203948563442628733827435540929788371569853836558915270608760291866643298552916090578633283062039753861348003767471761011810598179020030811235931896035280989405665035535905014807934506496282082734084338005325624785030975502117437110258628769652129502585953654768281846956981153066983105297319251501808344330382294785450138327722480709377442563235852949201030778711278023537007576717258840360353377272707476309022409342803082310461057096734893482742329629280488269716380939064877154969894675030815276236307334634893863763278024342000341990241310832973438307097984458341863090383731181525871524135304413890302162488478716873648030061198969393768286537183750996623973418507929842771741549685469277081258941113239278614461890321141103878429569792701483655404271698431150260563262829639914093063743714063945783248770092866858818412562440238424328094309826657393964997317174411832839091166370944441389758985303684036542602962637673801960660853731588837457516332872730442913603600140780873891221531922518465270487386393492069347858391979753088544902912549317379279284853596046957530919809619948407100610055903791110947353728246855542861208787409796726329904628866852248712292677496505851550862198865629499927256102104857454160400888095073281050387356763332862242575638229750618390374471976241930986762271252219973296916671567830454167633940606226810909413372484832608197621226595216681215749043558421289172137076079534728080739039152711494318147882205144274397790552484025723090993429467841914301905438759141719849337108681773411582185213679593273351163216315616340816145526068449102351250400256202439010630831921831404547445322038249875206521125961556163089754092192256558208755588446546492118975588066496990004051928766087677804214431997579909584341930589138918807431903768670261312783417983605554038836668291588223105902681768861105776148746702446028119242109529356033470475249076750162655672886652575061562616396079742024582878656534015667872326987900279128812275046323596483702115600942103987883305863381375521959983697156186066048921575503183311205420314614200344150766999363717492175204162624550480513707798612388305968771266262009678627276440138072936322635980082867964799981031933693734470767362418324346479800093397583585818444794955090801983171077874318825495135687607084557633760748354774408476715245049276530504700168915803437451762195548681046532970954741313056254355036961610388225390424977483112975742032312253745759813145659990895497701860803318342216958088797360297205415954494706113021915045377597741521425960496164401776938740226495652786423194805430264416115384116876774282346021898055034896273341433813737936144747475841571852428626606274880989800836345320333290683679240450853052253663668788276588399800580148308843266382058122362733341007764530669326274779043428373526545582908711968723908692297128558270582026335272236239132278186863553649993900339272949445434825264132766268414322667156187274081667958655780177238424612521492484122565190155601308766466346492924323323938358334198737451274076363285460538822642408128351728938529757517014513730735035395319494265336675858074569196819588026837776300985794597032306569631329433280388855845445787020273980874718443320374604198005300615622903434957725708647484571847708464215146415716824499209742080560624331458123414142404906436751645062820200777970847962737602380172300586666105838865249131974844351644945106869171233125408436531777798308713388350444476204513737965916795404955736073179444160646087122067403074386536197244882631398008062542233956961297097864783296643096342651670442690277748042966258971267419463015898758654280504845399408322239332413918248562243260311389725199671887799924987253300670799628579385459532438288135731854250301229671795387219352143300104289356343511366574399438329110730485960456251985765306608515932595257309933379399909632030062071890046200107126244059722249672442323109948466551071004751547630166000225227038379516947395356582400109337596790785404628311991277904920057107187755678422322135044926642000034570580924839518072909585800835173649597165562124615065850437203848412170839119407074063280466412365890133451322478408766491972916657136956245200344185847919069623074587418351121007007175026889089552054415128765716582364704554594745954864403653623770900997406329750608881464925066898709908288663748731554979399722220919978749582196177816929044999321665238461319042400920351766765717604723801916752068649126825583906550283124007608288283975249499214956670494053009431041741238536542833395961316003592320321443311318723742491967000232735894663409941891253698535115707441510172906158458359872416982433663697766081732255936570160808256272135189038723296060336539703927331147312990565670575889770137553320620702561061044766955306893077998046374339183676899960759435388230135006628932964601616684625276215258316782355267102292451618059878741698032667622275444604281150200161945607260047906749919390039178099727500766509519153272453122706544285171582412485875085088941060298580786891687764979174241055239907680484990721710748122891816376560234543424802472966855639930725175324303974201376146755904797035983229678458800301102884947348955808193618721142083718244076449000328244318948290872653885765578964495001367610633410046537293188402949781108947386466696053074465872625527304306694694716646824699761550151545824888667241175859113930802625183569172160395621655855253926861523051960220685200017141483639341993885710357542761971163554271712384581011959706960030893668830136437972281260468439687932650692641775755464223449060178564694171233112811578453703571616178158171036883278350819316331814537455666151323541622244544341517059349548131081170130842687090380796329971015624050646257239448593154500874671865390582017724850169512094347766100855077097940996840907336049866231743897005019397442134999088974649517979720861509350985731447429593428633031200875039326255344453267009586090079533169046133406516585045148547542832664925401545215848711993405042431138008977410162492120553189359285920941088182641792629232843276437100495354170149082776322734682990768722776274033413050792397951516142491426649649003718952058852092326005815921172983698325950557754683036181518316491767807946983887233096958481437169693539982717159174839475947346046929020871797993389981595277632317956066706157188371264016904307210456037883974350558157081538748512528925580943246995827928017185819669087200645578429466235552718824688016748285509878130758770989433625437390341080884876110860582456229010052745482773078032211703584686862841225518352030761607480064371136569589966524323988314082383174931653182431670549826049082120361762468064732978271787703911844430123505065704064306437023983318549080881901588094914028622091912889757386025707515047082139159922983288675474202170659287774716471044594535706108522771164360502430816088875517270124014468354097214566373737456831508037682545693016217032454622128238515581028562135956598268503871126108323069734892221927935867568606858707410795003187249422040941435974746046303915246033896799988731299680882829490029418379315994801664737420765111496340704754014124604493839352213091577821968448192534016151010994341433476813866064533597315089400779721623233834297010183123976530591852901308041039849590486553688064752369859627877716352672315623328119085476452345049407312351647165123993284874780243380253871724766690904067961418880371428712373265665802835207060371725033481217726540789079233174458496753815703338328117343108883881631005878401044555501835135049712386214144249856715456613776173858868156794535951155376343385314153358836055801551483940502322157381502320654530178668592956444414551935850791549568272442019892886169989758851926890705812141823571401607610859671106556183349836345849566469242969871747702952260870260533807722814641624795160290009940790338582459677360016571912475354557202667310209711221449985175314016128991803663771649230544766603313769956279344012428507308921256086345257937908231190389294978395690961590361345422754242130982335304165591435628310882198331288523756571899196935132365666804429192397391071532823504528242784989350025370693424282066129634514397905275922351179774313173402035872629580473007224521361554659687424024904109015927019847086724649024249057807797456333680880885898382672609670489091269700765168482406166914497855206462878036899755818997809011464283641838568718944319233843235570253879292578685280360434958807123715048056542152421418933290196196656855260749344135690438555732627085527301076811273862827120876997479267206127981802175290317800688046736931293680515416137563539580047017217224921372650016080727437486342943804407952220092446614344689135818039137309801797462223905942027034105597348230316528582523782497098792413629219995877105356783124130558637441299287339099489448363943237894178369453229343591792796069516568592436174914396534020793619092937459430603650734871522228342522565745260762026460812717912248382544801372374023111569074787709569222894504109209744848843806937268510379807770184378389088431449491428729816088946224510114687123994890248039302038096816282805641336768927467989672400893350432487358459569260116504493089858693706083108628900776314298045055215116746997898335908276414682218179509405646975496854307226116173219973478678102857808218138839685119260461190726947784417342819362843421040352147715745000385238882091760259528689273516937014874211434719261074150866708369035120628767979880182234687997805860603710318249548598363460909630141707571172057284932972138785806079443677182555288398606269999416248605960355217222109152143907579399808606160644490700522001122691754943362654689336869989954054829146501741758902398741044915969607753112823070052698284135537647833274171932295335392626753820790444073245156160513913672475797863600406788551358067708795265382635023083755086883831686025737314445344256440751778217474712099738202104900203819687606389969011977083953872535643325651728816387171974262936042644292401671708503831797077345952950527458836538757034327142516922003284538488652313205482752649630034164011512995254958575653064201825797748210055998930712700008255094271752351798900234488935767776884154906461175836646496292939882678376485499814468587272199930630990877720261379210929634837080155785354144117580452899808221779505943715534188602120996509564753793643038029118110591700040755144445793589073496114900358033330244080967652807738000351409333203667374772316043798939150025807614117839747585864129052435448791830178425482101191212159838215478134404841045165888077843508602114853249998177284165115206695443256250465016668416551682808779928855886373747756282336725590515539586373152784354763627905003277816577592557535218178548376409861354476072129190528795437230651245504870809308698034133987109384823738689711509087246099644163417418374734429330129752319043977196215645030169222114676067584000512938324682348581057934561038171725071098137356729719889877419721180284613958620457442012755876143576704466542942006079131815290837217281370481686216765474393963934518630464645422276823321033169708564965793174786557105199593864799100024263404594437173679874635924861086296930809575932155816369982182623593737380569289332271654327466810111159684756123757085194118116739236057951239664975612422562313240402784156223723653662492926210262457356583314600051027356265476190546227602689356426107889568379306320193528012582253553584683582520300631833316181093922068641545070440468384210680441707274342426722434314673266668546279420392939668203561122756904005803516163969809780958170932578762262781265884610282807897383477272379208170354080837223709772556442163987938391672275036216023599386377271308010159984880318280987694886512343860191985636849230428101072460480271948367140649642457065371245709177081997930227715402439228128142180679601213080520015781647315581017214686872987400166808810185271469398547944109728892206896395526341792663807795313568062894502051107372650916260843874576252544784971163985250946101861259207435618947385188525376186285103251668220440875320756292237547819490266591983598813988386933563546729549787586542188917710510760533993041995129785074589181780073176760655465889714140622857535109507835913042152926766387380313447235022838848321269257524888429258050090410768091766341181098701062463555163371752998130275518924294298026476053943869637647071000203318363924487128358889490233499241342693169684691733589742682505516647546270211290656422666271913111282436641449717809123227236141277015154029249555337399072200615364394155964628763467530020493047828338860021114873730208937116992396582015892710393351227476635239893197869670590952929326929221402080163791439496560809865025467293140901944074103213780872613812214797779993891213746961803385223641926261807278561273491440227965552029984541168884825081357805560269621759842464691900110718217475099597712984516809750622048003607980581625711401018856149234356985698769109239437270642270014250073180535159469326080099489448562226773244336093740291337914660684359460989783458380012204978409250392106648670723339664242435839374561601572509924219656622964488964851921718952407453342327723282679277516022972321075816507170910785900517815405033842785927981256717312555810497742624277017820295221386346830557219066421660423881331945629529305524612347103710206362953944816579330535247357601758271988341958967700061841211677118062728227256149936678475612331780684224380492456484128129922354814784685338431022145128823189289288225183228306141626801438747001794112339651614641906351580986211311594804014577238818768599970861076452962699699204759147110888848745754094020172412600699158806053536537306307284645763538936325587346768589888742552877193359410391333983683960173111635350516618888093054925015854791864228777864692804856102830545390491655367148491654335398833582150199128012834624347979629888793767171815263446925496402215742919945518340132977966168559842164714478520892693407739765024322135925807843216138179413029970901770824134615407145408747841786445869367073436219347526041257591614995583130124246301058515693550398285180561806553539549554625395173328279315692747553695535397025919777699420685811735526445150496420735040086451682210942913418485145268585277571520616170855286913002793575768313195712877678747826130946942631513973929425446315729710668136186243822366608480332966352011944477035055725818494466178145681311002713908200820534517560255515623488385993776497528900877878962939516641543349233574659045737413653428143292989930664067775991818649825102846796998733173216930921465416712955397359355453395822143764862148628018051142308325868050975103276686551354599003131169764810788835866059968395611338851224119471136576945137173222593123677463745432139077638846024593673234839077235988804918238107630650181700922977267898603532981211927821119121084500249837558657218688540313833061396597086169697354571945157900952004784132039037371024140745303766532053665398482360309123240574701826646839968076748789982788465584282463168077191005089119384802498176191569577920634958924473888672709886136628034356119269819064025051196181668939821905410039468642454374966965966512299388696215418630112690792670400075313247460653908018602161708604798702012534503526947474880099210729988990012256624307501003902227516375879092963676932365401134084727875741424176501858964721108808107959941682897052431933228784698089963244755009862378121581804768373688196974178906431682790724965282750432429672550399923202818288050996964696884904560727996033156176238083438313591617984214132741074029278679965161239623875777392823153092471345834424490518282095851257258906168852162714938167631792903532015708222023961848898625151320242541706455340241335099885905153011686606651270982127854468537986299789269687022627709103174503280093361727237028937294103246801158627716294686817875079506312409435384612867151592564979096397598838142073866538675287125591217192049013372944033773562335224861363074523729785626985171426064986274306298640089172276228839831240026146150808904478506998238702483554839025866184463489514933584173938300383754021236741267610779826052534641534726979688452389034811264552353530966012946596726754143709494032225316597484807469421920599003613007049088238410812750924686732312259134035493269852285760003751724178420648896489064151813815789723799575721259582218800068496680431719726170052637066841011331244867263329664506564511464596166467092289791588392899683455486396572515695875267995822421375151324087836818446912857265834475037514752936798388968540819457632654675550990730524474749028600361987912521307052658882236018068472581671634611854154326800657574642924931538449201030622823609673033227639563502585206006386057022842544375004972969154149254541900738277965614759229308745728949804274330723411422799016511390229744554555879865563819695137831575988740766441856560346354516056725767039932630908378178276090092292449433511885138680658274906391972420895519701495610937745014911736997279681895493446421803868328601691838527788973120658449038693166680495030182684753496833557095453574247301319571547115822657135859667435026165693105862133090821609774060748563055255391552608783293748382379250485754700855235631662941852513544014124185219317852977833006177171667345028931292246890756042826958062250630649874314783125685871953323900660550815489561616726994394573636295444132651100110110499413671260509860852455355911426790168832968699566160827176499966252496783486724214731758554751183812295540211324469699007648119797605021401551102554970966409849779522135009311934648699134634979877355792361017990914618029579128625576272110386707746333049294092038568014317304844172912998662044947656845330319908420821868144376127411580810182715909610349442253619920037224759048582489407053758435940119808727484006910580574046390121317860140702285773395967670404099407480035577107753959481753217559772396054285842768823744155335947112652727551890963311661047754525025963542415562910887637508696081569563861090076088562989346855089937320206890873046677621704025608832207306146797560226111741148429746111678207763235000456308914543822254371379640533783388129125836407181735552715475979074755448141007383485328767524615608485845513349759126371600507238617514434564685368169777107927738307358341116171079069109674848962766527771676862615625010661142125717179783486632998656988805685688203736331551291850631994042012414208952405791207809022426437684254924253591760196037691534569015800575894499318907483117609704579279963245267315116427175537671454011397056450225655590295003940140289482973358984956039698128619584000122026028552147053363988129083592210237778513407488105158024105872502068573551390916029842063110740662991113518177226557676076505207240951608858338868438278091154715153084571790793022923158726490539627701586551782407536000164315228750906590846878862505138140362489370417110110032061324734485171576103151120843064638167691746933957148627068415068514872579354486512988399381056797535597305068417284683721877499794220087481780211033474743764869235714952511721780938734745608178017697147646213010331560083696627829483268699469371465705930000322653848015321186141133960210141535891801737790214020084596409610336540556057944491388083084218702871499867972698244175689544405485634159943915341135892912683973383849610905805587366981791809569907861389848263337631007540554141497361413350045792453807229022492663753185668781838506584942983258962681274905360645124856732516591399106486972639749001382929430844452415156674104670784082147818000869019286212101646703622677684975581330489074778101750141534812114386854162275171598927124063734637419795320477364651188109298235819005283994556265484660045942030607247590519875631408880002654469132629853319552007811767515058596093129162556121091688065784755792351524428630381245924240398265541611897788341720489008202403889448875325393377375680098243533624257043908196278986606689403495528835730500913967927694354008441976657886256745323656044959285131764083280882437269041418665031305220175822908464067570683345730026132804506799210315649006798284953900535609171605969921025901743353231165128632592414292369334317888903524780263866407507746537361347889868986351101381084900360110671929326926934024393107379828506381473709979562786753099370186133275458847339996770256840326085999473311903571497893457512223328282606661003022661433408097326674166241116135865117807705077947667241264088976113730334445311946037800505482793770152410767151422384366258041997915633422083211116709972257853097192740688421414222918912151443584545095253544500128089700191451591197117598119486228873256255393801729707761460142052999082864418335566265415933414188828249211313505913436801149705769629126422350966195032344328478039101721850555010287407772068832250974671724390250814656946628207143719244070214164437929988564550400821579709886454690095227527619182672749155352210594625219918393709427829413302751011643071651525558547714013169988161157229184245869768816570535880124693878695252272660196819670287903826120644181239827588281399395283475618613394226038414311900494780906397101043615169309806630460919263478139088741053701063401591549556492216175688331345674338486590495968409828510170113886419837496681556513420122714713957325071581426627093983888709305437573748060189981699685692595533232180564306103519065788431511430129581615159877295210122350059878036306464312466073376129024705329539740693396193751630880453549175726187756358102547923397541418245829422638257010819301399367470773021302473734783132767874206587688908354464990736837352213012608537338207632532792447575331105997822226653723175231704283117216933337198019638919817938762786740826705965086179152705581426745806609423345217245664542821057055906075112088490440209426277930999770364173597893469927200537366776005187643380778751832056745113021297891481335109042246256432920484888467862565516135306581155418395334017574343697728566101517107070545118283776996743285947655367440039321355072461146782888408698979377235267604597076230462093143653216261706819011294501131903464465899607725293976183513631447339936132581429919274231284044977497427438747886654163954844856259197507178539427768736667867990222243841667996055750370383607095984556831669065992154902918228054694436787093930724323966229573260535720990710910514097325536168962055345999595887386528650451063610852316453353567882833872054884092773725840065627798557712928303592052846079287771841102571635735810603206651667859861075483899942404743738377056624035112112116726849284195962720573388965808280262125368689483879375441175928923951909966630465806018421478429723918423108873403241883458191709169023552691319984304765182499958799977181823698368657642058067994649109858212798999132244262993878296342208280698676483118026294295406415275505725476909297688185367377563491487670192710603686700971293793120124171820824219603796226408909612662793011943807476285295426006164369495662102249828463746687420040553126092274073684638166587081970334204757616686657379778816435455189137646623586227244319701429071441146417003727354493862969476412006522432078163588370464125820700410603145326482344223966554654616389247581316155060145117006208348411511834323123399402424520706983128523074579947465347781867095352691285881515096338601787540778345090544402061320871817403342099187422631790086567347996689345531646596935689201794880391134683715321948931057331666279756908718491573365870995766310199835364250991764361631907306210764758246169234360913861903757128315766639412569344144398807848507832622056664011204811520082209845080620986598410042664112782985313309081427716189967522751055944504516227583411217781541335170727657309984076957410823626079121307979305934196581727550858883291850923063039356530652988140735473882901283335860209124606656429215782917629141919869077839700541008626604781808282518145841377326137520909308315793309750359336456089879030036873298637908637312886892048155755522345364553466282964505068933374346478650016869351213573364836762215549599285763314513418426056126288823878361465805203089393049643497217585346233501684122078914901271498550301531902503639819892682445255878055638340498856541940529906170213164810475291482495936434431222052649055052468663315946970676381450481687662366549919083520581054473528313738800854406773636123592113997473129516082476443262961962968993519472043720898836409997240548747403184594224619883481198678843747556146288249117710634424799555046116887397314126639414357098689961457447379358806629820090935631177380895798177841384249470284737459594677358849657050830026286462104930201193013775331133653805796429545964291869378131106687370174879387802421676915769459045967308736429118444623564335961864130904160332143847605121825006709305076196482134071701392712747932394465933046213223159210895135705935492230903582081392432587556544695705868696067403597954806615033160428867520629160839055276907737151308173459732301885887718544297240264404180108375964017007776840786358315554793066599509142676749484030852201791512253021514656932528495534696779034224095082676904833737128738562177185087796218631702706571771420584558723733022071470900482294548609274021026094803601077562502708966664948840911092700541098224093585313395030372515819097919234064607798047819836659290796714160533212789463603503635434629906292895400682976328102998346029092311685847352683703745426418262764261098754688066956961149426179450481053681581325382265313179823638298481774900177808735565862701871170913848193901550481978339274021251270674624856311666047183994142195921466896046792213238561178049505493993753428603062614759692272957852933125733762770568698097405866958513644441146526898685587005663752333722636090468669883856836234958646945285687736827714087959809260624581373613139956340592252080446341346155642200810903915091089118760135756773801151007131008438948681826096699780074819736109165440334398462708373456319707042029623478009051779669381559172092990679668218260173031598148494579847776246167128113222763641710921740421660877068584798117431643563508168937905760921958725833408356802315739432404968706059806252799313068202610964041742093579428404619778773320639306676122770188108408392878653729385540336321628029717428642921571608566160177617278623021657678077032766031290322435652952099708699130292978563196315677454147257482621277527649755147097516770973010360243602162730106062186052999175544717532357090881455511596492695694208592000853843404644403168861562542596818437351317699038069437698498628954687619221698266263929145954920778281466592968924175400269932645269086164802726373078319898227841357312388824745771083019045258745110764984890382469832709402240824712556086579532240602513631506219275746315705518829449083363837960093359531492607425272952979922923376258342391268014793724935821043424258619203217468216075499568034254204601928318471016780640521325798773064062220008105458595606585103035523004635369809961838320671068602079456139837105525293615744766022938646223340750307692428673831323246789547728056301128607479923338263866287174719192141227044148593435203608648506926583968013640134145967797794979026787871151168030190559869704053569080018319332454684678290782841813557083490412308557458457896481606705645604768392491745134574264874327929754788842527313926728253938769444101597351132490660212715780290958807619750240492519943832587066659533929134273390209833631132851875030200045084765292948627886937380899535910723913253432918391864527918150117886603965844163729515010279186311716179735748740257525881837653925388936471589806100796861968672942092646436432588615813485749289857531131277922845188143818806487580471004241928458963949701304814536299321056332088481786116009352113014073393639740538489717742781627208421298515828525689549300192178784310437046579526378265165890730483664469326509436831328510969596833172416284869927632361413582767424116531369994351420122639487870334057654313642681797688370074727242858652860196396090700369865606874720488455763123441704940697804838745142443453078598936267618744203565964984127685298060890312951081543593793867962849947568349378456610386469708017716801876443318749810272126070317577416582059142749262404590079564978675125721361026164877842788049277974839649322179426469918842854073881414099095326289389881596955269965398115577449682050809874952450726849258130967572315941751407336176042460821676773329411504242602064195329154976038215135964951534845521373206858529607247370127624956981973209670505544867911208035612967427614333243313893866768651697092748356063849228609929260129317237177082983055224110685266654796523920184324616070307333152929646377852774291586106689468219556657497841487940744608827619623378164131076978913289294932990412723647129706431734877151502136072703937107054085423298900658528369810814419099574118291053189681361361225611674839399575758209390986822661102532374588561471313906539343490497587252721558091226203552603099394542996385994365483729806707506736424522823013286618275347241628629108287097755281968433465276494580651860077101549080874171446009449060907037350286974309628617565571520169599461592215501457850998845987826907227713519835339155794126868570445133688557634912235259773911244326684365780559186904202740577524436871762911453016878130338725874176414762313037125515434764908491770693117860256507568737946908604749059690328076016833981358965388734227641206351473358107190870757736550118541187310963347298461826356471072908003870134549218821854062714645211675602700573588844505831306278513563427422351788100351445392689529859002557263503564238701146441609532446239204878962239142413216694990490312190672590704367876087039607844776848994328684745036029483300800117270033621435602028468076081557436056531739178477594197729902988623686281564409722572215804737773239392747603546783269325380177937225966039599701036653209976319317175770767176114118750646693177621377109277250452122562666989532057988733929640494574842812444999307517216846673580452333300290446256330324816150774529988642855755987906166615805467801824740825002046851686477490749821405548280059147790194830242789340215020338646316777272517128672094106653698585360201415365236812763889036535519603444790500058471814146254929817667130496172848274997109562023931946471569135259603355454516173226048838675556989545235348599957966180300717616079498897893682771598029792319488250058208010096908340313121313755286239223277641060586792304115748633991723339619526390161423566366743228903831767155641662687719812563614958602296148083329539184833625508963870553617213384811271429624350195755322980416578394785763838860846968299506384270533348089538587303381847230602778212758293998107139795054565641735771691494406654916932131292108056768524454473921664364112836176255015917472472508897972732493220796781476292168555449900641719312147189413383379590171905893071413414294608468039748122216259237431377991546672565767044208890110453442155302426294645275116288300613210115031815080201345020850741515134768136755848769873513549411986392104206093171619425135337179427941008778661682929191321125705044907771834567830408234783673455048294422106620857997614665539226032593781991303099833987552723652463093202842522027218589527869485982461735389031602542018720326024499807915512976283959799644361029327884919427222931443190744400028920130877139644091140803237561160527221492600925295127898546297726693760411197910749052200344354344754606612166084222682665119483847263911859080007775205470965094805273361499375431937525677791512892687625969160336670603377071774818286932032616926424898263715151522068903458915770065575704809149966471616605290181865525730140537415342100868809874466268697988777975188195976014813610537014670835494445042808520897117164994668094062617331884144485483113110609507742828380947166800158080509297316245475392246161193942560174625246890327989390591198666707650883233093057732530025338106810250277220333628843602005453098601440663145760351000699141259694073384661894875813291434471344066136067151889004685844684874078251654898794438796106498084124728510055344235600053089459821122887726548392861106904728667100702898200474553693835561873235806194794340862881663683412306781993304004773930652023424273210345205037527940016907634722008817583488343170122589957658331010521790894479888091049796903007620192637318093559043902417416883183082318617125823762594227014414624938098698516001458642724924327905718392165373495149122835178489046360829122808307827673346488129947792649814027083426842382842751945196960942523208754399121486869371739802400580826011195488308637386694200874013239899750229653144854434301815011860691403168360761771478640853454642404529847400295755539095942750022010326694904498566866833728391682463329152630231363969545327933900222226974008721877845564803818836773394193774217651648992117896068110654865348016286344251574746435021164157985757098629660121814310423187354025906102878083400579969987503389750821453351102371875967727355576004090727118061841511293296777109632102184297551547947239479954388775364604997500620592029389246745786168085986524436231896505433753300130918928686824991024670175958764534336125170309458662716999766562736474857308787523235403791649733468927456350393411886568992333900296209384508782150534798683901500122007824610320657055680615906919731701000544600644497612090980813600315306207501951804099885943880249554626546038172412509246831106411773226813243225858173148206464247059179786338168179482893275743902790741327243411498262612266676959340150298414467810667061263890575286988599514978615093842930235790444906641084442696174730069859976029267054811087300895865259253982031588232540866076595928818240834517364242232998272153991328530517387283887185140796811043886654017042855701629191757287011992020673926812444201791267431923445663406260217596138661592566339891849151851129505315577509459002720608593092277092698262680227257594505074905702737536346477558590594976418291495819625084809090989676640102685651041354119254692814806919024238038324447298835234024967624454142116638804609556325476382131886757372855251034559402666115890608520922382851370318300901113140748329904609547309356832061166371861158590747172702455509852883172982608417603025829270642899168668954363666802153998882786181183402550763088175273513680185768703088891120615479195785468976933472801943292208065649191983542399505979406513809400427348135243106800414877495188818812321076139711647055436775940342460490834076266051890227206920918546718074606875333710648143395346962025606280957023892511316886570022355991819814760262051768929906289736512710365417288454624400662349822946233535894472005123204430185819752480851803822835559932563727999335766072755973664436893393564459684080691504580905245888982609887090277862624085167925727055043741247576796172323580185309036190525026724538589764373588308197246522633589881480016433144895479325696370300878059957578150169709568196268221591861489622053228122906978420427857498327525193488100842339090431642140360910784447099641150196776818371292645779179080441982570565673409376234781922588155402106448265641807460938297146955809917063993412425064860966899532177096380696532734578723343158367932149916285818754108566634934319774668222181213980186672069001264173084696075986934510387059050008379418734489742546786536315853565299948712066037242722292180911891071093005388128869643662699916030746088972736918998750009375383184497355121602645563261930918404858081719111222073045202467913193187887632741220037457042840971021988026184742907090167580890848215732416770857777483111932159159164008295406724462505233482416913126097194571895490458256983271554270329126983211599245731212463519578317685213792423972841062150541666039382929664015896453729113228451786557869707122480550538461917672227836726522236276179557837090249616294667799632657163322323285774092589289016581337175459619538209830978920767633344028705846558990471833430056797913805632710135141428105640516724962042657262516579440857345746609466838042012143638059843584920313665342354786434991658528428713558108054153184433086205969455821622772552285860736040386281059231034220788517124502908492628440795069832881554841141200430685674105370017517601723993099256191591870732165892368403209501426134679851925910236273374493559486632188223182442099432197041271393201434943527784922910448888579827875054284511229100905408848585718075014218679396546667020216275947448786675582627838905757843066435477720248912970477113199948852244545510926803558925578653765556967729945497829627658070444344814071040614707278620920242260888080481852490338948319491885387304714352642265085972229376884931882931718048710621177772438870600206309631379474430162026443476333088100830811473111254845340882522482365891476519796992087590653752192446100858860136817889951321413873158629561407065361120567229640987979509756883480974495227466655339032022029966720861439137808918630199275483548626772526151311785260931103583270594537618543897130681607589742445808605153280338794810205036910917100323791977391548687489096742270190664091207582590711582294708216583953242634439198923247752376904231055636934278104032568415956378165669535993372911181167905458006409003069095468073314213457041215059327904668149426950144591127285086314007176942844953612704304242700402972989258535678487955215863961640503213666943160037263557797718097657944816399788272996643868480361638832754671449087800694257434182981023961404841558367980417352711091572654764007497746778775376963888256369786862804243515565571211647636577336839066343117363931362120944917005904111878926562621965374309773824524360917416369766835439420938605105353054549257719160011111949874704996737722767877426842062612902063270659001094995067045362839853461943432165672224043382955958756521261575796960296703912594938572185869836106594284958541171363935093992425270684928381368082490722759742038975613484585499159373143903072217672716221817103124584585522173363587521796636849482976797969334360274427940625340454889160177153619956143088117346902146672303852515039362628275616245955500721337649042771037683352945740476818103769791829947583967984281339942066013182550250232787041225892351888774611781443108958857329240592676621160834655161027282163647248796170309032411892509900821170769161724724258367979903081366379550390750080702365027013576049358630979577003446768748474620807253287635840379666595508078578746968222039301265909233586126618468957239181025727981777935958283100939000368344857211186080021162264421789073816572078515804551825095152926110269270924644884151254329196121157799793171469089581272617434837014915556363244038174972420229277297276926384716538978237284433616273639945279466671997631059347005689707258291044107708375437857209993573354009744250680573334214102209344571802339318344525631670705798813345585968031255605917423813918454489144249652740800524139398196385468954033721191725465877685484059977565837638808366309042216930045248507176072559411877515156758866145042939750680392704777772380408362842113646501536207042316385862065425625345425492886386069536237761758687212288538165196331173912329279704594596941258647123424137803453676384261070213730208264676265451641874452902145163208703709463619879705502782195162406467973798351158572554889820249970610623434249192541235738805319475567276312666641725494192043794301977908260940112417641579792078359613324004568474688244063296470529047203207651780054841997516097958644969883459006096583584787037950502339373966900321996804316525101768337318127690597124234997109705423238343634654156037079063100224420398016951300848138457579410209212594569295511739133354460231949123741285835627352966355339297679747283683892063974580260336614450915680511192065753893257381528574282509067683166400599687029650813302020596410516824513937028554710383241775638718609426446224181466524163137436536276914534740670826058750526916089569775924311667504273152077205844103247833899232139645222010574957479844680314626324342480497451571494955587502380176582500178656917829592907371390525276856392291525758364689021378881611425137087699216546430108442412469855059586586457808748241056192953437324257447531320608398431951141543988475752592232222333165043626027409162247508670858186022044940351053216461612503256676684788834093386489152612899049042336051227630718571152686975889491095880525378595202203761550363340131755011637620363647674934453880051368919141394586600499509150200780062240237407865322369284787062976648084051247756976840566723421713556196587211733402096839958456013965976580124599473924315526093050787567573736994786256865092924121843539327681431568247796127990204172319326029462854980318196777030078007941220527478264691673475838079220184639191174788150180004920539875379984417009189770822389008465332886188971840596343798917557245681350423436897785778480957188468762754802607332718348298765644694926069347894031544658354842668724569813992019002281308116002072192938612004987589052324926979034965486785321912864326977160454065857261302982665351425675028597334610664795398077337895208477757479141239975456211259586363249505204083968408190476481758794662883740414929762712067061260557865711903949297497058131127899133255588867076284967694139328521225418588036179939648857777421661047445548155901738982723970284270668319681006454214718595213060212281470079287858863715850086292564019935792208904351764181584942588165887325149748174323302573941422661411916791646362017268533899263119962579149738092576094849862177343405857973220217750102121445491856653135051856902749476301675928734894679792222317337457905752516857181355699010976793008181598063186448672935426023288916918590962371146475769102472102586160068995133961079350053920799661021297313971889300516964449617153100200560334011704541452669536455921895575250744959289719054421281665277318882013368612507251868410146852425572679510270267858685572721185091718096970111072325412777367600621436538641788691972240345143358899492050016679879094956827254434794232059400812926044977305026054098052441639608679863028552358646559075465958411615046367324063807253689114627134401713670535677350275317797196035291592195511444738660189874597579390191566453897611591097825881918362836314004620581882366003546160758115339938649956051081871784170673075183590612097899120100818504881300893006209191489544227064811651984513213990538772444338232923555120931581313940948242203730246938429813876241515561250153076508190635116979386420597438001493253000927429449641936240322034833264420346706093522970275836914948184998981716094898824906009576256201252694513013250194824337464646448878167997162541868512370346499853305144840700335682153459903166669831768769800130569092261849829051831573483687138822047160121424139214380202033948843963337175496042840054066164356368267508392795256248974779009012659866749979528031600860275835510493594189379037562133226767663414420807579149446609898966836698606077599139270079168356249632637807002052528320828189142342390569483559102244782717783280146631821975208475756306717216464067925963532959857650284481274450167663626027151198424462754821419820627315244434175834185136582133000411917793649393711406762962970022007478098821605015934309001112208311883368352680323118107852612958830534485972182841489063199757244435130791364476338256655264891545403535043217546084730749818512664612880626763182884494437979755099063730236987227396080551433940661416661699829272935081081941887747580829828090628406294758820006748238246001544631354680825338777533965933429776859586459822811801288065641083432666164120532076508848549849205558353834007685260026359337176862142404304996950336370671781201614026270730124139604363773638732406642242726604387979549784875502860125700428504659586170675792765206874135982728601485361984114087856357186443669081960577851655555372658365266913563572740779116794349931400409981111650464530370512025712150209670198019109731425725981497236118328084122587070262991001200368159910054965612178527654119891811915995740918725760208994169378432687260278546556954215863942783058237198364498978490365642998439684932267095902875502905559526669468619649417406780435987505788384036085667909684474410464988596106201234002628506202079903918485911808550116040643470027913234665432939021932168510636182452960610610577016148734115558144672981789415964276348139296129116511474007132122440814661496380511701404856119423889514038015297758001614158034283268522543643104949110572645559408136468183443145675007915654955109736618837386392403005433993658633500118367369257483655505741659816026375389911191000994318009534733199368262204684905984558609354118044955238457395181517824289300314748054527958104987241967279128004480913571301688733837420281720526248578881105016910237142290621390926469246927775827765779399232966355385174717134660664327070658705547117368966649604576610631025969296446011410728980246325449619940490930314304112024730357968882512834925370634745619435659896404710422740793553370491833830552847021973233487379727503200915865457275020068779990980295370351758880853059054880209762896900484365435930302127690889017187540486137050249759990405190585533004666018131431202152774452559760669653565372819947391377673910140563365408203020437026000926015536677170428290620382408940590009293485895213447331273190621987514917716727889055829397246818594536882047879743719998337424968593765211104500610082834808106642305066779335903652367097858387995242480145868463600704240523438441825841484778300709491222623182413164333637270592310440912901620155455872119204333582944294134947393543615516601681354245328157064369041994869129199960741473012255655079061168570284124474972824038670381174053716142366834869197934445449137285251710286591044565779739246029665527280798251936928026157270258473574465563313483698884886330805354224631416127603057948064958850382309526659959048834810505597938900173689469418874056618802633310709883608780206034441991845240963426152764458107740359936680583907082073564398391712317763916226045352201180940535970756733095121684208333455089334216403117029145564416931138467437774845973790429549177513762749661656444632431003503494004696697337028164571710664116117082730975323282732983774720451561955632601999888092816484812007959456185351191752941369839191157959770319353162528641654242782153154748633160702771384552535649142534042670714132874847989041740471546193715275429542738505673381129725331685336383687101232290843849910263580242739579465490927282566249173868587372827398743465013915244440302831769019172567703887242280962261945745618859939241162317452515303303885773832266932201692370046248956348883326514122686899369904371209230565951743679009272830229947998007351260231522134775867160623550116697231519296207041425258227413931519708898986841260976177882696197932147676053514846354807985218081753834528226387529627001375035198845870873479844087910507787808002984811097802554444458972281065685220572448974298912653930024574857472294613946816959201069939685376412080364303238456287106731575894568995120314297105043689944524615423370847227518526721716792023801598278614679522124128972219981856141206987032798903088473761468506887586166587479806882732399145443685284757882530855925642485697417660673585662982160414029861592678347850988790937935246764182807360249842217684475595284116245017149373953998140394692854150795810653980326682849375171633755095459632644242670422880064661645310343406001979475107567218922533587459375568549871477632438069067832765728365228264302570375438444531538917137102777376967956013354419587781681519966230242936353306471852028985265088667565576036693896315269513051240157358541826619295705377755777814633266096340620752987554205384131749462881052546470066982315172915544969082496823391020395495923451071575351284978968363381547139371977759686517544414020570100219371384986364735997440135174949876065059252853743080157040494963340648581174117870703149737718723821391556183749786876218833840346329284504147007035521790546450489928331882338797789651307131746156414984978130767067345416011151782737861389504362506028968247165833440641228740597763205701875952611999439447860688121034081666161558775456135931463590642478903754210715713971643279468738778413891248210203894711391171571346359528743002392973680945726999022095815025413107066920657347864419002895484757197131339829671958277964762241173365852912993353640612210653793532060543568594531668153625405182379717667451398520602037574147007247552715154089269345172271514938464922785733140713025022852674095798256180387037321822262059308325399814594726434975459526051170394188283846731331562069695830092308923730016374755432618626230001140859067897941337889850661180372249256579350452221877296783659805400736752285925807731068892575100301149786530922270318505300051267137826732093489932329344341672379457950246368156138145038026885346463608552576878743221979198952842340577706201338490317464479301344404156795198217507991498564890278210737604819332242111687621332491768196529206325522024707318734008835148702699216285486195968446901558553869979475029003404815344746221709186624575492279404540742245376981583366338385630515920289068626296680513751091389895261971158453612724764476204577759527361927148419858530054418571999276655751192873366182064297621958188609020416032559003285897932519178032078671721142886336339655725883973312329574692608286362138681195190023836861080271154331529051327584032606065314259632853121131282600471005749889270305358484282531647604783509714373002932358429397194037191042277424719660460316297024985275566112583098753832129052078589149186625446422813830084804656268787794654046544614508993136352935515058851440728746213636011491841898495168597913757390394898937874538724489264918823323724691365087145564469791361835496821627335532362767031293876636377028690218621779947812062904151019372989452649757398287777402978417510557463955615248347337832743682690725533939081326917852129211318136968444797660602241071545543628623478354832929593257330713359409486057427780023902523271471255005058256299838744799791613300795000338725872953445986668051858508757933821567711874227381456236378580624061949510727267112834299556832837790300003258901501909005934832285197715312196871625271513978936933174044217166661970156407776036096157925211899265895415150623048780248417956691948150464146645118668631145129808249873943971872443708703451824934229269307581232474871404434199000918182190821283740800511014583384309058394929459820246729384165284943893444386531749131614241268615403723671572773387990096123923781703339650518043572922985175273815171759004987500587043140692031921249918338517593518184559427608329466690927548841013182442592828029500319785606468809256378063811666404751825385836428114210598430761807007124140638077810925997578399499222493818567476477075195893481579544321079195137503042224123022833348406968895694127350627124567052744370479784587053846385720610296396286436962660590531036223083476222447418567688902150462424740945361109193554076046524374823253681445354127574512696746677947055268066450750205711617549164035910513530792705303997355819036834656486108991909557119953198312755675230798793484549133528203884185570891085128635889480286128395098307068242512100935948545520781655879908226178814888100838756077442197539909015486236980619369895482092264078648153449212889503901735174595407102613695842916719233265004746489915299401651449987990481656206450089280034839271085072004702524982247525541252362684654306964984713420178247176291914468063861757147292071678973462060583684108452372792860532520192900371446460921564085376325852842227063797145317128301361112718788426882568794629317508084077451892127520795506051445037761181750672345508520214123452800531731175601477030580196185493520792474777944888931198940830297134057550396187626364562130985492669192703283509008814428511807796385883089898675260101739626712960102546884802391583525855981038030759706338787508998079452725957359797205895932043610579304965059999668285201093675138057736048118616593832442824887642788547365074390320616429708869441258818499860693282413597363675234452980551678181171762526384475907528302151817111931873812643168259938617988144391784387768237049226860418317030987726325035345501512070374391664762413848399558258085448110562366012775241197241668228427107537500945995647915333315566968165387895758029614829797303704743817499541185538517159121442851412780137947888890409240833447570451118852234562823334418564533593928523106140325128792616003319770733368852205392614239464531928765636596639116571502786962380782881349163569436081395585149476725775015342391733694371335986835835013125258151431643486243824156564742175787669472317741773197742964152921474636969073842926364360670637502134777206632549318037059207989835778439291995929075329855675813658617078365597248517390010577221834138139447121770595419000795094606533107686258515173843743610107833036260467546190582879125086247856601543763097454192814560023156162821962217051748500112275602069935547287533096518625766483752916354380763406190772733163831926308112093064480392430978851325553200292929362733792946184061696008789995057871157422857615193946535667248641467951985715303859976240391384263351251830657544945451348755585001251909495641114831534921622669634675530735237482583300316012047249416879065734097100253340618394121244054925123781390948760233772847457875097959411073820927811991095868154846751986229083250462026399312562850415532790389638532518282917284481339643979850488021644795571291499798706409265345183965504884043483547016433189978894143633169448608853016337593831896563023589352048664211275214175385904135968048055964062716467566562904867649000825244020266604681802963521609409442786468061841047790939207519373743993880880205870973321987909513720587407767905288123403954417738323130128137856745615250906887670132908917735295928883787217339134314941263006545584771695371930857758345222060074104217550784137875566148488074251479337321247584379382471872258229622062181286338569205204328100928461869782219857025399276952335342658643478409719471493253704955510405351016394824914719417746438801730152574757876338942949848004524987927665944316885816036217639566969627130940180926111731150492655731003745709616710044941221028312564394088525016496668141459139135463073289924379208475951070839732931325139900656072793368282718914524385499869500098847214299283996286489483798021335980758844033809674116609276754126100156463667877398416538178677734700909289174989616143654405601762449540480810814044570744981544062565182244441970941515700074725968227003925437037559927426498553328470887446806808541909159824853380327608793853512664351638101058627901239938054027399938282100476285511077733369520460480421496933756071012179836910379243533637786019027952122919259060725525898556161124289609690385975101712026107454612458724605325263296061879536437982621031232122347918637145943907319664578958960842280279119813610528011667038807664646343976104080867622931873700682078786671406677327143960219896602557712022913155644066213754246882763589520271689639097276321923172068817732185017313000225362318153943062772883714518504368615127203068195159363533394457780481451131847826238019241324912403312261443137647099884050913199040205890787749201256433394167143135679278028073263235816910139790541552897401557528923573178294490721900479364107398904730912461539728958404086069386598480454661232200127984230976089839816861669101413843098522588323501812262431339340721614875371061694271846271678230052780089354907081289065620840367364448829343721993746047068825629187723328063147643619084022629991813831257158749936566875208597367929326354657452073628638012311041213277322250571927526265570862972301368111478284158975246923269351752433256727094390222858766013955396337712262962013373379616291189326282068012136035117950960861967088507374594438536422648192751500593934971601758885318841210961133429834837907384025812186472883690619400619217560509820240142383528024247854042437539094235954769302359893768381434974133122293117913729396200065192108993319242883165423771507627112499909357932415110433803542261934184373099328244827811781359848526824080928824149493111174897381987860069599464880156450812539611835460615300449362121813490805476048084807331066760878530830584552712226343299407201205901386632632534091456659084713829510073978637322192445845054721273241588106754371139574391875698663188406733098426782889069753719679567441459337972451473750309490320584298171758809363219803379122919155739253913341776649181178619785261245031148159586201867664497299493656568060021536288285913230864696072117013046402872948034210616990564439082752045179763743043921839752000598954268009577618617216947464312250130290277346782511910847576478781561385982533525914834643419292998727325527889522373833012080466507975220753763816296948269711539963241518353684829080824407274184254175717768735653010982120345030500313969558530063252735985614722194299319066459702776205756957565938836274046411924650496232330924899325716214778296453533116710556022748229371348341041258382797879203405185406539407981036007637424563681382351841193357615155987361540685429381389668732157369907575109313678805294457622713208300619377017636627597285307970047107304965481999767224778923482605770348495413831131998749497377521334899247294376921875968014940011272496331114056242357781307544267916356213962237641660709693998896530907224997539876682846901018246826639637609608351422973486961712315610078047138280141011924946215737910015378187398342997849368039180953684591654706736028871101025562647956101782078330703216493934483479997025907179529151453992190427480875819078022787824771232852755810796269286533158868272861546899743841695293659138665530072615439136773728332832321515194072804140110803746126461185327558848414903342829223307326630046066098067265693683071035254062361576945291682249847411413328603085059970797693224861849692851675929931896679588552970089333519305205692507382735387710825506778229498980184194067048648793062861731529120061720349590731407748787769830894784981101821474488111075995300510677522627748886308760052234021571954937829942645434144169832158201150626290687925557809805247612028250856927896149924198548402977123652570945663668410653053542128317932563597746841360395346256528445347796085773397204616180182197992428583442614348998871970247849972472325837058067454881180169364163194408302625614354826237467061175876018843515722027476044852822149245704957295820612588038494218050411393598989890490761240318747655299448648262039038814470463330486393810514710924421627485201623849847338649819105246672913059536289639277975929308283962302801698142378730832872740440037752557029665485628606800750717457125529471164415028168208232694990205029191960000921578526942251767375891401402409597593606484591078961809785691974475616172735759796052487127675842713659297388280663845611987745417331719943696440237024528999095790780148669252220913368597532808852747879755395411708123014430823659148527393233499204416487531938867713685372775422020703516638694479231654031839424527024801093363829050978448656703645617085646915849494225561665592340500933841619744470571284134498851221449875210486831190464635329122402346440214332738320460557203566457754511504704280485659058484610206933742494445198466647693610404353550251015822700754132562041311597397411546077127013426298972014571218381654324420697527009820474691350260510790427884630746104497488070761359503695241151698907622168607691983896330235788117063002053757542828345779083773136871426281143907652311782953105360989256585149985916241673238713757148536178024757447906242826889097374943583225263566489775362212873701372478752884602196550578177027186176038104306008381168958539568747016098462143181789546493525440707963657431300175091685736165377344981244459197293283560689721708977152075081818174639857229208755642407927917170401653083569853406100828608643823468128319907229958689923605875424391294627832222394969743128696126345249799699247351273626602420155871468811294970619788392510582466106930438689116969353162855110784517413858382873918057457425132510527118513821597893923175835927527982742909295941239525804566952152358691127736630623044432834937147144290776440486912765899875990723359841074724209774225850718686066432181394992533106630378320024576215314987826060402273674593457100757377622176587747352725327297728502899311105522886445344949337502435645347558593891059067390738759079161330706482687859789124177086957983114765289600062824052244922943316732312386483660389900138222338563439974406276081065208628964061893173176530103874524955441859008917428311683561043910930122126711817217372973374331064162302896527347591415969174916244561795881783941965698273816384538984443270040412180898461948734549920849509557858202024870959207506981956983105398894526563032609441791011005537062573839270591040364836187336560825556594751527044900703284197065158682290101764988206535757381380658605495102412060874818842190214533515066817160772291016660869888558055518935333107309937780419466669010067890582002282467098605123209418098886875980351740719119876075715942049281776769454775607809463192016888907107320402731287452009168486157910913779625782738097538326372067145237597035239077953061240937037780793249811272250406334046515828656937372216949927453361304796238800394927724127244135200216543797102144934869660814487806970280589528873022714804229676540837230465903655163884356631482735972575629097315583691560049274025570794896833159744252234877468051235786845680946056316465999050933247274733222919879061159811529252307530821467625772020255745344924476112360167523989789501279077804824401310171627230440820794459155634356243860193617151579094700334530094419553221777800725431963394241122334899579312477620566140396142699876282317802072312183427029848491003469941977861796912682017585593027041501870617078784157350350282516307140927147768631365603933513640568711377286750841275078257276884574465719175649370821300020379773779021740576030719698614404962365357652792599675356592600384562793079888252666781924631901337052966066845094520661932003524810010235678505124246685210238841518932526497329448357603360553379604685459368520735661720755901406811808582555233350616386910649342180602406735467904429110739609974307481518865399619438359261351899889868279013423453590721390311968800009275395175945703052128582035962375030794034278400786223832802762893240814810657877781339742097325073941414379512379021285446096064743211045356715651527360165337321824284458637028300892987620007827640617177977746742490950291387050955864312805321517415544150055385597003090899349279869909034189056146812222105802031328664138604061808102785815955597475143737355482926945455351345372577083545655482605013082660054743625089510475916232472738663306980684287284571270926423606655503062370334199652767456848251957042416095004633243389599504795386701871915199162627193298066640562695651523650935845534705917554409597096618126158570773904977162372855615766804658747338742938361213140686159398458426309413738314699644965913855564261563245502487175148887183805738019652581015289262038991138246255391919786364464012524809643380373628816231620110937971007587150622632437950170311024469998029826619799396550136625532174411193561878292944048817943588432744520255983007693148362695852959420282626909727098140174256853569383381477495681344290340145064673648599196454612836618563401621392348118108323570689765022654615869721588447869825865754901868827009579877077300683637229693462623367858989414087189162129349583310663294687465607465479319158927443501548605379605855451212744248608837576361941607935869644636278356844111956788794556063051334705372400317952146796460665150714973096431397820916453195656915763962298278201235685911690851821941462715001766609738258239413707305523668816210249012550076960429434639697374611901034650867687969666509316812066477431235213857450153297403494177746807337149017981883068617380093278205987088302935692614535606416560787213872030403491036801779126911781315931935915660119763081577897729283013283697781684682926297771367561881288917118649023370532465552291578581608557537953144489057538966197971503514742265687283635435879057447503085547338358237117620912139516546057886077385819859776273612482050338354887197130872986795119376996969608875364208921195460264895958442091528675618108978798383136840713141521709892554487054498809995196057312272044039230316559033473322166970631276864731129450915104866642776870499837620783848454293639472694965267389220412862404778773812460346807205246330543175971277879066650316653471372592154182256852565760885997069819207466428477021111971343879712045688415024868097227805055115968949724391369069628593055852739513248603516175133945275100709009019716823958409611090787383021534951970289218831807760577087182751599834385371819653146182916121684069224211439562815502537682114798868334129801079962329832901438474215486258329314111391712344287011118855093960733567900111941683546382537223240177949635835203827632521281720437694087166223956326533733645669093768180593462380870501933201169144601716159521979968185603177021361680807560579725628432135424586587301816970816144672473061669448105927338106593935357145785512471789191571841027343192506602071678205247685893719577905030179848773279478139189159179317455582416517187263450228414468338198296922686814648419304348075923828830907026359785127898730998031732429519558277069498773659014989217333999475925694082289797387697691547476735960729810332496469906890082515021205133440293515235519175271241130821594613977267225365882025486768617069214491419332180163525450067566987634151252047373543421780483647915945371392370800687407538084645874237569920472638936896810819981075019243059310976621455015465861998229028218548596577069163888308650437509723568775028968801193111255368299268090257259769529760069484620096235419972030612015473776533883624340575490483022818074657721406654211583386550767065584492961365276565274492944871214003065343609847993128552573619516566885558813638824706590471023453273841698571659107633265138800705160292037350244617311603035533235739012717036420052940730359459324002095629765347394840762557433899606154761218832974190542135915357374337726297962725376045388951953309349815984602389097325145988889682014872889685553302501075737095570138207545728668953182634965846289385469173749764937489182873512122445346060783435878706904352563776536619835247130364560740584864363348528595701282019184378122138924858944075559032158047882674113543390570761823259741751591085652590570622318707273391204459191388888153641925514273887958430532516611985298693066139558201660379709379773737326661621214314016834920713688618154668659967837741232130583111865460084215612460532321099459774971210259959692454081182462792312168194777939026338045474665695126137256230739320100569656030355453609552965321204311856021755613436605043324900537184942081345362330595282707988541168929296646646422711509457615358959669739879575435356797791860368475214864300783668398428439343424456418688329564891725960920190331447804417774636431300866863989707896343669381884485663347412814919884438818272752531021138845290771812997683384305018467578424877148950997254659194856066784793271603861154791149328943043075790471694199197540868763934747175905557807908920133605338720909281252944680441011087601859098559059390529207709601780471267042451696165808551057939216133278696523435782090212361813490032970426933881001177369555192867649382508916547023926884387211536288482640133258057187161283491636096978041666539526781568099122670234365342716260071801285966999283960716162943217746220471148713281586921520950810230044230820988016040325509446082454296323007719589677236831501573516588503514747480144497665748983907382038324958960162400875230042927305734848524345116565218778225778403300338700971421028244207305010431485280174357940821665815262516716001281176126173787251533004290027698829011736753288086318464286009950758787337767218525602440049219933928859100709840731064357188381646928214313994079244967912654535402522929727733521194942243925041174136570143220207589154116140667584970711332494793833232690758006003504552751043569275968491018391039537035550972333525447811565387336583124064297272880465068828445432124076060396022283618944646006501234264840617180584256962272585297661814955415482388776318911009153001511614825449855023780540644314091300027555301601005058299737698170399439159534001712190700584039950192847712964626826293363383158526772140345353219607240158955576182661628811293616053769328495303424059487353114711239137418764531955778441304434572877728812462508484561683823842311699428730467594217178788429910648846788404631170497403658258115711277194975871384955790360417372439397775095087795737453201590533523065928137271695564146160067796616933214381082332761721640780810016854628173147426256205832161786368289177622457347471381550877156281000822460016928365135941956680062738362591342360497420594995841380286696094688777537685716421352960804075007226683794410860349219373527603635872657207492946460922009694008082265192470048732667002105378871868867829023807131461604909452797505783856302035683340537676459773281162799654760042348425967549274095218310349329176755251764008397752131521691807247820985592591172375230952311207995279484673150113199227774642505463747057852283812051668393638939759849588498868188606533636167844542898051937711441362009258558671234462318366923735471165365174002893632956099543470542242440940075909505271850524153191507111532850414513124794804389882593518681312405795269497253780286787115251141472555932711643997336101765893932087293390494110235700591779881836824240376835699617248030118418250698646216704502377606489297885717242375549599605001206684103229538116284478255854308481743503554167835056027600354876027043588824108049760715445353835351412482579155684141166534566956061818282758153342980228901250406536195922932261872355561241828841319727561589683954931158318282169283382115787989294358034765616906721526911802955230309242921402020629372279865237220538690064051490091794305410400954937485311092783253684512680725218612899340532033101050137932944981021922546326912770895669623078513253111508665612644931423079401516211530604089447259709567998932957809985200309606060304016182862089636757110138286219339365771291022547331948633538099920779715585634925756938240987177390506227010564934322305687587927511172520710168162703213901074095395805280643967225737119814370118055219136143389249280067731867332672690702845690937698820180914336107466732171946879549162359497256281229872337781594068972639321158275050267978469870749909125340376410863196863302326404725487575435636026912501965044930890310099613309741252111941123515147330515152668374714459813429043341168369809792007368878371234842836633911056716148254275130595507681089363780073565169504377941139401293598126791981007754873256052966459037221757483640023997891401160133344182685127032537698665356582173940232417652628772827770750761242989208791096430311936566594443880664457941004532315978090924720608294337172595268670212939138459361358358862348856238955791841578064843172240549225806318279199836040744996393474517506571775823549310454860846805289893079619158801530346914018318708302669621673071371069690240952453676939981908238197780952552664166296275441411857599943562959756688680058759365769000081350981406740208830328715957035687799694606300982594284891500420163153418774285468519553091844358353425285704101023173647031416533731953459713032120230058322246251664587404878694490332626075573754776289430031191677739085213337516780016437436794603904956250832599635888378980052686624802339759465205919138366761061733265744255429994968498775642148005885438432297467738605798388165776849337142268558910237246492118772436808513087347333010330433610957325741326172385501398122577138170743578292788152533470140635780888686119256963103207006459197070564196455229491079163584237712422715914042368867244444995323744557177551561663359876756847625211711032871351082537038433644274213886180856967604920899545516809857525203895605823764172338595113667972211563219758695723624734090399068454196569194348899811137737389597294045527551064984810176857569711109967605078105938482963086078289612572114161346045083760692398318482745087884960823983461168953871028620691537481512826453064703832393853924063649714686415730995191030104964592302324320234555375421408954847723769564316119455303837765160244759940948448476063983532533641761702908374233470804827223064547166625655465432781842755489090450400939614080581233762655569051102949331906191587018712558886769449162011113637395129317499379311560176838846583425905024257044853695355778377095330560873580725873515366739367594359712852148967692842096438251481068992781979727890340598686445769879865285047289837974841783870637225608607530131186898858724025288161689241536238787738703282655088490031263171536492456122904099418049375815287185488091202248648923325192233702284334286081346496224911725856469179242249676838953086216703589476405530586975417014133106916013850383483901630355406325154175783960481597469851366364995876643258933775364118915801659534138539266497146922983040782118941800596887029120071124223540644916359726543779315707707314313790140365830800716072346534810447897916514670470524599592105539753874895227635165739195699578699240700435359051365187745622340268080778639954459749173109559160686962213980500576662553092001298076650325458459928998133574569850649567192848177401193005910537781864128202713316921727087192853561851908535868166150477192973884303356111589345255194127354024638227823906476478341437676927176629309130948123448174543884791125798633629977205666850743781748957766475602831951827853944459155705220120004429463833423081061134893994574622717384257040516242853952156044246893414046500666978208131004923307147999064980446321816774622502714161591673262806160732545905268930873193080164089107814121010746475287587133393800713265867009204238276081866337047738607316972215701784786116719693348986813125457055283268563996031705721254466478705701717974172386173775994142383221485078800529988267716037176604448140089590842720815617316913182788277244956242418965353624888117269342121695653546750481288890243804308046868948581036254427024533896244471764019862273218050332058178131019210152836543590441761640041942568612871397188642836377092682334277429502813921688677943532053109818054356477800706897870780414189324894876522277658685148119679025645618126029646492553096169975711831099192652247151157681164316145683876945089894829347603564112887044117662322068605737301824907233068828030366166907269764918913310947216616247206622508235744826389839175506178265560526114469928543424196426079947784597521042133350709410131359286080554870845836176782705892442420850355442821867235444046482949731397966024670562549470312303741072210322416786390953332132918156619011270872760319697604081812284424042838124141974320684348932343914814301621174771317274307285631116782238334593293903959069397337647612464999318092662305343565127022089928348315743487675526849309992479996846801912258174161341486294915943079530618709898167391230509665767719797507147462580473703336270538559532258825228400789235467329107279401949351561142405292979560144405573937550842777203074071734967565935025778776740792191689790195861775677476744793274400845885464763994835161797558559122696844478782931721224706468673204134996289554483503243909317995959097493493950419753460170803487592444413812437388084003650266552057320172411647686974943789456570636208459068202329450943429562293301198591159271110614867739434812613991689464827145536212955892724475833771239918942163595910969391881373329354805193763956563563791279801064742171598874113208575605088966947906933702437325852042340726059238450438214556144050459953755029134042406545264852901306102770727048859821802798896243302925289648159115084394948684501974442805410400850285447907282551114126507213852582488399035141849678111366727455748477565403246286749861242621906673904422502937264147170756447135070687810331798934432140550250804845523464694288472231132668210571934317139149826611175087121366889858916261927469066074014738173822314602505509371834175102145444753366314635121320504874484800671625520160210981521902893654505137094586269621345716737181872310687267878541691441784222220446730934707691618822189343147972556203902157047175677600973735641606961666961339473623950661784692950947118051588786338588731188721670416234541376893476170492176812377629711758880921817595428878241193912164424279347125782327190758050559181532832220952006618678285656328733984294500404568646097735916286940557574125795428541594143261925453281983693849120900928005517807372886417695152164523825424743105544066964672609308945004452151841503399271822997791445584327624472524639036175716178004784720965967551813103132509052674730099140489810420915867201255959807221611169544015003768098954155599651109814326307986228727086015213692915024785718060509412058569064128507296973051758904721610761214894148952203157728713461343022917093368969651450608878341863106720466002126602719397632691252059498017569055199949306688328087120106252618890561704458095034415340075206027514555869858677351095515856247717101303596293587740256247488063024708609201580290970619607819599473887734856781655368719090345191574940488156825201324010751327094455462514394157778985575614835532323845319362959374278761532896886890915946356661090168400934674366407632395806057879335386382959588279179557412656907336673155524221125192159851660494857340694479241222876773519543082197307979629207539131968815424187512415796767778377558901139147584327365859639972428373945266983337626767508504917465920654102934132929169410899860205115617069296511409291093433800199945763944034477514684214498553433692866310075632942438368503866598202341117762500946042636296251545823631136171912363857426927304867889913916282206955090475388566893685705075951755380167636610443817670220845471561033890865457159491219939940513671237513021541307171721113022413325260281069418922656122321458295497172675660598910551935452938169374676369139675168168928164912505225235513372005942965168445363872619640145460677166014601673895804665178495837267534652290556319670630551382530833029522394957867586786453596031171370943155706319896257838487579805408823640691911227682322185673701578312748779667719853312340589370809130721112501019836345981598684741084103171209737713325774110467961635693307782963896650083933995193166975124736603098171719519219497081490275281793143868088650933285217540393971555688832912046674563639739179570808462121437493976974349634558108386259361226389715938392035927858004423502961069109048294279260538751192079329397160152596337202769016678919167048851741456301631170496383107546191023063135788508283230242412335993125002590184567757578280759478465585471847829883008018208241500855640010106336264139359003098366377996695490661788559470484402188794748336275896341550371881733200640384796223176500619239780097854361636784566015302394235173488484922840734454770854835039667312115812084335847903252660173468637379800567097859822809453537813320318874826363027482828415098470127008254681765240300373910490774704143429222263509502690650660789353170636990969975433683934097383103169944974495252395024028502439294977794850210479521780931556292414861626936410123528783523012004317825353395135617979527366610075539626423342466614495360076173304295883254809268753189947280254078299213184820450478737704990444374879473474999179396657928075670759658902658532792318411554539586020910346303141054425078256583842341497297483839149903847376735942381229644014005948186563629906626098737688525293349041687435951234822367790332770761284373578354519626502928192393274118769983864006452117414885150242356058622809349219572613875407271332416612289407331354030531168544698002472244264202614196743626621367680775778263600098923554535025171741524812035880637432677806169183052545535691807414457421197702400134296753212321727426453023382863028874500669806627155720475996268410972139536239170151422057004506431155664751584714601441613368796658770332086743028422891019136824579628189843083318847590875494522990869258831548259437756304141433229090969418567329585501506073868435793331366570902991412805645180871075612015758976076312226867713363487916164502353909984180537574648372921006464497835244395437776702349293664650686118439365717851913746157043912499296422503580055793402161821431001185939924904761282754608769334237843960961708322365622274074143273734054498145306311689002875852028394591113042003519225323603076686653632251370779042774809308244576503513744915798756534551069829334468701894495089115106133515129081615566544822526621124676316466218090654326299577876115394125326157550549273732153696324964577064645859865207548764321337356012844382971495897820014264956318639365307393681326809859814177184869349009251340114996120253919841737260488688821885337464973035109584521720169075279744449422174084488521947370413555016844046098126758421221248806823545622980104005541020838608249994124930279282127775969179954855350382618864654831786345402255898663450631339835867778843372875292202490893883234256427277069812877916925069088741938229820235195291592830711676450273310609247671638135039850727930429988987945784409908531162466285096405736776169451495410255432393820489991961504931241269262432168062036970886521868339310023944638639777409052302285207208176331403183847611354557465230775150329680668132828737834703874142179678458692703026639449580662037703455444483016280675290612325520927664822276231821488930830357482420725776400893555139526771193936774444080109833255766133129392189831759460277306851710578806061812807717912581004268484039080067842780470603264659179412329687642399570367201754292919710821560100537657494879010576669828847213371482876989317623793495685399301215004821834932401461828903241612279076975745939036665112686190796207879172735739013831729332282222670432117329481253424453449470977377442894074086963171259148185189227808991729626748437193494436575776825417169443133042512832028169447340403094802520399597622769956175265570665717728133511299963711179917302898943265540612363609528764732061719776167391196202388651189191008228294561179143287447968623277180751616871977624583891119855222696750337771730306325263403324168298942956647828002195184700039124992813534833819221960934095498674635639417095515120451978436682234811679036550455378833509095781099940947786177543825616254176823443812753537051911300889099649709092471321525361946363764782210787969330536705406191362668912747927999679752114271512243817007725134884512023113378898038928558806319140454983021485091967034475355463147123531169839418220876904360171880945273531070173029295144991661050248818682351366130882772415578382755675718751397900797026684337214722462694847431453201693788209164613487045702234540912535291331671975162264113791367770987235443450975403247452991301603361128805262501073826202461933407661203568401556290369266134772028640970210960497804700130700470087617827546119498136580104158787159926592303528177645490002346212151598927476047890316166048054159501709285264685193828276304238404248172513233518420080626441262299375092988977105584578518412294022276840638432208399457238345037851222682668158866592653654809682942731651741231811700862302241697607225148501522090359911670630693868663926195013272143268930709216396290635491460508182257315368746699656910680210496794247281917725698446956303930038680424070456743652518016721775089201188557619402968279382285906394507258000832907537092540673660519271722655452940110693064407723673417878388480545253654747559888409785966536555093406028152100601624751117349035323301796375673317093519193311323298345576597071179230126968155630517451637496260454534999921359408824527393215595435059221654863092937635918598718742846210193025621588446681126818438289317139723331998108647935310087728955525547019877791103773923677130632749169450178019535017206889806746312528973770355645641465736262520510941686323688439576953038127856810482164661176703696449706534380693484192529781751902615443975999807770583926448377719100641598479586180228341194168396703638112858177441685747755631066683116663764246410789943149710655714916112453859597725535958749335390528363268285556490504001765136064085090495941701724374913789419575210074133287796647324255097654662768622064803926142330404297782646533243827411077531147817060809611105742340028848559743899917643231300822698668947606751571195981870751998940215572647928711984464687799624320740673443011912846722078199384685152041709105499931977163989880712553771406449455957614800732997398115627526405385400860552953435225571410935885313321565868065038977330678570206034265757932570649585570171074831425172508031241866066931200919176687096374835686834720933131456426365608007041037065338134241290251762549284877532336051567621455458720443495205299900645451312565472091203388969103282502747278743065613125797681196046064788885826193947428724694073888145577682744646263637794629760551815296134841704592855164794556118375216333292499560739397667138899563189526503591814859307446830614772790409411259580292031963262836557306510982816857095872557845084404735877858653211579272846723577788254068817630965333573749363273679607565752386897684981773390867704117947730741318748952847312890149860646597777086468472974316977134927422607302797426062599896457191441170391740467480674693774486033495752228295519455126634242964921621832479590599715201393916150277237466648367292318004905222213919201842892696321925897298748473681146176226840001750139618692869576583174926560931222017399041857513414563229854460799922186235238253028482489585899949019086838666164217692057266198711995886260776434462871601005997509859952372514560734943983667090977744613977176896639409347828503905370661941099700722095154328781046356487061489414556195249179862776518071360995968743273001953050010030083671007629589878002982633163135146332950706483181040814230507220945247817421473671013170973833432969193124622825340209055897865589614443306345636590539800864264985301968248277442540450831384498119506663438057694761232122148302911492957579672095512545285589400428193361634006885576584012131725556159154920584799112959762350343904873738792694545259458918444823297867620735052710281954346927230246731040298073596571310755360301685514920919870598830939768265734890753163256747046356624924614569483641474738630951986095742080370505239673398706988879797858898159471922309859104333813113998379254289031616054705183439144299916957497007533594369204366317380598113163629493441282159365671148984511464289645550877043148574149497936590706262306371282736418862472972232634478085115564851895204885758797926415233020896108750551498967474185200793538240793099593424312747724464008610403087024022315332378137865870046196703279382972517402366306170165830743976790271795344664351568804093315474930292154622273544038860875009222390712994774152423391772467055842207137747249095613414316760014712478888667940327657619929833861408656327232187273183576045543296564733891479559661030861797486937243291029641435326588440495663561657573285421511769506412037181069970238963692577948751004910206496933087937324120269411072948573463044360278005948383258728039470665349839430492000410621798158355631252005431026792605061060118398178135180426346768067888454792332655308619993753972112662605481687056517477458771388825113619465046240792134615162789872924088156712758370984801353688259300474014671558597654793977619561062591573743480548759229625663248807838954020701533032953596080991800967005880207180657822399192250823341990036544294265812865085371785478960388584959643376357237780260340624874445952747124229002592461908634514041184702949582532092976462288350101732033971589578384396471702983483632285013383771005853066887240321307731324118485003004983548961891619629075634165098003039265098368457219754783035002590265620974869780201472749341849554691389548792026364521501121107499623980739106685046737005171498223432652451048230130315945667335108794712911149581825787029087472150322276817429383724773863642978161162976738444451895601342983474727338070777947377541445697954385622035797093388375755982459512705758914618325322902831995302396083924920054715598495597129198778428673879368617849683869406862545341046507345970685834157054949992044912248136798413488754527277699690049653867606377236857449203912715586842912686619940414513331507070248710002828763528634989074913010114600618381014195232069556184559856229152877937501208926893245129376009700781746731695159283512082633702927900792781353432635692617368726554514742626586734556862758763435220909622125605177594808681464724592029926835455876043292176257730891205417661723513124031036217421855930541646218492748042294883933110820428452574539978502832333001336462028035007065600025844472450728095231437686988779848083786600921575163144899715193042769391150946067373534209345118218428990546599708610723374369597142145993814491983586638151525243561226197702689013068571951390877049066718316254759081422460737028006695409368077273701401664397682962690741463803966330637107317856740089879632985326048715406426656303663406050346330052566077765780371549898811381122490462817994950748443385679882135785546326736175384316960323605216758063895693633296715261156130860561922766765297540330486258990854789545527531542125294231226122246130178549759167283407392998881934178789136106773830110044271716105202151053403616930078751407045206320840417109022100894261644163864764811983499332860417730847089569567434473763666946276958285580081602578409052758632288287572392339896716272652610568348231887118216154823497533889231417578818278211358148829201763435185297309159775242296861706095010497380234976892816813053014850352431665627468094090964313888234211528995103949057124404391152886200232912212042365410787281789282274947259949440767808025044571933476462595278475706793162386403884835172123140174514582398137010658807455033576856662966685195616455939003839296731503166212069780848619441872243946411361159693922344760747380387535550357567154510559163753875003680497459306555422855288051094571346247159903645597465162495230446748960032410769912092604220894702167408964513861922651878818560566082181881851325724533976654410280143029975768945596990658169720324143625170838588702195797703688177605683274922754827418335786710552260539226572594082242688308580740331205601538730062302264137809066929735415541169164727305593044098939878458663155643957674399836548474983056085050476629434395938030221720803954312642790996312592141106334589941570429627579743718462174192229671850897963649735809877343251397760121115897970615591758260803209186663835387427501041653632999566888173422936431794672854518827294524383100798565411987425150711492732983428136708951284408957982335273663286377810802382848726252622136787197277056348109131137283395638488193198425181053227940401144296488691512297435858674863904043997538033333799540717605569165874923783553591153187798625346677115720503843887127952236464767099578610330899661499337974817242938588208867577526312348886638722189218485683598085027779415222634719032284329745091464991325867963005286149599553229792840049411201930890108231788860906741326231045196651762368102844971163549915093418890910411826057763946898346517610842401028759609254575967460121678442625192481200061549677088966196638424844255620792696629984172202824056541457824695888502395267215264327062481380322264231478910266490084843931012324485749590250333923183609886768682893774118245216717696436394971145444816608727654958568056703795055996802061324905670389785417559547289248211045495218230750524195637910454350309846981176446215270058378558043533735722513715480921255104766600242624753755178325001906178367086808083344540519944620496215490382127722532699066043948349327377293154963781212812145587661974723721652673649806661654822529212215379608377445596997450986452574242389948061720028390980196189984013487101917321978105104286055614118559058939184148124680153651889910610006143733544281504240839590746400478364074581114031396513135532177871196928009114786713133321634733755536084067152724400616371595153287786876593213111362616380106183325653256283055554492859036721544294475879261827369537494906430522384076403199980826949995383795576610413547847690080492603721599497652163899875534408529309344683906823933535979212888827116090965830427255125227723112649343252872674291775255860999062094237052569927562396906440281216543515794603763604352545553590754527314901049748383454099012160556356556063119065021015377308422630982559564117736515146762495533882376101271400629065880790870807675771724323508730604151176729198976634097938030070694237562365342493025837728982067870920130426817264144455762537801058101260777364919226234623696266412270805066176069567344789124668164259634743354450823223230465534152430871077064398560465164789512304825839933562332371328347740963527094346375846906725955337184068092060896849282105301184128437168911054676841917350800715513862601241311881373018204637572193484462191188543265630792795923349211104854242461556565772578637112785128693611904602076054365488414917655868806924576571485036952976900444128492698199329170996499855862256352184583061957738790712024217037535015907238248482978816215176654174030339130296679068450331343443080510051097774287055431319626334906409854167197982091121332175348258917019905787268555385535159793252325160402685224946120736971333220429773332431660565146385172751387189243238626562859007170105633673952613896465775551696437998658868914040737571681685234536345778233048987009238912467951050707579660489515477791016665718847940024524837334824152302029988468156639913139808266815593955472181923164254467588089110207426147600497922553099405867423569816843098493141283188357236327991047111545913497481404747157207501624204373401232975048039128137003538067449796740221315602467994346605028304063900792758465257463291440270141780706213280266147616074239646035126254186430515185997245619454593878400639569587433922878442627685180266481100871505926026836221681019085126107619641413139348953591978546425141544972485115718839490982204210634112738917216371127770353691863979284677076063593760546808746416258534418668094454439633953584301156823218301932909567741934409301253963771177980739429130739133961764053168886239138455318856808708733915311101302447825515060423049961703678762083985681375032260827360288101529183945410092922541014633589527510684661210881734496324533919214146042447996909798295000608157659877862988474515482437633916889077366952759367600014810465764602830587337805956865193905044526454753986162465014297375328812662747539634684047956271012221072129774332407328929279141461648276971399024651448160211188110459397502554514335238659340424376367517611696590138366123487505767857187715902692210179028798231686490654849892038421797262777734693614082688376737791223833318924494274920304531945240424147575505261872904845770451801580524621786075939229016758127043439695548145811104817130492186582029414886879653860969233784047291820707880467623682929956357206137230082150489674171614136580609941553939273456083343394599396456354367749255893090949831111950845656296078044036032496547284113125109370909385751022818038765170152192390288502072893951459731971256040909097853467633372117312524767835498061706876748985428886968925968939665796853986823022520830985017802864891692651460262912772594764114581940899679536456360555201642462316870788064421264277812471050401070922243517487129112196880602035440081149625143376428931205367638816868083360629569179606636529112121600455735463507492309297713785595147428251623552037939187009102576149498993244291594253919435341694902498059626729707594251647031890090833226143690792022771276460579667719486995758032549570207791805209259876321008300545872636323533525085251234900537214479245994111697037025300099716364715622331140838604031879131237668948373081819864731870439795625672133019495143606143078903562574168846168613048060974464755612100273567114049942329764898321943872932375561209240721264259413045332588902619644245147956319156465144122809013233962526058497475751611386931641964933057397463022796122918376186507944683431628111727033660150552120246809465411048478784754713731502430247403064898719255498518892516757826487671235857280812276995655343528061869168762664219018203632009867378688877103932552635808803032349007487891926892263502045850129377019121985990571044981214625352367050418246745901308225189756011648844325131090107687299291957476609282182207606877033276285899136863968453488137594125104207018079528656370650122751569266311115351627194797993992827003614407266843210660532599342491252597826042337759261845214769737350589538109356732156500508154733351045190771446758220287766748749489346639583611121668044839446178490059750820104522086531108780768174628151830062680572474126467109325369808966466547688786348047525106088484620008384775816931705298180047634441025744309387499671365925604690368699342015523529383038123707926208310463676548947642506581386254672189637660927228511328155261479207867762176436135469901567718325852014325429617394507515140582871187055808899015156456356022454408715544975536590145477103307678293727269182012044446865749219589584510237460769308865737922379116288696627057374511488354513676101500505980567023035029535096942171882935373542613370569450393153587845311306208294270422915019413324989096873349730978892973048781766386051455745081426084113310859808864612654139543154487951545231624906587352808918739351938803787416676221790280846101403948484647236672066614866189941777300769808238773466287094743503170412612604159788944125736214344322210055962232352886421887330674854233047210400578939068034822712182489788359146773303073849425683872579256827235317131789369989987881847612867786768898690868311514943599092879037467538415731921333901606669340833291035789319775826786991387486174016869878060242291063488450123851969381709428433689335966719457277606416407876271893360801918172762029332015254763957833041320765824837311550282136350458639568784016852258719774057534666735031790737574059303948747193275781739461500338126529297980714009764333438643859468754103469399382729130789758750656369876018923101989121913147728054846943439882756052453461203570663339639536086277468624702905476610892017968169817229390340322411587847627545493578815074375515170237369779750599018383801450442708258825259648296081911084564101432829610457955626506240122712421651065365247624230148882952174933085782524967968026453225296859079379104803951827085055420481511601552538540858877882663679303641855297379192140368562682779978245029708329803018970651578480354262310249486628458724955294885712456259900935995386181581767158250862193664348259805307005357485274512397552432040011135953796695637091810634492985130779980399052853099005653280155415995350130032283377782606869816924823765354713897571167028149180324380170479396529544368491663114884531345519633777109373796661727617543531876816172748544291480834300880200596711071208583695983386718054072424265374520922489858543605466078790732474817270792237865603514403508799886220034936032613135904718552200001429335986704705320432434123523870052128404830107171318588333604830028429414576520325950456723006111644353360040568990132729218608537968127720496965348555138751096314766521364539866925671007051965905999724283290318435377553045600106342216989913417305622363845559471020242902098681162996504105073077846048413217348716044985244835730592974499636489086345861384960724743072860890538830456298469209687593228658576733238133137501188780292429670151776067656589402612838094339840020461993286924082744236600878909503027254777804349212714874314843551510038528766960424527653284669890285418724071803559883614339766927007606061345818734932454871864068760695404089010061448905485941187784674339431674993403326702579649986936975221304975426161331287245335385909833190099049590798999439122629830987511761436613756653691464632817614812934561472281403737619365021066411813999857454300120608330070151039718442482864464400798697160333306101480301531906959924965212008214837047690974947226296926965255064172847925090342799472698116080027693294769542208393597300686916593232548652960682852630647185698829069171292958283092273080704150377167363595227097315366011714418656937698049916214233897926933123804032204099599912070194018130152934216313110588484857411934062209191664814601161469365053144046936381132032254986005156310546692327126345882805424523930508691593904492005535726957619522551442920115312253147030365744903713899255878993834161635122798251365496952706951160274661091143793125492225527732791749209697889886911445120316709313360277939922475459116121170403219862642001230647545270458038410100365017907123908380522135511759501463544559084259569258790567506496468737640706138244635061658879989137794833377610165087549665759199000718727103298543971477863725915579597623240495113875531449181450389083869645603442847512712461963152271039994555759433214510478310672011194205903937076158381707896584638053582232823017947329410179714332775190703462263833801513654894056367756614488801948447041173419251138717200594759287173463058860523283691673094004254073504774941228070853446846492056366121658537305685423881548379029232605785926639035382355761907057448196418750059846396527706579586272278811699200699399976809279370985429614702655519188846022270223139943222454372449503276569264558642172823082692201707577084767013363881152948769844271219073085786028832589118881090741524017076003481224566424493729841995885170979349768585277577999357003440572246901834698053473978246670964007747267355864662239135739939295232642013434765877392571103021000361213552671875180839734231009768962368499573145014054036486323408930449457127413261591229283948896919260178982753866285280793722894476243589882047244510842554496129566518169295406153229721942576569434577435047774507896055873316145386537467532796883425173688089958427388669841573865100480156992600375641376119134017547211246221762350308081747262039698482298025791417307922709962392349159856701715957697397379493814560186628550926327782205143822889573441534633575967877169124825330150842889378748268389077773132425040243158408216642964453294873768040708919382111057897226740321473369619417318213303979903113252437420329693893473244452365064160219759917599567746980123346299154049472538829674979802779981059796241783004189518321905610934484048233940045783582280394202958796081941679400911184144461964654115176601021467942056040309988742197611154075508572321079086209655335067030698115027370246531422426646671822572050643795724488022009136772970261879854496900614884386650649035116501851311041095082218336096254192481614887615387427782093622061300042269676688048866688930360042555556626038366757778784004048147996771138490856170535434399191867024988203178685386417054870330088773900025086766130407014866527719610759517939347087985920605213366715477352687188619857702417316538029080683309512053982634584603207180553959019391568059606020918460588941157600002850688144368092431748410581005043516140104683933553383328614664883529738109888695767741173211977679659276153504210738901206971397726220732639717886888541602219226992771586389508258635472824200012807031512953743111748116564204799592203427231054251492049794428160907087274762833070772138506799530118630340208049030555875038068942875565186963571081766653627480254962382051435263472633500930407052536213371906415698073330868672083811661615444704578904423242634552339742712795273712874760606645846666894728142497013834616001058390855533794677833378752455768274945485095112947427120168272564261281071545038791572913330331800984883387588927384360472792087075959203101618682734816690146681598931998060428283724342781229200260573305976708686217609425724479160250699557395998184050637302785181340224346809166212421388000650997515701717073255735728209512656017406811268580182654225057789214427768564872946075808174332809334769861869288295493043914100697051297443285822529764625863553575008951482888832453589915985216940881453516741763202745232465237960552195733287062277417598170670570078612189496387547482086542616243065064742258519863173071850878722336083137966509480833639263415786474023784605060580945832132895807824718461800313043917899310626645331643601702443195417232075713055072901097347330364416832585717113075213560388050398204144099822384616939262229304962575539876821525168933881908879467205269180316372875827937987845067913357545369348657563876522615249714964197993137162437800008110219093374043054617512612285566012314419938901450910605689790973759858423521233623983900328419422878607051934762867145381351505544642683547496854797590623031354929441086531307890479736925261164155043899681968292392972782954398041140274967707860453142995933651461883816355117173112338787531378109048638916134506707430678369584313341031088186490241544765292795311871726881185050195516390700139348166038635329079057058604540544166646172891497527091486289818376666179288165187492698822669832457111594760164925631266917327113736211428400263009792416325525777100801812382225652270764038357684575942044513304332011302693515671957808111376420208770833843312097962454164217723059194760860656865680261027775424868246273951713897358801486473436918703671278538345941408633156898831303436494784503001220610833539246079420172975545046717015955887742965104671625296099265579180452925198863657490428213426489376227849626662296274308581662265154087731370484811513847449822661129630081126668656797693473743542564895679890868616473687943359187210580311961920359268408569924516856778196520112655965628307735041090945424290112958242623544474522467078186383018564937947498894617734551434622418741779167198386909579713347372891127947296511089123905872765009053558994481621165604030459839367557604692462630419732696999974022919991434726165220671896191907820347673146747723837389690271557598616692964816348474170680967008138261325835399758782774346324090921123127623892766417997333187494730185885607029474528156513024478672713452867091650696682662825947023018358977128312511708369848140959854167243395804347461678881541635520002120779955678600080746263352758040470941278305401339236195652411152484060203259956946903747574199337906343054455914130419729567644181368819780635232273949597829123627602498753482674692201287968101640570073211550057993918745963829292491424390343979399215959038412648708146637805983864916456659293545376029878003590957129100197174684586360738150362653194342104080396590465763374411664986956001946676659650646201321333221257375822916832130300631339667876828404096435245777944557379239045894010000579306651719549655583323339181740815134677302626757150240961844625245140246730163481094686355206394563956650896389333131547583605250331396051416517012703093608755699636703828838674634234042724703652126066241726524241276503119253568459211896925445553943160632200389046751460836221771843339801897549093049219098607807764381689820650488924869832730756071792088317209893660314624827402650690699350706445347134948951217968699431192004660379968188636436133450152031906282197646996409752521612935259893176698861222826288458453230764243409136699804477792512637906817746813810964497319884535976748713267880758567445561250635221554062655442327689167535292307683132639777817774869517311599675683576907777605783758628614248920100190053729617056401832516507100511632280932509497273573063331025123042730586186453398002835880404238776664921993526095084014540890835031467883846532415932165745858307001132171121135255589532637240800496118350244006065473531450049871060533061876674943158903441389302975925735295810155784004458297180324445711298199536520988883861311365213646458268835663278461895189121848104303648063059151578058544108677580557136843165416929746536239337206948632733716605008932753267741314804989140072184996480609568128349295793809878102924821019038019445761179825386617682163819421884470735039295326780395441531962550723701982943259196255230002825622545960975486871418370609969044612749728348812983230893188293861778718065224414503506027165159076847552447841267497891818116897310494298877217848348035405957965095050905893971169446588987840105835556746417233332666932843883350192809004588859834051267240216706229195989387195672063278000307929023969637110683016766053666171381160339427951914560849721364940218823979428383565112001338218127175159554982448545075582716927860269621600622483063458538755534645594941493234885851867780992897564097489499700770941797974809376281856314397545358066598142555261599768521504731479233482647500847660947620723765389723869718379979197272292043474994901220285504895170634432565798662481563349420471693659280404924938147403164680539358306440791545269697974877356017806002367847850106951944659160634709501414508647100150280545733787302919561692410230975806064638583244172219976912989690304850689926838899880065709517213620435209306369025246544134703813395890487051804506532942654459134472589565577993374184780426036009825098072880102302081180775922741690992115657020855046149027842886650911115811753033310901303631957052681038134289872142269830228706813590243798688678922905928844819194825192973401214018384965986313118790658304881782702912155293984816284808452947682825576157220963561233944007642995098107900604613648621545630866270763830478585056680490649096907394512587306886253064432124119256527767997218865717325907343518852603768247000699684593301069016250387729679930893185061174360556963629712515721115676549546979812324205477667388693503133803959112071035658229326624278185822233934051292445991697079366428044544538154046440362265205770842093361762259627464728111851795825361631463053748967820156278278324341550378616242571034845360004238099816422290897905556942379859794444478203236314542541326143823050627599456218635216041686228240707144500720336092397767145559063398983576192386759869426192536319182110308355336328356257605739543138250808018647567368161604393044851277210385085663951512630942985130942034406048821399587401039946574053283236936128387998179345723674916660985554137017712703666935996633030853582300393912657046593374855957653191768414543754361972375421881024037470402578093221773533855441704264287164283353080129468495583211963068083169050767277163902418234915632349100256318761145400260762905389024314402612508730069142781295970772549278720402726924613817226372373656832996865570956262055119820236104896646027153189666132100577773654693919282223017914761730016873434461351661184602366609589873733353841237202231782181205757267497863848454096989867014335875696437208683809674722351731817225691956444605657606237401309051431730579620425908393418008663683324098278660870234572321998807838363419429749460075551854206332505764402406863075413340801188780660520771895968708379897129644686770002854514470899253348720595846410520200442567836779988124295190854507712806303056858459267049904904363710180437375366498053202167400116742875485487936869237564106353198277705400242874809871404166125188271839936808440177059095824624522892136785036642585489600934758516196495664824607816638714829525096990857861271040596981956879448141778503640365631724137546639730317688399012349442090218343210734590749786710063908011346866179785066856654305602919480848979207504653118616536968324522706227017164532673955826101615132336724714510417848662763663199517695236057569805610062560115758932695920169123193746142918276070722082760566450803985187344253184517278214559891514932280426189729167669986214935534085552513034398232756123844832303585282933158687807542734243674416682135130404086022562755393303917240867951869165992118209982796920318761530572876780998095686955658129338367182844951534198908654662721150201261927346836150293573700980041369904317263475714688874469442576846201204535821554453625713374184754723874661423788670067752566645754606972052839162154934795863906279347637454051911344480185549369989640439672562293109886315150214575009472361854549913282493960655112111122371195154666987711162880061079917436792841451016242456697211251299183431073682662875441285634557446464577191664110264728674620843116367591812644633041973803502772608623426084491530877508039143640395387140187736203921613863755820582854145724215854188096915103735046681163604177756658108532504076530847243724497888884314844485319464430744703472436124218689690452738196371805420848380026470212862164660627397768260975219589552211473574031493013289679136362682120422629669845797898374868040586731389369359369341782286927644023201642999197387042676014640137508520414135397636929633598719742617114512948927413851206477752931496571816435696419421205375523433288322340374039418493909907822082264076887369780622012170075356870829758325349719039648444207399901557463061350035154487861470891765526144045001753434672920660681550895798242978814779702204603173663074945694133623468543442469645088569512218338088612506303976427012230416126129956529772188567430933895507557457951743253164471063159221229333554843702109059202026983876647717971735000762520010718708290754187792113421952681733166498471935306545601745964139071727455775524340088697909445912461857894631201464126907132873614493415152259855334798260843047475041803605672537271192155866624936735821884265895086976166922223597717233776849780378651297571566080689217099843690042655516524918189123391447584751410893564577690355560466825707662482312556662658475076354763927035673962824960421050266339491627288219795974517783276098736038140234274882952894302361760881934425630110783826794688138867769820306653581870376324559111304276663620110048999978563218454681110272676216258579398661985624418352895958572370847015671476888012969401863656173055425488702401769845358841941095951092831094621164758221242272025762073091990823809209820649165261107169685298844037141962253306144935006614808856503000496935730756770969466254915812384586244281113083414882939835540333288660791171549377209185579393820119380199320507914871545581643722107911431080786593917358237955101863252917697079395580658434436755810254979115077013428486767632285626430824389961371861567927524651800363673353537190781861861540771747218943795398136216022328092986850091719580581576641093862098040766497445276021335466652083233681549713543115284228440689223505823759183438778403394589566858002151091742007584987688604291411265479876165700915868636923348344470605778883221560966578074406061982000393853074348308740424478250903887867063555299127593138503875976782045488258068705468380629727911381237590863281369961570868025489958107418405325818005902496763453357838985613187894351181857923748298733225687916838146864630402890101564931624502026236054828935275326770352277326487551146624519146665786002052013112233152327926972622947675790883285733493064915366113495668995002992997672715148911908986682840212488890154173488350707300754938279072722214092480095982971538796639031317645904035628143797909175767734244614796246040615772284039778940202561518118254455163251000820710378114096133598731066004295282121101566608384303222501728100048141613870201773392826945092432959823574821122004579447402753117551927508123990366314403651448026568662967747425827435249582370887790125877376167213719499765746362748598312477403416776284079520269319426827802854985556186418982603326507507882851983696837140033919654877650797615036263744099611880156360184608196688370745807115113328937910456638487114034427991931985700267605898152614630461217208969777773579941824744941513536935020107040352819502256861611167625797018955785716081180068049997022116140736958561274258678721261308273406681964158010837570766258952189600632573565965472385428937887889917901281954772752511642905358039876588636211036316315229311315885822553879277327466997095193828670485168561546331079977108260567148666707026126259540487678617090554643253181076301513986899614056079595507521541720153536887050517357352676698732595141940142468799641243050452164714713840066962917054707357078844814953539780594143314098439433067027106970143200504764386074214574087658452851933109398789601376958417470477553456961162228939217287223562449767305718013661908295905686208790730567332920016463233634250354245189552992173068322652072275854964094579291093047136297245386647907822357768090055511615629210688593806867106415565415475339434507355338425667597263642496998017926726866590540387508285366905066956627150826454022581493355044699325894860942607240842094028886449570740971304757548619006765818950052630475160473818381037186672465565926822812898440070341842080050541596919948832076805878340780614671646078259317221099917476849378079085620985743203770930404690718118832269248408642592781189186010808119860826406239320164150639570713779438265310328826393750582694945764327523164793647550724306052401230652537019848253999645468848206429835673364202012294306554851240735018786552873771150405617833039593849792349455947408241587012732769154930767122626249408709499249232952639245785010406182133854246908915750225293889124571644284465344162885312311764185366976562157757950157379926188845007727336086997260729650925769807164503099792787436263834022634092372354394252566190641713551414318068229517000440608539815922070425727379270808653713195500389026019950957504828620511932172056980764211443286778081734979492040753138899549876828960240520336959022217813379753442808492539405824457553765338010150812882132822517166002705452469512193673579208395818127183313328717302242887664333887863583669412982082749148327060072221237827578988905213498144542779759602994917937240044818733918693731930761568942734751134100130979458361314219279943211291651284475547817061721258097598608428513550958517320310767388067604905407414717726630491047796106175562573931888196516430225376265090002970871785751644501241936942163244360286702058045493005776732379678163432399132257340586466764217740989904825661294585053580499128503913289750154903808750962894826319936308782480300788700110231644720394268513349766000284691919194111910665505063798452308167847174635854463377466234246503868466786063037314181980342587625443523804596719116530793064293601646105370768784771592609747646551642348599176195860728475335231115625533944724264028373622162569376287117703437816447563895057758104982470703648122762689358492537159254577410975051986300035071926351956434156181610902949141831323857273055806431739073086570483954402487069126830955932830662888171454533698920244547555202652774196268988627853294926691579091215881181591755777312175986133567133593544674953162492609157550965769110755616389365088764809110729288315591555767842839559620673127937576267067541617059307671511152742552480191516882791528803678363496223183587208392869425507131874494269104236911183788315231822712141463641038128826354316642488790391989194306895393676378436061693151578440027456372407689285971191857929391518438383077755817210994376890356503815213503343743969942089249521497711428140346886565979006749780854833828416273289877743632104743767605834448573665170354942431116585425413688089864972177515653635328181945138645992511822608863559132774919217582638521979079629769827447056675235133903446232663390789260513624461128357014307800436491447971204525740370423155714794117954292027083895881011703347949260224075095383724157110724852350503624486774375655541185238396475993648094776288880110134285220958086215972481213890560364451742019661632429979029882983912371726487363252751058266678192007387997682885494646558767766739487274321401670964328898959807296807019547057010572087690537690356935562567448960073563371362152744969281998505670007875497072948989118200660779160720165086883818179773425411904710113334767403409734635986187560848892909825142077901117848592341429015352948021399313697636114705287074176569982667924372109477299619553748661219473714759491512827824841230406546167061705194039624137122606132186512072947551000684687611672472005552474121062939506067494772960392701483473159691989809217097883761241712834533311473909611332175943111724302288089948218365624970022138225265807553288718642141398833186082511225747003138436226421477659159887897136468123356140056904429907615012778573069473413620811035076254421917856056166823196964600127738123916366899929078478199221104204099558785234974982273367262328434501657343075158513182550023558444097103639905479339209149790935153071314068466959333284280101826775280355575739465392715430502682558132390607034732449829448222002477842465104968383910222667282724472182503153911610039129937790748824869707913770038003154953494319528898005060100695297005756323180209813393841512278343005035739107522885969636900044252140058387580129827405373661516191038438599474424871517101275599594684089770012903851632753160906584517567358885963806096373145320102460085881478304906620300856338912685888557281065514357586861249396540697694926046750517070922848379543358460708056462084984288428805883854457367097454930477123345658408583489820483179941697311903663932583268279020400672653881763263126950780127554154667899198078818282195172891321901977394691746231248885382679313853375363613593940231733263634009573175402339050004886907769142173721882037237381021785221706663840971779626133920214265631722226812799301783478316212084157613720700935348008974059366887128985075496262153732403664351143503070759260393616257160892011040910948363234020127479411848862313519718044783856651316197845908191065346876264037049662455732880320445568507761763020010417351757927238608044065341903368213939767079597382963478306630329696026077064911458233499809718257733689499106042099270558772753530283729981037093634202182008491627732323472159428619254125560583962523238742343423457889619333317664253499987329226670575900893057478601281993255821568721924461506071554436640127975337548445271470523990329649519911967940838490311380705233671043759020640731220514956798984487301750059440786195490078377824617335772184503353827185816998756946022705372963738709300268186186868575792778617779106304210291680741945512152705485404967612727512189954337903145185461828130925644114827989443142219029005783697112484554921583296605519727902413187571325331459476385126544996216246912647149178609283779599796977761224294423445477777307919787602393270542123896672679159607368459845580911305978701008598568389067787491121258180942613023839749335289461812109089690537524175639990953465839201202256999083064020830703324511542983760069674951705120924380807514282536111884373189140256320446458987529977372890011724297535682993056862430339834113846854796306398365921574484361951416379532392755515565722082600141748664969155847607465714247717377976560597981804334006521326972403129732953416796878031977798769923843307939154360923676106443385572132209873667717698532432979929763597942114003306129564453917873727523653375697765546942269276875425691537101496115677649753963270698572571290564560854507392632541076548939841067093571262880434730683587073936233779074485606657718567830065907237245580135308152655959987758425270234834079287148621954025583231807122926057126039157700554522569620827369940111632220944190033582087269249122095961606355447303011882188280142321875103824656139647587655253095475495032235402558514896742372504874976055644227747566784835610793716379335160209044515051161967768919261013754198801331382144349597548659605082515417146126596542095908332436144962004980921012356341187956173857837962227927461129216699923432443034178890895478043277028032897938938128339682799152877283647265757840720912327052620743119581677514277790723543191732594720602029525995651011648939238848168392466317361873611243474498308973717470294756616493281706367279939983565747447608380673198684592008100109738188009484439442717907412017555321072781016934909648775644182754428481333875268132045120260098586429469554994184186894534986209022752466317422295569887396217550205870965517226486317264360761970661265587349017800291038088053248427168841518832915820263172323897359343176590845831329139327273799919478746365295210424122611936851432588966518175858983780180507851901875148351183055579552088279535932445907521089580820455510741153261086005517258842319187068995161077889035002223047808158909666562160625289130332925510294690053249066778226252510433596424910808789784420324546815523399171250250965540665146086608518372948819474735791831126628135796672387641959298074523526615561730450418193130074966593704307651936019734807740533852995993343829825311559808614853818694424066407219841097561922747085597053997071438849117694799248347228122705938797075776488500793540197783775612474788343574809832634439528728862413194433107069145593710240592478572890673145137956618014664106644771859532273874781899040793276332846566293557312426576539916604879319507279169918081509768711079648483153576669750400776773382544985670298435204777741975254746607515292973909466143839532479429893453594426693809658636823270628712789150580058887314014972415367889304256191747846054241035955053719682668228805034926347219191240004646255025744479309381455287598636433824686367564839942149306809153178394295621193879362954162844714350771065146932064632953778338596388010524055166645278569844717918737426306635303331489747726006340488874961989471866878716326985054501531074077954078074634549842315963911523461350851226635990826404352147077894359950052566946486378667872678524304226559916651256812703642041352360212441954373611476414344533452496983067340951694390839807503788659476008240083284426611251674973591192215955286108151798562003945121970665340014489958845566864600627464167599693879205596180445164556958905420740831394654089355688304391009964862867699869679874372734685042659532397841795592294943503335947828077513628569965730965626677343539071867755837991624261701250531323063131098495385261172044423744378204541442197498555489863657862118510201080604109142274969957672875768155492171898131632780428134312019349394160924432439084592191531631519357685530226377240653698839097614221027703733298854307269073897192724442794334353912029273575692613586793864901114800782567334972264222299216881393379319246069473614783817491166624315582719624161574956847748095634763177679409639216446541931476028504693578319818173893957341037152193599420413110458826267381717826885758253801786331436520705320783941916801005244770308943139322908693790122811408119031146030353285397782632291789219361697426103423890207176904283359647871785420180599878707430092395844384939171832288186771178859708070068106184010007576794431687113532614493504276116834838481930962702663037839011290795387868502221607913517974329719334112598111848544282519743273380383280099765609789607067978749950205277856490921158403951908848692303193073193691134265105817605680015240949303586768594524392974569534594881561312471916635259984222190774267201638539201728431232662993658633631426659873233204814306580007588744886791139362368712035949088875872982873978351222657908459441546525514165468666203071190698880235627954947249633036770335459838486282235282482331163376446714934228721785870504830598702336599649386694418883488345718164418983349147445607025694527642075363635167992703360927831322653585472239268434979229220853209450461005184803250572109177819314457262332372380184334701365704813573265847551097566376784646258997175498588187370633641796723675055888646060813196620915235214504045546373121455005649983340360187792776059496532399610438613408028988994192192604670109306806526209758773868220078512728354603298054576353538766799996821968013831723263601754100694829926910050434761445494043241322512679313746776643994166548256323901098194271700587510222645478613280939100127495763617483723485327940431031886380392526864856295312942210123688776101967521040271852748065630294315576278846233700245843104274939430600775894130864018785942943371757663198478557409257307016748885068968133363755753335950310278487242448496948024778635354783324233096633289800205804649034732962949710473268299714081395857262518481309297567896742260797473344521585269684194620476726195379149821573232817659384488672247726875573755262498818227356855669440785858478321784656607894044902975527719116123240486232594659423828467568738314595822975046045649290259306909935631545355945255274841626299818065451032213475397742100004268705931340679370520280128385950926071521709702117325342223305100359810711851848054884753394298641700651256909218631684732475436043742000381240787426187033282352003577672104297813661698921985861247743163633209081439647364877531883605415220403557931304632997708961537350760966866661551964483645275732885119779661126925648682177341133261887442094259295300893834467273627858555374466314323417521033979925148673706376487200901808630150363385223712614410524689547671974369443447889587433314000382267283180030944499568265606887753000816567819516971561137426690437348638091134221261054736312517215171942247541566959048246356432613115531207708804438452834910464895480850905238129236535893179982801816403305210687278253995357498479845717707684676893482898328536753144427607594151286443710580464853333931774498353948469391318673065228822422753350995027190508372405648025825181855605606961525551780161932122744505488851399669622146642982281958542658186041727332768297343416454072914496164604345890191824311464408538134813108610925269104093934213018985336928880952740124968319398163534374336487115050657149464305840510664135201444747434070616204752549153045945075688802194137789062011638447117893309900907477606169525909399960270691243785612181789127684342323696324558296932708833049124383898541681448286728765797332250544608638377847778896620109718792472194063173540617826933385162562877245268394593717695653931707545664977785215433969759042105378264085883133011701857824348231771828595731226311954451744165880579318698992930908184814988836913397875147266568787748350128672697818288371900525100968158572423629458148253105497013511727370935331652990507000511034164399091289309965557225928314375563993922426562907184028368150548316900926932680622711826564029141489386296753513237696909368707736176201949638089855585127367392743621770319357811148482915425206371730700431305342308163319158625006182781161063257896136872936947502756543093663097797989481509107884809568750285535831269607795359092214711786890731231455036101780298345210985737988697359715159255980866235522524908790890051152793164198484546048417955122428820635002629521829893913601762970202416273649981845130665775235636442497664196146192509429649557238921681783663417013105062171553538011314099373122250463741204680168763168901951261490597748035635815586289899593164652624006764938890008184782881192645495762838468573125665946936160783967248686594031574137591995484085018885109761692470346432316806423306506418633042792615572643754555931027933428452152919211205625968503763221194543857570069057490767817130945206160588739162843447747425242890043911164671038402615069534793897450796346598293964436045303702215938398610505461789380173211048035584920500759619959818981590955513139805190762432772301676909449610382734081607440944613188331378407937316537275771283924226600248526895812624760012461944981120308258454261237242357128827194769828252950470472632368299609952956446158573547953144269466209692303471305456546956610850456471851905575230113016614635904000374546667997854349169421171828973590488834446200173933826844588834750695297784743932194780628897198975813080190029956776892383374444334541468125295367909839735324510479502092827931028346326412480799938283052885270598449738863660457703883806215338417694211210148670477091789698007692174925948625147437528908990166109758988976380375263088113331044684445842324468464815136134495541572443239497968825138334108259214155641715932645399385600379657011146821890153162630310122550633957492309035653397458666711038055120049963879323546484544129593801011796705977613109157433681285483522467149501637998031023009766406790420754333530469282660950834542759524993513261645015983078934588316217548421360434787937252273092491164617158151575048536933003136395274541800636700124163584357056416916504749244654055147814747946348628344712551240690667166206599991392062657503202490681672446699984915915973242065978540575064194139116876307558671690319532384642026852956822218911363660917763667330807958379864663952214041629364664960900290526220949174711723132543986090710882730406608363413134622958268637492678913547476019750702756925628486779120177367040893987306022602688117268937124742257909399551439602853868138768805020225617856629588979914185187067503243579496979441916554287432359760911697194937935412418410164261314477541848126194471574445341647888464284061931886057220129596696243267898883454967223412479487987790018535204460330272145773515871541841053014835078421108305618821631111312892035616631737363598226106577412415160341804326546496195561572797640674561251632317981795059567572877615625565819621757328774051811393987358698277443158008742583221437217214687611234716192718026616749702986969522891387465762627013719890787534142834481795375182392388404402465836519272382823980440213502072180059000525551678133705975486983500269348564342289766362841919172181583060012637895546396931867537087337704305333645846259172975868174088500840279188818766146817483375513291547604490805470568828396654504341143084282088305499943792780993187690901208959586551869550278756022430511420820584266562058589955875343681848117188695787169046608921256657670851925243479647210776372360188978604284565123805282902945911688506891046742778608456363230886216345091072247957806786779789840620881199926333991459322442411869657770337471110122992949014293860866441765126719786177274095186218734269094224356162010238787429173500778148086767541451275744919542956674895008178426992041842093440790554211900803392970191832131109689719059339267713456069255597155265957277376025586711384660406396645369858985732742521662246720437594799533139307392248843516275788143483873511469199109937762205967133769550246486583510729725950757503426167126741780843326225467784371596535131136748904570519332013557217803683206849124464844251860387487003543399549193863292701272132923921587246126515015851391864581180588529583384957751787085005332314256825369350421216804586035083152528128840450050499489557618688305342230480254885794713885017440668709468598218911362128279531504642436295238111949613199015679940731786504849011858242829662238634316634108145001184335212536224998402637841688133262779539596352666072238140546029301794506841357084226149178009058394243293498196784936495291194834845633620910232113469000169176017480275367858205157515908169952521745556786814888644313073238744088367869911526849826137670769359161022700580120629009503227271608255997935314613893621288491016110070191642340665841004210444654219816107829111747395747062811719198869934796055419600482797768715301849552408447612247977836646987776480525080725673498478884283598893846428190944262864844348627441482028581327508732614134577946422694895822834201606929233044029890247125208019441186724968515727288248568094856480729671797148047568305984069221851002448170453697523540822009331015159002965003681053048902572180520688342836313545602864436301749347119471867471084681311459641289290417356165334423669888521488589594167492766566402193490236991005610591377837868532648491995659588766082976896580945512836498980779417775298505108118882459604607912469169894294840106147303964597929352098169733063909344174126639505135264723115374700963617945682076530950577817363230362344113708304053701053606212783581734355201418978673644755818250131459428735999807760209437024935573485732098388721619160398919189249698624098993659603922380774548735558404435506647644537451370045421281182733582664889457253754258802181984433866523754964553738113687610350795675661146991400027759831990973371600299897535893731474511004224464969112964707487251768146048981239990445925876131649180610341836180597193134405717507258210835305958264187309547460465220371902591217665574346245761443495098329688677543919773833461914401579135770516833703998386092302502854794360934880916334309902406603299137591229079233084375446116947578906338341203843134659519287307033266220561069488360772855216477222930408465917469659325806238411514880947353490953697134548287899592300331433363080673269014018703893739911091219297575402451109734026204579037521626448910853217778624924534114175178560807838453306670519134727516421912794924231436063008993423832443720104403324408727165274376913192567410334341860790083860144348488713570249955980002628205713032012659778272120439745713062934356111819007742111439374181676375289994574969052761274973551110980310813147766027483315974262327767695849399632219968561492586966806227678395287852115206615701186370365435707906435349410661080210436836377509640649099707765930212269121873637468777958996402469145679273987878187250380245735623531863441631071790463459415275000341373935931796710821899203169326115866708311014281477977318817366023551191492686199683335876344063119111984100583304766186336286730939116505065898144586659761382108790254476427823110249424618307963786251735466286044880283672081506042800251415732966436409646521140578279930113696965071713691113079280221118121256973852786658755980754786090394315922717286258224266500079998964025776784457768792182801871443746750493185675443903930507967278460907437179356870367216748901536798492584988480629541475487051372505873673183570025007720719569114288366721939962402737047935780580280261734623552056684430747691802298568944464159087068149940713122717923741754530262516148580785578199116160894516559476607935625637377316369291211369204794771316047698464259208110604006250994680700337221954332594877855231354229323145472094107401267922880693858499507960097713281992819235903932973419552014863617935297928662547627184482828087984246666311268745088392020700740120382675943750030434197112770952702811403183177837982869229204659831033227318575782027437453922312254668238777730615042279478637350830309685276927990833015817313710167370172491327690025195054844566323069521236886482254154439917613373973046967196876837625905744391378457515723491220296772505799785338349502314411641489246172735920767794681419076317952143391564186157926516297376081848243720538491237254832303472059710311508202758327050639774403050777546816625183536901522052298736604931000469228720627968569674042149789070523694235762663757596244554070541214207371220735886546222291727546513766963990782494448241445286006528094476209492765262490104734828771600631458649486749939167255508169568515663707163499126451873108591045738288921872170899175043837661807263709887733551826752095065286536843205608798703246682834882941841669843387092814466558236828298812698035133554779653975172256654924282583140150305998040593818244638774907889857521420596108958082058759070024564822329823467067736978414642905515894894929543866239930360007862583849688632098638681429535439991332657144752666147923336383829750592576742104399942931057096761773496510622226977570278994077236841491368959008277469453600569278426569503456000240715107962530219210676412628809926879594533000051083261686706162434908903845983395747650431690761346988834091054366487690597511910542303656359415505527840912736050153515523419393755501327379367682351401239987528143650834384036289357130027824109855735653751787556676797822751611186214406226837128032585524068261052522980968486312994373903512717983792424850421176735416321303593892943775501813519701103567097662935722713045377188563329148531344849433972135818148759227483622247150709306413581055211148525358962667095776079171666345601074602068308422934950412203217354917210480259328597963918842427511029390918585652804479306588398382170408421739742959290583097505458759209815862383055786097408650711344776477400962872029147328453381204422343090493900865772418395210477863307819265755482331711435309264728604311028917195972924870450745094894510633081338457587113359630518957902249742826329930004699445398501718798872755635156559907866533956979405655639087194084691561275978409856699028064363493222026269521795575985760488675451184869262774028276679817852693254071971828042810823201451896095043894218992038891589972726083382923209334440476825165531799982348231805907836261672298830621378642100923964786274822260633543872850055862689417205403438085438268580087459763633959620209116848661295121943670723239760364355121675006282773071728954109298375360642347533699260068566757583364899876169703117045806658352383589929070687515186530925677076896620198856577124402618318395202954790691672318023346198381516811822511225899483559698933483393369023442372233641474628565974428740240550127208158918465659992066695193753294978191193317745900421075255344516404419979476677959433785852723075639745566536406055086900917283207717446473129763327111095937180422764466875722911842276299302758158880450873880737938238232273978751158168817341369471112782437742116810653262096219247895561074741916207246876032231670446445087178655723301522111779098844816574832061720129896864102977607266305862498143390186354419964643080526698331713799425194778934137596728050525533338950318515911741891378210489150923356766295214957967995401230829550174585913489523819160008973503925060130352017977458700410856921804797794914271658937423759348084959198420603190899837803956319340026222759430101547543423939714409777567820173253383002527005185930708716081764352720672239543908622872770138122474212266538796784389820125380392968005381177646605898582652320649628207260984877658018706537067952110753700527280393246588488185970334217739219102506296286999596751834075256292411915820729750849602529065344357420462521591804708391649079012738842639666986755212646873985527189838765323671736180171247627895791519446766271970146748308860850603767067397292453752002742709202979536135726224084691427022266167654324232058928860996320924751808087024788865075938394056768638830875378842012050542386824134859735053993526528666123415366469934430991438313334619498545098980575000689984821089711038333378125677091046443607977729164978852114834611770289526846107984842927658449851602980282195748086909633554515755764414644055126583176850881637524014932391871086051280917476797938391042178650281771595638684212047217895696976778409039402597166554773297982577751259668405498471965859325776408059835255940230417917373989006907289857815237890244511226536547052466891905248858312987432412960996385930303224773714017916553410934040815948339297169535750985586579947366680326445923749543751840521684957365516216286850106956012221575992419352099619981302244767551036099308043080402195908891417090226681840072399906176506529690090595970891218201523042751326428838935907346333395522411178392677176687894261948761744092018733311193271762155913012993941305067885337085125856693455293776762873006151749912196808982926234142251254212300064328374627169723719822808003837766552204977928426974748504385054753979133200856250245229426642491771303180418981329016843507627700151707479500889061198748021563731283478022433729234053675722648022597567762215210922981575260569799364240886204654756305024322328680700306428856242012985778162606070693969026916844081737747748166412758971197720944082849686579681550576244080387017860122914660242039949715026335969929959441821238254767318947530922451073461111053679271217764140844691538297899287625025417377883597653308074175515149533174528342116306341487239437446973985358812196595852186737298624321318946793767788912096777135776332458607053541981168516940331657083872621939944507478151889934411831429913585380650270466966022036004566326784222793552396109982237397450381274024463162757901167117200623984252896236742937861742112964577947216041100125106933339820400774900979437905402438201828167816334631125491951532333560838848428002687102814422909310319733415295981728031313160026350585393273752460402077051034943637986882600993094075332708673761887938983057091925489055110144703104130706405910119793541080708216889320725638469223448654962942376317222804676576284037136195809800546877809927607210170974256482762137595901369943805747266728754783366608564651489494483469654648152204753386930078018803344216566745775898609654070206335201767255235243022975224390198027279712102107650818850595514371599083195443333045638116530991764978655534842981976651746221729268706627103860452825029119803613817932183715269154727069708124630688997801505399046285966758948940414345802356299695333333653597537867488230191646156819174084624394303508213508935058916401419854305398327670356233934848430869074252031859074946552822595993822917873498232599619429605351966739077305432770331731688580946121851514286175016495398292385190611521978917470620213922709732783353182839894315764425650956226336031492185559907091862021113953017881158985637104921641490650546941896135963141256579480633481827090303323250600519217219785999474366847525627729750812274469017548016820559948395913916961769178389823922729193604652749239068492221360610947442668908073028207485450121790381012901910139037511821855420149426539599185417201386993316442729193953069364880853953641239293632405316806546919396758013188462875595642822484903133257004110053357761454904437508085400163711274596307352255296316509772748663093020834556365899832645449871464860617123318337179532674530987691547127817696394280486989419240072757411951443045412249697183881348072702848811202638703261026796673866582802103195728270514468087917205968034358137266772458603992925035098489932523631199838359565241097787649941333347021824039680949912266950071556777749440626874927149177904219538188436213869649481988895216370078327765213794660089303796341729011158885984153270510546333638612396897478570590435590503067375461478071505783053983094502379186030614314229269370468270773707596871209108323129366874695276556169184828198998776878124137686331952734575856303092203945514795739032227507531454296230367769171409352593316103613619296722493618631450661752251517508388813754819933160705776785324350479261292019435187699102262393455878982699710052654080147840401364002211991409923539148135532398424678885784005357718170788054568159115671518154728583465407198807071365936677365111825393170674713083745790558895029118123151840781222592761386857877728057348951937096992764210380875588828129920169035808387693184576098288818325007138217978266149637548714679693949405372040867284910209917358492230369319281435897632652321406751656168184744665274997060974166581428751709256112362802417872665717631346166569019250375987230944748875453984952162399259440189521042997307490359039507055666657874400795021148713411245491368914156937552601891888391067645821106112840365666822106680305109595898343155982337469759567764808249328106036654482475776218839437341587310151426814646351693740496074350143594626549274138574318458700625691759532161759788155496265347755217459666973788005906690476409309692071207338541753823446683262066859289151914452164562221139290904774794065072005057958711092162076217204108444872908180164369973626292875510953537484939067594655377026194119641194396388075572390075088291192996063972131959290440091573763019791375042476449045732976434198155786686441869744225248106202630122592339149275139073694172535023597664822674466643619717069796078787680773953491840591158691169041784845674667310983223795051288549234449693837593668329731589695593266339346723655586281593798425477732209420872335408730911757737384422334026126687562449833730873093348735488935894905569209002513710138111918913380051355219048037280691986181148710132946165166096335961749015377839509340092974829859677297726512353424306186662430037863900165712683223901885284444997433700105004374675818245938120791983543305884633353495493827941167157903139425457304126690040767856905146175430723288341840915107371271110551933214863258405437782969215969510489070573682073076786824379155790000029182635715082831650004275902564966208003688735063475611743578396737010892453117426150759286047094106306824037704075222430598153094659632395076647938032928850851667442710760153813921375295450502042243182746103799050755449998211224582123641801799560187314356594587693955390442726082836313799770818672724007224546104636055878537279537461499157021350288626993090296596257782125815908457830026920657782306481737189121539481517001645879072881651365236451600500492591615227449433182744441368071429522019080666721244096721487245427417243119427141253590066789648723852438045617866083881894310030522864875175821159150944962171399127374402054125253156491558591240506357207647449462253038449080657932871395157450967060455302419134275085542322088947358430883308078414390496892228746487529269025146486697865742197587991634540836444484946265311636255874141465380868201509113312637033804008281896763458790034925862582272838994605926621558989850575668711557340128654316547103262491748620505368101460474662959824511659160767041498777704590318358859971725994137883346415419669540855384138218359606965797225016055298774278949504714267459737766910645550937477414697167738981951269528845893348630027722269966917041337497869047546757247514645365547533760565212521645801356345642487722653116839257724710224846745949070627024816842266014769442420693476501754037349123409142158849870786044968764103125192178424750388718244075900000928486680754534784227857948796309632221457672269295456720926364227219516522816825743416035970395567958367093265482907962276022536616818348523644381018053122317145601038062996957653460842284274865702976276471528350439498427608889541542704706496423999312346501938549748669088950532871818295762717386639889727539915865437320113322407927452064753914058290219628746591751123666947714590264697659128060949153320209614265286837421145409979657214497094093912188722327701225207189457385818057317006643083103795136072728291349913515205575980139090307767346708296267354284553313706877641288901951953492603855066724299162874937844211713507626272304657347590929974533194005623402864712642867939546436341864194667526186908845344696067133555919872354988663632900795536005244354810664932060581990917747967858588124760588960960765076833717248050962858167711904414161349588153071565605930433090266022941199317010621133048877780663337544900400579690486811221674402403799812314397560650487958790893601217000936346055942147378641213114916492110326040403644205635192035521476198790108331599291788149139792693684461652845477311637081954147957953777260471138638790408386734113551361938820160391616616847476241112137713246837765328720962967182988391351425456597203436852551351978094279836199458651732664870028967194229040968768792497491218119975512802647228269754588528558337276484966721143055882940433203673993976184339559573882741984282937580457838257021978257804141545934129409311016495122642313512678681049251493779304748685476906423172221216425687213666094558867068547380995423466178874041651505981305432340800254658318310918784781642919872415830330716600846246351534789458359667743095610754340885246805938064095397085437422409183285268194903911205765691947945890445503633754788612804182613913495186487226179193720693951695024798843945676441607981260590883988217530135237317243940383130201742839462115638584469184238723125145814322332015160625288597034148814566235062244410678891742675884219479458395275694841279276519998927382154177190059032331642515173269165626302530938976924956724804801869460564625974353604642927114841286336880336658468620790978588235829910320634775877184444775198528313727023141407833658184166833454146115344317002300758978858737279006263749152025497886930669642132514637976220890109179856269483443486805758409320664187741039569970916929224966265224160592877461920046326155587924322954637566803136398968845063606446261539820488710863835930195119853290351908104672305863247270362477100480503364573689818465560175668669883339819704310019500936186628722301047629961986485669811385602527965968779983405325890343468667134676975939140591041801276777354307906273385101349052758381070303334873852660076195114796105189398433771839186488205048126786387555083026653231554525070113534137071780438224204489392766862043988069510561250664629241880531600039090579901436171848188831066440000060567159821281395283594161601239352545113832211886625306941214558165417898885800734065781089269886902580100532446684798658073172159927296525189763883739492488017691231577582656096744489678230933414304587702138188990884413096036919205758838645350298475628838403853135712749337309474724078433227991626925659615975666437149747907708144112402617730797396205713017713990052678893333211355854540809960115270823923238553463588439925364364966156652557751361043008659788722346470952345068665266327553495702524039796322370155333634735217282957770225704672651850402471410684318786100085924939655397819615481903346904535335443190516142131276193017023794766864956250066685627506391597498068317873465602546964479400784482751204038236176836209911322494020665223778298825704793710752246638344059864605038535201041738443424452555737047665030234910980337668570540438851824016703400612864171366407781271027872147068635701264872338943771080608311194885194130117603596195425098365652866550202743857965659210728207684649607770836635444361789160506192742643546907112290006218127362916244110453628230078118680590454050409790186811328974044500224959504942067410593873269368902819345349417040570075492384290289287915054044185326932928736735957963833037589439595095500397139838745659115347277134329714629207235676759965410370968000649062061460026350687106191131412411594524089783583964924012656256147040060110937466207847866551317823980741281068384133967541761866418759857983664186768616355526938798061525172149741827980329347596902721631345932169619317908227772116364409469256808675711336171908267836624290995317608109463848889752737790000126849736544664891969146838151557132611223379226023629959776952522161935283358031953568094224601406795306600705363773411742784375992521091512051510549706908098582061343765191222784039192287770185529524639318762928207772067944372599042096799158060113894916940673638465937635161855410498230792264369424687228875498180300899385037707889479273415587529779448319020700976466785231279226539182098853354892935384420100135134371817316112833296458109134807103422298327473671554907897126291401158236541196650678822576647840827300788037141490211677203097923819019376697179368976524569547936383857139284436648684027715234069107957833153803025311537000666480737395387032283298267602701130620405010797891960734803492789269559686239499167669194155000163417421358982516524130554197179617723113353571746547560212896141684125276035905759199329551736730883371674114419948302946066608872720588490116696713942408580293467709800937190387924217461055638633827632392492782731576227456547972766218882002865850487348540856556750643151452872153112037210647770269861326189532877059236485484555888657798841498722111148465464565510989099831760867635884194345388883793801982250318907015702182889086284333911072640745378459588251598564632584690310463496568287474755666951856309643833278607876529791439599068385685541408834393968606077185161825077049774037161095011574362227968645476153945662329667081268803776220202148176579833102184982386084382673977112111900531090706889884363257921517671702634506426686910185603163664009576203812053958125580161740361121318953564558431439305762551684967303541052539812235997336808597289852707239168571279961640868312417794093777606758295376397665864302299680461271735159130518740952061184212175043152039520546763095485433122541973700854363193260209122249035479911774947663714941414952815313624004261915837904061672141378004285667089880325902041546869605905657296610758632235306688432661671797776899298057258416462624013502314092439817460643077802400390054461985734462402015029647908650253093444041352992575265896703665128128785065461820882454793197547583147889016706428259654369763240025045993608741292196609550788224675108195997699711827072306881341315947337185895936958308783095990429922204793792463405241779463049222303258885094310418671796907781931269147353475125965873330405411236321318370645046814844532953267094420411910960625756699294781873120531305020045228980323993288377307416392939523083774406207587617665067073089511586453164989346568007177881557969740221981062921335917772132235438153757078890739223016689836314259853808437313515685062398959442675856963014963111096881462491116694117926544653129139442103538188747382157446475674552556775830531396661323969294613977533161865447134384333472015764495353090087198745479958528487996131177599672932773464516958870643852611250919710473994069300606905496011933294519525095593267833492089287373010861732931722907047426683162438438025754830663031473911040317302554927663952642317001536523886273580884585223283287048338686510495525135529209222521117355347117992443357549466648227307085365437778207154383599460756711776378011734793992964712858879432613911776045037904696586420105648300480041164310470510746319789047923316321018392405238382311269013562979807062334443180671978718465303053065590067541887282577836849970401766816735296803297145201150767468144414102509820014530748264944500253739065365084076686291166292912770166164719244878165475046613628345721964086890281007337490850994179557716713068107140814603433031421372670680077574205440322161250290812147951080489070394848052465775572036312078093594657796782914612762429511712728454415287985119702303087349739137467730868585683707932581544985690746027524116787194729261938296579742196526335850370808832719277841357182086189852472886959599011659429872808364346789698479790354981933185207634129967422611542452781527142257691870255661608835869011356758678545342767966529450561437388075785753924266364576925674688474597544405879137511686113804496477768133305707488217526926061326210021537900922338270877140849986295039414519691355910344107248349664866940052119610320495281331868832551405582618624390379518128421123836189620153235329276497960122348106950783062776692837129950209304626897474006741000212318522376984748078053881097890787063502662790310113973898620517576709239001410806139247624732600669995997063187159718315683676590674988587396013487194098951867707437822576414525920855282837301921917323159217262756010938578633795353637638656086967305927060720816654871568929323190067336943572510199095170154399490098066412333693269557651430250796259605925335571361754615129700674293609422631344379459891342435410736670466577501836248398892205870370627573333088268078393508070211418796113626373448551994652644854961613922606518209689360616344425177767687194036747738119619602184791422226025095290217034537059990428512893780652471726415887226622018756981186090280759140353779153222115830462155493025249660378097815974798995999046013807453143197328039776747536028377028781212773401161955492409458143845348304768733726958229375253021136559117186052953763893919343621622916201119566398298507539868433450277940545252341463340397025716439952634293329747100286665390012694292790878000626132159092678382889214289955479602276302653655648966112472712318250425833746309162325401463556658388522428950985200349909854293882109796643894978170480932366911933558495234860140206517205745891048059218216462621163599042318426895657975158664835003249891317152826574463246475624787806359769078427695029125711506098774481444090678597921323554938045965034395862747234366559023321369245983939356178618500513138504020108552570707613745401648260818588073707152448946868974652815508790194199673129680217428690310431621246806964438178445825383580472822975981162755730627717905335574150438584529122295604154670336545009742281975794907522670661411814716032422739014366928789043147246571737680567689963698887190645536099744083308024281400423713330365508990377056931841362329358057901701525381190433165631468262697199548006749601646602820420690872287222100556048878339558737156184768064568744198063213559366418990039728242932851949138943618942667515926872419297308019663688316133671942251969065572702791922516864719424186167460090809000376102217909240509341435013193153250780931271013551224227200131958273733080393926175443867169623945314199725918406363983340794101919479369317665541363306392129374568861255329259579393271383106841623864140289994784220810551419670917453544823249332903601271399878833537801428890629845306450947546426907849795411545919858160790151596624858676483043403524059866176238640595411097835961098863378371427196663431293820586293884418512926104034061275945006904224078593147506943275639640993462584414462579736665075006170017068359557276077754473430878077565975689144404685600743220725360104113836163142349171472983405472690757032330006207224464833043056937292062180046952105603315270272227934073251505289803473741458620975312894318499783564652267615693237229534293618603603283077748895821650692587267840849535579735594417378809433676165039277595043500819279927141693693085508738115199239956660961943773653696045360593786128421831940340704039147717210949064154181873857737219168212107047197705629029036737618286498600655672124531981530234025914842068927426489307675412431949082037863667150242829556918131251151622554934006129411019910833596508626421503097887318354770003036467558830761952977052827413769931955037438702089461440377334941203267321727438352838842768113130371697240008458248396592385633144126811259680509373820274386838795244208952949556571305149617151492194478207945596073721257320986903720852502133844220112506860408564011006764671118653312804378353493614357753474205764298798070393404344520255050204917131199423918798751489199683553368700886664185884782311283174477058357387526535249187539275098487898892523004773744104417854033397732670154126903845506075748251882684913656271400758759837033254319738693139541265759044306065179909628328813732478441132657202075089826969250056460447348241803595174057755945418374499978795139741158588802167341374747132916810677692640705746779354900092564985684333712044841576993934658769326043433917246850864959227355804115934403166380534126212545758460327579381931656095282170797578311756108034552919130452239981061632053978977232596493475022224906343336320315369403332586987721712495862316181199544295000606707115463449314395068720756702340644347509221975064268234761387906404391002983135404423308037732285950263092723409106558556715747208058163160606076741203288511304761936979735205794712068727945640686312529850914941885705988556444970998282196162186058356001237362672229461408217603974285047479872515419313805825624587523038558880320810079960863495481879397638136823676597067774781845731511080669153625055716960726928555417340889845396639896713026948624040639923838445935526009535290274906528776758186645738537155872819488869180108374518312055791194462555967778891795407309417554028649069367841601081562875598296272620327044717905546469259919293610242170964139675059037748588000657389648454774398510297244114618740190276753844304648174330819156304893380109010296914358860367409090067197526463394515870899797854647733835931263804657325992098826029869721157228655573217326614114410981038411251116748919004955542319571479008018497305756131786200131111125995295423031789329320239662377820705327401304718040168445661074448216205504310829633626533527122388742496505303197722455256213250727827247048853203840514204645945117556894936769952206919445023554733839731549680219407889876133193663600281546576705718284707242891828946175893861022658811198614596501857287228880579553595366240433994240659583550202023184576549204614119047740447167330058059297716083776608009218654838383525424279494810719850617540489830685188316293682771655423748498651026750130895157177195221532631558107161293777216236055588293910058422311933998491429233883474598115191022326706131438653289921539580899277359928775701986904083942706112373966731198105184651686616494095914179634912730968869686587104985829140293875120618690801716002857848550562989965989920323628169129526770448335920418964477059953576538278905171768856939229609037143252204876663380093146740494339559880016943654670604802232922768364565153826578182837446640522359826235157330489173789989746611879802163542589126197707957993054092008587266253747533548936319222758056264186445208450564149363011426435077797008429071164835701855280542013479765199729204597707522042715598587458149987410578979328456982762205767645983257575978013320958781733009025665734395062786493222102513299573404565925241189168186364071770390252892891119793585502906553692714294406652441177533868987494071759735512283615664963525698368536006344368589929887755984282539992437236304922717494560531147073912116573067876545393284843363762740627977704626746974459543639204041538594843253847247276009103964739956437124378340467150692513293555216596607216498955639585880454235276030151759759308928338806998854400408791720997226809921250933319483263089248844099386115506962685522625573693953479849888224915108855768841129437787418270972794417903964644150744611548095072172989870556651050363208355458304516323914860390970810402228680930173652535703685491409517174904892938063265983412751788498955701793314927003720485706719380396774387341835744517840746796945283305989648238304538538592655402584477075409875953206448309088214327023436097853310168325248503510501749640356961280949944230409316899080935643396271273931173674571948828405713355647000085581895695322183043349172013802489110613464000759932255499254789776792027452257606297283916965808775597131187255556358341158425202669044197713657407999884021068597933202842474452581919140574038866176642718791457627252750999122945841816293144786017947527082871574500860023027001084060056896150689652931224607284027279527319317925265797529941613298351867676362400995703950974282691917054760818552780467056443850796072712165545234053586131816720726508777550237371718215622958965277551323223841973882560747789830626984747187444398183014531729119518562715732837500473141900077278559461909395701267793003421578364647286969088644360497415816617987678074390378872761053515252865464574032023153978567063142037695240161837614492687816359542563311948061833920253337622268502959515634625546456562330235877474565772222666283752624581111893402909854663133382067773430380330288344733284601973372957285863565673652971946382340832520654223615700669696755425115986160463934995632480561891736142921033865779099549111531079826295718151052836323752825895082152393237350269095050005098367118079745497522005927485469881252886754318123820987003778505478039946940052042631015533506913313565072529759382233522916245717331936626206934641546158326171297711699497548873325482762718635715611679754226513611642774654599936857815357050739861965165222279823057559085034579264017335752199986020598696894792922367421287898397685416884714234825292447794545909780273201019575629034580678250251319072077953864384519341306774747905089673493770797821074264503197613891168160267490630960979246596329668053955790516659635695124208565297316919330356009129205248739056887235307971173468208582744185599170825970121106792738944666023544271539147141960615076784385659515444614209005053200748923797634768160379206793182494197683485023106775291678465498177523703260122204100998997149796501951947653103292172121407734680838792556233753585549668147576105712732070984915868596467612295170725691280499436711755189615209571275817708418950329734317950265408071141538934255168777210045420162528364820841981072575330291200107621827838961041710753199557480349393103162978828363623992611038637717464665453920326442877477318293137273465755094144141334758581149268045490067316628313497358805571409701285376913159417321389601147645074542366495972863877796221617620255329527076812829564388742299678075782246296741357351946282016679573112442556991366436839992207247758235372692333298176796716784763721728310320052746004005872485677798765390833596833684568458636819648024153927093890003765617596545200294765719741762825710488382082173458927933537127650016627706269492130628844250166471854706880936033080315292738833272604202553971295002356251134165987004727210526160003043961595700018863087704709559473988635117575263046410246553368647280817510142942337801184661763963055013613772197024787924785904118318802640200569322139729594883634841565315007337819088426945768118774994326918054014707607869510164094710299504096089966555225566633346356208070336703356902715405080375344819175460394993058333506046008830859645807382025769914869597752483604303245375080132131132834557885594477415514151207979309936438289378913390058714658451292677836335427853644462654192351407234412987737040688200158260668453898495075305762021315692452686400568512699211030939632189978096549097812889160160375271315087851081284748511432082585240249216251244439789239703603459679068166693907651202336792850845521089176286155123871711096473011459251518641866351988881453751609127459281950819779176963383165345900287321243585356783520805016467705955437939908947614873131800149128777393469169703585447354175547048180698161992532737512120571715994706660709058493641284947619001116274288138350319035565031401501335036568343974273245722843878804809316238047635008084104464129880919155994436948559568175966523756272327828211552609802026028275419763961297166720452785688244380480198886921221387223370917132141217657807953913555365725401879678968792781469813521671487369709298721680671794037411780539098757260205304817391534575122374441498803080447454929961346735687893143179215827481603523191276450258493109996765309896984112435917777233478521587931268872258132715910775494377512348248429034584091414768452598594131241057581524506393621552206878430600896651035496903141878065687622324530520188409339803282296182870433285090083813341902725895154101206239138192930928782620113433623503515067911239362605712742091255282372878383548765300247408104512286975572051795272713544624555570614116968849003718460910622156752191169072116714149069126536944353743442611221537739539908337499656737214727596623777710993290323033909616573959891086975466725997781216636660401080511298036915072152737322282352551935593877590664653743043843034838164767164021821556592354829339330801838180897166281323894672302181809333022664455574466567116107706814682362457747664725895721440598578816907304968943297876539521336044446530098512789799047984954375649919946466245079426720435413984611448553840451676785494955111930701602230284685123711990866659219203949627977081329750300358820617949611250151567746594378387875099771703750300091675817480882318933599916427658105406601546837994975080375572855545484100392589210061509594458426836286478307154126187885692524482505888444414621606282579976345695884821655028314021721470566329336844530201197373119625137555477312566601659780426322766363953961457452637381482944984285135811858406136576387667647323838938848199943341265405796125732619180208697647164283601094825741456775599856861542924650570107371516363690833004807863945514587180144130673287367426757396785588553368453291183258124599289641371264591081628382565535502030683855762368334802388657384011523769106807048973008892870488426277370895227775803951118079567580425797402618273592206599091909429612731587019991487020502682747966858104480212104242576929665239400899940667807724460811909270806695475840075837577300118637081569003598157740209036201857759967666825212392060083956269913575059926802123830694099841129388139236053026235978299386141049569162352920756422958174609559283710394039831623415359686120364077373772910203326776175900897569052840237486979703466670618006359777358783616407884638103999265915333190930497693073954275748841343625820070917856296264426841777568371109160455139256669259412796465409077183225955545346596263171046649970675937067715992675594745007608582415727005444554824041683326451032505800794061331207491662322836750832255247152070122890112702761394404534853312451246969977692845003059462144290394798561006380471200647400597678429479643774414867142930813322999281616651765711053434692665788781960420074785813327133336435918203540888544654340465389423836088998717031549818434694957021944119519185227349454267020095640513542592853550936840259401515649530132270795199971750468891347416006981072866100155237203850100641217047362789943921913201052801940981359653833367487922819627359908066357212816584073566069226135810488687923530478927790563210041300014110199044047861611196344522990387165249674396959833006330412454617075560214723721738608847729833971554630358855635483601681113212363793374196157776847671673757296039375767295882160513996421363438544750442361285259158471143875620149522949687976497663632576825904292564972400367779573785571683983939481187174626002703139621368989815953133863383540550481020569012165857169055843340263765611988797217834894630807328314053351042473571817576570471647409742477457829461347556634517570821886707205895457323236568300186472459237012345281646699316436852325208250410251607124316933188913471249259814679252685513134440069837521078870654582026326056445512129081934547900052499097087132906072658858750871569596999122241569787600158489698750579885586948207871960613789036340905665721756997360708791325763661625802843449411978378916499800865427650982405986269391399838157433287482087299072239159314581796179405239783327842953914189456629018083457383154113110653110819445909991806785851863152438538530270774413118960330658810289938151317935696980008136066814355811304292610808554182233410006772576230342938818740180081857022697561598863685050120563101179478825602800370187532561728695476354697346003386302872327693079773194922545265919977136026453676764818720210584670517229541072246685404976407261792589005554028298288627967606425223749813151188884010593523329122028773461901849126406738557497976399477227466953001069233747401037508713250585632566573496857328781743861161018509451801265787987339586791884478376237978753259936552104000226761449274231973925630156134765011954601951321083656062981553304978521689998320832688207770796625212289458454583786449815980213071382063882698611970746013605827119792824250959829643763419092043415688744869155552823690857597580776460896650329994331292484530293737316365051595087595253101352879173323146140538282960637706974806604692496737911034210613197856124464467919570381502271420718746266224570367789515222033475504264507373662961559096350428987575354103928290443560835298963238179268510843043148475011564295029122439633164306396928839345442083134338949931935600588844585171586656061656822383776774674701286760047960980202651760833416620675417462172661118436759205220476698899694440210152589928372361747603272401824566498584908702970724476236946174711228551154602515045213810358656408718849503700977395847242809829011764025514329615578099556237462116154067262470646619780940068852387963995683348811666905245830816017515846168165470445197501872468530132811890780402243124753460297723392199419191475823884469659603883522761603988577338805407771737757020566288045709137749398921502991369307554018404615758874703251647399457882584036751285503193657313780367114893733889261723152871436462108351520175083684397288028881605079186534260101338032226849510274057742943761604634845016926604355573233489530421687333335841901075625119078048142254637392460113314773254766715868616636861048223348127841483521252984019877638778950503596042640147339223815238663285376189825067096656818916439921886479868469229289502579343276312575339472057440485310680230577666168065257225582328872319087717150748425404455509049599898946780493998289342687577553774376195149748380787311324977512995168847369867935779387842489168063896357725808745414734406726636836460655845743480176869423392539889720868032385786616215660405300526766656267406148091461211917453662454899890440248991874796730467639347533514957818559212674743232782573908932412954534468337743339422926279805825366994374836461290687164000626535433376410118571642651939514781392131490344206766297330348946308714459925245548416961657332517097112697900245143075480803487725158209367928909793472938520692108626748589286779386883523057280980703840546207472444674525424114848789039485433937430431832132891035659425925091141025753460024080011805276648833196304272588405077278089514125973487139457558702381400269446029712703874136840652216603717344557016570823164224592853407024311507737702590529336104921837805100784294311573193947842138662028047311049795291327374111158111698566399731618109955885465350557078910627123130021856640690150165966582858994018410502062249804170641270812418658009636138901810665849291225681042155843986951040452961702819550949764145861224660714015642544606659084444427853229725160883265254969518547167716124505972507334083379923833761329892600957190601186239287611737543002231043463238488742177828948630558657621797640998444354188860836753460089958928219161577642681757675709408507001057843985812445360398693198693567234511905711058819885337107006197513527779966352184807819733342505626738905959614393126044885495633989979285832031987802654719219612035576503191419587813512444895710895063410335491367239235833832641094824333714516935960468076615081591256300741209891252432128256006998028963421630064286700253885538632944039500221159850168509987088390470728064925985916551581922155736487568056847062972545165547632198425143822752964844193045046672935777097103583534282418714514318198133196301379909873656306401377043145685061691191908195807894584685145090693872239151027050087197848833659015893491355287076781904494384344261646028240506108158043574470162114234348373970321298037455881892500549701821292267191350184023326728005746144902173210084930746334616600420960486654331361866870902596923703123108431788894207797029489717184417460197280286918680137888692025569033659470961460792982201999673656571160529241475599839900084958276746340639947807044461487513864707177475469297014530265081694213217700124844607984961221808359131928176471877080833000720825996941988401375198454825057628661678603693366477984405716493330406110100251923278705956928181700571865776435332579053593715201223391172865190592776807157204632710758188238486554121893728426648383983896854853225872690196375114473832865301820853356084975120554657252751988782908959271858410336876188418263776604178658334156262354994596688150733268616870326783685664597880510075515787259547464619159753875911978445620148567000230556562721457889360475435661641985051412404144670927755146722476372083350010012879217776945545265290416299256726312787136579679637854766728575338226091156729412437176193205941757804516326064064122593356683532324181578898436624137165249902848752738173650224257325287581469906598487877002149119134695757130370064554672391662333379249590155234287304938855604757799780148496554211300984527819482642048323893462123185599244155518704227263766198512926352168728967300681325649135915485494474457488285362965946487355427694332373708945185211063240563373806261230682760541316509852307124702306456466463976174469824460576442465585264047315469301128636517187464782656047556060286099522434852431007400271533046529833656332877209474631669929009864305259852657181633612516160482698791140877144896748742092633982546734406494151133013722056635067501600890106330533531079524176851249871350738814198807546091504466327116347486216598806419836146683520801554322428184542556305448208144185018505151182811405886454501930335601859758409748453013013619974093994047362039778365448155895845390543177651756960365631783390676192977695464293291440007480166286072442700405115834510993611994590411577187673983886356259679954922176983667417035297748610684163428896076501903844792871772339452566844029213325974476126926038068829126786827691841100912777257877368694840434099144498078806327276742432358752070773922276127770913387365907886068680700730291651387280690088970639806064215949467813731505177898613221948044053528318450567818866675581561086087207696920338944982151826507043265601123045752252019369144708230787288950987746717229989484150466211161288269495505828890807799956468182724989868529170564311498589254456435219571192252837084400039417746126713099889404858218998336148063141608261898923609394215061162890070372079851918302402825278729348000772377431145114131553661446987918659121546354769623193170497178898079475573131457311455615604234529340393883052335216418177243601539739038376721115437389186106681654110530632155449961283862949886478815544491843879026923987046988244560775224973766397161306898205414268305957542485815856629256745992306017911812685197278518013508698404261588114520291783441624831273439842955941404859720871027191394885786779827930395025682934965419448741543126250647572567553954446223992409301964136953608040891234794920708826121723861109348857509541997762751788326325580528612917624870692194003170376932457534260152122246865734240032350185875136564704310706869280902700481172473875088665477547344924920608315145999610069212629496822140824251084856074120550516421689512612671220029287048655971614565140973704896429426639000919048817292096335018741097192755280613250910999417552680582589124745548016741375020197312351029412044322841324313737085903039322483770747629498164583445690654815437193188962783824042854796676226487427164804758982419112646456820296343986301190985478717054657060393673817801109345801829573245321730647880299642392458755431372087734618209457162901538914037453150879905118815592886300126020675924251028142145935815015032181356513353817303668506397338798834755566101967239439892214743407383249600502584418198413736485210960181637726815161487256546871167522125595819336957687748319661210508299478962939978414711383395524354319438620405220600194052029055865854680389400687501874621082203399389472108532227172087046066824103216664120479831525371881468362814824138432819400000426171744048362143961482729279804984806382382684985424768256734263039165463648885457225924194390514258822850535503789564065571418059856950859922977911707931763466822528513516097297315930650162471417469167955505944009451750613592091461582781769586972778170569918091582324681373852966453347111771503184741327028287901373741066353185430211430075296150200964563504274650882003266674035351620960896758179702706243985872351542957059712522259353021884847947804996258159600946238618306325733261887979554846150442902229390122270727695783472866471591430817074575693640716567608389431644053251199757907251981887735852169756594092370651714864489788225584009152992300469383189417424237049489278743624572577735908179789231411067214566742129150501315825729359201485598806299869083211670338163153442057695869958765961352690950803676011584594799751685805864048426450351314184901527285320123473130507765567601383000719138300313509904741488994863515734943318305508662552239780116139428518555999735394677161024438066166392742359484379609173190923876726531728117817399875908508430354462467913964937033848330857148960170509876890405779033991400997480926660902184818721955954670906844977695439773736698593027263677249161990846610931616868921659989796080182392818190335008192348379191536863441851656736132767095157493383324647003396491483319548297203650989000075683467890864302513246163601395862167035573467281737121552222912311571338502315756728094664017856366413157409884638647177017071607520230133306730697658262361934141409691257736515542653007643350252717093543423348433383154504480581825697829305321163354499609938783476448658178531462043108632192737854590788521713151892186285993526081855799228508491733074652946199521210946184827495721928687041803375427160784925453828044330096641905848119395637472550340538608214419925436594795799254826146081222194737568284979821983092103026267066595924560602673221118528407324386752049832295487413158815915696585026548522701038569010063470701807064049773299621017466496276466087418418346285791477656087609073538784421034604767473355336456523505825070717178815740080567674787438246915602226613004018660793481180643663274980375585215907994164235395068705512668761778220773000429349953215475002550603276694489670801688477593325871139683740758747446339456435736396722845014067949428813460412034314966496323647951250527230674479563725363772517311937175668968157007671213617074425629012883208096483526277513175212073345161996282356784391433164953092195416870583182030648168647089199011600609278114549400536764474532673459802363584440900529951774037987098161819879790353212946224812730675134612210831878620562450507695689074832301640602192076720759503346847377381893937098815768435588922836861159919143429963376507980741024367662600120552545394664492007577762123356476082121402163919566586523059783964088896016203330691481575056014003940137794893211553739821327807709482040940463452834207508564577646068223368988316157338912815622964846600903675992496208052505386495085672956216442297518902146247107175825295828091776955742341178815032807672872959736518153753038355286400172618615049397698346433862337262346169750071378048675158829200336851191704571720662391491565809334685585903356228835806802949886500557392497638797522068980481041987947010772291630036665546871677057760636203239146531406029626990599764754790324998146176306334987511954854852377350127403349591119684916100166697982277230377382667745715799351165667028739614989779193119072590184112530937680961011637647104234445099216542768245617054801210338056052595856979410868792602242127375105973735542142444238429380682382487809960352548807409910617911873647320682055107227340851628160849379931626281783419644383384932172397699340196578232270559319254883583746135826524066443347214008929763525112704695014315201501842112737994495073249774639604300617286878480962292349630834244844742413870340370246423804943760489638821891456960848518661562155428340101707308669442628634981937575962195274589161157415234619740192831262541639548865047464722317701064640239081432157309402911261952019808649853411000344739149881081694971166349332733545756711374543301318023065825371768066876859414424192838870041360086567400700225883582404485244145377254883251736058702430988823894342963856281733371586065570124403021254786503092904889470869602028117487869128326129795910526179383426877702717116596633434257776923649044586438665596517875363641893090463021762560895094299805373870964085611651296434169306381056765350419150228679239430127486173023392662672058587189072828722575148794490344362093718827961914487986296392466499316036747948404204709705563236265404509906581343720776810881928500290774890170977131180113582852796760515282934130548107600648131889918575347912227708308839719896207659839424492356725571269676593648659183771804932032643851303496269911156299043357922597793938476567341001970868976902849033163739776441084863268808579786338291393798021929853266178815669102848759861538709566331913164300357066357873352551011682021508779418263284245958174643392491725263514045529385849589599052966730683887627406412607840293448885505849842503333381804288761489886347560135641949269321148182070378323506784396117706181377826157473479490138342442719587726207870226897459095150758861343555062264021785622014188917185712917791023263602256994338822002780562556996914416891413475744964450953150105321354837282681308098439797292296967128429241357419783919753832149983609683716721876797181916105039119991941069584773654845962557379028780589849265430358859752252640881747257986037508756323862017002068256189839369793695549681467300221911691859179457455357498116958014768098928110029271388503294235871146041138950243672379478929050297823588793526910017671941080854097545499569492394712310015126759078130513035026488555303605523951344388758632094383365366893599343794626225647469231893375277947737022206979883624369534912780210809129083240699740190290794459540484026261358805438229466563775484505341142317443859458004503573060912193728023199558235563182295762944983794991037494591030598430708590941645991781412063774097155831321944922028641431691179537963752459157068354175039941407084448106827852973360637064060608178107668411084042929372971219711557393434667244943918083723643928438460113627428152935999028587563516853501371676973182220844012959062489669180563932643584934110152309969298382868322578851927334557982309642063964268767891327770705359811163391342698836008255315905840035244401039801155710018307036038136650283225316280429779133737716680511232727356063227376881609340746251102366663809064819771732447101003322636907152195005756602417260491255681169641293347859463434606029897985385246192252232240888456463996373101496895684857485191557571222149965869635877480761466482143702242268674815609673888299117799818274466590353929591619768198297941676416818659576974655757976660917737301963248283476265450206812689974187948713445713015907239959462197365454039660881275214887001038816365266670576512190776652467038674173216398702149425992246160399836739144365015985343710870872530747614138283974862989098085915286483608756979585945199090277003416805103409714106483781447727211406105974675194053216675888579624676369512737593396402838902508654675072283287296529774608945366711595681979462377666925278192408890654328916995256652354224898609829602095645952312192421285518770903383651289213948350930144177701373102538230508466717876914111796694635832361942403074890468466380422030079744984978129200510394453718264514456382416292573291137460293231869754381848094393438713368037717940322006009105298322069826190111875625513174193412604555128983466238030302510098273998783774496459648001206242867288826582754896845212355193145810991862021304879260147122267208863392892995521794862617630942538601424668375886557908342841737855246502001549713253451097185900454385357477638634440179700734460857593455936029454019702930334271681562552004935141740191192090672079961827674793161145156573811327944141828560100413270474404410892292849804048115108791768657251123282775822384334618142427977156591708391078439993568548477868231751042255466757328090372353090310980649333498991225466978177120800423909995244223541228990883956694011602579407114947416030046042406180276062155407590644103233062407438040205114350830631560485817906365026228319854722236495753751837092216547179611612378472071716863100418684974111039298013471529116748234755624320270429924649564606457847193241585055483972801873959242218476810938379580691573398563125684661074590289857986178043508174821731285796614753268857701236451621683593122739361790363404839580392427201429099356632739505921462378614798015574136580077021070373849144960849125032122256238133580124518605340261248308576006193338749477358889479131214706812161692547841791927819216919309412861549144820914053297743385231763196306326011327631251705589005475291451301270383620581145348950979941045575879022566047547599447329650312230241351582286328208234763009154416760865877836139981675094112109305448485713456699849270631145437190879522646415486875329196088536086436167788107000859377583864487287228399385214619628746848655937733022631269729784756709386074488984806951761826395386398574661192232142308870537809316236757684921974705758431883838964516637265601901868595031622983077381160199572782541027968821005195697464108826654370405564221146832491738944898297810017116362570633557320812774069193780056812006550199277879169379829237394884435315757172114765124280557023933487582545325369130301480107901592304844285515851143105047394548644237365024942668158882253433503451642530765606998511785712159199326059676430504049610893802498938986355822715238075295768265008899626621920824560215384830518944038609536995690703449298253920317539691830180323945565863692062830437617589952567477680793446682956454903591047633046962232034400785848675186750117873174433323962880336804806065887417322141753589265485319617643185165032409713072192918090184384577048775197522497454305820389420027869565887318847036922646451048040273806880762362395739979521836122955897863430745232292482397053059815276222959397815217222619615571379550883510122742956771127665569485336297168435686385771288500611996243675654851424726638346582920297211420445893889499156717467472785749859977613564856947240016315336066018515711939459252184264913059362529043607487849889576284580084051397639666749057987271185606595463638386750137479494674962144242738962511923533551583209479462386638900319601097823740629772620098075933287567619245655546525658865264895339311737510453317927888331616749999386292701041216959428902715458669573114622422024383040720293601890729883819379080742368955945949953416311003730573395728553384283356778932830594457027793985259242729286911211780702401147940842428063866207125731518227863345638160323142769095122348029587342971377949792312530207973023888706626720122838378477761387755030967629175425246392491379717464440413176491638739518565708133404128557303243920936734486986128184867334977147113761761248900941151529886702241446054472476315486103137132080421633814468499989361811394694194070806546617882636981134189339653827703126613153287635635615595245168385660670852388576468515797690679041388816868638488797141234143655403732991408343162424081339806228772706992199300698227966283443052765498586244767895379517070742645706910490618512996935007056657029930002879656815678720313992002743873777625156214280873368136904619006305262206912534997792688382428018452157365490914499862630091892818960644280460482539497958479665357788509153823319171446516945303804361375524003070205202049154069705504227753339587163122330875929449671193404253690924387895522973491217695499582064210550929178732393831252833153635760175330599607456033617474411081999053650528673349047658786518797461732191619238779341774941050584412225769084065267228813684835683131588775981714349512332697284759407993342437248183821233298753133068962092922388653623894879784819498121664011289821348898731614924765669827851179212914185918624167930951625166109116063201301847097358507156518299011632712700790475884574527588670830073153705126936639939769830926208994549516105740797031582345921387004457266339260909301273402718339222336775954712820576249206600055944015389505558486068720850361413622060924085842917846709206801246304276989625108458357975030169098024629299116511940437257556334292784511505344775150776122103258848063559633617248657594205405115379596208245437194001373762312873922890777814458584785851251338447199726843485334898000777729515411628211320211929827128153683738248266758200660189591636561998675895585961380575561990651349766535676287765312424378065323874142834609704366582014939893253542641912715257709076615086886121981754600255381725960767641337283821986860896554605948898514694333116612034830434788664371755358505474524333917879171388575755112006995041406954739295220842472132261717097177484949681607069729049874762055156266222030169374584050849689323939941499789006660681478593805664293404909711385062653868612559229811500585004565717932621085491871232129918080095860948353581182282111593012235084681343770115022186354002951932386860027808625742809581635957311833751971195151293825863895186343917821823195166056402510574487047041188025220153757676588141694225844396854619435558820293081494293756424202892510370316454871204318040477451243948942666243454421486835369964448149968098518586962832262788463638932233626845168418755248516975164111248679029076290156439136986181899309466925191148216326816416904034392213166026819700915030073284683685181066385060217635209446839538802324055556688689103481895010397934797588797204080496367932773738132359343365660238723714454029016148677458891044259546095383157334182075462891607391020424969512414210089984407488834548060072574573295177907836648506184942453445541574242851930687538459947718126809752706285476197625339114615551074885243790792709216418974888733068538160310385940117281961515438164532676227489221531237237759910376854376413880927261731311438049518369694383612439082725189205332327069145496291467415046313714085329069629207327001408919768598040049527370362802583922011085504506797067361886840656426751906213597216638109424419480198942138186965944115020488135303942243139902650374503051807703137849483264304298729490205727137510825947073776326918790572944541042204725572644362644995496264043150840452424811196832418473757727378531969436119623416702083159967473347296271494423602441614252606332465376497445227766027988665532945438271463410937427069173090222034702873471520067461676286312995530376503519680618397783085676036513554374761563535156728151955430647168702757363526409271412076809583004382169272372503797393115827392623837231409257903810734556521813636631399293380747536271091815857422281226330277106693336981469769435079177928601089546831851840451690886207089740822543411747416375687067981166017198762037213773915867839779378051658867047745686986495935579830826867027561094904616253523547167462003474924146829257446170201507266466744232637002853064503187545520286668574305406368885856218564575098257923943215954425841538771373949957486995727987249680606690590031575008364407701057656816208601498229677132503924819178778836920486859202811008469260451548445014368818317387483008785002286960579496649631045312972582205482035394023797305194683284367134298390515355721721822906331436076574002213353653894666595152390546586171315171006003415404229872938262107811964763877292276607559585747881880153460759205277796195846946165618493630038154498567529428710960157847838875751472161498699287532627615326714119412004968322628353133148847386774555133042483237692176009352837332434475254959167468929411710667266122423787459706281714398209097411119633272055481716755077390983130042264766022199415679863631739245116077745864494019439241703867715974125047723048823870061020591184329559037092292319482163244194566588049735634405498776775226980112101104778568688322951534198077363487295341007601107007822581221402115752672186513469996067880269508079619708118793308986946115301354038240322037543456450272575208829604849591639289058366887444558170150117186983571923516997893697387930127030531417043470641241403162678820587890267461443934640752151826904951552232880202776993632390204852176560979202447538366758437258830305181163177636707498431529167994750816351167656098361587924418369738089252250348431955587171918981791078111995674105676886289695599982084015747830050115026562148714075260771836030863839209502322786119563207511728584114289330998370113974314117094053407425905204057753814470170247440084060816748554229611461136594517927983932025668555080041171808956784750620135345905880641726411930559261392752482322552999487982408554639284134074557682887144692703997060353149352033293030611473679510366328475884700323649504501369813332406476623561223848008241525991416191326764465727417859101568673088009911455136271254753899668064895911081553201275783465405596121292164965927730802553308966658614321485205625733273620447817465467599914964780957310402790114594111286584334939988414324471843898271992196588318101398746131235741863189824015542231640296288421041812504982392299980860298073624902675512974816694251880451296293203784931040701249336752076349606398776462054943410121352451118390146507690718403136901903448761780849435527227674580398156155054101207406314620329383797234937082639359195673606280490645328654951771844437388527610426626174113313374928490114146940037982486092417383002756911607332740753973539234692302916523603893144268317608926816625120835133329903073038531344497584135673690561699564722442717348389918881481619920281605778739498684863768219918703072905220939520090578420935048311257939301156188371238700614229206666937311207904528023665638223820530990455387525767297873772279631658538017607286861288293542278762693306215376911944311426188158084576764543664833044160655805767208120369985173044351388669101324441233030309063368081500737932885929437288284707181820525156268777499925630938326326845431949266227646531281014567736379538665154015457451261174567781300406812172381664725878771562473191823945810403329033545428432331516630391718529927040895810576296491309762516282927593198955772994140048666974716114570683592265158848873852252954353498240460229644731913955575796551998068250147303952954105636814551553254186475738808870858676174838653222671108140381174806686189990791256927949453712609441596996383191415717442959835501836111933298172007742093457565698462576238856788384555204212596363049465768395250559871380712360921596234141345948341652751263546245690594808142519994929880894230392223991264103552344486513866663871909139325335030355762691334253165544575885640397853607338043353202130719044023831131748748308838712742924877603031311117818026534663745696251353644260556236252454314557433190273441142242262224714737303858561668768127007782939501173430296811729279159766931627338851983916119785964415736145028887458186401867899135162409896769162015589775155104660350540050433135555469764340188646817220971113648861008826568993505810113788372514953401698063082259300250788387877742334880255911271729339588404910509472363999104890420194322649705515915789769456892699983354220408188809615727884151129341571171618212355161573390181202110758650513038252445451382080556686213058564126307089183635724203931144217406346049654769247526638087875460900673554694425371596352981814366596405139473318695782277699882017396092393172575422448938638482575483075389828398514206464897990137048194483128390775526760909265675915164086392565264571747545249933518001198682339387347042551556748022413011444325897000163599876462489335006159880117614998282043490299262370900498550479630596540134806515841192168536134368995069653205007761996135857639773899614735766686893240416424446052385041591979686439893904474177287611248383995241350763459599146526151769486120790409706014173582100477071536326112071490403075188422455904174800877980631505419126531784930117650746445474646013232385351479825459104117818617990926895047396242368618912480322063786488472874764743087405829225285985860958420305580389552938492021767921658403376205410130771312088883911411184766865265153625856823745395843698814847025238878633822376203454219776029632485432605117196571759308544601406922811639539715224515230914503517038545732680700776746248007356045358516728775777136952062170667939013106363556729693816201569439169757803881698062917791333490853398469011782668440411715725808645852683021541467092576348547217307450784393372422721075461124791276755260042314608108454669012467318974266682883384107463949879408267879053224219320763698608031684696572032346647696816183894589006250187039032108636172716502916824918493948379713277082162693684326591581721948496247172080599205247303693437784059372176596830442840471127170691167962001572667333230555182716141455869332556420390851396235864667455002837728129392693135175077151221056241956458438178299600761237681155445684430996731904752060538518525084067349666681014677982861920944812477815929351961675879418881676134669554746921973834950776831961341174784369720483545758020723391488429506831936109121333109623452950165257417751968514957534252221477488801383179134075219219153546733274377321599585800680774376946693876374017490388139588495071578168356593665773409282873659292689405956577359396955956432484083014141476435621563517132729690219417055019538540198630031245580293906835744483083665521868051298426799180124795348816147513050553795714622450161127719227178503375082693184202183682697135935866375248927660921702088783405095052340366963417593351431666419747583654185543770540360605014946931557976013330236125582800234686286810909447612710824347740318972508557352187353286371359003269031549322374734105416906051033177337808047522546175616877540332579713318604899281948669234856008717182945076298213951771246049523328951914654731533692723701277860511151279156897722541403325694374959742328070854181954443655409827846486986340361281166185152548789678833587958674118537629526909280796708159951574578006486631475809629528827939123842314826222886295505723624763925425773890771314101557732747971669230957985746502264659606840290634044825308057465337344622631834095302840634145953475787130422926500537476234059552653667860841362203419467679450555180801735391380724788142619753471051628749573064849993429111893857677694587142198845708334025932878384426862446261484154985837893533054398502589618383017189396822047567188102842002764895077291254338934138587101515095229978899921479168251151991730326025614294172359906647459837051846336949340202513325086471374351083590450660673049620811786540277788454240789445421976627058717545627107894900377454143877021638182409141360803856740654712247731257907670172119262200719355309271046628176651919419667015710714161100638883792470491131375794711009838850441902845086610373895343146236582000080009095169781498087137251698717253055991102194021878906598258017895701293231005845151333284760994801942939683983713841450121354119149581733377959070311841970228586786728725011194610969717158318636928848973375942338768001118453538503332566887526811071992208210043706824363929665109491624876332486220900018822728979264382173336534426030754335408357371686120201730141874901364313587093709448823875019109589886716277002216521080396630558390531592840070716149548994028625214466998380896541882666869942612680296055066982367095436478255397610543469255228734625197379174071762577657322589517818247840353115241194954181733050249959680923565620440786277428648607758322495067378293175702174665958708164753003883494909327613971765223361836754462490072320720024724808214524969324363160260879317073483828782257461430897331196256738777181234701602238753417995088449512118686131489539708571614881950170750814299688610219656017420344231790515906979623757908251678497754719542363373454622920892441655909009820806787986979996048293962564360471359357268224817287281756472821036409772440085470335401858324646847756181910139908805623494588729061872540302052816698209601239814465630731128680893051537386847951681739988013300891020554813651977488198893046978007252615379727893792789517547005549169151033756298752525708984745143179992565628986233339096557547322372263866612316008906817541850140631749169647614463616248364400364335221600102048346042619383843448897734035379508227350569385011148929094825551906824556386779048443961441683199207279179830884612803163785536287243873046469228139434661088729017306746452228610383163710054500516273373911535259032538475484967628118031306494774345899166333808612654105935980637679162464177004060733564799536023772256789827551608783985748503607239496395225191472686875339854875835076946943590322020425521184459654711752737396282231695511944039113061546850121363663437785288274458974843948689533356801869106149201268359289014146527534565827920793541237462699805238947356414339447831090138318798689101691184455698464099194023603060933346071561045126830468839672912387019367753845967286245594467183487980040275484466951507326811490146323817435555147698127238672931929252115725625508173698307380692968499057372204546729474401933166969324222783931303321297405223498182290477668325905332617797984700530938333964071676605559252666612194506905540558947311750118764635916841656912761018026058243705053771122906987549806301650019592020941244624912275087847663117417282763265710466248661541915272586836599395602071932701940238339502295354714988653367675527505852968304059390045823521859896416889259994701637034416901905909757817543414514823310525872898422817129829669145981620664982328081764947040471605647091100089674200792864262033911484356914118960573953876292218137270000427126890737838492074633504892799978625538146921315767036000035035586755210083558425261683078720290986443960837104571853022724303400406136760526109980448025721905204352901400431356047127556627445560816667659076790297096860268445397670081910072788322314014791945412879513030589349219109016051412206131856799670365392948148039427578568927408395144327180074208804289237600889155878321205414975482817117606229895620031007503666620332654647205032409679216809923367325456984875045473141426713099412206705115514776889257540905917882635299190547795934160454594810932622060372398216743903249345204287076368934373613870598569307625806290210873148835786683625142951067908946358675358646156377790029121994293772125646664201810797629813277318804252583176839924637010748389488161369870542013512243795785102670330193483748001022132266800586408657996628639081727970761700565515401080206597650370607655621242445769281173516645046753888108869816634309437328089054425219871847905675854820253076310804052724012928247779102700521613529534761216515683659221234690364540506162086735015756604878876119639008332228421592390032319844062346288794539325162165787245791173250578620795440449070290786987271179759644321240649000572679397585841394540287186008451611239625741202701850779523206210693577081381438367883465260031977420785663441580171924016391138691702037695125192366218832179200047799113493989591983889957325213707393708425999998900915371510869016382596422575850588901485709119865683774518805481206237319949994873057669900107494951106074231041457878010663018129522177764284282159566064997788059229292063551433536577249807736514066816187820403727923264706295972380574293596133833247985003332176802148075314094107209047097076482428705891573689154605489527724727414367974558312644700348120242943796390119193932960381725077864610531241999017689531569429614720151425429777942292998425230675005776694223482137857206024001989107050406336168689707854000961918199332107838731778457967082759710014189101492819677926083225031807383571119184453063081651840514313476880767435785908147970134592795272865605086385504776302221027445958726862579032048969556353059731619983080428761806223645254021240797274161900808042858563007732682733754344097844540444794124678761943763631022816172510156560412101119367898392695442249215162542336979702033333071151133595865978530825898825716192423603615784558699918356374765868316011826016862563724722711207737100024459719107042605635819413896305228104367872762157948204144607643969691706393559551194496874211587665727641058079374719511998593328471252907930812587990200532355486952515428717718026868132109765187037410809809186916065495203278552343982055025482756612907465099290877076353264914963630730967346326181114956883570298660739792698079649274740441186841106364245144332642995253705573382978067796398775557666307226256187154601026642435883758613748330497423828465857949897499955570050298950706976323744896059611774566775932946531812778742899866248477061131662591829848349222303645343375577688849371910275245126434702082503334541030484429958713898961181089361807594622786957936353811299092201841501568905510682099184665095075108344741672376889625295599938476694385736314459446898572730527194307115492981443809271513349318143692456160358763938147938525330483250768037849928305607377764702711196940361850327103678980213359604969742440924031531382389361723275286392090724937843190948175616443341259483659287306009214484382366521403672959071350069139150909651422980495142445504162562846173287075246925970548266385952672739086735147297371553125837934028189516239407397121306435890908923711914888626978495698516652578149360958667484863581158035164539308848332274549042428971571755284073381844003204123502736891150968158778713046758334192526924326097313640820812080359299369365906813932308654916216694153530740615940983238089567890589522514065453166756953963922962134122838353243841966669980055346316527392109891456688090102979583102925313825290167681353687277907394534205046869136260082767444262810906779177549653375991263807103304734468248677667933093499164610785556996468817232431256172899548908718045741150009309558040649328955997283364761346301786490594937365845764416778285346487667612803497527811258874354199063217736331604819506776781497241305423477233197301411494376310479025780930923704864321808649300812234994230533095498772088532610806770381700564793675804282239259188386697598861372315745460929533082439998218628530475029949251878802452576095095956307062092206353188752979640521017284316351249685314231039657453947528384884902910648567998536600796555110000085950704676729038842138960232583529783980508252906572224778212321983660821402096975212535027428724496390796288934872218939946213822974946303949482473722611507443441510106657884014318486284785226255465579992497848724054511322151562955800192672599814913475491026102650075947313462882347074161066372906760850677161379354728925821897589794818034983853734791059450581485365413621339760538395303656367779598825486307806224837345944727530012844263624741456548610470957928817608099091482521680171650059433069548903118224893571736109364763706055386576318246490426095856548489977771197262776289181098586044489833128287898234896661414006373182133326760745978101729803122309543763193569695015897458073832734682320861693206167283200045411068503814649387563456811273615013645677773962432446280053674144047283650172461865503885220766158807113171878964131379823049123710001442084493660468427765440726274240421577291878878078547660216971039767742329658473198081469819422719267727066376616046511729864448006906069884089046063170601392391990582043129863809168200688953279878171208155237318298583114772522241645821588325173052204370990288471469391472002245713975724931706405455025564783150453169045534419000140912145461374886355497125963430991067518941279597995354914937096426094485719570508263011274789373578196877548795681455547826223663810345470951731713253894935576511292499714263203074344284187872043570622522286418414054887855335034685693404420367738834411866085455121264942701671136883078712452399648840575528032253509179425788355246390908447805093885128906172361078140413507718263485798452365212959818210278109706111192608487459031311447774419020120235802916730173993283239782651523766012555454337296163009518335267464860245818579536866315506535301791557059345936042504598029020052551497855894892903828385370354422342804847262803633927197538724146723877557361893796433088273205961346302503197270385608045785151164166616264315230303149899155742238784886094890649431047675738911077220494025747781703829666359213521159203564539330028944705980916403619512848452870219136695802822962865478335724112123562064217037045196717837062233581835114303360662939251456754366119897568550797412102623383209676445976739133136519431451015550039355970241563781871857275969970793267250959137453136655221193711218679564571764253475425649099585954155287986521087431157331050036873148706569127505139486475444724775984522527448397047710173035898821173486912627720925392506136580625921371444666277873450262870379926878244476845762183068749354281305782627863421802018984430126570538499479275968368026302466637205954653243428595473036888271846525608290679930395892405178245983460605687306378627505064239992805468906990957684206447634328006534809818283587148005682843906981325890961815553231679565438578009756062241577306977752706227477526908348310162774375978048838096244470261597668821859506580885349899658104813720938251334472652256092831028217103218521131102644998627098353735010565872705108316635393586614293097388667769784335070468857232602577099331740814549760527952876553443796674763799836285733695611710989362084803970494236752666469531814777544752958543642828477809319756194015951702027910483917188286986076077427389105480032164686412007137129570229970149039322463928350185906430595414708758531095557565761007192032139589458033133965878327403556153252863878509723383628748569824997057767643605595433666744440586919178400151403774691315954177295483453663364770247611517292224274825042183985615811633947064442445349663951719293699115618421304585813984514052850283684461413886867494335126289688738732382709272785810117945217239475672247739825460914784625319800991641544532886927731565505266418320969332650620244080440133830152492370932853107875597566371638106409307290311716503687113189508245034706437877242338290520134831065855609532228395726447209837614897359839683799683644887898110153629514613230640667288868748964439112168688447292174179422438217982332026870261005156035537446028851916423606251964581819352603760820134642833162559328699288394039625996543263415925344308061306340817949687232963386273020607779877740175195376149909542368813779314267808195645588400848646119456269169818148526411524408465815748828341388519706133972037438132777979474694345202521087962246215054781824036537111586971097859588861619688149159384267922787328033212568494659809663887379642999863001781125279883488340246373175947827051347181776836362291750131423992547233259855600364539418222226234079144647972175955091315660377451684154217559036967973541987970150959472699157030261202917170499116094335483279642225431546319067134985395038262691582407473030421922868551352922243881234337745146934891696216619271633793658780345647277672548276438351645581316388019855589516128477708232765313236383518469836410559644453274885552736118361242699468473219652661782883021505500196711605637172808587354869952198789894113705931623344589256049356857665696079052827627061221652896287867413410854960589810556915268973831125343335937736907092708292147072470483406785130741903501455549105553744093695730652856443680601829942994815291723845828694708519857885205052277000360587577045117999375191692712874842311070058353408193689986546158272863983723576160877508353207996230790139401280804831212238484411868646138071102618633560725843989711102471506787580784188864507918506114918061597483176668097150829446338941549662940327892312477583861681430910125296219515550842020601031974566609630643922965941235599450757922585832182944730749114558661720500096961938032570030803224807500272819246542291309034519452390365299779011248652450813175470401929897869714844294116553856351772395974101959687944968026186945743179748490532503963090140321563625442741035089300823466357615987519724827759790160725658107610838413863601190048528942704051468145214942011370691741757403477931855773333192466533514510807959552693413314031231934305758887634927750969418404620979266792041961038980002126940489614097919322890525465534734082683744082523994695633798389406706120143768378266802798021270494858277316402838847865581911804325079403446381275702911474596383345919350986231453399943867765249668965872049192801337958438468352968110890474733460845754867990089362751967754154394203840351604661770120835131139730397520341210233507718184701835500286194961310552498437060149110854411936867582072234437109563987987146161422401776194115942185607686078971353471645782102369515556972555776546345039417084291045891966732709256780099694816036699642589591692911603663050240531392222493172133542631083109061574974834608077648285764832935785727263966261162354904480584485402893948046940448357573701346675778309340756777274238653341000267939964582024650090725330605062664954759613481126739859507038518930067457478066655327607324747627579163462570782052203528470695559038915327864108732427646526073688106394928141867896383298756745955411360219754518050674149226491551199163466866328515242570390019847523198834966018995567978461587440816933678189282079289280632359394820221443899096774847532643814163671150327857860191350791873580215480232620148557471457389544369523793284155361103143727578571315101701760453294731823118091329623457078927703378017350527000892562710838308878662057548845237357856719135621793839638641970166809566739424961338924689472946276454918931611446959750387617769331451753332236774069313750873739138039515698760740112004395912402569276639011940909689085559841883383104796557785938712904869018185481295449524991039586651633354283677583845573390871952445286205401386764085793427935667471818544179500163422434131457687456259495889506638801820019034245972730467331034810139634150492335240931567606898468985746450169606962663936596125899286726642857655779990947499270093182164579045963647973677939317283816281898858556139580177950854279124048508034956980979114346397235035532510711456368293207552532762886958949930273110232903042665170644410370953370805375250745224930085497005610128216887369201432714979103154728868711181447337919494979580997871550367873738460419612770831319345956900304947563175923562792050371631406440241061981066471096475168979293431456633481746319066278098769850154842010246376952071548684033904315193208934250923412265630684931138332667857643932008705571342917297464388135995207164594599118343752478664474744498347466564732643719910326143024304734302671706610841650211968517836600780905575769109156890707414687589015838039930678850716157468900752054047626364026386885567859509956152805613850698978488239603904163581650545340406252114344444073543655659481411054441614506577544183624569019906017666660371543826426299007533903543849884983336780568267942007409497397241547369217275997416791624082750436991747366248656965271584742295866214242116694563175906659106969891257566333371292278535194091340170880984211952117773805420351062681471786951136397141103991370426695176344005987610392314435802095044405369713908303096573056029749922166452001699005771310362095123189098488133845368115678657696937511194399862014571815529402514096249998533732775672646850757941105932993557512091608405551292796106104363953182802544017569769102494286017577573595220637877462446457017005990545996309973123303729459784135449938334769350028564246765122416109116141363732247518096602377684410959385952476264912605496579602929679899434555424426491179274267824556764817853819623046944633537093802924683591838118446106979057280426813756968433123720478177758939148407885161657051263336413772066885923201354845005008509736434218599605809450781787964713259093301661693177867277214687702140294948092460316552608951265125485456516508757170814194265802496677843846227126389630203518240600856078308185506807528890032134077587241094336391586638291395078509225890693941106234778143270896334690863645745411604707448517708030879493144851427769345616612963369755616318316728263107073506047042367645241462941008874877653088862167411835539531331526234412572303251043539822800416565515357025048689686907178116005018717612404053306259863978639999194838277549932569375250429902380722985892758074583064086106552562536592723274881726093259221662196629557560243925643705186887322207070492680376550393746179140831965935269757599828103319530523957307626140378083278170736020152345757748380398935458745611173851940449969600169159736513338125856778739820119945419332206377429732070475752779605236200532879991482366275814187668701128048002564877555118456426794881394125678733820659524424114251861203250697654933179045054900927004439009020877624701154207683087103178514681910400937055999758162499249263933744460834455613463597173182586287830355910793675113168153194253823653568085244170518283732692850966466521415988104651010396651862819985791376576194970907320222010736406629303058194006764774752682055300984608401630612317574126875643804893541401982574278674140849956216881102307483636826905102058096257716492684106092544604474555603902725553114856128417595249829251799863529139443377963463756016072644976307714886038645892128662155100755582459987829323841560058952671976386419211095869878028442903896752424589333040672145110183547220472534108753550125267244630762561765083031394012695218853336188684557100792856995406578233337070252989878970458727232138323629951607440290758615880261372382263596736530134925728636600964366438596448770296356431338483209634416343916077474368851132084627103661151567352626034366880973529534934472093199348030107693450496908356772703640132257406492000813763329372316557743068025906455831336773851149738757936326528856619195433107355816950457584062867815807424772446278352828604666532442348311503227982109649530138272050742910391723713139048050361932613348598849976325419539373111149585847125732894653106565802650879030321487036791410339684571167620452747576402869509008983777030155818430999171340963916819896375943818108026014483182734851149610708371686866330937960562309289498909483121798291918824607821805420470027453849996308846254473145521743759966545681455791443881103037388860725263710442395531603010385256641545927327971879257580300589794567347548388687568682516770008257912932142937687218053182507646647798379419151550071784557947779740806066726639609424949604736281242432349537948325252979933183218411235877640818615121420858545845373475701472911672403295418398917244723858296655831687537234958538036493540811408572846959689474871912326330513343181025639668516748525570174263692648713235328121561768646216059527773872475920097115739352848182099674578838945791152406457518153336186219010467422157800207786855726288361281605354163052036013464899237780150289296802748264491032658241231815699726827685602455698613803263989364378534415528198035307295262912595775800847067561302532938749700106279972199229972083246065320446318198129657880204143460883649476681406152086539209494254004493177370689189829838947493136488163298188518886284395846154965368752143058394224160973020562299673130021322085677781869420583516752563660250120135693003114564412393020422583346910376035118798074420177537264421177274120370995330028083408933817962058232714560347669414887461511900935714997153250331337225799393819850771737486480559557561374369084474224700129962152370303184675259069694479288938263629419315233023168359133472883467355191564124944194227520768146676353525605709566063158546185617540155703832670420888636120646524340158581019776963973648014571287288857172495571581917036207410093791540104663529691639767110449112652396550770323039957966215520575099284955666005174493115106095626667570044697753011638599879350429045029262703669030780636015239542614022905558130781569000967576382067417784776902233075428655847873765131406494156917398034546996063314733448921981014873559089129614918442797374674151322276243244357375852641189291032485757232977132676980926102642038153218477645745909916135955232011007380398942226052996294433208599681708945329759080648196986771518718680507570750409277509444711103039894595575748919445815163327804487042507160760132950306251116145158114911606473782319071901000229837490003388918789197259939332466678211044730087722196187538050981097879949471731426283720648460952863619180086206418483221885155340735114578795504722940525496095652959097714155384929761173399823597232587832410544378628578766422649872218746023556300329125959926723025474712291979975242682267938724938777109708415725041414731218194372053110855937387244957162251694207756379543598316633061108091570801050503320339862295675465143950386899441235458418344126454141738246664865113582141113345147391890115602237884209448507360345396332493579535956397109334486512287274292626487628816079572362847202167360816682325559770868350382381976477062050876495783526200317354660340411244054040786732027285882182381511017044431774219495545972427198542127966042830419799369253844126847395990810012026966504307262992767851562638151618079124922483076651747146405682455300587549673064259579585938372638867093636745609790998020663863490346692075115724703551053685241553691376694197063282620783976948323529502933051457802349891246442894918523600397210614224719220666950531844572041474182513270885408645774793685350217461678811701242175489854663764362249599734614361197180763714293879471710997511644079431666401868766084370419963198495931671431863677847616516767010931787497467427498094440655982312750663991155857101476116090587110374843665643711809721711374269376508110414245918683422346561961322807573172732328661598261787838733071556032489396299063414613746970010321328857523319316430634912149429128691627780853083609289078415857429197472268899062324344550421477480660358496806373130904051820761747600502183116188613882624280185390055890465621557745712050392274455638245296114947654464609068971478167760170801521313002689324915755290248833719019882876824819990407685344823618654281553638656996681929738044509612559349630462725956888197337529786624839046880288089925276818329848205698111229476535571528756757103632784897885774288519673308125334945812528955420303688430973361774223786980423048078506784432930930149621006346748483670634322684975800851010879742509371896084970320541619523242925715040203866470931234682768501289574911838777176050479292486731719851409641439996616933162045494185533823655949528986310512447251358063598940440751903520602887321487843822425952085478724730243751270733879083554982740460736639697171988887597195290404230615082495443594914519587477037351352071047975420421471002190345262309509970789602005241959245588633369408935321610600132308159887904971193218309585908081208229121604146216459662263613115184865609187147984213861744040892683728831007984905916257466478471438945076403795359886671547628764279667313708566704289340279179300241996455931252104910876874722006381955135577252232317615650771068421078746041633621871008339941178904681065321985768139033366818621314572532579243908452278536982948498523900087079922240783440475076984692863012017613138835777701218957308123327229561039727512119976394193400819538297036923163410460336857205110405912934369337393910561587427165947769316938675458788723640482696999795981838558992893546305392807674750885317585199078792415902651595061655887780419079173597372383911512281272597771122354414596594369035047912608980983717447489374354826780083706222534571262767783201719414569591649157744784417167720137393553305913889499574401421164782844093904176225265454188393483085273785573883750710720834884208930722871973526718117756337009881550159944909307702077283963920581667445815385796810347661904703675258166146424394893362007917068436609507054907623768185978882525402822006865340789429919652722298463042676935948347441070903002689005464378864521963708316786187480947087049803368364550214617728324255048077306395646452511785144651167246940145260120473611672294235520491564055675778125841910188433352038635837691067186711414715628891376972600764576857732459614374303055260586110360943280865062470652358558542391426577920416108655571045619845312297778287250739203630048523901962078497749253586401029244548066811784953389716939043442303187966498324107111030007920127679897144547630503595566984182874651692921570086071675772079547366486779872927081451600965861869055145151801777718500248195832245879103345636654243679798260829341933119156335025141362936352967512831734527002568934030871973265156230941829371750959635263635446839911805254327048014646545460386729012789360800196872481876590233974051480231217510887907111844546590105699277236811920889001342669007735725706357489510347882218193884740716048330878735065818784317251329821122712205102570744564711892093476263084930660393028543755579960787825405679941328512415886405121308094398604610402451872356212265211769080673247080434888264547790986773567175155460531052240200360853455136093070485838099283769982543989689376906257479312673008345353395012512237403075863834760048874554828924916821135948221877567816406596950793696344738434960873677837749080497503587320106314050129776467421452016982173157003052173638408453225084411739260415142473707156475362765559553839393619165089618121916930611394577056406649248064647747730437761239709475929971082768602094161095889012641192877273394561126582114176728139454203010690576370877438268800056867099540839015672421912472371247764745133324441721813924992659692227535136695395985589117696960802213679139849599443604872271525940210520640519823573329355422776597276695802402176734653040036703192241311044915018981829842908364515312948688566174276526590672042253619478594020833146106201201500115335936670228609219778114923682377864750644351378583527241515227446760141481344296431199405517240802895912410895435774604584646177710853578890853896783794061183069966371829824552592265144715814463758972833221386344471389246122296626154351676286227776028403150520985463735482062586074355232828832724396882158117804667221615493386479969440943802329216489496079582351191865699974341358913202094145632068879659502750838145374155966025496764032565591310770539197781935014811471842710146152560234997503962945362670397887077206122085283266888732411414449678069834634078990669997758185356116794312334257223911347457712399308986620781184582009025693055833225112642266591596772666747932469651403213273664420117723019524179152922862813895640526408677039985955491372735857741294315856471185198933199968008370340980420046681188366633974638756630766075121220908203408292046468839864929177968274409441206174446009723679715155962479390816565728124242042616353904217157996196996658361687700819293041086638652249003591546170563605839564973519650777649768822628636921534841350479206044020803906513856404414106229537090536779790002431697141669568751140983834269057778960428068776821889661544312621137063606829903104662737451270198406482441646564866885114395743793343097190324989483024148405074145266594913788655853545978487282979256745315631003873324803552340038859327912971812345324739187701998101285635147183663560931470145784851831247211970583816696400018380593569386691570953369793661463941491315938152605630826350888956801721543691213608567202934557076475772029557549984467897424479071938675804506903185362018203318240062223232035333011821437039253705546754733949326832501212950082437682182023294132685304709694686496158635401239226833902375741325198024156123204798645735690831164377293616529861052011257363229477376699941839478906420180013729605258732745292561942861178170743497744834721001622644201124702108794907211458425601795951582617168071620171790794421611301288424639993665136453318736120091585373538473965452941601546740472408235276121843261595685675179513428859564376025649313034607143905430927428850054358750860588858856624517042395858137391175639542993465094833855829386214073155284984356844888115368507694425225960650827688196510468260425592614864022121308188876540406452304386116089211643832178395217104165502546230533931724425946462265714445438627722605672149626618566343874053622491797145600167554053948842298720969155333919594918864405746039755538531338990858646616714439646980499199949058967167743401327737394938632802672259874985897859183683461734827440875851623999547508871549004034451923775470124663912863823748208950707998556478756749991580547739454381487588799277141307207458190930885967364983370274611738946982331608927198791018960416537056290806319861190883117219030897635017720351207019944842675784991384704059962984330431653354838659452521392579456346173816497403109395487265599023439225910154453717706380767664361433499234698105987148934119694814401508657867940944834625588527883981674956604423683120515222268445767459449587433510057175383094219898047890898622567319473776743583090608975932223439246608005369388388159522282240564969437517118405870848140837854752321588852494312245462603783737930736599858155176390020950636855867522953824547452113041742129718327975674350821406955894088670000966107865905371618851920404831165134024146782043541833347864247739445794401402531784508750956520012388396127240389266976852200060108113601832376096491889533202596233720973234306675085768151070438401442389472793828598472837143714067934652274001182005219055757932562740324085243736001926214957725505632187108995044800129836461793630277273737172315478860448626148960089296252130622746385940152866686733114617247251517526191122359471665513446456673045010892631688600292684031087862877513295883927311316845759466083820117014195164117242770617326769477589193933394184327393465172268490469953924195541306792623580418600911014217657327560768997818156863303715824349449384693977438544202505464033448039289458676763919111162424788503424055684104390381126519833305026953126480379836194478092057101031877606343153674930576687438208878464746772213564157115342978447610665103077903390501640527065637752903438245842568570978448370654389435100649398841676153367798598094495827330968592835723772532655645837135493939119940817282044295071276623207701722884616391239613602453798375996044064465438498544458882457412444465848005661760657667010421955357736529389492048772860225261321108848403047793997793411260379950202423604972599329753124500649121026160463878084863180658042818429829704869656012235099372940011539467645730070018475532963256548633904599656501585239850230677787994923307833285252271725571512158060729040369784569296201670280949197605349676895652175697984704657926953818637128586786942284475503429944148609497678479171087944055781962269865920336919787155107453640075413640390982799095446571693727129165612780387042073485901681271101214840403620409287448470794340332782794325935454279026453154219803164151226782351163757391358752710735423022768191075819895782725230672309498781686240125170529697279833199402953364429470462981026655554686428853695112029760725694339028266268947878503561034258651824821231251278459292451882852678437341948751123493176477996730671770868513184982908799444583566836839985657542130205230492053533506203248182158790615194668528612372311508221557586884439837682813005268146621789657268094668324516032034612281167949232613101490249420436542785279677712983048281478273704715190044434093001291076603206456299967624608625678454517722651968575887706281444271088933104956225743052239007213978509671723023761737731712997252172798931686931019523261177674931148647715103733034989651308479048323472906549450170734925040121619324562001174841019112251007498885329651402883663024163987442502503879553436725373765877796284633309570495948026596409872584396979543808550562110922354158286146661034297897199050650633286755871509505928969076998588402548762231929885617853482646338671045019309097393749406485896209870394108880816508786493324762939876995344649165076449147153710982868234223243996591596724357271645620965767115243591367154309849858630371963371102122484655529509485993214067581214506537543563713391059753182366727244294650243719968239694162306965427689749747199703723855247036836283267609148777350799799679541955313424471429978757072281709226802904815410599656185426304418730058107687709485826403625804221917134676526045494343728687476007561273352816824420876673250585926666890030320078055879455745834115890816703352839542350385509192375547527358902620466818875445584834439334046013947267103153202118516812163950228628632645251188610112144131230338202515765278706894305898240676237340644985753171463133255063935512846501872327140770898142361964776910712554038429785079744864730341502560502903251553920793074434351651459205307636767561431316587157877661765798409661695407055723692773159411696453313869140591861532368871706710491355305227302101259366497811880840851587743886996021915345584631051596136782073661836217711978780486670718544187925374275486944026605502882004924479086595860904581253592222605876857185745558962699513122039295478541250444041598936801077228211762036257189091188659740764648478778778394997351002626474316789334001999427518365642262332088650617756291275786229722792246296253114040446574929894574189866657923203209285311638093973760286268751545222065694113718123256285039017575782798850788128857024296363118608414770404990325274170186666001184900187379474702839006563545697338046525641683585266107683770028327896675943950745890958939807935985985162992366492966404928402234180313249512481136769306724869979811723532786596444091967469166526532607584213660233619839467892816382480746664281661626322564526009755323598085820240237001033626202128195079097503729873133969023607535129791392945253099119081820937291486097927368071101984777613054236577500023112156956614373857531912234594810470605150411249783093741642464850820521928899365901095779102579853084967504421061625244678162977331169400428202398409858981745064891456180316867400941924347257688668640912218026043365349457691952616548643140268620804978377438688478712577901452692493279813274009170179761699203951276574365212410520863450542214750396288747840586061169780204473574881240473613677675311851138714446489352850160992830856742581356447222629278030607350419093504030090806249502987496667503848261548706802552424389956836980532365984599010492744608716539940022006180942243940913623482031719433891081531558022107319125755305932726751628171796785076088513750240427667392518933959027214417836283076894337729336948051094367384416991564788081574309383212823808801937377768957401439015093301376616796475671880212694719505779675734558952803280899116482807410649429123147159380663551286496261495502779229009920014833551770130227518499011310989586726281564147320079797896768159072359184788364537686035727342577130373535247390514323315256547891385984195428820446368319538074115512093522518132030158640500573758054644045642672617263622975787337379171226477290386135084453843617176743247804925008734252804428007727628701071922316253326407193825879418217949582764345927855712984218281175676243119562477613371639311675608258464825058002765585374584233146189611578467477933421649748976212049811284710661413894834875624747053541010097077605740898616463448051772840377985434097145426998185690608137233460784143199058046885653191296756993079290305768970434157766086994670977780442705143897920791245387917068739729525473379646969585191085606888854644058590405434164569999253683348590843684573276437903456869201110449702213376838665679635278077031134042629890658922162037279799099145961629907992557663442830797636738511424513418548969841783497261383395383585008832870025366125302023925936031920096525475054186784181691062033574283628963592538515177589062376994822485051173420675493844111830035187484254453891265997615168975325498785578624925046336597471726904397996916080748135023983591548259163842268463234585892277135262050968717777825284225692815268867181272012262749870222172716577103792343491846133010482320008978646482953408849488595536077746289527120131834286951219826085288212089186961983878439646961792325121182260559521432757584424362347229095247963364499067652711833890223591850058772354215550473049182589982353445722749228350615305466600324369841813999288670222696168494757041532518469412074823415201050293310691817948159832002077380873241626110378728270371710092770139154934007314959512284901113764372659615441123272611052136857068836432082402228294431703437609651799782076270469170292874251979323871157741318882912168728222582119599441134757749781849972441623327025806816535781098080639687095586403570597632814734326901441136353802478328271413476539957100022756457748571894763464163027018789203113171223823874839586528190015114154209326742562338481144012240428823920180116244038852623912881661479982774656569683210858307621785752144556471081552410764315286180886628061222363651246128014022285508056088845245862327879251402535030528753175494525401460235758662069874119319023361546544696831295006870489182446029385769674847203447829685926767172536469157209540209673933460380207307883843054634042060707228710003897021366179232258829301550552099581092373433824357711497703908645370307426962266467862038207479865150809593397791006322399721868792729352399210277187915522754381982994468415990389170267373481212922900344152940352606760662955687127186581633271389006004764909314865398853926844160281877831964007194982915533497266205832284852976364774886363858894636857382451904695792752765534795481338269764344217773737671323914748775211183514073467683788394542538027226985090945428739147398834694648525335419627977531942109590795287186165484084378549710659622790760955157110824108326497322464205183082599232278107973615951026477839361390228893571225181137361715923373422590800147635453961951215932461372758535679818226065853774611743501271592350583435229981668690853777696568151383491138341482672357877991407353012006891876509074554427186308242106689607150834413161172652026703059245022122241975461047186556939392055950790524329055632302923006383953735002488621703231784620250716858438742717427227063731765150900102591829042166758976893358017881088969773804925276374654655503781529324614196896976920593411354898563651188908939115413375978160716185264164845060142604503391210529644297003428313500793160047326422449091968886680946419797549082701360977471554216155526095770817439969494225292509194149120466433310913322952219693749488012516167646388785618833401655418061553912575462021375198880010729399801265097948267268107544394256331487838420000964201040726160151687724496236199005462989825432622586263637555264030006445139391997409553299234342519037741045044354126508196695967368652608799988818700929718597576837469498036434229496248038012911506017308357622426017242718749681001669680673789919037162991166822395674411965336413638168017058186329076916656329188209272091253921680926396702113867004827654526242539614241226621338344251490601598746708867368929643047822321766158475512350278188085263132557110719402963669129066318919397471646940083857596458271991592702242215418142210888708950662900331091669218487336173325560448339495737444369904687125399390038141126139284461204838692109205374903586677205823157645138056763441443298111701838947731804258477574661925637256017021742187277972844802641010964670382042574305314347680453554892254580674214906523185121040492379878808222948710174308413854579414215929025965559540857943571843828634263357311398588815028885002403206903194155784348085773372600289501717746446910005431478228388101789956621105439770283550759369129446224150844979595881157598582042707720803614222832953765433975948866764175603539448513109176559704288093450189165409788013347131207101942565251004599592719589895238698450228760068480166341807651791188327517747288265214263491373988115442238678576457973558279642171976856052488895768492742709865200718673392383923915737443381237152267008427344218256848204311274691439230925434718784881297665053669598951671277352714246159525586353421529178840881763758462362818289460204178563798277742346812430294702969515681976093316008383902040045349540536195125673627516974728595145922685386146323839120037140706736525757570517314519333055712104114345683827624125929721365874237303393865109442338080120461270628122885164657234305312309758539436236542992456116840450526120470132874063052707088426504609168229023807120445723930604535258460495162629693888347423860888643339539056001117502904380457619693510582237010589053563136532097122688586008456830935225714741767123663665398862865235948869728881915195939864792979363126154088228575588844463798603708691784784934071742657860881826922462964880570473147872276557453997372070776077469410767037015509901392853829927151040375914977234249917138116708762771424959894879839348926882609937413003486198708341701101871638153826787555710990026609360179716492663958103125123144506339416172711720218174549753629881675357958777414260865887288754682854196823469362908160413621994340246116142786025513166167408197528791070920723146128305262309400408910689817505314516553796920902105098909843640748267438469188518029405410907735904360759570653040922943053931532145843533919693672304550063404086914656633814755912040968925144903612531309526927011526005914669373644578389660205733012129795017162459044840564108285283662485801786263310318266268651852667951177885392533037037199407633802489309095394883447674923756819758457288913145728431728167229929148953864494883159460009782426461804104020655695855448093906059532321329462306967631266576521293740453386418468691343791575102542599499093046232771972774604026676144824281249006154609833848855826890212055895158050338573561130734961273633109353048577249470675316583217985203901261308686268809513011996095205368917650700156161916600830180622393236295559004955793929545270014413686825658331563696719233037386075050413317184567060992450102957956494910998691281246527411857229008928198626617634192739860024805919575349881213783878289213293101585248531566821568135919610967819308887892008838620442470583546908103759241550783698583802026401065731993970342618504742343424926917367026641223312876341267541214499162581159796805916216947832867433234902092164952258604586071242742235819291923454521113726720843256445187432157075143861440679103184776204917983455428080825201562348948873965277337275581607781892968782306197810265696652404585949605961263306457874260152339832705726901752649233844861069279018922223450494173049748125524059385985736446237699685315938571232127381460302446963637086409284519063838171848466608556688132476157259422224431269119905188952677959959820096951809976960190856632995053503721488047653454406603658020171432151204854814889554214538112261974073637062906911874099842344424837984987786420166039813741196770691912636782468019591788522010333662850580026508243146805225708695414206592516729840662773575945586535109712054007321856227310739216446396234630136047109801166618751234998445348446035851486686456568089286096378691247246380410671977794200314640800483857501993059400667195994923153472708177369820583318952504894074197789893122073968819173937028323405793336116015148991354683776645395256377839275542302637734401075402950082754285490810316095748068188205009530715703950089183791868300801061577243719572610428659001265361275469963177844715195077097987930335100395968193297793197840411402664656460782513898409866457220674378401941294642799334460275591179362021565787441228690348273432502785658516097253739398630054331088008512860328064941513431676623525095131847271836727784185824657094692645430358604434244391624459642478236942494112329135194535970043589985825818668645683894997989404102395013949847208137176686819660700276822154361278015683142643691686831519380865376444499578380102804765965793424358893391102794854943217032227454010902108178587039632135841088970733917917618503514618904999515039129185379883825714979939389867259366876681214343988720443734528351924518217182808466730588304122141081364378298015631264347445508913373210210935316978081861663128852486406165517143633571644543160680820404394648521476560850842538211995619546410558129138869236101612863443250736263177722289347534139435182279540054131313046653772153583671034130919890122466143354219530838383899921584377773699499484936303697999732957205702332164243237517945795307352379036839391805525870452634523298085718801135766467531726494545899892293409708247819128098995685657963328076146584442034176525939403348116305847728896927998900336955879022043127954539421777818813245401612230799844193430459413466671024839704812236320326440317177967433307940563490489941254625407206048410720653792743401873672383929653919482410680436124646244510095089376180519601721584782645677412134194786539492553404606262933491177055343305810795109107229646654467923653403055635071360620150038008453082390943756377071343139771120080956310498862485323957447467376538994662280143050510681877597429743260101897628954827149900453952920510409938316742898654034014645770907873205577791425641319480502958064264794264752812229300910085163195484448438749811284897561360455123688831130605480554317755359698661864106773332178344617639863887126130697340847758477720502879967774621000120990605479573514698761024362786780091472356394863395854997429442434301843261762446664104565978196236696297771299009175653512561845256786952808717254536655472761832972530674271043980632197711538481745290700589965164059145147421916569274737320280006802786415304377715118889564519362333505413184883520188527093453423442425037534250234137980438682608850585649118008535124258635854451469317363212664129548998894790164357323751282422403406741078522987399518475964507106288238295086953122755443631346492922567147609891899757403083425783013493978028121730712955818301979277738505975421470871044034270311461858625067152418158043636936880243864772828427431290905714873886631483186821699081102050340871443241387606243992843282927202400299401139804461937288043411291639452223685530961493584949795640839836756825069150020580069181975424934060059165561901703555775462304302534207955008611486162853828102220875976602602712505912939934947116540139915560506585136005906797868321695857556614012093781469591952228091004292248148093795267718569117897128851927214548832727813885904290068598268692236679136635078707902302725283750162041626870399729291063916950523939429431619634264960684504176574129720007516702065901625643101979583727932058497685589186712293715957374225434896972352566091438732546823024279428722228444221205664981751648562072496905064229015069475632813457785906590097788075327194655452721226749174683233167556881490882924317265303308426845290400932467542086142295312282323711918531417172095240354682179025132749595255961986315673907654983057018550049451301199278291769644596690903076823244836014932412818148797967789055899330683616882325259433830263587157004577326562818697146154510850374041126224397311367130669034637410361954601796480387491166217656088878172626122053266201677323181521201927103342682793968161215024892489998633029481990799008599381649755767138128280342223291365176139606088256917060866216992251848641407279669163603885270242511097439746507600000913802567686051886255285751075182207114906474732417697798456190859295391263484409985964490681285002440069203220035340904533441962533533572286806973418614790749120891442178210604353945302117411404721013041217457459825526827346604925767238854761650502836649779023396811868585975309047085045998537978759012961590065067262731356963545517543083036374944690467814349443791707835857513879548690934409850343598395325811390514313834826860349390999444361704877348708785039676955166945113823172933454796350621133210729959099363566140626342835761709355003367619356039492482919749491564515570827698841640838605349083595109102076659924486809160859086214172055696471043547640665625376317161547762740553145976892601184029271258686736802928517158405534977790065690728625172158731816179776285890879090913639179412963573388632984657743503658978185017852716810309649154271956606529216410316751277240191138830262669840155535162380276563122170618046729290437912484769039091410459482276432666000147585075512714995943950280221149237586350455321021277828227892277547906839074733085116238891901437482216392742919629969668437970388912474321439796379533623906609758756162920731946215386674244063067333215469511582224069922713494103406117509322367368564573660877968945005790747670061216357542900375819123943476019262407591745821007326791103832507293462682294942891544544836629906325864331756880277802068603930513838718492148594302150768056070693269812545596203607323032629437016867361881424553562419268241613124460072601417414830980955935060854989784863551966854908378849059171660810789722532657462368533962290014853276044983871272116375109100020497192652308092573079052772157967882283149565919637282528504802494512424545575924003185384206713574705621752685543117457912052144125825859946855197182767362353576445729623126584175827930690944494978521379119331004314304163976401006739840311137933941910671587673850927138653979888360881220008857948250958705378365733111254118938704431790864069731790753026746411414639173377739545140811364317104404848366361989825468538350878618641122866589090051273667606543117184713407661250757594799347290121964335013738687715206316459725006939426913262744875184140761297655627827191561417745092274381133527827771439252749246082636348022511975766944166924917565911652079394596781429924299796667179318345196863780691634923812949953973218292960642045015501096913018545808596727411874436984816838846700922439043012249401930336037137429100511597041100028328488814788581780095078288913529430579402894560602170127837050528356829693168172213181485677989913905710646003120804230516008012821598133055120346256315565811318569666448511863244493674206493219587891075334071805688902826632360589367107060041909632280348504857386175334764016922330677106110898662078825611289710763155067731726345297865777425285571205905475471091745468857299300132907112036848139740159695507521184374036594687059398670087294875053674066655747636712327731180809086913397121154963296564878033839780700564974971060878948409561928769713410585736751174567508777587196629770443637379976050456698616540946042847348575689575344808847711801880657457349841127110475190806824893631380013204409893053911675360183391810461001535799327515355109054502365840134583945467038256333162408711939278845800758599533839967573412326106518568189162069929217338802818072598334193010120862463104619904613291484315112637140184796517362723619392484225681034981067128606334390532885179978911140533616222402729690044177982195026131809689523370773455192573321759038658283315399526529615639320180743985147568172324132580636365380499836795842324516174220500072677124318708487922746722443956815444304804621787185287165107381951062133858738102450058397514402752142171621483885145108102723604264731783830690949272075020404874560987569490168797841500578984595167002844582157979875300466881113840336504799778338403431612692526398628819994612818872908731813766119622466965964422868116292272734506794498951496564502023147704268185252047640100148424372336134018192656838752606531535293880290009330280216613616183242706965797222397582942657367287382143175270981488777043766293025961358257875550608249636143164149829740966999166888456998126359678121221167885093817084535771149925584847770209326809541389778256508300988381322788572114303244837626055146113396365075336643154044110350350699257977160610618898951919735466199662251966081166445679424348749281485348194011568561836003969423265003358429672623074252534403364297379099828820956590971464025366876472482344393966267391424402087733106410809401206103529458147266435691811258187297032531336035604937972702753511252589988876476785911015036234707560443271095402178623700948157349536519731374367743393566295552418109894005158523072287004207653400004077707105879132365149768052961248380862187228303559717163681008735539031972123552246192135005074527248142511646859321505098482324232929101481189633375148631081081271093973466263081138980786853164216702587663422007899435686571234866274429101954888633651390128308448495039969292638461341101154111075291570912640055702393811403422961118222334262777318659311377523376183473876092015576125750361048577696980701072615646881845303988969289044315408655630965652344358161834817462540998627486748052309129618902223424722392002162459300936898167438095956321218473291887133695233807068098826436099912005026031954178098561623516276875234493746994078990244554968931670314500565185532499029110122629061350060645308283639510780917607990858530954166006499293814762452070498501822411615290040103707946312421012617380177721596456554750365517834825580818104940211843505998843699927418147643495349825455502331365853385651140776507415982750495987648653557181379943411755175677158570148552884877049060800272732595363615218151163841574835966143856765082832780696148930647353747415368524635723373578914700523799313286108599600193955728033431451953875596820893228019415587610112624671297540033062878752422137728182710026148546251341430843608092405226457278286207358844029229787889522342116259924004450659458356531166093066550579743004086324632080463507436284104765166993595757006055863915278397770367398812018898755734333391561286575415526368675940641524202870893391084660062516585171758146601196869075186142826128793010111788253038779587729954352059005716093330202197682306851077362584726388625277606811817530982710583126035863580459456553028239777404431352256669577363922316230226530324126791161540077076597180929210463009943354475540035578373506376418806052994080161406011642111735802262129341260073785450469238226204264589954590394105613694890441471006185327595418362675098241797141271108998881568611164364442718631991892465196184025030846118954902857258398668440312207705038700823922301836327274297327129627898143884329428170006846886545911871547761625011549587067138115973753950315417818499847584546341413637843233376394920932569547271135525168292707203419870534534932990389843664080761823540295446567768128168533337570940362891291988766179286092320305992934636213438671804207029054463434932054419840626521366096729189199981792362983119386362151186289962316145546408376676147358907831822847676910808845943275334421355649694602962771066395826797656434449651735058104159170531540530749660451176166283376028667831603638455261131627024780409053125349481581277585787824134748463966691725224044135669713525174920236605967913436431268084597229255974634414896503854591057974747259197908659071555633422988568378482197650810509549162754940115661837684841293500893426974458260651463075456865244701352145336147263928309071736679425888191150038723862031189517669216696060055239087218707250792175814389217920812341882726949205329378733259150669103576185842734280711759275160484276367155019315111192836217176824122458215557101287231782948081092875048240939289076484637177386994001330288331239467259138497796063430131857115410019765864946146864554770359319589563269659540784947681423988039611134618161474826437834687072391923578526725603620584451782031261411597416783742169008477004129820512488176549065436793746328718288520136820772194935355593448493713259640506813698297730969987059681227833882372418690332069472859926543199163613751629249143185573495757308591429961213367808752509989996128976042941258676857067287856408025808178703567447171410202744681276489189449417554680710814495136543970722022545516686447425661106362933548755146048906745005202854833636265168003606098937158298317827651317959090809106897938186131241846553861727808937183981240932357239659066657654804793309674658913441855054819534992629963028050205269682335617947942923731802168284782249397834557269536074232443992645968150407244398671447618321939172102203075019823745716664873774049086321143890151908581247080090033717286251582873887404413655085343013025568193196069572930246406210696134586491962092014532676233631160772199820609596599817897661221369707146750108385782330317963841926368735265180746797126114579956182039247559834144172618827977019727946018561443445063359136262393411317879394416259562070715892272906560620694505495589444091802471460780291028643754755215140113764478571537227350688599358333292697463040643229476344726324462576483010998088702019782012332458825936654030358165795084158587672804479482656666538653262260501694561524819823297195596998256305638287687410631302364567518413537157576530232614163102498334578314763676230495982401719166373388757286689297535571992347379576195743677583413369871382474165648300287897510591934893915868563341238491575823656846981283494648531351294749824985871293029122591653428348787639448473901470057502962854152979947417944241018771023464269163495378683467614989997171236744721526018018712297112677278197770665844190818165965633992409014785168051520836768567114132413878886927997508281732794899976940502522546011874080040040419820065190006678850741214760799250621191684825601236046923100400805968046310843779683804223952054886922159842149479893082666441614309524872224842910011466750305165062353368597811208752504691321845566182933752679418607450242001400386773237087315001108050055448427304966489713402887593242749078257091384527483497402164882558770343852259852393931575846395613720714256501921331015489504888781550866670150498562842739893492302174534537769051080608260798694709709586934914081937811140039518750884403974848349290955743585583732800872473456286373023881775940198073242442820305803599343260403343103937557801245881668453137938352321967073911030706123147282559461560701208589495986360492360048829968066429176875877078675104300841474782416727927925080324111990710862763705468683390071331634944264950334792607261515255592799403396843295000700226887093324781711602671783115234918530668847077770852185704232765314812311964393240455663198298277955210384769863387276211309444570861465006438983696691704243048831735234596931161285598330353256749920112921597069679985379932872190674656781634675340750013714128745680062150609016638636247792178272859031674885392331750889518071284065692483574879007250883600450589949411902241633962549277445223457237822498112215692118369334374236181257832195065152251508166116160669329010999112348568113477302254782370153481241903934653451403303099372281167723716825775753717498964779889390697791259985111779579389001381124218228142867022919283307734111762546932178149875459052192819389656077245671234845214788126013321982996822709471394673833747695456587205802598595620749108527918605152748231917857707596509120763552556410076827082624595799902433850694465279684285806907962914620244928845870861918543126196363416377385484765107315299002423607324433897165210267648054338046099139830821807024757693243024910239621398184691532409101636404755863617464055203506320032935263992825354563567834977209216296797926136726532557634729754505472774725453249692388736853419970603331941378132934884109374816195567572171688003611766728755715594124002610419674297357739759944224219379705199375035609633682976292111355544553424038714558283243434721374662006114724768873229860756551357414696314404271988923701943883511422822831060268011139816421481113491511958435129630498526705962646259078984193439731068861126006170477611661044004524012774681130011203879991652425548769292279614423284577093955092246724528985831179275773712504242767517946392587537179350656440872327232354648516086849639694778949030104465745632652858786998110364445442492697409885962618863924568411451941181020697392705687592429656033843608351413676059375652980947632347747698186113826868272499474510949168101172546937740149522596773337298113584070883337583350073560738053339727701225340895561201839990339327939216970146240927471566919804328342820765116396460850942219478813941152499073413847274271691150159752791908352619512247982954243852041112308213113099570868909020585490395207471307703234553049498027860440931935977393835676958871100074939442985091041840509061717867499038471884180728074710639656505839480789527506649712028014650116966295551959739605565503979331274127930944493265543862927827085619212429423784704327722435051246037379234162045198376147709093237254131497114692014556960744240581648320557553529532282812196239290750212287026849006852529993106017791255329787413645441498153039573210552251545330514541404549981029846008304417196762665501372000931234549083314476059524046369345002498580470544457320786086631338584394849854020550818478950052354704129161562294204075991970930936625509487733436059098214516734124983160965281758311492236619076183308123307394830025402082268489565729687967245623416499097670770776343187988857530641902433132362196912482483052010340585539999965794185085193922187994229953942460711972831595399818012403679354824480175196223816039428198689349449600183245248112253417754210382016122597608505687805274065441341538225628427355693756796565636976520385072920667301582024574285417037858112967582541822790076293333735076819229427938897567213721592126398351618536835899384667735458313467523904855021097209857417001062606211486668290832582927458408624207149655286052481587910123619529534938978124552730020764168753214493516214971251270289358684355127109898511749334626241916537101821245996811318430628499807255597837117975573996024913683821389490538151195292005527576448269000907970691929014619113755387820597078618130281025543967364874835612766304381544995778829791728486276392544800684310527702238749158092908056909142718633426676265498855624394393449448292379375325265308568203247615495031586582018037626829390568603839632733292521126386514651937376563425663469077174980955521907112037114287050269767110681048506862562878290165221714740348152260296464933891050456806755861766851530256927080187448875116537383668955805625268244528872758916537042434509728324195596776471953322967104173568840459601445133394562876274057729873910595712907593677153503208898630068198447514734967921186321019761138647445091091506168333005593644516548653567708700195618983443694088509849130956861053987959513353540931763320810253524476010429400684773140875896553065607824097048007552577148970283432067893779273908990278638158773525284527659631999459663500013609873638357599056130287043360178331128199581139953687489045234417109962264810516662989277347370960496590084620616986409402590270859333103719889018874350585887075983571280268477786505481744830235683281990372097349063999914336559745156902973706844073480059059020821215050967646914386406855213445580818500187475096093587493428519393749596236803546095540029506113099055614184034292998530652363183817697495664726438503078755839518857280346574763026815783737355282702033168995019392541995872676532910079867998271708791087920997473416564644835873664788452051707046580144980783976038205543107291278022958756476318308935391817740620408306308680100960882123060615982579679656895614539080622508054025541627697675396552110589114838643603656839285425004933321432703323498500653316158366282059239233556713942738370061260253471087051482217404928722445751468510516361154175415213992254609965400260185260272545829882711341048276471906411266149355632678906564829469207856598610307586640363315486459185163204628506518886237641939083020522538601840444591218591310531230178068784357804387219735336954126526061516123198958876638297698821309098912471185557474311106741193619823390913570513690415227444162138532003137872097105607983269668345736148919477051558165973413754291267548397063790458097674181436974948305183068117632374201813311042351560154280805307543557093370953771196410473624622386993005372241051136641753121274669572224733744793019805719476793755218406741677653968054487813075616179175652032140912495264895380066403735091561051479310012181784239266616987648145012519547634104763611283956422856763844969429223225718875654842967181731154144226032569419012131957551532634535819071837363920126024687384343762613887786751802064497521340808377999009269453982199192778561669220595328944090550176868222098611431544167286148333756437849281288557552647594727529162299788279133458942298512786193759394898839109871842200274550619190667123121203418329496085939193289731905879261362403915376624314317231515216646616509884155332340749229846027290522998473907083236295320274087144289422390935359092640408758253719639168251080317935650050877685222375153443286039017335645417525292019247979434374117712601301830347076048429508547223035786817535688524900952169639351561917046242191930510070404397832730168831320363918719895198769930761193021085120563351322769341391549234396182072052992508435874767457188170100695317959048282638102282171687071563016348773857734576688313883066082310576222910783257913792276696743640830141410249355034626179690561136792934625586521546498888559900539668309488395933566788786200575146494241689248789580457976390778190929178625782131977742442396631169444781621287823542178792291668050491044796784700912631532305812148850681660099095416666761138504643882671245927516270576511715103375387476585148824293393449260520699976031874346142697273958558894163353158674368738995044443801643728403904582023706943160961307997491904460782347883928758706994362727428145016153691425206857317927608759830741545084810369553755840263829337267009541592413110273573502124973580898458863674142699599921942838566490474234378576921663958627157033515766706584808536671336392353328852838031384987076066778280435984803353482576897551698054720759356906043009740953000299451027059113584537521365348272107098838666966242672790587446543283765533246061061803778915804443601567639371108982491065671759620444411733211278162464742683935710981531636390944377565552469367736885093068552941004683844654156457774738007026352561502544749965328753207936100627361104260618582840816401400251405474804150637423661009521114391504580586671346621571830406047165982587088760286655341247112048322352816749493640137900310219035940627719615632487978143824924647076885905026726401743769211041976502562989739349039033961731602170861948555165372285649988344475310275681766517522213200937092570557001506397213374129398723577728607015563197517567706473236206578929470781686938799330902448240114766976450201494209887370332416740254156462403214180095866603125869486914626849120094676881112240939122590771243905585976431970283562837050339074776981050168799774799064101468918431436536952280002624212995459303372289690826390958089852259065222344207110503293491943610503336265159979335548495860191499849848590845649398686874295279734109200355747849292820535066761566200402621512415482595406165246375609424096980319955083786313624073812839103486834914749362125740190169330814030390775873242788130649559594762564304960188883820606710964933013952372386684699482913009927958944611579794773851662955169268812946122205226939989174819455627830440856165004081193798100926994206404790122536183395820962429758622384276566323396345271244382327257496440429614075424214756533029317398948756916916092506256144311864362407295584499714666492986685914311918613235765719062135767187597194922457580777738097512673899816753170077224094246829302667900100208715014922002735735615503408000185349217292952407648354774153910629253015613887216153719452930850799241469091379030950102880348096215680143419691201948167051137328590860239661629772709785046933962805766560773319313066543831592768421432062298636909815452961476351666417860781436744782565922018838987324877467492897626904459018459605924001225478564515817458325602506926367258737470222101499582545503208304612089216294694357919955524110438210546628243238063530600552270465831000273165312183568256588566410513278755616250713950219934217178552918971598712302650761013902900195371540274818126616143080116923643475282396441984448054462828995304268265971086912784012735839745673054824068818823947142996942570820679570916021143783435364720380708515383020613965254306527311412637326850188418885427770317887593127751052675539205630753516925347640042062383043650683088924255622161493022585148928296923597781350784123737553171954035942222709530971241455193214770650322690410040272048074132464182476287807564018022219416033753150406378846288655640234413918173016596370668262157065428870003455912704946003046962603022535072009839683587827836846986132206385727774468277624132239468487116279492847447965348520087633436958938446477607367663285429938003726425273323981639638015005801326082370541369041168368941894680123606467215649383923790059478064452414267076267236979817898275428609235214101061147243678425499536956001853427484678002251318759544681891834804841332379657798114848399959615175092454817978111339367694481370049615440081771465670858635031862122898524288606311672963722662528116076579118525407792508447192455591696011696603198972392251125374435645849701664386433849634864267700173951366036266979581215742789565493749208179832610582203541476863228318359674460883615870599230669962943504215089741470640544641674677821347826512296465250890880596912152475082426690412865494040861918841947308380846496668967642150497406227218973969738737623290093378691165194823456635517817886277997170774783842613935321507895894155337627905518935272165884259163198887549192575292699218857958730574530378909112739157243561919335080271841224255383105575319079983650095007469467006215597466049716093389587513484305315223310029605209389448208480451118230917824789687442374918999221007591168759226407372005402582032519907914467850251515957623878351413589599315368474449190716238800696607134702589131299241051050095695844718609794734743168324729830567322450117083395913315948918769461299491045094119102598475409139679810649566603931456806629960862593902903342174260440222365737459841171644381510914611681823297788525924056710963514461515568407799231962530799251421379131476257266281757470029283977965585686865728998739275414429308065760348971642411088441010553473284022423042463755454924052886323986718354607261273047475291023327124963935069793257167492115503641479385638187875818354593041308288599541036884461226798292011331503879519600426706926011367237944572827037554777314378360337343855233366506236775471011930134646671948267131932218974536461511251192736218725120163287362151346676575887675767603619087334980635970760979850387119293637516494221534264587901575956204346525705800586547746627673313551484517768690787722108306773195781331272156522370029806179061791010707950948668671932644241598675745293033429750706672801171559192774264651545648116817882202899470689744559041253560829719310482749837201101023632783742260345440018052455385705058271495290527495300254828017399670266218736740886422937508668363323551169467337869571477749136651957725124015446051375257591186069341949973388158224299474545763710388821578305886695131435714167995587665300216625978345401037050870690792359820474782371140246905492167714026782171254846922789639994993415456215675115478560020349227680797782220159658150463816947830661580727414452382158348663725055346807466614382202134997284896232173995534370103444961617206956762164494368612520907992716895001946182282036311472234047759813854898593389527188775951772413900124745379961578972275067995908344530885051585619463350967173513169078636899493141958896486645255901650823604618713172910881088557626876946057827123883718834303009483177701807835631698295422208943454485029671275779566397677255418603316307591666699486308260747825776035936699120781379937139064160308183374574223452644464262396500654652438181697455398263781497478013160582429328872105922675930636914815442730092874398003977929938810683041050703635083104601023968553416826156226576178754381080176661547157145868543859929106193387898273029041632999311421319578101434327808784211946349039652863289327236754288801902771990188089487607729181768695806832857258856176870673783816967703278397238036049815207078533254384444358685479925390566547607389584772900952767831355980316283870369026404688976190921967320850742766268774499263364218462512959805974261397278271378189926730129076547698366464349344479259397519078788722343658602383947192546724885045901003063363515283704369157267971690571694742347170629681671468328207682241002174911166753908559089117703463262174179640441110310808980253642935482303164718527012444938197602130994309319662013488302727208378256855324275440317378837150712980188633530082213050519329372026347765189364175500777084674950543981468661535896316432932273290938651150246328779714150940517136335728270785475375313683044380380851038581981048030485987744356641031215815859866553181370878801553165732108318801907807285489209676341446114444028888275418385289055722420649074852956742518803173837785153874988768550758863188259524416744121581421751619826227522283558141765778755096573980514190286247624454000839179542109503710973654889767870801639487543108741401460268286196993993792898620027692965867970838343951077474184067045932692480622881176375240503354177561172595298326031954352346907579464931969772411359735160721556637819160809120503296850846821516144902233186992013525500684431971095394079121830862032439220646844978664483104026583245264174726152443812867086068416197882110424047774121166900459816378114439295901648771302774545922110171119892740450628794025184404414186749310685316791384572991762748750229935642694357611075111932503956417317695607891749559368280443124634328398419667067544575313622047023492162073068019009020269574676151929829008537874004749392069569721422062081247127538935149542963239885997256710942197228390742247802165270703777131838563490914443469109966386113415433070877530418943727013451492520994260010992004745655950143316319738239387726964515002249553534503935710076664236070936397481188946202223533358561491491232023297435782210528592866410187816818235798407679238501771532371028033280173221050179455231931409074221407825211689518132037901804426995791012578989537398477243228559131975296955847617903857700891014329893646724038567992852129583445684572447815079388093422308922387883226233820086293740208702232143008865205946979079024407634654332449543728792783888723710467793127147697461887342548878729493940179912558099232701900163880135853063426490278749474158031226136668172267872716085083257864235972688230911168680937865379878991311410524817982690885887686968474667568356006650451895464598147345372501342811657765453086088681855350690274822785827636207982049310217518146701233684187208876695850879907147804461819768056364985620085785188175675150144504297603139800967596790282561806700088975013786883238785533203869418008222761495798918901566916271171658081078872043014666953088691492795015837824110590741038187363298985823017456002846349705373570433261156404224716569292014152072233108632524274356039739135295273639179740414494502400030128641120311698241783457264189671915827009642706052956729252412785279596541596671516036604074186668349017457865501819597200808810310076078482277007839309669909689169225012751538177397287161995256648434977975953502225077569488758476344788892582720641638620147358617840197872733855142579804514328101613197582647302299634769575725111400159969979587202682096242406886022508176964314163667626884301544984189437499926730066237623110443252935402083392267496754343476687025803043029350701070728733788884324182734486195334793859194825327298439234866791062445416263244619992760645790907594741291908766464404906105215202965955434155095829601807343332205857963080956961311774393883433374194382751197234421067023596604915507606499182213089200811723147553767903992757511627428933535595097441549478851962475645829402123189957816129527408319567211010022501273516691544255448535501763368097828284479391426048239330308520987428895073109437841707079192313759356164231294929986945154467210945461552209567467426789555842163314914332359334364404701688909718654804912767053522968277312414123174229550059801838646089465847901292526319903298616802018071302664038107176667752067596800083970294991616032944240111971465647009945169427228529129662638165992965972223523240274103965438031415774875406595599929437309735621844774997389305024614500207184077760854388085189768554571494883704240373071145853173964659008062399660080221137561228928441665494196478550586857063307995393459814431052894780956823836774605735508823311808244802388752017261401913658005342804311971908934089620395455430412127005698686362183534336268222707592939331658931130281278903085956266718863285491223013941690738013659669514963950651908228452666368816001874971375078779068673976455531652128847573337833843622421608889267447294356111876517670151525628827588893012645588941052291915178612025517573175460896168339491137684989134205953006258317689449646521672584298386566926230958626459739885142489135525070932591001192773972744454537031034134240539498419618029370425524913188344684178457194154934496460764112278764954138082765280725390699716826392759120385841317689047734346632557514097522424706374486218433909658467780991355725306723997036509898001082119764510822374839896571327741596555760254355464203695353762027006266893039184245673435661003061573638683614277481513621624406849980409079253613823505359200225566061035648431219293404389874126577785773753064205225056334476066235181994108211643821716627839207600962031802542860951869666852287887526710318326256447473115909008380351792558236977989518295224334718033102159109905025612999591099938322699834979728966102073128990428163546087560289814910928092844759849778822529778616762961484186314250595931748494214379216596322096078880669540456777235518168930102281692798553026526844135492514177296829675594118710092387301253854557208458179344789815907392300912386887710567821027092826310927389100388359534970357899462466003139394864726525792473179634532509463290302366326005454023590757846110028142311730542112491528769936564133563988533074450987043657672877588150288610008246399178533924946551572092650463510017745553379397357023683327249561999858288789424475684547072986401468521250483211653791703010790740107244896273396054418491258602223518430664592307696666888389732494271243904889562482856620803483897559757324562154194514919171031391830461550238416903211517706950131359013356167939151315393481312488493030802478816369728187466948289152128711638351006280834742937768112648203860314837553572699116752467148165811486771048317857670505161524256549926875240567602400933777508368558427147014190453332859307808991957980036561234350632554672062532582111489870392986948919683049431386654934412017935938818558948093943479947089165833933532958297181322037375008220143823192719963180755611739217966723904307316212604378253595845551316815662283324485674037550017543793866280557609973521228525581305030686485728048002536170787631572232616494757607032572227665717057352382104184303778195826568973535938068597632619931010267804446974877992534476156359157727104070699409452319296330369913302748119068310239536536400984190321328361140501155288990339691247557364315504312124814042577953566689392963552959418889116201022047393678535842019365345930453073611721517885932583626529479945887264529695650421272867474212182736523177174088036990882292468112225174880444180707993184273174393385598299599426037080136018110784454819789868181687432703947893949134334535433355531191698524936717849340935832849874807445436746153320263014489926041605608047649462825783955183374133621278243695739272355353019641577928576385440773747544879164969440009810952530940580721649217350423658688300905666047502315253851657596730041801823142956240216202517216946173835624474392136090496575522352870140449020538327267590239965816662269653191468854704037172214028554019442137841054211337872826806126614152545810118800596041244487070379791629723220317459814503141825081537816445567967367911353299369318676297412962068065561980332507598061244940637628715819755399528575006995566169134155540130297473852618449505232653823877122992492388133586472294976533869336410079741336128687248220503429228536084160213975692172796818079836175972996332032797327862163715485773064004612347612795087545714550832018163625955682139864683798499638499230064437367247056059297914283388014955096633800160850712620572500462057840363037014574969953881546571779591185715130503058019091917506964755273321910474709949556661964060145986832381026325156399454982926321328010537160246884214517745699438776380382603125203401156328726775037442863082419063468237086485922916412117131073483535584329570793298675106059183678899991394332626767983615145631164127176400939727771168927744960264473139864707902106198787867653500773222541706620868433757225741270806072486184068192117435056242830972404982282932105292932678123013922122532550553925114418323841799843299121845548759315986017502794775534434206019294454813387354462752057503855552482164581718933275084209429660738142360561564848512016637211489094514671668093088868187159377672416509796583758351398238935811222123900510896625402328325006900180395409239217094851407080125870753706777539437988377589356296560856790374302969832661094377439583214145549941642786409311053274686726134686065829305906036700318526344962352561997578715314198732040673881129106495812647763976336027510303114853261404555505994584685414756471603868221873267842255060489640578020907426276095289414665441575037079006284110243715440803798747722821698625832254922658587506378309260397664568465268828016493099319250927346673514809577872279708391762849097876342002813738693241096153321178282453775108510428745286817247541059328628386938740283423793190420425985633286404040900104814082463516534544208024993404157574104111265886179686369901938701141913635238221768646881217259060928944456709171461211381670587886143160626378207910650674397031214291379904081157696746677377666632902334076889038427962114039493581972865872612148026295680070969413311106686484947941943343029050272555127920681023454967557378926266020992700036999058287587401563282660813707475381690493863933182655991418567252742416620707590177634572789143057699013774801756573986907624547171200250813936017883339624637759558314634127875448611314906738033236372168424507141882458967598969740846617684158168317317827873973922109879139866431996995076750803218289132756910847456190065011531306777329258356149261421323771637682320921393010024616794397463788629587145218653874041823558591551081819930584317584219300666212405501215434153357286407832692719955369687331721358849671222013785346679492467885005036722016756237461180877814941629722333651273653790405498255752981380845056176544959950104780872296555868986053184009185557315400601297210213847983681036571063085074437792570938876527876393624074486430757253553915463522220535646888536617598033771430280054844684514708894659150590076690956890373155819910264736622184068880200493830811377525400206643468297957437755214283570516305193689002283909749590407817763059258147910722670409432153774700202891839684702888481186297720239721089879146350578281650545816125194506593177235994139223768817605226686450654502641813206069137998013102184168593432714980020822488064062893636265272809211681614806608592777605673915112306629548318686564295083294196484354642196265458498509236459077448973509922487186317641264378373332789073011389521397930062008070035369233542491467838072566247830929580382899973392123148568900389030129858409139567141874894265335644471080268385499861332351121660014402747443331890618923298653389076745997429636269503798080842610054988533853157425721179948175596745590654507458524965346897115195922412484704730820289882859154079086257964073922357595823687952315994039081493193348288618928628580674476050145013275506809980076130801191877291241005591389702401877670832681575722079444240032423115746952130663987163385457001677776826853180218601656312220525430713202284690747050163809489931461430927198203566551855757001873679674299359161735937095437560038443217729816198634427320015602745001894938477038530048137881700037590478736411476503123028973799725174541864411212675361381734696547563562052048712922252236976604647640448087249626668819778911069166720586425992380559870602295080039223483186612442587091049360264534858135137313675320472408571583208399849783396296253985004877965013855646712792849513993434741677508749791293577245086734752426751122334091390356793080481511858406440688269547236847462483427788598245341146494225991776206995968211494602578337433548625639018141797569591196710250424146974800732098689796630838915281629097005582281488456009378831638728490393553532741861979679803845705526137487559898679541006170387328494960191799386034354958805283468170368576271690144437279385654989798725330427041321036915558256018494646837302685497639592021614998784893859355112823454189847884823842245501822807071824221539381536553302994395467610013901841577633153996376867846886523036416317190887785697565551033930565481724972040957843132182692513924187799460077989728700519518892811567404999113889756285372020333211448190228491992545120629078723582153590755135966867682735210298875696493664158103151356804265742537111417036352433612607795498316834862185780721010576129051445103070479965505544854634078274969561788434391598709658764593960420880075789929858436931423942832046482071882967621132367940110748133702195693677403027472536295022497520544550096712401003588325122569086504192759980258641433069251781735433039359965047044316938853068495118035430219652640680020930729364054308778503173278035380696326617665775901195611018862259564478970026046980243418804674630782641622932057454463649274781526241946629313619682480808671226288785930685194546796348865076670527123839297934484426176413366939077758602617691768469758091881877336459991461930526130458667086539792135517047662626497961033318949486329238893331851825247381483630949869477793217847765102001749230332970900351644480493383985783959418956342260379548303700890772707395018915928293575484081022556309123025861807372258258746524675239215360755600945733201690434147481632454272233475573656406489072311424460734577866819613319326104399993257323316118620236839971393667055820513140490688448249757860699445002829145709941438053020834041102095923171908362272538234821543252927160700324771729828949818008542721698662126493138570632431715778728340348481630159318062904325867564939657252541028552799280395137467628864821751104273173681329504392561051151052398050156298479761980828762543900774994007753660109689181649749769699364026605917394515063725485482111056511833556160425802561968834903216343614849524119137398879176949602626265947742476909024685514509703761552615855941476080505121438850111239913958100767655219370831177971848218842566360152712168261289099171277250489682870646523387961879018614564462354899542834889808112474048393616958629253098918366294068638574045763336582949256890817667366239403754388884470389379821861251704409768700076067129139444184290591225593504397479104339530999352492976828521339781925948127974257671942642478958915610702623458247706140795670765649386297119943926479459969371822897498964473653888565773945365184323961341935634802442792442350547929933231302917464426835206857195162213657962956727181386290057566253628356070627082195326751610868401347096723846970098523054691375111011025306785199055485739942794989764496692438779046710623692904390684543601328949463090058523425957152074321454110714703667426852649089835375486143478476108578757769410761396493684892442010871068528266375715605437903276450942577756828904358757287229079803906107388056793217691388014465098953009080822862990294958084195309693880725203312560895428757315815029115408850626074726155328831660468648954490270975350616293012381615750802913631817088439014142668246286915922215255911876820624195502425562105186629255833679599738939873372158512807462691303564031268428301555946197639311963004286679007563435085562739078690429148986000827657834711750685180220955995152762218614948119287050333444594770355731741137752621486864218395500353364353325069247179562261940446993799118134182500076911379984511377699838863792892050916613055615193698252975387583267063883564742831547119536995760393060022323866102120448510514858940718343172951078645430852654352139573541606074656379713723996949996620461522549902715377980433051919450491997655288062955708924819811390621288681199526112784048609747983374453074360946273220245694872461122026131788761048386742788455428337921059242768305027745085812524193463905653835148980566414464849997226696382836326320252620063956028961628728436217081661498902280863138657010984412160015221800417101308199213454607515245031786260061115569918076236607700130141853458599439815111478992874651245044194661039499541778545236364116354530853201048968529252303630341468351578665072523659666795029643262529251012533656807309605222049650583423724826340707472772921218775102854132294074151993902776084019725358080932415755634275224489372942533530883293454116135948273406088131506767294597041390115855079892461524797611354642226943265888965386247179787438787710890940274594190019214847804906661727416112393826011186054691117819661640106568522783011247120792424829869877323351971590333421343421739169245863050468855248216837937984359762408763411090451973047589840265958728274672562662755513242507656473475786063154178614023190117477430107433748240284773775314063782968969186565275795514299720152822820512838598453174990837652447556559384153418464723488217690200336141046501781364463482566804266219491614732363457570952374870420537052663399069834608819181778019854747033556595960989305430119923580631493378652862200137981764476942281888374711515623968271347126772832291250652542450798344778271339714424569658903541313631551661958613255176543470100342704259466541247705475595849437046508458060467299764911470176336696301363361614575898096314617457121528313874822474014214821544775598213458838008028831523907082994920565581711126457408644281116484352031705473397915510857447628828991984982653538095982872262709713580217378793875576022215294604881244550044230756733673973525505997571164837461508058651560938129329584263931342378336657693946124448147138832469838557107204657964862436951577814301104648052596279182049176694372585093513478029102536806195278416350967072215227492703236910099910300412764074274174622643167161101158931407428677672205552366562412417717006414480342507442311773644275019377234910432016410586527616489873008956589516168190287374286880640813011426607176563248816604849378083163234911956446640570394541859111381248295954205135120798607785712900025670125475718980762575378976155441295977731149184139417349681402034358739262868712248061458608117644277983736226533538376599233427062993297848261674151172098337442412257153092354977747857195734037588004553663099544223193648040348112708989409308834031515162453981255442816239190746273307366878359153903070193392032051123879976607069963269675154710435265024077543168410730731427798450388351607734176271007204724544180960575866978006192665122137112755074331032889537339246356306558683716604203659528376687231555721152164982573722825575225372437021414583840623705240690644599638048567381930929116552824519142832135735133817363825583092682855137542070367226609814460887791803083549139292328995665715816393615861966630767977508260409143554058587403234355955267005569691992533438567617509960397525073627477659679314468614117769022698880255256434499221141188284153825098592749276553768033225882446849598048522354723921027328197861501496532932192431689631077889081685232896111125221926031455923100133275383109613982478218613419760273788194741610618603301850897025292796811876307035019138382800626773597834596660922764429130533481987567708156044978071624345544600539464241038391439065386378385025707944173098488387422552255999906131731558765327454433570866107827338066049778203710145811895247723555049644329111647724359892779353790184788260016746161347092824872571988879099907552908959978603498421246374251874954535822930709292845560859958791586287720656087093922152853240565585554602279327252154547058664418290560612053752811845961167393287728711065666125840814745061983044421497269804829303993081759446984717034561119559627339047344581967348454985837858666081619923218787809088844878879878502449873967634134715758845708278501165246548620654453743614707609745294927815356963440436893121511483405639944815662566559117160683846949348538767956838402593971910918665786446374864449333081556927233448967320794707693065264320090767146321964745954524574667320320939170294776142585098697960394697160415242684333961346288795836266209444031808210036355602429548105239305385374598694791454341639595745996836389818790350605821228458326323408905084777281522058123184458258121532976579507333387277478881687929531218987440389769987416354357615192875338699390354911087780784567132493445117098674892446806347805005053950231751720554792803237403328377555378451154745699967675595019587740800254062292280030767123892737735129036083632377068568059459451881806747664933280579285888035385986051645972223242500910269970484310408970371972132251138275931464177298709530824746507784321993596081335853306819992594148947411640361996211584757721566647098041693587095464745927317198654694575223732069807339899931642241432898013881814860524669245112068779693202409972523889929588754990800234651489827260993667717011799336561387339717829107583765377228635058714734944618262996688096360486551191155343394545295276215612471806323138025178573774506631046302004721671014717537905657317561599937409049701294841194623803711435366053838743314677909082639250238666232240459817452890044865492134761092509795542136625261344895607040271781255028160304818184638801034620558612439035597190118363580671164732774531556974234798899202583243859401751917038037624299246142708068961252987133242015682991231723007103282591093271180521969788887857526892504337029753687941754701751889241326191208793880780801532342989381483216957898801312223338740424571291270467896017187243916381367710273428913834806280198382156318451133478574630323688958594553134323138844848246988867062206502742120892079612096518395023101202278588920244658905853493783297999039644901180587785829234228540969469831893475536340981384265600883577623257319917804629182104722557672252459185360385089914564135484952307287841876012157274690259296504311789460481861012604814867429560049697492211258315836149582473154988898184811021984403853205811743619808235684412218553275699213263724902481730783901843809902442890761789453270621786240839943965973504895142077644219656142390949975246275087872561464165863274714352327301711864332517117531594187970166703166111539538568631062386514624958359303939995672515395358909347490045144054240273524964713982671884719084367123911440573106287811996815620970577061977107650365821794631547331022468496406043223654823754226774398339805461739548401347300402166813887295198671427669993425719506132287734681528068292351323221527587278266391125427793372038728226399628237980111063412943112660935169313966771843587952212181771279788658949947918704972344674572463447225787920699481406731078926650064850114745865541962845301952281203755760647681741752991408113136531537165983456145615890883539673082638406703505797423046500607385543588900821201956060177459268079925954125104693192836321434160559615564812151118702545404295554398118680636709921729858209715837409153463644849685876681443751419606070441357475687080000040981260581489655129821300087778747570170764703429654455556668037547292212014058872404065958875488577024718183269229443076412219715713856581713257909230607293348624014753536895531120070364793007542160870621766690576954855351501055760972488254070400318558734765010479305445182828239286647794303560816965584369003718543947454406168138184283899541041772289170781667002071666831001937309222555753881615264902292879465856445474393304203702489389786065858485523765461898115513329204351790259671559599117092041140055950745058999064803200121880396580210688244922956714631243622833449369072729158348554798075397335590374140939059181783899831947965041895660229723713433335399450406707915478122549304540094219813806166050471889484273561885930542092713845996259809710251833396843029925809002472130421640266087680634472485276210711734879182920737343961698669721649702064644105182841107762037093921663282966343543819765236356315391780073961813727605744075203058779194600909853253134182234532266181862008114537330548244589734814295270230818272384720761105373979901099900229781110326622985863674928614163032643731319594565133872764134985152648200976087253485470612439004807184302147276345956925944693917157216097366561524395714578124351805967263899069339423575455237284923006764530767689923254055007537336399915371964869946689287389117083534772870519101373868598718336685617014622089699928055922200534992180815348815707736172248322958649491686074346411042078670158551486734186706352292005529431702902030674606543491566742779543358631478216857593441458890002778764502010659353266138890911105281069363864891663824137035519617800764384375192287746745079913786786202291547688633875899401963531116233209873801991289394194872075333144425215887714855349941519467050679752068361430709461128532864901645987158034778613815296974063284713367736524837781010700598552204608178588125643748108396043488600683865400265227586969314526753043409407252115406212687060183389520440850872870366414418994712684937884759102607034998722008966293342701586229509579635988025933252689874088011530504799132923713002801345061217675309695516903538775643694102330616874841048642758421588554248944503684129855051554445812317556688859995454569340984677115210918481034921861273634193865372330960618873425200158757215920395810916720199871133044883387712602040089579212141252819671909532602731102223974048041046826305030862454015250634168553650610955537091843424032523520786737413662477503389610216570653771714930895138148236281776539313355945642173499654303999866734830673145236716198904435441878201356689466437823986026935322398425002119633525767989333388176243284002908481814757460640170347130283470956568646707211369290949718582329515544546277670751228977650301199726556783493240001193353003614057088075398687284584730868971975973027578184747000320476703987598411209836077654451042517218775998171851802338747983139655403841868313271130035476428955395398616781017495282328517431176688769655296624002474538829532582962672517000077560168327146623562186138799440432830970235159088158108527334211912049745101679998045051784704373915753530035299728527050078401234459282246550460248512607694521552961527837218291518038404327007181597522290013927844388401906098488428301321202761143561708788390190031289172582556176958143593297670917155909929149103494893253005957525851413648570756083989139564726899117952255793816728783206856679667558958645508379473578114654789456728844708290363414334511398617785087621009007725417015509359127255809041202000373007173541852251075002144967960797169654769054797054899713720969786767261064778842569124795235218944575730573138595521157939641087916844693131037776980181524301087495572282491945222739640342428888579507640467276464989074560878286189113436036951620413730439922831559319969753782798829648821763864143255841624487221663776701976743605614178679021884244831665092159786617271690415915515183787815053916392246839709744668901471941746220077931342175329659190993860087238058320334943925222997344659565055654070675878786458963622679155905636935822641387825621821286466133067290302493471494959120755448276962023271494303268194823172986136280111616957122250097066146380912374593740942458817835847689304891144230766864742049478164196720366602740758520290903059038118548924825051135531011085410804254168044724399201811874201715715268025755667986081549162029142781314577246374629439159568460002671639802717187672036414156713018277788006809200712891211195771948293393936083921010330669392195515787900158454520685161558103757947754363964810614005755630137139148786334252097856712283877362132462284002251191330634941589662506048614987098770619972458362753392659639048174031495366082182200240979596500731023587975230928870817373035763567218339733864491184768210156390832179179819955097042485210216418038270186517141119767488235384103282418124939927141666511633438132949029659533994888948871602414653127863953155751413613372486685141553097131113459599773049443343719639073382126178323410781115731752020309307835135286825729094242787488346034150228980521117066901679339238414998195249577150965804106770050997019805288492817422625547357595780286427804380806747904630549718125921059318862974079272471033417297677650269210120345416717617684203441559703868788314483034984893362074980661874039200351543017326004537902147426092297768480092281973462049123169116568891601389191320821493973886791970590853195647899175487151414235188674517788260132993897249098310743586496651581194855435035586923457626599898323004595563097264689794261302229576289671279062510772093837174397454077427235693450065152264397594534477635827507588706338520111324878772175044063947893805900899656794474281901559060003556606644915067765841872988001206280608980815886670715250922644689030387438293434131830461620616966967919039140232369243059849891795068670728084417689393377184905045958786363597207461812584432589146404597153492719722571589932167368088836365611471812849160235538689652510125101233522877046883563694461062568922147066097473955940785730128402471736954126746360713478731695523512279971902666967165975381749155512255679165446450843200161976917438868629606791812641965736759318282293751086928319855900645223528246144442409706080163863956427471365493248711432710639370719348113794264636100061765536270722689080882723873554076070918558171296298018899423048211300233618855464504402914403415043042782172013297786129620247240428528646537034230235308280328156222543343102072994253205803613066427111344552320425208111923327970377995589807671458983063944162347017489589640266759606508585966145105605330863300057269679656327505357877627760383244228638995401621561805171377869586544651410303043084192271332979229446202155463582637184781866755921750875595104084757154976239151858089354452078855015154100211784570536794957031791656115614392759427637505969585537783047227612587555756151359083331862738554004097514951030908381378616312814872951951420973235654535798483705285219169872464231347121567468371967036876159649694247248022227057145056385092937491113644655965437654690692132794881261629042844267519138907086547473281342129622531062913987408333316901415485890756601674393264748097884846942382409791572472815933578672163984970737957586977768294492851325922493626464973974021330552627320900669094051475248395953010607398002092755562105897540213531410132838435583738095769062639237506714280296298726740770113808676166245009782192961053536527840375203499661749995161067661715482843106555861399738580154523613531358910676242095887044785732351057668930520816248026869241280359426733442468849111437471753527118042390568790688711899879285587310913688681915610383212930577906217665084821894245979245271724752354794714347125533300104896794015144953867664467212237010981807579937469296964480762429675509167595551837351394427117826837979616684295860282176137861016616320167568272364943839068505393891804774272126410713624982964725479290650775595812622757295452403169370402554524074073759922224284446545896857389162174175269003347484854198291822978482907800982206449459754347886105456102535135710507593863252609921619853817710548390886680489647075158882506131318626052304679124890219366089922971268858621791576659947756852822507255190110767931146594254094346687258122285786765852330054013156399747362794516177806050482074504542448280928637648291382141080271041691260323075240941459694021921625124685386261791950481091752579246898147624986088707414402975615566634782009291088567705969596401930720639656161339378182612925620311507825920337326895698153255349044586897621394694792521391669523393679937438392071785755832969198715762857789503882206623948185942934962045157149864106516486368335465404453585391502420446111602235054082953880724052176424412471602249829438508090179640450323588146797502751911707586836179995398964820945069307666083245141222985447478312797815538210596637876028153409760534379061545961215037273312256903343065231746374631418713971085435956589068235311516218254305284930766806078804836875983261798728641042787195986708858451168195875833900891225807685299606754892596852023318608740341102230177625016805354292177180827506785757664497222994924679393282824844625288359425487409591050959463227972675800883148477981270658385978064621615343798958488440822697956849375530505915653187284523880972993943016134930797945698909673390230904264139441286734194515519706629430054971806040024184685450405385409066148289369442502431239445603478031036658853610200477799615101667870426015909256236511442318076286878781679469403989805283263930755612063187868453997642625259472690117297599883944416750844090809823077305992776541089320287148622349682965918600290267623313354605742861470752592159162218851656944856986669314015995680212243798662280311968046402932906831193758169173282240207853506414793703805024858412213352802846364508181366064925869735392329231873920781992502823695805879034423420748387568262735995345149104563651023723419558615141143041489272745300665647415911104512878424893453136482608551370689251519723070046841363278153488434035758186330266415937762283279461558550551347147513087319536207163573503591904183581907944084515560753055533395468938034769460878694810870261653979906254271747820826287612085246263096433355073028162681445916768370009511125433741592835909208449279190589642651365317278641189722185768468220262852518025654808750466906776094879013120460252521125548177078173715606135585706807419210047207703102736310347642001100089926472084247015021091363001790977879031240320575910243075338731425352975421475302541320535631061534230936805593720590181461466920094633472279960196631102708019495285026828873949127115640141002643994436748937150020014829482631031085318692907507736060131895804026418364888367040972665755322441782181769899805098660602541500731976408507517526943705667505779158720537711238412187558428206751236441521394719894085030110688583738496131806123689037497490568019736463584553271857603299000675974861646766658850873471626551098729479440306338874962264954293168176231055071560778542705448946590941460699871503423763879920633173831166702423608727185671065132308088897087248995566543176994904186077312991621497955770586654525060041768210348006500139460467344985835850839023510034899242077505290097810122829272827466408452453604057781573386983395448795042900756318078782923113430739342617428273894692514506073084313514448724824352333032232703455355669282762719451489707253264783788983564406729208811599158042706393488618549164868325746375414182631556759653744467328960144813174716562939306240332823857785226848321703335947173025204195676070584566939688613689724706502303140406139355606627591820090490537176998869269922054940918310029849909055373527429355271062559704136326569294364550374779894851266901904505641546158410763522110693047714260135133668552346449796823367295016683649981372584734501930516442199210930909024085834963696732862061457135921611693520577218297742384582887063464071500909046810841162606278127802473093577353375239360111310285088158649062796204039759373527699898875502361210861699709620321103626056603275544475699728479709173771796747758611061190499337572662097118446125410687532323005139933987411840563922473836573146153896202192887958118555540117541389824045954702980397794895041405141049354431777572479592592170030207686137461560696341220520246792051888571400733454190430206354329713382146053750834467700263836450919587519067391171679113557420201320269875951801154231604668853970454946517477454454917091086257432790449114114583937195840255407926028281826939278184357329235356908600720313950440753233067617587063474488786831824384522866996030374426506360289414937009292855040619604570454678266890829251765109570001174026568996295957019310632441232042453357889503168760495020392895046239370271694206050694041355024964692283923957790938001619773577746131387160691013102419933940926312181824789095506065113931070138461341371710127950131748747987251956951954315436633392114231983187866135210762253037176065129108374096616777429157803487787240603714208079255171920572527777628232674789385170404304243409002716929145556807051355137998684224580245511358817378092030532243930953475353232905091781972425998300471953308024940507443711698870976362465458158390059822626368769562285719080848146885803500588218667661359260710372702564411681910386680213108339739519883044931197449823863531595032257545662292343550839411572262646464534653590163708081427898398941728691179820250052249511012238277699247221831864981171238375597680327350779744850032439365951802525358481300069860109629865747857053848593134785792321808184051495546550411603938485379074631605800486697572968292968738958358722433068427878675107787546908135613077112273363345485180744624975965516778339939605267228058056428387658893600211505707354974046556751907578184578590953944619348616980218198641290713144978409008698004219644447818769090842945853672835717542846918196708990989645785689481665984674581547173482267307903848681300920152978479545331035318482849973571253943680411559994043960895646768145358293995069706414451119555675602307948034381506686526727744319488736954180869495040483582946920431555508759620222286155753283249297571838733301145635875256073824329506879057503043351604256165264206191284220156961555536919271013699835033349862874177684530923528996882476447594272828353649661453762138864881133439536091425741342254794258472513589927260648900767543860910955500318550184393810027947850663342578809154511314490640907458541284334008472149998669326689043512213759289847426410364227478315563226236806689985365432574967053221357325365185670693799288669481897053646752265710512585375011663783114695985734266662349498965896449379203125143707390263954176495333796683497226362163534708882441838212779056007817702750574667793273305611497030922759657028171782119424969291845761800206335130604020181972786368691260733691176628079483324652890713673944428027633876175226418213930970008348761552433399459861343298344607471085446405618606414954429739022142822154941469114807695646308671046767915875232639270644672369754986776087558568423430907294426060776218242088800484596699492738243146967435143355655433502255564330575054772602497788688519145740220171453057346456873181196320979504579231710341529144152260322269498704740034533018620472923775727452130245345455824980913399161535916490197341205139134430826374114913566322213513387020602230525089712981341704062989337683102951981613838177888272691806906943894444706990779007185093526038031659490160259037486328739672657438695215154900642722022251154085193700137355358159979626906588120019231976121273884187657292841841590169881871754754497383580755249232366500023094739514638169197157739106734593862781485426079531576021066839873969228455288555600182877599166106028038664396419187417929916503449647192388477074192798936834429389001609404811493275335410793882417280850733949006811277852767418910713068525681458223876704627910049133770689141905448983684894414401394292174592256900676600491887442129483904684883276123460845975378307865178964985689873238378078405260933736516701438628555348209587652649857930567608979334277882195075796551937541740768952887027856328959890663389841913538101186439525129174084219448834921456454096718373988899018458460600849182614310799283515889516139455548826328239544195500437933174466336354576820245868754322522266119260870461951323854404264209569502843271806003482623710791263697920871093821850950456521297826972789625822252393695188216429941625728810860390326533981461369260074731919851038356083593595160447336594203757886715391045912737726943643340408360651892418711737109515468391028700663299489492061149439714780096138041808571692414093793166940818539720524185129557062548688066060679103002109938972343920301260415920572648375831851343358215258580921608277880228183169162413587310437793173720216958835260683198828613833171124843437232764461970507845251034870883581259992546400744792297296336106224549102995091217450922330990051787768308486020298626768700545870961584235569256369199772487131187341370387852233408589364770901122204633435601407523112356735344131498803294900307277219431206315271837142903296940731095039017770639200321779544715369289587333879641149700699940984658593203599715983698381932344170118165202537083991573440036149651832219214034421425170166554453934079589817815405437064452340364838489646890232156802292324316214864333455595631975804999392809963966317914740979709736844556608789110448270035440043415212854306654762803513422449413027886044019086653664996961941721094141094005233756402456462746993837054281764105502783015771060066739836673621896384367533319408801154230195026565551665235142222135780569862096819226372144191248746608624142690823687682526422432421791696440222317176044884663357349277595686201092130090711614726747196657461141029174804976697404843212228124628536131371221434156945314323435298445437344945230019377344620320995599551875243044719435624965244755229555735599085176454077025709045725304426145490393791755821481999266434643716718975376847210639833190978782361599328006605106619575154847179521346882305382848585124796031165015004741948949813714536076459143629351728910272490726993307898737606359695885768481708080096735808924733255127313878026051676538445080467252442606951878215165875635881972787985465556388477703245648684806581165238723663519944338721342441103172756097196459399468838121683653627020281905926250306353958822153004178292624797999840202300915113779167374671248218917523193438029430532969528359817023534299493017266401837261245270572379328545468869492271866602877232548458958048878566125020669335490771434867836395027297396615981471271886148832398342792213417722677607753850584824669983953156179475523580000949552849627566428343845629279297611158477658679198524200023170088056114823772846216354308700184922107357512063690264479669794247737015993398912145950415498152589977153573018996360059292250869452085061806703918374232116531318848786427010426040088586976880040973306410341110096935242828392256471060506130144505019023045770091360735603952389421088843649680072327892449714772242317981751043583704119311897067697771864450373096707732976685834452268562293371871590581381082912219084971216569000851234802293034226302586044034563468482511586715941077043070000357444961872411855039225086329087207331249319277560251650349238464556321318731510705480615330051568842389090296887793868848522684265924106187285144250347212427174488713224819606026537050770876301307038819310794129987267751198659464195109582049049998184502178968722344051773534702757330902987066002151287155308498624400861494509089857986883983543944202773353770948711434859545424381976678839683943343706572639706470097255799079937404304891060773894460078912723876690900655084740072662236279518943684280252958622670787248475688233749950161964578328512054637980708676862684293849209990600660565057875816968628385143812504761217090824440805178204685925125889304346601965225571272288231497768076212364903840699850366697636319841112554386979761569577795834980646960552381596138983466484820687592686036168732928506034730225627534730938386453006568961246704643911585372230820320405687221931313901235447250357151251065499997891915898813308990338265765453157817197507413077618931114680893128265836484442270210657677563248106443779582575225233945874288911943182686948909851120625036606986071588049378645429871591893128256057664753352322180170973814153517005712418734332999785253091948713104551758840809804188345593681593231516087356177956302240930525457101352867327382692595479304773429305849361961190215407962361908477820953210811916201915631243583951016763661080547047602162006165418788414862072169543699374181373605328115336097060350527835710406136676937368227102164342928258857760379805027049623458966479435590732704393930765577811663912681361571741876990239767654220145610506741798884712099186370445483214981314227072884760090211196799495064125570013470853175894753172624423454603015897797527991123381037294928671549021059797879384784960962000532474826627080583535283259915542329318072405506138299416204008565925048426940141817253670854438055443721091678228065240591866363534827787398248069152503145857648870811963178446841407298422602777175414460020242900621046067761955852382781811855247311720031466990552889370978072326802108873154706658941741737490642910181675671900738922076258491451595901851068648313458324994870453419147818674365618402404898078314726617957677926092272022978859744355138995366301859406419353711120485694020645363805574541483252464248220965779095528153841074783050279069853743607591661737746307365881992649889423360658608993855601775239748252150676590386308153048526784932000357815706559928143698732587203371534448697244284661483757763618337399473960016116470580703350585847072924304094764731219898673170320353410248200797141041354024990116628914046888833046489414236467787160045325363639640312101349818381828694710049482793450441128515432681846588515496540542080904265107326605232913493131992136235394783483563638249056799820067705989000058474901538442441657326272970122404850869867921035409065662044552391276055415075197321624304311181368919275652614582503600044051873613172965858565595828877582417471264953092800955099905780204527678724522744909759767088844065531982865128061208494964073001755092001699660706161470357392368463476212294630010116854020804325596167515463538151527436820042880913054201704689291342815060228801804807216212337178533342575401116430041040224474182225387005036695879455033188197254857565065595705620654265430363434968921840187592913154839221455548385114517027539573522442441875428907829252733926948164965548781734363009676853850538356105573833181309372434128640095865505226762294588232714344645554629874295695213028144983835036391346385860437072254600730482768212375793134295864256495933334960198275543474690259273639631828928197151734174136559685241498171512670255166449709971571173704287885059366028079484843897295360004343530954819994340446265350029333366746035997596806880381209708861885681024118813828549576787377429656895718816667377264186034720168723719560394746208955779879455338869774382066591447988887208789527411403053694587503503220191886534748863149530654799372762580638378419128257643561623747488266608083136053601218480076553483502956258561147772638603765695587476845093401156782439660137855230095597525508201771518598894792313088876396166566530591257886382146289047566309598930530350201454220038991210694601881338890313599611599112342895139352790490034636588432679562939081066658131023821062719859192211399609583918818687450555686340101954369169211102889810717992379864602606660259032827680856188217298249148799281607491334029444969068596453035177143760748237018828883963890091466302993288882526196077432755775926162985656950058388694561028814816612371803854255497688605071458731708178647677383704757883111684291828355495327163482628565042375946067098862214086908841448233409950015901624461235612130150382864171320986452627388684375673470966571394470440979793964720547774225285373170301648230584857201060157270969475046720535243283748591486984733486303168745734712438684535673263392037694751590860217234450828455126493141468324276092173378694650532128963148810054164003117201949353663161319835558158944319372682050757793981522314715726631846157570154323476071213977541680515451708733246444228620802354313460153256721059776462117465852337496395516019117145759028920531335259521983996611177707855182362116328341774759693540367789292745695600707328129118317140707061812752823494622401441672441439574128760166599750066175369012587361137975822968877016729264400732304023097516001519588124281541937345213427039039509050748762765124327005810602405313375580905499112757701395970625672664379046115464341103199325821935879456778767537375091299891107596525843832133349927162539554726153527417811389037053779866614255955337811133483831039019514616797037820362466101065495231900474683810797142154918514534705165712979180420757875525078800058319096890145952516188573596475545325332508263143818048442666149532736539878477325450872213600807617268088117649621223978107698294689486558204060464071380922703773358747162688639122435547910695447286471944276906551353427058240785627699853274590159203232393520698951598626491613731094781180177108414756474780198076709034075387058499009753933378324713178993635964001388934249393495130914661244684940402406918911275496278307904914732206293205697119715407109449894012129979546201039549492495905606493448746502696644371464989407589459221341016291402007218405155289272400442119284220412866913099496097656537001227993548427444631644485472527972356667192352983326134667750421849527869826145577245499406565945480797494060252156520873200138386848135749062677772067925273408014109217745626898772704083937334089061225265808703305344457423883041038534132335902029304509865923815624141679870684304333241156199680071975974023963834839414456682749650199978372507549488536739540063619991603145858427056116045546715685941451669074235387159199071800357698895035788217607382373950799336400765025360518552602953053437488985721701878100952746599711879208911959463680937196726629809713855289171785235545946670985672645060385520179702036798230109664770676425980143811629756714502077374190602825562185857623517232130223206828144616078554563078138502446159074374296341262872783348734301491463575691260403814531201692049152946449450986052224338607438969123209534230125026609593704354220776161757159684091225737672056880604693075254930745796540950314400432255925312969567432678827136355137300146076451054685351851184474835996881193555968569676323199633096760487064993118383127136348890647628669726780947193639592345750079591551419274892760169376863005772949933922602693003882493558381157055718975357582455846330340315913371109644389315936018030005542636019589533973037106432844312841283009302312256263411964531212575628141393077062445140868503301923647749863812997622406752769833364876988641657464312279921274101300419659708500913007578702229317848725429400812837876191446069941094292325807925990794256923667836733233303658679432227611637689546998012179272723219900839780005281394140286130660256973425039787304609280590098616793137864732299866259326817048063386913349387849372465428073527386390899249947313488218855308242673661251199504691513064781390304515345556615174599058039354280301799594007083784926514434205490024966320306840247054734075245504696788685714072269000457050756420843653414546374097392115839194054153123349038982114723563883199016821259492202801451410990829821335486227520732571944138094650219130179087098663518085536754938172390143801372898963981278653610199525859123519858592274258369035061825438769557742311230486456087636498275510738169285507889982155187129825829186287932026521776923773676130517746199985359389479629936797740740183546084191814438319852717823725638573839117484695257667991379051953214178319054370681302199492668291649751414071544309862685103045729886183569857011812844084923762836775275563035951219778454424288357274788347970918475357635312600958489171873187014795874264368899565612498155434094223894649371219954679771393889960934815167532960198476987943364383853955934755247133037597882561466970148014001910171048458620288756829603266040774164922262708305425842470043690329995571147817433323862198113968606098875103962958163049732080419898710305073890741012724325709176257094526480921280950067243704178948172769754834744878754378473372865293338245973010581499065688223644091774565409501831034545291196686388467602997329583806084330895199198372279931766866395670127991808282818630317442269189348349606073011191992262924625126053479101776044568082607824379878334997528749118094850825000247255877204811795121752391899453043650212064610053266743418787714646559441304017127974038287538473914819487899771969392288716870522894631092498319346954502600859791817219093299254380924898173631005961995899221533978407547638340344803094471311771314252480732622385145694201862564370342638233868070283213900898731063017137323228935750299279886288699066637298436675361242963782339229135219645695708399442746254421184557228341931921117585609793347868183819864939743427227964968818770055414747364928303645738985007771911263198086316683237118867971316296085709775660368053111723285848014105590007670810957324809397121759201205924155507693414719801213046113230096584620130979389588444108697355635579316712165465313816440254055271712288868153767066965147125238152132803856604930660794669464761931572409463492620938413935690603288637155009820327392711134741945157809940834075020848306540026637865059940093744979221315024019735345645638565068480555888303492014252421740675294267020662320367961491384122294699711326789572669039370859116567658714920191152342664818532025842757404113006592166491186982570517149285742423953614146249026413787422680812561295601198774442928587847686613437568412870458938968986839681901663653229168228127206637266352705403551617551482081870954681767769913604416952504100490847961282009826176429717607955915552750896451288927201479128130689626682041880401875712436279131088430997969818458244478553286775695368698528441757558943921085506798023464978746214535684183426279735844099972822222037583482415891054637626662391492680563253950670644122872880043054359876708874734470824812480969833079100396488882901531294879969747376685359769447028665776226935927523063701862922786076532419737551061279535999543802866880536899583854122422393171014134300428181768306057253077092720121170583327015252591752576190972808179838698286391421273278384049999207029262015700882887508893204675287993832491995460834476772936180542413474980766063864729705851267002468584529635631018655907104127208590438478331556116684561204717666959647444350197714041821808557137871075743260761134020519646258580985707537598379398019906067049536118344180305192648595733747253703581699015604316513986873686633422605235697872255866417662783415582687393096972341334190963191742366560045882941394705877466080432490409345371932331417610908660481195150374272314002345351043734984604689860958127942248450063089868078312745174907500008933681290937693159971218744521147477443658349233586736815380144752108888796246516639384413262489777209473396724136058215935196422650619445514542842317436378071841103157156074182109910726221550388060677599334029775159086945178472228779579095418128062930603826529615192552007521791894549048297103769249974959986225237901363044869328727028727421633090714859398754160768616911642875287794476888804846425653509327252050065377612198404128645563126005272638635793624781165655686352602052936743586902988252653716232458482274910964118961150420523473689274163558090839078772399528082322523640936603926215446820998340839382683359470759079025766361709755923604896604384977488210549962949376397797473281721334815756223359606871250870678697159582444978647683290815813201350921599147435537123897283729175015687902168632561690753888164137613399156035062258931142496231812287823631533444658925120781616975031800244794777907930023681483010568842095562028450374301905109855391027478400704782089504661453097429954929421984153965233649935694517267335034795861675343785045750485548612196499266597013715171863573171843760170866481566901821893430721951609060248229484870941605682070266077749532486870176446125527903015182479184712370197483113873975657617976806621665811033963851284227169267171866944244253447464109830367429783250199232332971051082081116641108551770539809449334703333601418891226021552237880172338900856908093065900337303415798590702870699140449790752720301282697909864791610243245866185956704383646993395665361226949405624403156405309635016774821642982639515429705635724412651114326360677517602871585187223229967417595547065377220718322781885773798135785807840899803047470644068282210672755891889955262899957233739840456176986600653388158304092191307359647992469588407129385177263251469325829577000900510293780867013243008616626272762539356290484707458566019274779114134924540050836588515279731986575273708154381614394457165950429500807069465531008265081760565196804040298697574326893308334390863201529885596453098266808179299865869521992826938418318013793606757425327791519252101701364829516744969801229887408119328195206755224985678901841473692861143153077641815142505669073893389564248404109528319936380429333192577405491799944976992299514995780643067787392681732465112920112692714567937684267554635625390007728203611066557834698613574128246280873505449883629760309620924977944085802892324222583636403504078316412681501641227591802283420932393769999381867556353808492599687088300420413663025490254638752238214812536219833839487454834447636768763503199644727305075325159907220378293834065598700229847957174521043337991876339788942105795451557978230648737061437359959359960693981281407480091821522660870247424305690962418191944053429263049222639702563444910242475499223940984553584138172206625505153128130846208498607369664410788199912170112731060797944403875722204638825537985483998482927201320082261061898838226826539637854263455309859406207980896360327278035509618562035393225765707374018502102935854177171546741810378701506593351347846636827082110378559193490172725100356227242604496324766033082403058453652350636431733156320533694375096450011826297791732182846499257165260176734834859137524933961333230875408779641341359867658610437220398812893068113499806691031531180268280512981388383694972393585527626525108290260799653677913474549756367097348364933167023279205515268238846827137321789566324677551551077368789637048571677837141127251944173656900230607464579876369550075995183911335203381155424444588648064217587431626199354581002608181446226817650751546229593503077615450175801234051892966175297984690849523419423437523732809632292862751071065735436966924520027427420132129649758556248391419361951850079073491839399080909542381634618256009972210470573799216981814187992736173572878158126172401896099058603520257056496460909252671548699596189775577303383364609453414686476250502144541342063008376350903567689295094696319839105709443086442143407720982079422125805447085270525153164294259224224992382016220389032625125998659155710277488639095887474676046918713393631073359561866719683764376634441847812390650293311135097166443298017456979195085178787802163703410050044657950791688527300296103750278830618021381495351399164185623680417526227490336504552709306126546685800109477337323975444686963260897970566988920103047124242219849708534570793800852923071740314529068004966653974925704951507319955726787142523990665561893066344381348137251812643097003203478086332865114937475586234742240999464725091111453628117014582728200033073625980594261189761041848933082714015412714682828456167940374939278325159976925108458286046479691038943869712274918575485834514510306164142648215772876579874719419075288737462286717850101187209815148041802607992263673654112852239954064497642662660584846607507759992692884106011624026626741675444643357191985531353174312170964136312400476448119712893989087776997996602883566322619308074778047026343639066237998331253726713485648629749561621615888533409358444603147297797545204177367418679733442389158416513318315777452824457484872666783283438875320039328795909753373450407172461604699497749298063600609161142897306416242185876175702451777993484101278728208377517540040986812789467137667407822657036071183898814755056316607596290736821551848351562292439410516298113248116187840719240148536590452367940108256339305710679598439304512046854110028278590354297370748558036799137198266474195111156110936338864068960304799827632215991708150544040122716178149299245458097820837583119230477474827032924808622922197429468632742711088885891278946391469780565285983102268115926967277176430393135454300348291488664150781420850905043731474364810920467605467716324026095943040551948666134261223646340488418851015283373579920517474379085409662248107763574561892613467232778797586293641111688992142519806336094598291663677034079475781979736994076563778003287544801603916690260596113307594472049312975355843126522478803909866359286990154221133295145131946287816772181874163355963468177054569897775870231029925291933343977726452553854543365374392452944162890773080720632007108002707434144386360717455888816627366245638474072534362676404275280934124723686738217106312343515966910544967453860459667590910948964087590685097711168386291097491137776993188151087477625358028575170895317670491670003449453418329974878775135255648723885109520710988106490109231870046908125324686098401607039134929698520319085688588943211636457647418009362140360505952055845752784354746371763541227192581589822511469779330986625822363411454059205991917489512349027563504801055517667800877865895223883717695845532557880453383933326156724702232214067559160569215808778532266357506232272185579448398936370930336488733510004781234950071842995536018144082196394086055020861023919471279579014412157803245568585547121254600365889603048258269597767829752637671287684440156969935126876403794780481865444387272850727028129185544265511433045785128787559412555354703727976221373820611636593564918931130362325930570362554035623304912372892036791883275379418217798423217314933624820280769709560875781821138654857153352075838758614145709984441400352448194519254363472613106829028516721133471155802744432474561702458852160022402627226551271849249618652592854050476442805762426699165111283736551733348906495483308363015847281367853871830346193210338522727140206458684578493365844935011631744729314998621200277688176843199751061100858533711693268264444202030783575136336923765006107347478691680834095305173665902307404840883645036430521649083855072535795523633358345869518704204054529501990103958081808241969675121569149053062726668637558275513237446650349992313885301848151381876229017704458463578838685794245192023062073957335803138227860755813691115876340659659217601144255202009673129269625861767385747756318182768350214429609667825945435198190837918179612773312297236388536137397165291072516942028319110427033793853574800659264693941191055320293475205691690143607433313222255083587581279586554951434828976884403288514536688796980335914014229515125187775672112225881053128440017143288046983869777468383050132322128407514723856238046793414204249086623990530018898522686445884552325267023036011983734808061680400802930054454663580409314465726647360997714910410886563956775025256393757530561105971414778735388803548864823872776324009364135717588330559351968904293343942913163053667417886515862741762095562407869945702454158051340890018770947616042913306399518748504934722450622339915125776635294744329125473513139937018869286554626672753313527013107644748749443916340725305861394201896774530659422087362124868761998511572383761918062018572831276625629736503403892597403950598597085508020032819633004612288758947904809500944361020298241623232838833426958292085083300644394199898382840192737476005255583364038785285242919270691693865049876419478988826669691598362168939989175579687702433808093329726332797503556677995667346740304412523160350673031671251118860815226782250371365470805739380185858955849789003922808925472325417598578542050900126090155981807020822282535367591282224603100421140058845754592771374592693116776150086256697132181744655610775539261663929545101173481790330622812731172739762121117228141595605631201752299395863494433590239350932992139202816184864396187104880846257698869492177303048635211044190034219817902356690804399810596365618512732930398720321838475867158157914201023712539176853090767648039698796264875566157857054366179090252447073101781686607680099631556350735188412706507121304981780996332206465510852268748653955228486252479409456052369197867619489274234108066088336835922925255513747052705658374969825294960702544114500043147666900914778172050835988118257280432224365384235884055444178719919779193523020078268578237832749216389832696086194422593720832875416722570977797158528896009655702470506499624516883104103791064654315299463578531112388923448494106476672219386688917929179584174669042060331894951131114761821917419545532553762754529439004205489585585046273323568775914742822707530495187358483363566263491314082061231657153327195346852323112047569719003035321195372528964538827343094266615103962160620898044770457319099803376643082144101575692932654649658516653830664597494558618987310116504096557028322433706487117137227614321133532201811389643275598810509998548535276517431397277919702519727906500551145172094176563272178928604872090107056586375778982942591382667827355821093148193592345194822469695635589250260750287419895080730744799676192432205669155175028774783615089389260615883159192200809832372444942295708724073827388590537988656857747279162767728558247257268031351198965034007312903068102870857342672368275010845756045111126442461879967912718294861002129969279140077699644218217349242298517904011183848064490879997232446831653049886211093029132737160429182166420544824380327393611185885830076951140436266156302009388100346155050241358668533629773465434498817700469757051875927295161822475700456734391057205556900966037007992820296604974205334772279514582820977243993762224032359315298184110264205509266446150207074443307661719049307540328570420575006162867159176312646462678414640297420171386212616475892278904394839948125109346425517555865098252842636313249753418771033739502834648564101403796931798910042423066162090441367439413039218318583974013209051975546418989418819160456322144226556198057332524468083909562514146677635869751410309482446638617511073634194951815862039181573300604936880397622886779484670519671285548705259699504454292849781748358657516715725099527789792308227169526758431475222776787137583939917121196940661739740663045793534412909818605928289781529149839781743965172768946312112310309272436465465162914845010841958181103912847935526105927221702431759572103022863748173012179457237152306511030112270116069016209655550961523230004127575837793168977140923144012919031652614603128503937235840191043124272494373160548991508572740759196214018695147879963602236752339932333288386290871113882821145983080807688021072505072423394638383068113250775726257231889844015569967461249548685434194136538111624907563703992111381478746091424101318899214545479300292214178449336657517789176833653767414442559202542735980960168454024141540729656306503517913590138573807980094098665675365500857738584594632232881039545425743784817807512201881157586412344803376419180625214426498811459121866061074086527584017414334960944429575858122330639954548942699448987999388180817303634448664552556371988254900936523512313917237172254419918863697914687904822797712441610855998384453689400221426842154949289743717430869006541658474722809246109757992402810874785636098721597245229963254421161105617303136524553573969894203094732281363045145499789802457903977781610590923603461061188071376823405267991780017770532636674431003873041222269374162204114219819666771540550337510061624889157491908188483018035057253220444983201035631134058618769883079995392056878873724750024069941672836620912735724951294822439103348556442428862079174592852808872642238124800076063231391553256905833964120333801562459189840693988522670842704240380229069173179551162665738533302322521420545354769699323689869895427622463739709940404503995718385077693725430282525126114657797638105360999024566899628586236585807228948251697134641547250600754543744726908927385199685811251994666129022745428342589323285069035380420376487642540620846345732757949745322537471817317349556533818060324454528037397824283381511929102029837171151485984021674071512609254595452415854380189880086895696456306362826377648917635783796714339673475741090645296680548939279774931764613260343483165343601956440867368100642105317484587200089241130508228958237596770895944797011101498666848612392720382823392039623452212706847025904967071633196265159014304722474588448171006689685351848350653842634469127939679365594994389630757038042714098805544841206348567823780371155520587003701261134194911472514142644450023433978694954342347545627967855861215061346779515617307616690093895040337681508984619430573722013627611915623464754501766632834879327663517446475829413892684554000916020716330915757415090197510822473581632214014944477959853006403675377511059957369054329827886464600607260837173777693195151217868126051729490993640184126047257788193322823504610207748842889683706840761730777751613017069944100051281080480765221383686534174305521458738745036091583144209644653304680156065707822237219326860357729149383909952485400697207854065035064793536944451654426135689017561259485796489136919101317101907272937217436467045079149472654452138235373537305685597920731309273941313915114739091263301759668041028650641903882572346127154842786692213732906854829017607777391322941369833134478198112362962053140534037677428579769225021827537285173405226646907277895509854630891546664802565895143977640411918806859964966537880652612330662053223762588317935271026589642311262967977266652464366764907224715301600601321866698978646150169084642205774967124358816926083225607729358556368043621010955934906178617040198294586831970319821768427418272380675479365643110165760457187471218161736923096375397831390305276437251032817163373325502655531899361902899880896629597879941140230154539097515075433890426599825070054555763129173555008844513360028340436349481367725512835486796941996601721427440812403359648007274615172107568304437123489229173934001139983382558881557994294367431778500683852649228396082538774326087495617647159531731648255371334320649636401567046678252021619239645603250702103961698312716668664998473328242562807312169847875997483859907590557542664048853220309166048884342783616514455938780825847373113738387995684242292886276933782217019168399560290434936414294873216475798585391438463842240217880012515172360120942716340742509975405877033565346736130678906798338700579723509222391118554211030665572315174886495048718598552018864328078085304756913656155783307483535680439682982520418981905176805448000392807721036261991890698055487118460644922105904747150259508928542280596230507646754844757741369105593641709677741524486000358183834755318633504995554819688860329224395950439826010414493672694068522205427544677110649476307371724449597201829554133965409025751434170023339438006848642767528832172183658822358913444770045900576075882277718363416875144499583793155367355590123200474256431583758668160169086706230878520769269726100097725234317448464399021061941605349195224018672332905844157490535517536755847358154304988108429611493424616268950320158919946948445791704954434451121893486364045073252181885593683142820533538159918705043128558540565241576439566672875393238953798759232702128354987969612209843733063134070609791556648101432080099630728083382322266168668601012163984551491553588392218378188025807201626954091171867944794172669656149657402418013132579709508280160777852763216664426061512219523220289733489285939224893009841125665291684642346206262121093084917908583780324102425585097195981600778954561021394861015318428180982565193077648225959020127577912392448055751206213155313911727181238168872258090691955088807185941621090527509576119992574582001784714933716618608964550114379962196466072166207636392727752660600900012645350063476140534810650002568477120940852664100560656519540173174917255828797683893997502546218066517791938574034912690591865886047737342482925503029449365395661240128227118477178692802099136355088834897056444394342167279141610906592603742150588161060915623807856202740959599229545561520050978584286929249213410054964361517860922493211220604557410652247821828227672381923376894145068959189620431613378279829309413706964082369219515708182917201555648987670676166637664475117802947486862835001567919892271243862651184629624711689672086076116629291892528759637773820918843054360195870110265409652264030252489944248520734628738243932117965175971929374236616895119020929246209426052175789816744417760028994831808712293854153405474087277021415547506289244462543029855535805930953988218588881449796631150979830647089147509107457525074781275440591378475504889783639871460242332492849415913411742447306413725185578541011283610589966220923713794201892569814781118406018995504580152793449352419753557764835981093369591346348643506577116095414824668340664342179912778596290455635023099267291629513859746844855132290336443770647117929078714303916655312355436760317216369268780776661319811374375083455854111300831246262407035896572554645877804514952841610225373931125964959080105702719486728033547489725933122607015334138952759086778877134252645583533593662181045639448101759907345903699918898968666249973849601495441840986421211003494898803335632473284246685991929413403190427846961199984015378447968936796091643987792990493856546677475225062939411943845063630553957808859529738153861082487887605426602453392273619107383655131617051583501768180491652802137675321293451062448448666619004551677806195324361337852148702955111799226578480057121600247530599159781664788611102228320893199018359663136829828960833827531975107426637775772599199787469441571299906394135490363866498871869359420144040843078334429805457017817782592754574755808018292692445823243667860149632658020081499345494957264456824064931217067556255153889319805967103965021603047417401673887455143354925233431586454468766733450394230451892439544142184601066856450740131877000863844599798438658297399303996906063226760235853237552840694621253745287573205963581605689482032820687790222514454956544109107072895974423649820110580742765669762022949529945133850148911276023020068400178090994951721994635585229813398279593492554199800807858803176832832923393225019769541165001842090092606041931250743010550952248876565099613157541025948910698952689838392434038953292043435344442338805950947710287554166580529240677051608777866953890203350136902618202631417585701203129255371955515748491534990225838144856604932243874670577867371373792182573320016090716266191492041355681712156381583134332270228895062870684764820506132994500808624492461534044615859194853048710852157625667572031842884638457517208533931531391279606748120583083728062227707710715877978534124773685615233364554592728042671346495649132480262964585202395071365211890014278985187255046772631443290049449892948294213031207912033206177225553876537566704232688673492855410312713162957987905764873347451204401110337522777017266450891303995567299145859861901781791610478530701372561389337857110290346658061823121916929741408521064473958719096591219163476422922016332647497660151423366719866948435025516112037564878740076567487920746289828076207629299345630415157325314788750812825301352570434706853306236256389608307524295952917112385927890635241556998135498185491854824151824784526607492929468048238337056172357425940940031208087026846170383477175403259811268021924342104390414333628179435586523036845874814192113248100696197542383713680267111850951565831157737006256677194235720688166089243203825808469891905108066164190358583763817266762465628975013994173908533854899370120103523534113687329795730311089091837886857310144408409564180855678588544635662399685949051182380200890099025780237290033834653647319055638025475972262603352559221118377249412108590777209403953222919844252661846307985480260084334487467122885614485008297220357902620452593462422735961320331729581423360139208278385428397069800306410895244959536175604920373026644279036792721295822103544947340413414527637944304582201460940560822426614534793860136315622333646579336055415761399929434261640855728104144453946458898576431673356794549231797343453404830451336523592459084764072829214341173496869106212957080622625743223202321503705041041209155987868174987710590069230609182710422471675661761311799244289837118105551697464766335460901011428840865313620368097912864808834754376619047140079345877557594406288228019555025213711597025231955026164888016498174699312516817039248722717115787438397351783115346961151172471106310416504789280573392238660233147419806738561534701105960388947111584188267913622549084982166564774683569236659265297400844257444592881630968069550924379826302132072740427498853779880088331486067824760484487221273691877721493256227432841996865410497161834742258513776638300525515586665220432229905852393575040637316468463114899771614574863221542962389944772482996183589548522263564755889011760986919941631662757138030517003389624968015151030593296920053820306890135827691041592884745983242522757049047658099769259485200500231804594457496365951462379655253522998482227939494030757874387410555322244858055916763448408016792681990287867573770595684968713606225196477261256654254768297521142478507216580094172804422123459285773676525451607949829791786847962075121620210288099301051544103772294811471981267942262773310821630079393213515437087684190041754682858089893585866655702417757978907767298124218188893198400082329419846891175928855547255664072879286071545704027197105624791112530334339380779803579766492082344614663595328536967699995655192594571208234588584339071764543633574694197745411791398879113043535549265245451058828087273440792063195123126758245285155705566034954105870679065069760496400375265105278667250735568752173328805624642731241886371375957953971066328421215341826123431977151299372078927319373451037771891264357881737155690480697715332012646558995676598852762491831783531754502498659188799697408754464347568093046239200848828268286907307439133967703838201902109472809197179646073081103938323404964643008627503962768329720404344794028040231025463612943746557901573922640196104573770355277066450117702628016504396245265029630719443836230190914273028791005288841293569263892922680460808407828822363801644783702396703961473895785225665789323633330170395629523849783737946871375589834232956081553974825861439385741306005207894034510994046256746162405139486129190122511930108430104988083783868306334139163745609619120573608415484240529355823023761613969817566838991840662891224129687074265108966944455487771507570484989959282680626340563430724393464941817885753617053974304270770890868867011186912471608457373612673480723802851452252292567553308449354150379324866489211652720614307624785383469941360651019706889528413436337220948824327157027450157453137966175697616099728450212127063569688550688164954032116984734898554388508830439000107681508023970265287433450453784534598164608456138256291465925437238379533659208854530585469457070796220932686983204394167554939034333158858750946364211542259119602646048762351156647562400960815694777958083673207804903708730461603592916406767898792010864753955309236760902824938138392581912833478697219355835429054591768343302680344634883314456375248069019176440012630007056118007554246621046128528359089020898263252264949588956224403510331789931990471533127968156423856998052912241428466567449575436058631794390963128304299923359518270092269288049219841626793488098380578014764942163812688180580242988853976057152893198133552331626918353994477949524729886625460256441330462744090680195681334422900573055846747769454228655261041368767926495040112302721943836798913026679732730643758152249740704609533661283912141292994235021818680019584495969721758278195912368284100254569357810323483086690177842385358340973475007695159503570217774283808914418918376078872658528117896095596104204330604685787939756365704768290085184348183084865823530371909187852329311325919099110091385865228941475560342107427078892184571640235662224200781746770556772750351835247511343281403293439734483206921952560357877870980032298519518757414938549849576681801498768539440999415537870337911167185461611440321492493276572738536126043725917986457756577329986635677494129951111582714776804639238157464231858971255549854401228729881024087991233764134480060307272713389357023118046166787710171766474334602304772603469597596517587019437347606726212654541293742769948700892558126888388827894017110073809368694776262664356978784238618331350290299793988080407304150128595187381027948244657859341374048024658201853032778579583937559318185868158895213028522474073661155556758631154727127883994481224304839225111821137663953107361500137542631763249171556813119119927395549320078453795782655053163510897282504068425121045242617757460938544717071049908448377177248778526930022434601810368156796027817382505771952139617872172302796152399199329366311934443656648059857258207968089097699956645619851868371287750869032998345741773868960314817878813257779222236257234502151203963601072627353686400865935074862413501382758878920630580698661882372963341532078280900847759743401812569108290286097675560342846679898914233284709866509128675447296865723665433716064067885670817553798304410916801129595094098392068434116372642248649910670214046080327135777208710730201405345921177030761414520013990301424381292240645133956760551575882632101746300841434517666968398086585306705162341010882360413999495283087493204215784918328334139079765719081883817161349807609014359036556964947101642129150116901717072751103418257557056904746239155279001127666531631251900759587616991412751045064715514245690874174911988494227201584780866774470418851840434216675456661067237131404406358986124170302090635677577396383723299228541596795990610710674596129577529910194268953142762535250566607301456532301487878849338055879902763268943575658747743014384669533741538814867549724981357652413957650062780528684071231120476165388342624206986960620784211671434043544748344063152426727271232029243428099611950846300683476942920869222743654575231591718265899873520921766469743337129625037463490564673409991673960883711462422253895575065988497497865892745715110862422946056083276695308633117448098975930373367227252829713589377988872595412870687317194642635294398314680370464376515675889885316100264265238614490592622505087937471406238898416137750282307729443145599008969090524072366460415862341338409154994242855903135807704604347303079244158051312095003630892715864628427082372490671403326053046883543158983011010283967979520375141421333351199874746272930992789639383494267731608448420722444029728486848968904972889580812595036059832999404717920192538598352374990079069805173169455872752406730579141375438700928181242966528671676305862866822361717702637487819096681676401978904111889919718528281269612372732319049283479208558942206046174882486501035607032388662014878676726252813638797957192349473221102218229291541699570484492819044848886831518909662752693339686273441129316873132919013747115276934049047345831067639448063644097234413335147294723411327021031825301617680327980539262766150767649614342137542893239289826596106808633584541673377266078297421987326453980357857674622696333244032126629370524049323005489525324957625467172704400724624971867663748983819592300324622445186055283985587829551079974756642267149097860680305820815371436815334920615932524027880388841192353736825950254787298340849966169793659996652461468860516296937619474145604332696784640149638453219142424848450511316546769053457155261020075585756602595046198173305802953742378710797929001741517229879910846755188629083224099607191688505982529209917837808436924482298577418542101389191778548724300723226639605535635913915292593945477307093785645394123224111760257006312433445643304234895010389166746597775977097385626736187149908041233298234761109098744408982219231818947962311324205141096192234456039815534135789569811355604747296864263013236025858436600650184356663185756537512097171635446683339397425135075556975778886306206944475391648805147139777485722895191701592976085635764838280765454692807561994457628410104550228940556388359575828806301721622620801445511232993787978044608000364414250006406600072923357043293567668952920274807231991306596181820483499938146653894001189042652662547082530884620278579676274858134899282405871675207183020051053795231246533230426050738207992590760805112419992169083795887652127456585699247764258862806909031830735364519734544815085180515622894173947105681998973483975842240415528316657244772011988833460996725986227473585477848844507987285058359466947655719236050450736143010186059368471141505341845738262017476180319097957503876812027022788134144896989502587415642701720930499172932602091191524549394441324107106901553875578942509069586758416928038510677118555932618797083340401078378422275914830059617580678802264663674464632618822675062171826426686527208758958950445062714922394442768575398779114522443338369204198080250620621549538771846211714807496220005513512457716733999017477997744561735671473038297380580989038723470761866789026424954098768085131640814789164824355282476585165441335185591066512656770805346718325955191643986621084790651371774574491058730476568611915529749270801606180175559441915631978685146900280449876841369745708835706488166837471970718210995937202018776646944820216134336805878612733140192627829183333322953725876199146042809901686877678412575428501647006901038528963243143184989866470088209041107051767998710304600920890854673340564205555048745272790900231345841380712332295832415705999720120781873954234004821935838527611524937829290496549554851118431973976139961716460501152952720276941659927689918648206324594855773424825836699820578921717106549859025934884684720474670326868453933782570034689030704698765713776831920921855598895536618510122439921077982038455513814761396511562327977599876951079340568164454796705241584054275116737579322327923725112145528379703094590789655527772814245732821652529088247821126387802430510419019453099832703193234810559201321261949849754917798064068740547570866783105730843158553120324752554800711736795071257704404414839344517696324400413434696226272509447069543414595851544841779135383769365859682931521715259302576147466498047133779012730111799335664772021597688942703872068695302051072803184821149115672611861018434765870236606255586643224896569195915138689729599523453391111302404693249634585192760287227110694922650978820802524855706546534461520727030972543397186121233515059295109571204944007670064959791932604132247149255591421972948901297254670534702433839881335829482304028667440751583575802314420685838045311070349709802707656734243723086240224835914837821018421716744675698406801870055846595599448484307179202829858737611557922783248626079985246782521402312331167273226388645782059087000190583384204070806124498982454871198293801250809895316467964649000689285143384291207213556731059635487068081420798808763789503720301705809842280778266252817227612474222887007555876247681211091989516574979047007401507005955465222498301263949809936049993162288954117334794131839747222835468107375046954144411859488404453317066420733557299493401106566704317644381171187030635204580982101124575747160591956592378213044781771931130328300795068669780949068362348798683015810250176483193205333013165534451958810207118797800933661899113871147775406602940892253887707162134039568247194548777991320808317881090055100494907501129837758761120168087659176926265526352996212427569004366632447375513047907454248047539627808378729578247944070923604641462244278163815853252333516771416925043223519628225198072212712912615078376777176921150782572539803375811673721003419142115163069270598140917520357666500984125221798553769668799994706967147818284844378797607799499862883475030592862481038167804123173455158591362986727477859623521038702290517822133030265610289954920332465850440835414502946644741757301939984701799174429588011943448651643945550256070288716241830033149955619271160640362933450324863270026899562001418679302565009538549373324806859237147085007524311503151343407707985971983866923040523594787925186697686012192852854211383887442319674475123570036010142101044492933927388896404057397098893481493349984655400082251623575571531814954010594006918454766500808593909501718645434054892713974142897169680906597804403884418015749169190442663413926937241121734822901391938043230207939637219586904063869998817163337552298658749776734904519337355937042834652177662054823726796550400815177562369183390765307528800429989736350709006307608564999846064655188077281295490347514258793550425078851340750140291573187865606228925276812091860864959116167436675852903325383611669907648391840743638752003417774493888717084980511265668021722970427436951585315527999995960563119339435135702149132984610506609204582211641416769362422039062476931269024586524907892900184888701400544750667271057494857537601796574830351920106403006868894434559401475402019206584610308433343686921652254313452853755137735765662116755258495198063126167475020596893443133449483838015158284164604798130312719323824748793537195752934960570114620143051662137035584077811649444925124598182942800033847010269875043424287907399501391195212935039904472690239768665938234249271213300330710109299033743847961115621447990712532124125597944963161263940383792427315911587737702913094703431746448521502398233208883035898158676113833234311339331423075463767619666862359660496766846817839016196739594549278084799320310370040818239176228440779797874492892501249920971105571201070259033568366685964398452114168675926052853963120507977585476351538759798612546975086209443612386640161865951054129352190096032762107271014389382724572326116927425235465095571846808765448845045954448601262063581752214296048537783138203593344885987295828044845499334841308203495735306836007586556369610571806848388727573095074040857543474692140479642254707283091146802605754450509429867112883565775249717293015811302495971091165382559574411932569717026179644310790436906388435829011525816469928450559119206977089300660721355186851747891270964105482695250000536446215054597935905812600504327609629991305843278279873581793701406938533106844497040512658833421554745644719370057128655616655869745320323718341208064191576096952549425381547164517609901205821879101970474671802841339814702579802843505396845419051881231711777439694474008733609293707977892776679001177901627251899283295112189836070086792723658923327857607144835872952496929157082520800672965369556918601242419142796322485303786210694985823393858004273863878742951834403896251766717462795071162373962028113678641973774603341328978254012970459781189004861498631842351706279631910496909485118972145199066888462023755469344028771504606760761614681924062739095115746771083971572311296391791483782866159481343297310853842779865175927964378407249506836706346681317302832029237044134297961869388436390064895532983677967295665954078350778076859279092639518568614770978730646713626546492107815644617781518921087675603014188877406997961571307016900952576752826304910599423938377932541193862735373533887861847905803052418046733545007999746689710262742442459255305549278960884482365535510751425350419259175732462895959141540526220244507944851363909094382466963321323553147854157856662738090869294922708052727866046625405645350134321457389703230609599504564675434900646534673805043628025020084187054532560903933465841880443439062785472679729151587264399790336554157678112217680476216008121573899504158262753722687562252399139306384369047195440322841486160129109876595761627335829348930412414787618068154381208147341207837978225644537937659890935180425964579063193645772072337534396896186844554573225192095829824760922587546619505258906924195555820962886438232303900175517195157743843597507471437201487901677776388003705344915581116960737900084868632637880430516010743186401608513011611052157850035526087826442009160625864793295575765405714825330852201392418509777028831692158335947208328240963573484205963716761375201234715686601653180022735025689538853094060303623623468156684187582951239575840454745613313623138379886674565414376132477118161458288695671907021204336753105077928684649595311698950345156188732642679562295824834718512979031381500699414152638448327135218228579210222308996474174600100833454714859014977397185355270120651234031371742803274459475516565699221017956245930410560566902331468804083194831381214963185440882944646410481117434145017520094663740161060006745754501061178547882171498016871522633869863602952764541962415774091092427698906765384044084998059293801564023865296218661338194478233088085126221290206290823164571559620878344815875638856479236314236215601281631406972614401926391092887434634483435702498220885306448933283364361369972372504541180367545874670752691241038305662637788969539482609503133632234083342251958357368508781773017664802981268020932642259195191187213802292090280717285969980962414749677944831570787443670949686409170338856194957325110462309133178620260478379549124466094445219724060515353788163598285508448932606188864147541017236883544151925837296604858170943794255970423725767876077276681558623253840451797659234542787261710259633069072888037111840859304101333464402489333305070138353976193726324675728047415311257256326465856672889922694129920515349342506884360855933687040339996807625708080879321423955718924952782858133281750632612327888495635860887308715496011697055518812232002250970584986335529673718017621562880961947656088130396635386072938954308124482725322618828850318838910539548482294348526886316609474072256427574292437836329657919778495029989420182787229688044817343348111144729553041263120555504647583024800201058610817381928461839340278250261076752830467056110262366686115092311697861883810827757125181629707688814831876204375616659333264547474459412445262736708838822657079449912965361013271439142328500208836859765543750165047480070518971614755591403370655439733879050138851900836921729262933125163876146334467894867267400605869723410391567555181282754851165972826382494768119321278582818652125817887320099886278149655948117069628271364778159307197035635234537165715568053194149295895547816151997835535201121280084552767722179535610666360533633997603920763160647680570621159083182958370829603469353391412663410323972759309687419044180681422051123976754657307138562693026582191995357008249376344728738918642518818349608565063320240513424574343351874683730762300305017808268626609798612596064189103777710592731389904824637811620649814870695859960357559887964552667237559469435033423692947045873684373882819239422307698828309622286450234960548759339805333016242249313404013408727182528091455043052201046392724389327455134983600140077192447699876304985969414400397976322784044024167824643437183092109926155434441650647876101113302843838333108368941934229556333841384915550855172936685364719208600213853863423928630846111818196422582679608323971058575965931023841249507361270342680547347624943555464495879000934768368969444631923825826018236526938800759559755202049488449675133620842981356648553435378132970252511364667736245976162979119188333644411294370517058123905286011759929278003455253573576550733661957964217488048500039926968726008017687898503193711109590687701313917470610001327800396528519415664866112319329571766823466105720583509316960869270750396772717561796726951277565031464252456293793802676666520181636360943182716463273411485444820847782928449527426285901815348441115343288624187107021940677226096433616241456976288794134189778128822015642521502971591752007699871361134976162681967781245621231100225325457036619645012039834955146754930491457778083285944680107134333714264529149501208262829660501578836824164451766964471141300392309336096785268343527263757991687678072783957453664640744345884324099587752752229615846555454850166488638072691903498860816341030868917766061741436554555710479195019481028229617955857021454105542338763636176227867538571265235548650418422355775792644410747236405957907924765707745451415575670082799407344373992903395518610157323964970687929888117139983997290504576110946503382984476538575917654786137789688644055592756851286012971088135502300155853456713917771361701373064798002018700227459453418486947482355719078276450385754855017403299253100008137159329964780002002675706052283804072882435864454561245267549171734591926843918790592032650799307838795728103146339708160456643761769265975871689959225240436891313735768650082138402254796144123342354095964281308277257617797444291851732689201333539290422407854511929168616618611921404283001284636323618511711533098298781061950210757330334635149016063640128851436180644910147012005157564041433387057875397138911639232180455445020918155784970443375387395751007059491648497739029099226657209531485488898944288633855430931349267940361745678856365734136065829830961614119232771256492830760990046092579210299664218181744925102776957915200202421544963115227312051974160960017402952524167565612419390246894086709119428755888999091706786432850634322508810489701180972355569523912053745266389178132503808461017485428490924834292492907007630356476888769471567949696325163880266250334971275332347291883501579848175492649339801220752764154313715529309705455076773752998919139725207678511111920962156769684127133311170145685790426129060463949666585716742642202383397712827779951313937788272067092829817416786233486878282969887801944257108013330066762013184147185216566146494559780724670127622718681048329902169878255897460256618221039300173848254490011102877841976977374996358528618109822148865797823072620603969060500236026049296256272179160925985219107769371536218824742594946981733603811813365110390583307622457478751223335075342890146972641489574817258027112802986922763230348176091829202642960421297223315459854131068058323504517909820302935975980898427315003287072137541446150414547433499204176983669078303493865671685555563525839269727019766846538491295032534789895831007624014253260339774163029598264151341880844070993389991948673187084000445708271303028973289953109845224550282474981135799666101703103187355752000786471128993464590120121778002330695099087094029007949295878157333880391522610892122392238405141761584215849868900226129668391844013803174749689567675558750804368432178807680725401882297376583883298268997941011130523375907718189269895082173225034394007993953667406248934341011679691665057100760292843016454508402635494790563411000627379719041182278537110105745246630582720295477064254373265579822838192512025052143865825341046203261165817269179938479655641333619715751062874239293246047737159744998476276749295912784544862815883177273846092250813355415402430182780884127314690878906768232884016788071105873040546429506224100701837876745509575712692045485893765185584465496253588602285773730210752904935815599678401707367120697304188906466974596548351493449782409866578244120691763915890419881298892932913301193185209491851541650887097800298597729587671093589791945696184947664316071224436642527234383669934812045644680379990890602858850897851203054910097332846256014595009974135154227156007108768555698458031905268957939340548700660650132355514880797608371808859042190013366915451112571375064118772582320025166589465594095912929170054336525972483142259182521088767223320982400050917129613382877017736667228206123388592568499421343953096642517026657232344707841733431299597416549526191295652298587692534124008917994828897159993562258588309432319579027581193809435976010494700740301402186004458507567255489928848984850522556958570597466116651007247676602137518705089338331184368733550309670670190311113804160421362351746834591728624909927661454348719997514468032663542978896222467553338286429053149146623908343965154957307392041624095086555450915585034131824381150811373748884069969916894225546731928409709457649058166789668866532576376073986684114627709340855380903367302223263839205774611483640064637144690290376510535096535134106558143731670499585773302591151278279176909429480073784760735236508629128338274055169620416885476884055546072038640258622426293299783444255658478646383246520419986287877571104366479941032834262540553217345824629254265064644463147382300759279369026451164682537188711476393105341216742846345419655220548796404531473052445763568303370957968693072924185747345972580696575698285782221841839378884752288779640263609517680518025674092995975053340872987979902482421297967829768878622177077286390830331644889369756641113913123205544341009500536739111541744173029065153774792800630562925816886566256689197286810618178000481048866554267770087135858360726117791546965462518504664217123750431728231104851699223323691008019468496431371002597001196534517720548437616009724471596102099871493888415083183651976875019850219950825532042191567433993518767372202664262465570939248943480161088827653745916818756974037003549598200288415643256123228476553029681968062187174677719207494477049470971727375727742133720732322353142822637541286559923220147928172499349684445818069306087651701534686541385184209922597473211402180573521039421381940598562418303680884747642454539986883152798984546618712634479376619649498714055857204806349038761591232161020495029739352162137529869364706976585450473540308070617830900111517171603582104076984600874244943178033977547449670624888707307451492516878764024324852853994797164124323011347478348114028168282853544356616811456233348316834048988552645547833657685600590823714435038037010408973289572994633348048987692006490386227880991258531951206857841820516166731592646511299982328094114190767804105645393662585317776197931285581629073676560487821199591534919518170894536003690178197946739094662161134012166579284875375218227102189879539002036254171646135132648479540246961896991552598586239956457562720644217273226382861760538176115662137444536263559935616019384522125872730619793012272880547256967406970057761387295591856787419546770804499964473999102005802667237612293479768911180839973678283861926898108445498342455728607428899215955964875131091679066309094423023383282260040367939816044187775250921341773961622475955747185672686310362108784841636081274082528476970204965461101601716832211349619704701502280032419963706393459058757701326324957677552616988298330631484228406990821808463861149424114176734368026158232724824193487094852077888003176295091086367107997344385051519664955551783745602802227486526202097313809240651233896342466888426098896080530761359689190446499077511691830405806181811394811662607017380743157955391036038045725952527486768212665852063367124142304128549698191206397607879986828407411038182429510090978984148843180124684306848678469401873934172121491287600464471644155641439582509887975769787053513581999651832348148262451826743544091321710372889331798658213754841013325924878709185298188131743582785198951740109954599459797379737823996886087727205929812608678534991487947700934501666743598358152900016164142028152126243810012529257152560584323617099337337745197789980660508056630925251254962314387728641924781692933505894140034024459822493567679079894752407272994532676233891959180915577311163422129911705531138555665357084046932611956203087559835393889662965779824767749208918273650733717262450680345242550654273140283514169527662077025673096005189103452206511742580148288081364191700378840697879165189856286939633854103970773934872287999042117990961480955110278494346023072679651851294945549813322327745553822529410101358154201176953659008736019489085640716512184866800293645324555815575832507076320303627834899457971581034855711758687022270568783899695086079349604566928929830875344036686179542072194625330383897009700162944193428038718701289909952614557584631759550634436677123261121939723038248771561337241212200518649148609374882685617419320411876837228337494015220224369404572007931286038961436571968715059481283390285155490365111057065344756768995391320044136501268387530399656281567675160463424296299051674609915251935195862237093661559343275121399521001114906589519295359890253598143315027322214180907649120088295789932965360805184837010563587748470057942228786606667898624009923891759374500999246786509950523151363117513030482491499336713762008938430526684652695614063945863927380245662921810045898186311903671387197992082650843615789137755784686851678182770551036777979779127182123792117599712649909779051097442984571599407543987695311108092726062126333506960692513130903314064802612206018143944682227186131451204420906034479468655083324780854727197719590591388981239587129261491900940880491284610116467275533008158771485682326168610176634315244288233398368841382370389362059942342481184656617980356481910289967707837361379236111103336385984016610785348205565641456848425597943576362964519817538819038663891113800393261913233607021981225562770368015819489982065828533033573006829679537480684997665590517270950853730828370064952077353896420966658470302769224918848086576983630472152867079676632525059385978463833615784311926368395388896155272270397743562256078619591848157977059578941142514502650768273043233739668091328419969997879614612741203743398933237014100316802299129363950854186334131413475676817217043089863450764014278814445841112751532475724997212770372759051406990465746884971919324995161220876405251051822898728668832851483540827469301943964677812013467859690722185467578582562806107373707241500029224352037155919160822403010930112702364745006423929451392625268650755189658932964088906314153589866539479805598706659645916013800362547396618055222234437116333509393431786608853371418761339177441400044741312003367640675208572061891084388547826635981082262164774585628362689261737264950149779703118245434316161162461823851507104170508949793790370670229333374590335619950930526236952665576866448028098483226685017963957500262509558250994525394678427781917982918772198623487109649671806757637780922289829949766592732555935194597473830815171706643747478128484805510802309699427153402335117743544792973736598544924967846034574381814515348034914814604271593023778145395538675280420685558730888631065869364466293971803197088936202234350583749747231355273897875652636489841969854884252454998558702291882111646924167571501879013024588221662697935618565362701961635192982436516653906768715015617854549778134191164139268296615569543282505444044639386514430528426780405182636363738696799163465795454718227509076395583765063455128316162271117823431099851735739533754020600519467785978853485833539948360214869371780466671359347290505533061000767370929240849234227232088662319574598797049537120164935341527989623674331764114352334773874211974691759405365909366503899765676241476225138381344323629261707281842624925882685345724474437569384146334744874077696203332920287786360886229641055995103264662181812146058836098586280538825135823145371524469707209762950845137022998895076233645491496829114657504470929038037390573767313924649800291981836339397584514024465526092092012884616056118805254151429231325083111025303775291347862558863218900049577026692017609361889919867732182869747316646195608567530757378067193845214429837965757023285203570174898661231175243218768621326198009671647346156806291684886594308890663792221377304998955099492793587103462958602388660930629286574604983404983943999712778331621855360471618649143400488624998251732060568218684744242947028618724968903525592577854550843339386281934579180469315681424489412454203448649436617777858671314605765894271133592557786561812774753572408882790369005992152892573994247481554474964343971584614698801947935595634994944514108612626544130560809437847766500870598129389664292627003904862862165954962912576020104978494564596316686612887769272241918442919625209893605076794556123307652080724146583501589156443755352260287001385319449347494231820075833123831214990203373012098655749566235242501317090070101499202428939869354510522183450777905995733875851566191290385189138383470630720046730946798452215935633805421459924588278882970400686501639824766904395316456659963036308299258006394641100045016232436849037456382479418463909089985015527487856654280816005796231164216482855269227480887982396728281453101171701488403401198710069457684617651858982843296500021019103188763901627839970124095132275955167095241531051657236024109502861877421179141316564914253383794182482632773576549083981926232043012476542198707770043645453841546686898443095540339679163581304399721428363312926832895700487406202783668152987144224158511015997453232914124173684685730598878288349955071071325595554239841756037130086521862601220678171016898100959521033975208764437366346592410817613390003139868535721318725245994108421664987635998082930714812006932117996869192611691503937145272993485374832286005836545720059595626089665635565212218435310764790735183688665712054452242432546111366266456892838859403681830731949410090602503529629114433535260537692331379189586187181124186508447134210401423639224824894879081295241328846902241194906754067948985917371514344485915298847528161539493847872746615592462482333918487888776368703686712265597602351326783233838287373705122994730760528341447375521916556530131106278822784646865063738470299093688274910843744807399321182121791366659704982245196675626121643418579457156085020120068176586253118990179175460581143325539045549170071581919799289796744238291328098508010033591742563083108952487447022067488577252895609536158606535573610251757660830040054045519119476283465485609303693519396137812853857583420700489827415534938008386366896644717085664647445559639866651757468863047689610763927011425255694929811868098204755186677147215314820133566836728079357785663700532669389300573693416757951564703385755146332849564033881764620463949172056202130758563920571148524811682365911013227422764843590358731905219209584320636140588308126864417588932426400037126097396932561092059496131157131444311317252019275540840867709757080854355024329183920871003930540774777095794034034757906448469270736440877690598485158102408630178450012353445951645748939057825287888861253820724060529325925736563542884411800252267367271470711692852595457009865653987753352198696234735781193225750110941583097443320424898884083561945482775376093017735080371415493283392964767416764198026384459458184560159786066525119008830975568254721786088559751848071893725232478404964228050658502604488579798215335957657035675428016743372975459098121747242965579097135610262453659578084268037917748197986060891567426669634066861879997461117367269054405243518547861213046412189053945172701920608675264142951848521043279244607531755248137528634347759633040381342859686401830936247070835174901959434885727686577500971733702319676543123589590949494471385418071512564465742338860036199512830428720184443282941531492371470172826832054943126298088249500808298318920081380738216358420762348571652074389852412333805546756187835769565657388716459720223547502828856469402851474740269746434576092603001530696602983296201332016699205001547380361666254991821282623077044127365221579064462709231641200419308523139218076795769271373725784052980769178344781980565410848316544792852404231776519175023632289872478390325824384347215740782986479073381219996004853434791507136336811106357839574406103370668689269308580304664242886903704260410323067927263835145286776699593172807771836346474407567050570843881346282544815177943534857460249296233971856837768731259536756661989690889704320419602771251105130299092823275477433888321497119446043606182276971025843184634739430064193802342939722320310788128367811783607454538261164053480587401376697106843332724839406549820147572409152961937004574375219140380167765915189665190361239289183525580045398962952386993512259537074394921419202080678070692985325055783097734890257883256805291794330626526866374844484556404174371489899826972756020568982065315865522927594897189786393711397145780082413268301411408834926681846391265052894738036230096107137638314269772472369783352502779181569921150441832152929597420066105185928278534812252783259102076312987169201459006049412710389459855296614480290937652211754070513068876134768969607160840056737153005219798950246762521795155880747634182335636603418711023347366983660315834973627516384116791555413997620666773826455984605009952416492282689835921103900699719367471019550833877527259575683661334082684262219387978522462759978504949819549666502487292985525211681852977734414337500700212880332039947799961383271814835808136989346663937868303881901709572568234662515531936803401601601582525237145983418824959106437330949509669699408121260068515158028715904170561095333108569523182631425921469686426040273461547803952688607489302553668684566379336009776709480180213822230641259504911768201976643255921157321683490751593185276344231230630201026620442971921778751281437915319314008222690777098926491096560017242545679739649439332729003179473563082122430230570707062143839890172596872084199397375325390307520387599973320942308078175218266056011096401311772770074303075431643477674894542643381183807193137039269517982725951415650496184892679083788113380203599408352007625273301480227439298026192393216514011908854392517178969955589237312541423504490605482455294368695757417800179250351440995228443653796074990114566047129519165587264063166940325063159387601135994995153551842306682538037816258987153603351384818288044487367747567704482735672555315598019243884963872273396752723562444601186345189928711242306882067156384556737859574630953629076660385077972678354469792093526638940008396828194022161977669294815717325104847025470449366453453290238252488122074651377921754247858350890415733179943762424797889272729588840412295779437147738505340722996560302911373160426465788317006097875688750149152437839252623341940943462205006648083156802724217032259809404538905066459257466458332210798735840548460864952650878846544419574274307237632779960446420182496089871266153952931938447074830796656285918222597481955321274245136522613240944228493036511543070440416130197611759117069303204828688385891636234650855067501269677138922522715140014274814009380372834445516950194168911776203629038395162836986148606871377371953106042531259492057430260868034906599338562694470347967068211863115523885451915885589979077818072290358502295497056027020621559593954411227245627103909270740729376081597807667816191832312247605786314132211409162075999894319097688927406281284532768852625922537451471859128108807656705531370858282693684886297701270370752391651147063202493862847665489392555308696976530716813318568434639942788337042216593463341502127241032620380078905290945417812210924123254146691667509423736283781036599666920280222456053927476027487266796641392312799570366549979788791515757814191922404757393406659630809597784368286656014585284936710567504786167752315545021505685312609684169519465078270064920589703941641668522987661462915074646640554669962982147297694930978097071137082523005137291110548460678392748504426628806220811089174534737389879802863668684974555229255869804668028687587268636733011272333859295268057207725214839983634512739249421294316057264572014295352120422283166930736566470243220426485439807704106982966314447462830697266637470969244199998741468550657747370877348519243714302021576156282570059262190490590235328458809580684699553868878231191240876515123745795978505334475212047153240236218254917116349217805509143896298839935284276444751487534656774224088513455166056066533064618848095067550202481765412066083360327856804201405959047427419241528609644854348700517329830548099910021623694936468208913857307150321244485064278468914469536003985980660555146561838294756402702825040565077661745663306134479847020605263201206572740624401576960040847355544313264791156889735910625034739638619434723341359758463522999122077491643950837633913092488894479932738710350653673971684602732211594771958231414958423164417064012117172678617409984016506519129976759437984479960789115656747770339122393751884595858212560764393469754416678710536096982742037392056194782491044796997578865656499461030660424351202206098581025969878209257837247805570978405583405109567947482503177623047370057904142535023107426199065391027140942642688632131365664783958744336069322041859674184025480438385635031887539891117239931884469057019484420574425596900803603051084419089601580375469409356857266849194917135855682588024261793562524861085042207237618748805666601205810564338956303749967951313875563781536856884132566097969772403843358711114939692744074935857807608232622328883877225067396449385168485904323935656781719398116674931580476031807774211639860655397053467162987309897711397213851373684026001673482929095862656337881564837856764228655096984534230436036826261163785264301553931638366368577967625714960837258228716468373914675519082208007625669250130836634511092619917914001112224567116877113566727256530515191724891417449941077911355042056706761394384220155893473556584423177944573867455640378486300086113093114684080203795156148325487121586721027672694816795353605275109105310248957040518020649928835413421165573656436826897193666130033326530425226556861229433715858851842608636689147710324453528956628664545962098572607196807925773563251821090101404238139682306196240622466747153462069392980762092669792244241894878776596372495692731256154486915601583375417641310220130526476978169283470019232877333191335006220222642849519861661495251768501048526994492851648112690150191537747432215496356854668399651104913397828656909341913793028150835372550312270404482921308810580948766326636814208158057449878072884824218515205355248351978964461203586381009236632919726060441086233441278090757802307267478467682395578134610483298658306158947541641183074613877673545069674780049645244382073194494032677293745908870593664236946718734973017643942200866380863757414691166204269936453543037956500100987435587696612726956693581564702383761872242261576339253375505527720014021804006352204481176000759695361811188073374969753566389630605002447280716488108018931347956021697696399861939813790150746971331819795319678839629231042041774393818666129748663341300664596895502656535254830335145037656512279558040970798804172366287465333730460295394434213583801395306293809386149130294403390029692874398481592182692694883068839958391523597543019273980360441295898509753154690796516101628092744793958752797987094268339690958484415698983131591653807884401143112172538975010197870156775341516629642042493258449824166205009710644576169814346570876136350716248402069248197486049860655010937174300733986734122074633120196656189997884639758704888605899267062211035007354412259146570119354092887919717674044984179924919381454206475075617618510200247633395174029400894330089203294322272320599985924775420766920429116700518366282462640596680982354754047424959031100195050799899968108107497043729191003572991541816805945673917865322856958418158309910321510945619218918011252632302363428046694981558395082694556657584017829422955736015920389275864787723315033923603008460640106422128465152911243058640558956179083603528815823876231303297131144617687843932064738425559838365472029538502134508989154588957415796718583738578638604562690480641917660995031653334067874093752356865207626380262857486230802565154734207612928168961942867775153810497675322416446186418361366368241736067196114802020871628387074257969677128362196937291649634845709944189682327164933157889973264484431226978400145175478579670474394449517920755322936605303713617041227646324226565315531799468026495453815371285886707572062078542620420690198108686714916281667365465629672928721344988665469080642008475756652779773795574597854424370653697915140730223693870570362013330097001292862587512260975419381112627207018228730207751652695365468586917005994304691045973878708738009210414572023857308464176360683975929668217816170696632537195157556676031019950124667456677231208318278746937430894668753451579055972118477248551194895141336677174594403048084284312879022372089773393582052356057450887945853498805599787513891226895454749484779032707891536735949801837371285044142919354478757570213493284866391947801410279288459808641084333651210315942362925606175147944236731218671388265326021384171286842860147917368103837507122276841567209736664938205457346773170632473523070123930623548118323791682761546573803116464446908237879227099579400147792032949745511386753389531037597551714533133690336665250610666827418052234576829270298927392965417779236150446800783985821809747833803153728506032159594749872916975353259203949971215422732726634219737442118218654492214033887650929436056184799424162418307074853594733948328189518620258663440413466631607354832879240163433114153398115195670607346931880035101923045629943998957376527060637323342368833071971618531053167984550328695778818177920619137868402418392957443536558030504520550326474494628135641857784362808802223040833987665751875567946142591006001272529185249620344851463194082233978822356150640608841353172615779172092455358092533120948648078077428854112325968655639477748800476090519589136749365363518874243163354461822491816970461965171546397378079348349260418567776596374043542951190894516480135210632641361578544473993633427313541650317324978625995885431761804181020139665160511377509555559264451564030365750185222386572156981477813013460006200638901690923994013300102741396853289080190902871067204781036328141951836590855319076496796935516131054188005070195677234735228351661093423470705177522351638833260874889972952211907659234149870003827287058528012213055544345296197662656669378258813349969108634056672810864042440849190963957205605767783180944122455351201328080599756342338072717636848682292607486372727970949372370071683993172585463005212680303575088132099353539322735891659156140378968729841784800350209807557113748673266194294593857147363654248867646410656898689278274888098187660202103737635233660911274410863090000504669420780733924859027735678440634079996314549084500283671960419527705455423633721182467890544748966027355719208359176066110886195230809010054287538149519092725082039532122948055696093278551544261783570696968837721036193551562311123326208034929239595656224482393584576062519018396869922267953643354049981013691202867964455532915046563563999104679482924695215229369913890547773893866838530698725179571349616440814698098047436933862349590701532797843270931963342580610153049890129095847981106513874279687544966152102483088043542088955923894711865722316925836105416773163071581639160226314945431326077570694476728679755808181168771279726927007977467211678699421613223877495730757776682774642099082122737086446316806892968187072645320587662443944609733999763829194275633032153349333783860641825280600598451782114362965190134857392105200577167519588229357050571417502969463659250158481920745719393956864374538367840844077275782007260917052524791737223427932440187417871057132914249437844513290856664067199438405991712719801009099037390548887125782126747744058128289712169710789490109912729730169466646427905031555277887315112148996569524838184896052344929336951189695049091006540563328478110885345630025164869885194325778926381788813397428976672827170016549588536457226546518147211733960269456183196673332300014660878469654075207312928292621312867771241307144317028499889066531641492048632719636328381608778088892789272794159370581560532847677307621616379230960948344803955746295904912472519057635153334056063398226011501542472578383891643785367937611810217484339208823149396233983320617135521553293213509070286906561282871064542125619280688467860868201506433949927473659052725344715471841348134359005400191981534945588596188788517711113588454207264474671745767088490330224826718578357205568404519163182927094745865735135554632647890417388350032033121697588298851631180150659289426763526348498185155671721387719606490426706280641976798221075077539511000768769610142292740596015728996716415013144177989934750607121205711021260250800891082259274898326616002277380678578549328460166233808964748768565670054978002091499211428144698419285627780741758344813025818852159759041557793499380875157721426249924834571510317929074312970778294853809315683411590136760645337587273715799144701428621006523154790601149375789857612920423710644229486608395969604244041549657755086473466444415058091478576096490989874363338226820470787179647278436887295338954839222660411510152457256558737579304743127316558378448684104166472310512753091859982879480491156129412253781567998495872882276828189611727352865785684474890017493521267694936595120460084007709883937431927186408595645580335167739889801196704266601560698079839487023284909694879916285243995355736490203457612678961181548049018104808566730673647873600160590081405857448078644649283261381436874056062930805207898768117979836058207755217506132536829251800160232215797325765300920058946700533116438022617618023862191557031282359027548704550337421822822719089638262749492406652816917672731360961686024261949199369025862219566918081092147001432033572355986281814342729133306233795852582983641085607650253236944806813169771432978241299287775422655525785948059322912552965120922314207402647545813333607848063971979955079992454520624930525121550208652642580460420653504296997614479830644670322987489022748773026725355616551806587141717186202697605260563797506047130129686618177417886387395747739860956852686513867026184519259004270175979573988558471058166547634242953163510312385374580667117256372470790029979354938043199344487076573839493446147454847436667749806821441141941254067217469358704416813869142634627095939688342813250043451573881685795887646741651072825325106059164966538624450365233627783054621271164451499984940639316990426659257310127187402893971743871397353057864324646713135178411175962704900526020047646944882376974194664910170720000205898205991613079276961404236150454653310701109911214014730062939206870295303607562636327784208134115891240390219045805659296682046051562648827763853254568177998461696654953933047981364164950890694936310300442008792067609959787719965764518764333065894870584793129763936678153118328485817292019693442181381124336247696106677673340512391552642000960476375375001778086813894831918632546081937222672757909345305862639566030337942995098641911538665096191076893068305299477948991300693092878406653071483948542168287926935330757727022443373494990691354194487722974926962414202222903334033559841535842085509613996954358005751697609520600429612797542515786533212955490716452198497299338695390576016730639357948319924692705481834760730216363670026100601301316530189095144516215920679139990150988398721449241485872728128404105980850154466413228207866123791705465899763521392957246499737423883511596456085768981962402719682742883703848636499957144774713533491291370087973440167467043895872618242737521245413644905563859211163145789474557096035856734602142054943713190133337358489007774222360027199874611547417110362466095540222451377233309203746987405685342837927202829676148940680567214542264947848429960823367886381732162099120760468613764442065456393936714465742639416146385941532710095304752348258323767064903408315267568779461934184316652914072905077706108864120368459375263743915921396027407392932858717364060468297069333919188735593385091085364987563008477053371208609610873310806675945905831551562673141553342088258027187575186618090121274947980566619687755636931659400937938138564880812430235116463090954406644981807948217234387092131407558928829825413808262353340641034230378557949766859754809231078879333179854074934021701462397592962549226154525652357954558846605662390522266525475682059444976669913465484300023958729940246137263376108231187545206854652023387154349439900584508001446250801860701422371484909988749307234545093243881389855205370400211477208425196749405685955635973124248052552433298789940684858200674329080079407069600569108316447465435905030127242061860148769383650272077495944484963453319985686870960871716835631019189766804254007374616433960325537107502699849980273114054599511885035054069098384925533408278546147957652099026132113214916007765899863857413285128579260538786573806254160155208684823363158499897717521520381742729644299006552406219272785908931248722609253925325388318774234907968962368140939838078604542138721495827480832911597190931985734213386408181480912713073144500018961991655862765280477595389963223234384718221290562355134521361703890742841652808754478660685805010142495722642583919160746208949379416047120489775988912167302057755252084372150648152052952763983566499223901381587341750859972455454453863746622356665318204594794339726617159053322674879802437794791825493607730835883948353316261846838445390279795205968792924246264592528326322507331940583217267550690599187284845823250468274847044968441227298717985497554700918841978797295670825594563103853833333912251188742149737322777631145379404562059707762474786506522849897925981102260394931320046967958292937893017882595176723453768532758355407232996953197892097372879123579596860209657313362828945023652456005191273750550334649121400509189230965423178506103267330352645507620751012275273490372536814067789709587538084792944859760327522875821554224312466818596592520109271085903295281664032817645419546651455835397804859986726818863085097078894660280958458310862093683956701396927995560192802541389678174631898449217684057825533337254257798623845839816022929870904856492381107335807113487790373515978470160817736246277924241720486263814184365173702393758756962353697670271758283905678427425018224014337463153343999915660344246965459325119882754085994522131092058336599126506528082924547509534518183600372867100281410773437995001343447941552324506221598761572696481919685718017205213845833859395870034224741651853578026721771525190735695796279764512545474202675337205131315844948284233587839069747680630699146569989758669840995861435985838799093023920671007855689620613329255207644360183802539966172045167532476873017374015847843052017359320730038295583660381418593910592917258981063939499038393797157571282895078867184249339715675948198749487758041564508551117594481715291503149871854445290390100318613183921683705547509771892707285165304496046584792683771190637864160762864035615380890891327181936137145279903179579455164141308823032389435054861324681664626842119247682484229616522864111717139435964172037412485192557416607936283532559381611861836671837270597641159797110163811078752223554135412250870166905906374668282295628026188314929124016915347336018253065670388477564579172900431443234758907420272365333045980911890583442617580986120167883328574848267754924754414345032098491479878665795343416369897439162926634137403524093912237146303145680858349477421271099249169623941292444873262383592393594494020376750954683895951087114624912659734271467231818929694825615241618170057456820098194325130847874240685254629344231768552805100349736570884138677796441116873906006698121096688457908279895780792460432486870219169804864525926371597192291971990404662036328157134347139068508043886092323401444105873161828841350487171796968590718326301275962037472242591473096529694403501427385879630023818429924366082979004378986940241105162981118459232546313002665605663658573181956026718223289550519967755479598567126610542063206185000873891800134954500948628366354076405445145240490601335232175244415142452354090362397682761575177732934324139618544510097990340682401983736894895988043951838383451807828783981158545515791289183709554425556532557152394140352134307107701149382471777367758480375034468807592281817986996250003163762782304958419555780239370250938162814079300231946040416927803236792711514017607371883691260311990022230065836338490452966367695151025648919891876768250958528067655379004628307452007243748922300371930092487819576097686738079170498311572546533830818788135526961658141521804935570426747725746346806733624354211139323737875405716349168117185907691609735611539672386116789839402105269650394243408205374459809613278324216093687694704839238275458928593400704549079032596570090241893346459232087376811036135375751267729604482538130826469532302158489761045917025169066148067387755459886642812625486552446234857808595491291100327332447552620704828476772236757779124177594903905026341165645105128833714620915586817830066922810879476410069456522399822296817324246083334997917347895224315889571330444200984702072144906225582484099094067275885895144520263783021733026424094635345246415158396424088983413171670260704202544761033132549885065561525649382218914305265290437602029481441667335626749069746034474406677387296830634145977770153161354452113629109784036779211210708125529240397817763876713913237665839328331004592320989772141105284526327365431362321594279463709326571786072950342284078065820166433447346027444434856655189245346779561027142018566981692702170798497495753802050131278231102968495258183003254536870475658646969618350935400214427107309215020738928949032845808383177046337292582634277326392578256147815010972470718667101142854014799251420822865577506991216665367941333609461012923814975959896283815720525915059839781473496874120613999417675353338202775313202168266064425607335086599829427998012131609445300884276140774616614874346938753891868012456518915797937306170218601452023565560196265091282955566000653886321499746411405893591458679125475149864910287342807834283018976464535490985757291415086590436562646793936506162591712304583983939949641545919331283421809085926409709859235603596601611160654540928806427783152792510952790430257148126182460078426719017550118593566126672850297658130909665885360396765305498879361962907283809041773505833417719842437382750986278007996180662851509643633379210548913361914524110707113496551201889445896697070738687552731015652314142020201523151922468856093507311012334856487570720457731858107365258790237388860546412370959759915802563716571747075156531479408782011421560354444117386728438741616997733008840388130018820446723037488915327233634555688911116268617033392550894276370957233044743673645188834014682368928096328243720956586698518733221825905453076334639751488120169346496213405865952174369705606000906286647293953399224135804094517444000388132813706016770019638888806659565867277018867803960349349230422801412150742434609894851316156544342490276255941087143420850364736054840283382856141207377607319139190755461516005235578950625492150052741910664858548430967889642421371879962892157944742614762270108494704138734421670203031107364490795156622252194110575061754925686277017411785621813759359149916299972664775752585673508013842534628650569032584124772468011648303205459605016013109868878110644764795016157278158498659801446394581165894590923201322084885348234372624885247082997360159962352568213354531397702906411111389728337135538325780503673870127135720780030324058581030345474717373824699642554822146072626975950283589630713055107945788763301287992154289458616919472923653904884313132428904102103778967526802991798730024199856922433393134369697590176645973542711464265762954225078983700408119826290035315787597598798098532352976543770612061472851091091853104346124451011238947936296795083565683470009082390635335224961186068397640642271675919524730059946489445634951076343795323185175737230341830192170611151550920748628783437373392980888770140206445796477655952898147294475461278963287943217820538696085084270058952930211149012533800980179769024905232693652180876759816600494264774389574735851690567208795982263568350443955248910695410592817658575106862594165870483402259671691601288830001938870125219564592643042592427680179096562157177720466857815017296097606477421489318910038209677860859719615077953127634349179572781451660700788618612076585695681957665826674611229748139140466131426680155009190320527546004911017396114699841863743404186688377823973632141290407858658308969371550277424679811205250494244540286534888039581678834599821295227099195359266630193457084242036144732425519433154128171840724344892474281449476262935203404756307899929067575956275984329682851016570857877627438238771565220158760493317871237661338087466090857912397924555008115019687629007626021313644237364142751173312375610376727422925780585709809511580916429247134487562473184694558155325787588636642030377232729994688849941490873104422617266333124096487291344834285690514046017701281445341334188544407145354700330566271622085901855979277192999618837965674945396164680531033477708630305571774713723405772320773505089409010957945952853652746976451720823205133772613650163170118541373785253413280123504814885721877994159058571448173785240628073726627451894269881833155388330159111695856776079023160212873978571717839888973546999857870594843911547516735851916655912656996157167779428649363558781899884958498102750777684609346000527840952406334307488616077662066321240600150053628559034184777799477789445418677681205757253734072571030583335956997306429358782412344904457359357673445478660883246177882914734924586339443539304047085535727214776924937822632744529230086235936188466958815509995459131406248384116879738986839044712384382811525367376340726866914287010037690563087514188116403324011937797296094225650561851518553534111507784662079376327749812841370443736487719091469138985483357708458287694955154405125014461597445294441777894468126568404896190864106462131878880785830392855155233528104522401766075587927197569753156658998289119499031964681883773085877143016746974283912956012463444177697140976923696491944546467656522863001869511624697127067993582308837192880937270141246052481459571322640649721662107208290955170798562497788830690861896467923202874211456777697588048097668752396542643956488398875719996607445366479954708240915698249551971802963525679301642411010669679328657124209501672450029458165127157438620416081639536948350651916713054678979523643290724169854839287682303074992007943541376194492868555195315956463788106438043339354421403118535631084937444379754386068555744444705787653834778752739355595872831260521251784913026694581974776506370058586083806954165189072510734037903228463996578135814302791005701155216479518526637100281519728618856972167886299195170404680806616861693433723749358371773436354766630863468363550398363416276832338552540454802469334540159985941360459987487753673437092068305225861254027083310217529074579199220642758087664625575285485400508901380145573087573732657484370104117854711562816117664351679483030658738550796043516944117307124026280224355262536924852970820410631171916857943763609265217488212013758625023373361078762903033953194423555495563504214104174818829697084444237989393862734023727773512157294591594025444206590289658514531017752980754315838283617721497586645003815761422743774882834065244399085873565474505602182862614611901897961919430093954842613346216070273940952777799138781786736246325434685296265146598163905334451908972630013992610286360584452982738558862868895057541033153460928933340617664273432148503387514963124580717112751595685298885973951626214316501580788376857975872600925447780766059104282913246685057297362638098171288396964303678702411771180728885896655822419279567474734146325960999548713072311435706694780472958378997733631045843035572904035453378664040867648083664173254922950532620977854165910374700263910220531595511989337896353596143962120637157371659663548914778891216017537858050253450686346491633643543557530685570376482299134934128100175823938136036826921159590966427015997182662574930382748791226982430933674443375436122959947297598342937109641323099382863555912619310726766126881958333193111774335449744889689643461652386883201970539607841912558039668483628177061765630869729303003883099226926908372587536692708451428999715246724931981224220777013923321856531531337650485698047738396323142490701393585403568659403597163555380769229955965092647427210082858935371844172433356793116619883688112139715934006684937364536016522141689901178943595948200078778248633032980262767048433365014034340234555552458103054668642382265827153388988135351077919684764998294140290849440280893142921430135513590443498369336141558776272383662133379464613611677095727270210503216567535633362814154221108571706292014863504128826161112532781432794940260854070595862897027119528313355820042699213198745232147462282769677097635078817274488387751424073640188333739669232159592713535813735096351486449025449733665714622634245907822613775390889481597978217080494475118741405497854691498644885643953007520895017691315671469294654086135713431612543298017185588758928602194240669382298198946135607438068671983786376853436140439079164404873720116213012057283487118166379551470728978157015284233445117515777868305072797119109971937267796866442416374251790507113931829564427875107493067931816665452495359185208175645597039662626342407884460996474266203668370665402998210666094773596042054064416186496569535488113578090253381649346311436043546085984088974750045181539297648069758803566192549068209380684355323927037238267783602082789304785523399816216605980261702377019290472007926916084902102552755268707797060262684122324061468857793976660882790019592338594693228970727335402107672373619883333775431515553276849469151292921869656675807203986630286088598652691753822709378546106557062335976626760130800258623542215098500241911885939565395358673539178767626615577253553341364363124413383785021586390189288563197846247464708004023194598649211565981716240634040017672145022949905715308723869623446156028566523291187271024650074587188067574017031926061217407368445209186207038705525020123129738802733321711834121601384836449843715805222739815363892692797916114308296876408438564571102134349516127158452329149804579456481345738157711427305255178207743197061342019557187912957418038998332045407622295918567389286890739206294416263711442772637922950111996680639055909215519970711215177808842674000267279708635428747229838669387854530437548611178763552627601285445785578727874836968123815693770345725584459359765277787856266097750319699541872622233553454328919751452374279088989210095102409617555919439362517673925936478536755861597158025556338289856792489344119506001458974113333513256843254474408171351553670885706553967688550562018540387310566120371893350216306234861007370349271179504985423143026985261542754768878950155101107956591557719270251582899552007437334542937269116267037463094380973314167649850828984488257044945502230262000741246374464283590278639024963814187203455949899450126696640402736773885669805831424605127527467343809213722938735670109468290504913994782381055726697368148501377108099297858645512969559192211900337462123480710818278516367371724827595719984704538738749561155330258410521572504163350064401775380052689026966220540395528020435820197304238369907669914425254310168070085731087425995776377091798784651371109142340862503049428218022796906903240818033685820438113502575433689778139489121142271871980968528282918761965076495927903538544992398856014809312490878016871551494730630626957582678335506072524286343680966809688885225409159087357706931745524227689094771734949592245166135027132398157562437556151855126939232716255324312832820803947029659762636092077110157963400143518635914029759488240027657992948741271064304438630706859036873401159216374176542943022703620700168753676116604685926116873219309011584329013280915353834227764305370990631214736729874278148593556733744927231336962865482981228464956563801088202300438571838344437479136366732476240087419670205869482804827369428665198544210066721943886098059639315262384842858327306765645609624996710023504497363064637764817697642844065821624649634565305552218132857881954304721537879035852409861742198304327038636251595470874728134144001549661066706996580705560261237510126899169608987213571263172572685082234143332994543796418309416491628940513824350239607000343148159174045705651494971639686866603227451128144356559889967719440413981131052700472589496324081376743243517207345840691602187094052075385872851834092353949082417052313766762644016535780005641936018803787014756485913295079152779383705684623419661463526652286507956094099091823567414700474119955293264365722338433953981717030101576039383722772977251974628542935925547616464153537577924563544862996475062056420970691991219181950902900054275229329427763386441809335071946534725385399643560330759336012429564415249241243923057796732288873936138460533984568462823999871364708495765682651639954075781986888255024480996871897541183785544836182303176610750864654650468694986258327252090039811884377827342547927256426535377221081062506554550961594428427968672103640945264417599299185587439312397857264520368805080144599530355255195824353527330424395324961002723845069082229776892171411026106495823870305800998742592366776164845072190248769181605493216577161570950209832066492421660454402471345015067805458265328871434633482840874864727669364039144813512818114089801782652127905308233235082433126764417907733776128113404639090002829563670681878309422532618922891408179844214797854665605013004919010128167734913100200316423873957833151949027219716044215429456691505464255546285300998078945528560136730606962688872454716803830262641897050689628665666653219194779105362436420420543587228233470655438501375876493626483984125958457390720470529327915567866139509734841731470557245312193225792429017223128220138402059160567736864160885654597244312239940641731067985070355367792191118660750648165520119596189377318661291500330793790268735118947243598503501050487124978589963918913350958110714552823675742346404308769172758714494769160703353382178492821135182494456816312409593279516116281722426502156118044307691901597386507369814715547288209625576157962568314929498336943344320646408866839394964945053137906034304098188514270639995281145729111985140010999375557920976040625685078543212221209384371496299022305624946575180587289011987001834468121018728142916728669455934805614903087666033699849803183431120531684586435833871803511904569565385424911452958237218069220897531344309439709511865754312856528817800556767628208276511386849358527614160040420584074364352075915779063349364547877962624140120484997334213382352197462002397975940609047323076288161267880850489085442885823589266294419150086087545962041633517971813634808954240819618071151248746432738501365026213320357339172409264826400255338489560000959866718403047696186584306308452170559271471351668214305211982132147353346610876265160675933677563716640437805457574810234382877056070872991344364312106851522488332198265897495019083908478497540291143759371755383050390337345035526401207614315979310591789565248945313510668584644617564761742627204217973490871703693789485760514641299289207656364691326416366992044047402496593097134070837449864093289937518275738971009859770484659971632845379290993410976172189959321595921484201819273623371989171742575921635528744785491558837807006761502535425956234044892003865122725242806631242033683138385111352270191672296234271379193276745515439992628396200140502372952049946927891268609969268081124410772847169071752557745576982702771094691818019236979415915072525436750316439647809736366674550222202564648968616926816008517807834182409747369324453061683140088562888500808874970851386767940031736739668250115401022219376411714731099272201343852346944154527115135492801418445796516573939832826455624922055642933187893890409807103980291460700125259090908062572994260106591387291079041077140685115150593995956527175321946881463001830796505574494059069045887770037568600314324950547404276391210976807130423471274105101690305637702040255713396329020163590307359166056155189939922975063967692881126231546059463303575169931337783622834538705472163009176979350266246593816838564543315763287139899169699186297169761953859210494798998894513213526968169738195050228731001240290381075260033587256899378264267252829049158604222860043156280912185861383131786688744899828565314289807538371219964323299761803437745822942039836447459130649584584963452322865737623651454624196196702203713121220171526015974072543067585980520157217175531484144547800248990668126778086676862731490393869246566278016549821817753228213731976837619871377013259556289612187384993667493619302985169638286037107996700081148593266178330278047666063829149926155657089885570221421980803355503948694000721212419937546464647214598474974678624343633870266803704358420480156211205367887923627393100803222364282189438109857707764895914386023879110737974251734113772961103587956576206804280288933379990297695961301008362345099128785983041306392171638447938918736440247891189623354412674855795371144947257932272302635109482609405083231251869276147996645284281111292674283883723891685913449271831754889376079753943760775227956632321756200263922041229723327794670742663257662706859260169407098185404270025208789244566783972899359193574572888897921772735137401238428877885259495652322440943248975507619056045277722505473548490795030874000729549171504283918692711867266366880570931624220449142259913927028238020232851924366503849449640773895387237856114396292593378535096448689666792290534968142650832071925788457968926384360998484107981251286310987546551009128951652745767479001547562511331811334829460604588512074039296254208699169847509485055955396463217106542436807821252864012328802862416103294078478603822867315684881657681907853292526251639014338966937312981771646653089951410203308325132888308400053633477156217215928968149690134171024329724352193448637424967775154990406582378802834796876334717156456955247150003988971293655275196327783113121340991990153657392279779542050618591023001295113241676437181565939951118973272659423930744216724721235472210710685060673693903881933085469634427083424850999984355571702494362472747002358587006336906503152304827258784814050992492037694662780944066230675140886845074268923274079981904646349724029212382809641285566369069708212026402135086520720719466788161512278027364076631964356198448626685049692822153563399475361617957471928085801775798657732373513650184270687042940773083427293958779961210035604579137019310657910415938612236576086507630117151252967151868273016129224725813454481168798820994121633135087624483601393625899433965323975374197641832491751619045342370327226518703952801903235493552793371493352948545670019315921091860766437151867561975686365987303169996735209899682120734514793640792260582239414744088800503199204292112916322736768355469236286343942030375836991617614223882255577644242369656597252828544752698070920830812721319372405844999090446104468125021433176059781148090898682927221604026053968962910203368629732695035206029578702946662679954854870383223817674712749286302568576562600503256148258121567752064700730881619851541268172260446729307322892338992959330339421906586340479240210175473922833854626828147941457381813278712441369239339135576913243261875325738367361057516936653241546887521478280294012287719377055466666196422809592035478951278752713288512116947713429639966703389070148519705003565460012244467853021868816902827824890499428732990605919402589898783591260435657027168005046802428986399995980179719648212490454119108767943916864634239615570971101377983687004850506564501046910708943169125076232845248771647071561509062230589317272676457560382016318148855810132654987144926830525346360388021419817545785359618751816341285607494771353803591199543438678174511001786987512823119715710437970508631353016307264706790081969908351045451010440046551656575649970880949419557663264985541722229593624411711687904843423018407724337155544601628088863545162047167183331230365226573040411996270420837349916265672775721947873156684219095540980376597264190251738373103067168438946156855074905185570392912545838773391123147958922665836694508787140952350079903228601681392583631239553363217720387851016359037686058699245175933418702158842318635239350461040907406401240964057084030203448934503402830128878836502901550792130007381973328753170140481841411200447072217375530470341930681513221951203245225007937430817429231140651841727459780081991687685626554926016386992290732055039890803436807926612076951324170903777194123038146938197305167476752058395342524674534738080566898885249109055970208101169901897776634982630075046819411349958368399666705546496335555695909711356545644763212958049824070243902822079667901312552837833393609100167271556047418014902712702845404779200566275258417983421136099416067095271077731846976715663085178425104443341709965912636931701575731228950320141846506654231673987639251510567577348363995004923622571200876771647998681938123022763832112357278952333985171825922477205066312370959945507983206922658970198823864585054450055559387989944977295323015577253445180491695208149859897639876299409615710114791530282588507761481016343694521403952550328804720220562668098324451407038967199379288620346796599606447257732649338384800944628514558606515331335150501161876663586614082237570542593216814822090701783581005434065548046369737491614039672716952389673019398220504830880289435290819983161130037491729395300081258273439030127985172760106838935348608056600494435812755886044445019254983600814950096778671613092489911638760826684314503661239348049110572143954164129779210219556807106438166043931754295474495243709138053691800851311371810296522080310819046234819206838393997577838412847998908127357064764210946740915325373344395540681490262310408482378687260982419235820714057347027073722357301630895681867505620545572504466460708106268378249131390995431876263083425169713286899464147183346758384703899932938142059016224175626089334342862426256001274120682898979344193383302448452028235786874837557619718726871406199680549630727984863919566855016565254153151956779777146045952415259337368110167119570936610188589449435305704758803238944941884094099789935373619924360620756278681138111451687586722598210385296113594632900699092562239191242333708263249263841057799649646059679945329252884833861945899255663507148493583659353062336269401027166033058997369756426859690802235084384078813213713758636800836965493113674050796280681612881827588453159273067636682902491946338208829267713194659323629691495421887622677644858951281212248887662923500732194877592046727462011537908980199424683318044639671141473425839358677938984053361354052225570187671854497668471737194194190773159259928788827649852725661979393080388730674745818170994362660244701518121144545281509462091330228893472611738958895481086416160261212137047282188973608140680203675277801284436474855207969176374294070041025299975095810634140723439967391268563320256216052351857637408039547707146411970155492529446788881481811625219598385011973832037326680466695180056583001581442527693014271048190733196572504962360099516391158964442511031630037065234027382769500484807678613468107462266137771989015914240130234344468587547815035673699518336926004476656693159902073116168922004115870080130703600317346289024543709041750691914534169694740814024481195635212695538073948922309024612877439284013457595155543759618798992712985369103154757508868037923078340827409403859887022941772136587891721127574797275848202710457508926070832714390103511322151780643872451979314520271389653851788733381501709993734279791739519092467607525513093272200449928032475439962716191049535330946902782398835258383651760218130684402222931188983079742796395352925194752872190052833962281468683380452345367683463197923208540930239869909593653062264963942238353388279600756415569147106907081035013343877783895122652958536709331397892448507416311783903739305055583034835637265397744240183452685129045678789856554253645684086949311526060460319807413671744478272532734123403257857203940735277617413091191308482465747744013377915018514917480521354861889280402298670102122375164277022457971188481697335483403925399146564813280612434285382538223793432693935855000640373303879922901436000109455572195052086246280794274340317521274541369321636572628000454785562871903675037397057718750826902132974841270984574784944741761034687277152305225130217421061620006464694134440346778245334043765457063029619674021596057871254024915290416702271855593162693440337040299678722395675847327812160341228024815464984867988905163439181676760190923031573711790791234251877632509540482002866836682065223854299643152808124853874734074992338887737599932658366443859421624025523866913354729909496152777807265600524801725412721656696779807813991429660221899626927392034532458852322819418016019512851730767029471705869728772175549121627559943516969999213869731909756035377788141676445035689177792323130290095429282856512583851800164807920370618646404197939226804142298223213267389260873951545716004164234644582291791723405903640126482107842843340759179463342023040671124531347388101663450647990998887549642381191700581569338184339982071152953961481688849345381070425880314014214076867448735585952665404680097956748331916893232157319311774940959812429486089160654554330410032894295472619150252623718945480560393216510610797529890084592036673020523984780305293802839258328105484105120978019488919153196683639452972046319075869838533624236370228617723339051843072980593836778560809360009537258460939347851566960583536641179282314375055471752883956392557412108702599498199221492022026353746133801325366051968791640909128271832799519819130260598258265574985288767296833695664223012053231793028584904069582864755479519235515272584733519162454884168525725481711572633019460489848977732269937057234117502489096640592781522368571783197780290394691951492090824575072189214778164589774065978482605778782840281402843048641882120230871290219900105902709127026235413454193040821176987664795897468278432680514416071949997677906121018167767177255646045394373307578386408508473130532130283157649479254828515381997574875191598268800461853115722763102707191012952775074172447757664554707569636830106272292997663883839592664922913746155926864604747025736795194578957962996367902839477528933349896543100859618142580010949664529096488853902101502743621725679756570645775326257234274793911215236856217381816029850958691704466795484988335305651194825579942218068130439348564770789340738286234507883570078294801760186346808920385637139058938727936400598817209375281759237197659673642516595497300918675799000776346848599482136754781522113452789958495321822017617607548342072038678338462783172020795826406708972852143876135861599515511307207522674823668766631843214937160307197607196225615664017464823396787550692013295094013005343081290000018543534556214567759910404705295850145723763665943245240621714806583246024259289568788697517266124852380701457525040699353692940129964851549744945607550916804162070800134215545310864475458921389425339112299537462417166008684155863676125366267767533302962757202874588268355597465923286648849188944830645001633385123251346240998211708753589694425625671096644163669648212279985747065592956719849946289020858595246321939211375972765009493594353691082657664739080301915561314125267744177070100654484683180581952475288610025082605297009991854777171321156062268241936259540722727495802776996551613563020315121699848541712417845602836174365358960376043570810616519934520790029423408247677746730174847448640823788338064019065450206521402581757103180055586084485192416697111914190653248354468770488322882346392479513156921066401715295964714575865400545819895596570926160603204230893935191291573951073245479999111270359519739906264082517663935811154946150884153739109387233567220686541466078706819223377244408887564699328432853853513382161719989893118895491539347337087492584240319651247317156971845158283641507018433720980462075585719844648426495028734160809780549122309092621326594714117249954351310334701146573005600019149774993623544630102723910270991935189536517540214008129757491058853999304181710999693642017014492487413220096040056740115715109799773423014989947712698964443709470607374656673868818214673971217929088119490053248618436822439299053390525741371243241543733955940606579049219962328321082308753132908833022174974166461878433491776014781386777414636054888999324182733478803719705958589119331903186894325293908085062939784409255029720177480002984711172070810859280064050575724491408948728625403566566416681637719609882147204963209976353498770417505099980476080131954998172726649162016448418205784293331030035250222165845106239635287365052215018066232836752932751809831858251881996475518886677560418704555367501318075351944367292664901669749436954575509905278971568906428123694700891677441774430994070584873664803583974605103660233038667833871717990512570055045384567772326524825100049434812745639985681765966428318174265226451894429143186271601141198994532664302435578537210759757225740514549753230311766686413307330600057625836258146559395881030137098673025798859393710661277520253069486827761028996635789900763561633953950097934322485835537921375195258860308657140003838377965910993752321143774370916007774622170133334656866205771360602264637452770252890599251324377794053363753110647292171563515581339222351540662136501631780641441673129419936870589683477221865452150279737445933062306943551492751549811301068281383854114757121186953004808795517561263647880019982841977943790381691550767476912245781767499815773298340246039822024283543129865476113808331349216675277496328204875847594860358520231403117524993103719049189683625664483832819898145361261567518903623479708272323662664279947929667439038962603024726866965994217697167389785760798127068689157076163926464725179284033884772228361507917643122377690605993894893579554600139704855167534845984458028226234163767681299298014883315020094212234377984403905187554159974227685558706277842397850820079535999064661245050121929152124976896665750468582127972317420822387650839343118576656317430376288029452702197954884881883299299002216517083803837475386819365824380412772376055901133151777723058167343973281860343332976243043915647646261785880876737062592162548973044883897840473638853910990858432084758178729673387040606606767749204788538117360833526559532426926491809948885921574279894848438609015361637967224069796947223736824735004334143054557338543660613108512615112377388872986036837076695918803295110900537711009939479232721403657830538047509509974119285056659229809480273896514938280930331490498259832217216877173265283096547190772348495640692383285153257380464768857115466955126162141642836126761958295844095300040041892570060889486402293700218325172142041160530443827612739368649430374732879739831251671222019763045118527685120675443157746335738700252879320728445367389317401186126695371259329114962511373650174421740433252446991114859464865319564770759456765746199725586470957651713240611757234392058527067489035592577755896112027024263890099906555824670347159282136772976833801679019986528234216972273664904387459238373923877103967417391052571420552154666656890048346274214591730469687651084533884527497803746317749854303490334791038393026491156625518487940337750285139609935772866542869192820732864171612762569758350201158500097315670052186030409020485206463193876080880716551906319901902497019578407207078738311013004041945486526174321848143437076161837732705222115651029497024127546041529331017040763733229407337559222238292934628213589500503576044771886906927337935669047585882148104779016087171701151408263529634403464248128474117642170131876729133600796431182461053444846260659957199516435024154126267468911538765755174438330167468240349028782601296439322037680178953829505429007550000395679969097456499279286580898802961298208443179806197194011111956595878974409615028930205079554498931577162603096169341315663091179689996983963152983587147247535682995547961923988752785976386424978883580178583472824992212229136171522150006559931515568130763972749910503322893440649074010793545549060656171636446119735681006562414192155045288757603352426520876882721982132308763206222763222373588250737954170765557466791039419509772103337215411690085746991354208926776162007919763060612959222877995170021604836216503445722614134267671242039748252794394515740150156585463070387619339963137161743860811517994264408101469709315169566966721932430172357713989070925826721253185814407331106953395846823354508432085891252857617797598903476576058085354066087784582126208343815582842279593052290352290688495096479894253836718858128475214303379974402003495444529248825279873145510781637009119484594210292243447715773604892146374361491892285948978843350491969470130130256251513693548938700637255101363817686486507273625798651526876382565008695993406201040610291100752625657938591923943657400350746800006430413604877395266179652004365527922212923289948357542509614178451222142413163242285227137389368426031831371785544968983876390449241429809639055600771333407260890944128183970249202658552795476685946423521195433246833706809189969459301980045665510306391466746278524277533075058680365492778230785698146209917964801438438470944683998268987435282605804937305044281159656755735839915690626616670586188717547797545397291438189179458700257206660217157018875300712308082761538413074489449517318517617769103080970377074234939522327648113033623312598941015855883215998490973262820124376314653459711849614504859175397765779820728270546491741090116404276068859526959659505893749151828972695206900686503012217522843953073104807349135676696376527037477496215869195078101285512879651025387494198555545922931712669131586287862702842969609485218636834143210584717748033542633132057387949364128990215854704853517633858441704994367564470869373731229771168617439285906069270308988432670709860283847865599855112330524619545079397343437059342176226970663175515255274017210695665607390370268689094699415451488571998387553880195063604251970217893846992927970967296329024003324194712551275896646154089043598676671496182766697542988253236712726739648271379420361517587059511625917008189094721426912719422209691807684403043938775634283450286338895123811563572793968189567195143169321804876016148206857238890442934243227310901869579772065990834668605984055842137086557179462554316396813173845928469982895417857622628260317732286843685505026850071322054786719709061687173481344972230983464751520617173121963008038951913537022605584048041509077173526061018489503784513957236026084537910248178701993037361631111134235737741823557923864698694928269396919093060246226855930953127355494721854259615887149942996569522924569854875713854696396245268843815225068446420445161073029722097845280854979644302467328307430343087122185092780475896550491734900391296046201285562518006987598964222361201447009493466759126603348781764104061034684093279403359866478410039530937855549786698698773373202006620300588483898290238842381855930420006894188182202840912470481436521219727862215536658358692738969140141910597786028082996575456173371216477345103116141452728440076826272791064375349948252101691520794700915796839642780752494750265437946775839491732945121371793104894600511559630795727804362735871359596396446327487494689169928947881919192213298077319168103908096420111443282786447808598502957407384693803525241711998339015257310696621997353312018976925323014899305781005763167227714212582918526597572005906752744614160477538455558892476470395407924854894968929449742676865169225845863305422491458062012076537656717240535200419785316762498523352953676387483760249508946847408954424805839266869154510548255760925040457186512890080019355536552345437867821427993787498321002410728519962798040996056339998472746144373889797315144204351314006527867439478296228788825968030631066353131570855209466064289017183195705023510323697319961865483079658736398502216090903432355289039463800532281321764455980776477070704403470699098002421499285854758376810845205888276630278296451214736566264636317942916054850671589843146624032411128487578112909798763377862936613509530138943730955453304963612270541821936385181088977843353744020460390945176732241894208825235071054808686762740384754828360084476091618871848299359710821059477313659562802294482648136982297954937572551065034994720295346630615074101949196334933250126790206704089526247847578058108036833481088910515736737626645170589307984920958865751506990040812190989001335505915810945346068517379519925882604991097386105154349595457387372450310638086593917043238430584232078476305377394542115399682611192966776283146908553309033872810942419387074144718695043406684043077479196282673916112794850367671872482236765821741539068106778744834803005757432548656793707237127565823779845659723450662158865088665495773214236670004490803866680108295837544526390983501437533934573155297510024539912074647746792332269161483829641450958033023433715321240183000840074613468753678336546244212076512069717429411567745182047853415596181189078796496784302714818692601008181215513354836950223842923149409158945295864192564003753420179147216088584708913092369599122250647208463562067156560800131246778398293670543535137996663797164696375658277831962342010216373719112116669416854952542923959295620625364028612365240420595399317631608800360535543439736432085532346951632871108883871156865541690329558144407420436215449670585061533362164120174387312911880106177483830370494698710095569828029069562322728448419573921028692019266135623081457617347071579978363896265380016899273954014707507896394256873641891821626093429021395665037746603151132905304133891652017785431701282970047402509981243643190873337642944742452855809903121472377795796365060557970565248961958722798952674522695165216536782620518744333752881298843425462038944650231309853516739533366134699328840736076054265827054297931941199526517312388226356439555661706044821655212791914526556632972531980816499282127977326563100359056488961038487825992644137923462818588136476237118366244732630459845072932532316661761544263682017000345810516654454125091896375034833342256045164826672543206459562651035155411480140827258393372535554159344006149018725200320188790054347237849487948616172984173161356227757445100641226691870328013257363367384298258180957971430839272479082243704406074612467349290551991079203431622194185388845043374778645331439848967333737786589772298132650375283652055056433350843278965865006891031415176213657152633498516585656161100174920678444857955853314757097038412240933479862849607463504552997564243472138523997544665114078098457954402248778211643376672456849053803955021491739636936656128661110347527638537878652712851473238219968205037055169109031482031591334240750659581256030716650428027764882192783761278212373775132800720392280025733502566417434687853078435187637060872018949102906750112719737736462592074521039369986447620917152875888528803953411454459535412831482223576774426951103184448145731887024720317027272179503511547504504612635312032775902155365512204494800196759432635338493006184873899422059327121039930599092375519770362805177642160267310829071098999706346686248985329301805385235666828100126209286494393844922274518710208538856649966746492728836136973795479924970869426737766827331022407611666962363174487916368458940759743800601774211876738604631525072776322521894309412702200736513748254425646539517202522433333010811459751821836418181735362520442238142358309644166190412098770970680329212258906367886225390232950163902779003704865565099650050077400556202491293925300886355716737461410758668194786837222481840790843476148792823080643952807595597854460810451069674461979774043144173468861154791646955224657179735476192947861277859110218105688340197865811805794821524490423630103250303383734832655580307887403837391938345011546698795276499184659910537812290578795679263265436216941853115948934655620624905006598301631048632004772743874700914962672347315580936711434665658136167512988163337844148506641971169145198815899417021511439358709307270484619651162998502603626440084682905103680115597139092933073008607049236149457392544607712556085962978639173096728333919360810945138368321804643286280596900990427238612445497956508572963531135787924575252534982228475845362443518228841798196842534219543478976608502294299192476452446351694352807047903429632909769868679824681593169164017782802501827511567677744772071609509504065529710456958532985055735140475637393735239177783855531895401157071318574223658570740859848063221809785386124139201522573615469712276648225764220658069127801337316938780937385866812821971679372332219359046007306742940084049077246035816671757734712924995176425572117139281485197652059551293374170299533119989373199757810208100111087346376840756479733477716250384464719277115272743366510365160615921694297912131624284345498651998204093023884971006931202666052520775598676635451170014837324904827413449101073369306303055079761609963235599165070870832525407238664645180930018704653976968101759573708521907916583398288822063607429716265037832816893078131074820728170849533365316429533992988292375902375882969563560611064914529463859367450181023557971767849066187497688401346569159479548192733739410957992389550303899482100029869930280120500926183675693387620758129377327028679491258922681020000316875869928183633738511901041016908691232623216913327025273200098515274708950039039101133985174212251841388359848965438429309472624814233283499193174053484635968697474213156840158146383818797228556498753509017060631265853784005064082315547522613293777248036012675482524934060948093382723214345935163238146945006356053180766829250108296215477721505500953843524554292517410136161390385400107264963456133463756156056108285237023797423601518011895020139215446043218676559297235082742784571487784356051216377859500722427945915352699942275290612190748617292856730373249223808651038471158830845058423889528324840117976521943301903503828026050475850186355531085155147341285002343718925207798201199640032972293479156564235536874141252234149129948309731409457954181070849539375989541848336870349840228704502779669325495050999954746771567803583428313750061205730173411222728164449599149121843921791668918087504285389650738157268158231359897643012031849344450710201627625790584392357166207419598247466702956300826525564127193985132535036858305197146551671492582406403851741232772366615986731072617432578677707068556313695475407737159225093488006792827571313359877343873759601136057229913273002962267242185197643951406911937035131498113192498106599710331984542674560628410957222814497753802836383139126637197345996316638499612733854446404853854497620446292841237444532725717299000577696861833245403563945524955153655610584389207291973388589256466004585421303480137129905895536154206411197712320415424371441789852818408554710225031255991000711338022182780596832104739569243853903188321302841095884179098182564003843590700100289421727647881312348494214668957757364023154210224474045961491211816204966249805606851377880890798435649808471256826199618862995890962673823183778323007623629962208614490732570622883408750437533672695025388241347095029569882940834328066602529339612836515184951591877926627321608483248165173655206720766254737468422448710417285236696802678736692738589273281324115571936492002561603754578039723766890406448416384754144580889684573422682528040523693088519033027685500874444626030302986838815780557080384045705659066095140787606979541231304701457065967041755738347555696545041379194181466132023291860672782145328398049431628262905745238801472534508297456990624314160348997775526989155394160180608731604842440327305211842245083903648082198385241872328482897180772186138300634883931961736092583851121190391838290824421720799314804374772306094137582922015752950232371739817129963627752067303718450465684611455209276038523929408457217083646728145971152385627427488878870686852553261518826745947876256752037662550768850025455651710046341513806014136000006169595511125758686627376822384902104865594437292234054325684661200545056417952512384395820802115362033762404035976625804783781891627422174877197273531859446461910726964467866364719320298389638867103821811354467493572027105333718014959448088106462387714542649391037233497298949514044504302057861177337871154783394130674917146558512153202380929742682213595705824283800340187709508867487991911071941705061405310060635735556632188658371789607501040624220188172198550220445565876879889141002805761518218884009266584381162164536211006893077235400996266905124989402147907228390090708687255842514822458462586313590443656719643030207665437310226971475819797286664188629691173211017175969060037485427614516171355464930709695964329022759883561717174499213233621345532895199735926067632600193733543592405113373562665289122566191452912728994099809173111888406447014064192653783017855093315580505590108363402718397951841176316301208921845333976193562964806237407331442938601328518778992766124313568497741041465420426636638483286506412208766488537584142015473961347147068105741384006702300185432563445578937436269584847948244946988877307839856895743912035985070019104709584101921264531471987707500695671433330935496698859102130891900119157676350506332637582776067736764673102510906432349538447486788216228150406705261557660992633240756176905695606069220224066716417391842968978528831927215666481961320742497283911977229107737436890244180129151071760909600894831833568461716394651198801287725545203102583268658647223146278697578195407345502418049597026557317585615368766974547614836441491888787932962109014492085253198262772485538508175224844761423829177487193612465919537064599037162198400249803226090705967063588758414843714176226542322183186406573714833744335690034579592436054159885947667167712731692016050652596999452629679463348719923576100262334104767140883029935699791017911401650754210134259197111004684814652921764153980168491789982887984483998521897128622708179945941516521756598810339503246066435454293617116136049565912264674763518185112524601877951509625064497182673324650606624099447619266865082051387487127013144895939246295850379479166236115660762914755213701879257599728245083629691704352285625215381448306473023666817205226222674480486279182493591962207614776761376489606981710715609886094268722406693398292739933882344913319276406651969227173165779226736660944978302464205401415747367343429513252349644234443308324472566041255123003887723907640425103137186557177634219040086175877777620512675080900168168828804142104462474409696955503942760774310984381856074178082390580280387858102949595253534907295122434967680305643662744666981601544920147534952221708309757034671581496022678206413598499711284166064367785715983394984272653408959240933574911689643120253574257478613415806924466725400183514147188649472945348363333460903730588203895543504444332622407762046070873253074425625748384577522438445560199729716078388050178544118272524972261831567988151506993014059755482083647217445915165764156226713161700128474741996344536410701381539487529865262284620801990981087251914397303934757513335460112092260073422093761180633676549592823388962599795960347510957764879310768446426559322941729012488247468690234538785025282037947562732483798264335219981652499966616153949769662541536049569423296781179037431540057082460923430073442972991245958198708213096080198702087396773343411367075329802392202506104187783039837698502432334029431270346598601361520513334535561361279484223227578165028052787855980699884946046204835758950268898408871024131958621554434209929124946905309154559042041998755224414571622982970789500808787646994911946201685978941862182465195136575148799596574491486491243851174003424217425466533667349446232819350302301921683878503946801942852191375310313879970260969998369834418576727812450685713116328357012694860487881673083245463361837366996225878679354848156415390338764280571848110605547093996008962904628250977910351829000412636304991638417372142996869388360617175474889375651860885708913872684261687446997542519277203328112986853295230519027528426900266460155062736521222017181631452904915504240271109272001409550633608743836908700488099659592047204645324353910842713152914395323078920128584057625766378174184762018773044194781642396697373308329517112420814435149793407240549972510028215745657061559107008490831395009543822904336581227432730113781576326536066110754204502250022035222995694026326467766594602071910888997723769124624444780565699059243626413599496800076904641234076213361405097267075270572470671207293984287204177088500379510927045208733104433490211691831068231801209709992219235202169399364061566464741974203320897201899443945282747802625427258552576525669281265986044799695573275557413951627928917003572825784166627079450421052734389832917752997380753611705564784278909740456078733993074286623685146424318075109847462010427810336188580424268516391527450659808570533853615798449454919501900190218844364054053078664187759010338576939032371642777034092315418086423276567857164685990330146628238905706296421247896810726034659402095558198947738921436264632118128956203160161579928360157492013780452793519933913454498394013203943024657094086851883425703755480198888235176554566381648488200774446395697766648900202156494910504288072145537598746532741934454147906910998343408911206993742656338471920992978191979094250664274342962801260299865555925777941608294892850262124288477104159679216378784217872917814989452785703357882546205644111271698291562269928449676326610747628466840702260830968739733815690103010559214962955484816415357851600795329826501183652647682648458138875516550371370525797064746746632143326435460716835560017012130602637608101007639531835480601951188173430519714236167420069269574978427409699639184300993717237694334849922577808197422117403916228990235058331381949674122259763039311745842766175056649692256061711339806591426399874709720691359310010424973999309789261385441657460867344035533255562258264474826207193505117854093063228922420034553003318477602313177782152630437930716485827617141988297549306697482663230914361094332455937094104645783873958089430427648875910606197306364000163404711673730865196531035080439316819923493974461536257857947818463966225314794398466604896729015390327672547944220387280800038431509395488194221080156304890876446072980724774757933503649553051394817470900154537324982114104328616830396383518968835167706774119431118238947555030630713484978850875075075942752582920387573100594078905010041213010254008769900634108583862215633407424320019916858888265977435715147437609469468578544944665991161139892798789589640429730154544391468319144295694514975226391453426011153651687340589214313464915385228363355084023938389297914951504054003698777842345214712398457948461807393656434282053003204695330255082648349517370862464265806280631153888044195527951721233698755014702763756609852300062510484339868724736874872862876056653917155511186240936690453365335783536323541846667861092484945594859112315045367966265485975552515995860118612016261016770397119741742116689001312061782917206079184527200230066023780602140430080671710021014186807905988655719033367599088051787803557096929557579515998263566438138148352658147871057956564189479282982690010377527095922157389541285709912391383383347623694747233681688316735975848040602588153259863712715252861255599214195010623630655037123267662514594365618432996856755277648054498754210248041768849614234720487043826660460992648600324519419027665570747087551723351300309857421488617542676641833378071532555653784335943375508420943458428111042891794762545018674796983126230829941227248528582407579410314675786052015835674336280838640752961928435829034466533298707644983737689689798975448045506270336680822394064509530346471191113908372161136984671162346851439783690014671247880903630778999682102252731877455199624887270673301715462521370781255429673150373267180895296203292378847916761611261671005636591457058501891093335704177179672124031861902567475820104279645587541058056506044153549028343227383171047085991918782173196062364313677712619929161005193621207574749834236723999516035398078876102839001784729727716670180988128982113907214646965684531771664312664486784153443860173812742140863684780893212929563612679383587932566162556915862877799756455528412780000624060060063207225485330154865496641863634655697091149223426825834680146233883771501080096115130569305959199247205843905177523815552000967358052047479504765579431898014978715890845697636762728121107498309773387797065808667582256910444232062342321151539671000467834528773015738272385783446812220509568457296798971947890270369976096650555515918652318150243921975229896022672762423830861664975010885831354437714049699724923481241912240322997608034762290094375380777171629436176680384612205601133514961763770155732219383845018904283921620701622303804612412515927841024106864998530224055514806581485464741535769587846203856773240519477872371948883648952466070489961812377091400165489086223279379680880238848826094913712884706629688173447193296760859585522099461553093682640006477522638883095783020202529367850950622914642734051529926672046876768602365040993093294586942389976083564398867875978792558688627522288968364243615347230495966960461374936277717138917044180441139664163948317830833874961530630323001365213488024994706469788697982895614820935756221973304796883849391522542729062210649301461493804630300713245715368721680779917757187729275045947907363625650233349317614862054731714227392471451206512265168678547205985740455090367814891578542038898680378924791181186534665976295249482621427211847677389785506848484739105016367053729368281014236802069470417854753130047215633228199007037565808946674446463780165600804582578520221227326812893380677064151718522332051144766257267025825122068393230809291498467744916193233973449343364604763990901794158358715039916331086126093418990472244116263342023553649500595611994197191024201747945158374140651254864697227253519159927380582963155778381151896511087674346058755522003672667380796599150165877015312369598469876423465175224897675071706802874757832915648678108105237495318219188395935260853701058105109419755862832498414728181493428208787932355075072390742423440697318110411331535293709965358210177490027569214193977853266576954138622448794778945815683771615791639658813987435288213338558681952417958572019220297634867481908296021903294128238152842006311387195959402664930193370526632535724809902435495236708035149403300620463519733310178749126281232533651352859622834988280326333476106293847576161823088680151377793426370079521884282735727648321950041505180113411822896778004996420881143253533702979138700070504173558247080088779566954403095241177686417670301391089651150611680668177940064668528794011544183752136471782582837532076168645703871294739676312099292557923413003738332655827573505565112463955229067942432318070379687665794856107050939695113566196106350051079922728040301877630397477210647025649716227210783746475075150198891120476589188711924592886051615736490455561459335559276342338639754022475930723793637808750104370171474322867370867423089946685848712488272441578805048006624857539366248549750174875417573862715652727512866697387223975658644275844928763893990865970354228429932672400360826097298749932821195163546122451339221585568095190835418181343930639022865809100221551172724725447637218401608922395665589856262406455307493883847332026964800026057899276271713317181843986747578635648743640854668943502970433471304016216874141490401015015723492502221965108896733727673258378235039302414413991981418564057504332241685511007244845362667069566196677773548028401899899660594020986474141820835111512385589326656141125967478612501194577755527674880746489646014196061016844644274432675148822782423487596323639372649278477987019059432573223791135523167861709846197302165380596029299596297932243873905121453075092132411770050404707992587594114656459802128860498222067619660323776626518455404763611299166462908507663803640675368259191609948631854063663930292474182428324750267275204954650374481032152425954293582681551611903380317301696152011202037469518212556270377545036922901457083151457553672607638698138990273023352791952457653891061975784478285866448811401031615311623873781594819404420373136210008768018037455072812567437274528621091871658190583729352786429222165852628646598134634629813943754310904999557744384040203786478534605314702971416247478491177876440283260959697006204403557977619969937271873326026290867581381691121104069792673991914885860961339873914488502722293266640929137200816524508955476102510119291515379204602357670042094426797561004600654612481763591613744122129293954472871063695032903708833980543508877365092565242840325098307097946215083562677627363141991465638191190951295383736207961630782803916654432486900963557559062186789731650696372892448576108218965271985685414337312598167597203045365718079106904971674675617130799492076797251040552597808881658144453481741102758186684153847856072854962080314318831848114533681878550485084125276412542862320699294315178573410559889925293671971054105144765702394733705523681614622811699340003128365142232685935722609037226907172706522808576243848205746296723726171731530426486677205666955247119034750971024920922301381581496578459632149593144705520429109933875105335914114709034186065928295637873617567618083697620191060175031597942131239701449703085117686383802730348658689098547527851361085190234225957951232221921865874753688595511030621848945617966524009682937535124098666546255405932480277051791745350932031169084500430693887538350273900120979158152995088659995301739300659760017900889484987980055814744489018244697306196386607992240347501828702828682297450892443998433424144541199161132341522484754556622920318042604195682208232649780247540613655201066711168267915411679062700704623060473642761495372744951288648558157699478496046815899842428286466785531202173633411443190087168773428168871307846521990420404783298584953729846095769926790098322794666171398506108775433077835711401727861009768918109475339243161474962047639667297447056035161605608069604736028259275981935564748127651769911577789576668234092791119321352994217339189908464166435723325989916309676222131636409126173716189186326871056392962292972319045725218164325570207878310453088496185373320239699453172726320475475545414083310271088021399952792317108573212431732835609056647958913309474806407001097478511298346159803714207227523573786709265697115971062603586222527707779285380839854877881756474646295553636711635355097960314024465313535617994786233107433401266226055031870121759886194236106860494521597132922491621242384897294665768755729381079350879291166351111409618085378583407466410547684725677901004304267850194375058994146646940154412073422556953853556413660772731404677468946499324909921634611553484943863505125774325268835483043369142098204672069240800087261355796849332716295865171451494698881504626380732568849885320227627103562224125676111750677568490712365819809064985309233077529192133233118279171874741763453332516350454553665953090073069184776314699943830496811010234211314322222741862124455047313906181914798757545332626483585449688056997713135192772568155879231038361701363997724060869574026787384256672416727702160685416014436815092144613767406390807610059852400568192919088413151774901192364655637317991730175908559799568959961692146648843956281578912209225849100817728652740366879440835066658976602337258861387742785121952152314700367475074111842469966029272261080362685209873513715811615562510188353012542612746936205529547036481313687760581269862367676191144038991428185434189422052598365424795465623369871170824706373096962939462042301359136430474106498384099681186273486256537169630360392486457411598616799059146999081844356843016845223417115015498738636454415145950739843118947902541000524024330010478731071553510662472422786370207450996734256310164985775718334230285789291327809432004683124029646766194012784804971197767595325249746787186788454430138521771016244920675772385919989150161165345710098324688411479744830488369392634629412791437674036565267899993634779331999071776139664991775736928010511192675475947130509304248425124318668459567736193958148514609565760071447913133878447313411029160255528615662914414568499191013197236335063454894823869642065846416105979245205865467923318210494430706348140193156085702238272523796277326044956584613833572028085455978124507310528561769370425502101259641504480953450738026910650950763524205162460955258052476896508058498352251482244974952352578837668718534779921251063485758425455797280864481376986376832885072802242790849950074654239874082649914861229685555201054000792240027192066287534133545781556680444088079243757245959362978285549646962304544629170684936684904286015463000139990426067020112477613719681126295855598766806256960533436434820262871630386161805941638780205810594688350557868390655214333226782617721590583585586313522763262210002161018437479955075629812807039401151165076980799260657263361094937714174819464451098137612049859945752586330995963259421932509024599053772900937947679852019923567470739501846518173714631745959337081002764295160986026996605686883159813056334133044757237393777967207614749866004072131248898344675984385615392201286465180359295366148910262451459187721321304188807353024630202707925493006101534935315446681914897097101396898976984642355563855207998454259375362852725268490683998728024735875988032622692805695992625966580996780998531115009797117265364860743400617384731357115083977908888301648190725573366491650032952786218393769667029008684648061735971832851952191416132539236665234126966777078400832311239041647596792454524565047415567647034998647888378184325334513213404257363599460138085044729233890785442714295342392383294447004962057962030831635093978548770805603654915214523603945520325698472995209824091895023843569638086571611850932606867699424318795668625423777305240974970481203272417579578152072699932018998046276805489664808225207609035246470566916579768037224616551572637846759254169205066005180054019446113844763078729174718969866460725497129157435738975765525668491294783885247119606431971323320061661155891674021337833473054493218855774568537926694320221556076682788841817678514215217033526676053123558376703309593954175299679430367927605980134601758714769106114717967703246661266172346409939381367927155639352885171546692982813082292533192370625499935012531076446469843803050698246210195189330246169398590161259336953179149578752697487834087454695369795468795944954331412933006489302304082590518772958536430350920542846805391527486046713358720269454573009246382778417918627286699059730489029180456716191036265051064648962845508547007171651659434756071044109568239820130071377924136247915424470365674231537835775590120241866660493508568377239725420175225148847760179462781301782842856919838542441255112220030147333180485003894260405923829370678849279704097907656031245647308282794467562112390130440583784397667765775302133476072419996084621675819438641270036308374134540065385122549992929481254103452670048124061202517455717010929807678964951774519624013093257934922256744097264331145040826107438300417185406633276161130559480488785714203031416466365536208831725205450968358346498739543222519069716629831240946912501755995739107588927504854927815800467241516236698257677837262218783242478614318263417766265929964402340329132569208041832928826437606928124320883538796819144458404213803509204711920702986858733267192850542048687834810768693481768437552931977587104351243311427120479023296410677325725770355106952374190282685268631282972932745342482792901667118662484324166650316623987588430428447890251200317494347396724142895161193850390342119014329198521686047600477223881354173565483290131978836439830278317824921323592986699204502713025308109957118306792486032248426836207782969757141894208008002940212527861846335385567475153782960073536828726097410311334698305493533044367954577942059254289202259116273287252630587180913135211386108778640836289903514566750375195521697944332622097948489074862145640494368387980329343696136837766944529482065003690100407119890020674736690398951530102859264490385474726684313772226457414059552504696162780345092958397768975403613413157300079926177638922023619165842428022327719776098100590551990708408570926459350159336839376547554534556258508882452433359030174510469456376221425844175719217988237674380548558524610632833534855622448427858768050702986295459163556754215848296595891278130637667601367477620439951414610842757706038074420769974169994300133383345102283547350792718511263948096402175992723197426572002734901960757850212920136671931804729833543304714669076106626079518941106726641213157954144514155757564976128568892343043951693989677698900567669935431935394399105419724379456927015149994250324133727902409589355224171667578188154891916867643665248685334393741708664073121889632977634833138445308743223417656101827376244751315641873047728276667026830205657798256247795079768683054875352630072478800860560337987954134963389383516633465019536243853743311999841488119064046837613988223691134574436711557222689930237954741467947566922402506502717067969856251826754521615319589661021733734193700143475661819560642298038966619214098807083461106689842561168458954931010977455469667781974134723653545104657647778456426283369737225029148102712228422250789880313996269024156832077787716978806018282153949374323245321630299428473043097602356365917221857360815219103852421919612978276550161951404011439222487427410457326573933458332898713835108292388437579840781773176747162902152329050884679547258001397701386102036012314144215291350262526537955037932129468582924549371173615470130323191757599123302421869870400866224459974422605044638843429089480384735965906051032235201223143891823407499923622024421819688752957981256851599419650017569180823426960954181413993652577350225133202365776830502563712802530032357326068930528171247768659049395143716924437336079190107270318652358054599075148625858069811829129568296424180448762321921591851261113126873827575322853947958201932335547909921265575779312296975751919195419398637020884091805033399606025729439245280415061845599171633159382147808845028046774107129486427545163934722301164216957909390550141955020801162436426194214072273073564140441690524089621699995892053956344295976765839687174488225232872022433896353527327914723830258053815691773244238015964909477172976065144820024195411384003070976355550750124127986015206042912976158863964868648935321354074009822268846597306272742420293317774591984604693540210544036770182804150592863168845326904247009505375303751439649131825162803466021068215343572820403430180190465813616559477777108869778066884673940022126843574386818705055859896785281737910489674959949439035381738377711186695918840819134909069910949114689208322618923364987852204312118079107916942596024611670001301199561342277110801561475204909865299265874804006483089054451038031577842456697974503254300016333005178370953258221019913164258469988133777237752032622944734869708432134342488531552385289511373791645360820294023756477847495761005628527814234795997951889041575415857773267802102001260842997667093816189149924742651290120938071159769844493375759195133667885252563721742296893740086632324668767832103909907843575816603875271646159291697140054528073608646459622437870222349423967350981916158522270683963601588555776281843734270056319886928595113674220049570979515537827489246835289377590205159653506693130034938445724866307147887883246316636048248619736386242973795341455933175927857072216104665012000401407998239033361391009981012550080702272804620335352452329852851593768330803790167856495508422642159812333060715383691409786868429093625020622383127096999726704076675996967625907874721472828907736968206879343239591979253178832290844041173014977947440177353235531823930412660258618816409399937175207145224861626848814729177010650853385247165228326041407741616860500189775475912074483497031022822276853643003736710880726043472946525723375473503342634270726760361394776381401213972947939219400249764987056186307505669449311638483696670101850408110708937536311919737245065705343616228433401187132684038835908493050958410097855225860337982453148038238341515590528674032050794193700925965932612443075832661330969837524548442519088964343182740101382542168413107707362721373973994789447006071285724672761717566228802125234006609990234181927908982144789182151302149368309214040950605048599670148015831289980384445685819008387262496100715874461892261036838773778436971675826046423113620183288456937728651227083022388907829627717088443755579686882465775556858442203683100032029491117065280514885614903577357885019923542132016351052265646182380106049917933904725114969815781681731877442127408747862698784802657056484959241768388193921068737463772834845141769992564705404814073230886942965918563498184397124445218959963191967235526063992840425191093568316984726594365536660292118446977988530282212838707905488279836559768049347890287245678282872085629319989071381659623038953337512752499521461366189324339192249553357804244903514995372929045111798386106890190737019575505367026681870017417156122099919207321177716175063741101434481370165311741278791889894651568515151179393119205850885770194656571081095345506160674107108952574553342796302686535623747844875434074515056849404608664777814111356584550884378029489900255675466924574559144153251616275865579580986659281089400807096582724292052348026252490903606580638126737279409123950851295004989647798624158447492637076318720345578159509267816550781352643316602153268147003934111808905471795775897959442062055755841360638446848453296534726384638615061961170594218104181970248831658191605477986726824063059505620236606393103293122449770810707509434526550404898151772221129290739802598172237867683791686474151943920785382151695013309236456211308006602454060075248343138343886495726711534445271273208328356277572736128456751267803432713668329617130724790372472218259601806190583380423710950590367926944517792140328188588303683132833516360401262239290087954241131984345368310168611802028207619515084111839048432798224237705696391722035758590338586552485098681001287998583967389982523729167616418606777133787693491687801325662663045914411988437326731226838732552019416661496190419673068833040003752125317397998150851947520488486463913786803163165775729400683646388847665264528239524105696905095078195676860562032346150547798067546835691728053229027223982977540626928663536673516263392245062355356344217855205615049298538037498459890033151279239020064282590451502938820481680557621294820862736299746746161040986628534000686357058934152274526238115865080952807563560362798089228248511842210119307205212132066477799036273795359240054677026166589543554649864100017841922923580703675178011114000698424365077636420569487857220323165352882405729850014665198161799980593109927372294700518024718620380845842658425063789267112425875163261123696970201771671058264837179288610938403305607007584176877676008547624332492529343124432734364659628900350052240377845689593549335459138200949220549357888286918927925437379195182184725670418510138989712418039448446196171495164763340391327730087712368545077775579795500733808389874473241272426744322662929328522476132442648912072984526419662984830749478879006831849365223988615101665362686522568731328344886100533001059109939713340710397231941927690733404305032264395437993784616909766782904971349487757625323397307078481404512201517174278586058789804743102618936149533879060027155605201657719676986089524261359861115661206080274771395820136123569841611802790061192961440720268166351099207645710680892722741043620146821675111892612674640706414489619080732523933513906299783867285607648850008510329920188627698228610214143958219368798172507796758492970469660559331567664659143686269298108445145719170895613099662421537421865839565264230638530530840567245422150616641000021271076869147680126803905919776079696245159610910936518283761778206458668586558437592487338149138043911219365057236414878572445212773863054804214256121217744443994411305224693236149176116771273649806161226322927771980313687400891605454992216945626677446709248492168744477250434717072562564698136662668904843587967016206079500465312556745837655876983451854697345673393606672820489037333640620144705547068704950994126112542049958289996420681322153280385080631137928330373867923438892585691111530968473677785762433538548166246005600679958164372787408331183450769068781274697866305560015390215707686603142698467129914405938695173292196881047508910045335390783255617493538770550381510594517093521110684941620932478942984522418861777237439278650961972011767525144129268399602567045135590118986914029500286458637998170620585673023887296984310368915579440880867288100829209120558347129221927042625148009400617440827830157349402354096097742247544206462865378879432708283608078768185153858206320207976977342229404262539712944880688826230876135526911940483428628224743195650127757048551377481687946710937044970419721404977799212656213873686290038027481720672686953327500376061478761872324831236313592245968493873375549308144280411291215168543979691339339458756822483015806293065439970440172887336494848977423770016128126386953122358145622102737935341312981181278107436449979960942310067765220731544507172480525250776767583034423671262176663242571096431438837506889003766143336014867005234626990400651421823025404726290066410847554727014194224014959245091448324380984925275850162552667018892253976475374580028792824758523982077765658963791704460187537990889803405534281912771998702045567762916811422237083124624555924574489052788749404508759805370566619973924714825634593352604782983191192274155555281013092782594599550273679089856958141278361856671772781816023907787031749155922802903914781182713701556043438281587387007285295887563594636976403661484082929270813267384321863236917680787737791339526458426451479598039463655657774383815023315586333138574467795406267416480224621494416344889207544416333026003020231530968792089547542004175101409659071925236381325069177828751547149028979807479449504901528157499376722191420954570908134818675899279959768684636315498369956405067269876489675067905189219919864196497922559652324589082611973942667533966511888679106886815468397954427245730213298795817545164088167506854290978869730416633839204029166614260287967974212852662195865905672197459739944717409675621178051833338905476982253863166150566148944028391922557761911754672087121159077380545481204810400489097164334993973213893469702602978394148632172816347939648469203966679934456482635299654221060960424885322994434859716296812047334490312647766464477340551645995690077674928814799888023385501828109013450415393657401517755752771837950414498797118240966911337960350385570051105535223607803176259392964147020361150806364479486777555767101722877448991271236620990620420680390600468132431514995132337427637713654549269918379429146201321170469572974500731095101001215842563991963820415549919675505837588838640468564051434514109012880446767059769165370879384492348558202633095182271574239369398197950242686058463133499706236353137966297966496950714925625806630020399978226751426325868092888740879290495352588152161323872240808998633769458532804953745233186870147970316552156500699197863998475840741986984440768959600661919315461501872150742394713578250593118041813930823553598544059009723298329588940822524543411116003285839931668244069991529424529794502221275768421003244194301819198932752389371870615112598746199739864120042071645803068398520199004332361595561453705541197904928831184694286079630037872913832201409759722775700190517497642852321015823948872220248734302023032854410869110545466097735746344193028503618048055798853478854113046571987625415833366235381994128143296281369979415889349720589820069184536840584354526563989167125400816282715320158850930370996901288490879351287752642724480918744610871351824048979762729572489460109343252734761724234173913969616929790744081431334195766696004409694231164968540163682117530741078915600927350832484515675648193689044861676330572754924708815372248698415390872008727124558979418737475217176582948958128293918634442249099159332326283328667359605530088265832784426027637132123215534099696288163788669778186222172805617519196974897969325598537567983012052388607816880453007079189296326703977110173527574731058792286958906594276864797984307608148255055147379112979646163182059078542550507409832924429453421450229243629854527543884343978676783958323534016953232186373931914474744611111000310039363486309080359059405758384643140330746136916044037673055881277967103279315664662345882773861347851224387850024813162679456571556335929886609830071230124923277054836602415398232258592159761069551859699181640880614511026135431163398913008592373636167486117160033439017075135655248800934869233251745072787588823776787527130659839777300171423687293461742468813493533367615923382823506642732895598696122436215583696719573940996457609434407097027347170843521439947990171060563053897002285895586799785620243920326076733781619562407830065115276244538222877225116416168658277220553561120063419749568581613491779299221293481216513114303936544792939881169069732751463325922038324085680488818353633919577172170374757799971751069931433710648002916547070800919703208795614016576530304610122929811193971552244683762424775425306783301295673455507188394841071539221706152040605810234343220382654376172145721822279062167665376146910958359931330463976156738307114500977346431707736569735115568363215595963665287683770936402810013154240168375777618687638227603939662213697294857588079220662165420845574752266721418418523670335985339637038620846452558549015736910947241206539911743995632145559355907712634118844167885311553669803421010498783761145028977980802488295141858032565243308606743271576079908172513813682052854834141291451896234139714814072858682122707523028686397831617523154547567819453830054368011830778864791755592535040243480548372103328788252627121911427372398976049688367014422684811338061651925383498599049108636059127703658557811977022962142476613877756877247260290082942975435239060024557445002372868556054401795885369328519154056954872610621081430761724626008457358762393797859384007189008131456006902285557770658717430136564315577964374968939081243317500387203436261749502310265800196936604145411754456581101082560898623217680866161921727595190180255822062362593749316671029259594585897304559495493214662449354982229418189614197525198399030491675986424540179346782132360667547445630181674209721622218417540714248474556353496935111088159541095593052742473807708176298304676278536420295128624221545429133605267590827012062744498052981892123309201694554331859689335812207008077212449479555668202654167651445681928633878108094622729855922751105567528789150202738876463479213971692816872902559311281387310837882106962162121459936332253071802393784399518620634750317201665199689009185113532539202359828317787038927648563208183612266237684551731751262985191048775395160875590823475641939527751370250793665341268038755931700914687928987189288782740028270549477936493247189733945499288433608646976624807853892335509576691804182744379305189375817016046580687482232538159963510325959656905064568684865081287498355315423067602177347082108725838242188748121250124513123894964122975903306375910831580168117538328998210836624430343453397239648787888285511439324813515111675714080322309920431047905859637216428164726399019375646995419346158954529552454821808547350548584205729390540844699916265225281079858176490918255870708690927211902739165745813516289585853849012909737671819209930723202073470939713192985281545584452629462644525971328450585645278811549473793505673623053004336680189621645412685287650158532313329309290814848433213594592873774510225447787851216715812904454102477404810182661994060588591060479958120953680662532220262648230420969403576684370065674015076097430370921926995051813806128440503477951548962815253116667955815351042285178328822910432155030468718495838662290703122150231313890309368931603267483577560309238873332248045250171099122244987075280595616339257096918187136358927739017191633307291240836488030648809051060459003977499985481782061269676198373024859802732387203603369928390151291786446817459549556984103728281016736681350633872804909092939848490017961068187262485790274533946776946194971400706181796573401406164543852842072285001363945491273793036475238320731171538248986128820615705790314907320085677795550326702164159901258518023486212986300063357383114535311184640290574461009129299552139190318549869062434938835062686669701836824668295629892148288139845316712682751560127718246153668452671135847305154335327760386723691355270745940234482825532359182498815226245043532533730007295353209483321923272323132065045719015661686634427099974423293716947068167391397586194594099832775323889600103869762266295960792378511968982165549853767757517646821015274986660706990544664409629743658821328768595673316399615235275375468834240768585801948460671141167059435952873611768795661830751740113345011852418643491387048554846379518648657566035458071751150630957542161742590831144121993259528200857304921734508428583851291973661596191731380556678555141626074421527342109620024348458177513184526571592631302060106403032136345894528520678154541813370655225433516430334965204248911985084363068442825915061547444952084322649211935510593511667050644001690386463980147787520199912841537905081290513364579012697349219555038193506170936881171505518455110173684031990234913685019147157284899495926627493583969857336386885494226691968744101004329179949946549263545737890876119160750128697484002329195168296965058549920516876569638086761319622468801048642177089876421304006854018266146195759717783497803888355005989640760196400015895896539012640279492072010107792700948780002807436067322250928212755259853932132930282966949781094057663396504580755508932055780148713443261494478180352523155157905157974283772737613279582787994753331382649560359416322282236092728948828166756879580485676060016637020620803757886034292396046360755457770819829058207973985512328319542400605581073671618505152896233595850830006924937836182590606252571702335023775692748168701191575893301456867560352038473710618042476535259532686480382285356149665274239985626663662669844717308506096889342264882727933171102978312553194289729732839383466540305233998724903909083953046148594678328509942434883828547166497690165530566276124872281235926344913920432629654790904608108222919409642311739975588259480514457953107150063979432025634849402744260152895182418305987957587142121076191999557266610374243570328634063590945718832004790494228228189973757259167653909498727424959604336511919431587808949338582038849905668108149824632009399768664770705042750409487530611942862188862257415844998989202092447449915932470032985546615314669484628891229066043839609753423150670627914423623506898561632440337420620905656788572304156944797961486166539123631459729585099013515293369102998635869640155716867706363116528405231882081251264757148214955613550433359088390856603979526023529705180593518799026883752913080941592190169397888604005715850649559259293677446325448642034928044944095874164683101688602743676620983826550879082608118323028369962482827312082448845834999613741879011092725310586207252980085929072971871577266323602453430409243574857889412186627361590436034653469052608697029570952203656343092664456992732498189393740700051934619424336963506816198633438285532595746284132159032587561237668810659829588632324203493813929198768179680459005767527352627275778960382589442868481840423235141772578596376585846205548967018891650475656001008073577208038169579463685446771571762992187011334337086254944009465280206550834718790807813263889651552688026172445529717639675825252610245655919134735032967147460925602930629560685806003514426842359464067929500855497229457357554354620050493577507957304781606164459098691343649860753956482419572085339397546785746631897036287953162513749055536244520793262552807108728457377748274766318395700633400763936168129577396539705656012152517807852335490157990667912725238148528319937547950042114150699735363351631710134406732142578250493266345015819950613952350194330846599648624789156557384283101880665431888380812871330039968853467928632070755612155808219506481976482196339554817330340593197205384554292428952916791626699146962135017425388552490569122825290777376959767532440764551219470481051252171039351343564044656833470527101660150806280139361212830249765310355023199733645899407784748099150727627847981256648788545884176500862245806294675347827036269109378279454005262418513967297293179683029051149019209897161885071065617160282432132218122491235071016618665442416248946218846255480883785836299909135529340224586435291030713309665430210243965472120794389755693905740754235942524636267173254502908855461316994732415200215693606979691272092014993820743636934137426401040553226747200249808680974971672551797444508528912423233501772638938721562103532845787541403443713808419162305004914903568378343283810175645206282078790924841546552441678223269401492243384254282037943523231142415208755816044836851628286739296541418259411185070284520820082700070499792607255725141079231361552207565106529592886258372732132342897755079298866727873416060251117212429156441770855516834949611883231639439630569674658919365177049800862014704168266870387656657411977019725033425918783052243976108334059867934685770192472410914187569078250207377775945298342309385533060523005745296632725260321575215224508143187915213371590231500266549787765192446700723370273835786336723784688879815839392606672728556075429754661549087899971449282913927373416350075810689663522545162330113708730628189922508185753374371876623898262791663025260239063628520906767579185573294574013230235962025589373152984234027603398348048560741479490218691224166688357712618822424762391288330065121499960904297779258162902227819919720075026101888834218159374352098946862029167274980044904102214500998968159864698381589514592183980106642005509276076090351291554739494816205882708285889482474208795112309568293355162672132567625399769694797258294859598523502607867008306566191849920156264108630706663724158120395692537351049350553942119103107457520673552089082755374936143944995821765293437560958442507629802924045913604276246464089731455963850613276668576263970376984307544155277427070519021090797378901444949782241842344627493143220352213351217100253279522970602614724814525335480811526333573376229103093447564231521762687065778327129724317119663758506942884659290918427053220141611199538586584604240949725003265309939282775261181304491120020380048324278917927702801484456467926388420515846596657757209053061525798287080393845810226528336718621427290936386877864030434165723512265487449917574115131578417910008994752019405962555926125667599807975894845867381898954887577900574716981100397852020991658316750724765602406198879478563280487395865682167819940222430011968512378824217083655782325321867306975898497680580740391324408080467715896875343422568525301203285575923379596653086219041109273149959749590641559010296490818806681984784573019815019077636831288552209151804368834392486824126806127845537405544827564002992609486284187013426144055474050040764552440589500861125708293479370809549927193723917072091326927666864525060237384853582729778931958785792241911901469869229237815723566417135523672010078447332482089816728348982991707503210298776588271546644293100884482862878050771362572124680658113810229781453849879502675331108053386159772113611570028666980673160357856480055492388625558180150983526314084526120063922297482528822392492529520034186879499903133158208363605624918130159877572637097810106923065668598229939116279539843731870969145360014436929551622909801000938496236385612850959413764656030005094131292870793957816222248215823952351529031898369917102917137076295527014378904372799536468080632751586395012891971878282019751390524897650153250472332300327889189568571186523752630027521294732064832746155403609760137536637815668926183457287220010745834960231754265096441022586711887792512741682946083937768076293642890994519318437743847166873649268102986566688326821761765538737943223211511822841422970026977090063986212962755667913636870770138106227836321959529786625826519521479900545044819233373997095430209813124092880265048525121964218961707474219609835461938317505848513138575486696406298818396463350086912405063695336265638990406805754533004847102630202621981413559128974096161229332483229610377388833517572526307440457521572706167155863154427813030291708703287037916045111123034313549962178081979132944411582173992174889846808585694955659450985393673041963796821329601029661608003794130907311342561043133932422708100769952267126358985368703931488721084133559341975082058527268685490774243299847591983714959862512071985475970813407684472273381944653135034963332984409435468032105976997538843946574451908445811740812115794247397710481459110608542761936926256936229025136999834680915308319502973292754159684109889144807385339366750335507126122574999421796907383386368984347377829307841394256339977880130087710976921169386403173194934356346757566444505495042968607665852620416483775255043513278366630173715445712173779004843593789842731803718660315840240027730003008162508590802335029768330453105322822365441044038001240649454758026872047950785099908538317552218916697956023758764639207409379539262988603921192347848587673333956014046173709050546893700709705915734540206841873664267732926957427417928376738120310029416171170275085080909605349161155220840736032016937857557345501240864945592592728958875175004451817272754940397577275031442635511490198507867911508034282558646204840587647755634106685233016527920631866600303739077437829233455577614665240410221115284633720513651776394744258982145932640606801503094418288379931903351884062090324482137323974057352424631752995128099690515250215840026890839350728641889782512408415982865958563187153388759753494232541460330666617850664465254142609246373974979815813387005940406124456830418189227772839971010415436230472637920834167106133347705393481092901186853005312453393388865918259133609450458877068041844565800949441713669355534152158356121374739468345554910086294637672420726095064236244379410504142385021335868814349494103798356345662773056890760959859636006617857372937584634789744009887828568478704713985367770349555334502797595678497459407841153905488547735610888121771288919771730977595836654531302972927871965977967553179581720932892638977278946675965727186458021116970677124147447552193500792393612881727494013774702377278399196884982375825090259814460804420864944077412326948658857990172903583927087866252143661474219636068321697467380487839130438829486717317847981446841476752411943729833024549690317579069450760112462683555827478246095220543601238492305807206400882258550506679866960791275305364643360962823935187085803589417616876411438266705797869503328665973932365867873451380157705099682203099956351709541288394100560019257179777558409010827970205143078861604248596464248650507264137817282231011086664856282854460241631003837383052063723923962471534929024732050012928223696477558324090910634881276675545486283444775420859548705652155370640123368886207326186297374812549348896582933826897591566858286491193898592564525635983266324046224675653056325020682301547935937203407846095419034808863393880878336047261396422277320857712402625127446827061246536318716427209291508623785872748078414145947635838476249164173299410255594415723979085217686169040021907462548835898252792057632351609961111823257647248643116515125152668059845625311403466304126793910656242107212500193412125313820167332031250641461816932967810603543766323668426798509818960203460097286981451720263769076190380764453379039384084835142769330466093199537635743687849220757376300655795121862208680229027876059925191379181813729695550452458069821498757880327548446466765807944871430603119810941902083877718616425901356068409785616809204889870368048545555065075484102700004825386408371033497327417093914017979102445164474276813584102232510952830127978786169843893862656876025125990783950068614370606388714158062315273507569789017771484830248476608832008753192450317718807214764993804240686962711169610774681160891154222155899479092624082122542140418989205391813947774759334130375736469335238788901273708912108478584875839100232485450018341339208005587956049040294311777417848165016255412637185993071116994797121713268086510758458465353113653409549839900661060809156336984294569086751895526100563023295096053860924399590200110372859998492007682080941399618926998616162536983851619669058586047476629553750530531865584535890900080894814919785223126543054861725730971169140659624781006278479311802878506667860279410089910686704153494845856430432161265308120176872405931797299123189627467425731074148200040062098563092578692498043793230022224059830051214428097820738122779646183149597215572752453269397953452685969907153316069688205680283045243884422648578811688785685471914638836101585217483280622598569456808665464682263985841542926119135161248373836325337646179508152774998708606378557230323927429149951204501355140344736463492015607781032113947445966172764197787693579556188997666974500171568064385845892218358092391480645616099704195797495778479796629531335386084434374730219394630335462834212368771813180381231842422492030572818642905348606151420943401784459527211670571966806747836675647087470479273406085391319540461824224310706221319789047747872194461220378054587955327595629960545813097605158848131205564888209944663503771994772553809900968538131460300881184804351529904311709148222678761789718031040234135109061115672013928858640932689294143911998132191454193190650097470937903544229307277983597963660039224514325102069937340725635633922532068511244444977179083954630826366320197511626398584124373376103543063339650419670764960952184779841665849287250203315506178658015000167063525622743754738417019208500542232804302722780601481251341355652512262397282104490225476998748722950671832228307463851827571199519842765875319153987681605628802095803564530587993378134989038810738615195482949715959467235069499896383401259277939727917133523063209967949953842757033657083657534552235990585732618280674989653738266686866003236666529251072223591643562268943663997208657180695474995042499605645704156264376205415845429061993530054258100133022967091696177211750751247929087831622589883529039990811283210931460968140783637662899339285023229066831430806009398356569943202049489254476866671174644185985840097263190223072375983010392888999391617588072553674814954513002889590035422162873032018189479638372886970212562757171231222564872165673009556694060108120219752390789131810011497866481887853529095704201425922964812683896077081199658529097682590332363585376739008369637136458809818263844697078139976338093800287278394585502379738950500775507585040376606313384380567438047012504604319907952145143461927718902206016150053257932229449195562083467003900397323163406736655949010568059268357082205408344087469887782927212948899807603896184345865392247711785870636774137147316194486724832329373291260205035267289791637125799471692481312034198833831020380670287184629210086486740996626107697662570727225943292123054943069254897993374650529400619166352992167890875250574447252104093724535954902930712732356443536903826237093019237812088341724780877918589352432408037636530888190598573820458280413630223107417621667889042587867944942292581579806990678413563310262478714048690057665683184118113554468532886931913936694416643881773275800411608163579772495176287956286939933779273205716068899574793287900689562519707080410475647740325981307744206715852207230260684775818565916024778362087053168278863502285974254865061421489408920346403401708875296937616341542560074330664529068779290815576134203132266959360786255842864661802529240005079085669532486843422456246309658925791524078553617929796309206293375833497764447862594991842327699537413255409901468457700090758594191591038795942474052190375677145068982322624212834276161586322327529737411149915780890497300011956657416188724310797572650490605280199182034120672991670333454544164446176058732773430026496869601747228197660587989673460284091938185037476135048369423573566077637435392953225179590891289809429346856247762953927931367232345066004600212559139107072745231156568324271625000872366442372580546481784883215635999052215793379298791962574384112356489285337145698299484108532912326759428619204646375782070415932325387754352330514289396459598703678888947521290235330383031310925283847110080650360689388097622708786508706127860969755436468009396747294513683974823721207700187059541026535694606755097722921198915021561170627759939976781044784490555880222609163053464084165453985738212251725697473809686988637346890248464625575364089432309670348165496090027241869747586233623302617232371206797184514388684760337468893332704973778484921128396147686855650436019140267266907276360917792347974074566414513587777600781640959918901863726886527063951327950391104326323328356070643066851369926831113510461936784020916854300394091501119693016009687052848553835187038536119368696833234917626765103956006050572138400247640916590810964180126211798272282304561795027271805678362068782969385643165746417165978412001456943651986570696032042195778926443000575278282972846814643954513293893051704010716351754373229053847955966168862698266662964621867480106629033663869657671510299294822395663534361777855722806855753127383474519645700283972121076053724833217942378758984864680183509232572534500786891904163074138848809373076020950705721043282396741170962381359061976353870821698894266773070409381636963539211076087620127822690924749284693917646931045961883471165402908091244478140074113667313282243204299585022713109650371457985802482520619738404559714035419246733221310536459753078924741045962639724588614906656057499849521054239966016593684619947471952199594079999514320799552829522917894294137136685515764825732683319532196943214115873349577010432238507434220781401395601014689631895755471253625296188405270974401684734927941474147623079325705624733786544626998484011358923669022061620713106767449666547453563847073605928784260431792073146021850055437503094172641697066383016806349698784010799210428052496627613653743188345109017548927711248841044334185986925976403788464833172319351483641717677636976982397930690704891875784910760036448964283129145453084097045825015358906466440805827675708823982595771646969910182200753427870192473409252481842248903585350765587045510490198279199302186840292820279295404476950457663644842078202828440768593188603185721885251873711216586015172273998117643011873584757968948833722559179590026905830314451239957766655534777910422181401104732838345921473669298964728211001654410374663031804771874900882349080416966479697060943873440621885434533628852128448794026445307886592604175981971275289420202216502460671103937939196840970116377943463728013578804505974759541765641305512948291982542095273125173283355021811607140256121148922850875563994875429727232491315492448984477332380344337618484167778369270067661984339420708054405263819429928169029528855843149568068635044239514033678302346028690907915580010693007026367847519661865725332840760467287738418938462369522471436669859281983456297795682340293918092399532541901231685575800471017692671275811063301113955728539854350762108920042488231858534841751626720708680822627000689889104557298612406691570442901911277477955899794575116263376491136733893910504400423416905171026887741924103365881093167974137614956057383944506359579687332340978790362371714229436715468717425592946697339574626819720556004145452126647226945585171398965253337881902504528828426891014074971769798788482806722506058882727585774881447353449924348135933935747771121459059550638508848299840895461853476575503192449057502545189129778510823765933756499309653440359348582002714962452110363293458451816176451887793566550854560095742719946180701939607258093130144638574553509344437163520529606329590524860824265685038451897486473038274812928897458885177184402289913455920194372249841101718764482067969771713419548641978386285480615027235231844866370906236371517715802356438739702107089263298334913942201442676939860056330040931660791217755978810584651761342718569700822496180835021436875491047317306534846774449204163805640264644766570915235860058225981886954641911639036173011707183419016058988452748903872387753136558696821057460486517234315066566296263585299325924754362616773070003734326870688748876321988271029030794030369119591338577112519505673022432449179196757429798772973131199472538988827320594153489444881427386244849514275780229576167144692421471868625685589756747828895728520385467433592291960205131203995211386268685424294537861212610880828010731896913179480356279008278634751184979055695020433970170965122101712442082306176045250469059624859959927700699379747251406556940208474488077626132588697562260848973388190605546640203563783720573846908884804642747724473341278816453024189715224427441050450220965306901860193066689051035752998874521340874692654997112064438610943804326893807213276516480102763896852165088443721706064401651080342504873209372015405985988295572473063945318610102956236686612586420807398420079807254237941391919150219502033466391206323553595776891075604760829272526321033683218839541502692418162597719986749114392014410702115656221411687911792306757957778820521772276413257892088764127715620459020318570164572352711961470105495593956001693993958404762129002733630873433627819584516045134098902200396564647273261486118266632027216660799350167095367339498376883545768234236535761050937654041122685230554661833116954310687688518377044401749605605835051506511894287120566028309344785359295914319228323782010166894737906532015429434000728812732338194932103571852624249670402614153045432284905003475538968239532150867782164697215209791651168294776827427107520415742600877158602148362363260210636967372818004332488370261844050458883802022728268284512460289747644355393926769415792458806150657526048293383316889334779571025484865048801901928868531076704558573733701745261532513315245634434915659567269124337142185962415174197659143027099393008408979209401303214359676845023428485515964780953513368663330345171207897646273522619184667730483312978769142858635585390115447631911163069989687230520474361089087164402296179325210557568951939983593595354152073564305218393730195110853356945964224951685716872316733205863603963889441228683173944295236507558490473984226209575490485314534130731893012067198657154356243792287614465784407358354174677163440211360526221326513728589707170265602445290661435377233401696736707631168440830852014292629452160715757342839325873120810353790926912437790174209042335598296045860455594222898326553499981384113874582972031289307667930387442294787357220446047915806399203242220202820630492187543443158991900781194516033647908697179988487083433234571199296973360078915001727946731555015430284311075038532653419228470436242429722696265626368022518316599405179407455746214507283527993833491922773632709885952554555759865781483900119319102309761355994834431791102023916688411073234277057287196925193901400971056086933471096230171912737678855458601176600836670327960057648773114175221539840187120731107471321604868492391498073017181388203852617418397035817218544635768169961085237156877944577257985247149372454465622885478540469811118594304284033409644437684986104420591784226864136613511440751178590585471581560930973319673415740708699867122754326602270074786312088898578770958080631270982312417976896863556611810254821115623674259634784487921176176601805865912227036062496767305443447048668243998290462294699512371275082015299655174979332331786040862420751540548295018977103622656161927000109807869308221257520679642888333239303135494325844870173573631352011357693576432514260758321296426451309935065172939151125793283990178994432045204070446243211287749142149506945057215627741774528450521954918672897953811281081729554254724058807546715505680710535563779969463853828378752100819570297977876690339274253278734779495746156981042348596058486597319970674303923978263330432579414782338121357300222752050711423628934793141061818840104364691750173851663318114634672188239838914242060346762125173282421026508069084442818445184187458928470522852798276222947090339377390327359481779667039341811955519635584411904741092868810016627032213330918176046935248649843365565403316085754399619976778359698089016486776461316134365468370376656572882168755622067380285264619783385098653973435498606236051912882933802582751395476497044021697566188557874033628919490710432978945928332247539425353150010197358492218836143406463611024469676975397717407023966153727277243135271123117838782447383638769149025279982807522665833707236585117161076143408165648396228652485197886086418603092665042084707009095871246915946716323199382664122852079079757394449184071963776933153013159767617196183589058547909728689518578945898309499147101194911138737544583210140747325651666706368042367256485257965487701591619200727442518316921476153580867908877879882313190203351377584571461059711607468872715401321152000435471122357097758411181835157432631547102193542062134077919439498608758330281090046465678623706308143822646190579723156796079730117398998522771181872169419150925808274464950845709095577388932273909641733328070823193670801929468892082284925686100506099865642750724395406484063601762975011766252802421332461001486794834642917994955882617951696672848451424202815250424585587319447393283509825125859098256519948784019597259077643388045966107552629414620266584651012787671853861069581856458471558809485803370443320910023252133756977516918358822037189252428475845954624103044112419158448400613949842154392823882225431838178037249422802039503201876071021333807900637209470249543419829265580709985798926025203116032941063583073953186783853044306029805505274677900175600512198630740518642455477617623903766677306044609722182984760501914457659711313974834929440092916251143729015643147225497911849988423063485285128692456202846472854620502766429480946570488189682246092411123620612744618581758095430917453086868190481910407811320601354649046482028105543485468725458704648230754479535448197788693493560091413691251876702806796833118253085381682332290750824953956408505106538206533609035220519175991672305882092049283486207544025753025210871786832822774478752343508716627193795055489184870019983484565367779593381778697027826067688477726645654918276417913593622606137679045754888492472950935719358665512326490641946716556027294210977243020015716779309282434930540369268892199503366753737654303926400426694293074005813486632123827561087929297989908389986782766204912381881107578201063751485842466514122066058653243473695503962120432544068352368356979229647584549589902676507488653674429100417212878722333244212387815598920141431407477261170710443563564502425102901658390155612403808566736016847157332105192783216906499900660434554268486445675201588261899724851415057401451578576976389899692705546448060347199770877214355498511006449239398127310914544198774349203150434347515147744975117994209864832169165802403638621251721751708823486411998332854451635171814379045378132587993898638872232136941764241667303119409918244382964413809738801760579503175667249896755389025740859315697643609253692630402693545635234648829159209138790827873897852196949776069206483246561394572880946193644998443139128768702495960284500642228232452756127995832048003445394733580835818273084301933083382084999245468765200148205251005056742700217045308794912719670865880405218630809315834735809798575301230024528728352921876072437763305001882630636054155215467439657722623916416304196568604649023195862415831769947162209138240170697371629159289331451289282171498515356401744190005674976469151131647702945593096042390646887741790833847067249950784520211741354860030831418004488455444349955133359852014284556775979153899762541269036038491992325624123234310199629385370452702144007712250157355715173297483108263470929511622284794584781029348712398639387505596135427467620453201420531811122416563713674966029603949188760634902684336099780287935254442794300496509151561200888689907436360286601543871622777379385768107435863548749655973809011581826325062024724116797884575901173043302518747732628671709781734320869281048922135875946796437348601386478028980640432180155839300893405151182265352567105028695996371584249720291552149040116203518937927784955136910819124584920480648354963805560220168726028941820633897898338040061109312262074792735418613872428351663302954359805535729439907203896537688743757524360968151902888548996625176427482174221077010434183031953338091028346312964324505285771647617536254284545061772763543032639424993519329004893895511679178110815411946334671517727732913999873524405830816011053627934363405625888255112875370222218438509108278538598424808936821930951194133894458097757660569982959342576920860191181396979121867313805750930825876397024006482085412472033314363301934889706883901081634923567623657638734773458286136629412182576616475361325367883101958344146758049029499098384776454961445508217626189104265234566905662713998737958152083713873090594446087914195793635379590051543534109168887602603639353240352786783037696653119435390760939438149096527481628206674526208410441126608228893645171735805620950200784104712867067772856220672971405356416777229904244315541255450472940965403251432509668606704695441687263915442253508103174656278657955885446753788454740363789395478935026527907903313486095017870698506408341216971802844786785928641307699743879868099023213435149305261786913536450598746114245145502713556903413097300917414576081636532998037374339253109685656979896091087635529135190359795834515771841122096763242898402607222958093156787641819647469570882561356838305763503242866184943268870698685119744237865947505535792176442829159621689896914469643643896065967026202137915640923142531795757408563590756518767102218787634869076415169375189543558143169248368752514829457897047217412934684730722802905300169632759576819335235353754341088201982279964458427315412174240614880197425768185118263076151662474773884275990550115351542756487753299202612931300152914442730616101312111809935349665858973413737009339996589419640613851355381214089588274504953751536047377113977699926390447332844836230428313934734728257527401343340326760867274977208426854547064775482226019270314323502597182126663206091257041057921975544113414361835309218262104366695970430866500185376500089238051861437729413271140484611089348402084195191806049888131280705762934652886638005593294953863399447858669266604407554603579171107461236160009180314578848104455752640049215003228701029578339799749809065596472443422824733005973501556632578510250098649928469936422982819214767424424779307418911174495590862687826577238362829783351288339930432947226027259117392716831526007032942717879679933728970376138665778224019886829460844440489326114236040631694763760755628915324842371069886400791879985513569609200343588734190049086533748099422218968951771418587708136213033534577605309209279867343775890753956825442574258372737324815586866245408591235772948922382071520421268622084328499899311241788213030316045004537747115774763391644913822505223541631584190409652796939902037307759565143285920696037822729867195770106783607359296505326720493929729609889866441177141569103548845423741228594058741246083600282084900005451994979118003626952754374234328158958412696892853252906128334036411111052408729480039427920677650032262011123767845156783061175025515838890196159671347985993471513468445835468986856154969347013528748013775799630170757261125051286139571829511303738060883631141025679283461605452381088995926395368434974847697386339964840429673613238309021559575239432328446342302897784609978848868512706638374796833265981484409352037923758299033995813492580294578703865210895576620683332615996116714842932620702899097456379161138334696349402006911292512838832701367824827441891685802917261939692094653093861333592745643026179071913916162279457595100556990978219956940334446059312564201167999934645606920414460324051526729548205222920102094739632015535686766188692344356997586822801184492580678842795076209580042453622536909165263423809572048096790943092544303629056535220360608687588350588972967218948727136402719370420666975017084332747543402994505775424121417056866309938496334242676359337400490613872950448061723602681144373498994170392534721311548863088714417512845465616160960809328593300587613686867635759381710771029653275345920200732621146562337118189723795011531330601468825504056032356009211281482107578300512310515007010421718603172658115583551512830743092408457796085128028922997540620860645932598796824471937173258963930096997593925395925366894159291037225024059770323648815447705961449969930659863309349895829161969238201679795141266520877955834862507876897793686651535727811295259146671877608665621321560566137080682572348550410434833654501339930071901161875841197370938976844053544515339482564374181791454418001664867063237623755537600794103093937545568968768316608427111088873402101384060266404040664180562437981304477481906601935548384498026041819504806283397380279471353150466960883757786321188240029606795238797980899892006471068977407892970935904515504268121425345302243925580678821213929220578701653358682914490444369978242223175698542797882412869533830466463407978887745112571627155462185320288409666937276382537703579360861340926086222585300975418611838165220779799912847269757816733867277379072608102980568186454047645953194133992662848829448941899942394998919428619196391773992297402183906020253649089095690048235075987095970619389473007336409818205681916663490936540979587260855627079739660395609656325303102713273987552540686105991491879469053184753149966830659565197076298347765234325096944749416432870083199350945079555098957321008557458645762634350649898906489776845079447538248692788202209992004114031466468709932770372633082945970173146520570782486088781434708077935680919106397004904025965804109225330544982666268896129417691338933550877297440668122844526934556620120083854439473402009839753345568018951521482537126513665042999658999611851410471183075475613420876031378642440109544837157553275983286256997449343264777738478279911319779376099752486844129010378568557456651578968856725491106941207827777187344776828966200129027267762977054262715924133821242340423908130621730660767736067277789492082320142740240224200231794120708138731678248084785279197856946303376895208626873761134497725740260444426226266745365234304789561011288784175325810956105758664947307726194433700391175292864122921354872672241620211681787058706153602517219495623946731995498850481468079305585634151584910200792772617578708830724892104728830832026852755146002169649792921468847380799973764876943442916157598989049606438620739996854937770203091914781083015975410098160935070187222384829881489994693597631687878595284099931407490263872865555188091647724801852474304844045768351156619500770530863143276140954774132819032995085657378910016028703039395967209548950295894689935360138315805168091567020010883888987738174145532548795618385007239730886809242996747785464543503034795832030715150331664290356187355912846899899801528303194747703294932767603365889257240548061672545276773674558678950294277922048926864675919218099386221810876277604964132480021988834776313571987657940638892264691801329878499431978069677389211118468563227505990411508098903023655371314388442443229846281653687140331259771218996107390581908739603376130066360327833736383935065747474392796837457864733674602229920879727531415882107869146865913931436357203944431712356898223070850691911892356522442064844914098265281065489938617727881361743143144389907198968305847400009331063728145732174610253613537542838946093773421500790821994775198063902301362744464834926025922216316320313778862783472324584738676638680022601962690526672180748307008332986326237638853988662658984994574331850593686339665436518884484102571662394920764682161598364479323102327846806596102778475315391744568227928700046514809714730778879812840368296214035710923172544380393074339875899524171954074816971793149178339000895180285777364808338241598076514972556493777093928207136110737740419539746128973545575660074564928014749970272837652316803400341939728786304816400933583333868192542508118513777923540307239655758962968139481442188916740372950482233924561401683443564615274065203307091291941198842606482296931629265897909272861525989814956763175064968108841536660571618873018775188310711699295084856387179713039799579396536610914351877326605002085003071291775783769678229247033908570161593894765291666145157030028231981818044754394848679014327933460833299768070943393019938419671122244147966555871885869898008318798829120263806360875971238976796959943358982457977339372885247439461910241189078758794098677062316879522402000994219305977832367661649465789347396037164913258202303681585440564921033880808654351997197147028892806059519525122107437548393151369910498158901698974783622501642054357073223802475302788398711356745000036914560934039292186680657249708109881342743168769723566957565295857031383049222594730823839709149775303804736506920686693969799295242610897532371568657911493278930881779348933135763164368455575230218741038233434993428982779915844590570659161481484512412028182994953493253221387119402880386004704616225649382684782112698647021455996369825266283774262169900686858258577306386661497037098780292107201426988052348178559132910833001203307700307245218685932780186522783470778398720899404234476005463787209590334955295486311273523426618979096998966453703821806663241265048626580771739656835888655069453194324181298629324307373877210277465615136564028474452597520278306800867426840943936307953514667023250385144715050240837483910910282281361510340478310464433615233659826847185323564971960237035305704540391804685798540131344226798498621305603279081603298204407625011375813051104932149131285293216248444598106807253103580988508148587150857087011719141502360584699872643078635864784947213298052403276621973862323363119835871118933981620228957339550763788501195473463775065164538262853011686302506908364154317081033559623013729428882319823570525808282340360167556338687629412612636395294632188028850475618880780835231924285412404148257079084138354308984806752334584203424785727361443121998894124707600493384369150763448474018355985878941371595749758527854562224260260215040584748107254127273892161275420173419594778514774924922044577177376372141960601186165977218336899695508532789384159920323426652796085999264642737051886813459191067763666587869984131668991043738572723691397066840088594535717618383648518221720666838678333178120480489145884648658651311618394451363329852274658345692603032427256494375127806006527803244157916968213726621407627546902469999053953993497055960165904205871040499436755176224692431390299721744530782819175709145918515924618846552773784848804320789264182111432505332152592085265010866192588459054461821721949573587534951371638072082957285949132632488824153579792029253007299838320203312873371821471347779114555506131824830863311543138998992801470447093368718204595358987765473292744345321953389002082832793043214048925661976370450800442756275701765564334356655018076569579668601131246881416500340312465009284472202770447310180916843587403236934684171322401003902584489903584066757370883926141098545383805075794059031701122904568319994123282968338189940704384050443403237088437563641821369053648442899310145656161792137212522855913266315091990916808458255384128021893903085141073755036731947013715211931079688087069051779747035625198461483461417907582496880690356429457368863206033210879875024309659227392436205565778254335418494037077915366479612864515009349568833624281697150225468666771970050665887881880542474211919991882195458831613351384407670725165927463810772950791124833751210209067537857685337721309104885283986866926297483025154802706578180213188155140086084597033220298892846987252397489518182198888215687364759676498026825722104918907226097141533405033085497133694861228866972906223706013425197626971317183038005339541034589820705080141075132353096757006319492429894790953892373590423266404690776441447973828167805454992937104741284248537475458102861169690163380815538740219076997109937382204218994428738982448266354564490336097609852449018387995258556319626271712126364660308481525162640756200833634793911018767884797160697088995612977460871276721088412469851046773511908596992790410823422741323780528919305942078590204823852155007416803368900229364074711508193839980236232257146326051949670917827576405060119435594302652773328966888819805061838389799914556365694570241909093136654556939049459380713525410422293865718978828789152365217879931919260727965554565380062947405952102368897372006868345212034961616181718614291060216509103520911508485361303924377340099165543307615241430141500576644944115372803906111178580866368627308608546611435484118015883020269028906453564818577567243863382179337579373263709988991446170110883056140749089541700141117157325444466091670395645841743402319882510521246215448282562297238875192934397570151979841517851913869598299254336422601819972150640174645334216291269888810228272833726215493584074339598421438985480271023497357198803756000818423017923176083624093471480252699757135844862549940303384300739599264812388429679433482013828785194182117511447415722137197457279227868504867229667149353847763702230537673027083168091124006972279335496251427829310715440119114659692918682864623278811646323393963976559307242496894133139846497716768524280527499359070011050226213845076364123734878842797340176645909060124067943307392051028949561267722216520587754516746578914706922871677939503351775154638422601228306666272564073571472166363463963781069333652900859275427822326499581920264331707472572964405450568224757900167169878717602347487023312011682607290439357998415230825194683995934174515235473240831350260549455061938541298675647542695635007293418190413800800316226688218886298127531534836847970599467796384670520197677631850177147663804774098017023420489334740823268907623832402522170211737598277544154218474181899318578857430465122973548117661825198575300883367813379899831033894206315635859979934253284877653406951695925713296446644082334253230369114906599126031200966813209768329432119065672243027739206509897347374829294502757011647170127475429498483386634859286838281575350898702026388528336294365929929648689761280802914152612723662037103306190680111598197199055281088701118022180281142077026214432056359956511732018615689171181352245683887294630066225983130992940312124318905180295799758128107399234777104928380203510179373773486552152155162497579262201993228194819421876720579383347513734161637644982072662772828730679892716912307801190093794392218203609025602570986255327044259655472189362409264527970301471207192695259522771932744658059406309818797071433106852920948843778111951648324806237092833939492290463408455099261759298274446333209795893132117767395224046141921161335731805937707408468543446836494489877248815340551728585996962398370179358013886614378807303725990364321013934427707562092327814305658569294687301886512378620021118031486673775670521416309671203966654150765150960194730502868556858263375233470368094643921927638217399683491199411880244852750020880343850252953169544904743802172898855888868681657330083764894205923184555942919349619433956427903528257260594913966757478695671490548566887073526791931490174795095080589943681139958436407286210236753861508098287619800574360991619979203803166069198813125619237699070110746812410166896268045340083114523464305505793451232678837591557505624242924583594660817330267766194028768821034268644696019704710307168901046158577278800597645703021759240218020636262674898714637679008281117774485775958407638339820703471452562482649859819290131516396540554702592998105387596148007724921642237258079400343796751661617695753354508504723504301383942157646697649120738276504670551622471734102770423749722754192384429612947035917302466769308432046643960133762852764234784130916610336882860828284895568272920860850605860506910519478951555035773845077263593831271987334263937026373687197271027323237944018034730519594747734730379025098954626192147848671927659381817931069732208056399519304391197606325834910113143904789643237891501060831533428990717263623544620845389056518929238108252784217907459358237552900725787669847153950603622091890100670635747897062116984602508667930224779757638859271061186545660979687747027398904119924740342408443230085029684749394181917128409319803921299977737939613373855739126357721093038186290731290843115335797960535397237534809999785843494926996430111158384151201635761091027716743784069432300403142447245869306257931747484061820804426639534256250408762532555709784111283960492582465987700960391928146240855225830090372273337889418514231468030343781129621709466373753382280064869922085649437610108477132700277599579244029845960656212731847789856274944000907261436031259632473085385643003673864838201450346520958449824578779332954373806584954643394371147917305038301745468072394498771130115537288954079324753544844117635714525296424963917505537501738464557020183470048971298088990401789964609473302555702836854533190714238919212623167112201126648043684854677808968523878617602980011290198240743609254937623514844237266654006730704647352292911870753591072591107720526950005882822533819194395664713444209023425517465678171997291487756679437914027618963022125321562855612153582564576534582652634003789372092808185628614909589303240094578001848679761511486836281051593199883259485885811710382216500220870622867860238512548299213395727020833238254542925206918869387608197299540731100939542998359469784621332658830037527341975492877689562579855170844585252894738855278962877338955409974668749078533720990654348857684323868778029586597852690465158938960191480069736531542386837725462995183041539409940941735137919454585076924617287017742977401919129192211878399036186729544487974806896338437649922446462328560170157527958165144607143905260154882348092947739198441953125472855304048314705171542945172213925602412508604176593005943477047324264865772836545069613558980582839580991904811279800726619272984899578402539726632548823228890355772784726394873307884896318022302742593440747528765527020797262852824814388796464166265241307380423403149484776350577881041056603810872157027773316166519879291703741982987321675956692309265860524414996562948488170048698216657504078222757029846406978935148296566579455311303779289801736813148967801361101835858992718858611239527575562774258842865968457648976345910636979692184154818344880275576656949108919862995146552716248112907602556693729757979082829584637087087099842916414241978288624141139037279944666158730247435912178599307323385538980306498381905740390381982837064805514935019792362340179447125503143467416517429795403300335965343580308707898760049782594102736340148455074640412966741768200326664849157315823882296097919260388610885803449983340792704149107402407208046377529263060040145494504882126005834244911774787787752837540537773966344661209709751100952436184333677180873585758333100459373442063238214918980077826716857578760993208883614199266665829136754191953448012304747026595110251699683080623970363488303433507288733017959682410854677985759780549549603258132015184401563236962477685749854477188496012613859507573378546663290828913488527600310261823514469818317791489039468245062666112195344363765612317860273712867954316217821747891097630734054282704628876406881248179747736851739374848584326805733593847295330494740793134229928359538342595868472939280357355253389247487773273769699119345369338746642110068461333391182557201610428801495853036239399006562280162882369138240673225646232533540057708383971931771543522143677577909844531813377490335629451552061455302549334017288090047558689691826211301762351922767313528647765750202846963217201653732170282354071724346232009894484207544847692974483731359472286561675457821185234284191932391763354016423417322935723923007979964791131878235649900028154449546872911456976655361197901351244378113208897836537600589387760737307239313295926330812408998772412063589185216960347652150755647206101773668073756609668604216536894709146777051172597328639600185756739927408007308112794630252716861423390782610044030599380191076923430281667699677556358185970268002183847703995417750881395081780466460381066895246902071408358029489286379100714365631944547439206861487030843476736438616695247701090489988803860287989743586993134251984852317408684415808105250762881165466525413650717502137587711089431156376709090565004787225211092810233403262535101427072763194512200992659139862784385575420283808088685835254345633341349689649628244239461833768935939044332859941074929682194822982372263335483860985170107858211308336585180426172620107196897921216056225702204288009946725395117988394990012747974539634725992761448850469429507768278544673488050156170186633682643082017393081708268897680501432448109754709330917180087926673859828852545097762171342013276674880104996446313222364613625474553030320562424730086116167449020343116147537316572096819419295541428343548193211852956142531758473527684412134963726135494158935394672977529432007576875762081476139162814349803814577745763183630676499219230657399912386817450345527871977782159251018280628649344909101002940110168895760362498964330229388144404930279770510254412131187470682455871892841259780964752391381537993070340962646285332439145356934303633813650750388881441881922887266539168284621565368289536676086492924146432262994929934079305284357073537243150807675483551070018368552185090231916155531756600049866427521332397649315136522110119746649050015427358304072046421171060549834055748273359452686827466977484444681405677322033140622050188163584779862235787959498513027996628501943369615280278210639243288200696834642986569035262721681721903640403684931604615015831105930221213397743705917010147952303096755411444845443909708064586051306244338950502907066587276325406876306543520071068757334046092721811123516581608958668945525301852532326836813583025354588070173985071965352338619048864141654437677021367691069030226611342299578211548595203023810625826733302588598723779341145970942906669749191302028403614658078629253379010949366456826157368372958880191033450444709685918654467003712311630877321634496342192566445788390967404570688874363977373422311649999546069851607952656389950586294452680765177893233524446895966485362869011472927406412534931769630415017510419159122734330437346365578268506385764638611698445872584869651250791589705681706764974229169949347405976905815334434976903470383905566309117584880435580268265618798355346492214300766235065902863326456148095805488713538051961009017021316187750744133167265130800141167322374891601885676157236514735031547943450709272329403152118378254800907950908126133473954259644846715650214744693796399798208054994757250255444874760667419308900955585075110909810185981525594570241084453110023764867947670729158847452313460220865920337621568041686225283643841388770970810554256304084907405165194834592450794630657520097250939877704931540345446317014279540259171082024268870215025085232149097058279451316811244440015760771596000754573677642174505245919417450949414354698368360280671347522963282161127426039686040210170115859840882647364845513734043210452195829135668447913909987986155020394948405143213521267100933172944980996553735880658470882575775153711094917506100596968305224492611513297553976125645230654582570304923072988337920870940832657956935964588506329778808968116910868547938433117171074071862280263481696761980169427611205226644180765388688351020179293801144954508072469869385699634512716265023207847505726973679961416823797069254597682764999038596847734535145494814007895376668421098038830891268502610415792219615408997719779547547887933692537826075770490755243350676119106453678475839122926401405952632981216868989262632776008654016003642121943418823699828397417026666585435776061292996231808292316530412788573398209898770846290358673111990223800653950328878984629894064181750345597917831285129049278652289322451053970667885099342377623762783632360351671714936058107624042929540390198540745557239451176705935191336801453259172376387091463338346459276868127890748978370386293108777153510185010037071236330156605763483607748758417676245850272310658154817825006228411302815603381739559834129088466499219125433227355424632418554043407102357232834316883548158021115994618025746895359103812824300546495412235529709128810330526841732996570619379926723063763398040640659801305788378395100904608340734278098541608179635079456983843882356652973501283128842474525818647238351742805645974205285818076789924961267263301201791687844509224088740704195932910498447990934456698031935483137570675399821727729626253616753638225539964052519853940527552516773846356433917166219766303904006215513325183126017988934862400237265643974759399858152410717253819235485444016050199043230031892118748201096187557431806429811280064663780837901542456814655195825116265677265167769639457247910406227475664562891634707996963215433298633059967323421707685287968441528370826722570394684466720647971903144201561529981429041544294086299556065962555203420295094681236700137957447760480819293068682153634724632807226251384702494908923584573904672269975333907349656165160322252158002019469579642711785704683120891559516813494337669351131370315394241001539534650414866099678476252720561438269475748058998381964102681707120067669369697926854793513857566113021122078587855361612399458872503960381052496766650556716346895607541489270189700494512604828834520463687154711375499358927938065369461014699157692460756373057596431041647300477273571551988742503281842841501700593173887399494211591882442336460652886763076428549021797163996424088113366722782622279575893060396123258719367794035266861899318461819513051995384472358978693650633669915219550049175784385495796512625045417539256898350750033412410943122043047356374819884945377646205090265584777880779404158750734899698118794121768143002914375923456681310846480889965732611474823402638460243285185477095208421921694623336036168152284992118985685141117072376257494957489282541396397179988879109673589349439738751125217423524732731206820523337255710909782696075535554729788960910906595466579692837494860318273654096294748774911107485266478975799543709241051790372303800258917562934368176521260980579415959078631822862418808072112847467504676051657088967952258496866055846405341925224568061004513440584869233025109783195795087180299523389354670500921098196277116641382865179423583200285411347632560394510230361618072155165822086874078679631184320098630419948724468746083370511834690526575388740999291995108525500889003746332647813177954531437191298067004557239139175928573261412911957479349071325467316324353138986478305208222697588039431437707304119882952450759769088259888423576989993561204019630046184629553404993859043610336437170890763018392935017047503985691187493675699200898235745665479877265571579429908501833562757359317372104856897138939078310208674010106207133235072990970089951106383655190850541551172569981843087348435503928139696647035282677672254190225180208078847292749840426924631671809487558505161135043914674226806512766562435849441532101539101473087063578002826586802239287415835972113145038877963267569250742740888885580187648396770205788330966803541766687359028052509470089537413550081150880910711484158915534509791409135347910830581295504171737589371440820496401849963753397051033175874197837267819037604644926578988920711887707897360805434737928876370045702332966629776035529341057364104634364138487836985641772693190380604435237441690868286280700506063283914557505622896960844475051167076332742430508162013826969299200791544986458930003373832037699787878845329036988855724022809112750273284183031583440799643696888128630626304397735105124542273603618982402008807242291034790443671738404433853957231822899562929245156223634755946081809286420617521923291838114352581426137757169858621352247163429855100742652995929123909430739011045635609426019497700752376360126563927397642329140723839293295996256467026879784842166572986905474772328644340599134612492610984132942750415450519121850586061043793530336634703983156847513615832884787636146822769617041160315754314182191606729953679132095866789480209972673932088557364126320627752215625314487920346814423033573153028250732108201415342898803924080925073087546898616418614748528103538041878512851119540180688368352666974587868993973783050285501525905378989640517951044229097227572174812652499373060571698049025262731761372653569697932890941116255470757299188339200591232970600509456226362180236869282350587489939678327529120612838290535358955276299864071167311014634177378613680056349962117321425015470757464758401493681804557422429620996403059010074429378927044051930176877690606719320225580497226593458616667398471640448464012364168090576992874047474537434133606458966550276010909095192950326300814444133639398679791293511518956186698250473787518292040637703743361400036017221162000795569035402368806873394777187103050915394685859817696317810488408010317563470652605368339748722161753077508267708807956145645042087663925770388921754680090342994206138792660191590862660555373786251726615040085811952017857537554589913783213414616049109104358146693893991941706208825640453510307093007722708704531045678262213673450252721590049219358008451230578776671033396712822215849017990883995011982079477992257674221811534022280903536618308254873469249875635745058121728177494956603290891074383392235339307212017927762236702068095536175847047737014675883501863663819474965245055943071685736670961636970592325167268317856745081856597041905432329206986087446547090427630443588419486400263057290313563678944639562487269019878637663796971005038009998063774081533575960897625665969126408643532766780000690345331412879338730679793658054405431921867622225166982773231496687222812703130828959808595845225955930031753265603590852924850998394969619643997551598231346611513830110455995454308266914393414547249898671099459119964735884185600609832004899066435328247306191429176757731330309630620268257519705611191124600692348290675377205111099664180153817021985890471024724425538508619663653622174903927003354266564960634537098964686480249879323365797099492902917900769129682374386990178416808970375226287859244767173471083690590394664073035086154085539428738984755130573583955969049174566532182449891169209322299475656855850597755719380812568810882244898405373853195195734288322774099513353326552906659080086414542440662804266676358338723708576690358034558023942603989141145084598674112908674271578373681974132427045110269348249250713006578459512113074784057686174639944310542339847218688420442183350263812711752219551016802294297965916787546969413532098441499336711401329276746157669199955322404143995925694383391231449317501340788751511901065156255005433487053849204397758243458275498035683037624620465231175502502268252717290158506387109279146937918933678614833052704612463052554851647646931965679793785041623147338315352021702989109779634085641952211655079912993125601119921235818772988563227023864587918555605124925974664715491655234275269259930350860682518275661558808970582319176483159288114624288796331400436329488422885615679982816491569018188228748252217583593988170074110766165411135408398582519311135882150508512977431382523954145022010610761665436694349420123133601535089727749930847964150091742165547128431773512596292459691088441403920018477688010359941713257553801584374643703710544326999714871056879231060144889119505194425569608740385607346263581019114565486693410522902910050004039059054716092323401153174458353159477988426973067389685198058885639098686076211347935034326883316349387143786189052694791262410212246228223271422388418446957771856476591112460437075480278554648570061342511344027810534534843639057495653960923436418545933265961586411070157363902155020835226142190466817788460201090123898341412658540544564358515054841344532218695627021819413094046877600207545083052740381625702112477493259449092906106125151216359091786525602010995737064889602043541364529203402461681146519060544846474435808387899402218398427571150976553326821370026991463793198848886986566322677681261893480575619942312984019795254895525617147997870147638238607353159478284821811325567646449849097846043072578935173439155997372723753232566001167497757835647840136226967998178554762906574714605048558174063092023445866199088959365604117956536690415836842835721935197932315582576793219063800622070911455078442797798856762258303240044038034823524756030603352542791727347472883434622567327764536552144237828356612026990316994168530992004059787164051377535704848506139667771444624270694495060315936929697696418474690441362953691392091643584594282758061393112659844940117114116809510330307802780253306161940137915489868137791438740121726098681581011136593081848461156059199069456720420619742625410706731916821247419486455515491468014028327378809033135528484904296301536656619880603343988209379272319850758929769148579607491152835062379599724814766434962863633876792879197160236991834618650576258235920126975309554188558914619606416230306758749533934036258462402573135631334989314679525293285897364181366622574015608687920919654865417905228899066801610042241230314815863795588725432485948274678493570417431171866333832609257914010369583729591411481883057562858486626364615479043280696246213209070261393939914371449014180411172215772638964175170003856773175675438792658342004601787176804969713313300210279437852373060225953482167830981500015181959359618775743690829275253947921624690121776584868780381992576832652075109369130015925504849095789073939341403274647512848428279552815036138089732906584433600443048144440560354092965747354756540454109519457326150920061635578457715402869619983949118367099454301450878481541429140398098057957590518400686290129748595382689300171495692349596035424498308442384285014526053162725938800841264494162421805162138471014358641993096355681605336341542390755388147666339817348972046388182170982114474991911847368570542136010586940661759798185203564995117903072696766437717335785583108528008328506669229734592029848029748231147785396762695597111603828804699154166804826744184964664542563289932421987145777462393685018138985514842036484101690902690290842327247614127242551484390363642562228624516595500824639387662900078132954256697327889486729187752216886212417495133786709397431551872882239125321364615409725940864259039398549652275302047610556224692455891058278464693904221663340185822712048374282004313864919022350102370157840997083877403568524063445876026111916795163578453995844360857145109198975851538623326901405588344993373370794561613621287034324610706602296383755627501787090239401708143248904601436757036625440889015298197728421867836494283774320590617013357330930406573906628909273700812295577373500544921517397475132743362058503261645546927882793999808116144127566985750174441900713007657689004198383664571796028886763461894891396805225722225754937694908183711444960090549707809530186493040322141808537657425428232825494342227168445500672429042548210978578097507710646138044020217466698498295895467389846363706813446059308504176005094670503433349577667921501168558174064058598019234398841012856140986308820759024011621975183755237173037578005660370085447904463333029768518957726473768371146914014968937473898779946359275964478101657321324534229292354024154871574931409237472520490029999709352724688019698370412912928977689568428513201669951841417376329786760342295713043534524434358315569551286559330587192715061575931139347509035004522717326474617947469138839270138465812993890999259843976422548247725221680214406562496412093629348436798722142695682447625838378207531720370320659228028574655453839856897875148383190338056986425565722729643105060774401687417728896831977222404030874620135692758006764228972273086148093689994140076112911959778629307795154527382820006403166493802676384557276036740059306925271702238295942667063209213216698909533371161085016762514597982454526159891312177951873003610111300548819829006010091292805668832872379216987478333010722496671844772931264364151681056321348180772516742807593044651038255560375995552871285845354421815760258242927059851200511167442925135220928241300643079764898059003811016707639710935185900042920724033121199752183062649980258206266533319445559682219667785299722384544494422069757364452055513601986379855533642722946902006332640089753326360317012431015048117756999412440669388044536379100114415386811728646895980440510704381663650661355338722806079610935133712896678071451371092323540258148161489908892877903024343681020370086861391186581109742848960342315739658471089715205632795537639660951482971084472557165653968577813163714085309211090880023903688157104400639342228310180137701359933488638454932571614244540133857289943696014732641003641843261624074507519955067098801916860995980930871846680507885656978063375387490509779421939953413871777144547854220461227973101777057548419056457363967246914151175214603663851260044983805721286280061687571505875812651925489573879481211938376264271877909342000842456400976402571769333099687933156900513219682967430087187918819061103676203954692601071636888601610907948248788035538364347444981206686125338811442935886033118042502980148021559856630753489749280892055685609504894602419441886588183641956581119577233211323423763335470839667885754040025056482648604026436310357368208373838848427343234390627864161234442123319151163823151031760118049588299457263509859048492573445014247636868708019572278550754304310363710930485458306002709159757814716481805767149757459872985868194299023017416691636723963581490773077428512039935080220263014921384840479589419181149773343690616866529276662961623727846789950764984345013934099159197575263806784082070484036297427377974551526588950055310988693621379568769472672807553248360200498809924310116496168084863257967227313107570875648112840861351294713555077558123615891099017257622225664293625685529933695974056592351978912423300109906475554903759260776047352409392248620557533504754344413801997515370195677163712293102348102656189921406804670161815384450690025865624434332059512586578225745880818019138853677332747707894128521998721227005114511507269585762864537143346660448127225638326825014889009194536858723949995779714432552206807645739908061851604467854099450767511300144704290726286902270024031177831189699124941906928232280724410244007306256019194095532776315301903354801006823080170778916768505937071522204032255861944146048584933941832717994102938473934925557388350994159145392667554929291833729671703038955654464374245514720110520656007293710767485554107256160558484916365338824653324426885886707204958655824766277772108935884662044046378880780728703415758399796131049595969453258347026398844252968821633823483620929920400027193419367318463496216964132743114527778274913361760531543777903721405057300638874754239371820107426190051365102186381355764596636501211465747179084211704262303542126795944909855611550620370723618993707197623601053145411675984950182068838586061347782436447562948993588533284273223277378562714302079861913758548875074041906303657316139042929478501572868493184254166357242838441295949149404526610741975230218010395217088629241196332106439289966632063530547938952819962090025435736756451634277475023227878483060248617761947654580030902442427501595709620764148456371131578026667058192955268009123875987272781499360123007014867134692787842978623025880176220503285869881156266210020837616031461177556755951970621634221909814315149027195094390915416888403585122096402174569665088887761126751447297786716601992876289770185768503710462662518436563317434969610018463939791925388391127075752037113932080947452347727377770251792095198627593814723561950003088230382817377692684137739974052048963444637950648489616227702629937510138160222712448914990354477818287790431413101439693979187747747162842179974697689975147194947879405546235575836549006699691821280252993276677426713889638549578431681977456285556401194568695474862326002211041152287742112352074725415511877303989515023531395245393678071355388846259417749283363706714818452498442901861637929681395597714428094325301929816968948339302157892027423491180142319999838103526123758707181815996203088188818395026390762064247252738832880586208537255662484230609289715844355292394374560494661711989845544829159260064959994588522968371380410359773925045406743848276072090612755142478268608988798867586840558317948409607669228080274465130713732773826666466673326751091791629125694967355922704873883108230834887211940827794349960071073492837752237211721428726919114788338012870558897781332590021758964769485491669547371762059183286149307687294496402235169206076920555074919832289645887498814602960989182540861689656531243235582827153681539696583472216175849922818707394003419236823569896892870175228080796917500628009581696077868120854990528319708284779203446718144268707589201986037874243778218449365019483554611047428288188646087930679969746401001215084171949005006288287169128717694317761440236013483054158028848248465080977676978229082566968579234856557983597311731910957149596364088071643796894872499528225830650539923175067038214103861622119074538955072379379507703458450229218281146004328313213480715443592710902450620579291192566546639522875841958417738588663936902974056553878955338185563814692668200019176218386916285284287249676745421662651961868121256890943329405053386186548242882251069248175450842231602693776005172887789856458550505333321494468553471632323052172930088858528169088698699644028713642095491634028421018781520309804178369323366123742982483013356947045756430225831637532013180271560338907797829445357859170362363384637054300172351671172545675088938652907511695907060440879681730677956430735275935654894587871177302952897437373647847063600017771481686170983618237114822525019913807442336942799535097398853560032337804342132658999760294702859996766557555161464964388456529599009053792182665561207880694782075197488638887017112123105876812778648605910776031213566945769093150681013932485786350096915275952755646071099859189049547630743986259553919021517188060354937616102092936656154702121870296589923015746841596234201345211768687148002084961333869509604534855568284909919466004902470522995767452432738554817478965468902467022859642346266055443167983436991462759455501797472330277557975496934674802891831747932581526230812472149549553679580486101062600215003641681064541519137068388363251035307424063772271584091850448346253856955736493691187249962444913083448731665938299216211517588691569913639552825770815498031606506466832568370726596487868485721757910862475440151141216713538923841267000701046224865745747754405532054656647995557297272385005005023573628282928090775950001732692421410573609723205302667991129768715719163466349768039064607739373852696006522778015330773707837262664972418226633540561256885676313702161279707241743442715271105191429489845470722565874673759342120946368207961457161737822841916643427910272567917052179943440057130849140038723149824929983569844698650063159672377276081178172005033420380037405611404586384922434034983829173744870523368960656442468868467664973102069324553274716922668522749456290294457159528015808012367305750784646090636503646059140519386161319823857498706111907830067403660018835603496311828763421344173401034854155849126485019126820965988139644497771679708741496974382839463029876882277379506400928984535321396135439113957732977849707527619112095370081300792180393923647434043726346718439861462562029954045106657954876653772001540012046742567078218311810483613141245377311579127931312014027168251992752811231394588994088353114295158302759105361647811488423926211259810432384864459831443735552195231618894793302158826038436426708418078150354052554178632182333397971965143306641367486135874517377984926140283037870004489343137220867475880571063947342735198095026912444766838932446508639495664530250060928317006939816531725548880585852075543053724236907379254862361018645362313865079439436055007621650461755749438437339556626455087079550242417346746738119286344812879224573022798851453553419570428001465789652836046758692883409627405930637284523863920578963823992884216877888967972837431711501052627776202096505783978304423779229919644691990780875602245596951265582738826891943919675551649751681488045219439558116443810069633326620513939589796031359291975886929432830308007377012647658730396645462872933213825693186527282147094426138068451496426797788299301753944095041607498217374444298823580437526267076288471876829644633899505308852662009728565072588066851539811922570517319402137134909196814326897638922136547674538271547716525803579537988238529916822182907888235974408033297476675425106032896143058142867427427852932024920113887131396562969529560347108874984902978226487149626723456982257421569960462955607499877331829978430996257554416073525362783459455503507162174478098998612914024683051108320157198124003124209010517610936092022250749887747973950627357743422628737690658626492001538264859472694927607153044417781115589166724682038858926252174773458290265088784405926756752349380516196661214760814189111483935699855808473567597855834340022070730050199024880552152528800769462807675336049959834770511230973593588122869852737474835917409903237396046884986249073152830036902703839656123861947266146195381507657901654257624951135293695360557160281871368443275203598698115711337455823933755795737180710814533502107092039092576043676107111814078163195727668580185183114031440076498336442736716888184916625957140542024473725002791961902655274238667060227730482741395223561258100443949291438141918618787194056809617267431870886270429147219309042346748175441844133997907252199315478202309041493307535234903862665416426413939035702816761281735865652052357699159859169110353653629465732516720656127072192066099223252918992256079037992690438035345845223721976580329027596430734184708620947700539404869404075871269972017846383799644950437932869958295654068092321286063773712734124578618768544543738952036419751078563579842671111010965130834706234631248788356550257352913484755869756178635191818108410905172939639404908323340952777182229005049602982215638119457057882016067277179316115466791221633746374306527368035878274749399415642830269190114545943219621543917045576408727944243961629380893548893401085720760980326471232221252298118261041540936401749220785647498179608453563887217516492895897122002952035703606851988876308194207613498184081217036880072498588973551844752976513494487036380522993918550989017871337672054840706156448031050913815495543656054188042610919605544340026442788887267941357648190701149560733288648589743344264274375971552648179241760733757318624030712866259415841758283831399916662528842955245278300080708790326696938887049347631437722311376605766693673911270041613120038324890793920024722317221357638107980838363624099903928190223884249166407824158721723096568459406901801395299091316820872760447781456326961083410542386189490638214379612752734777982096151651774989536876451451531032877585187300700275764187162081141662604770041246898424732709079239500596061732921887530482995418905926358108233060367293436025132072313333674877234264005311577173778969303049785732779406034124658258248124583711876382727625002944833770597378208230408599257952548477190048014177314576368220847611844441488496205642521850418782773021530132071320954858232738669626705521897998037382794144185162337717348517343138717642307240633092949629499967463629550842940645174640566730404818915462074238011902787183014234540560950379704808878785340668926589313984384167260259623163746241930734056974844125739391968789078656674136004782976389371487808975870733782606762670532456529956937779157351312860915165189334333752274734525611078342234271587960717165329974048263270114982468631246867602214128778103129012791489005372927759169327610074558101110296903817623087722002401628866862415590245962026353244119834942916310086496573334429272762870304116028700598732449500340161707200088503172794610101306704957955599845387535797987458569362842544630309720521021606582120476251108273536835119250933361062024132794670949920338500660602240076744513117518040199243372413007036007825083915973777629022991033427942434368573412093195128366554480672897113299325624006531495807648544192376361836931295115866510050273719598391057897258010234936271101931258937323251371740939790879373062467021464691668476599742164208587416313402981485027104276160186012258763956011069665718807451064193666292894415380576532524868896376372034953042704483191341539833187026294799427288662375510199311257268174796107330657566545350934047102296016650964978458061817367302018846790619165901366035043673992074710155008728212793819345275875827187693066233700014892650916613340888914577024190391507771593797697775321735214530534653093545569677852274104203850086475031202290589236173027167322963124190836919190932586953857972719048703076089778166754191827768368146489793625482976643514211768695572853455461482965483809972098378269529687409926478612563601597616597284427594188401665660641297948677777753838804252449194038774734776228017185076032767325228345783218438904669804647536856190104545483115243126688212377955030180527976921355850219474492216186340103622707660422364736769832376336429393631215904166877095217031316703924395024904962937609794167031241500587098061061457365675660611629694567741541704681671787535687756740677518632372264113805058703627265623429490662143071723602845822734279796714820045325006538243717380689784129849547939427550804740111876944323144915230517968468881989196563603830303773666465012391730380561866344906460166391935911942151305602653753017320841224772120783603585875412174496834223544175354090443509619029178758086469498991845103857241050013091862628221627027031031321501133261122895530129246007319087405776604431570414618359946341539424557142623208880961412518024323318420079397214312025534003436777323769766377650273774068915220235693149420770034601240972107941727102198181710356645466452711407242369558307159077545884930896336027771831431412493962300931551799874161689318134343192019225487870718032572124617793485501901296596618031084936613400735089194710224698399957098147014470625946139613952413886718260988918522846669437615474709225613211788927012271993908069452358665985058743340726146587558050712653869767110413673992381382466827435995332629574189115229970677324256994096580529647895790178234953232924803314804628692927469943244982881166770207957116059393189605819617140232739605770483244732545122608759300645209742359825631687006180550146009714886459670870530749018289699859065033946987762651241343872442638125881743293335016080910818487399394153166919855447689398202678555122230551323086811359054117201821776711770667432670123558525725159286762813559207854355097001212127857043377621431728131260720836970537035956407165320904849289402124448410694743892196754685157976772299059577838868040941303194279930857526995507884303200884988398473027899363437792115051470260837843731236790142743477912417507717397431873638648471375033626204982192902642655835117183347174296090244316887220584656811289553791036599836468312282346324713884866177375502547336190921647114950012976022272294209755466071068498317602567922012820781452878666031534322972516733298479316067611892414899953750190370471798062655039212312976415876459587764488478607661961035500959562893953524739220389424339765049245975757154964734810855089135342213360302098656860693668877804952677994902146807401976134438617327414561198859551588578611439420714076696717646764601945892840668316919744228634037230294243115189015856858594333384012934328114985834793396051830795192562143995032453310774669049971448242412670095753128535894493299614510772914514732603999756236586581449053811285864714401792666722361605161741399794188806526043913384624772318248489923284864406681848192836481489735868853145911023448867156975990792817938263524723122084134607878213688678988182337859934849543215424793095083826652506604749594528342569725946553970134258690612760464260016720372915077203028489908101904026727895001357093207126564818938309227901590513429135705878130319179217282989658944453509979612854427518802756099755913723794125110474611711186723599538349548278409543826065741024306930976328342600996206752938371314215105041399126439015365282100252513430127731656228359163887340845402813409164322344833577099343171634276644887224350018956654968242968210401314720947232136730818652660141419840677400955225018656664316273858996083171944172244561774354545718841727131140532429428333067826807311722281647055626109196384523697071052140280670123346176473252653737655647835647446249638228028138568582272749094939908564535177395522354638514972914442896097211498348590913401563324503161460862126686616581929558150102714666366774649574955293660719534443869324458336723389206919542221177876686105640725635174430622200321490396404480638392459021117919833114328211880903921192228962109980512401582723321499144858630969109424529571888699518231260763212741279658210942424191237743440276101461654839083044914145136097795887582161627593150002072451602045342375204705451801082347648828078361189704495018426363349633177692019425741140433797105717264525436266627671628200091929573006424739421657625731016179001799604013331323154647058641655578645318011366541204881756889315368151851100302976105551070442555233820912896119888407238581646910296058482953864182772148685373831153914399577029622461440732182631110095742654405279972577668002783269282738542257859777170137169165752598537429600640765159298598740206744299066604536026434723293399266220528016967688241694349445757297331760677004779578492103003664915544575235711549277806849465560632341795602642600131864923390260148291888840516652353430816909298265649138519357710477485141316854863450722556592672197792531282344049143031731558044842951683190397220473042974000916239218578306193825935191918455728337174064845610531846978939347125628808007841405076164040610569173020546833672472995526461462605827603116988407645552282234105944085456052020831866738070363334001403203937570688552247346338357641363696598885812331442799911627901983459537139632189707615585414402398096915537668923284356250209492088447308093981237409002062968278952516855919691638792175377352020719340401110099743519304697158329343750115077273625387205236848724548869392388774804188685591798938726029110916065902054196914787834589160105798360371690716449685094449163896299011018648588492533235084421513124987332918370040660282994008698044188813182527919661388832408520867764677760913267883375019075498623924293039670543570001589259182361925861996155698712980795777165535476192806021382349882658140999212315569954098451227076407118607848146333925626162011317682366235398599112347075724873326140559581086503515698188669986560985362930535357680936393845201138497007657318980220029723011574835015254596590550484828928040788552993674127696095348372327244922937586688891177266631860123284405622116253799002108568998805532305805308955407237998853266520717791320284958447190927968691627542864880738667860555287615029044899713048255602807044373132632794480227218299338230176622601787002355831823133425552936144887621418817970159270857980132677613983303030553787857143834785711722872202748914049405462819675677716458652696165430704582221152868764228947384340967941817631988725346771425233977816919333704596934235033119068990695819301239190070527845014741324776594266278706197333976999623280213405007994557643231023806946312969240794930006592243321745802793930022744967161443145064086532448769428561449874090239137457420304696880545354026584886685401495788412504145132194646779560780536153147473764374160329615771918184190893426485882368469398948717789296978898150327843375744713079574014165700857597972092603903166863492945782637207741413268083723503165412611788906854042609776060119253424850384761344476384143262958593687210848637159622232044587885780476507220038576692138558151692276951941518747054627331520716508607703836644626792979320048578602751344074567643921763487555062933490337426533136043445177470543296441859688838998813019378063822983910980715469629559997725322048326806703210026476453654405392849842900695235141795873018706825889745824871761675976201346690988334828834452638905815810758326356834222240376741612648519320932546176152026602382124914125218901492879473549273201338225490758746721851348881037769468733814807755099650153323420700901730003905452384465072277217531308862466094515485690266690838961844921799742060112194425549416699797122804012727442544353652758726291783451686956089408168461531304144257118524809474582695441326374546196550422513895826934687531695256531272465160999075741327791345785881229380129916603975364735884223365545384230874555586342500809486947057895800681941545417388982692613665406664498708985461513421122857166863636180449790754442266882993396977121701197565533664738369610854849552230802491826457712764239334392909481588384648542769802497655782602116710714139374812581698810427603478302470184400797619237518748592538186914433990315939604563768112473942261353459484975272839666639839845409554613821987129042252606157219200698279736048229218140633469968630787198781208015207471863848450930014022978165209115830543048633264584801828292256301362251778580375694896433376277230925340741562952266657809782315917722268244132097583169162352502427273458048295600991524314651447363708955907279001276168519493636848830176163896557281600657994317780759969336923887586524190717934248064953361445169709798894152805589872835472293610213901291311178159475148758510532210721740269103238781673658789596325722197051453090443475254183071495233751985725738067549705608534578783190426169829207333408132249714453176641255564878110118088590139000697173337309282539018979552679611680526002856454113125790012503258857384384721091653610448937697724053802589430785054562792658072142259623447675269393967975154617058466308718334148173981829121056832757468418148301695469294908144383609091586159656585441111200074434007684423148201203184030658683359188045256710504022271030641103355573502796506018719345582079752696118735743179700664370635871789770365786853046295759391850410389339462991141841789115120465283377426416260838312304740776282619572987261751398636962375900864272407989431929038523845213996549930654018821859660035694174974307443930587532030203917286084156335274951560095421321741761852012023931874402405379097924646039134070969054998215800326075512755310585284203907964861456675436488720921692902059701740928932353787634920530470597859830735450574665712792401921344256078326942085970510315104587811477937978306191464100147359821133727016466263489785524819309449099324768350290311098456477115068750421193240274077238762369904988264274498850497701930232992919703019453115388446777235880012332731180483481681711943248873646864227170430544595228533477172488887350869374428685062156065824844696767043532374538022156868065762244201506469332461653671152410488285907494524437639556834398903461681840408079174189941681764322514708995980884716285254754377938202043901770333696733569025834589439612144015449569723060977757343135316576156795380619569928136182143611529483115885038787977048569933680641779247411485134598546832491165606762175638506676757058732827188642671227466374100031167994446665323475455280884381867426008803655211208006957481752405912649696531173238811832170540177494213827988284271104675389312390548601875663094662165906044030603309220408091215073533624447836756098821437361727082913114546331568281284859888907139944973770861566175549641245813655844123279319617469231598562659139517361018028497717443122626207016528689700038346919878786815608833076463790913961026586255694648867884453525686571887444428952670671193944934696879364686863473997608893518452249652393577820652720409781942940594397513872971190443575470664080775194914731983247026925525741327206080907065012001965740685608461429939515749165712009566954588727678352418063003663787561669524430820977632998937406367763126333254107729329442269221042530117605292345540547340108228270632774815926476843725088484752314468025117008952379808842585516726051579284954686562790484930564437659046234625746283429715514634133074297162820064547230659278046544512093382255536312520338970660707111642350471705369352428830176478386031314463571610316831080612551995579537943794384412548488352236533121096988347295506452231219184237656066116542187340414153976659178084576732255261846092163909046385576944032624333456069318038821910948110302895160240482844114649632334185804134236427568139027132189604568391279746988730849953771553665065468388106575163090668382850907012293133250685876557377275650568746635566755905778195261139947265600257288570663322362574507520034518980451666323717990183017744402826196212234088065336739352484932569068548427355390428394803862932885127503339993872949951195189928638386089001128392807394401469947630213509384027393954439859320615853171243719024198024484313719061728905076701345134869187608689143332320480150900429487791479533828523055444454967422823231504574119541350172190898934776032526016935939430487306451138579782877211414852906562393141354413714417297464856907998689151185486308919972275803434205861140879070674270107554491907916751148901316244740690349404694250555423917702668392632847204447690586198515780558777458374657547017129765871595271512816491827553018875820583662061249368817526181960464682920988446356134189160545804890590506577204497395820543678466787345438264845096815684883778690377904747142987212698873608532738356307718254706032408759698693293687742540147610515594372661299255437957406031610153955428839863302931893629554347950042711057692609684434104921727905965493798988138117190310869868029171757308392992157077501800495892394305680533663074825319313075056798872982475299515305814701351172660231455373983382506550960316352783941046234609870296670501050913875637624369121917448035144643954021441289601791165496113641904530556573652478075130236365244857244858801673263770173765099773656427973641611088781661796465326508878321821238344024574269449546057420622209435202314998471897735508132696975559978511184312994831779577693309225505452870633819995656942447980500039895784307877304346682374259179993243878493160572001571084605326068094983387127804881006680591943069016636766110967363596485063363430389398099821503245943477001832453981984072061016445493087442662367045307235322240707142185059218274398308660182729947713157185416702880020891619380158149013234527568020682721173356737404151572978459336474588952689733421598950100982849102792854096082846170997011266655198064402091094305192913666831594633737229636959118182251489268178465335249202325236939350158845537546159388042364987991253281673695496457021874625395945714338001120043579204409120372447608431206041473413931842911870485833771789727099054569679066917547729010892610989675508229624901566156581234606448869904464232192280743061406207134151459290086179861674641733949452363500656076243385380949515139517430950741931472749384447790037320087524926548402207426364488094282131556305419192207951147058152205690720665395042853012473191782122745700042007293287342583924562873582561490438318679383585521320836088442313844343570995184621254832929799500514633892898434578051269063609297695817765040504608873450259652263477606610489624999072969999017759990691131707109407281895182699485931927902517446392370767511536814983461942167335097449568686313377294267431363358567772836090179582122336864732815157678464733970061824545354035615616707895703472725712874497868821574044443853484378228099958018686995322188741562071473300267116933233148728182790597035756114312143592512648732554172265070567849702256829091691936754096090501921312794078604499118342239440322941839958987205432951495525065948370389834459261993573350718909008442581339897661979390935629812209539179423450990606912601641523097591500918953133176479085938301153176876497968690606167572838104657744652495728392966109133209193746646115016777782708535288202015299345466132200399570123730342289714015125915215057783548463914228382636489285838038372800970715699718240880639655380677774668729034414439909078617859410141984929722793876619258232819542176073753673276668220197900742435751447340433108865627049930418520428082436707414570874623998464664072705077111351271140286223509797302733413736228729997043043224492275592858975132311073952282089808287818237447137904725842900938288118204595467217600020383011780687843339276872183118911896947694959157940280806280305116974329259804535262430008011527394825084941632758664896710098038518997787908137873703460239197985060960280163091569129750050780700658595349596971501328116838165621280060879443328850333856082721683928726179557708663006463644045537422441763516544030359614983683872967252415518053337705534649402182068459629216982774553488115502117144480304815143562306259147329215144150953680323859876040545727709965864635556468774462623428827351451715157107644501032828317633035682614332694981664282907961522809872048920379586684458838741310704991883447282675429022708178155260692332211306725257778959426101785475026992984441060361135284954290721705892693596129309618164294694361238222593358929667887932200221178869254205535109890432631061866063205162219495106231473110703380439818077644168804590141409242010123993643606070656401517854831888934459398205507417494672542325510286994408532100125650776294764091602568766796177319307037915363164967775268823288185515404260628864405623042436633853379818850712792135395575328005327025916246883504932802774993597220666506811742014779541688534180553235795324663788400860291193160525224668836048223177434502030456041049344005640239788646856220246505100568797301299564201069694171045278831778307920441665093299990882953021165573654167420485227259025253970432782204350099278790455200265819591843980254239521315125770801389049135978885882254175051671895732356941610054823496325416942784092472898842532798026714986337124505612237151031711926822526371251726815860270190933411737964433582419285903079280876246146608090874465071921761438901734891312251558681061391308088873428141246349830077868191694524884079615322371709443565009298189534129682154097259270624823031944095313462473429852584161405807370446183777414055793460235200908761009044671000635523246764104297878171027937919245281440872005460592229111318479866328325426264768271415594158635883896856427447892306906674168270095351056704092660860279974079201240868467830303716777699128543257243643665294751963631736071400671369033873809773105913171923287674534987778700514292138758792349280351760370152115074989367007660488058538310314445476505035895731546228982456333796648512283663031239212074627541002849233274046871563724537514172955544296638961165701727298041881366314138060823445480857568120496500519795905629910482597709458548792567285892043319935328365244587030752580344797639745154949929610706518161842857998934215722140642531460204872677390502983135640240148218758109497557014748587840366850394946132540728030148029438022525954606631827865460065086596552446260931281200127979122919645277201812376208467703270320987079973815155423741255679286314975203237039327095621135068838770939968577952647275697949241672083946353684585520003239214871620727490593723585702830339145879863308848234717545833179861141633949769634648639244817249078835243344919774114701394261703749225845821210566921484082471999418344509118206336430137108328387950105516160404454036727763368968628090163399601817732761175104802424203307359055240575897140283579696339185967617300216257464650902523365062381989445205596173203369792961610432269604415707730464575748657205264524714080940351838927123561007019740613831594983668003612192238739638475076649137155384487204911006636217229389203034488534851327791471193617889533569776849341103993240672362204046689213164029656404447689859754835526537566079466551931973561657791303130167995306427747559083331348870267144790110574255509138561186022315836643102423294792089900974528860492361543212097927976314671298609072648782451252603476354479564116758641659420858572986242597242502556878321149602862590662993363045446503157567389734568325518943165075133345334763002540462470190846827260750678626439812496673619287690882089234935101248945176997775785659830932437985719110192413902202499433990792176751708864648369834298475609751157038326622882436860775937999505978684598532955538292010111177778067175475676228805621178677948924560528641412032078598124885340648727090274383160754003007414255172750504508769927925724514081389462779657921347229583432090144039099188864038009590823302579090821951280772250352693104379522373985986109076963055086616549654408177335655529058154747944624793750059874667837045512691566951555879717239059227385902634289217468155290680605393401593637485279570783878557181458213076372574271116028829430860874616803808879906952267482709184436487354087881293585140946162521584687508385304119728265486325113281806582701187498655702637843002600248172291908512790276006446206588464572686226569412785236205990213107098814190561121088536833567660372651041765570229382502948764736032771547089332862495476671065655286746222036173666441992631234165563508423836120117019839007998150703903821164866821191369349326162914843468206951237080541666056713884632382920181743970495809754148551295086082002507809136482123880363607510407333423088062459517386445735992418965278558445131215386544584698671772403566546968975015856775046232605248614533687184545917572577490481679382425823828089688452210734024794594027880498797860968566226680938702801783362081775731563489814495617433860241846671145401479278700790414632652531173647664886219822792543489860754343095647655286120799127730741787772988488680558875197476081038871727499228360333911802519162911597414086345450209643370700542840814078645712387316528109057144386095848368166887612348612876485081047926619709878193170798774945552841418636797516742841851662050635204454309421032455360088127067755186483397833172130676683443603476371278578704931312117724117485099427103123791469817173046352925662074139522216294700386196303526413607920876884690360911238841878261300955557079455008374817451135800951523330913290942820264726449666202452652061435815298031325612401707079253993146408956960826723473818466389768992254735372225909532177736395370863566946582751428004172447166446705765161415999088471368059280487149145696258878673874795342001450972688567527374822122786915404108273700626165525173018213624674927743196845053784711081238495428927566921575564620338860162288893831731066161670683347168965294932587762698485281905456983649013822859262428762071317265169507606219962257763224024092212813655289801123277681035977255350542878949205761739550617276993227251544766536928530002750316682388001852360674135862224014183762687439274172893463045429662117615514262641889692457306960891090891708568799209694718069534985374143786235275349833880345767667166545735986494535119461802804356193519470155154394646010036117450122613509832589746002128479075132662291249213674551148348304770306516012365664631324550507773364764498446120778305247407005674691090622307977463161006956678812164351240448802251135844825820329933008029529512470326495079628133498590701195621512022530139672080663521719677088155394637462495081226140241926566309946533024495157055623607667932051749119663336892190743977295026459546034069847719974142583289463580376930630981233873488304821216014332573051938570154790657675009321522179061296808264532564957730117853663581680743852598184688335731860025506167962360872720221426113788910772677514502538492454352925337504388208619495675026398106178650461716404808255691263173176505223038039283033491916333314446965731858946094955474870613859093299481940360710648626768985060964301413303944601680892017986724427245261876904130721909654747126877021363270191872365292853233908792170553370788128821807735936858897427898303053402083627836169630812898031546098412873511410381406620255313832069769230645677101350619826845452202912010507256288027694349013982720805938158839037363841796393903346302813018197405602558145752185706665312683546704935036865007004785329547898548482621898668499774367891418762393431058383717685422385067447416193655004858588231046147887558880734310324899524101850101591920677747424371685247472806581709832846729204811884833021624071312069767655259161968667512740157569219576438821423503931985236574861562407972243756136919229695695789466741276496309808471176966022985240871808805557762293664707278506545792101928885086694337032718705737946267746413141450289830425397815173128093741621849843569075386001574261882525055594059198447404338397803758952786207625336324058838331307961598545850884643884985407827086662934661169992212172245331846209721964171657541422744009965225270816139414163742744156184830724857608652193380259737398572675049610313604747307461989858664794139361460671365598213284907164811889203364113390912177520695349712570823975849815703876633410859214465992870818299487449525198341336790641501489020391990318038755449626327513673987531529272613606517123928778301364124921926920309867156345480138562743109808678746231975656049995638571669632937876173524341044285032043275228296308445888475299079954252909511841077153359192230423294786861110160314485476163812626145866339474725755876527407467490188106351057597725958630329936441918388361678468580140861334689431806935403639295209214612399954387701536031871191689640794396163820270846541182680786926381487089155853359663740145820730773038017925311976832513776005852450606093356045799841165587826436655396159980400759520490906001758608796451925408531003659837906453705673625631404019040755340449083099997087890253232113745698923032509160414030117584491843091942157829707550615196547322512101308875522687159739516697628239442460743639853964294733865325248828454424207130520760739269341724604364522114117575018666053980434136883416104070335634224744237652848677191647093580075773366274591048229955748293023471165872392064256407727895191017997347482461790654184169315895915577194308875913036176267456025918110441836708649956152768208764802042026057618533243126323572487621316517306420595825362469742612955914622007039707450623458133815712133341320463959104739725388266370585824641693519043676021037613710004237457909214756461270219408953923650519442163226357060966121339304870106239251621239157941335662835307726764881583164917889482074939044759349053285430588862957762642439563103044961520730793626915912610044568627116846315570205630963008230974423053681752475999554649416636684999554550935615032384651537801254987900764852395764646987122218759965004989772242569218067808995730010086376411078511755912048819130205193069931606075818693835101622313646728906415215683563215443438556640226444692685798694515330299026648848529824911819119976711213086213788218084791935508747539486289544119370597867330796204341196996901555329739192045946874567815703125264455725864599116620334798041115052699082729743918219176344571057855804008329066499982292521146226228103967020981656926514376617031586220869249425206480712706941012495214532460343643477758985212102583744740837747910155720864515483328843559911442428484477553591774733856367025880136626704315227092649086551993508604683778911529677010544052531979606690297968682452764421369533643541845473304793669909544180119543771462678699298383749462278670193051947824855611948255453262646888196506233626818675471960387971739393999517045068139128104810311280133689914091124943518823048144720246803497442022705215828070649442803874391052487022460023427985833077483322426396816118854268279071959354123553801395270474739694433086131141210061379965676790844458602976248206396365711435759717595997080170353646372618505685428793597987621651134969683136156825106248194204121404870960479680563714184954968699679839823798620172853078474536544418987688536912758886887925971289685168409661722015394264701366317564006689233316303254472109429593616610360515571979166438701313134366700157702555429967870436986840240640906845749754222470846204169459537573527607166780013336294948356340857550707875007380210657459482187771449090234229994898907365261010139112656890801927295712805165115628545282364131565601793869710732210165032796741880491585244048028560616501362339597022576382839335049808947442961630861519537112045858829493160995867686978021498534375710493137635638098039196951716896910810580771835619182576413520776397954860223188309397455735331389008495096083969631803383751910713185283715278540613291249027016324693559327349004165688664106261470497223156804982781394422874412571972778948909828175006659944862170882255651611061651665025856649345572218318119216205831863239976110649205856041874475116987958648759003411308766334879932650344474137660523231751414964272459677903336779517041650038734613742337886203407412649197106723049573540276836817054951829495916394897986413760578027531389457935466697966523895344868242085921253062884233477261374056715966145366217993094768396305477562246244283961926630916845886612403778636063050855845123766281570542864491695533711484713744436101546409611496432339610187319173597291977798862823173344278470005389546511912120300449329955810347250949833790973564880700346348157958405680799230101493713673461485332871012957001855765802908299442908529612749195904881637312399065072620843647738719424529928085281011242240254345062447907284130092985991612712917296715178352772017681802760620811585094328316913855055936362960558213674785483044706213571026073909597085498595265262436529479888698050467195318390381051260605205327734834178887414413009882050591158962969803099755042543146497453549440340966130903588163439783172410834637509523423132074399070946697876192975365390576621915822693747203255048287706381371935789161107432120379596780981459501723135379641255045663013388613546461637249783579210037725838429592955511300957681044486930005481498867102357347778213799459781189728320068858513824201561333774943531900697335008469238199285077214593379544896000309301644370293206674612098507679454917367175057787514541638890343872213503268467364653846123595650908859309848218754324695806895673909650028686297548834831021114236886844011324585825196434408845817640754627255861498913747925096750491611166347247244201541959623354440023598641965972178515561837857995739339980194093609642506389091746658799872335108277218961583045133865521004425079234377764117433363170897942400347711053205599671503444581697067590995561693596000643578790907143752564027478428741601156145281363073622436853501548998624083033610960202429421812808446247969073169092739434213106997793420263833024886855516886762799328164333540146252380880073989540517017098344083052736511491690478913890877435773230101080329198775891311741997592213959391364237395382035029365624185276544763517316881858087826213947989150615711913950148480741804559548329149241815139204236779546940673117256095827851764120575966290459752119675894941306184918480420156637940676404900235450029698850812696389385038738357299295026714906370993995706926949250860366690600645305565411043045554321050869210594704863454118632576398143881373514755568978435330536969516480458101830473087007241979634679787180997776353422308716503358824554978851638206895495153881058011888334003136464286120946620559485166333470233136084285566554985033448850894580563557346743090400680562572155071415388895309714914211981521207064182796597367645996482929344462629017730513338509805022676618598379802150641204637140494850717063730140721849992957805618927581341118437287943903488115117166075174040506298534785830774233754657963395161542887499379382758434431229018729482048938649497913312865848973238516589071448574411368404381189204201123657189389141469579605796552085830153329775804260755491598396283121202351201255875006548359802081036725881832537644355084698530011489995608941664983713870106521807891656222892741326818603987031816710864952763875319647536733914474213703769970373273451266447407056582793297170314368061254637817976717844369762319919487873487565175662942677249117796303276039008731349401403961959349884443283164551327045096737757266988637118281597899660103118668027746163241777528039858308541028988594669576532738686721225047254905271865188466691012673465985211721954620570794163204176144890831758220671675057162017151458794619518563301652723913267525590056599266035181492968313742515388482567085580232544714209548086121174222407145037951678905069688398289551132777229050393060660197650727370725358683607587592731950028555044256342341231692152264126601805964115473861983065141465823942039867736993036019691660434693027166615195122835255652436972466880648332169223211947705490152532142538807889030462133812352310319141357273416726393598068069491440456570497361031073912216840466454498929445377652055273161018311119790828406145378697547899898353874865050869907203007806542369745164843476533654180668269131378029801486945756980740075381324461618815096298427532919980821064626200208528275990048181419668344396992614704577382535168542220615473954208895099971337981056063991171761110034014598755699463061996476564366568845600656704749039156577003133115135312413258558739294090655925267728072555956603291912790280939059041090728046698408267371421494660868290764302338459664121526639519960079254740863884715698037128992006372010884507182991565285899054090508781991035950743011546529936019261622653504541648166634022783626666871277228918512905221352459717828410607734373834296772391533594681798009430436230414478791732500917907206233436188275282027847073121060255691932594659948153375350090489490362990928520865186463527202929730943157941166056912350413729661502665529545549739977905027048782173209746596972150573957466436858224427079733321825472626609799838642121404378896533278821306442640252994132445848991159639772290693774389304002359219199182924391131348521306591230120328701488607038886913176194644367871458354101229733740630609594533916900966300311149237332644956917468016310405031823526697650082892356458862672414073341141714808021664695399928065490650940628270216547204355341375028877224238056002172139935584711962750409349902991743075635490014960013331370217167969251197408367131027204657881419834725019732693302910353504111075679423799861394112284304802321043991405446900818437019877093376366674534746922538214001631830390795358679285758969133982568502867739253723813030619250013773415500412333835311433776970568668613421524662515903014505774708373158474858529476524373336095609783404667024975910154774819463779012754151509702806348159706355098972234934067310155151248518182731771733938852069231923671939783697577517708799088955196869973294929699105300411966535657065206416489176196398405554786697568186995819708173302516808411882272200527816975625749999687803505552421039984083828947837237126663698776429171095406870648545067550267443887444804042152359548598090172766482516021571411069126307622885620937357108367218169601008760751913605270574276225208814430210624649986844447096473430700157286698620651176368228383963375799456790396721475049263707136742768769729036482942275176557526787067485276168016984218242080938990059055866137602664896715729620512642994475202747243148719000398757175524516298477924622930950232345740248817230750048428211050174820270250845451507885036654485590534403429974325428597483555090112527802773692889323989293013019946487277707954404948321913642036394481792887481631916592566638455513302279182760747898446487459538227487360121054828454673225988681709457355508742127029121703825020470579739891105372384160651921426386921561418311800558511610401682364534396383850825224167098740545964504456625371397244776516357048288907965988715812420339092728685783787070958391841167577356773614348576139976479965717848449257930002990046675563027188433432695752021931875345188855235606279201346124466911375479960168098816737576671963047375454254537299207108245588092810780351404774477483204824730721631764718171637458264508785789507054644241429222967949969150753411218323020166503042937312232609873009693224905488598887467348293829275145183859558086346063496853403156173842844688274955170862474060022172825445249397838305863368409192444694188679020417234008917609867188264484629412052547053866955932212024828224816820477346518333073304978178636985892478219799899156260388097346011624786321067199068044427173022986613016262454258047574402655563532453710818377025122675835567120952467099732199549819880278954940486551861323970162510433870419921615191309371475066462283471621562354121684676939797723963130666415900658205554981953226024284710000997123812791500719135175308618168416741421621928199588641407164076142690193078799153037970244240039107564290784279160900896414988783955679976813543844518383771533981949162410182720508430599932106071714094168540354953951220462076816048726532662507476767076092881419302288919979677343669981186129745938478518030065002621429617975736633238491476107515421284050518664355482786989062161944131101443916040248712225997132802907591697253205939784285334614022182266479530642884888892298005886389577477278651303784576283993233276020905394036463237999118777279491058608215602463571658003800635991912010191276514587531246358980685317897272868185524681882920341958445141621825011498228170319891129589140544909588172878223627752736747399280512301631416160355022268487542960843253381603745600407413232692645506848500773007906899153512200808319555246035760421464484384843918383238892119884896431789668828504946779470047725143612512208700485617923761699701027785243927074057822893332261912037543917904933469448699687414037930602637160995903754876852212123759801082296197452251846735247455867726677289931854289091423045664513825533071149585952139420606107724919962516322041566988242422599735010260011440114635672806748375801884711742713340005874966767868779242411288808963407738903607941256647217350660040020885528533235954769749213306531869393333206661790756088843653856220604032053520330850688697789788096098372357535704941331334829038321132916937040680263620022220061616305224752888007111320971364183907315723266516048041372671058702356167244702811880333756029314168480634757516382535216440084763800059110988744822124356165901052667858587346613991732131172762049718538094361783237114569435299021391017993540664011523436090475016635662022212611448704838250319639145187644817903754875003118196709110324559809015820167681087250970492612353274811332369382892250696903686506843228476335809595933425409453524006560019823725376635729590104192665084697828200688521895539598509207068413599260680124201279563369411173670546638302646906892120702513437183085929469521937057602611158614096731806469217155850747335566806293299332698158690722845355893567881141312414677605323880512055170935120878424335366156684418888466699655266589566650450836907010016892813158745205089743952458588405591381169287687082064617887932617989401697705714695477058058344447767741318513893102426846499600114209224260669863141801994752542082558733598332741898446373081176030666087095476132337424303981730080279541397330950655585780403623291972575456150471847386851093862019171474073113374546083431386827186968596749400409193856901861777919784734737819940466748558248651469687908868170782957312580266893245410509256069942279788945066726247914801188603794328743704980373987907497904874014468057135073544255885909080677173961303901985399130909727682268701837275625383819712453685603646837708743736437362296699004334823011253910868740716357216664118361137230433986373966060257658249455444738260359470322033193550832575831209063783416584070063556738395722125432461566883530264013866177248636611922901774355099794263803515131113747566310122314608721380230656224041432173643086121460939431508411958570991356222737608049048186971711246705760600842480007149219403632740068369691377823039942430549217849306592472872021836363378401198026837618021601095302339433610052430000862603059565482317687016702665033149511173405708673408925599085050641453355827044443864404485184425030723457334700231858329100632149478835084015297317642158472905352512337951471150308801821870940525626047247968456956500930192717758162494736909848597232690624254054864312768658038889709557841776782214603348058689127669638874575540121615123813713330675171263736754455811932744538649336413133973075664481379160355251008615365151362915285304985077294244792309860082511226957881392970101861340072546016871137600263365014555882757563131101625134108440855350258094405841653389184227797464223779082344256445999028186249112711220178747698502232637655953160284906497715195377171308120247831926599909466732606332617828433734161630748674851132202212438076784635616772565130277112072437765501920829943772598094932208513572364403888309452540211695622066703298149053951156213371346347880302294747695067082855710935616158192731117707417437801690922199639371620826983202723220883965905435773379950615200059750098150041066017519479865710986324272726850534513287162654664721490165650441111117606008019922992218397058132668269847347106221185896507513929361896300427634085344807180856441888384286043671675801581005832945415266589562014704919331073500602438910653867339774008396307302531724671412363160263405221241802101351091658197862854776754152966204659747601164259239163886068860231959079789504357465723579881188088795587962006633474710437124860237512679308614565535729467058950234556773082421781475231507093782176666605382971915500116438669864313560149582843459703139689743642507098972243428436660367907020586675884163242915223891713917500047720611022038281439708248522644605013511863759073467386184516646746935543199661583114943978176024711371942057909427066303666870146796543739261745751913266628720773935289352862059028703483159529742460123394956784769790791570641654181785797981198929193075252527900395846203048496084578881108174185402575319952978951631245302605340394514837917119030294057940036253781321197913896489881317576296605617583742815215125381642114450657281520007208702506771037436801696411764585608694970897852216107772871919571323123036762609951423510736122672560645426105130909059255830706999429522632136582559222477781237915612722809025749276625591951454306680203341921482992568627291955613084684515416822352507930465270940005476876213383404357956535294612667039273473267626989058336448773820755402054163361313035720594772164333514504278894603429664226608138868266427399714149833677914517121045924576073129001411897052517505145555641125796442795310703655576352002933757182058633230965385979272866155718263634554771561320416017169061510386268686671021389036109660870804261057476574400595438174514538912635114331589810695874447962323133710410334970107195460245488390265955496201647922914535629749139996078230212640549101915770863819575584528869864459184909482100410190508209941455215958668673365767013746280157141756114881548665835891622079300841640037275436338236736351412607482382556975925104739971861649594144730161689461376923182156308081821900902557459341019587320408456399628653477796610549934009505506782221465486770769284167666487512107437618146791526170993500205009166243915989509710951047725896118283992137750753400764876507457460241023469184859850417811423032615613801072043253291215048662065120780258894459465576594109329925885651587988263369516726757519977075227958310995630372474619426740597480870508118074652587881080253881238057792265358569599154574550506905053811381446007905863828560658647302261138767367886705496875024613614478555213792911601505167034796458075817992442110373923852489962538036208391633956815588029758866789684203162238968944085688714212885192007776072672037287276964653875091939691243202117122557218178806393521977449664300620505528033934611412723720781853936966822908148137978521226111535884104724876644267190929611229302312831436056506868493642353916910095585847769253178472903086716802602454046342922680305250901858077115357219547158536043886986300101587769490251086886718546781671369641280281620905425510519423554908314402432552415947066599484759713603282063102264215272068169109271371994008302759228901908761775608534709357757210095139590061990480125894364839310374995722552959602335835746055152089227065205117770578277151283985605129720532412564490291053943674154981277630535840741602219226028208214178698520587274183392619901532385060681385698652980277177094057360412583328566417729389104629506155915258857034856989117175131399809714721881992219268717878147883041883064497515902527970629306541451335373160348827005846608261640831262057529403189598319759236226077984841976650641157536161377162464381115668288365312655375160919191775280087926276805753499232870697705118808342932262467830818113758297356952730653199718798018382658039522573901482392832627846257098183713082384775086754690462128161552547528750966981541488851458562182256984608600051401443846599161184619497968626402886642123914203530095885511088669772750246711978809651874674156610565636743411210803595838850854526943512753183550215329171527268025923298134381618386474962341967297508923761677195374360475296704167308777624039354277169212528146196180658673833826708501216696201006282222067499377613188691839418473008281478321037652318660156925945263443363597971754925538925293198671892928532766502154529569947129770498030548458118377752575646891742281636679978791282297307561879236934906891175682861597001867999310371765479776472313051248375570162601581692939371692246726188522898966061928070817453437224409229429996863899850011790227056639681213049932682465095012554421002375570792148610828772942529869638638414701880866925661801983657870798008450146024592625136553815195500079366996290456611478468891834989326804474842621849420232604868286103716511420572848301864101842445055002946791153299061955552970165321258818831670191457148014789400022021572655613826566815485990938344539806522089529422586823296217039294808434377195165673948021602936472632880549589056463390434299107190887171905771699371668097992118396586988467121486530643317621763101192291703944247493834568694219567814904600815676238185393623065512838340178596727723342359588697531272768015877389943851304917347515945331603783750093925293635361234266296003255902826025382999058752851450390985083495637795747495625841261290126995293033463304734918402848604369448518761200040170214198616884767660073722404074420298167777607465556009372924860827714648630350680532189028811881364909765906702014270873149654008674895942488946239595438790086998357398798411526236472541006654498976709037991262052499682493032956068468103885940888576782481316933311878148876957140545206080305136223334995577851354875267033929158098392088799271301228438911262660665166906767453380589863315086954711305540427873234982656959671122459808178502787404857095945112740476279410835884780264989434997231924594182366532746067292700860202105741071065256245107064514446418474019348347619406798984984120259653567783878404171918233444989269825239782057471285874785379115802937203095823061466293213223329174877162581834343806055439379001871905169903885980586231289004975211786260832669190433890507717117196432099449735906338260266918224356216230711727483483193083469885865746050856097448582431784323889750768463187511852261884040144457532059015334412183810445670813774471412106728992042019114498912694980172309678629744228794376520674524792802675462848947478187127642011240376882246094447089168014523624184820896560602101470752520739616630724753113201989406246266121550058452303556258282870488040981466476458749878091334072502933030903329459963942250724223377461756512951883748080419106810047500451979353457282482026491180853531652839777194658617862252527530975841670850988134931238690121239091386104639909586236328817833961793128211368293547009701411880049617034844641766950442355173605378274167458280570286752420395838596241503895884260958607713051975720656571665601810666110297427804905576932140124255955401677236093749044054339417837051700447381564016796787800352466137935488062473532854335449394566999040303295662304265179348526157333705231553908701710626298976845690082678382218741872653711052340176072011252336510802676212051060708236504635966310028735983901523308551929415327393289259194913548432614582090260787996085141270666546496984661826976473638102907730831904415019991875851767681373138475416665871557673106452578959744246715035390921528507285051481645278219907747118574469786841045955898216342599303526919723000267655982022655050191752506032069138105459104090768813081261121066898259997896956607621335534458751785325972469661100916139013771973598590644490027561949394878822701134233019512088260751077333193925470620384856754557725768004109727515229599224456540557742363877863587182598367898613310894369025406961302236343799670199821282061559098909844805664872006430726884596602178831853212325298313359244090546820880423789066652795753468670321131399396007049571225399395228950372823202212530936479050541379649852558373138440584065875959739678390425608381982488037181510012071312544005945978641099467669184288182041141210457451558640614926676873135813564257891643461588173473236952216918752664892726096627824663993949718819209470982160230156589776346777275061034105004934707305789827794938956964103099979023276536250257368915270412672994407614941606169729565497788855205342518572535587700121908744254616196266435331677663481595786619010042284939322005365153933421899319024500298004045401080768279935953394510604944474840819313731848669278002246136234011481928415464481690817298984187454179555275436795878455067666164520203795510997516443148450021484138593864236198028740069159122692895379891043918664435873829016003792692969840140394699237155154621343740247596148471024739907342701110501982460798663471340260408163574616646704627172652729635783038241592334985095400120406886550843727198751352357496394229956641691286714685903492060285645684577649484469938446240465163290324225507058193878543108058577869855314662425342717208076282991486872317789602124392163876902121968070954329968597349365534889925843056887335015793215858808494580479132798974506150437845729017989934375828834800234127140885399063201607433449717099275181898527695233601394129740489515079193426043425672163193587884782153215434853379099101489398167028889969602191194387220817122493425331069255014864885954508407100704155055840739442198346419696132772691999132744377957166785027308771299560179258961528480848203879267128852487844906846291473437188404547884611077227659409791873570224736717977107362431119958305929576806484529317504969030418160192170970753662268556475846280153084408635269875197051704608190593845097267523943688125783060471454130246825032023737524462700127552273662881086735916226310613792467600105628369601003512123719860629453642824948019618121009030495637217104769330302617957352429835204174580013029446980254027632626734928822581106751029773723168677609790817598069391128928686948185927378913502450561476288176761835868403170609245581303276662487277110231491940323208074703200090212998940863691474563146599697510907317490857624086173067761963250069430840267820139051134212831590426340646620354167465956551942191265901062372846331363166817121026620774173906946535472666578130880185620857999284167467507329179813561707391637579237590929572647314990762084521629730594186030222757229985492620243931215688169854656994483903072082792695639783994050630456319782291063903315671886424237797439310928994644618892210831478482698646937895860157723850254168588678726399028712628671925930351271453843409129144223474494684513193306244095780271642684985340367897153002985272950580283901146704483821833376509127987917408260006754047449160576763476356745211256509693989078546724960853915939943772334354238737530301334136567013988199003611244579366101976489044374236793855491241346159456572940083063771925271637597989420124323208723391182599091601525425213744045869144619484440780923155075773206131609511245706472964938628394649533551427515855800329932788475545756978890601715226955086619409007884164471534690346207168489247924348445264880763732856516578900302680377828709897864968365297183298272127387260438071784364325893679528108445475679463184524079628141461585953733009638233458205884780679800653960503181568449251406988576726694539547430397062829666143261339778746073766840479141065520366887048878507178085916385010561950352202503704560241667651132479472736540757264820222786928362737416452999946581916640871949907956208240933063124182447064188174799529537093767949386164766186683602186912455458880749369783266638860224555389823265561590523953688799659985133474644899445841789481528713037577119300125194527656504071788427891790027127108460079005348156557328907479839454751874133996741383502272122171117012199326918226920168430316569198899199370963555421691186084775578028243592288710471266849290616177993895988357758593532491285783222851316552850133431564158909324502947690903537557526506964487082895477705419541800417868231380154784979829753547486179363791169687968509158590909205226449169374845694445627959345170195921693205793106938598254887966867656101102023164062833014921885752065947772897055984935434724001393757985523380505175967250359742402359713388298601266721414168030203758214859223658255045427588070392353038608964941649631634825567084146733972375764452941539402034797923965236845215808462516297868130091398646662201907343019606290664793612009749834046490149006636685405649429531349363966604506661478046007339615124582618139388286065495344548712284325352408444224080591311051654151963118243147365958088542143814731355125363628351816572611170398428309907234068857153038644590932030619807898721463197552466562043221177313892228772076493033625797254795016421661350849983078321115435951364200658680116047119504898081311703331437349433119057199116477810163273733745244296754412841891269908689093210549195925540389342894061077728762738374599877282872179600247497739019973420705460186397584221205685120337066594846335280274387646096332655158960631765967073431428505043396708193653207574110586413854991036977353412702503750060011448460289089694726612255861594634169700826121263328593844323958389152822930920018171359215041011617265870452112910460403883296421059145734834644534162434036060000346657881478477833769026501321957813822361256418317250136487873486188108087716790226089430645481354364657062684076273371842756930636779248735376174632716828719435837490059864460855747055769833335157235464076229362551123540757046121630235632044187631817527627894000535830506225184135392329802667810539733925088411607977763632755847864352546774337977083793359786774986067645088341930450862233077375161999772608702273252786399317997474773191829058557898970937156708187082625395986759178946117780728837530583517492650621778244190985442152446260094386738315176622759139879169979139043348715956025349641949036395246253360683565417196627554598321088328371623669279916632085907799717504839029001463918024695385916493856918555756379801256620102658129373564401540470684509517738449893820394478515584832125536190268147951883684801920765222504320413920462552246887845821677640615090297093591273801248605878415831972983713322288855308680989052018802801216767704902645448798069774911962489610537845430508535310240308771707157466238244479062529567411305137035787721683634901121665825627418850863899688281073820715520242264371080939748643235345593089858824792211381027840492010693326898415349619476740153595857369936801189821162926344426158421461497196371916565180582071670690483572494257479493117221049116324136173188662957807597062792459957661361450656298078292326975729402383716683374365128886149525302903597395907997252417520531636126849297019016588745977910637317538372900359575132830102636942246617970194080563021319631534056762115596448467187969028960710752705796578726841781751034026072433251594466510437375867217094202719326583798268205667287719828718496833041344296677169569657342637010341261686453752175739845621264617876995479730242574539190952144067223889045655499538086937685529351566194492487314695534081226080506571619654912700414056700984673260153652306662744445577479930375028293395873778069528900956446767651052338501492820662840720867523244707604526550277686990089691170371347760185260605519859229332979039748558138094832325265489960071793237454215013536873196986657962747244377981394603378622389213622792031323652295462246976659139119109233862150889593728246313553741456684519464894504390182904433111992363681640516672307005334884432678559852486396002392628911724997433378425802384296091136517718488351694940899525803001747648535936237860128542425716414717428823469948392754261251775614091275045709218469913030146906048084575315573785492405890278263477135091728988981669739896153264016826689080389014412864017819668259273490965430766748872894403108955089572696654432109592381598882788927019653906196034611254701982216733925084829898491790569479301474628944835091396392650929194808981435599505716583343046884735614725549104701397197501599341205637253382572017233578131910866977355428155011193779614463753380271224957730344024972069008313989354937894556085493726388864592158143862560902692273489442523698733693274454680740954084564296550757605806419007243381382209722833444484798213139894680733956604106472139773709397823251511235774507304864835861399759551027744070133523146726487979655342731600911228657328787785814744295958536666035226812654735146925864965354795978421816532465132002568924898848292099931288512094932448456863328021184847355094506634880894084725985428809837697642037013696718126157733495339074923927106000126301309579265612611404011387744386187950524338184468522118427857083401145488212617865017300715952476825754846819768848902448989401591658636925076377943256913970952897451340570202139455701138204043284888526746467553573167418363708263844927699777706143550825850007304752561378486640337164916729178156075015074228722631253438472173742080114754751654001681773428223021789601742525565173733522241233702400747364899465975937603431654348961615064462802361799935966852646520751371256343027613097337407301931313327592239681638331947394419843185658651486562561841684382031657335308239374586000661124324133102205116079264395341296783249985489403160195255110302030074787818593131059642365909506077382657603290506142071977147732112607668801250755097834826005332157942604750096483243527936570588579643873585447216701812293630257541017153148477322855549552004559822174718735755689249064993203988275217900830556625380049857712422570612720535551301137798449173936518559202062191625743611395191326520966365543356360600498923249644900541878552115862779711411113384715023683468789229411061476634135966611550618739780213314015379357623348530570057625120440962246145109407784443984864449167442891973842615476240145479663136807118368575522829351599479778920149460328207762770331360218990560293858508585220375401201013076008094053311216020414543269017067263891741077502199403410705845484018292001242896399151068938163381256536295254759277495665963840829984649279727294740091227845273699383087105213094736969751309768385796471028798221234180016043782119731473762796765055592725882130550318177342078637888982833890141599844864188079566957439579204928156364260334845331226876684787865107341492086374046438418236868336360827689183045821661421159433181112793206815026084824193990552713918811390901571656510293573233656628577809810544360078895816380362350389713689067587492421345004861573130136495091378882818676677212139945512550319506593499062091381203181833646519948037083898314380050126341647068612479539773369001424022438610717198092319669017329564494677482371798055307565550664639287153785865797470462937736904580450061740466451624405768886376272760527456258273348653461448639559547499959333163988801663311293063339869392812821899867061219068033300809544555337372564432862892273946469547055319479893699172893954668816858449802389809940958934270772151358000660177233129123049574666261334350295902730055475700781264891974673497841472684050872362262439299238699947353363912239532945088094870944312020929740046332473100370198221271413986223799541808494467871635742383405589623594519841413285748289600073681288151828885370844200172006411643093113150076732614729319321342530682836061031577777636823170960047901158586840164788164268812859199687030780516142823063636323984283879665110482252727000016818697923061124058389163820299474863248215366868381928603218828519202631441519546663242031569206218906178465741801612593855630406239857208301617009277672322466850159202417938767628509816312790012998657235155069213570002174322543104140732140430050896045375988754903423867010406990372041365162544707554454777899921372936842643360767937714149114776034809183140018092751373621889548131228839821968492456979556801470279256315091081559656036986140941845828034999657536722578299905889554037660344120110467489198334159738658515211325710021165477446631273405514903110338777238963213821380140149018835432119202639900238351433440449177286376366825816023363913216261784352820468846191087822829133857289842901351049918025924333431708942084716902782610073285791963391023941079026321355019567294160518955911301662837737595718448342166591807967834486870076196580227285956877755944702117219866907686643792341534617220244342346486113591883270564325885706466237773291987632442383168177787624271118868602148123820117860706657986287901712596510541296150485504332461165594885077757225536411234891773072323725586490113895812017563608652765183118356437046888909782186355181365524377147579897378249757032756813593500337788877335672465313554401866436310658817267240421203200477804671163291799567358221557392062656371897933563476349085909107293804933925003335523673524889841055887883181709064099089072289579897828356831374291032807817484023524804458132821201843209629391392834306256245665427589404203776772471955151150977431310324090786432708549096800971199950925721369959685792270281903543016179047936533973317585684357100176493997533814886074666748076445016076722120033110999125876886877492753265558763237680369782351181963863068055013287797559083671949126418906992072344764052579061556580303152623235273795764234600437132840342942268220335073927150752796960076202465743189112526248375959074360158585276610880295962365041632764497660257133868481201994643460247933587096702036037326311084397798348274255140231811658485743902296869302371066271775608571557343351295169276620056456572148745660503165014461691035619965946399841797416157556481727554363282308392868202479574848021442958442298005162324877512315833554336129602907525233305154600111996806993866049959475232822548725123904747936952877597232442590114705491048631165285529727759833562819741143043764612201175945595020951278975043595296590867603863223314197474703297634007689494525896083633414891148813697388946843780132734852695891928172163224481217474957768941652815780701840212459096875772404992699439696571703928738965011735339032345653374760023098818678434115169764141673683942470931323064018408270419830061529919120555641066107650393679383733741769311163325704677766416935492332975415150878043239501492725427889307275039719092091180743976194720148994178285671987434966898731953478563903261113070218533887337372644880155337518095919684199741120185724508655972493117404353882558756892097084431154929752287030181686366011101275501373708421952266936877501719186688536854743376015313008544493673032903119244342622106647721964955885644179974972047914926245857924626317367159528551701677826164775201962558804908353003018233582503528656018287784809969278142608610823980523357166434886165704785810769982701509732211133760372610837582467449505179905592613323391861659027708899973440178309883603299438515535693371769555926826317185291645340609848136769073255897750889371370793474812987742521328915523136309330590889207270052701007447744843564077740058055695384403944342415599186519732542885041246307650116004698589001715352662300698257500174466680591879695790298939048293080157334411204374186245174000532816517690812645914946394286146605701471270336188640355279559138921971743676915671047901970100579313743167238181573633337422859690168157677819037632182756177734076610675521715100372352864111878114297102133199467256311317490293714116421784396795437325195037062172247705640457619975004710465576140252786417971012665318755160183322636557493354490274414464766275231955299384388165789821741585110223184824526277582172475348433188684394128901050582567277948796872237841696063534706127456777205258060376810614863396073701512250282337120953707733940964238947658086809258244634753158477971960439538239350585210371773527941276437184486210580089932991798159315852671475565659614899595003464928165815607740050790216930226164914589161410097710929586823877622154483123440545561077794872089027309786663262308761521974114180527592439793102106263464738276367792552604270054318565989585811839204509425064740073476233950263379446627740865504389354311871723100861616721054633784768289190838364591660795067305264950610072969836234626655939651051434029258197058031951283199856542236914710744962144452572089707295802614654884566285512276530848285399992896546879818879631868510916086548568279453051928859821517303145821024009092856473029330086590977069184350635333828771489172168716841330908717603662882377414208366474520429768332917550482459422778869004808080055048285719651642385801325209301690487262833611892053071530330426935948388277112483920819498298868254120589159066050038048738635677546211536918731651960657073283931446030236706165131435764497844951095306472542841998542066533213266185500964634725045352054952502545814082931468333824660282463908749933597704877758157707938861005505312007376439100610067766935481055657333851383664716711631769279996112618667798909779768562544990956181624021387271344399829275697243731730515236970610199112342596151856523178211515834497970190308843691739809291876469687015555604885996297581932046877194428885368276419006777504968086915446300190628519474725439185676293756187290323025052097237763885101608257490179822849217926762501286831812053381447773014809223078585751853819693813620996394335401987401143195229359859990180069108470570841924867131787245489906108587121097604628785465813984706155346564846355001002608755946225050502416497359772848349210531006194227158156446940733042948531042091965508922805784721443205558895168166959871428717960924153400511169856213113846990708716562371358182806247668818484550793316356069409807971547991443776087633392498819547572288931532625958688314881470776437813642251668245591214909636053517766726981860703896524085243737417674232872756629617706219811771437007377115668838828568966903921739182908373400321467355581519494911690316018053755284087875665525245346591686903341751488475002940831822232889739226262680043617710321539161503167417010349317049203428348902270845281261581128492695748960637112835817766233919627179334734417309484678244089052711452186468802486777294339010188222009563383914608009794034972535247110655081486704150732481524145961733632998486003158987602101199005954132833401770939124295607074808710217744406836320928249324779894282164519818912088511380650931640384108543493485393190782058054790852703558274895830545509832876764296054700939329913237532035058919660424296335136983033194998002274950405113915279194890854199947009881763098283604555903018295620735700408143290922571172765007869195832282591744718566657039746914871030919113101460405839175712565148881627975394659348748330606938891733941795832638592630822060898359713816532777394883054620965316920955271929969532252309283078471979327210062049560987392997168570212255853797056443667393357304875342194066421592193869803048818790583993999999728016066630950599185606964945731603894296777685631901129464320445581394940523771462594844487374798437411766434077053460037621482105287444380660702037995009743975832306344578532969981047276983971963048776402376483621873305907554553758433686314953751144055628857785693146427458963947144250946198729876216714391934889906793738256014900625783953347548646452899114029013371612537771601055472270404038879831652396069905259979051695564144565280676449330922727928492476374607981791981322002145731202306629427759785682171669226970527303933653890449833267347307781119319414946651306471443477461589772358280914788524416591187609062342294145576161495000861773842665867169665916082212298305981787121598357229744051809181884518095596507764748186881960745887304722846726951288602035751516452181847218365337309161626284299761213701494830733489493812341664426124944697568613409976537275768480081136044191167904966240530676230989367812520874798072121802334843402336675886180283440676436786176691223866706745468198466459150517872261337528953362908275779102906882882248334199689005713335705845534114659621938515610210327028567620566065897172102434634944145514567781135756121859238055529106752963704375789147511860943031008004887606520102747642438546081947332167560111905007042282355148910446331592193899332847234590825213266457989948104598715372118622012896499536951906880655705108777755665678895913139372153240764209307243919676508127798812583601774783538356707019750045155284594398669213915023470114066132181032513756701514457591153826748545534148041915399337677132794528490387864046065143408598358955326714608379589224265816366240732462433528151649763829317763449968533647532398535805903386090288424248543397267378011662386612223426956418842486932936112399316003773684835943001615753226712483843038893552847839667997485746537853181077191756833095550254643534576042962324355847735562712598666302091798215984703976716287658657870900009202858790586681587756122777369772337587696883402428131248224047091345006643360939054561779032937689912987156002286944137536900466473474220782583689511621783988108059938141863978218826243477765544250873475833071124626902906219454597528156191067387900405888562314013440720080996224022679015384892166375872084049861831399481464624362593047771170285206412250487102731494042833458507786230426175013471408736408752113700311938884362801719593252106682382335015124842077763056080165932032279843891641804143665191494673507827709162102078422353690326772369393480199592512127538104730399844278999749334264179173374334748332549163593291168477438634780369161268687488615479168678073777488188986647891615665235717635663264052811670412390276582122804263972616118626993012833036119077797405821284489801845510106739201359662006416564932127639416921759886818031023557487355178857081218949227285429001440499344246181501397534509036759803148483159296787010820434003188413500923666337368226070702311957563000139775091840483087705291686321192815769289132494273867474252200722632147664803827994085016781826099103069316749789589116550591351614947207132987834888303875059415278602543185871619976655200783436284063029527486561472592353678178477039544978801535380259510748196537466338274923123467042686278663651795467855354501836286666336387636843017402672669949586368951603195088208500496614689764455965135249953716783081589886251249081140290394842156664425158269232885870604868797853231199254296716844004492847067352458822087949400917220339867513018418734196476731243619269405167901004897951827783458244090123231594827222208256437656828665656420421932706802571571488641755928787552491545903187539220364329588609394957812965751413241729989095171667945704964358044302627019542058033456244006851983356465620535036617808349682559310553308187515282406471001321963933617084699674727201877443530096592847935711681890375947635637203500990339239287470691323576228175686047336580173597257388780799263259791949237874773860903125296223664379646223173084684848161926441344794490745810517387939278309581009938301747507367076980462356303280427895634734226267107333378571021766930583509196685927017382186812009539180984314236192166427000112683312304380933915500234286472330867987769439584688606712205376220809993640064118659150431052589918531440712956606993778525269558888024192580614610141623079498540154024810122090563221634541504273828690485511943868005002323342691674268689206899722113487398387399747180402293675175261729661591083311201197552061775413622216907871810104617276921150541459370500632082921426149982167461627159862220784473609000982441531790800552724536473489952874880228112513356874032429903952588312302284136537300731736857014724919964258390110366046367559262100778413944523156715576778535637513115811561141457297405819947536294361304209224920683847264253510215051117403943833298170410018234039430589966080368386833525186985543723265686728543399827530064963180837768962425130758936646364030515396817029276561349432490733522160814164346374115768952833253479171021950447092030444904809611743239352190326188908383178687353428832351833902516839494903431941632922657269020258230978440673032113668160212202509108398232890139731670799565263511778288680750080425917994112279031405631390529382756572404448510909300081790921181151938038545010290133169654480021437589615491398570794380984066636217065660847857785037178748097406982912908738260803877404554003918349539868496859031251166738378082430502959937624452985305568391491320274919951611217533792996026095328980182547031381686152725883886236035842375018491773662286067581887304015237977933308208359911748779779659357559229199869917116281290980625696242741159925402161148169870268280399629888491839403830545585188453311010986397713096258731007391735478196619175227556233468973847729213013168112157699350192076055170035921189516744463835104345298647581741114410753330344890156413276114362843593013498718330301787089079796957109966633756396061465716426247521039967851274499907444414707581478909537929954847574758662505734229218351025940223553581366102574432172334463555719254780495179406812160035646875854051540939275904692253212822681874809142573685978320510722651732681999206031251163077130821919493964231560828860365250075720363842497940169476881898329092419900145899554624499381476127889818837447049687605251418316410612091544003800749332213291925668916542861877392620410104316612720420675905596176726886783846959655875437848079725548410180140426652320935373904006875658813613322984920382916208422462372995220077321537779190123445364152386786336088612355640143531069105271803579894534681423807941508020730226481408130172090772508694489834545848487534628513231241070927439235072658587766301021373040883366189293092923988875309590695556664877606999842646140028842964071473337412344209919239968506270613159321885296930015206317604364077304975811025800661363786838220349083150336099214893571636446865312038943376248267538912390066824456676027782382261100706082449205311870905868496377033855735797789846650045066251052529826609593151860923622706992373602644097871467803373631123113808899844941572619867388677653799089322892247143906541785880185772178948795172119795322071890101760924112226256810025199816522630633438864190924513862373803723141789310013953667477406344933838376143340574923163682943624949502444616460507964132022593468036365411755063547519785155126906538759635412030919297940956744816497492550660201090536740514900680281532065245702083364214440617543130236224929140512379250845064214548620114805794216728641064713088544061744618033457777502483455721851441199957195303927973392511827900586284580489212051291990135729566216543594774999355851876406356618015664355367785602668586807808382254374715664217701080390790428189265682746322255251528909591598858579462414350686134876798279823379519773564876585155135202707235631156562976374669503255096506993418665928304775456828152474913389250393067379073562517991178390965484082559701965015400833622445264275889004285241699142617608034693336003643822068580004433787283486233164549393653582950524498049611826710223869282693006835984107085193496707016229830396834541680281939814989961909949797071723959735799654283533435902048603780596377887509954646126963293995676497732723010425036933448092396554059690295163270776248987415441137752660580543413181121269003047798505280394733932285869550977452956778471558033995666667297438755148665347009131564526403229013693622581339396599247105046170189223783346392727460703217287611588296106640616939880218572293150037761911288094559884233363085040842392542129853820361368247378463040576276071232122842433026628042815390596821023574557009438720612839085003575618173600647485634160057454512067561468954588085011633655097329351736789581879017561749830994924606477169213070959625848317196130416812477507337424009795240830757927244157931658975549616715645416976628476628231682155605879879325658999152514061723326238414264395896443053618303751349162758366269941143496491381386648846048221082139731858149903003788345711930751884592102548399686267412133921185024269249008601099640473670365932993169241097263058835471300377833052423099851360014002674256059673314382251481572638643963312841062138050124724708805015545358827849847776583853419816267358218095888545827908612245743657207521984274908702488635649820398030522236338551963403176142369173789291859461404439048399443435898588268214439900673691009502712235940651820011150849049062837970038479482436136950530380623149891177297682848055436397771551133925607988957546243988969184242970954611565301915364606141555542678767181332754378999404799060764916207401913525668977113841815552988154021271951469225712908263214755768513192219372109289284914512837146735290614953174682451101508935061914375827518074665380877640064663849421927442067102884915552569200797684406019059142938556625050793757507525564871029302870333904410062529669569951160522544444176432128169564832073763798761712689313396600346825878803525988705009381030067061736810581080391680868136876428667788677379825541972607888004161191372416651559700833057066555086471967379180090287791265447698082406708120773094486844660709902821889861343699259049921891877362381255427956100040643678513925748674549181442776544314644438759470152681014458863899618143515735583814470610094591150821871764765011344919443932461390675693514827369042539846116003454167711461304492041550776785297284590350707970970806739432122932604078700796330317225015533647571205321788646037307293147948732781606057409089537518350189559683628166808910301418775304653172956916816841766929912756431645004031702162121102164571734955379160949710607311360406968310863515630297825806706200781502959225606982219599553072095240996567083723708969686294556964156360251856364157264473437993471865052858129826090117627225908637556058750389121738177859529852697606853829960600593329347639259946512618819770621519432951535372506549229522194223646466856767450863252316782168059442661176362944521182093805793795409202631818046705755066181261333419817023816784026574574409599876011819009954083895737105543314282768746150956546231368892754140326064274122112285939587043077161477123375408010129425055759154404612536259168123701916967621223009589376648739057844655236534546226572673092863228648722099961842044929296940667184797107560635818126189689008340580652974393987828795039144002412896776488871980104958959284841378775926594722905736448966848503304927655027317416279286524329985910045948074868212323759937922592369657505051373929843832670266373609836679988270610865384752807728105662637170119182628642343899904078820904061642857295325425105152896882719736557524189685557345870419705689075826356374263920598330720934571091731289006095218983656471347018536753867987539031484716593442358985738711613532203076686390376490216758177406538129995196373595671744165615672596574720677354897463513061046597382311666952482343171074769739324657612994896693676386655296494587441819650255118889059206821415275069332145772753317908904802866356550884101979794472473488639692088047939145996810108009597814140476589674277250912184977620507212216836914422540893642854121922237842114662064115880731368883109387475432285642213018737597288496663848112079824014520660618358754477607689851976198426488799663012363366667032249601956065886294722685443974738002782441391591644669828862520306380127895642512423221934569835813688892118782974481810136403899414788841637544597950519508829195568942967625574315262368511909457541517838568234948218588492134744075052834731348110860871423417106498588917730693895689204508089620701802209399275704226193475268198310849739463018241748021843504828967642239485038955016795154455888824126555151064056450534735672422779965030152849980624074787590182295442082677616264312714461786890103616444220740561499888066178710122879479226975112972861262006834544941403635946119482331164573820058424118832311332624703990776773406737648165061517368179897955025169103387457547418066913818161954668438989860670453506578294241631263226625562480873490239590915875592791640300554217413214351351976558272209043346170246975452127247405765422339915481636954856298774668519225945856124040554831909305439977048445316436630228414803289718808502527271789203297824796406476799446965792889950492874607515724434272963095960303789927236892374070183908128637759103959053097578649642500340921413325889833727205241023685831476218996401670112544314910186738164217575754376832135151695325132216996797647981618736749669474359913163535091209918483368273952605542410368895074429151955595782473927982305306396864379760459813893804252232094728170372808025293526643835580039402278289468525078596660847657234266853351576678034889462869636972698364351943586999731187507077226115852222238020731737120483587052405838507246145957806583764561666886901358365053405423684971248202795245582845394380800578325460236467310885223079120506924607072854734793604341697344633350817726067632302903962133038047941091420570050551336438941812302426225417119698458876358913545924658761953587811690275771078037614167866550818039650616879216364582285684552620219844024160575913405992941409818338620904451741274253449323905849809127529051072868952360861964493385105888790844439117353417401362538482133735780103079691107257743138775908196526084977747168982041413543554355597658738904946503045740434919371140749247516349030775841369040268124918624977195474253298412959133089129759834944671066075731671264784253182683150140467467194027810170403239193281144178417901962976551239558158482640816948186916554689288753410177315199391848710777070414859241038658892486320929871337605614916311789299322176446039700667992757026643061001657083779557793715141064058809257521705291399667338606596939820822770222257487981006406077793449494571937069783032518563784217559187742691171536921366297748715977010805254375886130930096620787763997280798761359378421869225896412493969672152397860278507712859038830798174411281726592922741333513257720168775978589530790266518342554597617331538533832575939244885569129451972177073490695223749504967247036402716421587829144744414641746489737171361798770072045651169676099995426421840624846574686660984438495256727296883329753941334616521434337157127205895825293886425542598805118291879034035404865413152963856405320322114654852601403079268024929058518295602305749900164583717359605796076677225186151574506883206472153080748392015651103795239968755342077077900992482973911920034151709611811407644481081433219200935509364978815318903016585058903837397256390876385341636558340542789481362015239119760627457956602304841330742769475998770128174587067574760809712303400951078436527270394218469915611503419496724465282435549764769787131624347093067246393866886296956485623009376009011333535927562021686717896310570578320148115201745035033617510841020605107017616574301761391503437391894997524304301996465811695337282248575974714459862845485555682317862549533985016596277158692768781472461078420417545215866910671975617360131854686452905783730233784090898095790230380748396647771986388773406020761973248154002707809409389712337649299896929457246081809052237230665588301616714502977040730353964480695302135375756551014689569894506971800196135813691215501022222889921064617140519940620931190855393724833000016697675870447332788222323447243381952218501999011661911422529185885704683867737192766819455308996757575703963883249354950406405643968558477669675877799816114516731758204897902142187038285756229159563698038385987820579332603966700863948566938693841174921783340795633727057638820386637635126194434436513254179498572557471479763574313043215542538731481464654296097051090828912248554424037403915596707981571830169361600638475650476631604016493840117583690420932314376062667793707121428290748886824336400747626273031749043877281627551079160259849342859986079257517304012834299402758760397295138218409226111192514103639634051483334190208390473593783976369114981956548795371990731142179208920613068093859875526275200618346142441684852900000422414360975038169850896796275992286022349653861742718157299618157758713686912468436731786177031256352064788533510476167051391083474388177767259737200174836044683072334649790244258787545075518806623825093415297259485395017391924959299055774069882665651138500553065326310794198503537938398601243232025911334414327275588574403390369304756123272658689368744285334355257984984187101929683002923940881419621485740495146556150340026408438917758830960108730010181895262494172539679205675141465392727492055462124687238741482746173225932068657049722463095805912170022488661015972960484572811356181173795796177215924003061207361903474965640592952598201571268341609792277057998072067598307177571357294505821928195940330082814243349489220213478449433722430279400863269496954277043240077323658670774512361218502423669390655235858820404838990404620890684869299199572027948226895858609411751219595806030820880549410107311677013858927330759563079114062721588665359035836092574774951839745542408319003239815769110445199474609958692513984050482009436315324683406478979441852078880467153968835570531318998740021276534846156451452333987500292190315656703014661090349690766507919052672960695273453454453672799359942051565893682495073224116860012943788924849207128165384765009107370000144720031204429760002562138658905941718724127856840123117780411713815070561660380336278458887520364480111228732357414361666312375231969855845483623226069946955205436252228290848092064735832508714662590224518844884624606483716650969082517327952304043984027937318655610991816492517493561153593783656014227625897374751167303937250736278822259844209069531311821876254319617784627449517075188181608038045585485329287196276730106404141049364856542988907670193713973625909614403901233124504347632119108487351880881853872242846137689677293532236105787100438325270381832085841976038800959834530376131513310780095060689658963734508613584211100147089777333047151387031018227422670963849939107219633460396370312502424485732687346942710786911676138736734757361910551020646737755084171248719054143982991761618780584324015158460932584723596288308049798709758186588986279709146165182631947107285845485860176028063556151062469517986189676423153943539788127675949069645239465975188714557786849969810488883252794688587173238611397761659915122937962752978095916702249252884218280894640597410957153425586280967570014114309455815888179694175946736372698604142690922583741204711683611892050257607874257501168649194410016597740702957790498802437028759178540535594636891910288922593309660964420526312210219148784054949876470692582192353925201916457995318756917503494202536326524088382676619491928403036047960663891816310460805142561025119824132903324413644483127100021162543511183639807677107775302035180483215106558120837377689760181612246530339974433964799454464317309278459637071426061918730948742970489193174470526182975005170258688837578663418531793214497469292374860035605904712250270136400086914609851194025010975146852103052755543079288448360410128754600174682107970611976560941595234549234928870152077198947778329489184495456480486519372819175197622646325125059515909118833573190879153684417360842808436851658011558602139711104878534463252499983991024550163337776782721050585978741689749816835118197917779290138222564383340595038186550495333888189423994315698758269488492262184253911866952772355313666886583724583914814709462227784662642714365082756213567277169728043385513813589012646904282271373922308565773224068621599641016189450621955682928647962644083685905737003394102325100318861900937691245069752867102957904852938296618881527768182443468479308494935853192878998095357704961624680718270316527828251747960428914588623928487952552498552396101015118150838022865898585829935552265231038633253947538671383268197804054817969841397404430834696754383241699149125540543840822208760941917251606031241489778988356739621437667276216697623740172475088765690906928021365049846270883732554991392694002067761428845970216634031062985875938014155157427191455415766227898876711447482911295248047377312035015437043028968309873411265227145586296875540870326545738987197482122702942795577865298940151202435216540674888094826430585850968070747202398067097996955591192349156691676322664389128070097990630680700904973247412088317700586027108631943340356885706384946226866509595731467589327916613967051422054830361028662511599214410299915784615123131378231917536914054098232585619471744580485380164872444949475701159421445908236248621009621128524944597677433069763273252462536014565425338451750157492023606814893829113459070666867722212445722621694639223874304941548911018843299280980605000554001113123890924666942869119957000146056689407224739589015427581212825290011963635520541095875931325546120136936238487024157254866658467890637053539331691773429853791505268828879086625182346030205125996833247668818052403290781696878362759662872066789448827647876185226277416435742008019575508596433444479061559225410278560390542296207716241585464987776630591620668113472658754191344438187142520143370396115669754159556190161273939319733327130625194699759065752149597616466956994868179086509421409869205906398389452394947523919823370931250167107171089076747742658813964588437971178804333001650539189853948785978399909654350462893144398060788837596718927827012132310710824805236887503987492473754578442809959836022845387385985534806095943660920438190984180402414060523973332606027580173845592617111604083731071512889748373190163737052216685549717360588460543740912932935533926260905851070534462841258102802869302716431196859751818525673789159272703912817689858403169270268287370827133581462208027266613930872728096871481888829867711578461888763283833706391405741740043920356198962773781799683991458744870801368237697360491121023538318367423979985298791126341151730878530524779797200049589919623170667460485684780918435096512863787224154459587439559001224937549026821945865677171097376876243419026379963668547830181268506081496651308960195377775441740136742283635978603994223285679558077609396683674387887443836836705204876633852319512266280351681626640812138766601761205586684426638181760563347080015954575520193112004821220138624659654079976926593798115129998163227044059315034916304305251406182465473681223057788034537105459193659333182891377705799728501253984135996473949226805810808448331220482480394993256684129893088948991918220593997125232518879037939444255914840916506036761239376825095643082227536323868727192303452602757057565312803596590374230933860670084405147317766330866220213942094924553794435776915548549748997206748278937764749709720681034808364676678226340476833003755067149657251743504845889863786389612253326208078300433119310948183705448550417332958261604768506901057146129229720114122848829655025380360438448527377900738500224915912057847652730108328269729101829772261630290229200254815530479103571444772505866226740809250026804018082263323594675111572972022919492394602947735253354824499642208295611705827149355193793081936998402217145337872338898415291448176873486826535025981172695625647001341728226508849858827142677853946917913982439607762402358931752098089409209057379237561822864661250050654509622308979511423311212533309606264925477036906545049131031686431871949768094941245830224238792429238712028951568753572851795951993143275312355334701263940280736106734281177722018082458625368833480365950811705146396254620156147523895900926186757637776455644243678856692073025214331113355248613689991549897344094730238154518442859571183611924385627745946635635204864082726867188238839330874792364308657111594181267982581697831488421825550594092510020442879948131343370626284226310917566192319553799047924289102699370603518595527589839851139410277638244670178961056278803627859056031030836186962549805255457085894038292924176240261618483223937178786244054527207044829771554597460871631654193747212712310584119865387777712286675983272099026173648509048962499912018397207778774792081376966930556651374875418282881581865526172758774639349675686549276509266764220564995810883281268869624042572988616823217297450771726844675195185845987986029842995697228348454243931464532703678836484229343905580097996229539360352877881136738757621388946403535543199565253922210953982234726061692099553005250185577129544951256603324723496313887378501120968719571569606268489817086430386951062940652227839474009104092811513036618446914111062491178723071071688310359933192816782326693826283434009844002358180517295780872158692778687406622671033125177931497417344010816635155429008931513328962577893724130562564596087325990820283069628306693273341679530964112463457892229198681482592856287245432557341156861115542031124654603845068892467065497949994169933115499106432264703806280225844930934138234278958298620985408393144720145125469792505795821404928639046156874450152958542066157899632770642012957494919758422782422642898383978772396180187252966922818583137643331176938257951623295605180442630264699701839486703995302988338603138787012106882462823533107665368857630220350967690610666264053657870125312997337196889572563973020483251612983481036118395918938667310181796092993515573412147243146314115225308468715905923444029839023452762039990732998932276192863839262407325751617879415893105989559123153065838049884063554629102789366277064106764520018176149392375980528291083141250169462736850257111231551476818950389247186635783594359669530036135607498991585211481775973761445971002150105621349289098376672106996782599492035915246299979505052296087553826498780204586490359405378448995989606840243130616603890343719230249807063642008445334960280776049435930222314248221046726556597371493431283539332835622951423647903330527311595504946056756906956191594525794225729358572977587299043409105182980315700850150564006328651210935040468696009142851463358984321011494369280752795021015233816962956590155703015453522457432618885257662536384457123266093893855752393517463291114185774275728659087212626094267059052281258928301505611494964322147738574960423741772932372931980411999897512888472296497319857792220482088548590072627280699806644403244976042055852719072130970006813126201004179250570966493876653228932355455980979487028013599821238603158625284506580050174074147753403419421514231424581281242491014000428181586227045992303608702413168892850272899426862413667416584787941211353478021828437542796471959405344641548628015779079945877163348004005251117668927949174297798085165220878158408486597847432865117289929487386871754556983650534248490827856800851025161378719431701645558748652900686146220120730074365194405688792207351154025546264402334719652775087448206943566789852584287299786190436286528238086988042117827012626872655068880308242075987805910981562806950374014137612136634729345888180931318100891941640395271637978349770874831215460895840497693033259586753405089591975955301481239533485771434665012613315567218543532447937022872987339542462202313831202596168249578653590379304197509363241441976748638755611048655110561896415684311246561457719678111449523455956855225004796287495126815844655339025937698046616482627986660560109307496771266697619087917286966979471139232189132239507777803647288834097246810468319912270679105658082942006216185048129029027892567868179839053020632966903267132375347475113126263802573254506910814805262689728804344495522027426613661702977468479999316514766495855328672516749168323717259614031745443290611383442776822551195335945096454297496538730055296239748976038666066019846478607060342969322894421585533725492465529398152838825111206555595518554875770789188691500293528745586277799602165495986431981232863875028251879170970181780978663878084230722874857399998005804312787106348867303803229226720826626151511752573209512246063818051967091745760108731331856180183386776302043224715595510157507034259989549549306135041768434949278712343421860787235566577731716830892843145387291610150849911341095108087795722011592301096909877615837782129104546323963317674280566469068560138380810301519902489664158721680934078561192643552115747410076411315607015624552988658024985171532069177929774537107195283600934391016560555089982127113226251148349650364825474741984174489559058138784484750699888207993188731287078331553768248963715012974816568684831119577026409351850803988118380207564893621097435056733865890125422081037648632840911691821933426170288092047085183602195331680708075155412451537483909073478478207858034458160260292736403363899361551511964339892651480129726970743174532224259302894990697506323987137336304563541397984735825946133453325440084308322084934834292424747963967746281044596620080600593917530508891774331565206306388562967368126180779919140033782255729934158866501835464890846381732098366339902378491494601690584833229437370436552288886051281976562872222931414684392385089020699905740616964528868232497756734711531538817405828781064789884630734023097863798301826775873731521775419270818693349880613204489184212791137841439495634622198628014027176581946791974942412937522572859693361954417800588463054540457745571202760882670220933097694456699615735377532179697762675000450069383543708782806838614381837766417433291546136883773938569362730148996151621739576309437882929622772592630092176678087216184913640807609129154534662827908433490836864862416136180831767567217573621453756555106133967105379347536120353672252710074432742842440053578628328951253986163809222541908340814637880282120553136937510097142803783716929534675293043810461040741930340674976542098506146655007243828563110595119763809349074679297868144780497770576698853840500453416193245366640290194315064162589834487143693868194818682847300810888754698040766554135130735231414000691237078526904454303468038008381878064275443955980606562085153943358492324189466311169088403736778040088619230334506150633211919263495356835456868289749249185549947782755121765083220417908083795778757776841760925358303529365544585670607042415522983617017787025945641913447454924414279653043017228732886669077112752584032431392952792228094101506923186586338510796709100876155020626138771681551217986228580846890256690158825143492772103821447129211505790145782509988295162674581174368668891414825960501490501089667385915739998624111974736765929057180570874055270706269112968491284694705209406745671105261555400634537709363736672366127164624127633108143466374973640860545825514605010088924314777988615498594145523091596915299955791672012949998358461548888924206868367507603905037024077137085131885572358439583424756089477486219260676655166752456754772680375817352854661608044565400388678162434054620217976825517736677200783581093988584944364008184025520095994234825644135555884371111983487598562091971471145652053614913891793622490535282579192554457356966417551209132300573785247911947081960169495067090558605902254556458402048266691450854617477349113635192883716348096634179981758325748696788158808497060107858730967833673187605135038479814661724992627827551994645947344592928844452753814595186530476446625517974449549029195682766264497390504645779235156416133288590557688367227598779833732821515781571633621511026116003030760196067356390782887356388208344980405322611871867258217660556611969991271477039891937375418895285678740847206750184437235333484519861502151346137829249918147851933941234755824115081171845073869155929723482278338234184765283418199458913740042002589860403657349725969608812466938445174837918399913547092890143587341792709813250519728211437602939078225231122879511960856127184617561250856153609692583130762111324116296082931680862548306105087388266480412015575822440502412135789169637734045247961579706649812292723354906194530256245685042694511101713600394325049962554289227614069752470269371761661980780773836399653029221245581080415694499734385539138583363484620554351864853559744765670464262314047084144366274572348420875708320505924439912473017913396427919284341918522533038525706059747375720226976613401432524610353942986026938054196412563513530230508309899423129093680554723152350231340669299894870152896980256189838122787117561072749554811515118774982150680430644892742465985247691341066171977652603377306455956292827691568158982040395143915689110747400137935195024482679149138217685078160454392884775614351813108879094920580677038987235477313250235425804809720270951818957559399454491781445989788394992425871641502449453094665709610585137997679287599348711842460008029265406814401182195111131167044576117644638162114929021999633862339257180319747136151146503312931161394746506439516266246009726422687489770682377148333331837002696091100214959662460466550677961946688264039025380489046629727082787851939497269014240972225537841634090654405610740771103695989932155015773795977004462972163787305656604362486892641160250195299796608162663309285401124050141104336455692037878177279344087076600712961435428558117615787633809962280736694932295214007143691841752653952681170093722377273220671051997551443600823526845342069089510140691923459197384998538409427673398649050196044635576996559261650023483419345629119653964612636107468332401999431263320483594295801235097490702739503028700085713678598185445624373206842590817245232088432466542861666750032882512926675519182867182227781894343564271588463538613494721933009430955282601643866672528119218139017974499753143723479826264971125249984674362085531270179581268667620261455499904048282702585677772906227933621527255743925981850093230276128708493536110642077206353122537714514838368992621709124776814765561186914237138263776896383903209786252783117136499303532981745999816582065795389386240106210587737054311638075250995400725754815108659132457698359255854486886369876075090575024235276667611061975857371390107133988357840188060123562124335151234373622589301354056809361109262112712843011010106754665892450588391674271074238895548946597004842069900216678053660518529341981032181932519491104388018475459231335055984856987681750687883671566657157116993222979220918116595424159027385452778295421442816482075049110844173661297983176895453742248918156415375004341529085586000064478267724310857996375938468358635917711122521861761962845146966514206374048459920760663206481727127023049352768655534205705144108541150600886892797225743121567412641934484084100236862699501125388467318875009060111870116747343487196048684798000066501625513256381290668034610100614913921568717263440860188863635796111648523274263343202508730226781895814178561430939203389389737982335376734220788430551408396326068423665219687100976230534586510212833848288656853954813896069740564803239814261070651340973923835942699601110174361095800734086191931427288100812091445938181098699640355636621750781727036129711128196446473320485112388246184864570075694335658140610426511143263540992645519965952105781419152971539599703976148905331296647238671861152333306150634686348881779639234415669615197185634341488593184287033963647253025636266488133341700227191521771791268452365237231417588690173201495135255117292338207987611301578724013401509617418045399280346671697257223382700142089793658009760775214745412713219755330375526393118090523712693111253703175554636240961332547477244291360225222432187152101448195394563911941990397922075702219773990072798958204568888915458521068529948136223807359659863351176955280545859278693860687941741528676362736905115126653596896064420495719560785860154882899306501868659133411368169402017629380191896546537932354298935575391480519081984074179948548281541840519735028796207407253364005171836533865566995364602706307981661870389488948151571992014585995258612956984237079527732540495782365757571586792535121294943174526892304225594483458138747732648501515049295262542780884106434342186716337095198688289216256514495554139401348815342731968089580471953329778131011604760228447621773560921761018030190165453414578233716455719679672801665978328779147565798067309264746185636727624140760248349888088800609098419149450069910415111741804192553310661113831965299487378653679418502652463331523921012921418211763295491091454129050672376629859541302973594608762674065676094036332197833596203723266523292800352717171566025252987454400421918983275213005388203421910380922582247732400611320285636854250177310217164509690598774634870363143187716222390169649354805150638453442592301401036199464365394464997499331314788719211647784748832488195799410695286531075361332120359166596913652430629867183511759786435377946953506451557289292422172368292369074918003119571058813679244697333512469839284535067649519903930634958938289898195189738074167720141608083074726667774709733950564649253128190819776833943261085297903316312829841834907191297278444143124114866877722718580765591841555215359730524878245729840279493355271963478153628347283371514251130763722250127523871185289961338235962375818348012806776110093637582000145820600408278844352286638357015174405652482096498397445250326086331095439669818828755371217185750003258856517792057148591677426389142781523872799433024661124049536152294953026275056108387896750400817202918214557496278348895604834718170124658505692160857642415148262223635332664252463381914094792775075406523990527959546771938997499045720029270755450100075325806674165009661861223168463843579332019402710160438677194083428495429632191534467544446886318131643444653488252342746088465199453941906392534823925271176656684050850058594862028385452986786817802562129452564365617464433389197756628423715831401411356101124974149922209464384340383215269675648642990220182249048862771999300093822727793876281205159428213819305461089234911341366529521157959164828239329019817138271361163481986756501594249939857384268995172042045898308252766760881567780300272772753713585856825418736797566971245936087075313945582274474653867540247581390541214288839357818754268022164385852057900436735853412435546703732551545155687047628733332392064742003532961520866970761106463226988539184844983150000340169898836774542390943766109714359242353640416153454005654418047605294434045557865452850345292658779455430465173218775196433761677630161197312346998894669764908519584433854361852207005640465844590714948929682418837144266131150444270440369904297990224236087446912625885483628803719983972022847604341013854327138615084420080213716111123790023170075841727849481655538978455825942199375909686690483552957978882940649825386813156754659640041878265517345406895456028793930157857288419969987113133561337286242742969121225088204830890653297094196305342442164172990535657678712492701240127993598712593028590560997952151749655648586031392953290121806778271229640476864436464426423255463824888711900707424285004868125153871352605200693196495146555422307675181149389028322004252474474314407431437364095659699156954061558932457328835871285344576014171361335769874082667441119181677783036520297686935861306752132599716658557313299484669226414580420501970089823983919988258521578969433496446236711932866141503938660026429881037071397980575854786596972171381443364671313989676396843600664679546694301386493860077662222270866939955605944724404826253536792327396501200704581107246783097660729978093923306226857234712634280410511645462171514943995361458729963712937377897754809853995087460105350780732298576933902671390537444529770386831513511288360473209408594703199630758325448567267719138454787637318993146897393030069259966253950819584861247845958713686683792606791134500818792842814298911287710970703000464274948431978437957101077319244088813206932850625787672616913705370461639915397742999808723368075984113242944286257006546268151668657747297740745144831297130528618104790090433830156188750727268595905150907469172374035278922847042941488426152516616366261832940926178959497435123224923054648294667796504360704882273241450891136967630376006975152174302069329076615653191132815863260242954827471271218699970174965133944515774831440450221480103489629005932918587861272293630948834552000675352194888287348086950992456881209257840243292538199598096126815614416944125947942935046606431827426132823268110937883804826145887793859558127796937522379754133822575921451077265364228390324351978551466129191830732403937400598835972062768332765281968245529727989111107396067270087010999606422795413074973828158914734646504395159094797650017795975517616847017354846635787364431931868561953912708616902304435573067692184362212323771652571567278959176138903008337801930728857424065575168883357639776218188444802792146657373041403271202413261080135630527496699406690740576768170112188803280097352167656121995651146577887008585367644539773056604233309672178415581955285627598379521531762140870744612836586657727260200740986587612888734727954899138027505902576197713983922582199782153850255681267139069535781948261830485688421587984681734223965316611500168696286278733348939472785536396051588478927842099116621142790287989702401440524906500282019995597905890143868019246136490781460141713482403836719726988700507468608366053209547571726319934565184049106073350125468551662491706944249996094751535691210714417882949392825678955463252634825565026241546958518866519084557753935792032312712628429506839300161170662925099709754587462439920081109192061800122350617203989368048215354192737732955882333857560182926772342122458372001369361249366602556666948545767716816784661608585408801553311261080153871693213283598317121010879163748200750790734426333258825576644811270211087007614411701007826248935026383720637036977405933543954562622608790976210854361882282749082267001614152956705235194140319173688860075981588465462979168697933780335094405765646559881609283801991356498371908041022803589718836152151712384921977629570298852622850985972479663400606274370342680225599822670856713861241612722743370973711507525169485112223002271988474940542205384205888227486427445862784103711991755616365121574004597383896131119537961004261455020181608775508920196563467665686484896554315437523721445362530369891144797538732383961139260279256979125176045965737728240387435553711826848267179704772119435842453248177130859635539426193439950675755658817789119329398075417789963473546772968726078444552803973926683976261201320905169550037999422160318407335953690167956460683465470013577250604380027591135701321409065901400651890276548530430197255638028018832469316533785466582226022328483537331494247168568516553836305783335296894812155556771768480118356327302190954917089588897915349814982819471823952115065919968196609494130309797258128757823643504660710750307339597287812045658546181063918569442922166943636377566424960515951772437038615934618031317082507869073105449797680444561514453816684938803930692316776152876458433007506896027648456087446156087105027301177159057777743657865280106125487585327508162366715357454753838554166975980181841106486672426910431351820819954725031084498179970395708905119957196646895135445306244465395279316598019795451004975460767446395482085164351484410326051530212252174719943308642686938478001326717091774751131908224687079948415931745417777107569051314734191327959177089858069167694436269878966148499413733210868598012573352988176778280739259723143018535276004982275404839525128244452310915111207789071516733750871072909838293609773366654190195975223348788488913845266546451348739795644829651340019449146117184727840953388385086342385614098555342159965525381262203918440598845953571874603342396521561927640771251908418520324387563370591085324307661920154754817340723286565637355219199713085697813920069358991338047055458284471443978456570892683050930383886496870106769432551607741880087502107041516746662569160443559166653701344073663382663152139546569253464478580645264126511985444967186178977056344090690536284833240640965497671753365905601614170824214703180346608286685846234492882328403578542484307692987402089437752384285684901797626297391519535255243330956773447037259280838972320997434667651141503283162418727128709111941236799018288640444797822433168550216789261302017518846202853216412165267654162350925034169228879965931950824716714763239540000345817201374994046985694908969288303670766496790354211930269582167085248084561652673955188987994125491601701579993055899476104203565941799932564165349959393626712320467628991316331297523847135541070299612644786793758492745869634506514278217908530163695626483738520249474093357023873627575126016306383960241283342183813212190834104678154798908390684166659062627127485405712638440192309956370072747785593255964431386253998159636658962887844063553553007949185198942172155000703500003088506509549293758163670436170530393092428803542919612666997629864164437414755147336664244002305705637974892546527155044815536931756163658823670350081025322346059168733540458222375847122433817285890417639811385418800694012144495446445883035034742173877567832417588192160723271321496303893595306316562287622597448401598415225754310190080832607483960812727209688601635967732553179282642706681041263216106065216737960773107910311865861607388728281255600894568638533632647130358396649096537268921134658337545026020024388587036632686031855105403131913122988396841045759457866272100747941819420956584186492859355163845146388028353564336216886796169284386142632659110375042557534095754714868482047601196584928100798867267628428074178541628314749120463841747569068076054050101417081380514703925804469334681998521600033646810515623944515533164929191221979310940547620610808786206602012367984979989734348437205030465794859289739323347518947334648811530955917827145246137573749807850693065664235938592173929943720312828306747981876806433332440115382798105368069722177255810252346759882662142731542839231433557386223737997566131501761824960865122640475660284304917171454204644171074574828649032231200554312318509852059496216844510274069475678358085122792703242844716450930512665396400910300727636361682505947428808490586220837232573993247247981347221646936790263121401263203572688430357307960568876836718575422911970869158757912096699759242300050429903221201825957163525684592752091800002973341780623598890662907137288855305126374621382603248894472860804815730087944748131665456615073979334718276927379362869367627923320802037037697723117195672933304711749149807299848624283729326279955329033373617505087595475406012946234853734399944229093957794460524964782539085702535070751566571730803944124039378876414688702489801368498303233283986741650687085288523160157573240093055685852280079477545563941316757595289798035435070554646884377347693525552614368012073141845809034179749608878826085681786056245173564535323689415815284980394498292522262236629494293946825569552709937708712213827080256588425336728558680027027722797206580797575001065559367405194366847077170754322208004329753736466093673939699699522482615388497923323291203292424111134817222384320551928234327013739990863982488975733895669792702509796107504120475308454048978321793691614315895205465631146129760762699684928162705487015012905917953209920515407555715904272498932591401387038310138812442751479010387286135025462267570879863268776334425396374659843880422286179790471955893326224946539801128775218764142865274231647506064108207483642840955995310315983898604485698978609211440819869638563693898844923575334311684430488796753191364721601433440933637974735692104938630241344209824541486769094296357140164934253891870465853647397304560803701592841501014264405307994933158580615975735197157965390738079195058279548153424045160426064061197722234849627837813781205888739266004513193879613627652709353117199647187658748287629473806066631353908651171515484056043281743311806035837602197037999720147313912618850086691087955808144524462828404184459851895006604844265916853381573863646144013459133336403270637704668770837175032300674090460722530581600612248313391381338154819859040744216558819538355089416994300981140215810843172493299374987332629050850115352602159906541033775091533815637547864404996421436093554094528517384227935316163541324268337247283701924249924750081801897565029058836486857180676164748481069535424421167384515812389280465263809950510714055181039709022070295455461965413033570855199388717911795133635953472636327567387070345714302700265169569992831879580031902326061059976311402134419752024552950621196090902162202701042691865333993836246075012144658887536080819722828495025029194279940004085135447661342853968777148292755236249658818086140508147319300373795440882780280228017729609621547401204505096541020132639440861771701625216023298238383020250842072957444532407888009655199642633542050858612282351113646794600166689143788806516288624805224283867805920375202242662383311118235187940079157753001247225113451988741257478747935527888984951027857154490440772661166075263792421626924151904487264294295997776869538816458349808471828328811707156246123881156350080839808457202218682465631099481288376407887659960382544668317297371814956806396474919937831269194124109627690786813211478108236624091364302198249902075743047192927519386790347174969963185973570350353711476936556433838733043834813615640463391310328626561440888521241326458475773522809367580944293407265458296405171667484604772670660309318222567460672380417542703377978193231947187572819806698926036430661236579804597781586572344145616731373095426834320530530303315060928022205824538081072742454454064162891994008855324691977390930001643953783324462917806331731512237791007275847904723844252108311871666311840521648093297915469975943273452176435184443219878690912577380416781543213848041233997473367404398059536850938265582359324188316203355315315844831584735012433528963327740197935138679685653019028641821414938399496575048661106133583931608950432570273275888014007160042832747389044555191546494200128186280989103156617020495532664865681028978546718259573967124364360256448238448270922421210218846289235649907176379194533494275753198457197402893364815768442705590454193996954533647020755232764760232026620091354237713847644322466556800594175798105895189824291044873858276699089338843509456989637552282544751634914265399537309359142938233607105801765997709618797608869138888496103997041853367169284654952209283549126008734640297890028687659341942529356379079998921639811819807912752761859893225264172056571606840101884001369133924132877537291990486545422097568967725138445856604093120673192129796056557120525250586320021042493979230705102984576030623308347240962975855909379558611130119254098608890826364116486105644574310865321416065033868565419767742556193895958697562753729904631735574880574039085280753245266885445101110350934721029367171430903258853459545744493013277309687211387355805119128399838297628733771268674866725962878265860105084462187450130015720244318860605771796012954521590045687969618788077276864302273499307386043533061258802100224316893193133714899957745199906511373776868828386379421102332045060935526390986067425891500294209456518482863886242196624240541845853051058674583544478084937908215008215285517921000403673434444991880736397908084260264426730634046677043587637094308520548129369903342383680294148769410108931409863122307868999900090530322707874920048112138437312423555301223881242055742527662373212906839176960480909086304366677731382774350258584584380886042937390345657619005643422622456507492984452726895492012812903833491852756176539505667023405380305207862593872693984843651664754541518396561762257752464901226752880740847230256612277038192079116642069528819748645030995139776262326481462053947707070854447019967035293855119569666843937240049066761640378784243240175477714163240322712178881429993260717600975775517854706174131983502289867045051439205415876087080761613338981148750486989710882916963729487402299342020752850477170082474949114792910219404309707498758717209051105900092607839953687597318704079964946148986208780188113285642701186385624489003650307517196950371331498806615414643439760202927603490249978852187063082229912426221426637520418892827107064222989464110743732822849676750199200306603669087038660768851184317632956704813010672776074634634183114027847921971992634138349383336567486006913463988567504713562519149128067598358931446598951152344869205828384472206308320914635469235202044746954096637422247413830185179786297229677449196502670143552653423454501625518144917336963889074556521054981805045333268836087885488650751020366374221869272837289922845053961774383171782336274346926537155085028837588966198829675297648490384284566192565441653480366494513840994782835689100580905636554265918277284450534423963780208774345206473547065371016219973517464709785675564939801397151947989818447205505328695190815135344167384696393006947491533018289229320604495103881583320833396988238945370727124668034279546985377028869373822130780386403683772744644657302658487799370198514125583999699951577366106388988278893075280004932222148850802174304980751368083435354540017444352746449058092659603906096013866341586932938945258051822735673365468029834244039882969887084152367454583467744079321846519355011182262456262630921717460664144726364239730345981589058943353063916879287187569319645414717988257879071008993537342619154016484323509023409018708211611153330557449504813373922945621907177036298814594860757910121082382581562338566555137363991438301818630808246999570637986991501294678334084455064728774940628564364236165191659662176479846688896456536911372665760123327679639237293361036878339763692183932351964942421001877030911793726050519384158995013342427419067015008576863764503871907861288884056764355123527661922626062491902093443927619386636074478028157358338544449796889859158590227767287224229364056632081713849440692723482234558329290196520118084828808496620961888238734742434093146541141359278146580199276149362541339508547324320523767634993826719274067269488400085822802027881433272551513392558541249545271730822255537109573949261064243317596484470456464025829673413617537270531804075109349997250384605332474812528881495947824793623300118214597416786950768467432775462802541038299268469708891363885311374025378718176266718346633042840317283006156814424566577192721844098677735584267010161403930604167722654978169476812470408470045817387170597714171287181601289875882152629955367057557646513567397186151656596375553578439685142367149868180970328993821903042740891217324049177340634052067263686722133066227767705942019507133513451336850491061329854588914061152342742868534239352799927796482832688048147387551928341236647805939242425914417549461846557158839873172861802473897497152069566664208600308894148594781308489192908782840736584491272148735709633696735501488560504489387457408561844378691079227347207960880440356179504243326032932442276645527874180511797435911158950812438546541669312180034922140360660861557916088702295185420037557510781001700533089457239703867004717815804522678357453253215188926443596219308296016366994329778292295305445473061744280362724055389927784223623611925609563757026890273690632582052151355221621665021830873782593239739258508652857151437012718571773276725280261658170472535249161535567888575755091623441873741959439273458152168247470981048438841428062588940476679084992737191876085617759958185820145898489281680262152143464539365944889065879593346999128727938418672441403856606331397007423456805841599197945096707418339068926646651603233535460143561313889642578362943979462253484528298684881112525349724247162389565782765205283495748087617560434840338589199898436110113516911654829031409389706943756809778525465514006815365030201561629888640701443461559421685345705151742937930940167633216788566427808746678515219557597143434791803678884444889990276803169501745425618359343016251266976947168651210712152092501544301227818742385147190478051822044958255886579655798597680449555588592536138655165435984693664906347836741771444288352718636452093442198542079463699691814274709486916728642703842213383220851970314947594779168940858208962711764359310829340083666614076004159975366464725438339570236419549113507323081973907541563959637312164828016901626220682639901222258730846878996676753990104848201550364815210200962976237020178897933018228073932921253016588007655249656962167293167327848069386430266917229235148933405673774590504953981924743308385695934611942967752696353481152360395750506548110503991327653702840091219150499111746681961452565836606419606220868662657769737773776567044997633378387569392401832099365914780089976801841601117904294974116383462996710233183125777530245634034964569835257781567391958044769663650915630445234634228838180765222904655209297929202208728963973723354544798183179603192959471575802133976212248766505187954516688697159739132033274043492305822306428976861687360434955123211589098773628921577339855706305895821720831356399332312196325771992609105424312490186669297913394438711312472527650609494990515446104965738328074912228441056501601845094830107412337913035827079829076020557733247690056453645847289752286300171039731364678786050044553908014336250900843229570176219095768013751526771153870268185756784881651513879785377105088554722912375853344616039496314748174715167740249206884371423877530915454453165088663633791311726566798837208797699374108672737351754758760547477583765110446893011967252109380183840285548914456792209896176509538498571359762514557033231317060489698267225687667842572653067305215900301711045669414272148994050062217198771425181604749100026771053575723914675778311466390159033114904768425162388749265094971423876763377811751025163475269012979331569360296449946006548139450424118426071342390582582320986821072808953184744124415021308621744164291610361668606182328660032527932089194570219879615631547933118313982342844780960704231922412736691091104335861013463956784545100801579185098842453368893901985362663671353376112020639183899995467424713008826962617887253526864351751234343578576210525248511129235131357843426553829325906808157010351613903918784869662246374510526660777848149953683961371152859948391987870235944836398652168285998225773974054809280673149005526799434528250564158762074022952302683880846417104381223640204543264684102011180732792154429090963126426986687135204071412085393041831958298378399098710703869379864168388231428480392943993753550123287088684499425828554162921166121216039927125683177627814898444884809276379547948533058229808008365643520680566960706036010899488802531350733049573197736368203067176866316733601780869258974489574670781306793384204864071713109937149538620454162339420384279434649193329796355104200267861059399401186232139274551070460812239714406265119435991571098685565117301637350610095999839642613324694699812315155270488731879925093190596871182871767053256181934019886896902876537812905069505229901017878192117480193841772720527020290109618772879011466835811567896737734212424844242418395583396814787293835617821206471189506903470898954106998462942898003716964020370302150809825578446365204472835843741160879716094998724417565749193974802093633680398211105401705505808692660300499502689591464412935369955015631154566140534112752490689800379890178661647525566405880253969137621634799406850382809533567321039300107607781041055351657760055359651225121881403260764852489196948384833249754407822653319962792311502805412778125937620065643411215445318994196547001091202371634283616559295466867494296195738736618189297069566319562097714798816754653426519021189359869872800960662000180908217028857618284152307312074391532606992500162347515820109646464898986383834251876642422723116323034368389008708466120441419929048434356397777344043939497987496949460250960235223029265144506873180102038681877468083482276231573699316952958504507275467620898005065613737191403388314188261843978754749237680035254272310670015102839134516602560375463885153291929589275034709509790250739468683406909826431796860671527432562801028676762909637112034257705510210728702088576066742406631594225984254896111064589037529924434693798884696656879848904440514780889868702663081614082903992721223130616558826587185511048369376299357498542858450578846599504490887440634148602697149018716133483795163742808422135370316421154607723224370824849653185820783097148739595844702226518910607656540866029215971662121760357195440373439509114517694483869418535478474579964181423754646911544513724298440590702529725567919463030397456517222650984421616983412320060516334113026028550506235508784324020987774959299505646597986400245474919019503517258240244336931643344110518203702262033210923397874460815461572176146665551304101570075035689708314963881772259127254265757590838394425617728250657183742174208165817751206603329485471683454349326565667323459309651427444304278694614739820948370204206816443974903987531081695913406526328925605824733764093916406155031736494104932880191448145318017230217558523304527636240252311808757748640192953947222540719059493874416409017123649561676451600553981979768034171897728062767579341791277442603766689046968942844832557179831929418403031161993940585748107487613304905754637039645780728317471897812482933883556443570991954523746991929076032827523133668068952010730217878698472150282056147852857410446066661518279930348036527358155040066135015295858420077950292260647351975428988418968009289808195400091522390517834063280651538988615879867680600225198535890629070969514363143511345859800356313436433229507314571095659382470155835133633747257265783403545688879527299210838957688746763521904224155744383944660360030012135573706680285393082099564100357498191516716908239061448728321041911712292038228538402463817290608417013171489961692555633931961215798509814288250377299266304128855086055085091689934399570251804574947846931148761597494097998066155401933713820215046804070853408072619376630052998803805086101558234627253617880738388741531558565839197932711625849421042201671001724098239428737545595954574499132746487501079055897863176283127312891582399451298522861780820247518105898162583502085590322711838980495030399748232463348155704027021125511082673418959577761866231215584904517585549665651723685885591327235864553410111217994942714574820736075419255507014429292712535805734946894603490241862897005371976501728496829176219107669986935377384968377535053499322999249007377526595520081895242255231004186044885945117594183475820373803299843270402155664585485547697117876175461000095685704536539342453469529743739188784525917505705531151611686964165848761947177998279321253545855959011849655883958091857650610635643039213131967922919386455563282899594707531937408764506331577976339593228025922443877516825459427795578096040286553200511885927878950873677462966226622804635062702831575439764109717318790760786005765655717616154512478874079230291788951935279196565159530484393250947068664513895202804425719418951442003769656846120736211003027824157747089588550140164380046684938173763828769587303478695062296323872811563247994507026205825904287646646119395412389982851868146147570135220505077749440735997316480356286231905466688007481050896313652624635667342604186907042969526710439521925618410307457250331772463613315237099319189643952714956915731704687392440656861080142120238471868745840069353290267590992921318693957905513630070457636378104508127608497213006474740885523320626256822860469051023788374912054214813070938225312504129152646457437903856378118953589058315816829696788777119809245081056272832547908840510604812453605084655430854133043098253669799274931651381498460581936693912353042454823887020359661541999506097489527537156036603358599196719362854720702142985852860950238158183292637097428200227230452469740736182137387175306704381528376245387671069204392478776827909383236539105985408036485859067868613830293414768733631910145197964259099698074690670558271932613917796570045336964871949139995546790638945810546312550959964284330593096065358723278518504334734433720689068087731466204703397092186772536919408030644824959208130621709085273886709200212456416478261530017327315604536853456467827007451979904360786053390533366171215131444958033404833324386287239465162019469155007123092390598213965183998115249960949053960884661371319293538214456542856777826883149332834295947815865119321416989319520008135582184961459974435820350070202256975674526393166431619481572392904407701453708255012558539265126404153575541925557972038740170118566126518924389724891566467742474621709867642788485720095252809033270832507905066860637411060991497128466614924757648380801168363110633754915420269928318111462205857499303641448938655464894446968441805532368444741046001992227847399493343391091396461424110898471375415910031907939485630204410965792595533142220134683840886050372692179896252943821370282287554069282183237412935904827228335969812910649446951569162890603585422957161422285001844902379362117986285075608370941259777884846200254275698342970823114915922543680571835228747465621770152393512534975501487674335513003573571404883109224564724984753548284389547730386167907930354926400027982543826285770082106345161567268200115161579371091410194322261739250524498903603900218545279309976440106029966555982930932594167375543830416422212111654627717606217903478649742605890162321519319670102802809485015403435733333275527789265414413974013658961693155863362490001519001658557067302501837913380611454545252151825503778097494935483132240908163318725995562504289305601952639041237340733444376760092834414883001967370573635124029073576038409576558461042421654594599468573967289598594016718675653565453006870408839613645066226197347649239168983228986188346210926069587393559851851283176455090507252773584044547944235082985032186586324689810620095080778080140618174492763586811744724432770165551198803533488043303030042244129966812738209815009506675629902086236902784472537419026489378940380641087503421378049364966926423115605007380263546865827419424043331294364891246979073420249693821115568580763648394320114852512634397992480657695400021717268263668486755271577669816032004191111225742018409430352726436241391983582087641363177539362031457443761330895181091438904336613387165287323385020943582009170984780165048532952303089483343993309989782989424107225343541446996314917490689988761624843281080514733419608422446843250657417875800196821538455170436055723464426477708021676626443770414005286070546499783621380214605163110393052319714454537715589483221909991939955268142313676231052005236276356075433462188493699888667369569424516405011453316287537317447832197076123723629736814278143680717882441428496475410584405667277376089624938703228273909888193547203788006497596221450663873264726770389689289061522318604714926024909271226823972675100368727604060402486149679153624814116416392970988282015705074082593821526553466151358790087795460109611751172917042258829264474301273263157698399103078561263643847949314616168465414249784988295482716941936671904825876790106476630793974793960226982993175479097195167750354820373166031043642057233407242503067750320792170907951267509575277139357175095125593488524499380554691205789284099527617543803358131614454261072161366381870182407818765608718924081632035239233336603488806281060448963188445375683925146248821636012469372543399614083878026439898353057770972640913317221679188839863469556384528054520322889507511597222305203167144932650048999323904052347358747070566060571569749507188131220057843885495927587567625206280103639469803617519028367556058786410465570988659008616192100724203197900832434477382766136610545699387028102805434278609073165061396588274751767768486176938147904861301901196450616107903120840431809636407906215283921528051316824904631257966362573875434997849158891333343168282618714389419024664798989465181273104941599211309581185253344662096645470365975559108817187971211225733775664996917502471140502570886721583259324818787837171381510754677778799435943802523639513771903875627430755584959657502204896666901045205562095161926188012030920569397620346348425686978129668466029775277043567297487243124058246974143547662597357024383373121614859084101069940150314831420634137323405876401005436966841260505356625666385825303631781721324129250819461880233781680664189369312155466134191392074564933838071942133440065193132061486580979982613200184933050238179224696024816184430104436855258060389922999672028318668533542567074753809772708507314701207483403619626434301707669007549188546183670347448660997143759527116777703889194620523400902917335517622295969172856541242407091332125133878148812760506335713271593432090936711155512104534226126641280963162710638589149948896679923324689609122351401035112839882464073721786457542941750202225279784315105243480310837782485795390990103279484840860865222346954963367632226782670863086117702275565152531696421757608390934898528162166000598747388882407570876568902970429140236651473173507515703095936739775631996120864398975981310396725849424554348728227368146811705958968681497006578939915985497397187874332420536773547199966818984012328036975773469319951944512875893360751547960381112978649306157383582726017992701841072582549338707422776117477155594243927404411319152658423969501572514127851883152473486503098589921173654533871461833449349764557081510548449729368995963407538119692881712292742950441655401270004749082388142939061939463446742670854936485333025580308492236517285638627863024841651702207645418242516883001472594391822818082104837731174483395212670523349493294817892351957328660398692079782002730006760336382842605267986325227344195678081859429934763300071495442664262983545745464992733086140523369471120821034801526490641440032171813686211996828702688607012177168485957185110455703403937712879782182579099062590877331406109676952444327714998947514072083969409996135239866068451179568437715627058657129167676903894757324471477485011315396014598872541301579049729705276421165487753901350490184085313496256555666560260396778643813427637081975929532802651938347733628946053992196889792577708466556394670317253202011378321127953966082628938259833097925172470960578770816792343652819206755268366603857028281859127680239881759287405766825016235710317404780619432740700056920476816666583355411437122207297924192793809249537642451357758856360875781463994719619504951842471529791324686473090376211242998553325057996406004882552355133020469975738477033383935831978159720040758788436046228412379332786110853071647273864218737312131239811496002926654673026950521027809099679402374129500773492689505714060210326194062394116070779898576468175538117706328079960525442847632084281118694016057282116984591524575361865953366713867538820420299505453817018059533243749303724044093197734465399013003373595511634989688626546559416469789733537015630457415388348667372252590478215109060835130991791401069440872504890651072919893271847737023848279622000806146777846255895653461585659815485472068373962133495639263299460383181556987456467523485231920168864399613192478168031708273307860240270911149742188855077085529491435254857513296734378491082850095582994116167722345052871680940872622056483107548844218198418289320918839490030915125079424322625464584604094599098607302375138635152004369153142747651231743532956678401859368634119314877278063717920173813917699880200845655659108123507468922333232115135416371708285640982780744478889188194373289870648315064423977083586602130171190575311230751940241197427562774335141376345966288008300900093272906091200872149511546692632643923858601932742904908417479806955454201855053261610086992636111223182025923345275229473428842633396281380743747189032292462011698318156626348448206193880670799215689037373074333515105654120099430906834060793586971256630250166188737221711281886440110106266052807909119042804535074840570797763789329399451556615095304011472744299702464571711089281105043863137875867658573190811069961249397939352968518219915555935873018449967988562049317066126538429699517679021891928627061503582250344131062957758956964798334041710226532319833870432907602504439186371119009949047813135401235852842354607637886458783749979738141102120332319734968706824741446244801982869003232291269591075547687740900337815711741137822589722516364723746260924536982419776535950639110537844650103472485503203993006514468841104256132881128548361244765471962204286179292433009244396264943499703847389722078635612159671287558758091494585650075875703764162884816723951637230670865608554614955927735559207505890791618062296650810410091166715607556361850272125109874823680716423119428536401412222989536705167417375682513818317200169877660612980884211985534753442412115763497315557128602220544484652506578882206629514765908260434931680118627554630934023269252503825998728660631969727410160849672209318652100942093472047388324599586506978514101923970196209821827948224244037882827130406107819633799718284507752708544487059141558005847515179031173693172085266658889149505783879997310702985308551433752155185671334973943429649952604756480340831226325588603725439703077479201983228069546843762739735613806924430541990844187720972839740555253621778957651604840756785211778088564869993922202016147097559519261615403271835712901096745186157227746200244938516104510600050044541874282509880114221701370628370723613860962463702448996920428510524002550793376436197766138560802999976470149137839744930191278052228622108814096318963354788201482626132337862691890685954293428017211657255153219215522959415670769614348163100256451782205643986422438774509194390527624199914375824442446155879389348273511421747796649814228777590685454091990289676007711217358821301222795661848248635697243702219430102067260378756191407299637866283105950654907542076270270743158837033753377903650537892218570923141550001436644160114643634715541139004294474250545238368976212495557982483410026314237433992342602731682856685012024276899938969136719254844204742290839545187168771226966799382365951675679752595720991925224447611307320026570322503036984301962556859520251951001169741744028677082495146450210308501968147670616438428442047787313844410311523074670321392775757985822717868247652435930791924233408106386723189387965771348259883015442427351469333772967113234069800461736902852979410311910891639282699412323057064431737526043338035151063682842741930620628209892817751299354991895416170099329151133599893004574207041492685961350781867956476493313209586235121249748751546451734694708255810137390634550149438428640922589220880083602595851529431669955964095049651134892409566998915755315759224118753378975492913027190573320027737151146538855327571007699373517093244507945712633107054864547341011130905363606570927141120320300842812639218863631130681521101528147461741911888712783255852080413224380554690114967469032416727355206186092897021233546049179555247319294277754416768500370896324990290587975947623451454898046710256148717328675205491142501376445321000181331292665553663235662355529049596383536354305063984236546889591715565972092688523903282552890777468364323546131859782144596419788143544871080048298733697505085552251154251209760385503640300409608342457747169374356584740516351243173029104307606561496886129748506438665388361737171202144543499138983868037233195316149613760679423746601527275392573188702165019804852311477524632391927360068758739197681223244530901447953900428030163583973956812497029039372630078879991613118029863449131644243301902042378675760894868201649544708166990546234987326471474561977472110429560331889990363890803421462664763253138910107150287917616128271778922804802064081147729581791234494117863481031320973275658698524290551552360760555713973437573325789880656674563395641021684582499919435579941270757285629005225765087523663016839964640449706660795980553399377305361890804900244199366339096234009350080407100418538950952716076559611358426275848586674091342983211968438643964781925325238949871679102995325888270037844131331093022672711819101763573229814476406281500424162519503609040315410847300531821154300849136026402130279471433697097371209574228045385036922830627636642459791437811765268311008448989436608638920664446816152911236710466906081800857020130992811370062119014673388971239175829840107341393620747529704495486052719937951637248031933690962669172642909917520091268320440555349171397311978077223199339987269515868404457010599363358644950170189485091980830077442436348209101829985870085966948068287418129393077683227767116949972214679571142328385292754721640991999982110962559703828536500488860940112481337247762446675052198773280027913930888597455745295403417655026514440937110864957933090730238800521470143526597237498001776946957103931384397117699158742347639741947705875760073126865655255820482194482905354751282506199276476989077976865511506970205094743114885351522142146561480741269372092297003218231810950867413644371121502848695175445701404928064221396362374464812009107191473272183735129620171846468285083960324166985676970291842857625531253919103399380021907017215749259546785381239958752210998429757412548958066519982240171337340851535166165272861083546016208329885197329100502785295636863069434761521837120586615953762026338053424994313013640988953586634798703077192021081102387673960985548573962809493737140348906150660323212851268912447660866149796805103387073958851029084606452291570911939648721862629680843641819481188350053693232206736237614222342101921690107959928281189010043202449621574042464629540212873631880741724094690046189258241254829848469799601215558341621770630544729124618611922167404925535745561012270023220454419085518194410925072888328216595465634251102135814229941874126866050796313618814618925708691396173068288336093667349702743792007508792784717762710605109342984529803467049498745563769356167983769728745024774651185464165813720487944190156166826427516860557724010714029022188643804309836523108507661998306358486193827621977566898920465739419712455127178149447846805853678610551043474421556911639060436495664690263095579203781363537275241275505101839046084934417010220545340570469990223505486393449790226132249187053141867923027640364610366525954256485169830372547101781945763697690597524409630445315357779963723849375141589830367823403672936075142525918797094828760666929519006363966939695601078130199337883818849797253364988727698815253621759558388803900466505270710881301946363531574627599173577160055675727160562062222510830162977481650850214649883021702950404094490134636423807402283669180559822611331904925795440677155377227556960284714759560986574269111949918103661548283100082777469262990402031677557213141976280118175650454439213521950682470830867051819612053631018725552544276021460781033030826006382531815740298282711136906251932763188929168157222397103224878038444429059944928577155080369130488395823680818329248941755808688234800923949923917248928339030231504205921631847524948919005722593153056197267551268987182863855593260941091027129331527154093233164057220597032835935705373154551985614175051499410568453442000959849879258794604811905555152452177337937746949041445549928868075667421919439413748758746226465714112699610210998163396804323992375840059215982642604421979256610825202805405380724174079763716918345610920056113330808692749181614121722701230020179508986438631140973175952538863247314268515016642735904268130002774217873146899024534687766464806012868502931185031558416239448550242860862267607867132269349912106103901553484179892087772378697376119096641103594974422642278863090700435924706480104376117080265306352216423505881823491038793749847448899853027570306035534896722314672455260198555279063287807429912224249909581934827534767193068245047903903514400028469568999736495491568868826567820816888477818083156948643959574718248852421612272363465938416818599431488172437108305025001572105198088323264306390378977667884959922708847842091719328107148261266538619217245983060236847481629533997846041081715660421633695363329184851093120055001428265845066231341952646826002277142600735072817443552890373315726057158552394870678579174590602715630768053423666554833031162876673739903120173033032333042576500846961206167878125222864757630104110715807190937480296194378298524403249775664134911499365685027722398053042168448785356882660241072081220309408351856218454732180851974511474092009596490046452911259810120712788876342406325273103131831628195284577944484631742100672160627904248435067524504178361181730533681852656235132549600405189377682703290916964852570310821897597882002838988081316095373145094172315522694748331606903504628516509588627001779114865818995162826302571410597355910746743366040075074773503415538786665102245804195002440364606746608882895861284744994440909661362422236371468464702999805114346351949177372742113739188157306341332487837570270573751694948744329788802669483191685669002462789346503144437587277252570646879393536863033116625480047305194963788402069774986482924904051994887161165718712117409753700972357502984234390479081459817105580609210356727561773157338353760192329199326240781301796858174901820248078795926909752602379467328432571575498766041985381747255404124573930290249581915059645774650462137235877622233654472250579531671805559480313985013102221321438845885759716885246427820665625333858110409266675624358989374863265831729237718327073385713698847523077857201871577798019143661965149857886379380111982119808944670923021961926702394505114607538107254523671900412434588644110076342913172955838856320860166904048949852987641680963406683724231826327627184112147130768489335190698614143452826976666190522338465499342763000121765902677408798853889737267991322142624001391537913882800160236117522050297565443326404674717280928481666335484069094456366818906643159210511082115935866995290809424228941583007738488736974735556309623457126932544010854888266113389749163199889417716181562799494279020884635273375057103950832356950843476500167432059798954942453938700744128384026381621928768503994424232482192927528946510290809730933095268867573503285126265448878378593163654523109514470838186605881097335673369908895730649450418705716518510176973985453384957049389849977686321605235417758301840220362111713503035009933214798673307335572106682527381797761079926311986103066778389568428972374987722328125730304869452648627344300817411528992539515157924944326570866275055643300153977131965478207899407067166427814404757779709964257413850634427866348396199820031272585785482213666061771756436989959451124545669261306783618435263293514824370279116937935156321068694880545715374071084719941423498830889871442338652613795519529750104315171251482797572295009907996744733480945602981236708496258310389643002795349944534321070149430560602230629645671759751774943166689456102578382286181265706780226534452731386980320630258604614260038084714637250052257847852784779245793162553402869986055968771856832432973498657405880292226035763821783710581689929545556141647487827180839502904884150609159874529485594895075216957975463642973754068210276167613684110586634315436699293472927995605389175356461428653923228775695343225244184571443880350763603155295525184893773170529994116570507599468655071793186267518986067149993163932294353509030943395565864792207627322782350343987686362486926068432261402000650445935695968244008674977670335550524216173901208321363891040196671357103391656493640358622601328361386093783109175361214603348893315288451102259774179289797895017423133929946180618505117184041910888993239978428050998959740885675601800642656491037166509833938241785647389775565811135490873375174361957185801836892954228637962070657766428148710985524704770454530681707963926454203193179806371957312814783540310053886478090556805387055983460008173047428827650007192016201999596433452274667802288957379280605890973482398492269546164974628412873839090155921017802143311446988975367366609293577628503712299405783885311276377021349754796104906088241610036512394609456211010216215923297331849686791246060056167537373717878517967779342370806051269896910115635892628182559008265661551437564320275775616507692914134052484862699599947865672168255983249736390135181911019685210237687130073975532348388803893862794729985398488512902788101620089501826936417893334235046063091137148021678876952014590135016513110556633938911647848889978968035752150918441808189906271102803967448554229322360880099478886796805288496915729154545179301691798177277873859508287583045546732559105768442044914978384307545391706548487778531881748678778027712162824971342479264988930169348786577328940275572050326369375238817712300547868819829341823023064429318726748453017849057513112351645183016656262823106150094007951946185013731948305000973424185137317183756000984663742074365565048465691072354548468041162865269985570963428516264541414850801496303205207816975049269567208938956989906136237070777222200892649596177119576893847324506094082061922854487665492638891143132600065509738099627440252028269219951968520550894826510977961019468796096055797360441704059177072215497521464983874368831635624559802148263638417398671544105254525858612763364761800384646870128207644525845127746999010258480407018841265794350402944717653340173755168822294786407426122783319940247657416519800335829708523807806403304865478176694339497938152122621707810763677952054794822597330156709328806775327086233040230831180106245519490719366731063438123666155450305403698251022701379484069981118994880517975826239699290060445549295120724109036538354112153338364005231767092995254651868997584986146142752667284826558207025448514274327984974910499419362041567931979165337610441729104507059237707729508497976999330756911283349408209463546250331994307051986651172499787908939908172008003501242195795278673841910891234426775643907314115819054113521904015767386436384048650302933205101119275402105035980764671384451537766785014145544317917965920023341035977336907359113470326384215329650390771789423071921553204192274060950492599443477538000449489726159668521606825310165883959520423222203238673217644870245940357079339758116210341504086300542603213071562769485865907027394436658768032186809565050756958389168687692651461139945164982209674326817275777032223947003559775342117024871662929333677906419852792494635309414094745165484055022298562688047086029771367331084266457744970407788164231333514114968161851170226984873820677734808470549566504402835981513688630190383330997446780922012957825997399721883770155601921634515774917596745098527576224468175863711382987614299193423458694630546704034190004365925961101562869435774080407924651942403305440210980152789119202411261915190093415637977848532981292114591352869930125897804145703502775805124200170808126925698493073162586956469019312412512618486463820848968493228312105237788614733598382244171530687476172448022972306154571169577558655722276777554413557363955461705688115123162812651432877498739742771386745303019666703145981788429166480163859086330832388987383585311497309948732292108789962481214018643385396720059898641235371431758414134757138345342451302701363817590957882468668625343935871665512711163060284918973771464381809990117162489272713916829249311862020354294240721269924584630044995055931215777169607947487591092753754595326763093194313810348328202382548535644404979001949876754121591574619893768237076944822307200801728260227397496928730664541165472637758309648787850021187609531540865336803904475459975543404560712841741756564200265901767848706076041932579619576191399582348360597380866719938618206407332336977783227750666337018840295537251280104547719975313795447591924221903535103770000971937661208950056501738030386650048193765938833031668330805130887358777759419789792991670562178436236693738410045103687959775473128855294144229985227996992833324778612935121132433982207180115059103014798933908189082681678028690626683829344622259850560050766841090776427541827378479813039605253862962235124521733197827354166201125896106624823116009804256621446298362778268772997927203590893516843455610274801143331223292151557978018669545618058092218304315718401291449546356405081741382367291405990852616175583437395048356985522043267772866285911073957115413666878357504246951353939309270533463055511518059333049726233157419990460762820084856693217054818651818875427500558441258708153703479309649518709271630824461026726221688942687071516109038549332084748200217954254125732171125586151090085986444527101658421656214655408057828524927902788009541930756896747942624697353286387017485580105253542564090377637903843539518068452439129650692175220001137441134564619178525321579385492800957225030634720588499855967069589947333821090771173927330833746635559748999213757551392816607945112586343288294906513193600667038944154662143687786725686598792591312967732219946219175172867120496073164758072934163258791083371401518455533334584224034671565927556528964596972851785288805812273501268329184268220039879543346969152228953889770430028020080202298732453818099348152728833489096815649031262533424271204438097101305353985064281993825197176341164132811890817772748807786653708189798623964974330436337968909053256004874579995617859634087964673863576243638087129560726014332469253224590372715180769234569807151986411244264718382459855427983339161823851341790240537038155462291013449314855704847836808052522944617922964033106724613297918387293108991656032728136384669137491917802498623250831050756394504192162773888566466145578145082194350094122264838274775961997359979438883622670166390065933387898582641823895355937357449455358829199912280989234474615704197176386608961885479634784036028371763590671659014191033100949297524528984082712403061505064956938990428449000778596720932839370994720366970660811204613637180245588586193943776597423479395405148642277485653108800016835149937078055110149531501288108065081519359278290120022516350308012626778404824533261676296950659245775153247658784282072747183331214457595562417121097453717872729847924070633300290415206359580804278285880470837165812999950422524606317263057858442422013697829191316120708054224646818229503248206015390967527146682474034599639894560448372006376707255046264942178918021009701530429161888367125518286003532214552123021047540250680186044577957012708174128205546872986086951135403806991454209582600136048684255295124743382247647815166119369689102196711040393652681100957791287408143450041127731600702713311105430446302404955540557994465354885941077493313152866901597360428261578267715742881109210761904205692383359847779677991034549480342413580137958425790578200454844291084342557860185742930844902544031917949054279654873678714592181935280232094030737139922227105275607563579893202879077363319076103238033941864753021219248699217681883969198043425989928518708273565423046288790801494744688300046691340583282025189097210950428753857374207156704438118809641517614330978649670634119450307794676570650011755615517485229337782336854363716165982268379405434554432785419980724213121790504738780772541503207770657570622599692114866229854764506984382511052295999692649624505309354791650871010026881454199237117141541957954382318398103215665343340979867958617375909830765737451281382823242954819101719826231817508728253662634558134849701000559100996531620201756974668646517119609212873813667258583897797739081038600811234027740293637270346372350047411541200727260634820312185767356754369902657868535230235139415477419023696191402045584118390458507138747411510423695605236393701599556293830592364662337219645252378998426640178244364485773071885994440660925395812065392415862129383099940274512452450296411900095796708592966118240284129212795962031286395115040533726714919293593933808370747907753675001857299516265165484540963363889629495969874068868753279545930411338629234769793901932984292957533583586811472306726870559341974493798941811578169307412407692427209024121935733961405437932235534035004737660233485331788598047151229690215819350506505196992505713512572489184081186303195379700029046169025171035629188137587800132493194630264228156472289291831709898422582853799257588308050434912020019137555463581965036158614607489678472178990088569014398332603263961687480207014530088653557713837193583957001685751686512916671113035712377340447624923496807193885763722578771695477491857809263111008016839589718952485526249512270191296479832185679821432535642460896996767136534044064458638910208651855945809398482957728738671166274829362247661876772279650973223520825781082304135248772548073183496594349214753702813710057206450434269188396774765530379826787703168285949704344868482969716870496949194244873631078330189839608146376819926739530521391098521069431007952053815531524038930523231308345479753371013453921937466880965648493827869513618753931821903769410426680482860766710063278499981517636379606464715912562706606375284734695704048618207129996988319225632273766818255632028083590042733669715127104025233913045150720072888538397246828574088598162626785620899413361563427160259609931666327958491427929089008648937652741355837052922739851590093470473364296320407458812150453613193027034154057599372236974321882755116822487657791189531563903537634677559959566062695213176671933360642694290877413302299620026901117625576700471317680282260268657860273369319361158775849642766673348839495877681937348594975345003688252904398264293395205256992780916176834051907723379858222922952009326862397523100734348884312356830505149706320928683578306101040707360085197673526189233158780132061578345783643133298525823690906189879486518654000309190217563770003275100341734623885826967235584182114162316993225254809827438515543137753465912656482378751930690916977846904762182840556480820849911471738081561252755308426666806443728515651044815976583486410065325293298368751978697114402591944665261759859142257283787328917611362908007690765570782214770709393096448246076919190089405966193316661122567483129864962565390370479540535645344434548284056445457050994117708682147106133806963730146016335298162119002449651711183863014768893651748065244067496785229567842463071584924732023914430327724934498536858989582237827313175619651469024945580845341266627541684631812252678262650567419805065713102644401530956103797810895915688693410966624058964474194170023987035897183894569944454101555460530338125347354016661335886467160788696926883018386280789374486856625437518501222758191850369391874277687629987620606987985606355500150231920580047110026148251055726942466860008399335941511104434107780220264339672899644907713592188720969680503450353746364549019654387053748730330797935399413839824033907435139283079251919491166408212229138385450467166745104761300855318887735920470961590733264768966383581829462259213026668257678257330711782029947042217679134628138561316242249653999425714383580396357972119995192226034098097663202485346081500680737477795379699352336059780474868929245088453323292627545061438783600732737954952483667106667207642560462310699893457114754374852504931705354963975966674539170449075201984105548033656150919808725095845725314514715716170252731186167432072102370057557078006151541134018713025062029016204237943869717939950692175292042206313825850550512023793166471714920528041947635362326670274291637627783062919617489323303912020035791393571812119929467315260367167357090715324022579000196609056432608567153670576347986943879324105933913337959011868406458233287908051690697886954471740528022338724095649424603280378614344000989881102228811913301769996739228350604813457832203851172693280788697284122133232130089517835657042584827093817612601677961759966367648286247716151394933472572605189124370581384341767640107875359285963423487258426214236011506465503706667590413084608662592293931609261464060080947423829738920417044992628496667944060986461630011433610131042847957194503610095142270549760379805047254793945617010173634183119496757270758806244045427672576201170599608480777051187758797367323463794793519487835797482203090723962971372804257652140906211707130345315892645456376049926228870732599549634215239862266994055520861789874255720964994419832599752745063291343861034967673209406263877654095413659391009614634335037510054101004807276313252398558090395777075853663004620928409387558330290784750843723281388258267951176765167792237041937559803456862601807233513390515661387875554372300001747117466327374766222347341300588327669640011161225687558453110519683244647013606894362099532291175831984445690223433190648070113149132961211332928370474249811031586248181857479377809238933472967826422766215644287875891300521882410896680588107554714756471941461720784717307504362966188919624374775891371617975807698748250508910659739696775351865890608720754143838057848824198466451092793245926062749524233522637069638176258328601013851048337680814481898690307758383203099463486488823695919672406748913558630749795112333467464676424120724651249890486276066396081821799762674520011096109704111980888611403378042411316342196830339047791475160868050946696165618112402102952028382606334060715379621163359978207449776053433031645642631752306950633707243509378669541741571060018215807174276078378910962863915215784296657786768009867885821202354562559331724551479855117493101380796553359023212582891438224108894869708932275333188586173601684981457153966024621053002947787543058596537581784619928313012813383678489736360410914815701324146386688029940433905363744548163050033895277353170829046153370833843888054319162422939153307245946380561604448932150833122676099360521422793979965256333289822992089101102461415668113613741775299859558739299649148143037863194650489207677604753298214562637140588759913018443781139700150207071933260062847279026229841455266866648191538597090948799572762584628137572727415323463858034297482652641638009219616351552424473835573001923283425301494799045773582255013785849529105011805955914608455739434280452555734665916103196791314741035969105569016076344751967076447917740048129942413588397771468635379374274143817256298949012350982778738274760833215691141573638258624456223181591382119752605891036884937934376465387432640651219748429503715729093983410706429447514441793806718667365969323960747038966334507394944345470586185793708927809866465833323949319626664296080278610178854582681518244389243336338022367668004493215510538852603915386341388050163219386143684507955072882672361587637502839640505705858487835624728744673137767599638677905792160052988586960442426230624641388007075526146675923200469343413072125702239917182029847337561790643398887066894669796157485775765176709035165690064744692214318210623220345041912589335765706726450372537994060673305603416687885037673557019299791950646341894481923779976407914818435190108755779236301112496632378322012148592084600164643656701197344123241055622226064112470826234051593945849032230339312374590896394450092779164699701315208501969792382455814543349878048981782467960596152878939614752142707133808128468226626056331197558596130716682170679984606344322620069082149703916406878793610315193966460769885899457551251238292678392927235788905512504848978129262465160860145266487970701785003782217504523034640380016607929619400387755956877443751124037582278373433845632969779441213817602459774420115729165228120449212103549368069418586594785826751814191153577186615618564593072790658599842854048178530026175687934467377504697936217697646852224333327809497181170481733961700665487469310020848025300140227506952979115836831091685135026108345494245050960564743397019598091529730614537707546942197617290415301799389162860951147924460764754175505977731385120806629809141007909175112820747359588512835314269801304727737041949620301347410795803607392587954897701158675778847371956951979675120609966163907125246592653033295538103378161607001651778961022868799952947068986189236033507003877007342359468865079842218906617086656565190345160588198118399883091718476242673781445344996437571568110806328690735118257974477591211630596311053202234913244781917264674780415797529597221715912863517563900073355382578833714058503039947681687632270191119573021753242465962952044491549571246144735166475236733495672682950251066700321091585188476552288479876446163928817978063168967177441722665137956729991788388706612494450280986883254445919705707218078367836254722281837858867885487724700729690834133481781727653816312640599088892073586157170405991130798695093664342818788226509839112643953605247438437905065039529703411650069608411308401863324637396259374574066488936569973975538664983737568391382245359995218272445436914765314450579017720576330444021678596423037815699939189290945821499823005748789429594392315213145070623570754492712286738926198638655077216772524683079027730998806538827293292225216607609076943082339936006687474452114799100808478924063326152155671052047491946552464579265272807974138612707137487604098318341155911755826041186012722599758125038018193463230167342461540178738771856345279232792570441734574681856507561058407777739020097490862655481114018872641820130927537166802320230351055294663738392457378517787755509705630208644994140249150761512621638192969080848240357237454965532304859553231415996568273876582246611452354512132932212146463692335944603477023281360742904192793413283197760524443883846891124791895882160838837821380538747483770681310730482619855246052020396017619612298763964360293256875603922395116684000778778629239947915275381592028259085269124609907124891475289449937212806855986737439100483354276721747782990589231076771385851131071010250261378084555834578427666435130345512459675649543152607572475309624953726472586287538058183982570497691449380141918033779483329758796649440821273960218566749600514179113858207537618949590229917984648081029534729220883215566243102964853127807975042708508543198005879388256072113285590783589181545207834077454304794240745941958301366381452793915500416723258745138742884145167957106429168824123695367556652611701415880208987357684100983683179038206120269725955147308114671290099257287277206959498412025397872434053965529068093927220781979083250144689223925532273457298501225959969694578190236985345644294273613910803235651910597823055169737354166048697273194532127615555079612701300447956973889962435963840497796146510530715151060517084345054747526800959805007947872999193835090492650910220213514237086538563159943843375309176384375146493149192884681084020482579746777944537215470451697126048609679747799088432379582853250070215328301498972407850611210356781373545276688086008784657662173273424443460112861968774755768154361607239429296745206414820033509125241733335793314034089952030860067709113854353953249829873668932932073380821503291446625605065463392905297443872727752369574812746865622841684544612898130476489298947022960919343191618608234317157053973120347692906633827993331128686515157167858703860350598016626476136035293994763332879691930789843894679021157420867298355108203352835762496398327418525330755446244692842133025966575264874164737834086779809041618773311739928717656430135669629641885050240860533981478974233653001829955111382176658850702001949896711567119540762428666227114488825107930071084738420575522866985585523264309258279612403599832232973774203485966211516526213328586304989531111158834361470921819133701063075167105271708754004992682470969991068318726490154123423889848367869304490859275457999243730238322730948736229101248325460278217484605454537597930786724149298690607366424692829361302076487141156863314511089663407418094678295210489563366451120932928699490119861746430996330480975993336728787651468249475519839373863287187044246325077204988894890906247253026169170525974289079080793509549863286277810747348832828197870221077204324821309410089013786882964512364460742736380385724173002964922591296794496073129079665973136597367129655509327458100445083001993814018032767271712283476391830340535086404665976938878564301199666868861840482888293550918890862120540113843762788938959257812984678879371936790343119915081059150926408643002600308674207692572728098320252549162559756848414021702901525442392344303656354350072223256819746376903363706908610790493297395459243526967716485630270021729678822032102692422099537895718885587321753902654855449278304913688348298440096534089986848740607714044458677862487679565405565082459942084745582718040514940307919774805746964384420357609463409334507176078557054749120320960948188948872424682786539779232907216914983007158545797056447016150393426629328325889565673271207623836473737220746268697018495446616915773026363347700767679951766486891594415802083396765921407291900327334722873798047583919080819884662932734968561393621764189461708661138837892089148347725986584747105206688344101408881234739593251640619183634408971980577069209042851004478173222636697059793482247851873936733171878865480698393303696951441247372333043681959628392269079864972248509724347590353139265244216599567879324404602920147617064959804551672446863253624774685863753271727581364841701063162113794466807444880705180093023007147323730492368305723463703416351875454463180710267815891738431629001969580916309621825099349494111384746947582996945778839685920093022538287246186243684621376587703927687796165285816401720658141227288490828604263095035133741156901196267439190115945837262499655267495440505831490473594932833280986910942938279901515752454434044655590957635051215072348961538473119978174846001543682879919197337544398764303532938832877431698807582984662599285226916990700770248038488516629290220026666212578866803622813586579731266098705099737251002578269788840467394471589277244580608897246034760098732282055068556202555014617155295659935377466107774108355896356881645328234648296840350518211707461292324857166965359750871579882549797731077575085203615037394965682708632562669240229919521793424655888261581951520125915825470097178655110395577867787374137756781128508434675752723356923658988414001141391195340621433426719742735889212191793315509646868362269990416878416307778432509566802510082242643950376129293511228078543991020455290099752935588796044552993805898691258273685815821685369939154485180188059778639793602999287249890625794645283698553762967545293658609899873186530789579049635064958562113343990625178795751203007398565127138420359153193527212188676071520437722901942495322840894672946304990842064081778603270450060112409107513996736710264079195587154334470512915757139676708691666830158201816659560985777480352191342078627093081542522228480847557964661003849775208920005494955058101960164989190302078990172596692901062798747695663313868085285546647753169343650041495180039187114152125491688614348681721640770445157470245225928378514895044288059621489756108721042206797601451123687417310251974887600072559633483659500607353728998409477860820272908228998576781820742677213460463298723818684258205962277232383886333889764623855138968445161289384029592163090669777295754336636265208097133707277479766965804004221335835324932168827857032776819358793322976097158912104992197435558693858596203139190810736801998056750730587203244383848423178591956026411886242613362166601178675847022254979774084749791645735885153759233615060519903840828798580641476189610570998943134638348498236270369883767852381113730839106508511711121439794462863992130373923100761593257070739275900604814578088166351227071219021229407697352869865663349231668665662806285984503467565938943365165521545603556910416444873008658219309050600318695839065021679146460429738566627768401544117369054000237463415943986432624103215397457359059272905123200030366414863039942729055168273435558870083822611504054350845688185520472019227717366210670905034643507545751966353748562021267868249126159958251277389368044954686417005702412021085712255189897570570180641231223788799460873020461552184618460759514309476101181234667580150720260506414574324051796259448387982253743737296602090685463347663055345129192335303665902078542829906935334854172959208149179945954803363732452876689285329044694050472404035506603045547857018048343972128031446677234203928542522291884698455514489660877859062077522879295971374825035960714990430991695594570130314966690487625374211097555043934141718945073336954911168104347019617789741713097528775578393265721362090164851035416883665488990031759481157394391276949788432450441214948552572741362532391880647787195618630258569159366777453962961486393072185789059488944835193044848783555414049377434679094169574897730281885250565192375461171656063962897177200152105987958265657810205764748973672176889051874026812237806231388896584383201951374435472150294701439193466063076117480770267087154831662984365054964924800910187329337275282538395580428957928822358125263402165041808489416402755038955037466167637877142981586540415078798453141347042763221494245143858827103766080365089361981396470427657492453425710806056614941196379037687173402484969581561579883878325890462414289928038297187169301465636723914337231345099861142857435627316969281210420857982310404944127897565090150338739899867656948992926939897022700084629867769211117095627000027868986625937544506289836660048898040999585057275383008537551623834472986420718221521886311536285913830345783253028809731930724550941880169585086977382518063256594689027854392834209955747999226284112844580706823692413512298283192533289120703111031934884818022902010966929233023072762178704608648615360216724683337747537369337354082054960911331277633163298775479046476095410261082743171968722809243444331456588965750357373849293874625966864936407899213633006336322276021238417397840672140130692338711873039963876679322840673111398605790003069166473582395234968295149033358794607655256493425999058170530314456017245474777306911643873296789694258316038989341426629635861058396662482238378718382237365122315868780001620031103199256774309334489213033844146939940893919940278395334390201448642283917627902970089040843541886178218454707175369755979900969494001999081587816867907896310379803981352937596670268553917837603101088210929305675936050208913628741783509920118545233191633850060817845992702681399835632205808462008773816472195717439984596616995254853686812345125339791076974888423264122969627046739123162682853885550444621493986639370410475819134356014291567887670545316247089490360961065898911931310626925120639125508187312366318351692511997492016173670305597565040864884656518755737788888796616241064206309766248743257341374659844025046526286567093097533320200536373969777905903135074385375242928758830662807669001970189581106771907795481505196561888542625303276618753303824784121626096074282459134664151676698570908328175500773932182373819643928447504255106692303882559489847069652337059315664587207414989939418034885099433560766040084754345018038587503732655476502755069603139673777454002985570443463296348703720973901236965064425355162795510826754646991737759526681415951082254323028800445207054905768039011337160287168144150896540434912403291702652320421391552354795110552848019631567473024463979022942034120709890013253497128786849422371314857226398300234718579740459323870090277063054845240606160421586085314894701157110460008491189128794418281961988880440859927367228971388943593441285630232358602518222525827335659621473557360821845629252792749614725495770662031901134562610580100154713247374905750453999201401809385403580380796419162352275296868622232388459001231228101923061411370256285163214374873588479116818859448546441033795106077889348869771889974270243742762501288959513669532113220876571996218340864634526859814690720593093225947073831292690528758921476842415775972523089370103557334866719463737072048198230643527460111901722830245804381106702786249675736146968019678057031837716663424812342039110905480554609125650569004258327602785193815341747857742095005016556087422190645952145362369913180421669921716487046427849319579548109891519428588152478465819918111036174703053544580141634907528444271220344161609554107475228776008331325541700493556818753187289856866425957033721981619095225000064843605438765428575348996348468610834629804474606852666166508766593483842636044750962760893461750332188359224202894614303382418740319984464321203533588155333242481356645137695658438732433507206138075197296161070778938033772979410183045528355232837206819834756676292538028481837121910661713565425679339363617861610975825196332964032040780834326030902460753226089515604248370033850600396717592048764857931667880925838341782065929487071883187266325165706344030537496970211465916028918830770122393088449929479597670198713889465689217371258818139283121040414195133547689627603424393351408779852885697176823198076035972653364355089691701393761853678447698873409497732392645733623650540357248288837322386076630350781382543065097917005408300875764135821452329934789823038813274795514566649467740330034019696170388379284432080211704018962750994697337343637493528614179156163206424502575506085358421971085427185535110188023841025599444115681854171579580412419613893585671529923314433014837721125128136321809979699579259804106721324392287360907112928447636311043082953660188000060594322042323393089500494947500378044238437451401049952999013902516358160972180027906362822159180714412018386146631277286970583344870107218586819934637456140657548860990368144603484280630492989871164725774509061726727773719869304870578588415977883196631522987576247567036909501447452465997242241080257685211365730729424941454365551895388702397141832188725268232859148808731742431214265337004306665336751574272106073250576902812941479244237489831519588591886164706986258403647507120004658170445032355789346108967943539395028636984701357762769772078306694422794011348895673124341214355358336417629376864007218954520635419869136155771865323121927437105153993920515190523147733696068562463059480768298348749928649855548918086181512118148326202218603560602864816559841816711574347185290260949763481750995242990769959288881937575792384471867973005665637845628591553275643563495929267783226939039622593786739125064396101024399338002913254903725228027945025496875066985301202203123059309477250067008711250729574325586423616605206692909572046358632599682591403368464839369894865427866059293454358582921613639436305838130887651811054149716406059086670160763637979829416446714652474020666256657227643194551220356270279564302022421287602065868260172516980882680532804034267157182111946799662784601680994509936081147485792213239894539431344749230496955631675059349459896417378708225177934370091356966086812576610051229421981689674320883595384557391567740032976895624291872195968045197753123362028673658110568731235365637001015220695159741575816751925412000316157594244569484715543851642692691024592459177793131741180065027601353026381103880137744154655689363730933596877930251109729780056934522706187588237137984367298017797809996098459518862146631596600001344234964615519953022328697701669928265346920534684355988538915871481519031773872964439937843915366991902674457079130599038321202757705845731420557468939781563621614449031015870801358887259435859989536422136565629982467402653766652249793399022237003133022733140075111018971238234345031797389769276010332292436135306444329902103128581820554046798201122906183600882653050157677213089355074892433662870542645933767473199160497797693225968965021109698977390200307883882415384686611503578370967528756196705553627091436825219285596815013775783530932841655680292843261439995021237752233497898649329446138734707540503234355761058468759290039985576447246870593357118670526981141495220478651401218466690054638441925190791045068158780222836772344333844377924420071351950767906114896708013484713613655196290676435080259493319247074895115922090851957406303614363134044333938058944391057053457925329911540877682485174814971269709110352258725407183069540644173390667117673591193414745003371375507033382654168654016809066159604513918471927646051943602626621048520468808004258978192909022449532285104057861431851919121450509645274031112556224523131942272023506979209318893628270432343809933709829723049114739493609820857727335624762325950643352389425510423975651202165047607355043251517597117437514522101187695657782499683247040687373385954686880567498549035900720653413590374316966981978520367865367256007605966897613938248189801513612996955600471756479497595099690540381465605758851761506591331161034461520220732908854486204950994342312748054010113828099914668009808110620452760695087586197987672487170993170094243305401044036642185587256089819390971616228410462656022771001744275073876163050478000548959657175257763570845429599886620019937134078346857461900353266848474749242521865095849724533344206203420691635019462852793529381046567927526154220331519220493884152511779149016907431572355141771077351030726998106754057305993800523337899299481876000147479569588950700622299772708997794965886636289571279142058475195834764044279941036427159749883909012368475309158696075708580845936356863277355274206337498570334662492574850530966572672232153871053555084629152973232606488902823218072501565624294691543687110079933264109544177925183837152753990509961557629359366133054026121352219850750531980407704618890962339773990327787510984333877715974618106323220625676479161262747475220643847801069186291668225300047756930053627218997229645086349703724539671659337314920432020938103526622056214476492129173624037281787016533750226166533439775553308951226992947296932028718234222639714762481608695752960726464522133282922484444689127197665161363987074471352022868015329413886071756173680424579787413104268729443521793236389890821193424170370685343740909061122340329460983435980353475554425611783201609510205708106659636471514433313522418758841607209022486991187130741719122543493589900995851862887149143667301741450725146323878472012531809204821031198635238976167651385043307616242054639306516453870360735786072952740203517042865661897039855812762434434551526602102173528859037430527762989570954334669008268509067765215329045528859857622995777994081156837967689206110219064812684056082600429734490556427360137369885115868338839632552676270354514573421804298691106450763180993268090235556526680837733280376201223179691508249328562636824381007419693097515992375375097553565052659692607160404607635093167669330601231172113494407317909781644867538805055732648715389831625730052395016350819959979852888081236962371614074666910258684664932712245727241268758208097910320312319194435057595064886100392831754299634816711302267590255882304143954398129041694433706532315746388950932682386629912759500922307488143311632059948238784054511970544051513704814931521919460159457824394391478128430151988060473071878502545861715852041418370255210690035982794300371345135827724852099786786731485566213749264533992332615151930117578951080399175615099218844371876598561555308160496868372218721925553499625181857194645160064748094400862415439007672511348339490444995387397234674481964947913727270110416379192181589912724244622629376722206137459654955769912059259812575242807033652679181958811998841781763067121869557406788774245042592990171940778632591286500519384195952822566492839981654422209787675953216004826218530204310098179951245982221622554161718145413063914656715282747418145583113182040691846067660878160354545893545579386775504837991850024746333543069294469358650331947433245842097094712702834437634182506580855129825544818397760737318468346704023321922835517544021415929774440381057268848934667934297327620006573186249650618032230944726627432620098408468161569507862631120320318730576597622677394397190250968494148464856411390134246756228368408805928988039421829711617995963363099674840725485033920029028146994733320852357540737202256887875165469116558018809893099596279203778069832124486104177859230996044662597635793045984193016085205459006472352611526128771249195037630033793015495224400343228590511528277596775799099691017294918966551598037277219777346025776666952060840689060315437249028942873916200707869435635735327680001609824646039100713755212021938060969702445001510283324659740947611317318065386826015350188468886850139779826129385202221671928469516009123916616315222154858718223686735573019599281111025581183022512063362014196028288171151450267997677129028521215205800244713424522216267437529399242435204164639457790754141520285802222523866112881273031289470000091430469530482323474719375968575663303982560353766155108268307637665945517920476949878252807432685752852029204640021766017248204801218642655632863988525325548725075313920316716142268266665064017964701215699369586207966140986702941902107796726769392885502112912752542227868513908346293826580843550082536357233385198886555482681604289510930871212282339984956679331836116722297865722792849404519480333336626505143945339706999901219994281324823831442792102991710484085470054602348887744933671873994994696545725562461768894346686250313652644328633131225125056853709748567985950343238871000256759384594364020702516789368708106433447153838147585229213805875575024077494061560177256261665585896875536328187817431650461527749130363870465683840096989211558953842392482811574661024798346075691658719061495775988473847184721242001617075935328306554092814462625518441956980747120005442656930808010984931978018868735718746098944986100536016204081854393138274509938172657750338795761046615140083593918905130465022761283335689616820415266128844597548492231867000399599390116950159031693125207317840721230098925132017375316475541104843891092590207780623748364266983902148473007020690692612023036076881337383719811452410150872799320342868243160641336579501254237866673519147344788748686430099899053939141735323288520841154273076019650483600272223196916584810039490296342145833009111150850422992552454238064140527130319972001499162276800733301284176021118074948596509236531826888539000403142220674714112798697587685621420973938443711450821897810358781785795951116913808031076787092009267923453785013172764634206291720287194393718737374013562347253114343183753583483616242949900436818221369534560863494929896455694904742112382429601670332298091594234277325982673792401679589659730706686275958097010918011330904616593950172521662430801379845346001124167345954949180918608431394929391012463976294219662397467288656607743419315980544468665668956107290742500797087090033443613206109500535533415368539588121860632381494364535568644692218717533164305007452136040296300582824182819597919843919921731956741046752405160326918972084422784671933436042330251246611178959581158081157408117110747236180215306638170171389771883100761824777755736876634837895362851713219976805724251728929762630665906008953764971087443539046384078229811681953404821339912996111502186962641984486810465312564391866261219579454163986331688599892674098864627852567079017441358690335921540116499916207896409061285135821048737141599029402458763414917932940585943189808589306854985245262028917867897797118386529692097474977824127331989898395656309833603374725599361663226241520980022869306800901848935355683256637775403286449591718716937944765183204583424469168441378760499104371757113791678276958356260164537229197220324401736018191926518349677371430786039352247577403917994481917268155765492657730104580945330681954790182486702135129754058137658804044251115622626027919183806621882432991748483506953742857219825522982454005565792579805494533745951998358221008944065555357702806530282482894501144902421216845055501098215877750275018553811635950484716927317357714691809275401226115561876295407847256331724041251760125571674270629948120165918542312364339827864058062337310298250065914151076012602850635753401563464607092414817072912017101302705842471326037233907570781469070212418177018351788648976001940497598123084282324435161167516943535260292679720428304309430108295394282602692451911936021568370128729308687096757995189021172800540523618030011243311217297115573588165011524573945128925911972168260670011128203682902897922781850066670292058095834992652279774586778983537600434235264638535326624024721676314761910227852048195346676932672457997613582303832467800655758203169013510804518991667006911358035144442657535673660491018598411117409676220874918410584396021734159581955567559065104354758303046170594393802163789593546479554162951154860546030277589104450794639971475572295186883607291804410791160967647713523471111743060844335859853892523328265925127408475835390021254023350409112989400009578719718907841989026637281411350118804421462398706758562357673194700792268478761488648832565122208033834224893588283680510019260032304029631076448275289714265525921229251477588792655668268371518413276302531333005631911111673075803366020145700798212990166752086110769296137049918243970570253030866533087260676823139172247872512604930886336834570687662247754963853131353473328239989890848569744124277664524931008908581727813224049805866563877344433885706471576403716932295214273114286336942455376744798458390572608322059434061139476259032551061015606154229011018916646061121363909415606697257816152099745076445882746530053325440824062774269693831256782931501079502520767193540965258759837416976036972873482847720693808776883923835986316126624672472490643331066972501035831387104794936299648581102215635494618064960795186721198184914221515744343968087713068909928964449405364355758850061659588644936772043793527139124928654999990238198170210489130180341294978161942582140037022418975688512819232855355251365458667316825618557498891178689866549480767327992574926600352775432126522930420621437804716969326797274116841893657894155370979623661584942325534886488752901629174749282531451141949146844925365952022936462419613110217291049842120012152833411571415644282371251778702038431738171341587048266551912896029126647522497305231541647004907956233210999171635962907622417276925055302754843676521931067657424658951416832258123078389819798865751450328758250990529742044178144981572191890259530659137842268766204615841885136652294910459889134628038601246625457836260628285753219539794656114468519411806307685791768807524816091776797156760092284171444408058700763889715641952939007519912989432064840457849563891429436956570144713079095033021977791399632777081892444890353488926059320719514013376814887426527403744511372510191145227999832746512015026099197632685568008863182676765563811375626989705597078657552403932114966682270219019859813534617333930533121325849132619699072228723733804700949278043875963852985175623145155986307070859349990966525012749942544976525987085339597073193326206101304240224965440857677875132172729839315072639851969739161891339828401124830647401740511178167696330132281543789761399563226302648866672083664904882447594105372326053013970773151183660846148059495708350013096300822493142475968642702456980726705495555003636805096222108410565394025300038473494295296248952617083577229119314430361293327849445628205169677991384943764913764629796639192492432911949608864628360024504241823260451595013775071145916968752329296753769232778264807727040711954921071140009368121833068051218981258913788316082233942514164765899832154030681542245450882611916610101139412897809067846874909643878161024376385553650798603216602656056239403605868148025762073028743745190770334094785529915107015833319962181141231013249588942789613851710560996855615965060382208317623665049808436600474867878242202084105240089108771280247984091965587918113735129405974038834251604003283266950112070164541978317725828233648189248228419391609733617485953491486172354391430429073000979982707386371967639444155709338616021670411550013333293177607520859222662320578431837534569950995369847064483633293470755298368584706262561982018094389219438467903041408271165906327240518857215374717126236676137166499275255978016848042463124480220847245723128182891535716579206144246919140407080873899353872837148829829365841074326955016872392840352782424253846590450069735764498449764378670823693656441625067164222055589106973078961323838933149191697207227616737393725459084780209143239918439603759322835379774610976069160084555357102215971776951809931543633714400864282213727425053983531612222509744918364013107278889446727583401191960376142476999898722144256352427796555826303196693903558882071807200005533084761480664636179033512444811998840680501230640823851113757272408800018728318241569393415851402772320131181720037329053604560735678596272849355416581594581624260344130187306130296455134648458063080241044438170206698909315273834929972774723002527674990894389966473499564731525696517979990214167252488372924867015651582480656975490892249584949505159547489510627215821677361931033468263799498323715142854015577888486852030107914688583195915742008770358110317696558517212035409228999668594911884730132679715367144759197797383897598274908099057990107807214683062017615827464934933592050432140362758163057694313406039360974894616280211345474526911790269351009590637975247582461675830978625661500828727909926806674056329902291672844364598528634468143363095440469813809622106342953468621479826033616533670686962442871048094625052582923333603966575313382115537833359533594603165403754690663227643937413539360203181921869770814008463509279850339399398216377077000025968486796401598034528335108630043556309198073008991351758644874830703941118998424842283625648765650063048738145451513230765537519256980598377285220331608409784376273468650471924125018823248338714898165986621028250654869800361493357303642992438555113261581067481275166247323641709060392485717176558588440208073911019069100006353470299298609400133842242856536055342761288131222399866302617239046350224966752912366247700779124741157841712725417254535923795395400190736781767587282130100582936367099964896677611805382981164703812396308399704938613897714086952982171437885538168608101528528477650939036303207794837012557469406954962917575779035059369084151904127320261537261306072000501943164398145800470231766354718116176846587710002828485682801410692135273903776449418500409958189116633387808316732499198115430519987822650193241779613734059791664243934807059391045734621671660323802119765238656249361874923695206942494267858328991611873823351990052381910668686933251232356066441210057488762272117049660925253461551751842500101343403067196559127970805134845503425061838527573647002624233809993219221787815863950771346885386733517491419218788049306006442441171848501502044659879791356817055293899390875180372853108505383777869238489787107442067995465466090985087268811955980349667890291135515136062911970812023337354201013543380397475633871768406792376449352753521772233544394853415913555650054271352531963258993327871039310924438027644431982091843816960492301997498172286114095866262384659610582394049717848198803110758281400935342622838537986553643023290768642762921572844157833704079427643875186735668991006572777960211340635059653180956722702623909779341324269071537444442548751568436015588178850252978868712641264209512767392561835203215312974083597479353317392324892760140409778462608148078190624721787674405332722481927384077382457479264948468512538434947529183020577846410481103724633375801626935944078728251255834916550191994797791055467755873929123398800534958447355925374189945927729192817634342288756542824513613816299950532008895416983452728210258900574047097464924032268954771423420981774270656427301677339180773452264045431948763904469515245792340224652518578730497680955027059592622474277606048855341952475774416741696591269786335217661437058550589223884244518727301753231507786161605075068505320555824640057355751971847888674240339843871400425846094022742363206532878033441700439020211531333075669888260775689666635753409241527781878966656800245393459147614268084212135377368987345160774618969135978686590393399429710121380889168597556730465097143623373850860791884735927763972527735113687934051547815236147615463039543282159646355995483961689097815849772709719375195664545881815238830957545656814577912003258571211202872508119396149798627925582526436943562860664429083877852433560129266037854143316942474215325084833192755935069321471623117187556603933972022161247951767416149902328707917079148473492403801882197281214789418483777961142516203749703178126436375339810200564367348261022753249871901769910941432001178988989905959160574169623779967920408890008141092368300302593103245408279119149327227949329265035005005787791065539572980535857445864188447565241406271663591912581613377827044715852414911256213173907101381541906146160776200136637678853925210892774509828015504030992476187031422760613291971099729512373948210078821298778225517212887561246875726053316953259969971432473268884587823960031282905844288769851804976027601629012068566530401602205723294835625163240132504025181808838839063320426495787775909466873138442668587335247233981050248543879526952398902078059817985003253956970807688439156374824185264030692565517290273993501737502111536260347658406413855949512446261290951916362167024313463611633055184890961671508008558865343289742212631516273421094640136835654647038534541096960602420763950125916246820443483720661954233859919050697194957222614519497323370390706463194744326517607633979178119931236888901544572590997338510176777282264875015644687405624842071490419417554024365005226516637117902821119018315085803667371485454035886333798372242224460103379999701349773358104200295781990205089081138203898229068073667430676320288193959179330878720043937073332203088996935530207524513029557150165708104282915659788334556971017080467096336044986686044001272629351623443757221041261630296474523537928063789720148573020488690736015556005871292097329256283175929365593683134590478203289646589286579753455691528338260704975561174957350145672229322966195920441162787841604077211943514311886697891437686892861238730083142452052255868774506714668945743872839764972039871918267179042986212300731410990660710933601385519282489977469281854134808291687066959075127080001597550548035506565911957717273556964773254153983397112362310735661550369916836927861931824830055418220742379098909447357337487896726986662741110521820958028229890220284677782802101551813930349403932909023445974323421728224760927006789462708535615375590871158194854571572901564051345358379939716334036601936316063474125263980442811394639806244256154985155303344709981601215469213049021939390586565018119491672003865455572581385818622326183647867020033668653247122548385277815102553642191325998604018510203599696850842289659527567832724905130478098199908107542957576333656993474608854913153586412241043235617340773790950370773737280913289269379536439139439098308657171706014017155393144293942216322366814501153208709198876542129968059058102819280665731196382955821101203845133348059469062849364653415324439339828538912986922693055428151293827461484022680396078297446396787156395272593596668989551651407745712936569635209617050457855418599434519050497211228940013076270820594921689657867327104731711129416859548084634174109199117659989514007350214881419989267395137575734319041550843534709753646427888724922035275658113813888931876017774706922227750964022743839201502912613539609550661697808720315902016012806186819726550527902420216858070741074549883645643253108302594953530139245574240581634784172402799096743072637467600458379906085725032121640180185533689284053961267576715576261794771218747765903342374437788673398498324863153377534586251545357177076147985731798424563875111031261586490988952495757147088254537146068351659394019810296116325355862174036587801017341206060503615372691534050812371950596580122827283504953624091116625992827713465418972053670570776556945825755056504398493405917253948917426948447136768008173222728450958075222230300015656029214017940316284522509560818388337386950193914591345111116493379815667449782123334886578990435030906989544920171730793868175223959018953472976721224447642772122634686434732573623095777105940543522586810323495668891195929985189829198994810051315459481315449190605575679674636480093354621138368233159771635519869836645046568308215001422874692278495074357635049710946404361936673515378441203117042586648238013852977448003982681792757585847329037324417567812085705051649835494493339360905975780179834007523682847178922168271471389073267197566118928518125276797259175063085893931013445760712802118261794390201144451587909234643482877529371424520696697378628663265238362208245619008438849155707110949250772918155063844599522988767128807487344861808150913969851436152016815824701996362478753265383913424352953868328482504008131288179932397478904340235421356716765216624687966813784688035683838789847520254294362761910932639102723745494042780010333570926218478099748112657123601685083690920680906548575953279544041300988635197065323716403071471261404968983207581604493801174619106728026649221161744227636175133385018645673050975344905850100060092291799747599543126962947471120680367478143343939840718958994850746717617292524335809102522248694528310369888909532233216048627575186023953579048848658469963222861199529613576132148617421981709587071135996638822666951070094964783073062127533105026963208531365736189113613927065728280598808401402150968087285857302203135531071350349055040293280752473527831245378771589497701256918496664939508842696574329639355615008675703066851814457807111890100712293152346982456081095566428743291811161817903010131597960266753852356648509536049948000034471789267240366253866278667248962930107513912956754533787726779635464006376669883500589715980967975842496747322404052611615930667329376961231265235641926261643156310307002830062071831314433073036423711525252213558886448704395117092438663612371847415364039221421125764815645657884031390598372653442521593645394468485251303646632687857992706717506193787772846727518451237786967897829604409412554001071942102385123523560854284352914315717615419169901557660406091888251163705267451447325665980641893818336022772447318035937029418532927075285371049366800701841151598427805339395338157251728306493352955738957885906736629625959468226771541752378716698754975788344779187967466124431881936260596200964297434788941700025149858247674846876669868495919056759412271184472265057508243467532611045439569349993500287886945636695504373470261287488224728555292099894927650762796899929649035482942881185812743837380296340125306728011712994335621154631314689044680880120258997459109121804168027444979670324487240374446214565965836110873258753925582370327260936938828019156681932932971691279117619069133748252072694548968232731879695308624184916436202382625789591171007217739814093263867903573894063058708775991946944911820642115909338456585639661924221399199737132053548166637851639023477845236370411835920664560490675298990396916750762883509667616345414070339599446422563476545209391096980113832421187706167779168694258280419894861796235650703449444218591728922073322311471286569880028598759662550937391502897833447013062983017516076356256112977370042224690332907118518602156865722975290274171882179262990829118272234432103550123108844731027975259949246599372487041745308816078849369649782909030837382477564263179842652837624123418157772042362302394473201196850892899201461441772060489720739670582541703344406472857503797128707318580074264948092197900364298683533457397877619072550574452277290097826998700704178915756769366755113262788862315993172422112151781854232267585430519147988191776575354383641644695232914292608889510131280353618794593105072709824492526935082069191343281338384304905606267976715790342961858923701476569910562760921808477598378832875702294824051368707127549668706433139039030557633294568688374927576389653421123477991180293857717144591396802409160425163600446327754416093532669688325005539337022980039596344396921276304921291435889590046911771689707754038827323295087563186722325790091754316548731356344750892547991860070794266420207455359145962339745767273273926461118373877369714926873760909881546127501204490761552981248131055319400118682343151175895811338912645892962663315667475351074912909986078453782518491337798371803457823237219890962756596124017068879829060350857252499694583722192268102593245875676148076704239722078831295620087601858662509093537392363803111958150070930919278605285604714195059872611314597543640814779779572225799954955737480783058832237420686353432907445155377009327194533605800902024960628938356373540355990041227809273468180345100289168947440817133113369303602773091013731727501662904160399826927227358751666596813370706013124867604697581770541946896258062025795454707781590982838047986672799149992143692317531984016121191922517762978721548755726014000200951118990238802007818116363574887734266832728463249793596643488314390960625499096147307740417420262942269115523756658118748080384608257013774590233795539757755706777483439693925880004350843861149342280808813617499611999276541326200612725247250140846713382897495918290619072554654051282444608790018058347518190212828139258134937507751262002969858932000008778609631798930075264091382029056333526509266398634903991082231540375246666701745273149831881874059116442840117718220398612089908483479332785184284717106412635588157631551831042889399803434600236096968655505866748420679346055402940328677269790112846094808302875018832318853614251174711418049966321615111692004466383620536520930578081782417438065986403478724630885490960911200829497563334931043811855731536004009835001504132226590810050464659358018801710045561660130388513938265040827069830227870700444167915780174713196980982234375316439144113371980812019694877768366573940926968659422342588769831527130665243355121884876267947528434235480509148788143714808320928200355229221329838153354966571560053773962886088298220436117063220275082079705204405945367238651412361801007943377690553633148710364695309487185078595248056385821908022208853191841311690462496824751443277883524196183062027834044591685488041214474839227252122138475273722740479038398872714862228356274061852089276208276742050964806734271764752658869165938584843247973074520532071325494002921419395452177463402205224630373947090749134969339564131084567141704627289718250888852272994542646923677586443874515420704223387138408005283472319749397020277276053722707633923040607869069403529661989017854151617612985836859436740758305212102881203931895936085319634593072430090065561402862555332857961780826107935698849755279178328766988584746989711875385745731058613728179866517352470805915453891930252559399042232596709274340026546877820545954359406933065018518140752138535815445345349623432322286762892453429268664425365085674685505062303561698103687630939805266221657452490323847133903539351597744452101216132164104132312217423593855768431379782855804095917367617723100751539833480776244232548399366996097184941135662309788843268188976497998215334194735567897530487722988614028664105591008119391087456132952717159663978379123103111370542438429108844210543501074990135200222968870334504945438275338692272379263460860604648146215696831741672844622815078139175942656228603988135051709809775066690656973267960983549157095473266802193305755184727170208833186503488459645513408740467939215263169611692653977920193524728149978557154548426898500490262673513218557805827333362337137611139325700673716325234731274476132206540396031286621702391722335335903555571461149830411723181969571055322889714476269753612222027695740874012627627208621985537273039624082114837641207547812697833511786713903027526115726943154776572908705100677034393986852471384851719969962394383611789672823589272268959366778255008324475346834158075507893027879282731768793946450508236377706004685784692550461870973546785415041665449375953122379139557946212534468455622260747849113357782889393320195872977079228371283257365982476549191321287985939320164678662227798652453616778114537263923145956840063040274375067368236608335745511689847060665029775940150469148554510542090447292625966364188931620655586768899870379186712528640669307371911776488451098891851072313291862754564967483943133663028377484430310437156965229108086321277948539933614014761165332044701446799704353336881018465341963330407527134547952688692466449546407612376161389474143940101141419839246053544363234200647331232490731763610124984845225232900471273927625378293564048142357093914971245675492580748131673977863799910846751298608984772971894660015985357806331478129285118760384440664954528636955061788552963730511008847287933727487593039945850783073970585435988515200114678543853854181613610749312553847496648868747386148320404301817334619883542974531033797117510457468146208436722902580813962635253157060765501061382578511144162080472789687632913492489486137808666327145729198368369977058406473301483586775681029842166451724793356978020638466482996637648056387256820081906969294627292457908018013912985546263432792262841273281139736935032772560186137925998033975301087351812453915245043965200917387015489450769037453305251790398870245389575036297564460855627480008554721585395920592485927027685998796778157053064938253413977273708694777640976965244866728931876865323366002009427160176752004396549533421410028505412738394322497090380153694624938553330237190546321198283631119271650077145799195076321369978636824744468491976957448334907455743034433965062132186171047563520263982634902539746589169687049813276016581415854791779674637994450137607956403458221669798753189736899313091727531010306774222569440561811470876062762766779965988558124027162616728227353622793326225929249186208676310124217821581955369644369959525442076670688076281682707962618950646514592204857716679823510645822271325893308694815655439797415668529582601622648785580276252079065900080710147924201149106669845984141680914690751155200160849174303776405930587597884243669618157818542668697714035072680466085013663002174530695293453588626895019714973485790348233429091769154025470628284962681213721508310996565153517314216544176413702552809533347441874037827243917493513074879606375659220776434822854275138885657841388759031614718703860916214040266569630624864114736411970809656174773763397916788041653320809357734173274312444025334094734389418447306206811630288492076915805510828752203197360596712211238738374789453938670192120671005442613886850982454411051004635085331388769148731948607586662892946915630662193047300179580515919874876533279864996676497960889849568550971314395113063655892152777950510988338201223362224026843731104679128763851421728987710041495718032182769610585580359330372777437557960626978798565976380967225531329440157150218509390615918141563994416869406208948803667874023416895831307342638105370461164885905696287665953488935188896456446887186626594353135814102669394942971642033390992022838606777977261314740505749242904803651189727182791398301634252417970661659119128726513918090711238554972197511674984897269190482699935106213376662246420567302694785823351682488115282718990571590159933183940687737483305699215440383561160413291949315373020168463047187632479433253435881204266379028804973091219697150001261533353204564602224006455903219168649150195851202500086839314514399480349824030609800764820418045672279257218825710517806310996322317689583568007324933398340675679776286387239568536170820444519694595510288486684976848299353186669937370516449953213677286590236382985375051133490332425116631881392801342881630752311758129128702690691302758308968329550649386436265492969637294028306415884799696272472449401764027629419077422246234193731853725858435510327533864632740159629450396117231192079083667996099522798075176141494090388689893111214622792383676219442920231135447277306629663690268110175631827281592867659156797387072178280751911294240134194437703283683222135809630191968377483571207938671802229372588302170070008634519025000062948152787995773964241753691652186842864377846564045714858695554855939754662491801043721589061071872825224980944828128973565075881831744764599767557789564766073987236914995332108361126769526017923873224870585737857141317995730825074736927781663588665884157918917369567845946207418012523790210860076849363331123013694363414005051272984651682334114726165285750302671627207751776304429252612678933092029846458261918463339195454278395052612333442506704038904417685420839647450154048983679870694002075250082848538890317250695720624737325381501699372711061754225132191664126227339664209743006388537416753257836299540145136028396904287483053883536622223216694656223935500579980104542138600692740743680336047192512966579322053244737425171840519818718309724640399018652206972694334024761528249307612552245082117726510792746286112428979766219137595189215843194175780366825533423282667675893182499335952359381932817791904468053937405886739534473955827000314650968214135856467549343270178300100021070715207842703705241460149808631337212575847592993442812684735557658408790953775045503004505022159415330017009290316136542433743601425814545032270146672920708119976863261464326142832741242808028121140413182659234555343105832739345288159313091057890207731021324299583209217402943756233788808501861107843076078676989280925410691246317317542745917641468265369927915571794737340516079901200991544631892407301598221623952767530902377257830643990102515975448163425515381102663097104161797407246038564348186003158025932411362011775966589104707935180301378489220629923014305473626063131570105202342789877944462164772875514918670783790699038324653415428101548206386634857317816513072061890106556909779769230099857272918132502483586432703562510374904508111924858538922564218608095334143261570523283444789032612376267122061466631251969567717490430602446217772767961386260999595828109775984995572815186453121585761899821791049480525192757587392457335213810557652214325137543103603410228855650382038569524938790123021778257577094507285904427173445938418165873074565001629778740555933469958022724234597890681199810944010422549203699116747890482473910712223015144105909308940604725277324886735990124215164460765895831382660867013363223828646329092372226079925932684247459948002172765687051376848444051246619124744522380498588388259261026916903281649006419380728857614325051570614224303074862485528169752196551579706779847083654348862484034525214915538000436911420864103035519959385742486237530208696798308789954916564450726944951501291698881165508495620681205793439134119861081266122306221150753731568687316206882285747114378392682561678086917049319265146880958945269128476121002104321957267638244978565649500174945729605460641508909589565513283605648587300916276064005564187814728549335034420516720470489327050804943907915584436514153056590277061142612315465440487670796760962963899522075301012395885273248678591540076159129358439670143114908096103790280201793901964102301349688181381903228789800606884605418900422371312178999895371032749255507838480177238363090907471369292935302814369108296191769835802195206983455577101369287686994671849224648391075122300529237165426438049240801908215158250232890720578259030721421300395150518427801072257121112270504379093907553140071793343848597703073210669574072175067900905564626152554491871690078377883780229633645580267203800531691636819447985763108331925103104823349924829119381366019840299355650490777783200735070884307940952443799628482241417257365237555236439516016860206909971565976090873048637176516049261075577875413275259452381673011204840284743016186834163907000858227248329144636611953727405252888665651206242937055536627785557605741918661911093714111092366646208097872112551403794750371777175817943257083787860700193144106600104815859974751566071163711416815262455962126454271342424858749788321491406695583427668069878668703966390423309759628590930611911087613014407413543598613001639707156305917934831978156927318909888064816279810148656977666279923264975157138433727548343642906572270540669409203676624034317418445527175474468756275806074005477738903086421376742124017969071661432237378579594670118223571473368604043907047527499813869313787873000606622567162560283411970164346922945965786284252227643850603068193458210924761245138931205881832201138897564217316660087917356281924999724794912635327505356673842403400527190466039347629936167045650057208130537264628584970721104403098291581107321922049274194510353797164730933849567811745437644458786431959181556671925529905282170184836595463734678486297834636624102950908956758850877853277322958806651998592605167396067359327974541721091867786732909902659711511115007339961143669752127280381073025422884559122638712809785434283475400969154151143236387623852901233067216506604890365194599702338348466752849381100093803507763340263600399972621291324863029638890494862492543356066613642252407952515138859373415925532598787696503371945662015938776159345602247011732394913813305312999328563709262785245823281309830067420233859060419046021890897599485186074292019205076238949857454891159692246828038451153103171993461341560425446730771539811571395133687116553514126145772827916205232391806181190796678419847990306501959999809665998795896522835899775545892689798680638249062976261162933729004774452621485683850303557643368226733927674264917671522038561348628065934483291408295768143302948299327097517681711049742801798386456970730677457224624616266598059429971393383191776301285695947375251041279824660620601352159610058951710504459324481810912803523366728911129367851709144108044392157148732715793121120617652221863132654621452281621971492132829515396548798895496098734633111325757351558107074391246338146356629853307675422364310137937531352499452992549770671709746718707919917757972590206069803548686734309268880888754606293097104813869616199219410510393345715021530414907202655149411709764348259730165281731452108904192917605563144830496053486915878734020973369453705808435826527177562879130065256746301011109706195492185854903920175393329713090868501997257616547162351903108131862918372452673391468984960832778366737044952578963868967912894109243732453307067930032133153466381007748882514901992572696257089542364602858716783656928951829104480659885764219440956964558503836510547633390356609776402708637657364983916239613527838218055104826792133760837745371399760006081880955500625934439041415775413004455845863998245305607526080056602355673181916259017610165438240637350164958532031464868872132770481672037633121275436262534291335913606383436034624859615311066953416029804615961121444734809272000914266351490674053354871938893806389123365315608656207495955290425684120180650367437719501071508272278340847613508688933482854749644887668554412322720118068257102662116635390477509617748440189353492122161495075944854957272993491293923356809566915000989524987087625768655889487526061799171658817018577306268463242453265097897670026633990771262588109856592127972489450556969214231220466400767377099020516656767006951393474995645007317783682481553394868699263653355186445047609190597473703216555884907556735482180898627677026336212657819233358459322424620719931786291045130148783569344177787495444836505592830731505041268710009040732075895623819743273338353924728688488764958861061879378016652737088551480469862052096133600385767654361522733807006855954443602962484844422551311292933880213262660753780854305705927242328021368641931270168364813544248236786963384631014645826226211088593697689456457147629434349179557125550910559336569068520375055735012792434393896451320240927869682676885650306914218625558691847699009592892671895028316129233410803294757056167367970160013770755256797960464037674975432906186356012479929145273868928850559959530961211924540167544455520033082198693762244839012212423911556563354144427323234730591150376442042730024907999568944775182053076831352503229301869604176087934105697251149340114046451080128855821669953968686705955690992940456843471997249168419475027025349696054961675459333973329342598463713993793163387917400605244650057038349885367058435847625335296903598972261038699470420964581554140542515126858224815815160100941577333617091769864055356182659812654356316672455971411129631156222039703763730556234226024546404211992694596488295222933214820612503658278916403109368052734637474849166635117573366832768763211826863056290431506616633832395557368079499212125037370127753394003130036896592832231607271624079218306832878567718472213677411270632495333507719936416734378884126888174927506190554843604335206148117828596160112946342042741725251598177354720037540814824221838098770972686533877072904610952944430582286310901528467494647946029529535107831267330332723329712001891472050362257436434637315508738021631668656224200317484509406037441384832881050372666705703581024688778453129309943510960916468487604572196284977985139125113285905174674865747848319877263099448806317801575052433283859956885418256037528340170660549572681034002716987150115551372428468762708633446743800489995162219928713109714302149400793131105362442843676745888421884035172911773605840361418581383396480792175350801722494490595354429702894288781926533042055377034493297922936781346601314934357136069856033451797548480229751785244800357123783715331737229840152432329215506782909438027739956210810514934614001481940157255875131066858055336451757196212939307666505335441547435732158230895019180393981100392860953161458501614637494806674397069502258765658624131435663382537497749564737656238242562141288964158543069331355006086312521289802931793027383747930057344651320091677277286790872038165519893291087851817945475137507134451260440411586432935886769525079096894907033656672148906539894570106138657195120082414851495848196203589551372201927472654024180239264481093767082538888162580303482887239172580724547945684484654091579239712618443078551004928663476925848059982322899149696455318251494021401709833352322347851167485961531625168666179009381811402014958269374515557464629738554254197290409874022873729760381492582378462413628834954490273395940154816999847375757177822180082645943183161036780808782390994445334295037380502854606858305507649544660957508490240035569150753830842519450753725225634827693949672470976486127492808375393922410102005647885184611855085308610117380765379947950274372397314668707628193621402120099959254804798874232036860674614026461000296980937610810579599490892911082765754489175927209108061184741617761291243437286359739440843893285667886254017041255656647067436425245047199814815841658894711306926139025569501479238732833466638079725318844301287843711697942905983886023392423099932855316507522116161383333166987172428646813085054607039077393716262874842522257275455893802951273394361660578897067218115777943044045527725279624380700847734064066844504493485683606363311478832655026640785979002391790876199110778974658394400770973744547902554284173910899635279029726741795862546151641961673259063883840782784571972375825290996439894306815434405930511017496622060719235237423685657268766508438215621899773551696390023935329887081238692395864557213864267459133512643890078412954617356808790352297310168582620091686539708435546687073779717336577677330588990748842799800066987571215997548376315738255462469094514060262379662444742020421018363996398704893818949933160070287950639979524156849910839286897717450142845689702371473000289915181621578806214839799207541978988553775933036874922480357279782401319352413078340021148213631263012192645981755899288758973653924504211248795417589698770395076869538597670394112803310163654706796646390886485103942237717838887928516697025707646742961298518871443345754483976960240438348229431242296984287609433909947375709516723665119393892799449109116021058789903149107287239942071558312752304966554069634736634310191579546302343515245939691404538013616963591595912214903204726972228401611415910772888281461099988086614699133951428271813447089328819019322632710904795103840268089101615938598686139811242005882111218853070092705474598919657080149904952423239958328011103159389035831542033670365206066772628309632627076261856712639168917554071352347845050426467284458370019926814774749137529257698042182954982207802060940534721031473183840628781088667090436998852353832193254685287980357188787590554678743960616078116784310875843517703301182212029149858673873491472722568700501113554242863628458255583766718068267837711209243136463468520525346032003370044417380954150727609426200134782968049257602293631245014285084876298677276019766384484569862906270177515295494309598854416393529992518029641700224017376157796268142424037526391291723873617645304204683483262756720079504212523990271490224880099845324396858839105191524856620452500247295011378609532644464671513738955995622951011187791854956223410310592669354732628520894961626350411188690954977153736562797438416717240442689667748327106379452364111218966933759313484768494603196799927882418955204065837316804401450253752723676231918967067292808833370408029027245453499776929860061796945633633997230651998395237211872983262661229938331302317149278315633622645605284317717932576002683160697953757940381026342455938795626480612373223674662952567462393647178548539673212823797292149979477465516411477087906337050280941133651359420622168625789737807170895385597997071817275677383792846654415162219950553139121453723211153216265965176187893046170145258300252260801089190466823692299642194094338125269102698382505429943815569544136126629329523769473570463957713950579350364561052178770479733301943575861143720544115139651832947778281706249796165259922874047466908276067163703622551092745767853527393386342423009862342577556514639198317023357127961627608521977668755080316400777097216674556645410140814936828909927236919677520736573661840250444429737581154595588234951502015848627858499554258904070102446565512129834318956157679416463137831711457987086278472935308787233558277392059411103601378113155957803497842854322897903944893695199166287053287833344639655874314531776566126624877989640863798534124687515293136754206668989996029722499024048555128253272560281532823830556188558321980160511545662458719274663850933894239912867433234791527950375911716956170057850567522840240188053632262375836291939924857905266607562607394205700616294935092905711249970703301867399991808274467586414929405388967024029566846578515731644577313030374588775966005457515743820693734474793780434972453265475681484343950533071764785322588788025054670562211643272224930038419510866534730515718300824009113374489741562776635488451146966247443106687925025686770401223182226964392516204813009025454394048760705290767779065958226207497802302032650198085372817099532772843474976005067969044693974915324051066310684326690477714624607439750164618074426739304758658575918699952378525361875355163666610479750468102833859677016217997410366493120156391714228209872619455655992736713773949294495102020216366495837691746091483607315675195923021825366756437538336662851601418262892341495220229383634280870377391324855074303111856550288890651210105340594317811976174607538505723241405076339877288627673563741277878010141214631520585650002540594631990849255886946588073190959403969594518496234243863037163443311304680182504404316448705091966617764368718792345104361992465805593243459144677871623889384904075581359659076212194546453729593488135695925766707725329125797883600361828456956156691556733339560113218482826706432133360572969975024867350867732760785587396997700916281703907066384351857623807677911190030418174497148236348734968066542770560977341422038225771523250328070105360052937561084254718474727480804769841228406637837675575381927561263698961742884655263787904482180720029195469006336076210954458800109439237528617953903171814287681633312141438614705424558373558696328563389168828512058940609170056677865418336233358274576865602401416744544845769715616161404734214886457550952915484897103040307292746688067491178674496211503063858032396030851507080886124617898423133334831029364196444586721415584821848534622230585730646771558160652870958323103954194029540299100079675674109249048167611224572060077032506902255770266680877711516853588406927890918955846776860172369191148318345849252144446378906554180119981631040994657972642566007517862459331472101652576557828540284247558199677300011870797321074706608863360266635316299869077442500383095367719906197326430531104305013808222359330793726693629382762235375789811731744838813674370319482068820613211897678985609421521622224893937411099956081489429172778588102790194231815035030806194702846989807831327596686858911846534018681036790398617137938680374396558009591175415601152807299018634999776048386814220317726456285221688137711524257702815140158581402667357650609968469273215776989511529148996614612310538238312194894870192224085846142482808654614454483538232233042820194517482594478037092645404385380394374433280678127129791980641952017723747819346629367171721860429794706831810947471135277309638919039832745908266244429554005170557633913654680912216378348964066793430672867269281659681837574879707261161574081767168172079595675952530380093647989681800262524826225517820197778590951336059582898818868328848244538509929290042980085240406011748287297322524132497869273775340929969334134833984315496022980323466621450835891296853717661778693622537272243618262191512168209930923420846929127826193071287658504164488577373439599515914559404254714951017487198059409584836629942682261391351545569689079470768458457150886643584527174861121215580260567853741927632329533054468690798264968935511615710457347040889705659756449846341548504283975888388125197996828387758551106244539748474169892306731985461826010793832984960698964568407391521060914284524590290038996613709693368006013750682049808197923640671023985437254963488719389832940441009195447909880183912599974626753696711111174819249255265549154132402525036014142027778702072146901503663931220200594734743527736964812250975171225698366847015654670202456216574518669363913882927174363739584422665586678980911176508791335928876141510706728186621459463773926714092719332854182068117104459092766046736739920195497265249996788650660633681449075914411257476114032176494869193143178685908340839800556867663226401344322079865314771079521822743243906154817862736964744569026349806488410490707094514070331417008235023694888067904393924947353700097654472582241827991306320104294334142443758398771942990041593973196914657807911875644216655368428534352486622854402079997061644158915835435127229185316352143622016625149954573038821520998916917862017993518329923282531394634537809047197487242529107097173994586743386486969481389907246364236556090793397789544150050318509875621881094737803059680189119705606974543353307649949879890835136846614987686474882129372317634128128103222425241186771609115414721407343566835804854497016272109904313635872750861982163645783127179879757813105173400705482503045669853276210297000434096502370469976326198679279439687292149605051557600491954442370735409596116375056284485160517761788789561747583948226794588338463505987265538619695856739712818917805424673029486334542099101930984323201372761775915262228268580590235604084986529849122326198980952755002333187006626371054128673377152155264274561876103525464342386650035122624043548494310029257139905501932772717564786923135175306411566031550221724419701390226157464349897330776559606159570366574214137595648507098048113383909314955400958332910080406145764653216489714126196173483542588032568953950282526246711279428382722488176784213090326471521482499457066299110320432828365289395781764539311692782516409460825312732614421756002829806343561199597335377836625632898671973602351124162533507442244522904221439817478635868479685699254778256727510017156828315933386709970010367936823141169587524575931602708369617245148474643679719067177279603954470354052296548298598772600233066306763025010987470296423916819685859941371652217080996050369566385638635397172623315859555422818265016409414945371484725397610438866484376565385556227153628560878893481506449865265452619468556474073284251788240039614264810769668052647639731467037375055707348992236122085231189680078781120568067679634224503011694648559183465577909153152838177904435658218078441640869139981126343569581725750890725258946154863020647793780657681444519415314509153620924931554068003901504224794217894824663241993792242193810791201197311130158758426861244271377820551793904476303055384043396517370817710448021703711641541493771843355874446522761512647268398257813655849040392398500090336363645504079860232906733661957597249462103885813818351188629622082769480804620131661659831921006939175420656434042182548379097076394775510819392194577774608818196358432300108526778906892766742024045509226733581168158871637773772901969312824781586021343546537322478077857340983553655484837732205190903084895063457325162604321239860765687186074956082024750957812991946361885067670933223787894475645991030952664103065275501532299196886988482672141911743519817193332999329834217562275237162378458812414903758304452517056480247970305613259875072235227672193580273575106429532129415894892077160216941257985569192871460129912819516387067153830876012474184559199172651064681171117920194895565298494712680670240019041298508949490058411635561352300725657398255292176577852137347301614110271953465563965884803904828403264628408892229373804801375757163797367378462267377380550968117074422315735278202127617763901030700863069279871987416711923796772752944566883289654334905744248343880741284286839735833540413974924403804868207890783162821181788092337307155993696559910486874037591377719672702083230482580949335351693391762808860973623050294970601785063940179303496531239388921734382035039026035213206735817068668983079900580177045988530037522655973305721949247256684784900912925909126147545079619521150720241873040291021363106919140879623389963354921333513863626146479608259411435976613712142059528938713876482769048279619387251337476248740079579563586030705938890927809766012839990672264014912246992968259659740659252649387952476547793101433327736468013666501566706730920414682736890677560967879222834505207236642878195148822650276665413763840617203586302077839355093360587439349031924608458211807340953575669020845348435352563787366409030505510606941087652334491810310199192711692077773826292076891665101747137796567121518359207996537605887810962022622433689174632661077363273899218017298999268397504279862894279128109414463466042163936198600460600532368139609480564896686781730577306272525249360980677389989576920075100544067081310548820528646999237293075647582645694890107276267632239686958175695075190372283967930069402627421080198430230162417219558650471024580754498230215561274469234823954808735909074454718295239889858812579474277407239558892241672452815882790946054150285455418733156456214079270225356944595270072459783899721743748821205194417427979836025635193155594205712939032852298096866382843872115821712736749692516453107488283346688518495777651359594166550536419152491586898132458428255448544585814347725110121467103420930201171941816355026075265454372548970649902402775675899344220384292678371152694076949712164422561389828154288460072717066728467842751982366231410021546722038222775934347059733745637073024003811684392629761697593562471270113165622765544428908718892777341491476743251954095539617932699877559711421940095246437451861502989492190831981319474844692129112785212712980093824625408905219676184898208641873263720095404073805617903492021899542474447034356266919323969288248568655015338776929194977532331077965915234222318805014742068323171147188850950498365847199471088321932056355930243852915217984046987720195889844787038946548823853199169243750187525682727415048217427997980367850649807224868449118921304599528690008470367620871616047735860893734853529514050648072990000896887861530876749190130716848032757896954646046856473576550188534934198386877202852342314429427716063253474155256601596030273053085615060953976854861249122675675052581819852193585417553428315489476310472209819270804961854739830650118621586298318366493661232112682555238436714367924748612276547926283385949403571644613041868960372357714404943812627542651138297036473421664026906668711221069366303969144010747113131904642857534466073212317020173151038886797762161305013425168179808605285164017621277665994452238700152105138629008223479705265485560824761427765853014647673685333235957801984778701014997858626195558069589390493555170051324424888276694866681058854948516812995512513724045126909082255367069239658479188166177235445078787774332347705508591294473680636238894980345009758234995957504394069598124724128203888859954407844950784294445013452699327330001426803152557599500612932660976580507065795242586293963853445903084143951100264638264453038136012086763374171414814838714713149288033761970349438643752193296279286233106437160304309015537238688943902509511504702238044591679074388220536560275494881310247896717481075542115333965621540961788614473103864423289955038235395916505103731987036426589445832932724132859458435510048111749533511974583353378957899438057373901868085574147506754793270170253184820229930438968564836943014844739898216175804469696232294690571117857271378045575047968155218551347867367230920472183953454513250491383285063910042487081648537501707874132287916639047293067694511053385063140428737201003267690274736354942228045726634516274818699756292221618885029909299105851779511576836928592710173215877706883176102128524717648005348718637463183400682188756434057609363156898966222046287157184281057746923669167587190004469314166558694488920593962001373411674263059766633342494507512682320613788893811516371780294026836292622642912863012096160889432991263840704606970976024944083933096831251503973423608828542377997395619257286272987952164511377538899479041827901162592445934925474011135255601220693850601785268707342122235882779970918315184841641615526619918941246633708613036003440398192709356449674584488371457804983719719084090042384086700477157843879544982878307427259052504648805111909948170970267028248820390090686248282854628803203164541649786971160237023992579675554910575209115585188380088549788024108802421399676571474569089173854137681975054953187890628024153104321841606814868352530444056877054776275796149499779411369596397774329645714118755111772342213555581065846484055134859592037175298480251180792235194387325807650033555254139196070272487004443088155275857326322682725023580799551617046701442318405562627293205027443490685372904850433445937847210126581549056622222474502029181432518516936948746067634670997566390543403339802578906374072765677025427279121553462709834457375833230910137053580957179597379691193653272665991175311500746782421292027326638299890318397915761580656648815597149909654519795879515037975664083133937484844733810490703612332097639582732186145255257428069183298525487172455683240111703416336038379029615113604717701236222865491935232575139973442934182405589584050728554369683857978936569963473220941346376302169064401079100570155669782255717869669837681682927640665777722078209846607738522248693615860109760364968795467040007830090208699378350327320139433698742796102203743115244564395850391167293469103944232239691119086968799949712165190956019388850764952118279816375244284927494962360305649479312653290314774705389946590083716844727042111760288661879591644665933219049272770039750505389090603613708892991729178038956193348814227118198373415089593278927171236148415759128399455842574369408263332888984990319702806485722674593124669561499072918393656008663920711396267972195178489838093644210009854003719739921666780172193073576776215678892738150382025651029432332582349183125844108924238547100580820235259463826038408691245709677489269161304459344251833388228230910113969504306817832934539175692305774717654759468551585225066576259510283598616798470325107202783646088991566179820556081803701572015415974917078272084788305724082038319429086013339277328278649944686158713770410824901327657725493917695602607367362960283008308971406353970147070510950248507909144932784288312434980957934483756921756730632637960186607104637506667652538091722083021966250306524096255274495051981499855859559619014034273616469904615394129617166710572211365281382052800287744601953964723146832113264632272771140188895866780080107900071254038430950049383984323249621446933197675950778937137751565711463252026217011325547972718743000150690089124404738773576159464656566662079305457961161978915910002565238265142121325636621502603598744508941379580795806938328254149954451922982749593853355869825051914799438485628533234499451671850175106924198187667685696126004996922006445027858227206266464745617646103585055413991572962324058630320196966947313934921607378725517100521941787399529074614083693525095695987236516135449639940054866286570201701646739220232909576851139979524588320159833681496635921087086868231728936840967121515752263676049746208567187392462156170560927825059885411818155899055732184452261708240972550100928489158597609346839780496677775970912401354007722921283846966314640389870059592900977902532687501233503108091831981194001777564855620895143090595853070003545248502708107097688110872166320379218872664792294775237943052860196569100037293068679931923391373710546386994865680404291217652660695661727054171053403811050457044146249610294177064375702604703723705104645208210697072615368096454234899860837100040637665265069527633621307839916781244963223610178349929559023868318088959701881687744318763161522058634597456246338979773760136210665236564462422864945219910614763968483250070281477540014906021889597559665406488535265001902120176329024025322924403144963768391040877673343355098664565079624451863863000388382011747307486011023659283619137658611685943981928607969983832528658291891202550514728080471536033097130561150878233482146694769666528226940848840673419037544908384327676374830284381541585883797750451264435669413820803463753076728492103367115107740806247848616651623531832302705685007592173203399873665946587273440372349527834268348922154981318040985263844686832515059235747049261191567504289807304800015493341434654790503718657088970990505241036953020751616477828225533309202768612569585806986406198678750472264045312591322605690563184885658752840221092656794011864441490429218045435877976540229845239976064496535606996749275747432251695400973374622853868212837672448288099729983538820093636504508941546471853245359954479787667596821766222792003725820681322949079139384258503196133673344257272849217554596203162145485373693140753636340724325214199167850455584866452078068895852660155225502422089716764721047525114418317030482334145644676781795789125885422510766722424924029511274643182071658429893672539141355771955308547487586839543279023713841745981880140125416351602748120863911020784989888623623544145008392989427626636930215757250282136024569267337330057221274618612440047130640484887053349834155365269897060121104956881393011020173578962322633540335225187004520153168432931793582859151783218600185991281159965384377795011555586442322451706839680890677692102924495650138222869620974913883954863329933077056235457009721251868945220875396573878366670916888779762816459793312488439678220432383229921860134833051373401996553070886836947025576897145621956101265049125499208291774041918926676931302484422897696213025203979501395591536461389941270491688534715821147550736687076140513338726296945901704577706627025705916284871439240611948319596027842153666848885962707305389846924602457086134390904532889535565551189515909344015958965950680784197269303288818631087372686222096091274944572202886749822699808638469792798504984101031731900214667090645560413799266514286885363622237114300009021541665182661652835773722046634975852174705048252567105012132831627466416787469705975529928960081582229585688715271972840499204227408813421537941401660859013770639716932764917682551706608953730995536494973855802776209336360303826274321230319544365717768323667591686222289955747820309361954897687283959142549680126603633832909569266370548951975919362548225040724035401736664188116683197338554838554274491979926390772579843171166786672636990775137987590156462054274028426153046956770263516874303823216667100452658577915243068299769362362427281623857585410319504607126626203784192585496466573936692982821742385024241321515208000537606847094326002432365086104207685340877651695545458125023000136276280093235706074692002676753820442417325609338856506533295966820213671984431256271513662254334770482980368853839283929010863459141683214705892872409641116532175171875150512217668961933009637706882305862559341995035278825770078935879340170669057529185319624073904370880935816570875531220680947186711890863884038647841504219524202074827684549766438992736911577758563363068445497616006195106302243016474457434989972233542221232738019589162232917881729738035204965023266509374785566990695199368028849961421754767091359643949747354780181927345392210308966581676307949528848712435281423909242815261736193837920936333553508084739489677299730071474587815645095133867854809738807271955741472939916471197640716409141698474756973238655955576376352595329573484119639486613928423574594188278315505215468113706310875129598613516819113671133928661131192513086851965637016128474251711259488202148529106098288815713170966494680209120859399754091271575235831851917084457153213493705616808420838811421116237400310243880135274785833030954746795776401868808099166723190024470529594674020432514907976153188330088203140566120360503017996263692721484155662264191767553549717569279507233029965216540440366350700263200947362842193540011975969189327060393849927045366182418130042934004656045455279150621382047027759111247287893454460920957601126334296560384696227277982902017461071847776480472280078379931777622401655556226624354499624543674161715286548647904898902864374682695508302429352777250885388259856867262273754141807746964587774667437838968611685211037844134754372789157539796634186326845509216674097962124589424998736651856860412383575281283983339186145063576348293008167153350245636271824640696987610224000553245628014985711654270226129889502419739787735871959666138769538708165110476906601658730940363994438653562848750316455909578280632223177928487996730206420713186294594031509635639329075205834442847898847320479622169333433141775346009620397614379582694214375372762596324289908371139614995047146841574303571349437109523574544169053499419545946072643690768938539456508040857154136452492259936411271930968075225991913929125474592066913716336026759784522588124538844598490807930033195889826166200222346267043117715598841029869933182770072834584853959161869205857073604410222914339443617648890006019342224794353887868968667366629463669934323893018625347094811419317644061538985467518721550813312521275882075911587305161293519624489359932297243910929041003794900919114999343622935726576472616274317349102191112748876569615586016444991680843621595194638683604551440948908990580631698129797810670132154007202632375739723566444135458825518919317209432065220593704858573863002475739923862857225221716063196593390214738104601966969641605612715578066295288680385804725837576605912948604759032834167885563033138946972997724669992258397754278425578522113069219029509715377555925810089574802063962682961388278085457535850658643093827072664584547099559525968924623555141826732957425691696120505569073968542001405155273487748089165759636398201157251052348996141336925469892530381705125120725184605207638968953259258927892446014874828405935926265636898714090307697999456686012115856939708941488339309779302719482781295527535465694402404551149253524028428239161432859560817703427680461531761025554263066505406488095336210879258666367643445185690614987351028860524527523802723828123101495310683332248150164420489584099750495418759354194360743004497313706596467665797132158346217363716741859601566814056131583108234905592396441758678297781603665533128043356271724241058185447567815918958670613170655829441541665120585707741733679257875459858653962773284057076593843881702266462788845192277869660200778983546812910336532378372060081823147167226644124590421036530184096424234098682232310118109605810217701869233306815052582329962521925984785983815715862441976889519378664710360335520754081987000668702985685837537100153363658054883050427916008865633489796860182223489970678658055639541311998107097814142178923687942347080384208225404185282622363195254109451439042790881173722432564185895924801599987395229744783664919376547414713524283978651881142400211198878179761575405788446716967223195477972171334043615831445482525184947226715399780825579335143385604540518228736585041610730696852124446860398454055634069709967329593694331439562888595500117601016921502447413304471302427861533732587226481263230149690058790132901099844856592371954542519760214956437702418913891582333433279775573423442393719747099379988968775822673390720323275175750848440932827369988944141672886485264694886799079356939045167600133678935134885385253472734595495352710583161132086097865249199473108286014555539357622965224292152619426990394997842392830937812093208222822695725040779240162573533639959586759727776657053772015964768178215726535086091130764602468565160480710648135251346256212579776095585901802107038449202060226045847675642996601948808896708715983420361458298129998009134454354172827225714830407545337335964584012333749059203070691113107737159327719964168078236257672767391490163054709606792423458356070715190946344319888676872347245142726704068283567861645099370678332563260289252204687177369090539423641721489436267842433465163653812340152888811344179055116859415828680138850547433088031440595254612216982979979608889660807789758128595004662812804178431896888946418927682792219227626716736541953966590106824479635608893030171029776446587349649444953601085384487416333067433768399722714115005483252983309643205550301956282221622708758723255671596323642016397020085757388435446925175143253960470043982230038766727192539130102497291144140505330357873368050912988545662275559643821209550639931991423790508997429148034351629312371232069195854042326878097430711066659474922560372162826886185664065377797306874901893820093781669578844745357960035472467512462222181606228742721117897517560632565924587936192792634308037718620458106026932965141334607653156475472240709783842710076633441318065081106295332442197294799716789755829038255914156826874687263006856238390193462527722692720531818050613698743574626606407271395906150929718121514273474070882105174036775515600709340567275284393684264830901555535039639695348723564746902885625704275688057574706272084629832999165872675761492261413316853919361632035172106708469482114915285761233870217466819229419266824990778671056832816717068333871809151849074669921722765953856028150941204049584791562735355376750091270000085107785062249039985182568996508532031081151471115406900804170986677309265538599793986743298062508058601341145885951748012796422841088506379596423665624499327128978032963700653942536622957330896502089209881372302112000793474919577002162926425600137283254224859510799198598912332354228270278882757470494065306434631786033699627356988344043940356845075950975329480034627075936405771839116519796605296958237141309296587595935732946886381911712066358858910983783253380655271417963080172687183163735860304018883948021337633413246942128519666846885300481148176681981694780584773963140323439603622315289283198201470518361896322286718011660970034643076804924811957165095424881657600165187530800645970312410163207788019751702137518728022730346789848960749547629049848111049821563025328794643481341137859886231040851516333497149735519808420470448995324284271370815652371280438861261427953833462475634803632135290374655307555908177367154238748601721111289239887273050288374232986304442817276749837639545163391974885277910850625701022015989337546648210044183922516956318840105102181136957177803089216137004627493625298558471075824336498499224840513523575737536054220180840176455757330107682917953541981045168962679672423970111147389466101164070340661382953706788635243517677459670993048085565468466852336880410597330871474330930796673467987353530195847460763603448309958265891096493865719635428408376556925611380928847884758955507350608044631616448761528729962492878570242085313417564693542434561101150900653086502415941773538624252685305149533739695771537392332157443893607785172547856618150049232746740234148067518671344859829574357215682676808148051592662791663798337070121838039177262595463660049624761337615132557910558983094394935337740156341443445834334186163048001543114490280597475329981490756431773602795643805764062135337369543499182886638760939584482782478396587471972601346995974991928962069722274607041416345734631450154245557388059644865219139221633842215786481950920733900227380755936842789173052038214391990341713399104108487117457309332513278980036303857708407669717709763677615400478583843151138649504329953965636370619350757379497325175218224874811373323482795614812838034822479951057819977803116828799748290510001619330441344977177336713164552877402967467745848405594686298157516495487091136073306978999313170932097219067414018234066576246279647305742196332148824792119939425223913632307107098432600907223191801526170772080118508070100817623922915137627988505456791395905091367220663972556542638437010548422447097023072777141697851958136503344620713436252785516357921145930201911826643621110725751370010123521452329215188256470991669233313841474292461459607557018419940559511328646090483136567978702820363640661795721216240609590520779681105477246400468252975214601943625958932351121989639796033912574035639235800861795161835166646950848739621865315669512075144389000419820769062106168206427552697885314333127650616080838719999302046505694655445228710422866323819384191984553117082700649570345335201258396621533890475010058313869117830039115216963496478642909204883654373705101256568020573326230718712326092933826527929234106140914671421972382643907997452543907991872463536140406817722481507815547700565029551296745910594137961509541183180223662829343617184863003635170544439395266580444015487374811037454287593368782911867796846622866698821758081743508364113352871832629219453308518835539773070584436362753596278161524805509423459979231269760506564492682615736141365471148334705772890989772573653557530079524443754761119107176302926233344307193713392007784655486134256558656083894073228990836775138917359924779560588588064155348915925144027189624248441305554076118375328813829844154572236829470597923181348050577504412546718515128065853647625867044267648627782265687223064755460764829045179720616756019778545054011096518589375320757546902284593858776365172635816145037297975662415344457660674968525301885143448649898643904787944201025307829077936079729907286179268774602845096088382075607689962602708266817514230252440695348110521372872381285842361425380723120854206151314963676113328561310882003644526889064446415524370657209801101066974590158329397999115773120113464979639522248959314267922390571532623157875688286210158079417990850308347201795971520342530701296220009051045702021077934092959848402412727854763358247765329555136540510784657433487418816797113664769906445843639462334289102456352434064300956497338425453667073048611091674150930012266554759150299362124261330015310029384877232530630634032622349348356696851299635790810411739911270543318614838384096117842516387352554079573896940950969714958093303844234432663958255102284639488476094897493258535698791329095873607734292126091775929095698880357284110129428776742021893295330510183348192095129248998590331826548457074764260598421077892441158157636935073278478993571497171409349819615406692720276199112102814093187065638692598334784896512260734573397784036269217461907439148360530623802164927518475331801023711941666576387649957639465950916415725095250915129396199508663024520133880330966453476711867423990679743033777011398081185545954567458996624312550845759637631962331281071086209572773996924558015787853767948840406351373788711612962762911881047638509593889500533784262808498388090610150467188933686896102399948726972621133452850778412764674378016719827717106346554151328486171045426934510769625911446351712919450657947415891747396210398997599320586519978085610335381362878648930609844689884440216905372850965162187026905670457012278685862674797980325519878020018432374115886246790946776448655451963254649673109194422022768591027607579108954630326270228542791373463490622569354692732162809889014188515557588082325374481922847033744911270565551919185994304376242927608288928914803326976672010290474233981080686907730167856386520817508317940151693539378665808571737288676560580298498182199258652390231541035134948348392301920222301713955119536551484975907459875543962180945163842725018933371010046711584393904447587925839144043369543909381001307786872418120004605938810591924115069339097909707776189926362724463361978855025450298843193085796277869343074780423029389593544391302414651218988357956952030479684797569448067136251907405542791034492473486007676049526915228855629368145507566638742693054430328783032832935098217159812511175450064701807300890183415191082470513561124460689606076965506737903699454445707494261255441806055794500898002314807546936975404259361022472689378060107838314647924590406045322428751548439912099369930155401021226204973144943540506016538461448970765044250863205916406524766853866763192528291912228881832035588467455851269099299838920492636046443403886815023159785505173172162606659925057555822909383745505944052207936755055406100492803987679130920987938246483176625846576929674984735215235018546772507805040712047467810255524184389581647847692131483685312568486142170725477657123509764062297552776616371882523647905267148132900469901002296810136550239728874140184942437251515714316937878548831375401759636414225033366745957631622233309481076307019458477992620489356480442473077186083307550587682200298357014534167325838963769628261430645387043201420427480527463958573355266256357939989562484391881189572527519016470796062481943086308602684078679109785503050121130430138010301740047062951719987968472242400774142197190315799984091461977136116315959000002138446944427704297973386477258373681339433783277963275506148395876825407434507290561431426836726476088341807647066015277642021755898313998776413086527279273534316324557063811156143987474460308897071312271941758053868320929468708094537365694222654540992940480767685786911136159747986137989599393705902368082996881748279105992343061933463749206870239822339877578928760687231551839279477414785270525772266774596291363235404123041851747782115160702973054223099164984543743369973532049729118793341899318898707180447541155241156207315250553264568273804831302375878675111066396390732230060938031570731306509073584049145195538289909042364261708621135634510064840441776659090564629190735852693521708713637302326853731293931264554518957088326133633479807955930439114808230630266389919091863464192883535649916859673102727756527368818579306540614934217264144954262382800034495749483646294216737837558045597269020638607939126560878898593370740491533152291324137861445319255506323082306651480461289489141999337188275090377936667578277699692055229561664694271250188326763488516674074571569400292225065969744898604870127519956943657372242644529596589721589785306385936503295626791100711432520468430966869657606408010628506362886798995699275970907784316401102160121763664028191704768503567764724411565939537608327497960542597470534851664374346069101672519435320440370588604620045794932238739015780751576482849163667524995731859016907392918267743283868169381182868240183168150402855174462103247731070242430266802249868485167591275325476931576526662048559439191166432472080799490113949083624959420415217532744350218790180317301247913470842141559779333107033385118416139157761851900420119780342950652834206286035821203677760317942546731585000287373821525484693551577455688162581721472029221247153684135472556298892736547449709353542795234246564348356308847277089577192609868323969728656697850372165467558933383394546415613601861376137982646721716190393847861228894655505161871395385027707509102474828635574924117694744783415656692476388939226181657309306580035382215166901175625432274318979854446754101656857210437583407426196451104471894967414605756164740507689856031451428526926824904122357723859273911633026372160141809448838685548696437388245224405659234239189376867887013026876036645219207527849184320370876742810942816683004745901238284957235237591763958949316864728029493776991037800188147877265403797220083361090247362425887212786363262097036535299405176175390710185971471551739844285352099356341432618227640349068053560134989124615344184217709055238709894325326968831132786705619438055809138162415068618614279623308395614852314484283901763971852796924980574221189077155012709319452729006620002533846964192374108854452356466371155893687969971808584255522435650416578143630246630611164737054439285115941257770239100307457897825929132999768750510208274968776834964797128240192493825688076916170930668240785395898814184439027565507226798021189154161651586385951037279259510364613279365317713134561592126561511342715991058176082116398950714982188584371319337957511371172926836232369032692427668538861315430278445824823118418918644346304401260365855600722385489868120153864198464377960049386832458937977684763533049957528960294718630296251294066017938226920803202058750338743410875215208895630522326540579785065388402964174374042960959581098696024129253524867311149525109812734784384563055331372174560751510393641120952021749955522567455724240045372507517139349388088270492990315229924493826754931501092264211296078659968895064461486052654083381779605305595359060284997670638966765996912451515083019946307146890292261346777432707052689257346520548895442495272471666671228985902876803060861338195835440801609286220089566085129188614866887596043008805610945979092256855426848712910011368007513596963815092121186497531592688091055536357646829961629324610663406458671583604016036778039631067179424317400115290370482548495517982146205325951423461422979958628491608401334818660737389428874673169404356544513121673319641250497088284301594113242587246232492327428886460603657792651898709171898319782116982712234840779318301053030258126670901407398446734284706810595601763982713914960391661827438487372217834117700891742809105750586879629996237455776138293143125252369082768196480135119189446073294879050688431393040146011715160569896653859988076739132976520659108221548001502350511687587352575183336910213317199582160549609217269259801182377386068494088771476584627212012917824783918412859809273724058129211246822943929509203379070181325479976593164061926327733390371874234121039781861929159043013317494439110624487663826258814434223699189795235549174696409981797864702517716406418188436011539189654505250439182477307328458726426473904783242602963859195025650718283786944211646997001945564377823934383512533777375406378525230897278368283591609908397468836640689190573270302941978581097478221164544112725775244742293203314258245921940288757240733200564239733810716896041756095284414334957265602759276348360230342757000219347556449669201453214363220864147120654204248795223863735355869643147757333225691853811597490725915561760467345492167641563141426994477609834303541715977613473529503700513689006242073834798963066862704946400078011856862128161682506992673432206916549933927381454045190817564748107650971932899003884363067439608919228091345388408647259810903204399432252207397586583842019239557888433064183194384922879095609591638290892091166482269350294185388234841903580579496643371571730606115813167112731471593161181693010458977901929068682730545083209338426964488686547220465084744448993363162894305338868398459280651721348852255303300077792348463870973389983419019733313120325946083147765785007604685669372879597253161874902087360901801668908745960902597800984206609083543169361912652398201122314812427097474513946832661090790467092958557891641740809015380694530033901275858102548190065416882730162843161785091616693602099966361793197389683425699380377998726525837829015427117743152289262106462450763589366216607922953218471653144824844589888138695949901756668487008520784353246111235315092276062979783827569477426510799000858329514884931936479046085568374529205319382086760970669960655836872072839280125986602051508074102723374496911904252024372301992687329815570357390135828945784419193850380296819700180294796966166571140798037028407773301018283533060074800972802132876029416068040642725072590980941388365349291816168880846865478418478585669173070601995177758438201915722949599670339351459667471886005082193611862836493713241539171248149052288637182643056471455644889830763935280907165084389182752931146611264677909176494685402688497019073867613160959097696720685745067579314262143565681139449443099267457987922361923613120718717745337644092985254776547110653171411218350131895454051415408326940819238230192016658952617489771079560055369021113113396843365967022933839723433908882205518323219677803933179817588154936649207590273507403490657668451297681995730200913586991387513614129591601608551005778649215064004315978839934784714637456903535979824463719037070383315048513494918542901064142560399459833375935671623959727399460743565939378228511884331268621537292562836763682674673758883438405948059151970730564473849456959547947150546501488866628522985184246843124313280389454141263868165085312447386518244138442547060246656496479062378812083358898259492360492227019128303516189152484822104625730393029352139035051890292105457017952961194048126558266099476547659176941377847076604538021058101422764430472400403106100357993871289462543792049640041485821019563077364132397033087394956591598242699521871582818524915503931748196280698250139878833261954344229721717400735851039719887732389644405556457744330024448609096390535577988195459396105933638286832869011556449081379591167833603537875217974435519651454470438511194447531547435018476731707325084850114058992020070321694710992738878666190427254811362980015379501636976087677828145678325568307594888276237531177810631251169505348171893589797143291759230737626771067919134561156364569971717769396216254200836335210913333874131759128766344725546900368394186733101524514624129150221660026696238830424395197020909124122763850058252681390017040745967954704753144429539894749651478984035458060999832098198663291309573646677732648754851697854315563947836826711222466374214218489064949618205394606484805153466269025137046155149446491179198871717684582309300395661685208930051618557421078695359952752980518199687598230614917877017754933336036960893514549441895214207387521804447099629979455477357382839983725414403128764061694453298065900684444214291327187541291610405784249174519574374268803829356202031600461701242296488851695730164567568958602987210436377163736562911455177872172659126061956216820054165081269389493558405968225157776914184408270231475022428724838864514409171990736740341821181054319041348687723221746450759551846151733474770199582018798187948420328532657345593047962730720640557160950833654390745310850317528323819105582412445092042664038413366067671671650507438697254433975327147179628972062165478198253732863529223693398100101144745434107881176960366871077562502203809193554714880650880464031258889618787268923904496885375084595215103702420339434937910968657582507650454565862389208204223388448711432048599257206880833759592182686614768178180796983917445734163149762586955766558845213413705531054594496189477497006933951315343436914721968063361342364018290410073851193117316271162894429843871537051839809384364836803707476926685941774273042545717107291429408927888630266635474260065724178114611170402324478057543396479637521824586190285529378784310424889263578867066012362026179089834309575791931617818445325595625846694388116836319996756286265904274521148393812933298174883843531199273743539009549272571667421231332656231697491081843058939921683888814421089825025609790293597243232790673454233978491702936379790377929733098596490089058278826504859379059041725565462932874308572863000175583234068144717602428581317486144277865346184515679737294601530888023261580622434800474398182529714692865315216288535669203040527071528790022279611457834837677138998368954395819116685482501958720678928410901375801296663111544815540826009468548097984063209159777051528308915435594731891644860715054515315156582645395423611195535203835088648875442785225432305679627941517992512498140378839955919756725719230194065766605620999254885008127453689380292009550870604681014102042016988021064493903280014147684587944125788238215010359880430082395467268731133376886709729060891730596253626445781882469838047851105770509187771533945585602322235183963006536724861713879211096841655295798234083513272113747398444199294728703968435862820941156042354174302028472534806519395899507381309627081651415645240118323789643766803485775775405770150213235287175985923090637231378597414834445099086866173446012179830687402709824663150193674097534432953016135701205102751549209470527713937103000909227288027208007948994266354451249702396307912290460233674806706748076345577341555963074976239150441766991287039580334684401070774682508672924238141269771539257580756762182578641899181966933294012402290635450587165951293642969061574598846801961930610632527332828563310467028147409464501460692564451744862291889205288591944925673636084678105937327011884020255627732666924426536730648628977120087182975268205960467311584302882275626859250380861645431427788215449624826724366452621199522284316475164054857705433621989286275917865927925782466992770422934197200882405253610888797217470910098394335346562882127355081916770130249958899057616880626784535729039244221485100587660743832398025005240273419610732625584966408044197104128733713596052413972689598305999139180706266240948712093420487280253223652376669309765366847443230122987641436591462847449814747287086577086987092330064847910116242501358434822830470645695603271595810904681663118867840172695287250695129566995800072986344277934383590938815732704157611214967544424615499047881024297570690351852864957526332305053944927031474424582364072118302980425626237528015788538119617772100379678346091582274641647444135066911548461785571585413394837946761445357318711297472505096577819563802501256800332860164393365956416019888946083413636829563913333149382754142885224907612563319971749932144160382141757189472304557521836371764035147184431459932288145335995058600787793832846573207925348525326141837533682311124125730396587343377815455452214722762061402705824551067213046716193162012455425946832199023464210889991238450572101607570529700262333182758315536228367014890907598598227365924013351932940631215242733565417048464731831608181229659360999524844388435673580484373054653552973641200076405992038168813438988214978129989865235742527630585859799930253352399632128949913201192914311225213827001343666416837524009941162643036096834360482825552336203036457496147352226559612304830612700422963465311101702114621108599923782279810971403150283355533958038831754773104015923985794334368452090080274286104234396623559191213784073516139705416519603369059562987398513761408914185426944607125481958883985007153262805999253806896534700477334989360499589950882973755721115788366806767609991183541027422848373675796638123793741979466120885221150480324366512883717635113601148735391651984579711048622423908176086466180826159425097902571909447498463818741137068081864219940758919766247615167679400805872583536401540571394901440372082612857800948628613819625392289788703227111156644301227299561972241670635755801071381317621995700114351309120897810147003157248769174447607944367947688356264614576545071387720390664289130328177074964392025026809839140160684907375834835290322033151565106288348031573209089234681420438714244989939088688576069420122256106545235133847023093596094168583999880113832688248618955363951003948051367810170383276451323977296893351788302774228162279229508235281054668892726112146916049562772580542373264777982499861955857066122152513074228471127636059871046584049028177453499556072822813105612587791660812030615767787583034551952793718206448225390085273582581789367669826849496696226813015215952302082237529713592376639466253818779472740678690767923321769802466994220680933356832028277350679210438612524233625235122879839554229437479974429423066480959841253729229655438766514029205381522073125711651425912815435765601925680155253309782232997981424553045455160761338898602564660622353830685832516486937160147042977451802296997591000620457497953989246765286902696578858972788801178163031722564001907785492828578348635266924892113190465498434357269996614211581081898213652972230323202697197236424124563607789796346671165500541085433134178379413451452451984383881223464798361620196954418159555862262610514656439856790350268747565855804007858165626044610028318346259297319242150521161684817317865642092669622939156445247337519784101861264399626993919536756226938133415951954043583611186415878430177972587596268046638166835686195525645993813253847036994809287902341953664703836971800937164634276505405934394889897728032527138822534414792088610995654880183889427556478616338708392963243491016548225036982598050643410957968649323802845782258217559964180410436347590151191415360713027421042997251388134816723186444422503171292515189402247517976477829627125154165085248955764596600677750383302974246973516850438449411408935577871398839922500978684493154637104882797447773739150048479403182607628652394090696954653972144558906391512964560577126903187399634802015602287342580209005515113975914169871983031495787893805648110674381565607493161160750006204958563335309582574681721551362127957107119428012507378041713391942612082333437713443308335842402546899077074971918555318688844341690399433951964909924069831620730984521713278730866352339057568416810951663896573190118395310720835806808274454253241426354615727104869528688910361419335287844590389318534747662895732449834231931319731444254604432113177692761428807474386464330655397330257482517838229063557571454256479473295236829057016962925822689455484445438725993936510500143552990837998081852128359235457731837669107614993825017642314186509611303610535408594210862770045822970650085407346898158696249701422794828267174889760771570546789135797066475065976646867569865845204954677403938640294662533636453165176178302865928022774090893858314334176737258367275038146941301575910833992231150419334208075970422081451912328090687902036028731882594011146286696864096139722002484727830432613421578046592284758984173321769324162397786011731935481286479244055991575481289462896076043846745213343053580041532712783437426387103210705424036119632158905245310113914193731506989761623862824080699655601631011737671867088768403503587053607499046553639967229915046860103933142416448056321573881341019978416231111028313410199845421783443227998585959034748411017795638286993084864066197933442944058956822736322273781282238443737017452547357591133230026854246975306574877296002538903397835592111529908158313594385601129069860862711545850080209120696156690832828873480700257160161521931340917734345124631590963621226086876217157059333288378843804513246146474180787896362629035163932065812517034772860750188078023673525542729014232394451151011487521897794513970769833850624980268206540845267916050313105700518778292124294177952963186585991091173425426089927672964073646560805398012698277779990919101329958772178768326606382579176107345241376320776486047908871774443384494129869152429531071295405550110230178554984133232831249177638605676907646966752793721638170268053118558953042863121655401797336435559136167648066514402473316570886058912489092400638945385718187404580403190464295160914841610437272106514649213416831051177320310653624150899947522060737158429036433374119123469095722233938586200835585499332945215117614913928896151110015430396406426554414992043296952936459795286292286239634928503241016516920146557140998255036144106206715751789636231014123210823558124594887630003445392762948724486824686608967644524171567013023752408093724633384804484810853615129187083746736185362980428767929083169367189329864229598384780372754462067243814479676812688027887267075241626178725351264284031132076582946108821950181657431799096220613950707984920384683801058874583102505790585881334209308738210352917116220451887809650187588025166277828463014867984381993199168166172103704244288869612254195933001814141398727538469344723412595266987677421328586424198125625366166096448307749711249037779533011252789821026131045775148983854568889625720501063249801576454196486071998300294402928164176185892629979520137618495915859898097056071216110930335597699567021412672911428785354142787627954936835554028411678144552951200416498223003025887758669556727172809438676502816841710485549190135028216001523195785592664804688308336842147295388743091447645302769308843618367492400935130038600209197494599380224148650859040818020551368844385178048597983797251888943971423368080456011641222510486388270497349261450830122729637260402827872323681144599273083067639517911443290885628023040131223646071296268133195128689087291061383857607441708025879802176266090231924772399431370263969299718196251391111903888887036330805297134040531205241032525915923985760788612919981944300125873407609383839952540618516960517040395138629767368892379032970897725537899769299951816469102952147058362653622626678272598503777529490491493649286020417011740623068992649595999456505787956572650952565456336002189278138313540279881013434133124695191456655609619535238751179379829924836677397454209107530867889571221324336562627196301410663460228356687105335459770841147781852975393438933237925490070150007691503693762333874581827697817314125116932424443615984617571364788442419835978951312452254056040243881880108498589365367804445235605021285118641674560081787795120472382142151071922388374988231870781702171311016329501238055884449076959327125084285289627883483126440221008458505272927812856176848185046456046801388029053891135577176136973877166765643607786236937778148810205460939436236283128350265246956096516144477192199037437911604246650936681091224507104842632138901110330571844901857489898572859428478492137729347947083417464702879952916342327542900530298984167623383622940907204670168946248863991166172356767995873424337900525824328863083393207616139412621114832073645150253031886082018923894124049647675283487347216391325467815107230076106971471785527221455493854162926337066639086844536731860209639823880672996235265660072542956225282554856142659325728909292527705743509596445200897498991583185162942353516793806227758231856750495448657804539723508127000290164102034247554953972696832217962722354363782006552507986795107069645966789437582121804006365786626671900014764789183762319864521342093775477902737326877722766304709130780224235085544983780516775765613111960417774406738595807860907074990584384227034424789523461824977736613848451464501896405726749615471319842685937188890285584953363861452268065371617006476143334042014227924486708396321814079350388066644970804311259705268574420803134187984289598007936147575379550185596015026302846955353837642941045242896757886256061112371717006709606891664880143387560324004032072312816021268546024465697266540319088880124424212588345034024077178608780889862543229975644872392923591850528513196576560256967194480941579433236212419841121191166923111889750234475425095095414701573313429168310919862569814543014700049335426851513157190064283642074477103445041895262715063781347377824884183386089050696344763244990355143621846698215703448443615598168979491092088878380287600187256200486663260861413924684183944173146209089412325064566957419609239183348202759373240455846551578749930713605345555730026752079871820102171109257605326665636313161050780968370709135867130482917795180440214122185981305804740188666240172151655950338812804631949350653978545162138690781752456618700742141050382315929611789748262214345797265268197899604469078042417639125950933207319389398009657974393617357100046953703441678206906373574548706297121421794938427650832076547220683066186426303159965899834813324319565790908626564796523420657579684999211501319858743340410011969466581206088369307409768929091124670591811526370957449694766521413018972686628566518310019483183271323059382201922022526001203570809166832583167119905428162687988668748642558665034662181753763760501556458133967419507825774120977475530921001256893324065070138862997199831664608253607571103101849479021311937537669747897802589518442492121060986293380261650647506904309945769240243202587608050519720237637681423714644294813099161171557393374887498529913456265826872963542053499850026259813301919636597255807638462439285552311280400257949755901390571420119325043803175858001556397974971657422566659282189505397893815929230664368596658097338674992016927709876434594697770678964706918034616572923153367286952638710108324056092811907569422825166807379338964370585773410959309971278132153267779032243722001999948616715529872475207139986215828558552013361664910876390984242794696011758856601871542090030224718823847192928983263198476855948255400587169536449292949575588277427010418220915611363310634433110525133144113508212762649184858166669364567531846839919193880881689288636956014589664758715303675665054812015685711107798176333859870752149430045451815548712950546934303039061590197671701329113437734721714817271322607693684053104282203896062250782992637050404637535617672760057590324570680324377348257752508343007091358024037096509477149035507699572946737156483602185493890417404052315471875495777777879924028705565042072899477585506556849696966831273216603887332911618649547275066749513303750256906339466691883928889919518558042161742649454556449914197651797961349281861701161957131345616941150095010161819495332885262126511374556213768075707272538322798690643401850882435690703120848146823547674180285962155546640634482864545756934331732962526203764155008046770970807102316826792557955370675594849339919138887944781324862493390164037406401940985488396983478948584147422235045593812953116053723153269300175929274985379905198058646422651587551317379340456146948447422395952358262275977421722134897899629222702803878069969396118034643926216743267458975290301669496585282638326149828354638312674268985257550659910168708390939542404441579069902477359903937294102700137483041601801885567350647324391822314109715869195782606101114477838074427427486334240061384520628509736039843171812688994325207968924056883113869190213519962588845181439757381964527532492769588184908681130099420160112592221106635754553271447201186763333314401851558865836720694687744839795408581179280737229859725978682814308391773075997979136012105109223044818746406815841562772297746384497563020415712305176737302875916278711428248767665917543848315107490453246303212195858651870312285946069251620397166075626702331811284613744024270261552806664994364885191665552263901824014953296424111010152805059297815106631143097682197786858867318971644390451899548020385874972642854220218664635100735388788943270468560288144038418278401819631005036702064332291074116397781347729238283634328442791763011687050214415485932597535268435764879721079266992470285050618207836396015923662564940608540156335029837581117235385772330360360080757143168355544066770725394003582751058565398548337449531730850642216547309384305508482011066113642141208731073792979042905175766352090138586329554375528295850010798165388405117600920659888152399210118411960256846399074730212966649718498843981066539775240694419763504731509917651273833183206722032780394934339332360355288011126721938245659398642266177510481238743293015386539313453391785291251075609070813390352054982190967750278168240254361192526193450142658755314723908831631915021223599437378809270123751895198931057786323358661305041836225787868621624707753283142831223605827805548855735632809858951546365998580240419469908777792523583430135342884077267386986229701219373406284166642639272082881489031898012204876968657729619462696917312626522676259861255453322811776708882267099624810042772605882741146114569707335952556026787351463111672129981554224696078896491902656405768091087399819868561873949355458102230921391001309318746198250305118969583325824381397840308353281163141633647200623394023700767798729695831304266714433837837161998545810645646511961917038890057352568298736705807009400727818365928919505676403772594981961949558089122213928622191682413382670561246213429233186654185996217777216555601618637163250820231475164220116997766960279501947270959626721504432854521916862473015674631880987457591292251560813112698033696973026319968722826325693514737121960139476956621929526993505097297412528798868902611631977958506510118641593337818141446898323668448997663357647033095543833099847670358335486282644348785174439325699408677072062695630054919425597372979282302991763681447950660832129067980822581902905819272859034643636226236476947708998616183098079805745392566378771303705138102675741012589454795201387186394439820780859784009930093328782276071644289381982961200601129293284312941265588028409106434560902498737062985284947387323261874958324533999192393645755146628292933401969635429261141112729672764659139056027558899717375231138720398030922914680826183077513881203522516777232672447348998599160591976032630522159441439356567069400329795020931669941869705018065600209393456773056601308246967744567447141189911662173722417033963780850620387544248476987982015730375460778103601894673280637113372863687139328053076316555657969320922142344715531119532730609822292463459492275674336530805899356753298716995335058462074464506928871576777006760351297938004062221176908648169585058570086319831093062437013767855673168518677792339338539765177995781042283376928950362229083980060519139286030224454711993692353755313624966962561570247275812225147144165699097346367587452631400252828055342468787788519582526250475638796051245925221033559117399174916703154246960103351794967465714475230807367815518075997466134249285944191387436439149358810545550727855308493068819907371141172073184625223639311042894376033868630043924591281928261751577475391741051737236486204640392534288304145817315217057204460455694301317038124436494741497068605322789026095269794213504717497137417931789389191737263968262590968352958030068965592880546999891477494231576393775431237128968575060035138541959331487881036388717266938842978399261160173104289794975416709851324560143269618355248667819483373068988186870829951416746816966678498770183465168425793534549675724322316251667104913156574442305272613837176983703632866647439411471960089300586823009710727817658543183698968096179423920288917807640769491244027608512733172957511654494777273120116149516076339510253239400109313341926135982485927605288203232123477510153741911161768292785225807086331379645388685456094029347657081541982521023908722335270248813142421759138433080971899009110401857411939924647165108190433914682517948606368871951599993414796788413858848419094888284008417785750454881504137931464731612274427609793012970157355293274251736373250870994582451020191290848563728475659751434061116734234082686267826031915861748809343556856334278586636559417451501623985803390869367917991166252404549058313452842744425603279958791983805278828243846121468274533082398564355762698451446402777931103459535282967496441205932798176074195518090097428354119581604602714653076715848996399108596741914227064020311336006849634001560650025695139327961677359191311587955491903209936947942613027622210476311181492490097837733103884506509069815686643106090112006842850762641908895264967030569838098427521993127003123890710853549874847235715493148426707203785437670115950401223379351069210564773361136532619644210925720703112762148720612158119941726515773526048300803328195352193988114829504777074072001294620517329245352354184535371886096853060760098216588406965948700071417456009143030944507267168997921170808336241342106955881024955130287210698115500918160551024205900958342597630527778573169382662073565066168686916985183103097712780778053476180519598319673821761563096730874067939581015683423704051606882345244304298806439418351639093963265331905738612646508095456277664468347068483270913706361125778282300655754040954345324582670136715269554362496919426001420881583946777218303586702973538908345464823160458839233545078858164845960357784937360231352310641789415282160031879099491965546533202161670595099986673166106771249888684864241251771583429155178261724992521364482380827286526556361054189477913967422900677198935028315594350439307094905809461285550950540823090510412073172003925670491829365234546006146423760873561667782988365968519804437098975232367318173123061953905808221649291105387038811441264350009331541775876418171182859565602077954122072202348717806480453517365653248341241627463722461194266116915589960055013257832799258590475411968630096300883736491020990959354368178331651620641687712459115977679732256304621543841104244496331326960647213505037149922996263229731919303856825365233681021559405259524769285754168893944446251059835739310675538435401779437618995903304377054280809013008561600812098425588430929026104794007086687625579380588153804922483101284833394686612984242203109775015269015994170751143853747579006250177221544362970908921304265465031220647765518304885944833163817259350767531173187881639601563096145260242040771629525903070849817946445288711448939656635756436958994285866386541158823728892710682118264530594851534711313852859806550264693317073475686048178172121624200907024659715411230447484660818879607625875840300368601676496571458722605729215562355842823467770149332011226812164756539888129577118591136897110778184113199993230799820038492172444199501074954931352797428829228977037656514398078153527623161787718233055807542515883247346986112877331017242065398302697303186430696852937617523718939572361432211837493226959033082674613643047938007057720769724023615692844330681702721709467404986586198650317290251127653360575608163903154179124044498407778199492108594222846334803590773147866612372598450327009971902228995159647442899815077771511354147280078487873907702721762881269246076011384032050128881322277863882096400536581375388317370379832917464411832405425982940890106337042502128948462167818874190466216727837790422017642433430736273029886227219703985818775722021903593828491027205092361844231312399798459656585564829594734291173429117835726925609331784204352949938016276654732707648400969056913852288636830292279327369008413446686509579856479408607832875415967724704323858314051182117077646643194744225911555891361097030463491824619772561929108672685384832445175749032320125037096295349376195633196682215094260670994598419646749588002088123869822000052422233215692303854746869795160877881654750462469792811899730607324807051302334502397596165646899597510751642143323118140924269560848089348351230801303890244599999106863977821737396937059575660799875576691907301771788123737257504661529908431502337679704313850577396491551009189458185856948670922229075981679420594826605247563294194636463386041006013561554466419986819368549335036160748874254479529845072534424000657818017593917340464544781693768584176820043344763591095173050224979073093649163566807186547151173568468021085033628607390084184946240734413577281312669937250900287133188441858684638358190881137509660334968748494732630995989602324001639538998587629211487367059537261226449798012161161777213116992701091500731708573391570329558990844950068461841266564230993791116426026029875887097784694994704710053902793260560266528145769201872825256239114597056782450950592553717355957539975941682752403166463348026952120309366397902205469819131232800904858430452848875340170591457848888864506576073022523686207435136939831173400284040765201319138909089574216555494571491271908298233341435621176233685049964968261281800072858254292628933504567306410719455893174880660732132305116181725332707855231929423137086808867096835874582149996702128703978719431400141611368624024324191572056676880877639239212874878420267237395018978332322109579468076547051197630443178588539057108450989483857475633939758711096679647940209062295261501587619045375307658242340819450881604253310651545735809006725120357874981565655327234395838789854314428808490871697492301809821835398015987161848760338588618610764813285087149018843145583356906913047271696231205103841580412124493068381669794678831086857257237358877425925423804417731891415354519695908847361074682154529808748349895205211702858541110051226465269939190285154453459701218649791352153612385059521233204491437825238563391711254946494324115314126401992647578205702624208739947729257032410848809594089645509743354259764762166578251798651182981223353009584047126373690563305188900343900410969457695806940316251045830881691255631674123604402474669047534598720053211767195306571881387392975287375573459227585037430406366720714675295125393748857957480569933617010915918675932035675870642048231052212516357812675061960177428480744784257938565077483398951082574270201471815575384881382680333772356023679454525676389504713920067876349760688888523646810237149708084554820861323483379433133372121385105881094014375939502433588614388393892022273904687281266676690438777145246246769549336801063524350808786328136051620076843023340150820742576221007950338172702355343678376516735485666889503610799603290138651633986585547401791812235358887262720693417057783985635028658526922236842460537944511324318120603236441495915349899118958026251282014695727394971756702419083748226768546548505252174724625102215236421976094860506191058123971374929964906171360096866710873214953877091762990717649549369709468000595426453094968339331161601334811187978659582236203196422778583914653605772789600356541771017196999843507689397262562486349627193142288619656352701527332905466920157801736744316539510672101514088447748360760285543026529660979467758161147694110728168223578149949907019517418537637870866342975734526816586880163077001824066920283014242751801114813146680725119616785675791344335783875202852447703939956215972962099772403138023944370644201711769410986017094419085222186677400723993974404219155719793402988879118969547314450310678641855828308955633550474125773557064081333559445385697955998007086462199465749001846559699582769766885258312224389244081362178449843643075499759416235115709335511291391341622774837434046108985379341468325809421035954391557470678426137850521074799749960716506634602683587421565302675119321387982332909876145530449896522626986404236800518774530554771511686336753311488440864924868560103798469619373641766938972418222089247392745985988783401235698538308893980382373253574159742215621689964046690117186142824409029996754803976652684979398854766164682946747255798233400167075582717518433203135285601165832151336046056846106090605042846745981432776514594821056122821177596607871676940064927489137797014854854744076122529362141449624751484168732804452606232920157771695056946514278083513403324776483287265314735742858984130503607230143196328080437209225447271054526518368767570721972068808659628274827105379746249562140258550825006222177516165941876387635694543034973975652163490807193121019713092416570997325888273653567509716139490579295099208765688856145444665695776657750128885876396236177608442090304832564947178173321753930691525090419840040254673546701905881496915171718410182497668935589784574909874773588722150050327320533491439727854478755361203412837852603674217182832424097804738812423421754068108398783759770305051982016415296171358874220187695715264425294334839062211504849559194069277720150384606647186123734627441696686810732206934536235120531519985333350760044986215417582548439788785149085501724222909058698412075784816531252947476275186297055069492820649213937520098002407569417411963746187529554876557958837986638317762491305650777892447890214125071989436451863098266791291973113817076368814589315950681907903743110534943550424487612600967808649500785658224676519482914864959082149708148358444853776631081702451913525504649561356081046423248661237680034693773808053476533095847198074323373605543684324809434325025664015257571767486997188186294451933919759748281532307291298260573875296132182673790435347119383835142697444552900123834600341250090043285794127462659542506997497807210342557332770834086504353428096250300792661583199240952684725245835385933358619753770741791321443994700314764319099053817772156421686187554357304923956447916586339915917657316250050846822156031441513784996287190770630997428033486832700106453124839427004519259000784284673599475037007005672550561535363498007462696086699233558046224098111011725392175662498164253462006274077590029243366110756381731412738927832662408621801441024737879359977550177840494825781403555549534972202243786337330104764375390712875221789058280684179510695584139894703321806673430212574759585729553393021631605746630359609795052752219712749506777045460227806323645509561160434157512058952461653408496002371041754663703898737582273445617258236138547435907539035018550892636981576562127560095701002363645562921569837134171024320782078460290484736484782048606877931632410084820236257807036033966759625400632849353796595285037829027538683641340840483739582994642324058873197495271599005988426685930479699693619841563990722937174219122268639323146441817997192868500514264386022724224303086211937104768280102523552523441503421734843175297266535458382637850646181212657260292832682535580661846086090241873582075341790181364925084018090620265456072117894474587772882976355167114160480546505218228519883766359253537444211539991413945557082067456231024950746254987470630206299714439311526546200110167931583380631885459877810731710102528222338466182446869431167927023513702421055361418011458882381911831499806893834815068017322286389591160895047522942273347800594620791440393362382491896517200284691180300728732493699214913801062795184727350940395889833942092528658577123696754674891232090226824682159901701282609732005313622074688426326312160740200057514315618610434780093716369158055133730407435910860022018210908940758635554426968278534827919771584962435893575889348032769711385303712715405875958966266270995484773299337846356194016578718436328444653815310957067418758998783301324778776820666680564722611137556062322180566784889591223885505117957832023750975338877556713058390135436874396555251190105872531187443589744369879084584139902516121533793363908384555726119841329194030015844401409651815146501513697024642098698258563972396523943195785728571595554319441916622666685949617660648175175717495919845031710739113098260415841846275614751827142529200976562185739489101527071755765656333645105584470499088878793308505427017923772951986673223127725405217042866741142223217526332212217726915875984486095537384379097327591088437327644013520168149534398624912926989947258228366510576921994561125146796484387221191985870875631557411527163695173253457059299914563506517385374444309147325180541410056289373397961166739780165188589195688307846724078154303650132651547828116643823770682767032584763605122378301571151931796074456625369195508932326582841391974748618920591094298877900965310430014601349773296945262520857704153757851701450564354751190200503688485373682026057916031372236278026536191436034572920114679601453861233811272479280364273878838704275562726337224352435709449580483140587333082582175951362668455282370050929282368137380090430093757512125324724270941308541585936265006394463306571714907263482513241586137671758461092550400669076857701226835179892147760386119882614377446200368714433210490226242187845472061190104120367732161642539292418374291215936873359738154763996852996907065328978594576552328015222402146231490365637052209300430955302402599966214106004549389220165928917391919200498861648458028955141992528610558994018092275062309663734822451297730079653845830698965396721706764568606496764647312986318222801459902669714168716021671189686455043289581876089649837409553197427752346290432491446956703703263942908998766845025330750320264139561585324238792546332514814281134005202920049322073164670700497582547572397139965498620696572555531915820771040212551725845176204669510474789909305977255296076731104566735907269382001955089696703420482325495224003481993125026841021242847763822424890628544538850217010073665570202413054450256371647502981372353803286861501049111188210043439718408327833385896009120921001874529831666755262190085189308840028725806987700806394671615821115249657566812133360165962862163226721021403698137699146224288461116189339899704638263627097642226078827867759374801012877275281047486429820354077008565012257305152864653751574317160300154324033314976329537886859335132114800762743227026667901407762319910681814007786532431299170127745744433419703676856927287183625119657517043856889756823977250795393979714828151372220269606878180594041287551847087558261992383978246466161628295158847165713498525759434055709984774748335553158227856258461791051785058226808912846435647805429057806947939848970935894841871620079848003000051941446245163246360463217243466289387985337167558591706976255157207269608510272343518536328517217107703234749772481973867457946786338120426744719159756370109896325871016817026421617476279871827821801527273533607929052140268923497735522297939369213696161251077690824293340986182172588289941687514339536390652780449810790085755131113876033449070132068024240899285572935687352975429004196510790912390132979020306525813214830687194130365834783781139754585038702236175535838184283092097734171419657411958795995942493925485751222385731368257672351621633320224602165510266999671266604497400175222625043469448849276932674932519556586418127710360104800352110655992669980308833957137264267691619579567909470321763706471563930660382374724217398752138871875503472222407088032282435296632296098141502082399755192965211395496920165561316882941037054172382223104317677245396352647869693881071105652903367383159586806496980999892593399685418686406717090554414033847787940984123000338571346979782695911980878900251670392813908220365355070412373815862109918490365259846309717465815182985826701035262342023116009711453637148054283159357098845313769356838519277373923144573303557559099967670451598941192759195572446588636554012652649422755636662569259058529785332791573462754723426329942002243462085303979726729901461193516534809932083229248658019381921841076732971874669965000356074766463692744627862012827816328813700503996730225376643559504115847933184619573807752266758125877035654841421061149930805574003390445461997058433662940773282868611848580707756060928400076529841832355444575169689021637547817506505453646976726891125695181963145769061082979141964548201706751348043909593101878537012463482345839043884705586325126212313062665458841722656273544077720380954550127757909978724864180347587240263494485686268571944799015645357068521418465040347670372863706332966313647779350313189959455383983426369126659987466621291938775072666403479367114162257537298442777398105950974116920367844956248111805161597250294642467304452332086800220251816835360681837200706036421116734785630039832277644396226713711461896391801437609632991428103175280308581756934387739446632976625887672502471131448894344348040718477104606349962402472445382537693399939595027004224255614736696228154591345984816493230740200946517427184568205690870037341005883136182421415323726434386830272253998670339188686057323669030570150091715000843300085439463334884662049856053357874005340979018769153837194139825139845342568484885067906107689849095444087043489739668352604368151214353338899127349581845970432544650908509924063351684639263094432814664471089522262517099859889564045674669289997835080715251269504213622213471475114352514621418065053163666133329151734733492723849111668770489028618762107502081221210775962734980301513921886169706098355244772333211494083415052325165839450545469249667328359563097182070127609317975947575374922351724038196875626394926516030334210073705860911627540351550300811763139374654952870137523613424594523745245245626467141511247499581684205191386378237418015056750639554147529634659736964055914532188215271426306233374116764928827686645943642487159293100673466439801790139719308258387766246249256674981244970618427576533779899067465949752597946771774493992446439510918720717762442960723028204880159877677177509368689865176571468530685187932185746595303399637679458961030993040124575171497749197380988683766554050036396379774650133024841785478459198036404498522788883069020907683214959433908287747561612118480598156687536162904358513803576191338010070227901449536843295998880984358895880501955388551541105880396526580198754420240342897508364510236535948838192853142368636456788708565596621760154977126923357438170724456381409752134108845239581535692255636606513105493739717481553900947955850772114267829412600760858313016190827765202943350964191960760699752696015845692772241048843533602770156558348752679502296157931363335572661626361928249593804276755648013382996189153279111738430159585849243017272421215493518306952936819469467068736825518073832318211035801553380141054678012160085029774429156568738077175609934162172612229664617825004424789521058666003884529239255573368570501685227392731357820936995260040919336959084075935934797112804426887681952732724757068330072528475792774782542276238224050838545317140129939267197303234641969625902440621538295174271176050885524594608248723649197945686892308390863885470729946054280667837586204025712753881539899055533439628544261218346336654279864771166013582250629346247412043583614937574912896558481336321263915347778423841200620495924059731698402952526847990784325312903730590222849808582310563477008196507900345320107173303115396988680507257536766987584258787254127620928986814057503342998037018768199420233078002001418571687810649849549036876067072041920550986834300175562592285268199212594653650428102209761354261495279539340102413321873338172048430737307021874781792013005903219683479860234021340556201117147424578697375992021708850439917775575793068844007729785544399468661139021802612502444870483176553022654515632611600076691748250126188120669621693496323808893050700284743398497171188874169319231452155824383193656691821246792726717121287729183638930079825224457460542639632416616518525828911997073208685372643925081342380010590483511088797378220396788356030223498246175818091083958966059129268756070213532068021332384562248306001439975223872832273964005469884996072690510638529253042619046671297997885811679614288889300496478544272993141748389245558291570502091696535389904507283339377984541485045524109410206960162538418067326995176985549008204446160492917764482739857579488453438755105130564351036768969307860673759786397092363348066114505159347533323114380650838074278649128245109281278749978905812944002729043299529824975497053769269476810973859433774786494549238891591762890479659235361359330078478433589425329464149291164489125233048574441583824391864536811177924754880075602786814701767507887484762633511684481965554150909903640622977521998560288049633861251359663738495697517701027947147143772876831421961494723651004848350809794818711543958511690587802822902927758993668665067223256423924408808678991665738294154482521949092910649974802719437460050157490161195305359375928703245006418978202912768132294418813117519738203572184048545488560819614566109972879761545472528371222086969784991912286676706734640419309384160778790835453565288223312912980275431716854379006738600551337729460954732956811779993570484884343246577656378147840855401479207506687984173347275148860977204578661260731069841146416752995432483585397442943611764254232657979104928611231083852549512396221738592822583542563120997060033070312875721357713525428552499903926443602550290741018441050540501759639194722799132038267057811177838953317715396125331141540361252508705844572837259328092169150651869078154614615962522581535417500118686644735511097145135225440997619854583721231522747704632599814276484202767446020462660877661171838847297225470774279426281223572995713302205251748913212632206222249199757985151743125280844874705221015376270276322523746336074480025217100466345580209759277909960827664023691143365720813660969449298664038078514046008859721782052103738912460924345347300502955396254668240379534945314847556411047571995511136728988150789777887505815899232762844752955111202797091232410707741618184027803698050170029142298344900648568508124908773406158168680708715299052017560276219509060515526827676662143976139571009305670850109702009512329026186196067117659219747038788438463150002027898470547833466162224734688673613163397481030893630134935766569304314548914379569455221075037593440590958296315374368438408491200354881054717417595234478360844694079296154406922387072280437004504457855191871289755701813323535942610374938570670333419727041639102042248211270297507107373256944950776569611150775650453152498701011237537767967083975048138738221558421736202019881106845831334196318705695690612439720087207201968375083130519022107960705192834666475629093822060250535295272027243368060342355789170452749109020974019684872357783415646524608313998945356367933939775772002095032798380681726050934280145083716200983265659040341868590733171073875132561021594553685573870021620608475943066080481960950279751629541310030370565772823430288289001182595309969213556847611834141385653900201199037496441978187886356251728578033836810659324304198723207413012654113852164200615097548208263404702040501808746665477632798853711532058720035581428904977415991637665379705145067806420665359893846959243189933600689603557347669660332360734690807040262141628470962207824392310212653053536649344035463830357167562114891742809902883355280433510830893173537312669407272020138660139114699698556180850199182107754481925721289779853159491592889594100257772799684153446373297929338722946670720347489756952456773387605905321427909417878290189299954696715132611521646460799368252744884262793970867643471876239224371304572334694494169905387077888308369448115785564657815726084690433353381590891953434540556505899774652567914704542669873664944166636458965152896609685859989628535113603036036809107982578976573183099501857011312455743919288651692608166298168817949059084067934938454347943816533125991723989063004259165666852789052525093433978053387549578658747270384286063699273282419418243921454439258500875532571106202387077493644380669613957941549202952544851139109182227096922168854385710799297637403835986803026180642049292751675794626026466619830671588228598700841179759726387600098056120296770821966235811693266327825720245154905153119294185547912157822527767784946059019089358427601900590237423908059492800407583223660776574218042127306830554604761594654272738275609435309110130792443512403718989100174215779396862708726359423466246564134036950962912885536731777198653782840799715648596936915325173294895759022111570561001585215276002629556897698895976146285653166985450759425448808108414328939136628210505414586777523136623762817843113211670177615150694691985478887735888272593078739439354269372967927635895235355497859162755209596211547086406810951227555158684298772921823803546729035665791334534454940037699801574800792031490323782702815770458489710654588925138806043465382832463525411471395329656525166310194975605777850844745528449095456675296680902499126127947989039562898788123183808273950125912694045135015214302410049342025192974606610222217174482585270194887952568139644474079636218577278196337145702416624197156195333763957082556917499541631984745910488616309509632755999433342601011582056118336169533299659354121254316389137186046667758889327796425586278295834249427150853472277974038930805370718148567100615339231062375575130971831135488659743797153602530960252707970844571282382847607228699077481279155630914032955346364012181322517466330416594834523468011471827125711391162890230565582332827714092462609397948836246339236259328075349546554253897921559711432752373803497278988077192141757692445841638299763345895413170933869080341862300617154338726521235453535640438714231305166656193804414105953807679428538171808501089079744861371418323889631371628324297820321808596224329724620015220092913577156475871140680079447039129850106603132920785858314491550161254674750040987974430963922494259086419982594545342475885943270176681158312137551464336592540579340582228759235407055389728323911252787134578308392580876929158451687988531547841800156561260999360515657979558951561875355720718261119607861000985894735040002936780044063922296049703756364601518832854543892772255398808427877962676760795402191702920088874401213364414363251643519694212486690131972895050810982266193895799749775175879299843727720338257790906051698071062896288450319596706876883262707521542088860761280499892248658375703248821520198396538363215507831807048140445975150631081933004023211912685074871898215716960067063532503418804770827812248528860497884109886689692234805312967796202449391494037845271789746865719633764493516974037158865909731293185471169122240635506658712758713862724463462845627083794794747673315361001980655321634712119386716055058134232996958603119325320587561351393565737553382370340359938017535432635929533102809781174504799646752854895532488504862680909812559680777184249016387679772682013321837617720476336544828016306589232609265224133057528123681912418875579543542354490355768935750536340462440004397924553763238853163673904084826382536444194085860192744077797960692785739985003328709608665492026018834671866063216510008608168061051572255500759067896365376455796536879991420506873158176890316697920279258550702529058664287609320508733732136418273518687176779201751929829606184987711369744028004245352815277489966850121346370307897329775065793479464445062300426709133191130367302866274262885206539681324225348259578230068885552368646746783299296770562881635391541119481384660119406897828133752894908437809255165378071691282317091945998353194116901131177086323347921584594774922266821911823061299965784479973658877978441118538478606222565977085193644485031677240327413690693714198019402395988592648427677882216610791321435823722240547026632924093304199635940222949946534250668097483280563255942545831628458459098611842324701823297873465092884476747177744282570038790184992060640473750708653272510969892049726465967422205996836592801352266763110688499793530013787142615054301087962229194644938869592852644758151206626956012600452374436550336722397557453928063129571552195962289670773795804642531617979046472140248010920368124284835160800835184327734552284246794720139932814191114119646743590628666178437274040358201313935656420928381643662103776008159643881785168595282428418266479667820790922253422813937055875723816587354895686090533943533984097314043404654237617300071192803699040857025528438347086032955915245112830026528335032435099306380861946301639017527145958470185548526421860327275605239925269822553160984808494508458629100701909377476704034898511924466559780323577577374039099382577719697135342318493918728047998628946357991717331306031173333590234331211297374031559522768281211747273622871770946813334235755461406748551949498724273196804460919856935119067059702960201589206005748074506518283396526081858789748259936321227418376741569742789076243215811325766921212176564406292044597300036536333729660992711007624892680417445847675632212710941831601480438698106415338041963521946461954851433145565086312368861421850214519392577546135553265878745093462677095970060485505308266815644372007937568335814557559298411338204902898361141694062401134199453069876621415189884715206485034905569559788046122244416229566633020712047705790629700896637625309719968778051537413016150241508405245993261130091849919820871956400309795125736457345382154575127491981012519477665069965763608228938541209186048212424964046730642122854284283780530804528400173227890696490410017886312262452643676829803567523108052402782835020152320824487823948951992333365878243202589374269094212970726933106197160636771397287653260304015339318920944997762477391003183979509986364571739280811194844234185800981495718093713985051361845860592526816486656607819988264675947241015870686512539343655428462606191240362417202994226310805335116777108515913542267403333407701628090673058986609845345392028640498405084937177163158188740729849354982247248937523730729189267590536900515609767030109830400728958920360774198109647704765124396779180420517163828656502021737023950942336756310771815112719305419922573701857990012646842457725401366521304074250433553335392245139938894090793482628159232356752525930213261576795515958644849592608385297065781328280352036584980608540260022794239988402648853660556806140389333987708887856597595642530681951680084830460780686712080984022021016545532158448429367993141725463881700623642448279111894263017207814887405427753462795127931693884236555499492887379221246067989374915714450561566564463415291879171599573035625234492000671625740267417456365104160075994115489856743640637034042684931207987558154735559107930077870352263590072433970600473680657044260560127619435431918542208266954644650470745312937252076120810132915099594772221959543244718545646556633580751936993412324312388455282215948504828161606049497668022846955535273911967853994177377540877027410618037925909698566379374455205791058886086269278951164222623430236402553456878642257847631879155980456004243503053966086256550870099250547694963059421640338333124991080415813455897850443753497044982478664065529083232784972993507086129914550634106031836127150098032458035677131422851665299288902568478775579105327140933989188779409968619528233572937000559770847505172433156546654051982326809712424924926054880281017108610848253916145332570072405824168529670326633427440745651445959992046548060955687273298300908182723726450706949824683009662106750133779678560246240858050742323965536242509777332244307086474018063377784063064829993742713998088013112026202384076315559880991436316199294318736037464713489279669708511988918694316734771495039646822249203055004673448980403048318415501416625058422222611104907584216974829727852983531569388176209377194758743462439794388049294445676815190336554128736335778195267285428628761266588004557214337225137524447792581746578178351423217151676480895276498293289605099600470323835490677860934682213610813638634436598705280129859467338630465825842516184418522981110055340570121796572743831082229830700553099742982951782311373156040675022660014093816240028802579962970426919828825541105014708837823015295622522452341789741549675074487552632307242555743608091059911664477658596151230875494335324633069546663247128474396259802122733727017951881625105863202719941099439007947242087320385875787188181651931287275449074110526986012041672587402964934124755043193876311261497126551549889989779793245148551412963308024620746124886492568619658911222807126895606896316056907628565349784944902268628511617091842823185301459210140355328437439840944898363096079799251771312849826711311073594379454921714291058313466257120362433059829996334564418808133349056031003734613466669503462840168276134980220504505785931817155912225763242742264112937990093222256095387053335611641318130992411500533733466999649505692292013161125999138770566490495053297896249656770621938572863192314136820088832314161237437934535364973214019990647672243366432479690871449832343741357405181925265580504239758257450303895035839895433697244488474310426684761907468125899669185010560291744780276305072065692728350617454184942425584302490683652392843161483087403373805910731643757596362250892369478829113665389574922905958456839145794399629720994749332686343095335107323195833067945146317204415865834024577078346772444805111328405493049386050644591192437196683319341475914253790795911140988663730413357093943026453754502628480378523489262307274589126249974421716389960732898988779167228799298419609106690800736275990254294111054559945036419233616728722175943672746914779856037907656411866446310546903168076314340032038224773467026569447459261748176334109769395871882566242878404883680608179141839335061721514406167985054209636908156886014834025349855530029422342613810242484919678396524894748014847133507197580541149567773780311641340504900905597912025255660707506960951155977927327058193846683013937589539366324556790036728724557107931781637236081293446593612680644632782945472894837713032100691247036254426136534969563037190056165534343368844892422169211356470303824097236881339574459798057708710521155120883671590715540080685818998753988766801124264950440557062628062050211445815258470613995476450759493151965738215142240495886002082749785682742961200216813071164981896479396165726757828588146668266983591553988716424403098068210401054975770687977081666464185808200782496090146822091997670448188901593599280558666239311678940278839869595033063230388695005803837458136103218978831614125895245718025172156405681070105364952013927913766137009513855359468496499111402062659291774370043740755794089874266646677582508677280900891664703536040794944510523618601081193335580515554968119289572371143752564552846154632284318904719736152134139660935722872549881984257282960246812897515664851019147994595686004617578043584418812431536308038943161260107640131478686592749132802224098337513193786845648573499792755929083635495583192816316108355686896940486184393849595117523659157675000354588323400406831823636522841534421308565906522941005948075070237484902748981925927800519901170693987718751774089534159180316996432444858998106608973917811444095737583741262435967801054916130603038446788843265971382960999137034319672800755838696346387983785165306650295313006145809120100066081299621162986548972415869220777666013729995648194811442021643797263793153894183970821290960974965482806670364539354647597853145106881196607573089277685871940454325760587690394526655813516139351722246060742966138239474358721508203847872027534093947883010909248921970066755796842847267818195973088720729654747591546046177348460397835189482378527682815604851380231646655739115750977195081073725893799950310251298664493025304998002037326580990879191985038614389051021031297787429724757321801974000358830520229993969840665932738905697994096026745755189110236876179736085102632836594607286878701237061544634283116552072255035165825914528245885642618030971776437195531589260822497573223267084690023143517240978479279322869897743815936647659407949530444751546781014733316481509976767713181049714598258201149268820565723538604841041947277187692400008936286197916055439236802864716832502034220385505664401876222970328098840975586204454284885103991114203369475021872560214300096829198654406244430260332235550468002162463947365530768322908895869287957052659287531529390894459645099149905303401114152932040060665545771445640520704759955678407981993147127189619999614521426821839854313648688141982754405148592376559738194071039641011827029219556593797969061078738861473866013729710629489939165150481748427429172845352281920806840160809951489236398275626587166197764763401576177547318015500292874016866295463849758702951659396089459181782244621316799048930970795420686609433415408157431874346954185611922816148409034536014363148579076820262798788892649728030277763496150548847246636222678894904588068459034114533837667108701043494676019327541196116183606354853406165718444664998821340663259174106172528557584374729188901337257008193280361505095221622143243503233327043732380484862258790166656656618217411943278752937877912440465540103921700110656356493443552368957414724562496619940541257730980206111125821723536680285652710580606545686384308489979352925120216867915178040228468090752419916467170548281016023982951710704143278364986937335114632117255294598787628519900452146110451493650928498987543535531425913304451219965446312278429255593434178223837801961199627302286682293005925970324161622768329507929056356374383825301109585489228966075034865755663050039355860344166550511037323155864115224896077337093130658165700209663343663910300747675773002346776279303247129302259479769161790928433586074264876003211791240088967266897618568149718682943712273664613979703085283531686947316110206173771711932694571859713249591853699912600519895300211292405340366219082234863426719506164718942392871895733650448668297882131295778345447741042095508015619359140972399518485521214532948735367366602671750193314212570038067389120521738844505618114446158441636169296350671611034282194879243350660884233253397267073295799074327067426475275031651499252782008569128228435915002772047353841536603788489448662109153705637821913327482297894762942969459614952359596720331131527620801555091175422484006479519955100897033195386975084909865013763551568063946527855888569503700195472028622915669705295354956173360642705412699637975274021336250300107148937890035695284772158770266693480870129036327276043358534640432629468446863866727568988750499650539178871297703438864740871072095183461073138950552318353513916743446265061078853220835499825676969738964938511963169437678934265357550950004131663794998960855495880791788245991089695335519369715345352521260161559986791046397698677451044652327453372571240700914261839080630204852226899464622628840955528677945378343706718401926257033703598294724122434144575269377460982667777362073400412636348165845984266669304276480008184690631769166905103348604448272359749594823787456942486366917485223722041346092260850591833304919727340044126739998900534752740344905242845050179392335121120992728908676885461078952559885660888182727184032485647590343438611581265706709516401599122574313393978339226897321320701892389107286138797306314949804186338433639675263347847970494450706109836747108351110967511047051079203555257940563486950667890641755857696616772424780668407685171813857529867665518063581793901821711483242834658857864331375521990858914960476874177132004882620787964777593360408863873046934537868538971287521597950782165738343818719153269288091183564682632823850554824681657285183514146051563864390164876954927131213666945767124862004574024659692672723834688625103057705018283112526856236487510354697640562215472777286451520485937986300108266840721980041894631743598067223905364244414481510807128613100904253015601862112715130336342871938226469868098374749244736501933897223672717429142001716749657538503621269017015092693708601320117403916957800122659682649967179095656205759080707128145055258316192945505938620644649500347724296479167997686847229558480046750637646856360610083299800761537944426380947739124502832269787046316077116745559120876658004658166438728758218957906382548387011970800240505816254289257434396369848273679754070335636462654070132669466613529973241266328801825271493952924093025586458796209545786881754005149362133425225512047120446179503391757435581585558970225834057159538508909383567731274275523811009396338883790729034111603826083489238233206460292706601374112808306853122959038511213249430629705054335979890136887811722111143815292650006592480198134898573428147431535578006971122201215245303768844270301121247300731179237426976194477982574723201897651855742912445908339855891753605025695895511431770886517296995700295803821960156667847274091133017211636591649870782899084360718934514702765611742540139376170565667561601866554959061104449165722089824867059929021184276255737153964106908955397695584606514294332372946694887635661143544867745464663113889870892509522170018522599592967425154503075514412208308840880470300074407655200799900248104437843735061671870833246457510176756890348954120035490228235923527826637821169498366019307681426498490894898831591877406516881999201775478323938954550792891982283523287124527119062266793343119837191087274210765767866199597995595636111353573178041366429821734099714128052541416950575233350877301759512571593113712996176319153924294523911400317838432252989093228363699064611015221907246150342215256051056765706859470718011321192517238421518820262612602865566736424051190255346909670210879359011862286035308487197583746430460675694581488675019917578744820801165301554200916526365329292603558431596616115403694757632767256334085932730746231403670303222554756410128089349627887696067255998234548500191398360429503728451189643069012066460567801211842081571274830373867740311783880617619439148327010313661101341116035110748790575208693324426652436435699411611493946826469082816339329497934230390307985658628770399428243188763622633181733553354153588400405980741611846908201808509934023063375480469283200251348463562785918048162605777316884343613724318773488147776694144150454282051615951744381508645453188844171573747148026515471567745845804741724912048677921012160513503229734046570956472052337418390132296031045470521601793660392915027687582514319713613971271371196500315661715393350823792223404318049687109498356753255928268541546074174445001476226708270978978169563156705911669101544398598728943093722092008874966929223248037808945071248659966888632553542808198940389852478590466603463720637730226794321868131818848963203583407697331471432753634962279243377085180108831461306823946284871412741478493360523271730448059212653657065228597384090031067663528469563591822681314194186809451399196003675986547846335914028482041448655564149071476976695917197996930344541185652544122866018435300119858777057415019006062190157467286113204554042588880123262405371574891835731241255311605997527513366609080374798886506551588266938328555991095203324060616153744561651283428868406541261370153994346608006614120293201907992282827359577563778489025810283578590147627489716706059706461420525289105307829103188475053075765173070861309188000872334353507389271671955805903489137401157221425912318943542927939620913235864738567037898857294763157563116201013014549598363941322810846386423565646683365142505588499836565887047187780465583279476656999537077008961227555883697313710868376705411089137231749386431801920119627951465943727438773336391323304630252832692925235742830445944184178474069335198506622872231817320189957572750961840089681754668932017228243606258339480622996263828824792416876203151578754548384406947808382168228278109519706737195501197513466566162805263831603630297217958466318907791451539197876058594110209143303940168001786977484071372523508901879617089377488241327124558842033784500510835781627436701201681719420101172876644719267395963984552447261461588719371963624781046093736645827445282129539969531400227499130729428297538219964743278807390999271874651356862678173419959271420768274535984003666368663842392535046351754308402672280613355415748762416086848461423618968672248480473993337262865708184532367699237793760765270088962382089268141450384925969923093859174071992294667218015009199582743637893741998175729188579712630160961476289269431061708912180303185842387821340105804662810607655681415877189011557392047263284812532605114872785073958914355512022753798997302093093334345554306450006635189056256908352854598212007558913474264036975135975064846173745434095445310329743189701477952202702812558260461759788924071616292406988077148593701329798330774658165970253094904219111705062444500576220233821952491078183852655859129173552489095395506894339055402229959349768062331564964960395079654877416156271236822193984406623903468531054297143765790403545298741877342799515745381598732393695878767701461069329889208487926436002457761526758291509491377193115321638523450751889191401197795622595692388826007691825474251265930789799445947564589789746254182893798312537660793569235146717436725598419272434315528025967745737163789517876361373460416039919980659608802390822523259273885807473023533836153034251313671411304332733045136735365229877848203583152792315802273338723960527338342620880456030955603468335706266657793447035849196315822655766010011992513828933130409650140658437595825574624091461696603967682426373037737680823610675908341048298358590175616455521976193714795809749371274691995642355718063907061664289422801433425668200056577811759837774194396330066866817371927981544622886757465504188758105247138535497225895826191415388042037251059494191635072438925437573903926578951697531400269803174758835212046779269412043991254526075032218614433581931215131457289479848035751757393825571074506787349520944344856052418303839941171116012673915472025892727377761118490812056777897067714315735413308319258920456392754270134495724579205642238920121982233249884980594549832822026290262825252398847568244941327214749561291241060043650936465202246095616627854467054833282182510899961830118825613187956875572816531037079063812938691852448304895681332788527591680313424126054058617329059044686853180316388478615288566170333786616517769948588649483631766828939115828603350787955599633960007138584738372015332133361058721515866954437199216578426657241332757905251513801618189518235538322493597569640670611719733798712343757679225651530228442649458841736592848341123037679618575051947505398524841717931523404619890425883111276988036044168255910286873089200861928059971151941436555261189197115218720726154553473559878441432257722760108979042284087828279721091443990144748920285574279703270889359958462814444710934364277192651274187644837024543772000421163810623275067190748971894126208859958032854803608817709213524059025884018418094969501751143934270073938903629356081902242821642516045275554583905506776080484181020024862046558184821248595872504942741180526386966413284516637265554958366293703952622513259266030666827085197486995117515790793519697978030363550777512616518610264282072338018415903733236476685540460625857943896789876931238834477538919721204870474629523596758879901374074081537947745132704143201406541060113641743123234928462890265698691067513049904964936897876697319840174453670761834141026744742317578912461666137092982122004142065383553322166444390096190125369567607167456769763735673224644655463350255428863285382225250600146488598823069297228033623374337160190068590749338964582747409864238681499912967909158575841137627459872124245849637927981643189905578059328486627478544694719826065111740597218907022434707048376947759531491157798894989794938031910373310865988217494805549650899582803252023467075425388592059293311534120935585114976708679836662707571242288330937226041080780307984830502467444787957682471367989782714015991994861813823785941174938135287362557370879170591102906144614849860504354892805467797225699305595832564405517018541011538393029458600061250394585164429997846188264926305635748272147192652500442732373163217410551838642577300851813584247035016968476209339428389708581684126569467747596280920602765757471945720680630618554277228766314274247572524904917724475222148496004112253312067724532715950899911214836029486569202141595660535696903329653085695771426530981895828144490640887874743667889916164176505636738091521715144212017048662536691184994670233670650379002111032894803192606099758085782710490149399999315882915891775502004474450789628863005617944998533340636550333222548574798114915484437886258682563381315429279093247785609691499451726458894110479442486611825948915990547540499184345565639015268034381673022480197433734129945812514268173480656045372529933396411999900741495684017565735916321285278339453489775682699843811327221228788703334593713998203217606213128716941595931397940805060865920614422719701550533472682199038952134919939045274973013139944763296715868894920187544240406007553238054103430972022960670350229156035936106513160868136133829056788401498469907083210851113205378586373520838562088947771279406933421495070780425013717964674340302671990352239411682471216197760498941394019484627044852436953012396917711721059694533725432985220573245404936760904792874549613566522465187811365423776491556976475827394730349468922449427181280680851362427401017089309408693685715714496875999638443839978551562034645301812895989507881503367337607244706510419290537279754170909795832420166578731015030890915556426812461816680069962692295646478573917555439841561221450891819833093918096802763593656434070399371566516873418105229827289049860862310533158913786479279961651032511240389128995884932024578600325786217232694962952089464988157163790652863251420919625464077904026419467772361587998590887265322122056166876184371315978866868741366424639198324435726734434628369100632742348446162528541004811572404150068518717435668562605351872700206920634930223892618268334042019425566455166263271475756689740243939466887353482605242507252935852362163125046521313055547559925214410230658358425979761743105363254312682536523646944349258702999366532381791702831251877876143907505113008172154479636281223916595967299627290276214162481375635577630880136414778265390576930658321943483865343089243183550265707720836125901361556561124990437296757622772823102996254340462490129692989165143387500249115311175739868415701877042507743060592623501506732182663959391498653588838895933641218858113990328312097132304468103862894133292667962477526349812906288645194637211286909454753606565817434716145804037112800029446030478391134353225564582398872837031179775876571905006667515509723276968260478596799004322683879614912307962050231078234438131092417623288074779682500651506699729362960976161837280677337783309396519683114843535860246492664801771106655499152231404414691198794840856343565477727251701257784615546865710071759103315855598268611731134896333614280483174680265812792042557674694658900865857935422745813982844357945063548719683037874666877765864282708508106223222478184058664119856854289719398102577574634492056732227443317323074723060788863284269467349579333456316035858434682823537745203115819078634498902867085420779204189542036444514881400023405406452625220636936972520756406777489582010524145909007118335861166357722666891886721025612828254923837996041942877859562210479699684929772573664501197713102814112105374009498500720119890315345338318575748311393124558918544645490480218526436651648850165240989417168146313895638261605921675832430895509194358891923487181274693877418151927625732388024917632214577937678476813278321949612689502544107580491418272329360740649838770776337933263942531261752876883495577514614007978406034884362384334323888149080244782676572281826404119681050184954619609338595292367625679607370474599227013209157490364037503966280423495965429137083722956243727747561571422974637966117153233120573784000986133562086725779055662273540912612210108518722812775744780089035054073330840648530435650442820288935277761399333178255115653996950889077871090914466319173465606070559210201596001235503187570340734152818337391356216408673160382866690107288227146686472168960847182736247311675878428321074408582277405563145435376386317466019793497969957460327799687529973007481690730297115656861819160754190363546492459874857417299122173851241688070849960370498985992087266744515163951523901909595777166475189760361462557675432904529479787629579257843369034588806580461558944756416317390425033883314777171751455719272851768232722846150677877302334258441318415293194582648629517541972434425304870816523853653769004926743883765098833387085001898336612003356724549508841804497260899373528494109517327604811998563131119926957217214895908946088981184582869107919295313603288303271563841034776338853711094527119864735029705840308040169876655742531209876364863103148826263614213115277584798882749983980484870265134909792432854000553837595547093737062663699830289328982178659544774678209826197882289493183883179405878072540733262042325471578444925850740613315311657141882237061357220125861514596424432889449334800492282966435336035585161119542313295413710628276550830975885729347115639840533057695757317069599174957348849046888953145754084479354212073943999751716611210710528262128122150576213336656467948983767672686249360863263805999815234905181616697816972298510431269140541751962340893445058154645011693724098711922449154341059929799832000113205896758621858994123125218229727532057341299780287983739168219356794893062828045032492561533372988811423598624675471341909571551925856949571416421014820645914319050673429106936667145414546924527490810119394328634064634991058482437784183114759797569317157858374000383186747772337857339107171967797373320395931239336429407684211803404707796607091915254487799753679840144427636481593986805437419032763775133199742565190288753183388833271200121189488638790446339794157726349206414689192014703384571553681032935299188246972655501068587524324870145725946945495090746328546704395686250481512927949119482656719403882257844571491003162621315035668086713458925060473560983187012028663881534361235408487591588328192282330814637501640851556699288200088373275449196487772435453305435329982682145730262377942150437500176558692663830178261709575664301560811981727005658604483836071630470474859851437582876934804596339266804989207574247229988165379701844547177634853444457825216357925226028008447463684717142463579479788010465903008125852906825999385282544622372776022449090569972113438684304045185134548929101047851091138144111050762083607109204093794772640380543710983189315423061512012876257742562075630680041644141663523089246881739636503402528506138990223447710981151201797111124362574921252167445915980153214079960024152463541903334029096489826641175409956640069817893173888236166548525957428995620431198464061223520682606609101580671161401347006601749608363457908231902451348296401796264575241826594460402615282350811438699857096087190761788722179907110202955064618911419925422624809372954486122263064291424893764744718697175406384394296231468680745821372917468934932327658953685202391795302378872598665146581486380805433574936962771330106760058412301013427736804435830061557511812716298088827860721607206246945999071903053055469317287102494011208416703790139429193894424032281541249105141271424500185356848984184006670039330134567449448713864937176761385819653151157584966697988331540102916445566011161374175018166890400778068561013905906207312377145524387190784063125721090204364934043171386172394310166075259761708467059484344122191373430280067434991216773396815593286878976683530269315859490330966070756320909464033438082230858897982382442564442989198399333491889798710312556797050148823483735894099649798840596161117901623265766481887775772132683185596335604395491655353607669323672484867977463524839492809685396748187840607743660531104497250479185366149398574264668236174746729944601003638543928994397652135702750544631746506803825122988472310605323435596859458594706906618174479803985733201560980989721059081835874824944443720375427100316140215397883763065973895065176556845015236388063795676959560237826820721946651186032055395572945276443654595980088363357566204403988742736319938843136662992601016848064742949274747265077414419484079530484724969029750945564173396636038039734518547289041077991216704838537310613842153468698660917012642265822531306556917562999818562041923617078989034581101152090422946226404877940636311420852220578551057122101679576075823340593576316805384946451716987582351567766914762551931262125100266869139726111545763684800094261359327143325206017260867113814475225739727260789984340539637498129169692950819281079428455683864171507451520732056717395804731304670830725892617107299108291873234759941083724073288588182639379465959412427122740005517328365102018129076597960419881551657317804971008924269551713171135699637671468664148301337131854017408976519274589142407120432013140011147270661570063287160266790458740204464224851292193942080002346999862526780089006063668661759211350926737222956842890415063270999596988915870983044305704037443023392110025274089787636897076358094137526928571181733417769679939209221761089997108645829732684919182286872915680018468458103777815877835769683326933860489335921597456609825078996979805288357078323168281770340517300373234905842435267141030179217560921844136483501304669819646295015229571473067532509244982783034689639999826175928538949884916550389228421567126233603915418514533710380727236751842572098157882339115835627844223155429295109259160538096480778924388118550870557795033454154516386819399710266931725337787008081491930725045143875340249839727907140436600295387577153745044939875383157480261275110341925679507628999970734556764523029283565805368896902493757208704935381738134704335692525064617990911239446464369918508108675055808825043346320728590989087228894379618237507209021535006215433039879307125182488836267559143770136146349625701130539650735016957566022350706353906266004924563231729696535323725237451929832013884820736573598376957452603193382768214338362562391548985780768348665274033540885301898038308361068711723827127932739289759523683503909537350010569524546716685712917533748551457411786105210608714513436539222247069060933672140919754585670503154404099582132998380959259847323220123723286112519748614037176540330263834276625622798313842210888394104129982537245546447257359886264581573794434445566563922592126863886059551978669713539770099795934637394128869565601470567093974007802575999710527282424065633122309015530645668165862774660692944460517508925463083508125492770907389071456899429387449214410016124121207249001200213079015738245715598462421848623119050987077617497482746641776959663022343608934027822256094981006080070574312469043891982038484060082981521159405766458730535030443423145893602883541149532786371708910808839469251747738855168860034662194001223070818138954051764383308811876666365936353046718291273622440697285925647372952351926811467336640049036630713105505424266556596559923958765704405331852600043828132166488622705247101875010351692629461880563802821317591318124002640789790244924647570843016247293844099346863613897623369596325953554075387281890861249766653893626785228691697731679026534754091221436731375531809600168613087489342509551168080719080353499453140729174875874434567045605314646391463297898192448835140207720011348298989869500129133389096808056300399610440422105261384266215975392497507332724723857774538995194192453459484976264417177044840781909435436086054843498329342451164052865188419480621130575047868470830659130675370762296974774176710335794873556082460480577289209669742381225042481617488234976547337051192884404044106321597198706467990912433081415727312631558364774756384373204763621800206025145343454700229491983752908392460076233532373522785211045315881995830337107639431771537493786120423408302986011028657479168127814773377961303115864685638811107433270897119374715835833007930848361070843957036989416355846655658831421828151977908715908477323901724292831992894926010304685002302457274284815136481556318071548278044444252716550810922820864973294347007385865957894939673757191190231878041748925274415101296812637759644444727569123802535994725642263494789233195931470325521061216836661586254793228710932852622329004125962555618947279001781468630955909620086664263655192641374861919693785777619436348430733846201030613183073147376283008299155162310961904489542303879133849127479907226536401219389445358862919262316681467938247471927658194867276667322169193977068127988715076719788466905441889137543532385135832301733287137854131976149221077543858096982410292490732554868349304829214688541894405798291088457441174621257650762436014631756269981786544675157095064280213956544040580073203941008912865864987554498536207112788923236058586747783761059205898819095708713190329555582046554204129861756167572045349403490113863272346556449783694077906666802307515857879615717812232470982865363903795277000117737376310667357322704496420091706116677756238526213789117772490525011060251500695277630332018649521956611143234483266318879553110210526295655659303169608563258181852141051332840089908364049587486319312843191823047197017976291292181827270381997985100665013075862448315863920227138988675071591683891376356108541520392965646030970254873011642805949816823368088138593163363635693925299586420109978779321265519791343621419698344274373493325646759566926851695567572563900151944644990686564218518682347566973218149849066987180853594502751896735040908442304231651886312982110866632631779511223335083759069401476414948051018148618670191935834874067599265090824498682846769374490745039479653155485696976728975098849259612050076659142393872465147476962309044033708519616635840830831662739626840181214111687615757536044250335676905764212742243982225195538333841991870230163505424701728352413055600404060481948297473043229983545308992996534921437201136650815465394482695429664763018823357836233153411589322301400368444790208932595995781424704658904587080980959138937122290876145132446919262125142274852203733669145090552088081398319007253573010254027233367707954080337097757627598152122256928075911323227515679022435028334542391518418792904093127541354566583425412617499689048575644333196829424078646177133757706995772066490677332527000911337046354976639883752810191521378416790939514320839428009892518588939753646035411557592323724423034870194373468788914693546938977632730506846236502366864277238382513898147945946275182846127239805957568822614984167237457421582647189810693908090739233287065169251061311304134268084948627229724087217829235588723065465888697760726152845802501039775364387322136708300138356380285724912479948376391115842940387268335332547629620098675766283974410456014467829988081868182406438216441278990601503086823824133131142118633213747425485548867551160637182092666321483706393097240166434883379606988066382600836365068014480633644996466829482222934211199940659486819683853954945392399534570165285554030579387098807238446243686198735167361983690081323355885884483485715929369713545432126649750848123801405663144464612825598757630690383018722879875427770868262981373365234330261183387188612137033716523710915864401331356869690868545637749262778030255744183377116422622345470118673833240478718566403668387955857272311171552017157513189358547136564542220306079081393441213759846466041000922489887588910569855891624606927110751866217693735439028787493088809676692179312114658015019807726171374418537899879761228451919607994868865262183435625622142529162925802045880080414304682513995307421399538866705794864227498787959473701872038115675884787799267617391007760960859255599143999680294755015599051869167362865146895831512447377216141544648429260044557784736378152853169796053341966234103441440044284347224852996429008220435601099434962901159200991072792244333140292874837342624964321499096508150649725375803888338248530389219114683321215060508661124930509986074459580183144243143815713330762539292967993606644574195514658324286186918255193101022499382670034133189117710625036749189766872915842581209420275542850174566657716680534084620492001213823055005155116448600803791229679836633479842083981325390033787550531746930607199557060147833071345537790936996627591525713681799354779898099314750443731119229804497973884174824518216231970862930564596285668708044888457243123234325854750107229324081604490146547211764393769325104859188663649559611815460441135061548891425426772962934714693267925660856064690793616699026839059049395323354432642963164010050503846935786716645306512645654423236958831929038580252175148101117070693412503847467230831864630706846303148296171776209845806708334970960256545567018775864308710713936856371970259951561532621252715966440820168082948124486225161798915308142860989926622128321314014074544302259981001125649029696138299852844047259286868375137711327000623763006093653872742507652381643433174136650026670617241469510212196288658384109685917823309546160813847029332326622575910698598721231168171891478329118098403980072834756195491138426751906935749475214449978522093040983154531077956822311301013276553257379303049025059855275977592377368900780207010465889159578753970587096537382197073843998388387326952890809133204348511565271152426965940762879190649368637377985359697354863317498304489936558363465246338886366296782857752755921844040574150227659256709297527730976030454964492325077510977644548347248976013642102892212098734475119812486455047048585381662179417310814108310610106070616221336825493393226751766439244166104521460726848961134709265941791821956079714939441940764183326975234723721438062738690803160450092162380571400899577613647809689703682893739720103773621011937471405619431471181850930025178432848705924845931124207051531612922407282073446004948337308631006650402562112110395210324351880730547121977324546117270677706214552965525170095458030590844975783330734979456241244771579752696851559029814758990026310117076773004316178200973252879476029586220440328026726279399020095543991123382948851918801023135129342379607413014827840696518322538737012148241983384395857533466680943526717459260671418568743918351490479652336310074519348532508633045542227380134669054897293613080379568372058082597087230779982105509943950170017173637810653515444897407568992541774576962548524598012048911221272784959495242431202153357290247925071629778494747989701095920374095767073937340405794241683374603454678632408021248905986289954659518829842051838444198409372589935080199873454552546944945268465669001926467907983539662033399540332834198465042740450884701933549490499257794157756947744711909919132587876317822906427852001837054936598872177863911738901207626449011107114783493093129401829229978222731631414191974168731092252830618280193850896972435456643223177436004047133401402574593864882418222268415077108744493852949088595397999526972126869152260149086139353838902805026660603116739225335611481463229789657333951604370374099937479124095165817166849036239170659804226665455153624286539328646233899231972223032391604190688330051670364771545299417322791700449324194757019909395820098760453874865868288308337009356398964219663245808008420858362672735505991866257137602695079999443987694349057954761712878471352785738483175028663004251369857839332443913973599002655816145662691952672404241865243332371883714738622321188889245557719959589188298653609704722538683276796992976304599004367411377027073158381253744160001626950742740267056403195062430361123455808328180172172044845589329363529329661543787728123876908299629896782607464277085962419542226952593229484971583531444246493799390599399517023450519982982789930639101515332962941976396076774446828140476093455828362043672972579560234220208151718233280522358368667997114895291626340598565002586397419734585880551809353246564199773597285451194441944506037675005455632538684897942749159278711699991014750927926211850905853274858200799238780456859674889654165280307981333328261510850060303447588937945295884172354851978198653705536846557695240306640434967789537745489691485055368067698860244496476262210307062146312998867723716255192282771555150333355971117138591239140567949242193509005971247678745489475775804644517406004564384398033746959650349959342042448936443898941572910480115509904634530088679177239665014384213530295543377310907667990474249424090980028310483051027714368004301939391344419590364101099769084221926688593591130974266855388334911352108099480214278282263610910006336694394717819676228609232407295610049731452575959669530856169353668408172802492632785257089078069437974653094405876001391487727555946113645474662434570947881314267700831635148227268379098852474995473421428852097896967494079712916379839025419083090606363840359996241914178994300670185363760218113487960817497957623448265864638793345929900854720305353041744583094743036058730977913638999705200314579899581904993807209208744565910281916951070587486037608993834725393534937505186302802842378084342213572264715930265916675357096075739786664881049498594422162816321198942248293761668572449726636032144056291880462371310563405761318721561396423124243268176413649695515471683620160498814881206886057759558692533010479008760430180576743306451209090954796070049921867498056704014520034621535761416587890957548291441764636408280496849309029985606562164916322494808271420510348313183103883146012872380192770690296315259531210847959424471776320653025645609053314798383053405447959153114679918528026005019746267330338398460235721543877011264435423661181279814174403658131194728161009573658258387377181442511334188126714113027296669603212881962247530713140629052457239170485844016730626548041453829306766372027195497713334903292796717263062062024563788294383854341438918132642052673792251581233307306327798727637019000182407086929703153635117530948940101992842080810720242267557840112424860250146387248216183867151020985357161602314789257378064852839325489682774682063000482670877779766657380865716391174685387217374934572107816702988351163833514436245058349488784636342039033832626691998093582538069617226026107898110783416424979621709743085271764659342044133846162028959275357301301105744720813881135133799511967323121858152099778529709205162384447782834904106215430939204718548888262274983329024670888539757082344669335354375732773017417945809774131545836303563122982061906675384823432796898730352123900770023047794328702042686146848157649683440323290355406775771068350900822737550179506954677657560634913207524075741949181998258226010132909639405151099836738571407844752928328431436922100456545697240655776386615396757340268442641428759296301929375645195767819506681884942489659295712508562911120832582380527200507211620689375462809128140265435100831604605831852458716271403079425766317579341233564451339250873388715511291815664375386334834055605078941763605912661838379059230360032846676464940629757861553434153921983873195658189362903800865716598973982860975076927106333873085946191124045722132343111730795988119910677991833175027443709539430838026376209794534352398027673524674224973747135542518009360798664877752600426438913468703855627394515860609382003234995468235200437676657552184762405253621431286468995556235730908770454945650246213396420198446086002107516038587793552580069173544401271669603439056924561818968280096764834068319519628550371379866878480518147888693918361242334944216417973464477819719686742388455308523626529693300047790361455864449469563587547127214716622762054539120925759881453344879533524816801966034159307032386670265725034770657549887389317917332488295135402224190162982739584909710753721094098750270757630342980931442056382058474181123948135399746321436898550250074388371941528650098696343650635347740574818460816978961622271862831546481299594755421499886090042898346988519239883839296581152196110092388476311550296653512088551714533457410674025793237543011781504636028199248481008517448387756288903206038627738607927418601084824890746631831359570096868192617340596822639535930635520203407572414860854647190577490359481931386710457677467356546952709480839064244463490988494713926262858822781810272882635870529082776415888842324614240148807971703022006019868739132354241582399615721758818116884193627143905334198253027071557608593446311206212523612290772000611483193978241207312067355052120090836185241985714778235741141968058881066310473052902581011792427041682402355965772652040806485471086706925469452653507799938549358458101388962426564604360942267288182237610586212044291384282606019824023293567025697648211839384224064791005946391514212491878948389345958895803162188296137813356260674146101220708891295050650040153552874469900592923773908983731759360532128056241050414074682460366716595836449232670715952532306682022770983457631314337980502936833590052465081758755137833412447226580741163488235456866622482275033297851468271850060086575819343453319897474396752692731157052088378781678749110696590569021349376097779143120197994528236786914219267397845180940389952600112803451263829027694990155617451873030161675149957561010818259344427714687604734686808498271284142894885716712111533998439427345241799321277757780535132038304052778376407796602012714972592178035399909291312392279615249609744275460387213994051979522607963385498465560455063544460839846090531687843427550085290950685502984514299354550144755677756696348688889946707674040065634217891380049462474586164086838830892979219278103843006195301847968592356943497851641482086996283148177616893692036988137457653621504115482759521706211370798572721148522314559405835221050054492935129043770887858584985357316976426722189009017737727706391053186846729706235268305131671730556848099933074456749684624708919387737943497884526715498957822886008875977773019053210575033812137390782585296549196555624696716806221092973241689700958710119587521429923907058800988965617405181862244948637756659762007278413859020782557852231901338018517665330957816498864717899940807016875904711042839744711790881584114413517996684137477720242904759428533455961199816618846488843643667549889836703404091384390022192689816770522816194048623399254943690345173991509825394902563359610334985815416930021465754486798825463557124664130358469976914609794027121904405789348974012901329643894579413397737114852827239839807854459786693766474574460511937528919937810301205213063807664191049601753749644521931533730624591046150391093570876451277667658849591838019886274896573493363212322817277907603048057717067112993677848283080176663242064807769908217011728335110768736816256079776900200035115644097483036493514583241175356338010016652147390578219196477497228933668312527502504968810752108047795951712015328028790798601842252561094712739848319477952380356073481242393099498007690688666345834170745319140514522775507485372642913249893611872314425351369212235081657464707575564160884820630904825482607049749719224250801297193593148076096599838065432711965326607345942107347406943150551719126790212987995852389688291721527343170878970799780132763484282225312495296592176196743722626599702640703925133276088420952988651465380750600271785752272619138635455390295883752419279759684290103767189728787407996512889932206602075475998219232587126363704004005670584843314170121676122051216423751730244834380155576782738502407478305509709852105736035648961281562395593822074767420444897219621546022326140331542414313591533816529612931537146600910164042005179731662371535527870278824803959566668914173496384844071496732227794408447152763249058389368171883921559869464714896782568885948540216187113822623203650429957594960044970461549188423095539798655026373001152532899300544322482046574323252267596967305878507780282391814684928136305547412669705661166955391939147204867540629015966022277931940463304901783333838551065071463344205756918850341315676003399508921837811471887310683355100279768463529859371559582198115139428726448130264354635016947687513268875041985907236598829414896296999762721407320268197606388746593094656166374201793030924557546831863293456330608266880551420486232069248994640186927887551454019720213603083693708543151696903803914171476713414799731702453377736484944358741038149898061123697228309676197520555264103664043059202988210240135624384001004205069813640610676056490147017088664390202268156662914955165214152510872980705028471586746740363677158767628790065225382271441537729606430545084701415195117623974326764633999043036874203477574858134467673717309890542450595692327781973674837217365711948775798426136012567873710137644341915476236473229377185003210702374887160206467541885785946431415061983652448950541280866011881482637043543158885276291177975385101864214866356069597687027636440894906513483130267952861400898964501492263217793740316028448281154763786702957094044523559379323086584106055796681571273257901007903754075679468367713515152175009369876297964681617201646315596129000215230787445523228730820494549841167152246674377132234930393828454874573816986293984983643590002654126022657980796815630621837791156727066282805973118481781118354407969761459338614483943960715349124322435835213919478342324347287202644039888545077899453746213031808256374513675304749307399508772040682640171951192148589615757109282374240882538222358624433581412039181910966122874485001516290995205949082818899763760411037994190496918400383364754635290037104845714922829195551685065665158181637713909649638779960564592523596343150901994825280972973465859557442710962659123292374222900815080895440783592255117185892492141097589165482925213226995447897612392604728497541545574260633787102522248958801993582639264056829572118522575619483740646934597097611442640570975167200870283238876228162948063969840597036269332198405909067005139776642492189185392590879618723349711135898652925508976051404432510850919994050866935805695155280987287122499141083017197694586435612455099250968435656381742041703617105391031842468271532871225329698021929882713266462020853098551606754512349481032267269867349736047691294721263914389683199981042314419399018771336250123675641614218172562780902831545666895369475260618610444017975730457372120254107496042559446337442986575416642933308328962121679016931572295751665303930055191945802415595290727938249857796223148730902164157051042048481001666425391772348693617191264081628766482868068870247516600585847537147718646385790739446091983862584123656055789185218638478937627836239277172598300116809860586823443685169232628146402165651787807170239213060787553126001275818143139985798789774767247056208628719852164988262564981658540617244003069248195597909137567483140848301926034067402602176438674103283329216026203671363773214215520340998954280799932286822124175462233406835761515712850532010080197141137649283391128780665488322128360238622150648024800570270181756092177080816902216047198401846136774367866016584075176039780593724888191974828532359527616298757981935090892464102879942228301973714603376542609531526190076537823215899598754795935394752263531185306206442762625982745820061316276172594658371155544759992629572103881412003756234840183761612102325451183185048276568070563441434067588818305157094327416872184213801761181949371318219357262398867842993866547341551725012331874488256725767362070658214411456804562888338298396604209600985619296039924536926190654841809227759921561355911246906954752945219633923176970682625570629013709929540577737749107871373355396830155586995031656753435111836701452477003272696903789334156985151029986080110080908990765993654103736858417330209122515731832795913763329890066603891826399062776893961478079188772993203518632366143834340408901669035269411572988456913283551344702239397764029644001173694793249593238336863981130115191930053495383801914259156870949960014955440808348623977701392408725601522921661401455116910084000525761491863887084629589208493246906267075495888390491524827072299928717051778020054274891265849296361751387542158644861180787509240031049473530671787413702199825616330134255895260260628627775141563668665792046003071419275493954656106848340168164830625130025419162675927284171313985838112981969040743440571397904429524343768326235598227825769373551099529242896839554191184828240333421481272497641042485454849039859021737432187138013434973157492549140246130497328196530222247069767309571886014600717277481703889719909731671628220590804521341019440615185841806010547235007038862702214173029843833755517789081066258468440300666786990174360687077129856420903457351849334441634752565143016673617998235669240751793244729025470066007194123466961184772385096902430090021841788092617938281500613999223465988506104786768889679884895765847842696079765771493646349756028061931606495656585807677944902100835499230332812028899390074187514764578786412283074998148237955661121977598859306228268980957341953047705596800986157330730423699555657010904812434850482275068060127445576951928567244208761954877234764575664206918958502099779666435728898550809772663140596568492829770509556861129846973219597458518532544663888164777714836559397579194132720240109810961952144197948336822760235366852740778087880179619718100055284533032275459647155488685670989442484991063251126230566151910283971125046522255783998102256934569073866206130111961956919572325784563587125165962685709410959703329358974185305205737718385248739403430020880214142710189099837406041949234351450911100866141837351150030454793078066630333522490718054658403379290713173975370304719318397441475713482244324998561926789123528857630019832671475463943697730503665855531098557054061249158808465595156196906436601615389422583951349194080971340012237305408676870401839937737490349506969934648490243563194091027942641103483194538288162746770547567635807300974921070469038736544257602306747982750183428687293784815489586187131608110722597582870913159546369430750812537111480891204213599476715461525428631625843472027290543597398157519016854778936274816937675059343267599441925114798835037518597660588454346311678664699162223522791931178932481063442436103463918212329774896263945094483124647809994974571190139750112674893361563641323635546841587486100853922925420370448318938619293148919485256556354033835789488448122022940001538234420813180885470678168716873226670592193123738940087959040437028153391343717539494874255165348963542746133126131405387443892843454687926880435486566447161997351112895915808439615776579293019045349234322156658520705579069742431873229773076537014172542008534186423294698469753943016563537921165790868457048490288976329603795105671310482021913912465728907562143785095992131384253957537881795753952664984701990253328570471293808005026391318737726391940876418817607538503754494340060876949375718029854386210960217984029256424785074548664126699012868332994786633675441074603224350246698880258576632025149453738178931840410030065684135533433155184459372411020618032302562050541344561918896372176003907097213491809611957673422208743803579587704644183031267009159658063590785079323407340497395770499123927256478351277379144270812517820230839172616980588973900592419431250099608336456474857425999606551003927470559254858705066867550060429363923435603408928018002015889233934687301369648677806884195625349849693426547967046432774590002170098495963380352929953478670207844402589049644971693875218768144931693072148726333845730714379658011005581315685731803462496022490719836734356502895733374689002000665565606342247062886470449417218309191284240061568794695445457202806508282024981266928067793320225690505000207087960437314019107025192287521706868491977515679230402585181985125099644518019175569688663762766566318259151516882294839602411257639295756391808646806322596515649661422655204279428407996492778571226037529488602330447795135996997893910464733743564997902738350898409156943345046582115502112662460206430987687612432185653784651290670066469489452152027126729819585536489589784072334730794581244453744429220479024745293712638567720475658404680638988896195807495912809194953277611307559992129246827173695240834097529552574894469977987373604703802644827159448022034483256287287539632531466319940669771608640741772802484094281588593598116090581903884572781350755552967222922867827568916352584353664265522088947885862346997661435856781098185847415057158522527396441251131196559830167530256398731599146907048986699535592091545145234529303154604644724386695682849744221206708469595382001209031730076587882743701513265215523504296625658644376428644042342943268253775598934161912579756139357638303388851704356943429117015033543780598712036285512960795421877400048569319968061156471503140875934640725461059236750044037382119304526804978284012643137889541283858792189292331544949274035679327270660922379072922914481943803849314384737258442070802531243489978086393603975476795035154097934434816059781994961050544831648188321556775231114605358340747312113602715058675520023247236395626827216916995050918939908337567698334959492929335047654724419729883238995697148134431665356743003309002436629449670429662427134671943630885727118863327063092660820224469104816776015902598829448283275552204159863500628113360719155036424789768469327794255333329549078602109828968541862033693886930246558370071785622840784259262922758947574822469920129671374743989865658099129091539684872361556994666777931166412326321923745832007366288839588582472449015589084370105879797288383449100953923390462855358357022753101334319478039399704883187659598728610646411036638087121423137564083812706083800207036303916518967900700894529808357048841661692399327235684911292191303727293748012376481751743642056329636792079424804015581116708406801099238699924894940907078791987178428599917978734394818989974707896451161333352913831687249206777380580318017101366026507375300397273517044164778076267788466425449386124714741934603565741077125617141981528186517184617034302772372812523271109909418277219763721907964592587476121755259274703199784137658500830800823312984513711035643643045916068699187472499175538151016641776262869371824780686917579362193834488261918162581517940916912708507986999894725427284008909661205814717496425488002940848922825561690347191102399581380401488278432704591502297905864587806421037187021360140113325860370130562546214382191649214965059362084045178452633783863797362215086685899402641092230758260056786054020021752397557402683870878077722208470545815253345479733448709662705015950541743093873472376010731820702633166153065810490839257610764489133947958248237915504671667181612066875343504135614933160509911391976492945228412826378855383748834108041021472884258264627299849476048345125145768300822483976013635037265174015086410001303011363796406427012116970001238133224000812508682237716658523404369407904382164473013487715169449149784243082898838102014444241783090485488780484858282828096287640985405615738508427512218451076794507885052241066359379220153688019940141434679818919089481807222129941841355608404560895035363840999180151661908225043869445280336128882949900266285129599037529861849645851129371168136240914705779272764380849600828082980258826533395061297909926154032117630253498876668984713035466423450991069807329298512439539223873557293988506657379187429319851008473488499647320912017226240104990467715671321661782749607522437263517391384594281821863308684203782903215254128665690472673282411350579073727715824911752408386413728750853022798555044183362297010436529714492701223085634638541935378916190353812248773202874045515963931736846763218436783096586528036386173919828780857240748763180141873341056748245402635821401635324997683989274423222699845211194895284782773018592257840195484759360647493774759113568161786066794988465149352658351208032778924615763864448630839634307140543604176632050092020100686211727041683496820890949561094804165572833491687948131378636187779820162052445608060570929163767157115855631051584516637797533503635804511606894916121263504099638212104448907182064944435661951981175519383922443579030272886126431143301431888387961279739450171722195841243113363584074459697237593413753392182233706524771715428855321181432261122084798517241455214590184084286501111229853304606688519699533582584313928304435679684959420199641853005475278943207926402157921181483060779306322904697770088638926221118518550713480909428278654219587729164615768236364175459789036829014900354597096061126941280449056855700677132212144283902225634122533100242749643184400409781431624461508583520861166050574535299323640423865856196022828114090689461464029867621587078244687161684631942983708656629795459636582818509196004868557057231145168343711833923159800399041009385038200836501289892526055833062877184493571976880494638844180801156716758205046885339213224593773525870595571259932240287575511344911210738728693707038796625712567757964359495640463166533333508806346104102961580599663233165706518511281160554544792482487689694197797486974464328416468840135356690930214498697513842921734526164135899218009916345952700504696340708282031499976154566764604360303152901769199418659052065677057942209580407879089717634793332988674776824886726984314388904218683396080910980909749234641289063655800586264802096400289467000419552293404819910092576008328133960299857643105074850457391740201138652869331920725753660171328607542697146665130817602487961980503918302303480539632551415185041035089647391815871490747466061551064318713452139986978253381905242282450394110669959138391408125532823177377726693730522165919007166398585701136708760977384697355773588528924510509106110603955803447086013751064211533740952338600400580485836457822990845275642930572378133441858855627390733004099457629317114652942618084304699027301160849518068628190992181200240383294296929033152141516317665269581371682299164416497182371985862480642389949198553785117747067026200888913802348291952759275169803532936131241246931414941515595331516267658476571597856645038988515583833251669162476008500132017616571520766040175433321863829192488846780708685707644232830684222305423669102423482723409632518624966313425380675022654164384540685594581937603280736218008933210011018579100901604491151894599512442112756908018431044984626113991920969545218031651334446899000856669963014688447051024619724696791215957537023802898495161260882467820366187595402791130978712135549217280118023858934398087601858201359436112610654735199094474046883844485440212635354271998935538195064668471179194881337225207964209488639351594269779946444188691752829224416799964044377295926545232084715689530018643947245185991555231288979408637082130786596023882913035393084894374893317424610330125295126092010440847058707239480041338483059077154476197863997821557894998668561509653125540272072208375256820281799461001521175517312127064609803414534920268974954888900122198539061310717688649028120564856495515727313065856066848372305961917323868951382285163783364780433968851587567176975638585148413500551670456530135936516437326917011006608020529449617740616766348462674051888727123604438675625715055755043757432138050524830305509888946777076221935694687317068350191705996842985197989196542520333309279672391771449744961722614503066179662651933042611640084168082633137068524579569619986726779454776950630122913240593706865999544173579605980723039862015761457699339386404609371234264924886349772050568275517787899041783763376880754852752895856588518713841591328533439856697766371540031754608728212493571043544532394122207650111878001074935737449947882926147716661707197845338862166878134237576289660625721684857496502279289146701299527280494566834475159228657823597700656725835457517598588948229249356224612313915286558816205597118950578000738319392081281025839079159584892184000060800543235436910230867658225412855739741530069272923660426785565179824777043984626496616398042033030614286179514760723958930245832040421269757067722440289497320154920467126390312795834825992851511948753069154103882624783083996542255554282968140670442015162914849132243430425451327730148682747683246806682282403015421946072698074124113144005128895872783807644066626537410699321376945856825264824981775003241041502668802869081663344571007973517179439042265068879227427350491120095478687492553300759213370195708958455103223614682719556275203841079382015808927111188384792857082012744375112591787137806011123718625784808789017859627484424435722998218293875902485375512431617618682154905264996034421191830336079014823912153167239390150002546466566247205787590203826986433584121581924791354869634932658704979682758338097530209488024917739287030561325408231852300943446683459579178075844304639731642275600587616756784527324621412148409824300969862416327825544117853613239378741445055483754305900872302180655896047093386025805211943771827013776041469567799282062912715470005689621765042265449451946508210923998462642850057802166844175957187865737072357123354883423913791459867904250730575823572640012845159015027546036629234712827884563587838948109932378302153740301884199756960282253176414033548364147146309288783465646128006938705316712280276852369779584436471912813180390690119010171408176638871440668068302734284860260299774440011129522705828195384993204761125677198915084473210912933028932370235800679844936950209501437799331530946409359263852832871476548762066316777386235409510169032010869739616482153820898098220150153847677933795775428397955996469532346756376928246957758510680918987231922564564344536660939261024756028535934579153787878969398941814806581637107347910423986939973935326835646362686051849956589313775002985546107389625964459784487017134997482402789483892189070968298988481193893963767285719914171508353468850245357497112537027319628258805374227780553678296741887909049367624234635444681686592437595771326728094920773304640004524010063143520124242169327856176615805105565675793460466054594424381180269061453905722410270255638042583396684353115570095609174244759675203557336289105970043163799226639580645168258768928183544707655603899115377497513698900891375749877611496542828004778645854352733162647502822882930305000838506165658472185491999814096187729928969279382529432748317189611677090398885091487015900930254645475642288267951287827379745487331062339640688872501525554845744317107370845356036573921102399465922160714679236132533565436387743790121887409929147086405242760695960017053493302381839760454927158079793982971736465454952774505380464189780916622903813867783573612862365637209455259345212791927232659604496023041180984403753874387163293904993879546496710666332235635741580867620608879610118909082593496719055480979336925419395486488796111625520561156630794162766543634180326804570081675107401713012559249045709392648320226530551784819438181110558587603361631885315924516957771041306983765523688540360439348229942439035627293874942279908783102518234574201540733653632855464976505282165151432665763404573377885783238195345443276633227780596122525123679988640394199203267705486772973593586419160689697273112314338953628574444459455839546061203575044237735957741309418737815854749002628047729811228872864609765132954412079323770970998483396704485729791933273365201500750995995848050786136642661914352995013938989934087165566365807216822866787676773939871052611770755506574336049492633016347613666458599506913914457399052223622939869172207503196376796343998084433655651034748290311103243213220353951634873480631096308308061592454977647836580185602496441281921606135990146291551811238812586886684655811380565348361434047221150573730089469225070512370185003741636556035833194970504098420012143666201133551361996600342739236267916147110660326857126729571071666617114952519734583799461453889888076451615981104581636395172426557498881576982081813683010524245582805822504621997527269315015840370691589386827456829243901163748887919114873969228849036963469355906418203947525887556576990603506502848985125305118337403725672909536153362202590451259440046071518105189238489029109295648324954242273721497347429637846327986349397955163932935487831915967725756474621025039483490264941430068368643206542999253910722051275909619349951702921085056626878546788088239377013419557460056497469610711873199268513492188779727401885502947539000238877343032581766985998823697125660094145831496824930572337977221987301924998174167563846722175454689184553416264238940681625402269170828025994029889575812914748697248745395971485338004011745003962176618899768597029387020801531492416703965973902882850126194250505983162288827672330815619967216781733252647450264849820916286173343048493237787595597425207509506612522532643794825861154723886161633363878992677262347267224323178142423463941376616431873163525922535182844675223903108003642280569977921155685023153815576064065872689373139557081002609407812692760963635694339215542624671163418971330737499621134930032287002169686923026416451684143058680335761956146688921564907986788137062169061395714436734637023614042621544061403751464369314677738074328474961915990870611118189673584578601330314501884552156898393819496715755248704300806088553987075739691250059166449378409354219689961369154610655903970246348967072562588538550416716976009619462297506372236444756687358185577043777030129276572233951203033179275287638206325423150447106096627422345116145904419383035339744320528747583697981512377951180971571753938684903856385917939442310120700515710372126116393310489795970214299449607288992971790448551941506421241752096816152921755397844701435367424014596675373878591108695105217550321349472857841778533224584109256916073865083870090547450966550868551872823514214809578288432984417216976617693431316820972507206116282303349957212333709306698306177394694028965433825209906101341090804576214031858192921641406968149657824235167772568416641952905124181358825422630215219999629394166535086438991784884136954647039238924485004100171404394155732968647352366172602366964648802285821981418048538918683925228554783146025396680828698869508408348170780086403901934641491761498915276663121819726187602364749179970198658986906476202105875939960539114802844946231011112583230541555933256031804909318338622787900101406059322494725174927356752308842919467200919861709593156519173088092771241687257009001244784385377425309994874439972972623686587648838487046171693587068479461113039523855704260181574346974470993276273967356961123156765272741392582941219594764080035705364007108105042971472990440365279667930604892455732945360432392076845428141240976264380940716619910961299649246436507659414538792461726700946763738730748490408278482851858258367299223719409291728965278430380671031228009228066147307067552265236402273006037732062311138924014362287921517303240594017753793905749346079627700462207058048875318376753549744194693577318889683966632412218747952160314956527069689630841764014491587029081184677345436408670900567985275438197696559571768086043470378822194541609879927621683176005343197620789557065360883470768013289804064094998250804162592798306033322445194973370694406594237677698987089455199836077084849118754710096584103974859055560095693344901821186366070853551122949585409096269003477265334734664022001190023186468055917683568966155491431180225116491710919065469863844388988572965118125957579677861311691779563666981920107560393982680660446132136884787246861918467220750246014582537644849420553379890839614533938998046105035796185247382909725455471453365394062657802580332366964241609257667816735991928738799322769431750587841833516790733161785706613179885586127100846714004153208688994978090777127982715168806085423853445015806724316080705938590454463542150899279802060306548606186291969766830314245908416110102755270398746845197709218633582473481996602560517017339089397575604782215627023099830475553058320289298000319653664716093592329419990948193295036857992674328062234727385777885280099881891567265483257733842882292160193277515470765376639348183659781432318298485416809373388298124936902994569703132286911188276481886639330049151323576142339758793873810332427406646582804414272484589602084925612868199617844327634200841435676999281734119305781700464053102969299587163322510195399092171722480777804693444153539423422801643991878198112255430506884124099476503144497232667022940750082797667768157575480330421153653094028821618083045421565555220274303946556337651030496465174449560935350466868021115509365975867831558639542640146341279631085367043301815827024176247360886524579277821832016786378714716758343125133830313928009410339549676256207594794560857856872584302578119756269369050839505747199196186239507826381026570378418756532883699717568728071181488252082746502085093683020396824777312933557662812933456204313274555960265185781172770249023110162123275278898477691948068468093106637789713093932160181994514283628552269995344098134832708680136869616543437737407689517752584069758926472218960342064787548931126930241453620170917838289639742809418812511752979173974955114276149955320496590350104015243497261496651697805940375555157850693574266943295055699834908076623873643077940542774658317501730982411810342519228807922058620660886429976998552171875934262343048020576238019867717617400965169611499185164577463969778790793999086631760983028029046587329990616535605326662354940480114429837718245823998232677357908902566756264654747832026298557309032299484884694374836124937446061418071111050941452333907602872052453343032313038137539761698332126709791434220640596304370175233165348765341645184263305988107339094078194778506766901094117628077919105980281747303588632245869573256383148827452400725703392171592094341602477365270771892326115250388427149565733684587892315897096521128532064580607322799606679379784297018437027564921483671693938723287137018412981044613441013323722310412400031670618024938057391991314541932024096060163633235816072279429983162284657730163764731417628738131172552637823024181472118200062324518934534108548654292454264545854141425840415556761603656181581026118202296680535078985524853497896879259740226553333379183858650434979285416344577851040695263369300914259772808888739975473214723252350581854710705430994436509992190140718580631177503488834035653078275131034996162700077938438347647419370498534487262665826742312470019292339681021124975226769065604709793265812963879334328193531513244919117650102558673373081936057765039073182661897306739800829144393886912683434892223964483183694675342556202676686926722397515683177539564068066890562775721111461573734651526110970737950062375051219657508070107848051761222519874962282837895272849698255728464003510007085714905293932950716886481761290747574154269204749300802784070754211431551469089898313421771183331898346231776115955106597855909737573810690886016610119811978235761682300022886154223074802802314828995979118194771791143538531295127216964202545136753877899123595207935701118487491076243391803603197965149167196512667428029670078060121671167184301676074108691816283782059011636443560580242896665306673639051441063453976036203064084579025006477517494951786391438772682308287343966223880957790779045700316185375392435081677116274606052657048072376457186595200701890582337871473102296455754501323348813406145439254177177754450806156548022756189645977998047562244008901560012695495577621804570843598028671877445358536191909384691864919533389800153113090122789555227759472596916542906487237126391415046161439891939241235053164228662929038025640751531410205284919746931038892209963459993587364695313596596357423519339096055422777476631402963893784186227819390189397412484304912807223340707986015507920848758115042984754677762679623282089353311757153301940026655481154665389771355774164962739862240810888297230731842061175395658480388080921204148224919360986510589333047778676703862073478700748720857048018236654030444497682617484278108563810042534538676881253198366632108283417386781059233825657753483418865695046888819408476722952028193502724134229763355203085196031990982534964880777459605641580342140557501897872925519329691730461313102948564646234762126131124858196185616614052595277699377648311857383277733556711149699529414390538191015076591509940900039618162548920312960294661039317763833177684426816274387025912257868052771234888814823636967869744995718121597428504946446763032777939691663864863946130311971117804633996797147382640099915319316215095450825362899217351489886507757294607460417812585270129615760257506965953530576522056909238047293661005311994015549849052232579487226760252276085544702891999947827396082321076089271037757777619257638847619344164005214197720539542808402179828629326496568244014371003459529798893506355440514788929980336458085378640015348163737519876846241452997844190037511809883605301447729405362293457406788997002645606384177071186538923634310712662594698719778999421345668291259820584317770049059849917471293302206258873952131357566177711705038538757674542759963224490587871629837137327498502350028936321656542118851642823652186809206272441600216884293974344029429630178723028148775877693047307486926682643625167119332916285186495594110137808240880658485010199887960200553521103002869877026372227156985239751325564431700899993707915557733165512020760983596903896290456283081091556383367186897356582031768473551757584669561132960771461096792694303338037153161240485157571383525296568653716906895669384937060032535630626742416383486560772941620539322363245592989444762415069203210957189929359751575438563545757570482637121698764561778014177255976443288648184806070035469678399824655568656975192071926029605857357483000805930733216359171276178048930594898258276261524737975889339839817979197922562229973739465039910026689194876720390339612974478751681733951226171330210462755627659702833211858900238054790242855362215570575556562067545597185468020883982166583314285350991553203480324488290493212575673516896255926877203722034847316537742933905937806649270818822515600446419824029691821223621317819922746717671221338717327480939650593077538504010661365219114793461519488952230894209190857391232693392289259016392493021578286266970935666470758724350844361234520438335958400767577517673915075017953858120689818234678232733112078813012671050573456821219010316355049203021357878159518590366106757861237230645966722736679375041535737463857124504090967319076865686372604896976101590559524678093232891714569848764198926550710695036982644763800700556369728397055160863092180116614199038867273258760938373115831734467916419864442808236649749919513747449427969042110462003067465386319179976313214544145156552160349714336587775518260235115993281581535675374433450010299101314203225729060535619990514058781980709967752991050739412522708173716415795977838211610896983462175201551855894978632323267699540594989908594265670639244208761395028233469953580064222544920969876506377087234248001805387532537047344293414075634410172646966440170793736151233650480657792102502552517634847517430852947504737257182268654727645850351889292710505008205199280575575838902822374677668496424494797230199604837559763778320672539121463123227282796545330738706562362215233723631600312263697702544115584181535810423598222884037734519710073722752335546312892363570925909749027409809039148317391980840014117396430627701186606418144495317422870338496283883251616279146348402522762729986761927191858019372085534813187861096429254756899832978003988758392772289664590116395945955001226899251621486790094935342539311443942751461616525704689071007901147432555626682175191042266650191660472114392973919368808509706028540086628497636545178978726923529676574087305700989150495930257685997280517988004751100513522736503113006169379814160316490544655124689603655510625715361753095647183515138751752815631932891674927016097877988262332744597942408452614811293035672621162367266644841071656232194524954718487916881436555067874666404846392583233533623653402911858688025070859476107865994468226931041981164922306005893608913633144585980784668028297916472530614204290384629779996592974353940986321638350036851998087026114385587594654735460717720744492085771272146766303374787266163499808051372192459917047243813786680635391207911543533766826101910612875201727922077454319880480685643932246009777473323656938238345217269925202171414359001161185144755665221678972188380939315489764807292361467755054018803941713963510297348959834150762227988446671975375867838057529822872676442287852947253272168366416095303401530437581901533181163480194939108483891026836743451185004083137280095795840437638177847187889697144399209999124253999532466760898586952586439477252450834799288239782942707636452379864248441965561477051937848578950584738040221082584390480049633100146852668198693260841272692145304761777793424437126298024776565965190379488330810808604658010124381667306779210466745252251683802075689550381758125155641902181145491244065880800297131075785731361651124814714567440038246361676735915130209640653419635466172513891256757430415288987209137297305864725940888763360796049203527956766563336543143338250100545952163698736859210702435949897966508613838897989788202885630128943362622284835161542119995574073080485839896612330112976908088358717818574052707026182519928178346959704252481860981582032985544127052656379213815706722676865474068398497078651856207098020862202793558624766400727926123144679227067040762973416985967361094664823818649330697531577404977885122465040059333686394381751381555912934746092991361100517778618404650066823897278303688923376928861089178701183471355993347521918894152469928802716433032194714910466740041944175607444611934130567688923693195434409992631973034641473876671682514191681017328996893583597102596731551551888865114781137113075482763015440115227837262662843381829536333245817916202022785089630595674811987899172500392197456425734467716541218557087572374237252795137286375133094011272964073591515111377789670970468481798827198160460144843603628255207936212343364143240072963101859088436920524760274750506391904381331353947426805775420794831690730158088765627534171056700940555799023447488032484791526933160344796176562303862682946432337218641956854864721753690681224208715189806973559836518953346269834491008050313470592998309744741245290594766475069422256783587058324150133277804263058788606741618002758563423569470612047566615044307565721293501933973333747938485184067572557620980624793354953449083010173761939514751585896080276419867957597571083822653928440971828459624978517279397933529482483424192167999004827532051338302317789639969150420536610299286273834971579666946397531698603492111635058733419485244519031878848566805265584533807982196972824594605523644922561462983659709765323670035157785908856949836563197702982889384437268742158900381337463497523713720582886459262352558234900086583368564588524908622138371827360727331846045250832121734181802506880232680732643938308693467293619944074057798197488237385547056685174108068880596960353574327258002492979134556653236477124369442493790363914918022336182126983544078100297222544463518910148976140236856143573095971287602228675386325139493363449455712871944809871927451530875538756005430027375797512329910787996607042622184103951842062134504692589934118496390698859553438272802014246819786911576754227342651980128800200841244851985690388648885310931817619060761676336713632677715116673575710713013833356749010567784620088769015836103580385344623695787595419132092755729720027609871690862121889851893502008130435076029468820318771247240610251261524234033042976793404570310549593942350822207223359959545506753556001120935593608969949532879551352216056594762472686133545108671900139722380565040935119619526583542510915131588812009171104932386042502992384979005921082903540530651042308422464263679289730319714782637054365045853621488923995842600991292796113269402077932924859479384399525865583989794585604265082474478262680506312370852365029294147604864193910887699230759320149454345690885316550383832478502797962128002400557153384825756919283708670678169894537867250466331952768757309922415854247221614579863912742740165436360546687133110436737440316349797806024957741320759696991394283497244492990760425064591069631439957343231587178378997336226196533434755606320509033089209892216827186867462468922759845227702688234197367046795433390821205535880167574622754604244702103139043099839785633590712965559943838155164879830644504499561352035252302667124132305702361820681414103959838799075637270800610021610825557248850466601513952717838935205801512980855039225437588430170008317995308719857301976026317569913805604422875497689871579450226637050750227593251499900526244504374648263248626964099936948141748008201244131966006481054863765906378634330266251631818503701908916124758118265038258467365583032498207344693394629498625051554789247339921251660537793580452502142476312762410318755190765593223415544020130795681123364477598524606421900959143858769103541881610978199792502983492308728531486543117340334059615426430275765795375638207915380341869233931064325065758648524208657107745766749582482547385107621075450042006436251650716578616017230397552210909780145956549098441994785103173107413722024199755089114982468949916339572543846305799166541062935803273523288827261943924924456193717624194915532830169965076145783444321281203393755170262856958809014122616155206577030349808681680780526073154129941771038517056587712340987341842341839306211129601616011072958379882700028307751943106961807581518074717745628117479983306388910871045472272026817786475953945163040661082006693093580889454571933558030902626124362742872848519905955983958966150579200711977184783186251609034169500972380199889513197150929126393868422524576060584908129887743788656152107514338076374949068769455798605440802893416391982321787753404695860558300751767480344392275427347626047053829671542646330075178745817448119776457092170663734555743725800116537545977305127625106924187582452632573256066794098663899455434524805225254183634541460088660736365508207588955022326129488107066753683219955158833295057869089843860158065408887715739825392372841910758786322245586898597955549488966634339594984412139393852456076282986530512131541994879056113603717358028623426215400842160107114644284645088374796259704136745335409086411369486357333439865110280457774179009916857911314581290068460687043031755758019287852049657601383683091552850658908210034551512306617576326361841823411256619656205407713920254924260774066070204470393692901779946832892223821097141346503813936974168303741362548272524163283751044190836892884572047105508134107664927179437857077679497321343817101827058429740370247084837211049062733705707148370199129601042615800890995562783673146567027343426681747327703801684989031612037696210087312242654240050460639812077148875937374358469682461998840500501828538558354086095662018511549156791991581626117944410343586391839374715258232938086999178704036347119872527060022309708540510706887621908322767919335544431273314421156112674204109515487108830871820714783035368707604230909804173528617121454939376784236097357596405646658574361359837839667028422570748805914319681966055999219759190890899453408672469788908288133142690142144500824557135149158220765316448345004903961965321148370335775391081230628407055823252568251373751793656623878933222518263566675087884234534954814724072316252122519689331978476489975030209538574549829377801545495882845269796368636273769021852937403922089480174278487932759776462529834406225800116682632540324000843909074535559361681760474665651627441748016578293406100409462501825701189650797346139597169585671506897536076168200844326395970145997158913545073373344762760947831932557513317484008653405999661260245922278705268541678130118012262831516257155903856553510485650735857288359607293503813909490446950995360414474007397038178820631030629969313697689281740004594633553616166164236647707219561867999241542961951958670105629719565873775887290016947826797518078439861890265385984816086048787013564267800475438024937339174911692944510226026968834083913381240713823723009767210274313071261313289013649435994736452014971663082233546375306559576921611778246080833735115533609998849474515181402718514299024904148188358920410459295571449951510367965395382893981239442418197205513760880810887233658068364140492925192057013405565675484840138695495413967257753267351406434685835194079728553084340860695022932178724190013703456197260437403505187633165084242291014766612461686043768559550095239823764534073329066049020590796555411031279339653713733300541804499064973384481425259500648836328565159042467777742551246799458640499792403383439801936606981208203141406620331318612880338046432084760099252038976419135729149618882739135833100879580838576838050573137496201917021848615546374358799494220282760586050361235263578274814636896200961128868477135919197172346923302747783373995715629117836526028821935147833205745501454569935559622396763449616978555296897265846982791473604985929921154985549764446523748760082157840861276129049011837418076269835747460913418663242461015733093593464891968837285337883710135997401294882180515312347097884434862791198130533034423398701536079728214992832765539472919783899871371488422027026560389113284764011249242868128823273969929570791855185119098877686426939022868378451261489990631181211765112049906927208182720680124255611096784995252839765248919561386129941184870961461950363730809401149225083469412510681266643067789641402706506183106307756210911850515273800492447979449930850449559126175048161905698887184861913913815427221805176397686085497362070176511857186680087018545378006309544298165498413329787271788136339423694902887382869013101108629819376335218091319455267986011752717383340176366212836927200690813861610880016673144243108677262560172607389877782040051978235858413570803715201221848071653992630747888164666737379707085599218238008178754703108785757644088351977487312384592880767659615376175786984656724588756511999680208934620603512960538213544375177750281819328461561234606334132127626364246576324193567521097624728212762668460453772726737702454425491176901493128783410084001644879927175084243998376469423825609131826799579575383134145430998137537766479746694682416039129962796427091933918366164160132864086151603296510964762663950168761232822265046364151990321755447433908657360497585949385471365849790942414460009746337633540279151632044214657884718404900895528522116637375251853698885018075603525635039158623672229898652311169144064015025084978590540924358379446165727351235963529504975271642277378842074483713977897979585301523802430720622688840810058126461538726035332984196375264975314262112098186757231295085793173411380858951024183303397646225818425713536555756242107886851083659894278350497186454091284845847166188785489930391633861176686300453954189241915223883038667298817672552099639393966652183077670600218930351888673438523064437757745662116064980133339830293709495352108860907002146363987655217771317708628724002488517591977452179996511997716913980448474992500326142449490196779794931489027407783968930849606713309146240525474118545501663196015568196753115119576880677107401576681282688526025737181836331829835434447154164449126634199961857927449516811322203038805768124679565002976569719501666906326189452035573669712049744073652562159411402560408565890658621717410182459086847916018923410166731457478900612675962947171717046651259667088709079304554645322520569659299049488692695277979578769067553426671392703075498445319209740738520780617815885434039271174060186028629054237446728275151165020858163570185931651140840175937319955446292047579791551596316585414169413423765918413460393711006912886939461939306735901735293685382446045482017128332252713505800395312696113205052645998829764083472742743123253591759857743192803154050365448116554303565669438236178685086366718179417128029577673233840731058052345678131820369481465121372167898947083374894242665667123916902809903328440864983433807316878094403721530446572908073105980431912994003482351647296090363239894034662276357665920537680922167719564524370463327053923869752449781494894158145235036903797602645149137834333282533959095830209818142292667082726782844587741696303767824012151811077869030734180460592104545116884887453105977273034583147953908948160691748717065648426963260278658536528133779158507364430585848719107965106658005470018616114389906108585563392903771076047113705652804401032072453461556752608210822716259174953745941047061223869276002131537662702505576121046066694994952775470823401186600513432289206733573222002731002436047157385609843005781724941039487361566520888684122164554134454995286676972597921586634551265541864802166079959911842955782547424089039396633793006063462022153381994374417924657202330109465225413517106189754585251096044770121204272449292022404251227425132493078333918475691930560051358861073327554921634861345413136798944561189502133280921531000232090871272991397354700952584839705371772715928526200690770148352463966026938068318487854372180366447921133704270075836059935454582512729820137957054509836534398769676601608439526258949789297846543771767858776777648738427919234267328925391663924834748816346810141580887353693696928872232162677199868255311977475273649372176774074256139249665131696183994226608234082685681983049123854327610071441955368182397318398265641827156127239813867818047561124625233213825516439063593045880855847787729854388865406443117079483700633575991256581623496721150349418651254310349227161104949234411749762826033512629569336118086816756416933670868994034707653856423092405599656976151925885002652882390449673697324363945232421108104266274540229307946891904268027203025911742500182788516615591875178265454881601989495796545833437309535975272513160831701254317800752496011294472030345799025305457825883837792397627899657656252654029499959971179574901215851528870641752848027660027981129905597934715216919286902413321698391047293733885620179623883600430349313188315845275097096657250026391240196694875699790544332312464979352986498862145338660666882221093840464437165626922349827824831182224565926605204763788875874479277460714601532961195401305153107711599201737248553788791386071895426234166806775505599550103860194290220736377957952683642686299024661902272346928079866182085172680881207088283921377578157673358475242650342238825255868685156054170896381084797166799920566814376236819008324079939667452178469081428067554059394721626042472195098830350348045300837148280553068160998755629436440054238263718159124030097873232390563616604737701994317258983850556640279954562737075181334017481143364442882296924770031907688933057087631211855127836952314010925120902706960885850365811589938177099593651678775945502198300228374636488468005776783123887575452165250264547547575611331006664365327573073809990389295603839807333224726122472452741434585608393934993372321346408301002205871597941885302825078020501457903114344640113851192726069367980220065810720645364442009463828407387016860898500018433794884387037803569711769803556237679786380402978619767974962467548583607682290731921697201385517166611717070725800183225186275539102847490119153163691925759599372549278017318229319722218917091936261935042823550284596151469841252448556232644385149149750238807644012949961544216375936410214010172034145464260179837970619993512221747763614523060072987558992046718082607897239763548017247418635599743608127165519231423688800059945919437077723589631834747589220177309180407965107944680691095091070368717261635425120477794541925842392840293396835615100587053005959538460797019848387451409311411831490709134905105473694878088062992258198096023269115751361494396015080287140283083370992077925461382671027848975568558573143020015295519914621707817473043151070030531739782733492515308945423026533776949488798565741865371896397295737273743533406357417676640190042460879979357667168899891494497837497807949576850556115348899032417103434485610183140221344325868467827751884737138750438189401393456990028536034711312061326576025318922417169375774956831752523613416859010490392003060814908240616679190186114185002165339375357053716547172450267811314438555711141013934303462324914702281932421583472463463732737327012802713503233313376761455728278373442418635776745471673406990636070130006762629599386104347417044024700791429732021997085486571159603088019352869184702208547349249398574673893855447682487657174783316050053762130423203007179589768233569458166720813799973793590132446682314090338578412943663231194500693049907711838644861036744370314897561554036049661854701343926324425973922942095105611921018874288296354154511135348406991415206586366257770671608801418198490961173779833825023250805130893877115339659625346975538131639722274332750993725561292198556183439042861736494696245919300144751729305279907348754726571154241231436604351098491707115933376621990612246158994217306798221411107438191875511725907334277939884014803096741513031008569792272698432467320652929149842887848051670428319891408990289504751682868844643319746455632077961578859060126573308285439653991036280696100335518331698124926667447171242905973295999428928046713678971777982327770105675299439498797024482951380099130481817462047768864298618202283211777979647784349944190128954133242103536292359039652038480601508340909597998669549070666634067843639415211526374213865142247063570690505280273285726215937837212995427200154482964532432946473253486709328052335309873393494381267614700600069676535391592517441264676097584428191696965461833257400033803214925868998567504043998489214608376476413244304781224561637239728617357886759899456011553724855561762473186243187431703038741241220253904761201754311061509870477892920861062980742323959303129962052164447583592940848574309821792524433780854558684544788846221764010578440952443874963859875829130691583044534709596188820897154668110043876053736332269613149928939069636984622387235840594007257991692057417663434095384875027464579752142782676722385151720054176255658868489635167863370792339916276767656290496794253867191761040360728538064389833280229826253897454051111248138580933800111961530807746637422348104904043450151345460990822979281486997761582647548301034649260633454676002573972871011598643245380437760057237368723704992087708359284181307354593368980570919263762871815177303483300186491517866077693675662640167095440976784211971134969613159719456590324812330691583294415782660314088302250746229087738633568816968662926905234424718216290721370165659139248436956397489857907732100029636283642068815822477178507911997720390378937610534773940677292549774370415281137533531194700088472285277657750369522853276169223416929809946187816411319195915462724440024642971409114998412173445328111404290106468150352263623197842807300949839034336150879203438843353045638221056126998313002842885648634398867342333577624802118360957869189470602635597642466592450947080857477292122784079237044450100254190827158790876021122370967808110050683518493811120629296889308271392882454238980312791994369724408747503715710771242237767257672476889946268012684900049747759893040045999070701183436938217539832897920444373867285190804136240010850170606432254448546184680953041710937198406191695604488995579073089451897529382352637057091203899961149056359167488616135193906340531880269478509227779047592032810877108095249246568344772221817641347154714004620500876006822240105464763889378592328202989384207527799190747930664231086721894270920224046124241153846105911376755754611811058540498036798866639499918485046075513594372758874542856549536845422695756837749024002532898078165468096868887423351941745663745620878871372533748785774238143011878808494663345371047817600265141001641283364854394755773342612404382652353853952178502877968815733816195431311520988055085690041404789170638017615316314019666004135886229046967254095814885365078641033389107975982324323471940364467435410638270800428611835053737520186804297609884537276147608845516551823980849079527833569771113167016335397269875095753959944266972519928444451738958994066016166217075779490017036974392944368854563824375233998253495203030392530259373817569041185944046718831406133436081787940495990108187075326761488630983307996770603054222869430701279644872405418866140185118186286201801384795512260886172349858177102968876321669308105877450685166862517660607296605188321084652389625695151493591535780433625656903099997568970170495854738718019503661676666326829313155696338911215651365926977218356860019424228146841849919628107156020521613284822397621275896875061769243275168183162343906623214006158079040776794431939730414681047555931892573942683619709574380597549477356319662153494960083510549901472286444532987588703188628211488920043475677867081457175500746441891937257343491482827945731055922623871797627264516294121882717662615706703198142059680145801989041404884899599344232891275395190564263692543961112507791409582286182877032835858349578358061479758048246967547507784379578954618728408840689964793292335118274982943746156562057713790127172002320959027870784600868760612647976799851398288843760449722915226388100520598933009952362863262122382273166752667309916611126592423704561180796598925978562517157763309755655191198138261346957301649298667891301184818404326937934253310997016913143108626770917627135723650216824347415271613366041647622204250107270705617373540428838754307740020805950669679084134029240380407947101796371206419476290161448757425069268182663766691392288460245454876768740435782392523842671207385170742246214888304215439760434362164072677092537111771852984390183999825427138492292394515753566043150166476543983909847633358904563512309666699172873242518099426171813953042402551667288132302628272133621507336199834504255138467007927916075578968411768730151797439022136733644384642337445633212338821191571628188794747803893913651163409294359649480033046628350526205128566524686375805071303927471525180724057176677004813412341040203008744284082182928645010939532637956446769747026330738092881430246086644304695248144963109408521237264343971476318034413192577791802493250980444022992942685645186768935626071731074032264166920819434784155188909030868163135649753680640609538093742205637945084038576787152275853323827822177769509556405703152692274272926880711902232080996558062835678328966404451339272347287752946676849923896042488292285327892306472731393078573944524235293458446368717690570734296371588889020625594526485357732363010450526163072679345239094711250464174759526149120351062331805530168461567268852952676453542639374058593276844835210142242807482303220809271283454478446217695788653538440266315651046334113353913704815505722339727756727753221443627494222975196216623386620548652565626767371112957220524719103837700356361569694655852928086809502291751245744327877219265466890823934678778647125891841059495861001445666630856671985108974100102600512666018787868773497638971453095719212165151413594554121625329404285738279045118840428943237880890945763316462973788033184477187432704390731621249657679437249748099786247245856897667296313675588997989018337940211730321273333237264621218111859731944696793694235428563003442241230203029790832059716933551594307438760481587885611628912936529208983147416131077807433896889593066356615352008297406021867293328875788460731181189473820906662189257647874498783469542365161912835750251077591785625076336506979059218370296114929310126103634457905876526255518411326465791678661643611335139504362609993980116601263840852864490882924290087142817088493415661365852155789520945723966706733600499140392842885755090132074256575200145716401702821732835547636947728400221541974976291052987109760922809855340693304987159749467477831960440213211006731364243042228339202521421155747951158264786233355388758922405577132912564212685596278942294258607830026521036690347249963240996346936329865098919339795998568541434132803657866856869997000251635727514883160123235718806468137385812780618311942169905978598243445727406253588082433926219970970670782691095947866510745427760219717245334339345010053698396934400073905954339204396083359408084744679793506461542144737841555866770726186192253023789447734223682891112013886060240275993491989955479269379410747926462894697747634603552761355952263007840636910843498486038480004483955339005690849088839380148371688585136680739945268083932114920630106220256830718869458858824593428167853760213386156327304361341314389457785219935548966711405126999061827222199943339380036547372276028998358643252508536570348350873212391265265587480939835536572913413821819445060192158802341222071813140465863655472416408144778580100768482171729067211425890986325461893220539480619062773106080745891728882616579847908986631249073502519340803158360453357822222773721884773696707755830415713545225689903095214024195107539395502214097276514066270688023127690371432213645783138731879885908806556884278054960433198921735401261519559374834664970809409731794607713480953893699115872051981429899504620122837637299649982175575096178652064624927313023518404713659973952056090451227523225099943839721723076834331383381452257661138896505081110306826462587506146215652969569840896765199708786655895862079603217732780964612082704111534485591483058105780264086785039871459362310581170286662133387259026165089834209552356974416129613448557974214681103772924375463489567427765995023848343694201145145602993494370109849905572802109595893326270608582924484457825651813748331745011840251102634033062795265320442543344003990783215552119863603830816714733503476725527935281311153461840054064064404032516731477465404037980978400755335635983270697541368068487280308997840505417930546505445767848935360781522224959381618414077895288363342485674928315370657666363819784723889507215527201144945219136939253736250096654323220363782291081530578020203105302903315459779725038850167802829971609346165295411359439373516282134465825965961218266874854407299876768544456472537067394754664435546467344193167771434075092589995329352425306028156208643441600787331875748032149440275351015960695710405313027713700728030203248854168289684129331718214908197713696289734434531399966746579602717184595330592197658827274653753070569862753859371552094682684675947427391266006142505670604573520061258201531337981645574072870970320229311266292505107672372436602704447426893265481498982411455917829776870581580635430710853473584162057740973876094121693060083138422258619931946266267751183111388198037883886549083218431253078098729356082588022885004972704535781948496380240443432810965010594639590065868567855603046168245783289692287829407916498375461039081063533363907041566393438399164818733233389815935696100202678587260463777942194039801751643241860280142919321955065770516767174039186093420352430326240520620932336776308706606747435761965707624664798577719793213110999755724317498438281573779865709875419635546796979615204595900296686417445102316053935206213645029334676413084330256009395148738471851248280624896460884496379720652928844787822795627536261267913730862755997260545360000541795662652524384446088930483843912259249391711992016183311833739386073021598574219548245957423354489835525933119095906276263834104304505226815105854888657281150345893776970716996102987822666871276364648793616772141835233692967859938814750397228775583525989706053106405111918757853236791945816866006828006326005837261694215288851833421440675960997956434200074959297583353600215769803976738829712086199611465382894172652905901640848410218533229447022648174159970207568178278873698793907174457265661611969598027098020849772612702587807307832453691958450392324653251065218285759610786225790681126748516980916902975298662766277429915610466552394993804857566285603118228990382871408498715058280122874153031419139839516459783416424484605495586188207491060043422027833393102745113607192330749730194408968493039745857536735347385894504939865218732233656994745762631127545580425510319224514518456923770984464798214021664669198437307053427723899556139246902810937915153293953183123759560647039940800279661076294923879314413543524655343883266048167050237104763183179703585254262406346897753970101532656753865366089701411766165505588516175754972078072249779518093733878263731110797452598527211397634725284103738237503679464496474554107028558917356915403136330794624367921274702332182212364669114744423968915492572234112758733735166340911856117777828206122600550956082076200451479494642118216956480427224233126019964079666049696021127888738518392961507461279726313287589362808648532219996040821357774745003305888034548195385300328876775489912439145095547359462345002705812792408641541038791531130946496343475006509913456680067960804274756360668394356556753077177166956822341266901414039743533768908993726428279205307499323362198216978232495083407291093522458065654936727877796365954579531919365141003155027523327402678997297364003253868033652409698556291189522509250601825393418977769881081465146698600150604907975911227539317081121084997258865565934764963486932033921219160666191205365162944266507949173691013298918106728401120890671637308038931178745944535759828592611318276546188341132806689929479682703186914450506608053469815524280956754927368778641074070036062404408964019239867959557028799960493984707827376274033942999032514780896898953526722722459769869227232189627360190501831227553130794057243523060132480056729201851836475600878041201674708872906745085197021375185512476651169337470666882641572206614203021518728031921456267877868381818954388602032662403704730634348857393906675374833454684581276143353574577329887517355176598308507415127394696571197979255727227003724349908878560436462215820451150703447199197614235729331642541258648031741658411642485911076591246322475232131686507394731209062877056188139476546639674985676135746544918822647633944077604465057959718341129510362251615223537588443935755901950600930676914635361561219100924810172291691486131483960729628570312195718662795978729698434541049299088211924064860492043296704620124450002704498938944373290945093505835073089952713468169850714495953404823135724743684568197442987134312132865102200265592690153109800992942983885810326705110491307309357981807691824114550229112814945695551506907052858593829523867159186132093985496899574506021090665676823620365115119125288315779067638560579664171223220200835928604239089243216104648857101119464607979853538265940651069795263419340621025069018861285509124007740834653404533991510769266848403185532619738924240984469387683538576347531266599889250282619919594650397631229114763479258234465647276165678741113964793781128016076350187876073691118263595803823939717429249519969123821597159404681199020858098575876920360115801357663698875318826892652896827772965481504037940086554655877569750923747613036326275553205336922370292147722787070287088283191122960319310698738549136774520758792794717959149624171759171271731968896345721031038045171377772058273138455518492983347561316162422233059741724551998361146365731085805065767871463127380481537555426791512711540149500097494934213056340838978864379488562980546894129331411111511017432514596688941234768616481615952647370993589630852420736808173215499315395430950701598843010536069222058838791445265909102676881906768545178846674499754194574470245094496942504785583292690390717282665709334955626072459043260921206793045462700230562043644450080048926357556714495287303934847371819903289563688758650104133467949321632435216344508669935600805903873148276907361507209967192468400310296805879839190495534700139123617090261034838348509114046104981616600081272425553964407733523117678367125022178442068454284446151852808840120553545285545431180517071056376522657356002789274736807432002535090924935304048744841426430197627299586970410942908027535992325167752858573392492251520567288554200546016177317167961142385749719685977160869527821834485879350585469683824652268395602019119572627009194086876954465909106060748704287020852819054533209147711279862880130008875406272836567333314031696709685606575415396731678250109641989095640852635242941898301967021237670823164807129220749986565816045647305882690613730031710624486540685063857147475729565238120885915446978969284761520240246939454679369558439394456956074342173957472414081947487343880519108790877704236872997335387897953935609737596240580750428810481758409494178710979900179865778794324311273943683837322692967581228331712433702447560328956886219322314028625639762825692381505204197205693326311454712276874587701031006561619694532754941185272148925107196799394674592256694251879128054773583959546990933708594585378913461621047107277186486401607939938490575945853752420056049416879897213176802175235176510285999244000096277856540729254152215255636250392822946122944236014713616694288616072368013103529574667442646738779950201812939328531153688723413066881169503933216520063811827877843648358311923304570369074282066762451804960401461166663519172027302359012937775085320578204732665484489157386300755786343371185947316447128739027459562736968000568144126165967273426122510664694862182829743823748173434413136115417939258858426116848267309577775336994771995224730774290992782516252753140273981218274817497574382068827787269292008457879873407613712265832000959316810490167741633195574679199055369970342065254407763641674517219471573891875412712823992273267666374040825163632125198716691940820105281948951382214105867543906224155167902316249095124889548907707926695576477043269543858089148290663824489501344400657226613199461962077393979497054396047989463301111581569564979815709792114794914630427969841492690471802425624648321993485392108114263307918879685625695310692027190309050458884889259002330553028407897188113140256343509910694080477982764925526379103425640911590529823187232596250084346889629147979575412750182827512378420350502055008954715809238856109812082891152793981629187120572051115987746245545564527144837373328395405473501856164046312542086118665305116716475895215682291447739981381824625891113725010273403644386623927888434449427185182461350296762255580859340053159300661385825360603132691750915671778471552284912100970658224611800819475803201224799801393070694450584159789190729125032340026894273746041172567003206519936230414350312183368239331426398006901718566911335092269618496493248922502655154464161942219481252495239995857804175918569736420688554376978124832187363013680559274434440682885649358905452840860015710575407081575348321237157648704188012197490359792715203233731259553654750139680986650557692278820217328971052339389901212651921760526436225022336550444131304929801279574146023748677812245627708778360467933927245914493040464667845724319722182938146691288352715219101220569820897940365924038295800159492558423860948165359654173957654913449391284477386217612102704345608794435950607455108675333898074786299067081546129116101377471412660920739513993543636926664545105356963485798428389570882938425241830361657565381363747708307862025439416240037400134270985927363253045686980963010896824913782955163809699666292515047352337242247940676221043513628011617456000844070790573791614698462032942833182181202297253854861603462945511779269952257578945443378645310814036210285198114862966478047507008479910761115100639501351156059908356743538333892514559178995250921832576282835090523774020660164157661743891520168055371808805880148778851389815730310822507567500417472238206077739593224313470984452929319121663488745322791332543931269220163238852889371019853212611171812497585318250708286721518837906859633325771495397271153249160426250987887804133865415664867162458104529299895167543054061749272645637300129180116631328838650984835601525094945220254796022966410519496702757619418976896862925434198439766120088669315560140125122027045429087601158217848308147644939106026386788816426666468124472897267714076039453464893852855939677422538536893943377878463470669523364762325913039475119532242508768220234003134671654498621928772799700180302682257830445417788198520774780916104821824042494066160521371506349335835179261041954853299846893548361750375453086095982897934403847992854091115181160970299402195218555637081867007831183619254558412121019135038783302396889793745121650653375308144693475489071875823370907008750878527335981000365030753968811677319173765359336923543362223187335032237414396961678251600098563703834324874807963772096974848972398530583644063859869186746089031629335052110030016467588496315429474878048134329691668032229211826463104490685295104674045929509276989927555306704856778154790610555124006653040473488264902143471887589358235225626045258190223893552150750482167102991568859651340464324799033937667024488618144012620490901724595954017871717220999569368131696695766050266513075097677813003648192809658247371777854587593736449467741169803335975710210576708555571040906889010515999211513207772656663696468923104214383099549067354526469232435858521399570774218086736978256397076319185867714415602279542022532224219670385509007894837986785741322227072585839049376962714286826652335145098782666431674696705585153498455768025772196519147381943397016885923256287201201236256833313105599053571778884065553617686917268337923684736555119171161428554201102804967251666847019938671474994909520858063296921212898594252350294942768481322065952641166162123280900082554857513139785209696427036334166757253303877666844558021713028555851371849123007737111912336051106770408385630426236737457489079584817746111191169442649664889952759610994573382515695269591808872862079899057699458432957934949419717851310727406197567796957602655483622654071802262069425079087241889337294546797170168895676381653574110922743817392198149406830452856821622178924744744910617180959311053650872537833076096396926155001386686721271398580841478009065526726300272917600457672450720697756594455048492687521729958330976054488468031600768976345806152830210577108868693150198200161657734786037183125576436899842294880526435795278087327101997867606124448601665165377906575012305423631867878659824414479168417676320941445025389086226034528960806653791312634523031287234110934436533689664469348642482023756901577975430073452675155292661281226679505920029842879844658874322143763520077493998814017897020416389545618243254868602196131058203484077374098308008071502219260986776555959090653332916466524639800666676768101728479304745808122334899674587191930074415074804715669461911484074341857161718261362163469907332145809475385179942973111437091852049304527345888779421260651362859391404605178783533296701920134229184205306793121892911582726265423919631049982081345374137509055612139655184764203992118436055578152601504617142488205869058851338927169764044062444277041508301314990914405009527354931093752572923315560974967020047308717658524143586881179781157867802370543533688950023881551658774854889476441173114264116750234252485073067011585407783829354113196416003945214458186074482110713009460007909274056110350112645615332277464316482515839431780025443619878064013876916226809310880431586620434274835333947667274768883588500665493650388567081888113139969263834085613318175511997009889387030700388694731139607238636906331377336364102870082250092019861649422398652823905734327423109980674753874493044335089978885990943195260942699063033691251067228823488694370118661564695656451639840991040288736439733333570555120099998149214480326363622831715481676495727288407623376200404503649585726844867880351330185475991678743186195238031896177565637637278873613523938546100010272187091331330009823817451216958829531636118520430788028858576916605489543325876464235164214220789274860710302847273681551418948431809210531060001777836830717225997209113276740092361309256537094950221861968166713592618486297819095382125305116463004247818481061389108350705065174350807598710094587032892554477765561108019918549402599220790245449637397086350777457958186303192721789884620481777274466995195947117378875238344307985588182567352435627284740178759440299632461713763684529854135754765371460025630957367646312081905696400264023156345221981704509528960040336770324756106720633629763273300757346897261630624495192693251555548026624231973475150501853128182546394101690684822699248961061668109852741549178086839660431981521062247290745810092120001821326031902027292322289236659863216418010065526695469969950801435393773334034601380365479630787394457118604618072035934443881372988050307503975596635820170077372057740466351090718661404418166414666546362375569662449970116717330109951972084535195210273896817958876744718588907461223380516756169861741052216302728294688414422659306405801945378586955826539510838143549080143043487161502462176913277068134804182622539463823347054176045682064430491240862936847099327398637524874612087685521232433423701591339269463801092417335122826331764513465376549040076011793108645582281701354521199301772385223341384552003790158509694959399652584661516637424314242604438926940123779672757543836789113969405726759717454852429960318754514000043069741635509769169018811307531707119901877795656616255546310983727236467488286832870763149557113868339518820881704674716174292565138198877227713857196889647885267961071307921487244910270785976331445444972224628002612408783348932286171642585457085461798526896898969798607313874056469888516564524340613294486467502520305284569903096400206577577138134548665470630026298805634698843630786298863348709394263459556545304005378936592906387044562633500891036246013706415540466993078959508263987391433773457784819264987408396689240561136789185176918936977261018244946966484212270189763402685515784364726690164969278808263727425395983944217201217501251169248299488877932485219876245231469204046047796807485408933178400391831747348215639511220110981573289360722201506172557908813693861848281988113105073591587315718445611095666362005224169444951393646080807573508772835136861368099883063121275130627866919428180188921490766417422955874721238478195686399825794797746798353423327955652252973511779300034311329499060092748568064334257002885342175694411809773574112984718264754073061961247213988043671475979815035046827207091448592066943313898107975238055339216584645299944196900582521899746117397247387644040249644759858702284706147256936905694602612328154566508228545532229529119593076020550127772344292067166751939767090993088682814630095844759041287803911006200064865348473506610867896496342366571420883765986486371460378061477843424313643798500863437596313494048191694727759289512898882244837938036940262985396855197067584928258011348870099843417315400138293276623272401916568700645726069015045937202594116565116241905323011805996474100890321483073380837696373964047763623938186355961160524146813382557972922221287454191123102224848970462963177868718991415512826077480586751573525680221918588131805123819699357390918805724987936136571786996789450207483864508244652327490627925303031624907634189049064347200544373181681565655943030167682080490430811787880465377761312214510637847701622067318798316533963538548679758235332750807021999137626099763359353380516025780758408330166487065685395495015953920152198414702745939092618588844975594710720889292646402741827131203454371177883558057098687510687525927333561789483484186758303860704723562287351249479111887983831345598389465538584875512565478274100130696567756537086020160814882167037353746690227379319568997196307496402600262823078599231680491345298188365448262978631204984303359320144601860562585477068833452566120087757525323326691711033185360218633389630377789429291014976734403363275595098279124665754714326730749722932806492083186663842043251521961829414847826224224216229100359816532694927594508770880390050147166485687141732883396788239047138313865255742166858171820299738105816578287797982161619352148157620461015781406062259547762419985437800351447268661226469804006155341696838599490105758246834151375278342917269460054379891248880073618029807241056491937924721663125903472977684942263168309164922330919040325041368599154755631365683393371687393214308629918886333937005280864068473422028936086173641499739104921677513721393407690447093722778008437973217172616194711836412150031557639016656861313944994968903818385896867504280554838290713873213142758297458316479866100394632868816908885823525244975651133582839859098975387658069764632758017809717352719263073151395075262134117830126280901663875619915694735093128905727585168406604604112141496639075210591176761648881608522186939610666432160717573001434590159192916762216894313210181974597613321355508488324519301828625780717126424596000725993861780401397073743772915126674299394927670231924728903066179471970975120290273834790819292035832455284756681871071234282132987208179623626962139528888069583442084635706877005726015021456121840209331099712734983587241454894795215852473885601175816106641633793774000982130957633182846630474221189395184415253894424103834381888407583510041666517761224944592156187255882960969751413000563024874189680330586546449096795850431495968429558448473921179383660206755497944395777676110493909442351976242985162303425225836523143269538272621982396859826778654448326430445577179567565224332575591197831311884570638988612576957126486035747401128503207193701335583189013381976124635672071233931672472318484540474841038381732958541814947901202393263773557594951904912257859210556733803652872522997203129562408866648061863913089929841867280121636034056482898314968726683012484410535308346631944542708819126957941468066854441593531559541030052900121945940598070612862493792743645001028728579564786941236197294053732162786242634489665699873148451446481478578895327839150633118819591050317117555107828882847781567714095135264960081133034277954372066860619561898625435901393711104813776490619829806469759244941877492990134562776790318490548346591494060458619842141192995429212667834275986470526768938488997565443401990734569451613286564867441478479101887674971126336007385915174351139380344355908851867444427956307275300867039214357591783238895004068665181445674780582461200712915153730063786047409997231295366564356718610795824143726721155671468375707115815211623604818372153546467139449845773274415327128451572215024238003872160131850941643275791173061199994754303509503621413842933701273176996903903590651156785137580966226323235631063738493063586615314566225406838309020839128206400119886294675816067087336445616199312899954714743178580291402098188515174649890716139357755943904380348088484505190151414124481258652679027382077632465941379281048480532400654502202637529248469107665240245647665310570119868445661794687526778646289287540276154074551077354433260440682044192689712674562504494146028463086612099444815914660011836492145559259331503724682026630308063565838036935288531736770981048666881253466170383772006038677509798532294586474902573209772975327709685847387273240559082202223681316847164049544795220663398316447643603419234106720794615737717880497712661060282447187539807173405235502156892373565273137846994980607271892972653921423576117191003998019432906025744176955260823844629743870069317372432862141016200928149293222322546847531600295713281850029366551569927859795760927770769674547903978951524744791886140122774110087760134986598340629112949422255918274273212082500643298891261229120488913375576229112351140188349100945886079337584653796445482376938138199930663097270111210077846846874238113850921421885105342274745551485204221315244818629849474010524838672395837603849688922822834997072244251051430873005226304972671141849825821246461151415762210057371705403051485682528613176320334864621069675162598050746442037446500470233941051624823300230874953911907285887112629344957568362385578803913337856153243659745233068001298419110458311517283364860877913269519059294962309746993869286065348703465680415437042537632769572064687025816191299301140478321041691244167904258902551941204838000991657462655290029315740461787176183421423562833340741208368347373280536739199779543486168635923548302587034565863522339925767071595957632626674839065465866896178922734275839228581404355439156613556550061048554029342010042216123880374700117179439612914894899829578831189136244280558969922786795504143900777727056123737807604546963498811382995707365567916498872330317122067789202433068362410000833709818612406266707881159710026792551992026080434753660547541941176027961427427512934523191365455036390550874340008206748512070250542725117014987502648503658122150962370342785615168117432735231886545369224999532007405786635107105507686441829593025979077191187918908107312659384393591871360349510150639498653658865205064862426218468990789824058345756285826859702400506859801522925343558538162016068672087761930376329959090619120299888847091943849551713245748155497454240278398481434613540012819891619689599245026528328286189265716130015534811177595710488861162500013881204561369599467848195051796353094019787404459114786300089715599432167599216222544959873901216233441313559396734947045880228030451381382534073208457641735320350905057183382910242419805101446748896858219588107938255397779113961832005342058936376331837878600225168783605897374290170907852190492468001845582564112941964633615285618318262573621150904463493427320934363019798479935498328053053207682095799481445354976946391721244378367711821807047875458387139567405345943041094675228022644233381031679569703874220170237321310488670813018619237930217995156684360967379051791405289756017830737131121520810603615716401282765010004228958880117342242493599206226079978907352873498797536266242819519076940254522565391589934247810340910117382940139623346242686567948231779963475611781358267964139354766467928608758083814213631676769499549052055149085556834785359046930918117689723182133450019713532489059717226496943400988985130417320765729355004437021314222387752501737780090263253044930050199511235161596185121557096595406951152489793123425078236009136742273670566337350919263118417712553960063198001350342345931507341462292070912453345864726086559015815737127070103747301918777461362321325474627077130415171137720288480300616595012376830075588282399499177431969590043089300906820111143856437660032315527003485344939839114940584333170300889293284253184631532203660997780124224214933203592263866964652954828287331959140347167793463141838597838708366913351125691484428874528860618286984586836016799235496527249994629434199688439492852398923809907299904825966986664963886040744484638594827877868142398056773799130972089017924199996793247896491048879289146631802989139390379163193574073525442497590016160719378398507669463734597287653456483760318698565710932861310771575173485725803866200140622765974642501239281877076213271212244506265606379418841876236022328904481492242547820727087163018355232336710498108028966549227805408092199721344766960385839551185366659686028771249324904439656580270266344943957030689298679142767745323764736183499561139630421726179555963349285192668304608284650917554481582522838761733461898866782274960209158191609639009479322741539910581971451520025600388631538547839035550560269974646076446137122087783546595044981093629267738980619777842600597819948936431168230750698656526179870374244041433961013213380104750274334807216738900639272130183241697841746099881675206547705887987848082983351744652557417467451581925544367882942098515901577570727334641066076506141483703347671536810760683060743523541958685698819560099308172471977316886049385515931072206730321798260139606298806622878049620046055792364550042972141078339115418124920168755588034931735761882494106759713851286686567194341145517447435949665872348727542453685289989345025376610710476541693646938348646123429018970266744677371926109444117548855161944684819496812053918423044609711160105237687121835816573470730266886561058718591975841826739137778719179024402617845978904981161660640136151435446840876365777050074767123971593977312751964921754977337352846993632392315460121339471823183647095505232714579846922384412498164717651594189819682400609830518343862628997340784472362165983872539854824667191021873343814618062782183765885760801993464086079866546262298180515751361512679797843454494196429815616340267718220048495331471678220798892879493232580278673734742302643227551549843650271808329225428265775148420359414005733817402221679120220298544542079824026030576289726713158941351369905466130980783145781156884857200028323679120803291788022486594178020440675410025101149888475316130649248579043422815339124240822543672991722965550265424415082895596412509773220233034293563766552226038728482905705212454833618938386640075228395314734974247052525869808604691573164784242199254534123051423381331115349462563175702865058099386183159752068528530097597002815080305899280012096532489721374117044672319005112966194127921199873307959051740189037880751588432896925352274792391270424122068052911032896351092202218017536521439053195798501823370836534428350744747563594060230365530772220787157799329584926420848521660488592930628345342182455585352984238891794442603478338366911119612534452369224525430587299943409398264676820943690202850617672299296707559812578931171645734326706893433903813150481493439830202710986813361293045095704488913719985609655864679566543894517733436591071952417172201790262591883903919431844838352049992100324517406051991539923070726004201293067517716223499249694064679142647565693921045537293863267202511334755825829056912660411727192841122742301320333639177032119848219184836810390009141378553044929535498474208462145231258622111274236989981804716826170470258144208919164461866586487488963224968331951534793061227580418546120399267562566078225728810556685466195067268000613063021668043018332551763595482912849422966793418288027483454272543341884601191693042644310902023516002552549101102577131665333398150512145609653393733556141082847833341394200311165692351742120463651036310923080953644529579011885581142170394699323708435972450918246457825237567278245648381469044710913541602535312657339505512156226747792428067850360185321746490932371265149982473510031640670620554561818955382712498940883058605655447735171079293325830470311581694698844102002931052733101435263746016043984169138425925966738305080625105316213862582686504162122727548816542454284811169769807931716352571203079200029847327642835646641020206611597031033295667542544345559281472116777451837816869530201179512524766140299548156687481469306552255597356713314071025972947530685873783202767596286776026208838558222209983700350827723818793822285826007883692171785073173391225899695903567046434045416915333421529611136710216672131215254127701058664034662128583465193390778329542922950169205880502060208539414827833094963132932262726925281969996148573609981288765786747399872883453073090925887712157691300804649301160413869539544496587869293316440684909789542946959625542952932703976366663465894914595236147417842256733276027062330737152154280896570598712081579057248999301621568094114702684883886261804255004470339700035187676708973234917654854977699731386483553272332690087120511359353460846739476472541283472924154064907744341443637893374496953121952864068868987503334344186798475188854615008733159706034867980146227473140469126029235474896067216087517444303434585933884850322744667822262633897273090102007365833173391496359374940100912230537745501867623548051268433150518200977593412045961947299062203261167247350769138912105430080455164779218016275966642664152453717015972514307960336957697364741214340883676322923625841817739573345404709092879722274572255837089767917245574071847122955515971994225818069342429431695660143501489236119570942414288515455358538967707959588098277794449848575823243387305436039606340012943951662406502163167634475421014994763148618480721615668957115984585570237712839419735180197218705934640297012715883242959571618126987616635174525800905836010062726076574397120744592930914072707715584914845107735011799242572600935542014115557927898950534318779865478410445997871309679140603719437736451841897910058615543911959097434280084697173094748162649386469692353711450806943525540471317046719331808057190063297936961823119944160720319899721461285492538054193967180544511476250765270774080685335535642537331506410248266889823483322177794994462457404646983362318599116573591839893986727078662245522779574477855880470549771997333830467599905168972330353635632169045920873658434467439355471360346696505686792424322198559358860511242486427067161728432738858286761976509667816612261602703983853298900826344030373905720212000695612687051471781844461692182628226639624244759974872842879206103672290581401639411638675068464605139040158991001732947726777233292555902939005974160669387173344913192857596971232734007059540460671600663336855648117528405698828879888069247518579699275310817740476044082916115532553195344492410908900073809895022328908621648514709128530477306816740702609376281784959792190497141887458380169678934101019267681355357921468360526243338626902955009506497832614771622643265605247363684424799187201471157314924093899300554353992403529315386314292430382594285982714209825634285285966757873568023839671700319801005760543889938816690834072622366287235474046672680126976327793265224072874259110443280950460361577411865376113460509762357689096030925468329172649959282097311291638990031328940237200921947954059906320382965206771661815461882373640647275126383751609852338248674561869782979427005218302828330488421033530907146366742462588518183340446854741451889966820215987362557949565209871640122810083221337290305526428776193698826053949808313482334168830039096073537279009155657487934686654763897602035385931976895921982508522836983855623789455548364627660101012300378885458609543601795876184777863770762554748273957838241890170688698744718534001292679614353614517327566750521494121813302535536085172711610853239958318834794928409129646600175170255938520939812916007402376180289293405355447462933903467766409050288298715362625779184264304500087301372688765237422118276674100383377715211119903336541067667585596087238297647871844594509148356931853942866899711925564604595116196925248025353781525480109542113363248670829913621982481326111112218287797290904401149819585283463853971293228310395788426400360135583628184890982709178397878063951164544998363781448386664697726880264170605616098401845207336088454581560711272550024948343183972755081831626674172401271894145478700707698037778975260721310506490629998885253235498912020993337211891030375082412042345763430687093696548517590023457199581289543076501154825408566114174254206837076809103511627371304126986069073129641481115783385049734411949188065809358666233878775431586943643824588333088444486135560156801698000882820981536441209622510336205598341599206584640964963677904379575390396224803627690281585068512257007643651756288937985575915297137917927612442139528983548331525075927728625610717918002663667454289646221012956065264708753189075483614065368440834659400142969136819879659846005038443142014656228586511307013849857619414809370433093720526096442031948955247332156705569654349387322514431007862924594275323444598070287140333941774259119886016097720378976204279053359817189115220365491546748607623413841652178728473718107824148593022943662290205395334783294323482122093567151909188187144432231719853620544272697965805343369594250778899778542291678364925681492443499693896773321377394925519426994845218829050432917049912696480979900148722160330931675409104888884152624409597733483629839721999982598784032290424802286856137801930527725320842121192600635094723842080405387665054331370811310693070835372439996150047857228330660800348102748140289794366724935241141260870636827124010992783826449671012136723921718160528586913284802775706688013281869527872539620848371482076733788493014090327109238085357619212737921932840048204938703096090064385593829273223999834119206209257562767613605887190826949458637574695785804079024363239120344177287413123918960662452758556376760614759184390324751892489004991134484387176730272329135774207923411303616100844776195737827945659382969083301408486678877637104582223074741681759602436678623178235740992771820195820818519839949288615161052182171177466172161884346360240398949304930085307421676667109286304604390464973580243598462851879439730858739060053096844318340290428257685810836931198602072154406023106087105191426687270863769399414190807088401444806825235671016669265641529451486864250862533545804930315507245199887010119971616973648222378697767431876643906563300244442453026649994710346587914814836766168655383084110613464985560900229947585271062646419321489333492380236435395236917263644847429069545148460143426611291203143809095768732015172296386403502460859967542933866405416806571671125556928877050023774346014402864307013201773790305842400816389496222790376657163542070568077820471623872830472399344412306490808711380054289188682535932689909040438345611494309297756340318705931889905158874721983640179596819776299147492842109498930956120353839662044983814358122935008522766885897769832680623044202246211378529263024466748488549547781478859506281130660614264740060956733122327347395062470318264434413839679755442847154743607072834828602999358910141657698553463073873144115906816357738103874598140323417253970609445394000866486512105418765796180706258545864744302297025936416353722016745537156831278597032213756768539378553095519744680977708093447631951289911635394779121876462444868135136431444938757514843473848044931826532689391191823553149718181858741419919775856965642156596910304021811840261934029362134654084824032251765459643855651530742997414460258245365316141826012023673500500361061179814699852660136056790269972442892301852062155700505270707517813477874027325896986274446544671791838973655278850804329111671910868066904083855022318475961944899141491862369320647427779064068049294596772310635966882424657792674870901409382759967147276132633830483162165333390392897108204753617832368370275653317319112963818756625483034524975947809265827954064571432893729244958233239039941878845141747059326137035550939821419071508490004839303867053393391120840714894286539599264705379406973715283084666722152308896946988554519844659212420656875208263313761758352197625164961929277579769143679050775989079378848233556198097889954114011719935819209908628048045577318593818524593128315341395712418854256926300516069344187321928603224576538349371265813835808131414706475729356341939380576679225909728489333109791874986650390596397804737174581524433333473964677352443524060676312810850121703747673538140762872011957591639884388431696706443855506182848808201449959133954769872262370002240268434285175429545574615516290631399124849243135682082789663922320024935136422379453272626887409436588747190091168456279891659194870635837338167111898109936898359380683787753350481358392542069036201345207457384304512293654979544870573456541637326299015441205769125383554231254397600737421091828844123009987333888249688736333629180680285675837845291982103396981513982387629936642228626642063194139001715820637575810838085882612694797911911598950596260734346582909601239600381531153699310217120362155115132072327767351509850922685642929755310198423900184756554161596114682017019012139128762825130130916990006924708245080205198414451802863738432857361670874507561355351417234847938566365278438182815762566331224564537027186401664409255151693626316812649590392500547654454154889008885378191640890707839270049471748677057984575912586175160774380577137499459352082582066200973047339148766879964038603879507436646710015675370617103991694895424410630767139183252993959579541650028941208433409605208513475488850618839031211959344393338262899936946601696212173740122991969087208110851885617673719635839461955764188022463566446283905081485576740609093478460310557931124285581400311645542478350396157920756735654909687770215476010324753508504501769449795291641334370409784619424733296712400897072070966428561314766781245753125659412468525874185988758823400704962387038503614495304738390205055218105655643092288305869171592094630092786178246727066229694588530479541478721494083868095388457577633710677484776025359860402423082523210940220703098804160925111238113033448949472919164843699750346619509485941335022423533472542354296686029366350688189280529898790657059626922410564045277511356463111516563034351538453474401873862932459657060324603524366699324379395262746650968917290830079116276257131340745659734902482964470330491153611710576990891265818412876439856390084740628534263622386444350857934447073649644398952429379478404760411458309408934101606076032388504535835681346693254104157439877610096533357967883051681554543239218479564196722924131264285403846921289892989372734020783566295570216582960332159501330453839787136531419646388261371547886902074815329877098269382017372268144170578267365892612334346975244822821966570069099592419640132159439236707980227139040858976598032370880718781073789151190935692041956731226510408493225029063511516097822628641704100398542530711821289715880740021787495367042437751866323915445658396583524996123239825302324480289510453229946359192156356013546521755711890284678152019508867784604402149772422692660433699964559501937071273752576688756566171504110650449489862593383065655695363402657659057534962236162159653905137345556507033716247440197780583689969038139424043469511452376495706216700413482591137250583794910253288171515431596495504171768773600607044009679717935594284371177298328374209293723543875618375467777182709389949746041263065076804043245542522232528936188926975055124195090070882439448695369527857128118593179757952329906408676778405982335520414867046795162437380255147798576854567852848624934273134271267713583728989843200085222681602260172026886437355408065878477185487029077958883376407072934936967331636998741292367102766388200185821783295125161957386802357033347055740701983669862275699015757754267698540759637032954141438305535325032257571978874434511161676166112683414573698134391129295693450059234379379839851987454713848405216158937242322156905389856380524297234242029602071643078450036835323948273997677026633717011004329289365959059970021236387416086139660758285961420495063000251721029274080115670860117252186883282910261995161817882879782681698463680756599648428747504477566303378385778014326894040022104136108087854775089764746575143216687595127512711531701122463696386445970981714035088994221798784328276069725219676101170334549079946102245361108069755696409441798667971319550906228489730040500402739707460419721440185802939087463431446291585981374146912328178061636325069293060798376037002677200378211615557484113560256371372238766268847210606466951321412475685029674646870739452938435897729908819037540227359805964263184507276275057409634343655149223801808866466765409577806221475736947105452562558895366270339521264116886335211240186298357593962910584882139887244507517067459330261527393069297525033200766100666896024128510022786313618686596057255987129400929798277966405657344168632688768090292171874976191647207326455782049934706960909319079405677294100191037435248401341167113462193703609195508725796067464694360833793214501147743749446658211095807909011346377851752286781458792656177524742424342495333888527658051473116239010943583920898654251484903770990349690950239802354379370849408113589798956358528640312895722311104507128358399514749524830619723874242461914622373245448745871916805033962441640737830989650826716070246015632318314124471487724475004070006496002144399042336916697566822084969997029070501080564175682261049202329682562870974029046467636091797524501120820308388223857033433513748358794777606722840355194761392942359953390621675074026268201134812388398088920826589229212026681064621657144533449339928735862257561447896974915317022305128962750766515223116424671859682114042926465878239600680263062264713803561147596843767400294788520492699100426792616883837368065091405788325454728975852637183542007915136800590154789025835575118136257333216583027049440011888642431035931702271798580036801311975115367151260251574346727959827718671447475913202723461543296887619002272107155239121136395552439453845651188148950610216991780594186964978845472360129185323605834067007659391943560130770346254096997358370885981244723680609602233650110950801766165233054324809973017464472437683234985450334004565103210390369584289217265638909234306261275537525884906268605314992945562545115132712835144341167014683550990004368787921335962223727807235845943660545785066778488656578252581972681380961013327194963208459870345811649399619405192630665415348664831339261841223650815499626493473279298002716656466369214185873896954886616838409549947323886268377843286019185816155183356361622264545784684497930417365059698225935865951372996659202932472834015692543904561401432504260418301080412766797983965714829058531740263981029168734628063459498012988576332650921452164895225232999066582544776187349764516399058933337846117505058788484693396894815652846247696777242690559126882348501600433838131153755662031189138998582152490937236168393423284218620641451247915332965001624194425570397125643962196424739300196887994908228021527036640757616274370778335061269319985595496220235636280222695771325808532638134854878770877937952021912555009639112361798070219437254502288682588809624601967993846374995438148116060019308199167744936486300549629881474648693589671826937812591697261516970196306531696798870533648210107297201266487632778266975778563186539261702223248046343954886873754363704148516144037478748327969816910027355742621291919777270540293967419280023115722905238890219986738994879818598204524647554739098404648774953725352340291471525312150217385499899407811669005625336774743629867400039394546773273851947846077031321090705833528323628865134114563176331823346456243270586377430393936507951373381992898029662856826830197707190608117465940728964483381456336794964920184118949299742062921578655288977520655242550017175472348758362302087429265418001146469789985525314175940128320010872288016413859832493423858120224483059363871410759439291948192048891743947096819220354081241705386598824173020219952966895037815353766861954716338021321834887552128977137872176404191337647577921751933064814339105161586073641759248245834748729810049302414007827369142461841357355594739366689345319289339600453050875890557491107209107257726017304179651635905830384432940785813263682558850428272761257291798213426227568460264730157388444749199142472530061152476431320791721881422717233032438991128876036938704540967473457100289792925754897707583752733852623030056751026949860023815988692000390567476309190037310634931582304494316627914803550716721768138093197410570960637443182791852270929794336756221713937521381767014710343649413038760166184197180662125940905347677164257810031550169194653901328569606599798051969851135406064182534195766365583509864878129692022879255158782993153275707714178466200879224719007916636883829459745776404247457814195616202721322739370316593471156978895087236364456053668171838661855861296979674768726728555669817653967396068436700214339363537684283841454281428483626383526988152692659189067766355973296659213548989927424303208258144415118442206370787111610867238103348427466873690371406400997526390011417382851637722540139348595333563637545588550538709303932632724486036162133341591925596137213103941038302937010294035487357662083230757566868086570980584591831381627437523949500257940112627880519287945876389847447063209176233280887086173586704177094918459507029383279645023252665109786611649860814989794988528329191608701003539132546413250388913414544432965046728646860229878685908941539569099995256977915187607244458698071361196764757139801002055469383889512967859588051911875562280203967064633371562019988747438310854376598845948949677342074467674025354548612977956022323517371146326410469970975934282552980760425188917452028517700142692437981268046779486456053617704031986290497613959263527611618434838692286202499187698748427739873747848775438297674852800511193511110645312993373658412049281813041261984664839710400282567597711211032208065588842587036309674954349321250229770499391981073614236188574332792685296447000103830591573086081216723617618993617700611826603839398982114883154047765853781618041553578239737874791641120010963884895228254994224217909005447615259399260033312807716874951957663850440824097300226439212621013580748857468996952161176370019396340827597700649312143671253223381414515239981403048582570243520112333220513651221932340229778054609477779780702301165380489951125553731616719633009685609110210339401727900120257476819239916235743425301546127548934118048120725929417024661247459065630087190649239613966831012198646336277105100211363307375134034710446765645611723567117531477693041891476217959557687435298528843967986565768486823636501420953268714564824226337670887950489962934064927915586600997183001327550503606211478779431690777659629424358247169365643320908583097025543286227405273641536701303258087890377501323775140438633262916072566211061171827675111324722302432913027372617483020880875882056879445731797123455598141223805786373790788653374226853086006579632633976712172536008118651340189243175985871001456267870704144720065905557845301186377866127002697175448399812930128872183769204334276124475046285753302182436988338942706797895209290620786622595703536275122487148861611130409239367970858271594783817775425971212669279211459371667953184550020035882723637027142148245157782584890392759228715439699956792094802249393046604618206377620897698069014129419309187745962123872116791746435460835945991615482476105775900607736001225392853804846260144544848372591576963148472787389217377220177461677277361311894102607904413136734709032974157684867254537294326324422071922933387236746780157622638052893230384394398468892700878031730737106342097147201444110880411327583434285474489401888291196541635156456825113833843336353821438897264647681106872985586920779185169037498402345512419482847086820872041184610239794673936769437712479665108685618353489174129079380102897856845123218120931159175096385822937533879038139452296937333208046921813183385605580772604305438729052448380973810788998777174823565037586108283654000412991359349444256694493823905199099814937270283670538963486516601013988689388881330033608019126540314010766346293585155804706977903495279936499323512354483519906485580991527975291321314183101019599976503437334136543604495594795908904551126799912416139330386875778327312354205858975814574518220416814408391826510589386236938282629665962637298058992589669429446721733813355506256595085832964831483347122234435292045701971991360769296766036763824286531077406966638783834752413721942327441850372367101077650543479286059426247081500251799383345257230032319601794911173109811920157229302436408206407737301451392242420479682994647835237478702105152753926301016181365423474208877274381024053944942384403419996498819025658768201373214065272331021932431007787134985430909598107423462884329782279556624889376753607661664516686785677882612352221934370665112689834993081406663202524752494228389269054672157374389652009079897233472795987522635921456930017013005762940947810991532845441255255743045179505945701570972403330578834567315557840765168474741087743337903062948735885449197067530092191357354115089977415962601405181840047565216024711686058517970766785307040028178879696239963935377713634671964664478578468265888417440411968281432771802907684502388511336053496784175226049913521936432592532441771864535088363200746493733684306174393346938021342616605308000302544769824399664967261352237778968294975211058908991395590298808287957655521220679984903109901667039956337546194472709006461392181156841185467247490279493998060968477295392574213119511494872864889446770928851843936061381714594398338540074537515965043499253046540737741395828092941492837996216866078371875176650565810786547906649247116540492818286717605689823239741979442130514791081216614330868892516637919360159635034170936707037046234037398688218811625638231312669389685974395602642355287534150082268535826977054061106358465830694372818738253671676582082155058615841100724519720310738468271158946906987949021614606069485886880046436366626227418648197635264914780404764149779662450667795174012553464381332336654722549830151899025573069843541864121651599997000814534616039562153805411957160389060954487053691968721388028843007726346676175765532474742020852597164942809056653304865307052162890811499997186793294278429345575500047256454634971181402130713183228308330702094290841276404882406849108176815439873135117711904195598232713811524811101583270566728960761414779244928021076278360380374690439312114898008723224527646860057505590695376912161885366873119743824260659946080793163179983837410601250979863169787604395413494001134874543288093894730658321666424010215560111218608381118180528757423192855310362325356844012542531050881908821578650485329765244175435106355996942856445900005277021823599445124357534152319732805485551608878929581250313302347304420437368192313963107560514447427746816100011571714256968191196747028623534984593978308551835861932551349969592972406247428917852970526050816072643285098803106975962811018961536041059801556069243647842439246546993154876807777408194973140500028871755231368245402192743342954494967956067848655976000315115200797741442145262906189366038094370886027324255938068044787500519922564291692358522593661500003922149559053045030359172318057635503206551797969972463635956458589777196384550245664221090848461199062138837040083588980718977483537678483443583060627520054228262391703074778104049332326810382800411666108080893168437589443750056316292321368589514689698060782927721419944565664342139751759892176636119791263852425396319254109068625686598679470585053940018454298472590314670357325936784869541874905602612334182263003371643622577239240316428820697860546557749907484301953066700738722368545005679458933251629064374697633314214288847798345352477276279418665500870345030740899880836466286192158037305119166833217850303296656575574894100479301436760321757830600970824722579530781760153296627579587001501385193088015247013383819052886650309259615905680156850213327551393727877408247685762048654565564389510038165414482008687434443333822421788421970352476481329127183418065914881981267849785501190343316048495099245885746568085086317038036360798756471810541786992360637220975276820229068653087427845947557171338587278914049185558532092395121124606001903656063207043288865196710610390660842440458709531678717390768121536948897512625380113117307217101035958960697899237233036158940443133415333387316694981374195789147776293402776158929750038046062343946147355633421217929106259598161307759045139166225917393415482821467089494475365273910686432901695435189583621620262222969969623976670216341643737380254209230861554584166014472096871425581848377635732367120814206888990518579362063008105758379474385934099481210217036982370255514716767505997151775640144071730114830822380882901474535536971850347965760720987097175378167520052311084974932198991265657489356094179959458755821200732934947785040174684127354271786398384458834589207184861772679449798765914579951522884487810341091262417324664822383220558980820012034870967100849969285859998849463256805259550512648239180636263086205034913883362236196208970243152038160515575846269757689404753467633853702898567804455300201349021009725455238428131702231528262806010671081705902964334195649670436098132733126131684864600808800542039069070492599241073863566406429873227710272527861870584471920674687153105231024252997970847665888130383331081735879361854982655429873438484818991840336728868463484750785914233707518485025532624811943470226035386002207015432279321749066687625994652495021833344820504974567138626895239441172345404816149843719866457677065177243225160631163390263199380269464390736557186295629903713797469037070626169090258036471178171491068135666705657833320839720182301371658279905820810226672894239716712772608648355732018376431147451431475133779948136963466694230749748715831444196116750302693166891949212396597022810451222414587270327246626177096180728239362989958146463500489235655353698933466830373194113452555977263435821582516946549329107885779152648153833079787545189782289845232058573783358453646278183852526260500842901511858700313286622815503111582984612214545040222238563788277054644202393354173349146849579559007561893761906707066864292372724523485627610278683034590435297268924731026462613577041691063890922825808293823671878330370063894772395617941141772179339246991691665265467425928645938916381483952662951314614476005768727561815385713795476106588208445610919786814698269151138807426707422286272105046388386184011940490586555431228020143866770802922176311365951304296310495742087787889658928155424204019192027418913042172377144537918156841518829979374005574010649674164479518493603353421230949682188662913472917586707381771495859863635035025057797219262933670844874257693876774018155295445433376672864818359981845036033427129576917568467528344143740996780842727199741158856283632730640265280237694307213237351261745662534213804239505582355506678457221811161556134242209100330755533022891762893830913739474962907543234254183927844638032576739923198139405686111018618129809179006453739518587689352209750637281067863039349597272528288407391830158412443146080567230471085761418492859053534681235569892737457292284347191714765893859190005506494819690684943960027360092450690360911698747583362202082650307832558450449015543822200066204736597375645249096875776076181279978598399447753826252521540072791794174104718786531099708219326028861656496862021057754473401669776447190401733133081764888369811602026751731712492990232898900644754854995539053709168036237610515901482009200858740807722081513024192963539157691038537591445921848304272796754610056057821515037757989532591281681653736453964297970550514579082059061950002899148292842651285397969354801912135187555246885254812152432838641665739643608525753171398145215637973423728288381457555835381924027960647270003428306935510422992356286251682376559669590970324872836535288219951081466201710131280717040768801865915516479565266035530620333487536227742564002923759251016012008016450722982163864008485891038513300644898099433804316951393033956080448060789518852716605295228734164365264053931534888653014323298712985443918986521034449062915612034407126549279014135133260815828234622622687470464632106278258786636158772750486695121269558916998576835453825391191888212207208927361063037765681321703215335782367070671162600187812251694043725051365178471644901984573630168956201080037928196932374087774981299751029981841211136110222049298212032004008822946723105069607566116540847236192929954219840458829021004705957170567387134159541315608979101914649509477535330665367593521783534902804508185665971581588432586518949547173422787574094300769100291629731804662820578036139291945449602755737814060115642242236580139497044946274965029197900170805842591429192560964911651511290853977123181136640643852453255269379086976041656600895090160712554851311278523906170923812913125299277474303305030237568018771549558088410203364169561908228893263481952507650141218195657441711645237247244631747276307368651730523426657853645189292774722110617569964153415950826713607439034975237598472823799732264838917416289256036570616017487834949547461444907524149800183840348694916083995879877609795598834301033677390626920449444510691940465021181740395341761285724552414695751912441168534497352403003391079309725124858652876364609464736532570207876232282378159748800190514442640007957222605594654695626118767321094887434939474397223211808400948917470851702843246823405668269539627068005692189881769655066723186800963493309340419246570363972615059538187957938670838006567953003760930376862806514073381842974407198801824012863886625176376411606407084582152346929724915873572337410838125490187833731052657436830388069174425060438080270090121401079213812181376358509546519240535331211777950702531971793119546433349818997563452423404475208862578942371074702412025491512649309314916212907485732393820672990831967430559499321818987958269419862499268388565745111483348506661183078555004951335625769147703431958169494841720824712870212025910505142750574907884541676030882097630506769659324340407878383789916189590228587277193501612831114320646862210463936107959217160518734949041279177247848431981905617000785304177999061973956615552055615872968193538859072262499035189820964170839068610263416679745827276650050788040705403246251980199054973229450846383068370910773695923915895576293505891601128293030069893290092427141586554367257541460357909234931569748112295930044866477199368524373278754632355094860722496497308641297969419225971221660216987310023840664941204953846755852354605654732685745241370517140119753768601768161195171556876805310633394996711298384297245881825949826007001118662765316557730763446847056175044856982669843924923971166082273009775385492533030907721598679929825652953636996620385411531210083183899632832181304055587663335008732299721561096872989595680062221371076734591512800743786265712366543002457659549126876349159689777706265327635502120102711242137005951428294710721337518804277820306151871677265091456092631409742894947513205979732620704617210132512362812280135632686172488868503860909054148741692087525286030606001251385680764555001734848513191850371167992294448035263134148575503695671531332697415543012206121795965974951245694014910925936275686677425723926088440972585089751728673888784025008295258049774616870764688929602739899325511683324709921040054337498318882037201381794023111332988564674330091185771235128984375940833589455009203157308659843369147117729865038316408673311067528771747773103526213098421438757521351359119374977766879828232729466325081912564167466391209559698980785910209147894223281023049810786767305908602000427222489589879891501666057649702765189571101188592261628092722353836342085033526946250619609768852975288872799150924648981369412853365671907674152032506270134710964004334000721366933693952578099801164647579616889452902152944474952474231747186153987984362420063088695420117857540481182368923260871956760967814317724808958084582814777138266564451269015276216923230345547646477306181046320657797076953394258013815839381845408283324111312154716157102770652217310227161567876775718234240699225285034064052504465609583296961503616211140774116221025583201886257627351288384292166241036709443256928217534863767875557048578389454642375559356136482298552716350269277586537264913909332186490508372796920107001197472787173040379637907578847046914947769053487793198773871392059292335159173582873880358899104956125530630224419185184574462087994783493682816040855890975127596962520938720561209940962351078668022674039589820130793532500095823979815877184528617959200812794491004726285322360041917271095224944930531176930591695060641674913423246756205097525623346440099263284780254181669437659824498602019538303266064376354553908823914612249144656628899249575145043680610790435508138176599179500597088645284863879166400532421719894394760946545834075601023425961141559306187558646873334889539775957142465887391460785580829993747780099813477306424017661377564001256113211397491477630169959375383906878687671143079792502083705380410839239940054278431893794961208535139315107648789788970386045933676224089211728828605479588667122881077447740225898197660836708297957193861100670215287653795642292205717367112683966073916513045134393428584992975262024543869042381733128558174425913623733184383792146152536966533423352439855156510928754483159366223441409441885521048200852424934264756727872155967028221671642591264775557478628951092265107678169449751970486876530519601827365346454506555493104221027273570056968307397758816600859946693500226638020856922565874039500293452813940847166937622306718614012292761554391417090573771234890519917840107610782607745176270503343757891779279739982973514438220326858335561991420683421004698888895901955302465970722806374370916188878877166376490565237503032007805282611566353266376812064193467415628460361255488218936370089204869123264064957099554595472750804569940238700091831890775198181771571525300490439418657401066662852682979705706718856420677119072857545958425174661349042266463951073180888117798944445514964261210077014681433909831382292609434285742361823193920469356585934189456514667055363362058119358981635549131905030697823057007200426108182721229625750457897405983307740784733390322559662308300457765087292660950314404472497183086358473714840649817149735544119048645863124754306954743876148469263528894063308415186722111282941702508239963432879300366423898282573721118986478832246507096208420394648649195145411047947438245786031572685615775419969745784343324797977765460091567643439331467466612719865324008174264074123934702834558342221335862443329138436579463142691463852220015480773640484431661934868008166409860424916895183270218598908452368838448358861502838685976543905957628492052327936164008546822203051955957685136796635982470823700355841249917377368004176015794520994790507722648006654824721580193849727082921229597201721825959942357036018274584402589368339340123973754404005733744249447237385156017460956605581103187814849098944058823500233890897921748608474688106150731949942374799504452701105065097101403393952532965866187237584745159706866293807081222715008258099510727364552206681893677202654899654330769589873922004331513909516017897405635784740056851437948774280985698067132247168507399363608352279347931995165319794118956887838389239826191520438433901505318992369714804130413004337251461171439718630123780052760352010325598604496356834112581374427709912912829086633040845839797808209111916361276786421513166872968133421649906500396747105257968279614016923079274952209935309072362192456244396483445259920222984391480400284521956923637511351409975889893371760603171171061775159368014887034556901880062351532312689342666925887532724314832381066356635022612351091247998812901531239635674026956368131115592121350617124970618460059375854276885299608144178160665993377721064142082335687929534503355893116511897190933662907825487037622949992430933840749241825354261677116418745338582117886400154392319630199430271050914304125911582127897893027259337189151072801081062032686580804033878691649422735695864427626980239930942718351136173848420062348591517835066988377653263224649771182957912568553778026444808743348942510576620668344097782524219023926345504370470599790151211009757453128418502629949492852191796756276463321756167409011612157522573256543937484103304264729810600061116629159880973858119779065216748573239114186973623716934459059132803548750908763593422830107272800895044242538892606837908776936181952422360242237649219668064914764690712077791586210882791244893571120058408362527769103956985723072371431268491287995086384728919907329802520004948367020059845868474825242290746466695407843734724010725179937809969340432232704904120630480275183533249619056426912766884081177848401306419357070230349736511784496065537487536364836463204274950693779511604919615773674616323125479797874415778694781508091609736229222550927375582974394831431887325471918894314277931485822177258311343769088984379693385460411424992808780572429081893459191829122716316275208669508488578500970790761045440396432222280234664800122103872273754107899580300622095227924601947227259652254318035093847807906647221392836243488834172371586896387815582049991061661882531385668648655516445397345881584714703573792613013151321194800529404931964502803233415459921024489887964409319350337344996896480678220161465764896813726933362070684740480195898522454602838026175016770523889879367857087292312912399930574724911597872595071498794758578843180526684207597035594939895307856511259618945646481011969135441197813809378281168743358911467636950903369567670957843630809241556709925318531912212859870277998716000495753684550815245128064136243832429050936444075014783251987263609147163591788603069593048031630703191909725555234607755324044083503741746681046564781774410198877243707940528422934684241798084826211767518785446056607789606900058760101866555294653906551523566764289674445203182144919974095920302611381519425919688879114578760636860774853728784970444359760177156509685217748055438572283004233418740582031906392802148065554448787562083330481034077333674262816492518999012614347951182222319205051079685160895568249368157873572069094222509511677986119438593293123712895325627582458879271381694277217336753755144680298864662766338379056487194868801286316407860122315156930840766390118464837795810135902973694318903945625968924829055786561063562422512624084210045892692929128869526266424633727576747793959770421117340149227479288560658979579989956183365130807077260480891404461578230976259603546550417127516969304511177143435413655112244006416041143837778307396215559509839095745410734795428647909726123402007078677897012982390546414101266555260579638610351668924695575810280482221743792226691366638645717811751598897917099518347160277010545516754542595134116200876555543782758943811936138131335094102109402835944492512184045488790362035293228116605409422280118876384356072134708481226609342328581685496356601112424240710781294276468909015263306228903857936074655515417302831308761084851619400514415672101219490849226152250578361041973234182308395174323733825813155782602378947069136389460218121351965024544163908665303720873234953042552185158838600598639455445773071613130033559495985907966160382222586600782905950936016862918480361695079519110248553740134196856337907280032489084033792328530390976149492215923745037806804158975968719518024485788658245620958996783719946835585125192781673546054888937955529015302045110735250936693925274351358065162271368202679413007744893463986328121720520642734638952130805078316516532693559523054008391629637689527887649017597987025133033417671717271362556484348641127546816358200445346806996419792680653959418016896473644005422276556592087740693923337817434379431019426143647410755287510905502556935563528391196453547372361016277620952307210713291174904988433083250247472210721135259079659221626781007491653217061925658545284662393681018081402187071174830130791532579136758778544479376867952137932087758335641363545905629105109657994802782983917684878174642938673239453318161135024888560412266842437215483384556647940090168144398537681538315079065085414696845875383392125493817890184779949189207914449553884872575637789183284098059755608684185270529460839506966810873970360816173758282677698292639329531512376501157965737746480318069916480723088644611294328142005700732323509782373422683803649049347781490428219418803667199575724110592741109142084631543545789609098997295829739927216851906889676881715977273102794327865253443131339400554410441989632638589895322954869856855348544527575841472129490847866339885255355884079343349083387667992233912165528267210555556413665879805010607189828064217240838442254945312181146441585676365071069320969825406193844126528442123322691841900284687541553010887124076891000677075877802605269431820764344532193456457707993384935642294555300732211566544954369039299224067539708108485364602968446565118394376562633688054464734712951196147821415400511968115026858437911344155312929331378281982869628664695754831062168339708350827797956616662958274698031623404554967210573399989970293374203464879073216690554856687818921318857922891232103764197174986855061954829202338129207020163356583357249447910072401872339767091772266329601169421715775724356583497023783361814443028829921862195011812899228220669861301472636843924933628059423071057157717337786994910420076298788481973702614369917024875169889388766189772110747087130196425040534979882953307940478211216394133444265402550239688861603094694323349000794061518791837546265804606418418825683695665189209205812638772306296257967387320718517385195921420750589563053889701841189980015144760380391441428279992776913680285943012489147858515087954815689595435282954209187542914719800736594079172610145285407257021242893601588367712822520411218844542763365174296219452224646093191955216620934930653362917310470760147160394814552243115049147851619605146745253440222046804600682420224835953407010367529294054281990123361961865893826692335408688965027695107003686970867409759383643788982446784653163355153972072600566903097486075607965469989304955558024243842139239301551814241824316797938189293917192809689374409333050749155023775448769000862662253687407513625413587672145634531537009893367577888201524119525153887256236931283209553672959699468797221082064722366501643612641739368867382451314770212383337233371669714718209990746767980668904519869730724021912821428708890840780717372155428092827115963621200727378672244026728586182281679078899920213619802125377911810739090204298162685510747601911929061470272354704423359531285421999360236100176857588927621166621971927154521106576255057555266138318840084045209327503703350066383792240383110477214394452377992779003257475051165394384150686902256605577760764985781382249125241126032523525429856636328730650965283302355931524325751520457198507028741617677373856045705877481084962880861487845283461544398940356150718921867576929600648532739361679588101082739127737685357259461801952464343358961032829777409430503669427502744810600758630196876171503768170846843829354517225936215748502307674633125312470732617621556057421588846365893856600491030672974484320902069300580860801514257132408337782836359778015022277095635200807318254043664014980646803029253490853603664790536412295104687232347581922115867749893109607678195397075017691434253652366250450492210580749801502321037696141592175924131779711186302518200965938034196075548895453421100313779116525160103542452166669238612054148147763475931827947645910854465382285170849338374510543608201271892934708970152011801172807627207509013375745519309188760176678005498002092242598020590154668781270791220611041670591402104032181818367485353071949005239697324773438468998064552017211170121922847559023785270530836962558913390573466628786796381543421221195987457426612859778190290119739152552227412259445603855111927305275681486681772102128106474429208288207207473367297684436248881171981239508768726550582400070185691660228014214405451543216649281827159168687848976171880048425241031435261324390361928223793164933491776884023423272365580266260396599351606351052911301765332418759294538377799482546380460312994810423826615132073176302500152305312479615905962471248105074528154809622732376889826955148796599325165864302704568313954244772044572203452409347190491799455798949555993066706146652944178933806393103082604719799367428256031235984766424063553826883213139042969171317084424612068391017977685101716111641196636428519360900631246104576209710867262253344762614432541423761025821606016240345885823067866387476635813283179423332743594694144342041557389196062948924917773106322496150149637606078953437975062478391309152554068076740268158591157463286248346656023184991518962733634061429829312171495058175769346508295072416046073690864393396244139373551248150684614765869660808332495161057105183711883916122432200458105798574491823385834157914432712241146677957762351470752988416138769057935151575948727021443646027099473825543467290332416597847932953960158133336664984310562508846797778858244340061448154498493632115454153909408242109190322778765395296153391855143297197496901791670360964944610191698666832410928092248862718094299070312748120848966106412189646057247921567903752482582184883405132763904859005353008265589911491145572470022413267052385300508053268684425846250864428264126160091552232219064468703188034452695794308823311001780628726860981883706878708664056793694239918889475631725001841820859620362241627536002665109373933023616821352469156607709421720472665961982159550322200520422442202624753207901461436728615437064733928671450654578163016812731263660113922773820738381021556424133777115083481801100583363473958899276889685425522641919574981909101206310994223389500568956279024113535079905949784510480594466533271766503479973127790624269045506965986684804421247722377824518247822765458450637219226772113385135682498225707143811424271893587334632451899259802938143920720638522217330447891242802655408242445174263929322225073866116041924892020796500970571654897038417551946037782338072020562400349369223496158776757679767248997504203677502150984863394631694839423781366455963119455419316313518910607991433773698094066830424259195791985612416445104073809539971671998211228869924040974523234213123154095415391064116169809312354781034395496502940236909555925606469931961279230392383517874565465382460813503898367189297869849818948055328921098861040927862057563982442262457720224771606550227091932841250358058559121903459977837865653343894142843753002027428043299713974671607797211816560508098203804125657185790816434608554480214487189689139364659487014253312702615686089931687154361646976286588550703639949610559704810403160312709708086564298716059392889773316349250063243085339484860599002920548953596935835646607995641101142032507867753984973707848576404371055522224322383959682529766090868845288405064898775263641326714333833318770074831664515056829374461577649357931856182233110105500906347738065349144186493767643216140701680750872120960982164924350417010613258906489468823585052640423480510728982533244657976658161784546537351926259271314166112732035162093645891108402394206531265175362504742329562771778333694571015283304908306967933235666738339761859666059179336130703899631772181552685359212101619238138177246257883329017009367153840745854337404545389394042552259536104086592308239033062290546916031491168585447565477948348832566515523461453943747438715033071527969664803479559080666615958074293020645116935328766148105727699776738145953603175216872911507279359323849305827204329786594801399857180547140001468273643117962393691361261660982524822023188683099429979412086923524180589793931596608772907490400310097664114254697126372650867900127836214546720257422060085180478245548993664936834384533748090608344221211405836684766574085296664067506258585722106331468163592275412886057702033436532489952193031499392768232108492631704203898216044877297722331727234876724429564633415612649809939690176312477749421254749767345651419509989172222382123222488255390886209772269984129715990898869459224657198544660160830574726957641394893769992510985106279364675688992984172557347914601075866592409977762686360139835617199329502329602275581166785767766806300215411804769183083442259871628253285523321292417883019135474654872116727242617185315002272521282165627822408496288357802423831967481114963001633410461226361565114496315570950123139794580761462056388319298411663556462537116495909310874592175458798079128562590849785916328701899159271631338841641418058984993904716164457972817963995439220380278657378780125953552520198076688569821110727509185764529499956116947399689565481922899472003168524941877001040945103477374312514072576642279373745210412953090390435682517079562700472017137946175705981373778023241900264187973352845190713769311595409145146228546440787654997231938865797245671767213811121010144596107774101921211895043499193494956812975739958082698250776223599772308442258816726756765191247497187053286211967726904490192716148941441639046008145591045620692443986561443862357418748022553795475788644912649695674992588698326776182751707277661533577906670675723523424866742920280777299627642691755031256935342865982120364853712855111928257881231777188926793069727383147153201721539980084535394825277267811182107181841121520392982892408544077091827428178558065913814715493154541643140839895696948662356290933962759650830033470177090419136250101693970055811353768978769808360723138750195114607472741615244207586786963702704707121996453248638438518974785621309966293552762719069684052210766034831979109765731879998501514189762465852160550758152212061953591173143573645933011564179815235080274209827680376653264791191623027566512917601116802034461526599284409614976432747814668767196328987622731708861003089307762383088852973109665290483099160452951656533495286299030852345969972790443187562765335327315092303000958366574770689387879379204323549066961487263487323152332399185649868101283046918426132446767570406764138763363761677603027281111032155737190159413193271711546496250991883755767291379147398329907584260420530785288578496773440794448367091263086991103049572866085709566562432631382622255607830859025019782625851608701679018270996619383646114381135140509356548212489251643029662617425945272786906593869945978703794702833194083934892351402171196143343501747301988330856196727927168902386409680127161683478156085290147034967734721286195284194758881357221311259210265918751029102422908828433332970889325981217005146100023478970067579451364261224155372586477521351368735602981296228930661897633142951190511943777203065218525363042131846115745340537228843383845761654938628145895362112851957965442022388792392178617183629716146139151833259446260838770472424442850588648191384239215683926090327707454214659069369958915322504161778108800940400655798506525819187393733095811594071037673810321225423681720594093030398113395000385635183369515780467870094376430107697401663968570864339593220580673368322892639020395390394321017780483005417134436036470708321135155460379922090727582323596171793661469195110847069325766036995858180326468139873709939532050572004805880699369701769028037621395787070816866636445478428321337541999688721612575131105597837353993884539608011555432871350974795240489117981118193424409403687372437595601301800363683364152157101036531153512250172113065473719142680993273361921549442612253465978373236542996722949866163572059511014269573976207976070176397743091222455079460720375023306344844933726017492968410948070365802022185353463740656380420899152172556528350094960156265003899154288042076476602880382782329668662379838290610599483932656998897358385827176832665961466654870651910179075996733995413098641912762820503687926766528433038189486361016041049436469478612807080509968376046005299116679036697914779350321927162247032094124319098148605342007278251188743736479143540158904138613592339988799206912946223558145688211860355885294885953676199451205987821507764486764932701126436297654391320372558737697456910452399711060327148837540235592818399674301730454668392098680474312282420085259894852537195735356925068279324693081777075326284334579192998528493209974657436453764785939519643245551500388060109803943532426428776866706903424040467921372916995105588986432876211557827052512428670076815647745004118024517279935146128303131532858186380996367255924714234341927311666000201632959040339726035529765730559989792662669316874135619515583621742568624760951448824064683702147778982149142409888114587956673896352120503626491136009863831041397984586386664657698824183228769595907301280511409533211449689816388332175415042360420058294197037937390873676270297313257096889758015977602037679698770399060827225867053654382601195337071471574346832577515155072510340389531563144604161691047065158699492194596407767938918998298904312875397402322679559266612166107903679027910259338479130491631699466374600980256232444836459872622132832975202239418625983832991645773640412688889990432450760591399398031051050848633772681986528638082496580239001623556155945804621947344367433350243753090087662469684267259561839947266228944894471730445665935495231768699698212534601226388884083758950216678389611513323086048953052966836844708938393485189522113116973655848447824666133442833889298020111423960434341881282648079291723217934307767856797885181209079055107844420592047040804556109141729841359224071782796126328971464545205837283364525883046698276538068521874039873061979450065758315824081256294802909953331061680182690406821386899932060815894137217455396205852935222593573465867345126913221338819280271581500878342283183367422574331975354647724427364916095709486045899494527267990362764547903796546166591631375620665288412489896881930833047703141323438729052213269339470853993547205229925805548397627169137229679790116036478478623329779824316193534276816903464852439659804408550145434955826176774806756058493114824925497705535396114154982981563925731475196271727444023896402730596585127275241542881280240398134121708472883566063280669180410240713194559498598836086768864516507076809158686472152890063710829290346041868320844054176659357220224434777224281962006166446010442235698647967723111339149144289920494399422093700664395507299083733653477279556510134828744651780420980366467235827808722491197629046310851498953904538949909270284623838301683564214630251618560958231510889697976915785710996783834192908891866482005095658675447144775391086728722860310708980234001878367178879449334226663425492016644463648310956521892296242260776983267080813720530525119235451723416505692389244295269455230707229428462529429125295977471775362805524352491298971027977634778252254348136636123640992850246213701015940761125924263611053044961845299442913359736314615577030516824235509287436362485281176004142478942708974617039689773843582214000191745045552437159727783366181498246871815635045040753269709781829808134384530425605154898547163738533129828606797032116684336116429383279739531205439413783844311586039113827727782863770479888832909984913770110876692894052358307677834724197629105903324054767930496814761125642654140256639953776910767006118427669030671086846359184148758029540196931493754168932984645150735245449117856518726952318733321947354706324094602700658775548376760149464817712216403317630697352848708684455244522084304384473540143326883378230678857808646328874103191912916641574344919015272832829943980933477128548825237396764642668943124246433311415601172355177466638243943474558094130668558026733517650311995369035816297029879401985525721247769714912619169290203216654639432271353406181483885494847577190591353490172619956293562609727417738496469560133190051490004663968812833581473313425036354022157668319254913344197009887711146323626846766323001614725269813637341067840472953730167174267931449752029279193187399734085150316074546420947345243896420225251655756470663021725096368969847117821310116710078319003926346137032743183956134107071599548550188993341001298851502891183939319443385440424766664928724395565234095840854486626843988659456533368921685650806031300533591057367179197043228190549046058734084448778392136944020686312055167911507241972279881184482251716082663843483342369813448079658951313310484835941454525875507760598404988604895514989268378755059651216634980604256967120702601226650491074574555342602799776152312428556538290315481749446387539155182430004437630663056564552549463493211581637146888051521592311226709424769056742838072237944749984906531031771342291906114096511814929496832237830614807788305054889421814101989819024912497959537912105917192164724980635711371864685972797641598845373786744894727056107031630149368747912962734441635220294423227909244432944553326586816885635852324834441307184999626843723440172854529214906969930973395866867619355260902878970105067010573547624858370781077850901948354853444347307857211625347493223715239159114092644192168174380751291215311253093571029726084804145691470054760282202501314951564918481177920119071336907793775800077552733045207704118432233608339588410586502072864944257459327330698106069752042114842969524915512600434155039101129095988046540342164818040052349479329300614555008830710536094268643828103130753150451108478708838870162284757261381668463507627378646655703717301754302799011617443561328439285324368026115812074543546169068957942876955383242982200841514536988488856997757746472071962160427406666072670621279560508716813579957568635669262021713627083462671554921407043191550470274261496532570262274605029074333288974652146154730993987587961133237147732323664964478868185256155156129193966773764234516016469905607774294943863306406218688460205707408289767790847716870048866813830228843545750453709047009464483520894784451835515392607728662456700600736226671842303220559979235330433247292270762290318278636614939034356089121251942400502883561822341300394786252352548549681658768621071662959803155459969017550072916991558303103434359319723672308630831715434008209767766696659854765379782822971406626811071035611423125951314606320913030701112590527239984212540069726741230241177197437139506070987866502314151307763071225631308376055753125187380059791516023501596598807698857563685915089228347794846331046739032381924285867737308880625642271578877123044282366016057939667958619399717940729320451849334626876956799056328484526906533535891030472767479799288150663483511512763521654844404045700672669216094688407181974509372874582584792828265100400168063381070497764876832918448777252831479875280718209902984752211185055349234522787853719633298207988727107264701197806172227263143609692451365285813959383411208442054422795390227538082795055684248819083904037095189643975954267481443623005237869594216844065693295100079277962954150085091109872681426023412223496158090491467041735435350418008336583484965879037493261527159161011873042963782682368969981978412837302475554678912067013580377222365306085809581281122815355385784394902415941388256121315443921789633180699329195316056354554846164396976262192652677648709145544112783972702889752086249122498592545124180016308731764330829274587615983098500558124104279359139789268561835614463645576478691304613347733093147344626534063612960970213975302620755128058453605371155752263692466172313619557558953037559906784794268957994363546368276844326068656869096488260725026030992132128543501739691634423268386856613375443290545345917918776863398675426979681276747830814690394429689938963065034363730134648774396293282737205731322012686069367917596193641326007429291132380292945944896852322744746728519608523458625549597756817503113776007442824108964736074984976534687056141509186986780150402202261325374624082291583738441028917844400542395591061847786624416817264380943066527665811830397999117274498935183027065816553895260433895954409818377343883144926346757957691794504842690644325618106241405379257839687092388612096758696458723536125022477767012940303925840604757084315293865926204819762622248989082804246802864629624635349121350436242487094894610576558029584674644229611160981855687549526106428129461111445350440715209366672033982614983616066259934315374349262271746903065369698059432875473100396108099872480854091498112168822132020217900044188963861949011887495530411132257612881129281880552855765835518792269022959255291095092247376402921449536748247334835561771974690031432151949149150619988551447770562846305327321860938795692146560656049622062956774091714024125069966067152036938115715672330603029489810451458963782100672357931559324094771179414911261219295286495216330518322778893225315541166906343006428547971000050264918620842512668227197220414265482343355452971229409986299599362331718954268594933085712946094647715352627480962161431210622955771847016689705873468773291626001731679649092070385151716560275482897191071252065990752956616587394333096344684963522710173969512683845166403078196087606133669511593908329042030674917279460546308201045423425991045074043639022834089394848955054643448434444531087321518310361830328485646492797796973852515566965492202386099773487604010526089005728975636166957630633565150866636541814989028214849699377773900149719369967584477385414342782215432189027800064587903230320467233221006583459215509446126535577567978708537641904544241663397568274373975725690717358027715369580469187331120295329169697164644873249661280301833156852580013875290334140748443913475196097666775826900505597996815047202920010733945490331961844069709825490499996788791253352529091404334663120866161131353028352419322478382891680865810717284191856580635826819726462526928333329854699249482506337340682162949340226525796908979661101869662423330311015135369589835287973834986747744447354871889848354703559986330193832414073262352736492420594570140743912456614309461194674297210134822652521567776662504302917396372313211716650962723276418919658214562127165194701945017183939996254898832555670770879577335367793990532427995209627295228652732247019987246021193473430684611405929999213175104666721401227420513474588952567786884533122493918014833142985516361618470175866527408274133227508629737472840100397843662575529090877556596309473747931660998030878756809054883790118916573992166059668852128410702540372797611582364793379824312169625302658911702473455476587889613057260144457395434709190103496620946878532945746088433630420896847979555187993496382777009731642478718760090741813877126894429424879253749423719315877148495865245121099162965493053696941259261427170058492547605804786870274015776930487675526671029812832525953983349507795957101918670370723898055831038787424465537714982678021434810715041319014478571244800829262263622461790586595032670667296200806618172994222781434747656747953892560175012084157361497184184627113562559136042746893073588377350112051693009596492056397962187790885674250339041702655681229862897719091040557588674948865808971742807373788239884774092510946531502790881947317150624282761632048860133107821661536144226036424902359290438338686001424392047330838808754593524066696945733759139685436185260326332255064980099261451473260972727545362384046108214698402423099329806246993393606807261725820396588658501313705206744507276986559910529986204309272646950165713662933558596603311750445467934808023012482908313900239559727751434534237400683325694374772062588632275714261280597961278280921094423675645672992992357075599948076894945940559554218526993630369563932395311007984753305316380351281856105873787896726254190691840709885903793843447359261791933404772246199613012019205345941805387971048432838548410596201626364065427616299497792233736697823092334644943867118594233013187061404845798865999456959877150056392382477265622831738181812185198953549485814472040618569755035854474125719852675961378133036784587373781045492474995579683138371485559270259272924540343059924380833430630239901841596142500703615650610389354907532996767857017430616145251501650374783200972148495885551438977126569463565764148379861518894404641069567236920239443153619716691613936779161381007734474898753984720579744851548645445572059886869470961077878801181549802090501231231669144902463736885649955593084481273687069126310654103999918453707168390574066050521287208441998629797463647159538807217613111643313514987206137865644417156300304564721291790701348622649629858065722029880836056346327208213516382411642904112399178228252833650669468299039260739893714687917443647926428163056116785159607601671194008994142958464148827820291950352548667620472540889639839354151931231921991150356801015979398075499741189815129286897630023501751886313874507577618651909851680405952265211614334978790226581145295976867588781943776156372229921836783227888818302954017260755304166743782140773131114887402683476711965169411977221627003153391504608747274569190014508355578383889597477145973978931506648866453873613672917655313895059309196813429880768989668205081306393811426176429173703559846314800444342943553800118262439748786988015027913663321270985745695867239112818277619144997288305808844540691627180078943433283739506220730629584054613792476088133847710098169353937671423218921336826757788597125367462061189673212558858488231344336644255526848856518758389962010654206855295324172730610528331500116958370769508494368772050371053813848150742247450452699414262365086597562418135639672080882317821844665532753724246798806872831822787642871420417420960134198390169687412763576016440582300121325157043370786767366693516340792584650342464229338610630050380188645990848266335129246252806357517540938963818500695890731276077070117031807777191556963630756807594454662106630665530642777965467351920049334303094518758870717113837113615021351948915545643258874067746203207989096548528145256275545406811108225655073205449474022422770542292008898428865502732788728767571235570410204093441806506704202859349432959360072985541426609517390440424299876087812415720694447281884516276886705275852540544096622271042803879705234554603958943318799818099393581698215454038148187013542698921389782556904151883758511944405550123662704967438676501942272689220945943555639414852719401385617001833244898785823403705188716944482325966566006810029499026287741617235383986203843847845324941014494410910055823404034862620909957302637299059454849144810435732880871276522808063786418299218986579962536368201946379406559672356645292538393961341087493307204647335536007347482981303589265413338593060103569816545646975587937666675803295893406619959338633003997829424374511206590487071483222402685035920824557543196399667305685734156075997161340595211112267895718905137102476648887094883848006371722544483170652570836615191141927026667932055188389953147741237181219268343772735696826788401300196852057038971826627890525024937785208302863246891178358494127536326438645046468013984375835175267051622911150202980232195860291281986325778576341477415215447257982641139276226487185587118952562569186704273785141866836378223121649111494285066700909161967352874624270154609450587008837637235856431125417762885315795329688522410776880701116615328071519195672518024612326791698863073888798863874154215497536705742811128243361794782006095179460009508418477252293547083621826382569829684083278207646421425713533577109779793860422972701780342870955829245848448917259806064360335630516457875170042309314756533090275919159500556761938979260180789872420252122255484967765804063072313014673915455336551978124106644281061666519052431043196138964887291557762273611779289838535178039161270583347285069929863289478641834726285624172406596571196869342942402396390730380830743078413754526613128261688048043654416542925796590627149657043142775484051933794449428068180222644112757044193854469800203382399667036483233767440319810469696828993122942757792231018952500593066750459446750926373029334800836043709825119689829929374250862572230131014705888172587900875794940265113652056019166917346978998392621301644948607583092874530038472347893931917250207388258555132381983138260917451914217541379345882827665561871627811924996502173847878412911267245342692119850621689810880393616310512091766933308406697456806080557550255231970766819647912287548811272334000388678056394610025268264879801932516292382698431273457311264046396876708109260251424724411412776668050465153857138525281555362044662443758979368589166331561603490333308792622683524819226814921092905943015265422739954069720979119128371486681267935355750395199068759072988379349136577491866376501988707756157072014039550293476938147081856806410619971637251088205887355876356280540044090123706207144971044780954245623415853908259386360109388191135062888784503966992112137570795889828659602561419844496811387025949979122036582225479998779266538082545741344144193079661434917668046891631172070565960985785169664919425897302696057103043919396353898868407079888751466974949033876811380082969764142410582005081382651359742072914288108761594998606136059747632676753538904300359600070727352071702936719363895120861918482321945824161660439796485528610096685640675014453250416680712440422008772598277671571338250308585791913607182933445710445908925288843817551940354679868436390770408096380178621265937607975643739147831017052091972249074061866553888409946078772150853393538229446196433467106761141401444959693451941925592784326019877587181076615137111577832461226408690351328909070529075013433225475830861475866935864300068188293328931348956716589858021408255835998190643505827181239810959001199659372980358193334276159069172890374542861914905475540757648756148082085553764289960676100475652504741916288783428642430730638070008585518021621009890973954459358930421374484592460087904480473698481310827919039378900880979990865417339752881136750072356340042450864198035269005766724264011425508645766532807386913258915423610916424284367537634852770394926500611175205323680554762219291474431979412175168217161936609986346693879984005618747056809991550708271686744819887157191334592322518379876176601125351579198007617020063191077360612462982780644927008263756012319533516121352973126153689609853910059146108105238275721512365371936524805845122422038646781728759652246771861582401440376580732982804170730127565669260717465570066185013829996415096398374965755102617522015067391303008414208503807880923822182828025828629032499828472077304115786790593205784171704852824221103849942787225643539922683981146219228631329589860922042546204453390106155277173782722264834255369650280913265035246098362492962938026783136985748275161415548611644548569903817125480860858665741597326978756487566616563124599726983731487959830764802243816637283423412591624795203879452976774458713949009986836919646397158166396462017283857174673245566520551486157655256175650471095964006436635410842582675039369839400566654723978730786305052971522299579572668173572902804768862874468103439837805634976207382425095294823744948726164789655213573620518457681301031839620552081393217075184020783408278631066026276392089715807139686706467175326074832437710682400252991245913686736531292984194000602051223058031560687987653505850931673474166405562135315928295430516547682498397335790528779149160888874306850960500994897527744326567808910711842146993358346391614136406485158788473769318312699713614939951099064977584687831705551717907583469664680899178983891567155111834024636597244462238100004952034215265575745036303380403924002598890571064912353692907551965982272221869748298107188565434596670262213785157751476530759267509708789396252799471596281530811534937157973850770945004249077637493882584351873429332969773808146786694758732758393979089109770648559619400612562580892874551522080918910631293292037431659207121201608275715039670272529342097221893854486595397905717899181565234908794021382160705986644531954533599515741626222385435187565705321343450326482650981070197908490505759217970427819727328642296603498131612816049115431439867363957892044211675386227417793763513102094343294878873784279449055655357718893037547255995528853854367189982608030696149305578581531227476879104587321150505039761029791363479034661926396868691373406715057597375814076225801843560113223429506807833578163490798139878838215248433039519603401820314328455021537666266126385316548189426747294860242404576556205952170578778714834359059820738568809263526251286032058164540445134086570110259361892017872954091576839855021896897997298461853978426135723471515586080374057378304723867323771446684740599957620660452284304071456332471698651325933584379142493638164842367066857369471571637051069823547788781389930202408898306213992413041159316167475542204266506777197046088130263365293008030459458510500166502985674586072650901766196321197868893869650175336380613948381595238818708552748772781996145043595011388347887078338627795885293930230715677387489677175545004640648073805611866007712732692743624496816674441992099821633257618442049669973336451591678646585932102870284918877598346316361613947555362784874635113610503172337417670905353954697248716907974459820463711962881422673889891025570343451253633728482768103495466454772924567290738134528842968167193058537144348988428894523573139561908062934634500801014589391576934239342918121183031653857375582222727476509585386508160073499136578007460766556563652941194487020857865582525757524759846095292284997449795013877308290055531297822412862511244254614039696343081854981837168736138747813632750753796636032269168479495749095569835987490115788053134108536925524696522816834598156252554044555148387967203704170445847117319927171515700923847811944143482115145059711267922027834027284730652246859603515103914249256925912176026872083441570721265026227891882337607076412039992701718504763796671967634034767090289302760277451845732930875804955793940753849293209771518281539251107694241230145521464887827464546843372463966166910318544358923257476577138197519944431432815266919163703038754707741314688340822146409855021409656426153673376468844101685509532978475084619116387583054736863245894763537365030893152105333756904175311371118024524203136781816078147515325672408786144989860893876586624066170924625397173900548789293320945289230394974221541390566141914195286556056688092045299276317812887781854755576273033559427046294595730061434659323229803264995389929632788728903169680575377547207040769043955919289926659190208235000129033062957398185558698859489778562384728688020901934383094474217670249592834853878073497695682628699682345244563669635691879741847160923772141933626596910557633952552415973486540136807759904078146444347023333291930436413247649545362723331194025275748187681935034817467837355464561917449444723940779374519674304303940800370626728443873988048486132372154398061832106350605505344784834412100598189585683961873746952339303269062760322654715086589562066528018930840382717263309198532074812550139878950615991200798488843259711139655000344387618545946887107978425844756382666485449904414454971495893341382118471015255025959243448339710156446729304565064799301045219772585788726061330026705280177507021183824551231098210538347174422707660467756211520161096815187734169763396468439219009634396026742430751477037578490001783709763765995872331999584542981286875792823238969568198796833148173300418447997686647773515840124957003923780263010146512164214489137609406235143730494020096848977881643789555546998918849192838041860350109001525320656721511270697178027907712467529353870372756865819876563661266443687368186538857622466430725017478251151983111916517775729789236655459090547857123325923814319510065338421240064236143120318117931662543426132604131698280835995256602607555246200640041561825113177652070419627415930886841521932643268593514252371613300406628829036723783942632034546029549485700709999990257933117440564113103680787786665486557817224024437133606981883360374892256087488712686661603644491463204545899966294309972650389958647514305721100427040722217613820144494210236292226650973852740977640331697976553760305937702092629546911827608906928155550971636078965023261241300477772148115223366944586976170318364294893857380960528246457067339401813116573522203809703207300792905155285009417464394547820399743106604243490598628632113378104121367871693966895016535754657080558221175854154614650887407107806284520712880570649784293622640736043714128770499995281969147917111313799020400080564264940414018602365461091469945463833494378354690148535270048272068394246645859013347673906037216112697221792170552082753925373227028252480900719019894181023146687974458208963233263175375727369203261765292599853544567527332990786280729854949908039628430660030778426841445562445818501864051313740592686918174705171274855977758747379028010354568067495690023755631892563324322405137006319598426408354843760818791111897533984479282584668399546533654095725003746629811533566884989113037270255811252670376699779063334956040078129781900436187088816296031035542603354017554066465338406076644226165822953179549649699748917141415339606593211886011305622188060091302886222088557165865861633282819367965736660097338928894267762489304103213910205048153403530183535896323756162948179703205849882316344857381326170339023819905327257686714251814466374806326706808199313522317405041377264713731729918946120368174656047893307362208541579362294664245561229708631824406825871925262165487210293268543441471254271505147771085469578431217118584405235754844553379747527836501227590175920898973864815008551494979388964192144574667305685790965620686629170077447666052338275580377462825646699207065549989055020447888055243202318407543956050442211562777655390753012744624904954635935591995951422745879314574242093899163085929990053453360840305530395154919655206830447476268067763181179714393824700300921337373347461768433402291765858225436879002581231614069660787007157095719382928121753411011605636185139662463212122291869276148036783022608091794872011888884600088220646568851882556191451106539886771188822406585593866516034414493112785812504633775502220730569052152608990784395218673001692838703638832395519546889019676862302956819906101246174326379615064001917556958751646138981017053619976535312842846766175941342575184327101115364782558710549385077812570736264824554834221350085171330075683021763292424752263541498837379431322611533755973677843004746613565359650788477610006001864225099935149982085057196239824497182603497301994173500029331704453975203942533394611022085000681509969464469430602586771318902789338369001097922659249407399474453218568646181054002569023986358941311849437167015839790363191099361332345231493923664186792248166862346027173331077247968993869385975088860573765868663292715036531317836183167186935306747667506380957119143678501552882148499375531040894141798195488087124687498214953062279154690740681628979894475769661849555113593464870158235914537062242342659920309105631940842117438002436698005379933577259480151029955004883377995991105178716300232431659726989029963725806693967320575876943939953753723039353230756180458237278207784997277515843482783113390963206841474936829119792075098388264065465813298866498531378651246893319682003152296768839762683378953707030354861492685403232254862476559324595907860060917940612319257525747868348897579423221878045313700132039151378146523142880605823675483278371964293072302153476433941789905049026008527961977662696462256500140730856751504125527998141449377593198530026699313582639231785274195574531769408662289190562464493901847763622207764084068494346694644862858252981519295881578659076167973472699882170103545430714216531843391560666859202908554403874605289934660098755275891691313916651080569952763117249982771132358189721885096902085847899194647407140150068497518687192525114466134116246813393615975403912112083477838536902142519943032308258629304151908832139319822103699895219537163302802975304067607616289604303897022417950914479160915874637600337465455773888294108457272666178051861941520220366297803418770154490751293132208222756832591390184750564280455051572265318548121448447596635585507884674841193748321430960677893019961543383366577856319313910436627586099088513825828092739951760826533563546063557674363307230740178959968808242965352496448328522583501377659850444081124275141881730048162977395075321872143555903980259152079329751597455221733512066878470957028857414011336977267437607269379618190408688255837720699940467837737805910428365105291806360323230479099702522587166707120114406406608989684052768553811632325421072952186727578578043464789891050152922912526817006204303997344056000242210386696216460165461378740570555698933255136720201972148135183793755797466332645089438108005028350873971085348441355402253915545166371943337455270738442668029170794888344982070531069218534126666584940043809591604154816302636374819271782673824833336178713430338192359338380546965693775187901174480367931976085113377818325330819520078667592948238095180821254851000878688670106934950097326856463263340124709046818485414375190833598221331511822295903301599708675848347045351768453306333762135911062031187216345344611773377407661423591029906726160462939925001149717041067306584463543672286149891919414371544837492427243490967711958396972394799608488023837902479554585718935345781518148903701683190534645586688690804359730870892422791266678198507014253229269553166001832851544409659399613924904595266290993605800761313614284675021098865666269601478770853829062385549519733257477081408793303743097805928882497415265701117858492891856718229647346093998235325913682379424084823324584119494626790192453192241805018878893781380842729034109702481946406700707498401320088352731331943238384998174325636249132172317471795958951006291889780008414935807045143950578361952076339860325759173251135318590581025414696696528200358434785021369452140032475135391086015961377268233836382565327224909607409005014148625460449608506421297505128896039703054633628358825886689740173386436683041755665730130489264583347281567587517752169899673293985786986675063445735548385772037894589137556679718207475473091335747615213393809294402402643244011311663643714006655544367779248023044380407479874782285785289610978188877250853977037192741727055525155782164280392822237823526877567353672268326538369218055860351597289942811778218977050589982072332511368044838493877111765937166660477549465200651466512884892446300034024302125600313485871646698440772429866523768766881358856364962417939711762715205527579895793066610300853135474726481646527532007791900688613662746983987798213631983284166092573426947089407844679403971391371104471792572288927338728247722132876474584521320158854550085103135440762898174240424886846087080018190547143885618387601392195071112104289446168299534775512931170715918052611166358040008677843036138246608193956131964352733798023038771543824167557029625338984224876806298860288155960287377109580481986348649957610580967425262848441122257518050677957566628109123212471449644411420619675778192628009054384083479704955891875302732530317118660901314339351744191250200790762737173362555776386405592661683669997598357478156025711631341016981099350787743941681930930865827180061546938811452044720348030482160472174870620240372030127633493268065310139238863753218050020693391078877963037878282875678174026673172480820880588480485227829337117069498584262574959545689492565912226115958932585030112919642783347255216217921263928180756294977597406073527712302052807809438458995841822744092282261297318796876280395027333294470781040866552269213038457451253264983788500263409495115519941778235058657278200880657195517136279958955798202918264503248752360366605460061419562994352533748051446739606756727694664432987077226864928380769231569421438827550367365734875373669719077499170692529231817794530539974644001182600396305140614726399408651378275299898956154109502753450383399266736260913928759361156351060857565110949998488538868034173379666522306782600273225236972618093357797146177186373331852829631661969312523428199438586318320684850319099772108796907002359936244854127718848037078185088391552932138063705364066444690739741181193526990165975042837821722530949048353901050805143715776209752411193884205115881400366840238898939689252214052532407457913987853837362966986233135796605661406278430534926721085893600669952745174055289902943316100843684059262571716831358347159391453358341517075887369074139303933667812092023900748102975664045941359696396503280964388572481126882142714442618763387318451748038998425075374709271350994372308014631731704873274786228670319530558790437938107183980797426752895550317318129335804389291484447077723344223672819094565056086274441333115293610832476174354942863150339091611394377653877073060311053002753806722768145928348374064756924157839096258792976489967664534549786034824211468806231834547215215129872385663379181368081006458387127721462645138865865029743555011302447292422960315507651220328739964779289310292295436397536212280541325218688556383135902505908517016773172662958421559811711686833966797808687545513029366207732067448788388347865459069810321401460713865007486400137105505762561249738796858660222018542546728710582026549520014334457695337775349002302193713171924867902618936848130022387965819912706703704236221295722137271938671615657386925500149257678521722827604550022254710988373226301089116780912843085334733343351207084340125395295968067163362692353993067165676232848252233527179151677720412444854910229074247656030736853657467920358986347323335976433262242299658756932959733846998147431080088563390587206971585251827289822117489646532329622771219929776876112947234043714394630656490147639464075136845242039245925992305448784547602237731284489315395901965874106426376049725899601652336373711587257991472604634375856654070522526997014186912771654690552200445872985978786662140320575958467832464062133290023123668258874463280239506147390131504463687543273769017984815036577350327870421563804290747352031830192028274734308205909287689569671557369046330896022490493533353479960976316227718702586467778942295321527750194951443536556762802398028863737920478883185483826929570445295447935036036464821848638195047065794496398940514098173033250473964168726032773049353488082581345401714479181760034864692750246548210419451913443749435610034556946146413539607609538771046904137659180953596990354583862828270323789471096577183836667940212291638960538753771653067781938919117113672933190422180701701898584792666237714989006516810501326880642842826057288573975352593007937102547677465213439687840748728155739672117559003725560855037607253680721216909696723916151381771962289296523287973335993268311927315053879278914435817315385029194270607645851781901831260830868730675617770855261648845373340507394780881462434802867494510630591509810460834959741165544389244899316862280783065721223743594570112391167250204532865746755448099210362108375596786033085577818101167634325320019021934839423112198451846555114113877310077484701097768062934231604530962617920700565672599314788316736824148678918983662750081288294929942009905546104776030582557246790475321329564726967220208645423214612340822553345940821406096147438118097385876628530914532962789739331094661238766815011993732830946013014719458836222456409160350231910844850739609279832005441985825120153847825473862792139523320528051018991489820319773750330059780700408152102265757147615055824303650988992668460060596598318070966150929913887042549074680995350595775292498305821070057222604105368960336554834660860069477068016191495455694043953256317176691933624938866592592622111959044499685737399368860071452535512788165212586019987555380350630822743443174340595163392875143476233066870587541600195100580283749925537123741220351784013748773333492285429425830046967318952930855384794908947900816596563603023065375075364285307109976842614902523623774686712308885576198659771774773236317287012504814321261715486092064189762650245816230035280498202578167135804088312320248675840901616960895035241519579051781541930238738030828991184174599160279684357169475106665482535345882239657652956655625987850083663955938324311970766399585134303927012055370052653866116787635061558118365060592391239954034945005641516120694372204689178760508184750596686670117398558809242257352381082197651764021080137999922820890354441344052982598788405313891827730453676237871815099092542324680994552876036849843489643962937823883588324131033498685519906462971627832999417288606117564991076807117120075181440206084785621729471752097719154788909361046325035125800552331112379086051397869366642853556355132962671819509016363775679641158981957456008703921451813250013398013891944492388032774319230140468644213375574018544462692230372446836490032899214116273190480921960231028812341111402814038858481298939725174093536186922478686809520178106310732269326898322102596445644001500642273145567307509660952728361835373045646635421539916283683713216170918569686136636709988185646491482534718277062813187394335560537553115027136078086109236461187456976495964193089877940290271295985296096768925807089795951327044725774676487524717571511241077548365360405935043681726319139361413469599624749930772749784162556703788816106251275268140615722066221754124213992079045226515009874722613610651094704365649857524997094725699673383555967558972516714151499948908882568625503820427167758622476735555396617934055144502748875179946437557190046143102754838606029927668590594592895023322628217251622200479540808176002056783717469682990309613251240453307508957527279415132147493232471866383713795957463356313879831475456783540821998260947339725553986098556879801219804614566773293391020794582157338324150015923201938547232662462983021677045983941332604569627935597566054427792958609305488286073777822213030338038513443701455853235768342893252570590339268589294291241297049384415159095187017616437147797296892201408893245501970879430238609623888327013610617753684156198825549953134306876858047751885973164028309729502017011302203374311122951888438844711787526157262551893607371200118550479641521506163633373558445633507466646868842764686886434762666572275234786366906148278720794058804108453024623618424141344108895653583548353865267199752114023607774725722257813511301504379475157333989677147789611075439967169459629325188009889486839365681405246830349235694131153619944333788465359811382124373804419401276086824335444086139447061809196384825365786465811640676398097554195232744606599374313852865989304093895128852380070573938928283155516516553543453175769823423676266021231820831915172906812656230712170461406161743150374561725627073617359380615117755469523651386659446415155580667616838612486401701063536762205580250484140952947837766729300292867031238669510774747337547211549165029931373847818896279811418161237607271021086319086471712362353253990558275257071551605150962190215847583861237597289727790634845592496890889178767196613494699393149858169281326944896659812467841298146022742443239322294642547933588666066990037226142229525873850623391328011238793519841793496848862980653913853836298525014762964782636628634804630634571264431413292341608571750182466298211266373928149915358297073617929060920469836298296218074987723574741470997057244866140236348000133072782449962737786864173564615950755160656944622774507028354084416443489043120627298998924672299879572797635356117385425764155906505857425465724801590574320003356503640850295546673383303509459059139086315596286169189514594146880476217463818906474430404201958819383400324799381594398887707860670209336235403368960458942653790166171106083372928492553293337016769859644440279362273896020900807521305713354803100899613987580315647403885364540448844883107363680776983944167292139563251875165434168988228507953876824401520276045062778736607655914249531844968941376176947676405599707324755214995295319341817019093846882440699006971756020054610664673490532910494872507594953410378490270525911672399786710327732877599336752877086381151352144096416917110305792913398719978221112287080298040399834379731257222648142419993535985160561976742942586948810760542582264505381588916362747307926569080776755000594123691247822033124423326523381045517448406254338617388612794151581048552248566648913337933379727201620078720184050225930097740889502427139858207835849699186253286554047577035110336172573233738870022552851286929438128171779077344187930206368049551873726580586077876118939362386894392039713405019119762494959186592967109475487191294703913131540440287850155163031778245149539773884488563056428856156867200672937317285918995236247611477389759483827950579304845358440297929558838270072043873078997853452993534679245333909999357627951133675823667697970133173339543537279246261362291485585335710244147301460405774975828393161679892322964072068369541035809012497688991578857773670487307651606141951073366503914912589120678286266040152861929540585557967140513520124550705859686767814835797975480760718139512909089319695150420502585196535708085465519936346070974639713910709393482444874649632023574121313425102398678665662277701379721957131193337922103780384773396529973049715272430916233503559222428109900700319501938880952859808334714361313670542282675342489054131882490190862557211258553469779884105135810581423294928020692058673868457997440335316217306975284155243448302296371179949964413204455606202452738699314819028674015670008509382791469239339041167152254722004978812118563677365034915762699190290331319610734627628731346090515952161053103765014893394661770890356687190560645541656904056471047457759746046237568705655272075201469061382692699747941139237624002641368675822761787126140723156538906968630021858789477954343655620465213338875329253891229238066553933590558294462020010732766659340776717399642410162836234160736623712286701514263680761425074669860898547001708176156624525521192531255297593622042788405301488900356159978966589291813571854633303004576665816902543855019607462407740695235997881574590357836942216302705321993996026327036521365533694560253475884706415959062433904959152536627265946941300946593326567911700954191830160642077152593460204191115977620798804270799436065327685361801474741891192156120541989149410482018283085687997672945898171005133829939481729919527614848284469880772048439921231837152284983126657083318166155812933744984594963157466100794783062890352197877942918885103479467909545323416773738664636905248803339558176080353005367675999006507728785487799822503368429148114669429275074283259542114872196428254738376586673091726240858652105767100983799606609396711661282789662365730382693180458845278040097973458027513106984198561763327296022214648486073580630032099347469719293553547851346496358593347739895944621101007514580959758133796193381182842340526407402453272118667170200169100038753045769916881217397197843377691064815280585377866418303186083773569505286652014769678048139411351352770268846124776008611675685064180765134995676560624461103899049864041680483406643380753089781495611890639438540689490469766478563741291009420380083989684196786850053771544669106739790614051758088301859967627119752966273103823780943755997097777918745973197691452477532112335240010588389303913303130446070712907375471817023444263775001209815763895131658266128523084655030887553233440297301454764542025591031147733483778780484068019379058024689921554214121357209589561519768055804671314310205088820881501648826105616705584912029843612407347830573413205988125804622345957137191495388154819680221621807819388444915155244839332396032746077554156014476748344597833807378848607951087187281618124667821624735503436835709705393043086859029529566385229417069299770963993549407703966700937127005733723405739557090286622274248668566132798340163507861008951112121659218796062473131553050009572519547387239723206592628266640350746936811681963125754903492956533889469445448267873870996657994260237143014449303470821411550891995893425026423244356781565511200667129826091774199533259976784264755557190288538083128397092987788067389937300399870925050573409900528065164587952236103768118298216904238652692316584172798291839489194972387079255076854170505226395617451042336856628180562996497050506567591946072154350590822959204665139437865050917013805005396606819478900441917956933421760687746009567191657149712378061730029174505924974438098568198822414724255580576225237904010096131593125388159538941406185022003844890427921982352312471117419832979666609113767148364325390114090164447288503610407919902339921086616723454283856425554962405240671416667143228345487186880835417753715904718817800187161726155179561647578167361587149538483937541283085499201859318459680923767314818215020923003455359660344879473321299604227228057484260530091074075274377894454729046282735320394615085396693828902669193212138756559749977583525523550563763450541635847032314956810728879803556529487011738613329463159987279360516002279652899264707032291784629893567084621410336683531398363656302075034962700458130301104341837764081418740142156686531958165176324178851272133207730220763845809840695532746930009307519417710769577702905548337460752787259486307139751077378705110086967688887953940159929557230442343969042314149277075769033571154630585258397741502555398674674390938531312542204608451348287399726253692635028182204379951198190087454980773423879762276576711836514581470700323030333888495071983294305023272654814694818920616387345140005129615335025488375084302263398281705272391279457563445288069140911238399288237472084678496326654159873698538347327310796976955271967387309719054270566925982391117169757995481608847634752578878213490442280040562270059900283012730272796465088905599745887921553613261528413511228524601781952225868165828192909101621982478909427665256120934068243212894792948250788267958082957200795639607780042500754498260124447596370868358624168748475255503240995015347906848947462076588937388818829258146459587988186027521996983138786120478301040716350937950881877187531044949764804600299854349814482140337112620858216976981939481407086901815447540154941236135982289985670987682258837952438806151519034731869637622785982803262055102298655591328182570703594855681897182391238486037200431892016767734089908466167357995544079089178849439851185244118150613819063796626692373355262320336078016325711458970966857625634867299401218904509532885242861138300690278999586639996858991733521041099555955382697731204943131959811360646547868589305510728623308657445636627283658802647508428554387636144351129298527207383188901642771306968821980511866834769604155069392698754448107538961372210868583586869365780892574604940744315295122428803219574849113591618394771414091224440853575110644093800518016086535854529524019252225138142677362950703490253974653127042854693777767053313860168038793454886479796752364412005990484575613501716670361456528490950241667554719762097130832600279019288533780577931726277441747080565880126766230231583365751778709986835677000929708767873815612171855585132018805870792249433841156997717258973752179713744968202121570863182146979731132816906837263517865596998707748824470568222424127283922309403892723845259360593686053670450095947505000597102126917833739879296305218478869134036169862627866752888565246824146297632879720621312210758333213478638595276097695538510859586950587465498832894411734179619286354213182069985320687431844972938436098948240792975285849433894866937470962847497566478600675614768631703859968964762494779605526673164278756536284276123233319142241551627161573627141548775739301611387919883706414917716178426699894585037819904916665865027294760368180122735041729405721187146469057068433156794333976059072710725958624682373793160777012231656632418433550829170463588025505545798256236923936377673169261300974432535403433281185274591237882973935481041825193051648967211927602914466556345122670737331521786328542304008106794168435397451569465056922204958584025456746293869261769492871634725643451531940653181711760824552313510161626782012831330016788082848703354588134681361400181647675623276543475218276038612942241659838606257822483937545206098384298495461419410848319216548341928336368263547806838860038593632711503011534475141225142353802932678341933730523733980021525425098988585848059808313102778595029603817934937510615350484541622031992324579158328914780850384919064036072895235122752210173719694750103994822719284664378078768923360498719430691545198489399236508486584245541301674454603527404743508403875008265197601128826442565198168412703295721026354875502660091233676031043934150456334322869165060651876567602942833992845153025615968004457247765820032874591030241958520140273010675320462212533055045738245518519844598274421827768303681713139797824063619995102751877883992966971508931042694147065752843525475793391041900533167451443165011865642183990859067846633568412058837222025160669184646993353880107942824952186526972108769214868108976289281106594763101532079700974920274032612086173320166132485341170834354530037391960522128402442239590039246720670363425879505368065115645998933162077709376730419132490361078681249328161259169232781017186262299843519240768774438067504625918018128465853930258403448446409346794858005140706809859027292593954107131667300588284342650323030841203421299439091262607360704905374237591319540540523038179121444261848569008712890285260871779827688951843050904931200417711225717250982886003977586375101036537964679932402772824140551670219505762172132418808980195974838679113319002617609846457502555023172280095905107747799800473767141902901839512896340035754781710909967116353560050631535835935502126021942000418046541764191620540219404607280444694300157801184163562023328966459030660834629193521669908885398494468209165865390113457850067180797106292684875181649630861621921726057467471586229638987837125496330664594922965235204110947200683274766876013366217219594057545864304440848101016136900417345546734454971162112779092484265319305222767118734732031239585023499486440328123724440608441755135999939669511102796150751181608732100228707541047108578236674946017335353972597644290143842908349570565220727498007197231309303122570845185291581420775041189472659671547740925759707008603395154708716551310486958702367424048214903806454132234824393277573427488452989785564383215604109223224761873254275699536624479705268790291539230394704896765116963526974790336218655676095808546733287276186319394108565139724320180238641874480058091218332122118182629906128315174628372706816707914543734510425886295706401659562426199110006514950682420449245397030904221391229555964192623767746232511296285775497810839127521917921378436813632396557715943158266863270727468607537368708930835182667052944947831273218880284581507091056014022874532015975366583971712672092554638441327786404784084022788172392422314802213626815982835883136661193115933829003973493891781036537393007225811908687833098507260834667879819418219330192146773629943455257609509600676119850994261414518962941198390307534502440014676472090860990013222236471253131714002134540454447573491878081653315654482964117211020473914427984768536858496566894338341597540319244540557581066337463410281250840670710799408405049865176387682077719593173268323069143003937541596953821740056142355810237017509920707771729967418485618142998001047840538887876438216594480085919360756386014607075168263790104458932621384669450111986164558942348192140301344449483139161537679303827239839042369913633941790038373509715727879070387518790986731051300413066737779172952233035102004383229412765869077279235755229966270901968984089074788250535324475511645163447079942184799885458367313692675944345494611167671200164841212447713551265108835756263633825944079410000237664298996224504993613454654077315999959654241816942971649280760538717582383327234947474975541160294802896756549678496288667425422465802719175618624669693775078266454134262191601024229650354996240637064907736849520995816912511376869252184765608932505320786070352682160145118707473545224128889477859635298300851588411008825208770888122125964368486073208472205781393890393500117816257576445232528646091265995016614020470741225820982370169398882627016242398668038050417464782680010773363659029959884204327881069338982649137583857963967028034274505749550059054918658679862708512527206803539178278905618963356211588081004719042703603887543170142007337201825334792036441185151197089984753965015881867323536394947107383653246598721341753195387020344180782659072463415242003223111302958751374669047686169492470421329719105062163499632514850369550677844039697621803262762399999561889988970990870019800793300429752919246513436626949573911208869742572552223868456149509600702199427833561442528692773923109173602751471476038635644989083409795941326576346226332464906623466768029441811424869072461425425985149685071842347171073793539338129927401807513350332591237105210954312908783967764743862728546381448764157748271607668562975431770400613743685567624025187167014253216219551751196727512406576788981043226899768183759334144843234464087376187105601247940047322059107589280879807539850048416950421140039521981927614087323343377610045748544586276747985635278703039344526474054299772107809400253479543459540270007087381398134588408050184743767703017159909937469661394808523438630825145566159206190723281939181059972627876420406089428531784129286681850176111376411833743786155956073038726783700490005983023773353595339782703411702826812807023932614979005897625515594719676744183128910275284365082836954553411176438096481689413847113490708160462591773234374309291283931873495082641673530330501349280312302679954839980575084570147910032358195564333380665174403420727613157493487050552467691126578452443884345463752868889694739403593098614946467518736179802896912768933508748710621483226751656393595909735607680052224842115525248624764661157861732385068306045273904899223931728684285980445532907588395297870749479641619673188502895828967424012672982210243528907163397639374180506698674972331089102058581380305721216125867042001858968247033282544901450212794605390874760367721984636693252575332260412865288141812029449492875117535267695749339379445543754516858452679196415046695398994673967603436225483063155552852588291904492801011400786721062337596991001280878389893779986180032793384330210016948905594323290693048119900997863763518009231637050808841433184339967237199983520053751565783056684511218772606547719009988091613835824090432526891283474941466604549602576577937323864586350693954912124751083014853969483102941748377930237389283800558728759003676997263465635752989428477539134847037213124487253230649002217722935983963588067870697741535007840338822380456445504317270872123363636345979402015735406527629000654658345764289821861212606361197649728884321321454989344100621348663750704364664042835935135229664013117379982883581053421272414705922640199938885329297969115309137121952968907170766742851982000587703011571318298584858936072535633158879218489914617479588651484678577870614460534169684280355292827859599627732080715627469271349363831322938390236942836906879231927340011584056083036554148917154699175712110049692972117448057101366776473197842003601298789273571471656296577365567115388286082647940509248705795288855350357044431784923163191057688773759467344708078926319183528148338548754926618468579582494920357720051264105440406234518099280676606147532198587619322188102925716786779634163800703922914014452494895305422431122934764719404944855722156204545780198801841595193879626150741558107543622150826774529725471400546393717201342751419148842974963947064359153394863183634122190895459965643817943506270932150618016858103017090880549335702557148461729096082301590660899085278884121092651170661896114903457961856491260027940230418849259177945682607916297780252718049478374821337087186721738173452283495497808186007776520688883522639766713845265777549430744018234211134680842328039707683128070496801201480362092111845329038716218250560462696992830451522947263668736090304212124324842082090684212622647948001993948492814267486313936235535392959730749259514537728263961379326656889314367897763004625544111074634826282247042311319936747144383174740946468434866235240301584401379131761578994359047117393199439237650298662467869986602583493111701588816288969609382688387544617725518994462889468286116550592787604103058132925922325104050271575303752819513661556307030956877925269092844574569334023055091456118313169038250153398511868757565286283161783826968003124928629855615083044840868040109502263897398710416585825299342429249713007548404234817341485446840495357212234970375912283331611295755235407360889956357093960493084777259438224417934337443203896541454082048941225320203518546064219074557064936487402604308035121079221462422005146891818262028944822666031395024043644640522165781353739835381069804238644695008359384701685027994259346548351112404652760552249455213790695028537912240323823579926003617568304734548767609185411100508763143447888411813609005535026929222883336762370854756578169509154445480259322437610158862587697526736133679680118280105573068918297063566614564875212612486489719687945582685679455162824703488706200483103118691410316339681259480273636201520672125832693501587445981643165729114430357466858465536561943115026542463736173969471403009809101569076810603884517193365055680712291075860681772077834305192467677579460650104292816994092418919080738447488155924684776474303241104817237806576356999470347018101750961638297777238519328319424287322464428516798514727151827264527646404167272493740817613366110873292246142700482242973176931205831036767944630129909774853785545994083865045531224752613121652507901390258924043561014173818332928911038507034801274192219804924405293596861960386722027289136829137600710245484652870511866585025155059435165056136459215351018246156550076243848117294222986172575321477506128622178345968148577398919723674949425456331188272930956908190378972030352264798256429910394815388234615817415454382159274865559673694004626351700375222772829514633744611165547256836989013588585023686163542674757641125921942558472397919648572554998538014588645499377276143419745479189525843393413041150529598070467893555839950976953045254779838500336450161127077168351529063905622226949686752859954196869100249736601112117591539040783668947861523204624922020075206264050954191771188399862994316618525967230655735545532865712137173852586038135211966598394907907661731144348210354877812592583000456435551602163597903596320879116883743752736911039804161622461147311070773427962907645190971587110688611453592548873937802741610249831612738933551254057419835525625715083408299711500336921941458346383931568159787998380464793719772758356188546053115002450746602847578787979339498335059620614622836838351840431907718117033009115925527279730641558758910732789346995694447834744024155781640142499893359233689742870504773195086520683396397393470498390191218950816019169989408135298416525915656856029571366612261949201091404827484813302464236739039912643836292713640591806357753261832611911004857572285894526490853835541465185774285055047711016443469201702839032733928496857203713181695604386460673237359098268605613373630744505831926466362843656435481815262853867283220835653616377489278286844281603221552581353784538112377521797689701189136097398265646694903280996948474808664647086337743960952240740150394691399615165589250507625945789855567176711917569765488689585149190717074689026659534316818676089612980810651804385981295742837368931152072759710395896366822040856091465449375154075261373045335559698340463356051479895722860040943460043391784503857087483169909247262756783548660229857664269986297671832009619026571004980351211721604299715061745986239236331654598166684618008067472411268209611577343527388377567146235241537269505036013115334599326894654858163672788639951945035281753548450079692343501929763870507349835380504485432178769649742166230419672108117455380134510063976699336221341928710162384544542047346699476518796560195576902835206168891450759015520794509269709214705198905865419409056647382911413871418407840274849089364872091528401414266548294460921003467655510194850424995939720257814445228950906409196518266927690259017666256883559267163798446946841747153593935689612716455648522797697597986200597264313094403726716412310666159348165868433378537466657897325136958580816223316034616181402933265729956126930164968557260037256484996254520391563815151035579552575041412857610350939036020209972635331219973044123516548030160977823199501505845247949089818968013869779709192441719557155808802129515397742354286436666256357441998511787332110204172114234038460916351967510445117448081074045165879718422048778267432093263419516276782895814765394910735437785541435069095604208100369282796738470773995454592979208246964644783639282439126375892444494373474813014338671589168402857225556475359175881550078222177784645647353455407133789755505932935114182248533406127549319620925909779897265640786018640305559333001844057017671567143977523802911882979409453050033338775457614064351946670860150163816796321338638482920897722069706774485122288938980880381584318277457082795520423292349084466415431493154186596973967842403910009482341446295680655532485561708331016069279559767791363867649502432742358359018230350492339728013737795775715219411202924510252404300981768925853343153850052261819105030663976298511210930073057734468944803478461450393197941049283791783164569991370336597088390722165146380248254714099435323735753386040579106141319003146278388723038162779618601607212191434872069802060486844343533563914733770551504253655048023824574343159074115271165711416733499141540587934754557252738293656988647861988586942915425791280868308961737839760965366337347031410333951434402519433851063962863078839240791619128296264947366296582407363430379777754197369831184207179204566951575904894397556848207127549928060055464239781580759663310020697308798005047242374768894429567078472714091040489202416536521087606711806072797736489115006319574625022789850468220952279465807345559938877298571899341665671743260767586736599967192415550826770507459399759509755971224297025647328442553503607076249330513706614074548296471206695978940296033651240875383262250652622476897553998210863794147812452430577828498034997497713343299645038276285942445928798986904284462367859199268024659740201804163993723216329123190409490625845358817577441942787855595402687465345885929528786291201048623461744485072792254425679662802835339464012447481568984192434757665003664884736397192218395042790191825685105535982118323968885138439025698650629962213074035347862891972390468568607865495099198588769296206790861272343084630708811817140756440048822889402143106455127409554185107044472451602995683422437522855455335908759633916029453837056372917681508215463682583415392100175900654625158633439930636335627038051660368419226216319466759766206932400576073677763645057488431891397730531802768340374845392801138691306746738582483088267106128912209138760592052394290939133828273193978833021837179539482360826376581201739148186782523400731023117012524090190685079299383116857190951429088689176138187225185886543283231431625283887961500327335833081319176066784544416645530547163514317719250101319273260647495086220133950927164952171219510322154477750133378354309519468140936160685828723835761913652606614529933115360532228992680835156037143153290967060500817749324762695905290902944460678600873822666990611680865980088249358972277672739024487305838213501810389309769737023204844112430369383703187462346713208853380948752764344104348456689102552916778218139889402757007249915870615488878504354592884886874482577209460874075270637578613124918907844216696942577559178700927378885688551473612503954090573708642297126350519619094424387671184463511549504774061410165303318829213594551698066928149544345370793630685422865606392619376760951938685756617101636461679797591731502291218564366171476174465847522283429450145915273708164610237056152316382391779015383714930259276825705611518843898232105106468791201673746281465205119749130890133001279891773731576101760306323020990092502568892873493410018545743772582734658585921959936462385337541426324992656134514482232784876889846382913205307253634181927071023446932354931192913115654334663764575751481206937716442327433991178791747843332861266840563101156889872425113620320416484860539201356159800269732545327141173939215126899187159777123672941238250888698396782667405792690601341072817727207794436080348905777649538253128145555291579969439024976710191291615960920280000588402710202264506214495859609793578914044140491539160049566313510923337882855098098748443184890538369223519741043971990881222304530001799665260359894295984752809397156800110911287469049178158028881294192247654433988757953211630413836450516216153152318467203854947155451156078123137711396425324468007663376278097061730633895888656513840828703091183544706656026676923475272945522825231257595414471828664813460515907300222853352087534331518583856280407098343085315089362010805913147718626949311341938937330957876701322399365116189641343805020876099376222305901670837749430489616082654268950040598372125864073654236029015823478872229244334872463033566310408666837107035337036065717158315969852710714696475337453670082979426824201437561456651052553934167738812913740639694137507735033453063722054859609853969491539375245410779863839237646996231881773955595107705598169839125284858680916425773645972675863348327495576778205241813309077947560624997674362291466316989823057510766513403933390292788451360607046921110110921337649243147656131036472604207761816029456219699259121199012280718676817934419720805308079758689854698193233969790007018873885583116238575361589715945279197120206271869596585160496076058316355262650616856346435305546163708820473709405024839466093062473724704663789638919843243319626501727704868624031384414552342176635616234737091333792747873378466964628269211306933137453992552714199188604591203119951771412368302788720513373509540290694747170023095250797161007262503267861461441777648394578753672091057113779755189299208719381470981145081932235023302804275375456727589666996067393272368215787204658552342987079209168549672857370137376309196096332113352921795044612910552483177905679323358843517185818855748408186117713227547665654422885519261213042991248167439569068527078750243532223311174821482265434468920247284991611110399138190847673826232129482922652686687434477083456090538736648725007526343386275335884349134739672953438661491511130159361360510783847872404514435383528723873302959090534314697330480533065720586468823987491518778778883251966586160663875350168572437409445133602798144401081165455243949469306599003726549871169459385591424927033137763429615265289292688632116880892895576992840702896211754987886436503883682381917626717941073149971133894653670882837277252627381824452377755525254212721455047257573332160257404168472987731193241352221521913667676244045304692464295681684151985225151779866216481223756645125277330567884138642192329489872183875815577776125602834371045561910791341560350027191096325323040627557371430939509887573677349381736320841546596589073363461184793689028250097208670295410962254476736988979439948841727303374352033503681492687629856168835463892583983632244812769760824960558139939079646144261886921050991779414998289423742942951511951889981415968287394575697238714502754911879879021351246681374427153255956952638402329154609551420032326841596034939774679289344663191184778845274116728813557813379488187662959550781800835257448026217660086307845050827345885938305647589381286373034571932282173695167559824489880923149745571319542709633222853545836779733731868975175839553413993881439349953935484738910142281988245458922008294653327624996335536494465643665632510421219942974443911901327209406010147752291104317459854329865594918672682088173622675022516739269897512509485080571014770055392991888090801203446976475250125958284061550331866109678568623268093501741229198738729572822502440688050551941786152611808566940931489737661986942089425209613156818465999711085247673114417743856156132915598586362996304886294954858243059105447507567470607721865702630610546827911564398055422695681689306205479274421690764063924106925201562652592986705528224369091431797945401569802263353367223607131074749765120841862746439157381635000269478941972094864574365137697807394641165464487109794013009713388929052512927276085957256715043649535591137018230205005378112601165518271307412639728320348348343042906651068129233651198774817036053632889822780056308424517847638311361089362432016398931303484719708058987272874152316022761312456530702278843779739133030162332377670197415147981775104437842107930197110833424763082399798388067956447987128320024375432441750742817810172017468792862223241464666612220443489900677213075341828315154461732477346132343113384406508524455990047347732068532620651274020378523807400811575048548670032459497026165026228753856521385485859373657098148758262850144936409457631611079488400488595997432045112424452160970160336814356096946421261306367861459442445233169628194417986837127211077077110488285402657842666961566741598964107027084980256196168416507634889365876331262570038554055396169256124889451185238494060690940583674650722199015836089017985320526623060222831842668118250123222658686436740392607266298665180774272155103102096994401697369558233055963327217371720577492416659992276475043362763676005713221803088285728489561517516541584662329478257439681758648089197643170900046967327150699114307686490463417214032917608871612575384722493221977411930966099691029808814065366661113573598557543480092528034604112186603242404666020308348393606425145315901901266695333080334045663860545036822143155208520676265708035626236098387577633129961006658372836803933462942138046583894218148271263454894018917613284193040568237025231496135857514127449232411589927289659800697060720168123693373957556681731111360815315851505352691271271275805865717862528039305170427199111675471319715786641943905939068880301208018829916647994699940657848778525749920382050229761307704273836611499749517170397152086366733298211104292023539025282938507371271221049530924111163620327069252478936875871855174227907389320680454201727292190853613517013045813073706831162148771324395086223725900044701127572556562927379555176210931784849632685533821789107319233632243588875403360589079908688534323913795441545998250512888794806080790988827572254740348590953963519947506170848615507894811293077108922901054084887140661564166332265096920337458070154067516326462760191168031679975693025667018832770719577951387364805456077605573105917433322953104593959470974650534732113157414106704814475592482631114104513803622577867395734485338556068904350772359790259073444991772038450432244354007874674945669645531088206200253806675450029577167288743954484282768029563469138141012025950715303155311213393303041600985801556738222676853608440533873256223314606483562440817954080239809373747860421907342606019573263812673918378501013073774810359451026097970444161916915837231566088385842715153208524218205185875940337539816410152687124420730362042907334395083102171130412793114182168885355736621158259905883930074280713944240161834108640998322149027284603884276568372879098794134078292051746086366779919271696625321515505961919730748414346834226334309844661705144817301937052096313177666708055242962175262924413814520876482726912342897584945903923809646818436128519349041567390854853637211915905285199890553032511050720376894555945774146958693563854481522695878904636323447959587142257652423262531723403256070414269296707472210439489209663693194747803979515358800954828772033891805430270536029854349437608557643343146919663299932375743871645856805198372624942714476902632670066387010617422414152491025371382234364044359278323249397449272046649070074612332007950056312816577168834661815920058367606466457792944427512594871674748052192089751158205067654129385497506177695834294633350471025299634274511590721150375129757421829588767404693319973573785665818984868042805456572244894179751441067505667956983543697930525689794037873237177425734463317039728261712316241074887746124066628632051227770896336415917008932971731614852382319868277171121579628153951061315458556408812392575263896063078596927935705736321191423086475168843210229387220586566421227017768695066937124447029184889020550164212264880360184773557636551792959332354767163862291103773510242689734292116643309992040991060134532321552519417924450814598196519021684129289987159483106639093754408875034996676554451131187715655095985020453272722222733555518416637530973373531659336822487111533168553450947304461595450805520881861286723705775854565071806867718441418258927681226798082991540938071508392498817526746654010952331139092805329937389112576512274442507103160009535975994781733982877710328422516603926790519504565608221216149170953858280225327346743952792102118607504262809407926264356195881497172074988266462144321442845495948832152732321866320300227430460362970025470475772051068609353616767480498703711689505633509949390486596751822135044063093242664109071405844435922193781101561094464257258790238170497476972263749752054015106140026019554663862939229333326666536442834425268440861640688154334391286758780683861463325513598528417900455717638759299762360849882819010995032345141482151418056406261181160162631595914965579994629548454541185783241410482538581637759566695648419191006488639155066240870710526808222937347130271869823090463482276280636193837796386195091945622221299215505046983544330326516810885662061707049286255665333843850692459102098520175742274698514753522684929928366604046527521146924945795052185785326698973125047975929391787236824921935508748212851458264110262552697132223555840582103349133694455847111150546446999260561484292567241997135666573793841103261504201381107004132533957763808583418978449122986733282181242508839434152648628248104390034091943667703258254849994892970412913200314699200209724678847042490606109623952265434979110069433053079966605721477093425264545964414313192263431600999730362051033297040395414646730014487416701446119686704765285528769469707475947304114851119609713672578882938263463191879925030649929709560593293754846795145281808357636011922753464099033342668924869302570852499888167435346408974961801652033080562496804158620555639550521270971577297651449637270933471673612482029745185087980433040337175723815079271570103357556598314574564523067679993719414705690544689585058740434622772467616194272532521182265546184537216413099826261426018265865140851923424316977789113358500277160539037287643511537144413393145951683369751814001757396482413601918294074465600813083519751942433685772687545733884169302944068585710999407330054835125570100730410080655467604915457021453356581463257632944712324529785837435031063960561459346909971780624175956810031451185469438101293805461589277433655508756541196923648674922731444185691259710713457274157637769264923649754811315754949771541060187357319817421438415986132834088516102696839447432777100991814648216977838928794423473620056682541679578044210265363189339372745170134315219446959310035925639384711851142233423207576579962893826772273135181629388804079750390462097074832938049479111866360489838129757322222179327409383210658952600328573023908923877480093468548253731001074181194614441452941029778881314317039923028397473464668171913928434519249817645607359176570400067366229468940478692648189871551788577514756341668806632827048524506764910980408881557622067516206191791245195051438663145033797759260283884193914855924646456541589526610354743244152218167900671886979115476549981536876156808739455510046578286884557186061702487566560615238391557998031474120965402324486773318019611090346572061294787822844661141958620903013962660280365552792550646076420548915726892697322317269056524140138008656049667804031687939840757423145249351857713093963415976295240700264030098561985610477437543863931330115297055001266697340858858888905888747378799253672181818939769546143739164382488804040377646902106436456460997570256007804610776209018824530374472935614554742936392691658889859193348221212353432853763710257069286067016836949803987112639319472495308420436559748161335556079708323282765981296738253630846135369805455373512090424500639072562705220705745523641526813242624916608144632167783263339892896323212588870559684588221876204418364168108661506963929578476092088812646330104408509538854798970564199876027030171148320433808253963980135592467305267354512597306933616215183451687479674867046474660256097811606633579715290578794981876521272575522938493563015500434527947038368620600120562046523043076099911016458359823516163254238349965789348122266720107381667314642514901254317590994759917069485988078723021321022853695763636439212197449327800371608493491676411506843892514742910251419644089562923402654065140030338162496250859751948965338285039895929262901149360880845939307441561942741300599664375697398280100812034821047034582374542248561928892995911723249624416667139838628849769864630347221453716910445218590571270471862796766616373950471191493782976023355336551146108173131550051780532471735126220141476155208159042111981525595408714284742261801745495901931168937970323045603198384745915717362239810911430305279100161477762121459163206750500204134756497139043159270609644962101882012837840577904520483855750296019042068020627548403705183952632586244402592688671283001555201484601807486634520521544969669874716628930646760675518997976212030151801169776022203907111888287227713305571622079066357152778225755142902994640037597096014722277511593330651488958085408872480942076116978660094817888972738167082297014713981005233893685378007958847565030511279042027555577790591785112514911072796145352975908623188366235775178075676653471494676826699606461798938777230719135500263113957805856377494380349826301036556958409085202341210812864162591357950406081050903791517331439184196599091264126457471504416764935050490512058016561646227470560861040438172658740998692520394803044507693031373583362999486916133581504913447493304983693493345397049737041097965591839508999294378538994088724499938775724997586010246113013462328853528926050159215877290377692311498185168069105397548613106612462843833283135536593780847694233290440283697276606530646641353920429459718964395410818781950773867187960712685115862580770449756199970077648567782905539937771586512362855882424332143781070321813761222530545489414801384183470530674632958259135002847050966916040053146743485453308760315391352544101898903650002945856257177893901876889695844450508067239978259035711044728092123085770091749615595871411529942183309249395642312882530126820077582025645428741818204191709166250591799915571465229593913687755127028140159657809624474412738670341804936386820687095167204004243766169408881752639320000490546140178628121226793504309231997157008648854614132881934966961883079703441251006384791005928572114213076009315468753517038359390656318171706771783053302074654138242106591140740313709658845731043603193703471256781998829586474171852896865958224100764310314574327045982900352358984151307235659204679773854184721203071570175583777980771084048585621441314935255109842643406607454633768716228971647990148379593598025082464486989908806594630892779700399780424094053289391256536997726578590356780936329048619144649175106307859652750200307418897645533979683691516117410951119895061757827384556053991446173768177518708103675879405702057005347003040943089138563842997061654448627400250327324937982693140359085286984347555536178391531801339875457541333354980721545687508832397613326148428048950197759693701610042935896865576244766751296453769577064012266604796860138929215929699886814276777094231323873986115943199245640288131388919323307098013324693781837266512928760306593567385439799421983095157226546980173847711565950824433354847185028544386617237784317931348734374427792953811147885724928260371397925910179925644118001688667338615369216541969658853731055836690499410912196410254756448761696080417473843759478107392143241629543602702806493669881508597815582737351901807994773677776700031170172858832931091621915103730909959025112887183216990480332963640888201558848162332301469356684461511922542104428128941525748658725544567635000451534300175429443251148800706725595301614893120504903347184739561540081013520857859734411099447149458478335467169041300733095734965220513649197556514504053446879674621000876880128560236986812000003243931534987271153422389045979063899274101879585048279066978940314459242723030573383087469985932733062408068078151920444336677773771866012686211072828034941923749618424400708011112181926772639797377673126354180689510258422486555510134499205149224580805809426750457908383961219752383558256339643473384640543736973865858731851890674619078030363820935658693952140702285998236197429937484841309770438445970704877381606126128676112139382836205268935332360853173347196202151848873384268691656437155676560847977316288886345168732261101298668910935347265012338680363584896527672183083322322381372764946836918785528739516855336976392506692778747720901205993050510267901148115200716875032236254638177949813584592503355716909238541958574002730691681645264854090356415125941263357576562727144246422585018496390673237238605892598487183601040420141193557834706129943851221192902739491156065816676009997460887327174404791206573847736472458421189780013897469737595888669963848899457583994508306937069187818804671473710704302075548031634961697070253383526546548416489885042366696032145561898665952663182170169593170392121653882577537266967838845310879450382351946478380948426076360695427474662944153320117034875925346523919562104904959467737261912254410999571690932391888032116812471053548209981385383930819907002232415068568634465248701282814385424391996120837631306382021418712806221758405465221272372033764289279529235945310894704145913603434629520928175803818462110020079310321076221480421486046187879947529951068043887109846797376384236153576399353268042134023795875800630578230865506610489220501707977116037282972219215529353179564007336093969310733758394450445557339211632065170513175612129656688973251879732550370931663505352034004712594603574039558195999868324109886008087257407510214810900914443991861747687833229135519431880950962489968770643546603491007395602773896048021902491054155107756545546730840412811605555847130717176677062890717972246025518198742585119540223557252794922324074507954563389237571925693749819087765199824581980316101421177014483857055265820651026248784584330303236016385412230078193717671155665497729990275441990807841032650731114400752080778739136382693074317660900385507454919234500316207666575410293435145614878229942823268842906772056030010902343106586371382317996899772299128568312592793780090651158968254476059879530243013307068624764029361080479663471126840817273665626599330311980089736417225817418809959217606274056842568565395263817585875991550378449764683125186101737674590199255383510792391796750855874778351614478659631085553511277653475470892864706200581801478754092750238983675810940833857459664014382041247326273060739801508767401791026728971245926172653508767073705057299667655532611893402174576918350911665743104240920750441012501763215169885480683759263674128535904692241751461127062536510498727244946529625623502760469694560874274260351349386023796403246352725897799348570019514416999977728028855924922708269822108016964149424083900320549173681936134466804598217838940342208017333600397826107264372359573252902142667915570161307493758152868056077012715517149112261162421929956056878409705116245781237265455531960691990614390953781679818684298721153743468929412879065934962205149058538073601512125768852193256630483956293992682775524130664601661269707197792894584081832323556587842271195096093966908259762341567820400723704194553854465896001954448981989532411813246772881340118943035872959692083993239712032112677472022102737578825579601916282675890693032679171696813606639808898779969132476926058652747762996002691258021417313798299579532879149828485371074041472953537748656595953618319115206042039666279770007306231289134690186708186791870935680641614635585075381615445249591563969149096499975867576542558989220275119005834923022959358947218188112850060671942651327250795707765773678798041264619112709490380159410551582681209461888917472750037592963064691491349268305800064468955786451310858549628814943282314881598152106532051167328950264176264789980384911389436613779895816471436615414584429212296632638508410324556340123689574578620159317914827237597734100779109937370098183841519462531635637180872027675833894399157953972592031879532422841031058335196747131524386028792593447359588232461346490196055286471810224757435636823839784433968115768883352637110197420790445719969819722920797498321380935093816967955945465080583981848367076529325169988926466100251879121737840796656966493126009887219257452999515655356061865793543627365407010798786756122924832901283585724583153430651230355783813331581699587095488304162267981629909467890041116898738108273724095213405773647941734672939220394720084511788096448128504143512480536460548656211289110357318049669374176932260550086641774690332155699659098758175177559465065167392648155380247555696375479059710338484516257648669472928210939290880360952707717995665808994478077207728797279822799686747203128177575643025533059949890170586369022091260581883589584452499339645201959248666355673674019833855909367374992259805957143625241897370356092935787683948409218993307203173852491364110350768925406037739701848407121997913021794999685559911111718007834413117481801912099498977692019500615616261472227036051027187545102335659716520616894991678776179898607572353565596002918314869299340103247224837566506946941033474746033988814933323392876863650931285818424857624886417633269998735953677191005634943161959442855321711324055287429815537941193511598479980560335895252199874936779421543231614704313659086888094109068949430495791655793442725925370561942185235621545318894431457966784328060438232226538905550094400179812248534045465882670321882305751158214369467953264793407823567945059163713240042051804242582935618513892240575559985108781944621230028137012246748592695364366444001602808779311549240826573369298678093376287135410759465017688664240471400703634021107891741854617305094142822420155105958763323072685357160414235602300742701794059087764506476577170906768394020527280114844426710782942205867754101901202643258380553297214986378016649249374294589478736625615390530796979961537439862019225749953356939034833051538801121622516411105095482272125650070995565955765423302650043312574686693934593138473263965017904828181352462290343338023392704487693802018339666789956449776734494662279554094773563251958919029907739442622210824479886537345938522063511800424645228098382003818293687349331047918169141390098668754147989518665084039714958169740718253257983063821507017072059137949900197834784757959334063257887975684793203881644690965657451125166276654185139329637274402671830392064994013777456554444001439290041867151203801379071204780070724708049420905013325538584177289581735237592907978701399374815303670053333248778249773338297835082549000497234192457038520888390784919008202416269726687462627020954384902747116152963188809926040911042970028998810792514052926718459806838902880619988414569287811922783194917190293236170305179826987322320954350318611248706869939387105821297456057437547225808994830381274573249276304795478873368820255930392971875270849291207446474116819255456396650463238305798810504830554741354417220595097858063398592958650009739291389669560370369992189872102240775453239481278709178791699511603333917114224052461418070085983044518690283779251952922095718810399913325781788193974231134102021587926157549205863271380254670378083711326705725185033087298783567587312329211901634345487969440276804833703213690509877985263435771511085426381379342994451241983107807813781903789013168882866835724443770437244329702265986241140914311448576136281673073487525265341248262698137370183937157403018286374156643094600996164300960888005618597796633417540737334577733590836674387396366732433666003570189795939275014092513397939485827075920612003468785200230670910096313872245524038477171856415614853683179532961996321406049502474279837019295227412093968742153011439282194603508820022972231112837408661171590853736554071074203181112922224539778705538026289398931891842605406236521389113668826444495748839019745112983021120496008604374088869532692363545971873133202927058398967879867331946618016575656584253589405120237095511262597792758263048026615792429782897462121229759401413538533774385662623610051813946812969371164810051818275764291780370642196999465418677549968440868254375635920156446956805843860929298735419714124724561018154722733585037475014167588750535007869646390490782033593755056997181201714830286182782112934049505647596495977099048103772677339642072543917721668420367926647339138414806650329145820250224009941464964422439545534258925049344075104960095072653390345053820697853927497185489177046342805222284826590739851759161775465859615753884198936483370405208006881210624875933447705511605952284031325152402879536216984512163193576836892643931193332177219174133596239488025320478349362672121116752100973015251556611653093331402703097240276143673100740651065531147022160602441702705985414816426778617552220087525949683366515854077847326764614080188103283456636941122643929033246389061347129481288756074904327145596099600263650957122977976241819090780998333368332267025317331669718192174655971534207035257039093910594871978215293227903289524125854033388701273294836008682892515648857485954544942163147348431151420017743255638092572590616537661096698654558552985380873071614084400463005262933336007155705225653810239426911099083875923757294792404334682143384104849622483136240743280813259012141825386770342701510018218480276284458505555715476250915884882160892866844712973099332657934024261372290062624418871212809112011321799231757987816387050764151118035282640698828443182199004497917280630185636255759458450742230433501662711135721793776285624562782336647899336382373628523160764679992285752546795265842708240637740983703153890298153541490326882712956338391278776899700732374458888082580799819140282984296416795356644017683951212295869984996422864442523070639947302231302496711685877387776756561584628286980751688740271808250622077892201664534616179418026659912433186668125827066162344292159728235126995075692632922929221532772876042123076310868163524456764206953735532291763410850946963994926396906279530174288914564445999778669207243966117455466212279516849741667234316182772361279431493953825128624431754133726963622511054829246584616553769417836958024073745267253602295860700042417837806967598846105164540570460214447109533236149449909711731658716285822819605964456121312372732575234117250629635043094118195019163381869731100485261564081532473600380165912799178387059495430114358688565650869894253371536264618185239977407810875334876742397458308517780232067942956847270371836480679536378814039003262789034191207860174696923689929471044932023847476015998092026608813748619256897036012504880440021202656964373545295631390415350915513210203187226820296518796428615937836022889718902049087131214956088093695090644414840973703020328536803623056268084632623285308062073537398044436034379539137418731396941644108071954200330075891090441065259971049640786849427608752745827500652557754744374787271475806679958984170828822453363158389842728046383948334137619861336317089280330367982904968612373716606770079352979692939961301226226820525310573726975594934655462490859392066410114425759948581125753936302349576936827826358143072236707486294565556296521773868831382212042446526710008196530457475409219785636688297863033245794754875206719107954709323772517247792743522783719249325830002641120397516670881694488301890519635427576837704039210235218910867201502508318833786954308984592884142857013374572320193195579630526783324171184009222896400144012192420859906263315377656289615341150176186942302510439926981062442503228658411136988732438831879874746714437207020190126746010816223274969724214235836333223409467960381665690425415733736547743927424253447278178099062567452410823836836301442919501112655473415849522841100049375912003557649742425521285031231796125652233812659945777292670584583049587445979999252915943487427936294116645382506039708803119531604498618369696599056449248068192839412279467373636132028867911599968108030692565506829528542399896221353554633714001945053091662685185798246809960012132430766043446786114310735680644273632168675863707478798187811452194140919602983551756584424049869498670574974887475238143865331915937300684837284238628614490818600903387881570679777518468207954745333209437285347509382592324944378802139026098736554302443570590555254322151181077907396496981389031852154891749610536334416900387745592764304818632365141714457733430453065696491749777613983962194669457085004115075570507039386593048810481608063292315605875501363315584998104630506833456624634685188463247612898070453677449837707058457844783244047272775929640059015371549293670994796135532614860271569574201610833186954369424253118041940131959873719963167752513886170381470599469731997974922028457172838669704395308941949859011421213701024968270057853847080906506515408424268439428624519515335696173874184957460571544114399990929686180052603713126222389508365225225018552979748717000507697142658873188925431236632517839936497034968535878464825219668991018905874267782530077243100652947579561915998375207026202048742798438004022321649074704817895517782293196819775792676557790373374413893501436931161396918209476095579693723353622808831915087584642293155979261186542386834732382057016943473796205444627490653579121914566414691052797490312938829774036796676318746060965440275372595325870903193613641842706102514417126688493475851765900696183611510080818546735548490070387904311599592869166703702470536563317457237891537812524265422868431840746713135671870728389316846218533898069681694447438779640170825268510146594077028037749192803031004888729427786206803590246297870290286830428208350543312359848229621299380564649884405393832700834910790408173656078612667311668523649426860821994040541806684382388092669128117946259274854893174544276550741285331850790612740581086929337413653054278000836822904434231417412163085920534748421936568825366812796874577326409753666970379049662020055345596261214651971290419837468964095516684924826974496470809562577627364655618868859407474647215511676403287240658075722715082798133577046546574737779945921365181257891382824527839463495318244713361429745321481510987158430264636083704515102053957824579321276050125252224740073621223614518946312461056376300201037894573767571112122390176871564698575061289471628261389510178622940961296950471704721716632905117147973590957888543580784391515156213336390830854421735152100811682052079682549935684415941255745652632597536362065089080633712450659593416602421992646961562058557846849845966808391702828452898970653173113495977709039211117327582000675526726015213636438763363547306823599450842490957860507973726304107515151056582670946460920514140702677264264428398226298374578596809386903606316153710519959042698498602090386426618898851616243460818163350429040742436874720658150803089185463339612363237476305777999093174268079981847014727467061004161223627468954092455040232778385229368292586173827199999334835111485486815167667821634211741366281405897729136325806394250869942275232608311158424165679832834950161497608129180639328900851994298201939273254015041598586639190513475489625211987823308381267514459229908717864084914436265191537639677646253023554696982152185669654573026156305133352283405046273162564252669621214930319330389963597493882185873250659308573826537072746724303446355491412210122181162931509813602888000875302758719453411186364667688198094387093744147011489325546358225532415780083074206370040338773468890539549362664290380141014413776538671466893015818801164394763524180237574517755618897474517912037143826539549380843155517493466776919166805527389387371882783492884570908351639300966981524901384039774235695349267324722627446607486406410278664207253557653170975341297366606345580218067658203147464510835216754932580652059046885368121465219801273513460294905656528329425342927065907283223691346167484824284547694767526147568816957842978411737777691989610863664821296043213953372353671946913754997332026382259440946209383338209528203541192212838985749500150987154118238787478615986634484419547834163198542011811720433664574681266905346439495594913685204622720723401170751990226887166347454133501173549537823617967828180552313546615448626359951413181194358017865333140000849223578246230152290821401611853317532378785395218789575704975943160518727770131444543499533446154149739171260173883005837067692215163240649392089010690325780271637509882960885561329146164802055448276166742950606662764218593620878710480671779442572378261519513383497733767594467265911553709638528262362990452276580094090655919550251970892140621885104696542981092478674798630705890176924837807289512494999561557824807873450663967467417396519504501704686304190901936263822401153751294254051453720241287975183522353171145832588827006840498844978061194595316039660750641707455025391241042274769178961797066907139819932473834351614006380683314033036373608747453413372034118217232336638893158205037110787886129285886701716979236182676563514771328945185191096206263644547859573214409755975099255547772602840200903688495668464629678703049617661744527748824766593036044544072412990219008645573343399088388901333603565352519979151022883669586386567941752468395743734444440908063543776456648979609206261614986753231680020997509960947958084236147896266476095491895382685707367863717912643226226473505376079460980834343481573389000153589715029186382495448884476926063015689553087581709060349882872692045257464960464354134463799651288660081509192459177941435732083338649644189719350627957143525254292452651165703225034135878830343653660596310491436439690499211795622527843545381070026410894536466840605375830134177176670821372826672831107903197272766499125684659862674125305838281465015786087144488187155787351053418496056618202390058403279378267449953102963302518946763015551641706691703797855615532147154938601610390778925209959004451395618059049061808301356570454218251645565454449848063262771021085223317345567935878835828457043959551400017332323367064530199740496202925509077455863603103212071964281487128875409247153104122520694372962065272882884644919826814946344144931483921094362688559071811387992799284926548363594862870007713871687304596105487741583829029340639036505152871345194185688468690146775623697331242364451148596268972371845508377691362049064563784913063993481616447105572573284841613899868554621807843884816863224452775290184148305316354444375062065896577202076463963051068316720574773284194133271339502517725161217712034531991842218913365397261818260495579188659337974067872275305640114695352288636924332299100482669844397613536125418189283901263173985782032244112300256674163470366005913559328988983474154298603555148385404907287997943738628713223179475570722813015827788493001314741312330187220483477571517275714888286027802508649658324299062246142890167199681224347790793876046667322051806920671227591247228988835288979639832176812554246916150907662293954920763564130804965465797777705311956405643580837849381975478360021427756877435453773140931042504377424076694286631619457470001219252542424199780295147470637270664132956270636433503054102778890158459176639845178332597762661196094203487049733740201500033965613875044353920011023294990574517517491022638062735944910901326763953329958612032425808929008316698404919679678841058657426983348410298276188465338317910997948979998349489813450819341193550196838044760513015427686259684849991058251102180858350815514671458108606827759846759425221221832708803889976820033948834675871148472117385393471655180957559799576487405426945564133650491940215217127838342995596930490853247573015699199423696637507364258030354075923135196414697202779984399371802213230575232313915849501956407386949465352724432391651992619957238877328034087354617245101443127850445893854593848939133754102083471615511092019941528279388159430235752565514508122935267544353753199218944717425354106809856093948595319548872488056201905515357546573320526010686399548925047133246852836737749424057105011285657355105936011461796263169424493485992754849115974574263140594114351214617729267894108044010662558291692648893530099006761666092805974212509615011699883651877715178404529297975382063443956575879826126623908354095796686534270327984550864286936044525953119849282909993875565728708697451459176377254746906490415962013687772856050935147212904398542591245301582423479238804062046175173555895861548738025587369567602900885577168959414376515500729248853267571841248462886393491670847177414530194047134082146969332805459547623232689446635147869021219907072596302877770197191211273467229685208364878090121818515337308347956293680805712108825051930985333920394269913396398500758421028087796801028546802614657995485296682238120919202181840285881480241208567947401422080386716733363830255991888592782794067663329907951668851885234230082911184837588113549217734486186434480558862187055188875994714492992443020741227980451332516188746008409568642923710128527736072734765614782967462211042298682024624798969286551542429925532866251671127355332195657360567003154739713908263513037992291176969791555734811363753231022358873770241946885834754929047441039007774092762731657678178618978044995650230416349291887998236788460595041545392875580317656591497561182822131209722715504861553148956670917207966741659719596692958150583005787726651428035309773178987197422963648365136327208334935723348172526142817057176313625546149291287762640381262581322615364227458823403877253167544054732878749507675813018873980616465298200688259783950296403473465729865261585630903911452647896481385839475462209139561945411689366811559486978842142115758657755383921595853035357450635739969402244941498398420228191450764165546357705489371175342272563120195070707565857805482067723465438421846203672045043758477412387662673028663424439318925809847597696179830383301591352373159465810028755989247689332478557592996211521216304341424421250313602997200394123722274085210857492208458492397443600971071186369901855799080214073493239171268580384626586168546063037942025082638153105200087745298613863111300342554231937204278717848361152060226494679674526416415921748654943761127792954091737073020142750703791499919767260676744652806826182951876197430161017156096454940026180888156343627977158936730372604712148831750178413830755844482381004710692260314811320951890651765784835837553201965182328214006131095277778517918029108391729174019690466249553501193397685010503802719864312897380781481969327352519284402807519195538434155690500153481422154456166903985135115778253467641175655025698988711318609131886234166166184235361449579653230438528095789525463892444412297993005333278826761958326862612871115500129236003295489589129217745036012906074913582297040572109294580445522200597501474293837247709740774699994152614136648384480489205229700942300655174837011137604246644637794058923006425760588754017828214043562216101903890082087896954113647198409266516010789967637599573304863049870916080136475851187306443658640054016179016644351457466424207698093918204277273753717828090649573921379432677113465260109696684978107814447729651618326836268514549046036617405416946660798712356238341030606855438000745869741918770969845862884009597497128147982270783345646889205670875956467275831746531709917500962028424337860722075265818491382836706609119167867963104462926414566214420821526157527428139824035442507090635212773531068288087470390781639569120018844329209176701524995754155747056813111900188062615014369822548319531659065627093567731048571642540453503634300449518501499914286757723432010548082138085401055937981687431439265390078605147625532070926244291750513966593988377949162884585155854472318474838716298581015350060003565278952254694131264978976353074101081502102825668101278513843340319417619068041139841844502195669633995470949324201811681116841967991473341918666398879169936718857231154388205031881912799033824260752224327162873013524039322708684470485743098060874794163585851798459402481651371628330567608519378175113680131969347174004927645891425891515957053185486934060918672301924483386614514809176358633510857424517921403038960001447959559116132513653781086014736854705066366592352952449936084397459805586180894073955278586621484728066879514628587925622266944444830750014748164374797705017806560564348065049842920763190406058576152661141661067197135713875222261294053210320472987941846880821444039150587058163094913626122177196081077395130015305784333949697873189488577806176131118200409579478721660411868504359993589232382489084800781066092866897309257329529753619212683006781167940500199999793787912985788980255388434717384289659911606144364413070031099455830215707769870959108869533846335414588271144353304293761950039147808642151960557337548701997213539102394393563220742813305995735555140474635815927689728186532085209726846545905224440197203920604447725401080456876809317336063388764548751977353869770266004974023714438596313583197430616174258245334317996593561114059324990149865977319422579350644388158580000806547646192864408910662166396506768747421234319194026786817805458498090579975009849663865397468097114176416436149826502256709238022783887139073323925226561983901496272976487240385706809138931411451948079322877300142084913280921544492866765195577952744656521346632932619433032159628311068494177778234496280861570675059250754794410578570881347019229852516714595590641004499529834969206782304420247515109661312047782053435510422279160985149027945779719638259591198278117482338114212207344804932084991207659959754918919445354059513548833000178797407302360762915203026424414679184893510585250860075922968201499403964382261372608121489630921849678146098975144018811748949915477918568548741999964342300863862461042978366740185585140803438968184862745637741958065405031787920573379084092387533873094397466929282399815195669145805535561836920306525719302037297953360456018775091963324956209691659552138891269430198090004384186018083120085484178032867254066369518447000052005523364075121448459329405773666711521139275471970299442875695117896846556527089383080927559121315356116250530780371810886652777640846097990453854582425985360444199485089640105033901549417317948848478085794764544949268222618927269744153437080388119256408684940266172002504670699879162514035263287038469107435318634348547276247336828658134779792387944689333553716799588966042848943147981154506419571279873636134092827384984516104640103885919028543778378067582165894960115109648755540081076255896862198736522380960113921547942089325490098171486965001824274713138652336394773044425745869943488172229248024648848087737996696385668578964252654380091429910644580016944607735516566653898199890255287334249817115386949898819766072992614264980969365017145392466074942625958852962056057240242072701713793198955506856870051836308131325947660350607674462941441130940338643926640414483154856179734665312276010714098466574982886150887499288368788738523677248843738936789343714581252798693388715947911308762047489542758786788591340142162729493016709118236576371417065070381201717326537508538973195723167818372673339881644690780708928940454599758946432958749685431301020185796030489669620288846305932284074912430299574810153638270307163125127325357565144172680172899945536980519159557742777782151966450200702950088984895521779794477443080116310295087379593705878647844155394854560029826636400249120911286386925532522795435285724034372154453424614932439913103227833926043945945338860341880653590992886573320673324826737960062257107586414098029744532714930911471811048750771730800938698350147323546850581575702181169978444460565193534286689582030018696417513410152262076318965451475278653132155734792886682965345816705900772493836873200135888582616716376845392438901769622240397899842035302357761171338081167289525472021103043504958118264310469624521405842672800685769565297097393405834375072645654934969737633049599854186854546995567121448613719223931019547156954989098355107547720015411404975115545683858321615113464439063121347391042844366487260583807093096871799456756239716442048248001711075665351609305462424645044162739594505567646759243314310286737514055767001829079287806978292038505704088120946050317794129709903610774399491084530770227311008096787048496956279375504248704401672428977233236657187500479282672511071047952075271778750869818582847394077173775572351842775596871413073654102803203596743391912937318064877705229683118754725069061660925621579003809144524582113613272924818972028375427054006657932136575460425505178470048787711623645773125568921135152511025665836034491448585382926004625897649246760788879726497821419539773762087867069179248489096532502174715576372876618118685260610039213140590249147629912307668831702298279693840298467097522590846991518548100840227587035397262253123969024826029858808165311665398451426913625208967651379010005129465291160428661155020947075989761149025218890662256216399843412839165060428217548934321184653855820146560647557329534025387810786673282976572416317829772190963248091432891064142110462509660748821534908662377080779852546299306910218833965736034631006773745347943432143493025874725699525306839784844081571927180282471227072641457085723702087774174526119576678087746100808934856221482201600837318389959779233342433974453974211334266563397358662423805718600770030213739362281876940503884910951013217650957117090426777888549717198395959548969024177623375004130505445855233723484027325099362790291974638820747056628345289356695756162738872567893184072668839220973469151444876494547141333057892649711478208106165515546960015046389085419243761383747741846177685137996431203808461703664458666764160162869554276539205841291900846992347807049577888159475422922752599452105292729862309132778351548105536324084845972067049358585430864336161218801016680369192135668651905425487852354196802644508426334499769749653462687398685216884514933894750113027550242639708591771122536172157203374764297636238254881598488188077020549513663851992163304127143878764026934539580151846197975140935805764688370103431535487491462178200381217921505686232734272530364555529077170714755854786202870446381791607751196886781353152397675252513436548825902179436197808315256012021359742276611625447555102464773498674579967181174767517980143022896221443372889754282887546023075547001863546214463266500251010109643304439335625033277240526703124996457332011682466215291635630287705921084948291669157010635110857114627009545669468155092231268267525522913459465186084721961683829319009800840236268418274620016911932482932974354563339999659092593695399098749202557741213492765977540596841460666892576349461027063252092414643356716212869880096464610563308927828157036259597750825205597852701584432878761650331038408915076828131227620363881947723490307118940036694891803086719094786569166027661638954991637268720927698498170934395676338005981809154950797178885045379799996250645295720982637627751383556858617118367707566452765094709107479313062464570810433014893339487209383475104986407250736889678467220388590436583258111035971089442783380888204722489401935928630502031604652580164702988961430864357912649057608285964223678132386183520739944872619337203828998111738491428330770598467964064333477916709890049533248806785866222441026493526679495084173000403704729911877080372810954452809198921777873987022450466896564156609688554946758220575687143974334187313095951671787796057942520821770417448561019025899898925576522376584333206736300495696731755392573786599426711656936990234835950930596348127063726506080304840056362311219742407454696918614867369743446574124528063399293272381927468062818918288257526291277742915729089441971332116146935519867827135911425390567751105198306064805421515386727499246318335172689857199600024334646473131794567105478199960524625230282571314672311433816607314987579002128916360122607298310838974176692026935800878815224682260944903120167568686784529134531431437781156984295679325991368356060270358297122652257674918724551337425080071738846828940884618118614648808122569309673682861896851509959503585015239968273093684017893907752665851026655551461283452813145360254400324250745702915984283046946824463345892806723923537283795964305976763651911055724489588578044260152405513917601248088885048371373328016039591234949791088965010983788356929323351828872881706610401655672051944064615221804080594543852057421642103289576709145297036120416238261037519228873685585660951656454178552528073184005123675176870474918511168573675405230606539055128915147880215122387291125972811768007257495699048613028228803919896752247288431575005457574823304448795800889568566344588505490094589144059763452481706140481789420111970776885660232556983154444618264554042219587295864598288493979591916417878613046960280147185227088833718206418998471924030100553788385284858218679078326045206529587381553000928149242644570496863878775547487184859278095234388679393144725120532627664929909517820827278373819248701794883158702614442489007183758833110171261735978488842134803022107842183580068320922086221630327170308916045546784073336788254466061965931901533332694202607324300428650259861787128661671771293326767343847109507366202909126418206673550123715663771256225277247706444840187350137655217240188717890738601736476321307485574568694318428720332418850621913633228801686283066575125319775544234976925249889578009883414618475589409348770713297786851547990827406435917623619739676310893211345522481664735612421010834121520396863342184321364370448165937473751876656977845039505006263040811883444916734446171506168895123418548562108243539643799957461205425301859057701283944130082609906817451181117166270639344320037633509421791780757576934881005542226720354952704190371739649256691949207281112929146510500054410908344998819589562524436124736461536162227347328636070318619833878619132428920616707581908356172250735893905571320118802353651005931191675168350916277535515828904595348794857679809307259967435978740097650291895617827959786144905053122995899907108065299488622379703834224491925545955613750487302808447852708193277594817371243939661905712835441982725396575564402685930645188953362086994442567432085578524598920012890556738902223735086782386560310422561701415493848396515375500308020424118368497546762583587916944590648892523003256659759222942501304806348125467495015120774809692039635761820795296307895971300175354940138471588651700740712519320104071114208322598448588926592124471013675973581006324957798872258903117692828666261003987557310720071429135603455254833353533754178457344833819631961377295549813594799350405766632455184719151589907036316585591318837266868625893262340976458215762762417740682959271965975461031382185709881220272013304522344947735400418590417893787270198036507518483663998365432041126916566176927651623975079088132062063367374923260111739056369379136177146378913525825179324344931436318016873858157232344883512566668682786677016004890094033950985056659481662144359875398433681787029773819112268874742438139220233481358463825323175253729445120421299593366636929551051226845962692192755830065005797893123990937444861761812878741680600780989121509162195036031628672453506404555775727667772018081298952413636594865669770197529999014408411513626767964714205130669739452502833867995674417019392970858609246792642134484859257154277331593668265375843722625009837817290592085427191969613299957305400991786835862869321159819491759221530932779575743520831482993713987031496263723561630171523259975648681093734411506541311400462296290737889868396443315757566151672549959368889099335780077434997135025246302395723101306636442938618321805201818293740039540573093739111573961352198903983965347668842874281445955600372439834614392215025817826862335660233052814376124491450771798444296771461726579727851484625210940502492289954934735569320964632762232799185459727828793926564383329359682501892514744801564930931160631259038181514730759293908319942738966537316490926535142605261651321068279715545633299989966805256446856094240577450849115114036228748238599690201992406803886516095040715696103280943367935279019171498854251986490361567783988786534850082900045749369361484930940412887156569979284034358626825599628064056189829383115839162578046582450532029332794090906189814559658125566127355393016702170158408441774534238935092789347341414201753499237455087286292033957832446730788485989343539717905722692962677318903993321440149722179713569684027427331275216660569805523019502918110140310619654867188948763995559215214499203150563211657152276774019787359059502002886076529488796355094275982368645013408946332673055558165817872851412346696028604961145797487056507631570153246811570113771969227207117826886919375315455268024092022989335489155938076136358732703681101450414374025156635468023385139839084529048233862522258004236415896999663067601391452858086800540006987460200823878769057045706978524554455470627339768893321730784602545004343641948140339719430503084775747481695609505027443239669418624670168577094239040726689426908938023941184793772408652247629069972965956315568934206707887887889824701861119705608414406165689593144993078525711417748096287358105882211774201033475216582015192704334898973659041298454602378515780492462746497922742622532972239245194473912660079864578385202991969636707296173644263632844926153107263315463064463162853440927413105506304911356801370890734508933576054318715481707219655194642548089253258969834815311068417603703932995200670906158355876548191944994746085820837210135528074965324164710739667733498142816745193728971866734403912758244629808379040963049480977602893542042120312582408489363347438771339520752303778994554872777818767149643544418981323618802285177109279675534066928556462874149017721782023120273640786036135659732595840642609290363836193039494324167875100771451985264863020333994772252995639458391462207255564638686648451590984427933140612160784334788346948161478799430820187338843501146283280411524122044152632948632705188887383094750168629843894051650199668785429361736850539936584866801222041185329095317858722910457275257440462987901964553313795313700129931513364936067343655713541178976661220157607652133198597375121910312685814262556327561505398798935536843157525514533893287765798304154557885883617657698310496985622614484740497170810729157070261628889595967608128734148137813038328319887908273287022992061214758961688846706587160360333883182075827877961715508016707588069999407148168800218104375554146833840707781226418473574955378738893244047134429250103300915896312070790529141612636788384778127606877744994182264011514180392191522457241175598068092540613958559106072043557953228181660404590328244755179727019608759716307790083654052930376242923579875621415655908534140698660711297940349507802828515741822351880474410898906509838114741767652285454203149401862711246831986832578986971282292556437411101129037348637033417842187293548406017295683443498443078306722130349707776652961511839565041060189356468034184645365418226068379664128551279534436011674016233680617670802345070641493101337084280396328255675878445802488402908213975734585965636581147124484232750204713729855958160073798451705908915519198690838326747178193451919698814721136571026952126979902080883898921198221681496952744465102989376406905539528658744800203605913549702601189426206071850334704608384822624496172622476420813225840230890984735530745553389200240772447234934051638261643870667830588736078026154419589519310240188006287539930818764057237701696348582508268896197869999466811110732334830346577347200518752212156091482540078576955024212189689487132250994717117564611659548258546240113937460372219180124392206419255294585736678410332707279398484751682337258517475343231672535956609877934847456915814335805654938467284515753353387549001916583341908811901542342430510133309767614640457147813132192126275455124105805111318175440538510338697826988487501896283760548311995570997663302760342734143113235716100131521186058231665445015793781553296707234832435056864316879226872646893952037039566706404496216484227704258105508930616841719691644584611478309206888104921752702020150249181537295110689602344251673545799723266560932403407117988449626445539252178289273623197066403497553823607661393411519943333968484121706047345137097698621133115321454091401149680181300766338278180760896034573620175177859657839217787689465852845562925226487730853472827426270493768552069479164107236252486659338131531021043364173646942442297552413830175075256833568718545953835647355197112618249217514483911978968214717464728995897658923727679761371883365203031146180235028561122517566542228476143380908428748813307946319326324310617506174671036563680199706208376332997160070910549095116196286733513867471609064752796150190878328285802654357477247999437408044061362061365331452456282065317542634249761994305195456085626582610972436102157076068378648226544637938127894937411985816487699019799440808522254133220549307009227014946738210906882798800203938429287742071836339963537431238853196440747514582486604144748999201037348769810118055727388188767725638964790990286827324653087190744416382838016033213527814854757190363083028596287840104933175821748605567953475656282798007119242917308332908304900378858092755651699973831909300451979351964389020476140837323773819382502668378066674216617571514783566629086387443647703220708174968197294635379119228505599960935357363209282147742925980073998047449154263536552798446616474956656175348061233422277928161477107925123639572432268086497753030679539968699134476572081235006339561539449084539673147410172150690708268630364580947584570895927117318047506710166057851799838769619365433252541081699079602050034151381254579026533450483433918185713691342433796560652473373155385785977365673006822931612416670116693236817390629442003231111295159159750270983441473261476186491323007112595043671837330957882030695961827063545528388469095986689048034835912418037201136027030380516077569572428297804838223673728472891406316785756442517355353590121145943100838327869320475860058699566891194212095149329822872284755772537349143408044066111410746522452996791042363689747999606516657694452097672071080422555219212227124433259171928314581726185246581848013438326358194384286725441294826042238782527302576537756162127733218511851956535689536446762008584386071289826222807335451277902516688632546938531716010054265097638748292501187271349320417489253280174305994219429752169056579619249142300017557968404073893446697451959415676461987762290256378674831986488297079238247145122928466292691726010310791017561060421328643426341956256732371147508260516628376062239401295135556630426625062661376386492375627671580406545959857760181278168459613782863236319087833799918032183643113037170772152400446049384104321305337363415989810452817226573991293230179158115137206154053017277880880953497037899448702956758797496075199508540548426464023468061451450495342150609788592374471213424033863838649515707455364198178821768905473102269717812745479165534744731051604796486430864790081810580199066753400103812816779653310464228085794486910444903699382393803132096053996548681829306073277984706067120401423034710231133857040214324001082921585001659342049746378461612331620637986349756488010894082419136614796635531335840752640740565239721804001280177489495464789770995362532192531512321376254090002703246501706158814614030726569250009463828435825047022029417381348137207063810181720396407384515955055734554968933973637945264440620237964674280461035410299989774218279858587042289944928397271527506865192586858727627263859910559199915803559909696889986388233494955488378160531346775217518515893698534867740884686748311032628927347991276648817630823203019767296973081246506898455108069922512483950363873896074240834571913178556386558964367467505573220463469982029741799891388120777539910358241517918026240439653646831596959297903944309151032120382408848700122340846037450172612706479022620386948566659650739292181427398832786323520094745455939435475400895488342075988838954019168253635624764738017556006807148194911709316626311139577993347263348193717911016277237303433505062807560691318116357128544215599444417906785490489388030322357387010596955334096585601139921468452525917025129179510874515189675487502650860078718555289048661295510363736191024382565835261964589881194206098038712116884237237183330108380812930425247142874319746742130661574527351471178172933778409158267910561436533033165122111549644833368867831100304711296263957930424123267255844289937750795968816616709466327901856713690489558519346759262335107610216897578549885133511041202965926114626202001352302774367256181025206191634672547301901503676942576967145255853034484515832496988693146503569957781909146105463098366315459621014164794728761887098363116956662748963789393130757414459600580279014986753015612232998068990488583020394067657012850320390235236967176098836956761056765359355298873917096647084448527069214107190429502120578071291356954332261127677866691430481017469197490688043039760783622313541813905378364054155415466395468221657677172062859228463711958805219039510403691072253717072484879236744799040344704905162790530922722905949098381600959733884166709327285135385723216186938054769614475441226930410914595680605263501154371181355204087338778396339479957563366956499783043700138678319514059226495418536015310846784048277320852519601787777062021058139556613006044432437388479922570182903572761294553241399764965713410524198178724765511402087059097263383399457361527620625972485154804332308200964712139725794906014322554382516299650596053032978164794516327907427625754059352398609938222115937028925130184555586598958023710107424019241299085476197090057458958781173496181377487163577268373165414858038723693966614892636286000422029050464690690737477561490871478159171746059381218745847423476319581815769402604124818130655696153476607016013687175038402937190001961697733739152908884934264277705735152703680846230163966667075759777937948409175534285947895421021011746097198811693744418505751412512012894031524175807368297748779085672295140552945196724649612725823897757001972550982147117963674723906929468363014482807019030626355414770039093538787681039540407111132929461218963194433315424361263468762846152478279806220701915733252339467004901730998946087960922782208273133181187088368941663137952254936728187416906978177866191494961662688957482685760181544305025563849390343675032640200719848416578189952159469582334388593724767251189644165811401602412058850782305616470956736413325288399992499118120133163715149976586156669083119007349050307401580388554418084894212535818763625484944294659907694058309139934145991317765532348191461683637795878318070357821737521462592372542431376671656862284432473642102142756662619520934798502644794764943421894771334948852344860775798896239042583951314787818027606967367700780020606194556171456786594999114662930143281707323802689719386041075059185943386200653443106830673925801952485767495836450744095164636229449894097868637723599034293493242497186391237586395851252723195624108772601534334757215383472296624298724286041061575618270149892180926759278220451393528758381978424449904454103131147219023358233769135544434654163733411686508106835883654354515534273422875024831280656059470341494342154486548840907600764986594632763336699454513681079567440977526308973836890641949732248881531208536512773060946315312966192978209541694773696790040225313493587226114685558935896392968741785213872260295841462228039535378839039558279445373802222501905835674133657107570320698978431245690504019602637434025491159377940334723231690247812841928127606711091502365503299081694284917045843978011485962254302166067400352479413301786734328348400374123313731933679011630466110499490214373930813302933979853853995755158525379405745851007168010690095490069682365599151537624493767237101951041400791816526845847413476644498753915113640899267279036248632343233451276864227753541598227276305072744985316446731696783162189950134280858601109628253397514841127937820264464705199704681654563509914680889560926391461321909593412815744741202668047849996249235690697443791440221164536782405919194200648373205529774559820719039537686980900511563449856478567604233470730738742310898433382725640827437195774470423528451278875368302708168617220577051153095308650637654225915961043964562710602383184539575828872046224497317557915920166508367887797094550876636096606544863232510247955521345845348225790027214053056111859024135575992942731459294585743616349869710023615159054931721758795354158983435631898195387674699998844636241427089024456276174355234903019868753213776197739901739557845246173300670457086761982008269692442450255180715294212488729334432888417415834465657340450303678905310013382021900578447820989712071133867253967044163454056876434847109204156277651406866618541050560722766500249405913740924863197893448269433436360998663868357743184628717192223173560699078429857747184991798371049283500686174082909219867299136402475999851715579907249243041768999914638743585975979878414087116650106509346416523241924632262584407318312681640393731266115729747874636318932382687581278837479777174563918382022024647787742380390128270501624805299799551416491210957231650006076433673986380747233306191231005312493310243954118782328050071120932193935610032559194343595377417530973060640310579579579769924874848476068250147092450088268028992940430121913801210219750811603517672260453521746540636116774086191172942586851989886903989315796444379787475995534443148761519020748439451349166341842975924752512231046421484007404983263347886273234042713002237143171778938308373537214602709994889978139159335701821153421964301091968265372692856844236108711379503468130010236315252802405712821766989920227795348680960114925461125593280879604169330164282214620722080854160023553916462948927005862639687993315636089060068593788474291491679386302550391742257659692131915685008150469209465707540428914699918022651731016963048704798900465330024902793020224770535533965159369163096109693344390948361372558061037083460679627167922796424001758527185909198785903151399697930206207209470284103980921871777087327555266724681304142272860575855311097743250273723286497635869621854767258320479947274673185270523884276987400554801987389278156064978568459284917711292017814146353893429009207009802752647810215703576444546245116857950066583397543324760789855487239862618641902427124200492925454699121585367540101927298986718696916465196937574530688708256125284487497167591133522572781831135684358730852510878437379026758048899560565008787294491986484575146404489187353695793188659431496786250903880748449193977026303059192300239835102416413540197834195556327939848852006021921893321881531140894245863597693794494212290960041113664145394895556827612209582740893017208398418706483720017403345421166350507364873693951030338096750013199762137635284941443274962704351532447453710276872700460955315003409132181807393150424466520853380975856839471160176482292908008605959305932582852913326890953018672479175167083409953016992630296663430609476227811950128397353865112195270082942978056856776525834583422717480967531166748167379492282182634827884133103223739835933957829203986675345302962178110545024951607890024322755940101500554399872962224269910552126785195275805715004741178185007920151632962298656308534654782053942142664620127709078713192613816571647071631132844359531837692973050512882331514123852055904833376982149636285669711492707437746214833804891480373368424291014956505811588964774600303428647781955614590169374625858292969966217513385769204494045912456194073925015570741814100852759084009378255166037710510052244924832557204018457492127222479588484061280589530608931566178776731093126177221826326210492170571086527654418359346394630033393008549092544352007607022157478337409151813336600063736576100594072838458510048299256702556201620167880555460752929894453636641340297152075309835582687273562350540397222642489323755913435545843143834504491540945981364770490632404584489822856564814573531003814132663693679185224939464752495604586594727934527161058772773494995682136249926619054485036817149816563439805167762852111583562180834964644868819389138232219014707302493020347536420927502776131475695391189544408630013217147760960472544517323809700626201345318468669555501818710070672084752739113005890580214075295906780820789708812786088748791196588140964695198968334740754032281087598906970549072919183734570649116219933695990120670064605072086780400587656952425044597461362213029323367329145789491867165538470701005821736469905399283035174870724972544836987676411045824989817895364634826353677615288424066458916997343914637178949251836994844971210851292289519651817679588728595864981672272454099823385302427192274910993821248884234171933871100133256686521234527828331321086749273506664147116919913918698105978363889103282260929238644504611654567743299415930277194747444279659663577158427806221173284515749095897633513093273909173461099246552865147979795463857615800161180425229525349244677513463158245215432120779809086039010331537707577518648663783302895548919062102136323317100989540820481165753472564641295904804331176772888179644153301118282402565170059713288985025226453880887037597585727014860695344171090694602931652954245674797508538209121168286509311051621406253210020508461482206480851240924036545499285848270182549516617664861787929060720018725547785275653805476267354784430703377346562870569428012142417153503299455619475410456039309637080659066983899521832843862387960795100519521214497927154678275012599267582928093515428330636954257445949935800594536523144714379311331037369268389339011213263749396563923158448949742365470511968325283225145134549258168585682806695018449622148517398458464402040644133149673356294218754046110558046214321462655068771834277444712849625277113079614924996387836226569664184408665175378142417471408071987660224444978126941341985221638341398796725068243117632604789630295524919162132362279336302334255406742468690246662900283355741985910117237264564633083199029233924371883701333968684222286508100561014389372593825772736324649217274462205446289976893551267557923009388046393918357878856889216009506299923101389599893590312752206933768519982295760937363209476023258998716608689321679160969135346733653705837725211887086708155634915784260776209479420928286139584710614779326383945733934032103453284552846339994342186308087778363219383920100398802158660293575547566212583658344677130462899991113111762877102182863948994575859602807811749358093502262243609641679155647202206808698871807491831682514790192485641856427161639681194127943631981438231587568802324974389075120548547162767198383122295008718443265766362200488522246118284411971252646193803182425150462584285521994012174290851161143784942419593162447152454791466530154766496881570065971078591869711294714496724307577362283544577944372246303350815810447700567969840381186118350708866236448811157876795651284101604190534141836108427747961913081479117980250852437097019769517467018500251233843957903381311207799628040069856272924555878044103504142832515875159267848818058678887527773939853310819272486153618850452510746675542533247050650957187307968256871413193421409653713736288178799294610328314337647292516297160044008745542223042249409502211085810623825888133265072136687479210578110942713557675980464456139743804579034636631344034781588376497306522974883375194966681827092061148077646378686774873629188452645961524931547404272432281039230012952099465180088087757110741351383377838319125852101896473077772288803794474304848323571093382036336508974840536708751087336081570887456802978745582663924199573151108161758542964465603722011503260424102077129530023019290988299604012254702402296857386414211916202558041282771875175658905529423436553921863301844379817120556336707950884526908177445628623317685054512509070849042832464924173465503508242755762800566388779898243233506712638925986688257066607125523748290712695971886782691786486171448545519776218812514451135519783788930739626242883917665302287090476775002585964865548189328461662706560718391185691935203574729602839852189530525371729282340805574791038242108265555419275140362849771727219190218094142010854129193545168461532639285969448145604715493143299774394248514489472863829485272924719485778705552446745778016724022880699894244617185409734187004273378456267597369611445978143589917610704678274642498698403190931028117756449707514975274944722814488123937477806345089812009258387881917864908207042752697447631968473870708301065008039881969184600340230656042982390124051283661967306239383152656570891257441313697348560648646454315640981204815763840656791341958377548312408694282272400601981418703227628015100229504281466510739006546546388736792611352830509095170911290634377674494951755510689814230396354776803945865240670166871557284385766103136304888099295017817177122153643876091943842736165932815189419427683794993529583780985287973022787815941728680945369576930153008220543086518144987276172920336645056125084583488563685737924376356504594260323472444856441935998130336264654506587788633001184935431974798581910506843484507096550915866194362676894983819138431140242660143046778141765717196332718254534892189396923011464497942386032195022106258757347074720275636620355692423856669185857287155847135506618034250560941735267199951830894386869369727055352574223511752356241868444954835892760698312194262400817839608556851131425814941921570971744326182818301196042684519701075882842654098214994380735134889199967976777990920081600499954733325018608881544394169182707657111687145819270746481434663999067045174677689051437358177033370636921686073926589187287356076979238113466168523879519634235700030003045580538954786227238592175170857514393157659271969824695523633213036177621942106228754348364762660944726650464969645237777681338133600129143813521299113584640625966442367740509249147370764763941190857817663817081237478032556586753449991423068143744093387800984746249132597069560526588702049972721202172102093053452436412073329493192494284669823374567628645963064627249148764698371451705742590155349081508359974765806877827496171292751261768597302315838588294420172408647864195521864041947532903190867848112623883707353494252597246782757312835803786839142068693283753483957214801411840615541098419378516915264746279789351654792248997978835388643119013673787629539210596352488059441420452615318322280846096355227641838860509513413331562541835098807381705670399159451016761331123648787944960655230882837458414693529531326763839154721391596009539013268697661836078334106812652895762317002967885646412107059068251887161356389278825009683622384244705679559819334515301162645808358507858689968348070865282847800646259386148435991134484424906069435857416305296884789506665787774755677145225040053163396877012926358993320379702328299145343200609652615355215556463588837897142695670290994817968556895889273622720201742785902488947175825255316558997608669202416609835163806874202755090888205510930441504824891571216642178462267003221234232890805121680726420210215260019395968551012050190435697983621879361830248088153116916819835052176293071619581025998931564300130985815426452749034496410223513384197068035887229350995817153784915830704582860231542435453955724452596653733352476312716694358574960904409312349741500036002833090096208860356426309056967392435420398576828949751926526756151578657578070559890444293334173710135598856264836665548312441905604815877169839140096602122887613868950554519918812562713527343846670094548749261033948866600003240087783532706352910789821165668029286599921620596175869336110139094609289728565933511296670848679033859277837661722654383696122107250034825949204730498793794477280070690508749656022915972337813339224103707329775419564300693856762166372339401877387226633147519261039633660056086184751564951783019596522741587751640668074136933548750482047751835776424999013668973849326003377812790875398955634684113498443762076126685298250026931869734352428461574633787909529827438688078992698939653033784628285070352212401618361954815286937779062834077889509591743854428806530413033035932249681688149495533281298351382445978218402763617463552460969408671082295020738560977830885165981111011018536351476330084958237410055329257305058603486496069442780665685999301183170586953258362894691848524040975871374106357782444914945065370695154468879472854813773593257727610792098456593433546032283522022611915693465944556602238161228353767499640538116176559025845375246293989528240700775417056242309640239422342678746519788328539563200599837005540420803054035179802593702755295562367888482788482085378482252481445604838237338129454422156868318590732224533020860805575657975703227707077544639366206782095865261941177264843498611034633282928834962642831372509699586105904386133989830167520103330249571814505347035886050456436004533714810951217738404719219150886304276787895923310233216572572735066280034459716110904390461163806562144840879385875663926270844132407950038575638354476470840916161933080371924066518421871784758423961404759626495058949634518398491613921766945302691736876288701687823759982494425979480813185960996460177043597286162139913544246578931886562346083391711655721447383015528802856850427568398290076617440118577566284706372885718732879285160094317963207070909482193399296911301584383151604687951332614435619366594788792051191311340122244386443096576278608906282338423650024806279697988619165918710967319008654153790869691573956954752814809490493571032918800701369085151366458488334276021671289102058803502186292955219373849739714557612481771098885834589908069841467442671410225624937313407064319988340556375560052954383619789152262205065618863378992546158752784077611060460640348141169113012813773484945478677253911234454602554554967536166676567572437122762666509006180904668018081692277877963579127689445639426991156736561463176988217730787923523958303306446708415924125621732101231221078369411094001186403533778817031298720639574288203992727337471413191590544612279406644496789971003665253494083937524085102932808032333480930665334492723811342565636833513345957372028374928481381823824318652603807971700965434243415236481896451296104357861525396119861172888469240141602206636118387470269571511527301338154240360493266968218400841516624527166080253692143299665682996567552004042134041102625351336842564444384209251638815929454453191443743735055329302499405802789632488264149815967245757462556984240194771989214980776195410203870588793328912114416717194949063798508647651660641464190522450369420431838356192076315637960603748247555835311069274758021185903853530350968059311165539031024985796828926718032341392470145122573880450231268731542035629292370449113671003570549699055137139576536930503219107196433683510139001335333896715360091618856401551227633243929993718035451640179225929852424476205611500233215973584945452491554260334792511964954287184616766885575206852185153674322891002022051085671182428664677968844978105171037899076013043325097089891600624280514828556666798286666827990906757874298395359264680614477799796315455362671937676842086260986008817465905542714802045819950030743710899492756142885435726783882708208746826751675630603032240350238149792802110076757273240154145825314901259322625411780427709477110507623550621728352455735238128563321254598254787412506733936757501559933395870946136303492556874741118175088611809977394997752997543584687592121372440054791967316393734286972906518252854468197013874170973843499103110737868319477968146763698709231694246037988928993995364766313358200403533860896477438274961178023169460968905368581579543806013906629758849157792765922907062850196680442932695161792657254005921799518805854801301488458396241143943236714333620797740614222771428166811508983495405865230238639742351975126655348883377237241993797049723009434610544617904864922926903271403064111536544154922669788493632996683946810341184538635564615831396131423228764303033808096401358133671839803056613487270296924985583660159992048002428493136161996340040272825498458739860621195097135153819256776529448681272169390776321040771045442043338953254928560637394682821284650280051936765075528564574070415258581111282934252776172554192124627905312915350580103896537108629123259968394491178966371298667310281360908770639741646966617935110590877307161896718515345699701347584102940460015095035273818063872887961640768790310347007214487944400383993974006594657087363012752717681257685043320278765158073487124282554273134474720744573018401184994960400310953558376509677938988292418017819340097098119298022575806084711317364812749594531929607129953688409982382989815987298435364516146136629016710862821103473675638786325228314775386103884295334395824663892620231740947486174999311034297102707156937001232708214924530231158955796242817346280138243379608133336845614740786403106319196346514819121400585530964039817239842928525815367455195022596485274530464693360764172502320581001285899350438084953538440029561158584687870295372333615180717925077012285195972578169722747893099586468105489693651075518769479918091747685689132923278670930793768337516655322011098192263581555102950567769085282392474915516546484481335017541275246536408434549691813410848644086700235665521973166995056992945805582430050725373066061353501555803649325490293658381649764176453711259783133692267704234060954823251480092538659623868649564210249020715417657896079712185196825233954140524400043979539955693521540131816432837504394162312558988083834165132989081434652835882397867558162089239792076371583794976150277089576119733530059870135513965458692458215923566614812437852603259654275632706073684216791954352661105730459224725983676202588836075415336898703761817311300979514109145449157034704282019763176216840874961187603378769705289072422649427438826515909575545008729343125086176398919344506235078346863427725974220312754822430668384535591205906692555936466155365305261009453026085099464861634431235109083169300133701121788184015216166027113312171135489076273015942901791533746046510358372816080834271983304535411237406486463486483952082918586817724007002888406087770462136296135443725694399109005056152743630437037985239099067964181210723386730398517052161339906713298372317054784047959195392744178591583363912810847765065933309083412916761945182548077472099423663760911019980592901320734937811903822968442188782383650082304109405875976606794639750604718083264646026146486585259095113490617549207142644131275673130805197369908057451849650721371735583680318995455884631984799710299036303064563946277019527985720651545443234196787499675293286644003357683295931411267463901344360170079177683394895727789286066371420990700742069857470513207201077821161933922092290051188070376130184212164477190672544565769482308352303844308768251759397128883396063616203550741305045182324614786386602921392448788547687397441637948684320755729676741245038215135021462298492077887564128517932599547070893040972861710394728989380736293538367177322252299618929231168658352645159030387625796056376990576146858729216362608110685751500623903531928966830845738780946272086064032362815748276712498236232129218692317333603483969483596180120203378798295756450883032850673584506913101570322945588324568976691580436280634085623342496699636958603939834231354851284066061496414651738185157612323991845502257933410755253662041153161295025005178744176900730395997464908701424581104041584317363128230275460514629167752359825820943663026140555077295712129505613577768982647368824434353305569742848095668385404354345781662409693351990141760801361601350274107507846822694754063809275399575901630347614369432649596986684875033018550792289324412700731360672011785041543985584396563732359183108124689899544544791544956358959153036656128110565799125412212440013449096660577911858036214429432071550014441863840932248884071505853957066343286431224498773208690128110021024972914632025762858571586677586391774507962723372543937291576811923934462719344061318459752721181108527009500206553589127923873605457996791908359200671492431210090351541781288706223944026572955379060184830167574959668919526110951782403639306248732647044497872369928656702964871115496609903106922432361546507823234222680020071860839241738334200586722324552356834904851820673649326783439969195398910316126636255716613517910647591535920812714418942599762447676308034655230137875951071660987544752815128556567485460528496797400673971973795308569157686437426024217369570580894899634947657947215180726900117518829053806164331371132897116792796329201011570442770052434212219590752959766784231457595386137068238118841802109971326653152503690854052960229821782500871798822951869879625559845958540991548082545212693089331388906829077030375240150630295518303252306395691232909718787450238563766605139617509090836364511625712144975222309834955845759107870117687313665133823247185945351952679149754480402164240936885862370512119977242112254075403954283468124764229233086081106145632148280587149752934910972211820233239058630666621694940668703537673450541290945644964563938949464980021290492625374703209496195839469590561523641474742432381010563618231376734276540344989935295075689062767108031215920300165436660197858733601269470880371216031358164822116015548256247999417507805079985785415539912356359609403892094871614352832631683458521841385033250896630822534074093736597744907089424937353532386275967561713933627381465462441122793829984526756432051871340451375011172473449845425567355113087342765646140116011294848527159874032937025092496632976061267742063051226048769628519192504690476014147605299065095742396924379548126067837104640008620941254925005183622148937206700761598875334602760689761696152153123898102577005903337855507125866672687991982274170807343091794903563493250543833032402815978274303707482933006519985432264455437673510142100065833030528811840673206877110285041317647455505728296922156639264247936441893895327210746680382286148358377001649749293580521097557829245943099702619732935988912712824833448937949523431127535053791952115623036680022509774453420695812506441566397248094030808162407958014666452484286878849269962847035533164320607749753876712937645612303417008579935861467063501926798656248881302069136815245656691472843549324184886493386914366847536532126433938060680561960688978640686255229493872368966233439116168873788251383883108845494522459365764989196403388374865142802964795618992174278081874356228277159365696499325128969866802472875985082956747623635065592500118338436295423080355162627267578070778172879626426734633332520049556993087549883308431275704375539974641034987508644946423484786730078088659917721074372395201937162515869354750149885347678878225774090655102329037788870836774352528938663201112300932927751036506101634833428751941235383968278330278416436536581324525309889854265335758603863378021201875399064108114955454663615398740931953154153118620537838090624361154297860861732078887886057307816140034580991541199435366931385349083998655529403228387548489745574218666720849291973649653978720797512409985361970544352489517128175740352507488270429006642588019118469310881652065079719830521047611856628336924465042012461518189000336522831796155972053077812431972938461458577215941872451430644089430742985987401512620954456848609626269588410461858904189450870210303921534340851039089683845378774707380734811619772909611757371846582461859881638965783483055432935110527031687799077133373031526973417630360604549503963699630950927092059905709380724457598439078183338929338111606365865090704705630073561614763211059079197828877926764852872026998860550636070208483975841726023680186594062747337908266513383553449344601703484311431962849858693339367832408525936156270312721045807510177562051561886393158798204921505432576076182354505099074855040036297940467269676840904101866458239831335352667638159917466111394952061779120616995860332886514561835317725371502993041537955470049471304266154372164299181555879981581375676369596177562060332638400675895641282761706575851368050743401943808264960016685077001438100550685093251245776000161608493703301352700804496541506625133474871890502077084700501461872986480208965405939013802631554553308872089111520406333097473818721427938130264756499913017381571703734268600520067029089382795109763498056056157580488402247442111001563460125385226828190496270912056764197419994916383696952822918256248509112822655791468390540249086690919916108093134751524261890865541303058979866427759821952940913897636258720977928880502085818965264134586271208922900917559765825555268251714445826391647360281208942527257714665430274402670343929321569290123931075998033872633429634763588798951933096290968988048984196987779856984440673381022821132014822825064007252063856990991896881796358456101076893364571256539459154629597634152192238114353846002130949046973343744692156253712265319173945407291879128595801455727191719869675944960718900520140696331683022644835204002745848536719157294775050026422245037258525973351461484268636768515477713357892188394074439070632570867287258486990309416213939387662357948263119971593373228028676096248473300109634610315005724414042029077963369020381038927950179667507485386816352477133482363162364966737600896887395375074623517388069099334792936644992895563293687344059110468120807719073478784376347620030679153778600763651266188447844836101330267366277024917701201003081827114012346751565951452511085021208712446829675235000802829704333882893183447727107407702506387811395173681618778712039178824512225168992106170847275023385973298495483899291729328378848833754724025360397976788758484879765854942269493285603887434369951830025238755789595231251518182724894392183950777865888775611845245021493475839762063520857421498431531704250433858189470647737562543663291678439724346899524257140074168755974468387628261950962247659534143363468155242642938647193539317039468529938676572434127312099711814430512624768604077512417536170879312608910562696391578049794377491827036038699519409435766260228015338899059657077635393194749118166798828528358625050385570313279053261617510173289885760985769410058364531043107217275273184210442503756664952445913252725160745388522836114025729071158527586822309272765838188143084698922219023458661713320696157168071374470698589440922531772687210618054556061751289270378694252782303032977935457677835304735924016386586542793220070645402465890406532448575945064848615990926084818322768780372681916825429542145106582800106118309015441508880154388714199937011999028053861465467326198781471276161913120814766124635337635905864312228472939187863531333768602448250603834227850627897929224214782768446151852734566318978402728903916673904679517988297871002289984628677370467069948813977111335059060670600305902008724444453888143409602074203542450831890362853943517932497458170129240154257456153265307824289054938413722381804554315066591649256476593709480008214787361400690039480216895475807839623563187717370750633463985025689336941912371029606278943403867030961728576568709410066064312602095417743204573872833205072256311613687911230063274647595702796532661743508680595898715173052976388287226422698521971226586616976224092183639746642514540086693317046313106534284713029530819945162218775999265616375392393369854729178983972762911929061846302599175167885921457527313744257792383890035145516728881124826494940130853262783493167805348594796982140278575727303534865186510670426934254995370816607206014908522018617403516753100794043597838750649324191464425164798219381937484335023113609630120266202895048081850528356088633749247361746231085172373245247166393382447796864560871575963943346759854999764626696192094966130066027352172517858474490305168529987794307228422724228823721520285531697798130105808513338357641834101482315512766552971158088590691721390541271086433152321974160263109457490439497715537935252456076814148148869098571628121448596645087630104870288952083366978625331661775029844668165032804534463027876095721640097204173343337646179421878512569792208073951338448681624607804979691737123523921588321362640486152297231179411749518352598618722297715534130671895006657880043833513844497095901061574979947273872876076514646163926610848623845463999999017880542784272428790412819691841286989067978510003241735328797555835254853282472354222448137178006551662883546583457055708683009157430552868433258593611302220082631523800420593244662244608554257959187730235781696122009450152369470935503634716519883726942865760998138539199708929440909307803397187335291437417616129718720236715033857186457817566545841059411579842623190505053848386905772729751508276774458340593343986150545253182360294055137580546052772981484452892625121857576644669251881136830609632801055378832382198206885670249872784351538246207371323429549904309494189485221945413651554597821251809594676359265465375370939479836618769767663514024293858584246458090983422253807700145992613796876365263847927675484072071597929749114356979246354241712847908831284232828697000692880461847348638773518079170506121035132958027011709807079196313326731594846694781896012232971666835436765641783306234824123493117654200297777394799472906744318929632861593566579354276164508504120753236409989433260887366427530526452463833149199541112833012006222713293878002954276325140344075083703603228311633573061631550869179990023182197104345019916827198700250413963145707213116048917519729579843208886896348200774432895197349769811299360528292157807915112746937361339388044903795152649198451587858981915330532004202635876942528422899318806531644869600120005384009585927797807498810675772017791830956432551110866331698032202583924739662950790736180279807441503140646019751267553923999417242107010554488155357608924638516229706416953811732203910564363618457159460587502014532232964263003582086653665252344261233740505822253572470248396888642349257084135332099966228049765841692262691685973336815156781888670730918373799922485162386872245901911267877016133633368408461968762377035552255193788814854056122482630800793037295687251863119651731626512839265493468193496719837345608532503424732582371158793484565123346043865070579361941158913213012926400333897567300199637853664890679477241137458384190444147563569954164711474916827239267225920975113409678737981824239153944610634779739787549251243353232075688284849160374242505347491324219014999029891551495903876858033377467091449860059769963542657332953214796325353258576518257706771863742930007937850094125949306266851165767863912709795207003198417755050219365348274067935027828602703884177454267103659746191849012116022369545376993705758030240921088967587027321668856355972221731984481239940432054480989487423852032757377517322455194579495599103108646588846106958460027757896237777041513702029579519565470952412459368743282325086694052886721456553707386429463807314357143922766167572823902058455585307270752553432589761750601793699196009518969256375383806542042651614604768291539221623076698934660807280869030066406080965741872508293193200826004550571678944953903058897437686394433964342749247295030243802897376861269865061308600328379577774858792479995499511398880295349758677690338977191955510776850686150391069785681072767870151912993987971058818890952082767088910218465116085561268170651894887200522044591890435718919258551324351133237639576504743598995128577124258850820956879502057913465594838365746761200944248220582474558457594645208006799505060069670105543490587086144541223646749489684814236480348450405433160356509049723482424815032921808513808016802212319413151130666477713192571029476592712355314697267203845349339439625703705979831498934869951714417183134345425355427014092311101668189225206057673263654069265351941580649712597540211465460261120523083804810944312630630641727005198446929205063435618688985500798658382608834869952287202421930488204163074944998601999934567869050564907309740406983122271640381459551400545856009591795879693960768934888514117165556643313874211481758137661323902549696271665101816020648467147537029404247019680509520333452264475331951929510019753177947985570325216786235468515382266518863055904558778490390656233636821300680988303619393613049756111018797222326748153310131233149107159266376971860650622149432374460427409793545468009956514187454268301067271140838297279115643577841642090958569353835782510498140907676259404666785039272458763679466496891985042615221956859860652928653866699807513045781908025485724395854115893415070884837263920873520630082944590672128294657953520815917355345291991488533534028495037712781628338200849705487302650718967619779453223321597811353553587937893838331691567218814342112896982295714884274972909711839310764507302962840483676511456431237173754602135564327017230481723172123747555123842459575577300596636167458888176554584453577221347101624041333950501298464171820439792510767460710690443105832254191572960857280731292675892860248246709473865339104203868967471917310115524540588898512573607102522693440220742983402204441668475214808844097436235332766741084155721044583013211963736919900655738076438300934180430801388026351517277148630676441626372971778564236176656079524630346310785555047570654432363673805161986519985317615614137370626451476804076018909557726288062325558603097200858635900092425085577431582765691841955038115895233933090469841219946165358539906348732579462232857025287707648569631789725958692823971139150735120491792521817924296665289007447014964024835729951604696162098149223275662984748960375085490778176009533531045899654867281499531741332321063225752658560126628648904862621808380804085493689165188364984546407201678242519419464311606330202896198777099845704566033614581374641276215531551167799098805156357092065179388122636661394361192178807222009119192094008751194296723865608694287616449880356451676149577294869461429985917187427711532296869070437708512106640800064256808874841825134766327097613350190705022467464657734419591535255532217610366573252980196502235048117167611945817570814407086839947919700187267112875980508980616302297969171476182688576255958904271110444416314401557556137764040861414996276267262885195926184621731762204713682422916767852135778976888868303838943834577973891990560830966192715313468990535878120043726858275536581740026127018328234742720590989641576944821243733178549553398564311768407505192404861821510987087132415309903589803320964853836827002277396385858590650721846181558077431110104238906621240157050199529577713229255085754947886250826701260955447138462681715145093818759134197724784995978514109839033880412490636923544161282245040714455181383276162014770867374057999108736508518372493786729467002526094463438179133566917940894404581373632378729494576083640177774278643180657825284940188831469482488177469843376629571264516253143432477655899165075163403175547980690158256357752796144961790505750867549750296205587869974113845802521732222916032997976945210382387392306557931226925751236382187801668247217526554721507192072643293210802021487222626527681132016582058969912311971886550284117297659181543062920676945805926864403725860964564941991757589611402290362697769670466914849250085028543960222820777635884889355737897193105221357747960119624185689539388721477275053502020633434050098637210224554515111708998597241558963572527084913303538527704658149171007607912360719627869035480770466498390331149776884633028022727047573563613912466042380954756835182664753734144178115718765072441699857948318007907748798085626494224428888246220595252540232736086334257057571955984890874899251477454873426623181855396835746863122117131538233447046192329465359977183592714760923017942745667887758956753053853673179077373592067069035022297995254219144345981031088067719875494603258506266169845461958139878294315479770885781492749559781203784266079344365423926339716918297809742113655497273511245431219950694352085040361409606632843374690132550896741495647884609755652647178672820223768150070165311228125848022176084986215748532586959471520643586067722846779253133985565164523676959219310289231944817823922436312044193638950829738435784077400140987147755084829170776220771672165109614935503296456306572447290495255459690697087958796811294217645515637357883983401713511456913137469964149475932287495379632775634917911024266673436744184103746248871022960908153150049281179178558546343760883073314440629282275183976564369619520912173258635115746127505511182224534730963463797966368587385411969460263273349592538620561280100073742199646308430683545250670600721250217101347557582609647520097887819010270494795347073029788750355476057066119722331830827292968008650658780619486006301284209840578314230142099104121300564864887304374735488859414831766680779085217678578356419143893888985802306070994064498802569991047344024468056532321546197993136835699733182313006950042728304833389462618327806150682005580041696045720803100004344366329795382387579106477654527307982923903810476256626189203453391939593559185796039747445215491318399856843848232476060257570006575766800273004218575018165622602105099496098247656689125202163707854712047964833263080081076645669415265200653286849422961502495001976707848167364189016077812069296317989757097605505941483688514315895357293303314222874819486157990289849792265225300321569344542993520474037430354158976430798346905690973167450288897776342312535333306864308000650875236098325946854826424433695468399867158887489306860284085818523426260160455348933213886189584511626785386595791291003609903221265839803187143469999269361358187700529563780761140592577451869126730149129804283582453785306979040184822775414295551887403750579192235223040858483814652262645840504203583940003223553239717966149981460130237737125102031898134979405749066287417496428577695245881970561653608248191304515060491888600252942992711235625196688682322526616403373462750245328636967791031619630084198916803743603233901388794114574273027265362754585650056237411101004653942247140827463666056170502057518054381394410167889589970039736691082012049754444364358201378741716576210610402462585984151055632234174558945735896814200916530980501596644565960272283945899841720651968460682474012069935971728967462283847371366111947509742794626785406041984003847164131432254102924467165629591721168378388115368568892160032365339670642857536514383763188996859195390397747188407973871783590486711283024782405203397722744906111545301079075497908071723403566163010424540580839586807499813198426241474919703826020019448427166000622907116905048510949739870552755410527374159916159792354383339241576288183891227396116162570220350798184250358387063350359334707233867753834668534719833134587258718575269475296375081892006534559435025134742729138690231787697896494949152244578797744417372351082992813403648280701097423955677651437540367182107815474088240007035736729758233634721168338808641969562798067477310523772145137601617601350288907405554129532632846598041186626131590519822635151337911038298890589179655907107288239465962720654140367068046332339311433804910688450654461839043352067493326321337326751981653046666646612960294485414934186530436958216599525463351346809849739247347769258319692828291319894529738778273443966804568629838277864520730027879666287827585908252672205364230171782541347160268222912212411251125019989177974113932800972833125972091651455317023711978632701447895726799507279811574221794430758059900935178719381665918328672897133370968079622868176114170567356392167702408817527338467148667197189970297713322315194570044487273313042931917912020555695741719386060753065672840499109622413472297147181333448302150827849425489761155226640020671556177390360133627766803439720367337786802678936892172678484183892387813749419510386264261954900311264788750541227807395684279811468810284610612394233461569191507096423724284921103399106771010584600299091894431959690244531504114404711445166296130618633977226530982976359402075574391161339716699753986798354785539258523136296579012160672076205835195433005151408908614774963195121161417846347916049603298513964016294438906988580135864712895238506830132089231227285719225540199705143078651053142355198883163155748361289149196580665656252815635468203076377837057957829802466577509091266849226329463120711518162572093716702605571119139915342677612849295853468344096612634720343472693264489351234415323891602185475247456843389609704642818092700510573912204504346036188466500001010366277278469350311797393200682453715817139096651946341505459287064704666348437698000045466039327507682858390601031266581202035745267084061211754370775968205752316848783422319574588408662343731093839543789995411095849688548218516330067255884099413614444205012269067917452806833733936782349634720671800153115411973677596115419514521015757436978585175230283523868537298419444286578120778582512470465824759368231153132718857528416040156107075689376711773178009859202118813443677512758300840023799101112566348001628975002805167155216993605178796787767979918938707289824728988415165600545037983100335107365075392878105861190835954339639713060612860670951440259541384052343729195409565897493639320899648709722563741417221280838859719051150652698945458687982225165610927449118241593332010097152503868249157527065139769726361884513879980971231103076672752118799947117590691533293039839077232482152245510178502310328727594838384148978687648629283575403084641246155500511905797490158798738829288438134174007006930732334376406960065337567736905944292158040999077594316321550366578038536692132615154616827864946020593290680286971972834495157048343359271406695511094919679434709167462410875822206976707408048623545922896293873674906997718842120743070442059211410521568290982893351743419325420496176235572984718857351365669885571775624310231838117347716785545958559641624142546715627539887478830785571744410907243780725795180856745218150863653755786566069516072106726993088556187567535939910669278059616406853109236866739676417939292434425991931269199352093567398442617024143722493462916251368788387975697539353211895053382385972677178624706912371556159236474820387901106303880812554399440889173969859257427512384017982612535946168359208873531592772408436504214914771812563712877359501407739307083971807527906151051225609528226998940742266087497730123130042186862530456008513553218389651996540669678206445999967057288638572180319053783842402972083344632782542146074388840789107771056000955048780567857850943817251400326571645840818196302783305006621069885149735958471622834398235662178937139270097695016488336140039399667421626617705827702516571649006018238904984444419030339797365584482022567496337175936274587019018171862876103447672276722620231907430808120574639201477464947559821379303484009436287789443374116849556937070021507420059128883645329083118065457997318022423505803847542433730891743365240760680140669825390217887747346009068242988586033474199250421481622151738851037715141005055710227995272906987187285504480153541708354594624625932967978382955405301257524380818630058263541738592634911607566374221805551923397536026384132795907700375297089475242719008492027699096406710057801565213553940854253306462732011972872275173937465277051839371289706911944342017741905773428603703246998775672221342425762006038612341789401981730181028280204617176978111062926152438335286119438760238322346762006745936262461833000840359508580714215422096278737087491377237763720840704259395852797994473934959822504183962254475302090999347676623442370058744317918661293747219937653719224990371593033206943476873673152018326622525096470874781904069603085675775354451115343232500069763263450135551104481665818939994345205517593144678452662479802518463029836349576284766893831337425460515515646063391335708849831429033336381843788718868678968405777176122131900043498719354321378734834553696760162951172100342331746747622793142038797305168402997403628702636055386535294093128251314353263817503941258618171199774562887306175526492633543424351358372768214084447820633300333098932745145535847476048015847654334730498430224380525631099810774598476051329603721326881733459602552457998982839603979201744739746723843216604768310492609772562789193991741305168207956013649576499646884349372755530716728237417767581140312193698791236712028670140090714647502630445436429179758757979908148331412793891778779562837592827172906839448044971133959350162250405179116085365074032940759581170107738675215619198344730247179890247073162557862129024709878304685305142964126019234638229161569960294245013277462960606130094177457199793216752919492724565053741080780768109048705424414022774651059537353415948487130012859491346891373920912648915814537229563477506658301755135146099280670116597219898397598033529005702304570049984156042808730703020455640377190794654615355783656869974414438160106225171134199143224124293845966539061449932530948180611690229185588374534589476773866239152789676430754367859548459101410630481278338138142270457774679706723491437193402678355670743493161295306107356998851055194169222835477879102630516156352506862051044692065453701079710845809350781156440003756517470879511770238585150298725657584362429258289543846670605164283839728356131839191022823534468307544581441685280720229276205264883495521096491693891149184460880532094167647124645082958985174728228226655782846063710470601476973326209740330177176067218973084387830964318348947213819565779280851648290400274255815638080533107159583580539130774275034814194519683610223860873905538687625004287983722787441719092703355339671821480563104145033594516568882831858105994692668435951145754399597063310064371540428158698434708166333540343011819334855924834458951859063548759111389143730418751442676501813267297271596394269655475824139414801565200745411078066963661195998777325486608242014971458922683265108627975855858468064786069785525950487849452397268380853089936722165857943088416868699531906429754302815837527260965043296098780896334593782428559710694439709814558068220234461307822890955652725862954349202947352949965917995099571829737560852542709309485443139202042545061850016581655456846260216114393567305160266358398083674622313459037732896843047984152489952878577880532371471631951705101043383665182692496673689038882035834860538117739057266703123275400792500586476201453887039592392828786937969453670548823066318348460423688465089645392566409209158168527795953063328950883948399773161993235872439143143365705632066198112910982040814486863468671055771265147530316732865363327300449407308751988248709988586182575246290882500000396719530724054723645686122924991043198195442372795553050164697092181653675752814842012861293281232480561010784600867913893547979228200092863132170580650991099807279642317545537119557719397960130840936635541171692693856179662794811925549539691787510934953767948744088285739289217243429744741538295364906741843342249084783613493260078965129324712267215418033508871814323403450332015271600323416168352018400949465336123936486497241367750371382862686453466088847451117813953048319721663571152835603898664702844763016264322728880922790062468646335542914813086726451406326925697039752460937722003363612814278009358234074949412577910851393901815695059794291647356279761059805456401600573924051328631543890724102116751395154761789316968705719259402446723255980369444011898361224132453600920169816534903559059829448341938809351048242957451395397050614945101689260797621032139772228511201914624345107201926961169867516262251238067084484225608344542413171711197866638116757726066498882115320686925798213810571851749526862525247785831046029257839655130460521669386129434919737627931157610385220613011386566492549373547692425656335294904504127784535723652129909544179864712193116481310014487518385140671186398109295811030934228555409854773105966782073958694716082654685411356832436999242655409973243810967158533066839384533458531812793252128209893780869634320753750898124613646276471182294149397249739284940606712482872502534692299370828319407152717043527654126779081331823336536695053762577118468167395198926981406315809635382637079444581993370352526382565836021806974037743506331466186341809892387721359530785671845406379151160918335260109707426690605012936186395244191625522286721945433858915134938199832410022291377056759058094360101505820059810685881157789248955734185172026686173067776103751277232022803445185641831418418185082008802881706630587249844803081061837101058820423829060547847849525043184761141775324164185684681727311758294539671584174196614427940066346312566454086304450963996101259139006955104544912916648213300728826586434927889346321724652636336627911913693178617505172258133395391442710903012573437506546264512706823241840669128985007387670154002302824777307119996833216623497970461020002721019040465693533414836512328083983929233164725779047400943042503993332898031960139884377161722316138210359424487919731645391018834899096760859361779388179800945264936825001133948683465326351406593144255281417933417891649639703944381356132141459423748898884080062253894408376421120424456903875449868625696504850506935846611558958865204737055493625387747751200453995945478550185022381199573766048557517742642706986561948202851003279991398424791866746520512458468345085896717401944775418740310330669139573397183687634343144590728371654745839567394952895861222653812358018467228417760542763530765425070163913573213752398945686539042152095384183361279826958847990185385845327678905222363312087173634642150985604898047152309479433867111887679956573326791850245230696293844156233972020931185382521028719308571798713321218187067528947574417180964527584498562105473383523097283088771994750913793656200306951431024579220064565314405702190890635033951884344523014608523351156488990296179961585828040636706952849607616405831117365356053564003701163827688900505390893131954210338930766896484859947779090758099491159620092034579541016622588907634708445440774588429390280304478585375282641222488200388062917767328178086434136450246954123678311454039330983576103068090175429388043920799165532706023883905339019810894812780736739447699369509927040634512001878261841198624974159400219925266810135007410286576449176050244349090138550713275603746611449747560920871117846332263946637373161441284562939033999036584650189935526608956953348544233919813707764283782098866418121813186347217416744020872948568910761074495320495493709751950446597833500995019321903011450295437791849286138246110092453561335516114437768803652481749353346776050696144593782336670606481796157587253658299545602221486435404822892776041383011469318715321403323287064612973683720953125368145462471731676765698684247846510590322219582322442316265106000888580027580081173062275322643592088148514484536645907066238386616410390487820893622223670593010367803745569788783080713963108271292159446484297754551843986190115577766011109908254329983881380916674785464830126560156955737646768897621073569749620098564229647398843745013343765358082890258127048429963495038590193617780608760775070598231015492857031831219310557948377458509720171728630643337055488698047466834407438448770956677456373878420590470948875627175448465303993211561940860191454044107541891121132244438042234242085063092663955257107463028738041088707320905216936436949254148592933645903894817126369452731670569362712451178244494888773558127197760934375622259515106242016491988941405790870751669928523476819242974068501977832257935652743140142049561766147384462176197945940077787463321108802233210205228196086786841323574633762940071923684621581987330153941346793355214976115971871065958008377133923498221884788683883654101951059194884813208153164606459425243962271279366180272991493139465970700118346151893988096506170018741668687290389882735702330553150962966320011344147306554755420607683777736192991856313584446899748669189386684514848910580803596898554671082135997944172667910834442475372970614853950495473271093549103524366985058822529662464194786030783605186447972458005834398801245173295944950088474344915372851797543963948739007842661544900643434953657033540658654275956254676515410040453567087965917367706711232501451474360627646340032434676261577941632169799643075744296518101446423109771996336123984340220763543058925024945306409983641622599419838701817656572114077936212409265116808623774997024282355219971248214498709074096030560756918963822446526647082171324537220475985452055927764699085051125980363485086608213197333651596554663912175092424769050056829410822877929756711821376397641363241342798349180414288088349850457199295633970489664018587223260246907083367932618358348548007239824809695994813179712079947884997539472580386772272567032332086903388874216311358967099946930615065195232252034585857992113618318035108619639332902495074507646632617231586853842084118377037141538848037165070705151067838514710780019436595635582202010383989833665230615443878237063597198781150826072729704963110551377513982138863179209979550592729631921339611991668749592071958038919731349714741656943778290894656795512086164748408434985388897144683463708124060242617092386288300795858373587065894184234051436701112451978439058970421766340966217822723390222152121127379534618071730454400125748704402499333898156033309562435389251448150567167361588205161514260852949723275405694300343642417264314643586664535082355535007485062106317766421417372108495337566259628489973564338559013683994216947333412345083899493503972200525163172432607693187951440554565784910400224238695022726890017178229381338381936187875742609397223992962189865148284949385208458038704445481105283937567439278675628661401988381641230765242603662407234564910901230172732818287467628070123539802458683606648993265592150246616065199706265386351439969522272841857109588854307804391105954327709962544368529776720994777742696533362958243842621880647808436944434702496965973114310784431968344654868801239201609431615582774066803846402004734287330792563390630791258430960561668204057665471122096187293758041496747644074191350636499743816643408919420218746998887354834345557209830296954809817319906651365726799757662011558560106086009855931076398488159916822034257049115682956273290835150951582413054027838096584389100571638321771804410349909346801956690068072590367846148330794933846730542868364154214381242889555985899785459765976267032101202479662246290437245826362360317260875640418367368677623844141514125789962483711387838550237525683813191966886275894283850483308666295184649678924902548602839105195938992088247148405709623282342903429160998485333313221066623055393568959521523967309613943755446186518016897152347864876672235663193087971245792555643590268769316557876842980288658250934496041309731036784925764673426922976764546615228436521173954902983641497418727759803645958476649056497044421841775650603243852453003425014792327923884857094897066050494469513862770120471088116085401085329526378860311199558255778758523017265859024746590264148018903468053441459484613078273175950310799478618958184800650713388310637333703401435985879648165132221172878680886892549444985245982344794884706006813412873265495270589462842673383686618962083488087537345334004165072339959942072541019439801568902118870296744745553433592306783799458144511075178272821718710837046693171572862004491951252842123217566360924261612280964687745328182882515019342794071269363350299966239462684841633332250792551534409330432309920275762421394599682918139527257373940139700467874998901886634829012048276074392915132609749016749448903246241890828123354946952187987664367359725933092929140577336732669641869199326144256310193569515818021499248411498789261276425935761233363173960815848140265218554858699050954336654637073043541723980768241488510488876202182877123432568944920457910059948811688053570872580522065757864000773693914266111512717291208129659006351488676864256494187356701328083085537020825230111926807607911582177461160377705155171213621930902132548386917830771598276947396051305757974111592623934973969060311449263605686593012694287075529425536738593941352623514393177706252934243856405044651612828649185668800242031087769301812026076125651370326687500062451781301223312104093964192783535710915431332468342502862764549724253578577835332697349442378768954945452414401905152382452539279859810450324349064204244453749204678043744331896684158214332521987242375547459146948803655872248886243037515798187617255094166116525639942778820388931065404723085992770272968951325551269564665173221467817679823515682059316403148005390715382600658103232296065704030605658701872320949674236660986010145127685651113382996389650010682783160480078164226515145665374433052035248277540586324974172290279896574730470357864266198401746923251633155629737304899957360213144924239583249178423893932619099571651802132414472646918170509655672766802019195261529870743104278151491009552014287573931604492033400565882938471517726791754949739950404818088100748308244345693931910021475407017862104797025218288877227090167689560365292714735893830810791264765392254988455206403164296468981782654781783893095742379331991897834977484738782243052312357957725278452796689075008883337549501269899021343663593708658906407097814977828065429073187812260253527351985819034607119178504611439151260348828705853241807640697308831880125547062707506295594630402577204056502202104388138186690675729742715472784024408019219209160052162010081812514578618092569215466917008030444193360382747561005110614302276150830716354400343631963086768653502340010595573152763958575059805677172709358944530177825551791696178386388820982903999837869371130399067398224165007934885911241218940165843957307386301161253330300129386663826381283662820627794284257149315687120169278544008374407903464081953656384791173470469792761848832366518930636347274430346251030002243816257365325616998699616447260706823360022159390600312325146151507671311370078916553693637877783256825481631357684694501781928704419140855331173117038589546515553841572085419778995333028863888633677225610593485377741938344824720295495958780548317938509729970579120274577072518904888464231276631710942329261704061907002644975457304992716384839322316408998746183609525910427577080065602762282759179736766128588545138485794375076301183184758719099137750886999839172378140754045297198612686409863332990310789563233731727686417264292011927733140583639652043678977118326233705463590474775496340271942265478043077426991489919968186191063803478323133997272932501314671850851875497277133454862618129048459446516058021977772588514292402812921518647775394802555763208605506127065301756305244380946168488043347516509979907481238045302860810760454915126125960039976130777246840190442399338380474757223682509650126119899175328265540749269497153151144319803876136343493390331053332801612520514011056855772946629323122942585084056226959856236651724815891312077159477285827015126507530452209615080131358401381730695281738171356627160159979765965677219783908310081706823942314006160020524614607315633908773020530223907959917483717560235084434751709282915676055625380676053325129896830539926637452785290602367068814856625463383265025015818751068897909128515223699175184048749814818489262039506789535966521655347053288378936977364758958730220017619392793084320649118994756997253465273503503746626604108413638983754537780841743792706714710806993532057592654508928722464295094597040225229175070310117002570860791387955241587787057084640338196645507927718667219331935980530779175279454806011262655045622719117007393333360991503551135857914187465064526097426818124271691631721456691789741558623281091150834713210314328218623696943455159976712767339105780802484158641735800068345143415921476341412117425061958528625459843617014128140241615940052455809330683936754538328802923162170953235682400381447431235573359342290742326201382106393458074324532054719860631829807636856394138305185149088227347501500756970394027003895755175728627409263820554111149229283374831793258165921617516038172484010423601581183156257733433082597035824929061426502076730111620556488338047892582574629412745241794224999756449061142001011221067297996836932997493551508277766813936686614532133955005784396013436670378493662271312318503346372137336137338478174261624853096841184294792525330485187500291001446458156792958623163273914479697576004699911244871372485314250080090307081315580010810234745515035723102319440853804725924848386819228160510497204311190671019476497045109316034263745682601690378853887669263186646090716187050480749993381889897683693780998241651704532875027273671415640164522172640543967271649311067470751662107424713603285907990430415429286404800360389951320002492435618789339458315104389182995803614804049814947191520796878630476196564748882665661797835723737080719926685688889060901217277683844410012893736136467640457425391124261159269565782069986677063990478932627268567644118496001794907968890368995546153030064676981001228523329992539551947143020330743445764019677672794666210722627603940784583038523402781713565719995909053485727213224003174173327682386496690737107655291035986688161415266111267072935630185557080488778208811987335273788679159541418832107271864859801504894867074055977025931177924165681712445977078982264239697726319118820275955095920034326541946608199033553230538014215948379258031993651788938941324543491798396581700761637377227142258677030138926632084444191504701046175403867529614491459002964330233034374701781496680913229130290646922160506272890957781583253470894164738125971747234704212138330847525730727626735183843802751565634915032314998649012027471327229578283357397707398644804794473748123283320376105397713411514878327840583051248613797380990554270772962764776506383091928620613370080100958063906132509368520821002498473140102379647592118911291295889628053752539558938309834202364358259782210898974329429126600839950074765116780361833707093043694627636381098693759026436420732525431927333857056358517042655943165910570148664392066068098037011506888567157791154820707857734034655577773004541564530270215121156574730614980778241908965019978856408593149323202606551384091550413683887509811053207642896807059818053863323318319779146808952888197193262767696299744932691176543855966997740317611631267801712115491251198613948474120681054458335437618398020342420512275374339954289366360246810496647600405114984774757746589157702148100419428669355850882833047853151747962116844152292381633090888586361951741655942435720021489230866392535330736145858000929401922490324740558682773308439976158903429182268454308951535821824959509029761443982574122936968475959317793416037336317014958821401215158771751659042845888103154509348728408031452361774511741688900762196869964209152092139700287961535928119489794520438433482143292914603779789184942210861727839151645879272937696562024833605569761948761961850191097457338604576180327197626630860232803029387287685791163641877119567643094365361973448581129336571650934357550642563004227420744859143659094576453398138444978686019472373173521255896537579800601293358462518728688447690186159535373315495826608498636631836107456099537157920105265907405825508041190959418681042848946116823327468500323220597793204978635609115609714445159244869816622041204322666928944922419433190592055742906528842847206547249641761309324271332673315438630801764620301697958006732968455045050124336177531710486315538323155163807259883857952672341648543787693207225372228804894759665003565965347587493585541498485908740228666944081749801577091262788604782349588995111477137326430756211811219804091477130121871021004232418345548351510137292875204155619175791374874529988683794323778864972346539076535513675445144685616343930583644196968815028492287990088850211591679212280215644504930453760806679684988551797969758826401000827324859338441324096361544829585367140640431360825735183342726766579988600355059004290657673355131254686641668641966148455783009310922875987937355280519917340592406859997296952973522858482144214449010847079825403418203901509013800274006426094887938139732388502905840043909816401376119746751650792983475346450507214484827992531470425782277170149314565709922983132785517263879827226324348093986175813878359183556368753866108453996627385506585646600176996405979726685945785496239197752353592065585685063388951440544158665446077352743960799529515205853279221533200142601291710110518591076750398036927926994072632828301670733961659430064687219989275553719720613266732442027085665231342816721616018751249441936881333679567090515705429107466022111044797332046852772023155368604409234877062675549959951650994822236957756773220002007307239329938436643604908348099344564409635486188476148643563419238970787394767877066751797109654245130174918690245955007805485577569134434641218646592970608631872345092869806793437693551787582089726505259248601124709056234025369840608629907428467783301673859286373114454585587858861825200086257366239663496751138989319200715269927400658337171040818243164305029814351828209224727535825216419447015196083447506697683998054957275341089001467831431677042700403013638328069350839037731046589704623615197781629980124205972841610715602973575871162818346290842619411338254417729930117446885659955546531474266031683285363704599327149453627631107728456816506476324574974170321881315153450427630420867972214886271594104312325698974366595560477387021876728604127921246228008973315862887957267193589030051705895103336177299642442191576591723870828022457943851887871673134518502089878580823851241548474457491414654951722151549953801882912076352695548654374280865492409745929337508196414872600819007350414228922367399686101541599537078790231818047859294600466141911127834334392366651689194406771065786074152166555760651113886820529052298545872422207667804432026658168244393274381850403012221694639838439145470382875681977206160850295957624107585979159306736834110363821503920783632657220357393689708994255450739128599741410183600343724351068193596877398083358214382014067014832600043272426850312789534518457831894076841715172944271865714996411014837256845528464092776681123688368195245953661582222775066143954099501680761703837444591425472643618258713905237480450609957792439718612054071442934947703506785910227653014173512081235074356374162030781758068176676969723278979779584383072605907610992858073165236151204630627895468811501588281885311878949037429211402888474351907950343080387887583632705744455139436567228642266897031777880745493264265160877372999965798102667564601550918111520561485485303209303747094166308147863250745089868803893940931790459534306523401095578553599827320708406476824576745329566921763024014236489443846262296800910732547151983396207560148261344776488910306347105450565957952791134114084259208064486544137402067207721231017477973809221482269507151853689861952006778206731666606265794810191778434536399221331371800310643562291446844950717773913145809435642916417752621987413191269627757889492804497062313412721777229247937724407913071197575167373506970685725884424415352338307035928215295159945107924395421003397699692258418517284468936849202447641522251796867949986192881635174976554084894341064640456696001865536965351073278516613876948827672492597488306735248652342644387379458287883572464979077013910906711256390125392632141211783934861392127203760334726474175915609914086086659035263959771313114143014646574544569337896083814545033448375698231102410920545755215809526475226979138366817260433353761492720902250217318357188226955492498668872318380304253288899339900549044543692732189555657537059062677346647816409985336542871584204572148540972605191148380637966196139371358917618659189200620861995355953336509038361967182698965477401614821187548684624119044397154168065244560292335630271969143402390673736127004019017793931935441554671666940116634931976793948081300510883039241079651015688178998812503002894666596150993559931896056163269771281467060061637648156192645485698585518327224819786096972418662417381410438926197127617902794839119439320651390710272702233229539782576607306965645267159253604494882258767780052993510343725352049839896867414286013567265996549243501158998242251341335037220639844231960833029235860339762625660216845233167901067149354616006465741936395158453489817118680536852627386732238334171571421688267842444612965830901885960816523707420518180871605535211659674856439736291861862057329681333382641168544177539814411199785230697248395694829322048475500941801904259862850002966795911055722914550453872098835612060228599318060117147228467578708292126263057755823595306807386238582325734798440294546793003071352140065385351001805057378373084685453290259558912343264666558426319432963073751758483005706408538979750320666088929862149880781738044285663245659552065395302352300251548915602008958876679537133604836785274323274300626224528098732574298563147717252019619203147339757602358333621733285876884314387985252395282411900276833097671301646305482973512897270012481872945659687508996871999470861500172129560525290384618016237468691815527039048210983188738650429655911865165977718893574082546004631052661132073777600338277580920465664182815990725856965076032931670461484545929616040100963379032392156350931479421370269241691275307271535105074574989558140250732812622956023962580632343356545347027536094242353715923801500302843822679174983706856507775363600712669578443469580485156780993142432524142375407369692077920535252418360669932603300916911645586531083071371714771377027174815296955029030488758600428450629528748194776304761694401986371315111211710379130703612442016367268118149605771987648050133236221504171197310300676687116989737421486016699992640233418986788350007642410998744028464503741134589636771002670482243289146795464301646692478791924176680946534553476578759593550963408215526360908421943898380547653149709425428248746541463979324532396720350118707549735728823151079219055133037761832605750985804607699803777501418216790295202810683903281844899661125151839656052166626015541967263528440195744117154195378791996283305107646780463059843904433987148013880051305264807047385576347203530641365269019065416451143123221565461849573238934368328691775616547072148819410964830287747111355505018677480194893046209175183518447219329564285713459909408485368849898398187565550391630186417740385861326769070713420118468359257538488797817089671813116849930915803533905745845044286311746417133227485211074016008384423609343503924662769440435992367947901202791538287910807540873803125964456189141011875467274767635101653084214396853406361766239236268571579821028082877932713713014355170057086781990087011133354575831748632255202442219472951327963144308032624417010070434773473387627621415451781352720531328326631746591665584673889285248493529411986972699962376047980134592571648933275603501386296350406795954769731014997888105336862813794183324144295316904365442666421493736953963718138245347752518408037317664570093451220938890655169675852740037193913428836891499158270555139201064733472803469216398979080962117362094039123115612042646148904894791200368301547256063421522170445943888288610369819605473593387214721249955752357980562407153515185360845744767460362983208709269255780143285800834175416751106246805090523113243543300975722522045617598442750211024774662964708540219489408910699213235821362251549735723224292054248626733827244529958247212060747246046494331985208821558735274626811937631292101725863873370124413514361673106781007266874859201088825109129232868164402684690150115860056001867920368849062623883047940284865947011257145727020442776882186812005265800951903805890390621289994610176019522399933270283223660540677804470803251250639594625781109299847972542692937659057098656018603656195428221429468279834838157160708698940558585946925741040761909303141250229876277838587112533261166963671040469318549436114551746431158287627422733237357560893931701119104798858413977475154188361263686887257247731819956301448711092445320475722883940177776844307317680989513519105623371795704928626055563432065464146498030316656036784161679997433940700646060653198450769506208443332195167683258266370514324931011083627265543866488917503545857221031033368833344694024110621797804067782119981200581981946442782673725364882403243219524421719466782078872977969449911171080242493111053898383467654573217813269470233295587844793031058453049317565515307899041630509536947780931360921201857047526995005155380119981010330630533161247181678158261473995756595301717044750354869658689129890022307655337751344558181414589928391452754282077853983750569321114188461001907762583806757829748273175272638860600456579771314023132275619905242374571754224548330341253995372747332671062180463278439763860367849675028946207436077203639664983943919371037216909279155479491357722493155926929833013976279697565647997930107239907166821652989470576746747060654929893372053902087780498398084185512251932060700526302469073654775232703292174057460166011481721639274617530882804422242754610506797656713888745489702098000895311768862885005062027316512433977966912222697142519353323480495040218632952251726751675446665608077546316842198784713677361889208095046216694864535905744170027975065316535070104439653719583566983593536464535887998797596056281915350760147343949636682823610368421055375638541330565399980134464463532162533814931219355610139903708412257962542326332317518566756680137092168139790655491669357836025341620471534501834324043830402393893287279651715704340922077409528469492545506443030764777835493054250653756230585934672193534629536571490176888360112826808087095314262308543099078808838426317304353490208247480098430783148166158545580452559560818877397795923019971588663604420409259165877406065393747294629025478148089647389852058365192424874786971497699849556028867758565477385408312445848873899317390151124617686111286961722019875174102049202072261516679656826503303952413271458556775355209688416555535329515142226953740089500482636333081980944000123094138598383741422052811823443831895358632643450781876902271610591464569094258201107213225210712770357816967083497688450394297570968652213266399094542006340391317313347843275543709653567184666036013126691646183713398254000109006449062257515511086845441118455221006986877164391084213721431129371304389072407453168280857158987590629804722614609880991744561704148734087185467373870005828755001253149882783033651712472701454550488037366190548011952404205846026772183174838948601020742321748319375158806269562000097381478678425155285283310149535295734629116473137407458783073950379589471659653365535980923204138234069088887131627794616568665473675735055364779947653156028995967854011094125328633137783577451063071789742751471614338294457070455536627496434374944213399234956279284436399188623688999324403696354936726347681866686344711002891099979949367065568727167379909312396674813571036517122095408823176208866747338746032299077120097009759006897814299609948325603121810289408211744893230618119630953624269640990639758990057932568406742679414389293021700750547301695559023661176349498154231852131084346701717355540689160451462602852550572022338620025097670306831804230591255049376729600486872949305901640242946644581163488474360453876848261640090789729642944760004526102756692749852949521831409674192976783288709891825266903420824878043958377995482544713194363393612407573974200990203893937769174539282971551948725150620844079817861985952725117631505527372016990175417278947945540018525779046943423062145366579016981515301059387116239691858290147991107745164601039420116360142386545892471274014165831858560058869135249118566485099160169039430686596853333776595688729137560644957014813415435803501281953898648578809756360800877417538917927480486133656023631297435854662157940529448478104924730432850809235391079482534735019071040054007885319993618207990701577181243939785858495487068011280118170281779854412849112180400004013338718483378367254600827631382733978264216377708849709525313114809747895116537508763127202119742299936366157561338121004766173401792899818617802229286534372640132242717597815870800778523497158447736494761112954066459928928144069823325554382656827601356949595957493215075224409656737646982256653379419187593499787720647588791170101868120713422309181958719964850305597727140887313283325560510159352922583745077438603698339573627135292811141821043561034737610771637364383409023909113740895830939424487325289330421026857427456901192145582413160642308719805589233101707054748198439325215172407655781117288823786918429455776207561107680337870756855128124677491565418909567582364623073512914522980427449415539045494919219548708763584795700018236491754582283454060823636912040947237074394795919090115217309241628983198437523189465400490197997758091163007509555129926969734462140214169043032751742266570039993459195727581402747302998868651389528033381754629120159951220569407419736900056895378685497197221575236320038097839422002443336580059853135719383328514736797432051117706444287933545551678666392533378424483152263970099096345207800433305739446016241420914962965023310090524257448465708837576038578770041160110053497622689539054597125613500807749199367725725048970892862035195518616433858227723509871426502367063404655965154076743633123569403567816064405606605947900441158518883470253661751894891667786300080710613099645335833606327977508633401671230283848775589620625170043051800986838152028166808830257880201799415304923603359951909338720371847962173130684971946423920213325933658224057321132988613479536235825111252379182118537696034068513671398339815624910545017112379646991770046462301722138441497305146532722334576661771652641599629372482390016280963889116785511044854735080686451091306055319946687303761160396869351091551044315437717585553191998187918718742442976889996140177085276420190888128169243659615655100849136714768160864440894089237213858695026808796773360152667556250230313095666234776082248207310479243037952508250382839903427402041150026133588002345524585141580545942357015350868065590241598203886693413686768117265682085773675922388901366930604827269608286751285037605229463335342334274047194863937065494175540595106675046681323315661254598593785687406735144771956657493772620064329002109409912568230585336895352325495453210392619413009981604752099892346804986264020498360260431532779090026469708891561362094552645125254589986187100009929889851922812669178682311263109906185998277162173389595042366975233893048318039554442434360949543218485381897429963329918481108850730868207058009346279478136716964556626358337438501535131147847468586228638341566474699849252912519216525367658688426853437283102639824902298865390043218894821513673273224572292288152597411788103039673718844260436263662308083934737324172239490474130782652232563934932004659377545158429036348288915214148109330314856872091003679030872233130030773290971148621634657730389994148350173950841712020555692343843734935921086080499870837518453655751508713307167425517236354020992658116457678568524611434092572992733052632766922598533178808838353780497152474439645066802248580710912752360370265915683789927335959248774293055781305434817756730564036228642874873841662009053220058403099860154483003300809778681471391656542330819606310510476118068329643869412973228871233975555027204517071366866399782582116022354496923204408502733375554571764377277276877098414000449180483647894361395373509779770898653998849475704670690837752170372657565830109614507013636950918662142775251764425122268967654551206133220452739808460786086321687612784301281053398393978233412752536503454351481206166461005749360849620417800612644908438958507702096861657977547714878391540560402356308702164913104135878047849615627590615247130257446308772820818926357816540356791826542412171805752930080742782930254416290965270552575924516592532278055112190035455668601677426601701118352532156782389236126016632912453339309304364625275767750741338376544013754177696091241870055221810779330344756605004638035539109874710858865108077471361795573107156065757757097271623764887846045980818142020932222822901375361347534119006815343844167344238731309845346606118188493619297959746182590099319061560485099384879926546288367000217003847903117188253047009076462099754532579530165919273292608907326699072617514080150944383939296218671439875487492279652201000982475734321779584094331865276124584624239353856393887527660648586611173441776495774540942214158320014816921246430087960064309964731453684723592567925524309150825599049791797345274860874205383125667550425271253197021795495795738523786799793562337388781098473890361659869701539182328272949800129596160798201787221901744761309674477546177459437253945453027337027768964549092316990325423508924546355624207701852380831112244731445188169385155071810178339893561179409837915803385878186624872273049789354066532719455725824528797732714820279454192767769649163347654344038631216074890498148214425012682970653387218217750681636863305316098561092760356369091430084262333520418871816317497685560653469781476086082244668548698974644245799646262945337723702643152221012970745433887901356180958341990600057038624750896652928919999004572033707298162511570630882983775152172170044000413858762239136374959272467012705635931387371152696408445548052153943175830690306661117616033346072511750789830335777789969295412688212561500025783049981821331371792422101278938653023290412346288665950533479623772832847861820695988945875588518696025344556087909497843336717163161657362510653733259192039886446892092500579879566286935493267515572272262916661003261030743496511067895960126046642421007042836429949516990247569215170957379384212050411509018188434409528798173783333762463741493518290842600006540912505502802494828845165626003760498927361937255956009576628885428204609931371150308900950988731965297501989193276563412871376614088388043025185295930925507483551183715080744008600839599768355932679629049538244127664169096863558450843574039027166625398718143897995256781501628048353990422437960041170872021232485455985709237733780381099133322927992696128962206201659798529176088800280239510758661125863742502596711446438826272278212557797328277879504350895243973366018769743973537554760725752807485252979548921109563777207124558026478313992430146968314480083778898636556545466179350367846714793119809877829755552943663158276531317934067367468092179323164113952847039146079373341822912418706983042404007961900655532750545265801582713442997315287530676991387359466512950261461595038935179145840564557188530672337547988956122227764785236070730890105643689812511843662031053102250655712769076857022004766537149543157174317147972993076565546116709491734661190349146744291531811970623828541616440354537471070062539176501220787738400033150260717485192802409330886009461570637656918605148455449167656216723254889818142305920078560698174016151626955807134637500057256176902873475954540572282994181921912213381027917140163344466828258163456734279330453492571472248397383116890446742283557343953075462194338524146838490025299790612627027201164934975637145006481157582429770053490521308720875366034800119356697741522140519878167602084947659810933882410535528550062329393951886759817880464009538662962079479806534269310083688032325366660732202722048611466162594414781807078354143596182115807391939862295811439962884859817697786102546763105901186994174080622379198851614955806562481361550764256309448831910572411025714583820668714997454019560499920071007649287168570375173319663873524252103685004692748298882253003090782987401698795295850020010824210255331247826278587980097635827003010809950797138122569149807873425019513722799877898162275275995974179006942551065311946851763987101493444670913003956044772737023309409435350784793388606154871306533114298613054374362583278253450168378746507356140369649114232414781469279487667650223975544062570838842415102211619200669456527679217630904191125518310830636722905473487102964734256623303872241006912769118578423138273678794543419197451029578643085677521828641190342210221204189020427700026737444274267076117463317823425909888104452384621677312370963326082380040456019978074452972662135864670597852176262519492603144590602030457299724958713141234521675770111007263997125330313396588241998760246394736985632433209441119870129997919419684169432298430810281102382471885169477600828971401262012453265140416940210979057420248705866894207906560493574331273337048821380918770892820927927890391976214032109186879719391520758200133873398368984332107799436209990209036333878852586875434713661103320194845563577640839141756968925187175679216146596880542421316753822435817934270501715224862307545474317298809451727253667258434518664522916923312278045468666929873449383012796307831649056685476973497658483333366360551418145216693266081806951650080428068939260594079688946934005815607667111823097172407724268389990494134794080547557244521542438588542721239032132738605195785190356660538181322075423540357816915490324890977053560736365178741084964134867210500290328050887792992289949675210275263297918175923002856749427230433228380442791580100083390374856258649103726381388690864598759334840898754826711641229134998929157992929081644994094348968163375893822616150174541761155387038356478637995166173733202303632953439693667680366277973994924736919349406357289713820189108548821917738998891031476650056897528812906591861197239827047729725600988264775371543543202294122671641510736122867452736555960231470652806249881560646066186820240938322705107280294355837676323441444759156052191006756593468424246241811764307881529627139738763610114026099624558258045701563049784563401188677244943847636882092867467448498915868580704604920746470605224220301436502147752774983252349214920847421299690023722275628379980113758380388817668527112216494827217000530412388630404866968489903337657902157649456604622205271566592734082489173245004212093933017926277923338420967895102646809497559229472862999364935468713486632090793058401292016326678715666484378310105977597925156037296326982454973639723206067782598968132253018545304218184432748846227323834146627967393485944631293788511243052865873306950797044382565442078236461387543151774380484031500645048811985726524051037840003115260308439510412065592792396818495548640175669256774844090083118676177105475355633891600868420867077605857782486842526353066484544273830967582215127840061979806297593701975274380455025798408716774623691844990476671841489209346125107369835931427599933077086719274268541655125873268851621158038225937086566984079654707175399112095054108553819860759850866006777454079935355568802946577998508936209918864780117711413949102514194774856634082209386494178446634050421015021022228232621505298117308616294374409358747505546498427813888308295124898063030035418820279440382422210315889856737134974536341410743825485274160330397976792012629482534855023537706561363021150051136747047018008302683309971188725153872916751554491621727310651811453944969148920108719348622034859872200302914426049126550912151745129278593467085796665914203014138371290233197599066198338098678331856867182789359325274768740696787022063614481233037484395476813544742797648562394606622110871099673056888881315833382079699991433327560903299712036788005779607471241914836997396674081172547994439352816737334902980597608524202583614603953289050904576766533527433495464147427019978511616426082014090857426623705211274299909970387417417780661475393962503350116631140122252978598579186217591789278931918647963853842885731832372455163852358505115939709234831399762303338569585459774720918209108464045278607248930612654688303946012730607004190735573127707736943030751445335123053060138889119955279103753704842419085321090210877652488946127129025429065421211425833356282172839403145456436017000258360151348346689676604215350795912228840406619805234729336463678069052412618283068279015040887050016052786110688316771944933345968298823204606299451411215000034465024516111264010627219015706167947765425541620773492455173251854820468699181428939166036422079246102778989851659125715096932507135850188400844687328887709990355356431464511472754688864688470409795339876265386262831862623861216159615069655070749970391129163230026690697810773479723603818210760120615437854624114231849185252371504864141070064620038978245834032506945693297212750799957822439952388499498783902080939364773868151643798886037031157061088843885781060857992366112239312156505453400053499541382469319439218468426998310303365233002659543812042015759023797100983549961121590972277680739773345578056876739017903365030645872836220685711815087445756355136923764358067787233849013475009213307740805681391290913837053768641856592693863528358757397230371790684445087121426207331861295668204033457815831727243232681793544361242615392560399443835082197319191231965517226873646488243955597560346762577928459865709937895045475733906483349688991201371284372500447859263380247120524188026851828222281841654602352165240498051340987518477754169001649209819819970332270640280022788923683440805712112268628626070499104898365621225208700208578676725238455296090496035960552668156286658103628868429340219768052829883810509451555683566900494811736608261244376862946185551613412560448782753637787614454873081996654585140408374757189805526625274686857014424413396417049501293939167662403480993105120070548795105620630036031673459876134696426006319517239712001733565852312118761652896627627359554592752536202104299737721036043443694152913536584613495649652706425988275837686290230231613915710463880227182837447729862006598981578250244629085564482976168845898290950778224680950397318525672143159981531021784809856489591938054932031400100495652552763057739152315567037949401949074395913413652372904875282628924844270409384080814044255017247097902109418379019339754891928698279999901153519953963091927270471924968436172976284197974250070874612840620336062865643238642011116458420061578375887131283644831438405302529455335360319928849448334060333963868339706336035632501181227213178147349030079364695232443868726365153080757773247250065764217068138887062100136725389666128835739269025532467291182266156062143027535035217957894031066215178709463185782677226204150868728792666014800590031950479507812303188687507347450068022550219920012457397350262564649970871660684595598314279605024860793740271113461794642278039710427083236631158967614043695249654417317882496519338196770989204503621296578541724398092919767863433751519448217362183650388979010311282104575001360635772077889133711677796928473284189068978730320951909188927016015927058076277380713502094047577839362696179724250548275146184314883843217390656929693602588326446553965726846084585592482171448522012726741330864335151941524293913929144531618098966731682787472700422811760349921987148587154603314501728391456348193497929487760864395262230568967645256446570088830522751490069266512360513668474399081260596396931837421833752877080034633279421804677690668864740818906317574880344191415784789842906392498164772188479270662201720928863772805829748071663197854154881692975438305124649327461879954740738285079860150353594372796308691783629569050410743185248905322859375123148100143871454150881136285794594715141162647662617320312827833698522283413107825717447957525288649977227798604702046203588224356831725678790574596158265492752274871466645115717336238982436762811027415398128571375216603689310430579383223445082542745074682223887241234744978947995497506502017636838164646379571755449505921335389954270148098690475354859621187929824607710038780173186475859678989705533195491582800198145517565793681919333947349446174485686215279551863700000054662330397116156874426325810227909391790809052007529310646698314170445204255271318535376699811067161961748785760566744253190184943590311751628823936208527022490301865054386717274724986002613493484704947070355009207014805190536796470077373751728352111246491831765470768701077127069184249749342303234481035890445058229764192358407635248317360633856174026362845734860812612464566014944184421626100955996704115644247087613131852616212284626546733535692090447914832184317153177940123516922463812672082488881960907728557830612850204071719416256314807037327111262040155475991263301208223594200521259212245190717628496273408622199994047708674717274653333742859778638010902765937409632921756487333498640052270013729720951102331576603344366691978389506464311974232455457818947088330121126091346508709038176020138488363637272530248402052599687878754772410568102238663385816470740120132562151569001101317599895151248370850776370830829846732084667721786883246330207893741230394290872655820074909137848749633218283724701085870404628856063058051609395404424749355754943164304798552947642009393231875147362476497561796957824181049929305777934749226996021707019735839775317321503410924897512300179252740797572026655234875223700025831010010872242218521538058987288685113638277147287626667705923932547620611721698972455443282530293668785569808335187859643527715044736062380288785829805294698000983159036935238849863746562049406102580671476968652862761622729468940848285694864487715788687943310561072300478042536918073927429128490672579241980580043701970109630050266633575660904788745485072205115218492239930439831463663749911535326078191345837942446157777908797709695644492893922556457470640698972443982097964833067189153924759125134806313629060818137888251106296950243022104967815952678922009724286512262740972925790189117371939797902854301986383831605831247409385378969067685416268777958234540625449474167800021825169517949129678731854381179494026703528010762002741465382008949497198935074953660273975496075740624224859057459600433768187033490984479897769653103595799076147554739217437287078276744641819122996704442765870288889509152978903692293756500096285431021563562161533151097693284624141066860881822206829329235699518282339021090574342902609903086467085013519409581479793300431594246574809713331717737670801482191946670456755854297574151111000562144707935295874680361202915954658799328631630890633628089137315720193962575749273744618584511113286975988275767283983432569772424715036128447841392153234347314764172344915417610727971291955348414233588095481136248942636236874306393903255572357139430078079204836483236833911833686549220437731440061938364722780823808267512904505328286066106348859223500063492619935032176812534108667549960507184694301197623447979842582514896412580833199710417452218489531129120671792215282923211065639309949935529792378386193783483229132160989062141188824688518736470161179830780740920518789793971888522805655802007624011043970797542277784674808144660451448976899828305054689557811060997029443604536216032866988548373112326618483631203212354846998638636634846053253695056655398051683725907170782263391196492541249417837846861694818460041120212554142206767993985484387400527053340233013826285461216105342891381170849634814098212683670493689447339427994776833511666050239350301673683999683434842960793821055538563939559273311032028637875206753557429738542583707314681015305752068740951940352930073414632803520166658206555713705790862143829785608441722187335132220302338161114573862824412696335707845390695830143915374011570091791973022886452614896063940811163640894925155235552665718765507344006234378182106691173999163048966202021034285148139132123068500798393630808626404337244652376952310462939513358797832405517500630988499957199192684806908750555309990173322923122046083419712834295358744760847276100073725873608658428903958648732236916509057444426943970511431313938987193710398241662463507854399683745176225544952662240298950400417609857901608035779433920315782775804243115750682720177833050261917927576425352872714604249436099059645621674215103579854639207477343483362014090034586675483074882633804645123264792474434774032963810588518318699698252982572497632536808899415539783107847550195035979188324736558534711306929136568821030122680304365992091573278510150821870077051727684667404737119347918801768673120579811104282235623063321877145480554263478264869272793484059629839049025979993341887836302470375458929929659256496718848816857528357107377426440223395201825902320106215678381841820891323055172779307194891682472524977816430774189806616439940004416337311041096376133571465593260812907226064948265281186181296409401238651090357240855893269330355355452328455434794739808146211965172627169254449323333493537202729713314687693489574191077307452973600227268325983294632673293728648426834423704547841973252041348573749206987200084160480205969395729078048780141496964148017780502438183078079359989553781514990358165893685060656992308285899382273785292346044575962353210796023694394191932778436056530765980319954806800166468480168529689674022118359511158657141879216798050266716050619683351092101565483487725161888126546831706167507766172538969726474354537572592971260012759038722070015752083236773968889664502765196790153651489055693907564299309574161310704722478277471730130795604882645985175063461031102585153657189237861881483239524589261803411559872155390152988215171005214200089980992793945782832371557311862947021727866215994159786878556656748168329393687752599164309387360057322758728472452585358368048957444461431936241357490338615533836439413754540783507492546364002998402703693268031916399194145845496130151711921688345964379634992478920892267932935565610419269733932676995199338532810481308686031209784521601896719242759170973470655325328462605524641284272641169709446206509986566475324603379976262477191024980176717886917920306395019591222679380901727132345116378706071548205524300559964657855186681257651028591192831231135249672144401475858049894012936302729019502552338193589162960816515825049829672453887636148841114793729164212088511921949523031755035970993490788843053013756303653563304587735945878306357007753521676634398693738500321315459561174978220140826444394803761898491928782183343647262161543653576963421296559637557674617661803299493012268847850170891061725707514628035149553517006631826275949697467176250592022281772104354234400191810871414722433553867672970559938795489869224338810319866935916686063583364370977975895929727407448841294012584357647875161901142553965963681649743748142827162249429463813451605897947629506719228791288758133429287410268303813827363080388397691942366218761607250983080378606584350800453655535611836970919672426637454340621427916805621224026971772952720542054231267354390115583801140315341396630015196039655051226856206896878398736795695700093289846646909806452380594251404245547230693362683711112203728470910400241792289022087351748730038737775911395503924009956363054780680973796438923775304317437567376300140979346511970169597548046394092096005355688239005630788906215172161691867069402440465617595423975310786395454620897018033103610754428925720092642075205254311808539524905148296703209170365336533526839459234442505682071678859695959191802997089914364754903155541169574371303936220807160384052587422212046456639073016822555581082069017221289952990122437805919180711634962325037134282789947416198624826120331296847917534817515643347725605212461400656531829047727996906836977872484260711170228971782378793502564251402563496301583465801849758637343731939564702568162708014509452096506751055521301705330946411965244605050744032223678181757385153134071917469742192724872805726913908864026046505940320886778135928801369830821794650291521857772653423139377217169303942388894132358949316837207880940006848945328459691243975960468274129395328759962939997132215666619747904676607903135083351357592365888487410441022087277111412205156543176734889109839837595374326632826724457138029558850632548601320253119441757577508501184866954982862763269552924609161757552775720850460827724464474907649284835002711425551897625986788520084090555212469062668495600431306527530140286899684223390843076985934053907713027706655688493100407191499944668727101407314640679016656047252735915433006918206014930701557515279013739494125794019748728108069866475742140731823902202158764118118494896712466102828414500330688035545646189915016383677061024881858943503315688182023516760355897778460864572180849720480978415164087734501706237141455627624720111321196709133307255653318403897907829533815288913111515600107667460717933097045804676222063404703921021792544481998621823730151773399142535892616042880455441756133572638686834040080072478740995085794843212334473157640724185402245576532417643863232831717626015750023709891966080636259651932024439258926442268037937087322522129565641290900472585221714314185093229392504672728030298159683894950409885161470598239379038738095652565971180525312657372649065610153665039008052666102726961281249486211831878743356485146409842736966121963555600231715189356472986559979206912101256258506583694919118511227822510614684102048884774157968052514232382693385018301685674530967272145746339934473076351479052806294445990724960325881019065471010687861218646228427077950273549511486448716534726256537685611342080078523428125110515581082551091136812872898804519315405203042769699744793352099058559795033270762440423774918224536507375304170923093282365004470158476096477689166031965652777114965470949160823318420012316582583139255721967594070348711712453480062699480669665951854164494822487111144236774886171778364217856468238854797274252627157039379339641498457066140728653014970282643885747021200247782523271611857489744404027988831862101607271041883272155044177216999215627632177460893069539082938583003902934407637060086050817734308247664274279361905883811535227101201642077353719632925331439745292106786544890859791121364612348517980219511297953563912445352387910598264915670130493163640931105323676227513866057980565086493064013121602417958014555743096842048651341734376350390521780685673063866033091469215850607116349727018387110767121108996566552775097327188010079448481441108935959627544091248890447257190926064576328880683616471980791548777084270430967032704675852400640246781048606505458854564006877274142486018229235774934274510683683997387359867620557597934680355430703896060385524765117384499967083785920347695977896249890185306994932444512341249439349277221638468217107492155181051317748959152060775982165568279936143022153416384391611303356568016238492740210672901280916049013313995902590746427552685538628135976979832674023327476678044713846482905975251375276854244922887515096638363481745201890792611814233554061719232569499735152206353648629149789711253489814061427537778695548985066750351286373028459035790309727912857514440484443483388722648126178590647072471645984383069749975089871791363350293713592837990408494750205862803906830198673033001832864635407721933061675357215129229565846166087276808472850123930080859797383018470475015722451593800190530781373135036365594406767177733942845279335583195828308108392122772793144794867687680182589828115135632060629696841336471155886752968475644393591690337998362404073668519413946088399247919587679099525318507760401048641398421649563722893621875586907772599970009388761647944014276272576040023040651646768409767160322475583929348171336362980929209713648786137473735509843751379906680598124245005871787891023636463752059205216621613040898573007864471651166206400641985000402279919178529507770222174149520931801228913364999482591319527294380417048808426781685702395163417496448108712327370097084710580759358701492503383631273760562595301721755091063643027184119125813490084641597011702847176464874122104028198399956179420876554805861080181054474855659973991542435629013978245215019835036746012113110621681173387497726263731240137256056282099799676808310069871664147042286319089872563859057567980596284060963193848727506920217878986498994759226565682054421215507668888619222608898868031744361429121118315535776635150032230324974017824216594595376189059261081271777678580398001320142795512209978740675067690794153626241677996522192094454089406490157240466281434136470230027265266973654885797098674614082910371120008377566995792502086074382716019236118843941232560310270469660657528607933630660821175433765374835550966116353631720488842613594018502527381980651007391494029032684485421470041962586554307549778047138612748672678016424410330080952240478559339501892241378320692100988701463367990297326239886280239734483521859631446246030792894796268069594557331831392649988620137496009791484893799248730136136520058658123591061817702543191497489051965743689001610395363295204213099008650230867975866114765737044967755677121100958984348797437530382507950600005850200647232882467167703470247512742969195934929191034412442367485945195322223843792484288979550556793370447725647210390184480429564437153200405336391392905019148145468866614865738177397466476065368521373591607736529035848134927398012505587555477869670148806982886560166981629688382505893595731634994556359145963172859917502364840206977869963653847360988531409007222659344944687582834335799669552674592010393373988956216392498585954169986171119263694708336605039999220016672743778459221335170075984315777509963654357150159326374731274927783419832606261136931376999641187197456045047098094168410560350488151063862377627020928413666965653030292064937767930173788571712577790658192183103872098895483395274118451427300435658789298183670249764919437791435162324289859144148311949740016082037480276401696429635361015422631639210928431749065493717165658787154653193954592013089055090896231086591580599962469284446625570511310666910696200810412674514535466087921325246621026155500202387537725656305377168126398352811843561826229284947146860414150854375971711466325383477026876404809789266773346273612855091835459910398678454658555823099303199920685591410129691824816281985054190523189046262294908620938422376719585842595849115322613365471388830949890997183921280708757555151156651480904477234944123157040261264665371421090487563051110007034104907400732912563674044887196673874462962412246791926457367989705257872169151013981167051747641219457941458417916416664406094343192605650713705448053544987757750551181491656932655549465742730177436462873009412371445402546820328822034941246158486190721571801281425489074941708137243924215709345383435627475189147924881453819264103649212159141544195931137120538555233163288160187663774680776077890567123457935129125110362200549957165930766535085736290841358047338189360119893351982707054894049105842219147680660401206048043807433163832638163022243466644177746990093124089778770535678080674833420919968530275456681284993723950709997546026657557873197398396521810260245618451742854552973454539326991109070493058215434249615687935577360456058568138381933450977978201128810188013238429233116517290783139348927262297215154888879523592917304405197824979092617236484240015699754506807848212584455926197889944993642090604709854439204357888498689250554372752504431229440524791549137913175733468739109589126311384201159631946869981761347066823722154907460593618082262752945509102628823940573540000264555591142699813270446734570948338613889586094105068051420595929943422208890109937483846014617429956133280889816822110935028236884900344966305594309429292832011617126648694330110433158971795624907640774640368771175405346185224006888215278803575003176717751386034089303521310428278196970268539222663495747086803449284421153248518437547825612252962669776604919026944452661991953637718383389046677220268743571993896087646150023887775229407413260198359459446561363663450540034741241230293135430301853164329714929059777611501885906482446044769367140241543448317279971922964517323211816028289611969141013202997808559408018443015772216051109862636123624105602069943805398460051021514316741561227199665642205782728812209912217564246800570957061192031193260234792370195262275661510295440110255060146290884234453594435737949984795583311671288924268079772887289466714994664211853018495544487922568790848140440508786583230272498806296740011787028709960736448627798723414983921918293731708643685542063163812565122225806702101702878770861608372216970987090012110715157893152902700981260547829318123437704147561851261646452036080497186401603259758999151576608164808417346628113651397434840531458779749550845857566220689520018871490325040309397048817762736980536233493048531283401892947208641915613722284713215236371868191954833068838897522255499733541332842512168014332912458346724797841673858869703806365321960320147266385113563855227497825522147237549182209271363487994465847677331822267623453674200410783304863640553979104128207613459841354540124668843896309843901481360000098759696987349820075562802104732987593840523278709354727253875421919065999103252434336113610403713653955507048427289660265751370089086693561131565987451135363558739512247928175765011117963092734185910425136416793502422507070437957357800216942343512420262991124819710280034987825155026389090368840044459730480802191804339070696227917663328383015550793478669318815341348625599388653536151683621101030575994162942084093747688795602426959314969241753284464767091634703520278103307725729473657496852799220237477254723463816157681928907041662263791772786069201259658875610440466015184151366312092643672496919761229699329363696718463339010268305290944354363743368292556191205085694240607629427630242045986883979937019950927154452362780591068614140731089816688223818531517944143320375054289685058499917676877057158518120379327663692184301204610424172675328059230308948713388884223020640851787126734929548271078927224732240815926275720425504420065940353432180510552924365198173182919948718012656665567133712152663862117143896372906117034138149410468784499529433669748057531977002035436580114369553052080941046389368738628156782162655612901539791801660996922444459616546724554933977514722541759387506312851546324011258920947043512395343147625504164332019082488003705438828762984989408994945663371282613695972153413758148075997439975001241744977680455051308263157765737481775857832493084833246225737061548987931739952279788947202515279138716697044552416345570153220430742012703372412923688422530333912277965082957810681347408108191719055870616457880276953132506199326346944745718131775653572356873725515863306075437483805593924145199602465656484702359317845413117162056040987680254129882026546022331952029719172547869465354682547696390204973726294472861232118611220099723663832153303387013934106777825554110590409582493466072183648481760268782994327908680902197516760220063711396670642228851600889841212350159144686940900563011801288567598583819768717380907978826359448165987667585441949977247172840318508160822946612084151056621589647872603788852565705091512264173699844686361550520912087349717770770902068356610390619697537643555732490932744315334019343591613291841139300548520411414371688772954915681112768241859750010997741993942647596089600551680069121113559918941193554044276046204599879597576199702990113056715246497447226938819729627410689846806677333077191272157787803355360650502047862066685836437024547527549186758965015610051271278752691977267093705524485829988505604970563882129080572698630262838822674296466689648095034145043769858836274955350747816199257554090010860705676899889880674834535883175119984435324834760315833920498043989792119410365041285895448721220779526943184288884542929242592976235433480333067784263152171551447533480666485002500187024613567174002679456775375674151369569583333992155767902695180632513260962504403781661283860106581511877741624418870473301486208836223949687285533608088662546376601574310829758592573220017930323616403594146000328231322774208188647236398958355194685226401715422568830872293222341019272569505905525359644909930098223413755411204560446555474202354013938797746499227858705240155612465537548416622887852799987299450678868483506772188278282042426953135677054296747322512888262325012735072864538911716277086151012478627109849693035840221724579207304780884936467521976476442278517693156276976936868957711869295203042673261853367948110312458390617343980085197446490847419374085140796736347007462497333978163588184583347602826737556568904184096078805239461487633417043065934343928155783842506532407443591222362031640973297058894290780967195242287620217152783858312398003279622140705785626947187412864677026206688325314704028951548961200515387047592233095689268566088878578731058464320023505503837833459267521766761858082362809170404395319274969088653788744204337205269782932187900306003155654840361706570224109274413626938434769124568093759770987614972030660471043849985430773765725374357542276930192472303328752184892024670171933788324240959779041101997255308091378611462343100255774828840499210812679390427954820563644840285687993690532255578748922245800932045306499045296432171909672869458275221943191929845542139367346363596452241281173054262447951808632385873376010324399975833723403184395216791977871784300816752047641976116622077421599144045156496468654656116588274520612703262798301085278087284705080716062731274616095788189135317512476766714486040937004809604397939087594176690154133379994266568938591505910025591893644918053719619012115698010647687682867635475008961881677059288211713802351303120342550643304229971763015477759031417574210912248135277719688752689467592090880095475684090135292109397328124650184132221787131402498816095467632854770399309523032146176271816378939381841944386275076233042594420962736180986937502862826585052621862949535359394291040390551418491131411122360396485045049161614437239498304449602634142115919754085476302630665952750502929339462499168345886075625621397244166254890153561991470349817024913394626217051208687823894693178757950601323347360553208834733248561083625376326108327717543235482705155940682850864729555828185592606546975816219589754425960521957003622575689824550238474663130077271768891167616507919510022116460201912345289043488539490771143469370988774858214140238680300550696307410799001893448971040377944378945717774820803468598720931250989128082582528069290230155594977829829588439559799673859563679369448338952058425062585195729830575216534326451933064124536997574639892394344421907847588787418007412908308210920545071046021195211558159643341981392556365469483199989294629594118937698959341758651093030481411159539397353374145862020615227450920032707391675875477057284226801077251252857753206605673646554407163612110986073362401703634348580770148270779113835839605965228426315617794248599576179578888736839216570661020884958705011801364657491551848091610164434596461721814471339500223826047707410029615960179540705949182046398374736474900259868489010559026229891375640371541857126679259986316367976407819594435814375690980298529682278126737027179215357651980202027797916337510580140473118952135793637915474260032942026841688626220041521566864926444699891462492123642863286281831458811317981218311851764574161814394028930648675249837112324037389624775828748922446854118798784351522748727535776469092468976788953700383497677067120915326833580491720117915476069356426094668817507254797697508246593862074616124527586899920588883534340631484572059507191894436896663168265182071235490628179797029915953586949420800021712626268588163274351013597288936482468879539098324570182341268440851898230794260707786972779906633723647668863278748072492577958655606671436222442826841114940866332999430814156290521135182853784293418968903800060895252078753526193946764637429317969223831380265903036586020129046950038912503106861831854804889763519820391715154164148534496573258737439941650408981238235701901639663966138611191696902267469776233626122289974610363424195819905892531821539040296797822627058257346758903622126688119204194607153410160921139145741752207910357169088718669072579523749688314612117818016443160060153754096936589418762520685953578088838526425994716493152943828000471778775856556371966706865658635628198848088687530696017957825920334569717240007810631544151469643351674502895478322554963064785938417828994854844587294432152065454530309051669799779788385735391062353156266530225468115085460658150331680258042694790714036353400144310225730015821824218928064569594189690648967419988059051871541683638039598814166088535894596663395100355226686505539452613987339040908055432673372132347789765207894888377801766025045904652181646718437759205018242059261757560434466688404339217433077897067236642622469632307966629048707549031071862041034552435506064995249374807895075723720170488464706068361200598823321572609928429867547691414776101557081977714530814176587342347490996840621487224226422993571772356096902201151633067730596582811135403104218592215874267572399554834768547171203891886572217319294000235541590530902416054646760743709436573886292548356731815418513786054928784339150693280849347293082370427016970443600664928897581007038659916358315039448782172655785240242347897194337225888822623954444616553441912279917169294304680886151935310223588590588009450179358268568198288899832735153316683684686461116981750662082191486540115288435835084083757632042396840691243822421294068036287815299626606747446773558262152990889880582436787662729817849445069244138749029523061641752547192312482286683551684801488577392255419054759921135949720603560526486846730698288828484353608218961609914439187375102111221022123910927517904534862032438342906005730588872206649350979228970713225872070063401061297965390278279103112016810214129834739467567794151337431480562419317413567627339517859559651709507728739008986030158819842470893161755389649850920446389892362914280953065052281769111901385782991724415769914949315086941179107111746474479895171810380791441510096308414270157140431464899685281594662597520757181603355311739469048026935611317079939719916639058925252560218870975295147559773630544851621774432185448862751986997881946234089126235063070590062693296288888628123622347137962318786509358647336707671794244156970951961308792522111283396265623584044099759312931149076193763971554506167239499979069701824553591976036264113918197837861106511644621773879846257651789832220556271122977042348647373347592258348864903774335565922045124517319325816510648980333797911995115583779831099253416719291047531609833462859130464916983053932311319551208033493203251024751066213397069623834766047126655067515763730820639285373321082949861807888875466282840743728637291198543638915584425149927320445631240663524283998253166941362433067685229415798773833313982240149564786504742733952904375496224503390366950705812043427944236800100173231688933930781892754387616633566475606479121433974716168979853557538704374779235943686645192319258353683620974731370971547433069925532072388240135417494229859075251284003215935844574277975682250944647217462955054879515891854212935874979239235050326339349934125546604507832291041879879267396751260382096650012820256677243917932758947210543302545760814954088593555787216275068786964278642137575928742259733919986675496970505740829747371137158827379745628744816400998969875003129541756142318144186552486607471458324438593817335078087716255068731350760609877336968727321808641387316332983937132024107087732037293693944745149267745513236520357929021664375544207864837896196047791219287561230039561868829152920995025735090096139621674453823437885047409701569173343062686161007690048622965698000085828447821880421120436931957920799901550514348042181367029126958324584574125085908814595179210611775960625148440299997773789455064490583973258804568133868489011158434981283942965222473529846840253137668489063472409662640766803026532649925260359310962124994738871709470085223659355233935708355251668370120155967399748620099271982363019608483232254307679608008420357864722959598445928646894903202526232332339622343716041187074192782496466565154166403722297204828425242569641813621198623356414418166380364083673778748281563925884776450103462784726558535331595232313867356554831022305163022426113269399667859693239760379246113132406120564327850272821911667767584304021074271074448780130281698653838554815288211602817154106424528110860643286204862498431487077093656864866788572524918497581812314164812983335019834080206344124967858268594004339079877083822754873336940299793459983546911683131767388385973514748139943263178253738968849254950646774332965859863880000628333019676311882215518169105084590711771101241087808866286631506526484646194209826374132182047674350402644715683510840308585604352463558357306808504833413136456954069443640722511327317144844668492889551602776554022946335546920191718574232171447743350296895369840821287147628513883307772830519778651404718891010854859237046340195951271889625640546059477469378736482836451458015072809270579756360572341465878232003985990262968829234216852265087327371852094994083071995122293438488058214338351273344013796008876585456636116072476070761647761606012871856558299648857243793401712949994448632347130408833639258243344318038780054399730482900521564369614340429786907913387650511565657403688849761962654529691388244782382474768526330957991762869004363144427763165740254338437837518713180741401819401215952156089493979166389030057838077825727592509645006239033581127825703786630434654093354481759837481998288563703469452603706126400874815866641073639366325091188596325812127715445670228967639817103550296740626006911205097519524713649110293832162714633026100419541861401314216046315020437232387229489994958753658316811882217603176379211596407860004295710782337371034675003412772522892691811261776407105726183869724954847697314023502452082276434477391056673069875514707607528458015132371673903050333554904871115070413221409204243872689545430537219501766508291977734260809147838318410710892518106704687707296621492801942817093713269199651730888954035634467325786397566397488131361388909504349594557179579233748546666184836549716063012114448082996106680907463363057524723019692906628727263060265641676993004950746624001820177179699234615937291010529364421857196626493709764366843502229770673590043819952918400295702121557232748009995668475793571609551156884616064871063329222304244377399995647968826551976995292873900399571579721552230275831388475333859406387105433584656459399499184767003694121657905213159091425526413143206791644137522617058042480764313639127282565158557653228547702355244015588472972020583613556896625961619479491663981834000314919780710135647816437598840386041241121678035780644306292708234973672585599450120579378086196588334780718833949181430517148968657568264885642742517136022586085212925624042497483229268114346266447907921078165359975318119310404259573371334439089271897168475940509944594510015874982181345217014825883926276574193373884534756462007512556200553955596175342788180101411236814992149137050219336359809074427685913915906473939385808489930804173476437629848775370782352249928168784511539154787624917691598820141933690889417377028466018238987633121608358615662485323481243083983535406446592820755038705691248043202625066518531836109391300790301385577648029717442242751282962089931317690376886373730145824614748036635551286429667639230203886694015970718647435684247822888861695674323852115784552368246278727104228816531181969213478275751541759530278147418087102818969155944155765588997943047446875107089310932784377034570491633426937828511517517160195456903885910376637128872559449370226633328718042376331735941048438986822727065194857304225688832462293119061799005824687410491237558291545322992597989477374177793252490411222052933851185913489864336067743443804941178858275836573419102984913440834910731804759983347398560632868705626205013914775425243168712997673772081103050087378357130077870131288570508145407480652541940750966801731118530815973531470884728296106636905453777958233130516115303836705733851274911266542911717232826715409820188639231958589447215986248055424551129250455768936709099445218714772988536081597712496525344115342648543854552915690082055249825374648276371664763373842118644177734379155469153746693389136103777849744988435358479014540796767056034321767273474644928179073910121622156396468510407348737831710448135394477897615410239625170393566022111515387506428082940585151063492346118858298846673311563747481140096270873847609262896595326646949746722648552286804938469188378669040169125407816969225301291135384264482471617398203111317363566281215073686866095022097240429744408158150817791503707504868418524363701724000000285216626364457651744343276862561908911603853358800137417344716304410490916023835413402962233089601096604594660206921737063361007354837079218044328115080984878211355203193796280275612769323239300658725929092156755850946563746591194440293993498234442227251465799115606490851468214216874189077691697453975731332632323130490662624903145631860032176066765907559998036036072193242518067147570114164825143266527494469260321415422635983827253951554741784300634580623766033426553593386233018155662384979652472438577843907032188409402975090426590637046853629101333251656196360836665290160840519896605163275170324570986424943290156671304838723867576053555477349148037683745086901532902627938571485739983716933179739704507729721821271543463936899797595275973954063369968874982269802021773286966436386775719332724258313727432762929210063102305704449596310853546429459626841602122127094760634097573782658160215656473123858415719422042888209447428006419904434898630668040798756279454047017476327205282907221269569491086560583298595756562702771894409102918107598998199431902703313574856511986557522632979222296756618187579198674322497649467330642020402287073164321330153854489358970089567803761631810241234298248587040883143847153307565866069844317410186526118266593651140556086789599806357920881345695735921952289538528672646332327156054632500692446024189073223572261826099818463766918777259091227924724179877357931363368291370249239137108928796965098687638763988039034690331359067090822483409394334660147501043022498661975984921438091452758332845298801068295113649062886822802926209259358925924635227097095186453370952434180565858970063865229678664842492822271748562990994447130771803285094702236759226044136119340770398941255520155959722217361672451922163534170466326895227132916583129323492049088908559929041803879968135223306831889058585689109593282189195537734241357594079654548227929762246542904629166981643296743023206547064882777669194464044857807848134432302667684483868044162099023235152247650987888646839086606536605510829049838515349742431769432321652596032297638654190828054210623286434236939524276614590187800141829090171114457010470486290577340295703682228159976017833126148498050737083018163933575895770569356478006353488975499653693809628990702396114252651617472936639719016914154923493908436809758954033274175731832826916138889309246919335877597068377511253072459810382977883117769551757889842231368794062784105973978177539742527978990286669615660130222971150621394398280183751666971200942339738660800956518821023284150054380156118625027651208447622835759423606464600709481798444809498790577820041619212368140222790463265340993175132833568945202685552178014924288040409179770057900924954666858645501788451348935425321645414827904807776225149818264392134474056701795366141208873995940778545656519817085850041387037590360934594758940037015199214381789353477646999718640576639485389918536275643866465702606886993505595784476311247701799523665565348522395701498083640482931124555239933887596893294778403057538796731947897939289179874334078992506605846931847041165286446449128641735669584099382511913562604462980244093124893419028346787942745841083861971748178231307707730479719453969911936674479931135271793258334642686717685220211196422380485460412544079826559534062921242698660379959138977388584781378748075661041654472528232176584807134796555956890665556954043185805481569628101570400054090973960501849068997540678183633211422648886886460860287376411530968767214645394149480614612951052046242186531736079172371424256548111974872942619432238811108929651167850527716043400086697020502210874855372843208262409369635394759203805673956093829573112288669852081722031418093730892190080834441637601301523878837278852993337638379393244392603489756351056409369094837362157883218387250932435347705136674840539913358674931705029431556078174567750279408223539738194790756923954788450903751680116723512460334986130780889133821674887882982365977421741869624899577178780936948853071029225697662913455116299441495930841737418955361565399173253653603569628651209247281509054920456965145710368997269210797399833271572558579183063009486620059598525119197656589725474021146217727657888112455276973109113454196675979572110168032268471800728288202224172334406603673188136758334723091494293992620796770733124661058055063961303419712300652144449383790170216211646935600574085255791378605943032298433449109079904795434899122441025503141998470243986890310348709234251908505555182976668611409465793238233476514168080679484856375498319915387138800823789421368002735528864101664716054564536606341149072371038645992023615677819332678691481925276787626889115117054294477719905906097778735837515230340180316374352823597153049624691174784285692157963313958014699823068563342540228441721427119496208063662954094712636133096466222090008938679206852805586470951465755127464360903872428251425600300345534317949421963121395847959468986741028582894927619171229332987707011904882041001200738450698445823816205211237855709736233106312463769314158701279846319489542988941965977401074983616010960772503162688911076268994537181451504442023939580145168289008707376945763775823510815685429100582673125099731605311226085881853911536490650730446887258764452839590209897040816412145991394257604978608888757176342277123789158025746888868093208578619281391862365691119518069251565725988694787557426919805903331531114892875481662455524919120362541487303213934781228273406713826837047494191068539300807414873964334404257679183850050673202452874104054087123839636642251612351382721823324521983995058114128322255480921399680550489561323399058699891419367704247785508502165990587839063777595758712535430638808106860732059360191262249352997452265258431161590986491253953382256489294702797608633934145465649630127286793933241769048100903371835140437071569372952708226441590191962704925303809359940787268655521790023984328948778123414540235170500437409164113350813741351238995732598086738805523348541787687714087210266622097781891530234963717439874708172302847269884857514711261895438821709476998434279615655674304931086213037870772060485286350958614463599379676673569351669453869668459901592933329048291364299553353704302304653693338354927187221007956505831711775056249936482332085748504425649662935370192958298326797660224104085238494883783677345459577405787429308328075507277902168410562711177067607838445175710470525687650737659053920131064573337432934671519729443007180976239904218201776030660751339683522766634300065818232286833248716518147561772897550435254794712360572531492024919036891893816173346870180078173547506901185786837019581476769292360877473550027228548141074896019916392064396294866377632631401886304162299529878396974769731477360013344482329373554253353467776024779553023312471937443623943170001730620672569452664622722841489775179304347590778417115257495563670742342112811085203841420514922893011632427634175612147634733537305544073835731163495197320544729294063619335762937686835838427444907758405370229492437196222543058738964733832664492549588495814425506306120019552987604042009992606649977936667630099183777428226385838753958624728039738670032453405325146516391011718125054063112440522604450087258059725525846219272359895051665281611710170812710982704352137338502185857540968153927507433660001264155083318397771539010963045341586966287154396490925851791149562553489089991041252995145580229384720751866874741139457202131894070328302505803896157749081552381242612093369299502872238285936319996812613600959329419360819085762771829151227997107979812342997462607224322192011789152337618590233877735056571337977535226860979700549069319578423199255751151365560392724319119919470191123236692915767337715109926929706149478924020275508446364254446557284860793493311055194495823741906895667579179308069494044974575088406011111456476029766355582683593133872381896102066819854892177788663570104467976989940983510295378210078325416242368194972080177266597172175989618857048362526427215226866613331479210449974532835086689276637540918512311892940490128456815439883066054164497466509683241056577359067523966762722132882829680297848240531921546443654957166082916237847732990506755637257479855018095879414316029638667326546195543196833878210446956530551623982078172737875388712752881207939529596157997747943187503205144172706619981762366065430049226101363252409932511254748379785527044413274048376666618446125405096288798493443730818965621229762740621365334154724426847929289417712450294019655323695077353208455858075386358349404264756476918390462021533946027410418641770457400965672007942451501988360867286715990247822552205121516169077747460093807495982568749506997443692198415795563637721638012875985837349907052206752138366356866557190737218770786847928595361153110863553557839017050812290865337176707321165548368733177631399990814658065682818067186515160679438376918256058553289552230030468808016688718334579398984767323497032736897164085432636612181485736262751813761890472310620945024720255491783219568642682081512940887069025199671818196664474241806256357469632663296294480668050797868365935169834580094890819593025660844287875778192752686553994180888923984058794952451725699500973189135790728910580263527209076103772441676322549452801916665840789884716668006526497510463835240055487067025616658413970504420028459567254559511230877540991849424451485625989557279655835413018051962622692042012465283967309243422337061793213513316443685414503669259161764451783017024978117638013188393257382103076446469566567765824152849449262251041923105949035472599401933530094435639380952762906254634789092614501467718856479115991336635349906329762581498337409513964704811183362622196136095259894440468724727133038161028336961784416734499593369016258101865202740445936277158955335560972360684840480179406946789472680812060565896496551512394815246382350109966569413899430198039155596514412319156490711784856880484617409957857762504244767187358351723876445108465834615408624673721479077621957700916850846818080328753108547474452428550809666684123480875480282191650089493621792402031055387973401342921676232321080565823577807341526597611647417103145334252868633794598095318517209953169497410440847893550879362818049941767091061911196928285496967830516522735878716038692028960490128006085541790772864683213516434028294355094536136693802696961961156283388494972872391819564088136136260360312877954271570291971911607805007690316661314360074053123235489701289065288855790859956982423146130152610643076412042238185100697664677461553577883486152059952297252247161579175528674500598867134747777305415610707083516412032792276255317975956073488133117446901985497532490580610773587080869865897413775423618140052711310713135431654138919666973721345991962991465262303844602593047025653744503959372868476927262990357997758342333947463316398137363130792602983729762653821272764416214987293477287706028003350532888636053448608523587278475181272981148157121024329301615558825031076458496731470280394304118475842276246574153615070943319894906301389950232097869585050878277934622839746257188858258850533016478465881932173454095361504716845199176458762005754417655859365791435273956703722484226588225115755628873577230383095663441046503792045144078746104755868779973783328662644665490870574336000389867813608416834406134002309978966019074200617201817171914721873233560717695941714488272833923094044409808991707841427132776562577790436679688600342347597522540093016217144553208198689568578285827787416615459483847679740734243705067201916977320464347751347761277536738576147182652265397673983308771257477264061431455525903595215965715622707915438759270557233771483024495627861095602185195195947272801164173507763680453083396505411135638699025925089534003736347105916055402660470006842352345746255661002346653188538965598932469447310589481552124872066049532671121363135138050249938349254705251848376005255820461486875556584490044160300985798763882353987313944928886130377227604407565718750587827841081507788178644700379845293544237936538649262276925359259546193214173948247373691028893925464285874965161884996251300368813712161635167541235687132228442581412379302572130202742430123606589304757713806317461953232685403844614225503556828108328887394066524728438084467854104970730647078304942663018079423054204004167607898834388871558498709342731639680632664676979528241049425706127643081463930467368217870096357986667178052323273189104927561652760458465875954876005925977406587516684560661543349143085403824765910570894025866193761098819274718652338570542640900060856585481157996880861167351011857428686764365811068681290015204226561543374637306446421880055234139476040603296923168642065702075682957436697521159551378130773657739846816947225090168294095618408449937972170277016166488493245317841287599485952640470735971349677019211573934898038162200213502102708807855689698800648463950476199265815509827864989532863693843961188704522145135504140245604509193511982665626087107988873634229607779359402482001441577264801482152253799179622788961321296561688550183982875108332126382001798729403586418016480350401776334178829129309140739577144366499173354523402881968765380498870295708742342174343934780609054907072606505582605677825536583917893249264122870591247592651776674401025612770895802249665544127593205362758348767477612742988353113683709428392573450654395302306367521886565454323327695398838562285357543923079764581206675503690393867942660276099229411488538007084305054571393533974962181113925026685275071620175270387324279832677882988527455455809659021134896624706935599480962650922272470144278051463803357445178698823251682122499235602430919246086251792335580057267941575351654818037197517603173123289304940858621601048133864760031226849555369855891216385272517574184112280459437751661058500250901275038822096412808786433298222969228279526603855523510965483868842401697762448325734883361765367334067575712448505383301232157975524839408663042197520279577807557904057362212499154586905180947703480366989366665208843877905157204159423740713557559637111710271379116498001728750757065458208321401594132630545309626265060663487726316538262158766239603595041773590820084098743253972536152783907613376652547427039190710841339824347734401587787513126012705015978168902891450413541702235485859949260858444896912971600792181264174062544476184363560367403456949263711676872811801481354631384933482317574182584396699510903045301176063060680577636603561467660192004064532445523306210703155917260098287686801965197786041794699687573010142652278308612051453688865315121158560028436756055061148015037583926589030097549189475865579157091142253342952430263348783451224126184274373535531488094763293104766032413904682708356520906295315260122165581162511455728904770565158460481619229421284136446225133990722720705977496606531160789064645896376944053578313262254085240255192688262210931955693056316416889532627970734043980850283598302352061622461476382637899486602618500358778408115757660296317137927145978072244658126919933568040317794576315527481587654977367269660534973810204307641465386122509105384214375079956121712103348880007824444357949522632219907907648787514687349014640916903092361886845687281871111754921288875214500437954005018051713599238139842499978197071097402596180242131827762944947700299305346981220223755358059925468241601315132968198843473840386680505582895013241948411303662211524665598168143010088114171625575305377875969478968152951151519187406106563155968687979155720644293543353343607542111554185489304960764998477903654838026867613916491637497416920036452255147752154206376298881785106190421571493950210242447187806466873342256627739656094717730702766794782820209046754889140587744821286046065695324214023598115735230618953101581533644853352404727224906580175635389789492448837164024173050063743719406867364769354250023468090807516271933696036400041412285893464435189788402936195675046757698148139711165491851447601350406032410628873196631379566530650505937357046281969354686817571634384487980938999171752172209002637859419091933581176197180044949542833299651202454936222387651159966205591671541746570519884300834078258504104494870399017686482020961389136178233575994468694067231891156383918824635330420017322109575909411183444292129793721741569594618397687254034718685752955992343444503414858234637001907210378475608585813577295092619367203541806469626163291579328610594197840121718389279190285833020592041614419517691315926993698159782220563851090021413549542909172079234196499003131501554835923017578241609145971895798330362427473275961059116330549393670874593889071458188795218449533196917430079052228798429697964733998373340495287271797497058125537303740235574122426726652010976719158244527197461373239912630171257859804083387842266731876760615636534180049276224841982277848015138924414459971503998279161912485351467103205552698419670179384042360936858459784427279923674183644926772610292751806397548958500087636647029638284520819906810471503145702058500775385898806024827219162380270625097341144979336858885624736218148948330404820524405017455118409470999505006528879300007675872193601849145610926145012424881835649179590973774758727671895564355399451878709339269733807508323102868240411370209500953174440838973477517045262263335831551722401571580353352596144569238225631051794669188120317679680396802101963436891660235816007962321281211790588630341923101434577095220702903734713899920470010796876515678033688603598032119008214040837884748324535293292402665523679323919079351729383780531710257262121620223373778323554522543309828472967033598049158943452687282686943733401730512824656800189641707812652118111493583465962445113831795874166648343232028159955028342840977155220582020095756785240215534418093535530941887593928113634633912640904534832445683187431421086738259282891327960127811192109893609637667148988739463754919411050719539702869632761329313188211364200090462701347077443394642955197446442701178711522747728568770934977246867029873837251750750321483213968268692591654174391302989540705980130270323816994248937957617282113386077562734981727906077453915017980812328803687565067941355273746530897562741439267407119638254358013322729559662081041109142648785259765479777954963442461877259697650070616466749927065686391653175683917033178631499526771499617736838441791558570051894984201907412723343556163085033889911037567845764424484080805429955561022053498400960671445085626473548673189450225949940214927267942514327838024550289930174751466751078947647486298771922237571451630631403216526574370946915953526032442875093733748113311024196606153334599617236772774735165502108047517895008288440189705243177733511121679802382666436536271587194306649157338401813161407962641054977970978486040223378185577898070640193881386590205623202476330050423151506601999008071150879064165997265016698223726751651559714456483930863976025322684379795288744162114219399081488899465580524546046181948255493800668299265935966896111108265203091291066983851946957646416845677811954197436123438784464362615301845080003646652609651176015555671504751830727730259176592532099102763400971233620747139830814009442565323028620910714046899157453989374952046829544476350489758110522771295314122125205180681276050273881150316101770402238976022118563907133083550979456261413053302415124776212913426553331060411112988236740821751461298956204476892712575945200690067853832371620358980646867963191228184824084816955149119543809039403252328646838450062805702777256750774830610722564661224275007537144703677406737371865844117155347683329666906369525642303093410957517996897153750287591898797140100207106232974576356963767758916495698637064334587236605719543735871104301053547284435103369683661339704424297857190529884134058156579961792798680906930427028352512124532936849299974339005266795146969701891670216362448013381939628258208998028779664578348716185856450657631803255347210023870018456658644519743811192224202371917447246871239398350034104622593335497797312515015876041863968594811405349025721518773032367732853572069290692853183495208960291390374189849992509688777728290453257755860663826897654523989811366038895578513051200784900840712591304444466114450241445015854852547727979626123334029886723522052271727560381322829550187974103562790371163155447691896779623474753131470033267227924730821736585473297825930878118027193871838672946494520359785545362630895496958241961329953370104577672796475673890537778208425759165974997587212998233362790441501061485897747710573418474964435846489097270730745011500323146758287027431902424875136264591732483547990316737470597409644456400199320077785161074100924168883514040002460148674706325519280965419157085058788201128357935224274133975409150166291518083481909572912207742154351440238862004596986327124986383142438084422835941735315098392691811571735103799739512733383465942563004856940227728993474423767942267437338688762499692621426476134093500683497465337728789710442982939899273479608503657543528769616413437193630048449815646130914572746850083643820876299551932419721175650921508222894568561121728079706464598148348509375178257434385106311130218683498080551923170598488772070878105800993172294612495492976369828031962114878562156880270755263115537788475216994663863862196021939650490948063292029023211833733314931566634520992767790655234642388678449964284217673082973410722194850036397698790273907857563101968808331743986303560405595181592676932244926775613295351456405154659331992136453605316044590885602272806027495793482015688838995371107127433820229229428600767319780897992500873199289589266616058536122179633702260298719203392986523786737795853883255403036685505888557414710384886861860909977397958504131376369071768304942047439518600935539149432935464659129646787585204471526158374649705326151320753663615512987951615109569802795299736050460948112449458423537344606197030424876143802567024575201714453452320721468030750264482082684763526877441963495781250675531515266791750008168419705587689458704942269964728834982064599864847760221223384397634843434104199680116110956535817043342199183510988344441277448330223472288671558906456404083032766436947242716723573612486694254606771601305404686868518196162314136808353989017486733833759216674540242929815691576536846210900946644890614762552428724725484364326196783817495855447505943646847660667747838623029281126281590336755101716931135876146112880506088671898115132226993247359155111810503041464107186240314744824949106065606655218569465109630714658019410142640460143312521450605487657866828516708910609868889184814210008253159934917544492254983609269613871943656069703246602429934215916029020241655582545541649178949440513567270754982273913431919699484178611157574430915297644297125234117806762739112551356125963634277249043119565678901230339592719229834768903795612160135192218765818978302146459590425291258413420332058685047906268490989413541405464670767434264486999193144754788765545029622135766740041771726622065936659479054803959640181323527869703931374159120930888343077510637975716584933566699019368129475853390165329649760156527397698593608226276137467418476434444371085915799238454948924788818223970829425583579700734619915516014178487257627446389956139789501659144951611306110877541608873982053831013409519871944082916735275951832941345593129192030284497035292082111319635068197302198691315883186162618271789408841361966406681216857478562025635080461935435053965670740806903167291112987550584150226657749345238082642764220063533131387477931778536640077032838272839031928469027417872088860739811613877799322739077874406659677613012766799741197255221565828665036819559956688653907404348052238316576065046720653038951375242640014006799501624804585878921484125297516976221697133836716873397913208349555439589630915102145008090228407289371701540752251816938386521981359167227334255800280495576685584625082994209543452150711897007434347599291904930083879390989783282318777116090379460232833777890048902935721178672755723658856407828384110374992065810368761696432949665612220936664586192146531870919534923488987497147692870051959885804865296156899612378276633048314075468377385168267981375442512575841810445993117426026672569075710873637703934201731757828239736496362325779878081314795613036301339517356496322584162013007080054987055066488459449360558945194342265838525791438739710657297949312350468483081583667268461227477933751453134785138827049263886153800939560549437029009180951657050423177506380691984917827183788150806069687953849506145919280316498703621045691188513944320975158124424980187291933569850028338018929466854704063860049092947270731097665194813570419078372622891625160794612356365156352000097323802889594833700606734885472569968725583074425997663829206821620818519692260096589816441111393296534342964187664245633049840986081636917943934943844731848069958725728345893139854286228618790427330368439530366010318958424440399600424430256698620273910540340551289293505075530452303121993707928686026163767475323875502398617066745949236393158090608384020071301887114887873733580508213360194288131777426532425208728952304542579105146611523028797402364885790953500535834944185870770822172373448629053979384410013607003991412811259167123115186300270854200627658107251768198790797793002860021887934071433900427816339014218112199256249758471460378305355203797384899451932479535069529370620252667150629013203338915713853496999407085056675498154473767896114793362880909874399066897784989816772914498061812984599388781327351148288503661842315346425691634897864784799408530899359298209364669136996815018445993164132889410848578133938230133646743278352144272061169074648950850413863622856826459728133018376791853966007819647340138719343523076893384752175683825652295218449052264262595661836131069974667838806509553011854968921612450993882492842704832550162709417792309122058402174930780721515349433141132286982069210887255568129085448082199737109172795933826922210972639742106725129447256866160702718776159853274718873582267284924117396515011900407922272501806459072402432812814019016243471287237246412706522492795417512436873195164144574119030870499549675616416935208721659030997919213611898251831347464029408999806836861364685211835168222607030536451894866059972603572169904679167988421593663671199657992657718493766575206182758622999780514156635640128060536134669675013756189370344043638394585490777767274011718663672018464802602528288918703096966162815723691341276036708171033680586449253192746286085916324556902939671920756937827621975644782186882151677243078646274613352623752974381232460340382463980961370837218967187685245729512701206915006093857535418807466834028245656900719981000890250764440968783533585322324968125301641818947153185416585644321834398318901589275784374735295838942309893749075699696195984051008880377116773082360967532122728033880838766394931259287750102899339345776953991881259682980344588933826286335713383407683052236659397415936406872539009242731335657133924095923409824214586003559490261258437029809680200205837745602869871680365300206991539129559653910792940458908234248586306677171414081376581002507883553789764884539749947553988219585389344797877421382835276520549888654451688214934645012632574116675969869791245540038442575451495508571718789136937151972139500821699451838863606417838234358678979629618139961669895449892906401333338249458264607660462467101062417112465003124236137924176311604258492838970034467047454586912730573605009488541551061499965054988904272127809166358400214581996057648382235420698130232907442966719091187748744043884277739840051528344115270841009727783963250247895168317971839598405440019173839002904860009219919646754224371803623721594662390877492140685569418268685083098405485319426431432798219376724671102122589071996207959648953398562369934810152160431622065673679704078537914017721923172004815610391635140082829254338730447568388513588786392055341719372066191784141223165956230657179333161891688497875742952424867326353176961153001629066453865338055389759648963904069324741085475630905220071249264073967397311808227431765772188331515715405649565852729251973287459355491870331826657029054265197998753388041292836892287544191199528061506309979124252042602165455300947655617483453561552201934720925542827133592640922329432171967548564407963027713200165541817475672297052940927933100913602276099501718077842385200269873232308857765834987568527019880402777090841706099419027116000683127014364885657270582680695951681863402680483868592569801591350930936713470571130967557139986862703703224594719033317550842944884250122487748109783816386851700212207925271439940829688877434774827361730623750063782583041924343439113118039152732477244346939655659720352278808193184969384618265724696883976852922200737130946134554895505002227790799060379524421183889328638765859888210018726010578003147816909959805448384286644235982905133739108726153912285427295874610011566729709512238706046953233336452995655720323305133718704625665723987481962062506245084766569296327055406534110670976909220300854328287468832192916646974902903517847383425075726777623702744822150021671041549308449163221264127555611427976539220996606528391255673457332775183968636480932567063782958271270531531898513414175937334939543367841265428571570448879586276139244343132308113452642386126210959918443653198353342314912698743915289537593662580554722768702111177678221766982046257688096460728825739091947071229526272344635954659771185745004719745391770420755118410511482081349097662704419336733593874318495961978175408322498350846346692942700774719392583528841956440951603286964676549199012371608219493434979258998188009221630799951350250547100853371907851770995029206569662870851144389032127572015722552278171000245896454962593116967009460997327904447634129799740309698654245535244155618338080463858998383842823218567284953472909845211126949775875569372196293875718866959020972333524931666145567026384076264908987993821874668625488979807974801642131281722744693560755563942964083350929243201827580741575238280324522755461937342084659687092267911883192419280818035750673762060895556151161458010110206598781303509856675925163920838589455723728849120602596765080016454194460985393668904912606013461235819167842964357148844184887516723598743726729707337956866049333715137394593330612049526451844840661205112534659257491014561746134609391110749189343173638126782649262015361225940397823961633727507812218872702084346262985727707266256256097443352624670249267429770395226214043003726112673617571794381682083615183856474756786114444709130352652285124636901670031372097212709465113140032729098146164772197165714213421532756471425008246689184915173317686906158793248336851104537296042212205210528923680100633403883198196422476638351606025408002663572733673194886706644586682121130871669090649038507495227599730759847684544646352749630455740119241722101883541059340638366347324854631971037407967359867637901070290921218082430181317679102497828263798262051076622708027655006012655152331731678740002671469173555211471178226268664789645216644506693651035346947791573140353478828822667340147918728856074123028109664145420236985762715875007731925554961456901621395614914194621452950604941763638429311838078408752890881401071135808548063239021864926393307647123752056247489630914331737351339798079455401826981665614035749022292509270530107221177448673454619107291449344426934595537156189189967952017084793928284089768591503713080645865362373377273189771722509300525661281238313110983016019308911218271281522774794374234159960514867351038871537399415116088787406030659156577709926975505437693969855382074463852665802871344919063144182022450972272802730250329081875141191064335417851434963133532069349425247305072674396861725164191862479785652117378973680840588187701540866064541246827186602383816504792946448661201258399704314569212888603365815264662039258126061104446980231453531321025782533810804765252091160784560675903543883442663021841510376945019891942412157678346625418186359661111228231312128872398724865893640651470717867773862768579358836224731402959767574962165310349562714333641478798086060349237192907376458477250341658621316054923374680803818372920089759662862790536105465710616259727591364299181430745797394234652633349441032717944484757608013562363359304687935914230250491511065792035966827297055762847525062646030519506188770036754219937592219717804264406005703209378575574426955658477464616486182169120724674509460304726265870465813869948379742923970249369055414319934805914268186957789141641982221960514646613573156718393258145336448666920542372774555039375144441901053976805918711447740095608936548713895339951766636627774157793514635660131080114873212439646271108773001552653139291028693927755471437204993489642160311287351483024724038110110051243089781793203384615438138030308219397589184182877571161862550064594502480693643969730915841942283760985246310310433844843861451798712382825300386414639983358831090904951513806579200685581185724100682082878865051502055279819796499753768035466376051390169352682135270516613619002508245338923705906964782736995390554200261080007850624106440019827508214731210188562514020466825170274258874134265757019302839791487738803214053351264264019718101281830498793624488884906505551644364377828133682575925533420833541190581142669820245225184919528054801218901947443843288271434094934867654648353838368006259133376861348895582681973377717466012954090437766115882337328829646679894964498551352016907446915811046466426917560283289383823699180078123624985100270103864849980638524400012491384677082124176540637654585302540593337859972135612951993318590265494745508101482302378130220490378089918554547772158377570104568668598324451540009132106111359459169636920294517023370510396576697745420953816355314483895740595232775782642427836638158503584161418151466338474975956921716915533753441522229164913331084294402176445396893650283198160444440615043521073071724303325197659047767231956166676444598672578537916244620814237627455059364706562597683708215382095198116092287253840731377772199849505512771138936238219540379748324620565050360390250949628462942882932877251707243733249201042858063568434940372282619595105010741969570686103974348676468401506221258064581924376840661943580813468477671216152006795880774827875133243649508384779455733281558912524064768938597253156903799723027044603626111251093890079113980502208491035001055132895448477500285805868590021209269499972401459729902186075640216729906036677633934618169252322848781260953910622052556333459033495940246834233113480767982423936198508740839845208648302992068159040825886315849814326606389820314309992263757568442132617460745450103456626501892422326043585216041992334200202610172960711900939113781998320634126239048040844683015929733934117168804393672013123673438486332288139850572990722272153227802451485955155411831938110260279076224919559639399769424666146950978872586623783774606381351821789841283257832589880950506743233957797263378977766953692516140342820388589983783233441768434778119170593317692290355218104881887771273365219217621853240188016895422046137582371986227512994001050117972403255393000386496837447520295709387759938660568436429641963422790429909039086918509713994682113573055058443100390379188234587651768631366148974764939229371736094508469243346715540423954879484335957019648753673213683547545292532646901673098797871581990557935217444351715403397978156529369581063452585397332388350449319443043414185563306187948452104218306938880528471687935464946214078429934048856823139144639211517216954989647028521515497447745178855718600609241847479474072233672715625472948909817000191979280163397197567092559581487279193000214104512125999470359882809496756943196506496251986501351170555463207993840631839410504851990007196363432607014001571568106469724470795231615501890987557785743150498395393825146043957660336957417939585363951850790323931098790735305314110221182796149390778032440550689345784872406292715352535614778053296752613123535596637402950155454006166447323989557809409358524052527183015669748745364179250382345145823795963952661490656135962920897898866630490726046070356240385788682556735399135702452279061743710991484706750683970071365132179902179453156644928233512850482946341033498409354391173876471894578423495899101950716591022592967734563236471014868795578655837326835526870942881033203128260597123565809265882134194515505107015600361175467789916523409215017126122044662298869287899317504994400146161890959091718766672978901594965770422057838195431891443237425558434604447209510911356908431393625907345713139867529263265784661671505400396794281917150831000274128066855239441274765617570852560230126451698715265344967326854801497525016720570243026443905952377139112107722006412922980977730671835089393706669529314879624534044128539971683872218934641258350008048314857898692937974802030904910852974013981858572285291548609942435415182890870845774630699060176741608638466836268541247915069556317555670713641833894271068124316130519729125173453465662629658841828762510491951491305203740663522387982725931587885377910631433101854586162790112186936714453459351562687777708130062750228855448445263470430334982647461387796621350071686219454730445754166094327803907871977704273313230812357152932708177080821477304562809716129852641915410361151309912534034794652458288740608286382944903463887613111105890379019831042413866325093982752939557807446467560494575116425723865062200752274915608806012094651342983819476155597663821666162758334302235946448368070936765766428989718784109529486964640495055569762891857652166541587563819535324514513359931270319352107647697210354231024931360260298732522774492402316423200018936340856244400564907231054861119929555571861680335821188481289295462042440222804039051587119962650537776401753859000167269732000982270642704555581044983842328073951275426572725468709851128046802246772304285498020460997108481839777949602479832976275614774285409816332577025654865272433371043626525118760476041334771259107740764888268629166567091039481415182936237342973769107677005714958919583796283690940244178032332930197100118545204385997934118134556438062282289169879292865271465307214706483370976503413156649865425610476279211439858857361980513163151933887474715001722457079904041233138150016965810970290328476120808814123299761763981982650951836544819945826895081536583753830105956622665953321232592542473589940050401512280412089845487293616452885247845341328745324473817076933217033746969409083427694710333721546307239453262542196646394630791270648515563227811726135462198293316225504176652804708824294962030776300969672908207115409554638548491337787780852753258555331469925554852364191889256406064065461250773934873950186072617016434892350888514179554091128601403729814492712395695336324275752449356845742406044402255752580332086077415126612450209529828255404374376696281719762646939794971357328213127983191163442501041917308562198199717413392283882818205807927510789849204391735689012050772323753302163712303062110623670156439391546255556434486843387493325823212077972881938133967635008975450323407063480789708410718810086780346525336167880384658423801210243001176874405517579484867606438897465548652088662816561690375808994681529660118543711880332453759514940613371644597742450711046087683696851944254261091024255027799935122093005421274852335405775332862396851351933468652502100168209187385519821772572165396198195276622279980750106252249523045869045142313251454468461369040963133556610736466794974210350619584235385638019401638019074038190465250315284260793967314398790443828858545594358521021987843169413422757157096057214253881353973078805124905696815565490055492051714977043230342655996682161792607289909728094731353385985732407895438505217259409718006902882853520542816548983852149704765395556998071730420145101065215392047835186867357323698998780433945964634669247559164942741473664229458335866973129428878217878033197724110646389007244136941946665639660904024276648080563681861911613401647280576852921878295962529662377178698481415739010892870375314087029893153825498492893258345397480330678221513641105390941602431869285114837306828078866614619507908375815939266292142178674596000792907746290393004222194413321835910935525615721968042359083125639920899944697767321093132250321937136821112321182783456020343639451889623365130424975083058509374727416681696986278720018504222463786204622909714524465963618334311189771784182057419963572748588720356396177615252147183997605341792066246116593903838235711410548016478804825131172457115065469077468839001292766459864952804497936464155269189455788802877313015842496613069839007412003925949963655198565515058423476548706728876298259622874218371662480374162040248379937250120874211951465361134616110050965192402933632082589077375340240792311316540649950314747535124369021281819806594079733295530862436554767141126845348344711893065928078513493602434894257361960518309976603866320864307563609231365793490062693651625342264346156242524204689583078283241624010058005272293913519094717463320495494863639248329271283765091516397228942608291922014124413281314319478080442477177293909710474954404448508305293855160469705200205723617515918987082253435083387399804953110814683791342627965496372035323956766251068570910653527848580647327067175364498705477144057133142293446715039138990808741418064662583811317852238628765295981622779316158159675396213031922061135375833179635359443486985896835820897739136815594548132333106899487927291664905443740236670359926060645565506165614251980939107241429646771987177349474498239885495341713867529185322898511863005998026859767830172890755315695838176140681644962488744141159320636263559696687349973966556181672959027015487078851456244214293341372633097492304298710113126991206261728253488279404127632404557945763948098549377023736789446340373641655200164675476572038891282095342113568955164813916477025257498728079784670765353274208312275679646701252874584188241492718176804192468072694547667248587411040222361354114106030050356101336314188170065396976972275832040373248826943383457867148482612267092239162190657501105276652495978889607319421901966186798794488876559516258797044363578050386897653151142357798070410942104477967272247959283763717023177872098188469340946601081687609869336610740521821371196065629587584495628205151653406777685654340683652834277990166623294486374249560581577479011957425899943007277828100180256521879755296231845183522263601742025770465561723645962903959717040927084071106992689103437495657173911286369398623508097661207710671513043741131264857948421135407748140306958518729081839707424167245440112258790320193485901702874741037215559695993078182644507476858843053844549703099838397078236835424472903627890265538695562289038235824985312451400086317089344408874380212971881120291959981923020390027471419977198672035346822226107790095779038970143284344763009276963118881014324634063301233737490124190461527476283334488793148337086810150312283581859527119950726895861787616158046531002616908596241025797635913369071160795028371712048193468662571816945389573594495321926854577538815248147544675269573082703696141365300975678844115767888948493636735415990509496408326403560995502361191301584191321868481152009719603557390490996241121970430993681476864550424838154530187163813233529421890689539656497970259331827854609071957633692278572024967802799010184674453731144145237532961954496161694503773503298538218401595356928421227851621215343457699600195840224406323696593695430101012074641228396593703968389833968606232781899674684072900870563496823738086568127449699286802676598352596125565883635493387041557614458447572725453928867340960950399803218415359047528067054666888348345917352347985074987885863557634151501464409821163229103492926089641488117282866591475334687539604834303566838192405117704013590579910439941629668348902087553972934238641236841263200907625161544128409638543848431530780700604022486372623338826269272774743975495342752912101136637679367554994119250465353919880562946688633328374227940891083199996640756054955732465084360000221388443558518602733693543269512217697058578726760528251598962961548256818956787382893769841651969037019131081787410426033932360874084132825552759373829991797869431451604131377388903858367416757748264901000910433914493451404534702320991777674825753967473350759983408488670827798833159669846504593557211242729844165978515443825135683348290549379763743785718199359379248042888196670486775460272280010595293422617451119181308547142558354561531521213479799096286848871595132594762872436396605377500381104736963906917438371977943864130126773045511284899695393555390135511233854262425609764955979358369870406954865466971746481021013279483586804702446858400592166200067352063652798012401362828907352702361605758629394386247367696261058313409896959431051349264077621599633271386663391005726280430193420354836050793955599176480725429054237905176102222764335692690333034312218762769465020406854975376090579238716842971282782552301765728211112411599288025678540647863000357120278195057645237196713851454340505892218659829126378530091282458382231938335940166725803044074425774507526039521185885849260358640255444498791689714288903513913511737207987060160807028669297283014877434050056913250772524801159903701903516033943085636742736770743975204646405252040687134673565206228729514783462680137993996289744017054224615348942159696328941617038522670708159338500509018679672182997606000759112737802651209215637759442095447499645550788355790662550350069347317140229894569014582252903966387769355194301180298038420874062537508172509213258970617391125812698074802103351058943669563895055082499403618725324153252888672343324775450549561004479722169429906399665158481755377468663486501633012532506256590419896459172467609628000676629414180720643987334884611060426857678642225967228248785815693528636178883896986298065141441169428059099728716287942209680730335621916493826361937109886943096658240571675214199883105387432335923828273364048801524666815000110849682152549279411400042070921158881874720775953511657469112712222387941068564941627057767946840527889234644157383575264867529418796826659537673552713325965600434294953964135121321448456533296962689965943278203142313563966633381042222468406389208894359512368424292083811137513088317085976627223985133478665917624713486272714082460501341601332013620768232422551843043663122154369892249195365416448831018770457820685000066640299930995853277099877979485098425436380363731859798441257002566948117110290896035517420263569630504124408338381953344133934427462468080468245776548408434135821152508294732449141121251522995737826220128443455774939373211009207716577016634919122787542589481249815786825941441984700811370652222477339303823584232996587558125144758296292523662452609325995651064332707458166409923443959577904822274694184212501696409612952360713690629342181162030473779708424134564560353117959098053725902375687249875027510618246995094969746144218933031010256628123084680519560742672311118954943116501019894384400626363510047208623336344409752488040627256120703993794868418348140538283340975928281645135109306555547846411935291396135264755745343127916376106784936280265095777000199280027725999080606244015841571811639122807510905160135800494295982679975984047577799017547670857860021160123878078661242196433145622856398746731580309214161048902410326127089769188871053285522745707585931651950603312179231442329015103906602628083855825812827880483095782096283969768931759135938340212919878892710690243404653389145672047918415484878931283808094605791215714905041266079315370800099506544603033221489858990166220307247627462569754268849913549487743160813035928907961883055030282213381283360591970262749092025842492859533966942351445408274889870055350182552769905969006404624904106346708173339002504894940775510643994371608252272263220873842265587331566593804269841560923527478831282543004715019553374797006475287835448379267495050999421137335039558532251191910540907497271330292679831605148200545252433945133639582369850990081811900019654180922024115835504595068701918070604513153883247075586992529368267031600658585163785385036664126603703698048119959871495957660507364639567595696595204366380375808227502485637003509833984769634627353734320341268155524974535042573586276461764052078874323763425496978675531305970411929697295989448646055741986915824140891806679770579964624826208394211499623761628628432762283659282881904269575873730104684884540895090042093456570621419391014385257015517100967235460057683663442875912636249906985382727147460155420895756966644422608850597054161393817976754655087895857606696633118062406127705564296761741722514698384373150759540751497592641098524793540072362171605663562761378717087399996174879461633026687777860932150202195475104513680187356418720273579379503885764843656752015132068835570079907094580315894831578124310688910831586148943658072729332266937219932614618498048242831475286195268702228831858817357019024171185953240273510717948291921360378785674430778878853785191330078875217669395505225383401745893712963924071934864580234582019716429301403927093636830343560636165189157192756206736513911799602424743062405016045558235105689713733564721006266263036198052312468889873064638734450626800383762618420759435046375361803567387527069248474317030996434737308718520381137057512821450374634448026966032147952319022765709608566601977846713640082670470750657157091285909876197127872119825635300185756916986165124449969407657838808469667735421482331258762343205964891060689721942989464594495981456604377847915444024920145787139093784469900871925166271526637684776310887604250955401030781616144879861617827279484219510645132572695171370754986988095250825444444527670732320837822572796269091565662377231023283995591919111966707313109230218290495066472769661765399291644888456359267756973065409702471486677608107646259611333445622723927519537738213945956132352393085154785001633772126544214568953125709746361170561827143267092707677753916444266923032391251844604367989972984462357607824176914022339794991603843084218299405567385997002425080170200480546866359123719780760223846350868493280057328323480688195486161788330772191077904046764747979526723964392002017205166066659048225090537885138601703653859573296371177198856129513500336472819631154811389438137987429348464867357581180135355248139915819723070434769208839273915009854728611094230887183735427343018434226412552260587533081637547215909164381906429871992052878877187129280262031714211233740445322476013152741876511272173387470721346289368199475590928007423148867157759106547523935518394640156810241838742984799436883582116158698121554252212603555386620964706695148658941292745066561079302684552243344710010528849355262290721567914432585259973887007856470450874562854647316788907336898823547316078973034287981688764257275607688113465507527742313195406653470585102435013405302668054406773006513156603046879748947596609509671565609608664473586242838052235046537796234095004821876481397278592187933544311986967974675692764604485548858946124439879174728706784639449737559516759001663560445615163832932535998645348218811294507053577513425454428608524971545250672333195446385648763561882440971630833035023677802561533421271819733514779121458326817098944147414734892779512861686897227173220960061147582059263892796785745866074557891817980018655849131942738214197453986200556599106301645608482478126535609153133567306528407615092079901309252193145495060030340656459016669821771541657167365098448244758474559550835212711435686562958126568702989640697039861116087104718744918530910138788989713917550706693386559141989221649872904732890408344419708591185742343031573731504412370675541639803327655682639095828697842544850771821917187480132554008934613042912496384968186895539857814914687725593994372735146825654088921493793321704970747186669493238010404084623321179815481059989180519205357369369605766281334515389398859827502402261027175919029568893818883163166047580504119531117906981159305410355527837928391350217274661126790241642339256681793424737263542922087320115245677775840277985100100057014209278829531393363106569024936049903519174738919514190983010020410319457897094889466961838873395619518391732122687290612973349890808478716084984284421514966516081809676276860965618221090851402516457461903090822009713323876125754445775379132163529555160915845282739646895636911671689525004102119185527585854440182446875997218734256755915893278887567587380401156616929433910814817202174802306993531740443817003811576155194208066376146234328449651163703576169273331642447387409418677839531852955010686566959680132522692909344506838575386044262548185490265516058607773544488555685866649586636710844517523851304559594264086320804737138553003628982110669506117438292301726453192557184355289799887289505705492699526444567750357236073132187309370965431998214171283775925074199776740131880399533971078520949051941903655514768439602138498722455639039749644257159907788557753534506128299641342572116062013378391387291640183519480727565311186821049956932660395452911302419342969613083294538390766150142526702532856981067483065085578330597511080583226047064376165779300883777428873055568407712693116477116233652245326190127588205331500615189260544148170330687471427677808629736011222049994468617315394316852190271081913073809753405860605908952289601802256389498481751821902419544544719791226620278852025578377087387863763892586392544564828355821992401755095322834266824937320692688140037420758496555916848923010691782041543055571882472636873534429337452265960052086521724872027577416597467813089336319514697150970408976769997326362663135956256185185115667856087663767997153623861431254795357397254012506486767228072511511767633845378573524702885688293077181844927911087353909380063286954017375129927501250455324376776256930157498591222587695353569174613947527314755881130926507093043162822840202253536175055520471087029427008743592936873493468958908254801050647541171577355541732070992531457811450138619891302040025890926333121032315962431617815386507105868262367394939221825646270011262860367683497532725244092552239190359615767793665849302150006561234745958179844894368421015339189982207297268441446045628352740608707026987292687464938453679158571793306103569162282634694615309406453811021552323755311631236118914645477843346092554043898557805148739707798932188401497925038455442801911956757674692291585583855698307414452662358490443546977682132261759447278873596648410118174537942379860842426322876591509301517784878001502415852771580636577740826744867610212773773078973472578184129133565035011509330689389544503876597622752924603694505057166457086333803179796239992416439429678163039072214822285126109072083656717900718883240945777301631410399906551828652528896077636376173275473468952131987112812930602688322511554039883740404740010966635754074633764084766140049998767310509857631456617534191007526095060403701519221354794329215268757023962968699532147666904455351536848738589550240244495812936163814041600067693635250248419657393010615904058821768737966000133202513599092776851210917344088322624620113913592945965580129219704707859681426640953385555481909054167464374597803993216544056714805161040892141497596144559439546441032652566249694960517179523268163825022708858413476524696094470668087708713690686290676688877418288239875763876707216950585457407829971229442153487854921896145967942318316357029002333112820857601766680340971651631482500555432612109757866159781323729231852503515032432559443795362610285355510108049207906576341532423549739744938650989239179752956580458149987823388337011101453910076668153994696719875009647779400572573897398817641225905601132892732589022902613843758250055645845030782707358099197840533479944216970645538409219559326713713712563386709533092430499003506990972917710878368690866149655756726078415540554672877748098601610746330785341765985207028661645204759604489349152802940624448010104921323169077001224334849335307636365880637168150379655846083819016772313564083513385174192488228293410676629322754207520202617353600067483248491436297146470040841171726075095702883210380335127346596204040673222287297090979178373538245277568811957213890373266219275497572606454089285714859070715476016434285138848229665538822448786296913276189161057939374015053375116032003366843019057714565112913455235715682053465029068957223155201003657800872212850031183276739558409890623215361170683402178300838337390605655401526587410569800396327441484038192429908156426533408626163346386889263775592533341325745932533298251549599261244424764117361907373488133779007380370532984233925452377691736628106916466280614715291714097947414890486697359260169684946215140317034661902393295028936788291613239701413399707474405570531249341310720511057702767802028224741281357960230145310047566035208278081805886251004097260195128588619862304694136086061950695139884035587980053060942254665093977981368978767129779173140471851113317880131446863694288367828283095946035293582119109500559730542267149575241097921679039207837854718463338982090956284557893452444270253499903320430129155626179652803716738691722303452307477545669197843997952742188000263953124178362432931689097587590756838501524100487411077707458644452782626220041095264256938135735174640840732927095840218393089338658680913965332065846191325390603917093137730269065693472152216938808941565885071132035705700418756380642502146174963631779985580287583941569574683346258655276724496954208870997407806476250938541159352592682493833134501726516946940228310184077183440245046487606012876634674457887575429679342557765642478447596781409346747762161682257543547091590415970407928188942596139706132043761989718813084545108952491365376077534255583938308994493681271043818615426401312133505470284533134350110881140310352198444458524445375509885284032972064343793685351474114866868419189776616012527737681584447341343039125688233109305515795995834782604084954782459207962368556195573894960776507843383003301738691792016875735236137948545868158681600452197335422723715023482973059670481852068944299520169274290573909436505616581683046066132188539059377519082010888910620639306701082355299269109965663435971152767818865658612917375758514966366015843251641287141920968909168116180297077547242530339242908091894252393518407585947812957728272615540936873177027521138624015901032537984949552480078321199493523251894307609933281310515735021376034200925509865846954147362581600082340028269295424994044519092827981176822872896702588389221019042992877712660311769754136416764286548255070053531515201155585183761205485650447039690733766016244846388102551790410144847203369569128894476413303090317523137743791800674637248344009868354116071930937384873278223303373941650596722108283504962205587641222268336474740123974529301128764566464013818700443451095515594581779149965820655887714599084189742784039494940871266520785274526502174731856662425764828792629025192474694458692780686615705198438689517615964950030515033037789963978922273576571651164112069907371390520669642543155176388490294513395762191250023495904554394256575136787099843536689024174501524195540073245926809315979135737841958299986072485138421938415470308204421079441444094374091980437282699061901660264027806847651322850548479746011193611770065655401745236367655229632837631118277460090376795292541495111114967259692600966601097970522497873639479743615705400735023468945027477122364365618207556774858329635409157974646942188312931964751208720524180088946779656209768040368765759000130112694901382480901872316343254182859632671323274005378107026615966558678449226319955707477035757301913168436563334359922047018318069609346609450964964314301225309506373881939660939047551077181673158020793125965958532031263184442266864442665891437538619987452341749040974064871582364627193448844583764588058621926320051519723874811391071268554297069711774064124358805966944254951150664010439574849272180488250104825846719960641547691813646645089586393623169674731680231967139907240013258907216492137567295744355448252614540744079415953022953847466067218655794569382239602993734479583495775950866691817742080973622583995602960768206197581902573375696924357859531484073223151846351390271972395832734375729142156833255407653940126873471111453311640701793585524565401461435071690953678182388493562439197986926214928489939356642086663484117095223933177194070910371338066397031540006169180771031279109121029612668749518601348244684664766697897880548250538133883115518966332002358568999893178900376629985245265539291760078190929316528938793185521045577841528196887458154737327947005933835832247434508282837541789831867137673574544275352754682220289474507386535881306272135737903153396475070344312116887736769828560540894613972299456421315492918822391479587456136719927153061863061965515260629955265738315674867854911570314037262853638423000592481515505475701154546187034841008499975545546938541114411918603786662276349298069171451368957763026141969279306598075246460180029394544950267674644683947835102248733423305793796287835263537826772222299958875672115298667519749554785864342678693446825231852001456675828044064819559824200720464012248958036480559356559571592539076594051950177414526318805355498317923686337149239288649391553433603552516784462126402011708043196320919828775773992488797306955337096263162229719144473716688333307097831051699211743209568721179590662415507612909445872620224799592978107707537359336041433000635630616822400435935061670152975600955993798235828782342256999555969901260377349741399465407968397197434126508554581355856345121438145489958779383723148113196908518886841301265776476660335469064157129590961104176375008378258978418302046766808534720777179105566354001020738162275180228176472425786307080780336593903811829981797470054044314080979937635456807638522043750722517650127692592262781487309966881845358262883194102063352014121611659708181707978386648677013924161297150344826890782283698977496738149992827386760007602246623732042930419025143136193959630891101604112940455027208530475527252412484025871046926096407361748200730758762980497022109391954500953405024824679394748556104721865660793971780141129650385353496888558219562926927890761695164836125205081923463994944056419521720061694810467435805792710467225056192201850895603579297516852633775016845210048493434450558705842841234458024698906113043384393895233479021500835175323297649635609355262704449041516921814455231752549042730843176451295527460268060050392457214401470340845310520149451700517799401819045258525435257689502088674743031172680573770421024269518769154600755605068628406713417863712236201978296670467313915842461681473166854098050997018469800735889889341105003169376946804268487074198141771987627622426254771572527909972178607023991039914248411494113264875220303516364590109105584740805954798090292367912085498727632002935122922283333731291400827813780191486847031347501685444143308071359076108875290843638488346653905276994933706817820943757719809079451797967411454510908049826258162794704074134616634278303875386577160060923830110178250852126874275023989259334924281740581971183748973829907935244282483639288203807052521553415250967209690347439542833515998160525617794725254241639277224176337361734981640675843092110382012162238571991495276349285411126441917147107965924587979236931336303586776792194068867019564676328092304472854832128173618614486968615375978133350480071231142853587322079418487637018927362721904925731142956805428603742927928818523901861761858508390635554129398222135665809934213842097205045519047499561707153582316047939235272094263181246660242774631262880281535154984070793253028591672236012723827917271999181868684086746547930234188907359632386689437288707792344698852552563391571349179584182250377086089834677569975352215561199260457241036331354959069740934129203482249974002647500900768899139630259591923877290944221242488885310683934910027533166117011836595191075706560705237518684959540410322997376354383706219529385437177628791705909230772966725658984997365958877280676117670329772652602421676540035779368458997031914140178225539756845523503654978797850819974697036509682331674324522038248525298943949196252654383045645034142753044115449986846161491617730101965105102017473574336131682584766030254760144767627194914843258901436414009177663575582846544600356879876035213586080901998242030630961601299413784807952565678534373592307692458508109965903597368423404108431762441758410200524353979407523778026395367550666456549385984383362383343809776002134266981966321691712680739870389378999634887301811129714813184758926400337462715645594968716151256244410820302197324035948970674377811493233702775162554800875906454730557900899904232636797088263844452452827357897258703949659147523481693114368777078078072685168845230319654909217927840607093287719645826985747954037307976378461958186287340253488978387305073291112495959466807964618412552546360072597774482087731184230025524021376883360674414417196817207278902353691694248401324795911902613290268740700997431040493953897109355568388286294365760352479506950586777764773165902045914089968342864186726990766988817229137960715940947926995850628664377218252989487387148268743880602326395460441913831115843721663330517257731077715515584390496041626340739234934962337907813178310131667454566745654782827467168995511413564299264477753993436639905994333431182212183585371160444355231392786870795603771367004944900635376938151749134459869503696112791641762570414703188944303494002512127425390322318346748607947544326552002452469877360854638674367326986564409694743242455287395318658545910707319846619926679166442046926350667752737265805468396404781637765711399839713709695480519583961196551030609939745935096242130654107010940308808367383016846468452531415384647805389982237793830468814013950611421415130218617723062512008231170002332902440342262941115104670108755070333379584199731938376977413783044849311410295581106517950578596876002841466676955873079725943395048135510031168048806616625121940233193618571972554388301151007266766102078688272717798144319858833504531514857599543580575779076890611113194522786494437048273193128453318192026174373481762607063741273553876059300368942905084378674482815480446358791203323318556320691288494772079553835053530880814644970488353361575649708819319850335634945524136929947315428928225558797195313813592044769347427775752371685568507063050254418954009776379639406740742721976150243562847170402398364071152504558128973480146290278043676494583094346221530766831915150719041138412468136317700682429762209837926122948812601910319050406491386034202529152540090056757420855066305392716909934614789685363274881696798898207449037881813614588698849778686192967474944127293515599179208549930298083677578357172897123491451475279162538593277037852195259961316416875067169830788373594589100886373799563818506941961121414461802917985247681549102949183602653176226560538936054980532209729597049286904519774022913582812340983326663768886910840940230978367491423574506399955930658415903259008853310130628112894637725082342144119204936165344557328217161281379815252959408035370106767564351656888333925015815186262080735234195922621502141228855208602997294796860591797508111663451113425707146399437939253542418402116794853506708424662729002578940692747146049823060368201620382746472468222127971787903900672036513368520907456278206735921096730720074084616217132530576724915639935686180264510746008169431949878883208762272900871314121676005817490598965196705146868221839103423720000571424523621603862395600594900236753152980751241426084348580867518878467618542000257214842369814782678661352468389658537494118680562308843150400118153941400690831411768669317131435278174827587056085942281603919845569589076031396253106687398545804136187970080491275882397132552571976123262005293768577674192897555058829943805779636944447815620190979251794184035204872883354791612744635701321778784155859974188274671351158193101975288615140979417375593872780192834361343666363940801574463376356192305663559683035188496180021522743471941892757165131842151430950479514430062247740384254917620538611657708476697435768976437127932647320367680355399942756349251981914421954093104107870009874710942116250461935729562046963338698507242640537188721343616370578746110616015686829725795727245450678245259431055941593515311907033437581913878033429022306621866201257904775260005753622794560487776382652622370708023629255447097386625342145848863781997898952612594236084569389790485567135098386426900015404733360662862989136661972972064178035362245433797838893311441399886104045794077785814823462612697192161097546643808268665918473114853296155328351191738632094845342060149065482019890491753209871786277193941557887059593905048811951883723332391290436522489856776307361017099546895368307840066419960986415466797728896217594047106403692513265889802065767268468028750477695984127346929273270559372720210944240149173816154346802864464072057698049968205426177383382616188833872819671356984698739605250198966851269483085242271817481955340603340613623748095174055166046849361548594437969780139296509628677224063755186996691472680579590864405056214726072217288373522174245619143301427185212734675765490324173556207508749846511052516802956634880739257751756673839774497986105089345735263133056035943596265411612843722992001824472876798014121325409433827096190856578257314473807553363725595291295202982635188417165750484894599152680241428896307258172449310558641613103759694986863455381302831216841906213987913414813126336360526917436672339792844010090996103630042930294693622129896704050270248883449666446521198060210166924028381596590274317244326437657704128483918216360855562789590956499568900749405903490930191787753426493765570817144335528734143529123755766050944600379135917572612899507506410527540545255687043580699890217704907521056344083097363460233676542251080548135452122408811679126694800002280630493125441779793927386784703285314797326574801034946596796613963709412801487490679185063092401620116436614054265051132738600328147995898651973762082571178866207865490692536059098509486124541973593192739122596099909124805852079286297379765022632114208689519054177857904223567321601794872172788229555919046870636311227843420948424465437270942571747713058407941229900115623540721554291215132838232443354549461668849008732305210162587721153039131734191205570025108102294901373049609988535002867711125384477351035098983087941907302257335016587980445725281959118039607914413892268351016633863549253304763177454055765579208851742403909968662374541743407644396219492152640053942609270857828994424159003189602736132091602945603289086668239486350088008734203885383222527115891691880015223653917005997998290147533731884055911108823552094111157720496132589050757441924177668677873679968785863761270438969651037314908064406680316905788938305617873208208082946985260649464812765011422020156891483925702637836881544030937946880904913655634732375473177283979696701482267368344935664733888617717451194891032313508149003246752439891265637574449430679782899466592215057967145607374672159218119831035654626608383919001433079249583420197925327880065788592971265574165293987287187999805698756843279332418200637016374815628813809511373345397621536026485455868341908893905338837212595444172479092779718312437685273978800504469989018449206028646627813604031507051650781509911076180967860792715819171061817728426367038001394376753460770297086129573868554798024196286571531119200190358037690967992748083060609545617683205459964497308904138116042822909621504611044700439423169267407998730609937080631743551752445571721965663303103150793635639421848198789366612546082767036589473585042305558421725165018764410377517023540970530502442837049669706940100126651501447237323967567286141091060373448695030804958271237279207452334065471807332335312943952650249718142689186455260075419435640240208000522574357058214839010061350877404297899808597005955004529226778414430021576001338135210034947123491644288623619553422865179938223092707854253138666804039612129090728275934346862601847000227701034763403025235428695597479130147438164243896424468580213783091769604638935542613485921283365939454780133686110246419456522501880029726389229354779097744177047804086522710254709103274983647538168949620275445332436615876371793683006028985800166923882688363907097571001703789593466453419948616639443782903939281862720880132594617097617684461646413268961474494972083996781546843139167514311979381436983304803773929886183333176520133264264286088201884734052291429600240685466670685804207767170304878252405490146139393211573231431727562993837142852878742000858411308893887503434146388784769026337994152953604207870936177138912259272041626249138498576957114691836155924142687408254032602179490306457793545520505592008018311861358429348483021432741462399729552244545635279958996463784925966452118935457543932217076918022343795564441442599482965290422388146622670261691239272417509125633137420585601620052055522822113660274841370054175748813613848309424182547620350845827726645532887554441491753860877151675139471392862841520810515798776376143987523559251044526432299924242472331393044358735012780585958495604195464909816570850856437278317650125610277832632066557124307301683850699627085021775052018065364028760663285190949809653435789018918765306847765374963029370365937680155429747147454375835563772267018370746115573341012155961206776384641678788922699433101593689217385441904861845321834626492251157576928801404597064282592279192041229597560360642972364001214576750446697802637125258957333289001116381010501564331893411632526448081843648333760687978138343483425516536977648134514316998138125079852599045888848661769548351477800527127508642880583832302082319366319614673991739111637423956231948922839239105502822299373206755661400490237978513195088530936486189155731308505444814779014346199936329488206902178069383534466130990622342998887252494809472776984140239412928623667224511551846503206177351333732851783273464228944440911427028763904791446241512286430490899342239187008532028460565597711213538762823279871559309051038411933809418563673540213349022308842000478986461134987593559441630197402898725684669799791569636331109625198464561198612851867878839319936430445051861616737389169391608132720836163867045174936925271401646072632922415732088116512659530315317807171406748799925908179757794061362129836692742592527696213180742926520744995800820977084180163070106561547390003273797553699687334601250880358601299881612950896221052125133491925475825508949012920485686398608637173290055109289799527085321639578117239821224577480719964806850929015823567623874932340900674893360676787908105758272642360597330194625093812712363670313515206943287952669767135052880175198068969358755400912448141893644655667021957710617756253753041002986448868272443309996215520686562079530564301187337399162785861280531676293075661690774185014755736602443526862053204722515947120653183743417866708255787203927156292837859067465156898638677557316031242151859100890155971438148423898600088932124853558835911436359722019262209006409938663558921179669325676780145918932855215395362994603645406912306437922721280800433829665178978344840684010021832362494794865740662281263042576596566136243437746556430018227754000955189671751881629378107728002577100157474612682508816431998908059907310877121230516114476969860479189647718287864592383292462248706114830123251355063509451881286988979850117935631412652850708063800640924394002505132038923324678749446953643898763315839081655498663745522523093094898825948928207923725579647834217944301504425527284111145469567301699126419145632259613799564635996088956820415366743079586621053640255816548255400167970294580554053566606602245635913357545430646031120029289245770743890691041950513254822519855300982472258247313000315461917531237548980183469732992193518356268776082422134276545292762182039095710981954013463497993567680016216604827382181778984967708933672188886776105517137730445424660006564168321680392463117206167015991637836776481864632123501497112261767673851804581825206831247260896511574059102243615821461045714420635636186706739352349145740204427164435395923131085917307958925972392269094289422660643081868643640657136664093411068189076779657861112061455324847550422679037497214151248254851468337817816335995380578603535745976752117766383351803201383474964932568231533012966034127548000330334826410506826930054426422026481792193346041243347849159969814295949162006961771910096114788374759681240450274428273279058353190732778466186355991022453725092151969262348338915012812591936200418478253273208139382362472723350511072355177911729344929663644924359752810693477457665896766671940653315001082314293049974947853195966061204359821460774533187479252869378233017883897287127394242397552388822488798320231847719664134801543152684662047591319178143313999567680484858504772466871210079675153950585519983067320276756110382507921542860320318645033012704685666562111161078440558107123669335067367720667013756707304564995237173152159308199961585212056484802914902889589905543286738180092788203954536052974081949720191379889862611566150201139840028437925122621678551387214692799000328486170589013734796501784973759807916529615138838093418052403599801085016848563854098330698014335213062975532568163979592200270636427279845235925491096049365042331293725194693382124417942397860272927237165922157560554977614411013460833510877821810686443759934971430056028520100861779432124539678917793011149393664430280216434545712387770911441032745148348457108048728395924268198069920864564790561470089243165317559639392209129159123141051952688024235476826479136297188289118306556226766637970483039054518736733778233799330975039718530248295418308607221651871721270537056641293448769977662367963472425648045046349709853560417747745137821597510784342149891217499620176963407633530931269912990000885067997236918683420573732711086992809376911001978720641945807239877305938432063490247669642356241836813357654024220790607568371128804584758578839388876041010369325003362459474096278479869809001942885946057239538401451160145429853621234960116607688032463565893348603691061812937242266735803277242075716405696767551797842887578910409145958112802801515842231013383733369816312681518976117699764897314520353859624575683539674639378677285183521040894935670502123354655874577313252522395618648996799651118980780800857318115984931895462660332602635287927400376362940430566479207217763260476007197196337725492947310614793419784751664354449713741711995653150991631203294872237677615882084639794981648336873124431144124493451546932507801219575746847105730689707538626098087353543211508081871303685813749821768335169003108106805561566275633912572020398584548328192667055468817796307466706728759662308226629317100890748814838104714185215944667929621946580072838001319315035227189114498181745150947788727387481654213270756357231319413307359998057611054806901919076864226551994307071353127478696894076375413407497948642081260805159497295966656508838188173317063668238248515837860667536159779086434232951577658375544312255925418532197167738643350279298834146600369190826006057635601358265394690229377810617679952847985622571718345512704901280347635224397762496198950942157256637129524594903009916358326083398969437930888116848023530767779019003287115006429498484492057081284809091339162204966630804188585765715505084549938526903246544068003044837893106204838439061188302210845445104202680038366841814327511089677248222904734744625930397224368539575112598127708631078878617841566911951443449747722093740507200898868537046443916481952712325390811130694686085391276042073481770578496305438519413462488131243656622763476357281889423616534808369359805833433939419687074024547779972149292152160455444659837161676791967406854551743882286841031914141119323063914926360803202244653946443807966445366743768998753868412630274751144060299074714933882125614973505260508272244437158805474493943546584246621965070126366295215675872414741070563839379837121258928229168233773682611837202599735311413747421896925305834221156375657451794201379551104760317374811072866892426171356656372300661720734821443955719585650144245839344969601469849348393536767314492826289593654618398293336869779985559765069892089962323679176223691970284320570689544867845131770728515857479241637153886099200555366645165817701539473274405534295309744315875252612208232266800319720010417777000222055444072161292871780334425457218784770558161110300077062779057886959327981265588614373148867621609188472757760675382588377920729224974138391903895395128656678564292144591044719830108269114624776525553327936633082220455024187191472343960160901252985685655954847424044385600062136217452980989174861782821490797080687674779718684499820153790198277291797553502306039622650458955090553772594909917351971287064695844312830393400629908737022190268420290437702038466809673915701127131812743517471951760586046350272987852492239490948077905953622627525321151946003634955797786281750606516781272952447417932174877449376710160258899199100647512910313838929174214650352524901463895491731080773590828916277743919341300676548445048145611908122738758894153462767436248053298462699368619058560178685239431156862982531614044859576882982400579726530480391664779333791484980014119808814691504675689008804317262861779137153793633103605762040739610609145743263593087393054232574505047095825771023181057066916091850565708014172951440761515522322839837972890497731030035945692370527012178911142712296056369139563505709997432566047185028105864485814361845652431693965265687160450413211306465768441275905881502971030464291784705772550655433420894641462673938588277850411347336479763643541912280240571256541175630822158080837272033267662822490148327709393949574804564043262573247834477102355550866599553188892920694662782328425394501895938429121479866559165774998009848228690144039689685712592332054484363535041899840414869549260374047802418400737784144445553075278494921793094995394881163740304938439770999535643611355234452384494756836616993526590720131803293475358327299349486910804201368918387830107091137079795399535358913246984795186184183190381052009810162381684442864366802021191724154673804600008748601258483397384688924878532178636668456601119289914241732344705420087994257479526999095150254788445740440626316035532222660279398103047773581936505436548745855116638764388334783513444259262146796441219817962799437863428529666809631265251486379358108635372131843602730183605070140752321609412072514141603949113428112147680486318147322396750696256526255824105576763924681571800420719027801232152995529337840470894620011529371785979632165984750998445637221077863572033575993650790475497671211584100424344087152693699525505357362638555760099148058740493259554911154721784133025124076163597680748912956151553728972197912081865880190356965483797655307061655852465829347152145871196492260662454307828835581306843572356219420646218498048895394712814874157367002853657235165109740509193306727194682578879230388463993652025917119699847014369302500981664401548083279185338955196169090450775195689384430934769107512335450868335174442061373740937791736129853933481420142217095116654943128536903652980204058903253739278969660174272169005745732109742376323405478132681947770902653985117021445304425448749925031370766876536936921156539500163876530024975564140939271891593222482230134506364517880842781102425499399091949522634330600162704929364700615540325142446647932737069742750105913948897306941788673724554887391326603916840283263075171246814002121638829939415924271025714382322391815944750067448791159315387295127582014780730351834936878588802040871004721965263620371266118519460794927141301196972199550228657301028668929765069117705620657842698201520197597724062712508660075156682122493147089943897542730500104280660435732871080400302060230713804787887672674761558508972564066036991810033411735327111896466620504723096896012942439888463769399302134064230174926655805882655543825252978876263753509868903122198077625560660894234174445627322493784224862230202645287342367849511135809428853347198888192882527013952798030881975162443669314568710128837414891212698001775098251907338707982520497251157487488581052356076792389375124993605354566655533706043835291702465584236417386342425186737808712834816618653389832714965403943516197229766964763334451698485314174804109060214151097696765358047787972985022416758070420928285251882937820711478248812020307653465970685119274932971298060829334303700275218418362586616640089689311929260527157327339692596388416746350256543789594932902493163700048763956366872386751598948104744881148344023381278609208198561655006393166178563811252601621087566051244331438862225493247364234420929857176695793158531495555857951981269579571119675214423394950730962868479042354837271166309515860085104106351371272553476036013456669908826406798148626182132681273966888570724341025190493602674498221926441387706160612795783054073809023235900358862701609613989984067451915641548268468257470841667650802007222418012977818497535627944489529132357909384420981056179980711149713526275083976117250517295246425700732925605133878476297865885327582147037177882072080875940200776037770990389411958542305657664822067283042237198519628543205723791109995270515644833296181953159371557911644010289975754922402506800863446354232464161972177302020334916794291091728633816617541238814788157904464595966306333823865487656948790328546629181815178653575954195616002177956333607438086929926114800661669834142258735383115318341278494076984915298884822849813335176029549053273986001999317276235514770952199867529751241195330501317016456861780785628949374213793946622619206861404810371851486568099105493151163519021912723408598854606625214992185991046837909942934944955715586488808874782270319814594392228876173883304322633644586664408865634714174503677674211818883993821729233646210388756303912349152162705870469568927046073538434469681294629655572943403988161846185624582748193052972050025932064089573615845095983683907002238926147899939440883600259775384947757560786359908932435474498908506643106222094632175938167027849355684969599804220850140185327482229911621728956918002404934464246628609052978200300177532210692155930407870909282197329180558404628972869390055235377911361799004883778120555934076002750120090201040161330482888712211015081520965192337672665334680381983209934891214322336398352653970646487494137462793007364743793929087433583511788800007349211163218983001630038728211253261213176585104459088747269416941628928056759084045343503649691875684799289284857632771765890607912751995591497096550953962479729299509974083024235450137282391195000967724675082273667297771129971381610754058311815209792517644551154007289010409571786643458019598628789752236327846746345621826573369599476761301780624731256074179043500760073301625294422696122506145252051642470239240989072588381966435650672503916004724429097835469082333558026215582404717176067590196126677760983076359415710852794593681491545023679268695118997749155395598990270267592809217468262397004507383779942138542129650494589078436963407526350428651331775166437319896885780583898981994216355474627891543847946611202177246482686432390973688424107223240527547883124250909428933043437031371253105914249392220816483939830621132956324545135254855114246467610199484816395305961505766352180143058096949750665619343979820475307770058416106333755685900655634678391130897538729260122190903605391315697807716953485235362727679571956852193663684113772455519516308837426089715836370205106296307041117694559208812459793818602498219770831517854384036554693579211781940887015861503904172176325013655694580330271127700826507296729088417212399764345260355892268666043848173737133505706813672722252882809328107569530755677083573776445139090816118421836334612406079571230509475623066552750938711704514455394707557169816288437003555559000075858653022594240515873453802775149149965041304721644490279547799124195319026129779926600875545820512004050734465406517320334205844280017805166727654744672750975296010127495602626620216166766565218391073827821665327573892525954400401312506332630603404634179227270913007011340753085593300118882018545492811931957976101747999228595517155077145608747263916531847547355758187142419876414196983382722353799984773314010636266953049428326883212755401175735235404237176856924050331409125531812502974097706611902335203735346335762928322433895747521531910166366057544251252115926143688120798280348573381218279681006654505140207890308323080983427698919315503836387266892968724358275955995683152251862796290378006355927575623681511106866603098928267755017887948348118498139334964694609957383856177507803737413746856214406632168792390054565903198058312629021224175647366992104497031084981587176442156831381626849328236302633438274709278713604487682188232781257006164746009812697339888273448171915521382382465779547954846543584572057532229160137369956203192933198127596380778027961175090259743963983101785152149221482511531599666010398949558562947451734345740791645664580516409670968289039503493556556368556928136266714898277059565233331240432553096014974725895932470051806439934695432291247904187257891250316410065546511130079339069051039386287702436156336313531569112361293856630692297493020464342482189869971868492328862337789216027978845594181545470247764797296611059079903292955252343170533880107649793591281098307215587484209261590870072716796071027845041936791352184761751383680756302299619313417446175977990692174884290469800770243214235954421133285745185414237441847417091573889546295196350095088870853425209349357975077522763940170731220929762018897352788514026180856849230912053371009465374194950451268263956026623549728997067212080141263861545301024470612289750858958086563439489971834686702651956600651295141999552846279087471877069524421461668831134460013145054414390855918989874015476830467458329686130595332178473256982128950144586363133845102042985504627832968439968954314210256622216390866360865290335038772822453071731879046278846342036007376399859870260676751905022733772692666432849004236220194515355100994449211557356439091053413290229270473616752502341077525271677950930305893293871479076110630375767810943581888619979169634865538165232986068179369373990213093344225909223570360796911036033774618551603829546390540149419341335630817153151427842176839655668879160015540915313044165354734681560916820815324494138658154280634727670978481114394611370368271486924775562285193944301584310555513089614899171890873869224987527387844968465875023106274155305425615852354898650145713777155360226467102064966916735888800768898832780039134593673957343612838359979163469874818540649041854147297340629858227367585322335109669746155870945300894766118906932979092200552352587653636927638583508954706104488089895487828362005229779597413699563031579666622895276650711361223350459233356943337012589077540571331915446862979631111902047249367380884274055113963321415184635979611356617682567043132462535245552993681227038700079358936922100096138326377677461178681012933819423132730266381528422428721720244888660991590457566304367852265184286580938434956093802528653728246456264054998423089542157708676845275765681891505443371455465538588599996859242741810816334604004685381587533364162332120573369719128114333259353324043238199639738619142365790930151300353056262630761033225034606153228687030396142747927377345771429329474943486877466401249094368768350322327155709611918234371737161001274348073096211416302169903011023746738237057394425444314237556109457479081553019460213428750133945709313955265122211025436491995699542998614740004679030306897930332172134102647341830669886442170130073891968360710817579784939535259051464538880343350989762380630218491000445421005768567864206831598759873791062012786965821757156124203154293734706550344731605436392432043081541166702966472981381576092296782770573859445303311009511853804467673133414360341503652867279021492597316584865329478555148085771748646870547804671153761048173016785746283599807915643332655294755566613592821675443092791606124845821656889598188261500808744257900831246725472975688713137657380008661289045199165121416046350546071643123549237503647182995071385559210200047494153290680576164554336836199214990049675032802447505681346234816499106057643680279739567338371328090386017420739488077319717158320040364845350598626753572988474137020528267468410964728654042175476345710781376519099475807147208334974971512001138415861022039120241647918974658475904158354924413544556113654806445765585876797512003450690885506085182150873106184347953459963223623878204971449801093133890952739966995632911056477532315686540910983523297820819606315546160617104667834666153980469174772720689650578672715718459865001591984330378056381178231739458828293978788213645760391585867363825369495712143313876608141380936151342444204677811854734965943342296505961108880358597828737671659744127672604476662812687825844088010573064040644301234720867625151454977873715697495521475043948703984119216386842334668518177894592362770895939346574770461941713862264672574618331563223239561096902386235197124387197654348010646885918935055506361937386207911517354630036294234162160231103271975880697890734159149023402834589459536860231971249739968621076394124042415020965518003352542672988277124432125868911165617974924993437380347150279018139950815360060793443893793232909561306433334868973984255805903322976900763508439272112960991861801888109097439104851623127883483156077438460702128058954186890185622909856261674837941315182001614454455477811989636898370693214594382861906835414978785975286629256858153061940144058974117064564331194556266468235953666876115146644769724012897864796182472496541758872559156107927089653870013878395368444426176359525864207019117726601591125156015565853533711027460627491981054183107760005313241327323841537083746449055959674842451375733215079766791250589944197308453716110295616392378766627050352582457440379791739788700258144594782527904731832618314226928692843395366520175969706749926737516717799900741436824219378564422530076174392188872654106769215876569939083069865671517980683664828720078075588906306666365338256070576442103495759516292802858149112024968589384982369778686397417500942204847138226345987988313742658245377676235243468351255266557075489957664879240684219985612388441607900220520751590725138552062646556975672237070596188823519970703369062745058889508253750593537318610372631439448524678222010255545136077802285054327119932073675679540086215826314689256261226591331465507061098015309736750485527283915937488014727864816866670963253273082503759218287887497646377270343673881158565845325086418336689384583495030520287120923410755975400722306312879273461057822804022803367072697522505111941217283801972396733019070938097534588839585249746516298597156356482946441252014672978072603208693485039603377368341751474160329654782031004880708787800441671959974023988721753584215051170723310047255910872021398189115758806930804985496009834562278685594320340583347305255849383864756903861400715673717548576138759463575214959223310212332170613967989944298011391160895489492674245195976174978356134726193690301322897928686416936683624353171577276360128046617169890845543692849125442659765441371049604251691769607924291752397755752788393594977422330892329870074967634492970262429471360896201297093461464857166829139945238210245101804986466819986185864782077316426946643035102591044764373545855466776670441092074228655051919939301059182866904380430043019872463397424693341515833638178650523596324942291230533135206256123800213520042173688465285378149732556498645982345261421167166401002920489300901250814111009544480046978730143122410431023288211877849349278901262846262024601457263291933885800348915957049858227312282050121906127373634320877460624200869958387069376541976839298313698899913915066979165483171874953289989934812828750010493792649278278091633571399469664533272311219924033295796754459245906967591803421094170115269690975076863400206147241476997339470767434559743118815402075423398771067324841966973579186274545336767464031658637358244179546647028663020489061694274551199785722692703170697033975183203227815862747437782080739409800237912715626087883150018284919231032620161404449707512599691372702092437393118453555462960622310533195026714001124887179410598303876513591475772730889237906344369377220368458818056443218020537402033829876132015097914226329708301471825328124189520469347215808083965964235178364973110115050933573023814728666643100774208459172452499955570636150517632617181727242057015440716326956160935956745759086768799840526233292874056732475547145676579156929937871862106577158574044206735516662240941645635845634343093657205838918245732993387196000820752440345784081495683486516462039513338641222981426181815031172391935817892006802460135774669697889260594174729963620707691242457482213519394996206482245077493299706011471069004372509545596071500076520263911277892182044008946082707433292374790707258257423129386033959818716912083599414328417414596577031376224152603652299668153899118666110562443760270449620807195613942229238354222673612519218079302125506271494695571659860059811167651382164248373742685606121990127879323147212931002474338845261667274082553897623467043568012051708305510578299991403225485150796489421601199068959246766619087053513083011415573648783442588980156269702301134971226979572196803880843165393061051193187706218784568566758830220183680688272869005819114497166701250445607195878951040478440485324077417568665987132070187610887413910264273478094394287882261489233871321646793829850798559240931232609715435086852669583018672637495607416259262462224897627337384595503706734490907249028915822063207652276958302519509382543316868532028700805093914672404561528228293278327588537630717589957337644825232291720569062582974463437713572851293403283242924708961303417268277515402730134009460863726563484053017817406937265613284569048886164559572788416477917736561038409016428422166902894247476062433751930136446305712578867803362738668828143118473358166291976210189784270053038546491109082625580082053902037138891702219704969589359642725314452730244550348398019054352445431789648576599257373302346713922427960784017021407967151925844534703811149444334882428020664486382014556992361954556173750530085011304569885492434857857388876789076278491294081828110694646101620951053925927197203755333037151948479288543098203691604067839800232359557870588405389714376530521902211007257793295094613942654247527412062856012009851505765950213067499837504139160897619020864100699326525439596218008504425733388223478312724159393760553435282312226785685107489153549395441428454022585455180895113570307839527065929244805038051096312364152679520271442099665309714704044232249703421211128764289978237687308059918018002543088014686551739019001062461564228936725125160099551838108011635048524250584172146723523221785574345292395020751719954903045360886581996927080478296815319277888750025832958382562034216034436979383909655820318972819664260864173407425717417375308583941270146203682957530258047760093476995365437550883709596765589148682043537899152593482982106199696766273209755447318431896089490150675948371781655136867664589359558670240606524169593149223585397778228029218840670761007382354911296719364366746233936828295976110889856872769385977992312548620320529911945443963803413334033441270302640624597091549021114506620794671484356881554743034182445308304241024219577242635010180345865332185233332361509126839832765508601219880923956312184302622191575937169973890510420115203524898950807907480221673137556149218148524263870415634864429569015469820271602390329543248571907150863185819820295607424337058281806092268442819036552004290043130775382807770712219564567471119977797907970248192670578163780823765280568318191499825527705065008274846272088372453498136622549870569816885064272520356175228024727797810304305628125278743228408786427357149279375742026597940147050007757375049930075236246410637654171557782391209667119186859232615437326854547906337679373138772475522743834325204292630273711804232064295709931742432014881161121598503688300597040431970122176111758612300285208374596810425849442952006038596284771760851218754761876239262746295455948338446294858977717419039410886651303368232058885970786205581763289575761761561025404152618461247789693991044861818508775131861749095727778121419465243486134933437008995429721768550475673833387871298306283143581791168135242224791752792944912101926075336527284258399942543819988046700549578431440652694788995176352393860287886861745288425267032522963062208437029338522385802774392258283974848271767856573688509258492091428917739125246860434731993877236571083952203886496382507583248636746981796344898553659582710267626342147980329988874705895374840602964119538144897565790529022781410874466005725544422318070819183045462099795536798762142185556876394898316712637306786317324915770527439387578519316363894511210808904374022901213853130961630823897527264947811517109002244040781253668169781291720396824792081787087910058250794744040843306236701922517454942541170114524456391827343772546634497412956214578095518525693754983438570259195028756617097547712850976400209366883066344186002405195084358506415959304589913635267285082730996187007763063853593839256461171159463015520186852094756031594070923689672119549870908103091350540925500526043943113293387476551767841873142354849444992757745000895287501213141467368090113279185580785220919719096554868154811097084759590558895615635267003603576008815424517473638038112044637310482676646403838417085179183221959893888808488730350438429974355673008151497248072836489380174134430161297598660383932840058853116816793225278164912683986181672005360596450532339785124317571523691618081813564702739813706870979609884205746356945988592742568387192758696770410255476881879103648668451576274337872417509020005052715388598964811645114532035600918894408162194358596457879640664097964439894122350138570096114244804909534258988430227968425086193384046597650390227873335564214354649388597838024092743142011352818998138535821591306186615566200743738464315392233284403755581354080680978353288116512102379087849776695761158066333585015919885964405380637994439036628410911660146968459306053834244189385360109232093571531254281777616110897376595738690537519139337071080390989412016813345369495995212441666129334839152602956680806506172649775796416199579228473258936690406938978900450981913538289931078271404183453854777692514045151065947527777412421783221349703500871913402635306550079100987142898773369012869233146220089720849624764857841456471668772984695903203555091016816594828308665289721105052538180922804555814663002610881867016142961627551722168030905528108043688654282632032920936162468133067792551741048825166856650917284676352333914633410960090386929788185853752060749275293661744089820205940813960662235734083679606268002839089024923614612650119890902357448224410964069279716320917827486215594636425799856832865352291117021211873210556938036280599253675835996429746952544178581524029544130278187314707584419981596054044958947653540579991647848641156681598800973140801091248143021468990538671758620773700066201584017245915322263510800230929674417892695979988457875128287177607485880355927829117963581097038927442443172542933433603550021121617702600268665661870915397847447877220616632049055697782089484077175976801121804898958152342252080179059840173359498878533480492435841097586373126849386901274568337513388598291597368561400013629473379256087920524059125409656225561474865268611711425531851173536417184625815897508638893613005550248989590363361906623305376925686395509218486103739396285149064983918968696737182166076802062328679581168621762986431332469773914577651569085579385523914370246362222794822061165771532078474255051314158802240775578290398252461867417869154218116059710580406999014906227666372167676095081374640113299093088779337279028154734514992371451240862591484969260650537140252633060497389149383523635855569816261168354183397456937042499317566628144308216366281017403867465676391210942906294542047843045106992704345409618601749517801392956292172553783178007877080760820029502582849997508212192540729683278265334589217416194762614172186707557895854310179313547278223877497711114489749016612798928272785337591845689213005698525376041626785544134830806530629160302059082402261216212713400904897792494815803261541961314051753804422275272835746506780141978767774654178099239967902554662224535224879279089758130442552821689958582461555321866675918718161562251017908885962402200272235051641451448410511443161844812607120300384953080910282370291604155129676144697757466474282609910746779495958236563722899776960996558456209757862361460975231760892931603142468494015205788605077900626003246789490346506773768360914375187463328171273092010599072223437607549802132568689211238349493593647054407667602492954608166175722342492174794912348612663379697882225303063570453584230390060502384200120702710402275483986331440518374212076712580569263969187219969641520628801488259003296022577896852414969117079010137561535964780117818810410207907406225164924247955866576143439908430131471914305417409441558157739498460769731873699449256966259475098333100649635839007507568109710347447612347253805287517001137562649885764715829917812376426273432417624618850632153436419317296472932628171233109343117632431925024631888709206624273841675633941149347083840860887820216070649278917260566916348989407031127435553639038647994000049407399564604335390050706287559497240120531231048919091301161600519485319125559818621194434688670858985067768356094228141539249137151995688274571214037390361912651648245061425975092509943025433559332164266435095320936980968085474383151364120922121941279562740890502171896854976647365514844378058155651940505311979104324346559003700048525743923245056334907356608212179127092600230550455491915490560075436684242429200714462442499723850495187908774527067145279141684571441112959137332525578740818490296718441869532628003517605729936579919023517460316260217626715715467250257383212540422568891169520742906263915337444093642231618985154786252468764685053858535833778193786302289428601944016382233879940642838737166559224159472779732454192232815967132322877123097823936805567262685507012788580437285034655468016528722171934811264490155272815286780342330514124240579803890025354626565294392543641933725004669802167766958838342168464048821597784589050040679437321033904862531466329316969734849785792871516421974693644379862248808853617976981940871232983020394691963772667223186863630362756889525443987804116896318788065884620775252020337834895639523870274769987697249647653664249335361350186579610705207501824233105919057559268832946071308480404900236884619717202551904288990598711709685490067865465434610891164826962805573088315385951987498835496891014472152860136127228907108637928290561179250712194623811446618835970824435993806487183014394539363150659430807716175808743877824278609051451171155363963823430467932530300495776884686706664562087529322146864259299738724431213840415758302383217414790027639224361872789127536671477890644900923481050130916701087923107990570017294209888104588316729104145718971403920107975001569973749528503480747920032911896702191648216384570099581313142245236527838154575178046369779918176529147706983357029985798053408927424170274737250057937275056654085821490928966051974939779083399976900424982431451247238065435689558473200895098587317516391805018949310097468961275506022885067673636011657146137191838687998971527358142285763761842059601131286721823783079732633901459709186842182749745110999375570086207836616828364832513664934002545993163600585473391153377477982007382264603930588678593375118705230491761494917067401986064600940719538166915313466242355554736095658505087231098082572719725122967810987437599837124727187517607633760494854947879798768171651825745360939270897140146429719794504721692947870079285051857460978977694875393901208893519658292383797489131764220834227241989665113966941535762974111943422472022362507085195335363092876102375040073331430563072195549386592295658712070757406862772638415075597918306970371519025828386501346040483366409527354438091221017908958075677658587589228412852545754399334761909561610914658115800042466213295866523131975668444017286146964295599841026934945852000647549106811012677298946629577460197056836966882407370175169810352202516671082911836697701716280610548275742300106617802553358243716311383823650539284681961834573114039535784248017088535659475905789035457081581076141592996120489339227849670635548298934500965181132015457206728843961798191562805398033027035601064828415392052961551836702099001775070716788408110464034040687720274996063830158611480980469059642997944774779519848465612371240087576441123036162427627510033033299097054122359941691680591382073255582090553878072912739019770842349262693599100740051139255880672159992402181240936013307689598931890238083464454653738279943786956975412614091615275802387245875155088642371745382487144790565270982973278895859029964237015583147500128151528185926444417814085450182749687500655596102862403419485802994454636308861769167518915302261882105885411753160926264700767798675089720624582362634027273252909582696299712927901929892386473260864341842291743196588697307853438853778944291416332278786093606084875415889479454548733825917762684060754611947832620995398632378884794920326633706176325606337080926874334021525593523431738822647358509253728614450718793845269754193432117908999719861226145849937219190775355091782521520353495257118785480090506533801400827499859654782794585261509340653481098663138174389948098241802845175739957133264118744473228651151686699512518787789545992729515548367939823326077993940377811005944859486166398085137945220747208080872899428972905434475475360471390580956581900932451712994541410272342159306574841559577468959192524546246250684876945405451088014378838100219504041203141087915558345580638943146391426526767336325714822781972065557539602837908081601621526470829098271152333891982068039742341334923769940186763456444430123226396595601670529175152125044266166141885216822250187238976286031510922107624647805753520829097279798271338452039509409945030364990616077844368390861186154533654534755150311072495444481801643175972598522582009397347202233575174207233064191119729347181637941625955995114098513991911378802417855084646011264443514390062598003925493905907391045798691206284016115885137270733248011139088237355241353167289038813773908307312848147855843633298102916832013407554036782963331905300146829966939503605906251767612585081213283200628909761681644045430883934150766493658067098645371520261801817220345653563911033769099647506127330442298538796955504667007447743429335401228631565525676977253277442017977633536402053029595143644774678562952638780220649566518087127317863552391614864739747486128142156448140280335753667521829195413769302741785752995096015065844267641848010794524174077121291575092114138766010426659892996603227144895484710678366301681987012524590651927333532036346073659371320932085229429447940567808669768869810066653577291277262864149900587885258168649620092723289841707524160820466997030487138586796134742280380090943260445566549647608711357299468044396201529200807374063083856124128626552052263285174114746824008517509808586011060607835358564634619293141644111041524646057417328683168359185783791812832154722639994147094802261609774864490571982369150636397340766558190769078698105931809893406193750566838518660214587365338145493365379095353586661888012690107367366224684972668559816492119946107515014474438066323830447881918037931766901369231989807087807671980585710554510876155445750539854719640553277963462977788910774399641788776358931615727125918625861450491278893634766049204254853148678094161092023565288213452567669722978276258256436631778563463382487191998056094099900558267261136680862524580190646416416181297392771825810828318445824751226822852216755221879948707919410445527820994689086622733725135525374183696144803396716956399265308815756550095353798081063571775327823907128110056599540730987276617332445389945222922216967788142612366106787914204389665642257300571428197092239936863791453405816648901469417394285893741785486596684370464961731529874525462495594570756683750714387537135732041790761709992882445449849056531595408234337562762104450734579354054553356410606669774735495448630457320015949629183545810384591322491546135735794769337321318762380953516674802308876158429193466804440437156225529421292551923985578237956750778437221618742240698069355935803775273719058671126533831080185618673149459367234752944891921590796011194932327156257593680169687704689672892638703142378221038367579551334980014876807314822407241942180799033749041682025572011215316218835124623868564124312813033725809123303482634562189142283267035097570141928580338340682353864349199145025315744623521645115417276470984976666057568608831407563757032657382469569236813948505444481847270562564263068068772980206771274094198265694230055256443072759583422439078799374086448467692949845200383177180748103481234606335712111647556702883560377697819289396278270295618140501962180185950614121469625199302287556545374377401021874598043131783913025236326515352526403723692281677276576092477387783442583047964238770249057941733526144698829219736405307913267344754852943678828523689684382876019634592822189679827893689544273028309571275115217408393511037277650981295901619245841817762946783247344518506850426103445909320728909872732545171017589457077081195658132390660788749244523446691261270245209513619568614999385589846435730113706815744605349011309671784679353061453350725449224178821082779267264519807116349932788710585969230367059778603646449415133702844900831027155455320294921547266597488579721697697316333573584911194794804198999505362318079775454365392940205498139466229288374060697787051812422556360590985026836364700342294126139765193034431592015221527411276776251418856969546893951562447882200391534379306614865257363871589674359688734979639745230825203357859954972034731628429295931353507858346593752697373351851888682576749245777630046242478554754759973648723281631981419214084513701899643818619653311086032513557633894333197209445314863816138918898409625129004901380685036275664333142877600404169531649284143774020520825771614463563528850871917866109046140634463990953477446728563955386354583763455164276696562087304037107808949803763097686645891003092409943004784087504827627771683326163075325627924971498248585030071220869451808143855662908757658514479803301923974521140649724256260494618047728899349222814268544419073374579949928010207762074366257118173621087051847474602668366341987148440957209097466034170893072898738202171507138464866286992780875168815017369105291037995861951487345157633659400316443800100201053473156534847101109926662391249271614507101669143720546195067096064516456242645216211485364244328611078870975249998833703335529569720340631142395105462297471809191327171362781508241224250514279818152419474442390722382072182721066788308148645316508758617603173921951040821865435102728353357539136296334327653673011165483938157355235633699894390516034031573832531563368383794600053858932265991502904828654304550282797879838014993414457278011291755461569396705297074230705758797759218991709528475802146886941414714158799054178013597549342808848491556803445897261153058069523331410414323881767279829116223763284936303758820337723050146450258523437482002241094022304595760096186375087640616089694255099589686521129334611116355574792584211476780590351059511580883016333628352936046004774180005922676040130429553946675085687690319138867977043656487660143533035101915201479970728295662704337446404810072165892659299025992444308919466994166393648549051789902619826260284216138882657508836098425611593514092216449103896483690013433127890022978397479126974893802327559625993144644442489624617542988214624768536114205862492741659987265953260001781977009059829282640388987412256675134561766541962779526544832694421605742442432188333646925072044740559189123066594041673291805243576227637457863691437746669455958552983254246908218840188763330386520271774873665008161635893893393085656451160215045728541104658548345084002705920799216060934074541941162708797963749960430994565298249738847609539016153289964580012705036411224604392622699629102072996877944387262432547095222538120890881324771052787571986677732357196011391799524727221572733369913988156533377716691852244793333065079272957175142003968828098791803070685642448578072878907516421619478642105111333533150333038481224030292686616881408413138474983770035651569098816322451823154615338171445319556322894919756465997732131634022157028952583313631920472622004890242895648387710997309186937350244946933537416553272709668129658459788003256146389769718793179225194335870966164759866355361646859784915145214300735242137483792747307089408423686069289038642810648746099619294414537931437108013670843526229943873377540567261033356686852238560856884879547645090204653671097700288675452441838022571504788246264699893110975357964461938707574105348573768346004927779517055444115854482474954248747866108776936831058159222637868494828609790026191853754479870348077415376692648094580116565529979276342923711625900647201239305655336224131448398757482611042419032397917649551581087594992949696380118614341962344316600147769567648596615653709370807525533413648340643951307772059404430042807716998584032597123078223048416757669793486151882308764059142752487920842877986237807840803666137817236756378588268910645457708991485231742404672810687915288410893344684014492897714154954575060706164979918859333916644789210722480738315005983460262801516227423616328590442206469840277130566182689132655504616659362471554945525783429545679870676103402770194670167614865474343139080301589127262535518343477673191542715343055644834907299988069420217613973540217603759461244025148334491576253952368542732867825085761277058570030010570516055624857030132645440549226094484682907935358385411087843326691977867627153993520613373603337016630459986454394977759450491811836631574148360581028338120608113728341781813641909645475620352808848051712372491917000984565545600805578522773892902674523470111458121393382406966083814983556254146701772427214784356496933339954982701790546430394590898710118509175162677797508317518848920349563640420513444040717738541854284291470299576992360949170108935073038118071180860470034464960791869718899163825203356687140645022477201869275880640031033445212354472395598087586917483199603737005396100451028904571669845934533793672481107634157664826863835018344925588766802645176022619110761115510203459514512751262540087251447935705229865384068195700376435926675124362420712190793910288644395722078822099556155088928967730396984593276280142222672563598820581151267365663570796828892394908781530679785376839353039367362040273084099641146660856423092122307447523886873143109226450969340769475401546471405938736835960651043585217262459529663746909889334348383589949612644840617520166576712886457025731067764172687994528576468558489110217981593657826233703935847891180793344325685892420061747996031303041799280622561589029054411377450177726276101197930785329254444178377632983564950245888088551391038388124078744772438419278991267548983716628931593167808970494251466071728402680443448125150521339043882981689602784524802159939887379044960319747588135453879813492019535257851169252347131929981576298057674222257369436212886360482907519440102047846677925742954973109682695238128010576107934231249867178494408246461604789108225984157857794340657553576973118441226031652922997121624243212690094349458848509903207810437929015450125917256263309868883770103870036905024167725183028840312886081267220666178891238686425518383628650063317865074607691453689960987403708435178756900256414867552756794239537474941708973928558626209462314555893368249665324963906906895069510738401620856683129695994571768873684825942851037351349326907006726269598749502495890681968236144690704532444162225601537992143940525423493083051628897267264806417876059234044746401544838569566121318282593664468490325889507869250715441680599641196258045569844833514115988594436943490449334529262884367053371491098559114906556579181794245984902511833371509505477882015492589224885636466177569208593532404981289010097270476853153261750706632516843753127917992385041472386427742585107026800620652014741814123013120662821279500061719536635371781340649176440506363493999973843955294877002307967180822254626586331462904522605016159939779859685855815293125600017183480755504988252984793833732007773379120876784936822284069303293448657947168033192437453476062999302836067320417793662917796652296519022834935427566382199403651423315523214548412599011625685266437903361485636575523104128813332034320727091890421373086645947969984617627482631354705930644190259518354759694357198818622814424021540607873419831146265979170318195603041752534288132094310196513680048161257888815805097479412667595316115470512520921305262093721569660082646449955416440285388584420284414115702003334294382152383218073542838773252999299297004039567202897507229961566816818357780984387627836531616548471790522210497770302818144570087012577345973267265652554645074184482448562426467197604081564878393098173297811901172590396846523339573329665932365269522801286084705074400788660382262999492546292707335795507239283329648053413626944181216558160197125198705246475791862523235164436565473578152304766421212444802511696048493198748401630951481399561118592198483607811987347173967891808262103602457528779322833867722358547970934227441237317791921623548914291898966498463637683505507469502542906995102110577671909603905733391520600620554018983041629724980810613213089746045213136059524600951342172673681216840036265025613349172613492182983889726704457050972330542070105552817706240365392102207898562834738230666944384169206305585086688652793887195072744681949743744122372004351473229219696080513723415088589513068818419135840648570449885222406013492701610270854369255292389611662495154048948325884212888308928668982238721312304266690870672534370109139773971796812683252394665306794150218624922124796091902855675764382310300048686955631560014265920434130968763545576344865375375958440546500994247925216882752886264194692810193703540288597183801186099256211635337084072945906816405434562018900812745821276295807703099163175894442149529952800703462284787052951930615795022853638449447281321113556268861222892851241207419254158189853967204563768612445389327194872376659995724117798518130493320813089751296292771324616719843955858830945432293126058134911946137940997277443440309328926941058241810770786902952638529049888266185434611665074519677880204287064428486802260428477382101392883760804818167360338786862260917795704556943029612258661433983387564435095610857804123137693132139394011503632304854897302427054838678001693476165061194928701156076318076299489972063927652842301941780664778624475919080524414234378855970167386185171994515135789361522093788809878529279308100017033228542614518793048139626545883575572208666732416195229769829690511178648478268402069275025938378201330904704024302312033656745042174463271012054257264857596854353717533877369573099848836709695727580253989652732990670461169535683446119562812087307872402083129711518106587527425987671440653051252010284037400115773097715094794308692414590839781954982713624734095316246691309465304462590462352812446941044316434525551443559858872825395932803647398053840091237837686654939635900305071460077973373821595396471570692028089053756130276683957620894673467287650602856184945899216868914558873814609924062647653673885438838917290542557776932512623522638544704075154008458649902749375013630962168850878222228348114585484216661155702507494720713784550893797354439064084538458285333785789954467007704101002055618954383571423188542289195739883570663407163736285742796590062890577280856697868570972751225445361467447734642541748893576203348774391041517609301760738986469997004297820962226548235694748841282275174130931020405460949991040129731269732654356081885527688663573373254155059558805616319113966054247118050111361960894148986403455097345812128536416011728900371744882085718412381401141853183010260977882396991677009401042906945455837600718732743596334562978983134640013756777296767251746925639391104904836484108647189721115100976795634348226868455139316995549189696300295262555301621005235356827446962767388436818372657827949534227955155087270267155807920974131997245338568693662373568990856505060651327296108839313655965977927702169193663686837789744134516877435731809308093009810314357024926459496472806893656187928564736027591743185038474878060981264598349558593374364268087102211608140863096061079109192195920259143656907476993045739484728048083476425725098480527147143297633725574813732966623008787782579943183042766494243506780156052016091524961192880735552341370436482282466934372290792410236162547359509527581342159863120541394034539412058436147131709618821962179030947379955840743013297433178772131188300301198599821328464621464154533890238091808319289343609168804584548138712622706987776718020443568556427626224937584925827662699109094797171386391641785879832623899629521010694533788683731959807649990606651581683911922216272459591581249580171322186580368379901596142880374095165794791337306108542079738650909676059007576224611648786605794584680537675538477347995356232240125096079127108896821628783414522388142582493157992794711010226192629337422707104425829303601794104834958871536612483788931567795140638405727109040248573537713386359916642609518365854141763678307851764775788760345222737817511218794263497579231514294444770611282025230275058682370740088225583189501599942990311984222990233704882588848638743713573443453007985794109948133866089105168497816542802066676655909837709956075046911871794570085809567659352985613868871891251870160706352522783124996307109621463220444939640235744100005538842695224722232430945325253736720680699553172331810248991934507442564676752459487348742167781397034871779572805565658128526594021747214237442897198558974278466912718247080726711446804839198084526286125910797619139262531720680189913910651711311328808413478459862932125097409830472294981463321434987552476474177952588394279463865748181412795565865452701264622520097618799624412301816829880904175515175289811395305044047124980896660265426515239080054691622817463691542169169661789270420201260480130836465104029853983196397550627702506091197162473454899446648588510643514973579928867090574222899399336270836923205398691784911097226452318932719617302470153836913232745423761637779709724770154642961787120543084045286128528066247008655030179851330413237942015344524873326670019018840645989964956617297712619682232586690707529774227130637358223672029094310801119121327467663460978277363100477593483259467031314574891518832580415211034260499059682703162071270111452733191874532518699753611346641360238848888888695052506606478161576439941912729618986917566327356301768869345863399643127629223767606565895536412319697152949515240857140465877075060595880709677082541414190961811242531457842721306421064902637353366501442481533565684566536109531636153325370200093865048072576827199901302834909660715397990838466822226826378585131642587712800633916221761377104916242140828945250153572572039574799170599251790550900500274071023336076037768881958146018794033527054298347254822476630971822712925692601870003734689119860083836927671214393479445848112722455533807512233158055691815297417178014819109803859783080099647275045581943423988012591627344957451774872668333457512160451952180140132436375235170414437479047512030146062166467794381359157443597239635963344479391925167323904640535576172546064459030076833242701344163000258994767564062264603938146699200647662557118662058898717290554942957680614120092897012115508590402876757179033541530983026396887054995253018402193687731515160050145077337365664144124480544660151916802964297925054547777656017975221241837137675569077758452287190460816986638617375861609673756030047047504786878935983600463580279881241159932015341998268506163434216667911933027681470076943486340089014717316213819594341363886666378514484929948393279363037937421866674062464931772256055828965292530349377682765208076861653217856937657832472330943879103293870656415794209123166713037900620752506444500892695791537544548933440570700348431018016259256138179512012376503025620211730953086794044219708310110931995583556697106525610753687175253682670618025691272375921386577264851672444846111655391715223495840067161963192437795850247324544413102635785504744569496592991285603097512888755284992890380441400399460015754498866887491438481570195862126953047746668103165831071857895204487712639475200102018759921108527921703531880097143609564315223545104680104045979459013125377905863971640658826336932129906998700752447311800964192477904973339738239308828225281024084420392028844382131447021868986594393015124191261292964568003611796694198538881617484030870471306540072701581132054386114352117988071232398067031402149505569866441461273841699956376029387250908281781347050826036385129455779382633261158607306344582002348106461878865238002031249450875036006607590580450312447632864744780991382021939393307039686823321695972846039089222931952497613378587473241806035589601532518295187820737507913214128025504131058225984141213062856706316940003324757665242488221129303583491837628826173197110789439900138266256150215015861352173671971353827654348433940713195921945537637165952684993385644364871224969886177362174326027131395127497267490379680134199546714695308285665808370835308698952374602421135839869311505787855064681381601679418088290337846638885959504194346453301185559692909187816834576841533107393395934729133330653416912127586035104491067144601970132145054158191778792233777128007670772889659728603977953985616940640511455519877759418511881853824095275521131924504547663040412540801885086281118252079871634463293770499416596390050451606593266176403558151971786382499554832425947341872327611126980113406592284414798306688451782714924360354905104589298735055907527783347984579161183987579282168997727134299884177137715000404209740852834732026896003673992186886267015476918882078980814980069225218565996416761280507622171851291261628139150632767686347167697475484562109328007087779155488260190082656509731015051309744422541889739124294615888937243519768896775710625882943986116862911265706875174965507202572250630664730650696718532428683070522203684509979349734703085707023162639180888725648470756493168152953019169920838216777378406305750959287841977492399825337868204361569214561095205230797285655377460495591604311477371233652656402778209322561501179369997622127046967879458939632127799088357949048263402095990162838530248869475047002753256226232912322344584540803562955039458737377149958345717859347375560932920712659933801670911835645212978741566345837973940194791039817600050732709476499362867327286529498355561710877194923514551521482153723165006208577873907372943815768812808420795586287213885840864399867630458897459001392164741644552088452257381223215420244729561917126354206354946948239440900277772171434622092055344334543116965763847462690248541951638807266816831592593036170420200149537644183009213922995419473077584424530205636284859969225532115573932234198104224244858431243468141601595026328164927364273217372010177116231631682744576745998993980526888787047364724856478331744943105320891811864253459313493831306656867851958446836530126022333189461052311040835714121712593903454958015593637118771563991457366532043271096214153626320939774661058405942899044406449018743072680780382568860486328403143062276935366262098782832661785192913764047975918991713903322451469022640725658285473174240175283657157922140136658728454961343705731100920682089668059298014113781761886842743015551108933852250727977476249580934928669356845587676021063300180605094786632233394173807227846817344430929220118214739545331494121735483967107802820692111163251694443716575723492194163902876043294129587555358384631149470820228334228304321284106830407737717471764296006998916361328715846163719006247028555507949172219345421956947790557672063932416877091207689810774092738984292560391271653255515823392443183633685178540486905593275533815967697395789075549982692227961058124572754932319839834293475671233095401992586747337999301057495978751515297282322937166111826702360887772299381167794804145420586764577968021862487534490373341188628808146378453826008310337265404664702820773591907647667885234689868649242911490407887217530503632764306399125531667310271365361544357374374562645416016395302546042260596695014900378435378241747808981465286797920946250622039107935241378789015153527321598642844013394819742253743063165823358481483374751106033675285968860978734619642748565905716846508851449674057731817319394374183957975673768175606088886121966963543836218390319948019438276214287724547344936709820270180575606673746441732719060626629202741239178271030985869184010453253314730761695396151718817825638837518665097825357333529081453207957930030191027154636154365223934011160775280485857563364893385872884610823544532905622718390673432742608929481286049868157809180509850373341094127384977268077693783594498326829056795780798037433768452375558071108146135716633294515379854170778036140586955517922897349216074070188750942922821843733263200666414701465813163109467079514721018170046615623106614348548272339698346072325731657676656366463055710089461036406324645856195641759869767603835377892429501402912350055577889734068661929423313996589941037074037662985132619707562258079964811568546496721667971880056040044622775486069409573332556486207206183931834691052848623492257664311379206265529986914455288677519966607798188940326496984319839532671159256715635776774856405881197827299718392608124502764804112108078620997485671552499491154700288469954001804574324913802650052097461282006544293314599665492532655792273045262312905022598857846322726393266243272720832685024687219013404619634211089985642090705992542011501747831266445667842955894681308491914675511992475783493563013399755987293659009161763361373903050475164252075969199612621350509356646744152642049091984249558791551474269736242722385596388529704184784474233854947687160573370339348631530266647523980298947531903881940569851341953516994379274012992340546425147367893379457699026192243108629765012536065422627216967458654829313262850701858649495796201470153730790331297727796080083107376107955208412598640104974348824269744582414464398661901401548935959335154344290663148091795669359929410185564193882287335103055118260360239609931666976805726928962224787859214307847250611778610366173510782079819275259734329519855990039035399579241634084761360681821258954118857239764576780382371183829732448593023503018351676072652459907176321886563407321304334902421548612145130319560283926230198233847968126448761330269722985237691560526850400930223737559149659901168977592696311867676217317746557575841510434736557486325746564298350438257814567824057267593184721640911021858388053270497067068692207022834537804267440629781410294784365711659738637328632703402035144804229674384568461703754724629204776725612923388476784818322384557424742787494042422621753209500692504619507450864093546811825021773040121778786655191333567009661867178084540138786910577982557551666403533854451214200739883904910444603029283769867225236353999566518278179392101358906700964147536231500489080614550537917160741540371495914553091746633874361438833765928375191331924037523362675291901712845450895430806437903473836846195778547517471574392051231135084718040680917610632152108113942041782060243627456394860332941672791692597855131631667461889000187651936344879720890149995071174010696039116937569062364285687676412269085813314263305569245072624445761983297867706106190347457870505459000670433308998974399529272339082192193262338672487285079346656346342856154731233520234712074894763542982521407530407335655596743178553736633727038685230962527570910277779720638779714476488623348061352596653031618420317012512587766123120271382084812711453117361282065599393221228066714073770989013943794720029622525944970213346077158711614784507213240010164884007236343166047991559022488661605677010866906804929520048617466443319717565443952890738492623785008480898652728369761364459575228633684700318215662018948664606744988390857048520488723384978294875419758902365603779680802472336619107863174502301802159897702621694468821176382447290319040036843657805679085411856364949436003583546283151044241570131315337618367359404746645639772198094591090372674753673564056057804037040740263411326335133659274862196887749303619365908952789752586970896832292850574380172628620325524069693117374841305320678997363035798679876597810876820589774786038106538003545836112823672076305896785282992153102410775917907613618970308632143096032771215550566227606260461704832105118156806607327796325656996890811418181731460785928993699863980454417094102480229868462150743841362108301635756533122903869635224488876049706691369631378575508686452231807441303224491461460492938549192615290635257563584439833709321604393638406532900482753429604730893134061459532265658081200453562279812045041887346737204333384011573713373224683679596532214163205734920254408739785648389311055375195610547100975259664737454733086064787767491523359539734207788409531866033383072150847555644727374752514607866006145640235433895770710239786872091673797231290432627080999531347095109966588244216115894115279717061816072557120492310167933797084163013930186569869202156421885239340054806108170598460313440661552048797553577915770052691886305957293809514184251535707419727484351362767148346173776990252327707649890404112256582399754463663579945563763768237987513504873765864133080188796246161345160277030285756576977435757334360765190686762188588182597127392935816766999458274913734456870828878238078817552443755705792664196773749337119820852437974483956239345757247353078559706511782245111622758013032303155589587345554635760245209983213719261144525015549760234661265090915586276326993366453776928416000755388495858097361711274139670088824622110091106009483727515119366358127083727239412247106832126139489139970125715354234187817568097320006258775482619519130873973405054330873931596502539608269566880534038315466864723162807674222344615224142646460286310048005107098481953707346445328129538152244508073091851355999920356000389170118496445919723205282412249060372231432017936657895075730234309171956473354712171242945839989284107157881059177116856020468226934049338946838406037087144611671131615265245246704673390787575653958977184096590728187741273189715354942952844979952530190560652435928884615774120685436395662877736012271238048707799632349877243236541825702612977912550038701678050873210297657732590233018012547648138658041331698740967040792436449983967011125192130203781986613107254616428912354590377739665599152672954849681550376236774656499831998762977456719886228146207538386601480739491493488652377997409531685045071694808372917503613640217132756072785133837929095153395272746211722118691487326790457474805925491884032618171444753847499592014342802782572907014826727071156297411044807380837228011205753836248615074026683357345596211093365126490713002875127741940396161686183794923567472282509819903300287538700515249394293168586538831921321139094490033912292989053348039042073581116999045549647061647133781220578328970659357855659862991635115327806740964914924310511046761560358126794618851099212405592410605085962411430846964146005804206142585123237647455956140304835604524298443664082692210960495750991407310332597133537070892099189818689727139919599943203176624862098186974276475075028071819080934022567874753531945528218052730664850226682751393976432236876694449612232434819142716326109950744113481860576203646378180351932730210382174094120661033479369262582502286596891349550395327190834147808090298693578594538693076889032094370710195504612843348011928154041260786308798901012664750040924416530689137551321364183190945567774276533207525693526078811895298567286159257723419749806651255839710116029284991621458421622841094569315632384969039751828732771675860954813595186543805586959633881529430965626869626020829493089827388934222946035549439636256006726079336306640200777369907111988297740383323474267896936657273967058884927304063408529114202996113657650074309728070898251114556869537764349055533286914536971013809697328364493177926015901775787832961730325432920349073765992004826915890733089936653260965026779672602788803773697662734017325188638413479065328233086416885925944889247481604657797421033835788544652381608405873698796586031513501919278939671519740610714214934912884104229163793089123545490501953315731783101065421609758501728865353951388360889810272913746125312980475015356006294116229042180949106016989563924780525902164980668532540875276366441336245215183721178309961294188783597908016545754849738557763478177150733397640815260468155511515121865931075593743342966656100433463668847510051865955088546694016659227560900385293801101007566038466039143778458570015550866950693128467425964793188763055316000772551264628891797999147553978648906876754670066518747129947260757197170429516078896089721373880512702183062385312452128893580551308946526773159196541816148964688037900561214777495635601190708873078911365417258728218059990188814006038812274649093890629305021565970441371677025705248961579042918647013630353236949292121992120428317912983543050807929665669243431102864136239615141503197933237466370299101830517781192297521868431065693130580757061520746208782957161990308760944941551891380326808892757780121933426747386285412420448294390550693600115339151220932280480443894203610627358631445300060103301314266507546454324677484445444012909761382942666765958348497562577280136575900856435284451094324407664124206510707044755599335364046994965101642547366127674685043024130937124301561730622672877693858655827910592206628365740648407277961147651301890777758947604628621337626132963217459252442057020874553733410905716213465325656366902679220624187138682149242704293561150167932931984727233579189529952459706484062556276498345612593700368470119740638303369554307811225893698015587945666160256236805692960924475544738936936074373831803162173179106967153006480212804490783467460926028639495653868626809178557860190133066802074226945256830588972514533107077873850523336910482731549201288100012259566553823053980284537884282465074188203650308561560453033219488249173153216403192772628686347808238831446271194730405682947410845924761163734389036294499407428762073301341315958462566073487775822730546000954271872960386329179677236767677160381399269906152675000149567044420880429386066531890063681967038063440047892582288066302752267717477290058049115738451073230173085184134333653057547721337749013552955133989460169750719543205832863287556679177982855835715102131980994172282277447129879018991739016413385631076242674341384348182049005592375247737621857034097063599334926782388187988649723635912661657094120772915495085513263111385927707915665320878372759760119045329803146144836012175997285857469330064003133796643374297361807373947765356336921080184796025975485493120514580197836325296449415742184131675040018405339125731609265929858327901224273243983879921771156417979086214328515279610894878626688291835552466396668352096697857584922098431820916226026518813200700679466008175173463445027899080995823413036138530179501820967407034755221735593176137828067110599217615983641760901458163335512983959705597137135804425853908056768339482874689958463777503699431956008108797030697349362979918376980735932419483932430813613873899754254733202560811787115991410017934208825404053078993914962056586744329270296067563737733690024899031700052854640849901540959254730686526063870249272384489254174349384737013802149123532124352694826947053389235192717059510874074819214958534432069512926492694046419191096833544437982148087574766172671530271538803887219899186787729989451557866901109362884856754803518070383509343387313137757933413069179346379211251516182858169617176211450916415869749315440230365193716959178976202407830206733263866883590021970237135820656635877502248388443016813271398934945681341978923116277070724915219499505877300500292312528380483935575061297894436917805826068016216088941609295172315299338740536627429910047092157422430635864671973068533846922268450196148060751378672674784562739078897388151362646067948798018836758606141834451673146183895144042680458308489458282729766235214380662016512317607749199781310792198370875909696224946467139081931895019095392600989739522466659953027381129854335056273722047627909309037965716184145142424166177701665272479431389110456865868605085847152177706210655593035799970708046625468195842993730189112679832922733265165681264898111331833438178172029605990947880310281900717427153957114433297901378647492546975461980818014819467228470561031611141684171142920807998415439307241222328098872997577473809579718479666907934676960381426656307535431799945589038924186581103849283107794419526582685087514152472676888379109358462678592823991289526785273962439135466289096863525176418515798796010764757818583991791213615714719024912378435525130345590227722851910683288296281771106360580954255735402948975064827742482562823817332725805625144961039321286122233406680046829605665215983342269790787545595734880269668109302249005490959603202251000484267383246190624050400626516622347403580945594607589961552579825342072876052845816765629589348460212285042162118263404598392433981606053336863062420968683295929194428803316287100919351583767011176817685767943094176821223021513613509472877929767560519282477906800116596838044807266059451442878272358553488433777481459853038616582859662373865859207724084918196532643172413804836302707203769262495176133396771754003470570784253998580585800916896385751151968578027698853394336213773384475028554925828777637822051821969823893242972842304706291112407078178696501097005286165002160764415128706120681640678611019578991645914800366276718076321736095865328299381050038063390248725792606958273982949613286682989229698336332940458966967399949990627255285613304275211791717841625464067342144623220585228714460408639998083059975877620219683606870095309498715574488439937430497499208517404335228914371859439100991341236388179744054090875785974517945237504533485352543659859398960826389055991909005644728996579509858264109238505034047004051144164635829041370798635426380001337784856393820537101059444278629661600616465870184365705962557956734965450780846270852735180466263637702107725982533908218801959785370644725084447937747265821870784423681715747136857547761320919988368924373021599091316957869775419053354655129616817260933246846669252722254801838389532158951811519756631415260533619710572608453145581043675466959030551864955123483410115557452971085205631009309509968133579317077787847845771344230356119249360402637703145183139836436900455269513736820616366559204502206894630390953585239340779269680898712228772019522307297609138274926597448997964667154847611883426986479346943638630248876671336953243110101139001923842922176959297193931543589695672703068854544028284755519450714794214191198812195975572344067485438114876715127942038231543010146978459573076927588044826800243627126188338420669869573963973986642690631967961421949914616547589462925165524939767519052788724542323726865906557495826798406886438697695576440475844556218540406392025124230657866329630387950405064366601004489470264126554710539653269961609454181610924331227825699147830340355674464084172702627003987817855688038925079767656252584158073838309797556544605459763795133711205307368809454341337649183896518944496576134158814498929817014415376574253703844405940345952442338817103571952401472898691982383025839107890914287605582892506413578727347953710817728502514367856422984391015724053277116971249934259924530935143636781475409798798825683066094291467752515443006576041964609516822882792536381919836245571661487701278090353933809763974336698194445069575350479778881437688613802508401680678099441531341601921342764550154150394959278427498840092089794631298823994640439091956403263676073095688820334329724675476443138919620334181326455140263963349099199461042046561030569914828301054194212937733575642174919900561462911392352700837927418636931697101903466728020075997248390320481444777742990646631779078412006906800375755441538363106959174541166036974063530056939494924429323922705609008986779181366536092425609964140262392578228046522145096439188990075861479176030368718680822638876588120590300996073100119266568281454906360319702020414153474345316587561858637073090037346665537428130015478112362248778108668556094812992783250596801631128360229761124154643030202812229846728974825980012882710529319581621006723548107691197367347005700148140982067055710339626648271616567812847277969738184973829162392904761263065795699589013310595861779501859053781539909131907661626087346651717577888025213364287888621607138474348323579161616527054612396719213043178557412801418882102957581566874352680007714193679263735109585644582070480851514830515971484404435041934502346357884771462915783231048694228006202797726601199653413541000206255164116501194294064134052714248378476452197643776577823946360445212756304041606768627425841635226816558490290324775058584309320373873643034794152398891326078301508780987564382093140393044695478891892027979127660760325002764573227657526337252509100202468057462192838382369821642407373417096478463959432717762336397174880942503780247235828878155066992965650094301238873019914639611671619927380510398190312766628613975513775834825586346886240644245576981668434051265034146068395400236445654934669118796678605560064646871286031837177013748518642730000155031395962958122637231198685367312615994963376046204306865007191317350679869255509189054727481733674246300131321298050229517557616902222662933200281461524678750172179421623259613787905619817418943042775648178629966911439757561010889980706616211674183208697456107075613553360979636419203579285106366306633105688797861531924510632053753419385826350932046940755146710280180927016553411904214913229518817033395589887128894880245123348017294519132844081222474880311168971437783027811823887063350480726257150403618546072673417997340324105808858420310497301881414622698376471586798037306763172191599544355251601909447153673258447696057648858202744930971897680227348913088310567019524231451925073442300659985647618060504857422080357923750164827642344277759168027378934393963477819585032230524239318850046302514635897262590920788851855184189040903924695481359420664573397185441513189250021913156646063762562817909727466327353710789940587125157461588888650235196019708132814509777371053461045689428351973636287368834265665143040929950496434214334987768478158396174695874668489140932494228486263395912457610250058789307902060413801798254531694839632869418377926726173261160647131028853967334728283217539883931525567577611424309330841202987909218337732887975737438052717512545093074894083377298170133308766863333076306294720431487540960456849706080264305310910342567360316825403750842034798865026620855009394828145932597850739387176517021976299749574463017208978058006457440141988131429327672454634921842070853485844349585812011747014447194442625317284543611486445247478908605509246074465064418291683418864653029130215137751162957087777444351467643452882977535561659124759292316077042543634050727654643929149672147267690226624134896033645500377550404357266413003024254430447705881980789973127655721213538281314148798546184596967091818839797402612052525924354565589056129541343064737758267328529864665088037512919780246790259053563774403868857540308768315235513957720194371568603409263251059086414612774197380878494209669319622466820082255195275414727446983846068972306785952493324257270293548415402312754370114723631761700087131618456847519877244370017569665701326576546376695086956747448466722089035249167543340538454937385068904631393633145618566139529868807738864135682777329278268817006119415775487794578851773235062180616109035729125358641642862322242364423850612359922782177539943495234165350489444443975152475467307697955209661803357419822274779469422692345961695540524577686495539005685677346459982693858518334935422331629286878774063968979275054784527532733284963337165627938875148180263565967983977010564212782340916654473428780256223293498124842341043424825408402992323852892753147764737517036599288605681120175059503950938197121350930662233053391838231967822173570454761650393101447118157126386302669792502850374643287739567510632016466760614878763657221059091012640681370028760047889172669315919832412793148958304619063660660152467691302783874727644555821534802997405442201313424272215709951028084943582823859064602212982730800960522494092742177565909655393376394342593341681315778471239562141263258249076563239321498020079366906613117244340295811021943502323471253838387198970311240354493762357414896071231040717256345463297439280043624772664300532808055255289749365804045879060091580572687318541072216321385995451764659001334463651347903872486096907281220135424224332895916376367770489502609747754538059687904269522750073900263566409523130627936978905084527435726565405633259240295523348810252284250964866209067004392873790170805020714749422346488900776909786520708795512887976190737538882338267736470002076283301110900935114349734910315513911497144998580358737752075575349078253422987513265248998723523048195449369748678928693335150938143938601983143364267343884653425322417350085788700542828191109933351370939285116473662903379102431718959718686547318064191930439672056999419114926644540866627569593297110122215960725161607624205011960791699427272683506657785835609104481378624973658310968303082598056046008520144762683679436371442455405917710857030267927382711894781527198516959868907413102472088276303364442585558128134887166788442381680731935684570499082530724934375491288214520374812701838755452340164459524376619902357009972814828941696393166446983392422586732468998751740261555763349416167133012340140988578167669822890395351990535778818847392932330387253707451251394833758262664389342205164831742708151882354006274710266779829959248529462305273414644503373308006297776135136465363217590381711143671966712229300263127112439692004695407782073979047012912169214000202819065268238988068743053656133663002416057761730784301989301765463336383240978079863585424015480667614719886529245352515287820394762454823374731122368342078839077844513522284288657771929816281131158884299010195748217098312577840248290232383850140962849209449105867892427305901806177643744289784495222602692091967155314012009411447750235293910544740420279675897986843908052045604567787454870921653037195788531825565752871220786517468660946906105836271813179235610603930052701996748282685604793694883536903669031740529972854409630638319754377076273035213413582560832847614632912141069048916106595080430576640186531046216155144221646147731218775590381932815444486196038683660517195321481333173153482679151856844564815587513808460384149455171000972370271334635719580792392575137003772921283820317896376132069001343117443380329695865593128654715848934887388734754933277405284614379617437247847995027440247485011752973641911534674888395045699526202497618336546959090068408896151609926278735011613846808958416108517352185719898689681698378718234936241250272133919685602261613971522187188981773220260058826710902474002651752760274986941683262973194657857325708517004332394641116086406682379579173281422923318759739546742342235111581125573789777552189173655124288326796602697065846997533832458163448455915018274519364933728276859163453172765528060486898398220844494381804536122695042308615605681189527051796434423408802728316212684434966449685756666379926747878693829698147097868072381420749148460194178598395351641660493329007871293453095175927701806592762886404468364025289168885848722501845619009563038851406979129985417335491228452964486440972286850220790619116543832329745354991938206417592442578770013673233068222355111195830326752682096402391817342962964622434290850062091871062950526672791595161410746094007272777716160452849042589908747862825382493429420809775657934770813949282487023811300289489179171532618794287458214417313606154223625083851352624733599307333842156345149909336300087501139179610760231553406731303389865711902146157646122900662092516203764590451827541886904201440514356233733969626280012696446224648485090489177713258412125876344772235679201315135295227269034279163620368493104904290637500545563802783911099270837127381307746301356325707963654566431186615139062594687938485543375197054455329394096441836199494751925497181438185760007663604470368144851922658892143551866750748873323692177873046272797206411723837048869595398916022665576526451530077519082359099683605223676887675985923277717840279818769394447761246312268194497837529301822735946813091995461674104013867238656726827268255748101225794930829073523240877234411624064229955890134571683290542606231711843515870033705388644199381772138235127770361324495243039828518050529219918686916367501428103118331981157754460371776082124354538283936427008517980043727599366121999693391390844110517651429453578174960083800871391865665438784232314125143627805412152319894702990915941794309803526155444704929184305160599318385210132423557802969597244254525995393927803185425514474645313185094927004542025838994701923302247298133155711609910332755538999994539099187176224422109773679587348267457838137432829344279181362829571547695876047965577517861837499905355691633773939984197359676564020754537489009396875402132453776750610401186441984568096626398735854402089509611948311912237856087014082963342946963368278046089133206507074592128838246616279118352333333169338227098911698948438920567347540744458802735286775268791989423656202991629160500836670525795279258924412084577842242253618216608963827591722519293372819219525638155515386203169770372622503559993430194008002186533341735610511268172858820721138313937546046565808133267837360545239060608354098405290463563069126014081924152160024355656616261186737995238219022461385471546240962687842221919028809806936101335484223630441854950217000029397942212381517767702880984540499440846484870714001606031710201263371819178261858246637397889926336428826624955727794951669227286402965777617483539824074512365133397063267770405137148474345148427373171063972452171200228385763526003875634807079248677195066541403540202883173899840978414474283530996731473036520831989187767043974778639727049221173264783288100999486896621031136112637675245748544326279299603372637315699688007492752250177276512856591574883526562897424316397229898318550818955911541173553595053790779632712306427659612075336822615574853974823491536010610900324894021202817063957885130052337679498040265452162263414403563297778911645564041135868548524383452637421751276683359171725050285852073237638355512717022543702147708819163126646930452124576221736506151678705731976413229043144509308115100542547501434688041606633198340747771040052132326328861973436844250271022590126029424544272475534897540585337359125997806281036279561417608246794591698936325604822088846919521348919371352030218044715723025577689284482073901363064047140743424143146662128198760233843136873270688848711667199470097238856414300273324270412534372723176372914509584203808994258824882837801915011993076507895041032994631800535916272838864368284144979875986674989431447347185846412769895163307247569153909812450961199730226433627506044000219898487637970374233718980108614464261565773440867320126510321411743990409335004818926225981451732359641081436135951994930491692763005591520530847761307229384204501524619036152789611056766609952410775428389551123840646553500113521543645219079186216456213458288612204617680597055741881687729160154039034284965339880083934157360259342966192722869554125132271563457903079934872882002610092412972395212160935247902813107900914343201435055510379185538280274606380284577372416172072508774767140619285547443042946479264726382133289873851165060263886394166647043556527044237919198505772276400784056725261116092914351484763478010389796236449395762828147251231049324680270380087365992958313396740131438492556825750519370188364938470902531527981017943664952144026250308591138436263088392050851817683650875383759616799589861818828844717498636285354033034851949994628213351301878431267626919522971253954444245956411897735522685373766873071313437015009321394635247479916322164034950133076380200141824845935241813360512839749705802230800242214299173849185765003314193218951047322187840493327028995847131836766431953382134852029634941556850496350452374207274843163772405555783388740747955832017035301522212202661894694453614032370351799366845068714114476918406120750184086542401016307310222263201591697208479633584270132039750279120828802436883786913993192391798546101502095320768747014917580151848958008545665297949931050707101229947000804655766777856905196118528322829700974143467736812676523097067323676687898131591548263428243745462638593354445570356696587461521846799564710637545558405474223949479804533597520607068727567750868843826159725674274492225941122359340430031745340778287416848307182599236513859845068804931934971174848824510362369845183415631835879540729616733866327293095544902685217135289693691035873894059702735498510775359029672516446662249959529419468244034333770939231628148066671971312950411963270871643093800178346676820706727953287361959897639827517089740498944098149478141258560610994431329428784502206795343260756143767071324437578209739204716934105956932348523130882968928487716345487976304395131992450233951657553207373231757945413585520537274036231915993197710068852017263319033548321753460142239298945506174314340871209409923965838812094544141680686982481333665328563725623711002380603565105531062832743230492525510846241039738548631743519314231714418529480254121979330817487013574404243176710536139106551267963224359637184801268507977283258511816676800138592316369460077057746503638398029257641467134460486480437078524615991116237636879427388908876290780340342687384117300779609504666956840044225396322531495318677529314169318103982876435219845761953841175636803058075293482210743223968505642063521937760967151639143903157004247855286093186951287443661111200849393424367330323089684213245538936695669165638902782341757345999543974167807822672762789851259665583415358200307108482055521525019739956304627361044801219669910629724438058261384002664506511504005125047223720724676632542747394585136992569538641032215014336317975746495394497768403894270185594472897194107207575092591092352736211044366738272005832372651154420307447141395475801662215704501073099577265511626336208565685787004547805473401648542772511106939150274526594566464208691821921985715102103160949924031230287858371237484349084183041334211757216672075758257950776623688950979467306264462033205628560503728517275019659712437583038090763090024944145913259284485782726958243019697611117021137816879158147592938152964565772455721536037779035521135046650577459450608303149868336916355797443574969650995123159903585147404597963178420399977415107561993801001682485883128213012211897162986139894530438344677627532754187751708346940575989846343834452272875447889133635033452178192346126508515594782432579761701247374674216659410710854976453042303409906489512032108998857185521444407390221796320339637190551370409841248714016290430137671443673363274958570819635456902869467855722483853791284665879903600101055322924243518819474391178235546977689393364643568283197812058320134649585776601296832260664985423106789177197055431372120558731356148682562328195176405410453356966331750251762723392415531397364855579483975162867395542665287876531180826907487815594531180041857570343862155794556244887169275037491944488404960921880139001098571730610421531276014533025005700288988418997019192284499588016348493153370357186645580717041769480596349928700834866793605106613781276995081351676197500781428689315939844391841393074804076863041222384360302295929073902280658375399994095699462961999043762407282205234849692847438688424793764129040996259390650000504897739439965773764726202241780555218040305822551192091795105279489635878624542018892231273383019225171095463286259256557638994834205412699448421031714187315097972898360562947344335190484850588858184129000566110261228395331990524857747223429689067986970083374045060512251757819301154396378981222714151082175982954439174131070576739487883609556107612048989529928207260787419787083819657524985661070242846267228384281651107773911679508300142530364673656024980861961257922606329066580063077173380507878877090643223494518503877048644096568737320142099533127605046555177544121149963885208849136510095493060408079583610316932699839680900384741145188641679724450751618312283893651084207441137751446029291012814764677367084257147638124867394909754925721182941925771212897314792383361529820240503410848541989225166639283237639818579840741990487370362489587773228095513564728303354135454176247266828317166906148096059915625834184964791122704190942104269228619923647192374821740613910205455669433836190504166805955712000615355925067769280453544915870342073851052513369032567568852849562496341447627089036636879205743536709912728554974127808954517111332421851795155829498553194111994191300802354044567837802198500114322024329752666101747471712692513550802856375181169359494109326081014713816456097144486813002219412152461289493196696092405901213012729522980469194514656639195644373730567561598716083842703486474285683745946685299855369446692755988269936418311206007706240643404144577807429708557035913074825395016843984591880381031126307643724821219343913270949753148724462841481429056282373875065063195199571614210717393531709927867929261529667814198392646642987838291146741205274816506138873478227159905829992843432245492034249754450002129039074606062160715104036544015322075650526558806784223077346966743492023646813900443417598094305232164275032896158716710235091091404905459081407435210694233815971180363224144566533467803424061306971675553949211622198211007103236722073609769326197459095950651994944254239799179183508542895104385352317183197340461004842962335178092909335851003381441011954223941008481071254358953569596903956897084138098116243890421433336427723643275944039067276492082444432765626338191687601980247372933857132495865931043040802522156841035479818971546209054468550242446017557908410023317132135756723617168735126641920617668342555949645644433956334359683368104719893499590946191633104532499020544062459606929365748371118461623819447520522028395694785812887674988390613532685288674975878517100463594949259199093857578899888408689154100273583498825616284334219245963301286874437890549435173984363417334491432620893273680209068788112494586639342875270071942143424008170309716073827373233814611503526959128333684676784648081338270514732904506321283257346324883963718952995813583111708421065579955528512846914385195714703437571715064180686532717765552995921647851213873301506084511575434189922108327746532862399820945767029136571284009305376555104796395883003134216963447833938668397132490450651582366274830306391207306692026922121318597683906132697584103301710010086432574506200254487166193958018629503615740065766750364015173444169909836425775758255603667812436991151643467875494196457997973255353423896398101354895330943145680778576224572394736563682705660643412941384971218716201743505544898241484787455678915091983639047783980133548923651363573922850158060197572772258540138815304602259342445503578594476150063066757946266822210927667542411773570550048343303127704796688364195087203490254988593482661085509199955328106948270571806437465775415810077178356868392259148847056513933558580451566776001767451515355932894905272701399683822534414128446077682260166681758768019319812701543613344777877247592202279773440768610764080964567386128363500635840143305578308384810307162196021743631820767292163403291394243285141314809078157401612432171372060795798124666685954762789304549031510644532205437601690479359132478427239356584501834042184087448717671882503756344326506532832034688644263181185620087115579062430996535298212374876728088833388057647196597616705387057157052397397382601874503876879465068178668685449682170778468364358978495248385827766251991117637273631286571633719938694388445818830549846134940349172137710954692979562592247105674853633057012865996933883832446787173767848815107057521881121556014215085786161368155929180431965265602510021004680993770641964557885309784317132223300037568435588989668293666611101576477656689195677834244342595030050172812251562047691685108232618537559234209851274628189792671711070063441330109533762106735282845415461052335378725396331125805734801468879762762913238463319262203003381943456963216522188195850894497844933287020652799428684053663302838760159593357907770968093094953501423238208583654218774230660177921002063353083194099980900841018315612888167823002915367511861068749710421630248204144009909402611164024291462069559308274239118176682298386015552737040236581455085779153356663049729736114690270815348822193257978227544257718698147280951703503181714247511979680427863316974905611681924886753966278076713494914366125936098568432537560505192263470676354817688207573744602100610122978655164620750348508915648131002729975064081778446716859908760900074078907435704557474600439129216365891062445593580587595908496893153269655535545585744640275956728900089867085554993171124783866724642019156952418148033626919406071279172736664396916131739182372677848025998732779302792696063954213338972669316025486003874725516564713951284912850238101186637904561518053387655608903405147423206119030421791164335892671493308026852770130342872703824998539627931076821603994780538731090933620876582317445306578411706474936175963290308654871910123850781921416017238663110829423629862113523372443482305413256662722120965760783697003863709155938823232421454654051120914692519814307091020065431069352852577665127161087237988945142111480964582813658688235220031411596711605272640640751219757693033539084348378692408947719916919169216977955573357578622632162187894281100749503863886867980001189467872876970562195824859342027160199330056304995663916991227978189215088937172604170485302505785809472746686657789705031327225523742820914640734735574772923946054534386920702986877277566576571713201659764936765842386412710594117363614266110215678758600086404940306442398395244413938780770072438315127538576989300086885168675170924454809547940742157349045851230109453237201016254862797255579185799168979849248657049816127254877169771124279251285639854537000788478502181016117322445462664106793401247528397153114159650915355458469052302653012425398265600851870529051138759751524362287817026142004228789524281900773588043431793056120648442333806468573759188798604710791162565909371907527534877027940179984845438023226644171657880832714016682132280405212230371149155115930762946090007170450197269699353813492249410579416628109235072167103744500821629154555191358791263990265276443814864653917839420069816189608097575126667048019674255301472191584744750500319310599204022627857660926367552407530344560086132980549249611626262290288132778878962597471610302897239313249083745080499318705012741458274213440612656236073046482475071802524715598593309429776444534563854266704212118825700732534484025411262462244461494645233516687290327187623680131135576813758860464302076217758909386670667858553921248941795203739588084923216899451072396388986119645133936324943784828106539121254657699925174375842368695754845238925282069362860618486257394981433235469260312752619378592662486377624266204773361860803657313140581204828235178761418478971131132804044880446370692083792691790964502934184995012034763726120514676266533274246260115124088423753226260301281559886236763217987416325403379103643344524943722337408598124809780661747489311477496742125755453821048168447517942881004282557807025232302283236096608861711300122938512988783187454808296652773529687213476659368258481878625045014591677854814928594825812555052390844911531380648645558657026224798064714568245080495563490549902424139373274018447123399265918894459242838774412472867913128715657833958677571460785238122903029331699590802016339636516287266550402415045605217479037176052128232239978350830570624598110272516430632612204093197903742321847590102340591949185256150273700581516318752761811276705185864306652835709662986351523860472082635748011402045546497982621014121125145328103887152982023396960597131117690431720721832967267286476638986862648935789109347345473722551645920283510264566767046464936046501025861389932898872776468325259876372932398762942811303096886464178338246630011631494791324843092450030394458193293444131615753518350085367012223977655865085654066523554824714802164219813528886346478435745619344885088491754715499738182872410522412154158209359437468657075423442716045131457640717430739850037471544601293734691082958204670455518673691067231370926519920734513512030176756901175262407729512363650530452152352678438250442209354466606043044584587313073975144954782247163208712977407636652057286878147863106462374257995139237401533103330011999402758379980439221756721137032079987420807636885637177749120869726065626613711941174423557131459811773502808431543914039262346347031621841356802588448627876013549758013946148214705875731242695402651012431593418137505893185025619539148192556092657499465552883720757729256857585482935036041747212184368459673573785983308105604168964839654161211364054843786520954015231803955523690067442653127225987751060906736798739750037262618871148737045655172361425920663265216995487652523227655489467476056141053570879158642325879616007823655069439430415873135570019929559287232501118222420535951753149860697085859796609446167808479302211959306264817858492488525280311275845233660179777094174384041935059637309503868431259940571303960700188170525519604304670673630384246864421934857756522828385236769905844085221983494755752804009931925558742590502853460582066938649834743890443796485967321903319851597949169114331492171936089806689724330456748539444068914928536659349299623140442563132352656766169609290623136475711798147609098295383811835455046067951462782426128382845019966004492789005344448114233963510794351154909332906993168749902362621196243418155187100486010952494872449322933767531550209695206814471364125722961113410681021431281189714405375634207802409115701431042984828160548001936981496565138528612445799313756495121662476281811221454712566425331286656483201275084842125171631454638260216681095403794137262489586176439155155014078148628569431361907059113322986880286388388225393857726346453229644876086361121416837386189567312752489458140437000923381210339366968678641318959896113703983913833572152537232981245741875014666920604255487674932064583756263408193846039489226034535253264340796274542575967301906055201900439907600117465311175940715342858946908750532281621096087535482837135420385614730100927011572517069430039094478033641396195023445176027740597302548089513926851005036866764501197494332998831649782912429539406327278033011034633799251999327996617468678691673573548480102563807609464741677431324134103228592737576677969025747721871491349304100969389003211115810594079290725365127298750919803444031470658619657273579262734436396299940939900291927488815761133653636427003703052856693717180064195037124168867935619332041473582636963507119149394486278644842603640034722105726137954043903486025342244816987608354299524927369827358301106992313106839768275009075391961560558524748092929367023494694304699012382078552525468809485747835908081190842149939984573569810077831106220602980905526391192271313284356477281555549189666081456188235626282704699798898317301264460863084879753210158157306020957261377434871297135512582763542887389043759058780469678788102611541205593045324233927159985200715848744736834920315551376328685718864728002148026589468537316048431324427112616927927337441652100112152808970703047582024205592983861771600151087695403309503161209942958443943069576602533056854513843561772632959097723271120284850547300009562728034664787716374716819303447178715740389783808103894580284239058213808234826328061874717515362845341744452401068873365495709996318325580269696716516769607662291692379306808138599614382929542053968369277383618695447987841308015498357606150913451076359688207090886327285734092344751147003682354032484586970365258821452037279847939616692061324967183282438481324017012365211771474920033009714051074586354863998556252372671296359942052902315542795128599069045765147301650703389631013649387508407241390392969244171324282040406621898246734541284369616177109242231280372839810050284466250072837692267425051460309935172449662621256911787687840179148602709288170906435119603753755667404239154223811774758580397027405657216024221290072600955644747155987012802661193391715659292550281554085618956390787241284357587455049930982817968307549947275951868630167737022224032890322583717330214303511982391658662040951716608214615837589970192570170024844034797832451828241887708163614490867781543027424509261719811377230302826827894386459315929830803968046543067454733864544867619875381217780343498193103685099398190328298743193176202725552199456943958991516850781657399794728043602278256888501427959333210606049894065300522162538102257701485865271363461311095256515908355306669016661078015116092464133880849903937279936474879981885959211016862995526631639094021684548184752677954921349067117497638196082025175337784375008858280266031837491549493889993596085342281405065601860347351461501089249462469917058494653746755539091734616898040657075849125515920164766611695094222671908187292101265197837835407057234458543633599998589509985454466744877442865118024465938526630265109510127976262317030820004636265598456663057962172915707188382667893371097108257032912012410498083131429331419449692513472338755746772583287309948258892727685034491835088666224989385117547237032036398226171455174321125778483844878384406234256723529373964024293734847364341142592053332289106627150798598598615154258566756724135066143272762679700007477201386038752147003299621964765201995103807785850891516501441261405162401410237580472095795898625597249910180703097699906038790424861102645403518667221903078964520092248859681051688619126606870407885838419064645289422617604501567687025058324280489199039152343626501180840191664518039422403386847865131579534657496358907884606361574930211191893632436535687771700190870994833546831294093200355109111049950791597802509893605441877049289156488376877799960515538543246784325575800495500223548324373187119334995288943812126449261665629741320693742257304468286748914801114346274729351280323962811246171775809472979425729064165128079718458886354061589477775429678581344340397855009502413938487520408310825581702888325149216466887892421070353039574054577578939934440404474745979530533250496915548480101878896476301512219329607562305774395368503002183949380973622393855869060748494136165406624761098766033793225224270593580447240084113974928301673204019013334341371004902302354177737665993882383499041303631953080729408630090882629560892505367904540976846893994555929964081274095917410815616547298268706345944313006267248848032866266375944298957154738979563266690744634509629029417063409777031569340313427550834541354025036027032469979465227616413653789602868326358025129601981462617508332953512464115820143691756430045694025947745630346412212084453925442064417317053412055510021941365835545623460706558913349710014613136810403515284599800920102089627858033351152640558840481484943827793624768745784196776126231044927070489682280911436679424787436407161483055925338945482227714219078622525254089147940953135268969369064364494822960291302443685587560690144716428293596843795741332684024734927096266031125803017455390453347009398240180624097543783489754423444379327832102369793462443629256179116463919306310858465376095021673144367288546785864503979700040678210524451674319492026660810425530515552785268384958399146006910603398327637328448025537628482209316274175147248325522041605554926137843484150576208390350868590734048409332786727508696224574920803605209484157318630542660204662630143175035586891620838400306594112830347710346197496777412159977427130234865378186763839912781450303368468028706550983495346021625718503099040506735765731893130127407559394865125965223905048100505292759194213177224150445525312820438723983178698943376339327052556917333800255084099113735877344324571021406976825430219552476715239792017713346882330306211555985308414119529645519626797123409641174185197966282244549595813850551690391534207406390355113471268165938459463386206181982395818437419986792833835170568356673446634504096277299071328717507517049661923090483640007630843989527667438111433501701952331669344721727753626734816265060183193440014043653227363305262333959228998532152101387905313870825414644255741919061691186840988125141076642689646439937573087116935087246076366882176497021581258555668653676294357786280925740722429614957508311626120648173609251456645157073749356430013879126806636459721300204603029655360681605583627972827970219437203644671195605920501697178414343808515504298754626101226794509147170502302483118908991003781116704291185690267811927687484204767409150862160384797173617984000378615927408787280598183888992202682998195045432649418357637854776673817019191704083708279190946275803998837930856396381361364645694879677993130853828660554745111694806037988183811792386152945600943061135877511522720497605768608047666867011820215191920545901695803312562869776052366587683062231972517496155825728725076043960491097076414395346729868455168734920175903430777964570266477084570923181108920564001656766795507720475137467470727257126139147611734569004528578100039046115027353493936331053319862872002638407623122295901194805380327577980280155582470097293021147165267286670613032403940848759862631642571222459064931790435602782381597319224733935269233889782714078423947424380152001759417135805354506110039067676793855801318481388961626822280869220526102436388822264279981256195681603480474311015777715296092774355287353404720874740615816652269712672399363846961601762430882878642919549777587919086087172231274452304359657963024098435452975485692542838268822057898667381632065624318274577549153212534679577793657320788820781500873043193391513949313066320748279521564021085886940366580196810229326869537360919998579124393188300171802910391450789702759795115785290565522061296846076207827091709047846066374402415358424459079616632766732408328514815199247174954655914796736255950144005261852840088575498636728445989717203067100509649384866902109036833955436520339571234376891055831815041283673695503108805673871748294471164922852686792603232735029161747585784945583326317487648658953264045183135276783411784089822048415044580584505966332496810681690378086058890899859701969781436028691510294275423084096219793700960562886014573962403511260325498013381708130172720751760592660054623382074363439102844782250116369658005130166031006101426044920868565011286274150720687286205493706120430205543634085331666131721463421206293288042343919556628686762217757227115353352522777878825956501723196736183560835570188899045159668953072110936906620693916872828534552391448384613396621378288607634901741242645796204778767106026717152863493408104292852962065289675182552385108490899217334931275941279387774478374943784878973144970982917519606240899381085089167923065192881828336045948848031530449324122024230497966000697119165285920271088040396901881449460501386531290486514073809275205144773940572151177170081056561298164624093803200040117569238733838780721418541988202301991090782198636212157409948015239349756904186787814009186032293911165020475024475203443040415522258986363208625744019149689290161053161239339609901716107106661313497639236014421807167985934441559820303036376636969645272879324107026945785147750828610277959732113416892109975763526876066877245737938802625261344675994044008344001493987956408509603920722418230251851142272786503887709257269257628431715197572042735091458259007622343088500257914004111449903618470590524402483349725595544989900854516238355217099296885512389344214514220128022311162616965767298486430309027933269983058620288220092386930415867140650135762759750059145477334400204554655714582254157064396232464584686824658532746421957271866500272522378224334434150301691053268404453299210818565215736117614594638982778720082042975050862521436980132027232853104311908150715357887670306725541991964470975054120873821420679739070960212019383178330453613797519088105717606597742281503209356500112243024564394680659110851361074573351675225430837982564357523143875030022362312463831544628092331799144137939964329948855166263711828187309233631250226179294420752588573968512797321756087516025099317633245681001368590099618298700522966112268266776500446859517504385957902977870479432968502900468639653303584205144766531760703301291809428034321484458198122760149279605071963033569566804031209760308785350003940745164024105997958660827159090252866041581407320568898072582930869641625068060868067014916104800762270028449786722651676529640390704636258274120232741208265819554368842987028731885136682436499574211666785948912934989204419056905874555494526881814909972087715098641828615027059458012708542024968252037959667036294046701335799904710736357807259439089081248852720421552936314695860846485487422400942396789139808508722989006449211797712389474587656757609214857950847727975733819468419261661337684777814120960004612261561826938867625947935630490432519459688329284966958149451018183062120354461357048988844699034502861632020696545913409081784447723657152200500928847840167212841541556911063553997553394155312448994236723593910940647002723265269782767565888858228209869332722412194851788294925926856348673449963066037440955379781058229238178775364134011611954937363944165150043094574083813311667465735853017235370684665600540464418275444906699792245563508451148653257798691543212063602954637184315765680900956103544350702736952449695126250337127854018366344866399480505455862497144008689254986924307569881058674084873437268078130808495391457396970567914491261005071557270504115922480655121801167605066057731454634078285202583435032494371112750015327690122437738768845738763028435681730997252401950633988342049224070260881743355814203126705315057963389432591147986613427427381225304812424503764463839493583533998670416098282171289240624952253916378294871346714951435177137866778686107010310076475338797492715062606408255962145138799493431280556323572070499049533275934316591777058642527974409599571872859151098826852529799497326439412296120073042287526151843865065164439134665733106134974490709182987400861464571910605927219868949667400805218714122550004735108143971564902342854416087710488303764230630912618239983247183557909894762870476158645021447448975104202601121325447076261177226437822568268684129040259407107112143214815971425172258298448461178073193504272552067233137839287883944274015450829979512032654832463829706379221095691176315376767341201416733102393178181182318268260902194576368996904186708992850410445920270107297629903343964618280037131381637818614275730014015568835645039166748696006632371480606903361723191663704371831493927403331999806236806679646615352001099957358407714048110610017782249634522788417503486335331428769475623018515194505281632320641416325296686136959070869337052867783344625975903768339729290159260412438280149210423812454243721940655158076952934531616647617728957831007582358341783724568407680992458415987107578146287074966681371141150839377882585890479220514948086423067342832928578060710690380765923086932341502475793696152290491439964966947276325538303170866312445162480027088070799341175262866856487509359103782362892794931715611822233944846974855962670076363662267532168431045548704037222689344488710964274335050439408412750545133605406377020246275121785354056480253140848403664154213430185012798564964972543534404031664103878927309574953526421287326424994375195683376875721171900458620206628230693491844897692263503030399216261847450563647832598548892733980555402265846228679568290285071165116566311811006654327724067916616661493768899810909024190313845802367797134283116947292111875281170342972015519113715636658228317512177298038692900607291115669907060931944044795656867601119517599242237621067731083001449528345472812842700231150148083037180741295547018147103227148647021608890651777721769899327567153337718787935931759720412663796215445960948623952779698927984687901578375112884827172835624432159966984117055760579767227912560429333598664245263757353608191886050474801982738994569097593278202125319275280380136077033508917092921895840965014394751237951366858401661511779069359373051835092824911983559823616993924021842328507833849072651535543073329764187537183535703926546551155006813546645707801571535919161062765555529700565840181988337901292338542909406975949835498115616727747768113450788526149740294166759799300429429887909729115888246022752425010577472802152206274493495447991070095771696548798695239601564824593249206780875609681202169391771957735324935092832890640393181173623460810736109011994212645260891656234882563634856539229449908404506794801436383157925597651852352650437582366767253389616960244095373990241447666623962687357251994834417749206288595354945233255677784182006232200960566746527894944281749722808076751465633160512931032852126174477151329358663033903387323383659927197431378208549832540676140736627417391567698656285227063315476405701619718746361625792743707690383885371745000495887714093117146686239724124696346126898470239088641942212338966348485023160098653060920016977723753563025300376602710028523048495407260636044091093536789007353219161437502724437057593180006030344084660985762841047979561874968184949335145131160640450814509746714115096750675492000136275766691491656319138075049072411242906778437556594993271553247335808121602556214708365942252225809508721238575599682655344391411285494825418559416643106346453959993561785862432197433072746423830369272643083822063831721880218204747601250836367854859846661167961982848795725839288444439366343403365250472546298195630011782859201769828886490015269889078835833200449515954644586049967015264326195256180814861240832012121083037399635779137729426398667566350481319804759793923183953297362351657397440851412997845802639269025628853159334530459690273768768577609960826919358749137668445887350269668445134092436942438305395108490686676538391519532039920130960373660648657388814459581771188710867647497796581020040383968516888383129313110833439364192254670042210514331845517993989111644694831802499392365205197366177674525674103247561126671613556883329285317550281817940918971877342922631478560917359724743055514592129868979439563045828711902476308359535765584277549428440796195584283308459987349096213519263102335851781033145421745452067373914048068525881340433200329647658866016034576519556460041956131107703600302901716201736511026369585281035101176783106226634525581855785589997702475205348350835558676065304242730298651956410994373085376420139628715587521381216541483285437246361109522093833505511421235138783180357539555167437278404731904397664551032771483468939125216935134432294696714274591204842850199974469009677106747928828422506437397257739911910697624442762584486289699481954091746054852601250308635536319507974150793172701998130069945208005134888091816912439051320846398671180815842581539137676635495257491590509346871978457280543706624847664474606924767923194860044889917118574206102034397529637775092855681358454639731768436659335000085827012628280360838463075976449167015459936604433039751864631985151746415002652180652708180822038300754586215925866255282696956469744105243550876846942652045746347618479916063892838617855481973504044056567918331790803783933385715251037175353508856411731989251408960040004516927346307406254719793921316897839761590571911841106819644593628483050747684219940918165857636962261149440728295835091278764597092184029536452639348556605577306926107504748648094221460902810733158965616681460686893011669318781552940926331476913215724403955124301415484456887102793965737420913958989637627651699607368737887696586908376551032373851184054417796595189473026206512486225662454174825304005610782685529891827331509685620292204198410831465367099609279503993824142631537676198475684521964000991873195332618487991719703645473046251974808160809492185641112388867825607061615333263829151382307801711255473063116617424290144334848232580267038636183317472429292519284644745095847097710979932388943250790631375774367347464361268708932023362234385869390974544119417001581350970876920617938132700775372660710463680769117849078450469530235300988045346290436491601450238544740903016907143615358918281266892550051557345404637222068285219799792699513496111157514466834612465996852582680114871139555745342782604237483131921441572319881130524046116577184615924445372134425766143262750719371851226394822420071551467539813036681354025636515619140446720763224651151324461172287022578321319578288480037973858668055916920067790801459104824688622699245148324699486072225553423914033244921974479926499668127101110812581158258891318990500061737831767993475043208343050104041505175890597865375135908516455723613974450935199351217459584154515181977329788497693272546125756564039353424365421390729931261633705140481829743632083207520281543074150714453150668817964511866036641301454687465902546344316436086889255267188859583892765547973195385449183885489637918106749488225297096076070829490192735087354359160433296180269028728118001347309976710582272642128470264900273922685798138071515388456500522405712666474324577431308783270394878232120728363311223827629982439148715476081715580894690774361129938187728550655032035104641432594202449867711026102376862056090070427414150144915732932180821521496428662112569527160051749855424316739202186435882204424273005196154653879577022922407384928995964493464682077877757056142534590770556378686262759627798913347628701557146100975740427868743356551260314840225373447803201748228013025718232674519514300364244653958434936559840334444204161097484622333227987419454646764545832982091209981046735279789317618772540757395591497580288169783878930256716162115077125189538990232252420156238537942234677525467095844600393805608877671599761808679142211130507058701148822620216412761328739266825401184708258402421736671839006191201703770187436517327111369363679144003832710724937037507373742868887162438918649154964995666531440343280786913761596641677822997160725795239945322600866971450681742277384298176782194112432413919909322034100181225140053965942315201669491879318951084663595965838954298436968698439954268226586027287868797464852767674346107530468107245955192861523305173668205780927843726536816414873859815437324263786421880916329927328504349190643912682638607408176702995841244763756224440941780382674697741378510318499709614371182563599176832795485885637048412278733760935439230127470076362493978977980083974037558131539027980096409556043631863964462482555872048770384987237161294613252669978091056661211076140408510480665711617488847353075702942380341217012955367216449183799272290224550529151777572378292957223678950871755346681555299829436057053529363817764264814323617389602033905664706330313172499944553779935732461944007875348128194965589006794669627977878913901189111272463038210901888165568244358726226890928289577479180428707898367448343452857376567992703550048273363051250348181674663996515986631060156657349616223088641453221447529616898232478732619726512348503194759031868240881345465735450454356074227600994545420575853323757454263786039869976733889821502807349241837622338759821235838795773085889167871684283789927747037827159765304460195391426741619831033552921158933339110258898820577482736836802501690083296360009379857544739168390172779358392737168096465989237627969670389324711922314377199706582614824826674400562066098206193183719926785898503542242803124366454623052710547968555518946972214115839582132587830077971622897804940651251892121798487286179937391157714443481357467543560890073901638887116983245023682369183978114661977495010415541756653865967769229045317107055313188773520524185981365017134386873550366433952425388196778032063953410946058271218690441713879032148127521349318157429931688972173699225050485765403652108777832722558496974436124732547464259367167345314683334101642109681742210895894615076444884982805487974070909879116510559197025140274323869695487951764529051593829309475861483384482034250136488932809983143369201457253733677200081716757443808349694039801181813652292922929354188027057096260238839207160870486146747878857917998949103675752728593918044397546866159765440676258981912061870663155281913004410045607238926481511820974137843941076340865712441933748514718426334062196569932320558329488795133737097807588529148178743005355987279569983047629771042129748699534550139727230645058715633487148077426734109738669795955315882446869437056498397813087605180651276771331280272801859206052123332911585424333743575972876787040766407752025095372195689747545207267845416520502019539801631313638873048105962553887146454339453203158727399582079403867621171341873671081676687894700944898945263683185336740315009649457617215758478492138457982704017894407928334718835856090349227991679432667400565822309354074853374057779797409579386804885102330010680124649892226115490409257976280232512244426529873664932217452777944596721628996166351854287764492559859991613881686354198129740321641265613855676953404224179409558493592655414423728515027881583770528085879801090854751584392020211833449458341287545368927699167406557601268914433542950841061106296019046906667552511074918802545525152376047733031890875029196767901214274442115284804322864732348043670113671266879005884917119683205623962382963949372207206470233164785874325456903724995137729484746634958878426326364958090192171522936449114942095241536846655249127544232547886991745440706095806399241871341725424433892274798651839076881833461361399433422592513178943314655186090635401524332702742334304128492855447874884883192841744389930087909421191613107174412857077660707436185458185670967411266275435376298164155447036030767701583466845957478065112742889437215022890280121884819439737801722478006486745768627405104082141605920414599965421754361026674807861851344143963725196439163991818846265355282580389078319584637007730072615918127423526711782718981427506292342952932775847526132684181432741713575090126687681915681164091299351756174593112655304674644231527979961418562893952953015956974133765025637265462119653045010524882588449187608442433919542837196509374961247019926836377917878359616841209879134603618990500324062338560507819400735206730591910484886794199586581806326953220385956515390170309015797710418237922781824346940255033125326937980115303679791187662250870154780734567666232941066630423224053453917693895189477781755489218298731111310353540350896821118988221363468845775602168717511967850635354683342661406827921061246176245461514806090518609495036301362927569851147154465692934685652759898820360851772492937134182169574573347598334239539419403507376227138662698527938912970579729641736273074432138830177220614463878409406870769053499108461173259360007992180687204883744603659978810092238006029136712253684249214004023881932493411767392003037050928129551701328001948337662244162451139470389616658697644857274601296546814638591995706382139636489675072572779218990708193635437345430548585198747085397721018846946608613646203863520924371154618089672763085409071048136541556687315174446374902479383331627424291020394510876797694659430303719385790796825629666240616599233449891101483678265950533702596405555849332128775316081343094575107334792802663580392786008194911750168848450126334350320691877091493103965900191012171824036210613091556309060104068349301485808926902927446267481717509661597249558364637774320478593156548887395231013691034752531288324433769896676818136436057237174773836138941181958515877985782255686558038293798356851356764806887930734500191872474053129274227159945752159947967534599173194511291062283251666846576026482231478387320748521185573855884160973453408282936316740280561350076032503240584669829822845928359694278902188585706748188807775476883390644429351341836587812097765806245678286199890881629501361541328073905789943027798568824544866415515307818595304778591631677437270690914586798129935770622317620346712221287470557965946324455067403515616131489847904803993055038039326999832354660023489871300619810944530616384082103229774183136123575949937055477486314779571228710551116365930020092112103103270677141654241272986187363944614234685822996965857778374701016397410416132271516317705565809582010786283103660261903803275580957949202043641441788745157630306822107525407871915307078831691400470908911728957516893996023252626267945138432419887399259660581528218992205467512263929536604235760195137267045172738503542652677074140477994856768142752415667155672270968941978570260328140260416240138557731288660241574331962234506012991474942226204866225154024237938019961248489788188925266359184733515278089285266815157785933144477581130646204063266659971008460993505316167261886546673519472959470457205566991473078470576072316605176246882113187551706624701209862806854302059929908828360962238353401307433900945272827703724833508397008261790897759390128331158724998591314345522454329827718503290531413194744154926916792682557611409538044201554619366149427979476022572193998939770977864108029715708124743624361248591128007472474149384739058406615993032766250181586976160968236323021151363599790560406622365420838739762017709508604400315233744389066233785881627217715270459274872048572041397125347933328855069864346536354933369840954590895854584452674332960628374637516573796589071663264371103094575021281073589105240593283330186235946693410068454244065245451446953173051551941263927898513807941994193551010273529963232191758797821979129595301701580601261618741688365271128118876441511106267428116119070420388257136480532428935453233712557135963964797127519491593869867508991832876017063482696754943280990379652946328883061009362204793833411348745900992019749829456242335959915944200457518286109257137388195467962155102128952263770883084254072435268467268785321864642876094883144601587725389221910291795885158943785278210467464798137909085620309060097035652248291487095609138381324835540546113747639751482597492011161991343623396297292766912134249154415637264304635574619221244332124116218190751422123783307201006654499755391105989407038171280063668861794310362556131318546885984751183907548945055120696709581981051586797698343352228854289598009326675522794281248932246310786766979811925323560066529504205283794133404610699392480409506070573785959350596874690284127215547746119125234003566398855732191345552047187542301262732381864769000082467903566067358516722755381858710794114582688358473031432979194822484686878292179007369004357279287493502670032319850416644252404793387780007561851679698593435274581630087305574205584846594408934564403206940423231503356895666753192215729027491421584176915300040386107542509799531823913784705683154853365509143522463697829858441340868136610591150440490745370939618110990768014956912109004363723854041759545731273702275786234928595051139104893909757163505537210409126187300642939607571083477919260064543926424166077799395899005768157516189344194349580374372672803848473742120347269293059807866476817352009225857900977999667138418839586612883418076405532422201340049353116751800391164353275615732357501875335204938338003072560643236274039062912019769084886393842408765955495788684878379915642675467648399619297031846924280886260131518931482259104451094104925993701807485814740968804397976470788705094624285290771219322734476502330231030783761674928174725856087728474999500222831347909537917884763716424724271290575816889703077516264289890817965325726401227104976361173269861517425458246983116781501586016007811961265586813263740880767310116572302467270741139952711654508130115183634060820454268645111835944522212057619728297669540509060943908153257539176968554374075741880602002969249484362743841450483004583006673548628157220465237148580080259355854266165461175193723564187207759616790681946635176620430891469632055935147981277083823868026805085373837910015868610605747036627092946197035305341872345726604076890575777196718072846615435146169940247087365371388802267240266702684986914101306041743626340128862617739427559864570388727956297333026009991091786721741451371392132466023387784745123995837202890652538135364723864555155497558993088939222952855144515869313948971319113418068994912633476001773259467167750143925825541253082074591317547462907151175848644894629278776783245661613789769792029335159194978483261497442263069604721800707819464145239563935733210168154905705963734374511093058627527315801484534807854016318726199444921539048106131039866092071697386198258786586918422223623484709364545483376735524420205251822611547626018448887399873923088845875029637971676703238786149182615351404191328376823292059725051921160321803651394727423028393535750451213687911066426330426100140724458010552440763105780128191722153555917708807290822979214669593717319757794116103366654089991990727604513818518837862756650412828456296724899951112116737477798316346457642161167053681489458498786938414087609563433107633186696536386130941996889292879024017603287809647236412181488755201189773229576198041498761260588276216733842059699593689754524783970823557175873615006027404470483491168606984003591674907420813979879586752756117608256096395993430161636232568789150121459872311256662485866139048781241948316744991253492429159321886837851587041679008061856670773165318622830533540075119897616379025064574910297086184238303656439611043660938069774761308019429902630185612217551223452202587429154011103911237463203526744718371584802139296604520985933406142945237665157270258961998333257515263908132832860067334247350467713811635037422689071048580510133510962128313938785529118124471162947166443050921890504477066844387181086754714450672660366826641646191776269439022761849239744442716388313631349934792107259555640995142293773561922373749899067542937867715234544803170703738275468251522700188654469111362354894773795381040960639369522519384417545618078904718644759437409208551948825343892244717471950624507163433378043373399777434726753802747502252128889377143146570621043937035875039907753769392591150918150744081217878137939526560795883669761157453976294123331840676497581901868340626631927008968226994033285268378057155657398972005170047003055814968209785087259095612803332375437655093378394508997634341472947801320179119893694516615624831735044224606025723216994469579865017626557086089367014384384860444724394250339791321089557837862160646341459617318366733532861675332427804608665977525256081670282276412930483370578684096416162375152912280236365300166547022101531501588486483733694408816333620424971222576180801178771543519574006826634402279016545797405026311467467767255363671345357223557337330736928420312549432189604319774776098880577779887011345173611360880525779062136713802104855752724703445848539104462651131339659346381690686382434369770827316804962856881365482524895997749629723796065078291181662541629216834731111778487273685677781894290493003955597316214267455869934536074589324171045506345236654999421333402218527351770887782406769655951241391211023037348195587045206692008295749030563763982596587878312203588317108347536471205814161559844856843533642318997623804870206291418470653005246389610397114607052841304427883846939287211582640277281596016973718383317950061345124969592514294485045489481603891483801135289069911500009005744485751348716302103839865480764032789863306584584632857701824444605252101818547071161328263578221284929694188000167176504683550001015266305645420219167334709285191617700069320365855090889440177452482740701732749976575138946864199486120756003447979721295617400328396622944033123405626396898421024310765332131563583292223359504219552963162359978729150701221168571736275566030251239912762828064216781445520324552019278663617782396578825105023781743927278443889768961072285454608840052081285500154629821056827276260566703326747301689576404954168023855240705350102477170597655151130945289519687396472670032037920357988795882467002551061805524061042120813960117320484784605208714585335480554048358912681722744238913963715628713657422494782631615411387690025830670613407696597885948528392171905287111594117506195746059631236543631894446476223022597182420175467919465409940801572329154201075889041378273885624650699948453162332186549607840006018693640816187966179197033585949946553244541692456194726320167088619323260522363033721355562685544093962898141083490320844333283613818036083909919633755037331996814690470060747318155169375719352995295409863940420129695430913697624497526931771265059992811191949023631705837077843318132569887254154113900604910973986458733536784821122229049651719851952866715121369733891432848948767015526101448134882213964666790653657692018662279257496076946178425558061421930741969987814731990130902310983736953850239042478435061081086252795909061073879266483585325612138369849187989757325082231113688360953535148342556732673013826101257503361506166119472581228292459361317981406926697185334485325307747113842281421186303618289403621378294051091741602873163900023873101617483733543293625371981099028945416381151977507193469980962595882023646811360662460913533218867356886116332790237891548924656123456099287355387003097173439676774815710909266575034699218462324838971555573383767713615890935883052124847576312827438483721719770943310551358397321261343926363237492756657542134443674679253319917243179155957889634242171649799779427271120055096085288044561456294811666131387379783293936030837430647221596056814451188297886406147867713450325296878527316484234632597028837748842919709775875860395237302700778997922772860997277050622849969739827133859932545209908146724572540643245576980705824382828379031300757245879645634922417363035047097163203277874528465069122062197516927078566008123876844338502559220753778934295616659616948962048249387331998421482221030489056153038554211310282368111181659670414759719493120349665201308621716548613832458609336176742202367555383228089564032375157771231045984342870866777259839392912288858645584352802051186279060013837680707715429362737538894594786018947735168177623150554251219670522231093782878982666016875193745046924434164599540257471084133731856848042419100313153992793441822627183072754499820039109849936006905300520075438033216230864874893716232469749619038311618971706144176984950650659226543799416938518695788330120164536378845159486741027018363526813943625262965116091594947896755838480491441291289872169498599720415344027822357092417460090745574820051721139077743271022840572254408091467939200651047484140373150714900653805392064769400013132656393435945895223390056280823770112755451930659751604802045218146387570277424614055520664194088104380761034309510226567992260602900465623789216955289534884254302454829020024303418714637075552449687541667877152770045522557275981473208651186411451882320935501580062124629630850370938752073842467129227011777877368775646573331151332933253698681367499615097413921617042528614908307550298348608764111277112094992736831680778118884954327402431559799924219374454693932855420941446609546081151594862743820298770417388282751277153429068224904923140765347777546297035647119713217169090442329751217091501211404559116384181200317442007514648950100676036678930432027367324411049533953420586007745668424812537223467403492648504017706206768083982703609373013876439484964647078186982496030903011067455965449681514048652372572625153680570868388857849616476631830006691018582478640647275932589444856228607225096455392158019720922564713396218914145198444056236283381146217073896663802500103800388193229349002735333933323282300955979530759188594736968882855593909296563474012626666313474816686778709332260315048827400101536375552883355887663235272326681648691416686903256631190050541107259477118900244105072546890302425989603135955141158018755497213150281456285956823992587215600752222771656104431810107702071453867102649621061955234141744252239264454582852764750286243853144531886980537958168813373373098056942919807355811291923912674746645756633470559791045017428707594323424006067501119401440087858370745321066534235126158723913375199975573479725257163403696251959797538400582121289226043145601440610053834292139009771618595385803051447703402224267508121046739345484438258009850101442576363830914511631911044813010117104749878898509064307158604735487188813241734240808245605579236933652856372504434547744772547692750657896200188770827333120855751554540530816628480964024070189099214068126813922092751243062208746002412826622196792402534956439810275558258624135296737894699711691381565385571054543901794357158026053606961793567811205887504920395768095584184870000689277944650705383934788563754219083957764714500496893997669734517476849399518051419328039533002919454582358193716371807012895425348339907744264557348665284091227827163323449914048214817407096725865090972333468523080290193608003358665499343947474544373215330928681910261738299700570957401864760651090040118462461731955098907007995951517534025341270784087813993170114843724027524492068263578731311771689599679929115361468501723241414628859114743322480278849941859243454683680803945704669143282730346589578999595276128072039028668528977157113743420918321599867788570497174859985489666043344450272464987860759058923896992231489067611446834131697332379285917854990396859573673561286876505644210743970654875150378759567303565754810733371852808380364532385923596484992358095865013581180138314338500634903883395485511330496776146798291771196873093197842772732459864086486489807509480730543840901668508900586576543393791513545818064113904917595945804850074558776629380614427095615939969236031638191982453068153307250190058540268408153226332783645947459510056878277924238686344069360806850688260867851635454610935468578089262430280742703575607190158813110195492831120970113862772481252150259599104330324969172070418618800924920384292846234805138225396603610789439121234157891772976927334787037039179061772091133293342258075867080291566326830559203400392337589161929795814072893362058414979893912181506819958399137577521532663511203849963461465578147167010599367194664484552886295613357676039280363237102146609279923229538710374302517420188074686540260794710868094213135925907802317737167388908900045930452192755440815442305864781518467257279668739856508315724322668710010025100569103236303590533460641831583157910654666994959495346407434037983456728419974061860253407106248347734545282706557090334579584591644270986898114265668078151542471665756195768699900775897094511685851805321541633469807950482958732599359495574336092951408199524457848948597673597162512106154908901160107108428027792833251554444808396586667923566879119214673441283638165108036948166355001579101189599489331042242804373254551281060974961691943909618206762321043514411412969885778398524376666483704446461694383535597741457483121367453277997869039278219311484892769546913676863080721624000015613935768052581478972880825535380621287253125641982710274899066909705563280255870716206171787906275938390695647452138183219131949482321194925746404914314337538044171490164736445458378707334966754587715218739327826383367083749527562123370012668500672700699835038146425032250499555779959609759144822271129164976929403434961329590508644287430943371593606162954049730318515938540486406607138227024207745160061280126204617355104960913196656391734542387786088365640440664156769021167945201199792952411398554979048873824178326080690561680762736429648166915428414138354337485271169021331307840553545008840398861088935406255427896378243516007205129733231598003591296056126026728294811111101251173091677509071631961190615991647377928850762017676992086670684629634916166970925350140822614387530270246248640335876167953462982856267912464420845855706339882801364111219295534916617951094848254106983117039368329019999673274139350264620649648516396910942285621408848264420279405435075477452654072064712354120730011354022722056686328427497715073677658232066102821081371227982280793220315580707062945686207311464894755979781302702396400498555504383921913602436622765141704672899762798598462481362826115999292679638380328757857484970208126977001578335397050656166339192414548752281598819882229451781745548286887909313154679260908088123392174723649807209402574444159162482823501623200946274579782310883302692718182015537757666663627144131821478419594089779211331334789734936398885894224920529631555494099066831431983636069890253524864961771560208070242683188933557365355925484877248445492499988900151031756465556045146296145238461570957965382057710435056683861522536393490090748556396257798510984558812438585167784787109961770326184825421496562280196579064579339012588968657517256561841711385213829362785935989646466195556638506835824038265282946027129172582726495159331124603383750220400981576519360881101255528270853471259563596450334547403555477775271196710727041250650981283230110908196522112584913093567145637755904598331954490788085179848835834547461058010353996928425515010489098446048038217514630277948131938073484207280814498772844366075096863959698716087838271954246534504610259291732403634403754147740709045531666214946997300520642247549633110567182935568397880956569912258897890480858585577854687596555390264806021461757761278082469843494319642935014885002656209792622292393984315874790315482696621055251747659655876598075999474622206491330420986159430966362661481080001301086298214919124533870730933798916056197928940820193344546681249983405014255465339391077033431715447723707799622633461399828515227688965976448425954279744609442818915099725827730606143620034648512644429483551505883153784040088844302396579943126841715730137492854682629169627995641246344316717894503075770167911625328462608051901888491115742230172647926438138050894514512238607675783467198971095737429710944127082180004961121892282011923814671488843466482946954305562557706619194082482079991843643810762539794144597663229158621593466017640940318330300683902085141354609152969078183028836313323366755831194016397366224785476527610962780466908391387323732871889013519868555691655685202955576819713593818403815887319676012688871187132418413036383195177464112256891971677507235476323000332520681049834754360737279611546444264100469868870410044497993324278243683576581864637501172705251962840284147795485649170925475455875792280190511870832313804414881303968327636059838197517929079938751031610902511603084848615719769530736708247894086299492565699646257474970422341710141593473611774561611299388266528105415433998661603204789389740801644997808725630190678995213452650735698243919251578256442716280353891089458596453324836833984694591637926814946779349984035044671226564955089932627893285732701687031573555291942226937859981892259429973469519625853299240951908240218096059796707692784512038803037035894091269178059728403291856610441707492696807082249822196192321352849747710582492601645657860330170117799977566728312642055394436433444764822562330488582401255108562133337699670149924489049272758964987496899816054600900906522042895493468723305599084143885402213226979200024577618504473344724785224256296086846850731625631934153467465135475871197671699042290644946010559051929040126372503289359478204464026687440080249259391862937986333005548769327160503186080783876239848683929270069095007813843110243484375449452660644848765748920005947220618575761269314243768654587812232968041562268397583044750037443779710409135391378906442346655250622447683428691423527148269530761234556862473014347357332325042604460255945985679853774009890663311163162034020977614588446890978458699730660492660779070754488359290586008400841805721745472566805640509292640234768182205678532797542289734760648736662858102457781546378825123155301398855706348946387699117301391567716614883623427857990311429532405035887041812097894766913249239657482870368363693361565329286805353097645662924929677001996260167510542549262451353209527268171703108860946547476144523465468099210774801413954971168452187920588866252874007660850028844928855242628885077226832415830534334014345806919954995406256291557238023870077419711404512583610396216511487654512997992943127879954497962842718158447150685958517456745888409001833102523695895668612483646762377643842490880261085282084067176206398966773257060309289298508402521763564730889743668564036521429291222985979874909995258001703840607875177308411965218586044951481501162438327793193658783994697121444372232746703177577571275578705450752544918971441752002491457733521331607310908047033736065247962412233101210591631155876164405921192503544195810507631475541254235445109866953326211817470619444435655975568300992093183724978261201458823582448139575858856771612746985488239497044435098006987320495561239393587232347531284513693746101627091703925167476189061512246979812906636903460856032317401587596834033565874113776670208675622019923919811937455229647622841965383440943227767284666575669382912765307980837037845996000801743518618797342087152822263832297963148620609094167826993240291382933071994361305140757168165191268083599931183117105046447048886582828239864404745679436198732900118415386181321949002126674103729747065836415744244167550609736761925470038187245384211128266621664904792809481190707518061466749657536282921776969950444180863278016938701789757899037198596603117655982908360543630865514461417456249805485975780967396866708633878839061592077603605488389078437206288170151462592183091628802349395071762416548239116093964363735748810777861863976085443398465563604839890234327723594943874613572782371864551906479667602547315917892517394610887543983163826336925239010923112935574612095207926262738777853551466196249023659786486422675283226828181693355163996078262820071932029581677548485946540901871185580869984448694219022922251845519585632376561122365176775322813360642754309122458887372801024849222899331227401172661603723708662945704835450843008262844667202210132849926380938870652108219641891736053352996678556679382626464117906380028662211147040661664267679487287133460707984354977618148161106956330943757133766866665101118141109034718136140338383427340906049706312025539649666068697510440539859875719730511580574862217315428720491972734056491784412621843646692333188797075386835801770859346070992540909668063127334681365064233209256997098218265521289517480220746127533383605973815611007105990861093877781504208963181774503937312567430586264519916548262500973577658540810630796016883788379115118141745734348272805405767507095378411402714587656554771397072307202118940506621609938308533884621045138270230026510724971406825032923342714934147545450403981542804991726408548646807795637419326967419029837488930034289052866491732852216958043152513880052806567267149984238638861877219051131007365041071700124671538220965799900958607998008498389810670951048242925554473229271474716360514286906901490017942054733136061119359210086535993436473155477307925064532440694835445165960328446179084825220894124393222167024116198259515817344500428581585749130845074207745273058854990774060761519888089922820250221825427716809556715313858375152069424689185029370298918316866909874252464895590978432734322179032791743768633311917973631379874561494977305907508505458665648338010293740866638422991443409575656821061149309336757255190319924332990278020375208405351353482262480909500572130878432051534819789612587419717440280932590060238134891775155578576894703475238850145271021081388416284654649433990443529940019923482610951528902908355019725381263194477006050534851604130813747148880762533696340371322046029648767675424489608904830105908202019248363666165979867986309722057208432779194867342803805684744100806124205661040700861027446579683845716522371115556641682856393210685594450940535246758132039134578319573203708139636240364378364782678656332622977473363249116212466803536587679938730865450957444519104341617719326650195665166487348696091237189501689722932505735437304997577184760403710253482825958124295075196461805947607813503242706441626297894432417632633753275937954710804000509819065255748880859294828387368960279552788688498134633035295982027842589932890884274495074914317874973624248939834830423573711308318431465555052967112612854216409996897467802559875724126461865075409065924859859271165707951149142724096788257219817455426431784872535311983600730556594070438407372540323394765673391591686315330008302103468211154180599424519879591407863255130589874654727378310986782747590239455391447461934234558826789381731369005754934602653568598746021183501122218920859949430166687808232043979144496604615540351503061053528196016280019166691633331865175643303776669407335589167538081643367194643605759210726933638548936879672947142280779394284369415467163667800966050891612407898151275230401428578531084606107601171198995539776106337074725462831560381298737864157703694572626414033476289725069221334837995356577728257980733503527514065099200459006736933281446066793127315490270828689007624788013827506260019659994806425052089142039133429344017412101939229162959394355954190973474021094647206837701065829868835330661213240202248160393304760414717344962246232517721813164298848331451658562587657440885214669068262857200875042574151431975072410998739949200974777388180150616835681341392044052145854451018653114298612565865705062833203280430511097992109419673550581661339771900779824575200439741144004198782588021263639509823806707958717159311923476734342125568667770932094546654632616721131971325631243191102793598999110589929151345375046376044449149430068609270701796171445242591783105130809960749275296119110039236603663681479868483262690680071580114269429002367184846294016552768703826903469497387754753667951534444222076888935184856929623610645077796015196073309905693996241217052573248577905922635813409156320298056209566951088704374246506197628332295771386059011428163897487066640169279857557388230792381459050594425593719588968628214903368614708563270744001684225303261832462725007788264913842064792351869554520327157425536467690570355426943822629735116728765758781438808073565552509002731592300615033516676392464692130657047803116057486882374533594204577939803935410985470283680432129973627250486326384190728996445724454852503734609765599961188351262471933258548289178857107073499274762340931066686096191785766047096413637730771036189072687578283684449776743175265915933293039607013821390656639971919704537624414587931859841801953027001124190705223026122900072216037928792514209023720758031457740725394421373248791496645025727539467716479811572346651387660368471762918056447090398448897437967601492529785417672559428240980269826171445237097343225692521752228718792555148305066870366073803515396995532094718145973917221443104739709551510975117691843604930933590490497643334150008563115000245950049636137636103768946814430194093919238109968940018778245334638527601430453707960306437954859029842270552871986158309332114291801693118681667628989825403948546298051714430438828089134869830327127850176676706061210476391692162837886310250714595350653639894655536956758194978323470668903514227128902014680090377768569556778126069525858524783761933042730983267333147511911218240464883875663919926714539637902872740215832071986621808693338939182060955567468635121252468938025971587817501678808935005908100833804431086709154251590418872604567495664485595538405019665002890094919981846411768218451430268879826894141874324637523668552747247971191684271514431735809105581271644351070003049515143725187613124092145582099564626526305725987496429121211977128276425037873850965069074308137345528235960800055459638703873827224373420664000379700243497508458955347143837966031129066539469803457302571803196435800148917427410545067995070014412056365420379262205218769912520840970439555885427302417254010749415332208197235315219130551391760219122906193431716581538596423889648817409323364180630061509381744766243792950080513546184383451402582497533969742035659642122010283297735259413651522761598966220205136793167959267011746805352147359400370984735775992028450216193470770990415791585029950364897887210353743186830341495677755810188375738735968020156763016302364570785499843617031401216632058840855850757940490856314806653882930151765214095926894913024084377404728263687517019853958911824917732511284285570919019769556357290601935660229097262767718044618761810389860738019894215209065512435509859533652659325702819560078303479294326215241835823224436573610900109992925336644200557449047797346456269104769352951468906487460418148295524767243038259641107040861485084719995808309970627448143003415368296840481053026169279595779071809393501034818757025735726855173744084349093151246135545936008559734904715496852934387509559124315621165008492162519563315155916417760869398537722243492397225853356871965827301723363949889130176907694744152212648795301623411915755944085265774201547557926994549798258692374005403212983932286111089423909598367388902143049939324050849273422829168351488603099938564603379490271476734370121815418716979917525136497644706284117112954641864492835993214408985047954912720898595966735463064579927011548319402892071188368213512078574187657195897623871625261318776373341884069868363385066867568031945646457348396735928685013900791287169902299447350555463532696624705065526870050401767079276863758857735594197610714985110546217747951419738503262246885027219963317470310709420701477093673374143062274213640713466397899116568641636620186005975132422667235022088406290403863712985112590827429055670286208566505366093130357573933129179280906221575681784781514130027690867418833020673893153331705247011359011982194592414533957950028391114914230039053506345636385193453329149498189295926384496317773692840654625345636113960256397336323702613891215383658738816081678962068627937195984098874131273707644254497324794361648366816677040556124627063696820141224814216990655112559133098864473893067883370723199130582037044951309014072542014073114221358073044464886766860529577710847413185967157589027608144987702508883182069188340330935387568178816410836359096283635315170611938307365845580390503314737493024522536862050311436982799138560367672702991053803088692764127928291015331617383683143911414387663452850375788005520075651662195238391576353471342646486025539242283245573951118555439949944198641803748490547189739858738754589407864529017721998242299086299137416439473522026367474688265852451348731970263654393900177203287356580377586463033498800676683330129860442905171839028927475679831856146863804414076798062623324424997188270248602113221707454941435547628674322264454489798934706087683529092104804620176781027502555621087588242584349178026843671683021714468116421578147895744216195818247420991052742778155930246330077191046933431377395847313268804108742955042055733881313504234975614643183817347833325209508497273242170425602196730536141821076311416428395888622669292685205589569235396046106638927536318833037970790452594702140371111602135299559680992121188636703501670378377479444216203441297606734996968235717635864104455212920659153233318384324223510788599353495268314528171038966825710024941904810228194568205642609123539452156029129976514412744925429325438259824129335646777761110415553290611969966433580770035459494407936265949692556782443061272832196257786380932827026747335277045585948320720058428698973898494003503762397716007196688052195188620658287535834437053352377419159064217190113784096801569167408438425145668008983889258106255729520511539887919181036683345244778299753939570012580057675857822772038146886935108446190306322929902657066684768068438955342528152330147790123689459843175686733442860618464675003137702476276744269467979885490903100479483854696970311372853004106072155555175231668708749294791741740610072783826097841008485617960077214698561248999115496788267571229977460717145771770247573141112529740597318180159776108729061860713967622848754991482090077478021409529258204804796840582214866207168860069609015241227691886488594947338809673999881682085835799263800687738206641606552661534225772058749942174674054299631097567441039601781544075367316251105983587903922769149073770562535224057471531011406998620162676737617500310535346537133974765941197101410376100145949920950130720462906662779846278639217331597421386942410728768100781700085181979135246400123014587459404287984409825142105375503067850582033271728906342903708896009011337589221731040741283652003703951318629743758640068285062466298514627373823319286259184435804015063874953436368495686458344523431143772024652161701322252948252036685008498668953912812054804172719665228556883494064123332527433223635454570453224313720742356409530546060615481635639976448434098716962877713800116445851608820633274622656022051234042921497344716905209212386288778233184781921674590446946609025348394024347458813786689999717491021642131878602967901369873723268674011038730760163115893555064176726503466420245754472573146182512795466755699386264192181771343992984634824057574407514851753783064448923743527871676421724286575407705567992789712710550955535913618658195640790775227888154854956541460876651526749390473884262938435478503139446697631907739020811212054874108816900555074295922419188047258454169757777843895065180891965687253430342057143696684064891961000201040055234735438517116226615471275457648700517822519584579678032368782646866432576342902099927240126861996634085924829922579010122911531650135604809391559493645707470094056851035194388259777656994249168821612932271927296750238781798553181662571485733101851469649669389447990782972924087510717631612865369495889101911045661386717385175316284183541561764931204518275633182447606882871930860671208011279493428340816732771404595634251445310470238406204180135816390711765892562633926026036463034000975714145561873749927266166150161599354907620449642346719024547667536534741403085170472687519615511777517327208450834455071193718666627932218830596282773840299132235940929957590982362444643605885420517975229617859844777425111364023221946542918607982084856145665904649905100034011024753389480260700123457415337156593558071128261173391650239422787642671235106943095739883870946361727651529007789774513153578694568880463779292695275307828709513633766489896344116842704092869742533006508731094996302959252315774654801987022350899565061377255651419154410397166275571883821307776659795775873896809476182844578493304250826704911172046896860231684935804893899961124623724113695308893753088753783020333191754507512040009313113525822814928075787110531718611469151360148052608370575153515736978046237660052451395392997772422143625838083370061018966957074901452019721576171885394016078478206513828974961038235461465735148410191869501209836502058919716011672113654481294332020061638391860835511986800064640190856378396303362568366253596384503839629790607132785898092073889200449335688715822074817106807792195417903398318611961065874051329452087691694263350688922308245653440820004082244826260306918565045316155932152126760737628208980364918566616796363322956989600174791928533834238273395827892857988683054639915659990106667046366755891320502282012103553778733726113674385680546999943127875003652341115961758724129935214432810805163974169750827747274614348152287774306169751205908726651120934272355661578913706728541965742654353873647804400932941878474777760824611799598430711574746186105742371052814577684013984711835639513344547345814523312070391573663006302816675745870280242197075500092131463309323128699679264444016898252881095911387873970216248633911932075790366416578796348724151930379166009828838455965457501494320688135996712418240746530536654689044346440801618873475526984897267243725571562092379542103877965239244701774028129304243452851215751151190333743036955370437859592703112957708923877395516708091753828209275001274349429741452084698088804883707701441432159362405249840475585772359201318566922229177340278548107424011633570739507105498491759699907887271447495606606132874600525935221825202485315074807090611337030656251013130123417444799915329717426226485573928755681605315912866152449940542008335397938358946054364254895992423534220608473803812202001081400053062546599895020299494683928410513748577688887163933641925907621097568676982217483321632018424919423704562161524405592957639800901497654319496349119425054088810092935682601951743185588369384169050238438893520278028846660033460753177376152400138757428561584278886649895914417310008841039479559605304885593592737339547755658285258272943882045947212096290023902605044194260202455619310429192078357919771141450602013245008446535963380300747735352638685641394100457784407169386704981009314956309439560351787329401150896262898698097578955137074051192142238495396887980712883553166374882909069247761387334506999096823509898733594560500820365968993276937273754763755749436503770365075071743761376816255725774400530135247313663380077123429732817360462464237393871015616159954378877543343598020724205854346448458602131627365189157213483091261051523987334842545180521603071467824025033046260787059010611467792022728084639255477765977883598169120908427284389700612330165172632445687432505574639215117447873609566286158238350605154772373765907332743380635694794439627556668322247799642463130507463220600831960785223783520933581654031676387133182650221691752623061982970083846987904685871483819469647193462555851343630812230929017544400025457246909340608750178386594244218909664886718952566902550228967549895636124618931801976809758898989863760243372840781857167038649499648368513884869944511863135391832949472615300797610855045284804496489207127076469408245441508581175792959887074884472755998144929015370103004853630567543938578131837592710912436456042963725354461052875099488199162851473370945436974501586196826409959789189241474744836462967218810889868922717030499159491313234401216186680438483278829957731798824144451448926229828465051825145975104841643863225842026159024795013361996719271724032036842280470714016278294955917993648449507736211663761343063131954375121880823067038297099333028810424383617884423013633969433541869107230795529000769248104763497985957932058633430768227758917292852306365578919291692644759529516054409323968764451624820644021627652181641278702451757653241806212308725457590512272985390992056050690577244132987475123548932156957690510233534028483520334605936555595120295816608598597516073465919418836170126034786131629099556504109844535770283922914336033668906866245761630337277301245396242779411038295090869226146218153918322082816775707894592157664142358162193244205004205589234106773680212135787380529753313749169208478140151146578498695398586041458351528251323162105742891518949045396909315988155423019404347819736786068178497116693230970089497396603431618476798612064991356900208564934749443264806141033831130098993731973731050901428692879945316620049978456912355138415760189515036071423369963363065360662040654281777720361896043474080740701751015577648549877085650156732771771170251274032689928210836353108719464207148345865173433195887239016819740767989197689517334308192148141724530293168921422553987087399873308957967328385217354806554487854637417555399917360568825493379945271808804516235242156151182015047031573351778096890797593427277231554632452822785872844274478951114830368390426481451995648115712238603277635395958930511386969865729182377100817748435713334315950494973378476034705194311617204774532887674645721481388230579006161908270338946609564016823278714982074296196965707707510631697513110956673515393449987423418025751451819003265475969286972939716320036908240667698030282333437813058473562233577959925623272434065640131255165550961638243413942636811256641799840855457742591064484493197944827929268487657473601537450233340084964134714707462698342362537143982418091598182284603830349414481358564634012511122375350498026435134429761274540624885376044597386839998120645506596591679358286522978117855090300244284596025645750892640944081778485563617578203410275406955460370675973282522535842866915271994149600658741488286809563430100840732830170529045298947066213675594506515538735455466640066518461594512949695326686783308157318721183139454759889324746798086695896367203552433448783605548372452537626688034288882257502795119551347830730687865263073415345952366171551829980945811017457630135799243603787253319307527276120891321533643192512199932533400979672088400698915378935295102901547523125029802773286143316335601379303467974161667294924525113719753979483962002404308921822515573840410146198612314677303178482453869974308558457271789703265872989341261563445574299035585222198322443628462514008453047394343459742335212665676418178053019160310672596892357832138919023561978765661839873663969117431036198866456208024100403964584192859633246570307805487781699107328277335476531853268748191904866390213768113018795119909965838466236685792287458187073209396225011753333335041972415289858925291820148500583054232171820026850465541628132909177887369084618486206430838317654121058391938425633662893749517589531696591905855233629768262521921168219338689882169271826447890063723930882440685469618317563365738345953907956506724695500199655118899568005809114265556249340462313777047796763250332533244639011312647435602219117351802272270889377102400504383116940801466700116665227384263525964301506723304228488330186803816814578843963467566028083224304425495811894541924107171344742057671181715726538841196117930850716082741823081626436168473479591973141580392673942086502153911252639103742109508113732269353405048296291053303478763375565171781247750727589862544334955473058996167973829315758244883294619067573568021598391837652210183286749742744792586999026769772822521416644822673759390788013870084363909089782181271359882455396909383183908420342918381315162434636719458246632463160885425487517871658425483393387392865441053128066922089742538706048745674969529605392341031992805126057907583018641784223270970778198832657004338467722373095178562733471375119320033095415890169694745406584703296719244394132292402511412581660717337004247706110230498866575186312837101203661401891694701747258647022736576090589232554193002386472237356882081157244767738432867334398803635859776459165919298536243228933087667126668879446858648854430954820598457774074166122521593580519284039677038277975887040514317814478036981575419729243626461615450660952084073532849006301416681818965445322653300696969569408807037005580798743799116019117391185042165662385501619322351620100806928117608706448546056851790226181011049552797918059070466467901704431935246371426846105591468570213958707389231576985158549385009706623014674621273544873791958386609010956353935533934290774463317356917584711062712808847580172181258094657226388635945231206962446589113694377843269453647236993670328711904280059725790000710736349401749947567448254856138686973101476608529513678405655360292793154404180488214786485214371437519799530033059497458409534308681132628040476130671136791943067978576762883848633987983254996118123542312823532879359289904082289746901305796929628459947893635100851536089649396906929829601260405260479945005705518011499267266666565444674992743215732216536621392031654956867381788206547334169581199541819167705217127188123350099402343811567158095253169010614331265019670196290778284497430518930125061711719572917062624255979953839237855801974813736817852105722102568248271524219415201418053802608775795880186327322577751291263242981279376426977334406078989079393751857066529264710330528203831719826670388011052389678222518124412833268399233055631671154991762885089059381315416009002027277983746237249963451233230633970965992887858965091014737109758457562220292706779834655602765070585642539246111819411525470027967394058741429914361923569306430669193915863756878574166631281905828856155350888526191327834105351121796857322652734663583335673118951698513507865874255780358531937647889374538324969949683614916775404309309697029148459244095755363121377074218652740224918544057020053646845563704690716151526378940177348553708511631893801529469622105144258545089445409368893031354154534164960578221425732800853196182218855421648065493794000602223944163543460375829415370338240316023511518079673646817444217961145783156372685038136857218866039238585151686574285698035729968444597416969381011297853911125448618251334953910363347553103128793302393822495685175277206871572884204419611397935081382177362902215149848076021118881847018026883410608907427887082336799112848314746825009575379168471616088568113653141071647317983579482841552906880546938632375983889700486775106928086347791154824128497370149786307714733528465083525904849597193795005203055198377962925848209568636804377478976459120869533898078014528315890342872782020835825307725043224495966857469324084985978412476099762998565129912783435432406213097465877753734619265541612038432139672400976627000639120291218406202628342077379258332228859759705670860209683891313461896976561572160785868882618317582968594502238577789056873339220697113738643933770666393883917866568499907907523543636755165149015906974480038699525675362491268202668649227999284674819446679777561667844187492950188780745651252948002561784047650487032445758890712774361754966651067263538834764135663137911652822919987626332636472285810118139249462288105711937990235963430840628279375766782698307742481444529878871760037653798732911537516529934709179891745019057907768348784086522513135926967329573359248037025467810744112464755477343405215913642708739693427933094114321085562194041087110722866149719260728877274766932157596237791881804515015010636136691979824120062275009238732723004487742397613149901824249773799633474536284812921788445059841498546936554260848498961417156352608824192330113435096985651425830432004173194821082186346167652632900915263024272760931246750159991958517650536231659209367089669313025177186458890148568861726332778013132785973106831867955597028360503559232113702022238885290897563013719532703914836516682304299426638992460809488295319702384041527897668222570609174590471993697554918414529645774524046589021054992038468844459439915959885349758478422176022862317519233182739935553192829948739008981448498167157267051866033591094486773701057835762690694231835923293223044336857874929860581508885918952516842482662849599573623907874839303075919198000482976471149061609817447548930353227259215981698143391910325869336647897927570477166681849792389900112242062111594094594830393163414953380677971395430525430549916587036703345722198156317990785502879482299837991192144440192863454818389182784838875211838824594878421924827600642605382182721823026139851197731274329023090775067069759818180829478403281803249185136327859402994730620566147184836450734241989142233686784031873771671506271901908242720093303515169457526755133270466997219820016098977112676143874739551808428933390344457847458896023034131043507163927444615416213937960684944239199389498942761686443868231794611813140211220104322534155068609864719384975967850693316513158006905450886087828571030331200213790949733472497572004961986379879248417747229229585927842684968939726097839148797951743763098518883845396896452843274648890086805686147232811173223970358318177985226667714420036693680188206444566357166762202038056890454388109497948860527243966966501305433554198371801548170602975560024247751359729934060248514068664147477906208605097653752708301776393333397183040649493031269693320000781969183290748429070624616812929229848341095669870592676853578993640308546799957684405297069865047058389408304829866750216648969699974710822492007838203331863639718276052961077251963492223918838742314826199938952791587184959677529420089268460105539116989668129591390130677566785910612930524630526388085357776971471056070139883436115259759301205271744770754059457809072922580351318777735439373974250935972085267078655134122837181427494693001762060922204206588771472562413533474467261108950997198552416429736666780527697159998743245448542045588127647212638372499825062337394816647657168052676799219604854096978869324128162745784138822661778584741004091410886737000866625409513738518328352773526699266554378646726427665884120572275170470433184435609338715756411757820346333661325678322519059832122989817034196081514512828224735747673354186553831721537974243336176686593477228875504001793347223812814576908629312942015358815870957544523621867738440320426090693717412032410803716203924454098575981827463491004636341662631937527363830823401136820838445736724973688854834914712940945727261614442358028784974171763285603821304290400260966578287973791363999760128691016545488710140983653552412003463249004145302547429114977584827493455564531883905878734696521558951956265165633915944923275406983443455877081411649298669180090277622548319121903933539024157364168292026713135703905832854660494898746281073940031415475723275085013545166252340341319931605911114699095691121014514446276633526867342240259293795725519034134556655575749721807443429490488675991256303241020105597866693151599968573257865655532321990550789648132905779003573856198252377513027084583016157832899502297574388059685990981347638861874513685872466008030503424060138816148287662481473980690409792257264346106616087436009404862239389547085776287037577952434525534266893327249954993829169028440002207451765033753584026914116158793110252698319794281727172670406410221738466745415601113426731489704417672944213353644501772309153252073388415936936129988842884216254725545854047640522646413555080821957296867620620987693218185761715957642613485578584042211199649053337163203079301946170692951252586419692743908891430320235106815946103676253448998542328112030145069796829890189185111610606752933154583326484994198197165778004680954543431081034456968102067327913278794105733130968556929085458337195037538572719146819126626630735479058849412596334151456542231764547593546051730386223060593327698441925406520097843878892242197487684784762566377116608561803587100466718794953970686334331565732075651629566593450506954761191690443576075471572028759794046340073781927140487342833040921176514421745571434474068279650487772512613825130161454291718224239808167379620751651905891147055511473435131271749378867171210302240273303816899224832869313450446100171219828382011446477053865017922405949533625005261321056594853703454574457056810380464934532289861713334690821876533196395990850693132446381679752842244345147494850031611531373441610656307546810615111677045077557518604120955008135422596753580208356020652075974484711513279075214005270210879540166585565009100827565538713126328452826619527790869262513786108195819226550746385691140057439381808430798558970776550594742203668934559786254911628492419101130069143116364792786081483491947145211799867537582348703775270936817202308027102913157087062093685426781534934428735055749382805939152336497364682808234745251455333336526683067669890382225349992313911916904814857251388112397234539116360062617034982980571283125771951327364069349390333522521456026402225998315012795145658940730918082918208574236416692066883973623234255697177687023509500591531601676708789323357498540159837655427210689242579591924467692497941100609423507168450285394798870220059267512620626308636262360132180579044886058811359423148096913426511832460747836361561263697902976141746890157379341196775452455713723940974686539866753964523374729587030125369579543072496959069772720785728866202994292457111336244153397920490646169339837801704628176921472004789583225698752737959339869657267533641429289905784519806729440087130352098971033189044701037286760933531618132602416297714031609341220891403615738410528563288431786196873569697127810031049135200898492450859516292053502839110149250466838794123262894112004219784915560268307399537560532580021286424614630257066463275188818358864504045441993925485256114064885934521231262851049441621679671872697148339746095594420467426719188059479259752910717572250820561985138828215758248732960546857550526465374655531350093035505930598879413329029528220199898490984481723002020214117156340768027713822028006301369814780043420384976609141154310982877315103543048373076739778444448860911675917431626453785009030170215026442868709249826769183576283947166085452745399267198382506186819720179078058182835152299084157309769251657993335941823671235911947737689580638322325996642699363945055867026925769866956855822928386607898206175662873127604046400535896859040815598935948335968007836995882433421085916003291920975988490130190869913890967927930569648310852470375196181216345010448177335698886714082881686977618147282993150054539980677356623798291152979231357757354015805560823104707835243092433233323468428410040561646818000809274771857828258892978502244460529875916435716969528464419594846279939848772052537083963320864029220505678759136966457008999605770133272663357764844345115158674995795572151183627895525733484806253995653336257765636750758723163709697910991233360966704042925314988232254655406907444598205473923673906881977557654247527409558075021773386175063375911678608068379346257058949543223717971197100005634217156605473718664645766688816989387086045083593033549778486915046897878600059246743587220615278424871130506137999390938752510820250396124132560462017124030670648205808062033001241297907663351420108086301594304537476359525765308214691828796816208604087153079754728797038821807244492975727333043986868629690441857337486741703873995707473295773869843560574003283431082087589204346460989515493691938960738619832426325013901332064231121686280828293919804026002405158301236941969696347062207315398345785637983190673661027724735339202570233435827141673735005587586555523493015597080928310707271164275170422363917317120143149983871978297289272923582121492511053365435546272623544084368717382256045947249171865952025376021639533399691375957230421455781424976622596715934935208345666462826144537719456377202846670140910670921717770044540338283320613033921566037504020492867532448396751091606550816310434636995383871859769655652825020085384234863151145604490745327614569537183075460176804877301885651531776240677156117610013160341623956853807365246347891349989721492074447443677705243803437112935892126720343120826481176425697345950401687359072235249012045469454829183335337125116547194301086892351358164415664850458954577657890059722589711289073062857463733194290530982333896746107790237533253162506072447793031904890327501962947570833951101096240967824963792307825161950992668540639128886892279107522187745768861596670852983626092557485740584595921454044274260340192124958519787322859694057560545416107059099912495401946862743138692962542405594207795679312835310684996272254610454096834320996816797194033152467059424008634463037589029792994947548452719027537499405772861844507946827783522206344069521950281301834306224674452187406405922386480235982376847864284728503328087826592487127223298423091009125144024484528569849836989144113496150995870615684938099939381106640940887259134804918166668357644160415295794872729749257108789505878978550604859690037866879320859878626885056278174549491107679498742181973742385728656527443659400766226651133957846809089457434294840939992963451859263654460373975080479598909423175423655584958228362498019362028480097181169830438398585762727395546049227752799451611084933267433136989299212150653737948318274920933870312961881015334554349171088191242902241958365123264909119595073176563560242985115736765637218830164598167895208028791211025304956873402656780585793583918379798515810237673041053495814510993089472354642645038775619377396684585033543954148149009935513054420490714083824001786024734038713759358757337049879554407367130365973772986462376036249126716241926979040952412745711166494895774405635166607568682800211005859199897429152345767135193022847133280610941372995014869859251411490846979759354865219199521002673360229513721310103934877008756606343984901141346160768562267248425057402956705617768757918991813270425468418336415557809882568743146336442677463393747206443153005270244656977890098409773512465157690568671444184769456562447103768174702767476139909065147781383203942202214178121067908181268911269646613272164832525663137151925418149011926624815652424008827699012913597298528723171248138477097555167551009281203948699447239205825508545537687386304853627585241637079807855861285691502275901843016422784929293136461493105238181628631815147553134270364856766017481761163222352256276107774900806954482741370983433719128774392832564186040211544450517337189484692756409571238347543944387226572306622263550558860436346455353180899752891991457422139326688231520533856642404724147386892492245496848293689784584722654500829474465070255663498862463181984509918576406654397350064856068263573759768076820040707347456500923791749496902646060161093362344075163337367221317806886408311734033646530671305340206904752713073116904081322139922149148850848747526903799894618931312321226803425843680048670523117354799675370305316934818657206861422131653724470973794398246150352344027773530812645034474939935783093260201639489022247510657354374836182202945531115808961975925703436720907670705821283094565251425919784295992412977507915080521251310947905487046842450965593289614001612234576780051205597352282291631934259538054716844129089551715334125720555169549641602491928471323762333019888305931095070943169490549036757025601850567531608374936192390224019208729884683366895811318708260471676955534219276816722996237887578006477857420397141007475275368623914724706599348526591934776088862270781880977653523586690358011873831954997343096021144760108476594732859752715820739822652615758913761026389474991578540522872682009626175093823197295475239951190754396144340515943309815033764211335466168870090223917869563299450097158934367597487896069221048935062030759055741910416249812345297274084038954788547361245183569948785515321981525228114865914514120353978622158528305703404121436127362411016228503981497136339777791968661118902714511504646414986189664414462307604621498470914063109513764329031912960105643608753313978782676213221491695360384326112685327033398619021550062305863245611356070184243221317646067841780160783177550197021123388475980859888987717030089296007676746826702496122460389603126603149278248459148700059067090809666807980895728959107900996401098356272240968005462540656090220825727057699233330543832499366350238942096682214459669564602809988978424889778549580223543017963952623521599162321400874118598195372445433353350905420889586011317449094846196893091867767694170743970917258264003372296958766770064483062601263754562866736355256506120590066130636448852645475182230395652574641390440687925734922016916001515068024223919717627607267794804829671962709837671309917169120658371165160514020016734166267283448220186698121127515070571740533237451505930543142585239820062267289372207946214136562026988853108183150138699884190409645648821688263423340051550860588672965715646650692647076797161970709683760684456111454920576230399192910086889738703366683841031632810631149410257388446624361749685503401510384028306257666215017805372120128132167929487686713637350896720920192012366671360834218990320431025221076086897101074365072362100184756753887320760487700170265991493445117559916678100403140955705473801157899080660931534069398631399919137347854989996990187513132144577945255466346886416979815675229459681849243105275163694207097416801104221924778740809656733890618505184058071462024865458955197158125958131758423228616433203474160513272896587788202026437843144266040143956099780629535737019050645982261549431348289164568257686414112306234913320926290355566214446495624745478258945595434733953047933115741021255589173537198830884048828755791177041575652153340164346391095197614034074733651161755399879073682993065517342324333031464311557686332174785696177859374292178787901104811377778224521579910183866864589879816550603024281687757822746466863446195308298523077553363467501335596696876387027946644756281711405935682480602039411355105515038521247715688719319406217798140157087462200910923374271430147358281581902077023219481204638709921831504625228111479700847094636823282570264977919256285773214500777596525136903147031892918470356809400435530913754572151261842944005867863622985412335743941820520062954118720145458715333608157991414576428613476282895190469447609499310912052359445973130264600535872708469425298033033143710520349993794474654303664077898783938530239967345135096927921546031664178675490300825273438525049039659222550722233617282852684205464766977815359482562391851295531519202792943730346977272943910872136991463669294919238296182885737217859393148887307650590268846187637091879932677377359742211251620419542573083242645629955231184180951009060019344321163857033697566084620215663907028982188092754218694467183238601673800190510343131457160813345403866694388328859193175671621051164365036507978351905188722933173710440627005474289430156719666681243653404317164946676625900846080371014111421114043454698594988270065636466778899182358310520183355849543617988900870807752009356554260409399075600752396848302545630581362440229837800693589011907335722995809549477428223486623637085941192561649277135116476108361716656926837430549617986684627210123365707387794885036858231491632270082616153297169325609533993454208964932473174978607934891096078964429081596617006058078865480418453162879217964963337449244878116762629167275631224768970281958201693435013818704598844212052350512895673968225829875723041179376784718663308974713287256986564188618621089567750532543554894711267982948950197059461665326082374329474255014171721554890501660075600471321823058418923827414724268157484727069742855381537069215654234779025249180474725003562683165454064404119714013276720749493638340162879775165041905993032183566904873168425717504913314424828874044536621999054278617712154326639580927124893960255927787134208793484185067728432802120790007294207082380414765789947341965904634940472155493998057418127133684146549687251527443549370049529812592206083202225334679680636271973104895885533594911426868275965151787144407625473908018211550601269024659139169092167686923469429094796858504290619236329563261435150194646007206459615629815844213501017399316853210989857949446070735647268515242887294706941982117603137569804217028443878043505331189551284147283194447305649254486442834975307573284792922931871877031280411268040947960532481774059120649906790136455567420903791507078836146476832700893504050829826591806946946665643428904055429980781703929047535778389913296405124516765223924055366659218369690974038287341479809597431867980236321463476533866762079046290612662732785709733367444617239127072572785123328863124413947787614389600845732170022996319020917655584552816601565829878484080989743697673223806912176305477922072747623024628035534781431310368815097107304514386970531369880160156570940639995165589097590298099025950590414590070692911314372390611040961279851305124018438471457129367879930464915419790542292773033278959748670031646897834429498652575043299374350347020110015941498735653455304380106054739260523560631136956528639269204704787363389414005287056259914249645582411181801345141611946103014856173247085509593476763357108045427780691059245426354428983380121045171311332142147506486607078365841318203177521489016096760422119652767019956640986849748986684526831758677979507056208522764866323374761222873031872280858884610557160408636563598276901396355129724851138457941262137471860498974654070870006935247019268674681260398188280177061935183254401515894939785688927521446784505824719861848362236672446217362396295828273447739945907707683772731775743423715723289773522307731841141142008354327702712400121174546554915178256264266764865884183192774679313356430947823517673848140266559038050725151457679940368556134304020062233458640468426546928215696738690696372793891258335158790453007319935029533465596380908353834836754701745460068171077101591044032617809276681994800046702991437216827974333028740627716373271651097259043903824513792456660561535361589550619407775957271680014213769723795354445937194404224588933142435162889273887705029033518105490602672818204605746986903445335964302681972820324316359756898252610297590402113634069074793572219435201445439251362261371487571239311383982072110922484172141311065165333346407808719307710323769596067263276287328258145303930158487798743182132503707095760636370631449075137476567656839969742474257331485626682700895181817374997039847345279661623377105849321841330402335424116297075758937735984300901515851119375496971448932105670960610662031943011761421187837568323863092142614785376011432010864997155229536503612304058118880650903321618471421438445471038411330821304379535517909297671758056251633214287103183698559789153507192996952037157978285887660692339729719656210031595822114388578282988217991460459509679761553912009778868006288429718850085264064318662534259192834270620514037216790418654815320719991863046398672777476322950809418754180967809697917351119039064933646098395011844425799027162880389609129439017680277430994587114357896484580224913473789953250170234845771391858215529512148247373094935104748814498297688381319978528249823326389282340771831354511540794781675363081001740294153581783139849329493164540627395326872328707575574252678434301011946323289405099585380754692513891018609374614300821998001966942020005607607722492451613946421190517285225342646770669221528871439326239953409695050439811848919556115968123270946249156451271475076311343891784753645125024859123045760073448719352291602593000676774260982579947951382202246481075198393523561403895764581444812892085800909580004986960655433091370330129797336094191226549464335515449630080084964301391661685257777599155868710451995495386436694226086436956569430987588072343496693171057841893169985273384052661616167876321193837704594962234762274535051653352184387790640650312182028836190753941835679723448724413860461285541688935951746536886031080790623360189962363177872697850991630644908125186091153038035091086775072720209471216742110249034094566814926903448135885453773090231117111625618084863263420617876950468819881948681797820327264333513012377202892103668038416473178443550581327874211744149453474056930078627950988774912672482621930857292030985456007544329847279891921011067716548347240309038557692439660890514111654431043860970577081832349000196669427809625019988679757373652174761647144669889964083064835723003615599978311746615554239087564906817171284091935426801558494745851200888606126704058411249272315496460892010616179361495057212482102105592329988309457204550546135814432565533921204453737396755589584023644070493462866629667482022372932866469928621792231143412407053751295290583982371563907772744871217884362558703908609749750212034443058399352538988776910158609516295659329974879627921765811333401100639316691153959120747709764246190548780674385723963791264529222668863225329887130364487138241325756072843283153344116314155849878575130166849131410732017701591314487131121588501025318972023161958357223374892420560051058042899070524182790018127497097402605351043620638336482785044977636307163577545314104314431275322030273728533173336182381380946119799530195225450811605144452773318835317735524095577296563612655016998580930500615669001954453810724488973919059892346809406812510222558038964173306928248851508738875165552482853433612108346623586781750108280920051324314964965117893703949892400534487709015846116422216183113710369006658319834835149826927240612781266383274740924605408493830496533233590054261819648865745385781657981192665912155014657135995005389400937090105908551471945439542777254920117557990395209874876946832895104602138472220499958344737427526633866637184717407577384963234212315800306946929962555810882701334703630407836242106710094607205272030837435750623763199908718126625863217935831039415557859205583553672209915736069217766635193172554592918909042675359314558348634682271904611252265980807319624410654019929494716757512398955627076119687403683231686827410282364517592654025112592101739806332649284836720806013569313850159873763270417816731522803148682290846462232321445057089626385117576731153239006399672250781239151503899637105186039192925584751103682361293169339808071219232598711010812227766776783735415380352979675323888142161926782806860307928883312389624842887602876585142010957799023945180167091498026595480094937212447387408546297231119392049229078805157954420734474587199457871025552333032605944341755157730326423500841419291133384126249592421022254866221031115018783752104888029751486520340480226076652254235493371960999139785247985542187958143282170696328099925751552971591676337834540643380832005191689984860295931622649369875974802669618369707721609977070642849175226157736848557887896638181773167594992812591847649816595091898307484311234655114741297458677161399331902992655967776911839078131237066007073417090359020831032691111506010798526956034564921950275258590574968748975035436092300406677794223163468417509856481315861084226223510890195601381766129477867915397893501215963383522531835096448128767348396424707563746852735484746857046236279619080614138809839431342794539319718602580132394247641460132053313645515899453740536846030213521984029276940856229042770918974359840022128104491056001316523057023748700806362577420663633998781897783956583756341041672337578126887963914892137309755424033601171527837764069972447985924241277314129955121406525522089308449847602915738180859644587928792890224879845577485734524196186739688791681309673513025442368194412710651136372124627342406997020548963089126870859952655995043424963903542633191017915206746649604083760515680095291585343881006975024892099735116856999278388085498950676276172468330406891762670459284661135942818007890991168954930802093396053432372476308574165295598831320170993320565815762112111201604500707560969439050043061294658693698165862994469348789273205701046112958936346084632067731023300981937158340434143123224133130174096156746424739240529135626517243992265527399341996482102407777302857995435125525661776088400888076797652040486391321636916774028775605678619500254941340179065937120289805966594359810908324647640265870305566482102098750100841554444576179739448638254003405317383918250523784821185475625393472017651021417154152386904994513398460864022971402249145822613529876739229155591446579339232817106511953317102399743703318270189608554253704102622936056814179359339337870813450055892669143454905026306573574684001358565626470567750750913824021645147872644698903631589753311667122415002140410797660242661804477187907141793554127952301415791126432803231372906273846743151562539601920422119743483683701113647108274124788941365110469397964851754339062750367110069657834839599076763131684371142299409982666723376733146963309803981811692419889814541366486259877531876508922044921635298821586872153965428454235923630778511901495339251996375562630229409399173467762846230399433300138723487552405310401376708175579014022133797509804711717757892111116525308345671972784362536111468635750304646390432834830616422524937931890870938316994450272515460992496405386537503614405002293093733300492570619397169250326514448375905238228288515490240891166286209477746968847155864289922565678726645905677885528759601922119348655131954148546808301038975138975368281752532050088748003992773011582975565677583086002648264220255838903996169957977850567121640571609845984956217861366433204069121405883720558876244591622188506746788517412792952689594565245319509554976847548214315497971087464063181530435555112199903172978843777992175233506472281914371259305808607985027979595607565192719470536917716640020803973547799385163237800302464165205233793947269751954395699296913808852019116553305995941908773339395986129989746012118623032699854951605646531637838818234939436630524093944736942752765203740165517022029190023142025958528490506266260209901884679962531775944752908933907845575202032392066611981026569526146556146479669639995838815083359565903369552309409980880368245488701929205994271144671321387708736264218009094541670224649415455698351876189408145101492221181013389892622798467316279900825394274720809789818394751208310915467770065228251235560748009851977991353696176295111282508946276358976657871495524470242499160422641436268746459607890758898599909713897720407551152056166588740496999697325072504336285496930938732161607667972306043194994584554448424840843965845998242017270568764154096633870780758205062835309599739464761110929052869379827820595391279809452030754720489941134249715015513925227618333111901101629234355951894819660055258193418936965380445019042550085935550805013788963810556452008763057697725619407594339468111444918017830784098002774022186609425041975200330943046958095041190639620687931298604251283928497591396949619495939242322428291688544112659179377253964788134083164539108785829052087071077131676096616834957137604625505841944635318628174605317776743599318668296092747772758691671587140206162803182302976621938149041170509947350774087122277067117429288941190118430140343738828064881902265651874896485925168514714189679288852836137343394143470078183611389776417499106035313716441726220044221325382369409293378636620425669226227939166532400105957346593536947334821871612039005797475200456299247369418084789142195693558990683619184577523321280367323972397737974823297250796021370217516098924242031630203736102393826239536412645597708413096930542650819784419788861697184249646984280345937025412555895797609779423979739257656115251451980829335508576896884588295404334116214357870211988942663582364945367745280035965635583494873630709535618902680076790451838105414493265942636278964016295271759549931092339893892283836038216329129310338716908724549974438183470192881093328705267487476798313309036207429621987488075390181044403024172534732219229626994444548045151998964047957899784970570658098400191804682658338333371368837318646348285919931338876634975573368092815833831351661052115056624196984969956821807249348023436888251292697063382995274102049025176254849963201275342540132552607608196289121944380087502381308207768015985236996087189653819606625697533218863015593247082746676960700176440663054881204211506550144286280561501669910697907112724747073023418299666085052596613003963732463609428857185808305204772770405536384929927163927041381723898250855476037193517617126677990207235820859471268174143411001487893181032353224258761965364611225790077623532237432143232643151262678379357289544800642021545339581175862439016356251481117674716369848907147031042758448799971242898875356661052419228438347527329850359046535294665410799087436402596353656185381845692511765830612143916462550558706632346561070315260933340569799200593140232751249011365459100989803037728487164533516516087844856063066557389462831049192095873669060847879157732567822442572279122473145392996342653207205601950642838731343596876869786689290856085349718188484930834157731552695032777062018189083884362973040593575696415496643489267125445412280905751086968546118753082190774681443391222257858407777475452749266989904577401322535834624788527984042614740397332281395050107773976539020261174063487499297538452674856611082856797939445086108404352071021645893125419240474283048801927925025465493698529255543434142087289086309989305357774846863037071585740316321067332557700323254272283894314066885740308532125145976094833404668466274379038367438685604783513579439194290604161930719855474466912877135773955114517340136130894459031560847929771321155829011772919583559301123399986266229924809250417501500396663084965430967786135874136427076604347815672345137851759809766600992117794512847765403457015820139206497128494195936498352379286713253766805874376965133844732496745337909039454854905399232231009906983011402250844868009621246989616985475946661268089563559707639135555482083976020884406593387615315879067959475111199614859893170550311194918540729432736465433411683498914327712784594057139541396083264756658951064440819513508321780808613034840347273130771651348746017757525103462532839425530652292643872731302123878126807658596250790373596112906540077151937921398433784545429155101072698236123803160738424193074277228233550576116694830432431781306622782960651341720579279665613491755629317698540608555980169862113334317867239198685909260153896973950173376602751503683155347279743898236856357585918244367771670033680004633879428756578489694805582469021198127501471040425494967960475181142227340958725876489514277702135542501048048505420286387785127533157379465393469216619795551353680166753764706352588276729281899935486004891657879352645964028145947406466034231367761199962143732622381984276326651053520029728110979714167118377141746057581949531865115018874469060537563341591861871909169767320925715120583007766574523325518559133429454005151374133484964065066308532211594897902110665977776368156212969726273139197793146000432711021621787493626191208445152815044651112789304638626055757356358672204250829799653434316917564048655971031034969253191131831035130934353908252637922680677399564421805373737380908629716723506050150118521022640536930780575272420827877361820812897032065067994855227169261405652391656339601511337672620070570016548904789977152811182684119610155720992979269663527697006533128196975386193059792628068489250968462895740673746848489165353417501636944389042871330243859966859253078431108774808150695080699038330934943914150343648026005862874352006589415414253818732311468422609095436855429597618886177762781365019569956178858355278139202811974860911279576939970113077069946303086267794791061653890854426161691658232781307765993819766146948274989090996226023116488894033906060532842022780506644824473031827593889835980392659058032622209257619575160503795042254904979459456975437838604913244032170904821481307980573388219688543011510296522893627245293395816728551137739268201351114552148674478342763097145823637860685122184447007921607098864579940463507349432598574605098255113687670508238472096104012877319590059632094947678221221521320449618445862704551795424596012175835947596936973623841823066273868049133041306647371964670800291984918788459398918497890729076477671111906652033993771107154835711060613816237836309654622315629689549169949214414801054535109908836217753612209646464570048598036035212913660008844888613651833156480515355842442991400631342282743622007804320632415653245041822775907436838303463293348143523687294991388493998596359920206817049630258943855984864414481854259637213949702680246265613346529286987278761483543371622604082194769807109340421029107272812511012062434358754439588725416364799815797225884631029340142106535584943739011392084042086218332933874507695999716608661128862434672451890876021046254768014653175935989498165331506259857813927358190366827177630384187834745902543906881730069794249800981013710741366880870694860430666152049172066105291373261447780921817760259829335949008983322694005762342277080089032883554109713039055553392207819830880013359468647831128418454812293899237436400176535955580387620931768690915504432760910626399008498287644551474534063383947979829828488506819519877861250305522747063857439911467115229703294098978102973412759056486003341829672856272031685973275251725360345359472121678382329876891976807773769424463199646857673726712615873774028336080671806327369092193479654794042646044760464647270807403896951981603417217981286821413099414365418782374305985498802084667546226502624676680582483613611261173656989631856674458237594185016901877587214713105429072572081257443104315988479326068830856745069621439208617896320770699131336452913025535900517864559865351612471672058869430904288845235669552707818750517783320140399675414220902336784805688926220959217405558880567585273474896578736329824795405335330066894343231218783811580251659094442286718955514126538773419668884390138557337976932998378793495968817796356812023238591045577238673757411861649002399209049611409406086099973487463259342559458320459749355111375112872743692057907199425735274359294611082387268998429811582826376475671765615591132650640908521597008125526533483924168136823630907280156451649540583499063596052071998697463063973072045349907781556464135294974036560080604970747984161791477992334323412143147296030365766610165411878102881126884253506916973622913269208100516389769470164378130091087323142708665700724007117864577896272865387738907082330666512200124483045030760549223848037888194591419532741826992341104881648075374883587306663644020855843213393069109151881030001882445844561810521702023906831124474954343274863505758883504792602236320422425382245639764156786508577089887722557504409136508778043649270397233694486427786512891134719136229031877374532670605309216451372699310719768519690642835660662904793455476635137848265872863461985734736040558901320334697396254646728693147787597417306928906135620699303656954784927124428328800527736516919955425066828771876488283625984303058670847521275654748592853035645548900264965067008981269179453890742354689488914595275583716677809005915337625638220600687506570027509903228822871199014611593550615757909416875010119253879151487750008596577684327865838814776130729932758105466286066770095823020832440190704144105807836334675003856233030983287911677036288213931956413380827604578865835805777409658087940815460508835547102346108065070198638576898663268703102478041617447655607450903144882817357269856654952641434185882761917520401080177972453314072969372687963291757058027631800837691517954056747992565161260802292569617298458256843777386760466324808969633947293527403794189620554829407050302615678100150061026143628968569998862848527754663639085715796360530510110825599634819372122267701040337905073361047758384699738726854475923496007690151635700182157539307901385183498478220769187056641581192290990682688264787063324691893315520622184633910150707543099456351055745188771315277813449390634754462757643981861918795035426955214080667961796957685505457689233517599368268495763474349834653706963770095581799797355756028470546542775275081073563259402825588700272968396400073393007554078253162281677787894530335842022532101486847994101938200107014022402460912695815982172859621657362228713457013587184250089628580382469147281308926923099592251497771080715916502047327566179020986972661105073533032820608898278881234674452615102122368789052821061025885283317716565616198411703988383261457920772265842950419826100731364598954890723594776994783191223978553722881677951125426586833839796957937612965694725128560813376636618863258280635834993803301380715270430672590754705723195253540373335760588601274054888032888587701681143741342251195246712596756655170861739917102638238493981476371848032709117882138541105940328189667163192187699665281818210874813397375860155232654685494060132739749894819166424270632325546148611118082140347572293205591975825594170858641079986262819420200249377391560021024832010848657211193893527008372311411415266670199291291323972485984386846216922585081580868036832955220489021867214378392988096672200796074618073970832880547847727184605673672952259387079067850664234958364313182850861788993348757597655354225944182478581425602532691126001459775057602772131034572148706844360217623125082617754720321049368784926286766352904566611046283666761028740721442511109409676585020428459988423100075463721952446446703599052958913985459035096210517093597831272667871208993383598096544747457315274809339421424096218509402108360659880066597959096814016109409388312919431689781283742435771672803421505266229164116788539879517809236979282195543958283008972104884097176682548978028909193180907031268778984383276953741820336586703462307747186528768367057968903595893380384782451471907661707427216629366058006105442391147566332363248753798840165174901625026800375163998430709614475401793731579091264164189525947918062384056743310570533222827449185054012764773199500832266716042577418496854861035360991929452733923248808320226441693438852380689551009354245954039510841036274978741519402822882380286735917314204182740770100685646587720992338740639767956155796302859176801748540803942261784334347920317580988327685785400706267570202399405620479187738673424067847370808223234007856065528909357278551651528970989305051258674191960157802564495340558050014642871861306980057273200148931727018830303305230191411723226198671022718445340709929396721523565024789055277901674426366085821314840269986967776612714435485033419140603023172729323269110703745516630791436199778148636501246933747092837974237024033744133497034968200920340755520036449784827314993597102088840555710417116041591297342042038011831309499425346396618295348104967425374293148135857463895841516504542273200571436053985728914009119304655175034387415158152767170560486024629280176283905353025591696854765066670237995683279825154449345275449047848464769029279462888715427090283455659440500461661814122693799918077014587539113646368066372587562376418334528344641740653995309209461900363443104656925358366265364952927486586273252778603252448576291066611094335609487947121455206388666134201033173050943900451359669184144322782091987071604114407835583607950479815113115039678645105957152477646103466313788125023241818289055435493403623986802868254875244671958810626813307048831106145187947858335231926257892265789126775889620871114318381348514365151846282956546381988398077843298339253862593553275829168428172249549740565912051854528514868583439455269017778110167327891949115797262491673970706096174267806202049817011581822481540003677767070116930563856146384423945888183841557539374066801568789484075493069761996325094147499990234788472017247170098288064298624390788998551908863192680149412117404951936828116862116552269423163282168079326527463363928479507643713540433560311963714806859598757876925109531193399606240756170662969772630899277440044849875287726831483322835187309470145081542419371412224068945139353436987618430267263276811607018673902541022759547578613608512430159410151499014142053049365006853888712231813255365751334742295148566295963298545972525701381350644636348861801510938650611331624574231186258548315297928962439556776652336649854293466735594646938528797127915532459656334229151087595811683030740356267428895767600808787743567493022829251106479500803136256822532041578753249071031338021538033314059479477892575942739925303785116963477757522654005460015563861124594521174227206703050240613120041879365205056307694041556202414739745928107379907850905329372511616992697583633094839551633653368959015266194685050066413249285194368590506182548277937924561720200802274420486394764239719353793646891224395589747778476221517888526322616962354000387262926535490226074312341365948448223895295674679470836405920213285917450280256036590635063381013213293932528423788055733839655139005535018804266980905655511310516535406328908463182663003937506592649050491836339388514781010735177802168463216063291671450041863409548356159085340873940867359476095876480777773560531288003428003445172607526336495402841842142287675139483157889229974311938641562362870697054376388343944590906515626070986953306882756495142040824925382061506287555875072846029606201197228429088368295365361158154196869390461200514371184838416691353488845192901717064671982207219450875166811442568353081899103934615900048151000916504257189586226297437266046640796698974563698424662972409533215737394546763090501108900060616244062516047172071165111343305295660251647340316852118297992570526600946009472321812457642176679086401022940875515395984103643578517388176068980317875635590086406748614464805328942813515341699264433711096614093080522962432135463377374916475608499332999114083343601817910807454761835347738890292633933034750121373491609019647047984011269168933640850551602836530876408468598543429783938693754601153326400951653915208072689518795295287984835178057059669968502903713858917368928287670669107523869708987032205534665622309449073902730962371510273549750383101392441543214000311530888477971263622812639179154839479245260548230323872364607195437858327695938055899301134077730937721782662509411504939415750746818285200587569115003399503192778430792182157166305834925072181365611791576056001045976517724688783274126740277405151964042336563952514609832037285106370046085985087985231790974254196780160638595158625911388267960890054713158236251864432525808403880215672429820786467429505885080224545672777455567906843917848841510659036539853320486605239246893524692887016584921699324453849898935073177423098577526673035463573545177144609521230428659052837528158416733201330196938393979134586659296267982884047973804090948361333364039762755636773408525169910208200282834724145916598319951222937733702128411818949088731623027323574027974684541622957729774809252315679140135223696645167331295406479872881724474160988197656479439227945563338648468419412731456822968584273238180922832371681550439752510807493188409735000651181686400574258653759866562235711919405215042303387661971084181857753903087875867422426620282309741400848490408028861751424028763519789260526795519420036448397398581692909871056947350271521822373353682125046844080704505455587025334976084378391861346033427919127721096979538340321974871073606272369584745285664052825339452588860097082998316241789427715555010247358335618480089881733680825312174793423301220069212495580483637871263507996740157474216106827502080546404624070247183069297365510486200103627842343455012231706811756149916019660062161929258146599043722751281168389877921764471302634597307167092692313603468122718563830340898988774232085331411860896979944616394050101432980260498056950202421301947114998866756661386651567017547394683358171514800167225930620156527664168821877571916385990287366080708593858326752600683437665824963886216619772082778069554075348832616543029518948739975340148835039999010656648996155410759053511621753863548740758298599859407644889018446923674412895063789832611888816525443723960916810078746026056434708586402953983458531541996086322102152237801187675463066165412987379184947612862486393430086463918809517844699011732460707050410649699434737814495381719290843284908252826673274162383633969085406979625951922024641931611427284188529068209066831502964216200329223865705929445171349183866632079946888385888220479671503817480406573123013217551528768324631639837839441274534467896069278599619329756013316256071146871431987626930061070942734011552483043303792818557588962663905221527868055421667041268262444384816623924542052321397480791235660378603383857773513755659280118958258393348233832974017906840491676602309835765379149951955065703640702373683173297743307932280111476494400051245469304591235538735070035460003839445271003261311618952159271056937895049357034929238513677835209539154466844048650652116094303620473855288762966902774193747933540410853921427075200704670535268301172216774801716633003799605814623945531871837221727675883527508166701055058779567300634988420120235329504793148331928057187558636815174961366060885650273729561354450000152201205972909445243461249673902978882969208470002268542318342688347113943176833786161274204499406310909570010467623160259879205718841087388887924521979245452751415396426804771726924340829623824213584691893707892931856957633376386885843168002194906181155724878928198852757435859980321083694985961768663915417680718778249774667872045888036859135938749773584679926446084715436491936499973694906317259366059618071570671662788158519617715604472791763246355645344939837396634350733594552322829582966792372201638638797557571956189006016496878373464030607175979692416195518338164537854380823407584957719570780047860558046614598214112360038106855038255290973693253781932679287764962196657838811555484182402206864005496858592222122648903261183820131253602403263044976713692892308621169288372333664195962156678006007299148159950162510737527494117134353035520287786648411440688184882423208344397312981821701776702946473633221531801348749723896125585201227556705571637407133304525198831529350738504226713842622403424413656141648643938708346733999573936163481420134674588153778034767744286429813669263406370017103250205914883177277002747020639248298978042025138269440892249266738717206788803976955248961666925918587878619851428672199785669801518712977409868241804119962310336875283059462112449964971812613086668219870134154133996013914738940887435321677353024066312896700611418303697958782485955891173004252722497407019977311442816606985600432233424222370031130321637686758085893987054645331108471608046035625923150759676467664316286140166087505351499308269568451843871830219766867808257192580291990530868447932678437957732766270720373450165442517038970992356127653071432746135846034869600543100043648086457742887300234330150357188931855512256328793610604142441344385161189248336016783057073681332744365897696334699022546919569241935430186943833410458758005925770574311989530402166786529141283916874522649592631056617293866473335353010514824420672219567395959642696787438954178223450451496913970724983627915651387563364601351275282307981721715719928655708493421207420312938645056428997445103924344465171393654423068120383001786502521365091540991267481862374286735410524678485305503571760095921749886121657588995329692273623724644707860682292205540419299736491027218843881318518419878015139969932030830343245186329990242794247255244442862404600915138973998228566764130368148951621285782236672481908130632924445790186380866235403441893900882016824609507312050080133101408982256536936171515002254663536797240854422860274829209816186061720858363163858649017527893361432174676532106472565238599498327325637043956666585051384036015276412035040137013835462831553674826778081273233635775671348343782347809907007284749352476582169471343166155356879603007854063406182610772363312031353704024294868332906161628054310516193476024819403670386678571318748138486129374806626131258124062622409860222712785958336745579033395121722319114744996223484438042561093854282973064611994469046882552676365266551291664917659362922368987683466640841975997788107935728345063075859331602491999342425509525449867921944579701496488641769503237374191903170381529716956818492467779596378906325920109612486014324254240435758557871465304426529170589496277672806776935620916744108624100175366560033262480430932125422583924773179971428102291573879958313202980774930760471289110921824966171790991475156805258886367565457877164934310688629065909305318975022728143329051815915291635375041078014874496285791662446665866009034469277708872149261425182648877420503707195243112999660279061145841969400382825547793461442935724306419256652377519293374310694719425044804801495616461561821656765605789920498213484209167025765959217297120954305483177539689090715186140647636980899766876304142081541313319134806902967575241037698908490266063089558335636733397989566447939129354632371082437016758550781807563185011016853873690332376884233704357050040977442052627420954859816462005347203169707079482858484826304396592941897278946308429966066838267138993385171402811109598334253461648770555198633102776871474534354500031750007816809662266279574206502097162228153434103984031282249741190847136279070197406502271450596514543408992085533002138359899362129606363294390756630943709653358178320753539921872586317574482645558301066351776547393294785089776635037619425269907649552836941640409536047779639939308123336106893028699544590299126816240355499815626823113512294978689157060891460420620637529421680987220109224898340158719869267559170513461632637238768045570848942749400317276033553829351065057339267713865989771528877082512524970592612074871567178634126990237866091089312268420886753945307755693759186349750246186457459870534757675392886817664314445465913979378639158859635783120828573733232136456191102191417975586067393402078327330440214883942120688434130752942012296419995244936685657865952967211676036248742633930720122245606150128181618732529343305071066681999402396534420947139713373579716971095886062231846419266619629548679278320324648799214923729522818423508458124156832637416135504496274238905191539242639273296319863520887166328392468563071525234116231782527113615384635962397207343398687981816017313127471406751139454464919622468669566515868617574915323337483856117470626932709337755095523199490317058229048695712268639669792745249015113077075649459295371809091941784948937738996180180693908691897393438695613727623216701693454626382522573316674709157509401221946790840644920140983360810475209670473885301391565205878296505315002996660629463615803656248387087622949135005690392815887852398208825797268016991246635585510263344621484472010434528423996068400611429828079578457436960875186637897988388691141683902746940163388957419227645356361099238010374212896273993612608535988239950481321966199104761382265217585419166420453038028178884927082349186428398819163483843172069868836316468989866880990977939608764049381436014067202968358384272262068915015438630854407628807799184271272159198980783819464361592784724088028344055169014899874658908575017483680174740028420743248613794684792889638704122400037277038945341771445831362466860366057352774923164481625231831494830455914699011636515734526436953518510882999729919961357941746065473588693810301020688018954830701032745213016237602482748654024569884458021775456271939271651834058357673321740343396494935735251027246203064605988691603921739181124523816806429063400629232562224713250746497290558129141614600588242493192359711828240012944606265224412270286878826866923439279153771357611263467546027549218348001426519333535139320959197135588075710475086870053069631044702927344214778057127708413300100262187656013018354766028831433871076184441848923927679429775181892841967721115541442432400310888426584698100148283570404444254486741129673895701028438846531265096060975234895236907363956145051018146329746731157779769978448281424544229849256938390224295671805438044448859175811398668878870854841769841678035097964389267889893035974782198599674373375235160023040416735755597067749746644416668451297473769930196795091004926438673588737773876297233103026433701808955870615021264539934001789607709138032981506871408265088804632108911502277690700117072413793395263346082247109457999940823188086763830303237905114519801246524969096454128446877648551397810439690076957218954202917000564164286458433006791574953740514011555695424350000342952904692605371260346585627209666823032468778624334027527507630231101308179994597112773849171451328826935673873983099578953306628628561326414889853358309833245259350123723831424348231087306453979716826304984770488719970826333104127496838284276422941307363520728653968865010552977134939184019083510407485129012192431861753270994923512428788990548689799255455171225077587847744036950982388268021698120875365403967584848749071813518833016731070857200586890639004379827631017913624835707121586895360469048169334868491760767110756169757226401082130222095297156342259047211751000228952634477137813600705113908842473366395196985085481618010670949954074797519050852739964274218845803095674682726983669887883024465458631571215222801886489755978691524027437991088492703160902449018778874168612234835458922116741897608305600677547186614024712762886063378569308274827040869172286053411106276556425197703844678494083432826018237308579229656446693411590022055127889805474499691317385160554965573690007467263357768587798212046093685090776455108011760812854166903223060435163964071938169819012330458361764529308687285539787953040347581755075228488080267150397203867064077498122681667750268467296259697730948850327843775443635029225583208137141896876083447546989766166788878364962155279567721032281110024002444079590852348607688855460093386366215726400681397117829216861593895933276506329672445279909208246884673051530423834369591822834648030736694479543781151904855645963584634382500936046155311281930995955012232525998318942021617487538458521667957913514189464773299943427230519005595316612558498349139723976248651649736952140440692632340191046008686273429459601373389505217096315526517338541834595971031066347679410728893933352012794937667171017339171919019515487119209316223640019911225684910213949050955062547866721182071744032555027772633913004667320371854251852798156163127419092873698992123262659410357355353879318033669388978931614468527343212923994401599728829645164627382191306033117830816072729792642376778675007759620801655057030833245037280723255610481255326441843705256438213458032669746444518837933873727190021051656583630526784266720499765666042933360830844845791950678531684837121327404314532966704723289797286095854336464965367339957403212795440524845305064410783350105701348208481804692826120373989630478396730434305280745904523407136928508370109061083293140350453787181978442335739374739938174732383465816809553046939607028723287578905081787444927361709029571590791168083161405829103739263350380805166028810535217419153284100352959750437982979110765650688589190034187317972887327819215476831983074938910446822852250617130166686266456005973543817392284897753209351813987597032840560023414739841046741029594050750230645993130430030153402745689335519765054543828046769482825403146927549310827062705217285782091604999184929241669832088395890902235749192955220554258298165711018725693508084774217885362307288620744807807942422647706171643358792706596206404174617459337223339345936869229607143330114620967571525812369989176178223852442818540985605557188046337716717787150708307392346815089738743878227167378166291778433161967494270551871006158993392710665491736656194191153188617100633887762213448395544785070039887637189303863903263983890296855443498641782455038821078071423460327296842239964915451470794502262940737197921390326668691118986358263485570474001326055247466803505411567815553255498109287675215004430898271544961004927249382350345281750224707762018472906047015319006163062523495088786298709248520105456595353914561086668842518628564409959907680744788453152130273736697593048286914971309531820190465846108603654773155059718251286210966905794413373728654994621708524236247715872406665576513521566849716653415007120066432409119049185526408110540264107679784849366670584023826926500868001764328654456939582194635810374563316749533081317814739068199539146031502471409457782860250630902115715473967673469550097952722393491836704912516368470344259981383711413981328812367133703448487411309637942157996101282524522967478265329294379124953559998799377644923024140204735635440712375200826114846830625644915930404181177351792955795614188225292882933916640620980681324970526905019694477411251152933855784186669447190764925452047270448178807667607410160622157914273545207410701466783768474681615123962967522781483827690078307625199257081832589138550845978074220999728776650705120150446837041406788162765084849254113392446715209866174902564326133397150129116023087658629408393670005239505081785792121974025748786849811716847929553312652561434448327235017820296253042485035565474771707409439519451318129273152411952847689459938755951439169870745403414084789959919706459016710528341085344983446890519564258373940884239340237114508940468545477591287256034445363140516785667470044105700822374168198507307718327234836751445215381489770244251188392464496956230827640872844540224327381465836351690407439843880012970295490394727121134646217695055150636600103668554049070777896504481159010055033841441340375108814464509870080034525772726377098573110691069581613612163004499426880812642501354446930225328314631082245596394252354197670807462046598023541584194057738751335975167367710341077703222597769763551033222830563935987507979333100215146610003956331775810980901448361977946835068285596469802950857667317741235188947685924550992080754697811169360431151806855813737774796211746016305817929929241160216986882997964653622986571731908171104264466585703866942620255363357777168753863972688367665931892301019604983468081379700970441604726181744313183784568848643039760969496160810652291910648563868310032682603734913658196057076219473323087793427286176331049462886440535784387645765370957025229046125066067898506413317335749885182126791198396816943858013486399578309911674137062633610904813491156510858064958407121138962379648002761506435089713367870962002827810482888644854529884521392191357324061222211483503898555986409421318505799215909740867020872122274801528735394798810009875079800103162995071561016032021314726426205276186690756451679682075358989727362007290637854488641822105215072280842004273135975129265984729351409700666911903876744056221589839828971584911627648130212579966304670031756620040914957198310340864408245511416041789776578995103628948024145982740171543413913606890087932507380565265742015278560280728683459619167046720976235069000542429398831782180285279523389594479717806665734727922270198839135106420432307590321592538856759481782561288091178721289915464564589790846112938206236003999969070319305403384498198031261752714746430389960520299555718154428618835245492704127442381881912118330827380012876939609861466268941300226912164114250011576640395148430930820669305250226879467205203318103391111373532775383113739155513185271254444127654871063170158003173691274927295147726867214972476169252050953591879025727543930628233176830152237482514975221464101703296262034463074790042783823087308051115213594677868089056555977873440843791055276366147361504115723052725055708885690570476263214054979091424190518691518023935304580421218203072552279584557998298597259869917614364173712691904158578765842482177799895460810541917577255018788549006840720476723744373926813748571008191400738103621148972853069459628013476777909444010410389854023781249921435747455306302383915055502952242706678658258495110274456112426268601489606801818251119564093320340631487141898314376206008111644311878462080165187857334404963962469044584630184625557436405784276165098652140484166647264271158685019439227211450073366773478930890529218326196071608580830747616250384558410090419179316740133890286399549516375088871524279301186426961788963768397628228541629378363722445811992007797944147995800939711355581087016104120435212148592513804223149706622610681813202469425788168394196316540031877375959423904764494571355170546826779786428638833630160378722822260269964103064145767124854291935839345463884392862078523962419474497928514112487535018810424915161450663352628059099560458259101985261441309811729325259534348201005790980926480984550937435741775454923486200220267426927048549857193857642812678181765840822818578033475638253645572439516124796132982726530179710599479173124335171076693155012192819011929456181521316563481454521416481087343586203020005398172433658225208939437941589398630184008893621611907260613361776134260434753986566626627520842845033682619798369833421054761462816290520099874299807577501125497118085217050032075768902868025807798728386581310407389906173851921299600944088867343285118696329538399491375835074271630740883770935825702510453819472769677754077952741755117030139847088418058408584246465941113544852876717322132927115621169295126119367285441393182534852872351656245932655965048952564976265003838221640162540548633496488889012537544841171357829555949425066942262242131661002645961750169646589201969624851015624583243102358718699570360064356527512729387888273727782166076076755601060549181520240557243211040943238869804874516499383682214152539686103029081290735856794591186151876004422345529438814297365413269237503537298136672209986250782509260473727417283505996443484617001703098838138757569872786190599939838336902445161950384859213512187720585553872110658613179643439613510540513837128755622047659831997797388675710052631277790903228108975001735317813240928872624099711379258441555640602617015331779189585337166327960094569254528857040961155673379685957681645085089630219963964732431540673288427023867643345566186459173964080557635923011700474051602331839194783520895153657323519909443015095548666320669684949861175463425555041683919722096214933564512517366997604856081787595978243766795883043296572141771483886662296508597846861125647523080314352495619319720333207017894627363646204039738467668888063832288242297251836159573168549765780306793694661890134110851926932321007750473269631828721400831953646513670301185142078892468176705340726969558092598400856441084440392807142745167371396733281097586276881551045720838886100725932755553251804667339978728091425474405582816712938298434182575423281840521561645929844032924504409516943716792468394299758852160561403510400274711074484442193676114081345491189733895298273832933316303488706549054116322446776589727307802918325502220497632662151585153093103884281377843045655708389541236701296412557984405193388676327786193312104900207890223075561817508145259451989625349899135266456477410854955617335706552074921298299182963466790967416354911055822674647630159617045681010681299849831656451358702197789626669528640049670732164579627642513392582979975656652343191335638889867458174999928313481225380000572789714464821189607011830124243640193801916800198508414130655506172230519630057704450715573495327305244091355558871356995455771390443111613087107499780866125461187714333499445697335064586543613411802212139142828999570676263052494060734154896839396894410776738190703635980542785749389114379302496828297375257141131439670783555242605955028436064021135406085008897001185756932445382274791376747767838443029291106548049202989162335529187091832912001541457527037489349496989163835515411106198478900066260395095621409076766798001291655538221305826781256526141986379731529118278835017335141575797123840264860239651399935520177041057784036400294041607038556348092097549433075016545189678409684515400636393559636506760658493327644242966948559807088981785949399941538472375670363556513677665986448874827923849667943156916700459135661789581746857175291825485138684755214845199234030190086761022258785555470417974306620325982660120149335639364045887288047249955648127361749108907725368247288340932498457675112964568442752022212632143533405949706368539502971173994259464841879944275924671960968805147675072378312850781924792902582134468443157525908634592433314716897393390180951119864212669127791941580622836481769173195161660554253329694706892706025734269519591926050348164132948706446902399944680008094403827828565585871465418155788104564594412069669326054983647009139946574919114331416310991206895739592556542402774467609288841843529609856716796071792100224684522684103599328247497572641984130929031727950425806532535661473627806464002239314776976231080513493075441261725089969417908248056534886602066767668567543219976202094824330398720737303119188492078862988121119653341224300242391826730458037448113645105299082954010871001055759537771388379585945377321771471646398627616701755239620577373705585893472415318588009256005309384585646289607055199988758208569259060760003072100858528064363520363866662375781273240415714666925840019489005675335975094650849005135951388671998141297033251233661076440928206720471156725497559496979882640326253663925016137035629249295648252328957500506241657380051199747247142084976503642683962234863691817757931862887172853385601625570328602676828041315345074009893327611496157736460037599471858892644515353701025686193532104876035179944284846102214090755988651697761261305436503025057204110441070271404008889302421123586684786434492311754810886429851517258355845286097081423529785626850140349141895661895487098120750945375048969942412920560972663395827523812610522156851463872655423226978884463662145400355665715831946360475490775517928975924307363652026222613489803315029271985714521306255961248452964407155483892347186746268589921416890090780737023869383504432666008529718403647263111494017126649020603282201495398887722814986491230520367121056991030634260654853380437830027102766043634429542111236773953756855453294713399238233194120311185974004463918816099327844354920912789384050973725598294989887392226095807328179510760982063881303228581940043919530766858972390256990175381219961142181168479313424608370933198474309939585718644266045628742166849241984878819529843308538995771850997060666547104867836690485402040603398074415121503491558335449947718759208819998884317592888192418924741114118098004116436133178973472719534030947782615931950111734414577751701030800374898745600841141326284033720464177052481545071592316433284263147192333137766373950575856145736761376505389665481294506477199839121417897452529932175763976844243883597678544258489685287350757813977181454550537685811589464075692527721038517878916532514030696901720505687257871738604049775592130279158274576199078411071131480809630893099276498739872467662706370487936415619424455528191151395315136164888879391037522573023135096050482694460000000815092376587035384029429185462841783613909330796953903966597464835463207316411484609396899084250530496415869655301680693999265945301118485159492715417404469847862841527952037225090920473305496789122813999333304723893104764654850800832703141581462063487820276214950930892002212786150101321021845433966334095679512311290297881213932069445768135127947685790749504488032364116798199821129014110952255588479175061581086533902392659636297616953166432596215072084584152271672650671829116862274296024622912775784640739444871620929492888226617987347783840506437146125662640462503406787691536583408685373738117252963345375666780172691779596356599502412650675590059129465374218893036975730330154466076719966566240308986485131165920689664072724532407369700845800586527231269451252167564811770665139701862658161586429422290736309375331038962361004333150665156628345984681719379812906641435551875317199032024228312546401718331596198896977553221463024640631283763876898089473989516838479684015374367740501981398074322479496688451958756102938285437386523692089134630419341361217868368914384413707325968701340469293432861088855193532873237199928262107105400130483070397819433119434640339293013268093679793877267945106470986018003026342733692207550438907009505405570940302279276182641955000757689200624642677856083699528985478521846603413224442239933291411686843288259259378156952306862433273252447547167948368950093978910417346078256667020377256591169337556865171201942428338043242320504945261593683057563618078241305899714839956521567777436720688706428776646583227845779265319382963634789028332718768810760388324362719301899134335852415802552405570919279390063575942265302870940687049814411409530531678672911146590513059263818208681097633561839016809826514094346772356283287928489490967101806779642171102468660470938065550491099432797215588270737653815637625667000689272794316354680521492683577794801315636214984985501863744147897928304365904686558849279018875155540812344335799393093413685112051013826357841867943926757255281699886435522453749515818058766195448091051094737420377031106245390559656178145695832392033062796477948732613196530404324077110848529680596534536611957923099332094828002598671628543097880067500468797142051233383073195005915484351512936797657135934731503984582618947794891465577180715831353599619806204672659872083508997317350100393524738994821024286203119985719903122629223496415790874385382406752746361506251384174302138487892053938824053411054066281409395183837495344454330534789811058745224563118400065604582771481256423212192657242410667634206129930138300656255883053155494480594008266502047974461754198428582300526866709917680897359037502926040948793986899553910989160763766196129373778166097301684125438170882077770574005614804196629531246704075326492706938388260853102501006407652498809531296377281823900965699727149097048300610113416067987516636651292027847196416101173657969440715735191147833851373153476540032119794440539264399637259282481867167284804077169387572363715569071328371729282182376185022402567444122795168877543790551256507062494835809955128046969475097581890623399625525506563372806757407805831206603040860670391086859889366036523604586715523110467555094968222928020037823880206277851878338101133206237998671606011197318824367666542353423640141238215829934672084729912238311762839533714949091904892600637629121718666999382906369095338334681641592027511863622041628106182075793227351115618648604258479169391614334465917099811127808839043150017207008696201281759671461088238622755578164092414695696863821873109856621827908396033591085598328184511581746556168061165631702721413204445482390601801922119759420386017676266135173142213693870184225954429469633807118332403977388435788682534766026359061941383307940083334927047257368312324081138062423072457383664095863945928567427666454627930047115885023418341879734065976102383207667038644142497457198661733458858750231550468619778791432117346371707947804928000734818446539447785980424117493742946130058116385653167400526222020206406776815791722158367854457818139643635371896235825423160434363036410551082765420604465967816324760288350579388909100586809953134098801549945235717870264151927252373958713022275962740577158640701576825401182215866181618239236000287866774876908498398727874617873091194666310895991401119304995339405928365996358267244330410969591920852137010408266653363690480361000017189679321448550456820091635312190279909543540223990380444362334392354644847537628132405373260109758405994004328326397671722909581198325590184984545406623179049377338085630783184459887693744674427688134704322602743651593932088754216560669681085181348951602747392551550259731982494109664508141911487287535670375483438929226133118522631820942043978996738811800612158480713465346590730713893210471223531160555691048793257570493067266217002936945756445873709343261093907771263352912343901399346385739800228603112420718417764203213745026806689217526574123891030787391394474782137885744746458495372349377985601284770169710012479751111633281372057334992397660601625920951465611656139897889975862253829209075085331835706118006485793569400735754945282395663091799661142124078937083636176836911473328515541691610864414262061633063335211418481643031707294868747442054276108159335083343561041302817551626207143139600593637176414518940825325071273721039805805350905943357376129939680537786667391643660662962364946442874070333878409717951857124583834054005010017389842493557528624129424812167768083646408934918020819137149232386035265861449409872730116839897113983763106843105400921873950045827135229197290895487781393969516499154807120537173356544331789594778923555407154674474588221513833969884336307358684111766956162419186645115081370437988518943511335959613653705299977558150544022801858889159167312248522563328691450632067921357747282235872501406079060375778287590477525949132705005952885494783543954121606780913788113338195499004778870159361336486753100473500022406701759123913197537906808805465580014149264191996769530462069085471074889196557327293103154648483610384954811746241365707786179111156950035196421632976224292749516586756560073440216178216474279117247155493977950747705127927493651407453971466545022369829117441945300142277858905543524611288725081687429243337046540997052275129580146372481467202765722318770511939540406909640109522154850738856426943811749299626143328407329243063510002795330991610139929048673343398584421395056367456100562871729268700241022624724517224564753585642970353617104538435666048977908389458655586553687946246705203446388734288881858188067353045570154784485104541527936100688292657839254784218161886011828391448424149148205043725076856995772105751826854355239815270450472709516008993203492563105974729277778707410111401488839578138296459045330690433243883459576329895096002297337730890024726078910360173128765771824213890474360751717193626337974082335612429184254515845814008758978773014996599107049535215770111016859431628710493601341122460624913952551441624097393061004055920062345691233564437723183693514276436693616395074387100389146975982018477468308245101958143710780081441218370399103920093419718293821932060569334975913439886944438178703374918105107542145262319156023597599400136821663107568890292239794749730459690938329215108061085887279628795635699574185215539352315826959100928169362676866507154695218214195889527615682735431876190604246392667363685424078048459034496216583268380317561329457553973363303093495785310816343591476579671223895225743827205334037961740487904529548913852503293766201821344267101716650881009338530494220560297887235438521606014154574893270233799770948800740810259206166067728236463450639697282762318494995866645541335176030840873783189925211846973733305822426816694894483109537572410051252802184590580061319813446287960298547217476847990525663912967590247153617624437625188131254978183042958280814347930840113980225675259981715716027808797274393866791736175997008199989587101047841441163022788940305304919671344108010856329592539139860203115221900542214460430922032360494872731363908061530491730457674629067608737816926026163321896322970891112003363029006399313964978161203011128195894347474542881444229561659852032793823203811037819920765403599465838756574054068009253870874074155754091141548947565610514687310270094511816655108774515823759459429008472084378370884006628477322100650673281237330236194656912053640291708610710296396012353713530978609869882103679769955380811488923174424123262630133372111529166176652860601936720411153492312817959614449232409944742515136959172884971985672430963502723114763267411928835512843409858632713161381009428679440528437027980299796944823097198127264562387052624558377951431229961111462881533631265562579262687649171309201881028569775488398748621652083048595204689825301984273086307122993721658720756094499466728508966084800840740437989856926364046804048681480013774861303400796896166393342919662931318352675616908452826460193208592724407106538512907277991939527546945569435127156613757127474636661409250360073548291227150237661449271896160296397276523846550819776964112529682304509381059798616067664090385645942931033884028567989636133480369037776858525198909470241627026394066052005523674599364128512720689292542866008819693283679822468721829211189969513173267023095680110165206644882983193944771260140593970345938354281508795654645023999094776417971291499308320183756021469872825900238151446546489509058902051597695045473487883206530198302980360291601949502557372924507253673757495200551762579715283358337726016184253359034193631496062532291941318500173504351352596089282408093879512480035777628631304951193647561235016090654188722281342749774762341180846650346218266112013297959083530319437583428039140036310973074471694134341140093773913164444942164418332352444769302746784651410943695293636507344319295777975264455923461425937926402018431087722095321873451283196506764796254255990692263990075852918160026642271737393579942020240547057012116947467101047072428220775855905372936841604537146584064852967918611712410550861740654890305110619326655030910604560227226279262584782047397586803366587875824968611155255458367073358415105090274415240655876931833852010518859979621982469595546056362664739105276920180633546678138035056909806354447199941895842897234050844849251887076807347118007725051762187651000448274232066738902311427863989427798694963679213967141091020524936788239852799339490782237624482847968362822390042155257681764020703883034499517767073604807009114463053309695956743113758387014459128840343696415129662717016651375945923470228886270312951932162529024007068140718431807634276754486766566429155925165662428828885047741196086365869272593774595818128770200678031737504413501282889763062311353100217344138427330640667815015707895064287264409673317250257624190383593297162540819300590380908825449884354737137693956962811064345403946177169955269623238948819098297805595795101256561092231513101531692729553949560474191434794973317018548338558156876688980278479635106748246140897397442423775917607956970076433314404091705185141609255626343715040098478474047331870250182421129940865215895981440990791278464292491659325101971656867187254596891533602079241043465114324809740926127228916410275100034888015483401728812762034796995824251074706571106289678504250091727958557900027794998294481111916700516440308145878284571696119918254588263992542278311271214048701367957469438768057504628881246769108614280071844372416339673813071874388856535440220887399604095159362452582189706893560368641648147242637913758253697181031576594808505198970109476478436474431957108548351766857808605939465124799116168824723332588297701843152986385880614022603550092210543688544697364954957062592005465976893994946398610734640492750257734187785626224141118054121666320451709644101911949454427988665376968420955523229593677210810923606071149592558963898263967438390679703132298167851899875481083578997801079078799404189357108840667233481102834613157780645498115791908221700294500634931977157894544906364993555929119408164407988419286194957701945697270819299381404873227351695999976431436620371740859971670458044786801216349122762470052976138817248720863298660587240304867015163017520279829798641271377072731466987407302188274136183226570263636365829402845135714392556837058925498150602535787231603115209954695159461350722464944501698503868868412772721396770729778612100990430201321927786843095481098316570362630501775248869231311451469079745202832739458847831198022547759533254833225421770935027174808155679540742010793448276502324232036140016839493343091765021958034422268155492103020332874733720048918440644866467999440981137667693657097513486805931568006377067201228824577525156241991575810013962395526341401252442099049912426575213336536637712965214298579248211239361758520389464772908688031084432846583819713533238043434851031770806058853591361096491114250242827525179054274066987613987767487102946044922889740222144213464386715285667632456126170189193487675226448717577167997242316711997509467201569588913946033448629207952243132830470744241980709890055260054891890790046953614944464646470061842455033801554991632940713503926423921680743909685236989663523478662059096051585994047734687170035876447740391417299890597391896572522389453666111753944065470040503875681941906067078858624414148433290315234701462777029020516248849418795288526255677371700244361201200990576356313223840250075987758450721001623180834626293757598029854934187830275471411375902024458700685354042685926076526806892992316209803604453246357055265312602117203951438884289399818630422568409735727887366965945127122345999828488268609551823138700827582969418046763946375746788777223061942240395989638246249775164112911739303381757503711151960941434158683926417654906579556856740637377994980933279861793248555146447218698391580353197139720685032798002991675448205900289433219873441908350389945345756344731806600201498874909654352076485181497414123594714180628821932488196294797864815490332213586606677399293986358730793531367906566668106283018527541280117961652310877991650176863774374846012941712472676120411103228312396355993105387460879784430360271381072605472431308549161663707856991034019916976230296241781609490456872121239461636471025688170331908779005667554733227252723355768595114335316095992060163389801837619149289856294267500869549158608892845781118983565581741804407867751678963815458474631467085057735910888684812163334849691801339427295495768365935969972621535914597834444205620834196076780061550527391727693605639385072023120076652820900593911038350845040392863332474701872783412104658391242216302576035835756499131512546939949636215593582968000183266418873910889723500649260790251215947356448914860502771486869770816422849546276907446504836908784298890973705487175007305788122957044180211896025886760063761761559440494756030448983056900027251112094263401031921396831386370097638430863309829030114759024206522385736054719751738696751147341128113299900234453586296156326034310135927270332333928487320822804880968626230060355104795193727556574053629248388748836146589766307930999911593374032419503487819048257701687876844862228999769633903247694171438965068806544329730601954135217485256132122979943166735217025033978408861123951188105766980058361881447895695585699843900170360972932998668573606504274349853812965846884117218452767843522541897032414455824990625287805376602139056048607947327674794373222095788942855422369136809051771567699477551351900952816266124652136056379768700253700420008098750864653089107609023991569414996223311485010243642297049454014828017089628174857024498917286333990284848958124806100875413949981279810963703340370146104869585776632143643349331764407623155038852456028352119112532301328688237070966347092520661892793475773286678120066441247375794201844842707099396504931935004892939633099666279796802615788157398847665521952912326121285604824480725116389292747597601634720799287013739031166200367223702266409200893583022517586822925748563201010609016646166203572744339487055084988097603124972214183399501881404762541002679948704865458412784942610039843332817698796684295433897163288394687240008665588490356655917635905573099865875371392163638903473295428981737598340422146343497989402437710367744156135739749382524396729941050719876555660455658222559648410013996346428028204412088766666146398257186242788023316974340081769941854727970817095200059004156318005161958799856345171272966043501028998648826139933786313804739769461368534110145424104994930254376180917668209833528684078803581270361251513296518721050984800757952347068553174523894004960193202167023161620096629803585162326783606022627346626279681892756006830456682623807892693653592114358229154054850132698682669000112912928743120984845669352493371044702655901159133792593978418434136030356342988744926302197942156506293312549868692427519971958968294708821330790957076859288539554161976621869093733153574894324738005958380178502016722033229487077002663871337690969684131541389590238980579988739949287052251982814389612914261845990386998794731108841516456954118590112986344178805770511121278929647807064827077174996111153411143679310042241882470235443662218075030957608856273945459460023779597866902553522689677993924348726546949297935778092438552921589618972644505833410124442230313894001174681933562669852878117133926146367213427616395247940509743404259867766645583197979737266495147298694004561230136638444555326547236531211619006882777496966556094305841600789795503508799721260339473172312730593467245548497692001595526355184549257614933249115355060578243630378053729396979361319405657190291049478998629994464614504171033730226945550122130097407855928126473791950423598907580662623369144197694098600085346250594826084161046575644504777551097075087875837237706564378365184639138687926415815338349804121185647159706629005293209459723691169909339531032908105731228206666461896385712129655130564673166369230189792700612763844892448637421276835312887056894573764486434614762799635962833433706360033724113888513399196205247093558038179702352327508266425520880219271033272945640777408722964973845634633042920334009891756540379084373299604913900950908840704649509497350704531291057572118039961188134996608714616708413386982614126862413060185799784016427243643844464802274353303076032207561096408300636314578568812056460434600891162983463322561533225045512933925319707048440215945001072139755441958513210551738288736770831826854293450077757032533857406621163961507655074968155217481991890283256131698096548335598070453671400501245030756659562946335136442575575194970971694709801319045576136181338641047636501191277733901046316935688283382884181136688147462555663081715877234876361160594526963076815831691097353513328413015909962057495056555913718067012545234618436042883186074310949893468967614378721732286715658714052147257233904107532960085751448162702655189072700189462749936819105948921365573570768798508601814666200732000929986564536311494272566270269378651310931683958080179110225850569697851907008954561241733721085804928634119213755146815060905236765305308581069217674284719277346341778939884124468258110325701589785646797305248499543855018057012966019652682324481920696202686094952023806686435449242745972481967224338916584707578060598980678247540739510373550286737800051367998272317105788596789156623369713813467285477118823163085595262708918507043847248925350804394427846760893708701837386957134641464661626526925648162053743222118867548938981841676293734119664272455614736663781695692430403927901062664621609187581592098562809322031233045046062827111777779061243703184650929215077694180156176602173258978316232596443466503087093276761386233860022248703470871455431866146435876330361880999921846811449273493525393961740204783459939140705385057895703161447856565564271693398520043943074819180425641152538235364647945775153714227934228155378162021173406171121317456108187643856951550423136196428853226368982492198404674978034463115878441553074166563051105745642224970277868034208545927220243672571568675274876193227851911786264625413694632152415044496602171193954980345810243479383595613549553385511649542513334707648412276480589249553208083799133555025536646571593826727693647814538043373085605951580300404678609277640627868813717644047473892592259051386355258773530216831938863401048373200742242044489364580963909960564225575525664190704721850837978844255672763299622019690231241965079044306858605813435830855656307045611510648693771290777900253366133460283236289222451010148852122357318468791855116289410683329248623998670080168409499552832383929268813925830551534666522230726898433083497636755805050280311751114508834702125968095684162928665369974698103902445166381065960346549157860792558819376427705734470733752663411856006915218104044544371924536317575336575138009726371732078417360899290145540052763008228310904147047322446611119448554327364137371645600117124279261938501007172843186395215619079187407122617946701161224449649623401884561698829820609825509778228879424593685440980327617039401344965235863279580728664656938327059332178691549556949604550435125868668060528528757321736588782687954954761358766423586703054246281882696378340498761038893615823996190466896878651012608839248168986153498223239971002319561713613415454305169296651997318514326912904972950944115628022332139624048050744701695169392355173069807026752488861562734752928505215115358394787878738136505211391458451724745195659847679854110875668875033618936889578664154085369860246351157292610989600153077890861323807420057866607720861955408708222649965683104955436508118081247809910326921552932295684398361991730045097153330955765218413214466202101712137230070423293775264900186205156383174986095448670013931533979032765368109097706976323707398390925435433078886038760131162817921512159092586617381663331527132557321901320276762445724011670624134618375331055743259772739815367181785259176071107096460080159316906701702667686126576404020384229365875632367116409058161423563987240573428321094446369494146891289522052860718141012141070341707764789585676742860004467803698816170075984778298090611423694284462130973297523221540715300602247975820620960482272424404703707397334552328486613909055535620042261441390396733280150707442310209637356621106838519526530187466385109180810820231235454146126211179429217422843945828605829246288479673107566066346621574015365798347581317990390704696470526968158896789013102035677392214515358446825257405569602754884681660464234777887957587789236619082672320733447351143956449507451345413658633774509983183794720490731275565895022256204558522734277798619074527117794673511395572342771575236480967118724136517496990351587590925897680876615361623025258292529588032719695191370000918459488966131209086246736984177508588577074584791172051755493693594236734360078457551723152167931127853425603086972261891038020256018810679241149176122586656013589856965406590772703127470942027730889295631932532035173741628817830660248598023582929556961487532671310429960377460107225978350346937297919198117239199301023622826915066449866662125852775527969249984747633270348264444420712733870766970531673796018520332166957369997638858177019153782427568994557769017152834215450055657692950737432723623103439410716499861741820508344011891013554759338701109777472358250518717599137665975492691866237734775308163711385691145209203870222956473510194218124170274039979182112224485254550516201910774240735017167173750621508047504188104377959678524773039422021185035410304853700748207504434585323473831785447246088460674953836688667745719714647037483113213178458288349598499573561533585029522845459350834347667927841572416892196072535960132647361308766399908844346319891357353779698487338386912139903285202148272675248098122992959939313500842633099810810275750146318243939314317208031393183570294294990422343453255293218587203285605780403717857013731452401811353120378467931725470461818557522455759615091932381829547611950012236883253512557544092077207689329295982907629803223211933787080266795688022038503346725460684878723365409910922103138262184915328814864054216432173350716954861303901774050332394010440396026598957052712872197327974380409829622518156966831268032471832139757578337197379966843220245350520403246666976642541739761378574599855533230143277805332260041716338528406975958754869883438268735763222435988046228888041094764564852547817949208732411301133641213444900302488887485164473517157210523676694101134379087635738163411907476109152390078406054618063776704581269065531219031148233745340069176536047467791313137158269715448619422921485717708658873473907896105378822051803311922962213228215202031089536923215932845001962963812808994653400217973518304099571147596130820287080237180308448227136106887256599542509162066933408242519759922517579781563493359046429464366264784648173111299503116808484047321275481721872727944367969250559280285288460046111949346793354179851162169339130751525631960307763476511446545896151269190796384257510368350522005811754525340540963037312389830788921547319309985697993728188926282645087626144791082361956728000122241555107044124597768468830745497418952445355363192902801052407045940580529224547364835153385712582017886921537134878336181677184991074044077406115103304669829596775024229914705274054965832714862606822911511873152636380302276290162107626417378499660269187547394644786798797263601855750712683035500349628025968884693499550145389700993986244999510222874114193990491955865700500937965469538644954538319894370280741299009726099846314951904894865589215669934617428903178514410152909293908427501247415027835903893845207874594889117460211137404149056563764020362025219352830805657993730550811795914113943408031441110535191051849378526307708810398666189901410207246196818895630318728195903078293438262181313237419267737881413575722903129846753859621327396008857057962181973876240311207923247603366671783463465058150273388200640431252175936553050855330230938172524227961712288626943249636807749027098950012324318515371718463120274920785597754007806219126387219157797764285413253245114040900094275106255827762881764370182979668305511478178980711833026348601582433727265961176725874740915414753144800016778360855019923959927889112097015041650720696336627308801656914092555030704467162723743514630993189933124312995033587871732165820144626320753092324832734182194068967269746101630582424864061695940375428855345500180706084521742617559717599667667045287520623077100947635719683357594091820043511208916809376941533337869678572894976236279393871679430620839863680980657053240464928186380507854856422525035551523680624086536001741240127351261105590249932259453577209766020552449281292629530992913011449497489895328465511762583429624669974817854309253594888577680033229607830522442417551184907912976452124278081084094282174705729063694890475584880170540177122856625872095727886977278105332462628384452017509692190723472436979651442042952421800137051360286666081263037249160956899289752701725558989381376626018469845684510181954314635618596536254669701041680258483614733040446521382156235153347072979280487470473509457137589763503157278702048443795181344039613191241312452316923116589065767054311660318597822867878128740156282885055142615346387105184739439193507770383030082140303997728770316958491817604061434329162688862317308252075516196207483006750374463157535655002494185005749651314552234415767578140022263461954123272787911698593245500859801216220504517417241014780619385991197678891132063869593688626376147342472749744419729567619765002013932496610381197880555750127247504826319259498652283255369989036807331613070163502357907940427828212744209488969198462926879346090330423838291574983949784013237835267742207540902826781489048002622449254298745092168076222949766510941832479270361645551291123794079534711897091812725122400070248617142074405736234875020892180847136499332499262317906724012828811486991085772905169310524522052584133076404237406528067253933042272513933876548064224674127153999493867707421068454277678768211333088875861422458893920661535899238686112246030778618242523764394812112756157204233674078996451391424920216857977091120224411528811116148903660239581289343979650785810026215725588923681104978921244291659450151843547061384193088696988054817365903046765854717948849945452323380585406831806977596447140568860200214311801196379139347932608095141862475758915148534967133233719261370050487498489617156945425299326902110091440812794424294235649305803897123049679264887181351111799831241540071844913110216502117253137996662610325008657142625694516620469165750490584935236196899155883357592854882141102385769355553321504057329652173129484496663957986564006886969996500086527243139827343984901135355118890918313580944464746471991261154214907473469750325313252522633091324910094790381386417525136483243456072104799486437003701237113103869631175079902731533162901570373129302947693965420460810992491746595116352093976212246216021429117308799964846922172509717530150739297637436261226717917923762176194851504805126294085253139890016333219990956312112110239980489111586528961778264650440955865234708126020096968127043557541814126659570539695375781459799192362553659246675600603498323094863264876104767955635059914890648552996657670121302518193522122190960939388009743757187966395166808726566542216758162094481109055840469368208939010775069539618312444147492559718593583063222278155781539942400650799453854291546421711191860563497621576330378805531331698921153367378778748946214114261888246694910892787862334487003216031809867289944705812747218105668605294036501520861791042619448788769207053330844057339051749279990967116435406919741072141839739291526958001441682588256801889777886671587935411636517404637707125059157950838584922499957871575839509761088813852210786573689292177635707275028191020327875393719982565311703871435130829162913424535880854726704712836771771976728309743066608593902586790884867708588812490420663897690591571823078718758938014780514190394521065557214239044100471889135557411301486594035401417256771060814308830337933180713752614870196593982761206241207525535581241820580877154442035343103815424900668484382219878698045866039645437800892064720037217487537511434131180560993630381304817868770361480275504087759102120186557023278705824206090215073096898391239359053039789249366943139302775522272552009459235792147515239972411846279754302476954236961825891114278641098361226256588924878075466440019495356115800743041310602005778488725209482712853285795381733340441553490720611476300808061746438148701864124710807590828953200905322765842330261251174724638900481658823176497429722359825675883351173396284744327957107267690232555516244961895624517932529346157879414883997043628324496023636119657978024321662876803728146469589265738212694859093262114143923175640575694061144179245830608513957130977642191441980213826964405622110525234372994779709812985861206618763448638076892562861469230462956223220116316592099742280417778234874604256478013417329826788601136676874693306929486931734444939298883389886316282522671788572841870408125286673762832978457956895833006688732640295730938136363594468187923524949258271939315495973661960215587587003307523079403070866854973419188845450202053377841028851273512044905775764991036541069857275021908818977105942158918841349476867028010642650750668197454922802289489231865360722584507041309836972546550234990359932745831663130407338007938540363784141845772873406293147947670724344488910556658960162826815053549688066371719118381658565090599421627729207692801527809090539359133673040708552935730613899914444934394695437338097646157821577417608984632254879888885212708199018975988324585399356491789853770813881314665514570359536078101457166910576992658814673688347453298578291832513765491107112413582735668333162731840707117884504741902809825257600186380783462707915758299363062776180128909780537330737193104065309380323176175685582946846421053135770022612649395048470572824345188897287279790483860810316808732998260216423450395163486502617890538621213662218825638016356698152584023951458248862792418264063421973970013907496537127212190882777387101526451263133587179087705318422285189229081102223106173174031459682040595049099375756237663660457812040944227184404455822253668765524322251484393825378184732099518583391970892964133247012551986747556743365128249732200843629986753164610399662541015384256367854623145627917374489305147825839184182864847975570596529952713911619987202453118562732404365458517227923949262371581274429542036908743632582154247266748151942936789671093822315783332724626233093017762342837969231864799336024467372577740347457879620850704233408850818840523499001509514795652795178744519924238650314308321467161487735629983702568509072308691872507681496818725897858657821712374305351155254826290029353613112989010303815179388901915713218177299442709950202155320799099157169401277235795754438483425691292005886433762077161226141876942836763137177191632165677137806813882713298644231413451078384339164019290554716975948232172661384164637621144565615931737553551127777456404874072206646476994059696528784036580572626314865047377792977947076489209011360096913697755147655417209910263446674041090896713922164889605861385342138558795060826744756487519271006638437390434979823268984599364342634908129441416194160444162600614083881298998365659731432111507109563647799153817197016260400170144448674138898680856516640800568026935652641108360947046529735587670538851939116427699584372212711036046572942714646931762265795000617094670850934882514209877809696187108901243941019846249383751312531905793537604700254295224259833718533840980232531348616145557372639031956795060176067227872307616153564244708759890578559143346354523185928576873108257183945387273332170597849584351827314515370405316430922999038912279216847118316906755725081141478277170820123332205313171804776715583778521122789689512322979270559671916082896064494609517168524711673577682197577677030715223131119866176056689712850249824247687711936625817463023295576576351903314546098175223207051935554353514029200976926649102507247565490823494655298230413528424645378407350689992922176511321265613074194841396072865744762826502863324215222458689474613614828193363147191046159651170517447168709727649670440351729975163188244049986479741429593517795091682594245698631803115780020604245388465950165150323645444843412544652643506604715737046749480639067659854811367850423223664403677696895702685095949239148713007167265300762622221437008231137667033560802476744674133180889728145653904716882362657493191027914890737858943236797177564023324251152629695953958832409756772428011753178649845148985826378230969598631346097255467127419884533154852171565123450328084342020095331118971891876669677532555875079013540430121133365554312474197699696270777258252423531668325997440199157313817558567413535748534340997875757772251705275995218969193911951578201893746239968848498473055296534160856085379360590552619862342624722728383154195631281466092861008077083707421349456278972558302476096188506901465236041391059513298145190813143230521296667683273787614668602683554788149423196865997361354574050754121979920554128259874799919739116743982304402964521559628130647575116301713116893324582113662401075315546804278796958199876648660506536140565570708861981827182514825950772415924760533212342200552623217686543773747334647004815863412426445559209756307587779845516538579690234038152978615451271299674963352107744498545964058602227160519258005256613422954210139170677664495882207296765234764037361974082318657075119830799492053425681661156230634610882167418239272398326112440621649467213011180505277229586104235431601511984612548055491750969853136052472336694682515003267018587311747679747011053889680883945331760879193515519042941932672014167916550134535384285560940425786447801575266948124085497737396096394722294363230005903496526884189478808257347169617645192987513690222843719234976845381107509101672947048428657061548797629840281875189924322950331153536929558229932305800655912931302431430855197989126067542867197248609338487765715843839401836100049238424518585187361437655748479833502209398974352539220672105304373571268617697373035818885612341310050493765051986615603773562208795921510819196459644300296854000514008427989259089448927583203355333481399254978803974400206913324023771350122011839511149961724866475545573758910772286838148482648919814291844656699529043715727073577861963592253804701276434125899887703109351703498673155028309714272148539842343005596639854572162297139571613655297717007676994869650296035025584195083395848679960408931437215391004395019873006015885057754421739360591029996011185401915080495789639112112482280750206040346579445331564376582736666458467832008945764859643962472263802069829410325447547731625258220794255041965152986930632994955003281268354522547856208522700768199340651551740782719238159396332291164994138441286673419778511935892063604960192532229881669314986456887220627369798888777514487031851463914104748286260455450101139259237750945227184998162782575734020668729063054482681714035339269966647474034832330705110969263194158631686557989962164855444770008064341857917460314435707325977320018374009518113959554328887335137489431578331663860396507507419140896985786223017315947857467179500263593655636420659788857490097146844361270196061101919118678369762262432540165491858387057999688416163432600318252766853757951347871376237361821940786544454733288288508662278138217597317824428202250770456118823278098450363501968912057865949230437943396763317512111309492082974668657324056700392084043223265904151889204798125645041080620848444797316314525354771991697378554324762001237927307051010709463844292107050362195337354059226741747301350830527788973369507923931179459516652122643441972924344498611262979973012762342039988124202304065876987146981832725324471258023850595522421476016098926080523559000391859509877482717803629393002660137421812112535822205761922728559579428330772096803511531935730915990067871467324226158076475251273618274689289492550263448312377396846551463572597282987939551742940901209477680897683917255262097207722369387562838633202032063703779255752251639005403746701269786971096576465133196588871144520359871756240242170232448379599498325721263677720052462563377853616992814196586259220639001797177823599690962338974137200269292834370090760303615678075061799613407026763473048617611581127465895121257914748008761776568257313587206847620877397882546296165553293754675933687552679520178662809000256847282170839551113239733191971104763708931887424607069456321312980641343047446430826322960742133587407150350667961673178088476265513867813706970737586825467331796089219397484015243961674689657259240516973198444597514739794272976122852649137398593528426674678117031353415406089486658643713144951760365654174439602601190004779317194116276043398093807978534971053334819142310109022904890578472357126636776166033809805110346957106650229375349779745610474404777338365932562229324611872285413721573015297759622647416489399919575051508070993669700954832228404838287606708690315475243848060195523923436705840593899318594883239428296972854894591237706405190240397523504970117099362695013723831278463341052478522368921270398097107445360097719196269248367557594146445373143592836993324713227532784995727108890882447565312324364820073728353799062041939666056375800832725851543027591112393862850760795901867339981457325490576311185008286531714035859420370017335097822683497250056463840161999541181728652357588985161103268888417567360620698375093347708330536650361271969285749677343787949998541679651587841933833654035527931305839002303180028173079525945147254394425871567334878753758996367942427645584609652225108770114684433889355218668141723207300781052821315870721647459684568561419343079829840581584953753378680618953130738043419776529367761305220577057808552101547888496068236834797111083913852109350998921965358929715528893871140344921224396061072554658821783595645651203876578100895155481480811187437853492027814484192552317032925178342613622566945952522012590557204461904719422332163258230193675609221949486723359995832363719556528825100138366532797527078212699741131221451853101871949342148558826280996225008769112976687796234819400114659207067431565574525400451738931097851857974884825696925274298049959321170535706242369853304751680583710020005473743537567381773335567768511669066425638321305968936593246388625277662711718541895576140905119921916385569613097430419889503888975362277007858195532055306539690640540393670135267860896448331660879535243477227961387905780096909437143302521359015629255106409648533062538162418040814294278935974735233157699440406537446020908967311309352068398539812659276937770311583611434100011715030942497451506510933034799035394364549905795456606113450190628612617929555458156841093358302514976970582360137117248303781379187957370793373206353563276151657951644527006679702619755240916149506589798431682057890931508058800959333668259978850707694252757935593188592321886363222725922461441428546402954714997651028960283892565531374587839437105294275196791587623098044552114009687383978683883300597592192898426488030375078289044261504422900312236563370864362312785439233439867069625911931781464545983026748002324971050170160576364736152646589091675683503244618801784291742643292226699747960408740275575420169638997655492295676079083347406086379826582445774312955628186171011967720481027494340739661153904457289105960038660619884980342470866489855893053300866025199778050926267805058239496239646386115576026186976852232421865482912725798980065995852143079317931622024116925674297766023698581687659212587279620742435429678180804569839461221490412722709521755657108828542788426671458995159636541847843339917254422721375200224369335095006749815983503399146141441832645849575957399964268278058831735784740510769326429152736117530840410571781956232455020653251881246518372941218020005079136786728468366869497362967614742125481672199914483838172586512042904417827847219769910372892720150879312990158812329232343167526938126351263650046441843854352486790918641250936385913043716923325193431375395358700627678920787432900885583558162015771520770399470376062543016544194310491913778249498404161688529872080999424582327721334129733648573785758111778115047321235361676519000505550829998929928757177833300434568919722856753278897279628478039588655724520156478541867632510670321905356527543201952382746931382078952639571811318311624496187810070137853807284445586943542120745066911767415448595873323107908158037489876040750773918824036152479083130003558976324602941941224773898016466139544441704920340612591101363743593647873971493863951036420299137928438186333548002724428719962416406918903279588814599530097764159750073313812280242098512075862925577005990705856525498965143052230818573930634085531971298910742536769261738736695834543992632469141806907369021848255860393183312795654904797926244229261555314739347651253234456343336432125796534569559892099450614772383353669071496409312945286405462741219824369392868549929277602073161229478948944704821268930201288850138797211490590791103353123768085514919078917778330171864032624544043091453449611767823719274774600927943199349856782883475644660075876422053882777188336406219812149343901758317405969549397766074351726543994544842183343992310226316775475801253846757413393038377185796875095451803626844052069334000813051083065780442646126917967094896099527826404471904062441256869026952708272049331001861655535457747041449339687330911527254934527081808673219566633345061362770429113861897590445382897265702077178254903458862477598322790818254856266358480668489490379742962153374295573458278646834651467626854018778079325775582343788223782646818473916724901181792094703065627548693835283745568904286899362737176365439904262801080326169836091418494053971376433625731108799244870148492036308551568792209416439690181462744800710814426306048790678622971151726797271707449303804848049324350243841506151865131965109707672945748479658747373049980289001226068689247581057205816288832314857887069466906247086744089696094891826353150424764273119402224989983977259423981609170105688000609911922223234185355226148453101997530856845769192566767547844669729829792151804786049257518414691104022141254188589200692173016900475059252345086756534905349608239037919771605077425181904119222022825321241265933224921355631821412206837630332199301911009216515849646268247655265286162859460828033042742272506191860555863988826206531937296568911516435896001761323795436371675680668870478704962025175625773900792260084337812633108871216071227985485696338564991299686678949506204397926917795764334667750614653173583382636798643896911134395778524321765986564670752753078629222687424576266579700276464064406609447279360807663539779685375386617980285580005061003615096172755504446894130033069129059302979538981769122827247849827009584379972479537639345383682298095611142642078108790452101741089373956347577136745488996888406964665295180647601102856798055749289744477682375364187450523291833870482359810012774197742724711843586680638529904088122571537528410866251809031147864230133949277265169099196060625036728119421062671160178741731537260531807779558093964383523054357913375889409739523760975038877390555890585961151100589658790338692130520085279927507657836350290585999543707873010618033676935507043422554687924713620282464499320178426357907136081130858022014848453656948001232194694329829804621192528569676722221932216404462928696248887997167449710919327781055546003283844653793704949740388579715831266519460379100358708187101898857131060288444627865686284853478839717372197346578034532751954594381820669178599252695930893600288853681509516226805301091626141218886779056259233433165302572024668480300215851310403889091233254040393458449015043818143514309766371461982447151495018773425548585878983954547033620313883098215463869029458343640011737583218434556104388113431723638121983647121912357406663447762329887207749376065549184158587433143574323676689186825149385759748692179273429244756722756237556626347272238661094112677900318840145356630225975296792455585208754926984313850662817078861069208330686116694527172873225248607560938700213559343180900337222782795698735234843612656561176453009984428422083444540008544072620921574504170991080907595257522210398050283041633259983752783993624173026379450751716135196786272101752063947574811211138461567866185197046491004602501820508547547462000887608222051150466094406818088560956315258662145846470985176047840984589880890438660887189561131892209816676538350942521564697158055716021916068127324076097597687762675275940524409119744435736299230469384941588654523056193584460491557616065314196300792022415410607571010986080244507741090786323790697735070610331256391147244433850365696809569697460820260216358467716481719232884337547302704657901989197863293676359665533705391912987553209084889861631157103697282234481057858702955692136752372654980738013962503811597355404985736468802170398062290650246998811259004429177460802180391149802907700889965953629674894001608878724832052350756159368171122491788238048797028246222803540954544718406919189579162146279876483420470223275111046832282442512734152130039018320901285009586439464570415277870289087823052846847193739821718017156338363437658220185078576085900833841320833898577459982370188673737640126016168420470034951857244987968893395445438606288361347436833464569905563159735415779863678994702355258649211512634632430437511232364214768512788871966720355719264060868382367401042294510136214100417984999348776906432746838306987821173768947989343901798664396108175081120879687015170768973521901444489998297136930208065854163042250496512166815057542596408327839180002253503295708117919113493246917712153611821548124767724607850670680559010439890133641000161889873582255861671077447853687227293461902529675044939021845008922437024005510428994577114542301597268222315777081951748928546873719419733744847188459647707849912999805411459576588966806752690467570207945739250713237901534352935262902899026330628243702153177331094738738609165881720257209515587737662553850601952778804326948525467088677145109675035702229505769893270618126576811489284900550300956661488146766745374402221513998708642080391380334009125129540851237060231999346196834183245365795968099114370078910401719291037665193228136986716474037628736706529628008171323687966455854274764947192658717797513622356808675997836345329225764310915406576361752232522708677886715392842275128039670827873480882476322407410558455293486714371656289697194846845486878523523931400366947739381471150340323983230607733315332120226140077114536187336920133272387397761014132706388893343464533173360185392848777723146422989124162921612248338903423695349965525997818789267867416218131349389848932530414677380940663943572076536933309801690238678181294876903166197904169663062117873178983774545573121203484259612161202866385982312967698323865384947823649865432591514856717648930434346339694130399580756797241272422591756756852106847076733242722712525917840408356783635003577154721372768970272702590190220742719354761257067449316636324583046448308593839874378540178319557909636536211273569301145035698282532708016675751502664596550236789543936858377835832954327962728331603204134097908151615102246183848100019173773625358569964681311858680262083950343927163531417672326987687137823229556480540206808909388403573761027019346793345026093732336275849843069020215488325332354482008728262388398754884348017199696151379503557187003224612126577380077814472676458326718285653634381883275071522970630941949874887548284691168587236651272732214610626468398990719376463871369423724892639436085483160823100210358079543300483421975974486310672498111288319313716155563811317658602127156760025212186163183078412954405679802454394463106477097646389274404747833858018531122892359298799598583877560431230661653339978023504684283963481003849469673450945399261218931586317124792565036416195057126851912200260960561312822776593645888658945209195560620989701473239489512444397168293601661730011482081047772594213139298926732645082968252215827215214121735916522416204857678388893162399966461316405528609333610754425112901680833199095536090900188287713383185649921815424119269650673128578128918569781040305934625694495285903641691394333113547760197395715475880951496624024607531649697355008964304465775951429235344180227194456109133614535167294700700778876576222799573112320841818629435535672937339065358118191375854508557311101751653627536580285715629096028546252407863879992617877534559807299916884826966408405763432843328816890683802831691778431715959243886904898711428124210135612131140438054617342895523697294530587458805783787960347093317867614018200325390774070752111173681927228419805655327141099302679041408235361443665381044702615050165139294323050438676443994084116387314057622180308054457647273635914490830232974348273995475881753089142545381810355791680978668984066044901854287008667697890038127860507649896526147163759658158594023194004163942061686901254062561483789885558789810562593573531439509739472417151436404657160605579702253531534000055740436658096772011596380560582113846961778521069413110109684280868636995256726121013419048487598588073731496773914045992699040458238855777892606758562469630919548095133817471079034240404655315726625031821532122931965156361746126816381051942664866474705819760669514486399782485276522111229561947489297607147499284233479916121129040727885709289065184842423044061836286716333559237523151980417884260672999619847026407259355791736576487957259120749360610333932251574050175088268125234138779474159315722253489714354931162143476452274820851357465122740340432129086130364579257400717001403525294642788788863662774458142445811774148119556009293176938920635695180875838464888105142975451736223938884513326364052341665025479889327256220410178979275184732251889618195101029328202023638338275780797340755089555095550442543297022127239882122914012130633009024315145446752447139214584840735628466000682556579579342570798622311429678950826614549112114035368859295551551076916752832707830516165208660051348610042121621137466788422050850089125517637127433229954525406608937156619380100580090464750411389035144503985761978885604971067606855048195050915398274558098687357913659923107406367697143916228212652287547044113253321254672374303840341283957174997714661179702401865782574568250304630234073520117871744259918597822824083619412610514803039570900014619295211582151496509558376404872135366024933848919113356370337279802046702474626212851067180518751447497998631231765627858002161263439755116147207533951118197070967637242812998877271585068142105598669801352976643617472739715775657321405393481485873901207834767665313838971924356211861971275008924651920523408871629739529013253582338189854634001656852640925838338939130412290863701211630010904653724372326994486528075763733907407649918314881580532319270869673494992340553178453628661869350627559339621642404075358137604100999690722205373858457512998028587563468813202336406948726043473509009112333872288268232552948816159908685320785009617571333027000027718500863629044196814594590167322686756041634476289066868565764186954038086032196291892893747750228105601095503754994818974398582143146744009710101215349130882470583284452590485328629804855816377776529237246324541377075077198676834121949184873787175341059878861719766766270189576449559323334048424936402296619968268284740492041764036787029880510075698482639601507439495642482606921292124959731206415888862028825568443391072984823985599330048485501315458578512554901843418940133894114319252928915928714195982453897844731078787647375376755363783645692950470937154427078247373587911560217541240373459050240380945462527824743230051346453096455277784581725447922721243429766843564603555509666222381981920014919061045200031951185752218016505767836490971042419023693070608908483562408790222628503133069083962500569909911500450457762560888263873384387378555979806611017252865213405514530138283175293618081762113689629474682892283054430804489629755407385224821640607321276155317287260443865645010603142498015535895271200488431199752412948013419460620550675431198152648725495297187529362748184550957668258972185604015817485750446223509382481185507811139789141210994294035134588501948864146797837348847810243056947774000834473062335998652962939391309256515294452910416728395724886280753594405682562773700000875129380376132161254259082198701646904888347086573008971320446816987685868358935305697373600680231745311169704913838477196920697278338346936657274383034806271297324043706362368162501022396594632939096088247037970353970702724033991692368173831258020752203272133323707417529851161943855990332053670809663178244167140620096371527873756812088083048557882945125859093894537277866112887607624601823331913146385365836171354404960427582100657343487460140270023704291982750868892864755492833372649783253504985403929597765997108223995989223905062226987633975762171149557364519755203397833920601191056438442954357808565827847303648213269544220483071029293370810119931669982422811988684118714400219871035761660756256021494676555320328888458271226087330522101728032340374362926236433752249323238843569523579013957745638329075091234377829426984243219576806110987628253215826111543465682655709471398914721172866355622079708128851572350349818750194175070566141793603365536562730881496932663253818194290810456046492052424061602251596047529811564267646620656899137330135380555599975789682262317525248498112137618784387524065340072428289159922479617194468853807037222171920334939545291305239802894618096197700064713770224813317292515888810560789926871033041306107493118177300150184532647231734606420382971896179380731889372972474534450579478300327164048265110515334185104034719771556663722013604156314508772193578938450730240558673572489998794341899236831603656690158359723607269556139265611796309138374306481622159234708113318277197864677046812682099322373775444983095691054424031241491038160413021064986469399601428465485989402591455314130387675108676408430758091257395456196388147157022320128640951790511841651469735969178052405156035625097729175655500954977484932105813098391531495743636912187131582998058275938805564168732455965203484526013590523317605540016887667071101777470955118356658306454334595975520208897691695960661645776622809184274739472973817774618490004350354373222349113885429872291176390824484360234530016284052286714142893136865827961813198535443398114309975894283844599793757893550030558806390072607806420635843136195974427662621026857839545976937347459551567225372946054253437483814996420473510378683487104912300348124997849033421652112595263657447777312416308729981169697190770449727239159715649768386392419270235129425034303245604988918050084101869796722770793279841270964476984745677452877306653325281720979403522008716092024318733857067576384538618938781049884960440274772204884740108051254959533376630360411809033578708494260250158760054906779535075500458182250750107643020487068297822480777513068117778442360072644735685014883997850697182285971359509020315758486369094513839803407187366965425352228689222204801454538265529772622186702704145919014788581626827029114411796997201901371025495021493053215639096419508804246372512265477974889840166580092508340118976615653671217705275561146505511710780851262674804011082292683391864194179981819527937434971677726273110978943006233617309080645097709794981030513023080772921656227935184697018516318534641170240740862307910528086811051321728200413738486119747815050609836396945860029131768495920229291441053902345488824171643463915166740197151828370495529305356887612230171709545517904039625553594414729213495718795458027736513970020451572917927675758736411630073557412475341728606364790731819199326444469660090780916841218790622662357609851300868378975269981069292257415347513178940413372051288264179724851718411175773095434427494619991760311677629705828320746204665737424435787196298017105425527788145791314343035271405126878920619742014668796863901984667822254170063103903607494552607105202788690675225695962079312669865720235602974074354466108491325252078163708969269162163412047275389248644632589045326687598129153972060840163182992954313753322924375970394330353960558758563428733152656618561564284909714015710250311286062305533815189255234871942486204370138137206123467497629011353969450184724826413531164057748007814364120607012811837951986557922289994353485722844193976336253766436617806960222627223781614135855835017615827099244602890677982251490450495483637466792290316730527646067795764608590694900363431777281187004315122514105465470659256471234124572340237106021558201357313262074745634620474200810650539401952563909344924046872676302391031031406889359693318121631708096868557223999767791222422835638919397783870791787966276463721131849735964593120747571934305577297788124385265378955963400458730735354103891095568647349713631541848765027768146715940539376843690489883487560618968629808604464321092915765896496053857408185227036790896858809392536477246715566914226598235493477666987268541476949160851147067564526352159093822143384536307151866590818247144803439794903226252001227715494027215495821423383264924962031804520191930142492303802489851587201262550856233562752886997441724124767947593386409626555507195193560224804245660406885030819738429638057348345406516832765841139056174252271925315508418088523522119984476378895535287551772667307075798878299274679699820913801569064210002504817089362605577058059702224602715145731660791120143104770294606665561680207897580001567006061746423492803455457263464222393272704454359993885654059602435021014089420324197341508385468968526927822499326714882952831793964699498315202784263138043476061712530123774259122080917450913320897089560266033605081879333376491896728159485567837736674032525109031516316621881219589468131849441052267534276991790281862185283606701455776159607852397958480956582139137524861926403802325620318019764941698164645420487388052871119626430106164262349903793726785947802130206189092866511454459706628035877009450251078151560431396802859628455891654638901613165989915067573922610846942724393335954182062547808531261949826235995599204780314719448836661151190120999505325270867271507793717682206868696684082434066530113820327366455379590712108588122750839496432020629923337502916185268349061734167738586295078130086087760262380887245040543110843719455196693417474398058287306528873679231698238508425566214372485575697055460479274255777222568257461540186839072038025369734382330478935695120199918845947726467493906020689693546463594841962733174769192608942733997936010186937714505742346019179173313265759453639187068758714901804556586264660221416913947162986385753319742769183506755734022849349975293568345772891019553813861928831458981675814259329495556491876549807811626383962436772221984152854560359859194125902036118695236515791439692238252564063750972286295277430122591260603513865966468151432095591166114592300478983362676865090583300574603420275401608469668351276869399904109531478064510494029699524372588640598125732895909423896924802857182254349461323348769432604283874538849023445015533121144773391267290531040172401998538450685521162312121709096408920034152552894255986420114759651538931845101609602010866642147110623810117381856779803055774324875138202843786454844667263376311308728821628312964284868106304756160061662289488415067617708475645395221450712713280122151188263749222807508895575149948414999734020391390841555069095360230394733946998672845449430370261277465583343911208844146864838401776343352998391646597534761229013542490351631347322807124066337068920355627062295137258873819150315118522337383069474267822214588524077199339461882963553333844691693570691450066861033839508895064982509517994058156657634653474470460926845308268508071152337764155186643562593480986214251203755776125287865481982319906006153558157365921877706616093988801717995231231388363728774943344702245834307893192799160338039530637190952133383583514629726954258040596048258502750320211492361926665659520074549618984160627295982813860726789353657586959502743713359462389891337142908291944866603487646147033017243423352362184405626082233187627243244305024653717282661315143729137934041387386781675952278925232584562902339982221020801057511671005226752707763482311888043299838815314981949678555099956148409862096662613810334505719016045023458088516039748529457347984811090624189865893978657520432357596616147940852668210942771128696533841532412024599460164903572951943930942213597534237473539311389670158998946373738034436724463518439437378384746949312083353629208712971088008420812018601652148659649669393187309189701311464181321205279969653948077980321974970412590447410780099284191125219962090825067458186209508081867553108146643792059472254477104361459577292574995115703536894288160007002181636896163334389973897436280312245594275091631951179254294234778021100341217116790474084652610622249502229918052244667757031176398348528686154163679885909475075075158623941795631107847869740847352167296459928680251716773895385661361544054002056644341221680548260279021336065446280719063991370747284702317935902088375487052391112942681032542633961074819570705187189936802074218172412603669137666309901840692773093608922622484974932253489231660071131055045530726650735458087333295508950916756806636563300145674064390816210581597138272361337283389900253039388969633772569153777435651381245088567208488496170635540618454354166334609008347564281027222444706523488791331831346237814959405131122960078002660780452281932309881414687835325701908613732499898900106499824881575012917858251065853461430583405684834004999838207944507933171536124553630213850153470399653118430196134834232918002861101902927380909197779196591255966675576213833628186901273251524601787363865322888701460165926372771391048083946346765973950669785672627430024466039939936310811980503224396496982105155672240119757865107931490979844963769429036455871303326559297758813755153659278585824416942892202062034937571021308660948798951193022662431670440084415595559369442797845326836035031297852870141042042363432825717151200285018284750303176541582760333366188303858405887895257529678934364583039561135634206638043414813958205479736237308650164094328333835455574004479856686548103273787592105954863409795731942717338207567266002062428459734048895794411904420316587484987469916162178179975793866746812153613639219533611745779494354558282767019332556847377431994318883140219944114816746604006023723992832028679073132262472890686494086671574130357670927533896389719568281617443391902703691730487832850436519762574294580731270484129202150258841810079800670129465211678868030081347418804552402304518791684047012356198437186608531371338923844096260182118213917443329631141070327110245865873488910994506620375538157261387389766553612055442415419434353749181370057902542568042954558970689290930799874338125729278118094683235933608091338646489398355918348031840006755399561162165123612800200269056034890948222577124075617032661180761281191367979334817730676897760013255492694938423073060574063925750382300816302640001598148954324172638858772639474244552705427314302220563578798787613508698064540642655543962675770894741449724524100590449070095170242553180364487237975736061049891419115917707254447207826756479820378834778405466316747792514055424431832750703559087799516342443857592026449202372587657251847913415420172712616224450103807762738232013271675341207611640464338816543552342681890338482035935526683672698222826985832119581086212161708565897281449928035730761639099702490097764542544915802683407393210682259421819587631924516970888862889350025223784905926801334551381035140057475018727141635430177942879379827877629489458611924011877014249426212458139296765497284501201822844284826521093354306249820110718631110869896632873682288459470426230183368082785428274582041376672384152365112476855518667766372010580090012101543670807743743832092972632085331603290255552574374328856985892432833988278410237100351733967716260450033556979888843754957256993099251249861598241228825229300503763145823044024382235511406806632629687124893227778371713780215933318744865041988385411174312757688694705626494640020479635175898639942477534952634314559235976922301327409927702821142709166057274462476084231382153977011706833850382381160165369647798978356401768985727677262267092048356703266744516449880857606463816947991988236686122956490992255896811399484099387839668217152633589117547582612316475203112527124312161553352009650849321503277295765530700563164987152359282915842078456695814931289614711583499216031562599438253575553691254661757729707624225754416900822485220215004808036636080485188433705348583458815079738331689745706230265484652578347200360056846073124394397741629051156542417252997701834910155999695104737664756042645908067265034493814104849056299418791987325363576071490989950420919345888923967889678455942089301823212976127286185075574902057609493499893253273822860305662987215555229709413193430319738961323451722575559245378348987612843003821320206743929546839182244236083535210155930720358080686446742979949111904044724766472760513739917746060610916815318635494037374462324564227719193274379898492587872386130640262311942027452087981097765206714962574304381103686628318872322371462917744180622451669345147923640230971340841464336010757627637655583104972703640847679453919826191241575880394640423391267342660039582821352149276804430950602563287325153378997307267949507596986446146138257602873783214868629525893808288989208055171238866631951889288770352849510794377041997873113651203447001064673567992143834700827739687536991093118933613667914698961908104585052844099470173103617268353474245411467664672430048577192975900862327118591672842025801791779941769602267570765596846480590024412773142568207601011269958847583477994338382731899928319082497783836953614568829158927002235350450623465904184949508638730845152302084736975128814173929986798914694309338623834269511946244178599219128594676874503546245457622873270689925363164247477791963715107195267024697583750674338543220654104010560219591976550715637421478180209089816833589719129381526619848132088811417245516510423192864196459113781666349896700489281546598166083714074397759358047134310397350636794301888096574694540960253646801260895402477869911136734032205811747960103467901502906700634714385834137314635176228186817648080353020030857795052882754720023983137506421203882850336034639072345271690236687952274003354447713142848235805568041565385551096475092287320098461869611665600298191814335841603315356588149163992598689479805645460542576867030274029428599458950271701201899941230929829621360008465855798799214284334678360765160470655984613700056419807143664682091477559546955480144730033083620477658915164456299946659056208383381476586114066830303376781535762362941094193463904793879404308558424986754380605470809423265879301356595035454071463001052288325723398714920872646383306110405180855349739090684516823153665827389548277452372083924915407909253531733595057620832204140551945411788159218484900457329151527088678576550328269456583687454524792683168560013451611290085274433112409935752078387933991322859579639581018106167404368027579342589545663028316703319604722098561839702613955853288061376265788146787349265171551440006603951545287079673504919341960036850996841846716902355252083351522613487414927335624932723066139838203680523997897002893179332751460965157412226718528489931693725027603854548151225317747409805205770152414267574360909703265378400601391994068354825150093785966517538151238441336888931099496751829720621404406325076308535316408360675645679793993114970629174202545127320871920634850122752212433849061888717217863471002354030986435983159457668256510661916258765979983082718555627471093766823358083830098674627543779359176830519241737842077296012591364976964259375401808689700235646095748409815136367181101327577657327452324747152940411575995397278364689039765832522205042350826477679070786453949346118032462454708005757678349725664173090624782684166744710094143153075267816782808768090183597955027055050174532224904000997592420487214878384724077282383748760672872374471667470908278306722302115791715882480521657387705932428075046543733746128206905684352492848682713061251096319164761563285549540951949912251998544740076236692694041381787296911138045823713432344296388029674153527680949577335473239382224753839206876998667108047741837031072004646763176404026549955480855675987192831315114792909944009240112588229995797189543299972128499400070142983445431404744221694461917098836439449291037071777013729326839086315862296169306713509982597271063138199333371044990125679858238281553821743844680369819114664769246916782142157398749068381353416220678077753288905618402412882393942562577304524090584822329681859162682255729482924574134559283826398597146309735433933700269104646835478841662736162591056438689832230244628451666434958256686862125975507430510814296886570122480024920940734768960156287258063512510604731151930211903777658587766316879894549448528909492494238906554404602472932988675509398640570883450832165612306356352824217544763176394420815210017603114912551072837874291412907547131682799283901428471808132578576006772617608669017898623272289596240286930835000724701175967041341075423878025055296890302184208786648033170854534578235379649957560988104279924917818096580157983976541644941923205942527829263089441896767861946998109593280368817279333557058129927896007502498130605178231920080854764080373978768636553983068459372556972726893731196560394495376838948009689156871095568674448716171345496571681015883135941249483629512547267240063050389779094952680402056747673136047638705837801567924377264428771324788132330993313636580312251846999393376970542150164245893678482452015161694614207040059752205338185048089050491335993811613724586868157311177026727646920717839990721532164693050009103910106729980968883501368997159553102151307053037549239014515688356491286047339337213876236852464950960636258763964921374161938811192008640407867827444626702803471710358473367635804818085185630335233865592912863746432676865619609850744180431328894216887962826629787935953187348328486456261226256936202764788664447271003109362258963114964350805593290871882398497057421571326031919563324548334777527651285243278607191575878824035885995802596141458514283674506339946299028350960384435559922741135779158315716027898304829255413070843930480786402244300968707636592884709386929380995502564995783782273979616473172709334414946202242903551332768776521950613468022526896857969390492638155926721618727978469926585176722487404154102416707855188837419600060623889558946464835806123311966399862260467004034876248626044694485400915143144363239334504487754128542218469085295967054365106853950916638072615374628139956995528697752973102960198477027228227202986696002635272658748162405029511043276983417755091572249226367205856930746500246966871873576849192910715083486883955392932547510345015363638712869059046553166690038099966314844775369319497721649316730796710491150314388007488415606497682225048511974858990134669069717966790965789795843496463218645614756091329542686375972235548505625524944517360729080044566215455071223801672045360167179893056167533442292384906148997069484856071600058402450445274030816569963050069781648522440818721954896766055669048649757138497033516409502906708903359692167205086300191224350885993313807943305855441926469603445057833081900109191093921548318058091118905537696826529524778071644665613869165668549424464212272118029538470827705150467981251880206953531261058392578521282960131982158127458249190106075958810234180906507265537674641236122022831046035754931035327948984206876592553078231605216992227824297929338923775044148127556552461386026170390296197991354732193054270436539835064295590161476283463413448595767606804621459054137611840629137950318080020389870485410780118841968130349377570866314782665408826345826961065038750904770121227477372923433670892954093897739622039468248150420370617666942222274653414064436614531573161336865719781594916683377515484285823232949386191438123465853024079319708037230511034762086833087582307009416104211967519485931605449936791057163462200364735101318325697475376587595085660187332426202330294202436080306027517434444390326637717501581789645338995345499113885506466176759398069610970133528150524904445821890432319718062753184617457285802856160908328985270345144770886823608729189624914362843479207744045303473130165215482559122331078233103920491708080412262279802418034228122388357926236425393172796098941639709427185720622064522297896089068929478541410691277750995897081394575448906068139708143136352757612194504071751871908342201268750414445179225131903934283373423009639015559569889553437968195836478132228585387892217166918897624303400985324767199853602679090764653160164876940921042807141364757936529399693203948790166641714400962876838577173547644389470955082870685013529267395801959757917228961825711623090305256431997548897581404544973240392572749032090172915579371922265283154698384876760627133511891740159929905294846584646884175684129074547919102687971360863691049232438759492734909239749137634978613504353552469559517841004122286270491150923729929311713971491797144405681204123698488678903523301219884933163821322845078823027929207925902492939102705415791034279101617489433797979448092012750457076158790100144014191422901849429156743664733603073866862689502670303815320852440741069230966395397032826822791642561219441080269428792648586910403396570624376187240921531623890800961359589170250114565613523817229116516576057666244421875919711312708318023706659977595424190661181808446061954565981566920046389559185616857444654571069518031132542285509851543473651299308739129012551212349109036347957970181121389184500968299585948798508191892598555208364068759325487821752173859282145996565446154301775661134618262050804620364882282212462741900637190226184742178234231107630738162940697602096193753506793759337630795164109814602747475386464966204819896620359073967241258468616224986927469605805788644700784273997129045029339547267722684401971528522579605190023129419878455566192018980052857733753203821589957876395379978672165475717368319126884487510192884442243892028950414191285918054720264462652158134822698836030584710146397828894327287868553494849964869686997065008542682563325694926073064511867312172917428789360161073209500846390797361738652219260828023543472307770005405216084641680819208120551948717716562319303087865637359620156148467426546355308133872196948873718380991038616496427358409668596061937864556738665962779603599802989886325933403198151003876110240988804850322755180578830227012357506683960742017537017415941514293077746505804778739852610192526547312297608324102086763697036583431210683588513052261177652656316881853352596699432836209521171740223017598992550072492207505855586885102473213745036807763444775330791373151690875287779666959657318924908162462966257131773865114468393742696770484961768916920475030870719210960949454717668380589547639126453793997184199783776732806091614388817619230084852148224026008718294986949684669223419372897722736915439289030377180405217394707527246617082048276721145497437869786390555035347981292782491272366253844545005571931422122098438864375064562309915337744197375104509133739313749179060331857395048974206063039822461774304695348637877578838836498458553396852988325515368627822849088708493097153781199556787588735629594426090480082012255343680740524327011100002799077383402201764749242397280315510443284284153070815640010072429689949046771408197272865833238601817432087446984131217584853441479729209628677506400974346879985781662462390651148627072060214545392280566413156036999848738301253737557991925966060921274965445056845932687387720232855495111233798144029599298139355659846519022730136991916570352155885789401123910993361045436816635807209109700033159882252574030902717151987249944120304486127191808709950930702262626460956620496752084171035889556885636487692515265735185422830632928045358142198436457169703279981786984288109603701445275306006079352824510488655628233161531131784226247971297702955684318264919647223500775449949524900362099007171688533128718952571204280668337006388503673732937388963509166505606464867614646587459878398881803579899834653375036242390080274048457765286228125051498038486127630672996648497374062976989741892710002626206542465856927977238003936670774224929392343446682348083297146536992999617187378328693679234767178840714089827302379523114621069975754064874907533563675534316360385384663624236966656288106013738442750581101229757343085097779409473358191702610132919267117572774798324371611192998634491749165591390607973344657925788691558410866688075539354487934896848185784493290705244441631124954305998911723427839190130879034190505944224268049529221090634817875708141205813951434618001857148486324885786396648816234983332379767380955536170431137196999751623891521819865698627320185350204728291926251773917646128589490451416821627275887186647297354644582062254810246195147115556560025144702738196119215013099070645640920585626512076091193097489848856740628798881088257025555688985899368428287971862914236459021511860423887894406091873580745981626767756876077627390540764928918935868089197510831473572136444376458885093969120446532288317125336482302107337704562447252779497080927696180017128186738881360410408452847872831156182135567922463186653018747107556964760271443668955823741926522239535018703324608441595463396239759951754861569565532626440590976083261853326672797930703492710583278878343713532968057580264398751407044478799549802082951714258250204854572676514546305922831780058067989424110287500209540743983285189983512476442671435629780238359211366405488287386003249168110138395358848490551109705276579231519352303256618488832278834749681070947516864950791887432712820725710072741877511497579094581744503354410494215763747838071825721784178732823068563799044098699239759543407225087074298410304155855268183001549240010574970752447370747928418834882533750607304736426624053238057642740804576827090165214260733743861236049952054071471879972881609418178604219690783898661165036649358430943981465089676668363026157717334981868835669562205848567027160496752886184595293392872406081243493516534736373034537275103366262760835940455905733487759656533051512414540875619642224005459503234027582822466599437953698675813521832499134355270832580476451631436344220413439984723123175021751933787839050288046723439334012227066806726513816665391472105421634616143652269611413430111054729186419180198536626247078467788845648431689690251173657833719354449473645729288456921261723717695863784225491784145192384913914309914402923480343287053345832259440404468990094495987863441237907280112017381327316036605939709096033381137120873553990563161519324498050827096684448129027291173700947053319256722206021229970556661272147273085051753966763165483658940268234263501952518462800088175917974690229737490238033750960640683373868510051382157353279790906626547934569643111263823636716817100967283204479881750701562280425300892155583587222847067976765927381144443504835098647693900342726725552496684320397715429804015873073197544345344294948391400528665239586157373172966291132851546311469927385564348881581104978532301579474375149823099142086656319177700376084152012602234578703079292392798822963981377257665823466755727661321394195664364855064673848989993285194271686879936386892769862127970508377965354804794650644030347351414213897529914038026183208959501854323613135908105205210949957569380565738819185175001726826335786050766654006582742327736377270267911587456781311753751475625095472898843711830087914482166656937066156105549953941959830161994862238490912945314448803204696215831903744792619760985265413702477796233092773076061074534807786028483500190745331829029198607406672859682537752711415833706518064173142181302607833103307172332789465851823116320207553439355152136656697329263855506265424658391107261180340760922620072812965458868795668930665462190378681736484764714106575684821673662755902102567419626491858670156189258870563815567024648566286736015919107245720834601281749550800128722726818161867260798677195708730047328119885914605546410452380045188337102417582209722561468315960677724345961677167622187340605946312960888959762706875184547119901107565118176428855907343602183870608584683491665317234523129617509446496183346771890546896857912186252665406705536108517466351526160719838975011302543226113909706408258488031672668877904101129206009883878393237263459537426542492872530432758106840373234087267724284815593548099711368224041009701138766949031567639574344942403493574887129760299610900611481250564360607194496642824592287265193790121954762340283867981676020707851026604334730485534875219958351319052215484517362700567142062718941937566905688844969314865413042707638871771457985914245479674500438797281441426055578762177369796163410852338550605360441157726142455246493047361659265793442746014599860747205995319150088944268399163652957590172107227103478639428094034748330724835266661901577742750822958367453074957544567777973330591348500074988196823764636723697415515794963951808586574733805722884470266214017197273038911732344472593614153612667729082032626872950666652238813197541407817012372378972903676133777222268883400738755881472283311724343545338796014080415418498376878511873944755498252571718267845793061265989952068423981476271211042555003052734881836378072392765356656650262593256889369425461607102935516668407051954020823355626305533232555365120611082372768523045730329818092078508911395830547731253385665915454108090933960556288713078394906483034075925827602046309598599486522307617716046756955104868326498861167109120920038697739152776090749209168300748768936369473657585929407949422286021115720082122723703831283658952288803553815389691467321038487450254741188067365432722976963999641923768923670571249766559580668106017210431060146094141335060093282557115242294261266726088144018673746042007902554510010947687457731312631688633989764982400391176438480109941441343774342565814977351222006057372093703113512788142033157193829338045486820116789408519027585948079559461815074745565237152645470143726733543104091948782893581250294244550494964755177227481861313506311332137075345400646337050431745754381158253910843086032434178638446997564339151073604744913245923031072337494358108674535429264203975879854396759435913642281326384614683176120533320266997581357137724846465458816517170110032757900504896009094190769553581035966885556595481477870181462286968956281915251488396618239185408882955001813736427908743263245288959502391525741614365173756081714921295779332868598345317103625897508526402487764064557494395801496995450215731292307960723724213492412869194658319938234335591491388778857966607365236435637612113447354465736608455635021484740646337501803038454980605670302123551704974677394556443482753462396478496131571053846834191787493969780285296783166597867958095980949734498647209899574432464868638716625425849197279582497490342662010672182804554921717174264439249579368099654694836422431020249648934960340914431983504337292798220249689243873323714417017777727296350156645253630226118547550256985650889319569811967562575865631111284538949550892199703602908755273608212104740603030389937662652479470593497866359546950499099770003746018235254316928139316620040104684914143954671609307841143001303860157106668189573414602279014729130695934995776858438926567734146604283195801960364712555371945118412911813285591728145238081156591453623234720770212465211113831689826465261796119689021924051375305604996095238720746386281074144535036285064758271757367472551973204779510320392643644952111082515836082602595044478411391212547727601510062850936190948047129274536914739380433869712374179320401854293040340908006696771780318850489532827567519803995620937473733267019567883928632348724435267383700488066041835065151115508368717859360225415695170496487404332954341330244167609563199205409136952641830333629613500155600970877838271429523867885281845053656850297625594821335203797075477536531214638065750829097826144379601510850152378489601792550819079151949835146948196613239684819387887790243726798576769978723911330156585471697578065674681320581357454919737905935000971242030156628211086706775154289125938367538999292401716338051364936192795439560066282516887396247064600700456493157749697010191832706956338332469853875460919637587423405975515651449213631883413426130210917456718834883676042998500645115016180061980566333301212342925141522451775156419289741446571196969750333383731280883530917355129635818525874676877837506319633207798116887963403939629749301096666842349561949552183985896474912314686675713849502269179120605179225734186969737008377129924129661431380512324493858860174075104528032363752868233501753168764501553546317737196202091708131260463777805668774493589678098589015130194512940980811314540844485945478896879720106750919091021486689734581271834154989933070598337642373491174992196267544134428032180287291773595016987263479044319971707503992355747799897392648287038541883833531007190013505848465399030224668985675447009336088511460837253332615791173272194021279319322549197716845769841721426173387483278680210344297396089476370143713096292897034778782994335816758700528589143123654509230205353284511745956110469909222297557081119385764141831667500203425177928468680527597973333493392731096688592472017967789909132635618299690829573058034390730586734155872649364404098886850665944960918165891157372134636626071476263071353423877369600011855272265837276042109703633119786460292826908785095912036982257399956059457940816502799071670481735273343618752973546938490702263083198340760305957218035571532500261101802409241451107047876877433185744239764872393410679631154483357256054802403489081521743924397865359694386143408394066721215303491520504592644756786346118239157287422825955931088414978674619341101449684464754257261588562975072799880287571709853781334492405455907630319290652754995964675408387150963817643211690243808357519322408448407475982640724845574570016541885382427591561429861388062996524738826668158236819472659486258124687234525421286336469014433916674205785544461291426855758912569960940805566252084809929603061635316355877182743770117149540300855606347397471869810301073958725790755493621144872452519859516161522955799539376563576805713563454577864242707853435375907580613473610482610498626189151624169983705991696770556270484392939454494863506361213701603756056325221686065593489701817407283132787860090318461052546174065987753909040485174682818469625353296881105708053525808718332907759654658241129546103727100492612142752190318907344179379128112031647712539562865718443069594087468178495436171717655414558559414192026073028334106630781797259121583431238646381859090775316852866679498529951671704961778135280127681722479378769303009239845519602673490446167716688626218308834541611675366514735118559764885097669961519877236379576769659232597069287483914291381508259154626384754044841570188258464376463209949047650934272724163646759003854596911473312428828293441895094809088809347684393440015231597230787508348716586802180230158551313438282566926369327742011553315487121548370113033010599342282491846636580787605581233190951349866382420683216210379170364514976314888979148684520295248281002199808948461834581333704154490351106042489591218832488801946092028200216756029067177726156769368219132915770106660045520491093292973810595422829501393110074555495001488376874894393154599449484859655544429909328278718268395608462482857761653103425385067823235533638013464518906019853415748991355975603536631387042306479984667307291884160072552444897543324253498040188538442766465992848764251692302880446199757136459060471174179588518686364201343365983385126162162272608063433489347315367106541057783067864354583597588654919431557958600572365982705991998030871000339226618186144150516070914628130215625298489779659914782380450037704312336852999733692032919955238062619713863938827441556965548264993987064792005233068440823959002831086629894054349782103837643063352242769789537945866665096135853063809838061024552978364435417441123315593803394214744649291938819324270155772607751059197894899783076842419889712873295058349544297504475536097362759328568616431922878296842328932396295572266596976746889697478944354356476210594298575021906849662423119563886904764973686304442509240336647358211875988401022290091171725055874847070435540996640184347337018632349861138401515526902221507002591939974997579804127344139397598537321227994363066927847918722346193212479904997589701692029681584000369696291065485141227627961545144534608457094278228786238718025136346482929262316656105083261236837363931251418214043003274462008959243649393451329523110756978544683950959802438205822543749046291489646950705530049631374776575768863626286752761565373575914878853927527967200648315951230574757636859723294442931350207506797337675645910099271065100408169577427135523918319715818580013275312008844080186093864431029348765760671499997874178167525775296184853785778091233265262415279578853246286770892670762087349592989983951279454642502371734142906213376814968822834910309620082444570420731598602100032353494434901408692722125255304057924572111071564745549880602867745907110580302416978119681169078854530495447227668674636958369674514727003658180466827478694241031140241975689847222788427993358190844762493637638765150409670764815524659256291841631115188346770936565357120724716889093449337910549715619539354289167817313866512738729980732741026421632517171153192188841051966121826920246246514322817585666412329704826890491455420406818352323330246017132472760363577990385946407313233186551028863513502451596905300382997215107991027541580716457409270248883858368040237462021074706803780388196496600189553604231999471519955189616164425024646425954804156643537401244101186844051710768252213429791362177408949034510109498066488874382492673732254893743968970270014137137955200863323435981750629509818481314800696535748374271210214499779045278712999951719148798656458030005925341242541763680184895806724403322803803844679062521166719207403205310324620467304172896121421810255422736467559567017878945421620188647744030932825832896057920435482983998432291605783313818837746047248762765720225029572465035969614952241250812543811866083015675770860668743780373177641916744089028385033892359821165507514068970226678622700087783306745343636975919137233060758811995960997167035268441628332024162092304586861498162006532517836592103038966265664053621519582070901602673570802941216637663549177735941357305299444684021044162182955295799110622914209139940226641689769325008851534761987796971220847023490722338876981082063025330537004947850891170885064649514937963541560976012813528488171800327628096242085158394055312608446002581256401917602195912070809697311024136727351454705632005531375734446933545267892229086048289083007188402348054033674373605446186122239947360612937915815005706058951751255416771045087637640329413883434943947320939148597343240170617088711566468272351952055276413531241599427168793121156100134405639364977857903524140575419887992082465089996161689707517220187072975165776367794736592651814424668328756000218142276990116500656845234904261330869201618244273201052509056657552392075281399633117534175371632349466860740416745293150109328188697058581536897893510391266093195982859223694102020293108043266777124707293469431327477720337468591082837892590725576709638746027965149462688411993226177081286776272655870856994794820077148330304570300329430075230646259984359455668429881250889189554605807220999225545120059735890191079219748410285940734005747555512681219046475059289499582218457756237901606043067265658135157102130080515875707855451697615107868495293150849205761267252217896468879675482083668986938070158915942388425890792894076505434440329859471403724657384102023607213112512475394489021636441141869077629253413872922600653029477444538587103401435161727822209764000883776574223529073662114315575214284610498361213573692690110162571964011755284075476148623831464075695719347340438793763732730188962435843016413554366762079239960703945112173782246198148336036396867368132087167611075249947158421574596725605656291686947035573905564071757304289780676545645766396711770192398296341335940267275034172975142578508269788078919402419072836397131018065004991328962310145725294644028606238079742327279615078381401131224200187069243821953562117527128323881381529641670513241455647805189655719711894975601259236761047258944035949606461560250000845495465649728284452888440421653419490558574204112776994227044085821453176607913112413519990537940503699172518886580361017844605986153005795903743512039311620884682212951048552358041117400589204569264300838127684601707199323088489790400625595928177237266046841736934410385782399835965925193131138632467578080062060067412691491555672814736869442531633488738306920655133368131274011040047003936840664778470305594567218932952768453817665761561697603733490390356874758365351947147950851106162395071962912625238542105630941001838428256015562143459688306300493457748926454806077388344164231711895913302680908055924348068884501845952125603931427647978115459593181351006931399628268735654559006627236461382622522736056549338511252333749096088446666165671828491887658618959222392583989028925744799888953037708565507432229785572225147798737630631687656434916733207576497303962267535299126993149773555325753928864637106216952210486123274693332236256684430570214222571795574580418180050067226809405750093525534302745023265833480779141303046045303784545936007003818261616394136876514012960246610713143877368555535326381995782083744670607445991048509207280668936643373486856100107980029295519408780490421765120400850672743071973338825342820604848478568664139732370149741592000351686890485009402816524313765880200011316495430482121426366931090763156637579440640239908764599799108611502292440882660209345172964894597016805701393503382447435255113803331801898811024420758628303825606292304005141277202458364662967720724738872064654847160435666036376000205754503448136232342568137666310801909145627910673884673486487207434286068258061152858266245056190618845389548531484286240154012834182859345831333480100829300860286079662079760754973092429417822224930278715633003904711128099698801444572796065369175132706650474542262668662166951888349202133892718970389954216919779447681851339117668598815501414709507373173509437549190654135514261155801963100022310713779092026965649774846951044573901428657147618129739711958436003094543910335860033920812935720035583694909009040614025654359863024151899081449214477059340640924902191873523000841429404324641203763083685128322661922824028049833772571297961830715495349702364464081817729175633051720768240338458658698173478950496301743086263342358743498463200112670362381111950269426053615988154181860556683098023562331645893992582544111240013337750735197034236470226216381934444917004372789644974966384628864146341848783165174220580380892426098590293710048180733755846501958990975184144406023428338635426442365261269307776163994806801031274314132873451457038247113070636526798948426071798434630559377923634338694651193902194418716398513537528734234120188994048765774895068391086953316209541332137715243061546493384582692167729909081403502537403587551088386725979199729723940660106555984081629251249758376826228587679807364480183174204835085403876704227525185613109794781408438675415000325521453639542692302690650972770048480755444957074211675226143000300428841746080369875702305943095402634102540545201229431665420107851927764886282762807567589019440216740967729996901206936731120313832564788975271469377157140274049017815341305006789808603629661283944295757592596565693373926207466521868571137608076859286945929801370421268761831230412482626870326847059221845140120667484662383135800775356340117969349722265256657055412131072456353775101451357160378444062888808639268679977372446361390893108747612936382656886239701225423360431055047535372615841103278903642714193106344887738989150842161949827979259746607506976212873131820632537214005189854828316281138365638011418869225808727431149760538190196687936084736875001277994652281227270263026726676628042331374920523553743413795533647068376885475258418178909677158667233982886724345818641478118258583749067066519723750566751870885563225874908365020594239139067370331824813856177724955154776283423394173129132296475168492092669174420804693976471009731867717153377449207466588026324569816133173717063043186157639309440209150106093757246922244381683713757246933991543777954369868521219178990988976576858998062575796558969684773366642244280869335984491703522980001582984393201657825571083241482949273158092864577922775606292305274700193562985062996448684884361116049128249579850124882181807456155344802774513862103897677000934742386909474351704218901856138742410944473535912590664438224881553392152733942764369008039166115130782637724320605058138195625058875500114093141480234952207679660250892040262689533517057132370134965495780512142132198470731849342197180191203386049932028519306082728832046837696104248940181185790452386312225635325221504093988726042891794357902289061978297610754566636688064855234760423613781779849331279005214169146219973472480730686597673194806881209040704444683653844825689164871517490740482780940183844426954050031216691624678796234846340861529321389286615637881787895088049601163092460527640173150455468699913388234767739157216450661773909605589097576252602507341164780788692953819889210457472524869276170055691901828750200402767508916369251062498541584214715647006625961201637112962855063501987502734524408314067535255998431194991290968259969314615081273420868800055753117900580650129758063010782270425666107339310812440477242771669536870869598764104800946029623649723772098775577017805016996209720679898148163304257000490219952089819224380409353174159415381978187269079100019997052754418307157387871287658022108649318876065322271898329677814209909667801909029551864992139511225425538797260395078108155460166581994727695142173619868696266335602180105739076675884713254414766450524401477685453008289153799054328478247958689031975493538265340821251351539825447069482420665524541613746633997211307495756808682847051307230238716086879616243930509701867114845653244121291277448236837822658178876708067037996041242837067274592608072963098506696251060172456681312901468486532239138939151654407134165102352233028131165869531490266888601081070130069741527666602117594090943237830095926914034809193700278715865511280349694702229119681334041753342563044879006695128079882838412411170564014902779017421235855296943686306642645335103834794904037741693360644764322882415300410942983380192498245633421903168948054192186931931865975185504388722030144219853384369465494484068771564765882151258284565402156335734324371634565996514414980867626992313718677081570736715850561859348400377041633168989450035530346220895791338067885193430945909197043277047325676817829652514463391971537833427687553085155283083638701290659731354161656481408328213997105010443816847524022344480973301826024941651080540058758128165857298437347309715893861823544729033777259524338394521407519825120891876176786209660117804098442282095034939831400764351971996693158069020492031002581894932991213834801809657399559762823712890718655910907763208369595229980533850103518213466595979609442249700248846569459231987803853320480646783107552834416065955304479923273272982985853832304469507887524820904608821114037661437788990026463357067795961793892254344937504184409728845979509966444885115419938741513711655098961664183487156648963889395292576815243652955326201653229967844398883317366038821625760384563675807974395290142038442790330753774739122621477889453015996544313543934298570551572663690617269981381814390295350899115625561678732883022660974129502227185879492011262898770013412778775808282080490414713997758806959488508121425367167663006936462597025915998021202910390463380618910267194794598439670691283235444414625672160931537218319466267481854243366677309128647062874097771890293968747484918608365481947638699680063183437310202369144936488522974459830802589752723663661031973303276878145037470515604436716837389097682935389448070577511125635487502312173908024681658463727840620460410722790252329753776219713175076879646521622814525057355101075178525424059587785447055939883818245277025845391658148369808382353002895902311605561806441047348470449446737055889795652847627765994855368439120272071809886865246270087272398573694209149939653387140560994380532727272546702583197744969076685269774933465828186796358566068023036595823825953780031904439364370099956886087806658281763471523189293754179356748599740738814588889387397682796840105618168151894203078771327447847358261408977252693873487551140602908827786490839150161078016947744657377942832170829558236249576805769483375461318955075830976670215645754061564878409676651130060056018217906719409431553561928632380053733275593971172734337047526100839802273348719136542848300536444202822943527115302073105514517572935150500675312853456758554631496378244941089008626735427408981851325548072963193116183346730014351685496143301060646690841972146036998146609868301352205120348968657897037799608214242821597974360822060836773927976958418443782767277305005845427301927525480432395903096376497158316076147044759133352363367006086205991801982978337426343823855701924272959909046447017101328020266850372865758226275151049139943157101970337179102483828934779220066391222458707186799212074739939544867729197116482762629516782538067148899475755871006884106682269867053535992124978571705145846747821361400794732610773848585550432287110678086452021982197849149221186556273157468097971758112650610450434170570639891055977534595416637323873501280355373854523724663152176013192958504272226191857191439173741541407552563287736891417521788426776086552708199212224583829855327465427010091247505895121576193596713047070860804621668245434547650487979442050230826936790943156423486271754613013519828130643737750062457774474162408744443963233060027303975430985328428234594627292071970976789944225447977952602905813813617689735382111368207177368320909767112567084693565536178496540880500691967642249395579207685831669280887054559834896436017115206468702991995137257748317602389292843399134470452759767427580634498181275835378314780339310583680493786012563013191443726113095888635974909262172882052760430975740689125226693384952375821558406266857014594597780718433656864403887682226198246270046826326820005948432796311213947102940175190295579035940749474141579895759691696823259406937943995715203567679196590740610624664321518214446592996351916470072110003112809229577940798242928457478280613229716176532496623684902694795350624317011998001777158175526596059280773584284030864917018476944660918732860806391724575565216453360494429126110510015720609078619270616108222015737756308260442878091811743774251510159633794183594152820645877860212325703752029419091715259023470116953733485546879214581032153072234752703181190593298660651126577283944983772128753332163858736692232360292283469619026836487598675336960178268119669524277760345038489800082297040047931275336775086901536865270441987132340416980897355486643793130931320558035360853033160033810287408273537464090279132605900499989507474402887971650318829893514667372389236125361442437361112994534093637808589924272597887328756779004796439601057798601039038061130045043594644101543227610067954404431214270634071589979318728739307155063513973345763046707354438522791597324639032747075669237082529849567624579489008991271498492215448699150046744106335816384551580480688329059571334576580222609814161618916944140474826546119369844679348434008601365136098583959200121138323764998591876382154719710424168791107292040907865882960471432042189368366999092845894289396658458191661488363788444688023685637682820817653427118280031128859239318875527096504483116093289506547532630910433003422733013309520941618497006728503505428760560197435315742591516898152352994467744995497843418387056922708093090946828155584229652177145160957834934995819971353841028442066177924232047132202746145096869971934686329339839942131422404702985188267441863027634136960263829210003475952251590354928309939571684332443939626388571733578064429521377966870266020751064912240991733446816306813947459549371490029952141388489356639472530624840458932721138567565798556004252415338069042778077066186080511711080541823047833112808122312276006091318705017666243678960924696160823273289874241968649447321010760979784210510993837452133412725562055609136257005378392135698318737538868127510327620327117405331463391289015880530971841526738501973154524776466958321876233932147133981627655866936437371048199908617194053053945450320258545833130819762562799541689857941023521018910641667748497691612182867839716083545342263301664000193151692138296596638243205032277512304792263011812109846861866301991171616373046729971999000219801584751284288075051453453724361355236294862893282167081906626446261256765581362661030977814678826564470640870156078285645346575026642073368335281912574883664320548995217229385046676977791239806261638040896893217530854945972046021777748498410987092404731673119791622698857440368507833966585562748471804142281916453526239116199163215721583172311635509892447788159746890537528709200064629030682922129918169897034721935034597897420485798540683612481797182665344072002821053847926390654680097214864581414587015886756918900362431813340010361818815617671919137020999715555779009862838566792347112106698196175481333096400730062402330986197295246368993078584674941307666403934387433684539144358422320586454845536841319836686117553492766689897424712928000444620005474719375184045033344024808619089206964905804298627194054019591445219413523898364871818655675499449865699578277877963819921318051592537161802174867791115370735246637785399536244322774094709493583768563283622369795218786149930230813562454960600020828027219238879918710638847585272578523960511756745272442496811391474840158819199183188410729250037058932194105336278516481921843793895859466657380349998093805405444335686488972819713814578044138899628610075464333962880622288936288371465471657119828396803700757805645874182226680768516477296893117819697319727409535591973791360025447325937215703920148748116608706977090036227468892028896667440436566179825556789467025718742378501808612724376828090216071323059860264255068963470016615133662456333851106242328907746842865321438752156913239946778157091070069213535205312112374840783254526415874624928647423242525292372544707245710784713667795685473229168435859445409806103367649058022138422232080548379863379988873115088197607379107638707789007014050247732195869362773830873871301676693687033954881616978698550398480927735763016089403318315511860160916050325713501444954946609738735686653163800368950579376131103446947419047389675210422483568413031137150979931864478491165737808494193711067071234130320694283003635688866993765221596760828680800037711269169484387624026260892404287490019587217524993454318729142761017351229535458935306331785744756208948488294860164549700810643099405365616277536465801869930422134841741662845458216703438830922310302783532601156730591150503058248946831632703651952422193543746080059082179039575213244214883161673326679096689590278659592013493081620358513579860773732083835968677733805028470348085435397481609823712412990190499359708287921807197138933117296554827220524018075796512771001669235926738605038623079802563203137729604439010403693514577750196494346683155082093807238156249517295940183824070464408760758811612218225770300899447056142175952927653039822560291803749512181267071574051120254923960054162228038333925291983152822142132762500855300591212528891641487207634650656287668547857029599805089052444311293893549173109689660281380358372439108016348437400071023704682404174237428580118045445257076296919593846335227829048123970855654450146346784013947187031542158004080493449224075175714403318701284351343644104376359309783112516888805429744616943489357437465777982579909092894215724815071098358309376608810401404991103862510481785474159492549654951817955937834668303715570307893225315346968317390370250358090554196495998209884743148881931830738572977183468876901422014251412796353861555581047698875900102157502553836536133671422841376039531960958943935591258915854292081075718511178626519428291872308702551074038251911851972659503859656328172275665889804074388707433944671126317685031494332306382694053944276327760877314489984809964776197914875531289966266057038554150692429175992849449442983971411319614279223466494594462251817803577677055003708766338551446657593653065263350040558038913249674296074212903546901197996784650469108145038722846268504755212929789548691370338912176088708318894218246725249626366958943930284733458449519902023432692347231445395710935216440853058229977302019110491162568551137849551982315291193990782638437315831730102888864079347031142018150141610071769564539780189018146775725702197789038445060235512675135107706928960441934593723756314460302777710772584979196461253724036175308672739026296178934921916474921603198185070075941249416629056699833532249986922606728593466709116633367637355811174207456117080729832665077309249369574768202710896673976740252521487486584832585235363673453669689576139526630647261395107780362508822635795164120157085859391426118106821224022967308245286319854006074951363216247497539014930783378852477840540286889844405430709801642287836261378998602697076555543637452899831282356330423069764579847018318595926599527632916775854639275660099875753243419880243213375243065942608146494074415330322648076000498076506650719932434947635769258139346907078781313889463736506329231983791206819407910379985550303955299778487222507271667294125002563362994915419038545905091650578293111661086842955651234494588528441778700308931038563565111851455171770295110666237707362863332928373968095980139912930000469948353584234278433161666045905398629168112609562075205757614375013971031638557344065446422913895893343489253153989050167177500575842620893491818848549846026932046082033423361398285150689229315315893724683197949081616820107724838705473211039425935097017634788646158244746537635149761158979679212308819570386435213995011732297177578819945097748061503174039985800704813030694711919407914308753785534619856173679539551078178486109396011118836419630167186038014442749935302956253189634691055192707312993713100606453501388956580077723218571370048864720211434183892131073068846215022677539728408845039034355088896261541891615593624630455636684649156449897197055939186315695730491558284417891615949820748416390342756895489374151047214241846328662735323312629932830092703090918153470414599948056288848398274580955221496085688128560839009696103418340226469167702346423467434638213800440530904903751089872582792960104487500974240123093712291288464374412350113448735687062542150105698468479320104627298554630298759418631447693634082500462770262138886186674967606012860150296482200514636087769495532047515479098514692489875080283586473001269122488644847459642956812469371083641700908920017891018098556676294002970969237837380117392283480476464310460376440332680158981416951378716050938093980165854531919447713609056854439667959494949128631584144929861630957633057571684482790902948777671705684786951749493212456959129685797312841553638170288434080928182599204587032882295957108065360614687454523764643329204092912383365977483573297617012125760499502547788425160232500273111900288333261126567106847447021245206044703906968412606544651658029795308608731183264934006492244021378962875328896700485794005506366794907451833746588804836808908877572248198748927367536486948790167058821650055183370179535400571521902321580084717135783276244292908506404285210393844459305228608081021315626868962074860986907549597829892147000101952078452433385778225339351634675850262220397055928207274052831732985829202001764750943597595690204222722691857452430165289972233272738091928338118813340438100601925089478269259800946213319571930305218803604870661962110770153397791022068741805822088205710742811632489080723719461960825891462221932937360864811118876204440730589922708897012343148597341432427420809129140456452645458021070065563158923835445477640576301855648847428953530664012950534949922794869545267787430646793857724257033381591867106372152224791638338115396600983334086121770977960643712276009424357183832552870719978842757183655171696608811631618850543987492300739123733656865586571277200147639165519131053547473114752226194802751722125626844433948355849700158022718052959174842294429746092122329615294738979638004919813535725549620423292719542942219805520557285302612004955267818616813523803473714759166308895628934836064508096728878102771986955831182814541844529339901564390046416948835718235041897081735716163565852052253107429011360180043822964636701256310440859771314774703094721446378107742777956040474662962853277802073969648589533747399497082922049667101394922422215265867699128108505621186563283934354791077421163482830543947769202730543424733940322505448090935093939252618166260454673223772486743433618505658195860687070903645563222058116674816127915780504258042796281760171967236556551122137935430486685918676685035614966307662233440660601070508003865905341913604879863771285232711859155016943755740849048209359579327792701551621733526333290355630350268827240808241746472690010172224124804628314627080108902751132289324697727534132728221217137006362594373740303300959529225657846770206334321250166079490410209601580478415863804046550928540735403796221226596619582673272755188944060248112449485296977868962555721616713085077396143686145909128180905124861670858877573910377945199256348383497571932072586406217086858596635814040058980669922488355116017737570730621236819362876733958825670453880260568198395408098575707957901399706374876802593827119637105270404419808796724675585188481208960536899666062737239112419709847568077401557370710315302725657957840926393662318744713923529568669574307334262501316759846331910419399447968747780532120282932686506955033738298660111745895321715917570447809307456727041006679443681697953412347076552616440908134682953118687203537782264023171282381573855414836447223949988029544625950798401408859757210701476966178762058237051542101979029598390341426419133774182448574039250741745295550142662834558264326614479988221874519200448293840449449535391732295296433078079275017368884799361607622342695309660839408401619125547631458364424012382557861590422818729233203734106209266976140409771709868004425110906656080008189041404869173882517028343451583962952506095798678808799708406461024677821080961581202291479572436992843521777163545011495450491200540230764554537049334319698277534826318362981022484030306611238512085245781505774820479061374392456698859592791803163042848543662563671845179935350573078924549444822347216034964625604674050500544142194213344006944113239232244518220488251387653276418776667189349386961815133120564184758846500612692303274276171387952255815176546043077451510168236855676735727538339197547919649811183037035834689699983639945693239808613151319390832170264148760014866179806679419344688737462630654279932734757310343157073433479718718469699474037631767124629179964769882213137925975099038210464293864946719156308263798185065416511274316162706395931402166111437267835924401892213932540155617823803766068538845836823208022758893975581413769388256160431687321032727223592323522685775884589227529732567788987987226078733494861644203645504685328743112799048207790739631869056372388412097171239398900337793956712434094967667042785013618181361390132107288575550841741784291471780279331295587424185378009094181074933653744820041743496370346311773593938765252287074170447083968580773265276984585517420509122320983297298314162135417026900356971300369454029900504098041437531870232839907939756357176448174187939368189914701898561714382591616434036486211440428179060672997215659453235225933913433413724782300400689148714029054391769404032597860527187676201544434948829694756243769141020907100768650346953872269396155214455312427175747001704385295114268938693430419541580765064296687494479268599344622147085031014174930165786698454514654130029634436710995484712769557595128465270386655129369385942337917315699251170210000777280924979314457222723670292208088101417323473161027314439398918945490062196254412635866643428054273521385884201043549947033040221314727941134034592544871164101035692666431193841789665785139533568278583683765727318669658498127917178988535982493842708982116416029755161425185824056072951177848848742232091658006978220664564940022150957751139265295713727064452383394638349696147496866594513154400091265464418017578702405143650313625763339776658011363188139730601073848303338284581817277679453301428035321480847774063489053609021022878019987093830967998548544811799975627748089109423634195679201608750627579130625906308722254708582905096580672253140309615610321777802622448771488038622721159365902545172793115981494129914376265298683172194374730371809502197242425610959746731495707313919092982560542520117269772757496776381997762455469954054360006693345717969744577706133378658639868469984680777194633870404406304407259033541861963472952921363967967903795532035586403147656950819146827412372099464322025498790736286129631117094080833052748191691865363802161773230083770459495107315586906210179719470156002472975151102136820878185113274477318302734298980814140346227783183015459439555425157211228398739287306594397447523203856769416615650266297434639672116005157901795569068316223560513421695509643800056880354900565570638012707982476312518625587112491425754325850781699469179637926110163845070061930739387968561696092952353636336700389922000385273640390377296941874316097884189376979335387834690847855883761951520462684611927357400565904609818740811442073767400540299569038824502040218840218096956424938223579093211814489817814315642627043461393780587243751756906082295032295053818035535418184437652433013702553295051289394864094829759879189336701712213649260869964565001947436803809862986732958129398176896223523810640431679949705015094117630145091518433284638860600034889921452532214190095333243853341680335844081162006947236039622568256361150230960153700790389409497674785730767582994303792119022741843917786788855185181028327329480089085821888075885514621127160210929113473330845719040090948145134639011236430095292979317410536745533604893029699354192265908620601111543035191485417490983237648942512218742231097857324696803740188687634241420289013214739988161728272678076028549398823746490422085697397062210680375530616403139008981072488151217931860643948927886895108137193423819206057453163841580150872933195518726802962164406116910679377680704582619710103733757127339860423608298082840661647896121001417539255897499733056650800515417952812353355223561738120765980388595381734274038176540906401097630875874983378432616299874880792276243491507735272542476345412009461917587667048093728267795100724074140838667079823186784418248304571681126218058550145401734320360406318526746982296453123390136016341237729241192928217649158704624980023703357359055059977346552814837893399521225703598755369742556284643731171609761690300332998016290835431706913345623676295264640817837886787199707262125299732377754276751465998052841133343120451044452261773648393884740357655973092396986025156958674680661074452799138160139128818506714654070249292535739075566114206834136205306220613082952913656379026439838256043240281882669948498956172127493072400285628163621424996254934569950242239917129277162564131302165290116386639304631240562842803578999062061509985829860175532031920580321035702891012315724945502373639600154305809627248875625988243222218309665164973328650858392217522394785332740535388496911769850758511917407223846615952304151219948731319856089522329547002950005426105940200393897981158643725719638828203282931603985313783486933258492564107025653753140434315621318937817188870864284743270847267504003997569746636552603241683986742913061920052201198665700662348706071007295369701945055044889173031519776119229371055659028681826558957555968437738365101796705090912709087599330133536902997584153446480070550016393348825466321441718444386444545876361133152131133426775801507681802031261511152868950157579226678130009987912858264639842444535216608837045349412941549894285459218027890256975875460785960195477618740053971756678798707995586925042736809141123791944097068101115658489242489330752766781096317161764988092981111649194333378516704835185185599152762225850357789801760176498334141351120499352013102793210979819538867239270984389667824624964904396140579764326939212830240934168825017205191834357653873471583613362430903991097204302738645107472234512804333296223767930063656354102305368839873073735961024366003285518702051597230141899391948137070429907792208623992539909380260837665240504726646619539863187612415319683713675110106750451407999213972882197577473742735917094323226923248800254228653060408678706605797807380404552535869389493886198783012103711354097958723916622887743257923438662017928971512714453208236990825900364846404714922148421390803402173745003926928562850563141814519793958641673954011906857257652654917140790117051889607170172766902120065638135609481717277392445387290681258384506790666240524274391159116205018496928360279890831127206978652069869225299017466473177988952339650049458597126419807018239560143775974267981819088858952962620377574983653212906603469924439501170767964960870957913565720778235949044012056330636843759341947360885409560340174441336921146009309185994844832377590992061370882237531458534423566093881433199153880106254249726491275892952016613545334909547224904384464223806366512000661774073626960757059385177359773792720911060676136245373053589652143743324605327694957133321797691856705654922911111118326995246612590363812454152120958467925076423566458533099353892260024118333365310927029012672418055672354205998551955179607923130719555602858675635839128587304151836524888256305313715475979827282758125784763478113984354460989782929070136317466160675770143335969373849207842547561553502490805867267493985113747615535721625290547008132456321166781485144601766614443670319621447487983833564988865825974644185154899891863183720554713847981497378157261095118561123460339408594797009523657225157465326365425678800310070273019426394108906407294493820710774580438652767024877618681910692513310874841196922806514495095133303240804612240864268938428565416712065830956983335881292215441075659379575436517661396858209393720721315265741449810948221930048623536927060311060354136323987444582068557060223943070859345333906377041620704911609610159797857704632549688348665961189827023282526569134057996931597008286591025092541102490784914135427726990332717945941189413104626439174800552970760875036772087854993924266577956080421625912150580941012041420728463193609492850572717685039099247118021447883816354395386813225438635977079231508178153764339656058048153610473016849723257132749014278287150130377824925906097683962583156637201123604431599180164602037938685797852873213392792082641485578358493719359877063221156185533526718450262437930465817595099523460257891910009242154550428099733905459734050122907941249861895755180366652938239920715147150457807867450701196508267940128268419972382992743305346291406354551338902373534593851654158690814357412699563539140842836974275864550858196760913984212712666552593033871478020869819362079838099380233185886284334469104627811364057129464183733605470468103785048011784906278064889705124955781548738174863435513451469712641396253354772809701778763971330800540270443603135121657136975668622072778976440390151184135007052709337569698594236078342755681307453929906349675317405202271291028276723950314258948606547018531159467352008331736942484705688348073058599657456223408799543347502557491071615509370039776540257160017885774575743774943633738515440831811144565745464472805796084496966405305520172941789430818296856160174250864839978788753362812950825646691079380404605189058010109641142754845955066830422081588132631192388091663155438026551894226499181158880191655335062910091188284917768430261921530166806137289583469400688315670290390138109508728030002448885269626597900755375978805832840483124385878785994357444394202987194668616472341229950250887211733363553092937956191916367061277465611112509599950316437484613618844472223872292411170865264400325704038399877367891591237069787643037618848032391574467799671148657676986619356505804486438759268214633207825153158708082146227846204853255724931577190150024359835174640286354766198709613948481605294655141724067709236243904507491040776697067880313631096272411704089803558652367870993975605547383437270182852160301051338124647431615949142345171749236804384202801661338139855051783040855677870295929492265065736705241250325306413695134510742264318383495283757913744623834462660582013074689090132918028937672761657862708437199205289884638206540413040707423658430627664230013219176021989021057739422327928966435675361211406221537080335581236257334874123416042873821221308384678153540166298242907816015590427102030737589553470123388866044732426483544620227832726592725733559454984791419117712721274820448343466347893467341011067860154306390659554726430870456430671771547879066261360220076311405873428083545047218147308820742185660916269422968985384941742050775630566763984921150361600346075523531840614477845048700497019489213951239588246044694055910154546177518085050093220599985196862164820408271653293984505199620930867945410288043345722967658711868037667933804227636920480913479923274865295461259667302139411582688473164870890959989761501200043181288794532368574068040010236059415575263144258727065145915659120233346207570903130929164865066654081186624732627180896895391527896215940748944249437398929603632035504915506293454339970608353770764364995879414811161946986444213910884910909271356204618424570637522331893906300298939107290617379892278268676187856483844897611872166362834589510613756690346575963303893814686407258391446084777193207811201532806330663725072380853622763492078391135605613059747280313835343854805868984420774004913620703697714035149625104917516889419466040280084904826421811162530390191963295152102055784751233221984720467980176405339584854556191444428063932701433155663344989547187813664836718068572159392668465097807105679354144660256873668400190622604572097240710257415623118199344742047026937447113297229820607124805158240067184730343438098273141810108583732608603304609036022768234221955703375326086792810834863393457676733315963512940151166982635916228174447742426878065604362396221473900018459664142492032624754951531155847010261345774714465565681803199971537195008925581432196481191336832169738762349788089632482656662206454589218987861787315965929394198944277205273039244103213013139931663719923526917525167380173054381993697174416612694423469803068644918385516885181948723357520107530894981230906905345623494678715459774942856531547037482310837502902789214772852315956940118324037394538493310610093896703573566695939598612317925199547834941756463135536775128436948307412515934263461677320404567849875601529756445800717912248723380888489235665299213072820228386392532945999722124358965652730515354545574777143346284203280136662827605080474645585893372922120700899860884593675657680024475871288607753540002758911079525784786755318729101948937888457783582875918654669735922919512104328569955586541920931419824759664894315423862282890066599330025743481438692839170044809057230532598599073468535355540520641236497811410687679313212888322899160059494712314113643843273058753733611874019863042291151201193596045211870844122200300809322971163707145540568231440829038930712372357672576745898553532508178004816982374416019711404923186081612689631098189940150124239850673210621538059140119294996772511914255219659086559672866155441038354255412789506962418311195379038168466304574581600009262054499569217280357178782458872863715459552750480818270650717849551632399371615173168671395158954525558473057279222268571968924791276964398887091452931549443766223764903624333712088360916290635960256028010725908042496812236644563181946046002509076740975427942192089771965859641546031283768989678749714745850522239606668865593140061139637945620901284795021868571748713959660991157896602544859930495464798941866484349682023696987933095510365281329600482568949610648934679241834010172899221109558677041089763487038082664622249047069587225925733445279788807604020461788687835577469059143181076633579763822038768867290646314867714283883441838894941079374435079380839976970536782222382228211633419741869148248225893731620500983286386055840563692810674578890344956790482166832206862674588151624199645060070155394510171572933188945642650701294644823692806926248102978059415126599049074275071123662821350325354259667978332065421487241826149099723666097226670138464828967620828874700328237501745442366198524309641644803687123442494676213413499552149514716224073691276554658923079752383713042608488527419903012898465621352443350450043123396781557479606293901777310269658648454212935969550147561078553788665517678211750499449772138768045402637241190218089634474600523612976044668112304618998449544270716721756452603673233192865534963985473515876840039750099469436652433703896339875776329552293928205054477959800165908503599916907262784496284540718294458870799855039854481946666837008146808063114683819663717775840993393013835526715698577534155655606812161162695768214683968347312336470266579619627906842550102477599226930458269048899275061636006299928748758100592009731411289168431098634324778247848305302903770324308846924521744772803450945109086470823315188698674047701118492758221894348612968498159645563850147035723980821035483249994995679978548643951288491725028926265697740627810533402931997887999804179041117122178959752592073583957978862074507963892996225775822673313933279257126694358193534768940325786702400229809210541671291536471452165367245067518198688034674894427591526176823520340409569927507045969098574078108304823546221780631429053478381870640777637095959246729007891830118978210740408628235573005504903833629066543726237537509345683468007306378186154285284103960662605585915693430351593509171817052294350130244482452089767091598167698614629543684031315914838521817183361238476059618109516931279969473180806230526850148147070534078513143880794579589674736099417044566548259373975818009935004578535265096260832870592948160412578046963452455140625242343449837107858161114815294716166461219189939681677425898419291981745161896311555614340462402643749447779856729480234232123152183289154935080775973371598246677873031532532106350681312587363849369748054652599689077238806306226644984112218241295713827029670679769937466078526518796463060519424323324438600121173098748605782401730128723595486186604556028743344785749435205387171213975547381207098050093370708861481603451397196364783168087005297993425258906202985472011359281183479466319229996935681882051187242386329229555113050551554196728069016222758798777959489656305749975668837496882910197030867030028160078206859349650633819843585580045654202214384789245101509423807667871155798544564156506122550917233088311597958606568518472052158733735812176211915056515429492214604224454678474148574508776247297998867669269869311175557206340106515353835090390502642911328831299243507997890508925394503457226840794545390680199749765157992415688406151471765220787143297905337303015715985801513492119677870580533080155766557236694763126835190697269738337796169235326182272972433334600154915354197572911237402092816944088981878019131330057300433634665073674266993252207828653110402843324567377256861826889555166888059319446906131959560185019493366333141541889634704575036130275199385443020249120766597499234208691103675850360966324892377021781851050865365307237520198751767387712010589275911264584863648074981715359117878942738276151046998618752069670779063224986561051851842588455316433762812719506528934364102648598225533488863559546604419623484057412933864025279304618853293992672355368920194907878828565366431515014245665957455026765873321761785344658400102364298472044421085334270917591468864038351265926759451661073486408048478205445483141440024750413317987600381662600596569200138013356553428371372240344994324938019123511459263372935484330028620642875208697870393304574101523548785990569422449135328402429284707345533186004768304250972256009291261382925742699865934090878825740271430202130910279527050702843250088922316459143997526795442670337043581527519539692414722099028633014163176088031209410053848399062806448102427802419255097371787672712387934452506492273173420363601833089477195667142122012513559685125666792657984878874788424664405041072888555999088616950108434062370420857640042578086643912019959829915105012501839098574757198567778619893054102014484694447392196134846151882090258023372477003135417552078288178724331704429200141983292075798404049400280367731168071019674746935130489625273091889977754498022910161032062789578013713669593174673927618325072251606320437195572530543641012540136901308563243710356494831560167051683288690490719080872646664728228005166769141662920008085507379451689140204750743889118098165462158249914835901047931595512932317271047169603066227648343855623062728203448900003220249952112598172972332742467232400788280381643565164650616431557913528848744042820076085011945320890353731306304117313961584014034066331273078039359618953013966118552749524037278479760946661210951431542725466065608403603428469245952017680641646031446931806136611136993309331591929433171523399297825476372270181375162319277178196151436323602303518485325765675595285261397131126342838524944758110044103534817651705687824090359065525447346344790535651099461487267376405310615842565937276989746904272414111278701575697985507317782577017816210044410696021213427042291999423001806641851122409836685718178174202149677958718114184988993714177540840638913308355098699242818328410115814431937573737434618612185324892503441385566699994358395346043862722004539370400932532580589288525733773340900448042492333209881462379995433378515447058855806536912140187415384532977591923593870542710232346923274283789315407049394375141529762123258465572034438900802759548148926379628512526482426808784031946502930399453064480776896422809161819991854555246305312959665180042473000311024447413907124183300472023937645760658662693758534156376160421334224374735655016978025597140144459008803202035192412576893421885344894746222335047761986670211808745718233021433618010224946277117172736663921848979477595588597529155511204119315902914501356382702199153738916799319276300269396400902820508580032160200279712587025488655087135635353406682951722345325216303157901155270031288719630258303187675371024567187090293509050444013152708940561693291487842159366245586515472935472543135641476030053995381647382637425548696735511401341516818121422594297118113496990940984716045844727945912010232378970838140265484915436039704992535350743197759704256816683386386391529718553632137852451932129103053887931866249111094604287174529344908517054135667544499796214457243466921068434693201402726501188220091106216311690264907175261877362598787706008202664012392548600099697637590895239435486681766997208645417440912261908506202299656681834102668831992754420999648922055005233943247610104575116642641964289854083355512782179886949283798210831822388493732276223869302555666921706089599391964439738847226090260035245451523021246907328737951230944141747790648389805812452999057264907396037389182378646735618545677422552124937303721207122384162854095812158486614941505374891149276397244434048064455759604958638977168806121174319986151027279690756276062301510622354947585283507135220617040609859453511861892518714959422502100376462946482649877142757010911251266973394674039450975048074150505378237555111064372006722321561587278514230980658197778569034428979783109071560774469114759515948333769694537002893862576615486117530762426420641870723084630032012573251854602972229920616624686578410526148658863458200444352748616792837414105170643837018156932123843068080571634910123281085639581612482859203865317439171954605275717678461275080141760180292695682122162370798230592523397185533515635942579038336961579519307792713279783415244007177693362216745779425586641555889083579144761751279211185683895802080464431212557752041734264357899305374004668554043540451376795926241002495150773680846069937806694227133428190850238419176402971047774115844295120705222668901532436148820816209732773937233479309811791063042521477291795887859865734878630706085971128960045084802485144108924458986611785716119838660081543603528323150124975369813110101438196826335130190151864318179780215407057517525829120497120166230468372161747751513075807945159910148947137658285583866733706259289174910353717057122335914449627886693317777991276803286018000107747544289625066086531069614984417370360273385029135808652750506926889088598696199033247186664967622101934472315670722076945152846344469002908442612232939579952722113540940666951628162567244860940819850730654104675382356080565430271270879426280968846269398613944361499316354563729270615183975254074659313501195734485689463362210817622526087345015731568411106850149827844941465106708340249913916896571027980074212143823833790246345883204380758010351085291797795263942734980885817446499494746500823413541890578199321423865141382801031925966771876843168637838738181846207895139765758712684836296004426175795248825787328084062935063657576730593961958447482012037971877380534395429088740623887733873982625512433170262715209745026267757357189179920456584780088253683898102257602473753654177660147313654544951371005361341024397453544877158901991378145239950532022505388782299778870120874607374537078982053280823103731888420050968379758424209335948394709227342965358905265711579964853760820413203816441855426370516619069178360897418508239790058382192567072562740015283423937767235637789919293279069974317051792659466738197026352755533271318433722500833282721619767986138090482166144321020554730731135379255456732681068494780357380970807203109143982518499961207468890689879820304751775035568404542157838603467837499732783794926490501215495350615131544678133886499337975217685692242165137193512715018110511849406233784282358429082890545629502268670126920134932600739753826766659891067203977944692441331863566972731742823762335582312351048611929406560350480392565278732020056795939543252065960812404960451252836744621876097260611719995341292955419393515016173851990006817997753436475148070093519841308047697928562014565095940829741559479734243918001843805262164768278523393787282684657471528106672077999647036641864533821268787564122395098424240507695997677012042094103209196646367969934630306432411307265005636806406178728063016610413239114681450035392335024789935698410099455056887979483774049669764220928226312578506197531306444115551411179250362314229832680454397997166481120251272807923393424887178102665314926138488255984186783271581759677029326590005987628755615033524593937507012022548642701989791719235744959416653922541838987710146935258195942029899093115970644301923862853700586104678487067488221819439305497268179946413684349281063550910555003759961258154610715550850745234021217196774298869821059810879185067224105468478145185938554795486913494946928920477544312463528749437058424159430903010851580152654157250289118537400470750083818075039881135061324663740951024133521275934482434140806585456851662906578493094913188586760598102497011434168247518480441731254722434126566230162579003826270014365422985537420255168405104544765452746093168470273778884564119216692015979082769807845609323041070362563808368851261305945079680742632157175918194255697778369088222337167540515423060694813648512474167110112923732749423312896457878125353561133014204416648523994223004920226741492090575671945175290907485224554174095789031272882141029570849255805540787396717398051428867681764987153985444468710336046001076697655554244075676669806998965826597467459132165556477878797436615117665114548346998490971046424042150718819683955091163360957892827809317518935323643833764076055193276853793287741875881079541574299997733274094127434109362926540193460223995073708604546711889062392864854543677582593519132667163136416090344246878328325845608952240045875700693375935884488164731398796522934039880974566946862529977947351278490366932932459453144368501285879500477148944467835266544121554821737840492429369846991071983392944521088961059944867110698000900289918435465945024222720772882591994968864422222790874094582659526831945481528869782997650526940199543219292889462704926524922006146044672477013029946146575366025397913062658673657667801189964673853354714094542594464021974343054999569731243635788725642615126488034474617410484753381978045724647383613547072516786938998280717318113334124249867021149992624847880028390938750515132439667419693014842014957351311272452783967009080537154034306419425013259017035083045340265059616651142472463616225420219888774204509883840077791925170525807930027792345919470662982045776309086412426139167406379253938687040738150088566648768076573447276101258662228724736448574671915204490466861394707594804981427123682961465663163696518395765289315488958629810856237138321780950767407406429504003904377022989903221016877261179750840186999233580099366253766406409020232451995988885608101683986335548920129647327227190703354082349646879404648339000143060930107599048335756326513158249970987659115894902873307895967385165758510447956762063168703826009800765458765955133999689766575526749401092587748137626704161703509840145398777625867447409255602535562029615928019365523351671022795046413642102596515075410827115131690517248799934112210249697943066317727481871478109174240152859048460508000106811384197016242398296610274306369100389636496857297420339319716324322507977654883325673564720966767554829381612729319012969664732102075855904223159062889836659699942002157844505141920992224675458428777554971899505531990222214051333748276382599960240683964152433343000875778771848494070606465764490274550097011424002958233525307490923560771555609988934045667615470784932145594499700415228408008896431349330594334944858298148133888321451334072620711141352006919667110265094569705101099441316404606788580161332290439058435239680318132941255673339227750226725555721753382760356755282882177911650178183338690221974358098932833898894667046871901265933340419878920035790902005260293580365317904751146116228005864774700894110590227455588656412831519057384018887172565299730449339067195963821540360322763352246530716228401294302109291401527540420093821081371780626453530672069544887740496256858119209951072634134103593627314991861598786461613273028643091661697091131575115104243440319809410588971579192163421863650115311692886446745161431924161563449418146423045398441868107656504750237664244753217132019611003829306470360207873554696481035764896589729250095729293705755625646695050864783526893798857159833652118598959517740715967965274608794027972703582560429331467488070641828130049752556183885384925807369303671090546627787456053117372302443513274905010466866463122628028482461229790161381931580018802182177173699377943610161211729676138058356744981661710435947363277580570692730491836971022102284281614384703503073981837572156824938503810751690297226967632679333665630811947959423849309470220977170383314795838146999544100720298762419805657077799091860988370732528835855870701557521830558314317509608925821946497412815339289718847544820264716350689867001285055598318276702564203228928432757385840747601956935339628726617263879735687281711393012995301765803037278423189616206962256853463514546797103298736091601864606949368245736187390833901605406359642063728280452479696914020847454237180239954768874327602994165154994257033852427314244992965014022691005265376240750220187109751870805136135769680355893082208459550467436141372230308171095394085439592986010588149335017399210304504261016871588945800202278612830077543716082827448505546822601617621876671622719200843225946850437381891113211262637709685795569821375469071766414038641311195260850212484833054498087604924251999909513651364788706126584932844480795392240092167700173204705514938191920948277921917835735234145869568927013238069108196693687352598443565094403745716969620112289272303126978023479638345817773663355392495999911677115596755817211682662371115739106948415889273792519212516010451159362469614251426134035268660624686911114980694404522027384793997384022836231265343789806034582784967435613257336385854181114693355754845786331574161095100373381289895732805048941955351020744497735296772906556048612695317300602880305185494227524278596040900115896827284849354945509324888590925057629844397019484281268240416676469826782132019840648171281245653718011323373526986849401004103024942623351152665068421053299879754045534131149387367748157011774740552926466870446082499455281263798570177125389282281314528754920016814667626471367116518853138939746495551912092630230122276964612281643324009243556458997985677324540003737863920206867425947078762479718910602920137320969178594220858180318493615518852756568054961842729630665989236597708558769241315129171651244287038765708362241952005376044803222659554962531154236246666563668894561663412224434400565760189424172131532955129310303477411787571955684298589935798461205813643104316321784318694403463989883110768014482615630989590043797035535167600481371416168180347593515934138427877640034706299682220194219005746886754645156309838769972907820980009424844012871030973124902426716980518167111515603655191003815429587656836364552015126110642662138760091411152318121752448599953328988223453868260362077764968918946851367249142535485847987512145726143885909231464420985305295392455657818418960695356267202379283008894490827477288940756802508906620148727740513530617070479392777767426397021093578615138645939111898473114259233889849538913093780873553980519009415990025422951262603671567964551167890884958893479562287156297666162233097705994225141736583364371784142689985209749010917076301399106388914693479194853126641998255546455468055294043800741910767267861919457512706879479621468960759547033339153011512110107030391411429382736744311360000176551343587709160293339460030926618753058751784621911850802979903704442570122121612335574012208858911148057170416663665609215042213276018567489168730544554065879223146018249867911484591721227430803799426780278096062404189517612377754417421376788822921568143421496723010177608131655670037382220608414319011969928310353216593292914631289612219049074690888295834146816966290962022698294150070382557279153429472590843536494284559989131990305289579882780568550297787996318439186794924321003866181048755915914553655202412810914529419323474557437564674620308638333473629098796649480141910313236220628502100371773628408225514392530778064732428973710508996997176263704076297955884592333895653038170764597277740301292724712236438588560571616278425364369635148863378742482651342379315997397047562625084809078498842338032962077207876898377754844875164075272292758179925954042818258091920201743505344151334931856898550028381636308457428991109158058610549340362016331839591177551112227912299675706896024957581629791699616707481556496610237244443034615639877326187390603906481172199882774914499804255553725305930841081200825769932758488764798626527546702027406097748625375892353639076680747894049492180341332787556920009466047698280211419373195713193540500255004263693059745215785315566001793287234200303224398316933954111894526550168593477919703932894139978583746370486501612929112211131799149903286218714967195444777812658330049254873726949127837513133670922417007485740352914960586477654356436623856746194553310332544565381445666388478145881220107594439889508084390030409885695833522858526653769787911736421228207095778003473475197715600290924044897397734146519274488979386312805544382465641897994080616878982716202741363423217440627814547751827078590810345839727987773585787980009210050504892834246938538733035611569343829285954298609447442175313005084969156000624839696139623490251137861584276540554131092942309568349555476627969548354676388183947057340646947669297842309920933443408429940068494991671692528583022535899214010355911256133149143322894774095270504703745979199791134221976670030623107578151882338040515066755187085508454704621329027540672540694673968036125475938811585258761314303699045408578452239241266151939129889798164804358684720128438013045861365066469069106514438989848421631369572465369692685806419712520824906283366207644728019078938319871020416683674190332071313426431237893555153463443793921539852906524105819820436159306582157485812463221888480210538543871506538448878099712216011527450565963511025109163435271922382944468833364454265470333759635835563584337519035265195691855787995243610072674114742209272670338012832328122735375080335273087025948553209997374929268534786275534766189154971044272698859523996170522680589792482651088021841979696567221907249684262200159321742167196849061119283813465315395485785194947375329219197912314789203329269830712948519290418573253752190361300826520988222351791034354561844434672197656861037949505409431567315912338808598848182338813132616482477885212230475506091577001652481308411860604268260569702267718261852073910783443757752194733966334741658739287753106778843717840758876766170501479260716721530872117620738431898416810261823249024902401460105168773100106725910147661439388023741091551990118255397544557540175844715272935286194720144625255251391211282742458469943213576651804200752902956973265734261555845797037413313887014629692926494325158710672948477087392184666440959933795683222826134556577196718810729958683699327231881875612816602898439554966429662337644856611771005641614498961812881965769500656037852627230813143197336334300919379410063542625329134618535349836530447149705400969509690596480859640299200333619574479660130330901933047126633393856321705712513636393857197456104940500939942453240276484482343242907057005434712904857217175679101425394592236296344222237890345668104191417182650310947308668476768808604630971794574580912623766748838299718256266265335750001939322345268973862951807957598587282120020098804604994176341836524140804779976304432757134857929455020939861668873535060058610105396007039534085202317084963857022929422763647355188113028380104200633663408650310611078901812580925226573717257532868966024726395880162545068311482735362832260874173303014008472797604527981186774379091360136801131330254866629437686608732257623501667499625856358950531910629812356896750214869765384362904997252587756097409841236673863390936846005245282971875253287313355818577436922047563262421169439082244948839216803440053410305491833755695598514648746713871407072120522715720815739057315278071197112494142477373803602518766497435172765755848218177661267570022026139005983255300082507324794818749180756069809232856370286402831759410353715335211093443538314840695078196620173296301741230598981604667228770985312044573264417934222363102385550889368713585233470779174566540225727497309320386833182743185596683544141412176726450516640611783762360285464581676233533358238816088843791681011590347376567146701771631525299540218797316507953890643153815303542665091026353926080292154473283638579717236129800494371025451986898805313931601446110311722414067122257385056821878631331402785279148701947727979353194812416431543554303409789464753252486754038081893244658856029906708545023006002072376314264462726689046240523782050605308840301677015307210228379832210995323945712792096977509643516182059373469495037522413729673442927079453204320264946826440502242511909136841409564302274055011856872886622704466344665620000071518737790419586121534559200919912026893986771172417115363852420232687119681169237549705064390152465747887819584144569071856241918168215345487512671934013959326647120270415989939374766033334711723290054924595158685556839023982090981968768588499799306727877971744402096430150136201816560047526631810126907777769132428735426011400100613868889817421304754195942121020560481332419383325755095138827038870009315528207622187682909774424350723858469011799955156278818878759165247493795864340222747790006964233424179803842604963294238647684302141051273865948526180128602778212222361733610793207078246302319519226003006148121453298701258696552012304748686382239602559077571399630567396057892207057521321155095039101691593533094749474537507447702649014459257080392574611489401828142870417080456907867245897194651712404626721299559532523601131006417912066496739272501355954381356377078696334546358252182567995029057564669526427054018428805279956701923821157966170104339944071116507772302807288844152603894531596819236046507263930944974014622731333425440614354232104870966760479740190512336270999030098588214631344913841051532376644682043351053790490815450401127327444327171195145729381918337075639686957024499399726768713108796982704280413690888054735230736452926380421206998182997105900115301194872713838955340398893797043544107965823792323082039316437933203487568859240075510845277521562202185578431378013009926295405961053983431856612909393246434523857723647899560631536089558755629796188986710931779279418461121778217394144017496884670075914783405018092915471308363201077982722573758042238096225035090942753987007134307593774135197087479305550940569436513186286778722199524649472064408767871923630076945195601964095074297789493163000536722963397019087193923902145048308374124734708088193298033232585605127117944431811251381382465603260271690834461157706835958610228924717480866482729936884591993668695039132720171378978415743339944831972019658734140445794296239876684647609757717851515514996340777150038951220606853476417626297367433708457883280874266212602902679526340438367124183893383803807312238078728135805641504332339878602535293154956929491775792439958106843422731028236650829799240221905841895281954225973095203257062669082765745359800294702928877353623332597168745174432780202180978984698230922004092288303972081127275334099488924773884106547904995009870740634847313849061247693445366180559877152212423066310415870928937270928582663496095030697341575365771258271465580210316235669282444492465321326645312117911760497870995797060988932123884476892461367414945575214730294629585740610412969941090652897165107544544040873684174346707750498632788497163221575477113595182551236749290229172870203635877800762099689914202150999519129528272907455614146345056330684968144458682819695849015400989576275140570710837509057439926212463474777737807289059113939649530739797121577963707557884269002462848800961798281009220705492782474502963377286396355784916965327872707740459572647724768750570435929184040291803905083936637795339549758806944803000135481865565229721681050901915289726732019051907167795715508022427815325626130324315974285334906125095543156401506685519785157234417875495405455087344144086627330854915557809680099111246652540211363302074082983660483329850673949062430128782641323856692616642270401817559560816695007743157930265999682550351674728593579558208573549400363246578614741372886725544202108787387143299835123539533129906980302492508294987054173448194292843254562962515335707702287226181313802791885639298733479677033937864119862223089591912429102161522291176747697399274897056985619258371187171392622155246237187178323637889898800152725731526754266774208557540753463410951685513351241689610690235607209716213336515199340329584357584661734987763739952695744688130706608170442413863786099816672993803879359124588680813326462686834341791731613421096339180240972656384428520722150799976666554482976201084536964556951981601822014025158119065405983269924716466514241867897084227089195738834800095729241092877821193359998303858184907546196714563494716401954592788190703554180810392787639105436839234041609098402709766749407818900388039182771118510995873039174483659775635249230194852637488168668123697375026031340269618045732691721339270981414200909047212223874127817677994357645311243201824469027297792807549239643033725789477492316941456803593044615522586852893313622875240699080307390520415286880715413100046243826044904095308132722034377104561005600027761264135238614463057691978845544789148825419908478343195244687470604838260255607427373923173261706018470294921869777604355553143953636520121908721924590036151228750006432759998698302060778709778234571674145554167387184032921190002407669387630313787205137442242380148962776021808642504131911009201595910283180599552768237532129981718301576939488914024490866748085826196610537955084036640567359658556461348643312422377269031671120982418013643750171241748922909809187790117487137127887241034700475477243367940408550027596532208477575459679924091959420351780604267450989504694370384595690775222108086734575144524043087743049528133622646224923172082585133399906771354103980076885419312572941185359524228692222875177720213296821137717798850370717563854940521374030356655731110508774798685533546032603620654592782447340337690547651606065032211359418191774193904541429247706250774977433662238728752146342854126765544920854776133701682271415537686443122034938493689796503285708540040962691610939757960791824887404193634223405434598509228807967139899122454890871480799845884673792473705667888720054836638261847542466293252814240548360425361158446389404577564290499763742081206860238927144907360978630657508296494664835038571155585410392422110101761225636234355957085610376827815155169885890352906861078482225561993371832346943331204070488434355879995729253913404523077190466898030565033159460438334128919774434031866331426213200310868986117072155062434523170383439603467676106376619215633779034395975729697238227524628020392399474136360914310039018646692567509748438607513509047489119612914436001875956172650697607548653605062904503682139135131505544669064982672114135362164416095501515636328021829307081416535785015039291374137410654486368295633712983903694233752529258383642530907580532586361047026646883740634091260250348859856316291828008104307007443849143309624868300437222408847248787729763456643684243496722237432603207477717565795898559873382826260007656081102787169297469818519066591672802204216579170948810206066207013723844439566958922423316370841005436539323442348937858840478668539349839004940449995256210923955074076358281540278252419875283329531583717798547936106042874504530323533077822562176235491663378080221126123682436853302160459024517051571490280579035649798001782680713903403444288071055220325960593721971556205548121380436436003320762744493595097321607721354758454587279388664594482459869580584889997658738640535064114629970254008188053442005165278710342636209450350887272404451848589496409600932295187247687405817162757431587733498396876444976751384877665269160994362307115619885549538400880525910606114835194856686221135889516613023854043331291659561064260291802171494715362695996196451339180135276193869400665013998111181347674233464788998661363455979029898321725626581031755989949936137531840652484229711813676548413692938272115660304016830150369066429262707237700968723358184036757170673306573828739330658741327893380471710535123736640540999932834032300222084031102630150955325738373852609662319388509035694354345571877140242259090447408491382664973058956990694331190680352784392496414688647540612838699060632369603846853392531447198284512276110764799052783079603154970057902022396661654488433374135024840313474182557550505799902626260949421153082462929545768216645271734948067810758570196443056852051275215316477918111902404800837161718936991742342817153875806462999834349608197433714999463182463203597893775436665204691982405975304195640083502025912735276613227452650636531669707855765738045535430784539789599403129691900919767153399292834925864621567106533156617896790479537349249025334757194527720060827172588956242214036966258852820492552169531357715998827763007049606542406027251475526320185662819616574522416033472066788641076514045098396639600407397058108742199112911576173389910845219476478294202678714352193870381688249469700893476035318598373276936827012150590131484483512971040766206824883264610629979383851704918873571847383277263834436006356050280805904261089227686387991086457350745004350429417376843035022849736311367923704199059174831501672832064190265219089713284698778482613902553993178708469363523523941160675175214713399652379152627905755160141536070697465344038090347110666719570121020510499590443066088497728296366395027554116947670826171728149955695718426533636835744196661491044034389104554810333330692453396557347329069660205129666727160671768501827808490904237847567164906272709713905413011999656444722164527320712316680892614459487435564373056310465229668214413500932288680017947337220322739881524797340351361108093773203911134711336424308686667977010997314041924225933187777653396932685300941799553727542158881562956951850475192011252632498908305751108878863272288380893121909663815879062560813054991104400241410865447950809380217050431006267516612364204584548588956715445624586214830855215202504898004848304331617571573044572521334037435755465657848197075411231420625523917371547083015504169408308787946686655194825894886949093261172615675204155258305667500438669891907256003731378768296225862561551771083198680720598866451811617644021091296366318693416973787160020178449604106242731269858111088790445737715597308328693002547137673226915602565818682890098966818746893007750698647880911336572130290544514360085268712506242569650456107773400198225535461508806044057416085780741194097127554483627104066542450211404815639036451786908808998893177536232860765690117879723508339969978359883723207011081198821287238383318124993445344792265376801489658461835685024756552529351321701819448424825702391851439364416744759344470405821630773837598875946240824395102997280187215199042571150141038425159077387952270175944716346273689036274761820721674532961770099753696254402722954493677633449847421627191732062760521872583560007064063361254569150601074565473409995623921524892004028141905733276102970224228680956563435387414205320110740564561648635388119434149601119865329375244424300032792191462671084846306994111084484746288912468580973607769144489883866111479485046661593798053726823332760304971320373707123285244730425058016371269745068655535360382951976881895430491440938737372474071278654993459099564567529257910951206937362772781288213945211053503852034799571254315301825944773454789467918861530182522119340526429549559348150124769011785607665284641872638684090729365969085116473168330282423784146332699519626447214056731071467036982839624320816999236251403489672896959008056654057239731451692857712882524826369100129791588216604557740814068891596546522925639670110346244751904939370515354367803381841593406430316791875621401471801959130579968578327575519160262808335138521541215195819996666596265359213010182234160002142348562129538830517565599788801363774290727830780139200402142922738822936606516533718756286990604214301455748452136649429410673702641616743020028995954196361852745514006047918253968181566536562706079469448294107984889331048264819584439421750800113841751565361391673420272485424885059802467328933218615110346834394620080218243905399981504580872616129377504065287113291261863643832805200367213336815153311084895449625967055003967498422619710541897875638493224611468651037398721473288819033963058539665984679744795768062601937435393200321515398955948899519630736356379135444282257485765143139753518012880794858176768932523132617256572898825196815897764493701081567869552947117915268577884516498374579819366425988053982812705739481917315946612693070524148887186860729506972681774235712279929056308582124455584873180470410148320773363888545573479709822354222853575633956928503467541208187518325451232095739872235977731010690530540850254722842360829389269722355701137435154281828216091417673567493835674563451369635791880838107297585334481756077734258658053666533682324742154848341562432776069527570533559803466808689365628784955326187874580079581974769344327000388078099830537865387715496954545014138479400716407029064410234921206758491633133336937061293551201029307445012273377644610440761692509824479131336531232863677622745028621686113580130190430392533237607608981838383785354512669199502193905904381770333816533500332592925997706379050850191662286832869546344496281036400993957721500039136247396647545522267267196095824941731423521644293836224022253185238438738587057957834060726849978578135674392258922604775647602581483666071797545890274088324037374095073006910100238401365052003999315554654602303377024447406979347739253339376239764149692180546749571387672447452423629602978669434599962230469315023243632190268403734382877877209968595975713637819115294471026781918319190947139588290080777661997641416268609559200033244866553244942384167307306270953227649160709720249209073307040824554114242210262274993292917019622334001422901847831584888004026952647584804873490980053958325654451613155840168986230648226336973898274407515942573271075278663154763328012958558367648560392285297220306066613564038865037549389302417210860132078369211197603522903874419697907422411659095637144539037064839875065034059703505892900564923841043362995741829054068698343720230529851041246347167492622330943626761682840350544832796195435479301113439676917704169120015598929532890880262057407256704707676463918368057569390943016905174452863566455492791963380211339360802949627368089094024282447282666887809010964295223350145499972372338470642671606687809707081710109265178338188704531709736417643586038120647981071983161104223938343163329526521430184484784513505606247236162441294231852552740372743234991142190243603866275098783633250483294313565122995785381738260098620564717907323265215362286130990883816121190043138685346753827922718516499731474437628882137572500103060103999280515252317440065048283908994745543706886731933420226246200955881242332332446688841896349658113973866261980539074050889304354914409049392508562164920798917243562278934619984374403444654374600251107130060719020992262914381353441560311137964862495716957608925098168015308168587198830193125434190443346445883988750030134624696761320348537809097711743391287916003196079667938175758982446565144545043422436081156633795209631679301952687600199624842286796493618070436996028817643204522365993146061279033784504982166936249835116552368446997556324592302046597043346650101536057909672860471890009453397563945304904159224594869138533148331137604492956497859017985077315437449498565828333505137907797276624059743818411309773186494429130881015676227135470320141420199086149702729048059234129797106772801293644739336962460321454245429799607468881943248013497892742417919231468004945690551340311590288331391506666480864595995487646769321363723305556195963232818015193171957499202868416035325716587435046713058937053074971993144850351530180544270501475437922407773100610550088551498827862905846255518474124562953704847870455008848293919258119951270592925874476808282817692605490910753864465592456838179195035801433085020210080890153075106548781496572124676475063424641934008541036011117092294275519617729195166430154856984723258991383694045197462305894337049941664337469519565599346857529135732473598261615069867688122825739367700107499014689887766745977539226272786568092174779823074333329489224009614892589735634585447278010743011474125876412427417368725453149245907879065667209715017478045198108336463352462123721634021280864205517238179726009592781465706971515902152390511128645187288776659098009850437241757331490243644328106278420915268968873793178753707283696029151123919610687190227408438819234567089533576702207955825422441917088321103166787398124704756517004309425312130145785667024660381748599008537041312631138716420445606824495652150288088224168641051164370706592425861676473437236274671251694774758599831775690569144833634381402833227052730895776380552447237880205962274914803033584234497489290137397503921921651435129589287451922484980611037306494264812227263595038836859161940846547305189162715700319356589675284050830728304566688973823551574924984089645287918959429104997021446732191406924109296484305571391046859422282777614030103010382576114666885715799994782426179664088386573616190165239276183827564937873119051681824004510475152939577972333112577194081080230591143169562232435857549659301925523035777791142011498677416324156979133739204872724185640444290002591259432042295836081623204618502987315493174592120196793764868929940328645035891280427923849836230232198207861275090735721489297367073472317588241291257449002362386868542643039221096810993579349926138767489143091891977662791511826581859928325234904928831889585952449865087194712351298630940988156091791664215064068453102647435942393081475402850482767609812680869969565976882642252482054466862557721256893153803631264330936742586079691223368933905859684101070276164847570736274822003381905192850832026362053252716067037702654295053826359923500231854437440303937633193921097087719141230681674486821022973459020049084121720505563545602046866723433081641139607870883351612599336895806093821542552403578998161099186311732071901942653787595810601114536130092569756975286590565177042248231791542989700423327187483631959055103983311754752949468660936219275974385917873564011905398890885023117244643352727052108796594238750827240080769201839899885650940528477623445897970783755633590743642882776865534165238259371071626930064055983260666843512236938771867571416079984652370033772835790854069828584948022301686684618079969213153100002719079923316587607224225089494422298208810295128634342820400491366847386272687467020445797836050903521765504419394293325005896122142800612514945967967765958738200652128912966928367560788183688060097014437103164010836185647378891178864873971929200866077424071067390490292367574294281037508527786578361738972287384108262915553773179822219009976711873227176847102461205292846589708095387852270394321583924200238706434613772789224585375607951170024699252665126805764667499970285937397934166772293770348764003992759691944578318240600542718515860060263662576637095199952073353021091174859006747154011057424190049618872315671679189036113173412615277107533664442424756072152993646135356259816955520415316375209248443019248676187208829555376483905361629337825550038899618756925164978985010903336710062084593880734491992484647932733116517862453842654649531901363337591423020513988680598133924912162467807985732938500943460825013018375576683662178266930321979117167809400190974817708213485994622707006482499566928479353260158446841295806813273048166495605264366215018790363110001912880936580708793108976060214767048078486986633296925367478569611813927288101876126735053232905769705003120116177478167840771962888059556048405751366480938717667566671506997188887836857915002064171081785695541893583225185418006455572949703515536486755999485289430777128800716103685232844351192184652975739362942157043517567546611861845567282956203791131623583695001057179887981792904229304089789346941621440694878263878004652849391456872957205573677866747380089840581591602101972960763033927933461837220271561080276340446726907891815038486922414235531237391277417349373718602107888258290576040254580389467478784868429653639956358130136602773939533074406257754023422171637281937432465796584362149552877343187129954525322288376395398834224961871926268402490063390940664061255510429145970773119100650969770675964118692713427059428595890242695192719911595888176311298728632684060500382752056686103938717665086297004993285369319657771038005086704218213546107191676693791732272043366678219719500475320431786235846598026953508631488960267100110817055743024497196521522836913673045447296474388558402025979943805643828355454535020090976839925550163367066114445539165840411497398394959373821897250222949696345339642855676614657999891710018531090938252834930712013410143275537137802696006424105876444189303252685489375973710164027549714292318623656261489387520752485297376226529217931915222797958098224497235990461227188455922012681723424667787520329710352288977064073093381281344280115600178328591774789589141642437966652904028200490812359409731436772442772620629635380385338278818316076609912941772778014972757686329028140936507594494822349590917601137473525747948103765992171016659264638200607095584003932715000818155969624868252601211082736176540956958307118099155403390179265128477798040849253634187816231507803042640046861382811334269693171585345327876770819069790136025464654518540886928417396220455102236916952767630087754557370065748262792756270835227782052816479906200824938818750428894974720698804256737596887128581898477249670841893212042338009467476299065247255319543936279716220657512685465451207587613228518798686392090303592135817588717981471910551724982516523524448272168669361912191113999877048915435503175411206512976875933484582664234504956458300540402867096076906736299179192907382706257439659085999147487575093033944220407498815159976290242711250750653337461800168873462821330969269759344951805555565189685563922016794477815690957230416989786856935667441578678393246215969575777722055152247228273753840260444095835686889434760727522108023379343573218381680524048489557146177467518557349579620837109784375598617331750834296854593417915151652422010311425280212440716070324549041685216146087760279240600345638909328188871174372860020020275308723715384640002268636428572073123334977592518352082095651250939914450780558075987211578380746541960623927125690117871960420320056638604234159933014255229843163287388114658647948700172220556144504874886546698645216377939417270086390203494789609139044629178866288666457443010769567548625613260706233387157306509394318646482255891645168839832833063527407182296766340978468313175007980522843852309981970054907878327289539392009136986707971702482802817534726957476713304431715376577411810080567385653985874220562311200459254871023517742205126044319707870192159468941878721929654434246869310457307716310574474294329219225707238551506431710351903724715380901941838713859043929792994610156763610453983120150150469247558192406202558964371869800661199482520526418771670837451149238678538903353802218131560695738793694036596400744400429414435442382499712447158069734649274636960589076437183895626675004533486725232248962204341220024452571784362253548637816556640446922210265771600476344439692557263438890650158492431599122223734937272892406031964070831500600517328995657730814841867817387210394337180187034915840239276451567130113650816207135320268514931712087222188278644501886550630368509419035323211211804441109071195194416242749601322993416636097074053693228100627303175120852631171058328775150232241518960145288909414267794471747134535294568498695121808473318147961299807950119911190933036260348318754510820975825931409019380565677836983735341468088886747667875817980080622087701004748269417755275458777916835801845946688738803307938683112484362730944390938415513382758351937816231330678466023291042861584319231389522293428518331575217933781258876049834092081610568517258416140312139216072767700391635528304492493962358503489008637322358047913993373079877818215111378543966106286746738183341504310611366962650791040749874535157364938204487884473467238946434581279801985734578961971657091024682106742514114529665698329642917023370314871688794707016665859828656138384573778981811041466210817498173991594821298574614667730455539800242864251012519494952255564143859193369485312849459369052586019539977662865100448606156314391389606927865335308171613120591437189613212083515207115226883099669591197779104740759856595458460584029533217901667510311843513523341289217284888009177535522420512375987279646396868095202224909181618128118928848538221494350918989702376757128450061083715959353043204326800082505572068955857430096331622056457419993478693054101433561835089851358132000742824034074259165071122412746939152474873392496597787623563918189994941083379561678900096155543797194605429656997820159977218401786820062406495627771791937248739416892710866799931452408943672752969457523027849834099325305932116253825721213352881499464266386642926339532448476382709265615304909532216417737492042372627370829504730176657588146584205025867618643662588900740129803678074219769151187005824148970487579432951591342505438013967289944104433664590367989793549973735328955880045034225194709714847883559979451084467241332443968317138936814774907825607046979646151752400743809162218850862757939599023451179095028781841798820824798752354032834770868780139170965232134920809027091339497286026814707760420156402351841503820278408007495881892388872915354965189585944762208462063277389160636059536334651005627151781212348610385055752975978545561374356085361538777023975418022895038296354053934929616634663032116920437624502487422283139988450783501304325063259033349317212822461967845048563469386763173195222027316011839023643668484591769353114385933522666716119666605150585835795853771129214105293418833686823447614882086151836890169498587754267789679040925207872837978519757295266117699096126383606600817720250705355229007906239224206479121670181960947822216235452830436927200257764278665006906158969153117271073369899450120707239199591371363466688898600332016863497166964487887869506799988831547605566797472044054342296910709138222341978471755820014139144814762857102598101235609199464879233162306812029379932112468558109047608000383361105825553496167385924861765032373625457912778580709623895118584602194757458138786476594952899764555465621082433588373704822701848377988295891671574883132382624767882716197865575470652165640909464810434704059638057588989162149994923082148865810609530580784967440181152099266434021435618341056498994102759974622078737994016698055642968083285154213824957183718052852385483109362442065578074968719797293364400592410074391416697250410052391158411702204047895792364922833612607650664048291027071557235217763132582172300220583974778760271034564271400574824828882147317540108381694552238012058251075381264724894296669585784321766244139283842555496867686572685618936680371626303173722162264772175370700512275932909346436180732965371687830326151113205581653037493546027027821874747959093175992980588169216854347934415795989759543226813419104872107075806823130634338832714854191785919485139715490347651460010342982232204125926683652134220245877438331414882682831979364105226634043664322965591284888468961257099092595207353996177334526263203813293455456128103722149744796933901615357395138832830237218534037146208275086153785225270064750287499276650673351656382620335072855935422278355026605203014629340322190714025640827125020781883111094008436919880360855089895027608916338417538627255249464350255192142036017296530958297335029497094018559279521117235313440043752548722868790669573290868204690709600650111132132514175508810545036630681895655692611218529878200171329234650398708039569973856923045304961501340219260304594204077387178103323635354179041659720258483179741192950327969202736933619350605222984533222413529323884070287820674397900762414773033927338077605658893441904582161763606905547646600241898272763524132549511659229570927212690436689534932159434080220007725933807500952597860010129915568410210066392979604722517353078220123611278093711426696095580465336807711465651158434231828591420405465126881239114318044252205074080078453732791367415729192552048085083445944738021614279028018850483766952030071415797292582168433162372684600864886755416502771371300194877542037572874886697879532981283190638704561820886974718113053148551868957672255825491578227598904073258405080022111797291582331961724023369910950313475958774880744536148568351908140663386870074029715762235125863732961903988868757608013881933342871611184996135720601158982730804857488447958683958119654513460326760273882931876927909122818197426788037273051774623542301430002661540172944714364132967370392487049919740160141484302555898587929534149625944684962020064863483709572432416490414812221469165042788188816661941417105167098622777539584167937666889703966793310874724107454518629912580406573563098834361763393532857616652759123758722016630005443095996124466844440758665456109906928995879923078816251068339148242677668198622515899438035424472529764562049664846252779153097057164634762965756161838374088525226763685864544453451503681246484558857152537226530875420658327902103077341015721060634129965626839125152848446650688225102706968219878415717058937890255761230449626360930989934271413432773864021006943297906264603486726826003549447207901306440850359697194604849460505033544731776959558213123903037564146486374146890769247509806885207464298640957893438722714732412741618353855086974888223417076445921961451104865122262029982005798853193146043627247579304928367809764460607139999434569407770081624308954461083252773639547645337129278303088328996199449583444841157500343293959783585101294234605084666324056857625427348855276286793662062676438937696588288181708798975931825597880523228054825462265103694577892538415172833772975228878316124755771342290856614840037143559249264483308491194715180120143680245329221479157684463383137702059508725020935802366105598313750054546278811692779661961322206795458793758687135508960990350818783209472111707808565524922401477367256453146899717934185225516692772931139805349818733995557794395599723939756229407775739743415991971013463639624703743082186837799566135784682932371518938218626222458178862248572015627668663517559474003872958124184516134606478527926191829116316999374892571035101365656399638664760045878253583404327245866526787951689733378391018904141640978540148226435229121891360121289446643041695136483800878957863946760953491455508215500545413145430448905364496640403894055543998081322999430960637898302073736623419253268567819689958666377678247038785998525962029613233654320127887064495758579751927151541106441377486258935926758267065781888120904375670734803498508771318135022995899387908272561165035941164276294482163264879070864636999881804349477208524569661143002981215164856788721717592916643915092595049631519725110798299188574474227695706249714402347408203447970470804331679679940976803331342676555158855433574910792141202208499754908171863164012303400506304246442946430393431672200369748175323503114151789655539113120438865362552950456469529533063692743313231421928472178738074288866069015990151900070324627068595446439181524137444798888551322336484280521322650257089728149658034411086923485707007710853928428433933307686576211060066385121451247411482164929458557774162847154982726347284066742481316940467135100260285055989360186050684387014220592003141376725342567591134075364378745908552777190128906911801795471179375423430737700990596433430256529749890968938455904936457761794094399349803170784706470554472571027675920190414453681451714437787400952173612325928522100748350568898921540107038250192679717245477925319547053755834870742857137850076618705185339458345449210454191424548031939631382083196325074035601739867912731500945712635484938825370174746370069746641911307054864915863212013049652439873099013710401872646592300101457157006446610144852216505516389169264873181972848066871648333023428294308528134051809013301098616808917048253974393785010539564439606671523203662539093035391039783196708758177630927185009995548535311834916390410001897830686228960965604140188850153546873245485131832046762296607087143229580166948698383624982358266496408329846629910500994241469688762606551427002971604145897837989975382917562230198883800336203327174515476271964744669545299065324874896888617646042519627332155239891581170567833510012711649246891867577589562798297228655101357916913903447995597011375325037529812876835955437950703508748516431720747715915327230297941988209885906970245372383819690051394491999869900558393689363779517037182314670886456796544308547624018844592402254482509854061463541112453414441350233682935818038869003577804615285230402896214473795535130490443578779518459835339327808907705165989568338624029502358188718820146243995363614195449243042197698023305468489768977051629161154400833592046736971662419526009700657165998884013695174086128748471081570560261734868602754122526844355855914928468926751107403903147236497536278765860816783664096859582049772164832927735019997762033839486291910715368165038051382473094217747745203621086059417029547499242849240029435486736360570157251259976047612680594940375959959701723319956975508268347952761046739040939397165115231634292564729218441232296981811568554092715309846060769178718512132164494148252262086558515952647907989478213518042625906670192142361883581727663832336771960122262160849390607843822949139526418111706309613654736584090997617131541061803659665492900916069429121109433500269027876081966231847560998763273197278677338034480196505532118627343892665424357552033548668178052524310269672667897721902129768417350495801342320089749956295563989888540411252800807251503078852068496973127819000474159436403996178344422408837105473769009473719233162473895682258194824963567849835733812165741572226863574433289430584013445331660151945814263191267531684689494043099821645598352368987230903436418344904729030120808649158858275985478497264458128362239863092284617217072754658556818913355131321123232930629109486696753141252304384066040340733430799483646885170687270610670574439455513884854704743964368701920112712466689820997342904673484650919810089745354977630315528748426849594020314501157820631329154188565407552676307082300026776406834656099435254776226507926618125278726007441753648997904614618061770401679928966992878201836051999348916461814620165812829978952910613790283517513217792883941010003871133732306503263781309762155647461020507572275335086922507615752308398951856527244778078461212970224368018680699092375411454028852684251565946701722816208492244545078583471224285714441219573097937827607228303197798118802983228819190854735426686810567849088559338448705142285135161209125583379897980659586909704079423451844179598514983733505041473170713433698701735230707282124824578452561629286313920085353911526285389915784419075237984873648507835922327503312417521196993200769273028335374710650773276165656307323649011697941073537373637139427914228917436904107632516360319316055306878415950273110331432972606056677477714654133415155441229933047866186227223928218244437777104106986378057694136913511049182861325848274235498505818977258042872584086804481059755662111872254163112321592492392734144409276708875987787125907687594511575198601442014898278607409792951015629661262971197021319797178875627234013230258515829605884999442739817456077802888056413439442186507555794381637585710542798449562655221676873212427843196715708987506226866629082036939116265880692653421182987963580503692458248052221128021663957848306050767733273951723757970545182082484634009376176341621183790742063083487505199896633338145871861733433844952321675394095147122131091668805739255157901551994323398523168268026282290336069270532321350796249483659127994201912602928064766432311703205612756291474073849632452975311457955754393790109424106030020333762864055777709692328217051438871944820826677218503532008491011214779549651198400944112238570122734155716979188328116151371768705499657728659007299615953155422822405819492936238360023947176445697098292176637143826580516135977327578932877243106580787893768302352278197546315983787580784356917906367131194184941656066001220293913563997546230475988069530388732952979079475355856085391518039323907256460371806141161045548594783485866498354149477460706940139647797127253189192162985076683107743409820339703683845307114805642975923085751213601150034940667312119977196989454875641218212073770468979681248847249743006847266699829784950320712136662892120206006072316214319029166053286585409663461824408818711866295420121410543715298063176685662779549768443942422105723737684156435756967658008769693351814279714274413689480566809855045319013652542551917957028127913968057937115208589849769790657128261707065475517094439931855563868094623280244069991300211096936110147619955563192699370678520204092385060542258251234099979221518097323743049896317417820175011340873870639826041784655881838501775749548954392861589497693450437293939350145659548871945789417503292781325005523084494251884692351162575208286258332193063253708682270289105035429239059141090320119028226821293325398802028582297119845141052552848149504614576294659299993676807294695973568747902930275455939496339159016221917440708354987949406986446037654925065607429743140420992071900432382606929756315674168902468522590402600053974044262750496241587363725749774705247403664445955435729038549921817368483187884567627996391130178190415766875918983194054253647705775196512956529588236399794601188326935201493250696450730921713848380283131812625684455080763142445138963442696558085180662221627786382086151855536096012507420369864387388628881719733742244524395008844132098902169582866459898364668557652344606308458946616374974488737065656849422663236434445614850150007045495753597583143776816360109973094879402863544563838639769807648405972344842749646201662267670628535159778020591798334440214209692596601438770263075536655551335714189791037574860128541885813154037545216492038332829944424853764257570283500330809325239574866904351620862266081944281551554677224273231340338047880512873591396617547897230951220249841543285132973198364526459616268777428821953504081450178834171734572487698103219121682358325035807669169353168033845999587192740467660987367443519341130797068544182147855911445040610903171890298462180402895650847344904992433130802786456164935019500491377079778928130352959963221204251830823078781047958646608433986953281123668435942356661455590057846233122062754289208575209036910008304481853651116655143300131918448391831962914494495901640010582396846820685788231445983580852908160821498578831615326876052739696495750355614835253912620628171072502411700208789626383517074779301921716240659143077251347796164376604405012410651753997722684701076297429739479505072304550155250494193163959584637794434566880349267004181177754654465653652244590932747687471280367741886314518135620857155314775061681645590098579300957967610783894645664362478964971364131897994569004866960504501152952407122700281383921440880954743188141755571660748495773415834393157860745919622358387198258846622519939482858522055739476843166439672191680393129829296315635282796262599525683843929428103796681836639437071908989734529419032489455169729499567086270895439662772910253771758008093446332078411647275021297140363488498025510605988185932343958001295532434557093639246685535026576231200841558614622315322775037839701349141123548089363906012836511952968164748577594628588412213208395601568287740722890324572647217098487344504700874805177659413557145031237328767553841368752298793716505593306816821074892016611253701299930301301433633829603802174214730030246163903508230555622517077898030960235145163666369683598176972743195859292688820223450073456390166881923232311489254636801441222885201185295188344106812111620646541322186402863586034123233436893221762447804826610660277305499507240040889145663738139103871902660622489559899148696108134667042476086142924098777523206336398708150316837149402953546954855314876824158417764973682278509610546919439072790831830972470728729889464012315253238818271609328533486952539257663843887424397665438882697932574385853626733747471616388128809346547550973484462676911712701055642746187524592253047709642658810071829854644928780895531033883379010329063874550385710039905941636954073105786418771927882887472771528895330249428894110076161041911503054102486223016200484941373207141769131446231611636963969183476395676870060288269570782138853566631271419978771787088233660110175876029895874091560960462094122765798785850440702219513207476264526182789314620616576871491966599840218503722796455319308386449760775114248088541837748643209781145936437494448172588040503752223559091290859982954386168715876077368997076434872530742952116981129577419029483565084325299385864097394671965600158724508905427189498004514324612581001570649951044281692517372261250153460704054075138751369151421907304798533168611326928430868264884912732372747907636641142423253793159710115643730441099762159449374872798135482340808787758402541746046346948936832056216018004405363439781220824489978677535420513385065141893963652833055363997627774961248426401486439538472419660072070248628538703089609909513010903443004601661758145063207955650623631388251231110005603718181453869013356994721670607802643960545207093017536078451271621598119799759587747451520170799884189306065676694320721271560251312248201627815545120883299216493755502035977373903505044269637714579453753324481367425492859631098142761726843998456271449033720195132415431943529448318707567543765058054650191628851023539943672447311801938223064431080169315998824934451459157791765986596684836111469092378414104991469443768521506346789458759518301045737205680360806248635751813052638999163287434435130754862499152715189566896774472626192514827469945920659763033053383045976681748242249986662449474811398508131844204686267623511642077193651744405615560619090510034704444875204830644431511441629906890651617404731944963251687915637925755434764049852259218553011788363423006500920544569377471417070298921358730077132517475591937455063497528700843409629589136818332208300490293560141985733406404244288717450825651641707818030598163668325193647141701001512477417310062541534945516586246639895455688910781666105866820371008718477083358261772126934004958792644845360057036432170558079661860570783979898668448860134584559275614162977489482487113449946298311953820195034839081810091481818151205437376428694273451484248259024560867941950477448465826879588659757880899410326390000729476017430932927649831262392965826852569510666965003283069282164142369184578595564036575029229034266859116646191782965947592478110116313469920900142765997297528017208240350013718079959164496153870901339946957289174594554117709371554284343329302883805338138695194557880897753582600818822542496294890221970062778008325642422449050840821346658171287888759843367494739310406093339777331143564636561590703684048419884580383132080273202380417410122654238625756421766750196841748218944727285229044480678408367866581691528461526163012752695248928557763654344699340226734855050717145830420220633547345244421326189707411222960564064562372804918344561010686321978135574836405975989418182510394656794399457754518813723983671228446592941115169033836651244833741138030327649312223915735513847671916690190429261654739984653892433066344614993859607150035527317822943284337018738744614444282805468993634956338005707547054379678841709971941622665152535024533970489739240356449778215786252017958182914873783412312814755949643577204034970567353270935516007536735546209984024067726328190185101829792058480780969254677126172130921212901154109161630266824504180262098848328523771304410129527981836394666940845260563361676429665863182233161863836424238901807981686113114539212340922761584225375330435612396666256743396998396935453029067628496448541018089903803372551574418608239273016690665859291602769147266121885877656571910071825136771360158612002405150999468369073219732696967701408641380203739950250043841635380965291831962507265310653301439981471462232648209294373853557614269523672290027212072863431448226664894115938101270506827626767568349095700609142205048878790528107354596550156700699016318735937631518052237066541808738975241576463850973337656616050023251302052961860651679899803818143357739903887991968140266766390011209369642726611423407104158965347394099800446855095109964153929094306185344472740309073428084505241426167267040132866818087835639708774938858750142978201304432302310539016591720538776295619336014264237450784722039290501491941833474823502849645031681875541991144321604652206425136635052885785764634794840688892791556507767419395405368974008688158868091453792463969953652200790752106268910995455047977419130048726799322312007775805127813233985140687771651540942986765817349754610332866236436453504727828372744987394152203506083636341820074401814977067434360308353469882158762175537175698136163579628773203398121793681990026880988030010943223427672268257261443618779241694534845899073439670542840214880593137084714235497718316597543552116564007774396383924068609997657040627079334422411678388311493979493439981104051253636151236928440937154497572308491334296915241452147551501401050692377030662000629305783010745340684602196535894003691911690185040463511909553834636875465758487353352108927236100175492826950080018541465219804712260530112506864119782462082676465731803850389680011127041154686633883729840107872019571257715506083713032971197156478606303702486972278995646624160859385592379187892319998417983110298854245701351574269639269560389256685729343927811502587517280516003044882422974173881761723694479645286700289284290509488290378850384475783220495051741994106653878963714365786121232078072543556965023161849457630401345507697589233201981516537162462749841471951736618951017208711848930041293708717476787432175383570149004261945815856205635630742324518164675946506100252524457483390162429507758301136332796222300482980491393881321781442323757371619177077322327722719289167257469575448781370065212819926196490235654949821300842950660613477036013215007599485907588279837414820112035860314278439564461956075892196331461088405419600122344498943883101234894619262180216175821403890634104012148596828772080153179605523490540969654891748791571467988864948368099922979167386922023821757404139544351179846057228859150655227602250438647058957959244602899773600958743954654528975285192768269488788540584766062467820460864546775024483978088481488380919381448774995108733046178570771702507180355856143528861368382412585895901016564659189947872815102976991139557311696865009058156769237339704957493996920738521254972270342940722683309392703821217047003651524962817648719821525386392391215152704099112145426135967142065981619337527185891660602927889459056589797048647987085126250558071415878311160651538015270660583242940284510476384982886328487925218219049308081741784799040994054078249866359917433041207003128769939467912605759427214446053113326821861493396879771946506868645998086398193384511085243680185333168464072019782616531210068960321638068493804766803328508099297277431245846576701703580059319678486663947763096338377002437707173238153589642922624926396776134655898459441333320548653469998399007565067932292970779955064099666475555942668553797158922771799613505924706627981283240355501882688677979309244504600844165565361237457488237397327530142325150233059435143129118795415903391508137577290246429716193542305895226299782121533319297682188351192770423369888971586749178938160883450289803764732963332521000243599232107400569217114069387813230592138591415563847670138019615418107151212824049548308699869353667151688985574456008166117181957580505884173668462440769605681011392200444997628110226774169761989451353275253105850521164348262947875068337096381918096527543972712481918727980203934954832994175050206431313981882845542516740432261184803241348718264599293197664288944081265518144475791939148678716957465105471971014188110379973598763515479585650182448981075788442002772454449022976149741885832634584665736351344150424307843957756311771136301916183144780821443903708605510637564611207930748500354739989130110040607173959263558342172363340829607562416078078596037765278327934292603622928701678337117432286395631163858714583029806570639346489228741425264989095895687493151837025543064344807159528292544706852995192728461018073232677878508092190639825195620758941115245712365644497079498378308724877224505316057787976235469544467913018337939368027681179123593422957285826469256180392165660798989357015320018532977841341301087866767653575026783608388218871939751421269799291400200934880374858693313431985500814548346001341336341251800346131732874811587778792975516016885803483437254683104193062101539025595350294531196935741824479000121565839657628265592648396130817366591758045382602103061457588357541738990807829642579905415952078369628377115904052948223282006735485404375088766296923200177684449702634386121745171089267238226676526168495395771897405034129490704249192023770787409515912799312839034363765934771845698386433402373802908332526048554362759234046022056500066649688623535292931273080884400121429777269455744326311358519530219220112842037555670383301156274336706594820381353612635812347867695284824028826674616407975201381285962203627431448197501018358614780193658723978034254192686975379638460558911930951449584340360525560201221703586491791073282163967010616693093359948110304493794925166288141627715733070370613293511275658293121067270914428276902782974233287251572270105804366060744661228293445030403531696426899805926104337488092146935538835633529836837125454395110981247281333520364239250147076943497182462561363851256616200262394767158601973341437699069642106971986989023539928517559862527249209770725845932990803499027038747154156125220513302468863946749755245557601175211748100316463275469781309698360916338058737084474945020961905035490492083738208357116579347639584962319998676474200838864287786844027625155990294687009427565204790339527482998133706912587021220654466325586041566051316118202557121862047055045578746244664928700275496311081994722610702884809980033375281911994407448753609890354747297126707624340647141625496619776835141913690440022601718174118607590123318788834836575155498883975382723065530275422170347493861415705951740835278087440590352249718284266710037164637335017447181300134066734590978617671160043183190659007995434502906219700515292733216362190097507265141448057233592221254290848968977297835098942180125043343557482848218580184976536167615687755773273025206155717411438380227767151902726409690567156385764541079971231805578501993525991033528640455697086655305416236236905307214944134717180497426051910697494982011730430560136229588634312194067059679363415038476454675622874047109844648267187866797930611428133839587818552129637111160087788764318864752361634983479063307632786212346677557690137183341978616268554416345278093085171339875215700646400012060291319298405508247833311700838496714008445329946544829537502807891728368070134151309751402476425299581078212719662687570299042484888949096226971877665731221190167300906181242770257067235058915968300608480846138589297867378887692578741745900366261284707209994952852573256037205022817412583361531600536375400769008702073782272372936313394339002703658053953193998582057529761148431742821987050498268077395603524800453437266561318678625149494350004421413404992675767368866299471273770751457049802012031913535013097359172482369246648083658458080134345250128669295737399068658270066581045083942027498730866306453926793482024881978648618411513822837940890941646186726896840687372483027478169686019369503256739127578255385325864711257754474999730408072654808993662156838000189235362904119783901207637072809723069008092518519619403289023872983686331546506658725765474129363092900589392041500445558814225322170269967587016947009666699793295426996073920596005402428580197261297834103476063002695858295562026130164101576816685159524539209645877162446387188646614645536695909065225720831434194552171165882921343904652080549234994455270887939920856086191706899930167276477894520720342610045385302973657048019485737457004882751916697169315517816905056176030355705253470902607838565374349463289307908871655731007480089482491288905503157471069755434529215526626627790364132498756900481501857884118076077127426952765590255067673806156972206463416502523414909397542465609195179134930379974000217241782166444783060338800670168056397778580778196456941301734620629633466018136797312686702711422022838775877210498861890725278914366069434309983623008280329664080388086089034379720082581763764452842098423095099415360554663887096650895194511895414884818388410944969683550837473572474769487761363684130862789274594823842755247451054545229883280639107120164169791733427483141814553802185248578232244201173579431193912233186686909334631899386128663319440385255793509039938365317251291464699008298418135581044563303731626670311852507533338060436732919434997559981784017846673154085330764745523204112270207344096412674830558000430761363378632772699832417673456291088073930392891173998550012840792451703548370166136855745707727219844542993277805957461180695103331291940341960381660117542667917886192739505725015185891250483934892540478041024885651989797407496803526914326764372262484480781352072290263394678335012210980577565209255052003795520305423904401180539703103828628216519611359265350333029731175129841834820595193798843774714063503320514710718656557830807767762197015537774359531648609134748257968381854149150413982350774799681139412601919109477270611744823569117022538678989151714335025486100379180742491424152677459200997673336795877972599136100351011917940813053785201096551742998775737150615870340109732634050104741950899317062231172816448879636686527837746602187011092757660316705150776831182485690442163744192534328774141332153466180188673796567494787146321047388580691255865967731562767351990826741311974647958830632231667294780767158617166275760500328268274992312736579238878939110485574235654544235030720391879136403506313164473622468798610312930466154835854295331194992977588583666923642407154303264343773856243186959384543609373393930396621083096637392200776125176632815425830199798179154277648081703915289426921142982629597868693418647116505001263700581165121612049174073875897259143622488109318113248021042304566847437273803477532533721454784510923790246637036856543779640991394372926754827327060242524779624449732477217327993703155026814782387155559416152838901949613795105136308225179038414510786236488026827405221368020966460731055502558548122862488973915648132828026915346030004496403617851403781940641663400106076416294826581520595737165806505735717827116006826173857250571407104377647812974900400387153362483941864654945964941595863783032328097139973786294077571319174828372535380998113958621376792645512663923487941487588414741650561176762739498452447100407081709903941280960243753604301877478164974170364842060026364676848522454945056831419388595244057154587390502988920014843780795961193770501785106533921191409912535634296549827925497461516320910778938979488459735343138010536769968251136506786831842993496914239509687762211977807211945380221445883121527191474131594599165889032755751542484239667034451913208989203970033463518178371914673794722360936330613393496681594750556051315683573210645793272827330429413058197502747612141315374858143226228033542416470471284612544961369678236363623397862484948595520226180935612434294200610640226712996151654775831022242516119570279346922683223283305150978640601871617646171994192079861671905845364634041435742525263090427885853341702903421347247975922433684745578245587373991303354400400441315120548440052108001468334323846590451869945613179878953171680805815428078818943496724179152891146172129012946908940734013150639847599261969865114085302505630320892782453780557336484689502542338573078852138022668695208289236960407149966983282527464311885581851773333361206414794005677244643687789459686351899638010018925443625092971672564304608381469745465757719934222792050029334827527661138466740178270869793750836998998714637458148408684567348421839806963586091872400752160385398370307181300803698322353146688077199183005819548357576527590669972463814867660252145111252669180633681740425031137368194703811429875842905426494807378403017470613742286904841531226250696903976731132667385893531028539067943027230614544125022878193211447987240070189922244869659144113913763669876603449949789159052925726393421399304037394360315587443284203793069303203787545660806579039228394159709625572464307042347010106583123458484762006453808987337872390520472363932345968514468832222662066486332448420522341452762537813212056476510344482821239696185109160205219913004831590127266059595398231176607436825692642238858983292123789610720564036531672990517612206106370724497687688451987007328739895830918845942637631096116412777582606270015076015903583934494576007528244071579805470140719898694414765687398407938575441724661304546270113011443031275896534862681862534852256963503632691597425707388674066874362582255497379736558500253794680125609457432465460875868222736554763432720710461496079984467141076436900589543051758087373186721730809500535903616812646764531876388514380236103290596264368902205932333581766815878958268058111371992072045846515940365267609591074329179481021079702710308071434604378908496047308146537731232936689669956568233719044570532926375860831392386304176023832301108781068931650349110162441435377897438313320514576845044250852747016366376890786029881627361640350945129005509250574534657030285019454244498360845094540156145790405679927147888456309178986733068734302661033168248437346184037682955539239631548261965244895952627324603993750261461282296581588900721438913152683211687894828319209365484402336969838190501289966164145055188580277269884779288765484873476527254689910127065677430287059068003790154154807367330352115594515852177247548104022703744223558188909821403705669044198871490637111230208105746336297995197011068562620241597394979999021246049563937743352115307826288899363298485902974257241236497083384861286084524388218589483628901425341632498388059964762057434004072156754813061058681902396520613909220230691626561828966635764751492955595682049414906547306093173835957863746109634376340874180817087895217124797317731622795015517903116029790698885678967192635993969247634228501911071158450408480352421160336559689671989594817376690780465258456057016463740343536710499440405207009621525745421859562676037839003110891611843522011531342411181557065620070760966050974224628496081489482096433572720765175843705713361695726373773359448329536873243284024011656082952730175987897963865901600361777644392076564056982004840471362942650771669569079643353712360859538362899818826327990007796407040561218372774451184961408959885919197368168800295846801691415008848621492027228462540184619027829634127992625287727873051598183110046197090919579044501204123490084962641354331566060743176308568196745296652406515396310577386064707647520599673643176814319570554986921737080148450597181385815954151989517286498068461398005934068424562084424337274412711342770257026424986998288466762624847849877927312558797025975889723882193430779770530639186184590477720371902163789812776882918513516065639796267232488016150460438885671896671163706227988268973521873367254551632883090517290566942903977861727998696445514597771943536807076533156266481581314090079380832735822528029951719486668763453619595710117316088314979640682737204690816540434513407412338233429855126443179244709435817010401501812510101328222832051543503585475698881669516074854964993556261286379939842168658114102551596167264785618950991465879114815010259233255690447912774728527700442136917894455267152754602110949916316295982436860767963135086086309911086328802388903900498016310494802527907182506303840658314873982823975960952628526891381459438562194710068221374270753648668560820927622806397670601953951431441725653405720911261016611661526708333770591579898919291510389581347063362671272904447643029836296950294911623493665779447798966723027337093524539266778497412711597348322075506379358756227985127080260746700267458903999514531723846078930238501432464728841366072312674477118031485738967795410426981523564401279678550326913250881358513299986974619977243509405839296064843084304075119744110275720515363259030305361394170480767528831005086780733228467715343983936189899391954921936046815172644382765683057169418877566280987570746781838113793968496199479832677273239546235000780207760200064384452881374054154311281037285923216858592557850200378747685084065271753281139027783449794528321019500613132618238555189358532650865614471214108958516315555635955132423952796421413146872445008627708558010869312280790816139855156091906280174303488047510739935349664751028679597362146854984708524101746016141601395377524900326588544748782660283465466079092968007971201949837848057361027903642753545864508489120260685265916655387577147105397174591747937738838252795024494236230404998729596925703066539376928038766298408261914757852569586116316920469430682769499934642150902755248659527236259953526064493137895781060733054328053705601202381607262286182458554142284460416732572171310849249228668699138934928173911515583873829834978599134796388934383579560133613579375380791376596635538923602333255577091985746794518584091403824534268727233072531964409424796588840013965572579712801983759806403090284518893816267549560055938856722405343277848208409898555683298656755888042841312546207329633162148181975421600395979704959562147640305880697293383248212915210745463973212925410645252950967508648018203670439382078747619994535532248205409508346121586244616814120720886280771066193250483106529258425478654043205358611183688119511239125445122420212073107144702575930715972835931749859678715855381877598877306188499586513353337391046866652438941653470835211627956655482841703488101386520501764273922335194166649682335606818835266273610215463173337095101180371000475366222084525754402134305488577414556300133038785604200000026454664583595688654092877487540997190102515217987914488749899917815155495794126926174122467913121666738335938191264816704995526565673869448086101596904090759366251361964565671941608127870985606939313015710819265512348478801041953583097771717174556623613649549475154894971681507419125876268188433319903468628982157577948995132683426703647163291541737297850980470013456122611127506667407234266416255371100190081317469587444640192072973683252915697979921214635701110075350749253520616057666062416963684428390911250441890947525756298034494683858471455266902492452109879705014099918032950535691480378082819155014189390928950919710544255696609061423220746276966136778693568395022090938536206420616009124640266422804868401981028331783657185132193709428941497104803106984067588706808123852671215901005767619339603612940727009089505114811731186142014856052131481554820823066179064736962416975079350004547078379334628799574420166673267422570761961247417990240577007871014964031074118735497574876965253908409449395215308948317118477159980355713957414263910288112816890019573979821907593660104098467287598538855686545688476130478859000963613435554929698468015123046849288886768426230565380443857780294694465721271770043685868576100247551679761893662375848714600257608234774413103270231839553869137474968728688529946135909440997307120202654179398056491672138494823081531076108096989965184295554465093587905615343793878822280500974495900167653114379270615129319515680307013007368577200439312659937630576983420606639769510055247757556592656223316244213734338576320107160294292320673843849888377510961923517615195224574055388339303637259433181214122726528627322578109154692804110605786852391518496677664505464391034802862299849683254549141597651410651445653413139046255350402590065289324329730525603066028491968253196860420210246447759709415565710850780447989916493241886790869437935037717427740169462939641756844893576946810341140730011726221419207960569946990470318910764470922254142808675171665439709719074170574338725210988856652304837858418816425240110650247379531474164625245955892264948672574348367316699180242039979566922428356795569112643918692716478934619615488749087639425490766336830942790005098690540365616471268428979479980458260270430708469814119697558364172166724135382077467654063558648425802430512344488030009981791119447959061578339542582283848194020835275889139835394042394016448457620925771571986441540169044309024552453753205937411439423220291180589656473629449894521404857263902061363853710750439011160314090319504329282451007584936902780407527816280654348019257124259574977975137969871980619997024138453334569667600750122071911437922679309064251895279406813669977003360201417389944206887833878649387892161535697106325965312218226851699502400762898616435755897336319220200062461114122902057508144364520727403688043485556615593201084726225164024090892207686894141537155199751019782027363262697092363409771667349821074961455121783061334241781679966304325358462558397094568203980460555659918763720747362852154533302694217417962352125216329430778609123352447002879566177644527976331162607444572842839557345852745508855518988553199040884061815705340620343925675993889716896515435024053526877989158747832086584771742917536460137751318007394312104912139990712158674451554406136191515708866286929029782327851068884508425785613058726326810075014489307594519736470395401068526998789981255814938220355351781342399104591546884289197597738192570396942014429041358660644072185972863185408301456350542081879201052311163164398535135807895683042963337145623046712181929757984609622599155665926960948359355008754418699042968549984070080809079847528002873592371635392745972200693739685458415115138618407919486423119575507736541470619184096899731625647996109087983514117300806574620267780684609698447942460884853457292325651334714537999807433528256399312337145903031188964786078626630570626636041308659335948265433934827969194742081845388225760245368560607486055499326441137852631155735584696535742281893760423484063352177225548546096890871435813576967210793631129220236252866771282274264655696744904915852681455133789858679401022026349454739409478520762590743858624309968877686377823746688535231997332067767545046883096806016068728356403434776003525366217363413738401786543270848106995119896836060636403002807659149001232189455886554113776250431026012951273187934675936573643662343373412109606565194011384836492552012527281725412915858447799291842012820279188713575072235664464890361956435182487704603485170369049238647727523612339119723075538605195353017025386759743378234943803011711039414424442494164553866698951159376958942380679396124452734124111336803795527173009733666090233526229342635428703456918809159803259833671766238143005140961399213614248411140190735021268292461728309276163873101639039847524039954835344208937451600742563821438045189199545664520196036772139789149491497354886902787799190894581095222246522604695562647513581579199406403992648631591837025682787143323201581969906876243099972189801066938157123795878024257137914016979503780988129167775553569430824551416042541909461357335546404783348909252378257551236195475309786374498620065582934114213295370094141555848560415306592963627022346943551703328233361504765640656980446228073298128924237886604828414753331858845621588941533470959308027450116311645152544410509790894041986620640177727183474366128484709887567056273416848064725192392941336199721886203931519023776587250921563774720206003284536018386726803250054669178480990252676765178618217542607354958244461073274286866628660845021308581792966775761816641039081213574368475262245538414138490311280811923023351566056054559469772693662865970009720289730661553439497951269604118485078802957680101118295001797349940818778814873935365964336406277990913518012135279013118338781938952706834872815216420881181049537558566996677475763914393387612500088609445510136122195835518314939910298651128146004806145052160426803590374634561775939321281935433955172267664242601207780347827489300653928001870032332355655729062378822324390329263975309048857851193102363057133731356866292926225314961810848500129501847848123574581389048073413966806271020020495061632139873927978876503870118004468103140142156982733264835165568232162057100081324594662712725299155957761328143040409867585730039156643313475332406297424834082410351933105391566611940962692677253517409026401391588961982137241883671255131398347218781027036443726250428331325437772264402828805475374379296007305754448236495222685290793384464659594758769550493206212714878664899968590557135482703188289000553824021238239659742054093993525400371475851193187935239521864428783871071768102978768735965584172620175775975893586445562499011311187427329574383037783680057647771012009966274146035631777105867157344631685809167580703303443869369548813010755872782988493658333011559259560546380842836299726634512395279336974761358151639573574131795482926035401248107941593808483833239688259694315198450654265842191118743907133485665850515237352941126056258470369538784188907190307217502170195794549086995898138422019273403468349763974561023727467500868233355346373847298799273107215739195684330287925277513187492636555198139423699957404521015741898257514078576389778899892329997927120590804071351362737100963338775241830790933148199857249968519761956482851205665224892116958231594751003846993766913688770651075466349008264460939327240323668489254756043317806558677559144376690204307762219453211189559614340374001672789452526210342059414106521863416077275464565647451163973399573883863606484370277284977781533516118453884421595273004216957345058063598776102373283344388973393523060298973827457789115984316664744033945146220280626553961980080647385412695338623869638306117454057362750299037892308209200255743460583284411118080729036833556224230170872549879823605660796734915386522558081030115168242252291023371224957687219833223297519452409488530259926799578941052758148163096562959903724611757505110119518240707161463504525745534533552047539097942027948595631952177871063786941727629455491755417668518044813141933089918429154846735704593601228939580597244327110658726433018531107509571441474352504136503149088539893707399288246444561785818436541187727134565290329636956701185643093792997256653530912192476850205662094263082652139625816306828828401083698154771836572024316418862702425591803706692619360147383543894458850263876314471354649490945230643215623937793018242122589557753904573484539902121817629652327241458283310353626375194258210033949594389194432676020777722378654752610772460388077951158954572000080119805780801515554102373052171925153494280875159036898720774873087511179984170011214247792767143879819313117170162748961393020069068766355782503516565276591117254880761483372821528584242122577630266946441649295314004982771735582619380719289567708895837833195640003923676986773380384602958559771366303632565294575009320271561303756326430667634304910958772589852078105721560755422778680837193553867103144136236856479306628333977542000368071509851868912117900106969641374493916148634860834020441911389721894141223311804741192326419074016612315312244830601065592678165563102169415933023817491033026596095731248481557513609564169831556988661701172559036114028843008935785647549706517449936940409225891939035605304164684824568754982280973627665879966576995450423731335183286792629227116921006656895445217019627736028049794903691511948401003355895328035846201007996186359423323429852478980209513965653600632759471633877282019617144833504432172542526969082976373597305899285485279495357354513773242286289903938631642335231307556728224292119163212523621886380454351803042706792313962619571060083246006639628684266685833785349064128427822976807488238163286408932570608435138584946588524860995426311969142972008878915655929489987574864279719419577607600956183732691856278684905392649001989721329203015115569737774708637644033298232755152318391952227302381989884508086863398057808203022560792732462903340871729442547164840155558604272566808814305810982232549961498068692392130432370293584734657047388667655121218828244318995248567715417935023227715036834347958499296575724365211122935593094520447241231013257453849730988026670626840166371887792148846125370747226813945131551917254141223174845621653690593763634498478821011089179567928247187749955221518995496415094165695990210016027690789333445990188290123958926960229622568432638739800046970123055155927540618114736737040420634450461113283805458289689435840603861008041561490508535339739558361328681542273476627301562322589817652798427193784469056321184818716890454487207170026902131758298466786363865026866091627063694808157528800318746213476505467120631195720433558717022559560676613466594451284009582176034914741857836149468053410054410701754873812832199719889255339608700433627462918701902511032362351558515713815542426397235319396123895445385944931380271357382534842116191598422173777275898940923737839991022148566793132586575005472239766098718665902081770531440507141488172796881929215381341268515455513572657792109445634565767941545012094864331894931647171031392776591363557525677101530899011394674709386254216793112110370782119179058436984620567527275720765601006868671165654319750723129885555988417766207409437801282657909734624951115160963475291946813347642997731842399853058753975827447424520344382990104282744349102228749581162723453876511140754087470306091573964661734922668463118688090279907899383058581742195587911307638767745649015350761650642630088922231451481616278791907034376156079668473329173902053905349052249853232777083253154860035092436644757262213796454189291445359295026741501626005681438542854432637017827658560436388944279808493004439560225339486977129155714150105040660400421508779826252927733725535741272406395550135827728077377084498204713886562183132783188494484418843106145192198886753656058540025369335601296595528169543968993503350209135602705146400840612925940166703035366001474870708416107349029828385009415283979877899204971199194025330205922652277520848815435137035062184868566363778421216396347137937117419485167411952844313426047690139787349914850078150677812214572675763280377368585675074080712906889465563878109812215121675232861742337104476999600276089324516963079665545972446281131993800079634456774173193120441629154494664223055125539473434377903868592288514718420954357177926343566612189478404461885994113483286147640161062647293544364542596199709986528768055742234063699920912459049368988854796861248189170184055525039054407748259114009179329556368429865279325342426914565225344589082423961901520383606489654132998016860255123419762569276022694002974026849774555295324920472879773703578009619352026283609469004316179726704545255223132110241358647825658250680163810438653301525879842022819630930065577948537639021255140149310342042544153129244355183570478633141322050901484569372151059508262917494020971753471554654526088419592686581213969571839079837922947022525332719835004921534819679193186425567835343039017650401458481750556080783403396867562417771857914796236492812837468870806119282837700699045112079933621138881242987553408525380600620558345644495554382769792145641213660855596151405595177949330315603122125277814831717708210957811909102547353336166896401344816969927160778855340412871523879803545003948677766848150541502105907719633802586327575624758432195159872948494563286888736593860660474083267181237751582040462192169200734360811047904965348191530366118003923259297937242695036927952993747639984008603568217161244139006923122454341763792100552606114236673373781032414326636751475793818394200885078394870431573676206638285544941473639902714050544080075339948466327555849393989249846955483870287651176049012180119315543552426647679972144092810167305433603656053173118769514970342298979385670194343412737999860205735422289081177650550241221568751573176305743035940496724719818454694592922526540662653651642266731470975518628834351148577802122943583538484666729852658955924363078725603369885577798100610448791762830023046077943154852232928680202206095864269204571128450564145291761943025231968468237448187486980475105176971475088786701272537854342929141551617756312094986084237896752457978952627896418650762139884596455683788319295796268145285864812004737004976237999146514362585378467368726441195980055894184126719915914950330583719939678643656229004136740702907069151146057826167390330576168476384815900802316366393076792126254984438062103675692255739391690367027062679405099211116381245995616749343944618819046350273823973310920196241014913337397816001238572084068188599984171052236378641049472981970523344409563154314174347695061263472907195641437136400937013888956824164882181487742153890064170809116835173471724130856803061492265474727027415189751152760505271786798847543134990856898715649961099154365318244128995828058559396424656877802568533682351804632126530113194110047667819881824228131262234197809091486647613091888959469529534138714558027359999723969741790477307401002071625185986384799265298722782754564296220634426275700492672020661031200295404724150444386986800511146998012110783551946286959503456570140368785550657577229444327424417023558056808888444340953073431811872497415603132247946155473457838366944880563088865399372430167326039962731855140735335953405631871637640200074670817165295953422054285697923116731144994970045579978314485644496691256515486035152875397548501178262064904012929320183455733852893624160107497628374628656193698634128092395995261193138953183434240937482729417246351850410767719412488982826013487890268911530164277943351464092041180712116718166514770385096812296394822271522616945395363324052217299734086598804680411038504643375556391947608560991414338965330146393924196981699606227594568676301046650538010385697707872696996525679411976581966665579146520264151516078644693356470199439798155751448162727927324082182737910492026793753167534525643571890592078053462939781956968034831805956427687755385762477897189787875812478625044297264357587584701733635545375742176136326000980720259923708249732726992670513878381518120703032993415623865634224977311670101762141513290805134651090843701023610438105902806481442179683211468039506071571991707705349409307927023065252709371881661657355439086322755532846527593270849153885480970477146173395308581809824560137287953905126522809619856780333703255059109474739206580722730752505338489631589837565139140134860764839117472014334749986113484793412696559084895620697862994505749193952598603152295267294073541233648657316689992233510163725220838535253069492640959964110302761320441869830882209031067897244475201810065036672372078207215542808734887384904434895732302463244501093082489465857957791471680248938290899439696051921031993363619955476877599716709745660223505534784578350718678888526956959054124350912837581007674408412745479912476436387429414007314238436030578358351032678885974146231216651533240746747167829929870789285918102042890076925553577187459089402609161465565965689142053327712907315301610093054136022793133316073483294190091784905381730217285299223656640257091416478049773397087917343466850008663012534067890171627140870215273858742424566748194848712166979075483651765961115442297507784020269437698954363029927130413568409397593808891288353760238896476226253191628042093262674432824165935853267704865749478119755766915583683207850609723811236075778601116048237369793593788729794284757226358159385635183574892552573806208642322552557452984236515208603948168798810365938142224273246417579729768008016528940300233357980222725649174305384764663522471568703878241540342024331121187333903151765876012831460618939754886620018823142125477249903984531974433417806868274405697507656638552676008469400744963837266283325533749369843634769533734472302196946268604363501742178015248149272301702665878738349792203271999097650203347281405002008877990810666657230605588502035385828310917144827958091812432353765662943978203810572812614060397666858658373206002985081039912835399254279577538731083802382769048138241212111746867429488922700595682569612170146873152458018129248835258433656663336723235029656645647472350780044492164874043785024571798101811281284760368696145364144195975582155791029894053909864944320299885583020644158005220164855086762729286789202746857296613444543619827625124460075343193411193428064396937282827911626786925519034139771914615863000860149409767753596096624585174193968067146934886013776865341573065605840266053670063308709823371545121805182685742269369158508897482641113650949867478462506822784964341042910594140336009863785830044824787511853548548565149325132808291354484510598655768394323774432545535592744463722183966306352640882336695726351692749473714685671920288853840712050283467032321274484087807895922558880641355560748090256360527405226287664674210275592787005420772751747090362856305995139436823152700921033248424561264471381987661349345518518609339078127936849935381600328431926859053837079741074759276230778138850979046615035240173132832491542241780878785257705282120352629176220417231919733359866422482673881772842791560310360756858825097433476670701448363702790331040308120168072514897020865755530781236469477877939674099824566261812632249038738390735216230729485106129112035155728433422206555040404539387129799271072478274558648214431202599884265168554699827831286130006248152630730753727101163026427435027632037735307469420751798262671821251946735981665060554292488162127914640095684807378657764474761110427618756529468937114685465826675074282997208065831282904535054090336723889405805380214803300457988726410000163499184127455339714450144017207172383784588447001344517571913768140534871563828729654785915689377957199680898053854578718633184587447852725094442691158141810978904008782600987301471146979799339044537082916786463263426028460467154694164739142845006257967271299621748286083957559948937146761271058033575160043668049991830475235549809373983311927855680348076413584596732329832679924276647743112520605959382594832846610223499221159901906094692346128449410727621964647578905317314044245570263439476828682097219798003927473043331921395881617404107814678476067131659557630382815254753794967383607147031762558645290993591284877843783789099086375081005017535176184234368318254473650488667200091435318059995992242124773751757088248971138480475279893445077358911257100371870905691365970007197375395739400282357802225202310925962316284959770201032686508031987839863717571656579239544504425162674900766812466984111385179694764960493273003490313487980531615323614522106084351220046978319921248421299647935387997922579185446047983741210001281818783575399169835880035989438546697722713478722860864553870571159593514445995575840099704500888610198734872061501755285683303207793263448247694932158328507693747135561173685202875451504426250673755541815311578214036417473036335469784416323106984921489077881014342407316435172378670695954022475726102065098802412644305388325819336154586190224014659213131001026986282753902407399475639611824397659457630427285023779966710862482625211355252913563899508327557403898386700523224883679607580975629515470560449667639805751381483272032683467682831740095974018678377744693073499648762537995380667248123664999355727887850874235812276250079062049418380833995901857589302181102816835439166863747706979603288826450673412852642106063764730527178370562292447927012929594026863628627286085831362337829170952124871905956928416731847658603498194302646951812966129579506185686456797380338437315398965515433646174179713743720454183679208513494069911396362338838451327891557008423308001562679919123303343221003376494359108450276346277976383992498504725493921273933808964165878852582779040616987101261647376373942573095073726076714967997961138632380358400461782642239476393311877884481705369454831515504171565621837336577455668303949775166802395651945646124997752984634195534480327196014939534071688136732007953269835298913769673878145212853004048299418123812270912441508541401403752081295552697786606645909082554006047980299873263077152518090595306831996626248226025332999305816957837877605395650838032976677713849567959301854762591755244522765286719297174727153506407769777508194318322296581034123435046822078733094856531317858688836782302686687526739325993010509992149638312092722058053052340756553841439017326180787367287506143662323681719815083543401799434839886056359399002853629416272600507697325511337138424159508345466637258588829883918508261436455627079893100287875838096096121334841974020646256106908092974895545505683825985886665122905803834712843148261948779206152795310598283547825098057540051048123308665668751499614155831301474656339549205097292715723357582039208912789024581301642336400331628621849562679079479264614585989131564599470819496249964225465946927800208983686657222792133544761961766346482648044009777686862678507344555891484576353032503132498613756725904404286405546987112228848612573741543410818184113484044653026739211017299248318414109904159616791938702716732190550811357787077237369930140059628853394992745084060870807510746495266634682506860480731409672770229735584786897635097364243205889787154088409042678093134621625770983469867970012740915907954562046560470727415066306415685447015583950567434602190383606053231408613227648136365172223353707318918833056486659251336570961704611325732021648491518442497568975171771861267399088098291167121688156686154455569410356832376142860962175744883664837511757297185646652335267680823249550455331098263148639753320526880214187208298645571299349648711627027007791731901011811303566426031300062270229576615053546727227970538789572486753728983047224348685246957727205900453991771486773987865327999000717067425571283996254642751353312305007397689912066175102689818916729765342197724121423573268093755326128293697152512875037535986704567842925029098607839357782630526805534572850008594642531067004274259967553582260671878831059919119819938479231427065482891253934169063236241709039989080061403613918046726880694018476175349223970619074823380276322932148066165034944744897228712638867364373762053453120374887061996445906971455549268150997769808535089996195219110052496462221037542825523619380300902870103305728387203137690446703551581188150193966054709386057531933241253319297612439786104315777716952449454540783653774595168116876166184288723157894140559127059251148248249630788228390153164622931568565971755034713217806599269620504781844557590052178870227042855282713808116231056685625959224996934519614632735531277144285672806628666329258988554765407651521677450264641927196469077929779409852217682745995807287441505955546270836249153921658241494830513145311215657094560333597161292796301141731109239430089356680151253605246769872005779942867291086805116841633300334962790967802030927063428664740206292812041887935912313790154243511145309092919778611978580133700850248704235941011060933987744115798231934005894067823067961019420474198698987024339780300575763501219307569597342533815658352130718096272614495215732757340407515900974408620605471340669918974510159170955505090684690131194011142975595459647060029207518293871988187025568105257940927808668979999905713946950803468619208255704391354280814112684734594566325967135012170595633196253061060247210921245363197304941116548279721860847683141113527429551648690330294041558459658037682591327565631355958294091647572390751328206961744886973285446951855446806946018687825609302519323317675639716425545785900461455358654292997221229166968352545199375975404344966607179034229680696206710950246132106751894718427574229161299474493472428242113095763019004995316548923697175148443574410855952086604283707826080267157437000011505138446866191910486490011371081443849839880326393547482325326425932700525969457817241817136621338863836980920470764337017909774430952211194966058927311718483623993040501225405987733754646807106189219359772752544748899441247704521426846568738624168066333675333477389013204822878736364098032736190557149020092025339758336584966763457350610641354614972050097653877821920928030406132704356824397782342038334371802043228425463504246362518862336730280943326977178983099202064674688032874943438191211508025200176167552649351761931930995718981141033994179170268446512266083566760134443619199830987607466781881780274752126645357645387993958977962785634527660924172571051554896394329135173506744846009507476472758156089244577340962633290937376348049067949299029593761987084128427957100767938633357566063819245905124617738192984308185617364079141079026673991685594466624346063050337575707276940098012844090157703958849571293804950370755892804364804630850390120680733887637451528313202065560263697406937451160977200078319507597376780124575374502693147816326490148175841510120173600988805467305550558207534981686767663971661763743095037752483589884239588770759138178304031359929091957633086372896785178936169795628458822948696346286173935448027065742333301729983126774702098926047014168040112032174172084348831724150470924873832401856152790879823365421501236163442060279906378479389653226807242885996845449518394029420720349507350199646261960998592726868880489305047339517184383511763032203451931173403183165889101087298427103355285524141571955695019741495598309335617749248664910719963267042035619995782226233578494563045427646523991170783268933780908542981810962755777703038068473832143628256119811768659374178189432971123457453055586378670940697383495851513294682965448957040198119843948047153395009881346986700816585065576639043001622452654574714812502093063623905262975031321144583232096186594375759495709482165904936941202151262360000991718617984685724333741117670337314908835671177261279554670528239560334478699298645529659632516494912359800492540571984761777156268253986371593264381062859924398456727468329048778903994162199981334547263798868649386431050496530708997051069578195962105997059768113386719162085778548044053833374677969027514422857158018150762294232343090525789449262495437884211772429709112404699767512298362992592139689832433277944249139959580259165156014641431918151052587813973439415904270264128573348442636404077490706186627763548296835330332768005061672319306512494893729031373517818218570406804857315597212103016390006108363861535893196090431290170512199106411481998644440133446313980935678443487018093968264012763822764972328188765963859431900208529950807169270574564616129769595272530250028863936576319602518030587966630641963764087313517390193294479688960299059872055342056282415266184506331127180839380895126059216037989296081683739966154714773461664974540407840467082207090231777398263352323986786828308396147068535968259260331552548748137660784535228191289098103793465113734562902893161742000483964263323057416108926965164477546092302175195699305533795080152896900665546701678489931709860728956738612733345734286013097796717775330675790722217110282514302773974796049707697586803155258536962655631123850666745750159644440839432827940990753075970973189429440666251690988625199696157168531797840674699560592513751835878272686373916634396419930194266555580025831063664528436501181086969076512189077113756802747319602310075784913035416426327541831406038962218005738281380437792599709708875008902340847968342890239025084988311328560117320803123247993326493360016805723305210873065634835028392835316401909554587615082502285153813290379602906649166839410613946083202004719609899087647717472016291939635102296788342458786788701515952551377545537062654493412548764627137890453290464251763170080281504959937170263821619920306068735254709730114685312124475016617731137903300407663589219111045168042284609001420640129895123566401735859236990378342946808162535560409925123737510284172671432608651977408743880845448404886173685284774985055510405587286966838374144584495461867479281829287862162423309327105298771803275294612530790912245639826811473256330648944243348457107759324825734373321352358599239727030462606422876624154320504667676813921333466428658986127384775735494144366599860949315809609521038078853060110980230223544400582609743973945865685386757351071905875166760047044871997241385299636647995836670818995493803246640510602572935412370759187700448269403284830875722267329372913294061300345925992231927227885168893428496418135523139253807421679382193808561027750344735198210540265201163263646436017572447984159379285116440843022099226477402439281919565217011494762826410082255734689465292779411086667482149707798118749829845306269540402437686732577095475779156270621478335911662342239419970963224480909369386011497580187138586380746895426185883807943788741245685214683538304046528044061211380460254867334818740646657147517973482423478684426993217076258224632279463709929734047806811720068741645658122793787503875028104803178944885894738673242361243835419911996880450688462770157339793941518971930116736692279085925703727243066339389414610652002103779294449414628146966102859102604057299666990980953363537098160530435421161842288238341632596953790917812856866322254488574238191843776477195848953035249153810230157288331589881950960281084607862768863188675931259679553833222414189991394828800770370007344710393448341596037994802416406372861472548121996469871120852540931150673578242564623845930465390854716537727394073175485718455749343658553464869171631482570579697334829145818495809118814252766095637480679630050055323111280616067646844135889600119598069932880222423163581280597837418833355304217378521479866326677224705847242674005829074598442863224821285850520421808759888462900513703011529203571210439817182323561715944413071647331988645173578677335154952973628339731169029269462535233805487893836031105176146686012574716927863448308193944633304872222926119776948482007577312816716683846315351622623821074039021318266981192164226766425630184664900741197348738255764452666833886230373683202452769668456913952613944015453780844450032477118425905830822918559189003191824509183188776668734041116139523057139387118442214849816799028853450667120053484815963589699707720344644763146441125953581234943066440607119005260931352882814454189170034870451576250561696154398403508209408188012759310143616550636845622795415749788412066195559850414505508532855570364331527543439997484500346976863168146646120739608029094203045881257340444546125654358599698492234599522083757581791437398621516526498546953265311813140776513513028675386235405115343088570951067894399688537139361829127194420106638844142045142257960288477352727681707460413779684299912652749488236881053113589301921823270051578612434658058937504726017930696905034592421269045424177777667172328911341698492612795239168393008650795156725385030429308451859022333394655473022732593085908561487294792314784312061252010312850004119198313846646188048557414206091413896735294329832076418964154273719235671017233059787043341138105185835295446088066698376099054190158766934577566324250589965506138248489422742268049734618290899285882172535901574227134896848356456982930260945595141088042361279814970200950934094273877620177470440293273476437456258031251094813353547424331280746237168091809048110770961517164968765058756057330078645698073181550450910039942172147766795075452109893073166425217201512820985644205535986240278240764030122410322302647558104943544247733218024602281268354475924196154375228436204769889361561443241615134803693012533454957719883895622308802171855011477170661168521796153066648242280322938356463227542670024561955367979557990712983221575859225105028151467568350699800713619286355612232579206770931101464314243117481607515807818563360538074338174765414718160061160908499734168634840042336748375664259163828523081525732602519880395209673791042081839499727710095197259789643769208900379315926264178963518717489353132498952850966480977553313801935794954837665096378872204212828927039243659936274298501548482619355041223663429453215711654386079703779713414555262227848114530171160431014801940294858142920070510362315864757744596606618378386930934979271804373843319686389786598948848982262126896776750725305563184809384361735769112811348131682985838024323081708313553164711798036035764009484884095468489695508634252903796955664903746323661334869315775950021837700509006405576283066489968414084890284024680493632033088427252075131409914529729564093071751513724714253627217646346679520790831021973653796147542274387446950189744858909843345158090412111669146549460881194145569131702146465619048923311093988493345558513938586731625499029750957172190180975811661764529344151219089541153101743549041359280134071814154225430813704841777154943986074963589155296001482420283479703059892315585204718106252527923715241540201511536923497091852357182552276439970507654801695909294747535231974844750456322146155503424200965096715918270645239718276199238714480496189151069006256978391220891812265423489845447875398683264598387022575795222885056729936667550908848773366476486477715696491538417654406820153769540272491889371381602489888844923445205129295452398419058826661033853000502613888707866582010922805386394805710418038960343793887502332498634927010566790258631376403973304326910936155218707002176763318952830570480124573107083224662773745163944305208508669197587453033657288925576249535531106517873639186376488954860797007384497437865564962626641533157175950004311939961844608071852954249485276060512171959890828854163505464593807991287718417300507163507073169055685471460450684867724037678124381243498093382502990328968455414661217921655870423212199142719597150567890989910256419711107758840848596524570087132405717736080616662650757010470573376078251095550708110126624289951908760746509720597361162503373401854327815570968363065815385748353405279910411335932434767811291390044631452239045061768116156780020292957874758726829284184145987485005314326684803695417773572074694962631530479564673400207137599153999841964444243680932340291537267857761755372560192535214311927984343387442841931225444926877065262914260300906929601540320090820874719841330047269573853712089734614968120824232135735354585448401566769859298667920955232534409703425368528011421543248946864687811568661612926103502308126154388381884093075942179635296386830704225843842790436071423090238002829207588186872864011575539564933350333136043123209407217588842216040782246687595762540251173095762741871904533004043424483136454642786486551026515424510925875974951714047782333854842753857571230585020628739420639657014971963163581825920908928296083426144197580573727163049397451167011048913715403530888872488822545886805944606652575610591408364359555306047764182381326122876998656602536825107128495739682429942177229149800396244058525289465324044080338824758382694856048760947564580730951237579540544440655124983758922246860075876287524196767569026376122758524198598770475699776907581959238062167230429750492221162589935554509295447554320797833514617640447173358255092021573462270152006819668458443878233036604503098648783540155284019705422326303661335428536634904365634516955857650500089261686724141900458510059919880084060054107489195660152867056618145321101301074763333564993589262610665533370968040182420647984774041076751921206413446551705568617804352399092595087261704174238110904966171934677459511868990255635020858777931491376874482895937106058090421682553493373561115747287921308792465672747674985652146836686427148919780978997600506462574001254411745938083725398262824618468736203347251742746137326629369421811495990040517100025844751470697032643265788680315161793567389345815871241268292023333761352018425970713616469402239996488237870468966841833587884442771467789191907693154570237783829352716876176627844159816638975648918205964142199583577858855162814103903238273696192683783527992751710375399114655378381118434485514843470075002971059623958573254712036078456110350745809645374909181840019492409275025766333501386808352116184500111980059867977355003764240186226480190592520040169233671960489539078158730220833254004367330744486756229498647179621371213954565319782933214755818761981159838403540193839194055529129788807349244151482138521638836146402938183255763429529944540839272758039616806934066665850059665823649674865452415776218723481259266569363613360695329566900765076437982900511036986129614029769209425401340515220785101860061419833516938790248345226859597493519439016119017908709625446734728571015378670156136893678300815395083587527711848838662465111621769526369121085562332774377087185309339193609232149674785485750787251962873862310350497834958707752505860035409449060665215684028307919726072571092444698154998153027663922419788373078788980293853066397550022480237797677230498472383629976767889798251277375663238920101705083608768783261170770657110125068230150377361270476804677708714776993230860340721092638596777038094477469425726015709763320518746885026394841536742150273570349958516977542568616920624420830121072657485964392242479439100366147015414792150990729588046806236521707078389957452678963792254590787222068034309512692221870107350029867779367358069540158471345378839359878719202191355667106029983139631892605221213491676757060404181069641814215726675584735940996983887346405407523427603709661724834393897201068395990981844389410244091193664961269433153504179702387125819757773508368022709184512771167683435337400817056144130997002522665075808291514610620160806959721976403966935443934209385599435319593519151064704081343059417725610739888674997957336544713351065160368312473163904606891530847682470928429510095523220656415939266544455722911610400485781924529207331188042406392310920402058672130453157058726961625915445561187128518622771822752345981070043181555075356920521228795333222143008891872125499254088153482623987197624460181951289279457059913236050176884980101203912382573705822452311907099200666813617687232842923790591944355287066415910765688745673678673768674288649477004553664763884123496387491378289625172920793492736024145886991822285061552052398498183900428159380924703939725796181916945724691253391816995449829767121262158486908583989528061923253569849011653244427664547117699228309720875374240953992265981521221649151383478294264325172064581169740488160024301287260920618694655985715988410232958282957373576753177347342351710753969891802751981019103442968919543971827741435575311143169640131009389278188921156161981367296943191034788352840747726519593989866165683191604665460280750508109333098399938384641213122412599507185111558114176692953806340160113480699910948575600865544739294414084181587035849656351475224448726627614885019700564730945722786893262490531922783239161089424299471441678728588817789357207861442199963060548808973523455222479452502247302353805124561286235107466103879487165210764980810861791101080869941410673382464979653510874531071661912078473178850130517463121966331551483023147846305606242110423114745657712496468012124016756353017605662227789222639075839432706535669283723419290950662944465210933076325862458344731374047071831297181959217404321521866254251068747428354925353959664738127114309632058435189106856608564961113813461880784086898955646910083150291373966606267383785049872737929477378734361047061116228877364118677096002726099315019060438282668469142058152526805424270579039739313412688212324481793282489382576291050327692393340511720984634156882560026888412929408888851173866846311855496148095714803340079006852329393475918406068798787095078254151666787148900110851587871311437870175672333203821619212201214474375387871538917104478761337152913413713210509726644110190135207212620837145603278913892870713179480964098730139934186660894070828968559074841811760889132111251315348388372005803377649922958794033529596345629797012652387190749631939803919077652847087797019327478842671694321218787731138409099325970900144768836150908770926619696111174676830770569065224813087911459577853310366625692612600742684878323857591632746524703017648383734626545784686730759729797961237056113183088382261768381691741823114086373402910690615256170204536513305655857038766758469052705507296452916452405369795059561599083440623238538673140560496938979041071029381757734681485664992426697313249230532180082479502350927872802858981101595885957611360046302675567496039856457519485549180474523311913372978148106474855188101526294231406142959581765282933224868711831949283675767579485073290189106133629891781220344738934021519935624311866637953688006877324644408691298415964348451324751384342402708733423538879012357540643036590374042313968780020175839723620171717184602620740154913144190662679975543688689273227883403483910959254781138282275571252427916756765488732502843188657948311485071741678215420753015125087421913083814322255988915044300601181053280603295779488890020965575918744703200231447476140605543022462869426489719766277156474156182877906318318048903846386906305480490698513897624446706371595658263731696315293483851366261638836452431441686613153875578528120435131336955109012911351502614655509366619009948773800638647673407339131157466144160213254403405155512089819757075044917859195917026952743373924260471220098179301665050154483139191997959844386780720345735148143240112445514417132091194740578243385346865405808385506272519751476599867266596660744934329796296398115721901851008607897035875045554540572038422478314246290130131567761968618712273902932300969375568535855252845061226545860820970673197309770151136032158483649746262718556674432117530827042332228472849240864440374458127371647949998242376551852513651198125044204251065580898352863679800447323265855160878159749719568054989285729993159677947329216351110838898073337897026426079898306717908989015177368073112821263318315965876428982323875375240515130782574422710834136096992768931069527652582691062973148631900686141520074112406025345478311487282903836300942400682585267849207672486199305686850467398464465496810749270302796957917601339852348227723648794755163447517490648767157661807146872599416738359642756742953422743581680005457613394364516353571921409550746145017404037321884696939545627735835741801839779989145455012801994246729163981361275343840696534416666504492467514608015311584778910581344161925485836822273524410034810834337277172201921791055803949905555419915888936012654952353530612855309693674242844347846639167012134443371587737088113986302967251660823332504646911078301560126513698665479140887500199771447476855360510302411940804641004458750468701317152142955933820633471994221318761478361900357143235064470989033160457514152154772175648515513522737335555033417541060013408759581561472571631711868821118105732020710092547576030363584053201513929348200034399727456932659484102143404942291563477973935443365953072409796102139869776708873852107175109469824455057762615450579564878109361000833026467578484961707902820218419182194088476276306411403576748432904798011963106852115957525425485256981562324922048640378217551077601056823497593111333918064077259702698405158561930457950720423595969575030771840495028564240504155306442781586045563495620723436000138751747601272924347951695337546379150658541975686283817333898987254198875539232609436408683853191773202926209099298629909354471784599859140815880307728791338251431355678838289388621074012364492185290781306903817855505633334809043103760610653509054454097787520944402070047644473277046794414270269325364010408323478021297907705099140917801077131491336633076366888197858394316193665460034845165655715558301570699166588534092858642592792286932120859090631245059277751428430318063793238122952660881798310210485781602623852883274378977831289503364419649166584479438411721886171364054325782301820348850143646259587062033009614911920167653594544203643510765465196804226926803859456847540169086648664358833487455628796852451825295104859511085480529229767792215680253512658703858213596348618867733539323614985631507842756155599428868485051642822440993316337501378187566248513281560603076691569567013096133024255545644903527994526176416370149922459571120969308177766716121641885638984048026595562369164045352617579386048710121714578403785958191752266531360113616163132487798348176139366034281434324932221265402781649542491233740564175903181338979213392254854634707188170303103773952718677267038429979232475555946944376421644831740590670308869988334413032637548327910062957477217399913642540698178352370830899609064293231119369035824454408302543441409878075327317206366889877622850195135575164563696690416491303258792645549862545358500502860082509800662459837462343202172381012383181807530498802786511331320421520319368556375266776002721523792428075976637081046678319466939879945326132643538982409859774121148966237402012368103655647975189636912975238580860683318900892764897506940407493070812451451411283170340978057836029153994899286825188904757160722353242454808778578707656943395795285277808102463633059320873738306693389499549928407238507040444494281091149290589315758347461225311848859184312371064515492633045598779402575199127360402524760043406943904752070999782747129793485995993664054250176618182896005735103669190831802186908552339308096753057914010575533455459361768147467147741272526586909820019494486664491137950378225529593594371288414663370973415371822833899829740094343585854001689179727298134388372195982210191875167792333771159959660075239153941823354559820436346352875691327321166682875115795718408890244672892171314690892954279782584902963982591871248717673659457019731173941765224172576072574752902801516908379673498163490165419258268898299650118389760718406152817565214298215450328638410421047723698332749498347098666534606652025046305217401356324100277257959804798962739111103977357408703610614938177046956081077037727357216503300527590317356187552417902923966223270820010974267672678808595565650516211999203124910471083686498240813712766887601236744020052337626881926075201452693435293282967478083755253361653614752958012011752508186443800469702951256810907327687804510377246114568138609010245244248176275313972463648164080499156926782988262032768686839352926136925914874237222844764330755686700189107441004237065134512794490378192396165663078313711805409120895920333761613056754958297013158282200902953409591617266232547658595431599396461003608112036617059744676459862381246984611162441159703001243349860291040636564803139332913746755861484098328159031960421649342192337322077224624948650333213007397198340451419813899136921541836880204829417201020156130969505395506064048426626504772015384074360336849535986113554844597229950570088599721205386733483721582362782290503853882367805029003686436758549747188241457349229240471259264239352058388336521877042256159675951211205032573872909419089971582970064789059932334595905822125144613279864935517302023823819524825636470897475240382614620081241551373426830141922553396522109708498766935064708642579985063881411445588560410371211296362534173660283980327437462827327228200214253567431688723905966607809525423737869276872345275218498419477412307022957607701724320355049985733700867218271142650590812138927289805629437031294394570239203689226945937854740947113808421875364423470312116006649832704138162582595830694099622306556163654218313800211305505892540176228927192089323998957127933670107609234325274747920441809965947975011563904700887371176617706369279520810412145275355073429994979085863720831467050922059825272627050975154284132759063819859355499906323538730802825031709547223231719223169338818748503922963337924146357150793006080398432077545039310251930416872187807404074501543814119151848876731843176396886353291858347088284499514871366417190378859334143077489747097045684044008363896630742242012227003848185130063217094070596372975890378226537366956702865630128645011884249925804202326356040965495638795709010613216198957091575782983620605941858278006866815874814975706834154213743445061938773323176435233602035757409537645517988225416766376517971954687690554280961088980817937331908282764333011548696894185037932470256934989845163262796205464377257804799076116747392640895011673809741091776736323978224329847207406764749752241824994139638705629488110593966328043179356256465647896317150847841457716154169979362912513745225764284515409473357721586046522949577101953255071481104299601546653400301068795225501521499318921685397629209642949730244542656730042390113618121671832548568000861818042379188678461070323788133471748944978801704221046630709938476382308068375340692352510152324803313796381600697774884125291812869654150322564513047442743756634057310968802284393423312481868122433110833110476784244129658155737129868089220251989501529497014632302769096515487411558312081553917428980124316363593993273241130284840822677407777800593056917107596846156335117267324297543891008986665403589548417463011277342568690403315487913526020456610974115929050142893349430407633119984347485508105969854112477991143551190960685504394899999998397051921217650357144174997447011594843335443387650134267786746132089902070006410867580341847459496662387357017832744803581036498193041514614963723110978294099343712629329640528131504668052185299919439884764686497556992697741482743565386267366090808381971958545215400298765983693354397865432942520944882453217716880220966963048833873232052193793741085892614048737650910116670126484197884681036767520164254692789663322647280515992993457221694213190941297094743390425585669850347402722905796997995569961198853667121922056938095969012854874963466248785035842773684389176881553735080339041786729085452729158836135135441015911788508130526537103868120775860479440735813024688305848507745654466404236311698643507406285088358930987490746008453970595639208129179245076613952273093003499631102596084078653627275891704558603639697659588343085371734282794306526844671075411897030102704784138175036873363697620627679753133385844934610629117692048529675981550459978842658630073535803925764740073308248422979668070136559837399505937003788469657655458413133685671300689927505572233022139698634227430278138444941827087082281654202357145488106391982509406836350883872178853013814601098336465661163557924404358172500501693021834475485214087877686935866303331407258312536891299925008405923309163519799369521832929757013922640338821857596222845179367001420198763990111695398337749892216843305751964849463936628365937235229231775188928871867749670680542688511792391860796083057424487119163389901778270562007552561333596180983119276684161789761952476911383957778670472913309800926498743032307833065349562634785494487051514583556647622482188595154625996937757838004786834506247799682424634692644674245574468448319250074445587099176517109794870397344198774705788510149354452667586864705213324495118474058903027583202144644411047208017012896026547578795864442392242526639238746417060014924114891563352140156465722204573194117440645308091748400371069071469328809654822071669142934445812605703749708802430186612478051730377562885413426115599094200266035047508671803684676811472319269697529887372214933470429586972883779703666077465744767418272975223400692932120338808378371774447312667704164997658190121067100144143159381481880798320416277098424714089737363472759803638005731341772168266932547317296210537017431327484227420826338736922881348574966119589330674881853481828737921047515974541645881722612826110989705921519334748684281340542946356398873483721954028001180185503120231174514940183264434249377183063369106753694243670234058120014700694247758664204660694754378854066610053849503519144398936827721358532854702469520340828560190253320330399105149635756835472387571114307974335747625169712283406426682322268054051855688991276451671528265251641435976733018959248526264953651535038070130085058826365945588286737569463203048078904843057085310362807241158423138671076197252120061293060671344725787918947990603343729845639478315084277114610463748919812428105025256073752599841327213397913018983190702842356549488444701367567241531217442573211857992105491279919119259393783249264676155452641838842338559563321585215550194924058305454249402460724055376930435831018927915957063604269310958493182576025780955346035172470423605556125216933451581861142324900406856328213180889734549427752701330434702281393858493436475608927130806718020778109680802496766341361393962734805587609964688350844169406575812164637885331803807982787883772770110268552818916246372342916409331562975777716358846178724216931509087788985140954261457852651588316933737612182205203424831799521241200626219807022012559020900518019595117921669108253808031922674160389265692514171842788828105884926856124074540872783083740131152278412626889125784273014704436676903065468006209944240926762332526079966324517882459994967755226835459030638451362016330611764115978621146352070853215718933296750585248495103027920603802251126939627672416942885868963744232195474918797816910549813251420795721119018663078203910919035936948287952215829553060959525424417395963198853885240100711938455738366481651681587984478763426280810313752830061475064714298700424181713325356499970710159900859728515463607877557537642296633661761928203375414290148374284649754712178233357744067915788024742186760691766827246915327179704988167682036496233597328246964693249088144113531475477355043967284260196325394809884129239092247670745939763034873235290763274223967342369441512495884955821444570659605651195401467939713020124171524785189228152392338952121827950981663059677504553191276613921422793871156385987081834090463753425413082706547743955197852027361506793744602612406382231720422042117502763605219399935867096093956362617520406674254366532383366239002066844376835949513353197244336703345554617408480304495761271532771873001794609358288671140400356984584420572185505832992300883862707995459676390157131569389249684606938005533682262397629374732857355753501315029880106632069128079756914869306658773859887391678425404814938691852390927557456239599324876954758696732436521554789595411222573494833429557110546296435186523230276595494470445498780685339279705809393098547697536999593822642137321974595224565791256685995419590922863017898815618261612274186875640050493350317756595081666372438198632708615928585653778272644137902046374585862355711587535274306572700070956431709502821040310165365180772168187003295898064232224513753482349574909609029507444656088352926667650534406726427799339529769400040481137766240314300642281075647448676542632742379701565744272381180945125308235371709812244222171329510936525588976858657693487390683129151045587723312766749563687155454664973785906095079807140774148262781228759654332020641682289879629134298313703207439490584758265706458971117679012831309725064549808765493789379547158064058582106430843039997617121924655409017618160202275400016962839332357064425624294359905720604990000450243729252355558904491348346080772100754816840214164961621009148873211099247949803055109383538975210895560058363025801771727073615158003444194022909251540701576756160793308691370888227751959380813561558403588873422570015923855582020714168107483533917825157513628549320943486508518888378774009694476909719444609191918116688512456680772028088956372661766452178438624301126647148584463394905897735584956458000840113006811343841707690394017234626745787878591094996222383826232354524858320485499995583793738974142657563548685483757427488264660660973854489160242279291937413077964455269759759435188549901682226690983181282348352536369940033813537659658919608164812038092071832873576732237575113262587754230225078818122159228988847305453164666643084560144339684958184354799221742207172164533647735810504775048134568713076001051788361429895784641235601193541293063291721784430751266871537130091084703179390873349534596393446897776582036321880428618300664167036354893620974543226583327980351857600676954922755187513177404361284808514279649464270701556194964419654933751849079770153835033265118718283620206964822602650221524431853152807864921554976586919976974671983701866781440239864327988700610754282933658971037033854006940170540279346381460935424613428672441013510081084410015166146214269259468838492859754241235923915647354106775944091897451953363833165571525937135189055683721649411604726326570643269271147557426355686685851958442241129264046424136148611088307552963062171255401097900679108700894446778413774177996659970516415189487386797945052890222066642446312468826300535604844634841745247055796329176092207244307039829265607430696630298343067483259308789164601133370007119386530105060859048274938869341189553475866800003308400723518199748059742801599031646267318861493645579627377792904468005774785927391613861489647273272245443147215626064895058842603290379666382725294029574001323619050858708280391351861244666199310372827532818043487222394294983943762689026643823340691603215957766194247622535947234664140151174309178657852817944804789369559474535491372106574058648062733466556022848489926605830168517232940063728775173315680961866198819150251841053494239504890883777330943535683546081422007357631961152615929285123355198336799628612517618983787287205305012810297584862979909698815264801130867258528552441784910988035527579653669613917536420130476449696132578595694363555109904133697571754898340827644978017431167918937708627227756055104931835041280268433670975707352220230112134236119193649288697408655772239269134367158141084815969147636898063075308569388339065049092953885316635858366312351985917323348121101129842874755882202922804607292474951084461987362632901331751001326634667179089771760578300313950175345033970949387177653810877220685624384381240055192322220002385293254830579255195754381199539024033069137133544511755136940288537158468161290003019885048393978044538773324562383354561590154430082393226849647011393755336316667447537711318751994529447990496944543626926286564676747654017877602514362262295094044646668190711232646830983580597144994826528517449792411032152314196041852253476046013719268775431505492064911675131700541556384619181468913845817361698396722715861832106522843145599035517581467755802772428125040970756815066475226762058000891610354209912113369908624878321438228598226631481595613215475305357306005030072008208917415676082562402221674897434402159482742106674612428216638053060186386999037894567436891076279904208790995219147463952493901290227382751223000414441799871349223745716775587589315984365921898059524819415617484426712670905963067316172473040664274147056794428692966215073913450730275357673788145185944720891715539735176991605172657620965299157843485677252408596855920352564379411175810565682893703254127696774761265500626310979137483575077257829611557294775918694750606833529855892955110694549170597799110648957360001433098772812233931729196855535598660121498623394524602048461068221670069965460819118141192712732062349150140685082037241511466519977604112958748666435393051115456781773791845074848815684214687236849354304592554875781896113111488072882165536344381357025238336418491997346275798954410358659318236664890635846691424350336244384452258179242112317166585954955200143442251064806781015364654221149612576942193227741283106138006914555587579482233127692236465707222657538060357939623214285064617705143250777823987140600885382924458787313317272842926785187361189943591483537657647570626004035560064025863591650972657720783060640820331495461740477577231431548269487893618748276162149729118677484776669390554924544273619465148799226610153404279270740477046775490374804800796289113125490212993609258690838655206571246368269428056823674062712943758400711266256495600379676385971522557680600131205482410739463717979835747704076625730779563006582772270874371184416603259247094246994944144195749056055277999874046536108126573742840613313391133582943738780071890543963811262215208121054519213531244463617242234469537239078030703309709371710036407209944497799377737184435624198895267629472360739826268482489510260292310347074049210532889536913477677901115800377193118472722952521926936006831348285956225511707733485157973265104411582998590901849951117713030738840513754849447522500556448845472312208197975546659784884161018837958827667928642085625942723407001410297160228205553965997167962710623443768036093776653457436925385203199474685662472830189976728095552995688577974988451462016050716822531450481442408268988254497485565026664462637741993364022571991721749261234045943629559143796017815994157269655695680094756107863433800012516356806439403605270041905630326994654443371778934729789581617689077820992710138491110040740354921868627394896576804058456054382077292233417613925372083884512134020158584552887739473232156786047398119493771864645175105534836181964354533918536171829943406584265022695354195423685464375831517699012686078032710357673544538885854716481844619034760393017956766455561198086762137261425063763970759931403218602023129573323279737600503808272527320504102659425116217953508374736536561226676463881646806071649148003126923964459260244657486867833268002467584212984588221262548895665789923984011929184143601017015217742984220549344197647171251924712864039184869192342725873019245340460812702621088551250311679074252436541507585557896532965975448837050982678157763396514013383281200793384011998948388351078214248464391676210423845643797624493859820492685181213332625026297936693435175565687618520573290610320788908122219334516258204417706983289119346894736573853635539506546849740029360017923821087341146058644336944143837803503931902390837917000066452007449401535705544308473668909229053450819045891952686426956711469884855610882848907183855474592240676904094211757893314301904543817520054258928955626453492584615133501184029332500452689993861344335715577442818410633804153736798701938214400537069102285065777853624811791594308013743980322029784694849606968686625696574918917516044251937916550960303344460265173309340131172615797805269673338254593038499947633335483892844962887302187587085356585727275089620652388639180969226704169947548987480237198550477278122424174807449954667762381300632225208984787687593123023674784242019622288703720415192464636016725610671333599984153717554027986255765873412345264278089547101684656534628949877160806568391425178641455848686872968406924717706133958721316262474159152337637266845271576871069360897528928640162075476632587531149006677461355685247559106337113695763454271771088253955895117823575994666783789667040962512213052134792163652337495168068303455845940971246421143450303755554000221262515461247692815844356191856434745980951907010640627191626527505749380977696488325940242839289222306170558209956186087670057068557278508280749674864004621566208536007492744457498455446746289152578187323721942178307001790469874038910155502059672106949229106033139378644745444171349736420867572840241438070081269301310083834817397920048507771780887469651564817871175345180009046740433905264284304310964409506615175447979850437164601971071837283769983942487525787578437473171657822029719656964524182136991888749059258155518237840598155685016650275519392023819541402739475022737779420797189677916406089044815584324918535781534500949983025362913452747869841265143946299919772453455320463592584556633240108218057112428685736396437148948912599768614726741596330406099470876742093831122620950070056616006206783758927152348520205750582368608438456463240670039149991184497219551320408462147876240725224660228663667737651402971962809538137955710735028661607515759506164671196700429944888035626869975380513947509587833553321983516235819573343085307261354768521019258236293898664546744557616216110607155911086032380356031142749613051149422720763296696326049256965020205904155156294944786780213946412370672850582330577987215653154149685336977630933400143325719581491724816816004549862368319404349584181436030168542541474412029601228673497882784660600504468257679145322928121402844149481222946209945955072241064758500838292689379341727723320135984123173091809313039762762482773520576299409797648715771183000081392780608504371298022178546040551477618256707726308780099526251146485017382329308381451985027896070042183479345843216453466717757562202061434526584136687447044159370699138767627639193391298339890795486307249383230824901637876681626663856212776794918688476407867766463790202212433195810370141075317011343861463527062150320640846170023077676877953009461342998552801562307050684889213459341817624215212269215124819369016977601997029708342878416335721205734065250189750822626735570132382453722415731488569838596088876166753810258959223655527224090377292537554230985648134056836607751480530349500827156116566431021900564242974333116299154380328953383190104361905137969201182273522045361842827614360786402552653064561661045105836198747671709781076955052230908947153714277471199103970668850770014565881370796748318579639675986489258255654747607786240016152693697088918422612895672392985407598141492233489336288208641620305338620052727829045528259874928090447947409137645599515023168704141303120412680959515783011292079001299968914051913085457472516089363287692708217974011081718140257144182020564725120811004128737850033351213131093942563265532726004488224724083154611802585643767806716892220928928904983742706832295937202792352035662004635653916366692680166345168522325533385527629418726004038845693276351608886667391709217742160944172215130352789669212138585053434271788040696640242458911777476879890739422957141933057425385534084395164781973008560450014839807807101923281277941521406536399110323710611099053321597166717837323153566515445226049742775397915296834101009465306580659272539780668886130533023763296296851843904335742021280635829147493966152900965781743913332369837553344802666299213691603077831760586075440956251068592343551706732662228825826110117573599131822564367521203382886698778426699614638164495032232916642415487074930230211983703152398684993282427676303042208637486113744415261749124696830916778253362629589889494544247695727321085035985775743533254805646604452619427700457048831163553889934280716419000421672023605956234996807410553927834920983332947575160174606667122678174097751613717553211087624591547797511976207463359953938730744108170065257793940333092076911695851510330447218600999983741556759538521793993922161475300880269047436360948197918558401086110977210461654094497100122936146565414849048107592826030982544585507528327896600813540918092429885729105385011780574635627002959227314613914084492312433595893918699088606586160177499867188415369578891969913678378749170168789043993574224936097435620946030224111175128412814312264618000754005807270290784708802394261660764668478085804662404560624687672645454552500595515704901239045065080723956425594121629619830410615107740848408945061701329665584317321357428936770926036020903716505142585952832461802947155336787668363268186856449697092227517967125632203899340804673019290368133612445730984749378221178333784871056537249309912396717117089545692717616457020311289415258023395923386923518857276251970608967465650125894839795333091721898319972678643456028255790970386865333950847458113694200037814515815118736676429867435124415327957822434070894087014329783251692232205237644810008991104724535199208558069897042078746735338222903800062372966840785356934918954746563028686898959875165315095177259563262664495269195097700396723785948123311373479012423532185277740588147306872626493828684714548377149632324530008167375082814803569747504693292013742051156748892284496686001243232733495749866400121637378890723951134759491215597210860720136573270739907020759416211280489144387470733844353439371613173628766115863769557475887905865664354651649630644790273488959146551246790867813293612699051307849631481575281245081393529804897126289343272632551702890292602495011781660725549177774834356693823047946081496702454603790565809177232889397657075538027846888749420139109692338127777233175845612094173363427859741392061780919235403116760750252085725509015938514860591111093479706318068450595623778955462437493894368686365436512740479780642735170787980263434931859293177905369109387101986424990566564182894688446974488262758758893729635322266437487853356224294218396674673332131941617208186413485716361113659968221551674675144079868007314420932382994151549927851256009959625251105205348140026302822730617928183971786883933779161936837858429710025728757270254062080011844715169675970149168713249670095241068874246858358031292872058484104274588670801992963381362376976072300606946768707390865041929498329206461342724266996423779862377245532112262034566051488863364310585496312107741506752596719605026385702204300288491338368149202852110950630688620881909784073419182646085946848325851811027293965898071795557353037550044672482039691841658461696749126646254972938208721128202859882620662800399323110436691441416322204483146289936030814417950825064824446693118416207048221621880374047956947177456147088869927884913421519689125779976377130089689515487785326121787504681538330468605516737923179764412383676582279712176780495681194000334532383394762795400169983028486143025031595319716380318790152229487727664551339153970982061232816704902963195372630877941243087958362462789872989929468397194582606837039430125744536672491618169991056831408977970354925510851066728084818104809447490211741038599250624045035470319843043549585934425761087745434665987341681831663753746601372298737310619732464666572478875217845831079623435183858226421247230516219491447684415502975152467288927173231648902433422832179780931125724919777572552202337179885928638811027642535456332639724475812785310441078456731228136619719540380769638314599492055282834095595991049570314498618919138906094526037477133490132603830394634774873263849628218615487519031201475456663452523395311777342570267459438117578060717681637071761242666422776524558093406365875383780369313690768256423243979514781554765614057894543205914329306983411674690329271304458924853704430259736908923626843379505950678722968937565588063712494858682899571214085944128929036783930825160962775337836151603897239180720577827406349053910635327756657470443485732877538187782483205036184485175737612436203097558421785682356735992165064106903523835457180195359683711660469913998379237968235649947874523857077315793538926168127789984235003363918700557678489058897477226978278320340871602277892266494900477152810952691642187341433067835764884323525428395229842991369293898203005848628617746119438674537813080123128681447704685815344487172229249917629202057675396153952483233878526624600527871597101510008000137804819371728883411735066611423292359051445205305023926897033393109611181868437683168338913400626464538228253407675942770241321711643097532133159039745282234715924582075308845773823219020615322869019783015708887181372038390535928847383651936980287332327055276433471992688701388481854693445367889378266484679712268070104022017102101256659928295639798532305770288392405090988433533979258622822854719366973547355791734381664576971207811205394974536384170517203019069998043715977942950589725333000872950985746118334347629013617225874895403715010702330269542098714871331715157279746716905306126670704311296943713353431075499620382120922891500334848956302790734632436876427705429273396752038063273024627103277911901161279292523202689516038836694449062167537965614178905297541271560672531565803657433008816005295670963352396036262984637919712775276817063203341552798420385458063771430202776362837567267444279724372443976745776294041780486621281008199463816196645582341914021816631124276139482164901296904944153499849928862933658206708347186295995898796963885328151222496742617491906556427059273473404380402429209709999045258557668749401183356786270703379473744699717982028834675178191588109184923554724441273730088436079147949982917790980595155669330736709825799256244530798443202601548377282706827811436397825104001825286949845046820823385819230780755766211765463250530154383765132931055141984156642568290964211403219064132408536986534185790902321883978035463366178603981229303893256499199191128818560758317527456540615050201643631435380609568936316414588331130884836406607093302687275266324541216331041605533265720954981465981018147468953883013467714165223801180563478689484868269342226781266459563058787237062520689034899184154845052478245197428122341000894324988388008901015296242611916995691005448535246326456251422137805659366793762375866800634894968747577078870175998588589958004338636322170307002995837921119187128397820664656092101438024671098161367037724576292852336398113236237960697546618477148101292563928471836472371563098634873661254817732122606717370895247505640531336883808445298015557225346068107118521543429217061005368006191447766494052604978567809785724505933533309692457650384515656596461793755179011974800396165260161644146740901851784847385036312555313399487564539475326046476641969075597321373263868161697084150941781775485954009972452434101285166469862413411055437110690487508565197380839208774724982742355311213153427843770769043478569239722543412320687605873644021060375317017034750973994247417124741299867403015183225235443251156543402433956107541001670499340192910832287028023106139143546628918606666259873410402092230162683598591766115549284264157925054613256879527851878662249796943134799110737390530077517839068667162683991904179722399072176167911695858551383198615741057452780403463714070031728015809454831440736857752067471167931988734190386848280366151399035245455904476527969848975895875037523430205551273153645703617317888756007621456452234998681123671952423088013912595826542456142425995917692556433266506256309957205120991012421672395165077127110817519700420901566371420044069878319336627175340465651060580796381111925986150724642323416896495168160297615960593854046581572537494760851174676968897427393923061273553765324573756144561890202228028361364836558250541577865613239797448590971891389321255910838209811265359279483403919927445110629189451385191751039876323749398962069475389996384641266761719958267923581188396320065767234024068288795754720050258635593605609616184438246900791124051164837755276116849185889789031080420737083979829731572178904965464896395272113687335750550752107822441300409063327756602241765680776890945555785625056726259191494547388275046540410066390620915891756460696829784323076002958407596953264087025894112273970039370440238327139860554916885611754798671836494774062594342348518437746497249781316966852289897616229250660382415820152261304871901838032892196620184730518996171236455751208121345268551929796773885883404389364667796231758509214939172220818607489276857213558809697192757906812063283386861269138878771615356845653037574076011006395417901725776974749536366818812552558766161256029509363272111063242609941895634245846496925831809364624153286231615450580400032182550002759699803731757958358530305186650540001943763521048773696607601557431320745045962159934021480096617887219986830726123953978144303470180313027967230498540042158539893047224027511423118999932031896302975100069974741919919494239638509577198069856170222238431105832440858808670760201456185740440410668156803236804336695571118090903339962457982241806217264512828455612860390312957649905008485496026969821364059083040445910053796600937106364825748214250198183825829499313228924700356498754605571559933552246328766925880637939222330276121247604487432892181284315485842846663628486298412538991428313383011084454057327913370028971987060306764150567907146886767313228455256198546339379725070155247326500156648209275833025869851230543930398265096294379499939282927684255592466774281826062102049896423511144322707594956052106951428049522227415742220035212527619411690889118587299439253455990631053934651542992695538833323930348361397134311788448412214174325689584255785262694568160537142109461683600425424119953043711732404408637355687171795534586855341184522234188016058822622126669627221903008663561634974205677083638747194612820979396150123092920268858933077255298848071773835307952218338340354259491657734220525587194355285068872765332714816817168370575275421297169673501754496039874151466642826822326246340339245469280330912814213555654255610322574044860286126569731448321116516578710359732998916280621574951984837553938101752685678437187402494208610009348394162065315444603540804099351014825572533456991328323169137052988454552059890543897252940886741315463927005112902994189252899203240719485053844731829254926404844143450513886679953315343118288818270861984466152385043368947458135676175947016585351036510681902095306924133017969125333219729934928873577785500182172396423389830509633283839142838823250096748405482867589964189935981247697801630521635368473418280374589277656925348427791300337609911367630300985203548480207775159240079782256020327441932707747454477030276604802443914809842229480464669515012705948988923602538345813774726793300509675321183629977723644697376558806634571754872530674956872039183782022006374266432227480692022076935122051307113014755915580759903877988218450336292027565957467672519272482429485564608363712408020526578021091394377062547467334872383020470785494471785458751502586372623912405678773808805153817561740832478600364120735763508729886811290053994827698429435175151012886239582160152490112585699061314774611749990158781702893465921063037561219855175749846742786047543705142210542450881644191994428935145189704847132037346918634258095858686590232004513454702282533760558742163567563731908056046986003201894596735225516092928546751287689317216906324578458749277203135435543846848637772828189049970750741679922194695609152655618251501578867298097338411198805769984663444905897406111492608394085432620455569624919311429848933758960410593230043511949118758324544837198987785891903427056791226111422319524094477283018288468866855142337842435668759830786538002539486574424122437553963347448440227893053368317937447525345918151467194556774784898405213906029277771241890674891538627649305836363791829280037056999524397934354142709190173307554861246938361166092093190790496323886033323815533322702719581735125499957386417213882749524563799790044740502664226224496730320596461322660741040660932098047252569903098207420613430323690869789054181191543527562018606762244070532105755906536145871648281872337541286268153888865190207685270046910388295804590124338621438004759428143673887559054475269220912604656406973085856822619791869912735912584522442832793716730577503067173177977957996157173730649813656619296067997157266998184227064849419775207094057380944266909481824970281391653965959268556610175274054569908103216854265491678718674173243886938489825787614553670632248005821540912161014848782602127480831715739146171735659593027022630473999430016268603147167646529392124259900457118463262613652721282600451662222980434172866989309225031627324466022397278789000897552803485766672688056927123151121724609529633033849311083648143972449958278086855844363963887836395949525681348164687055141893379351276276787865944333666194049403050562538390900833901748972714423418801112711598114780317562379532888435977000596196646575555399824228704761135581154415426671768941179805906131997055566536372718083768996761479525902593898968234247535221233699240292509170630410281355261730892214138630559923166190298385351816896947643658334985786569389694630237366215208761821057441373964450329655324378904883457010767247411123657373064428936836764696181310525513837394974453569975654978669926029142413547929043447031700828817686571969165745203658821970575945336109487839361651019668566393004965499042904755858828034818019189993912513885183165192786763780632895927494914939402941085002248342001764142367208411616457726731195471048506669293905498524559590970080034668545843031343627515087711320643929482111921977944565331428500128362197628604461231122455574454560862531864621636518633025303052171901891969632301467683240492045094093555770482658283249303434889833559835868214422306563755646345379643573630636082396969663844972774029428735521648548840778494892553163617571684339290740124390040087623263271242668406816030792462075867120486189463056186006671589295059492866731229999289614887053784291048271166326805831805044824541175730434958415054742282151443399481015906424266789766675105776284083392872415383298710071327509945736028729993247759405298328048910034234322835366159865662231160927644834340090356426425443352948145521316736126733681159841780811605005062845895116388923206125315912076477120591399409601216595076193224895592611354641947785646965200991482549303094743773019601631464472153625279332972552948480111069308541131412133403616774401053867881791947796430510257810143183706002030314623919489093931865049240001612936317824488868880601274117630444328595426439427159643044685785824127237958234063578770121551711876322919169535697051673376133934500082606697596534740422937146675534662318879343105317854724744833059484566132264882384635720664191496606419458621983693503661488293598832323662653085008730866671016707817884865275389756972567298760065029838082893228691758966294697515357277485548936478809532208904362136643741008135316944853773269357853238126218313050674701641365233947833452290609534034019225166036009734298576555242869512268165019175910618847485013261368536972957875454936559638223813267112274588554636773810539002600241001172620618611845042521527705457587126664914416666407775584023743245560223278886305704772282007326119873247637462315972018790678444746643684435198724099804074023204038268007833157405484408092386563542331332655920794865312702897823128449184014770126095431579491672286589258263145636888806227186065628782935027714719336076559664452130676469678937923684859746491692964937209646914828292646712699172388172137363475528620054921377218783582658061623678862081273628658678292273323731996599484367207772851480489232432343725041441244722885256920548662295698539698596266277037727306734146421722527797686238542256838251720153904682696224930066902999161474892832962137026274405320264517847809350703386819492973334682679556489831218112546138094887973388471625816646728340922391940458621351583516477698732109420102748320337146902312948519407706629779685531700607898193482900219241112825950030373357832218880249944527035887147181286111427312243316995062338876694649691438638468063351071388226363674534444556200213676559934526731977474634051426650014754144457413830065476351228399004573875601187805469614416734444569186956416953242430382412946063742309229322508936000945987680436707463950438401362328213153713935981753766729924499980062497957003400954929587746854252500601852533922544327419547910364057756161141261315102242274621299795567731144529564246732761802649341186791496593482122801395594826051409741295092427080150907481779990828774787024386845773150555738128252052800532321637855673138062122420002750759923342840412611124573049971447793673836668841085316781691457665533398184719649790670573314887377020075730748113323445948149528249025740597692669096601918752322313335119197824793652678403297540642986987419773679687415232539595268537609746088631455490810302801594841040192367849270393264440476626651534056872223558953415309859709623268557597628678463964572520951824737868099814662645469695487078317090007878908551339434508922710608117039486808028703369951537340725847426419287829983669593536655137009361338564015039441483524471429437147004444761200786487249586092068851368195511226388986553789840010468544971860320093902430825017569272452108920302412191681167453458081803295705663849811574998865420924604065014867957348457625041216116894556263892692527351016250308630925535765606292342373910352796670826226166522797666964581708693176625191984952663912504848317735200065885880618962956158099493409334566730066746638477599059044756846268593383446528787875377489468734205027044677718953938482647896612032918383602085979035102643572201517226622501032739684575445200671215567765471153341039206495878712483372652085851130789943843094047274660225531365135290769241391658121711128547955293908718199543030908835405933171500818552443015660177027261998279926812427470345200740657811952277462583544711617915122608830100976695161456329860795692722586318671712163311233538752394402016330184221053060583013119987888175154981227130071271945414973725866463773936874802521808301488075656981282780929753421035891972538751505163886902449047036913231078247017405267860249577179397862298183584776835486064696694906781627655440402653659417820101103306411404503282840065017825339573879964749677280841143589644232000527319084939268506716988149889277763664469537925331228784699457197220677836976541094364887881681844997464539556278781463397900551304802091713691092763462114444714013901028657697722594583115990036033255921944117669092946655898708801950697918091861012732125661971164935698472803856006763242774157397226673565388002568906437739206916928803976013201934524844546799805910675052490277576066416093358873319519536695303968360807751576830989666383045329912410394653618910698577571581934711201711058923262410129011536426007381511851049437201173532749355091432230661457032014778948627794004027260962101447043853486881530473363969662729634538755145554849205081432012660935438527168545648114483411618355480125197250037036513542213706560270008991041557282237144789211177402402702019847396799293914344888324298198643677369861858615308304910115084629704561781632596962271412266324483138330143454938829760463358382035342927962743882216008800231256727846136736020607178769595756420007316252002585634436010235954128477809707367837254625406607674430871193032885255908806306594061291995567282029730247536364014164849690491189453694430300009541515060173804365745986046302902340725036504699778427364102200859934534631722916041975651000788673541239736034117400883551700724554262005698606570208755494261029521184167843768012172341048642150499201891934851221877552277619185438115066353520597889155252805621959521845821571188567212963689597632074006747002846371352862888088017947878057433157249056974035122157148785724455510760529374059176925348732856705883988952878210199618672923609819925331801623617062310060910284551683473503923524494165990483231740009698884000722175647770986320407714577565798116279591486738065066005571307256445682521079575800125884882609228643328874203392339097544988456324471601889142484977644132521675418327885144989167320026691255107655173882604279953582877060063174417382069088226354014832278590292214836549224960875109538489011709386462879463833759714092828725593344558618760428112584817423136875297470719328250566879416292195187822347857286742347873576261421002972498350398821962314371785489453882635680375183437311429569954028298312853796488944574522408098047120965257924624327087266883719296717103668044665141153329774412018944633588942306282085570764695232501128116391150426723510427564675327610933713057847883747132200155876051206748498578341244767258241101343960361426677985904612499749820375953290853666187677345763035396389503739359926363058080221625008937909894300840842101971964558453895609280155027061041287406836350393636449380844311319341027114724716988015914526559153658301363346978610403939713717386821167793947143554193540182194022599249949474249984682186512325545342496817344723252862869692803751960243924433620866484696255418721469257695904734261934879678418469941103222540505445426534613991392764386057561688054804006072860426395950590764084251187595977775209767304176854962723379945823517475895633120405654809484262990021772011682296284165991637287045270236973400030188427686893708611527371038590360445475388238737539578747505175427566899988025339855805386369596850711699163199860207941507860694660115562844781105762984447766305364243969888503563432738276539132689997510563135456022633494895599925037774829574566521473688573544933016074054299509157894870576670046204961906999165710469919522855500676387006304972911986966710206744893605586163422722927851883625634941244662356033137081199123111088041455776303031931977059646566113642359826657564882062905455378984617036388650178686880289348216500803917171883903850607218669371664870507713215706419470352013769639597372329022504893092118061529250864868580221545521221248351807144039531489291507167877780935985086530681707163593246469873167788098908108802092460559379337964640648961056170313305504705685065890451784080283725332736327691581739139590828230965474913289976865925178451394685541356932145759684750213478245742388641313069732859360841612652807746736828244340175565893084760367425303702129391956244689734353397075623346960658405365053089429804187182953451812371611125024526957225499471891196549680957627944525052682961588629131976557004001036840057862579734594617242288957184038932122381090694800232061078890725497549133288782358815168167459217891049125778777339493087293460933167019680368088251098911385070947778488679827557016007222811620511366021499951334879444636875928447874712074496605556783656121556922814900954983199529298127966965277768115199826282103896174525825526894452377559515784729556576714709618101068699761111835245514622145192434268851894806913411384565650147396032172101454477616345511723066269945791410173503052399299901174747140440342927943284953104724033275273602720744819903996006706296226206395818439538891799520380374836107123557254430452247361845028979879050953092687710767967322207251402389446320248911394719432604823172101464140184140801591405885266781463463430141415909335261976427530370792620964249636173582603125355219968656276721978056466958297997235851717233155632024610229986830432475506749575257040235185976482692834724190358642781538696237208477543905026174444254056579822153458705100531849727740161452471492918719819330164752111401716961803592237098524938386470574484610410138442863555143922506389290388410372467859255866441234217399919311283542322093370698854778250770102853137109193604904513837335814969082993755048200124850212791634154846577950094453402982484475069208594789816487515333252313299377109771643464578258041586383443106145229016289359184633463530648867354638630024280269144494880286369353932304161924482528052166866006397950097377698329981457351023185861198594448610175049484209876628168586881031102747657640390184922146778413096982802472929018720994359040742333938803667468049907688062073341620303824146901919785050357989367437828636001441670044633996209928278621181813349636720663836823283880838192341230716551689053732431156879199498917429494028000678439289922521374924176793397649494665061750476038387416949016461069951238114165941181409737371357472408312149763410875027308093839760914468980775182819460960439704478328119473584781740776066628510813238762955852119485824491293348199600854526999262147720368770555088756782311426954488690002472184633545062485654007904226291341241760013831409154946444274690761470492550051028810461309935419408414509449560665536702461579814389388146443889321042407367219237264655614861106286917691809993622603920344427921312520931688653084981454787680154917615332755120518467703227823321093980149240354019363674008737422370202493111287310101824738670812758268991203409950543773095583786231816648204814511543110579866016264019565909381978401479296302864780220220618163983773114266026974178606859975242001834194143980483194471243027093394628618794307202391339250726427196552653883264671258692919861554358567208156697449025242151708815886419180900542930507125741486498262276878761643726317720593456054818766198580317445830789234243502731338528461219882143718632289074353539180069155894220191038204488465909547222434137382650882128355932391438989819312557293441415746962110046023175149079259965504034345305062450971744882376315061101262058089397995792111795855543574458338424832682459433670735307162283185262677757153755291627528907375467648751803084792978398029827926083294721967270397953342163791524156625428638921514179870636339335619540770267991993887351808134138683838937953792749344022550523838848386940770796604261320071455620698371999614925107996252081692208800446137690364363691443370356005421349905336479295206343345149425723235357122873157499255907887781302585401835163940608353528897485058480804264905215831494143383282268662148904016926079480780630786840274538125067149613622960977277463793945237083546189350719339326884441082872455190406669298977850297682308166647553529449505004718863444674492457354310188566317090731367972058746779871937217128557248469641904409742295210394543365109066904441681147446708850437790572758155828498770950314840726308376829533889086731249094285440452114428220536472629820450262510596709860415541652247848773177870586730752174343769401191505296982005257146799771899929984708209765591209033640478192356112331468532010405359436627424920762296638664109756623055741047973219085494378169422556313769037504691268179014324913361900064724232535712696131093247493238048895133181951370616769782333820291875918546519375698203970155530047056294050236899165409410032453849213871715069534607810949625399339477106770871183260924055612269204970946356559536189643589665689382762710666117084751252956932241443074725595200125776927066472188751476631966673328447510226827795289161771611525491225225160865484689752432237150534143181669495044123612541067846899608627952594387837099827607599041876529134836749597317819140910805746477203904165950161589604477848913917194159487325249341686631144439586739140700048263885088485331126727811779551477145927045013159915268882481897932649403518150251842519369436433751947792545194153047021424975245775922999513853223282156930626860118451683647876312091647057031197512895426603324030939797823573701370583454316373863688439593696637493778931070376675973036450574492024048539141399372351502756389540914006984459069950957756468919132773793425455863678146628847132052898331346618713489567628455325107645949242974338875139082012641741330966309106749830777974880259737575607906466551843656044553591445598531101896583955670881024670176205091284636616122245288921822619986404957479678323631768360662744022352680560667343797331263023191008300485586767185326194797306816631916348822990787645030610478493111495818940678155085812754603535246101978947695882128607047882655318809320028144783044019449950631471227164243600090028449543233671641912706218725131349490737686647530808156214206726144680678520453579523294355720501479237513564455148230079531185332266587763330587569735235300409026002424886668884662692195182273059088307581671184158167669991205477170230720959731392271311005007042033931439733529028568787964967380596928755625345493400449457532477301765045689212637296134864294284129127717808078502535080798813563364688979635724472417750835166313705538230839205263146056183378838090659506742273366089016405537130462362510537429540975398742873858223048341701761644201218725638148234761380729769742481579999772128888055164026758429148649970907559430025268543921848450839327278866430724115568346086115393860217258894062337456871680706313271071501321490813520179142491559047233937363374996646135756548297611010790265142461457380801882611556039600405123284666295098021526680031838248183288008243404012955358588404925038164601389584422846537130368067874540429711597137990380747914860945874451469902663780047962733260708987419591290781665788277110537329389146755053452048934027914779728765024072958146047374353597545709802803802065611612447080798872717376271247631173292182629128120823924470452430060422207818124693463974413439261357548133923944938634188042735408796853774585712372258371330320831827123662252520416954669653944675526704085464281780156159031584790005382411810674506732035264800713283856331234317594224174724729189440418440315466747531434533412468115560489464005721509173897791944541327500939997709223025307774852290722553203075908861802840062355334327694034110872208414471606079870918726031607485347408210383493236432143372310451827735427493738451664369891905943190278413100148654621562302816973178497031647260801879162091552515309916814267450345841317751915459902234366900334498764523525296555000250027437326874041647228746910622307309929814532573353662122116925435008673455881660333073895099584925744734250334234546736131329100835769743818687950241473522110631066692375884360601449276973321314568306752540069728638963873963867797361378856686512428242610468330655671158993874317223886002760734713158461311178695529177469547353260945550313879907660957750176108436460245749037627221413183433721845879174912882789249680197429466236783630560916009326746398285961519399467993248698177306731502191385643809184435603409111334298326836206277415751365791164116406586275295318258466171548156798621547518442707346718252318899389161899914593470281950048371358703948934173553301929869376904199690016392795422688472417956574886430532984447958451644493049942300150194394309395536092792389240840698755685828558144895150162252456244690342710013638844138357167729985189316013861505140467691816387773675911025228607200072407982289285884685592028606005992333439135471326926759673276272086315860812944877824458033057323596554910076523867784352361681985306498657827190498842659361092104146628160544609743889068546449676743822462206438529943211139921895331493644793379095007085259312421139110676025018063595959497813633047902119015810921251576736019949048417893036717428914717231127690437312813699596145751950191100082906744065539128767390692128449708351574812820968694185991273098709353336508375069055685861590834371899164444760530415007661268058862949047303096938187338311151113909350399109514618091115577724439873598547741912318112914242708303947511494192244857467056710988595055427364253279539751224347285290563511989482792353288610144733423387723109459601540212798726455281326883477871641635662044345196065793046749549091666728470553618244875584775721810161201376599439498644564832756465807684140596245817783516687073490709184661001851299040095990847124884816816847176077027250207343859465794408753886547957681572956756792611814133531963800529668291818626345075705369901794691099652123174296492201564532010186922322981971228704096071475566769650196265113678365497344122216306516363543901944312079821832431516695087616140684158680035420628765461089851237133204586658800293058918862819725305804067759742653654321917078729976525629582709522092531683886788120994816933725895894596858546165108902436263811719492482345079676211573056873463777122059549252865683423946673410787595108345682830125765101511960626111971585042514640823884522318474650790469424876431630812619154314493417520673714768902356405705814609960379945614621488848811351987671555861651492281909097540219025171143859547148479492940035726513968153903978204260407028957619791774961065022380507302789894861743904952665925123707471051568333773169412144208554675462659346208561289480135156874249789845562796787506879758444482863025358751540729289542213167744594970200968983965989659406078707637379613405469578707773601540097025289926267276243264314419705963115301183439357069132519721223945129936926163966509203853311615861907311768200398717819278025513746546639421363660157265114541181479605963147882475997242893084377575425877565866279769841742213168081114651906419571743947894282504577973739643958765997781729972392478313331057926917500680986881230602362938521993749924534968997152015886347919003432061365751167476302535734160900370518863937069023613692735154149600684692622376396217967020216840652781502503447308302060746357774633984775772675836161504558162039770934558509782256020648385923841938884273971304382277188722164849224138418395716828503179554403249965746893429937343362544284458858753809415722354265030293367700535890518423527649116978490119850695325273434951307975116198312550402084906978008554560743499486821266439197165714959289221215894466556662218417982856781766698027726246396973873329724196256255099062352670179581665345892085884902165033042359208205897974952500820218789879481536338894454723508267156972954588923582868240417333209215636343782059625196691718812777646509292850183197530995095644806242009126819234906179053269701551748068812335082985006344297241490387264538570602009927214478763742173839950776343581735092477585059752453155664047172632394868308728380865194993066275098323443675474215784217815645934869446328189018252832581803486235987885070936452521165123605834196659056038592139252826974785961120990900784102184773600965358326172572510712862461368701757324123529666213128788217398341056088631763408095589639070134143646416461318060640955472409041419286713893577380790957162022518138629093269061301954294708962741990963550490427453411642141460861679029067020242866966626328175738628575761407962193472994544800218842726860299406840965848395526960702913813395586860703101959355810420925996889508499709988368708889326923680885417649711864900205899656860354905683720470079007646506024526533553115303318057340693933301939719581314730547642644636642848148959562356258411494479080044226752657369760098197467615204519349788349699235243334283510654580867441178325114363525301794850247223996842591485259889942873186441318268841973207921533844993074691689786884809440072437328828852293876397747016145832750801269566250835773475470737949014102289007749147471054115555004088837552473190318566063867048311886840294886899811567305544248812548979572474256875829169470343860958235460049902444538614659775720406396261196662524496339223218399867559291850560729710790391636429642923773341746529190280173342220216692510315942235498936959312051172838344090586275682042315951294847790270117194738995752435763024708879506202629716533548504579856160708916711381542982459078836874897412248591654846483006858972034268705770056729614506378383465952795916809137996774268673855574287035739291752810924670500687415312393725138701434902632873246461093725849655219759227125715427636930170661176163964389104526826779500236240521546821445799455262861891350315526670874553645894230306416581559684825023017634967506180889369063782898496030805464672528351543223778908261856579373331936262778612068555739713311805221986950742610594532087161396985057206259996939379857664897762165630214310694628185473602070711544385277311805119196305920075416436410028948550711303463096741469243840693284028861394422030722324353650181087858797102051758276848083849643723589855143892274798311095679393835310014865610774129445057265475233089116768759307149100381648399000518701531080810081399618486869284722542322296250369352585391133363138299594405355846896106727719194520979057140802875896617454109304976698501515225225350053873779898497264569013439268417562675666465171721931640402091627728175757734722979339285801720475634925901933747677699005460295981392515500058374862511265262794397641883131721451391471132895386337810999172648247683786645366046763624582571178372686980285277451383619966661604720131352053832714634656223177619267500532617948954007489603267185203285994900209600535691576959970192966117584026066804495359575465569246513831818814120646984366947421113155486338640875529957092273324311555563142849116102336626433108605500916602825342870767302742844086645845783048338506229878242026627555341333996934971954073626274419650733886943905566644426683662003709380985024898472578731341934634480437973459166220449512273887909323069355561370352737359415181439939491262644305676181420345823442895847878268065662011532370374105884984313252990462570171246846291107886021653610856063448866262619617083500360258169935628391017273109348678411413489894627232900237416648576464941024123281416978962905778540801046266345467078054635795924423235990715685108833090092194623514462843261964619644223001212580411428917239075469480971523566223071319439945049006587022358632048962505628288109389352904936570114041977736167822943036032874901927107272026203526234469229370083166596787545324948015072465450248986719183063864097304439739998887415960239798453777284373238550136353860321360439802071706074757332945146774793180868773576443900466729499420696320685180398897972461227235483184306079451241261686156216381353812744069857100434783702687999833669114375521803108594183471485633028273904618724214705143031918491668112644190468757228900231605231877786216232186199876440697198311482377162990509117015988094848426206045088771089060245748437287038889234987947048829652716886597224940868463473823000735163027481171340427764052483606939896127535887028389265652080040831012836768601143364038140910835645511372434994284106670907775103265993489473705754643963193030737671740904202133381541658861423658657092011935020421513408428742607162487932108970681516013147622256642477588811117862855420004118104771389478003524303260664040408338400894074845679078362578695934581366819393839627875247949654466093478679734232969020354419839944913502722253301467978125792731664064952148699640100416029757044434705401982889749402444195984854729306899624976184336910306328638560224055752560040092500443532851145215404015268943216653301637073720950976888334595021777486399724505886837012727413978684346425647914981403605113488361163826306133768346669504185666559682604933966873360700538478292719690577929026565698594662723505852117830257470323721811754156418571133104822839428900009828657650906471285791883823119095171969150489343527724726166936085054055583270302414694644772064270982256755694473829461003265512049651948850747781980453146752223213863397773934171262823797368830263251543131303882709863220068940587801704853076131752684951125482557143184129216525727110743808679706508348447987305124857119544026013546212350684816537395054130519540614694788746878084529957356914277173678719169091399746218042560030171812231260520782800286930869251128143607871498591729042198132557836653999295019806184368588621164205313317590483507093156889024995821710683028681402958419045051582297822097736648879554445195834648113853313090437191897717390752002585122711548640317384646250402194893842963369506243227605647581357873812960680198664250761608135863517839318665489868566170811624122227750921428556065582998822334573499375675019936868795477553067938296059434234616318681723225997689256155921192570597709004810185070133871874452617575878014795521685449467496715785109466725763690982346305681080949629845268776520487334789173202917037401805864294324647930734720747195927990624251716355563287835380627882167450197237759732214382400601582830450491435917168734467552237296827861908040654183550847817709495210348886142525320615216142346998785509633208475098293279387463146464790260862461909730691332014405898663845385438092492376397359440882611505221889235471664042135003115403998385027644603618080815392918995407457215976680396169763918038987385884502873711170995127857640806571019122975448802912315844522734239093282251231800321930684283632305736294566360030634166181076026052487557921008212448773511075867380559940359798554234521025018368670888273579262984566564395682216507865482249657170755690618185851584027791688033793723149365431963956849121026295581404847471268549136219374481697212528506694355275624536827926264029374696115955111566737328253923271636125443313439797140130410755430892027076943586167070379295673898570238021981557019157780755801491366601500591164553265696762904171252236845773821986723539938494358332216022650237200615873092873659723500723497794810466288677196450373614546546401316440388609531929706358627069760952141433620409643191201159722859661335511444337423336481799365121635102410990650165560834698571975790603479735487229932767367855396133197832818686306401188119373404373257524315320724340417112883028021901588353668008904044931045427571014119819098526650309151852614116834324583793086768053043229451021817823386985546958931004247962670340613060733956918277069995886480001841704208021593912418577205917057463924590539619192256068297300625544909889935212491470189213421951024447621512251566137593402460374748676169414696584706735348926384718232883297851346683534911978855182879139932659153458689563625768411923796644470126842856555301138248248651382038667875753092770093177221305254850585147801979657452306266186314516926697855427660664180099247047171298757640712088558331032152424871007929393275066600730486864311840901964047630139808770638888915602594632058367844234492890507959917528986827090860621844718980487166093403192295275806932134197168295344064287642041656296574045495425448720525492564518012448246632118480018856724124139883707033882076096622316705831024055382615075614190774858708201685077623774204006832407933411129758269536003122697442050817352348101276896088410800915635611128043563937541145553846492202500647608259056247019514567095807739819169869983561040015390550318934840139164928682513408434690162615725302623520375981099029568203416785987121325083761537015601644713552053447550292748223752358573969262742041638997271196577316916464994331239474588198645894921552734187349815740762991495306710986336041396347533873326508275518464586307502481854666177272337418020184141797888576361166891877206545535758698640343208378986206374074007849637996698406300781995218609885423206858749365206819279822924589809418367718638243359417512073559658448512894151946826505530019476370003904260964163265680965984342445357047100171074394077828829729449956052574565923854156661546188452949338010461629363006471388098291882275163337308732730043168214520699065376190154135458350571991116095869484826018200284662452417403305392242742776767158750592076259922176524561004712449449130752208333206638060027701453019198432638777383796500497194579180420162559845170609106226452028645168939525701319676243559150552445617423784204477976769363185355741939432966543182691096022575470942064927269680566490889060333507498499442562256044264730110077062067468892140031980430744950833828309813849710753952042541433421362214528290429184326506736367610137386360516359178320765671737250802664698972675017578291120229913016137004546639743459918927510930526819113443642580502123339873842307095531049157895788594195732611987491301392943101660767231080610309780526390011596388012155382732230244813289934046955498895222885608345164817870034596599198586159902032745488738316640614790873901276019162589037455574265122600892640125080469350441704970934298968149621097422464541605999859624010355084009418949718838407552779359247704024469194389865901895706434352287114234841506684519921019971052915484031291509147944015729460519658579323612938573604794593646867884485122232252096675539875796832415290080114917516029806673431326355478173100874437317671642108973703900839182974885097410718497271959668765062200807632196578365512393474550846868140534603724110453663158337672120529507658224010105758015166737457688878529829673353073101667544440011148345741899131897686235485791322064496599186362700167510213771450635821994581554623836880009025670759968753664294108966580969837031713184325728891481381682802560576546308086582007230334188505915426037251623492890323583974816877003643228505919623054796331463512438288780365919720739346407908142736293116931020821844721018007586954391939041412673903895588633949242983404520594586578045186069614162938579824798306706407413949307935635093460347720283663957252704377576073309666199946478272709363200088034714044072018836488234123632298478080057250310231738092860534019782529184667759436504330631022274789316838536378424658849896873092059236720857425542730928300561635812490213027774164714350371364946925324574128061705482858329154550013189640920341713559188656920602416039230205640832116479574550999004967501576011441939947108875544440211478100348492497000590207232583761922983998377899792820611829234213090401148780590381114595829297304249465261401307458392089935268086946019468358568659265653751730566725042012562256381375274474008827423604050559522596740644926589992566160567412521320389221712299733767010888447842460866861629283685915955549375621815291741436810582325342811726081841211915729983512087244611048714491284165669535511068160018476888843945045508884517668323825822960952230489455202638495659929076553155619668445081217374866923467710539602218366221145910453016701360446957460856001262624561970857049789694615772594156127677586955759787083111010265138605089939244920210439794236032080664994986730525671030821982197433107507855319619394239085313799596385654323484213388861537030389345013969224989611997794569051695325292281431466707467750333933762250040226490962836374943992596470407736258664601110374315727730632120054562410277228060034590982310582127471411303995880958419775570979410013180144064447664556613933749555402113511733643099035138292274951484353845618127773189661010935801046224270594279104808620690453381175505218545144111786870486076014886089957163773123991464684081705931938683273185187334343117233997933282168857315944550970780816651582178197154480645659594245739120896788572002947183003169775580798618119273695044795110303343870182024468196246339309772441075471885294732002248021399281707379135367160324242013634789602694404517395299661973196059171824943736796027491183783010326437368520513099970254125159438352979470181301378996328109440471909345652226705807630521352669087318290083956073814619385093559326150097911930677146473429567817675003229410942591991669986217762585280983068723643708874132539747639444681538980285878918459480038709434513977677929049907111433773935027361391223660601126006837839444652938790895147349423328911017178998458590355163963032440242540120228969942342696375872507206050798635324111849930449046820309009479704264437180640452600323596246537100688890103933790224668809169790194139241586996516528896630013527061495191198508178601436354431823425419285394022727892031324560800005202847290318887751770539775505838496755648291897199658131373264868246021113079000857927664713942358566823993721965531951818292359070751592091177560228262803280561316123313427612365145232380182382465725967692263426399755071504768988575974643827024467764252801074479246924011750944165598552449603230843350208194628120938715004037492443361602561943946423609671662881339288072546630406226612151270271300687209108757015391622599726594966071461074081878229197803275004081525507457848811481772781210934273419444145673493139450716560244298903481180587889955466174601508707273864195283652732376656935885432636278308544344310257872643710290481182753462562709309275029157646667849075285316334558021139240700069206346304259702103435980047365182341434242448603803132352414178563397871772504783412330116173201947691454059336049484312375437325114541113562840835639597324399741461510314091664177050904775647937389787066684641061052076216056430293369297305320886539000002695684881845536055153331305926127395663934382684180123795551373232862125881658318483731106518638609136510130148116821021613686748323510280886647126373524990001643441198184507148619274558745043470330569247159076211616674425579003514047826974786447524685358703874271816377035648015914228222743725481021349326201574476077831197778128116549807852817838900157120152646410705998012976145946409014598680356591653565754393567845059974934073321807737755699161734748093076484569528658187393818431226104157135981476294733870949381654561928193738968187648118335166433064234316111808650326142717088077770309916968429906890549040832006608331362161076096233091533039710716911062553108150847917084253872320811004236239714979006226856449612242820404443674698335114177272632475501538739841539841198883520098034874009433547983023695513736853622796798729472663748226436725580144579965498691079321876413757858931927929397146885131271334868313644053279179710595082556188422039854380817751832885001169911712603777487260945344931675137750497472028796880128272558707807182975583319952241395210478557098728572854029675360679606221565099470760755687183906186115708750234801601853324511521005774084150982997084801685895930216283329068492920124679112535115651878472556784809096557378528395715542319146838194163483187622177066500509932892641880415949597219152492709580145348167816508518903570654954472497432422816647559386798648994808252036786976900006670247902501866345422659536680414263876486215876396329260876297225462779479199327339419205435537015038064975471436392637220050010602412249021085372270076470246563920005026154590597275036487641703323040631914891666643116358550165160923224321011801300526347249598795901283440850089352899100667398777602859314431670440921250246129379163740676422701419517388934652180710906965322464990888435166135050906332292525649505820587851913144780812134838381370926345424422758195026307520257798330731781091777301263388871441999958010573275883497615121719515222003391590223884880585783614835747903379129044467743099465679246947457893036155839940971886085723725660776672608544103956094772879001442239483456623595744523245312889505792805536202017955350270840399308553252469369397575357828593272319392220386031188755960043540145804128484596502018605146685102755862688542816357453393076694300712822241176294181436883901374996822156210545264290208330573201128470377048649476498072225127718810052031998470369268332270630851199101175096102830314428801396372173466500105451314903621186134879207931246966999452799503961903106703080435644391399813585653999121827739553537556904154458689053761829183134665742631853605828234424900935914106801718966576832904736288119796126599357419512367440940794121138446413550482156520632876029986024148213207725031004528965683006781103777507913509099703773339963600521044722554767866952273217370259114072333774842511923533989536494840137963230517037334226218941706099487224588253330859723100142395192112526322191175821834910661530167281802119925266404314256238760374119699638678550552920777125859851596620275369216885487674442568165127346290457394475724355022793368846514853180262193343137197860762827565604637567071595145504783028855441177138040691709946206847586168768658135914086591797516057714660916644570704428419989403886046796937468571724379200937492933947936184512937557462728110828507623796424512607198841086051288983447963270475570054858574715768509608595763831004453099332925689059652994140546249876362794965154622689844660788492239479293809589281502257607205286493748431904311843865046186433671221435871015189191291058517370869669250517981407482353086042007143695848814520946230381419712433436545351297345531975430409640873537949022678250625440107976495484087568370614913130879661237666802721976512435563927418638150962520133973032095714804896529497650080065639037043287555200048102694270269167711283000420534018893845719610493551937292737229933940640306900329262089970908032751230004482371640881340686505313768960914635388077843196492412616762791288518769711103962064343431037151774997835183961829328278361542298362473594253840145250463973071083240446400713569863920172040414197430052349879798289392039285907486801636882979704800836249872786165981413822658988752728208968807138209604653649406698886714265798691236678605896973434799450273057081534260035905768357973816949689657093037074327949425996644692952378227022515249759061047805709079545068457740361471299895472272344293101221219228822934810617539599036066192369652374763700937941243150132248142642144217829541244447158722443799632623122895295541158372113032225327393978504275339803050738374709062246024984871301213159192886444622772805765817307738041738323210756136753467003379812187084162388581994025152100188160866409765723273574447001495128704049272609417276660092945910982405150054548302522160760328703489776215170935934987467980788824634035051004945543591204652802104280698127547246747490301478824230842929965826599266644581143401632024668524406112595373517911862163087076702525414152829643883023043079909747657917008002452690106303302214143772804069215753955115905730932425654772258205412443890337266653409580602987069829350997397631627839826453331357329634039276789995577044945171394935060931121495283526384941009555373761438185525225104364073060381004959759288244030641460429014563535068233773298650238808859966607496540997446696379861235043149659879948493722564514834883624228901403562914820480674764167618972954604604995598533371003303666179321742348637494358088840210353370959545403730530142497150465075309849807227653328705957967100558436008285889504866905715301980044471107426061719629834483289272892833363204327339339193334413631676209381422123125870117997238692021052193815380205615338072140559154741209148802794351754912752308648723223198197016944607689191367750110626796042177266725951823392772857783595357872717338371044179785819831104818091178880748568824809707507875443265460213461950855740777719546277525579643718473617243252897383016949672823518291440659658460243691592396651957325824395888677378278591903369692488485239929774392454424955946649303380884086423441333481792031844074694780353358453879708579290312166614549002553207673022155115549226008077765582779168544394791908549598278303093489272080822649102543076769294202129704709529499366286925785753585005744556815987577563314132162152962174046893828238289186192565777067215133473351220032648771170823858558783473661404135626762674351915225224703278777211865012592306280593422970948071891245590950967268515563165225660079155884290057824601483515923460612605226552110914123273977360974826134328740521002286422003996015172566611325557346933276588610763853980627243300541324230244042160265475287125024592816700954508807565095960737577269981844769935273744846244048894224007168714825123523512813062010360585589916019490315568720608095259870657866944663444664133724484850169896843566346001432002839948195765167816994699784150559406518424255340568653854165989969262270214261816535885181956426904623359657142358885631630028266560024510373685884208998494819370308509275681322897771049493401076071563141801712596249819069522688406491515568595821894719429562322352645269544891089189022338824113114823543278302770652965417771486667199633632130721362946845340485308910269038898294827979080279330913077205946165735723721686332594087191605649248970364757473373143103455646496653700361539620864642936447944052488601946594054442002922444147411605575213614758113703159530774542372275090191438472636017227446108702598279533703710623531776204642605162448769843383523431336729048410370171150186224663774978450723245990237219884266454803119170157549653605824841716922835504921569231468445154999312899650884957730018728413893674959688131635388737628693861717310898503638867622089666228033732127219109630285407492945542481822604947544551847161530768958208816882163678656871345334415253359145272313738140957455382308463293446082125057270242939297289538556204282348916501646122362535614753848862185604327415071492868625465133607365649324496235674762689292782956485686267885458956055225586761734379762370266715473710857665144916017219691655163099123648066857745011198550026786315215172611078128870928661731478412097280064200103073195376807673512739709160816776315450496866675931911981114486892228715316498834217159904265252019309430131562131002985052406051623693364373444084489822397683258520902708898812394666195805299490440431828806450861528448823245944978452014798791055652844625214165000592312890396603589819745147057578077538649205806756578982233736623406968458785673326506131631145827093678923824907617193912380386132460824952077401169195664540621911184996991140828396673847318651587208859561709163400214582703987507147418694408822043655675364410688278742281384450716141436846046058705929177663801186072674522810954615270520403573228331273792774668326492637424720077007777138744780272990016083857063446217638448038059220670511131494168262194209749702900067758779649665188798843598264320399661663406899344435038420033983150114383066811441408805333939876662692554824010281481952334035098701039530087566065507936092429454776324629363003934166853774580135124947772228886053342888614126573660884132035706021777526561611613176447732518808258744418673736514968675881566228808078825485815914931595150610090304258194311137640298469927340664082472018599944036302141133445293289158769702407502660137448773265128746428367661589149129139458706122518569552595795545687331436150236402925539160646489261202594520608772515836521398838499495590681315020570905805873783843448504776179010123399581851304717685369939138451397852987837424335098341428058587070651451079764060480108543710887991343105429179652884610852127620270635931707277542515975962557720220149013085583058393437325803856052190534292068289594089009357835701336678727798619276722675040018309248544682659899724790672424602250892974020304907923298200502131712368497757817352909080224678658987425955814616302409226117335636512193499395539834418758661195653231992007946871798005761008376345913819176236347564438906149963962971103293219634481308959141848766095762727731569340579419065425580559945874185377727503967508075966805809124363501954354061993121921913204379715785990633226894759566962629995015801748566428473246465665752863691675971319237387077364939861571001472762107222861651059790135745569045833662250934435330046947474019296899836996950098428899455709287468171784592535099900132224887338709415872230087517380078391117369844718838405949343119064576090330326031675061157129262494755087323375391056896780432335517809096965663751762081185394243463471443497851121581786042271678157708573193702914496152382357899274327410752244867729424606039080050639086574240445218414711079058383406206761593403987213921214943204717026118823996542995025858349843125776077742903315679330966481241881903877669130956493078239032284447849625063197350769539120287381204628967474808175980453420072166942153289785970878179992584701178112157062207052551844367948632343467291652004964332605828310730755725592875517046471334451442362631263318875185611046826428841263932151036932455923584850223826763268949185309027889584690192924437040216948178117325399720555403779663044648230721712623305019709739108528361326087884083499232947581414730031895794301687065204722413167496601146988028291352213149395297684539912209241330046335642569142661170714877986081346432226523645803700377517834296935849980342388861522831679756300957494980056157224723252732884970766732717444019541185688703991109394644615714599614390956636152119172093458741938905240239881536332028588314037112679227090354937568758976861566139862948825022207058262797272107527951490467258931280328884767054459228381828904081626894607119037652338909121936601439092261836429986388737060288122714325388992299690711552749916537450912355407511106236808148344135475414385340311747478360281713940026570119229510064401681967060301563079434004322175369179847322804352594395367972349601581838865468631980243681954174382060203671670020232478560102852396812424085273679859052398557879323778311313889580951387109455524724306095379709462460752066587456871773321194048059742807336271878593541393175446611176748272346072076764768131713310783786373985353873639494293563180343226666048352381606393204264158014131955997310099170979547267092078005334016463628878521666306345302525408685787664035537904157564272174607496068434877186115334046028603630246356997501906615108996896729335158726243725688054268606615140924419623390754210839290700153710958007274508029225793768615423922962418399660376501825365749448332635843332390275078316331099527465466576378630712439929294334516778120487275493726769153621977720834391429388087931099755238448390847813319170905792149750944414180296449594437785912903432350594950229116269848156029504225342854854178771934305029334648422441088740577712759700259567939979297807639383340204748598223738177763746087708942963905118717793421699946154140782769337655861835481503795191677869705874959151038091765883758433327025399967427100632266384793197870480683877960081031924328020509342021257311052735869161993897000550586719626803165070254908975169330816962061182182864089468403521339698855059618523712256937045792822939726817826973090100267831310158232601648740435732378823270360251640202168050595134910260985153921936492243450857539228642788572719335364813575086011937753000542066565804730166156755842269185501735595921130759771145294310945370295621415297390523687259026277916727852519259894419255501505739764731737118293762741625466935308863719531713896777714354668200622163635330100312786282669651061390182694212679341249490388196518051496016547725255080275671797449561595304757229338230475251818295763661014404666036734508629239182230392934336067406832085819120476635470032496377131930879952592297210911892953216390967644156000510712468664296560397031555170747293964250395790239618763288263285052262010437401222387853959964776333520897054078819161235255362858424385707274279617722751443886111536468559897476108061612759041304300481164457489483993071266166817760271400570607020742160470397809875341603887524730117976464213643659701545558992748561343619052874705954736435578631744150102077327107881100169472506674862892489197796899901281499213584275097704765098892124792604514184276332081543950165510671236792971827773867642356463809956220272719711609414935927238794221649368236210638202254475618932972796145978044345128006225568342582806491954919323056878848475002912406042492799767341185813539590102804722834253650780672181627307495635335435081378687277645278904337586046513654370440781182505158087506846147912946779319561766369598925362883137927677485060793788484978397952953636366267308849680649820033717666830091201412410833560856589112794856159245511590249810715455034882675452905895157263711860827017632444351257328114412329757586493436617359548196900388917058623614726536491148813053618356110309118397648854315287105857877372428134837720558869697312127014716135647350422114185013313416192563856140507602716654256235057719284482683218481103249580255721502319444331353528095097424723420551491037031632745326928926727481027788339630061270399327568971233201927706399882182044669212839449413475975831502868995825732081296509765395293416677743219989106436347143613306553199720673013951994222318409607983233417077577725249795954518679158767685806312811580337842342595251612939032422901111966732448744361517650845061186524995684818978863147822892396971625887622727405967443920092393086263642510170318820383654824568779541464992962032976818264320879775065017070738293679653173342130859989928844542964403458525125819581970728854880033110679869489805308295836829353123002597595494965896510779873854911306706898348718620407765663698667268449351186209299858038315859896424662561594595286048902259429908807906963417294056089025847220486386449214626603727159722924880282701121265560896825077067444336224442014458571462539006751627596266269062174598886509704441969564614967851952298686354566785232711553443811647489776772648510956716808527639825780062289765787665394383473763260124663393847818763118723183521157891645913627008109640861572064121583387193942247158106138806569495037461098799785089391825111485491967446743530495995066590988333843501479154092953028440656116540818906317042805898832327318606347282264767606988675178487870432306859454042084687133408423954915140015725934901466472026972167192411282637833169772792961788141462036467729939007123645131820374230047795490036942976016090420356055975841776591877760919146949632097816488949313155068604487267235309389483211397958403833688767823537031676903087542923725639224561135180818135269977576817751685906523052308176615241702475340111649299253546585497778099209851179452222468683305606986065906729473938919981450729393197149357667192929663278591908809659731328199631871757385985678343642039123716823714452187102301501946269070762906786745997666889789724603956614184838900957410614964194818192656644827259168199273739732482144646489256570673033872638654353106051724712921514950016359688761538789667617333030592353417666016779891929667285755981128218236582273781948228570147846014627198509556407259535482462311976040583633588082320023410641434539136219109342483131568030657792785108615720267861938842006030411990577049229618124756575501726834117818330428848501193205462328805064194493160255448356356390067780413118510749738718585173556787751242080727489172161810901342254255707425600209670913527239300367945288152238003324321196916371498653762837106003467346919510446495007290194808809926133202486254853387952086322636657764727024610159328682955447058040679725152129192950476475982314824248832195508676752545813044916728843515887695111209307449097103052898554207739046861143665094064378202053643228010319113944728493849786742649135065388135358347664155330586121800717446193456552476543111100644020359264251283963471031097087873450204317829243964532196987673436878787109805198054315487508729524778655676918918663456129740657770055795697665100273404569598259852021925574318511204447928576786911159332299578258964447085211572967416856785610773295622605437554734418829105541372349468415324269106900410731738396053526409794370889934492954940933834718714194192723222847028643811833904598444728782051924588326264485274483915473597309510222914237064813488115512551373718522346161961938461787955116953274747514940615788872151482382800238021596226860096685758345686169215613167523786036680096315361253696630088269552463072239774922903956373236139273399284165550996688607248843116433792414551242218796271045807814853757044938351497319865046454080930150332194657812946159374772184597464789375276678542751719041291031189167281051744047725023593965408496955799173952079863076851961692419198402933906447519406738613366671432397131480914045047912513402795186207997599109150942552207740831293642379156440424914076327027842694151083838965909256189594362316137429579605677367946394248733012316837047278789458018720224973546827718922134737184362580300019136320603428909057153649621689987759960471092624375891809856742300261903614370266613670762006259734470793633146668171385355082433707001959755142914153747155827747901104686111547704944910895658209344784707055951578509096045026190072465456182390191399508212646936110220422204698395704973082964163527604631194427426366786618274357806507130637801060940144571800201629815912956068697659408780536711965634752638801340258179860291441819162748564194984810003256432838816513354412684422720084990255936159358082796054068640131427301104641917840847612924212091938025655149233647420591503804436952108835077428440182799215774735975469144906183541623736403889424481850552261167571183886790132200538429296726203191643920889705617366023244584649104289455709410898367925027512945426324878712336038814371271948515898940757347071789955586327995209638623771853651067830387366599199386921370087491823233630664845286641698673058793116310579669002433699582819276599076130794958096796476183118225805613920034912980852416417520470133755485729250843064722220530545433987485291490391986313307285044517356317698742874280928077629712209406952790505636798795380802063235834169070709520530171831651041248059988043237852172661374416598408519886735660871832723387473670360108168680944105936908245973721170123783333103843839344068102143384503867775847052731442252744412538400355769820610355338738648270775726973290442830851707014637189684623613627343362840224348930196352574820735589701719338339670775486509640240675847646475854080865714226305712570610442386323946519551422104630750427567747098058605683282452190465091806245060778856038878127761625067655376412762509675414211019659643122929419993493188285288910065138760019274969213344420391068039000618208456620091688275697178393306292539360468335547039132312331745347333212156636788091778981159922464667180335229384588438198194824595468204227595245328315486060300729406059748031944913955853662011631228297660499259844581999356805332318720060689967990258438681780537633177153877988331838400221161467071423092917443126514638420453309044468058220484854080016512187124962937163388436576338356761564018836939515034277295616895527685974118274080608043596779738151420304235791654157407736018049237268865043396013041053713481643768565289842845192288530073095306688370082907005584603866195178360868240480838056856264481181442585022559095726265115006344651495422313979688585805970143919013834609463766035177672986928875096155963032143409780367916282221455168529125956321729571967555421471808293799102459110419052724187104621078895610913039533577835570260630751557128466149471661531796068768840558525851299161559674199760447789748532266643160968424650943886153301557243450752736695851177394413808607517123624162502457299436685195877046386536587647739295387316448736158057741477061084328964273927347312214921693846872062545553034341106680669670354229312565222547206547474127562527512428644746815224239560133080148760655931035332534923947341503667047250359408008827674728094130780410746367084893883340323679908197466083502007114375578692800136263951345938423827854494349500045503730456484200368836792345665952264423647795204226015693858601144981184095725617928482788482456628713806982767199544697157449676877241502655082879900926269075839437361243000289028023177887032493515736773895735643268228638495285408909872267518805428905005769022124146890209565171504241303867356166489359805188354294325955644445633014687135014376910959552492410074510821088853386510648950901996887706173285738245238150560329889762026009808240575763713366207681755825271086842933135491556093718963204895937933138451311364005811907720036142526279819119500771373700506120342289433435528241557745296932243347295232964825591233060748579745356748497185693755180237475527277336952416507422590785571710820005113468041523780119141634915219447291113677898884623889286993409652741866998948571937692965717931705181627105409546658986402520368517284380572121693070982194193760530334502981110808253378507344648555877315879463377446679391323871221240608343605614536667083158415151906455665326095503513413272362254510452038866783586194795983821584735696663128960191859988253337238528255253812319385905364432561520104256848655538545206717894128269302611129271127196128456697224580856034196237898885047394872399045257598395808956392651009796955401991996341135178596894809573142274329559605085619420140319792586905454864344053797528610689598330867037144454963424350836946399431803589591303091422050077726298811905987966947355892643357774767687288324967514017953746011934670006767223049592577246664414311541633022060109883170634031486669802684960085184871646953165791802533624625455931012947179277893517152441836960149873665952654322631000679759242660665980840170515986916712538671272618556818780636500872143377895303562517241540533734062519148359492940021309571321467372864772539850098365531415974405473575299197991471814832656733871638665998545453080991572975659464471856070783845638766624366938561772444884067232604448857987593698171408301894609027895671431702217279167099993473607681864545598767305194512912337704143888967708215830289044743441996837569944871643311852927178010293119698791832266589283585946803277831587461762713600466896697976108105790393550310578395150129163584355017839655178643534062790457890726578711159332269527323832172361009642114460288808807389658648386042900300104029356625467326286044931782899944815913608312686506065339302779835070460842237582668158319192027257104817136769031084369619193519226890930521992906235556193298600531396729354022683515713940000622392881874652444227054036831462560374188125442731043426695209536268048426142019555504534708564910604439301466177610299340404561915661262644038100171575619931807503113332347186034124535273468696403318547297656993265875322104546300734956195777807576944381891968462541954412886514219672180737824673667726031215547239307832969129607628551544025450799089859552401856253674528490693249808268212601905528394026683202250562521671478129851905596850188442468684879356808621490277640127671309808713072158504852179789609630408159094632763989602779080427841248944651237961987157674676783954722641109041728800020646246257648596756507677556740853225462717976118658057290813224425304648633290432030268085267761841367334898997367486170715675331783525378071952781644263921742490598998873947795813358758101225371252312122771618655616213505060140098351156117167339593466694189165359502119433003432690430332611570757507517548346640143894554883190860746640588555275160402592746934770349869756161784231500376894847398091880104061517799223788261449914131609875645591134948473710793436717190293588097852487791407636032672366516380102293343419896200181810007185718133321976111718860442071037934048892559242601607112912572807434872359097499031082610810408767455939478094853491666468276217389742108660412990389621792578101086820717558944168804618314369428276143680066763486550246707549230596754761033946929984025691033999704798194842549161758956071186032976850392218103090525433421470140521751837846108218563823968474176614868076475060678819412473470276460973417454620134715758194465267786605440195428357034441602781931773287261795302589102141677607572863031488536341379676743021859727248462437797070761365606611571283037821087345628795399700673263261242056834463893750855186207075456430123356380174048782243563573352467100732456248498987543945969355501210884560763760092933247277944228924395997604239713969442469929770683284336719599241297314738586784600511368641335922169265703664245567582814934936009810704783261035340931128828497704855401574066904773670309790777780666978701234167885565967439822394319847426376828146709737226317814975170765993096806062992849364813556965032155458899196516262209679774624534902945996465846734889306823395017951136039073305470345595173606071272787102287956821737131968012191933683925829013627967652247395769136942390669368510006324575242087895759213601348349865604055829945600320838375903763454942167692669290289333653376723257092515147673903884955230342651531435752001472376979688051774569817374597514806600993073943183047159314943686348982110515839240279929980430204442105925746443029715278212745750035639065477592474583539812795188846931581143696319672369102495724672379098974761995107075573271226981699156822609499371538561253752925652700306494932034536046716557078722562362968619107684773406766400126706026406604708555232659772246968372728702011041821141689120211634378800038824666746291124638999068361465320038225911935310441601655444898918691258164649554109099737781516665696047234048998033919214947282317640554012318791735426767448391116085758475789590503128012799327791517602661775583615281391050963682736732469301333444504165428194126048611954407135602915867982250408814084440957333035682483474947092033140345414130475087596122318057162567241658949685645819057159328222404328708487271969448802637553685466444339936144660024358619226389420419224107263677390410801984621695120428857984839307228247669839488341381741898907892496552819623521525196184527530984976864703584190494223416716289394785138623607433536525190698161534011738849244084414498903653212933545867824414200990245906718225375640696105735027389144007889854543628980475253949880334177777338819645158302028673945287923669359311470861297064825247957533078743782237248346899749879191502374232648938222562814760246578620602019781701059755540770574357295941885511033302878289870313636279181719994277038682589372311513901123642492452678715234797440339272511924383400071168483185585889927602085636956764865624504391456238294306331736088769108496673081731701242983154809413187159762335672445330090545322605132062912064049168887305064737795566266564386573834866122458995120204517057730405183810309366065411205604672402123434750174742037420237104912222613924885964432769545166928071484400503434258119679794611968884413607787393910887812715034591435523359674915953752745649164497009981882190325158194680084022762109748300299663268079258455297183248058491078893534815371805049151583783326410361817244184975654064735409041916756163024494981135541551471348139874449651171120647491723564394337213816260056814857066263894650580496923946565173366010663158254770812626044174505915105057783606648253963311809331156869955689413900113385845436540499169577170262710486526293164757215812582684664757937305529650331321985808883552980550104493132241107412375811336498356310098903881653003124757370905957064251172045165244358128828615766831787584475994837655052314536739672278579633083773427799078813849874542944084119731253410321619150670436992674891615634335557992550193308608833016272513242615569412848982080009917940669459019860440166276370298356893659619973646174958226766768005571633716137844434070160195676164728152544479904565559943446209060214957646373359515508344545107439478792540443235379579354901670417559221707722404606543776917455598576494238262519062431429793162453098724780357920427639683216115071538826441567593843677301381303447712985515987943836381607716254664638740146558995203929786030621977836036956481127683493531610998612783980330706989806376286183005493606073682359278630981580526471095510490712289713745790939346111142650158457308036555899818239470903569191535468741801009875747734482178485155553744156993407375426156830914207658363070917246909237018574310323885009108239103390613921256070152311534781389811267859815604137359473258769490435139345068772142576072757332362419001448177444558445998406858033269272251134686393392155298929543958092881338518645118991256225109367015641968585058193253153230359763847675237448459964546938175051134957991923081748161825577752074570416836986382672829357230896628875555507142143100143260561415377211808269971842050295165708491966642218747178241870473845204933622018517067954906411172242018906061691659159851895957991156095431263451677280837793364903958428375884932086582727576469335361759628199616414884595425423467417971667281033780809640304678982652140799646195360980624520356919986680582577552031475060773716208021557724949985164647531384282375912553476231274740776977337362503678342609122758079678437594989821165785426400324682868783578619336314592122458253243579935117874387569755909377495832203610063421531069389391657859635303644317142791215968378067992405764200142871820280417761960885345021575088695920231071480426195778263157691361228238777655938660334209874702579153323509100281520734333489897570608650202732541202724842992553923724108485835782338795428736260584652385887350511377626453800989885030201316422756354480816453961418044035890459169261646943410008838094919871205296067925240580297548364843075637429774461833348134304781999288483552668383940128421918305461435887897460224848189982678247552342537236751451314900761970719107116631287226991750849675283117079857320086295263917787762178329954734968988826404427749074400833625306145267962635005070817754785311922187655914636858437141014997018355026830261610018059031585101128797293623005787557899891285702820204105427986609256287715221877053164645699433599873500763280534668262071739153027616066630761485907123482731157105220792644817722573608169960966099798843596030619828953269965121149424953014415151744793904026724602394488823692271339914685648963915388446317512973546970740710622836175343817206571372872200323730580138835823782295105964208174137878039257237592525533866866533051090481776569689197719062480617138901348004569935544730238416746755661740673839988372902985773090613946301823083147964285957616213546660619370366340211507139634693972869960946869368075950940413875318514087680870662894493959568745110116266901451127689015321758618463854966651527894602935614343061759465175133333550391189384854923832099323790467329467840830753572973057495631919675222427142916114524829139054523590446171296250466944098587331374613221598517167849542555903380629632959917539285406761243277191054009798545406811301724104285155057486645470107781162715263219223559607975851793058562694654772794601082017041888775569668906358752672941098000321655076292604088128348000085075951772440666454498879103756582555382856592120995529071323003794338599656235452919820335769720980540723403220087537776871181607936713690897956179201357035313161356744798214676594153145877289061280433748602601459686170891544025878698957452137255988751108132926936380952032933734862295109106615733347531992655900665564055485229017241332554200567800245027916207493253171438476690715836430027904407240035182547639737344348703486560455777510564950477586947009408873855484403907908813456640955747881254597992655429117436598976408686655943227021727315934839059099125127377653909385678253190806734157876851112909275014434456982389331293133173096407297223948716935917020827260452488200270127130610580672070317701975119453528089074978480214972237888159450960317923901507342079647002819466420981754930968973426044756344975172391021522444962480254244996702183628981645236575865757323711534626694125012742749952604842486197946498160825187215008891283840622789620408676528821191024665670607232980802106872765521667663560602032853806867434562163813041564243619492393224459654592208273161048149600472128997551952164968625976121281834990020030945457544681164958695091109681058380195641461182254760901648210628969651870556380770195626012765169162650702266657030281508959985134628706957296679763009915016341683189397766145125488019120458787224344762912051254182367944786857171953192108932881464003193760216949333508607609935320651160498474458467535043213596774967876255900241169306217397761757703515631133797365515439621115504661820549464640122467748358053638893767643559268753375213392594675143555056209188965585633208511434223367587862568549658124427842766413907201598748682093889125936003674773861521997739828705632821812439522090269607969182893579618070863493468768303781891039407303223608535724907175209404866567234443639059611749309450107516938114706563756223084614690834176994687434947312523088256470563252749998853629653028598824316099375371399749532946631246729157486730136309254528418942103104720531924038135157256780958182026798504662521577142976638470370599734336957680877751606688381158676490467503254070311335051795466899397980300168226600796454804609192722729075609576017681397269516510774744537565451289802966277668841664547542219328911283755149519457364902305945696176808878463267853247914710162698053712452327602365033797675453660151903530920183758405772479581855380270837212234415877197216807117079345584844509449950615329726587863877445559803010561657050400606947535037444512347357679524250731685295523407167909639389388001893263568073414165668261913443633240398311601724538029126658276518854092471540474127715819409640390462502117887955146982757875296708603988737162964172126806653742909672006013716193165548557618662231066770421175440974608319708709853386130132290110383272983541722875818886905739515785214479366670130128611829423753498400282048999363706431686800342842009071552226090354750362001668525347073188935750297200467419135609798828443159715173745432074216480773700756038948657790926303563215058985668152982346612967810022365002105469403687108046994596744285992723925212653408321865202864408760189981928003669420339233748864528403396891401975970851365073322512688277805606345091620372921732426596625599953378311130726628662856526407702261656663677570905339674061128606566872544680160093999865076329093136441799557142496465517181839482657355843351816932958300628760931913370451077892705189022069485965041902325232118673408777016360815561286312437856024336827428106622208686664370761182036581633300493996009023405563997449027204397609102712947808459855400994738700986220603346014529287348824516097446659986387757999664949869956551579921536684501238758566539037137686880220959684099410958861534829442527160163939800300206406610935348206623448129941469962001168049448203551135091424852780882764170630739824874787850829330947651807849044961380666019373759897733917048517452759435253558967272306069472698720020403747491010284360338070313599981898757055199916855364806410844364204012340785046297531753820766613156619268652868744507767421794883172880692237308211077115780986194237539178371582258854092227648829453519072468981509750399838890035731498297407098334172269416174028473706391667588535628252333924527086616729860948173901639765325103029596063202878999511242762254181951797719396829009329093529194728591738518475469306353596128165767225425222340438272995990065122836162970616669559468840923485550728064890786803551235465810650228365749540915054298959228280386127628618900467227822581006116682738007650739794585096246463120074542165912861207220623810269023356698711143682141849943467869091231556958607417653153789530389742385737529103994196016928635028202249986380382188362566988562251535710340309064079892681578366677099022784639206569901377465118659410269841423952033475648483280714134332150134894286466290291536359685781441087334063664654611456248378503509886294864874757850531090506228812750636137491623130439570376601489905366553643125020008602338779322213291913624199787809640357930190434758476429653744269488390853578908688074991631124883347439933509290528537521070318105548293672321901264980260313533322022158282304850218696327498480963686728186388268631559982287697317415883503213630971760061895498754568844529051500202642907980068962888979912935976159267563015489725086571160757186928337012538873726729251091988287908925598650575627675384981668093147186758576734794321625476400964578033624340658985737499358605487393798008470110597248117070577679568123984975925129618685000469470504688648433914244083066590132023807136728325830170345089069020633909942193932031060430057065650084394076788487315305005527119824904891344774607575127775408629216035643107252243960269683505452973476967550166119715724766542911245055677817626115840700540777289028689535959594495800044903523292998976144306250171189699421997504093324310452478288347131947353185966596885841298300648882644776556472039134683709264885570202938745983733957450464687793475994896920128629455078896076021796955732215505532823964673621225000615528214708227649030434471784891675562931104806619622503960471868126893634782110169179871333683928906187760238384301949390827725759483556458776713029830487503279255139071262602793002381066552299110696350841266582698121963703141362693377187258490159512672369212253716525921120803147673030293088317428774065782498070219225858970669045768730136989033403881757415824266167071487352430717422778953736877199665810941867793925139830976063453074965358316605470441265726530997180030365659882412732313737391314755738888234155696934350692613435711043682870385924085826949339117132422846480651242868474019622191243552532454607293982377723026167281961809723612975666890504580447494519330065977934931768108528289845020482610019628262052811459125426537609956531026012073108338486409134548805552898686037754505706870158392308779315035442502782926073838858832313925005423116845052895931451588678564554625358986556500934167047919262943348440555583583092659922653779528239892610982002973869029705608442705007871025599560629567218384094552806812710039531809137922568659428896145921421576618865739363396051792420980771228769971500963937280193272926859268357381992614712138394119802670882970933127618260954116657020384984175733958426292650983290507075640667061201510056257455731680961905788420094984086026611643410160031814965586177328377426632328877730184777356923555905977991294861308471012603778667932780885362969395956426369633686188200083003392902547529502262606125993663887424230342697153670742764929703811591181711196525751051261671501957892244136141203350125024878906350140088220273513702374151022960524470343692279096510049185485068317253649269812802730846068360576251650577144039727318367142966120673806350807204065038333810654977764909495768904867595636760818416952351488448325424378792212277828391477204396851646430675204513922331010061284297502702609201225786231906575135070147231291902712419068941754816774133548418523105459465086032917090190380279435402435775713525681826974947904993707974929966514466882016303864868942441445942876756939769842010702141898696547115855015807089967903388736468524774854172996149770202123744618394836049563261930528371385689385237107306577183300708066089473181158805896795326817720745670985556824208795908259145078250461220918187909867053928642245160520769026779355292539060511425517154624352142826552553680986509736066542117374393350755021660388656981372620083399409623414371949472486182442985616859589494523313694750875631297668136321564107526179736620602738832167864056059383364060261410456428069597319890828945438394134871113258842752044645441702101543459281882388155843895518782390220267172059447575405805541266698332565728917774146080497890722011197014277738620273211234527856004304068468709005214285630463795113725238715354308060400406533931621497053798514705047156812605076948838447562556840542271659663435707513218440749075995655307916124799629312816703711206389063471655062380336324501965919062368712163701682335601803647291776002233186045821623243961166026486681927202785415696182431313713564200946909803676055461698634330365235042221641436464692963264811620239078959889757325294443696555775454217923418239988787613396649943098403635503981172592171502928257445395853894279990802839193377249361410775591926229674571587641988059437947389266589442481414568491539189879205021018086936494506359204393731138379862213441704913599159442918687894760315462348107192850781825848828571256156255961910673935397605885763325066727462351776149975645555256853987991661034247619675600867334144084697931869894585146045874282262283244617499463599785267760347213845465425898940476765069594692705922949526286092364972210355469343121780042932395678892923425829243991463030063763605337528783624797745815726363653984312215898892955603193871927483610456921544711036713477064366018555173410963463135663139398704261338027676372537270928917588719104845576734265646364426936736447841595781451792068493475576417175256520513441918475794272853126056569986633160889411755419607130545660590143749016248251576260795204533908912353742202215673419719477859991397369771367939967313361423179892666117279058022191015681809390443101257274480575324395401195573855828815298880257526052408225088666300665145983787954351992374843460935549620906304912093300173381463464974250335510858478198861087379752807184813094293022494867790286772071959772315616080675300580556133047910027790872565125192740000076682707632155633900145613753958230572387378868201709837566470025371812851955703749714248017153260870954213663773631125012638618881504545519656655539442226642281380049651025507639285772813734591111269526534816229876629439617136075153108518624951070310996126120480786441066415379993465932202187195888605577363147748380411052598692501828803243434267549499755871518339359816505188949273664981376344463602946536977136693985414724141144474073078191993738770040960900957771963713700758931300450879204419211377855456266342370050014329740330297525121160948074096415071453513273534686796480523023656250955747522018899103527943452293708603181646398216973426495022650107044564192025098262307541689108257806468105630440016158233501872292441003801017177615122876442466821400504459421438931808646877839134754559790610333289343951519531130647477787679074124381174874540539382063207180145973148115125413394524325504202203080809968717266496915220030074029166240489582382026954262947856826306377475569326943772813601290526451031904175057339320862567403341614761948098822007281134684840257121862937678623362878446796926219649130972116114982468573321588177854444774810420174923252260534294075177011644088629549139042448609704916887358737350501934173112896999155770008655873396072186007116886401474508817664291608269016042185531056878146751337140204931285301526053691138116670051373325281290407326694385044710332680557936920610237092750721994844375003603662224066604772597916429242462015205089194668016956911967012466032639610419946466729473490131396629477675126123350198956513892395372177174648976849883133092921506228196229389473449298570837938420659706664160072437756673417824517447544042315336692578794658799588624033422867066476208890248724732063635561645255349110261780671581870079776231760788526460521227613671601529660008133551472031023762915432451402530885510940267973921781394833054930749216105963743928216979350979022274454505188665284605408795609456336591372068606466742004238759758761530046487009521880998689948232030741288774858051149468478172091453703123883492055455788480290650928347303689128669313932492832217565547857479866542788856609077751194112011369172239841743274709146452160980367381708395627884735258064554618661484950890450144653001095945376993845732239030587225764635769725458671795703641466398715786787079924327527014603658135811174130937048013867723341650480841220644063626585220140256791079759174283652433952897383859534175766711184832933916360745256481043907005089789541704014304170036986589560608187796350383649634258944566991353959693838884987195820923468154672880793666279043662530770698846177841188902118524942485194914689525125052562005555048166183786643445768569704433289924712720350234235951647172710987722244574567357932686274660654042932950251883876124078842875578944463516282655887212902267923237611837794728158568479407158436647592614384424295146140219066256108083351243360764052505427409205106045664003216493381820732482606582524762474978416870577707226357351952830489215601987198237392693702400593923751076350557081415154913523211974579125394045003874551705463865588982914362492988557374980504056395020731441389257964663861009162410170352680608133092510147364827744204972912014385310060623225186899995924711746384044721155314318179637605478013745944003656052569711686410935793537943534296489668390071307298387684675923461967979310654103912215909165863004460904032588329934274960510951812629695931287177484299747884532777525522605426478213026479179604766316883139941445956457741532106900078197513787677491271271796894013834226237528271096180542704398560071901385737075997458342894937644564770917825993113019703894597901152967258204765468025229090570228045203960732651139614404939190202982888679117805038734323325105158610630194398017914222331153759988968039818324988343787554207482884171882284576667288868098755197587970929204114893224619413778665171187482288138321038312199054016185847485951916174980234097281699337671161691207143011267978258964214583118123152592590684610787252578799550006087570467670600628151525946093546502310757243573144745331726269094487213652200886885482960024223716797568421443282891233061537706859081996938250131173283075186443224762020053293147605610609634083906985427720617773718876293389246748139053596498432532330114526818251715033135159981333532139516580549920971986791123421079488682773256220385328893237260849364923698040139805621541587374352629472842212536182684233592203586074571750554192286193568238357871221210497701141606455873010389559714811601580876715688182341279337565785953135898568412417624859126318544713097181068403569675813448947899065726375632412399485437763804645253587614667307836115150512248650026118876781971732199513029945238185325325312874758587760885919533738119625556082462751392329004770501923959120636993516943918764915907361775449115579378454241464997425494414097202690697322308425038346469692013784400989320181402093672871919810383764349746405794973175542056317218999714384665727796402619304163134878666106202123184046354993375544748305001174212310767230591305220597889471351472043758257224405493773708374211833647775488482991288450989438760663205288976917985432914514039283600552710661589117132029037820204746700636634881578271654779573024944721051722055954691676529371020092391261599352059323637162741285318106954707275217178346780621668308696456723060113374829702348665150074454241883866447137507327475490309163625560946216812016321568526138627810944901177697101046591064190252928772586175480072805079732433978661619092232644042436049847109422217993226693858312879955523383180671824648954725839682947033628454942862519785018200458528001328649062989313717686456709260670773070612503367789275571751124146681129872716918028576608631920184546746360109603043829891072878875545420337844051122151515076011691515549421575064182973678372192527192632219217714901916200918001440780403984473735729290030277254099971091969712170771010663165953705292036968679592886626199449284061794316049123375433247225405768402891190468652025341208212893927818740565303353834569914921371132472817025940169360858978495953531922186087219911105878289415897766241459672846749798462011853745180407306908011560937498082996670227422470703565688217467203158442596666595418315516481991166961658032729247149537245065264290891625853671205863308201753464038877702584765456558975991720565312487769144127283567833967552445388417370313684988689878041143894317152161881878559386401401948258253504951132752526101199628389783259795893076338861696108304695287270217213990576811505365784195586951060957462302253598518168984303299646586631807663196033791595534609780921154654596260406991915334550305598727773218034520561280590032236072174719872566101614076608277479372987173249940232603288279306596704194946211127891400751754008743848431241143080815164995818322496547102110971868484258961127199688879772583480474579634744839595205737670409236213293378984800556623609525057551654833544189167574154880330658390195848567009959247283033155994134241527254071877928499405841314606347983202962765253955331712667411323852174074285823779772527362348393975313221352837185561523294806031706423128820928161945574723195693859605247829633794412424266947266139672367614921404542620686794219758287487218875334489652162635285854850489664201771920146268589258456720578472913334894325304723613845932887996768783997192911701649752842776513368743283677603148827004914187781386905103201205074892800734309719351984845967674969831362767999829808508513619963405874776813119468235479014209305478727167326290321731226204737103092519304928825780897768393337287996697709009136719209626076406283221083642571398032548766580076466470874226741494859956507715043300179327602717146890590576300901058346940848011349303216837951848109515807686479034423329934358070609902668873534273625852548737168737362600944173573722132162926587995969954347584705375721059337244243737707053016231398225729239491260150918873765023746867212595606809497797748772295394302145984123454145872331319291492446774488260499540281216956589146486729731690673134822538482194252704213302443027534903321423151556132426809928520240324381009984743500109667275083532310314958332847979850706212956360955015692689566196590909882520148088866703422719419760439378179013083667068359347728712294538158180576979971000223467139978343414542029717169230179356239135196184229041783279673737863826683627791349443314211111788396163481280686502810299131689542991340861306356237912784140979933055759527878778428659245687983118628545308659144084316354305714190010972979506793321004318518521853026033406248478898053219229299477488193782682102175011992613388764700001802494657940557055183795323144542081121523913723245497759322422575487281858324560253453808468682234712424213913855795618138303340797117533828475244213842979516689753401250831639222235095416631111981679283892515155870789598925365175645115150398205936469999766990659460591483151306122339293982508888800531996910565361565670030890595124396293229875568386330247023443143736814625037043067743878308243218369848561857056201649779975665956004506379052133245786007247576428848132666921671354590429465494888277674879246896371624453328594318946153282695689591501531287806578322868434625848606257954773681530047483351990960607794708900173453939351755340994644586032296523395384664172359611314329740940447779410656289293843825950662487509887536676588116631408668476890235728397562845692977814820453222882421792541008266910417280027614889311318182357500869349121838562624860168760291477317641349142174631512708243570692721764697962340239049303431363992572883608602789820811413774506787737059868929286110414580835385206121388818702088674137760382890227995326550144981909590825706930351323302263496303237166844220759935292691563047759407217651482043997389201089850594508775514490597102473362525898684591293538585299889191125220142696951119107622144492398179013636138623003032818810893122983301525992911933941362965261759540687142426786358358974250359029884341300953075062078513206572267876472678018282750913409723775889472293930935280298709796100337346696632156629652262463494498584096736166946521337052561045878914411434944285167604784353978654015877039019304143925149858979285150264153346808570199714526959274961489390585562196502768952357716035440947996911757368073063543970382376660630687922769324679528005486913421626931326734615825556195085114415750866639327141394328584706242525787945020619552326452368743641952708594924882109749080895150947418367519780023045815814812616724387626659179198886321241892120560603870311504495919812962860890765039360856743443928966988906063140448523584821284184244822200664134108422550652484023120333987894526247872905011327299468290234151531814068033805551859205773734198470528273482250896068362076570549519641653786641421721663904679124274846730764976285177742587732506688202904160961928477385584215602164746995967304966551700227149293913547349387710427241426105669438313010819556783445893027398565209362384727563160304373534572661808297341690325488275703621738169313707995506116542761392721486380220586361038473331858757172089749782563493373384906709678981129592152939689921273225331066615532457808958370348056070964084417467924218549840807926031969223735002221756733760269551220987002733553684544008484431258651067229977449864497086778572547915290061022694965175454830115479646305247580345336766040201747204193288894295823320408792732363460844902013888493767254278406599526175706563775636729314057515960083668087222986257973818594499239053086658597434283441766829684856394655414137784088637315915917090268277511696033280080228073997264641154512953619450580804619191929712252866567725853041348808652077178504494391229213508940891539827148654859476145718873306399290773297758969655001080601113783941846178486223426016183125343538588308026424123324342023826589625418925033478060807614340591830063626540901484817473703042042550876702354845429467310649936215229549124357319439686075807238873962856592175643708034742378855853757759497229607690629043784219510706249702737216304500227525733966175050997200716779027996013558490161019728621928180662698777535477669910223102050523195799963179895220358985369421995835783864910967894263921634842926624542218854558472342190821097083771057012519508613095863495782779990177125877848125582272468356232979179980605882210624218446990950391210626981000017055129688076659161431549440863280430066852097147501878559898333092337874126433659014744635193738430217623882259283423139421553681079808494300741068798578440019657869205335262827492879484793155370185718631152320872915557257736313746935725719624341789202081739454043702270222782030776056338501727215637616357170622834236452700947634054383769174972804539248125219390001618223576863126339376319621911149479989914283573593185190746423798648072439620794026027132304912189974097905501012869870609725550942504459080212097221569325489155477713104607540037449049187122692184066717798076092124530587438588152341514125389246434521745644293962213462216003134767407940759622714439396645114336512197600070047940807331953571618812465492405428810860989407795350422119738260472044206979019591159228627585778794454017535740433190404983020100061660093182758741029428017067071113120807869010147965042734561116765515478154213429585723493111160232798429552774551803590292780110565392918784511790578526585357829612887637146178026929097950531352018407560112042214500368986291389617258695224561262386213311683237887113414264268533593169674279233675501534190561107455816731417372351533875435929195332062351783601417153611567012696872248007987394917791227593664588868901460008534268364006916891904064817247138839819532552966553358901933645804992649681976189314778913966075839542564658123798129947410956362217084342328027487382629816667239546974576164214051423151105646936134115939299760243411787419291638457660230924842027693947059741140475984278493962102578637132739389757917754907102164377489640132718672056327766528055865418319808241402276608633342357324252903848386313502093474319171823246946082980221088330468692297126424969352270229233708667076335994195924828074566943400376243026596655628950025901749401366068316608404272629924419155894474163112426821161056539295335373663692204583899138045867362852434967236261575300599165869445434644831666954147417784840702968179653661275779506736965764322848274272621958725954883368647657703876925438525392780863620782538583015164048461582982199366328483863061991190003176396546785088530752267369262088422412095090524768864777496101610618622429554121888872936163139765427667325476060134224349295543512859053748493158709289596635108556616501241975345776039030965812257983704017585333420836246342052995380284977856399867591386240840555494441600492860166898294936415976196429657045469666221468422713619663822228140058444700975314095911983529792599793256156051421085172165653466540078882497883577357774852632761292429890524417803415569368540698678870274471953796145723412358350158775046129544844465775481114400465840981870700520188896805965929873147529308822022870337772183803055496087072469908619427338007854917895651194695566543984442362727538843494055968721752454530189135526351564860968822594498673426231034704119878111738724004045088499033448179378891149391057742865281785369465739437498773768888807278427050023465116103343271590436689784015899512265032404639987281003564174556703527487043319528707550942823798705828703949575402963873592223081713617857991241370802932424439097505414737327773810810019261196772043226426596469255645264154255352330030349113857905962277073329807570336678790456472363708955597030093110242579524069285174020643632401365852742382014171933610421702271669830614816703373545702898000595510766822811438921124810973502734814289745020274199334382088428614650297334662791291855682417810312519614680539687077885575844163325443170445631283837649776825927094796643597210502700653966728833696096803788551099220991832249113362264083431889297534207102851641291375281791094476376491520992206999129403458686933091265663006173504041313773999173514318129539091531340918818530772098305785929938072294576490349413941445766881645334905416643592602709076193642645059682236624516824045268932818583377979025422599234334811181875283773749498834535135318603732684610906356943075844828708143020158928648348296805218796214043159650126856511401782476472818905421721548785051690913599720582278348908451579170993136632341952074581944034424241053984436433256274892870192039548634397692613823546526865700534773353369498351440099582714555132121738507140568634056608259997264458411897848561630524145955368842706180746017898983595233769866534407914635996440705274119943607243263882878253337828550219702399921423982222819820527777883973969009274467316736325604786191763429413360774963095027949645520983083113144808226938049119784419886379419189265250800066487970498537206864278984344894744742878763718279905817578559849372998653925862288468975542174162028950607416458261753202332900785227797600908591289980456582109678738319782291154441354927225527681662623927995620501173017351895974728564315730282104616572271702025978109267940911751646941712299122093177542002447512810997500596407957845419309557144633571699634146771584823829536232323620239540149853002839951679714701910994668535116033109158125104087343032534973580652456261705820998742561364739845526383249115922180735976687523628631500834583089853002301074980781180816205129284134358804980020440634130489144795072967257041083835744708621735163187739260252809568807105617268032571617203343272452131557223168892716193086429876929605551527142483661577163661520878915942769904948068458082710327491038960091613534043339922142169274136873199737509159989986695424353673828581211723352175423219324512713289329578352492400159297448589689606751282148669729119277349738260187852867631307205607982510868949094400246496133703526305235190856029267683266906237784752408296172220768344270132124739951389090848480230907019978816057261544414951806326354975468508649764068041526047339997029881677709499764366929455229517677774096592911388156209209091829894833639867382999119168967682228799216653997678832330770813209383959235891381935197087743463092653357920793330119918726596135433583355698805043594279433543838513716555407543920158075368338995099490365525902040058543489225387683771895583887921432729744604435650254385634694416416580898895116971652483687937307012918596978642108683094349183215577642456040909301559830307871356331565454065049663168541307138124645497367516694830441055171882028676197542299011506330459430002925377604029215478605649030371480852571037411567231970366300154394341716557881517575229803497590954660130676971759667143092270394038585547645913813492775952596489832382537693167316220498713651946674624477907392121424520761679263196770825496792769231066302600758413780027647522141695493919763102185989711723060991065968597156242720134036709916226267348472982202673784498954359619995980189163770545783278959510248919630397581202968770558207620699986772769738200571541893349721960459373409689599038934499634623902572239660613765922393323175679943403295117987338814315788677260445132348713290873730840685799418987755219042597652664309121120731357770412570359119485430548285937771250036916157697111490804630757769148180013324942812084946984882963389341198910235022415167269783049831186277913482023577124723669367595116986228204751691130332955895138594774711552950787781179715902538085328479675654896349977169523036789141478915873238430288287348002559586302087373876787940358936238586884668115465888314023108660885922586858986516801813636173039734559159402705659900965534840774044427783027764777950041262002576406496078299003134149652514804545653758668720379980801578637074886107789391890749233585538440667714453396946511501146822042227985674269955227147409765733129209713812525069096909696468749216787855817125785722146083244306414048178661395101407361876322915498539554241623665318726124376585717138172030802510585835190245427208377362516167903994395928459596239744143803875436898136159829224402087266304964958897423249357212237318775720476951194861692111429210355286338001976533087902621142780584586165820998303459639321372005434112981246096163224277779693605465161374573299879643621920997258833946610879223789883265518134597683743447042666206353472171584282339661587246231472429625560752415918424028741359035659942557432944901622838599497254316658795323056623776005364577308021551346944716147988525558002998431731118591716945277835747400836288103497388368825921088361931544774543600425828823115017328265265562839942425099618739676260757887325389785878099159504123445032781529646610905262143183672826305334559558257942794364925043643553554750256192804533781422506152176704690978356233813269940857137129842497552065476180169333230668074847076143666696946537172657283586787205155567171564000240291750197279060339923838316954779248310279173406593954433477994299037415151834678343865656619213601931126565209931686954636266169885766638304943021083854872229371669409949448294197511436911397056622365699993139985986690851561116274040429396081722819415420602569293114920120767573722165286868217737940254381843726176198454816022882714800768976079310975525943003246191056046184877404003415179770036314473713257208910497124119492695323162575048920943644093200737028369235301231156196643135984764463433980324180041733449016266352003622148770961397808612448381181331841500511663735274335500449458506831119549268523497556656491990542394755156867834165604673766093151205076680074835603705681416040721109301859160091087823279725815108182786510331706995469868452342342447946130877830551460228670606139077741923575096344619110976852398184999468606283540742484527327736953949552360377621436140196325617239794186174451388693631509395989369869722004362834541541407821744020838643060435418435535498577371239437791217784416396182639859835611285764131344860166053417807297646948416079952048880876657252045255129349207272866652742539806783328009573037250796153225907016174176139262046949437430865166477766761251958125354054463479772017467121790561049593196630201225235837451415380526819994883018847218421962875255412314297357612246938957656278709678282263008794419696408679441043813229099013533418449514268928026111064085865742808239989769144955103104125317072955721211064834237181846399033473034842272699604738603452974933809544916078775799963914314435755391115090747635225631056691353587768346884882631890292568052097546496969906955228204165623486948588920390104873544478263908070285791888887626706365342679132869314109473802535641794229819461176580091988807767712772821262474015028438153784933828086501769148372819200223779185042540126563607905300135366520089725624736404832272619012308044227262744329458127381555901455036490135253441512789464436991315041479712762601566723697037339986779762454961237086935927637630543617064968345194445646586164230708820897749663499257235491616860847653480739781465490279952623944011555759394553401415178253191691987222441792652931457294087966909936733917283207862510414580897277887812599963913559002193186841091093739208415513043342635294987595671077002658087026546106258057053120957136183765912684282225270374311424877812844550616145915262731424213151813754141632783856605076245176444507419967095853474163511904615034191340586251491702406727930217633262097460431069084704669541091608459007649795101533208844905461203555102302446552852186009230306533967244277428410938425963200658452634194513089679958891791061155572842534037121655374156104746053450397917074923538391172225745025051019607097650649514563384508592016400220122558902764909507540411033989207454618632273045569963163697079828987737127176800177233835277673303625947245784967268985998093025751180537980113649547110006959324343795807990648060429565612145764447810254012488918766267143557096918709831327233722937940667151483510308532378365903284646133848005104726692203252808348446897155068387682935785759888052092294132876383046052354426004497006548184645980890474238601912152753411713533055809341289585814457698372724144028774144241415527769240880115580134969074400039025514212986821963638773936487904514197996055266092106525395218780588577354881238470271994681468279671190982191943807870503105204422554470081357274515683286348080116692833006286273663190478672922410499477291602992232343926021474140176298462753450508111046069563185884840870998334867831542953279531392920962069150475627913322021445603256932670793768521985304229362530411017576940663282916816946921257352799668128721021663743462007390934094761159715248385180812040381904382970586699808274988168822100564102309778044294618036591901685003553984325489464630194962476746906626075941446808289648931551853526245887289430064703387816825091035827914820833215021261043028343044662128138830329858974802447932249992363992249024737178336063955058362539183584778468022155354881837491543779513886519898470498880126659990595977390092382068439329975618619691221339652766586574677321759663240575206937555501209839002201237216465700727037662819697065036407533281024183314434957770434705036415515232667621272218907826952873583945677745799309741428558075007414875445032664423270795609937249743765716618134218043349931548010404001438867786880492742449784112205218345149111001629514777751672900998913773988299069033331746152615358904261552509031345783273973713545294037534389512651970433167811998610354665001052122303621395581324716661470714877530267694521857413096320904089033886467218797383364511426883484854499808872307889109830711160655224010064489697178939518492685364441587296058712960439189313234086822298347543768593072845167105623650418363585970253764863008018857610665336083482438457758513419851063164915722218815222873015308135247146902420113178433859992933602799795079645274154859970432183907786746926706007466920031320268146761067345452262631573860399505570458669701672895622090171639402813808030921776345728218176952656038473161518532317096447278292838336410084174909615068405594927436719996933571132476882952942994825462586181718000961036059889589685505127843405768349759513690845217809959621066852338182339405832814407237378391575187317626653754605040868939800007821001928017965296466573075019524926132875407235141985158287659826505448927859528331977323806965088709034726630701527375397476082919639012950277212244485419395475593441479708241992933293237090004854384029334058369444753135989761197140182001113983515941698168592607133578552162604970667367654843484573739922189107118792837936999952124919582622663630258619152862250867589134257469716407592985157069130667851827093898127901859840093170777351525162915347024693953750127819654130753642704035849254990236451027122178921957296190046816211505639086392619756268168529439863218111071668757508293767005432160464675216445109384038451572375172474895312398386939814652922906154887606308559838183761481354391623392286785736421070759513046872256949772908002843772400322189575678077785570236494215884379599317574980056877046268294795936018046824433131781146371114222395672631306787277468421563831045007148613022545320175834915116133588270827633590320449396688883786575049269499754569866673810442200247419405098744624435672630272213126995711145020705883396122329418210872260783953602387643486046063935800481748672140076212226095736126647979090751334998813969273971439933140204552086979312207087525049278922433586620692861631521729558166430845485897211126673535577848571495606901033256764810335621087452502133903972983771209648509598495838057494063995288906016642923907206722120249035664589290646373338026566510232240139632330147216219720340388907226217178560227130234462635339348451417175772804039396845244313254699775807512634182393668426046534541955566554612654339592328218388939639179601126534521250784771679744565125493417390135369656305378403557763056105773260989432176378584206289496323197405423526843390046162866907196270473076113308726411594982545568159120232869230982477011351475664250104295826420498412534605436227864376659465170878181227054893834643914941989555343484519987439415730592153910488593864218213447786826812388327409959643739648001796092335887446471655881113535764132350819693326801386572756554124973640405578459670441135770314423678724018769201466919674884431807125738246629514785898002274640003420963668125652674073231090464490229792533803549020732262757402026965511135530813573869822521696811599601275917419270697123967172654159069375114691455432208397781711571709563933449509049437420811530432991134559982346784545508370727418135671377417328080728519889540067904240016863343384413685646865270098363103609168441861573687511858664448455642156198682342699445123915068519561370862168151559154035478880332883362332340062984256351477218030746763993104248124925446198098973378271208812406961703215955697233104079426282041151216066207489631023889883853284416595073280368367180094190470213807239564275564180423618104686598862528966935815355965921360319233352659889059940851702591763179178578499409391506302291231879579400143289949140363456946249934756564602143743103633458601130789752010993700771607801864763026344642853941948401316061836761104366980692270508924770930742119749324350110044115997726615458121910860303069913582535641759517412594704409252499353438102766390603967589351887147902720758004974377681941245830424179695920992983820035089554881241762512465101426768643818856843215212066455389202846845079738726387742478321285542600542589867935271948537650349872768541070271029024415505930584008568866937474831105637551639498261622327097177422971820768518935760439682626522006465128354741767734073081337645560148286261444551058158139627828860073172602782729516543167296244330986751996386507612851316138155682447714655828917669644351874599282864349309864081019302673364077525966165005218389651821479563082034876155591483937861670590624584080326407586659519151699866122410522011230538819886573065180245522134023901102090346597905328122521552545038239975393129577939065652855299094380710741206497189590533213788869238841846157286409835668716176552868645352270041736713675761754099304712780504549280542261387997803731733759786476050607750815879437030454521005397219712594691569373883898412831985052911388460896588114047688701320580634156185488376224712257442724531675080348493701762208666177329900005816747259878376426680775880790454329002132275633571561294557741430218574476003747510383446396023999075941255430646730112925410882241897557284215469121038740524993853181642477279033853325636226029651591941540250847609259815886574893711966573353461386392497810923357514082356902535702562560526050318659610717978613370336942027985206413797433775204483203671338757836203116573592373402659527329445932252172748590171112041545144733230717356711715769969231197294942465583480888423618482710485948899177308315238652861294476452720891509005640064696884369889750735870545747480649851240769444784051287684833987820689548950284321944897355159814470106939354536529109543641258092241678114070895058301751805413210670061665812634227324469449244185219672168909921250658706636620346665234917212898354221376886507994073368247125407863415964772592283831827866540253934022739302335740697271017390567075040886035143952894545327436429744903359725394018450565200205073778373858339668861558185357074815030006907742319278036904481634024948365275228744723878613757523861720686575155603790393918809713725128403898006165279336290903906827455125432957597656102643776670752231651412262835604144167369716146522341462227913391508701161342671744232675735405324027643092369376368514803458626683610799191117155404611973098090953125441886309592374024758634164457226919357433908195505942002368760503885222070711206430048396657913478841928308228039530583775553084910572859119164313676293108250533456362791106902616707456922198226410505548005349900537018264017853959988583745770607664436686931052774351034661342944481220263390414919999753400221279771321769041361712494308701684134251044050895530219545053704827991489917815274652891464722204347506313442492344775141349242302820404496757782627282874133631715868804458371070501379178845939900653980701069322825808898050963738626136972897366150421999178044830256383900154286262676097222918106441209901626862484845821515503142636169394605396144993747232216892612554420665806920316287327927782846954801318567524691475784492450258620683571540518458174199760884405081579296677521850725798270360285784654401468070486523046555820353289456149152227611035615868887148885194093693585942752490521197652356461948957515261780217262118267624151661181374109320154332299804888213547367142000607532657140709828940084220977338653685076639079548470817150983631628082404627421521990793123873328688438877313217579522238731912031947715225509501701674354460631202510843212047529055467891040868849672339387458468461555384210620915447446916969415614805715703308051609508743295405072458316689970797973201747627430578469569867008545554410665842064348601452518411658695029585514240047118433040115796429435702610379832224411265290155670304887241327291138581530134390769694886430722562177332246283090819546092272601612009692892896703824666239608444865696514556863340254612739453142469966209120893003612761539409872777040501561060975649764666442160039062645802267343151943807519754656746244286854643528255808243614571620475849063985469688387373777134521188436774017180554326639303901985169787876078136372692878814278157522229305020235081017368490318861357563872567959810574078598310930808853506421749189380544509182746805961684956752189282224020053029870968608313316689473307574504696174658741785740319137303336358890024552441893810966651317053451805868608703149289937454090803126742666703436519206177286017375325619884859727947282652186616441752990359870614425636401465942597748369009046231555220743631763356291361352705362676072428314191707513347331140278515820513044333872986775736148075022140234710550668548926157226543476036366187211097450229036224515165642365994972440065840071058809377277577369842106906894067043984251309440002085819463067033792461218124197950309785113467033328775773943103531934758937780969415278556089440966093384436755574072154700362577182782969645477775286977851368672981752386661627623775603652332605939357761875719084470480597456575403533439225879093689928436633152324631766515220087421174990937924198677144342817263753362967481655937523202560926427437079883022634279690077867090369968249399518172902806699227350394669798868042944532317910825328527179664724242212741903302289875204750516450354738384546821519616757467403413656775593832876527327274166484214680137965848203605987621485874977317005178485216632559888982942101942059200725021776318538994423707277703345006808430800176602426190533956506669238566175202784570415093372280270469204329693868097905969514114513731942411656785098261358048180841894769297233962689078529282154983570300012984727491300822633255144143717427694993665571232438021190137763546908105387823868025591587086507848788230394047318338929723045672423824872528766096531583417716767871252933309039979903806663010983655806528145525219315968954321006904184658207096689607357165668901023348042742136041368746569896390263539092314058235977461039833341106131428117399660013237879777550166667257286005327142686808255531986077918912833146730326820964247058793499904440513505652772299834846542874884848641805504285469305195245377055199630686143946701829419690040569867096097420231074937120772181695524398685517780687461470735319337520346171092538921050262847999115185906987513436386188765972975804280616694306352308120732471028412210099061720751259200132839638980594422992469813170344003710562259668585066735501298310015187798585785692608620778304404677561311149361518227627542308463539646006267651719292902405427771371368241480032491617502331153944478260120722564197516113068947149240584778079431984236622721371056454234865998790208156151542815372530916297456187108337052031661412203646815055589392803658161192789599366596193941923760994196340190453841196906221368389960507617090467779164607354751652510593715218106989141735861992870848846725098457138063659280117110994196151570063154692926254481717174966921250816944377845235715852307749141157040399481478302941305462110405122049153041914132074736961058544278325276028512868619499417088833897730932411490085679035859016440077183330243263030451214403213632840324269317203605538271472037552956291551384760360557635252223592878693434397708965344876786127929922817422757591222833409413542602969593361152638908878209963708990779567136578305121334536428232721543604237420300847910332609714288403747332424060012969858496812032026476498966708872253586015634393527782292050808718014296250410182997045990846268953887132115060293953372549794834404446273164115570425504827998432309361642325555743799807269027650456326933878193318620307127181247609446390619995175172274762438742370695816780387412025953153958366564752572493174139973794237902962454453022402673809041582310024622507559926289134962727920406753631971300178179185009920896491680038421802853129682798519226515257778014085824485054583624882222684526750551998624762026488936671784513183965120539310132178802209738022565584190600601231217106049659061726532149156781252750743025051345626784505973787023146149063779010280178966052693621752725022627335802799969957587535278370988294033365802124294699049059869691879767781620346824906125472650571148614282015485408046415479474967222208310928728223331145151560584377768837496366322315483300546714871486560165998628359923392317248242400046804560661988765040423519515883336415578253034160848008151483219339609829283359403401212979343163603982239997092409286281742256125853950728292446314292241198144291883879987761821555422170243245824735557076074792201957881550665017707039306443174156794155873707526849726257302027162429897819843518410295382718615875250126799047729207794610251174798451050628118528276439674789306333511297479451025912788479689112660564480570466282071192880635973835429422347105746527310108018812262749829810311076665616986457802050778822624396214723709701978845567978498673625175166107594917161056699110190752275353253176173792529184025971566849494849288748490738610269683628111911417264806819963765959064467166162636311830791534895591137069220164105012892587002887533983422142656891954062397387604586371921053287711957799637080262337192858543854707791062972052712900409486317803386162838362676613655789628065583580361529742080235055220518836788200301119036481524721382751616799662303953399678535417462973611353555711274944112758138177120496431004742596695438593581008543726411937655471185957894219631665101628355438846572663598563763614599682948584582277913611196090572988392638855874747921552682735727429187040069083288012908224014690334780508623852128572103083353675967389716260563491989795450828390817556322933484367938001990095386829116138569585834413410628628727821268879677344054283335671480301866064644425301769274603710464915130198367555533262647990896456623070316186212841331674129960603615789788811990801076066255643747480548115319790133403490689697219165251720986796019393900434012768619966093458235651742769179575238550343329334923517525094814895494092829706725810865181042649286293979910567423584586341300065738992565458835577694029827038914956656931752139975803220479307502365113877466988009489057752902689331521891201412734840564288422710480938931384495095511259729044792728198388285664715784060579115277407498913744581427736789722968262744346952706981667287204366400322043423605692077967893465685402372681898565241770855908598701185840460580796353151417577927216832816939267247815042420212196333683053352589113850208552585542706057691470186629234292615399861295277922439076655547563210775534236685218346123773465831011450704475760391582136703563668384476657510722429796591649561343338677415816317894968961771768712675571734003923194446285773659691565233206549312102015827552373756357880460941666409632500542340621638193468315792391665446739712260097555818895633966261666350460306488783499570876843302886819304554425247105846826126059117916488633500680878898109038238730268629714886249907223866808474787755351665058980533173808239738492291129995928818932853763674455695889432392187411174392579655519456872079721126067617528538478975315675047647811551740271892049658305426166112554314047764736988382088367965106927706769535902585630003050252543792906274965075194694959514367221673657207603416125200886785445448087946648593685654427728980668727207975269643720397794924356313766453421136977194768861945274308475647842893637381153614132831848854306570165777051420224012551718376325536377516405130313722968938468557548102682496102897917643072817078651130777311663295141615425261502937558700362249058355463539050722769745514412006946824898991757500966481570925644419599138553329912961163649048954827795765210688003575320134342214847086637429198338594904022342390534831845515138402237046404950473211062354786707953732229720009027965531376787318666572649364655581507856547709715014629308699196453028883492407927024949030480266314079708202922198496919336168992437336679238189418480382440505244964870111500807919664141669195405768193155121852636748402656714684617636883042133682655949466282929758480284155803144661798959353074917568957423765429686603499415235065659920599992292240636781210676698539290667781334241159013207153730181851612094237510669273565216220732478033372076000247239837149259621266930059289096963352111259229348655457059570633334099537157851428742175721035801236519410583384970125136271322419594397664750069507335434088863900312478654782341926308437594551464267965011509173269400646078151821728143968725679408125983754016581045479262380381833146773473982810660577950951662835148041653552487317134952006994981915138693473501663975831047621364613717541563279433593799396256664461873200974912387777500332886437826689311975228527109816229851854859347791444498475458366870609241153950393895276903518953857339717640848930032719927423116689482492761334677744655731533701998362610260543417934556203291298920749449744925319155717384374449919926915226256972866726148454114396063676266295592407498555538634543186327049967379891370339162753820421499486870374774168488392983313350979484757329524354871315247294391564197201559929881738490195600494816244472693042004846350294900950663058435085184602428866548630179293465005767103184041291502312715559196753285714948528779414120873134458089708261602091191631254734413108614706788144224332900200836141348883897304536441800331588162624794548054890814927513409694314667570379783968071904839887328542610569855311669761105851407835663197203143796437925724031947726388806500509277702086826822478975893265142962221911555125201064056102686772823336457940768481052277803363444562609242184286923390473637658427903340090201280753932023281796116521545872264894535821412707883509362678692984549817264951497873948834338576664047825964924782622880068827526062133783177973133378327637067475914117433463660736006780593315195642793577162062069919384166073563570486876082554679896790732603351243748263411932255390788857475987111473938290441589283374180599486447200929626026066796429402838734833134121931800378462055853900470974699286293818996683943475821085550769455819436946696613377162277637182999264601376138396665312439224296372284960046102810641715590973099513974154178924231142889769527484509422176088516632351595701733630257030601451614585886449286093589253513595192802315406125899498196750967587272631403216660875598184415278296395213058845807477342910369588699991087319740617502623025652530432251589223974675187599850022419777764411343092131124368753830197847946508062056877189959751776986810804678000919008013201087057057620059651982450784266599600324588985750045001079340025409989995376191662002404233390896547706803731671582819389985389762892465273557567591652657809673917428345542113401390657228462674350209522737179687729032550487458589135537073324093163480635267103358690971891142764743024890226001382913925317278348223565936187101061742019438504333020078054416667807338209226314541155177856191245241005710072795434342850466572000131955257702029500488686330221200565245744843364729759354461475105403759439159955214907152338663501630062856036488237630481945563201860392882701523560063906411596622698096237367357720623833813754906833771441086071118244248543209595992320535155681462726988156864143851161127355676149726811686867146584723817178870202127693711018234102630455306816349887539405576607092309719905970271490429576572730714101283591191069710793393108629229550343231887845587327389956050096199156716923286264290749440917196484300755898139951155772793813829013817600535474289046533547900355603588960176875863062622337100176649468109283868189036401700376394687084150633280601564227144909689783945249695503315338562867863249504151669817651831064523490340902407100152941971574062858438093561624864759024440063038956899578050372698674218090965526275725902601482695462257155013838133859246737170979048181076917632815168410224803006498696039240009914243380483143846298100340802370052222412319687443121288970769345370020248441990975930904317732265934104365362705520197595987874264308171007864949736778638201347515832775132129270023642589205609955605772172825710301889213456735254716688001329040983798505900600571588879986409029756294317150522109141536285553503684665378014796693577467538298075518805846461031648966141783818187108125507050556559651611080273496776803181945206214834525735044856425439385593984348258332639197366570945567854917832089961062477001216602688518256699559060720024821094669645128843171959209830534151816884559214475406053414012003833556045571740916746704663193136662291522254315794059839957569519272103577337483881458258005572198770199323212682021824188243788544931198593505062569711528984395231472357370584527979866874926480827956031991164907233264845943167554785251054014879517215211160432840008873385703019327995021484018317516556790497980652211344376369061674895399095082399708677668947143951138399815695174747959826760284702681351933640524689401191951698064389137750078544653401966806677131254404824895070022474117809689404686968048575301987127504412522646576961079898877289519025877420379395416136617874243498093896571025923654227441792616957499327025668976053506972891197155257403313892898266873449873264332398956298231916228416540121931950035961317507401671104089395382785653991345691559466845132927895662693551731195528480411315364231463752997405939697590022381489773756656126348022629412167789069467693050840821553244422576042929585408028628322262023116602738045399769924827053111991508060642210393585018576899687961475082620799363337314788282235513883673673917342290813742991846992137636488751420140376836123680673782720207377233105822327175776042285036278088478325222003044318163691603430699773915558312450700794901014875968064008683276417963225145528267204241556872260634518161068101857194171388937069380627662586447695343946244567009342699679874471042714154747168742712841041050149474187095976618956982000447422450096717295019032265180481129053891163333067496495761511026330145931773240534650024300009114141382693701915099143277050648818050924371475936703242061580846013946296436251173767980896911056817578499732829456917260937209323533948582973504251916737496295334528162625961200268394974512960472503443767986309139685854658970585735992432799136485999570309268898951565272728553403909269365107128823041929642609695635797998023712795846503376156304683347432795072761271444739983992107095732689818888224346779502028963723500510195925520721200393726216547165984103088010319768817306653200341925993556248141730099170612538577599934043294361287882077354198366893774057085237569325367380724482705153520622026899845871092687845863250203236211008512957404349054925322332488188536118206503235107461180363141590363524113386308481636735610918998809973802874872019565223730565004358999937551397338193266285673689638386243158308462179539561553072998350789347663882934609712017552244719369187484974063738511162877362200082758824124750372511399851346475215395533514015421518359026556537506214321686824358915289195855985509323744949002721829376415846310454020266335157552514950010657171420314780869813677078176605288551074536313685564774410507772141917600208311271243583949384593185634926847643629522440443879617990332300695766409359651097768841936293750493188066768875929346564071664685046277612118503557323437797367884928832650271942977220153150113588928275570030401275085088120182746417803529493096337858835624228880865556156953994429820187302905644979145277894070632751810874649936214212098072282940798119467308404424681969847467109713913727116598236377152311186378287822716455661439476814418689574486440022184430454976586976549842902257468004151156383691256394468247111395978899598207039482171761081195848253778231405135050901230801892632811399919339176857443461922229557938981610645571698480500293241722209492956393077388947398293495190826372779443736691797684442144906979278606775699970422600999268876516586061957084503194839374065705121840741346433411257850974921267698386172299782708802655246096222192674112740556316257602868108707585086061048709712082261779479369131694552696125665111635841708200593433773294001258564244656446242637435283816719812635676603339639745364299834733948754577096945407687188969651609904520792597757817328735718294124832121663672431093474859247390937620589993676182497984570861191540454618796415943716948461757115185186703670241351618331077014651335891422585226170699596878443479336641904200487096115959057062567924560663090692283349773574447615620405955382003656083769077089012605861121792875321401880499360990278223520560585717276686686465621669496764514856002747364917902900141283760820543851602166362321587192980133451674007565849972653583509931331743720860317466734490235004963758508001813907397548020885345884065466546003895388852707399595356699811353845088167766674575035335185474769489231753411722351706358543154770237059927017773865341096104654701176741153209614845774103627912818501873886300890593589512802157967028702378916857132687209897302628059009399914319806488773067534313159094351277464931277909299039782437076621383584219711125851166284161036378782451918908008014422405961482153327295272260698294954843536298361169576379469586190702009596164167040521557715283305766611173600607752516129432456633335627127540556263810747059285997466715493100506847634692153668354710242736479679435223509987168782903815285521146995545347485455856829667032199082368516612554541691288335457084473027889589656253982914024731340008769373440131607117197688541743513145439037180424889589802873973729801938975593708971099242562518064352452038500876757766658987786921544645067742259378806489552731747377532992116378737497366151709565184045069581001287327550594925163974352718852673204474255720278628044312333849608442599349051517396409472317681023948870490859465986329624579847913693592454873943147698039219901566134278747594949727152937572348889141743375250644365099613560490001045445274368015428366324557675362943536384483590764869193882774369714793062576731720274898765832136598926868625732139915529383187022301400529520407027482752233906038350448476496998278922746801566468363990584194968853139711986857327292919439979919129049406592079524967907111787704604870063268683945145734508389480468409857979550446942324126930437586891923880922672711646915143521423713235035382721575519014754408694645878103967195823977636830646577692158331555188326503387150270799828723371437234511144883902305570201555736459923317492033998266078044931395513160609100907010100497331163997290769984912418914372893780212128244945415668573936446982582985955160649231033141057648262013269390931935890260802578069292544429403607745878089526810803964759426395608995684058825271475896258242560047654063668741074084927235065598068080867388279679642954786235488338917420929404440093261453368355462005911796709306725459067191050779626704049164295051637293853283910557952577394400499711259952543590691894568402531119570276114316902304806432895628470133673904768495951289413626040957175571035722216357986435142492374158359416702326719330427433454046337198246641299828847635387635421246140957709301924738077188038775473378243872396024748268303790190861838536044125035651532526563631826102392807041373045211333682702836242769403193205244349511706123639753963079400269279902175377875648435510974110032933350673260744292962588775201723484095760102801662903245110038442636629370473914800344200560302563624780636962469182674452238683585141094807515524446873785719074757237399465235474014883023014717195871271567472289654838341333541126282164635989367102209591631215268995552172785741841931340052280395392755416215602970326775421479608704068771540836245315804060269871375114721582719436708404198777479317723132717699551334852650488048497443251676082518478458548041756426918582596052912507104835473447350155498881492453021093873324237686602534148757250047532456162913370020383486773790077476535417429384603877508382865039522848219177314641606660077381120637219527870150815438768246030935517134798514608305315588360074633467633531209152671163944372505025060613407307992160867529510360494478188439806872456920862632294641547963195653189881583112149979764701573975278874348305389772591441877125965457985350572434221887592333952952364957124222811426075053907943983680883733559697373992236747670334370206169136114004686127775666981093101202698176007569646649546499512660963205678643137166313287854134494471387889807367965966988377650309689055283452522818486061085479175517628322888527581811779299570050234229514656193478394230844906843273689265126954078508101012833989929231975550204786350598636607385068075259436440614527872278283651036175298175510895678441432482897582844472765049699556652764211765431072253778283232805954573554646401321565652455733883179359139646641766160212307095102360218216061944695540207174728495567141156410214857271086910666656795391126072997621055221540532832288100293101683314586694828474069998984919515377243604535569447122419969701333726403788671690705261398177175266907167157478570971930345679027624134110335584232643155048823377263535404080427567028106524735339219900116157417546742987822006003831993178338307527336758546491451805033813016058233240619086036133485404716714356327377680302425180109631371123824298394808422200302206777454139597650198261710514761188283645940298579366539283788675674567281131527917650726161173836752609267022774093182076192028337236017919872648159406364438742207490060037512010782360110722360348242947552124547976659609336168186163357873941957716999487598201932805999022504195977421816694209433145995202237871809035272345494642696751989775423494107673771695927271995210304131271787256096706654875599359079223540337509836068835969445258123233305428461912132066747016077582329817806948640698593790929385448288618953062058407607598709315051411641683299345847678363099870556326813580043324580003887623138415515905194128173261050237437548411994155481951559643332815786267091779802466655120781088701006365999843307943982754922844115118501436322027086457979075091406031340729097715176274984290246370564629524572528387904803108851593894589086462478209036758631820651484636929364606426293180576138465514541857128425097785585544307444454769899845334105518346666209078692773264849596922379703618064391234934631495241987757489847158920330540078280664051116291074645026861348672844514473970132522362097340671603239597372125566822457051835767361366211613203069900991539916874775376101949381934354577750965783126222909577930039836100151206779323023090023474571419930868810959779579131035514601653908645765903617114146167150503882737925937680142570096978237799281582497114846584344101315161008141175453170279338673859129653991037504620530929702397081195359590935587808919203602253221190905745065114596686916375879359409768253156063319502080541913227662057618897339752252834804439360485228457766698445361623787116150043380787364744330206563135653612604346838809613573472529606535263486908895839095736443583899406202596804561423380314807168560087700777293569263322897708014217594326520034598281475038076488535693999223129613895007925237076340420129482536676209178199130505493759024078932231539622361796561315319636977145950539729176578795575447317768459204079914890624925559920494759619099977638589467352328815042400855544032317598854304859925371000809738158025455410735195765679532755166531321020999335608076115142244663310298138482470131518203210035608389789478428569939917016277934930179540874676873306896744801384415055828681623791527162637416770965626526231246618020479024930899897633445383728927249421382876326498974865257079558589669723346567435902627988915059932390627961251649325620453227729178169725379488754092064946981651099513511716259121243518646582844266861854904505969669199222592462540463564324784462814783948187154254871264060099869190479710160592623186138616543623714567839591711550177655219848441952881548204698630217333698527335444673243224919897346346175121327926733629740883379280634980934869410024736515681635717126488508737617505408681011629889997045481225346137908219043844484983186075797397954212268264308955973652429158499721097234163225615620747241696738332765472421957013919527850251163050032454310180720268919924950451120824955718534713811167664435727586468344744770788333230318033956101341373430522928273974292162815765682772882095986550615942909679979145189708951012312973378913937675012365211532886363530801116219614794586243146817178698667233009475219516145740469480162333160810749570351644884396115827776189000543708306872414667308782622284477358554261751446337990543108752429444795247522119673052233434111092653141849199830762679416672370250271777140669578426647004536508557616854970273573572033798848637823851983788388846795419646290911140723347989248161646585301663450937362997886985990815251783776866333734098953652216650667569262484890830782752293519517088179171178084207404688436863050545136965476033866929158533238494596679832906500237860057773771630510244504530159533365487964222487012037384142441990310401424331645151469498938705275180120587048614973309836812333173820940444891330368108235257126519804360963405871109919858157582798254419847099248715108403703428414707465549734214346530594485009318509855521229576351566657884536762081906134760371398183871925142229207756822133928733326787194942927187575670111834177337908312268307857348718651042925273269356888882391933835371815151076928432961191193077544264768130667256670453789345191592902755884118319736327886403794029934954467017926217580188378891241617470983170967756504767796325620732086671124904080920895291929306301553747851401571792410904883101387690749563408338514989371866961346985061071972810019062751396343981798098059361285895038893107553600005201296268079037522962137334595990313767710077502895586163863545875649314015179825236598435477719161527718123540460302894258209240091225453162829383208192791441807421106205238238095852539146226726025320906059045853013356521652214429379599616518425472614217823061348427955690987453201590778932847699735768408621115773645155718113296752902196542263582140201736766997747194338499215193279009612862028974699276833018333275291432280358358977723398868889117309519094678840002193171174646175624183721974713741145584742763331469705533206061660870804745100295235372770686088974034270571605904136980062682954241041193104587997470834519415989230065334039494288323666307050395586760564527243382108415236407348246075683453606003323403981991007201006938204236928850422157420214585509658268689527216599267840103410232540684668281376934443908471880220612442089935108068465713318152386759782815456667791523331531211692044428030696693263542040512687985913474896656072069704098939039101212267120475614763320740613253899944540540136538935910622341306520845845658666754930569889657978126858415874149265102518162036071923926006484855348706556260409596112960985340728008397176631004026379387441311945505069620179608055916106042216668288116162458079545404686894794630524495743487324749798971027615586209420839049324080601104341646890213679003958739041451970275027237254158645638513916575216088481669674966039362736800153626842213426696354748847935877510973019501887032159804989052179633418513026197339664838754380085026948217699826710813152295660804008318332273674382835921517750870065229614760164948990247630804323378616387691707917424348539058127609648518286347277437635383488376240646748661837360985083540923074914024630960700204539151629208256988030091957872321468967905646325815189732854125971954801600619799753458273681192506397913696435577398617853965814910202853589083747884886513790595537416610350245657864198950672515092338951681553627021654897276321000487594535703588757317464539508084970404637871153014456901369297248806123998864682659606168740766157137518786427323585968714344489077217863493329103937235241870072354104582480308096939162167944774344406174153306978502505124003223186036358549426057632091917547028096882848487813434055357895030691024811871297962537616133819524279600072757071522609663075918896793088303621108260834570750523993152716363961768075276969746441446234520130240812378023102042978609930773069048373657240739988217040446035362233945230224636815608216136356682905180739861432019058513814992456170019529077460937520468954729746289511625745451187538138233019157068183477427843680912564447428618613190671936722345730020595513483339295096521326636503521888506348937463816836921788948558749886143404651925867963921036414455366796558277867316428798005432725385283416248166005504328065264406672131201392978657268884350827827966028154034540474789279056291223825945089946072345854447674764593201535522354663944862419009885213277075839822993110087416680884642563192811335818681430277488399703481422256585225409754434086422148893920241539248810873367274064626439247018763586051383749954010932323446756372658491705392302828567240394178261785293652146656280551704272430949635220963351962353862631210581565989720647637948343285648136856624392763432716982320731405460003443927455580121336165713208755164920812325305695108543345884709986420946030261104558096423022469278839526770229786154642226651961111317652373521908738707035423636835741429928211372341042544518281435010991961358810468826082209694119217902224045431786924364437672282811424500790073660168935172862822058569680336240518826672235441007659255776614847589982159153028421096976404870808498139579234975333142609381085550198657133713704830697456954910117331389390621410502764111106882047833399179500570362192312407713058691432981196142500911602810876950523089425168830690759727856361377303831639259034209468675019603658815563020425934809465609215539477425045972941137881611309180054827639964121804246425854549893922356449907987047417152563321796518020267190931080585074657829993941589277754493917482048767708417361747455931556637976880884850455842771859764152470383453671883551340205727593736798783092807977154546071933536381740241935288071661337264743847527685810611844093524109023042021019898928475705140473801615855489781162760503765197057781857876174127263939962392334915158568771964001021919370713914445737468310617548360180168526801532483637153661358889558101965469244781443206511974031989149442573532105972103512375021454327792792806125975767401615865892439848914856820696465425851082385600891398809185967097582185224644854008244114001510851655573846133233127622128199274823110893553978405295173741257496873181097242762835548060602670298846014545013101089954027867781680767630208885216521378193504672329888808330982699991569046586576427431639168631621836049487652013965582818566868070909883459494667668719579563925009098618294248527645813144298290039638513314065007470331990761184672688908826445273103812245261970047616899279299354386370938700576490474384445334051519391529736263756862128979805142477224074006495200080806439359820196236089060287339721004379289259871955437234403777465800651567178656334978197448018652134258852249321056737214633952810485297206297384656562502894674694330727203565940957173162560196843072042797752015898465121710935769443883595199460959142285137388905405064959357542661981694799096214597599547860488161387753210397856236178675498259487934445065884280756422366704650282430170577993337209162479265767377101606141027894555784786173755138790329678069943304271163180283972285277116108944983790204526355433736486047764730269552038214994366300177701930852734746319325469922661048523793766348046331731281450852949928406434949642925735634930169170766352196480162329396810633136908029749100680748133087824455227284700344763099118208956758973308176304073270371470700457880851138761675287491268349377859373341759519767291494353515863107863372739752736874986259390137352482896909090327428516562312496353051786071751266714488035395125985211714112245135934621906114637200956420476924743027871690298809582075038055035416784746851427821687469789153011726498062416408367997115746138646370286185706007926544606632772567909643563071903261713616877167957501556640663084299507192545589997269022230949400863963467885098273099315381783119767788697364044952922802139482228544053811577292485805389752879259619433329487823596326286685103260915144896979035336972681403179631539065730011208896979394231648379686001450826665624639758293046360259223119119191350219458508652056453284819425376257037492303464168509934301442142602253373662315349997063596632790048120649069629542295594459515030235764295417205549229633578629742526607166521768611144941819719050108884832236712941483103676161995981176913987320722211618695568977957628778281139576579159011611403382277522761729241369803703731567513826185294946061756694014139735657563534828270279948878491859290670627716931530486121297816768497773535245754507256434658769136502099270559577344700940898404553090908045542019230721266352697763169283222951843294448554433687950794372892919485525735333587049157795703143412058989393779251187475825966493537661675694333546538259746661031731093194385102587330402509839103066677295252638701217979397795263925841002569511632504534081714474775336968364881339491334564450293405864084679947336486366486132161526917640517350724953709931665043935333829615272316597867315835173817791739266599780707116396610794665680776056174799314649914680276809384542554812802085635158420490137139276199287596881774604718113187027005648193634890588256578370187120293431494493431082280214951746126279005439896287917230592565509347293019548346143054600720876406616986525084983242308132060635750676857701854108826649676642711207707056904432972624882308550151683012814571689264764572608279798116899632154289386913235017580260836531424060829810634949270175241026852235184328673331326909717419273851749695432034708447262400970970143800836678087902772151521854504391700986576040106877884782885272506257056643702151538862396243934911847155820869362475503189375091053818174103081530390480651659529665258582614815472362473188361768587490438881206675054643158681996258117691495394365209302759555035685532836578574840945790647532136633865111679377150217118506502039853246736283686881216081773069583122740369321781242327968045507048948824771400683115946052607314220509430361547760887324552282300288984217958796772155824812319420495582060030527432896548836581427258933068195091935724860467645878555074801319789778379662684425352574097058318514638758886942279251085878671249948601649922660712261709183791779971166707873233597774765048227140255750495027779316035523950094888941777587566428711342192661874158478219070265483318936020416728569629921079035706332220204440367862985921751304401760324458209586040008897205036939264977660711141302032109144001371706930192590394402659102996480249191364676841003207934267714678078047482897295259557034296710509894529826798634751820672030968056107515633612369392880841032500950547137167396192155843194124606812444976165216180534075784778678723324393004292619827361523930848536777626502883832905391738391182485903942274566729472850567964906223899176353456380346772918996075555559436872830904565420201821023201781529352433161203326740574194571845568286873763511646297362536198863950041348333289622619086490328911643156890298868430673872073017361424357054410191843152591585474114369150174021630361536850604800158475299430994062297091822209491027575064679212859989654633499603485135739556199949660629571358519123016050302618367554975650670795255427698056589797615104574745000943551859300934402053143717843191394488084616926619835682400554053403626399737918887052831550748416905386609913724498603440253980610872704138225375091173175124173210724228259969650496920025937455850313031029297241307734637254125341053709528655800313945074895426014310498897027285906878453341520479742886898372163238644061255551490377303506251561129112970307093732162989511576486055424394273526087732583045926914995598896251576192743748558982840626514091739697559753619355325157159787444566788419297351725893490768560613922738198723656681834774104247167723327858260295366287591506912430752281809499225122343151407269642942887817511383930011698642593790590445950438539060592253501739995526689465590901255196457543003092654189490037734023178570373723834923781970785515839604691703363053913575031520944300023216399104697735784557123547914909760446152450410373479306813581972040576036472573386997663511449817489756366084078193126928158207774317847156728498917200242737898781101202520308399660099611988142840416003863015858048127808900258099035000377577195819440263338042244095475658860979414213102062457799145516725850552339666366914025791931940162553345258191677465117468769319102608178594419910952663196025260171269065299064793229759303847211604264345491081446981717063283296822665671811103171186369041254846715836838454269550344912223065601607823559832104056383298332860981518239056286045717729379946554519474816695821609009564028350783566224547749079427353195324001030830068271967750986026259751565267359593650650171663625143116455540879486825123293297987252177785744352025301912920397998916637283847336442150782865595681547390375412230361930165945659917677410340334968988387416530274138210405249617785998467071620044010505235582551244410686070890875757601100233653836217077508077153519798764460523287389759442527251340880550815018970957323991218563161055449345866123560745972801746875628010888613641293999379964004005030791920828359389212719287895969506845180231542365513973408729919146400976582259857900935529434889731272652733687314764610519961706623738802285637798962351192800528280883183746003595787418002057898185500553168803775395398806547604747804346028447868915115903614003770892311420812729930972261739660319935642917544448432143815309000388698695387795739840641352098555123723687877249619114517829856420485967392958971853253715307546897714200738122652688637189139016715982418293249057016039219813709227152629542044337996560485933360414497985656115009799715327882661139785616939734393526104417148594871472300577406587170711761364735675303506952002972685276360537284369384298579733445263553866252640087061209843279294613639512654551130749953419380505540859313787130362298639459204633753538943352445086012250056584675129717034696081938504558046525429545506630799853283730610032963899107635254213750865571159426064721705070564598261993928489265746584781689557127537632143010585907839015860352250737089601863874820999946735663793362963035761207037722545149336605673458001472538307847219866201677491289416108483607372908947859350785882507503482167794016942734837588471955718398941150222631547917962670328639473960635013606385238499136313822302051092409681312252942902935175415051497204464212334934734452150598200507815830523099501247833741484019151261296571629623668608974970860080075683448205233460312915180874997389729890333247829363820562323919240346105790348472188456124257674020240731350041100278648734763779646428288744019445981562147808184571881724865470767439060112667087209929909249906413908526367107428566365846211737357539923841737901019638611618584726222854477926254991105775925025885699258188138808528020695918441628581598869129827735549717577954563640389305793795265520152644287424046466143196949814364036218801682961717302023817739092723132578378243510000312352585414368750088996432431151234837714400133916131828173301563836320623883656816436120594967493864863780530584755990866990247325301430489566709715018056334975794636358045919248749915166658391552268165183791526209112304744875298778646831348302020935175909167238609908694963091379453375228807355880784985467910277001227622482759673039188918423517959773742808747010975895416061691474975595088545477744983138933936021593993482871129129234367787532074833321779153483537921323417341414447019518421274762840806219616485028294816262522244525215857639895227181282949840746056155518223501082235339394482078578724906888476955073165860932389122580107838174496411761092124693420100487002151927825286017873255761193929228061486189884825437581392677130789028283945121693650275736088466194228980132786009967043601700067654324959167721357738046275464563297437180729971074943741977958879512497642162172035477753462185227135025906235988227646545041979079777961297668174482453959153112253291465025828375824665837616254116235050220895593996072024142655891403724077524760655367819607329190920757192283871363420126983984162039001580265727986702052941054321770994593606527827757185863236475676217757699848046917561266641741883500217402335598743993613258923904289322949051024902241496460108789112034769864372320481006205302004138042689488419350965503359905912341299912003481548409409888273802489805067139585112929491270093172170213902259475780060272913784232185509021277951356460099120331160572520529451290698097438813214257315833341071130641247405145768036384818214699673110325234855701770400113219246153334956267016339854957850636147222661719019740480009922251677743788551438054205227465212469255420195523589081069121155061313347462458039943464882770903360003083430545426125523795773652556298773795577209953077200213180417048433640017385893327460671178354106606111775849623877121302105794877880833838467961648848899130341807246534082995059076552416635641272562067810667066790040895999808459827387142679838546684453884938383546507103090464048747039687857523715212084278470480336166535654405539467884051383009046856393075012008697023471820563539292463859474270313569218626578499175091570252617956289047436614235370237813702037911259512293083931313108081238372158316116974150252234564834419293254948378846631308545992186672378818343551242443727228278512356841178255689887308815512428485019825945527968304766185198214505239130864455921151672357069289768613746819008505900411537687348810765684388917261305745217117605615925187766789295015494750030300293243948598764543397240648349408320368189155872352610141632204317334451875261556752300422274465037864512677933600667669823234921432835820645153985486047930512627359304299393173556410963861253940221876212834171985367347085227347618553567576991930762276871124866696079462116411729952185741964769793829788058378418034321904136751941496622200979311940147735154983672916062169444726220944950582422512397429193463857251447830444650160086919309398477426109353529054282514887952136888805198291065703335406800075865378293208649702378080156329542290226519207748494435017703034081180146020701330282404212440018184213212138308540047545166417596159499634967016280358005931107511564897314999023991219565238230754331662656152005951974996109493053780617656868169570231293069038849702623442530983985667670022715051137680199325410102476382515734021696594694794657690150480121445013361562056829932377890842556248264305395128670330909418774453185713482958478470883415509369728504121387042819442497104789716533420799753391193795133826519453427880413857471324696617196208231708624956031711035095342061040833793203010324462961047096866856049570973978129762522784504412290363397762021417649354349178682865455622196763021014831128867190958982193763138442639302709482536722161444209066210968556343068102497761427812676692512101604039076205751464652479849993627188257131699421266248315817228908585461410307603740394630593686310656379443286946365510119420455542674936784470736564187232345171948634023566833594865609997243762106193012745322699714120304997310984789167367339548915079318709780853466604081566000958796693881803644238287714054875428601561427540188457050563324096477141236804261067886135023820286785947173070226683120522119145484276814917686386224727221615306744983402122762899093003231833224344584629012871733188479568723788142914956646182123334398632607929504840424238220718581285885633019018699674096510570698925238938724661450228250148793182530022382412734985060283325031335740358054113919807620738801618268379699125909380117372575615231437353541727915678867320116949459882908701393606206954291630219703915252727059301536650466406390423224831907547926968326719756424166187184709335931947831517324515934581258611539058756991112418997698440805429687427203237115514514669267938192723531314149185682319975017515947860319551034951008902014715303203787980761274597332291479698413073965798747752998179026454230972800402432793034936297340154006085398994371906510231924052047015622343371452310887552795346109241226636300670116289743155475669670102191158709064155407466884893883707252738906584050081893480494670070265405940201180958537984787414605667967545958445817508941096286733685532023568248844580058782705235105937987189854494928478650436843650207516026745189619735007782836138668754926085129999388929657284624220928278246243247052194760188668129078071239114287348038857478016951896547295891972257887296925313531116053917982685424397102281902937274813656308002703176013636587193819846577767657981062323511818582511006925769460137569040087328684577108349185649784016254093673567453021372260062629432991169550607256088210961448719212097143132286261169098774826946710006265145436145137443382840228575281942196331810941116682049767759292863244035615964781954037819195916708063007141751742429241332509305176204327115474967668089291189087256296147165912678440427132403521309444308460610957012492894633457933027539440555608731882108823528995162999958947239440095787909979137035112459088555231111424839204898983875076174311981881603897071427751475483425495630011153041421202929080165700924652599486677105968573617751132458983324692415845593815846789461710087645755437184635110516652085530635096463198774316219108674511829221508014347848810650725427205976292485435302260588854956969909592273025400538867629087885800926418835884416910643232458652574151712107429768507844246167733822235682512156964105175661362246847137145827016819980461374189161064261029774346158408625045821155204688340100896305778727423985054795400778292387643264976158342766003653056253376859468049824949020488045671122961505116874841034510479947965766175974307145061340739226102340741030067965311490236577319441306958432844416376759067108276268237943785324353840564994271355223684848558976910135815639166935913647941053909380650926187304823770098361592036051908762827963835386952616918703058050706224007379499113753548879370410821944760120818580414623575359318884804754139050814201173570429453225777391885247128141440536465664393234662501901424062868446921283191926586741507497005777401954023307638596839123532483225384358803168134732784995419567082871247489914176372748293772283285642682261828715958240060816293869220415252660430739944091329318941514383676975926323505077349193477853422350916215586585356896612670099532776654679904180522578890221190371525878331775753433092997670101026516089857277013405695087274004065760856250676736988105532681408279698941453063818708379262428556607443385861975923879900901696229118525901063572065636527992026090261002336315499760284375663819823733286208286824092539449067331693501472062705009262069062860330091791096847151731255528748276253295916377527448077140076479580763923427526981267030266154749841347646329062326409567947188419462374184989563871867545455973788452649347140089468411876504080283865078357757020087706947600025814851632239721022125431562750563696977589963837836290491490398046633422651362279929445309943119027003412359248926094901869758998655474264194098372295085701000989790694136235123632899175712120783192269226754258916483659994242007475841178666752469664595355110870998843278807535117732344707741080439689120482382930909537474310216418708113451519752807404229883434265032017388895365859869461882648247226552386241443598801218454158523075781313673854163801126100258547702203885061335364770348162709496226077513144081002161944741922458002985003636807435087730202097462617866587703803776562035969268230949455389938997307987396867469898472700594457790548042431147516632835373616096688061705605863905891601496340604453282136366611573984474918607413686714710767700364399569597376477459006800273102458042945834881606264245513550688222214267213498924792625037659361592707332404549572921400541766470332846522395105032906869082019091682083299513927856451032753945624480830245740216904594924057910509771382099401627006767382326564919323597145131493232970812993896175415379621394982336944987359632139799601155560060553550759407013365101029973861509439097462122057297998265778954061415656978452275667102066991969016314718208953187203110168654024432987709196062336998175288362417941018635257053804422478072116692840806073331009386700100633700088016662693012963286587273325895892727092200207703014090881544739804131161983018472828833189007653195944614625011585822252484145799783435062524712928875802664262115504641459688058903045860455992383094072191035319484950045218946399498740881728238146591532594301001339771345104461613857680770560397849864090226335503579937950630791816220588428425752249557811835653032105550880411426775421140231077911368558546385985968373901964344230446230274085274778913633040947668955004932114999411953754873718978436847591073648314219087491015663899334156699460969357367832936301363964064820491420725401838996594380048194789896006540894159869216784738167054641015637003692855100008005101765782726728350278746221227722956651299719341043673370440590059526142870828727623382652893326228966907496564880087069406506384229458311915498249167461664916323877213732551396556927177702127554091335371426576967055932521917231279288185042396253855629611271190545516963180749451591428079254572393009297879386354719371511267438439985949194259112902611764657437442970900326100378379454897953275861368393170583298291915495765555104558494744049106925508559936217975390541180340573099662600339090632931301701082166397148826907844197953130964357597872658373332959579614031204041031022915759029661305785713872004263505818030152716588412006007766238254196494203514735015730737766961090871962470344283953763392329380491919323094278026759494960528703079202517618101291159021058846328360849726548085791047944820047845434660407372635744938642405816366525867661640589078613367095087183800887565881784850200993791167796497467698375562870049378154176974538709494000996731025051688503613105443266506952220511114069583979002434615219511574314608789070102246175178777520123261422629400773154956504263420074140109529582560852278174616675733733959499258480733254168991660906844611957962211632594886870801592264731549001714744193529836457181053478147643771767823596247752892688999129238228594184386737340401976929716680806175720094061776919081998341842849796415788867832365583968305236493071619905049510411610612390708871831317806610913612073369758181867448023115876699248837485869137057912129927943114034287671833318500366125760880119298834484920828109181445165893491074373004368636279897152784996649677469499493088093631350428229523737133512808768463306693150413647825947575897726445493737968151697449443015154172351689579767846968259817206867716047987369681359326075049345632670792449794779680588725425698043415792611867729442911555598240797527923214593137951931987989702785601597531376930799283306994780595208999823279475739941089662180559911730921375149191366180988155287479052459874300878013656565839348164844236509094272822805700888237547473311619027687842276995011625090787908582296629449707189694249894610284330592121136501174543578286651330046975212235148691434690901127464657032146973318082302532439429676928195484822510803998840927517655752661587871101799764101922159727886350919930392747118881932363782758641509597549758738145109904910799476454476770768896542636906337385839242444998109733275098692634956204906266422848420933294981131639471629734347946057302057694267419002365935751684763759786227061066831616394448217698988691896626495340153038525703500937219076963183356495665182259624774109148756525110332463164769164421904078296024045765767422330236980793065357703905093149044097397592775941223893216528364827322301061113127156966526775429479027446405941103827949365810743571392042570443163386120363841471311321525099335971101437810374387017677479019302869498999736614801061527240056465174429042561190744905523485136536888905897151857653457280171468539158417084208540896448828564939138795163929737534465605276235360565972579418543232303477959420133150001080734251832460322765972232418716160667225226474509581759602752626823995469401627744222137995304337007274049611618146153613719306215931703470707463623258227498479304274767341097100849381167469539877508848921615609274837199518839280754566659751782837770348437517068074491659360509182863961158050370840763056499034430187203464338655691895875909442526982529654909265074198437293363697523235769883384769730363720200328622510109768079254997659352089570387703438986557144649222761468157156620032905660115387898646779174457059335391204577846577578275507436800984493760690588465002988155094268278963469450341755641442074133131236662677299182627686142246460886623608201087313613973272927448218323520016031749983277600899590209508193411554049001831552575673254548981540273557555100589983678860130464813713160802734624597816823295133658658797511019087324142927288618586799557081903362228166622650058408766496279019791894715542877397729885895769844005771679921416839008727926495690772751355813135815833705551312254756764453424507180242650280695237812473991352740118691356926892727099144966942302136433468150595663504561711502931165847952734788506878589326456055205106558903302062510217341934996931729991288277145282014955374210112051371942960050830226554587967275205122940769891679222926688039477600861735663570673589319382361641282606340674210108405250824278473655072543014227878530152919188080252375593872693766464602267091305251000638953689594321253874000991944588495756389137590435861391561543167622674691370476219072300196413790491824938367499671555028278749401543864537731537893713211006700541241280335914924150316134091951733931891147357868257206455054749808372524398830485025650814684124607255169375598797644901916717203381599560481027186282866984579340072798208084297541556535871947176944463217794654812408421691660742249647650091463967793335394296014253225528521226908980316021868061698872952901670750838429091658914459906242808775001920290144718791377328652199716479698314715357558093393576042459604832558262392180151139739449675182297401846252434244619645317630531828476554455091188516120394682291298792850927773223977883254361475299383253878822261855397852598493934606289026265475204897613375537046724590873646207365219234497328855288482334572404273642826412836847356678828802379902145720659533248793923691194516484153764432139149232544057257771315440961007476300249107952807257212707607217445364461025160907539233898104692261613874549477179972295066716063718983488156255899735095163579950669113397686935093236808831783885480189399851879141538654017134719552507431288449458990506464310491902727293200852999599678390235324417030511430338222111579688677415597623701777466623934141735527440414700714681354594636227972845835780446895791539744260148189837335596199346169732294651305643192890482786768776582067727575088818685046523484177568572809300032644973371063600457880667431381300836856670778631364005677879688457392302460449686943543788491786674237452764604056464507121648285862513680057940484658374908858374444646812033799275927935205420713249258309429913992303785844001586472397854998269771442744729711254788826001395486418229374536203201086549418749256851086320339788221757863344710197189153734416844927421720917856733504407666661634674119542573182715276864470196331294851775436659968446799145712344016705651276502386481941309078877696245368747324796511059466934292901107741373803398170122262277026597134840413024460191130438081054875775864945827658544176870511606790121278654656446477008686743094860352157464104621031402721034672634517005271110656902765553046760747757233971468604506283437550956667005532178638179832693361768201517421524249282298229073362009341697310885845308721109558498999872659502980966813307126691517196008217863075387735289812121458186859383462459317467181155865510791989491540164881061563231031123291569869945900467538403683828822262493094170726983631497634035495806001466395169388322052834388219034728509943527696816112671555761843339261990394972117669230623077607719577723469963252024788086114064661365918202590923358468068925784590190731637138326319513303895720280417859085205611083956001167054093349165033052844886789367522718914151797684371420499337770368211853715258766364131429830737211806396771509208514519421916453751631570289593414170802793289677051531483869494048892272450425514513591545928015707528464494875413134015831632718211058795090684326962693376197489902385094567709420269747675824757128966198340342463207330682655306427521300963262944377249864612152436611508818677212956602067759931709901709007426305816491797305778869766747489076214682463464201738390042617858384711715493660709717228555421549639051535274776473287055419006464249077995449380707751777144075562007220393158767230166160015806080417250783829372277949679847289533768417704926009106421509452681688568706391118048003664208949260008514191848854365083129882564070865597886099576516210480047730008001612747067662928917349945270922112053557334587847168620697381927304889213290116928209362427850039944009078369123029133045351713712035076869483912159154241962711609599011344434822937024189638638704183896741768775715410524674470896470360145860495990655370164753749213051515366558941966743757319712996188483774532150937065011483689089565347073564058335583248167067130750715801502134561945339504552086598823960947259099949767639634735577996491506376035269937606865143901229843644929521113714919562849530718876760246967673100087503775002344015127765532608427327287003103616841943555857634516419862235886254415051167396289851832869149724158320770185448946382600187204620739185097126741860610290591908830127452174768928494120257110332059013663080179416019414414793840040640751886522567528507148327903986038843944661278413573734063749422539278029820675870233115418619456004307564405053185559125358881842031941244553397737372752664698452836792531796260233173301178542238720058065903141062747752405180219905508570419246297148312682501634800236655535613262877590262009644425931396545288498896899072538651117159245174121379306733738365040479050051894696948388207360807261624587209774113602182639069486771982969504158960624637487493817648775838248563942312988197959828451064277952470535151998747779226644895925480162784922159693925538430594715706799362397740400131432638509581936460945890216160295952665729656262856122278406924404800308527413767559100437297658320948988694360624020689180594266844489097543352795763630538066739435397406550131835488594007071223702166419244020814602021964515552684117034501732028114183642156471935464547988717696974827471501320283090870715549254619074189198873187365804917720083781677206029067680428593920351330273669281960180451443649960655792517263137807891862277654939185001818810977333573804841653425251170479429290259891703066457610149845910750054725758262858780666640271864006992861527601036655847897622423674550946359877861268432805757743744530136416778299847511449019621550494863939868556047779354708717750627139756056349204271149097507312542790394099131553114588902352893770571208214582297454432145774594653314193526525837181836579151754104457380381450931555126954835943963694997950587809735261565962223906737994122979618318257653025160393810909851173180230371004931800218615219881873416194965432502748165705152701290396818195937894725055035443297221384332306537374480757570427642111066948342044480252914286899381968180720138938797684644166484984236425866225953299454870800238980518524934109193208090183192522685247249384901002108588774248155809491502780302699052799782014506716267032629230105061943385965271936586121489073669346794446748171731700181877734714604710437227136458143030507567229473667076566900728124566358736933807930233308697158765118213726935891522757115573981437845615939852866316090975513999137706856349139168156338796951968446181487490705183573741504199962042932767094438570631904557234788038820191568025307080211387404254076668509137537990288524090813997661734993684726398165875506921971462618820991709336960434750794819729519901475652216750194313097044105344843840019824266481028431712022059784896831298185365553334985473331166506154882526819911222483572621046575916673415910957979434012922301803777858905630615913985457150383998365285663989466406324360174867591058894143187238083306035505581598858970715594762236647510013341676808170716176136969915068342024181998323023155759232945235947855232290353368886365614262700358998895881490287941934178730799803093646798306116409784714097726604138265900361153435886729057689536629862556201029750372516041937412343594132782360427197795945530984467686498581605524762570237459907430911589912473858862693297120640665546496882234186371577757906360446036245918699208638427396488259532455024822684944661320433302420894663459041343140643682274496510587380492073917965655957320393059761748620689004839977373805374590116803715576049189051225374315672846811253653797601551317121311714838555453748373771401115403661763448587926493140382858513577954559395789821292872280784155529625279946538243958698319769381733689819716371672258380096047600140432008694837730259558563154253969652851530535045453192078718525752317297542772761331193263527997316845644539567529860439610809966246406324975434998429520169137611105418274652505147495458806422495314407179925016754435116253196935751698447387448612384510454082216688120067382673694278383445732595334311754466644407717693445164494595096026083384265806370389407239029860170129074258956366163292013424924348709499126063803273231445758258306764279313015308243630829775666528281789374888171311794341227176856976677521590430657055320786787903381946218074389121583517629279145758206951390181898328631814048028911056676802072367034961616677830580833850721018752924866405606115680868361771400519598177361749365092988093175473423381181416837696137764339675933664472521835150291323775007564091979960744318310372375396322774144692225126195220423987097027890511685927879618093022358718960531827349586844127673154451705138461950596780021967581875015098468982542032985487159935906325021220419806375756818733258213736792797723915959913768666130894745019320805934054130973895502759409415088632621436327789117362212262923604290474797481589392791342578000027168082369819191769057871157143711244141266912808178767859326216387204975755951636165672580188483025405100187709394746306796049125064743679677349040896378469691931301424885204250718261997990227237181314198712464931297509177073341325874178329583738722539037221891987222454245908363659011139589087530275979826325617151243673898931682953195502302555543156903977711680758801581521398494477389533669023512129151997692778133932398015197229506377310817948678653494778275336604471401444408761542508965156367724225906789687323300236455174423433735105787170682336983910087964167024857102990937572919919468323534088053631500184765811488742315322649650825537953334840298633610191731196222508287573375958818725921649115519032394307151447882356906533763966824304122553475614034120906744884705476723539831729148204329284718335863517291393557856861292212677254606100049502201034151221307992664834512140586046318467719753105338745900966851721619482576776718238753387077062988988803927407011796075205976912333312481664913579443511969863992524229161700123559857432414382747606802184814209042335074639622881849461348369394931010409485698160679951259232284550581046864136205409707245794672129181227580337141328469607438641474690356799803308624294421317982095675221295144671814500017341336342788723046286993217925691753731088867029782802985931413281179330106952301657731475778335953311113324733620788335192715534887315507524768867064385954859722667461955599585052066122057052809470264583134951352068317606604646807390778421014250787198794028029758051041194952312603474346955437451101509006500208291043760886164249093690993490524403530136871271298518792210421491087264396109976931428412886109332016128606483477846714239256946199891149499930955220571577712151766526804112255906104160410276370476249321140092761993132351027013425393720673947395357211819382984424630181950977416841794409408725628857498128900999721131180046032892132267100122151715989556383914615942785414166915439090148018139134933483699302383105798636827406690803583506510043214679495032900430075931478792923649735756932672623492416033285119913884631360839531624577892833202655076499939506283887843770637032519633694044771408821749254375880212294812225834419438436342725472628164044530727839103524465541651724322798440431772239977545663846448567356969216879906668861178067128066140425233608609907250707701114799124338102486419274352051071006768809672536360150237593661389522959816761715754416258210145262586435945428021764497991089165139721937424168983356971578848222073874187818247569435921748613035828917785512609942343171296849560225138444140983601847651477226404435960383426035038615066727661814702895498729080949139493243712875730458855926681660094092633972640110369826045382230744759452014336624508738587139987670025282719324993812754408219219178226664271807281256270598641110032493236482797961948389866798303745397870282574625420028022180263651468319343334101202510087837264317489922083265490344582290716287166704458190771415784508205849357920018618503507623033599961274078538921467873443807517443351179331661596388109108021819165663261643024805246715534282204899639222505682410395869856111654586521358221834243071487168673178438663406193373937856494075167854753313050048892017098898825852036646468476782422739431347088810594178137270775531952542484871030794103922146963067879312967263597709819053553013041270353158672377176541915913595281223375954910123099127824407939169786585582388375274510755239757745089410146471808626056706843999323258963316609731845823607887740712553309344868362216818474736349267695234029993455911404056310070944383439582490274306757763113670293699236904913680384322962589054498896223893501551141413402315997372852764020072429828721521038659394254911028053338232521785465004338525619356311636377751646699226924127066146822234777368975523579687870475499423846942052502668715583971542138363045403200496161567203075731243369073287887895486111967193867201397619665958661454349288273782901875288050226878554779781918081685337690360901018552535651583576854826524512312804889363871311797040628273041762178976869792985769914279293592600943733621640229548208910162646367618481266506789166867133076800302933983489325596044901872870991498300658584888571924197265948605551344158856528968611619517664696103981389065804188496281352113421486367852442296677586297714275695183585552287695882284278846638690550196696742627325476895685286023311868454369912971627158633952992555972451857909287826568326718539486612647442041242734866312430746455755306873331568948519122263144288584823157842330443402883971232416311148881972228976414610007815058164177149757987960893712608749544376651858940622146021378710641511692592575293975437284473656728164045300694341092346122355907694764917124529452958288605610056527847171953809073336699705562556959789002141716075378143432518998556659321180534909486848441596342656528291277746159003016150621934846108262190271499115362362710943880018839377988111865808143281991066060017245017748069964953695980245699900625549810924070979328039883363080311887662151836177672417235979978874573235365041997024335245354005795828447178544027204249193538749609258159826363860178492169828503305399169092124822583515092601762995034177086341194490198202341082879737348874266627163225334106737350637995401898411939700252555015852283097450746613108792391729910337978001061133593610002475719871042372080682717451301953830025051670747956627816850950872483544234273039203532657786156995823205842289973698780424388007148206351839779042354480525108021990429350211707609838013814945969872649443277896539376900073525241480373122277832759623557906459478631819822184677121456865270186557475351485649317340955796943757988233848905035853707579848918822386311614646651919848147407994194425168269178224573516359945511418254317010400087824997513956078276696095076959370139634806502830987652523925293277567352763656013861746702149515331235003561648148379621551426812519917994337605870010823315868765396704806423459514267833213618183705469959151001360853989181264048951525973316282069107070930647408833879692545273708979800272748871825399899547785620347502621732740393040740932593710030415061060141910858206682841281003435039714978352598865682180063404543664712001681796323293761814160110735247844840157202278630508839759617593616360408740174204891818078350855999932258140320632879539022024050200094361333554544492441218415944668703364057660405783254563484428100194445168277987073558947257372774612044330417123583605237727999866789326068698635056763973450505271823738615139039124842020877429823445504091072637327956356624671879506655706846296918446443587629103727863783933572009326059030585086955883247548725128546375862292448855906768508630140424233303450780134259472990903797917823360031307060330454729248170448857430014507325487175171512550165587775872958190547857766764063531419963084820925924768249518770098339622851985010615079459967647344581177434001662935316611017240104360288704568464962559656629824329805805122939151095037387119170269945639763386011503021924123846471650672692095033007144447199032770964277288552679830643745598971801034347477411917479776616399502624807871770500519475664069648892193319672253573462434582367635666019455757522526432313015727940168396232022697606132522045798233338178632522298093279428754395340596823278350459980126765328851645288251986412763772421107795471943168256892687018623098602008344135055386829670132759005168906740148824894504609743596677971850188853386660309719430989083024096973041692670817004366472132214962222195895362033567907185189043821113248814997976076417706396454414711561754050006897358065234387475738764531313122616123432263313163308227433846923119661975787618163609296089161411110319593611750459515186929267441308018625824761542321486370217531562563314966954141365941624116475856487730441314788893996012605425552193943699358033670245143991873869975875897671180275696278043066730853193176529319813331236845310513071326868577422920121434133676643980714687564680784164343124199940023250500437151404102419103177658381253341713753878862055482082278581357651802809034915305471430742418988086743536258784017537623717040767544493909322437197598567645748747284562772025166468044932442827770497917639325370789871599431376996797129023072616184895741621457858308019606814446548693017256640269809360021154528190682773964482294609101255234571484474649104428025747720761231694684656707911843263477806430128986917748483467839788969454527842672258158276809592872499962414927244880568118532141759507937621209599998033359875122920076676829733620486372151668952444656204017253648458677749852036389413591802865758424739348506349417627770157556541840152043092013347148720765085269672746642024224547368493694284566897177131123204024631423453774289725267568107079566021040393671388972550512531662430347198289969337564274585722776572116973320553581316098641697205248386648015957935824634918357107961815974790662216112811137617983509052355467056121444303718006981654171812109488509889087627853179640162939465072868997735269099359820280797194466349576312726294972204519056862582699449657204756731186610026404181539521907396298930186133100404062267654930568534011532197434331791576169396833100752060216957835823905194468102081953727263948713850216884469425249118239236033525274894929517643185581220525299442998703762275960306725637918676875124516715038635893546484227759337071231986742004879153030972376461509000708315984312980150614190584150558247343192435000776599875116773903067681180031392704244874811438199498266480429133174926171888422906433595990019915045042657672321454673227010513141335519548375657340052659509421187772539485618467215625020901200942524727389495987569465319536040383478401108086116453496712267747966335600000773526808016104874094883380196752783799552872149016498978825998978607492765906389341583679972144524487363130528390199045779258619213919653506901333271361722800951794850929926115931056644926576842223344458576837431909674595923280723122377076362503962150109441753352834436330920352852653235799732209434286900450527304167336775258194757525850607167236471853989227174634312959229326109832039858636265803551904020686783098537835262728337590284598053754417320775067976666429228772159185065343352532770648278120099598572040894076893077282144311103380847387865882379340603382069891327647708918721501058700332437546527313765909834324884709237411970127877855354885922486847255293889638250958112487252243095613736716239248750246656952576447224041596740719045201730487940769758799970607908752261297569916062139031151058109753578188368146458351364597182757669915492065932575623149934209756872781846387930778018964110028097501358200849163869432823541440094224506689586252234839219432136251968568644174485127790414784400441069078189489461325739393931117042524086837739699086586132611727712961278712596638980738350630977348644303071705600625675462444936273249918003547120295841552359664360046214364237901630370194762481032419047355506710290674948315050476133268379471958182064379347696843273002697850980073146751017894883560725699742646178648840642268126857810952151659798976708245912163740906314394458024197371920482564751921058548775848437429147240040864309786764380101575344594262837534141979920998490678726905133397810285395249636665853546940286513438279538555763214154726354847665446901800287417427914737039860451110394685921002609351782222822233823230184667064747912309384340015692563795346829727690993598618037032105439243416121364406954354893249157325437646251856121027696269042316940293931617540555833652762306048317903518824028761061721586527668946271908609764337532705758576845559736996271116451422856941347751299578737265972942078227123842155072246671659198533339816783505750567819641174481477548447069500850162895289792087432142292460831259043609460489831973277328055031859110742576705424137293471469467132114584005459849214829322068926988869760803210015091555533292172111360174100630657571688505185371655708878061797928425885895239099237351882677507245327628429630200553171312742455786179259134415024134036343612904538843299585981119776227672882977189760651130712800722392978557380353784603166198875464503417182531935825917572274375721140492796253664153374246779334915025100363571070923703819562435210136047143773669130201567145652661114470359925345245239286423306741817404049374182764031346045287305742772336959836488670864096121382609680062683250464550764452853264197266554814365233255743596231645279762708658225179036876528829674855446584514090509652473709734272720511278982846059840121551633436826856177729992181501541031989248241503259261686680625553941896056829967960493872864523300392197932859480608597253134003839959038917207473515990329085323997851512789214414846397378388231306777514110700918692514373101346133066721909289252804716529965304455584582768657764274096198770898355516680746588339603459184835720364460144676221004199941109925092672733782809245167335124757897688182489488476988231505715289305300508333550478866385921997922155359469736717848097214039325050074029786885064740605616942589195093963930093889350649567814527559333615639800093134518309834457601013143056670721568356449223015163843153311076324961369403517236433374720230693949831580880085538005110203019819994409722774754937607717222617345884722876524508339905798622169941616747877814120900012595562036604527443296223230284471971979446103039481325414077534406148617520463535802382164550724297796162681402547935306501285211555665821315360356114702162734415383321758164150841942847247437423506558499442436960422024548063285572244713071356050787936811836618048398346903456335832843078731158263678296881716317761504450320410077844529468732699985748642480617064767426441115184346710259550177734465263912762863803104891459855247929431318098439524934055985750199974977827046659384813825798161352464086641126729041460729655088200311408726436167179813685001144122733700382272502171190581174050980493460235857333267733486870252810606905499074932595039026795401044456841352266418954191924410945829035455373162921050181579625975254615501317022685386914690839311566483429674272811102923692860428377835918681748583998900401509842621118547740582177789976704802844326229023364422848845823857791188869657265300428141673762876275595009374256464079550025670444935058631926478739166164107624490902756764507956443789588485026011529153343686568284941899893495314420686330127699447323120409038515596680116540719060294533507374911276839109081759702547513317526232430626967535657723459931962937108397201373968313044135162347911956494116394219413857032017487687227592477533775068628366322518563968674291901716869049955431964116055212915721910649778218469475576943551485848976488593385177562288406232663706901393478073919714452384561141391753788194189537422154717941630995943374060460812811407754702068862562809898667510822228613345890395635306805921819576571736340072336753470410363329592276646036715578516783436841263857642045458045984167880965691239411145393865102373280227437006363413568864259983434852539722363910283473931793722296069966026950305162445128718550185408321131717360118206434136783540815470079865688300543423519182631854923933228773959045840623734045286912504080412069332591893278207010578678451237669179188484980405602595573584915888206966562133579520295369885162708485009295797534872362342908613413413761831998558936468506554413064316349931238826958862082717824221938642284749271006367283574701063623612105046743088110892359387278912201705458657721714174578831634008264536622953005837186151732323203717821590146077438070453002273873046175107649574135114227054842065709305942141109803631892868257335398521110728076845044706468352595579790175489278304633474253763624284415771209852625643248454977458826534035340508099980415924241929172295171024232100410006980681476848512358340618091507771260266804439174286207871828773540106357364517229894312606092739830034226969152989978182452909625538312565383350180766463900493152214051015912301197088287043488931437959036083474453916132596361062156643680528726037507406532778151173768094194610666189497935198374960000609018683022143466368694768917306406993052808905550974312660500583513862742029955587233098375801784986849950980237131591917757581314046738407537440871073208179406258304715933817407174204547836593690516531730186077957284404055049898618451958849812844968057361981006689651220427370481310725903239165465599091295668222106910883382024691651526364053345992313181805445352207321304638019436139897865789260014567233937247998461347193956676691225248269483944825495337792971762683152344417896885862634193702781015120300874419522401605897301998425806742423641630775540382698485720036790823864904665937246191945546255751089596778398835524233715205679861506900926074189341278733109070793578329740485030960720130496911433970105617919389651374552766022090157537747918430393022438120420184412073067679250777035127329661876344279072113489390452565777026736643356303385294177766919359794562779305019703391437945971138998854138665817488651622185911454351801985878926970884197156850080220472796957379806565962228116541198155261748143008653717108843509439889569949224567972401891703579974842226097210217940684937110919020307132896467568810789672932977178934510899056699663788289932100919083473231712023080875520901918942648295702949293275697000149089500733003287100782135604228677260425679355029686006256799322266603847431531351609565165468865251593078101836577478757049668560837539583425299634089694620868357172465881707165911170332871904564688020475446039667001756486207671067237365834259563373091321365045867966895666740414693485694658784257944447498240345376567977565609629850293502232177228843156561102472520548763929463758361397964906663138162654706201728274773859537147937676319433754077598253869557456220786201398697859968254047578220822606153323805875943188185771694593984390807259786137479323470049197850632010148955265276520950716076936613224862472171974837252107306938887922525339393639127842027179004587104455665899748610147339302276462891143124232624573137762109295300865697345680566794336345972779952545832804411064473937025299145636379369408197776565073708657359862822758022872588628289419309796246907748685637636820596498449732298807725054803079413909420837129131965428555177440445081703629379171414487557570499404877644837985801483976688324190596282908406534362191121509446444721848857405664155773256285710647432141499409915799233666396988836090086357563302214651875826418063214493179756837332840604669627816207826514101997979853219530235374128965815856164532490717053973968576177916289955390749364772752436958331524549101438465569834844461097325218237113954849202866054612430795957413901459805194952891030450255019630666511915077897291126537966698824058473083714830332986665479604190288260035041149407141623474150819585038400502268061120466107629158036243871387215120267687496982323060517901174099299169309544259029100450628416870870495636763625559391036035062629543403205813891967288942105186465242333566754379630134943984272984052029227576507944936727020704254989804878084639455242376165211718231747230488493069726391234694711176520901743412494541507751770511748665821638339531223428986096646425406065831587611554513115272349845812903667090543221828748140757812772054093295076285170849803079268275887141232051935342607234089278043127351105093409088755891485070357027095474217676958669081165453598914408698993798270250145927393252135521924340095209164466122732478279852652705466840627392328426526287346715923358339015585439716330189288467140378270715209951330134198651244300089382187876676393155133079128575308188378924425691560891368374169808473231937868121839470898974139546453491235948824682555405198355185580091168913542105781972794235674408050979831534647792074072892962849469410147220075463676478845496632595136406302229235576182097122947474817333580968177604258725235736798546981502484196665579421795427509413333892111978809083065979696095489373192339940970351639824723852596857837684203030027338783008813229710579969310061682500446829705663907909341790075311897032578890025685720328038159147344981916482014447267127036694407630309610348863709613944247074865290224090122966980344667858344043320727963569521400025094642395987699341097893442617548755629992697452136712292609146782792114442060049094285918193799833606763759049287090378696235833583009697930168878026376404926337611648109709976313749966880601937447350871621539467114397492206373338635590411265844755323614119840749763969601049812971372536594050772960610764595671798982244228885109273720277992665112933692863398151155096009669776722180877181472002950107086442692225522609438014247824453794571724274170138541709487520105387871468180039437432747328084919402203337319825147766858630921466403673055710576943179652910883505760582221517619617582351432620539981860853235927719060415756720371000536830096125801664414844898165034178353034357149518483950805363986292475014164533539004788178474519313676417511696193960264386610182809147922813354520686998009740088255716439587463175915384398411791170819724675531771454621308911957180062414091651702494790274795323318671388225552087240944788196953125626905676503537930603857096097121002660295657252012980106713097641606116360576029262370410401634307856797347957503578926345034327954303230761015020886813303061431920268461736468869214496408258879259229863216973307896163312369924284226217563637051637093948603341644436704439329908807350225677978174316544897139399137682704256504053297885169492422796768106517539810370460645830994702259834871975363493458842816776454148641805230739085260110084645006569590362624408489836688242471577291974442641098206528443130530073106075286701006833411258659399432216538227659279924578216119411870769109881374017912235566568573449102047728115769932037365923532123114942150653545207180790995693487806756474537119447723684805288097782029079807747475861502215604321558348787547892793990263675899041626551598232923482966087309846062068806428441550652459394842353711881446019390546644741388898176112540034910556226203164357006873834463287574171764840939913881185954621140259913446404507403844177646806410810366346260370849248117991018802273550630824036621298594481800134163861265361040462890625082887058222378765761125307973674464758508763459110607656625017609482115719469269606069421499263375159672647595043361254518800072657747089809691272002744684930628785429674749975601459829723110219112650527312715884134784022352126574168146500117820570000471906092945336763128824741353059228565255815315172570631511928279117325425094645074431306041843028618586533789543683111057269214867888257099638483991575635678719571751516029793569823817620367769602911077192465158471450888334035277612343572685487813193536558726309334456902130855212125124561768358443928254556172769038131223107997860093141958976080350506913692427949000767878343581644288730772895031488595808830613273335711754488349420557208551783494384453939465504172538650119166588081617647336356167077845336048136766444552269822460091454754150703839881682591361070942141346506021651477509902076676409778147961951712585399580711341617124842363108667960269767794509223192674506050741447405463088901724541640509513680293128312724699884325739632406686678057340008468150949876596896565457132435351491700304906886555304935854852851716466648750778104611445787777534123183663752608340231887851606555661795829053208865434394308397654920205888124236411940450964508964832249440880656260318713688244150632613351468212066444788008241254046775212452536628781109956487960062257067995309911089647447916104557149959440206730308269421880170583551713262058245489862431741911619676630734876444881500823730486297117775108877906329818716409737007372864994008794162165013868565140148645961730479580791140651783576073462885517782236743611278717251051650473810280740604507970896075725424727136410721879587780946971454138356815625837244834397437832721327956074703110844052378713341444063705327738526974322969666179584873456945659744231085157244449223614195713210573948248994737469481951984240439366457807562080401180867597604648686095605163340608671549236924795899677871318108089593583108637658408481477893619383554675564507854986355052366097517845468935277724319464247078507385885271467135451423876129164010796478375520479412470746226999873951023690798312872692306766828013557047511428389271071812542811763852345973808576519594886396250185424964826676260994398729116579933023419889104303616701085031363898809579325072308076443455897066889993885532240042994406758773066557224140568107816350705218246224690498013610108946661086785731407894670097624566146186652025158111133503675530765870703086321825760846936150694936597326954614206939400954034068157110460522786291760307188962121971870771885744887004530004831198560235603620902915634470977748327181508036580692985901174863211919930500638543386502727038117568966914411799446127752961073561750816543520735203048279149064048604188364688416509606212771497385430942150583389602364440371310896347751165621829912596833780541682031859384059850515342614838135111471582614415170190159604991696242523404699443838362500398717939184660582264312150180397106446848408866562146294028656023167509512188492752102257529209376703151697530307605730893901380496099185470604380749744866783011070923762068820511915401907331661929757679371909570649887212848871140460362767392390145341714525455589143028416648347521442694326179412423301585415235076250027708258921339792050271267352685426637563644632254812312698764508827868571939008742804679086130351460950043111160680502877922082032343663837684260104618750803099022962874725076614042379430983248228046993172466902130683943107554777323574373936681057119837209000831999594086117330723299079163340969047139282945220367885866358420554905373444077605289479184180896188653184589610950292341422224718711796210096977482027786201730702860673286088399296890848215165979831909793494827479453319814362846774922676219023399933210915063043156433062221218365786766670256249870147659021199884651989999010796053368767825167064902856046439884665903531501548278791116192950098544981396526645186625776463229500762200003748853596883753835934120320547864505333948357531123798752842139075842135818883434703601878853664344368879373517560027719004107326017510470792134230418977128603748279559850747101574760354557679569842625123042446000683328315762141717870949317525836825093643363354070948131065323450904879419461588632219982627065519633451759915715701719706996927631565280978112484543209507471143292329211817038336853528740741049654065632639418917103474325495608387079247817237597210939845281230815644639741645145324284055790188813406246359736871784794344052789848117108335668560050174636855362099958319621603049351777298993198189333302757257547311159511689996467367869371559449017816184270772830634635869419488420288002523461489068893096153204234977169279325067184175099292367546050571455395846609480460497213928533936144764651177978086285563658835449828897080043308884295018312872347011170364483567666707530626613015208529665212879748188852876378861858861197714635386941324482153788625315202312124947778783727611935979001614651208949154935567231101303943645420920041706509903725573167388832552091156345069118352618809212201398063302596711451753333355695854886895565575731263651412521667956320080340536714467510057593926871998593504375624102175981722444122497902563193251725782821612208870180573747280478022571959947186993940109485252625273505354850239941012461543074944327696900854982979205893655689393680191306553932475357864948332852507353667595734390676609379124665998858366865361409962068359252137997517491842006701906931721070431263669377655700329766352515374583815819034081864461622705021190612169453181513181216919280996963268647435993876685385007120409492985285352452424084621628566146635489938195687199254138317212368275193422226707218904078550820152505286621615742075501374105981338776210187917899457667549710412177567382383430457472066958007134788819792160810838929176422125246614302692775712670142697405556244886064934520415141519479481203191111359380036166919954842040174564578532688675613491427036018355818328241064374967704806364072128327013022678858730189135117761189190749941573866370647117132363832598930854894078044319292864248800243015595507167669025393027911796788554173926939506517389194507902554950779883704411582273283863071962946991658987127306492191222705898933306936636614146035056544116839540266484742697819044008143576869100325161945302421504579892546549556285015618069684342411359609323304936805325958392288421416009027516402272907365531172040926348542118960390500234146754163951602524922045642918844859065740014262514402462093526583455974508472416312210905104815239260238108517250098212448263739430733232332813868406001720180836999114081313176231046807253905444862291004902033842557643379230805375045383108988490677783221820759344280564899232555661966439397430783787635505016434575674565043960490748042518890633558027183959968213461400416104167906666500818989459315995124486014907993629760457302541787002351963328771942849810076226522724505716457088657368262423232751215437941496947586480751113961652103031175790838247152240038198505300111906322487767235019459831753478531752429295589210817831460433194056029448826176363289000941022494851245097623420288876698722052718715394961041774543672492135285824256067780475008600274417826917407516173269006675244259676917854626506222391952621520280517627854507283654704235915056201537142522885337976904721615235602675071844868520322085342436862416155220920642328027471605363967964458845351763162186100861834899960134678065298740381538554757532547433941843846047661993207495903894982640224446920972825878017128124348152775459003140672186301695547660742091071057528041194417091927850746911350541907237250914215043066126064190448466715150156499059392732152787350173128462698410989095771770890299948086923587886288349489735198610974999766592863165642772128401541803298331018613292790564121572021458000818175062902992554276301793515245279013045166144649609263054399597901470667564536829905875711422969266146950000279455657164372018608990165291106764598691846116033611502260944573643722773618511252061990936829249316771467877692208766253025963242706641515274903749525085231154419566469184268984162820680515566491382703119687673777471061406712074831888926369215078670102298746108159496046801692350639568282357915994930549119298952397869385815062684743370932100911656140972702167040713685257795805175966674631968090748408583515325573924744969095390478309741687009393644703186940002659383496411513281320573190491847609521339350796430153175480324527144472399260809701363229302287709600811335046061546803547763807266526544519999844117035068066467974220946180489835661304726315601795888320363078220410598216811898867066177783131007142367248302053471465938406690904548987896376757308385368433020741300758454454054553863566012112115314479986810171239309366644377981082706791489838548531434258343712027628743608017456817242570167292189474008928073635754625359359633027398989972916921966788364195032360600796975921026975175867745665341113306260189856525142871434612017599002890231344564716844454600740815853602956924028367856992025760914201466817669767410438392709339260394575116640514989261757796601017818690738948226251745778623599052939685133956996956469293450750025216454486797913819046325542842534664256615103076902252553037873578631772355516300262525800749430572922277141005301184775912466232441602388508568327265294240444702082392777312627992448080189620181144532441478352593066286299773552964208789051607384425097896492931417052067498427842937500247652869876884907490128506467202876226421319124564057794815471818988098036622138524187264883639671501054751746262389974639967884419269820299869064388629016066315143130321040159483449892863854392840452438753739255321751930744588984067385359416656629608321516719613207444881608467790682788600187395586165047536932907799533394200155424762544342325093732059955430931791472444015128033284334031599706317940482971806515573476283140400395388722280783777260409611010354492727930807392797793374921349970039051260793950686876948611193266759243772548942590300849668589691711954133093079355869535704260093748144023265172305407386911853041155686175437925303688900267918851535172512752969647863983781347985753350714698497878060723882366711763622637827822418548365538615975429685670288116788022076334963256614337606300295196418442654555058732198393463358165831340586481185397981869188140612289009411318312843839829191070711708591987525951813821612718158565077159155305880609183460481492434102492220955793480156008969011652339999863691645965552475397107778664622224820391129378358327997252382089827252170731455063122260896339569518505122735429713629222925593512228205057399463925307528371924367821289229300649242585541385683167249640014211005018379472656899395704542198597252966101587652095827914585500431374843805558935936791211812873970240148602694832640030076585236107230949344011745885618485053596081451598748451323897791237507066923129396970275702718532978109238913550136593275519852435684315491909737421455922581611896396771762456637759767319462390242390437335647591042484080773907309694471273846996036753453052176945400248643948996503883922532479772914480310513175120801872650319675742129424707144586343995245031057380613092825320372378640746285312518945363566870602560022874171965046208649601287917952887944346037262167654573406312615199556064507361937463042740509785116684665007424766269019461761537253956977799689790504660990942072729921977027249808104154049288251816160310895471292283404918372688288696525123319193875790387237873112380243842265887448590163760906279840689991886445816937555404171746032337822023413633870260951442222050277557523304444787841205440928664999015173897076132415646327280388348905457729326065579226461814435536965701119081374970824075968930066218249077962827106937018552627499677619579887483047791906807420942911550534835421727028552064745861501580830114297513218188183704045689651063882892490843500047534679700642478573986475910315906403025631616104278636015558459303186360531804689656959777127688899615412238173879974765902322071496655251661559368119667527703454283665195586696207166942497269961281327311250941199384886158836803495238301562471099591902816844758721565328199230382146298158822214263233831065564714552338168674787161027502498200901691310650993338787419043600637109306324553955608636969903338113838512833592213251991835497260643670683500521793190134350112206723454767750440412783964553339720874942161367109636409238685123370283854785660307320735205493737298018747360601546068416602783301194248629569590877610512217543644088573607355517312617703000700622148287743629282862240403527324028016787542095977052806768656303019263864475462912608024565780382870507114454427823626334904872075581613246151081716157701221602651956022697941002127443391888545338199315567168221628121396170941462730019936130562752633293461273477708760821119325775721755032450315183497946469404748262380970894085947723321160787482223498539618450004100291679712943507855436588665974313623664526306859679537372250951932375024915242965999353885201167809117538850434618833573990799287730818158219790220065402127078616927385862214514083100562681032795431256889373214479442613021385298495978676507346638284420102998156810979160862542529410117749328201843070353820777786851130429293745063478998683897966842837926469661476794392173949013521601316187231011396997658043897245540185357876896346279690980644949574678014301429499680072518852430175895675265221700471493439413171562963123973133138308546590710855619244816832568939281800507340060852729814096575795282230355074756324749901433091668402924437537758177309528432726827901151241523187138081146445245300622105406017776450371498235350412076338346502231965585400099613098635437431658144862124327635343296173195574954420733160900200526317784572431272443598549883920784682905212524589634754697832025191029143020514445311052633319553058912140905667599866194582403329629807335215040320612658290285575269054965771375878440117389477469160364652487307925747548122478092922447357354841693471009062561685573302430310729691426992254562536742289042022636998882401772064448323156499698034629596061250871513922308617840025351814842408053451672441881945400735840808923659399227114683132363862772708969873670280202541282896476475108106386860672955869019586263445281017129945157254608659679572549983975268755506182867059848150406032818894056648383068984756217995645298087528644891426219767090828112542192171564449205536069466193226582499600378487337010015423773655685171321339391959052616503304791331823284581248054731501986632861324029808803164588022318178295161284228287390889630391295242737062579784433990682267267158039005129123382944564061048914797628586588760251299849655332402633611869925760829562909563320353906854694646338213458097946941171408374873793656861360171092263542103676943580801349304264457968942368041530575304003088427138992859819154262128050193017275000411980304501690027468629153059251618236818967846672663249757079217758196208072723686707557088912110519845411806952506960849732575370326724477968046272443839307507476915415537743660611838484464943300925392329952922049921700439782946534526553568573185166793462979008943950337231017664987186834476190644522521826527044680393618462987067317176297870970484357624637965432748628782300176402156462266540669556108759849927804933916839371661437884890568552460534387023735039234485689332377967445180097537980564693298609065199696691252413117184348706454684269871953463536583538028107505150801692245890411319877207340818477958473618425334009966976291657891890024090507349352504755734081833317304774256883373958788964657345451863039072061082372483801923325608789311746009402601276715516573892949517669597636616097420645360642455882734642319435069686118647220813382785390012026739911752417101163296157631214656522682616539816746794075031447180547897030325768863075657511674751174417266661297448110754061293084643284642864560458019903874792628720993850444971732767416280780388005642198917825184350994848921794552754607235114066759547046373583966107131101987872046085257950413074633946243893120647376664553666223805467253827842875585727590618057314171038896658575102547532425275062181565676323497545576324978532560568635688782143425515392896630358656986688753588792544436550259787361877105759845286090205307436076619932246887727287200768238283086345496463218434132597995608636003186914932960104150536984376547936599725640955542926301396431299405568313075388373680107916187737221311499426796794444693822336051535606186861373801006832610110976670257462374117541784109191458401437554778088283549504397169055355614825195809837698578635782703871747498199540389188228162845273464201130508045030913459436511088563953032986745316417480795378073681675197673420184850220982007519564619210114831290623672987424230055643332314383204250459584734409572616033256141961595510874724754562575883485805070955662828764754858323784756338257502334916273795966888656923667232931933781341612476137301638690198302726205236870109229523880612433050278343999116291697199272702721315803601809315648594734455690530368661639302993512322106996113585445586531254760643142145067997134402279885744847028102100337079931230348853318653305390977154592931300949262969769861497976948154845622986076447389405534773038650952237152992913485158973475072540976570927129442281317912629263156003809446591391932178302074696847073019494215100291260978027783944117698996001027862834385775341964566424584265303189695763833578898814422494986188531948892251432382760916303312113550141144603814621790076501437411863813923658198251999109011388625723173707561676508987336711971364732507753226754906259022199473731835879349287368024131178417103110603544995297304273510536411027390024413138470948757152581353286117229624637693651712286589608300966296697512285784661716621658009323039954597548661505677450897515411731542067926987262883601228361326214456026422351728845789979130260983407294689344013849340604820778298706223258934101112427474229104620353546953106442062440737196836922695962843789660893596568908691322554791935783848601591416080565584503926544699342253525074428304240391167998368731547363538652774050838849027021752199109204530951151428631983340195022593553050578983715841382924303922294285902403086523391823684524246118888982793338643332656301929504750639926400008236710945184931639912055673514212691086965641511507167343116862449314170134249325491529037693549966490710375582189391074777681643768266360284236838824762314757041681753480121316143584244930100574035929705029199474293216583478091448824578630088444202026521784287823664314253466684540527538735952404099138453032432485619014040055786977981173841699512848880853043173496863466490154894764316348452203998252455651293715933567559019866556644944773154179507495176956367719752490179002966673768640870421551393763133575195575383054882901213711153347960725272052617059814590259897527161317903788086679149328413409145276835272332141154273686051835183673697568936618112882336167558178794948215933480189010607437242626267798144463343413147882800590079605940050424774704233331893167916174729564066783807234032759926136851933451512823173516863421241690190224655533643173037797242631165115546556805792579026584746747332131539217724217429427362382145579837131860308138837602828435199878013573987083282545656759818063060843959554741402096704455430619290263193250118648393277700938063902725704237010059926196097591060574036415061525456328207420680052204462320737326743215736655373831557709269486293179177492720262194874727324789993814132043224811277391035774526094169794888174738976204008705788800623928339104391685794246102261608862586865852188752848550649901796719306771544035474356449301951205345394120381232186920229139680922301483880385014152940047716512958433559822451142170251347147340964367795754479370651477917615296624368688185604778327698560819832379802663534333447672308629717680895347949209148112207275704042450261476919166921813292462123644186056387706361815631325323858279334582772217769457976550679077779359572803565331866292008757854471827282462082929202969549212759414377110547429515629960409073640119158283409945470470852044542013961364479151374989521774151281114560686147946940850348939279717285956988991838798535160010835404949947091566984800787915111438657231606095162686594165537925122786088555706637386440495061924528106381347505567312867650984699203234774668328125066478790752173139603117116173353577728386005562885061889209840035709811659882924737017216136202426115383485494874026540620400950479359299357406809006667074848347007885951323241778442910740155723642953144588459388868575513432387156707249400432418524217505703364305792793237011409584784562485585952493965797058330047189466019056059377532052702982107257095777276580097274900036446793753750809712292100881023733440754517114440231834518106790512018767570820186917014946012185551848002303108302753548603011750853831286053516578527427852207088117036700181143610465270382420504503424299798486033729007976148480019980318500182425670262585399736888074718119062740616207412561773118011392006014988304796045631137782533814368993904867476312177979737977527249147927842619768715493417491904755233520402496084666847537133768284892482272463432924233826527784641436372561861329540968509931135024896530488680744684470775555737203384111434023741059732262944333786555846139560310695315636195412034341865468739774665878913633156064621261381033586632670636571488630852034830472849635045958588785936425371741965140376363811705546488157396302837515808126340651584784528509566277529908694105351042064494207628580010834594056148773079420917989952872477146528985531543282756960763814924415235234922345131438233092372106750958735015577825035810361710425991778924000730029218030580817807847700986748634164824330599412886027160421438006479009481192217334708699657181444958618513971984925567013203784306051993422940303853219412141153611990788037599604887820861936998474522635407825273794105477164400151373883948171818965834364456176132573528659096897747848871633554933021566992921034555999388311350678165652081913083576574251420062828777893273660232828341064973722086080736397707173175086216055127483653615532490818082663753577028885382860352346219215525929243439878406813827265793514850990270836337025101982437205902000917789285677746206140254789676775871057034343134201311200105794342049167049075848205603125553744036157995107183695756787164222660810946576890361931488969257518708036586609523608451333524615585294502717209367861018221246860707695755930916623671699747859067726097991711617758007190655725922762135442838431303917988597160476288673528903062143591994238750792786615058546442636703848381856057221886884115990833643932543760799603401516791770588695839298069716818646474480582669387338899313723546546290469004219163902715143733233553785702483957152089863671040832324903727757032165363542600884628691149616671054196123925968343903052687979027948488440136666500314091236241925517863610897818057983183013744189794877313323558841084615538590476193390505465906527700631299317380638464826829883768766377403118916648854221081329257123727071662726655016644226105133622665734076536543204811257599758154993454759221081042148365831325418333349636066945051702058099826131145201300634835519162823031290910862928616965333261901803069199579109100444585645548374944330827420900339625642820005623169653627169790150146308961165185264274037619134847222246958601894566742932228921550668379977255033085355571408916363519554472606271791252040359534814786478952037549524599685127187889100846807633485446544947295683887673281060635085995523520367962141103415536803217958893892374982393136128788457321805819079639254798474869966595600239202278547998602999125553805563915895930705454482598594407346942836477206012669439029465817332882177594709054562890883580693034431805981073921696462253764105962878278932171072145503473998429996584562177016048609756503819596277815741750791080133423422578137056618483842644512853825254720067787972978688959194622287536827444424928556672876729847324662852080186942842952877111770309698427441048261929546996186514998827031450473863537881045676391558991004811206642844423798472711530106633814771223576242213446488634876231265595517057027099627826804380025711883425714025132068552419535953222448285432665700484457395975460042383354464067294282549549820350572921680965093432933920584403473329143389814251778928187809838594989929436338148964124831849292602174521032528305418823983266883275451243589466334451574368701201284411318946589550907037978047091225005451559735000111592481574022270882259765441462886355920216226767683223272172101304348251286405335101084830677968779352375510627325002367482732179384798234048904822644297576194425538039698751014225599005436677090344121591950254961650358912031609546435663178473979473260839685812002298644032729097780872613412009665899153411236954338098506521325731094510179225473924998944758793390167975669119556672646558213128203812742677395504600425308506725407813896189031587949425420763889360799426504867907314305525596073803282532601831516592731888368798969631112270070099281226270456461292480660511306246814099959915454982176523494843676917876740867477844404142928023538458790254266158743034126892487521595766834948292473462522024527903595073044394440324305092865120033176885027978518992298126787651833492684937193027474356609344241913870372918360266199897158070125450056905824345795402051266365601039055073559973379359966284154894895621830772416823700491114551780174557776101599794837332691110145425898140064747229697974305516717313053527578657177205273927874209541030220401378625216907675061167143713811834830827109527985553501254231404286265383776787823108032474365814627653698128244009596533940488575731108072319475314809081778721231388416483797991805301306422299932574911172340041195206083103068927417511697205528569162031051196150969437142849045608237237740582649337350277537187275025421727892985233483110283744517955214959188960149237633492264566886214510548770274905942150186465678515740469236273783046332498702493185565531710623123355704776143612990557043820542983104551394604712603503405515525162175750359736428896182164121756601875520709719581154036653465602725306619449294874332229419713240453394871995450933873201564676799567150194913126793897030343597404726361764252427316572785180584007675725061082850258333431335996194644915177012584956592628708916559628579027343598458829142624127636045561741898711271823930061074805569356744472495320947964600892402037161561530649902693292590809555274569278735208121128753428081939131020944314648082709512226234201844550703441964130943410643861171979211671540368820907941968459177867509693631694109875311450445251479907878786183328046744612350614424803101062508371476991934482981028497185939280101781519948169409954095777697896663040633011654583404868158475751598394959054291555410153347946069294374513962277223642392413929883007914854581127348340237510998480593256289695586054742746761339521650497664442059113286248146575495906484474108621620442256128093300651980532416398031835876397647349840086951745833113378748712318763270281080731314811038832903881967291089683004170337019787748368585128523114179378203161226944048462066975902632299756425349321767991441467017893490405832408225913809750558228290422665133343239654314705396063053812771705430960020241550760251761970072841180067691554865276517753376211467075182601203758179596144793861136717255665573294844822965007947189915806308863004388888300689491826170952176459644072587053502662094717064409531974513156233024336486279948158718477625680383872647143515017993970652958080211942649049827563031225664856507409409723133308063103563999490763885211388782481387519311023382256132510544448312682490924250916706375878243212565234065999206295606230317467014264406523345806633366153930298367640073829759391296137302375277399863729226760974702576802110048599396678166589698177762815640718482685433363552018360564252517661768576079034987931830778616932958054965577592847306561705725134460881558622405973951156163148672348403884189294803845566571926331797012806306070213056925750762941502574422704429436253434738496597059274274613132067170007885395213895538571254191361638820650705889608007975520012228734249788280756192717159539977595332106354252896268490344669170423031263082514114378678146572748334913692368016833698038481679715996985823815287061853327916916439634473208462124430489323142276266442321094438357221025242567865625641460602976517698496656554208409433718946439061273271767078782616127798821675617647388616028552932649833526515094394060844455241464325124883574017339500277548846505780304832692412826192489399613148191753955142126330114356886135163296022622572859297794103975564096306844263378084797219990069896834631688413022076980614255216187173585218380707498196288191636566684282763367501439316338150358136828856158997555277287397487892264141160477801407094182484756206904247243943923393957724905628652454477812760533732472674056134625964490550640774477686659771612915336697987980573741213575412153586434618023452816847284562547894481861389715123653742007562586893254531703293022862553555727349087818694049578818915284190942536177376202291840923481747970810902234302272991901107799862718112232145152380538291796042387401953766114108508000452694579782564452014503229023307024070619330264585983902210473587003777659325774406230010898752152884917367785642926995859696400126069452582615112187458575483778887013958807971712899103970524514055899982806088556176076707696513043134340448784017320125621468010836297130112635103295340625308410936170923632831155601929995653217013835890562051087628199801390329899667385438646757232549716455670329175236320920522741505720222482521063500319183983782318846593324680141075402448110881044672540295137125978655516396388643812634818042557741555856752508332776636645813073725837334020400473800458184557570168186931655524306780326546849936553803986316285520867417964217469424678714774830159112425894015405854776768727330434012244727916036556330818862424242843463443436625969907956384014512250868977349228408355531469046000021317749185378365045869269949911423182651387198036490717447361122548576670728750424721323236052706325116077284088313709703406779062514513704647624867025894103707345402517723883719961694131317868504222336212155767380158484302845331295993781806439056655024329766706751314232848992200531476300869300111374847847603915238438412806714665703428404604914274296730512577716168928775122005827391472843407873279243988426237111972066791074597606502020322878405852922353720890987130597616543112476912036613447807943995243763408178102216332700468961625090829496097956158321951820907252274759441187882653509671303536183947793356520816994148457980458163925229510204557455411542180371941673756348827170699067491858898723351128486076961626307305500687813837887085281137480384898074896175469829646668195617915307034662653755497117887715230880163005133452755293643719829539758025245499998649909723611297492956834283284186215248758850977540815263111512022032649141825708510733646894203659431004310084496964123335038779058374374598295361608176717241966293119331508744530013141721410504920454370408318406004299572542199685684882991206209429958322627191827290319699403176625595841094815390238264463966615138955060349903880799448316074571476916804762927424953918274400542122734877932885738591670234165938457207084168603716691549254322719603165664945867169882774052300762563264172363627650993326740836143393160906828527194070731753199975992923796230011404468908483504020212078290730024540406463348232930808755563395195491841934902075075288079149477544438492719530783116812577595826640821367874641288818297434192661264600251665368118947110114049564501151130995082473230993322521033448309856445503912197566889141930408769004976983901013371777209554723474087969566549948059367311138531350110276899962757598720108288224329114515079658194123314081139755836267822542849883265575136443429931998826483229831914740280194320712749137648698567525788758559400736244392294887944079803293541196968241444177618496404025282583468570630807996527514220987305202992015926795970018271846004768112224848683656957519806820861034516067415595288037792776567620102778079491925586993968241376259762461695903933390098914746037365155565051495212253241205176337012170141904279489581083128285217899478996885730094643569395512429937530649393396179530831274725311374197446792578266547509761782421233836149064990347282910307439703167776270654485676364263392009901717684358479773503267463692167969174185058392349836456527957728089683592379461325352242733032635691922467421628870275126021879142403431757715707716190287032673608037968063668186882678845939776642055515839965247717296851288681010728765602993593893759325846111678650905729770633712923008015610539278474752206782775926333388441739798618525293196680425523603576520883635466203255067056165765282707036192863861720236345954313939166510612622865555794036596132155422093571682341040097146638312626718095893414612301351148841516370635119359240879854236662482859800699175265280588265686017675469896468334494460518825777105546858384203393287208276392832842569325804437189736260542774706189764870048251007583551627059268921421107474416466457736720541945172326399742913051728672850471982208985621499719565049554347010947420245333328218316895169594843403651638750495081521420947894943495086360878002461650830104930419165843463736041659543859814073463766558666771543174165962533897542481506478547791241635289612533660381237662781894895593056849211843474795215311793490107630798730212038951692452484473924472366385041686526844420183474526051457726732353042212191727259364515782233868407493022523581622382037939881046182561840870762841073018100035200705097100237689804156561674524216090375389285884498590328131843102170827266735812393707586673046450198041874900287595829111328937606485155036089402217002060515104871198007059279496886023049663481065903817047984136539477775133053072927723996629324212107405579378692836535147002192527344025019861634595390352331503320287396088714971890093001754367610011016237095930816806748954419166510768150581422175353870044240157752122479663532361629606369623493587366303163446858644856766359398924525039825622162535354295659274281212189616625267599329875853595325705148111888831145645556447928982458693455637493331311508874247664575364356932762938685556262813975227467867554791151459826743843954293474637778376073346930511387800315322400424747245836625531566176556527847332873156985033043412638607405450986435216618414923186595753269926701871787928582280324405793340978224264217226182651378363692550732118091234041276579679194151336482830798386570572026666839212060753495985178190328607958116166030256744120138996871967846148461566509331399261543183833790603450855860776400558994003393857367884111689467591458824245094426128082071188174017934463625604765443390784249862991229643066812361082893747307046892044117514927716919938889380120601316676744648299053826010805339451403923997415011797638755080306100306230158174121825317861352260557425363218976425445410077024512272891900612112703538635045642642153275614596945153419250024431994463344868457170347780852673686212929813984133439471503675584580555700793323246096553086007513136398984333309404994510941593451370286661030223778116749659996286755729627087085179188182719665564463269806612584833493632155251436093237340251601500905634619574575295433977879597162249710014214591740164813414181716244936112671727294098213589808851749368296695177515115061267636449316891407933203459853670831554961132780477959194956631927838903823301891225816386556282863145425023056485921450903397479963995798311589716254564819598630943837779090880718918559705650593749060256297661207526873982570478088508110075932082944752731049500432109701711266796766817317769288063583632179337934439015221885295947849169748264546347753807795239255784491500058817435017479764552000691852592684100141024628024704036501716556868450683706904302141251783920231005796348143418307542456300587599508333431660478838741743630572234521919084963452175780218434617825399792970921032647648824316635169065508385110069838617814330278604766565543302497628836502277012149187937580705384707418029892919632824174783788740947296418502850630147880807075508915130041904649250739922644924821864447594561792122146218088481800255191246229021094729702586368940826195370065525811867761013374979064524131387350485850411983792065513122831779496474085629738868893430039836767412049781269783447912591609195777396803487958165861275689082492859726415411899872556834411588849649031896037417422151005723418899923045444389922899671412921247894137412105336974620521040841622199469171788407946658962402927814138579338193002511128341467965922359880936855736853252262854872993597203192771344923320630694635989459041870381198089916434903466299661703692277502370664106463836610988562648484414674915058179801497808307254708129370699576877691666401908892988464225802405791877829179983575855009543530142663027519334388783149073176935972648593197489717315495941409169512920651541609999256448277559810075127174120015660183593190605057570183562709960259646939397957283684009289132616470607171298432317995289389143340942813265745393995060409866028412107466665320925835037562242345819075412762293103522693931253565105997715444813821289443270812381260875460379191214780573168652116834490976585864651307842271024472698159375350354137789045440553582378325415319996368654886812582228633016318297615394923486904546955947662527455491137001896549628817960731096574839858532741909285497804234613063809063913538416822720762592491147467060390877954513465107326584208837547745793952522940676225636773051779742959113615670063648988105981313409365767276910637324453779457160670716434515514361523271717673661441743508031013174556192567673264466828958963340546239547652401963333957022995394751438607518960365737516883590273987477464656335842994081706014246751263720844827789307368463508069194573979452119737445191920406051073966262960901615304135688190313447998513086798309898930679451901541221958753364017416551302901361857564522721783032098006729834455253821229156095548226143040403195927945874421244121898933311537043838911808716438242607720476469245872882650693119219622688143338383554099940924951889752933020167175890307336580212122395806702131077851354094047430112353492496984435272474798634819776742666805998087067948317517569469109480678530797074482036903819616334878148548054497928836224237741882678875006049251336784294820110839046673977003109987894424027280230179090188844095020605730336674797496888101426313067439757179458429523603382144126642427222411298457048728894018055809688086516797660788272555988573226534815355100669868185678881734822565239547133587233813478284736260254221869825785549726343996822451301465629818830551927122584394152919650178261245579736726393969246379285583996062624889549723267637585754574388964968637711042740328711844957789890446144551248078541307358273483703635911047483054560248385764391907344065143471371935739220000463367439024713792384261919970888903680654713942524616727449568693421420448041051517857330469722806387952382993344569574159527560623493685625044891887620054705829679660309515716637495736385906843095695324788436855622542712211271930047295171927433600745715083746595159646344132027249576680004018134355845211283953851286981188965084499970335035680796529263136148723842013719494252256445924385426118473390343748962067189677785621755278081824909086873925325289154993706400037359911630107451904728988859006339705520551251467282954633841517992280921638074147405061115894667650212886632235961002974244774304496429495737461434229740348619435966003893058699850193594451594888126099653712628701825866515329156171064888036048567118880985481888303591183821807992707915937040412831936132459691229012816487963554123248473275773470688486121768486644398307833370710944381817183604407286126126472773061994549330839293623010732791903839346981027441014884298366069775541243932076023451078053172901083317015396407552315714735414323469261390279195652238221670788019391437679772712682415635558832702619473732934562358855507073282372477900673638433355225520102213844849235180529940562423565522820796036947756231096519887557424904378657223923918034832652110489758792489877162747381220738795838619290540098949618682773047383261590166045664838242888897852671077700810394020993871049518527505325034791453148086008126159135485809599421448391397807382465218060334009183683000685369317024910913638650050671333140556030066599609278565465001161542987567250179800139710370906169148173362820218262680560769273005721735540857739763733128196026654244392405921112082724919038443329729877482612119126633800530135435160520363284511753559802693241011817503443423887520718926792628256888382949957860888001346854756069455865474064633624872436250432733165353819000817037275114623175500117742652811165456730157011832227754111026270834096177060152188717141584989024255047003244830828512806388427509297807635318400974712006241175788477600218302585931258724378721712696954377023667284048414699670709191145895136331862596593334496941374324733800130139149277258993078131722414382023026091407033169396383598644980717163222609839699789703494591132395403773714364418960995311678489988742828965875834242242451539826530137390233510859043589458349416083925040988992734922350981973165263783223434089243064791093116181407705272092198410917932240347970676912911917701810330453577279303080351084210252239326805651530120569601456446211428152240187055329650370287463592517780204177346996221912853020655633834813899298360074970198170222174273389537658545105782704340137770321817731779270244898496578690617000761072914991843989971024946716251381046351721042844440092408647265395002846205169211461417857043251049201197441692029691845686968754568296196773677302604585657089054038492686603159708556622117750568587062796131343036356984508749572290373858719392748464241707558486231599997479205594218147614808888793003653351980809647826017273314418348661825840508552999328785249906449480946143467756003688442749152544259495995706658023625989270913311068241972480727652614245675762364424540991213703990365637315897431214908778234954502064233279850115825639225887885718978596423000413385548557772423190161200204735311693575000007466189751307728219101713682355431010930804446246382102229977009656519624711927293881653259027080160845370007276835334785659650224762672145336783727328727256798012560392557111592044960072753799356522271070015272645157551174756873847989536694890975170545966117754966296719010881230396603272839477079666549227782964773294852375676836978531205039954724640625945399121335942430290880331048670011000407097981826626775018308329648535588940919878060298574964591407871477770876858074270571349633040505116362746170121484378771723281757139366890597336783275594449999881714628346903537041224980003872650324337936874395570478814619036554062272065922647055968124385945362502309079535008927773781210762992618914741821509850246305099492211435970687605856805533066441308570145046105420353538935012865230450398891551821948273293525370900651625753902738463600813743538511360799315262518087136866919714891267460673672860192905830018495045591124555202185039658709796484133714271597146703143515660742877441902389732444180952935154281456315020130198754152620242148515838905259785019020933911401121929550473198386739566256496537698412735714728140944433487655157573666170927113775321529494880393222671681320386144262946944473476909478951729551876963483925484731107512726407884573932265796575242048392381673607206610407884006866472079317944430167162922548693122258362145717688989133295050513495508213363146572635887729194577928564505156417552611375336023946923616282447294943837971028831831911480573086983634044045859134209084844529329909571838814362874411193262242932219048532839764460039464703057158200554001822612241433811251987355485207720951402929389820260554821987295430347174583406339435898792692270064411441026214424361622536840781332698011369058868020611418258125361622578675714203662661626399782753455720944418589026870092826855406293325407783590949389793562300278657335438042346573496745440506406625647056182703013901883471350612279933298505628565168608317901831866153951991089968725456321389330003020494568749727116449167872820389535323248369806918520561094374611235921824014124760147019681023795845055296985117260807752440300186176217588538877994025451851424690501416759042627685662079153576532911382044009255824319835243792750151045679153935181759664073507765203947766976654147257193141691297776307574049269062464712677245339589939852829373099917235182739126097888615447979687727338690385515243932773597916440063352593835847450584554795590729760886573701041346296754326817293050324360449321143173796869765810695381681315964843550777944646166376994917246814292700657911044663873322231623894960525024487380062467705908932836728320433346045575907215589027827144685114139779190552624817675019438085124245188702052283529997547148381441193832530042442873439632882774418652385975611704152324915543317801429583861045520683613088271736641456873892324506508265775964453089634703589213469141399778507256711656969907565458737545178823757970263986078612236508649713038231689815073113304502996541220715694418944940627472575317399047490619768426801205626321128958953674525172669382012817857080557078937393235284653898008866384135456158644868867495806194419473587047221844602803753462439146009850893043155398097765063165417674788281651054833234609293771384063279229276886943653319007821387843636357421457031016507354766552706587006682783459539776361443490147706417255660367546851671794019432264031324274694582981247184855487358367468141690124148205737386984922979809310875921121666667309996876787165534016957138043969463546415913607001741721016075947524475203167485475303540059146157409730324219956009835514982985729355370718491710351950590652970506005404634234215409443390775011467481312669236671235792663436877020524856572715475606681443966690388025958349424168308373481721234344893222430536084784027166859521187402917237518295860163919132191396146496389201181827841835098038484358714492604181618808879968153276987168952084758637353140684932839141361251917536346704067326681886894263783644049500566241628216585035664281779191934612564791946540474352508024688474015138745380627446638282596271013616313723273908281084545492447074995914143967787695207197911846194535016248296725733377097254479214532402410127455891773674615806862757127923434431652187275783255034265374742477108322093497767893638550294976738013831879976011972894943388710073067301124085176020427602401720810949106905635064695216149132835377103440346470766595361858397877207624198423374266708880909577139372283415832343372483591506493406466766454909307969439482906007627289911323204216106919009090391514978083990830715609442223483174962139071298846412381883901138429101941835758954014490216172618847114284206742506325111894331089011044220046817601618564070963726818346308797373788279209175384486655286148617703664419107412391447103612721600977177972648767547629831283635041328515548875713885684849619958456090245049358310263946655378478522399980003512086833733633912252192758843331209839890744676394966019929667554728863036075128284452780393430321828052611621139826696679480472708268173121506844955561251348691283068753160066991967674327823755671612047815251468528827597173079667768454257823618349020060026753463878921937932176143292992700248261904839466634944354631202510540689648558992941992405848371177032148537257911564534219136717502826913731474673928429818133590940474066236094307330077732266696570598938261991187341022238837396101110341255004016260298016936643817953935234652610960686362784779491603645434543060081399464827490542827950861286830782570640365937493007688342477610595594187856916204920440655462266584430117356134219442854110244750488477507299831803154173634512130511750978354633282200016564174812172445015597745007831045556490927555035470521891732849915331378873844447041493748150816304682494758034390977036326162506068467648045838155677284258536973074599335517619863275381970331061593694608130045626129614436163903752204069943222544291140925063095378107915728121970016814846907519499258253667387292730140256428505081515235820765649406218807715271926526814896987013243751381776020222449144707763527727906592309073592456450677951824703119496663462544914265184763615566121815696448446765232895472678047487998394195904262855297167332321126069245364823622444576627768236642496808655896549955070753482277270667561189375267214064539842724223045487880076780700173536513494502723270777450156420278071238080349371327357713499310841754615473775377374840925757933982447268299014991098858790426096057099448675861322053973985315459976290977782472415597597566871996324842341918785684583849671275607140010576869302543914220428165163067551229525492956816536811463461188045389534323466496382200733545339661222688746429310462470890093830030402715113162936928100833717488112153168006036365120873239444670849811405728213612140232209623576515444871476617352225655896657632638385075810502690002671922292999695132982036193147013093919158103002781483430388967161084430838866092958986026178825468554241119669837896551428318749065796354921497116983227608621365317705117263677760373199227543608955466100331874969608152327275380127457714935907377647822505666212253017234436965874633616658580058804300678333091699071904071541496653882424408963469782584233438440518014817129789367531506437376812052818653261055456737610304947538436514210485691138240764956937053199180527889664662779860010327070411230079680184641402079009653018862327298449929669425788211793495304836166169408942275411742140756449804181262073008516648578073811495619742813730882653452768988351680321977068541101811207022905278884624127670298567548704993751790613310207389156552061831415897300856479885417386299149512161625093387925942175584297941541894903466734004338131347211993873722961539206667987921763937174996409684999682361721823333473750746694276731257002198587553516190852180829350989219996629419790465967058979128765002829807107490264294731798675194434243920460020035352829580246428409408019668508317366870427416842853152350092766856291493048896667183697613345591479560386290273689582226364001175489424559159865124316593238386731128257932020377790891534062692831983494268650242255096234593843583031885154886166246087986021601027138365841794530959923449005968356270515605521436461419617484107176591109097535917768271257797132606416548291193173736906230865551378173471273106426839648560729645403503665294815629841275398390183726697595921343982752348123482237781179545583594511310711390929022298134069545462725073849675894083647115552226701611207058716658918450077039787060853278612430782131770441221358159478937387791822656248352454658535099909408476389931447370129675715425821623618341109104854378820524718344785806918940164006409209621418656174932315822576035242431623426464206974892315810624159877618473203114470772273563180515645730827767951441942104259865012992130621618988252053974682140654342799938289112078502567171610211512567719984960997225739098735637261758612069795581235156821886389343627247516875539267861036059024608821233901481804862425159707701620332277390516643493264612081131324566403329263117691502739301415523677139500143438080905656492314713634164552175823446846543636466384320936974293970763341527169199262385135538591599850196180074300612224894450441747680106047185644336396888195869812325684797525581895906483133188824215576374231491927282923363682779335992932759592499125937905326914236832093818729472226256507560987566097271855213637464844073064054226640028422596147673151856600642780822704272479803235423593113964009406242095576406026854524897591859870954878036700075086689893049598078090293329069559637041036608583762636169471028784286609765349854058428396414833298599442984618113825286695406514832098982689940465510279666445102771874875959822356046167290517516064639689171322486990880497589633610501346918525580446776840756181126730218422085580230121606089594980741197940464633708138596680036247355565007361448260878741602269703527756273766608470633862764364227060149977470409440262140768702033694993301699483001976640557954084644055689040108688883321870015744592907606853969058331677448664310457956525434212141288852180322693579796743455138101959213173453755887551753208088780552493046891963946129723547398710871664434781384747814466161846343267013171465126038478217828162911247546886566584318720372808970989051123212626062759613575674802160158321104819862979966924564781212080003564327603289494684103933555790464000544583734348800554551453525505899430073439971534415015349405997249567123063064798307325366950224108830137299633810347921745006278351403832768320461329918362248527207765052462137901316430817242441183524005017116763057339437457221914520095594010614964232423130934317287362513560919470596324638949571008534583785970696865208423323467140623741563416978559890116965904334055010785679025823412805079377992903208273393555022433336355474027712546870255465892097695181528004976058122419980019235496931965359551529541858041796187864439003122461149790481416082337783871380323058253360710699906763422116231079727572363416057145328801352323970120383873249012179978763518099798669255267862525978342788887281068634235082145420447739604271770538099554062422356327651275730156063349519190590000346166155211869457931207638109513922845881297941090530192537103529350567729283197447882332681430031258343269370716311635288935051608595498704269776494484964874154928701680318884239190672636203220880553008739677584756777032279305434457815509906744807459004546945248935671309228820266030458109582414314840971603453905281640377266561662786418239206382459001845709216254636782518945044043546846586408011492913833380233847957786665743158788358550619015203089261810394829937475700450833222147116504388430453884007839710859189416068899693559274918029791912182110461070157508200457420465546998238312315541150943126716922041509297581190722347777158362742626794287564088746378390319041300909522123693787788185355895289039772930120583559472250598782966301954467248837357964298058500760305965533420944631415781983362142921148172465023172624265394941282266892142526033730928705601346338712977860060991230623719527884789122164991406189228325659242236176030144142581571711801902794754298810119312087904656754030334467711585385924516161744051117284953985167399815735429951834739941480982351286273210226886807702439022911874260210852386401764623153319707499030694307121215880134139959897657221018195200038024569192166505773212223560403508160884150921083539099098494925055492125219165600753225051952459624723176920536870312377649776704479426978881755602979596091427545686432615026202528496064171943594955111668496293998313340277731651648965827581753031540170735896551091452310323324786937945712370192357341099482119723728576740775062972046054672829356564654133670502814444093231711935510186457970265844533234944082977017275073518596965988059501795595104929245340268646211819159266912645876296784387368517696998129116507631635239698538537455875686716313971759832397380158323088253771406677300740144378680757818098851175576410441317778146346000809937652705730033016822882540371011603999428882650985214795231341972693157250869497322794117893332327172599917029636663929693774733598505911393695509801437881266172578135995921397580665097900158268911145024800262809258930609658601509179956824561881660579384075176293597638827360761483898783074060266235018987237346512005490954908418826953748227965849334285965658235513055470848564969873142142209362394795582660878445624801498291412362461704698255916831717250673004824053516156216867206677338133203400307276414850914110853925368062407719392091886196363083826930283317776410902501205883079392003151752833574639937895290540930628874649928221606283338699962489244820627087852472510488698731863685653892923856107678816370902558757744722132738997446291208218468229732920951773382093343402053799737547926138828813375079591001735297881162823876784126375138800677945278881749361669643509502303909567457612907557049328339281614184877024598652544566687299066123479086541636100647481193342850004809365837977753300870320986586287731867639589427978990398976263548571356371709503558601236425970833683615010720687909153488239029483291132153590387072264886086394363364034069312492380793866469038861112919231835145737042693105179398132731765445333708913402054038876785131065429127777361796085443888263261089968439212879126579499128497231594678967277533218179619202324191336142703121735880724485904811139936673685293600201736591524803736021651032460413923887547862437702072868570614059299992289866579681939660188962770643651976978003541358225890861826561679316268657047814937616720566898513315995445661772095473087712514449509521101318030723266240274600318852507155373098160885059862168907465946662110518099831061165654699703165875779722470880505901536824263078053573330330573013463190655579639760234860732931974622736736771682109986340958802411690069891751902581497168711096061180513644117295267306447218134209026548695624978612745673662392487283873728427721298235686522425355658848051749748217131221082583162907436409506487149822879345205278502222446223990024451337625890484775049350750410697448885189436767081724167801396918201704637576962597402180728061282506792623828665688963466105774818369288581840180948279645210142417701316448074169434176428581390114612357292794869020869317500754603360663562150171518812417941912667392422791146057212705628406920618408800033841572123254267867557578734146683500660945678705214087743767301249739113972134804445814187936668644541206609447449195837310367460814503318579808177286969924987365228930131037363446426921470609475625254288227274061970086693264571181577278168533070726771853710913380359579835580504453747728715675411343584381740342408726951788084224756738799623378797611396312455101338388706650142335598367627595864673071146251732771600318308599531699958922851352315916278791328094191090140652361332662097248766653168884348371813636466117183368800461978613432627408408116003089941665061457058007857539966748694970066051877338432533896733030145324891283151238106249562660920785116177578339325489879230652544198618839825626796911274829556049995440526436246762613838419331786160036494969981314607397451075113083114712968057290522669627809086823441423946270915369155007024145027048801782617127753455028906101362094848620821086784057955451175715503340674137299264929495094512293609650342277111073995510443610724031010354427682102779800860246491786470518143604641510242451016385746568071296880940603009959805668174446131487995132890852219965477923229975679999842617443954060926964176686804360973923183635322000086386988085749227954102709556106377247731106519423655705223987017694692523551206571949674769298606660831786338563822124187973877585182338121619783602420811471648277124913736551410017967368894354452717292155225258219761724703107808104537882091327964392817193376146965878902513763170844081265555890474118151356846249612668883328777740828643368467395127604059369087108062048159768088092719444042482628948670180581439422811066674982403678878853210574345240883029714813474648908135963287606800764577743371087201953189714120731964820130184846052452819678717780706106972574009631666926474542174119146212492467339695946108675722367649606045007322394339685920481327311437545835652960619951203600655242421618474889922094934928191979477509640564426370563161545726198872524800231420204105713503802635512893347389400677889989834206042609079045389169028348152324920984525176982568563265752999716713872658313345888048089228547489681829328203191239175389698584388454716756037033861431856915403387041986162313883655605280819938657030395970346378666438983878074859794381594854169140051492610604566294413292521730932523249844935537784760513470485925966317472322629044231182703023401858308100271367117164934503272942595750897520611906480834191131054424985837519864408167135339115898698424825426213795246849752435072365383999917858542138216637616978587590931427449469762257945721393260917473292582006194359528319296534968057648018366218382115376324813699730276878868165241348992135218011739039520722163322598195701627805124797551213639044609515023355270733853173769176031195762460388740645765973765269303169085161233049574099232850215994243797915373308095263214750727172965688396794066376206272010070514836065415089800225412789344844697185841692782465571980419377878172101174804963272874584492896592149572264042401843134164038814422572015943122701307429800998354879822636979690775746305961477834898497116698130913431121258875087313312145303886642558940758262510828212893428312729173643367835112891931271025688681294744118313845104981912021378729196683341270598660347439867642464473350914760892322503836528973236637833616507202473419280696068716555304879486070098923685024888212871737251240087522448813960703680569426478314009895409373382573394883248274907881877101036012404310162183880683927127051076122882950015794066538000648425978770475457262905559139749270695136051357169356598374505004111386456113847721898940679304695640748749844136313452855566634453362871911627447320628648366419800705733784429916422490447899730994882772939477231764620460403239467055523029158303190630488980416203914905562028868949974452502112981843060058737893943509767030074537332331986491081826928501207149881197300045672959073453293797268091151840796840228765592266812267448191869450952281329262000286166575932790671288654648312187929937837102635171225447209420984869360904250693658184567752397118632485429319550520184851265350836483950708646208294347323793802602018002401502031207485268324085657600362051328846045465222405085159999975131083130275058733821039281460624632369494743691238708244969436384005769657561387594776533988054503269997649625213813596349577965193422975649116523343207487299401228839152146717841826256620109681911274470154691172580779327758777255000308228442080957517497786483309192026161929879303825271517064138759246391659742229918315199197565325131838221510762903242460271599726642277001677924153793861079042204812996136948075898914878630972752538298685760051741763856165495425118782148806137018695810579481353042724732158782084072158649062625310243605950230881411877797806163128211681412832857952663059497313741956738953073309330083296223292048210652710431611610630144383771576867023862889281521014833284053281823788364712861995623320559875614051352684535346943665900174679318127082358643313887427849379605473918816721900353278192134582763710298295324471978990690713931909745863399434151958416527548804897914412450132837388708195998003637253280789900381349810952688741491895166620441518598593607523260243081694547368532997965281867735560636440066171768049774161893900347657877344705837952552281313670516627754715797373501921952971136425447860248632579017404206504376262987776004377932535606777654962670574475169716812462330314198506678593079023439353791501118892565254107106384604917134159110744442195222611653681876570420034264586057853837161875803212617336591139521401410854150385400661337676877183037651384856010159219624823437106870915975128969937465091690177469355274849348239715612839143893559806820749171820436183811028679032250062987792894489937494333090101687626906712853225284184749147938234840856880494526137041114747290367107847913438197028977973450054841286781550674529259654890931676354984984301358699399356918103401468582360639007582068275571468315825684606875120794605568411145940242834709105625247369275522370406662737485136676553863044489415387222277733609210944347555579219065309216130352155904367027518593393136422346886887525732765159281705978150637713310886608480002900909149332638560058180467681437924666891104650677889813805854057877275650977869652633444695396846067919725000689903215190825376617625410304429740479111138983609390970726052795999872093601883280091253157862716633756941362670030266409627801709242428295434354663031778250192113205289516830211557722368718448268561576245311223592609526829518074848520777746006274015030035844033784585760874382627337762392844772057957946716459884018015517319300189654706050154163653504428049445349523209857169148010673761724679864263376269909962126130354159530071797981466964628378114374914470149059447159568298478819648422543672208770349100081879369163284087072897619791485396009282721465303555540822928438070701975340165050830563152978553534747275295873579773673253350379046554478158090917537395566761685722727070155002139059985789042940220761038959498270817472478317809788058646366189414574751959121004984105203561833416927043548245216574273875982590780117963194132537745772504587667621236523473594789938781720424404747604879522318750437346869675311031060945810583984011629154505453026926241760010540729338090527480238756297099739959420286213134938693575604622108275077626352622743238197393185441064114239752600402933697065495119912614343591569787026704633406315068672874804617222978284235324485438463600800395273201293284811739561608074489477118015086852242954554625873147821227022881020309187067122764372536180832828179391776346354565002164779073593155048570849356168726976726235024345527693689970539045521671368576978492987186729309724859084015779850320301553990267299002432973806890944029316807060572648068610913992378715004686299411998909117801254774275851990525157690849272294239578033391121064150333823891835228095667839733058262225262781596887834305759996180110731508930327318331691077133774984142944835197512933047600137134925606217024619892351444742843645442901632370741627492741454387353669587408163316804936328771442802739116392260041176889278088726311767218209077171622861023888960677199875560093701539437434864145818393754859501838045948977319398570499854618054526601141577171018450329871465821890695318298587023594104673532987305296991511834577850954674113349593638811713078132403096585618004564324225821432531784206776781230011118608859414842779557127914647594925365831601506687210394629615174117842653182988206774432752708887180040555912540391971670448437727182919539731597515828479903193170826304558390588249842761869047579143839670438225359521147983330781177067167904745687715174715327055701992875788250622367723274781514310171585237402086874978237550199967259732502773058357508981612405647758069663237892784178635750915801428284180795420069226969206177002972189918308927416505464495273308043827553873245521904838132274677280694243011280739590754828956610293201399075462930988640954388964067695664926676883200921675084906536654082897203351744041224107752361906831312335686578151437366638564203619659332740692152687206651739953451881970823722120213343043188955975067575276536695067926596020301331415136327295790207832434709893025968453472551134147161208819332001885139072049756699780595720099197199164244200497718748102337805757301763669150611348009739719199413683393512699028015682284350326736429155047230900890514328988331194570369528643640721998611692126769844873889311783840465819452636256320715038175660953148850035955710255009602341519906497222082762314380693511383946789357071553395121751943872226998703491001177022219048651316610463975790231294428791047132412155729104150423772369198249387575982642052054510483979684648956447942517997905456149516864749693369727547380299595206678533906288814003795001159767130561540963281944726268624949179223244984568841881487119076011874221642530380667509219342738765790953567156725527751780887959070470416263353070661784787020520407533660522660917136348942834386461958131137100627121448556778764331750886334392511762729753380724989111232760768432799731865538127794461321376080270130158876652844119529023504825810453027752728365606305331267185463650302495359496420542205453408426654731887594123856509110070161905148121643504186627832694476987388361365189276517056752817587434773281869712400006514328256835530110398072538292662713401122389966051129297989538051679582918823173958952036367217984032419972423706450458015905591723441720215203126289046618618627604299165792396259333481316278897629743953903538784163430347295606014708045483623951384441139790997947289565479550494926827405400568880283335061223322470900664894829419235551589900988427939544387472889017826510983049145532595217884653997606001112674889487723918000909197742925637927039356130284144199818951656682832503906038697946453886782119218092491656040448462617949506211308214585520661771979223658229954755648331837224163160832884001156810714342224150819359841346367481834321184843090789834270853246108631029490597660155992297298871058495529228266764073293368448406047345756432325104223451082375480593423705932803831062463198195576079465122890330983972607484258758349713586238990981404922288835892983862709819690996006184311106985332400421838573567148908439462309131874376196128844984559940856409437713535535343109030930769214017002268738528480877167922474804070389136746806148762436661334515766142221171509923640902968363518490819133569569283839574979922361306196500051369966380546485002035092949284174002300783084201802441062007760864852333159700954005751307942633846439447765009020475360095865895565908094026815306329851320087446869564815921774974425661665961100723115338874196454692504650881198446058892186340060002239769429594922195216353608269642547241824868765844131169332198928159559379222630572142537471220378103300080662715946887278847547067540572025923516125043561782079837339296148669814883365742316132090059770652767160378786867945382233322058181387946893751972923416632104649777858801252008734522668990196041075718193832425492509389670487229389235587708825686274263296104335792197321563733898883834568252260220243815144367095605922285399731495636548831372285702105970028817903503986935836050962433033482046328175252592281074630028340473385927268814084626817153552290552556527797613938670301146659633279073625043905880183245220790237968017101262351440698165760004102769444343472295677781289296652259591079444061728664981737824266276512250244483835428672689389150866659653929556767587290503360265647993761500382357604249064667584188299684691554813835639843629499388733796998912519236610204251073576680996577836525481294283673741016710794251480619726285217893105830482017451952807468429723669176842516329799858257685525531812560759830068608802758002545874162421262486905565164520589525859961060175013260727253010590372510619861795047932021635315271936261495272813420208491593213067529378573926348441064298045335294036743725814459133472749014006384644011889379192009287642990444631199265548805205308682382555434345711483021734706470899713249592457987625801243064953234351944902465994688560748680907150264173277209975562661677158847236861494731935090394433431553711937338990097215592720323285514832097504177664227179594907421906414301670905507602015933568346969696230910110891718890970645913649534790910621388694176560847635824657968167822703317549385684725209709311471689300389676541222836465290345946136861760994266748802715339907556773018320499236055705149873776092482672074467123656256883487870424919764633798603905425037872750986614701091921322831586193491296281735030427257730788809066054082713340422962978050855374256556430112617395329800314306543461776940262356774016318623156568032347073621045707692331183138287933641338559755656786518001024959501058330013794593152892130726179582183525578293849249619559495181475482835428115654163496667625578703536453454771152841406623864669049442303958341633349295974233520958086973187418238763864138356407208686970177299223289326414910686176695497534391696616024045133403833809330940451211145284253491321479882760338048284015281429058535457570915085802608006234853655257383546955866675391129001603628848939506445044675166135105128444743744369978564981237255840458174696345847622266912065537266754897318930782139490056877733176053813226503343943483960032798349209557122751963038488351926952420579627331991168741004488174831099252382733741140604253114833893207050397599353702023765026179043369626504007842850773878963059428863274939536365205469626202813571993720488891955205059049519337834330569248386183689033742594300808187123037366575511584345617859237343638270289606334808676800773723209060912812908236322122129322768842978915702391470404221163409670377103913668571891581571874889717038788476928161317936728043745317595278981718375272023234420164047719158555087295688093434635160001530894628181520753747338449292716009992734880724248749997638445602247759244616646491405989849030990099147308334246272034524969369150685013263881087188006331265746755344862066070411529293823907058368881544814360613359038332872215704707374413565696115484997396671576087032810694218759895727036867266827871824391487594026894240157295423854161718542281481803401067992303850992715330591644255723855361691056016453937949529784298409930885509969910158370139215624289706422139531999150804990299032715865231150536114163483002139104078209496867168535134555298569679136842666278796163266316991537282743562509099499515877419149225419445391552892549403898176734947253197936461634540250214078127492259722936875131560792012463795094668012928866521353211625753394455101672940498857672769834472250289793802604158826293573312449391917298972120662623585833253920117546017817524360821516290625485837052550584348532076866074866005888918175505733711452701323677604178482747888827242291358249971320735264671598228349518361502623758407953333981963670784902389027254246870266292694475363641262842722570622463389930741442547909694676540634969547986759596289971289068180154695081718731825880175310098998909602660999999603908444354789958536449265454061299269036949267442404019275917070565023879122844895179105690601887154350975943320023880782181150232097217688925117548057290156355771699601492537971103735490201260531814555633301852130921922764843727223639982355704176217891975956898572466867535421848217784586122267241095472834466181776774136575199332266709459175988464323027017111258125546841284382061702058183139693753957685253459635834618856347917172362998796443224775272675607815516025362915816913279699933274834985153691022935476829091693947836255621805805658893891743902273762472900349437081719853263296911170668840123351830845150298414791546281432521908765498409498798132135562610609192891401510702430777613182149492131135272046261032304646887529788824460742052901917730670222738161463972090007470421846359511013173804165875311070877935155459471495067662816803567995207375253771395710513070784292942526437201385060459704438599097141872713840881268553480420705366994566968757353008435540165280810788120077310851132695292860550056406824690452534253467493015454946185966407855524989431281845523633532966545740247044145128752409402762437776029257805374981198222403115033146413646583820503504421404324937919360078661101846276010770144999251076477501909611135241573661304498756269741055391261909700773499531251916096722519284529376422205770482858408935994741644474004358806835408964308222225397053296998927849140818538292283013497716947251854702870539945740420026088022119751713586982558940394666345781925195374219883221984327521673103659241706592881493772520842073754269778450944615606920277673896509635231902104310097490655921783101260491102191410181818235487918888503024400411878803477444299444032340263142210050366555531863074848523326547584915201812013303432044024475257873422987511213573727964255688677069822808555724347812516989241797926772739876986642721095449851760543892701526131715980100952744370216854506379060382281975288604879282455667000265914257145377417101477079210019790363038717408129973782839295905329991222428692644878113204848545417098307799252139565618402066238900652697873839024602510109551087699008871125316901151506334199831195884590517847722894014225513848519114868890476713757971874440118897856530938688687110239438697503002453223123964253733027019894338751684456999094097414317436731776123877144524075061355247600509479118207632462761640559202215887950021906881888452805504093024278074883842663846622166181349206687618121212060837046343284338918024165043258485626148843092874849564477268507314875211362499793583897595701307895685634248319237084997610339027108024144212372016331687101975146672634895481972935489786384370484783762435933589231252945181578514161373727966669415223314303121995027497236289009300680508634652079295261838132230191841998273305314713528653990543265876915028301205130878470216034413009163496161631005735891551550820535934605542066892242099505394466252789001535718128350541513647144302722442487040236838056563924441527289260613553656787573697585616272275571678185795892042603373422709589113096352208770073098539140336334844521538549171131541750790845537906455854785796169697009201125885704062716822488779338876339416933724855431832172738015830432086511164407392308405516552935390870124096449173478594374909598472663531328324268594259843042941245264258046762359303827207318456444293564968040778417723088175072961194838918385565724287063028425038163614433486833968704439980022523328713168731292706080698351467708915311021685102552002786835553172273913890310477704721682053832009065485136830384958266885888214156472558885343429143633360816999887615911760263429144772204282868882617891483212063577203403824779531552646097117009130349342075517257125769736761531816213208294341527573843780995212753841091673311328403126600593133671218929293645433679879412165478548615110287601017358506935160670134576235988981130413267484522867812158283737373554203592601330034197412996325950183119707694180324439170778658084817704260107680130965560220923652371111016491678128356405681597202738141632389676536576232183786022951564552379618985396088611711454507890916092906393326845900587190310322366083354526724229810872035887934263926060106144065081724934841789753889877928184006595073691329755085441871443442210514731808454925230944991198938064096149432131038396441823173498347613255771058195360978321327087786274718251357394347331028360865485918332474156720880186942017651358282884469515537610227960621206802099057090670843576616705462862186325025515998509855452158444513880665572857984540028154462105037712224493955291695948101006315128662780279376856742295951745019787454727580140987869948116498205333688217763182282812315875134368715948295379046071073724899323289466999437467554994623703777450641894718181996601896975265359640253953389731364147887429927998121119967186519870785398900587993490986858702601827191900765223486931347915078319841349322586989192452819914850478140705036187641943226322121430781883964717770647357248165225453368049380609298923414327982056726249658225121134487103076173302395446394290963156081632665940016908635694430977828730298941934719256716808658282466260498861537045617277243230479393143288936385475914924194241229499794430432466041549363388896585401182314896762812222241567210607528067959860342253628142352576917636158431991293279095719378798231329943346295962957236007776435229639664514304382629164932307337276233402088753429097419533178103620588609656563614257052045213063945831008448589978050026901715263705282476466155576235099768960503144930821014447598467711918531063591182487193270251152963048383303659251775156660079253446610071519868364789867400419286987608575772523342725850168680582588102631019956257538716729831880471630482569831933951134718415996690034196152559678746611944569599048833248955245913637815865294648646185445387831053399949755874941597905161148968220610423458431913847592471125030147150882188082379335856983566753340610011133304560490339699156049703418161098507797251654487660979956999212969981314589737393516804971185178870468306215546518573155613919658756033120087507800870900083111155143619788930584966598273957827632336976000077334134458045586649360587019251322085504367902576993360581930871512392860776719599017383260570199856897264264772848008422231091391357407320943131521661099217078120846531378014292624303132565359107888366069886817754247899344535029503853664609783662960142647744048472274264875613930990071269864171582652982858071076816304110577930800642616238804278508176177212684439420510378750973170246206009414315816622193500539605856817542135370610187620213629289667087111628332068916157238638359824934000326059900806699155991302246248473039747085133465804208201296646766756224617460977538400165236200487916686399211082441410953105973002534379949411966089449330049011348915312717815110145955591670210919903786440798575833168891688844201686722749949163782671895976767706795779202871213356011837088414873914534724643768657900471795659868397661488914073524198063151100081571823276641412959869988455255682282872568784756082548970590437714380152474757811819591429879920596099520060293849638796531156240141635081725590802966591485254154852030282310202222192995503266541156653051757950516421350366607389177888453335086015182149110195311516731056302331983518414129448568379068454703736309739436025920844612054565430154396547236729586139136972028252582096758860184651259486700695592196779878152483445677928842872738063954005284435529903983726210175954084624866624191558818329389397137636630781480780313016969158613272966589815993612069570109645558710662109355655433134506217944390637405824167007552334807539080099754086561779840399662307820881810501918553965760774547828814761266117125292114495921779318572527422679377952983602339719572378780858658396878252984260126100984122536400302704968179180962374832632741964218200403181715889019031057191212766330732219953790258360453667104856929831456578234362634695749772090404878211572450245227987424960864201017380532952389178318735267599470733253668539239531906831415832391998380083532966159153097697451819398226869532357960327991556978834858317182770850517770485266806779034234000080898927871687125935475950763789918682358583332618466461140711604959558561730015446476038476229161211478273415342887045323991060612173560516931989379679839599976493605506062047803751403649832178939978495916045293607496132451496722377153193383734422906342730062111134145687688823228933560084863757462062725744469673981210204898355317181892039722499644277186110920793382126655910444918963954009733134477050311156380759253687091575436619745162767458735318129557401385834584011503759040301350327983884415117873648664029027245556277287710187795064881706975903894890479545459075233512996442141088810783076142133772983712448253314600505331282740545254813319749481662374712418888004756150006023880917714109657595730934352126496711165472437608376389199274938741854386513202592349368462667087088183354934719996422305790585473736584840688033551639955596222776281615468961385148770091457487299984023534690466521092891456541330126259022463383651781274514875793706830013251074976647592521317157504638564380144442145045553224319766247034911257747877062146969508285025101077579951011705151546584468107467102801391421586035498841531038625289742292238745433238254408784121178445764188211671811539125030543539733084930786866093074685703286231468994681659357688643090323476130722112631495335558546832480471647469653217718815052504873948157897296923005238499885202013012215242951002812665578144953163348731840633402477696964351532656732661318772705802408581532848440197663212832620212365133778248492163900759021372692870190533475222529083815336845789563613095007428374590042289339864233028693772433853458449296629913529502652215328501628729850205268748187280953255166679352482085832634577602213885793257263303130016696721138421047318156206967865794339267717627594744362822536218907487644901987243767801823303133307119732846864117085349860921046805733305955217828338729239048428766242911871545937489600731345590351433108073533522877845630763819499796014215263506974321349932404719901455546442584510207903271105983208948918779268797770659360594126260223936824879164022894302589763443187796451233596708070947095062126394109614155645320390567004631189001941623172903102538195028683120896049908981308215888980711595859446325158257293709651110311060585310090298891861039943978892602347078709562773336991627911302826425380685802035629771799254719971851847569725140993031341036924113746320101569143647044114968400882375789755474728160509473096024207707223847693824972040009345068005995284069077420141849297061794417215809250510745609603368019736408734491095566018137498358510234362322690343836122392132522650664348606753997069615529117176600707773093306167044131320312861473377925733617113932572442651896468467279163888302933115831759735420629912023142915354314489540347361598633670931468399331188009508592352103653003106385069252600544937427771773775559483130819175701055523970257316797230088741757624851318638901297191298712776771679893620106594867084950165960160662493007489600357241671461557880895918863674913213590617971366482960898310006255077276991006651014941364134898012094090779968381847853272486197312644662274004932378129467787605287315611226653055691511896638142567054396793609385060195284007403589921806415646526062031146480925698541288042891560133761980923618677267051914010706748678615377361205933802689508070021476822566738779556357730080643288959057959230709400918579479156291847295073179585447178053594451988444898174599473998028912576675935845117903392667229069925363054037181985854530716467917859404440863018661857626761938263079018429312679991507580257028794669902227226863610901985601207003195728160222957742576196499762637885563675872374362424582093636477012913556821583591580348665272640687320334854687002613783900361171579153619407312355797549525328731851758695407253320890614688242008184363101780267282093922754678390479131782939274527833943344080303497309920752267337642447415980600136597720280429482721980870632341007500132002355666451532142123110000791687844988167362803174989173814395457767991245451477147742825726397004856334838570705759250187050118549210680483125645084082539378419202497752638356418892263029031694091545210483475821899015898567145724873768376333811372001543013627096377723951886195850883476141231909264902790655963117514714716342500364095733542037368924537515679806396862005415727518157038113338608773025393636569683761083451093525878605520715170815222899831628187245238831522482306096799353707074288138474228497485015173280182125561238784550367734441749915761847183020173429907654174776401295678004263242790046839735494814614979148944461148985771621719295901481690986704478331777453727707499166744514171619626117320074908374266581782218843322229349196053763805478514419577588190239208869379424489026581445932820316380693109120663522002645645291929377110762899379170516666883080183659229743498211696642957673546362531322849971080168355712893038172832315319460277506895536461864191122777060024781561256063806515352250842924032060516646600531060067615477647034012906688089387279959783362815847603340279665300934145205858269722492934163560562167015058722164559824526994520041177643147283016057992810767642628212358371400479004430733271834022228560551168686661950734234765610899190533825003926087867539986787388982658026506630363629327335504229347377394832708731725554835309614540024887963860400609502550545200623135490613570074775751482589637337001103821377718660732514447100751646313082891701920161212667744007383980104576127596648059491919316784104105007280097669404452287279031337226266792548182128694899658603160090935024467226889388543720223719318562599132915061695900727548703378178991746031667382767591867149746085300530474757041683458063867783832321573141799622405199709353837029500592500948149165927979262653852453618745882442130212474088754305342854986553053175502038460120711560049143955089511554290791378248075395656656005298692880605250766965783352831085763792422095475973110709559105169485036612850381301316676363101388867818414334806911926681243990801216389268680411910648305315384126760732753216512554854452039840072902662206366200795622379195930976492147632843732345333119809954260057724582677177739265751600680030875604855469781979638865349399670421766412872523025467204998402082561921492001140132841768668899390857243363293265669411611674692582200588076836472720048511420341182814343782202517428589822537273821792589281895323834341366267977921688547929078580939996587584132769567894227062525895779962976088362820043278907185364912586712554488911391460117081910212056744576296783570747188580725527397251517090778179281147778113221210408430476275160039543519650564082287513745305237525592090475988291335732521652768844963130900345492634056910932781413805528409858140339391330540740997282559298282546105433104008024008949712258056953007930361072919214282280324896028952518176193556447509386390226087988180474535151834679242064234197556548918987726591990023075521148688095080262360440771697945022121851876187063064112153368600452118950765850565229427679848250174061195109549930525297054933125194313539934549275693170108647034926911618629568844896407610276954750114037626929009407312247456048279407213166760235309769106396295388983526514930221249705554087627700307308423590175732471984280853543810197298423925626537285497753729649656870803608101824589580178852389544924407021612886431967461048986783800165847371681999346030901574754281310602751158509882649770800211603535169009350982441312433688614082973110132465342659068884235754174904841063434086290568789895797435150350209890740284697180151774385887350985553692892579878480459006690301373263892632142816793040459372720563342217698563925291541168321933485363009395957837064086429489775273875814210781794484963559275365662376643026883345475402420872026126542235018669506942476971218718071403661637838582453195742317196769272324748248810055784622248382390533675703708953517032376915001251379645769289038795872696471058501328865338018915989160284254194555563453890892253572174144131758186980397221600086351828925299167198382890615275252963282113814022327345165670160157805470185362207692794505402743167964478590055128190931299324492960574410779015174132473338122178067307886018530014488988247441342996639633398893357079898588188666693181684201179070327101762114167699580391148729122732474439064787627970124352787149162530655141039922623316555422070262734852287659871047925501862301504004213428818920349788260270440882904976039315511372671524407824190388406037164908489113827539545491250399591062107477349616534080455374200992825526044381478827089626776632338003229193304665711129615291964690187704328004231053975517644678825617013423692934638665505325622896185524074250944008958233733426182722991664440377396769804797779947018813224181177224615944622380876753145387109016762410534107599854382561461073058148128336190166103744274272075836697419473276405742402054810011123192628825807445751599189995545891480263696866785583326233465074462853396994538233211979870133823035002562991877499711483847406238676248928926934567182727179444108772972203470540358945106724085617882906872911703284149174617361673204749110618838554323789178135597366610461906300983032476396026984551843624516740691974619148834824416728161588873626613081098040373976855487060782733420790038454902369428847394206461334846014656664996051912255490333824331805913283016033412275850911320268271380384063061630276706234984692448848793172900307332334043661913741788874836113244471198803248373367789571754012475333359187558706915309143276792094569270219232953246718117843520619331598478592922454448257346023740236023926252560093119724819549385824841789122654236284415015731784792379926075531259195826137450054751104255174318611919102524691925462035710009270938075233775356886715535351003286253112043426922771347185676564988165723923042347140808345104621894755225987203287982117621498569148911630862082948167887904013900671241923611204956699514646113255672843449007606181040182866935867908340300477698514286437549961757419479997260160444211356703231667376992269983907128821385804464387120931335350253352165549103945341163333107438983411357177222998177238540693467914432013750746357448849015708082460037195748212328790150604679922919274508540443451791186090712798122120692341944421218074458035982803109962527442171517861634417854353110729799911116124322080500206692066267349410632865491953153412928884701838258337464348288484017241357055998064446192034875891672415396003449928049419870873945041900481949419836421746188552149966291455617264727857827017255472683945072986277009714683316302405063984901280712622070294524918924075067763846280773808562002032626398388744920603704501717828078266325979637103227004527254790540796723269743131377562141772817093866049072578275154426854677454510777370336894659478972631470960748082206069384618642315020644262434623808642405654501008790456908381655296137734067496381319983226356731446874890109962792947153742310555478608646815150705983103820104732896692444713583583165299472051808457987264437947367198938113683791457415409361378463691214561911673153892583624673412447722216975750710334036100369589921650414617760081205771577199234722415344853224081470055285605075970051067256304597185570106008453330519715685293363685403992996076296635873433434833666130053853160605093275741430239352304991611422671570057749098271722823605572894219016809308430214209077671525865959878000450114345839046194436936034565279730195033621777405488624534098676208704576608308437135447823128713096114677221421497242548900112297407457759819223679206917998696315231051630141840751476493042022937946618553306838113984248693567338000235041150101374219621058873945556900494228901930984241987191581620837301986653301295628851343497868771975351511500973814716271605827212026674414644666279524605597723400541664103136657414677124557429953415497183691406168524669487769719121496470717672493229030451289675556190927171993531800135422837526189681019124869780332228519646723390079852697930463170710310982783419335739274399651850569706088976769807787127802999329518227734250654900829427780502337343139212012716980012723500260198606991787173235868998043667177772496897239072007998480717053425306425180477728867785774163830101040183257768904819692219745169779793310411510429707585443956064488371540548010390513314327258352824358574901110138761871307801714471372260174523096531296475519075562642113532667826878811280569914987669566447878872717042167689083890932613133889638955898297404028593096428810405258048718814572221832442974536442944375033894221809005896012538420453420812507509290591551678692676989423874649112606734827640560997436332936867308152131332952065724571073624136165739512695134682861203175190391486303622760897403732009971844671173400336571240886002282243945105607335588144845332677722259457415507231882008140115593279896791453785927278602155461180037340437950312701971148378266237358865625204207695713246982499288354977464509066361911943079667831163687795999637031945292510454170332535959743418733936916532924526263106636745885221705177985352450035701678999832461796837023700451731874943954049308761711957577441200688295236945566354703271729678419854892168335910576846033003654910102938705479630633190509895755582614843971108200763914050851244338020605045393258074163426006178765766335796385112533548526421020284896285157989698824490067918455499787484943969122355134447560984281970542076839588523140855008095730043893757254988277768618166796871930139335434242774676634746776440054410547650808246303315483894779171169256708685521514856473708867528559946572810022934469617504384078995573063204590592260114366517716345154405411020814217119126894691710936537537591280747512369783635731568845276871349108830469608737593652355087224810822630646466005954957214580851362068028263521013925823119667766053285052685210843129559310390004898662866324873970676902775225404546586136097696676280308234584126884982924833582553882429090243365573886674212073027066552595471221485702334523242962732226011070360392521547834980499912932056106339291162776983510258865537217849082314404979246706114782630870308396575291419942912774636122478640401425504395257004871122055779885546350289194968233323283201868926313447304124109150271047716535966242975523428288242314822837345808878608083395907887723382598793708880035677957873178646993706162788204556413822057304647142152024350313974013362112645739780847486998182109384998882345811573703795232926277233828779324830274927367726815153428071221413794975674173928661682089291137732632559316739783701567711798114225984745500776342137489616026588014996518500302069257202457736897249680847053044728979797076833169991657008808287858900791188460015591501931422868099103738269271000756381400986567585725129369412041293740745514881037333071282655268525066667273082518225158371520534268303915975273020862819055706037952510356319362275497397646392245453163601075727401895434877111486321472421273914197065179021977324039211973669110007032232691294469129439362624018968860157445420942885839311805076617235694251737255929844111306023252763006798159815984973515359888213421284079696645593617474762232540675805745635427823478274463380140895010431360013587071464334167600131887439366397768405923691567969959905385266970632292750753196645061221337812289846748512826204626313638805151780520973636551998018888715167386940453766313253825346903095011660398175371553009882060286392647651179955169519910797564003811179203729282112183791381478782409928685879639949749256175737843549364910981885324879828270634213608361509467838529442824332113855179415170927761644126244431555123223904829769357924587285307534778729993803267354227707164456257637508919770772065113286094017199489190642581375881635639300904618932510323016396943808392739096626444607371708652811524498786262073001912628350336961016694008806952116724964135727910729666294034309970136087304511962435391619740963282447998694705581248521241415449456702124991423601313107905908191166794962536033161080706921568282274428082504231313884000641590818081125045581113826129705925619933268682686208457294313632569247735333278103357582050590623226132082199939857902206795260713957121868467747617113305198986364950291806249667062817153489881351518665224779677501044024204878144192438923209092154573431750126342622516772148642572304282227943540395192009331759967459605414093605006409760119554652711224073492638080178841376273157425503744485382525788391193476891403836791109363958185999783809328431344779283267430557684845295852764364372332211663724077966577944988624628863298340687614175711063722131685866113116670053909895899433826392132018644927348505763297014580303802040023613430000621979957501354037581815317926634870045344596691705723839810562214687269774367092353547077836375289554869770350967093891442578600125677774989454763562007898874417804088501044471961233251095172935403368338705984680282338874157552836818611116680702406936176020590856638985551061616343362358610897536018019211227718595834454135419725363127833182821857230339930395249414304382808797706310916303689313200639268613081377747731656251393103674184983643643135418416676156648850890028653019785288914265755306599316588791980851043814723974777865966371556298569125773332258572909776390778045549288276830213562709328063269584522251973515438921635686710499404856083615467280296521208072798656407975992318346051247347733819348451391854791957970162711828930977949851966172837957567948687141642093233211527189466206013393092294445565821012391716297652355652389503708841019059875299431986162523669352112939830173463664429475731002949167611853748631873929811206375333717051138683418370316595128227143998522247668856581461730497862498296963237075268521944794566870729661909797959040783518707136419372404686826912049152458806423349000317556500778745787113244222275328810543583812503757151066352904752118456984574015390959014740721690344771572077711169675740491677911761334111262707416798486021104299841890876234313722390544356793291038916192965849736576033137581180587800201812566460373036401639474604446124915797827280232311830289204905956824375509118548139542501021630543354628526271271792149013620072411283905901713821357182036505635436717597114391408836930251656249399396993781218414609027731183006215995813773199993522470880663434916121939151107836258490643434606379129440925127177896942484045136998895003625496045414423905328759714904500191815685253318759542128327340888224048867800242798723079870897376652484048164612912787930896689818616663252360838416108338114961665867547373795963449731322660907884918764056711697267072566741142168004833215340498091903920339008244594359578502016676305982975590959399022942241775822723547332736971881425861163042089354456958382105357168217753270450792354691809676168311207367570048640284879697172664919071761714066854370733127981836486810497123919590378493827810655039640174276555145526079253956709029772024172694528041329023134358429532531337345615653532842252803713178462659344172238600197426737796149609146777496721540149577662381516966265888685557675106959552311084235854357671867444335235889379177821695043262696977661515721260148447679725771347352018370124578323336210238384861411196473291293377472180523723372420387512909516398006535277898521925981934157405308359510365658230477521226533585700733902735591106155224233208186379129134657387917974321344339522254955117183681733099069643298354655000287029634693777379333323390507971101192978664410259312874745535389420872593031739243600766807973139042813262867162710359534974654361467576083055835220328214207593854789961655874084765500555011745330464323077448986666329943614550943889739868229981543860398153504411449570761054448675249476737884430070994317154290020719175281410105919488875029797921755965675785514851182099102662960963711021167024491208554849810442335749445535511441323159543277432001873324561176910383195679564983991337934526532544358637556504831048692572642170709375681618296891802006368560048179385221204863449343708478351656063197384084281738604867023734934766604926429622944941281184902846433326709275025507748261158818008769754300517743911446451273325586139221505582123707643865665774474424605207026268475384145928147118634503783416424659425611800466435681844990511999163245546243661543861900811562463361644902300020886787073347761400309379807155670598523301793835174104597902807253883057018225809433351038339253185406000665228261083611183789636900476605832312451800600680810151474905466266204607423910630846811757204482150129610980489965019761058384260733539308809003830875533971230005539444706444262838598775621327008940629821252550508867412552527526077169447878977394338799785895730487323229717493078676321310907679501458666239431102274819907030811156993951175578753296249971044383165492116568644921072102687559900168078995121938822916673980528025943734112030168608210812694729155242567491431324644024998863272969535228226427704010192335601810906794098079899281290992536593209605356820464793356501915884899964574938936310122121606313408063624729632337973899779168160989008914039487917535627560863845798400691872209805300017369392588642355775203151820209655394626151386943544673653970548023703787164906617766715292222320078996923564482046921974911775974896279440236814129690471149668472194463837460095542631603555608616034420450416240766144609841369517372345156015313950172763323846453840024400315991356000962444706535718318205993546681584121370306657892386285462658912554547918569153449973709770122101018839022154009101871584449312505326267519971132916760197613162127438146409453001932006695960617142946038324570103789011224352636213909235698385494147420551384876379463132387400269740590554316801470125534269172831213443362254119526332090003153598911415741196408602068134124679729557831967417258703590527927954241102980559385302385792756127560665582517447206462201660481805234667610332018485978960933632362402605720293844414281680209985857949619373004635204287212602055369073512864423421379639369296098585628717412214943397010416417437168634974549761750665624691456592399827529100506892951986706101933996638473687829697125606574548993702895508058898974989485442106118902371352841793107767579895484537252669417112838723374260796200630628788660295678952195589568367740029282754965530049261057626024023821493394187088968487164526523596469054797686983094677406213416511661744281236963064494294787612532890570518222837458305510425909430504629631091726827190912304186267821813427921421281523282448559444765123826222469634912744652047583646860653715061040634526982144171432996266118289269184303499043834040184943629115474329069802568802044819906271807549340096472301481963088437840496424454449627449398853659693785061054637034364895020622800467325455102275395050400923116703763318942132588507662465672009691894635536287899095638281866291527962424273492691669815077169025561978426896561488296516264620744755888552822983985037159865118236912629247448347774211971963745484465772754177283398777024618610401146391460254812768388947720344453789568477787656473207480919878825872108124675830404250461003738285678673316263891626016326419786121666868678784157294255338567730484616787208882784777963281396057156121425381629134210459357640379365523248962925097974503563565141916766071221587419385031205488963587448487321133226322420428053328033029472409101110272129000046128173834415752338252251590102460200638941117533860374892455374838652260734631363207270438783174633851822137059816635744269612856562921751027867608897354232874054001283518612466640733282286876937606332772848600662614948349640933808608619135812980380306376021418108088148454422473937949039475500541485626579557567811235354743636305806241304433169452920628617419261322323931724170758924225189922976105202617958100243393394399872801901350821499622009609997388836385303057348855208999134817204724350060077915163140677066504822658221299395761270500597887003562139005564246899673567545421921251367364070944217990738124569547553152369223402407994892603879560152377933054560066245819436294864955585274009055936061921540934658963233703352346233421963088738924425034909258065454059509169573255520285216861570599172910166835054320491631664671476484915607688072742874848721816964342915213977948260029276470129817523333752346297940599502350332080892883832104107479285899779312550357243357434672784650534400777668548633810930622112305007556999360449413625948851574512402559725141659990280465359082905072652694150647633701232287374719731871352478875985459948537044418023387562653975189242629355798374443341844966206579418201694202968353331906534691684312128796689850392371789199948112210839352434343634981137721726715137055732387187340775575627268830434934850398313749794921911932726244998059812039532158337059683787547085397882063940592323224256313387573929063403495505923294145001780970957894027307378717675304775628364046210792502320294286433495881707622592047004874350399948745651323718229379278264654459043742469337820484972933363076474586966935778455963312230049052146475868145683858025469086483367100337906783678415683101543431072053310998386978375236873883493632691562950598789575772282754376300407752485990308658966454509903417479549691020323782767644694561081023992995638733540089789987312674143426409040255939137617247768026363800842216084875941139792026669330977378774417268387595186217304045229485054721698529390344739924576438232402164517522451730038508834156805370189730440281141353160484905788113061970959239451906749465010234953985618066225438415758339449283487361646942430213748477957710396348230504122007431153676344738049629635199240941875053290667667145936813131309144827835264849239140669074342067252956207932684080973757612252232768826098391289102968650603411072818837722718472177388249426402706760430651390509642949723918142660770949499934247739059423944619744923691342259065418035998085868882151260521753155170152996549758064870516647073764450352665734851453648480207539412339749323616593847957494004253796368424290987036039261703781172353331536971298650893083725584926371658145390004093434339129490643163532804640112678362527270098948940544009518662914075772414959701294136832371132608764150684534083316748100969424784745626247058699731361286154360153354439674281618467009213592262958858292724015665531024453150855654091196938730522308181069857579345117471661661655054668116833843834518104100521212392920166171987255848793841617590054508885895076290096997012268606152688375258928266947690755928995518407491118252667119242034750844274043741778257056848906690942281852880338388127344644588927229377688807417420534115489652881524048900938357179492165411150228276847197859253081889415202550240612193955068730962770005432111690165819522204702419987325756214389485921185614224695243934860583366549961163784672390671230843406989031634701959658598368535703468168527711336689673585066784827806186310016560777424810241609005936152959824347348674475575893326009398234532237137375210225568556805943988816541791256163628459842505111821112296983295313020989098570531314036307698367674006154353065213687589856548835119704864714287068582489738028284342926846941306260735529714487891860953594189547431417786987942520337756696833258351333985171074064728436115526059615287972581111399943749640349222012322624473238557258363063017280908701612231182047534485957217864215624728529411723928038339828047509857501305590856092629700283861877380025916929096527405074136095217480965749063952236034196655427990067458196368733384196239619410621962428608936902888768528403415877255801210744511921352259022439157371752105136343232482779324949528689877776076022780279679757571602728996923611248728631906244808826496573701543497558618088919135821574617000701824856789370685322418866333045805638725414589701296123087333154734031028481765899181866054976492815341534850180488741732923074806981220601187348048878485858494450793750888140541133751678535954927435292287650677514742847562521239811409555668955376172107114504412969237157507546855391441298441977858026717844730530193889399215612906176510534412510107897108729845529968069365002912333986386315410521976959180540094013067154429876022689579770471347694418582723021300446979822766017635195173310107983165286049725577967846177061715371107653199115239326773578822052399977150878842458757943681132663308199699343118127940745289925458293869733216563864322697328849390426263915102673537639675363542825456893709085714100776946070356971592373116028135963088871099388522524278190702441862170153002548532253360247829930504668841899867028955429784866219733274473067515625034576934457858138722217970260799291549152859487510153614869112846667326898662633090059417008984943098184715145338647475300475470238961644319488763535356385677367590151660425128252327760693166876441389795369718894190540713834676466095912586353009066254507473824067855581594202115077798835393651892429580786016024513213563884471971346821200727849539184793544639309113214460965287263286566419910940751655414416655182675697062459764347926575648261194096411738964988826582772841577555672264400264949727205937961109592423784616701320955276227468121110971988896728732797595016207953527496374898410337729386869947112461208504963652400621841194052683607554783441411157794868087427457746877911512438711356847801312137768447422243272078947533766633783235260099351402928883065320671948218508314555140873582909575710536802226868290950444491324415325392006429910104935724932882855258776472849786514934574276099068594552571904533759103693287639723598611508646781770597115372800593226503526106759130750438863517805756667698752853854185631387581535916989865911530355465731681595549365544238006195304054359498092432340619448663603082587062975079286367038619921039259385834453985598265363744515371922949964024357095265207826118349379150085459901383847207826208893021322878196946713279540653708710436032404343749672212348753138745616809302912674008148981814126958919472086139106943668412239634791447193666657241222095442698940683202505635613550974898902765618763478962064153844148558527472684667554282294971451638475392521625646550123409241963464044411233109002383951204450038109953423877875742448554683875658635636463230405441663037608201628229018640338121828041055162385119956951511160067415281349830538152365728313495428768596796958854604457439404072124439105615936054294569594898834951502005932008885351774863981341346440892135579622606798474931108502493860199082408268121774433489196304749948765355527467737239748369041434829734885761961248605040203997364404837622184926714219928003211677909603045608457737660927592977825026451700352130784395164544766041170695693412933199026187906744486321519705294649394257536939531548997557471233812760133418681973434216552673979959304970977449930569584754436804007146680359018281548703455446633193513760763671130273418339482075250633768822544868074537691385594098596943368773749910209809843672865968001994814385025339905184483502506651014147826199254012637030550510386368464491453206989503318139122886244623407920081017432255202720699194206698767575458304218559903661483248016310653385358629246089227880862037852655551021401158401116246862654190063144826703428849735221997818392772760694334221923223136113879358206647469237061938090074871583692158886146978065188515909970062237078818546456317278214332606523060403782564045254140987842210238504668760798482374076351895854690188133774867899600483320284187443551442743718687647376250687875413071599072706553454771427431908623523381981568489744630409050365480333112882829053712412112149327666241475106407355131027611073579867074649934755131225245038643810834396727775050348622370552858232373543121517611353727863148640593430634430780133933389012005501225287248261661560166329345810935260617421563692474816140001334013598605533847114795216336762498205932590985800591069498965452317828258700775076383908315387808383193400803702874326848800447056875796325400857604919087526225808973044350227073946188261595270752929899270119760945943032386634607542975517981459788310000462295900809241052003909331436602422638613877734490079448385276868583555507388201886348116630598567077846370493617090130741168051930643177438520447375020510536695911184700798784739991725113177175500039086233498085357334237060172571150539186041826878081951210560436733359127041046984219046545283808956932238570164877744142433206636958786275163459103994901889625890049130735731254334617046046153033952270398577113505682510196445686449377481148835650876323337964328262527995768774289472037806566743211905578579374112303725191464402662652864063814797021896451892550757403831961639226626642428198812646104314609300078884294504760946664709487326166928999447207748431767009529926537558585499902341936217100099528763475500957597703547801235193227856489003961856616544622644369347851117235439339634220767560091985786176823215799669062151331907471295904975152904251022169479220813762964892314500583154242296511642627463741131507370927457983677659540276753589495734840178569383114145846284562102833339077983190508726820295054910795094938111183005134302371083927575390550246591134222954861879106001117594951090435632165420575847172216476822380910130394532572399617146560775294353013242502666435020375433188818185369564695045751774975499186690608604716594085684879276012282058958008568904669797191164621871629646943251438371956232565975726489537836191047310575443488051625223518520224141921372011804772668258926835844401817598804476838491511083114642594024890248318200879717055580938094657126858448009212657688730236006167116414033130965507168439060577967774075683539438361199971654478237487793976101128616930695620523346431134057201095715047624455746478315411583846704675310649807426539031870319979391547595960147949218318715209717164935532685322289545751312642211986386761111048069329919067084097535299775198199949407555486681937155360045366200337656601219107159506634458645731552786863339382079745856224175588953751708324086405503149847342337010335729729077992902231540349170007169289195918822409568352797136176289606629032041669747340421581311734983511133866693002802596191918264348884330881624211450366982662669140948356238841361970570894483419706872658332755928222815286980844660725178833625012527396611370124922867110971979139676868580029707083964281822307798948636668227158117930313209305373134358696426212941652720028710160941122647764132504183651723347807075613429729147280766203079712088041872397319590430993539935996520859270802164138666566877634129674132391230125071767220373420370177351462039577463930316012251338139856896220047416695360744883473260206364202970563591497451862914870299747069938641359099032047863107708130525102266015601502841867401702924105172474121581699760798790015734996884785080355139022248314771990666464143895455493121995941273260781516790137122394576319817604416104495582991440474229303233234224202326375236652069446292227776815426971700963205655984242071201900977343132461246062982948003406606578384166660001621848808311021230778063153611099825057130824612555996206980981063731962531577883533746151748459592640308750501002979578036166074736110520009512060923173334148528955574094201100283965773386813146663308299996099960793064649860323329348327321538772934597149188175412416237573757381721592591077563798564860445771612090937597017468469008105827753003641066048109937376982710972556748992929839742606094396489707505316958878606632522012980256328150957777622726987818644881339560617293034369042868057994604948674046610389443940603425560034618999670529422580893908936860801291961933565658657473230244312095039740142721556826774138312334919975307344416462652571035702476937718691446962043664624827118948211238076502645952171010117296230860353229509414490771643491563335167708019147217172486792488694943659744834438856560926881466922949542216315146297492011561901693479830442191329265982803796531538549102513441625927568867487434106188484490731137819598364921356670856567079966993257961039005466194812032876581352249027147170784746721795516103202449627411973129784968074387619753838074575509508223719198454269926804862624862568810283895434918584298098425125136908889299245135165720715621579353660759131946657751199150443464828565950772447460586307500528727564721990199428839138921710323005228823202313172034001163637679686225557664390445965506772159060624697732646986344822941402629805368429346886928092773053994230533712616951421258940828188002972005378680589483551615554981100151094049681366780364100438854057038761527878266998487175925771146791670409061692241282066465607085977346017619110524676466583829588152809186175274738269147017597498821240778582362786685229787926642912847228470036908913077104763828336791713917614605078711547149936536918992327514566676854999620678685502553957509013894430205519686744094984476590933298301533238342922778003164568267747031831022021049816027690079659653914687278253336844857254824748073532230376257067220226210822937991933351507281561804353992845821175537058403362639020297974874605689783782749446242473954706100395930126795846922272925908898459014795732642666201244260852775092659589823782388172613959799895112780969724281037538105183664588973578487909912464212469974207435178162750918830447201426934157355558808747735113376237727405476506953150807765201814333053614010412147743875642721917404447793470351251434776995188721165632128018011147504475571074039716828522130432435655220604797870028985907900145218144300040129291801275507431208254303239686238392499926073813967843700564353637431734817876747956614199006879449013424471948164408515651810916973597923211681469246754664326848160404018304946535702718715723182163806868602698756080046066178134537117650970069194077414789424666852353212121398178910712740249786560578996663567087591841927503130107333168490611993505201207311054534356540307799549843978013942570431916523220542804158562625356142459817813876252335128085263578648838158415220818737952592024282120622046656753376442126226606912381136460889030575561761129721571682794045529499819750945685939298313622015977429526365846829512839358202995484942348576588039954975494924097433050680603247823595281404968466669078965270898210523485734470049832088670390107171473906576116527532929236394246160294198322197872657408688391705659483784265386074997781221847271235331020243033325674918121457500287650671005050424645335029923942494938328728121404433117834827203840502313700807780475774062453639616665041815026133152940270907062491787031869930629025628350653234906143176662789026097479332070173568291663843840782375608130431062895923905634809559273650426299762959816995085021845041485292738447228360360517860582969176034246007449656209825506092102178065710830746403439797195850809901595998839529612390916725942447047268153578015177932394349409110096806263252437222520000610070448118762711784646863393904051128351605369963589172565598092265374009335957777485009136981781068125034887561910058544951473289238103972871234472295998069033033722360622420227303826101672786802788610628848189139864910296446688727510977008523913909762745178333492021974185448002143021669886608850199110100007159746319929347644311686177217376919889784590193983874775864116684842641639495604372759063531287843657189436928945483844778045267496650457979515462021339642612221494873089252994157635271189707159097134249587049305808836484811358679086284282127171348099514414709988933701607508545746732317211271024031469084349569310963319184497506837766255947372465332885234287881305899272072294757145847562985387318679574473940896827796959255443228691132954495785418143417441982333995577773703180157864594512055241130862906864647211915642466978506962382515359922096894737412236211166104681749542560782988292254036844708903308122338341889743075712359371044500664214911780946934008503746693698685708150822020707906474300794678277715787391370881100141111300563907096336823791158419956478435933582878608185796097199406191205228531534381824750399161450308459717736208989578377945952778360609687256305046377342126650305391541208257569365128504265564478204239388029275984644214773715095455770270331127185585866410596292657169732428911110353582703231146059227046297432261926402271780499585336189647965668167735409582498584732691555681936848940768300074140892149782312273592139634724659925241444156851245563071029748501072902481764769027619901370592355834245147463574881139842104210045517199542677367192753189633746850521356889779441729784194891608904023268907544099099706433185496122359256212349791423182747308083950981118714474088928214710338500217279530321376735713542806857346264621346840948127487158018297706374456658049233542080535084274140970571836140665584033748075849366267955323190753178902261014027632982313436557702960259004176094101269203817641278739079282619483489271035268943096990631975445019687977464116453600408411351779128595241396737635735284906341701994932183530658005877432000438855717917478140291754319241495557777500438502741280836243701584280890934387653499502292925488160780518134725056123724909647290316366799870859073030160630772560160874685168872279273219689880931184637167270026718642300607771510500717677526110231776613040248277015732117701021153232046826626198929472301943474107892803558538987163198435497018879931073146366348127009835554385428326488208344909604522220679772246702867857852007121697497276070258937441548341093868505353125385629335081227718291945215649378021793083910244798400888644643404271447859937482683585254363655342463776718906308998405132503226747348876649949512250805684949300755941931643595856876209595605071878720376369746486762750616249582289226290586882091084604661327853257784370122403732294308769992371525548372065848913864582278683797625536527368733626589765706462381094087038134862809319783843587560046468622437724986483822580121727624439193489412137294037103781754122450542088466855151229687002491353642327763575969889824521736097917642685136639873692614096425210928618286889593740455707962356821734902374742882754053882869167577133077627539710162900901977942507966836111873352996522962626171191546012645242768771607828319398811917939714769904098310759149594365003113691513650815998781298757065973460927047959015883315089770557952995684628850047154759088494499028806707277821827768019576253787699937209055221772338465475985155351578318692967397483248277227776604244934307049447162824388220570935083853837285392135214865269195139745155280163585348643469023388484429851296585038321479915497441070611890031826106676038980345741295992237791992746392689511522115943613131391067892073387010810305711423979285875171433611324630709066764314020371391452968568272902874984636549952905716620476355236150191043751284724049604356148127516287556664421652000196509600347448797767207923877943019105746493959656282605764649954518449384598337595647511352198519699175278194092289426376145383452856978453616177794584299312612305519174566704746787982126752862499478577750268980701224866130728012245044451698677600858464143643839372295558743903141032963569149461169580794060449652822465620332157495370600759079242023640922641198092618251730947828411760317800326137464700798077312021925792770188973680954155153198143364043923280249765373046781124857507290259765469342702374795174285898262692037304187370107495157505496477098946195475665803492671666830873752579090046576654585354432494852887147077084014458003987736317422990241728256825780871996590779535477087292031899595736832326586629755825897631027400371067462174263169195751183498118338695626082804896365753237597433386770364883587492702386583073419963075597669060407507270528054256291660003340838398932280033940991119660117985348561497440926346059584524489083634144736970344766882106423624125692706342479288549353356990769092855655572082084814241390287604456861984539716775014087975409342207807446757317028931119586290446455342791628868559326137741725789134844066020530342754011817773920105462705841197019905141873090115654130212812724895943344925895332695284138698445741779889814880095368830145026138524266984510494595701817734636297933101027476292816961874144264658686556616651546816593804916023086692479499992498418513136626458495691185477418522347626890709317483559389120017920736006341048898630499172730539568144839791939778672841561730187684173841271871279215754377365084073741631212975182082060495273476815419478396373358716779213318870148742815469953546295559777409779441135969048619175229388620201315445043089149692311623448459079560115314751113447344896151277410027765221725492311637049414151346774485621598879139478906190606098635370595328618571573331201335410650929973756948018316512303407116086222914177230650262734431385175644270139215434643919438020806684377436219016033592367325015762360970788371520859923960323187604670024282083875920952812261414059299118009649824166978729331613028659875472831156808570350066373269444324122144765091044115070717694098390899643449483099040574411933737547534879268076607132556625701381265712125487582284449561749613988680372198746462574598393479339874247657692545990095423520287771889425463522076986179860191880805337087362686119472614560983357287776529237425758673128490769797181985291399674782094940562756611587847876161050186034204515804452922359220520160594172451464238406503457528538144361609179585830382004895091797366768326187337611138609639027889141393504979211065570844207244152259969918137810193875619977197312509443961604862334521480108126987028231607270638301845640946461091741061942246860887984712475313897787226048620133828259466916023177678985352896286355591025844847741431563798129393728104048668665825065650266425054929386102119750649890465874872307654329888977413833930092052138329838644721812736629936936817389852077129096795459463726599214312779938037210972079507633777173155893792819578298189713885547675877048325107192706054559185776236034644734915103194610065552027200620726340517780016679344452688091238974810178594292597599986477360729472350873086596260979060223920212136300123229633216226580041343416100844492809734019603858874178364882598883091472453581740829446467069211875364757435344472881176155874194740949438366419359660855564456951777110779794768780053531303169230510649002179689891302200209256262154855566900390193214080994154975305847606900800277056025774465412581638476611014320311492276698823092096422284862642420938318063518863462471531409959539041808167583662926963611188106525469554801037467959356742367763182629472121390577423566712350839005693540077698281894507304531117916584728867423550519779530497038049233823832455089485035883094320466548076790373675441252407849172058962138655018856786782342838043413180155863625147242082740000415343000112154920377236236289123898609407039891891696134022852606399169932958541991273036577969950984324799932942224817447246818564615850272221558443789445511454129374425585225990418551514757454466740805111395016115073854463882869317435703810417251480587137633766733749081394015987514039121765688631243074985909118675504344042656579059022587598541725775579962452873356388826192845782654387254586508111033490305329043919316357457636440552339498172245191625645568483412260522406187640725229380165107664248901061148425225319508997760116257689549172044608487113232477262793906032404389676114307487338053212247077599402624186574567204045556625046067051555950375413874904181739815153948347205549595677294561006603738300417530473492953485861672448093279127711599795950358891175337059120580449718447434598308829954740341574964182812875138326581308976015565543638046368803563091399116755888681663489737385562532688128808992338480455087502035141754615619286093818810364012660446783160156024564598943596404146492417821960213525756610617966656323778865762315838918115524461681575067430888341854014265553817000908942062393491289881089550014992396498102885451600460808915969540527516769440926912276484347722774408322203517416200116522790626458547037899112099517279337380227583926325590381267271387409109221901949896062987032519851033475271595244865133606419720004287424474112727316749524557789460155972968673075418420345496618042263553199249769823405624216651161997268141355856598973353691590208942715111048025416053642955610451319448526294842326887281961242444557502826912780057840929439444999836705147013008370255758306468859006151046769513689124680567286624941847952755260565120676324368962475452035924250048569839439643727296453866987193332881391781718296544811267214571132007391839420426046753921960418611687252074700116761965772320431999030461438320652303548944874158976195797792168161877188337248272291478750207739258772331381985130102056503937034760889564639066917205004116906466271760932710346353849650996950440902374303877345930513287369247964965814289347740704379476136903967096366007583689026105933068474164034453005098735262707442853846821178398324619082694370833412819571213796827172367283379710044126338030483518986719741811710401046083589859741450006562718893376523644286149932709243514513354900536046247931879708706158586968056659835795528672465490340112769123153542230156255364985702845581807086859470733639338260394792150305317788030172740733675380988580106295571111094086900191901591877660720131860525183175710892895062265608081624004109993120033346719481124213965661392752668106825275443173795370642945985380077649190704332368983584782395742015425049894183757656544017379623693041903061292609400319383043398204432911890432913029309968193322246714874317181764281016183060067876279910995108906980327832603649106649843139507182871450037624362024305164929081092794071926634865021303521396036559250399530644594730483316707923271745030387250841346840352070747386569363357721139099042935708610620755256571603416065469446085104264883938619274436704143529140384609066320905806981057982064066802363333131805620730581711992975341442500621423570272487674171006271595376375679451313730828496453234637487767051440277047368172511314326746916768860422423755298856825555868148350169151962572680148995773679271348538670909445167435475374349805707263904709456149945564774011723326453364953725237640420716214956942659183782164781371612840740585367712150896167289872533283967877128289897909330285924982295365847378063697606273460026827675067791116304078324645604259760283464539234006186824727103110156679791678733956726321321699914382576990456465945343728805925814754220373627558938823984501230321135643616042332342884435200771429760810433341015276601548047654317994749717401003348841799695665136334994666984991414218232956820141419603042020511008238568360283428429192864020811295223732621984507144642407669820092875264658305717801169876747254083495934198685617318980173088804098553065469904296684199786105923789545876918144417077209864400988465520351048530217862990641853543544637944186635527874915747469129612813538767318716572641610361560407853710751904670579081566650004143050022040419922635493858527003435481124236298879482132729559499848558637406244188835383414885765033032044839361157579864858955227258524608774688398804880947039953540337142163946941384513632083184758830373250214580514475557053979392287243783699332182197899913618728487162726231841971998465774331317600842775688995206521587482988870807995132281141464571903396984194755390664170771807840887364430426984760269445132550058236972036117102941141250560348728848991079478315170453491243125964113825496439185506932322120660271723948161850764861892243879357820697291119544985302979194259093040718439997892121452301677134238423224332379212707200106057932845507790479656715544357518193299843489137587932632731467637690176451670897284882951758022624343633048729856742534925517655412129514678286548867976375007138104788347818417015056376252935745571937184278890887236555150412864170181528864484878673766373376110373155634946496071907606767441666345552517585036844142594337362718148862934421279190082409154213627754520746660190909805098309538709985494998408043987536173620089726503873045935822935421755370702538685404553300571040834153439140043707257534754545121150615929253823379281032878927212473246950910461288992582185169883085191199532119520097928322689868503110077262141498532263216209355625689492372827303050001618132220433990960324318771014454113135755106466459385669162926613199265656727955026203034619563131313350081665885518038462999433651219136580739531422208859197064819957207383862025578654178978843636381097413732865309177786405623886894258778286474687670337942127013642738806206357589788647735511651554916851711885883834774845137160932254709114417203962236509430943737574130476244264894372116650582613420854317552009069085198443988149707458538645224276528597957808846255848062874703289265606417653311379307686356988747717955996253839569141341051081109780416909424678266450799051390222709624409274132683603017362111664289709878324702327197692674723395673209702303921708846307237616777547489073066944540188275465524437897781221634457474719583820175992001695539937763597946365555398816151293993009669904744233499756763723127441805072493033338191961037100018931740867962277667041007764171993711979853130322461697230751997578005507913495586721816024684023275352352712702915416441023582876897514647314943311167790586723177410312963848476606218292258346723029733204787142206481368681708232360694273132333810842500934752488646555524995146807959567613322870642984355611387026003965189352834319443629287061808158683233183301038507415204837021908656264548059315332597365559782504034201345928990978503768021028476735861498617622182627578066217284363616669429764360781465496466698107424365896921543420925713488772771520175274175040812764475876054143435618632643029576881822498684294924487270609298731578684208663825646647315132265566337705270557626951050420105297735474404596923297780688041350446325482665342402739338000691654698566907722199449390254733270760227487837712343508764576255311270717039099228136130593585057178374109070619295919063913442022465106655740445457139252949669485027471062812729931552671727488881932027124091552949806578489454580072915710729806263686146573930506741738794011732473388970056971359385471300981941741803055717560104215546221794061277275544982723815334550740784680562735596427028154051552880584937249190668261894831830576472898531259933173026973296780995095912966216864893933590422944508631908354519325950269306722209468184324937654589105206253670652681190404255200766544975982967717787075297870699125686922167259640527508567142640914572117512137262109083338007725419805813261227241895487512097039894667308701303129596119330688057814986365849279829626613963177068679583304695039834049335939449730056954902951922553132288645691934470117586528144504625471643377135764186004791310991143368518601172389922961335210143059597568649309481425320903110832367194686417389870048282290835865729925456475872175028626952530995030534768687795280648950423992127593071423279465304740022858477536046802195777137197727064529261729566814482119499673115302274853076889788009225151408507091202606264010064262348765318760103991952996065104806601863898144284873081053903090005895131841747467896143017344856936111134827503851177877204992584225109528247813764548502491647472282164075136471182118679475089635872448189478733079625320287222973441825292149945447909812657464151613279246120200243015144735731301799871841871900916407238979235012379429983048737292650762825481695398704984905406630151275643802323644727195242630372975875706381666523627598149011911188920023383676890826668577164084827451841442051539272102190884102423831210279986368391592920176137494431232023198766706149935537749401164336512223231278968304185580080363588776529793657341869970328335277561181850663141440791624141959556041368499556178722872154291566788827868423081052677397513559769763574229824103412735833714509879131541935373875967847568005492898809406953463903705396632624850207099518762748179854131705078615587043573738717108612441642818579661105993911161451297715946381129618964152651993579724976686107096121213034185080758251369888192138736928241114423040880706443206138209156737622467118477367941001983790495166479316460655792333220329159220138733961265681569317387667761489896963243799036418041492009277966831132767946482672706131328021437519689493936141130681632501710880378803126648827662291354790459794068174477922021444298720021540106337756778448207021507226373906862299050282392499016280972690888439536056306216487053537253261939749923918579022779604915725872876116273138083245636417839257144684479970382464131130346817317801409816625424225690800441112883090403255972541264562619595142479915193945870295156072880225407147189940347273152125747697922005550281828540665879620096452106834518509703446095937429011132692956114524892588266401672125681703435312483205571820012728357616506305029331940539553559498492592972961069544358119199411803397193589225793975432471144918221020541167484371775265886105724055908838006931702225084962144716033100083007111366053287108955228794760414465726372333495946124175495958739797469964680810111295380226303844489813943736439582751531611700924035787528309049024701871558852095170012379413950492639521038156847531666697573525250632701972367122975247239260495170117316296163968008945549078439527500495362790868628796834749899874042231009910294929052776858746718092248607865986251483039331023113977404286312135637745188444696535739198156973465786743313213608716481340353312202419995056567770028488817297284116127101236758003346773686052331487320598171571864427591083580399969387038610351235303721052191617883722611480333706127484361858865142098399381626176003833743702472589428257585284218246083344761858096373834674834001415074522921102002081330532681741356052969205663440927787886425929971617349828644883632018236721370078286630239460351382196572673296224136852248852508011142898059330767088267944679751254153934214052778948584518295987853407143736291234121230922222301901966123569637394982760267836341061186624658319865436522290852927626883637396211333110118131545915861892144521514265503891505112414562239165842759393400718413030324879977952771497151517217303456625573135288216986297802744854759922910447951074185451536249597542501803598718277104565123643346902761878364585789317740608975069563406660322345347812719095712193514108708584564494121255966689344232938937432968125641412337925333405602240573206280786107338855567218558737639342150855025460984928265174220058911634071720572528073768307222401185717531172185516771625572949324414197588970236400581479957070361527078141110919214416311963601481456507018883089278931364166222810516421346431430902326789016644397388320694470088344079805973312827711881434076905160391212319548714076647666404451464584992732439007959766079697869452575444699004718155630717190184768597019316508607222717668577333465329619052030691179018300234247606849274347187466991906762663645704539458463926453003596432547524763811424741994253077743011116510948528933656913139234810476335710256587707014678553443471757978965204384794207596539150457015281911042596075725015649381479443393388129485250456197967683473138411453413315809469203628777359542348166743304479690874725772368986374062580220609671629879583191379822947686586584311245978499653921211325471914569545250257541441807324781459905318664092147693887931412777824180483854296396182888557887708074699506494704290305564969963243002399340774966264008569711048173302518850505322687860886806046208176635839994920742788958177084439461453873544843787832431900018838127006900521547424574932708519074523211267708954741304307392781969433444885339366880556273015265843885421713771198352447974252789884423307531806829235866780586098858222165954194778710555712030203961030827314480747940519047673694197119136570986951897291146247111195692143310249769972204293579179601860636624499872246283592182253510139172404045852884629405996350046267707516182160987076062588768231276760408559692175554786228082218419647030055201690711075975824471670923522951475580690334106764066419017368601391110373047925680509755323470454362458336657760621376279151230993716167119176665894737658010947445639824267450884640665410146994550979322524044360254523077317619568772437167224855598167711712853198980539517803648979369354828933238632839349579465686375714062178681687805026059325656049131231541781623533692780069320039887968285804487676575954168697625058072017437334617953332771371042450136151485377530500755670504257283935359669729964381199840682378785796801971699860588447064982566096820565962038603257168137429311226287434694301769997859817357374376536257332125093022968990385071726409502629752617249648538885665714821620857639056163533566003640196021390910591943720393573253290327748678814746146011612260179388790126270744250769041734920892162135824256168988074075989580160586045555050745927101563317405738975424932325487624438028581181450535695579417274542555535240463782128600232401140149940579272928242773759965624257626327494862750023889594787680111209175075314705274687626537118913709869338386598720715519621316901737162035474775390033231566557174979091504014837199167877001151625358012407675292560187959949287696077614578543907510099442796143675230006801848829765490577606846755455763548397688840604247805675627309329186551147834718259253043549748948787979100111384713494180909639383283305822105571654573690738578049939990867714094133862327573753792528688815257983058759927183594166949438368071413532511411735072274387635477220697823131752778358195424031423323830256437614361782900857366716594042590340166871882350967398935023043759926130243585863229243387045994667039700260287646695689522831985936769186651874906642063666989446369944957279159661977475669556386471178810350764522293473022160154193254449638506307242666021161905801195749585617436816046272197318751562175773136069966856076680245959248849934260019264512952869569179592952951959473471399099841202276630413034203958601726507500985414055182445508849297157483040187408173398468397824232874744939744039149262953634755057266382886257514682599044711914900025710655658065265067646184621227363744593499629594808457653683674650654912396788154476088902456746823459322396890906359384133497635150219532099072856490377663750080828724790173536481137523949712817979881969407767209331665768748765475735910481893050471432727462302816539525830271057285503607083751921860555870643038864748927632400473717997865671682997822114898156350388747169268700038505626986335508536594644869050539960209548981858309026593217432586073276814741511855023213794515440986253257396431596768348169228763279166204805303862055737059025341774595397198703826533015857512640898912456319308507024702687740280200808460740241692818071245296935238832533210203005080312766270398868188308515395493368566741243382410418581818557690600120877063211720701003585042442282081174541804627762323704130584483137105063542741389803177752795399343772181005983499355301476985277100834228273358019759056809724476978920010315889910045702648670528677269395220660413171164839417550855804971763273592424575973143617581105898422705227913390832024687834567436373197147704244026818591074306518635068253905611815014772505204903882282646524702513080239434238194447269936143948101048251843926295556793263795417469364365018113962571430005022340088397501201358626177365185575484649524910131382577619714296834794108557832110096463205930815023817883202558642503967101053877469562321181692803514015168436037623768394769188306950547019150223151899152209969867659511962223566205353224903196717613042995738609791467537967869382891690454887437420936026521022694546590770516452261660670932642337281774280601475647637413785846384835638173027793233676495488545298140542256726652171152171356754997253377028077113382834484916608370459361215454232263143784601476282612850513984075124950049237840601782206902292577697524929242808848515932685744474544318351710154651748872125967231935621023812418209497624805169402905872360412013291468857015450242891058481482119058889250426928918862198947263889568017544916262567123509615229029562979427242066918567720333142704792218775487381675543173140008647328494468250648935146730675929814920746670457390334360330884839807330649579059400882438221416201332271625904767811257569068515824647211350292486465082056684247391711138944000399985430518061016409780449279380278265623290293256979153199198588208425796381938133762875049955575671028381898254491628213697774200719828911262281630534656936976257005471642093712128943617879992465766272528369307882735347266590362331748709246960284839391139836832252662805736413370414868814995023244331432397651568095702484767603722516974539529768968243733655283156111619682113703539859300729857940901661412240338242068169618230196875343142253627617017469953393338928958964824357729066117732014848245125228856322313602287655252970900433108574243519735781150892351104523969505288863442448325471354029109974746460927964291747413434067837803342981380097711682050384902201943333693996382997949614836456009403621434519567184653199633977131404264175272911938678363440827816988902802152083231109941769203212056956842579703352344184474996084116819644831645463164714667578674044654105228751738234461906559642809147951047365649531634605522209839386562206958209245510856921566546484780347403801971239329589293752129028098726643954157098544275079166562258667964827354363661184786755507588190795096693861990585291644870874409414807562456240694230561400374299184873485226347208647732357870692330899333111244452559885712305197531516780331454129029189541695973932889380679766418688683945457480611536384750295439583894078114178704625215231722005484986587838931354733829799998663360572801832679584766593907333827312428897116984062707598406590155241751891781416268413868861864225788365924747900928786314284573574036319851408024316460865010437124931448289469831921516117570506954816589471343192933687689034367810758820343080695997782710299110235355002250427848239866020369963862955338084613333775721025490698058155144461469955354976953879780253568886748777195188211436426203000243545791404559789332721003862514626102670949975595468239964561953202997260688158620929458510545817912163764395007665778634694629646225854410835336846746766415235273291675245291688266489365978346659359993255606444842535906574775552939288011117728323425854759035163079726734989913149857255417782061071546309548098650658089841958471686241710582508801189686340276363042053090625976925070612176137445571155922202356633445322514937919112870873744345612187551609417708347857620581537812561085482178089421711992968369654521940467665661954610816581393347017815015218732724029510670628578415200627159386891213100333970991598502266306127257149177218030774201214089486135023895992670028261022967507427497261507875732035974773232990424345799681875773957556049127185560798415759968288158314567279131561894863272523742500028074388712890210642580952476667816994386875470723832755672656185123646974112451839015783527252696516461848947668450488071574565827962389172305625252227743402514923173170425747964520573207768194470630768171632333770696645866732092075594199378293292026954760473556656396284899367993233772240326803352101047516820905863497423438443250027663250667034056974474080561743352398534082805350129212421488318759227011730411752163371705256487364484698813058305597432463641859690189058248655034908527286007972342847467387311571048450273184525490634587466630848399296836242858814316398475293990106447389345239011806770827722010823959480595426125956645431495678301319045860198506273092636489381164148550222913256513187162624776825334067474638513522873270385106743571128520737890224724644708151207309947555506306690175097347680995022622975854251829746956114755369787679262247897438138144939148936636304630924173114607600665416332214933977715707505367240206438838468611361542867553492586275979999695262017553445306014741665600851601590511779240149885510634896639166832419552253431007437461479331357499594665510186424054530844520167961818063044769308800355483097047436667243375914056225384446745691300390871154012665878937507752513650012292286329570763963111599499774048298031479800951872986410185345333233828403311208152077059063182081870188102140171474808234658034859890741439627958546199631054164896589341205211286716042063746432136251409477332828849410885046745888606774989806695237636829720698930574793436752763189763521969796081247469685286530660470583467721797567799333782232747381675697508897790724664803231357734233042704644888677949471823860016521028264363652169455356279803262020430541307275544420769051434717180693020098358512173442961487789946951682295405839600474188193173149232053726188549033097323020252691203791568435704878706053299584007996854884522853634541665122541302159772886440016392026277927845942538548211653262247442755220688343906209156851383179170349481328323459746732048340024573226845342855825848351727759511716134810074629024232205089824315890608898386609597287767702041812729069081076460318691560303026331381391044408869286644249525959860953925976066049577653114702765023865120518755904698238476046740627046281538940868841929311593036784043386441395473924754026899635283723058566842677497619700322253689433264832678514046646754935093502958635126553728926852686842843491088262997761513704470434679181293294645272222518803030182446422961936461459941596101162632657705163720422232097034154270829080836388727471132730480874979164457392239606898332978769875324046785396504071332577847421911375610423566729298643822732573951257342159135644531126656988653077085940103738932774336139511074851045670434281515688670742150670623754898410007894683176057045492666621015070308624994370564316779632003476844488159466624888895196338776450449901336323355336045683591611595934546468331306229496019650436273931345649234939430719756923065198005124078832460876995773903864780441952850976148018505451281934380669164876550570057815057960029932225004806326061498028621114534223584918788598916749499970130064457551030723868687020560885469296792091167553401688163132274954502222667810500750895617070568473903955955478193611932144358993135999233033171171213776457326276933251906182938640696445478120733380366830963472163722540171973783230764156642182336837911476969752833865237334900493630466062140780626053270189755302030182801500072077727141675542988936217648660743980099023858578831103675789145874494879287580056507694697245327100456222279554900898543311530219311841473779348981879037075755660043080870476743142522716313695002380392002683573073953010712432745403276181808122947026608228983879979695728829672112274715524376835617359435689481069649055810314026538026648308212781167913179395009002276642531840067616716773591115819373688530974148240831583463281566929921094450036628878294165878096601413259581381223548964007962860609457639000340585439998683126774102644628501428379084448685462411076903701253522955528436306169730004806302933241067626760237817296633030484818131439594364205295170499098727295899698061615207426656694285065351694669717906351484203052716746090595825183952978720429506515076181942372168664555207245568347947644517724387591835194613364735909990687035137658407824705827040637065317395134344275366107560517294665025529072712203821340065310184032981778116679677269072237949630700163224135395476251865843626073092572227803962120664195434833685462428358313230626572631107255834522552224998564212622430452313588021119113326211459336282314736788619682708142553227867177022209238491141308426938833207813248005221335409734517427275479923183080088799458446451567686727677106654574732738371536525298814527554871604304686636551688267923204570325841434474885886056743689085481777732507103321364350615618714419912195555773029405087804006382109515332477757595413505518991194180840613552518924063120008052828588425124485607885222442417036963706259293282037256735928929433451265651139245592683103751432086665995847577906469606680116439748874882547247344400837373352845772312914185321608543587157374100982900089404066016977661220521406895657548328447848700883036794562617906748004483186648803146238886105453439945071037662484750966966249311787849225085505706939178640102132287234206864699691502046335325219662033645919018007527698382842776909971449884676471341734768289228324782042034802114821005282838114942935866017261978802257923742752631055654709012692500387613312991574498718054008016837214368592165261654168763116771164286302510665045851360833256789741303667279187940040123109697349155421123236065588734939070857602036433402020482236428649770889096777294838792419477338275833881710915827024982158116133958822675983157535874862464156580992837934437033504944619437190177351476673227863774067162767798759427465071086908767155523440707290656097499175881393988778329827081732552975408212996622174359549379894471690432644319731226272167580418243582892163062583834525708858333985719582949500889382842820738257760421360393291257091165182531245524685223778916542414708366624274109305930961334084197769547176208970772272251228056688756891907631150648504250784488149354140039055615054496139398587249550877711245957413844945826867950673783613784455555607686049329243710032126132055450394150661954366888391081876302658917759699350429847286423043858737292471606419553441479803139615625043954530764403178635137929719222242778296110181652903293279413124147712511672244444024637401863500092337788836330614316563653885251532999773495803797924483630321512267488103482253516961113953007706536203964508175647686943126843066212300727042895924093446816836902090146928374126914585543389720351875888361157093817571208714938369510952361146259285417683520326492807336330443992301842460711851364790252838400264836987930326695209103162325207180738277850606549091709171074682445155696164647771471736154244688466774455850582545107179182278564167374651952718813703644076014318469407574621397802297532240705235297275165930324077724669439725813887281891993890428812332118869654044994734595745232950978994619049990156149041823128492734110385053931193673633694428584539226749318089244182197527284679084888206649294985500675442189206726098891316183258929875282369959278008908091232530553515638414107239877952543990874051693150269394859856435152996308266685401845546640842010886231143063253695618736971673617696012259468710419271773539071019609789160041963921051118149670724792476788131483618538236377841937400523305764893128950841746934900829225015263502438272737050043150596008310770421239596969589236912618648324158223447633058987458992551645647807186264558043334499221427729885573049234312667061011334378468493256786061048720316120837617550702749070883958203574913660366343749118386544303362776256879352686628709978942541763730594465713094551384954188599998676589609025717843472331276962124345834625497446316165739890284941641577896617262400491482644123043987368746039749651290487578011828267208368559241090780855900414681279316112142943008340588833829219042181594060690627647005832170556318642808460918864568388865554614940643149694135515971080758654923516847796818749220232458436369407410999555662551668243505378065652794659013299271338273252843793412192704906479957587204560896417821072131139765959206484825821797505406803524754321045896716069544904207611979072744600660484148284345638129610558924166853701720664215448501529200329107332433244006813056019313755582303158060156526966285655574543962556341085960584207547730575046672472546493466754191826465169099574295114738084501046771030622012710322914451554717657639589700915734612407070340565467428325924198371659364173237933158655834634000273210860341160551005874307021680064612928318194834934684830786803112621728894755178551833104728390275945380755743020753167481587653799696919254642610569889920807660327754412840786292537293935336023980011642083178529334222801710144726013465225762789432372306968087191786727152325804611212541211003123812818071056731758352366856282985227823948828062608481134482132614063842145516212591864718312668474673259791016917244536907913783460787521599082552056824670697260806196056769323356789414609895914956970545015487309087566359316130533762386522834819447629063591482973856712744088165193353623165656711051069398605930572070164692124454933949290357187123527865472785152478305759538028463068433287698205907970072337698974891682269717436247764236810374128374016940193504158105125536250675873625732021394903532234841577228550946551192268076289475938857447959214295553990741440386506056466191121169148534579970991530737612797788263112831939042609308232946992821797207506640107851923992526198617149818102322987362287507928051099561696890606936731611250792472719082800043180741813852356101118006756149334918985265495981382906938505067894781348716327635742577117083959882922719355196797640069435706723351719863642568688527866137133743684236583368582857829276140560291112769549517002564339756872083993338237945354570950845081825480730694312409776761615711574334221444662421182983508469947116990071085442877611732549116075373582055732789027964607002982418105567128885867271222088858690398476389065364849450450880365083645443470734139450423714396691879578925853395799279678583638542917038308207683821038580590978753426903143693824193533706360523948057750295130557353912642771288766217347108203875040627903220900984860129377318724725147978891221423827702573238370499723601912520194340276013006111596138495059191085876784022740416521633259079378796193834832410333286655867166041858701972671933524618681479235370320851032831839900647621574960340621533167611502692068441344123607289282086962733759041870235763311263432389283449029471349991464652383482353538237312511231444807729727483206305269202153904325010793801181212898806516212346991312433307763159927944741557917830584310367364178560797166426932007689399955258916832962353408596172502572401266539623524735547255868526148328521236772089537760846591635328991324615921616417150007427533021972666078462392060166331374907114420305348261715566891731424460922757814051179489542368307602308539935811964649791295800946205388616954822975549509593039523013550840935769485971720169750097336844347433783729629116136378129801162790921788605836143137478968452847582589354570980825972445677368830559680869981674741685721699110496484820936943319098071960332547195760115661864743545724407223544957350227635356013904229774676215178787491182811592363442104349884143201869320657278079137483097461321810435442230257785096780712932981403608753684040704465593493469913947070643580949143220471573918448123236618878498909420225173604010213012845019570247826893893582861075980986018206997806536098348770519105070764407420876489832040055289231838181724346348109147293295922951051016314735647699078880764084122648162863762931067029404876392674008270718024166877647779696299847295627091691153755488140459191732975739903749193235741899942520776279938737120274176969090103646186478295869345745718972776112314828384563781599746853837037345993846019673178760064289381546865955170774081614917888641876420720890904319070126481000755953516983481856734188620141767895422293311673203290210160578823654013237996768141824044063321026860052021181312055742931136485270670992683733317362038863230029983104812588592339409485725753030343501085184467891094823802582728673164763234763990020575054117385107070490174603955717454286589570457046355191581377061450000824967197177123280240971214472470898658930447045786960111392828906960071489400987129499218028968113000797170525179569505128409433036861924423038293153719203922213842492620404981274463621657841345376426157937503620224970632224150893882537425481136580461361843209090755620502699710996664547104889680065575818949674808950890124064737748803757553793708691228832316971117293899235853490797751299240816021693913273352846393758488228483604822034503090047840890360829385749116531181622364821233041536155406541831989522675283466028209185285644440959018683162034772336304533150333157946802247487483100753212510804818509426660137341549838654646174929049172641963472672358063213729857617107706544618786811286514187311160728825116873199714597875341226254061857796069445110775506904375660846760447163144150123752152671040971112149366198904200590280595822842504969901175434910993601374980387538522189213574760317861159024603712795196310949440979629299949144854384843114892031545025587866179575067753021734771668330639838502914544625326082356156536000348658122430798447010896783017205395226750249408053411358250428013499448129687477565479955256015441130472454035587301736607860821069868232388184305573957215357005477331524588247426194260305904272946665676450607997882712896149514044356421401884616008621917689134091830233969692919362992731586695546507714164581708097096255174394525313862920879780831940764551186601435948863383534972902447777924046432016339854871526437394082853787311222285246584372147433137858721907994922501816146679946386042630757382987064539916120779794706515015589467510407281215107413600722284430418179352859887563415741956287869162526893032976721927304708992037915362912903124791198775776513013375807046448879958866846202840075772819635888078823474239148563610119313719085387629314506791854741585150474966588512176764680354774228719020414137165440464355363481033019018653398143557991222307013788029602844257776543200200398790065029371872478863146053178533934944512062333368861557190486671779365877491189217381869358433683592833994363313431076926293616165069433812912515047601767250069564954900026705476495328635456563557890010173951592460576026509449117116989144379400637901254182331350603073206110367246730475150682569797483481677418406158146433736077183409082878135098902648634304107010201805822387741304796607543052962498492811480826760118324966681146711169358655359989521605932127635093092433775051544546308535232400218342332996497747914846874549100162945590458199608245303605520896786682193672323548649638029526659768121945406245033026596234900671695332808170835638985825553898137548336128533073581269871058248565869856685849867414759816524608427041276858282557847673130018538986504399860615545050507311768879964843703210632036054677636840073392777171611522262140204684798698250927753889121011169310749777440300498003413748795249362412209466175504838118294258542016274040591836135470823788691003815346690357233761613122515454489416682599351595099919730294524159202517859190892615463120154470794471261499812502762807925697360425684677108560377998352459425082747940693115421712457615970055978101465438028055050955942846749853894623039127867799667132326190716819396984909956744753184845253896878754963780698084877964602515114852535373093923362091875498987547765219667585035743226703560221483824014720252666962151516898274523548189137902245384506547243703194792907181430847657915479309199423596880631332240910600381182136825294894164066220069060799790849648499584137868216461947594387378471381524196706854948253327853784826763497828136981344993658732180134991476555420966449292557149969851815560783139006086427639237246553302273271863617237431439688532448684399328188772899878905082855417443826719472718989367315508541457156882319478910224501708948855201340041798253628413141879250145561797354330125971448239014355672473682762257231732204804747891765345676966381979276657132066414079951325236314391375142958011812207475984238666799110455726683615634212501734088100562085423989520900590928036900326227928251484939465640369083317873167144445604398257407349918699673311356671977889772724834732568733827553855388098519665738513216143896711123024763929171979335393802548934983398121452818702176951265187985196871869845285457764630570775010437407012067727249769747684986225411277886800553882315154126655900960399044968210733808508975146976775136588191365387855188029197098842525421206009749248001700297111784440200935119814056418667680221344469735425142725686291178057950769209713054164121029910286193237329096648833900040949840226016147013863313436237690217812928001858837844923374774462602196012557113668682425199777833620549970424792487608168422029391282547107116892689669085571179924007448685454024470967419738048163640526610716392496444900281511608830501886521082352973897232993952401889772631941874596518842646084963473564321557476317073422396217374256544376739340747222518610123168269611469485357037419098111261592317949860949725500284103388708826381981104450702605012768496755046604585533502412230530013197434090736520159146133280592293191922406762331541869846288535174184280809255219781734450873079684149024990747180960351211511332204812400919128971731681549599816751467788177652995948397554145465086359281676309740278310989779227025853132028218189731307934736750055355583012112623948155236562968151817523959934497081165825278707773957819549606636091058213653907116211145662036393948690828110148307289849815299564693468200073756233791987331456816095028133959385450721296815148930846115256712076822996033418127999978914802645109277667757739385403710220114118044776178446060198390831327997982405398350385759397388781412018021893425859803882045012859950154843273401109420726976757051119024618311200706066463269463860298700922368330029177027886043276140694678123348520399911662426830978811170453746911361812380199345039953762954665725351244711184765777079458858276321310385953120297622105337930272917098166768233592104133413116128812507519709179807468884024601772340777787439756930866118860206910392298693315868058579902111699155485823089209113019505407025067703613062201501228734201761745456994677740371789237558370457508133733931965519526229629186925383812706811482318385665619519984382033943358994412319956528739857900358773470019667766143851242515042970322594189552891790910807433522053293564121965862369613076909880731795927330218806897822884985503468736964314459685606416694530325055873648106675869517221058896147969135769856818185101034155144637084741263658667997809080247346141551578950275095361148542636871589250809827264116629442475242791966641526119834049961392273516954699218903947320880891623546782584333188156411223817699450192846656781857817709851618776866119597201810252285513156206479238730021954747553198857102063021933859504847196838671460276858177441174098959261823009230778982588765590294336666501470629056893793667444558379571434366640636978365418298060541671007785414353047322829621742213579640665577533118184733159315709358932512850369223196491607994442683982511525530410845390765175648283719707831462631526618245892061141107649867522745817482630236671042852096096180279869656612882146647897831196972406569054687617300784375385978243606829336105087120947662226073989143247738128282446630851724528828513551402710466156291212752859169291743055162530776309953460285795899382337058254485613402033929766825775779843772040824145291870044445772107172117740453661326638147341565492306833181345701599978934077474556159781620217787355070844042675664466018430764624550344656533750242325060729611644662489652812878217662788580070242666800646226756225342022684391747261731535386795738702294363233188731263988624300022914511490075638766354333842215953572968279589716390827906672845978241892146697529595032695225784276515281507920895239637095188406771924607687181223601479214022869623624221925659972459169364136798634754342759138802146413105421404259862703537784809500896815890199913284072687454028861080982530508732243187990530757651715080896709693837607425932310549934336477411646784509810635854584393834116398442345997835388104178307286116350749088578012524623808829865732442616786518905298438817309053191281432542490112619408837763649691755246089586613766772589966916080095645398249255074268081509713387719788779075648245681103702434991913590197464049585875573790882718570744383483247111412494959303683722465704701971385846385496527066852538470403337924676724675658952042877331581351261821502925458720257634496752070963905962982618757985307374679638502001863879084468689045833497388151108277135087298692127740679925996662177952512246712433879344545696099039855628349728504016430686195706062491882236722280324647444490375154496889618296624286798592086765648887383040772412866822098715640481292151239513170333126983214610662957214875342858409926431552069263066351322776732730588499956999332497480368790778076169251311464574209814743323154452292223993665663681745165995427281192549341370893734982230267312047400092011960201502285303927384523650503378967469804328427827233158155427485072165846506033665874480607935582574169833726076422438724712935455540744154340029242407521314698412700947306792359417364707950159767905081177409905018182349078333441312616617283187239859450035141378333730715195518738992585630211543055181883340326130352196071406506532980237720320446621342744278528840170761699530341407596514473892628748493831958038022573559700482488140019009606105121603425736577284656987942108582583411611181535227933580997161581064494332445962593620629369274531875744627953613673573449602275315181610760239721399602960815995270903737745738030485849643656766678956932021956809468092648812740973534842368519232168372453774090422194569097201508309405345059585242141969138290712912460618145942449829015368578223403432274044408927523901103032963485360847841127882941329127927151196693535549637266148956854394214266043553429674655044208145882714721088898973288696003633785534692190732781807954655258054763146007322366178191472406264856993167079290058979829774175005178076665781817047886255602304157580100408291271001600429642576039020698746185710132387940274233666663335572698383267580184582365729198390779606800144072702839412292127767669600706495090251548914637001171569173620384796935353461854500701871084282239448497426588287067481546110173084106494464385810128661237230350009364250458256427252972188281821605244280198292958741036015880025458755222928187956632995409810232377970163345624599631173805870809727235387291418925773214450708889154839577447743751591319886473578718682287469154585360450003457879010045171212896938093777026944189887445566699448463510980938323073886756639466469228218284311252607148619946845302762123558201254317705376578735348538147581091098680942194615318424428941872333110369695824348696247150311801404941346789482011269331499884926789690511134750517206496964175187648050495399042244448764102590960563615842847518201246418010146354414310897996429323580313772695210103683983357996644845823592431844024795634496535817552001541975274904177163348925025048084731822963294037453048104077551539483560827827600463652617916893975672591256798802657339859365739293501329899352653161667526167361015566165046706097174695471070618465764842772491444818329147057693860355883832764149035999469167987592385410160698544299739658010434328387622308897357800367077156496614850392583450807404854652498600331441429127271628985534890008123666441698291003803993277401501951640388589493819339930385829800968290075950375526982009732837001422972234936718617940098792952907872873844995454841608874105036015999901147815561493315953938013539836211241007342478585394489784978627744622145389219964784129702507013504052741715044504345971177756329089383396456070661775740704497021902544403962836002032758896382460874813863064410305798234039489188252598473275351242238883940272475265560955895611377850753591051259426534435560770404518028749676733350297145785367168718076985224428623896625254661310941719329068179429228767375305406323832488739422256415307377918179483813139629433516870155820426703478216582865231696326005985986352105499115662357321619075015666095157217549797179248886341699702014186929702076172779658008419754072400498453226082972343129581018366047591904470766006199780822388825004358806229635534385802114304437843879099985849124108519852890047992452272569985815790313646555465901173965175466236042981198665451564024194607352360738870109759135921566859140185281275918994095272764722551606478066262934246402240249853871490079964357523807574729273913099594918242392700473997881008969802059636043901080840356444835577717761987978351522288850181060022768642672144725693396836500075871349160177240314355192880733867533315942312080078175098957603775994507728744803683411617871187156284024315898581740570054263804982161826581608006994671630942986061874292569527121982225185754938782972545333611816795465408714365459113782230758470031250369166916156570844564126108413271828824064020078979324727638754954724509866684935995272116633861865003093539274310157675879378486390428691561577175298342115601780207872236171822784258675492469275253366848215853060788750417293011105242651585434681403653239330729791380295176527327747763527635966603873460199126025110856197902463186138270065484288787323696554807789173931474771654677376372975049028570464359028285377506829333807413705302314315276846452865712529100888409649530737314379213743034005471785731274866988718906153534696061243872687344716349965312976834489429464650906808214035514274063263842831057291788234011737525320469271747424038464555128490778049816405997906497557347177908489126141240815149560700494280394652336861252425008459481059702576408979822830537662874920223984840423695451608274149706395517475332201416334118169145371859490997177207474868853913279045409712621048181513720440669372021337083629944486256639937075843610956887473348326684576917995778688518925421059225911759379099369547051504272069259941219541657002324437870974120434197354005372527747282493897854215561772517267107479886515959558029907398552796644849038990464708377919890345227619859857730172026929109034977478484890078186905384355167943863350208054284053612131227733117519787149668706601194315806011284959405109469960165549616778891798916624775270932608675986062564106379146794402195701627487827432720753741688256294977154225424606841853646732341169695033220048908087060157443029442977480282093888563427494035733029949739163862356721514508072236079581906339462724870557160842330777801901195272627505356739455219051179766048494451432515308821199715069019279421240103115192160323912621347277781523327622838876491484961164405565319753336755509092631738952432298863420207620922644875231845374496645877379625029982249063322149101602998118784766791011678448552666646619154190770407159542900793608024418903208926159098797595817240000811530521470412357825363084118460120860233502463110966898623311237490931168532442534854305766664934139695669415407946069812888352347428877927356995295066220144711186121590019505545002865316574791618264887738163830040120743394145613855860228702752437311862348985007186125265220293828928020339839603886208576711519036909790608489953839684477601660031795555594161194178439413083830591221864620985210426463983749918155872345233265289629961337613115967716419450050646432705816690673735818521948121666988248842863097902000458497000522744417753574879385780280772913220674500317751115973591696816839650340186153597870112894842387699840015873140800468441674376828576229142934084058799385101368592321068559849326663866619091624744558159328931545397735920439294828105975982687416750466764492638656025075387235390469944392632853966298130591712548861290017669278256382476141856403933083342189083900300329618134007910337635759702690448653288363554849543574250753012945631931949780224880591156609687158750377401618235134639739176127332407329920761901498829411165197270957534154117591208018518208167034992777119362891215478071400285492382687241230387671598920401618625526090093699125103618747898263772022789658667765341407390338582227139707536787822785011463538374066377903674745501286550682007280853530908703074490698058037338850313932680661559604944121357898298713712886604885211469714229166075760463984786270780469363617195574206577970582682109134931828659040638657586860842181316830669623951770061591623176497841533183255884027760143449133908405222449705534212229724139293533242460889174789457229803964737244261677954936362926424557545773774519237761235762888838821357173975017976760269325958689058566347802710798606568025590551010360374568265139582797044495189990018457639840974371748570501366235699778141250216623103286424841069813966191793905632414388117819215130149164799732537983327863871747371816284224356610465054585412510147250698420357872120745431115991164858947411382194457439027418518207798987653872511375462661892755398893564239988076939974838168184172189263987719191210558046590995457202513775193428405890092925943869550018656304727395926501200092664292609916333109215860526758306004365220863228907937493286632103061275450497062713279932609907700467109409313143556768910613606075615363061138686464736216865380815976781300173413296051267938287072455457332729212624802849454595618768821202690570345286553454393442181455518429485878164668293345344905384255106462703078592585180250829900978226724613726972184225465059173382606486182576252756318665408980689045975252844989344221659834602413387884956527489189604910227246179895692656105922928846400749437275641712581597789263540507625070267560596366771209716969053150492040201643207467295167571693795447883370244651741350688847146808818850662286349977100487667338446430780581093305702968275335828707201328617937856738695207617557627073002590725913948466809824375082675584647381737399199154659751270841752037689053031866672290073761056784404934612025115135381371390233297412694800687006496730046103307812413490374144189973133359376466744499510988854510356201564481009998992755502633097022079897802103299665413585175072093677390247477798709277907607135767651911650437860855435136224253446010680940817226599585669997227955947578837841868318144094242581289436649997105413719756635112478117825198838864623936087652111574967768639149574456238910025912537050729306168367515624165540626619445055863012639493018994816552770539447693538713624760772196751306116900847372071516339175443575268171008207397504562006720660013509813480833214956930842403985101202391057534053802532574100015102825465063799788573929253500567322689266046650380737987155987167086341593627461336232275600369084295751449537765943908588447908005567016942209830685273039025205607463623499016700056433710338603528803111931655705385007577145538125667877825088750520203278673764628372283100368510726706028628687239240815056527686366956658579977512733664386897163986598512364018169935187732950777411586466684397817459299658434750697432803268830470910633367515710262974032100299154407223268346672790995387825923237060435762583326158696386683919152641154339227006198226572011824903514787355870970035107194246230184235161678313174735285870127430409579533276278154468733876441017362029591605145004133792536807706485311171991321796360831399192190550633296541103411046622404999223293850865507444515942358086184765379310611591231822501318411427764605490593755469439722333231739314407131457645950332826718857107410218581056593894729222590891479397931969302045279379471516206664805881958960355156653869505238426375534220220761475797633638375894905788576644413864426789189769947886188640895010490449195205409097641659334450817950703962096625059300639276454192512077810080816390868738675207743481698543240755617784691835114036260221599238963679545091685573843441535226243025814478001359082072647548075297581698885757453463794627293250308811194723479458556820772352940152443875585651095650813261123542981793395863318464594124101868548054155366684867953353860143539027659909107787002046999585246868051642868781074899029268664979495237280627629751702478824681197381279142349215338739229285979539070952551927071134773687022321122764373824784967293723554270336266763524928290478785833308408634189480180067422738595503469706970618376322181147769719369371134480667735784278706683580783838017464994494720233192649005990056689612204674064831708609669958772214274495916496405411975189527375331527430005204530846111328294325044436010295247253366187565512544965074143644183275491122958311728425859565180867472368214205791090173757334889719925333241721035283786122503433486048277455540655343798857175368572470616063365981944276971886702013991756064960577953223760931807113017504163575409285588887006784758850186006371309194898742160615564220150794904795215602903283748165031686109375818429961279764299740275870119716000274163772804595406756668122705600158592168021536929052945921560697139495431382232721457036960976412500677841708957481725771903849623972243155342191850110792163167603975249964771029860044001314895379370978925402239669145529845681348645877610635273346928745400806215706127548388477587138761168660990795881788495293253876315367736914429191096458627503197478667077989841013272679154831423588447190236432495126602493621659778838050020954977097330668255034453756466157601753196180844627250555462893618677944778524539961523420646458300428559010070857097933850754428767068647531710713151577968508004052946971646139340354347367242643486616136516307978171877186859375652284519968495267223746522820603681470773848438596132023900934790556255052933596385218360706218276309123838279315328380262687406419414443503342781144514086316496531963011719594505225542779568993318836515015062526989428201827600396855422987954774232823178182537212941631065498073690451282165678561727689005017718863667959907852386387200673346481737018521813767148377695318144954055667211656490365294272689903423837275551938103061409666877593132302986622853344082198104328173085171008975274853295380440704503748081792207769207893580726084353444168033919245932679083215501346935669230176036818131802820309270991678919860452664816739529100882311926708352802116980374930851360089669302238398550705486727056150464291987805052405304545205794397713407920375540983457771727766538492017881137163694083518661461103515435502219507551256917501930732160415965714605105342412050535033851537991819761456698464798747889579170518367711012363027868796711822586712785219665663011713891456868055916621844960927713901204829180240986653257883339869582365643442688349049602677299535609937152369140064538021058444784909746883820367874394413863228049650262977878182550602018624919081720613632955567756014353669704621532529325288989605732422463259735829431667787671541807889541289463503668345957038215745044600630113493453288552287121034427189697760353891859951180548315250095685503686329240849810823795845982722424463884771287490964033967184272346283680745971651209035208328370265565160947968048375884881581734331638438481887003918332283705598785223074054334946325864279924109526432702976463730612317062830568391014188493068552437901384081833474370811833451884397363161596860246837817210968768782886067314373058388023770531165141872224444508577794531913982653452056195369960429925129082341691100075538494674564245889978471385171839012518909765984714866038095863977142448627045309265711999090498726576071267895078583376249797918825805222786405363576066335167293014257276297325150184495710580488916702285576723410238904858057583304291807973622048593470369171536367700261647306642211303973626725693508853809672056599627078676013751293688942132503023824384227015054143188583902171160565830279769948280765264858849713183878748413522089996265518932175983121528213157190952823407335408510037590673274779482584042822302204668771960281252686250276640151259912434716680222123862514571062049521497483161416225514051043345839734722842965365843620895839745925982820926614997746130979607567621854507471610818790763154252680668049490484725663088180372012769756948577835682416547982640626957279942137234646274980169159861882763634535384324055304728217406285183545615861912211069364376627317356462038409483335579910928670865530945896032387122896827522802607580789873395628481476667347852294572721687527166472570618134757002212314451226059351752928046364183326098597575457451550457872848707781513932061806216758784594208359868091348533133946634050438047924773063707433996323536265889087260295667785313637214508873975807445383900934427463642885955840641701634325590691282408508180770066894256091119927314336165863292762423225449522414149793212685542135150899197293670900570957529044196831114344860358807925730813426697704295143663014958694750779800411759083213058619172941739967384477134026655216588754275516428847078755181277049677870455192386467677251077372526251730061815089172055378340612313535359188645433846890938682183529657994727732669958728885642023798357980014283451291591708270191579431349758052655380404883995413103749801439518857283055012603304608476946529597119140300652392633457123549897500633509959060823581239702100343497960213108137999404926342635071715522621647026777642198180421367141425207439576328729872131354362866126897840301629073819098685749953065681959313096433693869762766393823671659330487474260632768681953318190180277666619190762335871682828742183298319039365702728345334605502544220254628855378751500341298775756944336097061941123935625619543354481106623208711741254418491147176477937120766792632330451927116369931854536950740136027237585348519232867969936409260420879793525287489914645232771397731884013940040312032911593338979549328894137930221189760336662236955679574168314896072246516627120274693335976198724886603712520453731034641505790663540833227653143053639232459273613359641620992177591434948035098915893784005503981178387899207344541167303967107743322072915135991554053704486556580609606725656346461490043271480419669750515722928582649594167784389382501768805575139351132460643727292410101972794105853088829764131054444719837142301275123720419856808854826077139109568184883868356514609977189877056309798505866637366596958030956655068588671142511534730821789843302969774585443340595141340705133052655418889597196925645914336029311942955387300535655570867743984735383606905885013886368135019684877858733004567011924708524392173458917169378309369955033894620604666817765513513664003558310703712039431007222693365030415925490027331425612434894740318201633882486061491334097406908309648659784408803303593452297094213441712348405079289920947587733799321950544045837210466319750686978731527652066643327382245757186836095837041325295369712957518893464625713240151274128753947881877271545607807775979841163183342261764526206516203709195102779376751916702817987353731077371813006963304052590514742022401838190057546066039921044993514991497401149558470897749772286262964924491002376845364720132094271785314846668045848509327332983964009260578112928182932842710411274919331362739712739558185607143049206385649061901987226655431590604172748511213198528453204386826115595860262422671074920237050617233977549274535124599428314940056481649539567191271105118861686867930580773295354053871711265330407528288753713293585107067307192605782825419387783960420095340032919363805152202330840488451828468197581424621373039668416061337134995221974322993389452915557249582276721885512913001781822213722460379345751376120709536955451561385183386399381096254047176455627516146328819990949870116037743911280301266738579440049574240522386622115023810603707526126836921256394815639385893680909841825263521952383865449911337602572510503635611317671090186664561313322522376055307414509069923982331564279025102900132476256965189409675498243762348189920944959656592220843299030853971634031295860199343284149157300188270896424610126615803524253728829485759636733789687602687809076367100062403280242478631381485290474692433302970770765952004082618187696882036431565645462775702416635169308874688763731919123233724177316017270066852558103977507319895636115942512713552537735191366975785622902083908264308526000463924493893644109351261669812086266665900236937762113029004961276629816739864280014950762465751462283637502016364594430127760885950081502871839184698138935896928602681458849616646795283870237069398374959523221756884439397907418043350818368566332495545058782524659643316930824180262763912766262289149136586682477092119970530025367901325558210687443939714513190257194088492943247061475022709053761059348030039428682021941150794662552496559410472179349705063719894713011213991280315761769351361028548977438304657656402349131092768735757000940140951729697785614500459139345436676892136721920312195009709600927406511435317380084821568847574063831655037262275558939989236796582565961607365386618514011236971645649730615650693261705579246122653899157664636784445513587698488054365714767525191309374543523229990762266322977502070592322527682073030416453341218381679171516880811246880783386228979036633411607634695084082977397254277966705151106103813419656474297496208364333738331376066860358160293767846139606513581704974781492773018295214602739705411676061016152029702861177038313550051918767883069670479091849353405510585136078912448004993717229870269109402611926165225596653994900077094599161911989516017323686827397137062415157818872331459600749610229788154768183135636913016296694544153410981410203304235091062374059675934374895079920297272604215257339734797406106087472355229991698636007679909385962737672607145952642235028320536484413141804464297609360667732826366234368110592812108128431682051727593359654336380111017086589700012708267474785218646021891480020206670225096576926457725447643323567064100342612269086851821315961107340444613377722129732736193501376136250249555817391798250333109801484433354155229733297718716283295798338148198529826391644538157340438882465040014843808020004347418413368866072276730749352305357241087482944386165362353574220175476895482042883327060952400907103474029158832315956423369613615807735131962417486864759673473934381709346244761623244761468607951415354318482074705923287721105355817444000829382125905422362286936358316384986268242504482073584823507289073783764225777391915760072167467582067468486899932740137502535818588748354733465568274817707674530234700106749264640988330548141899486529093431175766876339864916505723299258482914081908373517427493013064304078042096978899409931598712425573820122007152771745960736879231380103362088341319491808346863477950714635662475777248186664815058808463998873308447002406831025660542475014776776920702398704158389447976226940913129395558231155226610701805443696636411188052639083712310823733628934279999922138287828854043531634143344050584903157852851369850488402103363491643422816093387567334777840523333699880551613991144721691990063380249536130800226934016895987571127508111406084342846475537246111450163443081036644248310152058490399573063886472322163195776744813545838685572354934380382731569691691414096875108215730661870305023515187752047266697211266281882120234796436197630301522307564002392903366582500533631171838068864090858516950463483248375819389845300719606544177416960012618541075357179624654574705286809674173116629956129002169293714402632693042981356942295107333586133239375570485539410018561980120845343164173180310775602804102423601465024319022781583006373742875702468338677716039733443292163889554000735367516441897553402488291801773594844599173678166258151638791158607848995389761145678661712649729762133951773478134794358158877895716549291742926112891901674562620560625457358012867453628460578453120535864578062667105131585661058800437694194204990757364694504642962046505251246793468386612804226345166820859297598737886423899968225479982327296556711289896977562076873750494835815774080343353020944826917540404184330819048306031681274257447189206380940116744141442699482837516448173056624822552907411340556411355813266070839454937238957192595500217131401156418317950153138074910624730257523261415531460317198891782988742979664231350822460839189817416463027170539331414450168076734890372282515365910261513394650471010083796301802335318408204377993222779457033512006165020168061438483873096173038534905899302877498274415819869873215266411297739954308659946159437207253327629977580442111032567290434174552138657002086373995685643969609523023914627136419998557447483535800531496135478769549616829596721179989293649327273665131266641873595797251616179463288007586997029895463718930675299528046945483286284459882388927380779652605489223697346240941337884778664546630816587403488518471441727071503554152998315732292055916244633127932706790495058794780508811400327327807265138459615402000177041226601718244609055582455198938156453117420389698916156242358751647499101848563950223701544592335287894489037726015942306732446308952634722890435296452798473239460708667434156150186992411250729340301977883893978193447973398013294145245927154852322219738532606085975778152194971765445119422821129710900565614018906579550354790787321657228294842815304721905902299641858636476078844524772914497535196253100692409491407548368708631896783556307231206356227895982902473210109375239622660164210358911548194959848447723135333280855001808842470471711710121459726357566470611228335514413660957915728390139476328337550164877466908863771334880507817132922801760314753888203000400274941625912076874351921024822564200805765359092108324596511110501282736155677650346683759841151658501749209056122327374526649315707012330815919851851821462792065079465240331764842080757539734310225534058742308058055452796459399645172818892831324428765137459878492728239791872153053222692974269029789041911447452963068338910934185336504565671116601034166879636598396061838116354286521835957389563606683192255187411958108461363199045952759285169846745947136891945093278602036829460713344995066135367068358716434859537155859309196242739761840600849898849821079647199423990572390268780126589695282324210718508278208874054371834116225618598338329295136929197069120310753329066351022918184597080780938051555217678330822432050437126491252175707455344496569455274770758076020854136541977174531354221354133227712150567167447086200123955469137815555131615546091300341657496883680715914218766313030788209985952407570853579571953306986109050870516966413819873267851042412900367250869462844275606860038858232911589506796328679864693431071550300207163162155500502946665001081404088888617483126176390769582709481854911566543870482209535659019121555143115660593344088057415394940022440726214371856760343093682060594048983544886017478016524381482678882037842129104908399499977922702449751154502136492495080944677190788871833397297303108687392859493914766706812268468141301669630144362478280031185548061203101465359928814402710522989002784336785392532967644839147594461293768034815736841768072059769774599127478234099846134435561383840426776943296472314805915224522307020984603815907274384936382040505122322675085201508265046988119556708416409935096189966511487482435994672402338039927181031312135575514779573532267379242828877410950535209782400763975818280516171467583924828935945063938195222607791660745107829249600388760699719070496278486665311175885136415304048085196394487800033115384164173624860771450109682299836644742348213151359432491943778109128171352047661881918134435188956253755538758268934643358558011263135115880131327307911780879617126754048777439255757768881987907015114997180020994904004151220079904558982556708106945953631512630458208139783538008256343009851796320598662041884561139784110691622120312367278760331475727433559630530270118206076713707340789825724570565841572929878591791513721013123635342166048655292509377974055485390137737575733378868556133651953605401579569080376326536831319664342832723373711966935704011660700235004131467602954644332304026245234175906372713721387365831574323271991814142716389803849458833474549099710482261098995088039807873916200658489820319169242289440329695168161805349765488915132692397318913988890932307673486105536836640250456828734539897049689848298825673283926262511949048482068837967003526090810397500886319319379358657026069881596581795617668008385370772352427151585788580450014733032946714136071718800250546289802558110075515375105414047203066722550927301366971682731685720141197118244881180449431912368581112665236434144351992183421227097228942789236474041408442571170466742193197772489634185089129708452973462912338692949051107776363293690702194524235374067880806642210108116217479835613549449340483580709402047543787412241436624017857904938376246959920217773805623411605711337633639050600143763565602061775557524982799970621643064463829513330370605037156060864347440660487479614485455665364376519652733589960373031868700349208630468389059899682820031162261610989439170506661292025994620884933356394124661125446199886550434488740947023952423176739317482575236775959571541385422184902237212013270040591810911917793206477075823758991639886574410369179541034694300814118654299928653251782378058127388319865770580492439527606562316226400023732324836174374840048514871045443270422194825809514837734913986987940618948742537841252231643486669223040222151941847347499137170915228632315374867804517970975154997355249563996295894618834686886107920022162747139394702230592024105923909242919857593251036382003911601611354910531058332442696041716338130790265191836848091994244851403449230762911028452217944216393503462357694261074939431401831347447643126039609742196126155449891775961200240571830240687373405643977296890890043229317220665154347349184405983282528412491982656714841427760195640939815290770424629867418269885142393542136468326379479098469085111706785642727385537187758342273833352445333015640021324730451065432947048337953260769235739093247028188869543736470247778760677399306612388459213361853631876865177815449669067775674852858273684417723011919189050028660682728503070717221374318583492181837419434603572539130652783124861756629640732887371639821484091588390321042691507701229995342362924470688535785857671641833996059823263309680566293521552310505515173582035025506718686607751787425071464358601353691462109157355584848367975948414843680833383466878398557014014428729561714213946398522614060896161633879857434978698366413632859147357897633014274711704134571606718364539976696476962657372323243464352479251207727320395813019045765051278495833728837375469921005089526821841432869878140896971598306756769774755724225029989526799512219383759546652811703333959726241139456989037081607424187602770958751163918813993358129543701638358351846198855321710401862745568743785611307021779523001022978356009792301970494564040589841479654751923115429946024077778176809784541196800000382083836722161079670903189895039072834600045576443542198213731115557730403363825057286870309400723667705076991755789340113884999461640704672223788074112602784115224005039322258718418981077317512435113812690920379300170295678486978813041748449270592035632716175267641972921326786449341394521341801453215639849450153961079593708178428543154844315079552837835445300805959936462035868778734658826308415728914884719750307520229667791143512690421248225451826416908996261302647124673796294040091743679532778112926326720503721638910288850340727063286976531271525384293018179907077503739938867238424598045161083987437988483286577598182560968261042426782310687076111781398113180046966091327464389325033430794252297929893924842705362293295459938615788847464807117302089536272044024320145090720861391904904235735036610807977424913112127871458420443114881856499415515421429908323097945933279549245051985287122063062006091261296956371070683544991364357281386210774402021225100009874037851264649158279053724839263200235183122755511938827814311064297592072198000051788746579160030123401120763819299881845137174582416661931118987167881950631076542314753306726393040816199464094271858240193762614280964805029210885650333770745311338234834156869549770388317234863511934929666304712399030606061024381318366968286886747104504281166137897108735461881055335616559648084586356282469529949295956048456680738282348230319175951730282926058184177145294151523807204854162835158302843508671224880179541382855818035257876862714321374446023461645407092224669309727659584333088734444725483587512285575204292561820864519394059945928129122773059161480065155840931687965923391908344844877602661563181429408448589735241530577093328939071170657686087725112193961341157015506912493065083271541599894380851879212418927115653691509838925430429940243017422592467514784651476241465448420385995273039262343907085855146611929692370341965300110939934595753560717788751942752562889323400466472046865789192020271516295596344520204084069448968844480731496894595580219110710568785929340198802909862124958679889178801100154634770451332075490527802450457151105721697792135441154476612198327341897393765144926040016827585270641521849432574517698224008734726679642542805632469455687274437705326682464935468886782955013579280463646204268723638696519891349778772400314244909946424350392409434409867945952936636634133854917527733730480456099827536613252635148377805718191431199639192095933839701491066406562373362217289579993283689134237169898305107340373892190323060714078394882950108635680849032831909677084486185130368707704858382371508968196666708528432373530475481461863556603798343519934346331422020000223650569350338417747706013834564954956497860096281110532215583654765071438248081636252925003013940974350764561076845857224117025912874914995570662521595032229343310355315606128945863401327879765307211407043410792813099745018374612020150825523602446317459297706351133388671586663827565619109991234540422915603118464535737943315550005657659512011991030473667256024976082384192593883037063338463417580836349766723457011496139742398937200371921036391422795840579989167979623597657917604874133101870451784098839619515711970606728525511600561469068118299864356393562669456859829961428805832888658494761337743835940924555182483123396262912090303673088298321172078604193049279448042182019432763312825358518190223621453616475263483999829711204139272083328242651840447864373339147132212801295878093136561627747835501263434064780196944803122821055741282664446881033437102205086255929494746679672192602926278409930228598980055477539580634332204133418668557168338495088064130183589105783604800441943134670025807777558566274473343580723797362780820769828710961540004751049037818390660985243151647212973465616302687999078488978818039044349029149111230104407554758928663111790148862756687368684530045159987343531414271131900807084475697389417250097344131354042617863964068092435933853606136062104087848503959026239802321812134494562235942732418238744254167847842978340549228011437270095397384430485253978695977215714654162324413775434690559579603712990899667830878950404832496556104929637167314475687056338891594767570453174401119366459371567953694412429424678525229958995761364054760094368949078327277249517313162464573248663099544745348007095232866336807360094948073655228888898257815878069009037293867617656596296075586397092659328235231801779897903531014788359977570778394606619790965813039793506494318075504938916508791240495012270330779644407701434566631134183702722958827121907718280123444980315551388289226022987702800497678727257274069497843458919167061283524494140064235374924049805351161009704909847963699725334422509312701106498908513438468217183957465877293369861756011705785192463734732249069528500023869505081464460046415443957258477083690429493510515454756465003405726276321177599864644426940932840322978703995220499496249303226731934893623882038905758915638565209716142128690642415841886920608746319636243904105540642582380832487800614633520830963674794473098643512391265054147977824855991750053467428055015220410414891619446350951515616176346618427058483195078848983043619895198808117917337507228691675757668189162332201412698793412821278988421909447741062153231023344034606183174617353379899604950443375473553522541560176894112705982615551287274183719171807366699128376234534192146533778585032025549042466948466349939961046164394786320957828833195119348163103055522661779869234297754341652818724805335435638801914828911263277598106477606274702961265213183933156544193247426896505343610303942578637782653997640270809518036007180944971320887040957326605973507278872823253373061307404271467316171696486388901696467866453853212444467752227091025996795279356986035147288767099196206949009587981243251840249185762214433205218575924093681542621639030420516603536328053072383186360705053786266884129683832007927621428222261775414161551735750584756531519342811653440598685594665129085455128559198681607908544983765244828583635104645394147159628984767666949421825826113499624368636381518468182887188028441849227176428820395023807626419378408922596905973951205581401047928441023703603575963997157094707886934444883597701710300291585108552302129559743665822867451466865452166030196945483704783667730333856743556387144609610141827369660215133702213519375429041439022716522449729649034681444739033296684454726486009758454236723022170867440679187036443427114578456435319760742293069527593682007402769226505469951855056626465368732290312371302172908524404943900791712175981858330899693842468423126967126350061630551641208245978267210673684131036613934148375661067144944273615905130721686747307981473551854003793215859255972299149297786509081506933249362084832197015323594635206936829786827568442775455101631995794270475302157372479891463211559239314636567650898899804868232815081033285196416395738637945633557898029321776816191614143776836654559490350172456506433164955199754584182191642965046321758159817864908438051658240938309128835179119356301934771390462218430266979207151031072395477536626545808179127484326124612359364587714186012969357889863611844904796401804515063258618936768271594309250305308287470004774025013943480835509051092540966330265715099669829025711075745439046257839854310508418504267697003552385539346083347187194956442311589480081206995706952139371948945991368051129623556583911278113155801204287694920693436122929960130645747568810330503519180444521453386733004493195384040412292905031666930592723683601488986938315032521473038818498339524157500380533866230819003405721053350390489991055114005642614914802180702683526268974885214547043079541438615937112808481598806746036327319776576342665219168129607256932334469621832199919817753833590569187223966487114773998192663279508653595725905645565894665702710365073652634582353491069032354098715941114414990366475075036558408641263773715038509419941186685688134124108934348150233725640198208501055527103450837998100623673689955719094749646142447210478036329605295958124267527563564167866897866035438241663106116434647020334023287418586816160355760367438651398518928240729137358474789408925617909921625190814384368321669170534483484050923411673696404422671634640879682041732910337122317697759497106580660576459525008521842727253340452495218580657177822225806695109555166596540450231949142338606180761187284250656097029335316750959371682288290315892014123669974326126090908342591545744555391580557695611736805816065081645362386561666340967410375163164510493048733079906097130747656263204917651244776831374953038583566836839813774789056861954912938675027926342417156193650950802676827313053241009350240497657700880493400223162068880376069404019833286852504521458445311295033885420526275800414261118953478618108008977301776488469087559362984413041852748720711379074192092443029162906381160501945441793532817724421587718867717501696224100337087336138368392093905486565380621845164663946732829386304637531768953887857760116658803892710337082369764356471053308708723889369547646955327165619584127918591129487764332764526667283408716461187810428226278240780191181891058307061688903602697021140007604818089400369223909557301124463421735118952600609694986324786371109291547389147044925058846812755868738590356178690943250433659201435665141632546764661295047373041405831930378631260576640891668953151099572146468212573735955330515507300693376049859080699795151819164692556406109729940845937725750341237136976258353975207436243309396025438936631553144555846877129576753710591894619366125722701148741711120116325270900743052854357737805468032228495194638061134738417056799672671091946381542299469466789343478233165039261708191096329877864366140794431546897500686134510193738258450932392468585963327582908307532307797746685907156693736649026032385164242599767267996639517452083543764982167896555766526818191796212460897336286889756515210394719365605885920451914858819370907462242725353938242400401135593917387127425430186242458565035367774687678914229595827494945804755394276143840270397033877262912006296743743931881159676582973647770313733564074646986464891354671083409049284660857134880432761036076018566454391804136315010544167528161226585802985421390115581323145671259423810694058032291665061283539071814707564385578958704778477526444259936965902244382817492642186314777657440369751330876203864168054512401029171443786704163233098142498013259234371224987697158655425962671411497654602047584433758025135793401464800046690737684026071951316944133033386214749507005444654881647569862367222449829614811625246279305185237210980694857109688339784532750308741314431400673151815057598624170770922849245129353061106452644536028038552635399021115291714429128374940246738122146540279183487776508026844500501187388662832869477956738767816670975170835789170717037171482007330946264948447108000551594716541419446388801654024960247778001056958332206264654953556053661978779297952835548962718588875312190475006514597877515264452461070450090923385764562044208731224466286374805031058533512378194687842146958199118397441670971804402944096430527524768694548850052368340915729896925747065636412188913615763270153904858828213354115365251490442057201610353370211545737057656214051132809895856211473827512658240469185383152504838252689811803575337764550880853874500244965947150143758802514098047326535202090936352213309059771886075770816348429553947474954952747791018497730759283609657662456503735709653900574882239126637860806711881767421823008329716894755548627614508818565557131745634458070200025961618212659362218274261620625823834008146050104832201870805661310156854455521282588740632239524490590614239296482052621935003604997084161646290390147681708944856547416501532829342056614224018330244279595355634495898932026623726446075633772556108494558163785401994641645442577579555976090405321086594300238817624606254435944751148242687059072599818774416260462845381697353019980253253159387341897001807982966359366697204809422410889410322664414174478668822594563535117647504552303987513718404818823438704453451735497702077104529009015516061305680677809983312512464625965028529636889212873762331252944800327612248589129067295742744012045917306800514668857535192370651587875635589562903577743810444274986357355245415887150079648003772817012400530597703130166760853225717603923796718822431854436712138226370515087186491597325839321891694700617751911417865200625233265857674599519832998037075915686062320594529952066502518529945451670694027695176428033607642077077135862054747296975426182358218939350759490982741584737460180680660184100939467731928985452857078477302314505612329330357523322961839131377909414817042258561900004919580852298051306751026265435688170072365253097506681025624951398132706001132983372086453347279068862546622898394567411767719947589603138018705459987386414459063110200135411979742048023090292036069708493578530326986043228389055255610376646272187427866260795845137961446866988360391456213424968510256835614298107378866697218978614804588905132329143990651505555394821026587352293457123566000952870035202168618462169691905960690894470599156909337512271040454173392940465780930890001510207751911873483424447053205244213861941070473605330656023895294586154382679212684512924448442828839145541990666805813407982073757364395691530219545179940192250701112148623621856770997593399299831412004587217918582072876781613639581324496503748383888725479254986194384860006520466000429636828411796908636384981997770233992487333307135325468399925593057904547374144201422354767251868631344471511819593122575010961271827006577740178280228424259232888960260755251430750126654979889658784468115753846345584159318350048308411169679377870137315945420603524327112519481000919494392351729219307754149386079898354921640645474367542916903111442198848145538922014550018492255449771207295557310765146842250614680465564218375873247325663475859183352866393616651369433264916344287492216958199705388671959992417653844501980168679963311481620640097084499015892230986867612141578161543310621810541557571378013852672334433329602899534157304173623514946203688612825210889147816396026905874505562700629741762325897197286587575722486034183365778193978709261525272404989316873179871577315558754097068292319984746425302175464266619592394575589813028572533654104280477006575071725533446816297638864192160904484987229168899729743316802861191351618498589716325615732731366775171965509777205706008827871932308763141159649688973464845643337584344442354810423695480496091716802579078509292487881891279974982015027731405630461008135426070467142172250043652129170054514343432617337070680704675813863488283492233948562301225964936625405159776975347862623436840064907751449126681715883433673748560261398053841103784391316517325714839497820696053413110621322236445750012115346823888262907373241439364245192395289753595569129275350020762102363897489565101458555753414741259386183452951205621164349076764492746766408433042597285629214590678243790554790358811555418915174633657077824188975934258292169501063154637333216526042099265833892465618775884384272799965189604404604471295796999105153541985996256660919231184677620478342484045988693812034243827146363569747150001728544393612360687328526563252129190034000171274632912984487866401239297207485967246560968822960521773441997348129656423094074476389924275230369253984170907679016326108198233506495197088305911838582361318114065492655338026273230020225953098773499899383199609362682497781647954252146798995033076513613866899880866561942132891491837942953309580662864499180729803784905700041914140441677708656242120361855804379637213741289270404137236757190167014767369907193062637809387643168832596624430817288391363958653168855338945952073109858224756895462553828616540178737006932939472907175496040805935826850269421766114205749669124287508950678335709791876615070205281932019525788853130414546440464126309801861557229411327056651357185207649440779558535620342446939280251452348336349633225674939487253718084482237642657958471305421008021090994083777366636289355760915399147785122841527087909474432079929924375557064367741141293775580024947421628813609964753124967380213730558522918419189793549838780824211885752884260944259290170135400308254769197987387133242152326115475326678863211306817663797129755089096628183610617865016642755511622798804192159290837731277737935799011453595450776176895174636716674742201009358363028205383348229747474413468984058240213730287074122350788047540729344024484541410244821508515044391844057242337395876739703289561428158948233196598211970028042819108096561426903305097535170897277128251611639161011081735769434352033703571866470196534246417199548556793169985267422992064864144341359840877294671257479176554942440804282071597411932751016552813014011462161207513154864083508137566719224853041939675164309641073630957592885494572233228677863123633089848329028975023314075681778740236741045339788121193209247837478222044494023187699552876595237952352395016745944772527480416742315132217498531849936601565326440332552462478454729559653347172311335036284246231345184142529605975252377496908755408939005746642117269599202638439557815799779511784323217863419776455912231077085428902466226767658687581084494902244836084357584884778680710051879373559671503290956984508788383576135324501575463727351269814512607307056909982617881353548060604397662354896134769989901553337334330241306591404082441881754129110469303021892068535787362157638995276778288547291502826080058192051154402176052997216554904131417334756894772596464481373102262971538394346255818040968465697157141196141900620373961778819268822466848849892892899017311280255208639016133241253318370237078468190154492485998815653842459742246019631705929482517962127183887848028073050735965546082983187691029076575122902175265626369945001212926580370066648573656732220070935127068946198329455263259639765925910652274440563568978757614418154330326586052759286545201251197032718973483531393078408598156721809960950054820392705427559098551136405931877438982372736875055419403787441281734070184674710849876565169205725139266823632608653648721880108866329666088078567458334978779039700804232868796453193875786537478058119925238512589568664061594436840780632203744894953095822098375363857484063943680795354232205938910446120920848971912568932101932455024535995713735733422159791544885047548033041508221816262311926196804135962298188702793382649988097849283312667099796328195959070187216508086246391909229587811059002507169761900251745010666355533362607326603671580883625103410803552837895398339233758862487318628038848371895550511049437274263952485851477237373273214884026619776546546974467887475599394411487516859588929121926973819431164640848388786640873526889646616322191554000679703891069512954182018797035334938787916098870289532290020452498289360390687018253965259829288707960417794988634471438845021538634226375824753463543011770922370275172340877018241503231983735186236397796592465303534643982225167987711936372986448886776160941939034915582718598608120769508838788777556438386654104448353626624060697738178092597438882467102807143137047780327630573386292924217113228265263931015695041078202969020062251678901223692569561323456625825601337720937575164341465000651083681318396116596233628396866339996374600608237926061705493687277470558033529607588141170545027674216305613577050840963091022297979112263379602471970464448452873457628039155794961365636556793418174446061210966987543791097536468823479810541339630550846521310152613517471107524446435200181830770126529248800518940185856817186540782525039984831745891130789611997257185966290044182976091630901211054660255455283067473961889251123688691595206771711716485519901426731682941398572261555709127910088968311259709468725577700060319122011049256077915627030818021944325839379605893826660192650815752202404307876148143437500661187167441234361977373940561921137178978541429985706689752512299742384670242068021539702079588391859239707153010574885016035552387716174837299047865934204305598075521845929235442903372474112459273804620038589505001137663402314126438451369370285848333693356838813172055971354725636583414292642694281220089199561155641419402448361833516481957878004294840750470431528842855391577474141410839196291244000415335680659361502288103963879228707088291683227521270082305071421168454533598834201648863728461728800217314563691506352343791237037677512066921920383819971819693149539257797574714781939482834877168379360819316347138472484858782480277340651668454942778096840055095813794300734787668616365158857602918548856446305745959123875032808334553926266401742986094122105858644671860188446834481738220113736832365767168051802180655262756592313300626425209922397027073652902412083618300399269431372789102942906065968372243244104934024655996728852154814781203507077175950296274344802369892710093545894929274422521009096921893333153675659163384159857407345673331643233513247117264751844988475607311708051075033070629337578384189161024383911521374492360324888815162834202650161724715545623767589378762634066904817719083957872104367437377445184341368824583945393069422851875793145101547096041980866879912224631525145996597019239737809595187074755014336914275065348081930861547788387744202161195902801258901233909832127129821703687900080526777065330910562082563232785363289775791593537264465537556872056218991787946456629438907942945242601448395414694529107882362507899445389232842548010731189458245819493736932152187886756852293863792956257550423804830479390474259377827155005983310587447342114350801473723483549321526816340754446932143125992262514002645806249463816151015381319378199677342802577257423584955746397493802272084265001747702656751210987410491478254481836758529045636911449636243077752080100323694392509233724345831661423493115332240378424493092999004730685252750658349765666016462712648918935043993852224509329438013249855062973586725357438908399734049188823791550490782297701437030326090661470895130387113727507878603294748528351336595751428533007217354862551668293098926302400466663298496521353279217944086346296581514783994604223290641141560002483983604111727937366339972579850703175506679613377156959918756788284784179557298098542819042811096730788004364500726336777033298053296643513200836598086127885409900350414870082201413209547055166323750701567021921701439920724388086013962767759257096667686478978482013959756283397982210621080425074634497228462662971492112412779751451773533011123539430611055471158358507095326237418622080066222595696583626081334535282731599350198729018463308549169943314790769987359984035182904183176571390380467622090948151811965906861923671507330940044728583547209614433612631101665202073733217125251065225256714085703847997107620993962179753624957743961975129825413602924485705427275996511674833698265077416506920764428716023490980344299533817610808261309948015062041511535261145941447679593913394426895541578161409967553992748667998737680746006916934715467034535776694297379074455948062897705849250594837748577069713001142743252050652736598608432561128878698862586246118524084327798461664202414982926465664875687441716192864278345266146230556003893031273790446734782816185725837005969811418777263875054602309468532289862181128443140997541104046940814075099666071334207701058929883377120903417050218383618122989350940958493988913785526343969677087454492806432653390135178857606326274688560822175706389440172903740500789673466075282711098053604942326289775436668352300976174911796110385305099727125906086698045171234296241294214599622847400805555434042934389111239794496323120279944198340601416327927943870420783874608497543584022390114929249100095304992302365924998273758833289424442864205691999608754585214676008528250807597579962189413334865326542742525131077647457291336095583076339041890355411895261356710409713350274491415318167874638996673926868190434661959492012834997869801950945512149261551461840391579586665111824443666939553983562973800782990039753285258964618400598715579722127943806844327384267020661731660578017179375865944387310014031962555149317865526346485007073527761447543522134046143900919355152288922353004593740010214019860939298320107612304931540074309713874630113601409746171892662116900667693850409163713491820168624904830536090214213167300716961014940115628502129935051397943522702850928957264657266160913652169898884396901399773304792365170519918685289826978100720180213667305321989709610603313742340238028157155711909133902044010013942683215931290416448594369856776163211050273792457827995333263593281205502186143745697734074552624210978057864733409800143533759557855520808034274440621246551020729953860989607628254107353574460658277874561591937936051742388431452928641707969608509306950248358416756793299287024584101830043575891089152833952141892531701245000352759748812082561857637163762946151268643462245028492368012008709550400866112651080338667025781489081597143280838399310129597520699588398828819375682474911894332529260798505373544821131963819232289218742307553937882493414126280192276545355856991316683956304787854126263737929412683732012884420012676296453722811441048285828118135849677439877173866981113040151948223906600865127248112300810993010248407408898229422705930776616432247135092749047121055124085480643135082393011887185081859120897482283290226724129069239823078841877787441478154218805290929104183380619321669762075997241425516393848387240376913435619848094722385952970666636585198112972359618422858768928778648106052467785739016866129429892780732856171693819217971839894901962746264603588539350831543831502748465608623647565120332064870049724386501743957548883009802159949679091284053058253782898192796218234320353497966062331695457333616870134729993458580998770227715895311055731491043181967564018630296663228356794341269013767462130274103184716426477294438644325178606872798703548183438722284873413922473782668993885801589504555876014672352804726710826408857108265050837244940866696230172505437957711259594080667942319679941305822747642852522449575581513377743982921690276028504280699623168042474106055624263339306738350083302877912065744259958395250560741468452336676003318161856876085319728856339325110316087505662700072572410836889729111781616201274948229563733245693974061956926393828962071031032494203010854462048441275653237818490699456476067035645583868535241229715522116145182280996950635030409193968296753736100926401576879927688491610628710617246579363030230939947142502194610282576545419815873411192910447064735113047467485833414004625720288221857928439447136201214732890918102584458337624320581713867926131465804416286572474960818749781703131871020942294472294217943779848437830302521334305927798141966229263296580071837370819592577864206196303410550200053679679484896864296900291685580931850075495289949825488122960408812448675130025846906820324758616510204812743428444082666443467206800666290588900193481971615604095918171845333894281265415500969108066613306088277617572167077216334261560066622603851473200191198403422846568651322762238342094245249731489721406143242280080243421234500546609479630246924462380096145714468625295334757675038017523674494592783824885956947641560852822075508701541480104560005430682216070100492680732228089898402407695005983798655014797948224013464820035123851913718191169536423298528050618588674281708961205691607570700084051868457210305842853002528299444456287616859291508785088023284848727679885715689911170344482899537519042675005064313465751252578386796766158695295672921324729808281148203348073686083114700454743041809186738425736564119359385535971644630831127071684177835797080285934055722129770607689714397251327625718763539950263174261039241396786244111161648547234451840226737003019351796455185526262078448908534077547630128229456928658417637127550696642210401900683506886551762108739830389025627457099680215119355494645015779983500067373845788193429594182165454448914083643943300822987654729150883083538317764795564829566049785452196842826369558497086339068457440794650575941865897862932790585456711782322706683546495906114412708003744515853758288110374253349554386191955643283708654975987868133005477884399822215650937808072554557052888910797386507549306591165488284133328397506007383710437581868886383309900163175634099461925962891923942089096414993311056267877456037401379193100786122168061286955671281734913247595798660347022495961094601167761959182017722925964872851892092855184034228704496890973661200065061158476593574808921591417801321930092047254096788922959694134101248110332373271258693765633999589878237871765751805577314030682308945230673251041298901525770542010797820224879228450097182919899965507076183308126760800611575817941418506738598662239822073023287279027912659083078630511499070475056158803079496804255362428405591177053616932772581146202653688986498381743751076451788195849948751310362793378889114216686105990513924436241812354202708343296790313967551093350497549437702632143034559556822524118162085002660023873390319450293591740496701199363920990059396659536871205567460265749465041498508844850541293613861880146959884423965061416154125623054504620796283873239069791230742282123651221717706848879897248346160606708059555942769878370905003737827932372221878275355297941662008478722223428066245241754888753275110093607725151141419184688076810928554252070258302871204170499878129922368632116616608640022332160995936726789788651530840649356117111531213985275003712746237966175698631895915412010170206452820267105316217755150856352396605114924059148087157500532659417505233265053837034226300537286731703847190654022207535401199284378157323628095554439399873132971152172276010300546195755393932258509851257887967708450650236665969503005098013764162060013005630259807547379270173497232201391728364281390962124033266864205527257591536872962500644168940084943397372040832889332029259913222801162497851936047174495564987155707413038534258592400260111141712761084888118731612094035591650098699344632642880313853604159947659323336041589630017040186433120070271059664067743551952968749231329593140497810712381139168946463434021714653307071930298031741624700054662706189084664934927024951330770194579755972393407095317369151466046779876851512390285801359049816763341032701954774067202954269579618202312372251274884065059934793935563822369657309896762731866191798683391526401694712343483530897180274604913066151745003259214901255991391650255003375691167569797205885258932714890988456387804650217874741562551301622497404587105642052978131632373205394603151858475081209903865580800103665810720154288695040577771772332319073988371647945924194623213260502983796083601555844743656453368698887013306131706501869473389250905364550788144563981439690210064641795292468519715627660517609315672499900072132959021991814422909804349781626768175947631990444234749554245442559107790862601779847588680907985059304239508636718194752655546608207107562956096870343976408785096634496617445063037412545492154392557046756655060375348484348506822702037277674671629625840976639503641621413423718976881834722915402929388576999757004321434634487225379578139833797762069268602085180333494002931712814197462899413592225580415410631857191730906054849866946755434180468707645538388139751665165563360769163676276382626776796139496747366786814668744373303891620278592269919994321290137576039920369442868693117649570593542445058841149119002996191209800834963953583720556501974008385658801314439500220833360993292260683252667809507840910745176095999282500647124152610544758322114350620051844440589635136971565161885827344564298637443536449071839498065285087281609170301597241135282494159372775968343329523296953072552727839219768871211302589869928576577687905699576124436566788955682927976390539998726977901715573214818756577900183245322286134077739455810643383688494437032650601192683010418643284125748108087122863562565797063220598613275406147152614156259999949610430427611873182385697526431064084362181348348868592013887211861926979681790268285546752344980377360339896489668265328993242510440475142374946705415648114933017798795792816283017037286181285006598640344475900067799368908297516791964783726036428713858349799081733136862832367711334401768419927064387399032088429348918972993558808844377268938411400824509126618377093405920873076623732304831037593723726036768132689102214133728511121052299252744932020322280944613272377861722795834127271294815639999991106079278777261595823259633872907099304279512422488989728209791671952562192226192001444324716614417805974961887609005749508451617879678329029117684454898957660311566905428140082311189194890100764497325531945434438525510857384756876858023006484442065081413641028591811793085867291466253505358335333178945076693273121397288819775854315906654378340331410874551897173837235272823691596027424524486486802472461735323387063103268998146197676625682960127965780819734603798696482882933484574411957936855953197745038720284544467014122029354201147154925179354983446803628468438273014136084258163522214452698209294751174493749485308496888390592926180039171067135556176966071917863327303863111814726901593354321951525371655537830192854739108607049076585585626729564937196603841410650769077512529161335186908670456703622602179420020301759785711867583278098787538389982670043470118550893923446700793947454508977024268132669683351988936920017043649917963696154905157969418054401139560399318289856429381568771840658217879249472582973541658455448723434212714961384933077995574556290188182167151034165333589639030569689078895289820232962562150463510843556163118897796518423229333193731596127750912722288938900649964789595711347280322827864459155218622807795078144944004103383798611812399171163011161961079516001813771215448577561381228700612952244504674557225990953762311210212912725090377203110416817019423510626571166187194769295314858190631535607470055180306789644225824080917915574744874256126952808287414024424102006373401927382344727492850757828307320871437755093636426709836818741218706182455676726497297852346207050254682625659755766086912570002343959549513940365313073976968570269240541141101552798624559408084299178330999556903492522526254258931487363171654079309328185242923369091459645718545540894646467590579889480936655163336923060152001764221939686173155086520038018793538636532575033752341260437569196941946189088370366697662813078248554652958051072433998386752540250489048537707240209407137380507141532844228225885044374195783066194194529141013797396431059659814824790234537438070325513226406882098495416390093641355429259446404080635834043233028208588994274201702619100747345851785392745094473982606102998300930994435386202920791001877922411238640887221516646678082362083202501500750733202927216587218704510228405546482288446639997695353352606478858490774059799674323959785930938996637347905129988744867301216724512711541888582693451373565075591973908387427933095935456734595449666354436346373981997879942373111225425530522077837879331151682783826667856036306347285200908106104921677931473823432407698182903394584199748389885873631707242630990464815177011390218309007572473983669478186165649470288429282562968957414600256686545633573917394128134419847147880005493386857429500171469539476195117021678137703825446977676760760736024766418743758840629622655006766542223784158345743219019059207782110186271988717744139371524034189068644983491223982294766550703696781603491327164156146314623600771205326675601247313227719503128326920864813099353879768710490411344081796140394227986379872969955818052525166581145390949423753538022585239686304558540617492619298517788124755681789835665494061515557025502911772492377842744296661067761971815385958124496301238083694279085417011331013717825556230265305295276466737779972554433471482100615862805843304559744820564190931246687865138267079308423749857737578021735564786326987745937951257154798967789637495185444587820391802646921124594153340969703998452000918205526540877509895756469762434833425862081076060804315365421563990696407754365576485923186458085213695935465655488709961032073992578156941506656184809754719601673217603048617871901929718107735311614579070503498415697608864910878774855572489690172708023720073817078019180863351682327542239405370744129078699943739397875369299250492220006742275333818378505279371638011070846375455326804499230256586275247585196656454965778760312119617683981814862471228892336396222948739713673369422125723196961495555395090393914762121114418726194225983352225965291870370012537534455697002262030723051631061521321443623927245727965133787991570619307308373008023905303138110523426990569527540378491506061000988456898360727702084480444464161064721125408834758183699752418807604410372866346832492749547043511225337989062052029711730112735991541902150284445336260121659319228170624987261866320632333261054957693502853138872977794137429127643780934859324098038810902933626605848203928077298783205819313675294927764157305756244503077481694381292417768798887955982131149496029783774548182779705789038125978948883143751712328590214986800366858165970931863198132625922828498909204895028880715719019701576830957572273256219896787273148397008162290201848255938213133621875341872390210829178353301376721093730805312041976988987127578546825619701820059759357876487883412439787984703139512156705217336880540160344484934750044732450113329621867361746924126399905851518534040152700283249100419741256565113760186407222983755912185276499564385637459713142825468563060196116771847945956802866107651313714489634768562518318564022283238684799932576619392267770181397456170667967557696001587165012774790025475830460734361689621240069473071510777485739640497147002585290514466256756141115561702187392472471596199320047876815261851583753829534275407174781043653009090252685417584451618006063694923014431322186142238681112147425035873139678976147175393393135543449634865746000585873514576010999583440906642317870749224697891477124304385396388819693151895589353683645305093404924117364369667425410094516386576264493937006739110569004896248367405064080550179070382758199353624971631968896790664058933938274826316436002772709855310117751646956175737484459987323963514035307889031579851314983435395892107950781206282482920626771151166944835178768412318869757118883277361333536208242456069858457294260381346992624007603152117323573543933984387040490522744622153034343028836110149359375696702365392888428622095064866796259839814659207627914565252495177270328679537072026541788587700461304895338876929571225144945241795010068683401523321091902707541118182650051097161873064724538207545086925830884874889811625920025705405014921905538114060882917818582926406795015403915827537444410439165663849490155235982530953855079316922825377419368619812795761722275119073217730590765006707967478567435345596314814739849563610589948772648450000317473190508606989877758858283822138300278374313679301528205476044127298185643046291716526090632375492453187350665339422189965041377734005740575853038576634575300293056521242040318275482217279383628505806670709227401108948860899253303392263589362929868695583850874442446908207024504597326619989003984904531135414563514384406631056856166412805204352568169097598576086586536877120573831087902323033529656771931825527338350724019311544863541465591130628531674128049049949135288020617051587107274689412761156606245225170843963954810162914862795982480205092400338266588678603949019141591408829835034595266957181294409051631416270873115620460008410942435529859100834399801166405389705183742059134888654655887198210161198789190853584476492770926274637438293277711736455994671740734371156159799425999771465600977667067285092766470825858466354572243790932750825285297147315208729113670675914771575279373434022890733108118921889086453998070064997890783400631923411841157436032130316658497784258365709432862464431273840047688367462516260041576026144348924567074750366765669034880790570424658394257009302485389260677266060079026286243570814529125425500926037392689784706726064998815752691244294403576579198190638504024521891163162089981523647491603575724738801240801964566122365956381613822256666505881394680621331722376363644050844003447817001544741882633347539949079021379012541502657019957498806401641399637863823191236256587861943498804091709682043104661372711206992465912965747557957325996137917844812378788938843326415960706248065905527559089614431077655417841507401907939040091739559471386010260689418277623313889324192583009072542948922360376265713908161495208585662201515698594230041872291104144087236707236929604858346527931059214409750574740314712234453675103443732173990322981835525166503722768339983322893652441593258873446126353102695118869628455448913684941599020259516435708449696252531745075062058366579294254093954618562693357091127929357484245007260688392089177418794675863890451562076514070464333301513409322886418378739428559908290601232720525910885406792140308505044656323450575358820709018596867435985066636004975313971917629411026298065582691127213672073847565305475836511735828610202391294869259142590582163774349839600818560898373794019135008718146572289824477188712158957105544761079919259011181830716790697681370513303790539951047274284819332605558507267489275059378317784433848298250580404162556945391355043580064176425319526077469232149689669985744606541098037589590749049702122693834212846260908403225832546738284962269626701914709181700556981405840329905845175107971229760915118846844973923808904164405635829135196373133917012499220782329862328794357605161692710362528375211827831942856602603563399601995164526609903227521193956576946882997252319669013883438565697391260451804061110537126560633922262626644825090035331960461915509489583574480304293993302521742652774158820641796357383446361552043739604431641876731113412366869021024221375573591111896618286166303364732833876684245688819870692790971989827985887929016877071172210445484139564988890914135559568196085357922897560107732197713668242447700414580564441972493911294821962458805806592046699938495724325652008552052447091067391473694331085478921428504095012617937977264492692678026002486275757805052607684560872978876919335606952612969309753836986554623793401975057848882265880432840533750665175279859987097353577336666380974768493582145731745867051886461237723857108814026900479851737821303798709882560757000669134416915681909773342276501871036677849720040900921219637118007119878511092405081705816787159070769916823699776533868127717330613135024579504756642368869260034717126045842734374663957716166177169567546330643758178184397238824162525955500067288026640773648122181697395970750781558954916772994176101683618696509886203822563479901346077850500979281698610871290038575674046100438304905237100752062796549989728979473113805239341313707322642376978387424894169851271862119205986155499658842517492064897963140529262063405464595347704976379409997594704838222533174373182489475780027573897258384440180667771464597781016145825845596410875852491271722913227355414956654724751957976397426590056370873165279423647447280012815523105378493913095239868904936294119385980343441539752222393556474589341653832735992341526771881464876698416583320485286969224646202543919875424468370229627642656108456932194099305567125618065587463682169427295173743131362626364403581025057093498602064474216728572893880226478955614080604918125946506453209505140149154211804466830344785005999894785770486136120838580343993093805025196705311548238375550721542167620759845493855068670564311995269041699464636198244044058890185214874200867647263533624829270325735612738235437262021062596441136592917791116460144831444148071686042528653793756515225380948356139590884474686356456988373014580136109930387095092885339650005727803561018704361581448728181799770042151282084184581813092230844404387863873763449108922707294227762173453927212271536605510926666328154339084825993539549598033419507731571790991819853116587434101319994955126500356689289905510629228319955867469961479974163431245806651316784336361878568688379790119638697733782104124868307787340686767081402488279100600129572384991143068561403685355453378707263453705889603589341784651666494468362823268320209885745862578113471131475018564198901981596776461095820329591835499586225080566216882027329591248115789415452992137452204726870087852936603398399589655761506036490981075190556349952547937567788751659768574591508312816238260559553481142314095684358829372718194322172011190294541900639820731741133460861481281716801360559496209596755496743239798100797834368791211354030935454299438875707571811854350411072264719135619960963270165530245875934249056380358444862855570845742468524743133822624626532868841216289894752870507298252362370331272871062150425545366040173250085679802241960877273380821280324730432586830184842118099645983449467831890242834779068198253064086359793513884511244940936949303298590544120009462662814513275644003077666107130807222078672378021050803962037196907796745873857942300565839310351455877472033655378804739021634262092097361973751531906214914099418322361836396287579041261214074239100971743275069139887965082368397700997206081478583938220323451458263954705941965694362839228685303254172304463680479145127542201495035516991524503197628001110016217800456068964464063194622530479863322323082558629516415857680708038096178789894990840491124471182442820686310057653799982103477307067714027560480341685524479941623104062621844868384420656781232477290230592501611697002919994950582291133926588045710457807062018112516642009902317739251082703864457387345155974159700644448472648279070326323192589305779566292970770588588620953143816491952036044824819761064470079436773421104715233997085852790210805319975222742059874053116886666949224614630303233684350792712254270564797201781527397445487863799043047623509230587599383221863356765480260162465110005037662669321148453816754899334537236905604773259341765254002085893162130167678324293741863523776370420915584030548133876263734412595492914427518781129926054043348192984647249883016204736637422986011427890426478850035087485227228980093739160349369117134898101327711280200367841971008419214206609973527344821137006494584265005028755041606680320317174458029285242703387966501498511031229508025175870151735121033380430711795381375995577160212736385155225453965831718665414025435222171310189381021633068665448840968455215655584490346513818832980119548518258573886600772255365171041332794774680569544015996257884557429033929454827036088761781931150740300463913929563815617018728313049997914639802178312394184724194689231921703787072350332817343501806790593407034267177615643218284030965620332452152908621029484927674166509899495445863886626715496003952543347318942552003236516188313968548096373114906209697492406657444910242547829362218849783368100397505574508501847848225235440132368210058464677926416829598500908681680767057282183579089052258773242469230000015166583320316957140962251352262301909713205525625960309742474012784479125240409942846811714628224975910943676284628375636461492781682076213605460524786288515728533888696772191725583745730783933533704458240941688576477926196757546860871872956727191467998284484109485110555986131159627165966349402245580123806091681021813815333558748829407259912288126823603197048898285454048693745524739836405391635390987262227578835657956700425888126738552586467840033347472093827758746088376321998850496253342948862483908276878306960311845632592776974595027535295314338698481266833634564628653183170053624881179376967166217686886826635640517928139510395595778675424430941234800347775746511459105818922332179819273353943355188568004731859505572125650877565150997559184438350277084132822440789243029610892690347560096566109381955524902258828955449918850055723132852988088687737933738288063311757459647238044863768939399967218382647588028367129062417656551266075226018341854288620491416128146869749577152116979599053701071374929183949220055173481597012041183931568916768470707195462286671625694547102012839314318689908515035696109988765327067232439659620851576934736431772144061089816497074332087131429661687643046358370525812256831501105261727483679107607206691892318147197147337877345123242942232942463312429043232504520658049516991510166609514859873695232926244192989922743964521502424995783305018208232940327496671210584621107171984613623152160979484602792452710663874629590014098170817886617602477791594253600984896891374629891027818884786556981700537658494204471086529885286683698559159132464574053276550361939156067575813063862094324248850940798654038059353030496551641556846394428475159361662319961029101211324310852750795420263424740455244252237069224452618315144273174695980177050118101061278468654307062590470428558972433914417847112064436632761961666922345935251235082225871411128024796223763384848800250980236683264781267836592353073607430450441550531654480601282061644685305291655906057140207639013614008298707200872942973179179595918561738481129298035421870855143578916054471662682405341508278387528531876560713611967868335555513813662662083995455819776057093899236365619855388808004030096617105659274763268151923803962844241622145710254675901695261178459873720816817055662001232072960962266008083431373400074294722510891134402486604001550690695848624985600963563974153908015978141277255214729913653162596668058869094667090851622544992451945658119048622544413521334154971230990249495165394562163582707114640830714565854866331947222769251847550987039010362464071082062558477153456834968205612315964941849187960152030821496753121404492484230205119255034448767444393274329290872607136025094967793617782391153744279243660193933839848553625200362247515156426375930100954087097519267075056838997402332384885143453876003507875026517453168264185898128021547917438945385990292908080759020091482155007898581745397180343803661520301865863373752857746240484157728324799608414967536914010162293303120542967801570720416005150813617548938217494100319522884285633850879390052067453649741605594278797032864863546239782008699864149182527350409421308862341143101973375261485538339723937313032611350871223802107596681449942339568423962403304731302062479983996106964907331045446646221915076004137548191938282898881906388369378254036907336974197448965006296036240154944988267552167214420830653714073845964223600946120865909121290731559674969431923727015043555510843796780888954375023604371806980946260721721543005495383524910502909532912976113376064463090150142711205667344668316148645338272533361892475771455123181119815079846686770582253189395862356630814589207228157408006064592199851164966949842434897151058363964337033502790506370947054949340763709450330677566445682110642509917294797568400180478998372486745112283085741438761598534110377379794324376780859309165407411976389281925614080918457532335006379485484925867566644543546287982890169724960078450634549778469008835122545899391150160534932459794403902547224764010333752837741184814355946400931771440539411441306292056219537476435166565594532042292609792260542763112855618615914451641884868670892219155387488317543600999980132650009259656198572346290444164511964352003312493638272259754544300924586735308899186129034603870563504792340231376042339885969213983568672827498710074772557257679373708438108414515433313183688770973468263679775263268918219608257670175542958095345537991993093724936224076885428133832642167321522862598776803129651523304900427082873059743469331966642533070423602449778650734887495310087250402208098512926157840472962334132000072688909145613395601666847044895074810410708820702279472844071809179284739452042462520917640242790987737419426248846293124217600668901647796949331464165044092630536497882998719565774419827052649405256150898696548100050126399206329573651411333246039314787560528958018686676872643303312836574287427949180580326971092344353919355338023469764906401768114865402423410094600987139044069873268582114169823033949567401340174026836223872317420479914324238079897666072270628117225707662842793986218144611825208929090629769799348143651940417813868092304123497101095123361204003944918448885448255753554528618903916503468821023185572644475156386973414934409190597599329862737157138454272204480661184123278548402488295086447567259910736863784076256096195343963993538502609116429343893993919598899763440570843540074290176005740439450001290040062315550846211623290726819830048512390384126585554901204374947415576946989916962348501468640750846813069869673463591724234592899340449392970009675506488878642650279395956350450827004814971327787570389712901615050075290944746730163629607364077784752030535309008029750691587935877340161849399319613938177545065102489691898218731272779099771312541572923018550941760576406006375665818179832252407637226164264400294846469339372815502925541951124761528927875131287329513092864378188989861799606236340480115190004184042110171885844531629960314439544094117855020619016236689071755532566080246364106962407479562325185403988980921893700070573744832775352713648200421766819105790133053227722963912734197728729171855243258901981015302383926273015003536155115650443525090831118876840245251607936759000003796047513199127181123182950430061626893626113164020140266785317837056103476152175970657643511514866469293739724775458717786545036056870044606071925297569549109028190201419430198097246366717965524181591929551623116855490056195156541279236606665369779640176144427268094518098352467512145395357671736463216091339834315238340949192529755839636160407613483278993073213474780020290098294595587384022481113970917727814566439919327244696625386378438427485977499056192870791933702956860461393365391010450467795306385595525664537231383238509245055318023729151707536865545661996430893712151797233650550531303965103354561902307302797797064984808717253647561903299672967793294337615867276524216050443680178056226268370013920107438393965968480669632562420476972423169322384716325400528949433986370219729342796446541277814617621976954618903145842715421857211001071350645012121461772356719364429742397470753951968555626201331352270228159552357942867909392154113741298127978528792380161411239280529492945205062384160572223772452579532808106670266409648314947657785500629998409631235832316483102649182953820526659915340848307444297744456331654146848796291708299258841321280986747550572963720551079523438838256856701197969749691858463549938317339454489958803405721384004335655948344646717872820299118427151757038574785477257505664911251348737964406850523886338338532220183383300864758199942392515136806475471308251674274738645209458815757282474069785353243300166287935808178713916115752908483704659702827772934987182454841674580358193836234692011417489043341011185938140173266354369466064664539150684289387235775863915436108911765117304050016896601980115844471252216763007599238935893224836584534194279563640397407864012277922167963151772981269464552674533089799552277721521206634396729021933311198254322996127352295984311428800964176408145986904703217784857683131648318136318172621151784210733030884104445745299564594219189960885371742450786255348203494692521308915844445103565753630239621812822282572113326758646937109569245849030895303964523382244964548613895924485811871137555681201227644259702040058125680097952887634781480657992753656847204347788078271763402607406445239168585288583135906839635670206642306293300566891716560619941544574684786950418843238205846737308572169857006478028999948058832093887149590955796360191000325794548243313243886306701510978966563973219964243872139443556128864222579936996806584015627654248306746464812033124446087362361499582284225749793877558231027706803432391880475949168156845538372038930009464644340638473874891628244493633225236407487637502737326750682764535372073031120923921470816884804964748748876255077474433874494625461621892495803507258298454239893762875410985146099683180086479868980711081038300362465354078721083476839806860756086867136320856933460261014436557576886136882689152872998400081453838582882092286706467365791100465050220243835423733213665224855686382693854996919433676961991446275254250308711188356641948765972050958908618191405325154733548462480545615115526620535727341647440433568670040035054972852412555931356489557618166303616431469831221612903076038833776861984929306053366642344247005874293576989790397953120859356917883787917300080410095702505192887828714001142138634581018408337792910087984649966999089909766250196008653869292994314827307029280685878117931682177777723530017623944421447716293731990253647967407591952816220262632217849703007616713847586022991200094652530888439258755876476014464454565712147322631208530707899767733885504551778619637731197089063681387117714489986510669802819460289860009769142314241270835985541806650113264210851646358275516988506672365304533915348435658831822317458971042216953152536007139632046903603180053449383030070063373121678166574031288705618103969936009823701991104712922928660357463821520072979946202184345078413416974896860065094196525952062004917834828381239134799938130758871325664967852327690933218951683735143181682236610155702108474188743048021632774670883191710672348516298641035689001755501438185840643811118100906061421983516511919553279979533062666997104062740063068446626191663876057964724263424147266838109472671718783206647641733632280328290595839482060213658919729797976651596476004796523489490304404719129163920781717643981694831538099491814720988369789981875433103135753465816045658322547496913334793897749225411444437215351551196323282751885432254159349209737709466345383498768640425929913642529302809014120950268576441828588231934914127033310373641459037283432282885267214308831624638925149477622190181514300143415095324230173993400620802838916046710934371221393183104374431298153757760509158362531101550588194912377368299688624118586577453841614030000151110543335054433883878064941757214331910276385444910798685054922979120258315628663583769823167537654287132154913202108224269186857378733470809066353610030331241303696928378817609196767258644798738323241523459759701826988900754210313545086034817245925360088494922592422677561015136190438466954644168451155538678306326400970878851163186386086289635720146243745096350154103741887282996373942285638125671195430602225154593935759936885658675955614869765216351208114290865569889495133513653896860652253147902503558068049615492900600810461075434845963718341215357665048050940017473397897633596699037207600043052404510015605723800364441920610289792916992103358919816480652443219790995760532594175041008675347805659098505574646815668965680253644283373816190197356724204860726714388096551372743764881661304921133133947578709178810192300531250233676589237435759875974820454649351035402947537304769023343325297082611597196400121158644704237891101585662804190603190752651222688214724702294666327951037931266314602205935123002572370870813497872787701736925428526132685606855344063500507683652872092511392774958815078259092668457180336010826977481702305920575962355796844897876081680313174635478045780221941064193533054825843525630928196055739398358043139740244180651290955586152009335340446865104843157178654416058590806443650887522825898042914278948435401860807022900173361496142647076622589997584882192643226152194274814294568601958447771018602133225364117991271490893307891233256342019142915311237299618307830753839870227797856309467070864163388664560067719833310000386201339106871240611750296439648398681713925099835525131317095818873671619386557560965065946895692589263712305301753076031290240341526991950084372429263735943743251656249518470245306456466616769086860626991414138645598353654381715139055817738736911028537271887959063092235468797053476474957859043337453932727732038600514107475748238430853898824926732857765110336478002283654651387183209817887445724049325375128496387440463360193040391273008585585919333938650502665772402036779137650550065874817119095559354243789497605189341440697209591846064722648610726040032126733545182421910364433300119461331133959762096771216984307984052604526886598091994094207610607351785853612852163916059134754803160028016075561706894855461386470603839239355347003611825588808039226321975316535693129296598997111856510610377234988785018728058620083473675419286229581832289281541486221089318469845795988540591902541926451555074948228210911453604880517557324556879276617090957861975627238914268176931782206002569689922819615870704805420452043993853310976490264728022801977756925949380763086939177171869794682452348022389097701648283448177527738769087407391052348702742539292161054133874338675224661260350524973342551865416670838128006054728357921066392487411174113847147242818499627377993491170089554785275583751730598354608639968331247748534555699724846265494517256043221496459936899552116059058903138113227588866282117980503719243687822717694101931302451866822122548932331171473283860576930976093182377497403426663078217716239348393149322832677934958669092970273779991679722789035095397965244141387088597837848155222544587651950593493923710407494448975966105281333126845505602431506804979474792223058528652955257055096645565390365157695144010783108716195197061210511451277092842921268743992106205849673112851934406495209342264964928830922063030361102921053916216270433727279306419947315762981817513920558667535322738553292202058135142389137461546257540811687722117152270397739036499557037847397726711162948635521036194435089181213619189425399271865729013523277244246137211012944776679396504910820678091046596119736925156925749276488770386459515698263904265065931362779971821912751679453649352033242896610417473302065812537357549014133890727924832808160484218174035507934598843985058099437963738177800158344243720710142344283345931209118432063147868139992638950789067483245209873529862430915895277989575911427281412144624125644254306178596884168737238983184724674314153360866084032223341518008002794419044202950909414817276351906125169278796718542918460404930620327464176824155487155741975505687558927264405140541831535576118507867628317846359918959497993396773017168115224524781825966671874464501014643352912815924736461232170000148501545540268087239611633887989435074057154338304373750434739205364337163506002999958420678372091371529706852162486048720636020235101832039293927019483105359501925720326466201051071287488601536848799745595758871274133319359834126145009543621477960736301762561671981731677263749481003133413717396802733161653948206762375784569305844266201209877871543592762828531260943856075643576886444340714018642857157692777846216447663621365053052602817743829743995193994186936309878329606118664833576200717879748230093438103545437588548436225466250460942465484351665859735594307735572394948430371559997126696960686375523601098955410404779116125852097912500574129703810471317816801281110053714472895106014188960377573494709440845691592088749464978958262836770535802586351901602801374722400679149905513219623803446500493148653681817829803789667167786169303405130357238115854252356166584992772666963883462643032773794534775544847834658647397230727412517335296064765006832397258856811624073069205480586121146823841881014854294046787323886859393813698008029067103222262684138081818603094591236663500178475273843287460667468311011267950564816609381518913012696775318497416136602042975730864931639837590100535649596773124503921477975453423929866136894779512808977962494497830807646527126747622869301411725910018030290227937595304528295540054844635628511950224140902138189910787684341163257909196546294299664520593145468430128700742528378019313895784493948279981980541733945002369296407106454742128634024951123161754255985788375776068435058974301373638841021216116112318575226390939699425349662696997212878171265182861161128061294993743783186330978517669444848560175951855027316714907477939311831510192108546327819840741714556260436982341241108439221278325960797022801729717726363175398794862215732335914689746985078072650798871061320964200375334096128913548977435158318288980628421278648360348437722955676070299410222532917826644310162937925006779779472145771307428270343170428145445758954600807850793726090088734374472400965926191337965881614610120492834770352897881140876128679623650714596490984811283806596073789020436373932543694146819089571472343143140375024314603937081753166672670789301720535988344497866569176005365964758626641350921884180756550670159059139556996396021098197109204077632368844422307803655855252243919479512298190950932450640859369926789911515546392610807089670657606032685140548005631388133613118639832526361037233564752572280866101041392852223951753298529798904168228588233127203885927501707788793702112153747509060348478659095757795686061612320913157386498531139497043709999593919995847504176052717107874527595089610948004716757639147802195103662333324233734178485691612174295717397884179764987212802045756756463045297739894808528560954260375025287033487356433534998297046114028664690275787035226530643800384174920683740010533742219571028107208201852073879966537210396425793182853205589069031602486027418523424233895385686665520318672031246746235279914863044718382657593682503637136510808129897254515372641732501303150205170499779332541802041691762936704497530312580967530814224422252738325676859675313735590187226205814886859454889490402389723873498975826049004294605998283787513920557839465669865365548607825346567691777174543405134962576845660895670584839633242238186283291669572820765879502955663533404800947460576458462192429031764204071762017530518684562724081619594279540892578939798832153748917103322168679175688966668278011983675603804673588907838279652629516711822795061955980916558218299797798195750869611723955943479783307063637351223538314628216334290909687279730715672795197059583340604977414950885007452370909893178644794479108803484998441548812242375410343711042030928421515572080356740783308254454832622597688010607019067983843698475190262085800651057957336684530850392600587361530665023762234393115131603699105683782241849395931685004306161630633047061143126972259444877447116498151100369060177149522321199604468771599680529745891502314674422966479792090678116562383151332907297038252631281666198766373829018768346086219742699996341991934207412061634863953000467040750006696027514002444222591802750579858261603941530610093540612661428053136104264222737325285448658893659864562803206601663989529143234083388046164463130694609353746787122947292726192447693312084296065310616722796670947552549907190639797272419256645821058321056211059157331810638880866609669990658582754447588447048866550715872185258593390272044869505103716129854855535129783817638280942795842530838919785016472942734785972826768808396760427512472020372982113355477093721252486329821545216366410895578476746740176159456429804369737111049150325814955068137030691118986134011608737246998947964163940068335778548654329030690058600581828981192319125733013263754841088257880005457806143808998945898094732190522712495763675839778371276735074490241581288613099678438934177732753327959279514760029238345451445250775179754951309150064448965865783596219478288833666949128070906572294077256616959657398194918265747292096809288878317033896612921871955759441238062422844243455287698705110918477350140319003684468835355328583452848003351993499975881511942127972140417886693277257529501340513221793549712327653925619444590693938637981220048960912092242854615531056761284336294051703137875797571588573005040763880791458613003371356176878968355726537606181247635076873652994367732147193790737599804486982460974999272776562709217825992863085716467125831372356694026044974029804253551830714038119895545348623360163050598683789440460361086388932802330379656948935304508376913023951086442492259310275562993293202090962034303308883721753938808203557882091356860776617969995725880416886916391462985155931573214546908968308672300134034575965550545403876274960927032342975518288731677078843445694862577025259988004088732970233255537467133899263946066350988698344741227400641871803328788677115238859156366779432608350306103416714283790968014972504421411067892196095161454222083594446188241929061295694032482909477621555589165076603875024407471520352776033144787583881992847721764680028048100650292298397434744643128344755171863201647469363017802236622708473383422563164964277058469299007982415288369750891939079629859453324507347224999090406451720455106728941380355891481516874780426072972842325379045951977685856299052099421386185621749220759005352224011037521002286262325090568179867509951123695253152432869144928725688073543474200630896294637122277685408108395154532655845765313161344598220506031051204928306964354348238718766659165483318757519388362725104784523664114357652817285968190102056075971791527284423106650598998798418399683909025808640726044086818847033362088193060232551498656439553206769425922522974403698876226431201596613923474344359627469107300754852174551854120046064321150130901182792464299053857456232203554620448023567427365547117066986676521633048140042710974616682098193623669885764558557352529902654224636651549360886451384935665854668469199217461885735107936258853828972741893273591246774352417358631303157805426480433391805676812150926088578389672426210974858245067468624437597829756831911829906324418076163008104175427699121228329827869592560369337250949840312812957159044539747172513605128028023853575465894592104671552036860586981414557221356120530781690857174555035158362592572485057988713509543696042502597451379395292833916080999635291706083021042427406463793374626769201784600555791726814823680106294027063408662203859433725573864128493617575963887586396797126041009807414762948166838501878151283313825635114890277078428176839383439927814570283830029306532607180197842754044529746037427081314563937170529710335467397059494809140887893437343553137555454012989178727555326415934632210003814830970257303036776699941633484584465726316554002044033066740891702995037538613959514618455287242857055268447038865491829743414914464149920392403757121681564552387068228072003538607192394618965790051293275027348999532119855542794037273324746486493678252496121734404950354003284761412178897703995500759580817544533377312562029718337717720888582091359947212898373725645633243849574157754379681979391010563572369666368117040432340551705356436675972583251642792568446924915363918374593134860469456172478297473027435164958162942560534056674405655758986897219384657489930197875479403299691566788815158762458423415275918038493981146080382169916753478229880024833680846815677637273527050040781956221259992258402756311832010942315692164337962622864033506596210680389946462313394909912871479315431089300074450258276162958508422729214064861029726910491751580418058205926381457975783782297623611724274114453366330393263313028170534190040230489864417919565376905223387362579812749532751751199928123506672790347962416970011901562177120436950651496872955110107729701444219367545548129786096865673471232429092416826773864806691086069885733666043181413316596094947595172604487645408925512359945782632152135581836650723332677304812145836890549135036080228600418993271421960896385309949017514888213571086131291607878555694494794808932657425458997449360094156057095638707418668668071153260207578953716932643631922113431282237649144249551890659005556232930513693574169544525626392613174022974743550258547101106227530365655419294023666717392253072736362700039311951812831568530312486805351564620565556171085437988575490197421277585098470866069019600041701368149986559049379125028834033118209035225226160184516016580056619315155100669255792006459015670149894360135762185834772919354932838040585193913324413625261224352405804941242045294551919730182934584242169644750831503758201604756412588207353072653880611110228771730617387542124278561954512563953072749436825865951726144304646551953870711317293986116166717278727451746057718966791335755320292244964993928111166560809577003910130504460752638962470755657405977884143587384034089659392757474604125384183771567757776199621905924864981787372472780773756161702643987176394117048203912593901912711047547101754652665275067160931778470017920049946879134149621185894429349268308309929291177104603206750195934688556806242432211324084182330099502970686453184562517819257801285119631157333940659044825365993959029829949816641541758457871739077985338435232841365657028689693333380779647289956306579056691391575775665036948267503667919469767934432831126642288766790150282727222630035267322159242518101064287496021039391630517008322947941089271651976415872840419857500118846228229876289185765397275813743197032776455826564519918734949807771565161421182340010125667805668640058659921047070144057425953481768852459769927674339209340275994483125193136370572992383716650351386928624542695128325926084931017362457466528436877255130775685277688552197352084113232923523329015607846119675636035899325899482924645150460290551043660642111759323550408952082693474558973595310022907356577449087300906516074714913815103019048229443093467413443275353893291841541343123713318142088951122199849553090300865676516813640916749626204667818837086666376659245685329444410159900546763650695499255899280618420404249677048916715328658047396179733287771281523763387462788650888257951741792995056685882571700169219994898556212101751193534305418158777408576428480521837331598620674358411384031206558848641682977877915575466045832023199576409317314625585001910008361900092518304646524978649445765703523559556293857507052196224575342323500623773250949777648675836095004912445314702340034897234102776065354539104485735778312766506940793209940837004042517569563220160602465450315406864274872934742053511894436486912780229366118162016585948361698147045320610491709317785919240783643459911225678217370253911477602552448592959093919667702779208936283903070213385564896924508161770905645905677613806820970937178723814663135786418207570937292006313785429427122569704895806295743860133359708714836094293254457069450310430939405919960276468270207082483987718434721158046205660556003601895704914042332554911508788732414173479933267987640260325621177770997057988645414590093456070140131363711105987066242526808746718670545092438415332625171327757192383925383681061055143715779690819232043610743864532363336859127804237880008913623142430448729183856971229459705214426029657244687641062485430255747659948375699235997040055051887347793701397270396596451772826927596071211451525250828702725304527528323224712389794751900582774416993478482159216728181580869949335414200066396898885921845658138984936177957326143373056459274683271278696572858808364223060643399158429812606777859787174877611475196580980029511182472003345901403437338855905536689700737927559073522382718526956344574153217672145750315536648148606706137364416573500787873821216761213982886167699377469837687027512476701352459651250876964624184769982915859644620214898209236817438859280787008960687642865989573903192050331324594698163048857594153950003886549270855931962666904389762443437918510661845951784249037841411214484562835030600205585009151516215027349919089850887995300131807099552652168896947595539696906865075267798880211206036726007210219267340025031576245470267470403647555214336575101876012373204605132045372245724357793930079863826217152233196575039805503667398799190417334758835397480333496242777917720609003128979843460247687930361167515821826338546681051935640422130000587428496793680393940623411462532172154108576243990183959787752440915289222139764615753439124432440645029410612503095460598235217082435434938240732815733917799363221688249455799969046397265440297061510152461546003411038058392386849324557242814261529532333367846928273065042479394351198069685451303171449884567584131877833322990632721948506697026994415721999352332816111500214327015932008558500555790434239173580640320047836643749837046175631762025110872901948674085578971337127987500221806069790179913594961088083579791311088389040480385927990498109701268477050751971728428645039620805959883773596227709610940109093476952276765757323814742333240729065063526803755028332337517137795995401254906701517696357605880936202460187448574002507967292481412534299072585300047651189888601268807310267833295709822209292707743623764506221399970578475530288771793796575321729047904773779580321230064016606941276239791273158966345910856674481343027423761550622203140816789713260879640990302726744991667785736172396199227440343658609972894416416480583159521318418568465810338806841105172682489664904891983401282196281103917141291846059230347246304996223935132104269054669247469333805006699260671527712160015172649807902795770123200799456762452135701898909204297013283150865888018475491549724160159165487323308186672042631508443644266667368006256988895193473962883517790162349833478097701312436514065760107747341833157577916831795622693261784648722753324487925125539868603188526884605609048867461772363118443307368534535986366070106070007832911446301120776558317814390899873351223729388833045601017665425891484073480516983300299497085492173417471904269314450835412815882692996256410853892890005062875976453027549303711689685732880697743226444579684822534159460049053724089586405596160680741279738177535058451250022488898302260676241800158366162142440140890306333693739496954036180017450849604206470461850151729249328856588002901881460921725343490238905147179491645767973389441979520980965723253351833092982194949213973430235180037326154248497055951479280941822867687111574548136526600518343438536687409682296939708457274755477246016421254282724764447401750384716187578729960879473611855700697242428060213838353198518310471272467187230201061819965023006496254231601218380468517231572202729055830137895229550003280537458315130997917337500877755464397961837595748533106684193385934911535019633886852234140191627106296487833863615681504487489111179104400439375403530338520047200148142568328270400752814420292719266724648690225061858973985444701068212499922566523868223771878217629789226001617454540202092998060418529813830268060472827212946262742704354110567347133611096705293294762528054743919115068094607784428903930480582444221476373243614799173525360439608664118173403316706951728300082758821168326598866436863372433485984851174823559031588108010827527937426478269123609029857621966785147251251426540005290053716654814163755799403972717450744570602810819286119351887007287874682931930976831276543490493624249016007571725062915516244426764937454993845555417025469949629556650219609745352647587511091674058515779602673812837455317241101216896146684041588631879835041823980823307176333185680002299356919541224927249468422841428128953112504544121689893761446371723608019405516893235172321190317375542804775363141582537166290310331843383908705052762285620425365607632247172469794734995197507066575712234734595436072890362741756680066364498520927198066918076518652955961736010042411626258913594941680657873487918694497247304907408973719455109830473256171608682210945398017667612847072504188764988382641374859748325121870195333072129649774191961963711665297628321612567715131709683248649670169230930594107125170166897667029235969510687506619294685606178876670402361171444714180851861698642653650614815865064722318649497133501505622310658859501136032519336635190899141448093793058540977393923931355411797956409817116317564317347991508202961052312947609200722103100819747317293460703024295304149553112406561264291603742299245879363930979335488028593408943132782505449234285761245557121543274018684108044142077776347312922418850693356221435280911491689619418106195866935897640561467375534988226014327431085898675464652697853640625817660831901284150283830776090246838570324651119554005437761995536835416379891677573968595987484944680126351415561363557106004595318596703087261611001444576378822124714482485154455487903727602233596462881922319904622234613859531069215238784558593670634319318214024929343559691120435844542699331047008566823694985162086983641676083743814953903090781307584167025458441446179860972765779353710719253849010026282336804394199899434527344394190226607757044507092265685089568755968198540249794169013410724615974052537522020323187189464532397790691624435669664802068522416080363808732334032311431472396631010420842156790160992003225468315922823320963191886782949956036238027649843236197393101372245142416211622583291353553059969501179262478497113121833083560902442657863483208874739163869077136804916468349585175385956237236166592885552971536314290662417738589259666123166897452363601320197147118683915526183625801588019984342360122216587363593250575620696680274022458654022175724304537367285749793677964295775697291647344637553414986823737997233392209603197418504799399461107261161977983502326495608906202863241534062052738588172673684953070275564092715075236349268635001739098315440081506947841859217277582076983191989054226607754791171730904363433745097412759843878597207001456813301086684994297054959516175839921621066205300197447350712549736320495916154204947586207772375767592295286121748988708370706614171301105526961725418725153304252765832058559078581251324196443914318268845873646264592328015246838583848661265386463572810242664542763300027079678671366231314661917129976879170201882803409061735966962579038056190948136786881231359410943303304567873709806714557203293784208785303508670208591895996757077610586548211254785559593303985568294426784707248561660278669100167135618379208349465532851876098982707319754660620219246000055175261522952301536713477643619069965451907118493410705535316605130243556245559082706896765243732973220268416695286648770011171825686744404885258428030209854512682761751809242972880017207980405026003395773066561483663354020550163600973114771033143898606642794696078476123375146076091287394936592540369189645768968818366473519817014450159832310089577023630150604123015503301706842195241786059567648061325738753915574358554382375633077917242662410377317404777354680401604558634118359343116008635161840993309542487991405552775334121251195067122025921190473078941064801978499586953085666672713285070803636998484131911356681508523430423819302695993238058985479249255773843885683645466987965166033438731433811100350541996957628355370693921101767067677268621076456751687166144739763513867701122113947511471528289636106902064605209851570806528105394623690874076699127166648003269540504824959786176510200681803952529274054081991638931482410027956293183037183525655828031028826404870834068391144456436757116594389814194706623853266130091669606445643391689760686445528103651526177542892393654133339489540989517102325625534683671177648415630639555490234955634993896354681129899200648808795840229186759850122794375579247036569896873770940766223835233077647424990182564511618400778750380328747158334595479804652522453173903650621316785413680675253473811498004294065429785992954040117184868224450950435548748273259251587252701970281938166217368182392922506162868918575051685661119235705268159179448161663796733144651536489540475922764540961297405026323788886415167255557990878299709235440827925767540300419399061734936095186517016968471263111050540619819124767791122019968242177088296770595815277543538162771392999588871420282197346204932081356956923692306629932350040067252325940226144165482083146278063602682472105821335063180770174098202042452878018434304752019795049146150166318726986796582762173241119517086411831448303143784136752733030228201029992329953246082087708393224620433175521411437168255150036069096306863721075545534066938335887132020616603494378562676659028239324290855894633556360283697988015562199178125465390092112188977282107579681064463741319714353383025661049688533583987605853416377801975980363174977483707427077878021051509270035792989862247013537482951170296645966753283415280875373863223782850214795655327266281041717042821126773010030459685234027206853056868252155315854272155809555212262877334479496426078839264348517188155470351039272620530562650805314324558716850508167554532496169630265545846808260757755903703600159016251464471822099446360553362403045799780998820644094543593395001608139673055398810850618875301555798109676444489634001436981299826793324664540047670344647377979435793967626710200722092737074974884547027634912026266503675381231468739325827888508631656372249065559204208978628960771142379453435059647655731137304298748196454230787816856751545519440990667507796200406337779235869714156174463408816968858131334129803696524617395193431109866169340713013777103598810499969652512200908308821539319941441881761089979586331521981681077504465910568118212258510552880390922347551094164220859489078239261576534502600973806109312282397331814611930599603697024011782650294223218146556966936908873740689097027731196594191365563837059282234476202282217713792719130192638525614720436866816933350386584020815720889988715955804927874226366504110243007274681794027887665181437031161634001218091701126718227483242809838200647676031113234318219021666213081463103225506903713441318149266918649921627042548740994122201284797594969921501070990616686145712888007060169915727446011062545998311481743351372665594517373415042345765022679294282231260227817115071040921937842855929425883090653504438992490116168837630504800609699031801581962208777324572678620589885214255833005574582195069629480540540031389330319192798679563844469227238722331738957608814314198951676360046429860652609484883133916677300873096546567588438388129246391011035418831832144856186340549736638096813229124206810401186317039390674702439838206152033033525268276894421485828297247195961669628160687166772483554111753538801748227537674309327856385493991897655152584198459066674431692532679416857147420164220725240656940015189906544205825373051445273554800021082476003676310055193118529950249179786977023106342540850511801330524936392501085157338386044913993271836479235440387416898040060696394975327643758674229730157663602710060435030568826488447569291006512485886173212067767893793161862313450212691037346458766259037553405629784393938395802302884866485348643605101994439987078582081066580366472215570882327322368664856175120154886195656321978239159063067848895163767650712936358641346381451492143645496716805263237768929720547635112866141881489797939315271184506353316779818753977196832993690487339809051539732080256336235063088116427866863971107884309837673593613262618575741236908955275164806027675152553549044438552217922234511265433728540264402870455338414161516786717639932221348528447157658971356224313449199922120466950334924034192916522214842305743584749619931551983427940894187132763147222624626812861158545291200874389389898010146525703600984804057659115466000634554403518114973934796445094108016631339403666311348040579620030739318279356042252615260657973791982419610995411942938457994584905369735972708297496258986698056951665877482907266080902970425600410180830099741920781381648929673837430369814746718435726291619348730648314556414527054668738131686674531817831247926730606441395110913111970806610550767888268063804169468810309257609973316134357643358117348944788458326200185267974491612721849883566231261430604330070609557185431725823985213967602473376882936587655804024778423691498583400522267276277724732702584029527201538892886960580849880137994562444109065896110654627188760382614933952824275337303884170017163695168134553377384284620187412424809693729754407126673044771676945592581486769752031489861227721270050547263142858407343905700051601120668710784296414594584624329513713947993328820569828121137352837652765971945729345639288197000149117908497903455828121676254781121843943428891863102309285907412620727957469433175780377721990549686207487817552774491914966556580186731407071428989297319182744870146430386303147151837832183110628412642529164473917052100406175527927892681928916339688870945572050208492813221832798028381835157422899494042425393404552618221638772880001441060724468209291760092717188549189605666429953119149700480693662393401308457828527574845771503301908266563837036278308493100228338289309414003359823166786805941138971776286006859622718422955364663193811400842806464039308150093185504110289282254604867256118842372238483103176338824574779520657074770806129548177823433690112473996236785517482072244082471967356359269129359204882667387223843415781034368914514405414085470634894629582295486202081880691409331040113957268224967682378622959895940408702418142102344446030788845885603758508838938440454737626227765951778491402467150872935773394076867763808807277404245655843027440424545092961613533940113838537838888060188955231639252203189439567244109699986660715119652431221752131629374127294734864663746833666416502159897204043126717400593016582116012194689613192022426454948561831868870788093935279660635842411318963638685423212585960746445445087727913440566101765082330052491211925715984866383116762330803115405487161436001004275578643591327776561211577557136643573421571969327137324310590947872968010679088060959911742586962518483965948938745760185281656756359333021683608291794241901457077516301939245107472965395600730350317452599146421408228440052824022348934912856125090306150056548718152356334876222499027046879023238623439375419738500073933533347432886315003026959746792469060021646308105455502790682935220251854093711425097487589069209312539189358565029908873910569167698382376042530389176928293423804627923538329451213554885924533567447441241550914275580603688580865992965422424872544127917290372557753661722508957967935535588300409891704683046939233253444696282646606948658046178521722871954986683802185444496638800240933756138340598419034292435536123431963123298230751442130663983592938275120649277163752049239539914117557022100385657067951685118530315063714380283800627665529695406566085783953554560607577791406874548789561793535418540973579871047454681188001442195365269670544959865754830501333999378214666401041231434165828979242082503092355583450569995960899108139924423057103637858905741434248804716611730709111383958768219130150010839191838319434575768510168519988249283477972221419704722801751697400005827451863617184453504154466348858847690510979440744237638052804785116375434283200510143088153161950965146422955624496700651992277607428028761374808117813295669602280986942137955509116752924958467490792837561332096282514063879452383388607595805601959381939032573962606272065148250641599198955051152977233173748334578722369864101322692350360030487800487569818601929524675245212924895399224786879294716295798779980632880686563438702842756880418219582279025478212060253718401692248262179237231765386472753087309576527808393600584792278352970158815324554197002020365090759415042342327350268472044733497796556879924954810993067767858498712788511045753825984431749467686017072888625472103690014230073236187887964041387578178640712140047900358260687740808169070265289396786417243912987085462142923610585827762883938398668760536177747173177053718634895200896908924107162553291327985598593720202794260643080409142701753849879338916558595655874741385878195952265966489953999546033419207398513647966588588397866557940543593984097478007439156213961178993718620800333437985156014761620963567815715751669040175948210694241497511916417706504226883915685711138416949621705864304898674388759401295255154999604995379100665863197539696017711047935572814188975834958891708291197833217080053847029417532628296173841746020709004065556009343070966798495361853603672337463867482587928453947895322353052311674952666514928081466265990352114240764626640411711826894222171742448503657218191909270046303786174356367551113281241376293611164136894067978755312489591595993500072107272218211505201455387039739837333219012205311442071950626342854246986959270616963819941574082497757832364762544607703022596807568515256846922449331334637690237895767349433385614329868509132962266531760851928144576603956756150835355104182251123165710450446354110245488762451802075547674552865851548820515696442175566081870624326022233099710449151406677339273166268576317607927298149364039057137600861739760704675859404023758817467610160811530191205183714188519242218614721656732255801469182369938309160794498360004161915467358721620318394874401879178418438466453261356914548167439196066055115682750819396610836775534009911788608118194122927586751607988031264805965021035413816350408962003533926036403367925909103323602582572228962535267408142966849271336462463144050190697485676139391444855597467240404989714136047076017755845640266194124857624133015150153875881336776448377410028463171434846966959062627990358165334493965384363955389903460941935675007020152913137216512173956994557456768838176244674683906419245084492730076125259953224458595491394144252149443502413265590111843983217406361413413785089591358695399249454056033197977063325203131715200897584474043224067453426267905389108298058536977138925962884376943822505886574897543003117652786622766498445456327950248636990970474321045952023040392874618195511947674790368912584527389373566778400632519751143282394663005806006645492125524279320490145336360455059007419340442113460166173227794783675911502087991529689499300026360651351079993601169423868204793013116820087953510242262783909525982954990350948976628469553655657592193883341286185806184701797444893383837093091229715694764918865184522955689737207843603876106792127743276363828953373312879653220754053744291699102866384894973970341989888280951475309095283747007727599995703792189400426319593899804570982666293142480468994531077959708934749470358192921525057066827510205701683227417529211799762960964582679740363508662643031566012158145431722835773561952776344592617863356047802319766346379454104378831244312110782853075133424061534920309913949342908902107887443315787895217817610667151021266428011387734538327618148561959932873137173984007950350608373653902953226837598733925650003736622348451861710170661537640774465237649803153229817702623139850270756342237810061845843162781546492192490571590401856300497784870912814866770112802586819380733429802772711922405651246939039063046354732543032672290741033351982475434899975479108825014929914722229652877207903782827407762598891936948618095921799350920146654654230507481703347602098040858932003548826044011355444466330895126494736798946803960763649404340095526015515729026134518738797134223528402564533288222594365769938267225580191055180683587433260198564009242897795876966932005254807741008052841982288638236869922057008432088584690856202216554837164932650698880866212002075196857214647945577358683371670873874133282609215706343550351686427870078561213610740641124744055764306990516100725276518711385058503208234617432877640990012483290705700341420577803720958485449647109623119366958231052639072807539069128249912887949452991618579216687583132458978676413040272606221278978944107882371047660835259909045912371525658269234563156724328366658380888476048299474585616118669531002450475156746195063693930199941921193321609275890259666479352011641759824006833354956290373246663153476736368827477070991374780710339839125293195454937697342751677878542597658780607136581172727584620340461513242893160384432872012943596913031292629090172199035701496213391655920817526705961500251255486157396362236586406291650469836239342344528250433602046508369581836150556030768664512277573340749580986133774911205265352906018982578676338799368281738428167943534412565863806593588702754927297045394455333452913360881403658025851047575575405801783268385920616052839702201553591935638245322892288220546918169549984037149678492033630068416815644524975718734573818240926670813256093273725889186782477570579670579368952577458204392409022457686222954076382131593459004056118040075036782808387946074199205350738081004761599086265480184924070226543952181753611761854253677248122730818123721902882658255990992317012881472725234557424367577454674295774112552937082698876848479064131685982616553158696666199599990137291142287144034610348549471574145871647845268626030889304207610195902215441375832929658610647385432050719828402003317846715525889379250450579556236004988101092868023161589293608064788432908625910374809955056728244701056507551642083871121976904739024907601390710425583080542974390939518903443528883262436164528312835113710113308789985558271510955291096354952776719273234663488848507632024336816754822259053413945575362639187044661530205308654648345460185983402859351216605184562318560639317909356686710958512737181890468370764264618583220588080034458390590195183599961273023253943292826630562471529364902597142729768317898859436431420640489590582165243472664008708740643281737881384797031655696827525516065742325075591647002731842578563928083856623981535370339939393168684841048239747656101215609445737514276615574029997715771213248291662671747453405463017187142840267674917795079936583130502891326149314739703744605649846219519192714449753570774389248727421850071413002793041595003596386939142775530875231541069089314397691912015634302175492487257693937734205248051005068826419016152860854328468974765183894526416324931599382574246711419047793293126987554557296912387887980211860794484248895716959084603121550880873339779257207621790268611486683523127691268685962786003243815871608846984863852989584632758098796397666333567289843969802203399731091468736006020780388546151285692139783065344630356688332942139586301626384282573438913581115608402451366557085601638149974897238344434841614573582801836526702322336340699580939065733224827990520274432156668227045341483682697150365076720474715258734670316727224648391431161997538502375964301816588453670612045893541503163420630272289490110386988689022604944570822046945057916466624592527966560496711657496477810850362788988686815770313568403294793300736041429494899896317906985322358477654407581624570249843079764492593732560873766252876940641430908756151160820528212261946568645133408006198011529499365249323214941706938892861369851001767604708585014939002085906298990904870820048367910098375978090003242481198393540670123412067373728492454297151806040198050233819771237925034490091417780696069669842753063964017011513808040031323666267496180899877614906151181011881090632615665625390802092204496177202875272294979081309536081381360753184750865585468173733069337774185463142189662289851349282209337322785629871183611315561240492743804674726263346460818446325215239241500309903064532572821237647095249142341327298809365252695019935693883339493577428807909014999270952670143126334704683582145369840054349649765412145156927682966816114019133577215938465046686293271807522707035206496537556282246979780741631455315681174865845363039738775855922282541082645494369457158282168803570449419706032633269142644111384125594216142154774928708647564801651333361284798373042696662238519604571118188160211130970070759612174922154488220936261941700755933872297825195520656335460747114371880126620970550024535038504398277575746375422770978764506811192714224022041064382457161314400348129959514154069875718667465238835526284901222993605707857277650642836971598069365712254147207236737334381552389729437806186210552251051590908227214672051639533477412129601812009508421229436796829361475065929757941711233538553311892931302603921550900103815390606316100762813118597979572846303622447936181100985506927693545764179964514036799494380653786136805240734690685376789076223770997417594290091894537810441849594846403792508877907166520885878913734835256769320862670118829458528067257329071761692983219669079446579062864744174485209278477589614750325345661222660064323426672607846078861177301460411407267453762902494069759619118536541770370927496155200162043933357966086674964784014821077140415231265236282457863211374335147878893235643509110257265195478228091648419168999848999794401829606141585962665967475861581186781486801799300495607598230574786116087045876789166974209813749177671173125607263835977633350154800014404787725845655651674804837791594705868718993473188866941388621804704659621350942019353712765899284657440789631097439658611582460075095322553894898740362261620240084261290757822052976235999867653887197625069072027260361439807346767081094178944890832893774266988218822331136244954107765769108137322850840447885708114797326023223903793819649836062368567418168349288922745237231215595466042412233508156201226338604546493126096503005004815555558311669396538828269759425750858334339990541210077254959637169066767058109109930879499853616574032953100151164569544221107396830733873514647039920888388745155807962332950539825287161507484151712869017963679002197125604024096693978433742941371701724620668528021650377388865070849929072898042699423256353517514281267216870077326470472613980988973723238922803571443765394062111187527222894688396768401461979623294068891230494468219593892879085743211383526351970754893114122615210395005628528801705397508252977413661441379968492010406938617467904424737390709146200468824179528618937446183075745585965466499106822541857063838206668441886718925061051252244648440005195409221491677247970815459070584535018372069070656293317707563210915672753455205407494912499548404560721944621828183836410718669159859809705853170667358658588644199676651670668085751107086355967576061491739811473721414385115851130295071304072666765952973904980872363526543814174658481153181525355680533777085794499542305756575684956681482056355062336638493937666943336430125405191290828488350541403526963642863083176042839224352502979319952289257967953094537420624344153923293063075198675721695562131652736081958814730057100942895306050233071204013910142278271648282075005492646119028795908188176260164689364447838496298035921220458950416663242502984525229666039736646366807316047040108802165318589162774018782703463135782706148358200367503733014464792576398030571161653970552300705610311210201998983396528471488401504944956060463276025532076630473157246194129131047733529080031782901374990326830320736764992346340558369824605228936976006156587884704329959960735196184611611136512918856308698178419918717544619521421708952663722859733764918883872796695182756913341538578981348818816812420312935336457110890740607750769921289988344858829916613017520992312626031756278341871493850916238653993433079128504241277752433339308377059322589562106086979936314625334076354581121936961545997470823948707786212454745733138103872422445510927510318853585022299282012055879511382626556831940833796066488250857566662501336377581141083485253155596419560276143480290844869245420035579462921517438942743154021292107389641406898710347676377190064327334501950389586515294253683387748332895506764891140329892949737155556255048580086913399156333177505956468363778173010962396811388476987791348880541428789845706864048186502805467087705317450425485134068430933532527480162373600109563316564509475763020003093217893487486947027755243098892890676742747679269173301149412096780659127672714938014791336337823437385159742462730145176817325875827375085100389956886779511814172855294617942244720169093393470887540980002338194408358252708754309294919598702392097165623747371470442687084934142226158854973317452548040558456445247219507532513381203186479656278391435949377052406575724227808005003306045510620297433857104333291331189395852234918094314155050199601547467858143431800336708563524720672873826599556118643443474092225817048838938946064689041720830817512712600440866309373922547701608543655633671957496851243136102022225987140632695114478624899770140472686450299067439485039753546481346770113274265290207258067662655200396217979633589247516745825674616522601131857925180890433865255276651483129862709300642865218811848058961232400091570392694945910833590080974900075179208165028479430497455217243837013284100813136195161946734006299888656752270359244182234310432542065364095618570911880808792562257522017452180340581215298373341161414483989153275475652495290147698426546122359578726587545698051922298900821019466837145556307108089207620299598821055383912190962570303058954752747441789617277584584783571187442844015919255623041115634315358308098246675450800385415782958488363437219540520161527118013464472438242255295870012930209090444167328351080403286251393397446346722717321088676745708945486243822014117674708007626820727739439872726300362259141456956419773311132299059405410891011588084212982244168836538429672684412327383331553270815282110974324210732237375942995868292315568006565325959575577524587626732328829948874968559968303297174344865160832548508906254432608962185858081590584928507575843315748722594123351853207671729500488532254785231758231077242644336446786896225979723981490983146807219843126964735591823110215147379920681556383221732149689925191480330520736342996338435115901606426217362849215328703423058980799686216934710408142033727950359274151209457953906605914056839453420161301588545268345737076961979700897931287049069303712874371742095593784520643888458350300758251539148812246051424807465484163970448683825785225268342993540788667517525796794317033143146950179845337320385781143143674534485252595937874888700869678542534945311188130062491063123321776855019651589772486411171324064538816068777739600883798570557795197878706228259461124060752817199541594775140604061686475023024902561110526693579129189413089221049592221609001133152134957317920786501316770031137323750543257564818298429830747839237857550769109242311222444617811995778776877100143305304222788203374011080048761871713432683559318427608583386549374179515529456719341605995093181595665995644771276294129800201680870643628732319033492090125297329138143623389475618416784244686071607195223016059585140292462334178860220729334456187123601038063963089821089594959142855971339853536012535363358197962940576877232851724856457053522570079525296529591949985075983525132562347114084976175835606352867879248773594659586037478098345602217616025586920738257968638337819806373965309043756367694375794342779589610562135282536883219948290239357076459116852683086876766664524490351157725824150585147001373292877032360319570012493506975831234300725124508754194126176277359096372567714779498297087532194406289593327056927010420208813201729819452034195221057108382143160072476138816723764088821717966442830190492404311768893077227029725758582817082385947195230486272211725231621456368435800244963589425990513648367410678792688212291210901546073954274899409653991886432327675252862743560539623528699268950776243698350586923186800550862896869829952988413533634342625217791065254141373850610676195530906276191838941408833783723950009094960660927723769196356546860614101898742030671550118576378801868353285255742213230267407520083194016156595609056640486332742598049055872337372590276396110356245079277165630236041727390978189571011781643627814865094241611547390846954035183892248107920196027976444768369895820671383699579492677502243885515541138901306249474828531790629375144385485186997664384636233953015948155594505780627535703756007709516708149843817359921351959619989502837597114630886780000277133469428309196476176122094022071974268479332198656265024170080388638769650483039644385219003885588205532730845154562949887382724390035835393515492568727020418773369900577236236124356706406530139267977740497814611352083911736498487951770498915038094208046846782542114014825038005703455032415920591624290976393737865458178875286547417312290111905300903050181478950737881439672386836246257031724845686445541066402787851009376916579797424024893680979053448811188649877371805845722180938268208958002306272474450682223802528259356911972041351912612272821998761281049891148631278660037373960570147661957164986103940291120241395810916426199838623958994923566443931048745384901665204982373758614846580964490586677227510340262124050916384773737662126913168499969280418492218643891920326869501488243821903896478072963357512526139981998345815445665530841012613312870315549548303872665676385626809143178263225686949605130479197577279116853118612665758929332758867878980610434356850770222097247402828217918943602425256061184270228211413949021591588574846613952229614526405660461155500420151121921788216030492749641418420216471645963878506863483406344599146038905615655905313272222863873232219035008718915346479630668175012519541513547339658000664805567094900562463298990396718084498405240551467723918705434568997401093490586186129449820854697410927815138996649637888025565013809718579439415483295322794632990869140849897558089600308912438815111277871789104497468334953096059980230539936528582020433076822719991249857509068313759975917209915131031602270643848752365596102637669823993142086013816780711800412040518813057918314866627556997737900193643723045525791603283110668100765311782103945100707004681316458000045289960520912672892469978602648024068371677525590126137581907527077926596624917721590057766778937324631645807449197924133163373612628026571695315306328155157119866156180087359270607536012320763439515361523302390868006605993897256362672595143477988594635055356474531831983692551330842450893004959736555846338560316658620329848888348685598044709063471346458924141674251362977529398768909718659846445654515799449673335978219361305879508182743796906688710522149756229212552745688482507946017821897753778230259456713063062518361384204373061190070521534507621019101489371229539991499210854527418777144325416373082848947400855779767026861393846597981229404103139176541533568741691218665696749035327663569703495406169498189089441275436715777901178688931779776142620585472097290763549291633642061095725045075078864201068051685695204881123076072816982705946945482712965402218229640507144118651170467751118494925032673722561202884485869080360738060528950055950555038891176230752159506771355482604909192755586080483946133967994567624071528215622005535446582201167539295654350797350543715908766926474480654316710885140949133150285381717658715378929447596488355123254947373433266857097892400329032266292625217757204133329894860217687576602892924112247222637311077014736879197592243741403903518726104511165206234473196146961979084223786746102692941468213316530766755229854325741791609549110040671371833440861761752270810368129683107786983034879733238889466302044067640969554521042914189147068619849400422348815330363930652861168472402876460055088978819534921769538943911061933917601834865534650724883117157744422997100124278660751334526668958299560205459415113576893698711441093972773280335849028311767497321470675581275484127458473159527125520563888082805652299495434163514801542620010748482042883333749419804316385419332294357443776197656433184152077459094714926050281296335857580873436006025600431740864485774606863865341622018801182026662175842439465942650597101083172946388134224100343677911827773691690845518304371940070441804345942295434679929568822913403464095009952294904884896730297630314188367291789943461876203772933750537872727847345578965775692628893630444058639971918621597004412994241885248743038680416321493594525707113375469773674690901146742980007841027313647041484991627222649948193790386628020003617898001523608512979673351867758864673192986910504890681217708968739327666220443629693534925361775453794288548869549612320273979046724715609212516907681895906000509999800307257617043021547181244355428431641350426421858283265371226645734448032854692252815998332329006178508450332179582416933738648656629746059533701246367251559928779394087180320189236661340500025808400135902570325997035818152754440524972812495855485478476155217498193915496010944915406658583883385010221947922161453037680942435424601550049804487858431430892045739870302659591443739188536131194359370999189671649984230148516465999395562790119615347820101401251559231337244417694076333779454573312925849384126079283120699479726484973720848108066221331597461591401836094746961464728290957580852407667588741709629744653539846186294259653845547383697158789605000485411155321330540246758152215281822684016131605027554347649597370019868569714329310735118897093474977369529398800693292441467875620794865176645222933352560368936245350618172178885056711467323575544231268247783288693052386676550569941330406156511266257301898092221044242859554229834756263182811247371820484827203248403033712821942089299206743924464176197620173401997172367265573661472093687802415450495972883530132807660863275725968372596842976109123125833371355181770547534702848860209482166410366626530064035231452491629571637605225166318038341949581360452978591213311541162656375404798142668939774277866622409527095851844599368318703889463662986621892420188353331516620667406116973838553507395387638636266887192738550697076997642408374296564576201614224357190138127724200100529094673831378907386081048407713315938869971439602187079420829960565881186807788185081558116896810232791807312450625139384787170508912653983933238813045363798142880557446650191609486810905569457636990332096078794941239930207596071826357520454874598833230013456274543991056893368954916982644975955561141219545623668059144669411272880452944395521635923194632827807631904184687464051115752650460219644806407834232881701577459786025328785084562827017012851412448252253903326070893301251555743767759156928241009001568082845025147504582390914329226159870642879361820782940036661128521311320350012616236003088059905248375142648092866080488283203758198925207528187720788087632658378204306604583296773847672390166443711195603982489199888982535744319600800078771782146749287059926984251113131922548660955630860765429209068519170493186148041949843061432134060109957641364005110722879663688412029361493076048977398532932059871939234030694246410357777482066785759758625403160518375708982412258791729940270807069969996040801604410190194021581071363645915024273297406081491759959418629611187402072949835126519261032688329127724836944288959293008864316617957684754849227091466128795895636724456534791546778502285393663044843055999546069700868614465527783850616235226066250318218834449476625988748926513436086656782899068124069943990217027828607742827790872771749304837278259087111393577602274301303843555023051368352199788661721768462602057957028068221020191046857373427737071647231769052379662558972980948765529510807561521959319414428683000740809706552615742499060018868297449624526469318305790222020606020235637207813235147298956079803292401021348700048120634963987918544282531101457239403181411894804542167301129568468085289895549295775515006118539469277541230973691427172522265237500918730346947980409061375428735455199338085435137809432078212920143926287825758835755279893705956592743581094708906426373393288298097841538370185473468252430316335201259863772276197515958897159597344802686729379509161597866297577807561974680193451592900423084438096414506369776649491032857896693730471720399072787105440480428741246918824667143384996749212311644183094475296811161388478637998912960888430239776441583258861881036361848634488364088129255986728698022747498872029812329436587870281442242914183611389937478237024581273164617202366843158970631488666703280369319283191779073400609648961276313376870402702840390961288426575092452158860371747855766482984358786274546015007961391543304202212066825277720233188746452574602109907490789646197694198391172068895885700351998132999446126740233361503269450864709493056938492318551608554500427077109410781898182403655114765999206015153702903591458763583844784708478462770197752370615095369219249885301786911376050101303870317683183347897775943295668753397723885259531715125016000087574567822554080546847272064109998547295571865661019170049927719869433558680016350880316429279977647636647787543819885590482455037083510507922785748902615217545906291751266380456299391378458581351440111405307015956561354102323770519863525637871298426402253738458541993399417165705379851813579338018211102538047411498284557222537133445453124521347134821491270757890901288868943041117911025438946211358375186296551102643303794785123050027477815301939535694790172568396495915590513789602808330997224555103504834290828697346255365018945071389940485344816093006961840443743670730240871220364752369028733811693728252768672899806097803636476342794112680872454638678493016439766425284404779006458737219882512270314127940622397028616979871160979167265513651331511753286147970861066423497106857907478850207646495702226607715715681004353625221732550693124813960711951808024224527004437734625074981748624676851624531236034366426472334262267870301123068002954590622190585837438433802975365648975340365005033972466548833742842126035967622374097056178408575828141689039562564327110079922611756403588564722018388859688687398635765162468290218854627007646540068102714953044730914943745894316824556094584042725706652972882404498732817177802751894110030863983973754208733189146162839827505746039213834883906583684605122574237203538209545265501087918278147240655220591159052180099181214793645285965694326850976836678983807462692509653332792760235910121136911882418282139298153709483840088575899818321156481882723217595234486118025035311406749778795243071770295523933634468842875504026870414707584498075132439792120148256141026703297263437597712510244532061119555890176308631858270563904390995306205936961935055905192119915974276592446821223864682234585214727199470443576679745906140182972898760616056825240272733993537524555824215713767136400348655943055024442681331754259077613695559525883094637551198497775883551551863481726194818647107780602407350000081032626724797616682639065429815103270946704548971398120014458105148754380087035196153558038892792922806851731041707597544487749616734391696273162034718125101583466308109205313783676325631999957703960896875693858460685114215963883051816182921816461627598746580255863243888779613522452280009281166041431294242011524345299714275080209681520954649820857496235421139195413808324455941649011806096161627151735739880226763801551928925893594290799027847555076801870511927980856723727226890936100568910028475474251510220653917434722178218209658774838421469550252167474946820035324877845310055659383175326878995393209522441920929994203441045944513889311545892535921885778032435815414058162392648387104903423553753558069430573054650109160101628515077002070992224177349237395849504033063390331058808503670261257752856187852518790777845334957444849868287435476327970247506377112838441795757821393908059046602129670200799736659028338349359267071291057042386554684726189728075835925670856662660198032913791947239280547742693486933242403980264595006650836827078224849553618634388747954732118621306615154370571317700302082376563512276745395054069200845878208130266804162999693859296009813158526803596745916655124224842225536591233975304356823015043834569040065100435696379719038550610355829736847901928753279937781602513479935554999214457212915636653527773747499823443136592579019308980086523494757896911604439153850578565488634995059313776735316409497874096580777662135459552587319787692331516465392709027333350362833620162981234514388749888253711934509735667703775266003815147870215580535870457002311148583863475397494462771054314545987421603786621207956929403141759146960460733272026793161111547228333691698124423694176918322420942221002065834962294836244857849278634616386284683544925425830037869819852252952889905338941027589011525683255110112861959465911647967507983221397526756152374556894400835463541787697023413899037940691988835653942903613661817794422957026641887249287864265401514924917129323558205848004994922034952309847281808214976876762415390186329112886286788693286282409178453247146960679893325940429025884529204868678229829411789026957694085049232875015992653881502664577768597373170712803765112286880743005654288812533127026816835907865343584209375167717545432092231137971086137589872457375296102269160959614020908230842175005295176440548068711499417731748547715237849109013118178811534140536922285688540624610966396545582409026662097093420691419463918219880824053371625728489820399962669371320940794794347264371460823913038295821897654353796795691313596367985143064956431033699502497708582282545305443309587781465851256073447544511050322732222002166907703691750314382665822102963676577020642969372967189781923998389765946514365531289569472769333265594661146028386271418645120972497698625801768769092294243481203692585615944315919143208399549804428602945318655816790712161367073802843728636556024344851977188046789684913602400398259152362261579607197451473921530881509542635421122283800323442180249917948602893451368360850719365302905467400220998018756207577595617221218543332011546782486107246975969861779051453287737233950945897199051220657934909647114448640083050390709617032087907670369596035579795783645382217773974132342715808157061448840452264920401959772410230596323218134483127425793879229437136495009513024146962738409253817390345123685671297703119072485172395270324087288697937580036220359534749923723895677567466159326044155390915203268092178854203062321572821104519005984071035496862767354590001280380246924881074287103924582205436454865034619462666973522165693982448223143783569327492189495963996527632074245807018521927804731809731184737432164112780770749296452101394093065326629655502232595013814158602581334247791650686449127620734429951593058139718794359815811905475014044608971463835264458167285046867502847388596375352271747254133928230478979775925156107601321038625642746527253906035653537125277075644101359546650473691454810937618608205118585094825388044612497409955097294451675027654612282911955243291322311038523098226282753367134521087742802899913188254590063058800685480608140506915898912576255819109796558273494654114979299761021608173445641258001870817145349978865694207335719380041001401069623366708941775069895417301206706026534466766884270056616118997209651060945686212636101668279570584553539453357764863726031338677186930057793821370203733011740992934683530398919118311914747540066860123563801495617697226111938940268847252346302580339714254852132057591096255485680797385049843226473286258549934153532782739009997406169390035500550585825422352524991555833849836209313508074829485842589199978650451010892188966419476261348183235462546083842305345718943856546179284260325230998709217029615490768813211068672127144671645119851053670169889343679529580177047809593605919784416286559447073638478911429609588841366733684548378964670096766484141500521907216946185847431219878532756522764297725675661236853612894213968891668921080277874107148999631446309318306285416721305195635815334785376095640523896892580297827400253719114119006360427197295847995583899690893031961599684511827827001522492749015151193226458618387647509116694801639833519767499766681093624756068594735145589028353390078129084431425635487881098418431472858207734561547160393752775375130655829442870193146689813695847669408103567156362543463371666515055668279878897537705063047715747383695712158005141388045326977026402617390653927112961881945259116424028730846518321643290203239295689182508721646431101813120181682238465203082024889646890635411424964782035530222535980986265583326374013165678307616139240163455483464374965280334353484307783988705981007129827819556718509886385159245517694733731989175457065321788599817104939401235544586653547351448628458795017955932848464021288265061054820666784435566192421140014775612696889377940267013943022242666126856497061113480490579787031401559494479809237929229660056292101344738768730348357573911422646425562828543088455055151449044798996666880697822508920940795757465367648010663245871232162669022178998945701858903161544914335232693658271235636910541605894381746492728625670001132629437296457005659187386131019768685075199217484162804302453686763408235217573599982553690608990080996865272560387400708049869939289551163211441678172747670540251595788595622587374702531477658904076293373548535950093915065796880118463561454596528227487945215851193939753986567846437997567712035174558222273635406962505013821578505379770935231754334859469647930084491755822351164757229608947917185043449322492878650642497170047244102073043141947655392586751114171234258684417443313507234328398107961254156340820674239214414517811443933551891612132491304746932543921085988989001216848709481427976487485915073716302925577784022815504184965272829429785789596755512394657538442255179930626929620039308272557644706598173791861811513006000893340793183846301853093943201687216351812747448853045869357624003604036535450088847863059896670203155168132331129020365460694009010581903686210074971408544300522077614060587111627248952164462002236619353994149151428082072635791777642064742834255954994893859375342349674572879627313154054555693542919532945603880768929560287289709220196012068632664032124535901311123900523845960312735407380916978867293575479864528485426262340751302184258335718882891340650773177075903329684939750667599824161644427696447737790953485735065866710610733833555636423339170485446164136524522582045362224824521305660633213260747198483123241259309909039639889569268405980962912958174076131488371198784809757490060533779841070072205111096914254129881958079897576839679503666774453239143736849972222574970040478673884675814168404013433254329707291057594495427531110990044206823278980442163060770011853228116010999722045564433510420437375381308152004904038715359510310992726018086073241464717192242801201584170992483778670858492971385696014895488315559145293494039723460839583330598762765812227797024883305162545006263712627490092739604036574443242963650122296356748010184926423652451681323686922692564756127308249810287408244996657030662033139163022391722372861716280153875950833971186380504940032062350594126123823062378023617313173550554170057404089409807388865967547391401221379243097169609398143515293577827220051502782194804345295117850615409877792796627369482683368730101519707714256953278414144272810431636729011818991312136416842977482763548943129048585839015853661295722326706742865644400730278184751320592076066236107780495189143375280291773083662112145115548372890269265380333274999375379098691022501166582602830979736909493895886558676059989799274013405459956943238079803859376096598475359876165958086506093992356064154836557364436269479601294502118260585498349080721297112284139018498048157078498315731179175524444686810464661754055579010405619457633378106151131109312273253932577004308922332668917988428872601464802733162094011305244704462870238642339828002194570361446291324308328780022551978215408988579108002480675396511497067658454612244080285459548904151265021772976401888359112439213963350824787112069769359325549927724768388148216697039828414356768385450587995278049410543851616248846301334972874890532886931089427194736451610524534793695195537741035288656193752148339676391992706374562934364503120883421071621512304442336984996185554329072097602908134516638744342182759747055880551220579736353488654998734506056303335456072934735332887421724170814145902814341394563586564684055761679898773364347321867341216617777256820992757175341859996702132356445011300395403055444886941840253475259880145019815101948252096288618309053921482683038053451234542691150910550489982324007825849376552364391713161841719577603860574367517315487726216523724970401803941958448992678241133876348726731513650254393055627914936441271663133848107067513717592556459403137299998800892443977139411271531979797474076741512880400092025966088254308173366278625401967777890230670334133225129769004107790243964434574205867640548656197241412642209921169585498333666123627897832705439030767479570841452485734207961663037817330640397705846344657089139349188859788119724734116225450406907330766068946535833977175505988389361555265716320583987064358869957722703754127023229424430864689378276252683206538271775492234181978352953857976113371010995625515215741888036443395843270537516816147133212747902764638351238827378131905403754360693290616112217299401880429962509636834108919837460458690029335371074241709929897092741864245400859742435785808419707666777648633463624094202026550887520375498749984015618284224527538891291115950535875039808878846208553090247859901342300556145604483585217948108270898529522096941496183674297898913500804762237275420632626882827248535618159780802295783585156523846298925979194777209120619135353728847591238544878279672799941459078201059441454165374889190396539254348636160729044257600058398430663197836071796040807382276130559290769214423857176353571930642896925124503992822969531937644703948520304686610384636007697704354458472930631457101910026087847821503866086679033979994815229425121863660865086611196465187045471850881628912762938680738375439647167496710125756673352047165212202538033209773231539570521604584100497427100269881813388982795812474712919577688516021679961374910803807636637995237015871114175942544991311129250959364975092063575262746264848133752256424209734871246311407768777004596261026991468940774671125994035502479285665675825160364547249828006803874472777214001897843364429639690246201552527051131329684316294569042004207487003262061904875598452041075397173072061289600433676311834679690451388012166472017974451706849012591048430830603480624835947371979655304324164939982946999753772925024221326720529684870821181534983874549000176503135309630185805406724700662842272227271510613542894585563421121151429961133383519579339681409766261443884635369086866829243558147489838462721454880534286681218191475592356493780665092692826682861294281132979508326021973394133531963729454255248923866812962358152865049838547839324424414274078975227035704447961755097021267298219435338988177649122204269848515318112494021003506269320202098078983362755329881661189757573270775217178047470007123529713080457033507898272336616659887466962276922061398360197413361722379971796101031290444542269259767335124672394530883272500476645887077211251800153004926196844426140213343854681717711403635430144102400264011817888059142636700782352386867083965902193427781321679594283119530547467667264480004563350372760242150659942092558714515339271353399442275106093754474873270574600175544526641336051056469667160522427592017082921750455255622001969509829151070012345351878620212171732250713290693028861386482140614025615932685871263576480081488711405468053246580738037379675696015067582411229685851368722814830151556383009530252893147019851452345618324028602739304526953622998540293374509749435969782361029235248134476025840454225387940091413922317521525984055331430549610307107284988410800901494326163508917536987545235497301331052850522368298682900890615460549981227274921760950898654474783231491618607460932330792677373790196360122372175112375462229556962813293126080887354485808971267883486093896525592992138410637027360806047955153526886127205326450560267827077960006066281773241945488104350418033223072083248165487379737537305112044921194063084699514545926768384948529339058003035351749864255277505901824844524495891332079656966202642835379147851312066843867808043754103966823221342918142660494307911354532080756753374322709974030986634658696070918253492812006632782627160962285559134922691963492344291277884109432061892277242842634867580380592942875789620135096022682957944946585721513386586220771544278990745287979098504316511558427306004638682961441743371871235663498329702611189441934132636908232491858201806754315420484722144179416820338900039556283249294820320600891298053462851599208965015423267334752544375473143096195342745280391836586070806058882542486711654459134805401646257279213249631981149266455217757918678645069667405265913562948283191720659679608830179595598702637980124296289558213274586624097136820063084384254789783523424277820498558382493850451836310086132167534316512235791673983365300590467704429506275476736728223823184297811532974139119805593447492721073974180483119800255120816348552377416542570949775461971061728795790047801002809554105281183774509914536024224321019086170266803734718842646136889716471108152676010426707957098386006338490958271364322271897526739273038929814998546944015634378220477120521948052538123040056947185371039374997025002018384351771135670583197053118757353477297092023926804552001579192429638742905745354797204035890202079109203854429054501714733981814454814269516116976474521144183098235149555635528619250905581000859957906755449405896467236654576210994354949855234982748124533991587799495207129539557094825933599056966027890068858626156678815797382246747040121007127888341960287826775646097730881001184862436160882590121201878522768751919388585095177645030648616565252785743174763426828371881587366321250242822243514534697469824260860096804425740145870431409189918584226005793361032117703057595115885621649002837011567510327270455144008988352041312518030779998757227235024038200546764805073631661190603797934930926431995838138979287152050379806832012204092913504127621084155825173672471277616167374011002751875346670439939453213972877120715935045595217543556487996530767963406014606371803921703042455717093026122395025251967600053414830026789083901707307679039480704421287796086557458620253109381446489131941958324059646763047616571695171718436460684947136649474161435353991027637854387864573224879964524122251056296171261076930799115094682864907089901889889285930537741050571827015790629865253577529121197653894663723430064915175231484378583258698574067095391181536214850078920064302516346796796231016741339971103061937908276822834977274379864790797963067765373270597536143051064403188505845974042666380116598583925941343126740915014577792787537636657896111957558908192235615793925408274223393108902687192828353311907508905335077808757848802739555971755619791195653716854002100208724039607594353016179384239890742126103421851351058983443087888504867569576996354942741358189931540679563504312077809299097855577886501889688851063843406833073837675768328142611063183260715548555607203157048092044026603408489199888114483430774588247633295222112023730855837346528515071543344671261338952651642868890404826972077137645600586766007638775264496685720643785955573529303510933064986056140056873644966226148582008180388289042641440963479155689305795466642235148623173167616908251671158168518454304650959566525836161862723841890617374128649371679128231794370811311499140530221522387156660178969432344383242822187389140279472916407050211843115890941064384914352573598312479983567218320703716920647607550383969633413579977186327886648405078114163224508997690868995990743172579451130539075305463210019492331398326908579780159429192577349986158283450982160647123357741337596857847489485239323022924622695780568810715520312638934045738461406782017579678875969741355751988846902817172661810314238270709893793761304990728898987527463614767170932244753666432531649551130293963535685931233706460063161692993574131159127362952903415609122501125018072184033065204231561348470415838096040948134934185005202340741781152475006910853759777213395379233976888639052716693328697886993036212397234741900881976087732213373125552171988234920348287788586025069233001104203396425414239978904693578563111813269957191321247308289760167992799097578596138047951055469987475521047915334714517117432195528096181619375093046018519662579265135796802898552350418100611083683593833542789667092949196278483761604078425949846999091556475272775342615199210455761922027606374696263852659050153735330190861228615185966039437860808759337287744018693997965240362801963431816682700710045975584136788182587014896203039642787456812169088593132984541797667699756227956193051989668725407322174591768638748525758862734185857533469688828688808273238082706811465280966984694657331912375271035167247712975994009403843011087984592839668135064188048277498266855448871111103835837333912964359132189964524413333187031705376991192948605702125804138074686377465047642383646840130684969158048343350240163062833978588911601607965238006396547085201637916403996663597794818412979250495828050553653756154964714388995503567498235034027858174146252686012779676341519766287526633526085730406878383374975492323484045616983644451175015602579300421020615993759401879111519906685287426252974077232131886610424403304266028602040918215816938625158663210127188369853222195396390799370701410845398538915702646642421325753768337598003135240896553887517228954697803611774086614845164930055064962980295739297587231962120163791547159418906976760866684720467260911074386312443814743146625571631835419308175150726594843397010197861857262242133918233048372767268738451737800202758954559675339241596024693165532174782815869792644657053943020453925497193222321715025000509699830803375897195098045986622495479706740639658958050832247270587387774690278738379660640649383344468037751392245784480243001935627437173045249404816085084440636654562182787087177195065335055612680767771737051321452502075584758133836880573744475049058386904296567799311639763771009468157409763048154245672053286946243256536916423421841077949320312644796991388324883351818042285573957485156251923191693818296845548037617375988251673548915962483726815729620962564150862700010545368576382887340032897564662512186623948874830511692748342427440126293821723187942835086502816692764073825692065053933509528076581787488169607331631079616382620544986784542629366570330012814525381809386352591491098514306134488094983421497636428113332906865714748585966129393459769995034413724043057609591179955796021880995954136412319794387288428829820247535959564468978722554599551119595397764314555004588397847404452417692386766305783313608010375801948826605891904149916867151687717184968293474071846434112039904706026179997551109714722561628637834343730251132070246732366960072267564253256770481449110419361283086294437149399185559376893196469414418369111429285346528990721499047689954732778993115198294657842702426108116875966197122039736468891379027881871900817505097225559781429539267865396486163588777642057624571869975409764981537051329038617676063856957001317725207930786696761326766526493061617871162345163781344150452608741154001188178111069990002762227531144799659207138834822848600375923796430747254943234929746723979489028988765633517950834785933249454222284267581381858547687173912095872949521671317169844074199443303256157989037730401278951968763349741514585574957532744411008737901658995505553891728772366959933898343729639120133360112576083695356882875249419864920097627957925867717644831581615862739102375148183859750465826656907280798548779146701246105172911921693523753436747571642059964800444972670184685088007657871911256895712602244085468200243081202461841706927461965008867469612413779353094364173510964663429526356131706899203256001751355134519995495122590668455717760999776935615505298100180451922218920773444874907373489191194633486692628914579390292703753063920837610645285120765721469167011220121816154505897434445247972817829104274338981554332309349173097542063436141678408863439256616723428509379499155754466932482146576565111809626433694734801220584744243497129298124492716204614270824075683656373356240859141265072170565329263933778525959289617755620736535318967910111293324942700035549682702727963024058271904422221349289331396116938753188724007313961715322755717711381307493818988394597407373082090269528558880672975882786163156404482422669102395101494786662921806278367199914723723621735663065661239528562359347499718751398303185054494783878680454243468982764202812249689458415749491911612485489141377725766799428839937434371247159666280904347762993053182743431096682693075995744325142573276170955037494100112758708089182397164921124404251390177339869540197561743616227495186415648862826902785664352491845644227761568609275275124758876719235634398617897237509381628825914282622428598865820378166273736918292879413452219761320550180078539649500674161044048930634485753440977224281018287645206616647199461280675225721917688382839010066903138307195308357793743358463923175595624817361542104265562976066758841421690354777865567161159952477292110461473994986979662021361985015195122476008868816390869767152190136883047546086179214943287218833279041519140521082080028862841785726961966959287326564031144190756244905652185825145477416210763697412663898894986685401195506393171198846895322654826355285998266499202567230503713654500317759342741853669045858853831045406841460339339395487169434110237993143975832319706878361030920782103184277269152759376468653907075421437692212670672889633799199349576062360361765707420636662043411570178442643927873153736159767733243297372508863995328316700067206283716836789010873098654393194528071766340474772079641417592792912763494948638710186015688283796878002467301723760274623087296604243464663061468949091177225863860124964587972102214982811367189966922676873465687559923577728760878642788121042185624625449898714950955960806443229607191549399459446328924820346733285311064480473794044202913921397321893991212593047097220396569428942715589493507824978415356894373817821991795673702472827569816723851201386755840172884607202312937545064799012350780718394500583345811855481933969975101295085469301162611995465426946635379970809908314321143568486367736952684682469427412245955647190222899804259224159018930647426470745061709059784839578297271296190521225033265151710844955911377240119447569064182926760285835798848252697859460837031256287948135993361884812685874459172397700082665947916398573584417055777211680812923637653146133634188048959689338579513356454651404450455032196289353079958901957721578790726205351841377389999529223523465226577440499458217169060312533287888462599769873831121340638986512408103515112649416008487654049660721325972707324750056005650177727136954597306629522548068122371096028358261161949505078006842190982869192562006399445868728065919372524496331076036591992588804641944540236760226126796811846358748207293821650555525793065151150835758163086345914104555539707244191399459939221828109344235002156752184404489253020319400251314769373348492065259476769585215887108581169220908353865388748576871651285340961252845815835116554191244274408216679050247378886567698044738665866605395040726995266335587958441341541179613095208836723995996706449612215473041091158367640725644802338599066248315003454848926162701016965870431192100222999517559154729674389881072241535983161898347084786999158728578490020697064949974645948088465293628007035690458699153626983187680369210627019468023750586828992811823029322622941592671727395085068450953335028115965533260116371954089583273499901727367999342782257528870288799381230972651079751841445338937304934389530324590812094108001987878792868827589784753654576989440803177608843740574336716248692484964388092488007168778559111849782083345337661422563543715234916386865094747551722476927223193890239789767286457907128829070042318518612869666963299648242516007452621153536536780153953283434652217297329707240477667831925034240030830752033080692641249855452728536922805058156427690447659811736604353318583114734022174805207799121275039432520318328491993027622800493185011010290281371302384055641479029020619532096630658584846362181791414013486652339047758557963333819308757867111503499107015932796710904901421039386290584383415678494374907611323797581716545697635359151346181417396316580521146613746158871018582773235849709787879194779362647986327598173431542687895632925411604582843488902052341558180620811761952738112189331854487458035657717581043256141484555017273195996461078815451635600643541520868529006177798897836541358455872953954445510416891546133787559396670155673007788634397253822258562061473406260085538337228990561098761425399122347067321980900028295781313959394846851304997388486412637853469886044028545466502478929918201733374222797302802277228965655845373431903075948389614700589521576300294202591852391618415264640084338265076760453399007180349332730852939703028381489982227045964176165001628910919606917562180925656549437273130714167274395208145440708197348708046006230932703534261593059270218803707456483084861466132593151661267525037633066007901344855313000145468547135603283970825962430265098875634882006091802040046616758494680337307352819983316042721749089747333036342252133866832611838265074511683344263138414898915811766320577722064045630608721822683412524561878836213713948399454565951391341543033728407473420749454590042399367925583734816311092301275798937736714798789805290084283447539239870285370986210114548797900285301052788757035624180650562511719279623382766963084304885417222536439781113064086980165939414315914967027874866095179107030542009096912133336276579484507751805121519919305275340676966674678564408733093947503822865996801406122010084823126823590419436294983534955923377114977228731769041449712512639505343016535359772053956129945403233578438364348908448864387246411375389212147069743828399480080979138009360719348052766183032446482678510587601359106447433301524141734866151175787131795329014067733792460198448870652309102007727630559384110817625674219548662980136839732153187931493018813570207235680011831593839844642704118000566088119105151821434225079419999983194820486443347253755547743452161699535185220123329915542772233280398594790460439586498445731710572571111307560248102890281655409508224000497905922955964985992952617539353980793447919534784321304031532673628863498442471357834531507850885749679898669252331833764372549318463837791481841117931331574967658095520565659171454962899145907131405358734718492399679885342523637962941322242326308440780182461604325157754115628905409364150902504138259191720702948475928767893965142092255662568627001856125589169890756899970085982243274519746661408459423359283342091452263588675017017335950782382444865882013268706100486157418489415577224485968155892149986377328146484287106014784516579817417958280572666790569175714050533655437292841578957194601203127303898501913222441232001789425316148319463608315956696416613975892848925181951353126782324148317945772976843560570506568940503847496649107193589344445835643908117494850078767067948892829477687654654562969321805429727483774324219965899180578261784817734736858006547043110249447274354114650764289931778085795726216745967007058212999391777025253660371529328063812588129485178802075338152453866784524534306798105854100821796290954691411049416441252804713284967153798875870185859639756842284571105214550096895454999656856237975190722880603757609294577362946336836632822354779611218079567555246763672597166017938152869836303749978341033453614267274478451945419481882323729340903454988585637258283814149355736133643238645008062835650824941687597484087959070233700660449622550752742907634523860598683417841081591711588534537866569539508673141167438987890776411775908785350235476125552057702658015336382136131264166096428746650500786270800599869237919128284882517510457216834879410509795398346325577105428072294641610254727152703339010050244816998309836581225916354285739809366012175217886449183902560151435010927718530383501481491775707707405898546429634070501280629089136731096692405775126541430728524860761489656353110104161287091235768330069698441365168426133456737859444626777034948667507197938300198555091108224394406118262281073261469225857481512595031999090577717720044251845429645090634606873785951842919637513591475763890975923576852107040818126626680246981203371633193094486261533510558470599528000002696907259690996339806991381906430621013124689436028193684444078723263049087486481482714584073272736344499704827143523993673747561992827797227630403128585560670607058056758269742733283335725694596853122240806915504132150795497237734328678981227191081194486648642028705583281327940591458585545228765636208400523504248773237659689155486147823695791603779872195452548832595465809312710823578438062364199565569592389130811505318724527762337990256755368473035589612960372228218683874744133810891773569332350610371227061904104889208578448882166760329914563288415782459406860031798124958244542327499674052017431802887959674579170158373277588813016925776609186104879301865909097985313948638543489130394467894366912371054672506993278452360866590930471951320253419900627916688286558121405582685274127669881744963143309898469096530489348637804068212139213306045146702946128349196353740383691998369339740747097506504379058387354228406704275490776481352788029275462431018938145852250047261413702859376940024420128153706508318742858874105037956716521153926502129931102588097020808028053334756288953286276325307667856266195738256120884006740495916811519428451992871493933694463767372944994141286852574713832283109562464623909404199953369301076770287259518965953766946875005645261091140725010495536957831978861295716833471635999361253948530588285686905333186158393759827191657115088187005148170139027351508801319666622205863613685347790984236411723061633850684284589461232693579753796992049190109819968986627386206032533004061452766865302842806557712336157322263833637066006837254771976027278143564034938065814415065561586635648940175226479043824322728761733256309714387145545149243602223447601535128695323531009124090808637315462587498367304730729728720704876133427120574598552509784779197744544324070506943710610753561177726881809086500920026445783959977937937148160948065041423484075547905041922746596876839335281379155211191521967146230361981945204317972017964110816549519310601131423105232614016740797675451841198763096582881630693147867575129934799585534126194821463009983031743741250628708170669473144734781985414413221604860274795682023744009576365930452555186868712552780160150258532106570092214019119956034992364494259203798628381190176271056474544465774635795743421236826991288126944883821207139502938275266585805908547556149597394478945027628505863398010583273737883573870325245955654802507756916861748753715852194998556481880610068159999455211846233186227868991017057655950213102870350863885829279686195018862253573594583471172318838144236986886263964069590151795691097162422659066639349904175085082437953290826391872611186416489160936330225574983109266757849459905801912996170659969412329088626250218461920486004957601174423096843617409604971474630141673172312356145714483020239159821460003743303763541080801646680574349390462566745276257018493699590736931901552412056511270492832717955394695235146177934342934992632155333172612525872633981107378499795119725679601584888765496167894183915394064048674582653105197389771810194513576704681933401725213001388401745930642189347485258102754402789463776581969290400248354976115572158669988047366631802908572486517794192533860106066307418713792119337598974558721718103859763247748054854908408363953287667623648585588908934286109879523493121724506379304753584582833033331939557129795865585233566989695312272975772920845246416486959028353257416862450925906910338714442271475154557960025602236456604714438667245568982261901146693705439114272213111221085128051123697015246167743947434408185147720364355033125236655610355158015500045854395108445699050115306727610920081250632574565919842234502731971366415824111548691070704539131805331199976489917552782974381096851959506758462330108433555497275282202105474119086083099950812889935520157146186688707900185115984958959879649263815844837214731497302154686772509170819555904825359410654232817810443199739911691119174780780219444649622218377734914574955931675365874245949932313620894613791385154556097345588531707969869265786601563437527733404515917756385341771854572157739864606881368634373426610167402079502759583985022560575633256196014240912792924542535308125605445788103030221325895446166417417587035777597809463930255763629329197886896873445678737703674768523003255378899063704844679696799703052255257671799830558284620435742129447140074822169514972447407817239645597476636355554632088611173920390087381613536411334426254438159203239810976708583462748956533550421781950761776072179917508528948920868108864708216648770561285175605539002242694554558039597320269378468170709463022860374951425365722814465299493245215905712469570087408062825490817610779597471028363378084460468791483082444427939941385498101199499740764187388504261691579643132910181113597318843224811191909065272494973208473175362738409484401840506125156064430466139182006236482040775736231164461847330864331578111418466187426315965088425921733653098136019895336887872366680637627905805363617472281293964681140359533770848065878768489229854524931677502155845068396270084703421169485547070252374849507851043436342590616730851627718422000839927873169499773181478803241140523367151317487498671985441154527572968067689285664805891147586405809643818336422171383147847440736108864084922843695826254274607747936649999986525692328067557776615734158174111340193219474403513739224850593279184899161489853567809049272787702607102675397848016412040328925075041915429977836420938954485846493657519795051419458850350833069956555375409515375895293646876826795327671148491254107197395074300708522855650409221354058086274304283625959693193145729489677315688921926909134267836517885935572482854891331752243683229261865944268781719516164468825811938205491911922654316962210759897509795612625589579987771050885252692112431546350850148744089327852235646100177440205077992223669520839505303194806461343172022513776510783459396199932645261755940995366396455591610568747957770181250243979664771657456774608204437214189765088205707535902884617401629451730593853035516576449178585257639129176957322071936202366898639133489665256817902890957847893726572455978656352139791277358359899323887361298215428447049467360691223798309288672640826895600286337929062456104029088408607843473285631761503944744438552503241228026055759899864742390223145703996898096676510806144052580596023995565579479838353129083963473233930840390690427139386948079584918266430869880741880679761658191966319947616471069781790898486805607394245842081280081179421736229135082008824724875611423354298116944597504578030225893412006553701752212068398810713761039678782909062523278812401861702228597966329284604211018648656832716400938654813819345769943873901780541555472998971074586761304979988013852100776385333320849742195295815434644239728880477797995078085209866760883954882006177868893554276360246928957569399334293671835000126546916367620089828853780857519964860086708209295651789818407402386011000218116288242984734518883653310220168261248759650320493410297149719495201138781274245205255518255649316761942869432144481624721786040060686631289617311561240518419567815125851237057960181657921269107502139551700935726718869236981230721114063434036612671677386300024147633024080316552552299691595647251825234852280050598078162050796556409579179234676157458194577138641884662989656739934391511842372816012328470359556338735127400993124084171798200302477133240319420428166376909623791980342836883991923611634309675551605753332217405922567932501179258185501439438744306516860874232153390210927662755683802007428290536161011963006041098476909228426058171415644595059718106540095352082151628186997034914937997205266158367666448006213428508212907327011110128206771334957966153466906699740804620960131253135259826761115933681166410326689811822411661486965572697303125643734825561566544637548091168721734051588140619881790319208965581048764756379301103919967828052162086295395219730036758302336354721971314264342638248084602513769525752592574866938123136907421329574556976968638746687236280743891750335157951301268974239130782794358321080180455083500368860025668570618391236065119736996612136704760898364572467925332695108109198898102940812072172971196504690907808750895950140928861573923282098909581637028885094886491964862304887340861047197941914520482824516288236853275813836448780116728597458084776603819662718706857348725985805960477626602287197933617747874848251429717173701242051263824042989693955274078923318676446155551768047268210074952757146431511256854661034451332020293219241358092980846058564342976392232174441323233059810669177390126552610582391556934437924345774874022597897599423286851735667093942426732841755553292977232583368093475581074380025963537551843117242718053610780067964123047245626671697155849575989788334369250514345478918228750462140853892321073484938353719406273819805774134987915676431390159162841592114992926963691098604999141845032704643523410968097851479871886295155908696474348993561670660872129564455129650731219136543590272138490107522085504136356259328679759008076604517688402984006938872161705357000585648528601331912302545153526991056601379634629221096958894449095959590484707682775865866479090893980498644660750235430843617223931144517120743686750935952123198121283242999706063213536272007385202348125026432480128051381395997914357440280931886925921403651912051063239278233258571761787220991341534860921597171796048957035275653717266645942630884481603319376279945019877430317658231551451434377840863114569184046740459335579523153942555277968758689952089307067902609052506961749897720039350924950522242058771887868388752266822109582791607740002101874199091208033812067564647183120084463458709811649150822111695950733413238786328659843144228374058390401656650893794069361210522386510836141024690339385631122337018440062512636757833565877425009942537218472827991356256546359746880822051317531740484857930030085035027828503436221992008484040612755294120417199418551048526129197073389329411121385855894386566464476985076917373786995666326358411695799599669714420013549328096717705387251160225974645479864569472068505451587049993015557183789480384056891130046169200386034390138999558021961707733840630448915222261256621242462253428403509979875367336794111023979259992043092434688712163726699275075582333779841822254910911866946006600778790661718054302946482458981062005811731943538563289975485590293494528219131963382639559267584615536058265796139056732249098249924287614469980570791119348533220291727566714655446860552156809110807819169464222833777043941296608794909352031652570109127649139555498721151333021107663564948409239159381833375085523618138324819103853462370798347811841508470874069504490865600058606245636705619299617994838249025258516491103603546695559103149700843889508875548702348863472977356227728245866013520208864805750657896211999268558636556268834086302848415048521989099487161646376003661760144274439041775576736201198875783979533620465792985559337022460523354320528123198474914765159687110796387441220029026817675847567980157832071354823301160087218267748425539917421034005593144174134566966724140815227213571255221845173013662286167205059069215674056153173663269773031150704550715855074317483147334377586709425937216869834282249542668958055169240109873712766185491822679125475855980685778194596416510165750890135877071958478104146773898667962964914630023699726306570214059744189225522244921999835094025053200740797932757004704741971055859995901546649294801633025361787169345186496254998030438515738065343038765721184268526245376705047745650459108760544533159473696630041418801074600098996127735387362648597079308092743221618845302443531634457767150344715167311806752748345689356476687617857389209866436177875134260089562653132662298374167094697239008372774153324962274601389527615801947139436919568602754994433638156071319464134412138102735303837261250696046801450959334891367583595298405708597552471072553910973740328053791609303951422767416498105956967776616575232442098413747751087601975405184665013028898044801407471261669073552179181675728563566718494031923464461279477194261965531007353345343115753733690318084267906883279219756987330793647175789345947317639685446533929994943178852710371448792966361200660248989173294554804560928897200789516598168330950861340455156648628370970258776365264585905899828235271060823813619134197199957238507523234637906223404697185533302002105666287582534575628699555408552376299373471065523292411193509779535670904282586561795374638831974023376369312395694428042516322562871884781010514275771225707546031297740115834449264949410738624917605301285485419456353522800903898888483549373483390449099486923032965776509147134281112690468629562206479950356868620323784659864707981198096336591230687099467874221912216059219008552703816754413157317362256802597809986985149214985565428297817634850484135285824545039016706500381084813023633610101509446151627172572646217203890295314421152122864845663925181362516405701328634652967761066018495809932888452330103667606080120747297006357834261335764006342468817742152118166121926678448622713470767114847432631807495821818736534669381554315527417554291501408371834894888439082361705659806889116836534059068258002669176693782811912067250424988882842841508066986873654713733475385030622254609694676748958176791565611859798376056611360928471592789333805678895452958719543397158976544428755362422072423250841900792216188141381411688072174489776743069190904327534792370526839125941137622241000148681649603451578512484952333988913092039334733682133928191542251059016230182806901679261014631583864634953074165965219085547710317915899109140509145549195296910289263193726924258454795159147484681590456760035237698233317116815706884364047867243183629217885076539131975682309462629490479880444518484661625416379818221929238345235626839782219827249670369097560689550418384714635569492615235539550600245618256943629501896989504792067916563529162460961152670138981882883028918758046229256602832191260960757128943355759612528524627911961590056825826575053504897149897856106219217216106546689492597106701068388764103710808284750197829246776189812335655544113925027474867678500649671075021412073496551807059846408375888676412427408861549868333049163457056511642914305217701244544207433831295568207119993467021084192193601296065406223342070618869064526056294809167820253151868675973993559497265740090004741143555785914521796843055208607037350352787755151152170538502793523877452898567012139879082389021393774965116739704266567825099561508128710889021173880664444006251401024250027323454453012378367298467507429364935750279310431301218686988125211798756090139340615658887024208920401020860719855311392482463877033764799071394896790472658420987995613720336375080957935019442249102366802413492392467170441902668777165210321446677105056137832742634097909164980317853331006338953596090252099569389554718193360743525955036952227107314609732679103694177638288421405139613868769485082521358735236279128802760726839963068158183350234574468174341015549493312009853106578581430990385462546043791938840540545893363716157790188442925040801566363129875868273778123739197012121894560300446148752663656630185906584005000900364541537702104613970412696183423599518167083798896416892091491101638110026716182613963399624381820946254418517803185551078741531280668521788653340443909194804948954565908958611155264814487579835583846205008487929739056502094200620948865570583004801131392683692699942601780271069112386620851880847019683420077173423966201270245252704620651538518452441424069878564015112950231474003197884768382642881513895925264265306608636964686461267173278450980762796162007424013611244754750234730903243798409517625385406493072437081268523258208868090785026037960960464076844731913393839045742741302734423340786213206539203908199972318811174565859083931421784775610242587411626736510284108267681791231084673743081154408736473434461317238652298617814549336843355530196173533636478747342449102959303772613677265805450253308875450908137453549613612165269450104864593139178982650885538592708971492397792228034130376972979431543995365014742541514425901543991238627392067032633357425578550826856803170896384627303986857554272945200467378669417649919571860257319153381996029878283388575817442969057341820156180191842450513668839944348403409422799233778732281409585299286312448155563890164957719013378572597645541859084680350776295238704806440194903570533308904272818735210158254753393191420890117419432506325814153422789643324413854703037270816856831888860054854660790442255262925518083127330968804011762697667748547227133862389823896087550425314975346015262063369240467729340100970833050529014993414535046910934712911299823643520880248271280099223678106633981849128665716934996432319096466004951751871121889874125278004509026442849016977888551626807646810473844825544310892341135947372708612261029329040972420895909247854142724953575277628054382456447181456762948599445874386705295917598762809178683658709130486733453925581841946553439191396756242637224592910956701672717156696959601874269936352027267541641229520015925378578638789033998571517286738532206585320801313066519368565077288348098629526690223033356792317000023472950667502634046061373821763152022238005356048214455727460819289845567779809159010635901337088961295605922868529695577040651364913476206211663020947121142439676249581771639256712611721477380815591968153526969894477672555213904756292156967441499457324151274431456113581514682414950912814964377727376880779142375742311715038109464623032826546493325543983192386818051100690476881341537532564001147115182802735778164654050773229114918771617202366892663177677215536139286528528428337861396473508059447723433483064006190156673094745330031880258354311845191487370159960445529458346434254044909708878359301674796925874623086616188017204972951483198062981166472500206662876066920483561906536325756354409998581804287880719897103250572475221536215085914006342819813498265665885219629728146883429207235505851071895898334795036281556361908618516026169898702343932099688377431071542230557885563971845088155814420520179242928098451516329571340835544993249767599449501308509559281421324750133521690011770115274274312979209584326038798887047821989975472219015498576611050057272447654086249276391564785179010762591120256234701767302534467436838352301952625038608165943771950416099102747523135735207768960903633024988473665907361121146413014938370577917307945919046618089265537384643832185611555038465776799317996165395917228973259398236072009945035414983550243387660500036120081451821212127770374994592227209295016986788442707806707381368363942814926719562399278399598132513977651684334052352815841182481348094024160985365673035982990183127972393537488288967423944392722511821032690532860513190615538721920726712676246366581376179086101417193777777402967280054020401909240767409948527422434359035482708422554824080982832723308644607412515639727127484723061803731437245637626708127890315731979514016290968352594292177016065130514175706092658505901112635008022701626674130651853369275560244266055013730169264982208026452984110852483467357843476731671942459190232103095589161744488062587055810130371052711240670156959146996778287243470050318929037435980641043387561916873020850519851821687318879497792625113865636603717171599616893969859828749454455720804767664594582976376763799776756072620643055858482686857465214858088541203017913478855439174949717502217710866486336845380341868512109741115839645471561439277480894344410220058763493746456647296006647435865733136793919192722858345167297827380623611075205329119744481184121517473363880699139714944215558605664007834046775055616775566720457347337758747126169089141144137661608023029135652322888610159420687938843842647553228960507331971604388145222365542309327353987240474415724022312610617343794060251135809643502894570131857279054729682658584374378341051441883895362468149849304336009458890998203682167455608603240936689686518355613944210460282589352681554360678230200269737113687665354040625547248314715947916932006934292541213593683475283461088236331623699965599813393411577292728654688155078879358331014731061226979601625508284206589821235212273489078735475470556503395550007897163433577390412105182780036837498707858611977875058494374482119669816434331258536349799635498809693555616885758445402294491452028645061494827941592431721465027519274673379787901880866304024152533795548760707813758141489852381798456433919502072461425172882059207513549172405657045434121777886031892495949115821721404231592947937540243011845661743647879617827018539939793155512241923207585878857741020170522969619641744815830020989766530575431434413555228637313150630822926982464180044033662332995986993502508108916188205926807864742975484546669508700175218203422875895019410079122000123483686560666136550252797140597643356668752401167850415073980867830462788128037374750563726421011972670131506247095019094931750268203073803633610595727498244011656462846521195219750967333182279528809797088122940203517629372406836171032254870130663718943361506752347836147611247105299917365130382588056438933447486630106881642886848722241539536072744734713528703874196349831380039943140930655012365933769161324395300509590320484316528030091891126705561600449218221893055394221701829653470272726483435439500178051056556012155632181616456649935454974102557203646205815011781452296046943138166563521003654087677820056027831117502922721733111382499088933398609534631086863987156612571747604923455913654612799108683229158902294738103235129458861820124703478410434765642911954121990351098736583253625692225542427298564748000337771460793616437194994638084398527645372863829734834452154513344554419901102923143212696167570151884503309168019865213097954264854735216938983894030050081652558274968353538146575778771536134601216770681510538032256376868878036901104691892427182410660742947230789366028372016664171291292779499345995584635417434025323217009145736639479972387628303775293284763407808664219949204331930213285092127435159229004154174574372513635449011342287443129151054986131850001663124964191896648871073609922767741182717505048656194181538610014350670491883369901246963539880646051322373003432901868061126890661555164245933162275546096499225518462800348991917866413661713756007306676209527288839409268521513228650127717759860436948424809822830098779427213933842136377978157097731542699743825296065747481074560237366864639320460357919885900791876150320400839984616478802535702358222769012186930377462660098877049509834165319896131490466290189599751971652410213958271727390980422192450452094985732906516742413260076519630771125465321159753876520555109069926366973895219803739747361705466054978940764580886386074017049192755526475277955244036796793476267188859098808178750900437682941727164092166338219071190772983331213695181154058819154179064645924680578096072799927940322081749879198437337587947652604502298817112305655167104885808433270923247522186207560842723245864487973375249901244958542335317516809909655866100787459488747697978095637006835873703259737091963274513807153932378604848336183841632886262252205199032988832849327538945469623228117581169939858098741327279792511374843475948238489059387528798532146988940973479702447819921139506911182826506393658614665966627463795300246983823664258912560601132367664525214441039024079291667980283287311653517683967601451890063318224950084284838859586878341090824348285627519167960749757510101822028079068418784916050884238313961023454537624985524828985981723021078151170182566254615853320847796794412719165976106259914806570144226316245436733112679726968212878420246762136122891271222078590399262652177409441309960075463972171737380701926710298456021977126490359388143643754872580528030122755615206887942232416244437354690797853472780367181034739167239716245149842664956582941034541569384514404052735041934807570718099882612316191754479666495045269414875637542381331991582736345626719190838146641271090069228808349959001695771570966194375230073709654765169219343404383347144732499475024785737899503391837375913740739289168870103584435265402586272820528733551061106773391401262772257786261556601199339442547792527649467668582241467400562570379877971762441346095918367239114903463587932114238457650788333707699432750568998853421659919299141782836846119687327038483331036953446392553953097491258297850133500871746220244887019838585965546737462170398971672392112577972455564347420754167475714550939180093590140150299852279641666340848079085460017219671795702635956700106862197815074866307230202032356427001074242981511482896173705681576063579613089051424458279575550229110445346076714366351919989965337673552914011005767436780273790636050575059648107729084230102519184241214963982583755410425985599917687943522348837941832579952995051200044343803395425848212362659091743788936702227598652859889669902074774328320680649530461692928789735929699640075943784616272042847744377259831504555249936711677779837412697349900374120958753764984836315998512438520716024761379323287662382265628183923088792313124425797653605142124421480468746977578732093120501648068439075882190808158460607699052092164857598542720721958750983997406275832382742401506362520883829078079900489124049926297469658722323559791605959550628765046927548297344410066022843773763035025685316575365976028949874305402060653565448875058500004326607982776148965197723142196294291566856234595477803360266760339933702343830834798842431987292325579237477182316801557956270895683449181823201139415836060654476736273195075952718947843673930310834124823263094088949087604065663150024988870300491616524423492253789304226855980614329848359265325524875845709718095786587759492947124395889956524327788214117020841175450797666702084729800649091975981762392349020760688147289732963806508880017487834932362326219147956002953879720156162978117195528001196070466099215866093470979878905356619728059463115884973307898663852820178528920325358924160146417489801694028535306047229407058241429617201427891268022332394467339607594744242418639892759887165606307026531694613933107003215263310900074840902200456503406478526627083738440811231203513394657347488567729416871904308792556309430184356682108139676917672925330730216620040214827094537883566857110813844854685722840892225445176872430119621238044028520959216513305951484896058311940568900392917653289706516194884497607034613642085533485455187895201520270563482019877004723870187893760172477530217412781099338429632530715063850822842320457540269411121703813970954855696658331052355983321272091091462213553396772821468478411024631586904757806355697013886566999378662599130988247379324671935430619236527542091513397702571966062378947629677294081909087179951669441636481560290335835559461333372496779382605023703870454150593716618931552396715587842664863794005216184299910975020285940115567848726145871188362329883280782432299776508816759200301526393359195893042464899958263290157429442132960422911906725377750636226847111007638458387158374510699889715809554695931740423734640986793085301163442898523155179028605565097190193497467828272090281062845269023238389949254298002232180902217686551884055475673319117904602119561621159379146183299913094894590882888734014973386135564671766682272640501026686788040444078255685120043962370246514884512793690339572579460311332453246492159223471417625134576924551910773940628248071106602440082898257863135144932344520465530853712858730790910604629965742919732088352628203724484165707901148568158654605432260466829748319627057508714827522510794832365964700322458789781399321863859077534655145127183593149183268882012461528172568182533992732058970056275417967077731074383859042819155545673458106479698237291514966832913605373629012902940208309899560698046950066364587830280877810993199900150508013778287869824453578591558928063393588795002031734177378742557824604275537167949291130892195799852400642717067231609198013860789564657581317480576216860385717773371823844725321771844065000917218388962308587904602048085075621722497078554237447499984842933057695511396436227924440494616863299191183834741196793445900341853991111646886747108056414729746268872033393629557985525314442807211458066956675153488689067367046707967852270506562260597720330045079707231553545009102910220246037787371733300434112515730312175259625410416036914557057256158133243658023798356482352548610578687292920150903741407272324552388052565765809180846707507499138527353367399921225607178797008546008494780630970030976647828295119002095645607977185753752036671953824140910930884963312603424298346208871080666617569140537970138646781638791928565411350192142255309649404743467352209658283273651461800653672542292632662558026315772801792508139951766137200933486555763818319143929378235460867304856367699570523425562434932499418100599130090840354770639783284655633254141955775779000261212441655259629277643595875449728562855187211880643433389566718805462469882916349432624050485714042524786035260581489962554829616826521772088336848500505676631140310707106727851442724884528037170200675239901831281232530432523940976319814351268832206918383419036002187718741597834839150304800367376676094481824943835742696335180038085810896363749804774738093428068327441536633253511459318906908232166816360206305771200933116270001865745747813314284747790813864469826737863705749910567061678256265422187962823472143060820186439886217563665356290385206911894078242349297386843709486913508685058717818415829968125375814764660568465424775285105310149415001803569419297604939080703713488947086706887199390433712103419737824558478692957914862912861596278699566167227246991217268549292071536094694287014951070679905038349387198709923911206423839705953620184210372950472082451603712964415385531554302729717069529094926819640348909953349010021145958017665952727658647919521986703460294111320088968024927938979174279888091152614680045060032091704331172541010417076603537999814220456671419977950168879118889244208594939805368259032987851675653893607966727153609579189049620714931021927788260039577042203470702736957328616831324512933740098332075304297004334723487747115788531670697639519541419553926154549562381761454311732388763847480642027677371326969311254601355597148576014168029939758527411946861220357659223387125176326913506492946400048816502589107425509413093861012770130185434473394704727210442649061728429080566640356824634813452895372727154730988559822866196084761284655867886995689588371992026089945260932996649360858757379700031155508522115943787935627450434736910494598507506611050834245903913228132027048818876389785360310609387954167378801256339732211696749054104018482730664827635030613532328521280895068511137311313853308185112462336443438158701757302850527643905155915643850017319217381223264056578622204400221873886629630618528486732070577125711724191126588380449169001267282214695746590985107395475812872085367413030400886889068708134506998359616331238953287426333757503513385085206050517581926709807276307901916728700747427461563085112691159553091605503552296924729439879879858298504791355201593951549900582846314947251755974181676850981424611153294312062191599927532016978004493969579945680659692895760609088813625260138546891150155361570562236155684801143640928585906147800425674202624988575897407862900696009351201165190049376578802610651528971361427797645947033762262521660136575118227399911559880428394493419646345782341242838344323912935854306572185191644086860487582813958998592530807560566569216666432007283268276446915802260420400048427622309117250321241394476389647460685126854892061414669507620318938439957582422010462142241804155531312776924597151007478446702305300802919878372363801995234742049688309355136462456991858311449464369488456773712270768414354281785527389426482713786735097461102066998814385577208807448395960735560575475292486291059626018877057001372484424175559395503461455671895762950526896239047158350677506640192048744303809148702996547777284777811557981703406890945680999906204410057456610569261451749328598058400286486304228738760901050419376939077616334588353966322376497109868444840142108196514881603978051365869408751945486619026133010003611540984906918215550608093775216571553317634220768820958929214862451078639512136846916567412183709986929564861072749916651305905926351809001657874633333778660916945842517486723453651070592878897496641500532257571162445332190548921166151010003614727414947294794615484371282676504962842940730474241802461959006276878650024907637643862994084936563238569848333611394526784462514105900112784432904230211620972703968712606554348324319815935929508993539910803558715880509349259480467371434834774412255436214642154936098800280215078743891358505090396225707042421045817334251429626398758743000997466504388221142600400907186289408855341677438669584300447277645190030827282533772663373757939706040353376492241398387022865479915133915530758444641048657592329575960779733927823430101350214905817599338929693681424428129526314823822855208061379858514176502267127251707257136303630130630301701088620385529907163109555782877523587195289073598685966561450982513034596323403359427566934234461096422628975265551470619821403419935270343518911841436896160565292806886673479187240484309239276036931548734804420406350068338968085039780599104069456488153331070307115542125707263011622011412357926858494321126483299197510752090307124436917447326594885884941457553108600655005205283796784759408842944323084411011496477917264360795683178290440390913577557405851696010935499244929570701426558565377773892993440907087026288336340997832501748268639065477413157627530055528048200601251070524640504538413492026362866114082210598643041122097508623112007161602828037705141586314936110384105345274303817354082673901751761925727897135303893514040223470634245385103692529384492576163593915917536561079942757586130064593826824041715192591070301844229747073535676038162527129245374562323153447050247080194476572005631725232909876171401262393241023980749931272178245323334198075719909428707103486309795536984099518262788412950102648462382140063272221710066572427942914481867025284725647434200970847299157574396206438805311962205406137012536872913849556636046825917803530851617763751431698729138807045678977773084706347114151735684803762668812300298778043303342771900476876950821787654454886829228239885747434211593903623120187237768903802272943438752306615793717310606154756766364729516756978984244008031209027270906146258912221369655663527469895738946992037252910273466476177320732687639402098692225905903405615122391361333473394395700234915334442700844260010040358439022422727550567489247635758628183012268034609205395811928256622825437348324460833584480126313565584949381059752400500881110724392433493173520978711679856645933605721632406056712496095300643097669724276917729580410320676318529970728510049891181469581323666122941313095890081980751202995675183413288394514598766568071732683978914077890487769977722233984018779795517074189654952094825792891714639202030524822436747499567972427939083770135477333950216013200817743903378809821030532257751863725626776411616063732464288652368401025038502509480319998854769502012733339081156579668305797950249073178291971395513980745604559384330226576041738985071725945804056168512847454920695624266992011702643760881587900880739517138778383453953605401508132712790684548839227145537677364934561303074636621969326591232739598911743219905533335584672113340106746888341182081334693880328788803126527560642279284775683466449282437373356566854419840543421254390791884410144029952407398878398772379254726927206579330879307512315025478478403484003140998191610925284176045754036254022439655685243937476665865480544257032834072082852938236350061054622243399592149041050105930977300341024334039182564644505244696631977657215575886919059785114955808656155798101354935494114958327520115112392584130212093249318266216187525382827007127603198399679034387224878227788223449599629534290812310369629783239460263888085729735341237633298084935024875657708888525871769233014660319162593661186811642600117429260084127393059165616095882427960106794306442860530256928551763849000211499778241276376649167089761982076541576116233311760534504948450344124595611841524005602251017077782705371380297448933439861452765806540877293126187624321526878477083591851483439395101961087341072506863977436686753345884611128870727870315688285514966089022415328969509992422925817909087295965523313021751814249277466990578227929595279730907626908560243586398424673359864876161293286715794382206257754364265859382667931252434306347346541017991227103597135029246689424830576819717187386484812649982671655584157481349425504425355404821892761315282819979017706106968118200267639663449318217529719035352586337252147501364678201190783939088545991792477199652974895831437632652610587450953048484285347238420038414416242919110790115508408766557818792918732621973737834971561685657693588763377536162398653681000533437631888276402429317630409564775911574221782970546938536628655783303892094346186895979818625915247964373684220967075627661433546229794039341868035036870173100217148233616159682320234447419143756184149064395779281383341779237739274343598711517265649100561972262892704452269802914858369659734551942343780397024917019486351656130576659360682071175855285496736331622323215205202113437732871977411571822588850877101648936456921081305498164060024903856192664288972117735442222040937424089014295643629762643670158403478104834382480911540833151097372731261825069596284164615244104257680811657819552315151178197428065542679512762881413694982277169687500898503212778243085896206897459605519468017715692851103112276149912735831885026162941633884123753115132319830701189062776509384388555981645091514194536172303325430926885221359979459509575028834468308865435420494898167126424800331463656614879501908181195450548663776169219430532911310684456042524380036666969291815782701697620893925336844665342604525493352773291837147387788217587232010662987437605003948537809803907861289591317318789011310153423066938736174952524542638407180910587077217964737556640667959806668068388939289219122926540039862813607105095515169334021102733782235377903824140083996510370938895090603135066774005613119998987797778713595465252268868991151790905405429547908383130087099751592360835908011657980987189322562813561275940094327146658951622421246917564848693203988132312888248508946040869100401768182153049850647077538902619074591541467923455753222362099994952794719134750696291978147183225758696551140911608041994330940620186284936885310054708493322288848443759878101013952103910320836871702690308617089707497157727912491072693651176655665949936647941094547662428673593332482756026421500572743510169937713876870152494098092477096792642567013240122330492084832876621082065199014824881913012504355526491234489825360885866504499526984147792530951683564241098580860538113283345251994308829903372627098611604977426846051202925103393612455148539594993856757653432970100257583229248675842484758389702849236354151811644138511690778346685770057626545957602423201788395885645658657649756133418353021212243679293374852420879559752420610635426264535668521652108157009220757151812015799579217987476614919453340819736031908885342405193534017227530163617462870017233793611209882692461140849787403938900561302860372048407130491311315908218574407748707469644284474855846981528941791595066588773978461872104131214066780957184461763328305648413068441139720102253354038749086145190514445118583567997590982916355445637972024909324023313477129487339043927685756507491603463892492064166469265253915862769035043131464453305490644127259552999756238427296306103474119507475859757467065549390230566466900183257648189467140913760829704644677368581242393735826433904350372270346698360636613469551708043448095871237636445563438130102668863485218613935037272436886577147112842143077406538937309443697423614923892550701973472023731539603215940265718040984525106126016312160904589202580266050180900276511403896315814204864263860765928820089278113230417718925329636512226943271839290307010622500529902460661384416761603592164430127386128069757149170421043408309826348591903359244320226139362979531225346884601814017700318432561972335112275486542665993972161267354175680664497134713158993981323322288381393380461320242252156157365040337504262696051673601322191175551632764126862623077069651393791753864716840027145956370086725911921549636627557855554016871218969272413871751145887098271139835533048065189965726344782129134435557080770255449263373864837511229682904306193366525603157324506825591903875538794683074295389717141650838885432777823867193978618155303610868455640839953965986773772548815057996546312833442638315805390496338126560644320647378798120157223825734228761323825621121394270673170714609132562834686898340382481494700573167558085952110780999038693640227759586555105031811166293788316081818152171267134706399748032092626171372940018770779505692149060853217852715429256463259553199299525907256350197446803355712450810022259887539682147014209698880395265376438732318069780512721189270654561213298566428838434216959025992654222294968842227953534836924337301747655327307672133409011669350718906667650945371808349199574047145043055210880251580109596382409293176759108916838575405678401213600638638994868088231530621480258428986130687012260200987690033694784247569179066876220024326724172802649776886044353103977872159550022536083535841866959278164521625919915641605645923480826583074882012989000099641623434398198512284793819587120220387714350732108389387776597645519742746027893610309626553014049776098789952681635353067581338358372802300080110341351383056783745503833378437421692404077666800341926588627963429108341373771873169701683131973482867984507480087858416032346988362019312764449292417128739533743120527208088940003688675361716400977784581169231993895896731565330366850919881969765579079190081901088125321439565620319969413652261179662244898163207901056753754985783399765037861636235714426793489090775076284531806377638463759915717470297029532575010108939853479373168694690386069568664525995833283664962834851521283009399487265310254454848355707094165915829160107652000678971301533988053591656965118204675149563859979438018043157514252349655070834544724344993631329955463078979809627515571797927382851960520387805532397353994292419100246305511012598477214135463372073320651749922123823455601553347879858774952513722137461594008979212031683869826650106515239135389913847801184990554571536523402260664738303806647705720056840170455845710882651270586426224470331924756622842160364650259382069898212057148621241642608639802968688298003268421692860688240151740269448838463222187277821391208373341856982430146675458431389495026500765147096012596806013799684778704408803640352847347751627100056246043925535296545700790823939220529598566101967218432732458064890476083383819079041407324568523490233553269443658260991247116832592418480787408498791937431041350302969102400205727036560715410472627617578962555973373448179543581530771427349125144152979325692852964542625121036523442471677858440109498993572332835392988647864059435536072868479941567406066409516057175848567425409219286994554767218536099369705768899841977270543257613747977407241934053626116498887097903123883376548376998857262679123763389510861122286881956634079892865503691638322833447988906422245528307593278154059410807566813126578086156389180131425766040623204890376811216463617252205571407869801026418531883087342784940589148147004851817191837241272478092282074111444145870705153679634595223311916749569377623593037079785341483422741804265882746437613353606378991427554956668840123456354765221533061719861749708527099946928709337430836028199172267205349138051381318292416560385759668204202681877103631498360463836676046323212988246109594419469350174407979153433874427316474378407599141442579502394396987448535600672031960503821015682812138884869236224933038915006047085217570507092348060501984293481810561502367053885064708691041070960861196940097611936650163262698444288853908883186670619607082765360764219207373340967859871011902412016833701487944698112128485732598562527683771256263651950088984140662770579075380838279219548772305740804099144497159544147887291942692904145798855783621481291420094644849804485321513440244187800227409671441943017164726749733238152659498478379588142624852735282167172267294258123696766820689682758052432024177814155491787819147450807950753477834508792894439988869559797160362838573981599475457358203007108514786859204852003681264459490752507731226835241720872107564121360438382173853014693062947601712381306873922381074634552514451372868319483803757438508559683374805998615043314071151867334794268041445006051854626819814961284429025600051293155313956757386739401394410111488470781823529603130806937095531359764935754603014070627518898353817263104130769090032757653612634817560874356219739196143819174538893511239158218743047388323584831886936569447887688866882835844569057740950757154293989598433661503580332171381018201650463945025449763455289630012109561858985037028889600740645182974630010887726639087438070201321162504257447529666175040368433786264290640884582298936375894673232013743019825363336334264137636359497474905554947662909913701273989050857376779813406750038425302840456654307398490941578521259483353259778916156383928420395232227041827614283004327428133400579093116178685562710053186001690025285589445677521927462599434262134197170171270344435856486808268514351208477130099741588092781832454257546149169794645962026628870642876007139578279260419069798146745850742689372117913648520264476034145618793823831415990912495416849322495833318110213293884176497463398456274639753715934723662209467362280295006121207560599742721122381006857871553417457578740671450938285328311309323705272747561294175159601568512644266959331818892366924790619182189682477376769371805080023571095231058490146417600637599266760565384997668067153342499336320036644128752630949023008420005871616212312512417150534802759955819452066894102567216373769901278581603599254193335435094381351387010713670773316396100013944374605129193144393517803022653518948162788062875336350724822074197551523529845568136716154583047326642448340913206960974700114206813833735884913497236734995469325602583349606445202905512286043433798226152979041387255456416641985609606180296860195764819692693110404052840898494206590610649706412000220230052348085624427269576879376114145530604206929610421952569809286917874332112963913755340515574185525783423383372392577863921928449918758416043539707914583668329890165957131292134406690306156331093830829754921497477153729183200459916031592275416104601732735831893621296431365496409423838116308080584257175633821661437148454596292926073583548613951838798225572596092751644749109268956278146527622597965476370831163606838439678535871118396516963430845854503022558685577133220835759925268755973419243413370052192120541408064541779486959058409914827525274001933646271132968138358058920228474718853846979438603876516469033504891346857879805555054301419219217436172506705353761738813728102338499302236851638072983148084926957735789205113216388858416003008959655025372486896783055161108224501776284348901379795416137298659467740250843556671949755941188889683475415289007649605720950470186214740899788060305525663141148492434975742879878382710726525519717459569864236166458197516768266743080516141741739845269961500612379344066939332872697636353886055050441706764413374282163818166153297238761448903943716969047992763739239636083766407261194013324518170452207372903994123322143336257935321610987836253638345923832083040079100390221071353209168731942925635950706952452587333126672462717727983717862373894887475516067734641147450273149676731738995502908653034903360834407405723771479780917124087576381402054821967181222779342636067711793015743193201437466661232471144177162385680164342392873789826058097544531361010119307641133072467715155409306619629880688395277252871004901631773667505496685089514831540142855694257207019441804945129171328817138526353498634002459343407470183235170006377860199896384635821761001511793916285865375767216788232968140830157802210924198724010010237211209674326470235638939883885513360123614215033004895099564705346758729889442644485143148355910628354341697682132351056820540923067662771217161498129499900996649971184488770965801553334278382409853944843415405609931595008344279217497628311658906664000418850655189031377941372536656133148855031877445793932065498379817658091471751004198396648282708421643442820418998852111806630581576455436888766301817375748424624557468586859462921093225993769333394318533196072312450158609218797969264410236338775379088688034002078126028713535121324497026029015001455488975570511706962836570523086225984085881012388775509885179051978425769670418093771853943462907586028353753907719063767073124109095496627025116435409336945639445093203453990165222396170248913211302951871776133644919277016591343818049299362315247075764885158550865394113240148458521533615018703311589632206470763255225704187934319468342779565522880091820969336491942069691623959173202069857078827895865302622285595626825889570202933070902389469707920657032638522515046343089668530776561894082382043282821678309906875277636711410806193271492569243915402461527889407485222623709979353070453317976901791278928052353398469276993356888992201873817740368731612847578313277097213826134426330492368038221157310098493353450866624877844838277196719929634528987960523134916349784112113839107505411508284825028037848030729503885960947874466081263516931198205448602929504533493783248290087367939340726446382313785227016734252464560963095715437893842432710561359684578396256454775590920194881394589851930033062173740006327752141637883789782322702935534018186238017672496306501550985385692081404853850243999432521390352826332848356096781756356166119017997728240775224726558509916867012115183711535914967214536607966438795460744814970353131980549597654830149980832857204378114441390547061103652798872963018912425136716604179668348741909443288666035396624726999543673335501874383437597715447053717027751598686089996981496822820080700277843083751694062027488820549979190216276244333167961625747689578274310341579289327938373870953377207948739162791863987794909543659352418703808326215391589860959256623562306777204878415562821112709697336780991637887764922039185343818493594279829254738353607921162045722143206286153207124421123911382437077478364795650810385193521217943257424312119088333608992443809750887100335750292555784179996919742666350108028159463137316224199946924630311323269779017734825715749941754804198082659916924232004707678722187456017701167387650254398032493178867465014632100287553622758550362798860918466986016273485746383074443634422140233957216827714746642634640865195246770260580289655021820236273466422598870706158911098397306117876962125916854795285669575178490264686367542164144034504209686702639156942079923035153856182454473482053510950632716899083245131234444706499895713081782753170114336996636096624148810008262754411791168876678107866892165707964541211564868401567860090233963879198694320047839041407283646496447494404084847809137907683137475320265226436779812291158377775755145861757636448883288239754198684830151687087275558842597812873298056939981729570161862994221907408425243456946434552955383463564679955178042698546482370904443461584868457792235785148721428079602922462220272015957518997830851286180825850337218946019430437412745802417759039340807774003329164539209593129070272576207459515425023743862354922219239696932196507470035332822528417530981255740088290819871076402723767996153463409901447617770666413232525303546490494285869715754754417826551190793775880916329401615459781931576597787808197720085830344139725297511332633140918496651994412070904396998394585476505740580789739163502772461941434043121187815982979180200875310806945350661321215890098249950418747217689296424954948597565194411939246165546703100337976682558631646961293657365250977839113796366352402149280102016136071689514693743249599931389787500114893484401679729075036068212842104846083835323691724960129130421464229484622423260954991520750223180586239073825196597920704376985733180773815168126650951537267612212241368499894126883179270588075839323472156967514360569630424006976829251848550187073335042402357518391610334466733457488929127340149869862973223437274707888864341991939046403499503018330525863169766418332655537292471694337926977596588771814766372778782915086703282550595424388744352565338747344715970919741399904494421588515426256515207798008378496333763172402279896279174534540523429671784263152088663876148555087801710351920055031139770215126211478116239525517016344725061958853469721864290214872397689885317199803372030525988860520201593011717602713929010219080418926911445344106037465985044458593638632452983410881534532887691603014844467057677192268896258991562260392144260016480291812207281756111974633661709223067776587532863679129196814954224843302771629380241139388024053571193657829971733249303428674932511762204672382254821705346617407175711002302011723680492543705939900438554750079976733837967890918506752975802860055556203256070863154863857871791273619338245160513906636281193997598675068670122712800716852502074161439212015315425113839247408076197171689123108386630552269046382733043678502435281471789149210024272707925041418525653865919958046156975109633231300912139452037423016387318536899397061845857932792289236832179401407019140170280593340080151128696147712049114756809440433945618105397356344927329108337470674298385988151141559368308360709951313727133936382652419997927198217101794276260855049220699540347750989972071346984061519449270218153779466748965254254416508223804042198704053977247521736823495566309828515223911889934875005942051218594771930901201469157153340355847294951420505239164256663738310150632497551717909840059955598398839095210269705836301559089320607656863091744276138110325544082999294719555440721181817902093622591776502465907988299124789339668300162652015940616411102811083272681196714562271153892777629439536525731039714339166838776021131450912829136419982948812804719588740357024714516309582422566706386619087374506172315579060587314040598452207985493751782304025371109836688391458712267545847620997110858255228904526621981469324006275664252392555024258474001176430565822655580766101753676372733029801772195210382247185727867111484018848961901848243006793341811122603186393317731898654461256687882218295051959111800135083977070770744443420740799823048317959096804157079063365970219552314433602917599667169911812593322627710613460101456906389489460509213725219926496553238318248670761750006355233995110984545958121653117571998428717270606328425558868631607929222846907942382246303793759029974330959416759340084786145848158604991331012294184442259838094208251774689795708980109238947310583619571913142658720376114403358557565217735555813545916446141265332594762694518031275819349088503012370055372546387471419167110663085441908875037101766570690179441374251888852991760681896496113045345508413538134583647247606855220653690115799014384572607753636963292663430931153473479810970298409209784579767536903099318195098773005148899465169255104325447043668602713966708678447483459402335068128072588085749091790700052530591820087199620853793360387313670386959417426644996627989453461720173412218768753334067323529977111866301622988739557297650913892664621206140144555302594085209717805751186971507213317885747052684095879657268566644098728430572274085239505257866061741566072873083381260256223177363217699351120964784671681877566844995466958209732444301969442301210125232326155640376335151646971687505953656211579586625291711559896310268424950464940436178174851804624650564603578192188857564201578737031672848756632220675197612205878699950694309740339963661880046141147827509725484150049936785778319405264321459589642513889700169673363540081726989070766616725513780019049915466905801756175723717179228387825362540936160590133188288144522582176949912429674196162770758951177854269164798685703062489449113281815069344707239326453698148736292569466748894352792871559326904423133732955581625518720962709597008992108935359507382993193232503849538939186010724007492078233635157945031194883148072172842149667365944972504178172492916184987373386420680057632260761475739265682040758742377636099459830450174974486590320524636959933382003521390282187882392499383266307097343965312646426637143714798251350913473412865140685451791766982944029897350897111245142655223887423342934513525093821563356593603833973563170302141850274023719431961625724191452497328739653963638679548243427104387354016170176975583151507331858824950025915416837771304507946994672420165506826062280776457986183451647166588358018746903871368473313314397173397348520640967306148444515488463713587937386392902139829606453282703375405315652572864563568676088084512966448324176998950253373346216369110489611941796427213618320727779732509684401265323289089217464505930699284026345970345655452630262425719177740525662302387468399642611560763099444812543097537738708802193135596796522087750249645359045267646468810791161261885720754816351428434145584166753541702239283544350718317747852787344833898605094233918746906532457527212391459709869418755371283461145373609935330757533250253832622412850448372544614370507917732775637263666695720967719417300000393876968292422154295029769016957669902675601952235789840657505433124350425590138154329185925540797272436116485178969292745103231370910860969713607728124743014741390436953875770662013425281708395358498220720736492888056279871038496492231569773833742984541887606076820985892466539710024352624542656107583486313140894571356455881967542254032829366286137584105921396327423746040053756849887427753645783238971095252795798069905895590002692052705364773468893476578951421978335939484515106681863013322203324383907991551800515846371551168877826678991653018082686254197261151930772627772519175985013752503823723226877680487219843037234582334702833755015799425709053378618074965736510017662094957442633926034667841101125480334388369773109985450697104116204091112729657507128645513370934258140366659883331636376376225106444772057398121598343053738453074641884384562753202545648058737150527867746240444512746690831216611276699883555510838354218170298362752967194818871284491915010793355976529576842155109146762733402945051206216014241995987909825705725004256054012633103506099474183000713522649891877205756459036329060494622574493738200371416029406828476941367170820363973786565186600042227275144167184164415736673310617909669759940549501333805904588715381234387136109157408262345068452798269230702617818756231816180828793513379664312323782664175197992446037136133950758714821658868858415831415327079208455156285761302223309312637550474856840946497475554818767859169837644296505893195710170924268413286542525971297403181855399335252623010969736490821305797680308805623850697836364744808694662471733278207753361435494173045991612787606630104645180535044002555640129371425217930188924172169463516670422119229403648950629334139780149534642749708346512089463480768152895751612761758135815707507752854683582618307812884163652913855211147816952351241696431782134246374563884737444294823601356087899121580591347988025126140146436236256002880548438364460200286057103130105883655583079470685873274387176407753325076369770155151668689010264482358425998011999587331628971267086381024534772300182857730360178598045308897662818036611100035715412933081592255261940298638494849272712547716337279038604320732805306098662023818272708956868037892651660757905834884329096041252759746036269210750025139260786222743286085011880192626875622837997191828415132730457739008867158659865966774266300767100587032090321329875894669901115626606985100095150159505696588418884229673162602729115903010954523206980154582498565873150491366310324552169850343255460688342301515204092604331038027102293086577607733191088126292605284250230556702916553017636896819346174238746608422046274377837834728628870120442468552554871322438315717279278626294945799497772905077726925123313646750514411303479067763085499458493198507158513081695267819338327542659918059228213010928116946519953203355475502333850171290154652353182124164243817357472538755203055044692936144199901186249513769393571273498839219744282016739240812603067379402316903970584761679075765646181152609866533877102461488471895712889381059703753793179022422082283830548670405137786307071410227282233907274721824299150979461670973876828661744648066038923802727289303539764289376393491392587330822113666161114291501551046619005223272230563183775293004348129658925427640347872500157850241250824742791922808636243191974817181460124893228109912011493076460469333755188610893092069288465192918236751083376019774035002208789966976654866885912460523256759739409475360831130284182471073984189398208601949574975630924745125925545553243039772423117146947159288375985623470262161710459563936050465988340656124851623068166168352426862898992855003233405726925936225086905235914525079786547599450182471184211544592987807712327487640624190442978346857857754388954675851876918729512980528974452596587519652488705882679467949229177169846277020885589210565209133995929081502693072413114077232044599146907157403110099785869371088961641439839353676412246570722066873793210787131390920224165389645452797283149328838512189589894720832205264846344597491367852295891543113714220256584147530706360175329411909633308504455144699067357174057393160846876656897950014731255787968845221779690619055307113188371188126596806555194694185079286723008297888545941814461807259041983150017391342035238862334846189335840614717888415105156068848831022825262720932886591196068771443338906855118379962028963041304261359745656313193856218749266209505151040928291230110138929454416904131810223883938367024671866739872443511834098425452499640867553473169049147422331138034795264902807855593178254164225987291295684117289885503285306989397120572162063360835320588503878008740575887654451409563466048164054230276675926613153754518398987551784406763342417213109103292155370796294221613952698855823196687225497412666507227762806759981523135490140896634210038312885444454039080425372944201469374493135837488650265058777417872925831702193271151756320557163716825020157731249870531743601964075034267056813185393151226669751071452300148768852347202743941986094416891461972562726555773586915583941114545272459728753609014756016584475255045650189955659533594110498812423505824725628360809704263820975583200303319383221811155167556374274138107671321915392313508522418523300289234430973563709438177693785284305677302176984937549794506918090226333781324606440297288844622344203242505693707470766567462694568615027419101769438432668343112341162340788266759149755810521689915007840344167619686269032370019517433497088789977804807818654272842339989243637854921879874556951666050136640999639044006331686154270700164997689269146639660726756460621248514758863497817053191992590703997643016793430782376341084950386316084929340395932388597222975789238530109463459249140786421489199473122824548635281284693476202179944798571397091190259712689754567008236890984956642321118613272173522222315990942883047062331497622161269041329746846858270632695012273763587284651066940852170258902792561429978097179853825195568468430719502946705348516584550950034716770935899609738563540211263302023963535466450984447852708864744821259025128312524589306882520862757312155729504588454703726978706994458578729991951358717869934381728170234383833792206201838195558531399310761392810718704863482876993314075504315655265266644608248511433601510481470961259688646874889873961333826503079974337896018559379145075414966628982406781990590715241593311845243529296981657386152346295248309180440802911021312572559136903574176483263219322075081619182832783495437396071686221749282436490683914177835484487164099775695083735059580389852233536812019004546612591398073226493543197413433095633908322145041895169924415391863251822451319686334263069228018442814236012430440070806498512159416725487395149962273935270651940752689956348576391579327124329102594723777477415460442076547620702062301057695359560601376577808197450346461016516773402750375184459676162295503584639770894878039521337742348501032184615122993287469521260258045502524283464330817881131621995558975325925065004432711760836665121767995352549720296922147747355581990679718100766380016110160233088791181830957765522439237093559848463861574044186182060815470680989948034979511916118910563602334685449871777288945160371650169121016792649235222198441640887473983837794721551542394789324979776369000043761003745956712769365392521653476038412119256373800617053017064088473925063797452212461189083238664464146703358612441874968744358439033977667564887255815159230789936437180281331234597875965368103225169524968662244657628922455757278121891734796733765226995956139182358167640297158583297918545682948060813737709856530301392674820073201312522334392265715255409463951993638915344365641048644977266064083243902315450425824869355628744658423163766228755413632960990334181009068661826608963494715538760850094787492048942342798541032315949532119978465398728326713196827581291434890106867677653997006244053796663675995304796254337661201257965076330471651382997276843318918913458564575861587333356909067260112221723560892369468096624626217785288729967979067539536080492038956202931674121681282408678587694401955356183911341601884562619914252746332612443833058207879333778801325382566942715095488644886975284463974976771530660941737206266962841700776229077755068634258860998672038532215125930625434390087040986104010366188119006767345632985075769532729335594263166693616525963377923393709571108086463379967657509152883791343925469850195893463691929670873339367520623239232386796406560855722827015767624056938138895521820307489731521027468327564445240541700651396951852927761530663564749317526806689282558538817265589737239645229588518694440905620236908989177596677310993141000162365696835502349239267170761369131579272556369617929712490570999886720864099188458395224632166122486196981420517753009802357354459906383435802811234626123761517791877194574490313520746995859017255517595359317240880095435324146624067605743728679094693024426963641170076446783411953564545980983987162928758617829510886854287160890579043930730004940271300980657334380728754359878788093966399853769847192313935644343412250017773530816269851563827840037479187365570452714186333585090672707340462139355425452585656366501117373900455929430264218004964059655645333737353204704799514415213182588762095998211807574250811020773191225645143081661763894157536288316089231246928033236559854888165138982396563126160175081048104628961935288381410258033055222193591562343464587371024709655621050709249941845445445380459155416826499443641030742845178682976017311896428296385105303197666727002161310707988682877604020881333741785413497247280751067315863844496894568092072836530809100453757954964864160422113042241425616002428032608053321399214564241580602315426755567293092172412503001475810435711042289344089743058453937919891987415956636309075290096005557308788239105874986913129848115767078169656345451078798383601687506187025474896919183763638010326813294970107946753685414346156042019677903761439628677323169087622865031850671571003850855779919810934651201147074658859309508684004513976825637624962847604668350299815862829366590302090772582153370178422422198394339129336621878584480392585026070784133084154822958653715784710490654596114428369938421837863682394711476776341318589001204410435729759965972443876276757353955445391474641247144784380424591718784304156606350411481456229263551764769647420710890733180270879933925021355234401708683324618464527274725074819140632389038319352663292498614965593154406499122766182468759544547150294081047454558908287914822248744712734607664798018286827558133352530529946210426715164812908149134465234262826144521137968597769330070039141269801150540797449195320528727045302619378816283139727924797105742894518358787493486185957188970964331591246996005170948928875279234769926623563347880520977681013281433921000857319524443044656885554269337628358016404749659790086184137542481130121459169978332123230387244569992100061602248203342142770482697884329632745226358095442536390970100484212542299433082609543551046008280013419909658426583441012545395825449033345085326127371562080088333437160285928830944974029174278354144966303555138877926606384048658619877267287978368161213106722450839638757658424888406366357698192308635953806120862287112745763770246519536939261185353579268780831333947163120343762912309784863153296688713742789708586979429621597945037480544706065523130825611151041313833245879114917804113861502094795007407654437231561022362653613768099010922911988130197601830004923593069769195538256348803373593730682813539045945987344707110299901933984059940834805067871731114832962164023542295028611215012161139979897360402882151353089855906083312641503488804623189703410142816616398673223110070220433349139519267986935313122364589642913452323877513690780008310985602123988658267616557422930183636831035571671843775762723995129502549402147210268585684334939829166549924976178787716147484440600744760890438070880850113327374383749025046761742136089026048259232338565033759059356822370258349996421570344529820179004901470104530573747807993160674871328751510511934536089282831354335013178606385610224401698195823839744990389409658871069053186736856921571725728098377303212700534276174595641985200838727269125578491395129007156014198322142742864056994837437925949106825148508494918964175841321963055373249137458994385313043151822860148626142330242071547574093557379719900163484881893805370573274344538056341355490685135973120873362418399371882709406041288559802322120556000032268944023150536951850068938789625806736376134174161533667756683176884363431705027981641201947612248901795230615299018370208951234261794511461319801564292747809216013955746548639343175423243724919582365398797235883941304897834686937585402827439926263152787308197789201625017074348135349283342981115352022814697615861829104474176516163680028386461684224709075944398366223171470791916047159559023570151002542524836808730578166460549077742142701001270861172963434785960512282677261609536271874511020789209736337581078878732256120408386299321890248673874685077044007140200677490699472492941189389228942171498172185703710372076398930083695407059584310081137183049109559110664541509461434144406368760499428509100608300311562724137223837439491135753372866847878150627098203093561486128668938424256661203640711508437612871719451042787788043461318904431237635463220388968001512102348783753119593278182330666112074121701135808196390413203953462538346592793068188006340822369104850974513946682434025286330487804663328053285255762771465146643892385197328332104099214085239895209646344968695264915653352665543719735299797876974031457085773556352117934754590642578001637455138859943723749279086852071134974480266666536229176626979696272352649096397716725849249182865502287551495791209091563361121060719550856085647828828811233141292016766034268884549484278814244945243026409897233403884380751176080220988852760807530881485825239483325400814743828771144346724936191364105566346014940918078518575915434766750254471092484731765480374441025813601533931844148099372438623502426105240348037146569347457099978402258734952002023513965893045959281757417456959485079466712322779760719043614828984758724056672820387511811012298680869497542734624988732706888003544702888081006325843032189384764880220721239975408962321377640571721253165209510449293539252641460090048921345872617208626884203656001101157485787084826305228249505522288460683112041995623279374227145978993662371592880566727498876060822814814878982992112953355135303101272837634544319005784211853675718807025182099031409449204842975303267238764277156263970047490245638215952271845708717543964581473760277995916048666508363985473690622585500561783764254717958315199434926409844824374640352886583495888396283795034715591965516989734578712545887908578719247126161785745741219520458929282323187897536564181668125927459174389837506110331391904668563661410120422214036205752935842268673824845652544186090077338533168796867802425785679300299359797987689785708581651666007198708442026365633242723380511907046873438361836246738477650830536078793468971751530479906962173334282244443344290342895066933783039123404815089219743203895777223731485817044004459532298977412536685570128418938794114889346938356353936168858490199866023965522233027360744993905929354098691329061668818048895938698355201581396486474707774098007772089889796437476729163600156302067981237556823833229745404099891499728605049555283129805499795401229663069969250927369639543527783277583315602909180915833317338580023692616722610929340136314828402957935126632555126911911776355676009985190543229548259316968752764161557422104604990400362471301065252228465653938159991828085040583882763427818683284458685520514042533033752364751333497107547734127638091199287994494341983453961237408107700663021094517863431328046805623396220291466076988449271981556248239565580515436668524801202966689283250364796855494277966057149429970563084416803611598946009716168566461777586377786587411490315464424673355912835875623644190445262888114393584613865079762512466946373432791880402146046184096825967707626435764778123834798594730425536361337711598229733699072473840343796148731467525148867712944872922423110322649334313702036476572159637783232973446920638632711926942461394317266976995056744084148912218276191639657881788634356441349096538401346877859858137348005586483462645277129031955959151478027271312775943367495819453025595680348987694428687240886177180705479316193430658695556857688237657081852462312957924312953322327608688990637434864274123902261157326822918072702615616179229691936607833642342078600438764837607004685432958379355612251044630629994889778660087343536652685633394418591498274054892857563966108559230670739765028285642845282983566432743590672505393524110329782382112100900274668986714144337355432797466335469319348794674293464261964971999450680187039126472125766445570163094807526907344067195260654553406888793882245604529532942971032080493303633428725408591874179138117096895155166377930312867734686984425188417802588468013816534215524318742698927484047017791155192984605045977009619025229525034498911142781188764480753663012954547109973113863175684084021884751632735097310561658297539618912355860021310499907864203626284001358308215793319862493164701191668490991859321789545380105385324122621731777229392094467838032105793201011489186642037131689089411644494382815873581869403536726598085228757979824376889287657143502472998959114504070620998583976794053371689838699158553091554282189713395267595095487383427383457137711162988197208779203402384239000613273275537488877263763543007623703248340009317166465669659789544800050008999582252143461794878182552330496848241333964326854393530660082890564677526279094141507132061678584170635683791247964500279826626046859670570960880972048853919528164858363907649542697236990886666181109804782786191432531512437560687251449548002519490722959717355605921866344619473904079724836479819836059444041994975442587162272882972659872779765411866858983695219848659539124591477426128795436887547888377028598453070740146017940401693272688956776681251454164774766582675303150658377280103948855325673140866665231673319480884657266946912271602094408609461581846015641127960180446248971215116331570773610847697380873734287987950570569728163338834024837624009493131689831706487039178653194899566839166386245259878146676688096098970727310149164694273222747219057767282527779300566043646413684192278879445703578158953343620979394816503623073310528218927954172215980178096792585858400163869048363161125051463072326278880602313283326254586751123052810782696821792772312760077266018107503952533394751548030140572193666501522612804147181948294158590799428618540334333497230399065982826599376522904109875857082453026726787600316472367063885759575349496770215393112135694288940270391546545201933960907051643168805893844152137352590020101607040615568245433123949375115209878784491861668824089433433696734884225944461740562601510777867850350828491115694385697650550744537382124739451735746216929425443346202760006379424878657005452055919260618951219857259746786938513289814342159410661443551060975148394766993715748162795243077559172877630257861431422989366077236165236183255958093660350581186500310241292308663873352561019221996942059798243434842125653640597285161520375887007588907254800746661071929672743963099514393813794042370029292119855246608315501981085701110032639045079332740408889692139201102488906651302680899008880918408350865101113248846655094702754528213881782381212866898130015521959000526653552741576714462906461884624947080220854843969734897703463684226292433142777981288183074491486685394728835633363277568944120823998851577010733137702021051272132481114960989382697303437767917661825299905980441985306378530865876744245993561381113034710803744773883428034500362520138729920884278303937827761369354714744937015149269869211322813765360591149913237452824875342949151634587896907384134471234905627805495870034937051476787124253853431671788579431810128844520147569944143200720261011112204674802052680022252169051108196831259185107956117197428821948290424480594750876634917549226251922133488591795352126769693385620908741690361285538857553771458860041552056262378814745962631679038810077506776898719287924288912102873253265133301341377964089603840267057484233252284367054282386724427004772688554053931850073414805281172570907059726373284101468109658629818139916629253619823245780052474920664434025633949003408528230485259748515811426451235588631780019028424809976862503392155775092104764381682147269753554826844378337154981349057215175563246319676905222320137865390278149763260530089956913180597049877899028277090287864269211565616306631993099418719129919103856908271238171431648013001524420308013951008573392443118381175465430032645532663183809065370182747869448432245652697032833248143296798482390085287709830561446165285650391901637037348349514024609019325320974697786283262483958888121627051776972775312957803337706581996066217635553582062498550691446224412542009932715686099658371407017124139152858481586589920483914579653875989857057664485344146278957351603802998852143166569840026041207505417753148513719652815820095063069027226484195468891624523472454370287363761675368640838054001627233666384745229122492995181118079549623266946978566577540288283555853949638437734497046269226918769918139206651888987555614596551162515167712644125351471425033511849164700757065569425759928127138505609942529113005801721340336944400030579982796310470120046028749758285543714602657404709800022499269930132453564201076205238433830506814508818085979842264054482954430014768857360413832947397127128849566914774679430803252306574650537627338272610154915132919515019410973456049131608756131291313098717331009304158981191670732581271073011798490853684557494542134015544862448362616596622453945914207843151186140362126321002322165306500729581309398486910702033671330133978467412285886649299749414976201033187568928169308770733377651475333328346721828496099487909770057365297748517612244974268156386001599352638536020958689927795210198038044891830690208029307312888307828824863945714524977452843924901032708490674169747986983430022082148675624708107446452542361329062567938660029251375605696059509549856199099564787038822553536209272100635249682616543619971123631686739703428036617968080723440249305062944513242435951192017250234724007599945976922866443847268252114166506996837682499699016220547819058916514065204151208953455614907125554034357043274300790703980459218802053622786702818898585629315860857419619559800601599327288739851771857171453843626810641368651058345371995347464153264555583199192068239647444109285487109838859314582115068165069135260515219985815158893912638669014342828799063754485581980347042519617959358125066481566578810629168159004535318179724364858452399893197516441654198691823991633296277144706615872153498215930067889346033473430999889278195310108313587812595455240943298412800150616010639496869889832499820063151289402578170627691566650723780225352971922684245894771416355438551294870716683511039853559124247049571842831989451547114907611066054408389812292710300531346400508770006415566112509689044293942986720982610483580621812121432384753005824949651454152830170786106918686057940550010420518132853614719850431611170024977789619754436682748640889656965268980835728189896666546449749648955372870441478703471444051315961514637400021245905402794033736047790339138068367588595715759934434269788891786059482166084140874803813291145039103862805140418604594234747469547281111706194448878880511759075736494736671134114032636366086222672224020662903547732274789207908774921871138575878066240181098647454063335164039832609962362356686663322332844337262730149367927467405573344538013970887059723892682008316712366881979900298196286985884678248847877508320855696128482122522080113142497901874212434520169432879453819731319666983126966692477596559412423385309219291215915289773027078011198808223780041150752777012257277041346425455133197111595628011326859842316746957227890310283180636498988744510630670712773219520548634644424172725605348463869177674145343821206503277149652408862757865525149052516499761201653639084137863224797055945162187699577831996369315136727432330294004998650977556714415803406634567143025318160336476213082126428798194105559367226061614446480291509568669194008421540430183586363631593610911442708126639412853678120490501023900766164566994403645518553003630256012766792659768338824963892757243094037426240306030544428171664260203438683443267619771181733902672537825182431528775014040300130091428706495078345159661926092478658406654432934263976963983997422221546763597726017112271513301041617234537031592646768791772654098715323598787822004843402337816010052870637552835313620176702740695157447638734665125925419456643773511084156845939483528034572866991197568726390278164196902891608266801372062589579228623450161461804347916209896584690544280576190048313091252072364924798142848690038319418747058465515513227571696987790667326927740115361598324402227993444830654233198290980467954208861233053176775261574228343488287725336612366764450049677595660423867965780870572825666459074607591652287875383476071873453364408701699736048668302242017486217354898545515905546841659636054188249700975989905444592123185940985273338567346647439019161569267608163692625679867790714932548968395565113950090165302447277542177746638910902075984399168683580606715472183251137880572585245725980225483139581565187877695002013855646937314972793672274520889344869338536821591532036134696238889078080198894174629523208480773962548180429948307174924656988992564959974925802732409198292713694024955005273514577231671831751439551295259285427599899090953338616251426975728117236416975922834159447305750762860557831873540772831780525888906021912185373247436313066719571873023772001004016543828246099012959318365289906801026292966342491981833938957394953821063614592400019695690163281084213625469181732535781914550339359569616405218487739619750760529813084556188433450418751553376879041363496714408160066668650452516550236408238980391392998666167867291228221292674963186689383258793973820702017481538149468818241101804457047715601813467997847454403562420400388230303987812482663356132524451617920204837518101223301241731665390693349008193953535292834405048325184085312225990396481296832969376154241687039158745183281673011960308062894371034585567567212302327124066432842101032753492064241180949738959990118948759085184294567876276330934935727932100159270286209072533345898198754542850193922209640182991444145568833581265581563361825700772768724847159533479180738855699512563759431284505612544704489563814239215457557391460411134480480066496247828472020252486465035344875567013273161441813649137047278322128709935751755689920536479822616507157857865786073974255370472134170057301260278158736982432949746258868196018206574417727669066465496008377516057404069632830332892195668021139495631037187180877083059982337949592091327876664200419177830185068720481891447159130946836628255265782632785437572683776424989231143325971539274636845202792397782482231347072751490444358506947296461683346665090599810058868196993137511059986799618689524374932957779942946428132630341900045845031667741781933018153711495016401330080724882927426866024486013897874840029113600720369672958870648950741657250337066405907425732107750697509929040925811937332546284083036869377558475665960511476333883925341506999794944489909452100900160336382440693850615441266183263977172279068334373110048597947143293328007176401863967678007029349152564347323782844783324039498877372796709903431128103896776578633135669048658213967859372399935876444019143856028277332776347146365892495560278464706101775918136629055747384671171753513393542847714311393724793005752875161478082011685961450295457850801182990174139573112041107757388920067643809417884245221417381494061481477496382023791291482399977740687000743303286690887480763710294984512124968068655678630572288808363418382934396883017306891925832972168461644503775622566481110524252167483802965043969750775007793174106065868050898376801273152819423515180732514126552548517895194008429638860012261313143617095658649645652595651561838805468302508354075724483004697839117468165823548733869184105188372981209261654635320861193779190051211368434222735645714898240268425846603144370795043289058923787459973135407803389870850192507967872210384392700273825624364378758857169752983348973723643390418352516411253691418945844649550395244702279076387087892394563391789191087649552691101087628318509669911527916763516039807621412334084640879404236204761978700561663619679965757169466286368293521583772547875384503704514632178680255915298292300380965363944293532768568535514836451673307536166196511244122663620217932903915581492345032804491130855332362073317065094227057361224797497887401930876361036432665756327888689429794445094831943385450016932174984520232685880605395057408299075929546835158491138958702038763161876973106192646678318759975444973194315077567731283822477761660224961195938904325158290264292297433420955809982085569906904357421421187371772549819840678792364177431481116924597786670472214856331215740268966884465980417232163478267750914039487417861904302993148996937691069761240864962885806853326207297623004157978841929119057173666744489426411630848654279985382145711760328790085750794399506740875765945578571498490212087390216812305651253596395774505434047551763350977173877012076744946475535432974266896576848258648190381662261633874620571370813932338971460452974079448253788674039949897907473211252307003587221747613572815641967457232824739812575683430974711592113812558717890649913862645682848248289631556330856016488875346901375465478648632534086873561496341530442537581514727637685462876566331641621387426921852377729164500188182475656276178290345893686805639278600161260926852844571578342985499083076219915289075957804988487782332735852538984574994489283752026659662500768706554023114796678590123869328374768414764480057615154857190792424838877617311518215024071747969015689571592854636698117869920962012594213264381062801249084731752989967743992891605076572929550894425451244913049910376996290865004668241069568504967492153827815173395565404017888329569822359449738523776979044744379891983764818154136804460381706942685839077721165025069721008821388574847939662495296119944020245789979257790091678031420379927574664109387303900946939824428301602418262523423790095032177944376956363405054405967807926142555908389380096055787518383197886804140527417506274036384830491589096536093870749286590601338479143612935525359125745643134945277760628827148716062932568392555413096670750372040718547190840882769727730512253393810089632804624873057778405603435964210870208852297915561036408166646172335221552280501820577205308222846741456501771143809936517779702110500424213863764202049169842756009817556274208175325217447202764702361647543485410822289183253240597806043948216146624964871934054836149959381862497699096574187638115061326811758314798069869412515124944224704564623978172594653133840947206824652212006574196337778876824904233941505347704871611293654322735644147741998938544386272918737218075093383710377120276868900978521274759476565864330849284945283643671687811497858734601154366003223746975028369488823590645819185460161219546756890279635602658063550232406920470849472169086273135688009283206900178835526340261054173760716037244009896998480102138663698607210084299870109472612636715825982138975699948138948377146949787688605672043576846537515309050605745444927614333960098799471957774230623163250103419322782208761001455742827433707334948433603287540590172719777707182779987797662817362030949080743813217111686931798372835354291621461443888985940380028000434330672736793283137886942377065514940722278074303219310432582884513401496070729967637486724230961824871976260702073173122078838767608725820030630371314084008645599545313214835991193895230329202100312279738645701209684147697015516348085753721240659852897848210432504051020796098945676788972284005323752709466685638721485570048323254015001240346419269734636495783178404020828594227703791062209912605603841777248923226661530173017184488315465699673625550886940870300070966004906530476052681727629516545785267386188316904325374875688011695431102243456875769032284451846626270368891348338085540106196204067067535154273755286710694221270361365729395093920778707875410530270862785479944178364319169870958939115297457681648449578476872750857121985969102393481705685679952984871286739526244364604666518887012205672444324798833907428604028948008194038484319362336144559931954026433004022558573246777909935184708350256859364913754705926114533914561245455516644997666733073855283591085711796248691110396594549332989759837818023054542882226249165367027582873288878304609966636305111936096929780823141845015781623031076345600977064770383740156009189277561923141284420914486402992553837008330514633356785485848195380792699014527706011539761387804274133072114951192533558159228608912045842316544894002384915044186545192445286718028541981840491377737881011923696599996385349029786575710689894049524160689590202093218819320666488066198603511879254979931543826684909315564695532692187798481489126632590682464003027726861727413072871838664975153100901394898973433742371152247952174990803957778180534333878640349497450762533986776642388202311280153839844722009071017861229708213162288726439160937817013228581200783455179492160581347198911334746071050780172835592884201357573803276008173543269088002404065881381434279789347754663997397555986662385555722652313562656293022580537378097259613107357448399674558429893446857394268824481754937863206163473854448101730840610064812261260137943234010958721647583882139951964742901166834823324041810272697505856873617223917399346790882918133199388938932422027834572511698369359809191988020449480511611503602340944500522415490245314280257117337122349024025801398042900371191957829799524371385269099292758622385784759922093385038873244949910207856403714656292097284777196445511098476574971417603508142221236412064777164919948875233070634543906243916644102762720146603165480654540465027192228471636874327108682903664080965550071189070501091895870488773642929123211191592273642582928840392888720714314477408148554351835574815978424500528455850307297972832856807300963643703512452844929121897947225054780784820806014120172596190518326534880050548838916873226869491721163193412568115448870518309964316495317298232353730090489486493715136787744301196563385144975887042529962686934865778109403001522312586434107710610300646014575538190640652777606888274679622478486975773529729389850636390547226362949580740420274164476362636649554421133920815339426993868155439529554715370441473546541219169505265143507831106331111934241364434752090438118501218343923855712043975023447376271248216502312135973519492840797504701813561086200637945233193936283046797125554629446569992202095354947498458558698413999944074544848695558989208710092665482045539718143614528843614526485319479532526497130578291301593942213446731256881356906814412404246745273909549331232061783960328879473502801513912574343505997522753700793642001430609067532610693953248604540727969808855084283539397062687480311754839217247866984192453877388702405378522084025323951340758788821185121544868645512764672033022229654845677836559154121344312788269058058990845547208648331720640897113847079075233341785821481115082573089665182860251447763801839023850772586376149968564652918563620903491753881890972689439789149593533604814866788080461928711265117731908317073642902421183746079136147209628570425405485287077601170233052714183388514581164194755069057640705564863133702246175308641127862712379869304785051691210618869077286608874387750319281194829333731141097690276926151496760703149769543063621328766446486456893680358874651373883535720546026106703143374313840996570409195717289470181476628569369188451038724372190179739399895990764685572013174987830777132458860030321016477587955051661630326024315344056664192864655427066054095194573351031196075290475412407628362210558502232048989109503723913971434069623625569359699212614780486517931238056666478598009416042061122901547408105423811850459585056418168742312369090439730411641173332056081349912549856622439036757622211932007852898164461062676703488882492983937198646653368918417047438906936709496604705305831477405101208358828168370905437299863412927694922010577071193377926224736152698258205209053332719206896824245698040811955056082740523205482456615783076918123992533509551837165773619642928661555012240312667473650702214073792219064298186165197377775281064335362728280992767274433499051350172110612030096424608806107305547522670922645954699551009240235815216523360108423545750955556882041848367058492788902347899028165189428345658098525424586796676492474334289504363581445774830950407755804446964622116328859034828482280271491769999626960012695386922500693920949972611087175339347783774197314503296765476814426636679120429715571649176004191608625688921742000493787059968489635128532295199344234931929958600824614497377702508216455179628013864191175641930900373991885841013371275371371461971628238055041168814964499566442587712126794468847641328603986304320744145162351643061583847688536517725902619183927989630989701850543006884230482856137753026765695448757915093945177695794739729327386020106834420762526674131494119436129988014563042092967226352361581654924040657325961249392024566122821515549460746737253454447612457901082024906207464380384406112438948085672264041984773743216923230766024061026979218107829078611071185661482436935394116688318128296497820435339310045063816815446581617417312212576949047151129059314618543517917718671674619931317096058928587181089408573558401746977055984105249801109387615801601927449617422060504880491994349434771989693605525379819562088100753537438901652855603383446319898819713758160225782921840292939071938898716028322092025543878296340080064472874810864700275245353061019704980685412590670800871368434424390562918610668797358408786454790249248191401583344593581533604736141279834689712028913211218516940535290537674370235622665574989421183155781528992959302248639280319013528273187611245354058458773296111133091254041614781996465704193961823860393227753770174051667250131880916073687814922881474385584191335112168018810005744569974476065051243020892262233887855541639112897862736637741691680543312534587740521225404493533276353447728592906410885612665263770484162524934895320288480017997158521781373643045643104361149173475835395861514840352322691122491214725598845064911521059930466113501436222071159906292593846263447451805239742187327526879814960430853462824514933120253480442516251556292654976483864880981127875338679350540932230685067140848225886948579687671171313652747328259928245623804507286499694151809929983779642893519075696622886638520443434514009735309792977657265385077512926482789170271303939444999150694822321840236101492896030541831241901889091112884198504502623617948169603364708060716291388581291078777701311096265091428652286193894067092134609049022735153521797905772207073575437131038316641490098193040640488966940339130152475669406328174751396279167588362981862579426358350138291378516695375263299667694318785613712279768372955355249442489503229738351046450743788283286348397530328457082630836675956095974920484873168919241528902492804326228436023395896145042278360391937453462226618556417875904158345617011080010003093795884538654817385618466064451466154568752627653702277599091068570160642505582475289023516458607199436466754147898481900516673605134410187778727740008832933266906105916561934126644160332335193779876709981053635357696934720188405686337870397374503506438056699610750881363866540059253002474471792156474627717910578143632972679392549387920713401693644664634354442273154270934740826856460892506733214753531296861458496751122772906313129129749516141050473378886543190233466466981057563843312398218193287094174482528919187883619520393983601533625963783596812006312172069778450139215090900438323564257114040835994629255544395510939547111625185446570514869732155227089049197149287915284463873729650885570956054354524370033389542662689344751852141640477034109255698930271960453064579746393481762160873113552514857622953296960515541058699067723059772231152671724793129126138867404838271490620536134185609467564517538317973733462564008561442851728981068468078042240955749482278588600999720774444411488592665821699405710573602667679202543241809577808018214978532944544679497477302916014820508329858943429266930296063096328937783307441059340715021083770821565754350922816659639967781487538987517203570953102699151782154130083079387764782036614451286633757329957679462651779211924491838343091189566636461955928035682440127985968761304701822826456271654821920814355463681898249878241125403369063471046010494624547623533683869038195718381925404651175757499245015095513960057849215748182873257708442891990023635395695594857264886318662430744635406586511528508130496335588898071157139401637519555367250025733400506412056105311474725382392346335538795416516875538375811329575302324547995150689907430520745836149221496138917040045629533847275577987852807614546053748368392623727012247946491702939938940951553415588871207824467048786636108364756428541965159817437642807163341823458873200803264813603392625136510629868194290206089808694819842908966649889068098069191998552908130112602152474850013410503546828117647924816772619988967539109478894383634019822090984586887932696703304704453239749444788577675724960685356602710109631957435486350829798489647903640375008292726800384853095005278509224341778017582019918387837002550622887641128483048357766025316682921638919373142851230575309073762503532761274362854204501418620365423745666749243387445288369171685756033288431343957902615111324073276339371050505642134855963686312394148151274015915161292323483405815620891740076578387435531839336978308667251720414704961229022991545996227865922550532824902337001805393951610127305611056817039450313787937672242626396430347787401738216689592193095284848969936630679185055514815304893640671728214437516819340586952931637442493781527115894261386901150840080091668762951293068963004980704953427801057947197571962924077772399031764149475848749626236498866925963282906288860781214619359067062282901555787019724020602010969889600256215930026002244460537405590442450860538050659676026775286859131310035297528098654392818960984135457914048892504481793709025477931925371780035923397290983401299425213870725709862365176168088354235706763737759167631942284077802516039735436733688206045437432652567793663513207405738359044911672252433437593822405896401593838239903060954851394156816268727857435388569442508309375655101993761239693792906521115963163600990788217683915636377100765021894883499743930316962518340441449231270476549083582050720359704632292979927817992119038948830982386779904389607377599440367562629061930040713526997650340861105971308574541216444917742398452181792457283880281317920071748943952914581101138075861921798721206753805629796949942282539405715568821017733524826216078460313820817543974593102829937902799982337527056087935781412293886002502526464797846186123565046188097209910382676667409589332272993975141964976805855873963647104240614175872770187853697419701233077770340936964058274535093121258476402026547026183846751833469468402829530760908090691392671808808714451438469500845308111657750402391923075418883094649989749377055178892669307073850037661185803379655724883816607196274478284485697670928572950322950631812328254958724026241602545461219917438297458813055885331056968593356160868359463652497722431463363174553648202616007802952119527115209365646471309723399476433979401199676997615646175495972373416778792591257630008144496300555039206928569507882855823635645546817485711230090694288834797059217998961929843056799946034088942024637852779710150184186289047595716959082862898755318182804228642202988653146063117016075716890083555184094680661055875716848292235834875015404561527864044880020050628848700710096511867522885151166169277327578297494374285414092634437848144871628423768601861428464692598533242385558622586821314605701119547854941398465127769441503680590000771604628556579514013892382033638158625659051429929275608671464388023535948705241345152121803143364960033712219805926249065456156344181406428058133251901570774220358989211352563944755375646454376141305996357939365396419218473699244815214152164141942984344991207680462428051157951659308854249675941168439207135375462764326505245932777849342549038021689482229932630312440037933045785205822434551849076962968096740156246958692224073748907259245651590400792098838006015713376455512433601551263517202271594393906631650295397676799738674887999303889431605812647552311763893297032897598538327193569426692361869942857826590102843989254499291467014913085965845952539125090595773406377903947367563704361518524642144339180703078332370547952426073930905778161163165186150006052830443796131907261834332322304252977978440516804884034411434661510336997656965727481725342143111231665885561038616595050507305200686456220023390407103801978636684652326416417149860827107251939019853771624740646969308762256607742220674929537580483395643090614083938899879539800188349329398249116750516751432568761384494798275433483379153543413069139502382929352308079568175075557194821090514998335254913921001468960544781268287236620840877289089016158905526575857988241370980831215085324035609909199681873769095045072640518672893863443289187823418155180731493785521299410276516151425564227778520928976564711896415815536394075405849656573824550818984245414462284786050136029230558427611338150160806346182303408171188453115497925989326293690492245329068621445547967644422692025867799617999846670294824505070755206384324821627629746244747758046401434164100705140506288109007492826054679027430952753048396710246555553624801405640238619047830882733632384538096707555466710009173858056641838425076967803633025462457086400036158416616047243110861687071987770745546182461788078610518771038592811159133252643009536442512044763240478572110418168641686596610485482950121131494330945731572687479893489271950587054927769097903175319129961249713448020064540159922063347251611866304465020733493415646764422158406420140823461029147313956464648977651685749489247143481570680604831647816921998048197361558876793666431936148062399756386593055910196626489586914464435803595441597686934138763745432890397049454085341445711433841667379909513927282508490034557890522383402587732725198405010663595366879831534466576916426118682717542529302166231569140928800952074423319494660732545008830126990367865904381221435446405306322957761248066244383683082438248685506837984081759230975433946995968014028102673118565223697546101556268358369098643748984725947829881141321164175846126986996737951600685071458223078213167959175896420074176459830341169601513036432317697418634979346348501418214536087214169008606666534938007017846427732127769904167297684278083348431241629367396976411808642883541344586644565642441815751404017346580695513130266761491579639884475804205684152346747676538672483843950810216838756776792765253753891902195571467531669398528791311844854009292171883452517481665772790621892825949639233548392377044359745899711106788949046850772805317886606071656925792258886902043418833299088319096187619858733791217672901762096463249666711691939979833567191181800528831405469028742661102365326374657570883000734975429253386281604394057673452859166352113749833239971818073009324791111263475591506733199243635177422843804266226707954762060663738039312514727521731232211321713891875872623418484394657655148329867747130309949467213723009013397279586296106519780373949778541369295269122890130374473060730842974600107365452386392015210315018265221098765149047609858539587014478427929571278935409101271529484422710959398145802297708839612595424401311075594017059485723061509501501316929464825463159706688612180267626889298532261242643877017889215704160862838680179647076726986516291228852796160320172934541100460929024417802680730053139967803670174144702865438191189073753471414954990864802005200268039131685419259884239394074835858067215040880326674571322847255996998012256571532816842993951606932586666938640371590802679364610230403071778748037175649083220518145027535898820891738669076207890298002083263244776369897158282870815868843811320492294049862832544895387059140998963590471609893251759105585582060057232870749811227483244649871519157552426234755925230170366899966340487509011234425466170334446363314538303821966625426796347922259814358569216840149882282699647747774721837220438551206306585039467196431036024189595380261341416292926036091506022169907520956729076761455783679203865189485845793889041037234576220179275975263669116961766832710680218057850436547624074839174170455965387589367254745698380591748802829852415451978109059247163969948217879279902692711560049063654909083514491790359148864006678137101076488865875512084480789147959988561700824581028211894234221981893901882482026250113509714529521259139752306408888276276391682789790079777410876326665358289760193794789964857991240035699407592744704154426509398606097010129003401898340182442988673932361225156338696710941362788462149747050589841910310082464104073399646203757910415115062602049643558179537589107103761145871622200424723458327350586348534149852827838766337167484648584264127338963025795046938713811095424685450774005225399759395224994933680520811936521584445422407377333199832853907379679182310247249831401419152393245518262408646203045866570031206281836649618914754602537205233870625788974025836962349298875951538932273739115787576270487639516798430279397924947232654192516026046395359775927134927041824805352958014029568569286723122358794727801528483424646997963782531681062375496687565723157726241819795157275832800569915506859709288799312555914548147489249423059988571904455623620681453560813030869754620802603794151676918419666048190094241122994525395074496530212902956912479849444052242869540311268537030429040579186178819855658398774731000161001481649424020552444980232679821802842932778738755092387061570294184654227011138789081315403378675921965850135219391435488438604740326356286380514765370042463160124022848667842798669631922619696817008185059565400205915284396428378095656305023247499085720208811648857350272461588968082344591479007260381101944310949754953736860620622901466517439921247255108841343504988819743023009266793013680477729342917674630705301877285028289139825622953934633389266828318785959671893124734891678864668275679756898991780578300205415263069037153156796534263320314824835629363671643435746627919564419910217225854186395716558520844224885677796069392496563817840379844379279196782290953822148723012545000953184110661557217970174976784136524462288230349845281150034994442557160250589964470909727021087779732528803026168095572871908824917471214858772054925352521150174430512552365255817651785624898615594977799079306128935893325619329579041911540984021391703412920277284016942923496472202453306099415244953572536993997697829286310709540763016436352497251753599002900969720781419646995549043742855557830654273425003460000120766092285605255235339301713508161453084222953192340496510913533068657501553512603901031428368570866237872822077578902814456247777532217088648229098406188175690701510213986061992292740845301540442686215185130475397226982492687605601265468437453088862196204553022813041631479052176651140191112114065088127554546791277429494066802499045304064218968608081063165572670208316740046225282930490249986507328460920894597449056537391472419500837285791466666337997215189416537036250346363485453754526775510619043563420754141694924881802778978691668328120613999357076920341862399207768790950911202506661074716530078828340084489614260819354269549147752239226480549673921498218253569826181619789350585967796035641379901514956672442544738453720735231592835498947647274393053718917631533203626600046573372126271859951782155289807548272017109270838694339362862612305534989795280367981641697983243398958133235766095307698649754176560978328689331799262603812934561999692623270351907533549840942159172218573465610326200164766699529391827396789921405946298902494784090543542010489669795739758574905005456135199527886132440732878260121147838279751561417759636349141703192072392327040872828138127040487001722711897718287376461946320038537191382611463468214303794964777970256110119380381565290630341553693047268370650376306762683261260903134194532493172889328549526382911783931164338905138642101440286498716547432188163319893372443195012411976262357722978690683522823728262160645904266981484850059229529161807649270545977236066194878504342665146498424896343770577678333344228140373722076328274001571235195667445498525066579004945547026118084610163459383197433985409760188455441063414368664973312913674928744918593232288943003592398167010861382721198699626570319473302516108696284797772829666437265681571468141406134636363697865669965118461117062968143676100891505318793655233397381856857652550089953786314429040072553680765626581446202517554180487780082202904642376234551335678413735036623175748785757435234049717842580321303917193703276422804026283690822281116444708756967273774769757364809388631333072865765411845459517370075305899280712279001174983514551052072127608234960822483680571285327239841902184009402257760692494861234053828969186526061367410967018525425856107106543604715669416543060260276606565422956437980326446265622278402708394370184144134846765110442421595085963213428319963256338091868534418189057310219866274336118028349629372527030217033670525893648370135257760320060498994969436397259397084124677917752146127781561024777197331533724173227962041755065416096784313328059049104697400208094860734898301330190286700917774137499728684382000681290208919977975746852627069333054579176397678219033943979228863023644545514372870888215274295576326386977201659709750047511054671981611331974566925706465247021994359941166858593267506689165640689307017854003444171680010217898287076488467202717213195293413728295602383632581720277063173934358319955625791515297026956884786029871389071138110024830107350217042561718064207266190506529116125911469755910260876324213382406816592621998217514267558841324810365409359539421397232835694001281199583053881258447883627015081092096577379494777887898021821886234416915948063166877324963275676524806434421864078550206999807843125273520364742004100006673917951784458227601178723206890557555165496881194534500247024706556106303392640408584427049092844136869044630592663079382745843624609993565840787947840439988595203577811611384990899954581133143439190238452013805550933920600639806858016226139355163252456532499288975151766707824118764758148686328697036971088329959108073483251368245714210701892180509135463206514756402503251882270762682034742940986403261952807629626639767015832590316313536383636940686459380388595518649668840590914373769206112731489460074257681988273849825957723213131786773034732226924172386483445600745953381349183540330464419717942005806248240238219750089289765274145157791105384195271742092687545760525495318425543771885902278412279108058160327852646853656415563204639036171577741874614996121129415303782590750247798411477817295043400942462510846256372075293229681769584281841459433835966626262431906234051220865857424488883044065972385560274242162238940799585094341090575203010838484431617158669814975884945832433351405179940723301785208084588508598832090295341448875352270873129002958246921015417737836802049259477614259252816612542968939557862817328241730814605397304411313744422117964160131968965617230840716668133047696658867469902657842188930457644729278958106998751631568038019296775065848890360521200597914135747218973874247215488622164146329344127145043646012111184410859729156716590947416618512150238579234481368912815917106438486918902618786650064771198965714057821428811671028127731490127289040446608747436978521055611244579577043310324336375163964082307526976701009526995666949825422594049399061707986661925519256644719400363528142427852218943681319223751124589148377738162432881829740411781772470799376003565851047490425620186112513140234478061101487854175491616317850738286932478359656266000926599800029323526786612888001072309284533770296818063278539388003506861428983118937123350036900085018404995668250691583086541284351845831546399773300332115667305369448461191377055766604069964849410005647996161194630561555788897706650405935082315407166043886774089647213820835898354904678454124169343132428343211192909512120209917179726276704859493230932143333303356041998268661471012707557062137636192114421880792403010491287379412083981564706515387069983756982295078905743640551184154293089108577655431727742323294219885948770834977898612793406730102227800334902401476231846604734116984562410194961569732360318125246268748014810926697238327880017357179923945770660429020393761950490441759117445327114300291943092309897049757058972161496349599561382154148624260610031922249020989702003024045108362027273037074862504462394135433856387480431763150817187927126295747191402357522805145179261641649376527611868924658091023857521447906192499896475632366649090636592162121978474165106669350410147142910742792266180656353588265869411794246895674236795277686093384811010499921733261458413192800326916312183397675134520644068326676515904682776404911396659801300626129436975502104489551907064307905040015908349628474124403198645663643386289757748978871337832572534756538737911917861939835006396370545644588032386621429887736397966378053615137716927158054914918967604815940678771377831504909734480468472527810251880915150850896933892291028313565296480195562926144798326523081530840760497944678981723446092518900598293480344597923073344004947890518834032242352868237938660000161937101755489038976027550813801255871227673737405184086257800395203168289463775586541440567079372178018231662866498790416028804841973789400697845354887409749168541845947832109029794026924809066787245400018870174261789218671417010715628986736513976368047305807544530896155610109321092483801261243719691786577644925846829882427514084384114272031266722989612006299514382762801906847251771073092232651737984320986950757258767171233402708545473320819358995425124452984586336380667565305392073790739410641184126046825430808772143410678621044042333658944880871232657926828918737935998655678016194425089509700330526035472134271641538707306268524005515618371274193513320154117193055842355928447715391963495267864613730456322626074530856075095079216344889616724142848788231095350017969700308360734647156635115909268080632314260017289811656150309615747362388857952227075156234045615141532493539509263020794308356125075242682263888105007389674715042958388904269019004095526360754818300352171691961359720486045019334543022219032171587214460844290425329555336171978389304465508809864693137332699993151489612110208857147013977516604487572552871457860139281750896015153698458224233378013666472084147097896735287791432768353227949655407599490296292743644876804009428416112336204309168110673359674487045717632240809998578740991149450401189991086398721144475088456319221680862317992868724026568788158929157034136640283787819429049045116494692950498328405734762134240869217216107654819991000451853822073847188008492576502809027991784603000154276006889978446782551992967025577078687971122948560562240016097267562181032100746880624392178821038177759095465821762325583576426513257405866596586913928174052703689384144618130710838823375671190930015884815268350986079356721851306062108923460052033957023052446986734613177960005632130864221485567462616369909210071443471479277499150265513456494571024978517194743507118700139802009490984783375714506717482237336022321095336738117845865328724042952314571663959091213998565325990481331575769458366886738147967773495300335828968747383185397425730635230960642793029785764461620544468991855859593419632216306561617452436121017411295988678014826627319998153004864749004282798960855289362986670928543736512302521106303341403255161736689717664579895548795169584121931708171637507680409785458151180360856552585788493143086216910517724626843665938038775546524200874764573651706514421341453819626521355005199814762017870594671026333087652511393620592869626513872355482066780579429762954359741583727531899419341324386426495376343112502737754223789243341731843807874632585916892521290139653274995644483875337844208104133092203669371717010115761403388973034562906492941988045278805711168926323366803883827615892073334295095681523659994002996850334636173524134111035328432938338309132235099768021293721564517992885119704116566906716415623967403418300004552481229411782689230051568206407638635635535137079592243431921532815427522764924552146239019933521372062688377494408938603240208400803523122037352073091318287470866158451391392309957781731693760122558003798049561762531907221047641295931555336901898622482882185173341949759247822432707270312948409576517982234218617040623051623532825135878116095255851801992234600956855938686522948075120251499722861221543130323037201014008035743082502264463096955264576610700908012232756390356321926293927662177142310319756805870914945179023938598836917704956472466200309359938113233125454946919927698480047215173867355829587708843321552167794017837476807104914518425219331789361040405804920542551867571548975277739530723949189363893102350650723215041122460435798971477121572525443633661807085175581710029077782444572843227181382536472165760838408358784565427769820893694338634266797751973596849587211387740654123218695201711904549018159682305660859402059840078084799603404731833702230021612577400810339125992687824969488417423983898951346402629398754635729543875790848956917761046102695095672346467063003182360070790859757004174462232536597464184706559446662563942902928685730886745739103788952310083633767261056586238487355387614827035088529476651044820110576475275707763573063709196258389182174701906137196303810688417652406770428509629246720760758017223204908907918105634765397027445331211131968960496155643690732685572544668657446466475917748586918496726303329879504519029105873862729651046572886780945507509103545837986037451844974695308411176492589560702407916378124771605088273815688056223010724830383785541421865497167169052461632777832088624660813573886720725149405100207352652923518165099708408708037701190286585604107894234361695163573782925110460578488605418518430223264960213452219040546127563757692604398483045319624340911823625212436902862442673020404659547946759361098656757854686986362472101570036054940468288602822766401140923781912412748277986282696834421184205468429023453731137379342844554249627592835408835299290264555085754198362055614393764258519712937661696250912188057503314243587955710918713370719706998615733697381927067333794384187423814076460902678309455607473391720275164204120132656913176704878632841175471587876721459619983075008813469207971049268761557854115380072759495086308493566657239224514620396949905767946215809741547044416925865494031750163015065308460506695327228063317340764278153480958321685584398417496113743888940721577727062468491400311063996751502253560492153520406521535510816942365872779347424279723455111289017597469246697688620564323182700075998471824191864118357275209567196369170651925702261086205516213309038768767551796813224720194993270781928558317443803724939896309929766093105566480371782095402820546782776020615761598750633787729289484276309662057388900144555864317742794296495192983221619698434962205332957102594412497358573145401660375071436902022982999403360248900170697359045295168986237072857445817038517752301069290600535451508753048529192505684057127032718741979889523446824954978618327009454260490652514883192368368458462317401131436619859629392880242545061317475194058619231385253052824425635166460023242891816062624146694856552937544700255122122272915729010412424246512326895050902939290311736755400623850392008806171305251402633641521006490626790054936746007929978003027353497510796261216196222599955978958910114746491257582600972856733930810878475706072151812710552859267171855219438552737651435774907667022469758764596858569525435453059586536113150042939850515972231113421864158009279553290187812149773434273129840380408018618030635830682915815341340536153304684723343768531060926324338254940033529311700144064555339602181901915158546887601009233684664872263558277317711032655702313329614129497146504092711844300930769187787248647252172329829874031515031675861339448404287207424861630324018364229560729400198578523806114931696962207591029655313886707876193497918635268560410541851435817180183496955190721218415889593847802736552293226918152936589682459488372173308637551643415313576893480547003324994664883399240081405598183096505932961098577665556856471174816274057033926106318484395040369048822995641209779117916281790714378113404046381549102583425693506364508769008491350313299832940381165669523984338102709326991653648106004156499677943486290795982891883987860082053345344852520632996036585114904686519562817838186288768893163813659356097721814846823161321001423114839688368482329562491270504528327827907313628937943426746868771598911130151513837450164497051404962687098900294738655641006701839086957821071092384748557191555494247564328336036512411776688191880859748236052993116881634742053323850485300620375727565535423228969000947020967131597802945068257685734456930595833300893978971643277848492199375898866974400654593699672360957732772386216448505888701202076127327884922986632965726918018450226845925771935730554033138999497495579970194855461229732524067779971720769503605651844534689722686136354336388154871050848832174044203919615565314013308739039428362559200978170306672924868650593314604179476532658655186448579228885871456636022998958796987967493606389494515185434209165843853504592582135864176537262896191612712099308150024274218967143943947699101278629237996439952131538369474735772455280218262999394922939356310552397189801425370742727573283695778933324857781070869474029274988466148843194907208634326566086861297922130760581242709943700105606698834605718401953890635700988606369932496277572583443623674333616549683218802683509494276243118380767932736614846318027054811978344829742533006901714145719442243377213445322127325276592796059033426747270518527695077635155642945769590446035698249952478845238719469307116741643893585036795561032925113733164822232536297001989382947959842089921310074523661915646468358117211869397878085799791520452249390121606483977601214377118480897314832095519975560941221079485578286228542847116161929550584423357109440359618714543246658556128455059713113542403756407031079518491468128621134429708401945235011142688822881189708073105023151240861623754259030360495442910950623848575837871070026969845953262462020665686460124204643963562794095093777327427847902090987387815177666724029005225526534518653531500606325431055520010853793267305376616095129459342963215157187783797776004205113259190243212646591150128198105240858337465801371114053657049203490218216286467312318326961615341402930316915910008658789497871269465127560902317505325597420937113744055670787023276532096916771303515809046068281053640371805205045239941322520995251486779841794098567549759981046568563463252111143840117176455831063306042082099571441950530676304558445701976911973229944804472051080341618079514410503384102702527015739999109002027571411271159814557487942214052874045634116749823669179370619454560047923956682766755742355491212785135322196828857765990252695882413186251577087372307341650893837871518361314182288536713435876319254440722788870769900096372116262117937855770007565407591960743649220412362108002411888775339457372940559655458410228501640462400085075318743481285582240893188165023488685423725554344291811881036524361713829687118447311257934624766430449979374490298709449855289665664710251109167485585160671731157775591215952766223470800513275506064187686886310615346672295406717345172803912930232476554163693115579883703545905548895149936122662246750972991341021239914563865102021145344762970103847759195098382444681812567463685399376708633946822404887348978529058499508474007478951073134622259876054912668317461249550063616381788263928507366757694139623711237388353205311028783550716987580189008325777429006197883052127453435753804283056788262280710968098802785722942904418086043912151041881549371553643573923297540140523887280388247353223280536561023368494693052447423572829550644813196785941913690233780363754338502262403953900186295592759914622343716200018132703880010206174188076924972227066736137180915917822821108475660735644438720836624861165797890043112643884016133998017056619982120902041408932584313468553517291670559004660899821332392610554268778434495531918160897839917168732238078820511742016575275454767569241247164443893216143068016736614287039538417331321713829822900890968236376210043826194343695401459413793189504045796912124513149328736359090188552678706562483993238639221349774427664962370361941358148945209743859673300201546931685785224611381574220164876520820595955978704830496620941410297160200056398662450250233863027764773421776063492997506784142812074988814234204657704934371114608619535826396290292239036980425018004262135711063859978048227511330847635100128731066371311751222552212608307587571219622593435361355696211725834515568455683792854500879787419956228752581611807211523140400014016308644656075027605365518401867740772777896912425262919747172157369082156087886891482031781439955720329517088875149182285025852542751520375483121953155040128087924653587817070085569983314501455105469653935311335253896329292754255699318819334905965994503047960120370073562419417223500264384682417564134526669111256468716019094887979283844304168354247529222679819037250361996299180869128027310711210191825651481711086334832314440462347924144310646096074122025337686763807082960091828380067362171189600413298143013258774092886653080179873199529983592944939449771675193571890022235941482600943525094637912918936130498383027154421279489446016003376482417922096188497799463982118335807255302423469950958734135204208294655222618049175561887148913811419315686806538177881104428585262211347666012637234317025883204268878324967248623604131088362529729675123221582784147785294097175973884627970523571958183335252343545125320511256533493134771900257467395491008581379834199284848587140008881725453240820181143939210880690639016970219730783983491318903477181701094600435341708123622972951370247797153841231817322396392536865669322403948541697762721479572715847620266965252412443370770590560840465180837392201865895647930630466089919723376628232091270203954254824936259545863352758341257299612965017261863066616308930717597050833587361186389709970631997258798537508528191191471740933362123484130629344466907383648115336831262946116787514021946232580101554822923843830907342884024731041035817044827354797591435154288279139600292516103867871617655671768319197638037159686078806149838845764548875856582237536328501375014084692575890222246418843574829352565886279039296074097542951242299837988122980215807194355687409866042203773853991671086157602652350257028191425288430021215782723713684865646834310930888268825215547791339742401422083605237722817734685320472008658495795720523319081724714135298869539999587540636581465008046854123502656028800784124832427008208211078866690212236944418436313289873032287597661698367223429461177813806523282381703171550421793265731354007384427053914770814847576095021240965255565072273619427886537457698877203467882909276631532181427872536275981697171719531878079532834071653003163388003650687486945983734667115501825498973730627956008546066635521784776269539145935716448758678688660109489471083962038717567285717731769038568444430160891435450258322562350397081920102198202520555640112381842132051896108518882160957087229573137309917697929932010075037830539676229503049796092048571588300417720710938691761384629978316650272948322513250464960757727634278243505946738243535093479274763039179703134977897604508697669015003948108586749905517215126893595201096905416918320384080565557800369106200502241176961787140447019102640506891543255566080203736374846026628248345632014143011514746235499971594684547935638955415442772163684470598713898595185461384289152257402748767402936665594933658284632943584396854475478172945488152606573618904934106410741846108346564963581008879832028987490713608855337816021462677049502234702931328518002105276992254324447099568004087467867149775291155272503801617410554377195566703950800538201540935965833454701755196411075364316952376289360158520998005940700561878704603672071480238986446387912736537564015025097488709756347903150370053878785739525444244543863954938184296505590748865710524038736231167657104989312308433206949345012401322498202477894498819870346880927218845959371619398770691485340147765367911878625441964711318511284426934469191010723871485829348152889913812436120046409134541457009743050831426897980744741843706626969867151597749777276138100974965321996030429910000124990936649326860810340328268577996877082166883589081359228228092556586471519038079929965186404185075713255496086036604939405809976843929582172279311883114364528743682587322377476584493572650376646145932471346494775660800864394321996215395168652104309621537325044239461419236933717285188495642204111256618500903980505830762739162680189428641957133576163043331283506475575122618858048939228567200714861377867228102981970645884739319602790172069916491963605659077371223152866435377216410091167377244433666123494120880176626138178831202428873088038557429502042018048006207234677668568345600091722114991554311099346872509617799208544467746131257569029213216879159345686794695030568989722342742430376673979949832614406110352900799728211735647781444250227833529482258766243170230244130399346650927194179369131558746962384326203086929579075197495460560843403756002523024483847313344481909604273428094973505973839707107127413055981206890451375924033189074314816903208111716603430035083216390101017781916080114093954951428236151568243781639023374974024315085693132701669337568848191694178001914097242433323958695535160435475117274139688100933151897794820686757383228342410725103177851970553765743342810252179208038935057026427850967645828979510839502823191550321201116051967454644594818719302218032178882981554288742629767857653315408283875059446372056131007509982471856690805683586332140557495024267816353164174807280485165481667083148205843955488034021565566865362647039356644100613905215944749885299271208264287042227856821304123885205939797793736962186299872315520577873030699198184405004209898164554778488276162289294719691449265781342119245710785016126436348116147031570944351885525814725108562655878109665115070777461156816461781928658935397766866499226217773845848131756671905403345138730168744409949271552803892831206357529791283162194102885818188031962918985997724609629308993758548974575498222779395928900556420025825722809030051359687473107614873434126103748513838462600394942484258081386788419440644181612374117556005518612701861270665229365750956810408847630362882315672671004228417516377837304324654015816916051675974276533350194261382234221865788935944167118460716773300392656588953591139261562527809389449746095282700197914210925194515162156232276008016791018421629293365306570358500016515198388046449960306973859965028504015514693379146085088493169281234316631419269734111226651787868359092459712421556484097182767599620848377899899902676815994471789292657529165234344940705716144711169867841635821628123986136905495716683994356300037278090035480833875498510371131459204238644563703492600347043976931094276539548541308165206154477370937506759224096296374168834422501012344344208659935452892823890383933327493944281735172313169409179829878609791805738977810664688491155239187277507466469718828806231870312071529916887932492589707995952250060243934500733030581084300337344171425905307221563189467942051524536532869962401529417127957253183300402673124633759123926249392766798927589235210654870565401236987307392274184697645718830724971313889507062791023719584873019631366359034751854747186158260564686289282986816955215377859340999997348926542296676317450378106166122778051982496986570772139561221193174899987262908080803799043871477448960926808240715663425278037215768435536150930821876286718967229886806538455865006994639196971970146945085552068676382330782186499259998596655017703450530205510191179851981772527862627596091574204774215194976588080042781296220424092817184798085541977315612029709216100399459173979983667484989050297829301457609097924825741334947516619994221036019023279609786851595686701743006562134299216423214170515293806547073156346645400764395406737134396007944771111958907872582664031026959082313209255308191743503313298818551267503113894249500827903548104613586113958581958762052397341918699445181629975036790215777140740398110381743291164894579598431605432819562987403665021144050342370207747150912856518653876782734584739527411449394322578947366904310761840222259954021212353704871631373328066623408212164739665303504991485477170230754864427395341451628369679031704656963637858382497665451135890404730790376529645019499485496516351687948901232714365566057515956414016760302588705074472786060218536620367082023452144504062932359184076661004445659999625061396029774071620126837794908531978227418863975036460140786560709649757327509527929689146735779600759717235792973458818805675761414702423608097790637655666509258129042644330092820802807991308158526442835816938437937021404674204323285397125288312790822626463792201122390340750669683717058592556622262194703651847273682249034701885947459082674842565943034701951309447584884296040001417981707119998619243467802962905632580629758299624096823319436883948366957329316380338167360416072656260188184329122583157460091092923001448978633954630538166323228804016282606192032441684965525315033323123344419513821315349521715920688672279438670614714780189574864133459235148119250476796644976997737416422756488519219952855179995277469728627399343476663065846495595299037417038603254941368753469056471359558983678614966280637308696929087599347030781882559253454778731640604518372588316298210841743908113704337192559993239266368182937915864797653690500676767973778505181185015178913115415356500211320563820169619969567758131990411674075149411454778750571844423714936948455219766837059416668097961129242217729029655701285339513590016894667163397853596435501329998402581642092469113412832134097137038293544821218717626578203844563071099588123735814898569778019356031083884885069789165533920031978860274685245006965480612463276833583987937534582439599800884490692297163707488628224552647246596722407267347116729652043852058237646640326035391127392442587907994547889350331134382090935014060306273054823185949081540665543925196440890670626178711355327309717239064318224907586521754125953411038833715666746895275246994000744683621629619381253142212766102144957317052309900617267671135070613809780818265631926892743524790132137269724040351197537986679490371779384594126510318999248964809966981661309328368442591945937707033831694705269959760023493463051540810523326269671268632840970485837331155908334351173919930762822911883868121249317264110212984346190998663855931537369930132736532349858489153558369881817146844887902331705862997241173203483252500874777787519427476754877448441943625548252102602382830814828564785068954768873580705387304791122733055815030162453042923519490559728999252377534451330197271889916508428617926827886264786397534493834650578759272917406174181611822699628981673021530594018799288733562417827958368961304052775915224396034024664578595457567999345854354530200077787078861688989919709900275248253613431737934522868729881990221313708285824030385845879636688128310224612538835472007500887710642354622047117484408224355430535204867344323563285835568325133384028113986479931371487948510045772226691218257298320804679460462411154122785746212849922661945351301296100053927034275870630470882000683350906035570987367331191075570890690997349760717580773236927185530051286946817296631363322635191290088638373023125333616420032979994979616658610062615231591435027363741009431730776854138025332722995325475876836147361740081261418796830749101196401606508609677354189927565595349023458961328147808360746719429968583175840894210633945729027227151782851963412537121799996301242163405086280990366279634467333344009655073226813621008467370268472198457244967146826066895405016348665365440844230900712028734050777700365830438452208552381743196888592183407581887449556922990669736984564793796789411163653883969064711143721516061966973399916232250390745114372990715655025994159120136837203025477148416922142273744740056074929730563389825751383934332611820350017987282120411359175831576718345148069774424383126612462136141580405638833821883261504278834101657049772139671229476427050086058811209300833249452892071096481079562101425983153800395524391155016068912068578936956869095767843769740115148642547436102741904942567719997653807345456051956231266903573105739451576797167647313156682717306429976553531332297818476064608734203908884534055243519680713232254903153548094499364610147989430186766458317926924209417960385293225161650807804897079418351279901557597411014656546569141902511925689629540937347877198978814204443937378794209153991391996742261215599215037788718462666975108237956079319730735338116821975312072155940289271293191508095132490417012333797583620512442691804215895746794101553100154817739308112354488624605960150923578446140591048559185637654006476127408284040464858298844832297003818736228932410902485658361420150224933271679073566563504670583238932426484530995835631759508019630708175296273051006072413150378674554240738916277010684368493688331665582663938804999512511921493829237183545769516120537611688966530650549164865375135729586912265528287303880072216099757349308785223701402903866575453044002619305948607908281660027003858945995813013147435882008565410542321279786174996708238655654782895965233856223647300990488320869653536928348872468827891301762291017635256463027026601596518954891681933528053049920713025093129795080419458989169662079562547185136122711944385853028434567699735140456020729818495474993389437551614992966154797493718868722772560268278197747520359902337156276729965467984858343180671873679513423737247244147748996176016629733563545868595742770743902608647235911624992356243881819357848766743395434416337091211934751798418717489365395673940577307296522348723285232323477186866850236278482839767224815636300528812341689589701155389185480787670851897791178512010585614419253575717599575140038270764600444308461586633804984778327770771182190146499576613077748518437298093632226360533201388130007054914891137705352559990016840395345587373987157374164386106999488340159255635655531028703167213819925405961184432737567718400270079180422710677685637734318814547615950261601536097085187492676781367018639970586524673434337085631014028504372023117359887622555334981316240945457478335242827319579336724021236925942301237815204932539260037800915732290129900761751185064605715400038710294201713492845318627337702574653738675339850381074374468427242897705149380479214452386384368336449402490141239195919967354696885720763608729124587096231759704207575680771040559500568127347023061408269552024516010499317108459467743419537393348898440749014199534500941912207117779118896774744242154695907007920976697051325584110833831325704932328793791983586332390885248526926493670083713525607531985658337890499506369750958842990036794968498809521351002607571509017483301384930953801884026271624930596437809720734101889401065887938270064850242192734900034939934852354147092082118116356289838402722814163994962779546320329786242519282110857793695218403429737849426722765596689823327087020121068314554723656608287543529405584757139002338241070526339863695408448023121230076145933937882172784934559788864104819720984864816284937714731392240285847905492119676086079851961195180746973661467194306173210290758677947871194789834066412492377275166465549322669718180037826182542829206332687069853124835395376797165884292023010310140718130693315747305596841551210166436871680660396475274933309184773325844258386566636031240450002805587835817538586861212368329015464219352109705748064060897735998851969202782065716084206429788776384711244257806395114886157168552010428412916050255310208731799671577923125526824458368928995260944100809466536688571511728925197687737969004472939880455147669989262274000833008787518133380092827895279847215886783182825064622164262094472202069787374081650748691733268205526351257210342058518002569618622783690518025821376490229483497516038478703411887523772972081078333120726171335761920576354089177801088110720801775393623647923749294368086150688794251658814199897736050344765764911506688803128420520905022124498029571343984952350731646071971303033576456065024405534513875638947371568042850447190653265472900100171864677898830264732581334230627315638740802693153485726000775577715108453751522364285809708614395122065588634993127860854633562403233569656912398527223219614980112140459243212834100542660734277650913952631146911762910735198209200092240491240232492385478863645825252484325900372147788732221109034459593672057688070643082105793220860070740567381700204866851734012179985542114575577604471248291577258198984694059791478075337479416519231915446030193647283595739534637588519700306280540470609841963899299564094702517405379939239753704137875861459230270595275657634893194164885206394870748173939172612639566297240858296299066116737854883383402327740014182866451166799275674477531929384840893576896293414929123399650391173054971245092121680105648112088334132874083036369496198767296532346352140759214996542329761351986248222868344851769907763038420470430330969776233507057636675557278587263176749901015516781643157922230989053294689595596431119258336899924997891871614718513661412281824176351717540632738038755053376671731720535297917824048438579873075451180002756959745966084125960100235225181818113829392409410562206488668915912864395772170741069303603534683588440819736897256780186361058132519878939145394528501488143462098237718552586067179790938452620551626806383092448436551449161793518303823748182808010359708605848417579780682108208264304224252323346935114415328286619904687934042366924805972690249873632207011677336427668346932023610841788226576597561715265508993115020016869481973396219179087731402235277448163721330247073685825647428275691185358756115155993314889611778008944949794041981292482269222002471158970335201471966229569881248997217947818927914058767637012708109788593274879980062562753366842100704649411710129370941938565094464864980957110935293202537338273836932748398273592456873723225324595281108787260409879893972600990332091478599818717633881034509244586516580683472250100822508473866147079242122118070256029563298373910359056198713736983122981678411281922567471006026698912246540476492851940678983062358095796708155594361475495103962834471444812621692985388929333653527800262898911402120300033966441812988554244522619642825870749104373656141701571711347309362293284626336510741620928019041081742234478343421218644396223344396286288072297779892722775721804721498481841076310495042039390930555482124092827698719248070632136080161623389398314071856401319512439886099919305092218241197832887206207435934692606436830012205502590401904022888893148483247888399200494391985026069620474137077613483673484598679929476953223971743441388049682713992308081157646605324956931681927651125941350355362890053805950270841678108323057212005176033405373698620654352464811866856569710900159308834844492513595468910229749789423603756101375520873705477209563439754496723912517658389858612579617220839311248997862143084711664831470934748704273903815719226335307406641858246859544811237637276914128962643199033028503837278250069694705317307481342320593517036754575932596745986569519211250438773430515762219931753737005223700314784528018500862401442736466613469414656738999188409121075164991646895946667278376610847140047483266131396129978101529932489497180938854320223932697764871225976637834651676290990413867264567384941522696976687932181778719722539769341662027716706382848650977254616623115528348181352947184643222269858913655704316443514781241680501574519235708987216606138824821907153892869978788385354515151161710171225519486799537531826791620680798589182513219654432388745090478061893992423627368777530255621330172668188795124635829203298127440325112441322977189592703224443581979875444865798913832338320155886104962650330306446726808161288912833641063323703213403833376218047607610441591568917229610102733070408994113195691461806086106856424367879457086625149960170354315303378452620997278781384047023134210320769792813697157651548358998984086407512580200848652321484106231132267352917009032163200039063331309969156824806504994632917912471358847807466774429238565891056193922036867085890493934777405800621533981446064111606487191669804369683618552192350205921630543236714999405125839086796711236040509841495479248806770657693329232845944368499605563047498884710910502871245264067647561110608757280155288525245282352187444042103414737817283064183725188782432292189507786621546445794426727309159103421292228650095058940175479361412220558840967728361289763445486466616977243440140586063910084597146275930887287465313097581469576497881789111807420760927979598158650657501281528905398772645658114041006727264080466224668951797042685323251233715304132192821548567335306749696473201250370548322748365207252745567231709300912932589089085966515733911204155989661953202151195581117135962397319259182916162846042362996492270271435104201757516807741081132542003170467030578584791576772245787512413484272419299572051835244570611525175372147492921811762573223327673673591715696279330473364898340943969115285979471353212397972408945771486979754279588893330308944568642241482551907620995071800535556136349946510667968484963396173347378775094260622997245025878743051343451564035039769471695365152607030171967274348711266660299116548950781982753205729724157403509120784724143113187444856007890349318104761507430061578357353012216520907631888950499878650995902156751445698893680922103550676243513527224202513594322093890260063917058522504244290312282294171480456764081264160014772096015194112418428560742593522401448571401249624821159891176712991178549749703736238927225234791377206582393296675642709444809922155046360358836911656840215114582380138321583133046159476732301667752779436383624736500099705970625536277658745140294589317933120852420894025425046689452422682634739302546292598675311603122390480644824592396123423835963820018682844511430861735076700823220588173007343355610202176807317825390226018708239298548234785790643231245590829244619897022251672232307537179933259016525699173773333253459394982784888362201160285864102168994584381590272607841052064774903089868696093169713710777189979578508991239827628032784999524603740393120456243897678391310410417103190497803993215759812026683190314485861851848911208704962383290336751721816681590092459331908033632521889952437378936988912749705064829208560071968905423183205176979071419217463258312990777710328029107900819901186924878814147721001798473902916246202132290435308759382660821663826791824338340004814788377000472016027108942431727511952133562754535121537453160937803894003161794376843896945678857315983776609897619245431413188912379233115564012920767017467138625312984662584132389723743414824392073112299394272277407226180056357029375557935102623495327770222731740549424831939443856426125934329419817651945636735810914845258925851583904978303969312115509187790885817544352794800479147868861930861668441703703404334141289411067430693819085113626883492558206361434240625957960807637673847812729560613867459737013614775329755687709137591437631900378978405669938972187444350900264661513835752434511950704730066614791291187799576637678523498186027102439574618090584202873307455566079107418011783669376756843061509761420812527037438165847437922856879091734097257983652311525077241561915180520188219367281218481211968537497541710230355681386057352886624658206334658168529130972805018215433588274161122690935468276749402299628245277494974960584135959365699688805952900970821925068281217959378086623194018705787175334168114897917667844650890271345370134125841506364306766237751755713993196204273866871984554279728328341836732501427132464333836743991203512955011500934222898783664050196044322528609799802398210398597221524061746712535593887471097339091482977889910349859009905139610579133357916298098006628618989124749448525716398694651968945168119640472718145452681571863561136131873064777401946358158294271303265253911505098906063490090844988110419685311091825833591465057212946873008766728117810481414446546578756162991026361196756758998382210679108386625177657373754542811905827294167654559724561188247063967867916825205545368718774539977299499990575826297050149809335996144654963911866996926817109687996862772743040044303584511111611871964673938574768013242889180692914207435476558137379978525887561648722864670629586293650756935188922057275840893929427754631471293619140178926778475560496206656953763146381983121435174872296330441964954094854127052309909094224702748553024649945121037640342995039485335762868839388618089012695611646491231081109009001665880778231126086442626518722648158187547304135495501120892120222540141537682063073014771810486472943912691658306985027880716934760853568693581451707162579175516388263451412850464522107645962606744351168850200338765411233861700251706510038534308088642370447752553429871482403454438239524365756795850531454674074671564567112749970894588322415263870933431626915860977860800988807704587834179923638125978154241005126561169761854080375635496545373412318411601811307682692787775169752162490169024147110238530512908434588040621843305408905930986810018431053780380884881958007093507423678657495545533821390922096297442342997133779525654187363867550218233969571333752799109609396702183894998651572511924453247848593434637850771458882443835117932530178862244393119722624935961342611905417559738071674440323433375831393679204552879218704317774657046533287750774925150059490229242144353146212426511821955377106341328020623181642513758389602537548606480139632160088388433524324525861338373216011484066866437429835147682650009722681875188155127263402554225265215530742125306035083190860511454598996830818749307196218305452217056978864133556185371566437517920657763657378086344690873112102845258388094898487332997026228854526868144357328135009246823429787922381351006629450065433156187225446979259613231510497476975619341406454452579459606196933846195148845756211248151057858514847468907340506504487479890742957352793352495772431045217345872399313795658466551055271820143638511109059745959374796788307812634281851834931380341067183036964571865616607754205209850369391370545836612112119171579188306483991055059720708001131201416404838552944901712065687837705104983585544498724612053595441938288554760134723845541762883151629483616930551600938783188649339744564702629888485495209222143583280053552370045341690438284411259831472501832114411458273363300433889946890905719134646774584432034339115567016427143730724864453774885290896860945084332425936080244465439145083700742544078323823696397117198226399008302727795978838553918275737355442296565424183766844041149137462796280562157256985171186929544598181871924311628049337540833237077749736982541450295697397034450253385588745354243965630335811892992956964386992056696015001072100429089879808834399931193675607685383675930162089321608562268597820272749997568645621590847043033885335199918243920104141916090673030791763208187771347872086923317602986107108265152830293520260252066629658946912728607559395133425323964402369673092622698056411603187116876180840688162979413081801752498100111822681743255042954257246487385969024097857235898766017048562177030999517727778903508511182373944628240728356577132848575830086634701903830793004022987189991805531860229154388016718743593145903275624432315814110360552308729230666114323405442126528188719289355246898793889747496067720820308491578405356464437624472807672150153077078614445160334967637354903728574016468105332866926936573101614139439901048835743705320479949735713057149442264141014223402599531172757920688609055638927704168018205198899251130027343479870103339850515484705817540742417971573963556867613108300781671879339364929928742045613802641833244157702804049133622999126549611427473359306323146158953144953223101163923125995150314166568491542518446235165161706313300705684091935695966430562700452004965877300970732395226228688117782018700782570039332454531767609670097774396614541400108973941271457516650868166842599087147124754663798665296725214870052768313274551346229650007278444034287000129681693058474845272556377951548965846721093766187320876094144556570851409798207364561909359587959484932142565503107891058940792764634663556100880332061282069269263053890005673478000206192297932183949294616463195893017606774686097261287426040194183702668693520137330220121508309923422702023814206657321903483535354310461896498202478937867310630375222305512304536180857461981563664001683112537513758649605498738834141170608551213533312115991732045900309471860516626172276690403222192426269421204799168391694958599428519977992487833598906416398238481095196505872335202087864493670775278376712816817956548279055024278787569898363366308497839019891302307581897230486193155928365213554990644121955848399218347286433109821288827639449301081384337118939408801934987882778916299512215664499912991143825618349851403994939491512651388889719082593313497697723285481809003474236431837405251964723567332968293054303453721825806517281208750539450824327344345135445016109799394848925672967077717548980605559904819077205969406714947037135662568786417467628919475427904710903268677566767446400972545067760504880623314274120878234690796241536646550275953074852818106430581122469727791024951742231512815302896715038316706490162149337214887493026006568266358373686790491937005823511126598889191683697820294235738092925604232567718377659426009630368657309924822538666169844288981030683327190712549343893208533409915148594714598134554289907158347875322130875129927118542598926624017760154707598031049991915622810931659987352391204818882648309175251090048952247259566094525837902107855427192094830680399884650966024140235190420748261244359789666610588545794589163711695586911247630438295051457734984251876567432979640116054270267162300943394996180403933751052596898943634370115445372633582765374052620104635695883844459438256362650399257234939005034935903663347842865959844218635610525319060360949711547766541928652178764127077261550536935554667382838280592304871513710796970197651791637842019436514850658134472812827144127139300988108891450307038256977626133151712481158634086511249227044401549921132635334114648543717594059262219026691989708460953714107453969706585203954058415770853548075463577687886441660227240650182356152365010786804370861639221916859171139591628895729805605745559709274071765525443669394050941468859968460739426312313938572746713747117185633102468934265702079036561283037151403559836875227180273776905855416706826447156781414959478731099589553150155785965398291556594291577721464560967240312392434221911341686537402259262685581322736673004027523776487048600179281472284353877455727886640211596479942646231306266124590767249455035751611458319746359711497604957218017100328579367588031320356536948417620351201526534287441100726848200297627043311048391640010269139875974743732101358221722052089163769096117999668948967579512876262269577597250269241916537848471115034603381944121780534542630525218293802014450398659169454784439905725084472990719009132649221885496614931780386873365016221529021540952914335773747316312229413360830212000784376617345727705873468205103827500126960609824393469125382473090100263857162960649069278707578193626114660613449611456578393443687979073439171986166961355824220321577986438387161995023878100709558171406615072047299156105161014291192701953100438077267281850409612047024766359394595279515396290360878381538828690476986445987703002660074115226130339991592254026535274590293378443220414265791809327424500423389820650842472370981916444154003991625435174215880163622732247937028663582054913295155103090595141566373863975608568799686141661810326786953618120148113698996247250204429471402109453203524657797006603327277204203846971032723325791011323593584324963700600256563381706014804087390954351811918472519885443751275615324822584171036141879806465398108194559260332005236878172206555523261839973178469529531521600958169030036312670517951244492566259465142198490225301853807293027840169380490685215850426840220068886997207071009412338355060248955747702395166411255115038869100604431319882148477661007864317904348750131551196019776811481636797277902979266198715925627344742251760588605662039304402501434205453015227538612727212523742366831506468528613370421910938844959745382970298529248848816803681658344034508395028882721888103108505887613935427195916141725999736484572465340427982447800414182263496345323287052222411140102912813261334434565907633161337920009539630843342826197549635470634371528379916553745014990968049353757949918830966611284072152944856939931548289429895150394553576743142459544770577801458334451878306693245603618799132386507727801385492121189269130130880562851588157705124473982347903983846861701297545967677673760426811242809272463227513869229260410031311533058451633317765955968714433226903007522675444691616605323519915587132382990001090276524597446851798586780656229004903565434879309965042712665567850561286416804304589769646792682798515813029814675450835274234295167505758689097748382786315814069607857894196824485813191993640889284839229505178236878421016560265350999332040426331914228878635777024171794796237363116189729278148845457324719234473581677584234147253511290621381550763169016843135584648436786073798451876653681492058429818128638804236914001121306401408078795640628895928701213862703142788987939567160572882382006419894697245806137537579915844727035767089433248683499807691437486672871983351444494530804327869389667646707715558638378354994288684685750628983900131683233919219855674146734762695789448208429435596170908813465972735096813732705113761335006609397969140514933960753499998502830536094469424904841017351050251795076512463015222021556882547558725930998485037207713640804099062082203269492858302663517133424369403511171041474295031797375849067007228172351794762592941840265947780810467919452676304638286962868070488570518243434772150831508091035498423023911544491465361819919187595037191216807788090032216772313642180320837015672701465452864794678709033268430032684258873659077272402047573908140383939864902803289694371540700677563469262614663054382427723929176677515626809081762410381787512632941116348588911078250038016459394874896014098601947119948650509919285180871486383160959992168263987864093403618331276675396455860088196633892825888503743506877736636721465425233516005608969689989963803626352123772465050386715716177416910278705014173039902311968022733635430720203534063191683596273759765609484443247205040880485156852968416644410778744711040575566402184932135244864251299623941201609360419956467548879057221054630856231280340077192540140782130704791558717855189554310844266351876597831024524899939638338776844221002425411956852292102966100330695937645011679898006387140735899885623151879238998701573152075212121474485235432462383311333911649125837873769824358689872387467076201563465762601103940860450188701253720872299927649953417563651717214666090465134967294899604556692119977858592845216905361048303511792638189806603205485358067613183117344642287568516193361624895817527710921226329333562068745002951518429586067666089682908325291548527204627456359885338390000837280788391231264098040208352041296906523528781382463596596128951759082619733623585360356596297537517738333842785171950504214391362936086545643932776921351333761338579859175376091440686933905608682689599951615439585403988720121189882564510058217738978471291447685936531868520071718153556228306531043529420636072936599521289380112157080815736291735829799034194778048727240180619848374422903590301907215092371826526834122820880379605783377632434667112734862614096171018929598380048541479641218681353362970175467587543248734608568450959216002181531904600806995045478069356126513593457261901055833885564943169507662070639989716550362323575703965876575301222310271909326199308026538426951214115144970844093243973541664251838467638380215057874992866219361068042752297568564485091180987170798893108690289976837874126469158203912865731561721393392179783836220953801392053052213314223363571904437510089430134618405968043715115773328583065769248592820673602165878413308950156676295399110879847092123742537412160243778919485132220266604726597214310963555044835838834194646898693658672586414697391996347699407595222537763731079984849716487869127868091922271106582222643828495169270863947631822174154594008427959263550806354022223016936015464692850067985062934581214356719625036198277145451957178161392396567342432719451622609784944709427779779509214062098547545005646665012378719612374316825755941711026872271686654113791475242526043563663571852067948221504870427125857303618468551487237774932240459749326119415164409768988234799592981195753899167494659910994603704653971718760238374094597408436078119530961814534301678478121269580638200148039517999741534453322987983199711109347346928488395677888089426866753081135242736356700833937771757642285331042633553699345831745908217615276677501852001878403208068392978934751245261384615079720679172702938861836634262638029394340853616610964997076590230858885819232963763879028825473321902359778972163171235794203046532086948108745627912073065974239997020366842946786411018155701252680796043015861287514810196536196329193037951850221952873572691550446038304953384577818566309690659502507701569712898626566812953273151820535109495802492303018060445248291925236035086277315921303756012478239002744573763155606853111417617893036126641432722647876162228874639155804320786399177588171245133669247617073676762484977023664721602933731043689680054725919833452171139322308183136582334396281576426592362223541271449391499408625833167911173025368847565273016317328767154364526977202377983159672835846926317331994090295331959453145192618733794627637629623949641272444572204917877891640114435764112935753874014547897676147320221169716505620603385513486407808438982449662772754239815845574053941729805185614177825149451780450040150697639660195856586349889725262023872882708291142918345014112042810097675490179731823260563531013261863390359119924502546174267112780137681132406893928341042554408738092192871406272208573086433157073933102271599562624655879751203414770378403615813286158427727210766994416539100746656725120098688681110215620968766783537042858849354653339172384600313507470882546339389375992059706002499620518752178328915943192752738235649423211561577921867364896976774636950572428873245632536934446931853087770600366175675449708054846927522724337670346114925688114461120197935783586123478959030396645612093101625350205627024762115919934566441790565967916228893050726088998197367803235716684865119219621484768055367478042842104428527977595508177919758257594790108451980454750390764671040733121409652555289368848977944069804036637177167926459756309887988559391369112951112187851609404192434736640995965581326200195503572635947519318497233929648479206222109286193457628835889137404810560670834713009482802583216063920987319456679677161644993744478605686941788213597359533957403772302006258158272907894273370487915613426676588214866611180727351703268470294921339862139461533826826457097232458995818592193397348764081143274170907023556843772541326751867380095420694158285390391710213957436999393021692516541195232250098436702903472001700554290502514797897811805032377714371942009959897812904452239729492369030358945311169972584640427002617351600774556350532573117739696793696928297469269919425188492364974996245545923403770673070990700401393497921842303589405946124231614111196810095967043235119513987180144085508177174922600838931121474497751117383846715730399301054283637498989859701104409462618625719577099360084571100505784213598304728408304250944835543579870960276402132561134984650229137393657887892717509888354201891267691411034029642853580734069179806928339706881958348466689775742267122972927393139718548523877183915471462980202048816033763643326838785927517400243788223521716835627306182802093109111507048291660723673326879520784832239764021332479052639992383291951031635583155900570098360723411119602162909264269167853365666255101260460055205957191828690345192791228483288647463612005301706400486854454242812234663565607130503423723987047272579548286832911682399786719111242701887688926190191630917769144907610439463747455417491255280965733042806589963467097953949140462680658701181126738564152507785934438805779586556598378027157134454227267386401248017318553283230946781303750786540701821760603330240654265489249249926567690383968554221608675096816199051664545871086424297230452022190415444750021385743796861870119807586265081077561452956393137209673659084815731848572361613288350535684484937298120294816732389363578158276695575019793571588487649687387865015493488366296113673444210079481137519172328782815336155912812534455718892717249349949687996753256109998579724668858454672879405048589842541888716499459453595097232343658740350980056283768362165484363342039528381621739822215644582461355263296719830067014345143688416892133741283111317897354466989932134684337989421415079814174456174315005460995109106775804912118496538498684223215983705386013808156665776750428430391856370439648676887455886057747308650968902244342739219847877404796849187646751875241323771559402764061778601123672519009497177742891185176592909388693536680371652743214349640377691534393093224895426848633354151762826028545539875724701876328890910573389755957775795841419040954364905680404097006703517673051726248397702082811095782596755713170430523928482993225020886330591529255685775586190925962457924436329061409316833392867483005335581105925943076763482025519339902711003949416225756479676689778579011663439483420373137162571005946347193664306714151597432749887716622389109901864010277530533266192984565707113565574067223285029824710934499394904022577261274217753813151979035260135319059247770997562055723532129296490533211458686404664464100696286808471768443482892990081498713981163208389233823426294650517109543261331279491818679687353335246113742785455863297538342147923154806540423850760809121382066248570920438129273414922291158162389480724317765207339647041088501962247455816762984850674471589705650230055852353401939907789245316845165867177318523804966551279124505064331504817144968321159626852402144801712273585110451049361473495088532316657140003765869158190469361381985279035544547444478733776009542318487224369734086746683228934532162798324117457658382504707221022622067909566414131260722839633681253544351038262443555844357118286680942651591594432256572779121226910174678143276608634068638365107999718612402940966168245697612953664933651903447393003583589197648636011464910461000053214232730619069627524808285279340983024862482936127294422224227732661372863663520718790074296530662797908598350313983055952858544783203172817201734381731017073399373785193096647553013302619419882411124880311575233667708909197175200553807652561144949347941742640721471749366045340353442955574751423098362674485516571803610106513834912314012347901929264348974610904035280910003061862701736797122390871630417148447043639505845590833992173621724397587351243257889522413270830178880324701451299016762250691798241475681489427476084820208940335337765326187001775453142557900258109348204837237326120347066211035644249725829163707430173505512367290523470273769904764870732465503914803343528678675504803265886835959044190694134286676876649638341078720448092925321012247563548193288203519935917692354894116002940745189277764290212856820415624375448164144192355067471992975882392990407303449722576905580964211603211286867246202708093659650818742012782820914827564628894156190862873338739833248780019792740674883966050264531625257872467453396376549112903450227140353649715237334077341125464803814807553951453907162403137230617326207845226351700028696453747196096793040767486052699846275711713272396860158673408095180373665165087342001376452978204048187638557420071449317591507421375050744801784575028516928592291322888422403813159012800247904005995931949110079856910767532332780129291220852018068935606349884474431662608284539748230878425141638953370481451175664392250721115242103220596283878148863229140069670234355109512611081700878164094812777189050054263354921645378918882127203171671649759749428278994891985566530340755861375804494220303723360555188789996336501997935051841601450023315542508799405360942318032885860887604434292280819973281999615661900232645274045987566141784912304855223893706282216019988015906380151664561225137961243600469057047257814231932142460866483187829823197611417624455694836770793747162419709920115565564423742598368380455291999599370299053086827742249899001138274575508766769140202427826535901905170726455225869948128217772515399541148741724358194008544821008678875447533179016414305909413824444095309708983878073048177195139931695163992681243575091428978737112292380269167629258661903805954151713165483742078444979832910394936149696108785002987463922904228919920529745914760537751591564466090154651964893096527897534044036107376321128365175257604840628793104804542090385462659809073269902992779285240656353219091738420736221734808972219354503995377626509301366449130144432437075341966470804920935373042550598783726347541289692914276243574848593693333811744914013172513452164912752364423553505187431998217282955716368475172707784326469411900795692564666928811253927111708142945917890288925656057739911738672312765503126194324244062607975544708054958071545026671475994614106476489281845355507995234569343369349409980890559743016013934537548885422671293264782787731311282569467850374106258512314317286116669560864503474127437731009204769942272206377729321093163526418284605003631847037856704047237661528386749821314001831012002408296732324650806945152575687824821483061393994567921764467871633482254433430499209725056777778129686821920470275549832867501656093412028270993060609137934421425279093238917045354307111609488528752284706418079846631730561203512723630033837436801015883159994607368351430505241223081840076131781579850838157375390048358798378091205594358982232409471436433699147854602939426743648927983992610847748843632361782463657583302998555824244135602530609133768053431872035296636469088404714633365492407552903775714148775510920254172439266542046288162916042652233314393990371412863519103272798437284786813461408512485178235040563912042720238811060967977122886737825088773740159014440192098532994035891912556819765578310033394688286596724435232623575112106001502888895869840950412313540631808828574339188995815826605581671609224322492413225071374238103053304094843257338938079905272377499919617827581807107767725053671031150987415324900010528071407676859734849859453173381490853709900185754791853143243437554311841172577079160275989660804811616824080290776118721777854063219834617665186380717380231842613729565835801725272668665266817747023499125768399916443625804345597617473107229609729009345150301020914031582572559055491519454704630945434333556598572937572078457797680163573651711621558057042860050556275573367118542742559686579934548699679266191018489252096837020287827233979529107073383236641764136351149870909666463139604609918337137469669372255730445050562719494828115307249090894577454575353841875714924973335414740316365282013292921208691573953860062575662109633337491114586734792034221490899450106709187496551162698064426416707013547895139785602306992907129977843013098295873947155060070347919056507291973050864025992287792597490500750821126093427738557775626834466482193909410009836172327550089493142862342503332725209235287843392136750696323532582960009860544986068533344785039039339256417532900053288713688562772204068122191592677449815856891890570174360857791436142360805910436772714264627786793679294124204489377489555365194054724955692917912139274643940037838114316329804635581424010516332292234493850119723932894079559624932198988399957077105420619117098822154785721411555526971718267235426473774054837947168025916784771088448115032013573159491250872038535906136479851540323754810958541767159374170589786996410162294687280685827783456926766907560961811772822565538484853949896005423786000523975231407807134111294289340968557637499314233289331533452101470205389776637255713918768185952882407996456453549732708990538327280570288899774459324821346766964694284990168039366586208205691499625034757165579124455601584206522668029234989764879067233284062934128205146789317758976191735906935809344021216273593012422652932918336757107283205380689500709234853860035268235376685521320324010519740265761915665046313474053552316832431611975373749626149216568368501643457191560564537683877298451666726034671847525211730192313652297917273318870913596800048969936250181057229168067905288683186938228198655910449359253925202915552333552654715790290406042335181303220098275930408184551489388952681027096579783442407718789377068519556581854648555570836996894754321178588689892043296190088498800637042387912086497489509313685642828134587244681564804744985726411624460007113196735208026163881111223524726465734283211604526253464370060828308046858076252049440927188995009816709213908984082088513045835020086389401271953803167460661264414807219940173071955035058203513917495255537623065788805127599134319086366962975501142682626998770380169634979167353089950876356691390423549210841009559104788888994289029130000369696891703904406410459760801103505076576957069131327530465489486147006642049353004788299011639475360770035011022581387408191718989171712369849175953625841002887406151479504382405304437185574127396571261535952143402747562106038669005230213394006229097329762122729028805435821532412811094157796451969917045072157852972792264871186186050348617096933872832110751009067182004064637727269377836211641568283205550679082869672746848378292153511354308073787957431643580818587455341415266744679713788846678905475425396737389872620825516600039006714324072707975688343003294055454650863699009337068874688217144950431382420802667178186711452487833870539882075510189572385111347167914375713101142330642374306212212978078964661321932812304167816001595529616420590335880304874298243622658664181448723972905567725784736650173277778018075887850559479335460759904757817425685154562579805527539987589822390201035172355684882643569369186922055002682102100332287286277112538235590954211184779106841008133427590934551125651957399162324144168096574494229413838544012787237536527570660949769232393909302181271022969247483936358161001178528550307454025696483040828931671825005509552293836532423640716545036797437995464553118752884870977908996558817906679980277503449642129328241015582101796678716160659262021273439768208740577882299398144702323678164639462843067012499082231843826383020706430052408267192834508284242113930707110217410995690049222500708350919184494922374605669639574072956691594608093819985636336240609808399455876341621322260442180056391720841501264585086300901489352690236858090666882461489924525977378828199440787452512476109808374090153557041816104579025057950311432523856419116616116258675507573807741249822815265274171717977715780922645363618582569897190735514290417138332832623744421072036782351175980740671210021954313676991679282229323578129176514493245108447436018728477657730497054530835270913390839251353719535170919399874811690448007834993786187155372077717507811496740051889648990808527846013654758584324807352144478943723623230145163182935647105587453888069444378403276183344635058173822910400341141762623174128981632198842320600671453853407778370638619080812332410035536492826824802795013946734909997797143711088455445032907271050746740342516266597468646158572847651899668133692895196669995217798920769807529071390352159269399264937942177074612347558868046746260910886452482077247336893399946640768273628911751458051760747417812353266435667087963334128602827634053992378997090207554592281215710434436391512173339316271735469844208037722788455722306352844431387361424065662151196416286883838819687641446566075740920018385715568880796682267877770899382694442284199676261582633933457768377837766014505554193878088873470213957556056865223585220003057958817630056412402096044595918494418680203884425324988853705188666899749247613521653927180079029262047583705701536192819389116394049856046791101722848259913549515848542588109388016054336747888144746342876763815318340687594542677963945668187171265950910514554513865583171720012814931328339252555850749721419796500672379588851624437922611165191331926991981822156553053652030822733186393246174143063303589223546637013129379925697038281164438929243657564893806219284822900684450995540980633819507759096599067682345573816111464921739082003188752722412034553742174004205253139846652514851029111173316778401694036899903388287066466581784975246985370573203998482981061229676333380815132163437315462220917082266748387981835807820629788062908612712155310718897004325870067583411392323114060408769500318969882231684623878030565064826059142049152210719639063673821840115824551794484623892496030082706085715622714909263339184201707263297439858315909816510231603214349512782061821433545938758525142055120795840959993174442516022330252758050836890237959695568719835530215084579358661404804477654117615925084770737218297503345441707178731564784005627462296844803618586907927420036447108376923919308285143188235602029153210825460782748084937292211446686840424876990952776811873484647756576053323986820068720945361913666306115281714479024165481498004444563306807996143699603839652040341125942638388563999423950302188288786312986399508099535307763142999019741116660221641271258742364392401187240830963889425507279201973327000398425879571373120738837472947588982738751889047170328895784014581377852522342589526791167143008434429317024777039487391990930283132118305064229766873986076001893911839011948414830297306821645393935260162580840400029938035268840598104295677685614209170833734508731934124439468285267963575858190971086710066741275370743373659695048015043464549600995132098753036897794180684173983523413912156653273797017828820040681603789818829788680359721288890532978698783159040343765248670098390664290655797940231924460043593388913177976100611976543015110349414058356257009567946452787576448719675335865488395749737912006554462883687396686403748617923423342910739275330711874255926141687999551235030252214981511202418687557655339132522676884999155714407110493812511313367023858454627137483516510044479161387838211193347005334198137659973403836325481648285621097198563564577394087186696340748415385405024446178066747824347932404000559603555904024963662031753060775344645236701609653534943384012214658439596074650410205960970845248656874800101033926658484841086080984411060983780545619188518090555532689645754359042205654057654267301274367798398380184153702984267763049583042629841642309873921923312938484249940121940098679920522248909012501258709643015900706019597484946899039586237923557250677430823934104015719849907620360829989957226982172497647725138624574302767240064226223656043953938941016845420276956767765920099968558388858871868616711295486764016002050749156900705485380403120139823203186221742913375156937450845778982028211625133572516485660045802937074729864010472439787376031614477922401509176051369806202845527444461575542446052086878204843310773957611777808588037217367872290882233496510252125655426203611586450364484063500053373381107157319314525633697980272014621755800350117437191703241205665004404085229779793514494536751585504024967863942469739274260449353439233716951193218285553112548449754109759491351425055923792113440964318262971490520344909730116827920157035880401049018074962469360292443647542304735838792914413028816200869061724971111800411411779883772260758098356013096744408441748383128973032885069434191697855833198020504180728341258447494739966416008802328689342861713281611430444799732649968297423813106500438801726375234154874461088962483161945027123246257803536638455218560200122770678978765086737506458821239975829538236455845662744372860186630023979687679376544675257657121341380516987124283441150608560609643142573550252113728481319128821298994221950591951042790712353295069222000120060152921696132703611225829533806141699672777934936054768992279849269675752010992864650496703762208585280516587697896012987361617808334301012162953668676153049773584763473272026555177974373376256058311697902357211604473155280658387956458428349597787980103460939917323152797074372274368417854206222552702511946832351537697592108640726545444287106189109454262577635383928236684945762577553349129570265395974098784341188944511348055270361489570099397672218785946302296498927673053919305280862594745162285448330456921731190782632074506393510278078403377045294945055940730857931261078373265043741878855296271484978576050864231786150967823224916757118542195511544709063638621274907603509844306117605175363918535339216004890787136437569301823136111782889466454664324557102582086861457869759781703131272142122896020844922586697357190961103480473727177309512593008885932049080305686057637745969567404321467452921260101978380562102126513440450932158105213953844742444234512850489671857892241129593556035718313319927068118723799896832869465136701210030653291222160993333273335847717180750449049842332423811494441084098903217007091070885741031884399365659563856267493279152252645042576441161736756208901690282222443067542118072966055304273056261108766720065593052494289483767079558756864900781177967697858687785275789285228473914688807792089533777344877288729966890536162404276160042570421658769596480392827120723228678226303462665098065852193197873829732346501025554179764791163938968756238535126321513860293316188464243887247868188841130007080303921170596668040482592221434408013922922058349397652356015668496848517130555676269198606938580847271968948662623103048468212734401831605261413462484464312911532339308278037281024573548707807943947652855545921603717614601984075656142987026269495646497793763205400496847659763603514378463199312805938182176334162180596196841919170295190398121944988174185308590009691770572277997434037799101559814259469041739997172452069995621818926800302341834583899099940358583320711838507909202337641882912882765184159635489202577650154064170675678371480508431491561575789312957931427919262626274766269862161136340622368984285226993062445966213589684118175984982445785735681240155933301761855558577145651824910969845803811233498797893091075567288631424962754091877961292387096632682729728404631465949825752802794171216793817673438127594326291739010676902935827883908883537031669211175961445735260441862653848921245843244723066403277191077478483482863644539176264611403440574570301580304313279532135676339881803465410724255896833690665079322934295015459475519503101828024429416233355653121693801636625585343384777712474314826990826929453708705475841183362873247635379017973732390885101202161648585689656660800437675388652630491386117481195689036610619105529766694713765690220329272193009693478520795110439807678735304188527131841851129329432983103586785440453159040296680721521304628140056420142541458677173665925322581810740634002395452899351318486648730250125897362614320885624953859632364174130751118004117561776955902361951881894838496110587562048805305105270592289156194565809518184308905413425363106689663621227662701496446859793266891799571961708916371003541516053484213512007505657081843195276535902158083683898573236631724732902886541733863568019882382567292979302514506289320247474294856867992350086737502815076245818470760910245175274853222594071311187705277542162442790724838613069837502835010505478118184055794170809278070537778677901226251126906156637093551050210736270458015723876229704677130782921798110608326646229473161184173750798674311536818601844225554038373474109241760218233219104660703943840245862008576230042508163902708593143885461720981967840614025379732742428851062497798887540139056871411034320933372124290941349504191244867587033025371760625757136820050680139593401285374777762918653665365716981667093566867500858954409755076732202447158112470559370699359418116913628519084055556762136627731396391412409198672689459329197480112430690824996117021336582913418639017237914174988021300879179974638685214726352487604406281247002721364909700852615636753600758582845556820996540781544534277094029171262079982769655348625864854461666868834594205223640482414010192650725066607179255896218416600150086850677229868573033359890952091135062707232006492880290395966531030336660901813431402222170830466204366291769209718576600155643593180739180245731517166175367708188536769803110492665896850694057437788303480916490701592976806242989098607654547516484901552100139202510285607609182009355932797447181115509127037995459054337153163244890313189525316118072165042816601606464604687329980155280534277613950596734480059312668162444948426748083648107900592289434088457315488232086021522893271854819945449293115711571767309719628911358939829992028750809864766876461699414906225975621109048468127239061704064708863448469066547537739892346654823967971059052050854691200030082930094475748915700757554848875165796032939477787685987640183925746966491008502502503522305638590953324719011343739474863341374872167298683671085717396477936636831851382009863917543116010961178550661568791503934144127990925370531722117118103051838413684795631362744700461912474704617411084136152265761421749814552761787495014659522906221343159937975956698914739446143325128794388151718917584899411016748403931437964621473007191164912604679123046720286278135274374258792654124324487807893443590196005228965235965829673858516892085311923740403099294844659612109073693434529537181554111605597065296349408741601362268378862855936493305445378838026961530483009762175489888126917951208652986644626609533671871446898665251661979341574422830647921861937507509440804995921555830587677170074991891795182918950476277725138056603599687795004197596173673498152099807028699076908495884425142740723573279671463207591063505113836734727464459337630255303526927081370983187466630766686258865720880284841278568903251300939216352071329669281667878431355327211736665480227166452986140922561961593836463669714165103724163156340220989005140828006114330878892849461892775177433560624939137849162159428891365877311271188833355947313853295516429275352404310522906961592886662446381357356848724289485640533185841601953407857822171399344542278511009113082343757370131502728210857798708639208339337607444519045203594956900240500364885862637956216076162215507491876145459449205263957863487425836921256923323332850891213659827368555031982786379388150965565547269936949046508483178572853367747205564189974895426250722387811330664352137222687608477968042125123439937642969568193961688153536985281940090200477646560270987080525134699880644326796789065867273596648566779863565304330566754065987844622813533762251704327258798234382166416319249540010859882442356238367042763941798173141883983694455997391770139105061063855225208564052631585479213250864646978610577524017522334513203628924454112875034649531923624613209036812524969847549023175619241432858205460260600500453796896795814554538740952022105036716024075068733667149729105032905733922789648481560217612752407270538380359834927677146083476558419437766089141891342646086586556308514965935024865698954749696808244404933921793376589631086692129774327462066693227762107293745771006572317760487422533225132162296851098687909206326029357019866245769139944217776797664924357525553801355852093842519237005322932570486698365945168362515327523033251376734388107813492393406415410784838703841661779036755284317157219093783343972003075325295498307583838702130073932989641763045645820490819027388102309379099042829227728764689617525147299130703670641544682152995093593088308323353723106147971925939567698658270749203092540603083684335582781968814192193390160402358372786704066435426068882116167180839767549543566057430475548340105080784064147593660014836367762895819266633010117041273651257344816924635127448276017966282420198932597018438474524272748528746780151791101097656117448404398641929774106959990413940844365894481806099673308420470109292466783909886483809309047096719366641287572879353813914254413504170072074194175206056842187010168990466932477010440445008086756568135693329365844268420836251669061857131750205316285858896723703816635863537301705125530767435494456404820184263463677374174406637903192867974691976117151899523820297667783489299750770527686424423756227331446910227904088923071988749479882562691770322933864195188615623135287316018220014647419862563014771231486737447061852236112569319493406016701781037890945970476674196175767690917242723111462557096747725055124932168003128474561622658436055615847609552800416755404216903328932317556123275850717705603846018208627956202082072967981561243937857043056882444362719667466701214351780127060196499523865309094127137185897374685025081433492179987823606558808769929109074115706195700305427447843326658673932381820170023644939499599536337488796342562989507189272159187117654691251763271017999483121826169879838040174096106446462993212170830847506778532778068302983623644606108948374456328688448223870724608618826724381138353321462411266079751549454089725799947851757975476903358427614251156396226816146977204601182047334480362819570152311186878396604502110268554926749747616876657207670110884690738426768393780036027004105183254429542777084281489596895095047858509216317585343431778892469976283969876609472635524477725018508345220731756402282802448737355385444202259008016937618445536457762885761382545337782417033822515169861684024751040458731753147845971731494861650802582729641697071509295419651077137550082209961490615792481538183530640612973674635512125165924153468385958531944001964802182456938041546386576294115741142818197777303402727140364097302495839275829005477638452765926729742638275286155116298364337807831318059577411820346126359634886360660300561225131345837368635306326721915159837116822220285287345667228541353635538592411627895248954376811071498448664157807229584921261258926681668471442245698954341875795543034843459399910927811299905628943644234943691848182379227815038687567415901090878332650459785601533718360164294019977959535787993705938668868318301653740944453730307158401856521573161118617433981919591815219556650190805096451423657279606146327701038327676821058784212636424409266327535547599145602725462464142441574144884805982609443378338041488385845050616962866727832771522765363658443743769529777577329632449929322993187609023951997492425805651829896076225852936998518721295799684855781747194256277847565099354402755100399352989948753445983205155426094166821075592604708055311269048952895530434292889565259819549938551373164712074651766074578498153154915643708156649633736453099605734328034782822509645887857237872605027952386491623620974195726127879415018562183942638037828679781601520099912331081666637149512214524420251817588352632485199447831607798357122041207857472954793717568864897852455783864185672871472544138635841861928168542752679145007707693906908134291511069463314789901394522320207668318925455197292432938113148432723296920298730292045830731694095101999995709012146959294002558250650183440856469637184487435843111045319719644299691415337958321267158338050043920226696014783911649727606577399828852476883546904258141012777555786521794825707461129323969218484939069035185336729637337079603179397120716422117158136977748666238676815694967850098326436699545250290197906242630212857032987913766507037899939835776706545332285897189188857893507252821796013505392187830344841912060718125382108312198100321832359518208459859231721526746792634954388574174244067378663188327161281821992400434722016731988788244339984113337070028046607925891900340410467614056000003855324632404760642374035982994177727558690385353186918704881031648037146724081721569952554955764343576796869143289257053703258901198807164848339217410485942959561998043176896560408469453692691459624499022280284070034256775407793931433611506846196562014813196325541990116398092065945056596575292027184217019056894406997791227579605507884284654757843312271194337145682731113736435639762677477775147618927354284217778617215410135092280891038687712102710308251261958060403834138861898679715352241974155005808017730015725659828555421303882824154037230236403113288468321886844012574522977592343583696787859486319416913767985587642351916697563229175750187790598837572983772531873150297704066678671537233467916825697389104371608269161389345354425272457201533796124724247625319082785128495345018816694180946152757858569826601621816620777220567568904253189437638087020297519103044422438001296036247256129014186253882453010440209279875532765585888248628708400076589024759452216692742732094291339447510802133628457068377853616975052863257441038447385542067395679397032278019424682047901101880821322265014208921325611834113412838055862963700887900851976281651399089429003422430161862295747409391925076086569862658863082239720728276503374849008974735744215730469537228378396328075207880583563087483574434225190726868683701515381288759492997781818040450714611624686987251716460584120019560025714197205549575545715154242896576807377489889099945215313436732866419698529175959390729405891821226241028224488222941115094226244190059504984938362217127158985198998043117492573748581758126446009882851678061397464053526384422437180913003887577921599928898017357554032619397881217453411230904533197814200431660635560091541793871441726470936229542118949565806719490830046148511280193336345333269476690027678326065417465425938278246498946956502656933653299218440604355145044942000206353526676086804413343428617418941016582680750404831625275172273975276826727876262575582792868732374866589410140443154050503251198755583147622336166651935600974719505741563534926540092483310363685966949103619572679759799799787160251465962553240094911165440387608193225222271892526917874765344547554488387580100888351418188697309115919559926324729440756128109481003249120445770659875069451394689457406277495958744412694935890500574434756234088914701723594442459283760269130759511152437361022050614614884838883726880995336447526653694132919412962060834063755888477456311234797184360777027517401638970141577238079382266581791602908426511740464671704997578948860000995441981080378619127912693731526322740059986719087667672976414434818050645076859774854342388635273552662598957164422644518168001172559569246745847307608924038438340914358649608541466268702866872280664862544957819136750132966060849320365283703974175839661025080548761977268151233773870733999127521987746723264214848328122168665812054180491825339127761228396186985585781526894600295999841889157794982077292365923305901997353589358807370970386968308240008121217395151757093059268911511873127043815246985102402717203089419072812576460438071647119049084267284892244603000038720708615736453648090861997295460111645147975824877979404293442348872547320811208239642353122019186736654839108290135809769906675304183918168382204079415883019465563472872312755124663357725906188543869625368062317103959374904473455049587899262867386952432947398608669262049805466864930190944350175396651399638681529717307954946902699966919771158608917662205198954063123553569298084253328323162525256827529944629180962146881998875578601633747844900865580100231479895645266515244354373980008496254126072351639333964526682230824603626563948513719786173862642135881116400734901897976823969485532596566379719210178093034267486145742711243519719812879535807703892804723064978554254712071083263571701027363619042595729978985520917368759926145253379659312980517529193966459194299022302101391417706679285557045641855469568523089657715865115148086587654944018924815683779706685540861803160076630108481704997487861030331723501282180578514785907781117836477061547098053309260166205962753160063794422600995292134702113265850480582454815651559496659545163936736984632075357285009963168327469783034593626155367701646886191393194131752887132970199166303267340360262599664750663971109609423919070323153968282490115428186837841075093441132117228635733472610777661910475436210763052998605540291614395890553025070863743956040755042698150990644000764277027394271572454923437633156021449484043161427388679865806754047730322968881483241087376049632174196687950558822524189362302192388173587038492485780026204335100529517688937978013672855789865342216025827789078004967800229530623771354182019649983219337773106919635576039176598503266671871237032512829069225668492820676919075237618066538144617568390583031419244318378909073858890053069821477448468264833390373110649986130155498771698961005236908555750546734094387210112016126113412930200463183087666365813724654577351915432312252666851670404679525147189650200780238131673211759251922878660685123341325317270797529413045399562073578920761540405587172864504292972381124415654605738403824325838114259600405276652243239649910899756571646376597013804916874477600872356818323445633380338768880415774557294625431486377652264641576475383696688857156276379965840358172626541045066217577133344464101033731806413967298860356888374840074816891954181557557729303314407247429323869274385446467627558686926227235705683367709061123939658597656238384946825857797527199119594872690881180824966419985715328898780597696765662064950221023816901753939549230021012838962321876560392368969443040538244364367429843108473200854524885467361179458277784154782990683091087945140834933515102149754600550781476060231374510894812949883401696782096603016130776212533891091591273047171193944473329459445254943139367546546892055437077331156107964115414423381590177573068390217759289491065642108272337336615393185415964182348086716517219863607532112578445936897545126195245312447676296847813471429724084591008672804071399054236890220483697120560551299944916475771892113033405856508403763644327868524803348611894789656250773546361772486275647231532040613806448509849335560278691078999446124096233112582951135098391831461274094447883823561923242476531360855322242229910125569469776756442640138259858530949034324475535181664595857373104662146139538104011703926035139767263004864107210881966496028116366602882170381619808332062258016546978445295050968391105265143260706730905034704184536303187430778532726769605508251329691264929450269709597592525400867787075405924927984757756787927950565895771635234712497796220297558878882955986611132822048688476038741302115325233295286676688328287486811840158141404103625774418346200827758255557326864672837027633477526102560592028957506994468166154491011267106769835595973335178757259157920860935927091149085473807348255581851625816311721945834264924556992583166050714417753884253137876648592032135417640916969645602712087638373858951347726557121675750884262662685502958806882930432662490754327653241860950129500554066365438255224868530087243165209756366762840422062753796105264809706374194499468300594477157951127541142601704797549038364244402744997586161683588522374740545369735326249960304029490752121088383273347866713769864844888157115611837613730379332911347888975699715501053265729176231350152154155840451749239750327774530747072144956590522531487412399524435077819208687553783954774429734980942909929584128308910500471710321303977986232681217007306491292560827535735094292263378139042387302296943731170342415292885676980390572440577866193828193843837390018640425142212053347497592080486610525156344967041235052013653961371237086035742008712969530885389352992732888671528852315898243745819815841475195825815762511030077353056166798970402374128823481103873818424872052166766422439777396454221993025743749602662157875927092812272236134465775912486037906805228899653149237260808677212150242059410225088058528493429224617048533618713058645664813528337343983748136502598872165843200289068423048059687180551530559513019875074884283779106099183451725010485364594178173635040355393441463044968568553447694710668716393613312045854729217739409879843549058453325300084948116444015874838626852364474143808097430270890997262610650650035010673825406425595878160765223579865616466944425967873484247777130455525104735699357849703013947505271775478317426646439756241380024802267219016977339086089934793427011533624649164719619561706404738786153385077852735374614963003710475141699036010674390401468855059227409228713112196004868471745261016664220476906947248882772377191999489358474553432036877863934521046818303809143898603915765264268571790198641538747554135446205155868232427082036987561818525082235250798864457143122119470419004970728459537727177081033886306927899480290437394240608386132696418419581107112107816478554975529680860344362787536337086075968819144520883457870971382773968367112663047820669340496400841949889987803530754616620079818575947252670170732837942467874276856461077419990344509986174730353362090389284600929758804613648565399760767699636430303666031889295442933229494113479381243631488571383326689536886445661807988789566683219352703589428011405168666634560192249983914304042138908647497613331441627654013840776843185839145855726199664544145868275326546889550985522436204020004132053194643575127428332253002596283132730631567704715098770619394171186532445701675469591897347696836712930704434441927786091009381466069892402815788943612066015872388695303821510128283912030869957155964561902100351739392249095029204946766075272505336337118047570025605088858464619647200444518637160002278918776742280031495375514169160695432535702130157103551201600168508207574879502190870815899686507055333028578914612873347484587952522129807546056873062613755703182421532545451553253012673976858686724620002604863144358032470605280289577946070784606995147830738868079061125759991483576209411984664149244812061996298946568198425325271886739168529534542927778649042224136601521664333283125421168939987756190865212766033352655117960027379556392800183992797129838781267192904814395863714843791472833374570266907345163825847288272170479323748901256526465404494775742488421176778663980725174265366284484389047525886558666659469989681127629231487334633216190009045913170626868890263612603254587039711487906569146446480571838863650700572457418996510582524038012506644793131926956744111727359393751638339169475963427180128903130826580520327795154176723683434155751062434582102142380209159620623576026200071866984841183738603578877356192984293591383537927471461240193859682475726503745116570604979805172624399263678077857651947713325282255775890085127975955589933226652362053101369636571169783422674983107751945037944054084641264091428924381144486152123746654826501649278020690771680556071351664320381527831868427122911906969113407428811300686219118612789120001812087403452993948646975587137603895809776560702218452471432594163448111625502925183100194001402367787185409286784566842903619289128961768625597007347889193965996605852829335694159603419804960639660763742799864363064973346219375441199348577588758778390606016956671603387941186218152307642327136724850712245999825535663854126084749029505516301271269953439157905012763961269253246448969514108080141179368294659601528756279818867013593546794807306947170568439470218451835976912172484713744697918849922418507885573458388706127413637477973446434506308206214212084476084457297510295349914657074220752233310324635100068930808101884356239046093235424005332529191283535141623776204267202123215399736274915191936815594129486536589223457178513035018684142248884414016766928657099135014760621185356475738653143043665974307045774619379655985429464464885932090220825424986201918851546108284102723386668705010008975077128699949829709832288797366601448405641406504024155574290981203423548944527322210711858786814255679935402736148201483752284658372300180672563843198871482819847325366175423224336729307711494065001259524164425081357414556370791401395866409760788321257704198905609156392193310740315803917524222349576502749952588603236148953367370931092042802458399331457260203002624313442128848873178376611730888040590912779794285900230663568495908054694942830169271732742227350139768301729627915802100485832458582156563467270879724915712573354689175588769764463595813790692468012058092226139714805183762826376653448022464087490902313107469524455324875681233432202640809924935253463975840520284256692073523164195746289178665645701736841762601179673072630030570135965996400184082539363190473355509111483951517217694045186425194221858193378040165838333752085768540434426627221640539698032600977985580891037801656959708655102676258243593774139435649713140101147969494269934436044702163560223721052866076192429141835287875362573376898329380240867178959294628738232101912607727867717209394906283202626447417876738654244723492570802945660059740034159430054173367487040498838956181092233771790673195263972352630451787511072702499528859811664823084383009958217251025645879293516274675380624447031770250881593504715408710526335541570072576789271177452966517306115912527403727975452069328403303406598833136953456460617994498686276549471938731804642328025987171122058282678103509979257964070376504627070321069343708551189411017254675109121592068160083904036609791048452045515901224750830497204113270006072457584059169936759036538886592770863419637046266120360704144220820895567366557839497571219895051122534562475817006251286011999682860594941487329297333748210356503609740056358787117558715278365340699798241319175732510717433237053741561422286053581870914031014112632694097670551338254647839172005276027742999505995015518161281827208683652954655188754485528851520424316329892706567659620641869127802951910208058986150746340799128900727942972429848981055938799179103980562814540139310507350032355156832739167724806876718405915189534107494773596078646055511708366398705943213065302186520327871008267884073226621175641984853432002048200598486923160812491670065660757958937605832190317978465456962230848301059259381553908350455334031375692255227671010978904318855142960329171880131728239248264852779832496185765705169770999843925196990938540490218344427925524075007429884292411701856410706771063269456413335918646088949020182730235506427943025233595251661362977382582772013120562927254384150547959141671885443514394658887084163254837720495344647448236808858663555825441519109044905979685796386237750256257610012118547078882893631721253362087734498838291614954395414235742269735512050926615593438272650478016080122860706386359733017907765977943342836853537097298047966416648551312626343621475770436688336714407440006879950013149341022104858435340957727922743326204440412767037881701527653317361236810483266461475635677898153287516591165580466984266877861926959545743694104279143976405473265722627195759607576651530994804360888328462842344823888106296617665914532431303446182966748394358018611957040581371543622257006353578149011166541364978362405091689971588703266677577804816787414613218038078340871381633725926581331562267422977188629187721781488676352809996851305172461102665729356432989809707245906136458153072818734062250244490208474893309755067532219839798801036352080567931863010146055572265629729523689727183717445419883938121295992569049449578964085296562921294262003470262296803720529564662092651066312770299459286475777622382592620973629631180279934512312778866040275745696823227572370085898859042282080048108524441723429839363991887071072841500597421480910869285169665248555352566942446466432124277205143911926472313847938828354419738013663830283119370777069175911862291287233605080508478918294052816946590630845477853953834828607579060953430660781607111106749293748103648026086373171724945773289054831613130536314477213822324793998612667379446180795740388162614397166465829885177166527982401588568768287415052750695282366214730142890115400026054930432189878014495859906130306773518104623143797176073636503635080390809760082396098540736316088283959663369767279973766913793362888122632505461545367218037231481767651686695815653916098056694384094194358564392663263587952015333300775251611165575703727781039847850041226918866865588304796228749660236211138137637129102682821895062383050789939995663158853873763317477396561631515635499598484882174842595783759457909296010015993777313229685652604497253659013627563769515256626408436647318053155604482734918771512300017771098513455506701537387401071245162256926840237706592122013414021663561820516951205023553820826151485400898236719637534055578362557903174842393601428038530348475190828143037031527351938464242043782591250936156895193480465522467178019628580367117578638851373592962421756964649482413630078166800564802027707551653779234135291389342493477724373495605940707175040576816181689184503646536061671745527829747270077454411518892458402086735243778681195440732508998038650056165955345875309662229248228778923135983442258485792426169613833267514548140153989455426739387574574299960014913162109693740857569511541670720380076569496841459690978169671897785005208993831919668888895781413947748935122009068364785174256049455858566422764747319040506458939504489132466993392922321103780361620256520741540783926478552526612150392058226954097000531219170298561803289306609685525689642547489357698372715709327765790102401361293652555266285453986696120027579840763061677278182733808526359438825681260021964833744333013106883703745346479186114407516162487710831510230132847427607408140062320170386074392130902275754683991669448541986869907932070938622383922824858616071411157989593719778299197049669649319567687349880627154574216909986780844232403393829020018485989546168132807587300923707131261839126082573601709267913262170987911534189345200879717943597667557992102378921349452175706209860149518322535815991902359630354056373271031393580283803901732240434246561872507245981841947157304678668717668735793181549917658974527113412490627417308513570111959228095708194573256702825654499407779027016092742366946615017983604785713498039215862792146470937075963562220571037002452257339583965509390478756325810352344276941173574580301584169584086573762739253951514617067082399812491234146250370512687081597893389734835458593026153447854510607720621121174928662777188082699772923131345554724915960011451477951343940069672072954390509528106073557969215006832125250623931316321030837474909102147900310528431639276545649755502156665392014306678358545907790146078329249749734562877648810559568895561671813638774667998787628037882215406734734396706108686406853015191871903494208409696936779521995175384587971137185970427635179436352724324755920337321156634567084335051497679106524628919103756196554410702472518475551917511051198090046457325012934144846781860145976982385666316799870633093622629270017385941114302727584893517525814611133389096570451081245910711873540620453223196984529079346418853582410294177968153845401936438672461195381517185464457362496679889994058614715415776025841289197397589163248388352671534237738677072693466873803840975200883250868557357644619886828876614704695821249157667890108983021545237163401035726935481594730273738158156959796118416950365863197463200557474040944601187400079924310397638076991432955917781328841831973738106359007400594698887372145947769081701124047997391215531059972021254707754501743686297935248602923741032214360428153487307683913031605340138594446909013274159539092115621442235866446341585868217393159325236267261884725908242644289865679073844449116432606814729322323811707271134222462154569592190409299387069509346641438432968167644098360373407928821575604636912100428988716630408545608011981690290429882949285017672932868693678046935704926372816040467532283612267747510867508172306808430518619153635732764115564549686812998388025659859724860316679156306483839390661284492973581329158743033811028756789416572498225910727561840914105039035220235136259285118233684325207849609170674099131231704919691963192898240585157503777339967084919309517958321244439272005985271410896300085755742220567507007173426104790166183444746142916706230591993316783540572186138096494130033254464651900912451043063239987709809757631585008793158254573743183614774302707698018901627474706946383677892973721966300047301612553934526092812595932554858458581551325736237852769667997086731550070945914292080487639605819984822270221668201626629706059766952234995158657578099195274816383857255825109054019280516371464938254734293040130791467831088458028241144038431495849672534023214977542884825758931464086460602347817470333098425446708674156462852642193587371476405236669377076400284862477836365126569509140109550692324644175470293552098174949420181959957982178584702625331924659539002935199690627502466071114547973527707329015142049024364737107514661604893779807802799258760158153039073249712811176696248143365704844237392644727008415983673307820684888117356593241491720259723633109578024637432337002283535258255162764575959104650105410503024815816733808249291676767287451764942996253191127011286975671531359758769046755846823422746271956704140621194446454106665751733137849547323366094098527471670452565672461721772826049051222428543099097962781401658448123039794273948110632445477119067316246491149675078736866226761374929353311857309929057173179638986657939276114013749784095339231811907052027675404933440555797165194223921270848663856948005204427477766900943883930403851677586211097348569225821708930344246509823058221823625720339215870078289020349629821090995909859040771059072691261594942457734346283116288449485843868932150680399107336050648326822156469784171621544665764489886365806554863293405777833861437581996722457452182484257527020915008300392984045958381471531032637285500247908463429442256073852680334525051764271908098425473122563879232283072310887991022991099031080859261664330234829782849839174090921865842979709124144160451880503386903650979726485724613506906529203866048111926952496262393940234109921442114661777904507767678426009640271859162608241301145938707909077825934154840418919745122390752980632569231009193430562001855013572988243086294617826216905816562741694544387359624340055688847176993776438106974842810509867983256473824867310745029461039142701082919341382267906817729326362290015361907903624908446102824374367017418815310768438450565044305196089494718016989253050520349413382301924365665794419934081298111173370950589881665992595466783147703909711054008400786605407395866701728535054509118994677448436496886353291419053632276930761181829473659359192442995288540358386055812475091093603231261583468154667845593449717244342923686280827394135686151765579219173473822972686938818748258312167438296035852408434678195715881737748849624988284270002168710584262183013844557284006495998636272783001880794486679416866630928666497069985403577628948950970532950795933256029239393678243990327674802972994934586797220208160539836757882443667585344158643185092522928548596870566341474404930523020887744776095433996127680766374610985570575115843981285292674980698548346454826936422572482120041818010655931658727306650057244167826311118429755240307652626254495442573372201125184207294383734043199435658586656176903204982628795616461367559457723241108695937720800706405760171946198227799934774917358587552348996498272148890948599844401107117633704701731060750026132378179029608022605822011030509248805650445305527408750904311683094154306201379715975846183978049867608476354759476092072011744855987625013948271441752329741608921066916273428059776632811229973490536683376424747999920744062993557571350746352930433888765509157990190126309740838523900503844397974948800966764847313064404954427431286595718901083768101198668086494349310076675011217778061619915194516717151202109760004279167332767047486042151183506400038753667523010818252532822849174453626869572133411463950981140525153673603813434746474857180647679135000423793212122940620910552514930274747618634977294762494729484920099114663609102389812786249707745685287944147127641448367305505014354458382788489607447650330283840983867121351538722733686568077046142271487131378750985079026277193399017630272354186285845559684142259349904178363444872283705001252619959070667862223483155652422917014206414603749506067072900069407386481108572865245653245943775089262993094919612491714426643577504256803078269601963670799723815474918788943282442082384115441997176755949364410091414869075940340689397750671637008593563154667945092807616603439111321190402824766761979037572293112771395975543590488534324735567782679851318814877442878968768460269769659164568485178675777476840554917923616923552131765936115184534864678099781090131425448269482182584531064413304089587304380586310945012057445399499585149732090840961233186905093949138215620244603816659792461088870166046850541721133976007893184847009203889610492221786122263978003039139768997161709484028947226713126722039006631908664627193769824360300699328185942253467773901541001194812866834279325663656654262435372003856003857468896794428297892277053781568412600833111818028094252343797142666629056933960338193056444461392769443080648044363288396659889830994535863019482337968876709632235214403041685741744424716597841138726007542705898265681852513369754314668262960523629302141505490362082935189619853097892504316200147254395693349500497726892000283642121202770071358529845565915970716272807826760753874682485435464387071943315140097934627603703973514414796642015392623483397474706600347803076469800265676167849476089109723195703817347231407448219338178521002622813610822672322020741645081599926403491054115499567607475281690218061396937255616099918456339262398730315161865388716018182154308652897989899317874344629385569623500047660784037319505793060115493949385954418013704574140021130889094658529103084347308939557339704312709372887162570659826593299829940932031977272957542332684986688032981485803665597551128408245876559605655835801097942106131726882289889360220350576924929154061643159439133157974353226075173218607778186281342418202364270779566990317530386072530104857442174058350318479953784459536467137225890955868678113360886102588344336707482975136340835217756378023647347542837175542152420588768633309461414416056332243116773279352637976051216674516946045639963113650900610451019182958604095522089197367362513445026107829543595870486174586076588035294083537022904483523769560700178080038465964235289130633582831587733686945594604721484011631871223665881299189739830035792556098684930142789267640760490226071448707060890933597471865763602860469481154605533885535724796668242652637326342175884387403346717289963645360800969595409459878943840955551599576374537125468518525369575584236953154864199486387455281549627342813538385292297735534088145056235319233074871793775248139478380032539697724650796519990563630360682820351305338402568479023134396586531835529641690975199004038694572610988214171615165275924331582797789883945812812746448282532388536979167795702562497478054173003212677457340195625743864839639811334582512974583725356750434150678474998587773101325954448839093087517920221045967291956546561563847604666993945973069709318113314271205286137629497034515915169568683339541706304120054960330668580386121165664216865152873655261941775608126757852975547651760189374696945225956213253929771831951079316624535285521750243943562892833783459887453362985309679024525108907222484375333100716019726032130908745894028509698823490310705466064255159586463947599702374315213690693996774092657629327281791455969900375792190073327772727138703543996578971969433164115553792555826430818416990082656005821104899845155734562049117435182392042033473742194102812408585034922186160063814393239070777668142213473161616551591373268174331118390347674963998752485045032281234469469122527358176086520313333176873546887932245231266186819961266375368310326425525446984216488609305697777190294685483509962189918561457700687530743106064113377998108815440078366895858135846973742718743615391232201208598254994072261168879188403605621524772570486805616349892460648020717556911171019566390173306022520292207422825205684683326225542176327283469243795352331399027616825248961443007715795833216317766764984315420305491697322771268175372228020189013209882238485160898038535821508133816825988640761741072036715909070284340190677567446262421486158532941081079619644450708949792639899921030937373083642457825613774475211259878101645419251672600179253450499014960052045738915593073217263044033970628993067844049945765294035067536844379562740610144315039166039733534456035934205827172137205456556776552603980447808903670462339740264223808098545660984229874574782322155434294428819186492666330298916906541396179181657303957861220462016755410320948147000995688313514065348404464019137500789191510152512501243532563284897017209212114848083209516752410142082138711915087989082422867901968594177272955799107830587727529958459085344580697156687962672592108926807052371047561551019663870686094930008053541150953659398561648881688101113535134478339767241245143400163801627866726729359274403304604126686237089257684283398477446506178278778205061965090092494989734290606204443748264663464160873067275724618644789285136461060504344231361075886444012798666702286490182123254575820054983647201685464485844571914199586127093138512154218046618081576420680445770064101248462632927845696428864693072165207992496074106348028547411722678178583195255916294995755168965486009070766693193831160144538934597318427749453028935770316097279495981767034822410262214470927987039349749447611350802805207086115303934653602010192597431200444088207296169655682189308516076893928533136993016810320935269937619909158105020357377408707124761665619901442273279577294216054777372242747112021508173712461779919739287290065359815141788353658896986689097463448599853405176918398613600802336542600316542892977821964721018805257304773182755582277892190960534685448223733102997770816574667299075780592896963126029059827381181968933070761792641985762058836676465376815719103730564800962872969660921146002748929636539398064707100618366696288198088577312149272687305821102159930454379351592222784766256570497556695357463045021309033922767286587907534823151959366259658320788755376656610536527209133807335062970496803300503919934963791118369585839911502875651753966161718220594509366477978139689897846392467168704467925651840326779576685077632083410441072563423752675445844694139141512750590361398228414949569557411184796413793764098937538310839379557440578751864079244077349346410128148079288567299967283160667457985344943711791693424244089620159367131320989260802404892188507845041431219253120440621542728215681834057812205257230925842247724386865746632985677877457534143278770727895351546816091709467546371735640733995261271200344774247853815698557572524161721885914602858017923074382929094796164887837563575472384509074932179296584446699135107623492572707900186405389270344809774009676137627356430377562505995686514153142466916172075513255696683948622411679376506797576740177986965521417984865405772925437491816471253295834309491551537315523945619876736608417096362489763218095337831927920189698463344447969405304895280486463653432241119811576813851199796530920071780490727907383773816887118128948871047853865385089810418380299610731080341294345444606267544510825264050190544226844907611032510519217268768519566375120059015750457604835816727712686599275179424102811764516808813042937669111425375753621806353531708130464436885952561839771024061620892700346944522025775290283598720447514390001835633251828451915965456312325429604959805414263427676433497238701183856801679731867585226340402706094178943774254950735959648588010531627339293350565203543382444922745328502082868146984223186857541603681244043922241935648130900638341063427304558640559808424591042369993960124484204073789640787787944232944963239535071608762370772842282799458212361151593976603820512242841237707837259231851431896314703138547765068230553603325123299524533599912153360107924825092172953407606769510740749946615601232133615947252685607920787015656019977994063687510792368613332323602025942037068637373817677578853318096837412723583718684425289870234797527874267369560845703114355324227390827371948797298628102598912866820536421910277215246185293241961721908540509673262957502955871091107062099606742825649027701135327336331150545087898221006863013492198283933151583310636683453147164913518527811873294915919967328297354660817407252625743380375071563608509654702906463546405208222909058644978459361457230141669953262981050705843963273252693888756391869126391691257210601315307010971225675998647335259742067479700726337280247732114049144568797906945671611276565832116399524808201471439924380098268040533929639913150636403585969993298673714294388636546186569721897839090187262849491935915342273210139448264914896663550303547624175078839117944498499000728274272672976704526968850709127426887486314761093625164315343714653332312688375159761366736276514025459373963804389286501299413314854204424658306027896266056714608818981509413320897608075808531892891520367810829175782749592159858116277066499478805477636683548760614857319634937034595226220326750274873462244042489498717934563384253026486873041899026443815675021034481039237196818868424731868927117877588721715777734767771276839072030359175365556076458035434772015582230300302249684245268262265805191640867021001972120073377903495605641452840894748133415439065696077147186190075277417825760803652077776291043763290025064893537592912198508479742365572383916786565840895264910883306272309855796331696650793370972866850661014650082559128068282655940359899492214319572706019043292667529354516812354278484516843771612149739318877410499382971241403436313774718700075558942649993427303869808635084476857331740221776277059749885430264647836383438295839305068978747079768366132673154043225165375365287740373758263826922247542211833226159212060344010788311485803849975641159160223591962245977888841487393545847568768695423752665844396603107695422193587725660065825376972491678305501431139171902940277488766131008861609225292764673620964225306931508806788701080053649524786604586964239492308549380849388139297161754863067910203519954178771159450834361489194825329913621106746273600544564231677300079560258652403937892298328428416443805517331916276803446316568223025454049964228367978142237483184627178776886609827280655707659053774377083997332558492717263587865189308625365865382957498247928430855865653704396492069196286334648131140798957414835946269127590483782594951263195605099062394771720706385827368553902838540712017632704802301000850978493748985644506880294164489371183944913950706422972220186035687677128566109475042729803139668551350719699433921240060219640988839386852933531657329844033344969015076990036711981770705887999095242990248512271356197905445386750902021623263410956498080449082160101700900265062591011886452050185546326634128473192728875096738834335464001437128601691166869542904985465353689021505928023081219665930067818087261480744272693554605210214115429083784646931149839726593593345356197682386833212555233555149294634711097135626734545320833236506238402707158786763363147607852811037221091396309446510339752338373083470452087252620018602454770875195426920799132105028575708046388791246118661787136677132372946706326786990205018249812833087306499928623380370783968177356163169899241495918422221392126446243709191283577824308809237801567828037609151580301911011245979463437245414525694926848651757296445134084011646077793655462442458340037186502303769896783451532749640908567863435299370469683207513545280619769944854618288828499517928720962834708342895115007370417113159580334248142049471532819273686103903139435576217991227562457455288759290377752798353118560059752167468785489057073614520243503618918216712007652108190060441507938913068196274852223237156779387203740057233365387781420528169153332150142743877207553398823498046084241226541676332328040309738696130080845586655111416370128304235154961115527187663066224160845726882882446796933845133318269978237516596129051610179844027023418526690860730873585882563961270629037422545502785086706920673128795456360018716465236561897845421292638771897054487706920735695455492300335147476452782223541946969993152075709561830940497818734847619790185262156550461116136922972581522983304123286890644252693374860433149292483006056911387409415019695918999170208620498387875720288879301388284776449839896310854685835472137239994848610714192762183388285365047587240414779747343392447088847990134442075006989965192123105795209770279866674591240851224684321922705356160956141637729395249373233141653062578803373412694251589396029889462804939207360397623150511413345422288280986247952682637996549231637236112189626688634133129710530233733688805714129066100173844544511449055562589628178772620618965611814405414744946527471744623864318567088296619156705883322879910227433519147378618831008231495523813152801170460945880523509880722153102623262732382627433350734692966336884533930788171960678688881106411029993747329106540296067801414650178228284368871602869652161335020772670683954832210736743402025360576897945672268049990808639546961958209857155060094388699836942738181582139848386121845684231077341591266803779548629149912277707969175644825599140706256911688258903342357898465696838339048895120302654098656304068606845818770502451802999661016106427989816445529571841232041187141078654008105565080447758961331338223818815323280057069822242694031088099276773024337315702800708105106679060369593553723109557430871411080826465786846704957387010455700339615543961553287898615671709257288460124453817662193274263942184349210493325994873671830506051973796731163862622190104953922871840569708386292523222987989258611266961519044115450509405917205566340106305669371067017274307140084379031800024356739564879199609328150679015780499812715795029297403108205854385797748340499776980234555661838430023440422255845409664565505264289586142697131851108400489412027625865349145430294467889848001849141021207511366366737023956425568399423717057202002625335674897473433099753710328323072919895633419462745807204859593475090749587125041553883189823734119933701755706796048607475074650078518710334149879391470292852411535185176564715944626086575008878375036538689952798653620774666846600151744287416085544992187763457677998237594883492157278179615807652612150689737195937453046025327739849520563319275388097321122893657213010781647216145656598623089098737280470136505021426429649903544386864904260446306571871580201616128767202878148387133146612809758333067103374565307640878048742457810841498262726188595119632524681153739269463688742755661622504517867815143834349742152830605815215857701857341068071168383758535209135323303707340828729604417613314346363610226312204662727912504283611226711316109435605644971666278249745249465847454662057465604239244443619987741365263061770220199746349471628455478666575518785813782188911147806107437035030101524393241377887896225400466995092913762930291358631462856072280568016800180789852593643007373176523999941764848477185994115920817152711758626719111311298230939914030166525752849983193918988395877012653580063639209406722951343456241915300242081326815644526832332530289156723139368388907826510361846240843651791931252199655232394835695460764692349541244148548799185743753929760586180000166091294943784173053048980422325838874746911491814724032693409197703596055338695100848526484783951667359984466043873866070823441640811266431766741111800559993379435261141638839785439097571959199736950841756210389154224165109470034579068365111648364290590363841726657237382863196037505611373736534021445062141244450241317813487875587584417327517867431326434296875096111852467122337065311351805828984079312532858954086400656631453433831994021496612712348723018419541778907927583448780846622769362749907268530897447743636961410505164970894383023677641430647651979224041897960887553562334693010057093625141985834694807006985441954653474926867886876314535129360988987048610491643598876327830490905189703606622457152068077799813622527520038156030670973647024562060371187197101463475676851114137819611442433772016284354331270821068869416806178770150512569391499344633176811847969697678036190525431547481894406009308935416103015001368823416973521002490030882624329760947156808972316487216892394372135212227969347892306883859547493148375231718416200199834091338680257715680780763789007606449338567779634858496688600424407819055083709219871083399019489627815522819837374332394902129491263960840148356275783461242704644783859781813744304378456973543644411812116004122937701822305319901519899584581768773021587462925031547859316058243103148430534729159397501986888411284996238697779910317573268587177004092473702237154842194043873689574101678523789944129407346393443744152003857848723370827921263836885597374465792843024702935312800865174742321193642936330406707126745542448411500614516927523265403299620902542895544483542153359039238001406413517851179752778363325420357593430386221728527821199059198957819317648089388706811361095952075871213628515938660984231269348046211639498784356572614599839954985079694493462063434171194170660169568102086865552889443703697824671309956476544805949119568301266867204478010017934436270446501936305944634511254663731374829311470345473486617533725975546891806670165073106784808604592592347605675403721805764998509183650908197841600047619538887437591615394282637185151997120484054544328214353369120742336945253289639880975929345405404336874381676778085596964979915372737838366167598715867868521080220368586700398915916100965933127998447941214377947176362067794142298161140991266553567523335622224548109827684976754525263024248995710542631965968886768147310753426058417954347164424689467853811896383328341054177076291125352254327189860195986161427265841420055059726116436626646930198882444535847716785638892148021203758610213493190706881731191830123971317447290617833800189579532590304738268860033803698422030687153143672090073407338339169886753770208958155694256849082443560182808479743427909788788091053727408263480304353835026044949932024963945656871611617459070128304744078182841078877432914661478935979020540820757781291818528783659547025335293936168846937975544051984027794223885776245223858415985900680271529161193127984274639648644007795508178368584691147513021761473109771865977287327783993737896118427405245343321479516008273328033622629397118139478008400279972894424284774619988993406363311705882277596978654165253501766185068177072203024210334388714590477730504850220383146964734837800742168862935647671132996880484705400687750845676863169142647576987660652132497981554629617573684050229127835654293446766800347148047630636329863427694144288753496635852741931792021974069171171221094577894528632352759685923201041905893486795294432312749783578118650087189569714502156848207105042339002571606673486323311712775104038896231769842644988435089677887449197019581482709635965302931059645696114201339317673122780861254602733221483627911188376618968814973695029347291679973797498476187917802257646565035989448911793144578618436271938316928071389938069858946891303837516209708668294054204951393187627750180226778113144704666624350612118163679448408423000972908759846908047807527937660631800083566779435980175205223155141820765449294170778848314555843033108928726211845158983786689022013234741979812951027573470970219038594010799211215899515382749870511973053854735037288014029541534502640292115760887342858356406885102666323179156872656095606969591135564692591866066292638556043062379670894289101507539822902481880406084638695231400228981914702596800742682767059123822540362825120701814617867862744821408893952350415354106239919376652197757452937792922598069251176226060083714433661799243966978649626323105214508713997406411933890717318319391621199477361601143864201687804028285428530120063273128442343132254955151296860039262162587586784280163376345024964511035281603472804269044958072761182109910405771612498817216713667456914331292185706803624687119704033682871762696286079743706363098211510087955631677337109863539962866351540809780892551330969471223454080333043681079920007104587226567658555633037610357252539548471290101774091734326871440356640510746711986355997285826522146272207408425117630851236145208443216312598643132497062675863847440124664551799155851557012649921503528933054919082509150664179313453709351919195996802293448007534244721547297316946846925773103892446604124310089707594679482415443490579183349349752923756684888258670061654671816604868048766149428410795030537244516946452138791298881714149527999453471495957904934409588250698049255406982890338449360456199326562557910595554172191177305069707390291061759474339305216785316178318842706324633518117079101641548550886148121179161324907255665185172865274369532600403565732050895335974855783933743554788605595385033719065570249149952636063804755690600569583294399641868934325089425238827545864794560619993884175790937178319839638666246238589897688106474077628159743458299325769613376995243122885442163367742016670501171741556505546011942032427085275226273546012551861026418402924223193669134488054884976554502954904681634370746181027379246291460250952507708709960162164523698350694223521038137859065081149488617657102213002928679231379735095948128370781161189436933650642062184731835026348197185959915687016254222793484248339861763183733281076494229412090018693418154157994436887823966860181431906433641178385296590667435043906476572449289345546737058277473121711437684257429833796082814057407935436441267567151191791815359934751452275975784966133237983824910884596815312994242398610977250314031549955324354557334386793898212639683858588818639142024656299691781283800722881283867161021690240505763209151054846046730316620008465658838305261234614391844372714148549115688726238856505915366102055630750482887515700551467978990236508141084974848431909900231693771375727646311392238792222592367157429057489640217571553021653748687224340344373111753607112320616790322946474589113084450027788474119065687295691523387562421402328167898321260623755504978688520246653443213999806920546206839731313827594433642711393636244738516242060566472127547085589704373578271280631882813339063390515206931288445119785875134622186326407579801917133795011977330116525963102194085136517436492366905596866974815293472235710690205785850998809374895877968029008630284348850324351290597093526974876826705210721976806158621677027447074267959087876291406341577448813150721403089865746401628989002976154033532750705104069120443583020539076599082032828777739654550817701051787006466739127878159947523584920217370079395866025995078036935469296363670550682770828584733450754933001749534177621087836386701716113263199763542494353819966204140120644120342581892906410046063624292983465074521588993462383534717109017754084150484443246081652740446173645365108164420674076714027682226646587011809591500380701423162966644535970376581548829052517682774701759329905427624107828513944807094276082686329994134840558966277654943719175641264696359000234598561832413476145613200329583680890505333527241059613119503330824320934169651849560223328113188663405069713458708928292590966708761207972652492599375312265370132801363486663386467198718406569402573459446494494067272827954006626169128649356773106011727485710907559773688304727129693191940651952839543156096838465241849630839525433413320418599428108958284387795032852926029776318820147076055800405035945402003113844953544824133594066420319813652687907311959131344721058994508868438075733505740808011160685098774132903666642425485249607233887598943701100035896331289632670568363508756638440977421810154138088463978696888278535915881181171436979377013822999012541493299202951687936521981162713763724125691703514979481061065206789287666521284746269337425693866928664552895184389017900200224796551578077687489817686066330052495242990815694271938797144623009247878925029851317425676717164260265230355828177746276645493685898011147399645284029317410131520213127492062840471561294539472542351707983263958116493011201675607889995435593062205283323405002277024193651326625652859624688992877846016758136934519418602277286205612782216238688348414512822187011664739950007789638129764599139128924063702776196170153840735176910216540660498031728709189781612236096792593610984825799850562035106500781161686318124445865811039713556244174148057786376062433859928958627656850879872747378541354264492950958069752950325668513280292325988424668419531913093063922179782810671183528127404704463716361604344638882292902851038395160954474686588428634282786049085765966393168998917201756890097630065050271411087191734719532443231937916480958385110653901084228149750826821472350131075423174302029962086721119676636278860129303933207590502178045922614903203435361356338774025450989018589349877392751904597635455804495733323964459826541540299750546724819087341395431796337008347042596453506066381962568722301810480983955209264324377803625074363135718308686345773609353401374195072153388699646175980987113889725692252265731499864314509292578723040000973466287581756695704994075012473110331237872937637400651734330793195576312825024840668222643745126740831535358139946910764024801796573178655657632453483808848494286165000339178605539434759604280277282017524016043900443533424995798406236904564794663431559322891380804986597096058984988775531114103784298545928615091163389367425446548374030361200163456009806438268636615295096950598668270987814343230461072303684434800053673577552511968853529303933384480429063789127473952036425714822737130336559626219345566431516098244575093973516369378572593999840167646774460121129181657853717907561236801283320931524869870385966911664038999036060218927712101047490662222521150035370261315295129247102276633671174630414984922770477225047142063596352272066081598173910310831011705941435441956354870170468871739660914035305782164340504165308120650112674903272784761038350727938863808183129333558336048143893512486517438380380388401988167716390246867883438213550653521017448596713521523632447824697758433848571466102847897722008400422490870593016865233650324012597272411704030676794971267795969563784821692276764148485370463483342646065309298722070140549967348154526257620793621073173088552190406714659707718704561468055662440362259602190793509004726843595830227658783913805950207136364138014498561706105584465362503351125038386666878512269011510889935391112659803773112336270634637918301032548470318237667233620277423946665679581535078369840010928373482826035990266462400668070432573322809276359358991114272023906756810991461314678347286863523166113469841854137631333123467608505007770785358088829528102937759120542979098385413156291636850949192969654706251155713089464612701121014737081813465390478083751789844550696292026529500542535549577419353005543380089982343029322114559279265451499090979025688553825405637012594823995132761393703303216564365208736911361468860964944691357967623016389630133190729309296135228286946731252258264572836059925004525034673242601703132284943852043953095318094649176915508669351770327252620806293476558747496364936706114893102407828467537028124716471568733791251954236211429454562816581070014149332688873110830088461420372716754340512904603605519055314163494602180649151801496591653048444173044058077255573637523812870467954608709045622365291282137176211149123687046255878221885024892664497439505995622022279086866888711257876188363319801171046829791768628946497234918774460381830939270538350758755083320151506230664011102983566068857031756395813391519897981348339586319795234883632748404903516251698287192785525603570995883464002157562079506290641808591469330294425695038299867727816409392515463036401381610806214316969500159669020354855212325021811519583407940035937088757652674988863759061223418657533141057775477281174527818519401909945038912135250886639727124296733878835667700158116302138765711210675595320100912603493960419275044135827030203632397236621445574251015290670117868360002393066702700822373506726869862462361414802931179987791501485329547297203169346320584460480981017792884796409910244130429354519448537545079088594842041605430129145676563729580764401195134288197750574574918827228218479526047338630947304498805621161938291070373285880593828988909012255687172287333307568199383831677522794966325820779605012405616012324612249089061334142864598056683369268343638004534792506372254970283107885329992791862157636049706156629276301825024196741119401874269601345670777965052154687812823785395811562537047617623565175728096061815339034212489364517092052457730231233190661507388729085115142880228851310905571081839410816901579663156295442988116460305898624020021447216660657197761015086516980381931186061272359927943997125527401838433539679564222023374758056134825982452372149821430017495251442690771754399608029598693153867615483061653739756409504142615453478081777398691712606243845104775132068409217103298846765809654380145398086723431765840087302651018454407038212585292224560380819118985101925441516815947894701383170960900146327338786124174491520397104403754958974614884753965426416792113724827305130827848037606334309089891402734859299893937353917417632716058672970011749405081958658011538829839917038892497929082027517061717184875575441017686148353411373553811054556211659842187566040704388173294831800432635580049910127193287677157047810174360001596885348799653764128811411359539336254766522205129654132668656046340950381039873742547880300084581357950374192953695759884657948391394380793961198907775258256815303676615343428135179101639800277654183200946253724109746764123932930637331513675285740383885028581299302087290592646719888317664951853579434144441353941280829460970049148489493596373746263297197845733957474552182001613763528068432310443267007180769750242249336654079446062256974815940637145315741552539597219225817797775400897495574169525917121033739944269191739029716256749397644140886184628170078230275376557790679609905692595109032520759997023437253148396934190837215778114562047981763742564766022722792497235499706619615953600289178954487351954767850896262554977888577652671663283268821953655150854013109701296667671760829206688493385537677257233090790383417854333236688232310474904467033213470194976333990398215962110242380254012961656613034293249442090689726448286170710213780636693742740406922568247318348250063406368720433151209570933178956115089873367896108321368011128157887180625971707529070731973582361161715882667529863198932621451362111018611814103540172085186084116229232962277740539817013445296150107312361931261614876948956132536883515280298375794695590166469529329274152248907770623827240578296547743809927400480276708041657677350564372967832101375271517740423919760597944142560855676453723675304072634802331313571186917053345671209661380764881186682819994235127488250521607073640502041471346204613432478806243082283070011298153431358955619123321196472663370116103147364808691862528190546316613684159376545643172703728940480357793810611533313316231305831427164950624430971343961425622936360526336164158860386021740488867782851626169959958897872758738624309630196064259931221458782452026758497234546287719043701523623465612265384211214827180588610327997900476279073626026522749957452881419358727505495534136866123572731973412800931082812633686926192879819186220130616817524945400947253729590792954200517732390252206330506709794146996733833206406472201886875616632393241905502356687427337989645341757805437130915481054898878468081741650862997915847935808428229843896314372632385659794624560279685039602099996838872972458986321540534417844345141944336020648880010355006001677353649433134205452505284164902322781992189475987121713689368912198884383002274228109309976740875793822399553098636475589795050307098644705883573455646956764026047114881473438344499716801513567477084242282582725736379462620638163096984806709841854174576052117901686162404829736421378849896394778982748488114592556406647543749466946241054163459691244985451227240384643939149038119043828178358351009717978024438382683912015071995527743227502872450373534774195031055172048005835710894794151144090472217789528498687259719764161628147800471326030453223015593474108906078154946616574890860742070719570211341751984726650746682749025515623689667842699216439377902705408691105457978676933074159587248517869425179859615855879352887924059872195056181790038999142901766993433269064358075944183910956261695988670683035067250527557721617043597126591036104020991064090036554389530193029603408970316122158514536261193644597371837630487235858594375289038990282061711396235945129385657304571149175277448028772055218584136025809948275431485611304545852211464680482734230112450909282146932886141616939854810730827650215099849121143353174626343801541863903075872300933004781234647195476196361290467499999216707179843805492994057671234493535802698199322853025497959421466059252439769614417652416634615450492832857689185213576454363660023093231626197043311895107954842045709814118980103804831584102205405585458078469168287376371784592049179900834332990672845330709297607926083895633500481953506356462818153958312703808902220760797583817685435442334180165279350267005834600077573363174590551703975901780743442221154647845786259747959652412043837345127414309601466548558615142619664960230565197674543390084949379572688120166976031125982148279668624826767349796120332678933853014627163908056232771707453484982054204960249266285068946215772944195516200965307441194047952180554304881853697085479057759604905340056212858429361360402242741576434253916962180661624919915986737491787930498358344831765586216931113491690476348405351964360229317138820782060233942072511220392267243067908968971108299497718640765712387299629371098606817470957922246150700500733218322484870015037626862662831617437636434125458930316436459463245300561538857727174357124402976748853820731191477899338917730962215466208709902839600116058306316250441264675740692328774731671264763978549231548916539862023483029727336705463864951054615053953166965058749698230850680656129356846120508639008635166539911329087043564807183848574822932373235108306130719892726414347707952599302211245409739902983795133305401027083952946517336109188136407441287798502907825503401278610879118758138020630968220381493324403819179489158649458349505463589021392279182858521007461822689639298776306874631094932264966674141490287331717364990210616621652045098895486433791830729831291722535404851479795110922503819249252255260982095826288751127901165785284021206950704262805406967022267510084205561341530405170899085234121758611218561612666650023573415115105341481711021683736886207875795039482095171934121626188217436545231701336696832268953447944019783057251813499733834450627510003145457015485731752431349911040819298437910285410413413653378847281461755838876127277520243313940936289206224088178833413753609592699162496431029125508363788620136804358490056286879242715980559502204319440789450364595287410183899108375967647604385368477671669832777427480099248144041887706848202075042390362899255055665144065725663235062591492888705666423412455303892933943293208751766562077927823040021942674009708359817229279646706772596650872215746769818578161258644676627397995705905695821971566624782139662859364177641551102295391509029451229804670194073292792114184296282144815706586103055302075224557808804434017227191422978998671445519585813285197193329045224180860174635076443592701896870474252298348052151177313979733422308207789647279043654055954531833915869256132959593025086540110291988100910986389454430704872015695476162232261363473225787583385671095508181764434449443445783082590269132447260030569094466139443016241294748129107018038054450338014059383759816832815346851759298070244374948112721837733556219377911212854567499126992846355438605291373022394464373984338794416805785793660318178054792785882376797599610305865707007480682804980910647980195871126286060981711105208730330187234904620285288967164161396490028300009167290384855806274142496536039933592490079435008416344952594742936532529073678947346676385791214557608758863763884013292737233987437665545154482159006942774110421004111322630447699971123684022425678784739440683901147262578755533343864956192257437455077041818801934291444726344559217261221773609940617885592135443281207339847122993798063663065848305858751918372900278076356723790658987795959580700135997333589825846962873503362080515763346066301191497315861271233084984437587784346887496372454796667954067156615444361500515851250758170479315176774821451042479407158018281030189422132954768470919902924423729207880415506002101546750262516255683396176046317233690677901658533308741111864586745215955871171972357993641300847875263759776683988618372841236783872182212268905085353445658607850132805408447710867031353813641727453335290982068788011065157789858326647519249355696717123843792734250991022957458223160261448221406470233159200290264358632781120540158170615845763175403773303603389681935419777156100648917785040364749990983856917418261428255665415743749824399714169938424958074795889207112164353176064809024896047510671215345449924418016238201162252733693668130279496436146472063779288783819811991834136586480862692917272023773289636059463560216728122808502470620026521937291926336508320711180780106141326486893776623462942759096258725620982682031673015578811137846311304086629915321041676595998027746849848392177659910210526355461742013413005013201844962608077203736872750347665283865828349425958185083873764717768675711498624137057495888952612562195247480918124395711295915098145807299775857132377115221663729695301569134928122209308987948067335879751198988459056301749997123690998377672819276266968652536863567565970690486106174484430404502825352763326962684962247747468097787156040256834369798953448330310312155018075956654024989102855082701712294367489091628551952328327147143413554709021619527314998524338395087862421557875931290122308703163304845635011270490568813508889800092684449109277769755250350285840283986956337202856183797930087620679669056736734637081782782187777698773677035237455295478580993312342157228060174753188369461470626618594175462973429176535958427079464730153598907799806468643218173203437359133695042800990658294749189132297946974280240055457214090244379177054516831887873548523011598184177214857589990437131284103186743018327775011256630010647740148032383116636376629044240553573171496102812025334383619499154518622994114005171670410398204129130569524237514609888953635065807677566022981426023060897961712665244125834205674365576210586392260304514757634413528706338920999347365556880996902788205949102871756673296174668563707006153343739769937540912942599757614013302228141565815116353720986779772159676130139923468170054814249594271049003467640390691332677119018678856096795027854214784322812585213751216692537479703216856442252441343395095700396489092252100363689400784226860914232251704368283727983903419195450174115315305392527153941851543519344967152446021035756138079577665035106036309186389818148641397027071088716657107998193183835438114195037903850804929237047462549738914883176311083786298789354943683888889196671579765620610416133160477810367741100472392190665453444461533097307797468831215100373281243219469346154474454437716295065352107908322247443550980208190976489586389061165392479205713012426747314613675495918152516274918678050162225906034185278286083751791667154910623664636692598515626102634200452108602143042706898662628251885958054287209587756550243695287871100123827829095755726119774335313990679146334853705570031423610217059600205335932439388769512564009162727381655268458221763342827531169792445241387344954873751212039551085315696738104278156278652588356525715694012009614143881787060646542422224262738130300035824629999672617261066311897216622641473921763244813357388208376601952618379296146727269498734475810982390930690003658237532549293783643608080215354119056271560624230776262135469528496967859090830567715774667558454900149534035498870953353354068577365552800192153461901958475402520525717992807283740702234716536372994481408378066821760418162109592008877826109042957862049012792377761159544615635076980753855948617207579595827588247986198778612885217224469685381346700942411426265527977046208922434355377206436905113670463877617299538603758103754423185281370993190101225058705688345152828659800175200486044760662833045971425196989058941007957030105328033623854772132215391590746046206826341572801632546999699819055558407365170999212009518649802187207862872516290891278790653364335512342391853486072442614141706896426276689125876276145345785569713402587428881761240874984916728268661841662306836925472790262619650337043517658194582911580346057444423634844873593016668595900487653483081983235820697293969171844307615807277579941626420628242879227721225422348658823976210916268306853581553539891205541168359395983105202672586484420691419801305940878783153614032770164896361933572335768525238424499404137369839945197598629789059816084861273932676212929618780840041376812131967747518327678098614973202875778892045252811984058660731834646480537270906336893524537496155071853643071612220108556284962904918062852771739522313139421464463684437409179791116952386885955987504745327316785484424527611680921117430996701897217576020816568642158403546762032446377658674339623304903481033217139497923738390309305745666059132038099042719898124010428444029826860404613372423402877213322710904471642225723642403957639770353700373608717749923254845526922086006107903785436387122775118996644216171232593509757454417107193262777656954145148376444477408944981177372910549969770026598564976411765533173952525641295627698663631617093559182006420870846433489902488479792687557949709606598321528468567641184960867243882402865206900573973540862083257990808673932367823920864020963114439185744882776645809215234918884685998399994620270995644633338561638927744846851277573521224856418165324637458598664428627958495657866377396120790196039592624346629207014652517444262408273317959634481112086053901741339891359322298665543215137223290550490916201121956086649481599043535588962178571349507271555665533993952098353029460157054322003333991052371502686614307538774096243093236648607948459557807970877554686049695821814015456501387930464457693376972249529276796413037252474596343952040239046270106024330017648093788258722546860619428504728131742368753296881320072397203440271519499329454585046908591683349300893077314612324374397979903464619982103764893555790145616443105374213618952179893358196890522659720047718565834133825318225015344579559485348164602056402139790864939388171546819208772347097779931126735772321373751595239570285253467479944509579744599783299311735103694280363749850165129866755612626223130935535305629877291318931008485321228067967040268353359551742116751112575743674211566192664454248205932492781521064396358121107825897376174274752769075868628766251849547820175896990305729694372716861294619095950983479351745301949971731301805790940470176313438642395016744232849810391206129116051630293124245838910036540427849118570797643082861864727606521405957704597829897868510961000265738532766072637040147058884724526348423495695731837601404998513215476877534924512636608774119507379606397980771953323720344711803031017024500382995156764643758469790338978164805890427122270938851147978444131392170230536123548552141264044148847439799231060496257421350091446973789360226397287129470263865118297963147670268270757808318026581213821718412458634404614917525350914638380126177746299783939510675750933354749587551684891958905476443625925749639293342377058234808241038381732224097981756990795649501792561957378464439592563693469439577406605462202028131223962257353012880577644256018735473696699286815128289795858332595078499735107024026973329493380579347888808566627975056590188197734506127432124462340323172260599265959897039365141085346593054704819364262806387635491077919242588601268173678006085724934036893782672608312620176280267066883399268963392329935339500116179799782942977892537261315549792802878297503197776357107203172457978493948224902873453906802435029878229008843119998446823218055941768902052019127735448142078900894234114651078849253170413966669329496761646971638746856008708660838511580944018081919568432399895035670277235750437198342012715232542744163781108146522996801237915370807773443584242165585893146641025311516614046459423675342828058699163066021100268899247621514943646963344839795356055436948247485761030857032804742994953185232953204100634898347522553456452790600501552912002443140600675147134441748630777522443475470998548291922918199052655607544065279771922249655815916674031008971266119304280075165568774735838978250376319729332494524527510397437692812671964362745962207703577800737944234601601353488666974268028753205819033453972431400188551010875411548393717644114087566818533548992973768402626316149019431694292127741662204219592275343893034345333435933793791007988924117712325221593093736565195119629162040526828283773990954246501644175666241833692325650595574189846869120836998195804523469130730127342790327546164821630974453757120062417359376906053935939544641021882295913780791244950020120273044083863992583448676622975089495869659477501600703137774645177715203100003199661432002526853265186176658093894332700298570153730685216642228130030002300873117981084331459846304541500214236032894599054301905866693902927878897277493055847271426835429974656917311688762849296547210881002971556729142207949637673052387263958838710618379654566186166553239403990072391768613112086007698698345862148651238778215495859486638493108188170927362848350777748384616218541777962688524437238792476820695699597613548638149091695589489944815855018070698856083847706994241998819211375630598223291881845274925613505524017008892405468457275133307675830290681113530366533237755764063018072891494420594176328294142887387355211024051008239947695662844690875783981136641293763214807949424789587640059789175910298912522366957775605477054058265013141839333608634458202607877926780763367750384083217296322443615894464485120178787932882884769072623924178792285587498927988587023348610071349991134253078085092427381058182625345624717526442292084984573465187455647767492616979474112989819378540679325029562058463620114878626976902660339711579194113288915064523560077552009091436186619996238070755823717560975036958035633401948797696836978909991138094561613678762267360539101875207927882944748960090882420754247216190453488705027602216133654980343232017256516857560781928066845325899363084410270866427214028770255164934158873436553623068981091001951608679570601756793942886171618307004504973634920870211645465080830393155400672027013329737054590419904688446173583109695708768098133784785186671919746661812834399444506489616272746680024837452625143519087841973210543628969726815052639608259265753016618732118622383355873672512180305438562223348879431670737169904976634982856344344754079701917294946176593635352019295833477303665514508077011265992867616183732209005099934806164116444673030058606596021087743917343233050156129438605636208764140749551625911355693050905732980420461978858329346947985137793854353064320626177756420591285433741393640174482842007794007942432990120930700506085824618455080546268455131906275567225388276046808287267201331688646491512480688892708202545722413237785307520675033426628836930884304456720351161474217747951083383342331901280731698918540681020247406478695076142069450339142710278501739702920625709329020950743408154625613086639395726536549422289233642528484573828269285536794514080767778673053868449878647683843250555821654001055368111851407626919253881692960723001588563568849679354373470276670695520294238541510898104782437950617287803580939904558774318749078804266783454362841473404206516119060600107792324933106000886741526346129453615710331948935622707060167138842736451443349776515101220002665402463285997518896010487137496455453042552640320918761928663658973699578465872094195945772897928888060443409090271112489988714166058659626193673197226551594516046980307967688729668829564354349423115492160861895759834649183527220024277348476185646978074559368716181467527028963321204927164101278875949992654930235035588956300910687735214556810409298870935676081048149274719278011240924539605554092549469823427135800864808732992120989930372940516066542493891003581387253173725630490235968310714547758411053008633775019140716650960268386863768861030419771854701487839389293488812826965981531304070090456151764198000636010615660679666530765645690160767783079134767585380551290966255944543283825776175592209409177538336065894076821489605566008976431332794407139816345361357209384584126098203299671556571538749074578924233459685713122691387933722939417980926429533261709251323869161920206858440471727712888101933293925820914789798838047309784321963707565463859176432068098192171342572522350482102161215354009192908521884487519784444018188291652820663965152735886297396374681627887317697720543710486718250830152831939046065822949768154577905272805913354965799146120909630214789430352787865376782822826112997397861749396226512448965342239459554880641434545396006890905456610063439037920851898061666859247849913905998209407042098183657617097321002692889223078309035887635733408634306173382583980545303725541959267222583538668754401784559519377040261812631515890784860139050145047671371456345621225807067071563400791911928713707035974381041667766002228617622290620401748336116419395743780626833891074611487215451335615804739485611015847662061280333285114274136726396475125345540610534753646778543394558628290079832682850137650466876021342864210172177742325365009927530174284064097132510626558742857885881677542346185858788028713576536722320130677823456237033249659738296761642922767630882324076901516384678481002058728985519661048634135656060352157274625826134896614390784692569709898141020727620745727329062472974088018614414383479641830689716029548162681112704855475725310293006503966897343659310956874888526176244937682854011221916716428218132877814335863044903602402392689614329619862600279073269544702224609007389212039956203101667584874383931195315390061556453833757601203144370036265518872851882671376136689111318255064397760897076585566827516520533112477668595945230184922072100395958165382630007683540863219878548254768288649183020785886253200407982314452171733944569893209302137183081897227661539545808540210995432834339332861065708166209263432492842010195969950263485834053472136379665231037406656059124828440444281950415234528549189841425819309954129923245436688135306393798019280441902315583645368978770704727319262941652408856648754448738900508265028175027660037419250290460560775195059848502611340112202862694757508650284328437602849584992223162341591774394495486719144020534148392773054445139754738315618754254621093305110889784901845193758796362838067285027266306826103608007494547314736664738072161200751677036505717544150772517839149146207136207833940100327092486886305443568170100363102112103917086696023178965895990008751959070705924580705233130056157909403664207790058103354009001264915928858114730665509327625268441776345320431468249591168548885160271515453338249200288042553244015523831338159367878348370067507240262496058543535160460781490076206030877284635710523737739486670819644826856074885783498544544410031542513003864607881086423123310510810148021471837021503328413283975106573025256590436850724823017306734124606687700302068204740507608313497744548837921670421709901678136720661687051472377702565478506871663658597957812705430783458811923433261301112294831286309810122334939596790276914818530657696127350067808636208279238206183992707910401016591739849904489218763047854554672501322164054035990649275458190426652059447347755140600426971227061699913556250356089168331454993676535004954262046069142033846204798964396164764170016208120662136226817874302332759834953773716665001356175353182302329483656651555802997520864134179823750505979046373547132475448632356501772519329685051354827173173922032111130365080463422554037266354571544253716201717978383087423450292755943635346650584879088435923137978332243897835793721821310981293292530633621328337880304177302812684772773759995054649586431293554356213503930345274282784969307990329615484843292437213817734328362638766061057305810176977873672494482064151768308415395858728531153477277681453309216109559820331578810478409653986140563229153021273018008920001850867101832890492920970322530362449223806539238574914183635241063072824542522619852278269066669559073160050675932365753078651744309796692431856281473326034650982347658710545175753190021429860561160556526846677625872101244805555806482717392211796452659462099843257988508225380178446446085647912468910923212079352801483148449854925937312078323310503565980780479678109202702931402337189274166431409981641286404639088368033824545652054129207159383734352410424861095127121777356684440109482501807650650178347548020979529430240585934815803649635792013567564995475071370524886344857950954566720532881478738268686783953322493226353003275663574351931861792531657144599964545074318362617772314312746709406522215825872185699778963890463521450935343071827640909410565706370166560942504500269085006614065517950609004789877745540794168382372409019682513863529437700896374796134388093155086406800166418073005185802719557662987137195111017547979933226481892682528352384598095208131115446006564754230491239834191942692252051692281949868137774564099232137671409831812322357954447237134077308566621822689978097383935671680687188145604898822451374302121179128474070138631282462640008346522812094377330491849087526339772106972484903532553920752353442193371988968361949793375423279249651265520627388021879396493903248100251286566880290247602187618419468572575421892218498541738320975356751031919367401330189701018638102988433935207735507770988816477890286674590978118895066837896919421098712146043354367517536740496535272540574158445542486694926561668828213226412683606502289029889961666362340188321801262705569095171936664337494168932974244127806969303997447834278333666467683400039283877120310391456919345382671776109530046332888797374283798832165360891794443610790667843625112880407668459421249231911472844534604357751687124287530614734636042249239761317583382978969238903177886869538478443076273911788690872074497907483663565145405453925090839568433735519176080101152274835219660831692775631966518218576464815005839772159186733565576694383510391458217391773499920106209748176198509286499801195914459194038316039330978086284720561760941020814147427321213157378215564401225270136902512434981193634281919133591060406536436224583324122625263973671067026675446273003845984353213223594810421872651245978140779971030929511383732439016059598901745917828571539575335758234257735648481168623015513049930724734628582122223105893141291811046790404671211977483306372032449196168149666779112378599577455998798692158249187648398822590991782845869036378402154122029313971248575339345544524953578901673265979957796312329525557173398394943658592801953807746703453027958440882619416020040261193005317027734750247984040277697128876904771911662565392333709658094242981098327544893484838546600274673665582863842932932255061286758651119606945162601528937988767728941701709441899490999570948680937370133713956629012352160581937187460780630066520986991023653315068035947671468045516505955774504183575849093030646064824594292178484853714892163278740125162544703535330327576282760699891400249310516641724999252999231020344001983123616160131767871280600357714164982068675555002281127472834839972546920271959089168012783704495841013079091956259397006199076763895464603140950455392736960106790644978995977689047427704318150791401653681791101958042206438599347635075909265244755919800352571378412423018961107942782809053384715230039011331277503471271464700352793188718286537368843760129600652259403560522012381518517196204441518532568760305797244775912178733481658609035944209719954651858036497840061661108009173752005751507874711960587700568241381073070117195021215704846823044020877432129730234312778295325011751872067923447216781277755420968707538508907077557681217575550657076323022030714778648131674877628929102842920507209867078094584645050062476583477744412368650304827566105489367718060623956010854878603947441374847769209035184552517919678234893447843225012886636638428256694549116052488771519855482872105848232451898772829844800849830366035094436342335952897894513147087520737649963758499050218148376097845228398080499987416400450778272532743577115318656546604882419859612043181474768001521620131281386699451680548268828567543614990484450354376568010767404141955548013387781557827208033177815477423932099307253387966193262912658437959693768781294450015948337063447100079836487086967645851671440496131333850067862041678418631740622864513892286312446991507245433102705253557272853088814732644801164922055002994059352417310988535010420180861913825639734187942886946312184789917456242759564518978651061927709079736776666630939690295511715287156956083399700874968032697874659102849636453985157535000577955775693653888576714965185124422818719551635664967028729613674131316712560509560105254780103781422531877779710123849381340659830873232730729924612429996425822970190283728890710085739892470918584854634867418910329728009950148548829331922255058253353448089436925681192334142504965014647763007941441197543214778581314322284022718063116445188094213263911059861090013088082229358587956255548055126897136574353729070131648877095750615807116265165393120446482563596636385511298610194259945558268797112035492857088846915850775028605028113117692169086679916691150487218672847970721747319501231036256257770077981279566355401253446798411355451956686166071378076924101604629116017266357222204210968038706411302023941592759835196200110352620252615544700817722538737537156958106760719643011704307384011733714659484685461322463340476393615128449741559526317984506972794345035502111335493836129545035282470810777391879590183119982140100307306726147461289002928998396841179615078473771605923962307191493153825320395819397714624685314571830505576935994935177707691572981962179595800309088877265063002109721631512506401156390167421720752513561007214519168105878674526278364165160798270937766527994904074871063792400081896664805827319089084584541240079515475785756735257834913063570329552346843310195433584154679113103246731894689674366172526859137844526104932940671930930049452171438006652113051709997588070132701255873385471204239116461676001953835312803639246172857464165718324321349217114119364823237029294230560752188512025870965843907420230915746045469979064837111457471374229496789244318280155973902519364676044052259380731670943788414239779035387068716031725428452422779584578949860321716686296078752204332555617205619964332235592476152196755203393345427274487294186885480737332636429081052933808287215608430152568933024909837996754521934301804528894549968994710137066542257463232989379384175096380146623700114545820264413341275598200003733283803452997617706325347441158311614608136682131780947846005962972223455576923384732995434434490147829338083657032874955684781197142342827185739288026256029637928336792460782604555130143740820663863800921359099422849956407260915313151024521095178476334717839451035037772522541271661074644089109672359303758789631026814881685074889813483881629137422003436232712691086085754397465325947993206732996565264129427095476379115327036259305189834089320001139885556511554931729275928012369844031680120660099357737373218568975805850728215713506624574694557126626165813392208358909823707030006748374131251117444344049831751058725961561890660004812245681933994059102519115391356804007864883385532955018476374676098194327222637459973484234137464789366785571224513348323706115529461854298984773347209877228699333095144993856970585041211116655824172869031793480580067992613286954964406193778585339401656934467052631065585853690194610929401701237769103791282004516618138072901456508955427732447115501168912120328096243462050882377030788593999766203778566640852976600531852701708118445065816684632403343222944031238844930934544793650487406975055623630341878550420326194132543993261356321877313364859263423790174993016793190562894886145614133782523079805441569364396699418433638790122598558623611656129354232707297150235694870124745215584169511055844556332563030602956837964405530689359065533404837856322041524633932022516260790018655187865450057914502285587768172056435203800973640320712653827433760772812668841201801048778930408101350850093249126260970579252058411206019809523777162730171303629061801908597444717593067843333557823666405831644218758242127446049350039422504039825983090163096893135621028102154272373800308024758941911632585298369705429131187482523861447290853709658962595254588251690022111332582127701778599426680516909901332328578499420320181270977760356427672356952911340097229834744699601931314947249020602511649459422839570304705265724597698797301125078119932241574288661580519079035340213513585872735322535766754894183443735857735507177865553717179110225909792184579194830476187248631328283396059992315895743188936088349915708131980121280486168889320442041534416441512671023645346872940633879019888929426133143591600157715583530923645543473794158619579075961696867044018324840813920654585717794380524546197766100718521866089125130982724083375270597383823592204833154386953127296826877292284967516063290608737928356572604021658795656418904221904227809585468438556771829260175873157738510561924315521964385431497582608005699837929337121561369177835374863402177680532280745601276678151342470781689009881529942511373215903147968909497232378501754613061028797422477517556810902935083855522348270404144247709363287362307209692367015674184159263395783776878284624336017122374394861258172959115847913249625557200970890748593396344316459901806206325564072685067382745401236753640558723133233371420581853334272209118768790587544385450676264002828013564976960905397884292724048727823999380035540468034664016751520332458066121047162776181879491733363091330122302364585383135755184136696799252451127614364791352094149777065326270711959445736392379487208810211515134874263031487797938323455900622525703065055173356732806891122499792126269579666718469611625441071634890537054332328917533103927105383824203920394724519252818686497949902843054845526596550210974282557181267112841465484664842232128433690301978010967824249013742227774004346943179059620498661906593308973326978002173052619876254110702115658282920594249308333393110751126928166998820070662558372567726507076427530949513812251970509653846085045781833599205894282957051224891427582391759029896446186231727102915238295450967166968826265949550417764307277975177521904921587591785237379920954064709273730580353589619978716635194570827426583646291697716937634735909232588061109532506663285788475935407224885503837172503166792803996259345169414747009804519814836505843047363733144249627958879720460626162472650956048060436945442859669762410932903760843497375429748148586141943947530678421548762202122690162986093487099557914312345442750284936622662301853072942995031622557786270199804475690901692319447926069769927088620122278764750275990310197445463646486434609785663051791519365079885972043463578612094163201720263072608690028620608982573218819781247378514087948033370209648506210711514327317064178625806198026068766853168598938017727846975449830876942834595266812847501835694299589380342005396063806154565765137721821962276732009935170502592622638073334477038725566057982836350640596673652262473557492255212369527137033996322093667012473725489300152737327520058271575506934958828278440326844313049787890317630634872581973498706319150337878732322118107759648239144540517273527866049059753100567609957189355618664660247049938941189631188681870785570915951088217784960770957419612333558236235674738666805200640712923497401713785115423313890728910210601029832985958846008398158145013595466445023587643847970547501115807297205263250573264020607234011511833548849682676452401099797809010852556427002738712993334274158769971379949820066498846968371594884921629937923843808752305364261733695992387469512849404870491332432754732413887833074390881993714960731486693394062488103327356531864446442791539221274143797979593395289375666378781782010308533914302517136933279031951566200769586769820869960270846035575774988106805251722893625427291364508918506312663609609575481981279772103578599721192344107899036395415212238838569097969758677416924727596449809623577782016488145072297348386328354640297280477510728438049252245921830224117818620062965446164386566372134141367706968274347588588794812204936915289527516459513862553576096547508314627265772801680888940168824209702897472771401094181661764501097404877953698181252667068907340674883971854332590709640601001367378079095779053057527681962349372568389948178818250126078284350462219023820379755181336068158680164506082503276204371854932242996603084263050081260955368085510947794918649656327899320147687530600228836414550048070968398995741185480787832651697283805761380610982123655855146905572201972475363564984987760930911197799615184375604057208418924037305409999151006818958631969777029742216206339653096125131828217113013493276619901004195677613943194110934018750493866787670462147520898695236448834219716158853030438435936688116153555804051210341409556124161249346031903648365449312370629835831372544803534847249784373981713143689163551486766591970709127822275508900999294790813162928083442551224001054992173322164863068955449611710180673793540141126753813333108796021055650880385788872666650026704155541504036828509540085755096905343780509744557781109879895106900377006230766359899561986980794835977419536275644618237081669229243711273722954540645182369991067006824488214959991823629140629161422574185676904907360666531212928767445184649354552154397095155482315360533549341584698092081311575606186950626673496498948775122629795082160716495521451676405220664325635214380205828665471434272925613210795537383814099623353332113814628590267402294230621840618178169380269623324120771278226975373618885289347350314938653679539014156467736394948961326252449215664088974346191037722422724901514873871655041858473252909749904018089920290876501753723357035007938909799847934880180041873769015950643594268224545490534524161117029079896027808480568580542463788475731434665757707305752678375704723620255005448972120318576519020173569850496926236666235178708273085613098923381200734328041551973389794553983421134254788799896809230308911109271084932119893734346462742510899441401078953362918195592261039709816128091360202321998589609426328531122301837422753902609398517992998723575039037993095330533691365886755568253903155450472925664372557988690520475494999722533012764009100947838570724313426516422989445731291327928456858230155203997291918157395726059079002988265358846019384883747258099019227331567821432244810887029543330782000329178601327794465206157629410288657363317558011769692158914073468137647814462637140442960069294440277712596087051309205329752910209920916328127149965583382167995413899385079228150949897820811731483689626644802092606731997850373076633101489561359241890502197024573337661337587679180711685166777642850158131939483334079354666866017906874363764468325689015716012953654330133956855914569006064828592416406104863537182115287157980325505925668361663930396990535029009215144038630565344353382295359678237710503570912811191205793354313718937605367621102151523540402726123472024280898217197250824191373406106142989375323521167320704808395809246797357972192835736339237090234757648272414590874583630438786603792624834541215743234696587341078841819343091147525878165940724910136345733294541251102755070705240398022879418575098397306543646940239515337188164645088933154347228029696632965664254731173148966294888274413399092218015323047171173869692694927978412289470842047410848245334143212514984501875553166537333117424695478741247285494028535807406933747738488279240056576534881646954711881298224466934583448475032097220659848684998691307911789892626051673809038116289921526171735104500065237461335035269317294408829602058829529461726071974936066822383826308506777378774986069375150790736894494101111887787413746023856694450871549739110124546311860761912216978426016460246164658079788303642915580098347906339095805093039788955382226786917141041352249157234831168829595410784487375639513133793581566013468842898392955680333830410535808928441136597940166621547233466046755130182227533510480132034118646746835794620562213736132004823760083340844221239645252255276771746442681364339134155193171543122434733115089226179448700363255438615853497163924556841280160798449243897596044231630623876623284306203678068858717147235380957401020146451187861071104765137131278024021406797091937558068924926863621168780522551703401471837006871163787620677005194520911988211554395837381632975515430438691092534764163604727782466993486280752654380142964488111015306830471254899459850468290284855540120554143069746563754763206762317826864271481676667931838717882845026278740837118144654760645174836148266167594229374015442600134513998940889899857920059607833242789408563116216748722711641278095173223401472697389393640071481731824129272095549385021400144786554648812701171454510472745808317037327442930234128379103890435807689454832381269018820661880835089716009271659298714890472117374076724042417397033180214880643370226547897648184827601784987371813109882274053133199697008945693618542043921177219937387818381904982872430870521428044960538094283993241379068601068802118305934679754818277574915665252259670986156868651159883494860385332206570545935450687832171623064481301578406783228474755509216590403562132782671989615925364620993659380533969600578501999519175410497285377467396108037336737341032089773497279897866161938386474093069689294589651782879386107892882054203271457282306328272501461775839578917192613514346825612222209218904533391794787561504348085993865866577294001629373675629700978762341353161637773599253249430243869002777891613852472069565792998804890119071761484156704242688845770273899301919034952514124805280578209278190554037781470594074848218645172909891706725392564534546240960659568259078591389633071697167846363994689291784922392717394405437684466579297983084336390311414016622583518348749613535344453888973793408175641329365345978993097077786711599537668185134835281142532063316978653458473788968088209425926214655028359614326709597343916722701664508585318938396394862839944580196933094784628843611667008692490766520841297065781864470949452904671114132777042653700710781523461905578401439155820353462522686528200096897031592874467527761284788967988571631764340194085531541753092799820939501325778113775810986337310971842585931995626950484286039213180607314633556954388103345269120134490596390268664670195062846723070568137703165271036346384461963068831487273880797124493655738407997151671267958199708350656307941461836427861774425313694268055343969443031785697272372585632769539989171245234655112674962808045745613538446076521080288246414822758555204238735935596125682103581011346834551068663217363842171652205229919635303911034356055600951299533584015423304668411668568806158970038360710457826260845129900095447256583604254794658788805523933821925152774515818922960961326616831248520538617015942734612452507425434399471910769467631973126408465533749887044952337994546471753415005475195905732191745032740005542093982210298285962978595360936493071412826568885055276297852751680507119396456535818887870828124709610466786821642190830487701507026667808080724251610497282466715902369653639189638494172622863166947555890449108610087747659687361682939076183142094173406835306468357889832548184534326665210129911475903504065014988663744693691016575726702455161209302185193115543154753965962213672195090336329666463048877838909435637216707521585636957692673282338001018424649238802776042422212731018559183350965338750259669295578303388137945640574752807561478076861535553860853729658187093145392254605923615392313683874532484876178436284956738276207872469169578558034883477938546572595777271497484397584736557231005335059453113838977181461745965860265268907972816953058310790614566169266070067474932781883832179380647280268331859675242531017538570456446205114996301864837297734225961706199570537732556358048048570201827570297015693473754144708322748233966777876005874384267925712554197174689561648190814097029216802303644754499667493132056882561372407031438956786094166219989321602712545337473922539685576918724104881897681109809386141903214763531135640337277456934204231348423434668170941028512051216956767184493827062437858341452305977437527767479016020148532439327733184689831082404261372477233948021186561136215488322222900399002488944988873013451440680394897498598693101271291601585324090992361087792647134450335381352310077645000333731880157898250667670960505065847555098444691433835384573727125933269414999250809562994520275955639531334968755022798575477783721045442574166103064431258874861394594710155705836972972625895626815346803896951974705414810020525478653251754697684744909680758440593675789141676127493057852005478267451799327277976295072079799018959694774526396114097105550304929487800532193106379861266517282135435084410674646381257147503359348395727574958456431589048037976438911630155649068909344163149814061888073560456715090200797576680507253309343114003001489863879218977149211470881336956696026638001626486149644401355047599741697876157774113969043573043011601107974924409707896373307147953627395063246666237446732786863381623799666312263449816365382864957124970053268922652575544959875423135591028082341317321502982533088912807524022854744735667586243267391631797161884568637010000789801090534467599937306909647917052142730322168659621918362402654946031535801255713084439640474920048932680234485841949347354865844932618450746354711904451141359619010597544798741222353719392235845934250995317821296468622498456198741248156091081642216313070030872746551876448616090414417343744772200252941757581566816300005346635682385158531339624459673167997201300041590996728662527691717272905413492353286659430940785067943619660038262728495637554008700696170697099314531367053399736303126095008294295856716806649003485794524812079896077235729113899206815218920547220534982957922764294313777082837086003249400419621762656142894200371671694504036827831221566177172880172874311869271738397605879679791231763899283362939502308664065845056997927493469261479051942179572496544488427216956083187494921399597583093640539567801449925900601505431618959805417648811852214842317240015368338494624462153308283943121798197544242612890431191207768850412302442608269257580338978003139459789026202231242490184429318388297374254763023077601146650263959859866486948731144352717554418075770175403987650731987381101223336824133497054797200478775775504320367769090060925893724857711119240656440573338959290341003369688239182464569740029558609681363285946037744692594662119586382879115733427547158925444307757546729643533364448469831423384859789066307406462883151214189072730396946815279630015349389220197667211083682851177045542181298786770291344877487990875872518973699726622033250745149481043025712770339351446846794789320451962302219535086265943026974075690661182180004061418802779473689079923328507226207413900073435608200657564717815799742591538420409163123888918293867748682590986250708875728748120335493848899025923016735384632410616822534734555360235191758107582428057517733251622647109099485320667850411027923976503120496459524064225079266029413719642720510322412993019075234830312163129818682532162591164678590959006856851666469582262793941437425157349717185999464819431680190824950039399674392727662706077119557269261572872235408451803843430747277515795442694722606083016671125757129773797259862392580094888512114440657729040628144110610004148511048609897272960346757007918455596256586593166174641355502353564219312973348076634193443485844451522133879645018743248169068914487645134629353722077183869839205189588605688995834524432755230193744066792876287469179802261834819101216733912250926944814211836905566929106020468141584646936330517664984685187994631787596912471537195598952319407599143322178153348186646727654647649308988852895320454923457881108312715636828737413003985648956575092234370904609561304704588961360848075531326957436924418907961532846509168412111548123513361298893232501369014260585234746613051556325300181580403394935025531621378815571804221638626139730318954503341605202577440213550876365323208771685574619666366810583827846868012332399367352848304936642957717347662298232744495581459214547729719721494000675815635158032786300170766162210612341244352853743248292723207206582174802914608571054483541486790036035957305704196626974129094252961408994077507781446384258231380300415788326604265005295271570776331047702683322380231115956515942411943865185629883817238862717817060832291700521863746308296597655161174328885862731383349825172621845707470356754317805845818616923860213531881974449959089973092034991559249420550555257325705501838007362271338916585218617905370309565640157836991475254621980190389928235276283008561990273885601247437945335566202054937011795965341664694556117065334801176607925758850156726674339526693754687365541300457044290628803261223276213454752741959532170169465300141352735941391613853390934092704374562374686283488591616082457815181568767365120976598959185628598466982970901792717727081236380825117950883265041966791904459419829898067124967028951604660304127792151996252149382219259940764655511583456546360768732172596262786959751917076931774028738649295990439532594402546455670235600014382740153963344692101939533311179941789671728730229126909896627598676228349724063450209099264301550286745472801170835035564854761558404430650280774906439255454283909327206163146974162035914771881633268163091272801802356945975515609190384304887257022828705408545644503529911409052435576527036840504301658415419136850936788483615502121130239563830698019705467781863034258824527641207539861909591352761229520001853536583032352510391158133214175775414147927291544899510788974005997851172386377079882394219201376750637860215108869443344110461306690831616510549459662794956689231491278307772032879355457957289467003751274538875118524122289747265860427846538361726708783948524225260253897405895821155088116009598438678740251601184617915279176550838078041677423701477999850430640437866962367858437869600092742010665499569273088883567157334238895527988265513490681483187341015457274982290216633836419624112359162024367180421820949189267559710207611763669656010419387704439276704629059949290505039826785710435770515569912324832661054414770713839670530936205861531434257322513446064128980834696682623866751874536527103264812138532744808253651052936431473930814028430795820912752537661536576200157118230370953295063878443819913559818356368208577925315547242339940539451553345699323354769036941399304841579081597863652473001469329989577100257849332205317074791503391369987808371218000219351873705498653990393630625187824595564536418702062913493910754240135717025511169519406089358032332383710960266001760418150427265673152208867442427927372220675224755868060659677529229064714749597028976920706290637441904951506311242265978417630711873726860724990461227256471995190882030659094983919818768154464000362062468463335350638995389664453876564521123314630312194131591655285327645509705757318044412681914513340574040128685753758325562133138066186864949729667913976776795439220741212256950693939805926337639593267838473130086116722451197479900957575871618741011498273844129615600940962908829716199405918655866169463955746035575200904524241255052880727784173930841250346832877637548225706226063730791521022662941567791962050176641895141907475824256508652677676615533268962023877239315764202429700564130755844592615015829367431647775937336015186595669739728630222882357002921418520023935023220066804519343430211781489547615552200725432003045610165016160479733119176813169619842688010325430135837217870052665615135514414651286737806435138546565128139689261822648287806747819663206807496762866591985368185982459649627968404059767229447084879492362477559633544049954451258365290400997411677680222135220647544906059047810751437365044317547447248555362805147089084789179040267930292636924855749450201385855985573744024523358000112476661484587554786190732131089300422883381523024843735679227897586668763206446505519553400746400675326505321450488163510882020571122572630471713109335713547619031576735741624870863226068775998089110791286933902599560532366403393912039731205134455880453694620441190147830069109529125525266534778492281257707947310868702663835486803180518850700997119719291010090753208785961971596593301971246047749585107630238085587899173475789466860274405309408857883818953597308947510604623484535133143779949585693495122381076281266206016719616445369681459728249878704453611095474817844654247901269117205186824141033982974493578446934285761766233586254186482994130718533153595802297755601899347016868160254233149452179576915125584510926107986136140139180989484439017378638506885350962222537706176589091561749078179063731044332987938598570536064326569290601905790433764709501698111118071324018005502435368975752575672651539014466230977561138853575263150195305510534619696938095304429651218305529216359894627865489197330788836341950118535899560834557921460963026912180363814799759144192395438647703516908798777331083076921991616585240964713604594328860761234055158933308941472370846408352447008927186177455445859818242063099286647092908685444579359198655048650195313923660214444410330491743724311753737037972536406784027201831701303869400424159919132735985584850463957989659699642431352460384400585693625302013283547281887558949426459168001069397090753620168084292541133048084332420560151760702717738126960505982475639597432121330827942984460124012869498383192847008610046005526212657185219141055899102455247068268415396982820433032963976540263405634756980265902816450712561956318530264295776803532058522806809350339810311919083436637593893235255084303983464172447928922955236139471127315188367232238319070253785259244004326179126639996478876778415597984095695310487448770490453306281135584571614896969341170512475737222347708789994160644807600462313470397990611145971334916634263453816120684039300618863367464092507143714616939837365302721568905916964941114513586825449124597801825501534428964847003851394002901076032760921005271639617449169434111855454275238034521068169054825776459781708375557356125422357373221026633863259595907602214056501983097462420132569156707609761638251908956806576456031686197879900158386041320123467985582474585924802074779158148078642284461032133392561906818874393288337340910222917407769048691912880385746086636132893583847865998083102175474175642859762717810354530539849919213910631568839690904653979587197596919362224126115336166328733485187444710025042203255455890826003290418515034133605980724121424246787946745061856291685901443153142699881036147952246873833395901764947260293150255859196397558163583517597054759381377342279421910697216738558453995616906165735962348362557098983807143008752165092928036106051313419610509018616561702285506279818672050431946697179740675340470790756204549001203638063833667144110404644360065053546913626985127539324959050411558839050182240714605137371225964790790598082432818975199761973992809922406740283687129478432615905159330951229528217990997118271384800174415852096809746843586126049134619851723244671150426153618506179143785233677595748096610196197530179982462514764181915471216694317893438779968991520055102504814034967656110015026096419001670992004556734671256861842453808857444275725176279634005667383045085395731414932718832728752584129726288373606600186024488532828872570537765527707054661921521280646732012998667083301505949637854024762711617210727770134933569691032455717841816050170581377711315560413513177723257593977249771041673138951374182041299038696694344847933678725393679662489625411627531014479006280176882503924180123298831604907165243832835156706362982358113834538657144401717215434099351763042031794604218257488694455104468024814784358761876387696633790797985837374323765344815421433327102349591879608906779692600116105394136190557321826805355361260193038195751496683100035599066931301717720706461604260330318929058202468805105545660938909553084350301276289516292757292470890145837674532305844483835589883587396609758592178488970565909341649174611173566839707683217493089569791802925436333987845206194568292054807499084417935472230804453796806390573799596941079742332783451376696987986119088609449097019422369658642625564613127419109610112122335786298056915923449152420912316712692144645470064645892298310503699259792220873763557026322066418228755497554145351933075170721834644232729872261790772438244059305664264807281421313955526208599288480041186036792520629466537995893042410954571500741842463809701950936575733965234493340037110711479967202284693766682034674990636545620170264643725233938131149506588104857766064364211579124215337521145126583354402207462630938161584111981245554582729419087872180418200664920611095365984123502594285967766771253578824850529622059021009553997138541886778545411765730491378012594507312696870461165718838840590394608541336630182322155932248132935138756144430815368215503575942177034463041131414982754133478872508148485361320921751818911028767285383449073531954838214776897210666312538697779220983837040345952710317203330004797862137452479813865700093845706914234055942111008654048446084988568372557564563663915091725834981494601731734598379022187638015675105637138327862461170609580683490105062605121214088879668885881473299657296499667099446893695115130125586383241751223595278342122175738081805634791993842824121768525702571089285652523497816749439055482039930912389406091402689955837158542328686808206748486131158655660930046756597829326702402103931046107883546071832712201748967825778232369017033074710495743728444746850620511882303506131197593242666491260006210290301302415703713768922356209171849459774536491121182598813541817809014879477270755753372694295224850544658688965466603071428341950806158558347313202403590047994177670550019604700046322032240193121068217108394041347658783697249160390961615599366471797321012458365459654130887799628550139476093376859296239846976774932355332286996190070301897670771459097243255575168771196586023714597491806747804457969812925876401461721678238194347988761009949232528429646108097570441490735941247751768952777810367177872611015128972832323088090685469026793285402236125127446985772443790550323683503257002594696750732500647750870346260990751642102879689739769824251447137223868758096626054328813981332090638616148317088714552455835926431202954358116014238511272267873455239602617442736097444783387055571263306147789168250974037614523395964394019395578437831899531070005718574742513443712229631433203852846817348669351105314839059005305470449516715529440869644452907455642596977539339507596295320620511322947478663825973504160519113021424420037782528326951512682471340066525207705893285319581085199874641940289060191844990244105983102891194751697413546741415133500843854267163847262415826640201211749497937459595349262489733872097398638228136637830971157494508865255414520300915937122245877399824555935847715317824565318520548523401408243618992907820933051717183651165107000622013408978002644688270681039728799604076839544531574782917632354928406290451187636957712944274269814267249436306234948327326097342180641372046950733281858447444947271101526197669195187897780761915669859419379794509632541018727287142437189872171713566423057776185038424255227495060955531145312910752292107738736634207826549606804401338220520460198341899158951817746712448737291902101740206238042988252849460947288309329332702582291993229281676530561755941696835612467802279987838839999108173216807403607722722073298598004579126251405374452701679764695358246886912667704973832617479840702943095175652074623083050263068330283607175206342098231337589788988979816945840261482108723784572923356317214897343325619583692370441468586378253326435919341709478115519056970952990371094091382740072444655546234786632194656103752884287896347179354108273702155619353079318751658055826298093406287571508434648805914642068360371099507446938070699781757541345626092980360508763082994067457407919538182326039237849068451736492979209241243002167173919188489253370070141819821965567187539013698732717882123676488746362605236141593425920913078991849381025263964846570316727894138666049756912747573678523653017182295135871969312958555510815246419277760959485237588378018840824091086524145181251650016456344819108303310770585251957989963309224317653248801840959200245399486992672873782256234142461142526735536320884209343197596447582469123811689382956414448775037919364200556469221267761345861323042089189046538511299053467942335632757505202125659467780104427311725578670705912610170995693577219203817703767388547795073108616911783548545261604516333520933807936118110394420496708615407526538360335606472958649889889566569070511177189845763788017195897644111228839940781657301483835978937718106255613356827875452334419337251510839741878172279612475450443691273307148782888307845729050096126767121008694984704180386208285562374421379579218472028779991980212245724885543516388284797758810656934551334929484018018125731872999678183410989073119521929639280103846092048241103106599000035690910310336763968408219587656135294482072060160097630162004777626534756718986904655272776476856460212263503900509670843692283395595128199480826058308297516347340867460949727357248771398722702944693630335807682569027627274148931438880617196347403230205894039421079320809752982955618119968654403442555811029128513135762394821222671805135131267657484286578925411062006707930953548929431917647645861115226243305538024813385195248806264395515969667277156571502170696101500771861164955397521207449581707568143365471069052380190702738404674347831545263812907818319282052247270709606774838703536102441118147043398804885125596309917093474513175533234461535010768719699785239367323748663005015631405916414501682522622912655667401233049394439252380237008920815113572406484057790950899416109546986775257501249473752317258017743018481880639626409078795616039005869513697500362111045405309443056262725737877860218471413773736525439269999041880090268078173155071987631677700379184736946334888757663610017662056999592314621267935126017696806169395350630322054712129720507444271124490535975709998322699075579952643682827080504411844435239725193596685860692525067191477700870491512442873473411273056282190430107075700323497989264944425187249842739682535664605490108411329640950344379834902134893985643770850821353024196156134051513393389484866694195104875396682361584514739642272723503055131997738306646099779513317416744291564047903310427376072514578227573558171032831208816374757571822232383688617781209586207330056332627991556610787273541547896962848601102997990216744245094742180104719754251864955495464819864200900788633243638986418291566254701937017855895061078199876327838628698053105549556797165898870663035116340218453077773815770212845806520237201037124282358872390566013567659577462100280194595597199783958497510180328827743273650611755276505644545829060067198465637391677013564997659423100854445325116132867017095734995589390297155566264871944698331037245762911363135540138611764897665395681105976805895328271952659104311129895649101139254242102992400702788194572179892845107279313897313858092839362023328267077979297217452629029805731448449618894112316257865221793358905828111004762819121992654257179159523260470854659392790959102975925748048450861533851217868952332391760303830388631080733277056360262901615733509149145310594930218767119850656032653676182040871860167626764687211421755657239000353704746046607820258439704304664935214174577829409869993187133859816306410140022442165783090884214218018971148546304130873355498209161385106427891061822940066304259455803949638938889158902639413781555638793125966840423030710724853535632348463737557449529515874668052156296761107466216398643241071283306624490115991649107067455810752722658603492381828436041152804501410165275483070237194473972438969733040757890331458589754234581269000273312689696024755998832356909891790239024616744331924457691113582100277824143256962225473730565400383131466220732265782952185235335523751339040877119237046424571153074111913074012602776960641173008688424588613663091759703606762453385329441427676436977242559043550733058831070098562700050236463949436731370170663702230513630666148817702851251933662241758926136653434254274549787037458218659369412656195523414981139741453014761536198238582482710509915281814230725550500237168955351074018480246918376750970552725828719117717433683120135998999612500982136644528898164689775193960985133077309156678128651348135750488047158691970682520080626784618533473520998301618686211852725972163800007365546938471290136010848661979427892404653120514976861457501966844776446425045998399953580705674073048371980304277647081339865629504193770069423287078801729420150776042478706338796648848225281977108636153469917083233044119606576948842655823709307305801769409130635022922072380875725738077151116387881471534698417940105095649109970393282775267451790490162732714416709983253138880153561154823605341196547755583985186085059603736485192672533761158655256998620626161045784594867513521771866928288394752833210052059914402466135765784568259672010958130747670964443477434960885702987800132956013403120548056893995841297229643415933711841972974336704409658140387211634152492904855436842334678477961966973699904513563632463270644109380983710338585893681415599035281669166146704137221525759370169418770960911541707877528422820128645683379926416977875657040848121830608733007918259178127185686500139170845562492185383503093748494598702217536902161455167846628917842408343330224706540801281506185968437003013183901724048630144621457565024584143452380363826676898486182529653154332919898365779006688407760238901255589086750886898506666723629075153030679666454010157087686052235945835449777189920521371859476184038455048034258075944590487118434645015799666753465367802985632915594971652703278992042617098700607413445278092909068489447794717764600544007731200102211954647991194374208882930174943784935578578717519228377761602527208418138315078127462435480357950204760619624869451833301391887984060251530144982019263299601619349804079640531566676542538475545199959246560063368089281496828371933005885922849233323287170689214832769303879585810235029558470988034241893750438603907297192296596093890963527168641369010890989925952928412226524311623423815354586955175294750159597132760225009910996720513723073020966994117341236127058200385419216017137124114839032544272988167866629900410127140767542409223291168137165604848959749662637694714439761881858688219820063876465434616166105254008361848671579785987387226607634327095583200230264816636944388040739657976130527200723394972718438055076655769029109830663612880626036562883555671792797299577709232761898501104071353573042129529495210194543808842781377226147294541660966488807711906852694986085063203193461324966716995157991564790878103236813383434492265496644700393436472945076399549237848657687251279143540056445908137760818689333274478303534456050849605521401761294828377600394119144427962586433599410814677674543328139398902809508093780296954799013997495777872186218085927163250402100142794089410768569811390907514945564894815781455253666730185319687476110570681696589201443308944304680593678320446165327764659154632434324122323640013350477085950275755120392697808985164537958520552390565799791427266988141280893323957712280737246614885971510751433931040361599751553049194854342296634189864241976600405036180416559851682208000487325536906945457764921339790946475411236836700019835219777739706492503525252413518322215086698499746367763623207402029723962359975465872460575964562269452089203288904029717814649796970802579833623613878393566944358197577924103978862601266978218137170884165147883981346863204717437747525296853186298100532357450266168793233628328928477698497941376006317194290787308112136958867108452420448180138181067705402691745153918848033793284186648248859492504028046133792990395327028391643457287999766375377907388748784262541212224985671184263342132975760956449445809123059039373019905655225937228550164593029818083308561734483504164277934598011594170357832576018745884081973040705583448057633340434260393258484779742386584629719193517190685548835189831262198350764600513658646915840648524019849350545256990613997512753375421837369282536625923172291949442997813842872468660246579948820637065683875943385945402990764969259823530957725582822899793022456554178369825470566729023690439327298502103622110625415060947921429593579416781784900443645393927485501426817926198185179243553287470703206024930011601104813241552511501605400381749948704235302518116416491762996970285518952576816509810049079793578695341568470829897184911041833151586181476633513151793587338401060134812574652750375637674794523209096941616483272526290833638607654598109638319735437801507331193324254918123602113829679813175839991073998412301542771149743901431004512319897603780917337259853304526432087842209878870632814101357193334109301302918435349579916796463920946114191626417181004453829023515986497544883648956688595717801488722359386566224975095148540124831127928624175110073113767146599034469635040202019651668202573270166213939332377529233693992965883637589103123068669153906109699475458721997357751724352794543647338997499615319859940544669323490066930415667909531106626207223574997499384489239806730557072016284441439003565366310615240300896100874992401667921402703779658841467944589193888871974181392699655099918256743965143513746047840935879987300003939078983730913894771490821654995384026988240652970252612107015101699257183819021260195257427551456421425405283268793944590448349624374672200607108167409582384693485257359295651762652192145107942345432210768052800402896321616073162956516599410548480738719885123596014253255104713664153969534654948653754787756334129949556505884710029339055661229218467979322709204695784741392839513780790996669274657819410489587059591778502425144850455172612119251273411569030712260331470405726355334878396051741827337708716027011545786731852515601851961714437329223626450504403126348781419646144691165790548961854574986571824722069029811836897669031639003194330314781894923014423550305396942102316865620503809860605848281180225397229982692376616014373482287774725698720067569940296582886374090942094430801620837699252370984330916756086068494833045978309125617853834922096248897497478498404741805451112709569357538303612175452149969710120425441046266980852249921044643826325149534740765145454418257576706617321006646653657407502835098506464549740575618751259748600965582229888818087262451547066227220298412608184500541070541942597745762244086801932386685752150968706492318433310816392422424918308184286391611771425844523288568937539976307492388931230898281377341267400790727070538472013698367281913332750737648986026165538884584065978769047566426286641279042653217535486733725437952472240670831230698930552190825226993541384249745855367316535667297332836386704087328411307670967839225427779188668271802180537353768169614903120662507286416119298843725829206421710679784632303929177533622073429359060572198826954347694632304970980844809121292321867879309698730993550780901883717258143759375401797270511439510966475004075962492634160965181596410746153304349666383806024526479114018651807954569583330540665886812994580877030802295119711003795803032738823586543842196053922979748048787466561233549135123983582582241209401037231225317227379243477191860663994387082956272862861132979577292414571084116693008680313193997605269644466774030225877978595258081702593205428646330821804257870925205571487892867483430912315569956776302690990817629682988531041454168372875120584536313049342844198716550523024546499771601615974842518336170572520545488955179659458420715089535179477153639305789643918334788098515520494594482186521145589128033468671624903752902139701924040259098901482186805539769286235149203537263157907948185100418521556249271318337042505336594156478070256487825463734429394843676188641400428342651907998495681368285339928006345591918759022803136781706397870791414940760316899297060093240792190582226110737578030756403137673730844331275534346556270924592845173499166759480494884070641799044101299695981181007065896531306232504586031638488119550051647838470401743107301094272516528053159199803261585993020922694573345608287024906316896675220307440615619923707378447678850439066108049682000569289399203774864925707001035049259322687457680590553693803072474142298008267344290274285376047597815339808084681472205204868931911615441351435351647039061437314343377272275486405304338630337179133146807176359880009337491388610683435059085489110823890501485455294275113315863273887847534314680694879139926824337163235445512629956073969356938880969601783411742431324416304976628750130718687752927417236727476260752712696836695384914710963930716234750295921640312832838336302631535182390983426701737343845457677867340727811460713885027243896941474765531246713140433617820970359368223545345745617981669596884861677346850690383279560218929505257489905536047667792794355043350548991211549938220254638368994686868643295795269814257343692656160217037173310486392844969783768569947087801071919544917804284459437788799094640614963187697825052930517735630394274039913509421669082926608374965398255122394267176942950874247958492890359139741366319235931216631093924512543179604788064644655171222303650440257059817234199574547219732052627062814110001493565895233766022843261328881586426404687754165596698453851950642283345151742956673035967393248528364696274733992791851170623423316635737564901858858688301501656035615060041026491169999611102584373990007343788470038121405423915642122003786156494967011030185729950987661171761193604197708643513927721958678785473460320789391093379441877524351269931073650577546235361336835472542724128658672036328408404583890667291658795445123050287917652836637439962428662592403979523291105658803546286478173953228123165518532109461741224640234543272157471759401682920457736893361008816956561861851756153727648349922908299605461760661663617588058268864959607495787386606532077599329883996911174756810298403929915031023909654481368355170481256178680262567848149032395442265591937415009726977568908450268496258202566156681772929012199136943343556831251923431748039132595067878028257524383406330556120437937354751813600229991298107542196519833702193929275537844395519101186696943555153569939236995926399393810685865100961220284841787472475082908010166781930342272958093311254346337602864328839319516845591381423115954325771276186425378443764849443608693452434520684880325767966866910445043688747689560097293808467298220205899371030909443797083747251147354849168712358002828635925671180497083905702052626656023520314210189181844631049104541509987972052660022632769860385684987369245656765186267951672704062283682668705506994489748359963271340823348666764261411774300912164532326950832679019788384810514556790776425393883222316830887854888968055728961009944581591844374773162006803693692032641665232268225330274549620112884397698393200120383906109185990691596687165840710731524142704360780565931474085637443580588053774962050103583831386195794805668927989858414994339130505500583518898726430120081715746962064231325980133491071067542731678248713172801951490543614767231925567668132545747114143572825797508370485199391789804286333148760195314391648235115992333360279897677892078328440820112435391384526861898567489186490114119140225551602779915143753113254766145720522530787929174122566826594687053176799632479475468085470896458663875534005810471071291896441012988832635220623274708344934696268495283198570134854296671280786242203165944331270935924805293884932949016397201067836459033315100107694687991088671885636620266142245506649000871012294024317623331138306224698495114826218534157556328713304700573777383305413549355017355036717799306159933420411665092182139117616494520720617408786185134040756794022168061460789619972851132877250919303445923575075835577991700219987853903699589094634653218794275387862910233253923219496377944433388661644691369246675211659935171925870581445258462633070371970516735430261516460290856216202415292066861751569135815872786423412111177929137017990712564582399350678651336431866562990238586056813267845926210823976823547620446323468817942279073148474278161376107248531210562842958491881153555708056987943592204913795238430662701387920245901155579268785639749530954738856199130273627732739230041962266442750838952507674499052749243805468383670756164244506217171698667832559053958989153083691531950688648870737321917052710833547202707504483709224624140629819004378124341757435021863299115766690958789826745437982729748493794060331764876043368976489391008521587496989562922171873748031966668205311054930626337747921939502755561218728554361026070876033959870063434957510799610684421069371631208733899434664285884679409805171270316719084680498264153420371028408898145213273191322084276844205625453372636850082462814657967956812411936705671166500385411786711798231533043693739619075102870460895112138803749069883899560748220214593530676846742795088006212108629267600152387640118255975149625565980824352916666827393440140559007558116916357670218502244520150359644091325107534022709480915431755275266978130375628058464979490446367489363948507235288078670540559569928841760124959330044516306045109579476996262508509546163410978565263466660639513081287044364254660452678088373999815933182232000994314471261167791431456260154412478698504847381371784695642398927959994161220182068073816003764978952718778275007341797622030380267917299045090879297746747460106193681575111915155090794082373823181120814178540524453270743091935460803341898271659717702936631657917524467268528075443857902796985789190635456614079508712242588532600209981286309367748780828019967847906089654347355062375327076787461417518935879299182242969227671947454754431323867959766879314560413481554401917539111074445301889393722204361925763974832074901046044454339615697706674991453427936298981820044456639092227372062671999796061251034622886587489241989207308020812816757440721350916305033788953386414635049512478619050521864017975625447546463200725216845935276317018437914846887056645370259332197159429324506364328717184169529133394280656393649041189328610052122467143784056821667780325736355805233352592279438883433462969972390675017235045341874380050953453861286537773938195437034833274985770477827011322077659934687961972244111751966700365452648936876396459464622784612433576634131344901616556574205568946565341814254559230783554237037058244492324993944448258099216927976733028492200516721457380033625053756290160486336883748065836837327325907188366551936688668105694349117955457455687109646605223292680570250636402976023857204462669858341584165792636940461050269637007444805055640358380763356682576098824321236731642027544418077121935296996685881528064049542219786351121320008994141161675201565082454589093743904004454023150063757451153751307490722266009054960513902890272550392081717609537854774216587817825972893867364048638857030155337691537908111030177319788022600917732878791784214709480087093289398500585246850852653162502518328375939156188863541914938009605048145120992700005601399366298796118734101466222503592203907143494118448954774659135763048454514754047085213149389683998283367601520994840243988622398974458664870667669198686593928849787151706626617507959272453550295330136321642654630423839384081163226384625067292652516114135773189773253635552707613472308359467037661300374437890379700202883257192214974420989568909179092824582650246467178513756121725908553092364923966200252006309085097184235925950700971167362812940628756161674570698779899438725052078435475320394456575643001871489387194160123600900249563478798219880296553473196945480119051413974278473007627260937148675276292146370147945592205142306500610001767785281896491694435072703843121052868373849087243102628444265826244200760702265334486198056238412821221160576490663816124367437196101448434504947061487098172015996387420826000394852615122240820411084692618329073444725086814814093245420691627547621981993956638461261324129963662524716801037455753334396118751193286141607358685962502756691728129548817551482102666319112892261115540951153136016153480082272956144884970685902317219501984716243909855860928067225962228853262033596816110630926949325693391321992549057474105994558447454313628742458026953755898357211387099354612029180752682749131248400825579590024844593516280712961285360002781028300774685306875964308798893935795864404000097332569780783546605336417815403447208730148917107805922746228731764680151938249814621950428010943827726571165533391019418906737549746691275771910397275003918495311863872362686053030788762151882059434363895963036192050278550618805574894459103050578720738824349151074206491313429457838738002748154122592696433292219912560521215027437322225896802467529161178240900894101140149421737063667739530446964944131039458750055398896784603087067583803852473652001721216270023814829368349563895477834989953284942908343556137155779222499351208054952862372543178148515439778185071484649215164475145770330023268150216931177473898193680296303259731215209276321380678080626783517156836921436728045029234299163478913117383683548608695468259977511400563647314804616243264879521277861240090495374197083486618329035209608854600549399044767366741853087071027655517236416740708325990539736445205444052172448230147611633562845698344180731035758782204685453179986295381429280537278279345332776547764354070802339121420082690109385713333132821782284042586204470785782748253688270923527411066050161183954892294612083652167875209193532106907978509121067656586920566480886224831730727258283068845530956021252395800608405653135792131657298347510981336315943149236222087201517935201467419137676358492049075865740464414426851062274516597726771751945874890403411977018532235457341805895714757611206324038857000519070010103070898357467952872734104251607200099564823734429558014509816848916181959399702927871152572985150545595526439646631352733102827732426816632044660931505890327128621693808454150899992779395195519743829534546288823257457381783547640749245982881769408169507399578995803471339433238194890759795009186777736681236575952245194266687463389621063767848235787925493068652696707914841467138321691191352849989257773152415065755685111566249317398777223284801524298624014663200900727448630902091767702055381776714951914885958688791669488885932188068993010886981955007812014297849101266546495411741940370731697644610975143166555797732308383407031933861652207461755788014997953528280921288265927537219970316656025929334390044625341915297856761299055446192036516010038315398500311440178947457106726651184658387122883033854274397278098780488780570881856046171305810525939376684079891103592513375691791497239315792095197699522276485766309409937465179303792582008486481027451337709491438572854202834510689715979888123832379440149519910188747135249892690011413382982411496297751178564456920766339468042283732459896479442450656776444983004773602308079035577837370693437131313496828246955965168929183126815159327097336208593233947360185731504269556438986554630293039481072086918531332472805550970916639539242662343068057961182895743690476710097736173146365704165629178611068000719281650142569397441944775381705759019870748011749248227694320125138552757783197443755814643129277595800787115255372263754510690155974302410293451736605030218786504168747613550760986052717054741812063768157421009982179499387361924887252283614197269843916023797881961362474062030211490408628756323800648712717603103762635791627811525508310817569621267084922557253677130427409699553114325225044792786712365596709132110568990911125156910000716600730200117564431845365991618221249249751412987786058130193619034455994948808745564048866011816624535771639706013860951961310331809228975673298935175994226864184503840659551665196510470260350823874785964363788758347332096814365551330107460994401062902186916284919216052177571151194240986854272449858676760810347114055179364125902539441386381818189481962931337499073634633289624513839313055331635329801847951924522911400617988833838878383548326424553880492028935869354095648592582460550682126877890224416820702649968181712885271529449773530305981483842179146472796732069373772980570469782498201804875990530674258892001809654135858141335183912177283202752164542765346381644032260231613694283564147092152023538077049346502531504239321584033003965658086710903132639258169149922780364373331829975510612904960351647736326775868360549524567786558352622458683354647016056517709107932768548940654518519247778169741833281070109902740018847114450607114367040014824031983986902511426022171865162417594496352587633695883804487968906745263201712677223003362559264871293104213187802332927403678013978187008124051995888636460376399405208350236734051975693781797272608073823635023443275847170331177776153881506689671205778490939244455659655707796000787668899629864529323105564889268708754239841291446425859001115578209316467813235922590228897253154106027137538377334854543003958228267876799921587639433011568665969407564497675524357002631469148377575842042718436363225880407679017356889737164176364487987131182723825312232067550483296380861035134708833116235069734353284871508564758130332796218763282328609027005040014290103896013762036052997395623849252570560323575634442190624898016140596741562000881747866895327888831355389747993086228505495257635690469285899819125179281771478957869323143490433042845930727071360259686779417629587547830704002280987458428422999687741787852155807032337948803714435716014945328854748583657873469546231660647822826497297624147067843407212118527547557994522551396787396267218111395219201352226785997559237185468665476570755323810539055389614036642438969656180230882296378517900609014142516038968282559284294515389302172892290239513172029118024625413258703520129824480472334659697226052394995982428711767126519543534095892281339928340911606726414372651110173326566167878884274306462166314267655644312679847876725127108877427129300873482887854955417125901497982480005654159741651733305018120693522179905967120987551389963352923206383849825357173379535700661808358476520409378702729542732058175765746981729964821862152927452362894750768699768176992582080469260235543504589265023708853878783161242633539057542053676156817776431977556409956940697147130108149629027548412173929220678364952825624882194320548978090285998162091672813660068837818162974791045557983022204202638566656437517896037521955104298134820071868114059863626892769564624472442237332978279843212083358434380962024138018680273044155765963955511683722190022288746255126997146350853935723119596151351353340773831845405437980823212731221733050421844962954086474387409026879245998374433110357550690016539633912679630374465443517957697433702086699713476794060615766397697431316604348181208663949702104999523478937525146076591287721052976904359834790720265293709941040572394534748003061230289389620022038441525595168942250195470659230494642573980384679228646465370544827951918879602110006532941727618464258732080190711948613221885701249453522813592100503850440739048961945300389515175860792382502663864911472133680147471798310224617340437934245017195368027763894439476082968983606412931588871004998982916107506746832339654208496142273349899422194266216890223795052815397888650890336647631446981614034802956542788977427916744918895017166591156143606270536078250883045822645773327102118416678865493649746154125840213976568500862819002785338611209313800819582740212506636055944145728565954586700336779889342478278050256451715504447214137966767387712550383841539596259587518412654483467901743100588768796267678135927656392987616682147100192943897848102856554758747291963261677971663117627995235638806136938534339267741913096154194644436501199807017159303044056129538180766799583282788479559930449979071583406254453415580443917305588460172562625174618817040659687167899985464394846911864167253010618810424249577384014522356476450433575740994671852424286508968333990727642064279701433629091898245540903860247482236520052901749818151063628387001512823938636312197936679288228326984004276384576542801141967405598379998348098437188684792729115550119574503512787417116951177442289726021195064099605963400077760964377432549435986518703342558220621413763842834625521138097749355273775217715232927811849954111876226854855205218948626325005005268246955032999303095325912090856961195337995562001122465249802941324197735240681080717733315797347152170864445657392185580692120865350096730865424743035832425667192048188036683789553715214745771423996223159944131799195628918921996090326880827165243129536820144977428954057007476463046461932762113344788023914859255921438448320081867384709121161679314424781446203207549874910812628478060703413485573011972884616285273328113830341623649464710218391578393827008678311937211797541521000960065799955995673315407637747677659483534666679255991319465829220702001728757311392033228954238020612737178136697391084030015548244609980442918170944593116392102098178858594141436082518116160508486654821242382486964604882103786655288220288179969849090645814365093488747909997572539727458885156680041505675970161776767469989566951904061318652963953440459397438850300935270867420807376881885846827915353669750217073731895914240945454471207598270685326871458855630350857804364917316562729217542176758693846853832189360949662699014854366037309192856809267184105103178167399629943765095434400952892877414657219527229463376008445875287064675981879754854619108148006730256492003974585731211176144862554270349420401227648029487753826066164133202755701001036150473196131545865709718488991312986332796626986435041094482325287242129611065275857162755146834888400919373664820779463486069600042528076944139974089024461717075951962117808187027616697445622351808624657483082556857294991295716999557382907613816519209649871158362678313877466415115390504660299639529862512838775733894885798652647469655156721720810653678070158513068698049461498795540294117412009118094313640481229360453298442944489308237654019187884629005600212261662722235194920190086453711385684331218630604292719462735866903865951407723527985437053040996994177220722903979618021982677455001659017777363479773112837280101337280189025193197380431725190780647576375491269205446427015838762374442057550680119774985787289426801572667040738821006085527725484435521027105174322799893279277043900869776811941164310037387978256891774428937731569177638485197378978093721911752461041489198763439001420087857647730588224164956869841342160730113222873116059462706118699398040846558510262549198743989664123324892105020530582030979566182944662726021168944727890936566315878428612766185971426548763156889212473480454977590859449172670363145395198481547851267100857110388813791904808976813236835864105259877847903249922325748658044554457303427079056383687955966061507641539496211140845283949339990029563380484317279791868209074335284891475472793725034247004636684754988253689944950533233061781697611741207909402813767122640299767809119516264935278509736707341412283276595556886707193048625247526209126019649806991317066176639307412368015913698449609697134006348984142844662099010773831400191446851949145936466362527416490817408378904768528988206170680859060163227671418273230530487294612820521478315127622385388882773153960115875354894630550543699556387650185519109094376428770107252611436420176611380651069885360766162502590837088028961449538657253848037916125412970106230992006644950433422258701261351216406024872792677578915872690608404548749774692976609447516253295500405171457133998824555358447948595653091995561174968204634032602557030293068545972452231487801001755943916975140628523723452223430116708601542588314611275506117850152823917241690941072722111251605853731752085213511564621217431644863210305190250372497330432651913125943544548447921934370452686817716129317499271697338862407271169123529438065495139876311663952487301208752439855398904364866126926154160894263415693136424775057503028308789572550513195789383263494714134988153341699399141275332331381567794160536713630896279182360924211842052908478952269539200026137261683371727901280900518321948805986627134035203971478335765459939093524695509925373678162642256955432548182188589268361198028606156794242977496839557696111136202117664904334981652213197393586268333595378876453568424880558252175076881847586497250783278689521900584212307587330063960431847401442271104476176051029900063726210828068036281486069191777368872283835722795927887789739797103261560435056288544790378284630412464748645340594173805983446461296892544411075875669560294158867194237769772974582499714784259532707700627125242124012065861724713475939127481967123363355285184467598537578515484814054714996779004729668961259430497239380481807694370762829857981635781180463995189495994940894063795102845143153843741121559107658254823926559306547094181129926328538770652390882300262304778405587065759455782198873009998027869350141257076050393852743016120311584500834976865345162348544865479763814985878242933303187508934711504287346397711784213679743767561029244581792380195512698615612955844554387361668108030887546573706479104830339022213167278542476231793657116494422359118055364093249544931178873864167054990170609533564266622951479744969726221867516646987383437973201288755719794155396961604488096115298936055803401548178076003838119624645770473016752110345424124058193514907416317465277392343615324007119831364059178858562702466406692496927895141483257351117294181752854441298352575575691091904460955535656564719413210276665568391182872263115353070794331654877527569686285470233547654898034198560042541123126380764855740031357604619181456124865693203597146349241684652579678894300811032806172444036948362637111794165018591018892347207514420315898793654544825752019981082691172494918572188751873616548199186720594154179012535781035730296334576006098968025391455888648516551762424541236348045496705506636746182499671674184512298144057215777976375596687007508725978288504439969685796285983947673700367603866935360197200924537221195278571295735058901376795358660509555737350362576160973043483961775333448078039997004627698956784514093785655684813173171173662623855483218714931783016255681641384754621372459595042645251833125811245221803673318709505749527803088401810780523945106489557994121762443890001415887614254555805120192772067642585320254734495843782708025041961707774712840189480895136480516879061861309071181273633829548832442025644424423554743911969789727544984238786286658695317652770647499472192041365166344505265002650416950607472149539418403201638336388966387049806229821185779227196424550457490788574187200974420202120375504875539196670720251508257935318156295606773070039521707023542747864582690221622831628048494639926896571336535954878610584781463816077359436218709338896898362204320020716183057815258111866574313731025080974191696405421672207378672163992172354219910542243536762670310317610058666838410493299613800739385402398427861284890382347282004180607149450302745768674880266701699710717698137880924532916294037246193057562883725174358982589399892466625721128692245097574176436087716495539849080657366116159444866740817813470211942474361299026772079842042384201643397099273372286757981086807393620018349310310152786061802380088527008191547833937851052259459427053946797510501061947311117004960652071785693635605579700884643979858041743814973787711098355457828546274864965262911510810943897898158466415378824708385626720247774484367201476861645239368861015653025878398312248516798589470848436795789411753550088387935291687974161367078070797656171677143793997034711952965972364748772194531640820566478352344143085487996692949248680207553379507674740444048797634854706089940618679995063985904778759358226324332892227012649792454659726762198369151303326838171790708557600839146825666456547622175267746916375402916712055054302595444606958958593448088097597768935844618639160823861881514111656154488281359906793691024856481367638867039138165033810877462014158193721746565398776211163662091411659224779013422331051426109934516452198857842703051303212113755563273827143976581813474901138471539557802247918543196366518615952304544879436469354987755773689439406331555706606420832928345285801142360462900855275989988007754867274144468720163242702664839743206483489633241070803648304308985129843115790032670656542836253017111378100397844952978707536630086936713758206681204136212800236458496344178246465571094521262054744339472241436608091329609249045500584752134122513315599347656264641690950476237697214314254966841956354161758837601717112977588570791653885506724145781144772067792527890219314883993660848202351519755071652928170153264591729755813862948853776587250285858491157903944101435295864505104777610389601165682343367842760518487323245011927770956214135973321106418127009423185981917074849209221343825867787516828989431873746330943120554803886819548823900294403953024079545939124861473785078349176584887615883506847391796210545920603051333882308356096436535264020624683673093551060295882549620394869197895650974536636590712454243961388657136367493104247494967625521119867684478651612212747426849506667954843612205168813071106858079692636026322076117631333631075176262353975046219172482643277013200170919254116324600282435275858334287374923589740887998195057926211425692204244622720541553391226415678949510309585091119043353937949666632545508332765404870664606420885478011199255212533292789590205546035373706329738240843805369623366635277545130535749046040149775729567906827864622102239332573586580749167349510694295985424484082188043669513457797748561398430122944178899746810285640908790618770760754835624812617481936037354086684555698859070881703048579492713605291345842884764524521091639447177845034653383929704959260665413887164337684527193247905017065870807433798214462015633169651456746180498210406507873686597540642944768404907189379666149727065211138437867354362991311230654868639235294979199362917660599067105432655550143756919048671926088925664358559855969187510930627665486641389061792077397475723554297311870275723106104203628047859330369665213436752690853437513190627542649977258003742672888907582209632961458679322234607366050427759348198723550512704535767662676422851493293638103962302173244843121593010023345115137334278565066061366733846875871505825236592364909698964589878536934239818919268502510406908274167963939834435681049465755393204245852869752762906977964065441812133604132016490608967067675271425821391154065248452884483206795944956729798899470728640809450234876400645078438613159637348487919119971994639233753337910797729288641469463388615641276609362524514804732507740143334355934998913609044933835812777171773111316768024131604085886867663736365365798464720641818986628778953703439590255785989810095701479151332571338796919665525801029488518215870300558676283262177014795733820797379674335248388425947993464685939295387122263625481340382145375715310689437388203540013966099203579786775651691948639830846412075757999559282669574180290986692552884560392519904837560511773845880845877204145928413927213188367458933490389359327250422357909814506836547717948740028409276292483381506851599217769246351802732314663726554814902214807863185375467416480910178472133714956352969694534345665283730478934542295911929876974130957959341846143779501261379103955102945190533524000529182885426130681317876169459501318246500379573409079844354725656183282441925758503539786457182405071307263150283048920930115154915693424580539775448944062923060710606450601953331033128933617882906632497460569560461264053495488642694447598727647417314313634740022084969742366340779078576362279405338149286313503876080069204132815359157989573344853314294974808315117964486035399658560924813085896332458678055915131050690489254733939136292957568425470723526899118235881797548844203135699467965516248697705817810159384614523988301872928268797296467831473155096835165081701543336837668757710043058666544823623373738178214249534074539057299355851860237229544272803948923025489504716608217679115379142014739860282973231618631444107431434356491843760163507479766941852454167278070130556073533016038244708842226328854382967654895805969048869783321892251697450321090975578238298238237387976766995693020352875936715982226815069312079670008538447213038308648004620680899813347988670662619246677222186903195822513866400641521662243699950029444244580242344302726410198003153042354143566508788210410792560185693211615327555373024339657095565463317506668271649353300280328727928570791364553246937557352251877564292323886177893927724109871760480452589114876636370791409732860903222584458814487536021906842691295774210317980638272601983115353686056317688324176630571784064034450288948849516088061400148682597309758946890301870736670852959647540039909239287534142488910135975567320931635877201546103836178743761554577046088228812388622941555712800140988135445771480627605347559808924417342256823361553750130969434056269411456492302102483856024083829583820029351317282664876780127123082331938089646976901018886023669314138951042821220161621858915036013380138908475304607397812663870104168071960396847301114862713419451133424573949634922255624713445667610014169768363585232230559418856590191642667612822566560155866408957255563150343038006783399068700285595826142058460569624225419659273927274208485286741572476339612214308811628271359434300539158872949012959411029424892571425132442279791653516961390755497706415443178926681157836465321935301683853281187192494625612769114534723767270235063250643666740386093506512574482577564932123593601485268910540041053006772953510613647890875419570924808671805021885568447661435073307532087682622998013248883688210701592524589119331521907429697720082602641938100545164948946495912703358903100476812154036673645075747616559037362049699223188300930308681496003906288017505141414526668295582111261015128302875093448185162149995151493458887873557197399426274506198776796392269822983344003789842021463904500322465930747440826951003256441646677733620036574633870894894741732682268719186944051248623353206743811503959480669831783482339820133768240225250156104156517194714778354786574791533296785895947929501299493988922384429900080883364620187598517481269811966023825755720917075290560369440606442649614419027522328981228995001753920669392386855940313549431249446740176856581317280294139397340670913148868559692142825321295864528791922312521628825663876054389467877111362770916293306748799747186731365966862243293153614301114752007617292688172426292061631808945369854767923491248094844048227470128076211596331870593008250610187689393406429911003475873901881599974139443360474263764859183119830474408921043491063182047743389546961347655740011210567344191624859575205837484019628397641978408305685292379611410355610213904447108357622722223291889228430987262396327274145409498661275858991072528195033681698030092615858148442145287400622053931581241340695156540758386563248755736946233392345739195525665712715020545562223821141172946289716895687650507491812182286185751946141866439152315613995570531573135838537549076668579040545259371573456633066309860290655538026163144821777375625570763777872071403202871791371339198255859879513498280876037115087591103093982374907139167548081017299315580926100962648658846020010138697007574596981664687003036699673506827556453497051617293265093183370870934494216142953607806483958517650489911434436700424823973825179016421579850331023037020748994091806143021825868800089370104982556831520185538128148959868510742897230710005627796148310612036825611563883922887003159870949125836691942106622893610886583505491482161483085408312545358680280426246019116797619427359759611786729336414742931317043948714341643529320925937063416489173594178783524170355494887764669544213023825021044086413628612877415169932778812644299932570306150962378242492453625623496757049509536989289438585387973670415681422162605928305890398250088763478439001433407465951916204011213461802721289038553384496485631125645671022059997661949610431499883578274678309206745098811726778270756071004116240153172479778470143178817251359532570873985888033231980099511668775312530638305432324980854664889608057164322483520006838491618992946661216943708272080754295060037866131300714699237065545529671123806914031897761588068800185477074439948011618646753079654404892941867092879782683274978567052688111260564613973343892251739649279199512382893281865924031974022060526162208126891009906519680698614734002938008639825851828335226111623453259693717093734568975267867821979249250637388900348221927797701017489408011101150330569176128988646631803096332658386135526285145277727225860802912130820499990703342865248469736959886691381474830949360150828353424607438507454232435754899735813659040815982377155341845662916316120305247673638409613163506170527608415720970772757100595040791639894421232869635597561276280405905430976535451283178083191494374044371694431139096992377525065048032561818558648265204220660928708448441675724289811993488493111617786164265840353679491628537037969218788330572262491978226625160610837223453176152595142705842680498089363498520494150300782733310866273443236421842230570056228513555303799688840766731750652036584130001227453728085404068926647304835214791215272929531419890008808192654136973022034955007622644992309670261274092440948398070257881602293891907501981348070348013010308957576745090083289546844971750026471296525069138810903795054475343549044349497062060031548738080095353051283362780586514213738729284743374811691552194698341159070740475926481541028365483985547733602412092105471800598378999637492036373739281893897536871562354027508546870065585316432254103714815004425332752397973456030298676802325006014761919781719661070889707537512054005463504565442643279953804074794940467356809247316376256251705890501144064444850311824445570542271229694324619547309955266648349476987205589982393905578360368024889692543769720182473847943343161507075132985773416947884515696957371221458971271785792823412258537113081120908740309527860875469606104047678040829862071851679558941925022738978624046507985395454843630776649662523629182721282093865175709567709635939011844873288057074957765952162295295451402123053641528156806525332927541767484482088027286628245269909993924585632359011496004472227485376743019530716944403850348855463192332456765846340349357860791176068773879897597960875857779361002330925276671516395616216836962667300633138994854481446789770191543637851459849411890686004108179374530625060789218610685851311039936550042258680309285208213989755355141554905044240403041731033510706110283747655415578123683646118291769406694142876713233510871628910033584887700921388043882835617801572819441460328193334780291348799082371681217323843930525850325446426614270594380235921633395598798796823025457045874896071002603301145180950666288278484601710941876417795956289845480287493126020386808063620174683224685222534992796225616517654118960872708626262842160057184690611491408817192752586224112242689152931118112494721469019129837134653861233671712508676242442468472461563414301718677745583359538223113815195731794281922041515145284385316944514003071011746940590375148858465706464994852338042942097229824201744850401106843116152077004987643406831882038675907473088148499863932131510969616311570009518683713068500945128030260350070457283539258225099006945098321266373669370265350045770709115308728618305882655884095590505696348419219492539886956477139328209201140814649234968441079488096192021114145166609280690687426414312798696058571088390233306605630670076477670882266064068345194525645273166240758383441183141742059035444269691728901673266565532288578135639889850638673335134022335124457360331048589822114200087625195783124079174349929659694397669405302171936567195978455237963109391617946508215136943500206849268117266779452935340874206661454181167477934286149922927513950717375035709830315003806363596604920975174202499771322326849686513043221814717169371611812301524994001708885535360271081039462901449698683679919786230649738458996325321505855395069383126553589795630778042668960865652048381038834232159892470697762338037500485166853960135473751614245201497133731093238695880848832985871641119489404055939173405520721937313834569346768789576760833217843395611520269574490878864081020901765484509855397813643393302195058503645167071473028442642582798301555054918992921214766675455653894375473112955631169296426115787180053037351871394831027102267951366314545746757836910353450846584307770731743537792485929070446364426915245288875125541055954839803787006576001115812549965206547725949730124833457036428630716042060253016741431012685912668307386248318090378148855197036951441126366553954537418435256883065150775056949149913154509925028853334533476669309393286904788752439155542066493145547505382969749215215173682766848492142788188541840661336277579181654473055410532907123133076929568415418155776893125882419473268124716305715676058855053268024790005271113355843581391870675131123346249826290601623205728688592781557780087072389040629372512495681257953385490028498053205428049868445747749542862344406967326029203191071883365269110812358557620477228582295293176290082392977772154450064518615964894803111467877754757029948729989043330094054289117649428053506943580954306703348592364521748712830069280166418770035123170164479156643804270020188622871021588320006650377592720678411576058041266947415039071342546384899794536562303617674852325455443728429393670256518781260738216068874261489933282655677595116159219813556621103423918877258514692449033035227918228557366322670333969012845112033125086739150343074303231930331900008439557289075582526938422121612073203185763365355421180043371644791002166330070662128894305810918722702864484806708539994088704217731773041700244838152514872478359513665821854748560476047589115088278416007545660982504350410128818306444140371799846370140352776571336214534583430270505129467825813902676630848562687149103081014953138364073563419876459617597286184113504032172337112470829708973376084579950858776527568345287352100216097362817079879370096870490807555301118879416095299588364223933836898776103868123061217795614375942783912364453344985814845385776577736135352172920337010165254822667494086439180711698946923040058839285069271756395139969294706338923015970391542690823914907860054516744136236870551467884383260481287367319925056758481668633023350989677143508988837436446692870767148846771331752769767750510665107707090238163243343785710341151338487613810337781274918410982970348742440207949757596035616793863382534207010506863149219111058464131489285111406058297447045459705870247223008822513796733085786962537771033073855057693223672178171768746388506623873479328401903316122690822685959403339826839585472323403191196691651948260126516375937237195858522799555026822330418665973583885864733805942857675557428149590222221128897545750396566744455691737589721405049172306668502609462937407557869057939777629313557324064957072133539209504189372344710667984638732058123778234875580047767648064228080611609025160029938828824794411439451077106107387877979950319059504635284996391419552169072151318643731315738701145040850467980609859251827822912450184695576274049522118296016415307888174284569545981729676699982011203728140597002847504377772912352662947096272431935408957007982784219570562485701680975188233684108683314783136326352759261437632305648567569053524246971592318721658427201898389710378684936906917518572183905230910473712094788838679896236894592709089814630775300139775131611384078215843327493874321247065159911595953857309052647842102578500737696317106665571080455855741083782968306044600431593647094679586690774265321595176627026990538213941261381903412404867088850575170033324947281204687990790750571961013792242693137937889035880921284132562334397583056963470001410207661265414806949943849393322212130273248099003292034894008437832432956536933138962087148400762112476617325992055575705094161781926602671717821190481452758445323168055566063464100834144846647594286745861683609104218518723875347449481765809968228062623145646654734730848534270954696227150746137260800135985354170931201531046469615363672181202298522218915641958946721960860020569151763522100705157471430058347455714667678703648133210870867630288748072097452411686102586824291144857767671220361436420350797152117269586043723613130919781058423827559336436605858250306471849552603765314016611964606775088932260858632083848050783743898124222301562442873583084704524061315378819074145062347642722997820025596572564629114669872072733343207734915708607879558812103044543677289701295474380274527166033892696262761006173634315565997370046128554151792817815871098771088103166128659423649697529702047578082752052729454522154641649996850858302702740043327507523247779350382687568559570821594692072259669816182214965422783681413490600038188928283812315766346413252897976621637174776051520931984019160222530828446941268618692262556882514896197745096998351935382715523512240068781131294782989334681508340650420502624796408110844659688624444974631780015718092021405686488897488676278873245654979283171017686174333163097454250440981076270544772402851722111005388548572775511701773001062846260130232726531830304975391363738226317076034102284762257757480411691085528787167331518355312665996589483259198603812238847368088475695356873227067405736018982877910079345180492664463635793000654901472362362235304294702838536156836389325296036362922286078521629402913067739906871496981359436671335514135785692824593573390253438490280927049421719109930960318155849929813942702026082838912600517024903868136516960607199427986117960114344224274487073915043337579328040823432442672399388507683344582384009005331753007103319775184263491674414680275429664050696701174323577716286500656001891125707491859025935705435991520586596973722338717389796493280660966687804909374062622985837462932168511057741816185136886556811726675862838606216180086076002833102137338152804080036253179571713268669272202125917285467850936872658536586582133443673301937492050385927216203367000675389401408368886318446926879268697260168576224658174561852266383605136639937082649647657506926821163062121833915186176011956000736213673987933956508074380463028033945242262145403215638551598198701952695417054249312903476010515506619445089996313627029344830056469685346292350155338440300307463325058245389247613413593345220667038243273595245514480184506365568480006093031114748015434881433388746465518518234873580286138875111698193128989934299948424334087483292646053761988750386663671669505915280122344934535248668124570578620789557429794474746328854826843533923475210655232992890179131726702812865921968195646178747224529548560706079661402384791309450051508344162344366511039839144957570004936502280646415339874785137206713536022854215138452882315924237026973339692807886425607297437356489314938552161978777453648171951756421649591946086375503236279981583341158190024206081026922492406619429964112416757997401268475110747207056057006149323762045933811666158139916568636245893668984844291921671458537972272185626642243423926828809326216488495437148164432401513225875771926633764220000696349585172474432607456050861068128615873780733117886729645623236031921232851347833809448293166082693316056486714152532410518356495728445292876574922406826764282521899077515366843809356091771654126850478737144296037783002933351792927216540188728432283598918733332954430873541590132745511023199827837225082083666545512520253534932642542747346139512837027012192648447445368112379878111214070117552650713417053617850297422435699844666875297190698237603393477745257042873890049467091030326817929006492166121256859171588698624534578545026831654941731304971346631687313692738157823868244661713971607804940085380015286121861605407822361601402929984268650676730438255842453386114569980988742540499710585880222282109369396073328890617934276007238436477855371101492808973947199078588973781456004432125919009797891762714516693279988875459294173786539739553333392799824544320108484525441210314089860346821294030273640779093903444009845319392127036261527203586454756163165752027990087436470135607119554559467951959374640776056698278043821097345222893543918825203311170206326939550815372489977467693113669908334520887828866350535603525189139082650303210010781089615351556534110005179068733379817703925761517816653048264855070874929564462880320891331793460304731753846064697403065647617635391060347479529286233201120265282916530030690534308929143972637804797266240524974642519294709560133899419202668257319299550664531527606532806562124274001910145318430760774136688255742859644356107004568399596293148788611280385004612065089638083553326727580626602951589535649888040618718019075927760495735268619946242912433106866581605716131987427128439168986260072891874533774348406101084295849013162734786817948460950857152943288836241975870021883066509245912713668854784138674864772123248008319958724996364337924102499755457595525360293033577586513587778158755256230074994761993808319592198067399360681305735134809812094886750448599105854927235609401655813149882937831923482961055941662780272182443599930093830625209806769227977555393173798346512069975159807784495477829266536613810560910859303665894294866833576864317028426066579820065251068606169985950410646746670999240875331375445419613148686739339800847125178913084947814366644326697058125843968329987395278986335254812751980739247164639194988573258576552323129547295007325478672701708481316534998183828980885566467594897765459116230712211542511245046646461261843749081704945153241845916325114578050048765998427513529046430330260721692188898337116274827365710503200492869736974257197544127067793993247860428593318211879505056788925919928809368045443048174011750628332219521743761337608042328711041288736843466684921311187750739368840700990271200496980011364744019615027413759093589751174567028305220992636709222192507940516459866486868350526496653961185146570132039165566600653365356232343958592632497791319833647861986309390243727394870499228352984390205337379945590588714546862871548248532860819962330200635103588934821089694059275712948232775630807295278125110167449938506343350299282162830305086699742908391547910637571455191536869236073883295407990930058892131237111227555646411717344467203892876430235591605058483013835114521124915741874477339448867619020845744734020176552539912811302778587607151833741538060564072898305704109009888733101866985943522699321362645727124837676846133163443426658712744656395928971468457845227697938810345629726014692436158785820571757999072310304526762963169749140017616514905400356664066420083974528597125929832591075209471438781560859629119203980409281161032597735887406302293409747439489629612578659849032683139603040025855826956122933617669858079114154188047043155547886574910527447579639398178090769628608612863497925769343787141244875092950484713854251522325190759842878342066033888670537071034699856157053039536152133847895558453479380754990771460775872220680407330934554962997404465419539161123940532319004683730078295308155018070576823696247597680880868640531302604448711539614902158151860813226072943756120911463008336188382328003088538204020788025170664888226300768302340436823492055938659942046971217841392826055343497901387719016645683221555401118472053699063631341194496781336245501659358535337835488819952227472921621068752101979545786660189389868383223666615587334077189161582350954272343221803714276516895315435880079129575348567823441897532061536910296866212603602092211096626321809649607679040955733254890472732021183431724189616834994965262765016907034544996259081967412958070004715547463875306992509012676767197055521924999383007813329149517592865515205651181634722036240117165281852400669614416634512645523038298528201883225157438480191976146217902686424081737441371794632244184210015250201724667453587832140579758766879545204323477541621889037105311344718125259554142363106486958962214707895552932725598944529124111016950894444352304927553928330772225366386144885920178460904195512775379273874848007747042185884955036075247226995624798376579999889044615143193557485181567450494055093616475604424621493680229897208530844077991283069504347784108403902605314697132741488397192179923565465583953519609496199107950428774558391141505406575849084442217343636943310112049542084912250777831877624114943787638223813996141819256550387567652681156742215001629408030235502500097793776479823908041769089708163468331144200253200830955367330711666234367287831210256450719106057628636662715455635629578169780817584524088406997343893822538854232218600385835677257801267678710916854504389469948133715295519855578167535858176669612933950135716477492320692938501729379051635085691864247836114495172376859151760337524053273758572737409424728096009702163694087509624132337503943379400628227194351562273489412335832085876604095162121200194599387959507728271068552294732008961978531440218885895600181006045419435148646588836209955175426901345417360884078454955684447475065322818063030237204411789564442509853832857203345570416592755368115400461374865235719987517804236164494953634125791234947786738438737507117910861426346612204325389636991986108762848380485175611459086443386358563455029600507653749724237147039648579465713117597258999222853408356142946160363913451013631568370584319067376642196871723717037835575395077156366018190856797331662242286639096712382223048671245187906901970723452672281977136716850883976083072392817029670513310425641640097976117012993904530374747294577974317319124461273299378092844947647618711541958937356758701885332990770791951360872033541620051294168097656079838943523827460672706928251717279669987762662897675911899759607703952033238261942648339390327741573193515315077597904973831639497053095577761255668972490808205441104292724252373979121595218534714873965992663308926530584780843400048710407107712495962679354529312562426809811791343843833460586763717599576826889480487036834399077888284235477275281973269614366905369701452125492907087375398521765872890898962285513777678972250919619422957641185989890787969081220561409392601701956247074566981942938312792651510072339301547783861074768121617148288644797328014218739339036013626131475354105235344749596119175218728492706913002000854453082376656762851484365644149473065612817503092540690247633427467753485823371274155030537409963608349421380321507889541368284467222510367495861385984670131133984179339959022196171701052826861646556645521592302623395082647945266621922202917541375833656224370082546262143420014751358165043023420285194682415388023670625542481685789198148964076980982259482816272349425858380085739389228238812653819730920606789507509719227501910152645216705825687884395852790985231918660060110457997858278485372370553416468002053642180694475539963748512808999067173503118641080957452997165393554697755862784758159061048634945310627320328613291644843240547109436678293050618374965830861811600668018593007416466364659136918602118428604315674899874012272365597604776739644548104654165122565389248561307331911551240330286858232373046939634457108960635989564939679376220864085305004690655995317821185745829652702524388035424158660602748095012444301292996520220144238501178522700027521741037840547044205897276324208104258126456945881422162103907359627430900521584852836772065627609839173152398514023830122247735173791613370279028901548955886188797653371273599231549167361723372862092408599603340924940785590363486167476316694965608247582881065685954852826253239692918364835911948584622790733453393493587201447068811970190243039219943374028452897257798409026130984252530910964269404949146784712399714841852120333481324105788338562631166489591105341808971667007947135300014348734722507827036687954242831360608672204349748503229311455037462012797894012962661571986942123987181361967494397622746399723289464594739861438531762330525788599180738274457368139139516363573650465617586364836362236451006487872781885007430417819333980616365750553934043599718347017076825355687156019517522665086242214489721753238112251594109567018988323658830526501294021491144180994974023653808568885867182776366317238199312730687842699436222548887440664649526380461856249842339919464866691410450022020704928934463948419924544370235824186494188269638929596998024106818919587153754533509376226241081777645973163331330968359923978117396772301890055307958186525300889136767174935642713614191289674721344297009345214419152938084464492907703802254828219138070163667436198868820046487744754192993686784412887553514174007853224220000814960113484543419688866648341569503649422666628683222053419655433893512956772717223144157457582109060437430511871994521590183659526928935624737092793792778925723518593539971388452585300780597685642633762301011179465063914168665076971739012541797681368264577270589066221852795351543074020710605359424671347687012185229064263577271556744331705775643302473258403155679859884935164737364060490917674710766969408848746351325616319181171819664854349733081740498502252342377134865205240790971144541132594202728640926752422464053402985161236736213513914567012864552922165009507488853299651630472544616860810785297374613286092462615415593102358627024868587262867173198589657438638790923206416976341130575155155013577011715041771883510043067307647277198419359750149219622719090570114821292422501920407692554347718418188188879427670239254221904097975164506254748134837356680798076986968637198189603272456760793348339721311414566313972840612892172566463883063256609630286824141337434424514241167229634594196719136646364446162599282835433573215064130019616771977480042602897684662126568828145971602572890661018187280865481610472927607024012895709482557165750116994035212226248958308524447225129051315298642776889426525504890156573223579544467307035551395329572864277433882919870837134526559033593520520001720027039441159062010468916584610966535433998623476643277470897421123375081844570181827572324361875171272202220043032030398315603116766756121959921748929543450945679914256262095144958633156856280476240053156111699748416579385923644821979847788666498606216478005275620028616048026267194685025618766724727591776654966115700108252857071590036326262029375416714251405122121426232019974590566289898360364342055866175734598689482762804099012473114135502726470663675511834791008454886187433378361276988958956040743113207341076107698553093657730466803165942739751237541714822845003791630458976365599352364148664719010180549370001588008263761175494618577857628786008176469903953003411267918002371120221978571449385607625185883539707091000177249204377449992261793054032647421172399488892754700573541637367505469330824200726970295635429932249034645461654419616124848075258633916261268450075071204220773281700982044857110213112716001146524708531150735560131460081030144246838586189664978411397862976033878523429320915487970747337146310718360251804049754744430163891921702038079748714448307686734667582189803189350395457010646952978731401243150198133333826792422692146495825287702354207837790863552120332117022603822250873535833611221441423575824486033872688010828807059917467529259718387440393800610961865920268372189145862169405950519424733517109274887580698165748227568953390484266672523603115386983355424550332370895476805294216633293171195103533253221003715934367635775260852770079189257900455449284736428500000835339756582106385572296791005366389614398460168008620366775142169582986712621103841120179359127506882052288474199499029836761621722953795099525580028358397128216462019250495443766588189127575548124842245369993863068488432163244625200432523962886658758738445568466861573668823235395682449263584288121897781574202301409332138279905512024821957594560623504290982087644973505164090688922733958213216034183415952271568641546768640820706981944208293175155664847257356454260337928421678538376388832395158138104102190276309678906768654804467575128504269987017916970382200154448241844399683474827360682259668875236834762518261330603267609041817691783451210359516129609868655647440342315098791485357082287761831524310527945121206693616614975524287981404775277402559129793880635266977332035578787312349753621985536963904174962058185436051585191404932250554865404748963552958395238642996264084457286196002166716287417838541768653251052849512429451075389619957545426377305610969584967954160133103540451276236139030945408136521255088146964268933560446002377178325000152603473652341934598239148225497432311152885577881734000228114938418902089174702439007277512224465751717019792167936382415173338832667984385113789292816011652555625729930218807177767968501479394907686264952432446558703156264219968093964356705466384396304764952849276805060736954608078573088409319268804826430230064576151689751395392454262021875225382122402601375131648218487740811944192713627814106380824189936733603332393081507858948367633418370568627023311641877503666140712246450432987816187726940169217822233891008279984310018442870861980711980854169437873349251008161749332020721416892252063535461226276097936922635298805481252684304575061501150283353006689980440893406608148972727131618872510310699158484791239894180468311692531738904479320267880399825849295780084780115977823999028443865174638440094444540508621845084248787754232307755559141543514413835748203800928168166440538081621996188668516701628967786861607284227978827648181083167677019215406576064906991753502682252364289917836254343696035151777671989455980880957955538538607457956819490171908158371509746060527346459173173755493941472415374550767955647148492127092889170791509238199702649197681377514341277598748352542213989423385420729822520555597147046096038463437473616030454854425056904078892650608951191107014120518155306094283131338368703190186320684777882519378485616884822201838066427443833073267085199749374565164486681772872079747966715213452521234217701197000009615396401129073677259922245193803393198928070889224340169985834855826344853785959095098737217557686547188979428955183144726732638263067360293326785876449529632834261627091223923585889614635789638315400215542196029210830508018487259346592790193269568051202654023025782233673722674460771511700564334494521164390374849245492542467656784614767776973652294891474840832789158752578216996345732726311244815645025590763767887714661597501308495340897787364584893336500446450301301170955283194979862913567304589048587077208264206661965556643570249030199316073561370601620457391864476059792883066070915135129897005205469336423873514557445976170461473535582650366375043900490935368082318661182433452365591093963574286157159587414966989114543587448861671996509572466440943548074459184724535233490731857592090888846454262410080984607345019800338591306119325283362946315525953886335868650807990054947861711544890268764284316710012688148623346145694371487119946377764081129154380884771450133290295665916684305286967234573856852237894816718644818703719245510306872369611713889137623631979074927750227770431525816688648960448671108541174320470822522857682221874542415425150305061955769526186106676558032000433783694369540172847037975787566208413729554433401994018330238249534238129030600041482991042094454596898609351966616429054559488089521431873412736102081044129628029583089973151869464666001945381044159538546120097434562549794040187197886259601850184488563064607156726969048290558146046928644775146588118303151581129883514146954742464397240426901991631830812395047836110461633854080354080110324295589926396452092301028540565059615183739480134510303887022918287897126052862625357915575553145173988875917786822456463924215359764990130967364318525454041488134785913498094244765847282739430825322150835479989353380440367107601119309537962830252648044581089180834177708935200410772118915478099856725095296115534662955223622096455731787965957100438675976061926095650199286022995879997489906170934025499049853792953069841970280959275757387523168716237929912158302405792545250527344487036308599148833995071049757029022237089336306769991869622031189704168042734843113176811642867239792500982954649771679095592341451383806776595334315960984930822617126530443115684762885976588025710301725675916014906979209546734363169609000349098571279195170494377639464253495132341266308517317477164187529135484599052405821128068633020283999202570789931948967332901631948177531305215124308283262178571618462805686082822173317827841621142809505196743695012852134209254469249983738324996564358218136957339785843239556710911999576553722422822685878200940466594650350245470340718318447809369088325606058549486929442845209522268183801729788183018935994029103307526806579808572405746168457808635566764420259117977965509023347106247863048492808134784090489014769416153454320062940038791210994382663534249479556496278765579462814766952581983971206109591035945454531418420209623682345440064210462467578929486997919342739379330879313221883827769310501261634319659992017022775501060422038188572597410797113507003110002436835549360459314910223334754960117112783247616742115260725401288360536807300671874331032483673849127157345467565770131525380334393864887527747377320300550092434367597715297874397030703508902099940417199157493273055506511674314972967812777689780296323930720382563041072126198126269701081516052243688773423274532763501077188664139456501468874086428129411045255946007561017263934338616561874168874015553914505983055533008307719666413972815230319856698716452863698333345292976737092402022047604745117259546384947954659123915703794383772477896717445515880243014686750375874848795635931499833113710122521645314822392444040984698641416837055376146496905924989076919796240058869596528092915161068049052353427719775871857305477284976463169725722082339106026995871338244131756358595972988581317629653791906012584010432116052415674894133210301447994186354631724631769562097134382004697221523478152075573771032583270180595468695267258129379904420982127947297404089993787485666533341895781541399544385944640556119632788478970949130262813690706671571848716446162073189008795366063530412788037578002406336899090108567537712806984294527275133364301305312079798377307892059331686946039517330809989709323504173248187410968074868947882818582764938486176300697570485838378579942387445144038936284317754071619733825471816722530665590981810136599361564477622589854249830957073745324612631017150542590088920415543848293027644092501550484602138389048297011029283777777721899536929466948650073111487961802325179143172707711216445394255326866992004564530830029813635705880935734649966730245366076131658467931159509808120685610494807358264083376714894215895229061382019438267021075745286402387152705404139265462865937698938222643236385736932323443161604923438261322143958192361365166661153653763317216245041515374998011567095337743859236117766735387959906773119458033547242111394898552534811611732370655060735425586704077314127078733438713344055478773566019120930495151483130522356863702243904742407250153572117353385479101024682859180449487646810714379505702761959711024471576100589582974797752384070858768748535733674663856220541942907540414100927340717748833130800290730309210120097609324132769414757140798719579580598433766746606473539919711676641127137547592118494865486237932220793862106341216820305638510337447792356268969756544603354120337221655612679202383011288257514843267690964896281453881046546853346888413020591786645028068644085535500659242517926282906521231482324844421638038109254973955418934808483603210569661942143517259932513910789017131271001798870195257160386074317567770520701138260659202936049025997628442724517227820896565041468478043153584206850546351980734114961113024534825192858128473918977608564794269302600403230549330362013604661836209711460505670484708078069433179117685814867162614934243816767026540848465043517303467503069009344892878379671375178262138178892305252716714650578930229082954993230451407926144808249468510938839629654542718405629526550837366446184045346950462087622787256994885437232272115858146585830276057017615723068296181279105808419168487133791543349869707904576169029044963937343356820944031936120598880188936841617981617681258131889714890366954352173077942768423883508948522855328342059744054437284990334332290832830885541874591601831564378719637520900949317612786277355479674221183131736317800361953813700913620899823227019049339247856608234555493454300237586823599854958577643826557594629763562216272839106175390032771446876605500378941331752429932126382467934243930646642835425328930796833089508989314028297151698203951664145581274490622272560586803893853218636321449482334227560659312124715962955579740059083270003259556749117252172683492785263929784321667282475820363777995682556929141348644959391706516053456148993578261569262381683681746982880080819288599310033830474488822660526926383993539177552844940266521341070868506587430157593868149578400956877266700219836180051730806601263358714579001520142325070530040992042569990194442238892179053117370121512150365815406351442496746306147188298198616063090398016216193676192216246034070494100351373927351368015104981455264271118098263625678706880414587189057041505290546997604201740654480091412759655484872966166056380717261618401969460389732306546128144937306566074098346148612239562918541705099770417219943538470374976409332357040388424245468524986900232033889099818990947789161334345984849459274139970520403039365306072337325420886432292248444447492041530130112932487417976568584174977427956696346951254174824495045010766060850380583844121213567661572969801331556453132047362433102202723245470419437124490186905666581990296401342461088598203124956737389225860087441488808084384188026524174436783629395367111048409274482802194035655632830375566119590425705411219147286877752192692478720802202324533092626781831294147026822271901694077111974181940814922468382072458049143509310925290636227688502130385130971164339841983261894108268048853947606324224285631767895552594941849903382992043863690712362359449838339941725633551255215857061982234262496055301177618620265867092150809609055941089162747876744804038931770517347981536848943060160783412106966719510350516468377302075581305138556965255077398197413997545377678727336876508523500688405077655778181750814037714546217404389463204723593725079863966423643253266176718721446924313950269788394009338413888083423259998831821046834139830513854075326024856348162796996474839489837147791048840176123652005076651193841699061231680935538400792458799975923142260207508663480959027374331525894238960715606402996831961708144346838895673593467898405925816215804350275011613213848245389594868481801640433434147385451159212458898061519227155467289247228283556606812398087628159037858710948794447965402347766619979201825499419117605370764659872186879833020347893922879198858961825072329572710034706443828485570113667468331304904094174892782887836126505106609982154412863029132523034875193787504372706640021471589863693475397645973776794674703884080233714278250543995914409964289027758122596355401001001882365082521822609867175457367361681373844374854219137826716232427126975908682872169201177277174015701274553748814517057178176534941278580312817811709075883129864649665693164504109580256795727532440315647706926556182113992902486003959529573661293404252327711494818507372256913286588031200580942625473812561752902016634594001394316039169904215427747435354044016666715195682295104756922213722893875150555880212079642116140136322355587034354980973978844682004261390457573894201592003847130266844195477109091032401012707977688544400585286148707394098794048887389283817689173535724432585864957302610371750251288461884928464339663799707580731346674160244612936940601684771139588705742585129494806487149702121512816972290606346165559649676893579426808876072461564466262393349793780588407745217155637355835709741106789720765322852397056898147897288818611698143260624279850628219910134700863427340598017286311036037878791176784200793104502227928878078851136603533790730082911911045263035883086334606619613856513643255517011118206019946438760446727036464965845168004071199535961096944338677200990345468764039661618910129070630587131038289525244123889121949927989654513721865714216048184666988187217700181971644430222424746735051639570922819000405713257598629338799814142270960164905076063261395348202142947275604691413786771331163117058550673326102338018068921867922647597459363680064715916671833508115417827362685241445267373832058608853743849004889019602935971977325837213299730329717844756696984227660024791582879523954763226851086629103467832518991599916250350461391848637471718936387677700726241330676549112926187040369137117549118917919363781602182426520502954038267838226456585546242951819331186857392452460788685750235970612356712614481569259255096212576134563543288700462710679190205358836981229113931967665163153992817108832035668768866644802211282412000776635168250338876883384782071953073949296499852215294356303542504914559491033413299541670033701874774603328550965634882244168112994528315065669949195909484993351519605239615848542576950290379659592923451747278840186971370053042551919922490713144344578450795043595220015137291369671815838353055859211175402811714593783633855574521400114410256449174624132112153202794340259201214243692904962120565293209889951384504855074950690155951451571727407227021155918524878730322501136063053725963540323465345069814314172392148499201001543756108406250059448066479764461465211277306189538627880520141537832083516365115421026493573984739625092872233847176650897850515956843617191734927730414169082004998190251674768456829791803699031641990445407154620000259804042771662984513315242939659594591072328810523663430924750097622870547718838496896328503413927482492442324519910273236410685608011441751818259339804284846830690008575544367403815416777851317704984046006134397562571038610122706832535847067441188942606942135213574001060856084788241837894101732178968749752206576742405623205969863185171255460324075180022405701006512410509305341192755271186975625741547410759427217309029257086497003132391306971485890942675018945969318168094423606875078382307749878703894580877265866988329431312933537840222320555321228802516852153668987386027776846387376670649514225955844561165665525762753418315364953340049699209383059508709045423295695272485888374247719474946887605271579524115164131473315326102533634074482850465020418768256291942470244862067383176345537156346336284982524993071552055129966700803952823557833981194711828719859974124483825334723133257981924340568785080116310754338260163954135317815084331942319013401946370245425059576856272298162902132477260735188807877314280236472358000593120294854940413793208494970739352472031304892107376466664852298541328528396093928895821269748021944816179806721101687599385056447732619780037166707387693608262966352362105511369135194937542262775528807244158772409670100925252190430670668231700937573656359542717654222415268451350584656196868351498855404777667026467122533879313300825494475600454269996207488961916352660183990758051230083868371306415988063284316402049241980671253866386005112586283073239218546162065362725780162627580482392959806847700505964537214593729863296800223711815927088946153821790406125191873453047312356271276688235612888539511156021096255038320519271977784007265010128626875107638518099900093468291270487478415574107135366852412364001930452488489691195062207918612782837501426889176739096456821900510279492356050848199435949854231229959557833211715020699529271647665547617416425066292206148328692570288676298375747127417047320973919534616743578464128236942466813311716237015128283235796996717911271516048532033489412516202361473258197959103805139551688064603422588600778442434244845010044853149337834266969253602145152006065976353149307586706134687710047049796093872830470194510671111320222806702467702838206798401327085143157028635246077343658743936289076277341278923445044120096074173140660356175398229427412939820517406547222887497300774390914191847046949942905782638665453949909729856928434368200326780924873442308750171320270092307373340386245983484398274590122745074540180286668722430097097550443685982269638450362916578910495101850374259811999124267991082444030342913724284765347065159003019660844385832104108456038309767387884628261690498912173907930740553813465199628380064787269956720173631854573650705066877250431947001179816781220095561948725839908108838185916539359822572364138552800224374837401586279494031044793011234505684130455728225545577817458381077633259892504380933442617407446206678139491933438352019783706814728015452909153677765442759647007672691484656996541530451961511482224918274993809672828189737220532054241193421557088549084328281220346896441026664488827961535032146860378458792366757023297038051498854153112020118888312718015376395936732580970257863561950937195759860109628276085913761395666111895768468080583512166809777129589782199971356725301774679267264134164761400540641719812656809394410659632378265519280873841938496987185389268157664500111509953970256105227955777894139810532398761441854216830794613879871679281306212745268789952378116725462417893574067106249908084517966193170118209032144458135417842297727784559623585984399114257328648750010947610238713178713912586397557850431862391989096096111738254295956135645780805530641063805845530937176094574121189932952505907139664063470283257605166946971892250568750271988013756150852331442163053597372642715057348220038561374820172450587111619780842321574034535473340396455197201535284473124228270314652520139715304814882408892098361498556598421459835677241097861445994729971539764759778452287795854336129284012334631409635971390831028526168149647410189554168524604345162860994589098362069969977463061957235474128877184707931598295865302560955387821059855927021843161945343921334506280673951487059133047908991557475316590704224474476636158345767526902316401880758584607415691421399691282563591920409203624831538295290035774173925623544901204363456026286072676548211897686866403324090440469074306485134851818145695723075657907319746535216989841956970337222072114723767244079204846562798526721448509821198745897212093506900276639896296953635909200333676085063812921559402087026031330802860703965962360626712422443990966076005864708344631892813913552070555802208960479638614997589965593531315745157126803343871551365458377435614594816070592724445512798342738678231131963356758269367527371396319491966459833835318915676824877783377091686601743641816137332251038983760906732470412290414709557516751107725130989735087347876745539392901076638096943724050943777091556154291956017864522728844648642108114543313086459104368908376648941627420060998775561826296079762818596404469327776071181467830264716039881802806437300262155306706976761772608917101084923733554394340987307829979990083104443328694033377945523677867837787046272454460659507899593852670723151617450945767876523674090853836363403985592938231885331635129722880247095638014191873933336146748873344859859617766432555730472022041997572482563500722344543595690286089273117498898794640484668985256269051122120622920424449430687479589132176763843161528800008754047615810428953583624137382766209675136091813101777224293657089418496685602825661367714361044679315860704638037041156931923094302177025243781226653069256296202222056899079296585434082440045106551397625377506593988881021943438748730210318147733689960201815812496530977187183258176920058862455397783156637368725429318576506790702867435618570017599229426033549929082025715185261168249849249258729715879693293693334253754668730741664559115153494976943668787655991595132723856158276569643724764585237696217327104647126389946922215448632286572098494670578017549117908289006941394625745719312614178860652470456409372461282548267538315689287316473569198507771259945578857245683567621444709316484019329129171935564197188756897126448107404420713401601610157559745711809174416881812966155752254904241977816090115539969306988769581511348111162748724193311830405394994880849897128972699630695124206245923019063464443734221143503828613482819524140457893370096415296313068085944041236625199952667082058092160682368770542622029229536394521345887650893144215320408204358633021974134530196165209827640883477220851908472889020740642722668895903088867750304031662011325867494352728321404178217091460433426552412990252151422170251209719564470503868103768261399368431094621433659280825700073955923254985954373602612658592668554390048468715342444851174922118239156837884210360602069387610443567162206291973292899252027484221197383444777879965532538125478474535411694771638274416574966636099451936555050146814697651170711674669392247038251486444652741231879875850233336601374887241594325877123612567028063483182780875908297988402171988106319238451323671124341800127446679798724134142761714187069982744564699404075169224302719531928419170615842176012506001386436319787239444172120072536509936574278162213860309218772971349968221172395030574577430997830989860680662402679592717362323264865630308429057885233683517323850228772335428713762092179838300868877448473863440707380310327753187300676430045067549967995928896120777913997453883026558933866153908291386775991078497480897138432728889407810679682998528155245355631100319375711237611049818173320344241395028866660793018200981738923193033992727724613146082826558591405807995632472954267745070806764768794882405423084927687706107152804948146924249968538793289225843355340423447751176902799727035442367747795723621102537441117636779245585008945331995279865589986881248421780094434035055261225756262501115825262426435722583886952252508454120833487357019640514167349544872431843100251904359753983875252035888166642405869511263780609605481667565779170766492330523048642457699055415013973417299307380381068929474372190757300959977517478518503878586774591224979126068639758280453385986979526371045263891222574064569120560653082964930681297703433229421375864048989569462297236973375628763752581994973589999627024643248148306741668383365035991427128617187549531199409504473248131392194160968003010961020272071794294901461512589574729877671481734953791638729793081744088075743481776642757116589872935644971258827810074468705688686649027747617403842434945580289280495630670926715027465966781541545672988080351936964627148341404337029011055791923791967577976057127707691542950294949678555192541247767101595703086130460792156205854162514293395391623031062377165808702677947202312290596653828026697965532120354975276543298264273522825286964532580561719581190874549544332126772730190962199088480769107513660731572033048720104348016371236544780417187022634780306080689354278195116583723990096545636122413393377522496974245196202361114122374687206164620398975952101455544441125897164716960673702218369372894982282525927751541732055138508981650534960240143578034347616405904554055402867099688341749758378575214001389746291438795422634398172703339578894396551583129553449053832101459759318784417882767032701248385478132741685726081698422723346973910980483429851494165833137835474805558111704967215568518931484086515765308882975515226188858401731972751472895209467532581206183000830326227740041609644109686100006206473102471977390410970494923998026948352388766535550709933581349060541841991880932679599347817852962096826104034899250740134303303266390770029993162812187331902404593510970635858268986244696810881175542930753845117729283893226920517591029629058032170403271782072098264688055131583406719754156820606116705651406712326983840412643774086094283856087136464696463113561974379041657015285309404908426110347346316401130496731650487220476972835705537064517269896592154574248258975881520286592114072286890834469726487741328351119692484336196240380752513913756118424038083199903955660017236260550794704344143181506829150033976411264965016714020815372317797993024694022791531816889397292138162642943358262349848885274405419329361914866219706406298729809995624398938071774261552926001349129730405493672874770600551830613842144470546847301079301353549396467153888443965523384543271330233353443042174132129145237476190685127551351831765971323298321291008069545091036581932635023465035725952315042534758815277552595626867549298837722848753713714979207941523376671817002224715497551042131592146037515082450513976203376391004190323948069511680594322195947216006766479632136223565333066523261187657047157664497723286885040163763630903281319678474777765842002915361019983865447217901325853925200955993569340334505669142447470818406852907511797765780397168168044963528771688019475867686672268793106372327277065698480470469723159061709588236473315725292416958656424797339367275617773380293186991877944514571101906840369169577621227298244149727265314549780614066855131027388830702756046024485197203851828789141307756407872818692676419313285842798328728613462668351995120148399306787588083364109980566411350648497775357848904855831201312421003957503630420737754283789600564386312767516789104047587463473711854504637758106097592969783657123383547871073443979241978158914294863902700257745856349002917549733688483337718500642148617285511177005393700792178063508657534540891598407055400132364147311410182486478655917112160632374603676890442312947556611923928994301855051134061644703096018228203148064324109511750683130776907495993875824567173405986125895631319209311025684417564912392154639939462961679897521154887132539966765877181243326837825382247559127841441005109474242603098843022228754540538309131521179425511015554870182231005839686422277660265266158152123031781362522262042165535413367297367449302191044422415999326529128765026399188821487520435232344559709284700709092813812460853184379582761107441451598720069050723329401270049805822380294159108853156717009193933569145530619044030157833296726494787328212590503279556496125524691490930957098743577938083183843884156010861086101635988312124746625447490003584988959889875731144220506935299797758724965045770906194434552586532602584943843112625453067515494989920245322591043440129540892119283903638988687674914863209319511754365864419261825074471987903475016457754517959573297098054359698705365195651523759961352732918070743983588904012650053540343100993843778826480173339642970930160164401687103366405415101280959493171911221309294135606112409843833344928265644006100860293498002431807118572100658602797129669301291989182455117153747696086794938958978346740639298504802898573128901037703926967615912559530994867350163514445039609987787530598470805520739064068809915786408871359884896710317691934112853980385948368355584145945681151560155902857177302758928423047230029189819299391121462337813214212341379002718544103583681186800941207048519928937608626624620636076341980469758379390046777038487516621043302710863139387924060700921158471688402002796768473438720575025248012121487951230832226257740360160211539410540723955386307307026886689110459201385129900945552926251429036549656380514236418720515066128474229071578558251552908487281387040801193152485835172346368346484491949834700554692303382325446188964280202112763454870313644063947751688029602879132046135321191640473350999692294092711916140540871177113199094416670695065587828876726440875766484297417186383820199812806482584240635551063413886026159998240769363379607986493265718452267746036606521937986601825924921309974316610377137353010577907377075810139012945256758895097653973660386178396190686232725169639804720659403594654117177280508559180508184054604703010055210145860875117214016113415817343324473693037620371825257763273867416194835316703781213400648214016017099709885248069894237845950868782890905392665163729405868878462375627106454135001357670988187990599818631697362715310612446821089007869700317015198846745333305216892220567887717621201773116719508473901616238513280258198971064536191679756488980549331957118130011059664316764859533656777543240953905575676123583105109868546526272874184062241319344545277357148290786593744940786949846825077823997672961047519366539825646910392813784449538315449987013144413670407200683529955170597568896324057484953213864404980046465801432599430971206500450652209408108657863192802959493066515810448203687148761634239193787114946336263889506612276244284939326630721123106034546478414217003118381496422837044054911405287946845533218812796692693672658619969961804095176809557190251576980496589244229730591409331405910798132992729111247808901306964608693232545299268726806556323369413430301736050592287606214436629898773046586247368206389828647796029541324954656285104825116561013110358161822798466040056541822440914642379407286072342896546513260683276122442967876096104092448099358200101039240985216006667120650583102422965672672102036888031575707783927532074761617813981973471237273850416429740717643990986574910248875683122463697496294763662195730558951963391636483082305280307554479876612842052731242286096566413430078908355178633851711722802765939008144907666303647700111554930279805797592478966509039165804342206406159676563165238112394503790646016243927017506406258782001568801473536244837901875283898206092564790876230552288120801569728253569955946202847114945142057990594090176764290446328906727384578502567465516771401732984766746806920289529647395961493393663718285026903462410327005116177024634736710683926105771001407451599659424664573910152370455584273015470560140422215687823263786299186035864126916832398151076588719016164623162067645899360940158484891059881656803796356995473090563664741513314375365242681957707790674323890363626845767314040476649515434579756657615781717219574601717847931209172041415395433374106214885629885005145183123863483131301937276050996283415692742062962975842243045412794293182270033333121244179336235963727023991974282456661818530939166140833038867741817969822567109325943066239674632933348485026541773420089382907837914337385705321583180057123584264516762553822458175008363265936185065761824823993312933216518906065245319371890552989703370595677368713110021507207557939475154279556627791771431535736260032208311202843962723826131341270318233059405724160955874527501048775330541277977342831310356306800004612839476354096147542204728669092344843955478087754289989169112866936275883852330644103061682908317811834176578742325649506552312425766105060712292690378115581225839374665275631823318597564470207151282281887012270829558636016303194972871986365542042331230194427993028915582325587438608947711320300299556344530312395419788983709300544986952150847902961868673659939959936438533487537634957960330563756815606298573854208931825046656382958731243702112797052471715888106509298862030785590419679716910651996345878355020248426021197449850378421669553868862121381316643278987561984514435847937313965912963796978501330143274565125806716241937446826048762097269051868932716450038625582317565604833239018117792541350160262799408833483875603077532246439801266154879926123582148567339560333344365151027153727151361844468607535592593743535821196729847333552840457402854026955661647969840037254955963867705183732808859241368074308833599710397558175670040319567976184880751813922555366267039572924599614730979883727492673812608361390283384041068689200284711732554998659527799162463887888540592133105894780688770956844607523316066382892159728141632072360335835546226209970961349166721947310619841871326019889452148908241793784197017785430219704672932036400442412964769776080409983115168343842061819810709887374339081548661213438103996997457273158535569727358145554247412124523281904223045600321828042137848600822826761206882704134453760506176743251327399304962924594018681827347084745881675792208230153099265846510957616112549410279059506546084543743911795583525124294161034502480425744874718176454357434825463861765281890179899109673695062829128212081564568996376244792666735961888724243229042624972753590074902808780119588517564098947084109129048187157360637460991217774545256169050770004786118180576790065104417648737913011678811976813767314885877059211670462361840889891609627560738205864059508767705373650771053777542503788878887677201327101002233589843091047159713337822901282538405946918044949611106043310454312910283012779338791421217446474306665227370341729212301116613695669226008514110027694262018698194542222954814629812982062904043562444126961747667671101406773177413134772414061294943211818795483656302697658974045114572878342526609871129424685779995679256278393607125962849804481763281950317536450456676910218439669523244034465652786230456448086048374320669439476543311957483793516445105518296253370193865798925556995703910798091602086137743125157191151835914188521675965714575958776877621624633493355126425623514805406497654686160204048233546112662415576790681760573044504360429073238889148599384332081156542687401844833688464369090158963207810467346911052825662806229814383766976407984048945512223249572761329166818508010006494887289106207514044180763804701923905565019194641272667793007831068990472716377483981681722035221660513950134572421619093853258524476709156191462864783317239622162764665052950955149385938508560844292914456110933630316485183758506787760149886152232530931609233191400084493437398064008863688946995916190318005071441387151243054745931423400454340014362091773797136338428739412094926502480750453505336194596166974052241721239182919110669692827495153306947390531168243988614674587407266758258242612297126886813532392589636319511714131059412532348845922542624130555127752516847895101840211063258307057345529542286143908207147344915459032455646589751382069106526578615704190929631817053140927832954678728021096627475711240164026649170142044791622208585684702148878348219101136728416052289215116151151827531848957808917360802957173564500130575997829014197296559592912609764617689525821834241963093133922690371501701839703146977839509356855326920357079951710052673020337023931826017013870275774207933215318117457103948065916273623343617776508060951252808597041718189450620068975916659066158040982301414662108617449182295941029949717957210690586186039732136185389026048916309412483149305648722365248946478469175605777362985582133782910872005847868016673822008278405389898107932242207257688917069387330237955345139682585531026358334790505216722193236133642526986242460834553510355341524390722066169176680120880236589958226588479960158022097411138012680272620143611626433123122963676263720451272651449179036557595664853586936295005109290513044955315126091783220290495205202973372341880202935059133358035517481665168705407936244082944953151611336377783358161030537656935208813084531937861609605254918716948534509529019733941110383829132725280524680679761732367548397134746150471608831877677398135028269056431905829189099054735943870669257988668975006239429686011082297556821063577021738454526688615997679098839897958501929284546255390279490848221088013949297540157005984576119042673571607006975634592879578614628269143721816894036465428196142145092738974995204490489582014006684590652367533816103463873327671643238996575764050887171275684824297364156169833258238684343518233601211334592903364380463130081208556675323865740972718504014374421004216784390848591443793405756572170099193178301642385550632206682223540476292451124135265908719323745355312828478549613424686568631452367693121847718644219816094513741923464560800497464003787953742985255131008144879842215770047893992020555257121755561753363783118720709361090716083673478172569240512104903270623346726736093325183969608966300991236321578681858845633720458729683839678531774095741863416726740946311111374759556229063445627100883631503848466720243664250864094571593464503037394879252740440238651388463231076762039210907252629959610166038598819328489679622948441842355272830801949046703163498667300919875760161364320349260344776643365985176901081042832172163781146138009253917182471079379100714673902716996463971682449692123238640872836636330502203797711648375886628917040404888532148646455733191914712688988444678749155231708033147351549854012922262276380946989040575346012675231360600828245006196392956551293493613823736254949477140180177992593159254601799648004508112534452771057390707517562358281360362019954531063391932867624949380857354041009614055772754647060165401602612180080457051740838689488941288734991401882017254107113539221046544902032939088482629136067635206783864108781967762291426496901124253283256594928319461105595371760298712516848548686740127505462344337427631149756618578251533986093880317383564916824243192143390732272399671581171707054456406174923649220307485853859085652721690492322139539363025536624452803573619059229400280137095906064001552640082390623614160909971107331954404372834946083157862072744501784195119349910039306534003044325211736203723981742325060136139761141314017483693419157684832694340891274274773591644022468471066924454638281335727220306055216084138433681119196056878341943862431617078576929719329395476394260705021390689094774791276041556114882824659436749392243198726475265034995230257265002979166438550320146817163699225437129059583617727322641826005001481264415640481573041908191055520301459382743014580754279923667654863353217648093228348102103314670494359834115312539050410570073410144698851705187882161826010863171079140752210143183242112593742780452525846881174503720321202610208425559634821471732031862293454542234296843018170646477897425375953402256529503564430054948898101906325491662351216795524421999274039822764465682688763602453334982760850618553898108522284819690544931599193360144496543111265274897496705994488409897885868857414050879763328811363051144338165346932132854141659666389216779352030579517706981264245840359393366598569101348969146926901315481008330056198299180755025907790131246948898570852463160728218172798667003203934500447268096195342633412854346314877620266350671565552985577391354168649340855627543988409081549007402049809887398394907460752029375702228252610673927137201691876919406628017975788979778045517963176150650423398999526702774624523017704046889434821945091124396916430452869008302178069794566777794834520659221643104672074863137139421391386269535569470011206168239559281281232542585005378144210825657816749351534811065957664282271099374256017515784586583196691418702297255914871093068227759549867378820562355208293175905112723775149099179280820163510049242008221401710772751915201764196059280326168601164820603065446743161998332448673638675710956618384607953315963805512766751747535851345442140087530123359477350183161561547908856694173644962322202037032068414896460579028805515741594195631229385251837257617540875709318384462064502497381347372662326974231388432627522865424258682841919462355208396686962565477363085677399537490580689154854289835101105966629687344555947898810478816302768180749952434101402633048699526459720146483847350990853426390698946073411603025769102223739706410899535576075061723852738455109896023983082057954778645121395325250106060786930528151250282931140703295006410454039729072845110759435026657405798979341927605745017268238106535155763033668923404908644256289217315116118499708368600889774644352160342840661805724620762064801469141889421779459242058392627510743078701218072622980581688413989489999855129367567173347573811349461637043948404446333976524355675844489422296401500772079878891116548553891353434064324061933896943349931961114059588740024512152969765872937431512804010138244032308717574209520446980723143048982434539750797984529459840746242390673733066058384545612642898025652541767302823830737274674181620401906742552354465696304475265506471155109962197551054384578469543096428107677202919813638360553617689047014792516365087217888976442814890360983616936966411112443811530328120876748678649793090538533629612669516908105154107731753465464402444038825168352233994916110668726201086526861921617543928636992189152866341009287200348335592829141471692503852548120839618882857072703596506600102428893490703456603031954324991919791177572144907121197824483657611194034347612706033593355964326046455874583715173879528983149570297933967425583076176668956162070405485466979832669693140359585400950886060541584754047209345205685390661623837704226421284068860034641537701758423086901697096535674699916410109347577119181983152988074808035680035090683308578476083857161707674394743076747821170477871777957818155309564081352057714411225199403410917329489500911896408942914755198223838864053898439477537768395939853173607009947748417850352183752703204350205975192142273081854143095615746126804060331263100961144390280261403848159835980412039991365818676778372028025340413509682982011619093747810323178630585718153112348295813412248929490947822238909076775608894151838780494382582048808160629069974896868410393974898963537357990971704982232905038848556855231614200755551209456851180165665944392629083889668369797217246363317251331912449588643965008058518788824294887610971797064148740381571214115742020697359359810234536493907659252458943925052667092169558324651472885719372554241835816990112728473611664469765392781830115744034543433888967301146092227148986925202730420326183131818225435186006416449021668755323991347635994557303215217881771822963303068571607593612455809492238289987099632284645968646183852205193303614645686637464829502848663348513627119399734343149321450973815010534596333332647993800604820069947482011941634457365277259652766004925762653219704753314599060680582059090255429217191860012439636979701069179880905919711566075409200526025753212813508120797417297045214505810719453364552882399963546906820025481475979351798501853830848191334472290621180808137491076704763563653119757528414169885823374037116871625414464145264491487916244891048694399281674093580442008633016591011587477396374097344101009807520639798367898238166146709680874409168212581061274228587845313527613719674262976260101354667008871765973486607587236187520727952804402802553942167705336866554993351181409676255926175424837704418104621786896777574784448063430613935727889119127464831142853508026738718827293586120662402592579385769952777812307815281951306095855070152263044515103779473959197910830548203156965837796381765412771184905197474541827759441363155719667450114775620213872513967239093951598952830689695556198623786996297113842600315814437775447292412089915628614398570611142180047923176775973954219252449481332218278787286222162162696129306779051162448565739252760853208399178841817743133749948236298410185084087677186731819557579601359816440983785648634394477941303921604419565862497818458194479541937129299756975430011499390248708399144635816784993283731819552937220965090146281613137748371727211484479111804982829324995005576752072274404432488833303187233518880765439639548368032003676912271499323672414108268629253388035589046301369037323775699566785965680850886865096250067911375096783521128364487555540039524187980659509942895391609323642648250744270457221199053866133568078947155957385372910249196984749983792629114268567858973702640239231480659626314928532000062519026718608143223011784124426583375575258766823810204435582627684521839056532827731747063579574530188430807994272943849289938029955300739988319676738152414387709950548349927291331023865170183047673364993611147329505325978607625533972821020118326181295379959770899615324277521621598226973052336408829006514096389827050273159905069111486620310899171070928190562405456310285847676650159252694206006021033420683630621389480980452051790545373438191903882016783354100214329707087402824440888591765332920276520418062201795858864032493291066915830898235510779586423354499652189397728254060135592626848724456736788341441269698696171260832660501584888252309439006051134961032257404317170107870140833251169341003905846438236412348034115960579258196162585681576211478503099995450507069341122058418180920766575738231586806893347538533027222801447771070808396093153280833516853323030178266690857131344602788670827104738106075285247107830067131256413810533329269156829391868904527419212021677731687091399745858426756247028700436183920200093091092116680536940561989932354853713025626804101976493810221869541503799641024193078133219479844079576332465295207847327976343625263064934491709476383962017904039314285276547541341867967632725097087698251179400529045331834052317943131049824556139933322428905730474419801809326923054879428942356309031201606412322389026216501661473603049805372151956503285960309194471172928572421786217056306835518764702610756672127328026655706433483384175710092798329708379231983222617019737009079983865904298074149257884178730695973646982869821560352764196269301915451228554716876204848873002534314651211063624032314980407618879506755099384772084679992950241445170026470132684467204175499123346370000567519458777404564732692339169733538527897828159762301320492816464626202160304237762964622377223969142370757144709955869443712269062373465895350027607296375473844915728294801139565574428975804356658753830961410633502649233062009700952831139501906247453789194655988892022511886253315493515477551279235823886437748348982379281286483019999986579099389444741906918055967628290440204126495873353131737640116099341745947602478308765435856628430817670241658617086635327329936970899738073409996580940120421440950682115693487760188754139263237387020348775253540404260761975698425691018210039914074923114090202996658152744663588249854191287509103577072700888989960163890779661939180315280347901790649624438814705680211395476394744514887544025701438845267067056270897473678890678957890411475297245617212550988459056016515994807041355896068356705839103376801737528778297264801232837169962138363357742038299037785646682954938855663499534369853844413771676679527053331672158266385572014357804662141187541443032600927809416288709357858087544777276961669233560659659593934896501625827691444064030831049197439778000572951479882361312763215403739633835972580712247515765111471033698293458333095705219584071607321576696433189256678240602144720356319508095944775510876256254151656139665318655137651903734136906006974820228860958472779739409374234166034420994371049238915194009854518667875764344734130131027370876833304386095418148762481547816783760528212647729838938391023325029623650341072841873972695339564125099379176906404266813310607904438024902440111202134705845256003251944074666396029324502551628444928134439452089386514423782840049578567664419438743069285372104970919509666386668250133026378582254278908174717098525275104556510960649814258741154430777319379101055040552729221538380815721331729116437157057298380339117171499579683288223705601371103686841136350251868717418866756475120131886100953364453840549202732027301094871576309460347003818195150157475987341319230073104658647900478469907666697125871313436696057710325658157213524436278939533940490359664900615435198878970128790266540042058659504582716910005616682088688489899876070541866215180311524034029957661316562405746975070839742519668576254889387068620461759816783540345653947422153973710584434972146247604907744446532750722524663384900204686770908959170359703838102584618706981159220971396990229869709780380607665791866074553850531621117298724753493958910443739417908579427667437841129180421357325286739205659021287551174479588547697573219873614228197986790495815788897392826325032298708934764358216533401911497800489441504130352872418655890014815346891345317105769846807098390657697656935993867519794635126394582374951402597639348001835401275701129839676800578907643562665372729145807222527047739075772697904605343660898183620196662952219114307672639390917870147339260898470933657362905213351318898779950237477410905223875271008094106380562703432009506460484855461448117331640119885485806192573763760284496211412002016565823782927436491987984134243180671945818217805217786718966600675876494604864518556325128573133395621755798360618061296131075317974709397394754819646298840607842810887422230353929995817626930934052064538225703298652378293554304278996574052320279029174080620777829515919878180511432065997568509607772632553780826875850353024614321625862438680660065424258139932013204842118937755258325983723519312220126481236478201150646788134132658822494429766159669855662363637882592150129893326034747061166331526740644711150036363036334491686492571271621703870719146859339976209933401280609501525925135470191828740649697813414806922816565015372543254681317945320190762431083633566698364172530632020841518484655996261546986383957923748673773492710447831284168158815645200470404990235112735896602155539664388210747987398973689532176189050764335193790994301309535561321808592243456304671764581062610751563451398218640209482448654553773119907178491718554118428979946000306775930714913523141403095759573520501239984572951126854353537587066621614915646574763172689889838261677161646285407699860935000867489246487830610396089279033361763623163437506070090965802408272158157130656148299957977739999293848889393558181234046681611442820344321828920771385717719396925492034428323614683952334868282688021565639443221310828451694268117014613379008670611587671284234132007999280467264702526383979784400461701795788367977600908869521656316612618945055494965019592661233761291486702955122198164349006239254700481435983242199837352447932092322404938803093518468517082710790416336498543607241318021626909901656399152846384649923277307808617259573685850533040542296287600168736800444017936427428536420437241265774768471776219889311683292437750000315146640727130294300671310586564162566655768684416861790453230807689898692518620276114239369712350844281545897582653986434198628409700613756197346168883757960073949199841085561905795452892383324114672627774817193391613727677706233382590159157842325745847458857044516545751960950178598357730014864122291691360927543325748578930367108745980001086857144707130546545449795774630849416867482622804601359665593672254985878302756266647410919197790136005764048728705081823724492579821644649883728540302187644920515585020042024807473889269872731751047029838276650980624279902128018076980790791157466928136633062909749240705691387569367300695493351005142835016358159773259976390230894684925057762160306678369438969948504675408231288836152222729558670707233411257004838105364987013352971175564609176095332414817066734425193803118539117436412249002927242637704738459218038460179309168969786142343286045169790882224815917672146890607387933186822931491402499453731751311102998947980008242354663627127464115295686415617618397050893896644756117692586777028386808644773904331503405523770037223615968709152329645838287193502157944042846480435482991649332276910280515792886015819503914036291237111592532935786189585614395573131431803049205115558751208427546184327274495070600763754695859118250849221401248600079783303475778946423672944615683426065496370555555578818247002561749410206487152621622476275898395472054951199050300177043400243355914762000739278635502550538519050332892462054419598420931234994787928605328923119858191240180590843461240923481534957571300759226644791012490898822957185205343581683800713484784887494639453005825386386532771767030222462272305279267844888882181966842972588378560329885230022338404872879401656007567978313071676371950863821606947817963447422569657576413405712346233500352151693561163268687287075587228492562120242401332258446408047578552216271472958596189365638584530092568927090694886329033157754520819141401291813762323523679074424568742684003141446124694581170933747861649514951708861715369258965981063004294782694825442819103786953335332800937946297325625266589291014419840779504449520110421271970290317235103168871227485108918360254856236352560881115160161637934883768250654500139064275230459818620192471892727905215139325766786331963345812509680882167913651776366750807633272364233652296637906983962450044322830165619041638803759416190964276969175426543817455854842069720803963974737952597083789411382294057509344816350350365578215451270061178678601845771955058336451326216827277284671310303326889176053959606977443355465569947775491010721668297387192427530265557030627392572152278862765951851208072863768505476878127457055030192898663842106527749481983360123118139978435711747986810663909875508980948539416852509560104678451213446647190538486256051272518086517165316582969235311564725846506113397796745410431828073130184149600860701168777047058768936048461502043968371496202659530353281176892412826740316365394791686419080930087213823517033292917389690715535029459013882246616940304000341649396387893075199299724283443971848008061741322134263884702263856961965035230875740633748454562723555551755877187711779207228198760587612394347339035413010744995570545193840869945724886116398914064385725966208017398318845159600389734536361811218634473496092151526629387893990665465581320361702408611974567028557782171410451301283435746161751563825989040352902546241400158554447072057480703639363868125128840168064851968483284456716723180472447700545376457050572946369172899953175570896755624402622627666113857622016884952770408171996692001545834539535599613385976556104140515825814989253526584922708627416309680701135678184142650270243783111890463825767888169233463427158942263962359882734949722604084262306875314034788566621240998209871300035950491417821901463544028757141121326593586550351086764652305090995937710904370078541528707211622269087581611599175480678842488318980272766823099038410811047750476310444381430505705292266646861029923775205370168244025431627714570225576313078648880394637620658572842747288558364826749001035040572893538105156733958381871339522643276759059991229542659331673802313015995630266828344680362964168260709380091291721353092044380237409897255213191317929379265191194548619775399036749337030586487767622022151936913195322995057782573305982475249435955149404723813207591029135541406069689107098523500562032697332732445569030787740559506136575787599213014124275788427851171106247571148159412704821246624604120073439013848919726302745271586738767038791594427306853613327775007629013789766983076109569973409007675227622337096098186899438686486197820365344083668500789532405506933392032979905740463060248356480485251960455914072396387016591324851616642376428668537861702629053343441466896229802242503527562337152151986510383613192160350250943441884553023084856415869337274444290998493294973070690799769340785874319227817996598676139483520207815451841972613684566926023415484661083931454383930759086484232787625562695697188420351411359422288334382696931142290619080294678698785283552062976798441327218852106295985681699278239791945607479832318287240708694473909038182480852463165763582670015442571097365070697398475894559747993868433438871958613930011055536080445771075558297127083171778230866358935670105429882275509810139277865276338437060740228432744792631949007633031834971114091561329220829215675654345854489065322021311656931723898955284813209032226098555665365230258862911810660848793719932711318951644298961777368228730548039217745696277578579322486044065568135902906544300735550033331654485101252888863364903345311281448190064600687096320347564990698558629614788375780311434318371375965976448468806279796411159243050195325722092346923724694314049029327565436809204093004367284647954041910503124782811148454832225369579380327917802391046620181096193181759231659267247461739136656272922862424995425421726408199709543460164421038255205932451428414454839478933189534230943263694370675137353789740716002473521564912330561430499275596843873023502715926715502500453304383211282931693958718983363643258687123608918591044850823045938009742461382760335590276634684721796846227913720944275079861352925771176881417541947488949318000000009458990892396830194073119511413598638952880048626719705168208381435636890727651937691175373459292090871442400024874178002599055535525023389673517300327150265756591562807388717362561540647487369468367966728468472472344679331422493166874971381419569168827265095105124821660334297669745673357447250059174127466348658984260777295927565302528802845165492486348128048579926313858298114301085398268789902157865237448652799342574471293647543212473097256786263229308975568871475789272967133032224353539194401929729950382691915022673871119140330777176862991132749173900270368128391435027731052289970300001197709135867127837414658337592860471034193794610197064207710598932562892351994495425844938200521776963322031057212956117545915594621523577224011147135508969328319273065561091200969206749334282925712087588332200138306015881005646791836119341065623942426425844398940695368065881740810971073506615927700187322367971343988359896210356270187415282145166035217514776924512556457753776234549583010424741788673924346111823492693317179126776115613912102346103372313563432306362892744369188137561551430747943252401058575181096350324482144930568695880226355962617606480477187142993603747733672222526974382494663654295198230762489316537286783788347890516675643411234371319472725594342059045538302696181674297023013218180693356664097505181861849296378013961652653521443196957418675771291649340279535799655782554619886541013310622644919032018463837407663735575854017902791911370639068437697202983908335528384242272817707113962125624681970768417336955250177714758712600218909892227521933989733790380552389767520893235994048634121181023579703536053986012502966804340919807376889067567108626355535934061412865398394590385667735113069465936878977826449103660536830014487189550497796810952967905360665975595519754781111025702274467813470275918480200310318992816739982829039221226424976747770932614245072181920890180019888288510981220510340115458750444130254676426547240066814790483582400307943170783590057416355375282034861901724771954016249318282485784132265465403640045898515777018596557796432975869526542114738170069959460824527425715266139918395818674653330060824758759141404557496856477709446909904908356253287060528245872431245865924176142442721030104687239880454493983114235562562832495982872925785521265318251491134957907082962778108303633981696558413493966575287860357690079840971228905656016086206656272543469365313189973989714052731019851082724609758578015764952310398212016553848173736932653017322514714209697126886279776565460740504231699554237219871899923477059434635263857254451760906373977067630349328132554815359185951112649714449392642610006242276372571333463317363865234029756278729577088464398700347926517043167126755879851097772361872678232615757556390587658135259062839671975210873198802478915659079934381459507576585387205367646705496164085134859781132657431364462106688457531016226149002235443789889463316623329879917135882531565067949369283961975465528994378637137124968050274995410042630366299653276848048329766444671164465656821647611811836105487477276055826612826170014043682005777712493989454971643619976519725711012145252855633372936442902728811098591230603363631366193998324601370600571234356237042650913457355344987209432612107698550193425703157952927302212378752089209801171150680171926862065147873303769241541054367717963777434900851070715430872250059244139262387378138952240423450960053620145680229074639861769226814118479139743196120620010806317017605122552566285090453324366690748892438769543896649658569589492326805955243027598054455653372086678683261259058427411921567066671810151438080402792419885303635371755020150522809870196038236114220183146632242706578256851000105750542524965552658908183192693372544108584294741768130748799416644637822465918610634552703355835767137103040072937150866347663974793646510520068172044540383103590654519244436536075570062743551033438945108639941182550176630335842348243241018003017158885472019821891345543938207408714237367454908254064742472480074667387160984181800750912632751732720362571601169533421716693219704018688387853708623910562497384849478056019757508508494106087134617478074349397323988802233659522183949341806176454967338387565892031102182049978664809672887266848658984995703861198980915993037443851860956412927685221590744321115335086889184355769875514371533971148052079835797483140348763235742745593338434010392456883383052512121534123481202586134834166788999066848930689316148353305704199567689990195681778560268487446220210565106208131991610971900905994577840300073868516464656031312580126833286768371634778590740376190123495907729570276129950612716530277120001434571551612662300915466945644045557352404241981761507619083016294079210996270827044572639903874087436851229406040501311897501069804616381380545480789352250718789226596131377036919406060321498421746780427827729183208421832363130920711626187862710750569075562796295242948304700939210286043125617477766003422080944492942692434425828768245572220072650752642115737239501695510335771893497841135022552461603676945899124946724119499027934146759964553796850825100174532676305745045376689472700085062176728159093814841966249406721333256562967548969507688232759921161609101449663411760501736061810629972836703930413134673838541501612094004700393005761392368579302726159149318409785044295302413732262367347131519640789137198186275586043254468855087101918812846603606063651882420088210220179894644209674147491317319950261413714224841749786444844041562071739984676297002244044735286020022882308216573102228914181525148652981711150588223100040344664484531278426059677971744680516077045838025792994511279470263828424432621667309583061346446245652380392654058357033531571962873940460468439559717965563355212565341909372130721770516188242941036638216903332537677149597334091657856004082959826493284133383380771990055035080243501552496516896513286401225752624278011474187554000270873452312781412302652008323822387150740572790432880254992501016162738554907729860450298063067515731107015952017904623337034335324836924267921465853496765959732106648087106151737194007966726158798242837761614880801842637497564827996962950856750109120908620736309294829784964829450748294516726867349360640008758632171051561608967201956172156389720838389983479048279629323988092342424997760898300890807657046146863594763212826354637546980997917113482366318261805737266559678808065956788821365898701151539602334618568429648787168346067915090535436421845514992563208553603849975222452574074326910486561333759481727302852217425752719922060673496219630019087927420654365600430829245826116641169320384994678413620312742401244896111436924711123055910794508766658588655031003772263999589783502109064578750284432421739352956879935676687378118014842793075337975553453310586794418230844858246867652579838720529426890463864465196451640538665120369781000795682861803950371705400127311358975162424525663240077434153561688756836749610964345007112391849783092995888041180999132959021214122887287948412405945495442842669071286568971205316818084427593180631871397000033884470544823758316473482173042189823238303781528395410643310160611927021149333656700592089351890334380895268855131464932397004981492851384113225346202699006461285377460533203462715503042598581720088998023129158462662067798040974184724845388837006334629872584346157671217489121299666617386691534290841866602439447358810383498309055600179353484284158833169636272052386894318276905343683125321132250571479186258863807809176380941916797938832953093170211750565583607264676076848342096066993978595888703377756830018922667822543287554143322861213799433715965335606722432381391364056491090767993043417601523603936397610815047027334138822834007952793803593022400216976085498841760645406777438169316560572453491206534411343771064706036422459072147846981255011054933297073230530229678625756386681880503297041031883439711286531831567989274625779943188016421624002349219341126741749374063221277995400587229789733764683220640253133677474331451581990727885208982684187741561552787227513864594728305545525965065195182456143831141725487210788001235174958239315817240998882992785508478495740978905265481222115110284277815130878481471319667483069702474263486359415602748973912576418688257730992057927747298418858758776182791983416756254773975401287640917926112047082071771459042056693132422842208521853707612384398721985240248240719735552251154009586715834899851459632756430839002723141942251230909398695582273083207942136742242763742063681085938646992263128537008532180470423043174125602645057381755643421920824666634374333744590329821234329624332382869109043128636892733414037642450133463000311662153105660989945782391733735445701455409355580318521267531668985696316026692685344508026134138064434306899761309892598267285969060405396909410983011593256190031764334181907311944030482853013492057635039634217352640161140553487557324440425340281745662064835023346454528991702242819525426552093268074349904754084827696992022949384668162004669836687476595760484580456643946839176988394519637965642964246654579274936934271297176718392409738129042579700952524431321704078074058497858544853310363035502059306644466267037670186070786106720284388429581378857058651819337211608086452194491563247572613124765879879213627514664300751219467560522799923346874615102019270315459466724779436933068897733478716220958891017271498015620921478816749041813490818617789562402266774467410157233123162076899037842519823895418843733660994532975524595160886716607619404309012710772058344065492904322248539781301935513890973954289661758401636838062929865187817958222656078032650511201362887839373089828029797335125871827885616463878099595051175329452834996519028062584541216945595513041049239326097506420601221040747298182217679429292632378925066769278968872530619567594041346513398575069608312186039101150340691650561892628724035900158504275570697420421671430225120809351281244194948967927241809950193721310243581876814039609986137352130932524039926578235076824387512408816745886249627873601619665728606182672413580493641484956974942921533614687672397215599754963569822997502296419472758538447735602169434696870736124879697877532297105469820550558693827345224849320558880573795083356383067733656154229728175949348050707011932922721128363273698953732775171886899938268263919435821120516453927247151093597253099741062081558142236522605221381762101556206219065538548331221550279401116759780372402214189224916064025891745160757911150611106740255422300089933923354639525027371187284226037493314199694921690734648810708944514564956546764673450319484662621352509304416762902757874300947274239028589412654295711330378051442581588339415590870452729634576320944595560134022743782926416088782969425317359630852466360385710924445177870300581189497912097578306924087683316610036904009671656453125654008165011301081458187276667821206921377222206484698277909061028352423794944895125958157999613744559139830926198194967897251873564406807638144098759101094079540208869215542778220840281435111818653705194996495040854000378183112875473652569370903712861722862103226203832434553201440304549101295310387347326514956195883133478020083195796890521735481489808854342352301759652277354205505569502304487440212652756334778009685218435962076591550464384761677623912097883911166667791345060083411547427809337161660770941541098098981633335013660373198348335335327667028658843624506040773158841947766400490754392657203130035067469420346407281600647086929529929842071975329633297731668100042776962802516080759093301464403827855651373970619824553313201575532476058221727312957884083727043682144609800827655621492861776036003790577030438503186247845378639353291451641178486830981783873429742213809132586106610186395803155208131954625554098620092703817579972944323076799606687068899513544343257156076198681262135041999562489243160457911839083064728023526217731187799396797809961481844881263930390355147441119027347447814123599929065963406471197219548132349390091130796757415881024901692542976487391817225138871023977708447783948394162339044089693159336825713255321160034652366106625917791724104413911312472229641094441561868357520265308466324760498440789290502793920680151971555390143658667047763777239833086520561736523666326270858992597969684463033282910072526215114868612579830145435644269111669684440352586703121016161139808685073614201445817036872012095093456828402472496740204517879537800428844239716342340704339129426575390964539351903572972631885311213419843334203188278037050473990630559675411549489622904668372337548622666344124395626320463259701161863565759328566081747990123929244307300810427634457294002959806086730419034970086910669730475257930683158245514499191783971782913349355275354906896277180330378114894472257875009690349615918928471480616654547721585431297064805629440502686937090017458666589490420467790894057822479410360976816870947480601708209876007205992037972188233863790575914147803916382594799467983682471112325315746292190908354525417333552494932806129416090508182226692004930323065090248734413841012686696106640527348997929925486282421389713536385171869396454153453498418756579434481186812177527248827820869535180476880142702427390160832600384136596649991804075433503362489359846859795507830266679112091983814254734556380599910945833752324947162845143675673359751870498697313082980763873836362769809642544548415285313717746476587857021065961292990784025199462168659290546183694337198151017214441463836453143164481147784332824623289620612287277717855236906894502704704466270360062391659481460048823955857867270381795398866224854962069066466574970090895685339638051281935043350549663692628444852628305472091027530468338316753170451090691902402823247415717413924215072752987216833257360921797324185455199584251952522664417273858844301562914305501595090526262733523300529788591657020341266649307531999765016390030268383831217360303277409530311964098390247732280069211335885225655952101149674476004383090575710199153366380846466543058665851607891782329817550022770661255063810230616666804915959875200108743243488082354908343765869721579462852359674558608816388350327777942348643177653171976158813235810050333678499023344805296608630190397249802498639491979445016117169420354804503018623347125353924053480863077355581543202207551272744923225382851456240717647687736923522964152825369550419689554924216081552034094847720723564918159034462635547804558089514462377331928840194990140440658043788583836460122060486640949371888309783145370040137890487973327919827121913413386647054962273305681388343331684698479534858414055121751095812580050091110130338363614665655470507412472663342428949037415798749798235747754248049594139934085596160818358217425841355394583886908512107754347796656687719191730716414399446372619235237790817448917411589119426809229249103467741979091294674553868621465174195834347204153255619998611816572859979996531458553312105417533329805635205331145344295178538870945900658092925746698348554087481644692480831739222795959221750155680714282239428762831324526685526107526885076520330639545033047503742967755081340570026928914785483128550904758991632040690090313486661530120138297523001349338042811943563742327807449246618144997742833477203531858870854242195726282875980240883468835817940352446876597650603329071841276482293023818154808676918769494834754924268998153364121275885372223319603423760420102368852605856804314524273859833842896496064207417172626377374367238315100673326200485752228366824049006184521082832376617174867092103217013722809816438385624206966553757155538749416131843003770954464216187370185375670968228785652896510441348885780924328535777468628339765709944797391479995017023595375617482640454711661223130361304194505886984590753236706901424270692973278131372053413411520699825447840622959799035801686472039664652592325046720995035859777823183859742287272768266093086111941770723427241203924466779744941906112801577911593097347784542421811187637452717416128512704591088122685676657975548596867684524249328614766747356752398813279427148370762318216787678856700666051468476902487674525386482837797778116424385921099161437455355211957931753101040109392029620488476397432143048849027071885755754597110984652223290517684550090788332368247618226881783571578527932826601771489407993392185630273968074814526514103928652328773054884009339684466394102104508611861474542215629672607358636360872841411637880629907441180630738721828158812399071834123420765685031058989217297711924385244128580549144964329546254278220584853309067740326847310759443289062816743657782058844301170223222083447060231635369322692759590515130273991737581703861366395784587785090120353055802128296778063181937762927910919106191555620254050758517373107464551520600517520349183941732391875542895169011441661566275396463494628524542195494106261782921700059250588027379509209318390705188167744180603100157716860888752043629155961539302488957986182842345687605391209950574149865621969286394734490573618181131654366289355246394114785305514737742062004147998746622511884963767136056775758637554747169989508141044505115853125686694566824886623113525720846378549852472444145686919966653889027356632026102381771122466591422888375560546055374176941672871737369983736392737654388705469143544837743219996229884846101091759884057919295422715123256797558166985337718997812406066985028289496267970239877509350352886256680035787910597550738773963311052330815284908037659714899874298245117727967516341332987213693531633251353665602825412021100176542749346601479186600289626768084040198336082471685712303969454803770165838926068986750685716752304904416927456644817001452412073952956723417450749865483807830933560597278309474086959356226359211727871827854820368827444392803361223017500243655488121959867567416071634187947568832631306130726347594266071143304104674184898541732527212982037064018353166757612282747693632793935487579677221950849326400040745371627920313939958486999479301151784623401774073298287708437400176360550910882328252175548325682299988169405996358227524483651259717269660673386500504274053669781228811120686774764966385316825359526308770810140102202176637462134056186036794548458682701820383751687321638708121038595741172083190190102696187290664103833722779415715875965510224605983919377671681715474864607070122004750549199016647286991550688293020480488158238084397737583412640055883398206208300252435705960598634596548386348640037838429023634924067947178562302427023464842865874417053458804761819952551219168733956997887972849257387021098664949353119390684153699339002285720502681335933275042050189305023157011878373339324658597371223736828351651092277424034695622456105660076334426149750455673833879462740530826522984235978155252065163055063029744997091883269987386093672761243631997983494149416112358195057802024113809039709696991275045446396628501216564156694228543998364401824639849420652894973450943141790825461168574499119460400318432893835662664982922001887932981610937095314271267911817560614220046709873155749203952717947873227278476769009951895198201590067020621806108358387861936364878316525586239742020762956441189370087892929675218484602368092960713243894997497292423182096814426346066163304031531969577905671243507902852091526620409252125939098155545076764864429646893688588253773996649235144191603894253957886963824082418433906743774494614955096103372065637431453411237463115174652394378740492048531378145538625319278591359740228890675182394127603505929932857643338483334739151392913811941267065571335529896595705799197602142667096435567587211562108648275866792309653786614574802192868053468115149382349076083520750987417207164777485023605008581452559427525076254713467150659189075472799354570000652522352834371105514989303850462008854595474062729592889265116885411486854709260741574405151423536987756475177286942732577130615454849978344080949784359043467223687442145207644392651122155991217715509650101196628578275846419761900821082076496497629120723506200702331564383195100872848057276256956826630376241431272090548348492929545915565771633454014760110913575195783724971546753363472472400243375067267255663383563390088638155993948245539819228698115282954704237243044789801876594847897216322956666991231134833515548972460433976474006777627258970244174302397506149294759679431114190611206011691916730158122907821167175006143175756640721119250161476991692562001746347675618025758239614420032165414452099466197433429324046088214772241224088539448048378677011487448941174277834491583524745928709829561476659948202304264306427458114371244020838162369319453903847408909374006332161902003340889906274675550396269088961776883695674696853997258404013321914660953610377941183858193946326097273901111744657292296842673639902425122156583189104239152080534363918170188791356274180771211420498057877246249746992185056866057768008315114405838293269229323001262198053701333241973608713417050089313115057995121225080182277325825672418717362847943920982058348402407265106785673412153425457954563498381237400893261485935799703128424629480529011916633156769656582345460902188291553621438970770849374422648253170757386127679799557095192446542124214504311461802811262854158425146347030492639929048640537588429589882813358544584363206827349442083618887878241427180366112939175779438548474965430672907447695407758326213466940624677302245723208899600634791256849970783423256917230664703325730482357357751657921133902740234516972344400485732580700702839092219223573579753839365174359564739531133110149244232082689110043933239498383190552734860098499310271352975460739181158147912697449424463895810408001197352792718681944675739593025861186180264036079584019925660867786398279718312239041612256931613199031786942947356507462871107485767553824536802736026113518179861848527044811395980619063909823755535233188414621790774911063828013197862054173503831090223467971916400623982355396941104375030706409478655407684093401208877710093678773461947110677333368252166690381259466734490741485910675479071183400189515319041617500924195630301977127801333759973956057099311859722914310473917863146315310553429124415284853686090052199103660103401755865136759435609854120184157771614860629368942282964823182228350545498780618121797629486004316637477750009467945519690671917659080802658126900876993569435896309525285076241483934206178282537993014507309126540054308270228481760565889299598700388454069258049189522875795988719936738808862743303368553662814950691849623640890186841820253961327932452184637418900740916791784574872754234302942885645645740381929191126403240876701368005625942993210224606847168674879429231505762791796300292724949293700883061696141386982936841145013478318586115197789248861963108228874583253214307807488476463579515012433356161210414511052804501938928208384110149905345388082858032736656743531655429447174910382391792823964869882380167131974870166548721323568667823563617600029822866672485731432642448210756314768454240031966648290388076472542009915777824549778513981753296641802039548899994375866180449052399455001379254178138195599942907472324539367915134917433560679997578846341767040582991385777758765682806593771656531471777123255438875334223759626372083296224288066611695359272931249214531053655097565090643499176346585525978737341697896758423366043978310395850367826667866103595027848803044467076185933314846569335742610182990502143649977142397043573657214495174281769163913054279739415820437644820617962976704982533812710941406845467253600940207134370699268138430826521204150061869236208615651541122589357333979264982944211907452347263301556218328865665213957332180905612265102024231272271375570109348499130794173087384975346189890492024667387599933362401296284653621405075527540649351954124320975638836805770833395781336425202366290596767456799836884526087394411529604810737691535796192706764310762292838353738272057955025992764468795618639334534879917828512794410753936480994893822395929056138660884627041881576438438862762353520789091224804150866079011670779325762776169291020514716338559200584024908448406691870209246420812738594454816199537081105994210418249001126690088524829791349997581134282797314781971679800438910094532396854201562661865244392136936107815438510907383337732180907427531286503399939242764256592095334201857640846179513669764246808170527581069419590240562016684322141251570762801372352410030179536548773074080910733256943153003307906510543591445674682079128149274443559827473196747615391723639179770543760956274744062385470443515536016858821450461043823677780487327670057430092260980655123134425919216651399237696405210175174036321676969946447071128444787771915775581957999904711810759404178643036282728302174103068216338136896842574984287896491537554728635660959960661596876283674475383991221212377813327636111308806483073724109443445976181319922057273462220308612841172278114024157957437554337843731387552877474099624405399996787565405303346867387587331233013639208851463345845638729509689474337866802368250405900471847972868893776010553135746953275252274851887748336315084569183041551809701832397776067438658411944144640770489118015407732470669853213096857821777785097945630276798321131470586361039766200836565268194085510364488681870964136214372582653399493478976287699269407643685488286916349150840336331413833396431671659120204421841204714014680261238659665788137365925363673751845877137963653282090738584465190652965503219210664455663070119958525743278470131522181370803531542995055513551312412776981484318976189997435424309348252311246121438528546075696456565101957298898127182744048340557158320772139544430344295320940785708404344916298435438928759346077180513538786275443007791387328544600868886479773092400708673034713496248623533547636526434831405866374984306927375166896348462061398642968271892674559239035526853588582560488569230408761231760160861374762331499320414522141820934428557568382894947040978485028611398934042868344273121072371657863273643467676594862586305372151734624142853559431655242312152155274885383464814669450599499818212342968588453114416414722280977553366653260062099273333597531156924688329927849049615806276590769411698870662327653438735237084935292556125143451348581629859952004699467816803765970050798175390566636212343490439165596830844697734269668208491762114100834634437064605271651743591950762712192560329156484981844899446962429475665064889222422079290713453590065962596813218042642051252346708843970505424168614660961456147768116143317123230805803317980769163716672688494418303378465650025860391817928996770648905910314464295521349321053703689356602844680257232409230854834816137762543050532435084844749362833614169507492351230801357118060217187024958056014010403567387403419468560841657856505881733125472628520359664243462003661194912664976174201706670902049607600060183833680567851527319540441729279704010824564107439271323210209540888409755186301106114236031943485914374275020215803341488790934343990512570150888730948798827238609673566234316779050409396656893920464016349025197655279987211167651229445617702844022840600083109307785559842855270459234518745474703108631230177819737594818653662867003270094320421468641041358899715775178172416423453344427466582575597732206366747096247546744581207220587764034983438427376064534419749382718551622207760436587841444401606398618349256238371901850182383717583797133387939735987833327852891621890673588168789034159524523206779618871076603593629215631402280248328709539167462020249428777770072008971417203264265408958509548667325990430428281869819087585418470985535455409971847409090079318958361081782303062231283506544919184565089724527485781028234025703573133832704739009587231952949797962857515484880528914983726329459537729830425966302725628693569741771688463778199337331887469473623153832694284382386251227043061245781067304022028440068526474502137541630462505733676293938554497552845624672259031359479549575162075968747754303604867365710494329007605170358388131791115014437101484409049249738527669788792255910285963036630069251469322955821535030754915249446365487532840915958070523515680817618488812628499519272605534057153732364087259206738892023229677374881984215752619135800584293655267756068552591719365759154381409383320501822418186642038950273914893229382283915392460112856116831883162970656370360588883385545038234059988942126220212643937112774076956058987259078370630554793657270623575438534369064363718605983314152529657736619609692897274463751817592374567730317872558028083819120332923424202212171745953316718445530549051675106935310231949121780673609758215260577214250147287756564892953079274440060132359019358174574289261746419343322614178791951198400526527783239840891073384649437519814810528316325090190658927346883876665759604606616624295571633060894955556371402725183751577961555001893889389860201183153969260762574258221915629421117456419891275255858366873743995278294078796828289863860922834434197045534171387978888307375268042940485071990422491238888083617980119659822032965036833925128832875216136443288308884678385304828406046769978913202933429402289068499729123353096806490518158904015743202776656060997792394051175912713957663209286871890658031479194943539120788503990357235523056582804555983545074323476539895511465456180323804125980014642153065294863328359580621604229798320578638405815156051119072471597170435932896208480759118697329179180113854320674935434515242355096884569410470884804801989517328692361959670866757736830528063916618638788340033403083066596201576367354467313249375854398723368981876825609331663204257019531073122871205003045382217743945895628591725055218875518485869087533554659728980887042246407567518287858154404142711674269852297979190243742373202902389064546759519398822027702715371027723564153199019576767979212748843293113681057590443136283748600896102860289981931265670370591876894814168425756200550661505572454369115715644838183000192232291260824031243638617948601217607747739758255317927969760310336216675056657413965964159486183226734098568071065533427475109729302887357008850363252496518079265408231717987151727069981162642249857722724376922586363823975152129293773075222631544064015635169329529136954858895177065946688360672471889452309685214918950526056963894245328963742389994871472001049698375385851246930245778596459236651714578040806248932046894295511691058235818645718849052896332371940547260680458839734721079507650839078956872922551022017952735105496463211485452662112362142918040350302522047888489987536335036510709738245697437598002289782194912805238855492750826213555107675335433122373177158739667753912986772603670972692100360444827107526663602539437432610541040987322450460582187361077164420274834420267607244324780690703661291951635449978536304742087771791142650044666997094843462335980804903920467073074407672199495520518674035244689120208757517291553712082050378366982741291720689032475969938320146289796224471499158540361187683581483362751284018124940336391326024145269942205473091649818876253149906044257334877213079742110567480772360925601759313797461652311393519172826930315129647922511991700529109438039488775659693005020169418122950062067783384212520614885013186722684708096070448997417988738760001763124166141008312382496464886751253899966838714547271870030848772913118173716865369065246929790626450868072952830772506854184444262200183246974325033533941669705726865203273247280116011701877266901298458288692500268166051532234944004264929287818156074098845180678069444463525292654881076770723893421759230406510003701073397997045214009330197041528373443852559581948544513707368473778809775437720538293481406998163349036303685587796423757204035103255733077385613224852879263065624311724489285512390843478467109588148240165684601978378656958544093398755728167473045951331803564691445978354266513897458405291310663336404028957553397798078764441397777837314676117704678971510945486310881562004169183785098261279317021538508978534704360737589078813380636751732260999202637789616610993594999708562440595872360606097442686423218816478378419090829616629642099497290244873694667380655762835287303152289703208578641651263521862917633105190380109386021023504279712575227722480234436185481000929722020655806197732941112146319766667550332215793677361472065671743892810867455791832910615162062797996235406654672453401040296114508104640347596987808991313597239481222338062448231032635867999755646252654588473293722392496650630751073721546035618705872207310010020115750205417788768331036587217490682755292764915226366741033733044492433587951206170342023757593097969545449697331406346075414004540785098113942393281451377933949918691468941699397243697889510114637082115373798091313596685574719837234748643183185702595056436854754674064874082554244741145479334182381665322586507540040073912861912310195807478286798112153521218929900183507475260856323216355170377743063105948216143866495641028317506635197659846535268785931870137700950919059529259960606759196749346192968443266678389991513990698533850389501900679636061412182804375018856654911808955740127560437297530023703907896952915460141280132982843699823934014074100999745090185591128916772017919973576957253719769861364358036816477533110074487974486936835601595843067181468729894252213788431938783055428937661425791369639163287283995873848075287019032267550711042749618212145785917939042566739069095569595246150601918265009521749867135647309442873665641304723794220918372473963429242771234403089316266750877580898977514140320625729167166074337957764665401679876356063251772250308335118690199902336220882029234201346351620406416316226875484255976675647210217645709889649555469722805225352397183422708473482957852335237159132623414027955952757220771382955086719335560070735103646085436905596035697924371407111866134905926789204841120993902839206370165099535796552340194451219640417623081122594557236905337464334680908892525882626416870554641651964010117524997810887120343392671571558291615963273860265294839819694193090816019681559876805908159966335365779989193708491200158447205929209483853504698665273421366180344752841036821357135632444681558719201704662456931113218934752165409266671655578371044620099693632593279685471008821053614768644194438150205622612871535134959245274602705756790501261206651946697508737924746235172498301452111202688193930474075357312912545063731519847326317775036063293233428794270819228400211339725467981313979520485874856920639457446933809599490577691159404773406033015401054829859014436165683550240968535514020293966643506777463946839910750496277957290565908644067308662760256239738731013477254778502027490924266142647474924800375110519364092424316524734770829792519195341577796709638292253078464112749356341982764473418502791113343288836100288424606103076275158633167928378411535575828328206064517986472160034039192025591363928120666530602435918657558444828445238535856060696226198995894456212138717688161999299482845293899652320547520235133530836627360596445916027966934115596997233048559230831613561622263272319604924826780503299109500873437071744901283288556621127185257558030430944275197588105148570273463084004992360823959080851893986082744652363094897068190081713295773823160964476211652569048661407866110372914398245958620345121222332208659677293533584445613483929275204958618404987096595814823689882399895505960319896876281855235160667544518964581432541102350284624444204240839950729406135713344865313361979286139365477946890477436338842063650005211720898729857406772606609797418692330989935016630248654377386174005789077048369243414370756153659401219856098122729810384087945483885896513258999305504025788829616082413086372991238683161331903939173050445233541339103331588347418867380400939947936920578525592499598629052668945952505074446518380208488543841230683677882866260807133849187165940240078970632356539400133609329600241771734424650924915858000498264836516159355693826792959474992266262285542557903042367304901170662531205915817223727067252396541334682177049980277105013779926158925481165097612862769504974548661686495085749209728950269539866762878273025579569375456895452281952833413434164976228032429558340920650503326712157184904340141474831295465516509495482132950712000082379818621377020595022462469968168019202379810827202709749517651816657556254047283826652634686457495001410178567078485857330753386322326795480771815422494361912892583415013652778523691334718787659392486319887269471742231014099230538003978212349654801063934261069039678028414313504389055738340043885840484355448863961124560525194315510427273310622604136525712560302926823417738088911593374629820029622718159110795283938335588382474949090401108609684695388153536836662454578610410534325042600620127923452627028271698632034031236275306509925866635906670868562655665405842508809572963563755175127675551482534101723223670875208215713255837062870915972748948321033109306510858604407073105538735098067507900743464527837972901470017783655823705940038052084379601642505375677398685287064116182404750694439555977964886537705856565864232293565625757906087240943344808260834231616683061135951803573521745451956955954706758360578919893615692043586057654679555401798904933804012308050489990040542143202717389918404207849394557755722140365236716263022944340806608741586512685596108780437788467202058340912253868874459150066234239408337301558980099131076543067251321875343546780900831181932392718591947181164876743603456887456523351324731970341867289072727387978381529895838608435553553781085658679918122255985194052945981774631858338282409770301393583277750260924808829445692836602350050637609074665783990182204093551844792528723880618758800315982069778678855676209352011870076068355607536525353275107822358194733637524162789827471151053485716625811736096576172155873330952534514709342209923379455335174105243830400292424823311658117681784217555604371926485881902559307937419100172736929841991083190698337499634977891795965451592783759563489791538067858776732579879447514240924317959346007339778852685365390938022563117433014021123703306379315389019807710012566853428736312329845138236778245506718452801545482193398472680087061658702631404133175352974974467643737046922399532148567625055710902790862012364176510480759388433319204742005633299476981610489045977117718975900129314551189143466570629399457870038930617395784993856860515274016517962218355095462808803367477649470846321545766436314057687236168467058636808076503857201458552101412727485911634900492957658975795052873368434280334024838195200768987965935518128960919921726767218128746661876356588404583923187513142446072312527025701578326181545277881352115476153482607517238227060912912830578367129937831637401837457480269325797177320451352378758088547010459957804906885659926954315584300728284994323888560264233652639176544185445110921900601954939821779263595392209382504324207377423548896639196724207847762173526638050345399060248406965285475850196537060690946204356655212750148195176044558734570498732035066681047317553003349862766667048748819077477240107164576152784640707184924525373746420413576889533775982390049622583275908353231366809255141850598876952744919242405705519859248680177213421172928375507630888754723595753819277959308384444907494660400977242394633936502393310416582166031312708358591157949867381059148648235842308521113504067053593615034509527290574336851236225743735527076770877909794022224423094133558424461629235685877308021703651577421494097749943882598291621646041861086926641659510616454749314610548776491634164836312683168234734015854366374970558316075739735160247487815552140011418702953231558269340166759928170524097811914853253029972385687860265087578454746968895501200446325479521118733153803781886542149834956386319507153049011678698810663614525377231334098069116342205547741361245334542131474773054055183066842997330878686412846226931327161941612494991451261955620375787870786952761887872100791519140432775236425149445793904080731941688477903531324156361036671998736738710236032732858279403084090769036683406979979345591653605467867737961204602707605584630043971641598996083413155725566619166827894338085747069885787158627124176962834328890042226062121839006873845945132392218062688079298834819514259688460892085607308629380211087923548398329816312645582194394953128754387175867619668606260801877607311158731981273928218079312699721068157980725955360144485231760426362626057924020956763854869144405941459524189583096166096891353346014520259179074021276420454214892921830807718343192378510393237941363678337662178112846413927669054850372137119724271992557686657797922800516158491626856839877143554939600177684260422401946842228410669795159454709049641723318568792014417351118710672274120135961473447555448699848015703026446313328441406498777929273935857393157630031785932138034040913090494335286301043949044046111804874405521700190713042413336804378121273410113580428854261565480756570899368841681960699321943371352183543983806734780660916909839205254210598252659184122882806725713635910636223162805772187288291589969637896260034057195203332955654038264388852691660138474658644949198958035696858835548997776681166280560543656384588824371581172024319195893145904072240056569710083036398390219583295026915197126141502694672490554304242174665489515054265939803194667760396135349610245080511274690921184733643644327633089374372811357890132913578318535179635882692568243220320179410774161908553229568249247757539193880829970356731443003294690974448210442353209307978247881053561305604008647147596074811437769459240734966151668924494685463998886611342864206819819875274664121085215881597408195213050900204543899661400543868186168870724426906912233245954502552694902630714419169811889264160742336357106969628137885674309477143145563164955945351764297470247152267241652981846068315046238434542564686903833514531819288181915270711705403690756498260209248430509639846701396585793811497599472793025684137662303664179214147090887495216103094946651734708581176000585590886682517871884229594453834878475733904432247416383712012071383415478734813104702152880089893652778303622518857722106209019830743130041152871059529220992100655667751412948596919553174688334226565327114723325311935945424731949957512827372294205176706116224445595480310817734764293848519571520561152809905676834150099942538935464999188432398414426121240279506940746611923530802031491515238667831189213138667142703746331978355827407429519550446639500331668108634592450720760075492545214208638106825236339109951252223142713034322749457336381335695368097479731268444359312938538795719742830937262114538001281365430443449735159839414317639338244410226476825510014255738211883498486342358172392855778850351496832765146753952354457964852203980990137739256274557929871373818656594376254779539021104772088305687339353366410263804682123133079578348386973029251642067526141296669586026032579955486838960806148707525579942440801352293748216720466625414326893942204833765498553256790220062560706937098509022754491984620052665978648247677759534331854120188570242664142502636774450270476570451865074286731697981997874792803826491213376177760127555692912729338433843901575450865845824043277155697124841770099146295674763499917556443096086275194890345534809375625128778743674399739940539785415695769796145483926549355300776220414630124103068939089044870871750793015295683538861559675320165536547949076267435187735802807012287938107979850420318907575029983807694721893186990178701275891860010934542946771816903817328019437066567677447357863141019907419229962447847221141309950960218858004256638379873801311085487239298875169295588882438945326655396692207196831592980818930320656149384152566167600054487399762046788693957030660942951287530318754865700356698249201174103174732484971663705483903909082292328737075490819895119049563824848845255240062520926457383495625548615370936064363038727023478334754826639954439148429827608270747393281208707357851524974735596455005412725926506672715919866910409127468247302248390585661199695287110778442926609047893292523055745140410630123333878964808219483631964429003723519387876843641759344787145336970660957439609317331531127402671989819407362410270868953006396819022476397890794003442047352834213695871155031983004832243943624694016807709477695682736507389489664745391338346163954062102406773935684328624119067054500753270988876705142689766878186902306503978290965166457856108461734578747740766497612486922060685927483246980848209062260047746836444385440063878079495020192877672688301473697577498874161993292537134587249641160381247028639932606358357813691981753920148524559543735289740545917500948912094678984460837443918062372234713741401471914258493057496469532890793428220162524181646745232750049373129923416733030523671696583873495597565538730220394354062584316295569069029629766061567944448848253446440114231374375993902662564894644451581991245777705513032133747375976834358645389385795383389811324349125570006936106441613407290811101501833194069664616254988736448620244169343549776929942852331074308608538554715995850382330337630124860391737734807824725424614477443775029315190319148073565400559420946255037351151649758194979113565913531933842426695889295345811652029030498228525739222271790725169360134685490148818006151318385228059340810322872420465934758644835323985137992977111382228481189361649276697921344356206058695365204945454314062948014831032334436922071345421500228996946338052022030896494186420652444263305392416502502848390719950664447446324811544546257179823451668943114785611001350328154096634761963779181625256597492875602542094944737640815221173227839138390266849478311507161111432735502741951439087938565885431729702341940550021224751685745124493337682180658918844544012843787521603250486119737310436241307473628114961401430088806257654071795827573673471973567736313202790893224676560676675088295790955898040879384632522873496062358402593498643450907614400520713113564828581661152503746206656135916951670159369672698663919795222597321384557603172056158045557075016415305271520831036728773341125229962233965080792274242133844339960049368626502270227784391197371767084655574549976915669025157449175860491160426028874912689768144922182917915049523295036254294008623791763129674999240018313830225963887772594854849805278226446690615674712899764694166102003642122114634729663371440289551216139360882979488374666152959365214200270004020772498253126529277545785833507698187797262477561594439135241610370016593428489851999896783797420271727013920917604345575990515321207253675386215296701992220483813026407343410008043584790410302759449844396715802157487001270950494519418001158827277968384751106051632488517554525260543823684469350880811800365833760311423152944782690103827273719099708337391181327856661715478920716644882151005992593431409519680190150947025759173097126390603909237599961149465134957021172960827495646829387519586008440149441189415713228288129409408421592379664710146483514692589991754092510296099135445481880192606630544141460168198601836372422940555637857625765440912341947564137553838526544284884880590783038667045238579519484299110914943089986270046821190075432216876355644103544608319406768083742634504489646953140194817512546791705810972650644733395741689185336378061840401140531730053149548895640310501168174735344459397801179444419247505259842889369014001204735232692822279097841193976728509628317892390692015649066663881586743980459424585446839697413506563389930136821053221327434044575829362139372653787472494733840203844458429304500523514357155310863555628081765874291661713696992504668296157207673707862440487138748443053694146500953171694913132216178256348529989361028516627780092619470482029351544484509320991560611457426257163937625251928376318709986204549402786643619566440649052947018580612119640997887616752378057828311617340379365289030465506983388297924169173192063042283973405192400224690444941492723274937309788873150262652525698761104972976727624384602465404699615711510399570052919669103475843540571420801317873732445220287031964025796240193570670660194510178490216402543122689001607552502009541670592669562430516909626263450427881586738138884104725354406904514093569391320312225162008804952007691109598358986542477255353134884722864951167591331031250905439020452403788764745714652656466944669789309575193324941971526375250811730316886718224269054564568854134268340102522487401524758039430885792288436032117363268056673397340477764812963970882697631688913103234761256322790826974626642374781231373434256685426006809808075076410779035616365875436641676748253082457609475334246804495211484707538594420340565740289718908586544363530465174515458752961818468668222692138172024537837993456654294731539085654786232437822119079499151949290909221650318077473194630932075691319109565090684883541081883036466190573119936276646514644243895295408793614725831620644181418089993532429425173817680874751185579734319547652555969549789031969203278974103579855373108913117535164446113547499263101352734942720931742483480066562979752142348878792881087712904199947429401460953616814365452720628334177385080138878949277747003766512817071342823111894342355711484962626761061257285101709555317516748181142609900286074481726240230393059358292166115886537849694286385470521991616129167282159776343814589484331004749796376341524272691258001067684954850050304646919132651920659547907223373620874233701368330551072400021655983997808189195341951849473972444142485347395483248831964199427786937787329840877784493138708489979847496444515282444947802542219217160268765198038350586306167450487421020560737760100360175105384383664764610169187355608255812320892221077654659797648101026908214416375635590365128275245967049598232498961520657344108440719158077376532462826929229473629448790432259754324165749791503189040221563012102778716959240982721110986058439336088125163245998042461233749602445076168907533300762822732760416089974851886084947676157368768357297105911501149386000117649820301897288099147350591606406802675067479896282463612533406922906807924421325653109250307808997992583868083608263116645135130224002828279767901943651760890317812604570746046314412058824956213122581071592839227227403254509355198450523489237649869074449891852995706671891993666577803036659209568369824630622498541177907095982538886205969966365040785988620399587204409866158086227542673341284078254123544089363746271204309746465105729811636572560251229305876654284408243784709700093750757213137168604812777115657252237406301455725056431859338150214320283216311860200359631874736994280456419606685221262709713805251610864230335957419464416202500592390740115244302857793907128388758188913904603536690200623934426220474919367111724759906007175474829109235353545323791112184161333266215747971519884163802857929287544984910891846140040914979125918411374780761857185950453476723988686675348127551792651505495214815742439383494203660205530729436828118930243327208828699214571913847237964442698000628776776629278809016398786159378357830737843309964543223328014011522034767753332098271455993193817222362816625487715685206182284591370262667680577878908924521474499586988586911001395384899026629914402135434396697710080825763947933411588259360438134514410791102970074234505396030926546757842183841564867868828447443878949204317202595439040563173106930058089769285703239678030093200920915400792547652317513151260559302427815731838676395609292170252008553691703807054441725829657117640294231322732714601509673127675447041317773607580847971240547260079725092526689946356098048160338107211712487105874698345424679975256155585491403703922332827825380920162710105326865821193970224378842712413339110671159558176772675138826691447080647534029223585165752834882653604568466435290489281831968167961960531014410594438883127920951003820533340504586026799114844212789992312318903429908166172763194971818022029270419363475820396281678669817763460592761452722013637297909719659397974042321296482920658102613310548077302173695055022024408908757295738492628676743787910945485123686198218627173603881845540948108579231449765911256712581880604110844793937730012457773060873621000725523182248683417047044777144565980255881590584316009743429234192360355321932991645835329149838282656432764420420026340693518887209791967724933720247208345554520329632227030047563726762515781119023311994727201881124078471377691897539832116526721691926290495084816716842479380623071201419505744072795066071535215864390585912731456315071210027929360304054700107744055160407495362591578065672149585817604684870976946847745346767201341136095829757835039004835744081772616867980280036562227100856375258093030660363195051198397887027402468357584149232717854781831094386947775137041819318932952164511797398409589644837468633019732185217262216935901788611017386074151973789440802058342504380779097194015243447538371168255597089591496366960160040928817820461357054026562674368318218026811319018489840157141525422680996826674845494716032210000743239159643901793020379131514056355326360744209758580692074169109944684343755124788164343418479236268027201877870592676732590721830366469918830981998683183739101420637950093612918731730221223452556430257814430267248135524420408322842641315331937892789540700196470730073832165692813309307639840851957920631161738564795838008760104269432835752799367974387104002973229315024354326222886698285220515951592900025647826302351446771853700149192391096063695160246216389685070610854450171521602973628083717963581838948778735634864595508284846775982747527263893195250674798747978512222759670042889243586705140337969026717734254752396953521064967401894074401731701474528814928342868051672258974726407668597239872278418368761294063533635522841367406329520332384844528116466543598261796412564572533541386680646085527715840249096434583583455426958194391905285681476795860167016014582393611153865929404737427410029438385450016394947621142758746629962267152396768895791778314561318385456730377515244561541517490763695099754857263211313934013697394102598675189933869219735744049674543556537215329197371546557783350684244538263926679270668687805298594428299102988162118720650286985871482995279212526716678242212818198373828972228759881320779795903800722166068886168500507511411422585967775467566972908941227777660479767135795452278567513306091088075679756170149306749967746707050904421285346967674567274628988625270354456772130556273729470470181936018350191392543617792667071573042760785975410397219022539313401288480487663374973458233241332332387435909417441981698539038289353072724122544512345706805588775967105422954317937745069394914234618825745969253906840335320030484321677655441279480751323522039506011950000877605424446257512179539810053928358019114951546843913632158530713298847247732274385397774925476748650834265959766560297472096127219459236907683189170128220615274362211868142916896096729908861599185620463738448402704251878868226029865690438840839528564587619411153745313812149357398958797653469921925405952360530920465036937996126545582433989870753247395226680362808464589204714867488375722888268618311193410896715886382038542248763521118309600872438027826793480565892176425755146488690204185927509421278600907539842020692255345083986080687973607557161785555494142462160607155964395780475477358343922956435850425946283866739432734109836457540681504951152979267459331600795499043006241291792917159583198256576651908444586656499248069219675780723513850257405386582149912608215680741612518095379144659154872829195276668828589904288974258629770596446961521870218193479361593571284094300801022099888206497031516662623376199818507427732796622590928113560968130506165079217198440031331532036904723247608612433717455699780106246357066291500492993640963719968028067708363998777782934713665306601316788382398536844271443114999531657467955458211112082227032822485716228704085254222191579422850801203655206782611532425263156346899179662485547754909499438972527948103315700358850231930960584397505500246237764003719461468390829968348293662966436947300183737801469135999502597335466274995640300746254463471761306051119782707245107193943687800125429019583096026819674086899779580629226351365935185081518701838383759052458761027862165190309546651336387118176677846696035150823165633304810623375084128883754598401113483733236628742361132348837129824505809031252665071877546832318667317675038867403294946096808956763171614563418070740892234153345667452314374574401145825725226927661084865529027305434217269157897234689879834489049001769663338207634598279799482240538850809308066457319754379800036711307101956996432851932829367422214828098385332933274374273954072009958417938245968426494985595677501518486725508787595630102204576124919286654315587542420890830922300181290538580901725117456908776032419958864609687426566778354337660600490737861343546384113183140308301726473819589620561855077176994719580157716614963795695432469162596983619938272156083051661439861274930908327211345531169552136526212435983208964007012449813561143291502703306463502837462390279784154536588479070533066032253550290914110164979305262651625576071731554704262994536575740046920924716365659677241261959107323393299333783080089414882334842211423673264809078401520810678522979827501849831402842744757894946723580500620438445561658149483359058286306080854308175748493763119449956827763945563157054251049693800499731552399411020511337526227258682912711901525952353045012511103334988845449640532333070523901094126703602453756735963841385101907699952147317432293230951271079479695764038421444810572411945020749915609943779927462704194891563460200392382626708739263884283396572325362270288194211678230350682830502071258308837396705212054604784796529298036886467166472364164243963358228231473030878292885945769933426273903261083799114146687269451576803298170924622698050349427693803617003781006747850848917220670250394299203955643736770377826250429370763471675620157039319595609420225615283772712626311025735704264536817144497315876118966984118354968319867425645517118904731076571510319675132645841939239564267012730055902947286186279239968685951064292541875514613702470360438072524947190021986914056667064261709833391484020532138104998873543707248550481440398743358951008448398512827904000710179759073674117505715555903161354024461224043576987281049088738506462482152527702611500217829348820731495541622997709196371699784167205500581306137053681065616597817951380206631769956883713517312352807400334564690981538110649431531220622951311047600086385604194370105415829630840716338257284044757542113913593015386600785398236456629916767609758880940769236016011268169102819390829064670941063518123853053453617505855001364897213082891006574866084350030521042772714695216213731633364380789779147245239371068142449883402468624854642956459695740281485065668161298147628914150820006396339812294803176999701374780808499378282351289067915048906241558034344739826969638891112486608896263785923981357335368786065447702940467840172032304402852590538715384602541453058112002833955671458461873826093228858083509015786378011069947556716040645999929846281852100722334376112030826652227147368304123267599273801139323828459771073484450532394475135568097240067759587738899561564202433862652005605285868900469151027603667956086454892218649990444774350101819082511351238245610924811189251387146055466828662057082164032550262360289866274272833194748092291365891737717891119119805936281201216100283100137258239408908827027290615087261073659929684847950422762154450358733060606090933375410020821625907611657490520035454446975076063502166016272056303663279384057403349649400894988840605514468569039876635983509165029747514442250922713737762052887776923030972406516715456547832061376514243663854028046573048635924971459081419531915746945496649714086402165819190252168966026422828870610750397461077205252950918685396012468388186591592646141679460840409346852988741520580882070951913682582667357312011110461635842702320054146516794077643663241883891424308413010459667936003743390024839515088821322595751234387691087797035381418234998971295888583664582429837671507158787631018367540913261643629191457654780104730212337646285466360240052927429360434568336210329843702969409158727623107580680242621363678904697690744833019904173004098403036086399453618636646639026279690157770571109692067403945503258376268696493370344930525850034759715745701360065629624535906274974559204828166253772143241203976159946466306130539775910332626560252473825539049244220212146694486019400716468088011256215096488536011239441302509192259610337797239510216333333999592165550290450263691275621764536746626355476610106671640310719464891285723203675233982091625253338149488685969251779908798896385551103374923325061536621091503241447994908345532002028409314578194086937897545329070413410866180706931850155547993353553424626944839980174490548736851768937316438555816469851672752413763832880133586868834764890623366872887592139907156440971112951647109143813403274043537294080205245058869986470829644918045135979010959048993601664162402691153717712310643748576873358398728049215669636950964906680710826759716161558683680979102519244573401149896348793549662945391047159784965107100142435079832815453992264640304719495361954351233593774750550455031220068282377235274232887920971432615549855700105366147570758536374203104661848191370543539142707407471514673083851527213399802332227794720831334013904194325078551069061925736372483432862384450289323781869603273201352798886725820431150713261163331529810170925539667013789865300563209923604810424390172472418971389156467024684717288500921073613568096512613630779497938259298891369963331540317065389212994042322453757184781058064365855384144120716011794820530720983601651007607779707384730182381992892762925076120051491990397242211716736437183256135368813031267822751424243346996718667086735048503964021569179569977904898727420191176951125469667825740346780968611647291647053193715423104962876488270099102080420680860323071265041893831959736025211546582188600828685009153217060496136429754849750797808407512633977548210515999204721724557695608679278097660165158637257043090793991576402123870100142341051638100311020328633911417862540613772885093499342746120307459773636541900500816137589032068112579622479620198813691962714747381411796972085957661581635126810058162175132641589483957641731841360408722043796491699717016602872140274821978504091194406789005496856905565673997900130115571152921064799078860993199849940673952432435337598118624764753442877358877876380492146689114623868799907364964698975656404133224564695859888208862841449695672782825462168433609573336442358390322705488990723210226302540985989378547738810292908818852515573057238209776530834339461824645715594211328152884919779864319909970293824491812913882630548326051219953431941011274992845351057524596549211246491323798804366395410574189796795263137406965635899423789187060253752219973119616050533398552098924149239785820183507659546936305520351058219847994197971972800828727812343976129067220782177109405912397427418345767363092384502232584437469596297931235935721984625014768796444646937500585953876391542278700323602622628398888957532814602333627826212857826420127274885753580280088369553936457958384789033837987907196514957789197683167761584664512942818552544496743387027981085834982756689833219993080529309163795039550448428157988925221751153891984048692928349921549740185846858051407922584722915998735725908962336035578126583674336319224868741254928952480655906346235183481761548453812892113501536116932871202162614927233760657369849224619927156114428491135105107678319943278617364874445996179726875455912065293000863678404753160041032010025004608202784484609951947873820644593630299322689323033248701769073244309177972854782141140847857019757639244708193343148170223399495396646935919100355640674817201722919889311224486864265879554972314496671961378865984655003492963496178060507915126556367761776154905954423548251253983728023893176775953865897978807060967387111585246400044305030504890002752734357512563948242630905193303896213073600754189469018340570887244740723575135659194400295830184482193837514972494051757106910004591090611599056075387801054228811378999975943194185832962049605212311004683278731671555073754839966720690215569987170030671044462507210199999719343846043398168901031430559604892684622145611270071195958938801769612944864315735598401331025105844273802900041883501855704263992203790235310436485543612510080199098570332702724952677623991413927914914457630493432604701804344428987172663621126349583602386278683831011765882376257382665596706816251131705600163880124333051685665924440560864054492593746995310022556613385587478957461461759053780534918524261105882146261664687634045460307443212763897997211970525678319710170626288868945308124692353601565820278989231055296435326311569939418066026950021901824990802441738901571552897524932910644823489167450806480449719005874985246123134794015267695139643528501305168142213394243637992856922837657377581539022635759504604547807534322033035472764432426902275282243369335987654960494893513251639090000301050866801961020464659108835408423833842690086922585652626178753957581233008970093968210620858248227098157107578021152925031429876856312523715740365794846739151649989744687082280905730242869049083764798869357563986825297898238563439520044121588074286838546431524566412970795115663532292818158410782342013242001441464325556331777647694052642197623425807160558491405672493088451018236719218223902643476823411080174782863897491812316271224523832294321792782057540717175880393360322242969207605815236405225203968122469956692008040213328967900037884948090843595143459741079578645320932145115927100979455000397375654714722095066055505903576743181393052332101746598572565010447050972061653308486615376555999559044839146422382956384858970826894510932451363501981196087434336823153830622523137143731420189068054377684170327726556609071707584098133583756561317229145307304916976172110955406300068777142326724915157841951673193265890782165263881357135383846715589523373658954652102668246712390855440358281436228956126587609216902308276968133511839083634222951403600890471449348314361725204336515727472324020599781017870993324714163630108084458600390201383420190501423332802442776157361189086972768444008230011186670672447413856730454723269551860319615500803119382086940601870929197891553407341606535327353587222102834284319387778467092624100076549047375527288971687670816600853616333563504448389635614992374310980919697394836574676381671275057856103092647980077761182485845866352513473083068317026519735484693979988551726907574949735541896144732758192915113039054267500548642149990630475363332188029153352988239338529196646254368990059303725946248309345123059409438735118080271853895214188214742995027917767378127576330564883863414749709540073468367549603553904454833149586119324740270100083094114766877845279725032907134211246729176040244272953272608413329097699770497646472323126512568999943705697229905590891812994385765271912101484825000727859341801829778046581093253775793618403180488788280423742234856190227588135456357973843898607949228226980363884246249368276604645307268578899564571698071793107978586930412295816280494838085786824606301669328551432440453217991648594175626820697764139273059869435362025815635233208679967269607754949418282205805593249504470975089849525010174933022073586864787631546916267087424062755235292271826106142761178797981655145964625830492523641944212625071970517925049945401728463088001541143855242178297492650235203863508969129370438137017374212618725645034975991366982672108261820594339330139550399763855424442475197880162892279073423915424096131288859661505489165853856229940701297599910204999103855068801040799104770870687287657572762768634503467606468380359744225185527857519707719054234479115652127200968007655187324017897773890365797868938541061199000746011257924485686941096913187134078645890764348531732030254655327067162940103518824534109806000416240037518035162181475670734233600298768637690142384978213687693351581178343582732724375661039321956221375058060895992116810873080164218484737643694103803969006489704346437067933460641038121554157934984356704519490424768796705235183514858193640094396306327068128628951482403161378784782142111863938065471238006121777658009009865522386251691217211461908722879232276462518953029103553179040372869927648795583344596496744261563204285294071519748963248242109870878001751868706079106006576067668353774243083423887662004250303510917758634103117726457312465693828252832903703698742994925153132671896073362262898070964566501251251336454324022631569445445859526538754212422504392760815531807891886919539846369988144318848842264096184285590817867771358350504031790246824677122003793137823915422486480843527493087931287659402897210112995837665644388242961422703506881034775312097726995984454629723584159000047111336667222748042006237718307188888026613995994990082871741081895569324376071467329239798928766501573658270510462809028777466426874710909232307213534489755095466514803833435031604782519535097441342229356238412925497254776065619190776679409384455065631705155456527138747206030369806670539928742289148767642113394037139498531746564554232024626658278201293713575077092952671534553066043203943474347294750398992820438950859937720425223038082619981660111245375617966622826274588288488378225273173993191241958752339171704353096969321293925697215764317708305239606581967276280027722590948964490376277154650673570978229259675127272859399649780319129193055302559508791680397305575854611944108866406630790564219392181550160892094924591703809475074811334541921941583691832061099293278025826852904299880557426060542248940517969687367761998995794748755109222668329206766767273805901820300869649902039213909904989561914247576071484798231204560240479736162832654233584407739227523675297935608953428586387207100141892953446450621964848493730954579445124337956491811938852167781105089141015391257070074645417763605680755713463591450794109462508945721368014619129503699421033096831905867872155091082285090480162895903788195009778787573680717914888308675491941247022943033254621023676545225127732806833340304164265362322157135325225526890353095988569500331251225103629461263291956607821704668365385145209393596610619787373551097722299033782497963220721643638050709965329537246650437064429889796265695661864974678140570908497742515101428166026727891582236661519551448513731246385043713257448880876770683433647471491430716496611101928924679858429787814765848615895594077530062387532005199626747446863618619393472060826001944676062480477937911540224751309523881237667814527193415525307513961065534322432272729284119468714426759484722397279531584391622591734577097441042303563992848627301543633562933225653405045453082329631426425184567603566904049061143277886087430083807086598060257432849361097552532682906594510964606139487337588809878273718710319080127972748565685855788577219162515275463743895778243182062125936099201844327667938194623434465075669905301912428568833033900447604544715837821759743438889856720494440563527651243196710708257284690786605858521145837441886015332253589552871702729310791180880535154268030915963094899084258092786280662018269730435709069817209809923743055924494791751763528415490865031225240148942030300097818236651215130676835183040498166047995730171023488533288076700187201383341258634489897728709500334543689139547963261378767968256219313215019552698553755161747678295825619286942485908450070804633548730645622562967675372704617837866149344849156943986394430242558727721753464408541154938675626746767874513212630397588089686486918964118344096404309153085255859724454594008343462686282784515222236930762603613115611721747525298792049624208335579921637550780830189923130720861907212089374009046308332385128957596393243275846858373649800960917175670923401317650639271377873322968809087414091614381083449802288661112563122725094079175709969230922556235950295405008780670006902370218675325878050162624899100401834889844246338543198663338541486720100319947050334560638567699514407754080432145825228180912420278065465627720922634434274609146931253154552413998920893004942937887970580658924160181949141497378582164030576255562288092682479590750060412424904409469160925675395236014505304520067173938493265318366439376104011520899894486570360435217236648365445845982018076095980643508822732139109213065402573880722445280323501900476494673881427517222110749896323677926184010132445233599759606270519354333205859258175207171566884658404169367195390388309307071904724151676914738640298179231526307627305145040945599632402128435613026348601426461052982462304321546857167319295862831807222231808225086777852627995516883284489874933090138800741022704164799137763164278490347083043821433037767150885457889724666718132946882132320269938660553259477527765090269052756844618966642628741623969315617031256511911734833056058239476922418416410193294767656351524550234444458289343877766776602794699624183002217141495848148267645693651368219438203095563190569367037726214538764473764001995711469354675150969183498516643011002533108746416430873545345739170101557914048114516095400895642464659114654518221765311681267981065186278224063953487397433320426836757301413624086626801465162234768902556131127452828047998948163367294846400660981990025755767365510447370564845053776948632270846640459671654494784149410203970753226074850859515858385437141893251959190834202983273594018372082318789039522508927289931777162022543684081064397487649184640193419465774349505626085606182258543709408636913532952538298999331904499823823959445450384885459018170980659122066650855620038850304909322891532481383943409458646308333425122766351009704037609864102517078176342336982879691718786599728665604762554606622597092475734147901905940745119504970649989450918345502240107341567136171881889704523204811797288642180556541142647899129667597333386134752602693300011706380383887061744316854336946529501801378915573420112657128152406869252067709393795445458839269362919164426377036756170335626306205055058127842785955005169671437585570087029287592715131072878027782080131077458649839479333331629433129889457340074912696578737009366042991411188034132136959112086599450137680650591995119565043213199260116947981483810085595253679856428092326313402086904103053541988298197928910146555576759030366455246006056925193954520561028119040172306609227544005728392321243012318381738365252905291548372249734015884249708765968439628690714069754544501367684249809220574418932646316220680293798581910307299836016070020085218316499696228925274940155981410701113279388657655048302867536026549775601295190966739864962629277803825650892506891816608512841725409342556962395510984535947878894481555266212704419746813863574227923063418588016123999764350554462362512605404319682082926885470055499951226599786253232886471675976210368577331171035599736817232922645741671190361198824727796910934246300087104635649954270959167773838719035611434285756474031376682709487643687429342262591477151904538875614654581699943071810682505939811250659454713589382635873603690256590263888165562124739979606785235256004575026132789678291618356610942709324915613626419894235719349927456762485552934121741514891341672115370521611906349699508463144218850605106524866620913669248281410681171552676293764609515522841919881482298386927905630120613951490192694581741626693788939851062368761400865053383520372902158187604766539377990079437492648259806844811684812699654020726314928581917617184457531758319478948698589361355873234080731609301006431040165018848217821139924175922803322205911677377227501327654466343875557551709451604276155663872025046122218534170384861962528682947553214551106069164981876803329481754350354878766122283450621310887144079059994049293863235203764737030344032571342598141358583548395332933382167513627811148806923031742780863019021971308957816996741861996900973199649402810155376096438848598034456212374409132554557643811621540030727026914325747485097179675513768822272652843812478162859739647191516352512678189881304267732151469622454360243326968382907585586605247051564920196842201484091290401357631113911890862914146074984716271645415993229077405699401565759514814409830958272998270584406550353487560746881783613279613882199253744221468380892175126174199229094090598374008649477925709656436819591897996775420814985691856730548337802554733846261452256673038950234994789093369867560034703105279987261213213622435613159376102305919521810368162134479701627085191138265552174303448247427395624512512334535544726430705396576841850534022138121171630144026212756805596984526567707063046247551591389981327613386587587043536361915041386424631328988424184442526796348562428628004154869548766855703628799092392063131104064773085691878402569794239614792576676714351914098193614067354843559022682169593392995557703394526963218167452399412520582718552355866834353864752280345893277368478532104340829335730966185208967973439229964468172193180200240567668594161726266584960640052043064382325756350708649834060743899665419076909190348528201048337797547957536030566402540747847152705838666224796722995743210921917154648407509464343001164353232744481344270264035294019022619049538486916959923067455826963550606092299402089631354025835943225093379744218170745429545917671433904950106215259255092054231862229071349612647408158127011802199356695817579693573934034950571893151487184432567804256736733602230510224237789732814838090719529557104832987767565462150857098930309173628194292298938724927594199081913396355280032018984142050574740836835665242830789085872207350576749193266169921816409292700019227257041047632068830359831886632575974914125189022714995286197322853446625622724967795356796052542591121704304818180153526717310160226496923165057675086869024815484215635642105350205210302100820098277618553823728851396618682725845003296390678795232690263603673175698545286890609858572941013265591699152990999089194564882345379310237423519902865775817822088377198512143617648578791533626174804552097284794913185292157289190772229092124900290722895731436396060349467641690684481519140342601862592134513624978501392767302947809047930179009822322917439648242518812791822073182352657859854483386264790239197234701006252538417294755928913355440486891382659132845518164633820538455919186387896542439353828817962996675609143578667464971876134956984088016287991567345330804240356296640213775580054268085670031721703873481787741053852409001706881324094881747726271715737230701313744086919399557112750867004658614106632111419383641919601133863023086533067898998825166002489600871936182559560447561840607431590532068371739259979486289798006164911073322860244615834713696278644355026697502924628203725100616233017696873365528958257655359716957097269443730473301548994287933409418795264216083077991397985205197978441559976396364007741485093362530954620480272088804212776272192769746655773739967979931838907704897952864699970777729671128909271693427838970015506853886159268986807994637044267010110743482786376335709179096033077461482484213765296646472176612255979845678748765164444387429654461393406543441455676693949402631684740530810845190231952453345222268253890310118635655439399684488032765892626874090227514576194050451502497006210690009946734956539635370775738270995898118643699728310914532275432190316776208377598032297299329472471348362576587630153544687141842542081937641790495615408341525762387177170609622000852453545280582253116478034165115816470859671184596592720985521303032690624069892085662337507953644078856079635149694381755711767840576427103898267438575900564757280479297652475400781853528318619670802078539804314844996249170220668929148025419677643602753494401685380850267808496788740653648449308281206388398192259923304699696747830238904125978111113102418932797366711472950238019126656953968105291214808784596471528159305293169119390032809445356640614126248262703541688783027611059741650969710998135105059999737101073939276241075365833724966783283904356275037700499646993483857216386005150493523767580852786434708241826519843292432055327458702418211326937694775757500914812804102030403802683779314998107036952755617890322499012966829214922988106994398951421932435939454216447924532322886115275782821280508673104150520063378870360538299905238683530914415373362655142171057376206077161625462857142220265195993900426711781187627420514852247875937873405860073286173213551667614424428283812350546870503651745936820910002892883271386794964859498914212264912440798707737666032156728874880692889142057629330921249142449827819549633325772920748671790506006116697765865700072029055805823406349934184860965235317993815754942303017237063467161226926942415550540774926498759228133975845514890361755662694406706955502615644865514398605467019416703900001123371318210249154044582510099505079602511287492039269293005028170182765277368551526507570620250257740187657310553002321197806059609700704205978313437821779059282643587784972990589336522931322386638427007142273487842072500441439171846874096140312332684058913192129862022331766953480803602023092748111912668600748143259197118900902339769454298828573231414717134719838498933129231660047243444265340990757195272908929846258070944439759642016382330886891650550646027977383027602015736304418210515299956417151256227916614218835352504905553820269185603068354590048194458840360312914816921514810207824195604376296435100800811765709785261598597089638623011528174624125748786295843690110050359830396965189848741693736732448136072134059973284364344455109702699305621411559410330048178261570836844134899166640103659570895663047965279307356805868476890448324386328166056573746622594916491609799623071134653295670344797436725931409697134765633810685701149136216701533906996038660561252070418092833079776548659421104204606168810035768290766906597040793765104782917316480892065469124537465341877300420443178407321830530721307145576150833015979262920627641552284991672686221764553458792200112803894887572357081001113755332587781952412517948330804483989062682099913836424995370788149471782486248358060358141510344101399650876710372414447961915400072335850177924735142555501117802021114620050408121702915839948457729191872961533479088040186637503418353783265573827727583858586896160635264900492762892098211599496438888784724099551029834227839883159162952345565052921770393416923126995023647179744259285044728570882066617732229226530672703007539066942372677335243944576689369369808300340009020341536930324126213782886614710777795535909231114747169070425587736474906953442379680774449181264622088911483434809027529787442179777926908796738832845357450140331613896253526744251161225414765358409272394350106669497785214718001269658941540620530999724092889893445404453593166790503330224464493976933197956279157028867447371111477403934526039737052594665554804581248889651853281034045045424657036958873933394903193114750274475338570815788160997969618083354344983364568588540374043023946820522204138146673080402928551450825040199817996564639838632666552591289532193745330019128433114852925673556483952412235796482451762637437313001860616336258337125748203729271951445222580079164046181253447227639106508449368434332790617592707044923848920513508589362914113716117555385151223228038042023589369718691595495827209614543522643479435057326341529704027659350601818817715849295727789213432878166343954252278792728995561373581703739470444624086578958854099482113158210396658844416142176535616297855377738934453320919023454695163424071795962162914769936214431452715766525105984537672820325877412785313379753412128589876990279565355428789604574278626009908190773219319492743226099008819534879707111231495565927547024095435167336931188871086813670258921999427839256323363212300887478875300017722207598479859475627933558833230394416062789212928410792790632813732720030379237836121616874680961345196979080527661912810673183865380828130144815962900582530757533869117756862901863524729234855451225353236762288190121886689829817904423450453438257389501544926555424353247491899462010725288191806142110152030914856224756168828653352002297083479768685012026362281090440715766184448030546364375317172922793268323618799834152589994627633184279570401560623467996043541643880318664802207494338408850529722312993692823163937626913837657957989462655433624776872721445257982449068004463632530744457562600648676009927015318951573423487411768900850592436449319763376875249691811618055426535591619364360775419584453688080954801337872502452299382568875821337399247844172144141830582784549844476471954697354205454024823557802254100933138569922499585383015847968402590160933346742390338079940940575711549377412247015882988964451343310347064449770388576857898479971828913611562289120798742459466219380627208451022629005732591838270997945827818932947501651126158457182456263657153660769772665741814690585285843097552243494083163756853054712006953351291784941441479939584958967145295375464077325410335249640017283742285489370985710188579682738660748615125249225231090788679470978799940999914792841331676893332967185319971757716716908721111568198980933206971277595252346069933483241242075617207518410436204248505316292675892216682143986335804718416973326243394319581000399455777633715089946195426240143063168060049219719066422781458397577900281513034548860241933815747816918120653598740385218666294727363480488149377053677300594860680194036296585560692908334546537592359301844630015305640502603671624356678930785468492715833721045258275191137962183483990041425165396196943932243144733736324596838684870992590255067627972175175940476717497540751594423033616712094330595522441647171080942858392855727970987902757170375237573579106469237825839618089031777184003500558675047215917940321646234951759175338378793836256399130929458198994733748538339546825672790033306586648157733285582327734283363669789438534416591069836708246809591410902002071240930370099855363939423501139625539284683011850266415680849749382931924121298761162032937584144102851311869822915181690705913356479758412902361604209767597365214388862841808337046269002781463907137295800277767708153271233772384290573634738690275982329447018504168746238129084359425638932741612294684963949044449044910360968096452424042632822280660549295837531482630245689634336342393239307450428519721698355076291096050852544301658279263188832342940400659921387845553681828716226872238859529093084293257920485079497922137676429028509521512067406181395431850850226137027699382110797511852695339064163503707368425977120264707639307129787402591290888954874881892473602660238770346561329343672866627645272627324629385192919723338246133438524758203753371657933351876797772143512523783776287399627584114037556839071367048569912061301659865343030269109203529214848209832842683927437257365681946781384028081244935416830912041504068528196861153717748868623866787199106186677952527589747676535893295115881737269401262451471063368273046050915293887549878913822157328089202769310241033100225625528687166958625126744420866598807425639016758985142114205892418382451413325066139024278846840903334122811187588012806700162024191401415003863432192299262160947342656355817601201325746674912866194948221187067136574204160934561509745300333940100138745181038047889287927907312218939765024014053378076252854466531960195796815945411277266955935189939916106117785120679009965541253058313381620094259043609608838820011122394534573016753262654619251367363280678824867037634636758612439147271206477169705543062612480463477475832547841667274832374547318186782705217721347630613590526077109128548626248690177143292827874168235870130366296718716214116582288971144912215486160964349151650347523034367763975310262913536956479980592744611493297969400308840419319770388808203772112077024612939910716887127785586782551223414226080616580565884309847169695916941589302851190685537722717810034200061697453841160354239986401841895652117385916708418957794540875260943532446545685502280260238136243380972877995640149512320355791122526858664074671825576293827787850714103647219632948507824729455530167396005833817487709799240979248181714209390950196880416565355951565811411730247243792055701226342567877623900091888295006782976577725358026462435661004468699164926455381473387176549863600444904681553398332425613740092213670393267088652457506011648933101761725967464952185755985812936188576901522462705953876293865427132150654084679870182582696127250306107454973618416356969176335912689362929379362899410464066373569178517967263389369399797221656904597775927769489236351810311476874544569842984294822690246573244850543342297138428457149858479532471509846896100440032895967411837457245458060065297759009421877231383723173340149219789584931793269187573001854193595268194665251374224330124323302623273751021357577590413435023100598838130521677160873303922558869332023153748858064667897411848684493309330105900464108862659147047510155134397671974960469559571731381825159458145707872187511359092034483516105998724723125444537089678940445073937507778576808793547701133225257561573962001766040725977409380907832434126007816773431350493951529331581353703392108396118749448244578453094970368839519373142454782522159357936880657356190901421573002829818114178701738491583631836962937673638880757672167064803670938253584660446276755585096377471173047839868928317764233023509511466050255589563355259163197862373728717881730693163870681988203492603419379499686714292180315147502704242020046286051158087612032007513228273426545560989450197369349326508015487334854316259005788785911879209536735308452502591214783667553986951145065479593245304995468013878251081042651257178166157805741853646659445501652741741884962147905123527821516156503083111017774919519365869683682956251868779495675880361476921109713668294988946101586240839747426667508919776563095753239704937249920547314103001774866226523577705151537932908518709683735000362349615271122622312322273137526121725989287563771671155960113251881895824498231348161771199633920680469323685570122089881454468989916863245317962771451461525648139900382877067263312966736651305065507249548974349453422057181562669032867098821838910359657670147049340627475395617427043364465858538671272140999251889168971082200765847470159680416949192808729124928498526506949104610479158078854908094614652042062272831072315701433964226379034462666811736024416701127723497322415184272199796454158539571368082430816867647484747965169610823779263901186456716861457787033557342147929008303289144315032503175873187498218827475283298648212381471651025346912775595422967021641713107600870062479952161757216500224765201626330888833700327000812589689684242303370947617676440021086388084030613747629470507146512855455630159376916282328946545852148965293670583614175862116140495533836133101870771747308092191604801205373252009420840426660428248572272015896707779736035737985594915981656361178016913863817568327842689602522651132836575171022177117784163781696061933832040617919560320802212344345409677390415457136214452215968278607779311987471840458538897373008345160548403978699529305215663493613264580747380086033958329149249351569864367866023776487853408552617338355231197844430128193881704295996333813672876146382420955436392598315472299438242884524114644832752012161527561013723339537374479196040354654139435374242209017449550097430206503625801112865221072976832211004786248694878505695511547712995791124459109871655215020810100882056600799618981088422339649059068215316690348803191254620640696030084749942120809707597476428164817700084748699052510899163460916917990348045471485712888842765731789648125859323811095049152777468737592683072678484676060922039677135610776907822690547633925403524500183216974160685208645599230389841473095495367643171786331862058885287539155537136800352035443833198511542420411877005882810563162697536392763720358282472395654244807386643989645003612528486945877255551696018465760085266420421723376472026841466390752073482931106256507534902946007428399844343325861310179394883847649693668959519022935932258736920844030143638982652746820805843902717585680190938199063746019571885719824634315839850697816026474218823491750972476782138432942096643205517184700476460950318090435350199032979151462994756371264304020410352686804339795866696754688421640810755023421415384923255435461124316680030650550474605685460652464623417384799491666149758012005457526789504913186587270966660798800166032799109803170662547962239821437909956457212246575901273683726431555005894560045061255062269958696718684358415855562581150036563448350248867362295770283221798209855649935434827296286875230626098680063661815218029268489977198940667351604165775899060527440855332889571918605931522916942226453392266905425391473516751340786396089252166921728163532986803595848333742671699853121355300016149751591363954873574553296605149042168664909166920816589821502717941961216210945466590110127558884522571079367638608793912441509746751953559130377881415755294301964862871039360367759352495726300060398257022228906568674400510288893588886375879449241837305566051676751956440413790714001796873726693962906311617279233198556308417249258620581193944472182729835209546162167087828858061020629578995999911327713484680912093252232962578419416830238147982798842138446994335652322372149360463269543587882457823954301045700169537991970904851434749676104653507937977522053218015914201523950045119383051135773651665499803514689855060924607936644611249298423568750910875713225011346495188631365001029736637753459827085732854078486821491739072603134938134312588965944937611930582582391435612117687088195238486919342976448359943430812522027016993570116807498938375664465586556088151768693464139197617269975191077592080234862080647389960338164262486984999164121689114617772529404159032371032781147816986341321734205850254685161726360805015052464844187593435875747178624346825276425052565077755854603670012743434314571637664395979227458842364824651682238276033316729298570283563596824686454394673229536055309216708454047431311568141898815540156882944522881191957307741357440517962109115865471486177351749291967261144137462988382916785872900886285503348511095866984205772978004220503436006842829486817857566592569304748358148140042474963317059531244866916531840160761987603003959209537694936194909814353049498665516161029319153132188124500914686851279911075498485562168896294382042137818759305847530731986260527681842204136368525971341931425173286969779678386378020659057542297485965125673573679628026231275358442646829837681760405275738126242572520748581136391586845252886033070113776771850225180073892074417517101746240120316619351248904807174762366141217274944907963318065186036801628054225258733390911992808930058033487701437735410056476256009868160784684935461705662334744846671679512172142096833591783839386617622126170284015948032307360590806007250333938538896953569706937844513576575180644120979322532215523307133255711152456403434653404281610232406894598775929397052047883350011295121326017990565816632293630578062209816154055328457554999483706404787415408225129387066196861347177803104631236878865280379520145401524003020427233040307862992518108014341915128958209268384476280542345814407405535286783980795507252070700116083042668522854977990911659424093055542167079758482761990130827697209365876811422400042609119598401200132778005356770543842563621733141705257620175936902225079769790069737681020479099376895387292895115422342375925308947176169009903168537187065994601694489544963357168552406117556075441342751132566266060251288664023613479007998930485693262875339251500464240260508440743440159347158832805308242882722991546235200546441719546234607400469098600958308205739488423287693815285368687954046909527096707878855787189839223705031543353274811051296521239386510016960283438054312186155333930228541516272268764611245052541334972075244696776444354558866703477780982638927344044163135629890132170528756414933706172962759895062439585391941266881685732719614128708094906112458147512648091449636890446132248603398522863908736240139925231408028661294241443712370576521151306645084563218107989665047263967906198639532219274616443158851013975380648553125566781010122773447901962909008620233153610382323664342845923996450580072501650377659273113887390183207143801203820869393745712466851101513083407815758355241580326591423310612146325223632607623310284253698472211417612977915813989762436706715890949822351927199796891319292955726058187213412710225655740702233841033287238942987217210370056353257584555796681169189543494321910836924290429882370729570802951311631803500505113291923510934374546933361704959005731879003540005048818411815528548761872135756816873503209813507098080034327945110129562089761276537451494860769021470059919233347879763984031815020537804233775410894885831450770899760648363874320453068999727863580523696418406732040737262380372573973964245935354341151874679669900096687338717418629531549484793751958687719502008929441006125070265534787086745166416119159635444801293045256776097135711194389607913336269075433096580828483375455956982859056381949064193069738534078367100293646763952101326783270173332631245396510089348799537319320634990954285532967325867855168595607487759117295537504698825578870006834952529198543631300426731793158859217756562547228354960522793916151082223078213068628894763652559847394754663961320792578140538938401410449062592529972350112705725748366843680115998164320911259766181401468567338021998678816671769606281952552054581301968023618499802119246831107128167483716166421753198686560931157303189002963397859924458100024351920425188870855671705037185537413329540097714674212438979621777677961070741825843592897242104689841602378422541501441021487322190906167721686073673356935535972505506836180217012776272732022578463063037578183701470308403629181800630052337423607966832309095808054287838168168610942076143089976911805283151721392656708201255931355174618823822844185335777312413127393218546760329100932689137635170967804270098940473108390046499857291805688297210277166685534613522721412658143931919485516697841479942751693282335011982311414118112717992882256578340573275362023371735257340560521000484719055622622980135827444546331060490785359294210128417622913317840327978494875140329161380288166391575020314394338943691546046362645646826110415942621561391625562457741451342272111178263402493653649198787316747924296975731437999571252254466511657860639660801609384014393619866835782216880537886482207866177997980284020185686423475589766003485873270080076411921654024134105909256942500064173914213819081077759126550033274124692404271908753608875938312366451241854123783032300418737988092897572930830200448546526210072327329714420436237521580637943794965256786945507024779864489282039413753850572599316191601430437455660870293669423736260542030452891614039396361924385710052246800186327664339147394905312194018278579343551501851692803539801607203491924704974285746082356474960998012995303690379150701729276921584500958923015053004257079698307047986046064401877345066827183422885832159212579217437579552308664176759770549421938574571845364474929663152260875186801701835920481998973280357710062889415805399348812453173938831589429707341615194531954352138420406818350671143201853892641087975802292114398423888992762459361967891707304947954858399933765674396934902511978007499859780485788712979240330333107262159788220794870050995049767840428789156036936630071491769509413814436035771966996343059104338647444380542239619510426204269131822817716183943692611976243033403551532932596042414044686031826915758330090237226662893831545286816161783523291521171595662569098173995989098742109537889039387117962228323652826076393078807825388299455247608193672272131402428843008098853100407687794930809430809806077050717499254267677909423091288024688073295907483564841274814437164696472726725182637609588411937022263697521629207854823082492488549329499845415857238169463089768574463990513324128070463758603404298939173391371167880314732382556296752548432169452428038187296819357108415968641403597407637635312984887141166665720234092056281252191382805870349084666160973807424817623634141177389633626088883780920538092302119059387348160851580530981862793144316299122864470363618797888012115991230373060485704012078323574263711822690913454107099906053358151184914048054225476764638776819604259827286400071241028886917355762010238618180875687006063863853475448608482959378115638859265369842559905152668361123590403451597576011735689048123079911322453036037199514529401538640139392706720556722531533799731019777175094750624561188420517790334299730351410999893772432170198151255161640738582235201178299935089971052825887860673416773987894239290641636293874839272999790220528747745034237575478951674176342371306271180965352051872357613006362967723425433600369554294321983541918917163832520274180672878795456339045620462630098741824239499756343547426312928890677148905260800427731596495076738180669815074509149366337045192899307517440080956188999440217782518649401770856859368891023686333016595372900015107456905016189824965113332254299990485084402784253860041792377688624360057886497434661230077426555458939523535950092667668903382904747372061774501005108762349975608823434451162429911416859536892017916325375063452646283168293632878070500788263447532198766568357073390060717410288253221605010304262401134059776639336159410596192653654740264118190411534063435971021514036534538676919480246426423433080618049758769273887417680848639917684472935389005845425358969637584959077286342618566297029145629117141279462849054910776063431266148458951588031699464048188815061408371685669556951915146276939496810373236623076004654269176309246692833560590599459817356820780014212919257388733463657200857694360381351827710229868142991567921179532267928700038008198500851359056985110326740583141631604424218570265527849253966422503611128549493168353585231597687408014532672677701771726836239199019244432947240117010893161374481401197921956379896802839962000319067567463743004820029178006436107701023124066472926606975027692836974835002477601126197558764774223689531165733618459068633016860964446457027334022651285677105000318080862913022744640389841813842633926370531412057835181699388821354459426813972107893089579073158417512670451254994882001014361157374486148226391281753756535372817073689589123796213175191650164178167219875643865326292014202811321662172641736192396884780133438169328332139810108516634349412645444447786517197145358241301704594509024654389654473342052333359612229651118704666031653343912973997867819001675461611102181335753201117284496503155931271123398580154108529475790819367514842036577533714278050644156237950723843534781339862657244058576039324872429881900279525342637767326224365679181133753918653381052558159133728304775834417267772461705557652682284967351574229764810124519691888067886660650474073226654878811174709285851901991324903565775890582730193068333517480114418748570052457086918802789623724399628708724657457075040930923060411229635003776907593407188605778288450012667526636652873238205738316706907876609307025390433395095598090988072968093919476216487818715404177365867001559137135934081577891567893307254990604594780434206063980392842285058167920151010037754320654334689589145404942343693014133839247053654487041905163346325296296972165267815951145241184248053678983622085045920806656556644467576918383920829482912412844099763319175361365402812526923618365457676501089488533217300155766357890965641393778458066352355189776431969118874156574828442302764055683013579798099572471946408019841317907057543102583968167611284929148989415693341305029573599134335538066704148177566223716318402913779856341620849083769825402697376143425063398476143575382193953237399300413584765853943174107007381617639151778233320584360050286277538547000422739216506039041133815997767624164254094497069489764694517912921994101586067858612115367261812552110856879869094654175011226517337494632498746050738269800767572229111135897235143174506940852431258771893601022265716841286970130970917339369113145450361158499131671370244329942861300364508319494470169828793705585119146381615676726778532619342252889087314784869157203840227586006918503907653911048668107026292344093179996678825433939224643805683996557029435611288496890182046824612571706837258825293653539659698355332956018612880397833131358915767384500212951258127146657130238763873224944465478410714586940775360084812553701350104590605933432607784324160738499613762833914758536902632523681509345259633291986636484026167397151959107651862428419545438211116330432617489282948826057708920791884560954660356349332394660881324547784417148823252370544843078772123243950293187305102966427577280879089265159712302984251874847231104558103953395751522129062471994372992170817790822869999435735134704760157993130092494899729758478758748060071103680310987825153411973126892329094056583529846076002833857009191170045154922033571748172099662422978278578092285156519280040362976372406186435324805150699052035892810149777280546591325132332567367893488384375815843056828498056197157215048266332635630096711176545392934601519823040000007009702437141408006143118174516633817194946486525754975255065389072544956498288579236181315452101517617906037633172653035554089463145315540008309227587764483651139049181345179485825044763313480301904679030714132494674901494909935445200214194942487013914040143370205552061760218375108530619649609849439295318894722651177305368831248534841209838086818530541039444164580410234352748839162237328173667247087221569847661105804375245714991622438972388823085535378919668020829677451466226165672674748688094524678416329225647394863594810695530847249518153796496000408809699368311868411723447158270282318707893277466281477188220622975564442977773946029581460701457382095313880685001524146011632639695287883071988444572917193308098560261904522605141789361654904450780284408137022564105485667884427171681174179241155824839318884748888311046623063697536282333520092148527073067376231173335386750856173892014707004371969406036547046943204167579987283783692873426581473572636917569513129724003143466057880469396977412432187429879998668801239858002047052731162465699284126405792901703097674302562414568724044643005745541407916321280976570427573380303634301471613258069596938547960231219848574312841331105736637242847735033346271475077420379346316996183451288367090131466396283259883734820774883995388299901646917954704987708342689502011439274653128344528845730139310209042918665620715487526656002054627056501672402674505824267122784087089099628946685508389633556722067196857207530236540585556338346065985595693457520191621422879999840147455237177234599520978519704816720572661334376136096536899940116751777484769539987949170600978752974451486737727963943830107624872828327771589064479514368328140359675451213466104431201665686783337916737363558317791619919102342104285071363878404174896089216771564121164553653533630964246569330240162734307987858312305997420146211233359197385234367654393437876058882951734213479650559476709897265797537230031566041650879279074570948487921270139322214208425039844199243749448875742448185142954192762874175815751484344096471490595809270591825737717491559904251664687903556517344394885061807782870289341405687804910062930733408920720121688495112091796759706407603823660052185240210154167939903292807679238534014529399857859314525509389526912005743446694577731180340697096547071894252717845791833233240276305765253506331448022498590808596575780817020054031404565884964802355717543679070966868465502701751924153822888258605117463692491149266531785353947800312431628124320563745536447123504840521157196349580947976101232994219184356406238044496598377329480019756034583637792557236365656926389954958517108304509175263463607136740925574814690451353315693979608592788001609400021086960686681569597850565122366505624146167639851272934079301907028249889237663436451992352003579853997949898263817010161084873870200745102439015763461719485832409006519022921835318547138454984135665566477653975332689518947666677824632702535502963898577858397754457234785435399331009744945046335309862096377322314710473514852556208806433254480309852227741613271978606157562154354810741248002399370776868609412618338810489931116079114017130353598450656057928783115442370129037880526708182333817359710701666544021163445549342791327661032601966107216863179963325364878156236410375238883421001716198006507669134914230427680216752558079525222826365539912311544887357640267050756280834294099391721010451384670660300505470758787943852326486379400938634557616513445614670738524588999366227742105962645289756141478386962677419998131448022039307547348511183339159922754284830124711970335815909636395361144987135710471354462997645041745924321483695052271252287842364209120299543241437421383550722582303677402814460005650181803401591210872146120028101772271781012735246499249528353368688130253480727675234500187668924119714833177762030929221975558285795843589813399171018802296590090996687867348230153412771747213848441126777340806824829586394288144437086092916844154383910062630316770674473683519367352149842921383387149274525814979160551735964029550266411699617668091629209283699255493881254325835690928070206711357902350334428591717163537316595331189720790242468857666533415366554529579068011966613347386121932376602194675375822646298530395185063428769023886737579161042611803763744191972071669166675258886608699120878019473523438796278831019857038701616168415071299796677174898937793329323889479235745415998824688665327284174550098532029631123231806938413251050506531832227848751323140889423571984447657844327595446530622408920283247833111053817148952106150175784470541607375794983326757581361963750024170608890003463623590499303968179715443726787077814325952161898485215697644908001380883561247693042328160223543146552941968491548189722100340415408429549482835345798942814309831527364738145223993416874899555774518265771583388422624176988077582756725688915284256830052931743903809434834410843044268629868992246269737381760201357269567707752858617658243432007737851230682657307601342428133509426929536025330407054020974498921269710846449220143205045411733373794649007533300661764054678976960010323838454746788438800555645818218659218138460270898628363303869018539843468841879852321776741321006184914019596732265101297824804463774153162180257378417446111896125348587149659180043055028773888011368941238035549005142974891058329212700753562673771726511256113268262355266019098861158293961858762384320514211782549552584370419428704938760084095117459105131338857319480122541030401564297120939669893624122649442846774232411030267502307467301770242672559828879337285603798739069913399766114402561493232473432998346881533408249181454760436174241125993180358959720986786231398837717961079483594077977501894651577579302402460144232331484650588131527285831172736493807989451004022274970830552632011774215112207379929022860544507741107674147819317262304767635398677253074564555872908244623816835494574520212794326453943466005157698136107556079025380919154568790906442919348189253496147414757814865647801961778848297385372923063337409283450392831400480662773973489616357281434465128246050941493546474746486375082000436553261685067095866269820249114508034048846223274701355511360923085792603872272890290157137951939778778515803970239518329037577972736431980123207079640999400598134681962891100423103576864164020191422146546720654033482839745751218857479743427277504770229344406308600759652646702636590524528699507768733437213813888957967902192945460096978035180074084073317193137437176753578027345416401549463900512975340663558809504249259801775431124793725547236325583402382852417122742960337326640259373346659707962741190358433819191139123741238979947066035128034531957763347907438454798378725108139777881417172292895156989811268777104787869358059683874163469526323272175202543995694179000942816056047027216511830046800330468905417613145783425366929106497175818283011130838467674762665501830750962543797221989024181440930947757785687745248215697673430942587210058788318880830058817127942427962570407648619219014542386933752886394713417506437066680089688620745847822957087461309232136270975901617986987446130791736664771566375222719822679313257042032736476729336839200562515462638881279055480883389623742984377710679578597346198617483218603479667127062314355335713174246082132960401131632518972888375331371396162813775957542015541261322289261223653455175843162206537125797819587710034324980735997199821810503548140131939899437862475457668115793067810096599211189349156215867469573815712797504956766200054534936694272569286734032298996577358060581946960255981543719059513243603259456795746356316916245178504929781192221874606298204368692397805430283231114885841799252283263701127188448003482923283265867094315943285307926836018010744536316561963951339195081134243719685270783359384686203512392833963060693646300968338056773146484269897497478488394216739231206625947201758214462758104252154571965841115195017022054316936230384995669226177330950192200731367253543252096583463177307058134608244658650883267528396103462373097093975037245824596089365686414845085962873694600097861375883533159074384287804583257152289816386861259968056058674656468298699219923559145640645632129552220023700338659880647509825820721816661352790378780313436688282154986481760434473882856325915715096693157036395287639349107780090566317705414058824182966728603219679577186626166157522791270442539570426772561654174331381359315338105499552667529800579148191492353805469297220675567512778752768635563624494661765913877650862909294011804289519743137408048139403402063161809703757329459249274351941676533166193950985625190501309578177338634076403999367162844615286499891673086470435698286627951429811063089709610425544325993822615483923574442204390317079525232770372701048071871393413182255861901623913967093429395056944300519232887932785711302435980310040566740829606982855647846670103412070383832408727203730573903465878330355117519797786007316030325122548488585746798842716164716999263029054779363367665156489048922204711205529052079627388011566790633762286875206353251750485873343323550833449120569045003878365472084706563625479824894649517101079053842761479045883465462189411553595009375561141913526193648155494797884106355218690407676564575006601350055563000915187256932451174966379550710429886471937578641582501656722392001904577994933999437015617590474832858161142680122167572628399048108773155374738531656804278585056602233217391587671801156676713369651232785967534883221011533650237605194559639070310730799970418471668665036633983071510393375500849607837441918995295815403228513820189983716346257939732825671177928632356520740983048093690584797110378685930290621538099098226641916775671024706388905492303694093975078280174696804410683135109141961508968579225395666378843217741794034571723439109370354507395279885877192399449073051407944774697405636259290945027420499032501458800794798848324889126291227844131133043977771141107397425662022208768709788894868640640877128632798954706544739890649536577391223283872195278199087856590940345158906635514040759420996972908573004856432179748813179204138957884367562129484261328276810112830085514231866434395035162241652469862298079700071938343090683322284613662871661791171136209100933416218931661265381590837605047204178943473822172952935741178681767182677233819320394488777584784148736350349653926665310701621100144448772217276132452405618321888653052107081851408644598336018922302115176523824249340335489021197981577309959479578392457301072773467367034487616177533469795916862619597301946385050072548827290527810074858174975403762642304161070442960159838295022844897093470683715442231914698791065499815021864363016868985498163496626246232456100743524038647449806791564359197950479660922134858001269633405546941117637228216810786842242487088837758590164792407789803365812969121099363332298246593600210770665302061200194639428582666058231576194788522921937161191445747758443983755960651173309539125121945005977255900309821116247581538107806797960094751877114649368809380092429300183749976402196951835418727440654377490804349271879042475972611413109720874925984912481409895480238113121866028567702317172251274419003138580690842802210718788396159335401589634504538839635636307031804739236002622347244447657958597866567502427788212541103236158905051210043002942669121465098012944932992662742936054468769006584528115986342356987426534141277655953578562798506395693061644041745607698964970666391032088873517470361541284280826304882811259314388027142117016858622701952389016079866349808770570786874170115733729694291024956628144912311534038566293957139955779397443857464791300159944480860173552372274385261148103200256226916458007697398739243752360062910338018389057416507847825261068984893923584186437591884556114943949416506854665782569461921316849544809229876875859345741232997200643135313733317001624479745542656656262003805010524405033203853859352970800629076161968338240169159242291752148080545180554698872596799723639012829791897064835121776299393178721905076740381379338322530460787091138047567921408605036304468731260872102075883657055372204425268352843701102044781875014986982650035228470700522293326300906757550084465908439291345966214283617805357154366523086611562842221527311374866714607925657128433619867266220000342565696697953433556704393359971016476122298179014839504584105844230384107489041281200555852660864693744078474389492168721316407803266735673307398731052361407414826306272124967553482984962208921855579966900068322671453012968354147412351069377633248071814348180283559099418201227031260210717342250628675985905486692291588788225219893011674257448432325442483020477971519548881463186863295534260672805385257918993043237848034743884211128632325989110792024944340250766521889875233008767134962105003686269544438450230276370296477272457192914485642471053131209398854732330459371802850834619768012637234452072451987227431576237916299288650302954446877352208519821774102229187749471558497775779213020235721511692727380011202757887225094774151717948359197931417441214227028670695561161788805321249154277161692157199068599544140108495710774019025211668943494897547108108090885169476720061726081793936093831884900095061763191500880210399831937807377977555716013573142876542595980502488073239254869681772455105268875943443352567019671256574325605874842669341760493607357425633384679358308968110636267499343896642286790758762377157965754457212918597924711773804897816065972087690869671924484542828876512085232699450780085266356013775003792124707135428325910791469879122442691874158582332174303431787470034365485492603063707037487179657411946361822462834754419528251223490400716672062498664498278426217731181434539023986558047953336229818602095529972452511732389657785427628111157115733101582820268457828720448475364093962519045055193322270705764083061973758046877810203446209946254127265166348078808760355905140113826204859067675810931882366456925219480527183221573709597416138929547760415829172873668584139812702281405864684659383102444829021061539220104591095338144770148411975965646548086168762031737207698763166491253683412727318008060981911343857808182730807655958910848747007418678313953743511348253079243958599957664335959436803046015560199134766245921610974167755328437296605699414088957790578994173245231125101226492343773112223074880251308887498264899493828978291031338664315111586902286725104254325008416628771687367188724868618878800134101902570548044004891345940742795444768579707790065356854012962673820932861875618261303483064328543108415376357670871526889503240123546956218718113922364429316147758648880855845530216729699599332797472953983454080273003752218151068856511823366648556829983167879133578051157849234112508527656743454765025086608554234292970481248658236450978647505917331929612795230522859129815307664142736704829714313896192255058787516435313399910681636000439473690593534733047507322988591582562536052657665819872479620327410677108144317833634775369572168486448853575669387728052850421017944527975088616321917660430607432281300344642132113722409198666600535224789279973980994552538167028086984563369400507971609240877735756199625699953466894718828943491114935133185535884762813366193831342146932734455864793294960997528007523712531000467194921755001790056642562192507548541883231962883731433405149064056312613184119867270752975952934379626055942070965539748276965203584640301644877799727863945238306990896839986879183255993241371364798829000534892653011530141671184315898835094634974859889343048824738199019260403381238127958445611299433316309473586919132955456135096751746669131394686825310200622668592147064599894316633617364142951189906854483249965212027237697270039673792963532471119776642575065665329488858240224977693173329926606644983533303560259411939603087183195660941135279482509571017855561298767295370916528761525349608044927442224081470706102677586805134477999634036254336980823640210004154810415300064777244170673511120079622447977624888165204854583757596417089346437968262199245093323123169147622918898349167519501192452776912058856913429106525176082673415007184337281425857059522365417677146822719029803928611472591093957084815631520161663540605296391112014022485545734835704225040625954461554041115136851765037417554961281828609078458802766722641449677810849418787995711985906087506435902534645441621896156318785712279449790109370991657214944892944481994011801226389007528984815200609745321448794987645246029292752282317405519841553322374387262197804666561038262656686106761678744383394133296261919217699359303947067220494516543950129140733268760114464349879674620059453886464345021434266682525604585183055006510075687564812050502384406766973306401419123948505522820429688615238391881642440507305340806243911613736962437556174638580827840783205487595647651522906848387078384682487824013412029391132592190262093946209484546781174383521769078707570134649740728660214267312328117629358491153776865443231688437663281119560617516666646073537313970830214414987168083007147360796847113478394457983023153135241838643979755324376655308187430839750778598305891978006149319070219915125196870773995581986723155455574015331036015250566663724338821256671386023854155926368995331527723689923349993055793381887480036995373735934021206597047372365222944978179953719330319878657145067383571163323845459816104253598425815276668030942615717549707060594112107333999491511975926027151716185816979540056219042540677359393027136695593879679592614211240118339756094617587427097298173410119225147720003670879655166153404397083008367462544813501821750105546695401766686425163639461283874303136488214314760524866911422154483217273843671706333643611575781718389999121088384928989828123765117523712451833148055752188467237287178180956670815990532041740997297574307020568524022351326611500448254640709045627477530238387263944080897908677389493804137106586527177084282811711068070823100447993627825017521750211452481094739519876036363049698424862456068732638914264343865799779694872430333250057634046264598399236090117261519524552539803167949915604740228740639499440749858593288128759746872614326059976892821408122415296415125010713303618542591802052478326649065008217112818687516827891638247744873681456388158463667157632185963275080013424394394525132075903884241422369930113363787609220994844491272508948845386114818491487783682805795568421957132890783291452854391520389974025594345859915560899828689106862143044772703800265849235225603974719904237979668458463327944627584781451264783631027845435507384134885765215872216781541483951581850896167801212888285324963422506222095073118381071059817931924504245589152789653598432848317502363855183192605106725999406631838086406536401067230951523413957948513988813917021928391284467849603008358044861394787424440547650636448585923497970107708430408670459387537190152690474906292925294608350120802969956809376346339928959480679580996492339342898470304488268689904122851036785590711134547187201369120577343690014504916235229072647337950287398552453574075215564359677150129181405781329211420186170770020786031506286736065790064255128452069628659189945525045802876016593554692305018487651263703083320943512169892353007925421164774421666880641392688570572576972695862962291912102407494068430676068191461900362829856998962537765735175505924839111361005019708724754693069021902272122475681715131268934368686515236957047214529451882127657725634581830770430853084968346483584593224506957612126554154556906069903696779831919147355574241625199568051297337557531264987890323735025970374885393044722018881594730327980581175186516842128263624572996802284192260364076214533572241003271443865013243714806253161157827753652239898760848931161783110904127914823572071553722807836406127122087857449073387465576373561351729558327249314824081628614751879388954565633250717585886807806059676597170314904316387378738145412073763722132046019446671817183148169396754550083873744506065405528847718981110090036302469994413903592172527965313495182209657820956061420649958047557188864038758612427012212265404931058183151646304079296020727778179747709531017620115736318243436765248972980520839308240336201761822770836491957157203091983643277549982085703339829704898898278851635392682866509042699528296214832570839519431926288143533215489233010074608570217473084763639066260685271639800402030306785445362349477790230120977133168720070321815013374690872079414255330331351971916602285848459319532605220631840232284833287879756068283542287960502235463723837266729300201262256498948691563369258752735004062399882630955033404187320143250599696278273090959825096718778924519894339597899144352824972044327860947120447792024000027814918167554504230153758166622245778668789573912132230377705914415485041564062696140354354809317010610741981857623812834560859096983804653574529538466026208189756066417693460769016130438507528113347533543252805874074565983162817335521281697395930201037014741639907925489126052031553677535738855154908703249182163819731069352881804851428988512860505359469629320716452341837141059921649531093908438626257956918662334086840910260950167220238708789296141341535531293397162086673723279083655756117258039021038961586340520383036650661899168680013288665864320973762690399364135213963250106172982660422706784260477482918973318847280232200820352900945893850303045963568078520913413340849832905387344872228634396219497233979641566002836151203525252992630192102032838706555453903834731185231110706122131689763999036476322934041307164895186947363346909943976107163421687376426887120238656377460574653250720681526798126073565679198308226127173274558214985071658208218726070622164847325153307955002978512107002527159691712639880314753270583913497564833971476785514544759574282044706307129739896067269527626220696338198649022518974068452699517244278193954253163161674278642098147367753500271678098529964062025439794978823039753913034042278996734081464801490666107302590279144413423137224668779649536008862621778191354504809362095748313851313582590018136781533815605593240935340211142906483599761533488508622098273804880138439181953040267526169584336294274773999646689241238421441327619449343540945911701175625873420647878207549057216667748832310438909580954967682473464499804013802851801412429692585251607603820236133746451300760392671039392852406777224252329296213885126112012429157496946580784573543791387873419664223065418989477854890164296707409985623670823344189135208265004314218924783369187137235736125182740956852919577620406034343525108072190783926077472104883287250357398537386029430830189799799802895521389987826618794962009256825400963554652096614859046087797476137688926236562108917142962774280092423328567413850464166677847015686743893815578656401175685222123687718769987993278257173407293960647887485469352379791252450977713826851235138596580314299381225541637504332866368842101434783446062801429493441018995029269308211582362048820516465722514991827746285178116585211845901617402764269172548296422849880577520871125603753795783544279333564061912372397844581075068997531546796708462694216029958121561141563820421513633024582908824080520275079411426796165015497699512441868789652181341075880626260187042377080961279387425099780833299541563413690362579607826929402819654783698175738479757348535647281046294411733447599652453306884364295840767962236932390321376063625519199003174587682004037301686478453545811392154042673837219171971280508983755474142259499668157090598548254552040398061667523834955448018025749227367045186475276034808476616834369790059487675652116511156338599914113186299321777597838325255827395293295261970841673584557753542129151370077004065392826347503455294113055041718169593677733084198867013983165188228186272445161365041501562972561887649126824438244216586132763545435352036938707019811057933178787550397114878520931068343602386810140106190112377991685411211947639331076272967115135579539607362221762751591767822092255925407706841945984779468962679581821706919164329808424241113442719007786234557173767453936573188093115188438017360784843637585779922545948035057110813587949790383712115515958126770701929368275783385416035762414895310495136908996018368527171731465589214414814643009322096272726158193989897750047971749033970432878754200740196768150653699584463276353100407945243279535321161741482201492545858662373431080105087806098476955395615097034282528148546805742514583308675918210557098534570499914254219930183278585917619317265371729778360521968561060305824713518070656120457715181411563620437631896834439585343703193178013007927939995118672913758989913207687811721532353409539225750733709746040522495049903740742488636024015158845776758581287284236255353552868594342720141970748095627244458314052279178093109118705074874311445131147949042194191434814898139450085216623990442375842413028300391558235724524803952522985466430864821917012117880609651198023015776446045500693917418926624537958424235056774371662056801659540205377358717928432038216044503509539220534848568162739534880528785523274552591082345932844598303520377813823627495805190513521891755830594426807158610154590924410435592059290227267724142289366855591140936292062817249471959564378128107367819497074522541042243069443972333166602804209704779735193822284704153353120994268143443626902138162066370005128928015362414772740583784144514033204322218360654228620661916514956516656635121494689891922043987985214988645668012777354948315075888064382138360893655248134846301895324285207802610492762980132792558126379139358430366728758765604602423848674476509980616141064418905735349341071573595490063052999678915011156997485456905904454213720958473758875490980553139991699032706077090767565299280699495616770074790370734196917373363013765582925675730209002184170925907789691556442427301035598191897073245790262239272912459006500069002860160429022397573068479414000567196513485048710566314867535392278879701575917718898803887246498443807119971363231510252902305712715694526097121227923902663569130996312493948212827798199479133075778032419342828045784435685076950511071913738036478892038380018049998961190324506936808155857973516344218879473038491624727218220707691756304230248432556042488147724803475484255601561601942389192656863108904106742667258413487281021370285826290675006854873103971832154266088546905408868772381026521743096055194924372454579852025658393916599556647677111847362402942032684214911098166225395621498166030056543491633251124623917283981533297536411416578100878603900310465675211498413642393794095533885146716278334826060999261781073314158849433278308849306139711028873324397685670982568144360407592663661427964194378301275666800577616390959006612151842421892354284837963277124924571124717872472402232123399673606190870066654086878939296539458484844018669229355480279590846975735018690799826060451049473192606492171027281418545940889424768873997096187044600754929333563335505541937068772478141799556128487113065133378388453045557841093798522445136359494214432095442715359875707192008591254713880514408518141631304792387310688083457384351417459629998118810422273754230436038409806767987234827599040546669337131641569227073521306204554481947400479491805936631646023035003287001218644740971051511839752339378330039982316776042881693655472211057619655788785313200703015440130837257959519936901253513386577500930774825029522671588086835692606245571386776995396346547529014976968973360798132148898689246388360210621607463158607320081475062327335394563852709210903707856821060548547239809601283634858053921659398999847031046419593754431348128935649493877343566160247878252203399575936953642849506549718558206137332296164223227608031435083270666159327885507325326510947348648157895469763223905328660860719680206936182800502364265812210252943509596451257556312193457941221725920664507075716905235904181094019872215252350801194177663335136659904920763334173321985251219628282507406652998792375598323243443332173492325366096488598172066589452355430327518559361215010945359654319167629535340271203928180745166252777030017951552638416977326444662929203996036651515681429652631983380857265944338781690547075335305154411293338362194635891792599477255792211921990370410892042124953870708607946752203407001762428050229465543866487279725720563415803577770762977420663407926623806762562029361387306328666783136371784736515608378516101739542278402086945723658308968867765366658692031716544997056053321814877260975642994764673616997759516411028959017551741096335213101323849931180886983513438218793704673057836033595187100143807540546444290377897089738092254548591245598950919150596494680987667450745270134892769733936607191174055970011910014076157459155843716986470330285006667188188727466880953740792862146342170229086755285494114803894313354709068220350399481586247778593306596606752930742487666922524367136678137485099706337342890801008846108883853805456983684538490552107622249293413676743962571768145725789965701413861317783195336377004570144075446467401215326197473165634269715684879832359294562330364641861732062232565681528214664123701971454930537886198829370234031194560003063490837545521598047722563614308269943043416134562232958317568360168205858577300910766389539063839149087899844077035303336409101746410849234624859547322875067998848622456943846988236913876644893649550331169709213102652099145805388233402052363381023307721111792755436649897955125205562105479754307284343970569487404793565376261437198141729130246587410488836510061829763884823358408985999074147376389534299255411212009065872401208774897192470665388959291714393197813294867956454254531871449453818591673462554623799556907026799520025693969435408657194004305395932700073339775499320617267337117258845927204970345776648462821811745647335485171742833175454919399672104089499111580863714268601389785309504025391005021036814204171753067456126203990411796106238517702202607672504900409428273872846230600907227308259802582520850445166384172517567812386197994468666937958725268283321336017091919708782630767043872693108277782886466030216129651092314897809382467034931482071798878205640793631399566528492914201882093737998215765249002863391673317718273288017277842695795254134248083119193542931396804457091134794374537465067280891463066306868028836367782750047640256984781114017944195262039019847830350817929757407865896211970870026433788564098586499231157916318287755326672172025860668607306570900983191873915331238300119794124499222816314646237671702713928019519555015961774084092427994920516101018033971186099579938825426052816838475187633864682544821638232531026531290455818901024277915176582493016147297116553227722799344258542671987583644222012771813087845087425893259158812374781975541389024453153663795321850494272207914707057008020441839846059702255775198030703144678340125424179883241763701459712143812339381318472017441266511987047313122029452157833601512069149750000165819712962751440703010289363030321048728802464914076694036398144794035306444156625013675324694841589211010520143065513979138271451908451805930655484382092439302891388459051160662472530234186616668637184646411531122282464348171524599031829814941013062702130354797080329313190920102592763267206530238778863920625344921385891050523482637744037592733328684340510521826762701607422729771599421787958262453153521419068939527181032201925364969260533428404569847363956034741047545493441620935616590121064398803053495088325022183945208606873932642419873666921069043457805705449566605409158520463074233371772677188297816864070044309731261667907611785860657218970212645932387160667658892080561021064774113127112991478157633335957908133523538944230431656967924748803537240582548890290010239560395721353536089357136651864657882109620488389281102546939234997849447994664919360912034298485913878317461720482798520271036316466938441110646341689219576056822872206952575107518177491994563761030260585065353099922246594829797185295098179791731213133925738766687037376329109795727822526389717942254364783464156527647741951081822429859844641126601806957681320027695848731918386928281355197485412910645335269634505360912812875282918759371840137748338785080651720468619109622554275368497694221957519652800577203981535339896840141407655127829883011162209077634216503296219174916174025389039213082520472515311939189646233390795725130460771312167715263287004545540333134612774226061435098704791896529801112811743503051718829504970739067646031524193673172189988601981091861630838460546107465925411278283854522949391374011481924577898959295614291728182072838490208288371595303936186758466902870307987327349896546046795363877064452965445189457786824787648721851996190220810813311181710782658410967713694229406407565434381334440150425369410959366766783008744774470686498123419343471676497673749510119288983310600581601285949685634634338028333263910473863139331276209789682420623553655819088603545920925503404361606283458390291904640669100453892165226601759917362611808135968528375871430607258007678760516866795423265807771324458611216872359405396346704920814534594127549415479428765581154637421273074263972713647277616023529433479253548704791996074976871718341865201699972436755860176562862948440101021615313325601568916078980434916363140330712635917725154967403892139372718129861359463518024761490235332377136245988425883240301873763213560105275164904372323299099992432627768066925804479597773290216500082421223360530183320819739515922486292543885971632677555284877791716760685363571691923686536148298398509081833272140400463991710796607113705355209057253918005187151534183769752786304902566389734498963786938423434174029521336206887014026980401819001970684251970033506575539986586191284757978075479720208514604638444704793879254003462972348741154249864577749044571202789048217521713285251674495634178067131693552285520538833095782171412392235515353484618417401003067735815132744672201853428109292422816664980175797056389790387339724105076993695319874039307293564778210120464789531453507723602530583072630421683336904094906627827938732904396781752172585899317147582601016987067688268087728617691593120684586431287872538409957335750431904452063501216264143084808783902129589691218550255081520016107312957644563509857669991793673294481818375150295245015765930995701547111352457128900476640333709368382213741610725474030244040170116385388572717806713985970074836622459756981870600472385059586179402210525335155595431148609227917032681094028195564676500305139171131850197380314732957176115506778236066517449083678122803736837086289719921455991192089100899255267933562718188344431843117605934992397980480187890393385468442679309770470717951363531022107715847765668045456313299473523416785830749817439243683819714733253057225586228801170462517591880332884859891403701005226414871440563739078211327614841100237597739439437672749696641857607059335191632624751024819764827502010888595207349737101309177743755810961223900437986493550694800565732467078403532810692560444795211295601129352582455592511801529415581561805926451504149274759753824371640733014084789952668176597515196089690746251919283330101036316705122110835104506699859441872209073645561509665237616584200899168121867611726582571634725656638397340126752736601969481021565039657836573092829728012086715577067500753499978809827553658993257888557874128154733934481043356700995443829673913744050444290380426683855866579719810836815077185561156250537822462546365238352969377175906654104546773271742275641824449292671090210597619398152421332415776025852891527821947744564832279527626502522376718429273555669383741389927437346016449173058163744656527883445576442855642311181274356322607742267093203994891089102540288489607786857686133771981578613300619494774611032639127109764451279302847297801676429904165619106187095823316027215273657572462259573082082765662722008802761365879098395994334961469311612205851163641052681658997100304799254393123799893736920603933932455725233727069907202121228137156624662475005952668170448824268800089853733348031694011577131558779383385708278202997372241222402376868707551307234657960048926798905931184609637889284364087617475317169875487013051216991253824259693580152713123393595076643875970407903146656472460646368781102680754982260636089490700549895963267537432692343493845409129200714711762575986842488189169080279717507378820932586936990253509815820408831262842793227365045278920563001982952149657228151011318464633132910651399368013219498595092341917357351680472487140149478377280488639075676787600338591329524168166288463909370033377208944173519641278266215267225539251048093851834794017114230922852546641087295744329562863228265086023102091587927016597867545152202564025346870250001384393179706935641802618878391088887216072659015453183243232025039670254561441225208986101906384873833484922809939547211456576019367679700372208424462890903705741603401909006192305130780555078216860365792754822544130074850839919000106114135125639946842657539094927457158702739324808543730431029522490067409476377206114001256700404890117958823936451100471203823298022057101816977621763225658889239508413361925372756696717984753848845543683695184365677910900578371618064048063055665181664022124672788566834366103003508445327421174769815701802752374886540608689582306896568407991975648308494211898460137130655436609257139121431265749137348088425198420877901961401511276668148674685046076688249097391385432741291296580774187700737896872850228361752383590868112197496393648416903954654191587177565643781795944583101118899374851128474225394554336636553629572716662938532209794259613613881332117685021836151498495735172825145717679068822496717729503245007753423488912278039269810517024710693542449952762685050691025432649542552567272969843290709464994746671608819146160879380975214901151402574728576546686144785014436610000471166287657411745829569515225762940120172877967506986531415559907460628430941126494182901082566450290372524936678751129890834673266770069622689294169450065449286471020149037077403996746909011217339227868988754159566910662296491682023615104915220000980016112614429951839518295352945545347904155271662845649095691110647776759587360091148217445370703612537115756991776466094744989603119784835532033367065982724819577825761257742853547049642135572038662246946147080543449364797829827899905891141743451965171903213341594771261286679895861664021303866483527212375224592935829336094880748703433887487068198400022884386819372411807422737961393768021735871339927387549150032034749186777336988322789972335235953763661527991934066846027790901604620937399835470214940151324269393952028829761348428782989068656653471729379131871586614551292500477116492057897327105560531316265908035530593025621661889109671045345369639197286150671239890136343720090701374962845263673465673783912477803765060138510625082018886339696105936883467318230315671831004065496345848801337163170720097433074544383674424244456482404985555723912486418031594717094654939644869031779452466300839943483594400040172956200214241642373003102043022005822147211635747003970141371344655364592523773632852372648499058485644142625707692226353747449557589624632298691064821087457352617139295311082430161961238115290092776623785444538173008810259840059902070066876040832937857014418150032546209983181073845864065347125608176023883882934497167276609293809896031879953084349681600080896793214940045951613597499939675276006939359643064492033669203555725810427980631713284629436015843755384780656773334765203388942358781507026870687440028475469409748495394394175764116785682789651281787110527254797563107821120223093791323909813667468017082479343689961447036829477225040946687790546733418491219871499806479142296007672441874845956432768630475651366622321511023248920664700926683798665562968053759468640941798025126173754479118332756595437996894203185041544644234007615326543570926144060625620073190635341285115020742103815403766291661289195416450493593311052606001655922730026030228193018801929426086234078460188000346476097814593136033971540403346036523199615179789552117710630158820255456509783901123543583706582309704288789768479649561386273357396637506546092143491114556845078266765929651485817055030253319847975911866673676980004954575458313438021119256399367238994453398837528032261170529304219985019144808031602334397076049275626093070047770596132971077256472288407864398473679027015839617625106554056266659708563173390668392405179717922272742232194008517323674958484068196161462041169899885766556763124482412813721016360020482511816229546181914518924550398964815161302676551385103897254992108688487515370296749771608388290696094396136741295806276708545571072215041182603962923645755171819684345462413763995162212371713925493978201755091199570739142078673195592233823562189174007872249577214174018809920580055142044639949069735861852204207597328513306028224115204161370326885909839169676961478271412308602950182935692810565529322767582689824193965060063540559024371612104451597465904415264896933847858061106482946150815031224748385009451011128412610460485581902577867852448151381175667997689384819780621211653408093026089231832810487184469219181651134951475388256411862663334184947380076058619126327681981500524703689770881456752079160391776326387656353790678905232983666762886498590829623552847523894112980266575864545558827659607425756384624278644705159966808195273134424764159573972850897831588755386343401741822036207534076836952280485869139951184153820270057846307871478460695768882002854442841020730576966079328792106585398087891893366697914110787948378917992079841732238368605206404012157929037073426902753526076514481562826261764937476299545757642712953711168949048658213596522625492813416425923254932644435983784620075274628165890787522266179512108957714844106798671938275932208032534113938276742359746594191357531500159031925658696579358449021884062125823385415773297679289633746963206103392449460100834868865800892830578518701128036710301745518791371913592520319041389720233088700451550108388869693805020563736310080729607195938110059591326834036577274476334314273248888058837711247470162016424342595780564641071459978142043032705697699824047602932614346787921566423295217306445738503031253324638517162652328768888306255951672939443970049497068180345344556030372123634306189535897086038146929599389070352665140030418734123994292559570701700027044781735099858215934833705930830862412864124168714133158756196665973548942848433270986809261732800754461122276598789356134456356116340153279116676477066129235790849997237880247136957206538744528475321193855519991315485178413698095356360021931374515234601081910900180607987641617938607877055538521430057385073446718181506686127951952436580013900760493621611835032454923983190393573966956827076967242960184579315828345069009739238815442972745952609284282511936530573298484626528006437197302114154332292496187325457965680204067370884671966858488464761339824770815483140603405941933469192911477445798711048149340113849874963719519036112847531897716452747993516319642452067987201282652173288103018282838934573485821178032136306702145156701205999579882962048155416395933167526930581572667556826864501818361441008237708679564254905655628725665471654579200307969622708068343981357557209605970156178796637501370821216017059472798594624863004630433086209230762227323235448421326040851492160530067735528619973360966609245296093750786485249944968321099726422949914661984996889297967540237441776047991051939777522070153895612486028185031083984089415713559706609422846556326304039199766597728956010990135517919635729540582210707226481866179566957523409169632503682993206180337864527494260116998885118572808889853420542110701585271978674402356270591241631805230494382595561322611565464061165011418667381478871713752999899967828555322452441891163488789060370144106747431833668114940108086606361818995139376650523860872275748793806506595338690320180882184994569517558500071957263057133841319650346241199441571922544723911963023265990616785054265526105493287720753255983110524007465082894071838799189257755636163394359028387808977535056143878458413321127904390657587941661375361944399708865330967868754201634992912792461393128457133158451585604198935805509373326689735639179054339935457979310778524058542187343743539627779853695584126079374442428677967541967273742439985379526262962469123499710788703572197651974303483297345131459066380214751620520800988676470569023347928462617968279047827909769873291883575452294350604629412975857259960750940697138686702068036298320883544512939707125074471155433206285706923491906469757883539913170184326613220988520228769117812995277030733502172162066520010525913176965481224269949868035041318361793437969433575144868412668637947611312442088640950823871345560250592207697969884650699448177730714898765830276100576811050938465026361874823458661231127282275646850426334828147020224841988822807836754677495924135056987054795219698918060623059037267188959273803089871689794964739912277903730936246436806357249459832892025020006188081739432858926808559378532667319942847952349892189430954934474560209739468165870786230833972093828406542639453430330088115327575015511848368574822669452221667150030252065040391403975705707075465166131787663209843061822004461368971492472045700322948695192382269030562337584183614039938992144225653223217875970028500268681506019898044450587161774253953390242906208763981116187826344712464778974831429472435705163579637690048606636882898650364018294428891997053096233163714844535690024961440179022427462439983888069157492161259586143267623908296865590693383704540439098351421728120816725679593199184052747188222030150626794510783218903214243041887119195083331557117237399040414604710774280434459920558384696202005482075186876183197757098256227074614460666205932117827130797629085794085738617536084496653133544875557036356648123157967034115637243948508946002989885325674259077687405395886427157584783429050819590837447123082746757087790012610986978407188861885934562468218672992111531689078308595061918069881754982253418960557498379706660537691078687196203683608509839444863282231571291358397688106606451472458783117494837341013663764598939194351555346024708550891779148640486523395101396084130512510407077387113277698783678016338487407372604135335807179197269033599411685044349444504868273478919352778119034295981513363108326881856727005333640520410305644122314228304663179952101462068282694125527272695362064975715414683650953011519224143486988173470188733740772746157200570458854351272212285195280825885644347225320825351234610922627181577116274559001646581573226024793626700783269883089413106597021626309249668907580133084178609275033953318410883582923513807654590696035443481346324559714837887294295386779154280872010512664053643751324911286496255847725590182577793494013752100248201651906804299253573159391272893236394958736922803524808165844458727349945728248247792079755519239220404828149258723804929682070296861348675561824557124224192755715015529876103195486608481916885155436477914290757696749751601541161241235135091351866804503306728729180333326721654714611353921793385457238066730217047388115577251673020971304428590524207124964976189661422592918557869960581661274078317346694594257529036990596748776853903547246070385963793236404538998393546639893959361896814236264080255860022229874590989092262601662314701131996528590827668299815266822544529848965162748245174325261856397598317216104102742239408603799130094652300175199678254160087194730124095380683574318878732517243679417736009220627032863219003667942448676522614336933749357032482810638436142520868075861361779418383342937693004746113379253902846700798930824112351756083041710440328786639629033011256228739411892047093753636502759331741881554095674062116117283281231745474890654083452837762188971088689221830995731306395323488460993808389486095778735817001427639877364690944402452860744465172719509014361483842784781409873181902157084350558424755716336801009867534227417223684904684617757946816141496146201650704366403543478060546183939184072417654811654441678896222358223526646875100257770872609783721026809770943059508924895952418330885864623122898658550442207254503262094111173373086731815035122683387249445368269172646137417342714961414471310004517369678959691284209255244143935464831453894199026023067269829043440827866922475365552617827726947923035621960573137004338762958454110302854051848758857573471649341835803942593475929883522742079320525722936870303367625892670642130790456391452486355820664547480506901037319318453692793297853925230149698987310507345435736641575106885766831030697349814650733848360873652210672448855445825751355313976237372488431998612475739564238443541115860483269831027373139856992069131657097755244173403833719687242340074297656693625025994379697800124804514699534673584278894205491222442163431439846268905084617439097671659346267650979863440902981723383744712449214760575789207662963560590000991099075739925676880907846276263399993337932383461778335028278609274998884723630079470678508132254119529214484228565385606175180048378331777543988987411126551194536016112156591327413921503449383889140854113639003135758063302960128116416913420729905555265212960546542630534842718706607222662808005056376512923068883895364987476033366751227327797415371541382023815447761186381878455124523626803863190635703112131525890635813050868619660352012066445315782792557435053972833571193770344595910693255145926464649265167615849223369022125266611920183404130774799355699742744133484276333105349678412035603520245943711447387804256827396779685678406086144585056959839232810906382876365777309763086631508382715549350131477792555712105842514039883536699488189186449916450123004882005625648867233397529605310535407930097602489445689205918426480589630333686764232228378595936664450374118821394905120012785148889506493483999987855114959671199598371550993235719292282667011497261512649739531368748775129994924313132725402378736027880170841224208581751715304500850008056422702078079312998347706558198511543124846270381081730083333280080170457998128709185026551047692897873100781196374579483037257020398465196717280705074810917456019774611119901474034256701169420121612455416600427095757439793600880288304355850335987673314924397399069429695555984114316104243997661711722115351864842187876945508971665089134713560457583973212870499214016469349870096828030499782993538363229548667399126954105328554375822552619103148587471835986975765476757875418311110942236863343282957017823996754121372430883765586763205055768807217106257814028856592183252523442562522336739206187894568828028858359251329736214269560773416234411345268797737881163703515676159644784700111298023980329792386502829367249694820403429609894173388979212869278011770379380659759831289161854870352586890992439118590172476663870026242878266632705229041222896726507983999597741708427426589680769384223101406385393568071938502396447797818585712142308130234839366226897283785484052550180761454966943733765289594422368025277656416037125907392880571481456971820153734213880062127265675265496881879965658561623653784268093007079832888981254195305631921150291697040813054870797781361634907329067344943630175205540908272405478945024924431789283723404877624151433294421849201959976212926574969772861471914437360980428675226550530935426347641705090361243185728168036864347586801818895654288858408339850208679211064510226510370539443862933425211002813385521411670284002022602092779450923353733633750585687162502775596760528204902396784732866700995205364654048948607141970334349493001222945004413947853117345321051511525042585804936687947514819877170028642652786230815955656370638780729114001160879522428002956976088002610740185994139670250634082233767239641740334313047940986469650771233455534624093616875784544289090725768741692589666074007814472766922467549599365498168107035827707346869691358471472887336730849057380441236807829558883196481942083528302444129437478584455363131073948453069135360510445578943543113643855333526136481444854289157956670923135083752541229871562546929416279875561659639037254965000757774992094350553103798653360790490994140025710617019706482938323360174646601382613046378798341004393618036992357790377722691186674234173327620741045433261550988641562463768962218723574110289600638277473806012453438848750653484480522208269323188884051373024787607971081486052569513605629619236623704119543808570382789057301616095338875973713369524418617943582074020625350617472444827614115646434468314384166433907541450473392620993042833946666794713495562341002364413903442126535054243673903916639558554203003535565470947321985127025218405248187986605661140615863499660807963998927138674588630552673670136265836739890532549108811857233352965723107116029554209688830587318978167654954145227820786736450024404925183861084033617381504941750637304719250094498215850147537730047447948370494227596831615545300488465551603814199086340345323629318685584384486428894117297844024086079798210403580876417753699112107627664586949833552505470319850624225709775367076069513743635683657247202980409607526400785719601305685535544594086885676692188755349976604879720647358116015637258313343770111526857032494808478023011057940285341556208642650592657881393676839859846785212613566496518792384123977698185192630856859677428719414012261832126734329229704795950936701019435126452386313891174716912910918770167674933883597740968313822097152048419323813068708067104765186832191245118451712367957711124473824641742340633588881945816655212800814158064357476493769760009362517244225459031826971392317668826330815910655437983979848695279713491051325190005687414886054131857978408282436720236716559390364530189877753661173213876285176073205207957513034528822683578223923278079941398568146642004702852729475870199765469078907077260051715384989223105267432110883493922562946442331135538890778811425413943995301034561806130144467160467116440638491500421686177780806494090796017483949089301393512904269881731619234776218032221098760738315120381656295738316218734342638226270668591221262666314855364982678423410097915902156791998613193795622987074211608479524498952603750852668699562783942932248118470011794266381497059264241930369273344458629345390822721156437844498946545077331491690809840943513809438844058594955171499817461375379017798418801827051738160231781620035637475835916097201369684400667437528680897088062215417093366724190054749403817197132977501085949736011007080631345123349511539780474580138682317067615526330790242227553859830666469115969312748910740843422062550026843274720479653167855448033318382994391933677066778406860979002507230298287154553053770766466126346313070461127044524465672219236228238195125120603312158118126118358721564289409855613753510821076497311488786754203052839490543115768779713012928281592663319159840986489244190150674477845332539552259901817009900209353613961064210791583485909462441817888584806201807141202712601060742616212116893869964012572102762806998212087184317057539658867204249366106646629940923824886837419641048734704600728494741674953585469780113958939885174722325924012121987636075947893172561264589635117004346495420464166302531776242628502752917524011434502834723335908288319940917986998131728389649052665171486546114364782460909529516631006960133828791972353581710722960646620804979584047161397928383687116951534627947302841430625582052416972008299874920443678831951093875892826187133425625533341804952866196477044526923810237414835626150893968303708863503653706729475893784851280649246138200168583194421548520519874099440933298066150112973387598679955842163760819981235779624025325819973702441414334318260737628548233598891750794754690713126767540239322900371698795211563238890169628941820928241032566086197004883495584464689945806612287308438996623628345727556363954119215160075224434473243314338440011757039594884911868519362282220336369041319254168705607923938016475574982419423789408340521035363438511136321315001804186199965807515762849838823928994120674279176599685951915525062969914187066273829936652365027115743178373630579362945500227498909690409573361326732941490920724084312160261247207684332612541428262537004305970866272679164879958250212045711187393419416005080570026755430318535713660820329627936680417252867106259852476588296602811794452160742205191715802521936316785252646995617317779091761169935214583477407073279150473324795356902000704708753944448468494023306981957456686252887801272740404245577092924759971827531057971524332641864311255897190827698988014054763805004299287913338888462499580406579974185660289724014223167433101757448913736233300996643513046572461752763395964200699097360754567098825867675800634671862585984885383482718229832383300647537071220362835461924874455714197794417403836962077718124176885731694573944301912932283296095321894420677733719224978718558298469099679814360450486641532248332336299808210650392289702093580095690421328278161377230160666829254753559549977954472731611932798361200221134095852922844392064277308957766335240311461295639377639373532019590239605569029100303652129129070346615040106528621645229960939493955318508446575865876867168593603575847554897450937430570225765458310319950460633263826506195115408614159454553450305726126883517255013954584212196765311777771870778725125993606611935532419164904316212140409080832048560314987130016491323660943807771795610158673604849695690636449830571199467352703484625325742957733440655678064614214343791314216562312300420317482992596544429732084608099816914309473876507254467738399647606532181214134562778241127782611766467822589222352281240336085608487156045293071339526803423474237775054238267249283402778587100166368637793440162470618607174496010606435064282234960526099457483987822286037613599331556966471239951094510495016138370213453993116995735462163772334897756105346429431329685503365555753734213139037637597249071987001609037050495271976877221354059355604664959243579890440823280729365297057560211803266678211945724986325276846976258368454138182473801690784005828812177956980764136537099048875649453409260555535377851050388733935831405088386137571684270828520588650898438027155323743284589261355351959492514621410713143881205929428304606246103761752107686921458519255099132032344587992027496636156552921338404365103398147002319892073296262924772246854484537044438664970997526983878881839484323752954094023457655194678114702569810195179455796554516723296966965263146573231106748172385114908143508714603808415912136277632987748396975442111998115964554891040475978450484456407772372005069745086260910078814402718635296153523513056051702005744700854187376310951360585654064585412887162770201403979693178520916984516818654757510628418521407600827371373819201653620629879180997138544595898150765799903083757580589265920388518881175928198118654877004207073274305335355638752243896365957064902502185180011790840391051568009494526655511030201275338563817650119923949481910791957923399224809682190789865416597405080136562636369224987272939485665274992377217533707301407889584500111661074734851560260045842349692846548559944909280763078354217036802517359504843462924795785322444677013986911356032131690730676148234831014019415405025983179337339928372428745540384405029358322431928881048833401904870338093901895893088216632539509240980154269782409623000167144474321733836733619473425633937998497973897769977153236961855947815972412871348517509834476256438930343840731304938290939856699684688868971395114926290373524880233260845057865748862992107028488299290139388571862971486559968924408279490069399537840516810287638763078789503061572275691049630438194436273819060890974235815824616093798291289525627839188126302035419962901199451646532439271846520032495767830886319144992513799446705063952351054819549945418476059568343828186268270381139844798725176907548862343765237863914317875131339066520594169631526911413015890649620929389059239324856957624400397070891096060707489734297211297741164980436169873785892828310058526939382260610701162052466132984025995004261159170757968526548737969035197929045472126575468849363015937658234569676613304160823594169164001977660641332367240337280500118707659726128866717163647111109180411539794247442025712032675560235317044786657570712324516864796871579474562907033728647276104430825146935041313533345977117679553058159200404105849166171582167292498623795613191776559142446292857668591770428145247374309296790449906314175000792718475919867488584416189022124044976004792960959648549657886877164911908592235859092304890704010335138083816461462178425191315792198626820732253273854926915250972055273227139758174188966973007771913398464938680483230599833782652049261300075959605175710097559586972061407200023896628700950216672878721244027638776688623960661595049693130795323778427796913730138864535955353787556301363205189935686450403507057349412898368100446865590041371863476118145530436714269010213635620524333038574056590165376642395650264568108278173847140682394076296323005466441051369632752399589723820064469510583094128204265321989398858316984291170393002591755473593436313361501160439833714656779483280971363947234483209353118505735104897299864139266258499201833986276941263007302032115716260073564390122554355655638620584856236098523106203182329028213712100661275307614355902847521723280226873499834434596041897976426232370648385870044619390869413263335551901360948446988789947232788866254718502525763612775124443487173362612992978430170697168333485165532609587140457164243087641532350617611319359177792446988640537032185018180615417323336412003923808674063357100828262969001046101816135235866829982113765689539632300864199257371664962536911484140627148046744257573403368484082517137899823781690999137749022305662333523130009786292535738526152741167177934569222405928865209534029714185603068484460431932020633803463812596699215888322682829361659703055190581404891270618026910751716378053983522232131537223291439995595673429088641226355478068413670813844150265361768857209715785444857458797854299823671395838284962654127031007749509189381851908337007719803261424265642034363317108005447711691556603109322197290476331705652610416713708220006684043597452877347199583472685532786654902264877461717160199496473462514604705258064131800204849412701018542684958175059998257623592193495282242520821595382323285134654674092159251180670055924027231713210281301888680077878028249792295624909415058192428101343039169171207936749891119425316799027138662237955016095789788505258207851640733210558816269692851850503954252424152805489386599443446778383808081158866638652103414942536767887447764628137273667185715573004718604201166398460895833806979764689092779050066380256617903630751340346552154830857058971397438044157658884012703559863614612643097021093729043043591549875937471145377300344357488732468393641186505186587526478365769456284707373686229165764712191254481092850385247024930612270721253079995600577147581240027485287694022156125996535887040037490970100220196924454142212780244106153802181348247420671480674096806901949767856877617731841488112925645769673676781626787126073230779124442794310798300575629697608442261453824676455280233413420509035823392406757705545359262649377972924199070405734840933057609234655126471290325126387748090774812637033355483631635860618771641695030786887143288941251798962881512029619266212220402697026786879807911450562390198151445309854262204839819224410029355733805798756438654381525411087096911402757735384738705150749570740209653301603278289797164341162171723388294661157545570143071957946142442417602051746988431120033838399172925674528264075564920822150146163523560236420963754842546878821385563289932807717163287299632442108654704897014879383785644210406306977470377449365346205686452812987905248640373965084644080824596416539167092352103022739555013329744296473754325291029887700365256714827539238685825723048310175559455201655520188836919009240371021245231581511500272257286250018454133795863687710458516022357926925312336270485382079142432030975637690774573616620524217258262119857074032598678925005303657400873608977475102687385061002119403705963684035418795777236065243358933244599195226142869798796592623572321253618402603611456752965030927050184691986993492972231881418862820515249422687687771517640883549131220952937314308445112060590440057173908465943828289313079244574424868790378843844626155778656868133828705673662137027914068106575772519717986406406703051968227728708014575602686811595111523663455596781266059297231619810448841531078118135772267878460131573973225999232015227373732721262244603521374801010037527114854401115551480362394687086640771600301758817058937459713640800643808729310146081213095560303703144839890426967560756819883773342145193129082771407561332625411519717846289905346562548394367026713811588197778679666836684432409964674595578300824893506334422862178133360606524416096370803166912578555086285684463822862338997928229589067322293758109614555831595231348452640411538100916467278795949990187243864268558907859026512090781186668489507140840403908318152480705290988610810949610808622094633135525413388408311691748178547453556639408085949346035561238973633124367027917525285384855637131628788644287326517991213065120481091393684664986968891156881573394627954138896938371224721286624559927279507189485644467448523854958125977621780612159006858726121487121093947195243776395180881118378129553654527854178403309748338901878951494248800622440720904299729631981477446919372108070686176542875917346978230094535519973967695659489065282231508032616087022215998519792917568100333081129265968601316816786060399444754598567108060140397964785093799207733703713454617748794841136371096739832011962859534703818709388062139844215643114620965643104566688819444958182013657999103551041785287502588118609374756052358027767854264498817420516657180022060135012764549950851392333239798205681705049170093868424241338139578006481835988243062178718037007910263998564838149638927506078974387259336050232513543681975430928902017261384101111571425362386289309373150703740208486533726306252036115861318605778554393887346884098685779895598075600910698398602736187863535942660688597924075172388627382389912785630498537120969122324990442372478885547723582013428971772450385717765924053574366413993714114755992097409315803771485011353435284817630440720747352037062651647478549900713310551266301673512072040028784183674452122312955430021375450581317516378768964610287163804948049787576664573884323301366857437588358170616835182157934482955010329196426094102346158019876650878603236622919754268728931174291671665167925250502068834341991083985426806745348413020799520589553884382794229037746026276808585817953683103000874628870767154519411430547503224510125296102380841641717042033017272617674483017283304115407479920823915803035760298025429196322070898229073540255035923062675724338312714132954176089945177770168895761834236739332376825500516637879360713786203191863853687845835442449553909618559871585221891585063354339449560445947791959751169657769740555307081095398830482877123096696442162454598591611514476640116232728835532727943868665880165557697337031788975913064083443906338795026006807312233983758753977627950354107578422181689125097279791580218231123295949565441299061331017076495191489243358697542529398551206800149538142566262489312704575926587693823543713800516856416935031404311733728347569159495714815060402064188853213216208884419404278446060984930407920055778280440022433440142838855455889418558061700856736133908674380763144207460573975691070890181716339685921027322356494555599988700249099423960733071398918473918773715385857699315405737506572295400378656888759640077279465506590579490567679458338556940444494931968981899287674447337219068642000806204451453655328613266807511621009123288795267841035637672841922313536171223034266186352502927614009353393830736279899039415089208882317132850420887346131896086462755247677212434122290610661534960773507499353495362392101573517871927441277516878516142944766676564619187235094631727379533189359556989929361345769989049216062161849889715947792247301475845771643331889949737385324769034285005434001916321294318249006818890304145933616416093818198572892955799957406304952115643431993077730897953230112159605510557089495016146978879286087303311084479722860721485565547310072363943319834589129342824311624758913570738792771730956578231624232383058602053427102952733602670318267387948192783228028789148726186496130234339424110887602347952641442848842045967532837686484397319780445176985871650313550295188077695623745774479504482833146239101620295621801363394349215125973734412103707076149445052502330136338839105925721881531986190253353541827858855076916742626048964300489428420041150971550625339096232779628998353986425434442206157184188174766715862499154315378555898571977753373847035795807739808189488691694552112728507558475000034321446957283290407602621873774748664540234812951474847702342617797261156321814557436638780768967120204933684234283361326010418676619870798390979754268064507090765964140877598640017162945619161799105540598292740435397961527646752223658425765447182631800105597748580363162683105188279119574005687545566262660402719907509952950473420478590565339930380376835292931995055650966008968654456144284333160389334414876041321380430195901087324490391075491393241310192518019641203837772552770556857131430518168956215402958081824888178297955080267136179238152771250917227652460232384121556165870208951153653995979492246930462638225227808886316121223688000017570392925707228135755447957204012553600561769273279999792663405993372465101204584297548368823042409393857240671708232195391559316964429654463212975048072500546810949268496204685743787123417578559296966630173170238102546041962137686033635272692762762408951689475714809619240191246110834760590077562031558778663089958367466552630566803689185735610726798806160968255290842943315729831384927477066495254245373496658892464776895026101575863925074556919053875540259320857375900637777169686680611659313769685787545837916295308375028476874703626309057455592265882408344392151371025707847003299972612538562344102639329744017489821718233125177806958855559184986051345459058376581146616937521550786362418666909067365057089330563310474036896415184964406727689759670721864216659151626881064081431386031267622108606132536306421895208408576908387404464631279380769223136122718583425167580400348097622864413581906222062908453085730873578088238025072812085560165797114691097485329113495827481935392316233785352771586918000269821756679644784272410724275265938169451142710888999377073679263712698477152005571480815368012156024361766235033747530687481955646917783896151706489215983661769925987517614537782486822750710134519790839547402228720709566715799364272005404247165981131437687857493026388767097351471469622946367038887743970727220419825996685021001054899202571708987363509580286962024331316038607765265314488807786465468438926365379640237783633710311516310512259701088222891843514890301152616927398943122097922295795095899986597528041380920138376538999787897585541449747141437074086879506715026666155193891745685978591289736517613659119353795044239264254470570516327176150188303070647950624957861512024822178802695535867355210431060373184237721089493692078492040902816508726429618079341483828075778474096416752819423574023346071633430380329062613877270250380123248091193101391427715338845431296804675303406029221305087623974969728002816874149630207632481358116519975556976614067070058019006624793729023126225778603640469966013129014232480712276706843632065386219305243734032591014118823430619956839060881169215533406643508852771868516898157077540490973882363499505035023743661174617726709487306173862764095651249254303913209455789583197775611672111403011657731987655020379438477305509353134446788878683813650002283871799899810103835292929437931049415171499815293973262916033322695178187113599614046771355513431154095225949018837311222206561123027513432130318165976709812872625340319765245004548792572503800141361401712405022748903990087734660553677149277897856390026803446533808023688408284881936873904654826679695451143229376747497712273802175546299069745350713767520958715993773817333368627837757466105254283290367327955919197506974062442787438145283129131863782621610112386902665994624524397199877614940365464280228074682233703311800439858599996058418218905810081239640463131105338308847816727731957698341735642050302258523284623233764809675399342421133961703517450922668821226380278473262938593010202824390200682943445944064328700095887490168815651081929400568482903630371490002840034983531166554616959149807306054542643509763005736404884742169520294176769371766937650666762300973639454012272703767674820626660667404895280944231641200332141944107481292296224173915650094361039746562018417541994549055972430954281951302555358939960838933129325548342858640910725202824577359844663813819507018101957846031663103998372249771314257045630390128637040739340518434882800037680304379443727190414109953052827298962243941733927409655516944856637657680200257599897234396616772059163800311175868116762616639806042222515518484839113021873645771850162955754328816071315142135629788078803400621661926126537003480652423289691294418363588275404249084811149073881976157299458816159933599650066878660867158199724788694142768847811155269391745865446326437628738503215244121158895159599701613012986633737329576069357609973295228103057034813098089371791220179284733577627876277878999376227236706387518279957651404695305317773173880670576439744050454628891827608298653851181013633347994397928361297770109035595511642661937704829620585146547446956901047905735047742947244475580273172901317207234661144441244543246079157908278023230426155077574957305778999237781712109036487942020951176752154513175351894639664976932818296228309680062863559212572720402032931387102734389800707725596486092169221605448104557547631715023122045993340929656880101537727678795030646940747677844315235643386515378157267743004347640754714914159696794482839329087140908798825552466726351676820404443342689822380287024580804727213632660220180614141835115013379478735225588932715246820257573992631620734214423595517022625489015713131015553018197056096819771268936233055543321017808357047362233743239202935785364702779257394046685407875406074944137599106573265071224671004563399100078127993157375590765637047261990682601520086436438757052331661181275958293065694002562206888086911500500454199165262923690785932576680877254345134405812801270187088031110928126333855608392807992224391115488796433622644265457183427684205890423508267213250670918274288445745255689164570132512002793715391845717007757887961421007357484576756390289420068491609504092915192859488294874469500887465622060402064475405411413964562037463912056092766751279151931364807262821470022940340244204461548183657181590555264839059392000172280134124984260956114454208025470025033851694449264743848650090417485342510680626650252807716522246373150248914109982022902051524586798142596735407984727738443034290648531948158206240480995103884092560027307124416472502880451757135106874202528814244671844259808964027815269048221548015816277605629376867134792615374583786076865367857641320072488021302327290871161745751473354731677927858153547191536761210248251610707584034187303372423350598252279730243610257712454421739091594027148329505243711110144841197662921742352556359562153046774260606389820721240518098372437655524148108060053065048490182482339180082128983348604613778076627913381152654439829647493270778757198773118276123074732263167733453468478237566694960180194309442502905025450892702947140516203110572223031128521940066367179177454541874868912621800817685661411997476401042212413276862908887224842869777399994854870678119717849843420252471811088088477422960020973706930577579569564884510049526323343204865916508619552099370154452918265272566178995319247064314222657682917604553088623576568199797718103935044702396030043221288221758611414382520084314972842207969438321524686141011430922019697345035911009159448098194674243251837502225198535128176421867474310646535484157385738331497363313492075203048683672445186039227622650626079560931252425490668685401500446515108520815701874663074290597504650868490694950581673293795836213395601774326637637885175930544449174211806179908085312746000256224101833182141748899689884149487454428572863001727481547495616696324632841088478663314752247355206480698609786590991308193518891597059341925560995657597240989222656853162063691666647506608908073143070764845185111007184613072559040409581339177555546296527481985622620210116836783419120611797606117021368818081279627363722137529164648233081718291282743682900323693203634825558471651468132496913572620092347003732341438914605820431857079051087258491875198369814633659407408245609528373596813907886705200027421651963614146831084522443813246363468130641996272169692802683732217741983122818497657463800800121442861764620668612407009872753382681087746547734318347758516252934502416741044912260918425987902058428685828787766373565008800460399487189384511553162509765963814823121537864924856877062581295772764157234931346842858150349223872103128050469438550781726402659965759470407394341288357439132390703526179483761526392499371356112395608597179392699542905651183845534433834183037189244806987237354188124488941989395538733002442929897228440231484862869651698860015129143898623752401476210691501859704042830284963182656055907453464217504552154810305927978622541719460216876503802202777273355804563243543581874061364318517730632391705291212631234722466652541650535535143663268731396090364560060022672476680396893179281998650355353169609844112608243091402313172743581216006948581025679608548373768153649107522573368440620926955982829451286541386683083599612567699346827361083494639056859686837087739583719140846948189307257595352044844404042286738604847871280586557292841442439690725587924461083752337038404233787635795660093693931862637214366701405059809661017912365882433261694797094921702908584017739060168871059071327654042900801967275330842467179365489124787989511754900027677361968662362746249769892265189873062708690794448187453031539080491509298253336550104069899595500800189446659096705518595121256234876179091545484162426011424310328427160613044751317092601424590399125292657377588073451983148290622659415953826281441193517512130858504730160510128330435733537168200426235893627883542380668746727916096122461302421336283644975038128641974014644957247264894281267560217289850651551154550399545590078260793358798496539244391648511892388534637166822348857717124188429743154643151754493009078448503402651221687164035282635234773275777472681608389375511211650674018311608421211723096173675577396487387794225926608755829357890488801862963794843475298307389372061457644949337083176947268284862908365798130935950984325025396848617085240930715132074409397644089486012785841850105192252046497493279979139187992806793188727606543031802356138453691279527027012322627401053786438839943094730296695980951455580636664456247813530923759885581034916580608406713702907745598749224135889748664988192887996398482197196968299085799310886554829186726218798350432935378161597356290420331128983981183284083060628757396213425069991275947419597692726155584711631204632532555236141220982520363509817591576029343016748881265736389922118588597778014013325791475111590890007054264634178840858892029886348451486210985395816899637001700996836531865575619635319679923248153954755020496635274197938161395111981749974188604935644108617924844621128719519104576085521850631373180470182918280352479481863516617853570763449412704176615156433389213577614486492571351154508280573868294320500859482935033794432014915656644527260705892545245831893320122298679407246744773074869274018007074291570834516665093592778669674085737409138941787581406581752074426477584360889269864511970203939970533080156629141940958698785030826198568339093549297964098906611915139902086976072711173463304336134068809088141105368199061448121521759188867394326947828213227483143048712383170750777380626012591038583259672666323443747971208886244196610522222056483390840004841288992427911217688933342620992081603451735884499592396541156385531910009101201470460674098499018813089505396475030193538637790941548747356794436297726919029178231220857913181155825239032585651952847382511628380175551745678498924547872192430190334609022960500568066697856661390200468585751464406452909725843343415302510355100129519044332618783918681956163451403741768699644656981952125724005926023901832208281304667361602145743465566250046918348483222092631582655007711937607393508618816245642671180396375050705938469279683978094393458161777518603678999992167706962811839318043857425533065389518281297190992132950688840427943237377107496546124480133133283977880815551455166512082626665876791411476550279309437956359337453103817663563248278545528462741750837937024121754401453444110531277399333184874981990181838453824171205958501862817641023742941505176003296735198839490698419728747274157849750477348493770903511341510237460465043134443205811628717485489304844766365263480867829269364298843276274996006425312041223916082454163592093471534859248833325712594914144172171701875446319223318865709225359958678377849894743651537080964583192644032687683227176514524667670116277223936028277844775382691763921451120933006550120196736661721605708526085575277614469366476515465313954147005326810013599662224843224176417219602446352630241383978418048079154036810220586035643060023928296261361331727219829296703781748337562769117020910483171642788426529714959625202568738008452614223133782113231012608949330108512479198077427323329604221581710700824590546121219008717195499873070436018115643724824052287256740099397358968567953858332188399352955909470012610492944494571321058311591446147501758064628954104099447620172476242413124745622181885646110964142626484274991933942158438882771600400134641338153036202541742981991421658093959007349346728018363877203387843152835694555520538629270228679001274993643509637834722201546032537916775928887449051897328181240031503742775133657744580963286721783871818648272260844569522973728909800057624811637374952486736557212561785674286227271189993108989998671454911556961041608608510415288523678857361459899030995342812760359393678144062232210677449135388089821568463576687611166229514992374660212252226553415613309393362646890438932696406216999589966942346880569423233687356153982587728058701995850131755111865975874099720241727720878867238473677284226988131548944775076933982208297916857480146487176970318969097315566349688003889313807819575086653803937061305083939593004268581906151457846435629775576815920216781791839042363118586310256998288437615017411774066840518464865811222080929392189951751881437612927669002297231097639259103772993885099442198685081704379569478893214427372214793962291241034598618724570413397998971580461929331270569845061394971459023483401410006706648476752177218519077286986119296275730596730316767885989826237541281187899796455338061543637106901554116841679540168184619771773124733933172390828080693033776692207084972077613923125351462809312431546488531940836568541798609291901724960336618067177797033858318944090016597925699805208081263212822468136278297857983343331517627934242307251485530676858811157251797466079917719121817195657786785073631025529160169353789165026059356388178427783247164649438584008867036567594741424999278389639147730700694944978897135556541112385662660475694691066048039406600551470402978447065048967205864999644407513623837580203308360876491717496859913875447887476447759066891668384589662713814737320725813551797025819176725444528700650920035176950606170752315822781416836852155395809828121383850945783522753251154658065377488438785556821713081783172268760889627129272146613730942753634082331715541067720223789982055305023143085006709298469339540455161878112327233092117092849633946616124251896581554158860641920268036006672206493126296906050660668787230135640992335611824177188307119576046194671970513177895692166164863909255931329941480004777078800635640519001887623996828532421874502864727757657846595535961362372531843139970387465940989622241396110258714790038312925799331126681870084614478364156349491897435578833838742228527552667511868868622820260442537415055473242276697222543359999412449463229073871451526849941057199745485826720625084111214581805999065515637143864691931334765871355458301238570978866040752794482416174079141477478007890814900012742312328701548711436439639274404322690753723501059346609457491099628360516914636462883388644889459010054596463759559004451389581967645556706275746469886207571263764758216815147350425737523459114215697188218999754095835719888347334648874685412262567481542859047476060629016036074852650913717326643457577659301554251775581595700794929032598287047812732781900175636222176392952096567869319583844911810617785669474807742454585456029672710270236434453249833001084022918433422027508275592253316064457441184675190372115765340734935646798550595857060273492208379837802344678249389551433140412822553961809353586432144504371793489129676438578873290392785754597847013154137921231896341510869235993253441339530927888054622826508142811572936083564702238616170294254467650956653783095703295615744907071530161393154854994626697907072363340950108428763318057657712557605765451893504043919845854259541833903935074596651856274056859420992634318072469760009999520475942454560127747445497997759002659493592945346319310444736803576624333662322128478808623028126203602525606193892826327682202736280117015651124317539117668898542186623594602906119431096990853486989835491384282100659302552419615369294175309065781235949685393738339411604797952220787835236003794602700189121134725662249355948395903479830404820467463034468304118827587856836456944987182742880025563783983567422587979412415127010654791017126621123599279394822106875650501968466533391000858684598663967592391723771395043191306711352893717124557247372316738290274475221811258478103025964019703934273754043642365980506141417800000015246054898155354026694361151481713409738089967226957033536073135391737556991501399073356491473361417052614435126404677153658553195267697690684949309011343372901430694815441589925486577084508584864243018790636801480932486145512577284418436582369547899008141374177145894327029743636986656359012753477136769337699405117563280979152578717821306693431901328810782506552383929745005999712843301738900322921709552876651969656757508657920038907943881802207787164282093113977348026743754703667826933863730401253713783992886273760011469225558241674106216223950597407237171848568306886266559972559533180043971126931548336289904211500521393538994062718466085319184947908184702572565631801378782970254533543840786978487537264920639882337980365763563207423453188770503379461573260607966274296049755795747114432679803823906662239154947046432927081028783939158583961148353912745234390912363778914111363150868368335403045497348192668479031280566190855458469875926721850384845634474503591213620010860433981226176211430808723978407581776136546793790320280459362602270490118569666771524336549962922576296101394098528967628150568645709623149979613043112286272141745289840035638538640275994861639131241028158738763446215419987360925809083323835385604500469854580999277842243004605968539499140721824587387012943890551409183186414617020973353751367949638982288856352690264004621130467424372497768497634090601281705550016801774272279057693813162669117038574048758392272519897454140702697486956644601201588250707386725899314425610090670559389544592894634703454120170309314293026678750133808480584013622155668510287293735224107919319050565577735901785839688179269788884539404607704850255871976709365571124932212294637032772595176549613268313009099275911472490917339860570834680176646664146415206450725630935989525144035849801827332795817460687641884056857818429184080989167240502282048164100434739204536882986786457319397017397540084475486164975394710389200647889230391437635434631227116126068316057194909195598646542243016875204319020278689261511087432566220592889734268237303342238381220335977646136373770702051800937613367105650641593873448112537035302964624132363958219305579232781289600960049785680791784343882046252761193077897372148272725155624288825337783787983157571475407502311680767073145999009336624394547567778447476641003506523639328220636898072348352148492583129176250287934726176842789082845614862380457624098564218848846353869682041553145378579273210712035112957257960443030446978448668337451726731110299818300797684549982030972291023861252580994089608515137987151059276031244077241838163915039118030924256442182935787694094849764075571631725543207903906618079477880540021679078279023767033358803195332097634536568372833463933981857028663147364968395061731222064706194337576559691886581028817525891968092624389827811959757322980187130525515632152309493792550086000140955147306397022257470660903792766067698855810373576142314976592105115698067927696390341741930231620763499064330494289700470526015700800532151365122797119297421439500358397073577024395668739259249738581019026711912460689016474215619546728114964494721948095881195751349378921473252888877194937863921250765426488045423980213371296279558214707554812577269657002211341208006311404729263630598683761001112138144466053912303195335096758174304042898958088412694539560612085503945857961174030571686258716128087983376196809956452502034556773224386682463299711485494369361153285871155098926901504026791068973545456416909606085477112052023706868603448179573076076796646184214339499245293076016315413999688091602116421388245933374880311390439162751058322088058801863760964302536610335301462048028550414849280806247255493655903745829878682769598405397741067040065037317062431548318824687429003446539599326360392394683564889335331920182242576275428354629101769180641316249808720416130465901471648992465237288240064660977352280666382419568256312525471800967749804481117583398063207964659668202726060811005750220672569816890531672821546048112641893304982968654136881252272728369372372306898421246403135895750348876774456549340386568934742579864358439260831109798901890313528749175445323635011937567587717941393162821266851611659561434378292345935381805558657401798806581833655173668995361317574653971895502055711180218005661222161717716389099724403699752513645107670502053771828498462972975589261650985993355065450681104587416256373391407685361882799660254344247028450020712127165991706815634700310621567984671951693580302726173845284085063929531030335986429704476728870780829275583581718232894160919515084509588099267451432892795290690822941878552586747420817411649978727580336917871033658680300529089763462561003035582811854807650101112861497184871239702080297030599766384144248572429084120448315537257536365572513219271846149887952522487335282781666774387871454828571610635921033419700266958447306462948078572006856937800342743200515627533858753255613074175668963543026974547134029947729033801964083013450720435008655005334720498372222743548740334708295260551837322604832246183212930363384473282272657319284859717861651642008612198781964912803209362991055719826499906136879036252084353923350335764617485667503351736102599262301973757680177034286814113588268011328754094092318709480243059789953749512224587461895515814136222681075652996935740924881165076491213079880928155857961526544295592777509348744782466244567674442958203973211892381707259731761160642556370629006020135689179627976248449495965064390913204877447009400450733312530710439787636552988203049475509066031552018547232852878208134487246099587901385799217065286723595762962225187086292569398428684157971914494213159062518949851828239248629996301573063714168934480112390998972213907500581907733500541886813069296294972474581627445291132537550111486183461344440982535248994702612071324569186880555736401345890623369069995819159721864167056113346424133901270291699153345210055258130667230126479551463819608898065522637317400631501166954868073188284054429637970379155240111155365981386793486340833970253364161230673581666495004260518275708306389548933891266791429323066152608635422841373264994863459244943208958039155677423767046137543386651547050182790112360981394992265515376969780034025146075898244275456399720510645795526117880656663186368173243779544040333844693248868606057437263868155964333710838591376000315606368283233508478814552180739342490131741463231944778496876056324756130470733372615651330340524755908850457802855168500220866674763936088602661433961119072454442999900579651531115301354303169039692490735085706532312435245346651984299779222615861551871532705773608559675102316162267891638255633080419453111851614384320956355425624382214184213107240343513510348233988003685758337966492522260360011186099659556992604716533809981219099778675080727313743338102487503978904384129772177763275675711427289985319322042801030100228842763176811996244237898759819274113350934398891069727781801239566734189089087712664611907487448870348944404084676739380782120236755522411978546558359695509012426597489773477015712644875790251896197500061552596094189366476747171498297957188722286063448736749093587969565732955896258405245579475142862662639912482021795037044723921530757798336329749648131770950609172094145192148239037697120653961556791321356914574025269780995059498311967056662513310965315671225776168397467116366506978352588559361229570048763021214096047963861389104973847182165571280567122649189150374608184854651747124294187367614514328806072545214248759030694315940056592187783808208181081534936197456603609582314792276083368890832609822381853445507332823559758517305457828975970769581646736069294908963979888996685071378822303193936952535685696471998698347315242022248778603418485834707951653066992284866964881192257879129358795807730647839842448780891412731129888091433342576749491603756861730571194617534664219678568674315007222446479231818587835400740951934829066439269802434116134488751663252867850015785294541622495546114718622671810804256100452104943670554999632700010554520338940662344624498326712305641334353914559281950946754491834008424720902198010993415350290251696957324216758302783950795403353355024627044752897753050204810350525750798879909248687229601426167891677756372285986540022603815078059298331324887017430363036326660966667595335210545341290405642391738140047670463520497481233271759892616941990540751397744949344025486573394524321011110307941410599498652236026994196746662083635072923750653375840059990044041573562168462189296554983743596571065208611314587975924815167803383268784424706913087019953796699795655526783452465517008011937520243200337614887646718130732997823249982397670701890594669958318465074448269531099317072936658736009864015596056052554795349238328687873647739936970220625463473518879709401566721307584465016631785030450607117636280698806368742925274450235469664454126885674068695920760189414952056466286706130222537775609322028203307802560258268457300686120888321753997791343076566026938589066412077746569206009557052760248375357381152276668714995437820450026952651910663009957557149402369830552172514897781153559822189692345698690764664553559245226117048563440543183709132498776288523720365009839279396180621847080376874012041545467201822876900160507160784039447017801739578794333079320908162771911814732325687138227904811238311576574127385846884471530445060625977707493705457376448278613423675718999463728097283804513987245382194519998214407694500209618633656916370658619913562912125219777973705113522093944231174730590986204631455947009484282405580788330853574861931733234705528277239007467874127483035158538332942313996944525154883264778604494658276729288257095166093150402027258624604456176528389167197605924766708935940516269024848857151447088193226419856121024761295909227909131436001315966380723050732475444784009406284008712582260899563830318525238598363364704262882574352682528886541246401795377414051727454171435337341217919163236124085374165178429887015846681568185739876577977428305678015486841669304110127204456571884177788085326079359428779872289287552666479678041311729430232335551116730344050828207771974281404562331158665384576072038625066146410992222100645710432855107748259961294324757749921762130857255041120434290796497973045386567128977265099007903072677666406370680738817765965270130735233115017423626843049946203013697650050547730893152362517746886243842970542500446752967563966837140905063678622726652544502917015570322751342159640485503804737295824854801745828582561930269624788625060626585567300481514460856592521639177309063911389286586941177004234584506683898927193284407558502267670476935452805855815260696908109123508752216586182513424348200258936919829790725211715868083591202923391007812875809718619824153386095094204878311782665734446523295946817307138888727778391778073964366190257335786954510964274665563931867327652565012507109505279439483603912134970242708045038697844788618725149378748119319691231563990690269737989765947987804041308513165958333732785991444171602097338621286616164135430551497863863107324708542987390559061205971244549441484043625062374847576417623353964848142584851498146947827970581068770413891368573854548532562494856641620216496848437077004695994662226309763095111815249386736432538282405378731749668308480353195706356701914863642834729959033975818201906682102628070855157165249142233185109807320380332844700823909377261539633818400541493590666327837169218688277042632344417723724862442989984006779800396542181525145070495179956873062168610875666494715445659490578113666582163063456997795533941323194855674299025322141198524963234606046690238253377040560469067388123638764736098337319069161949918333768372439069896065807648582483600656559688205326578373289932831788450301866468007804449024463475911677809230151073100699613393035070856783711171723814424323918904294784541311916497187465508998031454500848904060460557702471668556700203457374567121566143810724812257961677263754850469804877698758971376729889899513056574216538173848314841091370435168972874126039830205470689416450051922569255622415205190079369203571267915845315552074126985778530300434467966883309295391052979043814783275271279039048774941209921950784239232987673795400957233128018928747970110465182147127092859724964182600161263359319066917154438542411673122459887504650188017534740597972317105726243001179085341097568330703177342648314525091836080650064722188691350923875906522477210318886673574282532174454977576381923041925686594875550792646159397842969837975711405763751384995540118450438539714682713876006716500500609679372358279649784222052566645480592308628900448033812995874390771617978438843559998144097384486224464436083190017862882730527381865946095090741909450501223289263250807149190838630022851446866055968830405319816214253561573254335487559630639053297788403157005128086967487804340216571852035419680338396901452704746687829348046543484336446910440397107021060312347189972983614668246034200063490177482379436298454553456263142974876680023599730125790313812842740562926074149851392157679637016872954383331276850327756541514689836891735141493987456076116067498172314170752237213339572024856304786832541996750956169917999934173969325058487161458535657404864429055959181310854115812077001422534449132344418245518613724374432641522142972023568380765870287374635419759668331635708357397719837650847607556461370382772355467766693704630529749398472575891335794232731997734953684765165529879972433326613721376850337881753671826946995440868989754707313756950169674872049031647373718039003427748595415848930823980373425388884730727380919865017494318690957474349068785709890470114473293409521444854626829734961705035856372735062697170333986332944796293935362823685284372263795514170913412158481968794422089668906155937340909504657359115633710561035289069114354184402794629165605360971203879323669795412149401953253921041325397361707714831892951853406461087105630874343615271914608710621519799774026234813599621706683310424399438566312598651586897299652572110777834945858229930954474983832234053111603552181812025345162161328537207960918775838125594982608196946106987230224294119941385259651603143936275634111813811632361235082165993958510510902932788933041605192120678916162217936521336929608945504906069657203019114512750359846044399872895481953590443617897644690236749934178192121707867379984081514599140261455726535465305945679843379808163942211367250950587169587685265732957951619000769260012676944433193768921680231578140972737970864803046181396433362604051442564849943493008714339869055109669552169532031643664236686811499421916010594274507901344954173970980495978427715508834178568927625438910452398092725468751517090737264614393848102591076398199213969108462424731045681988852568541349015834971196090882723736802155422749336303131198261314870785673009534451846191921318838778171454349360623313929689203857625253535326838247291170333622238801197859752827255089436161336702800567362286599833324768510861714569997002972756991813070003570752899867663773782853449268736019805220448523186954213578159419090125059871704469974070753269185475358927024320538855218794496327942645345834989010955586043062090639904534933254212727938741762751196005992473947939815839656521335137932426313092741223647124080421025613669032743016871771016708176275809782292808397503675484258872718120156741525985897621593639222236770838576913060555153471745733702880764480340947081621451236041800542547052189175935728035214206856326679162029275991293384590701729381253848583768243969019009338693310391888134776335422718426685251340733395931884298231360118000991107070448309371829312940086012960327169697977995918810051512693349205794022801983019136648957054249759090417391884491874536135746108017208874926655231068505878714645228639455706035835741818058593730328331485925219583304017740183810404483215246953625285478417572186666457376902540335713725986454020907686165989834272092056637052777774239980331718628658593408582867911828022036146446228363879013631632417460445783196657672821369379617366788701354842988696355814701930039687497889569237706939314721838728205594708336825603628165725069712031246935283082188678884790100294608270446876948498058991308076396042290660175478475575734136596981270978607945342085865198848481315249287748311981836344642674217522742789018891409797600746934697971613098852723660425233177205251630952194311323572837258767495440397376043715438817590113228758141335763952496336187673999249343125683978113427332707310960758212667168271024357979739323430994432413441690727028176914940152374660078496701978733242658373648626904853274953153190472594071833774151117227214723112877081087484728752984196701365820689088813628866813742633318988147359621690322078189108312775033502386482260862236629652678211152481939205326044412576021591765061239495320841578955158713669642281728667980332371494544036601564398789347375005224193640245367131026687115109175489193531693520039281787317671491205043024285359156816399665623524958803755539110630463663668050047159774339785608304559862379436703076444576149347404339625743314014778159374141710762237861020784870412985013052219925341314965084549401466554274894165753648551388715094082004373477146022511806416289385007507494140444625341097161130710907490010124668530446966419857852405141934087558334842464564433075107189405137796794128268904797075385966670610291863032055868993531947662204700121773838204493158746851070835585650545157961614659301854395747008819135607053995921993631461463550933282446406702240865167044343105376082898431665314034481096199423243482260311527866771024933159798603227974545022512344659624400511311837218943435403280172459391965518226448723591357088506091678343110025695118211192945309559471389414167478136554313056925767464499783579326074771208982043401703302651119899807636498091967553846505704135502351740769917010064290906109778258470957824118378444035784499535048308331029207434174324109160430172698851966711892304095276211200182348524439807393795303173839616126660994355313681232398463823070912341456376638326496099017028188784396299134110463401217142805364072544005525594544538937334482670223879635399951234308254324682451069606689522799259708209771345431512143104767162912869184000961551572485424590734409956802361538715083572606642442952116592310292468021251610971904864122399582426894294162854920255876864344565304568937120548344228938293413254070480847751020937127881482655452221916347331655867552369035424662862314097372303212414713820865845142921572892409338502859572314038847515116105568607794883073134166852204646199353446539982186029884083594303313326737996033005703102372159461247164919419413964114078178561420023094086582345721172553063604386669065047249300512046364340595188032631176305657498764741237317748530739342548421254648305283924642021543654594006732075188947802932858310205135633847834678337653333532099722391682944465199959593329888404850428518901083645981172547361328593496210212148056871328322533599375148133318168250948054920935386105408054992177316833443757246836532724792696892049055507592552712517124216416279850591397972030542182322679185090492903004674908634011173405667833961684748294529476173195859083094350198453046755183909753882064959485873511676765152589925913988995100594626806158599845074673424592643001112630930200168710832751298000181667070720259450819850546284127077428704483094275222764701912216012716470152196872005717197823225218944007463350408453173809656173179015125507968130099830492456574428648891173399155587531979869135663526916057565801777788773179821837844942243894863702095171000965536501495060157851358323185037262675532503519520177558491086511194930883955024434856130660640204117135709689866723757923161866694348793185569212139382258623163875173634738208088025351567451386210188129723950583061995786845779241148163523322517303537858159732517702356567623659912338232984667908995681952228845382747378450521847572239182150505005534369322333508850558895985935445792757303701559281979270828652302873501686530407736360823892818304840944388501585896167777389362295295479795010581393373688425036436165425396495306494970363894399285630971576287578844071787428790104040029014129936165035892967608667199902468333770494821799746854404225613607530911889253743571047560043641450368852367683475780001467729005428111749965665257236574833780724056274199188590189350315104115993947815208899973391379323964860446205628782258099409838355036556466647776828135397452605256305002527712508105440114990413044647358303344738172857544108884826093787169026540233485566504637722505662965540384660749555744450171250994577562429585706830566146655001224519895330539021506691436375550212857700842895754135862638691175388671405488441427350679739385639020327876802743461742433742350150974371860447932942920333765017561772440575215673162674402623434964721528902368897816407292188540502288660976766673116411096046333146413495122087845147984055593064058085053951384376452270018148805398023629445842917386297031549841173042639902071170042782526777378867097070899096748373889906880155562787788863657183139115621750722180879067204141822707821073165992003996090375189121742415747225479655552149616836972890877925704205762644186787706510496767275814492236321488277527797232055272207754202781230691549112627644494259697907051398964577688586997192052634444195309306114873910503494592525137142146169221876150630082658810195165191661748335643637793694055680563064454425335824060578970357179831521380574112991332697005677653995274280456840951980834375877706842111939237253241671281212148615899758438675242638384062749912840278627802935756850563768813922206275476860709018067743876346565666850006439186001950210186776982596773932805543048393368144320056904430846988001940623882929776042685131526144471646613817090369223321019595552982113732422199939908873014576654537214834111037926539237147251659638788740405398352088996560489897662340764438639319636170242101124201894101769859399495039484222128063526493138083570298423423649802603099782891845935490604963392423327905835264596719287899683719218518434378033863048514161644705514778482280146304630880426103196795420680236589257493787124526941917898501555723553467233073495174559603854245457770120957754330032738989446836034066176076152427781607755425925146172072749396213768887240340914687909963968352142256447711252255979818890563195043379703315980023889282887015591667631142633950554266115171496579023755573372930306875278678515315793802844753182169930710943805566455103620132551489642165470937014836574517329146348538055787547159668874116931666472581316749358904584251282084596327427416345738698607439282399447775289020107929741363664860083105298338756053030860175862742004018196375979494696205626534735800000759119168799006379632632141641936971540416194821816396577178413177649985834159190873649249567671515549243556407917359269767865529866296751336541863198981854465633149651961912022040810431657660776081558373946579330381242573199918860680260667506588439768601783964494221371817220721347025649007346459840620949736799725370540212996582222961965286570954407733296393627760929026008410832584786974551635054187743704519465957768339739611897211938966061147882349517883772719079688899559575486904595999449599061985230931666201596366157498627816802284916845543107074632871143707061897679005006175449732351797147490020667766070631940835015329413921597052629867045459580681425734103091572235365949050782672930334329322332673467824664970637491550848350233444245694078363121529795074745949876158596371543537374367181862515184374072762666334405593475633427270544192707725905047792734846616653010153694972452750920594432455820528157036037785735395156609454101096505256790612342384916505772469894330001949056211256707786810651279294621995912438322245215895389429182406106433867748168522669297944793743097154570755240490287054835496281050725092077647420287295669785992343391252554936288447743442584595884844478397586354072484344145046484498090580903835748431612481129084610246958383569254567087134275091978492886439290681618214860594466246358473014975576831119069049027668050291221505144348511845224899760673985395043672666489569733140312872389236205329491228486397706850247190571063213395921289876368136080933758528412133360091862857283274401467728590973012189073926560745930545800710555917107645326655730572392581808910763416441491664933094462230666345994288136703245622137274900144812625270179081723904854296481168713490683071308579783865532136563871040861007168817639693335249911812707923569907994713614410004162609199109768557109058896151949119063728463829069369606540323354242643506067427702854517589461341723834291646158011749900381078254520453915645835126907650176466708139683496878751332779545261576570237316578061733314403078662428037490130817070687117518734240516211461279931382350054259617719163641287580765032317015927453701815236545206045780094647066897891836521395684763220539998940382504456767625319657132032062153023884334006099121189302555367953966408029406306906047836511935191728461922049278881657558868407187346074069180273679726023223985883176669173497962103984141568843966173162389051622975445329363485042941552680809016943653545678533040959596380368924411592821629027760440969926272865831584255903980336909180736298466986067034947124141191627923315921323071510760718955405156563958100525145206757692258115380725869823776016982294538222158896802123049109254677281081225310131019474276620266238565702746895596398507084593869671474600911697881368385777512502319988012369970716405494337491731807624152757729037429876121769669230023531548962827680425600981985228748971405761704846165409768216617628288528746043773102305692800161262370053398852830918256709777149305873350080722119794140302749049193257975715088693317347845753490725746373398336032383301354153804371389518501602531781874424204901049588527798076050691859644555333175472482698925621434283510971404006492821338929973230920305527715234763352929468600689054942382971896141577074798828806349816601333807744561400566304931585701957635452265957110899300039558081122262391792012547186757705614813719224108250713325479965416250629037627357815648738019011465063279646841363599773355966574803110560314821674620938826439953039849886389318746035791283160902974989511911589999402548833914070011809794229335542571093283781525954084515370148401281882970699593300049788948152357689660163955300779709514565427898949923727768353632845905821139543424432591382102255485124480792551731998780963979378456696183198421066550403927601132529417506795543010326486143191188758159643449528149494632718284142611603843915988177325896693111019978432025316540733668126103042499607846670876197215683287754166596692020368800320748818835720861619896842421887792067203017890790693342658697116013714433487623726037721003199649610590003144950899784458102640772129807574666605994106973574424579103108264112330807773263194900961482699760922128533767519021934628273660094600547459749915884706752884576332705027929902294286634086967805365927362995151964243667406437722986272902543449259169867932775237999482349082450573516248229121319877781158873526775462247067233584324674793502728622317739504946028767511149319572258491815410531399638147439046223138811802210522722316637221637259654936969813713991372930962658529172972217488590213695018006707793694184077270330334429895302924493513850492368245618997086707805798734724875288714358495270958780264535899197492151161068652399449090596770652823860241329146085565327583989945446158334711987750467133854304960390729080418870218063611204744160986767783172722662456678030326866606360499367693641440769279731183160100073284523956545169589072709139358347838258299688332307255343832939699908957774147212959201303480529730800195754370473032102717192938025366840996867548278287994052662708103413245184975722023722715193950621976731633568866857233922252309602469109585110893109814514193685664870932474961602531376778925731773705960067472940260495211756472444219208901168154477128765359377583428619044236461992988218162299229976344416020450729752317944798974873364912748839768134348370504788969766726673016795887895362532288542723769486626971954750895838313501231110095836539213927589100335103510502398069466267499827761159969022961202872862821722255974426722798093403705553078263651234251459575903892354373842139720627173914063069765534086934777406414848653091720322447944177523380026227398156927398252477591653013397376088278285636450758733220359772196398047159418266423518424634319012298389463767705467888285977554326244865256661409470260741795594136032838598645798617821210347313439377440222383516750999124197148484531630142916371832937310699278879587867983363715108892064871037412727668419880617395916618198665600673751683668029106831365811604572289008935571202211837777118624983883795433234625057092866689184656047722615610534380622305869682542563784176727088452768487191578423033448967385396842639365485592201768745759034852771357164140613216179654385642064778685858865808062051060636635869989705488047471173312407929206208703276926422491548133836739837723887219770912810392511414315128993703252841401714575062528882339204745554770860977673319421276943505037292162575431352901478148849329510842204257270829037359438886149522580313631770484679621892133613013835190065311017261476919948007180896615731148838593119242839082518963382400293263586764992302373004072053006374454927476272104126056430087039884756404990242444309980970938356431757504483501956734975821298574049710069422587196290076361046621099511258648473851247006612425271851497705271739395670207899161082999856998272071214438234670576711338313930442807897372823783358322607465030269957549890778531793627282856640279837403824180224222981708262332534634108461623168286379478221459034507438981964558043513128696996785385946386936158961337511348576011580576214668630026097338320599480453842901664478501054087553401310436764792280309709788205106413524052378909402156786572304543140969639322009770361271990196141212682656663922890403232334610563059347752938878247205800403679698587163604186664364013301381144468943699190013908785406560052837284850191267205450122236796810725859605293733650003162872938984211349246345483305007684136197432090844963120885253201711207435467533651029060717606251161447732193594403225113426969830665239912164223077807236860259660779908574484454185351726055868752789317106347139460214782795871896047736136721328364870214899261191936421689084180397037513628912747998444232620047148236039479258696531764912951337310820742618960809992740018517736246474481857760371963910180063369996125232860003540457576280027762008975351013232591443829789970667185106807557829466758823984743254521038068554164374393360210636017802327246950940685905329553072693360900653261517168099246274830055965640878763787921119389385518182139479346375564825039634592454661693961280921165309831321658741728481902650250728365894255411425857005955096666142378044532902564913814677903648105297544681816953307901878123961403285328221666912069531378720495836194478435623864813165925728278089009917242312117092737842407267954604408070458099113946765643973636584746401329543366575838366429740394495488422111728989481008692115926849832084793645569234131040607246097259795862394408879124348434390635592773273377545674150816175271364102408754115719579318848958667777394655496701577482371738780204779171880125349788834891361846162343284067193328901362599609492663552391003989008801865023492356244048052346706506882093409087167950134354315500514691825359153371242140488238415007190248239309626175880353726170653996348572583386483040986332288322933860517855308292537455069468916817491818480577046194873029477647800559414001919782955538318130551718683482475361368322018743975644960218220566455517524349136213499931750759980409612558229157084222975309322688688499662273589293149837369408322885569734816942943617498818712023946268633189097855606437787174257677897543266749954680108874601367174648012324295693729042598955431611906800682214704461713575161844487230699744650807058430156919032481054676025577369589826703494133132030256318578121632372827256905965980703754636676375632773812914092706179045318703071995216266400484139117722007474278816990432079726692898201190247600623772150966863704988129449635427184671147949177011039409617390489048839226470048367542741341843992998795004727934183004089776931166720092227133541851736625321442721630930406438914615993428625620387191950875900800385353510534128747787816019477393668607811755771508656232300051905247597167836950965526880919512884823553259313402448290025524827191836011518294966914357755665571648336492072560211751413678924527891938756246087606559885880654618495098362906209202398892506446603655600763539095968945561411502795547884731535229301667521052164556912011228488736762929242940621244678980705101725011450824155491113445184330845655313303511954971547517122859355982375261146420141856075811931776224515983082093638995103436990050305475871212670605643521589771885313715910169979321043368799230669757280150745820399967830562786760460390816573105524899628302626178820285341959941992778684633390711166529449788353695149329917514001004444438090316961266234501110779000312460125317951392355012249042745109743580443260676289163936912363717454242224046482205700866085409828912901552379017637081811567907037432972502968016300629606106498702828238121808872884778134694886213315422844525642430824660942075702078607084970719308968302191370403998880530037780098953311712218135485503153931401087095622494923766112575131417836391969932262107176328031754415827743814526143101264169939636648687575042844423134807663584213450569066155002598740061403768917518393886956471137773113905563656481356359236940257530925411481862217636094669944100292179558497489177203264136285650126993106015098097039717630814719288079742341175736756351160464998920360186539102608640010753264770751589348249461920359112951983861984331369617867341003577082367134132102517555700421523881421710636443298585849038952615790202267326240062794281023787830761116737262925047967882124865293079614247890610279167443401383197391036074227580730523048285565269906570793786251756068955372031267063496103016127686447899729560340955269559477486326392979287526430319509782700268501461615020570496312846618989476486111529472586735815799887323983801394540974042832381747782251836267574565101884863736012085461612791331075742312192077196560051091755944971969221624462268865413797563668941882262009065491546036430561727335863018592431653900482799810382601135123766047846615902055824262533026693102749894223464327834423359866603375345458997612489990987329515728569307812272932494401276833877402935756770633759639746875415614648739521114208780987876477857378162222827522131604455146008545661375898692629478150920382697566066874078887770227659883395923829055276594790024720860825978713172645187052733807261820986585416621869089095198288652259517251525044381502042032793596530293376820629307637822404633860298112602907041343204716696392190387706570007180670849305008894110893836296486147591979158045293144828635333084519838552267185636142702481872346204839156593357980651864493229679822450620311739905859205025782879956069066964445480313234533574782239012466012543676042343028795098135757856663452434879846755488956568681743606920492258636643522256215521873487011025517921683783501958537908252922199335988862630784741500254461955518760215151900129380853871025702009979682952356947977558306065748765614528524103818644169404293987660599548066483056487313235837913366761904802969296694029226487830075939787034708624928212780721841099447945669123663539698826163904654682700612311407800339365311152704762241560660935399280164068332467486624172171314412706435184423003753716290936148401200888045640181905879996992476706941174764348631809774158738363814991648032842723193024164550048710928200958694371449952745112454002135153022407719778242011223994238495194018627176227298505622626392251989013872563505434678720005863698187101217298896565901195627053821407499681285286928977260264327883330787767749187894882488564100058941961797385540372949119547337178442017895900929995268638297162349669789754571314731083156633366673589657943573371579897787444771500420915382583597617292683872461193949719251237465238166004623776423661682085610402533296880970952158644033977549338344075300268012577816786731994813691407420004795414393825040092788216787056352239933573961331234514784113610163038177001944198168556091800708345001947867345594384595880374823982920732812986405433204485236167217556259311440872549207993115852522908755832958308138432802382155536460239082601065162996680212093044751074444872078071077599432315901354368713187421475573036590088230713069965735272876775836282838074178428331507464803196706577359273363637431899626307422052901274819897011339361481082951284149660102427933744810952150123293306932356072153688150472347951392908824931162732651118511613475208947158780843988358189641848533853857408905508395645204878658832984174889969080697921049914257335928787137980250392186698026659369544585395300339997469699839052028280555366464231750065591525351211329356461497967362316430741130469800875649730844575933139763443947196697358156337337309820395427999858132980365048616549582569308264570263253170169250942190338329488854094897489343902902513399369591091119281015159652606434862864252590734364364025568928675193148954189613720830543513192237888505037072571517069089737725252297415239951175221643775405866110638776587658293984165429261317170733283776343627244286849304985159560780906938823824393125276193650466656390525009866161435126523749590840603360275936147109001337235261021834274620541362060128729361418612576642041381908796127215163199858458515608857170445548069485340695380642537532064462291184057143899684038253408505220591370126758013191993724114454742877840812432487203633425870633594179238899439947712336659941231209140538163724934316961177806668311825728792992181884033961998828357883413184601431535861429642402973876856426988154040156708291774569094544570309603243995073395262230390677405419697711046066269983554648133470934654267167180836186219806282039464423759246433451667790707679612055430710910986153560432828141035813179545124769652890795219756301744391286786729659464699686702072132273466390212152884069681599691099634403438282149396166200226199993254105532322212212296834235377874742404321646210566840094323253161074793327190599313303781655772316167701201283337574466103196413255957334030297681102479400786133521745779556682631122840376828691759761791804707080868128126257323677074415250586805693259019170962137156336882660003031028029901078888019256012118875124403842226687049784662048884129010785561903137304574706650501662552286395365759724179319791290077065786675363735514587498568732785858216926919246671376016420057176788621311551935740075270307519368047761352657078961788918775110932444667371479387287321721084568107249285920476110533179575746252781480520333312855811601851812128942644906674405887925608591524762608614407861017877783395117067967681444003393853304277395085007512494079796465891070828162963359732715768518591694010491504049945839618063612091519118847794838669758075630623248930292123519948515507291977293201841638777513939768265662476293290833168571576564672007516010980252378475753927028427270578929201272711756184061318130267711028250014687808036474462873469706403710670722259885412035586650641636604061017313580047710447163381655475449131014636663588073670853244155411212388730647606100693164143886520041085562020426885810902059163062967565893650641651588807678803381767902915607023080269187135249176882641836437267802247712975034682579493049166355264792445468908096745166161053937818208300281275410607702337231511274217033278889417919376298053875480840896774311415514065735585746479966215406875527642097919437101269215877391917209230269849395150728513174068021258762691044263728912122791656094558989166780351615689422158179233848301707719557145205852486731599111140666598955856707305990383745942849709614307312893033114163957964879723338199649078726248089853510373634828623101031138214657926509075253388667048677895871366736705175562933144484873998066908080192703742487153316521449078726157655662650355108441254468223189020393178018378006681001538286740725105399025363406081225552740314253295988213650324464210546995408011079374719479740522545867346114558461394801418765643394714028882558924664878171740313083118792346638022780534018972344160468696125410320966583685424696218222358503435291541005906906212544522688566417655553519612406043572165437884543833914869739131187332797923504752152006682534023712862008636931410370873093614204559405974583716255364336208800232954269858276150777206833019776061607097996305554297600904663161358508612563069226912999107987664757278177544722265336400279269546306273207515699377308017494336065734202513307062415575318156201976214564668506393752824021060838905845465287906557342333276133729607148058796489155167578777657717762182105890058844439403544229691030012019875234137428978967692928170501556376328890606329527332791553006928736795703843268104053621634283790307852518431309982240958530852545472645451245494663209535024556249611836116996393337993252963320832999723370932233845505293146001997716018520087565599889629061308251828466214846351324953275937757297288192754735718824143053721051594231290833743664595970120223687542956990945695008284945916277805699311143418617705362512458506026933641251416196607730175098489630754979432826862028125745247508581149422112841448477782187501500915954253771506331534567805601926504644726432480436394793470431862869740887151455243881700416717372064609575732776849362443382375237860911044582016542072357994575814542014038010842267903961208569380385308024539674385348234650146189289694857276750772873302460087616452226972134683285042864020480567188748833044075839909083357158555006770900892239906822658738964863599123785173532776442721097378607180441219957181554647875785624248267458731770754184328247646759007794048881133794089991314444034106264826288716584511475236032979165736593952895422102853709614871700216776578852504361530904412267362001361168145174344185580376232586327868844407875758971368701319608015948446519364238529984209779463033971234778815786673793367229155759230493786518808682650706804183572181500716515093678541950110733452129356990894550983481469136182661819545904687196469794730117957770377969269795643215186388000428896913456458360207132689062552714557479054341115405357459684180904657706589986343173429033248815245150418557541353309455728349733674972754902992718608119162567755326252073644844708593270938785284779764672740169974567116421624657250901069327479052460371622615046414848152618603059158869042837808008275358466014389685688275509030203029977601285727447822040601406167861617416781357686499660822966495594232558029995186480152803484647131130068926712693100912514845721236423738529319815275164748755911043660157366714980053789060836351003317769275517028678160960101198581178118620646913527007904563431110990447957288513659443907092501143173886617336762592335301230631420255181042633480103142580081066457606325770477804696610207737368678416294948154163339256771834999880361390934457578797336715839543752454436987346396534773378344616482999429393424384273879409321216611009264527753720967037559647849994837965616853947041743064394866339358048122252916814875983206608915948369326193502899302343328083697328747306587226264764693261076073154669464826026520989370012239548646254450153622581710344031936846493451417281022747853779616869323059482806561812316909725920011542051431597379136002275594975568820872811910752407829040185544902199347308490472015748035390489314831673367193606208625561282387286372835690931546049042280527303521869721647346979200616279165122286255078234961615172030379655656983918461846638945709370439295153435095619360046563836245983367119722580828753088911832883231066422484315431856057550122499839901370787888806777160568430559729405078168844794907866237919777571732251152315666469365023915249786285279539335428742872614706204633541526781117081684165698173347660312870855663301953561247716047304022006699372014291424342191939672985886290906203574353531381703963254619989938109662560273007514200788125101193873638842262318830614352479801845845201845663962967931798240762375532870945400192740862353266470466830560550602358459499475308692035979954763006352094175972849643913729254915533576754538071206062584370664030484767461518707564928791234016302204798427353424986937173958375062330074536345965814694842105876302004635345528280109769499954681843788974394844110181227725718788507324889946150719666939228435649768679187247035526966101195938905550334840579227561716740635408892350800677298358136486774984939489701982007116543776486367999300819776084283602256983024435454633929358289781796660924214326846890576390917096321708381157335731859337074144682347161442630875377976571660147011521579215249834993247363202295517843909012043611942439130464783933347240774213342631679270864133167361208387931105962979093180730976669180241327258888226343826046931556742539188644803683278020974060291034576081953986033400730413616026196143318510720153991186117120271496738273465089438491764278183641612039600623551433491878096856820071243066791381196609811504531265683117392210709447152083526961510524366032640310186452085468984491719737877963344651874824114364333648038615466420992542150848212529957355582392355183772974209333928386899647181919194900072470702473677180724280555752518914344452507717345971545786684252601980892988421999480304866752021865268500717229085354250359604152268024454841395568049457167973680377613566764114837515911867986474713763108327928698310528730258305734652582726179212438685349554448045614589130186013722322859984725362160896335612289641037757884822801506051983306844488983874922194600248924339363196348782113250997831332245397508670026204168167127990075589514702725137012278851588804480863012516747006268475580561016576408580175114277006388945065951694875031159103119613650390475013204042979411922999756723430644754911602473951484059925424445498264091099575650096934207948747251893041043391001666206396868587771274222030621480226781019903785526382506941177815750579956755681108925245875449026609532744761091368309750951450250517193314310405786234858666768465413089015088781794829800509012625722734097113855963791111202045159049348320576247823485925319792224544622373054828154012129520976791456736486888513265367185565427687907513536304012919522579690350328285480656275254926135217534513224545834130647085235474647822203664829499906718278716984356850165951093053941434557956058819252228245634090429028283436384518375020389686953727062927354666444082180478545350692235465418816499019412547935484564813654860831894498526865284257875106789328889167117240634435692841458618415034753449355108189682131387747530205538278066048308121621269919995601125237216099042524963038749890422420133832399396147797372867952144667870556074080093506730788937658980000022107866978763126685103805459520624437440514885416322669320192414220532505812443307813888742490228361013777143887350201604689965407647540377170539557350650231514038167936321814749471663421215843426934996530989416361888348397977859616335939163691358723625288409448862413966229019770071057475334483788834219633663313804025305733973727068948404408395718154109992177319028484016997698820217717769937471254365475974603155417879476208903663073280003675733458651909798280782874334118753537214102926223372842653149570935538037501561915880901194661589590735016847421945599058124844520785265479431020583446251973125235277828659460607763487084908984185591015307606374915341816749321634904397363569817176219865453417866111071455360727486845417974774810098548457300442698209481730827290560078226068122359626337901780679826946376928441908079990423124438888868866577633827834516926370735712982634092075287342765223558295301967628564476065110236470273986335805112571249038960902807120433921400363492165648799311796343005973422671788559116771014154644160052392946723529083702609689737551679923075520959090329130443527783928307305014943972662865324753021516663867905222969080767931611913313690298659377030025432268602165107239493793644999109697357186358551581286628222672366173932378579667225964240612431440650123626320259763679263206839512539032938777846102641460946232936354562579493709011122435550781566049334420571721961055398352147011375235675435025983081148520204135591893651074193844147175975240380740577343663121494490177588287026376448261733382445108215834777846544498325708042174521393985454480690095912059640247080749104666747126025600126967636154301232381088676665665302154534776568350043213559183228437471758673845097694220583188860838286153188437794437937578881743555925459916249567971138649791575683525438411030220408039430292799724458863255849608930840939736186068568961520019269798285825869581950305159109098299583692127149191779691419501259631430292402338569906535966805681193138640489531663540792182570477051424072963466394974730194063967231045379160138415062786742097209887447402919942474922215594456524472010766995143130418892984199720720868029194141648682220373631186222618850433034204779245551891150224019036020868445390058236988565940563299807020629187093272117181416171269280911085805324629369584551047250186645729976875450490599281859009639683814502541447137238472541849916735965731077638959236971173535755732546530540028262787142105657687030584861479197579768826647139638567001459514187087278201802882741883918858934012019892824946155521702715863310722231867187328060952920407004582292816810779955304421869685114714381635146984081440384566922343380762036631790273248354850300288399831372533820284895141963432266500021966094900672599305079073896541860067545302624528639295502556318951329258548320067278684863334286701690596848306179539748332744211474439841716786428011013185510349918100354799633710308367603041996994021741720340036011128202599523888893003392609779913617562008874764174184902657968694334630098592758279419945464707756343021048991136924189375668651818838780429715451505078914671036993606785530746332138299265993736112661410496847426093993380285337658161033563356205368662035781732709394020668318152197470720422297536507439765533887532156635220164710530567754068981293508283179710621562249860227708939669607230070720843875527754846788691513983429750010530252031482917023916735931608727724033904988704532574376884962942006296671438055653938738683904399726236559408351107556436025780168537304753896353227070013692355820023860698685572817431665893509873525481346265844914222673898163871243672377192859467716397238471798216155077030346216794743227716828418390977899880487837910539799466393485771776822704136568180657795708555561509107206298653658642865412777274574811925266254396580996970742130497437363375381592280557371736702511187784662245986371005039809034609304867728172537038824176807683221174483988013457354199613287762493895942087442473188632393789785671089703551022389541345886420279780389229437940885184075814502124622923915545126325123230634612866681366132048389615605651052864788335601041963493807231628253616027150980629145663405979769745935114948728210349253008741307581618590560240498817873200972861948092602653522399592586471445672055737227825752410080037563396313196752069133447280663274027777528211463699742607745090966896067599935503053515790197378927587887653300422574672614841962012894027361822397592620649266772581310190842444068639485250368093854716832127497389309466857254111461994480636186310836384062018620157065654977329225166129297033717991313825700711551592390279187604071952642779254974867897111983932862597814014318971930829479972310735667448139868054559775995228306625469181428246999338260148541421095017696026627850413699471794734207718038792961550517815936893311456046900523799604692292252373076590933323789384511830027013282550022993594767727768360673705906141543694943383244294345557039668562108675314958983087261132700160323032816524178879271132490183636038809559034917883047721722494904139661046349502438954591594437667946395687624408044825677605790113788966609123802259167263729577068842103721159656937317904546378168985429199250702707689052717563227589290853282110295757510371463057079638786589713191000245913377173503266590320194311219558768561858428542246882495811170614195627830990410169477081512568677292752961482720435308253095522699857801879006602738832697539857903723410332919740079438668793349435982536435950833682281296780298147180673558410439742433918222665115845882335465244905852003470951990115756564571485177899110215951623777624609023403068991439282455882665671551838829052639880809745365300191002848479434219328673374557482680372538384109749561995580642770642285367773480668785894635746974604192016182314028247572653045350124843762524521549123646231311755506570648502772809169397184391071663925537263048654882826095492910422669693501569103267704862825439883565188283792412698029663461947248015921469077567373782067970675164467920593810195797640286632368893059383350963063485803160732617311907913362942940237589046025657291359008385715103482926018219306604631809754695551555006083200987485200394538399211710434426732177414627917461418281878909427157529349021549301847915907153933034781702557800977301242264218555561146847145323280946762101011829905105970265927736817143726526850491408391954628054518909279894402682160681106161367496390026782325185872818407688509507010109645627124895054881501223137464403417303890183834852333550107223717703714399384122849536820068881950993870360027735070474845118449172047814929528271399474984079256303912076527730863063584803200903429890565660145724283278718001371048519226174790806681440061774298312716310685548487583727307525955365965410116863705372069242558455962341438445412930139399328887311504581406422352021838744122966980727693770326028132546777970353415382754437678174060198821840092980364211193420917486187885458563453614292929036277649526241377175447522256486196869968616822390367198081130255488488981972542649574434218987934215610916756294979966158966869752265138148801639147942199850369103631161441047067951670268450443100005487109727433728372097203023521506109743912121043273789837064772170029358969578474854727321790384078899457839918060955103416285112132091032106962046017853900974920687349769198105409015754487494329307322615348836196538656471033537454854035571480640573061984069316542937658312795493274833845502070948906357723068545970786343984350332179123525649798549269765246601374101331831626775472395716846272841901503975834892807679649277996675154762106288183570295752911075083591398901737397655590423734578424396582155814163081946442559685573347026274578846933873964721272421608936936819378138136578660151518728846328563705868652453088293844303178971908024656906688546858948395374262461116187702776262675751732662541358170923937004192239705552213876728928218563258124196052663624619513871135168974733892891310909432097519346520062842350633713213597826772075278284855990204819634926369170612589236629008673119486480722977896027481622767260241129079432282764374060577101008908250889866210903283973256912616611776766734248365718626754586801228377814156396168697234460795127416069672330936082717612007602995848669933941575921081286485879427096282996799640911592761446756654470595893354723938046458046072138406856070558923573273162503967292283148386195439895370548977238348675126655610135466132248059000304112542955340632575078990785961461490952262356794053299099674644215134920364254571277169058741862345930208361043237638482666740788754688574588197810157381094655050477762722760798751233128284271038741659078513065683892099625249683063379802972171602128565003369157962586276388353646266430321922217503780806835813149600184545760552286106125668248782671393995358531972829922086257410457248492883837146419385254253131648583088552734849530069077516332483226822021518790371085657985184349420202854980510793444021528484082107931124961363208698626212624545064431044495368511681996480613481962352411896604229638617546572322382781920099699634877101206313177467474207929724942650847557374497753399885984394638267888680025903787749666745659786002790106046699974735101969399117704376638682229349945813893136663935839709978591936190936689544817872794982177708077869227471533080668650667207247718389823874720578241817402618788188095733065114379184341566363625107120593613743417744452595288116981552073886968858226007122101235340448827736515530682322485018910514168535546616057282118130741274877855913340743450320361370778836131468610884988933496673824123294984665860023696867243996344675943262864797270779580353151246781974530600297171771102837318157343037384292674695978822706961286263489354663514849312004719363722273637692584740160814790010770036424083503793222443834016019856088590423935132416808335372884802643916465860585105324020866581480427392491415470638567399361494009551857239837711537633254233681304564066923652224758167721552305781900226402278073329372892206190496660313041325659260378619080584798165288377284746391708644900680044957730893376880606444051615106379345471154207708623702680641719326589425390101398214579581610875172067246856520221410730113461820921622154996484416392189416505588024421391369120554418635994553814953958649529862560302085439683471991152321267015022772589454676486271210099341808832565593797954829525874555731749942872206770041903365354436499693645913224795510026692378685092924613429887725981241807797378366517571415845587607621624865823004650277526244629473770206244346389922723782918256425933132168307909103256427410476894941537873184601775572853552450242344728672768219252621998750170516419641654583125626054902173615266832314238404305124017936630663538033897733251257148450195535245122812835252916775174331371139775585349190605534988618303297181652841736948107291356154029546673874556117224770030591009443643911979345414736098000449174238806733865253472832011051066015013527292981656887743295718752160838840212100443231398906058046699649459108393422287309843969570189001894474828234827077843226640989221283742322513123186994772325326722183843815629081029207133169775538808506222853370907151262480553459563145102312528269360188503633576662639445199679946066894721669557712172709388432699066425290433582394488628942723256943363203301099528125738735942649305794620677907615734247091411856153345707006039739375380309601801906306133298866808939301053599117167279852958697348553209146175060628270589516019612989244848857807684369305387698428395354043917037377663415161265466971390905945137359137509630683344349006748089265166947536472559835965448188293801056360755306015493347485517585853286021853164005558255923840540273402287721727119477328120156625950473648680605413279568307579703845873477739574875894958409766567378020957628885851018032816835408152679049845026471832606387524700081986055157275781085004656536113068825901338088897501275978083865797513216389961084860524726700702213875471794017831660978038758224383141453893382853431008346417134395463055331455254350429631685744157072108656023580175624931067786987116191499101275696959812629158083504987776522200088592720404339497435605707503458208678698956127009939203456852833591253352378553827447757341599249083642991153964572341758338239394336071395273280085833775993556511614041277539417369165368690775574344356378935272204306766066087543711669968620529226425030975004538080242386988754325155359483269796673863467704340354638787068061260876932880651470741813715809345991586871867967759497928550099156636419624743480729159537635703096958798627645207579658128941967107462950286004464675466907197049910412613288618358422225483056911438975437635231199753735477646223942349436548537477028289594368719754387231033825915397020083160977103951471902964769427237622202468648459536120085333063285373923399484523149514851641762731997272647012516821448188561220970680022544544003673648044834830738167410363130373926892028756858027760508237864384439141559782036561429057401846406265910689632527314438098167560613215992177648896192579418815775491644649403214518510711423583531004097713939050727151069613598840241361775655149690921039681110330458580917276612845711334458853087934077003123165903042260617354717463419285517959945671083103454038864843453245108329371522115693536888469101705832870607955235858999735920225447657086792305337308873473566884644960883280331623762472807192713378651340191728762616129641760833022193330267113121940233348584255950589592788536719060600313498523382012249837229423182577520058710868555431850784193690672636474647463228134585629759448853465294701029847178116360719216880144354659806437245453131490870295435829686914678831750324461799165426295684295215661083919571055965089980963940059699182923765925557121823804473922016624618155120777916266460932663858017881646486425059287649448888722239401863527567708869887811884579639684520721626446034603547217322043044541944706521057903161845694363789187282472001493768563028855331882386560075715181369370138534892586261139184982111540368639985626062016932678590133709927903558249933727736099523208234754989041734157673316675342586418400481256254967419154522501958448870822176179208789466265144417348465648862730226155202879782341147646557556360421184555857641406497528483433065836656770920964622101467329087255033384286334075599139161831312915983303106536280275121330526324643631753383363117368496373542776944677593013869148013293703676258620818128646162361060241626348050957737353467300567389727033274206126428428312784012881846568118202486431918153507324405996421507120790659531276778643840819311415846946743239218403600199627660632173972600109604662187847389943621528275551345543908612166226598047373473102173920003037235831506466543084554099301971607982176351801416438348453408507139853440826718357146666478943411329107593103734903578405697470854354464517313054087188535916402957012154414068746307610596060446883928733675036102962107238901669851237932169481547685599580636324850612894518230292034286668730868629131360560203394895448823279446045240515834160467207130117200468325342597242098508862372518670285382393240145027391559383899034306463677748576954346935243604965430185085500342034781187509990671636122958763409061288101061178701917896904402325056177631434310592277312338152672048873800387232323291536425502661685275973240268927775238631857175980759005961631249493778538366964810107248977991285351531728103110859973248535004933959311730203184654336197655036816454820575229566656777198828282861003383023273987599537327421956123367511085554782126134537230892789231314145073654139145048592802402027909633383542804969766429114902611319780410246069557610402054555372937652366183417052778446621182791207138595705524317527793573003181328950670375852760409424102359052822266021086179518492636973324489073208412188638036248710756051401035114731311234599252236137055742476835878521157864244380242506041550748446364164067473592319094202387251335907166169441778081418225070332626168874915160986592986691369635035357524412153538975131361040619744021788354575346105079743452537077217555553675530031526202837531187860831369904478116733404273705653434904532422688197268124881582425869836312188734789978150920518556135760586680442157875735199496760787042187231386438894579818326865528069781083157796743452682288335018974699715690702312429482479568193408443125361015089902306721693649623964488183542861193369856978030221703301610132320239135021898024282642036294432296609445948219138020453499129222487135408699326358589619727184162706053631895305026315719560037885263259211510198181153465734561084612050574159287257834091455667973060944286566218076985003482624039951815018493332031701547420567600980982532449256874464236926293253635621219403322236966164495025075790051878994539718393093305111907196872836118870621926556631204941685285426823102841728613348073715729382677366085078750471344881557281357027525297300169687307541063910270502375995601082618868187985539678013064849181768459909054655539230230524187983012663937550226372814485629274513251705667346810454092741646736102576911117067793308028677813388547347430858242536908688882657784654029455100304619372080964635557770031428043690936625937857587199901744604776522720413896611526012447219750336982569515951440747009513569316036939112239716344116520677306701424913531964343107770410130409582025068563267834075175894359535244381871255551085477484005855580013041407245886917863827192176024625229262613331816259916161338207668178370907330277720111595259622052454294169876446778482602456773365283846192198507688432496303075192665005035622843804147170003622230256398364822908853516008700314335551812978283530936836572684096113731843604385212003961198160802940046255331744567509535034829074708649631557677581572483366903061942558371494313001022121637373966030158602305440845575155253332806994311481624796070327578872143008318753718748865781842806497435783665836490057423585175834632525428808787300950094680695150760930163073349175787373742289309044472019298798976669292538779895201676863933625377108560879047348569773087953211970497150969431238010663800406368511895598693942689737642955515780373478231983024610900810399870411428551504557241139504074578391931014419513765885492794222054517460867512458530392292883707508225455488243058005911351310576786199528363712972395737145245399387560368805816338904239699968092696412824826460606748908161479045563970301212642677805477554826898755132279793114876883790205397890149072204720652689740137761279859500321565893499614937814937065909226147301954477679604162973814330060359150992415506025018800249162069274639963152734222154774207604008219557269294733776562648270274140178447100558726780747238981605482124434566231394849462539992892592651910303069051102416080084328675867220717563926187922420334563583842237950603296300428272207284283927134452496800589828786535689460967431007061386281987988338155032460350248717074634345214742414382882933347575120965984099997586802961773465787854581721191394216420107209745294880246235210714732219283711480116015095903767555845157308749624270901432911376138528239891569111431772071069295865763262709743897047082145456662017376194987147045893098186123301079636848142652218948947658048088049770771186132194539609326144121634837771362674824346275647237376666752072591270461642753586836023575776659762974936207115823427916198592757107485270051587954207809717986530260442368525148674142797923544541982428236969582382699482969740596016907368449676286568319005411768143019667650739405800998851579298344596092780844895885078341988212047902235865265822360228483776837166023477762606582397473112516954388439927615608574228030895258586776405029283034111893686053230355462570525828203855230558514845746689228351715913507622881337208832192695913826227939779289629879177107038666638214423686787438730776956613254292143302897948031963803392738964115542598225947183831794878777820703110756489693582371128914658548929746172585444966944022109583760961249723998546705539834999992287216399020588256310517581856134103215481417308236133312233905112849488641837023340202381082389648946922287483057746731831747771935410643601362399320862653496807264847522725978144769276131513435484635271247532817789550275958739028555973844307723589906787313403813676656172875687146928203208132863789886076884745570512375830287698792400850147110478019729142005913828403432837569705211905757710404779772891969766517371746674451724569556473422397127475082724604292761958676112947455111496753949255699058285923840731082619811995348116531262997051447682563790097853911059906726806297709629449104429061762309463039558228555173638324535863026038438800767065133706443721439826265128791850416024454487340697102910563431914694346287763660299674583196053143422776017302902461942623079485824904301535071896575072384934607901241215767645780282444769295581781897142731456402064363159180059592364846262313161555373020043880789398081599509590722705034378818251836434117663423419480564022170296345876564533062880437544172453749239765729731646197569897325175238042558329686617238898618334593924014080169213946651686507588066865733681581334156738920276659309661162800261628504054730852975754830608031418584128720062690260767009976038440251017940986907106789951978241689363608421105291505900079341996257417004561892159684394481807159785269195183566091919868265126248450940815945518193170564757316608804029836427660312662463670640536170883139683417560751786502848712735683137465114612407622079859634796220920049850233870929082276468433443781477159886270035936264973514855137758740144094601554390199432105431505832612429306517226164983689364190770909216182536901973693934697766227278211693421793649155872213304412401008284601670343684553464117824080245030010679116274466277838041335295211651416980853664806327732259117894024626120985609350073846398619132975712808193500383072169867144012086025880975568406055856648973773921188769461008428769489042964864957175582685938816008492761493386493046383143493475839642556197468329658575232230581243515104241936321622180407740632361873458575824415716540967330906352044721663859159887226277268876342611708765885927698901480882578799393154310816311747278501901901520673030498762540180296612504843959869382513193051640096114103464031131586511776567100328960926855493904850263750434391091370009466911263244185955842087187140966822768900423101949095013175288160453289636425476611770508165162968870293957511927040865004098556618862277458895063705433640646526983413131583577717119782697623790063354377533170700746165833067195334253646665589968677483410773090742989838753614616679096617205501507824431834134781347525271025457249791668157945946670411091720110595062036979274137828259913642176982749410274129940712125821004378659186848002959108181615443307357896699890188371757090620245712532798024780302737244718573744971757172376273751416962958511392317986680991966859183428261603169450981302374218970394306150128719123801318049551567458454332288080086270853636698478237801167079366515162604424522303041631257393695963035591435363577635702136952752787044266353179366593919465193323127743566716238824242153295788547110342747557878658123771549371969745151696820715312962729999666413263879097695511685538525869108713902833782263279248431182861855929994990704608768595843313837873908334033465340857429855331757742284149449428644442462848577027872616685858200869419748491779528319614620529671881876431278440888134194624056113497268414086449864533448956504960405928588536536931133143492393959765334455779311748385011742267566994617031921660772507170215782521417920967817386593666642034813286151540455812181935438841405769531671610491459297240226609062465384793732405846763837930832267952370152224739716664283895615470104342705629329622895483439426209050826331507917231396330488981254348457435970155733206233480633268310960977968636885654612016334142486329723482260711106144505100124927584248771140712318350616744641947276794756836317711542629755621923933455045683715148298649654398707492732312862634810240706414873076464873528742348414808995785136669137203482179964351399218200794181670116059192445565362654562167955998195310192738929701719894332945236255273009600370386267901428495844672615993149640925034317366433269784363683630725225056356955024540072659128539996935565667840637434940112788178872029105331068891977943149974410578191356986218247021470224383746117763256533457583165660474703357993649296275236517859306990769415747998898749581168279898298642271664522630058524057805076370347991967680021509084525948089334789079664624763387061667121747387787255824374593068210439126641726651115792296844637708215323953853849322125986894465496512799720367267707200734926254564508925404235321153829244414841393229396065207153275377678279118271240018219585771497557106910014462364809202851292879795777892669489930727695060757287927374077802798223625700852847226611896310713897532826155735343415983328337954572050651076375792274651417549300802252606527335278792189600954323320507841824877128740765232423925815626833655518592156691456999215071359098880656123659850763386683258748799035459598222925278876992301600527777548879585354132501767210917979673011194374523166257906224482073499516412229419860137169655495364829947695453025634461781230768005164949984664178275343393060348527853303338464258477801414937992461187882614917999663854204513890434913884591347637174894923925521075893678846327846779581201746018130492800865299513941226230485641572125852448120986993155109228632999571813647755366079290424653251919316413801274844553628455201773387048181977015615059728475064922528697645110034006070276385883056086540889425415979641710536090647919887258782006496735457421712497355618717600022442038865873825658998386411875246094858673951336081341936771139944384379918622736491446185110171551926229949797152512306129018935437891917474215899644624923726551024430675764588769679744073638946371531717364763685158564415430368535834255744513298681394650597822412992982161068225951142249369857430269856908641491156276911497722328099063928589287686113723668546613532359713499653024963373690684174292219806614774154968282803553672944471021827172004701330190351492612400293730550702401596627258596674146905422579707901540066895395435514547812151961332090761656785619532466013855431909635760102907686594468975302863400934213844266001402841448813884772396907352220113677020330983414966726556260599382183464995902793007972843073588083488294723423324208782361746725007180178914213903066011636852860471414696431394234975694289997951703295879425150519612423970193224427842603224887504733162897792908271050660444238070848025462947440313686376680965281467461608492301196973329679333254355689140738961359132380018885991031651159462292840431464502882265938765890566136046487161441122021951166700248539298332250645024035158263609028588435759302514854133047826277710713373201953548344666605842750016350055848205232792556207961994501620267981397320512753106472568209791959987826879844872792792270645568827571921409960579077044628922999114807531116917411755152790042475604310213480348738189421680704822842989291694683811768181350172074783336266523974828277128275353314773688366341400868243473944260474952606648976093069048297167264988686989262273176223336627606003832129936220185498842070988867202748973771786778107874456091654799836818365204105609860760112419637557330927638477237450406953378757033001059809567896893661011163795187539692235259036551618926583663497730678129909993966772538316297741705144005521700809177229031258454335987906486608786751399969732520379126697977240995971782819162502602074842187512139267909916460406450004054609398204895458287917869186965181693666475167543490073520444408967818045259720926758074409715864722870235806895050743997585058142662714149794767809021515644593689776803992693962731482147246271999720215846326932046441713658159403072874253638377320251262758429738581722251133385924685334289001242033214261539847989312821423682349760492895691376128743502528824064861575551151911551028723790666785334235089071808825625419350240715300101870424716770780821497433435323129876925000149855571668311614877823411377060304025701082318512718941818219142464619796419782033688391578557052767264648755876523121398761752336196441489991593439753637640841522838248267658523306541931438424157951960459185993396669259016401683952036765440416411951620639970131358874772328635070070456237142673079369482166878305643150112928425398441388753836598112896725720551746261254973987322379361950906775992828538713966436422773857321390808429518344466002955174095048579378049535266198956335966834531985263878056314178359654116393044210676779100899107242911601926195285078630230547491205316930651209181194283781575709104880143241014627696202905656878004554784066719147734611835640287239600753461311831212319840153347376115870892482727668170335833248535071718449686734843673854981822175208619782931163878087083782522416768245199794643274705480461911050220381968121073919557128008041479169574052421126684158035330705254529505727796345714242621877090648895219655029168743502002657239590802755735482923141684971843295771521187859149452115177859046797312613691950947812798846768181587041211858553191565269416623122543326151771888359576072602431148905770611245974465778682309587831151669426076011216783716127330057465320253600319348910394725942935772320515251352458674157659974741926204069242876231403674735709533079197834321757327247673750468173567236955158844691222901689843731686813955055164284329577206333019362718542852310298423040978994457853412396869940707910825421871812453260881538907996225259150337015335235262415370480909742276688805145214741228626136049913132266525906729042677927535290160426588637513100260556994685611522848478792380352023335030465323768879600841300742213732125449392642587873166372188003078808275573600538169749753058978415995272610095066896896765524524658429248637727166054321021833812903909585234757313381253894300707321186964735843136371575046042754508219559798908846425056497498395397779563035661967810340648892771843476703747828173574672879793691996711192332573735250750976816566623952188598866534391576990715812344819079029370737367816337403245403987222062647420415962957211150509207175523015003644921344472248669795475901915138821476548970174337228559676743113274104492767380617905061839191942898940255856603859450455467256056486938084486829384850280711956158178842758440216389096390637332913708092104479493916685044967621043211498418990914765610748112873496740297076120568642664118242944782643370014251828375769391466047689033603948013490043115502508873887575934271399038341045064021637218397676109894534621776043312017783410448866945539022939837938349549581650396834639562499146324649098534070490338617457947817066285902057541613684856721634414046286372459122437711591766311358465893037412169611141236870556427089467974634646274321974113862518379540654555425911375905297445761473805094372541709811734924685834498824416486790199988203400294624135603346081813826188772040746061179454704040820874262063330887689922779489048943564311243190002400021511562261317379190476224717316216673133010843341305711667609395873260794548024762060701983239352800219996574539412007259830839064095823307293298831337770184003677401804424999493791877326676280391375704539065467669331413290665065808328285490361116419833241694091912864018719017079525487987356957705958226261924063927943440497645476628066795211534308125787926170629039529899590391178708304516360530146145885561173061912887497851968239046200690700913198497148491971606553576230856879485507388661530852539135446781606313858875774616747935537890197203260909763958831565487904182960052646216288200855794400470888680410487004627522078910571183950269426699096221646289007402289964642954964127631670752701976411432099674322932747722787166024251544801683267005351067801760251540480633515930871702904069286937075704107848201738559718728674484204483639143476286090764550125730712442814333780798771277331180188486505906956753717366974504498655629768207517185117504647625599349942309348657378015197684169818837737016660752903559449227407717177493393084510328305141596935737612207016157408675771116143341741916046491928563941173340330236192739655075173043638899132203912475572979776887276193008277890822785571117257074811936707996017793781758804005135314912151950385861200817466298703120779794828167504265911601703745411806201413311487634480135453765989019772767487219263361500298009781019168763269947872881745649873273103056628627835916983368986531905182556298078508876333057251824017241775661107500540474226034813975092150177724347101564013085173633406460946969083581946774597345976106963492252075311912908699015037054025903427870220533613500398418466569467001016244644161077780948046392574751566874081436574115918691885607358712728905521591292628742583696816941824288620705966139437600377250160179339258846955180117465271563292716930573129960550869927195630880657011621384257319884918453986592430888601324384285637624309500762552043210187914828921049392031709580564009964127841427666728397356482929952939447459635264033456030504053098448514314761350833636715368014471985873004268116435408539175528597932629312287447809452729488160844799035833228504929953038237250457902170976813891167903736745570671991348375821173132061410228297324537363494094051348470891522140872178453800819543858063132002531298872329781638890909316100147841479318471609784968363019876042450649564597568009056970705882938776095527574193988951456235391977072147986490166212730684349111984831262807989784740553011136297783795052052148994727765980309236253230003072777304896803909892656007297024880475928935022891161542676129225818079668622871207765097757390597850901562513045035256601375914912505457929682373365439681826621255359834359597116378487910019235474853101940080336723818886119720134404895998322831158626754537179895627235669682992901870831013437703156067907247446430095478673007272862729164659045958993338245898808627887946887802809722923323558648674515668167058517057952208529139282580094398687899243135856673735688933789226389048138866529545825625748174069709818244263019616269157248297475748790936524730479884263848575450778936717370448117138351999712435923655903263332991053379170424987854688825816247746099031179307806019207445641092638400012341936697718655280048071172853254469238683991851885495453343911800585980619030435735123978859093791180799109310367211050627082438391175613103613094827539735598855638975163134447757688911215864728649539631312030086435604272749576738813692473711566349471810048816668587709555405493192420600942899549305818264919892400344886583617931421720779239509689535819561937044120884484405822618080362863270843403450296861507960197692043328217831926248836317966291200012532297000392193700830634841018570867728949235527542673316445588583472806811554975285335948259964828864238707557860851557714343026284070631061272563317236595190036010970330476793159484840400827154788291765454831518300054144934974089381490987355292972693067639229226276986204184662150642085596049489411591475853479044803447886978895656719911704411265966796190215933659451169519558016329190449509854933327689693711501089892874744172113681474666205541244103319001234758055686076385606934664078705543644862798985724769750723970680798770332996150180347476376583503161382513386939164844326239105263347754485337825176073575146324115563653153562057682666399482370748704625710840270573628985845786406941966836679194593204230593611575677442071148585522915581029978415849019706516770492331518850102290701640535671693057585689744146895487399849012862266707753042580053936947644983812205505341428573289483319616826179284886371940790500778127884576519219227428356471936359344145662351288253088271612207800718778018245047583161387500691260774520534590263912293030709625219610118467949709748287813442394760585192545262255516279202919196812349124603127277561388888001903560759237259033386645136913917211554334728058223642266293315234803168403642788749686540805557876183030575293264880915686143287535643266570244778796492258333597981355168188764855134461099192702027064358832773762744110790143628902538392533507036739914321693030206295285876997224694855513886719760307250502239123278991328980386267684704334056509301144522531323319282617470637173336399925824277180409149650240413258125787119311006262269860469581320236807291601159513241987535648416463843019147725303348830604632480581446732897265749361556079838677954084558039321821289569123667449314311604646035607781784121613800902796136064047094180201651533620314401678127330231530501264779392340717795497745909259704619167126414309496273740021066176154735011004337052283318737437262310325826411739692534147316569710121485724485358441316462209601585534211046014867674890875363012618281435035219786366061674446424858453303341721659820341461493597397573128778890197813313158297547890158447585939608773928213526365199170718817696002240232035369415261163317554798787059325509097114905114256398439149839506159473585909943904879057910491559110139247037038955547265543238869051103803396715090523722065438461633948026695305919913063310719484742955615110759103941049097279489794779647700458154773956819060354738556027898759532622598429070544668474712385574031573601930440043548590026292974746910205464602128372524370681556614313263033324341408429320204544187824009716138219237341056192331069974044408462336342466999289599486162242980301509744006383897131452783573247361714479371467973109276448129729107807316621398446232739871441466286050514947462402146425068498519333758687155293741222057682393045298250959622488336121435835077256377779435679076072268520045310788710851696679121622589960985610693718657141534746091532175957269820950593573500087698138469087039846766582774112635067050353305155817335996982186453344893971886437958483825053147210792182025835288129233980510158010370760229326370023223495973811184531099988543735746954886026178909475024007142419404248247156307446832237944684381611884845707272029834610667585575636426972034370795304013033264784224828669436425001868092816486996780487436451928467515007078776257814749740304965329215355500957112894316966352909842572929723961149887152815579220422831304360863840225990918059103230443140008352063235593362711211286279566185777512207954111955845489713753224079249877656961416947385053926186636058953512918500267609871884670116717177440335827976619673071240942199360963311176969691811227175770382443940133825131970765896464708685002744802902454034247744794547045137981628191070366459504203247736650474061316569947377226998001607955161875006874009885833699484285342230595503938873743629144590232548659385829287382176188348146376892503032100179746218415884797050204619222149918732981484879923275157041113505407167480847549572178421114730079038798792858420736193598472005590038453277089241067237119910372180509686289785796144805028117146192767823325015923498689481458433168627916511573021703042658412030210316692682537242915131924189403542463080305021683724079783820535864649145544690663896834128861752109594766434250515597120131380250720826731282617894687534050089612120727424981853008201918163336705153658926214612239022293447220761267951810265497180464479994787750466842469842545020076603820134229517670984868707636804383401477117309795819184647158644016648006687716138192535674236637550686021513028773086464436721393521546484666223114119721079922291944968339258608672777698329634242440254754892967337817459441220500084976469227966384300629574555624399653434121512598452715404174729186356365506827596575893061010204834945000263507453313991517252224030282033684487756892818673882690947644458895652223992215668638563732103172013353176360416249611252229684713747628878842608425785333484668448216388024345269800076767585380676961079310863805655733077928918086015441128094137862862913859850841697444977019379976165929012399784456649767710915748107247651425269724392780799319539586338241352632726666689892803210057958070557033949613416314859410234744054607594185377452330876294201800678579214221839935892963399430601746928844720727807081398002947137759571366568328719453075533437898465029405027014670101625555120894190733916805700498556785128821165433624914682526414248100256558278808956805880397839719452568945425593479871360810440745242319370480172631896060053302295797898531004465650699167665217674587041764987489241348739114073721208426884864018181155561916389152497313133029149795298932952459301022295435627438613227740944044411622809079392138479624126366461583928025230879259944989767688022669352558605073106435322578289669167235851047314603542087063534852800828480930897379321845084596261214572871239789044382143569917976792317704831742138050513045112489818916197788971148478458461968509088690829785479248732151167511262450948548441197688446685887333011457446366594257320604900251462318733870307227803272059314772079488319025575036650764266651608088709154478165713728986572361239742415403492347413020562996716229941817633385921638662256893020536233257595217686273403728011330652013228024059990604065297811630918325121975940399515827738680977636102491765233621935789397626295336167114808540259050233102692453662671540141098075569779534551372276708687723408685597442641212259883191444290936344598863941152631948519581885422112808378166606429301237230914558237823446600390375451270405074330684683216763787859889357874735221445464361533583339899913199485584701871892097782518159624971571146739125945761081263902791751679841641952631087566891836543543678132625771697366609103807351405650246965096216380671513972648643484329870538924339642802564530352159667126331713263244202583670705694247495101275073080629328244798687919729592387294032901552641510336284569838634438457753683541641672351378058879972088760540006228614420901915051316823706072690286716236561808183856336580147841087451833845262265176548231361940416627139235912874619839434875005068652016330217517936621505330291263549189667411986167260129863773688466554432331032775507788629988801326599946711649080965882270845154498110723160867480425282592430304668168832993140046070335513029514417512539302130362415215982744970405647585852258717908563536700041419301728690492697585368995156421323610100105115152978066774951883760526474927564418557427089415269285987077745200978688923697428317300596355739268442846083468886221895987686198656394383500984311136828118719332782156227955209137115460961873406086276338343285637347308259805301441842990041391150799898053008899645345643139535232330382386394035671096126196352798973553932597604565522672800163533681723137126403787147180641935849101832813005039522826607976177682149049716080631850694144424069972291673913198523095081686797900432058607961721573505907743523875227053171904529158988204588095563851720817687330291976823024714997085257284886282751102873816105807659913696996691883795576425814575957671221227429280167218119542077265763414794115525669274886418222208440265640086961512988691583143988955959763917797712287676403910516186916103462643565563544357635537695284369259439173139124419509171075991107056843739506230214727395152483899470115524672157497495631075274547620847100218650309544774421923454911885093113637563578878738189269511663095857921778168175645245191143581142507115047187845003046959553133249217456401635744919384512659179608500515054300115249804960199717971908674289629034852728931374891033816191442792744610768219370368302754125329912265565970862788724788741337944353284341505857200713758773064072823858961967123595813736187024013958900848100099879410336771789503830309698358926002435585984320218698566017246396753541578552682228725536325207734174395145067854102274431753946660438794567025039601638606599120693674632010039614307221240472722939361756379019514078901592351682391019084260225761669074226960379477378304740895351795723420798274909182734632835359564597148718900577250161476129898664937915708132873548555552663112021289833407228810882844142146048166957118312102976369923629175132463378846059923103171344284792539524362144661310689923171374523827842179717959867220448024852104220484766839937246323047255325863654885641035225814787853885257594980581093413347521767855380337233614404284019405141458754364560127982793155852121456502854072086156728665564554674521389101223546492791718262804564162811390998015837140490888165761514711531524410508607660099479493003925498025513880916757677995946169697027642137806958382069310949569200737685566603345406572287207008346755703258349374334939023289592634013435480905638410072872081882489076720546320337613237333187254160754592106821668968838876654101621041008603063612567330019161541875756926479238821454637047567116704558968230679907620824732379970594662464147112739732054031922350027368325517427055768526375434838332168364260371864031218541450995035524303575326298532348308501301093809128399126395528308743438976161839908267277496798235421790324480000503136652328816517539627781383746562211462029137726003009039798549408599473968400329893022094470178272456868995828370011459002787633057990995695466183969152888257003527971403530940898965371686647998427870434974363687389622572971190895980673498952300195593755868642398776870304017066978754632853424775205155578614228783070516847220798161681146514158543099662847323462836219681134087210317082859939468516458917270613354268371517217198231072807170491261902788826555964146726462392718661037672778630759519675358830265092243860906503492489375399045723112777706943326848811636141823029645977976218827711585314898202020024985738609495766200879584246484969825736383723744936409997612516471851233533430267975362157662860364516736508277970852206792821631302931527046789681111409496953033858360099405132056855003412453830463925515356242136552236823138375552163820405749726725221101352852530837026241011563827856998786644153120853569224126023867881527105712259610878282600808662166767645173001673044568577182969849257021320980168145763750731410785269514322144109044466736424102301850243954584210229128332929469665984017713315139562395208957156275058429077581779087800811443083298508186202637579071943412897675439281578066625590817417672323233632432262932243898399196945147927386437497896897585446401771054118464502553019397219044444200631571815346554363108185448904779122986984936783556198272829680629323947751091668627254556026058724382966313088632540795255952012167653615732534058287719837754301729848564282711644299646009614195140433937333211294324603576655705813176806044624971616986559804087775753809815824762044078902299894786267874636863680895505326842037202153543565593008734970050527241650294060944386845480706976686523421971356099203734617003608939722221324442234750509828671433343293388384786343566550558064287384585013808359193158317933918281746404264332261895539129839335208759434860818218064548462619113663368938107676566402945397136187248567701404621324759948141204009256788232574208126828158460399011592391257659702301597525577181524170323190414836243964032187099389231988336584487081061838964502675089153159823865266975812738379989085610515238919517402263817702995670011317828459937142921789923986451418864723369473319668227344281075307028497104517933428515961361359997484296935597614028768067944491374824367248212266196587864687605037917171912658137115835248851201071715547542783019634369983979939706945432555919436607763142643240213629077504660985849430723059437235793220669555169972268539438808801872179918604093341070705187918580736243292535305985102637092211079633031085957987160143503284336137970303396552676763907374360780256613195560136204428034045054548225005816367195828460162452398328238086844068124619984544627388366503181946218615433683180231716546579458010165776874277133225674352327332159440133476860906854574088813844638931006667355547168464256233952638428706324551775121010525245838762529672378718714140165809319646167473899831687470005202599872858319417257799716240737973820787332950150062622657559141811551147565870693267791517670478987477948370027592532535068553643790161494796027171887387806934625814296718001744572393342121723903629082410750723498403245993839319510186133060535191637688486304067111803281716311437483244954460690507877948466435544828293426417378736042001667037472935756184017968976692580031190730637978135131324703713482858408043925028984403591924965811697771675788488850871858435137307627836155695919241570002984553022887579073965704816826456131066050532979450139680461532473243496756867108411403128622329578667311012425513033002399060928195517142686818311157703635512818372771924055496378362552407465615492699808255027028859828180389607665735993035476800944088850615404680731935402203584396028563260114668950424008849760008142206242864925875293615559701101247901868570658035333475299501628183754016437285996327725285046777323857738983785680593259336248265472222696152148514352304838370259789359125330626155623552209539827747700051897817189627308721568762796402790393827230606001738269215778541354935508388414190153254263059709887192481736750159688864020980466277962209380988984003877363720320551591028450080326916600958297163767852881619873517750432390498157940644967211572230551167280344087241662418187046361836943299277808959683682234141176710656879589834119180581962703053691725027830838071169009046954036603571444871444061210112254498896771575368371372943789518492943364649243295186650020676785770815259668900507907315974139523060047553937340102139276338458287918197840684423919277350384553570615236842559909863571098394702662955264658641729556289929075603115828003335126112689441297681250315606873351677484117175212914684438320674311462965201599523920880204398321876799743329994021685749385760453708100802656348835529920781734577023684101147238122041357880396362027869849415253457606435160030964282376681411393791142068748860366798591995797019881819057252869637211570071189951239988123873952852789669163743387078636403132505847460155437411064585976028987624873977068537315360462911644424182751383796215152829014011771302913292307547453666625131695187316072176954977019542962521819522212023526814627142873409967027096952898206801912525294300413216757218417075884527962542658805782741445970444707698435188262203577212383212437952186126689861051055429199041348660257555366378914025776746099302422850032278766808156733164858086089428744416736322425772118646161324235808529048161375295110648888177417690651818389639728819679640494963286851244578593587465405779187957148042189594840641761133969207300840017910894439000902258540468428323366836451327275430980143384264587151075931076356445460170456262447644354392718029971899729884912067559331843823579172737555964690686927218690635867914549821872911983551443044251996511589086658281165531333837343523729078577460607207743170809819643851425627528047484673093449579015352507826548289092195384137857057875334419629561061666163430705129404350697848163817501075855139404919130867127619467989297392610731784848047644520595672376501504302919311154723268830540561902567496765840915560652662569832815294186665093922243696847077640436598266560952136583088263169072074666373844451600598978974433959300333080901778991765426879505809142193195450070077035551921110322480091322433284709953269800923347116190469112089892044624855971591230709615936556302176805506351079919758875696512060499584094759617751458690955060801455144649829527289987987514885924328035898949148935148293374076644203760796132140182435745315076379269294408892250849668297888960050427994942016536524305538867373962375969798976731840509051248878539299715696700917712946966997687186516513433077851727506689396135738544057810928596283878261539391384423506145219854237220762117432083717592788019857874569987717370657583214903541632193851292241581820567704962479877714091546572460348703030582720651466918512029586064073652133939188021592329813728332844932388968549916987282428135244752257947732140201797981944290327678687398180741511854192279525534827422975921237800973783304850222038009867634997742159881474169587408312595509520622148384156286743655252364973859033797582756292679796687394200686275339375137778929649045092269250001568036451968764731737364622949893027217884443093730111339315335630156325518970264706608401419585354824232692026307226872946975084832397016767400906273487491419634336905778683964516984658918372340356088169214461124778208289611511501049937025424766484817901593548057181292000708425248168368537818194855860254193973831736282813123832214416875505865600915299612762881419653314416395889376545650170267418686312581343367940110658087808397005386608572334742044647081523588774351260344632168084413533810566191213083590773783706241347531592040640650662512339007079215427109420137949121616846841333328855610851675633957957550435227088154151374457634211625277780725134991846304068822605341925922528403629425170870160687045117422378834211998244125018873675007254922376294910150272682217384068056217805136283211910350164234949014857067035300807708564229199491817713040322871234436538605258343811102621275682943251155535837925991775130716110019836378304252904316989442879654321290497051083271030392554924900695072703867290103193068817975147087861837461241859723610492387094387578054493053580463581486459065507769763031689350349669548637362022905066290289963270743379350125235799141079103341422105786384099895738618512674811605918856408937416163149260624315050310310934572254388584316677435428400519208906852421777582154377824876137804424198916175702900635781174315040394570808125090662880946489700720363718134126241076244262743492155946423609090051126689928737818081155550895965531494218592463623870280987903121693064598378675482714065694644177690105871648236359998823672233571400681252365542978254538514527723904554917571056177052876699443624664735460253543763265936613675532227659235486589684181815075188325626800306495886890334165860365004218683943088041713155146041886769737259931198507831077909808841144997904450206996282280466318563688623943571392574302528242371306887306905319451062075300896376580372748285243731173002706067868447531045431804339388724635865550434207984845151711314458016400310073736524477965189723906868871154460059976181720128329038437762020937939438127031867934576497326967600807643505067436079915422910451744026226242799614015023035792307684070369805843539889818450358704038627056453150703756253024135076579675303743294610045171226516173876374138732060062568277795515908684478657359585615049483197309101517922408561053670579024895690509918507677784401116739930497930498094341373109686772224091453028594339679907175068701292680378066317462236583020659723089895653808278733044438299627990197135430149439873949212630563631756297925477097788628255705978860926163221675188817031841107179500503012765089189612864232808957178729709541739395541873079437502789021190654399696330787034556632470012755221328413566562697107178762717541742487029833755241337972870514836388410640598590917025708326621806018189025602752984445601214290318935683623555447392929877641849889280332501908190834166917162550141336374299416644182904812702739188310745862254312645575821550662823875098368182724695280273405141563394823435125389113878599213914031651451741539284744961760216707290837719823896513721448996681843637851339861270715815431796262071644759400127838226473546957916216554781507576536937760212075910281745674748813108436988338824553181816972088176358597556019333383583033644360141001866907170046888167535133979876304756659944376608563195966881133324064217965006547802763115007381022921272218359626770382410867152655642698776631898721473931425588123739142196544935729450137281743757806275958136496020991632180948811647056488008025772542124503336280011438266286664103971812583197826202319833579122473225588847077466881617031024206623497967339823107212114796010041074823926539678624073780618861430395969424092383697224366126397264849008867643202415717076501324906207151452443211549901958162175904106278862340438783064658397364675971544197603415472014730188839180748335799277638400531152866949304178888312372275343870554364773511704997418321293333644423283190141580027357348742805658819114010940143848911633434179249321827152945477180898037117268810554682942061745118996650620141417294547869987078297896422856672986765304701683092895426748511087080425217010672882575129474448282104312180787664900586083730906423524441363385307572259775925017613807691474627049129348628893404618732249246775555986114693276498246312474359575507531299351510435147140201290357506836701000881055990046574569368522316001760036281666314280028028445725006019035886889496286719422983655427974062079207550417751534657411639743181608854638333695507978347443337737092188943785510541447171427421747741616446065498114138680413893147539669351417349998781805773672371872487523598035337118597187863971566465743401262739165484440145850304829409183584950309148775570170748125780084678501556717938464734908155271332591184757231569587270319309595782159282571017983303197985875442526675335747143704102547777684287479232558344029979735526131042963014766203937362818620668475571843336227527775599064103019799745188162637626279423956452557925151413437724237188272121137779559041615960685319436958903430006587619626382952956510844729388607889064129781423465623248640111533415146074653188000768939108556311425722565439812035150925650040863044130901681526587321056494912825938436861241136228052577774656593340297112787540590105461929312324871579433082435741750020420677463249917743788439304323261258004467757134497928509948783405957940767350578530852720815154795645032437180094864774731422681404570726432551654837160696967485104890408281814838031574830354154985538578124003666440130145451521730586419230875136231613974021637149888337898598324632978412629788985689759549703507777569395775868383531549839182566947695274800625741059342032596931487681121697733452690841717486197172190474147945753620897811963128732060519452772184472046679853814066266437758435674478367511777816966240995169563622283598804167525465298399612352882593744113369870402315349151271732760757186031589760691634296281734509910770877855630745276755606914633198648288456558393012408882405371035924980336613556887462128124763301073249431015182301434779261705655332096384642965185544075066171268437295240933713101806187223488934155287033238535823142682389374018727062236756630150307221954911213965440119173311957645318588550956423605029535599900538861945971616480113391736804446417094616209820338455833145803821353366715750142097765459330914659754751540029184526835015175773204259533454573579132702306962172610089531894717373947445688518068669157462797038473117204732016973574772192732494623707331281316868179930996815338916828127514855206370471573366680850835115261829914364717739012784960763988596321416923087538975550030504306326138968364117873277548019363638119937851473291017520214045320655873450671427349642419732230053406853624690426125851334228919624501973524065405943954534013006319908347035568303954072627317157616077362966034533820984649215689065602499269607931201052069156105875277093460356304449933254262360872699028908210278404864789571505110918085692104187964922878326357060631002380614253437083269756753128526393238571422902693795471057956481941099014167556120035518410183707874478712597142067327918563495073164797557473846071965488062692145062432762732080868963585529292140101577705445572099138631160171762102753847749032299766485484352398518972677663766958591357664095655710568932093859885559647955766497924496658321449772435256499885349327697294598770627183824175315877212877555816719196345154085958481719531079145566696804345365774830729223183875233667215082479627920046001958685660492645451879857632113185043271452388653772422767449789892866763175100073503196667672837811848317599718631376128835114532057008190746136609477692075814766306912591122707408100865670669497325809303475820733869538170960907967096818148797430146785836243482639773523653918618638771474532707695828811548547948533309276859298609582613768995244006150787948851170006140462572108226951365702894851052013543966172763133467378889332820746297534615839738782711362589435795709072194782051296034878399721792349726335653276517131063046729645424610998176802920509757772454992709913464580372132201756882572236391952272422615758896553118663463501910673878495206662640485097053889984999542743996107502230806038164295932675727429280593523572322465309877194042366909551182466143024254945435366770165912188734406046501125985638173632991257167598911516143765661162351355080037468500516172042844520721378098616631424626271800735202376378378145430078260749408477201154069280719584955307545581013337057344442802491038750805345320808395070785722180745602517086204660089882138714100385505787772880446061128822125478749485743345281827855717085807177425267920535556669265885222498781973799083348721658433402633260351147216893557547109996458950352824703536293500965160623848438705958682472610682288033272248917558596039917122639772309360744754433012981167043572664689329106672632403576774979899382530491286236303542159682993380056404585563351909571049041419869608196187361736167599882015350328164003144881708276332718743749758561124581702525328416997353402045523070398747470972666519237945776071233483994773384227799065582690862053962231613273605649320370694961361969648583649871859249103839862892115705255439395235586212508502316075364082097654680348458083893308367140134594849823959599674596090709543328771294272509582519283204212934314629453364519814978266511021818221359293127190612905511160229866737678792602616090786108582245650110923568780563851394635692264317842584014163782481742352844002028334594789441986539208730231014815839270697442335672995235381852403946333642771686041188641065074567835014006080442466070768868997090920399327232460132400233331439660221070576407431007765655699950347758870941196272606324890366045884742712936019078726404331731383967716469494689693032187974028668559539580662579541775012872762392877425273349203619331683697277115823619091303524941634763579999240153671240004977767339951629265839578860547806546987729209447761810846225459371332779795922114965545873143087514223961703783481821383449069881866222449302702826900971167913708530011136673525890889182722903062794124861276510950124692248856421001701543547537385746666687570949146209076623645348548142804577632860372928497496232793962957344511802993990826784127466556996798716042793727624464424764029585582473035414183158103528283652955662061611092182244207893187762014643672140988204896816221365369489667038717086487196258977342853788168749367638563767120789134099260594542583374523721086426641334042966139851173893389052871801582300582645196188309366932729126709760201874274745620570091225068764096849002744788774280979748013907880721371009681895933733189639241179280257859965405986030746522392834222493395513728005922635294601581248890587178418600209578156907023892011241680844972988041985098001303567418691697080900471943583729970291036284938721118012705498162676424375730786713932360273322874467190055458109322805428691757863917985482884127329033311661726766627872352546062173962963334825575999871059028113177445772837892113237167542873903184432303854201454035623059716511724750839411595776967458366847091972228055118958006611327614846516161547989660034624211282281794497128105103212218819702453337009656063522271836768418041215390766631188707960500281929676168474598859415441621710004092250298378527674835094197722141387738072277697815535614083625229063028679069145987352695609882755071813777530723105012017737094234723402468159885470166859409824359486717601686476753101004876643133255359632510621348975591424691126052517789520748287117892214909601381143470305387878647750804812142309891878542824408997860041962033508602354410650913589704152023547609649247481809439848118725100281603577589762275322217829394311608625325599010701179908768506742205300177732696186432955952792863198709475497895661492184177210552228612533417920053141790958390518947743216770172924142048658371508727484493131814890322932688864991880466506439802771740392098333353144463190681304235852318790988518537194150802001980875599934953434628305148840886395555348855333274554874868131536770227246458353806571136067598731192857392924544637523101928510014247363453850140735299040425176384738241307921799491749957475851317583717205041210589980442079304152281411760817665519855860696847448905037405428713281024390621436373537286687370998386940176083983296300031965252703443372653954608734401723367883446532454422496978658450291287370375846070048136390921001523044121198385457504309734539629941851207434222624420190122312826787624734833908594431116892114866852648830820355729477027717943941539975485854701605496132924467439398632574727616966447315723570811553994051748191538367476858752415020523442592960859213110806391754250679811054434884348174943944171426494779097764913210739397317763698992760929830182104351542424529294095440496349928461336534129451723200489325160037436777782256335915208061305542711627390912318592558413634522903645635080909344555958224571529898397390549339150194356614108916976379856723379086390548631144711475641377588062879495698858723798276019702329411209338743186568794956753827621619525775040719469661995908056409481691498709440696145107785542017575530943776061249158752736066124475912961447539211536302071483551005591683112264392431741064694452838146531406889809317211000363100787417773541981955144311230662403328416893230402076301277772434380473992416715259877557375448190279040776354805301906579646951564826771797603789504603975999483179563876370392979938352496493916635094814610972876200216870267506478304651230244011832474317355890052511551272159599327574637373505119777784102234160648583133910982545996985528801605866603233501895106141369680029117867921291975460227298346477250655219325596916756934961780757835861602491733502259428738041502530934417220824243178820468540923150445454149127927513396010481809901769350783693957407618615298044648718575962531352573206152734559624969623642683669593819073055751795486693197776636007292589553803050633282075310099820135797395114325221971494320108562412931669234009381228175458893325243434329870998790081645564135293416064493536945992546855954250467397928448421679102888812184649109931570837481281406345253426768685642932978832477916874491729419626458152926227968024528592826343236491170028150295260106541323140781429788959128823645520485648232596445687376415524966528360763742647890559335575210425090939797833599589341000524575089762990763191563877462837295224195179916183148311243955037974128374433063538978987902545642940478463921899290343042339567012359975603381921596056186223914052832310795813461462740722224372992365555921998300135296583757410258391296615643032380057927985859416777945293933059874926848653544216686214995745027054581935016357920734665639157551411239088150089999139261639931112567313489858977231416252589282945143954233888410501242213596204172049858133280374072583018512880491716824104643585372328631415568359590725407485237890525151815564707663438852403842536249556643782662089872168515013526617573861285676202851005149929406132071608928270829499545346314511563579477546332308220182200570157662445531690531716490197182132918632488726633784839172058267222381819785144274679268181216736912735412148576131993315402576957643398812623527151719519468352196310591228424130634996507587826803172940600101609590349781851199107570211274299152401743730149020830037888258161876568319869757515886555652112413435374868019143915427233966870868064355673175620695931336489370705424907021402062676199526036623783692714250411699471327306450819283548030644967573759085093562326698743768086217835550793200296579612742917314212687816058338424281128386938328589675347344450630191960895373904328123585282134190071756170271907845354449296876274756908743500897523566396311834994375601452092334276431106777174470437858211131191949823395036878517020864368124248066918974743609589656587549636273030412771570545524564968860728635757310881776110898824515421553717118675700787298445263629781104911357540294907576270737690666341678687187178488258942648714252149263643635525653691080762390209181641691202351029824738085805607678757043122632633056438887085206640165337207218448170012396413938527375397717786588687167213911983348057462672670003252292108027592698384478338848880228345653339597738670267974434183885152870761376838251006303687119727503304749880023882047210977163709291752882767422477017905714332383808534311089448130460210883865833748929742547040892740074584817120569260356132535603888119143648894186967820581241233880892143159018085054969876375535294554174068776420609432062902754933261846323100748432738534536208436960067137784513095963627798064941974311800779912196351180822624206966679902900429430965998791444647829105767191690279678348529416884842432095117822260787123162279876769857320861142722102805311991372822481483347746780681688274952339796359215234932555540779416937288149931620927074796923693152772457525906966712393639491016662102732290312324104867892445483177422267684170569190757135919414807550548743064580966698508881775295106110241991940791466151827351095100479261801612186949111159205204661431799389147501969942798306814346190090345329117859832866429673721007352308620979849663687610156739521334524657829603818779818606560059197660601807383663983532353321069896267416998797857472728422638317508670520785471616096089067497511256513495400306356665355934290757600953189274714463218252485855037275076285073342598612067813488237914028723581827191183707962672883609098349642180656181737557539239261562031498567481163264408367396497196843144130069714563262866328461263010904539596585330598738016679748120957487171387270470714491461400340189468922404784887275460748502672622345121021013435630578141003469197130038958952233521104779007430866993981343983956764037128030497118232137371801383988588662285282763570774820885530815084305308899647125447272577314769853675722897404901294413716308249094336230696027892562467352247601225088167595150208563137906090510873290334856210999303095297597234625192434727706211307119010377998845441661481363866159022858404424988857238913403862297238873052150927917496346433060978937283640532805891816824783517245520530361783266938157658836483181383707222193501410514070344073332762137974883310789795461895916380484642376323723944671089029096173197614383609176576452248956976338543794785097350570643429314146677050234760401595647565881410334008706730226230838772844418774687879831089709939198168392047297772443514301689790176956185327317496095598644637937154965987879120126359444658868619408212831878733548267700881802241030284846326162664348801800156083997022680732621232972124432365226384608409216371861435560849436085011823771120731449784381978458967437946489716318163610925396576755920032735550350845178706562185943367981858259044986812581504993724118877295849437654887026612066264670663201027952059749651679747098816900457120119066244403017144070601881664431229319192278433198032769903401051042964331423070757669537776787082365778898315992542771717710217982034826755200663312751304212019926843660707888987942484427733945338115843264175932601493550668393743175781138026020532245261361547504885718721932791626686971335421748946436309525357338733320429659268624188325097557243096464099096888209936611171339342704479159865463616550205373563592510416106012802760678565902269277944508754323759423164621228315312912536594304773425026283401480536702873749584141507661123232172556291888104612325672544850075996905557935693239280650516138721377912167195676158678234320279816074988512780050300521538996960837485498086691171351820194077303316371291175986500624249873265757052480129766025256911991790302528076610660561265266897226776024084432038955707259734242992111822998301344240523549265222999927429088421323761046852139430625837541923061536820613957300494222240372911883301087550237668766709368573674427535999605959414534710727123212313606533361176231633103071960402545896560507733512867809715715172260947424148339879070075344896562687111070107823990198614230240373728401979532337110010148438824456122961847528245193349739000887154193916215126540862549094561038002940310873135587846511315027034904070224282933383794379440034817680512290695082742237924655742737288227848698250170371385559225892769646218714860507414717087596361263690661871897608232204156564760173529468590165848029720828576887411310950360326942910216790984864242864030720791507396886085163090291809779633308265890788565104788822281889112954378331076377282044648788674455267094278812413749559411672071414048913526263271680603200101775948899796868313441350239646534155872360100579633573949607831902820415921635236358395030505370270006714775289272578569180639036561555532632092577297746887338595150080367541096258058739518511359205676326037837783945533036283798396950011241258877007398257907018034620324204840948144348523894707521114968928152636196015526614049962232988136077080443289172307699568033410856736093932868075030821628296979404645376530260275017124071571440507689931235965858486735461465431849455653535527146747904232189394723793260681738573338374635772404142855178870067764628046386689022880177460811071806671488053381127872732875285459530090045928602172623972742679000731361269227689913122398680676974699663668626770288339155087840072717656336178528888433094965700568901832111752838618351292126785353462345248726373483860125257440691944944239189719796207960554010595294501168260569668767643843821858099421428836312246366206948758838196084896575548489276878537963236468962899534340578128903388898356223878235739927824306109213269645075238972501180493248926268738671522240524540815867751743533627608595680001095811944498870576851906519584546925675654829477814064804640003791973128759398369180202836966868782487176129984535318645973348182156805677559105116793048925309648144236060877518546874897364603536531275159664713859224722209732364337102300875970856871370816958830890000528978003183293291359725952249403099101711718663574262081735093101317172666542973018051106972046360038604794808487180232812560670716652154434280646459748135057313714673483955404519919249290748919524638005583452529037360115748084408142688215114437404740051665715858619344415582848475811086694711657545602337134783725193228374539915881571008201812646676703984939694654628490240496230091243776857130063782479652653908155506145154697567942104710105223322915835409983901768899634534542241689995476573715716845279394988336964005938812206001110084172591017000176886152179819588168070498727466020300653926997225131082441118040350085979488748341003920560846611496960486897408543956007317989267052108654650938385042667575075793142633516212249324383157936822921126843150346350613439417747470068703466240060150570867356528748923822024749993984439754551155353353947143990988802831891508193346468872516392636354509988684327773488739257637392004105616069473891792684166755986913846216332109691021564671286686380169007407340588993301612636897252520247012494968467465395767597730366773820605461237132601433499096164785555816252903376962507947245041513180259742948967028389758036255674014484639893703679443905835865769465507860761486218435573805813868701883438981725003842858928129486274321111365348786442587897187549045954055136801013753045979920879165622551937828546192760149996795625817029588367820197669880519966699863392400066980989646138215822504162785939649943475166305962832772199449686835003401379560935368303365789397058337321388545721755815456853097529072706394969513851770045772283132163958753834802890159051521460845108890184409952092976091813781757263168875623429967711126900255491316067033167925290992049099460134001814232484113073981766772332941488265098101555814604645493517984368736788657963385173193186925819792147242113181372464257512072881373950951832955322483653423469776346286224149696996972216450803337859311383730972656073953672274728260130319851658543140297552513216986483609678828760716967894649615672314160502850141391770913819737975432382887278894151635429036879042250138241198958962388452654009191983443470361927318139990935710890329717033734696729492077075065406092143829825673181898413047132691165485148410821795509169353027566965341291401667445418058857929812993855920905096560327928875037727557689681386691538377210386853930537839313674340839161116207412526396975227193625677488486236847185784339291132441294468697647638798144085946127801416263422271656594278338721600814272538337691517508912833856418852770976315887281705322551798374873489892004658319733410128813210804334652230483287885593888478879667199683253505102582825105049909651524254814644840373374202264954594253819687005093727304527621052705940678809160490906671309966242769065459854755319034295936660289845149128847386550178698705929748995233757691071900850993276145795890744188003337800130500975247937834084599680326588142876133263959372389876775492813576620817021404436887849618695267526667842495014483009337088485932271756434211349195227963927266480769071530000423662677507936473715471987393415634286365812130991532989209205384231112520724917812636864483540144507929076816106483862322466535939299684608856230691078540961033823540693460003867967159287484922596845335452051722890326627497427095313276419543267374828263505463926357634130617541191877448693897927129129100080370422214741174296633660916282453577324576396447064664706418978549026922623607000385563896148530918647920337544456944293101748375810668784062021393642337744700202798507973232373517756532070777136902593522399552387773050621090341106393351335040576509238279752861777341535918086756386631645530194751430774182638241483482741336512656317833785427037219458256359443611558298889221656608867379946026780187021934985926536500241973573867352678381359485315381251473558581880892458499253654840772854104114265987353825278808102913635131463880539910655699595506111079913447546674938766297945920452704871203125692299156372541828188889221055367230322024452691909970190386929592057810717766891038031477971994975264335634550394062455986900787030704805210303026263492224873753207183362134433225506055376248585689100332127845588495604706330207373465447203041787692691987122800897946810467897546574032918507066675342254652572841689070716061235611503426439403515764592585576974433858295164851799241980196413651320144958089047098243013089137290325911703706171818700095495329508436567594571292966197389572222767246813477394366426131762469221394045036215000988308949157562565966686655941850512702266444702899465313053804788623256671570377572194913204459373847340813381260705237904477446373514081767911266576621350732924265447540814449391348373100166134737870322720936982395211552787280908821874419788693670602473283158763741926099807236050484070713016724438944526058183120404722361283315750117384599643014696769682095902647301743958872253231839100914367408625792521078628514675126233262039121774446754031658293022434831725331376552388579870718294509534518376394595237071517614028195382910497873874862430131597158190791683545159551019575135505250877860237315833474321923837926868668882497831183298470499978805614950389089970916889435183608546543849538794555617845439571039467210969873018326835663331635580442505028045086437896819285204195148646577004173513141557484004287742436733221476795703526030321228224863134956245913623516642944348348901520494559468309294985452058918713626930845824989805547775532465810082622275816820156645246024003010615375697317974132858245504911374643547762667490072641789364341267425163752252790072980900035199339789627860371221586116642129162860797753049700992247545049284110734862741801869207892870996739178447346508670338169486734578564115086758282859074679265303330775735072987721278395074668176278052305127554477920129981918265013504634839222630607016473077382949247977680504992353387594829960021697566316616721713561870752263196670850881720374287115246302164959516163109868995040512007359574575827736494007692748347038308503069019683722004344542573292812223805985546991546601711946915153084341248960384191807517611230148489890081993409908302300155951946198665581853470856820118538945227193722462679728253588195718192132339836388207854105472962278864089691502805056985204761495578155429807016967546579404401591270363242234599738185353342526288010951734348824404842317263969538384645125598294807201472311138628992527258139632303427093983883592939368257965237900812971248326106668535307437107688447245939113403326447490755286097672935913877695363627855596061002707559668281213599232050361120948412708910060861631332258163233677918852687751227039076861351312381328879756521601600831574770736983214933379045163173013710493553800038904793225445595637745512024163242218135745174770372454911199872449602715686056513753016181638060397720421813598615006223477999707546384511741480983515692247916145154887574929528076627116710585084911457606127227038652537335246977651805698676974055443733451672582674659203144330215857201727264799097736862759535267438307364105773080502732995236376081158618398151262514644030351861134168081390985559304220692289170676270573575989745975532925402907917303604037832154970437581327495192566719680476124513064314381004315576867579307977170263343048771736036771754899466062252526346180351048641108345684032593451089195074202558371687486504968711155972693357638941165528021723809517273776520144728070691638013219525089360249479098020674261964513798922641302889828819061432882367409091223122477860886827105285185346202823516439762492829698695537706182365732801162489296456245101293402196674668084148516622145884269707164527729914305665963326410809139692573776561685374919814616566229947039571636438378701850211896237986181777710792090714134618510882277464527270383143183968674961121437292499210066190215639995886219758831753947603417690932203982116697439071019830383628461619842085044059217282130684238681276613172374761905364324012294005358501630877977714439583974618320419841187156647722043435538847514849187991941206043098180737713496861997436356496080819280556822809591709103714290991545768015590933992676468437185063392893992684954691829541185690023401718175063237341876991905930842867166258824293606361829989917873020972234100976820595474454187564893054120331145103888224771552650800111907224330671427557127572668023608685506174307743185791830139454018977596905581783078574999335375129420755293857375563401321655360703952048907749506176156834571025680935575851131295731759613317393083366373255862699220729717705643738899597786853463916098119053970640425317622870359518544141774812045041005529735432447484714401973774245896857254031065519151307266497578548793303326695128411414622637541390779607046384533396180032273657964318526279067370788942611036971420580074364613622440455666998625230614140579167603339708117191319545600287327934612777681978888530142564939934626653255027470574911891763925089756059929176955853309003105599250053382979878431979372378209965551570162714698645198047798840628349409831947431494480401952168895557771396065093083128511599968382316357219138334933570591159572989783687716575162406295216037575119602433991665596830618927440325347027166656076370230211716210629428508575743493494381480246798923897050143085590116968012233476478892503842934012531546801628071398755994988615549972899953415775393341763916625391098470268702125356977169900814181110111439928014762316915531649627649283584496987297660839551021715173031404676718853597225637715295811695442535906875892830964458434378868377465879393883181452695170994970957723786113859088461609721100331151003957252478983504239432412523874989234393208128520990587805538519497630311800248314736461830397204669816294660566103512280580424420528407487974422473247004633553624472196723313379783094610350789084838528523525951909721620121732914132876753710597627834710605440505476962816304740973300889452012567183333686060000765385376559829563197080104435038235084363404198875303795163331429795240291147340365961690876636467616365818520676876607407545529243172466326652750300438154294125462819359845738836837846967204463681785673228286564474182531031607024830405240625426366954679696563195330069770603839306588578703023609943449039902083652384655412054228162833619316793703873311973616149951173566371453359310932254624842421343213846749608419510014966694974089968025087476281670677409468197794867167305220518907376646555056820479259862964464027224289463452316865958918791736613639109660873143465416074569348536576845338099810159137439635862092471938561514692935908716320237507123385535181558565004043402047375514395194506768180198321567448444118517000502356602716894064958256232822706912681816343175088437698866647910371898868467613305514589875468188814692074435309822157022639191555390478588789844300464425377152927240083765269921808202180908970615202911803531301477397200844328705736253068270477775790791386300231324359723558192262997733152126472951489525132980609333375594695318431284118381817648046845761716432975172564436294897510050771198477731358111874265818604119611101268773094710581818626080298408717336568917885727946205504031257073803635052930904764655787808299577656567856407203684510795475932289307631207915240100781043710686046356518120118642314145087568432019165748102365197967851745712405942028248437798880875144177124750739414594574872960373831441963132892455183134086209573899714175653447587093548851730171186176378629966626705108346793228235128313090964317083217744347245350164227738169241706961727584228328684511893932208036854454922285836267103966425862708847857480877735866714655763352188995113040745800270107656431719544421589054035715148943451217729025969946439010250558804736549514825323400515199156272960071541509901557757133835172317254386669142189835231800902840820269664594257201582294676802795011390198846489226954153270451814655922271523578632176718887164116194733392078418680016395114329566269532718300165658987564294604246463940755233037967369510967311043318675855898950908519923581557344501684064684992230535123838364184980032037889684082204257047042786936946675133449886706414392898663242484546787795234205924915769002435914125804919337009178916503692628444360469272794463648310738148044958687158089371382418598441144745609914687456002258485978611682702805089038178524447421607481551080708377157269204196922295290956277472802078493688724699988835283726207623973490519624073719415567782841075424818482212044703809596482082185787453606446757497390560931831084955178720355282221972762073529035574496725048960698888354809795070797777039999822520322907825110309097301187653352117132773291753229911098679411039534004261129415092724582280575719599057341769834039483001225726011553176423358801887147867758016150754348583625078115346348987104149823319374719343366368684555107098928624270101556517966437947485602444810261309492478879713590394508590460776193902736084298621123621090799666018952149145279490205015619346251186121711076768365400459027732618342667782160103211237267082710378264005250488651882091702544815695545613370101352273369435291371023578513093072614153435590513424210880762024050245632262635424217676159845633139707314100701708545381190110397650012974322359190511940454881415819834232504290801700496738546147080267656981370157435441199528458420209300912364798016241235345867159321975611110344293556158614421279620336807366910882169927973549675575444192700104105698635347580172170704373343492881069492151111537430710578949668531198863686135559433137372411580428113598978910678245194654179587985436534626877032233445568336873972901985909289749504345464608728500802729732047037192666401261257651125868267783223106685766773885303696433524663643562733628593525099487422963486669535242026825120227571754848353155794716662424687163402007372704061788012309166761082519217852392869914445090742435900534800118169414134051079269299226380138409100402228269957870463192535253485288202117508042087276507601472089937693809713821292002305714977006493485885934722919766888081184297698075710730052469182705789794177411292551914396675643914186951227540438576498647086443204589195446253054805251171103800331257110377783773906546663393465673527437354047390761481932252263743832946370418159970558552791035042352209695897707763002736402028573918295670023698419738206722598134002914106491863103996444088026967665374025699665941586118788653048808238667132448860849972782783357447831721750194404150769793473147099395996192566943510992114690506336941218123591745444647313030513776309179317746411287630289623977317201109684184284998635427556559471569539356535197605381993634064205513963282031755375485721698433403761853867329038201251435446424747233608190700737447128838831928456428241482797764298329929312330356691170816166174175353223197574116904175700183886629966260453373613788169416972522045322788444703017213930598728852828152207677048416603974941615565693894900368349919778958581792451742449356954000779133627002618113039918416654728576627000172649955402092409931918565303459760096792513452998208418036864184879470930672780632245013447400894973948557876224123729950602623245376124186750915794053484597412731456783070405043551727921637869935185727807034943103242813126013897201235216124962504140531963343861353109357367496012684580429501794034116039064776967758083037555940351803080525294673274343317917441425161114333386655792342134713457834239482638350710696192777387640269371740443094787908160416356911315181419782824134158260949231426008470170798027664799334944199499138109937211837644008144945341486203167564283355844131156216684574648275199818725408322053986832924723171064068850930091527182153404997721438079876992340826334508459218917517145347112607152399631739521058056644547869208036013384895345460072581963653823200145540374151817400996967818846452390759269031591913405674657800510952074348233427247901062269761198983861967652815821635332815474021330998586344687747828127509331951311419495470797673407446640986308185542445264343350213779043024048716437691796040783953754416561809926465085244459431471974792777616686439603085400581182255062858751161554294544422651268243068514478457120093896619766448677985630404143926099733573547890007095078043249999030939942690386504562561760119337586449596929034606059179965908788024672716185855512978819778467633809594766067612032010265324871956069948810423596134388648362433289288476649951239052945236355221832052187929938177092079140789373879929530441768626203442159653078388923690292469229013880379125301775647801091582401316282938085497728584084599926458702782788601058352728173411599455917746968966187418905745757381290133571916016612910536155160809884294383873654632338601138142100033729170951179333866830164242523616603844890719179122483174907801271299726426893230325823502990047593080216823700113589473824313757961360351452153901557742030354333510115414936986541173868302917507995972937409426142914530840320109228754816306050964320361532714782681776844524323713222668617257204493841250181560780011953049242882695432126434217450730512527013448039413081934352872477421552149616620283785839342605089185448818063827663951267851580641993615969942339033055958882481060213512639769136161123138056610235255669289845460908531955365167073503710857068444613671702317467777301257489890921836783631210297528307615083042808896483882054176310106803090432862956498574492573189355529927150855368831389840831950255537772427413417960916512639690257459414788944426639443926648459712642035447315797608822710380067847842835949882273079648197079030602771879929927944087227407663959896875330911660402979366603634314599757729863538029012395290529605799691010093269238048649849507312218177629741791209352452902210155262011098710714006554031954063943778254392353803273190627283090626697906472808577676477335651286461223140752067655154151655806126788375672036533320433504805746813313167555889792861075482542146939585487908989234759770485309343050209474064255499360489458964288547412933695908805254579540342273800393352159378255978912053649321804796852539197374065141905635100731981956983241530962164694528759572702656536751380853745394267714321393069033580160782085970794966815266486034050479147693313002307666407010779068423811772988626878164760812480456535735613895850485111539723712829015918907782221965612359444141149282576419149509481750625190263197869936938601538827582355367282038086919050428220194859196883068471799905303007039043850594839049896177860369263820550054832466764124059043312082207661227305391688709108850906228960887230776996563596483092857033080185344990062252619129687701005908873177654587645841434825243436296101559469120488464904373836071904431327079562704706946103330825726092273020922466386376431557402576824850286318075933489989078637386067751149645194437153287237913738992115278352043696201123245578353072686045251764820201059539707365585651483606482894852593310052559721157868649896983244230479997792094130709905521900655960606892272307432628177838522879759245066386603365009313726410415118185403466622413391782309669331056716138953795683030746178671592801323151130923810455334095759609064747688456398528282665737523505368140530578322953120897319400926744696917737894012044975118647491542534576767605797329213544695050679561572195379614218546186808012135358743721775962225719546282239817066117127591206576412969894473765800023236490723868780818937174376395054646635786341667904809850293435536602495035511504051389230861442628830184967008649326204899184322200973553912798055325823436606667856453982931490835069826897136484045509313954779034864172836147366409477741772317060964509490329903293408104915646779347531407871706103461524517483717075764420092175941964217483593623808430989883834852521933949045926797530403233581613922884366188438761775349727622221320855023198622997946646980837292894022731566191278062002686921539189039891989599657749706444909261155125942234588770762080696288750183957799769740265739738813098521692042009695609544325382466182282511895158625374525455281277283673026771000684529103149031472932898456075966359066240700465146883953479337327260905040248077179965906902796270977715698102242231779262987382254964617625579514250139803283164133951533555637456906736932033409325264209577020813669720424635950274243609243623702072508639335763136809008881750768292283621317781892028422775837216714000063223418136990380078291075058966047699800954161733998041815480962767635706951401926460080531237518294296168494172107937964918543346767895516996184287103723699852523268063896528689670787922613094659656373344571621441661114285336830126804243293494891823710939746877787596108104962667954998731202554751754181346031079752781047657805173777051566171852940165786350870244352859675994847042202785459515838188885704297720447130641722976727027382708244765535088865790716538911054734915106244282223535656534634099930653165069256603850330783595862720071548517224410840065969701930267502230410465948434165363864979036513434685563234061697461358277529578969289861673573279200454813090440962098296489261896131148650211536884372946493494774342666148609927427466616218293157562961431671202348090194944300770961368860467752216149522169958217044637343714185105580125223467167250473138261522092645808454788072943426186371207290631331075106959217315514790962197128624474144883404358344725052280788021562639692694602506290285323534808913209341363745663681580003525164648879378973308839896352913788792722429017664676257513719415647743023919447505147160916913468702285628717526173554767107817959462732820370130075958647047401138649460369452404202686284372501645030231292205900755423360742376939983102626576691590077184949814596559896841201042354674270169241508678802937579456060330664922244713024891778748366735884050137760100093724037528236845746693925333457051632328792243282433514278331800103511639582267948092179186369223787820585059223256201760783142994338574804537370432247783836979986626458219392873163274303765185810527816766277659843400877346044120415127846526356772385544662857451518524599737464446319630609050644540559773988696636145732655197419305693507011637569991418970064611675326162795483574568888236799826186658833757420909304285143007688336923780821825479822745077885253624717936508102022363106885509953573638986567638667850665933010837357449871939494427612903618682978397196263956852984159152461221530447691264588176207238295306714010332153931118559413346994619551740211107971218331929997859444226804918528101794102943911068336651591509880385996632493547176599332183355046505376047885655905616310630292411400322630282420146409252825738607822622284016514995628696602224379017689570633006254254640224597663822681761987728011698588773069013932350533788600531962935863864288007426373740949503025508001329156467955103851018122986898893537124314316031957209897449439588091249776622421463301134469376190240850710637420707946697073537202063970075707192384535458441949193549426443637764614798167884772970855107398257516422457497494614038636311055485717037800689792216117776578967456963741652120918380387878219553276959029298513500995668091978571893261626590927744122369800251872235318863761734102077595558825862416039637029673048824318678308030493560201930279615164719695591758808488647976441107190706857045990771960532251109170927877212427120163070195793015120365712126262434254121743950216232871467046362724281464832495810454419634959572157773077604275191585000014591145556292831196141536845456637403866899791181500490336096944113003178792702921002926050985147086778336268082256848161118316075723243343418043763773222059663969101603927811137435024348682870807338765038620541025093690531225874189324873829300603884534419046825027568205424235413665522029060009427473570866049196704332285765104012489560594024401575084206986280419216971399965367192802400612816351501072297752288787975423404274286659457131527809604680879861974296602766741623323328110502846723918345614128754880836644817462374709039879940363752913790797923473010378468213340261963099718821788585572782445711308067219801146688091026208278539276767784511267372303904632352880677757811482958329506817688589610796821967524940309459397928952862020128273992176677257759012498498696299041221122452098083126790736152707713402077527198093455632688644719049261254914136016613936738651862840925853034990787001755738872600658158621306385701110809883482975376209438789832022363722474703526113362375666740970173018249729911350151278591603492326916672865313120498477467950534163315531285960568332367833657775814471654343822930467369439546266728344287779681960132346981970846957647505263329163656473147175735384425283324936699305481196683765339228995422748310253495615486652565390156818970580234935635346747383547129425708452215233504992074631462708673640134574689126896900877743867930887368594823000631789343235537225150675523909194049576829610465516797818257904104185747688769091740281472558257470740676229490307918499121036372176426994120175115723030876598651801552243910666797997986258343372740597847560944752050180850633930566843727469056865573633083252415182999037119058508225686633329576145654212430633916577003158451175603312011126678962563611917542898713258810638417524365229174801696782555658108354729785218795066015751818995067628429693007961915566186387707304690168588522085465032550899088138633066531692283020199562230773177545988522223142993222124402438965357577778795740474199720485561846293627529493922559184928088353501044418773424883878215544122760477755162183732891977622258935648106465573184453519577935615189944659231177498161248127696209828753134540219574686682209300436517986719503549396660082183781785427178622790482743584013310409075882719733282864743315159683482248520907847848151313121786167202780023321703287152793090775184005741815018194953380570799738284052149346408407138963547071497449154167973229274562591518743215500498324372385435018750723903366588367598950035866387405447687834045900956065810004127341014030346242855595257110751940682960989477406650721680731781672795975538122375799992268412475430454180379801195330645771773986613895186829650416736558653739958426197521819939972166460444127652264570998637510155676583496202014916995101609173440163737557673829535177168790040284478896587085543409993654690057697287721596147026471706767063290157536888575916297820252449087395464837106975292903484018195015735195338415457992854836148643397680037947129801908139994110724402996670629940386211518630688872968664796226633268349219787864216915636662313237830425149737949742929561842025250189537998032090741244701884250324679954336515259107611715130074121922447632159231134780174271608988355415646897483885361765177168098989167556971738648043022835750101170933331876470187380714322934002360731680363987782520363857130371457527054603129543683724730003786595919092153015928182708868013778208279161692010457837121308581694262465801109548165356419205812510560584642788705983532780482285241482602984396100926759865642467514493723311887731900104873747686187240859957338322767206686446725015443540707693645970509163575050776248993888601308342123764807374259477729360276478424803314536795950182851787090106662819151727969486509362908580314699372394567989127151369386553933795417812577714223048132622927975144023376793625332915630657481988202736626427563598446523868254081581384080920977230660164740462163478489122886070678244632096194394028191922588788465496393865986050585890693158214259991800423729553036618642133451136889301662269365019764580785807042857982572623013057367134115760778149462068640753557866491783496050651894091825011845435158881289719924499896651146996211645805131988732099128602840849658229503335494658564631747330348702399722291972956051927524779941051888270831423226346343502626654159321709206934610101257194330415701175982349091428787957669133798859706712769003487316609755479216112717760662186338268529322360284691467003165827413507625695569001438822518459588042035188701125596543478962503177506096151663671892176385691270186600228220704587555955867244509891304192642569369081961404892292596082728208959245234169958515026213551544138601040718099594523931781232157455941209484570709752449716643368366644945088650650942663315006881340723712679820171267629707487838026698519684918212541933024181145646149729847174634914677187101842103524020703185258319370883245500473425308311205633068579207194872746702774422209022226096931149761779893976059678365847717626434083823079753553771961912851713445524118023392564128400425204788934931253492499008788529737949957383303235578170580430293393982651140879436958720074586521259637137866049469495286570465785283457184889017631624511380351273538380750842481563309478060761774010388681286923824976703839276755818221186896426860148309329511515883647652105051081074528430666168111317548290486949882618224088557185467405486379055608224346163638326570904922393178627355978854708509996898884857976712459983577468609838969179983025854134374255200516281716787095226656084356076652840066891266381256029020491493661893655542052667028457322923055866486073259936996786375020924522916433453299779864797078782942565411988243940756024772818415505793782140116198205719485651535609637752365410824131439897657043646838720942222028918027479963126230184668035082536483289145268867642543351536954382308062189890140757698992919561198931253166884516621553909473837022123733509697337343991090653447992428172984552560615513597523706869471327179494020122235568812263333829067847866030059580946477190500464113104826480675828602460816004690056038876112010204916430859966992414221679052180891542063229600892992195513137989868190812875059592353415837057636535811955198301326265810692069674940831952255226086260397995893777573539708401425378096626977644525408840487424491041847718983236579663503529855832949465634694259722139855894773973242884471144666457256823104537798740960262088683166573173609883903617440778707431653209185501125253177665699239683624494352093217483281226181750026095441601888448523339885919026535478911903712368152752024969495762662843775907656572205806271946483318408323848643972633807111137609917743791157085970281334465782369115032981657573603959811241783663688775901172263139890140920134334175903634804287564285121757711423630419995732295603858077329137690858373330460159157037177548316395471875400166497383707027084500661750877579678988100198476668733121285069537786980876550663791181977302857310221346150073489908283111388852354872514972192614158368371521759039642618124220977434869319444078002806336245937978420360075467166396777327624407381481556498211256602421624497839712637214374272446905084414881631343931485239019579078077239799307813495950664820658832980939253981749703190437943604614490013200013649519479412267381873943369014945001027544241558546234120995240540063746717795113107379152277810313578011239622731475518602747151375190322865904391594556020152132798679175049194928441391467721137587804390588156977862862033225829469908066478301903589580382838875131605513637399364206875678617905156149283627891068212038866530094102178420064198535479816765037116458595732895797021755839699036062571793189144939745875918685233880928283799295118222328044430764636612154334911943083266023814277250581694003500492247362493776128738301886201825824530494665901980676631036236626029437841097486389614458135356571743337076787567163924390899098197104620168075794495587755224552791250728825575509173569158377779536149287869391027122142479658976608107916239395156215865349755009606358912649237706439686791232652398583059250944417547558480534598140632869559481845483069511473153800475525924351320755754106052087345003815099560850126003665134117927988164890896809088226088528765110220464420997917643978002450966882582371618600559112931306682662215910562409437330491145402890745726757074121538294299029412464723441379640625058187625611278516306957297181059153254970493130723257269347706539040664974192801531960897786014010953871908649034413267083549674300298312584152722673784395623670742710514531296705469514837304503434399895577918293723175125903928295418273169026711070013149792104777077045936712679501383872691793025364232162895195655055138063423514442358923652599233257738918857124946086682477952403938849485190119341492971312252072884962432339733486009123174116839105567725079505472754430648037699194791726744209898455585183244845600169418616025813829628953485575347569799977072727204479248406103593063673382955907492990339269878405775529661290651126970406793176464770721324130554222581074345539040743721777991240207030356148257800513337095018605695682587974007495892651965294957276402754672457675707357931536588278842115022419227509324651004318940746798321100811076394553678348304850659144979817393811271721230323601229318142464815934342657625633105427092282362568913810333059667841594294494166330235434334125262271734971387260162798012712826699946257440007551173894289761991353877979703152640799430929314008205571994689386425355811825851916222245303025300034404924189952817919849884110697786512210548290903469127444449488898110892958063645576478943590140814814331625868557388350473068377641308318230767273480338677835290363175857450500047705375390170243106155597465852979653222609700180321544824495380096896022118263332918433878693586784906054880099094466064912907911738669947075690257026406112863505632552639544354331445794943247916284904204759704902202908613782920741971271875704018736569615106929314134060112575398934182229844074260522965079557572523248459365853668917286044248995034792324979611284096574039547536479367853931806771322259192963692144229861305314071681975180447339742914623734715000370037076833096989265138209688647567047843170698403475575982544724654411555615973721215173105405556666220570925024563260767754219370219327687165274244036562780889315788993429168698273071512794118988400778888444597837594637541418732534084964887907473531414308366704068434698088477068787915210016437262717787310112458817606644470799913288023285296912796895795479600613609530012504471043576869604363631056530892342117690561963304985716712896499442573688380970380386331481296904059816914099397639951254060737351361165244807016404770157379891673381469465614788743268417759507467083186651174019151937876260757838076321323334982801769747996957606543897573639300825018545668189738803974590962751338146454418081440410878895497907615088702610155534945320144948669012036144963877665524080813506144204587627003778954143357753586323187216213990093862339032115376018005884559185009236972427876482497210723517110100534620110871607926314270622521025989839756078241197687024983569203276256040146851197443361578860704659295980701425609056167655886264087140363183231647581293804464484745249690944246383561417765257291384485516602485932906934377752945105335081261851581124951662709847341417943542416082494516554163351892872967993538654418958574911667365601364212991549038851868700404897834239520920178230788258997320974491767396144630848324748143308139775595872250525361053439176891193080232780615590426360683335386225279346657862043221468910076613788500638675137410910071082983166254171856650113862922935651737890269096589815784204719212768131453685187893865414703987226646007854322383429989441235850307184809220562932394850873095209314090454583041210210324016000379187405339869514869926635447750700983154167934923464234370824986648881823544150383317519202911320607218564787872319462919201194713271700896516243779671722991296634397436964988964675991038930349779816804989396987528521667287008196087987938347607945701509944376652211171461608202236622508274610601966460716305453571996803584335178907888686580927933905943032349728648222904750699207300455560884909300181216334797266969103555206718002430059104335415400523710078466706224290124604193361810836498598437259697064342561540611777595408962445034576583320826243740504764778707205604494946459937782729568349520010485927761053293358589624685009689800601941038737211294112206315085958033966217939837723280503617318460867151748172987521131093344372181192387521284751609303044105963146082470827497053081573530038635353084675687421024559690134801661527810456761066375833043271410258448645509607856942638414532991691106334078038283530610296652570658272852767283558081850178818670242598856477500009423088479011144816958615436295786793291252710044341870189553725575194523718551963445002466679341738719006710587575231152107926591040079005407562190202578128559676669089399400252432545877424462536575802907636932153888837091299987852010258957065070344389676465837710135566756920047202018365741695899749222985491360074130468991051798877134483471676794244852398829447754977681452655275821026825748626301294710831600678932866566223425121990001218623084170564226928278207930877591810556773228518735861853364237089763315071437644042086147212931813772192711046008724246507099716748848784164975289312999756889373345210234274744295302673119104539214588414697533918916478860744112183191842473202404697383133199200026036371581632174041176698781346946943433146589747055878985051493603456144242168660498309369101027699560119925042858597631412831799086422787088132615890261136785906689403705210436171873924374847195749942184387457449479070134019910542762731464388310366085039980046019927889274925986870471620335454587999382926792979288658411868004029577892068464745027387385759163311094206240326556448603933384194340166148901140260024755808316497576546589015179140917775529181497248590856522564915335392684340878516992138236180622971058551768072365851173612771506663268253037069370766886165628442872823934412127649326067287957363368821857241477676276615183281671721077982855572789658599821130572892912180331867036873507973335051536206762212170774980051468301492505380039352588500356151892250705273628733296040777993908902431354429896571274510862906100293281430569142002524858136056171543826708006471638335650840576482620716344783654491632818165479681515737265678775255928878754118386279347593020681635171711786104305949465558928907336420138758561203232858629882415883262570507856872925956933697735225374262607098540367315200277293855106114292933269942926534590399297771044191920815870777593372482713303558044416944223769781576639328643144222911941282900738654258915122010968189138425066004723756844756425102846242723302708542376695902325259382227530658607226444080461502801293563148700891881378768088873987686360696026524373068907043373892020357469758685653592543936375985631582193506454411308596293679346003223735782934813163809120725182726166008218525932550432483604664613108745128338638412862967264999930026040323615176404931182218463980406252880066264923921783481093609212980078774295356705018293256320329465720646980930085971337318838373678779323358208195241038493746531051462300429605898609808767772371361298146380346415178130431894119069620537038635263686036564761179540595746192564871973588048004688025906059260176129663908832027668326153024409577104130927702999635032136335000782698714067227979618434919171538096158548784071811614773295045100397011634954687943289256266964607851020608256203655318729693247505452285871644349113433490395966432839127810759296598015968693444696392116245380325267522765796661903731194608637894708894142810551960960217067512259739770839702182698583111771081862952354187302182283023990270390975828863720284923796777583079130324189061592961228673395003213525436488411560205564127545379568880703826162006373604453606233831276949595509145002345300011673757549219832428431641270713767046731951791669384240518455051364622591828913444896738576200418106693420470024214027072919013519207728215769791415438114169951995596037799781262341381037957106246057217880580331796841884702754405375914701430857161013971667357830642981158513960244512246435123810391132915830726869045094904300476819304357388385843362612037385999103571132320098889653348182361373266625118149457435252211403066372515609085322234225807354463795790379827674610470765192334592963807777918604417474444790789642269096167471327583040564987693918193344058751236925628038830183593632260631232648915753861025865471232523688557946125252200449468288245716693092969586854629978407874672917718266732924850634260866411360100108701792855710079637745612414130574481459592969780066875676946146024431223566875892234436317824969140458080282266393899408230339250311182676474845949931690110998601311205293166147378141331886304122137382547245347122443042085166020327414443578995318162432116383794046667294799786667171247812663522137785829512412872314734637944456449917712133060974247688957609252560244781717322287505537966267886588669521155352618289396396171333143526381074073821804785485886056948421038610842556575952537652467279924244221617660371805920618874826109718965365164155489118604102097798057923854883715885241639111285977106388709870784348478917000861794501636543123503419809674084183729864612073489932129023486510874556485354755359441520210884015064267473120610786087224062024419138224098927849109014150070511433094003773945753554742998471332181691488969558114946923253316345544583841547399226146792986242020101175708574210727141140584424442269136078713190404855476971354385041411864023991112020873148269046623967263062445199149612917616046280867326883734186722648762772429818843151603546716887008868641374033924455018741726594344682588092737168164882883097878509408949674225710239190925809841674999726598540897952612329276663193121414065573809969564986552812873607601116448243910941745649315386082464991182720666859151173987609660810269283502025837673545455496769737475466869495990308079651254514930507590880292119060719977376084727620365869963086321341459312504720150128309326476422117619120803231112992723605121523152489068690901847130943769848492243274465262975311407949708901202222989469346908385916666134613394793620037450496032979269666819481945912794271983496173468601015141846733558497185589073797537723576998111137226119043284052283231178328839052050832734956721440270412415463210539567932682944388769309733978185563420803997428692336810910400680511266398419272536552920548607109503250043527245488378181403267596874525470226496376377964315750329153661757947022171772533877972736071899190725785038247331458178992318170692801318768581187104257221768031016322981570399183109961775160694053793248824269546104234050598442920465987031682902950396971250073568774669231567946294699096941285025581209940268592605032455828656650134882990364969661247289469550739093232687835322313626675438611147826400828986456200526718350760990684594910589587719266357726405527962942474977642848554610976404402150427433680534424319574827711497182816228365734313503026624595869847633592656582278663010677474799752486489865462206570955258401357299858516475615506406185784407833254149151154349402274501238298688209749268320970269224115045879356441743598052671591147506409363072259609331081713307382032931941117258488913396858735881500367636632336145725765215791543455405433829197846302185965153159342792862297706685852248504586972181943232604420925532123349597481357357043435267338236479757416651763421952329193973967221507703117630752059736198433859147989177672735343366717571988844387071762358152272622004432681281176317103872429303089955293045498186276937986211764442182519201433462540820276748486990182963813602407762340939298961035349522865824444389106871266856620149119574107887030737917695166141535003540881981946217315052674351923902033624053793713448225938756863929225187682159393836090681870644915305965011494945973045822158540805716714662118534728898966835729093339579240473975417141467523967059758696332236321579121411650227141025571683336599527723543507104159489654757207953946680344740983125186511021322251704765130872051732374307842592355677673726622119943831954907064878383029647232710238208352621319241012818852938509418794260891578124092781496797426298751163157853849582064358560991330285216861513641004971139470580150771142313522768421770466047760390905419075861918077600340384551088827815900656943043024080760905785178758055565995296750848483360364004986720651775956429520386945522227695345673105358823946748473358444736935859847545662350293012038583726413676790733749947937753023573983096796901223890262153215760096849425739882334530587084477874473384932813497988835852987065828468397934351878078923722114919439401843594410229446746708494204806463959400700675521884385896873579083006501550465193869613223785275059148858146211122081241984493311617696327044881061546289148812736474168341874178104551678910504366178706414643897632767035609843152052914615795847966738899379581393070077884317927368318555069293684724600680831615970737601282029555949954795834314289638371747505693798300310360706627508650085003012929842979648758876248584204215998624068841246185428608294170108142671898360393771627682607038899684639959294191915088270552466249188961801443876200015500397323173265535352990466345141279738542833386546839411804970839926817327885583793061641342187362581638773356480960735241953514557909377183336898454585383067199440818760993398835024935973659197536159380816057987324180679481342575582081241487139609564929137943169545946193064180804772828538979406063489144972213524390486701410090745176296144904308801324393055287344878065379885780625937535450083355651323665246722553379435417968853971561702588159785438334146717169025600533261224809352684864383558346986353830259111210316374947936857990021032715483013066598422923240574172795555337369569051069904941010769507232314069056901206719345026836688198156063628326919335288683804677480794475068119017142363190541088327101541351530912291386007835045709972195916274432559846075200166133372604307764127856790087810369651587403351792840343299351984050358721022495785941229368500102791477164333796443044319102653109404865039981093938680245130757148418038623920156858949042517575987995356905293423920928798750959513040669516282483472447671369777332710248337504572177507198322028334537291118863744275372451236083534148735026332185753593488668752232734400166452169425138470609503227909654764788359249954499750654050520776115873621630624673622666896324938088940189929731608938638724019049044566872036304264828864034923379251157131598717133152672851282930052248825750516685228968582322487002752470278313613180079342062838745721567499009349802618742981062857337696212024848915940076142040893496533435131212448802900759398462333880563296053252050558523155475382951717075493183110539275632684820408342000158053490625464856359174756136719181666346722002329347163072960659730384433341981805551202001841173706593722139676209826310928979880060383875261208162059347560168688956062390603393097942197497292232274378987011909289347175675439473064607014083686830232450534286278766802803025301994476445429485692825675264657338601266241012204826639722843972729168227876848032118835916463714606568570748880133270635906283899226553646528354647378713610950733483838433634439256676205864110853104905485497909062354233883052415748389753690821073992264874352389814470329327387231396159327242811588258469600831421138017130354161213265552491021487621132716399001884162979904124638238652088035546716507498601768438438670378452268305435574511373413826043846832468577557765441524202654597943371120480056173627348905639422881434127092973660249559074181723895298854527858035748702616012903950666401983180696347199446596022946913359713321939676850297031336740962627027790507663106292051316610677956333617248920266601281579891850857183274832859624857495967396430475574914232451342963034360079861678176396818633721009250802508021921289826931797500828994631202685474532380469997143957516430282035505736433681998848894313737045380700217167876256795328697789505643007009554121711782658073008826074935162303776426741133605754620615442278729754322406625965751002432269742134724311900367873080060196012369344077992759385175741352239890335400770119113272876369882552307538910962691283650475570405226910409955199533328172946501175166416114156529268684136193312427545495954880880003187608095890379952126317283470043459235655246688898126605459977462236403844489409188197525801451742368610005229712745245446520604367998183599589979989788399518991719689006906472223877134819184623756356439612303142749572862751184444081209382227294477300747954641907530653287724147404732483123815976448854899698382643212599171046213903402746637851707046977560171375365936272814254892583981721689858093494852108200581469563399867660871203396911405101585074767466893770428660595922121598301379540776477280725471968466319590581044195495474748173820963788679208907027852149512663307134064575908836366905886761427777648319158799013943265819993808494222785186461087179277480852537023062160154861291369224701191416361112522633231025521269668237499110821928445490829904604025884053863121709489931630503586967481364242964890954162478021653794837696516715132761723852959317158699693628693419220686349819268196975594773507416404448763642253358068738855188555433086635616473239811488222553186760528502029948682921235521440650461123142594839521970026640276475922191172915048632792084161766851986514979271006572201043092669638922710126281874508217768161578277525682260118006014737408529773641260661398426242249320282624938550872369363259096245000971072155666780775430197191463605070290098259258332443247110367472895025082710994975242410950921884749557168020915654374089573419773108988971998139642375051682803706005424402254445924732833914261896257626412610956967408308781322117801770235203560223825584030752635504286557957559119325609148287320325914179150301200238999586356094826945568580979900144641727820847492297322884440073201079516039126187344638587178554429236522388168868515498090468350165447794404953825159936703717845089043298070691176675102632621302151517240095240023812558072639285194530312215040000097807732209028795250445155972346602775902473261310422831840794875153202176486977945674049419401229093212949197257277486064530544203390869790417286325488058801096921429165282745887805618654371028668780773574892342181298519458478599239714652510404831903057745731032065055103393967183231684660336471074420783741279652010271876186155074212942653189805562388245661659127080561152233049108135255092823672649751139855766959640964649128481382682341151748063032603853979367937143735407282955288194660519659033476873048499916444808272448512044846285627766982833954437544011618975467547537801799442296584534397921050763142910539588759881586111720828884788831148597773461198395288872631492588128926438638141340350452207549331571135818727696083628746988068614061891499425166684997805421500774067326161005057944090749164332593444950293207396728588850116826619498478781607103895403536358887904015555733475822641797946924915658308669272501111467524491732840558873830266448422412518995377467870618129369073118518179229518882002449305829192743463478637808067901685506169810417452769742130970691127659132987782553093943421965866093075428317576208344257056206027182229056300218632752283725418347845038989436232844319741100200668881235608036054991512168640242040530377717051562227592364687153100307648733458859977255911891174235834850449230861531187163409321394263538539978745299406291644231626906180658089736950738319906203583953771690076182384032049773431880179698291881190196367482839970561743415709690969265526507023336798274158011081493977620469251495892663351027244257627724073375893895957526741160671048121688471476409055409020099288917605700338873873455440216750878874728761574534719494543759384584327545263744290878731781063575729341254933184702724941833799332140978511092753124112053925684932055504800948456875561404995070150587411055007055040954384622651674403563157276698918343552549130316557992089624399634247918875658216550481960698175569149778920884819029582652201604156521544205973196135977619199513139819230808424637296033995087527894899980852374019448820009991258406006083780206687804944032307289041691112896634446531870384845320171348551278057130061121738117280620776641766719000768687467438935422516530307979785170102165446996581109796604905689817369105859260390839640870517954120943931218109963783609146991557537915900625265888563225649451212930427924699362059562999031977166496035428796087236439928726165578088576586654225109675602833002278904434002820959693719503499508587864295183821139606805491575985936510091780169798133467742096483179431247240416634771093492985130974935018334145073788856594588668624889610350778835877659749545120245291484182942428066151040377665021579785405593622657536702946159109638654780707832801962437995324385284475917773819259370308863847585848721531565049263014762826303793598714543628544301148352193204313553879817438977621708610369010746482462210313058886634334223744707536721822658783809811741494926375208587033546034699431715616658110878763188601176199614021147070143562636446892467346891864880258111853526264359401256225896508139270561485697612687979941046879566845029247662976649350715015381338693690917458300443416518606723717754531204253433989403756584430670298424170376154403944998231263463307574608688782390865645235992155948005657672642186172704325543126331201553715942155285893766603951640882753424031159533088669698494302918926986522511362431458926545219271181976715928121537396121405967305097999937199827106556611399251035843539837263692815713224716024727177178612107882985690904771543605306518516368488829676775498046424204430400630878995621344770121046982279286360536583549493013960339100784581840245811722670587222992626310214365529824305260596971089153572913100049754943297945936429963182139629612419778890433366531909980490798358309423290182349521643349582222849348635782447634894582568650592822218150907626144157884180182162630156333545117079350104037646315782109238621848129621696175490582219239832925260276194233113529744389609664062824832033427247375343445458098862787666501789260628537199228416980092919086014932015598602353098478735266243727024542532846485700085202518720936578774501448492248860553592589468755331771197874484105824765734750594327411463837515195152340215770571364592061857900183649986093087879245913044104000841178003754886870438264587117294744157831751871761141651875408542391117324784398538881509128324930518165435574988907087199416931982600929369424270915794435605708785203734285209844626761047968972412773522591375056967450006863137564837822297388369115164828132308293480631571091400333715984811715662771870657156470073374458953336703703469971483214409973397295400394320812645940652217972573355725945492025834234537212331132525556985428471659844531243315315974451774208308606723965804868550414798596458749146026718222050517207608919101638267391510755938058472814188873567916159183343750155916260802137866432853124202379175839877239936571385162816550958573170046573168757478821046025442236791158138747964619740476594578123425232653484718054633956414997293963676269495573271927556942947251031544058045104438616816565107663421397137953350584682988842581123112385448017082464113329973870963595103890217769845102799915308411972373919823589912614331051460667554477214210881581859445681638407560361734680919815123591348228456708568990410494194331339032109102375769561565059520666239339310889219930989969830277966041803597239946247093188196552576658220616801068249657371442679194715751773507937419495096350185511639065476319446022373116739160077799443925980105752552921769292458412560828049829609342173075066499763195836382215114285018759060947735810432103395053282039258367525878856708256996036222829784966218811428475062719059425086043120215929399612779343615429368228328913579706580557462692757428846612128722287952894513258148495073202630963661322552702617166843198837295392644141599619637987424701372456263580007704681877840317244286711727831599915919553760154278048210242586304232826056450748940547164017214520303251235005407622804702474742834736911397206519436201027500882349178555944082486930639946666380120758959215418096321607373228055088295760083643900409622038402871701922630645703179789518952219828354431514557587361555499835730055359785851544560125138029140188818664323565725479899566332122160489859059643278052460853382810507880126163938960398467121037454993551849069675019127097176832869040120935720412610487182976487228057957578466941918770593475954902751433610492826890370956037197197750976336843386381460720230544349173825069586988498546432902072525378443016228609501965231553986557036931480618952462316901989807342477506684084265462659433591267099674301353887410056657165790126199037951516093010141982617646891538309264319863626830306027466516535433388889271714271236129046432761959233967203907907687618325337636482005944699712916896839579898900194074581476710173895318979118430039706625722770477160314911777804814821355558014358569977507148447313793657306155789252135260267679751085974528976902891946102279927045506085432112117679304836230745459178981635409010270797392439123453879130003144301578309006205225252577675654532097419549974549547179093945083093620066394604237136757755301999419952386058331245683466221459113981837566729359283918737493692294072116376931597262398510722615052964267512940598761697647585553709237246336664673117589697579235311065024791907967981185546979637428323431878636297198449049522075901556137702947517127948812083042135290562310476683994193017489656455957225553224227687545762264514287875949769021659051359439013720586010377690753572118087298033389447838529792357794531707227731704605052064433222576130156479124009193061916393313056574603110344060564894677971370750021268255818699429996833949483014072651779242894308460811655738704037610547056109265737190213722938251751370861292495119758725135129864806007025629662978342323170908189681196962638070059212815416940183136173008146750741121339886035380210767678555970422604229531959674915366087679762633189352722604500835088362986591973371906159568170205826562585582243884682546093620840265961960530070985512604470258839440260868202045807635179405606857922110338277875312185534531662226871430952764135937907238150325868314931354223310781166489373768280632144264411318355219530117380014295789919029245659574799366061498235644102138577295563692117719771769656838395746921760436932764492706319871789647643503499050923741476264850530242023685761316114907955241283118076650560229642703702218929711437938233872775881204008887149893676165064778709226406058618577636637001142913900911915125573679185283794401030160342443830508551942828877290736446971341553169058961451962055782033269671877749640601032515356909573587637237527352009668103560854562221453074208439531366412205178837496529602628791601426842192232687745591567513736890570604776799343291986693637694186010100072018982788878821598590030882837479579438720868198537554100368838130207485792645457900571963915590845698578113649225705665449180091104485173872503814504489976898108026130222758745441633082165513756076056109427973018242703401518114557418808932026811797800662033361522798416257603811901970076221357203494795062815552573149772845287435323061213179614739629935915242618487117236105150095335370980304151201739353541381825334193674079945332965577317388413474779388000390714221931287561122497094839218502569993362677044349897586751598496586311094208613467203178630088462372730697824898354314549145106201099929104659458003969618897663211301641343544879692446076369856728252236222174974141816402987080173764157956549392617013362592584641094391869749815982670058001363638344352009599593885652906092131940782547098693395737506957759954237471444366407980821164087204715612154129416845812351564733291386347132680483100650824441267245258219156299691572392514193202600151420337421353173456621077642594716424984489321158579691453689864151636303738995063251825942209802741586390200650800852250858309164861138489857055843027449660585157257480947178900001135578493918818593805326646163605186160187073551978006743911993633611976076936071526425483325334092049445697486514450664796650248482703390031215386717789229926065926811427664799419739978760372286684553106941219288955338104008225466341184464520405581772539119201496703186082431862266848376313500447991218995753660238941246578174139202985631288292861907243180446837859700937330815624888861889853089499131291081060758017820490380122184942031253438715579519356849994915571849459137654177625133272882151674010883864756574612680351802650248833022872781302648952308951142027031152899364878906288425952250392079583067810730837424833809342259646283684067040345824230608096030586089357831413575498176748896272489712214052426778714387572637166362258768436455613545998434361943302649174888627245542204531318644719844884266519433703137708870620596904669102942987640813229432450838169035260565381044554511220254606815251532299691145355014195262595217100257153812183556946689733109681457658287361623006689034240988074913208355040209566371999286590332247457658130209492317717524439576239715256726840790962595468670831162605078478811773268605138450923223187122962463452930287785239410620329677021854351605705682178909619605472022543290188791382434298237440530075779836054710061900515300120747951677696217295305278740034061499189993651515818869660584294251561640591784541513748105573848195638617154531157311898089184108022758300386334065135868076469261552574782929816506612838091848128792615264485056484392226261842921945848772085664381606053239379334540131395673099261564236715043139956322216229819919794184364871936664040540671977224498189235554864537319477708140595731690416514293727783893465388929895084645501569171011399915257590878540999154718816191589252590004631802191742307529140586574784579446709584857764918700702314935100809962601534400652637962669094541362094949574495121969635437382107666173059664716720421614199379523345447418556878290902289787677809155355285498594902626843911729503183213557976673810013944198061829142891256050409329922474728613395962116379690063500176163639493021161243560596292497737571757419404139149723941370397417148848863022706389340842464199741648856714248771149636958655298615318349987899762280581803268681878434407566248779261820204566977684419338377393812153932291636252590869601229882451901491486551660206325447180131019627561415833263020573008136631004775665287617178201229730589069129057534663691497518288030938472023483106437586084038224154565077173812141037062318947941803833658633309563001090213524810006460864735998176052333642917243545723297927558601753533255917620815521054992604073765434754880025217586242543835804338402400982681684938182875798835779535955264858594980395335392565293708609392511706560714210416002322100033573774601729188701904122317848488374711401219109091797569821499722520952561305281846400688863966032764272959391931360796329473498059472273803735356970294950024621047419708976064786595768297380558813784858749887688679608492013799722779758399374318626972639790098168776642438569129199239611841333050842114294796837543588306845573204868518820439461646058821199301683371948720358954289088366782816948424536614572703762185775751579910991557122245251912703361132427081659375067261652081961964969590523129718087661247911784168401365914754965648837118686719545985720750137153321563685764617915408413290483227804772775187268338635764084722733490865377329060932416543343347725608524760120249760025030595638193913404015289708907312139172383235359369480363061886673533694401864324260505907105007657035439227371502827027500713095903892680294705615101324358013778203702086648837166799879729233399952450994069836019691299161986871116704850204769888753618036821809364954042789745215612787837874917267999126021925430917286093993278852337157550978521751789256827795243757443739225241534527220285466116942193648099118714131243803405531423879501178573751525773238831182197026659351204216517598591649907578602330937708738128063614599872269435676108864375050943403100827611120152292538883739644656551871119338503635589679766544726316083739468346341042368902008046812266381129885371741929501029638770597787436779874246921663445549298041565728053435355299266679213042497904089956134135949934804337858668309895167752294334151439977577843474079284690736001473768939535756138971878914418518403095177294403185380351664645317497530043554529863748841291850746329478020378627678298248215839540846556412461158002470478622263228471706087564841494734771472731395199646758947266981502906549821059420156187683384599325934193222088572284951356193768609767246203680374405401131110176600538745750387530054568404119462926713950701750558834866784716546631885644811576475018447664210761250839054343072096786250532203981427257444296386126905563035616609469317176241030392739937109365238611463691036290365999248320416333660907285976117838072731880661057259873525702021197939801419945330211694329492864356411555591722342043164882724634838478568275605475667083445854198847639653546769918259419669450966469688467328367406868737622745441560227413628247899158666646298902966247414698496304750024352887710797606972619597250433298230680469248009198765718166908195390640373620334081373942036223472753662976274759923998199917560647456439972456908180962491845323725884380308088265833486599120477422202799793117325169493581001354175369679670740215363346671901872999370489370867849446166141614604412861950103900335618698297517823330143261920257936870891757580908744650929118218611330159116354033104151876330751417713572082681077397361072358669471731214973339715163614756803215198274714555183725398820066042181018056955967306323736236280552854775877877071683947770631213222759888156606367586090237923406853546112326659324196451819066652131299952230734588586257262596757018190127701258595973238252898153334286753451624654383298141641606903163568045183054469200065049552245515721586496101846974996107237951828552564623484725579817384564054811368718898522757123914651616908932491122908048263879029696804689497795669678961629499644354484278834873776238720265411965775840560022514588652929623296587792202577460660502250237209158801645930602005393703165252648394888304214010221622929399253780016169580954360580035353160792466284313440008369049278425134278180338558451069967535567784109633421378545942499127280548338082439779803246961737127105644298270136216033043622916007425474130061933676195318813219935099280767221351957758342657690382496458363983921223686488632267150533752058489638284127782221232160988176627995294884417892772015068672961802262133217688538618234145067135078142297141669102957186117936080859652218287832546584172659741801962911794991527513782799577244010995019781584134468852048124675042954320050126062233161601325616786357429983368342131650756363938571912720468059670702445563443789269150090621742556458938269871058598063723227844452900677147259470224853576612548749082206684065981323047358559006334349326989151876561624219651743549577386875764737919263112713678151179669869149691037670120817703327085100504227416350138775939013875874664965613081925288882104391118737024939329415384034930986709930248452896147672309348908282407008746876902038421691174074498295296613860503200517048754322121796037839805969814881903391111832311647866699216311329110163367589701810045899572690094065128721621966986514707220993756807433343866918681327422777398009316643979562992385652726676457936744562701141462065640487200782158920320062563615928814463348981968789716242599033624508239489297943691816851795152933574438268563402721297661538389446018166229507181994674943658145055292187625781481673229560113027952959701904067896658557058384662313753035467785299445318063521063275740710096974201112122307302580685663387809986242785914182682165813284402145586036585883126698221679470574635920332604899366567203374612610455221427947103987665076658720125562763876401008017223214913652330959080462181820864670163591926203291169012592421454718094531822051527378239526302165266423740913381807717719459518819315223633804319269429237505397664372706478736132128561576441849612958399145463751972803071706197105624604620228791454136116030161616793628306138704450188837850774658027296878494638858874352322693515138000161541006333826905963900451998103230000538161737375644314810588861873604467095835196874650997741466786124840369730624491691653233116662897419340956555914285120087322262773782372912978217012756296658697487425186546673529446469630375020396708719562236529889758642868479318140207947044733326364381216364581867253867728107131127244721982315275202082096823560376962432264752447240540865059376850588790619687933990672025992396205628908102079630636483210799305280667307674427868936974571057109206153380587659616920000406016957625798951051739506275469569393511763089541568694275350142566752719651656210646834156595539291386946200098578894083875967332556588327633052929750962518152374940982163739871514167298679403362440236361393701586586571376847011651261576173376518081878195585569619787279430167083964709116190839384387785047101103606197788074217680154647381419111212499322423728751247511419371403763399819191835061394963402652332074693462125030783676251643701131122897986407672737973765471636288780215075802883103470470787809981489575288610790454074848323699449688045049321216916272283201468384729509571553097592771585008417756576499541254045851285410216554877042230153993688159139716701729830487420447938117361568333702651946609333804721059047299265177479244705841340678522008238758386104634238936389216799409873396213072216362135892156192680148191665276965782466996318983004653581096941186385022829235506261260454655574062072776414694185749258053650941428170277162259016991874145276169577349735806850718749699588425446587201315240325957819999469900046906069429328652204222370258398651750263051823570556619833646027155782597297527374138588990574016037016965482781546645262855832928466448552494999985314705968722381951025567048230451668107748377521214408956445118600694584521836053166681834494206739588677943180824545462776996055040464347596366314798509157170172876715237916651851727073301644933456317318152458419267321181039355085745348428578432357372240314951078351646032464702454307786452076188328214768976640093110206114674287648590915490133877096452546396284640450556793824602202072466624475889351806734424046493598346719957101809528193618396595951831358215531012211025351444962352009255727063315051162491633463045682953316884617851208134380751479256153263018900841541807967707370521087855265677637910384816121652143625697554829638928640733261494838462388718663278345678673057818539319922576037920822311480004547355412223551028373321415399188122824938492666650502401533446991864493109857995557425269504301832413423629387323227712861630274824893692882286407387763433227902408966362121830519736816596435845397345741350025631866371816055512809919465475834636406225206845067661631788030400601430236371595654470746385291912476905767970032212807636778358522689503643304400002205582096022265822484454890508237648545437411191871702348578004208159642011153931013747628194408746849896894307949482987654596813799497188098794419777491387160551142953587205568939004355287124950351772358852424571646061160236027215084880461506737791823013859603878298840276109513227104173052911158645035859129423670643091989591947083208954994638906594335478988326637607834172189066512120552117307011092930106283340042090000736699203415328802087658608182994601754673527629573285840059390285870185357739129883874034312658108591721863720024418140755992490090579812517371641983813684742029387293070963130295245800202950240343707622729930574502642527991868224008724383329586268536568941030346690737026989272116715393200059728062652612942706033220497382100786046456917793814829421138477597887070850056220908630945098124749061510329258775550679523978060643319458506516134850989809102605441165005852915923720935001758550142942908858175474038000887820328488699601971264202062362730243095158536802378594968889046295977806213542928620304514028575270542165631621647813097442687302741052611058736081620689765233791412053698268255338253047163862960804789677509415319874704120909525840186105379786366343263419433463587299329587606284597306483125192589318771431859231303119496794742069056461105646204979831632086740683769072954688957257336481666885883719978518663261936471558317901029982091862956490152013794172503903797297680749323815572903401589973783537953838435988452546183424874573390029241221124341328461905962133111750886592797422646317822790447319907477244563340924798935150682647167523051887943794151902893317941655077201196878426938447622844983650869250581170965118650257019666587198902101361103256444232153861958573385990933892773481834744482118519274369181446905481368412628260749536404824178572459022777890658170866076001530210945427610492622849200563465785003588827369799705846295905845749981728063304395110452153554559514079462132656235583544817369503959931903445494773065758195441471214149666328817545509964184110644354711825834835231778505342499179348616712059144055206088877467000162460453437345470822163223110551417013507830038398755659142064392263918627406120139013302486299798918616210563764064018783044247421410469799351975847503427680545558508551980613805191965616354829408007867532879209949277701547387249771458060333226481912023261737439607106612496842547142156567871500872257442056636336057724702468342735517320877421854800759531956030069867247811566098488295782574969345404862456624843477981309054804979155062710519072570577827783166113802437890774660871554290910473167628223262905834038484964928086908152082791401362837158659585168057733843922726244744580127972633674522968178923117131889735704534609244548143411445043200668702608685690984490424305949974430169409514725466985248617424821740963481312110661411837887584160864318301520566847719473117266805371580537520292777712884038297141022397233359410788938959554855523496434064450706004193255707158924698537365437719324374069649323470399382664219461484072851003208019041775794185733239219199411693251308203736192816525405818088527619379188127198143406356374916303260498406623114567320676950103255689458285105386188529387692549678349614772720521909686103804228656003242875307246781083732897089458768567808936385279136229259576601646803258275801394290498225159604106361186294874011097964430115215838120506894070136017693678968936621496549056302384668460899162425342257443088752673722091535041962355744820851910367551712331456691269592003806540635842993625597365311495842774582258228611279873926282489174255976253097152997067572502608806756593080545068581221064396006741500614206118720413991350896612091511348302211640774833069411321482820726848926374892307715153913314741397273765808648449148986191602975689140373863571739195437423525949546066980314693548940849014288773325885875521141077042660507354218347468089990649510513605958813902587142375542303260579890775865120615559573797484347907558362874704280517814989767708432456737735208688345432600466031543924798032257330203698472237798240412976721779083679632743074925981189217938387782235561115286626464928878471844467833331993916643747740834369723025940076644910377305840472969384502288418084282932309707835217832351661576776695580713128419177625419672469825960420812441259390166614291625425121030438589308688807400410192825279329220445810056853687802484435963531154206808673277404798070647841468462150267089741854300760596495198410192624251454132543472699030892050955320038546569187028543274535333696168483829308156019203692497781884443557452131010371932241806716150195160158138024656734107604328447034287448731592178699689708601683122942072412597664773584798298009341439026294098107202517970508351345957960536211002620811483044769116156299407192361210678616500422835221054579626254610326901481059518409553030513635218018246340424117048724795289443912948685996053585713349675741127360256952462163017190445126097573715095214995824017385140044596474793620665105301220429761083612185662660924260614784747075825123260375617981621601934754033710409090515722478002245251275026924514489184672746375347274730034291204059741168755512593899248802935430870438945453773989168044262974170311101822299773090846056004077262301888432722959517650725508837117902507213692580252551806630923081438670685310729700023712778355862305799920598201248012745143489116602154300261691597538676327122800175576493575640930034566969755192752293116582249992216714390508955628145469650795580105199010784757126912839894229297648217843394036185194703723635198444447377558031640419313909671053433023650625566741247189137014730555434814725845563260338507862338899831871185521837829882985324142856250116724448544627881540052859055336708993044676766645850670606886285601779309974813197796538193507273670082771491666830494753045359564506486053533734636142874412482415779553126788919822306895986527742674991680625572716047281667865194726713072948428697745743038483620072779600716997504082483314488364411861225702747179572644176916336301726787726495496097769107476480479358940269712119418192266475009636882245911663345016170872469943245291162174004446728458703837840811813157097857723766031677496091683682342537174728085482175144164717640483627709072500313676852533061561745986190736333010650233425689098693054253748219430843278313795108523422747935704021877020356801096656630879598560592488230197074962658972475776013593709121065487940484967536548308975767960496619862592146923485547476752420673045511202934355673687358538730677067326310087858082804054787853664991697228509917012821570128121569929113084483130167192565479699388717692935583883879200004001909061530396065718134217982678074093972991076920983205663571987237634986991367913000375764978670277592103069984849710989017990833142738268886065084050266735188000857632327164776052408463815461043558802072598475891373388116761309232638583680784675447605164419574412605518670504911563396736867941305660464351826154348746061064961823878729027114171788366660464821549402647677482422527021769875422688083999441462544591108221565324709708155549768646011671406208843300019480048432007863938357305169545465429958103751203649013818810215041072776539976420734120972773836477417372072809153632783733947167726544785117265957257923195595319208442247898548981565822618697816243850256617992709095404900617098733792217672230531596876912456530087793437486785196002435655063958432226060987908351365611394829358723161349467726292434007842239280449027131789599099642647065198009228380417269155534995360945334933984049691049305740704955009286433005980436504820362448029002592798003157728213456127673402069673531555956851859630232621843180746143340448233404833625440298516723569346816304893737011963685810195171112938698098498780242694783422366677424118483954227991078446042700383061206552948834569957456670556776181622135177032846762580329146762142076190157836325642876273019587559460305260810369510649061891318717055003109912911617839891282756555945995624197181430651737780248363614647314895950729098493281152451180201692678455179247816258357616821874934286432836930139503132932503372972045237705682601755684673527705715624095878777464796805409867894858680676182316979365871310641096399306033511158395109925076547712784153788508453538234815403006282621343305601181204256020072240270961627833584725109364022976070231199588244150914975164571498386073405265169296779909683392837498631109765181649461377644947691935070016643008587933404659390420821657611098143769553965013187115129530132090707245725623846079172896717267812343514698258270200582423198753416719840966748497027936798756238922055300979161580787283758597670114741466799921723961593088086642391676100106811891160071545729055994637942654089885568071868405853996640870169325760184820981107556969843150538890571348157455900068271209579831120940645559866642911482879110289375326440835778193892418943970146565696493183473045329461084506466867021226455533546446975152411686771579028459589030120899087794045076120354799371511747727727874334090590938806227154137897309971438266546049736109902302272750879821808566125400769810997801037310513665029544187375954918341099523415968223400264960228225864284777298730183710326549490738650011965726483141079177897549763626214790011496155020345551605049589351568504709850116135622597712578614030890343291082763806261206246101565693037529525309115253662383770006021780681389878337814891080628663848926305954456472175856409745265905997496246224930416275982648034150808880153950594420300030440418849092622428630173658264501809061997343186531348563782137370767748737801532227823957292798966799466175005322935386379895228353077258567206655427640490309874945013694897646774857288494807443260379348288597284983038087657933349552490687019418229333539401371643343083110742179952020221553979415014691289998313458371970811870633703261092534278125020386380472943066439842510621213461172772715201828127932650679415339567985190492501723023971995109260566364328323373759105475554594701688495441232673326701553234780917765630972896314322756656545642112662472528862466491196132490198579805882681431253406153246324034585849742834242034978471332372357581426533433868213819264935963148249302639981588661524751192275378568961859803193565203300438714259392959914052740866221619200504574234626017902670280809755013011386999404840647404112301967130232021655184219112856531586616093847178520455366345135917331737810008828360192943200257152701945216527376580532990022602029939231015018485716576404169418883666759260451508096926680281167723582337463997885154551758975252189177826796673541411145817874703379564711635253254945094626119684665920581723583687860233217323003185952883485585920412704557033883250902736284619740723456202732045205936128221796110161205669295162873602279995893650598972646720173028899411512449627203253583471248637676928419734380876059912850292777458924185464863833801458847791213042972366902003197701412181545858993519795638570715708298443540128592811794894905662217760140436141345419525399536404158917278119963729548566779669322157142238003584362628165416248239828397555736244555166291886666582193443951044425230839747445908643377820785312613319788840606591957228318716048589373021100555359195932059067990413546556247688979020308247021748286812518010448525549296675731720235129369394540561715701126797573739819638153937410335551104321652142800016912893961988303049940881949549911219406180693407945292494773741096000648313616687937063401989639491567876952135977951049733722268789564373797085142473606267294207276423265202153425126564025091309520579182722484730937061428683105856771988089259918259753930830895791624836538100381580311817450146042171733809559420644599751954810718171770275524979727757535070400302398419053970236226975690558822529239262123363103507419573476619221615110458726468074253082482917169757175139522978142479601729937465802465396457854921456217328143464148020627383054917273028640643643856385207302808074243376772497348154752968306894993130881611249306397306805133180895609305616126038020920893571297124844711445575184960312108349700752648219633384880725267494432035096999517240587954947584178680747956149144545826844996770738958054065433477164051915574470720331490140849532174185119233812093159595684176933484660892993940308063261704743039143087834933489114973920574790178626433293004935411578648150440647155969908640212797759192526229068237547388185620342454855618381132993336781250473899590056139775151630399328689932264317457812212314387557209377592868605380173755174448802728324007251724269424899216970034758813808025683229034002609987980413492193997369103439032143373774887532739176456080088177839523130510425811420197529077312635773788311718963599718374478036152928137155027944666706559445342773035717773048419594550062715156438418044196879876195318034619444045732084909950892779700563474315685165009594580689794616220177713752892272389414846373500927014260279180919982928367306994387341736149690380019726264958445701743807765741688264245415323410236588936562941428079777258193295327326555313178440911889510999823910257353250261146964933843934551124132641963594701924568331180582725648569725012851564341761457328594583188236395465362225036802607086973445190909718312125055028442991857748218417990922052885684864824542750752597759109951279539272763431104866414586049954202676733414380517898197003853296947696679312467273443516276978242095472681893479875739826479551849064186308149915950533312041197221307009354310642886392078435315408712338959977393434700659982505486861575186593918472108020206364913151367305466260859527044493770616323715614058135649034237974516926807640426000571236165958250195462581188422495362675053805775140388022603805686909870600528460573142256000276744581217864367888696330510949790055225382749071461179032604683934284071011457724137269423805065858140946475200955170477357033740929521404018991368285169192364246844966235408282541936422522525838775756311547875818145751641347237058616906901699528379161882218842072229873774229951480178171654794339334361494434162225798062799086225237722503482101810943771160500977621598034059735555549214642167289695539947252317224247409605986276995388664815377670628497654584336443637176143967362932090578500769363675891275032895555652804964559317885152069041625499311802137463270951569231754669676323957480378503584566131013358161370753100860083169503294906833752471953195685310899260495437999771637819713877587187224312524257250964644175732385608090193773465192080782007603068305963832424430848331127090142453291141606214060909944292133650253086147321179577556504542574353738283255472710415778208748592468601978216453910843477815385897251401711483847154653343016154177737275907081036663590234402009310785878179017169970316111895220425089423418322321585344826183517542723224790940469090339835743391213730274385654186690706358461838963539517104033366655975549018169644729935508378839674879360738695002470730639885729978864627682351246402144064558416199252515556410450532343070984693407349511549303678642108202980654516384696382589873297621936071572275123969688648897831550821478749572906439015665953658914696187424734353394432508901516163708475632508306378237418635109074854628089588203365250162676600387380864528995381015752857859068825476914492205418841004385183071631548874420739547991072561236998954003554483113367634288913614484117465168958524368862800988187941971037644426199668860223234962006322927297427980930188841931581040172657985926453343893431535550373062432929477757025978196324744444978738624856010773685490110480914508001207705559212598146845811461022229280758856153990314564492558888073088068725999719354392290448580726968845053309813539513869788562675567102371465386358938083985412732336057497140138672618964156207410828971451254840260149602537937077368489284186156596245413002682511534793888215248472142086013525449210727591947341647068327849297542909489063689963971254205655713623057492539645415799728909060476706072335602202941442325391027304557368093341055482733208355000926345405602333088182239287128342419436513379941021103660403494942182940680679034928577214204915596609244661227726433137018125838656797255065279538702368414318041154029361796181734178460222228470170114274135455706483626821989155224268168616672233579413889262529496696057330837534291922352229871079603517227145597194757357488206817425953428963297809428514476728456499065728929520093710816909438436929487454837915255276402049546001852676367978302199748874713138869242095662306437327669910416558863031756739949916253614549595034611524724759198231479610089385104135701532613560442252684970854956692097300765440489874229798452364787965331349997396486813954259055945620847800736922499309843522484182231695145388622965178636623375698555175415071461144705021980292701832133836841866410154547717714804549230544766006705504362126864653600213994359038681010065852148469062419357238712547631033478643890990581085807516598723474750507250728807237440223338669923405036395904686899278988493750596776807622301173011173249436427281004098834814771393356367100549298762261655188950115826412569378079643797177508421393475934920624880041175501276076473002354627480810126187598826996830843682668261824062481790766205531491633118080417304733371079165399615777613315672736409952216230515888953221622705457769761607970063219127446023275087643675548214205582221269715997013114594323041209953294166522658262356265311332947164759991960774397485177926359441897048414906942412625094715183309585821452601820354109543030948514332479156862423739755179752253102569545323710170225827466601055397075992432144203026520570590946150979766630283597062474235654723744206160849677243548071514141704326531779067045342717838734251607001942380160028260067669387689601138852095711278635109760955152089083361383028035116729058843867612688668556581773350324570278112664364939027839577258029835930833468677692308204568967168715771359979899087288066212864291718031835518939526692004053070382220089820221628386415543306152357934059923343294151696650903294056432823459246322958378793112715320330028094234293656800595280067105647129448761913244863019124943462335288779655986893074006692072769755897563149405421450089085117618116926865243191518964400546899451868886893556973654788355260993061343631241791334360355012947262524877147443252547941604068327516649180840976387106239716540926501154645264191695200184627587956072585182752959892572894268523549452342324561169772818407911762870123929209125796510056727252792938639617349671852572180257565316192140218790433657786202686470805743748740140236443105115027838096030755860597338706290135710220714098679347416879152581142809670074035609138589046947678609159701585958990104534611625417772361990645420196771907099256818702026773333127552564229048482688983071738201964894803081161852795068532146660604541626007583339586576093098924027891756417950020415259943520840432123971128505532647504414827606515683813675843395179111766473557893541974479273335230021590381186467113813240838641307231347096034890981093721347929724886958008858639917971182520180901657722747828159282322317839599045095466920531170820158694004012693716204537931500138910386363397674937107345488368068243292558397972861568212049510836196119914039971826297786616862027386943767670153351476987970234228102545873839572391308538970964260193419302182762029429808459605813914509166638886579590917747658697471188582101962059554758003549416057869920346179736586997839202584930554180439166820874173299271687123478192120864942925940446630981360934251520992308501423439573488542565033445558592372650750624418973225391484703642511466889761681024959828649217712255297049137401144457504572381245535887002351034808624425133610053920568872297414380210991228263129897576435646112278076360696373249435846371126211536758251679722191862905078337487216749170138283476738730456363279855512326309148417585706753711574876246650966235471311616053174252151396321312345862756297222327404787428192185016498858065123668925357992993188160254087382816478554416282481188095847690471524821714043734122612642256917643201556414016327610810061723611872764038992985618137232893971120400605417166221312597070534654565856088467728354565009560537805954345497395768159870255215998372854245838130390228540804962470678480260237360750219103252224572290706513965607890289320109416734838521625173491460603805036113472651301138375559664473064088092167174215999829245546556623753166874929651196633948850744572648996319978319002025084914056884464160025165577498810477257554512745526029989005093435193597375699996212304196092849894373720923270349414131372773147203129161622940640964583315812325538984333287199845675444266021010246842656758274366574381875509998982890116960451102365606019521212490655050576457760909383799501902044996656916763730234830056357736830669707536635807521507801012374294431933500155402154184042216292081838440971339602211125533506286533069499064099686451174299358828955123483474169133215254532357747602397406767451752653770233383913192725091265380739458286395730178104684667299306269724510841708073964510536700991444259461845858960866184555569404371542541146710181989477560880011208294664255540463269134068145530404501500851436470524586414394725889598217180381830248535234703191993887470115490965399629493358424163313201461328298433498854894873139782157658887134251400867220766914547716513847518436384659327885455382144387835002723656973940414200891381709929098232992149428983318823704686943922729220150328489130166213680848327609547310229492450136496400817880505988007351432059892785367899600043920046120924933604083509370447495274496892580493760256902031005196586401549293510886676040152982266183919626360260634004637886594648038884613727370352841664620126547558163826265564895335192293187077159187782155632284566998849256904622939110484532093753871328233954810719820959450476387766661132343882576121568983699062394927267214599625887374976277102354268120344872162845294171895789037784308930153676659494399800659849113341283440536476254970585721647778988243452777744224372226199145989961516769737309225351061717159303091596580085658543438611298425148821943485131349805483750834266565358154316238777364968058834244064320465594201945997072063391511249651915493378203319895868551366570719128398282067240890758954564735177733896003850779433140086582713582138161081861053612649693327853935300395733718515719249282933402290873855797000040019452675188953402400925429567055744242544490878552332416066214579498413624494957745240805792051079852579328591128903913764922732520987935101293084286392981188469184410907185711909787773340653873292284352305969716669559333975709266711150316876640679613828283500051527642080716648455702005735628754749387269133930246350959159225170995238011582337314770971829390891643206027880901196883107158108652510234655043988191154518653043067944107786920553749670775669921306948920847457376064425004407227863534889066123079933442383244103202579004767142143863190060825834057376607102095790749448283662923013311403649986996136304429700966268802279107347966290576114733474612576361283318535945213520771852338245967215392147802396893825782986584977827528930876793253362491361681745814911509364255294862535927260216222500726370301724498718466057817261553792602408458073859586286507371842297290896487201786894620941035965266384535743024900873075646618193318351690882275157572144893948987974152553558433131777786489903331745235718198139262052421866114643840813953478545854014018820609978443123701532937666870619258916538373505515312151614864187833071819796415966060434818304381227315042509101562680652977904234512303833848469819917077574227665190063769562001936674115294684244031876505225098919214043984316998755085281307460839143943927116038747481827846927615066653013976330084472810525796903797887014330966577720573209173567835709450113772205428642169984950121601125054903851961960346774812476882126894808556161231482875798179854520821051225886762604337924860515910194589352006294334521618393286711378267693141692351767529204650522174540918653526160014860793736702406012774810951171512415285840253253445294293621823091190114567749240618552334270198395236598462564252030296607337726056234716020429328720610353818649673816345469469430085910448950020275390711431803022394367219954370854431526274040188718788571192557949399342534269608099508591678890519888643867922874891384999402457382498899382961610084909649631734905340410191219163982723760096541813431831785180810777937314342364802093664078351430937666227844410175255856916505277166461133264470883389819585370818665237368352898174317267270012582947051256027144555595961573130794386370838279215347821583187688107177176555967056377532992445303775893019303100293751016190657161814783941069127973333205791950743030318994057417624337350086374184065314314887582799544261787524419874101814549454145523126630243466865321023522352718029508703882521065668254760893977606369142630724071507444943122036526261636529295371497462404453258160321030242338586186066553294181423801525049632027212259040004159232177598840550828121683706633153014348488026708125095862941345531792821987790261784297030542017661313177287455921735503680809740352047728299958538417356351975268041876153725747414162305390041731036005892338703468942829422071800363764633002674761080365351657439262405968872524437013264170828083834637732623167209144653014634647401748959810397357918587440325576805537078045376623429406740958358103911767041434894577617634528662259068886165962597923363333372157725490517649526611409517598595868589077233957885197649847660948929166917451419995843934929381645690232345645889488924030327120302136418064133265239289957666381199747931522272483007602102994707574202566908114292873439894551965619435961333869630779440875745460210351867424152526609461763298108990706516387019238584331987866991741929975196210386721987538567559308542416553885246188491030310430530273705422512155257843530220744330499141072669869677735211234305888127456148846836370791682316961936769487023230951689163896459766282482969848695390659174296176047750282305416426548098561540638923569580315391038810001674199726922983286852791602402184940789207291613610673410732647258159965451576081903652617036927051122053254522709978296758246386742922408964037678738560576727546346382521624442626929442537411633410437270407914234473084557047174802124453859685629265567439723766516885898444037412444825328367771189109861214382262908485953677063401776403744008652453919365655308008137917413111104722530253429054601093987432153613110175045931757968020948607327138861007493826627278608521763938027034722528588412011830402514005194506692469276345762113350493473739375838434997680936703061639412693543269437818088746925276752944744762872192175826389744047728710295321819438093615994420164801596193199230452790698169552867621627216717534411335635368967449674907273180858807085712511465288880769840407458560309333868639871078568588680304137601814112362277886189926581911903636545979296125895784992940748828711761282443324745039447605708282451207121563930974989166467539217437512321566514964546595802530133427279940597160612206561553500643243970010678911551059285683239875095591881286509035730092738017753403350869142813573733687435694392236317644486761062067311618006648704179912088137453220621953227867244622668301948249925812092991603973766777077535411844954235630464372048873333724754065670912217051591172633473887027872971190325331469099057814266690945425628867818361979963139620375131149758671826754855461152671213993011940055712464423159603705375876357214921568877013201130567215688614672491292870468344583101668195694624440277372956002007972236097929883137615495338821308251686312064770686625652033844897726479928354782938309593770424826252395669212574010476048799764232411248237361541635944894449170501599967561083576559833577482958374708860782227747757561661850412631875667075594877344948438847860205254460841761348995594678019287287260031509620527107332056210952905717691256153196758391238417957645915017156508129376777865902725427141099260926528506932953156932482420650952109345637166326787762397266533226462485606426405023084194720473942363574946342789393062389232905447690827488843335369134230205896100198902671780896845721984027343900305344107988318097815403371446348370416307269762503119159265475531583065519323277431269123872337453489478271946045367029370246111150357468838985797717158135734343296521275432932108140887337727757311714958458589783196160691997066807016493797607588143835548561531106391940257165291590221952961456219696168711579558439237183150614848210923326297305063243869152678975060229237686017447553228046200889521697831854536085549196361158203834165172690089437755923810040361375920627025615384683747881983806964676628266040375620621300105275560389529208834679011788974623677309913114276147961908575450933168253687910360729811739565079518018471381210073055853545435591808690706570933998870847534661297712859481183201082916403707913532203626118448450079190180518855494291682425759895194052238322802816488379761000009779679747672224679850974382739650156334597801149041747205043915643244158800776145381212248029608381721731181647000226443443997163618971782246579941102148765336724614275357413395394911717005503288816626561349411682624433149968861499973337433620137190989679628891661707311888436920779043891222969787500154135724267428424274047747664083812025696996676141579491563109789518748560210829458790267167223578337316337463753221734724147476354824904225067031216663267906457866463662242869189692434842950563552244323753320473626930687636142054821995486429032349962123236620717948587097708383931888190550366091394831226873548100226077664939283452701879587768957989895230399642448812111553285337542330566427675386472636068399505998239629029534783833010425322007251571179675605912712326154355653892641165820776181361300526136475035107809686302741567991689159540568878189019479173526674890736698496647301602216305873070592253338234002347223047647729309184392545303290242370685591019190751408721326037690271826018853002097807824095268483593208963869078818720609915652618069303536471752370897918444172958513011081730967930552821424570304612435918436555656929961883065542832124208371832265599576708533939661589191860548663490255697951139340208281445283142313596806349610012936471991385689231427642339026873528500718082454768284026378664517608679408794672689044110024703032750442698870508871028269110017439672648936213948466030532755481411526749079539146199393630404699995806594099533420714601743636417609461426325087394745265355110549379389735556236066848417095780254815360853141674240276536441079739249297325737180187841020026321300844471902694418853849944263568477021940708047450329491100165710392365898277827384372548253986175236042618774671521958593393153592508253223592500269854753970850715214474624363695211903064078766259756456931719119943016192172126486516935490870714642647847431083342662851226023738903389193732137321389205339600208967508974232983883557727079768436207525522378797110947692811382749041574858905127003616030171320365815303788231007970403109355438546523483296553093468338353556982538126761133322574156696160139307509536204442878341219550361172277994327828984352300925202825260454739484472204262952317919580516505099610155213017586573041278187843499074831274695830528142375875917565597539077706306999772056441294299439497021787200419246598781538501942302554133796621182456353302502826921750333096439263150412615122832289036948263983755434747087047851113368145992387104426542534838583962988713273574668624365462934441303552115179770346459783111936403519554584405464558205129889240188204064262167083990819614239229006857499486492278850120303336167350255359430515337539730702981510396689188721452399162296691017485366175493662614823767990357701875688342445470205607474675379422841943586009924753362806722481012138509766957280686924223915151609212642720660009719504261349621803409417970755081555431728586655711427656772171562376113102694408184507533976378665733681847445160105060383275310960178220999365940533309853334458525665365946994842511710085226569016371242728876778601985795372904180561233273846255378752045524037453346095743401063283347964222265035998861658598585825985611098264077330191721934344774147606081755854782169090069104780994827191565181588814020815282741726072272449081080811692633663966372548071883424100149565449022622974513691151514347647179838465326381519563869614124962360338713257113961873950331070516640739425681104501665128889007392739595791706832379941716541281887257000342052488355983861887286994315324833923309730019920506491934956503144440423942727540089398028457574273971092371232974559475558781640059485970453548253982718201407712353722054367476475699536911932733279183506710115729064794366983268906788488603524270493059402930001942939975737714821967859892220820567602340231208035249282223281883986164564623762392688353034129408494690246030687176400965507469147390348969574594120511846779282988528177690108516123287779169680197496376711378169726402406572342000875077246886051040360189643103740742641304627948842812881533628166921024601937837963528033056532985814802472488666213415212443733411872821477203514555737579730136521433952610281849673944648535888265288984977763028150363050802619848049897693423023598619997516885371008652364056019536260083739345892220270331718201284976875328570409374509326801952577822414201099767994309019450375047020890542318006944441242815407634058714649043088987255913206170004579575243968882339391862373013462452076080800599909156925290093927333860720630377360436243882849770803638832606147043762064091564049598695471246085362330724600336564772342275893249715637708884136941305527921862647191442198701962992747672847302140008203794379130161981823563046217814302621318180725960680180100685726541375115472051180406354196182186283031569803797390385436799374824004447431139336985152419071495644051268420359262405792571099595813975913211789984730251384108852434026880300037098672533979703894886855771547231974897473215273892755096222153476240647555055179512837631572285127357659193412895939159532384111954998925772042764905764414510349689557075909063963973549806765939083261276796675542454048202386031754494036567829800208989259953097187599920168054328177626749006803843694283775654684485951266889006463817523363375100181118624259915896265603533418027312878951766881947247963224586296333129123875000472189442176039380743570672751839218173317952564114004610342686578585258364109473373723702136350654965354114553963724152989907044035573690565057323633461292615333503553474681558885610737653435132450778050617406206775446181430108260668208562698038972448049373260049320445081508724140780324348054737273787482397265446221066775763003009538774587526426399329708921722454221444222372120542884231753533941168873050870265226788688879039075698243383190248120724626958443106191675708437408724840031349045563873671852558628626514679290920810158794555186539749458936061520014057505338286858427791425577131275623552106510280754695810581088423958917074291638763634549482878637181301445394985980695651345107634767823261133390534895945243506057244897778466605354261288040056455471275134278426486237181470821131564874133531417335479719708658519430582518371621642820590851178542837438431714843053045597492993234474144142783338418610927899359717433080802678338335356171055259021304976529842356850351973578249817740671799535400683523199391501059223509511621814610722759391907311791949238209458702679881653668329264545270456594091569146475650442691616057790775528371679389017733027999608553260508671130116467757882563204227915436156635287157725235533802642772580927531419450956919140318534533863216792091924112992649886183689750363398110390169805266912841192056167543879398108459739303530574499834595166779552622374332586968859971571688834444386664749629079217344678349610359464061463693441665981244511661851013031929828456579780367829591253933701016957527870674218114850893670533600118376480036988713312776811498593344254119430931152249640334621027475848367451009204167471504371563675155658153417090899062693299152329293758678953689818539387018859157525179171083998406439074628491689936317481471190107151908711003542112833581401103719530775409159578773006848206086316195697433469567067356272739487181506415216158754189065929494037170731981874958876324604542750172686332349912821004869504508847981321923632893388378977982552475202444871853740512312258838488000472922597883581253350515476309510808678691455285703821369770311370755476630603185354705952599072320074913842510460616700191141973003603088139712075959994585109484436713268058925260283207956064662150559971019464604353704601476630267028418236459176012292507575220121842364776569306347455407706141967317571976047110672625198654468455843444277712339918226879106318605301096032634421224337571031234390412644501936739645013083616119922092919483593516154215525196192978728947772359248710708115090238485529687420892373745016022448615766672053447223948222055340987757314780602232075560451506571434252996507200511644333544339045030082824205405748811683062915986623578639019500987332574974180748867073584215977060030835902903940277314690939542921306022945797972955147643240880529054254023429199904817918573962200083418657011376542047193298576916180259536259812052265843608878461053243957524411188167682774267621846979555824101220739633514944449284081437359788290186443775307060809668702416695788873454240912739732300927128166880025137447088562875410846478239302694667081217570404380263959857384753812314743169421314697182963977382393031895733314395882970170671146954330347125334917865058578926200280725206294663040915623088161304112587220337237087889315430940228116063820277556726913674522717856080891817755673741745551756865774997942987055517994078062718482573474113871382367403793531007775110986156459856920106211277834651555313468834388995038542920373749184096652453450828215564772526516501994634440324221840520478820781905082565654040711085672078662869686355094712576559662199965737631386305520858741751418261572516794304063381303773579574607076346605406921891966826188278379221017676943016749159663461914261680088089794209749237461177608063445907885446707809577219575567982217108674214640929439048178500702084190610232545643721919229663030265422263636190156579264528626543312989383988349958686552822686120151412520068257583779439359073578938693759332867776462227266996094367823703698081501809532253261057224996693678097138383935773301441187152237359066340989581335634810963134572053939382487055445691908904928171482168572814179148526620203103128704521374362697370234424932612759737378941193113985419562441790225227796425396168419981573001460453087090088545472698403405886134485875870287555281774762168646123820927766852740266399309358106601181025836195742977455777796092710624884888158173204228039292490135831661467987124078525154984791600217799233833062107631719267813250261303110791450250839899441403120225715422076253485950395655408143060420249767490128896626301373758132921906198038975608055001115958224491218837531993112706774341293723488524936919926184156999781809352618758099160665394237319087842249182370001871609213981319359358718981860114260645852369064857994728906075118324634341429198594264978158383619888486247116650853653404483320734607901590658059521870062794305446807186836850792844177717254971606473595757971045437533755928516464994494588822642030257876074482175994166980327885853314085899671458922423983327449477466504505411534324661328125406316428047928821806286638342672373042549779901465963550242706051151796755849664952411443348220018987076682537924375352346652098295568707560752852692799744835422890347790787169469090379126625386522992629880110772040367472544757744066480985155394361859063753097022763660283572142007573147348703011065833518948654256925692943191814542856819904780732279492225596145088997104198883791425935314072092644121503940184696617422073568883830363795267276688201431682313050139454143847810609359796259467497144245373477092649946293987450395913357581736985050799676209033468976550386586302971024218067028309020875698364735934037420521070818209296333202151678023571399650307274902545702924616306706953583931627355914786726029590710709355708802228980595107411622446982292597219425825091629134271457825186197660748731876098391751530074087999419276983328616214943425130596916534633154437127345703332109866846240345825722181914169890487297846095292812515290843386847388459878046953670180455913240610750651284142138053794794071611690823314818962459271533499387510625783996929726422282283483229502907802271431610768408114812254736412166859895099865606208697247095778135125088822746476935419544845914446702962717816887057874752159599708982625704192134802011663177465747966766715179853237436144228409479573131412107259979598191592814459971261981476357018490906669169024169690582768294805820845001111690693521367811894524364271757950827114081795458438907741886278115253357235349398559533635069410951095013417277419931998968563977014249029264606008028530356882196848840431012933418966673086008536575198513436117685057330954340999497154188520113580621531126967575224169139703080889922540106675556449171546829755363738585364353229045222638105160865871529600187317023838259285156016723228733192053849850818583658200305777346697247592205362539919465472922384641984795366655670798957351856019181397984280871701768927188575598140252542733390410823977249825456971148395964970587460133204481391396253915951029286665896868576690803318614319409361487367063315523072914997702651555189959325071853791914197353377794467465624148941061099287666667326969650565066668875785324206945404880523139894176477837333012849449833682374205057321332314410184395725124953194101429686355339250110878641739244420065598982329681571213866129848381408570130654537636482502283410362828406878082925318662310225182078087016855357391978910154604258350679346358805505545811590615619285525834290733471735121145117875908381133020324091821809455043889585783379938939757580242125990597583413645103344845896606311093112278563690304175861582743717861224679111495027056942849863448840445452844445827388955028466287361637171686698708262589366667149788950796211690906546467832972077258084840345638970060116587947006458429846648019596989715865546186040805530640294080066604003300260119864018339955763734891828823471289989053004734199988863638946121391546975663289984224660798140240959421783030742859770042361368803680379066346725565200065927645621813720243485613188175389587991851453455408805190511350395789291650816096648390975516229030118913369670350795932950686235996389515126787844939443837355919557442768481347407025916905267835880462036595375661155619493072995538644727431982433970972789552379185937176987095459278330992322305885031996609076311018284203709587177919633153717301135266305326216624913223650160195602587018955783496546466521854492817288796020001001017310401549824545213744787396175572662521093434462228387974678796776445503760245828826644551301687086524864462957305458925893943151182717862774991082684446058946790109166242876694824010929113006026518723604711976289285753525336401979529222511184215587407481482820325330186326852839850352912311136033368118118139118389097678302719249972581930546717781562201711457279044858666360615941683420278701452888497435951996315330926222535855308615891948041443327801898913844042883262634088032989001348082356799753127092259357718092463891200199255182444949269818569086236865577565595527147812439264472025975409096969519319219297514425948877130151161164081353629367850300339472288672453766560276659487489743555935989101512638190009082500406768835930198702750596790092245739796027663066040180816178088839854769097210704280427687465910290749355094418430116972668165174288109898726895868988716768039683592546040243781698720670726865307324364881659375414801503930494140499664538352874936883802306656666550671434412477740716881025632167850430478042013399016139815840211517705077311615080263797931188587213497047642426561845625109939118799894012671876305288756016919234823923000566420882780758869336598451690725809808096541572275368122389224107790421410190021486714000733285694944810935760041865290193734425912134949920131361000436224582694028367494067158734238069530243167454746286393612944509331385048657148154112474421226907305212006643584195762217126651699474733219525579253952208334580420674713204273833581023358010454957113684597515035619593288579864079496222886865550167373652802679638417907824533766988009337408695599432400115787985909287481409395137228897378341816829135738112019787324934331859967959396398279407954959829802334822948464549675622823393832973406118925263279752197063279988992851697572292959918022499577826121229903908673663910888896124011996229766392048806287208901756715896280031178898732720373483931021290619695033060281502851333755035868109573431948396287440091842027963996484013380880592109557827422333770794878763691738207540398853419932947275530539665448631140426920055918482425117283453458333380706815789647163597666577445769809948427022975423204351125707652308433683292096438468808541556620553976917675442561241902917259050829010695321174954946900897854131333834373095587412478966042427952972239456457805576796050718199456552981574322854226550894560071318746842535640897867257544823729189533811724822181409932819074522670771302999733360476016106491590771282863359917821430869344243445965972606414744972427628358818247637291735822374558050433138881180721585557015357901841908302996896228084104794312091074603262806545388126215729761612200116237496369842123443783775816414881505300615037555184878586298392330080544588175747531859963277018920866526813552764391050800000603739836874515147884490852993900849154988923284861969762061837856278504813999589528832095304508537154378806552628504962763098231001315044265836180128934658755096385339495668513826710789006422420189370216584447825765145063471212550508901531290336762008671307179622408143867301447059633790621350696156461903748814915395048227750179900063447232888485859936572110292882031570727791759852266032437702135488809832074220518315651479573894276917190370451765862390656240955540637688172631979172362063390178316583261643188117296954823744358484182162336578867615904331418358545486777127156156992075005498812205954551380016610462698071086404229239666562986958153198960628732123527169373566540834657308889665618115378184613628996360883858682888801556266679607005100165522996918322193000859926519662925201034270514948852922845431900930233474405400872839864106446239078986698567756344396572874524264925047170079145952047012843145130803486903125980551216446309695446994935988340275805723078525179131599445679389780809091828955683944319975822540652308243732552757825721773467288336526131383753626958105684455786146757106872913542439691730826564754080810377922039821261554113445318932298052337503182708288365844625171124262829841668010695521105329401395523142565447902480506679029090128881351899941205814301418588543482435969701326857087074109261636578546489482810527946768090403096658399756280696062447011726032325829163138941112499554407287116568897200880244135682776681893756391522792189119365469955904397199726581031645753900393837528715447087612674395608700163554647445891776578238133236651118020251349956489907668159273128985031982016471971982165956917771039819347886856683140950064548866806480559329636512858098296716857484612289498684804494634546746522168901045929997966262434838044519067752538358193851752562241843622958802446214163790230262224025075884525726679135165331453601270154696030115976556904779037560531562250343572813571230880106254791163928846417230228558986008566662058698932665706618463350299021786169190113624464592539716592204553142112081435377458920189267680344485006514196518733498376109453884565319871930164476935144853648314349502150530525237469009609580767797043886290293069417690194688383579142871992736242933805549053964803739647063148601553103342846703739099332087473941235305387254376940950931655323420909174812071424132046362515904974846713963631891265723587773760298683949505082722353942659279338172677628247590115521297246711359903593637148527252902010027742286712635996195895248050438700732865884046768996475638346143809956638305238011420473080106194980618645097739755507752744796837916815379510986357343338589260310461415587968070899820890208867313072544974828362275024713770132936696123474508063642764281862536398181437263788141939983704527979594040560982247083973878363589462247877119795059557859735475254631328692977747361869569296189787138260520588302705707122018166436739007870537614816909859850639273200024479485500031179182121070447074243365930418351732726475736544494120485449403962662742903513028431292537282109577655304805525050120085597060952466914828754164369430106312564345319211377399901970124666237893724331280578319073701447073761030243470673356809254992343307918778799482183237726309022748478247078833747764064831203953767006978362565132743420238730286107949426867636064452630076326842885610769576826819399888621856890188002243147891184037097936565739207198949850845736843531375173299756290901758846394959081967791536778419530795796001458070652956627009183588945723398012609645083827680366252882673375177791218520267087657737215697891831603850888315199714721367056002145992585403632192161480721175044934637422231179163145381470921565782514598060873901281129261124840973513353773866705736760897103789679288748502715847676067698620281605509129034162656110088281242472061469980532178957814823613222150594303111089896840030551297851561960278517472760967553401721342772810463027900315760124349065181031990834453300100966915509906272934664895593358782341518130996316865903252174363240782925749732500919623450390242984414565522628089940463014732661372791222657635691762506101162960110410045478233112548090038203699673042715025200313166512870145784460838647239714075584937764617838186703438439790777893467035696501428104295216257759905807910401345456404578213409644630320095421702970550418867227950411809070835706226680656351001852186176694211312207171624405959778225286961232396756609366564011850310640559147253599653924528627752044686338356145954995360805433406573631469690984023057509840824593378743781189399589594908536737046521320664710440036932044715028064317875470764278104547795400242677994281661251497136601522379698104166153461552664248744376735647295582058769129689430081885205194805510844310160756770705976206268623933647879471652147992873753258437489731446571771688664704292501571513508948487950154792377215567716636237243774360856916109004261938650499623419705880552758431745373992253703489577813402569802396445699616261257674215782890493794902455077271803891260051727478024717043998025513457034496172552050799114909367148337693834957917467271108253595433355233297880982387770465633630524718362923399006027933419273683922213265613037780034155210690276601504587540820261192854100454564155998627652885027328528122116110728529560550137005006735321056212020853124170919237934180041558059774121477407384799729516066362100295872919038657533245091657689016219129096321264288913201750167024911647797643872358931945564311954809470505493978120374898631534356818782994513597890979196600425060038229468689308681219053343319386029036024336393860270066558283808794080575818006859778533104215352808774286359054218608451385347838649964645071830878342606061861286764234277808469903363635044816176938771311453830284354722162505050117784563542748874447747726698155331450642194888749289237202239148474484706024745328163300087148484759630332881037300984492152192210793884576045520493306147040239309367161711579059452101648022377540590618881310121384047730631070584834245635636082269974896099538875858453936903510134070482977545947852732581885724004000799437807624028646362686461101169681650313705055386032037264902659370403318406744073560059489433267142385233996802697230366134118192009895389820149714762028471571434975502528505559603496029104540725173565192189712112119129058506187698719363237288279599800634371547198338517750487649168058954807384379426340871646021999144984294436009353217394517383875523655025285639357367935167058001395078549789646109469728839116312696388424758912828306356653683497482492202070419656602975162493374994606088326039193959780952832514683036002094037978250136037731902100761330448955102047434178614084628329548391919243237634914656163299254726017503778684271287379311351991041505650295473843737824380328094611503386936248699245861183623378349508915482322370244031460044565120545856599719418323320487915975743769903316770717492825364989523030088012754299751465121004754940255805680073955883326821520171093235948885707828139916700452892809334961390871743647209245791866612148514812405573867042115881920821430149266864889507556940971703156333428907235070973083059225746342006652788347485369642439092932876783866368008105716881608627779883717043700279949096360791510524731208186672453085399510918461634049291377623816618023520981332909426899113039097902220539883604424495170725886461188577494539658926624868163245779583209477472524689185275194676999267571074317242077788917003500576412317048972437125812349624037334694834498907462190189474802519673925396230619186993390895242531435698256379269762100868723999351488452731184442459284947978423185823400330375146769441137151267284832257205941717455603429782316504489633674584513685681343683998392434806775733724928556917741707085096882931143694582763062149934018366362450359360074778141769653020159854594440524828571194199204183219878328598001261401209209707485402014201550042820907633176303921953249957254592679753804727218772346607191133103104500585109770167586838672481174280429767612530236275804457388559279842907957257303257035902165491871365328086131656052656980174361834593971225160707070169015362793163295101907407643771042502685239326642958096472292406452113646737194577084040171578478022203654073666757836444068482337742157312659401010281250996085451117594054607518571979668642705140605271069316557552848058239690279997393838397155911947180997150388990740276108854812248116373992414676388899331472154817028751945468467605819317715238917241892410382377388019849593239505384470879958093561545770014017795797761375382561662952362479618192139265740079389318803725353241436972633096940232503160029167665675066153970085426157192936118974712159850849878953033333407350385621050814661994599483396965083399915427389693490335230141203330749858007145224077324791286389972898520295220344903195063374381471322499160420661317569470533199447818790276278601992911736185378837926213305534062547924697799530680399957118343078294698470024713746862016814603540998128843467625799340689677573973139249398259947507618707906143345701641603842527030300706383837830802335166755022224220533164293844258292501176809945790111422025000864819524208227923546678209591330934877176376308574416755013170559145885578394662071401653980301732967019036633692677270402950365160186472854885000497394148528865552859465585460055713480524415303289614431439568471037594750555753549718379550722806536443732371876109748224410411241915908726767905321581087432971362361996360261334468208003608312439923276781243284425193731643093763460257850399174864026335066416909397451462364995584635660061418024609937200170643802598629943560103648007664444927064760265361649986647485003725916919767006182844525854088138691381329190176342473998897639695963435642358291897272676069960828956001854898554644593271036107701845294689332001107919121396324305836055779549268595272581841348120506017641686763152345130622929293459606817159208973654752998677879776231969895011757996222119284781382516227775000648756966651114859837545597024290258699200136116961124546287518197667243053716577851843761227327766974051452902602747171733000687334289069618069365827419283093956416893259706545905779761637905385159080062031599634685354591707610827964277574376316328540299204942630573363036982829194016950906905144605690034490908008401209829140261495193219390520265077721267575433072204461568597116352119248981659862122850187824168037357772161699538360358611974950593507905672863646263880868819890711275715219147653330826524465804643690523636864924275533011962802085662880199609919718408059270627747729098581221243222130027621744269735541945802366339155158114403065204317735729360459620016145322652137799921366335888115992773179098191454334618383515397123490367615138935216183000791843205860870089783899393745786995449730027042283479866953791424139363527870840397472760340222090865452554294363907675113810698369927541568065879011018221616823611362822034329977779914445686712875878684108691924708151044287481645978341610790353984196866388507309123149789060196139067760376084154171078117995456302833351517307100793485636522290234232772983564337845736178420373437726309739425122145233754851728531956257275368181041127750525035806344506954419387858232626628788060244190124938442735656666945963737495393213405359186533872772646419829336429180526812726746177217707348131434842226186155128545080639084178180833742116599359360715732111158612538304360453246777530574936314099203433628224399247470401415624223114044125775641981947596405384758286414113962566138740369261621636483121484721335206169851124430099434074203969263238219460837532009335783886718282465949502590444214568809586866082298048113100399300212530012860276906007938097139730934978277584846851423995542321792044407137893981377512411657267093294063551819037787344207277579167781346266105925815375559046350926750160534610289876901419226787310869266550500447019474049178534700596247905228554807808841406424923599029495960166745370239086751529320002075076427702389392133664813501523922443231933601637189584129898646632505331739719351581576235739662963353568611845837402391840834632444497309398606261931552112502645170335023121036202200404351877119901268583126011484500981331010836524638183390425079695046617277284510184530659863442065469864890399208344436925850195398313873850189721440763792254851955274090049376384718161306989392340876553550788381182918744441012203714378225036553593470636078002058270092872315669140688304984620616921362992013377704100837021952711396134783267849884594090311855447103564690118657874869398401974288438139111350090952549854418977574019267749947439273985882736140108206831253480217706285199286773420761506598175253334386919533938214462618552659485870269551462812727048742597693443292691877319851254233942196158051685197811192711726654543036960243135644273876960487027526000543346990460406438295700717844183059492241813586721307694502395239789740877980468360068971348809891826874648088176542806325202176123944556373296082613101319893949089612201819894728514649212369223239141546563357239178562010235488161873596850092789381109856425577202390873715499387430063550080186736172153857155482498217249563193796443109210888654827209380466043654956620763374035189857838647417263134964300760431807249707628933661172058337662995971460263105060813938415285507639542532285930256174088091792233112975519626922177965734153514173835974371856682897787122833226310753677280238573375943903595509449123528170642284298474901560848241577769018338382513101167190433324772264801850745295238735721731166963680354569542045821559356320361785028460045313193360271917369871445924769101324654685356576232639745711638918132771732488776786645182287247699302766613939493196985254256344491504814502773441466843691810668330374256916157816053664516203388416103958196186130430319711839950533498054945037369819803418896173966966696046203446690601744802051936457200090190667570924813466074562508147160295177116966568803016505175573318190068790463596076791290003997002366601576127456859821716089050848988330953959096887879726659075788993612259400897335382076737602031550715020556230969623447299757816422341170695349936691913425146594910809222092689914137497277741368334212118879098692727782735105028461879518453632010517274163182729860291936740725885926892113242061122456006647078546008808210963557540022479870175977012877899033764415614455290272921432522252384299123132222047567881243183606024472127757023048633551339199017858307216897145556527552296306968280318143004971476893101075233073767414618731295432811150097161124681853544999892825089453609296159633030171076399298967242827774717629343879218022178193231389491948280680034548655126053189584627392479191368743341247181101104128217781732686242647953759134163496953851740725988688284954460594413838720196856896841137048480750750048074716863799666767990678483204987788475017757531877373190248705464518576528301299273953349769247949387520558334148094224138399673371183456533952219864890477304419104674734492092671766112212787721647723038801197306203064840599874813698279056670846902286640494999066285156004008649637316008274246829342958449005238233821792059790662474707715713598606361194963648084862996387928938519283378082011620594869874572701037150232898126535232030155414752605745557395826373546119431359804789418025200819149700824187460457046959155250475576862425629608194905735767207147561603481457083193402922724513617238342886692832457191713798313417238446842371882645663003923401317035667195651249618517600980463615260634671050432757832631403577142068624537126019433056799057743598457646853340454770802675561222356915504267158891880607719714154761675328837777527126182354283763032981788990560492348794208834879920239308506614224985025223138663470458546235770162476353211165482147964435100499831715545406321675738589962505489731018599875432472805889452003137044394157941242062581366596169553635268801443825252832998520077416810070297219333850533781877704637464473912893660072174795951762249017129234348050648969054912409962873823045388972503283154055359405055730739432939198299158465422812523408900576044450770475660273668389738588518663026792395551027025396294549352172530898558418902252456815975495360932438106421596431071139646107312698183352632342544067049843891334531538906868027728589833318758161800068337098661760993099008814611383063925058047040022375589967159227366672236052471285973692943206152016805211310331058981757022966474035414674459582740890704684832395048993782890100176699960104952011858650730036567092037867574017349299895015387191058018109741110825102929151942085889367032237616884705142694565759445111528799106148466521978045467207206514137431020227875485006895239767089238992066531596662142177241546559409202417017068018657226956013241988524250524433502302308381400634333649521238419584696384169895925100012916258690150382236166905832972643169986109662130089690541463613030463195476253811295695705454278590601699075496192045130339531699356644863498768738811532856050516964927723010830860322965135969225899058524211197594114508269354361812050769470089449054034251073334826615722681987405729760193724043019573061407387261350215887019353850659565286193259648948294652787110124807459397785294169608276374034709616660033474706771883653517473421022854855113573934530687142733294928202442404795028584642678798394632548479284460568540799600535974375988466184189928018844367943587657612878236466103144815179752525979437765021206274710900746375414871545683423798085773726615922996936605423125443512281735125982361002511929567022971826674245288115547523417023651478295896660367923245580454704474395824040144477030303232402062592299133425174429573252476250165445043297372019739449618756682485117046557947716989332254233311707870721548379034050855048723739188202534398053604798141266144908516991704083910796108489635561324576477214745049580283120689934024197032086977709168233352148410979267035492700061485620765429731836761135954874049725778633863998558354275657347273230191743312940732983648884413037293727790509873985703323167201689627492949884980770155433133967798166352302135118198419524349087898190114856586206749840029576305363408235769083018191742216479948476001631492381684009275020078195768149415409353950591562730497498932139834357489756856090835180434728370368779722220398720994630567955952156844575220868333344665010505974023479273255510027016816557755407994856586743135614269170896858706233782892882004137892437446227722041146341871076407872960255406422251035178986755857975517862549141515331827092598844414308060784517767269647243003560581375687874713795554529152226117531718539268121901878943693747975405610413156909344271210461653523825957132674076740812812117965968231912244536087254068924812529000042926766339847285895217193794473960824931947563556254151868548870896096014679630620075485429166207111484494304971377106082610071735369381623353516372612586320293499640430852343578861752372751341811289375481991078919573235457113837805753201328011099323458471985904265671142596753572660457422807588466074866692276629297400094055313793491805867475851730068511377904713758439483288380085282155065849322299928127535433294971548838367504241642056691225182272754779466720939023923140305032261437457561820250239787430717400905246340861020194291597672327046906113608453626913334714838646514449009697713909905536898487408451677375857967130596386618995482450390865122270668750732056404630964324109890561646396556039714364218848601012090225706834080538301308426413825072200053630163753483983701136583389173230598245293835184116813415027050981442329537875660513382416310233037119434992071819474492484652366303212064906238591906728393275464594387508031086168084994931178122273023416124689774980937861886965387939191819180925601845971853809443313565460022588238571982429645708855574573045940553070497631471107817926571046766572480424594420874265385112905026027178912454985406060145952556520581523446478374605622099148340550846226175690875277435534578055658942180332245001404113455164700897812688703567311464867478963960021895580482608805222090173397554917239580591203718226133134145874300137973943876333575664264538791559195024423952715053978301684997129186966753612134768583039099543134969062571195439902642350414977869288730004908983463380994644756979076340081206011178189002533888000680473958519772268381129539907842319392764726174896312581735831393935903066919196899054469493001417854625760513591549531517321857045260225800985016536140594759370271599085105400874224368464343795365979990192991471315789170996909273794763939249159288748684687070263542072848853729095139551836356854978868433769837863838883364969397118477588668444697693125025756612966305081566469462154353645222544264902896356166979760638719856110885548168348193978011951183159566154906377765973290826832770953117059483853842547730651963884832747993860283651519853930252606804782085306082536830588277542089322416287213215454187060821463318007920341216244599963031046569848360019599542747791432027408474791328384144504017270256628817005147978834306660097992235477132271237820901441323613535302223357655095022422188750430783358014567010825572730917150525656251426869105251247211554159204507977672623767015558197815668758579572950693576156462156217073918490409736408519618134451210345685404115482154171323241365216533480337991981132005665010931074295459032390544478782722897784966533912690307373740700172755085061101853233953560278648496205701300469908910661755449042811272198059260840054673922929378765341493785223265024124085268314441233614303449909771770730838836368042764255861297816163539356923453287457327115797790885904330583588183445249055852053677086459878791757495154541015803430308940256244455712293384128380288606742566650673944390735412135711433773551829374082407703901279896710224038903896432861490151610389110635589280889726860260769329895463235088368547063047317327153626313886388328733607446961153226964965909745158633972122858912000970899313188643127011833206632223459656426799256786608578740469156722625837771439449435491295973825026123444109403194310550897241255126118686954694517869543170687378565230906484833622389238835845148356784468043793442784529625746164794903067206501831622857706810003707544568619489150260030077606940445691254053301149937748791602153823297459624463549253759769824017249678699107986661245015714013164289194804011256299430200634113133574578573399449661188852291829951237153660738368924272085639528172395010640518556873665107787469265497473321657738915447369451169707454494443641900529911577088575441995171492617968258825584014329486417474811329957365506016320974794638976736478325737642951694054386368835727876098924034317857694846720323129168546451108868974938526055288132350925131523768780612072193131765721967620884945038797646078971877756221035463077402097916713659108441295207959771832952258729308894976870917104589747330349495991052628706523653922281437130003102585205627026243918098220172118070422766192663473184020934564488011316818627375774100515209232797873664377090689979017160275620834118750037355082974101246893565447886966224737525558476569316642200282710818433016424078732089988228037891322250209095036251948352201347054527224686185971938545641137042421374373994835924056369034835303943375296159038994482730950437603425917826296649872314154901919365607074128788510122840802987169357083456505473139034623529360012614029869640885771616386447592277250859006106633784057075178524657982145339957106247047223245214724797221963758052433087929372814493393381848014967416710330127239731505153226158531296783453975983689084468888976803688742434936739664175060002239340328711863636143989500779914556873870819499399273088071153562956695901966332380407601742360490422944384046868955397831536201102468899442062600826055968671217496829467783880427143560978951650795972959973290974714422367053884912033844559156256316519668850666692176320588839799971668155159391051434381112804977162394407298310299497650768459076767163238133914268305693268172322717598671396741070198622104704382104577088367886911026869147020170384658650538899348894918251223985956675212219063186323649048748242495659133594525980662542702621914502022176181124139027098087462734594307987873856776516493343649913943865824153962256668566088793076891148661679016614512445281593114826191845548064082409073988920878300422942270213053184767632797513526091648739624444369940490588995082451775187582382630938105381065166559024062840117613910800284724657006964621610486705017707583412857403644680119856597096572338521868585526194921072085876088339700462896607109258031353336648489110633018346383538972951444802671140490069075871971492075680626601924351300778003128375093715163560771781304008063075877294217035277454781570966947850608256809256422617019744602349018019110177233068812730518408467058067546494767976007874467282840188988866962259085335128168456173006234071585574294387603881198154717706914072895417731965458014477404048370072709674885552080311212413903293504460070903318752054865284295748734921796893221143706649430495852040779897542657289261796479888954773367066658350504757669422214068859435767683627077485307639949205895763793715669667253016115025910638420841305797822077312846869935338409633740341487964319183023234121110233650269815495317056511165631667123658239516954918001410208894459336768664695790193196391320841529882441280790844051363665291225864888669932345084615008951629343929513536899707486375731369996373585466206147936415883490951394397167059748208409141833995435928656302037470161357898968104274724433766167694673591780662939801841008162294387869062873626168258543139972677507974979600223811150107498409458844530927204551443613095614790918916860136218496933963558663717164815283972471685849023549010832682805702437251418897712356406195007725630971497791823022971556841075735467733942702569577370509089498953831548345752060580062599723287009069538191321405491366947266427945893421294049688323831524289582979059023710805785582677950181380947064140556146448637369837539840119655470524737364960172571025346885938729823792364331276670688857255107405887862871873556484876996546777821064774385552127563594915247944722720337464035787295752599347073790800678747978532234084064759880597705639297373255342018387083257210587683330709440089243655687587085562829288598505489569221384609836811947732092498604040106621223956457099800625062390876300084462957749514453113357206205670798685808010051640018766115372520688466640052337358864205069749550262951986938497117814728045035258448468192378355311684778653835766223588792352186149755242888439195140471853317006042247123608402794571437838273580896884210472218286938259573116330273145037581756765588583770103440782653002147582089091815545324096038403422722717286031356436444202105431173498464921889276041324932502690447807195861447984404463593165297553667208976578475416039805391819089637967080088820804087107467660557964638454741465023340074379300073243556667020014508207703532750429927435279370057260782754286352294804201086815912719310394403177991247063785139807520122024037602545343367610207068739176570672366339383930192630842887226519135950298046446173658685635495403800640051087929186646395640862812389683508127181236705986364938146194723801100036047455697896284146462024753793682496988585107260050904549108803855752156998674965839095626491586821615653013594062286515003933685740719187625294460182750369431503573764779334678913040379609539370595901591738927358909780103440480898052329221179235682302537364279280386277906683304167310463373367712808583642971449737813245851774029433529491657601936875398351550884382563452747665275006746767299376157389614999838228972276401248357721883408503621996121051242629512175921159316393562347124073611865239802072249942922873154580352074825696095870144705943442467196678922042395336711358966756569896229424379390020212903931013662956751181743928594088303085203319415598233649973133880651286141909861938974725140604343166401334617867601476383009581255709463358510975887571037318171203396984177927711412249232997839774988567443957961970462695920177913111769589273511328778484909061491983212388539544518614372656239641734477617490049814106651239836215651996266399044520971142201889707798104480147908404768180445806529263846732350017896205106172487813295100746341679799333672895140753299629558411901238556202462800662332594710905766320977186240157658250388353253858928092352796369986538392313434725157652736297279861107707354654106776503341605127451237688002567104181267749277782312847745415858053234851161785847055627042209290604062438973329104864748520529177265784780858871087566469289094939361639157822009360437508488623636730902733181152362207736955620820089741097795990914246516423495677325038380455893455370827480258996860126505606957807351514614680497288697567027831280079607442958653914304490756294436656798026792972938842600533176745483517559423962396952955082720447881533393697020741771643644688825336584408626502514073739424053367475903999393931760151758432985445533040331885596237361251324627874046048331631841419746148125105060905764668774278517893225662858225570173378423040090049046951508560353016015990276390241490458701965251652713058191710106618379806557002556396380886503446191464931302210418429638512877627368716619271299854007295843753565927452364791584258161434216608175021308791442094794790042732681324792980011942769407593502485929712781528956298083206062077284714754775775484095790467411212526707516664447215283996527780112559237636030703965645154029112376335540811945452180498070783204946511369771736182895330185764097248603360979810250954462218455279785476234557129482056220347160519292437892819858874934845539091921246586350927293508127652612698380515971428443357181944420534572563442658527843867535249497136838704761609557204178111190665359249231610670375593933402260226226840987930365712666639754965327368643469809223268566499824761587570999342227068297760419214045515089920460067965410568181279558890082446682700465276024525270099680086973509934708418010773311849855355629296088189006200104085702290692518545216855922198319257935928422802700984718645923878164888882040636426343821367194997557622576883518084226578796647948457101931057656719009934794784814607501122986312012768819153816294118519980333532946493029696918074944819336426383303546237608009526346055087804832741151863267154823416839835754788312291695178453634597656602086350468053225582373560729841389968459660407730309941234745847818102053299496769779730149581444923799456850776328357053621672048499236479931870482987458136206524518433591693009062002361981939392585170078335218924409352151234517298906915574964801684021834518937623860143725395606297694451735409270482865270537015207469857265602312138084760632513345741552134919160286117140724870901122787046308287960345592810925503561228867340753195609062509071897787046933886774294845759051301988055345206995999788899504408752961223220802419464862696478907925704515281164609389253085770900037862351547409170922553389579680532958209875672644595888363132083735132208936189000060388620832508252976215100143063526626150188102360776681741956813495344180005592695556892264406016772060960365615462583244934948158832945333430819571150492270249446046521114563388386149411797147005121203067096162226163956797340335994693608862934797755748057861767585044067836162344269415096255356877180558107795929251932660824071384940220184761141726305147226602711852945960680011003953034227213984317418157659064942648944126824050694055919732004564411691237879886017165907211164868754948515246146848915429084588931084453779478654657193989423646826598796672107206223040278580270686445430323735859733196499125161193138934974573532729255520402214938948671612652567205118860596857558124332343811233979980269715503247179979229704416952290394102670212300511943609373341850554761268344137308024716332924213996696062569938584103632429260440834782569945266995455962824555372226550931194081554032290724544884613264026040022501340449466920788748131221325709983395841252417206401196522106558932518635649909071556430274954897717311225328437842034834708704959410883703298206721836087041330888659433381927977119292078314125191941933135615493222739679653618848936763344434143697452654708102264246065113788755694353463912218887059585344260122678374003535692624664026866682726641690780320962487996391502565712035797913565203747992027368131455757767276092129303003637583467317393951947307138836096744560867467673591036761573367794150469499713686370991018800371849338451165280587554896825506528503259055629186702340270138658968423583375519337806600888814246885342350079550488304158402910061165499257364552948546560185649980200960578421804625457992724430220286200897443191746955988094671288854621497382157715404687611602197710858828340477969288664252162748747511506643024372834943268061763053247132384637277546286863027063186158021788074482746212142733598539903716977203516999230937902238867710593278761447365428504810473198476911509307319951629750503249579675323404451095113342235599911826199348089910095028275130459599659943332386965232206963234257296322797465407704432465012338222648709200792562914081174269516254253986890908510610813453457755094663534734002351722465107200287431049726124217817614634851234596642287996905134967198023983524564655151236705184970014037459113267703599654942305238051311464441215806807558733842260791932920141930833060226902203064685682954226458399909415182983156885396300058315560921754898083655520780779495937811269390446604515743409417575805175983615092674401944022664039195190585121229308774687977523096200711239417829066152039105743852976075183095031299571049796138236110514081545776725006142309073696717981975325244019322388227420811968777888274318815146369050328370808296030666240783786596883730104982870868605510984290122834109239427548275351156175361734347301425050033267383078297084884126258063676483213962485281167298199523306362952324447106181134007004935672126880249215203835250081731895802528714965735401777805769975123431848382996706074940162418207259341398158003588055817698631971924451676245058256862200449701029051935915819656928032573345850395011954330743613616088576920380807675854484888476735380857176307963171588810987434352558429787877467167852388600747635059022611875692330902753446600679089072376442169406553871396622914057437851959431525446615283069388064567949297266970644387937404056627481957417678877563119439707997516864745909265706574147784694442743837133975507222839152247124688401742845640414773643295097575929484285551427139813183441634915138597665699872982279733394386678260607064743741038734935285725858624700025942229513784514973830284367622217740097235839985186523068117606474827099267805495037183659602854260676153123454755675406127474048722583933087228302922072811625678707177986700772224109829596166818247807117732183557962878545268172576600984495876193960284481241505555657773435806890368233082930353316753314355368189359692372723904846433026580330913595504097332507301343736066116977287742080649066359395709877149848946917512506525312293194764859853413287609007063976947695779616747819569925023972475806841172817478230641463736579838368715397411650502840262940910959527149983083240839898287556781772684323899997407809568302155813488133283938774681752469737021014857415964971573207233030817157138975580515080836828145775787276639111469100169667954716406153521533010721047055177266819482174763231561494289214710957850755814471501784264882828630914165876287375797871135151637357574749204767045796933327617104817692401264589151380723325746227802066636958352675613271638850833150659794212751436377742606254525476504048129838097795264022115050436167994144320376968448491656809679244194907566541638673565131892483413106318355371105973699754163832617790535926794189879373090122210831425217924938812749287482730102154109203629668760196843687800258695406163044211561937351616998350449526379920744572177088793837310307635993872813592290795494655744078859516605282929325988858363095458639794189220688421981580834206985715934347828462500761083148644722197745043088060093091702382494928532012266938747782683359876105902535845635369773571854489567941950082682680105666072722312890561532108256402972467963520897247609239049982017073773834897123748071631885558423901282418836903769537052934386829557715339893289382579630647988204421260848712445945850611163156986977231718162392326661853354782929862742840440505048496504325117129869936684703871063826908790320033987605603501005195561086869799357834394706871363156068942873568338428936452005516498189418979890368066672866162832463290663980947400184213257514851066948149981336368691745654094393106869580131382674790557373662919674276599322926645490581795625120435195690987005005305320111475724502910701006645122352694216742007156581930625180383584643909903179207016463913280519706326639537899628710674156849981865677720147790347723538372723454937506273492018855993968266057880647216628810171749243201457820200146441408801496712984962700609659397670824207025089867819341936107798719124595994317135652754141760230146245956897603426537624736063920100710481928395263640911731355063752182231321297761886509097434099918235596825358870957949523955577135482608454991385995798327640202455865177918097429563644015291388648150681210817238478405035538931527071424005071060633974548104215580203524496142038992274320672464786364187864332634262668242690965130275974260594688495620449441380973160495207176312625412634329976570740795538284485935503610132130708227982297086866541805709476617278436153171458735887727065354999103583633521295182528216011396986655991251681829894263183355128484891713594576303109940513096110737605627381025852412837189992198278285390739867343329068752271783390061991190100433198693445573703178712787683310035512806983587042801612984592625581283070426376991985605886259998567044846016732505479940561694555652829952337265084596287634977042230071390440564652173363334113949869439477357573009999822746663469351060786225539315883599288215991922891105971790249616239561199415512597919608581821924004797398550416110690437811743531840414220459521860969729095516022301256759937802670084589779321297508597613646884679118303275966268913850616272573827570509068055770575438072994046254881287197533850093623292784240363423126463257315307365250627877571319779151608727302763171190173263444507768308861784271717509500118681588389023084151315627759205802458588260477843706427354449692310171404225222666213417390715577670323789098788989701748113302850597802477369472190960122064594740053268096107433020446988510129146038561388700298042142239359541040444916160662409155342463888788425907355933248209081153180500932510113990879412531979098863019011709485888059931287217736969732897790189757837240836767599201518973921298549943096235222945050480745497912395622893651578254435310885973279581912407193706405443972698674905736820364332413064404758094126502535364743860307981054830550816804535014448236811808173586542179421515723943597656276247612469637189625188782706791441755757736768444909704104380196718807618979260377406324078362091329826060188749667477727810337905471840292132938630149318420767259449878936540685169597232325320842463817953054357960378746763876620274553721126028422713922344623556492680946997616512468941369132761133482975520989819461037144729640097943792584655877410338749072583860213926151317047027004147005066092793032889722405071664071696639396690825068881664721681640187078767280095384561281749139499134365896914781651420420119440258297771019895374873589453004062164559767615530589120933170030892963628303016937794512773756424479368155426010061434160425125182629268448982233160987289627950667677848720615628391432872048265976055306037704955736225228884598504143573968891038455399721905747816597589261278167254635677175975402876157070944217379494154022745178935138283913607776353226782162722409124042738721646174729388879759895802322611462847526430948519972469070010012898492061045653685682980364583167783234357022315587388499161261776658531859602845941388139773944253137969513258996379246120286315402408272927016137619416679767297640902936540387950386685917480541650840075178197443948621904003815132340538137217002021346304826663469907001236549915965983945535813918698903788336636746249574204622538924973844057172930515697313129267721269645905345942759770852976022739387130846858688730321891470380699645370570111082127511917087020781376272688964174474983836481064721285108574559981890007681103433375225829613297113963948736037922877933272606507021884967831393045253386594974385200538970372274898813544882542170451209641431083193380418359500917903279184197867432730843843582132900241390932852449747947326708760054184236912398170361356408383423053036916432635187395568053832142589477936202240612165599922217018179864942421714442000830471935925494213685361237923194455692797262130036002451852710309975176251944045369801775148787235237327247174739250198612669042310322176408272896820214904936816528679791217053917929196759417373068666577125071116047701326020270568422323596325790929144881671894283769806419836306296451220313086020677114600357227137479333600491754126907240256251371583326930907431493293542654693682343408464194583200814701228051464509356698009018490262624861278734789519790012525500107708153216497001924819119180509217682648994077309673391670775118246437747234706011954630837095930414244836961040859763942489484445611425550602971381332340488471935755730728201766224332750660406175280987902678894942359614123481300169826939261532285551927125024818678481919185435874896973237231266980153649932135714633823000869807184475638575965383693887883521547357367022456640743009492840021548224400300089383429163049036920019506163089779787325087584283260635159158849281041600492294055905885852990037573767232063626372105220656403060992484278506707462559377138438574127801336637728090765736221789035311885175388984439806191221466003040544202478994287691288797714680669108860860073624320094040390078264368582648827833747351537992772048952308626588779633689648780074811034013107963831560511291528911266801422617624478937770278423280527302852758033042223261253531393116022423121028357592483512531307681562155430617780711033572693989811878788585896491274484208678370775349936143508364290992793338441085715960333718848355829239933313955106513330668004922074133344710680352083533906169321710878387568172018621994185773706979332095543903362550642465878520513243741593043825387855064529470305296412142128742110109167238033990534000600121506900497659716675372550051386212952249294350804475992172840784412952697122283938672674285023815726151189669835788909210026364969501823306014384437591521884901618446892740011377552974454995878897976418847817676599669584223417801377152441079170907001596895062624128870706107599885200374718557556309270401096488128086071338257530951419317187084975691722487602723831131525066696506006955746570417848260928025297328869517204702388367367799063872594478440239757926127071446819155261281383616979201546182315226906801494794777973127844161405032678630588375419197737381156822290869080083740178459352191425942131037265878926432499086886018417414755723354026473003559970179234620495282068074925962098365788817393692478652026668563210767542093564589225148307744090705352672798271285596960524495011073224583856793452239038815006034049094349658773892349172925366525962873261233953945751359566341316946175682372009028842310843933299152000658902681772788740054807735297584289983255341901559580497497162018285744830977351164836690503486049180751961053625530448594694252522491773261776544479793974866757784454918070321363246120996440405854513072037061694283285487400947295999072139689641519766743009646964313574420002571408738561205623955657503242754406071629574648792000727472936865514514105479968905080060351509753949501197960524272974694471590296496486600923884693161637772647370223329990130322135213030845443722793239942899897194554729535805938091428144025025431143338406908634467024191376950045018861375276889501952113171583084558749490764744757523329898259224642328855031152194874861938097240495555731603302927455368672682587148197808684925076868516262163006217709872255195557182425148936932773745592874596985166734561102090806064055326549689946582674546109938959847406326958007713909417357681864809252098093026796579822628245302534311964007483024446583253594386334046417932846661465294828785600330936032208094793643792410811590481076850308070307734190710053710994007372492417659391708485449475281122340683731082354883359313722958603968385247286424211627250328920767766377191440102209637326233272313114764859222122899489719682571172208371182462823143237069839500425025267514096914720771656264338831711731860088810244823048396378430099602316674047525410134971398764586570123117677190745988803706575085658285697468646413798757300929618695785523662397072389609205184671897314050232909613329083930447588315599321137912889836148793967416497020926907691221281959531929277367411502059995590771171994362197520209079997107286437518860868408228834477022917942241747048214082898638542422088371492437912441033040089779366569027224850786358896619838035521947870279691173878050604867907560728409978870193526744143179641786204375998233402167790785289017807825345270322145646109063829442985555837096563779670107679124117480412810292942581575227984909542036818453630224886011672802555119631257699716498947151368942893735063186197058870616220547827260960128440097937695439577314924568007977072287138399336805614151154127670367136915192692438099682356833780138225395216738617346692726269601514216049776222262176883739673238387505123357498122204400577689853936567898999064979965719177048702759362814991215289411419231025271841380396428815645326168152743816105574784214552290468421931035228177268531146497512696875315277015826236021672915812182656783633981273312955167741530188094705208574101201346717924619560445135288301037699446134273504989185651077043985204337393338517521937455530538652738184117426214547800528844667949224016188502125120543051057420554977139256079867460213190254959404722049002374313610960587312793715115376098132059564593409762453787415939485885604628378057443232094451711587949407938615791693230474310579579793520252992897931405101977588730580581777728464691503437359331447490016988627483072870453632021287816856745899603875963595265300160084844501495847779940860148732676531379298141832500230046878314322663593398619231149777286931473868586499624487694983807293105257889747948063874322134893446801410367214149074481400830942197991966918714556881053620810118777881348500640441386837470882218231832409246895884321088671515057120334618810570255036160592006502449957733296425553361379722986180406797586708910475813945174347882850780263120382079453751249265957301613352468777600207824690304480810155347624702603526288600256640843942796295389865389339964996600011247005719121629514461612859329703099609672041035216987782780211173024699149733527389179291687673727427972815190616578396907782066713343569943811153108525943552169061556406466245434518750607048267233675106913368643424092757267195249315279113420056875294553364531043455821228730105068896483953958357946435776587285531609682652058690500596178020628972757640364284553538415118121298581905562066548469738180371591533437623665143960615234007323617175832097691426341947175972486486046996793324032730507121174755619797181443368972128196379369655668938124554239669984195806900141228665117226076083912725536110653149527782333993763948837461059969847678682699575597138083925302135575163888767728446883811667691630699859991713255136631730934488432081935788235684348174049349243078327743681951361570829072282269272037889048389500765941930302908694355726796275288666574700004965104510499637133374743794408389686964598306996989854890427090904998730360845903014027399046796357424889957725473762026128822462274862640386244099144698955673124935941809809367591605391603389361978032922872079408787763277988992063111838129094098643665089727385359863641007743783201678352541334699297520977648382122867212183184089610329699301900074366400448170542138719917708137860885185132580019026597280493101802974784540443585844243697183918465573206574089055182175839060018895302215182654295278819275927772373455194588021608907146446745177581054882521502811112639688125974484691672758220597958997827643621523849331625378986910487754402485542568927476945216957638830879013797534948050576386393741195244228204603451298222098634731075875214606167206441069623530986439483113195191018929427495899893722022807231525004504255315745027881150239864317412688262041352007775270931039547551646784157650239264288447480974321706131322352232038223837321652011002667645441774838182909001740548497756347330943105309318338614375447980009422775820735396308920638055238388104043302518388324531703735615902689262567065729515586498334072182375139019625396645305866983706370134027209713927848593855852282639471955147735239624144588543428523006542952993172101375231145329693749653188410003715573851025703903606671718120308964989323423897310626805988823913303618657585444429628036012929162018738297931069153300759838209389040893547196219773471413021290612051385971594153632027744610899984549771269546849976364077763709721916621225005411901060861377523266611243029816465288534226949301556513976679626581322077186804405589452693146249775918262541520167164626375540938829613849737344494646884978672210361139107834364222681863197013425038143518830760488266170088371297328527328952470412327842338030228773435109050501611153321340186649049674975271257010373436196591815149573224367853531148694229482163398835993708717163125087812153994989342152497763531977755853949652013331596468888224500328788689083240911257744811867208555884228512144615234521481267709578207520199234431402447698825667531140791059919650441240520272861011766455798278093270269002262689514022576546780078284066199985024090849198634564633193261712914213701740046146760052107432327529499648600300285518307643215953090338132543014794086895587294756417651702594077500193136069312354786830583742243583641645440669612290294348813629396141262880340822186759124006175480817408441307395152030477379722391164371441354937525765426403001256927271311835702522292704484202076403134009050092916483855603245599011144684236056116547637675048370726597156396302609931786428782647950211335311158760961433777163365812540991623217353209858378813643742211009203940822084737690628209814937706987565297941036278633980198397945540619414589726764036998388297122850341336526233569035865150810359618754616608431227495747645088686120413262279820072455214689402525904843486070869032363952112064562391887196071357616928902391629841200442061057730408378135269777578769749556085512975373955208062234971535154584387648247459881335175081562908272171060658376051945324891675112925316543292391951300249726605072580259902133026748080182240719492811969336536713528668684129920865781976102028596996481020004143072300389378904068424757440476750547352263485757810474026882031552481496600609410506287964619020891596725773077356488671440226918971730328174420221902290939331836624109249241752646299002220794862212188879141451897898886491022457340124839984780763406914471569892244102355551864446137340123100249466966464265495393362295826414886605954473451268760837914777607544347655246102180294208513906674447419775011375931413828034460125354663883391350946921100224561381166799207783853740001773372566333450893138401532717409431277843851206469028342369614787238749778875795684294268844443584581734104485544686493906494931459555998542346948466840218786566024952563171090486657163829636729407791550625032070263587268221928785239958240777972102479354853290103368788044813559215987723248090188567067830470568924019909178006922659897592360844918713732109891159863451814696424356588351300743159682491037311966577336042351205504773879955465567083021170605948223064837123279406909291460200384363637519375340259204013998249139127677625547645693502380104609037548329247367855388756713609722144318291207992740487184659914369717672541183535966692050735064369186658905437531834163794300336949900823934446715210519599956942909304379780681889655663426304131477403968550717608062206918333734793605061494171419303193269608144823260365791574204007678285286503828715424751183708487085440714202763871993100797015597598975326040580624534279171879367279345319900221868777327068242138407715955053903179912426705194530651323283978930365215234270147593296651763596768225346136506266067038843358757249429176895766217704262909686604391582848503083902918064797326865823359329357547565901290956432641449715012636898586584986934187304040053388385710374751540351047656904812057022948235357322551308065334501789240856937012075791500706893111306693345846067078926429787842010462567652083799163248601042961889879920981316585902582895411687654717187626109358755134921782942819466841199193235321456660297306591837109448627039538699345908218441437767159871728152957428244055742629651309660748267184519495819700708487025248320794704408779124727804411165713779296264509431133069163558778424971798675225646757602231738683815745456198874808398826928043208985992636862501513745025415518909311320314087612994501270772829735309303016441939416469466109649726872632511993759287004950094451016993236745332157916844396600914003390339338600393528539114864882172639267808087782411606160842419609856241339813379907523156331865645781331808922956848408080118194052078190381495203489391201049743844763797449090075437047119590932725051608992304096654140286572198738945908462205029882807117481790055832104718896072744222239862111637911111345490810719863812122702655843982726682037209904505021120345358704043849909802216701914538145352323975309668451115895478142990407791096046381634268966051392947515465046450588417422457695720684991583909299141265898386579212054823101468717613485429949399295183055568343337938086241232027604140129514320195335999971942880862914514803719334655591956103744673473015638921260717334211803795869370471427468668014180954773154122847315062487037655553180597369492843727386785942940699001167523763112805605304427300603331401613712614790792670196281246629916157524997194322483658947795798100874191259000871758750164690074212922464282606769208711659546026210234808815702822624554287631063544660988303696016553158950462844208812177391520794020647033847195622775590530753976335247351193956571597721590411381157774640890905757821568166767207938900955382041880442327792539446955697276536607155132362053672285581522962526750000412766665945958497107566284031393906814119718518547815828423600727446050315574628893754624606950242812335008710219507812193683493253366398035229409782626125973857014852029253428168844592368364004718919536731438959310828229365351934148955316368125599058825914171530738992037933238596908369769157486002945646866889681045092841977001898684453394838867156744533246033072096841753805607610403551961186256557564919305604469819691974820834390191864514073659220705132482998125642762740737633185991708097142757165330675969787975172246313047339513094069951085034389797378574591195561251642473710519543916286056234629182574526583540605035571207516103392219936539128076922219689181901786984545971661916482388879551926457290685563333835151030772790702040273292139913517180852857835726285010165743721321769989982264244194121051597142204723817409744844150399569801271873702581163688815545408308547851159274572254822434302305197407985273941226651711951675750410177418401149102626790712322895597531201216042954607839502887595076854657582212923430959063640771525351611569061410580030108815966508849225225246777812087049596819725514076984936965121421466781446643978716630296128244887133363855205949437798291934513568468058976974438141264357797634787209719186550312007838745184937139036224130265455916042001232304647076583728013819410608882848639385017662530608251878286341963977617732827356981868193949201638174270701856088235203203211879772732343968881506870793511029029473800092489076035288558723203621726739204729740902080524539231497046632652930652095140692176082120336296400378286129203039575811712815019818538890222410625181103563529133586680645949001986676014605566473946978077416304784946544911710200784161344257132765673881866174355652540816870156079036621604912115905647471775190204334542074648291900569974456315415538064041891302698871336074109088416805298676516425838660923639567006526277627649865521400427655710580302001546733436949002587735789938739364021958080274627080865808634867788527732777914594260890167145107755211994232403014574861287669297477567425829900525558726280825907216144775396681307332189285418626680454529698232279718046820163301916870008676310727589770850712444487998786618244096822671299740351811490257272544263023314944954514542550964844536482152085267008695982555101294445960603261013946374183316721528800186795572670628552270216834848185739341333779516955162085207765848759023573385983745326413529487388946664037608763061340962694359757153917566711211501781850506897644197973363956239686184566823352517765562206023648993336931410120818393892261962036492459125017546471317048599493141302516055899359541907490742262297539001003253594456285011633112958294514521270145533717014707279209489627352640947726734007462591223738585167088362634447792337430034526248779311227222552694034609523426333314061862977983750512769915785418795332267523706500394551932852295999966040146062637756154041785227398420063067409354165245119994670931912797203301316243531953149493120976583841320573706413175980507617562447015344318904846176467823998954520478656531299900013119286446221771257852663824867699123177043140906062627166575844823755069894070626780143932081535969837458251870800081859689232830148836673474506441107298609107569757097808415866750892760459442453664707099111603852819232585765365796047575711422215374170032165737221606098007905644271836808300960868683865690575798845908113270018049880945230561110060463307254414272091982946503614615367087308633878476178889434053884493971676289662217026114495711424351915548498249346629103258320566790537596043226991482193139758223728780048891051234494312289897202738267743411091537686211773953073397649431142205877545516592698496047037262296208711932407104930992565632719812103692866214073314818296608487843341886813736313927998511551241115873214615315209485348691127264684175353545944446500009109183045380514685073259829336095565283173793970823192451049623617721734264078472648458709866526129631589981948976529698038228231377843454660166321454868833209050997475772621463699482310735828410813595467535882600539790860231404154060292800502239168568148176805393105437846201249225980581750176102945008972805647331038379875496932466919732470105709868546986702307908599408545988209401265711451942402728950303825566026383565202846818060246011930771697571021529057805739431658656155699254245975358032339436318265106335724463604838863220533890360698029826385948291066813699836589732153018452481098795974492349330034053601797070544626618688205097477774842346580087445102851942338284374859396435687944625697558596974007097222248785805748320123839619227278820394028546237703605329612044379402705956381312056919585763734551698629486445035307453162946875776326317411612450973402409231777633227510039839756224332787852987653193277171559950885626928173541631538577753921048518788099334412968256677527377907630952036898716071128466413869401021297061187659112393433914798873748891253493685343256872777768372863543564704286414699072406982226264417358891397137103025412696704480463108839507308967030347117156678141380166446950459307366027676345203213350019114900376650908673219610117380606727443558250427090071482456787091654124219804346408213800954490175534679229988418624797299033462176157428202151315537032665759634856547994876772162640577020303058719207039946113436380122328185037127958848775002497685732627474211908153694344819845806951989158850795840226239266457207099272153208221050367342876599458732432847387262478041423103657187422175409890328581945696847168818314180939471769323502999472573023146450863562203446785703327754412362518273636655403132987937506229423434407361852016034515193591378632711158631219199173136192211829584395921809493817088423399926364141503849491855316432059431780839313435837419845564906240592605439253769399382902240646836783055307577330242154316224571540134400217054650907590986260561115592279905945984928753517006974122201240762626105440586444665404323595874884836894542841651622292653150078003096755264157092847700027485473267385336091937723070495389666016891397269830649684631744519223924801240752544691770519194929525242389152602356305595922529782969956093994979526934586575157603585234174945836450776808016370359387660752441876441744118191736234820068683358151657765072515657611539978053328713272121851913508104644211368879578112314845064684523816151857096126176400474217229081903053743123844449722259245003340910153628252728897788237976797699334645452484983713420276826028303534996382223321477889563971733507690361197397739790801679578723368325164568904000350810859512074880672174996257573311073818582938726563392631718531764415906198242968803187240862364685262994802246401733084547120810786362421608121028321964960212689134756445527446049419236009115304878256996465480013196759358654282801037441018064641761929289416998003383057429837433685942886014179584583629977477244529615558910664588951253583193001429768006308061077060042251412997614261686268995368388505843986352675910237082555948413544915431368821018971498924927325195639709014690637048690279548792579865148964770944524527830162458428950930505017073201937540480324005003831256905257611619185671278795964285049667863524205977509784400645417567520739149291114355102083556339542071100350237770544452177526557628747783436821102195732492601672609038613520216585018389272436922999921872280136182464123279453848739711487878104965015794855887039777699798405860266464301761974391488425437638790371138222613511853367491364364658506865994175523381572606149437670408853612238443948525898661831105654190448002960441040937723927303858865544434739095199178734545871345856841604589889627993245189192866838919723648004304345791136552401480234415157902763568395000928525481607827431698755427735955022997584208971997983938399471390271098112541311005243382061428442135291917883773376712341375082402550114169480049969114664405553855154496966586861704030713379982733101221817978909220795791414137694871735758918945653261009242174868460727248435915620521052794713348857213617104015134463951309912960564214469964120374725054728224094045392698818420382362070757334001855935258565097761631741416481034132197262724360992795056356729141188885297033013534574356816653991308595937494891537782447782810711200706356127056636041744677778734340608187673163577711485495177411196807417444777306793278228002537637205321736644555578230078461585188657612259012722140455707027123197196299363047176934421349091359956146825693549461091945215984056973895581176211244202891957730225772397313021700609661798355301458732224826918756508913195147305276395563900694539737386574176669514983060940629244727122023155131585632624705956486545864651584958764619857853287376981443225628773266916246000572611688349909877874483672801653655939526422888965477776533853231857890108725003874614365704509138853749414843596813120010599173075746229000688410287223331920956516440678171598823197875404617592248918682347692013792303060473055215159421605677596423112001729701008418745826465969120953604984077901292380962149642489351966724732474366847285744837563234227666918787847812641386788596808416278552128032997152733992466367523374413475538405503060597427779302786233952353696251246279569109801996109923685828470595999895453796503433569418240350328944261320637503352016920161629148623937177072696298545216413641339750522794460050725879605784114245360641644153756425818037331205837806169198326050090354463682719589549012565727591970732115711421165700316022530200858602786572650088289498143669563050912028148807495611350531668773186539539714501645327662828721042051421428640089392100996181197744075379999247048258215845490317277647656874079545959031694670102494020128533597052877277378251242235909800850013458174118638322809359076584828451519380922202005235869676600976570175433778084394461605066436594089227503252547470271880769478883010542231432865509983778638882433800513105176360121481609485172501095127280803639551794250238400769576965009884447691045254550651423261410640034929397031814159834939404327992008347795319031035002527912876408166006160511428893660719219454675760325743049066711457261643630581345335007950253232966957744015165696201336208715647353761382231458624688223544663539819762922068304245989812032316863976428960836970863921987920981144619482855419491474500373435719293780429172143626305883666629065180686979128996018217828061761542486386148695477020960405386331460386321070284563356041714553419986839905104123553421903890203221776039054658442683247141258246543780379431626499189983448452301434788802542606940292369705621719548174260108836795000493906442639470532482801465110668166569156719997535776429838206844164269206414885254039717563424704191819351141499786986963713236280687013300469779451411002806083197617306342402362814466607832463324177566711556039702945922855470040224314834086384545992928343852228710970853424915757400415908837763229688533360498880740602954307475125952246529739938538703880434315653566472878884307585383988421986609316519640669128658918919058152457408390796160558635756702430366222577413624420981947374797493427756518440325937260771613301619700035927897889896844610523676467663055965460745625825091850430381509384979007144964704174376752820165798319602626296233729640723981768266817236899197229912895283347298545522278279142524729304711322639063459151966431001774591692875298429791725154424789862366092458324575234330385004441909445553465642996086681665023510735021003123186094993951827119878790580297819424347412267419260668443346103788831566603169709598585061139633483969539754288768726257702315471534689976189446994004472829660969591953938324527104096312292079589389034315114940338534748350237606122723543331130844770790732187307931433773492835206897459136364019034818056961482582739983538436328954299710950540103220089491916218638821919237328511195020370456172271468044590793330210786775645237581386254766552149197708785620773898804361177954542580911430391617257337966693730798683601247346696027334674896396587243233946347866835741104884951940763115334527536102468302766201765869206771706969038670755772142031670194831340839071161465206260699427260720600672822937958945361484682966901174887514917129336167524471847350792237534157042792362696537025185777898144163444432409732819220418005491903822200900719734199874148895111354170256182842728857957059712612099814681748406119306084141855787226589216516132540791234332039020494123585106405390207996045120338700685441139511457583485261174250760180786009602340191449959474429170979135698989000249872575016216983122147414054006418061615768092592166232393027147249539670318353575057937039921358438596624871109583641557555802849820212417259198082270768919785843931219100823788350560601153210422944670962107596289495028417486023858362363327509715857135290379373096961990592310326103927375968352319797055706629766623997159091811138700692174390191312992158790261409935526113791146946805582855692225664530239511656324461863800943051023777276543725604024758917127217562881393869320251922978234813486223055992297849908528942776289807710925339628855397507541373205033447950917757296335616745443798386036902097141107880546630188964996779836959595450763783170939359393017208410142576164393189118516233198156508423577313920987285099332948387107875789212071445548523850233684136451449989230561496841444464839544173033380900575178962260414920758503990581091490130003235845180907185871030802590146306863488765811814082005417667397542749457699943774519444208557661126246124342754152376116430786390010089168251568441033707623929933040676478311219628323000479493231500420314536142349598199142141348518269978619610115995040038173696656737887778282557408131110796503650346750245401726950277261335881131478333882680316013229155091868289856120944329679528217945859368414079660067002985417186236410667898603968483101353088943151217578031852548618532471677857235605505258993940967503557328703706798839714824031140080425376871706895451871866370677755517899836598869478628940558424192585493615539955974728498719557449609096732492956263197320638908591601468759886563000477623821264304924611344074992684070128817950850671167339536547808061154013658197799255820428404667847644856082969069850691656919922138662950931828978995392226471248025756413845610556410177746542265177403046050743035013244239086610620760764943282397574570305479139062440191012056502642954338083595863294925244757715903308651753554814114341015683481967027158457017379342838008350183545479879037891410889697245535373298564868667530588725109864358532385208642815564638373604386717638921498140199358507840063449116643843829816335948948060348776342443133823390868427630819341323304585894939833278183201742985238230251426448463230403644428070556924958804732609759864963610137406162323768061562419814223639708741629581451289105436649809787251638771332753651991061673573101720633903808697165165627637214538143535285952819705846048358563555882018019039084871783656628507192888687580169187941621664116925079656419066725459080330780599572910751664941806731148936084259005786902338661932716584465538272105420631351711482316848031152012764004420332776101421136395887775124215509789235644966911425379255725548688920446716319119156028985545833907248499327472304367586239404849050103971496886059835235333385588465662472805183767352733221806053973848021522747652611148856338092004235911731171672288744030916951133094470182001916151321897704955178519479550287308546927678447379389874220722142919181507561542771764519153717012949067985857659693598980134095187065086585337954400843307748876421326594259629974949733548648869273874909007466930977112304558195559831117480623177341669208712456468839160220862847012216022285690006150781566784819196871416392546451152188889985063889542013046278848004595175397863111362032128376619874440340532415104055946502088203397548034952125796747726968886726974997218578919192783144701081198579139829857754197752970826504625219670694714005754023967150798856755400047069316501416681044062988471949877055720675851632207203103360725511224761524570338160615741303474614338965203079328599012157488031099577189151067692237585288563257130461879168419148392159680398154400775294819216069428279735080225116878664742732081711720513302173841510848874850263526837681712724744320190857861389620356261831118558861695340386120673123421104793885902779210774600068011811536642119299788727365602870282753589096653290882580964749668938375018168822059517274132037026075063274354557452610845625544690363903321929905408748911677926657983346056541660411484875781636580379363872560781631323966009204691147992589598841178158281538262580016516943229532259610538095819639831011874201368357334292577757172953023714490158480741707403617330177012025502117250131665540505251389603097945590923734497277032525299824472371396964600822785442350660534732229320551424819040444816599987613724056364131345658117310174573414851578777404069238083407825152048320815941890691890764743635708786481997813921573967982989922104902261956518245152534874259891591663199133646372431166049911384878669179658614793522106291132940262315998725487303780667074445106676189553465689567607570827006402935049010514310528601395544138913801719894661602749250721957115161813403603747027055976904279836140327801651010818271491115489234519167497552140252216676294216034672653799924150825689301869986931462963802710953989178048767020777211825118353708572067534066596949740353691204289498892641917381175559939858407789771346484287231000823164821903569908906730967689922077450738849273289765322851541939843553497616381550613446263256861074036869962663027006879937251068415610417266911030530976235030313220185569141633144696817166495131989091481277191272508854180651281187377933264152157456208388460654426072235338167667842945859350040486229937340993376525893930816279217952803195320944292117224960890035228617130497030154515426124224016645788984189822467695068874877840357243166291333232084898614071508017811988762843556503249645989821399324811624490972114506021189302141798407727120621651706308299794335102751489393477598165001199307241801721815824812730547260462967533649503295862956923844296001332158481474915619534189537070699934570654782227790891513288225351002856940331257783355266158764777827963992455360865871880821270500761667425153774552300427209063224424979291609761827698779974169007509640122652307155413619295275357990712085974325640002497131930616828389111668802299946905880196034367812415361401905562081178464556411286638496254386061320021316840001938048962353275985120300979232695508371604826943493535018326287635392104370327825447595309192913102932957266134653369765117157450599374974741583516390286025762067276863851185396070169986122905673273987784074839690863964766259387836075433177696152672591383296462966478999857319025732455811928107651289084005249930672198552868726390647791175731623196766274773262545862435070102685416211037531071683968100852204063090474410238422734423064594557045225468550455487005128380881432767576069275948755616104120723222880829447121815401873777820391238353013481921582588943261459919711629550869153361125316400542165893138207289904877924110816424434668658180005863223192859936188856538504572769513789665852051321672020161777317215576127329205260875094589412407636186230878223374374093677554883757614393237931527749968901773062834521727184052552383913517905642008477677887805881114531167227529396400593982069767680301192210831326124383123557722308691918201840004895653724947900046410243139730094872303162906749308447928869222972560686229730325892757048224820781889857052237478771943103083515534557155373778009083069956173825119170733241025289750588263789446277384805700607133338859524018335972941179204037983836353121684785015678470101931155350262435795709346034770271990827864584504873306246974166226731917316379809893399937393233313485966888829897500741371290647570565186973701658459432406860824953067752250541438248360512803139803999974357604606140164169443276079832334539408512276039802503666475897596581806045133008148857052858637403261643459130198875294795294674595042384523590654593867377229715394338343392696185592802642208946886115680134864851995715756018036234044247113113700576905478210804266757581743069813362214569378269179740003470736013466986258249140267411124413373462869251218397238261148821116791865558594788975538686178788928313379750390425155233846963157544694067424223961641140579948574991304538138351561814511166284046432510541047479790188957604504298533665022720558924641192348717226503520454691934794280548572349239335892419428399898135949630658656358831672065802943168089895752073329090881642682952557651769043089793183448292691556689670970371051265038941307897188419979538552338213222877800464066477267328548382853065033109769387606787380923614630407596591436848906023604876703738562293949069586924399899724303608120448261439023535286858614876794121496604333558981254555364300645761093433829371797482338250165828313761971041128837193321211132920568792699581232705454868291696646229216228463478421111058441612753217130342518034629395532854681262187093731996534395697377648602734708720151407074712531891108496806359814946758241652738133358597118411320954533375233373342974952781632906412660472285321034376612864275284801904430747466398210184725194590618837677739739773003499413173670271137868331814937938087887503024988469846468683273873629434391689411138572929934266140779945529945150464633250761365875546782312715829978838905922219639886651815185203481300577680925022254159882102554840474600244300378847123458776419678765478641343524084305279873819607549216172645542828516982655479991108328487666872176405534980975513141129935982571011858671538360098980888476374467915492705972135496330108885241230298297671131734883855300025902970378938911284903670436667262888496709743361561760461317083073423406644835514760182199401289492139935538815076064042719943458599021272729037272336886015451897503759186673238498020745216385465564959785062038587868978939008323401484143204701918098366388238329114035818984285939481388793148889946745384395303861792746321348768918954036386130403819621302247428435722423676894010902057621053812314727607583497074543640555094690407351209325210182697467486843949878188693457638579633225219450489001174605536627409082174546326915874972015909706223163148913272794655810641324858877022947888861191031204687461134739986623710184257280978382923263573249143932285512102009798701041110519650206969862041578608161277502167511957511696249025486326587830917804338189767801210739993515903942865373829389242753906372580369401128008819527846685304379686297587424521285370336979851876399636215775767087978747325647526952470911151666828176956831364755191785618797851703245143499555798243802604023965176305812377385373535767427352821115318659583901444537036558319511154356848704235517920202150615932023160344541813525150105913325293106351839375905607314559973335960275284019021071389178551246374790218608614195103189343120449043586042064502830017254533405400045640105647579083078168964807985392674670628027269301772317959072248365509944692922129824754842043234374007072058775441936867901711723774590596720170078032706872590008232986456198178389590382445973840978129873276720859932752463211625237162659895348739967737169836380403363283405910871725529632543389311090465760350394608024824427934101650067993758655689942994201373997172761195912036092454407216655032084704898676648982412844058904030651182536943847668992315582944457654706062281386847551429556084397518866436999326867188587083005669125020135560553069739168189995506465374841757147853110661037886255244688724176352624147386866838110742792603687407828647824461229157955891146408300086718341285213816204665578131833167210011084798557052573048000395187359796139564927682550164112453845957463852711302131022475556624789830734764086648057445141298703269805101737358899491142719510484836925579279538266324244044274938274358483341127306875391884547829041118754224832209954376233170193077186453928298279788699690808363903615335587178386771630191405268139441148758967956683001622430954875812080547975424898229547382016993919556453481552586536737257779514054623686587712198481221527778745150533064915712609083961430589025780964738178900548199850118225168853958085125561052798592587822954453151770617444861501104866833664839332247821829645706615402276916557508620788989150771405336244982816167951189056325972073314050887064957292286155443435371197462065754618852329499283880089444973447940200105733859765852314197129688731210170521395165986413133476739541674128898479109467861606431883688655294060442813599898438199276703057853819135281429602761378602994153198295624744524816060007715048719654626676135397260306718184232103019523830816396993599878963978052625464365239466044340761692776293455980417862952401838171760326786649122524905377609834163605477558454578797334806343652906853144597049360716691720932849665306843379555130602658768776592252650304495890623325621520437265928361507076174526381642200147275664210995951570232582113368483487869141587240565473851514039823735270596374595546279391934096592072424232246821271361508428328487920774100630000160511410978010363021708608379700978515269492925912664462602150934087872784011523750222525006266906743156110797765922818873015209645785460435982025653021963552713903795388775519166988107119210748336145866265927298862355620636618409698810761775804250427012464429425188813968691502240457998685093577727020815231179358550411458663747401952377917714759006909926663956386808006773733818709467529011978266623342349428236406630759560604756574706958754629619055114721671032764747143404055422212080709451543626275127428089600874349227932363246706200327328141156410937261076581400639582946043470781756041519625511319396087832665468191484162601921349404228869408863856057572506755470022650694039896575688002095610992501198722842041335302628875885863481125304748280291307239217221738069892778499256726425590156169092768353852720199052690361124208443381330856269184116114180212309223024555037123938087390121050698942664375902681366707622033605508977137146966271899845658001098182777500631218000621917590682997176601203229646739731535327424143374012301009637277024699051688786967558482833963916118369159073275086179773873956786299570105357817721708889016172126758592581521076079037773582005624577060181034962229408216101286951452065943969405818739039563915336435578079991391777125275075346234707624155866539632890226632671561868080587555044073749816446713617226241323515661857064521715585895338078903059296807252961235414888264153873501925289958493722608230826797086669871604337028705983106752589183742194321605213678262236872813604167498919689999644326055440798807410971413900459283002060312918275116484339371517227865659697253881288217435043787592959237920309085831312975694993019617770689277748359930455661311914262001744544608225892482347753973898651949437078701668325121526695479103289180247761238890305480671410093691886270137228273545821937144328795383273464094771889800255151431940298081217387550128711972786229808319658848815979759246319090494019894783626371612998342313901512578151030841396361958351428249487721451088063715800830096475065494496274485979600206648828548997945679822368072761695869454339698007027471712975297856385833552602440026474395024224824339970178606348757004550699638952703753131887274125220469701001035951167346399327716773658241566394700670617963347487137421019214850913887287260340778190988955710960719646115507255457464403159011837243562515307138804499639633914449858025676480316948538549719784473662407833359206908705922394514579757846113983194108027342692498096676525013947420120623694327672166055424777776238950567411648503542825830280636249876176794140400523717179308549921989599065442780495522163894833296570285181763640658424522587266311438756679304928992273606460682537861696357915580096275178558520580137235513110521444115003181133279017624846183626728648043149879057006191213683969012126053912608101863363189932550405590721045654046834739243706300007410216438004236457560858222056733786219098738309896928500178921378574593843703985658510196376047169785975712944465045674219503536442583413786192613327934108492296614509437457574326335456756319122814331993518628213334914875312136626063445821365197247422007910093247036709785086613131175959462378401210247434394690295123230207901508805369602228573231199122257049287487769029901452900862176217163508003894782905311933638727136977025071862789006007222147417119911386011745358257061248467555045818063730271677283787619760111293019762918815920300323880953810632399639721988638232271396049684574133416758736230770632459561538702582381509021200647867383391932527546632485883220905082964301380717431103244752198410531922862578921915968969639228661160451150032318468639704105336424124078350197085026971612152494393490353021241687953091444286708516335159953717494573716822797348270424542939523530240830160874216806571465459799598556981733901138285298160975468319694953123874870938308913312378027164002469033347840334936565146094878168473742653491184607699757267245930607499886176343459588320961244265009369758471778523913143130589485611317666707330713965243473785138359042713022194483840491830882451212587399154937555294796641835404527343348047200462104152888335739004082659339528239829490985073832130866606481001549740710160112440594629819972154013979200336119736495682371293995011672292334433158675334454908126258609297094500454134272670539050089368117982192130467720531671238134847465926450337861455262347418461475135177967510383306514803671482354069637772955921790836516162390975877837597782864012184573125222750330522091676723791509102337044085270656612232615366133526677781555252091740179084307664479075790144705339842874747509327393228214175281202475275525317753373120000126474990114038696443856478007592970319758115146663538032292844035857443272150179047450740529356796832945429011920160498113075633150673977132615217113941728588250744063666759313553983223288561914439576882853891381109048740994321374344868358141467391748094039532877088532507001598129556018151414515834351532149700260572120363985475969227628830057176837271858635070169255852015678831615210823649969037539703478583909266132649832520639993591018153360404512840123313865307001259010338183041891378768553994272540758476900921215904180476955666587460465978826538373740271556609598311923571177355298692691494401942556813426646522019958974831466060610405019192701927254656351872528796844971093982663699076733180940551947124123019718973777478003378366904895128984893448399310683062584966176978143809664686247694471424213455134474707452496347556321137662938039107146184978727441362672947015021542519847900887887912436014948823704029428682840492547275332688629061210091364881301017098555847149160587950463981565014616059386594451552171825444958943208481588147158415659281136634806892271561359613312268311650264629345847305539186140028443872437153123497457129109479516373953692205814260475294579907472964292657819845022669398961022913551913747482587716204920945252749894524394493777165022209769703986599488742326176302687340908876534733432500117575703151895150477744846632938640282531782373758580392131681180551195647886110019175077898493873281024005648554050565569575658703832124976202806951028558441742137081928532371678063093771021383759839117492925564744042645051910926463625813401266607049277849004838425702819188272581486370809961381059827682846588337115824155581805309881904966027780853481362477643380303768267557803102064419250876223644136323386616069666137556415605652316844750275938053242711401974941987821071963196228612216121247760480841369233106111781257413980465776340214160218617039970917405437680775708173259187829899795074118739365167270251528033784721256094816955664019599409062782170336309104180491240277704659798683632356271681587567808487099148688312929655204846341972745308175239545571257366877844360233189564512023133619168306617921882986941333479326493963578229290002034413984091017756769914575824116954561176156509007879039569587273399320323371637927337290641381906471545465046529138247885941588350286184794305248856127044899101798987070621441843635232288337167216320284039712457050045223748471050429970046750465679955432747096561060510262374104580987089881659227970501851667601765030425028751644107999571318677205413241860014783062999111489605581716291163394892445254422663745208993139826943241574483764561106021467742139949716804008103770073061995564344739442786880205532155538863745239323308468376429874150956912911596512541726872504878459113608962466889100399427517458106018394686577913795904407240147054580157768254292465965302896811345515315953472663615883768876224298452693525684993352766724616794034538298006495165119462665025847994594255529227801440211029256832548723649440527283139390996575347431045551223115036415789567442859957890262423109172465108326888665385119685537471316523748687555791720599370793841603228711085896632998639756236337158148515209674747372575166028326667778515850305125576273678066463882587400856469945951041185679981418015415203916061931433270494117420003775970178656643753458993413460845186787803493666816034672366066904713972934161739036087393515352656522671688488340610468110481918791910249234650066951115267398322104389945503237335235419480204483893344689915149238950805059474989633280369799811539172045949242756991405226987645360825691346537710844670671799086959676859811255510695916028184598408485885814665117739890563371936149420037862877543189289607055837813516438920384560627988108106169265239846414537857985777786005700358371978588587518849388609012737403494076263905781338186838568968845958801814691886831756538568154210428806666464574677443369333912185307215255479376056203898851838818041493457157477332995295325967508600169106317361983252967764047438052448121326595549322066929076082382507599495842383104008533411248249402462771464232235044407187355373761265999855151979776482440405021704051589876228972401791554457631465223256802170946012722742566133614600144503834040084937839564671945476646378902310178956617976928176342525573448359783358358248254712370975206151041133303417700297589780405137712386526717674784884271402267065108845559376658043196599009241960408737581538745796148546157391807000226669978551806022798909205224245867476551416753973979694493029283855369521567343038221835275488502244677386512419051101088056742246216147204946876100878076999281522506358050500374567561075917874051495855717420346064895067026432467856416267985135459922835024836966321007174889445677478417813799831142325910171111840242132971326388620110838612115894203576142129411403511743550335720562354291298835322744460630462294883189220980325092594568658114141263914352560384961104660183022748298054702776072763883283019111375626161598827630895263321249844512604603642126452492275554324366473785292911397165747404972226861508642628575898493405254965396288926779053630232044905028606616423110193386012933710597648730883431518314228176409315689525789537266308851250880988758441614349115794608844462846015304023837775825890607652704478658803180294761191342545252366695131720346412995364854347366502206641976876417927762543241230709952451017946006551936053958755727121634567529019480044506151596942021028870182794140157952717217104742458719434644739804566853150641258266404006389908062393461320522744841195438928385246698900612630954346093787528747852863888880762116716116004123684314003411538450224498089647859842752061574888597790614750684458956806868820964215310663785639366181665678208919148752700744804295910379079069858902929803845570490560506003195138302511106730987605940851119743653594421599912253582633510219199178348088022677721773197992224053074961222010214819207084727108476781799536813005906541220439755397383492622482958137984841263329175572407612210665082669731916851854104588389415775889041018783537226079297815164342046804185014705453703082878707329849494965919222768227513336330603357328205939595135620694720206062919177314614518248795231684367656217094823532578443810217551051105952931391232479263710728335384532298343496414135578215954406561675213414968554275445718805779703375839608430898897713448152725682885705036352806962025590249060451323941657000148654258641401888903664550821758128353626868769886859706077555187608291419782379840538772806507688102717492465480940321771128460574490508381301745093400127720446264830799175543839773757773716708643149807695041411376633765718561293882184223578982919533444010167514478552349924824329370081782207376631791828178670669217985120636983008165060484933275401999439193508959102672876524666787808855283426824305561175516079814245967828808363388036062322396173906915460347017241125476041690131530571530719459162188390455287927575772682410440893135505468983531360175721628624896829123545846609862585174679257062960793432862284180254981794979887708011456148155844360236378634653070091952364305774374282832686648663254480158732312267231314800952658716020842933043303133421775338748597906426017616975525393196058710727290533362553195041700611944244566373665234151234645280948406650279713463672648665389683658715554700875872749750498315278128540391887107193787356200482895434219758984491889763267934902842932217694835667857530776901611340829952254640671757532465614426836111004399189023402404376131763857126693083900825337640976081337523223097999921910926158567353567288368435042099605892216770632686308930987319922627321405691102728746353837321130913714134714790849122824252691882793452824553851919510726195719595463268871843380132016045600748123820211335185263473847126239682537836172231476870639931952756424223912616386084197416090672475820212706576401450084874263026046235436891100241125826896329008750711407244881163072200023749519681057693895656674988941880939845486757932862283191493102911748264429639053847919166538944506829454106652019270232414477233785994971082582764848195742869010849822155409583366974783891575078125935321709913087651779548842462536319627292324578224424841907778702744487109557524139714132535997676518189305685186596009625234252005528143439520537562717132984170920069919713548905955173375706481778602281575453038535482880337291794081087611570340166493265221513553574725273884518948659911943598642809549882210022982566369927502391116292329705099401594656471799743751261155179155594846333316804285175227440329999876212283118596895026126295606608354558946599127301102863495947882597248455700882060707854764409785866854655246954508899458913274661892687584453812927555241410937996333519239945690100573618458212289137976528646953681888676343382150804636000773855859668121880501600393960541283299567471783804184831817839908600103804965325068998547383393350383838020410296477106130243323618853727723033902327309196807162381183888616055729835770579928973124660755367958530106679384343063916114182636815363104391193204021714543534281958767245951177444206706102799678770222073229750584109281916565488327679053105814150731750153240673759782810401517508823011328792019964054053704842641523061763842133982376712712911598690727520868817381196995871889691858356902221138480107448336264262011250046929581131427875346680001273780543864918401427592359347955015442270561302614110905378351783785083512522041905612627378614212594469238058725888650871342946025439500252870298535269081502143927092792575267516222299752302856516494228679852078469453596977999291890621164997838523757626749231377741719936290558753261818314054726696156195414951382628064232051730539872622245525626067688386057107176093324974562816202001434620281199493253320513313001840111400264685701459847816177398994766437240322471787213697873681772201746828367194879807858615286389782713076238555653890601622499726518054719380829015564280832804783142957427435013057744408532874763295640732519063713420533925129908317827816662283135581532746855389863405044816731067453268676567864286786741771567742965591852789693494722215825165508540790130430575974557293619735831495530759539990664529917767414194595448032359923531666274331072246040192958549200821095559582855789491199509646173276201262342092646469858475254528481424473627868059691270126299706660398332815277231393048182897685084352658745169977197243694336314469315349106916759456554627652705584590306075684028988515136227494090706356716807468893753171146433240279874581607752590402297915123003740013779995991712530375191060734714056294688660905230308875459384487881114628530974806025325711640087492660456449201827785374832970610737527790166544411938266305184702527928642992333186714273310774023027481433334469686739240432830067104961962593833332137098037414346660811714348924611739385212489880533096320759556490931734547681194553545355543198396990502634294499053363329366997536415060536914337316044512086945731764403851660163255075982642226899260114974673913152029532842299795141975219906930094320250140564033046913795201849248875024232218336188033107144680198306207261001679889998639653377892156677400988777066877593436790199377575184388621396338893904049116207565617202704947348442909870533190512658239143225984124363285176422709469524310401109570070824661641846572224349526928416897922600199953684774822419952622786824616773134400225282438737434221436737113506947175830878929152024899914551341143723732639399742631414165510587903730144237895089493026073354903109856628387331580973322641780884963325242079029621294742688216488242796884960453850407166336575705682057675829732766687418285604010052550889067742122828604941614779214937698384037353001216968882743831823173757331514001390552802274727185651424585913092624278274071253303056588443469889429900516309330372317380146124096863586142207098270803778366902512869220302422297292386987278390720551069066782424971625775794315063321594699107228061027145510898938717256650419608975821835732543252866697208138665140571453280010148039729525357933238034296101905306889868947385452070165309870646265983791198070243045992980173407791429841290160110395018461526425623228699417703030741573745815490609824287351363626466826161582484434106088078169715079050885028539667437306900430069763130355394037803449720195983302441484378354466365358410695702792284615266192672839026205197690765664236225155540551919187687499591531458788450693895240690428300485472865539434456714298207820672746295052313599537266851308891556053241566359020197876040218614907511237813178467247090205812193673681944315654045252511691876408474511076733257238896168632204367684308822897893228496376511362924107738916135011838168296496351493084985932993263061141808741650197660806254532289610299463467467247713522052525073701430410032673438602564192126667026998003661250283133104288202001057332667454149829745389197079370169399554473814040156547536431095532082817342112774219399084490309492188311514538197881129835769171080237020297149320603476141720543987428073762686802948764838168667087942907931893352582079799856102636138586163624495698062934271986457391083005696160881683281781801855258184654736013910797573593750150338062398622294632388430254584632040416729209908432732722078692163751733261886403207430867771958126632565512791260345357463032855569949684165073337984400064563450722848161771276116874004951680032422508831521266213767399516900603969734432161904252065008582109239245185728966358440444479446162723228680343401936597551167358979712960029954960145322966105792190206794537538443575590383233138790264624824486481291253818573837839761597129527923458175803352255695308312255880855910460901481238860838111147584667244196748054716174191296489961879863952527990500217333847316423668397323592330628326942791641070090266329670967353089921441324279055935690618975427742514598031048801644269421615579373015095153850186070880481617827707566180431044545919093073692650119444817764422853740740039379209508469163837956397744946901065383683995683227865431233414461725508110974745539500162264883682337971276974329551233883035885856342302382765489463191988506958144617045049916629123697983789099421594163083781009666855720080458531843743716533324525628773991854288378106247621964590606301264996401313978808632931884191519794886792695029497836674580871282559309218917964000177362321691389328722958909063948196032793450535441769127580311665803134602116972048203562493568790616624637952888218620821964118031885326360596995991973503724648561285835982595021644379471423826126360678606417875973913817515605339354404316776448488102306135223961322285635884221610030738994417365225235572039883571658034564881011209982883483070357529089572097287090570122149182872132944203714842331120757074898175095173950437031433239292171338490458679275751132506710212207151057028558263453428337388677891800684924018822746992856455547947291908911897475251015150001663729318545772944629920757261363643415765417218910175112084764553194502696960573941980512437754204534653169459581497218338210870006684980028153253778755943010964041282506742900092155203296824224536327249069703077137673792459431958856277216891400417090624168715263464844279882674449862416945554252775751841027495373962488163205456156490504943352639894891799204604206461142919244226732290871442268669485110924725686117888738307808859686345694630155426683773882407844520755730583108868913040522847089535544846662184071793659220681727814830650319231861159749914705916742984911683066177626194609586453306874051141278554970165033817077326079068234242489164352654913832416688903431030842332608595006064609662249882303273401803353908804676770416547137085868953075473674203297780399261102075504423090290065361762036059936941192635278247104448933098799109329957542308182997731230421446112249524575154131457637081740794512776627727151135348725249160432808609397746074842712373356709894247928417615600730352059871195447922153501586492533398463229419364153182030791536487549244614915747595745664585424798142863932310621829916104613495902829278367817724806699340290671579726922541854674976908427152593032056638898554239520743357871555202120837176304693855898490804806208700392530742517351350635803873145576885855970585799878434171175290537380033837234262134927276276804121770004690178673860652147063584209987107895058623182541368418677097073222804424241047267392932530141703238506438854983994576369831864715449953971707358513327660622256029179592958032679244807320732117491095034164886665107230097829583387052101522455669720582640490588322148720294620709131324747566243745039203317860227848338922607991597106379580048407608322475466104358777242376201045403504480871086360455431196086806432143784207817754519491839900724010240105154250756103189230094141267257896922732602934160933017828224786143802993014262084642811296911606946804960141381293087772068768044170692042576549717434125947018274029259553521963287038243454557905627374583654716127504925900070451554889246705948547203916936991273256059598996141014759182335433708844314282300207769227590848924675059938617532253705883464810883140735565676211247860120535484312816599730338295816570060162542892362229234989468884489958237125157853131632310561598352862366627740084030148263739657700451607781121298615211767717916253658876774607821422817258048560860733868092079820089342424366550456124209769414192616929056002258075967985583938819555969916869922602481185006116484977161081114003016816458261744826829250816796025023177514390300564179488523196184402808008832472413976263170023593543150289730264120860274772255831030483707213896017761216082371579429194064466571926392756905860859816863381261647129721205290680263170765974313325851809045399283422239746637780329581577206637445507370878673844070843635943435520580462239611614749806447109215494992010702681369191380890012034901001311742430252579286085161130706388881063061163680136580727145076971858945264537546027401957059887817524533547216064835905766623253449610649496044255081206843543336233659396384521287295951556364211421221548460010301001102451219538850878822948730550790764130870285471997001082039412611223142942895755420486730276889688598818530700800360147568327341795880564899603044754161360983410571542273372321177793639998454298305563830816446155964729628839211045610348741874919031248848967996749160238299572390213924767724117383532191914913829829782164643649882403863361604618252655516553654491727369079843514051047257558316816216212646927971254816013894452882633171430577715473172351620145247171941441918465566016307042837403422975340956682718588926968803408215349174322142349485173315661403211758231604825904263961575920971399782655221372718175245779841382567025120235406500787325004616357167677961851507937840127331065409388523773071214016846358981859290906278067657769413158188762284810544957370508892996828188622440606633285246236394581282378967675068150921967901601372820235981483224548454246476203396546712230224259511613116469611061840819618572104011675187366101224354090124081765499902053738540481169237103438254909793286860931085654917428156892854839823362458801483600308547661013594393719204190751259409029633141995098738307762004353358263438706629695709357349479026399816083095595328308241611877991735255863857296272044938147233180111245824262255026688416718658264358589924655432828990020289174740949732340001271984049058272399102555755447325201175387330198711495815253273899395134092962212178983973344475868351455065361001462235612243560956312959173111988121079522252839786858639379717254539271435175573689031970619069515602575102839888934940009590003422020292443456218086715628643503059493116670425684119916669848248180806113215554948879839716328936351747083376444861467508432957491377382917342462563027863690860044956787846870190702151438918884424265879989915288762924319327454853580698341961387581415531551299604813207010435109454730186373129936752478188579900552438675999413259342582175979128217557263269174045321665036143819085647170295264809592833380600162824766605182447419959599769514842705835349196323520305231648590813326844171262678777799766225292101180437369564755376374754664879563127983149201698634822950294957362147928366635285984604063812794172442553187494405167960511996496088886200943063949910069278613824202915806911658905852173243788273526258354103072260429210347128026097613156430631504358027238543468003177900345939723490462562715929376405916080793872107377544873528374007460151927028783981708970364918634790523832559251355950971063506828499904090511196811616927331955481192544670386393826671983923900200369565978495028772023146723959509532431096345299534556955206224025027619914943671109499951476548269077891426603882360510867655608532321897874373385796911386702563234798561016384254143029898891650747544268143941117589334085342561533955843037300703685396745313476670866486278571259349960147887329019526522854825988763543013254083687252950610356243308470264003620603720373517768015498104281017390366183159336470821858162916595842997033787110958296679579374574723380297717328632716494057792395308524776117276068930096373534653353065186887194047940377481755260472556719773463026503260343457691468472313554446310520829633232519547926653411399566162298150623329746209043789387650457901832544418373027324506862486045955349087539437435033760215550971804143074856345153196857043904429451558334900975128749846081299995977994628672679637601877950230269232296074501252775538560367995896287231116735112875277602699064218351145455434541215418219442335350611134327989743301059346904491665007730879967715615672713447625565189935823701616893097596891535500305307629498632843834486086723214837893687364819510546945527737733505312685596847688495315028832209179505665053278295519932115005664334754840693628988861642367051489473676986002598535865671691719176453355084197855100475821959047039243360455103216378200504832043184563566419934418558950612197528190522169690075574959299372126802139253259831131458145780198917075673262810213726381872473328654597827049150422517859289015960926640124477011405459162060668011999376578733268935636245143848443184393721752479241725946510030699228434144783334643476659228229139052774049825046556710115738254106511831237116298942799574571714791044844182861502266007600704222765407754136747557232065116409994969336127873854899958619178827775124702954540724101686337998131653259382836876759226283688071250600522445609187960756309846166425341665111030764285785879831752065433791799522924044707823962687158757698659161494242188438310735483972905525405798964432350666317512731764286949117485447459259885720222764383480073059115213791054601926715392047576372615900452975908583079508977496778174717836762680102924273968856348900993901022847315840051202550884952978681978028776903170067678197359423636338187949685888275163253320595986554760007481821747058005257664846611057222010685882776897721924397337457943542596133743651670572210817915736207607909671207027259201335752867093725528866913639030080535040497215442329663577543062578566506305577714961252400065753042310803586276125913491591724738698395043236811653130795363217634535486841204564050298472931979912964506079355246813353003780369303384431224519783164198535754611112989981529948833821031942220093393320794466597591307083322143193000291365898597440785199070423697869257926739977463500949429092471748855408671825229076351373667794977480142160803353059591184499186314583815691410370636684587063538735492424914838366587876219705930470804436347757750628077058282342672364689672594401894551662243111307365368520174660997685467715133412319459929166630326180720624417013176054375825322673033538166636289866771112147897165174015630004695188937740671777130996035221274553963573945873011871737257698130016187024510947897649961802511012935006345211511300714057691025577786471026029375574602893380061085433711171631815313651456158517303162045251526808868348919195834580609893227632719817920227265433283148300605596530020064572532113820343873475962541960630703828572968164999474143292457140658593090293400183039709193712203082084127048809332513319103601055966907867461180344368797715190495924961582259393815169187799012054787763735650280232670713694154602398978742090143408200451455520373795949833119406115140046842653187931275655901513056850879425993237055463795100994403838912063577114420053706475997957070756335393512057291541098127923438061804701104577127835745389443930290556209485586690009116807841409236748736403996515597785088784681571304787174546040786874464825246021571834217630532696620801193532163520379906978200688139791712148409646404477989327989706939194992118400686272210492488826854416315510086488844221727881532776727127148900366104728172102148898352984275573205559947405110114480919580890117486929794866553365793863310208759461783486379704770729396873900472164231629123392951777118468434770433618641219866366543854444186458727457862695050874179691690502010974184417723293521213972101528254503617617744153167064658861915468588447383606644888050724850528121813011522078638813275465850701591126397600652782189040083859764931241004673939026128609858487285697501670445496439937591950835839345626299258895531197039890474388922785521098006489357939291700849799905437485689261947390639285302588507665202720274705098203131282333441894056590244449075152138310788945755754902268747405777896197687454231320782172735056397898997542968032240610268984282019906944960353739670271943580684205245456073993654312367389220579435168503632461206769317221709629496115305884237232435788647543557962924281018711701365724611075012218149732744203542866029137466691306648452215055371593074342432669543593910766446428830504783019274262436273157012523592303136739738718250981282256970368611791098927327202248925681200721624752498461499323250534072928875904620881070056813398628150525944911711828297311404776656056935117953311326778730222488404377066314889662402954293124066922416160751752405057382142736596997438972197299721062959560877325210945698923112273092730560455759796239984186929689498768959066485974372434981313669515029007168995204052883904283798587890551587329206268693840291865003892829682631238312674355959742722065733068955464224371764960007062596208041412337302586558955565563942852330849599728166750025395604076887983178224526469418214130346822547922375321363839491297415973405146666178523688978371460401448389996334212111143544970222373794663863524914723830190586661400522557381386607550697612711324710270202266685491692329046659156515582748824052081482685292798753224246638431291767833171413693874110226168454444887831363516056106925351944486811860314511155866377243383947962678024513347600332101530775645358359258050942772382686757236161551574689146067659244987306147886309268460044453172521423745391159249002763557755959679288980927968611281522852658482521616460792706587904365127715989876021274683307889314902934260891322442682901511159416384590739043134070748325154225937106466908239168544912171135996004221872350451952159010877943640955350095478895034795769597390043738370421053469581727118332680933626882389647917715159394382222874382242580114920155858025245835108281721268268947155074672266644146057240428092404636991755790492576817965897443774876953135176405984807417011061040557648340425312211318044295870455105274794597616258394104765071015744721847327767658302684910100778870019982978863564437441225635611304293152656566900745941633683465065928314949811869845785621108217897289469420394657911042863664010916480865557200059506094861171501018043095593211428199820402357465898567365192091097752277916641491913051434788101927064826458341316395132064433493258802892429252759569133765299463805497275107107224440454791493778046574158538533683298557599243653421962365468471431388695406756307388776499232183113655346980036400710758555317415017142809384454286425908410931436993116147514597297121816391316002932158615940659142409519009767945976180050771603414502798637648514899354608511207007413986334978178678414763089811338616625302591239802449238103886565769758659636076918367112758574218555080292274752083236891275453110207525101906731276871228969419283738155670943515048158636636788916038725149062138472241799326328371582299401637718757993786876758228501457742143046153704686310571803230322510571347982322430772857721399637464016995475803828707999601087840503946505216425760827959250270560829674221332509531481950132775488715816426307090337340945203135813642169831638358757009401448448958558330177649534567313823676617138431011793742861697460710265160679571142783515841437556240251209719705157978459926759154597912724737917191974038645259494909600117951811546031316150294222926344830168192535520717483058847291997424822333370987682875801734648062556896892037365254659747582138692196538977572879739934917693488466921109852135539566603838699922109980323887378615870148839123027263140127410737605363445399768008431510439597170656977538037782615347791059147348673268172536447066859031824760718043232808513478134011921896883070661685563306341713337214571528184883562992214016028990380069055911206135977792169658467101888730498082742467817855101072114469723845094115351806954433339480644036562908053899461866169736680461561824268084966314813004120222604929446592808303559793692769263773235996059789898347750055385434642858776508484977126354243493269713691641746217219205239826796110225591202190213495406713408024269165374948884129689794481147002032829090150998307639844316305359682557606350430661652589436843418321413578202372173237228725337928432748881220845921273350552829419862831829742534587149859487997140221483285140816918573268362622385240926199784122694602037079612588346573916402314908490524200055308999241645612151460836110012914560362393225134539324723337691164784893387202774024995443596604508668398200535580368581002746366861362293288790511493830726175502189170666688397910244959505499063393477983423990433272562282278714520795239633198219421230421781624781244019877898606967188064308115534465550571134236688989923995546820384221014447004111021410448454216192108330870100457657467950818960210946241612634045089643873460112850235567901359005797405190273227974516067226866781881598132791612999446540332762819938871440394050525878485848585119294344519083961121854838478792261942934313492601032444991673744481531766656426959265443849833298589790447075530724539444202533984607112407445523814729380625437309865581831348623187453259349293779504337764832328763443691276269690494727924986206812630078909687195707110382372483863757977058239589754791512960959172984704359429227692029383305930439391785596128502266223084479034405208049649915065656647759808819321647706161107408927399683814731098189260120528963565500328224980157884870181928279261930225772116699342203895766726973000990877535078510356906681331271745659998933105660919701634596142558237848501321995070048295776115333594609443868606553948855491838230760779241798042887546226532196720685772820614743878594267185378437373805832843161127134806893335342473550089870349466795022001636634896334925688535100184071227171369991919610862339420159806966796044705030883599949376427597279936256223528845759750596865769645513106521407529760974625674489378603154190027667046773585383004473329937719159255933335838792375882671260372361447334436120997647518024905301773844796436396177601597901050031676227803106500474484564326162685136581797743537649704943054457308763388467247840649894574928781835089887179771844554721471411125174330057176007090758816345479367731528699420127192031380869537862010398665960501482171885658115846082036625748419612548375198380251098957716677107584272868998758602983413852408143010321404893788212813749497177879795502043551100082634685229719667958416152377114025875339596375760169614559990489413015342471924161527816165006558740158946928204319398501318271845837713131189330337410970231683671472898736604729193484133699746197534991933955111385450265424353397715903730408775865402004340409984393156449590195889331898229224008239865766614005790880124649183649901273698921365395245029530205571179900627600292909883108244249164190990003938885041973789411003087919604340525684415772806290856437346285988723125593968550038421989736170636791059257349271199504663741734811176996565080751234400124813762645625399263125192044836761764696630269374342974594657019162252146894683587427386583577392561703567080311696392486709127866910834094638196548534095584908875682425209615313545111186009099738439033299646078107162887511450208527934230276979330175944855255898968512165107466683668963680640818290429450663348836218911476959704163859920523322049673062831316909490074793610511866186545870691490989118932058608824745892108360455554409852901822980809966867883776796067131228706044325691132257052898782307702903726781507303374189226189424146218592768853186792395703064638900575965951180651175986048684418486704357970017928750145218013300110696066215968799806561994588454057327727820526037322705251993141477548135427493559159790713519964077627043538962407028404408434871208895340565796596183918404395260142440294063620342817127489439063513352755749625973519141510804538842636727425119277290853664208052599556716799057628030588882906561132522306836887948578120268799501949252884917316616184596128072002080470385964838911142363790942152252872715419020750189852246988203521237641513171552532951463420184096248006729662470399821976483911903675389988812198591929339530776620224334375487522787925660088120995085375707927135236995826429477029490801441415544726107232582709266008603917232881077935674205963866485761776553055085536681122081065875399609731966965206044913499990993919498157759466410864701085329181132145466714398737639015947126631389407472316338196688535303662153760212236390289731587857512114759651226987107467824414139845024550126601230469946441243258254085524035263498886659591391044124131333795380834750916122360500276323489407245897409707039466056663351671222616533630127813193984262266938813647684255699210700274583744885126428298331619981358458036917052337453700729299961425112269250674446288352254219387540811280949475227691932291344228472925477503727188331528360987415556462482032948128156649376910515042060718646691674018402939032837097741124402863209726245945571816013850565143159037702530673200613163965177207449424062297072116260825548432896252314767381738715922163072492975302451908682240771079009496355906827856060691060519430968765294415544259547511617335763599522134391599600700512428881774500051422506901336172814168412447443940481254031410324984940583371855694709381600768179941975083674318141661345437927995275975577892151253667233209357389341286704797472402958211604581331592626836277590347534860247963330509607705954046366540338082618815422996578163556753410793258890132062479404147010818874399316433899581136206567945917301825298572602377178694796751181210406506482685329780204728334776613922225699494681413291422578643992633060167142956437452338873467383888472934185584270404766531568231180643784296662028068666764185040402604555706757486038808453440378266694528227840314315066676940040668107662509759569800585788397289117928758164795363630190729641291163829590741770156266221926003076046945854272348343021625475960749405624535649961006761468738197990916123218746000552808646246320725102162686615721581381258455089202461701093056378601857562998485224554981576943514586496508560243267338360622022309718452866647265673015071278809342168878098707740448447778464460318509921613368157405439325799007373196272811807196987285308722589462211750383888471425574447008164629140281206640562870958334075507687801528784723970497141239657741626426337353744800320668303654593458568012191144647046972505208109273239995692186723972019859038861553243229541028609432481392075454114353274854309289069240259249020631438082086113909657271871863725664361643178422694852242088738908450127364989809325486079475009673105429475451992888086950239522291274551225628787544440478008215689241871332994240442659902321529831364357167275386260044512094980510271086313447418592483707554003676031406445047368635610786257674011300058035303856561068421187632898842235297117318152712875017055851550672709585784214031576285955349497938161091550700061304087599552305900026507529897564499236018780712727587084848020020575117166592532635939322309765382269784989257401132920448079569940217861012299801164142375373709405832453247272092276912144439108321189243798775275099772429850740204259403932130090347260585635839538231522805742984460979049083447196781564846333056823450846308400575995116964485042333396491964226745345133492810523350478094561132979666627166369062191130427751750187030410048803999901588218073916873819708372866165837580750560111735251615357300451175183514753097717212185242300272048483712462114071746740416523050604567325211300264132485198497094596551474127545896007656650926720519703685255534504651492590565471202890996466578107647155974173037213652995166107533329731302061564345866948852502493543595047374184306801008393883831549162371441536272464217652653816802768814009096291946802640750451379939171085059038982097935914909727567359410831764084415594733921939968626437569616161229675997010789939516587970421658838018564618592691857841013366886565144799515086030640649769845453204607075288644310684641478308607940478535449140516108853471610196268002188491403849881927364439783512458497857995219945418547882858212110303449850359229425762797524175457992438670255768799892481788799397051586117026552135539866540721038738141778440862737416848737696770185681276413847698973960254405709034329750093262558083682884090473517897447488597863459736743383130301373247251298948389657367120989626544744242824627682217352706370463265549172015133963339249522177975902687155912265447065777891183102325176957681990970344486410845867071177293579054047655656279454558545174630430210796003291935286967145036667647162804235605264291542112623886702154812381915849287583418900937926812135716456495428045715264540180894493116313373584922040250397441731430275885142263861460339979774958344682784712302536428632324561212137509252855071832908093727017768506466603610379076001845687072910972087462081088922141264911410486497575094078971373317459454587904738414264059622348929614282154580172277470094725409759903182396084899176941795667065529642656133791458536713234017883894570482899242644871543510488592847825590510338805330962747362301602669236639406041873681905459897926467998540955293236647801180012211791648643593652644940353245367949432288018922440875204396982606956863061972316591405300197860546472615460883041077866123481770547721984187153325700440890987651531407491248621644379782555972163719153170987060624003083775576531796192971772807938148747654352123087558470662018820048816274463204067326790012041053478935363894435811619320500882267111371766369836081436636406475212724069953083043437955443672137809519963178431657210808566714372898022047170687911572177538422662702294918408150959327142658185147122486854165996354773170534686980346985205683864199712747588652828897085955556052916230413808744840736430407908771441989010199179163092848102875382481216368348537000379739779285465960378920225216223613356647593695725091181035413576148693902031776694149379309065878894974853301970247664492937582609315846244863663456991839922839394941772485773877783410654753910445172954213144360164923543032865559079030874517057968881284973705738209251706753645210447469520588471703329265745632749455546319530175741015280965326979211858365670283544940993580722666567088573817654248650470683271597699151511554972521285592674759279970800428807240582609649362113293947881608767490728524154525005536602053107575926549895127043464569388192643220245737345677093550864277105639265546231936487252713845195479395340840276980701558093618340565259965515040502132289511552806198305812808917742768168183374648329296551656238832977539170691602907425717355869485965151965310704371408674488153732084189063337778841207943264541321439490249540888846889350342057649887450896740894394763687642372523379713034443697014683447385134417741817767261910167973422778252250771138924326939499317636448736119900962435257828864967504222802245438362998605498829347434595474047416657256687562292038222875722989987364584733586016742201040436235944156534155970517278361586020524410072504716078738413649802730446362672048292285609130784007180797344460850107589955513230582917921649199445058864768694823459480938991562591681522423598816705406912864611256180163577574426815209847465068063478268028039836395326471641258062711547506255997582733409261808649042857758598990571447205914630802176686579768708640920649120956497085169922826302678024827650010019210171904659293389681092456844345153165865030726821561603999281914662982496024693378221568107977855565603591010541450428514836246427172613760207301376394102188818920299849141520320155742679376155559988759188687327325525127040799720547469440687786887794195445143557242344768508733375045877839841810847717166610457467406676217441793258850285710579604992176957712654478072447476313050004172934711000898842071817673755358831615917607549750681784970568040595836209769530504301821144859122675983116930550872094515418229131316684265068874198882301658247301456897019717199464445180514129561390139912271486075620968003424546640208241781753894873550124243584623461224507602287146309250512986978613231679036751790842327466903957710900475764276812468651347371361292691049511850349150489289935914769254913481868619368249653560568592856473582264624375290437191676145839881597322753381249247644021743828356534671061150599947444907347912100359091514393795558576235853450435522612605548134263056371125501943501997127637985727086302887186237839145525169349292136637300186541374791789408196361056099262227088836202341760192644208461573703369467491144550414650711296142785088294952348532305964383657984557946591500864739180830068803546432082381142222858463482235903606474106531144491853385492733358658365489178237752157267610710294343422034531076317989374305216265216370960895167813920623353858867467184597249764938826536246549109104050197203211402934223338543369601612697018724036325737602989856276340881785117650239230564600831811198072150692173871376461899939273921956650442555041946446416726765106333692521087177288779745936972602082758908282669238010296503307095234823881440611547992428780777165283642254263680954767972517994740115190929466239365262156141109451706984140345192406736364976481138363794035013384620379772341983895309013234801068838690494276683116895350228859943790692858343478121022640688995502269339953378452076210498043925023755325958419521810767624119047290706660198452118695291503630778387848754480536110168444565974878847017780619075506857123835178390422082582597926355983658719161242052864337318203390714982842613382321302375898949361809923107847948991984236268441280318635051653930717111283103250535500443612960931752421929542999223188842795528802078561277981835617618747048690232611778420807806709948284100716975164531048589461172100602561640724093137453675584971454434003828772007250752373546634680046386965206206983636781588591245034840046275445153534569181496606649931496599112166643269470575443735012376355513936714528906879432353426005836068774466512875703137319778664142880497696842581001683059071275641326800320778889022270584248744486313369341267797911616412905686973311517894909142033316998098053254468778450848858277502208631097223553747703542148692043750351021052908894126257947391364669580730498924646537596281587480529186241055657938023153750141613711881124446454256304902081306263600362343352575967298599636997770899865596668222036480490251901396801667445151562808654383542537917264087069345391617642811756600910835032104075331586751840583973939563206934838496256569344421419741650271983392763552576398452006737558589077539102902222267225869725948315382646363398249954552340919794064970630672826999884730502444218147254895362558627444165707869046303837480076888916978967933039639911860611161816467373640246411670910366766103174331749933909575210993856148733936926854258068667122288965531784782989853173178003918730906038851720239575826179378562144546194796549711663205272982735083449355655397187067340212247141920727668841685307593554767927560316502427648472445930537126935470126801849136901161294182333822896430467178704332876543370567519229227397975821392179890292840683989611475574758873201841192554656734569708576550577488603618373442984860741795919352755767066716957128243963769065289575493332483129559877300800950736399836312584596195102988653505538497409826087564560608457908698136505808744266533437785037974457431181738351705367022057334763377168426778651363098896330433080832636356855109917048458352946038611119678797681405392337573180229947562086433204898289788792707993218118233992198930042251282717963236500851285636923899562375014107066065464990780125733161101657007872493260345720993588950994528010907329417695790728883020519129469404803499343278461334800659412773928145567975620111438527345596455558088994559655748713094471111256569077544516887712384050627899367779437540709684412267677986377613276680353360924448296579777673963181446269245374312460077497331437424222328257121465965202241727632505557431948675430920277435450941510661749907172623182962094661017753434379844452558747524912976256572655723887193185976611636516294983458209446287077803472928940379265175699119492825076230612863673860778685910338653038434758457022264025358655572265275407382219999986628813988546552645253514337835781568454299213568595381923569014662063118665158055681905205633822539345426247200258426978895230641885148824268044109292055885556385633219489230565354452384397818817614125885688338774380429513087844625890629081566120318316728566310816311825482199761383240214279352572825130460172053135404741442706609520952574297302104919096449917757870748395402398403780886492345532272511124251642826358175681952820077357929234307727904652331953751790347227351711997331282776947002996548998798278190593883532901791034962942327598397866921343783626696102613531658182629712850117186011811589892224432545992651876076521911132825172308867678513901126189179574589209807530512605193637701207409372992687296619249633288889803668926174310321091586785131048717420688777885869203270892594327193553005003162547286244236186104563272382700428352179719360827253687973770290144384355821065622349897048190473296217413708432856585707036729838324618973904188923595539924152250020060355476681785328608848483740625632068369599470716182659327845412131259770204865211652502169871027544727245859288419764942997379795824688495615961379223354806816031520346667765275000682652299260844081121101118058536808005063938267260619654615267864274723182996894827441795380044923139386864744567799596706145447645605754954347933875711200009781069449174849717093670294204331976173568351547698505259632602762114282173047525055929758965363931893065185765737603794451355462935760537043711860710834489620543369484475734630096986910565243223746261101824601497015679936343818245940292168109852071430189068304238737952058987743488804302915243924905377919279151626657122881867884867558322164808741767411308220272990847027598102666980676907748238517271861730930653006088060969268341504129375878594798411849976996732281906075918066783906285660372180531736428959584096944166691394289737569906790712771958188331333940674010406910571808599404644906494279341457397984145909775334216988881790037556953091068168095270891442787056188399963868133110492615085743006746758226938322511978514771223963173426235697355989517844930450677126060717812130147241218669281196950518349797337749708376889979834894806960816118031565785482253650895501499366336488215280909854991011464870835694880379885944235838781678347953526602471138126434784925583900669398300033874059691249347706550697959995119810057194125136712296090807995735817559257689422420849339212315718814895181009483221765574527976288788083863122715778621170169093226715599203219850448535365481173603392012136369491479394629263287639775745595614784856204558151400640661936477452315353622422213138398567844071056306358952040862812581787570906194535605839494696087334365831033978426130869643421103855825766161443079897126644269432042108682867128567532714662784076670832594205174549783253168152079758621029362508869726891464387985230533814717280716442246651304287775573570110323614620502125225951886344978492050923881575998172219447249829256996601865776211626336287730224810482956257547291548116374714649635903294509482274373898911942860801184227832714829590918545673270732860285829125503100192529199492332538199414900978121758562655453212067950731692097541519655129775315796972981139929547264346588431104247809386939121209478188057905056979548039589781649008308400923748013530319398893839633761380798759100883712186348292643934231259435247271574654113229677266449733043120728415377563874274980640765839918515343710052999919978708156881120561359857847902305234939299916501859749406213377621305927130728449581446673059548610597219754277728961176647356574512835774102620832516482248213847741137884690643608879612373861080949226305887981587247418705221147216187760814298652892352735759786357692855905280309685119771840111962909854093777734235916134435412585989369917625074965597105219924440415137506492368922138316356295389764745108988597900738453844342124336879790404676307414933845550811438434737710629764815038231257878646185813907511350943380554920189312725821143598722615875742797012863081122063406017611207259015246375050426610291710358724481126291902901356910919302505527530134608179922273690421376005588479951418245762056807554603509405496342209687742505529929214697767959399165184269465025815993168663403778756831172283092242702670259974532771759335264141994898165951896587291046252020862633067094267310281305630345451892060530283901040052782793840407189076137400224235378990862330540323427007802942621653011699139299253455886314970195160829712379264610786689022993015258907957745580613017821879537225678454440587363708413557137421246092516025051669806621997059445862755689227449307597379386203289617295406113860607633039729341017375510228570219838461406571840079430906458161731400862050354713808895264053269596172110994848356308621960290714506693877199739257739727445822217201752421036442653629407249693905918355760999155150927227064113181283573068659012079575439083836598986136813257923531704259010775334536460096266407985325675734029414262544959851392873614614268840825604952259257291298376395371316991531020084567060002827705699652625751770294045844671124673878228989251222979516939154333319663978200494893009296030970035142363542815868040906467789485017557125720200912197592575747214971262491733501159026348544394817609103253443371226266931920108752204781002100255301079624251826764545842218923428549018413853040414476587540403421348390394707316174384679680906720958581274298029300565319811060278895910213713088969021694623646410752763382654197603002945944322920141024604886918174578083238599219259837463586460712261877159191838899286227733263295441383784645292346751091962082161565229845284645730025750301713138304625189629882961809847631926309984824188246075969389286124042873512391781583326903595757038554464366581682277319854534853878551664327566022139431375584720862385262003317251973039915376412310122544275515377523256745527924590828816717951389230008255841926564728615191622966548294841832300712325224945443186543452195896117996885851975341248084821074090421047627870915846343351536909113710037346904302292634390767256383654758579579910327165457570489926209732077103891251264577976863749821771358177657671017999216912548207976427321874397386189220329395352920533074885670117454251222745324532598045618095487279401435279573134048100616929200381089506065961174999143994035668145044810538378011150045313780150979286346409799515451298591963826794163476403980105472751636168290451384116555633083361967747750175290617588968141787579847629813049248494108889436688775705742905963401542117363573397309370001219420576270623963495972369002191921290303101097576052891284901155031290286091478844530162971429250373376112555486838766523782834538380395157730975931926752374312677946426724888796839972898916304013300240441079082958883385882894221201208243693041034457625607384472716593743784150075464084903294003505049099218579566643103331475462485552364692513120555487360799325224290397053577217491066031399272353790170997820672256800460277413333633115618732061634772180710496364072542508818547580102240554014813169232314793843606280203675122735250648731499410603551757866642584315934686284801304701248620121636497297305428886875605039341243068590518589923496116437095386392496654137525244971999145458749126232341539425123633419745048048184542421545606414409176336988751350283361457515905972089155267542929737455776044551502703719969711219662572590189323361564788775902164278425620768582163795632523928595846832568276915190431976150739268106163633023553585549692522653396189043950311900921265733523346791289954397362568455491143018621802105258436392980268443686723794620620261063894205852884659411114502805778775028608728458912299170616959985795480849244365106236322643733278606597216403343679645457418648171504047415343941657880410292154520908570739124921340002771789449213711289559127903546516962788622333714481422690993771796018496357784933293432377047494373906126035130265367481432571331595660059136954596989720689412357171133151605568236404594110575771025817589056507861603466411405289239088235734211439637561286404900811594829415238036874342670467604124802105469307503465182229856416951043137390525833936360841082136205141915698453831073335015878197724677577304427097162181568790854849907574695756889862137002565828082623698206826285444328027220783235403238399575233612493695444386042169896332864974922657296644886129641452921044013538317291194576723016943371046211744221883084134431945245134469547085729399193868065572190830199477660897109138071352883379364812834350438730399265855147808421195267696528479685022016032549114192718176367047322526166185534810160634942843126116445760194609420036354647786365532597249756795138904553815584106957768533872321950709628334656817726691177630931081604929466573212553347320458559898014900208148740013378804358601413747718669267319002905770970235661575491975809873829672772243329301899078043597297449966898027284867457524572182311100951554097642335960631356125312043771199017185815880742361302309471742980048421322435539277055576571380138113685856128596755359966039006644022004983818560863777715473412181192258188296589793164238798821738465943105708842223711275816443211639150799425238332994650627315644960712765081060158101229386106937083662853797110330547259017017776184874284052339029840066055270983918939433479157973991719786885381482028767800309904091892298465079788295468722881228946947976137056823722048635668648719927120005112543927966762870591231872568937519026282299101312270657896029397658554864241251448346591908217218035918746751392505090642338238158185799387418766580205029559382777607884443743809334080001077837111959122215761638618753310208940662008910526210378901583488552591054564496347315247027954573458943389075498913000989794490973132852191605994217706103450031170199415466180069021831670151714349580189114219637505847317864841884992484219419440502726271108148969620480752999160196456673154378278039757968989561181362048322736088924325841160393935671509912422008369111529846045977199334111536751377303053587106447675259911397722926297638998066364390208155277286390572857931249906861661456339907671830014897837256665411685581326499841792344700207332125799919251403655122102588142597138336682221413022233822311259792690260778240050976405334291395209942508899270800822288671155010163268539156648481704745857729993317132195821048709977634610766157849106628561151378548424966040880245489951296129672602698941686543684698101687129091400817753660242639867381443193466951621792669992695685902210326051633412691365633107882537958078373462764390053172012564928360354799587222733013562287857064500623438168707683464939140619541830317079175016771296815711671948109108514490672839430616452600470494771843020785299425270117517293714624873514865698266495925317101739620101487293313152826131382327356178936956757118299676878914538872913959221662920395411703081092517630054978838309971900747941103899144075614870514893617655957951657664053952232298045763170347763691595909072189349054184520548423808972956662615401690552933978232129415425342168656527232874893455038740609885092427912823230357660708959339626356379418330093750164104252623718663648106205693081604848626805269860248363706852297628287164902979415900515359032648853134399722856778777622584851271535387858634335351164487561448549494814248578081356284197214054192426173218783796647046549988908870121339256096201815151587306965613459641285675969906976305406775458288650588215589558787980618490494814334377311757708726606959686444646142123117849064387122657538468341729301010546832970577821927260758844730956950268644088561027104794282315349966961911562424199330585427883486908957813799112952872910206444029753829845033304828067739376656132147049975633904194298736690960312399083811107386511587199892411867798379154592434114571278524498103890139099954231063850134804020824215414685978877947061275203899088054457500587017750300466966027323130213731127782484433169302513276675334159612478155194888425494126771978920654235974568791187443730992594815270706929981468745551810121769808563304533313862174245245935510462347852528826531380673165540206751244004918968512290670242851815102383604251930112485462081813597371748423005454270716716504158723635462520800065145444655710313702762276517485308776069121792135399721564092522057076455489416327544230686112781216375455735923847159236657603605174356560709991344329872443826118484171047072912203305225853953700098762409827164606332528550918231316823099137586487774495143242208774246385399677121945462805873271328090535747823853429459821370315729950090909867479762987593961610211224551666638212841837294553414593686884534436215475750339073137349718773913485272622471226811205510163174254849681792311947668883585257890413161155050702761943743495185823617550800550986474368585051765198267309807380547481599877278535402315577288551157027106874397750037153526286044741077917239091793907027785786693263246102744109755188519776795674221678098714889969268695111349136269303876789520921035667315314412363455389433238918865483540442589875734554202918601785295327380705332455402576716366970309502027719219898857120622297522626364081002363945928693912200386506373165607443048635904878315280933953207790382312266313509214015797006539922533037477047989457511066590574238220516870849471724317536899423466814547303147447793233577885009902437699155152341834290067932708748490809213119345639506387280821372206561546560482043305107255566488477417647349583385972195679339968988293146454143696412738043917196399791142691736356218808396677068315077984867667448133136910086397864824557384298009516879923807036649653729312006361426940633340840007538157911048030783492527541378775106903688132817179142538664485341532175628902701356296584760197386174300120334912048960952678716221847321719342924895543938832374778297966207309028870860618986020018450157685277574926954476828411294605876081546320361324026606584509095302805837745936030620299265214748907486682560332247777265371587525654337284586126016892317372010412493359893703368751287014943186375797812388394336800618900434226709481131245078708335750434858176173860605663887300819630164840814408586412625936339416690989155821965902624732915765044240198005526793910213267227131111188059952361484254954171210688461053990475806985923391789340055806678552768653201839510551087254006157423885438586576649096790800232767555642489660663454598671405033862024272998663769326745230941148196254184382344630607013658209358202198100745484483092000171411868759970281691932650216562315124411218189087369374217771639085710510928074113619564121916565515086549391042672637239839455316888297090157281979660019493896443110085319181689205051977577224817013355676422553584367076865727946683807501973398832928512298315537780530972017844037797678886265539150065897955604759007024429562232688461734977135496727876266857149589432500688228402706769181303558896774853161199838335375468710741448843971793310143751589780121162865028906858657863022354527275311162563213368123526175827278022574216991345497498832389022263796363900321081063290013979979623034058949058083010893972986716551094710619696196286022992906224026250943790667300994059596780064211341099156314863546297448640233420702715760570653035467928624842408216045381212438518730674823121789736047096514031573883375979424973311521403540856819594027785658597169738473858038860980064407947705529109712367619171933451983478331082384022426372473832603027907893329979722682518350349528270443585051570532730871970851548694683685959108994015847568955243327182228505589298055954639755266522494728852301534633813672596284110123998889304435832118702116235448918771020639252553471224040153292445684260440658076950985424136670520135281374462433948998042237451860422913490617695239500070349922964682854422214121974992183512904577507809521546842372977443811368671499229305141751363890654612485825875672033649661142780733399435534261697702712299830907324571081207882828640988903962514360717156393313377322276049325993212552907443417370406196038823904745592999543369347091706537201480884091063760623756991572760417001021298134050500244408928939899319980944405609007074449037971650358519930867621482200394698019985747162175868344392110627435687752768793818076040705331950879041708446017906324628885114906423970129468505263745084812462371842654425694482737723954861287281432173042657716677331893751415155724052217701696070669769771722852994891851319434381466165927953665658870105727026276436234296883506463857561602051526200237200316768890325691481479889653605364324297875549393296972259262425256455602998584158348596575550476695576941972482062542110510195895019959771764373292921684395031753733584628343604364776942408575078165875832898495978282636455087782817355869745143643593067045737256104349062575840762426098233610364122537556393773716238474695184056243012210285965308596411240740772722401060418815675858949466560280215156323956070087317272453753706864753700029989420956636803265549233914570278594975687454070443443313671607166451880994353852070825143131577644897924972150821732972625443563711348433687486051144287967572304893805097248978375410462446135505499277904012994542385766989739506546654660572865805485211976629361295355290479543967170363908033776445293606362028902079744364381170351956467666884615748208900909406019702452918525403256679987886830138407443429137423005836957509749287942602191151771872381294571328474435575330969419659341205089448424452676079291068086641384115856228895442240200961406719371685213954634302795860201082015219206141781364182307463300014569206670079895204997088194882235995677560726659663984315970099085186110687646624349712037259506122249270101811856492836241591418561205261919418265685387646363363803160583211891745665814659963225203277896301888273569488770367466716529877134330292016407659109758693897343352034913284548789758589023398205819451663115459520339192491408984055959254034658006472276749694985346007246293999924517768502018242614181314438097613607993723332729731664216097062214169105253139297095535510993943023441104456221934012114866190616356486989962937096320445313206276074489700861351785308478496851765953011898563982472151003798146424729794171706814930220067429316284669689071338857494154686804506178439012511436281132891683721090610662128378459365501222001308846371231694719135177382897989275367474645766105483026397618195724645354215419073078618622602904040094465601101452979887227474288601532410266400613063964219716919235686126631434726792609358923170404814538158498496567516506424854201663008083407683300189872219182176023608024411107203625843563858802373137183486393617116322214795248055105588802526882360486750237715626358833406779298464170637895437807562719848507398111653532599460615805866004585956271743196256218211194050049927885770331182188455516197938404428164975580115481392973038842653363375924974742334448007133765336533007128300114071522029489898914818497265843737495260772269833507581497739994508393315763876103098254974063495587641805503735245213081674777075124055937158253586672753278647978106360495204837032484900332369843810149760868852655796497822328644645217522663145980052385364835647011112052975199010939424260274922505458423918955802879179891832366460133390773046127881518233979459535342066736918856791639448724292938092909575951520065569412866224164448456716805951781909601124919690364919855321089729287813533385903620648316026680586796722302728673917348077667443765743066823801025669583876946993746434098215563521468460540462108779755485649840630260690062817657932499098641575651471078873975345603127434621687906540029139456636329522734252904313011596874168259141308446172620098747381985173612714353603869481554793680361275666447422645226391482973647656103285651680163843146733207460950625564016018635135229485323608813183360952724430245250586259590021274607821213177596262230581816076054561854219833235422529938347019377045229213938595239142989518579811008714226704810522875794421258446883069672240465884529655371121683717326095763085715885809782064570393795355902488027627972017628580812512041348799817842796624124262442374056949668674048328777007382679684550833301127585934496890253370152777777179199075863451279587327841486492799128802533471651210364488376064563813655219549849134053384982911497888874061407508444215682250045919743878201434334471699055390790285614852636521704752414393539749487234767369811960205219826778663737211751565909502782363131377047969789721038361343589609155777171127206456923358145837950311870770523715386227269040872725184173793393031067220011048071831474704727729413052243785566711200196676241568580409869713054139615202826364324869515590311808820041311193921537305033336210818191299979781590334713415463598034988475418600291559003938084520377773547044246269595469257269654718215105460860595413761693135307148557842062998848785018026550296872468302361711104136845891318364872053874674607050950229261977511170568774534036308583918639945752625920018985034991794838388594668028547272212012183143782565481048628067480375654031952564076486532238818084704704021259656201386930541392069656420400237413225862917221597344815674392823725907608246839845927586559256259518874847838684184952214503464238349291514578210137211196204732056787719776990300940058110575997508246268059069414195826144829772053233384884480569695946657656545124161184098258605342259396720831679671078305269936218552801398678971312777960458887729926136999502092325757654854185596925017431977349577207735528959303975437240583248875216506638847707830027788994634195532332763704467793830682657907471152938076946304652722677409489245777677389655853251948086474187942844703607476319690859350437625508992789677066448777323933327992733779404364428983024603962901839505262367127261486961782797713488085525219886670383542538912116863534830419005583145805604750823146524755375900878271754367696571464762805540356148003212791605836933213359188019585018372557489314569655649403484639747679400164441133717165391575644488900392322777748778029390248828448705772482696991591881417069841361307858402589046944805955885445805902512498878148919620708201886112742328057336895989988775043323379359200559461537802849958166133987845062376852001423285044477538655086184224341553756628266871145986437178540191250492760168386962604999684363938905142530158389527263336740358303677810027075893114028803429253051150694987849496121124496072875633478724034742975926199132810445111868102283845252372420343143996173424469355180451081499971732056233625294292447717867792886048638202769740525141099599868028053009770187430402611003996760696990311240339486774010397002517510500491161941478038899511018631781866607474746129690459544620827969724469426060455128044842387085936927347187424448161046460454822032545415294650513796637367920495236574927308480265720957318584200959786183522893177360394836164438246135626728381619479498814554323644336236747996858987737470978980651856311170512829598401791290813690501634221033665640091802312988622287740755739417346059060962084187800989340942387346711122408168185873542905261130711590207720024299496838032485813121947942173586462254813282849932536633042177509647957877017645004205869738828296133273740758489034786529481802179583943366364755301650664498410713685557686345919403810857364792110954115940100396021206240091270347411151816227992376661358262969745006438106702231752905477014418106192748043115655142818610209427098466579004179547998106308751148337119910216539451804117195834503096387840018764580847723918190231615325017228952257856800396288525285233437454769761190872774590725631317148643872506363843714483211088988450449661548259378492067753189942589707056782108823152573321036350322395913697624280402635412911400769481081677125826958950585073954542899695337592907067107565648207846874220896296140338621146219484602529974859359351732205813867204803252351305697926645866395084851018325902061891836316538733640778932070973629505741362168119102362470119028453003900145569364343458374479878283397256562082731117881926211055654433789556219173538323763707065599891663140422656405675802233039779984792018118741339026940347888424405545193813800579133516080126117761827642723666282311061099619877446396373645318718526236366539387424355560619500189013016374494452922272241970520499880583810738081087197609832807547532817091224657839500161936094289667252877630152495957302423382104603330710788841295682899513049217018615424894242014414940340729045305919076414536286249939346829547294273138317844057236973069638041624430876291677248169251129362121058337240166564598459494290793735595154292627355196067452872312455985279284601460610751447222890777870799997874338054122252894281748456566215177320333072732329485426871283016144103147028274277996739168623731285009988063298559724598452746785827475072295896968121073118255263029498114528416529947354417510590460201143212064053289227946890732356211100077235521411439452465060986674112138993314190975212608423141395772969053815433220233556220277713531567886732938251569750408410095611986549561306829854128704214470530288256829321803029616978661873623763830905083486412841927480046095212096379967336798835007057095245199177043498645100992587814748627522396867220046256384552479998471495179341671536640365734852632574378481520187043767678337496610168207843441009008203117802704955593176961809527560962419730824402980853855507870129782348078025264243013557826842353205327736303457162181234807944653858627163204207509453468540249572525955936703172852443633700499795705914937438233172892357338008946282383971895205606147418948137746458925202028080169658534624668210788845923837127143249462091753630907837545854399387958663860437139045802136216389744158886659806630829616607507810730873925366328906013622556718912408118701102684655316525429118280068172952128549320585442701339887129245936275619120875039256901236461192144305063643758376994484059541939977336112091376430592091511845868482097186698162391948498474999587850199913476793598306645000007289815149447067182878309207927944951996965787841233999927710973051725177848859558091913526484488226299237222238526688446256443803098483530525131441183780895371593939951382073967188752716238995888106680559726509221010208344339876680314230320184135697222655792562468251318627105729270816693339624352341199479933347398225936953981062440008563548668812042605955691787957689173792457017333093912380380777109273807277954147341379186245424550648725870448640237007094136903559926099617570159374024590059682854114108586284597749842511092534839054566298803421063796114587324299567160766444913564737472008378509463426721549593099049920033551230406443048299933796167959963007282723125169266536841693106044687640189661388858179641677846111976091053949072226569397032142898356040036092893753779039161505971423797671350115130246418401577072038955921763819954445163063657425419037426454835911033134813167152637743856780407984008039194945376317101530567008777811458083233557218447356073452970781071983655512857186208996037953879024693337390174873336264595562404717559590574471510835266579639395747314425408526765782730114489920339125369803409569866859382240572945148887165125393253119170156353377649082729216988461844792942217229526182595181515761241544919716020309274354560944165298243532614939344241163551569022594387068363350263549053198759261253764915514844321163027085090659723793585295426636527056586813315482068963597632238255339988088935041819789752347367374826295141021003550248630713457969342389103000469948886896690168410660238468979248975782757992611405561800888842558661240304686591269877130060972063318975604321630381881095758821369523674704525375878698323516220685364011166893163077673433938091654599214230510136337574218721697862430112774699540424175664058419004265850294124275892211182442501054440537613881830766880782783872178987450362851626072189468594849937533141416533044812580172242793494319076075941116448520063712985999621915531918370764577885097576961139868513016900372149425297665517908925548369018221379496841846920979592424109291954521727283670484455436933738711801413500288772026520140529023617560839006227138122857700062921451386019965101507515885744531034354998785173057810100587530860193193601172827148876556028753643562475598514012718556937563311531933876553515134716209598232211515772521662172153808860713957538513493677726455802407835247521757295267492032147693443177594512220498860149484314851310088569446742979765871586998899230862118283291970353369976238366920005771106467016099276544845713499389368091052834383674051285677343208403801312208027543432840881113008111256066922120313648784846591603937311082925936159823976654483064048121412392698628992495118919276293540834366692919776919612255937088722373515153221741742561383882357567565732983243124044554648797523056955608899581875236868476116020730009461483077746451092352045961262439082999992776311934881836112895916785081425730090004994444975256232864905096816655850254723424885321863206238940888877795305537877236916785957216287140282570397424696431130497002411025163178606993178546224909723570567690163941212644805753850405089415512205413144664341999947230113965522302045408592039239025165730706584913164109696461638780753003928653323901523118671294176243382435702383517210917377538270490271213166210525639391676834559370000447505221603958967722900084209706103214230087807128850174805524401335603759155014470206774595387995734007296086265252365013898327157793613361373251170050396536732494739627002448379820712297354539314918025599835320590483374128816958498080155866528749780472200150199989620705072315048676117083338672034643297519160998249739584387387419938556892890207353764647892330409162937229181941780312539480181790385189303513587812295835095610187019886249097268407182081609246552604551098921836839590015611584181810276774350585455858149198549772097966625846811432141008734960773632770963093818808553049093748877695283303945331245891009972898376887367122042801168031897793149471030675333443150816456549501959809011268185103509696696407609058748751715836872429022436192724900043622984798328713769700419448209250852656016600916101770597382898804384145435437489971420813382177219937118713442023915670810767580661939490497479693908620631647279450095011622299610483200022186281104346211532937144407128610426854961502044331705265507803635919806284831840590340519561399122468623499000886775747737562988910501938851256984937914438188307931772743024594844320652481297152946379587481339290031400218582513252602276601154043900750788568662365435680130188716094439052772869402779920678335737748430291133793646088623894269368732550176327516480393059738170489497304904290608079101082668690477516048791453145857438563815466946256120788859987983997736004715233603273985613702096213052753258389943691578084684419078192879301273329755780163059646095344908730332184125582487444851448833662604333200686568656412468724056579287155301098412034134116103321023399984324403793260085392639974708942627595013129472529837123720494075504822365775237956074395752566383455763149646562349759145833259401727684732063863332563633064680880187890532426880970219219349231087683497903890092963875866767108372721597286285422189715907677447095827258737492911100172512264670213594811228776120653024695737749432758006224631295701107459165528677903080471862965581085442166395098083896669650906991381868785002728979149533849475434750610467344957924619362607952759885500487785078723268029378849983440990125398045383807871181643701940852581126279713406566626658961039126736567535381778036379853265755789066281373909487708279828038768481069650205375028362217021635183958095179541668242943985136024160648331276067797231680782986222769232103833781126182111074967524249991489720706403987956348074247636645995595865116000078503600662235491847661174211174062236957898866132765805785790523244817047995283019267479110113640748206664459789229137109912939989472906830239031902872784839835551148956575747485689199060460364507051302292370044718139500394424710610937547534516226418500117545335304185256073619222021778394978612873630738464545807566435150172551888834384816159420757426601913708976875091598935409420015399504214945948478777071793122287661668794114497946852697547278672296055430627389169741060347656629159162532599085465460295437456840408372525252725104891364084451399388444138118768052790715480701738603561059264367282921197005410646897597507776147591529651905484698162364708358287476952525933581938104129463499235741576172314034579411636323052022519386547290399216338416054390960097527755704568617173347723507495125294628800810258699399055342824032803684672776176000810229854372738305949127454023253659253094778382551846657927477342046029973815203507882749705678387948540450890799693242865634977729987055703965868217313281624402884266937963505548185020968827225851035486429656209739135595757608257267515061485688617650547618108338041367739498489527867639036097772271621293838955867433729606847412135793893475889862091237216711868185367532823716285044162778195626077450388037152208355854065616195959368048105320462679593560444820259502188160216550088731848209544876621374113876649422500610032768054969066099437326070802813411035214019166786213349703188152899561127601483370804738397014609346256462604176484866027578880835488535804654193388731461081528162482790893135874920992922607899151028276218110608850928585539924517327090735967612952918574161738208701098341676702553376249806569627448517708638766334265504108308797381442258116785035704012613239077575526629230192730972808059913709784236804677385149048345818275482839305812963052046388569733500322496033011386940817070467682026904354685255490602703583426861574989325917838980781377293923000478427217648354311057903076795483486274072372750312885560554447269340742199834554712999145425676056403259681456066964266546609266166295494416934109025689428192513765626685476874827338296497105621814258099579214029444006420645667743175247519571266020242048473153266922096569420573419062269984171365095579750783958097043695741353941961732131192922136418124752250307924127511111233773444369801653439503650055822557846606601609553287170288334126280660978808052677553192905288919634270230321924471230620646709915381782572248801902191134445042467429312561190021300787453893905682530674028871953711573512115189109899359528926311995527476589340787503722694034525469663535865756569554822782550341658722530449268119846447000434209795081657389295098219416096460441043063814004540265824734882789834937876926874531305406091353640778326027910236193580212954019807301624962561362734676031268226003753847370078121091845665997045461749213403042585024751400813002512666225708976146826436901586191284034301816508094639564698465654300035563223521873551302414614102790121082045691557758549301272438680254911682240901120736293090050998446386928130307219533592379534717817365702446194879597221675428822459222782031186582420087596488646033594851727283290515355423960463342799959523633598390365523252848526279419935001842368446012789883845554735424922061668114612439709771314814600325519932490869387728881063631902875224593112843066881018455912847614120460329689117431931558254544559927731485640989214300612772961146239279859000204863403277606499993983893112684841810739738533471613273253717680638323104219577129994938206206419257115551541338830448348262672440880710988287658646106295668993464299717155919389715729356072510617272412881041274366027941323977927902438503064280652850349080108032800452277739714795174710450019741558568341872172865803516731306026081354817043476533420740486102726580759619577204952683749066759345750671383995747287104590529161250081857562588463399721194245019006334853816486327397954502040773348808714709343402124512702598055535623002240768595165978879946733457400718582343964609078385512156644587521089380707074629012673847097559220181059770318323225082822576913137419678074766528921497934035590435301994232015776875934726550250942784286858165885984834337811496111616489426304829610775318111696901097564239086416759716913683993320954916225514258315704282655416262856479157269202488967698326081091350479270394488646071990843445715576734705650782596330579021874068932573618734044591142867475318402923742798785240734501068664856262765825636591219659497387990617667550700641273631816361504531278307287131149009020386198715589323761381360530905700100816275440163047152675905048140596930913020911775095978351321209644672465216647963673493975264682790183731652148148720977629829331167710847149282957777837745530954123115899785690797848603985311104416562086076523039676325773666150351865182612335265312158011367282667672045355392276462644390205909992474609185684828838673724734047319605952903794842104160953968653977075032049901549026348548722773181755251817375073838691296078102596805080626851853081325816249205215377620035265439415756620509747051725115016567351526451849978984895907245632838742489087952593304645772961880311773342479766582620333484199910925671381426809358784269512964919340961600208356335317997174628756533336538477617177655481432510356176292859382736176132589391630826299732645471269747195444409219989463044043203623714485773017952611838674137542960635829572202680482271787565519581210367592541300333960023132853954491433941853343714075372013687370538945203942056850471047181079034145179567979429170575467510883356290461774240690654596948222441842368717722045789557222129665599409333481939726566597524264189971729615084541097055899679100890956089674067971224664539782319069903742669103098470322234644115992794674533063123032951382939044533908233414974603744246148776264553812229588714678743441767283526936191835925313818820913986339574898676220763891493015199181399106682284929917699304231669276408055801439360810094300758784936830205354635905675140553165641662710798406488382698973391758955926464062477179027594971257503259106075998843300731160523824428633794519500907282245779542522638289790754125215697351454466255239530641766324854269628852141098732463245334833724146466813422632753775321791210576762702855532442654635338200740445422754686863939747326032898565353854729158970146645477433350072537758448946140339802388019774005686260400113463740943163653661358130802530316629582904943906758764326540141928400594247017495535820733727249826506386138380686780388909854763517695031785285563434845376342401781288305152251198760506500027480959045444250996743193185745568675796449513120009168721220041211112149873536065474272962562081350819721607915040710831371876273223431307481027208124164684579174561560305150561036959664587461913970567104685561907812859807441019537676304152321153114120026367673686325137801222511007447918090891384927835833173539318527432569354494466881325695560685691986013081227936192360172745209873965434198369267473625264261395627523510653390750857947271626357272087025682906724199983638765204870022040535546516661803929857730529984623776038618972237057731864745897331033870053788951782868147619919441797980953090661102655944911567523448797640321780075942872083889644865368117652713629775918997500995388752079627477017824289958937390689824555753020553137059464807353714138011332762947614711175243510725778525787700576813263828452781271890868061051571415599998949193473558916036447782279292773811286683460469746020050713434594774465618958091129356482571679887707717227173123411309599752774950385402026859635121993019718547125152801563401657293057216992080367296188263457448638573432494771013550756407224542405034897140852746556341143636175750743796279140534612548941114601259859065574255273850909768092010629925679516214246745705009042433978865121621730585042554472125443402717358417467318273090839031694661117530136635950401784824169094620000324103201726536310654753523291965977197372173952070522350535821112763451716526861711113310061908780782201088857780525520277870034193127037203975666309233053343125306287349899678571812488795176081684578620122133844327361165155622350269214965811949349999395668205162431519446244509812297671467189080438533327990023168556698456017421431501577883020535961012454128673198974420154486641895511014787651720025405625908205034631494269653211414169272973072618478641804033381507577259936739651485639573892413387879573594448892879093436431787129457921038061981478145685720849367412405403012727203516994166795275777706803378453023436491873537827022084916178931639947656780865100826375466228627005933142585083689735869403988263204834190017665720504585107938612940601402021187291116020406231976330531235614164694659641349248923444519580201094425235441650371051870711138110340070683232368708196804613324247653312594141909973267009700939375650924427579481440468029774791379525905526542159970183153141572240085332023858004351650413930446889098553183950934494922896465530714887897290917240088423877973453582469080015651623969279343875310436430108085790997868631514345151023405187050604647381062515203364578606196024785722489715023256393130694977231923975488278678300746506172368816146025017833331845814157433995563080199616631612301807862119397264636471733411982414846809365192521170069611537943486749137105974117451389033810109784552539258679056911876868928571060232413370424030632966057193542386926624574838695792289429226069195407941525578412349883284356510932558507380092255369494742800809443914655960331675933333223536393901870896247023999795706309251566668409171002254904379071204368866594852409634821034767677958413716082418259769238598722842958334120050854828218750259897667656408373548873915001255266662621849094381550726861154809263956851668675831964477730794039323235847184942552870521840788240360689828465672099039763629065447131997837957337218187508518066448123243889427421471598598447549131798047793619463439617259654121430182183432099306396102776099707009579346780054677866247872231593389259514749011912224593125639286887913985033122820429496704821101167516277126349715713677872624999697244821837157961023594283715714204986330215572707956625018471906805725200144615514911815323929731097054254356449012135073647594009418191476615108818487120880917113434493133528893089979113171059839983611502351322403428764556045053879989278784788233926103912977928836944396884343018573224436765344956186157766346595166380911775092054405118140619519549551153376913099111408839453511816574775104884627840090775476104745914818594276631999796568178836803779972708662285563791002864583950563753412079739887266718097363936359362856599976624307532573074596848550783968306096150167530249813144609555863311521819246364348709165034192425799991890306286313619783384799977018135941220376981248146442694428112213963820367231019795410437835312491335863572524688388060575903453535022554441537115247376500852602693500042472357050529432190505571441232671554090418193761326018189246351573567322508514840806805724062732799539336907423817624666134068515923342847496136957505043440314354488207929958917997470655494053335013568301556427655779559416773607747179667741237566937668632385704694847900908906598265943668612586542852322281590093141765795337267508215235506953271316716050308018681209906478202692305854532201888593067160409612326506658261634589227132963566748379385791276887217467773437440037701563857091443536982594767423749173664433558883281736873469883468937367354743380835282334358321475988617963600587754937514037265969346836760499717835077476992575068732274637348240818020272088635041860346052247958799363576209349194911980729727174232309179456363061362366241970759234387928039893835097299081606575779354171767087339966297683343267949955389979375471915451894674014991448372844799290407656488933410579840821940008741513829773354414775619616704728343341836222374138779185080087610098155401114736896259621170925711898141191771052604277988378212319417314508493469214539304594891552357561270128143586398712284797484396703367004646509331175418225522274788532551784393907422587638332005620483164137337053327022340193843632281910286479274569561762961466542489565319841598375560593388695435543910791111535070924609656939112240554636926730638561887001094029214980489261902752984867730365942012794577522951242832326500579504688809564985252214697343706802069019586689881576825093455066295133246456973694594863311544913627687873970550401062658012832679361034278922221081969376833713917465456176331771218260217916492472559960246285421518059816315353882862825587945763198095176731344387450779833659617524136055520156719547910943212055848832623009232411756393550933522159387663735067154968719429032069086471768391429360526544974090608473925819197854926942684675944599969586875849381199700819199067589755556469526891434154334255448168118526389597315675889322723990764537726647810501870267483031619186961553861184493831442694066729029944379058438231563712993782095554859277066470726255665334459628232484344475193649219475326451525599606571910765189485944472141198466020229685037237102428046510372293720905073206554632879302319227206316432439125389712150899443668177203588540639497692601902217548001410903043245903416010052623194411063370088458132505300192713667479183820063639017628563883132397542139269684319102550325942988662649415263575481945016941149790417982313928724637075693423405875150580898756596737024395967954445274931014561485002252037464826087543189270660819204587547184116456846236148825660866581828721430139419166727590329582672000841001858438539119597741357148752047568353514746127530581346730083639845057110691558889878426827599892393923181180100594155644569153193392953457498898624613022154442647577432416996086647998490785109823861601084848968866128066727632934525110499542932640346114414383150591511721780064348787411009647514402239588118176951126181761010708964572930627128549617759773428176220999521264125387175091268748410417455847778451687606045690056545543252443087672260833859482862309270841001668238160796170111589224226177096903761373024732416650108986969978713932666371606210478987790497629431663531992249070009342593873921512469683420550184455694126071729329368400141241496531983610475855109860903311161392228739711321704050328126370015105323512059731127125143074743105258750062602775607886849276112787118070845123542471864431428445568760440177270579143461303061001850183008717288387178265843943222813601605028800093692412899362845156052814730709708024006087546383829128726644854750498854158099576187818991072570147804785948473480632539271055476809437907082986414484196290664903988435934074545601697941780497579707833039620360785955174218108382335600878307447135009123922091943197983523579025527389052865233319778368606775769434410282641277083374617121232369001356290842015189734634043768140427423251291055578736641996800351026679304748909290931535514986258537477859491710751446049898928211520384454618812544116389778156677670790302667242515068739858820815556944962293673629621123228401750215282408565041868595700912451608605161179805785081348406478869692889429459165046461202271805782472192933489861759807344660353177839917266485669444413013601280853362012981529504207899736503361740448015321887928829369904260187527311724166064363523266481183473485980491639602097474499170981420535142393513617083195884648142345703194147198826699566543395282517433241530120198707757495817210277624786004841923185480410668204030164259268216034366280000361891919236198730514111250871866368060144896819525650139825069357782778275829090473089427130052872511357121579590580782186223095076737283586808561128956681122596465459450307520651254709419207232028295611167224746839989633321595509634160938241494043444080456689311672420173574179534230411632876978240571548942212756249766337412655373883597365319382813613326052248678091396972807085201248063505432781350040129643575800176114934440428621052250935787965703671702286807318870360812681752298767859602436986994674669182716613762083976343698523683147101400812506228328019864463884988384962755421864688292935302230001516236873316637469828209654591093496803126445825885938789644087848265862376403958477580672938465412024006769803487625484103301249610552754314362961314321971615612987700121142648987333269833224252703842183525225139013421424136030928673087397418667189782007492289197735491961782101788012186257200988135551756238518295031931925798394295252851085920270251328087481119513689548499116783875694506090680090123610611277786068714531780743001376849871523247407443624079963822681800320767201764521184536957012555171657838315529529234347794760819972429974858907362668367904997610971907532928284027523433104661540547922270115246280118624015814484992230445171056075867640468980520534766894435589061088337518107977495651764178278830989794153325583407970251859682101082574066511565651439062627752931117882100332850559295294144855936819676390745735600924824159157374863255983686785443051766208642078151324607555383640865258037338244402923430043382648834622400673964080892054451415808071330976013372514745771187914076693981809567631228722705236955382437303553620219114003677144924544159379918534445859258144400071227684188314621104364370237662800981734316502052038820369582525288131212406380238116875922327339613019779900668726335190395075756805353737248112137235352657320964759437172168502661276969261989905355923058357970484223865135350428416604142361865816184151488194265373667175481549505912463961004615964148027286479666890445967193422946726684808859452853576528188695846386582116076932470710102694561892056257632395520701837943964740026153142108974023819028571014044190238726916622963593832650158126166477055944525131847616744243598720717262348934043031406910373942767211898797305552483096980456774520415338997866042884970523325564462844720394320811201388858782377199615948084616414942632137557227166747998690421954995503578229157943690863245981180309591872949193181191012815642251034953286980909245852530546338046785102742808714341751267442012645144603398536157438965709533918322184034811078517602763751462829062196960990552018331042122376400215311163628714931081835383625928534426427523872931405499603559941382183084342339667204116258578406813409189511727662070897651769707245736703284178530133573405725893460224410485830425682911289729541807722667479939171124316890112763686991452334721156015124362028622690634673086360929157268146029684143053397319949467818630602794309825418690026544043146212485149811538325837899829328394540902149413536385230820719840931470739942428841461289961548495766383072470745663575275787215812736621051096334899403479024636099991481562857723601597879078862997252469388578636510166665375037039571774330673828454209557882462951356285093072308624293831481636108980405587901483088272477826233245933426841551276507940062110340927395747361220415396280964652709308422174740147669578226630462174270791555492281155523704148139837462247230858995752684414643885822822685330924522224157486524682207859458647412848565387728414055549774557725558846904404226442554818431363806315013069139958094758157040829064393647960918540614459982312877003048405525091491064042221404345173698881982582539779225435305143352295596387567330268026984608477357187617739271205081022453817382531952888782368270522440681769695770257397972894884833201639568521942883011083365804139195149356928035165471497536311400522696859043142944058177444006315053140465114443764754019103094340778600306605979875408368152335694283911936865587378391711738124993688383701283648422950766272576478306524719067608455239542843716331174071570484371096966821395611817359163428186661187303316703696686889141963175962829056118459090737798519110319996908993553438215936065674872757772035193350162952345023324691901284722834453762482873331110354114393175733572452249192507661107255785060981857778725476841530877789041564399205563998318170495085286424234427444007650262769537564163648595739334543615155898474676494157762131521119844258165026486143657888489463645002316233564257975063821144172314322328632262053835712951153288982991300883145735262807983874625811919184823961600554649714215708566418152524258782797587686269972033460338569628130350223605067773349932167308580104163977037819769262675687638496820652958056159059170021199439648879886887517501311876660465300437214003146777579501661096356344012828982315600894777608938333022032430833424361832180058516739761031485350524761506936348878041168879423298051867539341391763590145414172637062650361163000231649752699966262858887426582635321116616252563018247188626791908301889661608948648951834718715070249921110471123432740618648578628169663199656206289610347659217010724482874037361205580209322951903715855811501459574766739525882845388041935372074843103912273792895977757372872775069173102410348012983253548608811872984976277343826200997304654575902305219856290818944606759633630661118082160505228843266370087171804103961732427405852979945139669401738154822308087168555388381224322765498809447922824908605902089485594982413025421230241195438753315399092243621565068542830772324289491250054737299250926640444828742847452970811356254345550896304378650919990580068157724796537674051098243135450679662459230310269369040976618854728310617084300984086759219584340246166342866845545631936874726660516337897632788658749441867794323647832926674816713428215547810947970394226384768899053245785287569741799664955170497090322494626420366871273684047676278141744779588866167923571113998030138539287932045555359765750225823078698747872931657716653984899238078491520910812188491395149916523595937259030000687337773589630748571112979448885073642283871642891493842109882666733937380468507590537247527100736692697339166179908087141137522001105303233048047630569266867150502681809174693525019301960545587997460312143149919192324785759724166200751704808010561794481884270197120925493802086784151960358618352519528545426046895381278743150171359657631301701702817478122691275414981054940796246481292967224117235527687345794923546297691161724647450062854758908530013254026489499781838336329634299764409490096169809822176310275612199760082158712544692604992842260715201437475867330753193730868226706196961009389106937771850851603404567632046282531252663655027835847935471915639219354734342112104949294870275475874566099317295189922052033205959029613091708846661743352704346469084166378350991311668395542022199247855088724053538709892023273741953982792143890431691915657738791927293879768725858897326742944703011197272372956564188973554812430173785664718936393983485373251708395112609072771960278969867794127851572877116774398226204037397706843990946109279571687737106231331635874750360446083189776796807402906297784245754082727862129623062207439371639828298886898987573797146805539330698149453689871389130471716082839138597491165381355516301755897981732000569606047349494646857950824866166810051290801676034162378971214257479181368015163482678113664384105688916995933532546462415210721680645277506901797963794297806617006835724769830630575359340054018982517756977356246647366231526713365691249200188108853066315044653357779010740167876201590337337272605300968369555243678847382997479454452544441000139586580561352707302904428119076468783999132121021831592715454385493975941509493242889245584231027732443573248145569066796874962582115250304784658834045527264298980591906454824557338246393749317667685539304390359465753026358820388407877180974814120422081409208759612679870849396052659352308567689958115456917421116272907444345949975666707123825236752578655792604651475619968907404310580905706160828171908433968873444642104882839846639995358532564403670223710663567359803302058750805496089828327779868366544869153424437165092330359522273184184501717464968920291576297206797362764587005875224266698201732186625722025796617516702338691179239572778381405621426003795085775255296026752058333807835283194118884015397366695290164659353275381005097219444887412632538349410279486902638270551798797539852625001499246045544992035702543969325840044141419620622824400594393063537638414890723612522926488065685120824430545711461980922881260592226840907696373960481047239116759855886788262419514740537369084183771700675940456308229600561740658709559496059422667328767755449870586293675250280796684939263265524909546733895772669224793143739102475489475543907208267579244488858982805502845106879896217509046428579777863304649807510184817347170263858586807775533141663299585161451903171731971401194010689168884770601964278167965771554485248413189397602489532107305002121685495969865639153326657618025906984398278617446099243178047435836865735981168944218623095743654318421610556213947980658347746224257884690238533859127424122195120836695814835706680784085069022349629634595794024808978497477669694522621432721568287621093263747666856955222286374611630533900001334965878383801424079457109043603051333857572193199443503195546051131217615475368964421555067583416166801934638365857428151665977194747693306257460879835449476674854036018023228909743273592920347409273871443699358710139200225126976881973469151453136156581841932218541779088914678763623083939691278716152619301267591757598869387538007475009876878581596107139769698058838954704698921122243934355129333046380105939273652517864115325664985469529656043564252027682613091919142832619140955083700646256762257603096847099011864341897956409348991897808804754830156807648779484140455367317286967143906495233498103663418733157697070426099975474221764909275288335334305161930218626793050531538273003096593031911015774165088361574295038817187998924639706471482554643179789901959433444584208757122270468309954779021719256566967200695053682497662639957688365191710552704561431072464563971943746712149679289027052986819690350764108656051726526843804123783133114640068537329124510463994952629050611831033194721106914154249642235187019679395573324799176770319201243045039316070656283908307149930319710848939278701872422229022336766196837533332695976596586430153809866761836005115051296024272415554891276845993616506253151704899392185809912945803566132699657319327162946281932590772022922963823577423183253586219702965411485829835307052756109433755079564022786496976785201092028462997819781130044359050613315356038939186000818066399249394780892932613471220583601141850629358195302233936814169798745913070516724353317308305358723960636406318815024308000762248207888128968371345793426871525086497490847629808541132899648892627141351143126778467550894535920011157935631033979843959539643325996985281632093232645758416337415736716974856669654838288777067721024201857780186933791355782896166395445624822550509196440285489022934574453627353758232513228876658619245986837877517349464392847081013012178755823888141154408595600298915186553988234006815553071861335979199310269794199346007948738909520241207627124979813244979717774820092145131913447245053245241361582613835352167636672141521982130999017526010152137358526861790691230007087270100146762400811597776681399493344871196068444147470688174127649318957772690173224126930763141372208148140296642119804467933268908793198607844688989687496193412417824248551735722829697865325672658818787007571852273110386781986626461877832587550736572227064462668690228311845781668220467793076858076473061767528285310857484378655807954654132781452752787049339698571989537781296041908001546050912125838026936116680973448159162267251910201324682964023318632845363922308700286755574549997171935871423743721450601641165459914014656821373164378797030100784058399605783826637196322652421491175386454639531817323184855354867077846061994030252620480833213710816002337413067548329181210746066683450018227607728875727546462184193240520477066539652075122356705338585442390172216776919726163268576268808470530293237207026286110715024685538989001721496632111658675632205673025680744867892240193659102089553797236884749418117632650264855687732370142808112303803504897088687277773612538671567214951312346458690675309532389912322193490459969109038944365538475255755621767729092648647170986596273397933761273328924802072554824061047120375455241956167893607197019388466230155005216186183408005412099168111961188986228337075377784505337840907011380807294073453980345523066592488425435160833872899000231889617840119477104876434295934771929193998797299975747018213562862434893867194112708035757581310906386610221636129612271825927912592070547896971949121412147476739902039985869630527429758509321948527541246340587193357177055277801767831728094975828994946075524731062072395479787223265641702042448587900256593302304650573293263915429145238193160552689651765379387061256842894977732699022294717303500746738871011388309038791627368697516192728795187331096603046270456625025108175345920220677327776887623247191463285538526349776014658104134812623757519402585941675829883306507942066645984416118494376227270362427540505540091501918469351966998909928528151162558770541953463837309209639013747851401248237613150426692717373100218798762202213214517143781724276095226595186539139623556147527542373471507252606056414818833095915908722108556089301768441199023292521095069012457823834121813956770869879220775074336358162603918517137899513997784145832778826767369911624265278930560854087338522142189115367133569763739169870727376556369683393141654824339639525531195418907440932367579790990956038235046853805466478697962471999102577457734182397872593467308874680540244471262436006338726140284961680074084656073072325554332961224038047049884022086512509022203406527399726040171608606782549424953567411935168198348677908475010375914691473338415692455624073412216672378446094380671180141306272376529801690528135252586468463442565152426250182758162945363659259122511467296925780699918296297561049662056761961062273741311677469766204191658290572807245456787471480707041405832096078411597227566136687376844097746735957038861593346582571185134559163445114950703214494565072619193507976736700817311276965132449778352777872975341849386766012678763689623452587763707246412223554945720765689481002285973060924998581403787961624562097293074862881493648212911055290085621667951120347290227743125103105922059158678784106558794986167588449653266689644288150936839786630220779592654285006537063383450323535627845091914172966360886783447423310981123201318859989710218771639408119439697876806924569911291728486348003215290414459841728182666488579174776760967131440049546179891556545134989090418687853944494072453315995133180655786082017667426639655216629339754400579145557632254781545724372414817138394339399815189644781745425901277021445102848816923968581891910576952721738374554912672556931819830059889061572973243655099946012626065929979269099746730751069349226915275359130473069787688590094590240240108997843994777203403605337139154287982570241701967561684242925096835737755765081096045610182172652330943300440990364871382177917998897884687817124747205822309121763758734849129857706031874332769200602221573862618732440817435459893764184964092929280321149673942336746935918097405074325391136340370294002731802791000894363657269477135243324394994255000791454743680590854199072318520512875570803595242166824945127744038079161325891295651782059595154415046255574305927295954866050009105430775782812371258509163604502192554379938176659619195654408692942960578516604373421522442019446509319948965240371830598291612195471716397848161982689590612074820482382992148993869923299004047235951756551465972145276282019665482539685575036899434750702519370102834408683431103706633137283087769539352560639598906031352961838892342646522849739205026564846548983811047595417161467200333481568365611931492508315207201194265523232006954727414727909058372627899003924735703446077175026115485731977301011696328713809123704724622882844744420073173190396892769446361626522342017156004737767425176155961669466788826750912120704107554810255726828923831347701320676087206169544003480903099446353631543814656275825661809270276237943664846012753258367353795288678805375666763014848463623965284744801948043515877838456027632069661685411237586245239248514700906363637017590540066382733802134378953109672753019462652654549488093200695686343083164003290293701040179715698113276162347363653317071167228356318720946439845977583514181768114508545090243334403809093631539380568386189633440170760116574369252482996025730183731431809065422066698594387495490300022345627222149535990316727458415545235699891816709571527730867533069150546923085151810243592276094945920984337779463512450205894995427157568564372319073462880367826216079228966656963713455420595858095088675544649508434940775556434218533840644510440495310672332143890308184170515208300245638450301068940501974043538591343034957475411601007344738019296286317575889498086702814725387735670758570318193624993074376666167819444054266718876409973504396875119619329169729510780834029591281162739300520012325683525554645181971116473226354572437943021211197104253901848800806913563685450352052895383187049629138654725719035859049945022486525528314409908902685014594899718501691480971475951352675740222590233610507123428442552216956078913280194332732841074099191982545014683022230849491252172628028165261312323606175842536940363794389629911770717544381497440669738665977300110054450131208657077354618712528695756615257989520699099900424374201084781859703401092593190300888285150401792595245079008379276391532552792461492005375719003652310304651616288216855641102976219736360182881025633229052332750636087573332352508984929018795283179483756266843243231944694106842725941504041127919136280991681446981632066074614974253712399132297888922809794085175490524076133909752778294015452774224293856088395480514532060040087818367284296380563622077659960826434443260563134907739483928667225581446043146893133333362461599860341872330552165863810970200521704523750143768469934939127131040169113637967911084216850408372083421739883368001597426681451602025719858325308264711896828945896851970010546082001711964959935867546562877925894285074220696258450731697297108252782042370986418452222948151274504065430156249945827418926318868717069505178381283735635750370394008758368033029885046161841355447432321196692887952956462781185375810038789962375155508182961391280795464393903316132372001957838464774646619781586145716084434177569401473337869924286893127499888323458202007294997986216102830961363255258631178094305265963447085391077635456262595546802482080585757078659197585435554619409377289454201304212760541169320669552471305063310007291013823936767626218818143581985702383652560001972697587814687884090329568487387022299260052657631426653695087577345226934373750876819543384412498783509542897930342348289745847963071787443026902361682071756788400482691204226411293811969877266141677027928065937898797498556179035370810658556415489121046564167319967097017820552439722576353343600697191369212235926276494808486721894944544465540606143588683017261250732444905684532231008836225481427300547584685810121646606330885285867181772746915480759418374438088551459324103516709689231710787957474917237375781220162678403179647914395869172517084675380664609841377249182366503737772147142615586367250041326054855434185146467373124383584489132880493830718574842820044567607525669681192623088978045049015939310602190784210221874784542617163128520089506788543275904279513528424286049767722628178069074004716908518546864104307419143835738653039523806076240892842461537813847975566359573195036359594438121296783145334366657890221883034625118395145166217414951335669550364627970006186724116368156673790292853305474246845866890613990758121654713514471921817275544559603784298909302093352026776735377984367633779200201921733636939953022946804980388756557854617771896298636021595183491208853663468013640570109251263029809617584149199907946287916201166024029794817998408733731842275881491765221967535292696461996177584293581476977190362962523222811909287690990196252315387184862695920162842567058901859218466486758945328006095854712450028701638922819873444191957829729613186617071501644319924845161156630147461110030113341744583889569167005424079855948593388142853804951439526668880196273420965991148107100852402199211405793382592902417070511296108695778321155991152735217648198926681801437043777042501742274234657122726996568119090046556208297094854398229942054363088864081754885716434838491384963245477564147567615268026988833115876747788887478528953174608046895522776551795216078552877432351355612549980282492171282058161674703328814183804859899121831958609149002626456152779277496826871271336539789033303736465722427938409948337764121524538672647002623763007325659415294504801412678278814476003726845246892398177655383089570837234308568441354846992155095765585005502475218628108974634912911738972817887763812827732822707462166218095578625183179460872264914061296917614131355521533982380249046803408825401397327547845594079769025169636544605915962683446087959245854057364578382018237587253295749862129081026644597551491380876680156052247151613749416161792714551713429748923718828185484135212573653420257557958227700269847386887841992083847500643193804068132104933574625358875156940560039024012774469739464693938612869096205856827405113975697090080327482237544873929314596359933556893958128983691273628033211481525861136410528611367601516119899050534031382049875969878362726087109255974114846133618406391710259591805610200954442954978167687802772248958115933413498195252569963833638768674663172314206921551882366439307378411658064859034181606057273115474130868416490754719563880262102252830557534994690110081005135837194377791105100480689623594322733418164823172573967930093686565525103953093861624763505019180203081041819852448689996820159202407048833595275902897785241055697167915508680882647791623243747454642728631965925238171304999245759588611988001823364373637374661558508664611172888516735643968335664405686911201303279564105778352684140803835370756264073970439829675639337263772163583653752548414239593504249274032325023694603305474436992080422045138774107105249116699763884333882980165354633593140837491013341598458379691651852577097278877835516298207309665226870972191062247672556223363854223810277444558490356271131653768150883849401044853091785899342888840894179811977519332817635985276147417447924790492476767644173379294292328113145419891153017606838889351591905917758215041840260171377849342694267532526672636658348320104775641915024338285337844494431869809775021160810103596387159904969060513162619720877004533435758616168716605815914375975575164074373474722242904449127770008000684987195127637010715223117096381010747538856296663992777745434583450831740398411259919769611384914469352729606647995769116782797595013103221291401200014521302451914278680317603951457235280581748616779531093998830304611141294519453107792393367979798109811270616147848754935746822526801649972581967238030489093292880406832252440954212697409411022274772749807714605841141121840020798207428157136869338231678369525159588418971194822133452477285074044596880060043168332061295857736203347801317311137136788142856239168466191304392976009740107140605000312566441641705278717207210068579590414914537153323085891161594388839178534964343628503266836273835909543473369227110219998899532106615075391132905769992896868252227045151474308587070655873581371671624787206005594389624801849264077690023631767352225768894949196029171721399394723334350832717610825095860144245312330951136264784421372759856543570098811076712546044741333597518886799489591348900418302229267891504966916256515711289698574686127247005279105652407921615462624970368007650708664253763344904152797496214757108317464987610911106195485873364137890021172970745658984806658177069248843511661787761124843321434431265059471819393167400812371227845331116231137320233591449259565239849672894281254719399331817905091071813429593721943998171854063861616949780699884047624356813757389680287518019201476013770730383190403684077810641287927964705895625668579358201024759956018782903545867630109637516822997881476155725781590193093348827822666579977915841433646968774201587686638577866288222542506991560611452176643226269328325926226859049084334416800087197035497353386396282556776522939385316263277346885692847691412422288525787324790757391912700147016201844555803675331677257821651785877549575265951308773286307345027211451641088686610572572471371681553932559185377628998353062876429631717134441989637723310471799984388026673938647286176646766877559600177661770637192444889684068453124383399819429640614121026380064555198716019247474830490046139593848643106479171061241834954607314320066028632291696275882476847621286570580408620841203823533915313675241308873871738127526430671954262678445449250931669416765395309734109204730151977989082078383642349772016876989122948216207851444439126018032084793781382643285648629525178857510266626662456570096709830942018974041835833623729461622317346958632112178521328937238354961008748622118302248871309585457918745699188556178326173434861416923516416418083960627307844937909808219876986698030171638052616640228964701188189497788784155812432397990825872528652370594915271959377418101387715981260183190930722995116182290321201818280083075708260199685915062035336713460698148800738152546602405799776138281961639055201666167486073824303194312392132052065172792145797307271473958441372947165892872627964232072382507611757810648800096417633444512999280449646289811682286439630939093574027931446287421559048339988704322645522242649094027647569121223212781179612099021433943806147407081670704650044612216093235090097342941195586743890869211276454076317388762113595969672578798586334462979725844860535768721715995193931945159121422909310255906234715071279423345088152082128772677861396538324838532692168061479022263982375646362159945769280274787189174028400451776610057787293624487763920974532768224204760705995532029160435656454322146723048998120545607778556712384186643979652995852837658523198911181762975460805527809508542475441159736954876347465141649602722139238671031096403830002638549663855837569004951148844899094039563554339440150176296726006754354932308339587567008204083950495962227607104076739352927842618357449683285810160199774734196155524961718878762631652799512267583972424493917650195875697085843726733385217556812591370843861042993245233192600148964664318911392942675477984357515326364111728003182064325374680692076547702118887206270429500352364303749497993772722600276437307568668030561651106115066120212230129866928345003874910985953596806850416736717012810312372293439045282614892150747889177116509920630870245499477588723975773397706521159692577784314937605809491883537241041703594502540079820278348743998373822613510005301341116305588339338867193019269418371913491195017359888137060486341124905149514610413043932252277254420457783446112430918806038606872442463823402786692179607125005434365268903730459938258943017784543835240083853477971544870355986992111837818060675202271924085520809938645171649207455052649660256749910733053452406289778195608817283670747212365891454618725549247917577296263161584032886339202687198140861427032135949606981285525130349397768959706264321467483561217343223775730431947889565662132132868065236776224411857278012338223466112798047167665228467848994236176062286335697877509977453845087560427381877612986547300546818874961624914555226378280454471075335044773543586193477252450137837629601075661381298270533125195313202134778444150777670515150788453472887062580789590674866737806841000255381672118958570025124672465286134858233522991855043099968822821345486461498525038750630053518573941627988776710515715802478679898035439305232020064668353400867822335634711894037609585734436064350274572649367990846060312771885009314201975747087541849301129090362673469434136218851557853662261692588106976179710478257883257638502309788341583993313363891769445129359262002312022323255720965213517390563182521172259198131919061843281994161611741925137885782425720898257046295276372160812439665215326199147286275050845413020821448524972942844780174590150340900105800232594703491389100338129372248103758008281321624640265950390003561164889474834494237818156536276907632042718273638842373973246960511486022528833216220489316588262113700760662316742002606035791189766605214864963059218835224518588800090646578667462323782904294686106229616868994624006299405182902955921165541050967538318718271925533003880533669377759657453894081499009241729223446952295449884538266063969700512606780459186159618423073491277260626956803538008762641847438499787349525373699095517598068304531929872197468037853866420797569567684675337067733551294483961406722789701581828289098611509868192757597031015276274735898752404743728698252448403364349923956313296996811609943299373416850225247801847447467865154348425021858701680163672125198659507688587448279542938327249491379317064993130829057553291518716592528675954461074001185494903610207263182373056422356452333880509814449983788461246648244545979957531126282922157024857400005960429195392537879105189772016353644025369794842335238306608345529496009267039767762191601672994626237227944719026018180441837176894585579527565551053932885739850110915007397017681995004116853944095232290945603338654576750608158629541441660119921377475603198553249764407640200971135801770181567418588405947927126251809619101996459093279021712694694944499136723995429162447176073335368385909327645735808738466233490856581733484874157774245615687294512264297706245764666937551335011446609311051431183336630659664540562487161826567667529005788701211896145626099402785699070368418580837390622478284418339217325117558193264229117213116070890073891745945004268350385599430560105737396319426466834324537580115574529918238504625239837874121892306096360336688336358616804624411052318647798103616389056835534930014610651074720434670240191886815417176886789491885501043549211486589546082253719529654021525638266497129892582807360031880182482879083035249751796219482327797013936445771825832600476926682167381654302960096470797703650238493062814013292964480958145462937449256595989600069910771623519551874366619579346392157965454710001813998756321082073887948020046029435124660436788162812180116752013209546077481602028815630800446486471383715789634840206152192367815914924675476720711073232557960864269491223616980241576579332162684078534985646298336163400976365367140603808857615551567683033123777541044649839398359347246970878723301654600318637675213596279192039376538132865262654923970103135909766372032479847235206509261705087657252758778401940313785576903168073705692049879409395387124055449336849546033827264970232521294833563152076589675019032172053053637995007955114659545103350333005777162311608138333871546310863630581686351438237884424205180736926371978665949314560332962735325981579064571049401793908158523779607617948872095113381109960888225587001660933958316026539761377402613119961027243855297086716766399991331157555747145771477562785797303227149352403610332415418742892244976523332479202440803891962660114915513254529517168267673563482922877003172449761212450629700676511515165062350576150171048839869127573626285358635162710063051591058487634979420289088323616967409070206896870503284417997919551566069888873203610189424475298431021304250267076164005717583997185073764556432070068771510993878252388792442947595504659217656227409876534510088231029486813876852155669707209892638249084019942568234540697843389012426812339625356604825657729255839355702863263586895306074423114885494009926669586355750405718247015343621968699882330455601162335385461936735927726921237216530741347123293651547429072502855606149517569449699789745349894919000435421393240871140349698413521024797369753307090466816563492246843777116451041256881661106048194362121284723146841285706237098802019285246521906884627491302411104135786920516303289785416113324702946475519442361542955246771670770967845769098719122101859228042529484103567541863185683252461530908754477192377939786561947596037708565989508229229833474822788593269709809262546414518455025450467534119482086068436038124768182006054435764135032622517620218829836485887842102507838995703015198911764938587108169098901360933381515850549531107612811161999823364788139059793830795889051429555924546795606909462855670630394398517470559935537138958653690877449146770910670297082267468326653247602638726049899211152711079597018107537065204274497960067744542011985706457807222336058110272829677811085970626296369392319044265865597594196533386340688390771133489549584129563810243655153545599056452538217905345238466902629972358668966500577999680463955974523829440676489511165289680819203488901294937957505040714011605804721744016852864209343826039604210566729022394278038930333744176007982668314734856110512942852221212693404397243132489222480924601539030923799202954507972724347912931143097037684606247714700965745318029198468554064132693901932268222932896673635358844047164025445218474432036141025350813090776429441574556772758788867560010918208992188046011367432129319269211688100426817892297093665838134611106050318620933022463521239826115225358805917069211234473946016591635215861335585191200588417927641994169066765419882470322299162571542622302320681628711788162681869806577068081396630314677386609108477290036798581405070503147746741815841129845168029228725280938338393428747491774554819517621587677099047328204582568031067739779937037511677010050928593246081401918261867988500652359941023880558687243990696646706804898946537727469359114365393180085127924703428607313900237923385761774791220496348465504577906233337953795029060054216085871037999036864758618800380655678043881861211656457756143001888436174435586279939234884941921679027985787452506637475169703458574623549104342605376771888681371901543068418936537123930561385727116788494296850352047250593858513836279187528648450516254104945551679346711958527586534155965240790270512060831931822892289088129695816677083562720334829766964437027416241725359340200416582921904340080977848827462926812665015035954566198568538132560117892123755280681402493521936656807177039735035211640040795744630916913198378264016957642136273207584426069939931859302873747549146581016914018618015911167097028230658160597457216583209693477609932348654202471017707029253883373169760219406715808960944313492437245516256238855990475520811578623818250403205738615602974463921833333351698563756594192041137870110792998559051054628375608753277780708430542589769769626548823867851637691967922078662327070448760979916376294428708728516398235024160796820082176401036505936355189510325230525448218701558448685313227368664834486615520019293146580199030312561594117732812170698437885510591483636668310766781003118214416132618853625421154495231869418559487130961356651268281886637182356583153226602510314453210551180756996094145037774062563546623368756847896523982895293864371745464793321055293854288455171885062142025130599473005218140484462798484664974844410289687193442962049763622021431406320306366673176043610214733009964403198978870350201101713598452678625539037326068489712981438802398380335091371482945459146757014223887370076426883879358310456652095647844697262887112344044237959763005766366221984033030900546611640998528293583391391831994100715238094197440181927127753936985953192831843950211204901870854644829958114071615883808657803794479220957244707455133305382824343287661745368387426422748824590040783344370161880562424026052454429614313742297037541036282686923433365764854553869641947494243499814527453795200170533873474738201855140421606004436984906359460651460269419346530405812719268082039894465711417022233859846726042420766168864618362454884872752575118797638028065934429079665180688782010553902760414412659196758563330515688497148725476914873740334624272718587412656920866058815029566685782841205486620452420625926323426842277401149540489253967213793798074438809015156137522627554415889416031241473294653512023461468274285537087569578036066288242967882974958518477160548893517883784060041446583569071410973519381605478686205772420027169177348217195656226273648505803352139486859226521617740681880725165717598393200821379514587172410483529361567511229718428696917159747012995369012275876261434679742482215534344978024043134642545404379497857072514108433950051749136587037237377347863027814612664692856943382685375184070722987278816769199598555314550139587739380910399800555530333722446004625183263182916295038898619563671721871519770110054436200068465981616469118994471388085084793156061906513113595621726670033469065838202556770165228403288727439902157685126060705116607587075439353635033142180574234722987487003781747386138234448133295956441949543492506093733482999578505390656396356433234414588981160479586787395932535321106022509527961067577864722148533659841944302430132877097764253774278755292850620042240081957456269328095265730567179828896663968455245434213059757542489115709383802732077754222724326619942903234494109926122473231924067603610042010623647602086307922092835231699516105411435243915005597814123255655126266309225514979583703384610118905981179838021965605504249662040197980043946841936877832496233702108784015071952716608600542147032675359814397261534071008672283516711899331836235436126926041550430144861038488097813380851338053281718023681341478907515579656147530951785800100619725662157594500528475846897766005955730832502799444762323392073017454392605204805524089956781091015396712380030022495428135522668229684583815351602821883476090209122943222986266083686373754326980069410951254910941252805489038789972770514607583725167535012569025109759225186404275876613646143810896978722993334816971672219665441622971439020498695432738674749232754420620729873013476561917134810914202731477537980451324701907652120476077690508885226145823165460835666541875283964969606540344469032434574270235609803092865862163886781065711883954743407738000507463398906046132587816224359922365578139604956360881802449410251885866897343695315953821939692139400038826002449796598947039289016489058874209244220370227493883934161874507140344650578278688473062092297166140439069157969455295455107873683792624683794763959810801331898083294801886231687429516725028768227290457717881365092006036822707556561347489101917398552293594978323742865806041304833399761654298275636408157687564469474412225948539722445558881621485540170427026112299327808850375638147811462969516213472654308258857635050943265509382374152109648108653461086039893148592999470545062804054669845494266572742716439062396873045785591056450705781704202191771031622788152768855327810211114518284014214283167467208994126981461934569790256577987093888454929372809327255337293703906725901630675004662803366696876855790407757876556816572856695670653294070500143476379060705652104635525582973535042295478337051540768735495061487953289376209472953162423429135464073285832955248845362762010042917027235063287930608958878190376207350913381887862341159370411327284349126757694935124182348182309293184975626604115967377954507633836059107649596104503536306712966479043146686931099689971752749358552757235525161423761678639879638572861340621007837575481807144064832094054832174370678624403477470387400713346940669247882267681270535943019716205789634077944742621622807730650097431561633708034712065718714918698565591482612912658006995508669286355392775838299880257449465074907644549298637653056867497277759369818561845445816505361943896833509516396507646817365107655024259369283224322185310884866830968631099990513950055924988292124802456731823036270193523172901384876631707136003401106668642091812749205939267516253171440240484009599760417258925371459962141807137217817948713911714167222573107212768035119972452980678156539661522905123102912858137918951685804118951378346231915077691975620466928186398850604258014451350900506704104157916438142133216142049042105130340169162794315920208035347966902975827398327603299310256125895294975681939510649265052500772996998356208482344355185923687688646846343991810042838295032019245970852506642527734605342266687982621106768330719275538923196172870278983447566812959672955823568989506191564861127175570505985456172243232874609929438487245008924134982827594925465485362386292861913357533391099339591394189153735395592250616581784081087597128194712665437559024606126943924652809263491485396862543173286764889961803363914695593723242805548663663746867193876005358641811616171647953309331786367468112812562076930456705564564376828930205913802769544529063806771210229969292409445567929585123937713288587893857910592540880501683450288253495298347064826944999479125533494085846979031813081069060547592731411804018803164692317347137724279884248992293149926186330353934016644233827139291565865980505688619650990565573425138736539044280932919012675591000624419337161494196189593134686106914854355309620120193443998468147615272105368398152982281403543354320805578871283937645076889215240492503777918111622367138863857729274881182916790602758982905061093955868135529816878859091619965865225124622029962372169914033393484351331887898850221351392277453861952712613310361730682435918260595545139248716755284280431360665688002947002463177918026513523143656141922957695083384753566411836322061342485714319695471232421072887864145320790542120878105042207599963088043608728765478937160001797182547793952795118247316978522493708950594835767156277414057500286707729063833810907647777579598507745325843592783690378778144066882293231400472099026809440236980407673553955938103270540156908183112535096092850204118822116094784284105381064220100037025094720345584616122733191089984102909005968478204390672226384694034695701940595382464080146937179065388109418799714270527279931188990448703125452914432949697581701515976150171469153648722640888300723037963486032482112382023464300197590582513134697667033210177030107705053415284225992894744019404282243220477642633021174149223482611048989302527723424522008437873648591780937050344250460956740649277832963138412767546849172449723802748159114415169043196736154521260239617773492440537734305183844948339767433895677531232855953591363705528352136619846324319941791442451632905059199319733572949323510717779706768787083390505784312329023796050226290242789793692290020357290665548376552846410577686177551819981512052376488508689125160904082433293780168145860303325963152656573333135621861433083056549414015386332173210192989144937035284589760618909846843805593717772516258816827749971504569887715361618798677987969851134168311778478870623374446515805799296424184485258850065879584981856308028328249710204629772796518402257584551773861261907287932755297235214584891081489481222657480722622257669167156543715245004924257524201171510898386022983042041365396375959743733706427220084933226147258649856684519922207238144622529279102965897217488257940442325433858632854842192974166010279810513221997498309586505884554316675560281729774948416481189040125457871827742673427345852450125218888532758372645123688482445360094580729871923187836669716141970934982693947671651256958231783734311149874368560597743079931034463679532676050855129508841147363194089596772902525104192869714476427776340165669454804711136313783389752871873047248158248681492322652961215688653248988656871853791266157992520152286032813872444941179959592114521850395954727208040192778855700867044780762257041234646943928855979978586489249654757423427757965764784739487897388042215677119309560212095351284905257281076880336155379028523707256014907330203415899734007135922698332292134370034254576498858273079849492254638142879457561826016029222624760021707830032140262550316355604557988191538199269239061981770787439991586590712063541654971029777727473933731411867888706105130432997716371835989745708706911603034685739378839644427903646104789993340112183289794928158088810695094515365972976691843727605497993629949510420672154836925936008111142197504732734570875983099517746082796345737552839009325164370871625752100018272101503769528881888334940386879214144063234233803580325864077041604128742258928606675775400420091437647954329294523880947159236242969957878773016767942425975812023228188344344083305960490267077552120442902999596616520310724273053525529645241905162139822892465882063979832776013318425307100151692262248826618224140348959752894230640367979947499367532596616809870779155910009669310044526562531586649487572956804986955847711235939544572537596735622526500366925921185727346026255298866334188407340703676018252089276092323555412165524386168829859712386955262362876230120696621385826089218306901078901773431025836655186627711479251229472880611754534278542603663785090541585814563049252216692966059972465009888335065493245236817407384859974285695347305519087165169510153433875633074338798733154552998740371311394303155325153446092070903072756858569120979735835409457604403339990481621734646230456496639901997278866898571665262721016329568106960070585365634829074948603492828702249187906628540997422823214940633857347460444878185292652730566240672206196857526727848899263229078337045277705810330733130042516305969553684930173658752975197175962277245918947442387149319097381652768080844135750956289032814452357009796026252713643476650204975687855863959667635360659709596268557630152656338420478500497739941910755612282932426812643340365482310115532042697514172410600854465535875028248971407030373935343292354596400654011447039524196025310081125606999389398906541761069980477455173653507838782341486435793640682306177350590597354961953584684932137160347817784235920476806949735075595263172186752821784124542030197188016607122325036539487085515283684967331274866657962786599009670477025236598091789073641492421349725948131435769932852539035832715234412655612817648850021770822955276354362568972967579120945194740743374356061721041702610037489671132296126181786709804898308872347426072857176198513846141204055849420162742362791381743279781448564084792971728538737805184979787162951444188528069640831316704114857724398336611402342470577631115059999338013577918826255633368307818477284205592415924750311807665647465948497327891599531667726466740889795819977598151270731258367057027433786110236249895976077084286408254644480051343436555978284329188224727481283558281435680669062264231720434654767522374995759998988842291284730037094609309842646254354137187368662501068777883284464534928538328267135006687043608788777265369548087403908576181299410299745842386416043750313718479946007390488359010254224423765375644699009630117484698405634256547813961578743433885621143185114286924215346472318047922596647504503253708003347397967442082244827177671548244401447929582362591903706644894130054330067819561728560274756156384591105313907045191141956994845382009476767618050606084885773696430331094099413751744528280870621946721611260124387914297699350489957636492225159032554862062070716023444361804680546783335205020321948580441467554577993302501212345300296062402663866761780479043418443272208872124137839097441409914931846234494284601883290358924925446133493328842514714504375193071643245438662782221116770460867884977495581360877019452490929774127247227358375474851826315190020444843239253014262828375521389408598113973986452977098962240556724511523394814876951554086703871216324620251475682258036305505850889469022127500712599783598888452592086160302941009391704385519135930184840175560085380117526338991400536865880294759266808631009112824354576425847560055879389156400947587817264928944988220821786919173803127900100962152916421766265915482933611102917690687443027366872253899793660462055410253041938507149720852988422604820109670740621006205273813352974247209899326386271747837419081290972470107800694831032164523237137592309801098381779822966831577411625440700245188570317128076989982168297122160438678886620204468559089468975647692919837949283647893357172777244324283436521879855012326996923856631415766184096904645351159116967058812129357971926357269363469762587891136408377891584234581709843500486016477532407970086162931826474253566870529318051254514925549004364154223383100523014886372495234524026583995254820603045852758744647374685383490611433895368327161015525112668239312147283930762525336235299479977514199181115913162076168838457120907035586447580976271811703215676925052947635033103711461090066300311933701289307434684352239405911093180639661902116863579931052711309774657360052396199776875935292954391199102052064968729468316675355084898264826077573057513463390972577209141947881651057810262026861580950553027691559134002100660530409756891798195966006251828844321997853462852026999790892583034215846182742655092829640417033656571274018566299255691497430228574488141094206686109561484960203152883220807566555429163208679413842634542658095672424595480988780915046860836676638659903240302892265192421664629062893732677653829308416915320329093471426031042132036123369580865354984649283293487081380545770521457757119403450472390161866442692608716600154710624042969641625559586995666303151614209638722858539001832612693695779029829340633645292454259628583470589679940024344153875953393436372547221995745327310423293566348133749054747260983898011515114125925436367968921068337383758758724158046292434823173270112738665030747130306417146169157445865428260076313984266185938458321101003355437797095307996183949130043907371162091080661197806765658431772544066227595829453857050429783185623094042475126624545470687250518343223181054284113630630823103571945041801185646391109646667349410684487201449015788663264225361652117408013115190229808293794559180324494882261783397636814710226422599441569014878690222460646248932116543188488183777197248156324684384805917839542173864147858339572073581452266174150526289922349815785769350324936758616570953762237171110536301760944474292893160608845861813211120275226659618608377373124843205693010951446701922686737976639918024630211860556355661859537161122783384177080909254465596772509312806488495291144565802956780228079084949737486035345502943697028102124102643328127354764262647402474169560180909338628966571161983823854006580600162968812849259664773634760989192990912168850051543519452148690074948448767689837614507881479998693265135948334114410637036729187962015393839356899658159596651342048813849290036254348553914080296152171736333140766481602923486478945897128285252837776515867759213735610746105822045279336686341245265746086240680626045289229047737792805328748731076723935073072324647858761211932188542748442894008231995317381104552454174502988796457869575003211643326071105179847846504678201804311518681297524110811500305942274742249786828558951453304673065390163811426349151653514079331933519886787822765811750790314336598523617332830335072709778201954264702172513289820823883308995774071595169204773001748355815816554781174195366020873792705069544256064526726440343631273241565545081815035696800285332017683820991507860902157290947875816293700041855951853535679322003693526007720945908432031095941159482106936135154671874649593940594981906452134655965243511432583449184816356456120243060441846257188288368806544539124903483243516741990440791403155213834183054394822543047003499536051776989263358259879093426111066978693930465698641972186012363957325863080133587637718993858721572004934493230442656816983622096744406320364396400704001264437623669191413614071884352818074850154820644286077059080095341900069061098339900326999035376199015512333318407890578766925104616613426225529918483035945231352665221947487535236121858406958427082684793841327756072156572713808753681516120270768546513274172006753277740537476092830192386490616209243713618937427540759657655655575570178586686281086858340988750255876714572372928135535759794414057251009905234629558344139691177379637892451306271939471288806810385566918330872114376828588450133235821304459343029618021309569256604327319011050810937136594569467787041309642634962154876634481683573865381119221707261509360032259365771275488397593690683237583332536022700129899112266443679211601937831106434429063943575522050463007377092741708543465363701868601102751643858887004791323020639184081694175549503608692720106597842244892704380165331367327179307575416550379775931671440500550676906409756185189868528782629741068038870607662283668692098813516133227171448668968375057825155137230382755445782633869580576625564766250169769369794211078157356688312729903567455725243761712599184429563986818204450782527544769535565722161567242434141007893657331506782754374471631561910774654532973932226531073160319641738785434512813378992900299259865783481330822947678788887277651083276352121142984121722883603459508317081995944800289502572222959778965579649473962217351487049711572824633577457721366695577486059584028780007871291954803006874048724047511412423294552843393222187310934421766154453474378558807742787464830769403045187339600962589510906378833970110321651771171590312924269952809717151231783753838927594811691679548706634664267273541197055992455708643300391960787408173870165709252680658915767318977595688677773907849528321749048009396299862090156311366065255443869177819909348259274756318788323709815994279117993986598204175715590236545987982892073157474040073553086576191797291759469305503374897169345583397552329119201945597645921007613641049857813181352388747951988945565524701653435516373521190799658002935344069807392344081298142585288299384690793205887617398365241769423103562754708568017331096110255779416257391844819084723983693683104623208409921381710092391950346438085637481270864082798977036841093985577252327436857316090581046827172175777269600784069376535055577708606779667400410235470670624617968379872152126061279099514010552475774057456980240721635523125822050331213356798722468713597293607857006513094510854310355614573811563227171197994914268740399428047388081609216317614224462790932907426369759718668273381262232071532589238884894618080267706885875768771776616782653862246912150771351525577706808914452582862008007695983126118269460375640149880297470075778338066830692197132041860968225133525409327984105398363726851359666520980413060262573002730007885295066219615191054586690137170004340150272133720050285526181901469239693455073782890500821567506453030067566075834181254084687452593373233954184042029419229805542351781646946754695006911281030243684630860033117424104442576908807207540886958471469535189847010168752522022628216071561790307726461207770701233985950356266587830814900297749065442084348336247950205008045100709131231636030599477724785093174739448902177896559103758662377509168583069645637743787368100657277464992903372553382108935759240364022456691497819007843095154729992964113557823828622699963799218612884123253886417778984232819481722705343415968458392082592623601387918329144510562795254305015801718389429649501181608697900605879025231245307516072705850590851885143882947312863340513043490885000578701382446621822755328669330243152032037135874916561214423363748970320010747804812516514882756043263091806806310018348625568023781371172103962979259561919906897774754782468290272465776550815988005722353059570372390119997982439977037529931598066710737595653965357092294346384658423595923013812262785459330724253533084722326901255960255972958091319463759795062404666418854046265354866520626138749700365847904043563459856355372274131497185770772592397748427760401682224443910536361976203407057811319817657710757430288183884297880377645736986904780109584047774253361219204491735265962368266874534408687739999825252801405576144079152953466800847237786208034770732134767634202107142020738320366237902725702504180949434331066291638198922358420767171954404458197689433108813788660473748294920425366630167051760039032762789546710210848221651263785584417885385143364117203160016523784654615178770789680029097774580787198189345901945380630001703273640026283464337409250553496211024945014460762607280593604146125144634677525596909103245663226668828444032502367709256600080764053447617230016820893856284796361753919505582980801856605559561717141887795324525299583123431357358054224952888507038349797906788478755458961250727544095154636459748319147485475389470485149123834671195868195114616211366948449610921300966139523916627034385763464193977702584759588662877328555809099610346915887129791875583532792233998733109230305845186849063744479180973301317291807509216917476449410478765191127382507933651851706361117487242769244333952476258131882546066165556329172693971470616911418912235076010624196426190766038348191832933372168620436487144329558608767811427674692517975617162639906484420091448450026334816563267304641286072352071364338056591932408226735205018247545467209892298000656062876271366159264648875289334475768315124352225685420490927622231035334672197355435628876300034659540818856218644287884954621713656225333918880428816195876378756738485561982057170916434531317599820151723792542295133639865099960845428892851377520633631609836805783848791902331647660581911677529118881120406041025770225528092360723467500258239305072435738641410668650761963337051973542896016064994286205437246469752398927404126744428750292636888175838650779100215158444560611407151828037243235203769852162395288943847858193234867274065906939167972873813684302214099937147550562098811689664438298470372383175499541112849528888912331741598814380151674532645793842170818851402890588647442330823109071405464603975119517914129664307918833734022052334113559983317359120444351673256357048544016238856769069160595845343466564510592607209889301530725527204026811804654204945606639923046893999745834918031706547261901977923396188508835024072792191315717458649507298894978064753883945731276179596757654544034864082063170745944164426292332860397334549550389703348677907346041186147556824012001195116166207983359659934282500516008834376716643725194942024883300848921196815369605111486091290071302861917775872374807949829095870041865790586781069814057039314736385512703298891390832700642691941579145536964375296173999229447166242351981625979755031452274888408075484851047492372191293742368183116626837021020945091020328054326661226824151291744937764023677660587367847744702707350865769445339548075391599327530761774518580790349524093015343882362137442129143957085121282525771829621934452183307471424432481137534724763077947586329819165836485862043527514035472966572341572841262177850801946510294447110704374504907599541690642409676847438507627075917552833216868720596055040402714182610316343817374026709190092296828685367182315372123883097725687591055579113946373324452668442200334671331316739205408447443841038918406194359946522516993670385559717572316097569599899981428801498225038229436683553662777900173036671765959677832790375724391548363811856668664305549851493205937196271789285930020375368033862883649069891807550155758609329882210552558517349712467226151803550624475140426603295209159692583160306598189794413702007833733967098776690282377961232226117095078725917254124699029062420895620793308617466686661296428133686317623554089519779506101669282860458845514386779911100582798523250434329343281721764185435749669067446532064478833744969907629389228937280030764452431395839534412390067403921757233769619271973967839526270692369913085973307681462231639122074743480262763408447945231629964736188214639639182280811644077369970776093935511512557086811471249910191998722051686462608818053735819694352742999527360322862391988311132558156400988049723482083626792757505963520332445840226844888294817607450176906653239346559430931988664858451631659075437069513341755131263147960037645291186718378778624069750559297449136738271426227138476686300859754998619811199363020681055764465474515447108034444566549437055707495105944640107301436394558896164527789037889962463902926828203083060469493728437983284361513486160818946115323029364056265514307701507090878470519674426773290049855552745420248523374074029702974849482168340200396551356142396825214205366097273829928514578585733153034881705147249022986365228391494480655510857102106405356234936734704451694651896176862540872544484455512533182164472171630380203455572248491261598067246355468592744401005591291662014921486588463469728895511989581790033358984765760640300367018915093586355770259687158956669296838368838892464448467910763060386224004826229781012950337093949142754007405802219772381561316940655127434368005037353946019777525739203888715612828913071979673007259162664527966266950083466474306224985933286150426734771519375173308927261558509395126124024912054827935642150967607970440108196508762254559256573142377700815956146498210031564152161308606784718304783706871785524620943126088377274438057170651805739897469339694352921153814576380098426912226468480113724357022522064682499235208115676241246461506592420411915517690731857576172735883506861713005187972077066907138939013120196037452705877393294845551454665501478659437913543082623094419510914819997761742475658700732512488902572575312650718654425175362512541178023707616599316625250615790353401403697016712261413592737693343310292948705327286947817345168065116755249707103097950794574386617091147123395517298719106487764183751374501137250899328039697731939567569773232704896018804001288694271765403802742626821071779341309835142618652993104079783405563986975135491563551144167666389236886749845365629194279942779161230811898151718574401490854695565449952342101783403988628172999622378043382698280826004321947240440733360955791602171393970460558994217200130165493000423557995231452781967895730006405543214712975062966962866440096542828634015852697149021396535525289458738017471918443963835873286407092320349466955579500242346247875573860793874772617387858006209030646467783099092106258353958978568317875860742107338347101595224011900000050804158302297406711095215985738597185126681680495182162014103559722037887622472141040344617833081749059087041530988873684418361824315064777290507263819649489305136085163113878331373477329562590557956734728287272954148401975582205418326213985536750417594917711678221554971208410701268766719433363349850580783280634436430969673276362051420741619085766870035450636151844545477110564372949438700024610426146274004500946656829110905212112988539333381904794413968270577145597091781792178880913527823534678709254490473924754718665571211348503344727384755687201618918142927627917706604910334246508396919852828655428001409790937951862612818539578613185254450420186884554828385082259235605817276813371605598079219173829386017538072472390123822504341056958666097603104838176385950221555386226512484131275196541861935089623253557081631910385429652060104691764673569414606963017042880820947334389168022776356201937231513193846209253351293743005358730107392785357708182960172026270228238831834979415827747037361233212962614270727608271651693069892151092596772185212497014021225210376223357840445065439939844240800664182473126031442872525503867239694634600778843989928454880152791224475190351691273806158924889808806910853049152522731799008766782694934294415340876973201213510965363543876208033684542200684882128204678594085452559245617902707470206316278724297461317568302295166316885142092072442297957542774534974088371028948881918828527525745266334871664290524620325400929727404541397684431046327660967729714616962954521748790523377357896066262533340449158052631890653451813356680562307291825637752526233992143529851287100288692524988375264660138820871277415587247203875557423396391237178387494467849889827826312131828272745118757806065864844041555546915474546250413329035320402737834793091946650684068964254566384077995792850445804905749728713371459533899792739361877914536865398594978679350871970908518297949494943003138435276245118275390324023101643099943712153464293164044998841318082289429755396650736000575572767618891145742938724615262036597841858769623056603261177347586798604914810752990984070359299867162739119076844578377807192433738204123778805581015458548634670053679330297914169458112313904400845637670765783894439707479624131066841546927845126143217866419286331030771143666944841983838358989051748635001416697928921927121243654743156644113895970353746231203109288496568211151399355072872122959712642832069834622310000675464196324742394788432623483820667954256704129980630632992589542157065782902717468283310087337111507476646401138302162462739610833278468892226965436375864594250967224841134186864331470134436716049868646313985611379102267908259647723473159456398214488452842624539930988070478244873155118583886852814909741412440486479675308170144012293623075666558972955355564880540867535437340083007502531076029032459505064558975104844665512053676459356675836753237375040150714767299619874268632510992966242241949782385123974641329475657545568245868325860608936498706044467825952472365304029341458247546083371781691651192503724628060465024281050695473584283837872494643805771525082186338245608666022994411448613287116133984285403435712650755520322744519410377668661012970992497278851204103259928645681560321199520929985040375899645626636695637076245252498814758804781299503253630833438005269225240062406272039032761050108177119436085117232541948920580581429857405032679153300338342818613255312918146788757151616410344840226378301351018602370585178578869922561183986064141725846177355879399684501198589073686545350831858991890150559173686300316919093060678798552665158962824873302577388346125650134225870698954286926562471183277990714519680889459350992164522258511817040734303995299493617802917731685721355941144494717768964003411099206150121360056874521788257411864829075302639245107050886699523453854062676410506283104491828962984281336127615697481835852852814304122845560126252835851540822151958998873679920099344199448549748524756353805072300843345720929951437287720918586296716087393136793349556226988333578550340077543353023899896790654631874079904138701137413279567943986484993106457854739688003290505047308125961665138271204817966181099048830868647095788809227191454393888908880408446887374182616971455113015903443213289388120400034235922533690298539563242619696201000027979708001713852734650089772670879554461557174344748451511922324578544387378993932545946350782715190198795412875342839225866540826936364341996821488488951563600701435126355932709751547106554379757774251798871034162238700683428373436812185491429102465314879095014123796693125071701137191812823975029997340266705496487808659086724072952959469175430129938783272762008520087779534139816037390378790301005894984703943972832282440000805187610479305822489572999565465277411300074733088260806336580358415308312733024470685174770462505825594691768061066780098495575880314891364362001707446912263067032779603364015764291064771178277985311827262568857850407572618314188612557058385368915006827303890491873147499486946238324368091466251931349579919738549256927953809155093907703736342506015616559495320026285362840295207740487331011582726104151325381264903013762924265044186732012644333050185884301777154241005496345292957087299258406752882662817373974754603958333518386356733264425895886790691495864855376022261562654736876431475004941218732947266183173084401595094139986138541258395299488493366938963661247741336341096055299350655772279130087672783953210485732601950115042152219887789033242689291813815710458788137590824161617178165683147546823356126578166895552423905788382607458233516435242863118189636381279884128224800426921140427274887371430606758585005669144805582190823760434466314019293114675596420994478565364606905512626267732623966690689105844139075029127243359698683634470017997971357729909653101825535787341830728002429347759509488815317006694262547785705236192245740625860719737783031075017801732035540348129005856917680970977462893404732878190131772284262513684761695731045300192951099222903819531394187176657579752715693302141206697329472827166502647994220215485013007343596517815636199063594078580050074902876658674508780492378638082214947400288365797247712802554420042431969170975727464826988657311294068834428449553962614415753573981507758989907050270526490028098228520775502275444899153318870286663564308790345473224639930210853128382067013607793158389340146605156136875687877764475429193670106438055114900818956360263248434885727316631242857088030841402817256520411429275173588029947747415956136405032965695870278996964023867491525391065256065440665167127869414999585867555059010987648156154145560600967392351373980048337067555917794984970465157525608369851204798421778962939309334857700583116752858317567847632821851458833395446233012502890382210800846722521873693371392845458505767137116234648405479938500315527797446877926891659732607926568818286933754844375003951700704375999059466666314659351442173902219155032429607439304940156277316233198979188542417100829632117073721885580241317925554325095737723129738097571865630850678918961320160256060039503487339758026173767141367358800409957934617099556707714312559050300747694432145417107906834353756731283154773584210188318110366936300650465272061382945028427844592565561883091092199491082560748390757896946424419605685011096290994792912486893018904355069017427656720795877788367406948621154123584475856947284342249632778819099794556983214711974856136583416232201229505110136896396055583988462702004213486169272374924134419878412401901254800977268830117461432811352356127065812072729911972552692039541254892692604039475569920746446692073619923813809694816595021301975785097123234601206818168241929941038404714355643979817395291417245533948240168417976493732749024825487859364380335635249686170299887564512765867548696833554408680112348827341226623544185541074887298649152047477700211216958767041721035265295496052633819931542202511554466434496903341725612600987831213948656953803479165130780343014285277428229436154217353979077302438866842632970053828699381802205469010349795248710339567353636736896699873122911586896819289452858846919008794753727606425148468834460377893494838065413197964794334024456975120307181276966329797721386667921100228155927252565804262581608499008127353938047816287869804701399319563866545623116782334932751205811827804167414506737651093569230052069073615058293914053712052777448652942390268676661234055239187574886464978382580429112068780749360720587798937184936192191532187418613777045684313921674922021358672202768689945437705319627068689395026618776306537469461637737455705716487137110509291800878375643429710741100196988423488033053790543203485596825753243336922151573831033235260356375174751053870911116742803679745833418727276543199230903109942189002561093903143867911490746345267706681659829846479385029484195717809583162533044634557492089946748648126996142275114389172453470389699639330841758581054553124934910358702811036771365045633022052919352040205965402946243174922188179631696351537306601796269924429557152516485858900566426902706410501492630798523399026926246966992650485003877050333601573889762115988884220257027857484116088959052071038946520750508897544502198227302269898348470819149549016683481020061254137601815673379445299719431119208028368390490627850178906004619229061051558589201494855524805989383311614051192492924172254536092562442754751766100703291632895960944512491368493654057466542089170952426266831887987794670107142271589397946609321327440543173120678301771335807148583718732141090664261510297633183236505372610869676578848914898487479124291072233976853027021828472368234912169711820346777323909091785760568772220158788318235218417486386698466389304078266696394129893630526049786445536249259043871107835109285661943432008474933117933806977082444542741006550837004874872622837789089575254233754416326964000899870838378317638713736052002829475305302009943439921283583974658792673214076033154105272046601176062443788049876527746361764102787672098640095465849537720971839138292545037295811484545089373863764725930017307018359915249498359331511775399766908442955955659294577112354200636044998272829008188229306745425691326059077566811006406109237234689031244574681968395356812479410734905560074830046249685538988355597017848725221468639384020798363043713870078404018284403921239799597953341073659824466055350053446759864056234151178409994203567234300683476008514992725927361707178425272499848320830042170583640196968699305163671003778334733988738992399447208785042083584810513670664241012086632150186182271782352532438738857893951527652604418959054001427975848432928586175514405900886467441812343988852220823369173822280978305360772114118157875041779903659456108801940475525344005257895972131839584108294519052070232526146379220470009251113451887064021132001722305840684806294095549324329774755818266603999293398211935422248663342820705411731240354526653636676660711539364339571068655727942730156212316857582181516318290794891173677163057323481451348179087534137261038546768741378762024841821986775593981686361900882976577021595840739013915041104132859697247372294944479856184659145688299726447318778787610591790554797399682407829382655464040223990852351084800648254603366241065574857595262551801758569229482633710403087963300450207169045019698251176497971693089162765786607056315949910577681786932729864877791126114469697717722709905042837836322045196749609716131623426172860279429323991375990305306598602743932007048427083316979296109160425531931289992866041223281265516401155155948931542876747200795067375378291322492912045623110801297491922537737380735431266492905156833699328574908335033757313926771624559968066646475063916464748341756696798045744720992757870918763631994404795806926356755998394922928930169525088681595048513660067002562772196078310543086308123970548111909241284566078190773395567765360145862240004425416486252797177863938905998782329352722944437799169189996789106104427349421835041099667049672177035585992767401599929322531585614504108859986613319585670265287097695950897548571087469847138907893763518901379667984205190044862400064999956764322914780874237509999664025270004532297450334778587798815360401315079200471233879514048265451156089004651311463042223027164485920453890111732778312548253314819975179617039417641158247885216325232991242858499219605609042864659650112821556972244120448618369996347472209495973729576382015224689278216028050267460234397358743046005310109894137317186606676273785727957057742022173951339484170576796479830279043630862865431845205212110432994803490746685365118098540681409314916066681895834282439401455061043864351613765182955021855904312337532528725146218749047482531930995874662487255469031436750865029638609569123850892547710929129294707093000549018184177314942329529195416790555271028639064320881934685689949850950249651699569382325117600992181736026077449093164039816224095556551320404221114163441134764068964933264341113751470730666168481421041955237326385436564638652961636385231886127702827078908370524051515901192396675885829555008682479854204468543124467881370939249479495786076058002793339766332416545295712277395454685613179118312627306845573233721890363729461057070637491481385246024439008008037288169326382149620256656627471726548587175464495935771516370350378013486692257848193358420213252188843811311056703388552072978331366693386820071020970387403014234011287603435758884046826390817776605233653542071265506725237856302361710049163409063962343944197017585120734728580424111703901310126258539714554243583414165977491290170118180541177636682950134987778888992459193247430190414867312703271386751320279547046670141729258052452610090697094344305192076831947456370787867136682275377078070486261628341132502528818543726631653057488739114120592657241816553339571557903277716922081910960619047841469534247463505019340720520101435664642810081496318459553278136086284099453794578692822449147694349592498486469534932590766382055701520499431848235204355159950700334751800297661358981288242479669039027483915031932896026387500575773278671108976002071574956501542417512326169852100719538858227168362714458751864826354084174376535690140292200254559219475317862791253105150915361616594688322715366338947634701100047086701900435880183305634319171461188664387953845113187309518396471299290931184965282069898103612477917490549934383424019921209534623938842280552667886800509358268290841737663809447899127560299152320432984705509260600583165801806271989790066441689023515783457977033958921346064095139995838083491190446990754021507092896796082249047200741646510154038054077385064762276163052115756926528163862502615508635562880552325103314548837615704584817738659978802964154553176408280346371239115402856460463950204263792690346115650935077600891371235270326258225267971011818480172745204788046231466624982492028000062789110372068823080080619028925017606041592603823809133627810340639133363161495760885504737590194222148892235855349271815128850148966938375053897431650881013088497430606704735696125977140346347000323766539542235384040898667082841719322750073338418988754648116138419826428253722855427830375969365864861789689243629668349874834992505491679142900908884848893935144922100888767891257829297671093732969260595365379450371902241798129785505060231748545494273593131353821910995325819812631738586765975914726244535597400892602684051876922532884216515540049612095975430548151792574477496331176149967219736767212898996609017020881744543403160533957466430715649738825023599658697855136891278963044995000520466292591346917821788170766218758852657802739094698881325419969814641221326516472360030888912999815826946787325465298382777895393524276632885395518192897497356432931874513988132664253683458158174311607997417234637587197017519807124132273828834095493417237081107817045910667296145139629573603681629431341442149269468211227217069317871534795545534920174614478902572524300798837531430187696485128275351080507399406641897860274855156565676541327848485001588617157098443174910178250050716469169305018434769380088552834008271370792513736587241345758960746771597474815824313160571618382505269361163909722758041834367836433132910507037333329846835182399414876467105531247520987269572403306150011903184740641085800506581681540006120654025838643000603758194278989876683254747305248499951089965747680223677297567902075332545985789628328731794792538800694005366739006070447507116027743331092076777541090051941549867423070844826510406907620715209943292494074999866307474281647450821047468867546791727397925780978177604999104605159568620245183462411629944661977192895743017800758102753801051625978555730775906363113411061196060447735089345979796652663243293698228979137223074472565677484720478855694609792148377419699952193499957403562726458718963835607326715437497672504828460474169701253713603870974795575027804196180334341195911862767323203980057165366808669985431720316647649840820405134087562159678277593720404047903435009930187842864906388476306401550575970812852583316242683623349583067606164290423726629260657373841027041977546154883515218202390967553313877938704818075171753071915905687210864968226594509370670778058614814883125679806386250738474284769541799765707189412789959935175347498831097014080169822998546143053466166772972440094354460447786361503589612347553861386973875703234025978228954553150328328705560161341490391766619832780482261091836541655960621281781881003979320280460213686086562178240772312022953715062255935450441528447193641878040256666131063023723593955200439535295913751256242770117335029629394866711476657363043355641483198338891240105302442967650663721946666969317829722744262942424060951482237552939699371094261986069569415110978501685910819350126704332899636749944412661088926058442723953233859140816421115279751098324329577145409959446719540693544836138536533539228019873047878813893150417623586447478544944375927340231820081906128609551224983063959437311647940471668046218581046994284986678866154652657215232984033359650105163344776379691206093683931159952007209351305702601465408522787499840548746348731144599359086074382592676462905220070465781349031354312860413583908117523598484139199058358897998753590638874960184008644347310874875434388828761789746289496225806446669407798193946236534720920794240139838803011054402973826877756436882923752391751866868439074952694878077870604633240772946416955643911496543840653148542697392371743473286991673032035728833981027482717821634716447756181526570348653443955363028581739530233240346889382491533333173207660394641916424552168453548913440339235659504044959649934318815061288871328590674035197511346668774419688193842989086596346465516663616159012071842604843822661390235587573884287235637312281692548077534040425521557918180816917443547793086076947501349107034888318165435436180298914497516840848024204390293599517753860415017420919650627130871389209208376953075121819127918318961522546524469450244556385958230150293094110424706388893398671578891998654405889589622300533209784351966983383781612719031530116631727324440996221535546161646351300486414687711581120829183040094789467731144808946985407419853187793805896074393260237597773099093530205436157888124363899732381601414445390566993875125634754239934262099677674702136965169073150971812965211106920683466663123091191301194994464246240558048358592548624009389595912656549789272690004062827604810201993037883048574969937152713540444524220312327633798593892055890601966682836132694218657187125269702571293478275727615847283735305469229654215177357674096659403785301897801033042193526765513086637249454449504957408981828617267542551161011364127093204460419128653982034365906397339406958524443586994111972021146865971863993387171051211599656814465980947792636495180063984335734062439591153276865205148688321770010127065569427086342388201376469867796089399859030943733409451047880166009306427091560083998706793743636816564392816051548718591225293634473505309341615906753400106694975161753750117201449590563255218981519611901803020298838885125465521381721379118675454082210328594022163530658691272996413522267498554357393602035739621650169784305166481982613226175432306490447025126934754775186458507185077990143545773631203658880894437069873591716168257158223004351158019383427441818361452470636252682375889982610714353836176370326695980253411274764725119320654011113105449132189151365432281627710927491741034378646428024666529997039996721742580597487429484090221727323563318834527942896799796736496299995616423350979418698054277137231367194897202263379996471581086051390109529707593839523864798767121614904888871399800278224026134260332165356746470069200434824149218914064935871098779493630035715372770464983399929222179566333685693081436867561762012062860140069115924635117830850718641510226404933309501777279149566851962062053066004522017435690937700949962709213712731067537734553350366233252470738342889986924324931501478662654379001732728170924551415736491778101278361620804363211334955774590126480216768418519583169806326395285976554212261262862844448431084891587095051151556661327619999074856388050084255725703344256934101504837939776504668976615511109314144316320017882717934448239184301351210287183773866493335720707008121940929848112903874505631267511335702242882992117997465724931966534002565631958309159185976851179854545194403550067734612180846148246320778894813951480251234049861484941060368225836068903050563328186054005736287760856603403737737776115291078634809491385248437545103555863275346722817399065608661009622790806463635804776213632024052550812663945202890644818541064988094928459839774754272706035927246822260481920118942560070049094748156494861657346499756906317849007050303814277379508582464044549756408367298280076937532729066188094084035552963298416100614749243199024200572298725608919319694309224446279604039744947379759440155883553012558322239175025749859676641799567119795769072028045000498811125698279195634846200006662841684060721932673619818926455335978740564114022001544212107213545584003855835067711969735791896853425783506320516314990016703216613794035898992425122925030671980402831735031120933520706090980717130789098891430212136888448466613473620411486461764230200359488380667555921186267510819162224850622849833855120432691724387549480249384585503845656678557529477041771980262395038820431937953070232006184086249383442367986456703579904634220083297537238277056610003124744800728784151857539530154848038490360332171853354609316349421261310593014762444707729778688452910940049794835368088564489514729001741118886031833482579396686512629888893777764710529797281552269226170905339851200841289714080505904597503872837408122435329961892451012941382484583894597744810873335535217360666194498491933218354183618293903841317858428737049184433396627634056560701804932749493846860711600882736994094188284639793545870334289179400656218641236313394552824106598920799892379129792359433870567658474986796642636806558360464838060966429466963306342993719588227480926235253784848832325511843420200233393990107019373609505288543230253666174817636088696378452411449919142541847922553057798059388173982407812837534976718602946042236090750431512636381481260778929923356712439549260491837395670848216552818989686215086627338465885229384844695522991213898894608997264401356614417991494030934753917455609384307169833417195908018286685588808289764401166221056241595840140285305353626468880712707207532296461750245061992372138261850015265157237075878024629203906853868293757884228590635987343018098857314043592510665048014770870161518583321052080206153213944362483441439771379962507823028537103318516682748411775870720168681957986800546375258875766246183510313047375872735017635202463363868268886677938202256083346277526386886114820367688839505855912969627995609454392788287131533437015946588748813466742314973074763802584344521755675960358791647490089445349118443192805707406748797044759435591748609895277807273787246943661445400854341728491550525528179292228967379426969499825147008820619039143274297590450762876215157596966047986129232897496291121066037497059242212960890921585158585549884483717493792466789057386761878612853003153553908459860206938980447497011746075321728930595412408394491884336303781826492100967492453684319517599785314683361448043571317385589597167818743422345804444952163205842319987575247181529674809274467027828477061488845501019771406489293508912484267179518807846309802389974944686066423020929176618490702517620595314222242802715349694807589756338226260023366206627924779123687208825340171550072009301440191695266994920011630517498761388525139738895782694086907450754775775760181163096453784887329582220343811663359343321968091724969307953085745696169205863698857075815243259367899377826836433377914019454442428213126620144627846018185211747023747465526835160705525096734791029440826606344076865464418806442022667421730623116708713549267408357793002329107242522410475580049571832490754446047646394324448647501953625513190068727452471158372967960246998394044342765130436148189080339149136428458989219726329476388014821868352665800091226504614799328045303551721260843511775880183820712067063951075179707056580547288210948951079426203671380847342521464993517556941719811334709028308090243541877618707440538051942492300389312122814936181356381115957998626530024282554922218292695453968414428246146120751087175080870684365828884399842642386721353740893974032154823390810098994692890791914601017562233901373076404286454523727007837992232283609689838439267885802928648980706449747366438317609803841807241375192400294328298993768825898814135035825259402393895714258034350994668958523927480954567423499360836491361539986046753581876539850166723217263696557395729229438794836425933846545850830111507838085786187832554952787209939279697106016648462096046438151558054732567967951935487787071079405820163671410458101569500175362451892198451246859029322661108786838495302806472483710293846926207602039899962477515494486959915078342042707208932606537493494425093972485430511306511332632658481603388790142458283033787881039400860177061791444240999580327202791695869360956297542415997949888850592442751435021514343814194465733271080336356365165933618010080216702372331394451531074084014393487097163004858118463812000581895334743847157575415998017324831177688047915029977888433772714271110651091962007239302574005827838026777276146270338743029815294011666340339763273611131775410479414374858456854639892419260599137232349316915757332123492310738439933540442115003701843478271842007771952814776839095599981586983574919129082338011449996451023750139657892878828883594708367976495537678821961521990634001074997870541671354023426690925402837283600930787873737118335029391133917594047339739832438852577850251318168430718919805439100432505546091397837960792779576905628810919590616323360734092870702862474995270434729503635989418312752664508823765272743801322336375019556622816074688228604423871015639923896959282402322839384610754069619583368517746379551697517734718631478082501333329825707711831620130075625671505812152530164446717721968090991283227550435369366631900588687057242954861155820712150649551481997834467593421417905735883853857425079388715186824291422443305180961758114786248496675464299822158922577565122368157903037517124537951372479393221794291819331307858491682756009469463829436163570197554768367466268694311591152104682201055798893844544761587510706942555644161208379053103832545461716928517114098116455701247388160868618297671909219609180512760017213552770677047517069889673155174215914984982921556229718543558303822130055742503248458676979266051053292359741591230020573102369424058080335042518047024859159718724891932065676377563063635942968965185396451445922885489064797839740780897101832226952761361612887762250145065880033098817610310628574082648883123244915246696274449716170697334340328697888989542074332159155002006198262249384072904473157598093437031951337376689463494004227051024377160457202210304400615457403451893240192498678701280415620245013138035597318161921239859871988420814913672900408715713687094223605601248470896565657819681415293126821485674174725777689223239268377954056253518612320863545265142250357207031802143149989853181999688967070767715349574052614822164566600464915434938705343603534464948387017317548002455341035230523389117044018655372843587612174281220873251011626402372007596894558828002840529631240051896689832312509169756796581076452946448465993430491481411194676634062858114815572808221233382195393983971566689841068730060803456419075365340526179986871519818338643105179184921251776997928615594487435479872102405780209269570721087382960561911621323311955598597408794421805189178751793799389876078784006245898415762172425719264576855524664326497593781707809991982326590859479325630992868320304519763833613950306714240227806105216734019144558750515130796315453154981660939374034388006241283171197354215213981928385058267308128079778613514599939630830139120570466336739308222743786282245477153450292987921455204822388370548482374819402157606974301428371318444276594300943296723725952542563029167956800006900841158091699636111212057013437485385758276367001369555877701730269866217147272352681735912293716593994377899948889836193879275571338306073307361504411915078085381990985205691614037055522801394496992304074264429151949783703064776901634491413089770274959758690090598532803080995523116633121590056801102307894163897120093124388445261155002391067185181860818668953959106894957211249983599481543851891475406610978130054525088745176962277444963273444895860552066034910467667044851099760332386277151462245486355631668263377578533801303424604174117131000124533831484816969983747624505266523844010684672050742039049136499229749492930005163526209524139806643192040255269816618173817981364571236773882282364110243073958032880312416757660719826077436965141495114285770915320857897940001735729419890729131896722899598245011644469457520957607969804390964049301214465048573714187431112436387849336195457277950502098771363750237227939744358172852732506289115001783853500589972670012142812210192916766396270430638259778214815228404948087481349406504514425825427812109748308593157280911364570780591438864532811355539365519462652722451868344369363437698258146168442272554677248686832975425577803716164073598031317731723893247998185665460822205465634331681797760198798340661370961759103513276592658934634729529843015202904438775220692473559170535751819414525572397944338879515079831116163471344421931263636230179170660130638011342376958676579866753649745654849978773010216303609776375351667066295714805008728242103462989153853802336809322967924435817135544099063826934834040541682136403072845618222585746365964768161674461877919364891808608489207979182729039938202516966471172419143080208160523463542582932574134269481947539786363294871306042462441678172969746563600844631245834301784723585865136744232564979767126046410028057786057166089009494160745584947344622176265247864240295340644434161061292822645792989917565495119360209490452116741981415030734890779443619575716833073451974916167197020224730529341897647865479114492542421981096989982142981599915764496600778135383775188963321647927929377512558891074955259882238728445542354203355225515477796850706327250602947279042374311142490456978186779586536571566733824975142757705525208578753970253580787835858130911981610567478958648249367525692850785376353060854362028640568289933812297560898486646147298323632713211780474503232849967695868944968803183543976678887641895122863374602641774042650472978088422006559660936308304746370606211002305781616938397114737389292815254581619416377345171995464158463263064346678547566147111920100559763352473753155714801068117460672260643477230209014291223862474048833300299467444825371094023498140421987748221305896116200718670272812267028283129495661503519375210501843456511092353179585354173366338347930156283014435396075015830910688146216518157476754268102411213027638733982728748873226224701834636456801837804146178315177102019230522622482649618632263913421665636566520835417221458766308750232726458089211186776030215454842693172778063083495135708555205021129632284707518831232301953732402854827701572551069127425519888098989967065155137057993213378248992153616673308636613636940315556459529304717341317679040334786120262436328913794357271188305435550103005838362218928032762431064231996847271845797993814063018406863753243714819324427785238729317445814243643324070649546577572860247976110210524103399098173998004628327163772653978207870742632517475375894335002241057416689078114089776355154558532095431199032296262558420168029763173607282019665622080357346843681088034637124463937047730552727568737872668630484249836629678212419645434878652847656517749415832813398860184573457700051837915687036664179430693252882978888285726526209359502504192204106258391591454664707966900341972899793352018669157013897184799628491220323618198380914348916134347172110424555641344790817832125033407070989878441331555285427714419616743934657202131723775912351983627007515228155449326523259995860651525509008372269026051291783434236371520192545024794806202015481050038560342681044620804112043726902500118858202912528086307335452286191387938088081911767705806369686070918958932950291543908443413858865686489958489436207155317503333065099606145930083208179664660566032200322667380825614874430870235813776561284115022370213781118530519160343982731304736687014074519986817211957424048140839233324978375005885210241015098596795448334845585904878510808094871865543521798167307687624499309334922942608236141672120074022479815916224418744275197389453273889985812319663114174209099168148141488832018990782020820885159493666337036703528650794525675886451275778049817545151154144630387232786838755740163136550898556863434662240665742122967152863386333675782783203185364549478374496388392190818766017572453352802190519434415529351981531706066665268883002338524267698628313235061875755664951560517415319010076746735903691313387744727272579029256293804166299838807565565056441315548916303856257649151095482914537609476681181807575537372015146452440505195438215800261139731964816368965400517628061097265758886005268221273173114389588148008356568551295768979192612041259816118897936812052549486288504836045599504251558946638184465534720446573319849355047379217736952817883973694812967244473923130916589560561128792111579953614616990848447173092175385980305464002968107433317014156844321073519672416956491651930213775755251542090358969721556561304204029266684899150319412197577145545071643447970236817832832771427921465588968483096466243837383514241021626403999694431450993152087969210422763167076979193858836468553295462128622781970206745030577513043542969841361258036648365900110561831545160537584463487077032192419798837585620978981742166629509322509668773794122143993713371844794769865978394830594598888509854785941085840737551007302148989860882511898117921022675631071241865669077716225572232627970871399151405588939767685768678866770646865132256285242667876047861531498823665189206120126772754918498965196610519763934075297569156857775558475138938906509088942474189490471839142927127507807965987206946623304430357031663569187363005994028766547147470024287481228434328417855261402956729232109589733870518567862689740339568577852580047774693735189777414775002566602308758714832092802264943405569006172978784893943398169687429392594517482440707479551026188408713442804157235593568796221758941431829822179090851483391075103576456897884092986777388642307671280854339831120537033241022559759275035559649229010821525922954670165551851354705792648440450765667347826501525280627949103315584553209311555301429489214767910270288789874048743321978300982581358289160134392530278954355840306289909185726152367094097298641318209244662466750974537031322013212155941738726604650950131417700087584323144117398048652624133682705402434350047383324371308098733840972491707691066274145265408741495299709545651177502063906704604622722445110569031200684777997037312683022606953057123011614602682031596517677791982186611646884470160456839393154721043232212844022680355824862821566883941961143615675594182207259075516926921441008005112181814804507104395206801759275464321924075909109611905960052081915992903728077884558900892227464315287251421441828993818313544530735857053667366138166959792890365222704969690171636049706256681688527266571767036143711872364266348620596477400502731816759638018603940857791949517803753884155939736318896448970571111691361007984819457276640646409597594314436735251830909474229601956511848393599415881842294609804257408796533438565851576035646437595916077937823993288477230561811340511077666595037076341541216882418280535608150352455324869636761922467810560539959778683735086761398053843784117384216595424591925597699333712093616285565989588042301017347527898925254542558412931011231493334318087642918080080768088817567277706976769303493776723888495749511580027061513925763775693149146768163273837413235864247868992751129410709102576245128766934949916483687221033928968677714509355575998446005713525008485101458225801634793484832810976643139723420319489842935868372830561842475650098784362366063339048422318480044514470950394487822814042232096684091342383558363520773370291982386760402315550930845753952182435083504349741349647036310691690197374449366061983873132081646571554142999991107259740559268797105778030543488996400845236436761964999853694052923834140895809041082924328339912877140976325277848941575532652479214522002962468194078532849100708379971330115078197199278912173831632216962496638219380774769642971562602960985741418665817705080759587589286885451900009472862536218735603467861757490513046371981480563267552912294920061876564195274812279287611928355821765130148859990939285975537249774403087636759467129754226667092542036342730712118969067685659181337166949134908151270873090163364050941456864297704360883285439911208136309051566725108397251946347705026814934773211383094977756390173623609111407495284222971266026194555975621746720683101142590076098558872978509861850945831277944272368630990270024937960601644421730555992537150592722914493543041972323476464984177178179509529705634802599335039145067394561652349899762558628013649222492957018797600097261569750941808632656670560441170222949128777434087485166500825828594171285615876193032209757472403380884917928463504563505330535937742320519213957203860946069114625335659100883340319595888225858558060886610647727754830549388501703385759085192757481968709370378726952867425285431891395829275804536132151961198100500663164653337745898614613365636786053706989043782746981222553027834682459827945970148263056143170022641120835434431881802854315243234873033594882278325720721468254360720833731454614642929475309354818434952262180480360827248850376462516084041329580824587291857967937629146490369435250145686064837057691361794354785490339901960668109126819873648720064331646118150977665940593567125950068570193295053918904699948067787668536672795278346238810643836544004299036759760061533960689655488420579532111182208465476413497215628224935914324991102462794929146886372864510604824221793966408000960196794408798145830281211842421365274935915620739500794690242590870582013929759544522139343936687115832287126155820612611661525498909681871876905147988304600355449232356759473197885771597996095655446712080974237618021841188843606849868550580569126991645153961405839632268834128013608943172562019539611565993750678200702325417427766920791873503227784413606429802666079458092118282978658138335437071279928586389975341686267056662322119286540508125585835533509992218112459898291327659888730967072118314986755989071187746958300913553430115663224150998611510684953461468135882839074024597717273793139254069223987296524388704305963201988773112650166328505221745658505995713040262230356305223620692721120582261297995014962826403425568797346619313200027063396247056609264153807370080527557255828764247103401613304518366885513303892176186863478927101410169720445193147483882239260653164395245370276939321833467513004682946916492446145355998692340488039832868836910083128800279803388088628762937367655671475535514902667050829019888990543218902575578253050480023541045741865035538090440863022234022807690168771850227730072847363413847567793995070406827860950456551962830802800331520994497062708571274591698862534515155223752986466603714850993917110697969134555719886620897291871209825308043501608240360854020447827533493902587842687684106372689143154929020241411968800904245898441692933436590095959461353784704051073545763261055122748610391691220781900165392312557337976280583304035395531518376992298332197286791170057996223991243730881846684849981752527048533048826995373499712607100839089974709125783715755839991277265587863911984045751399533392196843557292054677789301967081562093158198801951557839535170573737614527735562847584228765959183417250805956709693169744541593913360445650110611366813532982810819541391889934129042203286603819942946156927857402713368758931152254918564904733786481890521870513543543376789360768693909447030772812503717295777776441697915959805382582222621269072649442444776088576919354221772823647255842358465731941777045864257365410724294633507493362062455563979141863078276148928970031322521700666154016370141984796092832764514354323810073869926554302251979366968575233168940330682050111314463296431543930669356399272334933407820598533699128728881090763479932718786434170612500632267737158439925371273448290952860061238653457077360635472790142147722186929036729620789029899463012616867362088026336036085053951810217642941224654743679568222601483114630727478197686722416972384946740035619675093194323965586027229483938055232530537889396148635943161731923257090539372968623460931437081096378732297897841381796791985314194859495029369768180720401684558903314071803102606291173659576373252142374758926431022925255657294446388623863039213857221487236873275143285134785131764554325029115901091732573864585740863825783569065939314367745779866306840148191422588268873308906277777568128984471086629488359589907259938711036680478111343298843378066983039514871624571529423973352428071135759485875483419069284657336377628110955272141609122883705996779679419369460576887897486754535438865706811353726111284550606195688922602021046703654673995186996046735278763360820618116594949840529966021012484224935626797477637049743254664539760534535859821443140839514776227973740686130926180939908812629206488408199418818008609759560908789544864943364166452796313590893935926006868734381681162525922507157883513344082548010836325712734763914303557350331687113528931097289600767432755387393494084033167617675707502434928406000567526988742697904240044134899824745508233118664601771518060309843586846575437819146441865347532830389808654953558373525649112280631273749119720574416135507303967994192038182608770660526088118860226451726068503622475301066685668840605496007640680290166868778647462713800363767320477292505938106958479810936036162151367904509332482672526139604301854557588544189427224873110972778978109888137669866236370696999764776559298577839626520259966241245681655210137830486675771777626372653378200039762103762477136905734085188776028921648523363817721020101617234361956782900156535466004348701029186668222199811552094057974227495003545119702730040547073645780020048846181192784684683741033725856118014375990974509551547510846848354266726910922419940554003430649134213921731789533631383505636564919207771669130238314177594430112656368008720312921488044851525664434788686116836795237209710295592401979748866865092811571623012307476795457465636800955644604357113110619839497179539818540594529620032081168481800095786503746697447539391266664610979658272337569757843217714816174873312102178446831787619004175391631917085830252319471424630246844003134799501364882788840927116189696415196720622058419117584142582099309921276478726081400818161192582837670451420519810472578869386117784775782150887052580502196855283901366114697417146994521476707918981551004120666531527335703872848703997883594723380378699777525835271056368874420169479213813367446856506185249713088431508966674447365070422232372055634645544307910251956343790744573183880572614611786817179753538204041872225328506477250535270350341653515246280362964108363952219529463567920732123555409662398207966984137029942373991221532960247855577534602672508984336525712008665060526172332086815041337997222930008580565354397778066057684401806821198131538218651078624295443656875026186757771770067648345529024166359486024995097507114676883987444473072926433076123997066459880341810066935512979641694509802964088303808794877045476315080183858863507051807559148888368446336948928372031366412028755602870342357706625727319454974564347365271035892535989837574618195329594054134122687586475546685538000358441646204688776858043244971997202145593415760290715635269183336644238847733480759897395300168644340817101063677643578549258874337215270408377059724747093977230252419058666352124988734759644446501630535611177940974819314312573886993614579557453425964719387805779084898498955193300118551786401270110003951763438436163171251697689642367331130714588527295100736673299713680762566418285346711123384533408480308305906185734930086144812048712936490659429430492481283304070439518144195271952154786661231835319697396534846325401493141932046246265703438219249078762089726283951280753484820429078490597533224146204054606525314256491736704689033000455729607133171425962601449916441704990128033576509572076378393763241199093465466246061911495326756944089698666326448461799546573775756938822994551791525709697855872721684027718726062751708519950572913320419291854313809658555085159838347163605051431318771123877020696714549388895704355121171858651929301704146985841533829109977059119786077756408629193518102216903087623470926509215233781943909862551411388898333202733227008055729281314790064938728639811177402722929853946200084963346653242035376725721787340419270713308182380363608187214558817067698558531201974884006034045049743873108059427847617308403172261902686445746156142942952109078238174711498637941343081133800918358487620390621087604852754576630914927658088025937220731699367530485889830661957869455261720411259427468070822824942476426440456952973610489554184331559039303804888802805604801070959968631099924378202756797511989805933167848361194439824538636554353902975309928575346304255174044112453310292607154166274358034873801933257878268912198721474355797134455907585633564181158729306960965427521673374729248573602917510604605931158246243601679455381668109857023598545007788074926356316852949754923705413063092408862601733885807326993665180316449394308253108221368619357910789616211692673258629939312948686576707452166820738940541093722925292524070138284864008931235075049337119156665862476209665191330678305688994689863044121701579745250948031539710995219471927634508019102281884956595534267284950775415023562841170185313825481780939649416690825300329920563271841860993035758720953986974023655973674230874578477676464616109340658468357364820133944066774032049140615985807398727526941399895995033541195463232080197190270143937312388061781127513421016795033820783825586610760370338105466568030455476706177853446272029590640836654809159695204412703052670200801863407490386426432184984772076948849578217587764476225678902927551718654930385369781340422443098835497453791837361367422004389669304081386865847608247019335783750178255095503075062721534903831686867210577534591290555044424360623293100630217138242086957952086108722459247621024831657409975502490747694254976472564240860385363842373591788392309342761028239231392073831011717917455212106850449684678751614672157534423028258419382538745746658821704856191694172919221571363915560136725953414989468292837649835566094640369498479969750497463828505534778405161884608349912650442158533219355279721212254288710328591406720000294480439607025066010711671535040464259919126994794986481325886642848037179678262152041385296470161655903876685123902174217883686890414069037230007999167584482535156154945127202145935485042716832866151349228599116705040624364610291183203272254575869648746699262294727071651365349995430580269628657926633886849457212588227139928271079348781490386270416369668340630482395288794504056878146673076182191518046243068789546110383699006524324497442478912453055854933234963117931761553232470945534669096718258901286612678188094719626105512651353578223243528377858298959832811496911588480626757797726573183759064636716927656639266181397754510854232971826122762796310478461212317486884616917386309193190071531326799345328162743806973712178973588357746297189224836707144776172210653557831128409000358220624136497467471787011720168202756510820700229900115551684988619906822265947208996799056914716601832690288443812978100143004427873149075187165054732573629373509586768567299789764472883381147549559943875414870232776561861540243109656432470415802207227844685260131552338296789555660367044378794715709488265202003254686703345838466446282374265334688691955560416108241298258227954036450013755860349559540222216626894699559738080132693383501472589031607972764907728158542691712974114203164864855687740275628352009234109599768044749766915397934655755674732204023915016038024677772947679896945586127435087750154714796268465533516346513354987196146860827289171257207938171960445706286495640597906215351382583900469601290749502728392336153363224734038277850320643949763799119968595886841822813245437264662490859739995305678101040683603273562669652572226519183527371753330248921958889780252019884646647427409246719355546288353208041464340329241497785194574684526825998218999128609439886037978885686617239612234378756168642280877832620958942928178886830476353956776635342203126889547254549372235588797471620527679706855024647844838429550438316985579660337087274878663836564167038722703473883545423431271891140743656097113031955709827658961567934766063718851427913165055045822762921447426416388036139716511726454078340771043544750051630165524834466371526459365899468701792680895462617069276850700038106690905768208035290014683157514798000304184925198484059835034475198142634718226076815165284501035596434588137822517072881372895653931570359379454354784650608534834729982375769385007458576919989338323227438728870305133042919496398411934910358337306101526496240711083314071047809553644453855700030524409977573347951930155849363417739876609098447254484955267567987363317200398028944415151586772296182558213614921596414735233911559497752208000406237329226835279352773999415017426655761895594484840060100018634644260933093279279225744059031175237384096197611020517370899775259122999966100635535690068773499755416263034514890960384246991961595285826258032657683668317551571245514516150830445372804709090611792867789931814299697219842564482675881467342564705528731457127566554314619380803874235809042269200369300575361806441341964361814238930873820261715885943825293032767871426471713832222506308479462032837525845203359231399196785031433884621327368312069281618001463350527908031024929379061337626041394069106138866072716425647951144323987698598763136778555541385683342702496900751714866675556777486715746704797833899252722807291171954501899689766451514776325266277299360928833805076234043145986284781187889951093760410882460968209702819468755622231085111361393042496167205337710945447465791234034635457850349148980804191572316398138496418068201216962417191379313384285278932026379719617041563169261788791798045273028307151073862557352028014602868958026926102120516111522660416049568831145253384254998865330128362100908688980444343480280757813010755277591531299220580632989619811133965945376176249464252059433043768675123486353758880299344655237522283441001727875686648646333378262994922589612456891235103472680406533234952169323582069489346158067094966974797976832866225946427849791702115910311374657017381570280312660809739271336332660753944410305302550831636103216362067601357903323682938861590595688739248710622647777156976472017523620459504411052009271873296377161003362819869717911840911949252518941376135201712435344552278555464157456299280979160890981794544407743934388743554633455103948055139815508580034869060798182482279164302695423028172464052977933502290405405881233923562511695866653297685408564838255151762761530048926260557591482898274702001564542014844316769329554586255809359831913672417882563855515912171478119930631846460677480297733268752098663775098111452090432856253653595475813239385414682689101988426912279431121419903376521037093213741990190732783034035942821763949370799948839328650851641201183355850475629989054731062539888757020704502081873268920594172830496346574650819624925595650766128760422555496796426670467552748950351811418670002683248335186032665251267555387226081576550239997522683279011903697202338204434031364417917227102991343251770769449358107068751689343875377589158650417194633667781056798491432712014274948945218112497259893409444281796583127989758102299681594823339808535267023082340281948354172688043180115769089595012273266471167734717946266074773369406274997037237440268394813031508078466292364138682022217473182738336424772364903728335305467943906841331255076046836657294648455413510967580917753302942497789788671166002172612337301937454762078523965100204150354936514669826422996439087100881712199295141543988979943526014667884482032721987678076241157408538611281939987765305068275326651345012217040152868817509183109644236988133059497303253302486734706452969854398092528304897099454656770536010530564277717769515932026249991660668386808934280863752184882167740847974229387829423973571771236767491541401804208259841297743809102611779798231398912047654012062761754038514384870998814631416882746924112185540598803048543955896690753259147024372145361244252643752267173102573753980371143544166645117039342668801497332820676143634186657209792152103326715163875781967860425284049682986244518966321276754942008966593096013960058514880272651659885852259642957447583300843402523143660221104986960794839486689544449518635534749128088612965894002828397308811866205795363433435522519567483330822786606598776905905795804543498299711969885967586258806043373830719950507356859610503211740460391966896142255318105715752496496588699588152079184473319413607883979915415652000199478131974285125675350613045027710268103854667155474133006339212111400685937140272486018874309001554957785486160529215952879616160699134510250733045959867426200109383716270354491180528615158500993787120206626709061275338115963131159827674149217309227502860186245691971713578851423419815436263135792420284507709132794384969213117454925500392247997130591165332375820493707177168210179036794759541233770610570176221563694673167855454868192840258306606258447192330103923993530421911779899654935103938794410099323543454486614125016198460703243577057374388769612593468396449444888172198696987573589861508661194721704711302311811973567882930476402066862780953435059806707933776689773966519391072600127461957212024518364273011610319793512101670949690986782738582085062249483604672504088062786764578935144030302569510610363097003177168434313814361064613547432348402358555740152396993135462147611790451915443542056344767147816881295342488168665452058870644966766439669362838202060297110461673338278854279736185877326141876034414300852716073000894295903563296077624824561669866754237576211554899678389058821460476969017835863243677592540280710200283729390668921492918881075768485111775043102199952073269820874543971933986354660652755705307251161458961816069442242274502765339382487144723278351583285589278488527719010238921461670773041498819027908587894853796927446723367547772443843464834005997114803352312683331939657116536131340992947035490097132213568993778912034694124654831645999665489051149711218710330989838781703074912737395131930027290782611635849084861401945151922161323006745476544408617160614609465904968898946711778059870771076121049419410267060451899304032441849389483441565644731960043424396671773277487739103369965099656538516655296520160204021889920317222641802361196644935746540114758267204107170546915255120671120520319073726936139128616232251551605828424636278570836397707122655266951993965623276388652516495437853130826275964263167193720777986155812196528352512961561273954132384971380551891152195185624409050049195695862314317541958394474801652169013858707888371836121524331312667808561180649645954106638310256717638397612003347791640692606958265368330636907904559798283818839637557414909631077737699495923398925686427712199168836215940670521982193597367822009123705931355053879223931025896271930281448652438305977027324680226225283663284028830388032444436803983695212715544622172869094032921081736062673007961310863958893531189984343185092951615292379348570768848940563761105253158869216188798609570970924060916541215574138936854390294183024728951636232728699384054042715399785156371685237683023084721487930450835164210299262443887412979020269769237733242069734256509554497874124407560016563109315445419735512032222297607893788913985055057327371435480892710680254955467656144139206485324061556437417629512560763841050712230967908327192637547890266784503627377739800894085077287582973595915687051068691113168878911263150305548246295506937434476889460407679015579592837019923595665881646616415630112504148515437959251294919783504132633408345757346499668503460408718142911806843501638531623481055815654249860217776931212241874726973627533809464908758378864567405741782994226853606844747351530227105720625568364442256914686597524834223954330019259502189305423220968899267849137049547189106185702141541656531451302163138108408380170941327258797842328973315713592202224271982003878698180177693736530243519386148355163735917993733916899282054453880874097164986636161055305356718708271139937094776447126334714546148126413111984752157379574100675762695032823444891479557002529432352110461834910363688871805259347939857470911440952833408193135567137957674190910799813489330205929811180006667851467398727272045159339767140283661779777343007782337308624616715032269054931879930024240921701109999960378230542892448304579164980127872635461531628645426871827511317666297298245078080702624057473624287378094041472184581451757030745059532986852890509320935169801527424416681758375667227704781646046306471081406538482158399226957769944555704393588404664189088351030054849195831673588583144345767976385581394631526011454313115718626329901147808193809428661933142005145116824287468387253534779923206294126261003939201496772565436443973020873877421305384424546256050117417228045480314887602061741953376157658976051342752451962728122569367198117360681611351534657771699398418230571509479804194562612972623799574314769516637293380516033858445189306372459819116357404181375727756483929616821650623509213422300483626174735008353864403034614855749002023986608022522679847225098158583422115141988570198826161303349423360487668475798551823104805018069146388412715050297174618224643801168691623172388355622182825994071704579632803963466969632247052658639736384581440204396894029781949479000831635998601795513424955289743468186295452432989710073485458927578352719802140554023572506696741491479648293230035333667263494033471022835260422337022324353249478388319651368761932093679293296162052948266441890426028059084978784145401276616534703455218259565309685821534086559504294177798528504251845590487356064922655011732820138814961354014968119349590447596506955572786538653321937603013503880028605899418615368644185394479187858829014971939391491261173380961541405770420284367878615977375560076240658948772259094544879996330959638500582712558014822588633362867880907313719995857062444202791972658798830318318850227298550514446598743624110713757373317744529903229284618621749899473990825271167448052248578635385403891128079531392818563790125132171390340478959929437396657862417642295216030193415396265991619143799773548068933353350361060678335064664781434662749035596818990464918250725575928481869277799227421993194272566837219161871426211651591974553860563119728285749327964988490398570640169852834863759243262173139098687143697358164361860105906824758582013035261434661565943378558990957740627935002200320235377435768092352615098711400510696288865835440652360111237265493462142999747633902320695666370481920307943614865464104244346686520931115061060901800928927035760516712534635936858539294286628564299982537015511162193680094805073187482524842136157278595770472953045902086472640192858614945155754928341404483481869375240340673356145480799270685609780348227247154012393708039964616893515697886817690463657726981813702250609463243399758388255997899604235742023703415953116543465734141791139252201128836516710468593608710813582230762723000688734239808224745924084158586367147599438200761750374404696089326583539258973510520581045909959603047827218255312310109914969314771753512550743668851532067431788742239136361348318887249339193871941211907438253201434316227013652750896222814638155434792723998821247250973389935893229127627833963942115548907272790183282352033686687846726940758343431693522736379134539456623494273469338465838384519459578122305863629286161462871666323566995371644343829640399797290767216548756874198888555126344783571899232985360701361312205848993217552425958154247022060055600169676707972477393121547390620508281726809447928641615953679836719848894711076811391301080736680802812629988436794981225942346368896269296656768405941057891750470152002793436028537767297660168412057959651108349274782977118013269735962040377229635959733929119403448050361596655150781466069554066289425495477142956941228642854877914372954662262639022484050459433880025800078166255052219258219918868254012284132876421132088866237335892969958911975881354681307164328844236466139274961739515929297830301187128746688336663048581559489975987358798870389458521656457147292082943421626560388282724745224731712278237719324931280869554167931089953107097272117720917652336726029111623771807426963876880079571259501679121043565898522344070688357751619075102969567164089116662622559641739579581711295256933125671994154821018687583123489855817162424000831215132500225317404126042790603436947724425299203673962679604823802046554439627748348818521684188068793084611469548699991647988876489568268647550157294548050089746256130187817176218884602714416014127983859898575710288987730041081636790748428819757967995854660511474587482009243121755370028265509856791979964894573960427715346723047285720366084843238992660684042724791829138302944558483702562249895375498047365136864253611774981416002239251549414809442016494887240337032847159893775330570346069165917667940937130035159857357075647774734577680625154336192227068395668467803848018685265085665222941849317458446514117743498360595406762111613061897970615931448901825487832453709323581370161116884023424546305905097631819626101146371300963666413519242169144324365440299452264684850013400945000818520390936331539151377246111013317996109469760145324612084589872266005408702059926675645310470241805053917224312061791504781884580710916890837153708277608038365814656279719947343447674107020098738113180521759787157990580177714414098946062990414888209307458511066398394429627030888904310127574152315726748487216217431472630849321298306419022889893837793500231100506031343578352591868091618604230285435444865748083370436241160392427521347945709735113755478474415129172829808568164112690215182513460515662207458257663668890377815097913372370970125204993804758031158272293399454975247762783410185499281299475546249062306616663361428668742442301988376595856500604158983669955453698904383192010051955693558565337742119555643212738082299109024269571964750622524672335330274734646188342087941232047152001432839423302984881847172421190405353224471667959865117160118285538198030492651405435301829662290077711901831043594150491271473872153442640293565070246631071153113119144951322682467971678354830378596304665383737835087715456361747943905603821882495887536738684421920520040857539813323626047152664829116069760449931954692136660348149698039862658576372084912356000893963271805828756059875358244656721734576471864128637085739320919774403010475686650914679690782167606719434273607134660410739583640927452322241214579918588821353570702566505911035880963606714775185065475463316332995422471738367198918382386377230279992231398178554589196204486397103709548205947761762550512307633415578950146865626669747093233954861505585653584782707664509652445715842685651923195700447598211866958933639692114587287263721649773269514582784178908661875832483052776602974414163113298040235317844508469553238804520940670659023951016270190195649767795142934445112405871202073564380317279134488013002372518971259247332162245922280020441119362221527164272102610854048396491256617894687263139066446883103739792225223691064894397733273480687473981862095918802529408143084826154849806930179980854613459917897766141091920124321191780987308316713859145067038090251934506790746557969393073012565352219663049540438431191321525151301125832567811764579855370258696961472552670027062013378400450444752877819125460931603704719321874604344805905183289090663713209124792148539350102246704235536158177094801773227849676045378984959259371787481716555511109435900376945433278416230331558774339694027442007304116517509248662028895991936194536710899713789327390615094069235149034735388762232483596066418068217347009127087852004900705696641474260865889935381738135121439656999163624257599921278419245144633255732095534146870054372327533700410206680547902674113354008476604343590143416155958192520705521626400479618058830404191659979311402595971667620980263836572570432133845548282286910634571229911071255452372499799328767630004418662518618155321832146612681652469394232145320316817623426470098507319885195723148043941628390640584025561686235162046471866345695221822282982223208482902820648694203719046031831358066449941980185822469998913709808463592334397108035874257934817702828651156783488449619354612459597706121222373749889457299378236684362317975787347950916043232896574140722126063879806379064079333164405895327506180235755117923505805778606561575879850622483301286316594863937585401463991329408623574381502617088130274239546265395479922005332343632483394380595488006480725241815338971958282164060277146523507152818226265294770655202719887980058779020519940521164850672231010256596712943694887630801895517838771724365359867423549590652998383110596745567346611649590864735458805991509416790941818844405001439922064141435796377585382056187707643045539495920215245681542357707586992060628824890312533646038448485797945377276816173272786391710323419177024384640730340752104993728082489733645472314158508406588272404004395714290300076656909703332042174618563854606861294454090577506883482848550366898149579828110920545324312507717780715568394581440175089654621915998222367058134942862709507045854234478912687083226451535708150026827727838551550223371094073527866632631954154062197073719708820247523308247470281592010014722565869463830367092134292164813691012684843080572351435402028507100465401814796320509024051890741083104153365954051123778929955426485687091898524785489676187473530075930421311162644257593052304691906605936643975401379088492385185941408517259990800592097288341927408412366780927232238481043321351883320619287517961914091310689211800197134339936308858311633344868350651419820412536162239131082112145218885868201691203840024703161850976506826724691325374202021327497819380728082502248115636016968650180382282452168438944837048563235486913166919908505333236084511419175398694283257710330369875303228650775833993500543579080977348367310743750685128828005111779717232032496837273328688804774476870162317268547807377010752221407260180998290612825966532284335036076627963735917829277962173603976625368132208399919733059050585974924061200843609188553585785430268138216751816697590619795998157148323155164754527918408263168391972350754231327986043283282758407019551501875296222828443899313465584430366717182624692123242463689507903679930699481020451705420799599381850081996746872286719069797333538486451444634110940987190603687203440577694227073305810430234137333895547961479043496226951661996273701211103945630181855418670026061944177294128103164125716769933849460976378561041624947440371541019666786283804415836984537309783765873753774781199883630450932098807404421811634518721461074991208823533643238813156569578104742377841147674654066524638767389939866371981351272917207868121728242250479525943894484163142702047297570945331077444999670655760770078226861131597840235048545971121098086664103689556923889644765513952726621387507223469359744136336073718699662038421531761847058127037572460226452897643240179946252458543200513976321346153046564610758044576932282727300967141159282574187201451925143403877901951696474751148831922010567856576603675334815793239433549661742331433098642125369498230871460376229423320020010997208188740683685029803209665411106068754345428737112581579110100797772897148354062515068820416449790925228284481889008485341500045141128370588016346296835753366962960902117405985237642831072557522618930654918137031610021811823332369017605020191156687921510692255213879027582654581468224258665797724650199549089713801431714098615882705930692346676264597710708315513259282068349909087017079225856950315984805044533825947839534659528228835375497156916566383979037729253217395576467881347965557034060982084426492833297515568231602618695035313404197920855713581014374970759853237387637001747214498992638063108780550059022716400789376956928318314714288575857294512242157104435941013135080932153061251629596399820692904671520174361822788620439514361274684283412361190257173186511796377784754297935809714692507900617531090922004067610448249553422934949076581688414786541007348582566878192719487724904750437589021721127161744395679953359404537720398991869584910224209451575542075258510027949472999905518855142322067885160140131704157676444723625693388081752987320906044862653934762921037463698296854792074240858040292030757516336418106644667242983301539362021628275754639578291444860935206570439629159018255007954263939260957860173954671259515371229826956390961958566082099802919983462734443121015877192623291498997004175241638762295898633923730732341801289300629051015799504668144553256510587655751989472154868021587772798152554617942912753827132539544747409978757405332642815752369863989268144773477719031487808207496619867804225300260413742435294489301885009193714546819984592958564600776146423926919123175090658878745173556827216218971451727346576641689909036586260839533402615391093812376300816894507307437969227201750212593081324725819953811807122929109672260972081104185648227123043262172258146465615999432063518205498454586101815375643743423964145488803479313823579196047611896042528798883887623909168084821601024498363219792637082373981697281494673713164137541535732832885336645871508937613503712412717073606504596835684369945576753891965846835502882667386636842510874381527856510446099830617089809777091239880134027766175946423986710529628894012462994247488588496582444045940242361236887917209013260519946486519668501302791446476749225255053730508699811435649902253654292527253618890732979877824929874150497891900845520125040035043278190102565647054345174366724939664117968966319051787995682099466212934911510203936019976588542424529950303422147800861711045153256158905315299382607588007279639893737137218408273483797359421029160491731111706668038539514527894405612638816343269554095015272097740066661494074674223916857763021301483499969002937242666465132795350127423767086837640616339961936536119652849159541330949366999540387421562553271492565496552678705848766585948396527296126892588937007109861445413840448187642779888621803923306065114556632932121216336766671516994503546562721947364539125426494016542613829594744741556179951836786983063346718852103534518964848917348567624874554175317357527971070170552861771417954240644543395478937554438213328346584284567552204471621966658077094325681034904518391509399088005021031964797198249456216943843523009812998084754106004474184540657780875039843911176167581438343812632695927532144415161106919413556087828921645144868671249349402172062066350072405444167401023353088572451501210506617614690038632530406585913220859194319494739862711923248564347227482852666401535280845710907786459431499659592501181211832170417759091003691791767769199040261821369190541433547063789190544323826778184794698719268043038190273018546343380707746262220884897242900766169997963469351322156659182476960180543128249866766568723496913062500591509907768037263229697943913741945588968334041615375643597836010121701981979395796178919017037991782339852017666276847508883201330453093190391987612074394497593303555665487712309775610314254638560495782159490174804853854193549366675453498531215852299585660928732123592880322699873505537941697271961593102354536298597295652281334473185912232889030649581072394320964600601339505945644979537954050366930202863553617270580766517874058015416626145812744821462574636054941794858550621958284384276321485422935839859013402356140000138133587072802124702712193903762978744631859013598892123839477870672622258136594806501424150389236945913260976595017662264937485604969884335051689534140441188399152312156909594538730831278105430134809496526142722908326128832470935739265377857562444910000199820324546545887902677188582230162371015121385809590420092796028230476312449221326619887559600637262935582532763484193287809116410454192419915750319842861604756546229613712981884496862182896581158152506425417444319596126635475711041549064770255981279135784844831971788372797337550314897119343868275267122072491258585364486574549908980511272480051645662039531565580809458548984779945419806025452884643345771755380664876581955552249453284267734442698131317759440666551501613427809416472847090622761627721800250270968432688920528416958879569992401103747233387647332248133061600080343299406105479106155935059591143710645919713160060236607797248930628850527800821043134158985178371030690228210369793539635357355110227372607055314363953179788501090152417270095942337538560353689140841657122188983876353832852592617132290062599613846614019082502281442140674766250837282751439424442816966438533048208993552448021210355495175389698909705864324238086585146840887184033095455572361697760886879732145234092005116353315945100439781010237452286519731472181814377515323216107583899929675423609446044519921331293246576171659375891509650907156512945472891928558889496697445640125986439927407165825758011684669515352284258417258877937768505866740279149754158843576158262492350039277661562424074873114192791177794558912441040238513862195685202302429206675326810348699586713275673370701290288400049288313295487798348725174153126726371758678867212228178134206464414993076305407562352983435935988968419050768121562218666895759637058085275118052752880317409302421785057975728273390765657220798817747743144052207125771032307155319175222551197158385755907968359263906833077599609341537719160111814066557516340009941728651994584003897173131152652918858255926800879804573323432245451116026750889104202136086586534356590477521636951853730904068849049497328161201768295099450426764726914354745424445101626136320310177653936155416321279655016382863927847459372099405863463557489755736921626068499800402123844660708459246891389211696871772191339066224991876599172474710183486948528192911966704622910413329206076795205977376193903064976199843964956572590995222358616545241063815468427728355374437694452733995210997336130099084578375204763433428425873736868559455015360971074616237675563579187379044738008278802404542179541458573843576491985211174448623214350541161424097771293779924423216013320916756730186299253667112186181001304842832664380005963713393817506365497748613439486279734455707813214830226161005767247152137813271137915029317917132630606289604840277874271441067086922951500289349117157457867638093705292448039815945281541955371476038597741543924827553392748550023604207913805623754502660363607803153584511949351505317655414518034998214616868459320561020263991304732253747459133391384875780881936992175767274914698716558193904711362852245503842566072507741354127984870828378477172324849439576667867902360546857690273001350080342130236258483112010247767646399691021998968864671598391590881916409332743351881000303175182962997968428860004770059839690481424232740553072354754076797824053146973182229382898493003064603687916276614855741094377813323127814121905986916962574999656273164392575308265563656792888859008288480626894666789850415640510308636163175586876477141854135987697365890499706381319038978185548523623186466105017251468183940964325634275245832283361990504808562546603591223079694639315748437482725447666955091265765389022191594449544639399013764302351437430163026940829960406815230065924126668289438189699697528016188798320776345955793484032873512027827697519761842568828942456107128505111494097182569014147251255340778245888613225499843478412492165252075805200446281075017646766172521500490114119198823827060845262342450321217497265491164186895624972646148016990483156322492848392925233670464007777456459092169687925045077444674027705035078621126991199220854321470886027277317459800461187628988964259670358485169620324285453786825991152303661263782568142916518731380922830568250229919752201897869015083800652774909029819565858617854298811383197347495379375104274379843090460610349338848402891521622301299329529386024857939298611418182917797357434463964304869254443280084235036482798244680771052299585106444887520638263957215611665538566679807042723371103908021670094611362596500599903187518408878725174619360262656449969257278612083573223735561620708173750363597579142994027090697345962841548550385601466204012828126075700333615855491791495599006269089818153207631548784597389572671001864989642961963946284790988437351797809808075283903838753445308738552041125274524850488934880717099615969155802573059117506928148693715042822539538919389628354384917030284542087818042276581731864347148674269531154695070102731290444180133987745609603108902876874052870211573239923302625416480105201090001740159626840605567523800197727406956085460601364695787815512553009917535119498324722926474884482176344947821646788982070231615249981630162070239318833879718261649813844973738940425690998371863139247858251221436120692831748413549998915773691014197844187743686097987648766431835708168617822191598039499102583970999867465657248189611809349451023930192576918586212330816624943339358209639214616982462698216045424507264114977953424198231291766449464824449389843249734975598894316150995505087020874628526657433834694163379903986594370645987902219853186570888800980816041262680770907362801353275213775441221853933307965189473484901983398251611169809312897649930381700430406774846184715201701697274948395623485524212124386000207047283918493282153229855639098076867042366779295690980641483250119982104841721912811441244825764546013090472300012473914691486552858442367923299736540514099711399840499437115733882979544441659086720088542332343712858030570382092073363894281244089924058444798157991961811571991689071286444928425877260532047512957430369756958967738608935756518214351408464680156044118298834152727041627213450598656132005795902356174823374031363142567174792997156858965755471404644342657301136835008271738490876405994153765059606208043936018962353334175933702420299859089889968053545650518471205788292553471630863896652846632129181855700144154716777429414471279103020355919264476180816836760326294765326865971016623937692979450034797631388776822230867449974467293833691438492469227702380696306972712338996870149351121347476968155160678271605339231006724725636799123806921655098505554078942442460054159187305652203416240561528197009908820985108244418349452080866636705746239934807706314579687021158563485022298343273322885517665883680278861843149631630172910038136719459217030299340077550797748830415334111074556483867113328265499825851117341081265802812920600100276082358436782522557947850591768387758477282818730926129814665800183921715671974231456241871014160181777551497691392235354792799137704511943102127483158187613451013966890776045445421003580658742313279261565769015082847947268441502388752527868833826022279863367210912008992164021030580869208250855585950634943162975756781857109359420558431803878587452260763301925699759217208825686286716029869355295145879735124678437663384470365022675783644339711904217063311133508157492103508852860408043177423136857703260864714014756106064920525014806724556340376511349445355208817684621940968259316658674153154767367821285574217575502929330956622374982341180546852588297509285154208223641688471384535777574662531319656311450568622382485719982553883398197088237717123247764100185816765123095758963191503433820056426150204009877464962174780052701756374855800698986936392989140211521973838671104747370522705606232027486737396472991500643401943106623358968529785197789465763628149613247082830248367880317131399963720869377701769488570543354267468435050094959263482142060553053505750645364879683478323666922987905228491135773410108791079877767057276530669703376196094468146008643005748163458189734450712246510497894041263340069005721098823968716848385382466729277742318748080229950345696253213829236332615668401707653854264520168324479363256065331827833153218874626923135732233342735265008679341428247835996283402348836720128583533330208349684451715518439151658425252313805791477414920585868853151137292636567503151369170285552306030598655559523091760505108146411119741761063666294171176032740120276212982068402989953823926851360869659063257898887161051286634689745208261523354910710606740247570899201727429862233776761638409418565966380634294020655802880988436859077936878515138056349793999225777484339358139654821826833316199960317723531547107376170487565296842615413769694863719054473069427277723078445903888879296151146366854739106248196322380145380931231359223822454699718349000958756846367798376155900866687656693925410813476835249217755649142479333598004795923742727358057638093892780046165866092623220340530776918094857152233040436039845570668887360733398263195416006591842124187366443816660143676970215602274092398131425399306075211580078401759472985490875171521503028308033893596570550498874618340552228340572770324416206273775154523655040387578343182555831289103320258091952586243261394223471543333982361237954502867617985236268178226854906210105707263596911893596119869142208662975236417825728128000645091854677960877151201016431900308613314012135770286548458549175018687125247715199221787760155220204632810908113886200189198639204626342762801979536643052537123271619084490986413154071224306869838331378756677990607092596681077959610881823366648291553241955455422944947980647479686901279789294508945566579146258043079817640111461978526504863488212976573510754423183593536576930091736235406393413103954782126907252524541760471731283585899513388826826507816750497387725003280411266315556090878833803062957659098996048745890126520896210879268006318358472374524053599602054969173346840825711722732135261789851108839215771770089048258787193161404333938640555897255746888618468312873364798363580665398645533023044072571878637132334236680751188381109563197206764450127921390378776933255033648850697513545807761936541524944741238115339706614029035219783796496634217831453179416705460208890214220467308911158706198273513027164117157217683366472562856654937809322708165107828099425712482112668969350864174359737752914145586232897732043603348875318422507792679584715205070104199855673095122855922736483363155198002973248044224492176851530608252647426970890839793598962765544025193548052986325814015593187102130744163862573834683414450538188352489759103679798409767365367128371118988551525560498299250373496119442334252945419771258097820688593542579691233976284139533847610483090946134822249100086456769055294770154189311435750036875199726022097539973432361095678932319227717414951165529474441285006787533698120760172738536655700405855204061277320482280307839286631696616823788978523936624642434295333952972653122775334679317831007393044601491461551472273445630176162941822449378301442154147743591660221884613879717006475064295896569287328399886306692287193978505279777848426752953388613773959198580931421042082166315282957608782574519834248550941334728821740484350824357155851059074062147031393846637915215911887107613418914059128779797539894538772455246431233295405606704185335667806824014122813471939481551103128479733869112968597777355262450042992223730203195824551131198608716521403697358542662603053166298127377751068708035254868844952733003111810463456641667391120911212161070992564088790112153809984161255571656408803102259196104604437310520929445463440740675679892379641014152986535652172066724287568057914270739566558974543867555716862640520594241795241481488893458423471957600089568901674913742107328591037820844751591093069492417105323980549459987803549336181889514933398172270258584252455430734202431151937257775922368472985116673698643345914687936653673166010714772715416343365909331165066062258624385214485033237114033002298687854205861148319913786364910743161962340110442139222987757767251797892293766086161968268391015201628336524369062031249393706934567734090108372538043875059948596205971762355520458183333329344829104000988252135105294961873147430392762075680867064827434330488999465630632940553769212158384238355252827717077321124270191061979316907702337266299441283917615804712399855134428365166960827666263684844658643384964098811315715380178676934655209195618559986018361228178080374826525084211760642061244222284750985076301468723296561915015716027166779414905562659937698359631522221113822391154552763591288727502797343540377602998563807134558956598894025037368758275667450089735163035796340882512171519530039634405716796992268842936859487024035140635693324860219130426038821650925879838708363333720764977973856828708349261555483321533143381389629981368418222477953173868858136129331095504134405787001580928779331262892847514447704927126550320552762188685237448805754435492085980809098683154464153483370179451695872325454152866669585979032181904816752526150886625945359410325400913342128162306028006506600813028266728378228391105934272897295138334577908647849595250483912995065108352429181129821190920175827185166404526270262882444420265175798024452423236935223343199216636508558716769979226193276953992876512407953908100562733702991671423501623780090607539572585703901324556928119721030461805136045519049649705897045913802641008478869225638452337065394684963617818562584997722409561137615878991574221709777786461992152233878027828764478685398309144715398015421602457837717646317734611374883908396034664906644647087415128079239492054713056212449517692466815505489330414654593841959759718808688865799306182416071040317903937338695037569194446449993078649354841448802445777041347373914674536888253099705765542061243982373600049847482093838518281726492201827715454015125373681910320651330248211670311654789478941309876063599572143043719423380628507893906945473698899088370687871713106395834643964629874937749539074773245010129121171963116117243680476822343611217706583107801582847224506631176341826927231682900248701615146739074264382314799446653250987395318727848884474887459892720095537235530737760890010440204228896037265343030878313297494335757093039171348405511102927933095567421000018292465377163530109589457330655641487332203549719719164733645925501114690164352846398451593236344867834287278296589612114150761028646971702094450553739668146391848246695042994187183665089560051955297809875905497242446730109934666918590772944359331379354506158588140128575600290136176480400763678756944596056856676507826052930965040445405744943650406070875865174505720584973189751064163692443226047391924798533533649363564966334096874623515003950697555575350587627259349118060805056985958856750533027227210986162618007599887138469780112138287625918337313775756246151809722769055387498373879071407201761710172319835962839136297045669236203590435351359025267644366636325805058250904938543364200101257336551824592425227024967266880965569441592957735481872465368543256289176980391287082465773216678748440988539326553135783028594043970475073081385372751638137546075764124523014027308421486524333185479561284646086346114065272805489574786295569160773779752858403449952890203257691156510171225555228632852354193166227003938867323981171714240878893595903189597471623247260905044677210507105505090907686460991431067800860122161941114422611254892309854013504371619276142621873410014374095318395955606293682220853583355532421673022945844536243831511484768992166368989296352633748122372143185018954370565252770705764953008953352165114373316889217973736915706728112120631793256000755169920483620044305573884207310949473470489963961385284859214290380707882204747744854749913703602873307809504181608490926216524683511676507965562318844407573631808951585420340371714209633747084821843423744976862951799093748458743857754313366861864412526723773759837249555605025506614372514028694427246266368542719075624168800913865814996090370732277601328707855994185779136749396256899396176549849143638077370120862359472901313050317473442704776822146411953785136427546908828454883858630943979563461015134237376640165076862905119378992300136086486075731942339323097148295686285275992813072440908570902580678158914049617873540920337423041398612509702375682233682055573794137270389388684456996844735803308965567653166621491523940652943229433036940574918396735622656711721978707174581179210957411687971548281173918379387115609583310248340730568373273045693655098508139479432023843033537028009650710056514167119167954187187124002808556350684037558817958668209740534336955599696291506906252238065202446294820280125956227315798116276387687161422504389243037940114639480455027695221240908651500626007590078840062537753337400242864912050929533871831328780611867356762462764621573398765687969814843534956568666751442539469195224225616627847062239728878147418502948945137363207443169191648548367722792993376204521931967266683714376252025563374159713524000131430477191206149846373169583937884149834468016971357549728419270464125553001300520196927881187609381550934812062392094782119091777980796108030730061066533056777195558276472350427475665629332990383315156196037902977405523849991711866528383819261603274174355800042374676322646092694480441807003373058859811865319987832775226577136971107994106275776379136016913961107507965825976298367454197784867207686185383881572947055288375017217067971159733906980243878126279536212344454768915898472949636395549015798492310550833339148288621585747370273500203170741659662132054341353268313918348675040874491285941973253411580222409600648317932737138792838248113670060058166642871473083709586389844848077873097087442809747861275612597572535037509227049991780851330140531950270300028777099139278648058797388371574933779117783460636921019943148650980887685850481147740093115209862697230123157491906763233287757298910793506419111820948115397389735005215678585947310840118131554002428219790968980282252107600190427000155401741433774987062033372502564935858274133702454850626959045090793891937340484971649752852115949692688489369530512912311016210376042189611826767266043341673934598232559215753436238557999613563033477420933064624747541037733398564419625482239897082192326148907582815744604850223836171871800770878154558583480759480586550188997989606545671816829197663820927361904826930052056405986743739782263549703675774728497668404321831088326394724368352581020807269105132286429004393309656545457159868580832830408166957755334594522501129294071749779148318581112989149238486038344730486864417699118077889738317329174926026534969201337192579434534188475446047361721877981950291969771535492900273401056022182857461998853894995302556662604616598961738948328376718344307605012686946676978875374527101763533366312127077433435540449579383480417240047926614870215622093888309466855638855292834295130984615805463756116420484538595708563894968738173698136833907876528457004390841219274565442968312831540197000023583103841451131906655481953230326422304059192786618431464552043765127983429223143600437622502495923343670083606722571356247194020041880008149514107507442934314464207240757804525815305852435579200127189863201958474003500932734912875331952801207317534399786670605530851613308396554498816896315704816935330909937802029141881600483781826099590463520497516736403794986659014597441901519074153692740031230962647422088737647686643656903130846826505530811466811222699077794486119082406173000027972368425006863249633343904694703175835356801787475086084824724750108201275273893767209220218894530268684242841905291726899656009633477627854877187366890243364512008598556254744998563173948069256651603675657796440422888536080006346636986343827277628650425124494165739766946070642063568177955488008864126757513612874281604645747521926968787489412723831142820296129491186021561052295322227770245645968662325257499142651675900118352045485478336947799708071982095720425972098040403872803594142878192088748201696195527517130109367042437664427488560277580826716346105788970734700983494186672278061802724339626045003503829426719721057067581670573693601194996251275158146587641890037798733590462205218127527394924648047336193999834160765122529516439436276178718711672999404370806550846643133031613141589613946586531600072059475226170883559385907886842279555021125185479523889382048167921679219631736115574482442712736588859723925984455478174905230784844997204541167919039425747056738284366067202416997435452796828646325455686362933762700465475298381815412493399740855450686795054608409025967677009476368012572947164109988194344246705416796201942319991972460980113658092332249055014351547742054751126799053159800507988042836354968057780391867028505250372194650943638377709395800636480262712480248406593130952409836300965741929595717150957086435470928963090481785410003516365533564496340680926224174062100633602608716350760089620161835540648393320034158219066098496557412162913786858135149875987668739524837264900822299449195321632036315725427221402300863458084718008493723082050630964962694329848265393832472901729060780490553507327781387558382250215109273763786125456622900606643718761838965199394787661696018356948458772161408771223032932313116697684758087234846466519726885105456015517256547681664689430424588174675198497487501959230226692550103533553283131107117570265376099015028009810274898019107939096074798925352966938722004602864271738692667297714885014247059347749407803038822131448160864939779199314008032731254248930075845497400478025991879786227707099400343284457300831466188938859991051963192121163835740743790958730600605676919995554117119407642769007639586338184672537568084885417793720346509828918815068758392490160029461182712256146046600619138712916284766537982930168599654141170985316549774604164406892154201548080544830706293633950857868255247765497073492177170183187651239665773283866029315621044490062722568864893262934477651659055322911927412029957905682768189259699922540034477790155127132186583006751563615660576572611216486321371054434571276153922127951258223075996356703493027467579972884756574920428610555733526674458779188389221442748498231571256062981516994260445637383704469860545716070228272043570853268376767719982295849929792447475384193302872521838220920029659696618180957602231561676233509392464979193735560078035038911263745621926260326971177943404849141364614736693379331323820551241474648451636686092608585463741969631980587694797155711019328737891144644912982213281818158579332870908595210432405226777551645787910235079681052133643406513297220139704305802891701527289887520053720278823733664767168012060401515559466317095909952283561970570680668196327330909083163443074434970324286525843564411124675751309977298183763696716617966577669918195016600826280216294137117219782878170100020964918615707597614817362604476974976160891167794573521827708281336932598166990556881995237062557215254808426662907118697035345546157796041696190640823297496337162880785818228630284418161628864271635946437982415546032026855295811842326299977985287319355651899993744127888661143523647302799753151261360083235038269383754126889193654986361756388748374421912235206406129744478067020508764702434845298419586270015932844786836670500612021925490427170766888262478758360128897151957051375308937775224109259001122121827674030680020368257631674328306081275566652766493874051037040115559906944488628698544735989387976636009915191980632131917760843580989506751873095957988759517106907070395746244439299351239131263319875781309564600968473725173042684096756554161288283346745966752809884534603310261078556299372147295710013564444739090984023287751801116712472052377775004478025165065837259618957210875623414526599215901094359034206782206314531906125836749041101461237052519914763082468151297493097359036415846399527865951910315172229857633293636792892121534938388962823034384299622683829405435624936421706469776136088754093308124729983248314325572424093274569429244228323681541834732344992824565669882603898107004589619959873875134898401207071248750363409357878720677966352170086308336894195470558933148873558868622344051716094423202600653502083308414683581521175072303015862336229580331858299888238889147224495329770384754489974672743332601597483697642634356064660399635603122263969617262816703121761944128294269007747158848595448823712104664977713161975237960438180351369629934025692206700374867586756227004708217011950150894450104117915049078636533856255662419838745545686484041718526953336061249364560401412117744979364800395984578818041773934288949288957209202204546145512054884407550856264195510530300136519474511984329323534656301096419534944908752229508430984325601726000317142934884416752829368454946449019790454750580572496816390550358326335830717097029420985736519441413144466191569827372884818181715701538317843987841480076729989310669601335598862831539515697226709898379085560414474883250047109477343665304087024004221465349175273153869912450789593899184708977475400141031573818280132713766756845646338182494160169636941286911766368332050085820118036564334190450540182467211125909979102899479986181823964865083422262486799147548402616904263532467735992817407441495382535240856421731909573079378121984451743435862195454443578010860035869976392132462675738816282461149893849199264431458089148386186385358583144730777956855651840901519355307068728856547026773477687195355438693406993499881556923453469103979661162901474083363382240197332366566674875647731265640763854263078553594837936270691685596146671087993242605279114749029020516166382382755312578276316742368661596658650739798548616085223938722345881625625702663030045933043638494879504895718482354858908016736824603912108347690364378862954573804848291776704792894252296458757941085012764322311522900565682684394896730929708415052964009261066628290710637350047375362073816419449935507616192813790568173676204404263067353770381065274443992317671876247974512117515355949340070127499071452805064815773194395227073601205596949492666511154012790343654388137308165377816296258186405909174446729305338356744399163924331214202816320153083234074045276990701667873185882399034916846063476527333353152403330916192654763799531884419890648537164744251957168344287668084024236521120744179717517682510149581947683723451459360653558461911492697742399376869056611026490478362169776115256731570693090098436241219273300654697303205030498427426222255998500385761466876248927111643967500089303087768235054751298789521355877478190831342385649742807174799464821059086729139495196999758483435249513411137516160178751737691716882554303423044414689208468630830967039742266709849409834978076932700026055681914368176819695413333178085898630700033093276176419936179411126179713240828598280316909507275991823061986338354323410366379263570722394154292637406813269545641970240295697731816165429711125523930215521764885964992071846593285452802939789762513597153366600249902536166195204978681502294074683084125836871065428033398731402715594111150467959435541018139540914628362481714743522714800301521120601249662334996370636442246809936332638393954195826647483466040829846644043629214170908981127287206183513301444337393528900506229536978053464405659176220722982610874712967398481915068594962098850605120252233406954493912508229619407656535612996476135773873166742235389233010538067346079022708307206925301676790567072262348898401844446502230512097162634800713250161160134817676481764835288035134869447855728382976147190412740738111918970904297307986274559362802277950735197819859480442562272971513947830998605873320595878877542584503974296976194056812877532704885604107387347631121332603817808884657075680212703112444528024901169454171686172972725900546149532585867337824581525202176450982160651047195857731936276856138977746247750955218661282827201950600486197013147540680366392876975944939700342172344350578792621295531453204905461887078767210633616368835870367451411065853958765439349403229952667828710556157438383770749412247304428775913553028408273127899999569834268721412048527156861595252909010167758307215261127663606286542935316122996888128737910895089140448148061455719670333760221599258719767941713303095921382748328358717489142680310608049429020703906023111501169672829036769908853553065971766768238672583918257776834146172006428000139497436517310241334696397261314559133395897170607664761364955762737194622232870877931280891484507340015256863601947712051764716023021395032854304668739346210896147377971590629254168349424874390141116587029265931713348225515091998889022845535879958430026431542586671875153291177419016486559903076701291118666420800595735826488287778352338346227988905832035111633310313575649946744146370737493204314343453630491273274946730316865526367329946577570535487304028733612346120331880982372440785731433404305382930980385851223918510491680357757111133629724457710411655680529635597918603302047128690633433677347245703488457621413558637243457139909582039050947554974890313965841368871632338895889086239903273452778811227390974382192570424339382894567389123060049376688381005039161880083259736415814189787263515994339114562400697864460908175116178824075152123129778217967257671175031013388088840873636863555091415286023439867873593783622655845938495231216331593703033483950183167263997679115501291985002759498274957909837405842095468640435566559037172871618775689220040584454614491513960586812132123370264025532895544448008006124498032055640985901146396128778487444105500020983317423993696218705282906592376660106284545933095030777727534354445820817726768755770321704128862466735534147994168468317393411242868837337755702960752588944200371654431931874351106070850558299425349278439035597243250488045481290417842295933126857681408269818562345325500250112159277466101429764593490743432204392764809487762827100473379819149029793168210149800842210104416483948186689470097020325972049231499999486197526453635355073804633830857742186813884503871093298060349005978736405778864509421884387058667626970816202660353905769670235679526791850578190918073094273332598162838245731286537063550324649414228326051173666496217513905186123380027504996630849055679692433048936190351495728927344316006956473944977772523632907490642202996636343901214342843912285681060053421601769244722009367257655202146110768265577063711211451824104970679109018984131878325371725697974306670770878023810562077328982931729534982965141310897728608668866871673537995357802998818351584332751805356984136583856218033986526432604603136263473586947729304277563874980671740850820934001315444420008824291294178357469961352917892019789014890047365072814725064997772121248711563994865110662685789637469748854776971191772386924088742282263462982210946661603374016733562824567886763764033089020791134387449120326870852351174180895860832349571702214832189717629056436925718622053919052994147784317987986696241514795999979644145207825012489570396765513634351054778785691826260617716997998764474156070725498392550737330256758329476724985552080787806416660854230088008188715914078319194182465826080602682635534329398637882245965042101310124595157721479629550108519128295529632239219761738340514438898231521346332461035459151918453011030466191168467828816022068812212772202361443036756109741263146631138893702799095381221938290285717629993430387666300468804380992587731325533092844481709903451688303925147063105629180891361365931577223789857271344257123060847028463782536401692708375964378588924496959564947883288000638110150318760907940014273951120520533434357615628986051025092575401739414147257896909892517785275703912213797739688500889854859589136326881540902585517379846089089992293790356264060723706042042622783541573676159231894285925475408441930878998207039163698923578443348153054254732440222138779650240438804649420964554555321748458374885274955816225343419391053600306619426488656356917265895015431502054306400407388660425990694605694654554524363206700380697408010224432770044590029989219703138727341528564409460501386210974965800709817864759443498823777586558593163304167141546434756193013253016139112646184676523838842639205899412475962272111345579511658684987954767242259279890488567474238092947496888447930910741718369336348013884646686989259732972281972953540350323923002956895559633429851888271422675981268220407799425383637373494184746878153207883150802498747335515039366849577337635423152843800839626067032219632766238645619668325970428972403178830541366786826567750394598013649911464687502667929427411932407339765947195882378077112066095783918304269245982890782803990687631312511938416918382503814292396029149352121297802653655138371880635304572247608631848087464096267346909122811147353365826765027410422087209663317087715233868455099392389935335277627889593577745627021579124006229061913138153716918315500527833599797170125185227630401333334611732542829120621202250064612462342649700278909039446237876748878372749251054195584127956866311753207683445996320448236720830670391960009417583222919095320469006704614321302346012925715314113784459557292797205294048273688123937386009071147112204459082477204620209382361923239872583273126903468199464985278203657341030013824647391082740012641671995043422429997438048939890787416924757640388784140215259575519478824347825067796072601887149649207293863626684755095362539584099421813582035116001125562412082960400578110202257495784050668479038290119191545407100126627237545357548971407968050901605802989348722619798332220366406825762114256007987513944160697743769243244962699919471373133058501406116130842721370039124247772786037464078354904550972991516432885714934025851893869030832891436719619472911768384013694743556956872659212007383345011199456447724569059116150605686399527082006096630240615225257820378433572020854647047953844115109252820658938297954740438847388101171963729247482000192811175105555336966592228623867406929898890710947060706675798806457247252620299931142320692566044202425898104355878015354777246357234331364130015250948537108426112774648532151794436022748872902260850912876063911604982357579149454325943973037641576818363450984223686767156886227400798118315213120701319304470776082268049149526390205314539199739526520420075199347319109047883438966572085445284286539624533423195456809846616421778807168511751358470805243294902382295464208723239593449800817295421446751007197561171381058098345247868783677975725938069453862651931633453674261906619212221752001712026373553254185699468595179820280461734381522417491993925936878180957716203899445651641428381871354087491244180067821388251099385162677666349997769905211184825665575559793111748389743083754307279011771170392628033478289958059463747953371020696872796291364689743415686842632997202468733649148751669644932698303999456112513940348261553379838009186065474845983038349896105307930070114034846621624837346128995033920892812598634480918243569160854998384883537619006839003474863216444177968727509722993608552240908810015892681930295050228042998501804640928634713381141835004106281483571190042254367361702875365295554439066816202792998613127231228378649336043044798086987736040319950825351137519221202309598040836183077695474596644906241104409382570952420503642220344198055727959388599486603101883379405929006700854918351887689643353487797850941763372652356197819134299220909520786966974168448057423948759916884795845497261294133134309275607686622449435471835220558048311246266050643023622426026404945619405893948483558306848643990551101222187921799806666845945849624670479417313026984805508644971695778227537803896972716494484070733059927341466499755710975700339966945980823302698631241340465209111639493612948479849871701211280773297477095348478623667643780827516095585478695183232190066761493613893647041862765757338867005442458507276616481166068554041056108464957937574518979044311380081886926197766077772499392373890244615338653976408758896468246121364246305083266331111160213736885542521219396199421730210203960371629364057409109092269727582848181146239452502276921269184814184219851145521745606010119916563992038475273529286783440451252801532646754340508236520819575480778854817946269946783556283252850248012525254310029329189724876663059642567340152572400265145760174611633103943736127790400353539118419313824290920545764453649095031160827997267039373374108607017461674379514013364306407294960468708357597800956111151326148795721529347776984232644021664717352659105014265525504011037231908582905654248981232632156618787773037291394903579582430155053804478905191161000556045966683177921794808060019753636169842936756950083184227334083039294904202926544859078996836895000860904343259010976625437301308996048233767448319036995327344595726849481872486665982919625323101218369599130480592905598609068413259364397928502254410752045737160186474406457400833886554776064099881887099463092057602922404721490809165108374040206121659308778022220293022071020585208983660648581573579023475050888663170965865690483328539717529630449890415750068301432233803053296610510637692461157388909346684685938052934248210810739495846593591131194476713741084519136748990985985963590609670152664193059801899601657518487653965017193096368167471576441299105128820992014987823388883452655544165688613154897680034221847247034335182953992647452639733669720231658462004026841823059723929476998495555262903585707259620217574172802996675469977713451390424477401012364586927681928905863307878641155388688792151834569744075442653668715629635681116211924055235967211204450228182556243299988093265538866383832130655720432012589149398907812730580467996387907134908690358058879015771418943121132990345414355296607307540070386766549607218735295856319068614951642433158416403812134737442130836203749643579699449282499600912671822198902224054637995411876380537893041606635930046689751876443919962527538882761547548823248762179664249344836926145535579455214342069462541874998389776786761614339485831213900477143329662252510707038999989764734964209078808203331818201797617129413798472410817523985803942359623870540047561929875886895284576860490737441900813098979558088033820101336335544431974858563194511723053931153535459799906002057679736347626094001471377074558213367062699619815650182492985412362657435844077086391335966695195196990656512081292616404157875491189559080310081445658015685873636752568363928643315293485041526327044692145579664202022662054816743163794299434609533507554666643620914613067147016092340097360072262757173322534552211175515575603533115585867699941244532128127811415142923023039532002224425142846939985125046137285232244050151399267081014163608498495839425424904493460890750313104972063837750536351187425856708247879104109520140952351119643484334365246041807537998767058105160399581404499291619223548050522504521496443674914313616476093649302184957339292724499007147436573257581432907215413000459131622463373699888971627530847655836670435671827415830638189204542856005913870636351060959857178171316947365964968961733410195047146232561987139438413833044955107710553670936822996548827676759436886275975666852720357436955118283104274956681015282350020400607346859996766706287147511644101024453551427978219995533485993726413455573043632876976623650026742134570893586231732679902830590977737807235372398460734367847104395166427353898931231010042945026596910922698482657099727193239447928677020934692186849486125107360378387106929415356200678970242667797822375462603331604135074390581331529324936496321839169430271127866099456775304663798103263245281269041693663611436805222179180843703424842474405849301145122270796992224964931619980152214880557465020574066018095562810876457463881516771616152254333450517697661002288941787534459722301854862696733865016559299891404011593528759121381633878974408789098959392969366066660464982178140463361211940484939735465253896071003221103981500257792073069725847348390487524928907075328859838775989286065227995482816238939609500552030678805759958348437366716806781721358321010029802569460340098485118148372568072111706155341736267089162284032493816480923548911222202275232781369379405702127391805024496993373089367075562327705029398077723293102184116047117123852092290908406849064447169908518376259370127463581456634486839891256408843713426870805010145113906207283438673367263265515033214962265908150297975673867203422384984820880603559833915025566631366729718497385506193765489361401021677779880557822839455371243156724945656255892243207987912469526090734172902115678038618471255792697997742634660176670745967985151791459423241802747615616751615495708038653356489365291025831618887099711504062439216979985053671999830863651935873753259263757085341342828233797868611473664739725261520518225024634605975697076094891624127372463638838130868809112848332506916192955274549891233519992071094594606838417631354610834973045117809380323734061966563135771926681600811964427954588428681078930414738353756897287948912889634213934063938303994256966971314135432463117109081218980429155015280304071457966003949180194733092593714436359599245069131760610071716405540314489110382666430039989342170709362698884502133857536892620763618078222671324952903848176574293769170792728193535888874251467835418983144684810601096081426991402253296551568727353795708387350340368320271788434288626452019516833719034705598086658860537984346932817561508667504307985743305929341457085523860170746446272552658692524165132315927689797395455402475601584013116720968221922836402059000868709503274158923839892885670921363405245597894593390096773329844899312998400815397771912980820154573997181466026314561078196863435811958193804217588670820496797924743156723352317984877218951624930121610562242940027593267053476293851060991768257481393611978177593518605539611223285679121909060264163735277654149805036922067827753840375347808948309445151620229173741046415346945630307192643057140889192206605045976683496128612051522668719791497399602210650656253928967894197750265632724324478464627967860948648938572434078864499479965490782237710740115985382881145686667144335956568086630870863379233470725374743290997910538680482301365716528145563159668893824282665018606212488468272778346178566215206812648612198681494085078451154365587556699734319162363120490153945009653895617890688215649864846952029038959510603117430934618993390218310281904332868895561755676217061447589941727451014719980488552895989485227051839321680356852837255132738190328890977472656304355618148722990017103130814871278981199436068201220713792145271145343870676664453521137482331424890268412260718435583468969866857861296976939424775587318473888782710229706458069300814456825063226093720166717682624703398982250286809471607422016427722932811544193509014447834370820483980696949504593696626101926558902194040678768762473704847426771898134035528672747279296160710544388862953431672945265103366331133658790533128186183991923793358609314228792896148527167094254865397914555891774080293669338471244015336118368084684560784727799310244391969948628330337064029466278825949665973725925263886413864803566739558576070419172828354071526900633577041727745802178791136981788464802601178962214407123285071906887851686472265726910366647966295141872045344870129906617386948022331610908432498420250936752695911521389235573084773048939819078567045145464654961143138700841686596258882655402822219927632110311118140197611554352358328618964626610197664281659708154115730440210924761693406294385436075682812820265858115893141299215079273453762744760371041964705615022164303153392483141578107700000365661849167817585333746492875112670883100368716378414595748339623490353902768819367977575960923408301399402830428593866881783886033626258372236576200478958529380814761648896147572124030046802658092669364253451030222534457106514447306617088131903750985122770550245375878702398706784452419925199529962644317461200579956670774718524625861229818944743373604133653964657445793826029321877557133380988061983428428483100581613262684077498118941325534224464564749189493168927824700695383115154274058378170562586509405507402396842464238494021625941224311795657236228752250914032673533042976827835262539010942939414998997178017675455701238726196081597544902524421916383251756123623812760409066235892996202849861235878935249429403785376172852369913361764479410258051060263104841256607142626994798976716910364243980488587034252916678394616114979254094780727149396841507857475238262981492678584655220000643618760169144742007250227109601940402299297638234019683259445708671264441140423937349550439633070316526089453857352262350039786247440202886479653197038400465166120262950101018803612992479656859181483768686267986306197888376265278924340936878672510359437211212251956258583047939161013116040149690949331601034251333212247728524212495879470988609172075264462053217649536488767762201627996952977472884554132264303440195006357613283876518876919156151414081949883844185875407062528753710351470145586626396573179681869867783920024365448291218338168725893972293079518084511019148773119003696440758007599240642226819780176535643454845679812229307453621064346223911405498878496417100571901630028999338355627433643819807212442887095749252504183526756645439765560806409111034998029133488132588002773432292649832854891568015982134296410541156124531944236809409086722919343422684024990341982008423326743581297750218287028687356678061645188252703382534809672577538654852881281038200915128685229044383575156414402804048016703802687379126583527181483199480776867279345714172531229610388050677415184181511225325103359185453858001904059572121638955839688657570745721801890440214792667964407914434648214144527011471312747492622534426346649340847818494026075245860284365063516673554871887921468426069864410978725528980599608757317496822819407814773764430050516889664755642679769945779763610865752640861475719188012598003167993945158760384290775251736762795694768152742917269646012783193936488452910570269051501257509000295718174855234355919985925537804145006394717219478618338659285149291762904113725825948481195268599064800772976521760272442283653182507301923069255600772484007413063858850164340968576169878717986830929842328448912336179511677393907882095080680405876895607682410942555484298783586618231212662019836738823215601120928345887943110389724222035681160391831089382408317285020116089524381103427919909228741030174225310097342911005380603985501823755294306168160031455087575808843332227745343500849239671698035314492163685151807756612943176558613029353353285660274543620099212325331252942513209130966622422752857496856630314857350110817745368367536125529340886128181096404231569697408576238550093877685059854248597983180986340234402233179501209541615117066433692915685352733648570717702465064379809238268108836617981462815737555729366529028678843147450149450691753305550911947830557129826914776693324994579199047946980180456864989781913908129948861468519569856518886936136909939744123889713693874047558197933738761100685958833707807896148681062439310192694058641681729195773204456159968905332230223473853544964078548818102755049778704777113584220025554618207508886820304643708767654330903455221060431873175654409529311632322096314223312816392470485466384977034804811534870306328924899277382954444811713785965258284979370506304193139927730785214946068995512822247194121688951610061808735843697922896240873673219137351315924627245368098439981872499923123047412365636102126414997070198106712709531854387140042120960845215955347590210224324801661354511238281145033485927694440454081082090393417871750916472589687273672577548201242826797955076959520562040723371142169979164830050485952860909674772781516739620970911142168142292455230280139577307288114686773186697585816853775640162590155258987077614728172529733125410130009786526368027748124344394425310334314597980811974512880053728267177543539198410271013578594265340887344221360034062406665232052075954080443192573897378924670092875997819518750322642196739198110555117417510330384049919169572336436987408290981842827408212906263494588737973160577514814671149349173983391261147944387210662508796272987353648115681829216585536421470943431054204669095720586223581765512153064640867212067632470702936220996750203382879526090532330937879372910480532215699432248930797311980151205893294132191079377888576097453450970899007971878800042368029208233111035196213344620441974021257459882863662958334320208915729913553163721873591591217577488524587907005742536528340068546648468988997930593454013018329211775151701825069594367221657312400268228356407374621163042881365543212115364928843946072980011818432737237071469800810481795080928514450181022192849464081966407990955317390067674426271803422510432873716347558312727566993488659820168826896422541385456409833439925055080754356553855038685970166243266652154199748041564286099169499601410510742100127215406058894517125398468350833228918603593623132218418745499684717484021893510721790990145089989166272363697581251936477835721884874679929479647498897123470978086493765834321725478898152950136415426828641089484483391640618414704804488329787360351577901154553991992968459577649004031114278518038156153910910274907025378658348875182304607087836023228418321383643976919949709103991910350857960140497538619638153153022503631514017678995982751441204101548053916492358714014318525780589686747363279329481319243490511694748149320847991364226991312351645745223404877102869135742962307883671487868292207752648727504690787367755862702169059847548356410514707200481215323801930429974813622168786158039696381602929995078077234686166026674704509738847618496263588982833867451801488454927795834224123203388285342841904388823103703044685635447327205051104589167644741212804448746977757838421032910222079467745783655240076930312360685451666065984997252437356328919734395787305003395680469698073191126882004650430649248099262716659908456488516965073790577717332589567333416763912778392879499205824774633211914496588233678155810312917008410542069965225035801986555072058342524783987304807665588034922867234276790425646044721583288516992994264258134700448068242817854868348151779337006485481449885920660920708137967194118971783297182233751850619123836872014854574187853751980207450820253452304600617106269048740196065711302495261116823547242853693582149858184395063746182667774853237030549924462559366662128578126799194428807790580063451779627401312740153125856493728702024339909776235386004228459213204422928201159806007172882150272425839280434795456143328910532230223495809603046387207087218008152913486236218129202342763231966244761862732537046821122504426156208324138746588938857181269802672953434153401766440306420095409700776344804971069970741715826112050483114264050398577798000808984785016366499515161264389723677595526313978236510258039462437507794063019038099197142194388859194721125810631911673976248839873338768407629948820520051322272002120930357566905455896633578928634286581873245285567511717517477551837840780205874073923338149577864249713594549044212939737701572509107628200188447766604477105750329678233065243166005951230816679206450254127273288062391494050598475342243585875885557851811261969670543025672803755978275066481236214901182857142400527358114536723180740726665321344992694729122527325421480675601940460824942440763175037963603088342566665748368960662344324799197126986405471696308747787743251192876159192673865928209537344125860641983655434875379212636346696587988217498871563717321547081442142543877445830599526869212388886179360075138119744862564566002727223603145336211652501858431015310643340394410918928280963795636657372130556453688929490081278157832723338717279745256250889261381134307673381272140711788240622559655980699021834201931628527381461464574955928278916495072089011165051512411382248432253388499678340270408674478424251926630664730703863159061965652044823199152924461328858953822918063588102554323725974390458281857857772499498112441293693576955755086135485334778850071914531378476316143548279104896292397751028031750842595970955563049817361626678629570412878851908499566201178450319926085521309017895877930691545109406771684961909111426384191063450666975543359894712456414247886148104393412894204266027648332797583479850319152055335789730819770917746584281289818709092664026263264657234983610357799890330525662445731720257578449465951553469041412049423804602050142556708895908018234103749361944620710007243214751047029388833865680290537542452411752800757484456285959620760403967868003294031115408961110194745172729456827698281978196242127239079216073996195472567777602367315783320091601874044694694658268729194595854734070299711046134853311915404694399213043276962602774486282672070326370928131719462760192326367673169062182945631149073648927443648967415064991474895678273423590312628527048460820631883060012955653433960320701319040153546275048761964766355896616963283949462765655007972741048689198534558299152630368418097966480819622445771419545692801788886307859153389447616480833991550601291213803443250928754822782595967310661942049361316033732590954624296242722934674625743850426988556477036442314138394901134840687580948002790384589261754615622710398704373319652418073585614452337746635311383407508193360387032828692820721593141168744061787164222040067341332414959207627464719382024570659370391196402884011345018386264611592921554362911897705290276859242701906681613057391080579595558478873763335344150585825166198969597994697594012283892741381762701877455660061159804294746411145735672728783928146582326753271389529034820943218950800991937795962926138846840174788740570662798802215863295132920594117006735028381504684828982856536800435711120249465624701473841565288428880076973884836838489595152755821173543454441011217395600074517603592826571964781309835830472687154009054214447070021362939031852797294528708197747843208623545965770408828841607232326249001934408898998549975866527101635131692587646990708080180992576554548944330491019120261736949853754923502353590558870051177595733054524313403967451259142698774956276532200379746026083520602960740880685109277624104012825036271512772458437670825714089749403970340415356416031472485781945434615779174307089124166378034215628853546866800352297895474024706284326258872443156443013449754095665389848730092826992040886094281246371469227928494245798771151447845806689522116441948432811058277704042826343247694429770951839074988669459591130864537511354297359255568776688241577514585960154447904457524934848428915736363954766627508768492289931351948644778064331417536719058670200434341970780228727470608067591300687640846596248134120297979075559437387624416809905013286832036539456085675030907628244715835609176952556839666611038841846862234993699532531315053283817927547944585752273913169735492272588317744806696461411326020197940735164252327179073098037933296231810055628107430777139575231549742559443096622278842825878497053420922010760398676483332106830418549006459313632060887604670547580682553777427720255612318365101279909443548529645328118903756511604933359457027548043387922181399043170241482567984674282427572934277397108801398296076411978276235333734488890888658179167648285044658776136507136305614633505751105701920976509176647771349539996480016195504686217271059526527864874942668983772284438391200059451472362530300916180592595193193061289169101646471685692461634166976498534544866742902383401148929081480903227598890644543279504692823545550306820795865559611323659884266964325200105995208235317632001330163851954812568564000078532717266639534739721643553810907010888543891828479078327273410321966448987534300533129869892112203211430847888067985959934932278250998222341180265606327047027145282657622819737305128645131618261950071725882197797918720753476285362032327467603350107271922183895339999513360924159432412188171891287618128083232298548882242762653413200045202917135335213937363056703377589757929995896266400212577419260179311378480655634914781977816549411922025937408774978095604296873645146870306372369467234541614829844951708404487416369170055125804678639548669079179086884922853728987593065434045013500334371643758683676202965429184096162859507295604523363952242734033416170058184679834623396005063075909592597173166098457169621743589835061762994086989933971201542437659392358248739038535784633283872986175990482367208780606432232980932335694486455480272495395932413346668430302861878049762731382824262555093990771825255361914043723537755547777980577172277619023271285037470696111065934038615550840629388933789900817847814366459889656155522102088589716095411239817663425386879816261301692789155650026321158177868737146847285238991450519460495223210146032347065793204922478129859220918432598148437962694535581001018354716543570280191856795639262127916950939112911287459423983126558170829467267119639342201110617916067435126338077881092679847582849840420225625795237956376732215654766155267445923183631159484200647495715672445392712133576844985690422274264214277768389927163760404185799741466250307018220351965105087778826009220702132653665473334393988428235924652577140086090073636197796283422162784503617305969729932540788513615643927697908286427593086342165394852687149375541320016343809097940425538517981976809841022793608536997459823435269359610807190705658826216755902012249573200244434434354763869399791629926428186123393542943806449021641942782266268016057366771579990334043782097885380013205145540657617971880651764555132118381668448430300844553145203444941567812915428480326124188236210880889276536523356680018545096530655291960003941031440374990006705914314801455820010460156394599987417461739016540423251811804972405839157725863309341925938488094657606350146280643433082295450893178615178937111935327470844376059655044167207574004854736322097564831727726088818509852863963459065910023594419207539522813830892563311340592500124122022574922154220576158360675298934868874691522545701438346458477596158896516974324970305046353540021546752951230257666976063984307847662895149268079633548182042653585503044303323228749114294846339610805388126582077548053777195536582280782014336542385525255847204658140003996211643536847024374624203779085397666947253759007105699390458394092706413203498751531637006908585224446140830468032901104881209930618299484818738109852087457224121378704020237474855547819367335135994269417691227339393866127406765783675951337175339939490483996563138469538886005250026312912351347078951571177931686420190724019808447580830571287638288558986739312946011827260593064507940634556182416921015618490321520470336909021865675769866545720425249928060999647792396275564401566413557346047665532772572603765340678579561239160050636812566462172206370816056452122238561920689100738040816072393866558511676051406733200124090239688284425635432472417483541625177830018878057673404942250837237110567970059829883787565341335957662467945146374816455189504472226440216088619482112499143322146249391916608931454451723096169483431015612430828132010932668941843824876190142894597619965737956796872645735275554873418921041817819460935736622956428492914696691449913573184448371010821027051591873405832072996882150858314274537672034564857483100812039111946936673001130077975741989362475992529525991024582620573448673213120149962161264568271814304215752353109405392237639274836840596345679966147962308743250404148241348664827487366591711313871779766185580301002965823460223649830855170116921025224540495157969163342548919576925344535348778677794910420935528555071703473302370662461513464352401165169225943253044793307660275806553371806864361778947473088215381516952517179662650557434684127349725275076022036239970335239929853150279819391908220576823236669234588109488837905469463987760535068538659439958532657580959864453330401028089799475470681599249591242042741059881473091203495936202724207754396076631171187308837523892383079609574492457311815402431157113973006047401011874195312624424111585363280427470319643783442988869160624940510007181036525255311321860626336254626035500255333072328837264809433573578438086707340003599552321320091681617684124845345399035395264839275057780528717448449680922361127742731975308008420276978824005702905679657470032648855231842874991852115547413913846316113592050197763670783977012419364868524896937617936298017759204121249202176511227255009075706500732517885754734734545461500060749925718350626639623208292771988256410948661756092970314045852008554264303738122222022981389584979394242960451120230732285329002877141317748553661649093962594002520993911348318230494121041538980576022877229730375450692368997526087509604236800852833160603429728292198450252660066029949331306988352954438130719948343985746334574605307000202074806607272728821901839212739766603159286728745187366767737564625157875549956235839016902101374235091891100212297405963245023792126247833543591909815490233308093641525292098526432067985689021261860437915248037116297975694496427787363888354959594948978974173356233350594984885848586158295266147030257524735984930914169400798957944867875642145866270750979868097432767194039756242753820035237017285846475331145440139847284234960403775732553574247885970718490923300557031613874855724869634521390944695926968975450176281578916520342835889909239874499848370840142892865741489225073599711903022381693819098983876880617637790820348154643981663479703608871372772133906656129645111586619405592470160609488459850387303025226925192573602377679269931916971988931262819282938789794589840024906750215234722492486321986333587362765835798543256292198940608803463618622627672709124444565178900016103145139271776080442384708826396208014070319385491387938286766384273416977994617621906027146093464003541126661125414634237822083296077920667026561583301524503495438722292101978030323871174716501213637119554411481687835823475940628400258894442842464929787162953179797604513381900180355347069213888428347546288611936176861168606242281978975188500528797997737674791779656780036541632557174565136371029541420678091193360204394734465004998757652579190802432781044618886014728787052546302632435526544890022688758555041749255362737853698281076115109835744566250387497768995588286496835133040838931751031080842594233805165427819440406365328743464800054724543984516177103035658955848891524730689818400824535153956702964382849991785169841404870217041088314460211671021353945543779562290965068015677128134915529606656843574670894432982920327508543864465524511978036985803894753695911617147838706858073279369070253554779790762096090803966453212088751376468111609087493873936434578747604385558216731943515183153652076823663311869345746719151543166863360975826155045120890170017877331885358892435966269980405884981956035866796288742800784832182202797945525875614293502913211596134395928384345482864246883561343366647028332616165681386808618791945050803677418804478348659750431990361342648538282090722956896366133991764242017539255527762231687195371062791695542768668097390519632008971570038538452725374946569963067694171345225630000377356711231945519770303079528923812419396329190265910062926475315994300703560339090012557642396321505551108446855036991176357333614206042860089487813145526864337031454319333504054109087795711372396483461113364049363929411561177381958715896156880932850730642193857214834862705621759778041119872737489741925507585023751689679563288560422480916068953028434461545841797531345836412873694602719789722352389627139882683558484313163356752390878497573689820612425457655574950730962613942517597942329071836911717981807533347511025700154563073644622812555835217405063958460397127076629724090617403621575269042106732708073074675414896424071497985162415702094020402758345529369268017956942448269332741584342186436691689838824525803448394554082641768180740124406446900301906434999449536380357232618389543411487078164257596710248262055033107197583419118465645386568327921151019113883705579759478485819661180218982277889503223480658349925370892404821094052382402559963942111654783978150653699233519226312207280504226888038465573051315216971648519919391231005558466073326263843907371729830828496748927174354234066808455874764260165650618859417155119923172594939491299561029392753331461606825356137609291184639408920342225282544537623941405124409915053519893809531631445886822013495218333733176219906075534349952848338753862111674701075160074121136311457006450920577665621835898126069248204536892456022582997610271194155384594509326342090884637500863243621726698452582618062587632348297817837234773682925943777126874260470613690908052076388477218966500692616784075798392219289381850757910697561502239174977221430184766479515153400684347285043337963415774348661648818251264511608821881790850649263504126254084132123543951467404332595110004921407112762323897660184359044506629414681439927160753172198082211185775942246360010028893903455836123923790918812880989421390570678497170375608376743596320313281328729939704990405919766801605893610393417215117943555844792910975076350888694042941841271535395531031823423586361441929043601114482531275015541813706931561808319578205914916471493132491591008948360592823021601971877874035995199639557813859544700635035491452169234886980329130481088130608429818647248670209041965252103815741435920302914299910603544115114034571939549425542066569563237519373513135712643873570296955091126310112251325324045572946064048485957679657325905221304591199037164833272933134181757191000643374958891199035390118334416696102759725605432613638361077239194652832051221463594147973878680648699767459831965336528706037755170793011626856561816295383345654727338380110121669901188335409012358800422135972211137121848364326297352208507123021004209266654938006966587192688672490196353611445846134802961132122118501854001025130503427565398025358539375606935919674084352738034939636808819826457875049277284976196783395938087046261255337853901012613004137003152063073981073386894175469375241924427287979817678979116971559803972175877264596453196412092055799452312969654578075807558195769545831256642066934749204505114761092506207723143811644664423370813463310011141797376418493883026694234403677858348210849758655783038366896142832808878673505326525917488873013252644920883611916184297638641522374948504335456581783754523026195907906415830315142379858218331141246848234091799649460275465731859746788216002794477329470464833713926930258411449359595662300070264063170125238551098071117976298093707634571395292132904863968865980328986218597520619478368859458991776203848352466026540143091062371741616644342257412522810358639329664488226998718060584463385815601700842636534967249854864438515702549155326043092302700814316888440190537278371400560415191504192399205101153515140189606937280488537182913828772028038356610387188316405493908149378644868450196322016700700063705629496276612991013914379830137037846504820608458450027371877839763922238822956720513134324400205318120638662410804314066360728464311196422172885675095768411353698303379463004000261697344226329758145573813950221032180322737900581135541874874671550741919270608757522987801575289185271708347114795356912200654714208589731627326734648820880006114926626064129596117033754056545086460734942487921279936382421580964146266763486025865883166234957329824809371046638736652705339341558923554930247823242905710851055248583680956002438231630667704164687715408111462411427296486101788163460060277755407219879299460234372705840841550217442378945768825110424380262309092118237046830619955314582589478886206655769875955082387294009178086126334418477668174312206966219048076840375228625388207145589042380282324992470848600110261837169489891574346947859158184746290046047511886130080422872028650564451109984531906291402440746013313492109634363051240090378257594643050080634880159108222381255889951332212122641009862777950973356711282435094408032616095110317705335620060752865106231264287017426770509606835355617326917289082088667939699350839205040003640040974801066871963223348405662515975645437031635524382021502633872841788812154460848077151747683870409500241654740936068277026827295718995242094728261276017977669003598223100202312509037357385252558516829807858385606124276480988766528840980745802787188211727321480526849704191936038644023877376172206909140344666951551128307929311618763249595467562459194337028371165993916482560464730476251434542541574944787540248886301601534712725413284296251674298728764687322477413081810043834548948823385148274331174439566329450696535556537231799988257241521353672833381236772103334987335714407591330086557641874783641614876407975372259623956689016915037878586584189468185240536719487809620125105882608479414449647963006731585499074034723887815153574538724241694829798389211713335498415472048188305077473583701761102790891286876774040616869323780743926438101830071938844991884080290101743146986221926780124264169417276333723152011070780812610699583409473370321011576433130581430467637219297810442805109024606568003229133933208237309741096221406307885555655466838507899109247276745276882714208768996062520831083337901589719962818901300313185499282533854251200780986788092199525065425393284016695329606761214512739680102798900503775971053616419961769622640379367218456932407904225352670446216014427176237762441026873155121076101629839344964583514420597276023904128259121047905167146142539065664054912503988997644625656015934071776055134091141411080437362038583675331596267632170681967177292234789393060317337249685047600127301683375821405866693913697249621735959171685264882498959489958036277165250659947079573937179818939478309720489929202608085146729776838354519823823458043126566167379291533322084479855249926408414493032190450036369296637029603007040259988368849733091790658974964913571643345767115829435323025338105645892778841564409398975424809511939040207758776081398020879077181605446908737230881075435510106377268702375516345876563361974222638017362193402444809163757212289216136652843404964668304824043015190029031714926795078966878943442000552925778413256346777590807945295294805075097475526585591848184901147185187651625255051999335778156485256429030523682329914901477511361983304067295603776039430287084529905736257936584583827426394821951409795645626486842292063550719064500466024040063510868975749616230599820152642018860113625293222511624540350789904651933906393718152630501372581969993940678866370912884846692594018003066313590218302485001952945444764582530886311236438675791449112550249994723073372085189556044463472565550393299691481200043953825422375589719031922048917473517488543723502355064865369426020302215014869471166142561945624540475174331768313253378678803780511247116017172706821167785701896940564074540050512088528243602941520498442604978570348990551150525695217005871095621448586289176398960890951066122390148854493813279376960035060969168459305554721558411663027841837295734145126629692750598156928335367555984199693945035376807691392715592352462562116430120837656538913067347542824045779143617953409431333868622673373001124976436541482184479965660369656827138153349911643798400963209640096509691067999855854102514603295993763374264561120179707608020706453281196004838729392603147350945646880870466464476182929452921913994250807449924738716237732328807610959154542038330505184139401189664999642751309803371765436327863606016106005521511547552453311721849740725425728544043880187754475797337463178334830823865185531623164414714225671285720719367808447429828608410629779901403232099577700839879542786616151229522002813401404779653216917785008353822469782602125478312476690319406880739596732908791070272464253889790566423196129922290517460989184174118422986547718908422374232700742391784860941840042217876260610993777746172066298364154832142707076588454152116367012374792279821387124913107758393839314811069606509928633342588329937843536777983090242981550062273284033765515735613602110892339186485134020576515515394196455116299954792545995272361807740505185747481236671302728827539061912314459129213627159919092598327360145390166440451947693435007091311269944143276950934907518899081317352364242811829046982868664562113473964351703370679474417194599095849627589641274956094037969532573415326948972874300448836452597848701428048432811341902983285054958181782033048559602617847234519996952027831465877177231257242699461076856121264838699536915647420779019795294349879122090331368544112854082759191945679852277025481697225418203567071001000307043760190261934909857030946835918178953676556991582972893805302397136588827883605916663632465945031009326550370780614637075225471632817804948220680818136826271147319844799599015789576882642656842731692925463262417152774076651907747251846579688802657172456911309531150437521629167377750833306157529792152148489672085134892324908366557034638429942418571140075641929873878972148889438677465936444683675936455970234628720426507589954302168939626228817797117214902109306968903305459124859352868374682767588583929201863732231515641398775853098979664526982220429486469017209626066237050529846583735176049888593693071179989314477458555023020009544509419258023568577145999649626074845783930340437944403294462448414049580331195954463240659949529645075652150126834168792713274198069859286751620946468514721378926914814517874293930830900064370196050768491962604001249058319111701376576823457952108677680081253551127011757029392619005972284683829583062746538515935052880779771842002820164992369344593607756142441538723834801300083882751240761693993774354426792318688947851321782207836982095967209366985961011262537614599875681626596415984582273655749864296648102526038434460015334273348735839707818074174217459543463721339685538067508297868195232444743944709046475639037724102526625210653003238285841833705548449449526414095011968634671046440132525029190285939624647096942085165969113035112699972192124077353616822780633063701505574895034955231224980445903612769723412499550371636666043369186704116408694667791954480557974662657067604387446886536891843398860028799491753268685099195088815523895191527223926598263492928958190170914578494970916851494826719115584108070196377678356662254813788467041998894909099280694221862633519062907715058034635039803199823405521956627095153466406321784151890464842676141056548330313068646486303844805133915709641105104137037687917576191890639248743055290597323246177898224511749728685484496623965610053015192742584281849768385712043111225890165528043002080012332581458629532493088837391502300787746715664039646817041664754071255144085255477789544372391517944247929634939534991112298657075636867451544891606697079615818785528737874423431931086701608617449556720810105070809582545591443239028522662220541086300609327598381446652211462938978120285605579057040519443795634748344265476294834745692796440640682070146633890178676875796733593010820087499038145868155751863890766653440415507891329845102055894810454301255828680331967771880379162276899798417580158318482643917287423260846669264938693860097230908981912413655545710521191948545041706067796754420074435071413249828892049020830669436083789639659259371433250015702942280959915850988755377259509671955847293096778238119598614240264118686469601897855235704307718881614155653977217741981856518088082646367118038354649593046962639238359548807613891442768983469090309324457445453868576585094382438259231282944048362808810181026131379568441458831966085341157820452063854194269586650244733644929129701678169347229620157314992199190392546971766064772281176566012355176463216091650030503185692703852390352823269976091420698221981538558415647750564936409876523779542103747902842953838887398077717347995071383845615107930753949686609119990974963997936118855004866977066069832253610145087751415915692930141285512822544855998093996954353320290861233930063980605321347293808953869213710492974497905298540788021410385449375624000958650069873583861016509105148120649577172820109881067737854478585782853175725994958825023485715126556783257427216848411563617320566835688900565695364512691100388797585479484258686042183632720387650569484824706528055001223215906237257717625087282920442969353561685413060907361437934760388016551004360876246592515146041292279387688310892702981123239534745198880553488046777982799460453778632724745234180197141045242798078767702996485494163111371728701255807621780882756421644764930787586195017609499626959745531041086069611399076283446783931916516441957960475075074237679348729307221538175090575466352286246781850612413116099270539994862591962934810554515295940549814404197983452209283237865532139508148449250208780001516620455578209941545366129530081211336717434161697340207438812762424769189202669872612698492521408765708863347246187753296994060463654609850677610926125697374386692023741082483068267740247673359343337145262101941692449252262851231371216521539304281086723806685429322401261728652708190557122796261794805854569729638918906055909462665930077757462980976454703275303323461175137120293295418784039602598901186168676036241191108770179161083155823021523137545071722252931361838798963108279389883698159722790281726413761476794560497175371121791356208781150870022695739500767877392066969789299746515080468541378646640340482031875777664008429706925562560101774144678808339179222728746980176233896140170730763404196805070032601067098822436226871530543753142639035342146294267485645891415283595975120271493536934470841604042571089781089192171451352895923656018306590462797788905516863359280892338544629726566121451447219056349009525157760133585436502955765037626227555782224363183677312172053514545027348934802072095004715539268348867613689096074637858149057672840923498383203081020621757391083923358980780496345308375845451908831711210013607983617391389066041441728649876004190309241630388177676995300690516457385754900835706667112428530551228631497209235366131889985443369773765946651302211156234330407684636212395105484278754662250369983630737797939503849234515478406201812803796397469124169253141977248844424392817644832902653397579235775776556647830550890931754701103645717467900620667920766627535172028939284915291612155361009877384820010727574223753216971536466699024790271683332153954160067791488358181333073687690622977143802998768925702027032258948670786016256346236095985006658565858395890944942489916079726912665083994730201805552236232605473645335137351809858475376673590397754205644630249667620929187454714665628193519978378583747633655344982428509664562362546229094313091024156043307445895583621387331347981510499224820322821580478106099982115174117225958711139004363029370124337195174551327593551099171893845260703776765458772545989291645523274837333460692165492116847803143097058029605863534454751460149263048934853801721615971969625079369898898463581243791846890258225874161063790195164068081273254673458762885505162777838302432007363440943509658175523437232754073508131307606750381321675817753604143747370997586774272684297790481570417015634182608971073901966252582509711510908461329138411531136090824986291660229272626614542314618418967661665770312858777927323544546976868982573825474497075522830456973702272231202603611348135626926663264393241264633894893877303621468358639149659510372279870326925161040840487779821215676192851622085600674855797764983398950567038409931257626706215606749065033908092152222978058846598335256860019287990610025669089483336496867209106900231905186241078286477227976173712686828256929738734879947420345059198797450777327608020168440962049911989189467307132850013894988741973546388611432822924747940211142797302767179324253392115650634899267772453572039761099657360089808398294705545050694362319747616094132603536352735892770267089305156318326730958374889004431841979221672959449203979639726444643727674564897184939827926744422927450098506551810575441237733876992451681859819618142961267023589566090087932975676636000618360289399428013059600339287480479299454916470730838939600666954361608066833308608656060971933321225317944983268998005317660507858724569584607369781352317964601706773381790181263685028239994152493156411848266904613567756291844427923584808861374139543010956279955442280157927864603707884064861288062875539910071722016172799661008795733839475152441959587696762271924883110214626621777445296713162834743793617634751027297868355376500342140754478446271296383357957564111137872927183967904390027545948114121016423009417148022390422910001628353175227436346439714714146415357930259798756554788713336822216138600021667196156129058975234639739642620486089726149997707923480436634380107651703610139335063405077666453381770871607199953096666621669876803082736779074104612951285031676975601503873395533114871874273631272900874701740994444320227803364985375660614636906392313646700768896680420309420895007159646684387004408480217597153816918819099583347998655105133319138581556214489689335170648004006740878803800727714031712963089512563411933896650624429402992639860627018917288550910365922616723166770544820290380805697679913214776423916553474773535140727280612595860526821135305357435852084582590428991794823317536671074255918270920220466300573668037782126973524420093121123579790896350800980298309318822319276369014088716070002724305978003958848602869516120354918312980232753034361296237477768306149064224063216989143752144635262871333536155008008646325432984898326188256876878240623619954335984903437363295675582649900419059497447283299994997707080450070162751234071733753860426329207064610468838773110148381692321300707972805753388419363292809089164841956596627545692147114927178934114796679268788197911527381543075017409536787668007848142946555001227979728743393694568485059147559801925843165563306453814867743838010577652755785763993412111947772993347591149984956423317274464785090850581742189026327721318847946272027299136063459485856817400090214675918916679535616707729735259025026896776937713168165401100927276913314630977583330169265918040854689987990070789106676421999266927568527138159399922045572881425592702096894720981919802460639379111761710788012979297476825670667463900028112056328897757732957996119715884769353339451613319242103132318697959021230165220113348849345507373616091568026895840545814274115172655773850098253799577715939563122208518356261661451804768743298141982266636044725534149247584793294628273601077233266925739097549827508738908784742273520345712778568295524886251277687301717791288248564559967527684622814596230851701274069423140962748750778849298618131935937167380138852921361476809754442501935970661837462592227151283747303274045322545823801082524484599702620107568051413961561995253781414525426823607293420074409232757122899812230621119327389151455208269430173924319887323261030326743625939906649544886148461397985516392791426396363880442091076851732946152560932793646978147966197060955434486758297776123401072549848934065486626336396742313829766890103907156318965327007666447002230868868774871168101091901744394756941305691406626371049762233059125013980544830578846957215067538279579257138659127597762884426536989737113738574615265604431133673139750967922684043510898843249863406559291672116726084800907670244476424782984264770519762687884709013862513550191278707730954417035616537325323079182688233372104299940604821888168930300754199529479826388994782393249998019399140426498993560824565602493275856230790476056260519816900793112533132480109863797049753910967915116453024191985826212514331434672201257912828933030966057391998561813726174775028158727920366562750219400017302689895480516749422800921744431202102461517900495961344914346024508431227235430353660180561194892947333340137443430768066947600521216562327657117491646819032844462813345964379155163738308418465597828380575551947070632397350180904826877928211734061462420522050138680165441204189309166292102459369098915353051790586481875293765337072311618233850484895108707488471333670239868630743779983966217296172711750913805928909162499798784497800309818110392436250390780538876023936850681107267649928931707830635056854913385023225196973346641154189274003405843971681588984697699554392494200698629256411782801961793559542494361606252692730947546150729615558439416269260891538243173107487846491934223250841733242390191666679449008534412847415959104230285323093900145102655005080065497867761898672447604977824066490665253055888133055001130688460794007050724197329362261147296199782478185520749122899357815644626276170736049662746622377877950885154817387036568514837611921512201616425722442657899173343355630096973939418391494334092515821497427461739680824866178924812317271242447636343018546156829344840078533168910400801645986110491594338311046603347350434713112353422533563205438154757470030625850585692457234797075211571341183343795478364951827825944780922430825908593492002607216163601545055463124544948987938011817369464234127980249056019837941270112772994908339786872567643546968675933307150199520828378381423825349573501759206643992895836342090415812222520221154872168096832682280372807387388574212520420096196702390858365546272406373751855185609701478776670503342123769807266922521225621547570875734666817360841428940419671622182894297314036827153768805471632585726954569821229642152731064132149190201880579184117955081433602643557357226941742682364205082947478143111961525276534126639450611890848020095913360362279377599770232851786606504481631486699331967413997305097257042860419362522907234929762717488116215097444950470051091585613123742954472172063848343170055457705868545849894581737969045002806173146225582521006647065470865590603165996050215654024003822258425175412874985773456413081838112068626586899428360532284252174424719090841811422800396450915264298552212067259278371758540406501442542735933392906699567541971270283262634358646076366275050760139637424239370353278656384386745327013788595774199234388837222412200521065896578116697066034757380947734339961839221048520893485849860545365854530949947984633295780640816545300924329278805583181214358114211812809367065287129922706574438597777756597987583615552040245296808637332798081250694922512555488161141032574845854692427082780298178573265387561176266144744703784075789563194583454991697662105582479572140576554793449963364980586913958777066338899065785793527459813277712711933711538230563739676378123592432140554268039307455845973677751539869148925517679092805524980947675026386641472076311425491572364090235319451769979497313017362288639885139532351291918769415949774173285759909644346079731310157958972553594331082067972047744380934988148312257352757589501433401864742140536158402211452868448310463883186476437533958321613677334851288192035524304867697835198695613402751320167836122783471596584197482221359583059346764792570622807177709087286780835625283816392353930179086222816341446352635923581069733779840313353632038444626078710318717639273662288538043540520743980855628019187744770124702815129332553968874612518641410529198411825011649841274013120719669156518646994270278411249345739557586726557484561776361257903502380582007716350755799392183786534865175562637862011885794779510074124090963765495216656334532076358654518420815623823788183308201296333710937158414105742548949216392865710445309519090875868510306736484390018218829149074372463133697583265218375414203507086580605885174689929699110440992274187420063817852316356417175950190256055211842439624243809490861743984297150208980011165950272867557092095430662808726780320287219109358761514519818434879032827372676564146687999198651751970399406685968453162625716664191340659258635164039847471404395547648438821317135886847271155726809897253830216123335260702827559689826978107467202889618345913591536141931139535529210714677477955008222542941154450951166102888224127004910812570268233327543025662296576510288811762904895245269852562355809382036340840915820295783011116016366515457183384058220861419516481285985394826857715420714511892542293805071709376096530759504427992806726709361078974622871700451693461896646633875869319583569750127502508946054693546379739743957054027137393349818127792162608501767918790287946380600434043339404763001331566473221513283996703853284002426072352604295202086374690232039683644576730687008970906539536538510799840172744616051788288018736444658574572565643480439635237771644051372457827212775118139784062778373192385561409855083772276835128311167716422347986934165999676377418239102432491759824224415073482949707390593632119729082208044265855625481238717319943886623431222878747191113742753282636322531740175393468100370870861204906847629575278772217980361255118406749955012846582710472199480152851452055085441936889604936955083355143196930087859439760646766271982735360261259849316989125563299232673725648530399211329783847209584882638010734257839907548124604081160109425692937540537607150068717461641112064337157992219874437615864466632717914463312194994961380953718734077928078568400706509967462226891773268348751481457331100706541171819985924911768476830708016427912121199093851248072613715546394737367570608924659217995023894326698502128663896067228649714225723468922612079932952831007206885909619630020107317271017258226196912093458650956308268019496575534929041354232091163556019781312201250498807233844962338524984756669147484903138715377307585091189822222524654741819232150887938977628786815019980861451426829141687248407435538935682046463518867627074332693545415874265209874292132178498095451753502879387289833577942131363819750385441804766062083219522189389672361788591239362989721229278380722655260687089354457763125833774606599791364458821909429753672023709344802692660363812377738924113178136958865580097070276633144990173766283401149879538032151417492487109840089407150989068526922043370354943021798893909224236971024045448502164269379282315498016044543203755206413493895580828247248149735247831894879743028003927962838371040675208983161551780815965534853964060124968837203330641692647582384103405247808857524960486382309588289921695991744168923423580210293630820585272915160972796381279872661290897993162598740805960342452704442127238047493821164305437756739743557703601976723933524896004023977705208969653713539541386883464207337600074161891157515967210849330900133549490359024746480459672996721833748879619355653486538471880585551477264889993362528925799928970820726171927676764892459946853653102399632763918020452962527354967434455903861134519874884278452771359679926735531624875252099029030035292864272057972398310458155838845331263701723567829658208231651781501514935122230551478176020821111582715707761268677678698608209296882736727577099795997083934392776395108132521508040853260551197113243135529995906469906377271227337406555524388265318480459686599439411770059662641472106892297734721952001366082472841954343808225452169361126626359556441582943145876870106007585640219682889489659326761825780017097381942215673259431108392368018606841416957332321132588246203000675747912864442252724632492792903121688367129060666111553304574008998733696030125048206177371044576035216462630976154226306735190819567938478421449593951520890180097644431431210668855299370803377804449542853921657592402489841539523807703381106184099780324901140764160036228492528330025989726154485406479320784398930639659881317073766364115772774788612271362896337444880282430642522285979461181305835253053551446628597889931916587434688307568067972499550556314621217466048353591193574247962206359938744962951579274956853700734229501155897347774447093706647219281765969747137752389430876058909349713211259601795367694849255082194576807429483494101871806845318414561305980716137554990716782284519185913948335217048200332396903259220996457345271840314349744619498293944389225182014384814458546341817366672402543963668902586503681465323222654083366095566065647357706906976209645563746611315605419589083792362644624018884901024695903235859391880114909767052117618558435175947886565741912862838725067761451743282704501907984255838733609437128633292759630694340676412302223571253507267585092574355086931368565531189974450467927869541805247552297415873225568616154750993905441831409731348292646336677962173258493362176834719868704268486253350425989546606319817174689302702390290672543474006945484785510340507100516049678614977097653438843668771991285935741383382836475198695630320823749045380788107623255198153748494252731099531859226892808269989829320117290695463272819735933956566909172825805931190640005398133501927753607595139778324288193119935397600490931892357418592007282651431548623840873360153784982126367580406330862680198875055446885414402782012786702971001632304455829603548819077084955901102027215322214058448567041449963506067230738060485433967119302456335959943697366493301689552488009473408851416804740377736562129671433107937801794273471316602521657092957931621740928701939129302532528413847528080779704787614472545185454865507383458184132939975512703042370483168854487366787567148065158542828972436570736733819736799477893925141782166774788096900270350532806798516989499634333096801355757145547630160123838382006269230554279928228654521684122103952207891327257693563653188467326152189081678311970000169393102175728668158306348127896450504936962106415880661498980886903623361975080959762473138384530509468813401794202395508506068447526398319105458660704108422677681740605313692471482955044061544286297501244443284947713182271987612837075181782007030234341452714610931815227596251179087784419338620063534949570986939172219456275740978140812415498839021454452276735049276794025425576204314234625166992196106834070474740753933351943768978585404738990789963975072720525255705422426752832692552468821170749579474780809996898401121064728960875508402303340391567613793475817709677325494791983231160741417127106733715160449491280127203093685939542761699009400334631953007818315329296040901076961421602901385815609117883382096878522782187201678426368302178503839536861473277089396624272421234843722555216313425648422074197532200638751776947757871133403966169021359767157988702909470131103800746834352218217127311173726013745560709661634815336317838276497545723643559325420062092557677855273948923098435491840273847074699544728901966611554688885799562649988369772302847290662733606925329775633066437103569394236118939143033228748714802651711697245008225495774643455740409070686396219001061274640225400490528394648709048096162228235042088936591756490744390331549383882544594868099346001232886898558388907255759513621018479260668114082310066512139205051890770857762571635163478236744472796529676129208736513963625303789775697768142250328473746090685706696385037987497346423789845720108146728996893630785735795857458970608630394480668024624488347044043257411570958074350900244954029433623589590078093295889881037082753741276569246999161971805915099764233458841651320903528048518125626847675206507108184791273913338155802753140076201682213223340844068192999825058752937271953847052719357882644534083396435626598697584814769858537448502636757728807065478277389169271145188923268749318113652715184070985458513766999854706400254315074123677218004422474127101843881642343863524255145142435608885049511354829258442774700678611296817724932929117260776849287199111428530915309632705048707864956396756130861992985197832451483095181314959896693472675535459136664014642687861175763342863421584544649414444750774470734781277820794100990872457582940618410568752915099693003140712447833140093420636679156556326898597908477865468935537791838359183833258234736793533176433923955961614101982963175271492764480348725932844451742878220949283799898410370929730788037385642466576951293685204784152621596081805677545424863398801699701200604438606238592387891360360571863445914830754107567983193612476732053152598129710391377549982373263475795117565312703908170282161122510247148236948729433031056321069352811327672799077072208549508569563191050445723069804443791639292141294503597789565733098944542845300010809512620944920892082474918790447651023304346938633541200728461761112257180048387532353993858678467242872795466382462146018997931953406147123162454013310411765618119193423562021851104944815135502285700668658777742112868823265685078133327012941806220686126916493093450644547817920107967110530609893810689002757566085311862945260438952942984965500709100798732137178621009704907190247417325269509273343412476975970666755343583334195266450832124275256134131483244046186930385641826750639094204239360368709851727432435582764889222430015784510111351874015997919534093824862273527712882644447565722808206228888059907331485465154310191845406587305461509568160548815253301926787833501969356875419560636176074838058613033407362158926820243809415157575806495959528149307767200644400858786297964982687154255203565684309617496355430614561878470295646438482863726148922746237231771868155233632796455594740229843192986876277015618121446907210545794572272490856435601265620837415008055024001008741409267122480376306229374442681701453749012751826588969677131568593764664817552556042301202665803726687988372938365862339600102895305228371049559729581680012771507064461149997262834705357389570400651410259640202256741096146648674867772815783405739836569193070172455307756045206838123601680290334841033714812036131857056036735454135106195212615920829254884757795945041957809425272194021220937511838991079189114610007183445931735716336085118756892147009755427723535349557935131916123564097363110724949791249075908480897398952063022454253789663764944464250552423742529175914522549577078540250375425829549003283442339890157767241332266294307549228193950851261223082901016407310953623423219995048493652228869848192730839525491413230734837038390091929875903131458637648366319420821356438118412825181136989222510626699503801316248567030010535339448860301479931630217170537107872749033248938870687099472579419661688542803900327010581850033707272628340996574062719857092797514614566019828658005227127833065678962262753285304890480566529733755108646218851073758695059034654646427336339751082005848628655128284992902687052756254254146625973574193649428471437416326120253111407233618409410845628620753603584916549601115975691345526695891197610488001072499064782371287271501397338602598128213310746571489182674309543594099166322673729373606816952105204529570237615471624472052680649339083892744078304439313215790307102710148018623583120958360935562666715088464918501271815747844617991183781505992438675833325217268133436788213463543566031793505503446095568848614341045474609137667131234167422206478922612325990545808735202043761246690708387004675256900762484189542684453681172008275404786621678519966160053072672215486547877587795953807027225207292329427525181959728292909775372307487020757782842081582391923594235972236381387681420106732897230760535977743367030561936090969859167928678332790837982332513436363833514796944367046864592876566430185258358862449524302701027001686625591902132341827728040287846219550866703579455254188758474435144244821055114470213594492571672255713829372737916445561924266765820352095738436601392732291669560861950160234388304088254624335425544790382954827083569651711423341720282357551205329557394347739341873035507510123029062329919825607370490849328863176976411310773922898765195157231962509014172534952972167019496216724333478155332129508099981624769941035824574576709380354365328560333401496013099250443957950326184304366513088352640506589398103930935193623523013163417040697065719230218917447134078471923483629817401306229416645206751866938314751717440647272323093182972016408598496710699494710817695235151059018195452662851203125999896872200011687630425418094023960361726041892872775992785766077114231960080607985439262526919398278287182512345190816417732506504371625284027195507944618494113372771830802018113601179920908807515005010015397696119962411065968753710293623560789322180873958748768031709283632382775625457667828257365263091685588058946976663605780451691718809871499375564980382067023687732076308967293540027859579221422169286945311009070829522083467310470117965405271005099919621180000390334326642295160115852158000489921743356857508137047967386355850648190761868382091234934613949222257340912062708127122131417478227000097259809512934688764132375307825605964891958405358906569857488830773763850534235144122493711089125875645474302895750574728692372959018046810539465443390038086978162428655037274701224159351931733715177788945552892535996665033624560036748249459018207548953596441859237372786751741186129082911720567768032790564854820018639957371757535950348019473861364220114012927721578462643789039672077449833815181341485579119746483852127853401811575659834270504386255618406080166396862478264451685792020520221234810165233032574669139103450253854411442417220426060918759779545055548858794412084670323268584103410905692876117801980631364855734405641071024474738251231564324917298743458397574615889584830873781754966510844446682438764269406576649391087827686986929217978678233944595926965017403757975812654065586349477183507169898893204489395157657080543004830280555857257069580127332854908058960041128445837825948013733266135062772536621471710758663421176218892058154545565925166621823705528338613814350346535721989606006608313588755491621891923659711111978957501583774703139431544292819811149829109481236265224434040075645072208379927167013299951377813511104911500388369636642896207787617275377787085636247875311926931700572006312758850901095956488262021523555466288629101476856988884755532581457455672022236158977731994844209450689068587320580317332980654064280953313495434246030743396314641323578803580064991232206547617298093057405571871751703277295674464217903436011876502105478943153971887188489372756512184447049233789475364446320453992383878077437699265955879786013867014017109359094386582819337692940433982290643070858342230678027253100287927656621653807415260823731047045773811573216653458168096805197265276346424007853579041755329575052600004254419847691912975761870464738708518090460221661877708345953366964618834515250854551678501509526812412472688477058132194627578352514094580664575416897387217042642210049424467886265973521807061589637210064646754923773685838497389845102072238383248672977464428488101894330108996450869310211681465042804310649704481270578737480514245251872809991381657757651406722085502446889602785304132954839166962042990800695795579203994068341903893493745797801319095474259571247107977034980066910233055932449056030327866805631708506281637098057660762753289671919745819108526325467300547124693967307143127512626228729341611621592813953120311516333574190483928865949541153068461132215088372612752236610383659428276158521144040079098866208740175499493388975966383614313987946631567131008829887283945639865390911973645062002558695181618602327166106203164052395700150027186301323794639487719873805264507122503051018358471205324303359319894417100288892624321720536729944766855268877578717440202594845005602490305103092826915204349501552151744678206657805652960594774219543776358392649837089649750783984667213755125556824711256228907914892320706491797918849721223290561576014246741338831303852227093187526281282804937548751202113604339982891473820342403329233891640049487190482631696572061525338891911644387211328198043315778910969953285329555354251773365331162275057845078151160351255277691771662473165433577403591802261183933587454381019076694702589470590937350418202385790338704368526645758239500627965428166271076793260256950473986739729550780515572960778688512002183946174900682650377384529781681773309591902555366201189975755783455221098704276579575784829871478782685770932005637995156862155458465597296381291217172578826069955379720102063402681222420830020454422841425938901038406346334768818851261093134467094486607428184233554506576877063759212214177181911984670887737203988064902483437659764733773507415216978269127114249895348599334118867238368999433103385797259979785724690588258100293259547397831333098933014144733292797825706168935389450557856657334560548897174185519030564669816082682651806119900843531736868698135769446038656886997003216538860734358269403739011210181175503712513975485546951576272053400219174032866429974328803526730808594582864995335686742908845687948770449307112376381408322204844253849554401216830530459035437837902482285810146468420768666016758977160687107268732921176333710872417328859633153081471170599625070386199477284004632441207967833113079767784057192019092006674538961767090766811475085082036572198895631086869060114655545744361096446138989831914881045434452642393451632831752559805473877061926822950605626063435925443858091700276462466280380927646274805112733430316937153053402560272724168744832491578732759090320606505944903706436763104909693153563013796680663930579513829625002051264146589176380432846459410522258975615755699312564200470793636823392130255380633882797989498994205469307105884502820753536945885155696207649104515494081606954210580903988912443129603625152317891300473694723462385058476668676739320378376383898987807819896582347151424090992764369457015528104354472618602049670540556088393849865277643724378096484248514797807628720619514338699534941945267488307389738547776157114106287699627964216973658971451949633484069821346270345284492760708758483033692711815999859360642202228156472410873899733527486575495832659406469907638755877923282861462238848433849627683670860396790854141649795478854192342747741306333278627876982799028319738690931748760824434379927238901089480408529035169417447338561998236164265991833133581834460216952024974397290685217040122303302594697765124377186304486696959138221186158986582918504929380056770138177612890081372978495535546937715842099693269467799682572713911872678880070363322859273869876756406680862212764912498094713852513254600527510997782353325716158077135002185934236964297594201330000540287082218303606557127982567223888961516315674668142001568111518602269712705724518772650744795476231842126484193132499365605000449616702320187743396905366053621239164255887450739308862359958193161921968262384063983960445670532708605042706794835541098192076528647951507815741004393045231787585935891434870677419640027717392298549385499614849647325425740506470900772067681351018419079301164675829897916219430914406827300027637316582990142023205832136556819916418155801942181891297593502361755601521502817518991591262285581509161029691424167934157181291572254823852393446219455476141684836616233805622679546019539692739981919476111716830126159022366055064734423087329879613681434009092707106896536430038210742315570531869054297151668624239738994398345450113461006872513078235627625378682438622984153319204143652988880841320278084869445828433531166700338953686678693395244259422332466338897363146627141448822355945044617024326280438131371009581614791902506707835390897775021581777617809535591057708197599034276908579282338318223925438881900442853492767784493493304685361367195878122464924349775705037518004435682955194485386598873608162874689874163888164002321303095626722850954346030753555463527434565172914584952232040535404926663382848827119181153055220145664893455981875027329874689154003402073215549161855905657598431840129289970485230302218005161632975837396563072363763263892227475097195566215704351028501184491503174990163963479464915386742453350539807733793784334884542057928950229682447041387198401503770529945280372752157868737175125341784845067785296162289965987223939045161630888184583536867623534493662264365560719183349911471415232115991657659701051478396253266017453468709761469827827138563303189815813937379335806401167994812584143724149328068093684027605921340855760871682199692535987041504462885990385374546025104357621461954525594487380327694473721843932788646604605399837643793864750762366998771867060823267661645164919078923015194095136866091319631174387094996387566180433930279568422502042155474343648794306717911841249451881594066490054283917236765051785740799130956891753438107188812078036026774301838910715089870356401101567815431521900711748903072056620990103602813958172573178964680657776192386055258639329914539294071773906635373753303704341659023273854848743185556829212568690267238702531656720029036879133364232231976216995120524414879400510891992622726075903915981463789612580502547822887319318418747972829414870479678077479762640115399633598520500331322082096850366548254229712986604061090822515051621952368434969118174624189469257625801886333929126574529655132129751046997103743621233133749388850421284463143176700534859612654977740504581730764748904174565638807750953750157995115203466991868023213854668818242747353586907872705788015826511953910003339978122618249220932454385782043988189886915425345128790725246768362633881037202698636400438983669200037287602395320582473476760140998147626435801774026347189983279189622417179790436224517094275064892103742552039016434682743695175067647149787019990553708966694701808156989151794551049941226781021723222304577218090761172115455719599912014844049139822258271651839227331195062547698397358277509504202587673163922385100692354967346068824618159753511975243337323697501777742659328589900227777417237786190666353057774395626477336398150782075000579443209382845081839399362799237678621519691163747309410123131095638731219126139284386314734514238795997833062126474197994084457154920917754285627727768643481526352758999671754540246099962336256162312741538545404590606030729199270062517088247139615011788003935728355075145066302114779338939460463395185918871367682250741770294225506796360738246660304008366973413651378747203769085551971531156927855538634890832776964490033105555936004262187625312453095564155020843246315612750156261820263078646962777618663292356348842563034920493172900502706225187052933708997837013971120655629945599575376192377124072937008716043173708007474941840498248420524990199309561629030435985546156824060204379147935584140063513865656720896202351743416497971201127686555355285075277598357235754562193369147626506607659679235146882110593766363454712541595708323265172834341695095331763873836331656131323009855411881932923428868616149705149172421672196587618002399767732003783321741367680445223865760372568234265670527153894209549730842305501673677937096231784194048725135221714232501444071640106298476293662891030805493460822242154148483713171288113380759561909256910694296309193217846209939932898479775710895206772720068977801822230225451841895153696415348552783988625188979449853549779719203090300898904911822772130670647874509804060303753242667633654664529645617010553691031316609368064536784590565389835161605806831865734113950163016971342644245265564188623077991679106920692059480240784439086674286028908747976866449817065841659298598111129779884398280351059990159105202310233945444743386612324490313456236986889753115245050684225600745698055228382430034148312857251853236675567771906340571411026682677468253273870751699525152966724380243712028060949220500320764640228130010803464585797405150227852636241555141843221848747284839681295371721959429651258105088938805848144965642738890960383540002076847829343283352804443586167404161946466324497544442660548116101270601163406390166031776513245587032394163872490021324467899317624751369955450330334885572781446189927710390106283137764065143548275383377003852066305615114070243933632639633047587605166961445498565622696752483949344976594328133909627987085826558616786322955590921301521890027398416263082874972186540011298975661337245305719382677828728809493769215837730075666652807552618473610299269176148409029409172242171383473654080427837149902759661113023012630393530768848588059346861376747807604389904295146385244126691407237842192289057312479666055765655337766675727952117802433706353796829018275967838767924002458324739821900912022765761027353940897242300987581509852523736104044342824238135353448574795226445816130546227527612842217266747285481578430590326939167745616054537897996595296425421482907822508916936309889018787416846286387837112975080406760056322918041762138860145657510272320775412427422305111171687024934640626946154539900557132370440562088514905407209213867634113056958701050387104520889427432219188259407534133083793498975105260296625056949907710642959874771700866795316477401674573363358110279406165688987889373048061904416082049026618930053317130565112796987732852620330525019174308239590567047261188266097552919048843647761000754448555061637047153811839286310649376503201766965831816626155733122112236465043597718302255697374663169691190697491841459169808878195502991249041240697638980763483153914889149496876028859240046020113379234080100933311048611349025889977724048106934519085108103410855791890268394077660086474452341026434299052142070258708118381638488999726070638812156948591512426744661974423102859227650406750451287266808108318183930525821034887268497304650351144570191754848476018896962153503367944127366608101918386950586055128651845231181585801896556515601880170106949495935239925146574318245289146143004601549161070054385673635609211802798693201994309333166717945052364601279516238720282749002060342821914297446770317093571942118884146048012388870541185005394434692101842777776045977405308811882422123023058199577712156627431513363665370986248707838585633230124902879184828765497722920012818122202240105912648947007752262137106052370045608291868084256058303048018231145355478243517675705467361229671396847697192264487201803035111538997246025453919763492960694385355913858274498144581761330795512818028031567567322197566856333090905631553719159690625629930962197955579780057933343787292563679900592858775672047116042256213696050232987020325350102721725699496450888911009869853088077375794222844616256320807466515346824032209053373241158921370926179610734419413905268464558782618121500624705966113757355617028146574117515507048785040219909882706692897628626046201769941362607669375851381143612657396991497106341892908356910077196750578993120427965186699451925612147063425171541880997178131722966525126261936629650308780830210918296266929553813206433878491750065888275519925388912731417715117286841274213611257461375786548686385934368778918722115138626500898468595288150300333949150301950434827152285249980848914051146288796452607112990934694213447241350273765933926722612687142428876014103789963086504561776725503759599956264743900961714997641762069315317910778773071569530367289700592512141464543837322828313415976603495053107008901405572210154127751392347154974770292288417135383037140600094542858438513442182399179478168368010601881931489980762601589650314826819877430111356656690149282565412889036376718010277204468966191666712436994472839954655786518343344355575696298106051212351481687549289929941784888353071938989756716654675381432256274422041062616593209278985841228448713071603118171139466393651991214694933830719313830198688921378289069485379464496395818423467222201178330663296665199988373955383783243140981465285124427387208815799764798753074983817691822737058570708155786177613406335964865259593508647522391860350139125150679832678037682757737592815245400455866156036514722829645695050602504814288846482865945360663117710702225734046012600116431027339290651584298390780604049804934958042377123469485557690189469395041055747770953367026677680518860327690072092907134755616167966091104236899223861912526189173786717256372609215268208897507556158230126010666631327314961584800144420557024658469790630125542794932656546816821102568663799288700350826973278815600624688439869178673010207465942312064171132802014663981462223128121213357514226345309355146798646313361301771892180198969301832309164584753635333082354425256179852560178376708584121650815100392022849430843783243689846656753996921577791581697000787376669371462673366228704429617553884630569421505283177844341151430336716828148108698473809970153843896066747152763490858425744402276710303173503126039677094413471955573315218403500856593444482276601688435107131442877646459102384958981070730014696075692811803887966879138548362020568190084568908992600141354284379183160594820209464757111044980621150501805206177361940928108550297926749600962482640102393198912725179671490467535425829187649632969069947488226196422683506937919556476701236810541001978857540162133203485134785466197259746017661965926056215048419466251048416509136347757121459746707001814556812319362937847111052355414117563467141128318384838358211929680273442995510247542873918642883910451595387048217597947449082134857984390975508295681246577093130074541293042209747846272154369778501339518469699407888725026046002918645726550746937962435225524249351777662405371402337505510902961150595462350822361308556504302295910808935798195592701316377993697468407310399589165973712447092301124044303277254469571771630070444049436048474744416528599570947716856310134711031516042543731562569105591513348823217691284134623799552145285846750471189056329675246758261566130151191731708771076004135879608593462608380974785471625936783261203077492670779593933102851040809569851379192106884540083500506161549896329691631938516066895760427940835809303915762808433315002193948230252416799389547966365067449841796615011277338269444601277661582888546807349189496058455731891356357886282633062307664756033168477726148691647124420770271832102264089783645934743782279978606516069424237025469274002098542683731116052569657181005926392930798011740080262914148046704711842554388802177394975685501649336624187615437474787695743610644427782429047919455304983786825251527132054254645316135580076392182116144231105172034045085497321595696559167259980209174642489502635038365242337838855658816544151411021006611633286356595419793286477539045926344271474985286896785773162709209766967152946408504708019749723953662108689010074296181625632439031770620468592307127461409423860673320465994086192577912812147788380761445446805119777420938788536137094651487075221937908086375182139422657071648635015752499944078300183873855994414693931994300487766934260316940284506144851693881607390822905529398328132282787211199805955488858968048470386917425154067277646107493147141550838754924137146199608673176230990979595770885953579746605634394740626601217457810861856372847383672646947742568464102173401335422818144431771642033461475258186984760936993348548809167901534201368700968469335583049296927229164412499817293042017365203448673797223888117349327858265611204131908939326460093235039663620977887566024277410860530704893028260863762953112853997542190844628933347224753271881470627037522375535399882258731139322462267848224158431153436351033894701957085522724219374037283646143966861914909652436741069564309785959046214041404827807411570093948953111790503115379136753019786092308371348285985346288990747995229844567291286220382721540847559745819430003006735225958591625151190055514923747571669139448063452636871363508867923591630413189826827044231334375621266676070778444028799521908493232722602641721060297247893726513907482301021214371490676206443876419183479291644003902862540182825522396240882399627371642195968146750868633842661236312540286498006526957726706580732840913389284740300147033011150372968481219064065053721431523163175317725277541045258310719640784453780465297888422221095851553619159403731580082779756567508097980229279780517341933402823177403354558481102803452056820595925739887346828296160683343305007128408853507552379136060207079517343306294867163226435987397778953912610457290655772098398266758340707905641085119415307152026833218803195639619618206198743529865437114778700500787925586279501341864824503915548315220492572440876944833439692862888564062804647887614538061804197885240768379647395861299846915838414329121551085875047400488249782074568879873826384092932325155034132837570018563224450620739925414546879888014158658354707500382531297408412824785500758771799447767318942383336030634817743612232200491747048103255402630248434504671264089794355568639804439672186437378361161542252152980887908672064842013194460581416931320465394480809257187760647317702584954789856830956036536459455440778249087306406783470933105626120691567874133117145788834733252988942996098517864154872384508996403489587764673077643621929307258759471693818443167981285490610702257334388071289888780050157754268143543960460148177562794124397267917745135374502169008663760063665260993642941200353187405769565078695755000263589906831326079115822051437477409731401851270886331979197714046572575286030323439821469824903768352023744800911381835618307115719321778410484551447782705090801722025641937621525436891278405662482448372874063879879860338903265223146890059827466598209207158121549113052771559258407819793666193144935168382227272323047352289734187102573555142186316056602386101095896249209057264491578628010662806922662471280676390815394101456678756227399638089891814448255237486358230307939189238739811685441608825463756913668656008894556364552310811382399978242507008678460518515448640187219757856921298887573680386863380686671708240240810802025169530134367687247233358677472466365532137397952370391762054933710110762687721171715068079591675173484816681121485250132192177261342267341949928811570191329970208519707960282898453449827026328656692836941615827480436799190618432856645419163996088277687511107768845428449732493513764943153884994541475455936423930862220879639596116138707387606451814013140736701823607211578920232912121890374467165780182009914754905706635414405834935221148223623364981860136416172680257865982799633798912923989298486541719586850376836546073808371692266562930243174305439429292683982211924706902505768090228390863249101439356853201669108845155731640691981227325995661803889423079898547458945635239295315207171169058736559134388583334964804854697187773024576082774161642700394521224009581046050431895763471889369594054466566990985042431139702915036131080902714559090257942764567405664425273689357667101750216287281681521070147102753495117399063418724330176441221440460262399779554021633555401884601232965320498437283317694629503702762152905408400536418327017429047517027787633060420469820364322081540779634201196130615780424948029201699662089224594511279560876842687137123775034574602423102040200813082392891660317783260500203447880711809438047399642282312626971421764524590835464717547700945341164060087901558631957624538489818067090999731804726263971989690217420681546213992792086771786481671009766473178922742549541610918128425387389306118947931342089837716565958805100708711515498081794373026788371327791028775594867267605401405931593797714762106602095150122936117154510830185682268075134524110443906750726555459286548085620974795337607915120313790994678191241618444356709671194814267988967970147779561061387455119786074399123200592882395749476787972349035273778720208279211004053721099521871454268804212937136736246731944781066185215974894550626347838619018433846552773129709822796507413270471875891496873584259039139389610050239880321787254204105173198754715280269094020064144518707521206900205597912693068753425117347487868516990050381982021309602565185698089188598615839276776672889402098919143912170968939138564984825340778430780834036297754091215277674981393612738346413066114219109628913667609326863914216265415859468771186577211908870676389924299420801986665377381763917488537290149320730684722827085975498568065758984043761322854659304219913488962825144378205577185103936231597538978508829977826186512011571868039095196281453783292956383597222723873436011844545029689360121663785245447396058161688257585165576548070801285434059000190679153433924235356721510900256206607669438575971273619717972773707713196266514188001736920920175369289950178081070244517241572376835281730269381364562216351506332175103055792129938507737541598177443711428030279667996121231945044127971949236412599120068254232992227909854186002925338515627628111327092005143474163179951970666955872278896949323940561177795460312686776527413666902505531531884350526423128419514051051917542380652651079590134026706766407355349372405323172485236225164368769581882215665150113485169476813248399094973754982476557434749760594747837538817978600972996730522111005266225822358803302462316525288374914789557770765273056162406235864070507700097959507657311540183629253209842718144930733124002608552174231535260726068876083742437560757351179295377222158340859066002597311939681627291923382896842154656868660571482017232739244482603195106452688547506196165848484986325082913400054084715218665401374239995814114948102976705301159896122712560339785133141022952786809608619832034454466684365500053429346904162873579203785903227297613539077052247661842562299422085900031353440543669713326207068981521187248974866454667537265668386721469834506852640950900141152543273750734409756915563810171649849125267148669713561500753438801769302814119719379158477775890989144453416504526797964295587279841795748384060464401555542381258720092425816352506651246914041249629489331957904178523392811935474282794140129785942445669909359322918765482339037447905861770209195847705840780006883175383519364836582552350239266293687262850269446199986301507748628996608327223619297988242130702991436379969634343047763598367998425907705291989767960129407924386232457874029284463219112716519367885763678024205934776253661238839378549935253200460785781916263414377014926331772798371288567774789926273620046510495407901088494236815820570693175835220198467468396912797588999181678928738265271976664672675773937678187110059483587577948460858347693739103038140579710927552198319627782603199084908506664429546782327699528773014838153097853971786634872786814928583881397454644535176197109889565507856719456362795432011882671303935873006565246999122244866469367748623187777231789447955987112853828182909457080954077840502163678894314671336131819008340884082366728416169843198872412273334710984248843891220125458532008056201669038222816392014318634927453430398623135748292368948846792199440522031212925995219488023357949526050871409958476423352021286727966598969935414973603949581169550359840829389544831240110012024756752509131088351460977721221939464892140470308463569762362593383694931749935836231546558766133410194865416418928587680336938072160639338720204326810574323239844863468232387973905967515648670906690417296454714099360938037584232250390118165462284141083202219236657855920915562719434835473396611311953110053167173494068819922872215948935961688966461001155266413454614227524288541656599625635059499711706013815231001692395109011778693791169663023462692006978537266770458175986278291822490154562090681130627264297538887272664241278618345472036423157485391367020270391514778942431073405229943293327357200741884179021553231038758731626269892350970350631369160927588751797708365404528970516017405002356928860387648001559174001371552032546153760647974877510453897373068733644136833043977898761551520464024904498580410260582354921984774411457597910714198901998340204151120945500038776882139599924710873211910698710852764127936985700060814269962372779438750264333848235292000770771579854339359280707157770796859324898457588039265437801714029879078467839373956540314241722928191571608433204025709867918246855585566443807434745824233709498885329945020454827458950464983875454527836000797241839804209181704973195846766327777166857010329629451338035855436326266121872380877698389609382383316093054774374209183539055918684215161978928202325423462870347177249994962596325722802987805058163554458068509557423576014000018105046135126309187210542062586586656323753029954982984335768202333310597951826984467505487246504543578364774592547689343092656953947744212022194901576850911270504320186675381672200525595765951728657099603571630374393323101741018519212981706637827500028901093078730991672269210024462563426714201753805709742925235375668007740114955138199797807318420858400388260238264951663403600426546874967562398905954770983535824252328939820506963074356509871222610223846140528595442329121899328744395408816639797227282128681316653792635629866913696294002600149524262109078981650232651800165495617031514759386639553111898749063210720089087013848094688310285577181069163354851688904758013265220968922644756504263662977808849054419066473236771034688776257785384573604034383996050313637646131478309348393900404523718269125269924291250865083375804428279053151053749894533113642832577921621009243931206509904174640945832723264120601978149012440511386096928779934517493914819440287650024536463332397351541217128605885820692619384693771119855736022927906778175928065261117172728908634297629005636816265091938141968187147793332169436385384117704429891128638659708046712335424788377271650739182766549599680572562767856175744784695200705231612206602005197079338421356730057139001257812703510818890854370454012493417485956080326560184207344587892059099257983079562395026943135843412828213338473865361004253445756917345320687664124136698171119454671323461070573516647107559792824141262769499077456282214478848747203017274479954036797695662137045379072247934286772951899120626676386632280336133908613169158733067991647467865327050988909851133507636695102274820884927352013785310532418195556457896779279949037478341653396864981717310577016518406701850929151413033106914651492052170621769235337478062739195873456721296972123498991430946818300345938943683289514301485642075520921707935273681463348804782234052684178336046780705885154296697910845583670796118656794059547949638334932778460887093160633717902690942074794071706371184657845886958297344947947823738315578380783023069708692607490985848520511314227650364280522158526678505720931914148162541965965564224856161921291711636969753403268639625998339781949357335806044726508517113410940178908265035198190346115238706925740668500866359828648917703744415863646448365376961854986668259018044682890166100803849485944887567509999502036004986101534573506639050650842385079343743295115406940692842344628456146441058082704699415620435748071183899256864845934930506105828416858960899110340113809482966116673798684727019790441501258271071529804001455090513074365941965941450746815032189836517705648423830297375850436680661480070700349109781929377520850722452300012603798144387208593021262508698172718328614392425063646187697995639008371554852194824410297318589068411784807883598174739139140199250517516805133576417955994729846455493654696982238456056674427685119268791232707880325183819808954299671844664008912126683395068403565053275292874065633342252376275746346376390516421688555325719885912196379672054320701671841925575094585880701082660342796751633864814598283478139933645386999004738243319599777155565443057299046352229166003217335712731871957888506437661043684465874215814349240331328646085318579876739527805521153980393622531199194884974054594864395446092753153297986077087283065916618165697047955573069439907445920872282110960691102881661954658004791290575223431286314733894649941038322829036658468056116763478459205500995264411841680381558213233850231155339417692162462989759531798010246931149111702076306023987608813570477760919565261963251003239465575808264392415924840599716732145811607336261720426609444129511548889457992816776293708182992227706682753066896528293345342329502260329941245983977226713722325647646940915256722320786298436740949172269781573895398708304708969222043895256873686088857634564787584194463996326345606087367793755374321759611946357797964353038181736166128610760842507192302821004836218429573395355250202426279376508157310254400399969890672333607780120080917069369107117879108813151065630411195632377209784104968598758502818294125816412233181392435735864421084742500617944849903352871242831932439707037757639242298882965756005407011511751992965277147805887830168037720039779235610248686853289948416526933314833203933130985754468850909181909986220373686689481715235693026746370526341367773993917036325907361810152291405698753052034681733664248988909793373486363295239772687204726394403628629222808694656839502539904638575474928519435007673118687792440865578047274902973849236613069154813246194993332060704404045887921757760257791066485300137494446297341333946633129312300355444753851145644597969452304308928804430660065359962683911095090884929766546484428083691357162149300215282025879822110165249308461836375307415273174380438495883630750214486625902685093538964092687823721298723199427039017883116090026357505629555276131856897921366765831711612177924625602918912119134048646338948238597270013472895542159944190504889275590601694931309009291290821526420587299110699540944182263096124702869105216491089161790470885867543887469705141843890777972731381787614180872820279445468672471697153584449880120695964246001030667986839497380066492411212383513922253881467887539547230922265614193327464355675090200185212128032550487455660489650207395330106851725742206897660213085264695559749106871910048453786062557346355870140443118328968941542509145836295260712371351373545321249212508207435410007988825531964582437189530252668745075735922931661500111208433103654751463237082180090978532658507026814861168779628233601363416548288540994495828715174187654205594459192161764947096867561260591051523423620560766253019506011624163748830093310816121705528786319241461822519842284090075155447241694718373607561776384862765531465639415226630290277166646230282658438445554687624427686257275662839703524446816308475597730890694169117758654727124348994208737082049752023446492689071044959291710683095535372598205963259991501156686237522622554443966357435699390245505976018046781533314548075723670312908814035096579854275735384790301153179504783197483970496269748465576761898700427935615575211679332031792016959263464986482317407641220326535071316182006080020750215497439884944622638001945041898116300022667799763364802224964229970918793358752610639115998420325440929342126423843246561752512540475523756156749521287917849899803607908184282714638817417070219147282195976123931554813852806989800651141806499675788444929150924012252328248916622647734104857808760370387871800818251585750768154784530712747532456039210716457035228839428224567106473439695712220641559146331060830996277385748290484919155876247301094616005203480391547940947241360233893799138143265900338406792698922259644366512183863037958765438517344024882069901907406906876943545030112828902787395052562274410837001117532584545876164642655378440936322140204048315106249667762185445764868344697181251273331826971341814976403737903137018209994301044389611028575942942960647069008446116476563190382779133482855531486831408979245521505029565940770263451572397457221485204821418553089688319356494894732916923500294834274031530709297192528610564018927611339832759110391355616608512538448053767667509592125245343524458653120677933411617076393692178183325814970050078569091801845109730410653458804807574262874627553001448224045017399614963250295703613217856316894409271828033025699366925865369287099692648541129903857081778163274143730351230412215493702651515574158226604271253798788929920405433270677611396667515454012561533437387318401046627733987195097292928291422443741614994696647870109464864587604606512548140096694563345487488359176853783668690857019075105937637539041656857574222314170604485652664785314741930291374300161275270077032622828528275750836357952000363215584475662878549188705565571788500633317761656609125775131885086558420785046881360912546969835015544107198555803182980880132114688072488174961314191090478836906427804734327295943692376852599557575482431033409306439278963467196173820827128551512379449858889302055355223458187667125256113342791297047636125476060537455651353872507786973542199722423751884935405985631011544933218785409726639871825798539166268073489664976743615743274248342915202502508694472668912333760857169007387280757199424788313574521864176707832266551271315572333348741119204147061269340237529223213383159026543081249756322558311048343939806077753997662853817141935941992760102185119721250645732220493989276000269548553274829189081577417268870680075471639064676688203103114684922621977880056138129764319803288210768504208165773712306680732162804132444428213994340386078108100931416414706677669425152120453819099098651963710910271182728566890641369001675380838265102682868786936748936943772345769376085199806532851372943087958732159667850921943057459487616156295260792770554619380388914993362918132588401025174548838971197534733236671777469164072411365934698948498095816414093363610675306060027623677497663964364881119576899958205721963834114417075960984139088109741184667988136364468524117152045022071615352122695272367446774531824718153440904138973378667790643730922302154278218654379554070439515892561769730874051370191021401703912096424302079336771191533043525923178744517662914456056230183141395522148626093008338171605639880417615944266689685527156515171457498426974480896674525585967234244944787468295448943605972780702046531597121295639716109626756922232632646726002931377326749164613278703636288202125600068499448477805638527699640048839741468764590137825302971705579206376770112540721220985865172456130060280139667567972081086902726932814105383144244827425723392158391754129780535501442597737104656502517215996260994477084200322172915087179711390061457453887409244773555464612583128113263301597248328304865640863404412272900284292284551765261918137116047047543999998518031950153123501120140141467583231359259344167713572798367095085060549882928965071467666928018084747020355877250513952538251041298480439880236492964134363082747968827037923924333972935357144526911189676970070424748781414092882231258831303017231002519957985077826954643971847787330134863845602270488664646233337299108539037521750218028827143692550328046617359124271034585662770138158376479777874513205990604800987795235733878526665261696617504646570175876855477547078798185716831663849894328260392509035242828752527735761938351818823473878264688787673255361549517880934430695594851390306376009036547377423258517466670941605502162038206012189313864541609521748554847842142661362918683262887662447143208779870220742115088717516384536359436090527921277608492222252627456091961310074235858617712132551358836969623802374965399793326592521748214382202751111711588945874411284567992684292054716465263634064915177928133165497466022785940376956430103258923505511586990299112467349971252273121916706932997336892168717606188126910887854292163867108309620593814268733736513792724039456311052027465150156128736114394296473298357201408752812343473759865963204134378443753940253832647494780472668571179991373974973099760936831349233445073760490547528540032418566591142419446141196541200954902712360850311134951366317748181962322429241175550514790951484583254891483327385940753180915701987437721337742181970513484534399644676056178179694803378966979402963249775316420001747885292695208092536308845220275595582550283685475001623619702833977976460044092052974556222013696070412074523862329698357461580716127321422142504198814449295996528436436747558128986841453980124214304818560711260933006195056068162467909955269813323431909998476165205268441303020440874849426012021572289544679092083048937508936404369974296886994659750126210719113153158067413561783427814557616730219556839629463412904633034585456287387302166578534937489287159979050971374836529581551536497902826520344018512644564552542613031127726579552653567705951684021415391158547118667546820392719799723714338816456088934674442227915935647509064527831231182992882444916094802490308150656850382996874979663832526650519175002431023716369837433649143892877726908391751803067558204954235145025821538714483302495868908364764065947491834509811500472713883721430578596014368401994021079560477648914898995266045796824275588613909229425524818377576698666715951573395609642866658333225270064644529033866740316374165826923550743867173342685878572571099957518266647532906937640103299645044150733451719129736996384910448555996324319116935038761292861286640089048471801551842855923278482205381880813470873053004207769072891984429430071472631834923398268563560260210991633060358802463385945342469805944523351533093791371456993392978324941789151652777771385897732595173087640228291157904924956082078293257288380395588234892403094794181070188413358778752941325475438796993327360850797882947590015846566223487591263738689655156857113486524607090597886355004923471797880256812451608230381446813482162774096364799897113461624762589125278405619304381611877183578979599411969247272326865564409745409465435716014242849357448827579260178552563517626050345822214084319267485533856734523786153375594632763222799878355545521005410971305008251405344243429210233980122970427166919480675844953246094674335804874788668227073542349010983979098276741870780100097275087587502607495074131981655411105941012399141444780230611421934569456123350305012938914679409934690649955742381175666588279119357594576191724021849597113384653407070837069070842667024111666786463612049426723355684989006166009202700770000080512115940277699092580959455475073547849597338609605407930944579010435560991917440025310831144399899001212901726664739669200873918544781181520697126458595414105613548018561816937853284534675884523906546750931866486184013449916885229272353521325531796394959404292301767737367279714672487087428471523895241509897739683930106918141582221998184410424356931976536022481640852530231844374886518477484740631993534211736191915688583898239672017795715595189253083040909139267239047380087116977267166495157034012548298261639900765916342477626527235152415371802492661884638833689151898675398453983827846003785227240106016642872112877392218375286852041000521313498750393981269562655510610930210294494976600661526876251883401120450439719267824111460373989425142035825145002268519582215179475502894375058341592458220595028632708236128438249746309093155337694787985534351140287469116914698289080934022021105831353226549936318567450810401952212085254933840595338141301491279268516322982964685731127686930194568537432050113615917379040111026813821676355329131964270778970576366701671581971783348657918243114122067054341397155502514135158802065701268513263135153241154325417018470025443217789866836367362299211294319839806723358074952157043551213136067937665709519662178326234241651168881775438939572936559650906434226843981011622709205583820388974108132753121155737464076131208677454637340805613731829910679002803695261388537050580186609209133638979933321745396233361283995493387207753225249617480344994849588245522108534107256446096698716167118552094635299073581386925060999465719104696245964909586309027218259369695845461181885296195858133276401443252862866817077278182154299276604371890283890652813798092562581897082387845324105125136600866266461395601199973881950332693926918178023322123046323478040576856874852150554782320095272093705128591428223163748257818973137070252371179459479956968400031296943095621842630100435007018711156108291642504557041416572157337206511558159246968966789174893363491156058020209921854984567201485156840444314778057021190991892921652684763710078406717484018837813353846935301287319055582142495933228351630232575170353694889086341899371407670794966358818018911846177146509653584648874396365970265529300303626202809415017484487406635105970312756638068943626904530077261737743860182861503960273498470251996804991312251761804415664076860147495343279756067303656506076414830867552800231745810719891336344061140267841666002720525974756706700907763691613258517246247650444570699048911492633900438393203078611048931421824991767634619123058710060474535353994448740080693720614356608605156751673406656756555362122409980857998351509270903312067677269552813641344717149225548226174164926386566867797330838826254712314374576561345294457109786165094055203702222497269066297829571380113446958664646200293559524266201859048901191833664778012141307857863854954398696769038886679863218466597748962534823409995380579522303137747768474600973168426961032189569627269402687773950935024591708184946402785164910426292433297607285952816741232487229536120741440143499244399333523564633711052629090917290343108097066758708264367496973725213709380230729708234803890337840732058468832332279882781286655135799071309856123108013214813613865415914729772682190532235197840246829334933113383932237765534599775921783461469713242484261002303188992154819463706455118277100818334893662805794581217663902746081778310704412233618438476569455771990424504549486493386718398869152224170130330684242139252453748559492690267225792109671821167059541541844133651835246361138973940557965713772231720818291090898699302611923980966809186496506025358306223973976825691759867354559784120058231999973510469810016075366035550372869722457771935095929132214560522596244490090775517357612067412301719035317902456881746510506964038779089110298947671557349638295261218909103402564559933294095388660777616661140331742772103427382917011474219743617886793216752239180624238928171311298538521155394668855898100822067586021354709205998213378088055007300484494489174474157865572871502618244071509432231313819965207002763435353088462299189526801778371189901289094124843497968059969783973316944093006084354467603794363760116136470492779354622335145733995143967771582731285827181081784988523204099071289687518232051325993227808489603637568276923744950487838979742934411836226023282049722003929101773243418374994770400812845425098350786489969949336469109297338151587946276066816099809604018897399377047665524629144082898201636929194214596188868051081476272556204486962658644125561996444868994049435075991454933155243353057276938867271071281032945750254705060495901920003900681275054828722799077404862484432122005245237580910004198951585747886684914102364233525821035525971157609359266330534209010145775411741420436511480677041449349470274640887898175739801253517389786331981391982151889141917520855120450880719405964145811154963394338973842657513689526008810142369458357033580644634079755721062099031719940466794663294559309985532984427269698174537715046462709675308756342053831718340294554241286436162238632226498078979006170137518702669111644537400851962073887020372168037242351917891208530906709263322834068580600002579752432915273768475041352310173197066161136856433568827691112842707697328030555656820529327778840073999942256987487184663697294993019352724870837563305338579745770302697866019316308773370933142424314074880120984750213194992353328546844795502238587993350993554986495809230744738650556754452584486024230108559483902639074707797150184403786569600506595359732021605882857411407485533123667435639001759683967422908496224633522083677350091811020112486072402925297067287909014221660439328312543745769813605324649580009664166297857670522478762382974691382088895415759106418541120758526175801748247597720870239504560366789503236223175329974286233002145762271345965554704902122172479662920752190682325492559262952585113209844215256116616739831204417806673761066388996904690391903802431573293222304233726188553730645777833483883921001886131839721932417719218588928105920665241518648108296824619774235972307719952197522574571320992732028575444680620016624145164710420182503367881020096808423870734116627766502165510135103160984584761448005294661424637742105325442639821496776328427152882399164856196198284575060555654540857401114038924445077291766447388309415848822953991207416923078906496205524508788359679849427653350033811461638202119360909835890260178108578315581836339013209615313552965630388991647676744837077868771869534768151984793578623523088649984530999555752934791967030469635225854975933210990794421351395742843607618081246368387520972370012262970118550658294665031353620486513796775591952479255114974637982364061064577575058951114438563913968923461567053563642903851231610928555131856440696422541511581163160623790668219460972419583450878171102070124009157315228164930010476878641805171290870054015722670905798383336003805849682859961868779550947268046143844080899580251493903495588709292100113016124528330658915476422201704176186920598335600789087344217121540421364735052581393734032096265693697459238221833804541790619771483556351423398133584335202652090609027234968064358049818043651159916974378924702439884532948788390823351298487275490721791405328490188300277255764248852590953577642318235637278404232275824185954249368602079511070789897889304944463201066013148726277859852598141457878399639699332672353407481924739623700100570146825020673621914748445985669505879822729171541241707852638341114600744770504764841346343167229184464767259113199196621898599310205309675632380534882368560313050538240321415107449730290299389055494161221875315336010820080904880666534500736692522853308846693997787987303905040113925003716511242807446648783527702112669182575545025054839383281561036012803063405464575442094142272029128499453282485767790728227132937986583925151830079357525583569338127024321511581722766561803255854807104855510477604689740077635379085308854977735212339477660171558335528780096317569022374447521109439954129776737969865449029241082502976385064995232849331990313468775669588778656527416926771883453990939789992365728366013410240161122451183156375175899210335210878338352626114464583300502858491498089346597104832394218120183162482595106348386302173906579025384949543270952121324989502280956394595435860223930935659578890481952714811099315061672723621613550764644428619301088904902140560739741859527313941400795318180816558054842552827904596794195253386455920248341702902354486581491438691286058799336078029795551524326572788701594955169461721710517101151452833082288432880209298852552530370269595337203871026616020359916467287177785663476410817344101991268913482925794888797230305987090303818254328958282422728513223165404181161863022864487887957672779616320023642296665825713362845596056609143410527347423128410790615492885721804317425107905878624946325228365140600818784969531805833873730240339102034960507809024959377905398657738339954385325883667446640642546099156499271191315561625640430624132674474587547493066419914365032919709330516771018158027249493630283326925182110100372251599922963515661645348127764791539215512366966199910156969471893905885280464384651256000387889348097731213273931292008389505027621631872161580571015736295893395585813296601925079699009943501845561986533631938789445466309352713109858386924523381032575972763397902961796041923044220606611588537696900501206884691140563597534278362820585936792015796102554283926023016945386066643967395772050748027341748037954653651377904919438186309334541056100868930585860672372260778849797778793198871976001384696853565331998631812496360808663510193025292170939330312323365972632101696949968940346633255318718490597672440894456995520729749757482401583046623253228690441012029701828134742957872377892895544528107855125008832609687176735986657723559225109725681770216619939920624398952823135289607566803225755962269565166230658933281713316825310388575411033436971737254694420342240702321727058410466248594235597925147116227825229330617183048923564808795946466265321296814862729501608225893805583120128970831253649723966439310364355548432275014827429623035777319328088944512171541575711442103358272204997242837978590694532641549669839439063344739690318750280076935343703514005151441203581351198059068654769514255309320785420071770236710172313284801622531306886744399304736320940219800011717454747932160678928926062444611519499402632054840357506449664345280207269611807879657964704002469322992393647338639396302165239862572068011735117878280424043751780340971728732195436185912332374520363422042926905599855800838399167834960434824176920657235374283051306659011382225282498367083686123167103026327390278643375080585496569589440246680464904273898798287324612676642272280525063348185529989020430626090950423492370361817818723845570748513302540284423951349143488208492594142321539050172958275252537738466558997102859786395754276876379267999212783010948047759547971757734792394592320794100463825582393254272619781269777299740482051365148341477170342313079046863649810826616263473411951067873186580447114213809980921620608254726130540386127457440779894623354200046928925999831687404554803892295698990332078958697869283769083588526437576185646104031028920598170520858918616747109327950334221117272854299870417844906817350391811182080048193214893664975397579682991572890275870893039746726341324830959324791295267905744260583312784631836801137305724035904670624906804423359932068108050084385964921808122129659189129371096083157947004504401281378376650971696184804079544219663518953306459789582477125189563445773175641177124582415625110450976653144792619271435046586453656653367220496819650105392167292885815203757108650931963800426450733092816681223774023719643507619904196605277399752294740941661302874478672357519215299490200327388993128089309453987555065180630692533911547502221292104074274390271517321740143830649895305410024267859279780527799530309213065418946066311027159655770951082719835543238665528541372055909641527430901914857813182180291170562695428998251866357111977104647035572435599397393517647000096912425171300659579309725363201359012788531717373729440197651517386388342503113544470942231020922488690398905752289931473636962346618235001531986417561995910832307648763350248350420394991389653917654667495973685897127596927565800955043813436156902067713502902749043427350194848163450300102131509103142864053373801469430708491382806340741464431337791246257086309660363824831500177974851057421816985461600249234910400050938490536060184109883547723015838581074008783307443314778140175326952613485885813579526262503423621874867061426875604681233761520377013161215760187399226397360742250951052759856838463082973401596827821139923439677402978580617052313665254099597314499219424682457765837307430599621494228904341358089716305286255605463671578207472157858540034215067525979906678408182539144180567909825521957389530279772907261201505426910098681694733487445975692360178869357726828397769842616201803515737933129203994702927214037595833131497430371036515378536995445196474304358224201174839443417721826867252757509310762119097966296623368265129089571630471008933723923352800042732816731530023101453067547127514489508195946936622307105181698850441858151342100136582148224087482038588834433211486306786829877634820274674395793646838510458246706677227685310278783821773562833194133774112524669658429361503906435025539983502236715068597560340036061736227971319429728126331246402283918924875982787699490710051983418499563089516401450193936115898212167532028948874261570047333612646822657580990868277467851147948398821459735901582190219417304465050523098937472375609900445085043734976365697943532167131329121653653053081440596923481226866802651879510663714972974236843759152445051102596747457747147208222671991790310030148220481749455751796057052688835148408681969960639964937586471568852759340975554063117501611369834319843220455463283216518649532187337684375846868331795212502838817815331969847017930216412004039176515409999585227674373563115123703679881422413230535059987071896832562677772645523194330219403526414059020035666083099154385787353628333661083883238685195463167433928125768067101868513734894717601432472169943732051654363121125763344919377367387103453099880062466225028722018890894857470531651741925302339422965558324365488634479258155488898596299253065875499124295578956356307175558302348156496882013462096316466385464901937774986249730717398272226577485578988683396509134830893522451191236654961588031472931341301748235182599354538585270610949630353226074496477896654266982924098894350647397126205607370192695422124196848786592045801693903042335142523598638069878325183290028897674992054227781454226264936228645006520920442259756729736755171127641176161541998897742444570692329961380765423622512285928925485508046069648297009969029585755759391789402483623619235027319509800612428142675801564358707216863755216086659449032089333280413872280546985589746557292219606110051777078140312225530630970162442983240708597153239200216310682181592244125153700917630158652543628903131728575868837961247731369349046295241692632399940455361310680492599169194859696795143021572894432855357867075001436236996211265973049808730273699258450645871139330418409805584481478297260256201343637175921877505638784689092615269723085679072246355488729730826780917410427013757918858381268266214967690391160858780909296728782522537697097538786813977172996475358889288232102277138388442409510824775317571881067836660617120973474392006199160659057701508826997921419718410760145238742967972445944593916177560343767834332773782246184493360553944848710045716182763769487689327657188774025396455083673101779785479715621932404347367700579913196316287208884662330464441997864455118381681198993907201054007250297255054982623331827150210436534514912814151694195094990673565424511819225647331099373422442471849815931938656596892590869806217644938192368562325186169730137812030498137721794206142515930626132197232378272903442319945098350059067536129770429942878329653500755216380102153356627006789743540126926939314811137312924593988520517721893660398504155381576711777056255401100060810402824339499587559748519971337521604869953728485316516940447431093383473818498497410590282620887244800658008351051943255850389007290274456839910111050369292834493644869847914358584133873009919203473966880078231189616525786062624969034993532396384872162816996845623881701011144858952352329269752377043472391689996300717309635170425247584795396248923741131394579476071626223822073248361646432226650128649376920274049310610711698981601547670847617258660099221113070326389851584236310019121346858652704084135134899474315379785393562977122063610295849564452558166009963147398425046354306715545085196507716949970455435556964442594398801991853911194082395375053306862656183007095656535220615031895482236071285321738362617079002657120079132250075655316379163257723322687811216634025759960270063532823299633598676139873349876510334925320450893186567476770803888745485743775351461990507772791740600555803992578000161323135112553298787582778002886347832003709354187516273005977360476802257564027238000965909363998027595592042584395609519335563095333031858549914047098860726923339880582393456976643876434298771939277817731211688302029197427120579105636407707449245373935243529061808133562245182505331221129207795174602410899554193895258294530900772448502282452793928403464099088148018248008608539428111392830911701255007678338609307260986396774727205353230381670039514522441704076867207704862776940483348480011360387253061943885553412551398793152905115881127125501157998256738968954280006611198737721158269495166280916300647966483469689100035194840311076126086690854078354318450590257347635887087567448705383546436343064948045717556558190393752508561562385322183462519351269519050121962589493272496989075452955363740154782100411415719643079771583917139432643449983079832591859883511895880067355746875037773259665900746120434431965847483774911856415037842363073260532751862393186411268314103754943319608106062550925216799114703808356337500091959909263716748947884018426613692145221094173188143639449859015811912453333035442041130112064127888830751564529913185915549155124108567330879585624341417762552322503176082510373387251810777825731042083114046266684548419987584757855128521268577358618603018695098358014941300729998966327762913082441749452237971997744521110524109617468325436987473765590540876113400552569363311261602488076103502540526625426819306899112028605657728122596740860733798776633665447326405314358032356322640589252842103134095309952719928875865979663054555106022157841479652280810167557787281832047101851413179675168556209101473811492867026633404054619487720290568921357935122757226932151004646859380193705380728933175125393477709477159068236500996169090464879347893311582501379324966218155171735527443672154319327809599337261124095445682432732644840377819497567944673250268760193361004799545691654170272106781023984152392485776579691449006118998025571375702515469112611563114500522571119711253256820912937369411917891565699296140295600550835163608711646790282402631458793561224327633263359397901105038201201632144296295587290661337659210892632881568583154604873612252022794723113625688023988778679855857982817884603863051716310066782947402379706422514963373587142087343849977339220067025040977120942475419802311040611290717730251164599334590859756179152075330163897849299075953083112846703560675232304093070389011444751993539307900938175796513808079622313164331675080954295470880174381567054541506553103626830190685244856088539153189656238683746360880482751533201850856913294794628689641982037123765215800017650461444079918582311887175698562758743736903577198444286314695706791238387891313276308590732242588784429133687456488134613052167165366387974819799794947509554749781028289450738146402198095476669759825253283627420497272090126664705198760185763998960871893182451976387313976179383889266396224759436395407237988234762667746306711299942474277534877440962743561347260759177914361981042601264915713195616806119139868966330464307024268135998625310240843461952773757065403573396981142532422238019188989177264448614064071256045850944763853420203458428939426105056273976614219382313375822276782340970433396121658815817175492352649086479920762879371942665341593259308362729339818892109671557914341133536103539153536719897662083972525011511796749000962620716114559065221424557207004382630390272360884360059262527875735857437465874943978954033624225361137461307930106816825705964825486298808668970436666443866645692692055257035347640892996171451281255164697328329873287159995982522950828406881508048034430796848811113046759724405493560337140577169783179826024118303845466271378975950884461984880321223225611833532802380645435560986484620463255117341487079811142376193141085641202230824872784698726113212255695174817363810767649158063746606553494120818128709355227405903664903818627617775810603030446499207057693473784448661807964274973810160956912203742018428851790059392425219676378698030769623514498023510740045809276359602538948665410323706637094765027537145359132353248732445491265713907644033705102326899849978547835915097762382864500364903924248691052191528279660131927605796144715420353324239284289286542223025344297911902504539109819779897586817350238094917969389501715741736684814461637525511845910761350789173403284192565434969759085794892765190039795275320150500647862224067096877350339389646274050421196709956200266403824178795936656678713738344516666482589455810243189142188744543039761742446096449370172568893316946949534619429399870262517850411553918082586001134774507494386028594635630709570143896303940869385557822199632783067666695146199502776319613627050411326441642001411495795192183337459882780981260682538904494710686027251730396705806627195042217264258857819887738934164848860540795764176053405049373528719801371650873317571195189438292945050997278358255478528391882895736040482973085740029168505230198139971637433692706186463283333305815503818198641524694298954259934752255491810760626603530145262463686035772052903409097208759856498766349606197905001047927812665164565026901582480002841804989649573592450529969907822394813408130331187092438421483744997349047929826338345132142788587965085572902017919962416828965111531137921178003593856656079522912224911182061920150409359696538429197935537566535484850982041420343831376860053918417779700062026559770032232433135978750947290273606142491559891584818158081258073052917514534591356496009766442510010989444096802741722021958864427950086419784371269653667470745361814286569592081522091610196943250126597860986816464167721497018133361274958515656700037291451230323900444402262558613384186657546155736469700876019738271804559673258094215002131477857381146125310126536866828440520887451689652396475137773947146306653949360353875342575288511259302017586423775755019336308680729041232027732606402825599180106530672269338045369366007760756358784519375715537548731134908420030540704825170644786986788637302523876972028087092733337013201559667800867509610035506866651442519693972883508831137461269286847901822429237468030867627262738146378434766985461604137119228784942014187520013122571642896005925359043967685175325583285763114586801361045534791580983570592279131749437057697764930000661439542207164364153791540664364761633132088332775793449883812590907166942214637521447867407453274850983435417597433598674152392694834474304294329441913574212726952427560721678195251392297759326899376177304247126592846418663413133311090179152799012148814078245800143593251721224424072726008995522243451632358224579030620322369793022096381590262802457029060314799000507054947755398402861345004000481226359981414227143522010019356803152278251501387962671099087565707242996214503535573751665469010163172754329299413670994328466294143103001323638414181160757789132641345020795600001360383227144623932995098108930061289879850832870982158611650139802398789188511728309417032749396381161999491570224658629666120237909795908727421874055772020312029932037938775252865014402687092961660874109677156418375766609004183537050807099991517922075561030401472076302791569000938070228858967258496116570702789618778742552057801601298912757810899568733073611805813847486696838231710287284478286510648323253467260177500494992951361139423191891847200526078009278744742380904064438600590812784949072199212474350933688347293400958544498583767283959044572493878619628745361844555534338408775682717471236271613464215757917169816809800803437659237589004869705455326966564522335843428541906169036210756246762293645398985787450191274350359426206448025667331842912072581957635208530974252423193131701946856013774857915094086393387187800948048125405689235450651246541670014642539281555586967490193808740091858698413100939415741120421633764612864770910157003589625120197142975129976749581234101679415098626308502497558646761724228575033780913994060419207431237879513274899519184770951441280837867795860746754359087174679221488026537752003232838445367672489710213645208980948694037090481732528015242566634369395917017969641235930432744838923082206640962553258633780678142271187269991396308239123947711869196909901205756808325124863796970857056959338126631526015425563172280844653362999285907885044874716099238495314594274956516130141780626775725129754927285793424510862441725584584643275896847862024524219088969948022717230546154069155439850284290097802723428999286764236975526583035181364316056180406978717303382921994174751546913636089620136358509818872954005185799634983106317904088482168400080547136848388249228437328833262481732746831166125873608469978119251434765398736131440505054410711408965567963425414538349875829375913726031561377682894839403749313726166904114516982413154366699623515875018371751589025988913593202141286867388913748677457544080897122462897491018339604179923197219226892445275581702093568379234762540858201792296494171953345336244261082623873868590751235790879313913385283160658986141069618863492659515898625122424937780942517851318153144165095459925564166416351733837619540334683272823042038950241308934860162627640950375491793994167001098875242803630842030771373831300019482905699956386077294270003530220143051025114861030390498224999616996689004081455372848582004392983798332793642177516530778280983428848483158325544891722837729787407005463044870435897553514461685694350852235544571617830751207957215744888741829495041215063324572023748292371844169638994986865538871001719825481271275505843484332488913051950746408817870059898065427326327360978367110453560931115890364119078113289937124709771653421043165611454106790954227411518145493696066007852840137073187020731056690331281821532811155165095453254322941413240350462597658561490713793126291541776555921214641795540733609244665113116980766126957700045453408242860018887688116394939202304947590621161425159473719731116211180213481628538788775765720817809500765654178995965462591741097607098283102520999598062471009689801338381896830967319978730027883064589603842121943884046788763336287886878622532418638865931623956149262437007339261750733514850047776852401696831503092137204271302674349898864503362597900053875427792038290062742419177871851657013706786904248922559126516756894724202454072721608136694218996013784542552096570653741345118665124931487602612962858501683296897349611705518366047972269766976305978935360478307447255791971558231719736001255062255862646090218434810292409758767406129803219057909488632255191917833027901884477446929030966930409148568660124052813130390340903910294347242981527641530017240994325343102444656490892356286708493986384958233472574220177306979643174126334187258760023256506462928203161710750216243927402955442590052047437371027332892650344137298984747510952875074714037353470285144979664517730106995176220558196179345471947604935461997782429900869433631103212246653433123661491370688568834027773422406225434884966878681884148897999049533970836246719539076737576194337204477313458716076071001013851036338424601512873863544685668233952356516341923487631644562553105170679939569651328043105966619899964514054211670731121217654604341506240205601948722188560566376223066726072386862081784586278502155467008752140174650775085239961827797663411847453958193554447054237203283408372279942810408432994180835287676180830660195264004938724434193750436383720274016322469089689945587717618732825386378730105181270758370582525100773174357065804339056982853009804313605430029801750341423816885946375455637471087776139019649188775810998003001707204604126313535145454334647597426798626889068801908135389215481711320294284408071449261653950019955973892743052139359156746545291346467062167569013950314180752985985184995625614293977070014820306708199171585761728951321619568695564172363585559504753931479152363034748841594843592332729651732990530072068141793540694139647388543965329272448121573527215160642493173035467965569316746240264074915912270691116349515745913891662397215712480855716473167662876086037247696141165537733773957419870325313631196175051832443840497232686490550489246733956144116845819966899477722324534350888704805369863606900627489794630346307968709694523180626057842338460108665269570286690505318540375053413312879554333373710082759048365213353721093360880578211175648083164295870492277804722405434581141992403900465557089761375900209757511376525342325551081507461633399112494200550417451676617313358490605183748399304423194222445712896625271365013882335799710861497185469810642762122950337626798778469687310789236320370702039046300800229448261872389837484376506687035965081709560261766161711397703864027119481335765309020005201039799101141021609793769610556528323114066322916763588084504298550829878021185499341458703032948030263587775458853865689664398356982413630996054555854193488234742640933863370815288868065813162799086250654943408759499261405231913400070263925790713987858286629756876501862346382982896213166731644975568000280805982531102617422990629972072004676668784286614898317845035188908126166923533146825647524683403435742806723112413417375744554772735095431852061444906958374146628982677076428454066242867046494512432125474924307681392166045719710706040597789039591093922225343227315564041100802178462446689153665849057483988383156276720211803238268143239748564094153915648683919879669529802092300144244712786441560479242811980495057233017897676657752442783698628701293865375525117425516660070800235159993414495565405225678128988554392859620293429821697835514897787234147440229642797048274459807647252491348265543889907335911777840481026716917059055567386474267006020194934656435676733261901414449375096025034746965360365873579982565003165973247675791774377771412062610600864358885161124088813330632356931779200271424252943641969691547507830644024550790270272039429197854384911170690959907745408506796616476514427311363938792561507647172725724230460960056863222481993750261227221225597124135216158793633945189551331337721780088400755244803048672392637014474796952627753479034284729550868302557146778362825994562642454952427441297643658080779013993023185604718148717524620103159298720938183348612424707501972664484756714621273704540126533137963601370474278367834173885893855502576539651943312552565267371039810504834835503697796734076128864692028890317943424404907829721537690139990018731635868568376895536420746008854710981567155303300320599079200166905864894177140954927689735284453483950783698381656352986927766792751641382585774704889324062447890756538885546615961297745194882054144851205913517754178854514391010939211807356185411475601763768312082355792997443907551855839095280833300519723886775214347414829129314761446935482769041299386353250064068531812772218282773392052944013654763640650030428076282026158665837682419804382134469175299748273890295006091910630872005096069219219741883416979810795940804965027368877636948783841595825750591710177633687092743876171060060475919951931041377723543780893605375908688012750614824469667318837559021878621442121915846561477101923270342918399046704120250534127741981314014255303335235921456137670354693661782502671786426295360172420948451418551459021023057224392435139126267750836598281511858850995346210279264453928761309505452593960393758175294607853045595411034785423488028067213969983691286002254930050254412704631767840130949560588682266262747528144584183453153905586839111240444706159921200366603934720498413349000308406421716905440528308425784374138780906051296469488115136316488869861207217634393896629268759405521404791466351940035113459794858692655207939715330911654320733636113469683928419441749721774733036142897625993246193977376428339310155679723640339788592856135620415372454525942513318443741380412651706163957684029941962050881057260336827477267022020949710528090037426793547281870260218438689704225427015958771220851675992322270601574231623441013104101245996565973354059895756559418150071637678702003433632448166081994516248638913533155326622464816733735480012241167802954992949336897753398210190820364757514551424903812754049872537183940298131760354380108807532808077826079108840471439975269076656836304320182093214671504926613252391360360186796803872442830133938372941528120478741702466934126161728793155564146887229037225739213999622815669934707993133564372323837595171999351997852879179499519257839598504001276782727747086568849965458909662183187919428686051894888775099277260574682983592946478451614801958078483537684949296926113539657101878850243819612739758100437354755737040125299395600133093723774107207552028509932633811969297789248362673074079704712125422371536145935045501833293105577071636987603953448211730814820633921160664102746202206754802882352936071038370207013835172900635653440200186063343103876864651813170164461355160490217249332190536493273963024864788354017669499774065847029795660013189635283477161167164683842030968412947482139680666999376416132765002668306282602403749524303051359614597099350915144515341560608380841122384576466485431837672623783584169203067183956396408077557680786478629381328113161478433311261308317571110564742325264387640758819854391781000025338913248355437796613469840053632816022257844776674560788449044127903554734224233950896687361926540956189112877739509876304512188752207251314974502157009258660954234735464674156088661347833500901961329594030680916683322738569217697107298829367289510770407363527696822216015199003378021968545508369012414812942869682767317854462263394664635184024617644187923788993703065609756386378299914193360226111455196333844810994551446816393475134273390785389585060837058245138453573189582520929693401790744172260823650053183121815544149437971233243887156816747259877549584749035458054772543038642362194928033825478153679785648197535582662187854989752681535010958778698551379309020052926508907600847693160536262315026374259543857924952505847329328182740621095597826362532244882242207852712185470984595529306362608558212228157048589748540691804768827286819566853733104828649661820232805396651927977848037879305530494507793746998135544700060377559044293728572957688253218488238650159211905466662917602055047808670208016295061889284339577838593329974866449737859039627918228365740455303641344125706245096368227889766138451933211785948764885446006042929729608438125187682815839374524144491073373557939575424802614559473651772807637677872722639883705406489950708454957548450195914958416260745844318675655615010571280636595604602160080407018876529409572080396653247765360438478629002841247769870198566687108413331792700449640228115196087751280916395738976964647846968435042470210015266331712914700993159918021429438434262784121148682899133760705218703638210901614888630220595427783008279934641678295006382160871006488663696960469172765275325794002715356641167147537374521582692467158814114315333627904518468221923104753452083140762785828851308564999038487209926669956252358630654370978379293630884383614926925510510071215545446918925773892132592542499963875915655373973047007325347536290499537770663297086235225361099343529171772777649503575291847803103662422833336295418025190024871419636050359184664146853295426407062027855926002416360568279294924738034879020959178900836682796390131416855972774161235118346909458665755035511563366707899680808273388287573762986319465927431602722445740007247826435656605179355661581260646329660625482761709697976349072196739988651972730095013415910000713047524224927860681401154989001778583532560279371577075989756704425843373003747382524266376408613910640583188740887002828000082625852522475404855093927598089121100713426161568910016561538104204927246107218556485102460396445950336154215778048128509907050023444440833210555614195410967057430961223880768485481818106050309579083274244391394124102721430837828746119364100192156293920481734665261959755712308005683686526891697956181526499931926983808406580027463615089158056018648466950905097614277435768294274697833847524273698733380673136422515641575653295621066355196247053702069399320486826889302162524947320005991296010718511165186931250343660777146159023075322253575957365087685399173890427555447437611259302821997476351406297386642034567532499944151767161637886104862796838274339918310403406116277727841842132844805832392417114533093288527455618901484473606022981170295943654878227877558020616170815724151506667173330761272612468347987408895787917330273304204933710523570209323056755985088576084708854109082094122209357211098992966835568206019556190400891121170042739814432695718133950450688239989316877753224934119798744180074357299180387147779490001698126446306244314216395880925067790424804741270926188866069761100493728334008930099966355244582048397560749496934910050467490543677428075286839571692775700839750762835153796489741266661296504269804673360165564088138161613699620959072090961596948929936171852597136236856700024275630829545696135894099756831412289453875933492896272457014829956471204101936354555414942702738841404655371258423616546926741357147023725477183377836665119349935480659376357876101272347482598827063024535029189978062340590176117807990847853613376480621675246020320817441915176585595714638496163213818488482107952237124424134089166827765421590325255377603121494338802767492766324334880697671282285010752467487951548269152915265594853632524554278579309743750485182221459756958639885560012870108143168516541071832668840063207683947139443357366270448820181341648331242246002318454877075091799688741575407631067650874266570365524639295085749016753457192895416031360212855299105977054445521229056976932881680521658712035662325968625083059983998101239243846513901529801731250242492058654473245698214848567875539117266392505295320038210672709662510408037771865624812197754773163283170092566145051034715846378360147688649180659556826032646509343107830811870074170004184357927669434168873525269301076879147149327300519043405342677212930088454296712684073367415970708371626438276910773606412436207715087816661069129759668437638706432465750454756604203156541194887962095532514457659158235184952991265059211181457972726822890514163467186435652985826700005405192981557643064058710638487796668186340600517868497971567917331768585036231567838990377711909421412991292031616083468626078923469219395816962293689404841947641073739292496118019176201320204827794516358424808290936695079743317740625803740279298729960177341809970939953788019323399942424810462113909412630383164359675382047897723763557124759535231568014174059717801539256974587897554313397816507608960396260228852706583091232674527851203170694312304030721446564748938764747198916295270584810288785508748410837754840374094530776010827282229125786445922983463586571064118624051271366953882095014099227724832321616152674126121435595054964632430240085719161491672921381124936136418796632796121714347517073701338231286321969095328618859255030108822076434353913973488795765620276640474972092970930091487018190435099540550191759331044998424357477308319339865743351918552270590041211371327664117337249082268590020731799664444717458131741199710149131712016057615724624228326290310918841838630665961678310925703235731913242989280592763231622893004353561249593211329349676368829613939018269583180974328095185261592653940041682600438821916027100455782997490657625544802430938818525083465021786453465585125122880169185997191259175685482642916268339561251434278936822661178334289991944019789142316315881670261253334234834650690261087992677567518118861462049795719964126927640401240886592750768009458234635830114013551242174961343084212968197661065499399165004926274866141280213245780747068369926832970424811195013787961598713529289904035774273464439123533452584434681869359343464452442904199184632540210626476506170975213183099649488000605367865497931692961000625369640740790445641256516455470012669822115129505157895127451289838673692828235571263213275342960333955174676110361846386351121834777040970685375380759580502795176830821781422055647226749009334044328275776346891481051384759176008632132184412118417407938653028498131204500285887936559360395960925956809239913772963435030521286528526357538794270348225997852613723060568995977235330057225610730492186916210344201306732090508668485539722501356291192619683608689330659725927180359582460358586363676811541584838292230459000590416620940491525188222920161586781765870901423511495824594360194309781882536786972259781044882429889055725152901009753229756087266982812670909047354058276702174221772702352561796594048761482995571110658722290913446149055554613301612462014444467809546478083375739603322125692558691816807046413134150184021117131388233481501421396987292531512595332976826904004539797429864729677352261255087219010215980240056119997388837083570052406266980328655003040865534193736195941725972276298147412522163512643435036904931342895474544188005774552363485534633929355733956911411236804127689571545372437032894174384626479711527103889576773696129923610805354245669384614503652797537934257662539413233953789203510504760895066665446374229032873207998331521592143729932588023494177534018892779384774541145185789321240078683738502493261043156546009391682017284835533805292016222253741380292551480001817048519474079670196596807193713867799326634759586181181281505243104070956099972241434407400099405114599906525864285706988442422396756532787243530200126240139795951645538299552482296102262422959303746958509564083946065796402892283454204405283738353676628642678735221617353233715678784121536369555552647139974903358286407657139234127890321387444392980872282009269440125361139679609803238312796539257304814793979056904902266500050509624004162309714311938414179450256652245327104690619699029087879124018955641449157409603538491461196204477753783063910619075214929670115165308987944096362997192016784179200309369878208039711741445385198818139904999969069848743814647605136155145375472826821294853071251486485130430520167740351636336102907738351923678228236738636170299128020654581710285710876613494518147220533321258409513038157162628399607564372811680440600277277166415621417231008198626214117458306695147548231181934792359740434354858651544079135479789199294231821856503880284015317276185569787833262208259128624238346872932482204338932281290917193374065890331097639201039655013144639950441049154988830211164813752726800261506225811390704861972391061511881979317629753795633233443948581848239590598885207431884962574773551834454821758745559976194585703460822269383769505098822830940831296713989860388286260655311546845658817422144040667981422060248329708967626471974375004028085876791276147888881330192932315269514630717797808211772246131121653445452589838216289658924955916483939674891778322808303232936138840282502115774035721464228435049525492671281183462102983910523811228893540967740643957596223754965865591270501746929279104810641936788410624844612626307693317918545859196995309410859587794821737614799433398277568299592950959817543917487307409584166898830542621212826509058746258233882432672197992982500286200982372562982676742134995154947256964995947892849271635397587606170700252311792518996370787283104930805746426764386137479920438255335001167894292340969967627415587753956262347018543140821451105143892923915607545536886398598983772090369800006723992424790238096428114232673149329798148637384333378410486280155629265936607541967310588348441344310881364934577078707025594128452970514593013681583426358672916274633034912351246426065448727880564129936644630244125499407529902789786920834463679150215178801599129655141391641610208958782732545872540573368196354896181634312606820312722897910356897846851827098185856330541360039544675272289047730564256751321961390614885200353688362360907478514726745484899933973331635963060246038345187127915619331544642770817722563072539717284314238288313607036555240340066802644393293835745799730204104042501977576027001093293343802079645760320694548966170298873004149742762851509331065554540989369622129848495993369098413504100240635336324427920704239560991007059638866060353924600841628997022344627761816457582348181236625906290019883496275420907994539309985771140190194675249707580243347397514110393936950270177619417260538605551428569662378607241253644302536876293976193425949127573615270912193351509508311312402148641161723064436573384465599142043599830881489795402600586930107878190531210802095118438494810853165927861391039120946269531411503012824871107645384865022293367425896996883591900883108283800635596815893053257137733273246721673994454752199818099154583205172588919316472559802744364568527914463925856783420789542999158330659326633468324699913048687395842039014912060723238907910654123076264511447498098224955568698572422512803268204035709975759480857459435150483043705641290898230342591624969333272401939463801579837414744357308086722331667925432655264937687238546455772611107075718290422681680350459136465733910850788549167198096836207587994766034742225369092387308784958257041617297628580718867751347036558579217023813867104000432661172060753269274373314490019830018123495173374950537546795698762378035316158954442400140671892602352520084879497051106032218709957269480343914207585876739040622665626850986200297918015546055411043026863312256382022387433240754539332405134690694500807752247758676938075849352784894820096417268362678665603588304445842915049599572007846759220814342838836477392980686064136627478925641288504645013487271757446705341901255353249608884537549678066971683053861115682961752978702919256802252701687186974887696795850821896525657593665409554773357405004834662747935871283618164978334919289528712263898918883460606039177218902911433521990166911845691532105221800492648271402167626109949127399787076943877325744745795758888190352358495862564892991307001632606355245572594344017077890696939799778534986697706300848021816562828514407209610014161845385955859859172775018571013449252864847629596687562436906513198561357079208098081914009763267626639267523857479966867854080263932962335687608303363443725791609298894933901353515829721820868759021994544947571995619549762196102945439652193271990742435115317428462197214247356633744234001971289676016601685617339728832485081606291999751767554568340009656111729759964480844969839311154850724582303572378065757839684645277282763674007906505664273150740394660788256229777772304802741704565819613849057457449140155300545210236657452413525086836709594631866544798219826071653087267654908919609262724107119175918615696180085034477406382886374355276062628838023592320452077679106615164849524104710580849655498425481657425312134956228446185855747238311533717168842284247457363439821385340326870346087661017883098300713205341505308155064325683252965315406133284696455887968316945447763904567902721195132817083312320478250754830515228683787605357653535314526026571347563052062537525731477034899886185499031677266247541997953203015977206904148792552937450726116634472335239383230794978011882626593609952546056176752489388824351766827657958539714547802419183107349200591316150035541906844381689505683945966613755676415025081593846150547192927954317606311409784988574669823929115388979594790653432081289708319551480357513319225181709924712299157382218826712035586196426443173398720259857002907662298596294174190863705170035089752406824247069936201730601537357740136494081422589879006260817201031782606512445341732163238032030097842795404955810345831640496626091193716120143358155864082589982753791477353362119797411646836179680256977838997159629551815995312438693661799124698884942766655803301173416919905842611088934539753356393924045605130962706055273836721659239347551525224669902020025553162760331780000530256144644711766140236147666828815227764036826814753062621704241293058511732713388935907977847783128242226483636824298310340834614808064249285768555005267124075638478855647836704102768577919186488087147563110975564803765462504507322488951759168364356489867010749511021350637286639155129310076828653693228421609188230038588944649901262142024458691308386033719160180548271517432513626776150868778909279251912165227046946482288339836759390457110229891022924672289859447516552883586315034373687332590474096473245404747487671719316229656609202629366921650002528714561182566992033439168269385043271269190098332112927911167551867619296548247541547789732714169573656033937269073736373928671740936831674949562714210713451728158275228285866396805020457853921006350757375386650400763931818412108966994156415515080155844200180725197671939546078057618276257056299617551779219957769780611438120074626315767551618672109429912858191274751966195582897724783381886122397052549050655969398651351829304012353184787102723772264579048259290629356024200892790460317301650451052498652595464265212304750656092731446130012247984442198724182858753938379628257670091305427388985033930610257013768852315844749358376954945681227281876474322287469848357386284742683266502235184833271065517286388501158447298852465104889386074515269810522934301313329035373446717341820148611725475264082720089884895783599807097885821124496854312397391218370996312416515283793791727734247263137588982355104349522834630808443390015218507869186587200607375002432629525642451854465049637847190574918408196358444274321140782637335137306943197324950017398246492623277324593253108542341589041840882572776333361469560175542774626083166788751627304588266280766911760421829167484017211096967442130682382316443299517408668971139798579344733446219059121769979134263237607214273849306060109291309394913014102296906019048635375132481707045928898837702625080362514497340923967311304288336679445841133431249957326983789050230429839143445806506711598329266538484358776670486498925516643891425867981034120029806628284978523629783984760964446191488669585038590033385155178439902876653736992162457819452620377816638825377136363073078693015345310382671608653732098251866624172221719871093920972909020551612675498361577468139380259742971009721399461557421330701967927833303556062288217619490809318865279038343311066890574058898587019407032029956277078083079504575106610678104487808120047644540000050176611844802117448733284565478967879103533648315105982090443258249427151614798236578587523395268114729334220551832670917854298943503397801145047983879399719125397750264555159592607295478653885780820721357048370961829896039381385957903607126028362025252966417845789297769388495826403784755553282709202006224030188578840426486338255394380166343491497575339796734302773323728443569609316242350335915167248079804883430289044596880985369782055267462880035291483850797359046338693037181358471018524418921126577440581791208603056356080157093449207616614884609081582354458335883642308318889275633656612066580598765970675828434481764967925332843096431322418126960904411949098893321298159116963572300480673136205433893596506654915507255763241383939575115890130124595250887943412034891378888250276613343561449282972254222464225945351259700051319512663396075874100743218470720927269310398476077991672441304002491947723738797210574062626521279800540615303518204678772310635592196942840138181164610262042323410026693153161993739278363973145888353046639986336089435070533697408533041477942472549073530503771632639671981308917121291041182300578294997222662123674599907757507195741745968041738050513042546504755363642985723115448783912125312049179586723708388970910030982046823363118075240570242218119702829348981530500429565710166423168983104664263166095045932046456521588351806477067814925859762419626133403181000231641445983779895767465750068451334759811124574450630789614801147253903234031545099314407899976219451493449696835432885091249027699634983936365304058396013188213645832004404916079472995215045031203196840332770708833961239166693668816272157216193887083064498148103571343482597605597098935702877392896160367776417752741272789524279520242473267542181577904960769602055820255032694941178010649444725329280235158200594889895730985705702163213041742272908385465314980279573287356220763562460260917127170340297624468305256292905504817983949044445019016449572491606429525325592706629895529633696553169448519988245135072954431678424477319492831467704939605997326359671756849809552193638699084332611040822795097246904765822283965039144350696782082810976480055173515173909902805756971159557818316193841392725902063318002256600863159319875940906703659864413450871001957940324076155854046673655042054626662442069966299379048955011110242474095863244304590602970638745648116679647122714898697192652802998516523792275126336630474815313373670642864856469378044447271370620873013401009843256563995534182404116378031105459286252089058798366522131560804791523864212970583316066565504365848227781458531936399974441566823502561069797701852890454955037727588917020975147311541213039031531594513116113358342346188270301922852757330398858208280713002113922627421908696775854791228197927166581907342805745611234138732346608213961358741667211301911222741843682471959458063753958636173594056621797540344681598433561061347898120015252599998560162204285821032855947275693131232070389450729400346325837122030844685337460156987690332196829490953566940719825257293769702777988759217422333442535596090206464672975348908920715143463879456841327322978173206440520859409961383884867986122909515852952544762971396480670878200233350759233989500405682737623635855109667111248631390820781029680949960648354931961290459786264124564521443392934588658507363915471295266294406985057611889792118917976764393386848623943151508161751882704771329785453938662420656449028638208308223867255041922663863329054953573288648215556148210754747256064760721156458659698386023051394588730099425886446556006420342136922410233619213153640419254713484670318224055440612776951825505910743411008072360699239441556124353734261991562145555295068766555688772772006581933869199624356582837172489997774140923651923989156892871771819402203756024149386482653391727816408437596449173214281334289156471958456607349257415395328908621444336310526085793658738010680464029897265438048748336429276725857186374463480812416139207849047741840749449213116954805912837900541997421459054828612877158447607381124055896975960620015800282266371371068457251380926886381751291665689384328496606150440630766633713574371068675052481459972630740899578957278191337448621822881791377440289977255376650099583291107589074582238871285464540896045219136006561048321612789366549973042283725859769252941048451455910760160770276736668444121118726109532513373287917798496019717531974364798075206930877818198138087295896325307197804312705798604765744597061248326047478411219666228109750471112220283822390290921576322942462574194626684129189802981820656778948359287692227330908795522057723758901571051197721177928389846373288520632211096059235698803627122535831892215914918361963480783251742395292187050797167289103566645112817286728571438910425638051674897037122045800712331009335086116292112891508660265260319456542723698510083418016540109467395807791773759852775393828873555109769420872259560135380613807487679405970161061606491338995615289383514853067740309639855101538662143710800238569165959737511345422627250427899450844789395486290696923790318082160004362177367014187878090964964235028036948285210896450253632236992191654810526744513752697683583185500730721099970634353418329712735040696113263334699959190135196989545682317231724826454949188292915855851583706414517200167036730995987896144443000331588537813786749076781695336150560761900238695374884559993697132062436424908386419500737389482430788714143433148186130998598906773962172843643715824039377601737185254040762311774915705381093720729120442483672220868002753820829873740743262013612382003538287569787873195395650978812834898853038520927719807713577170440768907808993946315631938943295306825394379215411341287679056995158323307475338873672150358880254635831114685026853301280714275865343474033059795463377237116514051002056043222939901568657661088772690664469769432747647718782730300818328776758456854905768466226221901819103737934863761990223399894464209285753921968696470814757035970203547676198576123367429904622662034779859276702509785768566187789227078059502252229165158639438607612291736063757517543944197537585069294173587477129613216747690385123457250730764095950885941004866310163891099734716062634187035605343966036209704429429285917991222685809403634479456125593197229521876930794850898286850588166938832164631306955491665740624867702833017164074516891796008984541704678905915335502482908391230118284071256364154037298910620530950725969036372660523474703923640013515656047260925563851425724539197830691511233097270601845495057051311967444036744280792910952116886759171249865065851357768694109258197729996121759321405736641530322955011544665622836481264890850265809626787999242293712292997016915864725721273222224117992682403073604223144941818568067233697152346420203231023069758855193265419952532286339974319181567387831721425812490841050278707257895659001412009180429773616818851233947022554289821522135116476506288179277472465919942646651402598755994165872584436030003687861796146703181041988193628599624042305452961089861987630935799853494905592900807723586769856757168544076918022754172445342524306635606611253143955677192273238453153282209588718034316240393090687275526527015245251731824489504096558170955891737671743468162608594703948119064196314427086863152421159003537139521317782835075564242781299823533239076665773056532949904498906078186442330171634500574881145988318948376904993246085499514851882981437435891260163941700388560535774416967922768737819167169550282861105538809129871408081614383341874380150870367916316380409109540616038295405110994202710993897998408744429407505980120346450914593179230965093229411559167886929813940735280133148160856944557120470356602888037904044087183786871491645840720358916397592271838708636509652207373811082951561065433193469931067953943103997192363321556754204996245959245651560376157427216261631844914736578314127274454957536737551741863633056209959549281909565343865574843141055030288936886955554964063729295278520443210216131512247760341806633190278444556919741830069191991994126062689659322498756441337939958828612251366578900671971827548541086697281206303201403318820074310049285061802160206793181471052337269166848223934721424205598224817052933848307521987656338628871431738286364134007760713846373867420547440330767113915570827644611314927454344477294675664340949982176945046345629219081076108851214857350935840955100610793164503460874821417326675033123939856361697650242090164090580354370160958377775520274245045461389692575143568526202013005688774013492167466663068442969047441452051745125091767031710127284109662157492035725716776921227071423080844830221382346196882460864265013231787281772858875346678249967003948294988904497508606424250126077995199340799221663838672754834635133527148581833246843967517723298737225597202447519659950823407081572933827257935307979138981244584486905088175977930502610645936974771335297654488521415344056295489672189964951222079801894213535468234888620578195554194629117388307456801774011158518104231963553813089472442217856522301172026639427656013581303119093926832026894138155632120490160766124379023222536243807204091235414679386474267828207762402276023573921896096354626673144572990478058104221875676965061071503534618433191735355984686794825014912518860283411346166323331819410060409570070594857233049330971666222306017227988719025321439240472782923735216864676026435329147697988609438223055475071313634934184119208368667142461696779116668131352950589888190725025871715080843240541156329500831740343745724525687235346280527093719205289230304500870566564940161995971197198655393985396362024444072911405806733198644857345763481275995830959423250331340633455495006792999872290836025083415067119600814399352537056597918825923720440276757679876642263265863277153389300641642969450062302570198691857559435999711244949451517381498830880111711343301460528224039575273359222490893184032769668129217231616779049756988422596301410239378186187409170055863035189971032242533264943091981256968597484718648760414109945329725112492743349111626105248646689563576055073340900013130719099495366454867182884620846258076586028345739259663432683917509983144366683594471688894094822983658700302689340923544130328679498878564201163288428876976348186122708499078215957221755803609100112869274326720122188435301018991410460518400204158132154650860482614500363281963727643040426350326823298496455365271431714923347836738444982755136911136622845676844611800340397704540706432804349821323221375798052371001815913518957309306520275240432397631993292493197786906629497570565849182878158435545404282626921752754964251880538950636873220195066001273276916162263916609957561264829039056454685429427497743135463677669250757117198250655576924504384574227778481556086886914049037093845053819428520076383881451593951777708341049734073154570859227726123784247352812386965791233523548109127498675041988833979646213733508959701446835080676619807224194142282912594442508680912722507420878403352031885657696733362112184597406654343578415791341314717266473932888575120808273379827388414242376454408259667952188908378975647286631099107310463221895803681860860287658761514869012857295349371413839597470004878186824005832650317477819430073102790685909392206764492962271237603967000457153006563526260628627508150639673377951075007348904675806322488066982890297508442555773978431471490727682480862528540349665881878420915421096228146587212807116677627394954909501240905493751204692703204785817546207810355034904661094777403519337501677274293345119562634940539369600834613721942776488602840444275037389410433514374997854893749898398848134890050841637051220285035571690899314611502139516308225419996010979318099664048838671034317721534843451598358147393742913160967756350397332864180235917673443834701471431513045290869627417629564751097087998711731668944133854045365434282966725235467602289957323433788772343306381063181403897223498224769669981389118329310713613649434144004756254632512683681164409248425772308070430373535979663339748613497296892377964063465785023545917771543369225873949908850541607256432231009317619483812048074209529477762314158220948817198285642096855599435906078273754785461136557226727927283975119055795311137520734599186389900670401045535850096271184056654626678577665179924506261985494723716068374283508105140632901558507277823708835676535145714442940988244391904766162930026814248310392125581781840423386847524754742563432099977042131953949303466542286607571383502873180864045083546587370002573839319379657940661946369812032524422930341929776418407989936720132701525509392490571924277728938875520269181578813340712396104080529910252477698485670620400625601169679678083960606483825887993726451049061077526197557176311161045998874290182017466024511289605003115308178360421910346162365664375680454437601160770678159418078037019428808146012083527501183891173600529405691319358545051179930554141110593762476537488056361651558975956810890258805456878278683620643809704893957172746558121381104935253682115533178920012362748536064676744361103858334150610144673113698361578785800976051464180740949728718730658881479399823790466433238825507550090679308950221206328858149187108212979728070014214070077638918991109730227227297967339058080839163702976018302240944749702205623872017328874929676795251000359018579219694694733563333047365042942531674140350540847299776205700680023370444776521862184105318857342699771959279166651284603766804999248658319913770401445575656285626516057764394429897970792249137598033061440076748731968161641252386696642627469596037831946253398566027896507102992299614499401194421807991447676032527177061309303607309960324304578379656628162330532914056500312947806524737464790121630121663257077060791852041732462017989947846623142790464781043508734233948155115926171221435918027208343985829410004853985628831156116979411520654952092495679412141961610994751378705760630397283990361616133288362562293841482688465763529500627988119849862121847115022077300951401209714921013664270270811124870216156738461172514294823737920720941358824988953981176937215186467771158090593933979450317033780966484030891333391436044430472322195501672276726272587432533453477308339996551971578640394737370281146784422918407252533638026114322008751658101108669267617849808963271191580194041339155781314531376561486545754906044117272592339412575857325297747310717029169745048492105563985600181491551696946190780701438828658103856130679141253305308938771444290070801049659524024663143804948043235309590921374945857737964750751115728964045267687325122298623081810533195430056841081419021925623736694279834098255390523407475642434112775290452374722969813359317364380641855262285656589329981983330610806643574079838142843124980552221286502970669241310874204935223162408900515536352773304652154629341355294810140255023536215330756820554663236932673233559893514379582209202482919931753016128983511322163119325151635588680142614607900194976227038902728761066747197323604671503488875731610263832500324549509780485820624147522840100395325701456430222103188281719638077707814524483897378051694082648162457242725717096998279223063366951845445205837386308261024809273433528751303247862316178280725666213764306142915653387908064633465231222772318090310651066035781193768560787766911640459460290818215882740096408113095938043503602649863378535486762413508448135386358548774939287536462379530041612578372707387540999691364681126896454420476168992196802149342639257145191458445607105061366690725765405335651043906999400650610419829942441146986803224259491644421108272367127769047837647498800726644310558190722497857804657329974158797060181687227702481188620667610810626091421368355527219120988075518592205874100471732924689516109994652702810700380298310644926101972895297728930685230933195636453384167417449729594464746280740345806203651816445872160731669601660433719259519990670788018567892885474280057188842289830661175492012698865086247945872260062184366336884342085890609322147832865366046142546823160050356741228258322089606715280205512381223511624087357876081776303438715650832510249469913884921908102672782686784209424748563140848021299049451817958505753333861198486980511746147421307290524980971995112578403126826199422658964556408750247232777018687362376944207746742425538699759731302685379657956631999445146318430129794204738657866195495396320860305791794506578512609978533376843498015534917877672817109619819430382050610519196739117313634864625987443427832902685562827957774136330008860714214194348085679884566378437485984489060753394344471223338382714585146528198658060263180968656694480779286703720794261949696629837815231886881352272172031321108186615354638447043328787992673456026671770687053988996703760243602903208878425591265837470505065867673457346955943429417543975589464262165380762956369923337512739408413626748811630530207036824419346546037889783742996947287200632778454105764011284104641028844129908384457913538403509613118686463188354574405347216973047384815717966037641263818041350899993940303690004842476714898362381038104431757574981183372215468319665967882558508522007742505684799475661795831418924139652776308805147849223759890877643551381530374500403194540199696018455688895457928293914821770205540066736807176487461214747735041703343261470190039145493566028144176468378642636794044326266563364213099727066143656368090424097739311136852494429877782598285182077562365774958993749706197832450783460231940528493219891429176479636369381862771197660410430989343954152809674451316193189230968437306571277976295595451121512428468222639731571706479253101686968441305048803292150111540606006773676572682910479542559096785947935864941568790577715075096722887462357292284374860907379967409469573257943918509187083147160384560550990537657103505855899782856339898293207862165572103439051479913641920694583009131132785449319576433609416517609621818492377726604528327939992661306430978217146855693720571879993888788322851808145472148161214243782218304028869488805706623233579571296596853209428196301598496119071931486771832613643196028658426750809046838675200204280461443275556379830725639352613211066552917335878373302745646987214196174052086994693934164907215203726672227938318788527145442049934358150980497032454301182854383039017376459746681770632289399919199407805405208859604499963089594166918106412576345193375396637164242594684567874866599233415133390799241112279185037225825073236801845492704169663979311424203794890831097753387334594484593375100394126446733505330919964219789743463012164563826316728708415410846377300540840786274502863771927067389668191984406945386135802465785049806660558981674922087415770052132789487373509826711617673193356979387332553399764559666447558122235270700413116520286720285475280612746058968418663991445422446658028817126407023382998942332939659278446110311263077920327457466584143509958959850504974771417652800155251598806170975778248703775690162841737113969781675936688181409109935410057699272290068803203739192332217498623992308175502992716531576897040708061548332142593873246384205647491943055531168776355198183525879002444618859690797966210170616338059304619687779608165830659848906330510519329261033790773100108007146809165931350881713707709718146070108246359459775472978595357356584445544956482521984027180478154393754847515200806705609277013279652355282796981516099150994992103319789347830542334087799263631109321305401151116901014608167190129991673291338364034286420645672139445598300779512148318747981544782896827608443618332687630947877098687796336490312393952096646510031744354536433282311355564645275142017576714036008825653184230872546869707407517409335105636549914689521873420148259258271457793263996922456246993471838269723648109942749246671757303378593307776004769727379640837838849482505511893696137078488213383738884959871880718394100231796320812180201200737305072884948755554833842845914085390717667173935110467320519378559230272273851968652216125901844881051891023738504185933126048364064595843450656285045351749837382846178042260214565585249240461020288909776049601999916329147659317455171880949996856306072444345231698216700185628970791908026031102290235888995498344586677089103058131715158815011152127384699806398736536069608104052604328760869882998587261610245850601902055468098201492562522651479247954640883354604786626168621143701388094022105244533568358457940125239637251254380109883699204419401696913743938584240374660432660136486213560850903178319792285023982575567691671313870622706198300457889815535315872124094797504653639465621732858673269740169890267825758886477173258383581212883613057481745372194014644681554084056880990466684775871315947909864655081671283610787371669891476686742741623380619279702190460939181995713946799128242013833636725061412218549738499969151439784495481405552426331076560906260392140217892577052743736432243128425589565573554402847372283755630540425440741959466850402005685406825459447875325776507217278385566850159235558684177707087683713023977062644303146570741137598114515023393637381382480699630346765310488799160431066777780229288867925153639918281460214425626490181450358056950643078827008565468440949744402122142693904299547384173134999049206663806682551196248479416489152105509428497025921464272499008683163823225640982062453907403231432780060217219097622737159058109243711235180642841309917914510410509174649548517526086591823495094039015271862680810963645846145923217546028167739946929837224008779421072394709740107223630683231014831907411844663449506717237797490534782462756195504804587123449046020932339969381916206357373859735250074475524863996602590448805041743266461384108978915183018449808511183315095216386628083872851813429667432137577787965371905468867596011268202863703179318528898760189154615018776134549552253716318876549548804831143334549181516818772426335982473142755370294418194487118224066301426821344376057986906804781311665598385155614693758589967558099669615755906912599844771805076690679674175161535241731632819796516182348837940236185428306290396692684702835897583034079008414387030030626613525727250311547812127985531876706215633630194668228372141681130760318718851059133850614889880472241149290779903031804012944282401150730499024110085567887037471988243008912033183889283400075240701772873141875718422520039365154182817276536811449068391089627592984441047924438769645119815536093952226801518406696695923356132523563743326949502372441919320696245199483721815932627730210567595338351250775117153240164309310275145471087714770336608148419980191796419353177275000869817384953705876660719506475336222389371437194660036382319628639291798016381197931647038371577817063542118180974334629530623001899548780448925364157167508222369974943966327404766765938167717867384899291415924632729007169802523800979792095871610916403036455077940216886703561286776275659070657384242581456188673991881103298071869531573875233415268631998684320495669062034978057732562422801634422909682605220731043407005912757261653143560538605720974398685889934531567811756797708405081838546088416625099377552130701693287796725763609128324286648779105231039644413629916820169993233763835651796816613621573711489362091385446829142788740577563890480315278153483035106862604630553440070767790609072186945323876668492125924423830228885843321788600661622738151291612244013369207002065382781686340506555670972435519945710888285991870965488163522454389630131390070568394760412288301464443285322339819696687869653590539115475181243645628156210518408653221807048748546442697075002761287873347226254571963271320865779876747063186311694419807805887900932543164490875924353290992617226234656530178436466595952713484873012404465048398747109979178747918812765532565314248992303428580480997191000015235118648730444494298074809820879991540825269918204252536576246522159776803251395856071166064110629240082640303344370268314663876766723797240811983363179744889308608208605026927221398573829685948769265439310827199875081799180585160044372710237340014708698561803627665652428013850383998656210093237011824437580915643342553590328639327996414122780688908286103025774393554320135826569264649614640838564169447470291653490168017210001416304367527590642963457678109615822050799754967443904901840556491459677932093322077231595013607029741665799261230775315353545333156009299577488881742831269401167001325594331055888145092600410328192122854987205564157410953378993384102602703416727163991991972148414540883018457512316510598680579275766104000936840977001205139159426792605904676271029929494765332407046707774169134559858277631911822121854615204752904015107464905162175752673567470164060223203687621039678337452111548525561909426440025895563140940790608818003518934876636513844122712052227258905946531471229422659954991896424155762217654122827670406309438014538989536646260147539280592101724587752631039390923551438160219885950138089119875347812766023871597413245785582065444652614204154429848513007706256360171077888607404442089458436508785660223013746134986507800437489349208491841416065180750231567295768433178355508869412616359773505280296224163697709327427491332632958165392918284420508830629615664210839942840219622952068775249378316301293432422371047830461427588498997860375393157581016745970863794693786420591944820052549111853208180549090042166160086446528410968216072423475021016709770437629973246014290121318907329041033647710454107113897049449384020919740550348787523194762326173096668729939166109633440225876918357732891431321041605873805923028069984196400200060800830126468954822288395023825398707203354799105951119318880901865839903677174712961838144812362835786272032541806840513265694541049747044909198668188755244074827493604510067364828716715780036550761472064272431576894322416998390462856034685937227509416638965591374131749343227286587220444850205803141529895269295093082143160523133316295627190261115165648499475547916995088320238990268268369197049052514313541495982940833948504093758815275931471421984568815454427192717507800400279329488648174353447143584738945515526278111201546401502844563953881305117534851263364113111547165214184684920791625798315784636257819766045518305370480098083211633719658613441889417708571122694793656256502301703889670513719366334639025262966499578708572167768093572485071361375418588614216178239361966514457531154603977209996183911371104499336052870314094798146718255969806434705669287698404026626108152462106876725473557159372213430014359019338206459438692144953905009326931882068695389222798210831529007901714220036274258249332758946427104208623140688475432443193420862321601547639038778228517355619164746343884063949031581863669095384096498981573657905950266003221782711850707549423765779217120168768214406500979149413806167371172440458450222289399532120348585553002095443758511471819523093274712820451822542686525693257103713957032499021068910178365424036966076539123423163517245763256773258910296927565654815377646252425361291592381750264077337206297174970278055996347126409623960035316123889337081543736167098798892151536960182759539929086561661876055900647127409120669675799791061504329816656032456646413926507977944443046960319734803644126805916120553551676777834533587904795905864184182333696648810193281509593823050095387800649412467432069916111915256466699733776160050085579160169303380854907846756948434660072853196258222225049324565295556940396661988787624150808676999110524218191677873240891097833933785418755025761803846748937013277498336788190925850572255980458070744275932881212485788668744683059414084518510190840350158751557835581177591166462930344898238753526338456901956990144374325917993191747410420642595104242383263502118113855183266293575718020376925748528330373297311552808030722762448772842229652170219717813407950876699328941138787496437694779060084553285981871073952428037209795958550001173663089952208667586237375122187605119626710644937148010367633349751941039716125614072474199675263419351075522411597856397457884626480738942787744876458712375518775040253211782167368143036149733878253822036109929778233601900001316775968924292672134910717516922816239141564994251160581846694311771473966551965353535661504901100052827085230153217717412387954074647597922392157444042042300829514549315158471903453583647679106416306923833764159624726665105735988421969626745771871982217373292813838689234277134040040411817968758116749167670359241843186706393753371409111435705552163425757959195977327375080499908666554302607994384901957852453449573241419898836700742422146973885968557047510466374789335734294155052899715617166642929016809844733915268018739656970075629107439764267443834742694385195751279296453491520189245455814634981790178363436787148406893163126481281903191624972115260213740553545421583587132339206298654172586739585490707522044211076697904389365180075720278127565019404612564703639802280927253516564994841673172680019392765232435811780805230998764463397038326470113818060915382436690124490603021697463550095336591516565574778030525831056466942623514059397099458756277469681211805547034561501772938893285870773199215147938406365218857891445725659421947229129175431400691360327592569285773903096867477456314295240948033790054732710786798581870691943811452867162061696911240752733421309357183163867898662627417005144309973233698319926709101385781166128942248187909706390075193472716536687632507661327722576983283499007312206404016356479486978874257876878442849945718436938737377741713212476349125420020612431315286051838538628934146245759476862433673060576399008036054097768336685866133588873135051682856690897747499542406520252252011316739656773215470366857592419615685743695856862296634479804574739104922808842429030886018652731903901144623309835538707402538830283093960340380570382687330824101647699552378042618529557859272890311850887522899316403161583467953706575515460295781488631684481986962920213728579702635429001000245724558963676675310760178820733479820109112392361051863137788503725177399846858895591936538242881687681084193791194685999671166622198370679523984861432249342772757092560609044804354074036122414929998031922033813676620088970576955806756865552155978232858182157216183386776974052006376973739556196765678256667925052747514762718683733049233428172858405544430584754714123701302539116931487667509868509803442961320562932424505496575089088296211754728151951928338257667401243445478011263758595469467449460488058428793147360541814579312861636133147229005264793308726370549836687581582106388079566886105857338695473018191709500234317762905761504132778190188371715780782923056890415082068175225518182999980908714039929019757636636079204564186105550788583415372624061085644226156277221012943495581895352652699187119732176520871761684625501744831028440729499780786956907472584912942099295166492741084052703160340630162296424328444773660052002925362389789954932752855852883577807480914232238255002651933383753633605678337759854338090462561961602589381343273497332517277046241245214581888969166028984870441136828434044691721276956055500062767797709805204435347870231752814493672716464244830161155679723520417957250129862121123605055914524896760052143770724579755950048428317653849409047265241405598869372072612288585896151345320508509048119771958022094149050210886509150454024408447954772399145127015357732663601934556636385424976310412595709538352028602087891244682946922354838389180787016030270598948592631023355668670162050385101676094912432205453471562689307169713606684433036300583143083360978113109942532068750851853015978101083015049912308849804406169258077412917927620496030790446457961678904411130083998390944604325819092026885507903838051039991418527654851376819898984901292680319014908420167603525895564240925829683101040366883645027952186480998595772497387450073109579276769821608214282608777028563099342022006047581266339588171961517433225132924558485499635099026527843203105340965374478818004036906009930842953712237047888899184581736720979306508522892335607220285985774701760462505989336846260273242276824645918415481316852800884712444846516373170427489278668241464751713695079259590075816841185878773249024367985947630726908053624389654846238006725579036699653672268963994656944408642550055461992789734799483236193143698144283635184122266997620475282874004136467701900136228087460169132454536616896719909413016426815199379972026474880579108875366164421969493830162855014604393696119321049905434707267726743589244400635871048507705458530959009437276433825805603573121474798023115586214136726845228336812746817262802216364028859348537242313909770691949499919635636782838717774457176242877775266469539459777644824516550991560333312441657651843234927699880447744378838898676283758173644019927528043539525422595907676435756334549286401665092337049206606737923202438096485935993108069512108736573586633030469602907837321360659628636303045361344245764488485875178349024377639499329202388547960426867053743915741271698101599560186038536740021224354896898672912822146927549935833774400351192471139380899060143606005094787091315813694059666831155475969337573999528963717566454749833044858631279121721736481398903918496702054829619742759216765552948759637439036638966959048509501473156877172302367246972321603059516785731133254156086149247791226571089438096120266101409374673918020347190837566372039328005577334278579281156078480388596792902780640901105549832652449178902420309646615997405908326413559042096549943335594595744767257484008539654254632993284147649522216683474787500403845065721250750806659689022209180278611882712414993563941726867486374732045224694431965494161546493321939829736262325350097121932005713773086972254331591214620196043175513534857601045210155364258240705778140958135260218541616561153599518022268284998316566508326309781506182912802904059825919179538291271889943836486177472907799874038461894586366508996047335766922147623340670676241744735679457421358942963073944364437260229483008782061247236128991790083976692808853378478601937563524780182444919372912077206722634719833659800461229593367527970862881446656664430021308766086213769890146271836209060400949611641734612732951426766167101801703568182108247682621856494804281311796279176388945632736721072286585490441257143572678714323888908500830896147495276827794966929321665034014229058968073081319432120704322788645321123992121507095059144375643053042833360681739963958451889918808629520162782726259135794234659760171552558325958817726442870961504555412673473387018254086310480822946213956022828367103279670519902848272596229870660528959680760696484477985203993392874999403399933234485434476193904782839707099791033926681056327698974154164269127613841491009381907385068656667419427999677932828149291937155683133207551877539593045913834844201375971237164423272504707670426152038594241466673736492143492860417844283544609283698836539231284079362750945002263552418562648039351477726237995682202388397733700649874496178438161858111758594873375255732862341531420090651531112608087175299769567254558235947391909714092716158601535615852058621514268846455269973731571565631452537825260297782606271064427673547095525935758759389812706613982672142167805331253478476884530720438587703521716858439491586384145782734743176200950739268787116676290142215067937342409224018618071590368846438235491422002953768153271129098090270556852092021372953344953125766484703598954086645919486624032896142404475431276687658536491084402393758682631316827659242167736350258184074001755359073756564021520897782726595628219756068750793778121590456334294216562059233902919317636160106604727847748993632538022852079787903439660900640436041386983794725384304345340519593473168102470691237779545951161341876777791115509102438910116328181223818355512838420695559297598313508842741327583518024505530600983108822818522288228280908754246111415395555555698111671215834911771902422200971312089650128182765938160306281592122794008963739467499506073965356251776509167859492826820817789486886683199294527015382516806194150865425756802203429077623280878308523449059867880385468104536078755323929412503564026667699331803944699982713269837385739335833411227011359763178239333710739875521955823463653296648437168685726612306707099305448979511955312171273092680443030904522178234388647000170451403746543881686019498058826889980368362122563196166831820912503167218042185438899241694967830575287974049216544575028141419840552474455307041107386723635407426185081599763350672559308741358575407720342741187748995058205646669617342133176849189050348079863286815333014809671987305174562514773297553498787617974181648094725833810423687227137944861092319305238407723503900169161493036315962704350702353276953153740240905475170500493723385374302725778555910699498884762834755993590756992053247964141521358571318131624256680992120933263672679885419556849945136170836050437268370024467209837213350761683929422713733464109730267751958631486779464437672719716179306243981484333949922033483790144748533767278701006505751453930466342441560605603518623001780555364908749422202594620959859822236538982020094103243423647123637104150028045243802175018759758363702261651444261405993668301388503364228408318001917703433269830973793391592309709677353616929192558686803972319425807185502311627646886376040317884594819123185318025998921781445509997645047205415102032457865554485096848045634362457282218201501255590902733966916160038412360747763781798728718167010428768970192954521779509023947860597582570136354747224561567688100296422618893352525231468362219398979880059179985307336915041744013060273082856365738561511933274446394717335083785441386085296181099459745071028547102559631048956230349565629394490891019628017600199060044103913793729876473557788436502799313866966338977671035194929148522213173984182695003305377475980014288896329983651080367463102379792800922328449767957493594620501723919425627478900151365615284916463300279784053522104579087582318156079231857052420464864482783390251002599634877795554113068850156658940445444973742396981474335814248889461482537858660690442793761402307815323874790616274982240154908867899098352069918658576413286592055457499975547622721872111976035490357344412329428469253199888120512945113540588853202784202040307006783812405268281580082358396405196256741760363460096061073622194748286114311814124629071373314795661447182077388853039256695711022614997574789013097585041963571431124301739907914224660917488250254000484899776145560860169854843879189634506761786209180765219143957460792696045275989528599207135010928806091882762489591086767469760212532064215194825519263146305013176521958513274233184268793979519493819747985043064974878018063249927147391589958050586387050666663016150900234385867957876296732415623084844008234167096912493559112664347781220920050619174192354133207536895233415025876138654299955914359623343924165790437063875258264296399111192150491936178860735325357252426745290373861660752169198277549115031059323593011267635863064576962725808737594391121582246401702905373793426814642616567987455934299250796128217111365937989642404881640641295375962478096226391307739240539145576214114920380708800293356322118407612140700407005069999006112976861990706394286815381390946165711733105771321147798759921560470903848791839131087902951743112332654295796937588366421143187489554914454083329813879388368704645108090479669632662064992456250773241660697960362627293544551920369093755043698568544760439886475407596520923001528224652576795006367848796215882865889945857572860543512926964204237682965770183744101465056765746441834165568098646686030270366066819909175584298352564550778853564740053859851562035776423196622740842618081861878692631825689839776422351833325512907799277249827256480547329868704775654305502940450334445351505546537709335124858125197635530461052193892379645513057936550125313869298529095213330319554096339423359179466317868933221388267533720486687273738921067329778065641322361308907388597418567646966308060666864603113826056836630569150066720499142742879738395498877776359353899443330431617120876345829399680223478103555324530945475693035845744113973628422567271532759744007252855693519513490367408983969093112105056686337144981421182948647310697199682996066580403830748244297182597534129524621678573009380242724044841521188570566577427007353163663524191693810293094209294910785981689815588152042409218257056221703732656535360045340839210216638745269764420300748796577430248715845058450305215985978067586401697915424927349527670816415090113847003146887526692624547622003134110466231634407337003640010078762635931355708873674526758227835402830985704953824544540685189051834876826883790822954242590196958633651360571139843476449218831404326959871980790586360082343866631197466983386109143148836429687856920049830338661697416371904081501909548741300011373625544938770997020665330960480174376225563382557080793202143934058526753990193257110970459135611654958726176758026710030431520577968544372097225518477473041959989801397669573009318082777335436363863519969279065300353852126896304355132950537262733120794794378174430622698023856319867035176558728334670662280898971889220978877104218599680237703379374943343120894408317553838564465244485643303484977211246108784394298387182708816453629193214469470496261610949090590132563125102039154250215059476719703031211003569614249131877741996638896941900079568424030954930105315027262093085330829008533658974623689328989325574811584265853315300590137420352198605381731572539279351909695088947759861855721432319305160385941719847925826171201274181103971607290336268250125264239557684536012242342835969939275821384079141394208693076204674277006205622316571484481405309675735940327832776984098977129489979651289010216260232340002350355388799616939406972197400263406332679289380505754497150796927895100110911407986564777745788625871371929611077814197277506560787444608987908382589099219420537687196311404858460751026259648724509519610782751188131514324182151970305936794137159971191866581422259798408728303648290373343003066582928368050722832306399124593658059858725860554762123914003452636832369463968518210239295469738717107448685822820733501165775050734485253267635035310137824485560532016891795133190753491202817473303153647676059283843532353779229915500556128494573093682913922074798215737223718891107185678159044384393068209224744059846702833114076380683065209020684338819296484849359281940070247136108698700052050706470380908507642215009648933115534384403068809969148932168605863516273121310472109076189312271511617627209097607311061349583795121365141438023051464433888040160500501993470085436839160523304835257420270271900971016253685772962410536207431827049761130529904013895874451585935817269176850243288678329516694563067110085917572145375295017234209394254150436479183316314424273072071381705296506150536361913841277185777152724732476232863615792385009970175034228460429078661323972479614138103505964016413037418576170822018171907304598874460849780114902685540577644014427782015644925482533269280381691382792204137244392934963425137248854056341547381812197676470920525336111095954688394570313266785778906714350257134534490366311588880656538104277761705618012181997211908844114689420013135015061140796169852461241873284571007444216227179199129554921930043584531659620862521772435568184006912091441012651494338158062019044112863770402503079682173110917299931095503006062609647339542926815254131481829105072111060892885437105354629789474963914513849348187080188912420828501002687520774994289140181919619282484960264724465955962273498580230028290792795454696004316817477545946727079342554543813180509096498254342626102856176844131004104830509043323178867987232753594224503625463845887088982593169336072546510775098257310273642796288199164958945097977703123884757584510030169064891925211386424408661622576070949407223005354323158815602807382846046306472359461551158095102797204153686896227638810348280140394861635238808999740970626504892453675865938833102163298752540639407421316403568834769161499419761480754269787388791275140316005536507833626294165703147346345488862123127064074378309212209160152922144307367307708850445650615794121812764952504304579785292575441577436402450185467137836161010941310056572837639232781113642261791440370035211589295828106596949269946262679322601289758658699886432399870295238734623393014627318530801311665313934571490905335147084893627842752019001561441477143667764626454120898485135185984088555830058336613887172166119175710458969779668895188023979568298053765284290771354318079024063813750389803223791346762685969347843507738870812988206317608894667075745798837523654833727488071838220406979286683143876147712729844071022310129270423792072244126300554402431011945310790961597823604434758337336404102087360229542367531953889936271777865730014020719069364684804038873720898555644450437327543754564846176558269191594165950068244361049409067917360999162352714224328325975198105513797113462031940582826491729772239590842213707327411159994357483681944794886772271931739975479097780649714272091088313309468670171284297920788188512965935549281757064144183954494448724355207039776940997991552740984965258794247878572542246049004237714036432835735303751732465768656374914266736313434707276944874424066499533869831899341082888749334642060068728802096595682660567646309481077716621571552042190819854632893648579220090786529941925994313231507623348598500846548325015666594568276540913518615339037770631151987544136725133972952631091276305107680954070218820059553240783826617066504838670594480431217109556967317198054658853172034103844200525295620002027639219871842270826755871541207889188169234091180637250583513736585220771672528410055716906486620199969282952519595356827761796645992065500790655216784229839290458179479452534807199669939970831620549882591102186694171083479552745542966053718985470848146048013107152275374268164907530760125808663803012375135050890557239848176689016588084633203832338686702218051236144852878822563115236000051620343143781520690441382354879950685125135517602825526435607366649630607880810182573279633865857652904817793814104295661307139641930206712558660030707268545094343537641533745013117877680088985936385337347334979834381513965754518016405114025404537048744629940047578425172658721592003591922573658430787499007533599866528489437216097381907897860561690486669686366931556259559610124492748353218529032501472906486036516887252681187627127304292457404748842506957067206971308209076897694617654748550234822325335093218407537925823893883697248339356107946407256401618332187047138736672322647660027678036430821420670649435189931706493881134864269472961116834700647327829827708356889276042735117680451957397055246438266861040000319903282143682075090938900389081457035520695564784979123261405063416446846067863027188048527017495636367027382088515933190373168786480821462303902106865286023643589805087339237265986487737653567366406705287480118642400343619478031166188874873294652042586002191977328748422276288202759314543535572363748282749285669505482738692299331262009719825550131861845995019606955096567291129583778552273098004129236593098593833895370779459648785979324227764467035254529779005614448781083835572164562507261386445852920731459716342863445774799815237973143029510006325116159465882535702460166996698384361596459573437607605901680248937843185058179744944573773569792206809333809629128367480590518461316037353115317169809765208308227883718225639150953399175156681262418043637404620355674320996708706168084343637351692969556021452907719033598002533030625990244506254873787060698399764396042481880538459768649288740625224311512176355558589629337445144802380703667727039765013040480090958184112597370573399836977857364600929775936881234292622695918557829536870198233583116868359577784841777142033843881678991203558792042636367238981223893875311222011609119284902831284144461007528977656337389232376750985227876533418779750907093156721930811499351015997043179000090717148274644110726860451735706569120182785326955027090265198267111116774530491842588951681874312438893435993856195724957464554108751308009438203526165429350381178514605540514247618687639065344542804836081643967636611885486077019886811463548693119061627243153881236053076529891116439202408603676066407381736294355514701829226054719531727740425710915722194631858541081161375930527689833574693891505346913006725925459751115237334070399658291045811542847100768960893080499628817916424178314300536561008780412119735464940375161891070542033220078721298183391842805421180406301045220784782595220949563971318992843138413759208788183219294761455018468342326810888644512593500991874374568306357582056283596421123544132121459249030090012101483520459057585954256934431984458836250159733066750894620565065979302279215941294594825266992289354247435656390054114170956170677993797490007551855920005128804883704446762713949222919632285821642890018731547145803742912731165520922758227203731790199452282610167367265996331771393819050796551788582126915115149128528808978647027028096830847671835221682947428084984352322056151108194677428745944607651000874981664065871271277937295674392650361048881358281100429508523516606169495862328872548349954302127372544437974600596924731753131403301284928000360236992803083298267395068253672992863340014987421970851000898813071940351785448588364099315150160059657670634566259274240256634393892054179248692843238578358768037264187771818438859817347550373191473691548369979575390706110990695291870405534797321102140435250968039852314793505733776348155417506360454016301860885363760271291635133573933710227633160677147545404837756395174547362760029496890141574820278695137303091516115901645334872760985993485795571442159605202276297930685177439328429201360927022827019703378284173548426849678023061016256920274645207202889174797610679203854553381906239665649506483732695371693749938413340790304170401704279709744179038333352909806786393209058890023788005188540699754582891145716001973986987305556236202873194568459171122549506769198426820630172297936049564629254668646064049261725097002234031301494609564255692983625757877821455492865804205007961360509605220658642689210421172523395818175619622190319943458371533052886428818127046515357487707150797015861860916644296321746589405694750506346519228431455980699185004976976869826936325202218162572459041059825220616312233203476993783943776725896962082148969281636036907121809041195049979872421361978460420942781924081310111630044548612708136001021294845549729587426932846084319945739698076206629011858756341882292661300419417642456082083552677418849476977454282838453714280630830760211341449254685644306891697845218819317137858029605611564110040593870556887993831390880343790118441530171946440213817944436636348613594372807918081485454155193624381610426057871144169983585479509267756731761985501415632853260815421958068758538596338673122509905983134631754117325785555505828771254481005509848075481616933511800032495473000953775067235246943911088069523713842529373220277034787245397724692186620201216446454951301222194700559763955000991236655120240028126228603635758576288793148635498215364132090435883635791220528982279154259355345617982600675110042081773293495529458832897282806603702996718738532156977716563787068542851204796967335706721311528318610432514687467395802524064090440955297679686641607351407259782044686097627193149267129265651922403989218034316251960115089314073350342690384096751752070815484891528110329632050713841401729106712846056333115616945419114591660288205148347414166919490681669279534439987423133465055325076319701433957385192068097587214936668108582732842769981126538522844529036090981909171303828776945573605417268028058378227319351622690536173675527796552321288580885857657090371278099775810484806403955007804034377096780755002614725789531501180767920000772629279911326891848807006738613606954114697075291800356010929882389674573342218130467472667411982966543501196944196336147464526448267682523701821208999837672293174388222024833448432750147331184055024505834909127071497698979360741078817002193889112028291639532003491511275433957092173500893818672224675529154221446034301473728779794403830225444090276899264455104993184193646694335542415070136324166311290249516378583636773225611227419352525178191151550003998473064332594451638495033085140470406064403593228140684585314864037247562884779646640892309591716878724566516748569836885846589635412802380719626244721449514817894544829024709951165787803807746765456049069647962642446074340422510528407899178664731797926869528042162061928156226732681690219497300888641312109192834220625675867216548533797827589303665097754324717044519530129101263858433168099532621721153824307226935129382638621948084375847731449746073498069779324414176035031568436624640175562785219039738809309266167967837927152284194337553670337238867477376782670070323778526767152372436820998768575817519161690341018414181704475889140096830258516348718311136732552010601481780218140760827369835034485481825340313915492733664800213713672249805357718362379243579331267678653356456439075532020499018702713186966574830648240263834790274335519535313441438440149448573713275321447311484445479632067694277675498589739062303502958051294054375748069657638723328320027415770426755625536541196091186416535564134755620596179152071877893851936427719477277121295981580831428918146388621592198355794264288921971714122190834750757147666650272950079977366498869482585792186360857915869095833325174449637117984567933577299576474241195368433410279295018675283904904066987268855294319257924076896452594157407598404947011786772020240998966785849850952467425483803122883642656003451997986937503934726607537224266420066268830916632412204301006337920238571709640869926480595349044574334931160247707787407636801652214986634126905305316332486150689585159433712939935544644750369129665250325906615100778352942113081470465188965055048425091881676137444494929582041052372874854048373267384442684510457263240687899228496328768190424979182483038497312885646246367009669342048381691700290458654515018181399851944866501713140670472153718506274595634199869070029623037449978022986432115302030719451986139722014662678476731315511254671172704752043668254759084096413673003789497648021002749799406729747499375536589427871517084127584153171952182496111111360399756597971712698387725185443270716639001973067802525058319447305753562424791502784041188614489216986167564158840986867512500370687061713240156926964014478936012428886558880921048144374913342108703675678011640293995333721963174212660104771662359630206345380577436233326117923996339130280554582867963398109817049347344779578056641947565562527242319993841310706894745028983437326444470088848111787909016998073546307933406136550458929951770376005111757159642968150271427410675052151574568677377289361240748175384743723030499227267248436497017842963337850822954165066057749737230955103186552083363411930322688025841987831934513819307346517508278158034379028406777965997902460987462101609321200159851414560556012070588342226024261891832201954548061166967131806997239666944239669000264263246717164032755453529312373673466519177390087588217775686931685274815698826938882751083689433394799547846397256915478145044730315039680828155806287003660340158098681043576479839771555114708726510300826918942183991803909427242359771798091778951736349583350233876739517452513007565277777605291716855791511934090027793750541508554651777230864340905395809407994888312106674844153480416016816790279814346710593763527112973136939248979937430318880080161231366529247862624269920224856357961848269585945622636483991986301904459463289884153804028296756251937113591985977826087183288374309843591723128676510283316887711906312206966580291405624406831581242634307116690365459479675976499729143568898236838956970638609560508735276833655257522572381610174689598404691298917889235744296892873615467036009284196962668654420056172884511184920807661841850063055438981179862834545638858839182438190505653059996059296048142038124949208002010408442113542866324346754994275449877591786333903148377810013812500093653962093759834975904946359787068152176414867086503963303833437408749017286142098556501871869260497829737925378564260588656411738011811242960249105005841452485956112156574916016280537903338356548328470134164673993047027208095276488777887944043870391266994380310709014711532522399401711387994257471598126105193480179476062978960497243462248743101013594295498105387858296506594602109415927294417099150790437223863997353382910346771960271830389620656340428916983102644565720571443006249625120067814074178377333937868027046052369112209601847929776165726986391688963799982122307049014576649625626859983236172756883176444121459352867527563316642980098094545466878058028130624330748796632947281159952885513862158895911509727117957349647283526680272063554567654965247399121342505186464406253804916214686988159859607405477628115623083358167266130702561427572079828561475702070044673116073639851757862567308132030777178705113234163187090198583405221997609711519034376708712045006537281484528031835499473292192306644503846355257280614119274813060444619543323112018307834894991350526777421351306062755814006404728525493666732706948663204732320934772151736636724869683293580271656293934685260824848105545441024871920569710794994964877123142560800904566208149314974329668668861549899960438665377826187838539969359598840776573183791474972031166141107157512394458868966483300287521712754058957063727668806200864805422633800189333565558896753053992933209579421920247790864693369352200952888226996526556865020615839350731645853359144014851744685299934730314675553947916470939694378828645138244669043224082046276579631579967435348200615398077804446781752134574362628407963220679422423670625387219910021184659800380802999622071440844742715707465365178000053100178663995520284209893227900380173274222445592633916156086389719454779867386546881958455523056754446931016726542648363831553781775774410887143955112554532663051113585117948162545301133451850019401595431513849151561273585544410243336538467428804001822431280745377271676872978019363759955982680390237885390283878757993848928031455902998344885022812934934485315941281954813366883589039140821172947206338936058281154205714592403186322299574997830418940281520353706545645009006857201635719453824851594845636054514021817261271429030553128404591134570410789418876161436570390423747137471588281763427074540481211127189782773426855230681500116561927472325796291205446917417287667855898167789007487052529896806177451383387540182938471423768374958033003427591691284898972524434506755442709556452032467221531631276062245329994181337850185587387975590689787619155707773781794444311324051728876974464915457076719193663128149557088429917479910873708799488391563603991947975098060097125627305941195218280938969084208516385501025037169386212462849025462862341842182566336042382179199204957850927894039853984580725910662198416506421330510775710845264422491286838216816238084289827875723248036121218885253453525208507945479400223569495873152461057614517781961211718320839507823004918163991818028620731398333142254044588701621493940402960187330459062922842771485355756980981186508986513032506069829395305094077368453761036914253434901733295881038956470417548520852800859121940652136190963396955239454295422595347082871480129880314014827256003747263622707922816096047110841727106193733988849131595057649459525062453584894995756204948261853300479597191795189620877029682537897965462010307606866068714031273955344882091755443482243391985647783620991122348590183219178768676293851826183179010518834365042383677121878784393827455202164115225055707172510354364295375196218258611856672495951240360765793863510911560212990781134587080959677241806171358680586813395828712333618768867346729142279993780256154402120234508186001601951594433008784352317815323499493516244523809023060126667110182605988570739887087694287219838066599890625673642714624789663429767856196646210953174616391936554786965007415378393549277245249702125574875082052401125214901766558841486675054921074687542726142428680105991742750457591514639474147519855447534052770420291435332772423049821851287134797551346559013112906412974647957093933532740812973012612658208058030467977386012859893692781759471750019642410494897555351002958008933165773614344957761857319458106843709854922972391828917224915075332244319816431846330451663811530646646707902958155332208845410486220923353556066466734651427945584604026626941155870820235693631761422312124920783016943864838999249577231496990258047655553412061846945334548664663987305714020261017288437754488925326855509023158342843953396497108097455061768021557005849230413811183929958646987286817330222798991938906419488169893202695203304007382138738916371365143604946418683901526440415288381461199624371128701127172918122047133884479293269857265425630682410699246652906680049581557550390946889791649183261269657830614692910692646854182882823856781801353699120553546035182902224918107860684456067098326110420098157713689733555692000980580749767920568984923816157528782107480518712507122096445124154878669574712789484473089617662375293394911202179580831609187722232793377180973417214395364028118286829669486414424339660116139495474195566478875141958661284176658994727171235748505973371225706879196084575822650829152371113493428062026245175057315008966045939041162500450123869620810369539963872619508334286521230082077316460544464068533047756031433714495392707264827469784414963731646369939119903516846547288747460269259775292378748382994270434419318010449882130921008320974803850302275251826692635018311841309833072113241215710118554785721004300424613765145267080941679214434783285338798652490876261751791364730545080181504811723329859560701570280573009587344027234016024276900928094364765791546735062469203037468667505009098003658059035842364344410334202114259420964087521271001751763619431008273851580838492414286282218394298214455299797578119654272450339875045998263092972818681424410817090163859479090317971357142240423794091102638385198560553152900197640880395615336077705742420894545508775098721360207700396534772174095125640937495823466387268242679142130254689502038958213590474360777569689370085186091858695847478479528916832214945623589383364510169574630871203294627541406816243240768372743497656318347649973181497862450882635475261750851307460156752768896676439857499151485064559691277002781107790908423853068774671748713036391315696023173575659859717007851406405409452482256127873793147746916601987073924173785547921756858053007326702644763882553919827955229967234474576691256348573342389764983312223618740102000842974600604627733428816748119428836658695075684919486954431446148676386556178152900503384964204786366735803418186287673631976486437000474181696320958340904508354464965168995315975516082503675713228181296850876219059214982346046950374174790113499567618960766012145605492544626185325579180552371535588623518604633414171809544719101991477827116855257297620634279772134303117835499752837987193025588282332865259169271329193028530045134709828888594862827163737712262497947459476414801546779970715260097561952633181871565199269223114070021985783059280094444165563134768244531993052773846705509617171140162131088333556019491306634266012793887250373131569199465404928088807832293078301009418729553542524739288337645273580097616696763387219588590971372105291941324239383957545566172389637205413693191115433170611791759012081687542170789079756848864034728244309387259556205491106545878885759753031723404690596254557792894771392150116685105967782839513463001164613450367646271513762457347632182295291604778080953195969178821148619987272708183799044690641159643567963933473809550639699103768078060714238945718247037856987815671053002439535473122785380288004258063129695856232403325876031885114015269148171787151038635457263433528628771599358186276819362538420584557148485502375595951659867295618198960436957532204146504291953260414364615325697756706582748764057916321872523348351562387621530414131676138756549208391917175284146311800025547150706841140598758473841680316745606452309826263052357782872848856371724286369214187806139924211650362225663302300764263657975731626898339702636190831905889188766943831555729927805781967700973547891710526837266704286448544268370623180537541646390720012591460157936389923728249765558341874301013134869530320844601887122754490288109079410386256507079697630697689584527759916113153684228202938324382597133078215597855966855974274933740246016601923389854131486844318880585279686789417653245545060034281662269991043069600936767169218955773725751457561123379033626369225824966209656030204725953083991587457083485667749011557246284231871521316115957451716098749093373756299036515957350819759099387921601253578338120367216043917414277193037118879760050220924236490656286755200858982843958789909048056442381770707630417989361924384227593413687854760702485583857826773914482827914678196392511465456475200435233431728867710418155632485720897036359674328239020601203361119557267109681900753342703429109049202286151561596857136375905248840805850708727386240728049044837042571006554339969043072948429655288573331331944338636953585657166014298459948597745864480587668221598547100343568193398407958681898628417919402509932239050415999670728300076051717793532299709620684438840040702594252562433828748639387703300214633677842166419870666274627677916885468360370739850671714955502878119220688894333264847573189165344528895365973905893318220569916566902688106699973536643239163890080078933664331020727093778564442030137735656231725677268866707611328582105606949430465854531721708011836664000707915567516087615718317508873104167771944561783204606255123466714791862261652715670724582031325982523633514192712688475435947094194591760261829090051093938967720308304871692061060065910963185295493554504378657128505935996840502187677176147222956114403852634040154322817100732719780387730098140447865473234933846153630225688750027596555809394343737312264731086305959358173495602200763219667622973880067494689888379430129029751621092998671997018454309591009949237415592717337944942395018537494157132375598260412378601762079441487833266498099448368704487479976975216435858302826678756389416716816298307551452838584800487538020606812135247043181977653899940830341831026764720610688137291030278372565976512100035787469498458413614312920161149772864588085793186515180056950795112810259753705457804012924707842688136920025383026635769143288822602802824395375295046424942540392983962139332027320393377267345145793494347405885021614346027745692547188761430960309028507110638738324299012066145452021451411124980001603805445315153306167797605570289815862435658474150957960089043325010649389414513169256017278196020651688846613168619952302120381439558975026841170925213541463430303827088084512693010845464329951052263657405558985934270235620714170981031543308887973520190924748351500755674939695334668330256768984744444876303052167029173086308454163212240551766340380554325873268662571362904721446821557168073032560499151001680685802598145561723874282216771113609113509149712432712954232180153736777680839916786044290154348156822050776624926561214436566336528711248393338593321580091579877081093934441788604931746739034823504846650474324767920031204673286155004201042412564412838728783739850361043642306148517833399241591945544168348720103071410909830371739513854840351210732481527388190568356454117131531726621488984699176635772233527233790033020213336107923729549858685898745917298658975394208090133903622640930580817756685139859995760027986271588834212826856855671281784891236050162194534328200129678798215174921277746602499393863953961338823891740223105915001093336401912340246803740342132331244075360228744792704320173302568949913649729675357047736584804246765950037142882812218268645388272539523417442793872579085078496779377830244408893307263494545534415386876377640106272382966366883021454782539706587432080164497686816273637268568681614250717502773103807302061667426232150199067641127749403606050599005846046786479453674150113863043766414342575913575890236995632790897982911330969450881337243689368489411619710089812485402999646352098893906802217940021080958118774911146289311761144469828190536491954744534834713598318015140062000487540416236020236981906692940220316037119234537655427724948770494566179313494166613500304782445562690654796020453952326779649128989891028479277735091637736607825629901249856380399728697411227735936564348356817382871161570042651985925909404402447140261965592175572594796744857608376032617202514120106686598940829433275161522629944652818008858237495129462090987342568620839352933174876940740099783952978586282508066254534221032254147046879546337112268186763059291103547957647584012931245004916561485330529177019498486150187447264692578240992490440536748853914446075827181181525922187943996626082453052522396878045734121238103076347601998219188685412399450428766797172098045079904864507811268227726340046237042806628934789588555841858081493009493554101123434266241608601064238655575343919251022420440854816608492242432658762284681129474176183383016290120910100997229204402093325342138908143191673326485464709417186751040790791716342169960997578359026589176885649940868909903280311904936341785420132889428896085663646946874902106643117236947047841373959027605301551860749547383330304428599928112826681188216382239334113980270573339297731468021949944606033251074178031490097392553168558058842401481260819599797927491911010830907773625780830596836661041250067847501222914528638519646907129383122061964686541996787495316713590892923312888573300534061123694101195630611240725418095185288795447180695426984107909087836018443296375827066250445978310242800700815878060610626286428966603603976741902601900088055347714466307282536413958466171406162139875629514562449278883557843114016130050716475228202946199936677334740294019789472937788287251898129514185761324091041395317552051273311589431428586536618900476423337512240431110573181188277453313672633357748455600717304969055343321758630247010503730803277489767850280615870359222095359938969158094927645066070769025251537178914243248676450342396441711078453405596199040207122002044559769936525061135077690496608421436963577976043531958641791674509283501147062480866327108776473071882895018295256106967608693268108133224141598949030081501488503717078634401866392340193680173719650884597406214366815488821421629139722443677045418307120250076767168024906507530460045350627620110326565574040576200609676753154633579456756466027323029740441534223568302538441626908352356224177347935929351441983732323662273410564581346524662561247786547933652309261219900428130159142648083831386149032183467868272098371512229935160444023455074583271554794618884042692483291465818078621455892109582853096677550407957268073604658982435146414986989285966772140204293759635314641213977543529435985812419327365422865809456215352117323720399087874786027699272668499876093256216724793704965815196814987691492700279055861576581755212546839503895911279393418919849855917420741484316701168067502542436604893228543667328478900123336517809651398838801701867665592531646701539888693286129078863862716154072022379079973699872895443929976777480504975736245783855739244720970095933570967536610057314251848997357775169453357518069044378827629430251597505334711767889274699985168066062422257185168270366992928468913938460026277220140532956783398579756002971165882773572443347997588135014091745259511267495990698153190560075403277798221307708288302486884755128929980884523752463315679200226756896512183830433005719261607044273036241634875428743503798433181164734205955264687788731729672271792670922458049160530067280159254026419635011318619325304264430520743098727679778397805730224675015957578989750043377965499188840163318800480076628643096919842575756211858196439691454772676810499064531050047019362442901769364398183827570927655303924971401975237964853884773484361444369995607383019501918049984691578222933065355544149446007986545514432933475986831042724597339181502595101514628437203016948463885624984069744217354242347650113096874518914094115488983193852475206496205046240028781266066568824150073716033735293045182631745370446565522116708572367590104794553297687253310479816336008704468880000855406301323774136773840582511764453577955400407330476486650783606518717980783304358296084125225178073684749173463278189682854016923220180819839443210741860021886315512319467312199463990138812875971895434498268304706311015498469246749305991734930355083251385013405215712783768122947563669656779949020105123096926492115827559389025641964291386279897905111686335316667294977042487283768784294453960739864466811378009040941447624513936741362065010140817221616322017661252366554730914310241622056590824892064345963474861987917759616820146420536519515521343963842520422943082340397244738895009593392902377502095484917065642331354175421061375494871075105351762716034462654491531097559676970668444249725875919289757436247964050017244621077592090992525079464034791806297842213228340324847882390850651893326681270696619194581415407093638993049006509447737124472675683830682847174968079133923819319899229620228786824943089473138205053097222466981907646793789074975479761908876728321332455439100530101210904172812797002314515798304729371688708951255434199588276218698367575058448631387451830621895567569201146757507708825806534731158684924936615885497087251522873278159384003374040076280459428723860769129318991466753686470559030297498346249214276416499829526476458994453488033668168056983220455350043495563680619012078962797834123396064716562278769219547313162568618116576485544028412718908359621852360763895350512655782768728257098876916719634451559506940120816600467463576294755701359632483095823435044254413987848572547786812514528555785092124169216683760656206530877621562195742156977879231104252423042343793501274584834705342933611065529105568812872298416567174482812839025124781604800480251699265484142993176272223328337693668132085622319749191460862289539792756255008259189721672857826855109049902154203118399377712851459820139834675029182014016979733261823059218987959812729376061659114732348510996441073262702059975620854783594048702339647619692364912815917400508044098157529835997611362333290341819523009056271328438253934526580702575136132011818477502595231452631012142512409057365251464390614077020343790414524763829482397898704486578886849613837748600952914876251906367022357631056052242517489178230848637565871878305810294776157491889669518899146964544526207107822580962582958440468636637488724521166544359275075989801448240145228197074668560344161441932927327693631725721959347194412179606302130503286933300991571502779111884098863248317639697291009008570378082409177260547350903151915380664379532654537921258369177152339740763114894504127350819933198391550024209764198709727647069388570860334961246804986073660697925652028428206319796737620053474832629515293529104609332306316300126893267918611646015742451264051853839282127772763884700377277484363830233280301942600470576774035970587541187699420886131570251621747058444495805695921498309432667565874475331094773672897469009662262068395179273156023942180304675971751601563423036109356110433716294508016250505974791405099559872728887690397100809529319154037040781904538437718816462036128080296376875402568902529811566082999696395342466759713882747757074747946704839007764647848859946147011998824830023475085749954952639196986926668359256460032218850113558682326516339731514155814050751261228886253030560989340733052300130016884564181162965102121555677183473169677518956185286299655657240983698862501469672503511289804221768844706681916708939146458841702064693622109968817939768362972422512425446715280391383775702721465014906173126420116136432839592751723036061988255459590205442970199505155005024292762113928411485116392381543661998635477359148711452426748543198642333407218618306986877763530264835438381228478336540239879895054627066987878420606436725188809017267850271288811684617021130787609243885112961737382164877929539019115603775997513496769033970296690128579756118329164432109122308002774277065879591519213819815724657070935997483262667909074182158400349492916256168373379611310555946808410385045343771789453896076373747898664700412861208165483612073120183371884494859606393847235625671501037745636059729175548632812020662114706850147801010035236865600046873061123572234549861787158995375723435032790825600987743081995865630647155831801343081377161637213790780768938787332354580520306820673992691427561691483006666938059422555720138220259733435755800635451763835266237404528630463428317208112393389309179781768001451014555918482574766184906138750176396745454812483693296605120358136723750265919551609974030920477799496644119640563220448474512022044654808320563937956988032527049855730278121147585632084013130168598088952558208161330799569011479738970894656176983267395462199329805632671337605120920370550990845071711936573198929482334018663580819217012631678267942251725736195506165196554436109128700042322471042214424269182770865600950439529063479971187788917348684093606006013283077934688771028277320787282109985798440492015632323904799581322600044875599224236355173761471600346483615675307702524918895953501201923909797309354633701264229388243182300994940735413774460753820084902295719457216422597812949401835457199640185336567608497454380141384371902235706891642450243778905089927923084371119303828036716700239269099846497623919647809324442732037154504012847577716043343946053995716900018126633744727026023374003379182923300521952324013850626273879081812620153972285987345233281032864389886347490806576620754044764104232531392762049104390378303188424590640118637315452712792606796105487993673782518826465639327329555183526126588664433620901612976624315769447012823483476451754529899116511762444592331766785376572816695474105407891125990947683562905063977553357393406339777155627492727367112258054019972277494285528657227765843070695578369081436742601610732773826874542688737116406024155516990561547174768789734951384389040787622265711978612492930866695208620544051920001404916499038896117513771513934484450313296483992467784268182847868073485407849459502494482962148280575697455456484281017030246594951406824958392582066513354426444489460432616272025584519060746820542423561285062280635891338034584756619348837782345097868238119218308100144894938581233070859026404803969191873779571536629072029979042233727142203590411860379492784191645375664901036359285832076313916722078298960850765166038270113929961696546841641610700689544486976886413546029034845638212490397870988306767833142032234645374540166107305523925642381746052544960641789823102712802744064950242685859451737716383462754667533768914681451386893063105812778223617330614943691274864772374444746255583116149680860820562984180853980376308100255214082565526967499662703117071016306128933280943087657713539145314089365053092291389732555732693832024263053189392207879757614062814873233260281342937621122847486029420918451304067941275985432095832243982762945835840835137826897329377849246846194499852519782539320799351995309486471467616323604523153623860567579502742999890120355964695584316677294065695248568593044343486701607261039511151760277928227995422854687704478313345981539877184650104350108132959109654307842133778479349345528256627150638762202990421729788768084893692151274025863432639242058765233492345193053893400074533976247175224254937066188929910168124064141411613483900360126002823404367695049567147288314200138172749251413070785292894466695131017048658171195836855114674322237333132913390625607132220488222532423101597360642519722904054220106792303344512682187995374167716669070624366983423168875252767955990175439241056288798561228092330813955109841870529548784536326327436522383151295930170115559057926852566720073635243195379482213581813421850916683367091869630055194419789722811281141840110146139234604480175809625556013813678870646207969281270214986054740165605715868160324918817679344653793081129553418605030023070740023131423820228589953754383486600462904164762496497019475542267377130170219148066606258843946865087088187054148003152987394612048526490783358765574024650253255791707007879339836166529094516203022687979755621605458076282525542921392969322601324877248149628173376260925268814719839868381097039598190092486192851230113661380008216010254149604162135722461792157069236811232167481951930744898219426049413914966296611669442642849322098789353090763247603677977238841830221713396610747285496203245404626121877359017146020978424468523061472516707210506095815598948265535069796096762976270341921824914305815062696524393971309375184041055084139566156425997942936261150340003772216724648629941168961694344914335733971483192404793218603102181100418923620348135918553698496474779773425291254906814038792145205364277993513416898137409486180705302237805841272724732208141664738987376684377178169443171199266544433417693640681493454596743163389501098322696646164801489367887139133281171913178631170668292442188729208113136016554142932860708110257669421517452753975505172794102031785450643769943938472855515267556795967813714370342686478072526465165254763511609818914298028431435992232531281428433282890469030897724063480188063646724021531422307955443574515050189796930580656632134402980230753024305951585635915297219479027649479305500919325707496360589240538762612288452819358809524004320394010663304431854128012930422925840741647844645411181907986482794022913965664178883851559323082675140101798130222507719076062471691789384778049324289365674995811919094900734727438701571186593377329336951935079767482636396367526910260122793275161803041496176910566585734965758429821861049759934856343384358070001837540316193095903441208115599025413519453474472714249350035178647685517155020441058019406467138602079448838295577057808098471749153460413200548005315304479963038701811437097355458541267395912257922237801681621827394360093732640398648807596700064726127505258514480680542304679072528945482209530685421663215190756271450228657532298199109272809688585756838326148429970810745439477294418533080766306483159833729193766647976844254890044462308313053514970852382084186697420705344405040311874125779585467470729302516098642963502645353496710108880221569060454811455102787276304153479082192948325814225189017638990493782345236346562737329469789152383093278315431769499384107808589330084846798797223806501023791130336204503285470363481473773326961223349763039742316471221152833438535884206031893680396793616021927287393137295831703881571397273764304550782670311191810268331313245574895682462903922881203671097233101707550511695406137970899645620869726446543902320390928990294807128753521351716566047810464621842791445747774554777318238518831318045655014463257323879317824222068350081113265139608193947604561038164465269683395663810983972822720720798428785014596306950848843900842343108642594927619073583847123373235834672905986855282642861236980684479142251289335944543061432324968079264154698544754243861332933481375794440003073846364801856546776604617070307700389857055578423436658107315930482506119269784603929305033806980579414054832831974222874106607530260892492730744969573839160930903235393194283357730173918579740023073056694553881189596952009443527222882068351984966849651595407680477034952162408657288132091105624054465167536128620669812124718046419820457978009686053499402219228724336775068572160226232599886473003698098352923112808326191323654122209506040074758412725648157941486106999091643958612269425174377866254676049097788964588783264076457280621220963840253069715607299027001644524034113306735339851561981630518983002230064390991064956257337484584948041423639507283372777800886161986462775694498143861851420327639347758960224402461059666366878083575077085471451937560461543050235195012577137113818108509683552951085165860595381560679017045843925891427660122083511455396069560801304576332865230650798801111143423180236355820900005494033259191558017514649378637759008087480708430851025274185598747510376808906504803290271567079387310090718712695344902431412139186736092266711460262611466802728676632051293021007775670414275805321916351723152069951659106637074776087365003435916991784474916150542190492949450522183799485279851295177570663294613874331140568706748297394354187846262826383266956322073405549015567086236647422368535613594405594387624704880484221833386569618302514920229412083135981730784168453380463744740859095793596522109679296433270004744308628616850071145061035306276233174991475775559651307759312651118891177390589216418554004615276425754739915921254375703868800374830409935766649765706250392596656354133162106493388293881592900326483795743999773781748980935807329271412019004984895707346015935769004634410369892466450542062719609929063976783897281508746484047115569214747530291270170349976640736446379716916886784234139785892191581529401947693064741290532664672103809917963882069331551501116446693244298285477373302958249972063715382242182530623156034153556695242849387656227918425553183675865155496331307829632263722227355357326593257843897888530481544350490640790069472402281668334876197159156333347314959055333120660761726620655548576059729519516771148158480681230339626348000632163665508713516005319442272069876974248544359269467531132783108508956652450654528717095138606899111173449179564001979534241280356674207517163796786137579116200403817455612707475654284862198066069825396235035198008699479021685333870617964908563650225697542806413897440958010417787269541656188768682438448318589306163143555279891323297926278811244978794006484251933734536444324508986148347598961486217561727852697472310335405060855665489971060966646432427892173339390390348440692454875007766139177518257478291559321359152368506118406011983604361218463521573695898206794748973920993639718890396023601374429110998483592390815442532234430972775442983316568501839095835962655916477410304955666282869855161810388063738496771498936008959283659262011744742062762841173378329118952990571984621709446603669795654511204842175479083930536219377584206843676197124090678625886453114556311321179877342234852103782894818839120243710969417649025135936158222597481469095534523360175590842202927035339135970753347788492672457627356074622726675252023469710192686661362929361395159999838423559363412515837325077455630685759097944115062049879020172704038098961488495888434106329135306275994008458920902479749485930424837175417201359505893148186954133685004805113139340781878443509332692678898037369590133879541346335165218754493696435798009615347415633837108762916421876121826693125843974949651407851817492260517356889511367780955267392516597811986109305525536744267681867271715985770955522660387373422642623602960378327838601650686140548586212623347179751520453279067843705764044623866501887561102066870431381531810121054358438564790540989239880919433389467911857239041884497022495547549925282521742810389703761585721605812986303203503449668443804238718148973688274265880579877551007922603591584988403203496604048760580981825893859827571289216744903110940247647310917268887424437854027000564307429076704682639627906498009111287924054957749707975085919618439181812509963676439779436028862563878206324874045668217922569812463643616738021921250875517623617849656269392058566103585608717289768789854912152717017125540946866493101606468203736533714078468510557809658098590923865284785998084858095652182736944279853611886783790475167725341186668199357161258833294598831523704220814918214077862620888867214965682136669942605759112881979530123829273229688546317727455411717144757258744947049148921098064092799611128651939570402858472189930979834368756027958850689001457775238391053624867884541090417630526502007124531217038399125702986266468349788959631124945416327017909989080735126325270561913899945455620970349023972364720003940305189335286641501214911467202822617537008075130519564538188579635409646003293431693451822773200552632065580960142266228991295599145346231596438602071372482388477918639882384007939086389614444792990070614531317309460708742292648002895458447998331959164290514245790265953048586807334973987247998521282623428079097855988780519363850693129457231112370040212351265526131185246621151941005624687423017168066865842110452544546287605044100817672166451134575135614584687267853589595662462900416634736707693712976491996732896432312855257679494111961705103943353489645159808908424682287836842002899851982258574189018727719071650104345062803558522591231628200872220566574566872151115743867242515210904546536144116977122541647781987249640131795815080770003387255329978031360881672655434764641993299719252415720650852991714026682055545125340688408193165299027864796246832796787006364143697965390052727339110010068101622211397886303509485074699716403439174746234870015887618469590345047079416519611179115833445903938858694643822860214913948287080206288168894062537645333292122099245802780446708364688584711565539560519416942804400045811714219554672918672126381316051057318057293919246736196673114806023483605860282639700032531513844844745263880273477232143386004876389427304029039569264118152295755539681476449355637386534187281640991986778727855512160007833862566795430572539545753835202940572974268995663738000759697239360736374595299365705852367417042170540664021534923088996398335667776929468573817122396676018572713154983360874856131060708122202411955918331310973584291775166720067122941545330138356194392680282613806638043654701665001202520894101017866084722532887566105811449418314831714683899020448031493173027897421548593526658021350066732194513369472347952465989466988600588654028212910161620318652689681527686251548202720748753484674594263904029395497520721533381120880742257618728497966620972588514924488533446588576463731981610834165078889598921775819723069020075223467267348242823160649661197178664812909191005895078583184155754059706813988811882964713655146073024895548037602556543051624259460193288902508548003379512019060167686368581078450729645673921536556131410974135510482016823419831271244755960329872105726285634837523588218610115330230575731928267789276458587353276278990173125779354803536570042263482997681758649803815997296467228667558127398170478628961447072882972819026600714073349611023874114733802693362511207871866076840875072038879969268109794702714993641333132421910357035461023582610726075397753807119639692081353864849769284991129164501536284312524048264642578268395487094582299504933104145442833934903707160373290407986228646957582778292861658701205338932582125955542223551663396175737230594187096519149111914325873333587240035638673623059585055403311407601379989377200145712388513323171922354437705869850853765219190176813451990657904008777560423483820197372277006014279488092502407947160781479303730464225052474914055344486435060439602550625743762614671442191245845527715972223814468154484252665718992642503252390562432124786050293933437205081229841909235089996961678998869106532437082353929909600018268122104373800645110431181188645980084513450870480762684838520795430239365636375919775932380802548315919273295664467825223718702194679464922261513419330897791451295245072781555857727111921246430087427343913781895706094755365054479526640234721071274466601271231345464214063752693776417597828215392074192836276210086139102162056461458970759602765591950499323722669550282857339375778064007328108127067817528611115402822740965378478438005751739119759577116519572176648211401105631209209615823904521897472699260964949536422186209194416329999032383441103138828861084811143435432246954350375174168153979790715898590296709980365472958474714261525972214177722121638818954336296662530973993604954673556077731014411237732108048954974171985100883504547110309385585751493319061564615996105738107582072069846596185367595794712057554192270847538861200849659322130181681758069121171608277344913875207523811513827284512036432834811935342191155873278279914227023007149127919681921671730393050029709524527819733079960798321571467446453605908700738784034042430518670755211838472156362484103821644984928369631609158456725777508611234240785179138669063133881240485270184596058307178979685438523369230228417079635289846941106152542069539635090232427659723137582740977708004877651438522991173582710339785011067585283353244817101212579672827379147949726940438756868728656340788970903721564155590472222694183977888435437687238713092026410628041476063400261342940371347677000251509201337721166425648916272954374380721598090846531825376900978510035519271055464274286539240118116600019391447306291277564847540058334144783286012890011570780110674491595665514326712096344543246731421887694964108567321514556782436990539221378478449039799106817647783328418486616033335297854915064249067081862452895166386336972853664196807751572312594805388893030633090377889989965291258350145613510595161065287527156604821605457272242204869733863893523553519836558920080949682126423508164929980443920577984497208088522178865876022086782441903301292947812559726790685179000579264625540734795898240528701694548860994596186010820372298138289715160901638574743802829944907650041573944523670498771237314439169034221294737401638910216169396039257628754997598394607030117408177393076299331322917949339089225538849135193022144475290715313619409098960804499629144575554972540933207492144883858854173800584341902328025183899776676074723424794078934918687644359607734413307569873437328889794154927147843899329963695252188223542941037598041665000213126514355563359614702803866582347542681637255628278622495363139856531684899068481634084655168556283588946579097901382622692812199491417903169673008431228964594478621113721864057002398797107518315341818592268827247057512804040178681843801722344828963117229915772957567615680320413241037905051269559333213397336879667922220343769020695222007023324757241983517609945178514953368376777128502857260730401622803841670040450366283372402023203738033004706405104237728094740454129072283586062422212248447045012624521313707405046480548695696819406760908299842135928626445155093226417056314380582863039579651981949644915083872451060213397898936769350500364482696983837537495184497867794944848156358085853846909594192633623118631424692549553860066645355364944305163062398057878512387396501353242208412106691080726239551635267483549960875576628462854496236459894494849974754077603006394751446760144964046674773173708292296703623011024684386448307050639474778984016713284645835869467596527211527615757004087551432674020394537658742830661768974536534273157454225010690901657668889320054230806365737159756990928476837750334753163546858955586101386844891946536511129785509472145733280609565774531950469323860965558331428898902727883526547287121109664960725222191358485179398903728137668097359214752102237082540342343303798715403180207241565412253697120680957114743121958901911732247991646893928684548066492117544731346996358006573076454999446680315002608083008146547118351557928725576488298553959488775610838815164457900674683061150604994277626657912799158917079171779903079981543275076030750198786514120740361835890692106694164251148904364011089572250803639465991912665378194984161151746032237727880270056436391448970919153168502093899033303192516768863474356607036816398262843755380972623507240263537367756670202389366680773523427586592561085948043200108968200092428390826171836353370813199427929461219090187248326080290397683056947582485316331768987216749847472939922221873859285654367528218320455229586626052291051561087840676226847473243298227987186174563236892004680799867895940190605933919154771293571109444251130576471246225104258609559490089844988789544103770363361328066053620634800563715298427804911700306625988617203461132609046206959166867694614195775267921521477869494280377420189084201527519716629508106055789262070891076277008585968222922453421623323760549464248560805339540954480934116393728504370357918218123322927130676690654899488133776991832224053715279654070815968423755473455911097394347629001002456424882962132663445056757132818813016890562241217508701965739356569686997447339556906420673352278886394938694351047702337133193161936385979343944294382823916139953871506934668465924926482076618129155590435016584262261382955979263873766557016511911209004667492090248697781456379683149465603836134416043134365864996981171351248842824448134780517748142084513055845110173627332873935262674153551474561258908779544948365330478042308728895620579762246649571619069554709093852634509026676762339325007892040025012118596443433620895248083335853429942503966228293009375623426177094998204194824961620736388000230724805182684412912807657690941008301753813407013320376317768416517534104717988465151362254826289358532354727178215007738384759711475330872865518223889458160938066635941395269269327757046953688338447887078579453254511140686587906941843270764498286041881648012324706652649443133998059636448295393540352825573713081421603964634265483648316530989754016593756735778817376103850294395400074091318163521401459177231987183979067348916906560042058273358037806163843568509214694693170834844949943729814027174084980645210147886374575214775207668859057841819263044977211941605861900005093720119916875237323036355586429926380260319719841788069749418905179730639672548010555013290431207091728516056373096541099271970050045396084111063870771532260335217137887358177710016614517804016812269088463765896832030778586481677108317393518244593508768202981972886982441915452518428448243913131464125848541732262864777211056101415681684266398275458721180484289654598087385422501838869428098125275233702548581894329958654980535321177586970936103488815434056788967065463692232163229616491309169597228195205735017447167553597946297302070750364725677874055111724978424759953267409727306423008089684908374395679316367247629838397519604776944400926792343191958777628070659807422177713843709666347133068906599415132087795886008668482620580587359930910390494599531606789020003908436461336042981688761080647682689905734973618406926949228920620581476963741863988819173264894416949295365581515346212342240552285586557484193092400959252447878638759181544047091277318849952458269052211889138368079351970805830124179612171840913880011380023278372793537114637777312972242860534887943857487281674711911436171507105668260428995252901053635409545915700006020643338557312928903460991537074005893018697811461651363818175819331746500426055631084447690894705933770501070058152186737196050201933374109370426500674560575709764511861173009934017775074490175589060712814757150983581195488771068531020388922043786908331410315999554394919245945852531094770341006024032215279041632657099707330815455297551426916377229262850437514602853872317374897045368992091286725933881453214580194149656521638210985351150821132185398286051820850003405426632758308282948920392015271804504272402133687080785682780147112828421820631634660487431051741893546581203922504537548544288736368977106683257002316133844395960415940100929731648805017456608119953912694155850494358010539346870074656046839533440533398111657337639692670654369373752944334534012333198535746683509051817951354623267081574869859490943744110613575125977374035397286666721155815370233238425187047056659860210876074677774403487888118949399378762582433809699606253656801781933437796986953469170301224815667983896234825682203620092571185951492123206179046367167896343334836992399088268702409822400452275927598754244099966913052720390524419046290769542366675819034433131858568157676777073501531021691458058672019969206738106873927508929359963482910765697600293135775665385859860869843704859417064096202328626455514841729812821005132776707321989467218964847401741156538473162876549262115781720533436515618397951416911269421228640774689333852105890115617684490910386653872902982431091255717921474306852800216032722232220524089849836212101880266039512627300222421376141537905138566572796700059555961844482762664397860148187620274666261241614946884118837036839257745880380885458170933188362891890874467245796044556109183081953642331953467955387552619539968363234712113526561269006620580901581897952179936558344536164843809786016317115603780454643016223707513342205234236964995656632264934520105183732879246243011590475032920494950690824498202568864804554041455187421010462240675747603735092550003759244304503485674281723304845910191361475668126214668023862440348909492025064504897727874384055625402700754512363930823426836027830718750349165352094616951983171103228195497625156276410298637184473626095588587912701675897343386565616730088183195173953181084781860137197707820947041185028979798032509573096386073137167000959974646551516079706127222260796444868433795906659685665490680821524324017909308565154924812084807023804749351619732066638814436620248873657195448365595752205780301762651287446539741152748189683765089281440900633277154014713506599683980837959439065923694154219948310651470509289316782141721821441989334015704668460735508431368199200474173833338997606591323730632440958821936598917192553805419700629397819985813574779699047791482431214468964987853501920801254139760479184240061049804876217485639790740545897870111751367953099857716512849753162744025325965343297034238003984346440908633480029071376700686897005088923279362698056463745335467206992775131439561517130664510415493408596567658600572425496901745845870687934956506682647538315327806681653788430528741736704049869067941489922125072229561913060744607085267303205080310755512065744471115325230756636989853905161074822094466329968174152388452470379650471469830389837690674170082206112731969751839182913282584265966881262681491520094357242116290313388240118584924685279630323976179036403357674075977228947611937103166140816220267203288499821386544500947111026358236867366020234384710522710916061479751554828935174074108872751780833793656833261586515473870150076026431692707533020017828936011935730611467049020919120912498448354022052728015425135546863224628983642931254294600093910564448907146352073905333685024756953518719436941699046657628894315528410691720819427245412984895441771210451992667221262061673926918262040844877164493898398978249455025824682360817289413447358450145175100363562923288568190096135330275315490872756791780225241061461303061756538313448897248954210171482925406782161344862986009741332466077362687883376794429836639972836978402892137395906258610585347462473099154362896563643642967663495559776303991683497245137891893963476403826222018041096898705426832980010061335773223679098514781864570105763595369338186603793078517876575395530903624830254444790523378256624269465461402800283813713184479889124236275826145420353264980099765878675864210519967819060765496651738849082993148323051868012642929315229673653985872561391710277090994870831709754933160854069695887149524960170763104154051871158568967741329514634833123094026871124911125433384733121992121545198511746474682512050187692149412728465933942978783438520650715577152452601089159495286691726554726549082162441457530304192228115006876653688146780702542601333484200681836224629274757694936012124912965451479839799783824445172625325231659503395985431540134812746987333528338630109554530129022615946593597908648014470895414639970737650026309361370368846103176305308636556281078015883494472525900809352269541608511004267967858095729250103483720338225840977444234709371393853615996562059324252617233839490861061219538476326218467418373558805042818040905836877187271993596861621593341935372655904646360480564236846973352873020681041158108153687021395386344249410527148945447717618604873575189263705723399905346160263195891252763812670574171232458049162311110233722101790150544769189294143245833036673916651402438609889010027149088982537666008792331823989178221495779399902882512712520910959621215503689516648533244423195472723065739787842537171089359472080661082580440737663818568084866870254797821378433787085233345285350037671117089765728607544561943502109980957570903059497345541421363261634282065573205638605110954349313676218815219175950769894407007992631225956096227921443896871675435799130166573431733457003639435087665667844947888498048213510016568985949101562690152874491201565583446820461950118257141749733544809917926108654306622612696882879259565903063641884904547700267126775194881880745924631304794727298848331571079534995819293972312273281454463464598378031936768235304404889618654019672942080366273919953183362028232910489129358394401298941263886944121988870601022848176060788803311942855391038151158584675155086185349671854303473427962488129024086984855221623068529760174834152223140894936275498608261960111755006685972559374480892781242230530625161196520685787415927883035124118554109933142555866796248078986468093237142338513326787639442230205607770393171781093964188306995335654044958166103739208193328157515784721415855060997807386588893726111795577180540713389204827718970059551160870173371253242777678817904165436861673055019982829400234694690306338053611408228187400866146616211450185354578695596300924797277200449254850412460117144993672113784780192953211806745660006021612181151240443036540122308101347044191011910185138940883715670219063473341464198519260680254007467810216063870052519818156611157187639592915047865535223559556439017511879787364430808330860620237753404337566813710796785500607657732645015125368744723779064342074439589438567821113311849764947758627626533840549313431545048507517561331450866249621546194578419813680788460058825922995025124023308176160367437990175766510310600412260641661389876529800338665833899301646387463099383698449513336642947350437764922709237612764029440614697988575967997974540656133065795133863228233294436857552506588404006913435025697019974293206067658236739615898714267576095064219918027424571440364963257257503772694280105507878275425303055359258702026552372196941715874589138147947270937013765892882049458935038180096908308485631855126246101821721869861295429284175057119006473854629837699756188585549185248154367554685447774985062913576201749374373581403517606035436724658126087123245363219084120548254966415515416874307902731118700950991164053112312444792263683147150200279889377469820657014011320673071671681328730992716682763028730164403299139374276923122691908090334240105614290552316870932229130461918144900693901126110668033017017380257188623110973296026369346730655598307396657704097277627267628487991411751843536720300134471969072749182806282184837938532107325570449718996013186950056836664073891564498883632694695952899981041690807579946504971114956499348862999151899557384321964649255052392164054786983787261315786819902811094938787995961838151277399446913783401846332103597640827085877239227517879587193646501235976241514456578105227556226415772325163267005281023641574243358441542954899252704749626846805203990739544292305097925580793837006691627165001031473835663173246127738411038504858933466839912966819962286800917996569587782114993871722917701720749349341094413730545352755485005793080302433608503845234032893244410932606383676592350015856985028693350236849251070138866498271147323793375154323698633866689272539228393919269842676631024699359893628200061097695343988285703622115611321212676725221194026639719639919971058300957996555577918180371740327507358851929962751124911883012441286705525516831666466036411583781059316704272450989481022264908358672831770131855699443076043553595426438987983754618860441334955281464186429227869924610163917479376921836792573503197119664459505098168129572135116997464049641409343837614300160188586072781714581029160912569651279603396277352070900632283284238978618267043524974524541501687580761086138625199124960598009027430543863016829768225221071207422741138304050201396461519711637305043025685910859186734220660699259987008931137872838646753473948165543624074373350071900131654690851959899530885506396200913334251241209711673974066167382660388418102509343668187040941489974921231304000193347827381772397480047413994193670838665563304072534194988054718935819794505000240636951528393927049053134123577696459351697332788520456990768762976239398511515768282626305029292731562077627483197268707406939465324033710724952098893533754281617150594885807766976707881441616687419450107655994646613595908488237189753936877341468771114803183406155153563144602173605681557487857110603654920314972045985779589650280097513098935931178226373996782257580178838565205144205300920290448512574340628382440476516439734993775861045867519250214397026376806506547615985881378444596867560535788397902816431531061090529571158699943119028937528656605014054820832271530651775170629767122279869722052130046427590124987933425029883537068134453090563787351842186402589317232487073963722177695938154803729592800852364922626220183397631776084854802511233524001678709596877145780638651195066282537836086742010363719350257633926932520654204471335622873076851944087053637239249434151573908246537360142446270207205059395144465239188184632807955171401117166802979055581602713571699432463260144969283226777025816137659436551603347483751526667635739317737830951898821330239938644869260735622078951918750682331197542829103786269863601082511352886238813534472836840689377252130645307637813888357033457188499171279484095976944620568339027947852674643686471217473845907940816468824594535263063492759830138809262869501607850569157368995464622920477302907363529078492561291298280383978919569691589664247981780034574701008195034842409289240633906786299507891068227923161303976073415660730663713203873263131249038007166568531815864824212597618424925064315005480313175239652455268543381017511308027933133904590581910498148927959779927367936271697822645339822470257473318153974055320242454580060861952596879358702951030317758524023351338777310234630044394266861609086260700335761748288914859153948825097261561032350652858860929495708679991750317910016678047063963481872717899345556585847265093031975412638720432256365367318223303594456578719962218476223149860924292443623392111605628704256696782900256955741828825969965925675383398990377592921391919666029521226966911417507903229717560591224934963523441379951090769343700278374130976619258746572094462970365141496630046961621516239272810211248936542431600042446824741146537723211806761238150414340722264848857518093468636681474747640428622640428793530872956926348962809411955500254111646133142838823739332955184372116216616880673569983300734569686925788547308205016657073052216385175030767694038741831970024032834343044532987093011606025109001154992670356895204142832857640540956355140815476679361939430954809239587272903062134376525122623069916026698811033910399968860120421784871673336325877164121030823456535402275086574762344233800433611969602147668012057160045967146371603107256257753408204322802890860062157966029348221290546950040239756770509969321605346679460234488129994945457452178306778291686310327491314934916155746690134826067685094328439331536617068933473017770940781567952795650549289440831355098191912700061795734570147061768898949325507993340599367587068842000411611141847206062290552809108178575849165371685703981874298966304620351873117919522193158270230667264955274458164700285689598130206269002450353727777710132501937616679776205013133300035391064402512823627085244726099189368311597167476898649043145719063748427901287468074828466705559440282986307768368334847589156818538557586068773964803271699120273749893091384310854084752772012919881781620506621121775488751793855174773845769222795971075383070380734863893231146342798791233494059549746990873087012705489793235877614934598279068987398886124392000677569864950799242661472725212436989353982604630753888704243105000466479389806184420147438351672428111909498189261850267507755390862818313468312314478981523743044942676005657623586000294960530450924407320230538889696312600889888455851559232165856305905375336758454712355236647062805250006428538346926490329191316310784214217311263504401499633679873557834398461732067032706286868866016081723113038657455069041006975538182008304923037353767272744886614425863341176669641577748456064848532591393956172988234045944398573020506586251887188451102187406275377854693777580473925979159658619764726534887461695893320200660406942536732886358378611416889813118716290135089583699328816223038700672221678492378921574881115864067088679185728879823481596434683223477866414672900899453663189521334310688502732921643685698696369462473082141827335610032153615011994445821331874435739407293594377154724361747246415053812426805403661587950711790534875456172009899341639159659095543475813695338798446091708204088125353323822458364582261818052782852560732984236827129079059744530538789668241729419546381440653322100449536635911511861391964081970554909399345152757242646535164172339105459603809270339780544226087421172667797315906017317101271780870846942743697026992998941691900007058464007578799948794597189551077737387456796676279598163045529504392532875559431561254929383838400558163129860855218514684090873240772422857248988451311861347175348899541508362347831496080554619335972252205032597573059313033781667915461840112024805901874942058704176774937606599077543919886291624155795840036580011628162505509651919762529710126515517843078284052534912404099872956607934719796577950665334347126496030679808056106539363968166835690416050926698314509783626319826536033484470311104918045645296675238930619142326547461035047736684426243760815185299337692903803777085900347009438813646059795797611911383517462645477149107955732531368433349339908846390236784008893723281245524535399630447267970739279896245332800633893020907108876389939781256314638215779607255417457392688309529069105176551395222966976939724487639558708014782006472368435404915432150180943734605198852751121161632708672823889696049515515442025307121693380141117049997582050115735919835511063153550452206820712560680493219126838140122644909975480447942822654654743392153811394887466271273691836216676145199526333011346769620949854509178898467778706036603633916120900936411023974257633021773001764074045392901951239604500965408879138297959386909792597701144026819444007140625619104335990043097670423071505796313591997996016487595761985607795607212451346736737896219690740331656111581722427627232623554183163127120294609753533347384500887616135076955429213838455919188302865670462303569049894564525001564520866212618051454884909288802878048245683987619136831582905082186384921505116719074348712302831487683212838864042335918466346855845297922302322656066311135174976167524719324418204394148329272994996397921709169215415476819508410151141286413406838910369341188490257920162502290231093638366679297779808148434026844365461519656473251011415726419261176553543982715163443122975817326214263407624872732490228452775295140005959621582294581243384298792392889576629870923257173309170708357233165719958065867077330345484007766918914049916384200754154214663482129471452399302852978201001637667317877045475989351162389854815121194943798365333105592331012198173022104300254485243097241438397285165812113123774193589314217864639490927133590371696725616968034627255632859030363759927924449564251499736498479311305530850302916426981023617358319577575256071908627650770150090255417678218886227802598278360887208370924971542067543804832801444804889325639163702538282239905144431528287623232527278816550879430822019493995264928212563527992437148790463601131241514428298168289156378106247805292502094884508391792661903100544130642486563328485318515856581352300129052076664620752697019984715481210555928331813970799790388211480710433475796906858697353725228442845092572526479158536558826424174696984258848280496201943870182366689249700998561592585623994331586567526048638590243084996855379077047299538805307521726956684456555423772051839857294088526362977287064729222553762470969817732788931501325106848013319810379502830956991360466521502105865785465581225696201031545918078986049225711923954073513783264914708017893953917213502596031356437466661706047742750770966104283853040481161280322061930026221142520728615798606591361300796167491730820535742359082302484028033631753261134647373949015515230204126279800299737200436409058237247690479324090857701690340183831155224073506741328626572969162968604860036750196497378777976550545684527042599080050921691184170109584150292084904931300663082988845486665775047006078491869820598899047456202028141977348999517166769792736006871873081366797903122475038435363287864591099143728451928385316419065348155772708039687681414061591363664367790075038813437254069212516309407999874309643026907110259890521876839486622521685084613388120132253797582211366557173954723102285325862710328900659386208534572252707073139283557081931153292866954727225814295528780327461914884241510522246994225230976157932095915450974015317394243511581478781408914801240091112668380123634905551330630039554058756272732093954261122952633100186414066629842211035699565728833292847685081619834705612062163470952963316688044997867158343124261559274150019690584584023820893432007138389864386829642780515790862146626367426150700947586505285166325797062101646839758908950940596570099355642728462007479099185061135583512806428274418044744087354650299626437905968300689064794363488819325868546785468187270808199500279294988014335924183094282809015857386292883267786409736078546170556703371258560506609503555916961707002943496528455133880562560338036465000672105150217925430603096519054746616773512056807459370945581723109163108578217866769055347807615797697163902476182374440698831184334497159874598126729817965694103375990676598510312133623308338154460009001792443249930685134980398538610686530698941274401422018894325876536005582686426562168895825288239693028141013484509807569131520054220865305336923582815504023136911545547378085700114811793750314369645178098876804759348974164843770170593118508115479093703287451443982842296288562164494987135260190311393989498399326138918022089642231265964553031601847343395213411709470938669440683614820576239394612050874536115337163414532323953981042444624682553095500434733204682332003383386392853865276676208837566901481257886409466533407623234935323168687408435509323282425296553985576149902677180212067943728297738082994070161509511385842525911987067881685614170574254826683359248844788015391908467141764268798378295531234405451707515904740947080712297663416254210044955100877864894842475324802024614756296078486706975720451499807222887313489066936158501509203950631512744402485690461429252874166330553017728716851599413329565258153600131235981624335005430813742374313018366906982641470665772657557885423845125395557112265001578348007471674098560006610142485902145128224787186112233515391672379141072443037295639911964057435044759047607832152016169278652323681153101738373295533007742916787007077640890551349122986884429986750669048737053566551759423391634840553074730743939735858641035513798786703194301115030837516956769683490852975582822720028621905239641521911557300246646988076846748843476606254147376369851665536575742135622741853935820691705917661842150031342354912373978036076231669727215623109607502698653547034006812212443094074026906285100045421422337082251131743137454995552319100602213845079729686104191985699483803073269516806735041212171887833439567515734658896517976538821394251166032519162964227709039013128497429027911987482430300055176670481106945990717014983079146240011212521452666613273008397548531307353463560911681210029938734019288381443450439263257823499990883374783969314636589215658348040270168221991087364122984558174594283653209033777737027808086771697688651839051452687166913535312531583021214300950709845469306734403938610776938081757645898142757369041049835591895630309861129471481232308952476700200211094913574179485095018937938205494639462755274372697122404860294768795939176739818046569520144141876692910262134944727624312273106530639468635324680375167591987974006334099266129561745037412995425752876057287481734338348447085082035562184454296851668804703924946536770900260269863560612119374873683005183348319349188416492468894811528362600378424182494043091978745392359046165947675172104741603970253058468419975046804978916578881619271769869708514545222455150300853250847308187587550148410039513060979811739358070894043944125541340135681106389366697635490721708498030341577508363540249295236140477515083039678703459254495983304212959957028447771786356075175417318964661042750789585390502488145723822117442991609205994334403789392334274678676579800636781161919542280123531535661114201567078997282308737696167795911533779583987933822231544432631277008400510653482623520969417777255809800605830409399752024537267650203912123788481243331197921787046325386848450689321386334902878562549821975834393398781211192006770902729629159545885588147671738526686106953059042526884142540468953003929186053779270569628667795596508483621752970347325656267344089098234494296418000005715621805223881703805428253999669811857421745281782874576878311200002325239368095396983341393849319716149580269258097083259752802150720430830470441807198438632778321818883213134692428246274175508506619015497266366653716397140421049939561054058245054530678195515193260248471555233912268523002772157624692793575138952322099956337271735385236523473696922993922506734639096068661405426133831651839719549735223267838453194680317694157653423075676273070934585413445482231022313023811957931060239561121959655050117582150450910007707954968222934103079686032394727989299011036279668842187524454003679596448751414609858983483054623395940302776388994704293022482526341171787639829089134487534497510048050231392259397133577964227457650830013729130471163664608166086168541166372897593853001776535092745933038586778259057744442948008302968019505390361488472753168275699466987178835798466986327814725667492530999737420806394490761503796849374392197594829121485197370629904874148845887503210590568290781658730231331345397864514336338649864981067449652899165362341501447329189857785661987574225811961592835022399560480823137128869919426506267631320821163565383277792485646410179549323445666124762477492336610119958900230874599771128233082705490627533045209629431289025532838102794549036473143621838307608790096966388056320857071997528559389923863372343066716560469454309201575578068114042851510184407400449530165760920440371952934648367949598385248780998823139849065209951786964429529418083610085013999732481376566480052460977165166254190591279406706043273341154276972676709555738486230318386728097436194742912668865794436590849631792404236709260042402899843849490026325286874728853650509328178921038792049687656506228923882083767381332685317101001180710480589150439182814974523442443057237374598782721873700609802097154982852829201408530776059981273201359296196667947332538369630513267420206535145639966890719270300554869701287565365846858739384822534079356717714993456093669713634979310440567858754063141711188331186937514025497763489737450900002824461384593549402987847552409961459038608238084693527392232612847333638304951301731875070327020340368910903498070615350077100999888158932782663110803656615765104070588808255601887054087008588598844382878587446652397906559039503558328831664283270539307619592069691528860875983669686262550944611504702359418299105044646623671965985756692202085555917691003550749586879780470620382711265628321127964554508329996350360443437395576922036432254257680547892479110659645697493536425739997439914005218454450866583684491239805183423567971424645157821221009421062335362345930698703095366216274161592862433529955808601161392859308864771264082538750377078420168532263942461705486418436859453121826977052509686321710819515394556575853716788493565847451896061471631788124277461315134037131010970157154647607895046771431874310589548051112157444891710103209492020425777582221678723426678621019473409571854340556645780483050283087130490752403054369426445248428215502180691793816168332402958562203688860793906072189216854087903964766462921486984024957476639685716908600444566350829754348781542374329486732652176729860738617484853366697268205146205471640343421823119405139571145261637130967846998344357239047952272755627615974740556830678081462630944665680762606748987052715984806992250735219165772262764791770550207485369052093444906963142564624934190938599879382219430063239227547316991258174040659950057304607666840643027846397758772794104670508488530163500038679893696186412352005018595041757650045149554582917303225890988675429291012201131953457422588103705839632360094276823970444437738466800618450188341666585140129900929363152088563563891227567058916552739676259272509317374044952333372015174548310243861898431052584210694702552373027855672091731793451816355256451639175673131792797995637566712911594776577973670331793227899273046019965926300919418699018041920926333271685490825011729080500795983220302154163147743232228376513241019851354300786491978074371646023401577132989893025367393980510990317950977686330093158207049202893649704125503110773226265361774014270861808757419634001508435973075706745109229798375262034257835062503974493777931519691911770930866902571554042692913661213207688552652718613195963881354724951162695090804487682093810915297511308900005307811878221900269075658612517089398532528496557681524931130447390524852886336453162157874085829509627858083729965288991676821316504932458311788099070705625986917729087311699911567163303957191269520163581525109108902519170652881076674810212069794296728894350133440306506359135500050545234547268687681145307988409383322570074053720376749236066306242898117814180828875433520396603331608578244824997071953849461406874010885395031976445801751073636219624031830932646216859813022496927423042570450777944750319669377976744602131275555548434808805878317202033524821620640474998560855636511747905899648166906896682524214959834882391708528832477663200536967396417002096238538101967504149360810370047106022205297541190098595118332659660310502955839156874496690945878943158745411715763348951208270883259511511246797727118515007978558345168077313953106719045882618918635532288484181663576916352504929452700101122084090016787605172223798317067843187002098467447959830914056256960700234183225383517501514793606538718213979019760061739473311575922349239208480758579842845179315497884686632992721670102956716647634215462987509961134387497104068435933919172722374466141889086145187303743230452330562845017857440588049733168955947993804395426000073193031472235368980279863795163534393951140911847056230908112309481053925554733047873850451415770502827559237023359123445528492508349425804053232753579048565278207527881327633227995081675014075250888363542895479027231631441940340961951730824511148046560714567976194706465555358424858861844029618024349727940740620827149382994003983186953572517649464529886124389158814830782412274397470175868010759077868682953506659512243292929975825627781509735661956070937958586932762762731040516837027156057388131892633490751191892099212667357621028376938674255774644422277008088077353436512333059357805326620761910270326394633620476213770810513924615264941205461401609899487900576406117733054576222897179213625427368380886641245238746574644354372938723586724129458885379442714073457610769772184831263159057028822625632254959907870133896977646957033133101152756805993536444740145672182587543982559101548086137727031736717465005906408535158948600590753955731321016898136336555449185918019350730252480890073849961308069546268189397135934947467174266345932159164128158434574957618394992156261038195207502651259538608837235295180964208738233574693166107388210920190231755195084153034308591295930860016635882071864797225825634227084936370169692894050122850820167903128433791633008114423053318409650392086590822925663050045505715119283985087429601571743016637072296347024763388289575718768922402686576633526111230720170295511770541586573959113569802009799669784252495158161497243743709030891716740652286503482350588613354548073281972400619275679944550210684846351777635553099316492807988708615454498551359081021176459315901158599530707576965540779591491591678738083450393589631583833658888476604985954166965010172381032660428150767213211221401347158040661331602040229236827593078324026553218650110887714508586723413415129108113097399557848249735635724060786727329727798828882275918017681617003006573801476705110874304704903010192437010405162714047382653441840248867543920018495154163292618025734710871967198849306265146237524403752910991715380187180434619570657684759571246435372621567233063706480128777357008987364433234201728718033138452920724400353348226170859766772939161328299923693966141590030227134511530952974348991470541556078172747901328728413139309788067716142980463835450707046169961021878375076124479014402159030575417925968523307997934562648525589442292526529464154441166766204254644217051222907747812090997438375523148792447438861453528773106628983891053753469456893052947125381526819235013454115943749939034791849767029814167689400022215968548908818962397967488343163524672369596716812152200979470503822809479731584206707131592562187507871448116148479883737525953840994573455902617658635109130728939955499609874773251412072368317014709469757803234831819009394615229348686934315300292440336040831356306137665265899950067860026296157740825222313074372082369333785055501716664981089159792249069807681851421229798473887946156026205999755299230926392505595199029621005936395671394466124855071051628205245064222096310595650204496013620606610222156398037579416119310859436013401922439444064045710653201003051398007192811359500984369128835896707463262890021267995446245670330760516322924771950845534232146841249381617299894743590031453638020797458500211373295737369282490017116461759337573194341175911174455316364872190273178602631610174157444531613673905810360152801874900737317294238948088999018137707085068310587339088954677666425743668499081939768908462554858158763238538757552074270746250135101246118777899092971472739710433395356725980550099170022272541947965978248793043279851922829602977051149629051809924884897564501690667552800235357992680575663359973597981768024666561416002301318333499597004108483873932217616366354297384509730845249393186941638752263986395943754007642182922845842959173583571789061205086015965398029800025407714352874153225454617369609577215305704749819646381368560028208530928807759958927889307739841442922743443813608712472721800261104014050339472352169757108788407804527634453480510008212145643932502740808247229695347831015444517065496388683190930821676098652611156808475086313390102660887877975904649260656137095356154724160056568542376730796268120997350738653547039207877983914999453557753927491824359913269281429726912121781584563772618150376427112135805527656934197620596898065634251408241944164134594276182061969999043826548596451702286932999129052293057484075907653338999496148295368492581454464642063723773107108440922897530173555690524815724247746248961262011699880432369052336663800605616375025837441269340263941744205061724931395850760381195378391354113835698166645490777401811921285679931513570153024316003891054139760255164075487646063252979737285276135524857240728693726093470070765423745961958961491634383199240186801643432192549377360248033957156470375812269024215003376392191933052351758559282860702764559230904348322783237869484204547292199265552732718570182730621932178825070935670656390057188027196490300459148378760861956494641283919785280246293338247730936902958983646699100099821022345972520296606658647660430660992559778935900102619584718735660644405190247863210641240893008378276669737285773001694829987369443733397344136664944033676009724025133018793223865736510271827179403237281790188482818267053192500018324356254222233663117106768218787620099480015093533738786211369454623732826302350899761822179761565779134254444820837574306150011048492911023748352950878909021056568512079204451710024348787480816946242409099897285465765628510330131782069608247606028814142068721962089565061828475246690804314665335758100245353698544075415050230468495559296647415603773581205671732356282984195315327790654684137820488156965613215788492237068643913418661693401902783616375465386323512721053678895103102727771973831098331916633641893705809959790420901270716018208815160099075016326032739917280119622301709631700089440866343734531904433634851139690665654295483261817638934479445866964572438828343733540854407690173246829001196531801687591306539579098359894640995622504131489725643015857590578473312227114556014259131683049462469838537053454682074706978657048504347480910887919147325661824346207098489300320223270439826900718739855324880160485149647146762798585548367311591120381791757476782800306581359935695071035748578086732250522215030101396940222590524173364172515157966327219849527504194746631667090921971777220127620407106895227922782437457256762139729645559493055738244830554208175130212751664462254547718644311633003483641312899941324768745121991831882122702430754940817256921654382168505001325336355264665881773863361027065297928929864259792439845184343142640570928939174073749067378898256705865458311835906759486067719122778326108657139910338017470730368407660340894486547990737808283723087074725235155601244974100490310566402798741181121347978911133369333702987378042167619198425773938571832524208143040375507281482944258820705420062825209299550936597489496148652512844245470169403314456852519294301262542916124625847351509011098690632681939953846578672535609957936441984511383117617953680069572045276124864308869818508881149531855114987384678273898921572857953888911972917041507827569714043805226751109420178580409208077344349142140304625555705922946523320647804504943488060398081612906066391808006693244097109076844793495195233501312044737282645584700314328096812630391650763252394544373243592374513364309078648030781042794517494275030240573350510376093646544129249314789357117133390732945702106352105516168362777253879865743901961171199422002209031960389923228940362955209373435045466898251462313907476205117752303151607615442811456566684935607470900002023740929287855909093019261556975334823208975428549136749008489175832594597992566297381171573351833388858452583152941476771040513619915357575203235842095711042444750075294890644384529678746667725289474872536007831414519973743174843562736989176706002294095600565047716281715008000200630319396106133051851686567341358215353178082659049048277694460878027438455967179637504999066787737988867310840886885424145056330706624871274450069631603035831378146790733704772098190597803545027850282611190846213379515517482647841395579429192028621972994835598473466605618620181075003910822775072724416743103184016229917815088205832903174750310513562040733361255701423519717667348635619971072553555631104817414119447383059568667124799937394396898367595215598048030733997279838454760907004671857496473858506483028743843773554113717129103535143511226701566409811175761762359004607463720632401742854376008806220155853135703989555644750814950352359788508628925013435036573714206315592428419183395899080227221662310604165109161825495520881094703736411841077558581409268495017473566262630328948140621960248688578555835945706829191361372051109944547997032096323696882859869268154005123778846609599564109251924792227253907653023112098536405242719690856099686826404085341395653857836512175328817696929153808021732341052585357537766900354821064583025249482184898393175704895747148949346230857436685903228018106495326775323039135364986583234064544809842152085180617971984338255917363270705183711303555045514280354840104416524130000784895984770217449903961740043631831758740094199344405109630969275480967385680778238437737715928260753270946767241625812317569835771396558710102764224051762603160071198400077409096280743612996395127866672990840434279784249541049016314111499579447292253056964817264319228767934954483245635155846707938261361267065635823351742674798367092453141045495078707973794297556359196302891605706015468412264006520903671075527494004918042164314568759492420738097482991683440092303410265586361714925498476486103130151837287917272180099271613318409326960563427983005293843210000880357591130771833216266218419864037385123216864198523704443428914298035896205158913196970611611519955526396357265840775672641072054566145549334188322993100669217914244971195148752521312041044995711994227930795256973787490294768375456515289754542023584650140976163106519398651013671888564490285476228905100295088789102878730354770247539888288349614425546931442897912200063856836270718990604013870020077630657956059819627950191485608610345866607285210089603521723787436653640305766071605764288864718043667014941215718700211059522584021558177355393574655930477870084650826659649912617501654134939356592617953990733274477342411194587802205834423718914450914113850401832681054152798650796468619359882086643357755417776131156747210470072589309391442945823004018640335708473347241609568357859296898120673351794416351248918996056181730713223687584584778899113169291141209380292753128015124400339090819438587534253511595581415404573897547606260577109137876035442253688005539369777767319053284005861006667697345202729453066310017781542848735443104418496286316813477616989526286538402198042552321083555437375249979885311332489434537772554364113777586511052687596583418131626417488085077541439866665469308316446893953803383973070049132699438705970211640999805106558314805911376551791312205339070992792549924884641358533372562232620195229623578742011722309611346619799804655088093163452688242013332829116124515917893795276271919934392068868516410747100965625654116520528436937837029509626335485010703933167492369343245019427577508390157714675395756978451358489615235923062454267087438403871754385323692115637036708980515907712693938829525947650989216287977317256570321352230438118720774133292227154081987365365539088410364898434224240058272573526608078246312090906877994487529520877747012221536305474937952037542738789751515124856728365610542715740050050559057323747799828904724559266484297904567855349523998989271229625791036871961939059129311443622720069900769218485987138763405239198521476189593982801665816298128810174020643171234807026645563396873162883787759268720302048858863299187952870792984040539682437102129416243581161428077746653365283355780013527371491979819699634011390613886675790581513916857779092384600365759401312340427710265980414461040902982409542560308995310032070554217689430753523130256765777011586964999758184474626059878906951952628354971040919318127539378079338459625918778152194728652162895676679372404791380526571556446361850107443653169734401647327806520469908682989718182440522571890754905645998840682759965791763582578103777731536277630818481913786737418742617313821623580313980724910172803832769027119956927350698685835850523264584498902142750062702724415823803702996740368923576903646492117584392984395564482506481684765255542384908390093466132303791278734784128279090217936837241015856582614333956363114350718699663446671123420912843093036717313576328752616679053265645693991827193955748961530666158200478770681367928321198087785618488373833384976151095395552759573826278732061233137599701952884435642433530332220114254587372180087746291601830089456042216956354534093442369031698186945850553319253765945397157567300475052777040699585545825126134971004762172072386032933986984517426830531868801225064653369019531278891438898475853594593076221049697175176771159073460620308032986784452225441404768728555078201006952894458107359798468121798860334157148716578612324820640711047540045635765271198606628315858321455708211196939167098282328863010417023755477161915702890288894065188457102959555969159209535298807877663405331343152247628157188094729906340798886070457876081771801619358976655602058109010246247697857743199450215108665327819686979856309675953747374655894450848569137329401937889850746527451591974456443410298865832599508360594421662504275168352116474162984012828010678220978011441633265667328732526743173161852439627314131729905277032844154982106450102694515500809385501652734717195418244231220050655875641549464582590971520136615689302052854510331211718444233228835034578798653683750229409413226758203153105260506098011325663283672037589897487368452445073592663105415897567815498476215552135693722498642635225388037943160528177297606238983322876086572496825499663770194186521949740419533705019278322154257245606108653342394534051527327206686762698742102101079160220223703330190050880332095465675070280572914545250876403051510677573082093782048947445688308615809093354536532320832602668928635479595422114078425345043398187273952080485466783509038549341578322809980081509120025077249407431174472648046739652048391432390974919920395628552049215961350386646727248804814581273941669045364430372796883542548893915179137477314674770758351241852063384049373731870058392595332135120945812456047459088983420862672642720908522456130253264125249665776863241513529602168430150632750333262994519331787441649467971588774765510583605661963892699855468650680254752889024062456875380993519313700591099364302004056099291329058543131487836026794109159233517003481311235565288181169572500989045446530026044866611793322253647267539077706885240915471097652340008230094033648097319962061098925092838830074336021750580556640979440589880260429012597962826013864723332318380019819181015966247890264003090799646296163795201529299216933626846172719029140007733606925711689112595044324126779507763194283082071691015834082218434817400849448978580231455212780304770524651717141502942768235575692120770501960150411563258687632824935386431101448812791517591962000544702254357412530492364947022313705378443325266880334285569701300531634139137450405179196982136381952078038810461142263324245580705933369876364637427310106424778186967629965457356714715306721137629554565059394991192113924205422477972342363245959905725867492806360205063715427575534938353012455153286923840756808337420349189690088518163023818055769491629016831620113875952452614150664964380779868198475707991078176170268714617015037389197893877137295116179172873427817159423286586129375990732486810419922688488750527629252236809388748485229663279044975006968614135424626833484226174188668935466888574021129811584960439005655178268792483793278868935461780830715661919278224138381198055621778496415935149098568799285598790901918957743424310574428517018427687368880583827011522023187027641332360797368319325373631658836265913107184111659472430055378684807225342280535814188585753444797661601195018473436931206212909368993988633058456407045802704930522746421284407829213752354357198496442901638721944362062839730298406641840455345937341218179409748124151969560525647072856548807214164795548889506061747084231369963791535834285236273900468027291995633369802514004573564209595906000706357053773374528004988735259188347614571785301249941505270070115321062051496697546609849603255993775252949847591889551124937009667061705564897478479905332868810925600809671442472947700722089681634746679092521412734166933173187714989313636726038633180095785412869532395859070891596744216633354015381365930050848819338343554041030620774404682237271552004381125778778826770023947403048739970419340460835706275062022468205945097375503309995165267350188270012741737195535298951280274705988557515657461556101378564502647606362173551221806296423185327097807898508967214749493306975599700161396538374723859171200282095987182904549118143511855490308670097873444382142839558621743120011977192598478418076983074884122559445591188091507884447950151215464686730248478847962730509602026648172331728476963843135786579376200753948879955957615178489192570129149025237019655625268789508393478657992478314748813459603741478895008692352373795093681200050066626116849751333819860278609266209815077745770942860972740802507611813910294177936813101767998355216970139974465509178213614862123544793913064244334995597017756609300675357431789861598399494128949134817386270225836388667701096667233763074076020111282614355495393738946847458609301346839479492874362247055850469740992163619723132047338503142034687551654035273517334117384840022614989625476014602511320371087890342733231571200637315089062821989466220651475482894917071684140337128726692600281113803239962344534708085572112830836378084181199105203269982019215914435038800499382176848669179013269660718116236593982811005824600781937757871894613095261704270264816479759457626746795093008160999460041744264971130879090961727329893759479987857268692042037455803342488780324814473617749483679255526425222153651639709914582929890520564117762739874419128031225990733781032816247559712508161664501999228618602889495737008591109197679305299878906424965440250942894591769504323313963318589075897838103441235455037171344131237577189267880628137271627250117507489007125945293746538818567848549050383178210031377772342761137350364603211689920990122600154887391098154601943022971820023435860883237700910302676001528580799404618521743463205722612752560298082672489750518029936934594829289388579207242470926944532904353290524451404172063010122425979240495543902500923428691653287885214494277824061053295115425091812885829821975534119830944298356493818255412278143864673931151540579504469021496714942067873581887470745632056006769363026118504473191103594612599351331664934662979310822579267567860479243390148839513153211592947812991184999451643165346330459680730683145825458892311383225647308841295733502905033291381499661559032801478231580569987646587740889726456662363457071910939375446307500558006537726053060157097408531415901052221855172992970966475614673211202254579312364709364433532206183728215024139084770576281235370159083878592253210928061364963997184874042464548855306511770948479873119950670220370299322741656889607122779832840212667595494319862260641678338440730497763013123889314996562145284588326078856191464171266695464207168641950996241830422368926938433114558508136804542618968390756197447317483464740062478344239223506758230807450491575968601558954714885520394959890334297449423560802265437567821455708126118514711816889326658181253385534741462452577256091177715485188072124862947830515803707596530364955600038018407000744651138881916970947239071214164696962116989708246756165755166853339442396372049409073710840155417881859349948105069308930796845320488252811492303649019823415580797127159718898286343032913543045091626512511865603665752531814474063683206793403992086093121535077570293117240257686555753666536722254231583492525387738542039812190686361961262360555711807730202120258257235116239331475824000013547347444579899393725506133514491786277954125585608858315830735353166993533340510533954679124616331314480457275428361175995967145223588781371368322997103428490640116663689331867632054863856799845562086403788296029126110949687248961997123246196491081346245821691129025576180480845953220745923173878700800628991674507223628947697350386152209253799717858509488612484729394623823707743413920267717943572596176096841976106626736204819377733719702954568550439925513573583244481252398631099003226027337147770338907895936805989888481728498918823426754738062999120421721632746054905331871259398307690874665319825787851555308189028141071583103246138761920458195571693356270286406965682371925984797100409908599648670793337083222219689050162578967549641818502312567597609015943188244017028631585872511320227732954805025856715970652576024311671980892798861357084959894236165646835943916607979960440535795430389764875946613203925843749752652498172829294991686110876414033640232476798625062255773930565126445930847996969257586962158974021565563478059716868376308441339450757756715360346642888379279482559320990385507494718404928622710100453099041523208326923277983316055344008167013769463329774837724621001003238972274839701713284834352968962916062818663880999498565956676646640937975425660082892901082329097415967437633735880250044001921939614333914936937015928198334709252440270332208877103909830673731328940937734126697815671912655649410204161200938976435760918269206846573103029769966511114346970105511822142488966483517601942122334654221521236300800516083542599879235236599756685171858522515575741724486914073705696074438983220153292637379165069678268693505321384950264724369014892302489322696280781403833628443211666477441486009119243130409353470355535495547707507921294892234654624502684672780534613601089154568462471496551088654747870417066117639004149859395560235326510247093676022681216397956881782499722930555184626888233181628864904566447621436099169156617530692612068740470275558500670289160775833202904580419370245899795750430487220856706861140288743056553690563083449998167041789900897635454186692987552575546727563913861083646934247138395690507171752387198046244989024874426223819803525482780724947328782657585133911379880178087523176491519727336274857640980942722415968778487497780882873322595808146268007655690682618938285510350653503330413198652142967172765569919544651582142799560108551129204489449141087516873028209036203011421655740937159023888603810037471653023532935121812342865874787597279390491683422149355347966822959249589740600599004834459335394145203167382585541728403344388139779923514020414465728693177408183173893925075040019807382500043103831610372828013133804652702909036160053677940442915618208242662762438395935824385797656855397542466751655587226913907579620392092448141777336423231512859825839938470934830119836329126460149189372165547782953662127826798327710996298915408199928129225330743896591222830612434341211733988687011922131620339260580635973483773091263485784464027411119444061019271867295379640832024142416187268754104401189883688648480156711750291566982495716680092133003995071426868243172369186271916827530697844782693849374040099336763006997167206435905605783646972032806061919899952258796284905986656726633381267751138078905023500251089135629909096643142101500436395894852115356256415180993593852066154195532519921945352808164259966643896547624088821668258359542842937810430712885559427786001739615292208195268316870016669792810465210955558019633415074827101061938662318901781146879977544516649823578268431372956305035386481710227400814837405289384765454114989488783662743361010812876278148345056497299516366868165228251093734525648502320673535946012206830241990919196748954848912597340344106355745122843294454349956243677135774741551698992898080446070622583355427762732077648386338658850582997127084131386548305737095696860392368427771118641525293650385362633874589306166998362685749095041534127011989081809792867496255965819199978942167786267554900332096643549333515202457644865069527718659565679047272245654219938158818421455000748291413150130047864926322603448505969575326381461592177405494982680057733350196534859553462560798953233134587094315467130689730382555264990307934290823876835484331976534818150916933463603560049257909082019365115552326761950744971776555163567526801347382757403452120620477008793194826425840857374024220206264080081607355809425238869031855735885918363052849963570365176493726927850522859907189098939910557261764434527391595120448259629943142796841199695162883056861694574133391561054504027599040328120445980131481176260042346506930129760264781032379985344790448766874740385521441488610401707771713305951417706358235996201327827268035757817784798431145662892179625100816446747679639466903962377772967326119787245492278871979391303782041282346309656713225699773086250330035702940676827008434898122277997386910760687803805698766800872864290857167057096753943005854400217553884017395599537011787023629623104672665594136194491230175544096491848993149168297050456075827505529215302745007454652999426391656450740199287128211534823435117655473072548945766685991188384849854785015497652615656935724222672248479255004340252633910680528258405483243015052534071459121857859915262897538683366628234585643458678821217475343315976449326150643989275355514479234188506450343357157999970256501801984702518404392466713806572100148741185102211715397776104878025142808505564568857706790321493715124238932860743428789334416483276147157726389746386447977206441739878292524951083858421648506666222588087085904423092047290087322009401089050921216861398434093424957556369706873073674044364474597251423941622714278141503261996904341121802717140057339041630193036278767417669783298526424916237704762589196361147842361557137222584069396312437968760984748967343056595765358746414264111846113349081245978218352068396531525108538667482707573861157445969408920018440089324548657421540798176459816412997722982004418900357728900904848904392244589057902234842902279765077370418694127470451415019297355243005757130348426030761800261110040141343725185837004247741862476530959286480296482520357413125627390827253809008159782594081075858671138944590025202701808011079024965484309747488659415981751526143470159552812911129429710548343689462722124334590806362471535898103444960614048664687002773066413304183709107932152766665821625192927003788133223175975658342622984369325473049854913544664785464307477536819490462716609190206318180728791405775334007872486168524522952707530608943515879395385284362217912081118309738349171241237442076548563762741031932319348558927374980594523478380921958204811486952028459557286007182753274782734729171650250284561942105383175454246306904822762186524444236363109533726252318283708721716383466809583309018668057013487417913853951329252505575408230821024674650031188600965984558191766753540572342337720771776486905191567581077360196169402484522066789414576809794412509944703697990030004235057148860164355907351299386722968539886554694362279457200849927190622666925509604871666417461602167512153101042578421531010529643577198025066225965986405534805389180865844626052108452278893583739342533683873621641008670993824268500078964920678461791406772359369461926868564507362644080486783909653882347544073046635812191539652788321832361390085217997354835293880336752913044919764634570997908747440579065250928644073866752452284042491835218674935253882633151114239026147426814088754944977624390206146538960653589881645027236222383499999635449927671472256204136411030901333144526486642795423113867139344696620211373477792257104871770114853106632238349662579808076943018781499123998008989285128684797440207474406786141528046088136176824760453113526975107883170412205852777345410817221356227273573362965140271461176401145551013889587597246807300303519571880545889543313715422701048459645948710304317829258021763239417655217592523207971422952305726656307019757568324718344921556116495419802694873585187816327498060923558716697879110852808912584355847064412921363537508573032707313240593833365909557254000273518878542365555907757431200559468038616877914525654653150300783101079872099212707056282863553642917996442770868141613852863740042039504706225324425239367566139216019938940861903095982188826490263990344235538240954226818807342015198709960057054659215118528361616193557451568867547809195563281941605700234309347525270500668426908929574663982251251532753178356676394237916764039095503514583133549395049028809479388538852819074867022161688185135527753567257849987157304433649663660973852596612364341315267324103692877012559870622918977774999631274672993831824414128736902676325513092847876390701590836020461663704025434260005992900447969210597466021995467496037933954303634958117500506794994132210043917078290881243049646919864567484369447151316065923226663834516494169655272615739520305076497224865479757734121604967023612377930959450979474022420161607628040965136840502971111843369961337350358102994461077245806133926572181474213051564737141067867961639656211915591975626374135893112948629032325098270848259072216888803564963771320333332487841313666704081369160894625510736703990165879181310188533983682969713061701203932180758013534816773201888859186958551904835195673561746910566596200067282923693151168757001517061309661158622963912092910355101322095703911861162927688209845134179986748423150144425996200726729943231459145103313848039925428001025378678668041441099299357629642484413111616157127441265290061192173107840827694389487305891015477386668777066721551004915791604235023989092214351088888028292833969378816937011214259129377919373499933605946225437742011642577161076881414185291477452234031459303281483270356355198521538490370029983855005145868999259582595199605225895446428686713877027786048944825714627576252934403118555895176372984731960540832110284410660812958342786296393963423643332467105477481717045981431572924226319043008173247878121556409997938159845316514790781569410725463945700623913338306077951187680888599051863001049402042384621254915976118417136097122613977390292408767467713772871158326565085910297150907492589801520761988783141409475937013537341376064634793214961374316093942613310115889130036428712879042113092995716239654774237703424983306644216069737583248200974729590330373679977356205567466785524178310797946269232342910508325656539459919029530292409974548909934106825087849031673563261564277763704716557322485428131153507761204571870149881051840860437437250376905102929755697924529699286612860440537586358282195054642895784431333675367274416648200788340368813655863507301924872877401619347624463327711453750497292088889102437620949950107953025847412004287601460209687290146612817418749193773107202771058375773368142722638239344298559991027661304001460521176880361078675217746563747787888302957460149792366108368720477508482926055671770459298234771912949620134365736008033951599049963372216913863460204329517875161863506015266178113144509929667900802504478763820331030132517041845482026075416305909770868701653771959374261940748098767306277809140360292122055638582089767260135704694044859772652458752746594134499527331979981405187199724559711381470829183577991893484009803818479519481591267202487583195030471112949991996334820661838306836603701439286511315350685248072592488390278205136673647781418742214568783587649464044405096036845611110330714119311334713444022069212075489249925439650618463405872573257068135232377385203601921694824247672756397740680057219670582601240546554699391196036333976452666370097851633160132173450476954843852298235224073109209417560434347032709922916240211886527195388085006107528952930870884214988362774920687307711347706702455858396295833895445365106503882493620566351095078358438169402646928698868891402910890984160860456034373851999588086483010687572985150398625314029059521510603072412192912091043971524915712098963781584692256216924834856380459958173466182429663078351244391454772248382516666825223117866514955587783449920651566568950031047446943243697096452720611501220688389375449891750496219262169402088365350172946413415182258422113188158438039946906153363993751652977800858081007989177553049113097213771737890683871513132965828772696165048299618504632993337913817389416945724789013286592566370171683456129065043004432290347630274952360405700557015753510280838220550595607041104089221023931263014617519868359515974965094594905455314575223761499856093981301151288070187200211249686726851734873167817949199661005005014512367323598936483458687464128191479660617310651186428052990098961840367456134230860545568375561491695060779356363844581208954957758826856032705267202456152928707327782890820907618044587003990987737974482012139665470225126536958512113729569386598592331848768372973654838816042581754781110255261240954360740563002727749809423437219807629888571086571059091411731878599802075870402843489386644487900143467727691431625367362442343732033785392205534314577485236450355955802691322536039284518535082907449551866217904541436343875757540326996235885420318033064513597234269163659020485767851174279957360089551508235316316987095046251387514651033724858130801378103964860094101857050032029947259218381948683258263009339516947644333487908177091499374173547123540484184600789899925411497571647275152153728616773095081752428976539966343725633775832450653225129785608377018247334508094970933582673206804542283003875099868185981460798648499434420615293528944154992577170956700785118600639263424508833892410592257671141329852575716769934774194787553091602189226470950711731073954834471941298264090246531235285935943263072918963889685839091518583021731216207623019947868041482899203450950479540181578651310314003928962421356992032625825540022673145377097309318103211230088000051615469522473018363722156331829974689156961534030234808179773786248631552658824118958917356874964747708778394744562745957611266431708077930662113250570161713290527288728651650387142894201772466741909157249919188392262352171439354804256041893217428730379279731475128694426742658551832942466365927452828180895753626444300765858331685036326862861943396358765813234682954543641800983562874329195078409617650150246080510573329581468992463617184071416809280430413247081230586712084161596467339247683272126571277558874841763857200798622230925228020261869129891356465139201634318789524282111766014640366447880310455646962175965688952609487889115850910401730401000677714181305360010420092932515805922316331582627723726497600049785304565669743996929862033255339186541339516869379924918785105128561717224088146086456004394356529396943380408278925761638711262793433003288429588914615829976446346478340497889464761645536135701133747103898779741550119397151454044425379826685300582309583127370514170002765054084347507223669986490451190548935075264800938225767903042650866438280450567925419966869012145474227060379807879623857348959611211812094488426453437309132212544094328162624413558539370650636885216532928207658071929977311284201948262422148130076990507575433930644602011420116502991498611378936090212763365440207728039753183122852682647966603510684209364830868022926931351692226444617097098925988201577393099030944030647984935864869010062312339723176418763372759123137556692091251068427189395218206295815242108123289294635168833599666780404255317565571534604903209249693292984853493756121204898360424956695195310996649451032813717669238692544246789753150442473399338698523174172718594555978576456989776936653214148487780684162186330480699741347131073729141013342536026852709888817810606304677793241526019209520206790493353925552521126860400732910113416015877879792452127303093595791478810075942425992306671490315124837692898146937716348569396162083858407699006468525493047167420788829155617340535476553867193487158452368308883030861395335267486451975578963604910187681448434812280706619262072276345638286377942960324220465128542818630609026710205448686989928921910306858951324181678157997120775483115286744575531062539205459229547675307484616044726475243902069362340162907774016087484726029797781638122818907932699867061682193931874891514680331732121593456948593505856719452625293982760703423811681149412285096241632496639121703166027669936575119358880976223998233129490577930090378788550696780684882038932459345528694769383226111990108098786097945956570778938287072049883453036523354488509806299506738872821537634774091909327864553151796255912142060330408220341129089490158578753239471815298961203714650531035425403413744105530298685682865951237276780508205907363930243535131512095186217295623967542129472374427526860370023625476694081422879265489307366862192989806555307259512363060214292668908666927023870309896695169649025303030741125842621345794944183967071174659722422458501181800387441392610533867299844261350447257981141353097045852229286113388417164310309397758636060839046029526879921769451164690059089341479862923089780107801920108777223908053612163653085319244101298886626277831027765388268109587710016992502696844012574534113079081268339457353062415292957907596364660886923092856837276265569624479258663266452494392917136414862577310358208323445822629128368807290578442521192029673380381353145875195265150855487784641671172357976669986012789811045510457620709785734602933277435605588627626032444608032103050834634387556716578041620091679879155466469785218760505109100326185115193828619323955261563406232626447376583770961393694274732959132237537159397205993164661161488559309022863283449254678335311355416565608950111701957166506666012579934076092521935895405389903557896615290594580663884722999718212059349430486346679839363889034451757173588559655634558753881212126602585985754273448810388937008821568015673465078879505166802470267471077453857512367171264440870493500686917899643654090012552505303903374879252360983770773884644868195766464485791975696107748108317212159136593263543940660851048399701573816321181939078148856619005717573368572346868312986264015862351362700450699954445766009586833239013729425891155400456124070720756797988722475807392675285184836318061941382215595452606445773797277341246567177467819079372089274883560268417411141556426042151376968335401000449133110185659179832151682629427913491345532000348096112074592610612071610536814226637557308572878019758637086534322052135354185909908771666068355648684400961113675661700365906310629347885536978936513537176686593862056214188372131642653405049457011222338349825963590286689663575663630810483677767876503811089236277479363009434981393473849065742229279631466026206158179078107302427889753751885487888571781395603126629295889422695650869918203100369219359342629699723755993698136134435482905197517600206906465360647051398704521699011476250434878078345924189677829407893888629090121774346632971314857571394064689851491528348899280174372138295198623820432772641682905479397020413410530750749040900622628305318256162763517195241573848433139323600160631791716572298423602591273071584294847245291073105514938932964282091255787369102312828420279065618636346218918440026804816246109181493480572560021761023451125117414344424383358088376698619167427340964579338518000181215686148525999300414614427977557039783676533249211207706942839579915072237947614693513275900075875618587634183099458580450893359398799198008359424860166388224836305613211218605931170454576096107361210245654663282830173812877366749475114472534112072721173449110743629297217617395727601004262005228214378529523275788748447617667007607613916973665058937829348964935304704500497919774855200818427283562742239556882151278349208960250517677301805496042978986790432430668141245360164320060276952328094008420196532891313954761846009720352249858354406181895672040640556005665502586046555858627174464659239198445916187862199333779650909827502583741533399330033205282004004401385365766812217163377729444990991646249968913486759273052103356587867982275706664217855687655374462235333481505021963585347317890149702136538453484693901087937543002133210747033015046759928605528137373370574792245005732454561290030194912897163723522007557327842195820265929048533319984329596588030106907618103090077460670997704461824933156910264370089336790449730360056018264396321225799463668552101235672179552844124965524683781875909343965833061978987957390330536064408634372054379533510956877464430848287171067809017733249316431008810317874637330139158503860028386056194514531434342757582885344315270608749335171527544605444064659159259822116385201931215488449023970606148961537011623658205940359766124460380951373340317235076764786758488739259554221816673465551363331619854393699491651362801493911215842714594656903534305201462134722582750506820118493172532328540658810835906730871427426742016162570262599627749858555861193686086670553567851300042316296640107279818644040345323513559208795679293087781458923924348869108329197820185466750886404150929865024986573014361078842909588396290566270941803173034639827969204525936552363870155910121110724771996179371516650377015169070862940579274401687771781362217563936160466965498881510963346778101072040020774274007054674398410581095095493809757213742029992745409441269124948915205617894869506179847927320805484313629849201713966779062357879649834695680888313091931025649645393438690473188828217157101884103066690190424398146314071880090608552122412267439477256799555691503480069010301026517094723462450140532129213445370779371539252199200311891029105150150037948934711211153309009774402283060269171537914434491917228518999277933817774314334008028174251001516541224298100066897174496841138039040947337689633364541301500424215457258929407327367614053013888549382741996007848755570796414364110991197731724732040854064744392299327120957153466144470536638201016424795201592130549150908728612143678223306658163974711374823686470743156089771222267631868173364305708540369883589985996104827468045457145702082944892556803009783214307311761086254963676201236093242454027507173469474438982273114791468227065091687280843184647176252951880659506659438882590637320838666533467544389078447914646451436494274381844262956187368131315835376126292321836219843379951844163105870209924787283023164955056686469455431103033137033207405138594414396689158411659523987158875963919967564711581510508635831121224531071179489903883253701881087687990156869255576318765930755433959104132798972586308278378326907651364859935052042972704010395991435389346439158492940611592175352599581082450163736561462782870295925863755516195161582684249877294227354707882799819459181914371336770050906602168406826690357270665502037325978871800046681536564409816833801986739815642135500233178479492568605312592000380901724304631888428074493595535237451142099190616050069255522548387425687133863279626140818041096854647577129150732847324391237138693014772995037793211851404793685205100940037324075021052409149280955202503870227279485992926313416588747499845708669690747060187699309908723585237280219009344303954816791219957770137802195175332497087553918975471812470769261204162438724295348043950055139794670468916327754681994309210382733450710285401843371916851195552930170457813528445006835740547366607300459571434778997979562454372928375437532579527229427502327971346414792325277525618332943832720405886181802671425182639888999644595529704840967923370352902283033761125224351551261923151248403904801194923665448595850448724932466748633523490562437515914511281487494650973480455196735377502702440409763676201893479013248024336448850045030309107516792692115185020995446244654739598753627562766446014470291768369627933057618731948483809418795699767941159895633481432664579583468167567166889199739639907074849182913769121129762560808710378143992645077029180889891631323450329378584442057140888218835960917194209725204321458866972691316399842068178907258868933173784222814790984495106426107240670424577291099512576979364110077787352185779797611587101346359141333077821311783792626946608911584148106303528065921817429767450220418356916611359384763771188524429706553819507462191143974786094309100990572070255185177783255680946584238433524253066486483139643260321352422373112609942773819113960545239281564791489777690444806630437479539653178724254311697770724715592838148557405861286493371965287821975953891215644525336827437864684798031715978075374777972574105459325626734129115423671512008637022085937510634465830512040337217772121728448030141500995522106271605702130502552165685041442060603998204853336117616962116610230910779561137201290448413918314896572993062137038374047957816552566202738374038236826397145067303127357632547490711577720559149065101945813235907299295878210973259507211759506044668804478477200875870401888134882880455685978186026652744292511355985540135520013686903426831446816418392304121057074683479825515595560214904914141609175042488573317025822989720116011802784711195341281005656280514514088614032019934077124331426785271677387772871788314484034765160039128967958519961325268924627028920320189200867807245190885865847753435640778176436683028503030685205818342949384845432434219903022030618112970249158463605623575932719535554750125105696572302362532265162359809109969216212806586675530585059195943183831612351639986125470962911334662737804916842038926857178581487875240649553783702845523874826439846226757573907221997523986273925403598631144408610000529540472336699338994715414096925092283886179811967798070203016140311958702968540982047120826770059926537647570892213992746896211254945163174296211744634239155113872087700430874399480525813206155853437693781456211501114431207828326364219936438411015467715380353752547840949902552989876375191680748316347518015877497521042801870671375133374740954623513855810699519438052913979302138646466175821662848068560354364487428689998014854952135456871997526267905107636091344934431722324757892311749602771459436067473465864609809589041832511827986858191234517286083132519783767030655586260682109975229563077330345394914967235447991070719539785158085976070775626614675104899323209804287457613584607069801354923753576048660693726619335454506442739297605567978620393965288935529000542837716634929099066625532200117894889503554345439893162893053059887330932703854909536373898242583015649716325726863058304558270928352898791768838454223733635692496336804648274319433945747724527267623129409376844526445980189731137504570642949385302649304931823484684125076222021718702174655267677827620485160050364712299244960259944064786781579030404602017434492450857408981769747365309534937534354981829626839315386601708927617903276827331209121006322623066286960491691571905587337124058253901100046689378019232433584648631333008020613848927527306877424605983264205822086437236009440886409605411563415314948018479628161706192389543676722828301572982997477406727691827174490474667939936781194355994368177119689794250220438734149064690436713248457891779952862110178163803915092612677569959116766952453628249575041578063242774899307807655197503690876139606851539944494313672622910051248882766871783067907843150040415739736422650056067055461466792036627025087609176320507198028692982784069227220081723669687648065303093576440168617402630959320064866127292340787408941477154291356327339319146105095799557950962817998715716865633846385923896569353429976145697803818743147783038785674023199191823189479615923909139745035492330584439934903873543312332712486865233241588235339977507803621133614671399117714611593548512180261202400414906502366542745661251332463473235433011719037041726133317604796860677094119394814316275692419117917985416030973147217228066256537582161751788726834842524246483481423314836564613126739916410615038737399484131420664498054203200143222018805743747740468220570572513140501283588631009454785803080759404441107898079074907924897632320343714810660667375190400081601681153635782273634436868257286370198477279494511138568220891550981325739334209875840119738565267106799884928183858615122058746601759629067894180253990979503477322583940933419849854234640156046344718609777324212032291095438915847923958016508949031776357472189257903197633576430335696650857073635344073842886378103920817049539840451895207363835709816970857429702109172671215992810054638211949862763778411635649151166617717427926184567070901984849378644090069797347398977592263231932726898788053453874668563471235017556304818804597819668649086983626595633802764200462613668786118931604642179736392113234839832245017732528222528638544854058336538885560300878271989534886362970364181349957740693048325927193448420791555403735266174779366400443036970456457869993081751104158404300801727362253408850327520191441274178293606813134054963140660129390689480657526994261034541114089284119061385286107581784623903515799531065625910085297120822394134451148247764671486501741122900997751952713835733091616572237787883440915936577633225656485534329425775980710771050371579546038652496907305668816510989951712548824010725686513016726169266042872211221835303958569305536509900245077521166151734850203178949951882363245510355406720667621409974787407753089390964575641786608491988347628461335812581884743470194996231628938235605249577605611722972259448624466479841953673179223754968731509245470377521908329632710946665700675903306954689185604615610490850982151115091321604412838418772334739628280470456889945150450813335932818417215342604375429764670913297539707335095634759000397917278983242335826260724596130012426525919044614060410106409186778186287000075736939266470166248223684765993506473228955615856368844682079657846758017033903869114933861341006667592783824199793722431069275663121591349432542885394704842048988750344588016829456958423372667952608759115704729516691564212319309198107707607357121501459695071599377511690905331319293205222291833071559143051836897429114216696154527281503973812506713082198860713776312679190359929170342439178570069633840007910705215732833076744877472014186747086877519411033047170967547884154013123726732439763609970577785834954417327871889445449395333831412419149841938785859392978984224646103464876374945535904668050706660797542725064311345797659198048448923233988868649819634894330381253729469301993909773340289263504085488521527546301347277292936252980693021976400850757113053390593587629932819712788484834669870323397511816802363578610400620558270101699168966479659276525810752696338168597707805190528907937387188019112241692318450085216361940455151494123151874130267977815058511080373155634347712312826810614254248070684895926066027632008511195977783260772069801341094226470079687026711814069745962797873777536528876911025490495284513944677347809697220012708716957158155827106054733077378479192059206660234654137078560106669621948570248078876349215208522393883511247441294433469333960161715482035333435177941025763208767979277661223655000432498172766314343282555053500457606832815013585512767347537030206921160948926729997229380852772859752056900565121324526377008896590834501560610336970913092341374622360007114396781541678826429666745746287447643448596520054544382228422773973618468888738607039980364688254715124786382791898252310184834646165293771201090113930299865489234409036884625062091307228835554775940047311892134719211804143814608129494734500614863729232546510538643836666772288682819458705881200514364737938453564495785144530266103689982621881735328879350533835901844698271428092940271900417860858886274984161455685109326800458855778189263560927114273553072959715716293199714191506822849329910816071739251081805060439039916380134701536343543103831242284416664793825413163040814734783019143529913118507664185656530697753708326037534800368478493603741578909861874803669916804471791503233891389928488027533107085390855716527781467338932992070384778160716336370829885742747344977400259948897219950919362480221928825968407867623445971157435658668559187862163058477723421862042181439234295327319732319280625634830703341480768258828007201757423471736363642713692589268438300446601379454608605357749815863153821455855472108685060836874386926639240456144672778045681388516395223582272200607061421597166113152859184894075408814920580685058750135473151935751049159728401637690311027576047912842688535641869668826132621509943184810089978328173380338227318565033007377644280832544550039703671408171896516226920178536723811011244185548442973247776514122744953565728972290834386081933968357679353429715806070917849574890493969310169444404785197060147052440118351827899076952760856611394889769089484263170784066188183344691564175497387294355875053040327890158105166879114182272927166097923039447840733495795529335741801606090803584148480508616502996234712701745800122354064985557568896970366847817713814685208168981405353864658057592443056335499911530779723872117116037829745548014604336131505422187728186545740303699176028775740091007366846083707491112198153274402684776413228022408413120086806855278734643719319192261206138445366475316144123724100092144976853605216499111122942692358045617727760881313402529615378037849774356845921096505336560971583071453685998158655662510673015086566161842828983554437778776982885139544459598679802919553385705026364429626343415802766662318751275414070396874054404188548651406005531937301002895672663886420819999990898908492169221012447261996530234588432411174507446993813933027441440050010017945829971426190436591492392331307410248292300457460563107262223293733202914099762487142000343357006414168276501356411386660898766181749016910951152337246215619238727730862640814767585844162218644709317937412764055185296129202392209095836814620190900874751800752049890406338890420288879026303825331463411460448005846204273517827210748195144492911163634411383643932424314962018202321810753636716802551435367659171375265185608853964872959546135350000716332880153591088986199456285679047279514551065277386433032134708653147458744451978617203315458084569385419954258385101576762264944429749224341924772245704952697242175039841723816428435090261913183740737593953809398217203678592464857078584050842565382027545326209803808198092493629704129943300351744981561355381836219550834600072952361063977143410407602213894004405731977861532917741040086228824670852515782697602340279988115611104353965481845661436522309967821771227640642910507690222603251942508761863081724154744498500893846897176467174437007697986003542000667712425434679332959038952111872688885501961674129482608265217050700164864907987468380530370119221211999073027145786781786277081037512960428374669912005962148221414674086150560423044832537276571397830329314919564116157591375657272389792638037454829799261066300444754803802955452852479606590952890855957936206869091104980201430811275119649072919809005482689017171481175472873046469516402425606843274743698170790152688452863734183657509293129020190963803772672624559595993425195647238506899393521381186317673117389840042007708267445403777411784074511790262215562514783067861995389382319579874408802595496507540695102525367357839973388437065718512787345782807302818064470904956610680011645342367340266607712222110840015440810572807675102766204761498298233108710012624851377355642567283691282004664304426042427903623998824144055432551715101575009101303265960868501429818002917624522939869591554838146358034862017852462839420355914073796431702178474515645619575599218469941120386053384813809325242455056551751238231590410868536135985591211128681886966630643549805562861383928360220373556565434057004015220376521784103651043818567064894615113090144474204458076154091778490371392824165266744476542538843376615586089430372402429801740590150459302947413390210057121480407786357428203861190262091459026760616732587960563365131706039043863455721097585564923096306243022825881641921628670038132941268621902736686685595404302445506945641197493035858977951790435043392187760275120826412970095981672600940487440031907669171843892995863777442204979716626643957683721943834603640512383341016517193782009780519383746171133900042885120388214026778440198008299438843371311275657512217796008931872322501142677225606266015667397988836208764481829391406558930542109679901638088542256431639403657444324256495347932590838795961428665086668014840581285405930594102000257655962827653730687985873537611861301143784605351957454358661814721021234752459892989950849167768287802983444548475116803871768690735154941767312780128493410828900536498238647568415700991214634300337372324593721280226487846248614323933492464153810091289635686524390385518469531203912027158968192857007069288382194761650687425036068992736516339769027635626908567421587355256206558742797330122560339401804602605335237000197742695443972903090490977689913927074170621909337132442613718200749731226227770137688667682756883221889882106076445719296219717905526924145420637820493102280425291369357552463667392590563635671504860973017372740586101850538372456746025872094759765959785019220555777224287466546649906522458078739903907961665499030775787978419069850536254899420220720651162351390015112584112520383883430976449242525308471762068333736527387252227029692216971736475883836163966364232808917410083123415395454327685160143713575472566382519922707513553679139586570104864476250946561328181040926387316267667544540138748944659632678369798127927026618391453815211307504145903766055330111472271393012353731479467890950448213088658716199488452912906967176830773356612035664751921598526778494710010298229043783665631205375162149913927712867934676918387790739186612952873314751229298066029214943331747400975351578795509744529389075800063146022314776567578426518428671992042831374040617546322724306871823921313605194547157590522517611988277753130270434168969085547012567317730865077029648193315173756570667635473152831251986254461968191743617176266990930462640302094549642528500332060504186314670020862018494656086228713659838954094339043369724769626543342478749564189756770325182813263317213780347887549320914438231876582384782364284150860899404246168213296730343749194539150242608562537673542581087796651039325977015978018794984162996251993605451614826819780410433032751158037538062261350144485221840400855913592431210932506771049834419264239820366432097254776469327520404675339306728652111090148827427070404051103620479550871596002937264982739751631387839949644577033874261105684304024976459606196355681789808673056307125292466590243633325110024670081929441043368208399597775462887025371798115034361361651272372382326861570157801468448755026904397752199636291780586596428563706148890165902406303045257176129091300519791935028494686601341392624297740789872776171795547895520404902809640469515229759748858561399356313636788659001224111000235835218598496666717011836361079160078910041741836046937435485679828750813526331627455844325235468055817927498155436263735341929681492104803014639868025055418430960033069434830139270757126103412273294168394116888778604379181678549549833943516114202404477241379586120744024228607964852531410445274866358540408050804149174664875914506260615823357948235820471930080034783413766502625387915346588843489592650881551067887614971023459125789022859035893220607313850786755582030398458797389528997050810282809901331275740473720357023108421524075376395121408523405980792545778087143478665846849290530136500211756198943590088069067432045371546495871501319936612235160565802491419304009000563234942258015786942592891263495726237332494931387072471985420780773568280394436728419670998036353137359441888189932405299274651609799667541335309999946147033472400163892785421222051815707907223369906589019019963921887815979428784258468490410067501984803421286254729148591751660837356877569938955520723302695698029707866854277543511766141055333109397301888034391698054640884457092121680057321152098600913949381912265456389142689521245896431630026687489879928442808042199181899224103689337906491231671956804981027629961082070144719600576676503227255666931776497306465864034854031957826527142491633531372183688488360749150576455801090180783687019722696287808795529228598097807261972600518512299335113284826143270843489707489221994755479324866121885364478687842425708903743315073836712285653760201876352940934053195207930078001973289880191226393843694980965379411376853220765429112153888595723186559380762286203930510794439035371353831930346109357894173214800457092787598239065003216962941526926083729347972377304721545644480976664611990504352369787622847636919104683448401254429233521220645611690766678473135504400291968140365084007237906158285100419188640067321336735607994597927842915422216591455446378674514528864894095902546453884964538566264952531007989774876133676987731703370414071865524467918592710439565088652280932041777598939857266020970184864444043746846924981341268256686093642656960377737873155217258691839237133828539941900695133269286935605945653555500904192688105154233961754263591264766508190163217112222465045619537332459199347465629106869743042884425532092897549293757648981971482281386645930753953433788272460328465010228993947326260909998921747350661293553865226318627645207464646014814422772680321180603509723252588827672130846825883442974233837379331927809289842735123400060861301594791356938638356923206692278426548330117615863319006951077221198351326645676532215354361449682285155660769976608336378665071290253565145291909722259734572322582422142642915908416063523016446044219079072697546283995887384201191392031403105868750259844813896822811922025754408097682559291620407324603868556692934731892404792955830839836313751297001487251637113034706757279974126036577833073396777023297656944053166892965641273212467141902622028517055351936926734721961584758436899636604723169665814699864745377941911495046274926939918705389151943543028969257400795797063917607690787683004848967296676062894432016633027478664110542823075424346210405401094424429102544124025684348937343441908087178144843960515595048847249652751915105047610669888265855538654883137119535934767327619826693922656773674186287249124363695360285761705509149052755163929350361812960303688498085670146856865528360415841107603232762627958488114467088867385907540269044594544586374954900881000502071429141050021974110471840579588953256830492674008377795671434023473734086781093205969241157840759832580855248169988863814508258189132500989728705486962027818314706240564362203929476142617615451335146080970791111417579286273463785482648069328990992278136537388849461554604978819233051033338616801376727980232755052202155176800387606435069459874270733358756431473576501795713215388992669209214537202341134359818277391652768985786408751376431335376108585892620864636293271510819777174143875697292483006562953148123100223851405778446898330279306459468636891301933920110871894855233855844850928720839095173596185432237197515572978080917096143514794655154318850124103551347920959321052976567610911960367526827834145405180556485298624160592894477722359927171143024265844387633133527382834307172044563456393967305064953383119538947701423776960346437577826361204113271483633389314883481210740058265899807669112472850459152671401133997194053959276812736947403822263869564028726533211884927593086297456505796261401511677553513626864775035289526754375907974705051139570966296472717754828224073887175703053528014524287996978401390361537912897413919505161767335318131815550636335835423456298555881577980400350122739255646769619066388761430789246211929915672188550385318654588971934748665706893112389426131758372092828305024580186142422031234101412697398140623221951166015000216118065123590578563603719138268683258599147379985970909620589128178071699064083417278877747647662180009636325097070570213707021221673574879174228710213908370651623849226138683298866174322687578349498571678293093011974620262249373175494382746769579165112226039217226410793070886065681940670933854185336261665250476874798197370782393065110270704233252398171627728289301772762569859917333290760370625243665326315111665614640327564969013798566824820764240448894167064921203114351892935033293586750974219074871105026009243135263820729145490094017306043424941653487752085231214433605468447942125968263396760394822332637876952939223703899858163416018881133544976949163697036962191603649614383355988210878587603009148913430869755418279793445370402963433507188849082673756149310198797325723008448652009502234661503860486975548359791008911037254488455344629289862667422757021430289288806355117748650030508299439308046810523651583119913357425587850636378733569900500136065041265194455406417630215368755589167065506885942101299295941937495161794274807462919221563859929900647425986820320148739551377594393402368696855310836368978209677321578326114061961609355895408449740972456761401412151516033856682684927242816556245699493348978480002350790933755444782293928843727027243540130970629335479753517798457862297549659916950264322956930537169777814572974738433792227038137987871389996699910048789757887672670580431455625653314281041097817087359327927387153016061502538344603046132233887715126478739970878615810090159267395280441269966290061381827546481350628828355859938800366666265635975340821896686592419315257777835898445200912719660877238881645529901741589938197895898196622399777663868689667210053942802113325616645596757876047720319084189315210215607474142308148117597808373184255541082232645027545481275590791321994156160119574497416311644564827780740581207992312429226197098655384826993429694691512752016157588002063915166587812864499935468907763412566143839024387030029837923993819490221602384032447297389877220158691129822058853346340939305311553539729692159496078033153073162580349583458589749743639208105466996459044496020827341920233594113324171714853644947221303941038070619681758362150793853007906708803926555383192673413841548519271618958140051511732177178013858512174763673217780524155018287117173339905900029395597641268628344226752362837296113791583766403504310059117551624709873407026100771779220697290812960241844863402528280571178916309261163417284160525565420771257473385380188585603328275715961925977410217787618364600575618369855234433015374985284894156962063366419367526468626290431070889307266124253177026799123409453087467285625682757952423951357801782827063318033756384230740330922671483760079047044640672650369561007907043098227364868965836298835781056862024378785124143747448946418571754128105452734273152525299656318780940607785669137618792858812341465278658757079447034954789637266009702996310732407312447384892538073912446962446172840260127951941035368773780784891786741967032838658401973778438349308253630663952552348706245565974618251514903310442733062606501583834176216622175641984541249401322134104033318825843687195189985571995126437724654190632039244106838773911571941221396791695826213067268007618109498409550176381328838641959604832264882034035873047120229680675714246813755996738468600898617769354416462858695958268360966514022577393357755468375398479313204283341512515780762498679891741894798166616808403149930292211214969639590932047363896791086651456221088497650147012639730028229522867128185159163164841862348693114246098285107864861586903459261398966227232278992919588737084482405645953475797399533459002149842903691270913564953461366568414660152985494181152095120899228888679594441851674710940445715628191626819930908696777841600308330411993239257133397806282703702168393642608707416800858659735698102775512154993910865992619475702220109135991718498442489916610673446925251393753073821498054571485438715978665324191532889261870747059608715557789035909821512501948946151717788024470975539794875219292789367295485519549190985468948210874021057023352301713700903328116044776280732621190573527114950519223000134818697534634314088256007472297028099987870722051576965015452646622201216872586089363832664833176864157795821767026597708607548276396743129913550463502277996185808755872441557385866302251520376288965261911866665092026787237823804813605381104519444964422825973006097697920888560785896308777508659686451870579649328279652904534357571712394293622447444026658294883827465279762299264098621231739638491884475709961318431503899057306462316722997499138588440573212811801108615664674226121673089434622627476304297797459371868315089775565738301154345101772601201844235597333180039581731049185270787702271743697386636019120118792830752886684118634095657673952079228316058448269689241874094764881553794710717250262339818699978286931306725010173718781665630197706503022154437673206928544268831930861704795830202171786608714171376230834520041583320568114034545047977426722686642068263121792435091281639018365846532401067122789353301434027184906250001701271455060082524548054487659656108584029766120385633084548769849991895484977837384956266793789980958734842930757495967340105254104894814023885926205364569255057290919543660118180284277873686726808063783938438811041861138442779363009091848481678236250812172032964085073994037526298215137335547481282073261893156032666429759828744819603042980802696105236354603442064506195693509777005282025612504779870510177001515459976327093139213659707500266239569360818164400197111862381246940556929183986772699747991616908606530029845434718175554809109293803508532535828806341474556675718056249489697459201898023244974156787679951880933392333178025359165087912194937416675427880033254387890726948054744533255681631565060795858372595447099657932389172868943382878190114895515313915734654491358105067591790530520368284707612883860390420134299932417749318688455203478757252112196812388649224296180283490506968124969510471314428752788382644289524780307844093827711853240342273857812693407268876836982932722930849766443742824221695318380216317998569227596853431049015513487065400306207266318580714562346262061595858421197792456697524052822538652755013539491344570218601315664096209935446857078575329935453474167069824820326053294820777529859997438395006293532263092058723251710473997986614718797286566150265068524547041475939408291836582741536091320853340858138201405712936128999377317587234185341539489171641305367649091208166956978784568966227647636586105815260758684323339187732459839071896634618044235915838926706494243151653442522812883389293984134093660356415036851481079817526148557197963104882525457917122297976550761816446599355715226378420041807282397192054850499199645194531622513056954783943037921077234477207611965103754969992455196810322786328003170182581910662075214081789522978450884430098290390341476753787500949130543962644852449060478399593123787792941821711061946899309710856917743030674850728595993304985096568283025733761084488410955273270936825707601266237755170522804115364215605398098437134473017919270866576275524104202691970679786033427577668953513502894639891312780538047292384684094360736435485633030318461795542008152076369902926174933530196186807159341183914598623721159389323481194370337087787737393814396314505194598227532617335750994882764505512592188909308362327335260496252674965993634255666553570302805807961025201335173516298812991995814330035121006421048589922252947055839933752974200973686930245796186027672120904051006950117106415731954931651422727157553038686712711904415922968950145356075953002456879507101616720502012671003960059528867499466761788186282431453897253767637622063896234836190453058505177062686992626635976117609719940111547925309523839035799564680175459928794428038906337662076468255274702269399787804874879781384168292350614105948297281751415511219995195385400656242211810045317518452557711555850220559081275971341445045751279237181063819864341191749942982285409163360983104811101103010531862777644888335705921596302907765447331111435790178457499968279464184059202043450934842273831227922166820982528959786251034543855683752316356196174178836189426529777336266296031395920510456837774766866795080499573693169256504990747338297997819783791597031813855248962748590676512739983189374607759895639384095045284596193010068992031976969713417834861524196340824921013093845958753342013056733077121354274736516894126490331094611698012003491938340875518238944203683117692239160082120516803460287580737974170983489757196463804482399498885309109228443039508248873409997204821199920218234438994793751970771452660832622719706840126482006845384159712706335475463251291126854789912012120751080386854303536522520251859785208081738940002555322642646293124672881957425796478576716801922769911669962994287111071595847515367753400732336171264021227378078342627422977689723406551634771533830284982785374163443572681280945151732746264400154295516509281356397781905451109138319057555063839657384566451788125425197847123817428572374440719087462592762034329404782052717957343110604762587712365114422879332930857486067583788066259062647686339264786831639985948800176727727549606092924932114629893751293728530287907435596845304764855438586583599993607638576040801739376150559037353286164078005622372334137961803910866971729147853464186974791938701818207641857269644579365893176634416612962897282297587293511218646745485197069224115245013012278515597969170124021066183404762468260787686484789808275344454852838150517886204682017990184941960525242133096449435100458980983157964472134552218979450652947947918958660580331770426481102729082041971600964229636375241663532082651846726867381927458244255450802589251901742729446330210904407674493655193526733606529377432123413787851157214009218841746021247649479450751762510958071565979711717442305169735633184324237040995077386965244950117033655599164558006665412972077049319076320104436666585429444784403233246621772683666389611971720828013307227737584963559488056067813259864789141256975522592045132541809686616588590018195932069037495051838393220437521704011981591664803159642062461717645375322900770638262925851099313217975273318182051314467396756781657366330803067451663606214955947261451678631272578742592871485878901411072034588197925222996522463309502582662405736748084644845270602027723381492655762242851979208950603090530602249298851090776985572184490996853804947282030708247224927581623758997564646856321596202231565928645892921246201817676651815330786178622250578989829379395803125552010963737324755737422896895114118481218308356998971596397707038960329764623405966284446400269214085269763393013330717527687456720670449385024437786432431133459070966800931396848690070702450014213079125424923240161090946347198533307043435092092859897468291217900024128233252038004311526143844287169435728995619196232764073352085873649820696461688876176874172669725448046190600265068860923240054480135040133187874090900712862571744041752311944967981202872604306658013950422798089257428514619056628207274800255503581696295990608068688542261487542378222310325441769674020206779767610981295739713951242869785193848999585015535224127278909715445863822721039386139912986459718307384503104102423468340731961022709272315725244371833997393790849584840426866072865030213539695099532134743286529183988241304524248891061244084335274408112534141103408641231808278967612924091606335263616252506182284068476164861082010083043182201087048450618538056928894258667500842909472369461452698804706268514244406964881639616120016339911398063114069297956237465681971100247243619232314698137222102989023988059160004210389926126191762838319888892628110048508919482467212660774336036889265911995715537593605971013254610067754510799279679802917382135639107305061615242336346726798207801625534462952499949300984301437605140510894109879674516877384719377502598862509466724796800545410781851041123325220404221947113107756019664227462706357989935060631253604350936477791026173165650766974447851133742052801588485210396973973971460923935112696161113474714205916756508199351447918919107233962741691091088281582582500298132730617457064759675024658836357074780791653776228931849778434181056476994823469576335897701415470317132082127020491969122762011521669223649491659689886484279616316143529927282526085565026165394445719209301416856636721924756985809124357596350824879008927354302415515197682449133476975412821266100048849628875411350667013332445978675476796091945640395067007624420687773305270389412623829910740941036808096094611640367590695570483170186252825211527479071188419424938073775743086034807858441625607900486609749497795180042063376902142954389577674871963329193943567450342550787224698923904727123889523158829056947502854874533653440642209699576077023794115491317439148657953631156187350664098150254798795580662296155707702463738142809712746986069119000354379795614909346435257018703342991753111359573414824962446781494822700147274505759787054531098439923939410526710105227801631500088290592417404338088840682878129899694653830616486925641565145056455128213062687818055894803119295542333441397968391643269937193141309503375003228977094274658952420484144190058808703503348006689882514149898656913496521638986557299940122768315944202905867868067994419165396431463377293257350846020403231033185040413298379798493987346317445892766791327523302414556363546181712394881842469155884908676137194759419788121169470454493825594880112293599788646871601838142162385826766178323921814865774463060933826014575672935183089456870671995799305634878514832130182997908308127078911761676593720171395119674923606757709754846145709269280856426353991243040532272599033005654414782314418931497082568516079957726365325223908532512529472418147543330620721807194856351364424111956358309471625420213388521833004037621731271144084912547249759770827792715392456220110325838843441659969196355429713356927162486988881468968007676066869664956524761761681800005992569681556462231075732556067227990913096651655904911764493537773734505227713825278889686867491355113595746571571390136175901051620808608125522400920484758979319247424559559047147962748984902607249606564140723735225837684125658087567469860396418163312413103414286434580967769319560110153024641335674635538984760397112809713768980056476076816738501686404862685990810542890781257464037172756718825210440541806907741076647676291063273771859427367733694978661129947596522571555740883073984047086010756026234475032413241152118815712207945049441421475393686610876071547764134824151848531555061151115318141386972177923965731552079217096371377829764368193099272619783103927138441484963134464305122672457535395999122542655674303165420751275249164585969446904104413531286677719732484325812966058832072791809231125600899498892786582359559780249822474924196364474033641413631935999559556046923058472793910423314405482120304158793746149732375576259932488897710192751244343184280004641826998562802832462547182351877321167898460653564667389004397728084914411405337296639667040237382929723404747170275756821822913071043512575650904244983261317963548692547749445584714699800997957661425006344250511875631493383809789137481353753243411389844149408013259369223655126476406572410191374464733986985171443713770134659740851817389442030490727261282942803750827567322476852450151248255643678963334125734192613456873622635707083826716322745561250953044343561770126093140776086650340877232460478937254083152573156444753236549592855707801398392254577407141875333120690577972455941393828080864268573430050339363511117718750919174209965673808377621948013584351975176689794493694248222044906341302600137758029717682711029387307634544254512212792921407299790848982014962448130149953484781363903829648853724969647176288849245645897965286262958937123398437879569666765534259383408197224320750548822309723246211244472733697701982270861918058777730103268954667439261134000768562263262308074728725867451620039290441349813967871961389916242232437301238775727972076702542467639163762674819249777320821456390708682144472344727233604231455546570211658908703975863847668412880029396979613653506705516305019803310464812207013934525694742165656894964228956936045565308883932267572680172526126528896393095447757133071735909868000366883348510795476524273596608190542955474680954934604583893927791644038246851130740123431347887202701729671058903885810608325026197849588800545371086698414523489794064205341577628458155809842412235057922506872359460855421221177083798606887886437072132514084899782979694137459994777803750248237837233598218973220998418716184554668407462058533338508622006378654517416503110850185244014626193726779520309624622819917931537040708254413203514933116602766753682675110917006172170635931471841418343863733791639698750474656251143322386486349353332890202207653318594301626425426936866016370528525623675385226869731283338850174208454094808739285045561947479219178703400767869508572021201673057865471350555619679959775796007285208860373489623303047089547608267918293856869939886020308315958201279876824952243255129903396865702778950913237124739578876985076785188887325332623018283813808281365813956875438147216260037890718525650324570114008928842841833033983056818602356977870837050585965152875388874802352929478447072106099469142916034899054478645442659901939484749058852790164335061601135598253636956418194472921671853786411274550771768956853084111964606143887935408177786703197580505935772475783575132234754240417147992859748717047277749611180615775441390712518341092528318509207972388191546296466994594991221820676131694686553354529254553139504641464960663200304616976529106424532455304384572085646001032129601639116249305580079493539824249678930349117440221503249593280266461738840498500422181044363415516974589941935733639812480700378906110762696725749881426979171256784106850892108561505725270927272270376933307222828722784275126580393897175735948146318872533568824452270056581125045693156260750908088195700301798959046736156156354553019389732345118225150106790275925844612911339722565583707298286042610134572197057993648728136132452341099946584837668712809677141629085887524138367252972622184101504707992274424058798773081978682872769316206923430578082072620036575892784825831009668803952952359706009867214675575726632417534026995314455680142318818346246589984207763298867001629787061784322410077569118673410372765277708779271461684329813935537275895596783420362532812184010925865491725230800451085892372967949613121887337130074291682005708401811384806756916294544634491102371694326646421314129456943891829233652302316586176675614249037641406011805587776932909339177025129828485286397507687584077069492209467143164355803003771542091597325556404107430803447369554234068889861864651381705285561434970122321369964312316721511043353703773846844072520299984751844907232316617743145619752111489492377542622556040710504867686053805760679935717493589767936792988961388477481439880559615899597245813325901589854204858868035818332914029351118284931660892787354063619373233839727956529187901374693460048331268061734786033094449056591924319070557751895826718095414707783769064855854888899012916759030749932275283990886498098459371808724638256105556952124761317733505939845624749361689239171070307175538570312140323908953977466217697261323297298562443841793351617534510401695834252860940614523144987372202170371149895764560804142584665056220604260629480742656558552620364245099988989873858457885193802250624464138475185677474119739759137483986637433959552930934669884460931703306659001869964255732208124233878645357707701321316830934778500628108212117071122513504319144896068951106314013567931224120213307841747254644720247096266033532193885553672306516904687138059353923888905569199165997493653451463369096298472754347842411591732528321230217058595476435930795830732712257251559715387296747145861277915280340040516420426792880139162065653222799239013411620829870758924195248729012487849567575642618413949004745988733321165048948682135285373658560559141209686398994739027710585909569280844166303688688025219384585155509189089826525888602054346299205583389322851431319975908894521116218806646414844436551195214433487407487017269667777428143127468197989561206280137107628833912275174079508190618288974887433656048946353600223240857980402957549605957028102789909121174706601102752545461024266271871754054112291912246277842424979524232796679479671699738801088782224186468360980524465550944446728739257997813738357467293986649155383650939082393399349922880906708333834621658401637485034844157403222389835195141566240223397015183657640683505992197087814899056877435577163379322280239882403663348862397035678671931448369310080589795868702655106872082640384456278603202125989783587370034747427331773712181226939751660571309035603721053519599643756736031493765888840363875221437287698347271796208361904781430054992887569534815655870330790037387147690281077446417520791035986398417687990587899724598334602687276550532063666444783168095389508543530101607566025346605943814834738832856514522800985113156990822089877067488625729800082462281539339219037754603420353739826163060620449714599306413375854879989371720819583819565989200274556823837904013914970544727682040358176263133010035281572439464514151040159436519048498336931636993130078829435709106739349110034560101832916602398265737593546991105286121977995712953818899879024247484702256855021179795955593457978560660323383975720673470144577815044722345504543667802051856961787216052973315038587443223535968218697038616772716700555430354503817360523082584052361093190416382671947868533992464400421160074961821060854722365885412426554239185441065077496781186221688747793640472375120308121244016801400850809980594912264784641663805349561478711124429694888786961513752863772924685248099186623562663160641610961454144754548002486011151923460625675445188312599651412131029955434329019515380284682689818111257793130556808840172201287644533699054034133724974138147089909539417798258455548491449377438345671864277583588244504932975062395968852693648870806128558803879507386896269559261723351241679901774003044457207872428483316592929880127798425143460444797247288329456741754746645974196635650185983580444553161472802204710228930846751764592722473670935964427011117680551147343648422522216792673959278624702316049320583429635748952567904790379236545118964357174025713899088384712674941673247230355906382132099454549793809480949542390922263517395302003086453346281376902309392743954756640363492564230670903178184181895367240338013676971998134066071769776540195016398294361164138969682721531698118881494796052387168714805899128852268854483368523991660310296471290802227883703031330205235565871105188198418273100924116099325492669924577828601736233535032472463829055239619528693187566438899576286793925373813507034608077221654736400547286240842646703764761575224860366873283591626663056951785633718529805549283878942912344418772134241919774969685431646923518193288362532730533887066331336770379874410354220953722375009839775639145722990047835557371890428815462964611076321698285795577012097644984097244212718899934706214750748219562183539496546126701070219620545285361350768233225468685430446888320582749668799304064217081759422250424808456323531631759948876901244172994888951783420637872407652935387704998071097008017460687269133532351848530076142231150562590950249396398114387966792010460854518521232355261662859762884766433861363368110567725332030958030307310211715504407882775787567911682198800421111022963496116174407267925239491267553283046370154343400527645096685016044212319534592241182960315049192506939297562677674478540979184492974733336648373026905147166912063522990736606651647781602569488589246551122117237303993887115779552892485541908332783185167016236548067575055152487692839149665836422473021748982074796906248329959479554027922855600795378078895569806307119538518337857069113619644242590297680889236588875050916316889298842622543555466594002184626714793708406338307275880181382700699363410838858440405807274046726186972316958088113159588221708743862474505893145811839988712410542143556321724100433799969645744825159843566398198706534175177142535467066798170723526945354424451055572030608625415047722856664735921760955782191608781273749380819802960003853691912516795826426025369517327110094181995271736094815019117774256516879666758240200024182436822246274663178353033819200959504786201987642471881815999702780947831671144272066838813675942383362333790851900313678258031861844674330801153587890628705757959990844362685381598753220407351479128309303035889272335870038290654789951061601226230360459047379070876801401653272087524019542408039856955895922629563578167914747148051071172525801043783623030346764023921393331368121980985664081872220971009376082554245065032976608138128428569216980014699164698748267459657361551898560485222141436509570066232902104000741247317411425327696875796644837001904836971022523274256755527664356492277277664981291245757671651137012833688739957327056852122549776064940278891657961137421356897836203070049228932333641120031299687571719589585965859560596543578884188248987776961252081542296543740498496258149770908000167167278723339751483859828585523473383051234630013109579001428109780015715293991574940038052539484950117867311977912950562951349768934261482799201371130687344596272243476826714048248443615245253795150935076616327798426366161470066349133736430619625203883857026771058272045971238393697693044254218130845132332286778160073402002032580100377089237271213091188264879547609439468692804532490759963229955045729256569023117115124605094993294317095668831332659157338716037049463795356992700995874310256912831793310645218227750577792439804519845327684030975727093217846496208888874872288420825247043138129934928060493487882597607274290423237820665371054655673676889357064087701203638731215229461669417754586365744826817836187587760374956741311224990793823734697741386818949117296713151786068837407028886020794927696332825505587293740371228138286716501294129650909315839938090146717066455102994755306566467483900820822086955028057034341402881560545594098005465615394008917263913080417651916116502352647324947365962868906222468428570442937165702960634158100880801471942336974166131999963194768985580917379722661610358736455570486599813934369098348946813970439174670341006647522511798138369004860817391270466943186178177727897527527354648890226923776051877099203465550442206590992496906532862246429425162649186594763767096293944720275931965124308105831679319098844732094482510332133208101638921701810849371798433158506788771582124094201636095316588709509981011849574448383107744355466849869380866003130793647382082594570679354978710745073675415528882539492887356079791697190622907631298363164708250531888380748821340865770530290002947242781472831770771782529518571564989048009953718120651227495342518457606024592294179177010317440314218155659943612623560582749551377805321591139749238592654306514584304927254907838206054047424146534835206493997848559392502289957120015730845143597030944048926170095358619455469406654186124861733080006256912683805058263357902081061824052888052205980645357479602833046806879542582894932746455030502769850635197840800977307877085445312039240799095459481902892627319061787308600131161813026700877539719183909363836649162923121724886331530446964222279537482481614426623796006040119906717403844601023026139373679378790255013482286823774657221698036458837378055712178613364281217884413388493890021170112902467568515965190774404163948910651221020717044766893220642194010046883859555492553087609252865138164218987533235330637531477334443125544742689702337607263645616483625111058699485726074349864392534472767725625196622514460553543935026010351943311256424081552145997609046191840611447858072377664876310050030234733444813286646461580793372117866807872659500102579857074609267282046786221530251892591082120617097059475965426271507617790462501494941348880893554470266974896596505789017847945350474468948259170618144840162574465355300616865986546817482348524652377739129342898921216509320360429697113011301930576549660590207093832521336903100128508663937653613238957267077546183290117600939219541037540225315559642385068647869469784906318682066414378235349494066944149297649426119487291906008940521455712499448570593651285676125774131642749955957933116054024900907320486320122723677291802254567344571951897065803338421192737988787302835673411813321995263718470912775281218853427233867655707920178578058703192581618364681606962439913286532422710088483004592263154790606923696816117897826653104972093860573525145763579453475629091063381192635974036178857795494618224595094397847355473345200703768628361606277237245654986409160538271652588485266787512924050179172313394692207387577148859797782180502212763816031115362672868431268163373523458730212687689667838365451576279723094474180204166325636553650844768630955937203852902627421614454115488717095666589206697296712892514507133943503069345256457089376105147997476656630299650089816443461788091854361018326370919954152229116395389692530125811335431975849185706134926914979580856562957818865713358303664491353374298937284552067069111784499926921804244280093805414020374892157554393617640776576113838895534791406112129903383765367417249432094857334957333664158396229870723718412412357165329009775990758265719665506492156581954242977015721793395973511692785084814348977259542648402365890383105090314416776731153630942926374063117722068654893735524027676720879057776091809765787568390378024489374434507258022426019332410561251766335080425433347310194913819131175798994501533373695835174690530329810312212981871364049394831492079767534864237743754742831912805000437080041678092754706658896113221888735337819634126359977898467298617226863998673445164636190882556046010548631498286272111635770144246777460914491691187322311216725325467682179592626525145979632945919457422165372567867522857099757492536224999468809005440559701014857151456259151156303268459848121327395356992076923619008446607099625152871215099416380683630829362309275601830454483759452825723223204215024457709277454191727479161519809648997867224937504933196729844851430925013529026681267641865568430144818618078994904620863349341497998717753170304826761378550568511286466982312907820828561293136683953620562046386572472091401453040793102842595805146483045732799880189245519665621929380214992312064327427968432946293819798556096197039500050734657401126981064675791783545895115477327965071015340949927311548343699619058982100542463418801591604053374384984206886394346533523267745047396900047625579479380975694672542135302597902293094280442100774488678234592069358001211485004880466760155809584596967987887894092833947157743715233204558046763321372037786832339789443165016600042473221748182665612694442385684408928074820317421176963493553260926581129712030542671252844427273240161730608244403655292471330750342134457115424409413433107524390168457182027748740296625865246462156591343133282524566244299162532120324038141738325156994353242388981740102504598735481220128122843330261933731345746683478199628136120726718980328844430698948988972457327729833217206256002227970950260155796381175051808523773492992243422049035126052238154419795394735190423121123741554753496489753573223294622039644757954810923776739468229722733785718765351162253119240953253256724556461148005587084437983264831490955198769477760455309813377667938071069588339887535128839357613506167312606240198932004047272488574277393527246187749154884105436716322009583888383638696704433216359593164548528021001634984886695355336336439374933208076191377013594913272338850368482880379543506228350743697701844190435930090514679717620394326021170769823538949828014572135282692227661955485552075450559551543684001098337805997592001181751254216973056936337094910666763737556086614064435740021759073974150013655045012727911093857618831315924923015420783558610748771420363943617120188952595901013119260131985545566868956401137382712232941715890247848242611133874461061350501234685083859133855961563810796462265925497829892061284419886890289442254806609015129964807048306815026048558470671562103683268987764274287088475611820342724623553113187508327092350924811666375808226170518555239949473738297160121173373087691411621823302893578943886220773124195207189194907100161914582813840559614659265392154770742042624250803796786954341135293717002106238878587940089024275578831829398695952575341350187494768033121202592006364015048815529609025392370491606231886250581948169972294351221374173991398485071928525499088807218693728803645235963566968485416909741320940273874440741439017514499331252631579633371769082634841695808342184441438904346504469730319424236066929682606419467873902788662445509186306088964811897251267482567175198850653592438901778385326281695234514034275281825117653296353194629075963046229152312030561327730111962569793850507533896261024277073971132000113486314121478398121546699067625687135702296881838235652223844224879104877610296217290054656017483926429457350256429349034658227602190970432061759444043521839527466872752985578455968347187314761955299713134641253304316957035159206117638640874576298394946352662769924312700997112188642325910865177936892023141881769337922769211114523071613825263179474638773830063439119009009085210065812929723437917226893524191691542644909788858278695110222343475114365910884599143218821119400705724689823099333672974793080934013467011071864851983755667782105531667525912559195211655434671801018732443211756516959086240961815444852742126662967191219429301789131130720502811706480406427352368637178331860084802668755211993401409934389858630558923824439927806908518591989425517870168039911480429726565067507272038703748004951779246557032081346494519556979687070353205927843143729394835548416068535100163527288762081025341031559453600434943837463130260755425338616798531653461824085079279868948043557716067990786479246912087415712060968289924313990661533419612594105213693402081376740982321291766054689257244961935345926572355800578705732728471683116849384352488147781084652127777584590030641901823747851587371187376697371848385513114822249431995320614757222424175388328824008290356382979860542272995045089527135428813907874818350869835218100783782386622761129843176345440020476727883195705700182107434104498013107089855517149219519696425338803939905698474501526130876619769239163591234056724070700996621513726558867675682911002403508637055882721106272542937566881607236590028990482231140283020477102585035069079697924170184433601200182857409814541961769320811087434349013983997574684231579283612110476312560165595526820574490082152933816700015968462514008839591596723260977615038247495484677903245578907445725660712617925956298742137690979039747817992145084705321828538985074924737693793072072312090748101058626581045214074483386992291819543970653719767535349932957271715991378850691744329314740768223494565617818968870349493504858175700296344607350266713811733242887364056024279809482435731075044895588852887543104222774730513097118998490194599160003093656903136862450806878647480155556674451657516458401098377787847388763445033344218648087680323734198721383551778635234524336329039562108652600110086630488562847914679773355928249990898935393745066893671043377208997904866998350691378865808572140989442866501521705387746946422470616470812900056835908882624729352952465369790473646123761836991778122520875574126785950199648904312326651022170168738623571425362713045020071124998211473238250659804849829574251630299360553033641457363010655127604170904896313933716961337527820480241258758160790056431589828908835668275220247314282304188502117176150824479245896552368825608660816872037064295991265407530667311276574445412365662534820911664095697710918795623300853247714568536508736934448005049472981792129534664837042777987912312634514156498324249541951116524542364424710282862010676226528132821453092257534842466402686582092617938178663865166212101397669862113996106871204666985253656380582014487871877232031648969236454217095391914311707965607472980669692160320837402871960701444098528116031442514648568677600890563293108922168099712868274111678247040547227642393521193215580260986181653115801212397503713065074204849513518125933649778219059311652214164367044065676874221181229443619182180767699560453044059136525636479768931396553793388544921951952759845252344304449314205534279047018990813731077512105103186852100836869401695962153833855069372381399393987424257894028690337088464517449682589450325767975229047896463021375763915634537325301482227685063181453474804893727371843979715954587387009685542511371543308182227071188493578327003691548958042029365948177656455565897837592426848870274984359267525527251498481283276407516296737139688788187482262545549342098640566381213030209382801042147702656850437077057637082501610259848234813277760915065673357892813318674736414589539941516839794228144849546463746237126252577182898898977071642552044030830325116423045334159883268938345163595286741114557320118243865495585591528443753448430224759504892180126053566315567782407668803386774598286738025850631180078362145281041769292072528774716972325633326957190888834358539895770103259922703133571062190250491376469669702429814482922065467823148710032162636055783245847733720277266299257379102551776654045617522980145066733620519329034380512676772602247525222566631140639736724386158685510037708991227177096581530921922217370950551837491346692309722909078771418619326551559314694724007470030209338744039771536365082360020439046559678720326712284681739477242694415525976607618263313320877583556919210035367496957928242043492424076579362809184288467732507090486618694723355080699300895986435358498710146026991187294332969249128409199578467907075634295618644361581711836988510034031201874518070523698866551861070769764565379409280103620775792380764661086251763380065204464975616865763702225129086644543598439319082211993235391211623881336401409416355447457137891947659478615842841253020238857149302887069689812133550265174723144940029972341782266560903081188977247011790438567350480606743865320102124565689503852007085295135173881447730081224397885737281059032445679460076548292903203852853939778375272832880057987905368744045850567907838745192385343620734129388748372980622479380636273157287114960483188403622208913239629926270513685955783715606426605744843922927782437694455959294980322073113643189175993850704746909473746190724861346904840489424433060108504551658806119946064107023474233927181189088827304947402087996029561829215338558636202697643068141166573607401521268850754917409103776489321375101012575735692658777238200402805770760617790028126835100382468530650213082950823304084195970605991606430928537318815682071935470342955000838789541708158008805454201298847366077011545560437128652827392052630791645989213868799402334597871447257632150280194414083376501888709339971081797770346130136476939290275282036774382988529985620051408120112261609437238628299833231642233125686513268948146227604159932759146924461107408629206628244406064954580458656468101768462284612515494558273798834819196321550356408085462204312912503412608787223449744911104341339283317188051157314675544720492265468370791220046356239177649376555017627076523163048637830593448989954741884230615548305795198059619192466590618895849953422915335785103732524654834633319070867794517276124810350764680333872731837741454627130685256087553071418174064740739363803757558530028378755997647851807433408711398431978398043066257986968524522569071717336252675448018222527775134553457658161654998537177976979431270367130796413875215805285882526200274670496693806964831342812345897305074314098078303902922907890786989182017789480196326452949792516110213290441205389976549382170763899741909225133957625869004077599798105359562994937403439680320781793700114948040140717336348633528866066431988351673110871515461974271852320910451535364088777185804580958403485786344059128729677065067787046412054648050877608760019304193106522312449071264847217020940545105575534657463894785862381513722115811248863212701772753302691955412081062525202594008358762230566875463046007879419464470566237928518387384340415097189988886148169736358666872358494231560826047020872037042608266594038644287071662452434453729135342168132665242021869929286994403439168550683042370446337170936863100373473368140281113296044446030103547495140524435963908856994290136034371301931186100193039836803991472043088074394691240436914094829194383975579511371963910799354822385532266210361499629125536822804243944963438314739503136389283893473005717635519488237854612595383310463363473242340588813031816215445532611447578113418968362440736099159692619836254441679167986360746821452378253530334117478383887066116732527153133168486599547739813426149178396827536378282070654169953897168574208639366515036420662029290861346940776893056039767430951207681319548349269217611161774411785986585044662986622585683103139887920366554198212031928680899631575492442959926915061763146598104830846526216846202304940188247351067360425064965095749517799703532678131565149041992438754615218583487523353162979490296722846034029922046832930681038267392807822019206690376796573738411279018847436147294181692498725431221518700867303523860907739594162070124455290885923916597317140336495557371941387424986220356786246145069637810276014799347796459308546564325616336709886579263336339345402856785967469388860017604959776250833711524971154246311568999673014139768824088768743853878489959778886192460854324815124717082449713553383038796623685162349407820426073082666899650804667000512952612236387748871208696725027889643212821019929159838613561368559700028977765997541582196583753459313093325837092107021328215598523402337632185562258692991789926210499222589304310660113064506202986222438476926022711765127457972594014055685171538635635980291836344026641877960899323340015273796490672487485426384619264767665898191145928144534681242980940784166540709844212084508073965121843759326843166169217927713497543138891792156520744330473623036024514874860933495735741189258827741288618500056847653701232725508504045220206868424940940837210492516165015566850970380299418393082086851095498041730526365575140471373917570200427581629951510512141714609241415091118763673577051410026660346540472986843992965641300700749649180880128468068194023390166568993336836065448755546015211592730843385618868060326874556800434308665826532768281764940990104776507695123496598059678432059085855962945250573628956803488539350938887478066501964765566621128183123059595531776867710228336849117979858765040481620006193197456305717024461221761850521723125870689024791463019449719045065655665823043845545702293388421138894158336269242138071561177305951947805070279137834380944064791947049828853020150837616895030213543445875026972870861593860702164800109906380369326392860027198826987823406244801477641555281719748106660324462529788449191070679516040167936908760823734746672981380176932177374872129194114787169010958067998463137400571532769388404370680142740247443114614501962185770560309851259370944748482371973315874709090475923462616894506787916481412021275999888613919363157330776545700701207605362809567703225023702714504122237762267828572084455123035488592626000879647603328009069701257911627653065344904226698243000250329261073171027720664202797434306595814626353974195319815993268397355562736079803898616625231733128872391562750710940459675715300044227501973589940200702790352189879958909195240095303324963901383780709601927537573420829287822131721756747960955731991090198816626860230517325724720838499173986811851992883786336736316863754554231945532628816450130294776234040825070778214554069659031253861676883851908387750949016565202879309313329264418097335766249625885806321332427476238954480099165004023085452651805249631912859880588131699722467066112691879015481166200274390590247458618881701372909941113813806001275470003623246848011757150779626756007793030167945353692261132689648000793998119969574789378902016144524584124467112183583759156064544397192716620180321979208806735039971640541788694730193650496229907933182141380924865792016011695417884118768175464884413279479998154871819388770677632501874711907953441667156259371285063713113221731288425440816944381719185184706901092879628886992666247947994183631057645343193727774965211964354070979168358985291620096466952321444364558396479509947455835164587416151175548207739736236564607684141835194439579672250255374033027180650361427111480764753405234088739130596489000401761335003871319310285025548546931380936103886655807781128298423236089243848200747604628975129900300707716662677860296719949851439419802031771366845222682288754082748258645725727969453965350541033066016807980059639656900963097378305690732703034989013613134416073747332602100436385459222549877216582583088010042102260291174479168448513147752362918960225213333178569534274022293395940905503921840535239659791890944742907134822815498009297583126727010340102742951310146121252736643653097471287054728105166790578135608326568925839129719713001323853883173827051775164366699214865472204034576128702718468725122019339236251624997837430027722255595801069467137981027773816582928998512667394834291483579811184325322053081999409005359508435548516268278721004979406567329555453946447073299252431319335861535871698921266578027347746954515771156834714223874433075488154505441950040450496513343603251975988659578974736108210231127766029350436622698668722768885039022182368701024282883583706409731401615365492508663711011692567367345702271688700907993718373984100036104972163208888266703689074503334974040267787861780255662606740087138231194758264773162027439203039259643756209375042172091335813290647191119045769008932607657362424630559568608342869995714791489858118598125604107692827115471952566038249573947067123926674431234494988273750538121192653092235281333757803997310825279855022014629688588474985930418888889905709562776471167636941326318959545564115019665995109964298679036661179196790892900719369051336616421177154466839645763523439263892762319319617490275244691864595875053786444870546562767838127821715375459559707061736945186732220777879140530294649854703989747811430396353097979780253718099047990233457922206234052473468356109842133034469394202800450942972220094547454950267222997552979468763841196893269399017365388989286384683860969865991900000944478212895636795125764024244754927306293545327507395171826012879483291735342190873015057606921968397593470026488424847791870410828999274084969843016010222008148188207569800516818879642425360930292447307305976991320683299130149426858122117869236071357585160971996976422694652843224308634486589344733378484546989603864099174016165339634117326353999269943400783917921252374486630354456879384455488553537028553634177290029104550707270504115380306311779163776412610055320297787506036415462606227313972317520527511998530530685839468403698474719726209389546914054004158780804829230944723222444734642677856856746335974031569542417475342305993234737392832213723528430192539890596673288544722667635887034542477934896956903794062566615064474278750127041581887324442422082710078904589279806260320532826450615112377370122227255691993273594721765162503464781455840725152816381999714971465124280575227529896496842018243368471341467672598667869499936930625859905895792303473953163424968209699825574842044638864307044587674642407181681838599902858547882354453055415301089709801039343583651402136545148165722579082206564312642750154574655780115074817971385717867723747273170712122191394852502198803745198923167912511872344991465087916070989984995737967819425607759970633761758646339577638441265446177717605852535342805107740231015977243875424791736514127118130431410387755316622750828730839152595771144090236385665387080993211974412665107423456561550236637384662825530508639186749155142688846097209190560930013003493634380718424482644902137564334443226568453126514053993484239595435309318046947870486555389157542773827424715367312326265956494185511795972983709477168356095605671357863211217209149893646678465028345210662867758609488742322866543951519175958192738972983101930267522451815280967341549178213555778825345155313638453572765852997262263632077389454548823032751335541085736889490751785835838546338753194417387574598926645223254822067244948026538780882112673089791186344001952680833447084216682060683376492149174192258197983119781175811751512600121953908343611629621805085445025501609824562791640799907964419401546577719162467897460465164484832194475555070479527827017429327828451809867681991003541030529904633396809319409451150095014276718548228996898003473107771818524825346406592531526181222267330599316201986878930917913881515263394598181023063861028809379311238743246389728235103376914599396757671855049053687970961342806139124574577271834965837157350983546417620743141029004469825279042371279451473992853145648412583121272478389281948245314229935333675919401131311294604624495171712979642214650948805410582938333950994099625725382288340696742330938389017991281778482187373319708159026142262388399582815080900073359621467159735705010533546167901422963993743732102785083311452354306643318879614725463164865318254692420835738607766642887700964382885729610992096455635450947766678048429378332996575478523941577028884631300425272227701490638415634822986690184524892795600580494483829395698794953431065094141753437548872377681371246639750357749513171162229554737906326425113138275410210758505037898711877197272404696093078726262116316793607894897853092150490955919943790008354844875859271075034604933536806709517141331794104189145983463182504949014983066212987468627804441961052744218393077013077464302140189658451122245275536362707193404417536028188505745929681927104081294427825435921866249916426748401170198604225055022793957806846179662095056425235559211863523850890320277432637713512626127032157008708206698594162089875975314117774239626731819710257363429465282165448204877590463112451075289626570367452124309645530249935484743908570082453420712940055122341398419685114318889328677333229808706457679807456433020027368906045963594555002514040012995656366138779024335343554709489149884566521671962172333620738923786494494620637736134747359306739497016959968938193967711062607397945646091166056216150393204127692283130179117079762443093066869248512503629035535534411804890251161714301807748286150900211915420600073882836286443777340207851881921045462059056412306232317845450585558026604326563956916089520228323742414448026592449706890221755391194978698042227878486260409538059498205707642669300058543686590889657277056573447135386025838208900446214054146476931563464809075723935213776998359152219633768395274748201556585582480043010839557202774064279708255644750275556674196902594495801681144143441770143529727244790406483835775179237817322330803735343246522841816174667632884768496936744682046855723338598049053184337903282322661485421612301362618165844994658152562798828908670715787795610217188866611313755018134213429743971784973900378985782669742235626486113422043705612666563293847548481584956703906119967622133235159125007878666912339608292139061673091037229375488853258420080061939553210338823583445307887731826213485396883948418825032137587324297702928126779300206127395499299927697633811094256596637131521309146333226570811943631018258055197926185816337112407443384287316063158488372175189569932627118254917660871542834080609239870037686785821593184276192435362838408269142199432748735661479318511204496154752511614473445290722021401526701351715018760172851287428794800534286608788797162590000693709859783561178612469011334596257953281312444748131199879052891572382130130238509475926857679398776507445209945024268727469658909747549749747679685423057449113313182338598741149806530658377727797734949682610875250330040640561852512272511034834092712762052590571903229356645689304543138574854332427232985607737755792372526261893437362170856717104418853014942353229679179216981048181193581335826596730193748727079761486867628336631951609131720791976315619293781267741602097575390959646534179597195084185238853827926347527401256877406585826465158682722400810980157093749547643819137097171276152149669662493219403799051679731429785510304054903097509188560564761942974052986506470700046070558748344586393824683132454091016010857692792355552807524297854926618903852007557799994751670812355914460968010089379332679927043848408748499675320588575303463028196612141082518978008575614953943074454425335034482531972786195646966476409419796583924680719160160374594933777803336837941053223783381515987939962970924325498092028164509199189227398646767417486861361240329457546011218036919363279436882485732041218330259382005128558952004293563670634449065631659043541245711673898861516226769129933786030688823537306369319692978780383021794221998473884002171406404126527590753208999963699317338085023514911147691850439251954157827004350202672403562492822384458394371471727752844695041851855454534693748587291365691536694054137062823366803636315066436611626080295057710016962704493252594777270068175826115481351576256319374634729144104104318239133956024985494457985080910640443339375832001326116359951503994572928037098617753951435797617055635409234981521030946514421354946550011044523852692319443315578822482917968372885248370725381093510577091599251161666900647950218202499025190506713351820883829045282595377998292576642716668383769576945718873370715529154584317562891505306723983668949835306655354611402881489089880840011328918408975987555408347932733376216161826085004251851164023656825523523760587266211621178374292495438909516629734791900404621697546426315662994488121049697045875261656201075787171136006681464182520057194499424089487881619896206492216961093008806619424839548583721609687858514274489989722782781465112545669609823150532309915101200783720901988110521058929631281483600154273829171728418655581051537742607428944474091092884341992921995528629138027215872919107638179255345288391455005019178583103222726185469480066891047238571332565658169673921878597303806581742258387303275343086149342083628783643961198348535674704260033562559296908370771065021061791579185679294842908722633977705320848404833479329559094586061329145229212677911860043135106741810618302196003170324373173460967744585506842220807332370469328001839590029867770208388092219669748945443525209776990936472165067683967103338342957778473939591328952905302355482431936320646944306081347941777667844241932811667135958942439531778544655758917754666756695651119754585339436743966081516705789167186873911083508137115567209890003180854737950776251163276591429975571108952454082634221856780089298657912197740766969210392008826885763606817198492610353405780390756476539578019689042913848971067349116543418459058587087149680808676125529169613600741643360821055750086823116106474287809755606959744269026026071202808016810373643805901178571434596418554542327758962212211966254646380849049442589245123092477706615718426567480277278165460768410676755493281220070740732908307543839580027744016546929635266408890433242932392427139330628509069747879392108692424344922066212655991182002304299938251174425725748762021225607945713997455985359223563491895459959045262584896956537928571789234296230642420314079299065564657123042785055697235262698528031898720055733873758326106514336309693402862627687227661024376216627563557766276234920235770340754787523594589138841073479192953057436673406487020954193186645019274923576547588669871953129117984019299113819919707457297874693481640527250729039041324662528402674296704055420833132054089088460691431381428973397757829814285848474801724119782215207268722612597681262140846057241117001058211139692930628973698091953773448134524409356962403402100307383508248395587772233508697906971785840518146659516956959142470587870524775450878348239320660814782080431028612086279952862049408807859261308462922096053430444326335315232883815901103858753877523719763207529005698401848378578796162208764877836573929686403471856986963900021217686257915533552436711289137700281936849586990888102799926607132451658453148631381255103380760202061719388706297545119660104053022249949692768455869702011992525111200916172232742776370926173588032480868675202572235224892491840354326382691729145418906843437078907979489275871506411306031915725873721777524204766323634553330252274034593048836512862919414004282834440759080437168178425193952046001431593364492189829590789065489019337622757391077458421130284876762707357037313655196089498819832560298874815227177867559160268253953235902662184797821353642263458152821492171363374618537990482579521493143936235195120885889126329282383328348167935972321536698668626672479374982571577985958175759655823496395265568685467541543345221204334634480202334570065392028162991987532070043361274893882518922197323037343759188365941008274289524248479656602609376556492911435988876183307982252965263006653346573451108836655543163321776779212992909570792197017126416031955356666930674202902932458722185258549643928920800436447204982716176198709176167695297185904114486882185818366158454045311234495768440546105338132435643850166924481572491206899098329382856081958251696497007539322224589070928884866936741770407619531460663875758167433020570274521190182811096601139038700045147986465075044443167663595925316610969579601715118244917666682693870998221016191623325714572267499421158897800519851794845971346446041768620640305827686862551352154948788120112180266644731017259873119043399564087616645432539751768102489190503753474233438054935851896320419625838420074101794559734224169375581453919156908258566413503618619112699723610130962450049073200901117372047442252053719052790315167517930527950737154497591327000250962451587838910686172635538654607612748049404293823280971452523362465655889486444202748449009048936724100549000132657439909907570079399183438712017682773702077260800994811259105447994726745680507855689299115580067041348884728183447460188560386954189835781129369713848673005212500831450632353707604033239172731718403221669576325791405820403619709422427428304777251944094960752644536325868500644447155998211610635152289539138476790563132104630610367023422738286184656142429658827807010896632978153507672007915518269830805880365508134768651470144548488485436437649954112686077952700700812215015245071981035129685569969200798345786121640709946009477460342129809667121159053312845371525629616895818007035214635106048327650753181130124760805320923043387675990995547494405408357195836215149169135132625872235577593388001052772321925394952589190011350747305857532133166507954729885128730816309341283998157777275186595701489209026010264750037101738952167069604558293338329235054665272571175550557317818177955770723366386552006105155930906795928714647319330906524174022624101343562254164086047983879206431977747681418297447256572552561740514519865038655588375706715272854807777543428676031944523799496612161132348056176928264006461260335772937406748941870855068701464968409001998128256320344285596481735688122425951663604815123653028445348881262194810121835220165014348737057726979577407961761555638178379933689776692466300305175841192367165263019800126225358016276231407301330249936109037494430967247876595444779792628907600663088696587360930466818059249142082490350175791257638795653600279524211407283572819151162389097033275106691617576408453255887057385758832229125921471980376413145897053838430930219182559689189817302761108831073122752714998820847787185848184212861498895186742874085784353696199329437064133888042180365188866333414516364527010317443357241717614666969118956392250256964858366047086541154623961451262969970197611190760964073396493046279808637685987265874452596074404660476774779218464263183154392904844503796830346572744630446390081931679625045544501109411851950434187463954194404606008002719418147661870658692547920897313723244103693574592037832252323070307092011076681962533951538324849439714057425083775744469715290998099472098505851707587599700833733340025272683578964464445029843416413803305460868386481103350477627476678063435941695835131960194174639393401188359819963971028696433053007839142260581966776772093456036598702176752153478179999855913669543071410200643751998424687867436487122312070142518928274941397707855675425882378925430973776038897861472493686766673892292436714680690342304759820487075286114568545244757294731001613612109477108207796489801164509855495916048185470670209728507396122877084088577794078968108537498597000509241735911862132886851030060694894358737009775122962292341306384697014582487317096252057315005593061057207445210610298405964029931564261523529870654945452961917111685916544564232706627540268845998308084023676933531801364797314530859138453151870944425824089061203907483768917369733142814893558879297546823748469184672014009426636077827048210586244901507499792791614959884108837790242176109377567506796871621974604006739487723468583755263911223506488702883874899808699354381841840325932890440781083553794706269683247220045331020974115769553132808264638122787768515794367483000201498615494313454219216790095827709803439250144933859610757715698834581443004780760249667732912333220474421538178924877056476378937242031783113576797697105088323628660062117649612814859543748485583735788973946398115170366613593867413707657176373939524272656168101433893765974699685599189192055816478502702392708506754373631331791071852426916953589624813438377524260194651206920772088206814016179853527423847913538474606511994687142613919595203675241000822722367954782856234150116780317265264691618822239398917377725735217615199087494206946015333235765178481318575674652289054196225906946591900388796257105836065221629446026093418447674216729904171756384314798019223011424419513268262712891046766210955280463336684665046899941196403675650557378040417483951460742399220553584819809457260097061645674315132470734089216363072230176797773140570793374094114292359023017418406086667627771632562178655339373339285384984563507621140517426297068761420766910828651355262138254454517420264705748041902454843770482323683530552251623336685240625918355217580166721558950847187340849959403443183640476886307362769606378202122535361493959654513466197016477049176519532694012857176750180044907091811126535442147281374274238474472096469637705951820407287510540739899548555114119743087014804722470783730874424987476410518241745200096601091341527387307667415381810829075426250261841123036358198625881150058236068710386730451621344463494129294786573704867673451412676306352383008396746853009317115060628529531664485793778734699720300769348425192513710230823366055018676827220194584828219433409906739148123161748005954050333029505313158026376689043320801466314343232307626340887222090109943663415306844316925876261370093207828336221173248077738591102067758540517263311153246234666038316753972328017046708506097524291154804616057584367013581351190134341668272015092407900150535860544741981335057533088861312092093246244603631635148590988238455368942572620306610078195865590459259787051243524969244599941467001682339898295922008717880523609277644012079656324013764769939921119176355236509820565252518155508922386397620553679956421170109090336948563270898231770832128068603527934756279185098887617328714395485756218953043846433086396849587439133510183810863707864840497392161456743370527189789789756151357562054417850811117785845635737954097077400751027227198551583618403082993858679270282261807655842194478553035992558844480924893464383177112648593076185919806011312131837277315185408838107202758688513840465414349200837546479954527686896599266082475271415029046529910328105562096047088714718198526025762655888301093575264244477955193815043923109888100336273408968925526439556448770189075379457838503806634066949606905848647723973331567419349486664231763966664960206696384233817011483577584369202242197624285825123985590425368894226969239813654922697092528477825687030862863928362628011644176959900120370726637547598879744609604947371938709199570995691104014494177979677215181726605455781663485881808465322259990940199575230450969534266892748871992498820664824142090909723718181816945625340682755039298104697730053015218635810216039264828847475787535926352148716667565274041822810652108084462586548032179434583323624842676919339482439900288198840700539111633492162968156477418503943145851621834218208029139687596042953073692684198392188428749163949993195853248020137579802750509803899685849909014368792558473151926885557657570868229427447886646526982722525793320214979268669048913319168595952842896699399021141377002209179045421580986684817590611238386339101003452048582158409880841137056333197381782284243347861714293073013241155703825687684321009417651353096415533878007389901047530343036187112520301999862594923677311796405064252881301220305957086372177976917996252182328334395378966652922865129812346740258504219806130453301890603976753311045325980317152540318390749955128728781186059557455673513273352461371210283722775556121896709973226961891236591766150094270298314000238531196835372073742389261241947276718910312697710132458746041221871929079827653899727252636090242800756847852866507558359388433568743289045557686699969858672835406961355961193552663597624807092266139140577250415795951752786474010844922930783365649374990428990398788316430011754708762292510498619340739180240722438178016653870131745980665540953585326682044950602542726660896899470158046232094606083908279261891880139560549486368533798326569824240286045633558113416307081669716521188731355526127127817402864598067192113934908301211187305075900375373284393636389712619223769781869929161203651677835507860703310782831285926732228913056537981546217375815883727832260797950640080123825459931164823919784035637114683997363104130927267290263040946837345584691431051317821375986668862174640545917186912976934445048160354916888893274870826465099563839577799484949835056423724458315933315537832147115396738842004889943095353373984208564174436818147288234179907505442403744839573040554093377781579973532907430377590981775131790596845483006191188823656485043752173427409127185672441180038925059255303770530038714780331600200221161484476808887118476590457779128365559812277938529771390744902938494952532198823612346189742637504854644329700227156795979820730903761480550955211421635629691356625445022363837575383842340786178139667484251624926542241000314947012818860590587237355810205388008382549919285843842221122767382408911142025149760470057775554894520259131744865206684731872375379227722441165416919296633597188270462902638951274090144025186971622415151681221468269424777682131863154357925778911955254501577441072807689818110949807213674179212228768927737705617736413491504320432400664805798126525647304990782559809253028082570051651415069601634446414312957839255123252890746450213752226119326526697487904672600413659156055408031963088115782410110663958615119693997487168672740604593961091852544349691517244238207600752090273131036434636731095959267904941159421264566284634526185007266450096619508090215123736238593566396599296125665253967501646338295561336024926927292029688732587124419009682490854102673501329485825245329781833580499973816442643463089004220307338925865864431760224871691669819655529993168123226477525114413003208036448853316415357855751683438621023832506590150970863190882860653061640961810984814495088760864352649171024022426504373553319201544188528177249928236047946856971261649717004086996557125760691308167922463433285893149214712303940292036028643444565293131220826972341437601575385278556583821335107781120927575328472208388283762892813965199965720838364301622834052100588244975751466394110687462020135870599216086595128470755176846617570238519936806719178402849956272838913469565430236170700269140808114327449197135154846124213548479659903276339871174384532351789841981013127031170697396883774590455556571239703520747303499155721358924551292260299630900194489975566942433883158374384965157903387442183479412223937056803701306068275790383473411965386342119738184249046151580129253354643943510180182241341006248382433770207992369248115637911314739716387213778284869279893076533653487924774017412141429401976169279540902205680193671660470155368190911120749741362319357579386575163635718333776646032357849248288785856963405022422084975104942388423599500170972175832399484073764759220826711031088260048331328228268020597977208616572294695802836777779801574600332727864431895460059648055692729167876870493446526065962559672517628354862868593780306726384113320336540181359686293461989242098070995810330855692138072908452275602481009885775411808408022981849145585866428948070821310437031147069352409981104340369573166735077951007876786092636769785218854610240280821012613927989523402035688822932532776158244521369407408603947584270034180658684785098584033890752679596435288897992459450578801600407458019826841738462306547066135114341497217388134488610616026421763766379693709606542300252836692778356476108028656918002022576788507550901229024582462220467466514360012886145541533022375553584915266320639188269797119633693044965367356389985459510527401302747823539845068559270939841456682689679052770184627535198992774132736920663597570647496328541379990258691276869334016886396780835583337780081749218280280567861218195390338571495511877981161590391479829579500899452641648745722823429591817961234473030305549016016432278078070253382205770842537831298223759180192648159630795568911151553343453252353188510143185988429746611236769227202127612553862608653710945889125727017683344520162680014673426823901679886488275143850968405372221075840974087794079751994639863310145055253241316912293842163602202506577255461231123880050610746431335020257045477280430296085257312706682077347629628764518583277244866540553154084519989435540175410442267647047427315808273372419685454806074497988782266664032317280188425947637789103006797323578685635758245260564471262284634761566161380295351944250158227772784891610658234798303282571908753865286058005036790346496956963007756019795583020122365230033320818695978337996390910897341448508877284340939509637823465890306771242502520736991541489756300949547711506440636236393135108940041495423637105228031867819062797816971660022924026653440272244337205845487928415853122055709589627304306085564312114786301470955723444048407484162638685422160701504160708693024394493504939047061383566403328981341427402516134121094574528108779692221561691685010666592349174913376389603892037549325461133984262980336657036461316931564746498715777612709451524437363880673722583810680967015373536794669545423134530817380628871465302987682421478330579799362987907885497972952817528372719773472644258771333120936872857235026278033326742838695633442938366349275246196436924752110806113520966712277239034206310610629959518147153138712764883021709026511685368314842074581787507812559257578030356624170486119347344385991386633477217809965998039066842112233108087611189677428871223638713579226569276092137370947669938111382875130796416299051163021092324432604490501413004534311724334919811291169514658446495433812944417206506253561317686569078330841491349357912369346190096977286317413083968828964567583438034678202162294728456231870938620308693669128880175754775530351640131037435264161653169698466685660904163760052309921935957159189333834204463853003816282505201937364693439971962220086497543663296164012937058747602864151852581072006797868887266208439209588484181734529613831124631031862556573015388639171166767978461899142146185367311891083951804800929332031831677820917156972160845713362417223947290988135314234247538494847472542761986774687676229620421461015443677946212169206034643571760875197308710369781843656462739252102086195788027967318062559655774186451549047790860528548809934749869549807549067325348493503484888845555436644348281015653598137426840179808466584570583983091023773173414234561437644867723745717967188217085201137041185119007019129660543378418225663015235230804097539566550777240117803324404949318951219865706595832144525857410498162530030895675972833822219077615672037309073838455416282052231227140261035870590446478410291963857713489339656063334825316380053014457077102471512440758411293489300179100241434461612993870285687679016845545301858388496945657891845682163731420035047858837108110899527719391152222025858275912365466619138368786785620453560437124775728174542829081058772947900731092492972555782359956366850643357958064218891591065239664788510181152080757199270564963801520476579750654312884453410641584341329167077717106411910746072751751382885699797228511992362774235319417916707166951589068056140197632544187169580172726325770823638548296392210803158856007883000790533404296273933667693369898221429849650506745397419704208490788627480310876142738845191775643689489335875296224994480078383349327495269818502569445720223873350028386799954951795823720770875834880313708361697233193468811656808352433656046687225583027693371750468896785578841852989485056823351490127941317337225870641483088030896166581832938532833112930481124532904057101385886108837810347614603844986163647916449304320761805220157359983032013194096496906829275333769945064109327896041759307222157667569653448885449006949775846047347305000416736870872681552712258559908831386978437842609445060040344772840629637571515002301848009090369365117169744695904224252913703938548816474667128135576949335379235428773513285109308049792878916791481400576376139334200427121802249375904385181140236561038188335167916435162655550782837230152951667221605849166374670600256909406099072519307183563125407682614478533521149332716099528566947156141366250223961532246540889697668647992569600782023048969122546140864977730292154039751747905713485361233568035656718833033872856431797725997264195595931265646701155083793530751808270827899632082916168393677578122645379868900040441920991915711908439929255619741607472244047078919481772948698371554738616280095694912159522025249113782472206787752838816059544922650471459591335603155763027226261748692786808527772966834338757128244992981317049878080449349068371968707252814484782816922152325827890390047918869999875420021172316029197039636939930387201471212128847897103482140602996849845727562249756605732776354763642375348137933616616146569934057188541543944456714782584278883853634123720436254398801504899545694659276028959714162837282133242929401907818184310385593435463882280219266689484601678679698553652638564219817034343985161323022377564202864611162247177103030732820298478242908989059800019778773917648455601563106296751744103758830435850045492137335699805073098222277105585778883028209119354773060593486305364750917005861498595615057903038335012956337189823708236454651306013500093178097718505583051990214876390760058903815923912038943463699663337314302451543406859708738185628589312047528997166679444728685285363200000387149123579596324274943699943259482562471075966150909020916965665474890940328477352564510015300472257610616734812063051132726589652961128616573271579749745595181930306102720786833406870834000996986623943261776863007729255622341089261124650180186929360892291577306187297988968380749610357072523132302502683126392513085869920491229387089727318492542736111901426932391749191643098679231690643677324514620328221304778354528886748483359781828924089121931864686460285600724223790456388755195814028925837275741701436302441471985322696373994785655600878120950105744736180167014477658617836165551727411934147578971010671061393553444246006498208811682101464226709469185428052896812393998898859434526537764683488591743493388637296116648125353389665449970294040895547037833339219194355209734497618484206495552680686898459080244098817412503886857008710943155899236129857048929960753976527500196014122170369809936857874215448735869827855030784867436217262242199850055238035806227827992904118512754247050102735439100630950658914161043235085468984946025814051838230213255647810769233060806251840553742187358645233688948822046584978963764660931240455975950364284840802129492621593962522401030905908816985634383089050685988788194876044177723798230630158341243333150171547968271674797900880531951095024697658316679534466315741410194444794791134291984817114280752839473745233394366708057338757518199689139836871864316342835940590973951664943914208579716127531620529257077417770155021763142730217953966590552005067048010782995284975141296200956101499779570625475657742046309823043938783820182316024809669732217937210067201896590807513426958216338243948273425622275000994588675677537563547277750196290318799696759122974170908708121301469468688423042089887273599059544459583992305258011098741054723290415331815670217138791366502341190827416460351188994874551523355122636000828007159339363392999314312185880021738153694570174854599308315648210017077186570905929523630736761059744225571235006959445588459712955108713091606121946091149530348874306431696445772080794872539884494986001171684870379368859420245161156726536502053486121861797180696463886153221647538354915915334031240499477090249569623028133340279311766326029258784653573497998826397578171216282452007541650268140296177874742003108520203349141884287294513534825414241813200224574603429020734672730117892764983378591843871461737636638746571074974360551322246683227832068693659794676116872440991878939412304903722102269230602396253546937508946979538195267156590061849891910279702652715577047279314200208925610504900722413468024163890968487725989252576729122352062860631720633848082807725335585185370420425173166038922690044408380780483591553025941798168960491222773323202212788925360879550692029816470384470025344239683434140892057342215040537799617977287641390045059474255208915614867894652677626290812279006709860899116577304038667675257053596663399788504029274291651460225361589961664259387497043844006657526456799853555219304156393947952222900633286345238463341961874118066424922049431839927987768023557768040407449163050645384897359069483267748154695602476662722465508315634408458396099250352562970835350991505613324563365937474437065408281301617258834379009675207791351021255505817614824618920637741665987225441857856955082574455736239048430226899918978146968604844559872384948770279397857963318743760172815502548739856549740274583348277303712925924143161711992172015368915484836103956972661488148764952937263809822771177484750768518573313973869868038375466142818943884917929458881379864190520195562974556434327663367398314032004990139906413752019656562482159381012075222530122527616533473534711872719300452828223812981701278586355655035062904211965199215220658927982143039577697584693919001388024471034497392264937084302601388591446133864860601277217324442486557157390643386949306372544495561400962283903864022620043596873238663918048141991139363187952773004686802162771021189621688066128786511783443399872595846572978643654469868807643792073079619777840748937334314466729492633312829692232504131520767716756977334826286858938246253052036651156373593513880872675832158622581848382202274439481186403835153732652755163836748844488642763150416713420041784815298457013867845280393501491458786879718928286151523225690040902595641161476848262931119267048706986788794999088596845860846310455349673928634100373830285596058174073884479606401282056437201188206387305638689753983484109400354229233890268483875160947848544831098882945431392215272886886222933967306193830845028264828533921520872341379145826527851861824716033333992147524732957803734957882658343274630497987054582743790998609558645896343853765857605999267317211499232105628364096947965520725171155122890113103654726278434267762516615948740895120410835599135143984697178328557686628277234319851293456943488415044331143054194334127619147583304804688658461791184246940675557047062362515774737767275311580318706325376600672406884042293577245005711640737620268917289907495459695477623405141887252354626923188794764596955911258575642074256953667620574617975232268665684723032750498384099908079005245229274749200958355273034091521168317800997415422859329107062157948519362092001736957093372426127528549170612282147979897791686408718866825394991891578224221976027911093645764306453816039989520589872393477128867142043642936169927570411045173746038058321090052581230347723259072335796157768977456228525180383014632201916941619061116581524538473700488221759442546152540193406226416602520363499637600652024970399893268166838392745833062020286565714008043869611768639672831477859750169418553056208823846493834100625618648365233553981203849931664096601781985269525099221060428222030228762208765623237086874265732063135958440266042876504790286142741894870437476021036769942018889164240660663280558989018176478376704348913360447641393269893793906558953739727396545181528078418573965427061457905718806613073058727816579078922280397908167078786056816977848321185878448334912458865511850636943934958626247567815749373629619341771236456649747357319706145828330903760349803420515083862270375230079115453710081132931536464955881890445350697201127877934221812914075413786699955854613431354114257645665213301425494361820454777239234645046541845895508611532164339880778164945372013338977286616677292514872753578177607083523949884165179634463639589449923075974575493230145799970705689241434518213344039460550212563018331390574758537175224501098712128550766508277864679584900393495649726642553216967047699472967488180471633289924486363661825171250912386320262030519086271492620160865210647834996735422932563537278062928454487887142729902141646260046179553184277144467636807818125352409502132618731411564927441051694380043957044841677354191918805654113380471366815343479871788515383702274481466786534895886764238335196014229556755588279191302985895837957758755392436497216495771993781164348653681499482928068560249526478995627229210014269348975522379476049179852465962045730130563747964003272801251964875438656600634414999794783199099938292767427628569654897169207723156751383341103768914912280782545380328944553843659958904252144690723753986852970914924953000748054582502396218932596521908300254348090358982333461081447058514780644929267525751908506759683502093342328923577534328866422535643209241972138997936639730888840057822867252172488013171317257343332400548189446128874717707868353921704149694316161302634443486558982081598047657316426311449306635664273497943657892006215369180401707373201550377672445292890441025756286603506837219711942322078603431195004534708532871426061476605302407298234179506688255427887681828403623380026969844518346380479091097401327816269281402103194569013130392997344478532143553917754707252925752174270530561928779487538725106601377837834652614828008097982002638642543361168340349565404372264452604208296450179267517425285561309870468356827457611129025829885521739401136506146809344877817223650572405663373439913173899490522863841385783842136817085485269711945575027078754533705478047645404411566561330535974836182204851505051815933324480282694937224721524650437706416821482320633959036259500487790108331756644809601773099676069649301926195923555101238574696331538724926522214015500535646408107328192752194762064964344867247920632329628618968204301223119117742673671648234797233467004738292401096692281634118201895859367189204026214889443524415008558169604439240989766822210829976346253832926968434051996764731860513607657060228782989140516391423441968488527819212256828548117715480068187439794684003392401505164386837702199078755810503385394506363531674531576461907467029001755528479500108696817686297154601860937524973487485515485228519152261250334944059731663574472763372114771047603237447334661345961397383527774005612012345172402870380800038272120666056159105329224870847655158335707810454379998451884023475609204529686708623780740526033185759722444590250454128824589432655737511952345531577374125545128077315930900375506571488922317607650690130805566166317302792707708026752476821785473211568462467998471102009424235667943401257420740106608085742193031020854498185464654758075491404481692652047636430499850340885073396137559055490778715430007503984347822595795102017075439392745765810415052627828209951749725037016409195098743694114380755050792469986686384624597216496932250805251762076795653263387448322045602566139900147462025594402054006435394974593083073642682757936956591173323825133662460450031041378944622599853390747184617628005298414974544218067074358020632375236648332097845817000165421701782368206779534148794630731762183788309824128790435374523268904947913091480972608502513276176762005181607145769957138860138896022459526862046096692187646673997596745681797425305746671885026216525933847977169035620227611633961632660361903045356771686322557067000056104964343528105457561870262422777559228303795578980002572164428739758789697764074199292514200101850890088840120246301923321635443608560661864134596598957185090432728637644285544270408249395024995471967374404676679641518436876122287986421010469236061647741678957362045016676439079958406313244507008842439380727812345485763009017169119731640368685624659388644608701564175624254931524222877912600144163104901152128906024908771621098610755797976792389237082568219658978346721212713846630527611381486190074929138205539834996804683179798123333143716040504683057320810538229205318783904395423548027379799089437966744535096097113577064971915374094855468741506044082818962772876405329495818444133038605549373675470953750811959726486590060837204438900261207300418602790206586164335626744465559114991873990916482444611324525761852693769348857285707182412765306321117875050842316362214374557142236484923349546227139771226612632467311369562399548897686089747780812094220301213489032465298063970578868078806179382828354257877807674097923655497326768768752854800898450464225423851033809716701799612336889444925734994920252636610083272004614182710991755073941272202956086215070249844813187941191724951877233084823224169667427724998325791476805986155351069875185955544591922948883645478333304797962510335472839955349438611910217281011874289166900386084407522807186826172016560314778120914625598005383841780790914188291205601981147197318835235685011693001258638147987512271082483590991268367854988599587659598178184061828187447189289804259875507620443914516138777186624609570041246600843119705880409540992745302869887288503855065303993254794717779790835537090123925070970942584456027008622112022533858417119559361438620784063925606962725781323528891378209683933603530495504860793596228527256572719129118652300470344348447606748012149057983252867143096481140980155733701450070529687546743715908651019446022546530156131368436025324101930629265137723655215557963527154333105063334215528413906073960344465318692406143028834561767120456454908879826757665849099987238946579162861210443719484072638911928268933913017655037772265731336593452630924309778439854026606450511474654315579612406320008674485992014322758308679387032707999160130382615743041664898409148830068486978106732025093365588933256387577491411656028417170642499978999741856666208663726196398506370404233677446992887970151515043618110983157867168150238523673377357477431309038835898237487652635111814697386209269235457587147636546175578932808591055302474458020825306115183701743500063086980333818241944931271853340314566905697303338659292902578052485335879378138098139736752977551867467986742989934535482468904578473340324887481571587571434880540245989453181873086348358460968681798590943119114864788237679505843199935232167623936498578940454070982070014211926491472536969132518063423765955936056883322828737255709694729475775523082003302036724495817627080327679248950563901216194284199243504815204048413568141535156375128921432292667855094270427312953686688536277539657177893887416892771532671351172145273852896271049738025584722587283627455593264956607811745587962237206276120185268273060607032458864024360858145112173883564700397237864316778457365028795055486413715339996222336991960258635719856063709044518848431919848626755756806324353978257919147162339986552264186631124845634024623851381028458083369618281153941247181458915803422608111259603659485465313445862490195001549104545481249342069157408482006055815470754390095861491434533252549611505861803671395671868524394654719835010056878087595822915047820682383939086301032187058595630149371863207176050915840605364768183437883332850910272823654928399252847453210361083106354842123176496152951150972477421597281325795407760319287485713358842741586059405114796958575187761623764668690389585415192101339305243023399756047115149816218369612797713233668700539840104669986624859094415704335881992391038513265641375740085013498483521043163136778559248490187171240199730068758717604723437642904800905518613715386603111821606219618924212602231183944151430188422928952831992056014394195667531341206021778093357407269940525830725002245793733876178757807406251503500194376613279775209183208508500396981164039472677756623120728215116293998564670449123904591257953696657716397425903694606327808830793266242318947137165830354580216875179825533937601616530545636974119498303410636057988194802937955575928891031199348362522878968546454478302359322659585851674234491892891979795517196976387287702230680223203479565217155999341688109788388768926253593729492204217540587035329472381697538444955195498911712898239936615511627853136020756125799920893574228241128162320665379022492269724297707975252600150823565084434676645771895993481996158445087675327380031452750929112657707703494613544049591678269526812407199518376630936247574696767921985389903032220725556749974461742276466838313135548907344184615695005813423265453592010894795362204519864108948093362085966276744854205362404495231990454052861813304683715393174940095466553824121424209203617344159256650438586947042524641090386274150513741515945585148270887873261147703234287784046898795733810877954965359625703810937568753749647645164765542323097515065882250848064373761454135770438325804070014636108641687298945597902807711618579876273585837623787273918936540879969403353204384766957452607602222548846543217380451290830305671184919919322935774979361248757350638257104500241026613446974814039218938869192294733869276858834257611060747654429550879379158518799890531211455251154412759256099943813357944615867930048204600100860421066362972315122675513887459584639043193493867681049655359131787513149038671217537111219970710702366720031075864254505115886045584355314276739352876675965599055035656490283900970291636948461507037063382530990357953362768405234204340158142893431945656530129406783763198261883129177783160982414621844868509872634681014798023815697096129814424463890111693963280479957981168151971016960706026966306238425641525911889558607099800832989140592742278729806195015358636877775174606428604018487793159186742147750040410254169978892381231860091402809124761001478409618532581702889773333174475163031099717985981543730475526253820592652677629284863681371509030834643367817392279570588312916178446851631105249440304601133759471357469325935874963349738266488496080783948301277407387904726570439969578794211544007447415711089451376211386927284161186442275946503524464880099659814359756534588102341078502499901305792255601487269311833821277897233044128089421312762770792011574253047230348796942092721237712158710263617524886315347335212551393001545497065665050341423357001126873783342284026014135217107846400805986142826206286384751462056431490700264281100566521216371016874879206844839566596869198447562752975825904180952551023664624698677786579697368036407236669633899622033334103531175969252792557151645990633837141361393395907250321124194632184883366140763334960932679573091417648255088702911737623698982294645958971507564937247287723454327424452835739979970754934945960599761954596564960754780440127713276392706036749630878683139577603407925053830467766125461945679236503178503197494426957083063263391540488250127165053740900578958315818278369087520388954856789547104044615917313438573836705897833942811452265735694367914379748449711349069418440788082465804055649248218463966231229389568781958669008517750972260477995056750777594345797375158545795295137281323638138917991360834234302711483701247298275055956779178143848709475648690813333161394447901415868984928707159651779323756486611691880496963295053421405693926473582913774796862072249591464640509106141506313067431312093327685456611007788077658054407663452254647688411441283134454074086626080722193083891935590384869153316797159180491498983582875704610168444194584820020862585656432568277588596847511123323122083805155195193071299573416569370258225949056636011056243637574083186967177667206583405444423187873966858151675412523799075330813253589190296546914663693847867642356863918400065884667339947486170184331125053611258120339418980468742431439179607288047573426031326989549136950268746988711449261010055342926031395734770222199186663877570612776448159876558252404874664694249152497768747528407959502316123564082962981944748751661487630995015306472556969028028009660963413077025022668205812957271170582805374251960869830018925329499720479786316667896555019631070301155040156266703979871635155688707329311453756958256984967566433960865943530184493162970512828087263810296104990277795090971947861841327249423201135721207887619906419373657398544298750283962120803055328751122380700336671370935874003966858521896111933245254842729965063031747650690707249199735498272815442543387534399266665711905477909349881762544221150088385077663479217954931344136397497636449477648354953245748567118491216586085919313357009090672952250210127502186558954282739517557855804344160804358579663971406852552076968089401098711252985840480065473373492380152552506328586192536484562289927622054995212043990684162387723373282554975392557175847283438999596009751445933320711446467418709814917646714017177956667382651793107743447201023021646571359210827851379832555435643369153402433139577696658126704127007374075275455352910732477759263331423577912682108888574944677588176357377769874504607222966738161163032220127797073731240890802786382824487815884007369509773175225244287795310709018394061351245148081964787315933983577553794698364254908048758115999969513077132588921836430449659022123897223173967278210429088485555548521694626641034863512652341212959148245614777373256321110647827626557113007015068360544093525042110589408795716127263940582757419806928451483753547172530692663145878878486462260763981202432071008245208993000168620578756197920938344937739267899144992597368890942713602912300370786289132339092321829954010102423609296918762110811966384017847946684996662982821885214721335044798205372631032926814426394326308634360533853530318351252252412359483439611520462786319474431645797433717339122042812336131691321093468856297117820730815033226119583316877740821037930451620331410354925200905653677435192620244185695546933596404133590535632037463289998317755627647404702428562515148000698835021161707431157205780414076408115392142942055795068083067889487313372776639438075868907333820474759028697440618996315777856818382222845175411660052812233323217791205219482508828950033337239628782523739411967591460437739251080154896365243950922759024462357260574546814187720347469268111376447944443625628996654097220542541693710530283994106421433612562240560529554448070220323021463044259975634242309606842710542677578509260243268575917650165604061611096545462562043772078529375651375228608725877480636702713731062283491736031534655524327793476355020779413528970509059312565099489816137358609013802211570654932635925486757651122272955245595502188882558616079010156415471953553862133068516211063004326148157834272095532913872802860052199698264831829150061493071116078294651850918141606092656638607043277449880412220381418244786585608009399648690715360212979806901913953038537248574318889993636179798931360899656739477747912010911029615826479557265021724385620477635488187756812413060128208313916259840250929566432519887546871813838521215943561005631311161395329702057303600477875823006172954443456447571071348278284110659767322343015224475095076022374831497091910536822860745936000694757250234118728586158383691074418723661055458363114636462980289556999783983094778175907629826499304061774998286841082709560617397113707793329822054135379673265734522171341294585776729546613750062528717690706257320084698643857988468872929481497178185019396357371536626344205944908566802985460471006130802116587448350880109161206658554411432382619960845106188671032285678846473929437224804844653586110038017147214875306733473663411129801330168631851381325585912015703460458276910076017655184926085430775310148416638200326961118666088895583459140891573045429729743402063055519273962257162902220112145051400646702793948071408198594114292380223566716373718790367380640523429304092967565066412512899719484482066561407468433331315435043183559980346249031302030211938446582243222188373149713928876052825059276745499358865517576753807266021208094453107247609306689646641447093598238754643492573157780962414509315963320488407191853368552756460134747992126541030822635132259609160341086631778820838406928679465974190731962576434076198233871652586146044410387137928825721400556232189888695120590932707955624518806851069811581488433269310627040282085687636258394352752562711058193684247577214085301744550050980886964614132556728025341212423279691035683225278315102165513795614051371523229483091102582875216811362256014124172751833786278376458913049787074388894335499887918671183458655121400005445998115401365336579812918167003438705660653051229406690780023298143976343299537108400836019552002420595244645680327878319219882308295886269060580683981223609289062937136462755775172548038441692426896315032941352133599673502280870490372225729552107697672814429828247056266649463116642157976000002263737267122799241017908099459625234941928984366975901834769192001843483915832103553546636306326081141081207143574040006695002847120114389391366974017314364010176883833827974196318524694719912226758275787777452445707222909348546186549964711532986639801267269012878829545101977437246952731242813693937261944286830079022623654574010699674521131873764791497461393476062190175079282474011150752703177315548249090828325851676068192809348209379366435400264127538733954669675062870553746337574066507036687771149022930198579546374009234218649791525897469828884671432784104354221936147749841503827375001396467130032927071710203993637241108784641512256240730913045716851069864342725577150024901338835104649395676890488980320051814373160267942364692380456699394887197617092877345933883975708845026310228865836519751634028559525715044486717047615078914438856597939010578966484759828089388720225422020330607134365145125590090616097200739691345035910431139912654413027741439719602450466306572059978201213351497382821465856144341199697974762396299675283677394036486440885322202093904015973215065948002973813687706190603588637385423927647538428642252359205856417531851728395500287009108267384483881934400338512961257844241773478046160262507005339651748900369205646821061349359682175591579606200948061598502862166950210687525503863954171705634556868147922302215415201213781180386446717783037349218207254517686675135120895061529558304838151832629717487314052321885959049585959700264454349608408128808415903644396152189690781417816953879053593978682172386496680340022438524855112692828434619515595477192635812449413144398747788918005319378151625072518106018885523974342662139573378355882867764902188923878230448796747996613004782036224884862247710532127452462043650002089693635701931951802265580586366814086484005231401358948137292084750477014466925247961007121516349291169370924827668131067677479603091430882935854486206584807016769166179417450483933933886434433349617756523710834785224528676624947684657328230965328244141280768062562621254621404968837470398018713496430390547597165156174085822699484862793729773998186050813227052692529003160029474497925519123361763355043635629964109402817210587155752677571492413934064318004335152858281846358639084659692465540346752428806018473348510224679999087591418637483266157365320629432261433433066132507952209665107355078297078557072283250690970995045574815629923772994471929749916400092880413991328087730465051890359377924969989940591404920890716014079954678785570103271934016290833629835007058410086428342305340164257461733056642085956696047594563964873523331972003726053561794552168792564144784337580251085358766560391002513371162156851987707737835437236094967498929772052897353361132845729794617323561810874026114168353812696099074923380475911399949507919279618469374209311942551264116614343332598598230524105680733158851981491406049091549664214668882820227231782239014703113879625625980151585740861310700381222861160578853165442444243025300829648265217419564100076297061420761821896021196564393039029685410506839666000749181878757530550678144884133469642647389614144619165727026748157029813929227426987810679334221999608508416673693981784669658881257015791340486797642310812449761190760150546347691747429561136832688497402677678024534984394561798999159206651471405340900829759388652225417677025486891352319822107115866819696520882777989872726101672598155640694173071133054712989202828391415251992844138670708185827949946750242939461239626974336786115335448165131604577328118648222078346935436237040254105836978413025803991079431009673195430903325679450566517252159212260741626927875189867334739926993524973910242570780776894404092788593498850199697326677462325821648828781883160864593117323508009866916437412871950875073067344065674555344988904230419086954484175526453740903334144756657429200039760245204753833987079112664138656896896221432109356508367734598356232696329166759371132693880304860476493923210515791401891801977164080176344551589477196193139485705097264891924285902642958783862665853368122786487566065793994996894963774913009158995859929392219427002442391517442389951170812140461732435374741350570539647163238835527997103360799627172454805250983861219788585079533398063240941796533210198277428907644014233360078753325363883523234991805820760753608055974187685483954472475668828520411649242595924007926540286550940570781763026695877193598469084907642251388385256019225228992238759367434220337911984518413882777104278150555198763162878805551588303133898055255282986197311215970855986380621982899549077372962517646961612349975246836815504294561221726810343155601550933122588131571905399390863860555595454185987229317141368416973394263354811641065691723165392126330103669471084662920170092603642761444706610521557630523565514629028112384958038606861447065678371080253661221523815648016507496729638741156451935949558913992909722968649288315964968995487617101787168429306365533028747553718537303783701807432138128165805065852748030969340621592330431376889649375161170936769212600448078530901323223147032985191157348808410871172412959242883579529200764107938983417930263809944442033019189702023822419401669301808491561390489527523719715050640318507981924247039468395539135813399278403646013178327599171976782187073528469342912249013698682263440923372533640946796454839350716447212573860096327024739037897864071575395412011502034018478402629067935037093116117647218692216906571268554388167454341401285804702712948966293565066913299987796575001386179033091475403037086180979082737561645458320636606026107636719001289744579536933260114833871162821698982357751002115810657933542179420715831998813927923774673185644313169772854791056464392214634870819499794192475712395586959529439100900417862145236895381378416991703484839423068215747536998875621776995223645314819836465100522181892517141477096855453982020671595080555668211777405528422253998259763089179578975260129491475699166434729523817769684513383008353272447565763945316752270249219632913024261190517735201344383366837634497416781750841122374303093643368529726987712696440871044436184676887012632156397488132738701430489397115829441476302634065631263460867256118475912755490890978711682278466308560606372829662275253466423201480633974069212120729099235024357072057988933923184142293755823030988674597937168392447621638851958658543063952374628531391769367457410604549370583782911154941632245563381194605613843471993310779549984458494012443344121329837433344160120728742427279826837806277298700863727556025973450141836971212083704090450013082546636402141343433258596349011781481780461508302176783158370478975991324992920456580821283665571431375938147786284284886449909067553539060639423826120403318914482944083401228129165246124153547463220731877955121196903836728997429825525402771939977962783429561501229718487363807016119273467500177148281556961661279031832276841687575593430929384850583515855806580802398693577755353620594581386620807113587661639955094680796562971508883694205359417880341310162112087581668450226725475044272688313599464543851591773956356844840854357411441610892733978518434001688112140804410240290922443233913363234226302416000987149962546283529109732924068903501268526981729368183932439390883515296978123392850009591117161507881819757158358139769840833141679600795049984123055043748409445886584104419427482765220940644931981111769645296694088585427527848783010772658541560307047190518532398661774808587679007411444680382206274962830613107696303822760543190641991752357508240770687728689780992100808121584089879289266804378488613733128450457780526535921555703501032674789423145308273564515289893542971699143871155735387286698806275558121255174931472478431931794635637001516247719292293303212735763737969958118601494011272571289703387027038145114166375112980620605002376893683691197120804000698582079457918586253231713238164780804597010481897034732065845301392251180189183117963166909009142613287797628074996383833412349491942501442524803090468387597208504165312054122392723044740948277713194742056499801792652255530339261564923063458631582514520295067870794431160490739357161034683552427650677864106046256140453183411562003301324601253716173819318603156459210840101562570816745978096147882271197475829414426166496475678122345410101451584056281648076669529496058616555498509150340793638345304305952941216720876953875524402445801335600844408273275941804843980251414972874032822355925446411876137975743155218497484927741284640648383827154426010431625896784931981126369771621034453410796433480996281938768789862827701491371696430626485086750648174317471719778403190798115927667832612470933152363996820036086420339962085304239445218532893949454179380690495057797784029969611755782870283663570745778080771114441303424093001957744258927187262049493906385411100427331044596760570435658680822982171690191659442753341098161328521501527929966803869543487251241144395504014974082698830267568205611419431998323758383111685919148059787581332906756407027137970388121033252520424308077939978519999845016538843259825751260121625372056594160509699664979306995991336077372264732680340060100498041369209132905904617841442569552189409681225010449122866066686863943880157688166396837206710838049636660576566135456976722982793567436794243701370020474344636535221662859556021138124469430921206146578587049571690720479928450136003855596713176876787382101136230151052648159891043521322703810697123164053028651626818333499715599295224063653979709391057009278735364771949757369575803581573530913651197755529182845903768276884386104288352722190115945351209791324969282321660536888701265430423225671302890953806217548714674455350311248071792334200955489322804049996876928085760581496884361330727432174911910706895886762185888101931616152229202174025907263611868928315814632892719737691547660325443895401613417142384996651266549749956685242599124169000255092849952286853612932009817462426171428046274003001557904691817293369051351655159201723846521224493025533327414050725058600971387976803640896970891335507909090488780309484770117290493148396235597961223833283121548369836278378977837220591070858400819912809261111704563134138478488634908456065458520139244803895866038004007936542034043276562177112945163979731013108188037151281981617266695097563266056091597519983022223094416566917051131666597624104144839925603478362763150056050793627485033500182135947776836544186378629746214599637220594942622878808418715168481409840106274913826636289161340569660384447478604772307797965149618889847862016802694737711327859792194861241226288053032375815984657168311010185401127856621726572053331052663600557041967316146180252018083274079927950955458171139475722436645904860950514211857608047590109147911106570176738916185330761640161784331065991693889637000471406895025494185842064241783514147023059548436768722550557828388618650068239688617821173078414835104071790015721003672832635818174908208337602214386172162344332545391225474814847857961338110925342734154495730286787388012363080372374684395302332270313707531052009535886542927703421017648804132668438996688780856863997445466255832266048534338091703514485356708282137678003942820635127228357650297844341329141826647225375596635151206166635598595781399071070664568367210057223857546237943184287180813819456895712348180090816905665908521080201392146146280501378814204036467291356079189985956379446124931586336401370488272415481760327735253724848615937057324097995930240444816353190887450335646432083963894253163193011296328596113102687648997553769142037485798095562031123465652437166212800981126868197000874119809254192006268577650873125552407766718453356345958782216284658094267897701559082904387088018738653266715242961661318014360383524980681083380049885332702544314967577131243705782246238214003551158875220401873705847676036558650710134869905019679476949580743270381732591797912677953859535713109232664288257757174942200162164872041008032626471557432896296773340405288758877272227937152954875115684136332090394708136643390336644730998702782094162499350799957277610653350270825295508445109003737050144515459188334659461000954239683411887227088006256203482814001651455271607468768784544256285487265195207787234451389808945847839049863893006527336537756613950097010435967368389899449598602753544647464500137212471989099281364306771036381314835490244961579833391845092398710626021989407170249416220449117617259202853521908780088223999847831417088415157366784101139684774253348311956058478710579123908057283401549554508244844855104350671498241206012029302332436850054321853730840388446024784220259368212942581158190510046407929093218459339876697810174074173883293327063395134098285082246399726178303998761272939184243831301823067194029911213936659702104176605568196045639727526482591271746426884568094442776154600585707591551333785157238796347495801156291182096320328230215375669000024418645681776568793023022146641073021101357186276128168052639223498108891249174858295891056033240430633102461391558374961339016969351639238735799404336289481967778427478636112729635855059485687964011678732697551491241593997373502632815066774231241534521146371110755731303213230663314279444227463183790009409994482991892010878180006664113588688312908397269321653189747720360250295768657361349260078168246779926736330423176753429727166429238524650479344325400892485577008517961916615222277538694635022963258392753214056347713960440842241598561602597949294954011015473267230282269763548801292715514814590229544355699015097583237930718226748732040702106486025737312741862456915732256646378239847175754837412034653347396528899831419343950322194765729987988006578471900858802302716847892334581360422421620573005677247280828540227691662092315772705003375455493485519699933888632572095238641595743549212702212645464824781760957824377139716668606658164314586383013753122113472955318349263915295451352647726419617925251203356824530416162864925534886343956146606879612214345996283338599224612047102200335525418813227165556689616930695947037811636149991013109630825473503035275823879240234187498134950626834768895582276270176511225953952982294615270539681925201205708269459144298940241032618275349900430936637260070115309626760733269260609200812524650747156279762352970695220345872968668920831475381442506785973148936138864780929423610526047853544342207472233660526599530412442352885139075304363283129231618756442811194138389983681103699217598678726538190635628429091149539523545625852446195562546479898077822958917353800939556983323113406995765420682470720301435351217280029900438165016421072054836975157032552131929968535635395438174585010046668192925917648509513652512103777156230348278665089325516494515114007249088189937868084153928645379653237968524465451006803558356568955307328515596790039494676602313186265484558335356513153435022741005317745190393005330024608626802324763214571017827533101407429135951725164602200493385776854358547843526711153807378227160808317031433117050337422131702318044508699074305974100747464897259789594957238354082707914615378861582815616478297791292085404673473467070196811091581132927538613182556823220797251057668776771180745670429553935234558646299216606922058201378338670503538226017302722236631754726474362903775444172856696313066990683609828517349599267890145660114016511908442508798936564198296800948626787442561318569505850231685562171738425450233609130900148316268636287637600279048519786687303864427868485958487189795564644458530220861041135706466309850641206330321849644131836584184022142528527552347348817558069282625901632374650284912564314192141912078608394981407723501306985448560380021497128803568109735285832413206127314397469164778320759687374578396170037416942176737689884056756003358950673071604517059252251316709443007550260256069762746025108405000434238700459998108176169564520925788822742310185263667957645619891203124162646241255664156897747792597807992449232401998320107612453224542726209573721530717885829005837675420604939897621342707907800986458008561054701830436261465163713320889921326110453894346382944085571956129765778617697589561384220396447726619897530609399994232807338377738115081559051938570012292589234021966649393633749977127715739852352292271181309003538147493858979493614397945314195324998756136342915350384113524829159375451660026177486082534931183092230913237373205576537699571210811402364458117541508071806612080880564509824491838262675539887675611222504783662752760990554232396556600112016101703121370181055390121979802114365724092666667574289076040427263086199415501930678175338880399831197915658165661521584783981761373997444255883170229574017552318996651335273601370775119712031224032763705508572818439719884856103576722618450133629399152961206234581629108378633174695081680879965937611007646642485379806064603518933890907624478009254935679918844748110775091143322863929827614424484523263820715654575420902227121791645036187086765375965636534316098392332917140821968865212495473180188615824591785417875799903269046807728398700311101821994500682212350679712444776889108514080222955466526365242207605126359178223276267733947661167344917430431121559322534650920050158323701673775637801836554899643954032080302615119327511196029124601839701508687565878294071605634174451003273648952470094888109592415176479544594450822987674475168004729691878383895048758212418732931916623721701919466380441720482437864472160003939225901882835957579970928224407514502706970625598188548561090145389605806642879602373886195403932879727743121099693156264064493241517481933236019390102601617071135983116716086645366508194595720664439090004960141422619254566680987010339138665075393629123570046104557870480555688219897311952811082384882798808989399626910928666062562474655991177172994875856601933126487867791929648150013904825290998753120787564306251326062377093310967083957890442936356583707533130615704479214673424645587514359435733093559459559859780560937618976094942165605616681448907178399229791421079744795785397158549100916199578246086999693814983682932169308066736191795020593071537591652406210398976938047901249076648909893890832221268259704150026009571534597045609819366660830249029910784796026519270392347321809076781173646132070563327028834968867392632397012982727925767963835941128445658738814294083450554821130579333778979441354479554561791790991450387397836515291745088392974212167245757781101906280371397222497415508773987768125404320585541689173462722637834783308347902529497316907074992345009995978885073844766534317778666601702936538959166149436842561573454430281183243659732358167483565504350004781308027046032480683431910608623485989267716188677487714783452353643333723405149244974322420557823785934317005655521411309846148169099635316786192800729410142136822024816426768361282387020570760573625578976550226490870600770705352128950341715871774003815697810950623461864859573737946637477397922276907255253253713239165414502306650445040293889054316051305199773591638268423177597389844396010853289986741775036500475960278312467565215515504075872980472459416206137299544493070532040711428658127680757580594433364222909569012525112455724593729479509082560919415132747656119901575431193605857550256730902201586028852111733727089276772996710603530911377928838206910312866504305016526606716260629087952245589691730561390359838914556047504660597252826284555246436597924757965354449364515075979995098883059260283558673775405919639253400092229815680503067258052247030235809546890286835966755407024389040281203040299213020287324839446050305867409947024798019259969498722328975497909388125703761638187861463553480679001500567726934853379423516205969349720713929282709379329643036434714118996877531377650096075368809860826547791748249727682340820821442175699210180701807759141669613765264616014007532934714128931463996342090418399205288016361655319483581917704529937507857633761096728779175025313392529642058022123381640386417711959873759601606410257883125501164544211878036146143215429454373693855343801725272887254829795132113417292520030309113106599872027588566691548950761025731414069169660582235476522618885360676494765415371871998833445141999972855972719641560575714235825948644282938553266917828648240003592772782820215071974812954154309047950633787145455030119467777358262978557619497090168865816839941790879834842016865822855286713094380509574784653555367886364262844965084493648437743665109917232015045017924682078609486926668183756657607325884543571014932457380399481371764135646865792443092427494379621282127990473896486269702940429672048174217963631337168742190633541644052655869506869522038452115861255945153718807660982616306065939339352999617561608349040531479639117483716640534484851072833152856822821020424909238579769454519415972313439083801290724188272547117826802480489688325321050536366179537526669989424323923193628874015795513640257142131563169207168688884332259056644140405147294957764740119385118054218842753007450184863861070893388290960666769445449819440796837793292573356069486670884956110592963587759562408383389248585305347405906185119341393256170483402040685662611720592045867791218672997630929816305350918174369904519825610829223347145611831914908407628118847593019023555477233578954077276618507175960877319605784976754599129458455939422959056038459183063587461815062695858243245570647188789252928679062926508114648431922088356805100583171832958628544972207500184908119278648657690954567979887763026755223264051183237701849440856040127558015428443463373669989419586937637554595244364105962378223125453214526694888123639774792210418319151421189013284510436916867934536754169841641423208375533662036868160321386818877808292868116407929292421966773422787546964868415094374067185555771637488894060762854489722224616706307410290450426468975955029429963354281418855460442073641773144844141508460739003991458932550238728741595474487330283909074852224619541561671209688070769571597777649870596308252221759193982367125271672437648609779616346437528707624665710223671433290356747928923732633070122098136426078808880494878516988742851371360988405949524839674919566710831561955733822503558367654755835089194209108662407526656945391636816299620919884229183637769143820487786065179000294309710974904772197043321772674478010481471686518974775683516647910608349583244970933710625815375949765853808925569824807088017133939924253991545155516174278437624938841566540826311344593254720098874598167455088021224990278782840869797596181531809460676997736442853404828345921095966091300414314550917074256536323661212170132015810163783608794771677527775632084416213937246705501100940479673550686656995633872411465935294885621807178673900698770529858410433742876097707299593252483651936960053532945486103428240234467668838461025931352831409282813211165238294648029600458416853401626451429677168033428279668208881014816831808891115430009128103743006201505478998369735309539987796153758064687131288520650078711672845572414171364808056633316903337412711338185179093051146380182488481760618231226738821213440697617750545396085329431004417209079701319673680431787658770657266507424017806319228909982179822973312374048514351426547030736966402526404452498525482370083733011598983767354968073688806136440471792756146835429344221466749709770596920468322505332172045581329701640817196636143014150286899650564884858987552937225426551903031132310652104473412960341038834290893858249680447625635658164674842193058556778318924597890939215868147974349284690839491997507100826508618602792439377988485444453841321889796981078217146955681728754581592609861926149577214324984794290352597533840444242819514259070206853317953594823358597728735244002183107189073157221718455083896221298286195840073172913865178862293829270203082806799087498026570632155257675038927292038591810502506354011230638148113260311598816267648447798709563906572719199269912647872236399720413041679664521905477496131546914869335658475530961383587500606370639323674890643830768981793756441742679392448001867289734520577491297263804157128577884138182067837394699525796492521516535249476336522037555932787446910528062901235371335717799387244286019864780947166933307458527092517945409080341077784793076145414388444991337249364187923569924779504902868756160167190849353602542083295781497297336851902902819825189471054327723884886906711807162164278805418845522633508857926604861610353571655639040126943567865350886053233676945323037224931101486036883611770647558508039751233367435961587532818220584797455344771214316934725288065381605463817755220155723055508147630029604647209097354910833588935655513287659575564251276708092326794247031086263022672744195611176800913764291286196551523527690053988623357372609067843633990893142819278653722889199486754040497530020391666489657185737613329868800980363908779227561802793734110535353507845303911026623673537259717278710160278447470880782516644959026163926724938852747625195225987694601928511434922165930604498610980202084727112006340426302039424243588537695459940635983259392618140390569776361548430499293408963197085927140553987944095377727400364223725994813446591385760120049309812038968094780737320937914614521945756190891405677254676020320206489765843053138440635016882336753744309019736810357932373361702518825955143559080510306357406435182749163717869766866259973710188719596192735192115436809152340726041219813465093259577351426309750525655647159247317369198869827023395998510211276022221268490469242292152091464109405773546519698387657121897220831854052532364848092545612782960911617618684282998694019309093748854758688018939725484011933661421259565292278559919346505240016358236267709927258077305653855295770080265469639499067791137987011428779343670340072678168891475089337591018206107460626907700490149437831775980767583517360921402039264171967406899599251529495055803512568130734776349792995783207921840484172873392897565051860783374700131710292285283919507789638015020888535896740952663162896781751260189564629296812879929995443359536286172970785067940009644870869279555382285098182685342365403667308913219942018094499684204028098682250976132788255507524621366953531664606899174245936584337970834759966754966067303851067725647102112569603253964956431637736828326848755914645019556119784797927792446031166618071384060293149848157122254384401379506682790001522611213378840690478818653100273557602241966944283999855249134237501987140309757561424247808481260129880420719433749483723826498863210404948745538293105723354378633332477211809636544973909850040605461346712526935268900797662374720496741647647429710426969236716817747115052690535047521624643408367258759173753904572558088614978817864108127867041721796818086825280879054705476254241575883343069021614797680943405467954959496813475192476175259681346261113959297751830328511304028335545104688785117601513780041614266683206569116830923190146954389644987603156923993067577785068749041220467367062173633587481590191693050584762936084095060159534497307261364657533223115733639715236303573060264643584177980029093578218084986698518528054069046998406723067275245449144129127503474169433988877168635052096134030697821173368109658424466560917620410574571257917284715588686467457680826991697592294164342198693688459077870485722733700947452977131826846858558043915040882971404941968864331106409685602712411506386903957066234162703720488230388825362324885348829144314263930464606478460490041389271262390358154491859841246888463063539997019640255753145980034041760383720994237732077314872056575216182452312911141033963582231581243323712088525138696633120508682483663582976469042135145437914289563297369451735547229375991258615272975937522542534617206916643453584055549133724835633120460134504161561950338037791258589068224730265537770825266204535955964959315747944811674790891235428879648083642008722971004040183143741172648127837540995054697686809743272331079789119569569262957716700950613552791564574889228430867393163519137677277041586197929400289608518506852019937675660392562770862490742807400080002620746917106040903311468771463098893897463474795083873959615830071494063974584902496791559269344981040753294886634626502543724952035333667834549572664613795881982818339610438839580095691777202323643301074363222326744047721930631071102630469728311365087652827819142263165282514752769260980431785334045985686047107507237025603954811549060560216133167438972483352908794206352766966994500697140124059046363624809018670318953436609330374143333646764708840754551463404524582492705085390691425921394215655667389344127203905145290411656277208087195685900933631823381049546171147452799788977879965274071916235372122934945079092556707016558533873280949479829397803026298506968434277784760376594472208352687566457238480185768536423654460902660117434814736300368104823935975832239232739684998258713896464406289843330652107358415920515002299919042305575951785591090859749459574426871167090397733261007916255194871122583880025036414893518071998663155278382218030753765118267550530801247777004925650155297603768988172912730548865278941459582855751742149335379824400216345600286885555192789561075672395113338850456085115834685881252276258898687381713413224866755474715886036040058209397854794691957920310813182689819046981872540908581093518446042137377083479062968393328552441203133506527002565397565112110923390138001324945512495595458272673683568992044506132588352412282656320113209151982082986528285796431767303239946802056974168922862691712018227117941683052788460334583153498895980161569685665610702629964805040201664651790353048824626731902964040977867153731053706849983678796659975124989604263106086066680151835732211689269282231566441117660115692311712365170306499966505157529572128663437847743495631918465728196494531461270285619557849876153473799546320728754314661154193412461185892510344218919796874219319516424463511749509544564345654098099993876506977791982602439250404178168446713847881108423233015279266329830396144182536402243415493166576056372672543458096688112471081733653499523832825258251790806686742917408215020995960735995821742329047710250332070342022884242373735789132550310215898733753037649401133706161292757546113134366255892340713347250841839178709779777369208652815924631600152142496051358994006902418777264924157386351384713064419350814470329994176799607072742669554680492169467432941376922432904354098216952272879268404187849967337197272966290167335225422213582115074500277428526875889370489817960980549955372012116801668005369174592547971787779289253632279559667742240286531270445146281197444717331933072663930102150685040167208049199311108858293152764871201304463239748299304786679210449957339241013710358750635276499581171411073051644521591292014117749101387866607986485383113638452217761243396410564392501720863670666568131731431742304875218309720250756604138191623004829982800145078094068958849028019330843716423216464975153954814263422006905431559350898972176257193404426855446538702459842159226307622861851533113573179573295656870286512595457844359986968214129096970382123136346372427343905264942180453210999083988945454770500925920330441085623561566931807551456649324602886171677847289916319854471708523043373668410600573067681129416188199276270038163692260187338736236960468611001572274552417212098990743716000991066590015516847964406040546876018694140126944022591253273309259927783050261439244234521877799706589692933698167645781716433655888200772538512866348484860630130963157171989180445339652627293317781043694659089153882254084075180004757404158222366592547022354222604664627977692546736072333451733236902955876827994947679485224888824769604954895534742772413984641211465523557339101396605626499943390880850907243636947192106976159756392980984204751954626610878125836906889049189140672431935526816046989016393130085574905408111355157425547726231513389657713464326618577100905562745916376803512767671579311480058096712506851314802351976773841782421053308993847824762456048379363665896407865811905035168163433361777187826586834954646104103701677806198834280419627324010500989615767315334148152603605340922800946521107164713982190404480435549949242121713654781637695902040559223350766876364371779651488434754815509828058363227448835103146766999250209548618477159406547893289332331159879026423943655124610981136674567587519628101253716346253524290953868829469348681349324914358229207269895261695569318106299973913833112956210597037569241005068583887968550165272393063684325089714825546404135715810274497426067964368948611326584524191802232251412303129502228396262487005306153627097943598437819097374757093729696182240324825392968764969476483265722065637459093931114926628593090544935370569212356732645756499752659591643966199357951118840774030623154879227333959224770576796300221263078332190729782689249241447181504867190981723663635798835440102297604297752599871321096819237413184385943351043873596764964682038005925858594660819572608335953946031131045833663976215744361008018374961922923036488054123512991278363162785855028158639294719826794199891151362563846967688948317889863459446555450331093911476605294562895218155912386681963738103943210490611958206117491399986410246327945858949160747618639988724905816633075137457028091926282644092525719626603985711584850652036417238774046430968141615694087645855011046109059427140982009920915735789367131250333163650766257532431078105632287267241022603126517951725031255634001943026011536416221793634330303210740202567255835406328047161320574289661342308698697991868720345775881654838481539261576345715809548146394684553037853421868756480663965358804710765788912341423039033190195063044920704782353586027894242666978018983777236717595184869564258716510375097198968093389478378820288280093999827404354941355436054032238907384466048247003231895554149022511115665515422034554106797258754443036603937990235722508651288657288824818338669980145373757342833555872878910095159317907569615159663442197763017917772500378755424019425607873389002899650989287152521572921843166663663028850979193078516474349916850344401117351170100323012436098855272671694643227475467413366045976816066488192102444150537146312051190981149824335882347646887174901744207646453775538918959597044028322817154753662922931405000237362369430335882852074906221990939294969240108436815987157280223991951229020642192636631341690828809209362226628946047374309462612518840585547507911791497829634557600139208095063278440313293223976569556615794624224824090901130541315119613109531922386926173957446058408167365987814695189026470452690491641959123874659603045906964835435843037706755522498752212078220003435730855613173633745739176097330876290645085353446179145398523123274402889767112973226989138509148318024280405837250480567941021121161386169977916459647536486860524684545587755191113999731018888164986984347263065470048395869025097055198935677269971256460160206363818342678478413840496411590182476460445681660067899034725897523628461514651656284224584310322704983135827292334024512577732011997742187679824611846427104286784357691723487776731644976333577323622383090885932361345121209506001795129695959758385588263001464309807142885662659174590148456475894458900016467395656755080339136191180735019680119893071417185635113266934887090506258794389821371695258447382170895825200122278141429315607537173469581695170682285209685016799390323603782673174471311271465382776430338418932340981649960762356743603358537562544519750270010835685873611572611303742214449702996229858354562791294709655178169488532411936072816472050969730614125962480471952091429757927365365928928613357734101017396218972804630122914846978462783151149078689186174023715022027412856738797336213338665767437270004084717435558287029445844779126078966861381295197478943745349703205752247188750212936235400221303659889029014962308397996370145016315114562335802715488104141567017539181102148996478972346191718633458370914154350856073578354280630821761116064712623580624087872699858839002662767282560838834535888579719635851507267273923068618661636558072657059776535758992269174496762469836590036304951112302709443052914993319924977133982159350854700212766182870713670895008478493376685091293740103491662637763346838394908043711626099978727936501739893700089909620232979947599518878690885728474673478335183687203950966517927600993676981880934055000940236112407115354136846072873985851047505066703079516515817984422279959428868670742315786371291170006639411502821083815386119468195510403643669016698155108201799985037253580367095153403930108995468982808523859234920462413371034974748773928188410889990635355158690133639849903154455595255322942389543684407616146333495234190104692947873580165401472079502095009543355294858568856036567368876618179406382989940456014764398877733563470286546652052377511840615018857826218221878465512503233655194042465132127744971786855491241375094320427751867385160544651813717660150790851072646370624983104048086198400355427848682888026820244001842583990532316857874981328815288887844308061321903985894481706149719322547148081195182742421022789862284564149702839871703064870218669534437175783840222273017042945956004707707355012062849877814559921785470961418978538304887093834691816083440508640183256588098216444774348047788664088283570021801555403935226800353648133175093869963995221347531738985950671096289403125953743930093241058602643988320376431723324969769356362689825987969664021134662517385221930865182062649338272673572115498101062513037908793378616389186999091677650469126429443732774917442534535143384605040120791228401197034538970777463003263112023007273611829656326445271122611727097486009762249731993498488476512111847151486792662727033959719696205328735481979901747090759824278246367679571218930998748349402854006948467361256253178537334846531690143853603104774084125506480043680596780820541652307942544416938895049712389797667264450007471877809390262264226581615410472467541928531176309061564625972454975458157961805911557601917118618091265158644728809591331311587581703530491863681605361681102826088473399876947109336605569487059331451793199833260092745709021884812648071545313078318731727274317929584764618671740360504251970797608955622262580314311639626363456069979988529710700583272652065344796761062139295505600595411867046544933948972707636711622356630092798063855485860243221522959125986966000473477035189723717685486052550810894081926347986572537117067817424091890888808448571699829814655059853028283394035207759639312007846754025935146915737098511430761080879668730062167784308844947472366840957559859612198745067082688073881082284437019390880417861817249445532625799520739395325282548366241992079736347507912556253135432634811927112289902885324979303137156392101672486762201891028289905454914697425675836686346584087546558476001303373216812823235641393902718450212286185740833376210998236022391584550559693334198366161383335692827930260751189613393864740694861792884505273761726379712843791432327320911509316803008310949465104471676528967604069485597830624362808269247882838161327476622585481372680480988493608551775838330052669705168606945086759752076028126426230903235489533460717740634278450656489814576407171854481004695294323143308050444123183008004276913789131542309310569078697138687888611487115865845297552446567825089055602801162822093778917357523909343262132931422970292048241206650770647455993920056410340132367129229606734600349392305244214210968994097635166710306686282751172353389303053028105790118456999341703492372457321584458511170498572491329836050934186709228006867135445981380412958053394446004537341377366439222004411377056197072249310171418066115917465913163104833285083947107245420123420906944603926984971867002387451408110559578266384569947150900312582249989935915322193768711841596498999984701347648531900157375850122808475458964029948393208665236245373871267354266760480674824112917412956915206310211876125178318487443022719043478596848279742517824960847995190663832847627822784783827098589325554504463813149334428168578400274106340158804449065282555045753474251807684271419241086749938557741146556157390868148577752912149825280939062871622839799580630257918680797293708987684852266798574955456984082154422896058512477072761890726333760209090222688992387657929320603441216579478384007155593086103335018984971977786020194291070935785205132698161413883314498982483060821876511634412770369463960376295206509072556432828249132588164090679205903415519079018695819831719080511162457022173896211586123891009986950798471764646336352812147531354811952296012740313626854829426060076419209047592977974559747094124990853270246006986649990192096990281808315675669957577094185757405636114141933600006592530654015935142632845299673141432401469788060482895191735220094636753643097012087407430238299693847964584182552267860898248157391286852343373400242307794285520413143258594318565391815679017526064602645550123790192358795293467161628769922970580936276052579285123255488688519403198843217372831619591033716053595976414271939204175456869988640012521907481511102075485624711304526629705198897696835508368498802767033227281159619429066222519968188960282810132182637936989781379587837262606742862491702040487942579249185001362711110098590588934989793306392445503702926076998398388102568887597392352825360448005531912860937838505141544813432885756360658781537756660504542618180834301362742525008807285751978312536141085554615636688329015462728792788580092354180776666889611731844827447792987036430738790865956863330723469549673806023751694509167882832064297403424256395087528027235741012591111742683323035026128003894132618167838655808369146485920589402842459409349479428668256085066531092929280267337008434954540418732234368151706558541883041497101860319587450026365117540448636665213846313814980907543307244951901685695515132306852782488697892927089149898099543187114146226104120240066622768330218882741526154092721752091192592411729521174405662986188275724672448454727150288101470225646012091798909186421924976721801839910097496189401789936922573002427319668555133592719823627842354251542334591139914947907890673718375203821328899222034874382924494342900586305878975952615232045687385032513088309439878296759281155428746201388745561424758584391852172984185808460516558737346230915396343547539905209291589648536504761531841195792877918876018267683442691128523580505854856940622580476980961782631943839123131767635799400020097427131309706435075758048703597452696916998239580643610381927173607861613250805882620592090886951215172433878035452334864622556154141649419977029776517052531543414572456349356885872490584459938797250812690813441222735704599938550749153312315767145045392254863245239760464206823812809600886062788694161472123825755415921439628064900964913171696354765907099523241011768604267432491464420822908437204382315180701780282729582581310998193965806771045863619217647984889024922723823472786553961222295425767911710610511610581707776309388367010642837538710453251308514559819092722435396491547737885628842260519234770639713776578557177539127065153064582863687137362744113877130533912726448037727440889748735984827198257828713318839620682218704466028294148952038179049964564421350293376808090655308930156381270049794566722524430984740829524103748583030790283033177909050157268318157249858976062894842991304671506020584585849801222332990095473793275814831783306413980741745931122422766056247361405519022944653589377475940131322364169814157836907732341917368814804413253304160293139971865096122116395107141453324150133270591953575217601889038688221915239764080202118642318755696739254939681300288504645900757361926735937198751434805705302876176696554521397094883116036924713377378684050869064016988293646944427847922245846446390008209641691193097983872708742823301252133935018452215768954773649144094385402921630135411557534123307205166909995243683574493052723441261941750378384007124308906080270011924906477812092504979400481690353179457952750350167074873663441343660054722441226860825275288075538351015760244190866027346051227255036961248271924543915924977616696862460771798209623642823057629773449472420726420707304388686138728105583689873107606953429329862169446922809678872670538104816556378742227441476323285224422509610962457233774866690973189584406547738662429610975844466987070868057233181210412353178511639434499531102572893085014178130058775548710382459369359695842459895419232752316993338048695134702032484548722843313203702678762062582004345372116430390455766340777856094885007230885603703810459930234253058638902277633623930036077913328308643053783680547810691841464365814608479143699679893974163230770524543881286358412412991291959101170646003180570123428574989533102490651317274618098681446761612498063457934054587491959757864798675269991393958423774829192483422384329850006870265818293836125689795815419315394936711097318125453540412374683228472249771516618333047279273102935452616290606956943140729583068909720256282219117705168561089770283759742146264988228275215640719245624266114958414738243785511060866296879513462978776489979093794521763176697206090012849568441548822735348090036087029679114189878151892431814077013732276368706956180669165324793775745047518467760687686146692777326425258836288060716836028918177369112407652294475844220983419316835075522873854487796729735890260371974819169847653282855564979235480119702035085470736781084106396499307973866221587216263066845549923238935507730752995272578047612433215769848955966664881647312907505008992016818874780114076544821320353827240649709857652673263696839521142420307665100679974047741118621814328384345433726990292698791665231553092135291967281481035100346156688346658037077255132036566773865678723183369928666585434956288439390788817231790559304198151635115341705032026001125372845681082148726776264861608446824760603365838803522482986026405879916664271422242968546637601056522100271199821739812668387018098944388048451882660353062328631513824447290123443170614903437514323900784714727690872875483203862119727423029075916998960448221156629230524792264750716079681698708853285079828396766327923061535488814663141272947852212637624771006734105273094793499837838729914758209642780607287452158477183342737836402790548205355459559955615229653893667471052439173176690631688034697783866581345360047960404218791926834245503136700662926124010782604810763866322839935128119586868159131064886591514796236053447970167605365095919196090854098608278561145038575951017080881599813921854068084463520752296941458827173786450429184081571631481788558907226300009988338104513802905668526968446323948283287381948480194267110308932201910738419505190179988331635651617958687388677226358293180367664235354669808755499041886179581865099553542967005875296895973352140658197460525905809052162849787171228111987543934550250942597959935974271394763511167315772437716378082670959986363091020552657580541942914310541050439844849052962669805989497483940718091769062074147092492669042854099935698947096456589682927664427103426617022140243108978502507369846473238424264169632003582431172281061989883421619677646134673586771606476907068397209785242688832160973943352916919006487094843606928366964253826794427960186589776237710588714457416117628117089640870557171263214172035840343205816948934774474394346974138371715147753099222208812171258031837522570628056055271990990912481264621935764080867423304196434330316504263904310752971134584036660737089320715678760272109831123277545599390030017993254716018542097617582594330235066784236417998228862025146844292218104424695142717132093861583339085691814126570166129543344278043965256486782717177799651417140774099304704829001896297313027925337676166618238767381527290415903740187770795486634920728172093614756309626902401516698079551469489262086271279658050842806606837235757074699447650735571911165564209649661208461410095004347786204458347252764369398778119061169888112917855078712406641671439300099369251547333026803249925801476457754182467521357203572495073786869584295313422149576660257314943702209944794446124387733517466638244414934108983767539542171757123921307031731423140501499299093729575808012459890964950873833521081306044312546700274397111356642571555626960084859412953010611625694810809135887161518345787097621375781110422914507840919696300277624541549751487029797910882263288647961055681944276365717187536181414995846652638266372268876576530916416715385791631406299888468963494460758917352767035612459909465105931165337227153031775513709552980497687628801982821612070110372302394030881091441422108476534746712907735288673852659325341738172344318783211532836169611027841435106346017512040456539382898951808167519171618792480018211666716010459832163142097249746414512606751399625192485504248933575734281223976303959701939287817354380418391986986852579573749398726212051781450855829493470857558385929114502773839920220992115271534600362934620011704629295516427497239218970395127924487888132140561065104668941018286700743559025323237583384036316904832466962031886840602419149649177837681523050826216271684979510587948398713349827440948679385675596307873471545548116525119076072901038614017250995095120282676015452380959116982928304329397834781040154486614230295555870367575924843256466003990319583637405172429965897455614352678592300838039946528119893872029746662621688035966146745415048209854376109109966704093315014752741298062868377721158296715309348735604659241724440649401221874047378369011968242851890002191023811836369827410524837820472334637031828350110754856923163280297899728479312738962327673340632664031467692140696695013336511436334608210241127484039449697709171036451115978457850466218403040056008378383269352202785014287372373305005741085438238008962189247064082135233003970246045593987746525003179898491906724453508203714075455163666754104549926109594294329677788728404655441573832004093681409316796005638491725950678861092819194835524631853764954163018203520180085290952691828016946184016125406643921379375590199262243693780544431420326333688668053871767478782917905998925396714895355084464106194608962956564383492730562197050899277867819283672645862603502250243288363727108179084586467157703313666295386383424281750321907188897500406097956999501342094046001385136213853303741567233047938092224915434125414081565964726028564466037379611511786448525281623724799506105023609382417475528263770025448479626081179720790901009469795973425027656364375118310794063451146209872967241435929341304193703374809973928800315029657683426182345465659267157805603816165855184404318919121237057038186715980546905246700687535414560403560093391826158015361372965362471700819034130606543577499615096134566208431946735054975194508650069944985562709420619679809525613937442063026813895494383740344716188599660916646834916776224908989627054038193672056356366523831635040064594799133876279342078685594575773040084001790331759458581275238549414645669355651344873435275367861599186194096972786614488563371379634216578799959421185888943224097252029350126775771518241234659065264385801272318867899566670385352922346651555917278431585246517358578021873240993704835605424167907626560570717940802289082504669587466064268197188019574963937307167481572070341348056227843615569218189147708120575799942359014179507685612997997824992970602301110675411530589257866434378619330724447481840003581096916215677886944944299487617861823047540370383326625915662358264365568037695634123470535691558669290437094250248275630555918009750877655603475819940171114195771672164146866176921311052482604437203177812877413724734707241869941679858224778184892806084442141160750400934867027622099196690571640170111589516714588255412108613738531583732912893542139448592075977005351828416966285104434864015759536987543563710320639144834886151323514288345994443610436713860509321899486874781558640246679362840172214075187074450135318857919086866463767599519432206013898845985426145106604109998283144671010947354146017930907756774361636664338432212096260717067787047338526927962248935235587195553717969329277441174257852596277214128134129160617643281291446472260985617436797567518354530635774301151987645802587574374120325179190503270145256434178009528631721797748861267630840007011331500488190687494248884971450116689536322533482275062650642301939219506610599744928540136292612869255647704630016622760035435614946951175890288174745500473008497178957090210857067931234516264178043648003295956329355306272093846945937732313483448818105705634354443545855198563780611981545228462764321686965749369076470365152846045833822311851437516087323650515691754099564529502244185671547468412135123163588588868629992676196190404119625780136148595837279862202939029096627756730071070371985455575346677500003448126347747960896578672508535103440817845983027029253548996060234874009522157152678688248662459791584286813645488799097803147881581438688605634928971253219583315024747291974412822498610305144480253918925620692404245857646454500007619736713409221663225257791662466770227080564223362389393476566866227266782455243208773669282443156185032301613173142732604042709882292370608986205329142699692112911273847859320709072333749386997441833337250355090188654221140973125897655096164123174528201809016521546387641367054833991141750025856110688129753414853165277639067652076354489175318438857469269067297301182351456331771519396252761130449164199255415951717771843650573479789686673545631290637217959296487501311932605244096042499374760098981614730666467912362565617250818944135635457208692423585105473032731602217318937353932696665504482078341438839350144699068006250873985502850776181711134503876034738064526218119895077238086393025427525962505208412250913655410549384203147268151940965213689909949555479493848313040827143275816372604519246306527014448703831723396038264464683107259975397837075625127597195224282790669210030745082185065824836121882870087004175088991784455915834288260013017633860356250953477774961147042577445320123146817250247449784839312691977801016332595426101204351192101199778173214558154322792741380077458025870068798563381714099529068538047753469313763046847941330191758963864748457180613629463182501726405018052053312275978489323165833148866342737883904666687957445606115341019099086599135259507228373418172744407846557845385811553513033724805595133263760046487736230629469934975169888771601682783374114749177978221046499045074385136930156243460170072006699557613098045966505529669800770562539183615632515844544035530349479532700517122818272074262382434229296136169444710219695736721753827309810970088130651763000101596756401230138691674965979970434347720818063083871385066058624416637105889766599121428242652971780363249684229306554593130182994869891102896631689037734393667585587276004359371409553059797431159783606646499063666361011764566331290637303768980641569826405837756650107243340542909306473531740686640281387919962874317993392191646050014223735435064538536549787117019987831418952658065436972754623594278852311276662115314857634523348758780569051917245235172076129584973976280140547572571215328832922933135231030240286877808670794229113937912456168734810935641536472930816337108969223007004051517459322632982669578773708475595326915043067571134002736488089769658453255280770386721787338521577694004331266339031972070969636730756167287941700737594569726661818546087842579111958287358901015753865697966819628994321770047224487477401488439764431570899234479210647002152452655642288068890449914134614941283283405448558652081002175971283105516345301619698142922872102267106143320583612551510152669770208565634358621198122147336958291114203286164638973194749553719796693180815051434439154969817358633852751366507443398649526853386969710458315182036064868414684146296299961025389990020715868144098379839919856641578880209545285647620992862701017337106877782509680826988507173269237360817331308319497382541640497565765578238227023542344652749414924760290640048242240061778102902285154359474291265240438839283102177187394632090647800188078843603077031907543871069138487057922854795271626391850444289821252080681207232344393618304449956967784025507140630185500057322493898707190068175340049556541875700986458360771647663379342743784754119240413443007761580499318191200171820990903769858643326807980449543417642327429542714722988557179893890983439019506386428542812633372241573692202009351888400494165318319558327674694733975102369968091506408384279460479252974645526053685314551199002019066437669267980793398607184558310400296340039295141921677240857961394412745896452432572837767023588283583739584072212925106448842787888873158119960350103053304275261506840914046613179893207351283088555803549931019499312075142024870167460611355841565193386477668700321759792430912198621347515769247479519370141339011974711956354715078130926041106597555967950974410457172016044482475547731809378404932925633718555535527312072064909141047286063010042071101042034198716516755812116990361868301368643388979100068744458359727358496200463308443421175392640709607709393782354550106557347956106674195559714195105086843723251367529652662249912193541567355436175829217857039521355444435826465114316321467845353055058955684748538939682958372531951351728395628520285411924830722358002350988401623024570709724382667394153610499159416203209400601461961303167337722276424367710516872332129057724847847979786164601658263319751330486449939665290829484607970783771131864669111675516477300438072495859106111439933651862960417231795069653597950185341005824625709677493005316689008962537336575546059578445793412304950218995194445834468595235302051652181819594927725078738347720104318394161530938010198892055412911162096132238399792239215244167652745732600170661166692855718884712904950925124504821135843708359375762120643593175691106619769867762696278755618172486649049509185015041551115441584807703713114142660773361095731853360031713394710886444307291827359885509149056822562637211740891663726236805762725843160489724190700047388408033893733765793429026125268693183577546564628719514978635969966402773394426185210594965065238095384651409725924258364257598214286180240199539854412544337900792270366986240294762162437454230279933294700702897387706423267218156297667663561348410286065393618285824105954839510508990913930582483636785667293063844817814300796903210642543443712138659342564530518009602653863676199577084027863646037754613823760081802254517398557907019550020369921005209339985250240576969984950217483283663952980551592430191123986510355088538152817961209564447951807493952060037190775235065306015442993539558307443065465870938025555424376097578853393045132612881625375415994483552788588550843398570248554754164650014997527254720903067453866710513691340215370935773597697868031245893321675460802849193002302243423255406688806484328569218671792584111899987734894741747358945956490584294588175941944388841890238820985004167780330315818753699188372175502237603622349873345239487280873753887321408567982894531878843053909848461766034776522552708567644548279732986187681455505637107831642470044198225380673057028046480326771778582621754890483544533931205396020481150337067602891994051167919829935240621525936167626676255575739934731238154171738206312519785034006404337818766661189134620289359426241543506199823363740163288286515688160285553744494064035831444683926285184190246298673832088226957657709556905952241514723527441019424418754620402668149246508773215215962154060587264337829275012923971274938985481245310274160303708131504688670855619098331527009534806937179773869656913245457066939550207056571468575462591316839360156344041458223159785056200626469103375036881231619330354092852465505553080411121285285690533314501517862746250206055611539346660102474928202771921247524351298029657359054422872621630827144492215919695776674099244850295657929841450090344377080580654384086126136052415782799157843655185704602074314171987513536707099687482095011198260667216256939996893823863345473991452115563615936027265637941633347623019381691460150757794959617146775641995080422952515359533269496885660615596002554941889446347451813987841258455901988994900151363931477903324500418299723995046238271305566379429641694916380136378835503482942859094600229670068173275497118467359288255841658689080644039399063198413389703069767626799803992481445354819423801805529931946918357343911679490668844516187608192266718702082273636350522606364767003766513519564483077126325270742677126956275157851112704126342949257102576492368036195514604014836694300592989969365244213560639452133843304163402896355672007907508736145940990503210419844009368752247802433883751670531585235900373181786686154457215388944822857148390240846496241995186357705100520270223068625542565822384332633857589526952648190585251746017779524634801272425002384636485191256376370600810666181453330503734341342014155367837529312986726451115876297455812682292081407893389079527306840020074864950939290775239520491251168958297535491961035495043804753777543401757465145770976608652006172421774433170622670385256370859780498786455965981723260105364809271650747553794746873552940928611781464682960307080383680019131028459046051678410256400887758602792491988140721974600765310622270135643494182450053434356339719730134114508055221216815608754095513939253514208329010777400982068886017839342905650533640020330932187250258181507212091141275565828894720136304862870033576642254410770387584305019779241556528228850260117308062920073673057729985726004605725943365961760916185145792403915619765985684024444883647456652604614781086120684896613565210852372044241285247528210245945683255756711224601550140394020717417337568283256624932024487567323707532965628336666824002910022511840175712913553996820503570543629117157269195406457109857595837876649005933557512652131742764110410415871280053796308761269400246960509002214079519858907800467140107707072674052207195700014738230887943650124200488981162676132150732804976892495495037100752999146711575488965385932941808617250337360363512167832293139076334106676122266978719982055941963857162747856814739774551383500606172858901337506588619011034476503514202317828816611786406686450633419744912873611259740080894754251637033436270431578355921434062886981122468808835046284688311255403795941414894476073656621856860099847862603283767382430221480441271749849043917073650038959775457697478099340932960415305380397379271876032559629452424019681925767741223694653335085248626561952008778159476410419939755893473351810608480004159156455918645951841460475838553575396440572689379378020014178609624455877922668255750509767155455262242880574028670177734070164707741862471737631327708957125618110276377039306030675514176527306590831773131245683688588739462566598821964534856236626224618185296891771390432361888462942832365985676237776525811543837297213886850418280147813587736709989692118650692428812097842341949920612829115829871773586464558014594053403344206423039715258634938639631766813097656715862647895336396400567799108537496895036877906685808816064006766426276399961217854408441648994544971281967658192538421344809218541351182212064586001301322202649740782932438926498939188507046340609006409171276249799572797637402238154098718696272825220654197251687650847303738523005384773421342636361029180333257095780735081904822051476635231536711413345779611239845283451442620337624246413859691365879379510502678381124839464735425950192404556801023163733096625015815844080494233131445332094153169732486833593982826381227965706169202148995604970424423159104367298078007221371289151672812333593281022472884073094175488519985505544406694707102688367417919163906337503327571096274287786897012515842115724417467885422545979494103817706079205414161003340941684450090721480346800602334737082630314554454589210104736752275140740481208993887503058777939852116159034076212096639808344699840493876785419923445360846666854683220675870498968064287997367623614578669382850490684832526333058540606195525423190926182136844941048806022074062118678855124276251408189184402116565783361015155575044193057958384732273211038009046602410026633758598823169898920753266886735542887897612114987513611263458153533867404506885307581626938178544083714753256225195161782503203330320687965309767135788139067604049648344519371213338231496620072045574883451991187080288679630671752775597871638980970774627919773279783004521664660543165236800922619705586977218094586091616198249448294053865257899273876323000353849465573302284612825073815862820046574322206309956530034903716501140319069533277494590652365965608931013201810494162959389886084270203079346588115003767710819601770523899869095462579171219264720334250485463529233528315148733534579570908720188892245396545357408246834811771547391375632998156264640542620848371539471693497945727748498305567765847743911838934093507999953369796249722809633847562502642171129774086288260239090349783172438130576460447445120731324091342530120138395616372963849512594136667811662794717376049254753319223513255832085402562334330802044755201152641279053970952240377166912617698180691108331828841540218125010552097069723460526230379215383504639612956066249088029156374936042633218251487446697354670347389840680217359868123071854591698264779678621100931855949671836327723041390768266073245772556994317730237770564698655986005967701467364576419898967819310990527256004834758555082141915532635338958556564844692823049803494900628106551149241564326472814726874470302458244648003812396353434244700422338262470611778919559403923074214918584026797637225741557780629205390485729154431622024059872214177250144276688710223332570977154571078487469953126710949483136411274509376845847518822500218132846204316036051674342568269949475701410662221904989368102950879263820945727450815213745970834511490654042563122869648723421285968600285824078615613798988289467995099350654937704436375127439721162625320842295656707672617501165269432948221301272139583528906019396879096875095036385404157360023774286350703742250726817979633317925734896383339326463483917314358940696336038377863448771556082308780498778110811609609853271864952477810619822134232542004563074798203580753702837364650927920268098029044225098915182606608783632039920052419752209059762860666492516294898280516758617100235412613744786735165269819650086581622636564088724163624971004679609667633457353760833863725600950175639007943988255687381850482456484321349294244684603311603628342546591820557680541401210896678787886430637948038466778140874965083594084244483447187042838060229334376746852351061658791618726568574286524536184800005555609746702331101156919083499061836693551849271284708528037459372491284768502402218111973087384994598903688561658793342353685155581718015449281472820480686709881526980033085159121123967352446386283105438188666084759870137420144489966544094355541875404325837799903167258118298341086942759713891932212575583109928119147212348524260855640969101746052278352687207311336204424902998513244481946422972091818513627868490236752131182222051712334403357320217636957242871231594436390910642766128722816980739879316573518463512663782405169784907076955370821528015266519563806861947932546230693443404154344855074043071236507107862008282642560578947141246541314410987255575405317215791576145785917972517278531784111906861929117850234440115320130285647902742960582193012318695241487844063126076678284341947326235272266628358596297573016284915827325858627507514745125231862695769787103619565138568813939384957170449154525076563915877105984365255201532230881490356076964407818587339454106231214533300710149848449381952074858143555093122578900279711189500993141441070421856029732775462933147527301356519137146093389014179834054819948044096064588914838660432011272524880176484821412560664789469597811899007232595957374781571128024338081779221225895359314520089154278216829693982388435857612723163036541050333537293155153979251589546259194424771608526297062823594906608786205000467893754992523206616923429974343332107217107743484689682987377483249536910116309449167716699267397514805166204565646391812689968645208160620365777336483640104223223456937278006793508925481925412258812328096390007547005101666810083913368828847968375426038067645783766800428007998047063804056562820074386323966142235779381762880582265614248429399394620854023255799667108885144270251635400089950789002629610719191919115706255414210940238450647372995549389966165683055862812684572912671552507797199970351338962710563230460596310031421246749278780163810532356158779540533756479741951940443750596804573634202712905595819063493267492369723542118772365760601746576166520564273769267924930615215869713410848524659280588646523575088792129243775744560248793397931637819833992111177276534994180217789775342757880136590410183019034783454972986450905691649572080078369900062891445771929487574411729575264308765590825952463878509352622803763720594914836699759433979797525981318817533092230564949581884186880814144281497168332811165115227109416020420862172125987771645270817614352192273762806394123696687448660431175084795551911289822926742289289919616918100620570699276725171490804156192678165229439366253890015737109455381484712566116458801141307520570767973305122116654492628677967502351406046455995776027324909601814431286981712170793393385855775931381606937827084422009640542730093030025768139736869232899870791497295391646356166256044459534176076581068727069539906683021523650666288535714210412172114815902237981369673460754632549961540835454962748507308055494946584515662544766326522573040466007773058446336934553380522791820920453273600781526355895252504217940351881571165980364489828157894505199887216097124507278044501468380523000520394717029021644044997063278810868937038687312893758967187540042658789578940408301278197455013767170767001329050578711827799006699211740809118709194777475083807161472682428357674207073407977085130494100779362354298725572517532130022541930651649587118200503020082385757081168315677206265300288063916730557979413664213581906046339125266669343602553390864366866884213500752332116066319553433639082147506389080078476511128051712496074487928294518802976294454151511423787936162495518021865635317001111428036141430652117408054990432684089821172495184366982574516054008303714976135696907177766826656973634169340036518780240918030083537683732820325603941031429913575316334015915609431372929521991887776773083662785766750177875550355582510857723610684546991416642709649575229857744143010230799607447519343392177123380540833840928013385137634846753928229414056765373905509573822258243636666756077744827503373555929813180815705302924376072668747904419796420973216956804271356251528449841241713833573986773880275722844699711784024928974627972247297261183347036103575724707135959840965466158292576774206963286272410376978548963742911313243703914334655134777445265215806937758878088404302016289741523087765470234976114589802074751721873462512980736782591952802596571602806831898081678293542302782253581793552863944709858868406978598954722508043791120264902621730848726795780260221812710048031420883373260538845186888390112659262860937656989755567252797474859722203807169847005340289771761420568386399400497192657364140835678192619879391621508743071652504670886272274960170401336939573234390276001418943345891660407009353304768029890058074637280255072446704719177369011323067000892811889894386206201836007492970356305563552401661568808583165253082996800135855104086019003985729835448150782973432021730305324586074001992694484469366246865518788090244860444262166450458422942028500517539070820719427209750021864426780840484386930754100079383697019827873647723576355332718974018297994098667193935670156568181597144165206880326456480008780012393086123406358141837751541276341869261897783074025287761789513175871121796246848577001733531701169022354476693224114617110179600361261566367676377160956371904399777552680311785120561979468316392340806678507624910906270802646118210981927590344362683355874157398634562892372592000242571992948988300725049896289389728732980663907636180514056289451430089171015299692316154457815685888180840788466446867501059595687597237844603092302694926983057349189033687483121831805053665146799689885581511302669919739609836472331268441603565088251751781399735860502706134565770476785332194328242958218406538369574539212173079969015411028601857383137805019847852389748341427401963691266220732922845519888381016542732915664350150591993236222903495042656394991243370352511723047089934895623734212016573271450206923237440799375379986750395161535586330552989826351803820339413204377121043617283583624716327841981068379345002778092003054814536897356408036693323261184672420637707983866323151848223435466768876297324873876028655647583120283978881740825925009833149957892870461101412170855486040356697968064403548664141793862412144207923111698870545392565255761125456942983992154883488435777581414806449508959708791506499531278306282731491556611411893138005413483484108151297267251366118239586767736012744217475904925300988388860149885620781188678223140142314298718729765815035164494596271511325231593931530275489138730061935846021078625466089307549210576540723622519318104675305256616453002074116458879040568204220258977989958518797486299667727556773157671539546958510991862614595544009907712273675187288950213630929992273022436751564122686020628930211225932047814712843345675373058613597700401941499191345453035439731222634074852924350359934441834488355934335553153366263047066983930978373682970434777693642530686243218689686931542471868096521971607916654579036420297250305844612649774953483503868550049717853221022863885119125955663850379223661658749554557075960561306755457589819507163093671013032447788224662681612698912534909995381583430707096367581077549605228284553032626342809286330514243652456757497731364716426635201236917568478010240406003140074918139310961238934343721981775682814698450324515685265981981271102362899255265049808921939149047096542450494479271089358796347165033742938197701526000740479602987459999080057423722588429087635955922291870297654796398106446237582672383583772630675568154669367819368492955484095267627112719566957331836820237019889821525796686922608434802719910273578868405407905421515934775712742445567286617243429908548452112784257208284907610245539489910490060902964451441808965251127878520698133016220839852234484643900740545080246460695389996825591481802955352898075299274295819912479130329624083884147067202541157861917747641811144817900592518035137563002790442291718858522420430093195313886521116693537470003984196237990560024855531484282041067870062358479616571008670448537442559123430011897000164404763574317254016465417061912944216937861736028688286139415980254834024472425298646269730052965475658347617332160294620511897442110079411241931481046897253590426317058731634279006253490905428628661270991247920175021503216922979481089331328910956573526682675854975078417732805182108871039228995112361748605620074119529258201600786764419679419065575907598782472199664419685883843693325241735530135117635114146696680250515214754907878981021341762558900149033444974802061476941297871426424117182960058693075512050711660848192150464213509619042580381574115926216622439853798041578574017172200252996387334053570311470558763647435584063408728736629549505195644682237786046831758997449607581575314562456814374576465475256763645036239236711126537796431635754166644136934490760183385529779619629317299940559389769603785653633899691034755393244960046350463242667762481464157145330575452708067192760344687364020147731172532083546907970930719280817481463719671385948243423730898202223828338849715665431130491065228927008456163746848735603129873566546414017853383817771215229062750998524327550523997776815273045371048986583777973819113370476190025771751817750471031452745211855687784003113111826899461229814954570817051972252732005364264268337416226927975699774885126308408889555244878036414498759515074505915408569955719840050493747902683650484704508545899854173375882196785380641315553791224559016296675424599514283371442820238504002365859018210728957927919263623944077263660068399413384122865576888104529630578437013423868695049086991277994002753882703118801766364454633131016233639735371727001281288024472368737913009448723313535707131934056741599715263460044078749739341197252540474529523132297339894665744267727525739374929757815825026488246635327758612881937698876393849460525266644110429994118477608448289032505398596496197304691076560793645555552680877138366664422732908427593908210324981716337594329270366073278764905630298315120979904864491089389702683743444239184509632548650186815244973637742118129189558091549890599660103409784832885303739737180356427970774393207252761884502098001310626639995380346692432055971511758718140876426726561753478632179964362930798076159045846915399829048792380856484823092218060138870296073206716647888356147771491775428823025703025839123614863627903346346438137124449758910727203991988696157668804864946581261435429008838436408483268919159101254207686891314584072283151237387267568182959644594922986862380452667341449017495107933103388551209002601135847362027902804268789880369013688136349946901835745252426073150500767149860648490628085175618175820455995571526710844975574207183548690782997559216211908237451422826859245575823271799207656807314290577031712906652150298356134820402291276293280187745723043801186639070009028993108121878057684072184312682344188825576646711943659730001977363210716860786843763129070951649720160127159785938406130236274988239080263706620457421402116478581392277361167161072096286128205528507498734757839535933843976266159733884496270953873434999467420675929615717010780816028499208350163603662093491824571296556184626015075963153574994966650827781359506195815340177830228940467669774470248809938818137154623148683508580002347022379697142054997912950255233887920435866653738686672889694422133715227262681753005235312671828191423039805206548459597035696883672968000550233185553821720097640105163707958734114627413596451376366248490390617838333198161087460848285988534137352762345560061274381334003989020172786341905739810311210518570339880562556631710232886086361358438718617615685503340650555872415855369888528833902185247006688296898490464365021261981431795353000298163959024255395095987825305116537354587697760639494237571686795996476603457696494270184128439790359949241442905444358252982372521357934847189642175738516277414669588073708431194891176614430822915730763342008163321579918043123015111803630952257093447041542237206217120398984799138553432449965021696327490342497661548527052458727036701243138620332989076551813187201526424183164994114867989241746173125780172253378733506506133099611550546286080157859319226578161590386733448487962495283229369948667495980252689386912282508324048407694341913697472009066528991413340474628114423353833066781309227895340884259154404512100168911193097195816629171607487214547870177602310983137632862478080666310244535844498268765546120479335910099283283130968957620644727092907640922437913338071840168684963566090927081939636310218618142300347152455156337602173410364063825172558991253448389835892620938471271242553607251152733071473294523481710536911382993613360360051026157087956235106491811660828156977699828222808723137141522025915836905693246287780473305636652314439092974031219919955402100716221715700863053927156633666251760896217681705967976852785650359137398437712002037430839572260219952341366517643458362870189220787334046007551130657394970908939471488798613150916567695633350086689623961338442897499323357629651935303116929325034200822096187068846088110443115090293810516530896084901653174049418105616888025175512895730641006834207681399267624958140643847271791333643866016115504437169384057447035209864757330646906070053860206807124190691260519831971714372509067067011322130338587556595315505955989163248490608063657217305238413918333513887630280269051906722745853585696928800070532368727057903856356877534767031752190146419689714892136465183376872647995935206032808529720284455053662096795193441042199544754497730002668498244065582290455877540081024411524576227044993214425864688234471454651105125106015288451556584596695565759239991239301840323536780384695651319135704847211827762847851923755281699461483070992994497922317535212873340197694483836742687125324335394501985457096595975523656648561071888217450100565755528544805632621835961525516749854537875354216789839356543258554631418248428428588654912226276788561298327344254346103403941342316332012916858641136396451326397026865674333312204955123743595339913881987292597430329610478958178054716463999035466403224025730978412773099104745584288670041043431835107917643260140469184534028055917621401546084731323718555439651589654630346216299129060002885270838489206298075595299418163777504550080237674816225621826811766514915053670320504379698716951034348816968878125882807818855000849897427165022585293779715164588168837672066041491354692757520469038731408429559832128996123738016035778621280753176254409886573858062080887984639141253374444006617587723221997832397374068347491634197413672844673133364427530256343190408726592497569589747221685016870069849221324066273673343940649190808649748866829372437697623274551472117458564731566043006028617332280577355644939283567208586870693979560900409076877158905120750415133547369279211208244375741265711702260043624525392420512264452160258842960943101388065276752201090008575532973846838419796320897869049847872102989813968177120675534939274065838639447153693738194976846103823904215895539984114277826271748980990253167786800308131132853006488743756349264524966830042310860772787302820849064721626787160813629514605193810798292523325714941874263138143379052074696959831566395348716515835651566824914808147418749673469290101699069500964017869728568557840672006221692798305688944523902038615390401611018551925018422674590424593688106829731418483929722807473920340468446291255525330291972467267222715700082335062948973052196657159534105176058193008745578946622597419392738355234347046658097597370146133025173386012990577569415839868948275425923491390858477193084273265437086319392740520921638303999783412600024526566696739514240586998552454972980772512883639153290334281472408217604986143365620763760611023082463786334336867149458208615985664395662838927971401893852458025644927536264559458924019799602649101990681021292191597626334361100866988563030027699332112635855964229025271718498194315479973112144389698609175596080750628069592747908661633843112355053352945757293712676093196075588420675996356468647931236838022260960742859263955854915110170833294353356900926328731671353681599201140796310321168610855577661892605726146697304840553034095697196621866306254732083791061021676366188936168095967015721726661361334253429553122831422245619080001971002627153769776529423070404518418614304097484507573366200952493473413311492883131376537388387899564131423526563607295569745451388097859276701666786071581085116062895381583526416377532475132968970863896553071331075553567695473421072149857418032367614288112741880800041750835133403920526207744059772231064067457871591160809812934446553464189086609208321332771238077987951570420080510506121497647283145795410605674356731037967046048771586576311511609112610318029235287296315407764175804713846196483138839777121637611123185754019350892646038888942958576372256132066842144454606469653212920778161824616683555120340625994214176941090778555727958418570284176204909529406866726372064328011233748876203656851391945416529879853377866944114430738769612381954606527181506734572456665468453536095531539228814051358494099522633027447858625366515373282294532793120449826900102850388025214287030396338614861849857270857459133207645904684278915773121605961051631101915235772037358221064377084697673566122516918881890170969951769343720560364605045787929218814733274628858251380009971845913734721805111905110451493481982066880153098418566437842264323361272535140178028461336232270244820156571005537278913134306225111064367729702488026997324903761898435298064447664525516032115004365543937623031134720911050147644736012730721925425548182037915718086664635770217399494787201344169001351965982650611616427394741727053806173297774813426953474869174502177172188341186053346249039806484557501085861996970620955771394724075969880233554284605151520185880695081845865911631327559866273271180817358204535749367279828951176495899013574416196636515240805448602531197191601115283330984886398703349156867127520321382708254446725342933982162977622935579000493583243394229012790299861867785593202538719716204726725752823610541614237358910395771488200628158914052693832303007474004218546666441660154940084289971912513800437346131481690452645633875956434351798964503396259774593482128579255850170754746585628104308714656945983361436012768947045251143757827935587550317858378420581257016882731184782313023029178897065043292955184714457366004970350146099919586322748889313697318054952480381850928136535099741863797568841951571634350201257156056726632535603151595458975100342834084093048685471273461492916886126967458365060504622543616304150087882731707032199865924465195143586878620594380242576409842522018558220231423437991607158817221959409636287347506656239879858972318201518891108563421881372485237603120132332010734387172738522032292014493821499457361113673039067364476800461952721988690254876067308913521689419254074648548381667340659358166281866577413188059913182791137649143515651544620181196149135167270478307853774729624257358936948326160128855476687773434354787710214960706082579915803786590227930540098326670464561047511607481438656634308316748052215385739164329675308043109870723519835788107822988645775223047900757726324864807918116676398587925876549161627151701217626314556332988284750652155956899156944931581887217406516077629397940769051619209991111847248684415298675910298600949334485068720102476122175807174543351604798425870912029345320752798912232740913253525871776897904320161137777818814249851005518051783712741553231546279259656015805635577852271218256097275242159956435879857187849163279321758075013173488366819697853056773315511008222652514915511426137583239472383138985155051817496087400875631914449755117335123249681434944311564535213973731151351413702325504217403574831787494710544675382122694904374027070200694585425141730465248957162795619570510370511426440747613669002286969426205257958763819030357465111638523446430087218484857857635005602758291252431540023863708457998006049915202824032521321851492064328605767098133728913009944286058849418925328355473939038422245106162609390349749383706607227214279345839815965480168496481456400609570573055496278215305308787585586213950194068481587449738717169501755709847298324656599128499347366989712145916095068262306847051219357499450533258628325992742955000578999705966738134764424531285413972337370311110742296750459540141852333448808071896236589149020042622932795980306332674976310201435915450083036459819447389576097121834264699129989783647928396461508301840258597240559744653720677676094049629720200146288405378779795613220023837514709202922053271602876393107828677223701708579455316547864501069260222844462824238832631349709410869036216680936965500761459578400772406019647915271900345503970606828581090515088624921466377552566555877254509558093998072346825142636896100588988433345572602449428533638078092436290514356260990720119582976435403853835778083357337122229970345302278134524679379733279086739378963669576607091013614697610618679228591994599822492044666628687036190336124932127637100005217681533752847087450029125319639890139424277436028828067063970242378804134369580794579520286720052018351309540136694761420636015098761385425648006146971052047136959370179449816496743265719604360090847022295259888056383748470112146459734939773255934562705138415990029458709206728918683152773238902529009584739511343919916544135136608067494569022285366685697981003317130003583191710251251676130075241747072425700117787683240728940816418007748904352709944091123007126176413195092137508952611658149417039262141072095044127037087525771833964383736152871151533694517235685928037215179540456966846908112660653870147994344977308348007390229589928089449629828884075964044976813769144077038468275253333776418535784568315015098281442509211415477103212436069752196916150688768365556568456006789861046308819692430971249689322381724596899311721310975839225030174094028651335499783828101579196174884306924676382971176742503573572506699570859683614398700530937058955992048274531238214338383341348933153231190241066374193608712980297935616771727736196149339033545104182648452685535259365388064621997950631732571049341406474119143902450217425210246459447460643077090312638127701937875267220800748473385764521821221169880292844920230741617209915933274253475160871397647387620199377029416533662328899922668374634435917478684227674016549235618283812543787050685836359906658368300762465741488386479942526603125847882704951689895480176699077404391337563200110316229075527838218281479078785491996338555163111242655729061288304983408189820291680702942575805882409462251657583825806413379369794555590187556087885484930654025094225656806837544046148031241023951547017472421693727094539582477486392218462498624509212135504108437103040651818144757117878927114394034999157193165821674195506684751905939401585889121351230666587113984974871553003959366334978203657012939365969011621352487193490838482025762392672223290232812136599613475076252628785361161480867967639990070101243908503140464725529396481860741246914632625206791168779481007993791084215793678015085995136773383499628881828867287491995746134103348206112169813385265076748132943622411850778142707190337890168615448491228188650702664194999971925692426309857235200877213654931829112410907920024436158312890491452091475324012260928871320466403397797438801633935691650251034520047491028381016635710786201155840849074897011223050018711429142828662563341021362123222071367913263647430665785672666149304938485288835832829520016246006496487347428290116348678440317693855229399011571593336530668247812761048808859469439484299505709532209482235248299062890078557389988519955424295755352816767434187961706980036735804487714220027808377632469135318035968127128177309982373280806672634376346514282803626607695099415760231897111911073483501597311868291007473403742002683748742933649340910046231003811193381978104654370980861755953828129614654520293785831184063226448311259366116361058526634049289373167831485543156672804764289770578697962696553480069556624505484577423321642721589129427675186317639333066973878014987581090480685518797653124707089378854509150835191895299916595874843376375329858681678473426370077937172805780474437292982534527969615444848592240720355980988253568800036980276507080661893876460410305815652186095547846074421612393757397178681675021910866226237584589450753487381882294418550408626606768815720401298227605962266236262436714050473305641362868467682514643134012450912609739662770525998795476174408522679077945914446136514862089653705911448934124597539208017061790576934784344250468144249967236332944565783024580963155986823969588220935902095253086793819704373749281390098092572077193951957158260187816728871164591290273335575261613362893920686057301326773425146802246981868026191152803164682134373130269865484664914893253188303121520034491324630722876618394973612415875937417655702844753833205638570018809855665442605148410375055196575133130042631567287597528343571631478906745359733940791383380378669706513178226807141250017996214422374388536226635926413461115193274671778890022558154889809105018647048897741388883487156944984629901239127175168373072454392310412574152647479267710813581361806156668418729796015667676881019931221054009683501251485264065532026398972863196739098158787679506656717760359049833711303093828341798676651612298429257450412527242515468404962943325998815498692967672299899434144372089929641332097176123208157697257704313749035564823920832656964520504429632706248380965093289718964978246740771817909936743158966911099442491880017879237961065746908986902046582284914530207077447458747550939533251107561835043326759958760537648030180563788697679791531990466357066353858550070640352381146479248905753518354472446037735291890883108988900706017812333958302332860379662049285757997655930257191126830061223452489424000716187568312701871411658392956635542290052757548704179107884121826038803188132756832555741182046224558081305266887230857540972787560449357463098001937600427851116472065170358820841474669462284467522454782770927546998183550685559672825699501218221995964622518910741257949138076804052363826049707093849229507104074269268485943566662395626429911034332337370999593217253895678962795527070028495610500924097901714445624558569979320511761953982098447460056845678064211927777459049849644002660615632237682080874052790334358667415922470071021364518069364819741778888706626202695028246617098958919653819371820756697685823227818368488153954976089361068460983790052461715519404116238784528855226519683306625338880982795253986509532408587722621079783743089394869303214008390761145953828712172503860132608998649471232104775495065216761276941747517662998385973409463907525978424727126608510175845931891076125172869461845443183289219426683184677865293041747662005857316728591016664716035232487370206825886579010217051007168041432316236357869015657706250129342423747896503690460000985599112738401708637884432659239020348887035842878872061927931964686119171740674016194663367304434701655257644254357209632118666252472724462414260089320533693277813299205232230925719727272594257300715413590212256454837098583783532597205240596086159747466071758900377717262112956501521334236491788534963422016597294396257200837491488034304217535717909941621886190408156905527430899030118820787349103264281038945929150093523759115985694451288372268093660644621621112345055162662544432514321289968732811967437053843531835184712952580901499739653957174210101569230251578096616572989009799749331407620547891557414807642787268945045828433548160643489105210429528157596962545615098636025118899197953104903505338163424368723702350061391519513039576625819052867312682140610007323946483901433319321194187940743363320821599270574225391179540809051078861856583044157872562345034705795113326814406094911671223608905974902732813344697862099434467915386333548156706548114939542170819961464238563170568640767230604722518711855116985947312737639867472481616113805222964948008869932605540146839500933734842436087126848192712356828454540413391127558366920343644810708553882561372448564056147501340685886074591968394210894844674288664242389776506606542377916142476128303484335631678928410842927926744209239820078101432305397221005090934280314117552756897870144085486160557895130049298648701167025961995826702760663618880464920119383983392276081873957807637841067443993546505401097805195689506676881398135029090561049213558167184859939341869071321759091416796846227017796413974145043325937162979880070505672396533669307059073250958473898864076717593591882777415648464413377306242118321793694512582216329735170850154872846371751097142235234019857971814267836500116552806312272791414552468859226053222367216219279208149659888647403035392302572244452664682074381369696253679565617371695814444232796947111378268879477996963220813100699061552702471652043655834900307590047770467220282390495220121678420429124997809933943318486148540123337646254163299378105393655933637453798051874163788321358017773783878565398946886356159966927279894210086651822891480640633805555403165601341545447093176396432873248403652180583274788883407132117221202776615582159138796381125064276002483645477100599182951044899873180836715558867569146115841041493174876290280614366324432402558799251165852400211821155393470758555731670805699799695216333327459178362265197598439523761722715340365610660426157976359848102719138873491389434060434967931847774917013310478037065184028265108911241154536388472675237019259782890395307098055281648495887995955310183694612085172299475419292106690105542484179709554296361135594239900304242309056802461472981632026463747053778090543579177384287728490585885574687153412288413536715631086155812925710654359700918194600503191721767735712459370049162790029340825851614848516903685265574178449404489148288166673691986763040091803546367693922270827151499178502535108424981261211668551364584419184891049237983353059127861272314120265084644709119833726433275067433773734004919252463375636589654061922507549436256499152901913735357079870533311730537462546856296954292561545796713595238579940708747141733140540163260218688732432632210747141548076774835179297944629138272333038014994417413930497028941336271155923650958072296708778674666748770797166181717116773395257425103346386773774201890953363735188583144929899896084914565061422720639818281094740775614085579503141309851086810794688309971383713090602101216159681168729618556246611718031253735977851292881218011544936269004337126892584994495063858212538318092467511352096791520309789293654429542840822661641870851258294638161744764645631127390178797518532782645082085309647202809460584951693661006485862385918153204297828764851763805643159095156824970170752116815821101690976053680503033245473892570120987922103444407762116504793994642335545352546217943570719737266960977032548890758632346630902062585819887283683932906520845234657574621076679712482260964761732142995863437702206488071094451796676749584960948917931025170352892901216188717106363115422227180615995690551863626758992237193343136250501960766090936509733915737966983029475405873526388555596991881622890057152442126869058322745035174480839712410791529301091270299596198542595796405112259091049312853705848800601251940425865815109234748598264133474811258374685587327422834947340118377424448591579730231127894951445299300993629575097974410242873670922624028307483081358500197891982785063812726429216671277156921168088269486098205780969414089771311596601858106804300276115150275716380587889097841779954636318709240691474822105235368664522131291637817753266702809604619044696556967694217149179929036053248528339322405143452579305185349395599236598628881289328471163019699863625100265868673785279266175526174361175067196868823727062638302812807612427858182009516043490644482494872828445983544807965302658786485775929822813524388527737268932933376389328898317050138360703101973931610787121324441182803379862109353236982599658134925966287316552323473543909908651493187842713989233551357840417156014289194484785413104724707608512633185593986993786136204268733472450635159431096204862130626326826052311425171433982179258625622739872340720318996935059593602341297277933511987872363456547809536440563211173552333042835698299483848878723912567495734970827924057066910860836810944358252775398295774425528007907275983254420319991038483861566599557495696816073397001606134776947851893583834382924857333664657876644849648949266718200378798607260749486769894966260485937297454833143243864325954689691204586831498969311296402005310923134476229995290987309332286831697118951972074266274507301783715991452521002886029894739455746093465957846942140422408556547307461030116008105410381188593489729119356380440214500353784732637292034618371406136716132550684245766692051394977214155650337657484321622773929862435582108785036746561440998925667726786618486356850485819919509706497427314699779806227365949365349773104515415215548035678696232652725600033391967230801666263924931189102832473206559644583776767432930658927489025871483006928291081533191462136596279360937316628585669265461323037363848807154402307668190199149784493938208304839590997929057771063699713259727379433677955616188147122855424056636240145258388088315874218031364242359522529317844302925521814701747001669592801287255525278179755477044614503367956923749041481789633673846053396729484173230835308590470749115546599824486580229452752581297975850351763611340118689187606936326224392835368118812264117332000047205548221360760906601269252515807124808357433606703195518463446607654685699978470624023987278859451868898604261837964202424547887021424002192063714885981550671503210440674094394600883992487919811543355288651856043577736255661799105840357605050277863259221937074056795208717605759969999279105510060938319240642031671900600355481464777995353175333639729009294259168435194013592213681525704700837883309963667259484471130373169028397894067235673112171245294052294650339843326212977040787086591179244994841845231846013329985675641131296457664496435894236038799745910680745643364037323479934232385410975812685993196271472901220779719355636648779317276426447572626242172938765194401209780172834367453382963996692434864362540937939053651711923412008640478492012481963915549743728606291158777515095521212270836348035940269044707108020605143172016929671234839030268010647333973148043893573321480535598708636567845724912724099138320992313816289247903728586342001409307334740076855413072886221534808774997363508974411085559928083482086618420351559248822845796304696674082447725796792949462040749181579019606303509878152973570425164093641399588753385333788880798568962751974277780214428577527945465504178460987776136347325607745227766702387328089717251033758273702839129085722504765107351189964124561430195266637835445736608006725088607681360500747819359686298926234375971793564898571264807459485999419204664753317444699870901846069369710138275666994576221719585272961035747080841627123204798754157264755422346770380001098451169537420975660806314704946870159869226163784545391786159295499528635990857449340932249147783728871694734510302390363540100747499502892037965417067628858313557627753972824850186927756514512901742219415017679847498386807641973144375358054747686342926485842541966492152835286776944169450241989511370693569671819881821424621757345220125275364284672981314692347691731126405518129559108254483699145620297545765086895305666653053198396746115170204526799085696454206046161480989575989083548494057150713970678790432612752897015505215696491569999507507977017815614679263076900832370615337561427276821776321562595327339542455642671908066037716285049099018969525691311828260473699196253972827422393604850030645626797961843989918951471944943123071950341954002770690576216803186900302393998488949074299475877290714832157679037627897500863833152423923319594140984671145709426450037334526855983190600722485824430260656563793022174574145825773922648169673479887098897091561476620245411047062333431950883327323932814574141560719039185978726784218865691658657338637276301263162127623857971282368319796694745820788835218914846113288159073627743199217315987435819626913432461831642886458869957366200115522755573602099072971458125467300401080966392386504102715659435604310819746563926421099610191309968532624287129318284638965706616992533906171137991558472927224838922268561279353632402258187117419298708591623972703876171681830958233961209856054635569167356663943989133872962327506461366481193649871956763704518513949129180396011906656355580950699765950524279041183910678561013415603286480629739274356655661842027177659572917372089644257016638743123850295861351175059749579153666375610898928469274856931987074227964132777900017242036930490343047620025479914183572601221202086166268181781353586830378349082696957274521588698328514324105335275224266326642103924221495851458957647563358587905963339763940851094870731607064096335499818370738826219330255217014695675409392513354304205498402677412900496868070827125102345341274992330147814350462080157230121340913032244220016108682778785050862888411138433777155382753088600005261351606696160474056201378785555864319479233847251288895172833533826272183348098706314930103942969289371547626233135243939174753831499568067192675306103781162906446682252837883690849311437279441600329041612718328420739813451823418304614490493474409936529491311796047232117326718193536455015330049278270132205905200450027132795692064602614443497066549241572183091443272830485819759678931444168243531437024583836140044820850796922868260237860318729562715156558637194298471927070672363638387581081742126856865361539882615811908394282587003015690503842442527234302309455023470840217524306728117864444153371776558273656297407083012342727421047868072547896728834600605113610725387461687812072340710089355455480144156315822423071258007474013474182496716351054244698885506599377970275597604550687816160996856165111430795947013666046909868924487756210332724403879172651026258096814482114104885671257601201022172946196782365812945239816032966334786011763768584202483638292384733720832530022887086162293662999056749483225951933088880864918053385823511787802489065372541213945922806365549811544052059122928303788456016767194486579241157289971954706620034121091464308142050935276671208953732008672197898594784833110110432754955188596957800826622781565639982891367017628999951494904220535785400852341868576214977700856928218026715431242222555252436798799392132601146262904343689950169417712874399547428753734201748637190031631932268452222182469476709084242643967919619262665543323081990256077277520891090667043308561575278377781428725847113595001115198755964401720580026849234090986492493177380979646023498968957526813454564328364919680943834940288333938887049415501159030203070347853796184692158529186625972810083517371448849872469667648681053423779655469480974373435486607687326759925485997404797104297733169458398103733322049253516985862804763262944452289798534139401997470212035669114151913386487108236097181198730423705667209237978586942403425986869382826427063650576728789775077678162288825169402168848432887517006031906347830064327675924439171987514800639516426667017756568899330776952647411151048620542226895638516896158983146262921691260142576470421485663010396861178778061253410629907264380465919008048683507741284358607755797209653535561094268255811498232209838819946428846495009809034041769417765698049223619962971659251195853853312452624224195488147178262803459425580779669581051629235802042559051683486176192856884501092404378363554974925051723918434855184776730809246816600659991157146402167175738880138810092033104457683451101467311667845106485271156085532542870564258520676215161979982674212772060385583768369028872696435561240675318000083890374218186463895462296994260724782202732837814342873668723033295086392988071773032635475034920867042792946906865006812830315614014753956856940679898252012150329260779039819550739474019838456038444503551975072687505947516738870428014340718156477151689705522412544180275517190214773947596377683768534368559625734322359236725838524884950193043484551537203690632225762140663852984098176112496326834271243905763271738398213037134748397184529235781380008247736564893202525996006365636386846396367581482106359352431340893350548105003794554426115992704705904914465321164982285454848140695430051844228884910447311461011396716485343635485723633372065227344702436959792958849872391681302249416325473711475720063014026020818457016918321525839580400306624014861775107085249354576094708198557115197759278441733359089558487987868404045742730093320351635399324261881513826006526493394650587915662552633529959257475384136092153161296005050141288382812249798714968786543417606479830910246209642660679196327159525136057385105548600997034192660407211101315558612823596843258179244020053600919781197297914155462800096921311976873221736368764397952956670950309952606268508229602166927263070360313824619198116799510190622785543227473938606060276595701336127476814289231337289017388989450996827380835665535482404447969806549300698080402934172800884129306161738255614310327670875064144704704698577882510989226182171474703386866278394997686459964255629093796246390255247574493195958993167935768157459822214007843648894798100909528161876475456425100632069899295540514597311537457212949613034586518042619118582151038844889338428219062818940574709033172315008279312149061002145111155631168767409122023203173178168867530115463610533780103484776833347074922233472513617634844934142345256705531883602382680958505408474662970478443131473156951374093293296402642469987337329476406866132512582015703806859875042091281997708363376380541310321587272936959072607405219888563245385575607301127397263580062150216953918845139091801093892233121077509520055074083859760400953778883012207426513622513139676003133073921583147645823999915971129507298843722475832528786607296594448866833400635862094164462314284041391526199339646985983636586478783166917214947651973458563579377294317242240964066124641586853781859373807208733167098837357917011594525311450232201011851379746078365702652469015494546965993424625372628802641890762806540141289995666459010329653175663407996319248329406283038400452382399494700556446040015368366943989451589063141372416050277071031112279397061122950094189860758413745572596199330333079059576882264856237902852774872658056653571312489090283842954756339245955989593129314342093742831213941482275730525335747304284730545240658584423855734772125529490596467452583557543435822978566427261801158958562006282071220918494944135394026043252807127641032053495332374589555692822628917302670177084542853741786975060122490288603152889274277373604646887647573735076023986733838292099167340448690740982382306979286693123068718356296695644636351492202613801982990446315255817233872672349231787840318100725721059560069509756007910983976365108094970854028250670584322674707094052484946834742678079243571737880528238554214556210666648474830452220542375616289608010733849324618663960134177588695545482959422271669984453443622494439426910503778532519309590669821036143536114285117691517969112976899446657165773055606769665663433231381557136388648135826236017455531222478109620814025583317893171875828133898550894121802872073522857263571209238799609474864822083669130399693775457045135526432684745309477548056303874855846932231647274931462734383562396061173163084162514561724468827952511323378276411746803694850538240961126232965194249862164434750500636763523767089478802091642736523149123216132658658260137514566013629549839894978221939190021744545912059090808515963563372566948175412575766057064852959868505614631301608088121316907966865072912118015941935324340133764948893399552551222353027092105541846703482967476521341223242006574683156133982025889522474031659322798480566462082020564418245737616492255825144142696907579784684295093384054515492368600035206567333043176226424480641130203116509786230109987310978057081649545588641907564336893250409360344884912556852326304343369962645624926558307406765625342744367784955277647925553958180981363388975834456362214394776746349492427323733301149714834309744405137279420619008211580596124528619128403520235043629379451597525192744823596258000274534938610542657010245415559933576324054862171880956002728396191133845338571740972376562318928024770025497039656884193269721160081809878703550894332864532032141069352595485580076520678148082883390345565938552789291175381042198253000972915473810676140704013901383576494943037372891472551720799813667762510783256232287910690074449297594424288397442329574724297020663532775177562555403459227700320398820197262668111288023512197858475014070700561810653183742062419715034623242653079681871075990898519193702263867464225358279268625118213622825532779709285195077475719719976808896647502936964541341114603555601265709333200198652498774664454655274998977833043887340788000897288162681122185131211882416543752225817473461475407885988103673954760443675171607720701713670659144852225463492581665533278706958632440543416533015477566933330388855657396608003899123334712997576953997478383705016939746455681397789334994155774203025252990039648123059751972891737022420234041292755925738627211430704289682999816049700777691934024513014561260906652983899481170635170357965179659319211331546441558138839511644195209096034075035243833245438834134403525014823807641016176145052092806545857627533324600442650607372905653264417472448325961522975042730962463206023481170320540258858100373735151205571348554168980586038033092108059401118169007453195546211562451970730445944898638976549220108605239228466936540630386635335366479140210642951560819123125296330107039195241914145794751263864084787567762831289990963148465270853428222943427665799645629870775677680899916291359993974194667147027757177046928457544037782433568592411324061508684023885433763234159231741180121789946817010412535064436646695556546498197954361308523824506880108190083627762770193862551285791961106202862438803741033258022425088251188479297764770422935064567559894967017653623146259987985504423511718617219463294441352527190529877283857506590449523651959452566832591892382882432819966218082023859343050214161696885025617475251480853960470915484617149909961267253377987303329612620045770354090866144801131248904931876535004293291219077508882063229163469255266930841487591820358964265335243030254726484737858812956409300491515876027013677692131971222885776785394546411441979229688955133236001395330070006280424290014996338390067551560713432390112762183897704697753083284277732246379654239332316546268413030500016488976506080269966760504206550287228362427563816191130576153905779540686254572008522044697865013373538584094046232991078183279016044842770389914534617204722776703602368137230667529456520575808361165344004024314624243023846136510923248403324844084930625434130958365543182526808236589105110503139120826909286938945010423424395462073632215953966794074885375384428902990174984584861587723951265771268000069509300115236056495108564856422794827865176515073811852821225020343060786879192689186803652484234525593753982460713754038445667915628899336116221278084330530896553818963605863708086206488916107423829136063190915496596985119073125899733713654957261307054077428535309878578615109594125186494938203988620297795771244373898191066501261900810931588828717866116415168111831283054566307560645213886226143501094414542832544533688473444429630081494847449034910897327510473017222558426903870102617964355545804185167918916138688627725070074522744883575616059964195317648774325723814039590832153519011852579727127002213880290372989401120915896079447428513679909846030577867750930431153278719939232645501401276707259639516741047912986667532486820785367189921805535807001276538805262312447624563040178238503634097601430006650363502658621445732684480329173517585051463078494608554105199634326852650079096252905852030420456456784987119864066326755217139035849910808209174414956869746186006151240845518121949974507083054620463225464989249374921060448481329183277445976667388685121961919076854164513120029821747619942846148095762245285411423911210355802347478888458610322666732806302459886160831719468769916781157756093197076622266357992717420689838843335071940199516219084829016401558446450869727744048526282452886336117364637132268228280164589134659470901157147735267517803331085416529359157930124495436356473088420794716642616122345885285003693125905272041069501851881609891810465176128929391446212534485971168075701006919440001370147159422103357833465897874317999558076405346614239840823049950388087241610127687571550752258821155077663348242124195659879312917303254658631560223179192596786967584507952733440378138556706180481419169738476320124748669664665383044088647748271232841369540176403768059344620800392798903389081261563677873088219183416734809077514954653890301871047488018633537515365931709993555407034388861443566558127234952406677500636815424477563506357715901486513387516638907964179797820453354699013187499342926770422774760641740425179633586622509794831645503930839122063286942697562266135995097565811486677319334430912631592183036923465503623414945650686309271581329887377575982541814363193785083093658341776475359434390152051911659873041688612869150827806295432387646596605904904218502210313605980614434394591877618755481252942883901820949997135276213309901828130675744078362222900229080928655204260124940317857219346251481991395150317266700763284999029250073564887660446933262898049546050733667497971002785817972937526367426660854093385631482818141028375872037494255289643963807693175016029039358261097499062632693011470378605905444364737970816738645038602189609417406696069515330392773712716542571580108863626112448500073274722014210866751200605227857391428617477774247374204618493259562052746746329620937173090412612000770364123899011898046406188617311525651890338425652157488311300740910724226039360890451133188377194808066042590967529657426862645034740145726483984493179846140003266575480134805947049569570264805529106063697650051669582747264850169315560410424016039322254659767374516530424448290257266436014188954318542756129573250729992736025889673652123390418186817210445904358443490548006137598900617377941643180448024474221494107900919469128000476121097740002030296716710753617923642645710564343783750182690188679980764209515614364352512477418042427144690513688773027011798670295237960216232948886288189398405923107049942183652489802885799936893406963047805338534897023955088637185238794420701702052178569785813821153622939561891636444774795254256132491025228159168162321114156356169878092125739824357484325146033530153550502523405392548528590620696443201679059060450111883154480775231111550333515167350121001618227753819327243814562151951107314005369947377193047988658792234726047507993688677743875272539632977524619730959105888138150873613065734824688858341639882466692080387436778091163315692658790134628273088420805641650857829704636221465103018471979843284873549119933068449490315165801377691258121954547712742839259762212153356613263843651838593927518748753714286933659540346049050462106047763603770713321772830512470487639403314888450675412231989849519346458499641032218098288072070204043055739176899898913520572515615319378970531487891077255603398969614085007743766214361472439060864184820966084950542280521346728640916322854280589587178824111972020710629317469642316167702980648265566518926548100128455023717048422294356962015521772101463607809121410992981901735353716113990854851386907262088208587134722365665943734039447649055763405010949691602996970956474744752676081027636933433637907836608654008505121584591063940710913266213192910880813527503146413860725232590376933382915815395934139862655573993878270968009449408040409621677408908736817994850225914543883057205197060146490286251816282827041591856754777691617099598738965287063285840724982865606995386644007027984186419708195083135846762971313429784457706204505218809043132785566853046122223414855563363963549823424703162658272040047711690583055112162107580640258457927993792398307495713104638393000507013758272786188262357101127410367512684620607800336444967713299041293585363700384757038694430181901593475526909313340079522235505259372008656451689722580410271930372408291823117890507655918080643061339892316260343926721002640098602440709336266350536984157253045765162507857672012662754767853302313701496118740414821695647702418007728900749269621577853909023066432511227451396963605339444799227297004786952114858354940543683643787696374312524842608386945498153413472342458204588157436863036617896974579948472445081980556210925559599099291784692206205461468414839262232425044403512733756423645446949957605061445499047371100202427941397172330344626221282038475715594632617061154292347989565879055619807202383508701294023753591094046203812813911933955679997368090576222225059863754196659083096148740354323815372935006788485424084341928256621768522684363904089092510510872031882944936644248971531477247386987539060501791707219639309215056308769116692743524942440882528125674821770830251365652397849474763263517443463162500219690238483528833845543241082172439964920696357685684036658647355317389371391817867688300627710079783314957952352203645691716765777986024925880515262436190557578714839491758238712520122339643888199313964679989685730412366957947320304533129759820180491048682422912209648020243557847786255405523181395144633006955843520902536803286689340296497087109059942923792733309137902648132734673868688671534345595646652249166467499869630631851377004237943501536779900550280435822480926125475263583793286540883096780708160481620704177738520104346984405758277871570429382701636086616479779059582825115736164697276686920725173813601947493550519007063424596075398383212412985996799819557482838428836652099468830538140854905191087714229202895843240793638878838931496396287733025678874534090636415230081269375237735703277779462998939103175342615938397599446788103592367447983828095237942440695044661916069944339999241508814071104560903210059770699216328819297367592945925693102977986600832915969137721603130233770926176566547677231146974165153927371475586837094015172432906668161703767529404899938160939700622005941313972239930736416985739404985056263344027039733248173994381080099292998216457969637983558968758005006621345525528417446753719836463658169477992602950725074961635588453408914096214662206684917120078882871469109489302377530371871993695700098725138599653827995680919918721676435838926260105657224789014767821272455340861306086057504819182774682236961972512581748556177806890491692388969708652186869293035352772424190326790461709431786375083371262008747389625887818350435155740848334273055136045747129428620605708907901399533128138586419385783482042456006461880216203743889007247789315806815895806836809403082374763639813012579445369886482689022242908279131110103047687589660369603248283228612878096449015617504375462854181093189477361011626377602557627202948563481888487514633000866938643184490520947469984321341408175889234782733226660479016207819288654711204741257902988300149746225257760329867251006088236310484813338120404354989516946543610074838754626197576108066018487036522017612491227588391733280006658100359487422701449605890748606313478196106978164707870218999019468652368021444124860771434153463313774838478778073328726810957669032828277033909759911516824801233560859918398168803585880244310348176469545775190151307431663278140239453796749754902717678421706577719151030690846797985700507559751479883652706903432147079106038054825083760576511466391623724455416871376633791279807301878150117295375252012316919138645636608608550202662538555310358462468949868492337034537142687849647387652887075628811213075167038230079900583675342968140843771994176230774109830466247778408930431947804636179430142562907750219062667355119437803284731528651735169454512816574534826667784052662133887508817268836669314115303880258497273495688855568582239981612878969074925267638452765130595664184667020010766629196885124300141617912824831872583783784129944623373902372498328723487558617261229651996196727476068868420493888405847628528518327842810920082132404881366615565263433015660867095216314160106152480526493486755288071398253711811290697559690968316118877468282266000568724610459319615792675112698737055778866390530035113027241117729928063855516487319657498534951057642277485108322199911967811097190903685011103975697560262336830122946597520212407244882106523360773462966621439780949827040517763771566398462286054870742573246265451612106748657951536063539068621260016632023890084439885831762875766718474208134747935733851540806054682197303422816465084349528404536457287060616649870425702818295760333876617400834090422105153292629861564200458980423957685537652883441945068127659379484876047764527984685483964482838396359244873605350671889725486297098234587220516159097200953493465289975458479991533003282421904106720076608142043296146664236396865752246492168875134926280583871328843409449744124449237340561878728524430031945629525705297753521791903812773070728168351616266564388604736489626300138768767263622792628276836105264221035623098007114778688590931164259633744223960429162366105787548772696470315880469127126831032267671458507407142479151117195576101882345062774546647022088400335478195317033052434495816280492169016330856888108845997829783482765680022424652919087413654688985492431273309177376830597277676055141528931949925814780657856349530033112750531407415416318565605871264839212267468555723497912193016339470167808186380983833506586328909797148583879537954215696912524592109800657318457123999244511189555868818107456337596108903489829924859561770378170518907266184797914695367797230617020635480467846083520915991604763971682922756542279389517306790219335321449801230201279581327253651861739182316867687915086472415097656730768623585878212953528263745718443180463301638555795810768315982271741497545433455771152645407953639678415904322530785946372920918774320949884774113092487408333793337696453867275871123930396021793582172763560907708272738642407079174672118443633235453548736625143566643227782450457403856023291549460514984910584430674085413730357006337094527401847293247690622097172409983687249397203706007592527856570751686853744377373669755408034649589835686067055405539466693775961291700796491410988873675720704727486853600999245248296157508049356712982579965604357685305146030116771425219705812008981933648787304611279101105406892687333779859515447465072283352829975455030459837773962639407336231487692935286046664576280726568607677508128043900805329529392375677326569094298114009568305478847922731681616811781506890154555484861412575017845483452892180642857000381380563372832907119437026562431805148108672371000722025430248236055271235442094207860287012929784426463762596921643338409694507047668897114118458873324785342991552162015187671227493890654641032291003675031583985276837303223448034084207213131903681157656119376457407156650246790062849197432714258009451420460550234070545732633413127594175790624755639712667799682910886868525999585821339748431941183157164925014394593816296355417296591397581395943676661979905885620581666986415514500059597972500313369454846539663876874152964430363728856784124693542930296654952478450749224633535108518126451579184917480037305033845229284558758463116889199119434223538439771936666145377650487644878418195102334077223651367942870387231035808090860497304230887133206042026523720146808601359538368256915590192917553672098371784330715660977109505720958848398959493783245321632071670124937241762391950473649368483213839936882691335634492910638259801521355066563989412056766047229059108700100071110793474792885881251656979441647897059910924572759041858992736569100078480119769533719963865240005051892096259459532925850481751190528707612055453141725251538022678284445498407637864502547090493491391383236505645816205354189306318576562516751443420299140132715903224361433176528299377584071328010524590074975236325905474736129809041154697313204808169202340044188689358348484539877384157946481853277871191196684953890955369648365463605519085320173779896999315070933811591716562252654349548738069361780960574618576476283702592086669411378679897944843500689997315179065319838545643872296637972687241593992521792196519387777850596461505332522935475537603587811729444587462748436134681840652240323539048872349510351112885134478747119109103022902896426671250658560899128206625499823585770534514146814136866473490130806988933905871363309402207352707036978506039505025377717502942792690534422426201555729104985066910686808540842370255579103109601151426213417733542958416776374626009158923964984234679942822460103509290398197863799242959258400070062335350980877957761719216773495687686476137891208722223518921853314383502070841140180291516515443570759460630490002028652133876143641896973501958485996793757681449360937238887475971894137852449984463428645699381433353207796795403965055575693467322997971145634647914456020359417340691904810199291480584079052274739631430493537338157309146757996599753090423578559818322675100026316891739063905578089667536150812855159309977346253539119984323398847702182514154783918125831133185706320991050720881606329205325788872720655387196952588176544077962780243707491858147830880794114094890253444300397713836134354531316635228795926324884070143525512353055620571105976439623598819610424768448915798866077780081901321539569794938367368758597989517707658810840059829589292156618032345971479872877059071387867810633980233051794230400420057880706707788778532717350458772950521559144605609978401280467119910318148439648009242930362876853630065737000666422015670997992501040659656681208504649906681021943479546169446293691774393170869720062308253340282800383221041208821465948190936282969033670116124639219766361368597825052074009564272280213780485477301002751535427705764703859800288033437719940074231230820581822322322380542295869053558941287206268829314169536451320512628079054163939111330258968606588091685647178871721750907808096875346774791199015498463327539700720145399613099249224208739418236766281078139559796499794798004659106817003421031526547908830366259867586432318816605043825222264766064057691966381786095955028618300591466148187377381659543460543170042707415445855817803750131581299421942826428556033819493471595316605436417846368288427295900881191210120966881145418474308722043252171972837529046788471919838881229711770938079441683245374450593369135068155086422048381767788506100045867882643257944972343156711904523771571344659422790245193226187348576679389310047148391143077339406430290324675784544044594848310014484013998309968041394374732256772909962793686558435297522337702439293433289381541571148362451742046188093095646988778852873857371320040387658173920717418400364952899032535673445749179710029423378746911297538138469449006552170112169634821419235538575905102732553730000460672522795132275317269347651364294252010908011409463396625411416637804643264781182880951633046724516951848992493144622986750065111094888637616575521376172455232914826324751151487878403725600724630370601699998729618247593285709895739182092688485604220022676445293983825997585656070714071011727062317193170508753170522465782343866485920779889376391874129931807855716192724113114737001445050200404012635157698894391474656503698869491448422176838697788184644289531865663476273129998742574617547961895886271484815255999445604699527923008962046103977143047891044537231982483857782306600269103841652294026022955688786994763109600126027172448369814454659532803500831153314020604552616330221123469043214353781504196233974883078965956416253911919461845956829052639599103027108963505784429040340944917704298477367113789265165201948012381747447495043181463000033947546704689503274006000850193149619963846868770427022860625434910989102956852467840772948454124615661950513939123564490831989648999078022006135857395705013633907620807585426036801129853685509848268094316976492929260263949153326538105151806008922692499017670662106892495576727433542613653596741526374471580143643576437238079010713779625531172976021236870368131255623348742060564807270056180022970896759896842792546800010288913656674887688787209665343917751367720409175616169029420757281444157216544881473194714517433194172115847303099290684807627725767603894538274887169258724975047474709637317935948494135453476454228198361300696967598598571608366311401819053035212275987512430117848743933362777017227625478912220405533602282348067211270287860449461106182677868139641613130033115904869771823226489870296532556775461577163407271626018514251063771625944224423009464864069787870071781296717297479272716621223620507444134779755000641990386529650358905398644752047545291485669903919797451212148858682724577849800129303761746562304222849925882018301001600524931313688208234732658231976233888832993444091588818325176185500341536705458405686020269995392346524408625411472760152691752334406182967650598141468633099846534250840819304802841881057067540193552608733993365481156290300636600698811106200465484113978623738662636571657061766597866418391641054647973635786638914391195011848770247516974836057947065750537743356382473646774573671976422993665638531049263666206943077438232790266223559608345840072800251580548480144898333857144082031425935285020520568994957200603707731875029243222722365388389053389310044167703234964364686680521023663796635728011400279236654457569918164324384911749644599883370715341963164810486848387885621039818936356068043434313733124740322070330008408933179231927319505480873687449928311308893792237501052060294129780354552205115748839582039213110620147299572093535855619273593650504537274530675415192043837961955522412974273982848232101091670315361079595499521152368979271729816314350475089649194654368418631451005905478437914189404129278385560693336920894754677569404096480632587570589747630376839227331987879284949443011946863680107891021341534254066354023844370891894181576387483253799723887854113578743163693712793180727954589482730765506255715758334558152314172657532770060541463210227257066751453725719663958695693060830028712055083820187268382541275492728085271525867603710949442904585440515054545572099896937202139711903909855046907602310042908420785724377635127440302268173746100465613158506856672682687641755994079987150417168241340131945375298249303173728426430213430673186012254283905319005579700263081929137721760540206434361287776144308879231073747376218888383851600153329233908269035085779457360471813107845465432888203613550838445679158109612988840794006990557801625941813981899154670859398892896568849556061550732280103018054032071372244311488608260429084151969650622269121791569540286789539869493347784355455619358009321699178122424621683487184587420017946333360999281385095048326839126562297112177989882695968953469599222586405556734463188805332354071859579984848309277882712103164922764754438144997947650775939542633968340911691775475790301441934415976393103537856507014267034401906845275274811245536597687197325631207848872974920191735307472947705970224314948451513774419878995336152491528536133256695129102494433674423424453417411032906043559652083559167025892934163081340157552046909222252519851592927900832452513676725454836000196165482618814576766291122068823321933965932293927494165360600871428946446076474554771395418773357580760784107244758686682602383132653613009930068344266499173319867840895430414378662629090604471972129625062264943715218853043371225799797622440659328422602804243614485086182148277046689308269369151465587111392955416539800828623862859012197536745281776558780910336053391223126786025216092474763026122874995850555432996647971805319479507751028670460426180735492552453637474771470877826416276042504516153316623547632944628044463877441713671459422221567237389633555472452533551281907670511010428817282493161867446505591418875627906149247473051011827800687548400129617689430989099400927724992456364846093141609524199252405927544894496105195111994862898803605331967073278179034243498152000979224292399327459305397237316816938811380618633355599205265791507478954632287684939442407941918875772830829576217149911785074897798611486837662033186381516001203400820381876415381321917869036858267532349632513355384535030621243752396488018278242980425456995138556474704167370081724170510543499989544661276079945120026191543662936924649933252325548166984101001067837618305251891897535444194302600713337523601907115914342247855864115287785210068374715132059245973270724581782429065924165959275581734796231049413862457071653752439512828130805197330949543423931005727070440732157752634069166078064784893305524279830763710043359403695037047821875263095673928735372755972844669223188152624573219942913140184659755002690959071751683322419992449824336902435184551499891856201262180200199661004355336250013943236207968264830613588272449545396407863622741445711590917085955945320587282193659258949925980726930641862625100332595130136295683227026458417389838099493970092555006147549285686249153925868906863710749926931902436023372715443955469553662080549408103400748289483730635631525778384418188501864397272670903989843381903895854505626000879963500870810932097118326271968595141075397422857546037748095130437887869130297825848305713536185685869319098444988520505170668432819463693117921668852264353199092165361548183884219823227009169319313985108888342476118958841300314769022447512422832711015474648107422541967112576990381005710687870140915597872003822054210723875165430369569085425237393065260331137023945979030156903895787398905069622192016545759351741205669882901234290206253815804866539283256671502497181329276527050732311119021670679468743515547708768733747442501110451609128258046824602995444786394519168633720002840409434364771334965182696748978391443327694042388634867084778951059582740973963928193681274874551169943455549833447287751568405951348858792371697035376258387014658576663735517420067920579130333621964283087038268370645410377230961238302081237793352790763999839002183052245650542980218904053039872652365595353279182623969592706707347192450101033380965453217935716735334385122116691616008908578088427084071913309782600202388040051110831057202274647638701147647282171015865738305844165273739570639403885180986968509582094914049140296696049162669268840245211216118472361886824258858706988992387599355351940541953890543433564769439479537184403339177070149294541223989214672213402981238585316521585185648545300203870213865590715124174630344642307961787701684854466066975071342328441578894278563521149203483980871442982394955128526228082135420428834504884014562537365494286197941291076868124278270735526883343233056205205376705549053731854538895838404664322116679058637947563216833625221916392937143809278042131839719065835983975763264453712409615644103213869679433137907544308482307326228078665219185348315845186136972082671547607691094620652587452643578544174852651976549150552375809677908856948280020895257051375585833793379629373902239650575162363137447374027136082916096915078563573909271183792383427076606295038971891578139478230871888085491733727105189477612027476033566152845451529834313575432925286611706806075235443710813682052246974887880055546184066760939244966095864142722895850804169438445962715083854865445969617936855757505847777264071725867359950619422525844034299376217768479864954184717763935114725774704930298795848401035148403482415618026614465286135155556422978206294798345143175010303999737057325992404138785841176191435443095309642954783322406209210757299371927209166812018302274778557208729474754288133889741836496703265019832194483484009300301337638065721835750396783435667287188477380933256162252366161641166760775697026503088078942879910759089327688755517971390256909302804539867688783417856891612728635751409468667084416942453355835949525358987443930452624095606910544283045401466558550737121533708918793048026341011130805639746778551948717385491118181291746934277002137041452209952752859583666849297661246061938067407793308201503978931345548144272516673355032836589491268677798899974641813422051804640059742165585327485781249366511283021629380091572995959073257068135505926555641901355266638872386767253051898004248191639255053359733380471665002928480550423721517775056301708240842665491835552084759470212612469472961358292748674086849968055294569698428751040359233082772701161701736418799788529818366467588875203397823557788469512631726142098022381628812259838821179554932858250301496155865748207263563714653322080199122505931661367875098078986133661414556830209460958593566105206229701960857285493932140092281175208039918544843086412131498173454960874944330851488840753923734930300435883359986121842793187647111183810001381425197302782368286990318880876184356624236814710904642656311842198002243324638054264393240314068536093539876100349808085113135741992876353368364967280781878404027087345154394603300357569550134656472448463298795758228421943076652767493888037210858468581932171866265282698567273562412933281982535846588447525095806568017804478217952733314820461439454330091877562616669058108953748847907718201557913705783443548600754177299813800394711204621033836912755486831389360743532143892044785558926790377265440473638466434802971261406972549838931731653713395477305373278658529015181682608452559966395922341244718031599451898565238119237346848155940180352334050229500426202014645661514987758789486813258947500090442688713889927241737098481132122558508374749081199715259140023010484483578181645862476397309737285331647907407957714521614350011798707500684195785532552391613582109027010813341762216009856500456965499491765909218871259227265675705925533622877591533206793792036298297642405603755424668481538435897648467489730801579214798254086302157903876275380364551152669395474789220860890484322521152163216859219387677974230196773772758555029977230176131714040569594848668881918748007647055286164771528175894881197803980876843600813572070872884141374555521012131684261119616401926355686911669099695641338067873288547351427979659984080857678806788750906029282327016837453972589425433937408148685377523220724798722960789292093634829323126351767050531832022877366351171918555654105573462493409967853112347523714224984356974981272174223071643166599151950262362607480742988094469304740219550885892813587879699684110679404505634980121331510432783371021702451095073203521062037637449212879079911724692999583595039009992788465520751484851418658404026763521887552356854977130945112407000115731826708842608254823762929930596803248961411105986967332250591340882278730142361914122055158222614421885900344828957368690287003241090600515356557549787243958224711169651264816328749042874488857587697401003450358377750605116613536594221075161908620040484389183356152870883985981811962502134096995239812389499889862164218551914315745738861667601009118538442396177065036994937742197778239823380035866408194463542548546253147998843092778512118098572086378931750611333214055434460816185235671765042828892589287973802054125746955342171792461298832360884250910002660951672535894855616193080986657682447299816852408065314301672024557291667962370482985028644345428939373724849967856729433779775881169875385245053524949621899629638674431840717916700929773919653620706698106815640032202832790150049947427212796296936382448087672494008095386199299246550558476448356706243406888644948244613955779008152659620933480148871181306604031782263552319733647454369800343536379748290954203587320450734365125062849849002489814703030540080138995330493232222909119107508088922014769009605924398133094315234223025928833216474064033058384960295332215859344395880861109028330805837433441099365131798984368964219232686632518009311389395400219354840088968043050217967777980147845804697696648139413794159317796072286549672519472085083075878197288078016437033178834182004450711402042822905289095967996836953627971622154916745054226167654932527530982022867830072377975352582837802509386216150672223370051177278275433542296129961058232177214699245222755554228694205142677147444160232157555950014142043290862410620581276650014100268781216369144362132593463705110023847671858686907179941590869155531024888231073770416121260485340264715124838987905133825108572128160050724262392835684738114333014760951268940307737070106589025040449835442484709520064036090563471794777222524647524166311347553003220173239684806941285745814125535569569649037783708058129280370042112452840516283116667980403830439751311448768674061898479156687425874192572319523868430841097800180681054021752098065309953128798887621364055060764543708062175687295396438928840396859027863215114186715234870851302765112682995611982751867560912424983735527226555719176997606570954102910843994800141113268077981827574423552102848263495327613142894612411605656265625299902186036973013668680499157722597029852645593806496431409120320837879183835973639083048027072709353707819255001128194950424994202927912589060874583346311124173954349254175404954332879876238908418800252357787493661105645403107840119056251349453902989146751313787632027948307310426189761531870508854969806866699416772691123917134743270285894409956530339715704778111020197820646359497536781145503223986457118782849407917347743902057858264227341006949826380299175580031914057713862488351959029697748959758297237214071885170996175373981724608238231022434001986501472949484058177518493468775907843430697728492943746013962110942665966630809799059893793561482762548645816624832082570269996750925777168216725494078798464456381442350095161146470936025749448623754161697997191285468352665737515786705827491163064147894543623107930794671415865420288531786735154376271578455603849979333804843506886957529513928337145670788230880870150797976263988736448699057090632095908095780867708716328631511409518706409877747050964390679254912672799240314460092688415451285892224155777504722968672768766785718285655888837526243083604675727945982031649521494995546303731319931249251044030793313479736265828369101543180501672401543153576660959511207741392908571818551625180519064034427664474607601101741629981249745688646036002463189682269062407273745333009992233835470853737861227996728251830589843478004690470913700361868085840966438650227230720855644190418616639135186513630927996616105037947199409916389436337194999132595701902750168638337984401525018072054659367094651936461436721850599293222115091499277588257291221424068241702828774559742705203678513864303784050853522103208472544855003388858328350735065798217341148896574148986859820218296836259112664485677834615087051037183452839672094836799453513086535290512746548591059720229562862800355889310783474339517302056870299663786899213978839611820731098379022877284070293672248005055409521657681185056486577750383814002191715997810581899980350640157830315737963655561853111372123251134042563570208272607896283313489546585640179954032821394973310985403467083260822598663161092149209368692789342592684142892280435653932704082429883772063146649459750559121335402061591597094643387190045065070007691333803860224216762837375104943040807257699253406078970618313781999646896445018944418031689854828069340801467851523244332365579056105296804322163317595240587384517655540707472501862648010758765293724021950742591141676336512688334023124521287191193119257873779695548147335726511300871784786871139461735639768646046677757493260892756090819324331702262293752195425158733348463035727685054505568888401982127168754523350073071482694719946850307391455106391314303666286831329413062293681600204314609620957019802319588272887962653995361961405653495598892263095913811138056745184130581173030398002244322649940863349081720505595915235101459753687436097250707498561119795057801967705987023533338407828559240031056009568073176733688956071369609674002759955697316924815989251822380286684974249184903809831959466916190814286105803389933446888968067190895267372134078514953499682958219793417605603896468884039380158969647866605182898018427629285836225715571425569175680347386098736625788083478586431931145441102239624201222298399398451841419457731959079833543949685423979580577980111288763569519602784865697303371393969204051111245581705695937409601544859762844159974807608511742830814480365252753685980133062620668220442338138096312696095005589135714175665350763865727836210040358772713004787830419659889675882770820869614877289428839008013849355740078545395762985335607094767123052694088691803088294075689467933064848436462883712443757744722334254581764223319606337956221492614156764617799087961928335625488181392126982770136609096052027790521154707222523196362059375833829900330992121200647450392748965653275293315631405510273455708307363557033325020356487962457695506422020046773585543427651943777251493479479649925893723854119562543881979235934206284200947684154342198569082535522282159757799784339706186953333051633934710508681812194847720044697768114750757670887575005748851237887618325950239869095770299636538063244431395131376077979431099032688612305463800134851167029544187726602293294563097739598736412597868994124665521925321225072998709273005996832208697163026291887030824281872301818923709853812413099054349223055330319005810653518477204883348918853016326541592226871873083049296626229007326571357498947275582601945172049925172727715203832134503455895374081761868701808314749545054102342598705237999756262167661582177646794805357073768685116621872018983047051932780141541813816265586223512058175927139613905008361355396873818370914956460232613856993405065871487170370714877258187895407338973372306652403261709228351822983224463696276346149793713135026104305673056785479048219385182066513718797425469930605108932155810982012073253510316673567942952638989570983798307268461786767102508672830553554193577506846828005663791099170080617735799706759808272598475701489567156987310788652194705272580423258984789460157296399231299134441136710771997556335855071421368530391687568907991798064374701726107855803319119955757805866449326695149702042325217763978840885720974220227251285200550605535228474997682175448309550359108941269049015415862510828032895772683655214466178585287905424028892681845384755428181346423496003009268077714040965963930471916280113186945157402710464831344524108492699849518827835520206842868432460872239031660754461280556789760727719914794217144094311337398023969735101083841795155629865717442203698383076161541088005831210451714564351381959107815527321781050139377183152833136017779989374570492584021588097109657749653386992010450300838378582439586573861058830765524248932391432323421144028338626689068792577525673513126564337632698358010461571839901682264583943057402251811561940137246240572177391097988400902847088130863549283120005722096919198894555094460863870107065489039303817952431112892202731511245622613540444817960991305558762380146892877230528339361371729312609834037957789971154730376677118852474022950678688799308943871926007339017090098942869302750514360935327295727250302397515197379226498910620585656328032112842095097277312026635888858631492280620800732532022854875649471824389404443710826015184419552406683555379448147496587949889255893667176738927844962792277388956125803958032835161564970725051806213030268488272215156615856868775068877255155721605588765791216759333845003856303407012246804370572476629977713865477817502902789194922689839031762078718193647343815116900629467254973163855724126612859990767888452859626293016566722877034247923081863903125375915998085943295579905365369302645617672192444269395195070495959855195116573697240775564078038492595194042305194599637814003136004406445842143411941759463559613151746178366300956455109733900723189593999056964712717484028114605998375465158672463342853257262238406539614925596052374157555704262419787374697243445119822934982215783461252577927762591670913985910486004623519721248727658634301495318981852727290752616527713057326686528541942266906531627316901116511113494017185843086001153262475292865387121082703181322769915476830020586754973013739732013253122050131991993290637457201471415708259894661895824849606320835375174078407639628696869829409837131265002628394654823080807148555898949587679806896208904033837697328702188811805088956436216559501394654858701204753432995828311529658678559641514500365901809211572407812595467722777000169218851481738468226022410006341435579987690883699526993627832700023142837284223381773674849705268056771508687235659057409094573654385056257439093986159856925134668842244555554798544561288696395292662216831869062399187084581898189378157533552981242886557101182164383693937764360139964844423864935731183340289308406148179016034204037689905845115704999103541293584216613478989465591188994229388634516275941968690473833421354336827834513747827516076074266970196669137148834791881812759316878500043904264717253207640878690233309220048390446117011056066051486501996127581810105753177108905706315573837818882532995971011404081072235801011509909454164561535361960929122818213837113998890832333263908477168321309244323540125355888567218708088928262096077390092325082827809076328638784219473862991218739779748125309271922460096298191009367526567714972568524897011225096977516385333972330038700869383649461608275513914687377564310819666511789390964113282212870100213138603495523584383375724211447868453599255686084803209415737154958147413426692551434871582689319140861321904933509577180461469802965014187405194079777457051047907412030088545357939678496693898123985626610067834723061651563941900238546018703912937183518034428170441834651628970425217916690787373279845762625420932286801951737747937776287077332461947173738811401587773521568434000977943455001186043698454999814525173424131037701163346307493358420712413331684979716125953223545059309118174707275284341574923679463529245058201252304981538830808683695794765128233224063400084674674687546042315681215723693149690464569914933737850250355805671497342950119295853750272927713639392202511058436636185894782984025278233988805341648439100097659142542420330625384760659846803230698720159182934884839227668982505657078593940887347230062913098215230494755043489487022012913117391816620619456402695739285746304578506078840252145227343318563417068122037219656688667798224890447538028783743429928252469107497061751539167415886119785237986316911640713711542530441905728362262955279299044408472448073314567511606278024943960357215592835959348959015747957395863422857810444123974650277775826965644474149040074096241807433216910991058439382123117379108533969200144280084292726940295356213359190116939458477271461953265834237352690425865424315405706206993365957540443601388754291351457038545455071956579205273356016374512134523368828644838139618388232931581395025701985851643087698041929501964814082279156959918890537275355617348237304058225713687575911924673800834421122152955231757030927074921626871880387988624188363493876710045894999753739186629716287617403125910471068358098482091313355624737799721907568815946282405735759023869519521702959762658035662454356461570305779377441757907364982705080974533166281984695383528624063933119971658232949066341856953887349914742972629963262666866848005793211685906544996005868166375517920720194004305319222381576355935379711724766307702800035548659974265143696621714035067341940259930360468340596743936230653887575654732754546183414572327237078785169042036875129272996446400360522866120097916982292105620621282282103291288112875225462166985911731725782700694123781327010242935001346787083511051366264967234324870579479760718922023630727232716111906807686848947422265611217493053371914456949063785049555009652121670741539527866065329499204077911189083862353716787604275933041778663014579754743168590153439393741595376124335225736866615143796260869184074198967594294536111799595843114065037251522442791003014807941680589216609203966522677297087862748531029782578094993635392316718734953401983717620935510886522562612712613548348852539688029949878443143183259952671494883503825757970730027857982606183377517586281261427756926054128317011942557312993454013527495301325644090652054013774212988113244959093294566609392370490082141888394122423265390537382903645623045759436330669750871651641716177472021405862300237673803005693169635243519382697748793354976500825288160173381855357763491447778156031872036207917356279547449942988491292860798165086319756944908893481191775354841430466470091985007203844417561238134660206899845666406147117935974089534746006332269496194077365889751001990107915952353764936897171543658239929173487529123530177826806409284112339102915718275993116556663423487181124138107641128064329448835914718926465512687157145975167627987573984078138028676542647537723050920476131263803816078542295673489929919397011467488719754224304486085490671939212543938952477508863422839955953776762364448504436546945390701786167353057301380923149254491819670022181380047581043906884979669805819422966636734426487827371203062148817220418156268343079190781988420760763080373066036540002176232291922073509771824314793717590900471294049825804171940165906944677650437585680618527846714146360132437332000733836659912658923584102804938311287496185298955768120094065939430639689083068528906956175607580981323731105683790287420482010420614579632222140154482229474161066602706217184514715726002951368785144882696442105196838470232399652721572937216919319074353268230516884473321697090736856238628863555637900338116187857907804602581105422757480218882510110894270464495959768065789576369541756203963046466969050807798771688965769865997892774402079025583833286407144727302719767199011800991047498865482398204325307737690368164595688459264641264261124763748168853975585216387608671197406623234853648931603592667266870035522772150889791559220554243968098476777809632754476059468491846083577536508894929320367878413642500819326274564663768192264974909854753068860496246228540137477204906904771712219248616474965962258411878026287934645645416891025555722565696401909557825106640070734882491624102887754569314092856287069103221499388566930214428875885423201061693184923582336962322534751952989533979091537384653728459413687672682457827037491917648766952997857396380884827673313044485159251829172405327020258539417404611619072351886321376494716959472653412871281974837542920960679627866048189818489855996309352711074946247393251783322847479208273977260408701955099285286278915692977716566684832327619055608591131266222069014746620555609536245029295153417409950063147469987514837188063062529522996549577629414944040617299670462412584482363339845569365771672286207829380219394775547128105553023202074385844110129232831335763110120630167996558869605276800588738970978766101121129033208868623077953953803190011556069420393436195302872778624751932983209617080193125413330762615827486899681834251003630787898876375434283977160036699058562846185936128490576469203370184160197381115631749415066141502039205903905632173169154938722227136617694564088407759591892565863815354258409325993938870818921787373111883892223147380991292931069753718818649585911755023352327876208127606838070016909190377803492357167938725224217162530572673500461207988567452982415509332119876982854939538278725671480753579440719730781611280932862172078116022007980074711498096292463090643691475368079864695318320062037955384491705242969900210589654863718747515536480389323865270927918872793310281315975400259228441686632327092176365045165023505122563065780894327496641055567073729679502552062205720992955975779964811457509200926441968089882863509129272936585572328833378165555829672385939873308844799642828516977194075201850923693709559874800914332132675995985310240505427252478125028713826911130595854780283513445690729328337880628425448060036982502790275826966783261989208333378159419961652755491380404381756223857084534780853394515868788397293599374747444875199544413753430937124055591608597359918485901372672635853290716905305990756260968196486497290050005036772396366407499700320008065199581537252066692031964870332238726378158179703349609025150083907212903176134119979168217911738672459945607805714467862642495694737636821243097978557453326945334881449058162633301269859725453740507721576619692044171558588580487347230391471484402607877860161605352715888496646170293680905746430972923876832751596023333998936651737901204177230641639176905759018720544520610417008420612338045912524237697489599530372210595233507908021138157875912323736634245854436223951363066633246034333660350673754433877485517718731243313470441604384750065782034130500181200002924674725853655066479818866241146436792792805435911650209568813581833297264959458220155575844994461571682534746380111468724395628454542907913091668787654090694631447781988185120815909846282656349167896948605060351706645943280937695314996196555391858386549777346677137236705378523844898280595871871682897513406146636283930201411047849597514464273058773181591332025383334991128713374622495360042631880824542178250569826377581873114301906181908743245431723950799620301557720415286264215754029567858328762431184507628152696472093880860146162904078539749824906003946058206575805618878973221907067471626129062006350726046490848589724857178713196736779659162259135516593050559816636105675873020439932784931897628713409417725456745810826650940026138725693759729978478884308232844436799450283231496821774942459600368594390668626500114472515464729037122978459440668615442681815154205650910196085791905469681490308749975374856155450009314257589248345479707265758525298276876053421745248827089443799202880496942428319938923656886210390115310934284172203288476661296882720137924077639483988854959590660317869398592730273817943472171812090532541655261045863065554688721160224100093131342538143302321353060277080688703290109299263319524681826771330888639564951086674344323088182023660112216532917496141942052212463681840048221472130808163847024566861438525865410790156279168932452259969503832813101785369666537612041207644463799770524494466197226237839806905465048132393525436689485745095106573862703776156330093793526439032423686295440992282282412620798902902985599594760177190718745796895625974904826009811945584622334285986325432698547293448765006256777758946964981279233964510974316094264518222404421822598706280763658430540545629457960437279107304875045703800781589710622362142690927296094237706473630489743773619887615251556874622282956276994949383428254170885155022575081961172339277167636509631801473728236850272897692164153045451820695435907027204675042561852748292349709789398548346073458777424090112907676984094245802010148348828170543828444956781955106453923386519735781520788671219628219529528575069379691328560369976762303616808868928225834334790414457314900650127250019078968091681277004760760111159470228973968033442924207775987044595201230741801818424743529448439084070022473822732156241783379400223163582908223195117484045761564959288778875820278483183904635273324642093687348751831845356056169907234012794447809685488958815490397347328283067171095387502215913810311787702378954302258183383338031967043945289970350604831713540913627405709712649137098280207933867200295644733882456975606693550759073559133734537255483624506741719424832012762413791364170628428904418065865240720743734085514792627293702759303278723614066133749414200147168460440898383451198806959426469361640984446571544355784043573502186969868745509616098603368857782292033999732776277110496019933117937387158937130668084220530866541470527879757051387240094144320222092574391484831593714500142792935927544709015635481911993070127941038452729867083031100102403560721545540811372058150703229947607382816450073679666654455598925427879197450000334607463232238453111525767823132077333063623966221773908216372055408133232344820870003055057039072456969191885711904874533841951794646640098022439388240536758827988658853892090751212617835958909747857912575470500820782409344086226995136217303242900850806389526948098124353726099258707412791395391023230134188541350607635230085489686623817251394574009974961033196344412257890466685479353435734528499143911722421694920169499152818760319758220618128914673191100406532114844247714865433781521729711216914554311213957130257439102324437449996826696668337481315114958643003300799243095610856402204487898900830981186191218018833466095577162785440530967809430185132400208304220711532921964520167722745818513907000080943507044258403990635793732781961779026511600197011569597282677530067183046935255133784919589578137668917571050324436722538187547408550465613025453516518634518761813139305030526690082428548192353285225649094444974607321118159595221865218655014678623446127185794892725029398562579021943114912261113456458914002142830577240679637524557355400637018542624029669870903196351700484420719260208100274868919302746625290839213949563561528986074779871044869579585785263192685533467289066288824547947225913815268756353909122925397394067607617516551017989249358239707646032069848936258461804955139601068153274229138431405757429711912764122141655742949253427885034200833490555855361552528750301568625910882979621984680909982802309199855368751872930985634334198354624617097447071722617508863480377373434701612980452633890947936917176962894317257918801735778706671861619273835818413045266482308236827609765193305880474023189153110560569278401997615293130640836512471944584173842344544349566942335268014632553264227937354861262613372700055217458256448098089256001270312847774028349298391659833154059946545621557344777366077488365130823401900685424747281069924733677543182762319209720594845380114346389050693428318946018701404318168297742908507161309463217632866915458806548649347187843636415825691530258487714293426120211913198288949763052463528947442683795760672302849605317591980367330320224980555329388002751191302466706031656522968216703826186151913899417982111104109859612513062746273850670808138548313902299411105603509242488715503039685794053452013511647587109639733871443275352344726653310988600296953650385039711350257451207109460742264748767789697631140921472757999174387005007945715579963737309184130789437797153724254775179383950146217726744348432391831877723337037797724004928110250581024314260119375052024988909046875632501440826306362097411207703835628515875728282046031210914217562949670247400158736577595724824213860458100275722210148415550437656595803341493193835313224309630019279151586521086673613120006710441139061701340292592166641365162210826299671514146793475799120670794254733263327482260758170114877407653273658539045625026201677280618291977268431399871594786986091698692676704691397528763414752065633138926123476949474678932003233720616304177916652103360986575742555866445241280262719472815311103795855353522915177212009021590807715554409995181667745964181468108257129318912067141797120841738540576682064290042840059893376092505425027162941651093700392739011029654144559856052721497542397286546128323647793574653096105385438492350316451790631116458297252621696576286027956504452789508393276207623097662704085676307601490499446176510340311421888464987520449121335265511469337955638515560408017772477135433644700951043304541570412919287819795680959484408915158395094257656838179359215447103245894723711684651736714709089861787645200981367762081363442758077738355270997814237467027328617107545678423851677234315374460950118500522575481257625961043357327391053107989391910209813616943810891992285034174676897287102931339464928463714718967012173516522566793886322691658746211470453307849606682632925447476753535150988751075136823677738732247611403266255009932461276250169454148689899655650125642484530087511222730573963671048656672942122332914254024152364481679104286200032010570164931025914739279301119093371018547408228378815070354981089145788446493374676947456884191168206833324507740542290653757583670084940373818896565931260681066322606277539813226126909220001309579891251744032936959206985797858927870491590670442498198421941876706155800705549438988417341320698956297854814768811845217524549884712657445114714422283327260256448462098143129451207885431075199563217723497081461180660596702395336446799283585896080633257363790879702747031754335926579884752347442557312025771552544656755420971229518138787743280576164585785672268202386099995405347325572674751699731728363471283322445496648321141571221891803790614820270570543291239591793343100973015881666904750345302745450148304680248025340147501679605468874398735567972330625889258747180086748165876154870061708394560676940534380560884515828664822730998286479242395228801403957999772416584211811061151759933280471117394594816738292898318402259777940782846124941987116173310859867781134736816037130061164718955725354254583998378558775665841438330901525674768145225771867431323282968414162935983027131712615827424140242992783192605891304736434650855556817617119706520354232216344321028421265537886148225758808027142952574688131934966302398074551507177929303709201931189376237629518196353784063109954702820530149272545771038250934201249229544945652672612338812166290858644869394896071072765217838621260063942242452115603480703250417372184029114265673085781663557552661170331139388282023353028735047877197957273279301990714138317928973434791555062069512921351542711929432893600326544779252756892497593174574251903410955232529856484089112134785275075521042197967737820103557596627290413070426862477385285504778391927990865338936998717294024966620456578520795816092722800423004937442180889335413526262872782850550490798349637005205517280583452672020206783813688814903408749693418862468378265464051680511380266287725283676881760991794440461948426153963476723401933823493563959369558779162065761356495390972842417633676649936116372580759137071989660606651559111072281542041657904802769753293735000967727981051842630885590020274261839754813818686795825272318491504141499481653999326163309411400496536415896499885192227370239858259549816020345937443176900696846326520091709417912667074807633894770051898049016822269426572681533248586498534399120368913863432220639093539273116042668395716123832978764149920626077562027812256097854238431098607877459565165328353465466336996986458879742806944630603448169909950311510259893651755029687754664253852189238356653836620215981261249848283957707895340753928866492157386929501233367210302491211690748241368548905923136327850247336718253743056068408611707381153497596428123025202714180945996521420641151413458271398031983644336550784810963364609847909507815062005340832086279910021785402442112155650697894248706057406637753079659943841920027533328655910010054363068421850433922492679371801835074421593100139152430557817958424043503364125313373646733356402590004252934916221201148579910460243667177423571514197811523342140646903881631076974892979321014937191219268014727748492272830044118123441812470097088427504736420890461637468562580435063433884197426158823337048174665168369353152914058747767796623781486957400403753635762937559371753403745479908135338288483527188594702842494281845157588628474530972906558076393776538109983679071269908730081167619614911230324689614810605595236558190144277764580574149540241056247538995543459958595042843873673820319552877985400599842975525784578830265682557243905556929453225106749113855012800198022908197684376143108834883049275768996847675710593054115268020056219248263975294169109553878632510352816426323420071615973476313483313627448493957627149391920711238310662094062578463667543302865989111566743236575672321091640238520923716091041161851411375518336106530691796789161397359313718393852927836274835271766550695849780143352733421933296776417844652549400979993315707450733694678212132274014868190578986544827493768844921484840020993788470438981022492478545595525669173783335412295991204403135569982616670407586304206997776455394726814303481629477723885052315346980710411398625442277195903000620772223313643466526178730545263908226391556332534624544268499940833691881869399455330250542312561194636799579538150897145715275593291656958189881044690560841261719997087432477317266352337044660225483649466683308210875451088782235564092482484105583960312570787514845484320014078511595955177433249121382332453636600464455801514810444933234934577174029536787236579517128923613111293145215230142772694401420145377466474594274447945907818339734217387951298087001955469515147925259923480316441900057387075957564326780048804247262442394664379085845646610605342544884567864670549922764904378956614599317937897639025088161685709424608889828709119338650371033846217665532578904625589020068303141100623064767428041238575347091038464433457338670430820370525693955224669202428752394323393798476104689524380105994296601398883234766491356878320086033182489838167428415221220140464352629778333238117109287784352289776095870241095599931763401145130258343697147201664961325544139218192022346028838963000172526498158369775665262083497543176149409810385628221032227178885127363053309696742931335963432274730387920909065637508759846202421624292523944707379160800349447683021813982126688503893683812948850231886759040047861684013169713210052853233569506520656880748642365393410116149165938331075033185335389010749631178814629192459150876935951704910994395873717990559009414346585298676536531127521017784879227020378837273885795011985476036955437818908818163938470338142333399392023177805769929865811070203228183113038458058436344401713384963481734074683969530995057804285267947597345222742984206593419070132633758375761276318318705718303009304319783441666781127882379437226688319644574245039099525299522157799986034830646170080365203627860726388056761304048776512860410278202342318173137507636077294877197711742638053626792513149207869841986238538624818972926683175792921461414650154577885669305301789335729658463139798629583877791949041234012128542928916228993989554187713599604988541341582548264862581033097645715504490632717611966246715100532886409889150708369996998221035093160020208547853101776076947101828684196984692429514702800764967951899740909451710095782432153894765154861511676488556546090514582023484679256822207199164721582655106998542522065332169436747247814349763094528558874382742074017335398845601330385573441932152546778564475052474356580373417692012096395692969099134393329543038494687266199487914162192241037327143648739693462655596432822771154035096352481732563570806145293619504886130664051327214486405472947723473732104027911191680912657629481393846006439389544203427217780916267182279374761988469431040487049310585827279987270900725179325999101872745796093285028582115192566088217186523581602930202550564626865828837585092790975316241980233010334604532554802061070181790021755359969088393337828978518241044298334004520486857168820297491702453824709517350344922903556078732184805646015073604154716217764076146537742063509481383780465432564900147928260335561850023723610387396649942538843708466602508487138483233886098702608207940713737881259713458499568968692371647922047993041226919454826504011779876938295912897144616658986739645529127661579549095370545526458524714316948173891429391654697677909482319832660409490792393768601109954758886853267901876364911731570044915895855855366647964061001618327611919241833432495069295315642838746339720964358924319687984368706615111380553178638783513142321331488636237596219277073983556891129486396817059918352061505178297533168936273088388823182644932309892542954930417209080907287906231197695041419481352945600654411783078543669048227154060636461571130253166240510536698866090132762038479374140063197382096054582858617441474546856263185822009083005401592288033166280396479187659817247746373996342388145125899168690554107220463441428078102681203782476639937205344261999074543817279002732022995974223067272957346985395726634351749563936792123191914564891573455513218898527045105543234943681008676865912222834805381906553638948445465713095839050035248983878285797664722686274170896215258188132936999197468400854187243589093899575967208252708455554252377882016456679256713432689643812624832289957333253733426726444479606686140680911506091966132886989944501996788263202512761032961610946483406610616885551303017558865830245885402255612354195874292833459032390624708355850256286754159377476484653933916039759696747287076848200498380179306638189383730261068288012982819560547674051043492835980400335372017933587768961955266875011083299158391328241114550136632382459587450545272251806299711811484363499231581321442424391904297368111812380548744242966065592639116375753411469989302672332628922733190577813017315111212269266580341755450611905836236890312873683252119037561933082679980645897506608163894930440993744754919010801161832374653095973311156234624801395170802352044609099466304806505462305558888746363965635989390859230470305973602951330503261925026758353836852665755361007585293103221902897057126988286363656496509602081215008199335096182133462060074358536595783673363554327993731974540761776188462247203121110424120414447205237604897970810959516396109351776712121099263509353292840807560676927550013708159977373976344805785269146558781973420701641779054882719884427248355297621722714262777953145899199001962919531933774280064148145968970170878047160635552014909414908296080232130265977540726421212357167518107120240300944212081864464620744583043856625880129764421585131615842468041272918656488774056560999095351730700518737021292601857552785203521626219338858057771183526941015429357110713417556610634615915335676662696344682939795519913545447533022403119538651611691797708710411850053862347815463818599755347138036914284623137551260172534302064857133549126695862888441299989243720254129653940585814118381346994100624215340284343551528071104547872489121259302000870976214938431965843028329530815710488817568718415882786328008997896640479023714718895761822497479308374003859829040223568487206043746633841470279247325619153281853518127772890328867647805856468218030176149288676236188992978462432093681740018443908304338020140633593528639055720176483205796101285387715230732375960182518545996643422314928956074216203041062522692523147682595107064299349186976708592880754790730532005918728405489989455863496531162288715705684477530923888325103313512324569547818488727272504161415737806949623838753899793620193706647309474799332852599559423256594313016689275914735708993286989673109822861725182017868847238076523005273633077468816851787617409908526331056005797996701469091220134485616469342542047347697770082450758791682613213430454401472236564582648659359008860134992061116692711001772896689806561471944392821809724546637550368495267703064754628216453730984771051325247946732017447905614128109917810627542995362151839888980145661468947928142717059655120928315798286361691295018160166062736246486357229312125922533534272648273733592133721211305706957028487667590610990510443112321588259493999841938894370045488854022401242672030659273568495954415827088577659195958242385229298407840780220136062150343350703566594829574788124580567745645818228601840124181727085197620581415542287849580009937132927526910017331925895253859698579015470248695267357642844322959321183372219435498378068306026003946589822499679173188249546249888935600874989603591801265878359156437560143912956265259107289421509027881568825278867402860191726453968622881414036468082972889320144515055880638071326574414475795325872826882282469992623429616300494229748761984692661408311708466369277054912306076901998075117758296847123471563273458770199778482716529033205808193827382620933099763543138774449516113483860983744695333876636708990251384489019576048470198546767814180011375491374988782487145030391582304005846689501854919789233097808863824935660997435889352198862951796974187491589264535254266187946548942166802620051235294170370604155086927598811512263365269209083633563022381410723489367113000536578962334529593506295286324031205246292739014918916874114250435339256019848142277540481454817916534483001778510796396389225477799214992589990626105792344373117925490794277601274611658289536963103975585096027411376141474657779676495053800301963037285623305682476926640092480855193372651988871493053920434922947683731989809352716848566609039521262265472096919175945215307770652933213814569623898433348181322738897259969339926472380925157707551617560100894671840837054446982916743715749401980097667063007033621595126567016442891412338363704051442950103351644736970626959793273165208209138693862791359254016871026770408214686605556565076580339035067775984700616386137627952465694958420282478334038867848293441112487676894589139009117618683499090747006343888508641660488008759706441719474254126413908212949276189957028245915912083893871104084879046758673121083197156417913235601404004206007125662490961945135769627216028018511462177949369504460368039109764015305350171983485050977212676126115668541649298074989548952954869161525500739183687630086403478910915336323328023709995086573695724376201466007444817053948372197506323219789583459873612186504220953949394724199204121461366016170844443840875776021672102238744459483261450671587813664650614675818161032663052771907493841355384157041844742181582044305518975666344966254147775427246172360236069609969452550728544273258788049779689249262614527059684990533024836713379419331184653066208611675950687754591190253229048818171280380573535069961750283801841826440962316953045720117264122944618125645603763507590147859552395657355399026344196287508058169493508376424239256899423189969050227905850084916216304933284907057465025618056148163315446849434875962192112851673533932965308528456141931987779425032999084844185285370833439834009202287613099900189621617378356008541687674123442908536321569306737131612755353559813960585625468839429672263487576056652924517382631129384576003101175125816372733153825611999213117882634051233725007941783956212122397129195105699324394706507434854000718654681009537480911224268499122647625347871005056812245550362035342850854236984231539226337642314151368363959558347709460099354264710689649380018035371162240551229588692099972645062036586823647949061723447186654603084185684832997143738556411260751688450145846928114385911079350931028412793138465587028830374900993969098961874645851219459312671112758382993121900137002517710841063500164946807324920678155881758030998719817698771479971165696140209275125113236175759527716287595045912917896293529260251057357406173746635751571213800834502779559207912369072303066151195699727877545647459718433799473152586739360334067222495361275907584044393095819286948991870902058308719352688776451169389679948743601809154127870903036583504481635668139799161662110620077825530710793389067871783956636100044472024605372016138391013729609636136370959919599292790299994125515087386149598359932329788197924647764506520912857206746925632782145053271589971993083942761903416254834412356027754554257568042808539675467536662399270985740325005021466307198096998605200982108746293253824082864476236482705315282486608270041133515986367153242168136222855008243592073374559173446811670783958561226878443796489414583297340218030815680432270285391084546465724924138404181169181149432555678419997597881907695950485227804999150139246555131753911432326387669182926619241406705510475582225477736919354579995035436967314099134799631807831046555666772034023703701110846312044441712937429408026060304675775029832943164244334029208502468119666181707158843243624303429442037126015625367475264660860718121208550716656872381418647447576251515453047936746469831807304894571869140569871279981913896184170874792162885648753442663194355990944511400548914835424577657726200506491311968965907034945839328070865310108953147025310383447568730748404719400960697533397402308896437220358332784085161897161453841586442947285581029458261292221145485188474017525571139475674010254707455487378710525656008591466058159669795896201884624546886891386275464967404362417349494116353317904205331154803299094729429486225058642984230058889672076595441492458639401750430984431423619692084068978236162491671496664423277426854920823628863457123138354147863676198050522698208982965640427600426266741956804571050197526142932440339499024471005489197669051365521407836576501011057530113183358604460646172260619567520866431963582048849782442087217435009687002970621276477240404611075831051045257827070365982793967863052883226528266790064450173824411445901609133680120066311675981177193164123757500378610653932446867182118985454138782800336949831425852506766023273827201443697834134098227489268567174090228979066407343765219277144167929675469142111008559146910278937380163509472164913296390944745311176204912529038867134519532337002364803916951241435697014703883575188387355513542447858196140508326023613634309689332188216390445714828155734945457786714568348403504212286291117816274187984846287734811580388427124102429760881857975213111731694251074189976681421196922211416966849758869176559654768537209718217288469164386807240131051474081705112565992283939168663170887356154146122618475768381768483543191302927401106302966440269034449989932010243373189268701415577582727720553244758004196804334037268091362014019039479815439399521930525780168949010273514152270354605938443192830246681674114720060978817959032586799899433396683653536754014207012420220729470299985847594812200782028647751128379143026462387299552964417417883093907079146259830240003659696833950069758714539639151918076688528129070508655476251498910701090255935179280831354983112151058297431761447344298804165660738431584217211695062892177770093325474338993116592867521926708091486466941387650146443947056226213552590563646143713319473885665952401898077012994474731827496521613753693819746463083195726016579847457261595468588039654353943173666702415246819769471462908663225210137405903747429236092882196883013069221239141640826477628293390693882454356399564708461209884448158415483169454495790242923976874386608812951115473177627478932168643238028079979430088981235887673062360855201515182406926620905485760426384315304149540466024199146061106769762866368823919698990811039088554766481161433483512922869883191222502285789688977722055951910621861744114093762471715078029703308015192667438068382559433682737315963449344443749948987712533775447258662317898314966310475573997343758756898730059972179782676288834783777316400459219949067760897830905024906424028983582892220076872455271436928989586488931043254223101164138219919232160233932268509610641127440857259641195889754845618094646561035676379624538063134095225488590296369145946919785525528020614207943078605026369353720326308755066998005112699772322222846274664858038406362708197848563650558100389716213015162319034662012886781740384675922556895631357611036919221484484397685306938304216129263342737813098540758735661222873012575916761279842811986078660632833775822714652476914011552736535996613296349993751706909514436692993613482883511620056934233843914398926472601703384367736866283929484658544959049929432687555911332983567242441329895570987505807568752324201663425442171948038761047964438594873401165736517580210700642024555956984525186059875682725601231391159506656965519959031765692878742958725101553152586571656385591315048551432985150171527964936843128537828181057458821818909482613891166591007408758286346554165663092494925132208882097190324857269657704061807017928477468437762035016392522090791115596170286138394583683170746883332239933558535032829127774753814382678270147336389700976257587154543811405007318082248139843938797263368815124582541302417541830826505705176799242936884913078316618452988325906576411752075710428518395461182171027180048854640790481670991224894930969667915097852320684939639195679579028329747695780122505087853016924839334105254992751463679687289592637833893973912920694553123686948627155634331678607964846024130511094466805680216351971306243063072125666382456697976041052992601393764758008447062607086732127392753951855128524341138028087964134644265080866518486943602030719404720659035149481980709895497071552760396848857782658067186848337581443954316989664959035015980881303020323689523599124218888728919300700081581593816132514479320776958539335548155904692440425674706208644255185569772388806738067692439445245026240616842794874383404799597735897261267307598915996224185554807393802952126826033770694895294254567163180166441965336377780265279384435849228742387126230506222699336294313789605554082501908191786769213883581657760411058122169355379162156835109770163137649871628735743103441034888602797351882660733214602254109260313421985967751106122835078524393746682834513003666537190948600573340175148615160631023299452036941755164300284420874063721047233978626415244541451640727061406453105892080490275051660173901092795233251292691462813286843177685383259648911659500035000357748574405374247979996926100193254600119923682099426945314808814539915491559179444828662649039415462369158852783021828114925201340179784315329146412766203151239176606554168027264482528719607486718155400558608477545757771825840565059680534274632314701776504944510555757439027452468873173670312093112679361790591407914393229780146964326667545325540254606894221454942553652590627003236094430150291957629843717823644481879659821768723965473350274107654026141076683405931375180458875017441519424960785229562262223547268432126964952400658383528934104816618673178792843070161187520037190210271899283822110676908246902815101473373645212319327404595085150827034021389952697310226874911121499247050034490956572474751010869627887728041227086343985882477874866019123071585277079058178862731495492877215060092847836453283294334627179954820436501500329820690676173699467024869873944608358385513112154858946899149954199707513035219302879944556417388904610953030048361292807510561749516367032922767145041782977830320504744072353385738585085564317937684770143564292636738072365917859114123805974746044731213905149872488799361242025498107877726128314073945105298838975579161169023397825162167885122565980810946141647304356824331793036809672665297904162836869994005469293288196856216417297176320131117291887633516772988171616758551995871986591074064171342316887590251322684200464946643075160077536357941836885909313497758837527628800042566830059323566563323718937354782315889698094487641373590945867777091358676577438735010324916423530896096699198387921119019742367711443674338152786009789409711136666729772498921129370494527832160295339371796341497584133905121529910778965123702511458400534526008818062486626045421559695685195259626267052779210764247269389574353671067372148973061879029194877248144029358921203040949041728638411375584098012550360125068114512452282039840002341214088476859958183478080778731538340053299170024877141481703653052366942859480915539698605694236034203869102312272901301725524570935710685025725301063223131068811946433234100372880479242156056235245184930249072610069105268237614573278579758485263152442595023600178245447571719283817951531415925014239024547357870793375643351943239779337950501514721264258521852288324288790989939224117940281410572994198175527999928861542166881447938723359194074138787954498061124396526133754886913878253555133496113882399838415195181734239588348088839236457398568748606217850892389978018860399894023909414806101839500723633239637461526966449909771348223519078005872608990814254890653581570915394919104251386488430117225978139601238032611049361521024588013007461534813068710177408657468854897015149412561874891618639089926703823798447153575817913205959720985596870357790616545125141485468581458386354521152008731186835386721994889138489486107788376139904945044554557871176710581260905967142508309804599597240346332876655553364629678804091476466478412427647332271853368372649867316986175410713306276140710855331016214660038235424166040097824964084193575389353715524053063025943238023086567765191858420348659804173613247422846112747179501671314971339804816850666853911298534302910325060885968730037855694584583171289073963152772589563729481271986084446825242116227214728315925981057043074433962178788579442095090195009794589771406866822246209810409736939432694285148026062992160670048389223981430938071675178031486621544159584390332500305406834078188753935583441799168765805026441453575812750658906545364221737402958325340000041377771731399859485493552273278502027847622341242292855397910381237418406974530645287084534379684707692435441491848478183907343765955013264959064078417716832372161631186439652622949275892670239060665404677525767347216204294076617541839342238173404209345871496582491048629338873479752960804387011288299122649547615547328713700295619614338889733904703648459479859774836981486445606128117788265784965889936231869661606733853183402869215648747758430781178335751645355088422606392706905228869040161214103506009815408987775302709009773125568018193463587103650148477457164495311616855082457763788222519345292068069187215843201782156996295696141364960388854577576220237583563460542152483560521644266336108350116803466825644520448169805927606933370677371923027219281117541756892270243966842337778586151585681966100100695043263352217178498087816515474670298917674140357553903282982876986025942654297775342314963098011955776183132919347781977250308747228113554847024107370800243561469575719672758544729539100287898447775567195512262581904692430265129311254284459789756623231448874384661782648637201674413244746297002964879192694186986458570362173537267459941883805078323884622135888404237998464879642710542556900323214474173736764085671566968527723155388876917371259488942741775642980735470820831441586623238537036479029714929796697712563216665316511950492401585917673213079448712627492014893335415765013852117302880044241624111718050587932991398026231151358217080663465662709265892485105630510374026920757145559751172953250387057795121198086420460551863796545372691642628996732105490900797498964829152922844427603436198390874198194816215500175376238700099472352672108258340436295241230220175685095980070700768112248861972447026094730311645302182053312311331642543792842720801359832163619387369549706605226938646653243873296111353590817160572002366280673925646742887391601981620406846343347788168683533280062487146835570554059014446597193395667588087000767204258043029527279799111851349114669079025877063989806106460552507628228731794882721534877036163617238151956907160170094173385145090334059850707132978382507052641733618901481102561202189834829814527881132444794516212220660878404503879766082665327368973157757108374265637030333860205082637253087822516497322142709249379473739085697085896791274156524126022888272260246086711801855674239332987229927171084443029365629414234156636123644427167800658517774761218062307737074593736153733340311272553185855777755768256168594361263787252016735369566516008504364266057094902014516251035898497492922100947070667568567754786749834478153118664440262906013477823297011054578110408880362874233692380857977319599658110820601438695110377114370964710793998170762177161299719222618365217166620083063138576951015212749919841240470167857399471513258630350581472879559341470078949868656771971326712073504499931783838040794808150685231448860771740678708332642050531560420799474813641955892098894681117460200174392877648070841658719674446583881702958042908158920589284130601329840255748029103121906661049594949234747263397545669744942039111060899734818096808039903834987755351932175153700309920617098139958303805546507030800851634156318597358355778754454620194533004536159755038199737537484523345999004498732196834469215252315504489686627173584079165278539314758952639129874587052432309884192646704883066944424440311909496414548673636303583633577865931935145101137130711112993824313948951632837553573059903698764351266343887403361085268722602835377234196338594429225887373079062889358638036730487736990961635685626282276266520412102653130548889600102584833448705876289515675617670837706507219103540322590597990378350663714501679543110158134535947031067397726127858586160363109881658260025846760305475451481182638277966140031620518756837968178607623940507629507629375620497927127228090165009496217469965567334295367818347813934359373594892891002141376321616445299180620766559921422136344640227012019537744173612239638920816068536368419583872936988643603226424920152290280275248017058217288974112807201460425223446116734189391800209069834530101823534120182051416592662959252587410976330121767055823924702910455934059407056278915254150279704665363940837856156196038036837207130727257516781958792112972126785357924817216799665907246747683002459070104878106376072606443712719088220463283072205441726622002548305157625038554576585627616701944813340368563702194953210461182949458643518189908933467900910027719691912345810208143133650952860853478084767803904778569981017086643537475505460041255245101614732172054444206816196543586038160280723282125275846449481604921851880564057322770984040056484649392151469104608743435543088927119418467206671685820787575845413299202014457242205399859065127199910339060777110994437092262487665886819029106716020982727573687631546824102642090611256365427670711507013991244696218064457639224196852355907701865397843181976606951788825159038288691395653071520589652658014838250131808732290830877544000283206597945998101612091399003375879884533202523975598519392059814487132323954097617893849231100420553889329501796543853508612693491265450094462368949230136924685460689297620495090359638194525553486573569831760070017855725957823796830285987325027583918914279852727827558138735436094037990837790069930171238538516550950506513716475053858646934775195276820216581209490074945383878306657189937355588757845008434552149281711028785324591119048388345645787732946869031211792314967074799906893225562810525491767243025552232535393607613142120127227603409119731091594125995693266973624548213955656638969435991551037029410206844056415022746135670216552346182086523358317840060174384925852241600645464025393512768601432241200694961603461376057995761824254057542081956505936489272854096190833240608626900990961379637925687302142044375038681841291302027693781487133762770471022185970290977968278057837889166211863767177071304815729888784831896372010934889960173019693650202661014499288102940589737115040857063018649712768334993782922495390263676128661351951847898766771500989073790515741977290722640869010543352382764557220828500016868206876746219997704288684328533693064312656157181319897743489283884212658978370603564904456742757233412289673831411423492162815035260785152150070653053821710739040663541950072373820289637057536416765285179499559887695681647915522778612958378430135658270203130964124831449367574810683582970762587079233895449694535523724331687201484192343084210846098436690616183011627850186149108531436193537504912720084419198328943623007120089322749963521895367306707199990761539305933294561624596488761133181742197172622767960209015100863353752674811546677027102316873136549215595161941143332204818123276622737022093254022499732405300976122535043480024124432811091867280113233610254819153706666401310944179947346281644378503197661531117521334319672744951206180501418690875250688822218232107289658792230924239983239227900247560887713198125639999077296577623648808164168287827583932540312546714628600588948103580220453017350058867539111899870849853428447313718223743529167660987405959125623800497906073459582847133288717341186544261625124892930601498014947826000764376701212075635810931926628722133458774968997101501784148205125900515071517679591761660454215088016821887420797316919038741043977899397081603528199842310640067092834637893567105155266170563371140743738341345438039805345409174689205684248401465578599804649170300703896047405778007047444888419652486609899978113028324337855123261605957351455578796626943143210929918080456534925705505591074246075203415561460257388337992658662179092087165742197343776654697586047425400022097295900557709418755938665854051584545337489059164413910612668165747535828231548449671828737605404160378322955275338990426134562616854950822669262018032627772520780906006547492799725125955829734613306833511865828115206384358210072327256344309699966955253499227828822332727379481902729880765560663439438835413512110362133419191110882373781185087919164685613972149810997889393923506217763568515363817699254185098906034054225652911413934689186105028850826193587504819160777311567177609018531459692894639810763550663485069812913110422450665683169521302793496247929135825181122397597357559313221898553255749452508625276102181640090416182471826447142060411041454395847785133952083835721800760206371890448065580867502868904114553143211317839774473047165678684450850958367066520681865881155040878152315100240009518108632989662130218329700128271835301447664068540128496204449411886881817895616941513949342890988084783886824833281886588631288934054136589282861399218183782411904391299114889806211839949490271130574166276105602912366120235761348691030845923660311119541618797712624404137731229852125371261670696423872856624006285253291911817790102384342895281214075560618287599651296499603777199377601615982666978637068980234690003519180835402255834399859251230874174055495366841286209010217747139725071378325624673657529490265314140189547980569110414544969685587319344394747706651662718458036994564348521389036848787988818226102495981818229671727531136011547797889523911650128667991076462002908380828276078376882980654542013046849942221228534768688889357602430254782479117472767468239131279983354018881714924803469194540145538896023186202654672343849083617711005023062397238682610665789632729684926093348737875088495793654690458696791044698784468471900359317600248941021442543816843003509920848431148750155237731556168676798969191603622099197786731588410876468609738412056819508977532872630464768714527231884596531792272261544629218455511880788966595018622025724025616842611394151305731952324229908972143187180794457362544886703441834873978215778582975094563645873724227050721910158846708601333152929711990533126040305247818581988201172404149805217087414705750478363201002809998558596154560118807033064177045571417788359652736966284056922870658549445779101314704527593621614614829664229943090241942943220212040435118198598780147445864505034941529677455744486101818708810037676017446848392952813533510210355366956570373183217965925572084863332082036405064723646696982662768738694300366982416323210493451543666426827659501678301418065322136565917982619787696071341495564500728554399058503116802322986806948692226788248695560823086287659882023191348550206301431377218470104321037785744562765137365957313968490780300665502351279971391195942128300024905773074473476806696120638878319272560173795766007803085631351611585357073333225811717079089756943652453435262719582208203852012670287499754497632742320547308878262090056704919935017620466029047934254299531092901609742597807949440024854422658663684113884738978487689519874202686636094042982797830746255476923823127544904415974715959950661541463483813050946531668011746005078016320480206660976095993272142800806486878077405935150498462599760707800564503513938157295619751277124197305846282805246658983220718917307145587965322897322685453543890948574238895724137425705492106031714619647315399593053588140140455813653162125957582577907691433804299846352789284467909998637676981925247061353743137091376444858706025525008407777989108855856471519351618545743000742711638567308193169833850363090125926078020711878268675031057785993608169043132516528291898308433184220288800314987405806544651754534453268477961166595783172601044714515428638839835996447938678257126423719156239158447349672326602449546989823120150251323752318563767924184776794632392864175536478032432582546739352115789858194625729702302486700989793749384971248990541805923029936755853374214013915100320686389458262632537697228011115278578543755760075045450002688141885698337274846187809220658692215692566069098171445674273339912179219953795938371313212055309570442774212615935718493923936923278467611041955938871601447659536699179857460287445079873342280328160229654504369803318204091716398944994358915496395426309405972464901609277636441570816981111136888352450814185772024652868510491596039947243623767495208068526859134605228620139162721004657693269319077826279842894019378528036888782027428053469217164726383455818144509663939407027665279323371969000127688031071671896974205002943956050342235588000746891758688763313787287696561480098554064213721291588646343134420364543377618376173628691355084946958932311762944361150587620415043605119070512166520930864551852066644972855512833388874698556999574530520805387209014424464474811608642634076213675087641024135822569251526993226659053472611722183687670911079190907045297940131882273890213819148945634709398653603913732544884401188113778715609629404268108042772426990339424677816324936826977358045913723220749972469489672078530725082179940524958124257746160239515482630756323305428378659320068481319693427995342170683789874139029230710213884793576373723968452546874523807276721563659075490476077176496421648837028668542091259302324387424217773198847431512866777772620129090549126101552577457203654282491736492758188593257289458379573792874919693169715762056421914862635753016932664031885433452550220284109697186885896496935681270284993699851459566970323197277582533371342772939879394770630262665292939187715260590021551485010908968633985546873076664471454581703798200250170408378414246759473954140906118744004010724568804797187797936674370366890740219342973606047878098423997081281584432604607621740553426400737016419343675027456705575527908255871329468939519050687628354074004649242757892254612832659052140244160432821407649636519335058055049153914560167379070189812865472114877560265299067169067911211983434643829590901713714658203235808615649256518354382150334030192533919574352663697316746755502098915772595889115264291407876662208048574462186683589498324951951629838991653213952756165647807853551872985898175987343265500893366484576705299064508542829916520270446322231710941717775242064804540399309686919446771164957701022460314521146263326771495943188890380141893387055525663382531778085023406624212176722678812366059437549064528135205211659014354077958379492616299271791004801220010683048366217039426166739981069265104548165797313440849163427011701576813746122895191359665422010733704126153961092433072615778885093885990700889132677226220500654064298117543079341334972602273037145742556292466290968669118781500596133151930010960822718940885584400716142594339112144948521755517088942163491286504194793521026464133825319856625537104696378408933395025140898203616875155881274388458424202896117815248877318261993710235749747139790566963714512974393666081876431689957945144899721692320525876433798251957513259565864068768956577403011194859328858669561607349392982187651760514960332603900653295963657579961448014150103391960035162994008059563462120611941901731486225114695243248114786792505183296513300615421183428523603902609962369211575289820996614798524533292501498675273095987973615096652538476415430679902269910374140473849277653700274116459220954870070532534125800979714423766426734027473070117101824987879781236214058286119086335078154411356436284632356975105602732685789780137027291874228332362885915232286588418600746206332436556097021575929487576106916825067362245228558606103714902946994445897746928230435193987011118638868363261872733295765898946987557593394411211051123614331255102133855592679781180996672712247683415867839250344451625647644762744505918060310872889191491806679082816347176150261239338398848379429676237552196931782729341545834939348531125641660798575009737888451645415820781386016144840427811709041881574876263140839654276563562234275424795867592532446256650273229049312154068131283042716779012347294753763411147216084636216776960359706166650187737120162650576514688159658830326522111828968056193846047613437269942713709672975363817940811110094637674673329874450427780679570995401897971239732112840360654030800957303571085252175111246283152442181943659259492840388803144153370866890396799975144304753236452972130806240556364066838097692157425315790872884236347053997532774824182522144311552720539427619229558416316538089047157137365705868742640143558877284050015393181273638813719847468765600928606318058097412581965031915494045475148417208700952609174374902330078403135761006948744477260009720633100984521565803749113155823512117899950875376062065841329377672219412563343327662985977409560092501407425193202636247603289613393202500262419366589662404860639175245064706895054284221420217959105175645100139916039627793103867270505399615943447368454730185809464052532023779460148240016166686326989585950302619345029628424708738753890354106941440012541502638580109774970184814106118063570747682838107264244456022464546358680630882969812958559308895848584447547127879399299177896064235762276717719655169153477779939608925446645393203616318964691573356879864927170524816549907297384527884189464854155021878208334881047127328128144305647036207530155020874184731239861932119599776183350546922815345290539977561936506714380805615716732349181111733619016398861598061867145963745978571221311855203928748874801112121058641537718468999235887878811246810223954613468966769388904399297951249879884528279848260274235558316397890979449276287301989527781520322538378403127656460221896932663013184629556182529654141064906212999096618704303090674429916407504440441070477995310566822489918105854133466942789145270403184314671405153671836855120911051291188395676124998941980233872170593629974746817034090924030745832843026879208603942328911867888402790170035605512454965370320412088672081800218698994993569466328328610301047598051366335678344995335005262417772697210871463438557894519343587364365702443745457362724482328354725935288270994336801502856341316596100810511088170206594137863386834189663101609764051400857194127790909391108233387212252935473498033825948465147574096287084613142025473557772563053940006784615669625254433168436363170877131963579541763941309264505052288643694223470080206678942761102206659628585314618393602226501414140280652548156165874838316461393724171666112881150221462756347106729560909983607433940766040311228012376395558739604500865770773790257741273442686998744497909298396317739418774289304189817146553397362540614398246432475662925163892125197569558424147007063126603385353648192429548470592521165367825797079989778516229152824358930044405722256286183342693626695279753819415626691398887628612190001260961633939219214456828499883798460422249027255635238805084773171743802488279232928655852278958223507217760230692788314654121758118695979827083838725073303282026655551210829237983433153823426886925077438417941883911757004682917635623755245106456924797042159177900863165042555287525925301324274679105637543438939569406933115775632487027005663487957066709017646025316014732370132317171978530018081120204159744475679145889157512642902475250528181607919138362712483758486080369276449554771901338434115366853777746205491952481142142858315528198775498228791100773874713009245652361177558542505749698040285765492559715509602995744316121710661925865638182150889841288486117131066904126789733629881179890107294897692963677163898653524070048626263350166407030384797154185197793791937655022607565180227410604743078777244760767447163322461550952091046604860703080022678458243650814931713630173775203903715133057871387244062839641865851487015252693299581018711518020454109669777247214750913376864915349253193904954511103538296967816763867180421514775242271288944427232314601544492957357382394814203088888912848654389444462037334534169286951016174770593627146501897284469598143994012664610230242542885045798025660734241273679602663400640959242101628302933166397427716947986546851334370391955453667815009775192416098561347745746246053116613827372905659948710204615224619063733541097706231032289468477410236347888268737709118650564421415650133721480979562856286259406129893923856747360935510943280376059745294318596781467658941566583580135338857942490254619828583210973283521988781857458772328352997185686065054489653027497800088783858976814582438842337170570500139111740956263588694666282640207724227030026633886629656695935759192253712382761870992540670201313114794345636632768731251224103257586771883174831771420735724139108658218299397398818396270157009488030026380279771738921697525634682658791901599935159180907615355690121558668298923780208542255936956282333272999369413046809428401008410926267875614274067240782616053456724564410060957245604837044617259860122548529815834914919748682280881472838435535375282350260636699742116614925692132419201352947391544811922951280698016423117310840250464564586475489499122590723662111031994780463818056568834353089405875738850807084636147161562979771733271157265938275450610458614282898868207787736021158900443191227681594846289537173034629079287134029312531773897788516756586559111934393426994047949030244749689153802630323691904294345064773870080564403535105035407796630398532959660450181479894869223282987117967435420845855437579361120102705590432228319350032151975098477913208067303780352661028082770928041583023284959754964299305727534032065628931936785698138941364007295348003944113279317944586015416693467627505965972948149264419672852365955301352436391573262335892585977079161159817956081832744783595128418052430037931507076027534037012667842713559072535120737819383896965411975846387792570507949278250984842133684404815158639500491001808607708307359293799374208189594266132112856717978243501968342996370594704752732511022238506480912586673737075654352479446613241870359862832408996582733625285852717116879708865825190843710903139820040228003279677923594161358146537117577530605854738439945223853730191598508622143454262849156600903550652893072189216019989255940648741398335852559399243517528612673492136495007063182713030886081783240303156864465335579821443262027930048539942765412952750862849466557785533879414844312449198323467783244362847045765848189652725151148844254608590384758941622596802421838378744784935857916075285912488155035155942935438848920289608975256669756187665332464093430687463790036605441488034643415688011276726131414143196208603405671047511897174165013774383111721230982506161874148810353435633492259678372960332709295954190286919857878573065270313793428028157408537073972975373844667630975055125899733860584844712210199234922391611323665314347359408342135259448315514397363078436081001948545207520476232603162984060648036827991214906085470051632568961228809567759383382181869476866960060183181351896488272209409787764921857717727197994368959203540493214818485837693928446612082727012974191639955998090237507864485349235725177329363542599077964172945468114417226244239874894475155939651260280637940638803071841805724103574339630285406780722533863983565960121191070678071326034351117182283039837309303784297993806282416598137303207100456124012320674029835580348181853766789108065671971277602925146027311368992608610544491262061966223597530804036084348209000543614778866424160428573658515303547101191724639458168560704237437562261141498548334002237392084961675189274502591941073926686906325365269529676501182543712749345380873017903434972884206809480761582314373891217492090583835590640268370681995053465713145092877052866938384162843573154623125782961174703771219892479712691566151186331870266074561311088351072095907219040342045561922558784800793338670506423807455037880882810629853093467069457533889271434593113428958945622997722478696934676755962031583900708598104423426376304033873689350750767192307562930922553126828231970948716301122258755685910122853476343330590828523132878229172265215912512376635627934915826685461393424726561569521721338549326626359992109598480310326747551002481127810536483242487983922808840440928351669071108709132441885337356436027201874794400508589899335558682618344432126346036865875352283087764508431521525996529601568344353879554164754895447357008097191812491317424804517558792427509180694096748396195613253461667518686240012237314484810814142168293128263275449653528515025898426235807455211311706029864787278632815837433848172678496142637438033144299442036023169596399116396060559526831999179070442711768125376045816933241096238507680573354531115862661170252223056306401939292011344210845518129234603621509768389245637935680075855258723926904411059276788043368304323139856815491088503744681792694874966975678887962173441454854885802497462600359594963687171591103938056876953621645723183555161998344469396850819519296437272538941370160345763017154747595490507194488212840376890550957991175885897124941061023698674803618336176239237976510195472727342128296038390459475375516630430864344171368851428773132996148565029404525526671600196075248709444928429916399559847868814602066011962699603888164589973231480626572625506413885157625808302748363930473616603491456572645032252875774120049090847980101315318382198224171123448042943941559335505403683394236095076011111938887922209553480554561482715579890479377566779046777324802179084412613331823511165804603355845495910107206913319371764883511906968912564266607843244967440653658388432916872172847861222957234046914053169935739654865545343140711714251166249183554339982434088051189968075993231945503491941271704720269015564216697248508027105742430629783108086438256454631964267036025302262423508157567032817825600475112805146608731184075809393236724469759513721383267996209035762036934454709751062964056021097732972406456410770209659132750603933015411987145193089005659080690879480041744990076085991381408836908653988190034158162082038015739435034519689790284919820098477597442418529605330073628630505339754251430046292535956314228414720470621006148429449833471613324755932892464657835780879533657255067134082702268907308700306327026581899370374061065061173584634748043557812974087395141262672104839337343790578346040251997544013150721256953499814130643376660856026430258957885544732434987899021034623342294797008730423285068375675112251534386172839951836045538811654864503712702319828567702689568027759245469175461465691543223867006901383694071909508151662722427637019670843794702787047141914672476524400826981354848077733655503637762383304206146331862137158892635225798715538516530314028544758676607311000309132003972233659967862605817036329179985058274896077832611385359105456714213033160109259326683993553472301669386228397866851816102616691505079700944071970579072018537785091739755190065363375289891171557989177702569828028346106069867509905600112192905783018156853093032180142909114153220438293143026660178653182126719061924295442445370595994965427471488415787912073145940039969650039341345062122283451489109888395051563367573872439432958453479370877954756509456582898482589300862556009712820046207746852666208892628176465174814050978719988949917938137486421336315201562680909294660830161583707602712952479565857324631663757282973467334218310149858315497529911804028708345681879794318045983650944416490852887202912927425225116841861229250825245856334529973774477258391669962357033595645667968108114816233527323050517388590079040749554793350145634358649671198111971035207016855407632788640604433393736235812908647849846986331212458039698191246161864311704909923582775608332539287765860014073377521693610267702136514958856918505933265643862620856356321659629716841465813609907487075193512307577279322078046502301631057743987168112820205343018260355876145906965484433594154955073502270238475298400147559264684375165756946276750974212726568901920860208140402773772829326229454884973469291900205788212077491512708876081385155562057884034527625918993802697968615188485881463947258288229105174387438595815689468100572179654952106168520013782645021161589494952523206946890441774345204555040534735999336736508160427762124747116425112616130823514315108564291188110279999022130516294470558566860935761704890200309101533357309507027470111507075795101418958752397809519049885937352238628734281364356369015974402994048837248600205826065536009959635520086120845627185984293479365438217277869872535155986657017845092603079841848182312045816559452931071526951705609860891261335194680260537138632934497937773508513653921108268094473277377707467922618463535700118525602306219471321301885140186974506261199355359341168743447414152641586329791649471226029238231025924869978538486317794776761561100533258334662940670557484921211501128952114746850165347005453950691403410997071748938288220459426775550311148619199045985520318278994057328426210264252816763220105304000806056338528990672829208311771297919651632474451927154995789206833470058657944007093747381326078716010503116350658007367957813944686959589681127651951989363547485907687780019665788916894092923438827275434927507614000840183571372687801255411298389443616595253011333722473580751925624477447134678313381677904652478796897183148810215631250601360642779136960691396095330089726476045930153052326795587683226127784903511388116325449532110305330142891737094821681335087818833246017659122527518354711990535141717488722143782432448845909424351466045575056697091295422216802974344336980536781754940417503041183659770496890276835137657376319927803629722420855544689209586122584464905433371097285526861739745850632912031295278475811981164937383143269073658285752460705597065934201650764206491423074088900043985860286105755290930193789764809485808160817365405184797002420220822014679309694047246129682368899473091161066571160974542813901723595375330422077387701643926408638786995441914923033264019175659566672625784698562003624834007048381888139639395811647484601350004477224831290991649588417802437240216471424403545122632894999179162573164308127261638930660943544397942888942296251007437728776803714055045214982506341792659405510799830800174094617949597674985519502373352066616250498762783299279568877089605466995107012841231455453774951046063534109254731607781310060872433748115286665536146459289902176477251293042209324965883226910801565574258867808200123101202343440197341244968393581940823595199831192467856232613841985705797204807511084331171311987342883246925324716208122196480508176587325621076743103225826237195795980001442566018157563216108023177854083201127245873497078001808732832595769685745993275517392012817512305539790975033137785605072820853944625428823286684360569319453676733977156613691021339363380409503299707906391092441808573770970886670836973476912940813320917774900692639835228436352824784642471619994182070513329495296860237085412904268589797841540032379094317391552345668495166182516165827969791677452058813847795387346844716817482793440108911805473177686340580939101411870319247081735574908181046913661268167480148752143410331406328967186888445875695001782420369330886792237371709285003569014930027170408513564195673192060747258639023690832261567224453519146716345351876448237282865465317455509272174533835099365891832915456599183095230538405776298290089919715378786415430676484888986536947581606713712221009949463028576281715407344981102493347205963129037204319068396031150376722286084758430907844113462572780287870554982014282626165101000334530033584646833699229373248946986179601464687766990651592574414428909502480836310436506280246526636989104938780599552490619573858216305951932548336095928760929502816854520558553021343206554539347802762250718794381054979926599467054805282096715019684379778581554476021900915389519521029503559305885237619710360748000169670888747113356871691829881355652227151769765198394198548036592560599400177345256160493933738575949822677737495195600238988012339732790817144453403390096603590688147848479370936641997862903808942902739007970322429846250478142674436820514903917624229376772172228946191742797873753216248735643607237799527744109443695722272908714412552052863273043238234155090457408503420282063840561003726399718487403228624185514107381246196654066120171332320439237574097937317271822301040843474106140208475178097410802208791299495071212785529470584112142720395212746446706476440063244357865121809600636304841430090304923727654117618139661455105427544531322623526797306695624529839227002737269377557467328591818523446591928820701940475004828830585120844964957301515453086300198243804009519669972582151005123666250251541905247207705292633639125048670825706999195538644410324092187230106214778866744144457377356899834188265443839565397483351988413799126748961132703753673882183298310512105057226701414540986367197259995239694757913595960128300646316730185077194642225574952880524752168328263467474497452344858508885120506764864275042398677304690168919891089856637044705726766263297888034231416187806483260776456969296537470860056123418930843406265207727836625966403275276896594117205725271975812709000990986054714598793109708306945031248652546860792965463968857642720378999748393826860151624975620354661890472511731405475709072731350928527233112175624710860232479078529019774966972147238325181041391830376302447020141616588137015030801308623627693726617721879486586160302229027856218213778281428883356254674272781629705881573604528150432564087849450372383282867386328729011318484535830668197852233129584749157305891352729195143500958802710781070253428321726460873930243482203964846551429315712715394873866440742441302918384632126281845055515739089111013197396363732793595499491933400924474558149162803547685001080509873429957720730684401456104384966018251553646859651775317279895526452193105035354557734086029562229842191913729548376116194915733084044971015928672296714291307940669519784942226661314289850078261313111581522511046793232739914360710853655024409158557561056636178722089208527012625702381436015476262925485721141643243311189578115670675218175215736634681510147099951098495522357182653760153194876067314393051452920744661410719689474632895950219763593898149746828534207209770811374160060299910747790847918719003807767614867768441300130520595890968978587242150054608007452401949194824380593839242772319980267597503360174162033053338731045367298148440106574832706899415546749260778051107559973358950793828041409563456273095913984486798011540200856223009411459293110961928330481757980298100823308846502472476258975473538261693643643376170936230797345804412926223530800000709635276525435633589428298907484884553759165224922733199064996555549949112672650253514459575957950830593455112849105803966385354235124859616459510073782306894594675619445944781222313941611052055762836340563064905202414864217715038054236537512828890021332148683279813236576316237163265226218074690134043431234319711505201207996634065786631310900928993031361056483251174362447982935672958750446311155643724848164658514528017410709668959932097247178197424465045795074157122802172390124419909484488593183551204699774665857042199067510423511560843884337987369898177108970977717350982512802393201436224817168956167985961299559533107337079472887691579350161776853385621798207000191668282293733651588104727893467281850400123045539883994866231757903502644646165023969568638460638578684546243426981091043606667442962889361523822853109888226257083173094131070936426638092226545687405720601336557542503096072344444175625658559159592141318536554901237523624422385640492051669394538405438197641390550356562989950797046667124386442379740475209418929629475956003203069284222274827870608536792073493446031200752137639387565520906726079958180978886541867209365452650143376624113457057562753075019544891387999828799934533104049522666014904174282848321905387536695414276714671265232809897796260904481656621901541654834319519876396653521091614418360033211378130766608952198256044779528894334119379159630351449475065193643279196381531153136779149678988365687729821376496534294782566995358360458675695179762783778660802980028011103511107085254374431362701660451212460398676843490170022538889815151350647092436346879375732732545434288026329205697606982166566046955546266468392746271136174971804080356127802686835033559877441870345720160000004634341107945399797667491107578294410508050039854211520306308888362558663722836196826287695684155642683993641497978137424191861836692022845377753193868466435481796298162446757858458385350484906318651547490521744086031644135761909521515186235932619260686766560486349149157286503884474516252967070698989270816311609805938617016847468562576783454155650666628725317318392642907521660040900314361341900666962365610528251604680952761059196798047420412992055726391749075944124313818715150599852262604967665104033368339266766681165904343871014349838436144348262120407943852603597820736327164170058147287411984047551215743056867245423586378973150892590888693755196120475707956302351844963848744627560541642880207252399456516586935716371157937165419353682627891173579769435831614579583925969433530167004328516920149910042323251967336032457721955863797047892306542916166001612846681116817164487927940673422430988069410770182150162552177024490004237079418277904800820136291014690988725337940600496631936475123451172294563542439485987496211598252080030773357364984610408949206059989582025114551395081600728705359680780848192075888244324964790930475366798073789179390861581418439207090689648823954657842929609159419845076431193895674791218617970096765694418273404219501669009091802539455993853774076822871618658755416304635453642850448540083057458463166456054025364692454097595880353704927790521811984052486590648403267398938727875358132495083061799724739227644597628324866288377685065147389644530025146262630127818719145396369164900674736926817672672405648267539951673767598059111103886206205342260476477367305566063904840107432304903739174972169777941928121413729028288858973286827079918389088733933734444426668950903417092322853777054664816715316705606534105105135206752118636227233577618427484714335629669533731967890161344320071221636887562597328660469965681841720041264096229691522474807363008044522055724909154851213867630292914909135829669453056643476467609045192398464164649771215667374951559157369963790377929759392262495726517999586864185025069884672443220499618147984997224102919914748756152352398694072270760298044846106105058547622200369636274819224159055610592558651870721690402332444739990687424540052218089233275821268994340387103608688129095469906777287042951602301209125597910279048908048598966944771108211400516537404535847681325080984520481720686671070115214199036080788428719672321507092801564046087115063062350983892805614539624553933789558237757320658922843315304581655616037735433696664589997969067349900332712592774697225780204733913590800067443522958529171445815333258728624033638157903546762265448656737167036184511413784729545115253483593265506891838933085892485510516195510283577817902806112442967328616153634158910299368841775142761340736829408690847791716340694278784583643905248667161177422070118107163143526483383900863078752955925629530001410392641497209935461944852351237369842346999369914562359535848282396479067115253185036210542511624962286968923063260754673294644622095306802421522613938623494602969399904415023649639566831699750050283079012391214901912467469574455599228033509503133596242539193463133806312354285883761010218299166690877509692252259675917435050311294516584406912517983580636392155115995108054889429663048983953741881032856780015801680165057664764918672414423816388350628363935816688296352836163265262873035762682996714980664885040296420530127853013923557024746652054637119533603729168440369626760014770919661041618283678738777825219716493773075243069392526812036034291015988274792051625561867762970722575456419673872667132688521005961091693844440806481048316694465245210621602423733518522172579969276459409081201848243756273798543172511491298379949204349236678993792182671739556560917171992227419607682867043198019096783173355159319100624480472450529085530981458038080034196077968872241876660370557721353100672308996015715828392588334196499618296211190469523181392538550465914771353278630984930108961150760082572051933856413859166528809448083118256624559956328026775733050035413205210360015662358062489246796352923927841569163292251376662031060421993171786749639616907786630777583586741727200060448120089025090114859561043315017448731658239277229381884053438539777119076170404021867297746941455400076763049618264475607202430140746573763120837020021704222365807002559882087472701147427914441409151154910252664293929348959460061599487708561985244853727725930365645223469014848934574618755535267393649185794319278490448774382553221976261215561761093210924362380590043428923902251100093195627004275895498113671380912321354806171098871002867829635595515281714844956473301976831875323053352438042667974547000075252652005076467024422705921711307464036351118736029637461515202785252263577801698596686981486033154817623228450465148714285629760162524314106826732753247729151036706659501379717306117970082477444764405174170862646904920882834542614881987117061834650558181556197546192103532102070350411827391139920560209700266740728506522185442954811990867040945360683890570025435838475338548475565194634084259545002402840733444470025761180773908724361454365635564272050234128290527482273311853369820186298934686025539892674534600723698098646682231298846382157021273241359497917948386793326690945786508101376532297615069919307413810489298642294437207288373802585401962441608149915846742664176604714863540048966045441297360949737793821374159910556513388045743769679364177385482866914987327859783330027733271242813475593677090800818461710216396656158708364951639018438019791676402270003552193836060501032733709745295957177945673861910626278025178218607147708776081901470713275630259090964210555291869369795382704786362085480235006325788665921674901634797732932885006185220207985500758512099322071101443604549223863056541915164827999885416291809672656281092615154465156962707714560769648756472823535211927052596869885502620774137640732853022333900938688944715661014641425100210096618892977440011199575990609193717000427896820857519837022131049110373218179314613979709249787089168410518813321292818785125257945106055694731659033611124368224667784965957169662783862904352232108672602822754758292969969422532383433010591160212381510233856074174893371893177224788111791052467419254037190164164730166865814725419075002322634171993467569002305510963988287709497745168236496359099103108986186125132371581615803987816916464120581518229439757526027602010549990993373166909765853922942095372493875761029810840130494937307974929927572873819678527420259518029170497781980804607035000334421295255152524447024169089713513077884121718103444159805436395949750302930231231077631137996688372062491649188462102887809254317367121406179755527431979477458582819373962661759464927047632456946023047989068525139592178459630585673270237992268571345819071573594190590473809814602804433120710637076152126965164120761005807104301393540408261504939647381429371167457612582053836503280067944033748543453139786085716830003359587161772467105339714943742192989278806402693790762004211996942423613462844441621391726655378707258905629133854871151093875484150349231641245301130709685635704039622715130827189974707475582521323982844835135466076735465217400123384921160373332119634182379410009713983929773665067358212385694305743623152861559979205913013868999883218342002069536098387502538270543394826836611564444478942981823309189874442460756359249416482779187201461469624658795682688838214522082425195664771403374837146193737935323593293164310614921207323509709776886357944680036740171947082363592833354984197990076924392413790672203192189453685683115974512366841763875367203832379193159373600458555466833437193242569829954469676309700072704450667206165560823603359414381677992000786095724536749109420240607872127207116924096686755455864703778073963185400201495904047564090269789740154352702287949929731770858876269372393297152773362934414300851472540154699281749664409185738365886449312276298034415591795607014477357955011697665232144907288264077640960526689519197985181790759499010135820504658933022643419087262287845411292089876005542032251282251531407837463775110893795092918436455632418059280651112836752357977791906444040464694022454957789922245845267622536599801376005405624567451152395623445518013461073869782908677501830934944769113753271979269430044003460113150347341114580439746518829875177364220025122984434895233974982761034145463164928213272441810101017647569673523819187111216029320511030880278342261700300086323754275985895018473365371123411729769512116198599611843787501091246940875313032017392804699924618413803164142842691667388695939090680191557717986066469525670254448685789243659310143026886268980647462074923264101402261379061254763505712377789872334138653857176395265454266904149552433162916071289517201112379308072016088638875446816732954082965018968860776988191085809273640330049565139926298960440832876796397441822464583991894246529914200170532079795318346106380522589903197534571155320434805404550845605716105172884699327216360063632918075776033928142837199102526118739084618549501863906538175303008938621869611909592383705708792088591621979435837198308062211362247183702009222607757576249366301283544546458005417307701607395349688392078885667252337372049393976079149652935538709323184965229415831390911332113499882528886507018061089110828635465433723999475737651642798185326914442260180753142816779401434870135675294538804979782671870107153310616575762208159603040820243816096545804034414391701730695626812685507683216404070970849275041345084418161934095671360564790987013727120588978680581060301600510551822748812922380711906769805776672096607867094350134264264986720369359881613752661779508267715045359248984463249189074482260278770814806146335406437691361611969485294904982777211896388520470139813799194307247139835136781994304141682117592865545241857897080229252265679566185045422649518175314437394568203484691371505518457662088547065978408820509596843584367791367601964349326787937192221609247923692572285239648959330264762284468789844592585273241118815073438924616086275026821290719849991778544565131806537789292343766472300682682900932803480294265659120581160802454001236300697635864773111216677180696128834485345529710914275073177757909010533762694614416954276808741472372746816854636054040498383915410579698594922013819736340419898091640727687958633194975777419964038699362522045693003232565446576004036790698141787907598530491415293434398821291239093959771063542489685879185508081009819954356867882063576851037963426274637308293221934041209881294917077339161197277341195534923857752888062532092708469838786072369848314577092251409103549505112805527286089670699726636561853452569598766796635037667177603748267284344774375122223289628377894831235400838478864794898018034170010042788926252627142310493206925104617866732279163487651489182865001636956708367826347481290236926709903418294433995111361550499837586720288684180923685188848394661014054838908788585784099816308887666500994993639616453198152055567081891067907316689894232538402459779013085389335438448442267100805561201490621677583379972017611874397222983651805206004986404934926266881615827686122284033817857390025044126271215494794678003150947452734789355128703178904286382642632919071700662360223746685545199137494613927317000345572431347852022856497277552905689736840146433748148897799604085839997715421280295878918180969018237071515335714202973850681443746461187508913673496534031571368773934170134481348749230550699204331187641732993938967339634024287221314074849467765666246952323936108639402429161762777837345226234064367210657223572269059459076789507822416808393947446150059977151951591429906748276202832704170247398405190904132887676297131935449459286668860781684449017071738781222557738758739025849949234449762338911429773504369121748140518562774400339652509585522201439906318774198223009404894625473167933524921227671650222859417646805797280955340579861616563320932497380711264730242106521261040098791656722225874841324382192034335952608430063886561349713059651274153574437148740575349268213694588162558079525348855181168793081686939998890378527110828965563622999862040551098621011505727664807576498076136330750306244033750862087832003022365051743001114943029137854946038106897466777814385970452781749699544987193362007848173392064027131531071276149139783583960861010997060750137524926472713236368156819683615029971181723580351969933618666989349340765122500568667825002563203822299688888450472322434168611069272056752377939451834893643186536182633458309365300255018702344365725416162248985271443649710242644810813247136852463070870762899837191258757185889161401793696379520002160721564664628787878810827242463834768674627088021592487570112550344624800017668182065739513322053713698565501076646170130607078901513174719154831472968323171400526613198500437598904121513980087334259757035003184737630623003942519165960854229517852752123743653212373638007233666505861946139075246595819746188143566914173683003725938942550056037688576852793349812386155008944101480605948688128588208001481104273661709471915324713746507333476147095487281684313356976977954390238176365457426652014724227653164734578397960990023281555910875568016315779568132829573039188925996104449650653569191352951015946673306238190410635436525785040197089905777211879717704919462653669434017726708062441107218317221604736687709899041590079534071486429089446117000468633594823934391013124647070430214616333992543737436548641453829708362874650009735669473195743669980709188998524568304414517190493728541870637563584802250600958426327603192428919209455953894291289134991981817862305792605895897098889448289459452132196843347872914243409797576346433655474949277381520885616379199632259276107846016408092178840307109746432232774923645281006698878848563366745737956948393333410172513632381697313728023708290507637469872737176376044193291453870618289253819159249387224166890966838215856210952959942106251011901259234249000372733828783236966927616819852315138907690914241151685745092683655719083777553299459866911824628927475508891671649564942725475609370054362552275363791441772058745398173677206595134468260011884635632348241546021326719618300118008972331524647756377753442722539795523558212916647286672713467183001516311973211637273691544912064209325763838916359713488306062607610798535236179821538077185848585311685162966578077742048657663201358587589454605943901991782940101784808019464013575112934770288073530616250927910108918113225763975693869931363944549722465643984476693315657092366632610963558843139962420820084966812794301418788901964978634054504277064975870125298876210168350531383273511934765714978552518678252031745441158360278701031151227499773834889989748698742509531555236207426843404761456366332087226113118877280178850275936843435694558638695263484652454942022975379323593229120766350710205047964988412883107046217030819942500980066065220741204388864163701156206021010841484734796298422236228402928485198372488314146543970529511856564052544846414887528457511090572017202615313423875496955682350221156993950872860814657310952165987959702746727217627804791472598621890432429254022374674066430117382136013572824604009205753059270895226598249105609176205670377574880782765718157045743520377655725343614300052910866590664572544941907287764491721683503897888146300495415712040415850530735722977687049968729649255858303612827211538771988225235873749202385126610324420501151358884764956073258406881328599543061366263380420464656764718976130608867642459935443736982382032311738430718147243671417143741523793071764386994434526280829063582667206518404657269753873386483749270082902392162613307813787957003133432498280328379322300658506710089305670603667000119681932095712199542670625052213539704647511599004465934577380858826326940870126727403079358943535547676065337731362319470730264370488789727773744340668837428849312919233204715339835954792986169929738600868551034591451226899459666741110650323829862981197330617534117639344080341877930268869239524370934560797662840962586587885958370509555480671925979169733196521421079756927207978677021068019836158692989349698555316276058420605040109915646884090284305770106393673145627117197646814457720329137104458907504793348748485706495388430331206201841015355559328151009911080787421362609212209386567148816410721625016414974687664560937954834675440134600338354787425382517603661602930950758941380328904811541505411238889062368413032340720712981323623585068707967484422757593306561165643644149510909521183640643424245056511218385787889981799329697599988089421044215577925385912175295322751681912402286757955782752397624412505364179413331111686743424720526194641555260955984196405898676278641170786413189789189829973205289512706870049677720808348399555666605905211979469978296872632086809034614890020139435698085076470266007459833282439334401676934955738377519453729472863382052658191397565604009197455516888396145072714634255345890939338126541644774800667206065680003207284150787459115151645616282679858935996504729106625247941718633467958427017709099251308236056178172420299824903114268947900975945174804040026996338156560145815303064111348735792445999887311262498483614930796758819180755388569246564048935031391456940916684009333428045997047079573610330359674180651744184768281924939514642474376953786018479856202831435713014945751533811805496993289006081897516946561508923964421888546330765981692828614214197002617183793462662906272046548702278400407758735633938172061019584951133579047258247188145869381095477352075617931246880475096696346750488833754991655290272276533088047226773887179656276809651837709437613569814465804961280406046083363195374837885725755467678384973533629840406093783827594138171446631675013069462987355648145555209500230603124358760065462859157112279681479127277062466119260743011043058465079461144540559704561352979600507091653330884053834557842478525042006125863084411893200887731310170940968725798622830845148511219970166682559932226210139229742694343493907704533981011908271850323605468768781418180975468535394246148494919034323095767228751670192774414928398543313207090266712239200167107726609526677002647727672094487384697696059689599278553487708998946787605734167256880482245777808345055503217273904255530713416400309647469875821686799965261911087892231248800719484933124174689676621680789210144618629409876006077562784190468379148040214449428742436121714941794137448716344989712564530951548413182405524380014860234343779917049613698283952319936300205035030786221831485542404599557213455691791061318365179665366406173656116070166021032375722117473654960268284520580438909124634991666462475975490143537283703773936609476204425880482073810424120671762540755248929149305389840205453706672298534205836824193194286748164321214687791530924263172341192416172851511377575505560763610536355195048130486187732808516998743852332748768428276665709947686414094170912818885245792427603853119046523611397436185163184819016550241366659700833067168173941066413168087010363647772971958959664311323807631857861603907836571572394225535172245134421160538562087092175247902337683698121909128897285851866758464418707879566176442472984619786992081324222088151607937276438068031016862085597756622030420095024848877537535406545290055331861709211082120591921711832647859782933301000247323108896554886812223586926887365813157145266102762618104491421472302725540956710782672885086474289677872042166971095139294054171149065201835609721788187452355776617238621770876857495604967877826073717078486819271169072882185732854865114589192956614156658593090650417036081842588271630470610664719401177505187840731179710750678271789905547870373707595518906631044179996611381320871363565331752867951426141502286754487195277783381949874631832168672029542746370612431253758632466012636760671555880283989126228040652907127054862303555258276183849600234156781458789379210421437002644598199422165860967803085082038712460567051972091900886074769365323670743380589113599084460310741961295663950752286330380161082019243011861239846389251528777508062179454425333157526382977802327067903607199649664064962169075481251810098723197394121808445870971040292063533165640285431239530842777569247675587828777520590474233039050335969045813600637750086432171722789328969526404429811452687528768975166136225512727389605331006855259707170208925142812976862487258626818429411463017264531543015285496344580247013575347090036860881833054387604029544609538760234472562770114823130421998783352157762187690958765640496608055070098917464745011899946784233072096210923091784672906549966739119497840555116937074798051385962417044527821887285267576104956032792760811398578489497088230138149078660465270929148418776519825917856206947648986714967622296905751407135389177231198798533289440839590060137366251988130758560517858661247798245946261602651175472262408382647901148950352566925683945655101264138324442996112531296271703712049035810266139714687963848206477227736425236110041053881121037510750143399908751396130921314913775184187698783452999627855877037563959098093773747529691144160350947204446295522762664376725822223958586743244029868890101236453493806460054249029813937505641135411708969273243870880814958591154532748830172708562446473135489464067085021366108965024223132722901766467781735387271190601121292513079760192164222111918244599530209653213313558054745822802398843754985367598892490460304629348761847962144470982685097275203135806999928113010733702635530967548973290587804547951934711409693176750433792789291651033662055692998842413482010041089337660541468741395110829602151731563504783227892265791859836538381971396611418452454732267174338845300594584510212620325739581679434482701511289286385890368374835658624256774034032665815322696791428394662931149638181593609924920734294584103754865107222301059474005405450714291769075978679214073655754333721519136910313093051983003647588239199725648942940758659608011755454362887439247336243384583476207697969270579767821469361813282978653416970736764152119136953994656293812159485481589085219481501970613002162848016651803956143683173578190326981015825805304345540464662067032365845678848441647424628281206995832663720461151402931454919538454716220606978360343330347320267512468847534613439568263067079203953490634029645265859455304934597893522013768460065507450459619609819764635907761545830587339014192234225965956496249582248183822794314277367360151597581094530023221654431180323671946135176986483738741177609907674808507196312033756614583006317362455739726418570490387388362563444698772142858905653693254058547647916028512195840009139790420008097329887130392731481335395622254065057263016234416808118277099466200620474360549191545332086460885806999122938789489294662069037363284432908844259248383854229561796301436273118526488304303139398669092685298295366489592688074597479603408648487800039207514982558325508283129204777992928995777047334309471859763323705761558893740622761487102082919693453857142225799523277537016954492630580879721643983693591952211406678826695746975770049334379928057771418899754359799322439836559632224555402451282426070258654979318233430094829079869263384205806910983108945598728365119842917929674457840053780970104049710202281017831902265562274904450093647863068714631547712973444506528551084546688171755392286334080088717749830515232313924533459363425480913478725348464124967993529983030116860105588814757370003775356446408602928542976380129700818654428026464112565912384040666782448160240019554549285067146273020721010003489115085552966064226619248717548999113441535019667562863957919954494030791498005853601302490327692790583264414628632505742858915681671233926927350156331350479537850409267364054094926341337057406657037909015491510363271082861869537651309882283168573612072219353013446052177701143750234475684127990862621620004215966560446121364773546539200873507420360769919007904957005409348045650117306520172913966942844479462348707477324003761159973656494811937886805712360205975189514615446349723558545440909786784467948838647065782760277579004467306250056430098942648144399931362743781994815694104697615942589860280777199373474470303230770558728008599350016105292686778134492355581656232837058716645378253310270370772733918613649975840774102356897753465253909207538556901116998324093384321835492812610146669022156358237483615276368469657813802330290034731408934045339165615404297039267703897408026699761296991306584562865726164448586995183544537082251549343255880025759602938923658082722622379138989302175764237275901660551177582791714701441825970864266952017422880713677939185475137662515356685546665468940127678499403991369096262186433014809734854468170601839278050875723378475587867044649554559848606488406358026751103057522603859802715540954201504624951147633753708362605040719818663670405578550939211108772546489084745616957816026720174745363107035767541432627640893903223953094894565304558790863880210178775720189355066389876946196216892348384492803351574061590886646970215752229544642573018074072344078139312743575367573455907257619460649748931402118056414435160300745358729829985966338008093480044978348284585447391638892011323954097153261675267590192490045303215213353518368916027210002361319995046185619544855536617044274230811640885732745661214944765880034473554446975661923981800414349152108092958953720091139962368443372471339122774344750264310623758757541218309590205894067998447256545497108380880888117444139726597852351772997432990692457328178235291347662539134536520870586326659974698537819961241085143353636456060586499619562593946768425246156299681271642328177420278368644780429571002447179721698537297874350941863065427209432415212606832995924911655508736688634217139791585723081356933293775918085468048655760004738391825059947788999931089913250575264286471595039714452426641340490896214529933064652640789101797330208778991457439660036217129100052967297177931506280437560162986726270432404678496382750164901291906710723147786119117261990349813397168981676447916367201456329804487554013660571121273017595333936696585260162806106398718306417033604639527311905029959889257682814976243047985219042257479921120857864122725275486005823183464636423227938593964896135131600494415857921717895124557033915433827127442046840855030734607851869181124866520631039615464781162361619052903275059904764968187283365284561973131996097809939619601780575678894589389773409562163980071822843648301234321091195736942756193645578200577603100301436942872871443607606835172961732951177889008019232190479085640242681111732245025964101903633192311923101237964845631612959574279332447133438028609882516811684009565189445651275310177298884494116734246155368015700336443281150764354545093518372582676524179390252895147885088253984421641262866880710570925010551979493655983498604959043912623063359920956156463396110146310087729885772411287558464297182514981854550577636217741048473563921130316414018900148024528584354023479594046841318229660226166468486385759157881737298680020352046988498621340364081153115900308683591137071825790274578694051721002315681964568126166483745481029368032275677865387840942560627870186145832732347860206388677208451673374508187432399935872856769189881431304414567354311738420757817764320669817697404562727129912389339335780688561966348649942813033228059175470248416625830576181148215371881757262749367206707037028977812998767040805133133299922288732191138282009290123825635269078453991271733747791312817765935173401952833031659225834600191585750340484453007844050624817592851678148501601257843071373267413914488022624126133464916898576318982416821126980692969030294655200357990903013088512852670458649113375335704277646143880095019226713213333415061244224077607423748735489039356034388594786841909282393613608593135861918941380374888217337736079529551974558150568954920674202020891632313006387072596630242552930689689468571514777805996039108144536365123661911689765124114292916277951904088466180163168600305704620642684845442801449905742913881650040006212333851736218260233119288033461011111960129969365557157469326017714270383314248337163443436495236193773841250037545959239755644957518250653100957545376546485116753238465629333130544647474235588760566388049123792183399359566182116854104363655439736003485634700838399271013393440821393810926316699265712490979248559368719012312099203541355514337546276617825937518283487681676356728719896154627388509718545465276062252233748085036924684892086842069511199514737830273665483099808884672920926448771848633405826827257593329992332222290529066897737793538868098854461214092203676321340442625943641101260716049504017559872250163712470267213583175422314020932329193981252839542161395829725289882303549013944580899719892265099441589345494809973932655636316028055441277261423583888961231260143962311424055601179596558430181740155667730532596340712527936354056687282981076870076956727836660201592347002772023964871112317847660733913376674794830579417921425977417426018273323082499870198767492058802758897379940529500987561793444908501278348950140508713187209993391413377428577610779579973439354312857900843743564212627459334877514635955918316931361094247995114812149601280334248274196039662406437076266737649768458411879649783557354893228333494457086336339210773534020134846948560967440778952426555290205145362057493433601806281168261374973809220028381969725705399071253465356472346552014328167980939806268402972883898590878873562760913050833278381868243850329040034032625141128383812253883492303971636727332221526189140810768532213846655926573361109963738659471140768200753251986221824349743817957895724557065821476984073800609833827175302578354552200367773231420157286830021892747364540241076199345529756757519435022594048780359870196181995290509154476451258249647136865278498467881257532395422947137173941378889119948155367473859174598529038343057557523696451449983477225540573614162657806456016373993350793129936306020173294463231358678095593540959560462942160748405398225462951407954965496321954183659108969134221551151336169599751723739283127180724381963980703875815970300594987803048280897582930064348855022461841073347706445464560079485651267416203938613843296321760838987606923241916620734305697111895538636661120301025638437468963786151066188515004834599971671545637506909104654075049671539216526286122376955335249030595248449079246576805508569668666610989407066234178403917950805058155393191513000489819663703979158536519383111612246441350293076802887216810088034130092864399078274612967135153082675473362850119046456046149127593860761994343326176626242721637282145203071133142497571960379515831104142079923308656801799878808834411581766302182835795154329216658429010315775485915415446652843475984460191671039224392334075589908425543144665590209028290384633875732793024328695873322569900530336519084131140162004823667717831256309557350280025795904959792750787983472592580324568583468802513220301729316877079166980228286827860143842850628798506918201095940093297699417933630905729012087490950677821734884606566447757133549979924781080318451996068733524198896129309872940100422777346652985326015638736217511799698398677363936776475161906233188037658200394213423334330346397671160000908405736567431554784476437183168925559519855285832221426811881694124298747632853274250244199283900826817378615427716387123450845989014298849247567600561829876279754433584393699180565134206288658457743303949744665604221342142859995396685268482318998556682420246073243815556026134053111129911889646715135308313790879474563453405806879617102622588697045068362682751909992033189414904515643189142004501863781778588409891225720103337853310934891325928785286791296329117473562216079607746824089002976880312346129835279753159854730062286185729928935465845806548283082969205356849345175945618237551206830065291455640035570354009016212650452364541967671588819246101684793678898762166693200805942956648480310490943129645336524182308687963085320534253970484093685910174334049846578392985640610506401747125233862209287596889913864372047201212573475804488086135902701937960101942998952816554433110992003381316603421779250274615110915594061541072578632729469682052389394665305444820662553328011898548437856983283465657298022481264297585944073419684592845088829219777132903117487293803670133718155000266133768601403963137109637568985910293703821705212550403614021900934537815133156980341056525646694600777986847168354998809296136717618532410585494290579293837870681777390060788362793624129391902991079810796658305211047079732572628104173016763785406927494832200308440232226577437831815210579468428616404940371243423982366416504070851441362316835250622946158864630429021719393230985282566331783061229621710922179374211364873163681187732762241003317812174172063883082527747923724367522842842534336988059072589261210076450685517439109970399787543733991387935582347367543776755914280689336157694964694208972838287432120941790478570038802250802377452552853949417610844448015616719157491153276971158478771968407198236290446368447036609800927060359080132794245687762738819521534514099713011792037371686196294912873199505397765782672924767229744413245897204484576826482132554810784509710090849954001700329766628425539619354686882062236735259901035441439736247995105760607634668637992172027003462334775556962338640791155217507846700727641912113830325250949598907911146320409396892871708386789376848811844861593941044597087169000807150386751938063000285500613900166335678572197064548013488871186039546768232029827615083148658633390950299689600396063878515390988182314279087430480894244895035226957819759494782593924983750832665832298365833497653454076191055969462105288428497243952132705806632605925650223702947238085680615091643797470846574762529648404201710688948813091642720077598204671930194361844738337802218351999064994207626867541469383097374433228159492371598790673630870976549579657744704402457147754329379931843939544033348895784398391067275132043127664073261067224587969481963383837605060933936704107142565287015217314212430208230720963625571853274324671630384110186029799841907718670543233719842006961441579834240650421852847105834744790380540567174502954285894640201253466783601602776203808304912065795477729506536637819480808072195096195904380226335301957328635565200656463939836773683693493939992347948048549801011500335297707209649662623226927664984213376475868398810311245390925978648153912408444066011462976683203814489083907062749261566183515682519900508734082847297422741536055496926183356109633189372388361607752729728450541094813919057010146908949240364763623147905746883193391389760829318655982320224747395940775201694643709596023355195159981707236318847109566788203427018282448115143553913696613955125987781106679649721772143103906247184724030481587412288774142864974269366174001153496993820169390347162052586416127438022742875789033880647673397789730314860092599879912941414391422610147974506467511315774134126565840792803443642186138794676963476052161515968114575408931099139727258335909076703763525731960620410108830043857930461701591901535400098441071420376626449630811388348210386287512791901744770171593502657728689522868178746366448513170547008588839209046168788593389129790888629530101183899692830102308811876160457701368758444881239383394064203441974245890522841450008801060964870488600804644937252856966256795444348745805057002229005342555475472410774118440279183008979058254327853597224832644190677390855391903252882878172095583288197028777111924544744560641131076386529481171127756016500697726086524406116665042702122585497610826710879087835502024675116219393718657624149630865984778781738018972995258411885325641110274436241768292185132464140009602506301708032171248986933176124156959944985018761207093559819893942982977608143085406721631474876954351819008529941115896684241445192344985487980222874389953356395172549372357271381715842204369406714036091557598568481504558179610473019467905307247127743050131477154017708696984319052989808656849921894877893744369959736372412199693186688445288424463604052147601950689780630573803033707457700292442552428831190437404398953878244443130577319982393649726065792161742725536155848931561995274376533480117650662958290806393906007444360266785407244950026143952172226370324908126997980919085321934231728459045232479077769205487716867327284075065731300901758448183927503353205017603076795329438645304937586514202335094165779065409740229760885615015204932759646614109983772431592270095069715423599711755479655431660160441708847020387851837512747914834449962681511582304087528117089608431902796106405896839228444731885006096078965212459839865283785709081832667349892753868520191988028348338335327952937357297595949845252832617812701237619811778689758118719734720287414497577611285390858169625620058617014612673359556640672731005369090677766676875026135203700058715551495157789863831536745095503229976174149876997685271382309698610108608723710803888861395209611403769542743919609898182116943040808051191205411530388898053714760207851004791912630008878716158757348606800009859399686811294354886143995089842472305784131711968790951380014704659685708182885164764747954656315587663924160140805533208282063490831922871009124883783252992735434153711802885580586657356068028130205804209891623521580795941119999637129953238530065593783060706155569971997142924613225201129672961667820948982861237809229805972370248388344072122137556759608796614514790183552770244264892476375931859089512048297008304964300534800686643139019108145409061928146616852364648433557525965182920448200765312375327023715338792720437456530958175105839240553745752232476174435626319360633375687391701231875192125780941990258158226456858829544867747481297267989623193799965488393182051696578902877244852338525907813395681678842314808154081054015197605300439993140442474415413175079700378762167851244553935061269197371339121031279376277615886234416116265235041141826154373844863858333458010954682938947422096509821049628845122232853967719610853114014095426694952330495367889324049416163516666116390660421156779193166883309937051996050447292195826941318382640503498912456653235527720909743108069670224885055303996316175335145015345427627853155748474111983889867202111751389853577718712999550188655969840507849630956052410620655107490466930150023042792695196520805311226133850183509405849380713077079565578744270111989512807604782579176842730073557999424145245959439374816910364156834107687291373497553529764584077084792202637394590236062026814997528533771313516020367502447365058007306288092430251450568842082432042292792258154894472496991728929607225297883623442591245029259813841110704783993560542148908749819308234556827779388858370249315729303680685091033532819299236611177716551950276643586314790143422255674558588992400351123744560268283239530502822356355873809218802045509751280934788897411933521272731277688772324081437647406279429314806233472601396089182750383112808132227488120248742559079420201323939116498626708076426346946758953029975052704717291920517097825476721177983074245413445097003551074354623508898929595245418113754690038573806414494036082944356453190799834841988991774278772671071248396738770910787807781606226514474016452488056876302395730476001569352739006817495603415763641958654787026637854986229962196134512516872025692134092880410606240585225248996384313311849097398847095302149864654317587163461661750635214131275820545975070609516560891721993869294184554891944123851304252621291470253212721109793617445781401245134752874297841049279973257988646700401691750190664739405772438599449355797887356818995273384717542608251952812562877596671314012027337680399704283410731845285752120295083235999393989340533406481320316243459003658804952713776363219161272942603476850568221934149401934707863831992481563970501753075098416984744443364861120711466276104096369330849221324538820436930801778004510503977749033368378371262917346993858892874246054625666014881420392360871413682290910514153586473000498446929895051827408404664297762644114459187354582743452915595334312079943552568183819323610279431051759712272813535313760259567964989490739066643561417096495715651437250204375040394112745140674465104434060403390131186402674974993753355410754593398197572807056750691768548975804371666754384425107831872659977012501759162853625550309536085182663125734785832914237369952330142892283099052282820714828432713818278157708912404389701772157812189621803754940531924472047516045505830628506473011914742789092117025185576578338540624191000172961661972496215278142473389435899201958945500699270862235868773403728686547562978225975029105039026637289834486711998316837482411740714482848822770013080092713995727741799767602418303279437310314514581693226415969308593021297058796510614995207336215211078725824662842751462572098221073422133598594909310011414577018764591192655319087940646665006145376851358757091224967283793060126930556680488533823505232715744296522521236583254888783536092220009656136102665862710634441991036958923156351759897164923170326560064231503513785927994919976674030228870139639433139449095101958351093131643624792429192091743336871970221183485126771877238264401980988352665453579823208317388455529829027800756441016918527875784079580494213248599520335182284620011731426218251065819282541610157308281087909702745734635834937281905506987717504840068922371381452791698939279326985677590023109012204395653508887876643962479220988408370493697338414035714545304288295641075596041970293558047871310746670927092573368163225517270588834560701735690103239284072122087920930214215410175019106715289045071497828690427620747073794655127794835429779119849042654519204373591677826700313531984559409607489516875967063076454635472277519058739509750198077424942187417481197400902549474355830019992031689333219279444239142034626920942341303817705558169062472048560442146803992363993739582887094606067716533480095463695836871845550287426944890653908435333174194485933414655632784087072897946251367793260076025669808699318082016668055764680383883242361619248676254519073848803611139828548101050207912392647502310702117998714832012562542012338836594292231124527360817138055991831463660767844152205257324882644754588910398879911734049393811506288583197367943140774610257385819377694911584114159842579036286540220372384531962249019631298575061285794248321569454372945685991673088221460780632009890782696554852941158156338505223025133547126503038856151952649071413726491121831000208860008584391456250318254525279299470737569874686266564842586719469001497887757737150998316618556534318301304267068207591501180755255853568130910153353834403366495863513751604121641656848303948954578809153007194719327875179592559454949499655651487505659787175249327266658168766283750961901610240808562124700644834192528126454023981783566884856420143238749469398455718223062459000508745757376644052954823053473718232928682722942856536172488473184282442792972824081920185846595863912354187289613668726860528263450141445594656598981532658213180122384106541426643580382449839537737041169396666570253580354954878264936611414305166255781348212210023233218965833477003929574095214572425290607764796818222119310250215334427331314800652629303159998979516164899136645540873435853349290285008384638621707733949409087306799129915208730079816580134994603551183696712878880981712819062482207002944682371872159756421971076072744050967728873319456003964147235950846591564764429591666281129947588396650691510292579302664003966440828327964716135672395236568844604602888219536805205896474409061042973668865320387061455065349283965026248400035629350233921358347267282520970015893571600502466892150457601298929601787807607720814967491724373623797191248111688029291931768730665682226058360993039838529361076467361661799168409009114249476466854004509527052409328569844193360776385969571033233380606872647820444709415832108218179716521025968603526280469142870479229834956923836102335816093174031510830317117618088646668310084049999562661282565350830277476880447185987489888935435687829069331200856771036834645046223941626824408629324751614461501551494456959942218032258527193552812944696305613964432215603232633517403051522991797543710029563047059805842449726633033938794012294104043521105567895896343071013246136612012144485050787609905918781335058196412442305882168755804017310851211975323097318329276053388714961409192211388395588072046974003959669394810574069010889360804142919593251601190764480987159136737712438075364335780976291758867073122557996449300488443144197129780030545001394257835749793319079904972814675159196780152227873279078544792227546852347964175791482663831194706120597056281733763911668536826106249415745593712387148199735266198800411974749569388052530706167870340419641563581357359819627452140923276833354042380348748977610738945879371911009132000115896005368414156834363011088256700907206304721909209663894409573118324473429002958055985443838184244743860410344669832274258927894110458190802806726918663542205710663317271465260593325089717945305217640112610068223391151976474254431691793278096528687442146742039754421950270520113114508659248360868788608118002403493437156252672535459508673485146038966621988881593542367875171825232452365746089664634825754755223606407880110032305545947651496333803348068927975899326806513869753182667168514471891803222157770654521489234698548518239881084054549263127759270730087016818495212212436240568333613045480055777782442267184035906287291326886842445524315697783292063088554001691642837440910949314096452134272637568424045563464093014927734850130508984652457164753524524869156049262808849395563629844305202876216707597423749855259991654736205636472674694662083091167784493616239863721651241564462063231248588632734337849748133133654698382940102026169347665701337384451051380833939485055165686436939625507812634027750221250430182112592674471736335156450712025659019191306613916159580115619871959059413417108624173679350985385286920029895450003587854050951120035750998514780646345679965973873151276166424062728017085804825977680624636603243459061024634331536935092611890725729852209670344965740442233002526843256902268202604138731385575496224181404312552140210410059101989276325887244369130377049952695151720039515730276302088408068830079118858409614817799527229643155399098369307203574096917311620239802326459865204267298966299283334886505149715030552932412413989093945909037797312243732348486948301645669819987255563238778849316192324838621646847491736532050962909315413054400667724383905535934838998793193923371255071940385686432481884861473880414813454704235195543216932250428183530260944662657051430472086315582770981103940070492946512555590050191448056301084319409356930441962700943510180290499389181833047769905277921071847678450071583211242712157952560614777203141646888834517520238008121259595563599907946305932878592543671888162820784369266825025613014048990147310739673097115453668655321230663089333486643612602315324532402242902010287751308193716093850332783667802770684187343773839450894288865752783916334681397109875276097943875960108442492788367966430721116109625197401009260920320538339024382658086599151578343196601334017556472922194226309203890689375717519499389147044185457424744095973008582952260795012910609471716623081876516018204522232664732441143425275616044336859504146936051204484165500622677994077631073384940767884525839056290605177282991824303459131813855415404087961291745024485349142498953421937326571262058459722459704763395768292187908106558805467640020122628834662769980500749898407145930579558391587104512472795835872846541389181538135511396142461964164006905016040487281782535066585556164083400889746979193365783608727398112235356845372597464684787292300403161023219551041020154097216831646107608215876500178754392088189535990190521259595140592730136039162599478422790648938848095108201227984259576866735189564660241313445913194710838667521467649240013503349026833152172097195301069135929326694714342431396121817423024350379809871349443377071954612129678702506750902376673612219056464612181023282636838185891021878422556204999603512669436446945963394993247460617987180238314310938658672987264970665287672570877410767064967484761672672772126424170484049157688634568068376692639329797248202519174376126344216673429860224485692684897797884788886800043558364201530237580333012284360520388285610228078278301982398481477366713606651715681385162126670608538330015446438715114217595562679524282658934035678505852090172264651328746067149774526454895131030320082762613808923330760457312077061877682070749771898318042091309740556408211864908167982863933005634243477938314694622694180529105841040342838577388607538350341187307017829321747931164435311950879442862473519794864809120908973483425697920212447006616047266571221308930235567726180184823819377950203322847364266030747461335178095392290205138040755489294823167928713858108872089988647829652981985141063966268455747809470933009582929684552846910199338178409670880722768289724957433205403492958736241349219197536209690834805860545101325798096728410755050159607587530097966607828634995370725820158939195923162700282560001009445383355142890348366351685602604098924950669357972516363365598309277430118671424553613636782642337866113117855772154373817036581753680642884200857074373899666834105731607742463634337844241889599075711026959633874216997755401671632259990567510159482623428164317151433951977898744934743549765268105703407754589383134232194509085617659537266596946622785787079825694370496899830416992946697497204066751171541809907556360103172759948361102356314480666061982612068443248355429894903130829345029590918312995204501831269000738406960935978674669350857770321800151661617006491792141288798828573399143545629193947144958501245729491839553285365885043973901441756894562863482871507833248206182825744352811637970708516902702678707970424018594548792090846225879739646516886901971044956515597519786977774731061519342363098585830174991702512574122220056106184215637570652591167002170197659657402008567243978273672902605725953937294171039857892924386556796326038804780165120544055702753597206810825760932528695944872597613446201458465288397037236702966164357858757524557754401085515589574982094550643195269206293548943784674104527950472105698024036682847650445724456216579815821505920619650731115098358366254575670418629898129436266913866277322528224652486469176204491445692974906664084193043297961036092663658708447627296377750407077080797162136943038709711127981245770253234768049357144903643672985363360609747420772078824265880151718194456908507572366693634743980462337036424862901623950606450122794402081525182598608147493345560027211503935508833565009862430763705839873598960072114332698912479515288911227455981653709608850449677453414520091324458685314386539240610679936520546673126797051113821920097854586777909977445175322707972142717433564821235997170268721292023667160970075597874703231007890019068556837974975914320795743756603153337269573089305981022057449610732643914537146318130416022209057094691993909332592672357407922682331729081256208206075023649590945630710886693877837256214086816375492009101055529157801392449886072717437582906721987967884426070689587835298547909974379522221224368275782140682615689620121574945437353275848526261170873508190434086485261240412396320922678510100389641514981170463015141113474120582621551151110245715494256439877875124550262295095784978350198636727093175309580353224540102293779618028471892503775623955328994844352338251379479395781062574035300630251784556176393485586989077354895139481517575482566389160241614534292636032865564996399726391080334547196756965625584209611326925101728683894570335483115753550594911146351977472963346902024089714102291074088490107071533629905129611566171297737203709149323624897342837542797376160045593601526311116331061422639605236677220111779537335391641064745470920466478119286387748494340955772293218808880769795281855680990448653007627578248562727122566829597636962328070220116685542081090653357205278733568120804509856793713932614643668382546286014004249807082227387330546372292631951329396826210338730785332892548249343752644454399253564211695406967416561955018579833307501533155356405645650425026162708418840309395233131900762097892431273420795092836166967653954364048980276931044243785968457119321930360797890168459832162130818425022213608163474311023886829747765156549423228326126045504294061584876792785587055986236889206799891320738599065116689178793462942452374941850354874122155228509249502912147603435353144687368202622677388559398580227606147110216011128916322160209626979180767260826760332921687112534733285994565463223517683763199948665855601631329245834914126011156993976696649908168007498396631879390270990577132174047457610235212441037832432512397110648132607759428450156337058848724728586841685948868151172571789552575844664775212571969425695907691538734169443322461884279380163113349693681694514051436820050118678492148730994993405742884549807022210273334039951032907914473650801106724291189321676727555435572690340007689228810648179988114252300284391792756033930023206354009310129024786826518056692594911380385029870411249292234199437185300146024361254493702930227609397687210983192391572128251723478973652544708908711846114884673982107092930907864996106380414857144897267155788558308607148526356653348837668046886497226909542931160407184777977074242229402032389491798035351732575127152155571415704592829077849942747529298094766840570545271803146462333859671622795061788147186431812465065465235041953638606806264170525212693741838748733346978365960650310564939385748315650380669029053612873304177475171594533406947304507467727723235958279799861118667860852205351645895830696638545513728753853029577096930513223839541133567847589581433144250117223876220430235031018178630686019568616991332802006273472547676440770692914746877440471787837118958397313956379554367662002731194648070507662202666631282825761684065595083668476015755485884556225812860160920471844135874093212473668904758999000345517247328199525893914321337493001512180212204619607155758431101185970773099117427323181475630230040328676889945028833635027998965518781550726926998606309114416689413867976522289150145347793197798278126047709893335211810288768509359653070731039054659720285225819150106294258455925961678657768546721976111754451385674482327104017523574597301762443873128445975457944979550826632657656644837774701916839598519181635720584733677705074351733711172477941405372954484256087120924058374300329606742319735816262592253888528632536454063016616002970268030543297110006602189041452187486363617236193519687808864331315533499706117232571387268523567815657781449344617217865326443125991021121414769433354891341034741352823855742612918516614267812966025952442011095931020193884186704921904114881978514831278980350480754754750626010624349574747207270485981873052277107738289143155583265387215349339463121885956504331266257178819324712655760030862686312540898096869212533963988649601464456327035384381726015578960007614783962135269851641000361382161168585065113819587593279246730010847429371684258736803786085183107041125634403009871388152740506463903693921785724974559331267298245305143589542916490438323079442255993550787985537102838688299316415328474630142985621691929925816136637051774671793700441717651386959535970969602245719224444402073653149228891416686116277355368717089593952993052874964549360233472549138901837941311594252398583184743870799161192106360704895571862590683475635372495714836558073479491326823924786299634642518800131938638424836766422716149269761781529241489329973459033066657844535256365956372721300833015655676581528282188207301530712197807170665700401100870655959198960155768847730188113753680600227418407053372338370105237630594424772069413170489599536433609677621622101398638810920497094092208930684828781120043140240230244718563104957142128058005070811149015881569828029185637302012945270687051777295079454129872918867244401917388894489261089068177054226833355407715550083991988857036761120957993688098414543385481578909098658152713877861566873985454702266340776051000910371478045587244623274959678782415629457848274225758158445312406884686387518353725889576943452833372126470367861616885721279244883004325722210564633456749290945635410285024979148984986807019322660760827180911750178151781203766689857372310484735743561059596111512521791953547578506634783928822645494965423641024789316645236581085739335711678109829129888976830570370658038049937342618712812411770347152606832793086596370646235166348519837042099106369377810647359833771445321562015248910917802168750921953171663569981883801072587191756234918345190129812544038617775878314510993204535072340826224866505132543887678574321114367521152698291369206770276788631805969478514072904297090458231350659910486138783420839800297569815182117669577306292052365952903015706282912811615440662823522225663737503759911671636809207804885110015159316266535581609495655779099701260572671003593826061816181260857176252827068480295528777395512443452874684158075923840016881490283578268790200490015734568610905489027717220494663071854791461452974980580426519105002143474338154694574381444991667281267771965108666203981525909187141891646625523890452062606433227726000582415427189371595444416583419041583443397885726833601933758364408545193970081343714555803601701929781076036109800887448576816855617847914923444875827734951094072688787850645780401710620504795334902610589150741245010877454571301389878848374627290881920663583391139144913634041312616131360234677993186574946811959351979217298735827120771125690291496772338898028377479758977153749940760243829760924547023423805044005341814299502616369702575094534865605272100556353956500085639463836940786369410202986562450501730036097419546389246205184152611688876272403031987172568832355823738009234766513579224065801832008771946707509307358598943993590025850822153106502388017683117067925878418057107702584268477109093435254761668058771113000184961290775698423650581500805903495850074302738039252755568708347146346384399189037359267951734751295725502039260123056092673790960329778682994700245286451644114905140810178761767186979556660916264948878236198067227815565439587592681179052034699054632541191100417302801406184338474369460400961565876760550804772664301654117024271139932978635976004593693053844358822667429688503123481819446706534360108300174830634559554291370184685559354926834176184681649368929890146928678103096449662798585615870293347709387714481458712038531012662724644879857264871868638578911570920678209004376049904470278740272977273783880334317963809198153624652009490184848794734955333392616228594731251026900242804489978822710972908242543874784337293277806491627998343756568013026120181280270463572924787908638969899109866331442185619288598099404348396571543083477254023074776707694070630871552571835089134000347824467559432596271872459763280472660524598531719854068967908749993806762169558810040265936410664310072507031167408949024139818025223179801007228573705718554814183702352084318770945929176088481712171018469332411441480308188715750103178893324695457507870515194474948099559575718224850827841410730183184936957165845100497210869488629602158041432430507214670905979986461801416518691514103566803554287387805518607483971316768346075624905727935908857027941658709039153490842496998274942047729416880145707606350748503142153820285953203079998223293070570358248278078808249632994553117848580093690634307153091010661752675089589502761551225069204310632746155016188662977982240656810902345350151421215457896536093906559032500257269397240734403232316576742859729688765940911323543557613260745864112518213001682876966262861272022316592133610308234455158042738756132551792725127009877667574579872763487747619326253252258733980732277825439635220552898101600936376504080926729489923719798611041170768562072536468948504334440229670568008759295656767430712458239151875625649076717920477277938581414522438530472159740959017494875562159742150669527736435519118762089907275247044280191111485692541116240636032929008715147913007751352168120929256429341421210660971337453311444349464746069780688684944607987346144571267742211887581019406791200969805354264766398615181940670745238137794797362748919784077311335998709305883990887210231834324898440140911811196702392104093222542971860700492517496578049402648926700527392316883545329450364246648581131838267245684187458457431571165534895324256780118608077918311063214351310293104920377385867558370419114834576543246876908503029411333110924555934040190705465750001523682995210529984154401273145492336931008774539829449385398442689698234832078865359170372218557806139415801130232464656519177665313233246173803926925342361478155474661412098094800261888612000710971131547872109620833353717264481361664022077706903108846731872933355082042164864582625589280152096366594387304995854041887208716491656865456668445881889994173958461354089915517476939505659870517422823691191789285903380057054690903409482719481319734771479907821683674829008499047052099633684398604977687971730516117236097581401080839280109334128382310018412739107610334059598839940953681143754588501681924493168876498086721510722283798511911641028383772574001430800352194911426331169846390944187261152991311539814580965005932834966876383936583587802820034995697486415966421519032580584759765935667142372001529670792797428370231607206352118613968972261363442590769920119869669928564526567238621140769090944510602265692728277957995212655663823821689379631847369465092913092724702273673865816028411540150430791544663133931680030903420657823598788802495478588651264134113319655692619693616647387285462374030061718872564148529975075861186890167590448473980471432859517052542549901864243739556550917102720934736048909394707743360668881666628135367862330170621458512077254926223009482351576314333669823409760138754739110996839371072747219555541648963574910625300655432649073360047014057979403400112147024019379185038188111570381915097604182445064819823833747850474045972684131930280960525881775933639115480483680468395512131647880480798743900356519076880638284085077568753844825517701679246902709883915744107892278449259485412959281694481670544820424052137134719980301098834874509395881016797837887383259792347682805406858028544865420879530232561014952073723383697237550059711607692284845734379225424948566904114010691514286366420257501504882461941462288013880774362857647741055632625436864952491042810698692200471131598948859520937218479548663327289673061080962388789422648171438251066046676166467968250501349814595131836596704809810821774079352868241329355339687860021163923354018328739019124570021528079387814846990887501150298420304202026398824899844962672553710348280634797060999291597849629760558995365413823546565027325775004436195321533462110420671376705026740268277999207189469018065157448710683475411871178972800154768589112127277431071654632503070295335889129312925993061615806446459657352921130040890331915644707385197909636493789046623235986035324078418120823259663924952521833067142790489303537424415513539261617967504933857581401255919932026187496405215718256681431500396914213819383869561782195684890568111284434846388527988728453568034373141989581892659540430489515489055230483827995661505151773631454665484117376875915905607673504311985333803805745243411903677004603820775477643254690404110958768544519335732808787043764124234698531889820761907233556286902422471712203284237769456144379859547802435440593666172741412363237458943157141339845664525903429382801220293254146678479215333881541450100844600606640593952971509023853707067335314990049335175488251459788716564654966293176039871908655686665350083916838366367246858008980799933264636795741890399578987261990917049596126095496168941074956576935444793516272013617334138694026319468198032506258998225294657086442111293151345517623027977938405479083865695276777905538820341560852697857087276443133952662025263491942755190329158987875815119328234186974752749471265387566994593704025809211241644565094478148572468061314653440258624317798229416683298042547278933756526710838361890901481909036014152135986898899050762035730186614206966812863280834622792060064205527708932422986524755941363761923699212316006397860865806361060718443405899031998908227070175035029046606734258928050170124548593666763915169776827011448271880021940591060097837277071040803592667123457749117344370985957531342725778570475736632482513060350585811178205604596985319205850812110532702728281580367025449110796901717168558619980426353807770903450379689531125654693872318416834320848671274226870013370153415271880697098009575904783600065037751820142811631018762507512500078391601807191306547608020639873820162904211287210248317132730447237471345195542470616794449839837806451670155301659227175077864630396876330959343655761897785100720513673924561181047666591786478454176661689462637031468364563091685813150496676809201567710322377882437404762203531632047945999315736989366949052685489081672196203612883625760849710155304054631155956257126019797562593567136317908321195474972894522806707598991788319703736610996052255373544134526645555378065988941181258067726721151774978298398605126230505894603058761615268979884197818573969946560091913032213474118420709288395612967389367315705836707808839049514781838901652789771328897500393521823219600231641364997416649849794716529818666408728475532125076778991203432951381218659292102470763072804482416762197459495630886772383298061204595642218066897949629577768490562459116616680583932496957814386820270837791136358795873816283930755760002478470253808968739434102402625656910044122183779720637642644027991783564602948136185165812190243102751809349320573410311150025292235325585229182590602448458452835577226017473431680030838466140890543514159712886452214223752274865593259128848309374860995314334727226111464434164528375877508910756615161852839196460723457357039958495062183130003016199377455831015528153923841928155453007038047399490001831520881578675491547698374989511814696122142648422356912352175708657898143928801739300626171064062388650438213901585862189466701310989511379498125389349113865804448586272057250428059200705991735174165704512866120520654145186975890974459759306620254240154065172891222068398208285868823749852340961604042152685978859485038982115298718168309253666522426573845895141746440204464945025386282302966172407489258686422417439167736413457524367691178455118169013549142874882430771438875960805960791644326974000791852091162515807093559406734304773660498852383118908647955782734010524247922480532480381371613034777023303948173360123421083847132423143920926840417725893774794282348956857521541578013476687210358660307922633805288396706690266111046552424397091255776211219715509552203723893036228939248834435136721569936100620686463775455118360857695277003107540945469615612698437904461693010779753395669808448474401757447733032427347457360659507562129232007123224387986286040155968404540704021370432434604999334130470293349034531575846100245392377399375779556131662994815699728587850991549223716611478085159405796710251533590854731790871007589645583514665707412113899849925493193903039428952678409114920425042137368116374779621537090269282175653422746371040433390189339981853715564647258454852338768644647305756792717908127299594581997536889129661917364254342153541465229931766273085962591645200113862736507367137992527635570016468381622790307995359242700925166786129965985562491770961173334713647204509232822869615547644651541896744354249341487829325225057345730325059046608538723423685493662410704754720363346185273753826778197040619850557332715792282473706837162230731931188044538191346240305704629550318128647765954303535463842434425393623593941853660502938118789995358212549408421582537745509385459094886554816616485908132756282192555570869576724355789636609283626443461048987202750369008238745472711641416180602272850718241406793668874053935721500402163884994420725438750395009415680322527224821583561375523997091382588801736731992956943410786242991242608438936443819890518230011006438068065588270420732365394231433742306797841347366790337323817722822709345566180137930546273888247039904454937313291619168598326236375001661508227842894505181532682630015474247243820557734730663972012143955760829085253168039994484054140769311936898467683371397142758344659136849723064011651010534182899710921663434478948179726981576169619158752454294805918569847768283486473750592658848383858790366807728357635336067061768920794314230648200199366592295550561582280489359318261481145499564780116272770166499810297540742550257786485550872375452614368500330983003874754596643111569794292762104066971633778455065866933197250479694912179127113399808157373100404335194947561415861748022839226610505676881821479265059010645893229414898983363332796242957770155592603014412862157447091301841664521645312225499044226780766502887024856779879320073727938602573842951227381571247554063348123609625806321528496466077423549524220951121367434181518038008518037299482070525604929057976498204033522241539192795830397139042085596511600094190189644002998272181422137059368877958654204399130724709322956310354905275394877886036669681586875235042414453984957645528237521422676451066570403546212760781793269214701244540180760370562904855852044739668459650635014601085205500168871697320336244212922787370193127421697642425684895556758636762950162583116280283755042193249227193470347923023791354917062175672258795924027081498829520766107528257661029805672092100294362023842226239430005695966112576243776384180558646775615825134814002126041767379945395298188505042992183191697753819669921585450385948847290588888179506919758353159684191000246211653558094796080660078788210343828678716395053174353188869529426687227996396730030820810205020487806518225643847402985365561427652516815442722439212296986387490634718501671514970244494680952875929852762247494700165657132598156996900688253198915613792822281921552551808931690297672475845638375849120773609298669734782774494504571758254973003960869648514794093319644175795566071975618389155516147174397895157408500926131531950805055494171072930387050401384145815423599278358148220434115254227608433989887820268280983873032711957681330354567926026743019176641457316149038438423207014556310622351284965885142724383190584826195530846127808281362837249253646827678327365370638358975723798977446222734837388853247519807356318991142598675735702269319778724350797313741938364502882584983513249116495409562767527124814815506660257040603103904768746191107618055558480571381910221570745301652976928288834513905055282596084981087656210461910166364519780192010432987945413709337307044129584227555330228943676248250941450836569305032648189730686647576878267027847224059400642304866683546964245210605974601265662945946616005626075928856643492657531356024990378672859823926765672099748828820241986825427978918550277422002137260200883318614404001309457623983400033280655984430479617223909608455782639314794093333031898483724226066266375412386549799232614326689175827117510712891720520723898242908657450891181891854257641550731261152767989590388647031455266999458099036207793700235762194339993116616886996278134164884463933077878337697931510312783082563391399709625708973905596874187506606860199699027198787617093020323146328835800688201015228141751938968487939479669878332131645246710624071326706736355590634067085244252414364687370497704711581609010107027022072013156572371285497119334358801565225558906595469804370701620733773404675006507180636560653769598749032689589009194652132446070416909411040007744965552509005454167060482202352246385194842184769116940042305437052393149295515297689460113524731487009225291761752577028743277698876989664311890083790577168510337323463250822825976286697722530967489705907305204073221098461061201331013843193891706613286298677035794296495913003146731714992084790231002073741927436334976778023958852236518207215981844171716664357378738770770919453977971656985628678072183386097027343894916256725439429782037479797129979654393643088039257441442823147541664940255537112844845753855122666965449668804518001238174064720938183879279537945784069913255251058377531032594800321714553731773103913385072579890747640854507681088104797021416268353418578360011519697644406988198537474773582633441253861032036477869179258108644128167146675994077182914790158669071573039507283111572901117466434333823144564053112395891553495821470436213927349265025181204303929254546527212943179262453932560510574842324922035401093714415269419032139888331368412679900753164905679115651795896766209990672374268900169712822222984112755061298964798107933088785596600481099716129552633751624340992900312735286454678105677023283404540189850623002144280742541529829819605505089301179402932345452112283547134251055129387212431172319620153796418054560419349194849452653522414363718516382401276621610386178214587490353144987653568908301895003810809808669897822991919219965037593292621684956444435509897518222024951346294042529369791030848345589378842132026944519026771134481453338948531059519398744487105638478010274770682595520979922040306771938272920666187433732828154312845816082040549645788619263918119639373327267352210859474121540612942154091717756107777695077376755956293571766113606363201341186372406082405589532379022922089512894793527669219466725057497244292661942735480539369093626168051973944749622837106080713624206096026770326628652535420123706293891327713700218514709396890908956461605403539833134782811468428959124234947419507916787135719339583363990650355197776474024396529304815098742819449408993265686989649765780310266290018582827780246441834506348631890238709290976280696186304357950402582942291818408831324866841125793430029609735460784829149053232046076351882820987816799471753021037039777403129546703147854741240259758173150491097453313189998556683111602745794121533154702186976200806258531274580075723155139176430509920006126052048879666965691275937595154938757545146343081037876275781365001756314174506177618034279144843711471718454210011077719407514834928127146570863135488497194912722424234948750236071101219179902201004075486361361491170002741694175069799346835760422637142406285797362895718961904851013052850020214536510084162716171023933622337545926199988277748640182732936163298825590358412924503263999813967017557001333853857571225308156265884439710521553974910413176315338811123132431897951650452269612305042093287354530101820195991750782993565850716000040960480027003065711800884776692521656693632569868275264189994578855231158416841114994469834224813681516839559359214874729135866105208200165161411453126292880758906484218211923359311445950680443568980578743307144676671154535752888869863333940936275400751998998088192050958295281732437406428554097027987991834239774064114288672752929467420253714078807420752450828788257228016099366188223823797655207940378842622880431702349092636736801053892349804618199191592039287870297478231012181572373120962319188251075098010858351837567301893047138575008299868646233417691580000881966852232958863903282782334084242323080123648754850220647551456182514778795589328763037850362242493219617607547767562422588606294649887627774546044559313984504325504771012755453312708736805844288328173814163823028909810661641761152401983331132594773490031294019256788711055983421280693847088472962081268293456151935590138152326294865284095816734030230152878754626912094195566425116855943891221146529387505906190296514406631156515159590952792484745422625158565226979068916138858369090508495098507874321652805524939528712045818138628772210859573732194210468935202905809657272535733569858477798138656263661318649068047017480510487378213118399198574412062263977150739915698220075217084109696732603865138966535953680124345357666195819386281243814672013545308664480772380377965234009386003074185889912629729923292772587796218927938573841312643437601575080932813107445489471139902695335007002971511329920230931164590132572074941299426186529593743995424590797629994287348957412460617553877236450305877902940912999680422185564407025181019210598284045631997722831729193559820830880402614717117696284995752972561677646041836492177784827659662529459500376002610157813034496690140287176547901493072229091353736551025844334999356508661118605979987095625453238955338575963755779513082206753190696857725352645682174961268444801951814310965068144005286420567025743005210309605831643433522158563773901995171189861426717194904428085489006068929211381216922947283433863389906217581669009698065456189078887525729179222468160357591426654964892803389814199550988848127556378435796906566364743710373593086974187285010778253396990748442165570026723627168504718286962480235097469954571862247851417406060322312773123298816942738274451040267687617268873600293967021773286873861516872346517013202576509451792420264949068538193540678609058593184046474399442940873624763752379657990121885473288446056053682656282238817773488762658837255613957412154176983561513125624580885284754541687432255373751182988282570196813245292099957054629894500172697473660809477837121255455361520010929557990399987887422464113589653211487920172387567570913379972423859202005471385148487387070828383779185702379068638791263306082933984228233401795026531683142107164212156357778882202580184760021159813283382101201613239816288502452065819511202835211033878052651021200921156719715713474136340680152512514189125596503702197521062501682138633650221075909029155771087133496408814650772017025380640590192730256415732869765571989668431587354092792030963981383981051031199156932074668215311958856064547139393985713710580544079065875384897149904448011608937928982355782997629248116649729742743426676691503345659837369844806188992562502254989352410384602819766336168972536321006258930244185464757402815524655944243572085822145343361045349371477413897633500906164262444411384012602772970673952414283573659935436093558733288516649286318420929061151290324832153943034516042490919446706179794880437438681672611352147752035934871154948280022103408140349785366788265926802822367685382407017823894577792292625832520037868080716599504217225300269072615539637576392018824539508431596911408819699858784761302069524969120552383449392606898280232028873500174208069374104196007647425340806050097705478034497849753090589967606940566868416017401067508801961474914747433110482762129097503649191699029324897038086708546217514036339534404804334494391678264254548367115925465809619297709612293320567223357031102568464990182474649353209122379631152300991327489736165009088424348235600876275580720325908496616169959216197581368073888755040692326430440791545446735442325103772332192862893241401506425400959419963175612945445765809382201857324090928338995776131443128793347302725957108031208303527978181831980798209858231203490432253125850577830398927624078871872133573891423061569609717903644462607573630773557827802139354024984177008717993187610409677131663965715432094582352109754643617909035892878804876274991363888570275004432674109309325807482310476200442409800062675168627708268549121723238166096556709202180474781812100851280574149377502438026973044556832737415615818470619929933911246429156483099545795199379403115258936667686882330205479473495892431757842910836798644225201457580112980905501208768268199402417432994583628768118814633863817881212567095973954064167993786809593536726354975140310043593009187233141205726940994891747316765630993514876870341938104545332589958060933615735309008502026210334928189248409342876878179462864746715894852224313288095352984805373610921531694522513118741216563142029213747672844666407451443079863400120360760589918525346767033951070708879733611030125307295010079837146711650495859701468295388615641623453958432245279381475527278362681267298618374121545016131697278509373130790357218608462705374031912114868768620239782299229099535393353865162906745562855943450243205639226341711664052633907164424597215210772599240454422825355146450694664271128590044021368131220705488766318122961679287082275082978908920452154059217329710329727529993270691120975074714893695681126006614853114711085227824349423154052707925951080816324560386868380907245314691863701917422647523226057864432009094812858427109795131680835283019409367443281302142259053685905744954887338058946205619057233073597275833471798695318049264365168926425501898913586338637793673214527911423001724441337140079618991554468988897316257982201043171837132118680572484833186373354174357736057116836319289240740341266117131271247898259990581522338045976074295379383384279679986843865376224990985579112842118557259087777433467744198596995988526618089725057487577415474901097324166678898153167064579767065639009042215810432707177272806072625897843183373387734681107222898553619336311046429825742885570249768952279869680774602949566770978113535550503489427768446812439908349834490605532690916629830199388436179778108814664059321105401868052773645131755028005450748495473922803477241450927599353751023347540906914364704962165146609815109680726206609386145763774786228698670984697721083229248986355469005204070564458669011024885892470433419698520379587836220803776855066629591290720627992899976868984887693928054097815514707212141621947239089131927021710435596574284080910793982627502257838703535315765222490227415193680854186494502003610529423732680118216267483310416438123274540987357618749407435750320233649918870919875309207625863782440105168888274544515244179270418696815304273251866494599580699779306386646413185190618281854899286730111710762104058376867331239179555092102309197542615640482423690223127957213937077735881136376160264042486715342493456312242413916302982711921851705886935478535873946471665347149102184876098691278423932964255230979111676695512542234450094579283880348419702987338718912131803357378880993920251625123157225901167765020617210128002372435807182551927312581880798888990891776739801633318868829435509026066111010954759653078273932699611652738885349885185432072340038231727408626829195163688278084788797582294088851391330426135439381787011233580461428674035931364308338835983813380932850475459121434874959385281539518299261368218009427021799888327447038392165266752176521035153836390791160537549792808789711460383137404997535148423666409067140186620840173748577574277440082909438817929642836756498288649055431587564156876968758740935031714694990407957241614873296379151281026385552694978268377391158748768033156308967341027122360945118865651124146540883467209850486263425457400073687228674050711918200194938198268832586781190080342729469061152950387249984637437833035562185005474888618260330784327584914712062695946842361638505473928593399050369145289456293254078171203961446761155696463284580538206953489852935734643915087118239099251711187876675028165405261972437200386413280318063733475214875023933150870133807288438456371448842764534051745833972481145113961188784994019917220459152140439076359982715119895014466030184133514180952853860987752505700794119067328197147712654179648988265203017384940450143723326024209236984326581360734943312638598639611537751481938469930032423220741133978694028315838551964514607389319642613227927596865078400561203608167711829479507787373726246890286623626442917491908538407556647606403307818199403897358164497189773851512065829214715243970156892174085804895666145929383546261695172902913993574788257329226339273757366644106786335804009530754963665117138022461213448590640553663452241963968045562983145659585369771842366964042794016329769995159391612979305352860451432263627322329182782845930974162463374488089732777978775712674388014148423959182609495579311384464346840406768259603418590646443972035069175431922715667670477959071390897986322996332681637304786957040201083149179417876894193595796302918417918417957090899804438117929269851288354234049645100836496017745117277087355397803010248120340115862075391635717102553953735884491425429432582756704334593737157840795328374785478324162324156011279975003174111650215776116385814161930380265812577489048994455763083800868419650386438834287391103012283195942156157546861418602747392618757926092303789262904843519452131158992628015061697011446699510664195790918239241307219174996178919415218966178820657584217252481975327155289747420574689290523043431643750693167784446257297329177099593924296643472566342496963626657005906142467860492163591363358959099820998801073719183423454374710902430058244799491088441498823612933725691899315747854538628104036155989615987389099947775703812074143395209220579608000912203095525481155751241709446361241180314327192349207396037470466589388735157093482752725836188714782214499158850312974553239009331662098499223490294205861837927082799923302502258593292539967003707523483090439339704998998697174139442243253862598249386313642552962527002090824650877609221400806063017543487508094574322240718960173102835499845497804724142290258721568360592467131849575724240520999076846877746045358463606281411151148949062165424361581705957132344042306683810004323114451021010925760693324280054041356748957036313241802621951038135599144108322248456715662143664260245706879792373952554469003425201630151017944684687868457827167880707053606425208495105743559995320168955910416431004550862236055901321958203918089678876944461685250752388250819916664581095415361757458325721791157138907145151595343224176498844959696438258943048376650953286888070478713099566698392316213605930854234402801001177065169567887911592239302820999015689563132396762366777504081216316573271621728568410483970249585382422265806959280627789511916782267111497598722716180975840927492904242795051932146084958332829030018194658000018492133527366340996682724536056156108672894206546688177811850442525195797726797843218189367348188440152825788790360720087000068297486132679062778736269263053309079549905104816641966231275505749621236001740357797988977312819936826296972942637468414131037590443412485427397347653717707509534309280776638219875040219498673460250888732982297546859415407427573784436935762416497608451936111113578413029791068356414237198574163376749671114676838269466955277221605273401494903195723329588395384595321763195412885447239402637998091569047458373454213324053692214624889320754355591095652461742679254515299129393052825737661928711696363217870598126526090049624735839989509016504077001677493856597051703010095255509227661381195128362972390961107950605589733136543434691795769558654067101605519657079032376726666824301169384028030548589886027925142227472155641454736159790389830922487102594161949763017109667037352460635929244292589567647727774499049651836054312020053133387018590551204409208437796529626199362783578698529547778871156318187684248822748247399566215140351957614625036452968968742251258082935670394356716414371293053719506868331730574572139921358316844757425883404089589413993503703877516400722031733697673338419595484970838416261599749023454983048690194426432043333152752213384636530921047747882705444755098219379555008422985115637039276622039137643650737661399657680794920388892205212147848609845853839065518871031998934879094438907779780144416307554138349320748581486857019528215650411537790977124178472830008199354164033695036940531797875874581255079908075817057785475543205380053477018020203336051092358337626167539443804612332897658855061794034982642704853649122116717209722426818492784067268373690980740910963540861415330830721145544641455154677955105201149449161725322152499410956007461150325133468614148519375102061880330234168254550905080389647529451887849124902965933598979424618707523948254616582683103658631020199045656249745673758161848771298977110792737181646881835546021739504609086323538362051934176803172130368117567064643715661546036143126470819014452059383474550379554900084549580943031699672446602758950265250841082476825055459344198763254536706247317492027170151465444448562016664009194503238959067474340150385539224055631898674469684645069234811562495596836033974341770167020492645974952186065797661177337922598700358279495120149137149706979516214621497488098308404398301667236442557869655476128621869085860614378680512010676138163102090819589159525022388821298417968498981558439128933763377975768302639216413844951931795759659157736081899407610263491999937475486164926201453805279005423311816362080514742760210295954835967361585867741091390616675792615450130984343620827194915650529033998638009279809699483894161050706599665104610954828276936879707417234555401873896094383517493174110647001344288911629708476690367597439485610134130934726957119527453310962425496075625326174540385645502628403504524019854195251827063258075199585218462310494186988254527651012193931704146273123112877598922778094277443169910833242385628024064624793655896296812090755211337675006831443808727185749018262235806976484820159735035178166877048167143448357379246815960963520414622962188577534136901400052411897002646817420873000219991778292439206088604095913264235041751851283245697500729016046430294231528151111391138538497224608551268311679832521215770692021866038960646771715326770252748917831368449123122870580139841130767774289143328079947455446790417313154560374602365914465925366526652906370956488225321266115866896137063854874574443956483264266228090060069991072685732036845429001571862854999029703984353576429594265610131856199888094812061105965636787322934462134164084221244957621605547736355846108235579922869709892520504262837528662538948584613890672991670821715899269898284730607853919851024550752469952366710333810132594490042665039932613500167441288017940201093269830757593808921967456806035661458643158927868123538171035349353255420102244982533369361586558732930294008948959988520925324810262647128812145316438333570248026637487426000341305128383148843689203261237003656500447381443592847441029637483362412668157244218921368175238405088825120784728962889245523233037949617919430766839940205980686169417630967656204908148847290530467370029937139748807326310823767319728565554692518791425424459141025300012947377663750332822541085686787730419830815676497441668697451832247295458021853372872121688598216213665839400264984415230785912941519171408979906101077447628476404817049169114478889026823986589234143941892984164201864350994137178198849105814962883466242784114435178466529567383499305550059257630374807687411364859856981379545471160907418061661356833371191504657797592522541297423829804175408892686808170660197460769579760591224801509752453025927179752547367110411679144668432606336163560134283095017988483796770230794057404792993945109773240497437566491713747697317758013402798589058196853524725215102290541229638632414943261249103740840852653042857749222354805146120910278904389562238781494177055207071192616150732607929273125581414441904216434822047415993561929303768443666229291426886810845479746179510982280200904298434318650274845781144185128321479267163131461197464897390899157178260881119703967401523462051206036353801131959453457024635870733945510794876294861561705507724475088147777328403363191315079988067284072565171802933267279156532992398019917153349791668362569128086671940642512812267626614096233570772532712218129743979957493110314642730009526497624478572006047298622662981863141356641408107666143420768659907193264676802065039256509188179243465715256540629877473974299606718595138121367629126697037426855858452638998982268550259375284996502574281675522523690390228175573894345422542120912742878304926561223652809523520458830781389345334900225139637163526115650895465183729704444802925768942606975948981920430845395128359478425149599360306942651335573193347064960380772356590940596848388896411975371876113052361124209048557798498260390326033186773745192572961934751809151559856602022808720738113149452922477009178769861737804558792831146295792286208021114399414649154896056811254594421616260563845684926429136652820279445848514815698423185075763440522443646703903397788831943083327484532502006741403353372079939720652236550598264769813833875682149407994261286913182612769506434881559672854492073456343570415833800882195519193493852176102324958869532726384143811975096020400964815271447281010702615625834667498023780011157466938362029708483633094554928322231007225028590889475500865236537739672327313677167254038212455786104838537878170314973986533268367933900956413683784656050543810700117444234649581048051085604318542748927512008121711784704297136758923119292349264107622783590792368789990769033563622493946750426767518294399400855096096720222136055012092927173649112533693316369481122245575788917044203186092374851447521250345003068051343082894506387034073243845704207417999237234763297775337144318811678002470254509045458698223248290192302664340000512423281659393674289373581310436643944677277191984401826652303851834338463001963050603636041609112159214344234561972648568336649355838031360921575206277527576643369017177204149546528768109835156843088534119821538471684492447104758102222698484114005980715298956308383689916362052023443048408540997460453085846758463712673011717798676130221187822349733359209440859552999485252925035354207702772327219132251128000928692887832291044597307880364867735621143161072757327064151267927685543731604736650999993204182899753548482545613454538843200490057939848541322666575507765061166894025437148643489251139653517448361984534741926966592496359833235510609874708713654854463385690365526915138912023422297538297809929926423739086287613478273147237391931244706630606089810131031220038807135108923761750266833655005551111986895575113693224178302824668568680908079452024073603207326260526046510127505452629285746308049974404173474756385054841616944662940156968499128777939880067573728438491194113385011246257818372289616624928440821838580486140965502836875279401876233528671854503156530852690309227541136796298008425637930082836870840811500560691366387195728170916804836474853591561098498423839566205877735660438855777769240917320471004174726196887284846371792364736914826417986604689735356148106043816373028710301100072666462986171879286022685685523518979233060832580491215467682927999480154742896742480913178485021004934998146825138467788659647100093131234330189261158077993706548487533935318180944464697789987207876676119181746518040203832263397721351006979105764609515342382316500069462785688977947514869606305131290627053213585312254309814121988602921242745683175490074291956719599813957823007055097936421719473597035568210468913534155230876003808202457650778001931557094530437743725842859637282638369956668324241815016124578880557746475012186129926180756664342389110022512204517233110778478733297728823448243143313137142370626748672625508716443142707677172831387018035942416125577951565285199726524343538259904246437073109880187405687181831658283387107621549040601647958677764521535766257984818973508409268964175731432911459153958527491112059997399471859599413799444674998898133895914976399565442824612298025702502671490740604529353692412974961794484322419032494791078446499715475177034792179540075185056574185218173950091131656996335380971244578627877233845407765485076893899218034895217865607707965393267114292056800966560065473019515399801692968142497400641598848873886326999582927348132975622825008732830327386510302811499062311316382647905207373696786907575137055334423504596792534163285661697873868056851960611430529314656535060177784032769209725475662557689335997121797182773656196496549650269832523114016343802639278092821893523853667213753799130181613023213511644875104137982559320681437197695121652899222002435246670103934468982344348635054321472238992906013689823764556148836463505674441850857517128102657947900693063375104116923431960741809333993383472162069928361953605834539208915613456106423114637708335359644907626995380167901375646520439401631000175068574044388521868803746805728266378160905512944335898359810838502573125598508950209732973153947256153965710286628631110144085526529456121175825618996727561396812003399714583501259066777157035966797258452837402849986048278572125992948060740184976357117740732712001227104174773238673407353969328126905047209921775987520744697137961460357331993396421437650872253960989248003234303777854287184432085276593200912905551014222409720867470610890048387457954910882147178734128567589371549885369875425318241662961290760074391820761308377261420523601512028308778437293634330066412295415533396921401407106448186675812225124562977386442745744849252323029330523691357741848291009918450146935914301696270782836262424725867697172076893975498839683247016172718911912293621954864783074712491229592468155086608256938729382338987079990201768903339640913893694226005134756711824462476496299937713680143274307503003413088277972174630723588154702650951468898410364453114388809493385091764701948216558791929970637149505717368395547828319159619756725450157132040919433079124796052851532953146707727348541757032540151571413439586068818320182032024231319507654293277777256917404289398717005144324564496754191947470433984209875792937606640867301138744214203617369509898287718457416433818073522008936310933780505238475445151358610671994366796931067799671980161842964632912199673676843096110971301131186223564429941585093096770743840500783728765862747263101968989117552127856634101971039028987943141616440063113644941231715341504324907960053535025041411455037501321340887551541093043490325585264262837377299212375944578443650078742744129844316472532349636630085133371134708060969118523645145615380828405739303101262615042196439098956504336255087475464423002116668497428050909518388288099874333893652971446810631872926863060072016032216064002356483820065310841710146220707744559952066853461341130959155214657451960297748848063993198674438991120358733881597074705935295010100275294263500554297477436571283657369671567933983742854459175481896120107625132246317965152646291695364987988674872353054957055363044191441929701363948075555518598248427968532572939815597096445176962997705761431188886159627958578416370155036336614844692554031931562403559455169685390249185784425690061530995908472456123185021246742978297610688371291716634128887676462813781202690792913476002097588636559320368994399809972343241580085098100416464980154007914196527098231864822802662828216878121801604151947860756486250043038177437259896146375928954582079339087894085531170079109054419998072099719285998975834052911119511330115451197037591601241369733060249992340974093373853063340773003149738366851118493330875372083191764245148941873331850458796130305907387104787285914224749828726693464113470727249872963034598188721641787561096979715589649274805909760624273109174463987626668175537905650817998204795695013839433710768272891012266254421029615394749696655219625687981769086697463157320951607846470748448470145695326053566582771281940973757938192474783697270041444450759415907151149445292321177146886368068221801844105887948173269259793285571308411530816282435280436067970211190291638175940913101089835275438719528564374062086362301290236860412533322758765658109795615154820722099241820829598395882882435679562961758299146683107249675589319253496793146037226044143567871941373593222574314751839253978754003380056858525529778387318587765979455999014729922080039273938804239374004632037200061165011618627931641489782560133126353164466257303300945844995063301025909181297369474520698564188005876875027893527179740167038640140816105495579112377099158611823718375977665968705337356974108541182528869346936028188972603153575934039837771391114611950697369886422353341527605014984516142540884080628984133629217531559134704161301820830697452269565924263958926330327098577131913750716113888478219673830614113552420927811426670842574507129074247265674438485879089074623699101711424672436874537630048968926725881422613207875477207296740200993721413188109562815271209009365911313449379227176406465073188411764731174192231687831192173742006526447780646795014434157943449693540906341885687116702573386894281425922836807978568146321798045964984721956412114393281549161714869295672592226877489020419939533709347358444450050638761798608115427627671548646113506498109991568785523393351309373247298233518201907097375756044719764419257969183825650388677821635641083543176393475595192029650756226338788810799547647145895321642718529354912203026043544765110595890388595227182503441876105535042345347039749672543817820933472039424838331233021070911262130810552662033992244024748654432676055697519925839989021411526404569929478062138838901778388848961892628353680389588924375349226013609771975168054468879685963374544808568119195652084986823193806529273468227379402433756425888879441494554633299487903054264127191877478707940689210916962613702550791049321556262897551029967916027888723192683755452635286360564103179838066406421634439595396417057024788787204562923463730714659181673527704975375092016967321225171351237885086132833531709733507454587392032340140970443783407868910134945005366689350334928228825924666330725077218526552777662961957883780989986078031602993736843530399570233932970696292412581677229278997714724577577681326917311734656096086282050443376216366372507999598935935924639657991179346453050785932606031331251911740280090095531104794384447391479216855163352378272538145430388518488107368772340470274109308186231785504065096962654570386244371862248556805204292660620051742942189580691607618945515683307591181868208488273316527755310896473445624880195191646339041923358228479406315902983714439567875198205061603859097441854933471711368694606267574411499143893760339080281918593942105621934006429220635952391005554361049576503890519448702889640254742190075397264186384787662950798942393025506406496925622657260533647942502216023351870507512878949339022313553196894361594638906219785284242739219866183202511962863871219738893103977686864952049106033209611476009182191411223178204527704424112417049590868273761179969262652685162456129750041096038202210928231903594767284468804358782112055929401003771418226831826033743817130650382764320054488758968159008507184319305972838583607990058149090560251162205219746613595512907444608322931235406708555059257009603939144000631309750331269174245402296581579613867727877992226250017763178700104337070160847517240420895407735608406115119024333584197915147736452440175303363302485859671413405308364441668672364370118607255847344362350386867668348520919615241701685488998483398674103583810345410047330852848207064105522096876804020786906979878668917205371358063474632453421427959487236827176862875359030286508404948057114093865226946030967547938987658581801410389905408194915905893163912949299776885777120099014174691060139162334859806999243419457201566295984900209506720971639181318162903842803414625140053037732531799955114120884323024070615571410141422870186978096242435128250301404616939455719155778498772593408027027199907814118897157260099667365868940081112316351304680703659085131344844019153073342600449046443960093198971761626577670907230248131803901026798821779562334852770364259835768829592684174406998365564680905555056957835908100886684822174794156546779145130799853692338510098690522559166467721056234326269737165852203352062244603870973464261414795019411662721462441758687876045724728932148836803065787046622253575647263216816918181990859397805288982809493341372632265178051060126888978837167684234159603117544075440391550087291144578269624556953385525942295566818118195989657304576583327961311198420411451814504308539428608380966069914991167976620985713054022559361380738162471941408669753173211808501700439783677449527777609882120510338751118322639467578856203468132396463858295408982842993019750392245654249438928412211880115726016625819163436798287511232323326151571166498280800233769570479260158006012444908064187199890806724322569714867649290077884656554462815807723839881044298233329691095018022543538373564573999442563555370435553738359809506829885798341406342156325728108942254875130216856456100543275324539317385639806771920624199176476127542326014089714051573220166707162949015812873937035457320525016822526880975287268513264717995423019151463199003515182172116273257906383687316852466478660336099378350999567943889979922528256577463430809677952869486709192999673506055286054952244048523048497159608539210697362923177793120390498616283425445231516818556992668882707440756682331535547835916542971494672535635543403490121092724486594564622474462181962889307242341532400385094422265978339595958562207538557020251057926058007153450590004777862199817926303778683960152286747546565350517028097518266128688453006087982348880807206722279295857181992554144199025036948265711134559524002233460261363141109516562393013031298927078604668585611892974486300734984566029648304634538230846969809887241170464601816634044192851585283621209470147096503425182253894625899491900419643142351431202133885154913189259305714757265082918331898995363561456645959514701878937807079451632264800691565918590071572759735487833207885573395168479791686165200460218815473112397686427458393854767048443303473139843553965881617710591702116922136657186200230520629335222665162741338921914893108221612328328012322546432192503763456645595960016968271994082779333146784174304455409541551578171852190467767208188228048225859360410979252097422679137810671367069524991711171521755799715979743766988587075326813678424909615561135376175167426057611299085765634685154658142155839690100852089371782599405193856983786499184476810586608233592537812076764212122454802425287178039640362056481468792369110489557534385024166880968316067999985049244564710107521507081660904378227277286480384463727886104423445703702272488613957336471915964385503901578721193371282715620677274076608512247833814495500358626963139297417552068617059783860268510019642517314915316841170067662988459840455686791593426823854152460367881639833033372871903039363267928958506180908081775774510613710416724985039164126285184846429577427740455025735422268954989213966704355792251764345930610597404809234300106977099631960151233950884462757569702572584369584213151443040953683313925155401487787810390337145022734203103953327240816418791391851190148590387614869501884764926823004297699975796982767610648458570099778090157505778032059152209228920619588733750420373846869811846302861983600616597500460596412274981474400038867903802540269344999368537539543839849488029706493366797731297605095373254062848362461390390523036956682233131992483437450661155944652406699382076718346242665280310634215505298088869018283146391310255729652162004161498330461631929139147110815818077071560057056134207516883378301554714112443025090738603046998526738106122935786762667796617045082784016557177762822627082710804909979594699313793571210734119999448640859537932433494628377886875526614228523815259965799381332343421072677852938578780757102264439522115842383230983018564626380417572147762633595712106678630181145071569383392925947293818410835321442479167655828889268665475387531738378955452628701203699169846694819871994615881455290411985732079980635173266183151500750518483160422926061799389574764719942667518245690208724990218975662116682456777053781834111054322246524175201101630904166649856322747329411628205606641405820453766092921216413950524071678518720583373485125468154716642598426115747104830826982989867473334623201523413041987113741257521130993721442645932202718441613200140717549038934715855559761820699139204971566167656444088978043700171114600149411578660829882745931981805870064328050401503196924607367214150260882020306715662553810213937444947998156604159847937070234756958356928361080777637089415421215343419502978781713793916239035526220126909514243334288553983650389557887326540121950723601564624962107152005104245798953771683831129947404783378577145563929236982203587812064794833540749040164470146597813821419007183174412708557739261112140809228993948195752012781908461846877325547255174217998401661411889021116226784210730664055738038325781498109811210893671188278396047325884576212972453833256831252143041981449934098130066442904439671518584170753371451527494905831312026166766733429380181867485406023242523201849145484175648936009246391679145701905180070207166253662050294505617965082705581858862400616380993581296057112551972950088552060797625843914012274524507351717263932091607379554779204591342864197099202347439301202055998118872665150349893453914131718156635573688331235841812590533320211258043275926656409882105773693334596761929671714013184682890459060109874918480758877572545753511831000569199564234611865419563808294617254037912480404552927664495374823915055932912188784018828474584940463101080102401191860767312960386119778102465953621411791781717435290670673001004657395868400748943717538787987754304091594910872786975053551865327861539855923258545040318339190039539938668588756818454843848767374021860060262025738915514768080118679943182744159111946319951719524832628867728800811638952975109435233426312250910721579629732797520703046736296427283846472454852924192083015078657184582890269919594138323263453821605610825995699686876902802037213183789263090426680702573387145100948767633880773578920290526225729463368489076805574779021001522506830843346318896388132109133285509066633474905633055952072375035729719217808544948410611318163858856980901490657229436533862374687988552689979514698891640333757299788141172340158091159027711647436666958660980721032559539405825438977354669692421693317666398422384852003763198811820600617019710949621506539909305492775513986425945644865296047662609882530047295714984159299256070899932604048607032664342052509128820569459988605071519507378194669717614114621793873821294384719306775655177053216438001687131343450477883112065934922777213753341032311116253449579216765704274007910510930845059433650863895382901873347626242566598277594364577136043380847426963409685120373762993954541661032061711002842742289798383287012959598030871268156026706448945946197787991372536805867102382027201542426471630396624517554939561767450156865070825824562107537763490017588557811247261556491434777529114313986518226944643953129858400171305340860721642126168646414409148144930799252211007403868543667874067054981743449531281673997938181151481570136593773501935945462648739022153049581443758151591119719871662234225156678580680454370167607474744281377035963876737305338265899567386154363922327540831734896146044202168590810149671508626866334669609496944692573976636971587038796559538926029198902771549885244879324994279489589722450281470989741527675216339429144715656348292081102868443598880191511017163049400915147284193699073657625865443839174961954092141765394541209380118767554382677757987129706040885521885819164320476659696858600704923724576673578754526035865239659527772189313967784681095387756755675119556410986286380664726514882148117758802727957528397065032084211205750262602214445765728619119070216781501558156479828729162955302898750013446713096281622599695150445614049302624452980070387154155708458880341009333002595660291264531021974821038639343347555271201423329065304947538884515847249909097948614364560402286997787081904335399090723115624463738513627656789026310740190579856619421608057701198475087759830700682390056995225679357309047658931417097091345023384858061483515246381259506665442857170729514572472558600464190296236540910348926327671887946664430182218135277293385681590227450623826058065971211925505287099294565926322872846604292851342843239358046405747305399387785453158274010029753727901362233068475419078153183695140211287311272239922871565139459110816867828987565338846864645551702961096702390658116030728526414337049167732211729607868429833493196454507264079589080144539937814620111243483077440581437792100493656486542777745886191954818997373851681484890584599461381074633168097081189768073465540870324438035994189666929514940172986051592192033098601221639942682457574563353363840072480598963685687212874025812418486593493574185700076840118460870573906402601411835047388304981665431954021841580110016419163143022381097484336753713419902294819140472025127779531303908184396429876807287306145227501250780465330790369519199808141204266559579037885723434698856878323506368670055625501899861417525597993502892379172128456528664899060204625429695494354763687960615748087696893204642630683362701487346772434071308286268555222124173229352246992238963847044126658169731983743112685776315376318031196565959196380903655658464917644715362144020111249628122444136737408757506364661697187625937081010296559454125358705818854520595438452229341092906661499970159911834167386939469328510554157907082378147203387008102737803455546287129432121679881480123053450232394397053562004220127121769922833555889585847712547688276142215909530704595611415952144212838579966097332602392381720762494134801627878431392614568175390800425599959377719440493709980723259210106115647749927839737579162368608690747322675079135879006964195000873035771798049604043518486882674687147143987913520328564549970045219603945202776148254819851343675043139975958824580268870428268625983144667269808167201728818843878045723323555813319843918995815435931981679286388829926224957486922764851779494834363506264496716429404994841719859924896223546733816996478111876738209995461138452966255073059047347070265952991599898195929055045760362620617051135129304126893440178574206104839918794893126518621528042716589716666470973885182150869584730433534254600161377152950154702402594089486885410975457058037847825637753066005423245448787174557473820043540458258090131006954743163965398693895038902503962578194618262365959746123765427372944205285680383746631919751450683196059096551155845542541667831486861530497149296620571273350801907164422341078694304963310086794157553693337045836642020255485533475682463297825886932567185635562722541763545584688894721717726544470606211180646484805022572200408948784752893373671017956099438084898685513774578028404167685249649931422878018073954224204168632353678890415065765239690593716231455206602910953092860660161130570593396568846996388490880088145361881983843982176411603096483222603229575385932973624404133457584825778087670850515491885407417682106342041718352892146473044107122354302644296293770575446486096264550239467150508380926907261273354876936837607919226417911607125415122846105507047635624678238430155503482688342078665795075557361350129612886589575505195019956854020944023420899710797067764335474776170584044621674002492147381767772012558141004101111687216647628296499230234404725883375086563870896209211011640430541909901185576475723222245856497294225392805134173837964914333091899752282234716769658527321936082679000214036111606416493390269739775002196061193526826269530379243624105874733260724226643927976575320875984838876934112157032834178991598082386439442844631115155612273136434735793609761943550610086726574530094905646915902234335252440517631473020439521181779377523656309439332503705370938061028642203560172302812049101829907937812970102714531251618199869591801091441603470916785673880990992249525926212925057248401793805512315985472277754916469885202847090593280245628105835595081460851946964417471472752100841476289370854055982750799670469059143190350416916236185914598675536636368556038461097197385916642720830880995421179452483194420711985525982928643530933608335374343882118006497286971478341589642106537476346545907752211250066201094134656882380451288611234631543419857737820955786090847530472299643038290428547994685485114148601021604121884544661451475651029173106159584638674982663980768142032642688511007254020836469957860511553100939143353661761435320753811480411171867134634281942326505202122541446778359474097114537243680166842047763680572658493843091248726718871281717419411736527641039110647960127991440699744030624127901268224103244615314508676146291068401437015917827831346327739641000583693435275089732507026856310601001841231457685749296349243145786757350610641846269766312794385216507683325868707278021351711902241825184808405752382837499655550462866635567068245434047525421789078840987746788475003221696100408748694437253132215578207648661717392858354173860621416347403537943157505041811565732139005063556462960857885150307809437296650803192726249020693743700326907924298166172025212985800701831023300858152623916065208903242978825424546279818034560753553854465235050838215598884743024800504944064952160150106753294122313150489953481611041943779607859042386307363490868993511857772690573229730648251183562336913135709106058633227777823021064906664357935061886768916089126956638460912500051957397017347440348024553322952880085870273665075240791513388209005769288565971553553820105457792456477031636875474361227592462581540536061334331134270490082541680009837585484343500502209391577387721152119908946395269904187139394943355217333097447349800381028728302938361962017835043766597494823710254655058610578712070147814300528616628503005951245609469840732830296019651559098483145806560776501903753150082591123519998855693990813868631378984886432457876656440368095255990956630969281696979240379688887206463447990825850670920618114595378418574403825555684889627765668320834689050900016730634002605736960957961494525409272888761665559115580378005686702554206845311183734934483770409438422785977042131363554585816057384436346830738328153653659434902332958783882227466366010108003372856791368104424650746341553722571842569221679030141685952132919483425893586301781835962320241973496563013329031474890652399575779080113690946291091768921595077826470817194490742067178275388407085147256801546421783400368222452045194755037230849320827424982079907652013630086617536217169240936444019526460202659360355161387541749639162968058089496469585396460221545597775659511102497676652991448830757606840922133068111861618295455292445917032573990267231835553042399198958604627867325405327964331654450774471165673666503659254681315694436879834500433575756488884388812103028551575425205927819599601283209753256353221490041473754128875498743754544603340519233067533992130494616623252605563102025174386320181079830726950997774254100716266097283700053421322341477742956800480610343515240869797018378940860728101218136920541962430329266598186777161388484299961231893867734935058974613726752143186612752784952372610915589509592152795263074421272952069049833463782939134805068554578874432499837142009496223695973962860990635141127660059256997215262805824636571531289381972246585234940337688160061691069814180091141465323957410559839626173560230852253459149893192474142733269909113314379021521403083130033136264373167860648470048834600685263315316023456778307466597510499224612843549444449457240409242609170036174649527396579183046871069026331218680200895700009526533637987009487912353329966793695096868125227634779173749774330772961047040263877652693741342132098219683996049602004874435241072769802953723186779465336691581078487418670065667240053845450002882006446427187997280056501258430559196922635239684557695409875072360398333017159013527734134737638227894074893397754527100696325476439768724686187977183824470461809024772468047637919265093147202501329004906896342671081200878337479649572967021658280948226956238599988709259171883828328875537211539423524782089757581332407846470940454805537884383032282068609258877007955107820517060657546808292634792544948696076901867935863557371636545669358791912856008098926354577040703327445883698446775700721550527653919373589851621732721157822436929102780888500673531677856101162076982108788834519507797347940452001780439980215667458072605630870833156620397701611380144580898467492263961312331758580705234334462647925900848129500813590231345560095619457220251304456006849960770218875526964841777926869880996677782866434968225212617773127001362045605683663167737369007855764009514851687810418141094281686159604802523513996674189676168283503430122022031241048587496383062304952493733661581733375057427251433667445512008356628529063047068986671494703534514777238926694613970173953932657656185112110102686725737654118293954345385317766191159770022077723227529012980522893229111232568989258046273721563553210551212979924976657540367447386629606843506720642622618814554485831581784083289522812699652429106146008519227231009837033019135902075321275765729532249731693305142744746489611210831529884161606042420917651733601106129296184460986130694202143326604220268349499104805173274166300432104759706696759446486408781727422967174518281700532876910870026310866366618939334960414728542230890167930237056521802015340955754620962975782391801000287812288846555340821082747106602993574731521918240741638650920231572335123897599290376825212341769172698102956813792467736603876983807395503708037881895311851282460198946017184564666015366748669815791496669848838196716646184197067813678576673492320919037070562752795342275854487923847963896151652257024757749595338967469483421157221945642580202532860188544584326681692750410556716268990357913142503517625502274742499266270031216837429394233767164870320775216230153709252873286705717006206511031155487064485712147000713762697340948003988995145502140041317691253230636602623198701736700998884732182543159214071819507767888816988224593386001820149603359521775996934631699077765604226245145848491188267136874761413488567364157154649157019043822102363737626494961128627586020575124259318819472277742594713011437040536334626270018497816416979092303453618392165812475579828629826044494423957661669997200989431839414881588164391366960239628905529689046542264340404784104007676190793536543506627730739825798748863050774766585533686408236217749087619678478053983397154078134615986637601946337113649595508684552655247214100406474172959641114264429585645246333904009851027922700306749903550580948038101885482769205660021034998225372261508029867041100129306460336834564019728200237830598308377811311940474700443638694182996424788078262522840703023610864395880856109291444647385820996334108915151025955627534688399115188404564515811164081528092087481553184403642583742492036800728375220789991134102498940453596439233505289839309826660757384744672939635171894858205755185475330137926160936127594005992831853761681582101854664814620098083993659839268403363514109869770850480749457558115587499040880767205622085522911437884741523963414531662320315857075754365605216972910819316566271681032828683674251757119943421631615219109758022651565853446372703289508136579490140194635737212726389646433242717434090194117593198043629565496795924323972971773398164701441700022448705986719787338545575343357676882812035074754082504693312387298687587444810715285865639146246965135789118508704748260647450555758080628724999928179904027255415127946452670471287715020668256772061663816983803335881894897927181286885955343844098855642173807940211631782209232268659843576982798783598679476702266208607758312393685040879777799200059080413736056531829885539055740622241213771198573039180902819624240292486577568485483455192305545361951663776651525170088605870484249675489767435898492865579844992678052532184624651882626968390562456492976529766437353828020565050397303482365809465981402578457285280536997942107647125326515228184539319276246810388679136419928350055958502179361736399782787571816740459456424279705783359845151255957928829754823869976069385954801534737925874593005347575969213564602695862700135658623849469770255021165482272711813614388568487910614765058184617815360127849792886943633558821207036488155980966835426031018017553161802664958112026161565461308463423568739614185018047615080817087290563523389986268849386610729767446992606851219457687341127757285668202632755145234853680523857564638254985220236757193274738525163169333071966032334131668577642367925467909394233518946226528006454265920499362661601357969467804855158891899133491169841508340873440025699000104873164493575054376914785894437251899109885848453698191006852586522168978204585299348317951792403040449234578723515014897147047469316365904061959676400498744998392433265406121075173544118187570373382948988099536029541691161634483026894741081039765035996401638002719513245818424889109809840586806010342344388571051077113997206154733865254825756875005635346803787149452423881075778448742393544372027244489454811985176844929278380913529176614924014995455380805082806657410412227673472803348198865709502987724301670439654445139503558103282898377666324024167575676305560323344087432823696997595120446652117661937021085069872262273862649109914142991024314597754044460129153125231962973322822511435986088650798663842100977080194875340990263938116282616765543681641130710361792288150111608146576482722018970962526955655848862336427149628747368551019683490376443367923060476707657641859277970889162858662337210096672198812776256871235052643396681222609452442732829744121610579813175347858894899578814050304181448022329972223878003166023422243409594728259682719573657926117177006024537886000477988008929223659819506799567146102822672705093787638534121705607978996083665740393892567230772369009663702645281148479765659416693129378862445984657559125897204658645861466566579243824227667384000438426460008700037678378463725289658373467998690501581151858452656474325637908359587902026676642098442487983245173745033008364419003633200932043802156752305760716273745429019470649832548863492211021856724441333220932993447595215376508094418428521211291419994572930986332344592865100210876893904692855338621680753489774272575539535288449888293885599472997443993680801192902144712312997711726932392006285263229616730896346455930893909965870824994471571545690028585497602520934616756522516242566210981719176173164447881892372828320381907670786781133550010957180858949434644901778167102082513799422505837185761163863023630384229571906303943208103533647551711995422570776514085655035907316166431475978410107276428218482279805016502240196089159039145279922631980266365641900450375310889635771600990132057906621653550921780542545563416349777691731982563785154233535842604465422715742232234937054666815859875910126055072705134043113531517860043967445992579737650192860043648794910900146419935119764795077650620991628915776229087180055631038472873982914196134548757803377784794746235147154481651128650358251833761905256799401088809767344469921142932579333334118501513750217394301645753851664269400389657385260006410124901297328229342417287977910963003688090933832886080442068933717526647004072260650399749963680608194617221988016936167968089433244854402894246040332081532007961460482811653184295838014878039161762657436071608787345894296027516612134323317309545430542949657117418164881077669962334393052806202678564439553356712163450571158316150507999639131863126759325728554676529892792877837116500904485926015026053894832022919995177806094529598577341294044696491121615115427199626607755746666428263838288580081327147413873830605543772902073994294046957696714725186334613123606176294755114026884902261037613992240731143363432822262515220206052897433269140866154060858218132568491815910350153579197139704688548768705044406668740554628297772226149133895858431132438331940495833033760060855085378644692891017864764166373070179508817375173483176450812329263088073756652826137543562872240015438516675584223751304107321559151529828821126293165602708357714090840307138388359418305557154688597896174935736458241703904624240896465299826916520482027535440399840480427832798736644757672680530405420864468567127709112299317982844381529040451904708165206521348826353526237747719097812736429065053580566826339822897024899902550066634441133291240204571529652203096515128634808451947562930472378135353453059641907466910396212571583804269989905108459619412958942985023766794258446847187597856092162634936966628249367995280774706874843226511449268110112417851118790466994872954087780379256094960996031070509468194623451018077392338696267088811334545090899966959866493025831004297613437444180023885726427309136521392985600046913423554173955219156569088747907363825152893340347030935470965538602195288897799819481848112915346729111816602423500535935275155972712099947675835081935025011860104899130564010177177211511146110363834139863374439280678448767444646251422462134110232423925363816677143163681173318512139033272154081922846108008389208002998224482748909129338819807410957399024185989753488739193840809110943121141053381112861376795164045824343060671924216002304935192649966317045768317674526564693281906310638467778484082689867535620684798326711210215315200183347178010162962905101869365985584949544016022969458014609704381529964016874861246377619476387852084110530883887316122881391167556556814088840230077582994576961297823652254631367539663331038134289551557094956242204950575990966315756875619489847023765619071377052876010038470756533668791987722239185337924811045291986006558374796700364484366613576417571519200036166299377062723204100002354792194191784617813241512013961524374111119626870342101570939219144388276436526920701577389306205893730942953669050793005939182652225002335862011224581960668812012115593561057027106437289515609335437274129217040850216305304648479197193968794100994187263798338143711058968250694460066254913488545860683986044380776681399544248587840987204228523733280562943846636982131315511235183599154123257106793623499888468106001751353029486625843274961973517245903803398243064828640347483227493909284659120132559137994862935783865335152921327763003768480247078303816846435694784401466341126708240622502810293137931141105789061038026342044634499855620663873173217576696779187502393775340967135836277338938827984179594272452968198402956021091600761157144914848198002997957319069140743949696726324799841130527919714897568848372011218499152336607872685810937956127421553618612564195897243351423575385770366466554104424953472037796550051189919369740951293743841489364853514613667529610020772365698451725569839845221897476278113740642387022002298887233514528329602920712104421199228837395441772821007270067243066458107963123070476566061341757217638953781695951635584504927993628453309392567761902838724019081888762076114021745746391940124228432481629861057053366594281820996681339727730156510136690493471275458298737408720011062769686695852621747008839063534830630601033518436994715698920238418362968997700651204663763486682381107757094176509259370720725055287846348067461939259398881435875387449932507221938801896607370982883932017453269525616043584725780980379395829183313948240494614586030963103939321549001591993901566148142759938284616680609683784788855450419722401100431041169917400956748634383785085651621576559420043086725060649232772049430448661565264553913961754869226276819889530360444514936843101318121924088397729112194630638112876257404008725218890861082663059899112785302773467620555723479816273476887228761777642335898602025334240961126033672462441183315663640213706359796918440026501189906533668340356038352435040394822778138390460491229204828369218622924262264531008940135877943127391493323839254284651786238761272646434258192883185123933432673880825458352873142609603262655523659305588151553426390853866022133585548465640549894762003064367737016186845620273705075073872955120100122003370493151697371829977013463787322088693405682157883402484028486287812331585718421440880905583044887364973403081704989325737163289926321659268203874467463273095866728775238170854194549372891859769522369225220132239887141520280773896233328205106979132386751649058082056110860181536270904413648660634645481617400860001133761919570217512604541358028109788141809318572805693872187120490399313019555609103866239622970894922336083461490834997946932223532760962127652555499826882430021901064351824808603110639781322175052992885119999852688158456928901312181986581622389356407189615571138542278989044673955425518579707292294570776000838125700595796389325424189787328768463492166677858060073218944094188302082437142204374219050398417698578489020253459925505994933075208368767979199230397590586224190577762726041580089108389791135779586575738329874345533954870765731488815932801951385163762464332941834456057166445731915262831800716950619998168108623322789949534590620285728242344847082179030156533822774768218901277416588534620280393243831922565967337127884692266495794563356797336679364846199946486740642406916320028415589336583882657222863319240166416454145292969319961031115867203305493539378177191256419204585254574858113184096261201475290841336632637857927812646295187826334226618373124027217621907343512691322117949212144055997140611442593188593295268500687982015233476789844283391712811953762944903041559407788936000619182785629396616511657539906617480250875305066724478494388039392946022612999556326603393022645250643333723180731512731213286699870980792409497676220645895639692946522150521486085392102948066140144789504353454545970434364257558452574157565247687686322967762453899974359873244452307013951103242145008283847426853078899541434724453055227543537007446278242578485019870703378384611505964214324817618383089182617444497377330697859727627984620368947583469296998738049663027102769634463550378478881844370395718615067483400656207017355495036658110802469676274942974494464952293621883720056009922644321453799285295299876160026124362359495424391087773302090316041817365804894227088997194884796036034322960900430545307518756042076844480427505369570681724741313965778459400725504753080476740462211265725260648847785774807069890575891848630802886048566617181890733677061446289655692519075119012064516019321031836638381910577629210673899882219890880243037010930106098533090207546951673488188268126266506012546053309942989584658875339173730159988054139760154610397434850847762800979870412578589632464644544313399980088559760573218151591675882769233439345648085090603278731028420198999445632007272571051182581019860977774569068466962018572287013640883685326754204422549870523362385871127207374513553566066457247759796159017479014744303472110886860869707341235412605672476632752618452294206366206038785212942383227192659834364549617406034429484736436391957633731629921862851077263192797870414596412818180105880197775102730645033352869211135685901919770102531240602489221193187087868813979267996202531917022822396784569204717780210215946426600959428136046699023593317149485179358799576637975523487261181935597419174891690224326554577307739834160339655363134841911205573031696375414590341493974575057386416430694697380461996479235032594232266261723698390338099526509812228453203338238676892115395765702466098401868508438701650627282702961661282978970777140405283676984964743836685534161879898199359141831437855074245402730412895621093705789501926467712816950384124583714607083615220174151135447015305823802214393708278822740324994308396960113773932140285143673199538149516754615400701609369709819404745943890977872652089394400787785842863437413522020238046927724590228146590283537504987924671396973350348766229203709793129082335263561697877442836601685694765801616947484952670612212333369894015516050818958035352160335375839008449306082929214714651073502665371943022682691198191583950649947328755009195836463659802192043116017538749766965465948813947846787332221631764077020286020078473684334389264776828013882031163056119807453681581331646572434710425932061298356235739463079992462473996300340824190449277432406602674286212483983609077481796883612653395572217716370271522965304865986361471919293650321598459475446632886379583834690373166584832990000262367076142373546861851673554960499461348504538365811443046922098383094640607213650843316790145089561125870080483608421015498465438333462486231556675364026554897086745930175964499483879697215776366177614424799578214015742059602461906909784222635108228673412542959140849231711363737530793534805035383671384706090236897225520051214344390345414997044264518607453272210817600996372671035130759170000182256377258720757828593409237646590043966394971797564234206602550023745119043153640118995839606065863688404251152781528082549577228789208338359244417207268779450362420037907616689951079743652546119498035689230581755961238589190664718047392637535964446648058818407462662127454574448130588330790570381549595010975875285597940102699960418540749367068928759781533541978739774674178153362588154560783625277540692021124474090068186313540332587250711920505586416297468515233012731886368485949710724612764606710089560438155128476689466681485464644312465387226203639928160851039048108476004931808158770964216752608969511211900147829956266504904766397138363667893762213537492948225446317963971134633750360859730485912868866907359409687073992386265895689639673066084771457836414256741843298311212708798738920693358894800792149051162951273137444918489296999207640034996457873557240421010346396015104555763147568746147881514485653986307150627464432557765913903726383371646861386172472525588289071718492310938624574805144657648282144059636686174036671849462644322041414258454356577438226022541014608677035681270402537241923723892983216476662184849053856757368301109046426626738088914122774454019208398981093322473161147124100649790108531124832175857777630453150684492917470684968238448453404968352692543136370308964049367191931270801115237517130066409121596435461666936453720545973304336942473748402649442556322305831339925953675003621395233324092422224292929078308393184155945289751340608762869369424087022859693362316497136359635811318751412596585508657997663951869006277617465807726632845567394319649031591366740900334862914435294538144264848498672703554829745990700686613776208012037991148804185672078514878110764030919942715500583876942952372310186864680505661100517507589127567090421565734099086913208317732912613445635646698520514222871022516220797293192541557256835035171291533304780152842108945351071555800666637907826891192071039066841246236190491629280756789784210237706042099035920054519375655196709651888190418033819687090419125393567072562617840804072114126269074518281663019864309967696100105216283771642181424690908427943290955913112536109805872828101940090033834832207904546421395870572756452669176923674900121702675613463280131722364897866109026140223253117678344530893952136239980855046703476020755689544593849140142061705020138982301951599193036505491470054367512229439695048864357182493701690521421040430640385487296279537802656849743582245331303527437823871495878793059027433693424019962150135335516175144747589419372924660157363047414075675697237359977870419619821052948721208586597307733057898316589802042423935607757039394757569684669930630863994023928587325106339464606475696755620111461700199675794852335382479336737262635760263208269102078920814598781653066381789125352348154147737665980749590668310670384808348776516327129913275084264017024594475190083221295987084944164222419581359218330598801973307618595758780066594416952967882686541590241857996432113344682773885339313817654466219561131167659187897586065187189824166769867869288055106502291043264208161835068865218056363882625809327949093648381947795800249538721667926849853871719439635359945473928933963628830343338811465781088910743081196523477115354115178743097270598753205665384228083343268685430578841677189251794840405930569670779422786088875580021897507300623688466120731169230957898956891331401202888794017714954366869209871947182907365336666017984156622238843172084376503552283095150669616096505187729254166539975818741258124588657561303221873559658814514846279400971496581996767973961291580026718594553820636945416131695848634973271147753625078037372228823163622668301598127974716708626403100535255690533595490683569613537215071128071298464542596376127533840977664448483655445962415289763900910623564431534592801448077931907114903242976541067432238086465638828530448314451847925357599528004687665726607650718881089944269976624353304122718844618739450769885096432134746288489206284005415630700810892585972743728053531255545036997900440948303834739700168925485203802165070078022778755088146292023031229318539918442902269564548624034233873122879519089866062240728341593208766965739243446938953766667344165522840694409145778647017393240608742045157566899935843944473980493313655391362992134471082148310909450685407437616186497996545650433817723867127014386671019208531963113742395388779970242509774447484153787671944954022092231875610063662735823558132599234244999298827208625768962208739458244165817837870090914008319220311020116826736445099206797000812953205422477155385355045887157829510083368732299661502981275154638576207518967106902136241987955454451412814074379580053799165581886525157894429472460355669360371144992693916560680419997393049234004914880078063613251130864120815340561686883303482651613544934480516059928977219997635058677136169019583056320271775951385891373574649601879792729084352083870168220657444543232583146660499251519513553545171762440111011375243629499179553771426190682254192282851996950824266714773187453604587855025970978196476578558367344155132103473909596410879755605624375135637260558800519023240100484637524566009302101856679829833873139200961791579385720141471426962249731446061285233529075257431632118000339179468783198299299950055324422184514933990981096191745149478947643720780084000577717645281168170235114514110462446016297251784391029171159298908000280414588004664181329951662517681580006349480989321927859718854282834004011752032483580910400052781557523701081007040367300164930716232757868948409942556122258616878629090038789985806189175793044747108540391017115134083754139194509724714519184918241365281774739535117034190061576295831609297382240243085956306626697250171431161945862767453402203835261518898275301781270912852483885805659215770503795951800641134120674978434178207576300539802649357679619059786989228698122550634321992253382832270879865237553128289761065086146220659567857728648260230895545194925635144784702199491812071583919692138061731227884404992121801670391850618446358246816273356987627312382676047283041336369116477744604887258559370789722953872224010415588348255801572295531870139410055554195932770808317243906219893072129048851050500687510717595663020297842437689229632491866818198594748005793531202050243243929706277336171266197205588038255050165173779157813470021666507168015485371919338758129968870226703330533092464138130943255837527980510729011839335417810141834222589334743203088703393930898143956121005588542912286218127456664203507680005009708059871909961326186792220092464229673029914687941597292152880849347665427466272170525167131497977658256536055646833915197464527330370752330072991663100666307493645171105338165646333996809049426422451573943762805896845173705817696330275155914296073234590349537905868286471833070176401757086696073703348200033933443689049775420604257539476512194160904618495600095356844719057028357623107068214166793361383015054804112463441604436483675782698687276647515915692899274640413373927952745487812455433736468719022284293001290876916602346602629742773127894664914536640307712852468780479747380132151969902581578296843227217310447421933592808960565144485087771870418898436411374361444699380582105591839076701372312343670872590024529984877457010906921792354879750824825082396573827338111340589385084775544406164231776922625449586531200753908624893237533212673849991803197242376310393680933771682693947019921695038160569105326267043128215770592082938339668720380478560370221214158447686350608967702311525967184499165328666444125082994755390474565190848983962358969168831530973236572391474248235800256980001251040055852918627307434416641301770577670136319863464670306144849582457721460046282658504313526791250374251029650749013665609299648077950713808560944380087184729573121969412883821364628814946257617462813201793469694836938635540667225608017436745813889733953648034349781868027808067504998595254092998003217609486390991356913657835474423783411603583391603502683251652967131572972853833077283356192886838962463629566495321110770682655170206893952413223082506630863126620875325952637155245441618511682447896575850310069937053079227644582526619122424972040205357547461771197836602040215965846308906203336775622921609401115602648938880563573906177592915619684878231876103904149649832391419739879328043025841213390553830126565728429368474112439211965539004935820353209855014260051675375661798300975181383311407601440946610131927123597773287847446447573335217532347248541062900176054156077688108028050670043405195277635214346708359334643952406086909046182284839519676938565015430491234530302304904255327670332686238850475009898151381362597801810375827768883686108737800548542318372925424023507760000686929841829100799189507078176982431806317775631590140284418994774330248598211276087473999865224403917747647846848646735594048390207940896777951743667084285637422487132991259191395495131110399374928537726809496081645217955090922113543540585649331437999957416398153577628591048598235356454744360324342305191703994747652076090851791715158997703592106927244984825991359912201172479159237056052185466508656648481717522230131604390650099660410204637363157800794961762194178243721191315462011970553330551438547588774877688224624832637484647838157095768057259590907240767785718499480182787415031060202796657230709601245389096576561501490284679134345464762254413121686336071457610587015746820131048129945300131637393468141773684262986794117410684995982176186377976995051319446199028723453820523510732838680387172183291363758420466428011664984976100627226135694096040982165070993743598608390407450018437803505631006531069161309001489843794749154961593619823462152544131754795919791160368467936053888628719871155908694674207835086229319865366889260636745398323253748308549905490456006193939341154415583080069665227135888534686509915297326826363910475997516733055165371469584061628817218798060658610596621170328486896597249933105653668935728504572438098788247144982024214685479226623805239985881358359834954353131932176791212667354288128604345009655701931525823809366057177431630774364446209695768801807075088597513472352598984466752955595845013447602859121497416312083294180209088784696694575045028082989566890347283342654052885221894240600971692112415291428354555984800138315788872069857313656503473765704925116330924148585790011725304362783341853570281495972979759120449220025196752634833205675464771785601469213077581406382517866684365129884804469391835544619665381382849152678220999008823484691051297180789346189583946697617905061841890573618466321645410367909982221396505296467978510650678108524495849920753892826978985925972429455905504189864989384046503613176618035012607198976337789667765726248767512904651377267964951323175523529403331364922781380352767951050503779805792648659957309030481980267030314441257879460771519620500711165841095548927431170834465819534614447781709655224523463787356713147983586717205981602639234184581704924055387838232138432213200744799764160638047967459923006916467438896116423002193567934991546068703386292523828993193016723358067099750020002150370012428023640183071945289606895838495438266913255622554171683660534198164663237718060120750352003557755961104796399990680348686178298165823564306078709142916323107498944821069370943123165981456944265285703865153034550758331703045535400126454145288060807822297291816521246614077661615533981268301854680986435609799901345073065882339328574358704295010124213768832877989810604255067715015803484728997749246218190111650259697721943632100454160620684617382204022273457968479671451341267500995547561380838117448292535535395603730342668033171799728869069417814540954862997033283163956316307527638847131980679969817712090235273816557361739903203871896985299437500799108650953365684839792259143049824738876784582335659615316325927511024849750126561919502718967069704589301909793029925393997588514619309148984207721308318482191688442331526662213607946630846411714011561321049814695014471232148404701218046155154026529016554349560825243531791225506182059300170430252028358249586304974234368725298594589239467520812735773092957910444669413198727420528312849297213286363433149978155839167266555014849690908667242884929050683632100472025198416508846886234435204697472793415360889467898711388815642821921227273389795031362924537782778521317834410083011419905223642097963999241939847842654307360561279879124451850433900216616829020177595720212286829794644361204133108397279234405322531437346379973061175151203301308377399731352412873942865719979333725778289876469774880268356429629747642706964108413183677146647691251537641040990540994469144233457585792399351834009889194008237172513906457720933508078632011441316910727037310620224153328813496101063058048640823493467115660432881361689328528160211635297321909824603589882441746353673380968976734317820083664853775066781651999204648823930238139638362708986123445531340559413599845925004063599623406885574379780018437564464495540538665956532451139205161456020889130797194645203614755648971440644693362734588142368903864352264421800178415573668873875505763842741576379792057264261600719088175546167262394473622777663515429325375429894803009864013161325598263056239877350043495443692419977128283224593604036981656840457909237239823681140553169091159227459673636388170198912523156334400202150850650374213362791033059951517578835036558826903676481088480120708227201293615399350129527514075973089686651855840546071111564313784108147886029665238172484019258532656458273821490109254930468651783046602427204096779298918151447379683770108519464036234927636223293501658100524252438343150968944344142586197657160075347296901640489524061038958321238844147621975724097104179509828458488337825202429217781023752167321726559563882660922043211399745021385272929503260483466679569819159068537592652931305161833132244091160951746294244024112573842712177233370045925080322244066144057845195892474435656997043213510184903304659623006335093182224743735266878376846252306156978427995158813224106045589762892739337574566391878108760425335999548907229364928567596839828708776146755116231052934677848457965053838436428449383361429043802694185252427296384459771723025370434146107269710164939546117105230084123671164730124519515632666833420588935376123334451441805664147273882852588659324501833650077021027000072809639296459367369264953405221698832426258227011842740239728888786153098549349558442382463732430568961459535981200270428634018569955956851133868723970943456870752114075104255919888049581744631528857323994653449687891993213879735128037345360058553377067307782998636354590289129837764397254891345260557477650111253673729557693807766992307344878613938674258284540647558592788409772873975284123369197909083326561208800303361617158548180923855998296694784892014809143359438113557808119244783836231482385395199771266739465955905041779246062289378721457082067373566769077948344194162716583923042852825965783208562124323740939039457072605600917832674797444610484131292544348173633978890373427472072841579633237225995042108949384192867262783017581322237945304634576779124198770066777128257711106743185508050965855183327073510560215967063510176664833606909159002742971402362689933550627633897726484293482621652606906171466122801963406652865588087135457892229830069035230440774507861987018460431498449502953645876189135555527882165142048742037085803809940498682614842766144186586072735512448283341094261756671464731605607966725235333526645706547121834983666655107552476743077390225356610152025197055751316367841174952507227789191949810530328486591516849267341385033274135892885787149098334246830786488975350607655296353790019704760777379304208334314286448188415832105672369827878800298782001188263296078969413601397777166951667435908444231337269338160178537253505403547751045548916125845212644250260190803268730442074789516116740386692887786846936881585657417477232481424220308667400725181326829222514264602795356097175399928805437688879263786409059900732359676836457691586554571970240159196499801691068907650649467234897735295241543161834076845112240825491122882937811016477022500109458102032913859304262340939744631841068495139968025517647692258677162096882636154695427122979749651210022319702783050620307701451715336437894383865522357129241193125289787427281224206615262404303468589975190298496569574925767621617607003615444711485811904335203565256658970865567244009317174498387092765489381627872587814573630871797236136769180733087708908253232753236695679232684412342063651811276614358376443702610115497935030052326034330470888187155061310611208807726801152425542728828911273724729160654967322243997229475656842004144271025201533598222906699029787285514465212807907651837582547198053440541921920133154054934400419829846264178652024780634461236402198031235762141029454581666413258635412374152949420317772108063028758651239700565302619666872222833886452418009172703205916904694288681747303629097647834523666605505600140530326693849525199458528628211607723998727644989784484765027160028662067299915544758023448641282289832078985016432763885653267798164917974942608731425624730827224657331382781695618950925298412672219806893174404906341197637290028392447590676816808723610034920814695452470911207192132171915107553218426967860891311276792774828154122644185533874831917993527216059590473370620652011466825614992167441188533817921911638466065312435519961608147962558598848434832963040507590272695650087983911732696104983843029924304701032912968767517928581142066907832944860675545687004184978635058735331489507359878920310497768126386465827400150029760990508400861454410547244756596823071270003664989997437267168172632279202763950543877137257285043161758859528776145871715665122465080222889293299085955492037016666796288064665640458488405479080063791207840320090137627404780642615657764161466448371071270445677301461521299220288600898871205550464849348357026146849955620494968801856028126061801714830392164482918211388774337741258187244729953717873772178414872074592439076334146142565320993215254318398876949809613612538782642082325595842451414962641853219717909469005603839791582101051585432623348572678451637815272713204243755615321141246289983447803832317715555095218224387634295009890833731409684234196615838484789230472988453372402905246071262389549283572627211517531607606611811480786327881402584790419241038530850226579097658535231398128009841623631916690343600554424230293880916098536004957905708683264920117318296898799674668798986375363780742717996906686201738558907012419047684160644146594780260638232723441605244362374994590744105855968088157877490464535950370325686666479314025667106147141353092851640489905102466067868157829224084028839530132897448775353116607342498880684175710645292776307272123113375857107823194179087653752860925179527961982692284183038564672688664588428466019962502058441475100388504475513030332510012365731315719354156059985982545758242242264287838636929372696851165364562239645634721029030101515603265209167556542713661101503242834270984886875081535478134688668603593337867509728800651351688603696117288269068610957379991623149298767776295665308770642224009909647821290865276108570699581377875169649836641627572026782890830270884817651382565921115532268319672216797323246188901268708615498988876005141045906227539661072407314270035869374254708953193805118997870970596916141488865451310153001899740471782072400294188145630063328209963293482062954473453783695069738934294712119063644397018289018003828023260425802830821362939861847411151846910879990068375459476964011699733005716079290344300065858209911793666331662226307472327440386629712019185613093370862866379497054618871654371026493209777364842362726748883536637166263072316408528691719762075853473463941875838407229434642543956560841710961614925911216040425690548697873504948728576600198055219681084993366094352609304002161736065545191623333092771382202143097151984806016466501781062934133335250565398943793333823913450789856552499134787388488295055116853536089295070500921083079274690821746616702947574419374763020423288010410806652907226170044705958916887124275100197258300453202079053189308284208165942773730345331854896033905613084240454223046960874997447448982491009081329548882794587563615881338918423508346982667409500890827526847862214478396539541648068738904113407294743683609571703324349565859900770475877490813312503563554503830335345177141081913569252399668772340628454846178056763102415202482629418468255758497857948826949761012368572888790234061412777456676923599752433440391399384257766934721714046920628822742056785765144325230786291659491052533994164750172359999880716833258872134808399291272052951875769587851768883254584007713815177674226735826233799102298279574165765771819425976643762029028497296034173048323338137948169072694129005644371144067046199728431710728005796034068703832149090907663982801116893150669686894111798581736622193726542992032310286557332458040479689071908658832053204654040094378594235891552426556127465348963431017442379928588410238150525126467884407356697916200211087008607943000175735514257019897232860932191322130008646003002601267269395629809625472283305591689089271418948229704110905514347268651441258952347356971534466063577901076943783238032736748906821457498405549495516278797287592063170994209953123904475007929076714385777044481656538681649445638869377571661566001957114613971380404701738361417530514456653036201578457568333740793062879403454029358881550067369485227228160747883937007002190903449755887118877111405089698918788297988962001821804419011007542805931001580621796161797819997799757479503551069651872221135496311293014515077872190297758966157761739256917883401213317561650739723907534011446667766126717727030960520910557204923019206670917048258625404821447608219335483105049065567015541637497128058819179125565641128264137377059478761030695165604192397414468031175308978877822161821052425016568051859409000206821949086455742412559419950249092694025755808237525381363036407239588881049779140210177769539362742257907379686331285847282254268745018596922392533256940605132876141043618737052999951592249821196766005407012880724262982223157217658560498937688050940731475513483869952767519199171805301311210427207503448976300494861791975625814608656152260016991544886489210607050453145988490640698270482594705117930451244822933097386889072307068077198708825784018405455261270225400102431786677092024567599234136697905081746637071282182883735199193360128996995311004081820484088023063971027876305041974426604344396087424713018168981344014796034496195294261884649310675060929209571896226896782090847040993421689394687743522041716871297260782036078990748769986721189799448191433344246506650168168554568490008247130686377539150208186317318089192805445138361117940757576519830664647441511272658091513434828404422887402573967261282096618312778700726948634974622486555808400559677301085438603379786496242980136460661010774629515440905438448356967177231184892427667466882473435977803914135952870146874963649069637322605805971209807309027563189165722193689628649986496548024867491454656339564073647545326613876088661482446057870922863915268446196242507181615589585846838027102927549626607620969454267407560473771536628917919957756454185520825140589959276488178097786251076036279196752310297324671787837464706334724093876068089348657873729571345451682513417802952507025050256375814823905627616298943674205302051458001880780802617087278464272785251170997066449561745825124642016640443884237254664658655343041947364986323492947565140634663148945319039383705157661781957152404354838926045765648059249741819436153143923753081859245909043294926305564085778797393683734948159073952348445360506914084862251557860660640159522883498703381585626136429109002114020998321479246691480116876440283901036608056768315862032198025858791217804917842469623045692082400613240168969355536378430804534034268507539566158240163721004184013814250875144948248294804320004868078078120882016543586517599699713557501201065509323619867494917333719087951139126037241683705867554823562943672652520962451766950203090411482285211041745179860649629376142671206453706977323929826352221475847443620810555873320428747179172902695155812769605440291369072752409793679944591974843132915108775095812341451212252083718693978437120061813711608955964485831132292428653751070506394216534041452373469224484343004788330740212696665841750012748770997172235715116592751649415712194559564789445250228584420785527106155273026060745079522263815988516441113557689543826621910013595297845620234185154957964938301566661672618337772151302031536329473507370557928048533642895454437127868302290533731662173206634721327575863080719727520793549340539763278544084546919717178013400110874536097942630798603005507223588772211319723693031633560925239520077857315975736410267795007886679489258567358401420508570647249457608500806778537970782664107915021854131129605390586656529147177296774174869192520560217016058531760927166039065163488116115693152862239711928776936864620240123833642909177942097317758595982937282221426774796209281913544052874985676213936071215772659996511333114241989298672068257490464974892680968872280106257851830985420415868838246407452053901335090851258055728221057265273716826151799639075270598305227239022638243105500070049077902241685510717851843151748469114688227128353225556089392533084321287819811285934142181532128392749701804700562325472388936205125494791996391071694426012733043385456873146195565665654806686401184794773458125635968339347910707014399376030856131825726387061708955396671649694122577549639504830817826464533006649398407543356882569504093269321858793397832939479204793590636544397671384740843046372830423356373281641304208750656186090267802820068094660828969905959243343049134548884654475523602080085993159852831769868427079692498142498933383784924975280915024702227893094334154933048849647414945828702928726824252293193509414001200284095761854373926868489988873286869675146164840152460345754474305347334780911698159113950096189914814922672698973967232875587211679489187380979010465065052109218130489393945038458992983342071472944513285588328491764645214764487170641257517626051606672208784374421634557347625392586850839496262890489471286256686358350738778545828475943884056045872746457442476357448916174676016374058260962068581039505333901955954345762061136735438493187751349572867502639001713784886249625492250314865746715089820345674987446608777589067504773545597497843417002659608494303540714458111565642132571042924722562621560030876009468947801446574508276018239045985738757774355734007307100588923662761110788338915780376415830632317648906249786326480140116027833748432463123537429696323805599080797490050964596306935118264039993750094758973658089763004716482553046905301998133500172162209012479804774702084827072901349646768244794356366492736915507797120176347618011253747812083468901458931727256096278186818770187777366831076755682901724942791866581147213209804834622317343119734796359765421514181121695761041939136677805247269116265004411608979528163502733688881526650249693348112787521043055549149855078074402135264187429055784020608918853504100053989587646690665918761626365295204119292132348203271160139964364938014363333666200718571037662169921944723050054861462995599428716395174980801175064006314022544325824871401524313570879563953634169693472332668684598642169064632125007699144957662010604571921739865433283926326785419863353387485272406268538915100783596387729056617800770669611649887870415939905294098672160368301867788319721830205363522625962148892584913404264875275691562037527792162867524298590134114376136328437594344484255275373799901133853047351789260307747649378550034527529206178735000627758910200788668192790171765199469797327007482548510649822464528115720847916354695551885292643560959466935212827547620657033222455444724660366195605089803234994243205808207970393959762180434094081660574078567115437126357821287041094063982305216222176449164710910625628371268717763556689412348140397057558031454388212274729899929665482321831206642019372006880094404786862954974988834023479341474147385826951808920272856502288999473031897201110585511063073098272585944649011368181865186604414847127564964097093657234567493099603820425421147544657159493033172131182329095333862523353382086586488216636920998811309361338933648775771836954786992719755073580437890015304908146982878525097876423996869073165232544747374187784822362288976518278548488304198218142154928304411881499794821930873396095836203847452044508021317027178012142364224325443142644233746512399059692722105559675106963434338979377255896217434350049993430850914391864313575704027581925833917703917897150370005564853131781986087226119943012273134629408537118882939480576083834768493100840370539374254649265581441676889562920048836429467702577555963782821834785247753923335097401136880818782270033558881444212071556117145109708332541251691000455218162532014893085136064006448284317158024404080875602206408089759473857635048054735446956924716742462582224944228929061376471132993501448811801750929663185723056260902302991347693090091276739139456733572189080639095783875971913666097559485240969810461148611392209191885894823538872828289290591125401917093276674473731844517547049654799769169735046174323282483145085616246516615669722957028746859233358767692542739621800900578635500713016100081129605552564491200230781014826800373951807332150398390405807857654160267648760459731652785924885618592177556481601991169768909916558716744324412637995449968218926473652879428748931754219590540332650809051907526852083827715871525184411855562670841906375143433723502629793680798211499958969702609277998628184002469353105581942230643989064282258138029708944252816682592707869023360125229854535156831873146729724316750088913345946241567471635595349123642136418666983801026068025610001128103911948631092025604147631728618545059638496363497037425134076334604382052722092640435909709049181602221023384201440941170078056501039016037409168199310679616827439458965963291167864711038063122501806871475421173772981549955797149878195699650393466602850651667058227816141896622259637224244500398412862395777741934399168311637302073601019620489543173114818993888450556446085191619729365636065922520378831021058003501144121598112796370611634962798496024846461034053559282823375182257516991398452057335832828622186544895511070816475814768954190468917448296417581645547140162568071251164765263964263414149994294001682975549426627917827190110036512848999266492315366185710368840414500634887149617005279603099050463502709042707457340426088755948643144364347604839874898342779368036146686109882780322373602947856550182116775124935295118155902158158104541391962567663717143259011273496349172727234744699191116386783366622641918754332599761398083266690268148657197032630367486037228992584923104538845181733586530056126286134936914829254463433756847259967769335048567760486497723395637243632296557098290263250867848398884380196626533622470502426924493476193777552845464474395503487584576288477410088092943297367056047763723634707451791672949115397934186272759286874328340724062226868512477250884981554841362695190604234146391603478487818751115851956885052245913418655755405475908420902333529040202289884862379921178588004091504752346397273054008525081756801949723836693594932620060089840585751129314359999242396923686886799255426497423465516364268236506491365202655328601962367154137689560045306121791836223344266808390335693885506440324861495782128094268145474269061053520244941309942303143666252471694901063042873127245693954528471140841458169552371397266656365576150492303002028354151577210516357229776922206494423325710162644003251493995827352381461479683191197337556184292327724498543672687730550742112413127976756964193622446205042698948362237862389086806544118584626382018177017222524747185169872558267161067272767947090703728331840096809194636514458597797423319324842013694062987592650475647961333039473874641626457021260056950954062858422626971731213866400440581177650991950135629473322714908106054458058985376156890164010885263472626029067657186344437296865880360102159874419703790286824990974848084481866515714886598593915387002609711650377994681758244128164157059858498447309121188793883729143234831243546503372318366358439836203347226597773869069428719143325198374697218003837526048512772937621021210097348573717432116633841414002254771995466853222937665183398323040302769906482817630311607638182306180234571563354673954023721411490015154238228655422591976450231366850084052461953748611585668610966315639753076784014844863293335077592779470467791413465848968957860546356875233663169690953356564878719590370338315922191469609019054777235441027438853673415122174367414155631694315852185718136076456027114528295069841653138920486147061169848793392040182775852261770239963468099733530154308172596267808787366024623073630293463920119279789591335627841709878375591293823311229837145265675178447282662406225387266324006390161382468761921475997503478524259121677308909539416329137637095241136445168606401546767584848323335000760347210368765226217582523927081767190200554479267271251209262608923761664759078817683335057396641674895950481208768474103589439445069603710045894670906664263680886748303071003029082773637476772834273827210151667956564375110050535188606266777587635625683116180690733544418077790865792137956698484946258759866317295470752125505159895765531227150699226300011790234998802100573704643264843878973885272024877783524974143375130224583149698069288835208889212618407290019089465087234647539216753150628193508710977145712582210843932514074666391542666958985040780881502248265685297164792947279759549594993758651929861764532440483104067006462330128024525276053989265329354335772412906693349588679340732934973644363668562550042523143379622939692386225356455174790976608707071360993548557024237103957111840056670145698232204015202507842364812255986117964434543627405511779061109890936468577047128841037277570898589825325010751774654579329358104166845717261693208466754925347625470120930053353507623015513597875949981522894065454015644215416135574798216804534429595273761314390872670936286944597944108711482471430886712148153053827762137548085377307169996423276039809109956996273230675097682684218638393729077310949280140884183824134656166527278885331366484977940092883625064267030437233598444823480411052338325213724055611082073220503824314262438112954704435742334260802039456304453940965679554780525651215339963019582451046640636823014664810825199399171143283339750803988225928315408718923410123261936752603837723692632715529242721249814813624350398116218048412826931502514070342414662875181196455547606733681712907392301840108188271056727320393475940908676423429058352576750633685532610005516735873423027665676747583937247376676082897908501194539149987266866739759922462136738581621060482354965904332974554782616318315698906050512985526351389449290229648038450535656660943429167209238770231579930924724576263409731176846838281961993844157088920311258694680703460345027101500559470986349899931279407743755133736380684461965863343867936856066327708008985695458726339855084717579558172845027578486155836192505595897758263767329369114915115412648788994494862820001285916079515835989218737022348294571895018963528427344509106064516656428162405826877014419425187981331240755936592361808854596186894485750960707624934671808432323722010632670403360050627511027635595584904213158887947356605801169910184466172003409449803148726983598071638393600373886693906617487119003137528555129598827790576136826000789921104849615636039876216712050945747265637180673863054078623148595410150745866198321509303202894030657486438904622828991142638016064644434383342683390195203380826377102571633958910429951949430705967574838751190760157239405422219956191810272709490120549872728866506804648161823663039837995513396695304627323152354947196546742001189974441135227222823473802451849186140581241671712537979489753179619717849777472221894544838347697165511345385415891305179064468411748676704743046239642378856001523429876105025407435421670565576713381376157275582866627776043733916781461553029657881874612474993058605984544394298943877544047248389630927864650011038810750879636712526142464835116820129588472011348416407052224400886390675779428167244370631489735697474852953114756111060159327824170343179051474416264947000304934328793176752367343247213956020934581665167985776866422280774632467638150664812928254438562620297123448376481823557625251525064126851047148187206466824827226919123202116005313164663954315863518894036646617216635261587582738494374559764008659690135922858738136433239043969058668805791064760286932286621756362819351279334455049156006401304856357900106237464272259971961872935810743930201096138883282111766031293212996133425943374218384342788689865942224404819150163261795646567619256078274962958259278514499986029622246995266100655892083085930400172642655557196243279432250712712434154031358081683777217427777705245068818270508645441351324180087896267051602951909018642358131951495024749975801909001859869319141044609555246153533424924475524251801050190898345442359064510381858815078157668335375533298362200606360235117208639423048853729203088867470326915268581316561119335085862668135435978836075706741315285736414809270929839543278558441813750938748934683579612146096772854159312230921255298628226198263343062434243058854876322848261315543294863532952064569309993273133752955892186338647981424458436778092505651572729226771834597852650595814781500163470071759126392806407688783392860406291867579392374019122128625678263095780855735104607991625527870758450188969362514576981691231914752718940399064648231615906823982569488084807182576105205541339013298926872037528879787677203915119708730085179963532406671771666507303980453809653036163183992247548811178166870539371273866402047229065744627829316171865928554252808272492358102337600988335629517590843629504874548631686337102725371434809985035127661074746969225409788971350504061354424227979186293748535645421845987266548613451709648964916048494749292855665258392599396041540606015868025488041082040087757080608458136430771121602834220205491332060511885909237289784686353834762820330977132661447424918208847748829941783277289744213573202155494224337722737385409490834265791398421576027338115892026390015952599616025932892430262188947408536875689834869605570044834701876667191715543826689240427846264619752199311160440096764692175325181194008694665556501706946924715129500528280890193210371324592601940701595238580083434235782853536691782982782800928430606618365722097357429520883365062657389433444873934888968351506784954938366643202793925532772025661051200350504278532417470223337669368580363139741907560722597732161842171517037323942133382041661321923652491026853844124443837045897576557808022820965792735300865874165043976201678913776712796585341892100193544421889715762052726688933209402946144278395896917600560222022560387189686581429024988670722568223259702737053113874414577483488954617789371211944475344993176440463554668311213752304646400744126011026377120265686229850296499974997212546664098494320426332191232211828470822876022842822481711450690470719400907196950152605907287909184211761928157285425425755318892273270772738293681815245619553679504461751671523788229675090990126096606380514052226537833344050115251246829606932210094263106468948826107251928736636262011187783404146433295975112230371480961642498643340269822174691582252122747980211510456870796290086592285558219569977429594832946837740419163324726415677072071592128967925462487218396791680125822927019270890436709978646657333877164466974988071206661287374374872419375594709655007966182430301843634341819564498953299647815484614452148992558896887408692115731281461996444933370321536585687756876463657104687927688291852134954959142840511529384999151506291912077179439445523305426463782170215293195950828845133489461191779312936983497572877162596778968725717487074231858439771297658218721431749887045887663520905622869666703606784013440881750015272149690316273072828659049389159070594570998128501696534201088266129089478098051123102297334770179610574623345559163944209903993102690208660039141736486201830756724319965318717179100716494342876467364916337406190094516718962208046290350346214155628927657250550408431562653764712287299922853879546173677168376812331877889071518814349651789752480385663830175373809089691935675979116509651478995046106244264711059226180923660926944511306649989976163892573938252676024175260345587346653822172974794732887088881184208517741854542621591599539966969339818642045056950610849347839187215781778275335057839948586133540170979436660206237611891467855205155386624532186448184337737657137880622365452649750122961296017810178969012123520414704463999415200269234686982642171574643032162463732512372038881682293533761583112535371326088518051248556202604510453110544854240916904936343929871745087264770433607471885624884804176409478431821696012176125036445830995992379105233318919164387009781271534215622356205816309287859261176998801773476140892179142623787870170310102873215425490289490895793323242677378248074633339263595995432752668652851695802668882099113018320776868614589980124387696928668926105431301575106982437507442235331953730490920949081721726641116649959996106935256622861742470098123704281311705021939015286780360019677972544464299277072821493534891792161579481015747286123779179226986691547908107620554298067226807566274503616231518833351548618376043045495328616053937697912398728028767025845998511555455656167662413925104401344441142143948477034892606533278932620743177684095070932544490386427895326915404663805096911538721147500040165811230548002301319557983937934075440247718557641243372351819358593415471878697506428875446434119349104249137123745675229995613783840302838990466046052224051814297658703086358441030561257093459873478777399280910345841451138827080661295674554086149752126195509597103940332023149630025645261561202282192186323083280532741839595774885974090843817586365660779143158322837371759963492766202444934430645848395380263734713896441260797463374715865960618884724104446358218378464190592867795757553031322453429751150542904296239565630036290647673977679011414861101477709025808746337110749743326268480707829635075299712914791163524363144772372768407208529684686652849530281342987992460547342671417057868946703308274496625231759982978865866856534074967019555148333394027053898083867905681905524315873805659474538276155936807257661808273172584606699370102749987208178208819243188496283197092770596407455729529846556581451451847612875389305025871538493339674370911377878065823507283656906985537672349344408299071023411809085957658205892715349538162455806158777726880305533729124403615088482213968574183850035298243810104434520702909549471734684845581657622519686364881252896191002195502002083317590055019336101672583309512682804752889419246062649938914090593229029470739343794653980157111348652466135099432515257790387740208046696404014484035742228979378278373138172885571265594273617125605359827297613706842871599012875674534726368403684149370629360876429302117947267063970435898012902034937373395897231553308925802855272975052146908615974708417983660437721237235817152028087894098977268964619777504848306247076618160557519477126178665194540327656460154759018630901626358906499055155796233942917903281113200294050674896904989307322602814318060197924214854772969996108968338781814516093683789420779184184270563358646399434794673309567554503053063537728040390752474382340747238381703539386440850311512059716485270095520886209460912848050114942980842747211338349821600150401028873606152078234939021076181654885933789808396169971642383124057955741259734166597416429132631843293488473492306764952693789266070514006532630472566872133548527324316232176933199040366188733616447265301426717794509790019064184512304587313410854021401287463687967963985074114139697003318916656470475148587018243073841920485816549187018555512259817453084926315929631281536353272216373499798991681851011099517810100369425851188345301598511991320955228637574472078123045113101546698799550233956051320677517351790287154263286399299010835680823543759693340481060670715545621444296720151643922679871782355354488514195524864757645433616092074476468702326692259923049184568415831871849331118260178009754392885990685089355434944168500700555745691261240382345212647823635352737989493781431464341908046032905653095885427099718286004220789189202465155217522770187008992929368240946711108399729819686392500097981461567617570215042070412729037070507203552347205673985273607731448323939574733789949236596055857083926349235914598793089204971453690387915006668545358420216220192971875697762279331574033903684289866249184190194953274859381234527841329390436764352957704366709807838247279150526619057212381300897624819777098698793864488035313656202855828078175457630834570317201333350678813288874035107778260665566958214424008114161182324722678104312653447050345003147898926566763030613118927391766138879069393523186992749326211914428575575952451453550622280518687606608817112266779152199558381822176136931845300938587533116952954285769671267540611910329982571115134162220069043932267807202140725468601272100560322795426833943288860545791531101676924249638447691619623256704303894035783362728664898021316811381508811258802034945370855930443709240710433282150742337624765973734624267409459831102404965678714369924910275525146617935126899520390695833352664849390963689651437055085161461194692334483454582965883155431949460108992277553826149643327646297000873857652030133984456290715850554427984633046073410710504782477802100296310591239643853088427310370957515647838021439623312622021181544630591422740435483798795441402144020171724466859951596506117802987060541814712636842676197980619792137873815257923996709606034235489764612792518457849876844625844025729709292826688411057566749844172525473271617724682147061163887226528665936144830283439217744103344383953111853486532662457863749522956732282502124264784542431583699710475852485324007948859361366110791773633213768105443231044545912164361923229246495931561840602439027478946355655297546539965514350935867277304847006984029352755274792677679380097807127310776759912176348213082536469026001859421981778507432950338852299388195074315889988291486362231880382454320220722827535215321411196076933661032976095007505106399581917689440168491014513831442387870127894096854016586125586291851848049639413160053949348051727016490761842883517779415555163800720883877646281223163044207205068926437473898400352461805311318086482187926256332595043259223398186286011426279404229384841225498245514969024190783647756105109805614284205475608559983884643909888082757647063047822517555114017606471326762612131463498400035161152029203604564780469103554332456496937216866972549254342097670938025050443096566639738660721291477654081046255166208962046358210154810956483625574623250604594737566018808297119284780977518128609711704248369030801552644917048681211378821368976353467392850674927533496404210451014709000189508981510751625519068261292931236317993464933980370538384693105154717044529619936372462158399040632492351312287763190027208440779544507066860125374816887491583715423371831105359900137594020486841316293586386067352594638844570254336155185237380312007566478752216803969754568643385777219824086319518620061399671907822013916489293260739748750228166858227515249614329485285145452461505913427424547068631857385148580839147846750903399638210506157839894806484942151619210927395377348644162202518561227745910175975192904376924364108804057916303136907867384507108066190940919116871008268126190543965544726413617271800177133425100156895439538555201936441016230599630003822187614431066656891668452637426395875694460251490075468021843571662921340955904289290084387704129922351195879348837896346367955467856414623181838158660005770423334748553187781088243387457965372328126995644554301490865666079115409673388291947130798783318251280875622794724531495176718629793896315108933065951751876817978141303059329770782443820856276782646056664292221508077314146274693382560329057966348104698202688652896115932691877668773230368925454148558799174762319654183275179307346945692851412608212579229202205659872315260194995437051676540029697732250895720926672024631432413308823775239455553556574334422659859274986330984668166016486201505900312046926108090976264243305389448709616151380803244862107528550768266589900303691115961041750939243480719044136676484298003946895648426251704844707255454792131113680124565421407126963389251828098972291843782080532887027089312764466428360302645534565981523179388620595250091904320217860101349176145566179149043415783693604576918311385378117096340838827005757225236734211499150640077765489901680766676153548108567380584814005202145228474050084242294307808214433884979713465769602940999019055297741769127813297629794344395519130546845587982105123175413911810554984926354168628758000061293906713021795417882414532770144342236297437938384036522714206703661276479724184396933968031347473985232314407946495866503088684795195983257895890017337934521050039047415368598851709317684242795599539959390352518100014029913064609404844579763957431194681307251943143511082661009100309495009754661026933284252072253946284627579832622184863307312136198486511125125469544892326458397383420308178567810933095741362342400014744627778131822601971411501953026390604563754150680951203626780116330736507497200964701318380938630940423578733287072410132543768682916049266465855172812962598673636304180396245477729339835496511590043903552659776198301716608620570401634313771167009461666930197853865466257713509171774395696504041920936827485709449372058761102329864223356670064091598717523094980782454718871695525294791709418984016174922452521460598237220362873840543190038312297375693456741728266862071632375635307666455567388460927251853137773557111347778298369109153119670831456850991894533942611549751316105587468176798820800518937871708826993854975313271511054197171301428849072418332064643593939819873375611153231515724442705067945809916912149502751479169316261938169465167828681220886707375260200308686984436380806510599717517161658607002228833531099892984702347343279439296923186058717594654575019085862620538919822418449899194233456105184139590643536805828793566669084270847428790213778724685196634257240091888957483391752254594647367472071021645050863397114454261405428321521569328832140247269127673718265312649357144584224793176984528494783896704201965730163258765294807377703963451123050538039491545367385756258652377613543126961694368360344285347859766027352609736576353774717366880424688567869618852318539067438020960430088291560478855608683501175098369055661932756282637901152426814714853269894397072742351338492549848899807162924369152397254052097775040443175472718525703514819199805842298924604905058363621216232255335677127377767028881611373374214723411377987067907016079569228696453552650697126349805616984131558953793938378135307199329524626107121355943471426056855534410619405073122155500140499239144149132739327963590040596428383715361905137540394855807578512759940778067878762060176457001414417923198402719631341504547418158584568544960692005892665407830848959421669828250106121746973551152791910972112950921399976782189419857225237474988885600560435709474585320507641305222280971461667861329374438285349942539046686951802321789252606669964350680648505154125271075213280535872622083891461268786783138150036535306469798067031711858804379382820339478335078469606625349190290446295308696441986349130985359950204142879722931483162358922582449527237629150185912396707427467648039605705856184534619829937713155764103829646025582303122089107323253006124767744923330969680741006680295975756252703179609512946723416869218521308800565150307796332857054634217646921210212437855916011637697036708579483429001547905551292014893849202942483597914790413885342751464695584571000875249343876383612936605535957771847890664527076891945548316979451782861555573211735351080538021659147011880130763725406998174350786548432350780666772069019030962535052556893775556299019687520591874655634239863428553802875694624065194889872754971945769938031093581353926033457154154803557015476600422094282480767362281707759392765506121709157679452225733698218461509585374022149632677703227459365720059024833982905409393403128846544931027317929539617366458885462584042285378989238243812381948220385002679318221502274057126485812349394055519958253543610844843264822949980068480030034018587565781311022209414053761262441850046286084580405887594029032157329865239968214004275245272360695938080952916477965652808367875248778511009040676503518628571572080625513111965170694882301514220903126656045198953152469202265621335971351126812316377242126871358536834308011839596784348852488110657837864210875317717951883499322549762756321400291190153934009783430970689419176022495956336066379028928382984238042046989845237190594407981322973229836660591081396382487291816665424606312169127340073506785662136960828398540454791361959148698174447776708317001371627776045150990211978849491530308105971382692234663277156977404507638316780052173349294294322170428245374407358943147904428641585029526316898236944147149763165117360558753934320371340677191024470799355306369940650614539423085216218861643685686427014378544457817949461615768490612708793194728596788781042897037399685842701196356042550200710610465791107937735555012369353523729148080478436583091329336716780621431698427587740646972199482751444442423674785656029525770617887118859741522748404903040590288986354720717687297212106895659441928538807884173181053121929432583898719771005403204062284844104977340947368635059160953892499496407872815441120279661221670587163523980001721509550600544286463320637154210954232096568170361752129916674745047771522921297196211212712531800831477105170538407624016385400855506096461741813817085825481569077502206220802745282992152906143781810645190858052480039963752690102684881568393203487549952417930466842632976304973635149314361144221783208865350626030340978047164391520315643904528722240737219962838231888553272166507996381065242017199609324093518329102544288044505568389456209369318966120964785965125302299704656613575558829472426664403523426399289697705730330698290675572555911286913096991481795457563121262034211527588400316548853051213729011245599622777812578110222628728859020339351516720879878124226506707253396921482280850588307090258238741443600483185080564496750048342843740965601066696033794607181638775069555076578599097413050678842499328612496611514584709082983243676657505213900160261325143609851601823830605435003183083748344928327245690015889165244955027657335719394737521205436394738168643300969053292594755955764142487107460188967517464419720117865776184386082543670846072247734098481958438645027288649742963804293651148734948215257960020785195612918576926290432450109826998065816200301397400085833201885215353017511105105485456949457263559633191152303330814168460363279420857415413513052798146034082518964976727668924590081428444367485695812740533200789649458105922342739436340205778870553757133014741656756832411525342844573875912345611175227552406407628612265901462340273841225961481375376403795587837934024896532090368410101421823847902878328144640641703132724888468537034448487514338419782277452549484383156873456263018239891256792390151455428019184796485590467509872245983438883650092047878494098966166045365454937584575500789411350703298004246576535863865383112700579577640581795106773318644694077922802089668275584800890911564525851830413168817154092148636446064703399309211627389061646809416019600249596291198818112798805780299808929596227520847540003725191055516866396198530031984165483498009882425604819712604633889851444122411858658234083957088883845526604994353973459455185178434959476321141644663289800129924670402388264828303460227165483086499941901316521090058254506126491121332421005521772654839047577084359801252636133096542455565376269256817263563900034377514601485809403822120214049524000217166830877757286502157188308167750111008888777132113944940129830670768155177153134832403919805277796090748090174060089001508353408588947811709504951432205870542290034203317992473473647048577608994175747572947397313145362359172110702533127776758861140046619205555234233702935696564152276822969451785214931012509330141761351786096006772466048015273673889699817272720513851516784085048096601507081018238963318174441277296311443653479969805852077888842104049489552315487015986828182683531001788515967755770230628074958222141919544746932496853825338917956884543091790376183018522631544315921724972028258937469419756767871330060731498992916255274251523531860486147916399115900491057198247051524496844388722788835323918701229514433086625167684027532474079208617271363771029625748784392085625854409690074136114124633315641945141238417685371334777112909087750859198617529941995564321852554538617805644798044817264434643662715933347247201252004363709149053538281332511276859964504213438658126762154316454170635883064969534900988752044512003471381367309161745382163281662410668891586824465773390677642539379222896483300422614958741371476235779342372928039938763919562124991324671995113749728890787606550336322832947214057951026906098923319106083989216381620015013338428028019122842213498377476449440706582347405923427120701134051799393787120782964209169580440644060415510413255767491796865890735662169387298084385605398894839383478968050371583490024317653721770373522397229420142132157524494193080471352824327350051048096288863499973415013128667942336407969967085969267855876492375753219132400996799628372423998204277894796909100192458669450844932400146984846602780116637952762544110818478035582923000656138272240502940261524629293225252910107116097900900255771734439206713811812637556812936372796582669922859354804710009691292583037524477803622108148433970798398307802616694774168453280799734387234033769972304135938931036991674016389368617968795674670543311717334991557106609516098543048742004280905985266855740754272197881311231812388070809765311401042705055371923467483352705872371398509005021192662913846137747429299846899565110253605420543435113969628494197990552735497271267923169360403700354553223064137660326131710406623076125897597295636853479838714489179168452779387085251293631737690537263580318816534824427805090161351013555003374838144700380293330143281490552281922254350223813844760578914364840308361377896336295097008010714502610865700520746751354662284198268299119920777769950456078244225485607909674531176456023071821199421571119866615795715127323364679013138286095945551248833689944189703901864405520989298765898437008644493019057647780441136581658113713783774032560279064688567521930550119162361544250131886168682969125544567635841754984712901639450304818440947749949057424777644323790041860466668520577977629552359325922085315836009452989500102044935348867759323888425441478581426421741727229450565065923046797320271199353181293237529977896522937242350986835476046126763377674148511229694262131260631344684974208336720427175502185958504625240594150617204147587655420871518084579028115361411349626636463958870669587195067528972166925085509515981095921149462564661448395093440559179609509069369122938649772771790821664567590194556918876445775698677685828433274072642346316233331818625497784663584331562700757979553974302197026698998744354975611111371845677091173672676774238045298709545180900900540053961599530657066646375722555102456821604245416179316354461915399670979199696642207047970082796672963517910261827152866276194382042192212267006905136788691716127527142531141603857847827370858136896811433487260845731186689454588346900436978933849783448921802931397905160534286394242657639668081442492030043844733876050519151298429743757019852581168987453602164207281370197857486895953357303377193736717069176124051960058091706038761704609869881040853074296776158762792156797402368665957039830323698893851500748929013581834747534808882497073602042933708048365249822210646927331962352323061999104657721234591818403432377573155244018896796719810245007169995123220417032071417923841375548081191693885014603173091995033799312118224144660686452493029472011462927680788240526036017851001497399065159249457520840446114572689444384415366994133072003206374092347616606881391813301349015088239320165846892680205075304949505597965135809438921277915453086328416097120299123545192785301922640267751164649777579104157893497687350246062734771434319498424525759881426365519848516353599234644905227501073566843501286330527587448717920644549303662417833881489896542710120573522772143132641073308835260259617754823500700663320242248558863102722539242137044270718791090481669845405774846306456925092668692485835769847956491897244505487940427524998666838506886319896731588691454440527635771312573039183327754995107065645983761011884199942804337079857389652700190305581935770309887204622985906715978035318758430358539689462589980933717557909189815442280496177660708516697538901506026339674696828631764668260797655575012496082744444540511798787808457392164596173933518171469628933554062141010265767124114503890638844063914638335451250402118427239182653036977748295866785444446869650896209754682371299294299111497839706757404345818136899627116670986467605241327279878573493001256272339341951673284576313426632413852509855760773369276823356313428288273926574482185705684211461061756129063673639260233166971124372504351683021881659203246724195088016341501382622362334144848328670924066847029740454428602029514275838137432358269405949410843934417962326608655749987525507993611510675856218909110791413940971059750460961303175577929471643573433043339295549918396045734238150899741895969278722163334302426027633199561249942509193993338069470365422392952696759175532045943398836223932678415785581230798106334355214890212066344775097406127438041026495824125888028559548635254308419238837000550772173212134056669658081584194636195914802966641879875974139837263223535992436560289902180262757733334804116533895670785186554246944306429916638542494428492906535676891354391909081736641169302459101870998382651630508761420723532451939871423588531020468469294539033175351445142165489639858445686707660382440064938010288679306015314755628160922471286964540030098771026271414317393372708970253602771462250340776798946214774522781826361314628592674101865351890276089335599862270179396213879890441552324041229564084993114610434543628368107968806396586032328447390713495559681443649481364867969678642544612383335866345066362824950286741871689068297231753207943039046601736725236871946113557141751343446701160535284467264116753513622515141193624852970794689334686905796518507474503879976378630686568908024076413295784537881396676986439292458272190396429079412054249808341276629886653476458055341845396584087753559626032153347593045059236759987181843593766237313271676650456351093398305436194045784587143278555642222806046442528967010507155396188909268758560487820472942187691708138853148628673668070925970348138132412687471255310126430456115221775958090482495414474872048113035886454860370414045016402047049309517524368919036322382225089480096035528932491005147345770813824467193736317201764208963505373549520916395871685130939093762380809007294486692587584015013533127012810726941016472099590273979738178883038973031677089576796243512588218779407675222921674657712300336739986306508013588670198313692034496031656335012226992912250506544058612665277701703836918000098562552023403428864877464780881672684376435251643850472997509948028136968744313438493807795616071356872642366653730495043241877194349508897452445982141054180103917181299940840995481493716652626354390329359960325330561240217307843740975710503200840211673811951860273186533582423515422345721973315907810767339022024267210451587590620478469534678287864368930018751156185628498375987227290902605554789160499663005049695036642558270644537356749452727977895523101758478154150106643625748814438660271409069903501710787258374894917741035256990212690998920420116141028452107260501179853121118629332774752755375438473493762995195575660426972234929946432732872313746460944599539870955335679079800228917585776623476159369883924288376578336758975153655460235200311172280901817177498348349918423390780055656313853581359408406548936947419909794247588365393147486414760040547304016318798787944543405590411872069093336030096296107981156924173106258645432475628607567978766563056900643570154088668350586828016474671631949630336439260375703598045000226622170856148413552188211256313449971765709036868793756802772660931705860357418333918549883926550630972955179165447314791387359259233130298045258699660493629953935141645762843901116381552830225518163059755818417804473306868064707353190722161145296117088598654986059685402321137681122719634565454769372702700809546369391870892647167137300820789060585981729261910491770993422043985208212493865716377638901255019675160578219066835103390829273089239699391061842751379518813232837112685604891409404779718264838175240996355860605986323818163095229638104951469505166533853480593336782664210450687706449574778969184486517931547274950280898040109440834743088621644798464844261332815666364826499078271674928879522343916136336723270770204487451500100169088270733313650115574304869050988160642217028269589961434774559570948319118121050649185637841681802115879993198808530546158503179073576194469734168733751989045980284012543741141792052797008323434537203853620183850977535562212192468342549052185841974573889431181585650157997883475888989558937286482506049683506580989177669229870669328229514542622731861746335281668510050998755595571328059747862547699887336649025886402107452061552079065238203936157127429999636477954935102937821170784745579620444299800628081862572989528881372454108401629049090267958774412198853141267838937316370666197922746169393110176990413410432647086784434831658061549363394553104806457949228261138258892558524594060485018565108569038341901381941217260972506071061748688641866273369300853377993676196080862463823768346648571675797206040054075849304138555376030661329249958319123027909638449052302245864604660975311195567776103882862148905732510881827759984081918069189341546335232701814159768989026789453592722427291903426146711431032026058278915130702548870841578544425714420006482238206391088160403430159371864716496637658841561122093006840911633332594067896706278043572178231469435079074625803013214523463191082550876541984157793239714032002876751738280451233983950480349169358727412056678267707533307674317999535178617278208603563350932995907007817010014102270987887852768469072467182189803111600526410314641989932661582021916787983369166276825793385167839039676002424531022803787397711826051550805126568024080796599950514958953405175381598755216678342046156078896137148509749238555274941075602198756719827791231784445747152250318386966424200555716991552710451270560805234165624447915412975318003685582321412115739623483744024419354243248842409417510960510013965881687694789495452586459689610385297525579352112957342711630938335159929073649370147771988033771002457985656327979224277565991888279404530135652720674572578295723086663925625107976691114792224015722074751344112941905036453126095307422115664098138020411127717701884906879074044417504422182587293797639505055827066870737277270044142238362921384279347120419960483292471019647054852672234695990302005958354479682223162071444425030905404273141656167917930911304685543330070621067607567392911283244443285773145914997175428793149930757370033105762149638966748008410439784058994318124442566386032572362046950301847542885394375498325489924327822147067615371638069229417798373253646126428191369056107526213698887545104467362678628321591288994238007723297054925146304165203545328381718028816292681910306537691218983031282963727437413982490324641755141196152945156297931315758064090165431065414185876853831755949621471191004323478498846016464467232302287849498599534060357383127426534873558052581735416396883882504972702517635777099180803362710720017573684984207677983114981340868271347238960114753509749463111003120253109814582601938524990664014151373370753942218002070169345221469085092415172980087183672615966175107107917742182156756132124962458085926490408457306206292531048677321049035328291114693881990887096466195704138652768793901871573395511447024605167575772290656464893818138274935018005487014749290710148274677890056838879614017282791620198851054403523227574818181580666408259316674635409777618757276932648340898172702720578350386359472063352011777641742621170064160205364113523524118595190600575237993886788026360323714935152110282059926763862766279752101975998674226192442469170822733661774979021717564611387421879891198304244464045716978035583248961124562444918248096910298183131492230694443346478122288599784097436786232256234791567030502449937259370467670344961862626199133136565904207871531153973216030413929602006917509467704190543633243001188133268179785847278444156757640439082172802722630034928624540216427207103351333822223442389187553291141429164821217653916981354309748248692452873509446661590768992886961724800226301250562021585513077122128175836675432485057591956765200389752169362038648697804236539434402562791594055098459323513647160160651451219915977427427020784665782160192721223176534257265924312087114964473578929449601143286774784992470196717189116798131904870245886741994888134764616795867969019929799299637223360799676368992733525999321546512458844152090598825829542699709121003637249461067683681598093712342507346578802749525004368375885814262647800537270892072109080427978472637870963823734474093785165536948297097944385639403456411948331429971709970339985535531351771690892671844322816138149539345780083669434498903690341665409309137799464221477966344110877342079587115363525831905308893934982434610610713451155307669758969290056835810147458990714801920098723807056011372410283619869267394881761804771347043049999404410926424268212832392371567577816897132404859220723392928409028017423595256177867363470127009293326758757674975365053307149285320575924395624870095627117904177756228737641815968599199245416487659985287767001204169396054717377546777360921613226783022363903417544058582998078239927823240151525036401393135041091842376101259731309952138741336698075309093146343888607206272464371763633422099567427810656012900285264133548666721666187964837948504442704989886773730543500907108923236617187241323657213099815251843216669879404394777402239931116032601322612990102154510340205300821430580099771450225189644455337216737631097155179536335739912489812439806909622455505486091202443596878555350299021685064292805027488973087716498217248179982922877381744435415559147967859857973382650482619433307701377967238410705205181889863464886207168644747222820221064149060689237101337861671037968791061562696629345638583175095997291690946571729424528913153566261027782729432845846482160060787792060689445135175168939382293270935626110005077026927919622073493374485263624883504735765897743992950161709110640073372902314431362547657100873537299704874595277921343618866118568574784746671473330365049905894084450583651970664946873793624122468794555120586161508425259714983523117582083083945850627254379360840146137145289421409428384018287468252437183239460641667628522133407877549601354182983462689281954943755051639637659469985601793126744383384871587455361677318780824721676647394094268994372915220911621817060411847525172082064534749603373768281923313078713459637841183339670638406391649596623236555649228993464111326688513356826079873359701113803075265343589552896236728468293883956202487391440198220396308955086036549190314511390960455511708435490198508893473405146651993231966943859955632757732378990581862457160041607440938752462054275531381576059097407536936679665651499856053532870045889758718715673381192385567285499723396911048129102149453094606550575194516771923522824722910673659049146369207566105276569191646854379798078834957474452967658082968353580418304053391227550929895803229641190124553257679599183042753756635649937084477957684199255774886642092906449310757696815412811265309605841924972145411788346244391562136264985609505121808013186287025408778253007075726396166235211261735316004515829286560873357077242209651351490381566575923984536394240768381780973726396683186003298726079662733855141113350946772759947443506772976975463904672782208059445747207725705595227340482141842882732656935336075422028674561517465023816546492054609256331976992342348127318458687343597758975408874339746172804444799865736383251881583558096579759985269412789576512875525643090743615058540895914730677871314520292902216156609832202733014513286860556199387103247786516573292791922596012766255116053486068768248864304947377083099877949101767571296576959455288849566580871192229118493909597769182324141904244237124668626219034438594985091552468455899180303025246205152782200005924270332212748681381651454081765121973121091208221815402476950374019858993934581477597049893288072791729292863279786288156506671401754517120084276757963625866723550974864353467819708466176172120906282194756697010320111029416526208105231529597692568014041197827689684003471762720829578363648572311648647524341771473108841424420516190981137129666023849078410739295650307241151553017975218465097752196003343180327977197858008531101009664838162305946152925620906462688560199965598469481283902129877198200347299967173599047156524839471409228086034840410077931854891017636169401698474714759743528752388373972765338618887282748027453338725761147661225524702617323300005080075751617930854882641288617287642315414559630651225952928473360685266886567566206573207390490346923250964005358118670181944635701429987434732616719822993940262351980624378686819529342043933423667139623665117661248820456132856481950613991191482079637413538661710999093268565582491887439389905326209054873809800550455743384156812433172707824358532803777621856525284793008372547695659711524211199726241186550910087857961191632556690209553451410962399424447082644277962512637756430768351480306385377116157365236631815603654106502949926484488694986667877224520414747004544040847760564591765937464602762419424056052134439092061816131795102898920779400059125437831172237415888920678923866552915697659786100518135738073394758809334938274373573401372491129045897617881529837918632651253757402456901400427548793559410814943039234197090017516626953188320815464463931148098861012435907605717322135297731526369952058728571994124662906921313303814832922493068959039565841520402169257079785846120369866166656008397511356482007582859585534823878404911655800169981135809343044576585179580506831145003501735679714419685110649009455613882788511653332174395504184623733272083175626379904864240682717070746928553649945056853824378894175584480928638063678536476529110754052687753076896336368484317960876198499571088716276786238551955140723777744984761088598663454243557059130618119944255892823064001582451401768972208049336025088407514303443406716450987894861972715203899875010486872715159818279388086401753903908587353495701543559409878817060496688667886150379846593909552363060721714323327291868360866535502281860422356997420774503473379622780936782567937771961484593398627056331377909652422800498541729775365102390147476714643667842236634701036997775349701063715079490790706448435738108709543255301870446030341587937624067942483696809084224177560605049262156857149317591071091411723789399589487623285039625342337718574515268051700493881419145054214381276040152288146479450688539084150970396054428027717915735919645804954409532328533221720746939177934964345549974563956816495237562878947136359170830943498961631589833918565104248524178742589784318472392145176771274605042782010436601703058487613856091700382689096920384091460169193977550804317496481575977596183784004314358521841502670087579590897049954031066661101758805860981516460538191933528071256791707245639908106336274077790180961058804117352425235800659040400967015397146560328930943294075339686958987780397609889810468548970898893204887901799746575137572018233006994404647991938960923329353626459760557301571215860193049644805538051182008907083228805453915189196324624747498036482079604413121486020015796166616806579514745252612673232402071746657199142856061125613177577263226001308287103527782389698860093796717568033011962226933765144809138575176115361545472040899647689442913701231412636739952427819075856925572390339196607791296668154499127763470416768625916898943853136622338869660224037055847980817597355285904907854506793249378460838480802507886628889398920266383354858766498100765913594827454650197360496147281501718159688377239388938684137400181218447361125374470058083994438600636502790559814883533817337849776293592459832808509694940536617195187979208469004089696165842837224380346812423597946420389299270929840332156131748299209334064112398012780504761604050176758612892206016112098402582239639719936802722846699258425543979645436328573886972286017953815400516898167900484814853159660799862737523397846189251449456708603183410714797835304218135464243295197812719146343993945271189775417919928718375962162270990693122496176038484279357256376772954180784924097634358518058569916148658524294898782572355684717453936147956696240737887086583591626317063271446627260357255893517340558538049655004908694016242265252601491838610731810699820774340003821177173120783268399065006115517104851156674082377229896843490769722445275935991027577130860625176688154321864126029957607574354555843226961595217865293192383792532625658874149065601773826988449080811460903156487120518668516016814920305725427042308098897926255771767842540653239760604797376518605451323157414528893271525921351846720513114192802945682806868354862118013470640704104140243160234763089749936271966771167654706244316118366868057230438493361423236102496060779498128563202424299189385601551788628511802806062345085929468929706391763830634186724958131712076276284231867636869361519588584755072027571002183645845962761689314362373971283399692154955975200048354521818880415500104497962488977703971555909350523149515063608706408484939809936833568057947289505392329015098362716056404964317842597111149760494474889218820322569382754509379908143206847050323504208433230084493774530394812865359606159135859448610537336517872449093469850916756996354627249001853078651424911797224597332677142615515904754774651149989685207961226741454465692494482720913035425417414446938029435567843721655174591715074800575755927990827174031566516085648588125048500428865809691821688800644375347098988118804721614830573800521328095063623585819280393000061482878954554659966218822743782889818455853644491463580572425806402091199743672617026755309261207385120059567660705297390440995418551384391128735548955571236535089774247724466885591013709834980066646695909226337989797876783024627772814810469627687835056669207099892970602485633127889206730127498869009369698937972743963158236658204241666588991784685675126482116279759663968564082416580515313656478010485229489871223389409843185034791870650509318998182790911074234540793444841763780071164993590071956602442189185589288423023052546448933482394379188221167030026522997081493816768350398089988429237457387324589257335772272144819676327318028495885069910349582029196516343447003695397768397609752282884411300623258976283631797818627542829205116189287803666376466936043502365120508286409527061190970740596351362698956405748068466537226063782013546813641574211314006629512393873609056189565699713135591567654800801371025356351587642570351450984929415788894055667069246074524206729219810837328233905299058990934241289490056036411183622567900447087378433916136555109810960636088482085901160336826137928336339294453427836477223821908878656168346026005475850552669851847394916535613792312425547442094683275956461670580578886998863434548917184588058523847531415591428706199965998765868456178429184757247535057139197491199580921619084452904388185070361756316472453872000134797126941582744512968773442717675032207988872578199055220412441426787263119336893005740645710796467800693551611201173184557136891031620028794425062923400442977265524955831671530104645190164653817466032562935598082092928203631741042200462985132459165869829490635935414503961956024199143955941983597206749802063225630414923502433379836375806514733237213379012339559442230446921531848168949478471603296104085158941421449887900335820600582661661586051996924082741276517238158857191086527389181425959152446851569585962176629663639997962700984710579662872400601413573697078309201444020847450533539652904168846006793584039686504828574866781882623847820878582798087569646251671963469003704910371936168331642996835513712433551625058155495633226840259566959458638015328677539475968502001840617124162358492194468622867499046108846509087758596735282245879839376962061040185763008607585937713287992249562789604192064447008660564109554039027161228286053739449333599022570919635150970437031822874082591180299059330781015684868018833537602790000467713446241841136518137646832999784941278238847214384027073854519289763011160187884826524909234066047516487556267690148446844334421576543472444393423755839795584454320007297554240272309669594447282744258747571511779560862545626713249085550647237744493876235934674242851946525381822156345113885090363018620268670853278863169913511549679285940356892485017247371482885508801355656469209351619020119727465254257954175427414632978479545910477628226293276163979028459084803643467494386954328289509248076110195495804832979095217977452342029420681253167502976537354736951074605639630620273386331515638482550469170663621387114307083359625133778744993610627171172006167484318509903093260431347228657519101849668482672225012001039113795591233321853421236162708185007983058105058365377087037878824391519928691693939374662181708263425871459960249966978721488915894238852743893232310142700276874173106791242263112240509836546280909988798626985360235509847211481571943295375787310238666931390236902081569724692005628318573195421516047585570059692460230303137168529115501060184080601944041166736874568928436109988467064413027951404887774077908895020513020474295422952477576035791538073273347133571794439629350534488860250792526986202889763821048345478645272321013352306446126331495632497739503402440610363202351943654528605646467129658210947302408603635571213698226651823893642856380653094866406421650132584820375420552699483943841852284233663760092949781468653636213610133859685464442127483699790736712455058671345306136535992319867965480546399011464612774667741308786122325887063181415076421850047813462003464727906746602502164666344135287055230365765178625260402150759685615815010112314521381930569087810769438886235688531833700490357046108419398304581448019417772057708668145401262113455151348145229341275374026202952305889932909800376287019613578727891389845240711906928489555046802139544822408236057970305488707735010871413279793019185466545326064913096309547856639422596442688578412658279075363447631577505136549813065468719902095897908996953500118283549863074653841637043490892274181738977919550747767428678621342482508030770868928051393112568295531052591002239452623137137968866476642612339715154739539756703539363705418578475735807775828811567610329335716220765978676921624388282468966025991495123650656637654401116131662518944395012488101214805969320069201049360512162728769544966961213304562201428498683589729738405085199090845696980265586959067524186855410121366399448583033535894825740057567802766568029716693709288260352314783639042969130702216132941594664850253766364667863253524942636715138559753347547688156259208919441410507935967014830454098894443392920504288149985133741997903321017054798995084006152051955259463574269776621763140154304559747466817684558658254437259608762268447800067416826236088745443426204511205891053724781503797692608361986738593113079297234795561561137907521277169754246592078121784266517231864203764575379522079297948932818425306869473580337341926817289024942490298757244454345721314540317451639131391760719618553564933206563889079515078603621643134561919230256537698695367343847338489614480007461626724641129410605116923590841135665182317360802078084777564194856485905096764256302663936169396561042181328833327775108020471603995390698972746173402039987086362587615646501717693996977091167086786380884796610087559124090231289473640161904059971568773737398750930714441830534479716539228119019035030815081118135007349259548373244865548509979435357754573949655458761628671683459747877067450259430797036056716710568705056605211367681754138785429554986139308198460711339968137567270620535754454170127156144563697792106743782307995964540439090397285557793064128495228873377773806690893052181579082072840656859101765036392377825067017963153643804575229219529151263296914659823644075014232815340748832299311530977273525183814375092625924338077651809818824487985920021116697189574874061915543403055344636050287462275915005940418290748185311568715995841221524662040525962232626037115725652362450113856628252075632658557922021110738242808109033361092408096062621116440074446665625026436998989963290942697986146181706697812445981355750927635881332792796308963111255342458127548537505091188618996442462517330156616996782036489093047877785571969671648521511606377399641160733862232435980370127419005046390521076866277407744517466475067474662662813081046259997477956832470763367363645029475475308755835301314162027996903290254123481320444701319892687665888962504801792897775913287147023870121598946305795402608197113704494555313002850573968160714529381421670355611499649882491641288573905587252170494484532315675325722917014239772813133089839757461479785136043330933882953687464240355946713587353491909194404782242166600665365615156731585314286635509132411711111162235113547616020239459926122185158167390009050186114713034019808161840317434837829055327364725036999168272737265364103777462716789759957343265974680406170670281141039313297749523926473292033995902071127944104228629809120290983672556564170130718031325595170880941449369339474188535943976756999805211829820578011357781572433518010243082325659710453108641774829281724968260233820890683642829362715627085263712587097946882039206311298314255006655095059498292593258067956732295284357417744629396081653431103718431731943385435051782666394266379511358493877738129492947953788169798859816366250611647877251388472452932175178702099410985691965733717994306190529696171659350818666677399112885723817638693214380867992573673431118551956613998760073194320530490034571301185545994579208955832334056349896416720558851810487102664916627595399042294755808833793418596848863074789451865100921636267925123564227096910124125539184792343693182966885908265322800460876788256024842653920543780300274668551553960233791591672224639427757608482007481175518769289010223667037143785910227651537431354386288919688241611327391613782592464683917785863502258452656914234925058068760489112215899635868374286829579185341401076228044735124195030685685340963921630016660831223971917007244402794431268932216245288191485011105872392680931758921618636987606173840248108856019668312297532441735373853974809104246688003552073885145758365237217621812341574169331216947087456306801174953531388972587967112129325680393106543629747147494020593561262726837798604756710591739979922516529856623875996218485581152507512339634393708539929430676441139954930426481274355111832944473437467788192879786601034193766013588164289938824469543127930032367610878096807755928716138667799237692959096278515272631876747625104305312991715795798569048991083593597281520700330062537037915649878923908576256123373437736453559694549654560248326855551651384506019868587794004479642205064541138130829757360261907216941929394530894085222078402637652884091907091051267566312318732134445467215570517215681081605628331779645378607514003029744959986197404474931852595982597517139689602310480503991544056776443952060644106465107766938049908342671233741679408040772241589720558791141395736840668003525352553832086666251105504934594953277165805248903061673046481793652774084139576512651578375040401806235558437826120754093696233112199204648811572836212774173848089443097147713179096420253737581586290295685097093930220090402216561755062285429947515270739346148701380147623131841909163739089731617111924747293309083948676965092004675589537886345651386708733916585884212324267417881308486347417928799751615564564357766069150375786685634273568780199365797352168232861356083778589733095632889730813271939992508150765504947005504968306243323002375112739281069434927650672471482546237488115565244734302914759418447179128832152232459413550575270893904156248638187018385657763125484306953757104759256174253923492522419231068641260713401722583182869589913748297063572318967241528962416642108579797490319042206246367264315331671233636671193141831356348521902173860429613691844494165099580890049242757483369178084303466576571048030224752244415074935099258683909809494540647998337066027891142498194513440033175668680298528918123940719037213634974138959624593673861273147922980402335743582391012040144948753815273359900962964833709847111785489491314922093934967318162737571578943822414350275616844540468636551668448288189774116142012072240041843794631191171705023049178628076671038041762117930012219917110884352874475677460529069481390009865292128513742404728492324084334615001746281794186108483860894772427355250096134644901648563744368824633314008870168906392019408218180075916268316590930132346734828181638343049231380602636141815692437896122922875497175773937082365994192299021957838757771507149954409895981978792517725451658161718530966559571215117534367635179763799485458259679785855561871960417663509538099655246579028552391177963954138417903493124437051608986415783024068657413784043381083694752557398196259847678104822243381994087613379020129565851234813457586750696374583095991893015242691243806060198685772322669840788268595433173692761815024936422252394258498378169704950433279443460184397332682521766256375749375228091682794363645127053343464482449572723321633023519272636982077988817765257316876563793970360934563981145229651956374468014514614624318359317375935841149989198658423618093968793984920403928685003571880150843869601328194276740936386210465272605876740224833654001567380983831629322299009626342521864027133248227932380147501517701047462970608554727164021622046240973771471429827494286152094031703375523154848697501538053201719442588334208455166700144707688869305845801648122333759866290428024616807757933644151597020181479158893645566707191793609842094475313383684728708865555301048846113508160993642621517753815121127551550037207162136192227914269911887377847227212766647217346217154613769642012287378544223536862909110050873142017778395695996062021254442633348302126915093459342414204504819507335507401986805963247581245668090906671989969408063634913820092182119523613830884750721140019121634013482440744754940141453013061068337171333464251012397407637303475684772309460679673380126244124551012094620776962630289552996110609234177598074584551132036076697713134599045049216495897274062426675433285081594666960582692977505169847082764864639917525420571352538808807568197173270998807308129586843866544807252649652478715977577870355846387998052960424546768843029914748700249532169056737374524381630567437702628654101484013956546410506573435726081337803352041185298770130370498841654392304611611062017395033851163857290765341702910770580457320427890072641796350535197785042123471030460344263308903449518590644231568384941832715913787914083814510977915620478529487358778721082588911692144786120004307897059681392119889954155352933236169042039139626141003479040994762451346654633473221376490907283343984423457267751376494568039316726406896407073784687167935528552219452674315055455258511761505509693976560272198326381320508827223599374425381387421464691488795970764373486536811415486541197407777978172774772379152097983210679449591155920923624354690578852232032613284729642511192173693254556880496413951828938852752212630023157860388218171544806597901497673713168327893764789970338621627614058160068600249629197469897047842326551092494074543782614575467638118477071641575746252399634256972752193823699788657916842407775367992506810411418269916474431292027609486524605721395070789619297768709212481273086443004627870235238957753860077672687920004303214803289593382884722033595332325086162248818515482590955735304015371604804331319819788246744383612351898635059751472878494390115708329049176993442188725711787593133039373254894524418471958740931415960257715109506994158208518616606428474325925854463731719609874087354309457710097037230751763183682324219439124139070976458495161214334071447517226958736817526973013313854787017094312183797753991035970709812269784308472216244316155327759406388263176760877601331897821437447436795968651776763359701806781971940629525223687518131663699945063221436966219459655244765342448180422253489839585168068683235173848047103781128231120705179533084360225073378970552309887334238111568969796279695262140330368128425229755804102154416747621601783833513373557009608726644491818216573685784540727034895858908828232457355612960082040353904417670206321285113711414473410840310871836302409814398389598244238255165570872549694342905191888021005629335603878758239358867378933590142519482383935146170748729029457879716383303891141963785923291556600717379132969247423819823939027963005667403399907508132258088645712831687080835698042814703811088364074970876287781403793409825890058547110888768529285195839151346747753581220829728978574600679726943148773322227181532580921401920146341260998372354332921696190585132742282395956288544517191284104402192509939805711047620842296081651411026328771240636935920937088528797731489086732245242472496387336669188756175592795961657725041659534864082406640248718227658739851969448599279983382486050697306548565375352349905314129952789060221953392875375931612687162868315868583919298184671043120222532408775351863324309315977486194375975215667186960066611357334141557769502064060882775622993846757463391219479555399585280001798161758390148356396382446532225901800763884753040723676697053174945187553368749184664442322770952672885343985569277787921507018463852054274413952333051494572983258458644390271252636709904349715905680266667233631370215444502356662488916855148509763130182244361537297717823801385714789334677571740888323923730262880714851189367423286681810206271546049673819160127945536417936925727225180184096669227605950037042847906822798816971629307240061678543988380824713379800585174111292837237196705376464367212337522566091395682059328244937819266462802409097612315022700489233974920896998238630592116219373929304612954807511769367861990699171600880339947938945003308655586836882320639982459760534357220004582864853635231847320452898030373243470996561445210734210649484409861537328602724154739076382157569649610808141505873824011195293726174240169131935920807364187702679200150111559282121140364878537286416942648411098299623900380799228271722414967758549390820630344859631013650724589374826625097866848838680242353149937684654185288221166237092583313649549507233616102902635471895048009679223255856079472347750652632515525738434834911933656838384379209312844825114013916153667328519807474685377602297001545696166426868069919848125661047641413220938418873615684807660689405209794249422383653419734691501492294645125572406724994602247651190880816103423449476141738902553016040426216955688995229476842200087193207317283353380750594106785234594761332416004613887823431432212890160430333566243370372705596179361208529568010403787931080708718233585044507903556289204019669604784992487500866110942776861888372988889684692976681273415000663013511233145554001286588928787135310783315780011862109071262665780968324724072367687083196669294487011757916590233506738702748545326934637353681699217730265986677218284086675625944523703426362724295106488488574594870558021617577402492859778236477710871240159441756006566447703688485269891739581144336738906058493002232607206262983308047620657695333626799069569415059529303113547704108735703726944845385525287324044289594242659621482351073510495586438938602509559808994826243451029859069397869246128366354914807648502093718972920109052584951825196374234107495867904828242424466545134053921055730094623026954866862475680918363240759915460608579955133782602599936007695352381354764632136252159269821576671258499734133253329702155498673600871972962859201371807831766639032363625937920455680973110817021934062090616129851024081298105517503220573356439611116716621661371227235850972120157259445575559720052666736858170517337516557839251448388062257578854676423537147994446501376494693864587673847520770885209323461547435781969341352950931165532558879948842511226929075628706922966312140080628744021829746420134333379322436121763352157593444231609636175079962337748790392799391521330832212765872295704570525811532057141691843225758569367113434563148687135501466513101256290608781130117918188099245710028285721776824110295681056562924120134611859756795512795536822577895510982496577162404290279961933861915028863301895741967838157106511192206825880585187693489439206119319666749189941224782003703081354764936159281859143573899416553996686399514708901539594598889547382440617152692422085838720829212692860177883824538115248607587122526343252474099592921605493876555466150850028814327752463810829461461880488321362513922072472848550621234468609846689249433264780618202161410844441425517637231114519437890662769274714135887397905530419072582556378298808810601306444366313416885151151828835449674252146631047195725808869513800046790247041078178538481437748754453346022449238058784553385917452223151549925011055247690535548122170274609436219244150820784964800203322794184861580170073716025961513427264741231544849511480992424249482609830077469960790600479057394683753800122973513499200504991393456266826646062502734891360554158829366374051185575761651778586128640591801589437097354260408347675392287958798368105486682584795885556890481173010136406722031076900400446465717117573315276903961262028961954571343678684089149668318946254943072982869137660089132651896726126613925245177866396284904399223583584698572366940022589437956972645651046192663272514581780551825842285963009238228980629525543800414572841703055115168112011366176246701896204218388080844993502086189881958813541765139852508348686996609671215345064368949579366255382955664005034570771532225002452770917404471550824261567482938766827603676557635666235433418092693582555452334956838956888393634989046348759325731866373906698750308714134651234146059401157118625880375024967307419248735347991862001763963950878220432518299793964004667967625923910446774273507973773658286781127753312936935007232877326485386366099927292924674147315132058652171388737810867051435709132677317950135457942703395926039868928804115363223679703849129124824578825670556170623688624110624045150443221123603123352009033404520825588060707199130999864848734013835154500143910409909515240893006483241375102146900301955066929862745335914219267686311405793600154518720120018979646643501543760153899112104809911702770173649080920007152860968345478581595333492159344904476069815774913551185333821565600322752437469641094940119019538656121818876287956289649347933981638981874370603855653561202650809677710583545782343169989165684913061759806508056013202601866354514857075969172338968557844930412068791900690905377201697692844889187531578801294566390793209870736888169484395532103369721781915225409767495362615661528589069773344881249357480159675671662035001016897178151694269751081523429067369928505345722913416988092559996049675241562695512357132187335526270306387945601448411085841168546645175695381322907236688777800283248411134719920335015869941030078575118107902334159956825474969305039116537983858315040131800224094177057983851635561365246859934785835968408443734735754082413078870389550094932609941819420762953486293585133639201719573577274418612325860962347101959471791026632038426899908074242395523038454905329115057555679191095116208663399136522977636944655455848875526274580544267171765483072627186381343938093625400191489203357511576258352915542362350230533533776150583884887783558922777538439326001523386476765703796984613780632058806418398598242488105908710349383939340627194374626542383178213626306756821461257723582530229213634693099804834488049731481188048765899517198089171547628966015187598557814846418373836696706662526083662010507980994334630623371043501984087837911474340253824538305875549293594229347296385134712867740440440769416790536669472956580164128457240900629173464834092836023809148231863504684849742651262344404142806426594290760306926916731890410544184702947309850285357488091708023826170135338374876703902663630972162109733568776176784997858308098777646563869205735592354047765809058576985779743185548292144213140541098637451965136937308183950813149181303906803839831103129091874962573459777257995273342484789889441179460657330301421993441903872184565435628224741104291577023208028247177003589256053486678602567646348114845351396081971191348794552020632318664142029717079277947043280697664949397046568820698052795116827317223942078477747225344556281894217454355785775804483146139345671187864727707820037129324830230107831741201090863624221012589771558932378839000264616240800038229267090493714420574487818842517855641528190432310645116742484428585793291036904724930358605101773602893485907741801868392443628949165980727844305739020268893694714301737778358333070547387464147038558492100218103107732526948623144998261572639547443852697536579843931627363011348906538894780933810697172768922866851836811260713842887443498958918165760731700117911335407373678000753355857536801762170870710267872777356867516248602624830028511077871107320858288038051516391769309821916579187863119236901202149588776645890819344862385849475468553252077982706207876385736144568871870038900842818532661256099617470795417183548678839685994161694265851792110819120941131335311562063090401903718743013605758003078425982679019088610775412989272716151337940282390117455709892036272185833252919948418546564582139637890996351122966124500368955590801025360408338030852248442476254767429598476266938888040628761453712975604252072353795762329385610457571549586010731729644876163217960576020666960877176957102468435556130981379743627697668104921674043940205394005015818638591035108435783526482225792558790505326403113356053556142631744639381536678237725501422616311542216467063334638151248789074322928792906256437396198563371510585144390069466120466451209723167495874647780135154989458198215662450561768621967933668693842726783216125690156796768172597439348392408437723258866559729026469650642092574562304932873772521156864862003884998920869904249286122876377097783056526493066156304398194345424930975417130699683974061310791893367029066993159258632390722883449405933767039521563282283126899703929779317291488617779125463211718328768870744784581436275034165089458799433224541044267000717688245464062251762048079819658230901638591456868184262805035676514035984023380115408978456949004994292536055563575125998413266294134916539339423596163295785513021614444935191917040850849865167590968253345933197252607067847941512660201260740533212771973896140025492700433160358028351542738322023919084685527611556272740854323101503131589242783967922650293799354465326761940692962440713453675819742999157641064449305103645401192224963970855265047894820233665530980027489913314967780989607997246888831658186658503819945977281078627117134625703330602713845993504261428026953128510511561491349666813555985745486798174346476325872702889310932140439527690152923008323693123484780245719010813250692789364040560158989722805142755360902537132153627064951457083818504838091933132096854029563573673140364647845844022304591497237218961152213193030234605418300515351460387272417642257192830200324717171550784112948308401827418072619963912449653529313729814285738276106918248701429547667889183566497732248410584698138402124132397964416977041510161698378201289015336061568858111622903249358419981205718673217099528499305795225685523651538289281258633859387606995731367262085192537922519024687789874814709525337209386849900646029255080560785144835111335175918982543628448358983449818536796568189931253715226762725534122442006879889049472190261487199274246627048858651510142577909906178641914515323630013543261650773342027521117342795386724530035047984865201117131554511710765351985513957787987372275547061023882853837801127547377715053924995000040667518291373243529612867558941500643060746263168230794741665861975421653080677680680518034434248538182585100062690032861474976722204328299353790547077611430531618092863755765686635964222741330053995404166780720304064957399008414427693454005895615179513099252164776798582880861212323701695125690483776249827039749029758831505250127101368161382174420501703746210052531085732788031130288393436435551673357490950188528461083710979125275205315059342392051297498640618123901283254623840615383622876221888407154014665593197228763660872878492322199947089749169637678103461282986154165955851470196822535486813138473660009029427633391373213384034355831141122301190817627596276261379710710012648371065340500671044266460803744272728758288256236677877336301538968886113056923912090512195726147139492529227624517230095634993660165769283063495385903537890067126955665306575406022164650655948959287857604857141129462729105496290482910236488185974990041219175458261834733203365693641821910474444279515635417568224707402866209462597074706678322313940775407454826691472720384790611458777597869835532881551737598592688954295015304497117501459626185630979674386618550069842705116400167445686136200107082198076509550950508898112190311677709827665572554208521942968908157922231529884849020837049913748285002156032480725126318973117708307947362414930636157217513625145152416087917421027849665571001456158149124514084555731950014515254871657429073800214567496347106282732821709210686397114009794766474782063760531276085933563580040464776360311839732074291142013322926598292756230528238593294068873861500624443185580869807989451590242567447621346801804499322930884422639591901654895783417209532132738750029748715929264866567848472742130690490913039978713240724777138253854621971274076130508975107540933096992605529112803746961089036571126815388825793456667181017105639224263032349625723047852636139252624748632059014207843047173594782093055678485160407099265197264782347459431867103044121819704601148770288677790013709645291862268046082647218801237188680290864824864057353033920430745539046789975758232039903717506049608264575386221672376026702258740586269144367067369031977154145610031852745491895898333860196444112489266242799024823626058848629600007319054197031483667240709274331009504877559917557261721386585955416082109342280056626062143301392160736585096268100100443624787804157896550469175685723426585313598375801873753572074686288395340598554876456263590024531804869109503676201781292408453990960273356340325177996711562846467607622970617602206322330406151957393389412463824760427503252832811731958630751133715995247276392527816625332839000023543778449338463662381285591475662787328637350793443814729583143670872899485942397161635945618796368322210276506377632150417782314690399146401071099609896339471502741091496496163330693418025861419590584424271082484264655911973964710365497910723027850592366598587709863659669707092967050146117858268997770950341945719582907044648687570230298340662082605109825800401122774477505982768960687754004047542763163589667871177548762706585564538893216276138578690652077631112686935943803882294615832465986151648847234912492825824560176216584109132111141238681559740723545917632546405426449562128493115293150879657215477792550687463093383440703085098922567691083314447792562336753515011604010617624440871870191526335734440781927511571964983589584077590215197906991587824389855668949978688439649291650662116707491490648182156135524659122386524126627514669261937575530399580836777177979460693507646138929347403652022639051803147999462358425271272896054082388917646357864817937015820362078208598132958850369158750601691299378380609383811877619028164352366711483442941488051635176370673752460291874749625088385665248913091619283369460593784212770951279799712969908089596025946224062737266075479626229040852715022543941271985304749004958819787937908286204471866593382414008142129439451963646666787693740909879457899352796833237627575420295650781444677794313481366544995791758172822624931414469156847819481059703468678329408000857425689748453331265338403959818666849008598607915753323623773543208389267685176113530153426433833928984691951125393043120889206599755018910970631245907998122588409077332692390695747939523733976569922581059784877458837615974482474201379047218703819083821575059489723573907665883943476989115008729652835317846138596054028274231183292175009415159803821460267794629074013686655263871245115028421615340490657934209986676680531493489467475812492695582541082376701499504929108425266342766706493336413365155851038369580463529715253570660038570939569629410417920835708563800044359415618083498563384614242283714687016085848981068631911027689693283119764034734892474937905106528563127378914702704604976303789018939824702590478380702274623580499440232234386811059189033806382483936296345951775242804715720189519540457846499353407834463197997156670107747241134623323372629764635758319734457126522039122328392652442859537802507889366700099678489454244049853838104051497047142794830748064372892309087976264005635521648565383010549315596487872200756224441188464784901995799136311229566907096950156781515431273694314517608745362885042126380464056750314684387275565963379582589533041195683872550074883852852953883182775450243121906132120345178768253276619198040762182425036064447670314674391163742849343261580272471645427478237230865830817085068532223676586590109871623094072792958805517931268948123545151533617531390159688057256203561224277230497690365870482083715879223446198472192419695588124942796749259911902487186769474078465511126099095113285396382533967994199082820217738143211069064388448394071429089097763737969703263560398433574511782852736784406349224464859790625874743864384815113878237218218703025323903277012046479618362516979180279436189092204097507611911295871370197740596773084632679359322970027284949933535912488069048875127032734597835300135812380226682225929896812936512609020391009492247976649418119406454736227191819027045620135827811050828354387528063802173639332199636381225878302642008773126873539892608915208565300834369791641477039196768454674548970569829141807366174933195847767049031829979145652643841585433103286873159837094422900815069182544988761236103844313269818754318976601235972403221838295912853693874159183952816164083262908050062008789973502961909060475566917141472713782906861319790434498655309381201413629628424060564038563863113024391372617497323166336215855049286100881842089019239499349137923689182081918885696539407962040971350867850472816451355985983211769798519909564814379064806358667279125287476963064207260005179017171864263495771892093139054732282506114292329162149924070877373235038818311638696832659230872382606418251385283860853138564083364194618304899519127286444466845951802740931688053291604305746003911791157104992971882812162045648708266439325189670664786193138538507943236495342381887100166286138098902782964251359197200046870346627372438870341783596691782933664435064868605146923012622908042218505947258044061027428170600797805071230674763502681831538308618951004786531470585911604677383704074885580051632419776875991574868715064980425741973619078193921252008656335854141883289930516243190036259048714815956802640650613524238800960972523060233458009751217941270336045040897148885912291402069121946070906581319814890653816135659751623192937302289167291133119452444657702945931115853891812121139189113814981747036019022241759331797539933776093774817680258222727661330344263732674707703822171139450297907766032243607245949710199290888633850778480113924317697910823083162771431129706959324459192342210425925197672241996919801188275918869083432176551837204912006584587540330638619663958083048061942184159604194346189862499733882578636836561056006917027292615922110545835217288039351304777078059054016067476800607212082956024633568136980492164570210141500963506284715745890292614460993652240201280017799757594803819666854498585776995817461613619208263954402793918386251809263393054127778732410262663794731899993676017164434281327799261153258004253735675892545559406365827698520420421393791749522813881605537380845459373540630706271913775573912660756256947047518173452504601310200936632113342167470675914202866738833723153157660131042017865174393145909479992847625391314172599846378788439469195532639439144369990971819610434469813340921918074550576790474533160786828521221593711009252863064816197949772201910578266171127366051916197005137132964990812774114509895933120517468050607902292058250365650391813484325866230704276835999039181096440157503959322469757609028204936626267906150634961314926368126479445865036652741300962700236650774621250005327539200910489254116098394002105309247259751821513308005997649448410845142824528214451344060413019391989577840130525105743186785879549545712947231757117846554331295585656908192423750575222684992589386038341330542020519025801988562335981545239168212689343905278584568399325336486488775161795513899248860509767364917744294492214234931051854637894848375342769384608775033348181668532974724764230423747797637632251528127059270803098113435108260507917469155913429074314307214583251917958307238318147228519427060908551481374629735083764670278936797462829455695318904430243903698290111087519520830638008729715284904498909534170391699339456340584428371742824531047273014318881377284954113409405362772380744951844440890631254746620211064818955691827704007267115102961531744920965624092848311093199394314518668977885358841861916399828541159161097043836366739971021043516892632301226923154050225609242323922561152099272804481553539849232010072165195079063800610732003228348088151997607595661866495570954057094918800660219854569509913727560553983110534292166228846806908616072626655683379021614691124622945033576578021883324405001686280834838320833204004318242511332719181989608577129468194169797728154351602997458545185542419693012525145395592340312162068792669710754570808552686617229824974165465242078960399153220966363213931341713328989976332489636349269872540188562405668988434546656422887764308834922789532650386740837363500701026411780719015438918211212489964903348068116134201955577423503780232353077278122747992567457674983238554172405348289801277980697876105987333632720173778128112021515044974293039143313133533466547245332606596176949030810618647982967103560800776063604705549799096068746218111288619778143469661612439504872324638999900725836891374752367026888325450174184450775161170480139969485934566462176518054356613944106816002068713498289854970520865662701965371418180005113520012317438879041984146942420567064663594112500493566323917610136415621712075042200822052971891972285852812705863174261284006574171163281633486357801370638102384253294074552071305928602616223197875689388896132765699119549532443837489869494459677061849049243293116333404967699285735199814696350958609368863275055011559071122014569166328643955595229090956111304396653336031577952585907763961085138631941442990845921914395584304211271249299204706746759140760264432092781592510270879652602013234464955462075109153810690772463305557088241861314570573231969106098633217603689400211189968979589293765188597797945936365548370407152472407384210800005438747103694069312520278920743001641077621467186681149366367981216791288789032808289341321134729042186945911997607552739189324413489532694592289364963848766706024268143766395424380929777992894977108054327122604055775007533886571438560902106452236792610427341016378133492144626966739368457993884184019390720661679570894066541074593662592089228701163866971217898258116831802424242284138336867650556191583641385842883118969004193110481204321585551492852788852764257088480143460450425335100376237704487864518468807800610396834962362004888353101624792156234472523963985411781209860091492632351134633873758939402356775891184194992781508948884847572832902183718357346952540962638510844660020829828684997748670697696916141769195157010754779155921560278840904018112669161712899953556517003911457481792649099458340665555501260765528198988836320642043442760250238039068020794095533968675919409517272330983691404176893146035078605086398067207309938879007276963557546469707973261709001500976777374716341671797188003225800204806652184405629937001079376792303825223879004715825477555139769809965630789768770778263074705317386281777182194831902817368001024318903624911848359229456065659951217695019444298844585049478716733200675325605655340588765615625141694430050758782504888288535667174145337533937324193794308159294311947417265283591472354473038567456027101655043370055086850022223951845170459487630990001245192665659520988478043737513395069668357471438782674882165194556865761451256993211342780742362996999203007551740479163647431868783610561926329155067689833645898089391119059196348131495412357074212936223176037812012719395719862772914702206332615569480267517205068891916473948908255361199194686603166913823465080880852418820313633444423867685786297888687217726811917820823078315127903997161172497860208482441983980665456317378549009036648633694993759988776874696039617606116813360817788103514331758478278540765709377432931938342478802467978523924202107464312585011603663893611385788961314216731790363886626025027102119892980805526105621347866652327023640017867959064642330359545858978409839912924215607966027804379527194697191156223889482105781032924427955286480498592324003659817715268437426077984880828964252943262937823576683221885906058434313184610329851468153817493789867510548001537813106765380480980789193504961579343739344423778236906441253629870424850116055720466573128905236528634647651285061605026813562027410170380435647239375006039467632895626462498840844128044898932330821951443439135884454573663951595952749400620924718388353767877442321883999710453307857914438350272494621298395657280692430835071636338115545537012824267733468531293460957739918849278743487462461922183174284025851832431060896371549086729636883316175576182173610380202044024098693285897554409072458482358000755241800767047697619848611881174930996153588506661340130875066125451436920353769179916013427244836971423819241930410285448115695987953888163838017368951271647106632997486358912425037419082056537449469914668395785060337604107116622633550231264084160009730394247183766486862171063200884532798031984516061508311053013918277677408065340458739255383956601726449873345409017818517284358623010401329577890898505188141958934365882701420655359744641107162352084704008455221452362493203349531415296847716343351682636298651141806667252105216307984077473280368925884988228965795497718032903162726384937488850482813220523823537660480598995699324702557910263762065896075531593663918764646571167677134212004355615681677522504217631756554477909508764351914336213091775774622019351009797272243344022888221144438531999447633848064596083867174987781238672111969271469382002589763065975406085656253006638858613395205549512818198701455040361736314393812236812428771665190279573665939696124968641497360648905279639697365463846145582030034289191703828085842667787887971945152799970868136280528134839435274507273324977761065929968595724777126232642283747763387095851808388365770876129935892558171281518907831075551030695146523404707439960116624708048391697111485417097421677843019593457221639500663805581388915256760722478759412904536458719323719678534893947023155209983227434725476809987005697821719844185721467075973191756806875499399374011830162819345544083074541747048433613267308770138515530364763525364517496222995266915010214102580906914714339161411502980163630159230363561800115625375119710040174758402818041015491659435508607259411903693171717909889815262485141671242666659811701205359433221041669873683642334794339429392301258468406369554339771745662849541427349491794072492142863302580936252401771049987465023261545439454957468174741578976653049670329585729398968098943467240123547972156367846256728956043714630304148748989165376379262971371150187591788131996193264832258241279215162155304723246169695027004175024379949396153200900251150837401091700962900929033986739042525571188567318085911617915102552306741160050954480448487573712927873996174262114970202302701161217748447415485090798611381590188435442519249177417687827000349755991590983288658730186438912872373511902408713764824750794833185128651973697327828912652041856396337326092763805026000853653120245614079520780324097137670371773227438192405546036794641989450900643282690132535192257957131712635859327500660535312809105953240096411155775713503718736003045638264117606813496922372242121946912488549352325682296833675110435036993340762400613856972955079093212752502908700566312131534558758918407467580104392010228145829142968202442795572783416251701988206077857207330267555360818866474255677851388356768761264133180517145056817201168487746016244435159538716695017805942619619171541029262471373851829254320577753491117850266812457157441443293360947029753437120856123233920676342374848687984053129017000228931017654540649267070862055264024972662612033938545216553674740159884916870838320688241585712472306888387494317682187915932749975836234319721335118005071321807532884624080703566725907398753748228383765575712127176034609047192140861530284240922722306410994521981080251161667878806014294910736665555848348943990230410637853535022392941288747482767843897418872384842843676261645885707279294823009357686982391225507186197837402210846760167947337097562806454887512444247579053828149596445029732702483656646741628895062850427817375533894620766988662261451316552733655519775277139495682788042010951895288433011046638357109304297873588126115411927624142695872332281489155273908983285564141703189979341106716572537318655562522719628295007190582079121167193853251850273425540790145861415102600968526335550993127538342607045843990424488315711078142574494465579671322237146081442115574005887413565502810997228188616040111819635598055402208286792996555729709422774228507315661957562390248609229799732703913217359522968970380900564367069506617930710171360466077299428455185590532994477362974428778491054757457556362680270905805509534859282419795926193701174043027414008038521844114013333377174899722614098376524571181685991785378183422756442643501177385684529565913853467050932554862812822411687600033154402487126265303371431694355781636048016353526822170613540049388664140273105959905733033064601729726444163108105116121085050937127971270445998438773869376429042504510760749894713734896232663144773381453716150640724307136009816160366382775929502800772622205691832352494154987452635708721600783845184799480995193612210120793505486180229418747750560639370840990882271509469456999815898826750793611218936562991276276684363700150107021178834397261014999251006711953374058628923204522933000366714774126514044837930498661501757493025616633926221931950132021211998853658552683492697181055417911142499902230648669523419963343799823045294465035950524793562903962216766787406592669050275925088138520155593678838167818801828618687591853556164373002940841154658737464399931736529335307703593331890499744290473483486433534553845816893883199733225868462272067968217419097665065435433101802015225377323166281350311344993469875746579941470749986157243078966068714704137957775300452909911853909728459136042650974640152398634670288164120182570171962554873843161841513154718756785950646923840775184272941092928972405590135482628360377609378117146601341792278802562891550529835984591319070290652940009506497472490558379917101059499579684531496796973880263915942429729546324250429250733336932574948289352172486490589497507914367542597976881870220331999921379105010560924899625485077906880016562193204307845518192912909167254630760930288962598092970487784023603070608277681752240956356540268798367552355461674596898081176949169623071058242738125689390343041556825279697952199504237476396607318924065307626191909223711257529702429983267268300571556845282840063315074076617578476367473041841230182457664313000287567698093480795698641681451474087329611416081729936309730418725554303474364135099978713689551809184669699625193196740217349598089525775602155835834252273360737374956984388978793085980091817252346443968567724229035339775117308503857396463978319227401220831407249875513286477305977598184973561253222252242058155096133949228706646475017554270289899182097191803192513222011767315367048896408498073908466808756615147262975503786962309189020091775359445112802735354629763901146672089344546723206980607837340309220753336174191638099461930621588943967625143453092185468819095526310115026428679064726646415939495337485986937009727313649533230620073120021684931409889956148714726486350882377281028769732104497473134383345601249948310967049797929217936159743107942712929948118793032306137133355620815673395474175465917589288935679051416719409157838267064217178559220633814672847182046121275129902998194057498257486811354033848123161314534603777373768142051981930526740637457181148364729739923769800448172784186836997285799210345866054681694921216539705259618425213048420348964956195310971555247770563017266557551262449586619473306267875291578296099314680795394363885565140427320839609520588365287866430951104630774920311289448347910754220762243942647592240149401358256420125365244492671954253430131662342374694091407703602151338355890988931051323570905475176079737313846568496966349342979367426439180129877465890468564386472246834552870547148369890532424779705041838095908437998754793597292169462782784508239606469224172311601545927838865473431501307992543860223040179019530364077470887159191063771852103045695073896536291131220496065643641157090405182842182797507060187491299865636253520058182063819048685070923236647504604698618508438233014657241959379478666377445048248892856040479072452697131133038713136508557114607226363167403983842146756075584255201999424281742477061395080622989610219844444579433198548518196074971346803285319417151002361513646564203362351903293585136222861410433031123250008349409429670891928635584725617261949651194996877420998915183978986994365609174182254281343037548243963948580072172790648411886092078783106596672101609578440175913970406361750142935277051573920742524846522438654021542327680350725002662492908656293993007084323015815753560832739602733920200591000421977957086037525601199095295177322293396974196287566249982037860428533982631860423568101048181508769595573583526981163415468437727205652990320919625502707625184542036824519011546611058501113247968337782709699314761798585624834324385131159044839773500499221352986449264190690504665022833225812457173218689906562680085626909148657637982086118590863110137339564460712343858273259352369834142719967018061776725250901346439545498749221551036021088696906899476093944648483846209250853987332024197813404495999024103707259440039276647208603305953809744713775341757829237649790593313393500797277514884561590413455814050837569397149914436756236406635531716845195324539456761628825119303241839166438663421811594660411814346261227584057654181046563995814895280251885099565962406084542413971187479514967846700732006997884863571540295595173892648255564890219411481133080419408655467382770064901202189636179773736417545054190622820608686325060961739323602852925077840860522410959679630329124270894103506984717334854151725269979262842094889698526425762730281393637754522154297456755224408083793002915157382724886417914215561182301419423472348508993017089720668767734173871948990146049127179709826256727720162659153333035028987245319292124923019077280551960325199166550427510274234816846521609749185085089340241723714712895989390384113511093529423575401734860435952132390641620700902223536752454612975574010412998559548925225167259531688713218284302995442047501410459568768344339626106442027420996291585465492629940318054128110488624660510141916822610488228624032904107239672885167156828748073324800073248794282079152165704738672819181732647583134792640647070437612677907775118677375205759440693925497192627197669962608222210033454624042032980361626906910427665910403387509652532767608186611570613176831035911553628759273138792767742657272734562938135861708514317235685969356285363710335611415563528680281870195718341727146209406844367761116479318939808036139980995432089047896573596458632617447868481426815922585665250006757958810553086433853198460154619934038650190078028596366358190342991034315962287320991074246112039640437087169612432224951176021071754513850076854780116820663471057756556030843701636171032836279461624251520253657796585100147385205972945900803755350507540567261500805067685190322750855685474662515550409399374564942479127366287428428409131618786557651474333063758324679692098867310738865960608307668507617983490860176583274692537988432552595807812561690881267913319876029838147516965290962742280426330502782235648454289597847844629242428511844040596434298598277329957740991584629937548318973564716149364444572825770051171282115352792409860895360374683663759563723544969663516535009226194785581707274301594330405757687782182534850253006902096272391569342845453030304539966759026562623978435215705799284882760947345865032068014625276569461104810017594656575578313654699477098823386501283455094421296120097942037442904496631875913803049040298940417564655632317758950869955781147905662936850826625463559587931074407382331188375880397164311476204832320471688600545229305926767764449402278694658543520465628615864646973132531560813395866609720617273683738480609345125094640737571684866465385795778458404629514724564405018869880718393078832350050228729021374131670136137292445323191816982204260220360762483907667217220502551077136174127201832470650261582533238738584320254727953434667639136701088316498718421815287229977695620861835615504121208461859204451086015443700986390406220341526247040196982123604820119425277519856787405845492799408218575367085265382276197929484625993453944528466993014016099068788629135296568429569311778000944212680426704986929147489518990894948289236800710039606375775277873326567869304380656784007087323002968733424167522055442941878428282439475627292795313356008911645465700378987712828023642874406756056633417673664202939927585513795596056376745386557565852395007448637548670888560440275727450308757693091591948200711503847917137520691275815444200044399652738650147138235908862757793200939034114331325128392064182476500310382744624954056092086280372850440508780685360451204631302063052077096655060028525448907683709382435446244731654086124755168930708186660921487748554308878150045241433440219612812376796857046287512012846474167970208269533502174857800901702800294535319575536366093222483195834489844808790196833599572175189252443802523787276714091629049456026216922490401857957951313343702776096301613949425076862148118373103488085743218933007972620955258431690916341675136732707230724018620934683462476792024221473187782472228443090064122409273246468062796025658554902570756323433990765716113959556795159836042690700673370734895821146406861045158322369262614880343559581640450570198144274673598579564670260677080316807198654559374494036255336669063808431208504168853631188644003051259007270097786453786676242688502625780646587720911539464480478717582444747177155527241176940291169831943232151763174473288713528940656930760987288444278497802557408062577025882577142170354280523618327587114176453677805686114537715538880921072668001485498311047393654783736921337729793512292169929195396959684134155396117930210584475549307887341106544852941674005805730208463181454988183712799307747627412610584408911428889913645286838198157799046316261046924111709129065692964276872556550529157913135222675173398448275876013813758298422666081817419496723901876359089636935102072533967114606712307094659471200435546661397142823519624868185442980607053123875121641028465809808319197248760433100676636941432815545221375953078400956049308702118444458341886865228448349378766358631290222745137259171927844267296935417079930350156105717964092088987536148840642951001118327366631147075715032253807580636481049380641662714937649319429243281479198719640185737633433115309705777267347091018420591509734140994867157953126922765119968517529488215325422000510767880391334768313883630460458689048580808176116079799993669068284789321962042023755232960824133547995712956224308630256545974325151583376620599606789453907603219029279441288468277451458418977444250918164331511966734837337750544314771786776937370138503596001828022273359949318528512046000009384099602034154762542261950153649137174738349084412537626182659130136901247393799645870224915845136973502303088206421178885272518553493288699537038529094000402793043274789182207589991839108620134292149743611524612650644180294398868802963915782179691744737757599258604429641080961200653587045692604896230239102463702576807514341342877480118149320426282623062967323984794469284662306421432746413799028943516312816519792413123862239750237988833354983916773620332577309592293406902126108041496579545063160993724497114360863596941809277919198349760544564667177253968039441079504467593641788746924540997077740315355454599963640302841761739643096927929247887643440125623613766536540654824380949241068508049071428270054134874460858402419643726087558972793096625243791744190682743518964034223980232556346774950459646586485356492871945746304365585112503878712236940864542304889338202158535518174489628298576546412833567999579048654008656245379180630496551268974260687902457316496934475153386912734786005703024165877607447955663046969550352544768811161954340046919752812628756974694804872211385289644093727655770112614974556503114265736305604293655795861350094877785659140175716173217841655986483038444056985900478284958559002141954294820061620825792028621873058024765527767110762273071404241763607511188510314204043092337724277616278008413141662837548659008080816379855077964994798110474689906217702643335777457232753393041708849868350444235315054532018049877063046386425688069527888386062390149685701839940099177776885794384337282416622683314258738672303570363010394093191307297336434947072832776582757341159592485377112057685968591546685105539445006122528339679688786200791966142477074332515288439074084188125829715892418444309664406404660544970005597832518456947014744199772662060352250022706590611254936034491345001184494291445435342822311641991024207786792358745018510629684878518821332061679232714188348026114996468721166267861481958320665113990760274790821925637527913498082918152811540440624722717633492477537043177394567694734728544476939037241650177108795155334118317304766355078288919677859794477966751932786389840303756023429796149988766007007121992829234047284019300758843268353631517505150292875968520592868854378224184651448543226514574342447238104720191813617411187279324251419861112859686028665535256096982933932906990701641236535649644959807481254136700219107162509995791782805598655275806237612042949808845029076220494124026714116542418610976283336417256406582364082043652363718197130407893195963927553760535870814461409060486231191813335036585035315221801069402143172359013454772272652769330173160555656812515529505927670993101344232865581495556874696447337562260343445870526470548375405029339219894042381470643423108319811872395000187430998886393419950290812580496118218988153169375128435042053084838460868263905220722898366000165987001852211364305126316941257235098668345310084339159532858283908759753422888017211763718709657928834564798962400151422308355374516130163805370126847851309910865017415727236491838745340296476618962390526515294174333054426373329714511149060785528249489403852162371454308363202946989212263082050735064709460863793516526696056957896813490550629910386462001207674048722291915838902578343941786157591267699494828643909473756023694675445298997607616830741317066266208002292041380954352841456653008650149949822135540841249316757988750384655260595536724212684514397401193412533207957303550314552971698967340064567274012584813260152054987026391215152655514666185150229019373076908213988455496859076596341406137019169557745016930658852135233803653011491955892889988709418230478732143585887151015391589673467016890010362100834111563659752378420833369740979491959210401861267342147052345063275766012675328446913754162073217970313837721359434559678548709844219823245735527394934034528356888319995956229454027369224192282968943103214907666229862618619299747603487247293748799813330222151823087025102746698258033914885072467219157100185024933708533101821099493790069199960361734395700278570234004315969377987925521274370866880640353469796540678949902785111400090463016918651514824524497913466348784798215813832517400321576860958299630746191071625158566005706651195762151472175077950223619542546460292119842758802787964822423365670777270636249281043897895390792872316198394361455504516578497631618978839675594339982723146391978563727291431170561113192240758958320831954692059400370580219007553890601813152705525623935884130868898231528087875715896975475498946874600856521549024667224301435601681661241620888094486192469117123498782199274509967645928055030955872555239658842365535178659167949488230565570545351183346659117720002762555014322549882855363284461893510275573491927892356711925789155302118070725381827685749392923871173047264693291696889821985463573599189837163993734690140850936982626849500765695390275436395064843064790276981534617266242026128453895694215153371599830738017886693280402941447921534977324517428599074678272557640480625044571188332556610686580620364644465354425773802456844313814944669184270046696468215488566832554621353969093033368406657509188693120936510153552583667508407376333647456928541566793065725161441112598871321479229598932382404174056742390895168052176562106657562103256528117859043937871972165474668086650775499130120542127762580351701364488580045972254308553362188237206143220018648426514210408666884557682813422394438137116487382225677904732223495747980530292083108609175874598139968988924254132137501801580427726827384358305094604907334266899620115432099744554536476600826783368570887263202841940912940241706993937105297338096265206658592723089870680073004728105483468279171289858352825479061880730094722331113920487614786083385965852344567861877155429578027098722683165020116331841568513899365817887704407159189708933320687926450916989657767266085310870797334983317664629960682484243186276900857152714300647829193088280779977198693747442332450825458745668951714714772585541224262244312379096279023696805440407014320695253628126344580740333991067341563011005928400516840754987366957184400482164955081864974904231712218190113240593210198012690291056386974803167180259483929705446232244811985666794946098811638589272800961774027459442111267098545144490762990745423416021400018916539014160187162040685750389619396399093055806517279756390395352253998278173297615428734244174039866883791020611321321284865700151656666345360687902311781558097120199308577951031934268941439798785805906028078884776382684234742710616648481813448285794885202218124688329159192740154971726004695591950888322501708657096796632562620805095518410289902917838415810980298970185970409384731039680606475092656105342407129027033192909048594103198157351540642123737178011470642564114326592656084803449760458820668895248509490228840102632572359166553038681925144274515974323114515961814494201021870742679173902131258012436091339747885668276063724350893157698232054160816292327100493684916361447765323645277758141691741877015946825500412941544009462422635478483824587310583289014333599913630892777508259302135521810621316803195184015956452891815554244042136302845748604140699608001088314986933688644171740893652619475719942399814423093292760922359517871440133281520238725214042073964975758394266664045897949155465266884968648150884731975056212065558232494826511260031465252999646128846978058004111033402874175034706342618344170184869817215097232443890275483889967178223142747215926450285756008598950602904438592270663264761656599123079325142512513552814880258585837835097181676971216714507083244730087460441295022201762064721698121363691887913311924381526661843386158246802947379263394989100864087529396894935254413689853755089081405173262771853639613183745525100295489494117385077321478803214739198309499619529962999855696541957371661315446389102373454238341950425556744263916845522745427525029683299164039385937242472240841592305201252503142091940079345494703772882041478053843668143257537453214896332109349323845447092635295812571469397743271607282390255212508001854761237113733735280992464175418645710138238932271532226779588631833889027553490050369540009226255885322100252005750200529622505680151890411823562093178641185318039422554197756774000787954572234431618744746842809994431268272398877116250266079442476739778722633481308586975449283149997113725872212423962676155587199770859747520059040163425773174488524613938819619410277860083281109929888043980898654718186619214310691602194067544084511262929109640423046735073454109796077480800521208401660186897387188641096985413447122820567265377805899915751329133619618071874813346184866417630342989610964829195389011011371133331668049116661793259898027353414729852614702164081379941919976400146528013166108906361472753889102797491636307233552471328820234526960238282133253876864775928862085185429383962137627380358258675468944226549164544016465221797337779801072573789585976527547882350493093868419363833322042598229514025158737908139128324326513793667915273269533081405267551012242754073560037662057475531725581218472738539255907073432320160919723404039439106588096321036846553626548891869055600141881266060193077229373589382791710270334937637559371195624029743385184910733382228346890521239760743389967178813692002391024846587471118827605357210483269959912033664434123872891715381073998039728814599261802917170826011327361266710266491867976586454039308961233686866155383796898241586455334832764080211827648443325307437081811833532031413197670419454826809931582128364849593463536645033712337436732716485917402070219316645878659393363430406721262383053104020123244170026234219084833152902348482045989475715367034211611089984847307036227095141749104363557308549419780611274300291204349982128427933528326402795457717036279727933548944030651884415884300426397883725638715891624163080206877659186057025756334662990991784858465559634173318779981302995634429016361987575649750151947158080798326573131010536797597099193956333364673801469608677483037570151332331268789268757628580227640804633889421672459283061929130158855341588530747658922090179994447133121741511430104720537075390374480264502651389222946669173146514981557925090138803999904840312079037351580350145829341493252897327331892459313790264427354258518721700984303230835665190215356100718232075516836644268466798118684664311165642161557931775930340682825535449725922960464009868411878520122179718805124045911881216038655260251806182015881495149613610737669349815777929546290405265135710836757077608291453773466414272106136971988309373624328581882708103763092583832059700183681527476685326023968904671553575685769217419229378941765197506940054016569904506646219570324828370084488479248378382268996772522481660305601425365251878062454444896190109375864266948110452234681751256703043780985133055823903628761616773300470220839205724734674078464354015291217755793362089844216135947664562685175420261603578443900686127129645897933086082472479751321595772909804484623478515553633556847554219451989786195672673550087135598966416732642501353116089102499935643585134421271083531094827146850860697203770666823200754644971610062818070979909075814755558347391374466171988712448003330978973811485323714297347599674963676723008094860180936948955319474847118642058482919691668907778646412578744064590714720342775521891485363706604705287377301512396442122716310793973507719692492307414466969177575691889748136690480507595448493183316096771821015871766257576220185437717728710624151255812263725298056717418692854452247619650183310003127323502579831511527310537950065458038253511832977101422319257538565501787591537805057844165665474853467075378066376910942150100575765630314354486155002189456218108978188904119976282016196351607813540534400317928456836994779690709908696866800351334947558083418191512082923726009175091063472384406603936348740514483174656476802550907240826390724915619097219461481787888960403907006205061079925487253387334387848943366402872729910372408325062193401652810639278861883126937294866180481180357885866695091252915875860190471212452084542781815956569552894963299422173225412424990421685987897280882933275152852584285818488594413919976672716238225354454970693748514438878520831942934497644831297223684032905723859016610799003210205484136991060750195768061047721595402687569262375987698085470069951809837606817710718406415210280505453592907090142444472179525595868869845016458053782699834662344789657293835810486414544371852670797102954483115576407685666204896426866805040615146579560748650043456100270667336617643358581258424325673965793789412779208774084761397234316150391567267127835540881305186134246868480719553997757981560460000452149711710642082807565606906192620171084367587647169334693066619567374173358028704210776993077619537642271399163539051329717104369599967346862823226624861568881214696730660490313141039458463150649685515485330704816592358617209160346859972764577579062267914627694874703549124511338073244192684945356582305081435185006139832133335096927900612923901845977045863137706212247100272090738980807337361207461959386390927798489088065453814049423519019350160906903689656789888429312758977486411488984260524310560181201777672104094210497155754884790335511922097307093570621076030170829766604834256779146607864849519023717223436564543502141021522982627485139264295501659575771047931317402211060133615667480929370824210673717899864591351621286018827943202670913165933631125985867279079205376095834878234184450666014611431371478524124880583669186645894595232402433959811822542652095469761263966407054260725232000643107635606638778498535684969014592130074514095799456955469158805566077893957383824753899216569386214706074835252568378477439692391340879246071685976840441907403970154947890456995375063324011457316830652817943720960924370743112604488437878821589547497439012910016900560937394592335386007978439440314867050191107325711721791253023271806435927903099372879416511373436117751694470383970071163769645215076962951201762281800372431852124294746387618485728070259751617299635905577647215500444448570410518306513946164972523949163177331789496779936366391273002761433583434653781469942306925163672212239227942771622853615155299576285843475275554015932892459550737951110775455626632860488168859609277201831972811431460949025651090922028371947464424647622711081862116530364819399047929585960199260048541365160770719419932884062802611787747087379702698407922943385428484420672569893450452687704011282266076901008193714324787099661995141551958599825752401199308240429337681186999291558796647872755988589094915597433376174037717215055039757358791802515576047370690988010829762674855874312650294316327371253461711992499535668090582094204334561655985910172437143960962751254990494975276942743006264367410765495607738148574445727312243852041823070525263947803930331626717062743033537085727791630037491554712711867595406411653468441872351725083799485129526936590087818953626747824039186833201244608494181843514020193574164209855417294138366685545422913113797822861080767259294829069409430694727851136348470948640137903568528469514845681308662669158525354464373049889654922996693388899419991125807363683064066051547343338745455301563816126713327796506324780233405429301839761412586265594180038449250414346641015414131003779538800115582403301551653512289413653618335134786559845178640606855456982248744937050810681787630511947575619160608936785075987265402033547278161554752425158363785355627303512539085064209968168452168347891299987463286031042715379670387024593667598371620669799995433980798315360113740289390405904307775250686268610211176081182665058161679340156118911765864431021565364666601702267578069557269766130617709901805777973936495661604316160776663531587032769629922406659426952809876786174855975633292193912301577333467650090492055684094995736033491273900099421127681664524277843282339241748850689982632595973437095922613778086401604083603446025566424118846203145792817408284327338512394780124934144485465223113422163080090716536624333515481492284395719665779421732954457049891738742475239367709984781194334655762351627434476663107313946237507275166174448141138539221521678489062724000558890179195541537578089773878535744257863363826357171648155216845576824582612857139714805901589222857405377887910821831976073299181963286612405202138582869452585108264413510591946146448909437948399862695407702435423676716198138314708073260711293262113543767807171487452501684847145445390998479661335232245583774478287268826192522448178063343123366422793744372787322354031568956541223695986071652439096160102740129338926491639223488705236007179552964121813891114140668488803368487907950719214753967562195994884304358835540173346757977782576348798994617456019390146014757195837312843454054877589165992591451143373448066269472591307419380644155338751938045925803561613379964084661577244521988642671239039177181841296765966473568172330176410759880183042228185014097006759099377093779640091665447439192025325889270139843371655669925134873020724561987885865904033181157217076306485250075207569544007894431954693645069406576820095869918667103849846846761597549643708046283634493906479851785911943788221251331452321608882274957683875500313303336350558191147899551999208813773665134296280338908021145107446238209358460403257324616233182534517815751076137072255312707339727750191540319012410024772253688162542182944945028082030627773354298478385034401365207653152059112784318473324497545207853522890526186981257486531599048860856869890146914250730867285328349793986437041158986013604122939475145448240586669425105389717060311170412919027276541569998478715222217338222963742637699839149835948228615123395873631659640603615814769022290989250488087748673607091936980015954410029514594685942769619288504979890548974275832274530075612005138785343016800370596743947925678829003924648776433520629747057414227827047822845329084496781674101135768278834806549745548834521071254330669766435444649171355734084008856014015636104455228896597869780488152034939733827784838263935334873776734004318026949932862007175942652949551885559575997276798486431614244716283659056140187021397928264564382974281155611731987482230028707025867270232704347565173035602597513696927647695465745666798338457122159284647193331799431519905776383578499810319103525775993716440020288155685375208493700683595846693303592227922854755369303004257902086882814596906952636453357750996426319490561885825732544285612554171697168262490854520859946260030338170635574327130900687379491937914719817251555334812540976398566583786730781816704391084628740748626603121368026405483631979213022531040550020073232865829271825883450819983349882586180859648556310487651948354935664916117311063028015450432380405373421218178987848332271928104772629564278414856582850124910256239377530984849065084468205652527614674135332226654676604510500498962408415368471487377145198262007216593601798562097059292478637386642925007059246565895899538801852008640756692773934787368119481783140891490462837521588072218749989019126492916245911378613143737773849773838977563325988754029566427791313034893116840866402565103868313525298502236924065885251824394158314228357202337136515203884716768337036318318350164532601875524462019269196572260109262594289493473805199931213159924005871595118772467268571483744949948727185467642246620760233582712645256136188108635503755927597710026241123005324497779641901431070194315681533689875085440339544882434125413159600218716697412462899619853717944697684025379544155571396718796639335153874279100394818852454885564727702566164782754791979352784492841377352009146069457132721307872240979720164794212099941374174070687431474556524437053224440891751809854334209956512590950915942139689187905848273207493963145282454395292283494073314978667683011323959450791907158880806557067827999755249669249416557786643261682326689624254438993129571415313714873471725953968134232101029404213051743464373298191310500937264077103473972784898477524457243654579153994710793576609158178401169663034240734246491750168965371012683696399589945220717485630954139852229890396082589347971318970623785098924546889920909120524281088641924861725857256205408016390249712904654144483137901682299864722708351103481792602462568185484264057158784779288606175116096494286670536350728909522786607822317743095611816645298411457338748036717422231581201951548193147088340794377839155473275224491308679400875692198210247226091757484983497068944970487919232689260270578633609075828280141881338225045745011339124628497539798532155170050117795673244108712309671598547326944865803552359569306657241795690352910941348827276850133473758440721539754929647397693804569862627263058383545132647831442589018218403172043443797193505809380966550766089639481976673212343445326711489347439542796147589210171359260068474111966244193504811361258014534853730791250356878752795399364095456949479919270903747222025620215245985089265367855342841459376383347618025753659111310436145063458044651325999893085278863252113317398487934262203712126041700980147795906256687723168969412935452414186310412650087946164492978986832108580073358066116538489172617109169486151653289374876807544094973159186324547004525835650264179620166329804405103600077221546926412517341257300934453439930245816360481723184643520410127279661022363003103570660778568976535513621828007417220883251986085841328118549385526128801513957112574833518992550142709956875349697592927116580509647476631837607773380748646070306616458834777767184274622012315856772549176099666280625532151376365300487175957593181109445507109000210128093396755863641989455426930258270380944786307085120233082840468816896225645821215899761357480545943281707839956482160759468757595364572233148372485244875604921774244079941569069862646982263190407865020281271139024187247688619079031558948182852947464727271757516749553304079099003765884863186198027241319646961645867259805799979321285358292292617902932346934145636657724940551453993995512826387332065034245963013956539481028061756884946634296758426735807312156594215074568563325257745548670419800652113275984157011685005224632907551894207715692994139952143325437836170171778530719023277164932356338783613295765020309926168220718578458718289188540633758847446665422056645705888868515762093388870456827305331527951979319295591794594994384733602537246386186525898593681739098931256602838420512802375607833180743034409614484838900492999984342893313471833813476137003637763730034731772966215162065742656780585136878273079304086613089862980563833205046592019458056508145292906799777613707418020659482837745103125159794305865474023162710571430864515241997209301681278312698915545468027507601420389738391954987261989365145517539636256271264020017601707306847044523250163563388975536179491994880263884364496474392943923280838609808629135416760779777815184913129969724240519536211073124869609047916234684007502907716985284631492401201713472868685975727014645008162684061795494876205072085483917358090596499686620477356699228601777578557831855406072741108133840599032475256613664906737386227528424543297430539020786730271507520920946744264208896947864906823645877229982555359683411261539162478585548643705334475979832178977076377068677240261700887652995214357001766128440962799705983963357601709895633121055837186364576456323426473241067713021725430446404844667796242079975134640975566553045971645113532801512334909502495342749337979851060720149000722348755332048992040935619128206718080779361864385281092867884208555656898582550284612699660341001686754308815795124156404151160908834868919313042029475189506412338354274994741526280964559560351941599011405422737970483414354522868742200015865229665282422146864450992217124587739256516043994496297457808246753841100160532970553249785119323625042812518845141503447916331006987252905657332218097527055985677571795074678541196579279019959945930739943361130266697812424076373877992375545968210303198189193854935830800998264097403525283610280261504408836464685551181231749248059067487918127681047947126205856204088424926926198855767198790093693749495502572047747907507277618117380040627749693183046654210707410741222053690452880756096937847754206720242159462991790995217765924409880565197898729438068181952576493296331790869527487560459472139193666237258704985066502896367242671891766353287838966977464185432894099563152863143971957002613761516819459735879675161851224390065201738599248238716238626619214525420374626741628913234264285114598682436548734997338821112474126442148364540395855234913264815095493913384470472225920719543039659472644222482649324117507993196926514406388477881483248233725736550402979276628783362982669555345325003850415373014784663947159880082640811344134322483494229734909432627196770566430792606024727018901116336257628605934103617489449475363686932257651573540809769628827846166102486194340758199959458072427699553888018399064619822477797989420508114189956957131218804318547758805893448126866619858116988830022461729919568731039901399855214419872030205602031935423602930565987531500507860891079368129316842873285209576328188516297299129517697423876746161351038885831449577464595851201811244473208653207854562848575849632502414835022753396361543940817317529922015638099788116420236957813941644172541133716306348710079971224254453468201855576847332561603252992477245211935008117277436089967581296966700727269677370614380625414073554069902793512127456668580163131675835261797894681922919949176475788545300414120781382840124041256552023834690935900162349052838802447307275770432132626915856288018721840792309617901311610393404261791062984145453494020060462348438075543453747654961217881080107995989736231628474252657439307032602534494962970735030035175694950438431313651842963733175742907835032702213575705235260483064699989235052701804734298516719413893311275526698064481916950255392419978957703173034583051983710763190889758323138802570160173183082838781948220988602948247086516798519410787962337524009882117382056926434952353824350703053443663567461885898973846508171141016063410016661561426905509680390105150073072014962910003074796290966296879585429446388233336814177963336744325189994803602541694607139835414679082811732429852549560705302510343523399331640780346567205058189372431763955568289124832223952666902845046212591960330266546477955874770957436536705388867972458468842227791099121306265800516481161882182799802896550386260359878440171637758264845816828841767085109267937378162458432135365615698168799054384497073208734079013303683555382724261499408785074551485487700766631464426060444478974981810118531356889611059463305508681702724669951186136948892340119270174202898504539540406477260960307013640397656580143062934884582550335419848766456004810287857438459139719375011249039087299411470258469032974307173114145989364760737673259162719046368891553037671585442436974958255847291389536265097680859911880481792076552706609498228423304053882864126441324894089311696195898826111621487277202408103587985430965514405403634923497298741285278215927676013912616353760850059918092155465135203264448862192490631447365975419480784702875345942665030451293601263115247716864918246299184269072657418495530878673056281564921826166155268737961998072181444936752852326445238562550477628280869272485412013473518645799048684722818747950312068293912478894324538587769013308484727173357704445720118143248945279786394168283521932608458759002089029356408983418310891971066508567745076709266866822349628239797335397387937986914511478833703908004871103700456087329721239015853227076183091544421927391850939796263486858065585019523286585264127951774504902610621369749924285287690271432811471345375106433067492407288013782650495031180413769620104463886066995531194320540549495118872678723345143335712104606250564339977980342923973210844147928977411699731873461584182951645254923237724730570803078517981687770221683811499225430994431168644853032076615022046431094175596296057894060531953843293490753911023026380885772139698102571162716676353619540825636584867998846300534826789246777510889367714534929201649641545470854522985827581135301909507327277447686660195970618800057508657254134149435505474452182607665303493875153131697997680096802880471910447253495165185963480412836486779652533726643410911779677726128927277742442002103890422104508937585261683253903943152351123783597249982972266727982890988598774400252916651939189758809937096943102576925264118425831860309575059885124465328995598162367941181535841657900339145615354427058118284773099986994082988256005188806374362717975227245793364844046439510423834237884925268083347640056943416741429312713967405593809930480787540444113003106088649641023381643699119275303755433952020308106552345930943547336380674150660264019415989366345259154948788924473456649297968054564976202687821100837141498870568017770144281755894645212537726543184193773922614880040108072133604417493377091408241256867120518434706351498226606903389663040767008238932823707393351549917482950136769019359002958953380243183270208026149811104414829728838721280468625386201637942654710230582904689704403539643376537041914394436812023226076544433572786714137668362854054375403851599121844771302739525773057764650520875168321928827743073882802952224017175850449203522396798384377620159337238598388497833224177588002376748262497825906235974534251294753908964908884252860520391390114023526322930116474679668031233106054272155295377083586534135826812631771886997902577139785745451600695085186552444134730117433000448799429538968076197693395546142069018227213155613550340515160501644312766635341813007569485912312663595239869349278111563248005703644635538730777569474742598054466601986686934471926355430966142735296383701021539292014658905350314602136284574934321047977331332771457779508153466611402396775916248333561910150412203086894239644105722310012078618560554076896331133463047527379969462085915646659380794416098374561617449753327042496313514177756768540803590824197240940633589509317887215054520793084625492462187148773526043596283914657887809893829555365458600073500451605659086407099731172233362215849521226469221738838571430945112518438782106267448788091555022615019977975455146441108328839367583858525145788577697945353601247299657469523140707312599332479512934059347637346673922770492140912015743559992115481107664641056290808368288681367320459215252763480981625180286588826484934857567439017155785381041566719364564169659408089514400598135288202804591556437489914541864782497160120646569869357002399794049688632044926836206403219292679065453995116843402346887168064190118248687174587290209708309415084967166041478417291014298122217914020331899759696771371079390245282716234614886344084681252334965719882367650332947958110415896921520992118331188327362434961885010486606314246370877198372009232345718780574688676191580970280520528697835364820078888702765169397968021312356130355164885056616781179774512393304569190298450846413292445728030463145055022018802117449036057072435172997274048496236361998987271748278817486864979853256727521959293836557999778150784826813453136345585886768521743182807566591406415733120927447269106875339523959885093218403811747092807307683322705208321571282109937945515189618336189297982033764926597119739564894145609329720072855347744489159362234727458616255167982495866099290470535215508452300912223572947493699158775632214513216493745239167790739435993195188285778759701157797502747348130273336864316912051434683124088458881450479677897397724287449736871483649874510080720110399087884021037086539533801703866568760380814014805342741474035765105832406497207598461324599422304451344057016537999406344506479725709809650019893769441742863622796243957787378934072183045235872588310433948455601525552090536432771765304965468435920564099832607992627279619839430324530898012614499844990991175661598502020763844668660494638471478926765756021152954463609544149609725191819109327586951284635861194554882650804983653576242546556826115473964957325286168881836234584650629314818719170908698760585629480806246068965745577238190496355752803210153316974127410564735016456517279123612373816587363987879958355909162062089697407916088199153059080468999705275440260175233532205180612103216261769017548863508098102021024769308452492423468221422009328381555036410650318647957360103477090555414182716015372854612517491810490465575878787324995740866907434716404618669201400615833718775066183020786820159432840372364251544511065429286968657000148249464698105494323148340459185773262538766375859341580937131293342813211427627098263598510314891164749003439865256020324325639978369288972493715684254302035827644581419388009253301922596650187736537259455293141457237822478350164111728764401947669428522578707500690250373679580493839420974791904442808192244068154724684098100374418835835414159107382368977102571171487574296079824312508510413795885834652265543375877814285006312768215492570536822033578407388255749119690325485195881858661253249749437091491255759917621795006277842466473522313151078964901723482468831205058363496631471129325604062716781009939105643002800366734529610096700422938978343849933580034624932669662436290131757092852347937241746921300013486643448797076544792751459462003557476886045087980474754807062491172839432152560755999102596227795787733789797458898346841094423010531128735232674369718470752724365963113237477871709777596649238806633627933312892342682024551857249114844131386837393639190766984175290251484095549477534059620231613615077963439472890528042421392803190750543857648334846836938011704867951898868821526948684401311520508093654575774390523881633635619074106420523754542416674692846672097915272307973332561387368167030799593155646837135502718055091276331670345185926011898395455611554548148379286645301230724654466608310783175519652990933120141859262454865727682528600822441229906523889863927044722137395269327353964880482770179025275088428444410893498401796391789701740171123608674492175048157936808697895895053131885829361599073124400968859769184632756513278629572023766164018049538704325455788606101784806246762626075893873619177522882989551018789946881710721371584392379613643262562189892153872148400688952078602483181610950079342258634417442665631885090055329281289666270360874108832663798206119035318071020561334977000361848323084321679279889535593334975445152755058951871528306723869065588098781975721023835211659660675941573411190677578305535477081124924853846704195418472660510920755526120884739820659834863934382826470858102180980804844292175657763399056582018690748268864968901169026141334801260301541531691477859844850576547535128037202028888460218253103963669393935332127054935177744371362039044055517479488553345402845004628822098148426829791804013659451531962850533795240435300885585758165831427109863468455417534614755076932010353927814626878377677377917983618930874576992138693003140509462245148601086504397594199300218159362693375550536708191871607588686144006138684319316458268911559259738135261628932628223747298729112600213657926004220918466301806537002965515500554730942460232186767866401358156043109827657306670828131114438952196272072763756079424908105043188209872083250437819900888838275403876221307229807684419243338590143125662118339213082812466541835904949972039434800216301853351576734268964157402290636817205425935549931907071211590205002614397096765251688110111512359501236129977379172617049916001016227899772247946037890741346112474417306214059760583984397610270144525011339205934905444173347546995399650946098041911614864196099612389212047867972914200907533971854735600493439890175033919941869685907554268062171948607003299802322021102903545851340698266138432864000069061277399978033959296161814354169435824933961086023773090805249788182377337600281636632982852177000121260197466070145025938902299781127457444760226613800080985597948468027789914622607377741811676603571103496670559998999964383930698732535530630759576494802227557360581219296654763368358604643536022465917639879487198107092798035378135741477667317826916452027380803028471265236509257097872484404336923313647962638551880121157473829175189310162807122642572599755830374957559823604825419877822574966257121361403924576619586983013739439643779732235216497658449033136365889216377574495185704264903991250711611686740880085882975303541600317575989345878467624494598599888881417835046097563721396742119476843150578279258978831786053453653817470924896628522822696764328455404154207653289200208955229415379645941718044719473312702690695851120467468907816846964571695385486645204798248216358500334362473591841030603922616737399637005920804538140709523998649620181041622270386533364786162835109448494961184076891787797398573425681120272899329318727365950521730448969963877433044338651588974218062755362380858839500960289560968854393247982127700755596555272090793532573974658541216626855045503618657698303501244449951633271618034507891718871737352804485002547220272268496813772704850436574995700450179375036127336352789947119514687814200065332403883715525598742846470532523997081455872741323820652826036709823258662644066764188500604153528408735978836096553060674639003393919830978036477031657846361562875867843262570431076085052190980212298997665491761739877616187386160104412869000306970985742809425750936254993214126474180998558234404892411477492071465070036056580277767565406432112497162854763475466670740846915299374991994524181802402944961273632326373058615226748974837193400679124063211093271821432272861172084124898547432191166491702516710373448729850394354384130264621560202240212591462585218709730495415893101536428891146268029251716534917995287007484037972319790803997608700769513522647967978717164341386353459922646983013866945055958921249468456586641078195027453970916287519982732221984227678390121609957201165226864368421189153863406922169701593380023359016935298806359036650637057434278244030114326396967874825616413035665968138590368728968449947547314330229331085590841810130000631207722990717326823148851178407372250988481020749860468830812109685143555679571852269757995730548716347718839055567478481102045126626092067207652307566384492292144799517091815282469846233750442366603595036921228461439557882216253041523186114964606483489099416959471816125861520474814977890182172549060387155341823684306436172529578923648713975467387764523223593272516575974764017692234627681145990301637400896992381054407376166318560778303279492542840292538193993115426105903195176590098436251261807244196481893712133617193336164909640526072294933700723136924562901243831275161460418827313634135526384979236823641186007477080460090412995789846754368607618107263767990169433488005521244869073112925247895236240427743352912502491925213141648618697246384169865482989000043805059557875136515660787434410886726402272603210099532748506253408802280002909435917128227680797993295349867755726780687075253806181211568864696322301086966173251718732531806063656670794071693762284990978472284933470952047171177024864826679226947275821522094192895097163581683924307659357927404262007791348852818906304174331289136579080418031310417778133174757377841673766939996632448485698450071387758971372113524992128150191485980365039355242607387106325800292373647986660692876337034743155280879756640123119627665341776916157794348400153441758156582632625161620663997602221228202846556981456275859479641433107095029968215861298110556745553219090636625255708660018302872112099542726967782165703197871522681643357035852665424841227325168948162303412136790874196684135258267916666547838279300174517736301963738765563339355831066936524856181664373372744077858724076123506904416962591610992722492817513199987510298236359044504814759901375995737168205187693664225748319350065256404775766214174452999479363685212770823336369994469535426377286690253410385475785909879858339399200732184940565778250016014603242453069487836663358267237736097514872671026418488038883045081679970698737428698669519237670503674851714841972511650946245056780614394602751752488056307607909984672346170828965159723583746469004199478699386113652368441008695699063154439133122091830020477395193865505342916895601631037598728037420063752204147010693759150600760817917340354384264873438394208296688342563260165093061833547125222926419563816506686991243456219815706510322893886836043677575359233502688495174048577138262108456427636199668154574166194089626321197538444352220844142476392262033353337580674345670863331357454706771965444113749590680245512754529117859118789238475357960721175169892672161067857450078858764645657483201523716907493954886500505214359680811275539586467657653494478818359109161769089353725258066157696947960728661079595969104250283783936541160332499454234760386877595122205283267993303638483175092849617637406333729114280136914417250699161117712972657310370754018352152218141861917344656816801050783229985312323726824630755725095043077746506399158178884612485319334491213014290045063926486074801939343888339730380381037361883252057659975654814582168030769926498224788165321387089320424938515063924316022044095194815652409191635114986171385219652497464210323932006717165561155265760011166436139250796479823461904162514175220488553717866395272375128098179153910204918111585341665516429021778760564231403646174231831170806870523071760060497746610385649630228260606817620882001436377783306585219759139750804650251907484781093763179126075788781796207824917347660138274498464069315090132648930491141739628857050475504363856786634777478514390785445687826582542410956146985511040831511599002317223774733424138376687479457796160078483182773875248157901129655774563994801695574348024633312325238094203199558709205050865732503614450425202236173160349034449739852619845562721444493570102781113455282564688683849758597429597017694380620158486966679082614854556721184121659084921611317722675460848547192377499712422584321302658838835895698888032861850859797474765141246585303622665568011633516643273913028095915588582989158428824752430435099933208205596988354615236669721388510568381779711474930565176960164178622752328915340350567683568787307957417966510625826724656908371393241772591203936276284206727490603725814010951771561350806571712931866712215350754178566562727839783805563824001667316420541744877638466493441547898412905485450470021924143411397122874931426152416828797364571959280068490409587604285082219342670245243236831626482100541873203215353003377576835283486662045227005782399131497253923968644237753772169547136505320156462643132822360931421356492679107766072927016582139874014924014006097273223507520746707721564185985534861627129393699659787692031340562108549365612934100795071147261183477775707451979313215071992563499009941368610544617455219534178487092431801030457801900209972208622915672274819587574727524065315309329613381479188536325215253650277841534208628054891281506680981465973368603810817917697711641669675539818068173082681323006301015887265993909976795305821268137017129352254163333089025923310332495345123075375902336629196051075576773592849374025165326148008599618550819552911354660882183867861759346317443588743828809215284092056929070982212817182823829540800629483765746578972842579102046104348136628267645183556337963791795087870088488966110270401914801106333875213262538777180022624404045098886409860197605251693418590559208403388484599538310586769756213736665020736337942044159246721339006664929320110514943986055371826796501570291917725279021056750850067505028707560573842421925343816284002643651219205087157401659509789004587012081354726863153368609654808029256787993151092333275503598568636373348338488634201887037589110385772381028987525514468692485523161713023155583072188688007063000657869717839017982297970814378263109063985576695746600494895251742645971265081889475923759161008446782377420838574081128037104282217148072726110803539351744554719252539792402188724190548187231852856723403411048855307171753220262781579316400934282488401935549717034443049772953202805108055842376399435179458732383596828287046442725262269587734174562282059942289904768443730210076064850093816971974048567135576403875228803612614197198828768744558539158109185019875729990179073907418331953467535487723862594304173477912147752697713998056563161140698892765551141300311887351485886358815350051098923162426612687281679316176977691002980282875481698947790655989486957933560516713909498167237723748618707235412597607398179185020535805816663361619610951916031442050305660993797144226753603118711084593463556127283558833824454143234636877422027033342734204673334970485304441658134650383334133015795344411963919253852968060607380872634647664217643389544410362987773220435010165760332063009288314492494830786314137487825641943239374152705103050161958796765432154511069913701424487547172712359105136029412866602129882471408165397954520436754120278858784488131596366218536910875603920672665305100880325368878594907513507557752614879901003114372579072226544175394660391216478899228640196419098928971433586313066184119797501440609778356077051540845572688494190520501687844388779314926436525039474638572172104059616647444125656479084790470297740683955728926772073406815811023621617630514615098195612688701570394470705146672120366420582869937857973489836679470786316025514294999077264854676584485974179570245824208616831435781993359052112358491425463470458076304208779939558515556215060784211774617376549283220016072582991276533603374450223842185906683565615898359107334043455402928624054557287126878175460680537661290915594410056762151214592283489126167808059543749596065531173639538634864046283519996868223576944164510940738535200591990466937590566360579105722031982831823667778535650493615278278871173133152873571482995155264232422643373514717248503394531172730593413392626779971857738983163147214976950297163075925886408846788124792083347735023060107176112355298672043798234337711168635726770701656279735561084131152896933464449637571750971131386020567102147376444048484816557002071387170013327975062600284558783981917706724972700238635306779216098284099072114323486882461895444046383650800604285516499641289184254081925213301822221750722749082192541970676483719110244823539591044093224289870244119330278219018233984093305907135414352097207403298726116730968438567241995707800591594956687792310687191122694137276116997879778511633107677189749389161368487372146288575518524923283085030119859936493269277733537059412555609928337362666265196037462383453896265028392767914151061164023374334335125252577346335134264120405673015173016346638145093740596456511581303506949986878853480307595376902385154819683536157611261379348766969792865112485430249234315911009564611088135311096689467508663490265230834291733088903653564757972380216954390762993855041108283522082854289414532528698568302011574468190014750834829522752100074478647453250026758188632103959693134765999762173705357909736459850158473716680167125169276492079588529318698237792550721571151388726547520524630154433687226524463986863253086081088039770703172882659578590100867622436973646754596986599422035603129339785800592229306840806668421512004385351880981867263580558594605749591833767029086743719083907786439519289280834173126371287110135572869680921970674821633915224349161746404914209191789030580917297389130316617131589726710558843754831204853875991086724695468745375244088474988274081616229642213225960032284759555963081831205028914749058205542599820794666162575369120825520140505577442588825172685159235573961449880992666760036916028358574522597823971929771342584030897341420234478206137359668496918314475463173958115726523337168839478351539158798109486226109707738705216318692836455717228646096692349322263068774031330770256263750546312192906373748348317439056006860233993390887615383035698940885930184569794322922312734481708813097394811416299946540693272086973188785806818139173947227043656089045155805781507803959917117408901998486304741744279186511756703593627793013104951853795282706135381346589727172875210447040891574411039201112603965510473639256885748416719051098336018804271522721958903330761224789240555246656983668345499739784633313147281593106127295647138842405009559013562172949830200997624495557586589615781875159229559749975639210972591409826788483111009807527660591840633393169659036338516169031450480145952783667879711353771454121561957734193008747254874443086639984170860249993661720474532810055951212111330777737381381115182239614428351713366197764996328544713725877035139590108028622209948757222949090368381793904390506005886291693152296820401476289133760703324333075344828796799366076775204539306237973331828511329636260497911236831941110518472666750876897393954454243089383236103109329292634501112845928462729534437077704500308587082898509923398109111954660765631427692881339382557305258232801589224206341859788189768312657595095562978498392093678959847155809647260753529755903804379158552975424625609298820559472279568669311594013490581362950587698965666291590902679165021214653774355440934816931743857637975793660761635619728598021894834130647580795440297960048443665332679110807334569878397176289549599858139007680567678069117041811510104055013670731515483335149489753265336921585264426405289011002205947589722791771894340050257145674065009361442966572490326725080535217000482551385128997913819119036082286331646068676373856237263230956099009240930322613549378072974117514020694878073854841804354966098417324251098832554337317305510718563510857705957371822266221374661105202654084515719221218575059457880006344237934550283523767267282540318489485782325283307233452248102401130053600811641477181951240642655125532958270440060849336293991986127141937830194083502040588798832425059529218908590383032115237994002590057587860848343667226985236950583040848077977713840724622487725414491376173030151584000695045537847529760363202568839263963142454614103945734070302141511660881572346487467636330887307575445514047621825573933336140143050194304750380091051109253348948462225696789049442637473793613632980096055040607555066761223928723730269837615724002669726826439592084709025652493741079208950290550109080304162254898021554988027201819286328992386365282795401834216867190604866916451683714838721599299596051197875991895242725950217533816611284398202590759723687041596217943321926085808491088842212539915931921213964579497417063041941816115616345434102099041130017209812432662347188948497708163771201970237435987220155798479543378567144354076811637643130862728414910228019973865164626945113825151766488201130012986655989042018061600269766012125332546522931419129958223829214882455705196843778069927573963743442975434748349834569717346342620746025807156151295299533395131873866775868885714339164716885402763236978521124719408806448788854692261161264548190383768779675321358705172069474570567741411282173160652165886413457759905952596966613248605427545085686889686720373568616339723483799218812030275384286867442587634359876967168994097884430335005537718456808568763555861245222823085876784179620407333266537903172062739552148484112005654115767050556191008927317025463485307827675586227171057369486878084371577945999022256009289512048193350809977712891092789552355794328799621060251152171881442363456015095502541254009075284815882455739906371174247671360411412787137393310559299130115146209120661076271639279321179727064596805208381749595035335875537192531684608909710435257796431153619183249635854465982161945101176374726100712765377300563705600752223900212123323190738949960494597651483962382767917779784085906799468507311389602928967422648175024423655280584881042502811878421716863000282519556801493180464732161991103492767127809957481841324561463924370640311186043804304571542246592790805503652072271861133119648826157446885895010612006585847661393965664511685584276298415711904369526110648675389621930931061656212122765707855351620626833757260579901533113106196674959051573869418021431526920168136600654939301155689407370200117494745565873216013248134602250834406280651261003363696998288152143505012543829786300203123306207139680879922887977444076513065552451082005450154244707963270786474285984613654123013093877666072581676164595126730340437705836491819125244720675043298437430952025291554040570985160527196587037495516958735020455710254375164946096320023108887381651264960326464721272350628967166083697272242668521868161515169678342010327941125630917688570279590101787100594458204936772311117610385126962987954090132222831730793992009117900610713969909618654033199017944327443571389971106225192823094611736763433677969782232232363500895048979874565449287580873171227858337478053867776922611932458307902651135880729365640436414561425331651164932007486567624876800901388386874467596445101884635320891027566325877420000554028377802440399821735771296048065343920170368115664084685931264420203718909591953392022717179409367643668104541110274997730548176648819901820595638426013202702620428045212301054924555684211024139261843498510704310981573855195188694884087050832768445701235719500852444017898724002240878648817082720811714612751495363242651755652777966572141205007675304059031717539358882564967457858237902459884746819396309638175237827603888637465662047768487759897285155773905164120204910257596573365327657880254052813489177217593582347620571672244030879146267293406161692520734933773529268416433408296174848764810431760071172641397391511174302252689859879036554597372962973716088250949456116736015000303958062200002739788140795240234716679553976363404683839432015070716250636249832375000691185334857187611626407014584556104155923691585880812782017653535308238106472429061472076565758992388425591050999360173983188731420056442058610997996291442739378518109960152659938614230712270864870747317862988003689065563929500654209243268993861024038602383038096072244506443832800341338855966730022951254011393169025851430431752824555926639162563622783773369382544873916856231578198511754206237295871691969981286620541962397599936181732265603294054626918383713459977773133908155303586892697638327506456124583527621068798140341062974291960881611445770983440329152187449033350226631194948231131128761979932932060754986305918272259423365594416098338575519768079082823035132703099085341964333525673970890676661799096019196828099759361127073141914567537664245335482025362943237498218760236458022989601096429879173769537218908851791007271266505177665690812203616332403040391961509007972629213890074761362066516782528769158654223500640789597411706475067656666041315690955384665792353145094502021168765823317981835700892752561167600632587496359261488473698714965091324806043623090647202285704315150263282227715766670197096001369792464829364573886099422492304157701528640962167799062965773084886499074198395717176114198552585164029141452898477238068805688368949649163618368111048337880714514951348826674171130640463385923910903171235074020905854554972317140679501886655110748377100950325297559757927584595367822802959010280230815018622932678949325509311301678602559449565805710516892610347858295923360951333442797890332432266306592053966013093687871325291773676834054445924870320294953620877932485878591654438210411439255989375065817600109163509669697385433049158796707353098645209841782063932731312528476321477714995078833431406964982604230427358367711972683405864889030491904661675129727022382650164123538782403548141572396274492769698491457056057301017979121283459938865558696494844685752758114686045283681949600932057371216474960579243098646870410203138020858341815152641505361939705985219723376742833806081791222254535208583027825664774994839031882912544544571227376843186389751254642150152499634819582592063511805403040116549669234652011071161981917148789973140081602764920770639994832168450415438327222691057986823551690058902866064572018848906842348057561712236401588860692334744427698600818451240992246424831781909842251868459569536982292465951304959973629192992651187284504216577540299599360484003017386924395125136877639253986189223457367629112250594124287477432975207735828813760349158662854150113881413066367542836457428997153652771946160996507475117825257549758092527725919353426004114112285718815915987370404543467098412118097455870180812947296136864919289003647382977842742504214268701203925321000489016790949366908680429950177944575966446793224108829711374007201506469256814063143767419993157095553979640865146328443494057560564561355845534761191375169245483508433188093752536548864278932753614957301145857850545018039719119234140695653898978424579038595021539909593884187913823045089779687738012146168136510640798685747039111345295274814842902223487874097540037220218617768759699422120063788730816693092750405285570708014312048722301947009503151129289365960969991402821456215525550137539394389225576008420414325053362929299613220483482350369945165381212351528833922626056920030165560181908541146391197821397066141527336187123541673898415911830340357371466116978109445801092383626785650269167286287841158247679705169711708320415751815444704118258440154527045730593867874645603357874956503541162299415723370008841979720622501763052402870640439285602958441373445995829313456846231317536103785553318827920157110197235259257036611551683526796045088341500736093082536116746908776886981225196399015046415007801094825910523119958756376617917177191204806939964507804858912066993928247297947846118774865463992157540331001180499204506772426594676623494728281650795141718377506111845866595569514794932389672172299922314324150087026919350232132058017729008705137859382242928403335388355641297001427206582574217346932539496050203010319264270952079732190481662387050784582461095610018562658758529007985137447469219607287471205952056741744027277148251935743920172848874766678676714604557312312468073772443576307699825115516955908561002954312614968192233107086016061100318759573910255832746232394809077037716761953143410414965669797925088778551500360000394315084524325713741253860750032876400744061698809114164221838126697707657459245626809526914732915495697270732742168058863599477199401541616421988178919234674507815084256055959709518889648812003724177793984431905967664314892723784180688900133381625403726225346898865080399163515248274295943881447913129093677462709744656571773268287613541710424512721886487815573060131567487045530070010571108943270874811636798731738842775741659395040750021049921732518187218264160018112495735286805976840765829465332228984286750491838264337300271448970965265748330726713470702269663048532158909384685821607718955833339636474996012665938891195171867785391543403038412644465924553227660769191726179756192885298293329355327701078097062641851082681389562127022731326523423907058105563251307451693908902988814616078155449321788334232943599139486449381059670212047765151388804909073527992047499963727376821087465232515731901098103168153118299501063705569435390021435816428039071798343197139746099573458937991404062258204633145478111079844414063907076074810939731557295561168985401541751519737056609832418430076804356161036663986803147172338879801845058818933130653038139120570206538805295873809010021824614563394150074871382938623597318760497139371440587595192303171558100077897549726041492941569805076168267534925057973926060227489991081428513850075514413998961684757622659890609369135989387195479384389268637858774947347540094072420137833135545343625583782842440779837816057169689283590094458949848814893223119993424734006148740959087204612101083241857166388381785477606045232825350285350554380801579920723840458837504672923773792020163793985635933633111830801366757050015835179970177631172194359932482401663182711407276195016177817687864241418207421790658162667723245506253569298211567920610215339622937711706587039364642204851984717627319226365516881153724968445929227330780927467368659696607768263116926047461016106001170260557754164532135807681743015816260317164130596424412488507948702986978416813831296147662225073444527871606005600520627987561610797254214324302881125629984107875064397561175996143393019161860222545912623981708613692740987905301787941335639593064360784746385079567575099570997698202331693633985462377380011524985096656435291741469180044373694835094050262097531200428905658929870678513954302381035783822332680336674769229641360506001505842734720609030118318353679131834161341141839069524011398062953872036102711341439950042502134825356062097071447094906846453375792846194206254831663822511642662274523813044060564334316008907664720407383183439775735894144840215824005688291126254729504583352709885982510416433868347090202181795744881329226712545150750117608111058560154057414930889382297758305512828541668235449160286156833083134619229693570982403815351991625002752963931227544566021467260117846785361132627383357713787803877494858484908460934794846579760738713274325101638460881119226411764988164151279855281097000889134059417527331016069990157837149576839763518397133049886939931259802496137722776122946651682991475397869280241502113696430089016338549545549010752026835895752772814751660544842368531486697330189334257952743231871580317898736675362994657816714772795935834031863739320631496019931650546836847589607138156983909614878502929177915054773778073956032792524469117627211973114911087111080460022924046568235941878173520980551659906990134262997381665814593631264867667295608935411361317311803587174330151749749633860100383559847058158011884490636683030192653686918611166073413249728301338188324311309143008833169053345987738978395684557458829358021887504350708785121160199515634268736055487084603647150768094199867835629088822217639771485504757355121603042413291862347146909633081705694646270900592650758435134680876942612497485236524941289117816991461566249291247634317951321452435290156237274502915706409736728361963874391884358015349893230982172542739742266885208948756576888580022440300507219263657859949810656289908293488242771589143247715869968781701393723237573674443847447607873763285543678202167441332522302778527194457597637001361143063021279623044430797897274711436099502580374660397632584481630169031890092386521506272752737697756450324486050714292280945646233920362611934054168147601768037794319909488157527595329323641244406445534765325173100156949964912077079750055765060549007792883145680525313438474634210672554452452389678621194428737371113208944250402533106017131397003790366535224687767859220672896271230570772912903566752833731671525337668738325008585567304088533581575727620467879232352604136166581395547764145256233796806170344869088511938119503189439877484419750748837696823017546633475711980896657260556964772768427732069663777869549428305339776972503314771048730458600779501540563537772644332910327025098065874230628863686255991114055359090942406896363615479010688747212173726300209793872701873463393058469716725580356032760878307537294545099141255061524792621580942342253537011551867031896325035875113297924376544371951165445495467799644639239618595240490384159660756876755688614132738429494143902987555893873810299398768143647336757521669337897545053233788453931954660607821155547143438623519187383015549333707487086895754734439883039202869895627697281305219375556570239873019266225237900716661163482491676850403177740351408113339249107102200605666104732001901561673068152010086142635486942733798196507520205847357205873165557648746850420394082769790379002557004493137778915345070651991119822359013467927718551168760700162160599584664717064408362604465287639385975239615648421904810600077951657241796628625259920288277763789250253894685434473425811720948100043592581733418600386535371648661071501115592353912353764731796029628305857019781357048746895054939451238390370689343711418286524167433304987570390905334757260808758990742193285678171535928358057989116170663337057514479008229855018827260010157372660427025644628941984837175256418321370840683929870295523893439748354749211350438809740690735885465722373135123657557706593337256480821655233978014088214833877089981937341669436285105996309697273207530508614870935917363264815434935447793508989596363153799332945467962640256176909576741933524642628559729104660629541346794079863951450999088620242270135628711132371320330947621053419065598162114286139795037331684027377690117539186842181971117349519189521711918240629159663142562638553611434088121799859636623958556581256792213574219219437306487707107219205322479633655345828068492272486919990966303425884743076114116692289880025726536409202207720670431759326699127376347957926196742771734476737985204749427154358876808687094593250972703545494671241575335830982862766874223357232681579197238641628831830055959394519895868659261403898055272344474919895866475610223288972326587472071753327961484957568903987180362202535146892446566534120355694714010669618045303851249227581666757329723850909940162779322297381736389476324552735650406116616759974019261118252631709057972718655653490414874890465781982181903098926279577230085034676870460588659265976304827189720286957721716388976393312420640624032015529605156664310812254506634856194902719185293312011525357418795540520545457127944033038513943276540266513481192757882078469799098842694663670144877123632641603493667458502321613534029662401643948501646891407346356699468192352709203981520042547601083915921047443003872265985568039837970211992370318119322274165100417875992275341859829995945957025852570638234187043009679404603701970611574372083344953930879691345566393483156924156479063310999747489571883403186710420821894533726660460687743615622845459827972996259366333021487682919458641087600063320161325117451598443762144031362373689986542027739573808699007693583614131373491211705140298659986113317594354874740858564551666476227419589213363352010960163149084397140275859179166597215956637796962574230018522965202874835362772630985160800933702406945682971047898768531987163040631609251386286450532321453383714165490990342704363311640748471535664997796297673958520353305397948352910351279537152787568724218732811564226678268392854373518666461029567191182973368569273576713673442563317090950811075830679306676076683339776875701490204566668632891467645891278294486919740330281679346169887833658907008540572383476296104835568949410531633169177896148075933853210689427769730848385633461920455117230671425039687158516737721016942038763456305873127429076592502590998672897055595576599059300979684917314026710317046373692206593904807393722223524506059601120577102930101548493649209994480317514420788624054865223599312102719672636445551000993621765555477884837963077960220103046715187296763005162288069297557250458013221714163162055483811900558801708962384107666822769238853741037318731606925064547742965570981647999193806225681475632602104398015601975452160984359238755246559705896096970919821330960214603559788074727183125424136912776271783144407448493875510090587835471182440477644278992227895612202675329055470534661312521762619517514566926439292369268777956033335121490299963394534158447090887493094510457049388686104646343371228878054864419944920323377358362496361779974228000329502919209745383366998185282775915240433160397685510095017831415768036491806373276726381724908108089359320595280175014312613163265769929855062967431044128951189479169285558511187625153122010922831290587068973656424908149308586243528047330716691828128153864208685332948364576301676075144324232852897053038055811434781966132020795774100982113380694652221753659970956439820444830436290245404902540846374512767129348631727687204687047305943044164156315864448431830686389578841371870490106524194842149032531385423871661758304507680708584600644683055229558420148087344883021405433468223262131435589740348006488072976205678671691925561331798127616033863149978430587443907516028279016121559547302425329663934401967527350338614864578395693215349136103014725881685188212091282002307272927124917005501836356154847969614427555148161865449572955586145945095284794523756687908478698674719069744627911673120300105162188275683088783651779970276461773120598308999276267744670568384847858637149212888496922339444434705021428595000054499918049222184560079717167927451261153512815497824435474799399648274199200715335375385779552177465693869272512874295258200921676166405002329666376087811812189574268895649491988338473716841010527514605084025360377970964112977867743772519121287177101377948097155248727562712479961181603750120490921103057356642293866568261083659060982534042893181957901088876321526168365509022619132331544123818221917293169858365511177880162661108721055795326117818010118734987278421949705249688057938462157619390984028056213886942550088929597951467750908078687284335138600815474647365485318160054788074094962602028419593767707885758297042315963676131013204755138803570370945385721790913591107272271018184528334680117428021400300261254495574322415533052165374898850110144353538805702197694032089273478608753242711039875995108571256298858846698889487298793836539762351815229278290932399255864237987020358907234650503028671392916348393875082354084979508801170447167640093550815039925773356016230195149553681402644481489788929337022236300310982405057096969054605170452894820680337111618652879225521507262364946140960279210951487369817113537399948752239910630746237702318315223782490322875713226093498582573170089760007336366542008202007417358672655063873229459396824046349346722106152200008934794548279269970486364699250471041427456002693912036200365065383136857690740111501850874493376601207636636805608611087494684152533354266116502782641920868355393941884610146572483074898009275475376659950967810701976837797335526652520303333407069964384777908050092083489115550879804993585137327124194321638935896470300269856825227054476634893555803310559729970880515937038148082033459308869520085402682381605557110200878306636998705696223615836466792885022518403358877852324920299018438833200024106084927402602112146829457498615284603762693888015202522852722058336673016957765753867917651691699592345585984633698332347863468813718632665515447043548120655949124502584000967803064220204969043948470046087004332651763056583156000494366287312642068574471916944689853111563663127282853904789523231784871084005878945700574702309904354613428256820378538018199463075631940213128455188996286984256197681746249832313087077737406015490416265562635578472708642179786497886858624646312738681759153122408750648032234802430755326296125118739424523737160746962086267273051378813806314458047733644966968287598955560511193289026437834391003111200065318129681702005482145695666335897566104430029216673712326328943565976950658880768369095231569094004195688880196747144200574153988378553547750927149571784637705242293305694225666001913058401453901945928312603180156029937471634802111456892074690405388986696056846100733887502836331085964486811684485635232591037891916845025422777527819608403081480868052401619156231957336740394174094399496838169263784110381113669806502985446804508235505778385075113703673542755836149050584450890285833113764637978541929016096811472541428085904232494338125811490378322108861429489328487593046301887316729452829794327295128839871188492676790929483336482624843261372789764254617438502549843151345876186484653542648516624499563472676824080430364681803266999444008294464630349768019657763612273609879702765314896495519205164800611511454995264275125408025243043496523247370950052636129715177750045972203769270255109158266047487413695075155264754257856874035316540645071722690771623616831332866984298749116672477273752548520595319738534841159977321144133176530400303566882653604168459289798641272953270274942255945379816720738660736821382824093503995644901324250412208935631179688452030754081476769394058756381384818466062215644544933482633142919316994379097691020659782863716034951487663542779100952099759293029129599563723103265996372833491158309380362037605221823809571231183864191731238438092040043086575744270021318438512424616333987138961398130593824715650728219320838297330893654600294151854784713380338993803301365111527154067406984278672442637234103654805384535221152635521904494778869267085551316567757321917850516411675704360771129391706783581589097487030818819962863178503334979242453367816500363093223043147063752762654419919559129646934283458052172979945476820729880903688435477532401460320687874286394078222584312395102814460163116618019097485720990581083480187841866868548349753377560203117249244502317745997165966595676611661940334716200669148933388573402003926216983228039948889970061150778324120264665190766716222190811611419994826790846123606656774974640940894130757074047037495645213575895547251186645604948831233558874100414962808252473419016751220064500969882290458891601197968022949560746641606574334128249027286240770002306819480969399090302633621747550264103909184844432041317322906168176468213909084501409294526017342607541808163767972801381213257778330556294710982104325614329787465312958767589213517013687637628000853671872499786138340585441697032677672091728042914457722621445829502581278340527639805534087431411300336571652814272120038784976138371004460177992612861177914195296258815126630945174776025741519848461830410855999131586317832473105180534517795139610936650676432865870620614575802678369683869482689742383357754467149257823307835596315068965696209038519035207379548920530734172308492652087072317582956216726128430780698648984993675797970591596130048304864895503428639254164810533664835730316176407028035493402036586725689865227955233037997930015736689699138551323770855872563302778686468094130842226221674347826188463371282848127918144571064492345436641492479385804798048870328329538499568869258899722339977576028419546400799479377090952409754725197960361350933966265837972719249091352094088343956676022139109976975424817699655084111574857285903428221055235532083924135731033740925709478952845907366739871397443575186771757453815392955401410760373580843107802758599427678819163423992327059285143855981117852090769523937858836002880059214630146410470429702987667924299134166117809373498449936033730802768673317257471599114340985626528889197784753053813396404781613747036646974509995009400425017647534252134530166436541689791505758204693110893453003147601165424354253277798771876899269493413032245144983572893240862501556682188537776199119401140711838748032212741072944762062953730357494331199248745209977228925285760248500104551211462166012777352235590327398983972496826324765750139478939062255356577719768531163172460077919897382284071678815958153293503906869495352992485950613144100778244972354472338364220015060821366061484904095011251093336489729103888060689491258986245230444151821347455507012864876717542177434378134673678207516777193293900849701624303348685918935537436087575729134882932360547553438151763094186674830899138729704604503146690568631739559954921905913635768696721189977537831571435120519172165461381414091193904644255513003025842020435276631455532938259368185114522080661002004854538317295679125210291175330439021564518021034134585991719105545230292839309087900081201114717991698032816327379093435312872082937288646090740080470143736511692887611810857531330169310155743243209179845803969171795613800603359895043902917391100249284990225854893060866446677173529716991843699176741448233959668032407358047915873020464007815760956342575599164912971148505355215707055869924475846027387290693474087939215571043810109338145652935175936799756206030149761664410912229536040189114116257137949183563304035635425781492842218027537229810840555319825408533898001961396513438616613864451211556375703108334705723627212806657975306598636431317795303606389635874544440312484299875847312908021286435554130109383730416940878135926388961696427685423537319931744436781283377047696523246425651743109133398477996590102507316198508764253901219978842597753697317038664387093405904133487986685803585855014741079211869850115415990250097393902297341955403612445829344020097871835973389495520286159506724319231319824512025804639396736876620452484175726177624656001037543605350242893208115614078583294659210549965107002263680551711174791142265957942552839690301800063694387827718368750880096090338574004280769822296228036900428792631409739909436614696636761789626998462590922835469016934110731389881132457596380757427378586395694762551852865589821103493212015535868037969306595392233745696456227808599652980820038471531991027040606308226347811080821725751021324769489350808533027955020485069282329256455312901710771525875310918726373632009555633732717878104893441466079099453479044254978317248797446313193846136421442464973233787332965527765816752991705479872219994928828102880548488179401657401802926877110224334819743128092700170149016383432836783534139572845441456624549579800827042585686508729242353986039547589277556587624248658556085115631665678540369540017122159697782158945932774228593662676203540470383830446065919669120740322194058122806100562658485565472225958669332284994842551033217167309571194913205565388859321698766030287050936062612143111024291358572756191246561060905664248693684006626693014142101740036282150859874824473068443090560989892368425472196215767043196483671400312931213434460039216585627949376788660672320965644719957333900059026358476004034623976307482628676983935739590226734600958504797913546277946750777431586213158093514042815980205565447445899552483363473130956500588709632798261927499034287044242703292025573923688221684445388858509393282646437324427931094475461679616503161338897051253794033224328735874265439612331756063192589576284441524193726631131651050923658994549316369141050612218886984311949544921490770833317095089195530839630423017046470153844526165191120651042025989069065678545138690677432820013748275449301927980654447274341548314069822462138620132095425130670784859325153900088788452054694318457376729937070159308181712735011770256232730847982488305346618620911459025983288283078287096981176069348371162873976753014787163998427594556614375845146270594109618516997374047267773953503153121219191819897284729851107991902577646798424673198011430591077092756012782180704706827002561567339023712276702708228313977328296489572089404764309885522310542585160968224072338840769007446555934891821782188195247410034395005082910625761291734646642055115466656821533333570125338600849463612728265087589545936429156225090528750390586853668873032416570457202914325923803313378434998789838406527269653410811928724977355857289102138675997749408503772587946110485543995637676102999230162081835523261587379924286281440288933562484827415747067623185527761368727036100007334813737670377682262182438731224885079284267037886898178315549600369175578705238998578069230953549284319935226055768043546538867787282322738861673470587413097635833943184254951720353554327127691289759343670049093374510169538254412885674034651037617362497954362090897925026227810227848900094647772116394209632506841444106955694879040786515406045740571409036737047064592119739640372683472660046505074409111849814173445138297129919680872419251823449869240353026654892062685459124435635775080851326865751277322432485935697838677289931607630109611905277034020604943848875791023412042207331125819014463479056019693269678631985620656063576844252682946752320898446522551999730764789983521095839067304284314660038835486810559333925351943296055459799785651106192435250022914500203329277706237692846492538495091608795613649037984089644826284292888435598368720643425837510068825035505162260215640509184248832872573016792043115265479642911154587002817121624284471684951078045140469036624312752682398851647591953930382943453037437255195970959271018377338651496139551911699336000305060803836896025400887452649673772697884405229018155541320262799866799308081257192187673666047858812898033517327463415880351248904227299363251911744414913890645109463771700198541102512445934251836502027951849924315681055800079061777411163436419314808064586370245766618451746379468911642327914360024340000587356743084047920879896643000124130248288988254572519058058630308926777870273349454134824203694988794613310920266976159486013617834023700541664077165177249993033973911262313412236997467945013317303602700286124857254505631242397150508239311029296272142426471511019325387923193639698795511246357572017476239831479658464971931699333928683110945575214332598564526272599850612012249993563278402915374384959776057663825959740830547255230427418704852404036527661300910503854296254300043776143423562371211428166611670512064109327502662908401029040104653510719293562998808158046402363849442551318330933542334262983189003737917227077701748588782052330933366630737746450799978158243742282751308515339522686428196177759170257230435683368159984416888670735809000317596596258199084662939235401963218803323071251065044054080511792399329258960238670143970534139198307558439861475114965162816586665600806085377410099552764229311158315547404891268481307028805095727338748402145188033383554639462952944931937078100015631839574408060775407400107274487429806851198196818006608984012575194332894206269984015778074211777721145253780724630705056281755868209950056583223094173861156960540985134709703397256383959105426904395112173699162058851474078188932169379186099919451717689658291903699434761893395976210490500599251447120705148540229765840430957021356375362370385294678759277349833795628250644173800859672840032327703168351736482309091171085804887659952959147863999290221216673222094284416492481545084558823762507675558910413072933136174644545152945411045941644946681488627903248584076633957033668237148401851728109353188632755301232826148940676465515290338827027230266853515591905500600269741303585586107226116179613734842723461527237199454268738236041722707581926958456338570852066245388139821569985049934436705163353928626044960654318988627337699571884277288682054491360235962514288356308664443735423612556065034930708528294409023378680627504294034311432015239289896232541917616259009787659203995359026724790378721883377408747723188505141574994852141824713190257395917100112545413703484772418001365621865428774700334968233192984283624241227424128179722898180840960346020786098917688591331029024487281815136861014987591339348979538189378653965278826608334216761925769021009534599856342824468338015272399484989466559170494373653120486427601855979200382857521646645838030568033907680299153610264844194740453994674832550541814591586284733866586996061408078564605238295082940738455480757274667570466225109981678727774034754782304113244551014169843021857180478576231547645545645741138763026817616641423048229062719539827793703422370151332191487672014130888320533860702188292615179468591323783544450981472583837620544689942053628483321717200293769687601357500196164424846792117259511982944177434418772919579674495590932355096513086784060092439855624775907436394392925991261382016880001642002615548884631033518468185406639075211189475095820594851063284337215322733773194948308189402389422766763158842595910902503329423228781592996470730780650957690345070205056060771614357095930191885270817083174903367202537707516182976960926972138247134495128845868739706185184263596588549664043020784682342136370271268799000615326431823046558485546211297770932866642816327019675257853367188714203497587082363386866484157295689230252681234880938978811353336760043340959123348629533958237712120615504453851792010378410134033021512542886286555072655970188136097086112703850894878720011569031941445282084718759650819648469118875215592402921937746667288710037201043595221542365060457836911860563584873672957935859824857901964140140385792145758331551642861993052221875588553262432611691746702982801417798640481102559174335617918149071872403059813655566317571117748444601292005942315918165489586187210251148044205199717209440509923571474309967248833646782851612545449270582601538570311131375584526246419807397442806973259124403164716732173268758336546584445074459769460970071206147424792316532595112937431222178168979939818605795586510353635887220698319308514364013440040398992618032150703641890708436163253575135515562986582212578419269676300137826703936914586752387863614902897789736439053029143313097729220893783879240916008675601230987306633306128755450622938254555504049084141383039304206730281000326228137509219242598166498768392064324423206300937186973548648503677051566509313895161856040392917542175702382360232212620763768011457871308844884012086469937009033468479904722622925032769053959447511534652093305793869493805914535778729595386728968096755460009261965626971898095030212228833359569031327680013704294897772261211496252134119357315072009020876231694758891936346779024512176367136690391507956007151910690293450410729271860915545339512070630723519626224748798323136559882921939617970491359355970349246253237158462675630761353994489544538287518100015509834899679661366861222150536669885354630870595737547500896884764545106458054530273311437119951249133264302140113268385869267665472574441111117573755643112405988326820160168391432577215961070401716744587756919524535781411548399926612571185906053104005583286874427135077308888088084909469692137063064572421433476266806904234042315790467098070019829079812473718958463781064784843374557586162800148256969182133227492452152597710265036723564204610080888746839698442228464945715016738308230166019876690947582019767077297999344477191855378235569686368812097795855100856251197659729410919705030134742527294201955517764680767126604782530505647286310196032233071167348515523592152509668256924874105856929910620787866605163974524817328308486863986641527693302913026336453915097495850166629645764599551195078138901846578330597742483567634978661244842141964821344787190372861849230816583938860981898577310106311812688301476102273307332127166997504680899264576485012084096407691755833294067883109980578500335412994641726838298554450999287748153353619125439569062084188793176330008370038997347728129528702639327140325975663363983311176139101357143775829736547384681583539390886010181585356644269982806821691593325721267994526163435639593391750651673087095839663202822481892884101543637566459636923670344047340229965441005193312998521689755848241383411003757276223958443285279895869315991297195211339246674089123315661816897037754205811117805543528532321857422679453749166765002871773685144326841814826094397958017513457325811306445338850003891683844372685126881131734576680863292044001223548573251376625598624850286052922103392406554625565544137634401328421001192031300259096259998204706426984638914396260754351031792912535093856639066265601721306530498685010644669699369930204228969171448207588854817520978718283730512389158235466785504529795009389329990536533104480961764978530622673152837277380539203252113789920764822606629744171475439377422654943650302337958868222104979878948873721736202572938094363610219923107850732350703413313397093190604275242625714935847639207760190441082249009990157669524279519944866539641005739782584177133882797864009144923960507902535306165168841277834547518964430422733665603771849383929731655457537812460983250672029939717451334183876794328952230183355097010791491666594683099776801213073287785156327479589875992820793947736519318011670275720837090459411551296146049001286539339932868302849660969544217063551257800912185906386347332102677972762334270019065230920046579299289939185304668827122561374524918383741839954274172513725198675873942233885348626773375774141435010056781056743366442089290458828610980996947290345733997675719213056069879280812395169443698989988355885462784619186619879879432202268827480637535314227480930713434207960706611472207589362262742723370607139541207542586524932931518350371851606878941565427613705277873009528327676443062532584634012526784606248312372778597145899574258952702527457358853776972373588121144316202561267520174644107637862018371468172742767274386996037056056872594302205879157220195851013702778255760891501358490171822767667518142740366361369756918724057545992951808080281953472915273704099129567875472153500688483303861815000220232898268977469602632610396098681636358694117088407764139497307002261901121455806950630834605094128029717723395537348394309542444533400289200783797404907770898782758207385789107692591714585994920280995002851476660365153291047364137460172631499338333540535945979842619442292929286796444759499609803439980567797865148425256458698997210624567048969483196155871513457441096768636335284231007763436500864287469936503391608008981679239882172180558703449196031616884892150888921371276644580355983406439361541979754589157390683970355505824098538123561371149379748664542246283483824746280916833713000260060365081146526067610425922431244002247687492367976393280764661727372180456488025080573050796746816553873526474284470424681551425247090775384415937809965883322556044901242612065676425209309716182436435425763806189066378565055606611903598207321484596815931820088619820726504035934335453203572117700906842667116028451288132999025786382783156531172995092552413087639847812546496832794612244464686246657682358984566516194477895121633830961111199391030885369890597870780072397293399624921508357760401759260893446422269452482254015341386200857105367470165082319941725634530444398517224196551593845476178481461606312493322680723027919829834589672847019698812565582736295637698474872361876638598015229301349443801589320865353295852610776290173814696740393759020005977119098784622564246592707646833659308101561575249398177121995619306964908802926716922033240520251523349898072705427385582400406666376178847589178921045043615791396800130755294004642714719161693163003038281467635007270504163979256886383950249688175808909423471984507650055811245932398663190952554148548879254556922500294503084605889172161594368405878813536552005055304753638224512483717987128906238320312269511211562361068424533757177021514237993937408946278724629369124749608612246979276942300255540900041917644525922006838932472108083015980015210558433975555154778403216983626738588200871988851605477926154566836043139225958589621663339343510299774593506921909251981236511580125455883864057680667119361404157235802219397719439876878800000342054674194336449138804695979227163433062185686572502223602223415832446163639255065197139318788751427425176725853658309397985470110988854586270031566381973994401463872753738337566733666564470233263204625129510006965265840771588517044173893462158127616089410006507523353709908801407987046591596246906039546191844017686227996336963050995596889875167538486223060977903656467651012395998155687435438280137562560657082866655550546280674857238270050020032682205149571945600883171576581269056918139399776738751382037003334205794551867034739442813177970927765355145676643193233767591548372003742051289523428833321432937140011032560077968543500673234693880399594042560560999577757664633761535716134696166848812996983450159843306258300467543236411268538783610172109068295652306195985341981474250717861619375714795462604120903815311899182161897688689875555470226138476953154351497667632409628083169479069635957400184849511756031229765808319572942252520488033430757601005088833658296869743792271830056218988398909223571033129120011486801152266293703652444429445112564807717156266822341201381550515033751672110215588915491687348158862652099707793794035289758847526790647412618114932579413566636257375887466182142804876128197380722653561526800918390988209785405024996910236269771588865121907486976258579002042638776762548101930631023145412359428178543491894094725564766676411322537690566198265006548345021973776772329886728228231220743822580313234704801863184512219007827868065006913773820885488296033836208509414966636953884383669026004284580730906724606089571222711274555102571231897777174857767717474849443042117512327413578352029250054659379218191798335633063154754234231111037700627848442028023493942427279975055444417098686850171761287756664902773188110695837858079134768477821519495378933460910636341036955609217126870598841940558396405008940663296715325431865257253070607800144095126985972910646822321239889920924733947175295013883246381581677209433684762345028896069260255834149919047699135138578474419201331117940166886179358527104512817789557209941088804490187000778107091251995841245525891984852702681669550765462283014236862592297553846752411382278170356261292094235819369170409134384814418368846535756794855632034519596867898138982651453593761713234115956625630722080618693128480690099370018821659470127195609387692787996646210102813776840287983458534298739538499573429179440449524709253181720611096582636035041354862096146472610389811593321461388547145187005460521303118280713263984832281811870903798676341444474393400005253340264034366987814860090324029430687904321166379849878196117425133531496873471988690189864382326236826087552069111806665501232068858126605858642313647992471707764536412118814057932272902491161505420459756843231211266424219043489839944909758959930895479934939068449899818336087151227365428447979088343028474028519259038365571041405432581347445571822555443963983713493059372607054706468049391978506611883480871150023580188320539078161538503903716571110008629393707001791632956948441547706862311714334923847932055465956671490580762772843805935852980576027230712422745616408361502859981489559446912980671580473323173770909669123748335886177713466956274367123539604457750951526698496143632277064061881493208488378619293953997336875178227170378456764739286185840142337097683205223562152921322919849364633700179779438906886276300403762864312179180379988128872694656402212450101256112139112340961054077001489369806313811836199541518432933793791510606903150228743656953824213876843519540569924234412391595928899732593153935621983207343224196880101013302767804897004048681127071361810117081580620609004838509140622284009701901217613455742467491626592106936239053821394045074137110012755481593671134748621167732050571450998861345903741396929738608959347815443181543496851789113187465236164024615050351064474616520808083619763125675848262702135947179938881173951109852671893162326856485794576952389209533539107493749984180885058268380034320911614525378266195430569448143908302824046993101780751351293538989576389572044483579325721260094097774972473010128397132023628372394481304473435322231082417818449719364416387271882323753366443661034587626076632281982242779306741009036385418445365321020554852159439227792188151468528836829670351744935130478603733003036564952824054105327224526685666156789515458381741798317666282972015186622953062061630260678610981594870674098365019634929124301035358005026140376890210937387730837070024979998128857900739581406927697590533339002765354357797046104555171725476895717047181363472532772358800301362617247722199508704729436548984682049362630872852713284291029443013236217015427062218693116875041934744574881031761144642960583450168492537687414725653953312262512958663148439238298513856976770438129262112619855156712048476937885305678697976505616559171220860370941194621867036493808749548668376613358588682132634763984369125475930354762023620277439241170663756500441259732458674912716508736301132353028442148800982308767938704015672682637989345455622307328286297767151113079548330604624923328182310558043713784252088426627660040717716645871039252369030529842885459156621700290649431462752323196603932394083343608506539785185770397671268212855587525789757027818178081555851856916464089031242432021401493607658448423258426280963159324122914103159926677710864165273820668991564767572652608105089365256430862669631701389265655775960166628978384577143342148487357553632901220470758457007030108476379216998656834165648702430611435797692780364102201032953160154900997450544860723449075925567071486176730684503267251372077334565489934131133392101824049294328674567346620453732296886623583909782370234765717042817152797442755396952567811235440534458086018478049139722599073143616421164761079145440814134745002280976328598139855339429516373062105705196569944162194950540082850566988739692456172840410196138304386383164019590816462922995556944936903440005688676819980425403949019027259934248857465340130333221552787703045410001173634450655050626061758275624571597083562069664788770139178057980320337767292953545426008839515213201554419852168373721775098304321205732440413793170880277904174124208926779006913780179382725261235323549464559177161748043758354736046558438906153664602779276211185002528540948142381144857004454697847989957460009025770407901614420861910303343609221239493560532609854043214927468150544740764747196282455204087033492752099955924000202362049352829402416218891093253274103044333244626437129465430289744160691737945271406774218414819194494500328929867116760652289457682550804976755396692606425110445998407919205749927189709960133522857568199731256535342919006044478498701893814575994504292315626502665330799569656750333155984711799081316026253302262274955249533925368091702919628568633306171816695503240098542829527071551904073454503238971122876440393414719504783751200843802413382471706952244211122931557248620792818887272241189872892289643833618340023298778155830862447300677351619703383395472235538556844523349269495456961127612439869105678534606755470309430515996464371953643101058936244943409558982677687373340973181909694550154924461390986063374138662268858510111806686445540399753096357898402220054691416156301921379214947439488693064615617750769261077167992516299544141532031179550612495186184022313363630421498663586274178832909937917117422555840118304747542100136710592262244305941134158863576583077640877249027631857283257636542769146160382949044778396361163414593044897513300568167109411025814160366062780187721265296853188618154164173871339955273287433998525758828714759400448924579807292197901169756634591290497462607592226849222180496713783773851292097363558582249503544235266146742484979057849045793712381453298235091563629430406165305663414674149115079792544236119024169310817108224863518144800483757315319796770678967152482757178100692689003612896941997048195787010307701325590388484561067114547421692678291665844155649010056947050833163307012117917621070772661555878646041478858517565130881656910129437545677603537918554192131565480597962639951983412623105919015681641645732793513910559125636351583152480442937435632984988733776293164988502322736707693332283274768697873849284352346753020935769365868129391838602663470592273386690706276256933628913634855461920973285327391975865562761598595856304105247004642615958922827526434789380193810889218977760876322297101164504181507615307232281707569292831732437136011347497679741557946687511046147494020670209494686018775940548004958347531511816888176683584483181839091854360705878126233762098950410669328707583875067534017509632648699212803197958056364384210229930057782173226536856901766949410573246558720273427985155405681694754517148841814051169746615794199503315299289594610395197665787555279366591146120675321169480035637056779775562522287106452440167029130797994208069368028258267688685760870912562786921568605306175334684492923256748415238348574348664137256481466951969447612108941448487500878524644023344787442906301836265605529335358782416827455520982723243533266007081751789287249204861046618230593301660094425561117314333629438528501196460994229665531877437079224391153889820277108511766782406521322671015402409226549882628210702291967240948330635738848317897210404432208115049090212198873613029955069746473002722013881862431936380814951579975690996441311856588990171759583864779349111803650607092078931671392949118140186991766122171095906608580085241759669897577274241039004236711717592835262385907716930657583320276846118098089531925693108136741614015001538085267409579038510921137867171757682856658102253406652594390155997214440352235021284765676047989603052146806581713419481897223470019977468549754569719170154927320891766392672798962539293896716644222310547640548386387796705919566637730845069801069575273189724855623707158939223696878785821212231488906211483386468649180008141922723610027199423615321765312085172439241583098661663507564110376123628694520635150164901294861791783868523352593236241698841019598125006998461923524783042329136983753119595474509959512640882121660691344500226192268409098819609641051141478463322684492362099237332713446328937435347088353505607145717212905915326287543543702427003385880068705703733988179224726462105999522582496310900269405570729896519687812732328492689494254982411185272482163335230972488712263303913353544456592159952442635412633819644864627154212941723903937158927342816926162766081895404427307472346920938470185988587096535247597208894894558764645884547174922723774859482558753864130328067861863741558412907154509987281813064937301117006299179232570380707910337979415923279979158996287171584891189926050402968615614689477591488127638413461801920578162605674995481248068230433123435793307716703904006439509489809801316636305278059475345778358665658938797526370139163142158767851572298604036464574799010047826245283928625594515816159346336088398418106803833311274116075709828146457086178804315469853406546136801363171887458143219231902395026051105381165822977239100093191131525599556205859793063858000161070891545904744116123317805105343406816166814624099392723663222493100317876472122309251355080065620152330265941079551026237991765044794673329492977824999994244547914983282197581289604482505038704205948580934526964081074982039739626303953403512741465259841723182556141493750849513994112787479495334745813249019945543520834671823569980130367949088731693883104822595204728278805415940215573408474275835422749949241200582007432254579613757099408282176580383901359581009928462570840517267388838405867737369732989312525176310029519701919208248843319343241548808730123905636405927074874142909381409867489697933759241056549841950205880441947305613560857219129512369650121356167546958906888815840761120638206455019110394435391060796933505288298916877253513928104278685763944237733224525800483670746432408675068351889568901488656094634422954461939624775919147428512409112672168673351322957439225331436693699165094092561618960906507706874360969894038479165681247367429960597066011836319117336949396940939955875065468590576347386615085049908273185227633097406915052838010521321049235712648042997461691472226245524481657090068171029208670749192333642926540806608792300158221616039281637109339853834319450456985576103894384480419518307424683541370342117400292579878776490425917460796737329414633084884771548540440970707820707434972095709902763590328344983008846343731639675221160342319963956923197936924407866146382541758978019173085665913872737643954638142994991429704241625505712925190446729341408395191049251456947550860092151862649500819544412012027637360096685617613051448431117358072498320792452750423852178677472467035694265263599839266319765411730471556619146256092131207781207427700530588413197751516225331549571065267369425589951991492321424914800559233681293361041140292098040741879945048144569770248872300680286837950401611145794935718195975602798220910896449927804211438592068335635024927389884607471672068784457903974289942067282183307214539190450519986173231848274305510779618564782974963190550533354057511844679497289870737120984570593093038971695770877072973972112100501387423669304183384254008561840770778046752638348876905075245246279581406866961823767703598468611463834464046421954680173969255259460775540024967415468032098851888778619246978536568155101693275827688324314978612951321741382391610544023275054616374773082943898477646985745684248902220204622438090238581541529495541124224347634894716802618345183640269776285093294025094842352766955388916474749858861076602936545862185113009527663542593768846528047569483779351419358493680220635541657416720358071447363670273308523368586298871985475022737634532092215277667911697497948799700664684797871429023152291847450329684343563984202092000238232461227609512045465901843902242529292869422578548102461553896948493823705520057314328002504737766270525484835034028760896222844035200859423103329538435884472939187111850100015215618241435268787961071202562536074782653230218522092643169525800861855109861848028119719018929585028548201081188600802548103708312086054462322279767693752042850112915376373788971960105215570275476170368677534967440127676289162518103105453581469632961122214490490853851663091999372718613227382645543980795001670348746377926113786415820804918589867486556853200450737676000499345692573909087741959233030935443058505024608408766396025499565830872122800993079466721993309699065760059652862648159517330781175925415644254717073213509447198811085435661100240715407224032389313097154350307335172070865274334730812405559134683633739401414198402198439823289337767846296245276067671142301481926088781837010244895293887020460136944708961820726594404773346233411456996419477009119805143607894180880159758550906847436933628727769623140407879410696204510833568018285468306944488522546317918236368103333170638135183386857680667597484151005100927652977320271959374608490208733563995030031717207532218415913645112088136766829401179740155781635174569657010101917028470095955852138866971300116052944956270678284708249798832292113061811483012649665545134784321661952700447914935813043655515072561182193946947994045258910010592920143160061520680078983981028399831478105006312895570807278546099575743905810241675650989771180851871182698018334251807289087406141164300141876625814523555309819888913184043956416947355990065789696356691198714486074446867358041051282759969799972984038389519422185185951688193204942897905155708800232271309603677619516170605869665951345304778850190159090821339957909774963309756471825523032499943255653202557095375428761729998893841921729697036834895285666936391458379676087913125493375337701450304338898971179018727464841612261273051464897802407711834388116426794455269484519328268477767140885100499252247286811106553223606987369822932930522614695054450957969164420753275006471817700858422731769064097333405700633750241640545815668345504479815934580641725510431029229593760311995346040590576849209364547452487331772760052643124414466787275796449665497849083039072877535869588516153372312130020383460955733320141302924623699191211831881667698199948438798881614375770399006481908178985680900361421813813810387239595036713033791960571359093441498902637190618094260426536298626882909401347308487744783448482249229137832453089457352033566639971543495902952945579755037469817457113122425130912431386111090613988080618173315444819022374986411124735762529807800908241185823770482930204363874703628037097684680977606446784164337047187572276052049727729278622668475079728056415957726664622822719078298389589545514188428867678465607281570629694419504939889392461704942135769139832271101780627366748836985708496539412092199892664813036715480604147306268654182944749073121317052032622506133621283085744773623238121048602495524747244889893630566566648139483108779847723430140280720144702171246619030810409284847826414221698779108155108270680163760075660946025348213351626130768889291993295530189347824072546900784990095337474626814598121894253938098686876975592155953693806498446352141070479821674298667234227047523360489068196907948458719415604442964241599054027517680788365521429535056799663788431980386122270275917421428729329261538221277471057938007108816112788653329424396807887261206188240612095796361154019484056747821901877136166160744337425591100248425362283583038023246318839630494444268900519597153170270128859273396926946124572827204274053328664586981484926430459620181501728571615262954096381861760494663486101571792345876168890636191824724133744862776826538975573414176662786735407723380132300680152761001773054896445035657200773922079041155611733617135199870066962929575334221407596586332837145586728409688142520529078624749026783463220067298450472469374458826392370955326131049630210765704866761053449023961660894893764787914827000303293637496520385388573934326638252507169739934963086864043618302204592937388009236332951668647672100920413497781090285594932024398073030606493342579728235762577881800337877553991836817977919693361906321799167646661347214664589268876541657462395197266285408089176362916698917696974257635661106971361977034199733530082094082507325198952118000729013176762319345419954474671537516199144431787807062919904840098735922508177420225216466868427586118509066921671427842593083664391847879606991904884632430365806589391594365721231839687559590283397185261218788557938750331276667722590586322618495067444674511317943220892436378528161989778619300610934448954582016711363987102517802512968149034519715050685586397123060342581115300928547712907755503984264458422478252963430065032410786269648085998827994719426615210335017042703606992397292987732246854309554050682154121924115229738402584975494116471344356751031407784358137649640955786801650562795366693628924459172170261135182537220468385486846056727914981993043274534255596782076205834722653433103947792899496457268323876102287669309196139566490393828626802030075443010638040151769477090488939998976940939825734675833029870961504869793655813727417962371516726785879938932573060686571664265168948837944749054508376930917358556051410540258537093785296214956902040031538612405067385524951399348058098999791416775768046011465745155656110385022603362014767118825446351303264626881208801931365428954708787672179554949289942709857553327335427344030822411231411624969920784549016137488691467027611051749959415848533669739804466855671372724852866425259062510786065811499544968644687370192061211351217268274701380656360739401890018728118966001475369155373055340776040877622621471446634128178649951713473627044105463284608417741930375098943960525550520531621650998381783368613118865345061126155263609730040915625169562055099373629821273588345308548480065516903384523901258017291604567388986687815510817666402843424071371855767814699505438588767642261235951674985420455686391176074166661049212131011395014559480172757250323060053746444362889062305698162522699207275064959418350512314062844959691106266835264474705974042926490257830658993480848307004632568943731073554848888461515122833621538108278838778262893190703975066735277249345175611707227566437377423770056548760494165471362125502834075365812110974808430238361446426062646564401757518633116474253487044354517470009693216195689342339496945794543069576385641754732930173302032904089773484456867794962048918299141688634697976834841152610087128105158754700919938541246825138040708426581757149323983329822858728489950845789504402636678957252377931994796426497577128357367147531105983354536732334309650496831536881263936593795835789655367393079139656632369839651106003019490700970068412436368556491862709647943917751075835496004891895827998837344015406162579549762301311136026212157335647177287864388626149352127649223735474851109693609482409763056787884495243193421205243568468034936863075481461315249708159358075607607002184694799807911588962361333571589242559171687449996625327505312385489597408958033232087958638794295885172700797535153545738483451137316061968927505814893951873004335733984160876641167520238624880619102325846059439962571528978784398649932788573622847290880379403884361994697906298540931302186117303397939537879238031690184188912921503396518572629581354678086035357234185843132452455009259999373029630740811982666827439265986036577749121362585421441495209607417825191394548653581867258678275318554519779685403025353039183212850255521567221118780769906832237164215790424626718836507042778666638274401789707471081675235098434976812548915980753111874775914833644172629167382288164253783210186628922890371082522376698069765032123067225463103137937785903259937332764116120033424157557974535499946176038921792434473930877613325363539963467078825961214145411579336442262316758018919439245228257006825895376079734202163407925396957360608062618171906686529680151096108242458763216952728893423792187010591088050551870043120708722436362280649361798117250113943013244490685842252169827018079801586923196961944166689268624123556756632488937743671382727778295579660528270522958835114154211320398813827923448928338750163515667200108831666663377243402351720681523386433466594946574014927700046124796509104553532179669226082342737272416354710425096536011841764854357261431970411511985085482151474125899706952840671042182787145968944873299297318980028361559668904937040463534944617239951765556916330852193330031670184787591199694746986288647502531353988880868239895686133198376847490812388987456406357422739758579769265038375295941576174401149836424254328790387170044572342092511235990848735305543314542150899277321627130396134114082746960325436334736589116948795415876862219628067483255380247842719180783832123698328726659719593841039658384372632543233201754579194901383623727552415326215066777089746595935889485005608383867465255648971483403212563496504132883645894329923865226928887672482466900884867093370009364950120055977454007513600319193863811906817250656976467170861934589759495741729556883787702451554682772191612871726938441274883111424618938281732658418095282318939611821184984768158568752857618221367993721020121299036869726176576554176593868317541410849571566667057439696116650818581896844885293950283430775466481043679129706177051109790483737527775981657594290071069571202598296124086053660945984819074401753222232886679040927399498436892643486206725250200623520008842674305588591979916809779126225207638168506997303270120623155202674108994015338987532587025572065434507970084765275326460695384710858963161153434506257615659695031120812878629944876423160032998860641857977094920503675051841079303054301558412730570694686615384876238777488520085496187113248528781503947170542986788185104320966119608351905403888722150761378071381183781726658814694476907891747574770662003050529140815091362493163535893772453815091173727965805551367971401335091467065747792755946708574119189805884585769841886109275448448568659449863459744857891935432702007569342472388377916011455839379349930658311599872438353002225178445353333488370460505012236249588391576622443552753878148473530017683845872387020313862185918617793480640882615596446165022323394880050245219806385242125683966558662753802884998806961939489600173085572597853165404043064417536019287103621347381536623856165452041118883371155249291221714001514769274729434326690929743689202290873798253230866503875667666779730238836451311157173840359629158762088307338905871086704797899855603584260182047791348227564730910624621598298562853357628729118242311698527167654625676827641817755620401451680073300563427160738273414235504321397414283417819621964111282348299038092615344167648386366396924220858812172297022552032264014596541443278413657227902585891731012350342886164192787348820142515286237705679589088974462140835738313335684895860948265287190677018192019481028476338916697210524593449145061208342095070104401485360217064600369507973266295162376738285471897358691964423603368276689480715445905899629886901887525565022679218390150334799251496327440757440226029928259813709333619804169978307258248935467951244693064093174706341126191527047526829927643129084514848280443922560768700867023760580456246298423482132543294838301396909396918809443442799707886294490832959250402980234877931513088258856204805852335760254258119282078647429504727204558550951744756681051758301349705391858431536879534677906629089707225003114977820795357565464333186784519410901506299505961159701229075059451079471717845976669586267259451516192409115732814042047715875845131104843650465972632530631164118818232022973013642752210390667805703753224742442817335061699362806778241795839313559234472207478989056023665670703299548277295618109471348253528377246574391631708653144320461130787897298696426534906786043017823227079872827352152615272220227530972576613843574040816786624320618034194315613825923201142571259972850095995050432883830464226711708767790100724530641935279112528732453895224374793644084202136141010817926108953134150699152126859510923346385978938902045093011601787520214734383454762259668713359896313328207028661207777944422815314323133430791973003981590956281483238221162948708439215038315291838608831481891903359749725771166197572284846949554575443112422990221431095744655534405583344160539507664675405780779451073200724099602312682628961568154966044286611652428691794104810924233801628503581777648259529990151358015238049744046450008228570039696932735649836939609980720676712470642428218853411577024383745852541337702407595060466339224291253382697898336969012651608694806770040391243597773192267356492702015359793007501839240013934307920653552239828888952828959693249509205144458293110190512103831726466230169580827026669734385213682804306669117391299314264500789503934360594221579197429247137834144818702905057320722576882603580180051210854325633427554959810006348111734803529605623760604986699658031858532496292132046516975690040396911930935213097151465175559880528302896182251808273659075103737798064385450964011505111846523212719842948450600208743243959292216992489009348095139901723539249525368735740447338281515642573990111766134415560506424595825087460779054136731712574971773872016742730964840242370693495017022611525362473172741774422268137280484426322119665878628949987630823459325586531571480676503550157065596828733317861294594575960096455718912844867985385977953179323906445762871967948407672844688135429377262232927517347999124324800546627475516461761306596751610989170903348114352670840886023598320833835508717015697074948423544410258197254439961479888661188967418414169246389272609333206665687776426817232654462962042396461449066750870179070459946269132572901630392885915669130783890009109474777678805289388894697274037960264417975685172316976780939891595622559797999336795108804183168719894705135985392490204434347519579176704746302116151134512722047403369591052983562656594635583232284836317548397298165921405669731136837198089904340611995800451304696847503683297217272492527670240961441072660853674052422122667810399343116637470915759237542526194038016720502620927897801109324048308885508712249316700214724448869241577505414619164452859454263151652906780582942815110613591510224253427552099281758134785955113914705264252565716235688919175082640573561353704443215499818211435045563824721570597443527694973310216772872543233704565388556429297511402506963590384531773507404521742992987719585565028950905224137171186545905480400386592465209719826627790523822464700970381825576481901000320934378338899457744874571103773806099938887017275390607255168424184392595926663094384966446676718926993075189912587846520211148689401433640942587937404614146326187870571866121852712954912289576716093085615244154016512668317594304410051104241179530101375922339039694941041234040257817142628526060242773359974631495755528520435139803130520122262243094138780285897010223060014862880471501362105164029201162004347063274041513249077650366906282398300246429495808231796457371737247236759918241867889005662523291094074578294670155781984548348297299388888169922750467721077560377141250524228883077660897978833156025483690950067557110814502507700659750563960676261366442625558836797235468964398436668291423889210770489001450713705748171151918084817825348008629409481552984787064800158812029337646000638292411519326538658735307016566705204171018371151541549172940264071313523431150556664013679637955564705716157878637751487113872310103658264836252845612646179201148327524149845788345897306555882864927145864590925213899216174682000582377270775927238661978967488573188904096710048419357721068761164803709020707874432352233646938512342566152558303851237318714375654299093506762412869040068666534974221956098978203036704718364778381246441679872990897909726677521701465479503247827872798737829191261265504099397329210615400392615066594421216581512220593789359372024236927086527943177566429938760494805838231630884776233317414706592896591677182475712224890275635566762299557496983023122642965803061057729316548079832050562089189573215006270327384062937354329671169294220514905785844596788076808856157179877834347790146505912312884497650084747558603353934957503684188449746397643866597606870953826245077588405012616388987009879652629764082605634253290255731583634914377323835629728074723487074110445869044237590866406514469979622237312294693330579633969098779767049664631397968684706345933787058417599013191013695263914254871730645872858089482932462619009459988485707317272202437674630446395771952722776497561941580169994434594387902230282122710306149457354066505354228080299351851306052523001818558707605353140916162293230539609801485374878638597064007496245720406895077822388128255266851832484395522663684016997845375503719989969345772091395575991053412942081740024311483926125108386519110167016160558682450957808232328359049051803609049358341889786000582371822847292343920886832687733772767426964598446357788519179329621477833949056543698205010823437257579725590269627253877221172946983951275105085809778035068667187730173335026950146259169610319130652519402439707964242383223864584188369916590877442907407370531329009398021941834797844542558349952737139858753200693289333991404593830935080768969384431035008146709033182244159615342742498952145742360915025952446786853793688338196298300056466114641865824429925084734018867342495874011222698318044601507244050111080606563169214523886511454982656567549693527529582250256429465642950811990472014472043144595293155534050825432650156605674858819988618301389238983131045052069430924893028508621503934490295323160547298797058463269094946883487775160481441765483889770267384204819761819530186911571752789996084247018508767796658477545578851023093754741031746610918718217793575336527731005675371790154141321348653920665855338966006247535714693080233323954116815863133321453548886110535984767477483599028790196490452136356805391330765448508485467158019647079475921087019886916527259223977346483603277883173163222842802179162353206752531002383574535186458610641363909725103280791751809040615015294104693022990932820540582337925381697240387042480541727083933243232064710718539490338250155241644411723173299948329275658144578278512743791935919320613560977355780008856817620527046625240810726937718672615043027698739053925322826723678751080559040621191270757426569668964808719134686145633009734310435584246471854502344172455799419779742228326251824046409352966145567038824855926452681060419192223254087351886194227420333991672792735067704887108226546882950651420740960033239156484565088588695889580944414289097135733965639898017872940556270301150301806249677341325577060968250450892855081748340695239054499838904219161130976353019217001854785021587364991935639621144866484837556714825600015564914457161313427744952783011534473225235166889185411823354349015720354817369604388092826507639426114744743718008458309671615104975546453981834853501942063356055740692642175724469567133319420033348065550967204958802912015402944470821439651309546593777551188017242869512892750314307683861648228361661155549061451501778561711713736101334037820430145350704620384071396615297788484632811652364950957267707953244789810075099247913376494082968480347063089412503583686343355891271258070114999918872094077446885459993937326189201857868405178665134179378897666852676114199350178784036059444386355704746611794239144522036010394484539874742112964392208382387580003582142016571039198805874648182932328717846840439536209574578740032224195206139422689328820307585408598068762383802804069914547509399833299920734052650710775626942489573847443506535485480546846371395200676946614590261920482966829476053154500349174315779566823945467925452336846009494228813473290924528314087608115812889509956057964220328002142405141990481494759583602864406653063422077620753564379341319286298371147808622198889929959973355738265744407045695541552164200014608859881832844181387096488258220835908088823800693890663029134652395057076352498788408710970588836315768018152958947728730104214321645715640035108295830786817521223537851928286834044640218584007235257504003901888965197595498038607165333956029083793856838735350662714556917949657391131615756384045145297327847051519820889712391847133004143434687007596102367312466060393355785928224163439265835748804153210048065915485473691499452592644432592594572956950852424448823894499686209726752516757505713118339362790225901684031394052682443795259317343710497798685376866298917334998472672161584779248085852527999114328916976115330418120095619804678148956118795299955053904819633919995387231312258616797120688350396383733884897011115227572855701617002706581631624679782919769537295425068207175058346290996225216864624747413060610835580750824402675630575288468015281495037688003754071410751652266670884867039583199429498318089181283721973695562456542285010940741811873868610819703254110871039090737463918413363870657285341354970688084496102092950905802895974397905075539386764250905221501401800457446614677347423831748662778912766832955891528317365384044433734306823012038929592299496504224644382011932880643147449883630831989694636383369493808588851079576009423439290877461611460210593987981881960816106679117774020801377649398973208069182455787893920213887189486734949658980310265438612462071832376731519978492842445243731883089303655055970610842880829525393662916621441911011338999513411933574709370248455912694218336734281000467489682838871661535249311667075363163731714136716669572152131587385274666421541062801482236293727857463718615260256317814640855223107447711282305054693148829261160924586339074164831471929025072334239867582890507693787908542331517250145029545588375193933716717484058069131885041254694570065140696943068007673736067773762941670305158148698929597667777190412066375788669777204916748356497414797854487716915443242878368616011457235250894089052715729057866142434783397264639334189962311924071531331584763825853356640965686714769294579468281164375032867828271858122677599237920733796145665754266550563429950550650236384156127890459813578081231035782911824193567613302716062268507603481072249869596953549846340407096010633934434140439938750272542358398123655931453725895214071921275781054786226142972805484253802512328339551259882236284915363676040303347843364797262998530082481739330103561697420298703469928275185083248103798457161556410050927713936804391435688252284682014955729830923783914409660372192656667391108308513827297029605151366371250422654678962068879714804097721818624681152665779290335437227995655393348643757498677128628653914167059162420812251271490204075997183504323195357951456884207437326062648313594299461352462051528681820382721888204802942108182440528959295912149450250402427554747212804182552882731266080355461332061844707562889254783198386781284242947333109267663121696385309019052472209613850727096635929247674175927776702462103875288515310074356713201258351082001987571038398624427998750497268793040434244502968274308653669269204641581710188918340987647791292343410823346325127095451593879828580737357185558225334579890147151193209104809708324951478451368418523152700602194970501618861111490352210640931203248892236629946873603348932372841785413962955066629570816771615524317052303814343288641510639181856084155647742268743071722346781504282480511034170311250656251271076159521452381077627614198250348290026720794164939354479774285994116467451247637372024225065780267240177031807110893301483989073924618658453662453661690754669396106807611211470194531320399968863553830298147648524893832783706265804034526920978536205554825260226661418197858756053375534567265930264190106972418531185381126875588653981027968151839428730046834699211378482353845321876589212607310223845000888579462386936816739243703069905761467035941273987112513234664744369317986534553608046846118009392488788104015128801767149725691058454736185856867077701159982518730155634779297546268759828444283502802320163482097221878914095713879671769178731457126350619424836899328480062727511405753304571863175034869380496933211077637546155781957240878664678663545886086090654261052691411495838492270180437101642072802620873900868038739309361711925193368589239111108070367078579880734209249845209949330626253562429380124774000564657355356580132815875358844138863470997862948748908370657980080157054211392712757202133499134164903885428187639843738546823880349413508085622534996895318128389715311977733579046841706544738125713069672863321956264388195598242427124185278209617262671126829502328175087697516898405732664373724969316244274410175472123531899499691558766537206411097324157041406878610170823908013272281305168123747437384193770911644640301013315163328956157819218901159908228409534911640437179557470788626696446844178367388819312943501684154095993124962354511933882017401645029366042335242109631097415586944401926521305301908561234655759693788938717309184003364233053191985822380303787059988309126724178959043021676934894518824771279841535846466438274542188026455675429633486851304663557193612865197603711678620376052805021364152364713064077843189443580948156810463936263688131326208511907348863291064414491471908512352697717420824006125241822505068627306329543977482634192088053132608600741014838411719846439863237549533920999573505376827001886765407447008819139134343145266482159357921091960763475982822347225865581165174017101785211381654516537328419471202645175527411074791447150785853577357066456288072588167120516016064704881843979357081357575685321637536497220909062520410664464215904327781463028425115891157203610216619316469858252179128735693240953119006753180691501976779382760199771358064346715489240499087654106974413959858027862846702872434637845151604635181837805730014139477300119513714467130052711483901539906146110727235059494991654068648120028682869024413973660076677829162842306724735134750629944013482133493354090588472351320133574947987781095677056007172578950685459361064460254098129197319143823220356655249652509142153958430305051305738694556613620874220155869873666489250686856852927173754886941787453261295954311470299676030022286028130051758431985353231627604455525837857091218111203595593332027582663301707995115503924208398819750218103041880865970583663706322654688296529498657185543960328769195289348569707474732939720862556089899630144781406606131116281123613546914392835357967739112802025600280177084658840441644403324160055195050341958963459093894502044887368520490642543615935261196144559073477743891942492976860887392369113347427728989231593710857782504489538594070328772986511584228406387961768020608644774078733000289906757353017693938251425104736635290565745508077925854091859217938073540519778055599985750937433692839384551836237074855393502138212972185454819204764627974165451401657456110254788724991462443909124306544790037967080250899752851016639137626243250716965787325838655057597290001100512570844593609701562037185573636846661700602527526268506963754080382496580365857889533038506512199767019871752365958873603673744876563757482330518253114056516350249216578402202825675201224457224600728069464321165889670262038846572189556096258893483255205718461247995623120294495444762085751196802419749908032549344605967995700374626504166615204872828817636371529377125245689083102314030844701206124545545741566998897100090204421404642728484893187013762461875259451760245538393686028879644833553113569397929709842579188732366908931621166378702228497092498013862392717875339900703885859357710938528163539546015482440892278991777795989814163543825069321528287501700566337613862872154368007511559832275229428909715747969789161789482584164629465160470148408749082844321344829655785034928677619879884603661021835593212611609227178198165249147746457239765845700303812411392923129074447275051192267739986003197777130192600956289838022430509270306583208658930753346138555325703359077659771975615387160813087178912494055337529351449266822774037805872299244596080247769753949145217847578292056762497096314733194719243451284207713323128370309820559539678865597550866364229864937678105712712220787487883539629050614153804651152284076851271100053034407033677898159108270645549945779264121725587928580058153853402933285923060146142724728352615374975450071860437130324660930373789985256412437863290445119024453700802484142254990033710419946943134600476114411400686761274680197825014742463763204667540715819351469980927217129286947205294760027382646165900998748286610668614640094527731880697049588115620180918692257275939579885167557461350803898365075710839277990515235756318083796527151632222680534982896912646931666156825832584584012311714699350714542006670067108178944516720164582878561404303112679838130725428788563985391555813311259108768664260231533904855001288122901612536360405558649977447043334748733061293189546680309099087148809178230654301095486144808851550954494471285084024619215140328514734974307238450552040583713636072658928827540746022196772506831960563897851710619998522275693278431490429103010427831654432335443525324405687372512694189639841093036150867519500298201706635034384726574514463677489175033525270190650163886081940152985836962082012397067348453041557702667550725616046379866615885094908375178392759914770158763350758596971104743518015058330993613062061931953370280601329174891958995487001016982064245414979405340976886929562896660294907584332937340378923077942926697128736145141230767381585151122004922382664034856810837659969778179577643665096839087640089865152719818462026761757942525666593603863329058872323741989606379213243207045044463208292349603366324906736415137827383984518404008662815556583059395659453938066766105301005795061057902167805939600148340003368923825866479105158003278158809945078839859406859454379037753266116873452797596299225414970550545579523162489836840478955984743165696865459373480937322557100733970869505223877617323988797025223270084987916586014212500301811610987741799132198781616835344294519951914080942527255953740245594952764114369839742746109945996182694792311345380510481583656824572346556214220902369969098920892576224624260832095450996836497404494459190559820088161726282390208108318715389765612635272737270852948764666655801254157027459032278383011327100033281967399063019181273280794729880272796148999275097668549913982881025835762522653801416217149321201457493398675367769602979397703439240311843668184003425783172443738829524700595773554018143392840682132173225355331907688015708033940772664610677021525855622422603312354285356060976404136309648713655156008261186164396330169998822242312033772860543061513847484968932547034857095790281604712470836377302941289605913837735446729887137950844300375994523265513358761300266397473272449362581081382442078233761074324225723801296513830150317413529172364772156515598682719819063018093106870797728806391458507848304963792381924517204191147645946902962766587231085275562587505659637488235907522373974533358450676272538137452173168031308731517651345215377608010932447091915146002142789967349364666511429389334110715850207650886257157006644900359793228441792342906083408897889169928443145688885948204157968070322681573771543669887236676930876068486897626039232192205716460321558039565309201689038765278431432980166353638626396562526723792261405765638003390012278575697200648789049087668794695479860119282033688380874177101903701358312060793643305858469467779900531508916750129908338985030101921118861040148131756948373520745278774046153320138717808974524256498525696379160414620282161706183465151719445017485117913448190514907218990782486182958845083825513756638085888195314809026776412967687710221046244054691440950886469421630304022118158023518653872478500032325905532387694250546421607404793575597893606639778027939650498991410243549209188760929902073567183636889151040757294625951023198822106702718324298999071583153820405638775671206455747508399196330920384264259897436051029683789727142872130222491767025496690974900378571185946299063100767330379206683872100113783986974123334475109544264070729816210444804352218310074360308788901281424083725543025761458266529583594930149545841865728790508293809467499434205840839240408031180164147623183694440165772482127247437696525953390035444887070155404126651734334002590763986221100827841906109899682607021475037225637545163166831981656805819147301368836573726094993136074883234361787942377133995709511620867169004679142996670660479486763021751208994240808265253112827185215141610915886062788494388832032172050606159374232565538461076977750441206802880402315031172802568575553938586788733224371560030783710449531746995107336275339028112952365293158724946875226811667896302233034906613910102158969898298240048556407664695727185768629289187947735551781896357060317006396964304124312746731427656996364791383744431979752429891217952276717252984702157982433650428673381745868475883101316137343666609425218718003454684043063394221910554656758332762291070287278019799348730575417047680127162930282908731015355962866697507145206338886169152652554997937799308889889521580274157709336393441249813932384674981677538302755339041057829068635967481240598600973449596036045767231634412260254197642355100731282604353340663145078582512662503920972417597414848006042269064698266777913277221694293156965278674582609720004142649333170208074163838130211858365526286121804028799750956760858998455944383772494371502195464333880819735597768616471190842942567649330367539779447392654640510349084650334496403992230433388057003250602931187784200367782586259424381270817201035006043324330923355466746752961274044915975651204043395582638018218871334430825737104195169651890928046833832689821303352424733731005141573354364160984047434591278900853321797806336058168881706824111431719268935690468304012091102097124142948366794393878630976257640055344154730223541355414679593831493864052154962215462743634514614296640264373751990333397676950777905551844457662903904471860760662742048087315483364808382927962573288170837459046760997513174553346167761755579908225562364509348821836685422849366900653360269439516596626930598165169431626488078996408041978880767945207001716141244113449917852130379134872622910843516298709553739840748901569485189956798014607181556042405122661832126445740790730837062186588152190410142356780609629380028022314149753153253463866541230129051008277083740053556313945377640821417755036578529052890978183773578350737772082616789887724315111339057444842056361268459434389566481922740379387992734463047071073944177869695571325752543120624321557142676874949509584902317362363376037817822492701311036046165383163132676284977499827177544762306777228172202174289284753311759885191299033375332257180680117184931017512770326565928295164838738654728865571234902689010266926510536892502093705808755861824452791430998638911762024938599673014970907237037664886576135297116202007384073185738742987086771879974583446151492936226569594176405131122413551612678673984937460004454751396868641465482118702206431975357528870108412715767846777674449373064571906938723368344386332796875431504990502026584477829772205972965926938451465613986245676444085623582374520892643342059466931466234564110414850948497769611873391675272762344790046828855560068294012412962969446546535166394627809213528506685259795861819369062065344136309127658675677479907522212546887489599337039025525872706426088303042927317854399588933078416025161662954432993757768110749218091261494109226956593992056898198233189368431024061246595258404256121530399506397903312648147541568107885414325683577631417869613872986506927596976630704491816516218946623881966955980300633092640989531503607776075080580451379942927810750623236636649808049589094594976788456178102294711169463907989118449614537892491653360897324324067603761391594798004439037563032826467411478035472888424412270282866324636371168712388496564818769551250940923113061273943839033181400680365922446707245960882083322097069340477548478215329262522639717519031432665598316507789945059689042339792322593340859493479277181435574236625451285913110998896066532234076152055253729871274751388289359770673405606629143338526533808220046945719367648434333791511834144518818828448376538735070337800426060292626209445341987373132214558119081524944877677512320107946105740868519233040331517792292295564555503523433900208881498383168135384762668379408592873940746444279888515415389277066972952951465553843352466027219266338263378574098943282152376257917583769739187806214647547529232120397282070156032865887007325438122597944519674647435040664274306843574008415425011715407175436300797275221024183552034537405193288320644769086626940814792577706140982724689956325363528940209020494197932294576513735639087509555033028091456718313657192120764905858245755195653876225389036799167086249911817295792699334583692884842728914326619011684299137267661565181926525302541719743956009374604380442085029380490901921469088841422823048999157768303851046314323457437952443403200849854068888483963237883738097987176789963412254883007217354138700868696674985383434037447342428766693273191493175533045337037869146690281557145468174328556541552623580008596517195733202173157474651683064387697592868185330155498614638325403031901276141275307932402107338121532091533040484941444848993708646662717345082379574349538875026074171207332309835512283455869409751791195144592181733596752729587160207496689873594242134783765619245079367792332452842415490546370147524929824654333732401360045491960590651852867965598268695196282258250420032097421006744823584185175192520465334709342481912355664272957646358188623818691581760768337663496124064015858422137202170841967162134552362828066388988743216060529881293894930984180457538031095838721641275849403429997548682782499089609740866401635335365738568890100287397159899801683004654470864042544331815777640772249496269287902444595102640091439516741873061605489158505335746358320688297464471372063408232078829657496560723957031452513848376026792821792173098613069196315671464128305355203180833232698862195455074836461333075965071755221388511775992635653065442206193491836153709775609969120449736072737642917527146469007244938878367591380271878932839321074572689269990667135078157382023606837220179528985164124823756641797649397657486582115275643676987192905064855097304272640509829966971083950972481019976029712627451066540376158911539372650562022996282228080013716046478523651299465987494699079653141168730463159900390281802673538571827326598411565483471071989015105805500676583161793310273394452345736721999798923905858421437921451520316103748837465357965126820275751327641974709363158260741729114562753865160343368225674676538480353238673345296728130941780525812042498285993908358245147660554878929012398634208821890606680183288390217967713447030755904786313039462800770379985557586715085805194746728540265792915298021767852090742109414336465198286803130269106735590816090218988835859754160981721601599129573255200651532326313335090666591458272781652967984728119776784633318574700752203148938136364886663342554257223080818134914598243600863168960727475417812415641770890051484068096383089808463950096855716326330962227418305500546830918188877503603221204577206700136917437619819617228784519310613687992426587293968560127270341185850751588094410970749190934374709014382836856059800750931988902054049371141894139562333082900313187615383565209253923919396128799876720821661381853658398662377486921082059754470825868105725523842361484951068457664800742424360190818859295977804846494960466927296168115357633985635089065612842497301408839840402702704326371733022936758896280639251273150358231549411478569148327293851560232077773363003692330253337324557746983222300869797444517590904930828448611006684127316044269743487546725820230174465067294695405785326996013128667456082679936049680921398552648617765797313106342329489430424375644622525319032241165972332702963815337683856616291160646266587821411491283241886615572856443602761546469952500717729721725634063114185328582232065868737941560900877097324865234666063019971094874028301918086770489463781951773791607691280424987992919573978478640942879285528645436620162214364585721846740197087622085405585647117255371805224781135569395951614227189929301154093385613426151658113855234816829239546598998742274466800649172000280961385630106422590781517077663570721350348592411608781147327809306545639809207942314075219788840038435130255189783930137682769757710632381535812648104205300156715730060686397469508974412576513588812397651564453021667373579923173905158134220377581693991478540813639137236734784756284205046183268766860270923743434575684343791375064743063979285062339195446355175550082374435556246652101880726120176634990528141747575760019870857283450206376294339558906351640321955919240915709879901309652406769613522091655750511650829989209754923670164279452341126467975360440340390516190737116510468553498296925604473261133415487430167329721145516456157037491530694998153486611091816286001303390368250193800005773256350081578513587605499911139118117267531418112421172413610443126607275785166732184442744976041117239029477347224992266413847260285110050920030185259535132861394517601312257401285225625210314838618722687242109515743797996675254644995930731903462348996176578617118479589214057339833699689822240608659659625782442932579740902409247795743184609924926266486878887975707988486235566802724652633851001785214569147726929776787974786425285106734825557204921595580929007738765828012335916719824519177537270350710998682579312804295040551066190402233562348229480168437344274069247826748668017724052806836429671117199629529365956825870715204741229904306663063966555580767777800557908522051705112292870499915582851405487421251840563064372448767419322211552752919680025680978333881633786751717504100862310320259036640467379074475220017084052924332913637598117803631953779267918621571070371827335935633264146654806489853476004549307339295901903174265201479249262737258481555110015196874633792381958210832097217745762227100959254532770730352783319252728784959940607449337695776393579270434325103792195182231505999778631218250866188504875847814806276559265917114876533718860913764747826309131256722253732351306792188794922899214197992493025493186645873783584949842707559355617497910451094914934873512483840804365046546842932060506597179310979251889420436649544320084843796961884585495687745501739532940794844050886416418747489149416195132406237883779052621389529926877669588625944066236362901159778460169821899975125251515474061406407326684122339083606696033992390150241427146548857030658119903754304646992163826510952955126332002662491721490545525090731612832274338268531922427040642021806922463267229082536246639637078765058890208020527482710047389506400441973455130129381540007977066651949260222789734583340789278223910301207017560913336866507316078852415115223909339394968754766757327669813409420766306485325160985636721879350620893627493325722865206194502563661992240520768433815554230651563573516455154467234178835348807508429640617310796090373883565470728743468655166906792467657228103126964390591439379271045626675551307465796398967340037651747511064746269663687163978495600792159801611067659938368440906519573936487095450693307835202765360410953857902949182065476605571069538829481396852726420556223413980833085262153551332896686366872757017193869702401250335348579877777271145213731669355571688973830397754342923118870400433506505283022668481909939963502825959321556198044240488727396416678938699184305709739011047983568414278850868196150468446005412377526576524981538899842051877873132071902900149250413913168041998843575982275851731552955321458696925138353865839235324381665749154034424695076244798416835026507631828893685233316789886308693586718758950581432430562034836360290191109473287009251894482511141470685549464272747390481553423703340667655344953870401772562755661139637499070607444729483793559840485947907628574391471511110002540037456756315416568560905900580131123566151941555482202124266699283061379155994430255617777702688145744313497150222623356397305730898359450030099320902583116705009789424035846471888169850751824975975305000257244313434147872947038993761507762195269840819364001013552842504992601131409257842889847604255919947396709278953073416951952307829623544128848316285172927747685478833520053782420360789939811155448602371938899095559824050626404331978567861439238103165149578367836603093225086549869630327890650737115039377544012783242478000309602029206265185331458766476120998176886927730147093771347148756696192025603520279965402109997094943560692699043326491453402986169791352888102963070302214417436170456034940127921742305479515757413682324179192923637528042628692576794250060423357220655794413095683812068564369766771749594677334421924909518879588057895715154753827702240515031902835660470466248954809346040549823973530568207650973859267191685456754367206005915367672137395513350387919367217096417591265901625547062854819961067163436682112803102021265301163549014328429189881671377896020682924515695452655528272852762746413559804169810921692149570121075569241134913639072386468278865448182353687136491441206056699954508585573448113108796754826560323150571776825627912470498243410764635645407345572579811743671086195712159434288588126906031644306577426232461076083233883629400020827898655073290176526242527856143949325582525318211769230616947480131795392430427569708535694195873670333154960423562461079690272327922673055239428764060603852397094449703515022225273075207779698167482377250184384631985306837160022935654106053853604658094944208400079570535380327402005389331139975589479230736061295573824771829097580361523627233388234536828020659358599198773805338020122411199747703617897669463447101824474192155009164474465637744830757983838242650477921338755774656991531899853140455983273475542081548157152945877758107969937977140618443453955207185220753859767540202447857323764997711767539401722355722411488360578112170389879503440927582796837828289622465602021354029748395121527333159868142855386345247288161314172248993456022114509765373725340747944044728154231558569370142514278493422690063324842029036479528912487681918270495320850745425014343664996133042756968312556506648117585536011597331406119034412356058751274381657403451062104947888626122954557159134262122552548075087930799110038678909655927435792769075597639763359725522202471765928160207392924530208031586860753175575559833797389715569464512826725637893083302048714211929624313871444658590279661275419280699162839872151101839080596894455613128594312767374843964691127935919929032134805454929170338687817581770929556441503309120049556291873836908863331983282544132129009060952052760664571458603222002257926137851495649448776404020986685747667586562075834773544819259856804316365339171533205230612670126804706515465230479741337917737179137036770222293671135004606828899719704125561418833712843974178561296517808267214503019039682703049804153525129555300657551444391574653083745143896663916588833406192844619717638788831662406220622546619038297927845328116484392516966471084515948156937555944728283615462581559607959483507028090133587921313025668245941719548586855229187008720016523459362411619667182669105849677824033762238777534510006125162731142744895467616680244499058340817701093451417501083018551189182279784424857204156746733853624256802596711247245525225365585581171445047356131231487136140129418682647039267443630617518966915882608993569117928887708139108971253407522301243303379152632853607686567745215346535608332358588534166268211423591713394182650939893523455375833064667244373668046635782537987745217337016646971334085391137466709818487025296750283804626621756472565886404006420077141747438871320387647258942285105546213309431229662740003555219071445436988042633985593886093570771099902547816243509717209351174492002327362135175352110148284586776226949799422500011107528299667888557737576865314693366757428574681978725128319642820798088519182589529122671758925874293470431353650006458661672298327316748529434716673750879698008080527531274086115544661925774407227640901227071967386995238317880010770092954122951502754357443436572212965009298356134311291050354153530505030072991387197870613797078539581252589340477333266640943852001354380266430253688625350719584763301257083229275412940093690019283431077483433656646364627169314482783417845589653233322442553503434236178233947205844451861458939550774604770132868328397008358293910592856730595551555846698075837454242276680334235124354618353494781135040807328292204670152777974969049414672698981680007484921280412395908785228083728936461743926045590729976190117167278994423011089310552366747846341850791207519267927019352928843657178888653238350510542075051373491558774824314628518175402052006392060400862027965478073620731915815412088693023887401367531093687487117405759451274030635787942270677750275792177080312282464687006260892042428590134745834498826507148907305545339826030533478336333902673144857407303350581177708383731542956242651493189003780794365168488109918224933334206626327164606570866133199702717611780984977521229601387501880079618737032765432182785566075731350085671599432959253051662373459888887965665767875544243814481471820958335160700906526708645457414982440549631930056307796532367205715938411885734038592365619265212337318882413223625012616371448875451340305187358715871785309643062071851377725472146693616135402646325928802515462012900262946352277424667859300970682845677524820781100873375779057250241698353376561570908909417290975785588425858026843031510939409107344139200673827281503404355955490454907042336848741070869550341310343416582337367083058778310404993384011611418451215302955562255143059838680853378930332708567257155380705725109105475164097181224692991597646029703685142947947219711250334444376880443161808199593090680982218972291972988791455895717225007290218333232230353722254216485930514868005370861336654557968813644739000970376832139545871953558474319750876274715508444321073572539205614983824880861817502136895406452264524526935180041556998698105584653994626495740755576579513665277127167887177984663791196907152586962103890368668695428273402243053181753887638220809136324609095869378220888098120907064669342184395534918867103873392585804424764183021546514130806039526925917790006839285675653586183870555619416226784183946757008209216910562080634820837715266584113288570836796622422171800273987170873970065937417088974522120614813427727818716739986068847918303310419931703583135550712925782016324989764959469978151291836157041028224158612311492051405755218434689537985236016936872746103898034040897316832238476402560791841248363389312830296621186978730742698276241935427933510910095101090048341792450938498281944783010225781200391518790342012842675699958633351699125090428207595964957617829129228095142117367079968359865580241351910776983355751706073976462723237059623297034007605326484334935968062454489473706610749632064134744698016034452562409495400358078651961737537574836003982278543441108446140309660669759601937977686475022937627676456371054177859681460455049603616976064229113119907580192205724063673336754356324263602671120573699494461515049312076389408018192039075030417354216921913588806003422589866624186629424170351527608640274720353700461967875346348390209879203429482748254589283890286419755832206706095576331583716667639866483684328597484284057103316291175000323102146792156656283197988591215560763323939985292505354227656740235977498023907172201145941715717433113649480943617489966296213924736606049468769781631961951156670732495479250427843194744493906086400389041118957114054043812326327916648743184406757048932039178705664958988624841610972910737219470741109499061267606310320672474457914456317813739341225845777712166413548967528651538769289243937577735604510847040173491180124779764747176737371437045970851160866704738134023484244704727089212615975970021115586614001487362275802560390288477724615308073309599294804341535740840957715308825923063727254244600258995817814259766647733601641472452595115511094679726621104513992508505577375741512615099605072268467154858847064834170116075978327077787237114320670482480438314196524383332371948849507188097365831794279648673810169326009310332780541699007370676175913980869504388519380043146876705953478674358570258774246083442346252739314393780434150562954960449563146748635922080894064250853861507890906769158496190825416321589289996181714532638243827879802577452967752705010280307565542274358362077420457636291940902625724445105658367529785973814127375088515890891496074221564702894275332354468679499959446717067381757042108003585845975899489070661607613531458080857973372888513274372917018504241619676474649511667924709890446984355761042477342033118118823796132133480274207063121104228175081725451080013952918231972679526445397295646360712581489424048336474297282789277940799414178912056176354441816508532809441243708533542153334137581021545349287726338254838436810494832281311268140477713263020497817094494668223968055712524518597725353348029983086277989256908218872309521385055632475918840720013550597072954515495951942635094780122288227157885292501134103649269532896380501239395469844790496300040735326518476292052693670164394464565627377964031000593483414693795676456510343345816661327198208551821039108071339736198264127830377087150261742092557568430191876899005208449437965737846296862188546270870450118444924736937792701146463062287159079247557387422869922831479561225459669462404294841778967870576955559631786382719650455447187675579463016073952052190509493698729346973282768593653498401217526410536808567080490456683698265592303903414893725659825917624636470919227158381052563549189192216280126803618050714706266582390789389916844880275494412955024882036572759230219831865976755122522456560261575461934350625671106862549429273748359455502368607288414017231755817757201011926447600720736850466025777268247706435222804575486396011582914800477282116308850796962758665619536845327590307845939009414179748164718483701447089014156458305305342467799013390807356028089878992586241833942548288759427014906041594090350273888963238950526725432882553103139688814855862560173376350381323753705813639819988652629990189597141127132264539865281446223140501797414945307209935172785393572115084776253124505036507913570486189034619458564078938191370144483509767448984664693944037935591652366048359900593062730431687369198015612518648037161210858552242267087899962300578473668647442563771127045313120438586425315923075116893890154976199092742387584468569936132660492156036073595963329058263846055621051670109513954542607873251082402136539743510926990210161839074819481797107277378985901960147051754251408218967519494633166007496612799632941958477042167208667360488904693308068223777340777760206687296215857279336194003227336192805105489143343857787206762802697206956965432290558713670839988127048003521560661449804874032302004483416976256034648669656087125056192713551711801501008572258695634746419618850339774335863620807933359840466863800575752347137374292971125964548121027825284646286673756886341723488390743897371084918104160532374294021647851494158660118262562580884417949552335149926941358121203215427762414154150068489913310200165237006172277457536648627952771011581578105228136406197186255188200275654206537909979223283302007610014584492641835384987826071097274054515987404053336939449273564696364313095656400575756067348946875292878662994778018406192985878784333389196447754530894648006071088252474564952517521732380491756427080930620779616848170991576270177240624756403181625132133068671079827546333774706638830841553955212024510766408819749896603040130537343865343499685086309972357271945309908394595924779712177641168403579227670919078037672524843301083770422203950872302621208051339615947055586447451755470514276287014715688128189829046506253775073883036942543908779381308145024353128506961031761482752974319991374762574125912517313929180821479846586467383461428794626957198925817211181600764114978857754188248056511224739910365529057319740774992885442549342285110971656804159565133519255477242417854819612088802958875253729439007218898280985290421205151745710540939646843952916607340872142225000733896160377266257775907377047178793605790721742861016267712614524817863850691911821292859816176663543122170738146676818986909600506081119493951265164713317962734101916154711284623772348236660734871535099917267452910262007454344833119475068651642602146321912467932564188245197231312515654297837609703825330055172797021145530447543206648709890029573720213656302173797653410399253831587569168087994578787372338275578511484774396021102042436809473189772501594957762930189291870698170619333534095586853489228093038109680888905153805463932059104423236604258629332708180735446456299460586870454591779646784552933236233926797289705861148909790721394806259724993781253126389334923497205934113411301063014968868761125877149696801925466647172349430376783633681029176963319221837393947526485058903715891190973551166316500569791629952506791630950876432899483390387026298743164166137745217481696723513304279307759562313535936179030706196218287475707110667484717755607088691741945209040525784076606127582067360861068346354205644398368092431002685416042732727147418264049594881093321449640034272346780325147607808218147042473018869073663154717207082652327790702500385477664931618213176780417624266482276941154962017248339160648659285637628685909548904796695939285261205909091962029866315716071850712188734679531034029168196985075950122425967890236126736417206060971935264421404086902120529235668462776496800876147824658679493553226384189381183472778251670938053359885820880378515649857924149773889847528039768387342155673511786121165012590480657202906756715735896164620059156661376644290040203059315216946003503588022037203753865445140080785787330383248188889734021922108144474799435889722737357500845523204183236217272716515392385095280201994859324750045750918935448087944969661787994872042868650012912110879532078684754155472150358823592694405420144025897426335975209821554425165756221388172030703364023180832255618522438116414416878543017822772424035047971429053491845383389438278123593104134718712202278234032379846473101560948755752033126745814618273734797523340117481099276370120593265907740310186697325408582434473147893588521777232301488433729646521420908669513160199012531788544210525178308399430700640412453372476409781868181116800328322789232235033808801550800577011194474846832454671770786412330741996902699652441307372444894286924276123624657464993824982592612361758725743043594523791104589534787025098258345350255151251597948174616262852555231305498542333037670293954937663637748290567163812435271051455621237542202875246464591101532463642891359283107383694929277524745498217886529800620707272993199325571179683371339502210893091859273166713948919385614727835602279899856353458376250446324990267733551759422836624824651238332488802128261161798900173386932099273435466765440968016368106662678792613272047343597953113622323475677830935466116386191138145445456525076023832274348580653438465611971961841249208001152521051476185733433003391879182084633388515567624125703579771020385897591511828384561343147954123572979060294709372654844556649267346232924124792395888019030603854880606491047045199271812499071242252207827979799030364122058225989227129902858726867953030068602576656326055476412750908106589145141753191509839974229385172102982661656248623803800105650481660320396956534473129569119609949714832455810514814794771919658669225291265503369678378738745636624247420241613429239883570093186806010495436175630595263214571757306424270629536523784685248102488453459672126063813563110784039419948910322107036491261534815060286472897199319680094278524769985092028532661721859937549993707836517061513900430273722903565552268366954414787995947703935549183484691283491062036683752100932225230052611353008531749872386351782709728457256300390595067202837350701801617728871159469145019807236383715278756152458353096108712186930588657816919072770918027090654573379926986709811154541202411901932658226176923634654672274859666114903915503786058366552711036086251055586833944170024894415052460435263901134070552775255434232965252382686616272030824771819456500369142345822796717838460758393680005336650461925609986417647672333635690638526997298487432325154787944393397712320507365816980764894521377193340347688415754311808858429968220446877253793771636243755944187297712990213339619982602001995874039313571675832353066371773292939893500767411569139461739577270423814865409136706880283331493280756336495760410270668003255729012676727873518770248938003020765419272284453551225692581541492554802454859473582001749866911760551105626470429074372546085453636276309556483045575773584782045247642454529056416065243762593472416116610274488802504563531415189933623368984233312229613219185645017912188460378086065601696469453673864982888101749322827937234313696156777866254373366042822955278187987503479933320177999901995239649951503203065000586284042485539751741122945663202134143333511261218534045146172491591513269094838512080802696529300355420489038151966488027215022093716555716507514547020425171491109756529619116461336603744455236902827128428239993280158483778927165971512386291132002883057971264029808831721736782105913961426261053377320386768651831117416154817921167011722169718660629933450987089814811770249955185691564839316418059967095061303674150190330051277525733706598907709280258986497943039897670017860269290578070684827204214288136534478710767169584108008569458476244946968010870651199866495792808648399723967773923713842597703104747124139967152762883192796837877727891635470343318713980921696079716477377361400803129850512246019369599893238678862325014874363996805686221987634083764477728672632429013328399077272876621133045457995298568150904630377367782781952300783010880722468305871236799210278723876477198193644192330888426408388865137208238178725284548389826846989729993537639538409777016545947953434320928763828418458088568247364914218186496440358948778460776133774821386980326354970279707931576933310604321868797024560971784173844936699532209394293225240857102851473893956232743532408532360159911661584599231091245458281517886500578587123617838323407868747881849373470297198726399639394857953820630014052958601451435541967938779606198029453897456451727901930244218110753305385132572251525536298710728020869011075180971166686913442210243220307189818831354333094147224039204650585167186822386823673281093260288817931415645024274626773503642833874081614100310028782132516163127774450561282610566961980813426503377760515753671124282443902803377059269614357881536773529139426637720438407826325736330265467392993608423061185498046354508549119798768925696905019608208393332520784426836972314207092973505091947670424670598894167993215017017780132353445286376106740370330620871577999667680119274874827660962159855057148200394592969179606595341979522809642610501773710153111546546331407657748841020509271043998682297023561849374826154891297530955721431077834574064051892425869635520235327710208933973675929701324397800027544962241825993378008862928262064863629985946018383236526014963559476433741228726282049486129609909228762426414960470692676707423816321183418388268161495040631036358032566472891039689263210087426006053903061285021176760633262257529232963407851348549363362340289295767128845101397238399122708905321288712863100176205840156941581264365334633436689508844528446254502987341591146112802023945561286683622880215752267817251624082419962397794333363365404738509226553123313556080977672508148255672385211349820538454430332605371616133267349900600363165355786034704956637802406030087906232848519770638285416156939721403220197727644953312223353537174725979016633538921822552086614776664054166978862427245037737330409246996245857488178021993273921946886086459640786923421681295499821480516332871829671867582168993163315732169009919003259723972982412698473277658272910262678839847598673497688189728467593857681623865639960315635010918612844348457360768538094395812687961054852245768579315063145300428427838365617095359447471613815530128671547027020677361336554450356976323951252069073382208369801092465253259558303439277317502298782687474270290949673587982318150389161900837268995148416356668821539136884714580849987245613419003643184384466086533646703564977353889575049742549837521262610195281138879707325973146290594166189511878709847707293697427177078141987426140607376114079834186311180645041076281910992553600562567162575163984821819545904397446755020322350175144919858060250194321564800600475690806022666730227852964826318221616209508083023514598298025657030958648856902900674505374475943733793039187323300953603437605565081735496325946430896365346182282830475146924813024613416084849101387965192594576383618992513177570446329217115535857105038211122637291980823174171538483295459822706393782545124612559549666849736135366105484985615325121424142647801677926793482098773750003331198622633378040739598824707871841355226167644405523358992788116627689182911331651756208279660510004714400425380645450278364108136646038660559221387351131459650410642616719207697917030918899744443630368575584164104550719066125336330552450491809794738444688058509921987389650718770762807006211270056631458510239262119709288308560256065928367267990999792935361758815380019706170395650182505160387844445484956440994180494724986092724442252987680428742980326437799959150318557225384339284951832483881727356680307726971186201933706385004738111347606279614555043698824116343803808482804433766082849412529574477379585955777457729744531877612292068782547868683884531765269599822233996605508602387673610456122999869342643266335745641780899239255530829564160761646802628491411043217712114622585054308061913958092781924278899453699052004487687925457164313254571733955166236249058001191743233946702109159012537988779210850769708314983131655903214105361552415644457762729016176450043347616863011191068762724151242049114156223552752752470641621937233650976195013265450580384708239298215564417171369079604114745371290129879655312032551953695672405236760731309871055309998707153137490563457813529788478404699644935242735635279850091885153575560626151228335290855363555020381541537647165670080662216437093366491631025457003732745114213823731358536161854511572998117671989429676227817379511011306456081627364813114518856896682643557579963646327614585515829096894321472794620896090568974326262968309360898673112523365614963884749978457372168563576514252344570474398675660205370417023284550547503143994828237524993600369142902778337613688130147079968081039940089191365852245044034997843441337733898871820767891738116805179050235084492088907866631645823156873395444772564747680808221846098326517793219093335370455905489388725056741383915682755111316199091714514593616585869877238383089157896465121378477252025870910954070264718807641444764400060766435957874189934484618202877621174413733980978584465394119925118431051904084934511299201424535472649668291766111818431449033542505348040432774973601342872655186923236348110729828752468763529195067388301640200794481668193615713302503800502556259557466335874061871423114747777497898110635649882270325241675450681786127005481517318010590915767047159474386971937828837318237113780882564276358697312905645705503719718666646418974786431375018040764497594854868077299560999161452035690869210966219188736079362549627405394727780473458132308566517385266595744123864891850732961007462549521107597127649962212143294859369870588281868110203051283209243378742563999739791496450674435542253281482723864733410558183799510162580777835268213958861978791798025688488214998143176548787196827392447134647513895330418428016129925260337748176594216182913783429259086929334789008088912936651759703573661727124379989725787411128876370176746631599830805716907417922913354762570465395155050228657004343946686191640335761402528911553247407120710685707142326308507439679377901061503293886336171190974534058727180343328247086091443127969811813756823608459662815295742296795332165861493668606382884882089876740581739727311120402698060574067733439088189909982257290894457137406708749416168181863360104302076675936023831997198838200042268557072513996838748327807717403766986182470092363725403578767418893577936247647498684246657322494693350856428364024043243368327490348328471200718140617381265351817909463266298523888323638742534890947299559365893586677098574433944431534190723303512868524833361339275717404140156339054074990639111295451580336889738292010409002888738669264619761422784505907016556108366418368703930501972983314900937488550172335904411268479574493678204626792214047365506935220601014604772786262321306999623985553792662667646210378800889709197043567024440214207044559557140435479190642693721685356945290203836971349945106747496860771183383605329524266190222149904736638360626975982024139845670916059712601788627509479146826780727236125209755882354866023120944861340573532354533842115227346711242438724073740629928368665510760731995764134935776610335454484251956558973439285841551080520973369088444618599454723194523712734594720400610486464688941558261044982800337433480543229373180630551778229074248253080855316290785351308296186985091208332325782130606565825339389741464407347660532486152042356760456057275488029127584320200950646221120362816913496834617622921889880839270674299694531772513217773975858279502083217821995144767051242323591454420706583397511593616068012711567576379718264186723263957378483310358622895544051937343031174194149438486913361805399290487243352099328427069205756137735861623053965380875967889001256348264530682751521829588380393674517791061958310010140181139311983448843862665068215020199962967503576211720488419660813589662368706288755829983583555767071284025823546762814435205677284320861061455304183030632141090617247317182241056303929363503594447721829631122125498128587706252388212846144010600825915496450717048364556516467810424419899913637706812943460463764819221036757836917370368501538662438152682404249431948283870900508500575554170166306341583136892572304561326922687896888417993090540790712223429830020932629882248730096366577959286586934565867082277805540930976621806313242384621323309967655632481563139668277327464379012363444608126285356412159167074414658798108219559163718290207816063779151281988190829657674036193524783528397364091883977880532072156286691539067828933721394300155273861957649047941071403440101897789439667112920618868620015522421335796727165634120458890314807755760035984041779302798001373509514615129304809159964891054343719947313476047830457255797443411201577689995533145309708425855479929777438860096339909412286080944635510338313636773790472459547765330956662371668141784597458811709904355523579061690012169796411686383413797733252204743187544290577753449170312595924035044504836409499005669135369899197142016869273782927804296421622201653690646851888118105891297836677139655210521911636129331589088981503138441811824141083031300436015036133058943607650829746964797070902693099981123782305428995212398170283616580104027014042650181597563586499086592905082906166002872911487631491519876890694432076319667809516364761135479078972657614587044847239474400597797620732972642594906024696625620966830907316240181615769746790089389307693964727093343203010017628664093221561544675851248018458083396988120723304687294315277398661504112703016060015699496468072027153533329911000600805344292836038956907591192899523528504011355633730267250556720330036254770350720521468886694768156643002642390902297637743677411213696018229948280540026706254635644068830051382936283915632052945083328878745315782759566137993793476622736217215760668234514206740503901524060091425865763265100479152879036929961217271895389271820956162471690721427569797090517167017050296618072248415427086323898424749950748374801557639886823014217714713346658508173859585654723549592107651511698348451159969280712517957755159165401180818151282695049857202925115155208905167897875391936211981102602590400595520149477934682751138099592436002059727616436075758569382262000252959441953644648493620466563160823167754884742036123119869909108311358141794964381160272684477224030900705533771196541948386460743970765813119157415223170109117712795650993637217151763124868394196007321658845280712607869944139734910934456930793653610291786053310118862272381107853707638809748814862917164613126890272650712921405957883732215790623046308114299274832886659038943782739590822457533193100973453534217240302576702409560153713745068200738260854886005749531840096933423394260727317669683155640285560205201910942783499732371210755311133355939699772589481591542202200748682909319098663538426498157825794454661327962117687590232791340533642681331606404105607099321369420190107432092005520831644293372480667572160481679636723841644535918495079403382607102039595185773197946083060640028585235728392608682326996163636738318746899845796918869454840008225517692518913988207843294377111495112437087384747721939998533002072244608914775207421043553582573735029997858481428330841698013682348313236875689652468205890432113697615946385398077839600413900165162371618491601576886327496919029169910136302022263412551735867674306612989922430964565066306942389701431544794716825419076615872309031342977965717678497005573354080589599816789352450518061196017312471478641596456356966182608493211760791153863005823888792180931347875927032368650757489986782316075397983018711177065571540497617388878632789062192362748048857883356315245351301654839109541657941588320423260561894685791108785024670992139158153350447315143558619945411666993946014197548173807797147414095325002587118466543199679207607903085376730928266581852354320024156312229860734259001983169015943628680282193536571506493523940601915013159487681338199940483559305363747063150792798857540525702963353706881454150813665506400947146614761159433837757863445718671401799946675122226751511944722760986622806672263965491388653033072453236019244821588479956939849883964526236765794100940833047056889107642547834760725451744759638460556012087962335980886004543828995406026344973064780774920554328655328660755084854401283894209064541175679519702066288838892558776947922259356473507320032224012407478656063559471598506371308745165439167862813821230132523311402113597031975534135011935101335794346544077196001624367659821082300960396148707249600794197428552951903943454920008520350773878724253280790808226477307707047406011260277142515808531124262459224262298005499054084625887015206474622695136357102053144123261040615783408449008573430417212960016629013963491685580535932557830349540235277794565841955616859627262047019704816725359787155188423384985605743758978278964604429113668273370255865334062550292090515349138675125897059072583562033359385971364800084191635224937594332509885745334111169558408183200405063649323302627314382040567351251186029616863507285791012432060563438628309007624700236269601856091920498584911459828243003582486144378854761905782870155677671190433517376949384661116691882792874472447914430508084284533060034815186901531377042211828066425142994153759249684578402864846603002119884927863932816003641985760244134328387356611806761782536168896176794622581807743613844258579153145841612036942887832703420525841709605721249882603270491591367359925964215892837517494334375237548537578204402491457460005457325790241344304483124631990179505360661336622249487814175204158580791767875591206704779141192910502679728311230583508857734817600510153663120618533942976311443826497621130673920820159487229955375085017726586891229083509975988298888672032790807176453047722015092218472748619410538930594207940868377018883504544535490855868292378064556660207606756711046296676068242706986461422334543593567985029473055940583237989435270415725839637859838411650366890315429519906959558872210949881314257334062255221035022256373957722380168614545767680394086246238289127130515073428740702175849295669152137379935369742634991749602734509859103376538204890477253210653708069404904906773759811838658474431775253673567726705763326594939388055277235279658810739152822292957864896144959749708748617118296772769298962617240355453728753906896717813181793405405338794268478977190382454038538585807623803735531021808189197747569121645772307354938786789473394012529720341029104203925134673536639038313528534542576395421156331213384342251438148813382519443070752143695453315300158129261967080048216760250183769960128551288464571614066043528500998068997708670815899514313579453733487665228671602978579139934116981270757907006482943241957242274815415893782384554092672621347943719030555162120976832326054133119442445545299877047451438387685516612053973043846953935996475872652929980736091365016945462177265780217530192905023711625961243700239741220751770426790826747895383865816364329907677907706415445520305541503942783091371910370027059150816936585174007386898393543222952154591817932022132328550638698570415712896672496955757910808290511455501695179207434660118030974856442498461922041259929161685546971438199109230767766294900813434348104720099316613421773950381336364159725033120478621085241463820186489380862298205706103517281762911167612774575534570041719363245867170525622548390356974602169127012050997407494943371485931827025951363771171597242147035154531210318270903304117499790042278788475347926991339032231182169403091653918386400261137029210169227138216015611484289926765822151387200964372001061112969163364767497882408074110113477230040702843580452195761246840855573380469434899497664379420017401248873598833690862046697469571972297405271073400628312196931827953474887585314822488079902467413536515579329717777785428006547408849706548421038482885876569962865477735702016120892509445458771981662837232152455464280575260772417849975408795906744398957806490613606680822963519572841175941780941833263378863890129686587095538598010425010779841193934737584627636300887134926345411937048364225261619954169878802023673725448324889134693936108950984063158123377668469191518432978815966358873890032855751687852304915293152635185021875344834900278371438031373819845944549954266693248602741599249210627787110797563153430250002317202711420168831796666150876918983076559727558705693710361676100806991511590601670680997876077190247083879702634802523248163804266547402404893062740912226644053736154772292909195659223196781131777494178148594121161228548133406176825061399618512792534510841545431734820528404574970425949059633730887770120566192363130924878141416203006746864705002163375866909724269092963778984127381217322011703240801563596215688974919724275696527565161965643208994980942346344251742654722931310137815796693556609612174854545720406490064134738416736134671218642877309385185272983598593738339323726834229010837739845939034579454455980764267236809500463657153255850582602339357219929523695067973288361693993963978291560417356772956552254348637944697794644663130206457813410660433923401177141463903395569973709958092583715239235780863615472211580375265138984141470022318887132780120343268766132042269828384023141033456921025722771574300119183403917955398350233267575563046919915136838018141640757856968675827443724825514112077530310254398426353440813956459128285655583075540166714300376328768959726195771911317458900514237895880681821358308290648486378982025730595407563117039759380940940514669086650322940109374545698607807216614951212036722717130428602808864399289455744494650101710484414697048321788824561916182047517916660094209439558502876025503893970546907199735820382546891650138163428561571533267103047187289314911669323359402479187189088946941960734873771497369460387423979418870872929844707439875472263191011347927353406721217178231387789076092544658503769452911314647333713040984962409894975059764228178901268679011058203578597262045301214993919872995548575334094992419243440170141738416948067701225737688422970689927403817796113954052886430484387159519353394073510732859291122880876388222788250361129434215028198177422801496034307803847287238115954395437577282833305766352925240742158875002644246580487859816815521437562500662731513767828734089856776962579150819808870839992403003279288209022024623428357655954964127454622035923345427358558146967073012065914436706588114543864773046138414291909809599380181127473276026021520576922604385668397407209151779540796264688755040692707241062806577371501266427608340610258745106198684465780013749462839776587045884219001532235416862324199361049322039877495295961129608002959848876098373303773957430598119273297583574923077460536409484345252073501133638288615075074522027620125918424909888540760112262136340101406529429351196999680383764655779420929257390877890292173171318026380832340013778250950586727490203541860140343374516502944654695956197643047679109397976601316643832260352602251976120985768504608108597688679275240459390071500205686273053752291983272213201010782143917676317145164851710907705121518023277211325361943775525107597521015780621664121993670301531688939436818494089054542922390419256486985232006136476740876280402678151268146531792707173018482632184344375912931784100613762964907858486237773279570816752970644902193938773732925360950162713679816659320947182275723675488563642838757042724989185505251829027788267997388371344045325536307254075801104966534491069175928771834327222702803141641300445706798307314150891818213343501150286822160302863261989461135939309051171775582088126070467622749743743825611630239825479665098804112441561865508133415312940696761123085889514862936780957348358204179922089384532921338575219767355056417905481633910332957121972571684105545869114063742344381927112969557750392286744889601623820761566870557623257169962067268274943710630962411530030158162747480653571260968023360714753232569914836691702548857004122407289502843116037944460737365252940249504050356543324824310941407245714841823981695345021959189158213658384032522923158609183482295057808426992937457207390021010883536528396121229263775998930404658708734262546847072342367880364690805069598789799897283315879597169649997715294211711084194662327292548962610604043945959747920603944560142740165669987478401749106485899725207788916345909493573647066375510593320250079875995847689043057651307202278166011160535165246556657924189596055422552678813467518672956165236129360726947881270101159874908106685768735065506551792098214792768189818283074038141919371586266676198520352012021227114032177783469718417468022930193113613236058979666353886986150780048184311552663105352291777398397016409154075040826384191159574143548746857060085297121562809055669012992605661346757277360022738421407143022665931725711816922935878222341987167573391611059793053848720891393610994973025971669203576434071726742692987421398365096013758142150236721294448426824494147657956310500987766721730227188936866499372293603278792620027462603471624326010905730824383725520711782164529194264900397035037694258166401781090741908426505495871526591371475363040266586466803563473237012228725104255325199839485397758063301844962478136946419685596808795488531065397658067156617776816382662123459312971485020319586450386232936958572875184726494559366448147728923647885063047877154846279514322082710120404780276894992460475975991789166869283629522340511509639479023262550159543118092467857113679467830573062965233960269278522351528220278103442799054531105887149028342109568639172243566785525094099431413280735998278444615510212608597555555297119299804197769765576110688206880205140623451892028288375916079228574155347479862406266347562544167855776161093284313898025336123052188503184025665954055982059159624323405687333330698722508242795174404950253253172861297008372978647437673715327769398139931602485958955948518171663362153862007146417741349084239983376617081601348665902622572563572889686427949945764569516519987752958063313864505764771413083578973866003712260273074054699161825500465870050279939931034512820195353467685564073807195705929706291206274906703249394747301453529630485824893793688428031607668807647829915485736252871868278064080568940160801253840232385667864091417903303311837103117255320277800648134757372219920551883537245779882513060504945960611319976598395283136342153234407811859605901608367172960163322827171839835109332201761709963111027051132051140495232818926277240003082719156758180838769645533692597117050759010260073088121416680006151789881251628270490727206512771314200113283201494818223990761082437276259521526383202390543942774061904445483874046469453100096987366833822831868545226292829258868061949788814064598488407262370493460827904901936405553981297335849933428126134356387644811520649311312133533601549667893647269261861038484649165290629005041638820104186180484330459279068843691778178480003112096255158577092477929864534037627797751857774154534205091007042998517999486623428050768729493079473757813451488746954226603486411129877821776642040942271157340908532891184533753813224046960041196956418428210830807697258218048404944001010624222766474958931350934431575443776535345584068072633173097353995048792616598013621376816278361806886986695911059100636966520685324706112504792849632495567954511547637887735673985640703764136331867169765508381044822452883340732443935482220906868657268383204085361504981577092611050751929111978240100903087630932650380274014504871355436577851839589198844875585571294598610637388263287848936479367673247558754190374240528937715995608115528605252361522962326918666594176367587969747443232099658832179858079450059681120886574529056449895371781715303963887214894531049584304704514542846665872850602106825332718700880924225719746083051977070142429287243588874142904395217808505713982606655369693978141408239654307028342605126812104996463655470845051644521596768412838226544150078643248888397278950441520453796501869452136421755887989243394161057434633566314761303083800148091709907121959943929569150964557765015894306347042557968159277752833887218174188056115648376793087864510022828865381145155771515204938999554347088640650906392123400378729221083598345631928624663660744611655036165775667646370313800508009157656989034644801228286469124665472707884289802613536401971142099530123337025329258515635118071064670550447675697028429410833854982656611978172791697147480188017926844278848020214242647503615390426242109426612317813055599333639847445675963999565906346305539065438361102318734991516797981061181799305041763822953705441027037125275154292410240856693660037975795483547585652225952489977051702328051432481444042037655499082869557274998885605072115275008242279997714283379589205920345577984336659399503823423409192298965180817643543865508067500094298531349298083657275422924195669574460646112990940955330264061714654777071017354214065211202174041728926721089314065095812243918462725058469836676366853100274128625300496145201780765035283203101850070112521355262298397100890903148566677435710710260614983285062895450882571535887241398093674217422086863971854643677739724439506817097537061559640586390739289001337993058450364142712593160836932834354069184085329170296550701751133910851938549707575210713918216705742776588316953245818465491111019568263771830914734915548818783024640421731685297990782721544088193754991290953439218092733573227220614405403701246314648293041812002810074752113546496025764820767138931833013534228169347226358499537647724162375627352486020919394283151474642940833259845091896350497554469877261020276320241761237749589174838148360692768620808893766811081101377654669321186394205332905853866889389464277518366652887022665274519895270613503170888110737502688164073670692198597195213434010714670924354718611481621450168436677072119500885532749967705589671083355541120007448287307727278178403432166224953514670183055349365457718041529469603628271724855615619079151251248663250044391136058246742485741817649143569387900379490916533099215577406609624599378632053121345540423024953531639813683359911680275286629810023125119220089008054674253908736194509641447107832210307720175116642101907742424571137344129244277980940447710392304144071449922114368376173480573290060834401369739121112799494539439314390089329360440118696108116273531057722884287841485390310183929430080510919664500518111914118024573163383844194467053982586253891545768416227585934442620860737391098623978660593156930744480707042691530701851972519360750112813798483818229836008382351330892967485242771182478579100582598470588890147195633919659058478621454708004960078255661517122022361221762274846895545323968788649389335395825034920278143052149815977337876714483204808311025851077078640071224675756784754045555745901224337905903911245237120939691132472197364722486865236274738385133592306547133619060554965431727202525658026157906356722364289659642130847261675598216767076290762503933284590455140608242511554439023799300199210319522641743456790868009818339270622319170952439058590925247164576834525324834150092625850730864149775838468549061319609740263313425202224093455952020692668474392072118269714989902307890929318319477252050144152014737748277770710166943793803636189344018550069691669379334229078392259224264269225028975187968885654538469914829497428452951527967488291534081349378838522202335503159472086179756635777697788104140886301626651199456799427836623108948392556078998763256963835798394502748389078402193446941356415659598358130530094582569642745780415040535381801428266263599717537181449230252206177291779599228008964327706167390039769618384074221298682204387588241429342018929646924575632184854136998849228106444235264244017039638514093304744918632088750587080860792549368390063267375959500749312019101614274291189224112218853536616501232941880462902016912949577730616365831204347122537334186446119152104780554886722183618731911956112956384555917233785223224898297094384613635820073230234936992522964785474238411657300672531627812195130876244802005972621333573527700726409945966627367295738114313798940066756879857933990601227006863007414428486112542190006531020209972009164025878675208433503300612717859720526003007337832105226164712977305845945418039186738858014589084647339591463418852976393820334853087844826371158734944815554458495296812338165647563244672713771489241255720486777858955327541307693903920561767308093951195171877849578515179782546073007727607766134122722065918236361023514955787875893828613288638566421932269382106802594590966614162495652599456828016750564499443833208547381823201844051839270005497444029486998628803409273312231517595846991294133646532245248861552556499570836047260221788101879865296215738616848680678279035418678064977167110543580203255035480927078126858828616360107969677550026016999628861529732054186398231367393807830658717567287720033802151481796827149040767858762411579025015576515679338993414865089190616121678269129340123515584030598418603203412654961654675646845794684677000963941361018563625210956327265580290771034177063218675639201420932292290742952808946760976479051579787070321164749416049437982741021487390839317210707383569366681153135361582371918546121064389877463696261956307319965952728895323437166060435039721297840120079869776936605463082218754197514550003589753640806170149085351647853025448393063218470947765909305499135309021271986758226898018664195550136615380887534216573008784762521623708924420247997905785708294266578118290093977403483109230593720533193742198403089712485594085918542340117429026791030217428274148100602264868784158908266099981786169703995472684312000479860890647255077825543049921243792337725778470370893705417681754566222365200877935740992965732387878502265000855747544034752934303568816639376727399027611944265057744693221305609642097103610110912400995830652473142453994423345677467216350368269465769638791134499448905056362345791801942864368685418989782393432261025998818422555913551632003058846703211640395722608149514528859324024768839430589050304015313608332543529827526138704345370421332411085178080293030339718162310710567768507117772884494667382559376411763123396485383440341996092434870713089871724524480022516624972247641001138207554435583322595878880948095865445430404224896687586532353828020145706097786899069457920164976404901205139462016809028819507868189506667957849865449786465156351117115426247019954412370493213037233105485388622369360621733740155849252938844120192015362705940787338829505043243998999020695713445858654842304335483562791653630030077518041745030857759376677748820023527867897986067610036026284576390122674198928319210978893794452921731457986868338349856144508375534535831200192731140251523903108473363448121516070326002786958022748861862271026661705865687664564751140581810090720619620399143264795556074268365427753868037904772032220389265341087080170837429214605441369565610062823110419916718095138792010726242240878856851082195790904716600768029586091025873328595030490117969879580002163755467423773697402165524817874449958078570660309500409778497029654745157337804510221867529738353285983788664031108755812454890224191417732677128752366261884516828003704360618649391598537390289798601204891626454365826139537167291918600641972682971579556586543383414072990288006392781116204031249807474053635654628140106670586196847750965345990312162669450687879191007262398755233725932323295209760201294175450649742872902394360239111043524764833562498935143480291264730882661940097644557481218292499131288084724713422000643093644082473855608561501814788104223049857423557079146024477229018398252444846133950096351374443443442677088625169959512481259657951088370704324846889792939098586116948150899929825999992483177006174677438114095965981843669472118903858287867666552303078033832442174600111941691608930477753291737336744083633524709759443749571511187818343581016400917526006371832326565077769772572824255966987584438752996342909934456096191821491410272188435778934771336085659342269797443423141584262594513627063615785503939787640744919820003107579270305240527044761906037475375313349239896129682359680079213845366486484546914725099415426522798605286714931752771163541630179639567463992839549236743580052888947003667904763611861812977668073943503354548196841571930453885783744260197303223385742961700263760490743790051165466384877489562328716409692855144759868090575019186777980748594292509265616198601440483531363296314901325252673968305647397823626437876430323726555215183889528338278163668373370093529149751189755502935028293168987090013460060644977954347047366547150906718669109740502017472949302103530402261318152222467415367394557248668034532449475012766471060608633203691079001901337559983516531699101068026167674901688638476880778244921477365545175585678860647659605441549381701323112436151222466707496727939570825529751053410325812813553431068545596305387933437791611407648388554400575896612010823145710401351882532679515876196964668586977552110327359049568901082782071671597474304562553805341738027498889694007252877878521306709366867756767759531830844899330852219245730957146830068555026928421893499514496480434794643501253780774739842885018511325091422509373519228148045939391104543969185603546859667163222167150385965906491901960751468286287138365845054107632107287498721573350734234859693441080840095154056842890890218438312622746395344971346124765527205325457623644147848070946915318500808455357736068056564677512574768394123764924051802287903985360277840762974378647792246494026618218865128034536919298991024593787425850316823025136074916071376002772491665822338678507634559367524681310854387627047434088902572672440557036234475841340472677875088783978805782447462428036139560008239952992159318089572077098588552638376994217980856754936261420577769068977620797664523387872211454693271110649566076474689107392604187257955126098941912135564856437853802519145405681265349013381965169800695647792209988687006816541692368430630957573722859699573229866992490778959576244158362791415591011763269796422442067583986438905960860966865860355972355287310692073746257660360739213152603171449377863822369276152814932950024084786197992611769925470314294907214024210486168493494901445711912106794629399499401883270226562626553403085672572015751653983051964957609008974031692841847253730940738372581568670760120055423596697154860781244354526153657114069022154355263868176156954815044000363246880438514138187350316361410855039359325858755578522360743789616434776452632957219958630857321494283345923765315141146424353518200898278788734823016439697982473171270347568737771742098060517971088902490765712124129928210270028382932100187551769477930420606275233441580850021799920177288440833457524475296044572314522069829828422207624052391229527688957551791257218275882257984735874017259253908837443465726273703037777827162101513855868657949419519333090378233470430500329839290794581433576677175005887776945563257938488374796969234781061388537052606674206434821814734136979590839037991151696647062256493661791709932791672377608184729398652277790419042797776754131176989215041813712678223877011444849742090204650314124305071020494189553424636658628860269448411384317377434342650213237322327814743717256074215878833971035658415618288081379646301434826040400191998650548065602463563473739628407172087350783324650563375666753312370221740604219636035492436482232877996295601887403338478128339702944774976576564769202679352424040108153743104423828340631731581477106342515200318822204866115180868723198296678791073314087402416051247661689996524614972365486137728824736755267673503275987658942172951822315053581084540837864853346133634573873687847542374388395111530655277105560658163874903239701441063714226936440816881831049858317880840786991903468312214667495617471776891084853691438714368116155417534913594879296161008846962755110305265479433067479768124701217591177162332095936564024736542217486515649415864600311582428578717183447544445723530293614566009317367075901262417119419322629627152259414253827783484036502709733278554038048658133849382307830550971815148021600716623313686373888923808539961891663234311399988963288565149857060629470939821601784858104769542377898494568809423430401913143682701113493608609066766152935302601455740102946435503328518025976108489043978260780858429092627792220686405680776499707305851288380539186659755757453039989274967380380648460033444579904377458356535060534876545180847913232718250566926060253359650515274844064068927378309830267590373499574153166611432666312775987749164925267349174926780751096775797396552187724870650727502203341812800239003722691145427149499432866607057810537128911064276210710757815521422476195846023016129498125688161220542849211637330799164285082158980475406195379489784373902290511138183745354175502137550950701194790391906464188355915133546639722650352824613693109377915544797967158211302201191941693173801697960621812201957559109421933541254189862368883629206191855275261099775205257554449227275031627968196210427180863139238540535528172444802414249737936800000193084314027245046300078814234694257422189622459105830620929681273530419309456814507110988877727958011993536970553760865035037513163654314549027776404251178742497825561111155389832264025440961413581727553459289740106647784220207177638200006719537823403642397447053403033435978581683486136524683379169786054102599309100268904792043255363447021915928575757038631533450083979654661070244619883749813039873179885887611355103829745934674634262637597894399510613711660299819438248400606619616974080983778587722304766779851847447325649374487064595911036680116761601858241504990689017562981961792873404524560076145354722787713457822219767076828555903504009054959865219859840650226820435211365012876801512844384939921522036624233764696310418965100525942878847992788131705111013823737432334516389092105074557193596480026961165220456503682334126978166133165555621841919757332406701254211260410309779278166704707749008502343766426638669804027405234937281724961428422342298022870909925895112184779968966801835669758864102197941756334905136486198547082125848750785223034963159592606580027712853311466142070779659439896859287977661661797981999052499078924713491436027282861027711303218964550153239324245847299132948707528030432412095772463232295840013110042313016038415721318674463638878907361256752545295144720743976071767603777645358999452080406737735273972182161201053920939575567378355758911464367102106675410436267116772044213224708915127950868719411524876991131090863273146462034221810675676405428182789102713209334987774299213481068574120278765794499886937762749039767724186021767132595000620552402767043739447349342001401591363585489414430188112919802353225997559209094094103023484946948611894579199907084150185401574448389090472067674411921764212647830868301830145571259082579107168672966398258067155314454623752509810731569233848157096456003009588499929218400455603261794900479334674879379391906904936863219734974917853363164107920351722236419146676244200081167590627616343942489929906258884473015223640472526916882370059097241640208861578194670179696498795927804385066261837182513974514239666453843997311811875887473021606803156041987298593060413026929467088021094354138911623244307240108867123796047174223105652453830832755458834291762821187533681264281420240567801470162613831117145105614206625024093727793209911533398505610431389698656030687956401549764689237984172705974827181345653229286352546773774566732579010435509590121836422430753394237915494113762201175107722701531618778066193965293982303315311139779246223649949792994074239399147515173180817538682667515272065475436729308795458197234665874385299860946302703026727390886148238745887480782121175507938008375875559728371801257839319282403605233838551592694380070036764482832188031795415153234848407017527668553678074908852557322356905757667241824663643781808305954926250700711194655208080022580705340258970164463293228161611042106637951383860333012838652989112244057411281479045542383635796058056453385051279602582196458412310832125621469200506183920505160215779695036379357923335572173644372461229144725306015809826742911062949008665208381967464514497747313594983344673445947362759904297470184648850510166647395546517403112030911166512987714106441140094310373798070399811489830154919851285241971466322144718176731553542051840834577401413206712983004089808476027428342694800595318295036999001172364865967970512176578391790750851740573792281723954377019018062150100461422962299400020366516045154714437891980268611052757315919980779310763357366794885977928045845898077742390657127065432205256964319908717629319512695178407040874535550755380671031653447234872127422034036037732228783329101183399800985012339895357439449127875517711340418207985426102687292428513948814530510252469170088885610831795912264372870806897407505098652605886379017363014331544217713565559534215087192606501119225123092294487010763777539196593434344930945460467744704363023900468673255291935338853014406557929738593903651187593054937376199096542466454833421579711178486799284712989302811714839173749444900572911676727446336486837892292997915249645608331553207501059299940791761046033380267451682778813830410324603409210672222900528353184017596858436381828324183876670211321324151752155906529520138484718344163404470897305056227455550476557181349046546990584757736470187103151095807607423111931825169446507959970308493809880898113921316787371293856316725435385552335881831436739998264998156217727116012332503406237664454903864663081721376300345783167974213452236104783002823835037759044028923445200233477784501887595531328801365587106123321451031335308133776656776055985770486497406981308451366919997156760795438951409032809857456077518842253683748925965181598505608163795882841254379790132876156142020303292432335574607813808923143590391905493304192588029676365425373503714123398532957773316855987670024191416492416846004741874146922524382898898330437898942871282479534472977154340298154793581583089644259542677641882218644079376169137839478136575953476695366720265854201978668092788747776794066867799620495688350599443254025695661981055572619904587078488280205329965366740641610676364327050724597769731905111553897385877030893296760038453326998231767849454924022880126258574605236902688286050365412347943517360662055783015730413601555678940772900469181866204683799013708284471570972455299947277543900443454422132321025563607093920059031852189534797994636646467418275155456207223102546408659385978719909230854849511470170930411162446521596844157257664365618838520953078105879919703705736077651002917337369018244574451873615046974413353132886398505626321728141107045135661115447152253237519109771498702481200624991617763011607245687039594208791037359382800901588455542117051857756160514658381227046025582645079464501881368453274577306120564164013398137469979831826313007027731928841736585027445922324152769147033455464790583352226930580337306328696741083234830804118195650931599446175276282518117190460469984102123462300377430066705196762399112038946510208249541378066813935674983196719667712511226457693179645886026228581806981903366911550546866857724479597720620185058346257327867389419717855305981327948630232058182977545815790232312661607962568625332438626065232573787694321995697179684436924165903062040225226327871214057255093585703855826994147044590706681199796450880900489004978530963401377745389538493083228667877308940332463605862487537017131934114936762127365457209246247860078943365954993157241728748920386597787368532428107777972104339225877403401794162908360102041586998892529298310703546852436660493858675013659423501355190648872773621310079654044014310752966382912179095360373728635287622726651737455463988090324749240713675625885717275547409094243318671833873501994830328475072348771018027984683749223290989678784425027295821124059634368673869116164629648448702559362761371614517592063756874076299246902759741560154106143437864790596552803526920319867823510790706165592135359447605463998550704415769099288440570361685664031177792992090786105656983259305121532437610939681426610789894309557366350031551104415259450984612797931946748601626098661878435110165085901739956022066400414280746487527578112741996935226906395745901092805707524352291321147550231347383170068316774193176207565178645304916873598841463715257530777203357005416322109343835763278666520247725213183466985454037656410193244899841874412704143281096685750298726910585870756197296519176569525175606793406645631674950792609854282444151653198780929654301064058051229321513805931320849757074576920368815985901780043799357686835445595829175735811993470775486145491158711177049578873233662845088377921158898411602571878273452875772881899169529401941418539383342053518818813323869354295717080787872637453132799501503108640252710056438226037178812628113409312942000557150675897129115572171298711281588921096259607930193550679159836895359596596879236743567353702729373909426611891822347401474408898727871334220421681271439152182301535836021993386273466275696528292994253414306446223687616003192121501150655236926679572414501646690005770233074619871125685587035080694217489755410727562924554234120173540648743560720135359360363262530576564924526305774616625585160097201535056892381610886192258024607883431784710860679339565823427174232965844461571481178724253985983225954350062301109579129509613852286613427684980098400747022429258557702009718377400834385081270820128071906143975803383588083134085418776237249739930986131965086106394896620032256944371040800505805965481658668150735438512522504777459790065722739516941358861098784698939047911008496182370590029779108955980521025241107649790961355538346021551245176199497270522049281605023504001949124335684149255651885481144639333607849910502182780719407684202515595247147319410509831023656344268335093021182691793997946949758130552144272266652977005586744461849585465915756709927141439811872241718844938423918832087475576219332694950785970386079267335414927451954818983655360932053482874019396314161860742292516478075450529389754657088949246001450418217991900102803635762759470848902391705779840969408826174482263373422926209103823410524025574914133234396229849186069979485203073525150840484442337822023166024882952432195685596969407933342483570235880066353961279934527973725539714580205971125405125898782507970237927908063886587348637000691443318200737673045276552058329216838699229934022708542377877362926518827132453609715100766932909592379505447306890861047280423116988491531915587728703632619611988750416040466937259475379571137842026258810294963742036661927589018671229414819351345190484311126264114527131044161206269108448033575319542562368465474075921033978949642295568730842055127851628321671951823009445457650324608016973378331230232884179525388054280374260860240868487759083373261899627220090066876783751500658935183311778128424396960618917673163179721534810709076521212464004274477134092092337909666291526737318964680869996725201227384462385754218158194017809817286509514514129601222893698952622572989683524666246756550015650537129937803233570142572354721784251477674834999245127909013939601045570871501585355463922090607168445825122450360106469058953358774623342516360385852177606930974047617741000676038435905912844439393783898237397949635004448941661406804749813872855395696057751899400924557636618650224568226511701970817908185446256476326521476030018797135063724087327207267209141177835727099303820762275246330681321654483388364834756321475779080504736182037575708969232970013429022206803416402321410373679615440872733059874633793663622051628899901095062794587744456279033488965255322767368417491223236439285848406131561300438460726061369823199535484496147416061629670969412336936404708580549276529621196545357298583481305778284079458809429320697730622960487810584231032160529395426316427165329445589191248084314262326385079553285316720421472443172670160326549038321914781022590919883513925335617953834586353843308459315866673657671477192101220509823318473208477464962723539568290288429299449134926465919836764991375248188716541437286030130517367517754154079710103218519030217893843884331792970721523195298811614171246783886704895403798898291326615141579289408046504141257277720176321416480125545049746904868162655611195671009342875284452210957110864744997546782080364563232163518179953884163927312718054920785191689984296879245405076684134515631536754937048408681829171431626759164833924922217084220071334533263404137882357288305803121914016116838692007695890220368048495236770337176140561201438349422989433762115232579708356195144656636608735739289460050432223524670851532506830186276741375900843718283871193043522534424538810159088465263128493968001553787828738966813887803202170933321860342548264971934041157400746363872678429252327510894455432745819367453720677694100441996179026244544771015053366055985714005543251962685310629559182915988359298038439538120807796104371444771928297753064658019149817497312852230062974704737547370227577164404100311275249173094673569312425959189017265803133665389393170382161167344437962009094170456417564029693676477889827985330342473797101932025765494045413293589824417646000594531539815462341765665328918653228243220541483848393973462133382318532160651984629449550576170078266979737695973194194966578654652740848668825770367364829904355606588380832315050632615872583663891869780307060448072027619079572019384141231544798094045385113201398512839344155596278305022291955037246819993721772808072604610444569155730738229942363820643504466356884021404873013841809844048900466963634479726542588625562142249544243676284753273312881951479033579000192774301984549310993920943547465299006655962075349209855382099961160303490773349939608606664380618736115121757980801399728356131623182001576740388348229536947638984442434805125581280794863138420357647330815740675525149264711251915500366005778449828973839718225066696898741849905299061850777836266202878190208770522859818957817033523923053583879321860404852181061153554093805707837497029005069349439025205809179159252499791950170807815425623149621046935133316520847701159470305041378346542951882436693749980431803749143827501992416729116000725956123891625580391881222983175906763517069941466676259709631145958884107917048885033080665669981208945947583170747836490615674133164036034748106198392604742330470048505560098650494831172051397334489262537240614010817812284209509223784440066750889822500443945300963200074873316857882478650783476787853738608510254074887585120984456196771187031723077867272620266420037148754688819100998805673999895966675508014764014935153120339966934949365557107841324734406246337249150600861448089592290667607654181623385684553047410572709859631287469808690950294265585819747880369945972593180176843281758169663832080288445560837795415147096134430532773442756069591301435227250326757925742952566078197390970491772891946220041912883171581663417958213330731400599471266174479501468968600379991775744383064623941761712775238897437626153752819207385506056369058258442944795706457067299705997179498225717498818760591996911966656880871781027307378251309807874103300139887839863391920773692471086158459681308061352981819824587187489375542173418070444337592907313571402461905432615781735207300453524515459445724047498833448249813549762188259271700326992840972530562114900656002507168825387998805731883691073482946776762752664955619801834654738738838692946796338675203407738446234654995927391904503466096199849742002274050356755975103355750161497184699304025942811687868209989920678335045600275437193008252130812910498069345870751858251256393622129022988714017554211525108916631645392367991836226038620008104380897592666780131024152009028253351316327030225497325894592104314902772484428820145042993161309526557794600620294328854684419099266843107168657222801722378152708775995344553859945566387088808937203325549735048124957164831063952097542601082377650030192460670115932475486654604213940130089321149613359508645657292139085409467525340121177396442903920267368887421687375496235740051127386560629833459579809083491805894144675973363917343889552308347883309238695571786828791732495731461931038014164017598211142064287281283278947201452598772343760027085665151087368608760152527356813057735588648797626527541094255771495634552513126667316738317585828263669189555240146440160807036580321093311345191450320629047802507775384844328879602638516341851634216530527616717479922630047892392668490047223356599263814517678747451711841571849750503981004295976734264642388019273337486562100724701655373287212569563078744991223221057626417845202094393789528800969998009288193000668687889363751731016461172980342694400568912268854388440943041196061998239218907972222212396867741312237297780208524019505845457147043608558314160665680899408712766943603672505270460105122326916679888135043227488365571595085292423163559119475218378281885494000488895092061823444245098526142428732863513551906290046916304161076501139312627325180576725010829050190830546910643918048018774131582516682196496319669344330716479261336645911479765711396969889865378107341049619588448354792571589202324542268379674296823163790166902732805365508434844857437102804208438426339218783764189348146798362185288665598568073205291353460005675707275314958254880327081914138305811349137011514860518220300525588510718730389830057262284558445464295227206809894627606692607986484823284671746654595414314010365540890954581470884826362749341387379962364042679993881062427886636004135638791154460813213479190313557252431404116276273322933915233294021773323068102771920421243948944793130783955597726731437973861325066493361079233360887739376265962446791564035503069417890666049189402442729391498092204801650358621713175809547980580380143128110465631254434579482562125667829856008658851490592853222738907182306489586181106712178213105596993474411245320322671039528582987038465142453782489069380509667246506457044443022416238880928704320997579919548100686713481814326341439654033405947751057541039163470892484465826713323390364621608432969907471977771935828847980983575504829410227833208489908179957686120688461607156451074182625575462148053198607862269370007557717012496111352444723629968538395384988996633252556175077165984959843816489546701199805134476932567498460495269479214783605695525877037595473533028499388264349052143356412879606242161122320394545724492084674092853521904639940882529177802451963103839317516997417993395719420892001195459096345133617874279567796753829338422562782577396401355120312610367722499707225038937177499359559820995928635151081428202069579854218201028636826158451047776601030032374596408937923092507156301217070621185006808084555434816535900706028120019649692924599954214986403865353862706205832149793872249036921320406647023762019315973921771178508819877019822445386186260400486885848257880748522146568228047038101252170831236860430263151903454448315401829443152777834401789355405168301974342208173882491755944674619593781298862146683594441609561333053650813216826360373706187943897270227223610072265122223046261798082650344749480527558821223159544529499245524944063225215307238800315962264255535022421474969513165275342758696798908684087358635904286578703180499018615820682810573451772677665245573667561466493132242155019113293036119422384983169923686486491171875123254942805040486060269430425569267483968986696686238568976927195920218547618675570412941441213070291552456579582996252437317016937295211617527821668695758160973050584272168131082105519380308853607532821463984967577532540524407371962351145874918675101488183071215011600459824291221012847420244425865515994308199697645842832370332116757586035819074148767104402313471016526273760166788594225348480862592937690973675574848882920513296181522887818448842953587281775933785418229638363485609353453120153324230576263749748654856821109520313997321259134141566306692807636251036928200793084393356740603340093145798060739048282485220328070890867079100061943804333829972521520291127484905495018315490845462700094564868896633054820730340079163472214129878620027019888529983901710336079705046658184326032796964894909024904791935794145362929151833658726563691681101619609554402516880518243874070906982064523700425055847509426367128410752294845882597371112576604955561405649075165867784521992034102298670019707035266809708130728156745289285790558591349589417792542757013846629104564952408995641621558525836784028594020618432134774641733641537440615129362356280884994837616272134043255212043135366864471518333220101618643567639845719183883423639185454495877841653339250702440959665406959150456813910054967080900924714025737350820412000512768672540589269675754424919228599677077445697113809840066529721765568388701875390467158357372885573903891010775560652803483679819478882345629650172781980446086991028847339213237692141940979029364443179283796819096972641708815162827328406298776096202683783700526020778488960518522247815465225605981800743609323854183066866640487882364945496245708862406552283691375393724829154580072116830205360741833555319339033051200231487268485910785971146192430747137171072264971129570937975755425530970361809912943069144783381213806619947571255155179093179718217957092789268885549635123060743655139789609158548938654826349640656864759147149350689052767940183082935477618505672231552493417160292246217260076823204130863847354810587858279332985838930162886184282693108253415326906095213166088633628497492103937902921237610481119973563297265210547132186074398127415184876011036256207249640118435934970335939438981790126589771516259048585041461271278531608364884631127301238687272881806496691607738088470236149553746978675794344977999162017734957215165255451501690040884221912307308638928587338132202994254987483413244374139178850688985223230365393585860215600662425017582413437691463635335358194973905391030300361346150417259653196652894156699070674634508457137020360203977849002904001574397771488802107947782300293930020060968073832219478899984589350604930962088287753739680102814007447123586881850705613315479338727994502274766546057699807438946482714833111325922203258444774195570448219712084163597796962797859056898243686478967953631715745966375436619920057373473159352475981483017893245445320860668026090791516683807262801921079111548800642092152694259469936121542963870086116965114445039721654219281940186865839063339403815677848716005550716682399666147971844717889913621015412135817533110731606957444231959613954273968084791979136882202057670733029716480709915989142803969602733258992391221615375847751354635707815084727213969298157442734003939287451781346116174393009896163402838138857203255776741554090664692730020785389361324100601703762791950479429220564853427354756382307194936013161747121185762466259400974879838707591791143925336492502850612120068116919791839888617914154035855979180004075322723243451584763465250764388404791562239025719600372225057427331804669764328327279387031957434277888983777313943280226545086251158559918088401160245584918390538742512004609862448800537906891869764108423712589964500482595566063416126797422674989398805092813447240451861953488489399896169359358620619416651685912414856889773307151089342339042472732858824025241624856141058206874245863973564043527091032048988143986081253012762521671537321286702385063281947399563571470690334770777666316358303421844997532803677251632355156304533537348406816098807069831845634198575000921300750456909516731935603993133238244055073987557328142339136231848664940079844177231018220750048737025550683040880046794442561157266156680463396301281776286124219367869914498519275701145251824742550946205674225057031634247172704312890619052390495376518710179128813259611352556859749218107872205430486799822871259990054031622136904606405351727353991160433107944551479538011373701633633950501700647032066670730256224698555529264418760187274768150259907888879572665059741262471091736798716848032445624070239734552645450482175817056453411920700535098227528889558492486312550132803695290762943885155563778019516902542370635817720729291321362752277465391906730671949363661506658655655896914044808647258544915572171954215742985669781514776760267967849110409295471586355462652509147272682861361749096078105189422826992910191028982485082673950755796303460912779089211101508870418632811680516125022484395845276226203425121557564586990602417844831608715204732374263732539070567819516024067655665793112910780160691977887285148975560382133132729186447685923591984316031705767882495776667295659695818748058401196924605517830516879434976071645284826793641269577529370774420229958357333377228647460863186701007395437670278276177825175772036762737537889111951946647055859831729000034562335183084113847410629250894679271572121233687639423644532581780556346855639737126341131996006291445669251053239903462768564639375851653948674786748018953966644026889466819726951876081780867273522107986104500671203367331822848694157648207601517225523753536009135480529449323858410831727299278914362524747658072038373477181368183452985190962996873044346068696800748042644980558629300695684308996435850098975395166147984295358576673924064885322171607787538463115506249578283962595097275949988552587369586015691587870541458763722725164835435019052451824707720778061280998197833153177402582839232532702503589954317919138266970100942835968759726537223051910872429566173294049839346332847632647361961201061347282292738786613927401393889523418169946697559902952772396117289701111719838295195869678549333424551743837468937300663979657794391140672149365171781848359708479394162970778483031918515273705846564748713160437612916195573547506301178634178742361737350142032726056401283181418808712938435593551442221870870716351449732556925730985383431550447174861105825204750146725135244604400995418570968543578974561753068709086767184958585948098640403088622554193020449335224361665432828843235689890280836362712147860908124033083751831602239691977002748565950164134343741183408028223928040047311264541120194904478302339793976048189285998292428956922363249927260313235922998254769633603407902957398032781783721983681697342323220933315114173643512346021890782659386097477882113913903218643109683906529639293770124785790758320752651643026614236534652904880382488831861181016857426419963448999288036209795527913132465418357000378598424968653341666931200056455013490890818209827604317485601883319674257175338923582629097875230127640394254736791402300205488889965930668875210302316337713518091654826366223420035777711152753388145115584912160995505210116770338100597528075885922887253914568398693001758518733236595496857482196867125193285460935256661658991903538568945291719532663040864572502020770940117863221609506137005964358592003533922627350020369510380187955701825555834679991628183734819411001877672521223699643513308610415600964358046180367716974411909302301131365783844865370361407654608634922265376862838629942103682096926000892640045309744465829942491011944493249279422462138739444970611917995517189184438189003572421932330249056955403476781388652089596864197955868515497753454481874687290902065341390037728752976944028371724358402106265528645789858730558917199504707552434484454130732782832123670968191434786795059679755725669804029316030738771535502239373623806687416956036859739284283716381874090405764614786613025069669519706000848415555321012196975531879644491684268027812812513156407452448762960757250306957480942263297392396921513432127096276652509506026667236680906413034685037828751288211547041364180472201174425881562599941912521726193923294965140356202578148628610096411227120963645171046361899965565925427211499218216077139851506835392860293015973504756711308790082595280289181301387655883880083092430188092300331844846104583127100593540436045299951147435511285208020177487407544311518826015154010705978748147419973704337257664809818276680408589320196096235620304406674632356983611381235230260315993688751853232121164136137433521899054086081954297354383908460422621995784838376522647610311286697123552625154660048644237888848736523748069391531721882593737550407434229148709400476216052650158982152470377292398049844462349668565026080399295211908695828644089128163386447502379677125702688520203749803268867262785442008459047408919901245908702409564526562156267580568202748111357491574173117788784339894584716510612976401949558015348747778179807050384155553765870151247130929224915949372400860965228265497845360215474652034466838395922957557279370373750486018666445526086594756050601521471214505906006230177488160618112149231561039502538927510791333339931696193325099003383344586911660164322798950434026162849941293362465758290623666854465422261127723460516412488561043311288962929384508371578289390068730467239740622460358198846125227411985003001348706731571830760438206812248816050440853418063585562383489722372818174495952985050142471283981072539605805947602934814385683873548214900596361937489760274603171177401105283612453401515019665711299344450818837642276089204744399934138729127898317364761017072587746415078290339408785971662500813607694473986883890134142439204360379456996493840103200798277860166663584819404274617888302242122338914295068079324610468400005772440339016051897835622571122124952829867217535965363108243345258168210663914726380841885104628321667435000567005943791404897378140069555888831667500119566649960598092112162631801445156136631293652130242427530348834884697246432413076691692940936004998922951140103945179544588821583890237705542318017863435778812849946917309887373739088875226659641309178406715411928038877670722033220537975585169344259530402141930579898163623555916549970601367140221790480184227480056590493822376424892445648505364852293995398435970822828587622785959712185120741397732080241799912083468345460641354735982215023751183174103518557378233429226930769971903602878884871854966327087442606843902299897108851572363675882389976210451609376141156507426462223858402759326938018857742000045853941546602544731257210231902317308666656072185845557886284133416439073022010204115167351301562271600304547237734638539441774476750323432281295765937720798370229124317759398308537096160911374373345719750171469644516745393395648507306604553970613310220140020213702155949063570027687418836156152581265027850837291046082171526299619636604689839680728370732761531982677853266857889102708474971117422253284744758419047314377587214974290516636737461508863011599409529813871094765041963110210754139680508740119092402536817759605122981469398610089101735139158492003011483822630774419812962613268702553706359090541171258301316736317069431025065408830453823700314498490673075590043179623737264983381048308495588626302078292025662259003550034863433108755661518010563704342951530187453417232606356527719314108144210145029622379493067951589463053081280491734524602245506785692813386376572824712213513704009657012415953920216802717041688314789706664510539228002711836723324452437382059424396830728243375088701085039226917558708416658696978638730781969178480377333087862528177539851473656652457109972319707078464161170118236736674663773895670262201456576995827308773011758146566593784835379030598194447216535194172094124161564121276247368520338353702482774864119646820768655883424011522793424737374571908488271614337776796831408882860017565496275691456538655396557288961298342304552510182869105388903116766946641576409118222539870713002543531821187622572520651680007526864013523854470936069094887224238200089123877857060165855157274377941224244975909281321088263071921158757347686077208281542118713216779067647183512153896894016537769879866236839656445154531019644048183885248940340634578931239082896041606830757596891825074100791687413656076813206306252247336837883066613063248666193834925914589700977990976263538047806901892684830773507656382342881166527262939125824764736050347459443004083758993229679056174031399098402252329316861181578645318716937285126577889275719953911468170275223706203801276709508268373408126279043958713706866482959723704664917364026814727859308102601592294111996353499987930000035555641705022492087744255202965428392509813765086490081651649302023917213193631396553174993249869319382986635571715628307533533534570572146025997420454496206368688034846106620617462862125818651646524024513750354556312427187443410917486427773296481826699165202334184545774336169188058096231102872561540694253289609229464014006035755374077671746328375220789820575264819520838856097809869890263423167435556196934760230742979733133360111312215068918680819706244195079693535028153830616578566691264230985789345815780163577909187009058866765273566107588766144461016809809981630166444778182126302548979144837990121101315340423569982276185836421259653042532615071453767399708854292600139029940184751101174693361852640059731847723106766577607189492747035840429964573459051592975919816928361115583861415103473203471622296236003139948291067248613067633571296843759949409255980801297293383337073800986105429221128446464022508086346821690401477928892753551194616460739023661119110856688479483881046810313106236319836200604360034184738774416538592570617377867376423267776248341912415868379994282905267730599018726054916782531104978219951008181944281670404244963183494444470102428131182103434403236380011136300350984020936231945586557043932828760816535005530470437862103758396613783140565581544519977502282203301223644345142289343916194353172466893712586539508322648481724213310937194170018387039917260897380054829915203767607838602960937562748019852726507988392342590002285352199162461692665558402991020087359941947972373669901966363292588734449397652537801373614883897058289002839393077696869423584618224993430445772503258116458305817732951328705061583418017844782326898542389738880256279759792089847736404756562700996898798304421903682316224000426793231624112671313276202356510317714094037014435582055950360004295458458533013920163883462612359394143952857963910808524806711079058162555363568427253473651986782779236148373753737003239318515660737839940201252711221643021419994845851681656473544880987386697978968924133706563618231666927687810701758281479261119633917196415774048490755699437253398252713061766889083763838858309735782344346559626718466208582756440843634394773707330085948471914061793978323519893320170890198747701668705738342318090175943103197037521849992067945014934728853138801642505342921358327038833504638825768772701447229015728405569677830894342689783970985649734842164351827759741444283566957948728122318643221853880680005393457566377034184325604363989782513404632808392003062761038656485415377563189470560208358398555703559487965018457325832431265502057691468303407143168248324276104077367608236926598460751826415257133714340610153131706608130372870241908258941534434554147726936902819963919739086398888859796562873410967708509069129334191480569591348508749512206073971115169808138795059144756815900346335177064952737894891660918973898224829512542578035486573744663452998632678565027327818568533893514634512150346187504381307120823026509157956094428725274245483562940170803614422770613472456754462040564271516683465136263006156192324865361091457788657072301679158269406831387748444414199801134326581080180435024014947213003445765657297158749096782643198045222372172756679297169385945825652270862530192948782908719308201898800719542053950825871058139697840761850928287759998338124606402547181449722712719072322183548727503223778380724213847507938575192381059602234983509612789352445779577175581042832610308766118642394512514681242728269050155849272305579216093623903022306665228714270141273987241916380791168980075897424626573342105197167567976258299296729337662140826269211027352772763956583263739746661828468201578507082139082479273490247885176765144580341277492978899590772710671571336565902324962960605327032413708741569935605378702139641209720194158234093123330525448259088101548362940615313836132067509165819388543454549505897809524964893203055278588983449526835807051890097651813505410488147167793382726390779978744911270223370766099552668679273368504417460297744259886979928992541216902642863825624334879674780029445643467586479903798434164245543932694343566235515845061090645136749219766855120947769423040469887660162759888368206712740861789632393787828520710811259836450307639374541960268786128244815950938244422944996930340101204525312515086956821784500676683286127488092481071801463065863220305257113160457940708945089782357929767610759469011012544067232010016397214318759020890924325224849147520108690468819136899481636400152105812636420525522071060180997405896485337335039707102282171697051423274650494002520368290556316459258434088171867403875290030970192823717044829046713251181053223217382658228521059702787436604924070935357832433444643216101049560367582052751561458104169024545907056545592817871983366737912000473042993035062477481519052782612671232251897701803514697320165600755142762375923514536296990212451443386095824718266522113896749302301043752149234071360019804032616033319282531961071605821945762370700249990268702879229101861126232606143630582160118854481144615182278951346077211843099245749792440705179419702357197053746299994500940819182275741880213679426324521622395079848536654964848223736683778452645657088785462638099401731093744826390653047979779282317759163429085018015260411695931724924570302983722503838118018242847442317650942894981349032400594468117554369242909356099744704287125419588280763557521967237885647056569138518408789225841421241196510807190060304445701086816627623648102399979917682545250609378009306281038330735196315319031193454872442835135888894797168019931148095984030708436281891074564126581658133978643531469280584144976673951248113070791011186967555578821227814524130686397051668172000852405183026625363133710715357913827281731978735702865036421652899635753082657090136858928495065521559862627898378413361584488058121461166402523624446161868000944737706989998671185444633836903883255116667414674694790804362476723898095250779855991727096041992405202532542954971175994090177097787205309669927844594408709194151674318442078293947985372369081036004504857522874193011069569166780062334692018130812370564768333990956472999871764888882662272753726130762092428357876635820441291703248889736957550831110799223504872155239037277839289891108257512290329645819816530311730129108255415778466103393640103869441360093269972038438197851788540759697449940664444039318215671001997387091633736951178800124724411882253058658363021304188310089135737611783043737761569537492681338707730649496431456209284952593683838408441378190824796767990002440445577907747226626277987406468387186621082414974392992526910394968931735052368917007279223833051351667189777192074587054045367633107431113671186565106421462038908839363243123224645601140787087531256488443547666535020844024956014134641806897635366381982750789852927614652930000124881507211387495769242434178667310288908364921870231908921591884108972324030810352849004857452029228601303326154406727999024149348702529694295435020625442217600349748615127860852328745145920974781611951793645585216728220976790295747749444495394035803504204806713311914626368843578248044320837463265896584616843124703884661343142314626596247516266675913251219184828267374937242680717960678005330414082062520179582018498892623346645423107011698460887265307333051930646081738890332364143732604297702887725559800892873580281209221610177201271551154256214742938834578308661769543429107737889776280286292938826467687732167004083000225924364362585172109830028133484765826340652211211477144207987726730755734984383254282160321457283300907859942592262512789970580406209626696779830451205204733062546023506912253876925072627681679437143578990217356714203567969190777086508511309955117943869361550757867329354386687975841972143272816046854123732449867567233228517190631380922571655779806667790099066343051043941411223519970622293734730699118178178823603867813788752983459582094500701997009341141835787399790325884627949450059444004158206886603882140792344204557013610989943224774294745158415799075772223379207458990609555993587245976334490298505499930794380576182774640972688513713723838377185738089416799390745510905619178146788543642277056666530635187073288856803478355741717278213316409002807321185908101125768926971585054088367361702972681575028757697055324023402078275622104803176875454731882679262251986081451670474315827065703025572872066704996042257156175936556752951055491377684927249296049613545113109839213042907531558893777385222668389640416462812108363844747334980635983915834253302847632588138754305137342494428542957553225313313401065798289427677463492094962953778891307482466476530444295452661494719221527895138183270290579567106359977365483210256753359961468249415280957379235761618086232415276656927272370618995046143035740911267368654325067471517060259449495405878599011654404685470884259225532140787306743718614421764905801531875450329422386068587065374135570850911775196729974710234693512408843535539025786907945951386125122812349232949429862647384416636006794533293457420172312318535147053654132576373119885149538688761978587843190500930027105848108317279351790715523088859946179274610477730336590704319660115428695617912321725567521479279214786815933452289050968761399681206925364861562194438896807366991494193530284143557386842993586795518088034922621163002441105799802571172107510968234627771963701536990076895861616411403936055269338917635426965787072649422574095370733445607950410787078349712149518610627088056100292919976993536994950843507763003836976294973064445779939394841262153113580169605216504043710809418656508548212140948218325819002657849499390117592477102375921612624672977156091543817175805897694682450088657632153993589995989700506278761645859263677451779971893896777866896936608744760474844020324895104672606566116327381722967141375243272442803175234966477607794293367632325372120361619299826192030432516430122336624480191859717754934857447434295398837360223255666057775244924771972531054458091561699601630679075873030308398231049711096787379892850596851537585899686647889071687190185072339049209479721671532003966587818952664342774402772376924257349409432068510098941121586390837795865502244515421924886466029919908355211003181207128411231325510843329337533091690075224246108915808179764962667565750508063194415296477273747388650048572833706432586256944357628854762494672774038993330018390422969989399279935726354489878717869362481219204862310374882308157274013674778667402280781193910805399416874382093427668088743443307949714780382378251989503659826636605748825985221124827699501090727937251425366099659711079620367625148444001343815407310270181286654998759182810993172252370096245433386580265018998231831100793830787714053883256031128516272482820975953220346156043197830391473878637527375096916490893680844112751958393496734891262103899295919068826065040942892914548756523510954697000796320598180758924521561803735513385519144258192317928805159337491348785645623163169777424897382575050249203309253159810053365754597456704895241431812392389373477021259616650528855471422720581490434862965586708042530577975245775219826418594127778012781854673147257224575627949161500612824690524916722558970457390949685185427193937925948730342809585619440447215096242781494997458057482613619788782900304036828764251942755022532753636351370702641674071051887528502721739069326593869915974946756653801797466081787553388564397952470214431198937577193148607608333579394232254404373884010922982032865213054121547437966514606255049772255159427829618251934952921247893543376900788251506185656115087620600259079894631709215545369256870908059936258190125857541228752678533057879237425238785938071872666454378624638380618890672805802741853848791556835136933202594458924662550355218868925646528317093843559815880833936597420588701483699980461744489625773896742485198642587354976020829982970943294438911163013130159652691993104523620284453581793977842351506161504712867259824558978420326149647749462366381587812511484322099736185592825788658268326064516158000100445097097985999310405060077416166220792942993316904228724771248169398513913279134650534186031625069814058803834990947143248954425640582394217164452495908023376365314642445449948313487956907639247924409779184609505643707675615078655742460176100428905842947546668753413215238625827870412611293894941108145571552123232998063532300520839261914474376937116574517251986894704899688422595926462952455304820409054809948264662101009043198205838313420997036074275442313179182714756442492628525197519513585065751895001576015049515603909230765490874028117067158543383305286687519377354702425337428185616576119056450468296117440159855729476843668511996656835635439998648078471911473284221490524672903344449879491412148307577021122955284890153051263229524730947395178119206271467496220039504189368423980628895943705269179536785176382503061708786129600011635707939451923862882437937200657867930021921109345445824584656860231023778870513895211607219229291527478313770146692666939328419489523848662822625278024384756587303743862372646634528708770446320428516173904562204666509186573127299910454463691031019689514220735034804160369482265698329470178931485182533481739772956034238756220143368139314047945493982023801237707751766503614687316823245332138256839714720251082541418707801400094707843944813839989873317550375347298681591009138008807953893514241722646503757459030249183236099863595257938410806522670555369092107891195566302239401207822390273300452839533985120425382031072787144199989160843869481052727073794960742041218435192206661835384361542209039623122883145485755524534867382786723427933983228903487975308856533967671942164895422349276910547355578476694341189013042600736272031465746431053503404168064874346737833238189187255543750778387789859617032082894720039490060805415681987996864147769029931186703083020347345752463644536533022381131551542380229896527382156803623741804460206114314556395292392381227138534095990960236491556176580920547178395829867590290110917461990274837342595792937652408111579160445385576378868139055929447181265308068487806081706932137600639157841136916126401969265929396017963050191854869224109448876836790636708744950327441895592819040387203939276362439524438645451389808732177635322891949007283256087300279677087028928324827009029647992382824551885662783055782029634286283748785929920736360270946033399307860111054912756571580005373814228246851263017413269460052520172915434780984455086778186508917898738624495941498018186206161729483172810729438889401654559769986578044011659850668051319872275536888626706934223658176150640358906305395257769020133891033381274363698080333128634630465423842941759653211792097083547639433617066641749513962791680609032386350781328106374621484698170365879589477787388352425234148301570855037094254880999419504256775531186582269549905329271352011843774901498271673505931131885235955910797376863285607863012425551871238827388595497178018880026452052164530138673628788259764856262345723571550266125769151016209811465494852247045577889143012094112054781014078108959643464707272653653794979461548092123063093941326906953497342825047019432723419893563402714460002362296164918509519194219342418412395126645512413264991744352603330826783118024715512755464999512208358413091770705744272090660811334107406582024458427892417681419593706781705176218351847337586263736357106308568954763236283722108570773182129099834205347138166732217027702191500836747394310105234876335750746881790329047029494645478931534440013482176535258304029310351979025907419085128043724163516290539811312036736049819040940351033274271826570971587721340398778988115163436571960930731379203668916912509337035004759900965329180954595554603002782598052001990752396249722872039775927164761140852260994543549564649768146749625690808239932650818081201495194374750891207344697249119823334630330493529695811774771131856623014827834916752464764368553357805249313117134038621024572834323405281453169935225593027827413899123604840760807655991820839093915073050004640156365489794167985289167148919501236667813864788285738040621922873471980065902199044274287654627246849682279362547610484136196117858813028019322895636526464122820828722252552777883831602592788528014327583694771897906637935520248704038632635925455670758386237555365206177241084621628640952147619262628852350823930759758020611377906199630900443086507610198681751137543425686029043615557707052436780997226231650129178354242932438397966476962239029555403532363847084090641080069948601539342332731949125363640873891166087478948282216167666382940129946690351301942803970834871062252893277518733382414133353547656641263983187010202061573821176299811845984000064908251500811838641536236105915245189863978026250294369785731868095554009518387937800176714209623434824333709544206091075868107964842522969448773567268196631911763265241144618439625015744241122491224295919010068488942094894025256610760836851863329885514610357463547534812607777823225170521969133177241326849344394383643467240475705468040024192414152553298640245084049647599674906890288217924128453335720003343735157462955072203072150502210710143821451105881023745393304686941538013977838157108408510262446554385629563524474454054325479673765326844659794187344164910511325743154291593972428624460617225559235928681893760290984838434615350489803716781571863145571705490470282357299720386683436471502827833496227758613389072318349306759700076127670599392395555642453133350774846024402831588794640534602456227273834204858041902111628040922627175000167566570321050035260836472925004652532348252431537530549979063169203464263819625503288930089955311148685067956219644074601781569649832529262540553722736575464144786051949949624282325818202338668543641447013497366272544008516165942466337179819954250950767817320563995419528779871666274034974442851435737310444397571935513698345614831228385538473097399493139139005177023215415400598074790607831063729580899406452283937576111339883104869795479498712053256499784845789462502204130171002716797539903781422173643376243124864226157592530314991620694626810052176986652601808349547608944027389763489220046846020520088377222973207728109374522257647145222610298732205651807268616308672083378182900363531857957332752315386840094724926006114732089280740531832589964700750419655260883276338319127863050018788118302715058936193191526559491115894113845971586387192511423649215182572433285241962110809119134310088005617503480955782157900954502394961453276841601802247584935529849877454906892233235204522880473708856093160531038659775634853059983460488106032113072855894329390647997409282896671850254900437426199027257347742800552299921717945338855323560061883514607988249303723632812883044821629373829131698426999933655707264475881558998089584760452477965658075478887295616865962170020264281579582838448400515092294391142514093429801944903444347643076430112871134764122946776652992815113201842867351065782733963005496658409395692876007197814251480148986358761079555243794277800884037456731285705815043342015245205482518034375268643733923885591009667124740220789014007649978491608715548336424673601945371291307670762343988563239652529649118685551003943926965590072018038742791329575674388265463131351539317066541259566638149629715908381529037783148739798885396474424006127731759869265178119974810935400863586788203605017008214117585859188039497509488660683761982085367387331993833583639807449350253780082898455643315326142099977972556362992972973384816526466536899299300229151733244177558853268777757543929085713392825688529579795283668803711476431889098670734812250636793032276631298381084794942484632365834564033476655452479604619348188538897977545086267331711862301967747576578739081467815733771087427491037048357390970459907651380893739710633494519917540442297826121786604595423150702677336659384885393328944736392289231920742847045645005504177799846742307253988901279347148464077671890908996342658246139050100540772602583827966212454301709532353620915273229250856077950104775000173519986955037708453330690413308452160313389005185747848975378753172584070234114512463158326655959189100949351229255119354737104054026465929973117327420937557288434261690609292572551697097820781193776099310740933746518506759836576489119614773769289702183490059777010806661533784139674132114550154833323282043915142357985637182586844200824343350885539323675706734308598400242167665088141410847291467092463937486822145761670928177862025051640515023877721303722273011204212950289027661968116784132903249376626994371511037146151955101513452654151359286996224763708239759811950196594136940210981022487400212787483499195215365214444346658129791537107022273014071275997227637437671217867490273093523252509033946482214154092115833832891606036607220662673818162042140913438409123480531477883799622159755860624640725908559881307153360839046879316234809410702079592883847293243528305822818042006759181054928284245445100634516220223302615652589526958204794067519937773748787761390013854338600361264588857089444783553067047625693336232428305122041704282981314349883123795679437127892358152460968137450470856768732597613763976056470015133577780631054449182916842427673431782326322516470603453713138127404622727815022516433712997980337488584706626428643419909187019836274875030895728113854356950994072760681683498024023348861338731671651999864416114043979243453394940306014691801388808787228077060079938562751247523554632170163117040678823196466504800671829053915877120950541371252399226199451043103775559389626329689413032492874864564862328192004033472454824620686816378120779151077083317241410170739992071668497973970355723396131433552006947751657379403646546239054710946806923863388076533032998828186961497917866432949334568105362217201728357916759345748314983285115054072713026929648433071784698614427350752936393139470677764650421999051431531309461162815532121071782373710039173327115700302892856282355379630679810490355197759288675420431652440257842058921128898390472237942337249039700710235402487637906981777856908087558385157434863307239490255313734696936447267675989517706373452231973252023705404742125034079461331445500587921729167501524187374438241221538025681966765642249692607570861669188340027715443641106593582053751687777063995814338337822381671084752648959973235882551194493545823097318986366511755323107169557132895362382271793991170616385528361852027221490007551201421247844911502439801182694167696147816891443546879047718490746518401581428078809338902809627340480127023502475488018340431134860446457723901314499612224154139823428678415671997718249440393864986459509763433775098235951603472749734596873376771387236526344523289511920710207923453836254479474066975625177390459187209982315790198291019189419324191817971679060966398677074264315013326993252806095494403968356861274169364663229925246830571230031658435166934173089730515678733320719992008920551417801039655763141681987944178818908981028886844707520341902100017061046615290095123011951170855869655557283309758956582903198077884120766923871864487816014396485682177819436122249698635641676476147704954412887693760852270314841129799267213093914368573161019429784411581853101727370543700511711470183788340020283644894554621551602821800418942503098015843929666494433666903569090108117562871824060524031515127452280907967175236164697438632049179883397856689724680944930162951828549888572196293013743670993705397456231047364065167792166333980528954858169290504999477003960442177471738671307522349585561756157028483326577021744147588649023046806789243513302322122673920401974122062492000461860917350494357677140363332121563863208527922578088210955166785234833381059462051002977971206622364840895419238521381858088163771665222317059347929111108652087190991486011397066704112593851030329374070479778175839556259133581821015336387560002124403682123564624465834406361091130749892981443054016290679936936262188092568651127994440093147086560317927769743419442066581718705364684686030727023937151797770796900850587841038195495096216645085432150826273235767861962680075638283362643667865042338043779677252716296158148787747988560017666553053939793635375250140726126647075102036312846061253570404913107604592899347170181074616017455484691876503136868160771921104502298725470853216760593008643707076704148481032710088368243891892535656144796419510327277156723442865888839986450454654074868501408636454629215759259725707367825067350665085037936208427065094182172805543469887900493754066477411847134167944560112014771915255108318624932954878099004060910125883839305706916432898350626023273978311183172591101815019480503928004275424313857115067315435528380258052757817582320060376793571186497644589940534167787494055216442754501355141632232945515808775882935642882065682273528690139421893221201979686695273873101901886004580389467405383430906281878937323281257447101825582996016913959506506345778195081110218744330671033484819555621907874971773969662819228781933099607129731032616930889472087916029356111531312680540900588082831540560066132778040984440976933476391249982552789706760196871719624454097161224255040368658595624514054562404010513268165728942153187608130202572919746528202856798827426981910284275371460961590066367766377095864861166086529559360798120435261876348309354954226955600057916087191024008353467278910858674466585650680071630500540982246076288018918133619976814777285348741363537351487726303687568732313008642805476041971733804724084778440127479576253477894284591891247952846621416929255460641467261787080526300359093167843184487456891749254618752169797318534319060886032788669782922503864528655420483078933699906376478622060121154711513441770328400455920134588829319548329979027598014393799512926743150147636178183420947676236125222502240257894375915590551600018484678150707894489185368722206287991919678591710305133478881069674651509260231489129482902808832507772913352435318558926325621443679739830019606658090348621310985846759636622886293784291258330931942008724381759969690316115009665771697995365781972348913918068067627883935249073747538253589527094610693421760299186517303837259338456417965352362290372481500506155935502656160567959750368075253507121880783375890528621675751468640012991060625982472867630203725199022922061401684358004221083321587953654308932030357133469396337615619514964371751276892542931790388773215258821616297345622109398089553179096600668366996221204164198894923743042375258852236722317902361698917028262191257328869558526357503625174881399843376128045828573124311785387581350634419744149809056699525637718233289689843151182636991747390236949434732476263812601530012910056185345148334942546115615784667061828783275566735670969158490702806486537829016134759997295800036092254403084172587136157396527583332522329500310867548962159526074732971617947413694404588156128601361496761948383305868375230107354822806194191792444972092250631939666290372083032474398546293854529835326955659400788865263008401901914694502478682040404276994968580870635567295163296017449200201114854401593710912351085464624307554743727027255294365257811510766355032483620065471664547757546486917066259179344377364521042991338265365408248755151411635602582627924951566927799135420545585210589861096328699086822748230495583962751615062646291784231066633332108556903179844229940015635975970107937765922933065406998702252264024234514298094601097345224775906821882929004193337015355260980584810586575997334234593589040499084063277947629774528139454323881862396579971963552425823280932887854976702613508605602563930162757371322011263565203481188179378645074790652926971662644929293711145038568296080386843689937429217470555493514771008793464447531421684196508925267127869340491609800130507213979985245226662423656768361526549354008524891922621666149573738613011676243011565038711885996719854397783705185048385336839639012399199844984451276172692688548314525261062564934208499770101581589978153704709796362069564348365882737257348097172125281608111777013167319716340527418709336997798685709426842394897229397354244854950294660057861812863351475761275381677663938096457511087402727891652643798309185412716728850232131206448972812243360771391712848569553236324894797375248511297130462927733607761249567985410515166763013720202828882524070794484777675466400476175587248435161111053615396934181866466069012620661059660889644266719683774010089484452294303076281371861207807279103376730857206961137881393307391766849190637306888355721128022579557065798208752929697978114802911264014890296810701627936988510436872637664386455666113783540617674498735776740956028442993125305305636496109680116940351592233545415988080929486687355495028688280961911673471110576389696588170401902337260266978791009602796197160857904241528256539019128112030440182690866527079248899933204603028198204368987285025878507261883767029294516676732153204226156875007486596034231858259514392368860338412331654125790852361942537133036128098059067590528274948728650338103044839091849316101099474844473223194786571285115210031479743959244471031146653951609956643888520556914597258164209214176459198893124949712800787565638194080124926461777431182237442434915715026745797456001192711810317241671362019361211607431418803925542077336023956545326805692930431450390817989971308174411321586796123404877263497363072886452945795910570267925827171360106318717065697312927448794074287060798350797258088391101985675328479900385346252729344691979826330304661668376187201128099286163069075796184546412254960632572977331150581271523963005908660670046763210631748356851515615645930671001693198548684526063385848431032837160083638353636136351791724394119022460476777998293291110330335289841157560875842283049863612201702790963558248319144248710021675222187750936763979785289523225495482231934249247593275291536101181772071719267887239414740669533402166339141173011561682722684969795016867965116054300940627223543702793684690783833804103782150926594000889781932329507834214550434209087261702164008534306061047342759613919573488078621900963624006553159045660608316916233684962733950347883539182973580899707090894379161597595586963956482231973421879068546562731207653622032357828561585734765818499632044506174018121321036373221302688561728016306475218431260993079398205137500240170406825441425471091991749041288612505259218475015603895428102890268363523956467759138800262229265321439546193299247874804330060056144480439210152366113146215145770576098483612482756175496147545910192371786193318736357870958429835039090507442881142761494552733763928077984539296855950354032649267606702722292232997453468758749769167267290786485072612578985646496177389321765817681152712702471498321918008137430309523993618551754976139672511943489205318381722625376889299410723186266428046676499763758985982574513983616155807135702170922570357727250623531883858534053825968052180668451735317164617845842557791019128550716442372894755858441516572504436125088459227727844048104121284070489789400385987710637789158585177206561756745984342900846340364290628458905958307513655312638606679693397861377614984331819100126929087982918493007724288824238644321637559025614127868125576723452690042800555301482197346414511801636550744881679843218111699247625970656016334685692524980870207840736731614993826332285082716895311851418698392180615394902684188796465382497500463693858101708541786376867870514641241023938201017930810075952283132648441443126443864238771854128817618932585346930270519137029594831141373689124776478949984724068006225190026293528276444658870345896911451989848670518063697760198784040695593824053579390878456816258660350093166559538954339605884475224042355605166190789811472184399019481488970594610191337646252325073525308579146781688067159223321802066408204149294132654776560624346398066160771309647986232099423773969505825305537830235837176399939105723289798251880118395803422924827108737053426560704999064422606216081580223532668922052641812915365043556965709954969940646091227398710582551185295967012238240746274365268179096561087134138019189012715141286719613718975304782761805625913339117328312853926926614496194469252882715374041081995095987733359053125493856455644643241348365643900587576964759491530781510216754722093053920224571571451744082771952418243003710158729375822107054285773523593096382628695011104667774000371925371559906375520397337174592745106896226273929378044481090582058529909910783396469592328618806586604977431086025249159305159119736445069784415746094926840409637839655475474672355672901345044567916055501060984579439652471305074072760440464933059295165659543443325579471743812143922964579671495998947864934843451782329055401233410872429446468693705905748482915014087850027512495580884083832688648294505896877457917771073549167721148519929340989229617867800726207774628783485798568807383711636906219722799245563622722857813556989518997114448955211816718636784013046857607977203257270879468655221339584112528358819277990144110862243116136915427930940905015418618483349799594118802141830025919905477676557325223384405544369175953730139657179347864360304526640285972601094749321088061560941430575918242185121297882466226158420185862923923022052007525200464707782130330930828514237037844089059640033794586582782032015385726348871956458202675366540037400088915114450880328342550110472900959116379113376344113164800313883129014434360755656025424539871680750286290051438335498262179499695622018786402288370929497386603271007571901542015144583141414074335905583074133949666241172943829719418900374335640124363638404059993541260616846663039602241347872511912792158025249274961967100190101715578364231571288943615921357210074760749925247690260290879864729804064950066154567468599223857920640704995496421424881781946666887195343469959731882995496443844563017363632073797210971583404317525529763319891823972487510181148039123991512563102116409035049946341320310730369400329875574120444492342817702949012968847256481876711986939029446330549369851953556081635121902902865980108705709707209622754875322331062824091767484685671469057987754333445610608563184609091206830563293828941877910945522963171601568961605882989612243841638035920104759658115759724959430422221145562721056993046758289936915403865461718007429771482897998612741889330087338298673927186262517401098026633255175663219578422799112389949464385560549863616982311364664837636119352201085053667223432605431114213909996888100245543327536848503332134292201067927903471394670557315558332157497492116842343964354129127165757426241405774955202447900897228988242477372387285718576802573305038880359393548834764158314427987549962908777721948107725505642999411918851484436556117335485278981036287249188081365799840397053067535489038686435326818995763119144414081526700013846787340669511068528140023671663959120420748470794513380788550237871193817106195923184574743089336302176475446384510995474080633515733777337762987892721635740611747369273001002835220069141965871075794564789645323991659356288096272513645322456291978230157222590477660582113286231462586215503294597966184858804865295578092985899286147906943627188398807720986149772556360105297975272420490643750825627625588678107477300776980572516237276270224517980807241064317489976228970765969538544331866499196792131025798538747333320947807359647960460985132214185996720204278181812340838884823941605151277725066321800779421200583879447782695362338645993908736236761687388918174297874374552273929608668118134944070682384772140637940953051128618484075189592511779271499464784004654200336503197567809823785268601581924980905065510391422011367739192281122897421964980186991090782398885558942938029048683696420052415962846066342582934985440917760188211796834570946690929644135587634928704477259649346602821638530299219951668777313707768320447465263142764903700919815655955287351860295423600230531275529351173698253745904982348171205378837916671082255152144672888909652555379113853597509563427767259676948502901379274022709875424638515749467407630678399788095001370130919713164269218727862630549491931944362648079212094172994034011412038471410509900280864741434134856543259286769106122350941229848436187438807244908468531854416928592278112396571657148283165896119728722555327872885695160126356522611023289658309347650258272608985188163884764484385284047425807998326597315744551538098136941260380244993478073793249738936580766365640100358078637255416032395226518945737994095068908271846523969631734261287528421308556399179642102143505871571166480341075752093301222388131359553098172431316092803154273097964451716732320041143408652131185564668371600986848105388133133488326762963774200207992943683077618343991665736739899025157839134865642646240698913347812200498555912059199348871854335472515631056630955148039277492301890661344899808868182507148319279675854788277536712016401898284981636662598492550380924345170251578661144933871936188876273934983123887160825866131415483419124254123687880607901790801653329850916308581682644744564038690725019745348004086818767627549991585370847977294170483253852444575208870906961317499533595603688095968404830979703233909525318062056385677249633483092238522625927125181347354133083585369657369838379983280231736076899386644967244611726879734906724224641853572547032515525533628329591568361399750121140648503925566289809165619091582368048173108234432892063025548834288246878086371796777574613164921533333092657938006362383748721117453465483084736722018925675989950657408507812330984911710587020709546811583134858166410827624387409955647416181918181783132134646783145484105248269147955411685664709864110331704487022125351595293883219344718036645262378140159571380315786209886726765460485661576473559674369512212742946468201852954288231283507147299331165497774441822748291604546712731205548903420817346243800466093596654140271489087789276066135427987284226542098855276682004868909581340289971578664978871738398996150911067093562941256858097394681443296400377360799435895394236147547712324466474588854959154847122398174879328748250298524639558434216521343281916206105998735900641389357661063296711937420254105787007650072223367026991289230391475251256891416837962910417016686450204748067272608600422209758342621566816684884592496247890944049636085677720043152761671359301340771102458295782385051386580927996030329750420586146630585410982949437075476186295830693513646583772414773252217058425798526921402606747965330792445768517000647551236033051987084010450195682571818669128573424746321455182219177109743029853412754206432249332933703837978061761267628767982127336511621630826316853937558622811306941621647120598027831317198030886191470838753036660507148663087519398952180029372344346950578689795077971026432610355884630674656105542198657508654277763652972140807199067013908680739212037944270295570559447653771053089278914473807548751300802482165459394521256253941116716946631673423979451490896874116995165232947796718450257297702623006282103961941631244244924148516771663296184169895913619788598819184913322647001890775598477113712117493606961232885746634704710142247079988104988454951747437400381990240755538027206829740311512352169022856844225002139540614757819425580345103835781395572565719909225066017011669486633346665468854323440643274271829422378411261509634842756436205357490905652965333253786163326624657762143325758455683998784106466545656234176019353305898667717197029357849558756236617081999692250917134810247073854617406892196656577617976490776085527095687982512222803045407070280939206890313743379902456019283254206013164865416884448988149605054203779623451742294422968719155936884328211901032379289328302565251229088695856752341248586389745786812566222166927693886044346685201627895141586560006808563531561805711003610725152342131449302835649430742500734573439390968241931373043655642485886495976973736571294954936744154580065099515450382717760896765916587712791056474734760794406235643382766291430444950134157093588258807113946733308455617641510919295333603399021659157061134474463925061443833993609599576074543776820575048840379522259800812231329455351796178422019680430670543967683130855864889859490617838206705131815561414537593505077269836540459715904218062335483381420549969942426635572936881867712050063630760215503273299383801342901105046801945740032015107937601020993254161632795574915045050073761126955591334196045893566191244810312125558755291580549892937837145577248626331430910459318420603394137445234538867231116312538502795685414046946627632781550992828040988554249865572523495952952907124056253061721782783468271467498944420060060777111416332979141466414566524073377093617766359597095162717877613237346691529041449694533564609531924349910224055893484813010715307106094571884451737049457593985043173830631869058879382847058988072671909780800327339336635369443388092747767747231732806345750793688663106855395139599731675810211145429499392114593442728484889438161368930593752187669770546057536350048341255509264069038767280622256138143684590665504894773063485590394179408551150116129282701425823077736493558005055632440915342122727640243300497195484975490074504141554955936084044627360266693074794307692394241623839501435075015399732369512899207256372647999521565226352889581561120655958750919235153554199298012428861230485359786499281348276576261598680755108116084331599543398827891372569120380994279975623487579992670344188834042052076762982370746066981133560253063980660808931951662160743116928441342908702701480937480016340433939090757955637625371664426629781109424475251132725581763314727284656984244122172500283497786711401530903763801415300724024383958227293212424127474816341302143799719198373191748818154660046147425632636323678938058324628886854778026671386361341893248828916279686842962497694062480792407413009524863430787126883074280559193825007233925222525410607085406156738482029142487051460442857318941687383008434215818290692786414736959315255082949664366523517941068651117816326201999269356853069782221537131107731955955184657289580807569869149766903062126549656696525668536484807382261925738231008666289112046566809270280722077190929393564763088313843003328636882463051653769405507044079020168458144370453953500854277095869301947169276023420219598076061514634721783915281907080194160391522643478037385141654790692576055427952650385545472499571650435272225498847725649439233701734353174163101376384993028516334874990155455700297342241638518903894294600703867496649668515341624108672624752983084045327753839687423261698810025386063098639559561147949193691141076741278102144843829299896209902949853615133713396729564721080029069835649006199562012832755512117178180100357326952178138231703160447507981383063703982561029498569745868232063359366978021717239854587985714133634595810176034416264188231377061092766491330974449376896026856310241799967488426304339880072614913577951289117986141165947181373934003364854942820043244638571224606696296209308990094641507521723784855656886306083418806053813927262979444203684041251974480907028826324606486416914242302669022790487861543673685763103668410673998583244475882037103652894575123128471029477114882396516287868975000661418378759063740798667739823073181343701691124955930111321069892787553792986950873364327737290343258263255534656699223111472714528294171908402190917487510549165378262169920699361664742256118140567316830880928532112094860716472199274049809536580853158446285524987274035598759551121925246135523116620695614825240616115860670884319914971139230815517960195833499766689303018832011681514303051146543471705143096969694003696492825330971513439161442468664717471421160855978354173677971544748180160793264902200081518456057670621008956460923283475277205812883733525144645106182722502643121124914367285858344117870986800881598492712155021079345656994839015489162611641495161829036469011601886460924189177163976182625542172407832711142072338200524509822871772420215011679847832187218527836127063450763851143451140228483607476960586121530991382715639289926039749993018885578611335707646943001304098094472030576189643421434238891911530032941028527703978357475106376504701178159764415750212810899641037445380145057024337200616327486180594893101296278884570774276124023825200236150568588727380010916039365221809108081724412933087318569435054781619121952109056246492693392484258338308972926097476118447229347438133341221439170614516131333879506938811624546753209583383579966614915199434896576468040769511232165852325538791135935577026066639998172444689457153847374415217836642499389641967284368977008922567865399518373220485294279612525218026748140814284206173627312181053946424792641693871159482762452132323710407109011123102435657998263221004944603991501429441036042930247327033255460417726902332051473450973134802540681442508244659069479462393273480741195388962928844159217267979980616314978578194932049563256577773689366589641542696234219851197425177257852848470017511765735157072771230831884609026259369656356941607086176362207779993546746590961732564667521971971488915823353535028812724747130330971291175768581074930007177284211789040611759449200533002456557357098915121673493245317963807993078250987996536309601853134776186577749872687994594740216674010580500880607378669255027355495277676796888342998998765900422610676931964912431918772418616188776401244825766775165266344181544955827136488974515073591629090037412936066670991075409238586978033358390091773499907062721047618870481234445919128831056393290536767631068201814664332726176692729467971181701306833588196165367870975212576401974183593188993384433959417088500346203062845529269087928081313839193657269101784531668715276210720569578595815667766787038426025229491374614942939944917282509831035906562734519433736819500539501003929011644245194438559816661946191146089959840413678635621065640641413304141400310627165612171774413428317828881701392725110089710688256860227571427205300208615037943879143174855727885512676830980696677879045261993135595578410195666247905410929015615994591837337217193142746151006814121621312138289174306536515557224468448920659300421638921399051839723553602942197519302701097407963817500412276633528347386146020254072502607073094546879085733547411381771537668159011154421697810608950485551995468129303460039960083637228116823657888989164290710686908335446130535444540484493077670052801231101755640127570976418146279035774029184805823004396445425422438857004367443898009715328546692831195811248365438924895787773532872460549212644841854840528019191594188314068925686758240232476876296681875803664773934369073088538030159889540395151077567477543260648024418030140498161519616532820634202058716923968974306567481151703852275202390456718467255976787303154660190499442003236333120936775782475801067726295428495876692726262765885090681583397958948269798914162569525719202830077895814601183110801687781217214716781082316035932809767346833364347047501686925172008041635071419311032206083840171626182593501540153461705605879650574306626229929672446197588202395075980415982213048449084642877514872641987404821482841562000163648152083437364144037333082217894884016117506999258446292770578547894874169671484514907352612080608164041952745539012374190304048689072269114277830231168854288517230539184009568484747989879447461859747626929507623504286928140149490283398058564158349970747100246474302390546485950228345271450133528894688685557753898645209929112479653816478663233859736009665336991637039249625141860540234361834180076252562727943681729479958380780751316980529952135960264960831892523851153510253738097325373210898702915884827202280888567090478123962180928748678232711567373691124565605857413337515547040764686771998956792200207889243876798515741216898837879945100034676482782108662752721111756230733497126192467990299331390253247191824424197592134109453058512424903418288411192366006529755612261162363680399818269088108208639577449715468401141676227982292261426067904851517652682885290594574377417523634202003388278158680764090648901684217548190194138072721828601971053740666425326757624586352140475289883760959350880995296351805381858705322268403922049352849833466115235228007678103717593124552678983738849679998277819779272951102218107931826038375121530586410902811101575820180412659159528313957961313645313071443372402068312405471658341632627668591840777286893027397571552299810892068465577559675240930498461795785818685814406491867067818303976726831320999065869612231650358713768681055100223462404685002833844291248785490697593778369643713453688301770192964058730026488958901250327713678431121741367036071884423745820279026066289581142719691714653927027630480735680643166715896437050082770642659686985919593133014357075781061584431681163222509397093581565448844807071530991623178178291408426647646681448275050994674004367265120080290553080883940773150418933650424773531263469110188388091893598064326150971689977715029710456314895151533194667121635406242017158542201191575133203727603070979498656437704700981728201054847467964844431725767939156664295738971229370052736792972415101556184066330604516903854736816844275172008607206623896494034145693325093750610261950506287704877628092864996624424085339020392018340791824065393065049892358051316501366717509975019839098444420911012720202265677614511065880586441739976246310017205894508773242569277618692900106382222017076045094739926544214827096051246217811215684204223878205158137174415080782527888413373351632429369462380778895681291890790340120096529519189961428061664748124947797145555173721238673081046490104635081888168357116281894985423389780806555833762841719653624069197551073227044899593772803309098706795352056106048506839204513481754093414248802046836373038921781216240038116355462688031966848170729681556189181160899106869309087013651770542687954591143047607905785164152627798990081313397473368188106806228008994422366516106120346200120596281647990238478997739815977621357690253161813340446213907662515397493595399381491397023808998418863026740420132831022084153905927495532413898094824532688712598766040050753461858575702011504654820007682021514636870092493330936356930696796443722354423529478873689086931737354204775358542653464355659985813482404903740175236064818023339234194953602472123446780562813458048874009689288196593932055052840382609857631736619488335838018421244665923710544301308788858265854069895325306030729585848550668579018164432446214933207171263795784217540153795687259337698394394095263241744537126982957551215387407593988220193252072626974947184953888198074411532077889883929555437743839205800385528042414136157464613053881348408043137400674736262355226257124412505041787880635281165657595068771926864062010528338414423366293251985361751976859368608629611444517040172163450622351568433947699099577561544735419152366213715068032364947578119718909277062850952592182113974025144160532502670132585363484050047185393700845043064113371725229400246872252586341630454964930058556831712524540100231716225434394632638596095883583129627071897255929791742002683330382847815637548989382076173328048215770845391136182693522590588991585373155552670061733073995814885967330714296563393334847031997833797029864493827501587945207082667839157175405462604911357237469764213864994357959389573988956546513800166393772889902838481694303222706132162161086123582602257382344656155818185936806748631119619980188029416194503286828179583726279027595532286760349344061231757728735617183164491091003611517259566705975273752946158917134391149990727499329694476287997040345812968449663314617158285276485044673535061576130631572547041749898585302345591017448553106230348051816996839548205092544188277970319228391992685628895240338842380761081708979791112677914493612554882672243617246361750372999554234151726245854405724001501173815357324074660081691247614642449216020841444239839190683474474764444483240932039241951720968094868649568105053895942224116409928999587162313290316337374347549396418058396681418908894094432041247782149414483529559454886826750402955456061625507523478998973982209449364766466122837726601925103270021314131178033039334713212592682818373848143463666172124178242431883423335756887787977270646886083126764267579901555443880919686600267039220632501743479429194337604294360684230502335614553658953700441046119058833340140381544165795808379725768104752391960972534077938951046733730914311748091022161833246394829360191046848060058745415913135604047724827216519827949784839035511241276471315899864804841171443817880449464524500769592299023536435570114115906810101231075252025797158204215127425876784296182769526198388113073971206687044565793108975937147185999590317605075847239797784365431854477702763854198702410160483921797374884703451521158582179133671639960833791717519126244298906610012780369465715445433741270704841680898587087897677421855807258771871621007857207454690412100267848073139488548490461770706742392679237065522881165688899629488646520992650936173742201343277911826281939552776636057989211801724031977689649207196518146395051529791055159026912841302647173025577545445486374732045655234253179155153608421385010705616063134220566151090512357771149092299018482312122165542499873152305140479975610251467274814791676418076666981688617414733654325468208979085864941327392978461765767120051017690438283311399260044604582844357471992896969741785698878047347338047848972853054437360188594093103236230357236140921002465002304077775501406553100346100184372881044032380266469539784867186234792125991076146256192651419083144433841654063900748667897402070835844241572826375083956297712836323746781740862062150201440034539156807806192988967832145882846465580496797837087917911370114320590248812891505625278438136189626681997854235771040755005870091446641206364765922553990787137091685913738505733117122353479878126996117400173168533450574271937467129408644413572480847776729845523326899064279225373211557893245307043108061981316815600277348616601874542175352938806260638846864207689654052809713739054038926853338275541582103431569080370245727782574246370181199486143135249685712815747949338179938071923270208713796725868394113780780933450053156940001950317651295770375941819327832868224855655397313977390382338394123789253719355291367962990631143363224823957757152372962093868502993047006573268130717504405516182948664393671363987384892608687668198905964732852217827080733915176509907193984477982888708618851163572652447942332135524178887155089758021291888596939726959457056880705208519655457513017626136611370788294644040789636692681871820391160267172167131512179487584216305872265644418211244591248292782754706578981075206985050796852797861881339088429687979643928513911158693765232454320177165800684949087925477442792874090331815782610994911109247121688606474458017521270547523848694418665534282041435191552790865877406116141953316683424903665879305691775545399909799608826951290044894294898719900662909027466642433815980007584017147810611062180479654376381165319365442288811792073845672254008830910385812611260413218454119908447825186125589778841194366879963861333563903402789443637460885004849612682614155459369866242687772523676669810717879094378475444114427040418833748109522167030617117732281292430233144563578484267325214713357717871151399706031139917488830549822666624324697995547010809148375847289687512162950040954934780356598151627012531424731547908262550920199623561622343165094639083616175844256342737266937121615608982459088699452828598116897112802766274886931981511939867577975940784891529616024416178971728089367552444130203789622921387456198902975058629407204364175121310090485351547834256762095110343022160476689661771563354332059097509625013320854308475091975369841226493418511387874510264500985824314993070193433885053828368331419247836325572559019675467053414998386592859935519234905633656311746729046534758841420017928211526517397319826738219007010417208660537660293521385807550733797203841127077355539174250777118262470805181809674003178798907027627029544857600942401011532224107216872671013361790994369601997646042441810800537662175461657961405834865852499580651542509191711720547343864144091247121922552975733554598369189969372857713382247024405740909533038935985475442713208998250973324354405838980386427287427786159563254770437705434627976837347834430931521694170937231353064255254633742838690968261149337324977261611992168091496090340976532615537095794294059690699067987578080201428085592887029878201605994603154672696003491525973654599853247642800786686853938440264026131575177693697100969009577732423553923391789148982321276204749855349447714114111390003950164808581779803192230994617287355375280074182634794162958887512034079394843296691019334074828884027303619058867047090336155179048794300861587798404819047071634334480884565985894450401560611989595884313835342276899045909843581819752358330490361449987592350048123998561754077758775280310756255398409578591395193106218495241216706898087529695299035351604769191309167807385070277906973723915299665499763797206499071997314482755559036674095969205960996906184275622205185890928928828376872047257900674966110447280902464243496073829279102705612796597056687093010531831193572519158229764622440175910285657990445128612797961870472872613518702312283446221784130759757539235212575496621836479551297333083546461461696748291710731324720183948290181003982286223473024300674354048587505679318014556893028592195744999732635170599464575998092698095894689290424261543875122523574080477968124490737199650277060888425722410853450886606452652707037225005859362310756955268553382414128548622080558158286638753965002705143860525253479543220717144903711967665130653622773199413892707266983823302220524887305661610942366074202815918363249891072850810301679400040860754003301572692386535955723310547740595091802486061743860819020104823126896651662536279456199079500199281111382754611306530045062414944602673743763901392147435752039478144128923477710227100935444929730901484451683614420574476524291033018658011306907610117971675715920197813419472677979306873310698085354262443391558632039181882272025425167501905835917476711482721211374731750169546221596432688483869871918634266174010398288864821413775207281688593969172223211095523498499620677584309664045818671716659265535138329501291080064883857587874050908228764259791745470846596265020838786665074153594066593556059636634632431899015607125477040344624833757730734093146785510699786322716599097951575378622588406525354700367813404571028516181381988881355191625572136112733641716077734633981659587214741445800030580449684902474699939704677198385492735749278877541324793543642312949362007394679073246425485472013195966510746596349223012090541379032811934287676649095785248839517738477583499945529808357628443486890252344728757671290185822137593036705065649815642325851072036922210992646571603618013696316589385715485144078247424325808164434236727733657693170314974325265877472171475017528545451117100913085932886228687863972121929672083209286355791141285044788482285078962216352048454653016259397663057258553085359368210616022363734255041407653991536327350790791531027172476287161700802856651511028051370184676340650946084932949063958779274269579984835389329183938732859321577654580283445106057733869066431601501451156592255099826898458120516460203606779805496025003389718677202105314432292693492837282998652789731268207119244251813876917692189198228411433889528654096620100060719282365685857918018444095744811680377231223286098053319180529377341289863674142504163021035784910985492509861787692080705360845473743276216175374824248185075577416541170788619570279147558380054573979338449688546750882939446966812113071819997295981507698389673276048272034460998336211296076913647016258222318467463282862208217974244657034707587006316799674465751543284619473939085359399665304181688126007881909334099509331699303394134079020337433564440028157559877443266612954625388056274180265748962499881503321244675271439470498868031320825882398319806285801914582595422761287919888784226107877462646544982499772365202524406723843876730930977592378208818812411951633274075248014461609098984120442249842474727757735358919519985121559599104301682389449912048818999888357658236058867646891923402595661407592938988964670237811587821474522642533165393484424037766416331714626278240322672242411530756917782120553977304324126759344264516121426059580039624808405330786908042254076110235282635058486832128687476816216091049254999738235401216540785330128956115304826386208219967657322692478305453387216932420211784185836243413826657732498449948185713401747804985697572785403479724193867367049477313524241170110777466539125220824650746463498514207873803631243387845947237577173775005994028358439227178351419028774315054593652108820004725029449278757260402345306031466993335353459740215712993346627605673803322526049831439097900535557011363562068411222500193440704328347091519634181158235150481082929836223093506631556755441362398343775556069454369054458546635414700641035889257328356267581623777902581525603954376995374758295713264585298431937132718233630217770829713901601698415983519129745860778574171719759189004625054941889789927466454904894751259392730740647795599708090388696553735065280749249392581893727439865708528926412247486114007426358165895227014510757313620952620005954072564398174697426087271852325543527990265869204722694835797495983787293370366907884568650738953396823414855064294708469316940290798486478215635768693927948142317095103201131276999586415483480414394643991017836097578150317002615712065145174336286019398882042349203341592773757839460899673226901928568801217794954964452517170889861518955001737249589334597539388547615374986017266845998254160914423008289220541727811583097903302719937987055237742939720887190536075691341053471153861047084322074441007884377625191651435252775685141972618779707656630866689366208245162143671664761762412779652806421526888838941767914949928328180576103313596579992905561955631931393591755299354199899695443855684442371001047051287483017498443634114134384193220929018003687589579696922712584295065523485696711176171432181748913641657573154636490493662823615212705248887057233850195833478371141965851289471948330803340864741304193035639879655165017299767514506845171894835481632613395078262424600286894448021144011875969308084644887560757042269442349554952582174402941862486380839466485868337974040859897734522775362877287954272555663606957088189737298353210752204706392435877963850620204896539986234133405635543954094885158148514297214218756291333994034202218551843769948872415959199684161055252642683289770163017742710354458039866599245667587321729795541534849941698938956404596661700908854468357175441276358430282577630831080257550835989493186264948276057022793582760011850481887608917118097468565684725342786064376876605275929417670216347352606904379109548154685850905996325316879946960669868990508944554827162846737891035234197349734589982768432194876367537470477603805482181770039303658692376029045733135951105892082378202163318637323754552485264442946943255870230482448494369766994205790453668737346550566307555641918511385173650482704673709276094628454301392822070501231820353518915553018645528684893677628115720341266649966926270265196997178758218971673325022577015146167716694541299648949495778453006895696246997215799475751127354273117689842846793742778392576158597498082379988647338588213745261976388182265220740440445803593126438127871766133019177338431992384922352106207709272268248583298589922646222861449494742630761059204782534955882158879102953700202107476756800977073308212645459372891076371874695425314690028545605659991127705181911352304925151350430246631690451985421721651091160604149245910101956719401876419264932117695342291492708157456420698066137610134151537168890109334464786942913526456489564653733859759639297016821878114349458251969836182109941726169817640430911061150568738871510042008432970900518326668188196736034069065579325163748096874302499401611402555486943442451343954526633906624029702162456346150588907766961470342683460668647254907577834439159781562691981733327532224849369548749166284904643164683207524479968948356775169508874336974833290273432399100745661225259869611149470739365655168694467569255844764346643842716934674164369067445318143061345711308871898852390267494618045993659207878099392781946644713260055395042868856826429588507792864318016020814060657962142580701380196689063142261794950823056325254412403984669168657681575361948416441570560684291925847651009070300587349741181093432992431176515360666307425373363835212393385228205903665780939742476155157161787148752946265766867607857008713243326073096360456461303475030686808123849663513052571266751535769950728283958517336372384708058660356663950581262683288086679574238559563468949662859336675228369837436946869369570670027198600759241382241472643142820704108663336351906932633158629770727932060081266626819822066240036085756866433989869550464462082034805625248187238376367823633725841139456924887572741188121998059687191357902285725734078376918333259756602745594178226151065270303637360477264189384710537703217769904426148340069606492926805168381223472693053309038390415979809283187120826016710212726246608954593836647112924849961374079039923668688501887861166038778428450973175489767383559673658090891444699849531975917347151325258174141924859787399035773193091362634400553095317239573778737807639470290128435630925207468958715052994391787285823094761615476622668636240110450567838597619672609311500275378630556265475733908318740254513417501023622947628723564780552584162961217635376857648359125114492944085807631366772905479805866578045326772607867940730474575973235938881465239177634756936739673176149212519121050559863639385229460262224935837080182185490620200181691455987720959392406069118361159573236394289468686132297714230506985343350559421801911171687961685032742495587221741833094365187086012521494002130222361729207998412433465803664666379530298631298521122370127964363880288095395207235252545930046793630804364919610343369496864497409777106494701080988183489713914461873016143174593599917615103240175946876614397964806440544370100513081192714400866700736622760657291051135513328302465404219454352337812142031630228934992623521480799318521770855160041598588638423278367434332285874105680538320234489192380759748768898481531863183362863188414052281934453902462576160568620327749279843058835303946947089546068927495636838705965929568434164491836296411557940376042382668756632767329313537877407501965724587251593296469177157397961883723279292435326977555773023172050662337323723986255864671593647473025425644037261673670833966385364966461529238828585901442073215882109989198250681405443591066378983711712497752095543719464662593602721653026594066393304615395521522171957038235924739045349220536587512407315293994445444932062178235466985354987936855879006317105697276761264018899559840082568972120077868369883977983009789040689452148892071625567079312108211588036642183572173555876950499225444357751720079006803059621272742990498467481906372138807901287013594746373244642984450142839581094036053026426078304583532458280833421306487360953423205669082244933069404189928638272289527013916529673309875111921926305840964338621410428267910578809383809833902570482806271251965332996657564971106338097611923243414962050795957476432217639408532435842188440824658383854208799156570806070529878624014650071980678128654352151848645281301891315709035157832756312115174712035832964193661806681980903717692018511068491585594887839748643764042759964202980965953936937176919965612213498305320149123212105796505515018193147377810057368421042415111693034875001529220852398222107337436752770012295215606876546514877872741540740040302335320920622093167039034770405663589835643492049971069182428569407591941432686387256554274815957448779720084917769269811109349371818549244912447907454673236356668762421339897641578011744298493608650447191114531072285243684346697758952745156113784897062828960360090940620180615422612180398601707849986990541218671372315985081559151795108042641144471527324813338014620184859112555816059071056778676225258668700214431222212980782880854765366967177804397472329955148273317138478934215087798085134605355828146613066107590886463704896635945166957069491267288982596202558772399712021788531285257928143030583494608055346047189774625266347391442316873062068537162772040661940033927511847412664831995604221507100248815022283610521259469234383531662385571690647888797464251516135896615777569440835481930893142293625649344899020954198128913501810547271735429221103662851404836512762223590382608425874874406581002212499287760174529513853370349754752181692806512158490996503516012810836677012758266293116463029770616284831678956694878163386484633730601182861523181973931895227314393709032283489146434032939726564419207373459568669382440708589484012785973681242495094545963889612461644692781569256854464803458078113070271160962265580229576544089793460361623542099411335418203924134621077127952466568660001034078097077115879088476481836147943139529680576312707332850637520072883018092704086867622225155638280865787603033792289936045220215935046986116797751655625544952708589128356480734258790374038800199737955841913676164289944789049834777411508734334220176091835917292017922074112796596866284825306204724590573057764450771810528108401746524604094586508399544142933113591432853582751387921583837857690689335171623711469966709346267320569548643826294697967615935984643682300073685252858855106682583771761256101443153076404907142384640171056637036092310556465261882871425462870016166956247625631381003731568198327470480576513435406604228220362738258757751181853117739974522984089285042463943414753963040099128334600624326880380644113203955516376694121043768032215887964203169617147488618833641935829883752530321291355336129526699457479781774180007900773232951824029706393224128843571004180958768059295464336669565442066972118544712243769810464551841172578808416517623849172027521492527710098491706708801927424397888208826992133290506192668924929764842822939252338146102978508047631888731130221668965847846105056464791829952577355588951155064082909130901871945179246013302459958321141910494621104061643585627492785950582040465988157086218929278471867907596908607892180238390953033762913162935416175808374146143909798822544141382932162625483900359064295582639051414653174703876994081158779635341396590322074943621604496812553312584547525757541045432752127486534230375255798669776598855607575992278749606930724145407542631821408789173650468627000531914512595566423847780038478025400778529167019842719190173069621085133687446956967547768175589370979049284275833847235554301707772614446451656843130289831406243525609232731295419272150748108883008523973868710062886140825983029251642715313730837434174808913115034056335760178765713744247090880372809186363779649652297031493057757567302821945351610243753521436864501320821410445022022888359669426977691104283671401289198346960992441531632056702743813883616059940437453288582284039490443386584906942337118373734525322665679742849746173806367349952089311425594242675009070308964516179796872848323219434592741190703444057132513278123574529931428244760995886548728490854875760463819851079650527629347645824366712054757154478681147315887575676995514921406790834815646946781654495704436939842695272598109342751416871611166962364952923881274148703557172153162206705993040528708646910514531723096726823921054867806387520888684196743705531326380848168997978212548101559519342598049306417830346501670197280623748676964882026689036369973644508954528811602703402888004635279425040845827405304364769249506369790537034943981682729402365157573574399474519108120358909056722262003165931031562327218181985178305041569086156050131452808429477917257721510011813865532707491540576143092715212158731950300480882983055069533410748227922630141125414221059815724508403454182039492666718074186852583768146040042148251533863907203270611138428555453048370549202447981552854656563099677591643112857323254087618840599549238715678921931761770490097497068685198750280109522312710974853882127467605096662616775051393176212825044712507294885571893141209348979147100468132327502562537954393458654312721291861978769178489066896011944551392750573283663821399513673273829498102397364481434642707596911719099009798296516433038938917203556250682005616798954479862857130781694243373226152372153035994265260099087364804588257648671340066222494755600412117199483724820621945406476618378299772544400084372587343171620680010441995820262281004482069834642176964733577736219662015023875688135680890559157803103158608257354999513388454445903017138205809486265265240023516967627791233755047478144159080840967576367710939535660844005945338870180738040508730518614201543360009882182966278872549050169316028521807971924352807800644140375608973184533360163115912753081905291462233896190724832857317337430993503336372785601948239046534786790901530675253612901435161213308426845774949287420471029364538224628465788125471941919235460795795555474978446329380731135635606554320990171636985660211744068146171573352482696627370380382420433328166010544013998393943620695129423303980032535537725422441688077081916640961956658079300019566110100548993389888192456461453703056647508431671583542565049620159179419857665283364445188070749150028209953224857829321311894909990388289556834127633622103992129119199405332479813919293990365734765930062744812768248326413760909007777199633206841301650830538546038320248521830771860304089354245619345554445200961037289284667849870007016573758911601843921629967676556909881299712695193199072721251494934172155468026231412562829855706262896727710076694913395097416419698391272517800038702585850545371242075044449596998609746761713768949613218287617697246318003857588462345125444071446598962417633920837322680770189595772191586469272127767787753068016641884394778020925760895781594424042144324464350098276503720681566735638742617663518319811699637296872956548901251835537930033055716399824093140514914902718890043455015757791873778707396748946985553340325344956035432232150337830357766885110459143651973907231594014044839078067140795970132285629433538441087318190958551231423018560253233998659523110700920885224315389151927968703678746520753506165085970220514464600731077749019165072226231882163786484572224981856417638270952832745484975098370946794075246135078951178259543004653713684994958457945470466439503769857594348362847431871522483346478201863206913138013033608511175051192357641479110313734805888391258731528105347523220448837100532307853996471442765976938752439807953161380346750693424840637290276753821582972364192996565897926167558660211912109079244337537495228806417500782990844249288103179202912847533235289480477959172441972878683216809793437046699206612815452548963966735348400399146127135349759366261558792473701761527912502546300997618276060488129549314502866420386941956840275951433500323549535992217328659098631114038504987329610567876795070349178862555125585889314234999219122847629153073627545666063531955652829163579547591080011948128778527650825215836694269049536508706387841298786250374809766226102894458904899748072420811455422560782988700239978895923203197888287182514178937928669962866726863432537874632556167558279016966301767935600575797794328089987592824349820089270902347000848266270069592686264726882257769891993668211991152937296081708041993210509366261313785003590779047152232680694330966223365255519955196889835258314605230715164941322596568326887631910350216342264063124457606239350988844812026118706633593740969251510759482594033711000824666994263049580763373513046369617277311892493975331946510020620324123092779466438946403240926927143893459319869739842691961923641691052704219756174048511585279966075251756084804303185004669578895389277285061835813921071039587215087733028255547577794586968246367130216527881687132559715543093931232571482858595904652374469484113411967119216633373347329671854219759029515244939289899205738229325139763313891340534727829052865875769350712492715280215190745130515379402934626050289062650363021323109639712200324694581692946128878843815991921058128906731833964780398731629811233944781604824184101765346874817843138170151511038826456476752493569418543102973315936413297725414498459519104016519282812286861641120912049450891203903267175115314303119409910736942987930168579941544527732956888302640849501786421921080647157942815467743061567531084808194768572907503685438933977177071719358496755617608645893365135411284183066048211692424358351032755454512295415343609979354981778896743399704361830642082581770137864655249073030990013706801656856986021003356890031637559955705088200406588002691669760648531371545546136117791213980669259411846096101695750431267339324364451219261862767835458112037022211019251990441754266894396851541814780941062103793295749743554020155389387682080072495896999913698766534889552333051981702532599401536739582260183877531787284143623646335094368123891738988761073024280683487181976646685791150957488064401267675777249993261962231329160352550344421568572804372363111709346694169380450546907059918746215695605962970758060121748284743080607150659235981192635876344710671304342283475615301423552197913058609062585314119952865934884449464600038306174335352352588550190244745896411379543972923154327676914156397742752339158975533895695502790797512928275771741503705949749627898548514315311779621062414373953814879370270853499046702404074861197956274809677690417119046808854685383327485515659589236477788010870721630647095095777197991489405628564284234094586366799333070342599963225881680239362367256727684035450598214476591878821602354069034930097133729598572442227535970742006249837117933186876672613483552348067240673551828199285715499951187120795630534226686977537419172239818939716983814124431352839079057511966519029545517826623564722091346379373235211956663592874204499004435909782920446315680925538933869154412844387065700998356000052449313515590127431714386466621801824775715819410354534370355340208811298822496174204387160313400849230596088213500478216121745039308309201852603633811337178201905134454230027804586960711382771742807259205284037590511781876118879806558805328620935057144115732842273406022115775769665834087714485631280982307047846602757911743452844654219585436826577850039791313942859652259551173165338971569079039752321825838113784537954020575659769652089637559753564814908705283372612127071850305325827607758204977123253886131343564555032338947448791847934911174265118189738154202573716480968067393667596174429407535311114469625473910636434861166066524862545206257716049016773822135494829835644759625307357889337395388204881006080017444212282829557044353205421176019275939010007697076263938076133674250493450255871091974715684246557768968450457219887309907382369497176203215382470403772936789828288510863147222355468870890591146363923272954828200328019284786551495598020470499122184175628607944321716168785732677712901373041021800276740721186566591341786966536979306493094390324967674863618790713727082800413377674890366185779937242014405910646961516658267417726506405164387540798757548196158004714006450055666972095194884386849200994814286735609081903948416423668292325849277624459923090389310271728058917490230695367918207462668637146250655054429584663035607405318495865753370196728486038355152536437368599189935839658161634147235240496720385351879807897898889366776842672385560403004559590384086088758372024280843807639628303774156470219306082468822137524199629063984603841549524468423963224887039466254437870617272963971974534184391375360746845601311931264638814540062524757279276835430204354252616287588074272751221444880721158807767267986977361153755730342548149595504815846723254383782424509229666837385430154836989238646041544188662943771754930260024677538840003576249292533956408635144134862134322629256903096973091732373471074051762163233945243434658244201286731275793534322133230047970641378246435693414893859222325886149633682236679777523525860026916298034619146559844538444695284932285553916696622944247859273469605769434949798820855679958992895959696682250995093881325947772877845064248649966379446626939484208344017617064690432670310997472756978282918062477663555345698995706260922946947870089043034217229992108133464721227364453886209468178417816248818703302126322239228636717652394035930046836276533289643169333368472111091048249253818834032132556256070985306062104053069053766057955024087206395254409443551473864165066649339199480450169134194276204376924528016492448547328448601858023549053815371479049128731948820390242071529089041526007905118519842003065990928167850108203348867266565921879418001257318095043780007389083936214161322677352171401952225547028361997105621562629188538463749336019397417847184743935536830930058077174778630313719230750643391705400830969113023566795055384274915577494763830089243306982036963566815555594724997061907497760297369571437332378869675004803244295982667942184477061705332904733470116606341003556270714434517136114759441462954214976976729564275388884440758451848744662527840286122508537549914571285960497077052683835362996381090900058371761088355309058397464695113377284761833220369023539914491051843331065294855557852991471779458313036806140752150736964427327669153642993591968819340544761995516495075298113038701060586229044350019992079500248242563514318908212450386184962162012581583827448898914108395174199325068263064777794042852779187052948687609898630784743288633117127743160860990764600408622711269716954584523400081887489518638093923418740892034280918736849224131127492457547401125471416662573257114604406429598806504933085939331916009743477220129249901462327327769407590648582181400646773352203237487891099609268505531288197178458545148579008287252780000383103496865374350639565911920855085107093367678468932069610007123016050096802613222446545718948688903223129351596340833043984628349768389752044678604223454581007297882846382709867217509318382396902350651796422769239921290891010643914458339638438932577026361810998464362185577753155114259558660042341177082319578228560153976940054905909075885212818236727766225496766437234182065054046069416196023889285035054946813831244016443143220551207492471916803483726835482807826891394509369832780012490591548618313260437912939864781428137718141661090244472695920528457499315257175156158839348986047409450484190174280814645566610900680145724757080695622734002001651772093114355138975392307166444118110594168662691656915326281745003726235735109017331176061812278601149893104240710976089380090252713260989234130261573944277662853405212571740419929560639578380165364971892104504026775287233530495440344264035815306128512398028259993373301777209118909528451348501004633352723354350985647199123516771481865722418124439261893954443211087942169325986530907707386908856394590976707781077623221478975320054326754884892312394743485116272181423516209704830591545665356201608497411215234676161618910565937125686920953924417054300415727906371763841073668477081398520874385791607415202143191870416186573081295197055354328817067245175787333610602542281828315037256616981486978130269679289074967404012672232406745814769570037984091094576590957731380165795193456871742345890260861436496978027315397617272970703043793324524364289887811504616640968746251925654551303270056016962907994819030726681853408747425787259533380269561973370852183710485246137353766276028036892102370306068525442150472654021463751231761557302537432591249758234505960686773608474821682599095223075286130520635724353834438474678952187660005693763505005048769875046262819749789687340408017205320553278527594628757660013631529452597466003110668632981058757207540705812161302424563681281356569687823821048134767796941687736897389517968247772880505292813658034332658036163843557697229243562102757970827805931445904885504395115202515014477128135838254678144495855112336859346706791393382095314040203088002467244175053729938468903364298479242813779326040138644915636386924789219707365587444128611687636386413146024150368773964319911516966937339898299119717473842148924351093976846650668560552845733183177511806360760070403021318108057518434314085192222400062456432309746399415638200677261802858737802121500668847047082658337262177334111721375033612961558083014378245492968830792175673825150315083735009551457674643518049115006652591224141855902445734310930675024821928954145558386926045805483685241390828324239555988443316598550889398794889443545536303311616561298361422244127244410287944388589127343476849674712553702487751468942985301491768326765475401471890735765365221251895482918645583682881877966819345172809119731504215635750398138980207500576973658924039974623326157977232174605758566723676892001052139189676959595698926959501060619813076979437243418914164805869166264514005752093260514901881518756356613504122241172487860499342748616556560909587643245114443333023179785074524946882281460968311694460065997168157268360103028073458132749509380779822548177598118422553709920253930866670059877570639050989371549482963197358553085613029179819303231775641428561885087614473024516819773711239517581612706021165401443491602737622200131542974559321138656794560887891072589037397488558377414450102672306966609420262514068469762606071403463579377213339306345864542223842404740989354939290743103855490584157971231357097700075210000703410877986322425579917093529103392679422423696223864615262991927523026710897182884686770915362700200568912874691733100122378960628427860426479872559756605663618164561403566649887592712832324498487910270621504900375336792868131402785061610538851977473113866992679141660043097594460996642121741165760939490026058794450089270254701663029404658080822406723753989325307720103064224082663496162728288255630171053735532029720609394277518587981836870340397301851504150663113970628366994853365237962634072985960411503244289693816836035453588907899316248913739508110697496253599474778596534908730466317187198498233473888963460668924034840610732083551265212008074379896297875765776244954113727146837779877051460573150323201712384329924623468978858261099125626671269535040147684156187436700049629127758146028082263013911095077664883604793373062874555327537315845575954801690611597328963725767095859079380664213487706250573813215697330669050205879887841637296566809423571151331379723638534687127187235762895808385965696850437259401280881558940661170955423756036247471292324982927297505925646696630074298088482253597516505112901284287563721742635007660363415393630295134504686330487486582128088244917583933526176185182997972964780190590218434824514239047127574461861318357194666394241456211745397912755704663638127755386190347567776836079362969383281129539549360500265812037437445429463032798282173880679942195065990627560677943481160384696811162316632933575881916787977630428193227720924324302167270158977819411558131009255502472519408884111610900574818247460592840581787928910238450304780975321337051408861261548673797174194626986397427329725397633991049043311825221680419751340172205063320548025362140620006826859854770059196471321531618195061714187667667145044141371649554884969632234494993805051654111930513192265782766912196786962454183136664046273248122005901498631040421620958803704852700407738580352884351125701668743724092446544608892242173682104247050196926155356873182897539606622700289400249991156451573883774050175318547475220933221872766370187259391910696806637001473385093125350396052278046871955102349123005607284164222479335581209303573872287778275578809905155038742859231727531802113756122847238641216430702893622328811537789126399833754621873582975303582277858601131365641679316939595430102128781228832638385104491557107797453413386611102753187181957250786256678322517214877298915331775549729133034622543649502620721743073652270540075945493104164321481705230385986143337390993209649276338707710353766258109129396751952031714665509250062885601716161562273890907796678536632483552498017057523962065455263788347075540061281330363212326263095519543550136159094736806761906379773623442499423592579714214191475536650986214101050515273478817628502557622426867122840555030404759016647650453071439180229611452482397732498154744691473466214421765250312931950651239619110693885290812035653505146321696882288347078161479061162804990970059540003498185760399251945012720125861822980469479383531057333203187142640618236066730988628411214203432707338054986023396911675534926897055589527374727231140749092121149104539325635454570316586926745487589721776985383913875009219070574687677803168761680607951155053895631900823003638546916080011278729491408502963564498116581381311151595913450082625900962743798281044811084676590044233534994038718428708971885683257234905466091646775191557419317121943409028801528686684566280845936131726661490096473924704535639508598052600168341700545907838657703657694965472793470229296337979711958517553323133503315339971276757873215570916455586809951592290171977948960476869004928872537390276152679930297582408699146718704815555227814313303304851051611915559857161923571899422785928662553627892995719584115481484732937555205975382068479822924226004197545128741436494219339472688290622458575240714782484113073424465180216121607036069316190395957599659353225858545163382841355651259730850757253295883472792425967762177854971423459624902559294305887011838628391378823994759248494564476260221165831595749464462467269296531615679151340874742748738777699414414169137480632359599979658776760940429504886278442403845742533227467463803667551160001416575810402030714208812363026709162782718109739258627047780222623883291178106647843352080916997224804873812516124857029287632018897607011811822415248501190679281445286718087653913038969570695504868356011432227591913283604988730782674673661522232992910416279522975269234140756220066391398809157626501279182440006907522343948460655938437171485254820913581504510917206919477288027134672177966310102087797910366687048818134615945534051382475798628148550202777523678590671144665379793605958053394827326811128928767411974018002026568299187296039282940501173591154794027675501468740049157133900902328111028897265217459391629297295254194668436182922450801418193751354167633254930807614562015746627704421294014329109158627985028113011324248073721414930658566918276944329262046811253371158782701077126687270600328893041483518444033693109169859017571459770501876394388974155255117155999365050135889201958112461264812088487939469423657351372729354584035462464703928713913807936257590001532187929332429846846201317806370944060509896596886096602342262120818287810358720767079678300926678730091474602928386342619683200094322915993895867989190340816954768562359269753926656735516552167498907912301011700531152334334212372765326591312455462782633644994065115740673746866013981449532095201667852375765328195918441089459250838057329496814762762500435386502158739959842123559686500716556669818905058503216810045355190706771526997355668782069902108768806679137824509920235269054265401725006744157259431412160923979117602973881195925142068393613355442728224226518797868908827847576077129556144104243410276998030572718165490362666990083057762240451471305217122620603839399849138437009591965870072742155746544704769120997449358415415090908189479845248939480881617662268355404868943106202052667808282774963184291332101100089900556513805503331420761246184299247897361288313720419665779228451141158993618961274359684130300392746947857980454246334423613703284129209891016814461657320136175648071802401800056247395512016697262592767415480972675590991921986979906843216099166919714883855637727656698131002278201156493838355949390068510215724259475230116100322536358050775674882359936354402175859371759589048087107522234276398293397245400593719869896253564643599915678701598028746221194414714015732188919917895137815608472292975251075399356746360807361304786640241449059441195301242367284420227790822841047362519714531435284549584212563520711336403888660025010909117136377229418323404386808207643718668026033956625841239196503361615992879081352146018705746042042971217895401129685466709721674376345230900435438962896788448326526135039776938897209748033205895120998540958828038926649580890973792091275133310296810299582640751896968728716234616285368723479766037523555381408705251481196986819738517001552415111275582782804973672179188121255812666273833041824723667984800534378873793505075589451891197471830992002173832744115553750444126595920122191038969139747980136546161996407342976397005020519348756373636116100965715073276826342352298208146133280569332299361448221323571351741984612266753076596781223540661575155959264813343822095830619353525075033049168283151172716209872527844719938177368822689030084532116005284288395394490874864083529093746190117292389045290286439220081453497931273279665205638026988695169176169272135961442212133197412794634023529995056636751873136129254317301552615437211434933826412755105705007533235187352236605121666964960074773807838982128176331491650779248140130904484979855253617900075722958125810278369171937452517633070843954991834869756451736481537069872109978295825686875264537954960650678230889295120146856318490170977068542225956113631562488782644963925822107716480202220252357626754154807956358309517327663423812943344910468200107552862230078515903786183589369957749539763138916330074343097311312423846518198254505492905961117051820987082233914149594500008451765025273764967661515931602036019031940562455897418816153663753783337366412758549355644090432448537447137705884682434988722085028271564065576307026565326427518974849225742270247247312249916828868020948789185754053395452128555133189131510199714303020843225603321217752733317468017440724184165114837893848723900458974848726512568428988204282863594278107673500549281040864094565778834842249986684681581329098747534990377384672052290284484898364899143722610860683420068200002774299045132306085587008153763249554115639718138651924271509596336583065427246808655641048867293358517578653900101004624561379545027166035685595291677927716839536458808103474329574287461155603248940814363014458834986014497386729503882819555099251620431551248692549908290489898561788026127764204876356710021172412903956193077554761901821915768263426730128874961138393508317471297336381823111160680204985424044792774896921104188204675350024671011243405412225299986638614742072180382565758571958901500789956679947391468451006922541885736203050044038359175745799639840120159619309201356512486559948965129118048912826085454787624569132899645773765085939173694463154641679308105749271407394844774053557871157833377483374623470019698730654369634989944228761565147238860049257207273131179335985839885299607347631983829187634887687214464498719830867413117328545249547595503246211666086830365982961297568142006933813444006084884304125981692297241049929083734360296613373731694385300160725663142464112044224404556476407989119836878307600130123618378888953688300892559608573108640457847571663631855061049660887830680841878993647701123985919468503783431696363860353396659909683405110359955207731281784350681567933655592258747561027194770644698415226009471147535253827091714347252601212713825826131083677928370828545697824017394658781962006947553042440710955903374664317237441527815503478743807721113642244995506808691299278864615402368563995965848660824905526965459492134057187712004843107228149351959465898579609748915674401768624693541534206621750463319530726181170362161459761279557615747041314617431589696961778642638800938650121449131663729213013274007401048903699675536251638247839509374965726580636627054638717456791811902045160975385700156157138742964342153872761296480571040784202178981502919192563789583500843977586943336741536760846542642783400890310652871050212826017349409153371560341403576496390663990994016967306913293876712231643874667411266865912955031445398470679717360151745215758519617314713240633487912935270723236769682351477640765503825274577987679539747579594068746357759251321410545551831048698497717921223419334029648986014743579344029691521438917080831434800991626121127805401570816056296409408208256575883974735240152117023981046463804329623706422346738077414848710051303429551718538869237695206094140088074912098929449315133529170916660994138340597663042459571009748528654684888409010380732856683332379997928211463928563544580616538066042854354880970163119945555382653930009794987630225258705247743667768252636388139346401550856444459579575996925228943777392725813409667027732902641988454814749286133501777287711776122450171696839468912471977635631925250452613005918090016924200007904680743899445485924020096036817581441119981005789808900793800005912181082981370413662477154957572690300891539970686569399114413387385039551553828305223055700036704905420922713828658315263628731877151601364292715330934671089348650560378860049467189861620486812743543889266749465410478568035461588399619190665938762971071465212316150239430015734701136333342686906772227316746301588542561817213056143225021340325415008401283684348436798131214822983382600775531481437044679793182095915741857784011266912296661165076181403256344318184405787993436115824119110723525936528449212631504640232911412524697586052405780568599906963321103425932506214997623303477612113985248217298761822134593318719073472819306865783025254528865728143799399043291277947220658079169653420511334151735430906468544928585462643913565442271559464224647575213582974448484864694498834172628405743228377053033281027401547147718426689494239282716895715618780378509154141500356506333950840836373591106848764005410859228908077858857748329947152395875380403872115548447396307011259938769146929174011835894097876921765359094905030125463204227970211329961577845634469617441506565775682065994725070870644355727593313559581010509525618383130452149682283899229756778600569749356429172290577542984888948246448430744582915795530840599662979043775011295767768327430847082648815442384939888471923217554960362072498826328450022783265833609674076318828351064968670610378732101789864717707081777174042847503177572533004847620713861396345670664126850400663815625190795463864751051800395796100103447104087422031205341086233715813557192259006227298083919709452007147814162909532710898171423726010211336112884201006322297300647378414265159707123296048677780179583874753393708155606632811379518109534875314547111974888465810175525596545191549739646001282762880040865349424772907493649811061473066184425639029798938372070992101146224078675297725520484783830577565433298057880855736775427253888504731720855888977674089318062631604927836065182530306239019783632541965689399919211258571132093367801431061678237345097262079532475189093006035405948069523287963700654017774043433809027787038647222058318045369368516182658597882875012048424898783738531714725581520514623009610615717093495414287012561185092662481913109196492922779059632705378065846307496411026663031896432401154362811087421929130520496964961084976942989229244291706882189613146793852219089709884822152194373504742168447261606105024317317996150221171409675248324660952969684608339994496274090633128248437001904626338669337045170085486450227956539825657251040110879971757713763054074420808661821407373436329262625338204133984511362764544705256124152998912382163865910688633412491932110102784429401229587325254181369928066191645803778465781138939744222232908880775660327173264093015764549982732902182673231828522730017764788163822162706246289211554822579944940182384592928955406769752587204555343612578332584646610595768196591279380621347401057857808580679879704632370212301158704592528610411993379191944655571547774814052794720698230886565165161956302330273733882459743781381927222405331654142079095492958015532947229000270635082229876179294650170555343749847052355264534655944972102325263461521486251855541129647020719125607954356156003422845291147243923769610067810107467954559608690068894477261355849760856519146269236884958544821885595559344443248795270760288123921552842198746912957810527800053601969529918149467288787345550369579025787180495869630674758563755908488944807651190568741801078317916217543961557772221538082828302189593388311033618880389628052047864285902569583517830618779308408413681867754987175673081163803476765104726388244374074993245682870261882531789934208721000756838137371871667932426446514920846752381846362124912424260577473055945897376142120615536502545407138553198680393194691805085025436433937704541750172263061575645986941279003289693798008761439151450612298189605782159153590874215415046978794411307342918116678664481769009980803563847601960104931204886972901178451818942813342062868465757983771570115421870297516920498187705725523986783984755934790130152670671686949902029111940769452021958711379517132002785684654469934435223601238529872444287844613426219413204097844424708273618999982995314850992461328181319486434031107413248121584606999849124241286439879965831308653748728631442361213124763207676690755361038135569423158632540759308381419571869627664049859082050641618387262321995786231480537766150673849760400410420257974345321772739984877023309910970081927047471063068391776847351415576075826157298993356148842069984528871148926914339342233502499204326315915353141615331388161890154231204601547183698833401265425921762019937327570045948374074163880067635448827868609031663877934558330500557903083828043461995346397876876522354182841800032970124857141203799391711559968012828386733809437904114045861762950132785549019472336883568968752332282761533033195541271677101183047433366046949113744177053591904040612466355387939612683866594186051486354050100481200242838704818413110754609767661768833898627724682421956402084958675830162935913718372694475105979818833506268650684631433267731813705390684192786945137440185511392072121775740437601297089622093197214412594544186798296909323616441791721891180868133123766363913703104992117875890848268005509273843517587697261587780885345548289276560171436167432285231919341957704875687678207571395430509449460941216481591863085320693355315769170434200622714980602517277481462477123898422422826318275895941611124582144930571415946903070482224669188850578772422202182651234685297548631022316781018278912982235282180076700873323993658344750866438946550990255829688340736527622073714809952203007930255328815049294173993753509500682481829078223558065725926920826658125516505795176070269183580361733877327935967304571515578862134898717987947661698927039461778883788003809120345290867087506574071353583505781866742048530884962879371478226493691491601089116313263388022625446008613801387512622662349921057398159460480317692229076865647832044928714919214929797380951965919310829807983878703454745604965107855987940375454525831066368708875840399109281390224939336080855936362754912413275432295869511440378272381395685025028110707883026062086251440455702319186841873960582870172768745665210072408749378227392431193993578408737517999789737354256074262482568985532581923542058158900562892677498697800826302990960035117168824522647449808552154708313030285460615641304422604546093657817247148631325775110040498148640930370114472567095553825214565274527862641567930323205703193573085433014632247399156031543951962474246646257214565713263120176657377518083125653244040398522969964050804805538979735537802133353486184355052559517868407783032623722709689554683392018377268564275379505645293473905896925032592902351207994842166804649424820284193338114791046119497017367198542283708388112727326674424055456916087563015596038179225880261913200191883677498364439347249227514073109167604154449582079359383632104147884148598020516171901405131570123622935068223286419476800828111351737523669948538068008294208837462198443684808866727750843108552482859386949340876646383975747252530583346328357842694785015203096436975415243115103473283548208855921632852131363221689985230867586988391371012295638031017497937409622592447408019414233096525123646792527444362428909124441108401524980573227963172174726949085487146635778754736453510659000517847001251110717742126691527517733774950065355912953514465101410269932188660077552868940655482315323671559469971985458954490212560514146377310396860121393097594541119855458051573290698536786106604904137645700760589164135425552061579759268668624211301461359011560079400988897188404792218579800892815045015469343338090589337685264082756612686548062638771722533463593701175179114428915250652198399595059605443466559803280309426540984514997545370386037440021784904154653400597622055414093423348787440775045137826494641373666166104686152289640472536811403159795715978715496750055852804844255022597163282204967875703211216761086357595655441755197705646049760891005208362638231064840046311662860910926498126419587240652794520252070145348163918862611777380251748792556465763374666594078563128455553011131692418814155540218392616188966037614491342556442401511740076937655128770067217878712834119492782402062338934739160096382239921262733452564151957380879370743531119694136163445282739898301651554103582012225242707691803597591081091796161130796903086658365778963596535417206068409328485292967698087685111217843844388226497234106667388287287964006175226040539378607694281179449420832425484335635151235939549325681339340771112962645225467015190628003883393549516592103617455629954841856706107641895484295616922225657022291476465390763047122968560415193774679569022438565095685743736872810816260965929340941673747777038532736009001598033737206167559793867570167022555453036357822468082736227521036284177990762072514916448365005609777552271598468917489431967492564778343520506756655402787538733531960612916611278929800742251247512115332100833511394874578436580230402231428637705969148151202298026718501150231704174393310917250082221852588373712338152402005262055403509709196179795142397410877627767315418175247381419786144045832258843935993442244113710398278347302360089189627062885700408192816035792443058789707612194405913307972316126599353779626170549155764400674294550861791762028395598583548547433055271645952362934452569898713088441157383393224923325797091447688253070554641229195873635072076837548931329746708870981796849225366460287202630307096242783049001761076663110820719691375180923911827353200104062588463930789535126064195224898253743474411926484018499336101241375905025004089635489139212965269223398893330628532702785606790906358835989026027436447727820013219666373216482177367236221201664785738500788671474638550039470778389923621246023331022981317234053640438082513749237694176638767594175183931449326928742423211899044630404422281510882246748726552279203011144484639653729314166125331071071674847471572693210257255208980738084173304562149251023168519408819753686429417789859148654804524918619649580955166384239484998691349230865465558045804864987982780810561216232992040390069446076033934422398346032708900592078459839201046434251709476438908995290405391991215314317688473916480509169856444658404459558994781306515728532717975322865971374417783898746469767019136943848226747653078514794512174160338856592887230926266723112981763717909823649972548274178490828871618729220084584864998497818507263757377410860629566773722726726163790815374983875324567466636566875294579486389235292112411687072196848656290204828038517420551154529332383187813135153469329889028132734735976198881542892088053151149031086000662088323774076334261702116549095174872291023463885741102070401705913000373369737262060062467824718482777511927448563860977404200896528017041204604749856795076707491821368909441058592182452219336168694302694259471412079374876638106844341660299958414290747533127120230178272708150981909545907711030800133873188948120818284304250863285762148991857134434202909903200905238722059273868310556999817178303655737333562630494042640476002884823545344943553061793589159130686266416360816133628358491942968116173634155536088868154550270318461497283709044534170624942097421591241752570243373392189477419494762940368980516983699939776613383448113258916100058310344088206445477522211915431781336267495728721160061792513408800052335587961269260707587624680184976935378113293016961277272276470852101325194400426040284773932895040572125901135885548628110524523966412916538286672096427945378350525981876568041012269951238884322898085200972228896985875347867535945618707044933932246947649514166970211267176933821330568805093159794752504117495534389437613753373362416567808161563393055889215427748639075265705008394438491840536206549573010890839401967097751756471283810221025268152858413461266448377049644602549593550176767948591281462790720006678161565363640285356961137416122259991834125989797351031475023561829252598606067142987830583687735758219553447001279825936956290336629010926597477064772386445604176073876927125834784872613714889452187715503588706388082945587900741466931999736088276164655156753902752908301059452596175781414445879369633930296891710933541627391907721217019958928652028776518190183052615486216523902547004357229272347456701348899775038695552517439888150404266310077253917798904659831543055670863460168996830639270303959656503794242364712469173004859797234214983275150882215052522357004732514762542069716634514124265556301425484250800443574143732447445999822203477776070012320536149735188740944252505275541834103791308014402121981084454904653339182631709345143551066384810938778292883014044379944250969505125489102333383897535229992896727870915317316400048039036151206345065945244479898778322462860805961964387634868040343947873070103637639394848454201163096583542532987151093083893654126097961255663496701588454663997721039016969390552077137616639330217237871561242416850068309274504434125943702726381626149279902286266063428553087822195754767173437394834869984726693717472959001603826260558038099356889713037585310500032547559990722653976257320229620840092758823916761812334078904087410405760496340331565207861436286139891241079108200142068534033442577880423131718867957518154510620397493194859501169330342866923329053151009490693811571997454961328914409066216607093839490496236541661483327291107915234239406313939907339965012893200637898289761654021317037499882832344314940162149165418193551748273506455433750576084400106866262189202604088535895044691842954077981554944702158579364201864483549181568873327154793453923971284340521304093038958276209496088257610376230486787780329819878989800446198154729672925016113447369349786437942347390748037478930716088656422478305637445352557018584512522923598988331655914193425682422689578253291635884207918361279111019464470454592872479734140007945837337112706870871181113518598861682655023435875009544779820923005257219291854251131956944915520115360032888924099429404576770947931595041759650416496588007677861994116595879313430293001517979188480104294766645730005942421506620572096631411384378249146395376504170906264580938136381282583151030829000115264341688397464321587602001514595667347717366900654277922271383762221012601618326609654127150178761600789157052833786293381536474826217024019545579162159970690186153294777909899269282404362970621715236310136452720831411945887815694788006285309422298011260623141635328423041852699999652767117198899710002563594461570323044826707781093162002268023953804596457946407647245398150801290164576149818208556439418983404213411674284822918930323906916234714738435812352146733286273995374077971241490826832441762444944811781084841100201525548898138665777257118438712049432502483725240200558233585470245167921465405490959877226216313702450494801852741571247324707201233265297677220556152236529520811818705371181639580824406989255170484486218061050725568058986575412651558749045045599377983782724179710129313067439067276070234647401687974132437645438671450125531509965113428210251637264816161622220622691845250476763282847891252226511579992214773604673059917354786064253404891079031333585619851446486665125074898906643485984027487314801443893211534761383543675121035532941177794428948020309444929631240638553712141328913645880473569558400635038630170667263942300980188643296490326828964864239882361607745775249307022479402557492764773416789845170424720934556958254460526706324274944570672691806971667064390834173326584260024788595621782956649417428238108615708786506132054495080557399543244448125860799923719331910379948435718440951000701532843484431779261600182907282889977273807551123025895374800769211856658683159354886493177405348577754696897398970390966216702781943434238645758886486664853652308054933381262508728049514258377877474523876677686321924793755561105408208858486767752277386848378300613801356662685862932945299245520883978288368065185149981136872489729711784080604869359172791048922918953208860019847498734532657154144087210934943369611066788443414217737060916016762121475700109245985815154110699116936881974671094662182288591240164824906775936299340526796986773707235367459477929686109310431188032057375682656305790353200419897710284402165708607620547545582981518601734194753777379423008435872980227373102853742838613837509629151892708050893862236109893387111032754032368083510293135504042380081880043055194390404427499591695201947573545038724333662535390686328599462748524476721800328133729794253831921448069570078808488737164288087803237010198200624831158657388640456523429991260628295858876951788226982240909333842001552373694382619703439158308384964584047795188959968925462970363168561958365746144473846355143685691692004878522627358376977882391642227227771021670643081349037938223998977840137548296248674266499448239043375845960791714856814259088651339723138232965920834712446696183384121369615939530073165570177368497299905611736248685904338072175126849260094211775860393215658819248323841171252704334172984067089406644898509677051642140020450425193304072664359033123493610967359142745161591205294077901864779516331687277472870781342820670359654454388561028414213027586783165393989158250461517498626263708223119054839313309743064284141505441334398842337244460886729305109123136672983879152297110898986520341054845868486176660869747564087807729402945467340582054515884633550845943174453349711929109079731329101543075398139372406451860987525478327032264414404848072148848949827092847300810673404313750392384293681943740220537652331392031284499120121602274539589346665042000586356363460414017029347831713609752669935655873436421153948866913344784896584006570862336649524340837260560342165164667399361150340743944191075913837241120916917499979705676280583812552893038498773760252056727685436000069126454733710520580223686036166757985176127545822664132399362629915630313408849770787539881192255494836079855332295102750592251577709473719857667029692160166826976155536018176169302099567200949846527541994829055323475882897824886954321380739269004048909165026436740836716859381280139700192424457887861436519680162987583169376142934395331441715803618037359764800130068637525821204043841325626626665414395142258433973610904830632161923020539749588982427054047757117860550128515020601044150380555390161313127630614200740850960182574156816888425662434498068932782970320306234998334074313019658241887014520724512444606527508269276132016591796196362818131386049266890823305329104503081255122143734347653553790840289081599210679690080282430387623205659575330724832411800022628694992205359203957061241268761761149180398734887690537745750186637701447662038503289389063384479873937757985623195401182144128857899521539344004839304171839213997107484365563191956497310718100403621754220991443513768488548027364292876921188173113059688039938753548848281273144813494921471308724343162054104763754638158790365677351116929506788412494389695342430312459876526519086823451833405163723190177559254343063919112803891075892501895036996998419195452496942068798620645593463984521026422707722282075398680879370076073519131745449041216117949821964357920103983695863241715840081457703513487342416310536188793591858248455410486830003017332888321064531608253053555056134011354476099573739171916915143858975588333437252564786142270868465884171264594460351933747363894723355767326901192641748811763231114661750703721919339172353619276602626832318500680563533689798183054524193295970699854118902143157305662670075009561358745303096751946333310832520733136825267789012773196448869232532586572282779863357101977592760958772089394223504321592925025511812628277914785377546211390063633654887419745213072432025775180156623276770452312636972601976535072752514577294843122930432255010728009006703612659796912634983591876456334224240543702520882523090062645183370304331925734609628168287193380096112871305578954913235237345327522842878357416487864373889796540055630262939258231124613414618124160348484351884084773493221131685295983268088433140752267807398520922428603383484075542825747269822182360429862579533948929139442009945008926629467138038368301208430105345937074873533542776910653504092654522988601582329525637343745089613887304896854916223943432188436819291455324874276730338760787279733569005557044831329934588761291445979278854162799491539689501013677019799945265936370778006855431718698504626409232180165038225804896748935773442261983309089746574205727428114134503903253190179112621051210091759118663272322917553261248478152016240926953646445458783677303018842693242654882964777389523184534778360593476564079647913568686050908937590103933825290944742124701025622398576391971138553494024501689980141232129198762180712584400443641251392116061494638698709140507208958736837773688430488309426425857010261908745357172658353515486233555624047885790723823608961607628420527596542019957964820653590770069848854921827755848389001194093566573423620319776058117486652483008175217525174024908276147801589338685235474908793585942949557185796258935155173667113470111193805090443244483547997028673108296328667575064427677489822173282775935817672261904880288912379952953112944359586899981843420502733048510076682435342784433478700541913817067683148966734343630159756137940490459425781440691818460053316652168825012329122002902666793237247832735775970804410600823312653052239924615112961068873360008613291284711901803916178819645332735321796091674359297716900613320459229646760060670635857467638412351224412444108852025074625540284859702345140744024713145129716208877608993401695709347571958499844975347822598910870735845011868401452001475336504359161039955633256052297623196188218627044023563436235009113532675886573708418293861102066192547298658272341827513177015569499742818360618525170387193788034030937792855018565422729859398938628558345113919914740731410593682502486209768413384217916780240329460306887936880118619128212905815093754494081322803678258488159514517849291301367882624521078110712250547262369373180619512289988880362093682351851348791268446171132537073172114997978787719483126245641101213564353106353090797666026522103051380250490180954921404209949630621340850765182162956865524781962757647160070921288950588897139495260691575771537054760119761728565682067406514727913862062907131106678931006841289268377249218453795929428018716580553548974047982688647132429377536946683355274106803327665018440441162783610074942289310144289905912377262754283512476677685247948722628130711723849501742230365287250221520844364293493151682064377715637089158897159973844823303117996987262539621121438641685091520946424263237458507854723226303155983245852907286183376923895669268537809017428488824456222416964462146333774476086989487569980308516169072534363857794189994434231381701459814076202700479269720844162273454763843656116371092824266463972580984811356687774305886730943087445374066219273685440777624959061241586608986758019099263297558530199188827681385802649679491337581210116990633723028557400782776582532010269009983606886444185282358355367130230186599109290349706237974187482396598589367555527984708730944550334953913807627241043340992278649623246215740167870041237560392750008841284380856807408579092149807606987244802758914772273062948968090722364546781740572112972401568121135503556827643249896626251700523978748908702715680944128801770839623274858292144774512276806632308943270256019944214130897846903063346689927922966673679221823240793839274285617103192737091307281279072878400626762863185013595120193708903026704523027534426537727539574403042246214075773457399646452992029329885965858187062094624724817233394459967574042754254963950406271833455657553756265628551799982023039614787266372328224033385372906395321676594479479590804264318341255188692417415172818566064219707531293401445521910488894607641424083717709402170562733722271727169636174700755357960681113001886227209002270622849793420767448516842514886758793838271692611676094145243045885227713706038613749277312741115985835646486125075911045605810974373656570786387037073423965276041188886049918999523650134843890360383527997064888206479034623079611004247510416779322778842534909439564736973714512870409192324908115550705688302055219269785835481729646440194542331626951109370029483424131051455031222104888915808081117313868595697001266370303950864019064361050866758963174296958991511671055894805293434040442979500334465722823727462840397823099055768429829056952827295080271987270260947697389320857520236223149362833785079739942655345042838867563766885711331844511748271270268109778963691585705502963982670498411784553667203315210620024612861652850469519083217830947071367498214393202561227153837748387131518357912550016078721388795232069240779006718940777286573264735779607278795287371323465183017282015787800142794778419478249384271464964956668752107340250389782631708387685394728793520955805562062567444106393434681274406868289628002372113066394692238712787665833068329288832249915953428963214524884972986360928813210177818374981084281547983904313520235459029551113044703833711182168718903156293716122007561953383961585607022747975826014982013585549781405834861770025921916338136141603168921844854246628203292390445239839077758550815743182331992632844538275883197872959339261813816179440934401652641659264077615010786398375093999883169348191056159941080476596970813254704811170661361271149212385950418261833910326134557787802149364871939738100834028968855426664046733739311369145683940121384633202790590228524505141421806537910529783058027561450461903972088543981061950162418373837916108899833801059829235456944606552580093123561501297668014918840280175056087471183850658431401098285214071858818843444200925635382719728746627995556954979841316307615844591435064735097082096495777104095251809817431233118995490608619470733088269955740167495874804951443514785272365662452682973881379283814703225957522757083619230354634268197105638868833892105834401202642108878814744536462470197476414485730745329204584183596326179262956797020691640162503138623432397009204093249663083562676315259669228796666034738683983011926700914974300957688351967124826812756414256299339058837677790429674262215883976237879070836921018960419834426007654416528169252024214679187948573930820901152460158062791727072561157040696148107231127789525146025648644235930735139463444236520605994015899123085643887939258820985603775193080402639491044340845773112598455030388156942408607055850491948814907383700760169152110229606069676214671522894728700607823263797697951628170973031757666993502615492555048098182707032376692972137464873907041636958855674343693739941887974783411787468055871423402791036185891952320190620310208211599219764817483686591794101099198660266300759426165862818418415698529540427378300402462801367578982205024044600051926054123282428395457555332692537240077169225728501420320538258817310516620632442694164721455704066892760903926303606707555479180508510784645678493473553536513189471617443759563845543410170120030142453259355185229807812850277669690432572786589242269997764697524563759725020682309156912087995661555238270249184385496350289007128819472185471301429000024306609022253298015840630555474517451764686722132493000546656534477575613969714590757594378864746655475766485570542281959291314256582721437911737211839429835402297592575843678185921565346422011103066324220908105173973590780967038808409547996720876149072894734919856104137883192659022835066637816862723758822171241158373581192796803071064973517219232302451865375253519108242657529586955127759210421935944410212101697745038610174133603774651449122842509206784434289036529768422326023512819816070700266583260440013793500373776434171303698060696017996109264930927610806135071394738263071011747250159067415684916014566599638421389877561368280578724989119273165490295714279934149579571957265687302295254872611927817610314963101280010978627041219654840161258678761910674757875806292705105155299418767064352054496692379850945098079684074098744938251611895917459245974671512972445760250517293485518358989042161153438816277693456895167052747665170968533328587498257764366986643497555150499189577423161163811338157059884576888391015531887502606051145278915709736289992825001003191861090976007777273068343163011615860422881858067208675638004232199078801988167890128310109624442860488520792185334958669549176834337486452509161353610078941150129806658629318467935399418581106433658067541916066176825074951633498272360054747900939156879004430066259621001191929596120420474360526863846873626197287436293325612925993291768215528527212582914790930134433147191281736394456443515977977597539230424020995066884631420690704317757584452000879180602772809555292205269431127327992509343460327012982153910523297394144666992831792254114686488587721221439498460975387720890139651146820790669957026323464092136864285579349555706393792313812874128092376172098384262453200860779300971549256639545097555314694383206970494209750872143672137115070985931711580917524556975735173202978452612005117005324048998788584817471604033442955886331089591646990842534869934464812511908349811436230988009741608047893554973017515913765807344048235321974528787213658214829579142822036509758600226683179489528089058440396109037957920668916256256704961436868752129915839292519619388202266120397142140338176302221884371681720405993825199519078347149261270404353465841387725621075730303596868986882677099658770215375600009042450500758288508180039039742836659031666562592959826640061837097272386699109147757407602120763921706433129170231328996559470598862941309915420200743769011405948897360949848146030666152691317673291994430322110613996717598943443182041395552442135764676381814228050113168209828398014035545707732836298328575664077061272568554273269687178157121395103434719376776828100596556588255720270536936315596446575174400816547909827637626045436076134020822408345493577414477789080429436762104266090657987241663644266876553124082511775894979781048256909993451068468653692060952549506485160627898095315436401343226849289131405126025471572507107618063939322420105761687618686310875947087924232799750911898897336928466547476555541129313447595873646343368985065906505728734763133276313821847868286316858217262102756417606122416472844220908748042454527943993810756705358044931226090157809358888145952432274684748979247722716622681044470653981679352560580683240744144829071350589782692227842373843180105304131403459628563880196956929486622590648674594750421802654202531328083626279007522518440176469517109962880018519592857896671768630952628259864500764769334409808706785822462392603098931651799613443296262573114400026980514564930438152584271877363523603386807016271590071489103611628451328052280544482466775488162585325726153697784939582760888116057729801259442342440294425931543515993505253885720515274826771453527860955932529676206776973378520378735854222683535606531568053329505445977234033556230867955331839458196147596834590812995933330618666426821194425437090443012512025488414436344371826848267073394286408328861541619489784147367416009423043601261794862986635072910460740629304083734739768439827940039014848640252463380556543746885864974577485636184670521310853293657936367906288259491351625233785159088595827498947406665250103742077639339243311584724627272172096036208029312413513363795589246476341480310150162884698544888930837363762096962057246582353862671596104868061159302291017802598339540793142744275119175890149200393827487698229312878536799015380041971923767772457285644103564567695829234877625973898225543729338936507863661985940421694078778606351763370474658408693101298954521598203207840972757002845867888906853651826082907351524511337338649882069976403828820678933625889791821190309771458372338964716083078782213479421775711589327152730877420644541981045376220464458899043100621192181805001008571273943505919734780664150331690538998969991911287241726174661187976531894045095378853791046389805557416028523696647141459105235859606959188142415288766258618669612833649924129630421642383125936331087225380323939826071445526809096517137331308519871535300693662654261386125858437340602147987581712172902243704506251523817644484281879479038996847864746583823276192373504963659684120079733533739240019312219542531547686186487182153739839375052114184284889861869077967649724226085786870245359112179337082032558729443604979724196642456074668072640939367260077713070945837426931603924152660660279360102877390111094550986829799112818138125275360187194328778652020481449004081510863586171256954707454150063605943058211926902671786605617503952178130101006960168464425379782004259989089407441332357197319197996563732062026451686892533613672170288398742824534431761883883894889942205822958054038288446042650433474748786495160787203773721363143347943243974142056882322151101823534807408694511450631355550843228204078052553818528721943899381521661627963023559596460942012578340250108021579045876617350731341773658388365577721372524105301434157410208813021010148542176608280275509374558968858044801471870177333113530081950967503748454643442056957028448982682796642616706754350021899734995002209742655834288875814496914333568727955052385581554188656767845406542702602968621705524730371187293097442447286138940143356169338923931016550812990902253738885528303411790752970136203614844332720429799073906775389293138324782593027418926481172258489539654842639936123859766925409212384747736334157307051077901799360754919171462700774213192920122561698621616941959424478320392384534660088237323749114074945956392917602032237607485885296907804216462481077600920786535863364711114463521343329018673878724863135655403084714214193024065486669108774528089793443632435358448919852517814492540489367140688699634662940988376000323490532736488531075630019743564206948943840081378271400312613847695060042439737716797257432591536050524777054076592850489626062490274287606054021192365322891507346701180807935724762485583030299724063196998395923089201536308801554778153270414596866636687039209517350993506920343640716427953000233961018876493182468061958876593955378347861154564218768028702608724413830408047538629026430247981198916605157386068525533165819776923642366474647121077641691527295514633569474156022658952020416120229530719285595146155235809745237963620422378919482389456594635523204329668060207057428305088915425487335458527580723458631832681535189377369897504543502120386122722422033737595307464137202532061803813301735353030441850450572577257180017498721528770556913785820868781850956795823952518858458056956239948390967792263051897055959716475965364259191037451127857166350597348259776564052326421408908978101319329199398869316342522572229933924676473262548783595377432039133503609898190452210646966189847845840124426110338229397869426740006712516232215103049261477234383469761254288677153220001471794465302024347180768200767902851368952236611980417409459106440063656015537135215179778399170043725399029099586512150757365103172092147096680354633448434857867746255588722507499017640035856317287238965217407526758830602731006802750900810815538899746152858055966182511121780442319776036970314678255262546518647045144778854178734369650916475067817978951210013882596815634612171365326534129223987563587233665378029024606478980427708397319721571372664798787052115645652286660662790368588041824869745694064506181625138295067691335370401135403020106063310643100389546547842905923643346593983909247958250362206601384943017309928367932835823053135936503005708079853113562021544657607663493423609210464654350580181839857767901069890013101164923480003577163395257614648844390987921230281268143480828508912047263426300385769772024417154947881973351891190350718971249320982266108539215294053256772664206345454359107041496689756566834452282137481447530491919569674963877128888836212411251318530885188447200495352028130311792894359594407212539612266593824658660475630121714365550336528684408801064657050521674751729687172794016266461719682207299849695199343458162493510889766742328105705194305886245385273002905264053252627197141223152087152527349627760787944325749682934683053369203950814414357080945597582336714982538490218387703634356193610143049738589558705877348010162832249564414821822801929230125307827589185908096350201481705548253938891859006387439026717836249621736938680919560078334457572420094446075139259742802343294326117014440887131399375573559161377304494791857035022862616411840314802806165328073923540116850711725901711981976190258814308386976081199792587853371538692723497533557489856548170918118964493926675099216052941983000501002201711750574213967658112427161398547603984981594755426648049857376817831156354259784175306488542990174392807910823911623420159854200775877073328614493235972976452250391486016572953027240823397863719923776920406818953495339466698397682864570748847427316969709104785236384018950953891009948486392580903114642897583739652725938560913794232196520545500410337308009480940615366385149581665487304435857519908878914939460573940333584065276637825398727633437580920584768427973009850495589608342870001488789798269054963423475832100469434293640107871750472058194112763718805479093541789958125417993325075825977111929501249329039328921809779826962462470778276038979128995475617578790267278161861140988156570997184038544838010011206375165668012683789479353426984811489139782909316136011865400629265227334292055550355200186188711701658493488084800385310946830786618276492817154757908181009215177861501710972152551792143216871607698808872447259802829858367462624799963776303700685298339114017556040672743758851969579182437441439911190310956466815345421965355721460505879774650419369853067503299173060743623702810826641207841912723824979689743671859950557360560868987497540705079973203849810648316515684256847413606315090084236898366838545589720366051476274557861430805128221036098896937132467974076178101326405547287288332172305637501375612799313935319655150073869988270757398702206676085938506569197315937047406045831075642070232618053815085034963183409300762852779455371476501496860560081556305862702836104619278412898282126466530122735319400771121014993996632198841809538774988384702478912274231881944150395979236125373957555862906715764166260276466580756909723138025937043660650356279013110335379624060159024719362934522020514413110171993823205019110595464104609054615903682457524819677814448218512337440644399063345465442216150965182965555082538938611029901074817400612787053180746804578812791080019889813303723939721724265532277350598385573535593668249577484139204853832767110966515558304242400119352177841802601459000216374592917462062326498246141680006123879358832349005209421506622410749563334758539040122449719423035441872040371546196212756288971019299360886527134471137967764019957094693110538300120785037845897856879063255186688684176005465967661209744400410136944254073238593246152012143927893931129458925569664662677370739602007940322579665867178433933858589803094423716854453993237726126442013073805452862841145085812170089973580113471144424740829932534841957003482281549732539457076224740547166615827431726440396884786780509597056553949119950645429351122728918164912757097894685490008924696921593520962955873361721369148827480973650827190167221350240952661295663495619027937971434724080487676494511467440510004893483392914455026485907292518427482247603654309536870124779729788522491964544928314567748682296624703128900693808035491813913025307096000602336269265828079959139714808346745405338448703346821571821304104071330628342237799480302328188114595959268886486840205365492848488351891850275841562314591138003502103557467100454450536095854590089642101150911658644448541870066744104443586857283511321731676822076613463501816805217067883227766519239786146417812114582818970675277366387988325158766961758112997209124675346804610626651122591776851528799635216841187032709433278991720773183846432133022795029343185586222025011675529793071661431366520333297297062969467172895050697644800409515973369418003139924551346483311679919674667639022081242710465565636951003360902822057090488623693232958198875792434816976444867842309328445283640762542058587844638026986178032071665509823889621517697290069916735465686683721263154360213650394179464364084403585630410546209419767613708087169987822942161998001659981530184465171914590750996870586889107713310401225836264597785605904590192823401154692551721176464260498320967984441960512637035229350379374649496033808111667681697164845161548207624921401998155780404615032737220513339583433175247146260061971943692893565438450188881702361511534797064308604807789094863427775191872579315416200758316806847386274931355028929126383094723101592526059414518924315423906875619671441553986854506237792275409625501945342159575708567836382229283212589951734481548744962421385899537190387924964137000253769773646249239606170440228516199229773146258879722775781921071521832580841473619517247057205384660558064911514121566034381251208609002885708130264306720671748580215545936156534888548631282392940568140606961766843226654942758012259780647292043635339515734660891888907879739412539727274572648362170171044933334934842961707357612946476062681837938613285112789551054739567515558145022086143800971872507458962775433029051403425778779145958059564879459677767602405586973533012614063674790761319996286275991332879258862723210690820010121818986880466224597708330054029682947559578104692140707847271881760978294633400990009247197774114217582993750148897949220473694758863563646667691094914634031812049253345184192688477567167655177092362241774100152314234296449494349143155786365602704699549465397263328680719720653483209011737227768523714710567917102611273537020700318989903981057911627277153492611060339533525028667295184020135109378741309232907869038858109742064980928114706935077101894323020119004626665432695562402715565564406967438200079682635698132002167029752756276919780279113205268522251439564197118560241118286512006274985264376549657289715763450448623575765065228022556709023612005735155246504182482549088227760332802597096147856617724548766036844549771055701568635256676244318608791213731686467287686290434115074683282945524029884605295319895942111821133279438434796956305374355920843723579430709662904018389307345633470032681952728006712680400953961284260883778907851297885836190699689949281084864001413492701977052649516887371588111698319819150039769815518217406592676408637424048933346824039576896093726563113885270014078133973772982200871789033616387642682514130698395041538653748875614472488454713018461546879658857281764413908347087459724070154387526646524041061745498210197903501145829408986990672008849000121548372584129617378966187835793163754472749865852365311444849259281822279875436933150883593755972467820916805981095788119368040128705292465940389891001149642028601229883356763256183419253815826159347079690873427781549867278118671600469011101034333245752537096815453345382906048932094084791718676855636359699021505805788951636822753353450654882344372478187786450284893083149832135030547386999000647560283197790170639234788668704035063220628136953528770168915642724401251316480338537229191842208940751361524941727836739407710603917687528173786160736549460177503406466331125383382383695268465385307044502320191959961463700989380768743901148235663558620515899121591243121434804352242487567013673434585894466809435214705564447645941519236170470591968313647032644493237594072955997697945122385617376098360038331592317896855461592093370324791893356947864850703632195601858885019916093639479132892198315697987716734800265988826914883657749984161543651351559549080016326993314947685784528344180706529946073802684264709147606845613763301254782278560561283201455557524516495506331067313632335312114249617021785557419445670343751349049387380820996884145780269269453125079262638168060928934615138307820474661025115154137862386355931237473318869438636356198493265155750735061078295215030585753905528472487317809035022872932075344102824264487668758579585563450857720109442441929656832959286715559216974107868752697323905337872537828368004601855463026384705749065597272589815802562800057041968846560602417381687183701838164911329380817733301511095954220983849261556622300429146185546469586272744733354736595618943336460058592349296783147200864449883542772036483281294731281792458329661893782667733265440894246767804196026470224319771111581290843567192397014359935569447407659885557694524171439428779674907713009160135235551894587549777833500890375502387390285472853377350403674222344929131252459550113477208938674164092103454340233684910688015214627223957168446509270818422244065040429794247364669732000420803375719703737247484748955491499910506816093257315839094655695796004453801160474709639572062892875388300793290817279039186934618484583903258387131193655836883050030073687358030272891621775646795775296237796549075096509239509026891849254576708059502436883394817291468663094751663583574826939031991336379112858886674898362259593258511332975958321794112309968872768049018298807641916223441577319094083479368864721157379536686334384147994106593308202060720419907638927340798182855196036733732348842895273606271901585861300927948307109733168422259454288157924494192311979477427214704934957481149457864162458685317296860942392865171631563789695620630187147183472601327984272112685206538873924934183260797341094331536162894585799056772852073830863062279154215253325688916138666647474388431216249384915357686371744701403940775158769176810563880944667863534030706102092881281051269650829115252100829250141508674455898737751195402511691527264617342214236433500143047843139517786995454799052038448087014455199878989928187775182934711613796199020691930413237998091965780530221518894714832141688953768838622868903172264692867878977897716836825820506826322334224791772349853268720331517232303661489710080067788822965567109388343101890367775507503198270089829809802767569589529595277364249356107558653268801724140019962497846961135803319541593127467667817617505134252737328817485168663032257191961925336957574873081191118509548636963410265313813241071633569677432142526929418164877810740797407236282013062800433618587662047726443773414927906502450665247092207602094441367902081021580492493207659815173448795481644102316907013731413866302515870775443829175313034339507453118966315453911752176473042410105091122246117008837439793598349367972053461168556405458115746728085101924147304580890235230622268768300018614392990702626154123653944110080083242363465257370907859795477585067905676172710145107868033956166494269800694760531229611299994179864950941870242675854245949817226098665009847360146074209835349646091647281601549237142015817495874621195620409624240882567383824173221408944721927916643021158690589810134588757815205950415453992418096188847721761280898298049510536016700851962072250770221865086757613283238998057963399141960072228355039289213919715951928490438802571585734468652619073211798507060635353315974934509243627001520787700444628062344973461506478139227400562349625636813751532562439480372766794866186817886918954953785313036102963872354209514074051609306583038884863399454614593787020501223764915929592766078014923361226455631201635400170803444162847884775054628846958344468035259477915741422698905178118659120091512984608949690167335580811917623207566990127641785265099378871070672595164662937360190960520063476463107306010836760776581914515471959760926118269147488025771058485034747947683654195039218019880185436958183607765092694109038685076952615466881859002899776563825705611505884144273647041392375351660631255819908671744729390559222967446332050116782121282340197561077480018413324274869069950969128382006695953435360934296646843256068898631038320365893695312649094847360391729330523953107045254737163875507495849894571928044377953230541450381635765398721866153880178091656821322073833281907083770691894988110831058872865372076636054460428481136984252457298020470122178614556774875630151890768624541083417042510931679138585187715770412466167562521308058631671461672316067060375553587092144028450327384090532320907109288988613556783727933825603749878204048578697921431146658119620396504002916674205893034410393364120003171510976163248077181463470620236765197561463220655116504616736382006667165315021190086841682265776463194988224715961769386998571633580504635363453675365717952126782709784123007836199648708560755694020968944159864564728429179546282769609916825648219599829031921003175536877354393545942208350442735739554572537187878739924675773699197920671489775336609362333288012751461667012487182656878308201982950956989018523429530110697337074161010683681419712126324927287148644357601786818340703850354555204654722894663205698840761261417651739405212219679299318296460078900799980508212634254170134718600159806759066175578378168665833438123114935515166128472814016901556938537983698940818206691521001122415706332097198170328016919253418323935465403754994145689220890955173482598630993671412639268852266742003237200052982929947025692562953255433571326143026011483328236165544622217054613080326547299637399214450776563738557840832299261462264310575745742814655327261984391544499505293223445062255054697731315504744319197148605823043040458142668856586435855379593422311113950147998498526085936472725112917886037144078954835932850709484804131531197001946681155938550732399188295667613087825810333343280432496896102211428941413057188265203539523496312889775624216209855695110881284991405886569266925550061611556176984354985701803376042913109187142664358988922950408899117642123158377658180952483173827875178319343318302280767042167621920334252564392738186085479158177323451614044005157851433359582927832365474347842010917888463226242073452114729075086270496207509051921297663630060677493200418268604352846071026213830060224631809359495867915153504336048447533051862138599859158757946216346480818624897624133055766665233921360051622726292315332723418563929813187882038653458976927444370750514481343677548155424699638317108250401953195329264005784877987664813634607967304207377643214533211590554212154691735432490011248445908556971882908991718221024012175599011281672223771043212694414424923903907635104817084124630951833204345694422064591771855887921041267270672689128206418687774269895819521833428661768233632946097258552978744927841625420929065661630974790007953087379187725145564844531887227441675335831112589176466988290871236802428903489554366402506103052656104801379377139800025947593507213165122737357561181699854481240316803439471945870620241400337833444982464206814252389477245782454076164586953862113921171598698451807566762805995269236817355401323474136579405611678026656034513741234888862366907751939853477007654086815200907288818732877686915012686387436734001059263463318567500883991921232617141823065073269301040003496846019764125789922677449497567309293200294109064868608185984232428134888559776256499784517853495238195213411688326856298453616126468625037722780777632599580224695078040705021002042518199904272296835989274847874308288565147678478445320815236393301179749193431666530430817139797353819497938059391860741525956075209205616518205266069086395477946738572319651952665191441450129785293889465597574385701998495106114652243401488975096822289584254304216271693700165704454662381295164666947817814591237276636429446121997312069897453361916633501111162711710882028632786485659677890946814121948983034584145945106128358585586748713337473508783919739449087596146864954358642689731373807457263292684617250000983580597736342194517489944632246463979219274592851893540987763714982722206182032649148511659245114978582487075256260465117055771986877637154819359403567316571417128569037583918302430805888867692202580576513244318699684730647401246113355770564425598656652511825136839262578081994052232153597684568666740558257493630002397968973284490614247880099160006106716034245074552523498260831430225833918141771010069792416021385722320832111431222319669759017017585732045690846614101496523145213500373828322783218686393801937452910375721306468471140317374992918288919241880388631191882765588459310580696370290113016444304113655527555388729640834981567302116666615551016390101968742205912181750085648153253721205836184849290290830571304530059989925465558200708796570524602229654258948799974936399199591628564570318872834723160018088674517682336568627875940903972208472230864733096622155528666321829429234799861477318385747495099616927620841210825563672526325103571083073303978539436505978918303523026201010546516586231878789283164576302890727135509350329567209196457818929369154386539735628623881451898645708378348632396494126327361313455776555854981583837578750933659640253624333028999357338517814071959892431428147956911771332966468670438874669201480856212876474514977507719554654607125662131776710766012277532427448379710092406110335485320117171399225743248958716974017908526347150674496859076831809879669223837009697504804861246071468297853474228331182240552421165697588635462186814104529422239771071497497192473723934472655871751789587222067396056346309735689518582690859775891162982349903085401206735939315375653363511999075325160534968926361116174426753867641030293264039391323952820150107399139924958121104135142378169571816409604600596218426255977187542869474563827339409592314909274925578390631633242920902709912846845633958137409931575487309683321129996173768870859036656698806754052226341754344638283077146101192774172879595650734423495059970997180531311869781944095371317819826839152640652522839713167903584898491743572642588389645394811285772370143404720694057625108199054818861022523245137558564152653413344451339345818251590607564770642149106728251238727632393732640690080591754762297577193367305919196024654339962251566896004778821476984567308458454938294378203968962974464132827473667576097232262941515554878156131917825145327057445999459442891759491734463039543558418531963212906465624749368638911955111036868970911819680331783361409851598864312432681216917038876604446998531752468007825262512161325610140981313031118704275553352963688793157038253130108159788452818079452120367692200112341191608889100514365986055084583873711435601858663244074163046811782448758029757611711605909667159767197736183368762380178225320040044695090944999649367654250556148355391938808067842621139152934022898234376644382566326607989038100850450528104186938624596961054990615557143312733988665804458548692856948157148670399314751080578630952901352732473927767596041029635758766729416243310197635545779366466641600637316194140696605756305746935066873638955530275337167234430465274128560920269954003108486008254990155342578112381905421628494974659583683123448402494505975481709639950152906174021757122240951671470447431400817751630777817254097339646782771907477882555331103095241287695585833630012144687154792074748681360513326556489655372817371766061607683733102946235679254610273957070303436842630146946099801945763074912120311827615437537819441026680121399697984053943588713334559611086683480951123698698447520268415268556009323878215120712279812580258841616226442590305517932625705959697605445433387080193256819798937292538042394730268732059559340925330008755187142604260220699670804374905871612599800557739905606620900973134811893262563951177235780924527565640704999673822317496204778968923484064564908387395664310972582550494334925254774247610412235647718076236519512529829278901382285828628476357043531484243179080937537796464779080809561430914713504514675863430416816289713661563658117692705051136187277255263897544911789832468401604051326952693569520114652929196785269214783964581847650744360592966957507977192473461845237627512331973629095031257388309451524594172188176039089760724274451099150519785601147677172969449293657495249856508267471630541597466082410538730411325401422111011866100882959082239551006672676085483813179163661066310357941556781955816412310553419346881511526151727292038970987710212781304039757492543787656593324409514853027170030775927265660675753585762096693252847241346614418073861102133710429894986376671469554673622718759062876543476761331071796970049059191075672112007370210874937775856989907399181693770095403537855864719138769518001336653906026015145832609559468497872509466570674910399727047343997389303620887947030270230945969688172025688585405283455352770647084661170091887448685561435036794867381286836558624617359020016282980007148574874014636681634588186040016869505909387051280092981541536055541194461901025986008481806890241013414365643095576591129225344553749831893245648195494872898483606935707945132649012458354834433161922320830257571855606314143206794816819706400360563256408563800348822362638505747637122098094366964776014564517294653758859834363971044918910711129044291280161385105086836336838636671562075894788812202091512945828397878429900892075035702114082287246645901760063993730954650452156258261972097822339616495375958261745775638873417579222610455700237048333870375097289308561453207655357366731812375846931102542339579864362698916993912523217926897060211097891255954365033242665414418017150412838128547302178102045096786750914040712910856267649773048517477815855380377706785146468365780950387825617019250026896014036101577770628022066004615939334143089325709951528780822374835448293933020974668098299041995152497589270067175580464045979951861551223145066259724771020530068964298096211037988568977116834524001428073889319405492809675305032438310196490995826578577886410712568273606979122622527574606173908456683083103932117713651317149232152430293301573025368769422007639366335349073611421745668679635813470973213952775639717161612798750736187110592632734144162271170969176895817021277161383911050930305452516402193696896599903809170957747563463818996291146480737172167660366670840693733298291721040223386002658432638522979571840618883789772540321004670745889716099500553708655306790131203742637656426399463781542784398909785849317013382629288085955935230797002982328599631865235070975450140513017559657509471794613032434782031666735662344327619664190955134052604976407296339288574818827875527621438627025340846773377134890121415744831414850773837793803504333239101786469329419081661510221372445388006831545651281718360246135656697607563370778938733339001766934958815319522659533937960116700139151865228890776528566225002477974507381536776405064710456328565592968154871196144144843952273726913035052383190053322220187004761988411919658950477267629358025790529907956207974918147936374030906827277525709139765398431117178592598230593083242385685628660756725917142714122653275794084838378535599578625466330523013320016593712061574275189039598982199170169418508026746370659214023081328702675214834623340931829378107507580211462483428046873578843500299102040516262572531171485553801275233590360602011408619851354369608702641685715850584217475075468472684037140951979176289551356258411537203752058114820960820612999316981243144728678473071332205975510599445496056587892535600881906752714366406233297507785544281535975736300095757764459511516237064262231852263954140076259488228999176984969880498101744467803282650658927391513643925607253134850828427053134325517239606780717685752403642642847175837416823959004728115897238736900498416028158413342001468731289277786324684210797584640582137096167583126013787155830250095440877947011958128106971349387670234308132053283971198470149399420396972146154324936490813600462325239992991126784858326817437660132216593947058613196005806131929055534027363791068630670990902286618672014201114644604879252007541812473049726286240135875763361697893881951469273702837129213655807949247893295438178731172686486808335755117874101561952733049577006208860393766391345025369626371923636896002583019623196850058751591707318412717142609623132479847550728227113252216786733988219851708625254376485412486345076598104272794941883045030419707705445221174064959502815660238766659155620022936446675986067836151708674890108465356595676346382068037198213342569946411177572373415486737418689021129917547016716566488937800341801427985213827322244948222287906606833464171541723905251014566397354102495101818923324903372045964699261142720276761337318633115635762045140741085789058463214674549557322052379512910396525445170301141109206643418550842773802088643553367023794044864166381416569003123829064374884414538365360241683315088889771769013594712418816018540573280286537933327133991955068908626254171467264757419702487255385319516602959137768564380934597649109635693491527338507036324836892950389411195166048826101120795826029763487305186328827410636318257393758009313937380175623679312691026032795561400056177977445505772842245489389833765153344736744056180241928542096436785643847446420027693942870180938616468733232158976958676940792379902583902503821546698717831715059024416888128115629603285300675995408560876189433060636710002088388010480726858321818642323562187019178942289206926031632258684446124656480266948018604772994994061972839858135505962839459008896383573260721854054444589636720636234795602225981146303640520155233699350677859524772307846079173369964003938434582047593454485080655085136271590343822122389371810399770391966830997263158142881904653381408271416461742094840623781023902352008542143212937241042745683833370031189707024663467783818173762850113245149428784757494692483943455594663661308906680554039928623381930442828339429445753471550907791279499974204757980092153833156022341696954958810899419473555845144305085130905951143299414156977116820828669318039176327765562242265350418505434778695989993834284187045792351975593305389588409369232541528194398113302585917121417159531329707429976354089085530029947490703806882558956962426229732167296171139054866944652519661330296983188499635901171386398224039112085837818108590219624280226243324614272355765313122874843827915963139205361343374313944976297045630703123373592178456704149202652770153239315325360612813835462374718581272197041291772062516277624712686512524542494142516415684354056686676118698565844771778967837992812765815241297996283091363418657339748603207537507981409865307035075072884552273825551791761944265359967135137294793493370145475265564211536451773476406080605612019345544910690318549531713914908032582917063353225325010102821596003868404708378355535095096042636464952946489838215333473031860723730165455651911175218395523703534953168632614119471528398119001256047643637911052794578854868908562949124413304824572518424154596213551198772184875626389572513872799632600973839454205479320537599573819139733151118445067179806237847959745875201342832451795129589441536225643357457165376762170467420336981969974892903407210829336250475931653638198078282613351059743857546822905289906826697269199158083621503630902965493027289766431907571514283259200212018889788755323209045245393429124506673181103179598307731327281543935296120422461441678016768630886860896831644281016159728917131661761493802154322635738621243172846099081314645830790836005497281936449776714177499889438687037523872901457057944130475157577405482952619817539783719506191354313101074545455865150145418916796053448377777629464429441539533065023220175945118386297597086510247198268644126002754970292375008595011594935123823463605525921248467245232002893866816538886152836078410704295909045408498265508903146296228757485641185847858018647936082268760266896131123970294540208846205576170119106659308898056500442025441284825514260066954409460390264683490611932490394163387306284665164706320692180617754420645829341208954749838303640323511462694214611926856566995628375318426628406293250236584172249444924494988794773074014691456731478354710982778697588960827575240068528916494054504667681263193085558800200327650262880915191965821152675457666944457780232891803933680761951620959809281409472711179179039555352883929365493217532956858886843249253499014040134447353284311761032519529961881409321042835047174644920977219671027203287780245069396679611424054560682659218490480274229470488228969840195133836136325889120367664936035732611950030303956263045629391765483806621477743788328687917375366312039002039995698577988042825454613410352783545851946676020320531720569124368758379558527666093124379570906848077499596318005522841516064116359273965304904350016293611346230337194509300454370632203123234434220173132131696148236169325629788780107556755512406248984420370183941354871469419948555562531643263687559556222493883948634116802110139196366622769973377270010976061572359526709137560283062022006143821919452523964544997145848751490244159291870635196575270920674432321358001611123818480430657432693372953686064402682151843412022303967123052512267934995772003109816452116192247264278841849820668887789223283158605307647003255729206477532282356361686083973493218909073233554626897898177319890157319617474094864325476915118279524812430548994315977810020228406099295752960301074135363632722278234080998042157007052798882395110793604990186027750905324774010623809528910596891624293772846757843084137937221151413287933671763121506475400151190429339732066759728573195503188966808167506526542427774189733263492500863370367916137526736913158743381500546203230886199179588253096551317258447100002435745683653892135198005339572677034976721100370945623393910935398109306555490498351999993730764735454753683607322282118827631242766036397448093142601303039429569113961671388791752614510845816498863273642437085457953707807956396452192430894743470571411024594937854371773733396106313287681515486332008019527155706509572985159315750987593978015369175008093101504421155940142481691479587003079329415537123807047905513994436627584821865533683946104691006523321134269567308277089127571058819721253866044877820204564080800187564756108162513327253652309483383367618828418439733095944128814167226606392423655647436839452088431394482663667826499412588282123242727684199844482906663266639489639358081670274719849573358929255410778323798653929917389444104263081519895703420195612395089308797043491008059246342026466782829106160347793719572837858856963619502676054176825814807157209452120908553831935217290623543919388520283145445728071140195574159950496957618507164875336324634346591784970461500805012683977997678089879861493207972150770679202089104402084340287276756136552729686031824193118544520539485004664494206597004710298335322417594083602782246073232483216439007186274605618417333531663582282847119295652478731810476916809488075824398291763610616323925715006865578240220932753637299288952278784414550944632304817376166458565515116111202071147994990606404310247729213193082972528951036467851375947427777888841680516798662791330177656859636203324859154305748672431482604642515739691746894703250202599990741760120161109417177530369657925142826915568806240501431748240035161982573903697512937171166876605249221567962148627588589986170219366798126142205666060311311220930909863731339577444040311424398352370698515038117180347268198705398450900939272484360553807369249115551750696895912832082584153244396612978935740743061688995434187758534258826159187784366928800747099880931545210037314192442060507094035115089035583319885466338924588948455696980403619265300955663449230249745021271072332331053627631340718752929522528326186502428639592106877806517611639414248285349184712106483599177737399262692655139707922153488439228987660097313535804923040440601332805990515342786568890489505568005110517916024849079099698900354535265428535141189905869670613384492648462908898749790008222330934834507317172458525200790901322052124331473186595195902174519481388782841737048491425595523866631413747673525469126794887567252950607943653327434270240500497710367947605987613209868422113426766440605534403550377557414381525830914921687383001381173206891405766849107265715108872371820048176514169002514339490747377774380599892773614544902361166020656820732309573354147705952687601162511500811809707187666074719192845577661174376494672074146449660000675303582162705140543930823637255287900294507839775088163461170075199301627237143986874067179824851882464833457919367984166681824439502365448078583222547481195802451802621113156120899684995740812468707437120949641506889805682880807069757527423989856961535466934840684980611578932949900157594845514020323131852456993570489240088359315785027572454414959164180978193385292881576945464870007288040674687583827203945538291615416619995183145232153676175738654667787544124851401200015751913893949885450067809221458213569670115344007440926028301273068878838798236875061333183919641917663529226234209120921650370904492123513263631103435833379127063557524924732716497098297379546427260881850317538088286547597568961058598489570214370784993237269675956690553076082547664594875347817315210830339021847010680638037034038278314726568632112922173772066561016840682971842891419133191475360233267195011917739045374391156335015825770139901636719764564828762778102011577611824613758966638129964021993819763419084734422994728441638291024106400869700487045118440906863111702407573053130499686312121302719309158098496215641529591686062431058798221521127098584788068204039933592747783470527872087280680737899248566153568616942192088966721093492359192351532997260510239522066167732345586599780245049498835431744431622631775770806207846900932074665021463297133971457555373193603571630239196476126129473389799075355484838093337840931437294927973188809737038556910470463404657876438683516023647715051928448586613621536587833876043247248768726053486667955588566946706230439809754135986701899923404498573120898903825088061767351988034863964282123069269759185246728093056185085691254841319429179944205672899354796012191930734725891428190572141289367436023914396073964786874059044642827863485775511853070720147608886662091217149350143734285414030277566820842954012033806830349759729414471774631454276349003393620272229442155756576819489667634911843497033985101302172966592583674257781918530757728169167527129033743178106387898211991545107414007464807101323742398404498414229140049403196138705848739350379422358224693460083058534839351896996444625686939107374699536191873129315064688986085896689166055352987630935047899574894637065498091130303501258884564724711958029501375633600184057343381385621082731307535251239252361876608058754364153389414324407188047549774883582378843340767179401152047110625832882984111314768548962292383301021964543464219998107919783103264688667401600718529160532656332112861699337022878236499215451254096116079791194086617209294153290010648001248808052513186115283632161450742308492517760119893493602496947381173465563665102532911879829383664686034605787294273593299544305588471895492733148856514200522717888738150135379836386633577257629632515715356172801807117534703280864937628343883539917228834114585005764417347189510388209306307704590902805938917397562812611067289124219626004501989100512943044470684440067891604038197963835078061296632373942592684458602895907446165947581174558015796797587300152895537314158915748622944762065056795338487889899927447721836737962990766075819944906281793001296117006508116907868755430055181857149241654097925958163726130095956284468365084535295532573066424383518269065644998591879202184657703652306461040330038297535370307410133406079856811169966058820769269974372368867580618944563481745683562706555472504149261419675390610510711927017620499363922539003432788045336134433638465629922354404931018109908728319712725697014779559512835681388974964329759804298994030369200899026204706938548083498228392198106964677679465083607050708089496530865346450727390071933370417840688642827959702777543410745548999668398807867905490939331211834294520214385235392270674019902420945624454246244182834076428241824793351089863132420403046903186747577483123061774927690601091695724793237200745400115675179365593313613228265676409697142607686955142007425404189799707731436482052872903418248108134325931095967538589812309823322034920855364257657923266666167661036102497687561861712639866019072958807404594374948508499577378011556729782069226298516576187292863713904661110325544733292588847430613554959429125302861643485335059771086883104776497273068772782901896970926407820909199589918419494714851013384096878929476765823718513860280468244638324288887042977240341173937653947428283887729889501305204652837299685629200592150004724834950546472745344736069912433483674349218787410271153869321095568520574037859993389806547980905463640155034651152958221112200155398401610520692798189822332520243719636016454129831190387689492218704990698881718129133324266773597743839264385823007160114691973715302284040163844798819251887685879828018481439866112172870391597026496646859269810681235897954599216127920004799862569601105964616073505460652561618391229555674681663562640052154884573826680751257826378972179863018227617138682180224621741695092124530846035112767684379400429412426924267140481146677462628904556531779578251959869187486813148685747972849088504096490311642007746160397407617178132668361491953359300726954797332877971284088131432708083077929638449067019316899665674708048350347357072633036388844700326243097593403286666916890456832570073631510266390432696774290859496455702385160562975329019425853777591961446987423335564194264217559448701364991690255489695128471808145129073768284953426628875659393085426769735567569129310395178339153687502081256867123810011145961783027228447449208486568380653355995253039118444296330857259226260197721769236148405264121168735095344742415014375582837840037421091842690091918453268634688368952388150841092728749156429629833251834832191393006188971943445206482971354052010687358226732112315224463400012256017036961573910949347465519047150259970603791310420565919344168190578610938116398761724053947878358939469940803672631830572178897018220210887828555442535670795754545398600042125636554491724227767895124704874794154708012938683674599625454885761910545569527349688800135578584507117931516206661258402221346859639678504118676203203812041304988192239818621646612021518417110220780507449529637380501638410361210458560113356419767281317118393551488838122369377558168497961665130551468900332909728199320107395988212382321497025448843775696419454738549347256163131834352764747535968137676126974472880414081851711072898271608759907308729472372208359809255110214234546175967555400029236323135643921558478776792044020671481611494940290961218459140893601080262987375173568538439008142757965977037735341564702798352819680033214249282212410035158394273749168024674272102763951453512261582710312487256566093480929986585392450071197327790206856398867655485891630689004137104940156094198009539316637852737646690994879721045336988018072652419811368712987742324037422633567477125117180384766056905476449348074760231980114001658756001393826813346760033636003440760210038443063478364901602676167709758370095860121816404404953182026191790521272943025235579605856315803505636416234045486516585507408963264273109137178431174499897084860904111197229302640560198611532945795827902775341056140918385346883493965887311408079901405884916379237873436123999862243211488556450288186777846560847313704537569088144838406522701943762275420868836840986596694811126997500031658916549158275334488397885874391167193255550710405946286420883005399498459362189660582322927231881685162696760484854503189615094605532568742547353454036127218332099119831522410054940485174905458073910762109893331914691585974010752658755279792388175511833983386336507958512070950696011869339351977537782258564531321120907890551350032237840328650378662950054101350384972010449062994427597024049165289091491549983787325294878205924869014679668750907365337086557305608886814568985314720838205397403822300068007924480862025791440426524571389560712745568402071832377725194790226458621010709478204283554189009401845130454202678816773325392881259777790999588998331084655413842919559635250465602862388888788573095239140535160420818353975362981671611891015513630402536629609210271759964819556461522411381808012413198872245100487983715385577451094883968917169967201051309658608061675885671823688692201220530775627070082940314074912013210283246028700237965215174103062535703138214682040450600922142868984822036154706806679731503743822852837683115390879562093453732690189295647469931655925198783422955825100262256223308898434144866076444982505561173406396286191338768547155664385451947954928665095969392887849286639274662073380832416025625768358149893324956074747916465638338935227790591474114946518953383190084168915662618433824384530764142670852255289420763682382098553266390903923784381131664996946483361540181647264443416875354125648486364267957206347651066561009882453270002723657913186024257300850661865766942083995786216971722656560033008672105458058080389967995020399111377635652813349705594116338374385510232430389467231488262003575873925757596950340998515949301660837038836363818099143718297062880844728933387703212626919009364718937336810641652896574810347127666504647811182714561528312924262262068840842384541643719442420866669010769082145431638071183987147000904139019636308350370147829347878702345188546654256085724925821802546369170364891765667231872139185301617240119711837955556278666625504491772365889996410423903072910192906119945121875062477761421770496839641242848199605895726219019404764793931496082034085243858867014399861594054301191913907344785312791398101157515413853058440667436350957337017808132799785346548332351062460112817673512965385566512963244938816674024140223912149523323130144989844245000527782916635724148542006598328292640958136676204248033649751782615532107827576981526973120930439615133099513432207296173418184232918797553407696507625980602814154005220308467612458116100916073665910460874846652012313006921137134446695062472080143529511875436592935862901901634593701184048218477588270211659810920039157092819517419095867369185935847072273418828301404837330664075000755431334055406822313802550753770607606137806532912343361732995301684992605289857006079556694299311793284323881401264576815840740086379335584746073093289909763719911670198575865375467540761335259650077381848765356487417763900432734920117460328387938868558140924451613645015797326922991366705347383108301280178735938267996146999311653901974727298356664157305623049831033696469244136286102013188884565311816791109325117519910712540396331287545140259536054575746432745110232877403325769624798618444425529152011356233363669805249936912897163033484599462732918311710350418597481045814329061389675122418702869088784004471111057283136742521960775211919036634016065822097360403268529074039403691243912564164654118581063343119073896535982797342475664691190333270518636630506467464315206005598931567463563143333367604855790287368986655691521694993410106006189010058841153436384637625881358925923244551845658355446349405102884273234808687797052601692562612005191329385366440892833246862542915204996510249803882532913455793868090011822336086055633575477366172891936240460378274469818978925632955407605691682898788604459911904682832211062661498070486117270312154511917220548787544065231856532554551469402934243804714779858422445339738671276404311030685652261498372111375007234862499321811406758769444794196953323298352607329816049718416373174507785529792454707749094644021021227757166767100157485511306463076522664606497728422590038187363789612372921591144597072611785940481577973428677952603320869965930970150810473434719970714736784390449213191473303048238943312267810148875143518582569999853573089321637670768104478313905240368150632918675268285916322723186051446461077287053349598804653981047028293317798847207192267976063297913846335980571230420600260348390028628765056977941653663850687681283800141596741257012607994957576347091940735575863166739991455288197129728405292739089156621594716630520806005002167846671290212312770209310672909439914222967138478225849241792261562552490124823077874316822828354077321892887074348032628929349767386273866178210196014249627153416897301519331979901717707186869345733071209198127899180498717239990815939447701742679882554051734887455848587344592204391624743796690816820907366141844689474665442891555665623767112586199004059194589021949862691132408223432793764917517140808723970536116864585782212035160759526042433800935123905183771602630730308088117558789797032137336276657856102442046893626991349875874601358368403006899164745208237834886787273108668984379037666875869765188726199832473934388690535268728423884033805631537676028967296558946698302271286169229114453735256557477008368529356805486112656821255006907229059044016559563274583098581105342576532520142534032258677242372780229453522872213872159657982319802909102215487354782709317386371077978954422274017893154857018071178774828854042126123524217919838327707106295681497946813604896563916507038008896309357064173439599206932448602848637032350745245271860154714221272543798902465058523980775672927102401551731864094724654616619231508754950916550578214051150160538523704860448174086512422332832065970352717626410146278541727242335566433947783476114312522623139756114515447762469846360642888706052783661268614279949425885533018743158926350025657575134888684197416693260864747362097363908282610929340994282042180732983812444180524483099417782919867135932524635186694875218572529736665578065641914604602396258514975070438006227070076190033656185485719127572825313846645763736549465111489621256372248209586304831825471664507403710838952566878393424866767118925500494606958605093081840407713299861143154594924611829304499905644164779264961995616549419844678940217819166424993581237126105945077414815782626314467326698132015430791887221728773332181555387617957438892600956144039735530440789836162996266987027299938235745724757710975837076196735192375654338310943373351923144427355480329287956024495330435344716362218307564889615137460056726161969155753463100110849715277773898571778871483539790272655552439793323931094467418815024242314879038029937830306975024878082160914771626611302612490461638988428437489346350250485158085372204954845469041811179091221197596969403360946572528921322347255925637986016820121619987675072982955459434152135558253099175434190222124946518855795716014240970921177948561629202065133712887858501351556687486197881365261449064629635466177949319344931600424199403255506458180904204722313145114774932531834817993271653172284906374591960764790999046774127868130274935209727932520769736833891467471800985123540320017761529340804123484830840285778528174704005547802446124930617985090235462849497617981243304849223990392418295818246615774358255568810231575609701558843442479348027117921275341636730342133529692831784767371830110859258801127311811305509238650505957360159269183230905216166486404435230454648288926290929748470574547036817369887684138841293041852527181535546498752542733957643160626502387689821755354486350542295561578535807604746971484077733613813401230740425076117537312956705925657971871817278198696528194809863496332492703757319063423975247081899311460050707787897457839892613775866055551376997627696246392264760985778014840936017146688724884355886061396426893309102923428652576351242829014960223539031648289287434847898258628922383468849075707224920155371801387314082326528617010994331972088417066583701977021449158771875364141819998209390380818135555231134314636319941596243405633234791196047969844880825222160819868090966453371738802621973886671591724307430419607129872666552209829742649811757740347000454057103425410224772219045961658771015050280484885379516488202503694983909212610466165314724699984286785989557245626426207938792954392198665427504824151800184572460804968548282527668276146042783210615295348508925276811602918141596855799157549754272549716777391146920214881024886164851041456592080058500949846829825267584959673515944122542102180804499032863730864941451775212124431088987186722274731923929740778769876993345384630328304005901153599516721715845415622889416749499240689404445544250659690775400199981013877444850363917535990985942472133537048207324550172308279368434168956723391481552462816515971245896942508149210824092105371036297423281525149725210274879156474634805482257058575278128857071251091079308937760683327219489628328130020323250712502302130338648351282709675091389540023913092594198494831007750310275575974026452687714408128901105482337135920738636549575901987934361210781268833044733602647793767651671480466444084102851348473014927147280581320219209338482418966536565819944881132483841703091479302474079064134046929990432775983469573840584632164378433026300876234944437378888931334750175325980713643755954482648850319027888444815261466992091041564876478276289653688377411233234099023846448760342576862613561929449604382274725285847267878624137655463972097940096654386729614962212595075626979161119045425798386782884601728331169707379882872713241007551725512032108046491799046967026545596700741435010250644846626243026727748717505888316895797871249220492169026195806979343795735714163707442369752962379304127550348079802720455122483264941709165787442727430837629044074541702195885272562918894067212184330950952365130111933261854341882928210557444617216265297733758861630269808749396607112342166858237390045484998668395692795014146173803783599212976219077718976106802267459753999490094318150631951839871696667193608023356519324156503678467884390660827560336853008903590296125955024214187591357123387996294730297677653613864022947955291622154589052952489252461570081217552866028062638566941594664702330336444961164176564703291460955216877099474278031371971810509743438907951920939688401863651535164923523987744079904446279156055332006543549461242410498170624775033485140660108615306349898277401881922399024307213792140428029102075937931049306468569519538458429183423083151013697801871490813225954346554010684056563139895965880415891674778466720979538853593780128395974511535628442382290065976520763075897580648702748638743650600584636615984774893680793671476526313814072903830426441386606297114049734246297037360776324131772848110350132827793729631068116516376300893969801948090318275425581943658897908863354222946590516822015261407715297309651644710275020259150696390511601929523018296851533806758418407870378693553610699500906631354323846048887088152020762586244512643693296808391929603269081906545622480548042949940705465526607147696600960307782597517549769276293345062129520295406226161349533828371977512256434756313479630175334755046081653146548753546910342235695761528988377262030362259203541604380663260801081001910438149725563715269924329105317775643481580443050936079198721028405248684597922307622950131091751613446945325484645629152381275890162740459708614354469608529755321422257341321109199754234787032092397153950177254457042170345525476508118133490377997030968285967881617454184437423839137380267626013191009163488696267513355114525851554504364628996093434025144947141752761658188956530045814768655427403631879671490643011857473309924352706251844616675098872776485112163274833293280206628834588019132151602526245506927166561775543820334442246855865192833541145201590907876594466391233824052235572505874505941548050473439033960942740495668686527985552036426103518458959463679809522350452838476639724399906989931568214775549254562775742033122305047155059199679788835443928816718549920293895618703476189517478565301546089455903570042341909294690276391562747402748175078175401695716980121927444196814973382458048678731718146022974342282927182861490750616165503457656107079964608227012482799303796831098802229944897538169912094760159726052339054025660357497264682493772548144029334605553486365787065600686164688772841758214765553554091302278226510021995929051491911708869976199102003317725898128361450133271483456659462917797951810495249552010367519844530025581737583444143325119439300477425454105996779922296455389311571634752827127551459321129644922574096224939589040804716448480356727355377277000482703962497759709443946629248678148268124037198879353610950046082340811749142563979095904458563745362209051394189897417195863592241540692676297379384837568259237399706889609107361184867367706867323980549715251776773208562014429162450579023218838579058917959068060775805460990109663169142271870767790144262744452966016055639273895511688480115922192432192231678963291713402342856730309898453011073407065963184352754731071756792651721527479438697969615821830019840719565360616527187861683051640771220510136798066796282262163696499455670587181486805727028922673904724065570079233061019726545670765399492491069027609317552451354471643054742771622263189285748194308376150940591330530060021861562297055289352698054208960665979670785212474046261294933607658090238744164756008263729350215626853780421179430100632121528591409253668787055049297034054353178785501355517339253136278638714359295229667563906735900196013121330713219858866914501205997107200009129409155779783637143509979306554748027367560511552788730716315237673633208067746471188648393224864334698161719717769644392220312144302987666359468665611294716709349173959345830400830396492940219027758946510411967487448442448351779440091513334835144810525541666700524576828321446335833842005875772904086163540842110848822125235623779548556047867235339065545768489684473078321779282143433448787488247904275378870265263053753005962952210411913291530748026035766750026143453471743006529138546525830182928010459253352030016204763357719218595726588781597898869656875352318622972918031635717946700388488115968806436578890885633713628078130141226121713427959797648447780241420123900536101643721385111298360766040735544935849384658140536484081729316212833258849128775505883604548414539512134129286476376747716025283646880902517255079871558696208971665093893549905154787100848899597846409367020255208719781179760241864934157129835236323987888688831830190311935397047460918191694011807174138211105756267828633603024361153180070788228374339222011041686993259284859049533822652795832213865028083824133227425330746275270186470932123881978096472560213584657248546202649089589512881436440799363628938299685936215562417467447841522927586834546496994292953238961471635142894720498830245084941183812049419064224951602453918243769964949499358371268366159070655571756285888110192509437742793980157379205820896766216337951948296000947044992644326396801793331915625928944317560525369584435355172147113206622347109423015265111046245496633009877368279485956205488697408245267727921202570110347848923877006422775782329808501698189781719276725036553044911461088279895854738296296050521911523698805319946633688913193048609237966730229619032258427501199384100408622886950626532819245599202478004605613038239662774533312995573610775099983834046915523945538606635700391909483085350178786920365372950421814393711336818919679745498593438196326035767016660379639139096715183547798329584411024613071647172771434937718279363680209442047431886236044562282188631767398863358013518440284583851456900920301666470541405359154532874192665542879490259875276261281338957666929527322688869134404390172685875180622402393726915250534297415351475242664426520394573640393381605749763473812580895026465014204026902298762796529475873365078095831091061428459336011669702412947451962921440612793759134497488984999380956552519523340441373971909167410774376675778049341266043736096742842755589325322906522964764107164635646867324767140742735253724363785493902479288664155042161251777568165377773030181765705257144366397595019270093602993915887380589200669204604102434070787468281884275535416220624481965615056762279105663585800851774555631519538378816474237362154579799871258172336032562130148115636505926765915011344279271663013373607699488130720686661197455657569403138026027019784542169313185487926362360867652776283210282673167724597411305480353179208540122971208140765932121132623989750540581685616287330131534039671390703621721193718007011712881778147276621029296859785710358360668110229187235150543280586888026742663217467053580457111433617975071372714310673492061815137212230786806867380472688161689243205136646640373739267698447475306896423329747169444842046075127213990119860320587220853276492110423242796302220486667202748606513337774592048758531616780048381813948018658814338919452854169128363283013951548785495616060174951550217106205938959908682438850395706779033124271947642878801872792440506603498928209599469512544498954103486477552043286060843232097882146505726330606439113756134095706673628413407759530018257276224585815875466688516278608389369979504443527083899726522896727698343217253142740329403859545531664474051632841159543748399476315609922272139340838265920117460592800275733935157937485678787441743467890276907567973806633315702296769087032994583168594045835738125269473840906353212816653231577128020828814365471435970708653841780915923043797048119084193736738825783600856085363534259590748991732847685480476806758263381628343568233868532953416995724073018660207132889404451026253403863596819798614481942352736839222960801539092740037291566793251673011160641190782644435356283808676448707394588052785188335007358928486393582101146399917792843460756288010347557744211642925675677456608450157478249212137602823070869036942463196494276967859868178151657627057918121449368149842662778225237144872477913389410789790393669326320254733213816653963093619702607056355543233068196485916805918843884481145024116768571503059698312584555516461288080978789857124513384494420900989151065956352971035510462166821897107493927492663965311501233268871505650878847110413529637698894878526060252422220938692392333554041112107894755369187039383047494032835699945858021841461112621552183669286726084378457216298050283125007397021879138603419861829290474477169457723562590526108394216073579689272226522749086109549624339894146893608217529034158235247321365019448248483857478275798787516978699161493649795214051305364193171441832965802863717662601957333551128262950743644886825349440283613632634416446185250597456997510260207174663621560227291180752172131755043231062039795110635160425782973899512635349198587505654732729307135005329452619152373243191597791189386419041359937249271706484468943740666949676886142565521226655882924142527318203911610416743658784855498839343346865619972134933387383493811119358149082787739565351835899090012542567975546446791811824259158816164698682348915109547868653335231957121616040444185013213508124276473453596273190401638488983838511172043716225822873900929660268649268110086014926328165254395438471515839065079315038518980127625727172162866329867517650960087339502520336956918456392785748613701832863642749146802482338963467077312666372673662576261641251430876419073582847638811259990101263491209929673732623652605481343389072432278760149504525723439006740877055909477140057034193904695866783089424342448316460702792265408248595300878152505345724858325644161960178910842610419014735719376493705127577169494940455122343128422923351806924271956930480910856051745402906235540557779265474635987148237059256608666432949062475414840840901260022913492612504600327790730184603587365511386502354757050582569928440007801822670361476356177597326147313093258507119825993764130465005218926242821497108110004591919111317522808674038045975043188262162089931220075887285229420883584202628164610309181329854901792262621011785292995749700265568759726553346183314304361313567847660401919737736325173382036839796316242340687613941431881160047627233563206188463865883133570052130782869452150109251382026256743030999950768786837238692663563000723361797384724347785900190419197784347438859121428853390618264001775963626734116489335244942254444188519194349412533819531474920980911160139517406511616763948916614693172804446443824321114806820649667672688489534492338633898892065031588501602466165752909291680544144317030011949001242757177522693013706390838180954974343397185838617065406850569041495946836345597727867613925709990021343323811581724345602679771947659211465497076879079079368971916644392649189357613672516481004344688749997588325774792097152775852258749494379445593609812917732244585178926749160168681138609810046533763849686024276718029939215842398672314848242662321317834476730847641862702031175750811137812397253314498686425352226336096058784849094380914994882651399719991649577316091455188906764719890432731992259163108371779359634167510413304257309004106070339860285959102266491550562370549267690791813055725166775842753024894270616785554073853450374529966384657334356436835384603428661216812875187104971302647230104134524185706974739316313310453072454940576427760999921464418881981965344958688359975037733962687857458298352880664705545259804050387751237200251541260502033146563778725945234253716559110956404223948778722972677121652721639647367872703247309518469967428809347336486390062458329057753856351173352372251567120349114773895275934743269728135892440580942708350996495999871150134733162387598429600738946364306063176590245929203142321253098469408005648111762253777273075274876785905611234031856712782977847703067205886122667942125565515706016429248233834072204274787694232132268209261404794889461416725631918318770786353107977030850368652738845407957420961505350333475543789047244464181061665467926138881484541767099444670453257832421826563299792454930280640704399080160236273658797315287294796295109978202517804816873709058182433570536158715314003698829637261421108614024360431306369442813262950803962671937506471103379912542068523633286179365818774235994954119582724821159419625063863161758802505761366466672487951277695502501509744797035285511349616401634781658734578566955809540690968780309056946635856332623444960233471439249246767717850352070494302559527916452768672311555705213802269953667849179355707539362562772189098342712545058372081497593234459468291019290049518008710087019689867672237661417409725035470851211789222073752342916016411322475666139686260205083254552165100491683682385421984645174687824387961951018841748183229056412325486628253271673441532774661811873097867768868827463594531032228183786723640140379622860068209810922804005848679473045548151505900396488617069784394810960152835920294408165755555378719062674267464138523397783246227909671879162623113563623900558210479234013312064538146964389878431565133512489737998890074845851399495098141736829432066776971850801196283742793448438057935314169710177420435648878535716616397113385189126701884490178943524557054544300715084858115266078144741991351024937156572793860731200206300008914121166820381743836485406578364047486787566883303712242646350832201719469833582120336929498754679713955421787987475350297595231453832698108204234274198896547637339701114846890065159931719757599086355787639580303099765543151353475058210867138116465293050958855844532113213829370675202826392166300314373280870697638009878170227373964374596180666733796690924982900332751867850857383721340481448691155723848729792874134176317205105489991615432318177196265208127502310837848474227523833090974379190533286779319497195169394722229314592211831987208472258991632282763341615504836916709817732237038124941594253172426702857341886292013428970763692245648944814633537932307071725284491419499778779314798015710554053588934455948585140160216151966198590999594320438386522160887346742977361137677079096688836958878594191452905093585526965993589624887404110048697355326792975049006705097971223437037148787637173879017989512372569085264601395687496256553818581457078553558886274276641194211425909142526311365576895575858818081128224015949296851022066029323475531303550106591535670817657232825867891295223265304502368399493781390520759199520225494189790411873343619985760073461324229999308894903984189325598945011546450791197169072247452486726419268820242397236980155893960213775594436083069567840391519952075763583745213098882090374056709558420816353232347855176200511169451135247539635058780463743664935024213685170716847248867607852591423083751799750321241791414274377476996478469650083927854790093011448912059713483951887962935122719621040713363240195576515536714722279188033332779764519230860567626523127371994024888953704313885914107673982782638396992070482651586591176624303362502732472071780071023907860381888023140848555260834828598087677774671365921838596169657362545238702759423920642212796479910177544030366858957597872363931197610461023000722361388407744641261646331279910751070556874689128327696988232831782537366743995731534187445044111623870111715458845414503220725357787994556767766323617297295473063567861844880814088110215652445274662511946526991645589380844119871772706997974407432925396926346331987371835316817502926839975775993667553785482581009419871701911604685511089568555071090529900256842192711235676548310670386985912740460977759839831361203210474538179855143371692907187078227838996585795244832408352925552469755347161350093319403231449899855824557773859827432820175998992838394306112039377844914101242621347584331814451692568083678780078666835270761478057791937879163206709674936901604723543993067291969400896396168105176801983257844461206968691414282804388040722074876456203905477791294888070487056302868249143858646517385728567897331098994022502937193532007413630071696503182513559338938040639550353899099651303991712849127378696668498041599622133917203836777350675594928810060556678716958664230891896885338086761235278852098375385851185627154218798344705902802576028836370118275012770618594033981842112050019002141723328669385782284436840727085421118531281816961473548534742128789173291866256487620488986580450215637580932968821298205156150126701790803117371505498059135644644887153625629278638710062822870106080033669748368357607153094887463294504046246430192244189073231065649231347403754881835730452156945598762559663781065444014152636019349657457870868537051991342137202072021016253579064414821983660084478104943607810238431683327409314083357759382636718546850683808705750173290296354723828163189418516859216113839368333444923646556476390099494159843729598708063826009273290598285099611602287559823051438684709520309670074283862795162627271568975595061309154219546508969678212089969106958752525800383483349877238270841584090490551501178390297733644600420057960274110107412136334254477028732287574819353041290924599856701572418533164403172273271234000432956739211530485429383056870981169180862944187831391740874714094931137589626466796665850358263053655259303583469363469072685144171256887842797539739937790251136890215312365392505981980894429961457156993312064473613183413298813381351995446608252865926381795652551961882420165354781200469332997088228724678328600259871088528496936161936704140020861917748699428765244901834556100010165246704933375345448870204959230825452995399582041700837531284497837875341331210704985502614792137121264328124590421662278307595240091206447847504074404370148242717102300668302721745453872328156978477078766974246366490082722415253097505106090261989898235213259909798475001744163018887848764782884597362990752415166941085049128848302849774050426517243280699129117614123010468000927468333913495870931517310587352633108514256738962589355711178934271682281468375737340967974965161120169531054395087143132510241019583365668913055411427600708426168831291909228265485033614743542972714444192417521144210996480502714086132235883761372138166348040762318196500221481360225744707382231897870678491631809161604825085183022384884562968199853489957671526898717942785538354581161153654716175588798989666900012104071618358278663810432933873660179898266906484555417258641922553905368349835036608999290056676849060869614941691736119696086119409881335856323670810363791970230118770980061123547252370010226212082862217674677794694469512253613535126981193886116248504327875534521611556870437983349025237578738072214606123227431254647731676453859927606501173625077487832736058125575005942820331762680181595788946351698010400700972035052228285766851809534134013341567847408103908498086432051698268903135577923490014657304717323816128600360788436036079802090210993277112462741696328413514988676795627511709689257251554551416379343816552809806147811874211618720230656489703810838392348500479911440673746394000160670456017897614728521188138870669149842390972891298263820802163505512774200796856436571553184515488881609526588266675499712276189422807846008815159013495502068275490841220333734225957930734538944669252438230412397667353887518819404754897934831674051403610556733924669984923610204860055757790102393976116767712944226982478055230672530362095510501733177223674771076481166797221731768467573534636522821110654313818374238487636612400228705073045912402933461303317995083775672917718725215894418204598952212475664669838689260168654375549195921519997679725519047182897275044330789169729902487326945654356690548258199522220695101559753410661743591523549857430277655660946585724093212451090377512215475642494017083624719982464785902977937596940686738214865621382178461665739870854219461039369796375582410964930068368626745736313663044063253417541372884748058058708902630935410350675221339402215591339286305361045190038907984328637068125067086683509423297114811067870233976585111031805632901679649964030402680485895265121383785874678860757945730209110520010506849344354359507809324758188150025341847945645110996597284804478123057884151816330290176921866377425771018653594940705206301641317469753225675185436747842262869317843372964801556534867667151871155703451200302923309988799161537567858087094559605827328512531861788972224712824108964802257160213803733021866972273149932606336151929948685781998272131692076264226521059620141668623890390914698442440616076430526043537371324533570842756552064854347178301452196816613992915780195252897881547629515538372403155193948808807537038210099382374837338518733155079974232162886261728423962907848258361575000573830484860785865023030846273945214214991081550148140212578568783397752234127626834991314961990010066526937496279811184006232406260543800338411091561965266355172022168069207666585217243249512152043955861692961895676041656899028974071720230155869407941913088704936812428743176454558360884101990488589498405585319022603073100199918669871896475723316257210244550076927334164040904183892986731235371750034458094703221916005473550815516532253834827179242771544422515692561346279224124597846697113610586005581982331445249977381420830570921503158467921864190565197944405196081529395607341763569365921000960239554739662363096345189580510150181358111025781111726997754320487956264335915077808985609807725904385823348838041663570449983027419103247809844782792495327108424495187416317703462625129009080232721201568716428924955966911939499542532781204219692800334009942510248648013726707704401527024100226547640800315132363078637588032329389566271395244026171671793096567358361110667420726634320682344961011343509281521245903457739324498816519356767540570168211691968244515419401857250926658845379457423535106814301766372954811563356052156538707778398884731781065140643381000961543765162972282231855710941922428521109132261602376997546253943928230974738211210606513344557426529285027990202255243401844386397390125831405738075873098815086045063167877762181988187038757937527899989086804065139615394437101383439999032706282876551666246641673397291283475784833854756080160957729057684430312016700640047269695594522046934131074609010001065280280656145274950088374186093315211109161436585485961389098596213579400158158013513175379620954215547868062798767648065912124306725296487445847764735904492101170393136936612292898939303218732588142402120771256500825700396015505414741171954531552221207738182404659503823582609377415514338124340844509277281466897576553733908671279234212793518296858751856730020093134701899196888502903181615325645082415290185434810373659387631875144005579240990674865397721333416234969920913339106524573987345385598408546695987496279733638417660182556886977181734610869937657863611078805242101545880525669684747187659411943519640082698587368219959403099371135861674727713309664058692560038988463524698554682852497049579688781588866730223187226486108626481246742951169817651486671576529228874339590219566003120505520370096447221730082382906343944759472431846995002153642543873981687939671670666714761399690531356037870858769957244013707227191055881007706908107661087598381121721018979151955688820638679813206336393245710051424356405167632350818170655727031732510719003081741513769110937905415637404175404104055589729485352127376923131864725042154879504295386869572793689515071228951909030457426884752395291332981858600208376776197464322828726536781680178997630895523210156197790625900448503751810890879757209030212226343822959813874767817365351189975512612583597963379737124825380326955002214533532953122802855609002947551068468833012553596370429281855218851472147187921863130858381049091453032126938737850398657350519527125005584139344320757588343895243128349022197061746705306140991938588474010377826806975365175147284836010125536881635208054974931418857420075103432870868079284355285977875975623676107843087461373321141089727673888502877384629236381290319628903086239251242654465097947889273823560560856837340229774237724998045663860563623089209515856970127178993026351172132138411006596026308070136718395376486773662282620687220523165861562917652628820703739651826120490847782473288766187133664790982152322076764476853987065144962303275077378007397627112956624717412976274291289642103749242271814242964866921264471095139151401509461583341360684403110401291897594450271247650859913593946907933817945753012350552193267171814879826092935410271543752679132488726125755718361522757966336042541232565387129149907128147644910347535930139622932025182107928526280624304157074454742617355310607981824507144972895162218527942520296733695591049578395749107422366077097937294773547995779999425018059243491195159054022519535230472756772342164596312085796936697324251886938361378767034381937783069738753874281607475499902494191978080675123574450077512708128912424328804301899837492466079424311270333113805439371772409139743117631425635100612093531692457447017837452845586521492177578112004918621641477896174661865374701957413488955961682131345537376961872736298428157314607181518672966283147405034808677814454751493876723219832151902371575415599554245562875178962019152202979143886916872827744740142003957196042654046745548870009757949006211293197375394486240229694033501225150439410539936417385017934490033313006432296429045220394476193645740757059377230751717758577976037174117093116312571326810038861037811277617832451907223217049182285990183914187344982276923078421805636659753398529088615634504698490663033367091219660942952872533666517855072848542489412032970622085672685315421785590786864723619574200870951330600702976732539328331782487488052810849093749756697856112275043806240943304996611567499228902946230990505348672476809164285177170391095334294316215101351935647220424152595953583897753539952758834487651602269547166787084714100561974826033276881297018938258664119383402573719443527798912439118945518746483359484157233876492195125501491914034018149112672209594878972473017000776747856528380966670001379005306633410732247557491888191071335038844451582587342991553978849806544732592151453498076361656343770227119785632015193104944786313463430334819922157597768016204404564856853758565821172177168586199183596703543548037770107473345288832221783398832404707668836534184085712371209443541374855048102941590047240136170027853572148652103154742965901684071880505581556955753724675526536044563514714177428607895981237276214145336057426075084143954754635558396162411747607244707983613783337848203212884294375275862295776699532184439464738415788234362641148675287520689370452043801203492414731857833667846726582706332879236091461877118584920527236112840346691496337996471531706470344898978273379997280419606154819982579942440934120781483516916156720900851790988001924370355819798086382926951301989623176257087994434798709210553561938211092171828212616510588860558679479573530019071477334355292828319399326370570170440096164699766024914897960268863976019189151100026231515296301275497622122816384051480084018853053581406934348762210177607909774014564883600879969808941786814358266786240322353966869699064309398929630680326880642851481209926171672667012107773205710045550801509804503933734710045236727106970286707560827278065160125166191138012249304315107347186038488957070486791750716371259538094347295730394845309121317529889349322422871567680678873304865752866388896731363366047000048977768414034987042874915915590784162048452786105170139751980687620346618475408830694640214839802810726598007522378039134620182498024953810625382485961393241029905208601910395321576196697042379042419069476568569297673828989301000355661374343533488190063494023349851842984641906338307070705561294341855128271630380809628825004875575052790576419890588241539782905361492927838732984099261978502573234398680676834733396270529905974122831473041435121186850828516226799966798499478076607378840916455196362206181270652644594148809395350152100127076760601922017226636280418300532313424374200443639303299647269296493545825746025641511323299727761190554951342692436826203014223947884242816190404406700817021955761500009382691134668009500364450987161786903508344106176108433784240281557083354566642633756106539072094805689352546619425595089341437553969704071286890000717335334757393789913218412784174858748244440059827454309186010619409211969000945703652129020476871115966352778842171805102509401223058953885666383445682606695675774866362818147327813787303073118418919208155364174455512173221516827363817763196998383651025916411875569655140826030268472479854278348446541130882858331088350414090236086427731719882102332622152768464403668881829454527335411256011006937248678228800040011056430197553989592951823861517026640561129625587627982604829483191790588653265615997880092730216145100216986045987604763436129812335902618286943771221485541572155076529713386057984597157564211950451843764536603146441693672451358284157791848208482938839257574145451649096493372811024020650278126787931365787406431865560888217211593264087016284179704645159073336204302951929078111506159391924822324846848939818355438487716102387300174188886520002195958874319226656417656162517139225437079984696762134927645215956409865081394466563694466218143176143384275076994195297793554763284398161359728182738809554596821835052391487949634747908379519508629576022861620578025472671254265256078445100001830577712987276315354049248771497018007240607128371944146209862602815551432013021926691305343615725960385447097172913503953421844195314806254459416756604171738777746360630190519421514668753734433601572997894143102188188530838370349342658053479994048884291431182131562234494506124132849307069215195206612182809116804672768502451856608465680435943616240738540736666829365182977997169347974264066011173556192081785005575323312876411664236721447727880796932731640458965158163595259287135643829799438008362616709242738467314930793177563026159112630294722698926750300578764370413156002483067957383595669108135589123095854417251551822089874257289536393443531586962939505471157059099511037311328853985608612516125597833819919895598676838647471173955000035202785114237284408723010342699554269665578546219718107474066487059298691893474145205690694005743145187929806926348127830269473747030748790369272138374192740974271952815527588998922052657576703185720174307607498299988674651207774715907149333126868731559486575112556239558366384119091528597315784623023617674175855580770404258219716532360199003237432604164165886438390132083077346207671317980629261655798187716827669514708869953851748723263269704621982934325666148299897868078918974943133592082056267438400314878354288365550200811792766494581404945334263179566164630388138268237685783091086682829897668425655855178633119457124073044643864429181984801667753402015119126392695094440746200736445584336832742010724925896794005909362769068035034934312016343507533326725976182201403070676165527611296050304093313539478924836447196276051059351968845363287697539632586222365375526063628263092583336816378830073260750843546184234180516016213712945797569914677120898686014223166562729911076141547199776870438673574772334254174485667139310597580797767183853691842621105710722387760535059673659217588259578514529631946357333220854109770799532476920078335020887660519849939339586222509586205426805091502621050124050220874527625799432546785269544402930131421298456444282667823777664939418704172911341083012617560704840823386423936121106926385093412437382957156623974230276711757992007857997139525109661198575043968926516930812536927904861986598474788872554651786352599194032006574433237094359230064472874748138911115330109240692542635362327184840150708998226390767861455363545275045060124190374958488506313711979666561924379711850102404053354003395108564444955787654101381280341432913752515958626351565226554522400144362558710852815230547844087068212398165982592017167746586167147639358016643877898902111575994102331602263716886423042029152288869805548430813228907557361694844342719062742976368063658328482056459136476207376094180581396933274398163702303122427743304433783580222786004757215775623414859953073582356645325329237247430638372148376198896640565601778140677810173100305010764043853228487101032908198872702386434203637449141371902379352850691284229512925784459779176706753820896919300858913257119702679145363426209638775075633849310379361753019509548931027119150116354978916936971203192316746032665747502950892508710020574860658680366848050532129802446368935184445477458198473968380135822299647211021453092855392969287634763688005494898021310453958488589368020866476503524845860820244480259976970150599690797062970332349646751333010893555002860438513846939290328247353967050373362718395871522269535932413049937315628913606367980307883554967853804144562278759350360591330015270614995234252947358604718640738679653874785646109566036687206175624759266232788337943907834203549780338152157147422970147559594349962478122270782679369842512258321453515031412584154458626467707237575087328922560062017895224001791292863963529459824803774906719790420785502463855702022388012968151157194161380124586779644611209164300840109059118491829175462812199531441526321326456532584948813781253847710893619805672272991248611102649455349571032387755001849903229605202166651485510318729842659453460176115164369540549315407200787840505894440279308819245313313240605096104947000445113254465104618993904048884553603604791204592972748809616011528024382799000382542733214726088875145619830689868199418072733921517922501578211026461979199778336351939758890322462435710627019825049394941188990460664057727399578693259675281012683285599084735959886450346325798586927147378014070740338544774038328805215050967277811745240017847707422011238441736671781923705053483755093898679938044472218665331074420267655520120050995902452514203363280225300943152936944295002486383539608580441863850408273181866643654119519671099872654778457183622657093591627958417146042227398710370853743299404992902608416621560092815870119415889569875569291735442320879922695602356047193837705497379613886987902164307289208360580691517893757023628878840269128001385329245770620409896781242767815240782210354801292725901073547385258102307084701137778038790578702303951011748783735656788127605335129355162837274213063345146134103921577764871186471920127225934377691870653208634237708305758621907239896762851958063809319488136210809343584684375787097661490908518982287861896042410093529071042067863866479256975604297294032049615056276964138487126213871735344350966253009161249630042369659297834465100399042792940613718064902815727589084114497062835229679254848116822646049463361021045451119693275318726210144470518790369058082701591359117200167562992107388271438277377828862556934021504047659477517566313288530150841482413955999430872990542662438811056812497059647061364634088112372318342351686304470620096805780821535659239151370562564118102175362495238581551588805630736017262211608838551787063860926860684667853495350572669428778502495616128867860188889064813778536268946457543601995153368540479196686692769631041988883833270408915137759684849048284436057802897545467833271426156651654166140226891830870220528679877460963620569904732797048026774024780365710257362535703021402671766920465140178415060521959555541584443558227584803138080202279154272978872173074989462009520541068911380950661728419672900628768108209366556826301172381202831765421636676980921870410647106685386372556582165022245975387576561883849107636653843923698217613360626034569407919592151769984000908452939442637906773252656767102487298383297335896698794930818891736915329665074246553511993562722718416170161358273159479367431132459038937347169704616933349107295618336649010223655518537068997908200895015292080251813460789587759909238394125928287504855650563853593453716828395092224853191246356400973795512694727829002067632843764747270887168315750161452322539509622778884243806428386199710903388164078852264271198243161886580455678790275836579903394902923653677077128176860055869462267474999239549181766709302401502776840077469725150434297977961225432800808918942437682618561728014955271817969432790219600498493149357527486470106017012493577891137710697738668475249078144570004463802601035136679610283575642104923688315898764519138683820318203957158561448307875494618397413879913390331905486389446009066833394018154629696796761900491734067913640913808076228442163720296259457513717947548201343872806100888551159351233008683437403376895825075431576346773491354559535099352555131364528622961689078123718075627495681118891255122954121620424145942557937957641524930413835320226490145041093529800263668227597035734266189299370861505074545217673320292826132023928231949460644464664043952363535479641186083745069717555413159770196348705643713470196298023693539861896232458068225533979096240999918758464001384320373475139642541205700553149335553106660415109608777905832221799601866086194493983134043211578812088133141522441057595008052880275288317436317536535592776739300564856625707231148468930874884939774850853177238880149441346279195541721744054625168768458220030957577371766551131262897488954061595406662613054989154742027966284389676714620785803714787914627548324449668562385723865580325096471342441244766313658649050421905152088490776283106927849619430771219128839619027942411253854962412436142278577400631693892875985200334732373514275401061688271183968336912321585072732756035147280663131683361594238614690958672968252338877342164086642819342201947612847197887232349489264977054521614839671578197461242249491572433662034717506831535404768427766330394693852730294115439491385276434012739847114051238105407720653440587471409087953563725659936699940342053016577187209490405649924241175613219342007639765136423764293701171137642705450818786399537077861089988346737036525367793977044993636930936606651924103927169674030448933966170803394368004824313051700048269732930647248168044070520408747601143691876517186320627303874869289976528137263526628329800116973849964517437117376405466972428438206422312978468977404808958807345010583568431000277151386789770667195856239589714960206493600867658708133284879851253689859894194991695968311998019262275886884747955005949463374159602416407010085926114698159846437214911705923553326929847625564876492265848973846545946268487776954130025481547786683129516291152754383574883643945441053536872189046833093352247511381814297828022771423388107811096984966201550991208927810870044749259741127359580552693167205273298786714568542787405009476940786583757044204685182969762658451871609761488735415689581650277744785836324254152727603775571559633493307881796527021375089173766165777727746924185500188842701964783960451268267339337100610864366976005106647243509929354057300845085375852345648525732925639485462803300149597691993017118499726649942701673091958967782424286309702112255041793434441906452763967023373181162832950947542477461738590616902321875707227573545179061923856058517066904410356084932343926786439680531733400892050147179080622655643429826325721301316753053404274849684257137394409615029856605107952555848514757498652815982800982311733962442503691121319820630095063786623928475304265280736914984935422907275496763797716103540030515746907802655451430630409437412863131320599798693680898041246470374151884761914732809046029358828498196800766508395696976130162501505939008058265487441847055837655300980834602681800883932460082748232938985431470394690005300905981740921449752616910089305277256885533881949814016442620931284806153346050696545609872988747394983837825452258188752435430094326908728107936598580259418242487426789992425935977009192568448277073781717837801789353731071396563121365095837326843481189634522551626405000238855665020666119463966218762702892623349225117294640212010946431955858138292422746668738929556360548888717497816823815584749871606185546787402340201472453750502486606951415747500853968698270639522920403634993838063201511200283861670999433824353731336368780476679491471635443168737821269021956901754692783236891309800499635585932415325194589495797905224010852488662546359678382698480910218722457987112135928141246706763994462736842619136265883579843058264968593532248027549893496099550190683992762649755206479747339167343579092184850974400580877178320890996869792564238491626501331657674328785500652696895232704646418307514753041047324210196483283690253255807079530673905234466282809618501497736835437773157584045335468543901951917698849526200475377675537270585717593344546105514715944789353262071307304074633093283122531065439782376180531954081966499964676507339440296309345463469726676544897241641248206385080658315144830861559934357491831217690288166644308190547816154618394579395838479483442528719534509434932047150705426521596949287805095446375434064587760658307136954850385618033741544818073872249762070806993082058205075791628800210035332080869084543193945473888046652948165397761039756072446464296468344324647343784526602903961956983547951136117906584967741037868169115418939598418927596432800190396054117510245418371462093980637344407040297997366130827376210930905776969843878999620868761525769038767430894359302177746006504309662892627294264275689286055047438831040331543390375498902879610987116287283490647694641457785799408075424476725961924754956068972602108804503838489807728592283180755542136553377856517416500721961052535640443550921062498310422326943393683317004197594490354703407564658084857311879476743116226695219696028122068428048806833051474500929257725345971715179278510397399405531765485207628783653780282374373725561945439098192246756044186247479579772094798174173067877036014589572933775286735863419136027954016097177738132482072240667905382026630256459985711066153452005625347197833475656068998005583986927486422138137514775261141196529924134149499384595015641495746564088615586378602118621251644876131602532980412136321162126015194868783032249315249812115880971159209868339991078681838908636145037768693864076220129311748701942583695786641371403472463458823357197855746480834526143843360831205791600191916829081627565511279200505924954560047203876430556467430851354739354524420920969971155902382733281169637101627281004608980864243131681279270244437760797305290853948921986638585890937693170750830470620285359442442992476820677369010627993287246602105572650671725938187627725448536515578725360652665709183426478056559695358566633721170343894658646143482959506154898205149096655402699158486492740234052667827855295169457156273704814430758800875157724614147712047587189391839476678830554498292888719110648577319365545423649077001142906380472073758574392278055131918136742783433097901929528601143184182408116192025918166547063005051538897997983942957503955837185978336322243025800660283378925372436368835518685271889707584854581043557980808962596926934832133110441358566860771791773321733462482836841779355291375321832587286971642431346926490142341942995860374181032002753240065203086387460692468742510137566470767865677186774003668703144713192141589500112132024882588770377069797266842245887369320707476654342754583309139067796069004509381579065381243682526944668261092630547537746610929777296823311037853704395213553162885299693659524310789678093155335980501739047518085972552381986997114291583350509073173959434668794132302807857947445768502116078955878856087695092621501414362496788463120211037648212233805482755919473312575794735974732842030968412503379343560632148413985146099525425113543423952984945316064870123014784720680200902251968968349010769652301420101968205267413364787466880313843627433002522658311968972574298547603987980880385578194348688597286793339830314524060268374105615603783249025683586409172229785843496236304734160933496867343271089956094999008825818393169482922186440493563327253354442462043344567503929763804187455840148726227808882808158307112158457717125361785824347461735940915130951463133418046782195768906179722161510608213191438419503639337329434364266457213199650326375573419433769044121351606197523133166106032580466687323990746714774360470960471174746849089593211776426124685471528670662012600962766890273702520321602180640724847477529072761268502671090558669921278667443260687646388614680890431079900493704755008615106927129715347970527839676546242339318029325407802209654292648772491656183134706048551845489511813741029980040529524182854402278292874425566489669762436482417815362613869839373673748588838168712401407404475052626326994726034866246799754357068065759853528037840792381441919016215145503487116694929683143861149752287135505324481779501082597417968083285901473532013765757409948306718619899565620243833697794648368600845948243548300125707137243174226962422194579609395670773090052085437595564290484119742196212519436195608787818835877242512053852400571734993217092223104995688710404891378544942961243722595173672212198953818365960265393588655877159374131379195904062891108854599652134137780856967773457929986356982647428914871240936524112882272211092024152271816218250698083286891167166067632483308823000139758874510257983365471364980401980109843289519672112164112965314524471047837441729777267573522917204899249069116232150571286597922060087737571654290750896569473375595724484557794532759629283400513576832945730412320829322899985339735491971681999180015395819524014026727412800591818621269559761700226411620395232797151576589976619214678976317148154430455195950406145191179336022468823072910184950637634786683105977964664584811225127092278210122514531156242488651752198655986899303344173629913938955563560859873790647922461546944264104867416017316874258309248332519884854750957613663482727741694708521588110863809878653834061685106563253807041341333339554194094464985543110300427971827619794284251555231315750516500937193071635308707190165816697923795920738974081996171887234352121088494414989444711819175878323581801937411574954265481781156224045589003428180171444943548512234592396183031476108932791015097298794876497775880522970110164616005914207807526718725294080973172192933256564699760553937520017755820790827523694555396214688873980371071775583161393116542450719446610894704324964998862225110249484630740790913511640912783625254554594960352286601593149693666853948960026352409182950171690300707427502729611926786361402245576742081338181137840130867110033484302122664532827924705801699172619136694226306971129724742837519534834275348636748950051262596531702342148761536070840058292490693252770971139633851571292804713054063941023451493398166896584714201877079401627656514220993606463577609359364229264877141345206662386613475931056269734704600422145827061506622128085875524698553541368117912836970933188142472403155309893739938294973932800198520097883918093408161823836849643096366651427033742172421150921038105474930872742055314091153124436517916069470331244686739666445362223283835390430809119595275571472661469114940420359305668718259779440274866229919618490138320314570209827377769085008660653060481664003739839936727321023374956083196023852716666436783548278422168648517992777427301163541879529883353380461247337413452442093220700567025315817819640429355390473058961396617578750660228253136037134844700299174294140678592956060694416535591697149120617867012018053461887637781780014857462655348400401199437621850512563523184449785620447472569468950966284098397399898083259276056529919690525302025218423631844901678565814970551949769492093219128247268576179238057243321990678759919276483698179239380637421144411470187677714012613142533325419939218504687897420843847024788825084967683202367164836382549290166022556245486668942824384897630215977914612631724788493006972320459229505532154441599168734803956826691979789102265319543123869904452134028135297454957270901103506626725833877134671446626768945703684936996233279793469637269647076402932654098256314344492548606278473840134170168747479422474590113481640738222370689065135193297521423070136863714578094806084892365595374541502979902327779631694087614187356371997050302636609119110367149337571205076036439122467836338366740072795781580061924972861451899582398129429955428923098340922724430229901916232496637100121826724837745779227804220623527030631885119742108838128038222222869571797951592493510328980167401574772546768437571185447634048958288698161525610033051963594353879089760267023076208712654261390123841187442744313674152580328770320254914787126281974553827233530797129448033206027966016013665615417048497922695992053657427421921598477682435026895353016134639755296938206859755885240748701605823051036202046219988696990119750681788296864719416669637200561612692577344459325455195550183694971719679982130822192924459366307295221127375417050601909109232685539839060298808011143570014383146495526101974400081980689952637251348055292331515937662466895559021685996411801416925451583102624462811220505287334739181505749273934646177189703075629311135627463463195204721962416398381223333583804405517285004269524022635021742394200370900874249472537972291543276694111813276050059125863050094696521791521271002445291790967549339748878039414998827190148798587015845924731473586405817983241345155440016022880302964942172916504952044874537115491539351804281269768907735981559697275225696917854474957735368814099592095137222079400171620583072967504666863207618628818508146320105910507764323127523922592025627068323131218370522995129872393390048379117837676312554166389729978171507046394789996838704134319872572624146625108123476227730416896547402093036516693195096585394403861885230795126030633281884742562140118074194252437557000026466792093507562910439043830823882160001708704466315539047278478363784907419040552795143447722550667319442066232541702565821297970237470018076818178606735812584853303370622357524465671402551140150157171586308368130227420262003808873977597688438735260438914247473681106150489556868059574370684888540090577887045121546943353399224020484028980846806506758231772973070335550418647058126883430665698714832300750612073486514543807791422011217251854874702098807365157733408920020981147911019807310605054852631440688556799645731290439842331364182565048201894452247084481359119367387321995568265297050676511586864635150208809087732453009901494487444321618361593407550051604259444080194985800471355050614020800246766002823668884712296148286874242270147757623258170533272564253542803118361865535874185676919478734632514236737930865777265240468411963612709062075439698757616566398634052971824038520667023462144343580140466915634443830968268608179740474429678697354380062025240766989611449008046244317498975382350278919250117448838283110260435875215376466359532178207733741366297972763953925846484737823760682636963888289613265355725505107774574016636538849002738416645105786691750214051579891458297524393672300686168532695628465677115039797546990322883846935940687631184265821127346417371267913061935168060871688127238138019793468970290029390049281602697496677397445487177352527906778285105342887219640921343767642324113828964740556460086104207398743536032690979135797124213621169971147744424630885146786630410600611123802882966971791341669263831063146644146946889721307860370343286614931855427477979167163374956453069195744282646289988252235026949920146707825760830114624353442591336702442409155390222274416151836999706502366425699582252011948154061198306643881659496866690643568121093636106014658606498773421143755575920141704007325310615048706784461398745929346689462045401004883527646349784953556137869320335940953945136902180851572785757643048705137881865692840054033130500066859856446278164287004055074105584439566500917144051237675072582769100546436889286987225998319619330459163523482239687224122816112644642869924765169371068242786201867715541272450422207026572076466972383877104916933112980369481599351967379414794145297496663250976871796879477782022664624684909238483529867001597745496005178652514502777207138438117807041512926908736656605691710391484532652958847999121861065515161105053614687718451727778233565318446497119624220521266155128874810514657209341047006164091889170952358293683703781691420375421880930926890859044731735502090752090326378765540475870732026107426360366423388344336655480977623931018399557893361645501913257263813236309705160843681830278305818128491094695059308963581720888717895564633471075722068529350413800008501466245335770895172539687675062359937789268057858061649126468273673480466891385897288886394508810047494027354046132601870960860246065286737955616555114860060636451578691503133881394144292962381284673657907131401052905080870197354336281426647977066080896715022248971658678602392434139540433727899705668745425097227846863749492569681369642999404761039640674954824042671252237619674705094069829630550566743935821627704004315720931203891359232505556472245411166186578908402269694308416735103460653502263743230528498254022790197851966565490649443915505435201065678407156375270811514494570586462295610189833286115214958094139911845684444295852365612897873084861081189418325361416615649399218056580128239795512539108655723021331371751839443501900682938067562213442185851822623016098621600019210738106229849671451011573205518971299045030963290754484812909084228817970489248790372798374793138186629531250483343899417157513986877967189038696608402873290739301096460934747018460690436828200420645169433749227057595328712066979724354979578456061384616718617236238237037174720319224776529518759476440569440971307004524546528765821202722531290709689105996052723952231851863525621170741703280642849640473526108717976976446487043993262865167206389759759957272256722563683596853408299349219559441123752245807000561183151179467389947072172214045343081868318970746129848839510379151886081670994795125553036889466692032217234865836940122038413982064685773162797765893671571734477665591647767409644479698730833474273544100974069294649138594158355134457736801337976038617127605980540288008781177081023813590905651308056142703989231793996380136631736694222746595838092085429146764360499280369094520109939288318600119792719343582998169129720436645611753095401074015158703336286314696271843787535529643950110308465772657095929143552187733719912157924254561424246591170358781017508537406758938728683528975177756497824885626353357646607526451265493821649564825103593303124901594340329213758868426924802884743377157095336129524893263110547248335040392688761415194603970310584388605648589039617987062484987335207600124847251319278690158051383971328827201584586915314623164565176861170566781835736855537674385569107566193871722328767640341293420447146102642967668276542738948938271322335189713838370442756892865271304541707087117922107576818363346289509103039936765088107889088134214008216896140492525721547026285297833896823489623879173176927744801295809712919942071262301991715990506132384787067391528453709854161481477671096088589728507392188252647128068083508081626263879419086884628635175715639268738139881799496633667815873033072147332903164202539667594834833748870783883947345302710552079987523334938703762682725238396815038129547028284877753878920453109053237249519767690758822584863866848481761145511827383912252722769451100890826473449824561996219007055004079526758157077491283795498798445145095876691449083023621206145382637011679103760928284841746720881534081071736451725967665049868574843858892641431336308034273616465263339659892582513060428846316880030118208906879316820474923042932315214577180314389384486157684775019866529376079333874633475735290598717800185731709131286865232819055318699645016730937025430588959903760480045311137460619016641247241622609218003370186648229454169756173994708986856686956209373377670119237833913780638656434524373254455125587734512021201330091149842969699813640301419902750857369315187724570103668945431546662240766731209431026535633221933478549486282413801668598169801184732155959532820606807474749311432346552952678820821910514976962468272917370142405843052098296591404889593887422975799108478681973888421585342560585481106724758318494011818761046587186191765969576914898366095330250308554242657488209165131144045727956330930226762016252190648235459864367368325970512339451063054750261990631754381155423616718042698394006337727288255950851780847633260842187049466461480632001235314618282706540162422001233375448662072581865868367958532696154553979287085705384248714364142572631514446565351136170062677004340795854618021266829341165494489067793260715767448901103016897416296759194089022456621831662239428477799016346115855109881278453768580828309338271649837796944696528286755657499902722332666969301660735396164636812108112439115068501701723248658623057117172702250566665268145909944855886459738621666731369009024670904245146035068883648460334752325982555618121285461302941933303705086202462415630359432495606107743463331960819035664477543349200587782733970921197535392432278552517584681675225678251079104249087008379931954577566426910809474885136758277153678588525294922325709501034696022761224253911832904187240595540042535695715395571447822350850570252485060954982718927380484940644960005965758880242414824626589507873511424115483649561507808857869032837483296138307508905129174915500898338610330942152738153228951483268555337039925250770625119789328023072318498666458847441727348973554021204474168042217324916317377091793511030285158921286266826425719025727545993282585937140460034723141230561685086373104875185475033178533666612970389062436771714641098014210264909692106868041215239573517657181300531105356956166592280732573380766011791504988989771500945776360023442140350517033852636085348592498720817117283120479083332456652702785303110893458968404142508680697804077787084714640639692620021237470812342271395401778062369312771307068944996702109610356685636049394082771913082263803919940604151934830890910915943759750398394908066479648140531321214191939052987903141045587726352280553330439224264588481987266118929117649265021494621242112985382841463203528538273503965042156570392674476199142884709825782963051413515801699627937970119781778322267392331951279214374211715870301107519994374345458650145744820883902222706967199534865338541577464565471143740009719775726791102422891440967966774807710590558373374383395877454654767689790472934504153911167345461876301931731981033350901507209627102497360218554997719253717372316749442476594469538724091931182936933735023731063377606378120666536952344528361658187440647472191077655267750302419466255326466769375104335625370832674084493236569344111228951323083561280088240727085075130908636265665380675701609978771329020171628483289754896406499421321110761078140488142580035011029000429806019987139895035413514268526763724772801122186154024369681005241313683907900553598133988259559558311608615585056591957133749995687340793385713477388406628781160071701090068966350783744115481425617030392497771046388767219633173583739201183322234307270868881534842147438521139822902637821742675691883679465289659225154793520854529279768346027370281681203198104292672254877664648297562838312071313611863003833118134765697075154823452161695380877848856881393045173938089437464952772372595068833428748739311229840480174489560193027829265291900579052036250330883602221330443710897402423151745871590238679421652214216796390058465510374681499334812907087974750668397963668935161016599550820765516596280456900841131711630340077637976890676470846081346802697236908162777774387217806296945780413539157903530467291227736173332796576492156257491743348130614491363112339762191423984466870650451555113718635578782558100881074754967337702579855012164235227704082663152832500927554588526689717005950664444719649425539376044942828135605393969221644594665401021822844762649879313476267656193998251103962491544017041864560861777126029905925418264070573340063511577614109674132796514640969150721971881551178769650010548420508958090120651598605964282000941224211357131614790700965253939784762162579824858858886905258728684192895186435404055091815024790079728611738072365154280311351590604869546908600448701075435330243512292124758081459218846955752303538503385578303603208184798386676767760159083378805080333332124770850832055505403693456204279113200127029853100238206686952733018445433745913474913303985722901908017551991215260753369369634253492824878102794682882494346117907149636243591702648505731767134737550054062848545606057044143303395724250696589645989714142442430645602507927908680596653280727547229594598403908143608270365950330155858898851058073640094596504415386503721097094729194130517027805184725049126606716230968744975602549425738176540603065317698782330034954974507315883999387454927879035730441601908875378154270227397089758550079028838502288663333470084883460543180755627691756802587354582708571776012279699885966962425534925630600083982793649415979394127328530296677807373608259062398559953958079707796882809619440745680133072708619707609831537149195908553257553736005141689814351938615739559185296986535327909111421991387409678685407758909987850790121777398660979772125441003387295612496051348976258238146912117462955614593755621804192643387946721668210939376299059760380693771071146216920803852571743354833303339470194482497063232358933024240111450047966318047881899841109758482727109811965124943274924927419841560311246040735481841275126389020477221706926100168578226883336158654171936168035974507857755628644295412483275804013002278775022753342142205436260334457368230093473946166040150889284203316755508120250876940438681914215071498892212046999404033341142548209264277158372375703804910965845896795027371035410327516289959221386266437995636804075386196883033957961410618890631436536003349137325844709668482077132450213587055671116451933660926098179432282466178286200633061796788972460366566018782618783592762776358992890026249882939508930932363000707975820786461081859569630085497782666110118265164434960166973588326739351119666186389912708261880420676216552185904153238377425777295182614506617057731587433562883434777823189814293769395858955345014015367287836705894338085335434036864627621367904067865428002002696971236614696558595106815426148470026950184512050281937980621173092504659001807502015710167225232652056838454786205982794081535467126608364306180144278384471569306335922012649101203548579078813123305760773911809857404949156076289138094517684860652458373282023500186743622176974000945972835227026754524752521576301131028981900758087638359237459257896812587140919234100053684709230089006952232739005596103156326686874312134857384821259947512940245137754305401983784823269461020022426540423770727940889801658330335865462363511359086807103716028745441588534960674839589379676244809374149446264585498072308173636902097442529122696377717359191569454749242930249352282344633040759475926110507172108509750042783292398990634207641571615764577009595058246881132080426555661451353676634382747347578742061923843008430899745287237286476314398152238403936771139676236895893084078938499443567241392595074202825850306905834574138959989239825566819780064999023865863459672604647795940637494756001769976888494124337044206361501311988550865850804349995105142245467016587244817305383415113501324883117015286418163312652882590208415091757627497584199306953450604813261766228917758192002928928868011714575623240864005920900947845107387402266590492467255106335568615415510664588019428289008512755692783528272694573480603224993748862575531654211870353758653045718859903712650705126950958245986734712816406764368692928965394555803906715069660991358449161417984558666554286010582374259590933867137852246793007075494697243256023865075903540869210422337995742210040840672832827089376871916549926964400197721187266945193136804875433588237175472765315452611433886751144561440659311268339097417802641539209886787790457775000698289673807168359728880178463003986106084481172146794393249109753728027915866284530847281507186887162120846048561048358523243815758501759317510269808544387309074231305277165326218896460778558659759765424096031611147861092208039485166963372718763320246903194922527099647448660417122367534641132801358965371422764538804823440243439616269863359199190884919316788594307214390476000505781906199656564695393657832887250381088485223898619319085840009337599384281736326564603320637405802592484811385773627880203180187120854051232664609876560866012515129407015932570474952471387667733972197675096670070605436746141058431335500709822063692073596446936643652612376704234510359110624252595426210573050411809791953872162125356742162540104295690635617581237419214737051548128324299828829606879918181362021150522727629599128584834041719168808177190515041162435545304819866576300963563866400302400416396776388328307147740595138493397186715726512693806193778528155982959819074017085368658642614238862934756558623519803734593103370549511795641612801338183560970700072632618664105652569438644806965852102653057847164361796067118868971301768429063975953832305379717471006846649910181626562757137643725793474130088941881419646449503986134479713448378017155794076061927944017701181910557147190754889162269744489100902552918140692324270268999792017219430720124875093789942357492941084325360546831143612532691843606696640748098388041253764702134952838536210603065435613863428489957518487671284064325437765704742736296097857726042679440288324212618854330386122354705371502668766399943531858862124773854436032527111888061422598480474421663647635514358228563350634880398966335825763654017281214756657047812040801993259364240864496988459124675149108236658259296774769927469445427238908264820868758619913090390450696309532214481427775443751108646728143289495727463523342534894197118116943333986293660624639467808818945767218179803550706022258570502659206865139256745619622885986559020385822966013567411113117876161875920653557275329708396064014116884091967602769000136006750993037701647118080299041231233288554987527178081072872670194529963525111385352461271237938433299070588278896224195798991099288073212981292851207138282783862135569807775449816481913348397870071989917701000256180734782643696617923053783887093154361468417211015575334091196504066357255964233548610492570495756624132519513817785032873632606772477246152913529918335636574106568506583190924025699879013783861960388972467472669765956347152388163833168376844329847364881466016975410220259350894945171352440601607094760881318216319800239142772485544759462722222659305192228064215437888163291481160227388635340378985493401054366216893211593553182756339039967664455695628358784045635872596698568887261894096293809787091115552906755257026106502000753197131001079345119454248841898884659284245447097550707159651300867805606804359876920586702059233900274380733557905649753058469765363998751425240233386513677674677728180705363816902998002234236952336711888880366066146941377739913361438389762516320489743184009201687392515511766490219494591779208159180161257789730152077527633743982056851904156671067853116447479243953176829029710461754006001889002228847176060005190559740828071405929098004098075453927432140044038041067384307857129728004555113037338245378251016442541244652653815900706616628395004657441861184296649480064307765892573865466293185845656404260983876022270780766674166085584108529527003242279201354889258571026651593239872099833205133462775782551334431254491069890501587696418246509320731594888310641731869363061919005376454747102839531352675180906730946606298987188882001494180261488884116674086975864140376625510971956197300594169295627694236830462834356265318096324997094650192908238564295262367394588851508827164064302305705251816723301779410916010255293536769188784468356013473987251872980444268288110634462184962954458040093155113425060359477990599965874048325236793613116592680354390938818961773607394000099593876842355266712247039855138492113362441768060169215997514218637246829319096106250586105869029377248264690998902429069531656402814552831213650025539901223014832539074528848215570630092379522983610406597271833210205169394687248831221900235600422033639790004129825515618961568483368567016235132031897913264361808091542763275788179908229073407961439213794667459945264424416450225804179501823868228820475360412580074266113556286172263777278556032410468713577432043177516181609477358359972758060927572338189999163031352095280382666480710257716581293784280892275996812150039676020780544013667327963559061838067115819543033500987503455240481183876963793661018595402026354036848714055388773264170427400674593909438164368792357221110341719855336873006097145712519072834550825291927451002878721879669310924446221244013653807639034149538125384292140346944792028749768974766702380678132123151913035898597346580094145944413418645434659042441195956426657420772630968207981385285109537009862900643816899386851410939306481238423242189838988671752073633775414669592727253451014490393715805686807195953631754890816469702645139757324071402256972815760540073789245694756286047855562453841458540064405516237708385204852707933456418761503510291436079769027080788285488164632063890540013277492540429975157560169311313715648096078566104493163165361083145656698389577414346890894923405829261221608201988992938253624203034254388836103041622096167518122241935853274538578901182164358444619170580014239762540267881288817275034570469206083738703108700301908147535483394975504174652061365213297439820507015274061028482165984691507878822034959814509632102165502498295092473574870845942780760063744216316236043699213388783846666886179574202492786715679390885173474395344117630046917413210819822117193164819186995458623421071383075414586125811974961413033681002050523579427850622504491196641752115833042835302956391216717595820131357664613821963544906377573133901848900639856590611228065257369347417094288571655551426787422486529861605126379897350004822365736636627384877400173832053103033558969732542757799963362714505411751546095807452745919096413512582227483302389461624064088488921561495493318473907793911180085242725577831372223786830271000041673370180904647915505395761734267461437174809573417521259486505725255114578232330206843503250842638359089150654799315739189936190314637729892901482293591638599385155983554721191763413670207424003236812648050691181331480428010534328657097612471407393835597973124783779492204929723111723308562304394392262506839246417353142386591776752907522399413689645826624010551640588005556377384214372888485352965767299539697505056734772226435989929197966722900357634521987390452103294284903231461265420171351612820794911532331759644595097579163580824834807046209705742177738012738552030385756496448577465386445025037158150373443022548175091625798097149037096405341194336174669176734962711788247054766016757503195330489084694630332650950296654381602826831997036662550542200387233949851804233322302104201139195199714476513739518805557265276177309793340200256746934662153189577208702634783915250715815304030991012480423462309951646354621965028588196983250457433971937949803849122507217622721124750666675877140622748546915601881061859650475760266925340003564598871986208554567850145887330252756204388104376247902631585697400565791106267404126119991368969971285992466465435787226652068802692645425767154650855164117207787143181360271537695281266458125305678685474904240077652543367981082831568838364031795592113854428001407618904778384183488949488094766961067460605497922398995906493118088099837753047679178273340473014705634772707395194962952369801633126866331480960758134358963853804975704813035962652445819605941177568241111605399544053429324798084673286009555161309423451376386404065146846499176896620928008780323169553903018055184777710485300136773132178946647959093179691252589437528609666534062650365017535181313332422231220075570705945479517035950756756080921613000103532081672599158636081855435186301652984817204048846506433634336011240382880734261362553263516669191355414393814989207903948010006945453210559892130324683880416940105487992445362658078935899936132189469055696783170778658282538323849786318567795400551859776164962038358131389617416204023790079380368863301737010238720096362479271743209477528745815867088626664148184436417236686688673452009465568356612231755990584600250419241141436143500400694084637399476722621270642069995644113477953729961878285942448013135126147610212386207736970715470602662325674213563404622219318549912362032770334602348477232430917436218092043026928131263323517340904530830220601910416880195298100260401820786776790532127513331068522929464940451051370840250415811155825821739617932470829653594278555167787639043580354407250557255173493485667175158698354514040197155309155850135829346896275311230509995566905365861854998441603288575302916749085487079506834112186098894024772987962254562750256820893833850966964855031650577272246332395623637021051044382765290634888970732127551182880276276001050572969203582548712988784224036183951433351789447138194723001790446411926746437791189296685234897944294337194407178252982683751027055811679687923073069859730474784186617779142959492944810384519033338722193145245545126312464464792780091895221090763780645770533233687426672074737324833662736066906236397369935431396358112858690073752157587187552279947592562430818032228537249043940474512881979836286829139548113512603205176543839863891916728629230505502547839807719763827997109100136418263575706476005343433143264915314964264924392776823557976204211076251859999440638250911000348583616283371531841699151177967991612013096109695175515581713182941158543128748894270865933934805816208940158143638791844938388733194263939471099768269959277757840521716144649003411762129285505476245118119180128224840884911964293986696696004997756078997113051645289618305772136450566256596402993351495498319353031103337157337617169591679568642911028601427742367437014295810230905908441642290280199343034564535015854600823338083511510771862606839823147110965776743208921043587417374417056824455013655870280435706203401541109788185619036526288078480427973905506767950054858167322087161196316418772329613479188733261438264649299285005587386022505156499817728441217795052967714781423474150133926237990978065754521405759128929674096246718600414645766072235035091220680467856209600081276496609720692681432642215690428529541301194062809567175492720701938819539998929367210060354079264903000276548724035984130631208266108551215724464017972893864953783542929682498256544957155868388701481648851151852488905676648889089888813277737215294885562384913877574369240897003147863406866742633332041442284262708106369952948241987138664468656707072282686334302843614537244582477696880836457332316729240959785179160249210935626577950672301902432317707211266130439938179990073683981098687356029252596651360848631567434241072791198173266242010773984184530941455219994866055313464690887056960986356563899176067428846323554127608546546136525185637332611542095894357073662321357552382732309440046411925982458348528234125209987301400166934450713654025854533915038456107648987761215542582476339319092471188609683804898247407847031356867309933903764720828888088965671490249302304142007924325254387514734230211188706081692081449681859921084982766249813257845443881917676044993094906373110142483173704395272549176068537117760518459387443141174848556178063603718709208370531469176178579495481121654092447276178173357626181534146735438535855697500581165909180690594722470467076868492766980507461422715192898084320803220325336479705285341455281475468822489224743951537740175288850145360114530978704142698167163668636207600022129457303060046741299629191813188294021554761299379820795735974835747542467777830178494394963516459869989289150050249427144889226582362985892479149553493655745633272036621387057898245228802543049510330669100746121372474116949508823997089371950025063524275465610688241123711203253819184768650833405603072198781638500379194874484026175328980105231488250610689802528184605083396819904419640976514074879615219944276770092058144173610537311185941532701007361098133632135431487244416874351485455841828924689391029914863193979354922075962321786263440038196566320229601367683991071218123961907772736778388214050959801086881074134251431802529092201185592097734596361862353180771110716266409724866041931045795633926404965477142734427322489091093633562835721244554786213099333931207084446246411876155273571359260992649767572667486949100638273635841606278574946527983560244388154233489945937546512339710132118709608721772125613284485726096146117749827234597981125879252028779934393670350110285019460754257228785476110130673113748555563925342026258455099955259000357369510426770042518635083017137123500740950558798559061702855598731747999885621571159410264116552970402100107594377791090680891206019445099906007266859347026656036962726859930103728569826498325808428415998083843817568071945956546402213374357781146170682577273192637047575219918744338149639326284488356268830247547541430486183801237465395571929783877016289241373937272851904030862768454815921126160443613818197678436074556646933951558426932125115162003232537304710878024052110613958262153153684877580597081973276936181259357917583286313125930745402208656035175991805341802716350397996348253173212729852258553711445100968320173715851427106841586047381099155059803323476284734912228892888132538436050205087471362156341537792525138009609690340639602239103372687311493520619815208783130369580794533637825121443168831992986038581660621366433556867765907460270335028124612500070653345380042429878770204819800357856696967148495447205040071912999471943739812089973632958275115652961161580665643068330336141810046371274611530947180415408286434067158391515394472122334462172595999765324366558122795111967096138574198560658605961868513791351777144189916913788319780438901715333275795300147093220673894634796731141997425409072131340877616033477778908850473911179164999466570214869428225217968938305193457712241317930358541441353534011355811371226647128247772413054278545414115424987816397679366731484577776505527313097427636107225660795837930458959723673304271479288856897232971609164528847606967257515045210788064313000462698542186443322929198806968729957235912362116511341995573395967429798792161320917383277622521554260381829906101077000001974737816608707751666752933839358486387169950114836461821207967015091743304347314841616196191384376477792375442871368165760256230802317890349529118065149472880704665825468020742618431001489451440474992557644044164509360568750917147281923574144977025417942876687608274434406131316765778651173470888225958014009580261676314200467861202702010084441079876812044635216526773763398828976176566168975545366960279268289533839676474508616948342735853892155434900513353740177226820277011382984829033453060697648609690313492571023396676385901650320025215156480264380359398176350509560065429887295973180583666485116481129207890810792457217504976904796336348457406204713444692352610165883602889230529196202391360496178798426079440842738261032528200799716889367653708635510921909164800799066038698365758437820294081410564895169420680736013953823990731848450977992951575020377018508262205319292011060978039974189092992651640477071442064103948758934328489742725873628112117879145139690682389430061290680556967630870847196851011179595756626665907072016121716421568287138113112122265373134410499736454149623299695200227896788678040291034231201835092804446806451924635782058087718700870901918629903989503568975129834285671122813455418944056192963981348043582914295922407925720676901486550200023524110229938312191670601443772645062046438715840788328324236183256820199834418024973340079769109771732770656515210882288518734705708754434343642517632920829591964081771454405643538765475148120939545177490463994980795775507730081461972277183807604135766017428365752217484771469457097309239054535959058287966414093173370139906210467730775247899766097177307829285611734417552882385638540036249817753890186721936541601656459133787151635226525376495006329146425457649155757573897498712764693822068804951822373933862443821902798022646500917069859063878744325118787969409365215556223600867113269188205252010358546589068739133862357746908732779315309028670726766402642085841930521321362565916956839380672614148354204310897044092688494478877876241496331203539281893931827359095254110432647081557484504179345068573311682046737404609741626280079845713376504211531049685098083373554827823612668993710135188381888312054997431479562002551302975847557314861249929419187544840013292332993090509548513004913774201504142511836630384907466183373353330303905127085337433186389807261970818092258221408554793145081146497579378588957291740024272097789013406119385536629476028333659532356777730624272278101924903618201064810561139905699493317070643932463946040274665437482916932852452975442682950841469291754640286423794943960298059818755684288950771614452469413723586880055006538338072769163401857096741111191679054618130858705489696207928967155910865503960839378489411180035013339170471652009578240562872793622434903901909551169545870538747403376933103984712851717470874629751954618572113891563039357930980315663260291859288791392553181700448564800758806476514371339684422939677823670958298806688841016233699773778593978151042624550617730631293643477340797646212677062465909314195143147845170621080211389680309734303354994103712215734804844585611383016320528608342405236863302051085503588421114896966772170804870522090675385218570117550636230483711206670278948856986415361208020810281156971412476747850477822569269173761522277217282222380821982422150209939826482872947455045946306156953111491879682330807139517490360622924813774273310588276624123534043055060593017255528957371645214013872489814944703461616566353229914090165485344767019779089012928228908078654049221641364558438733093168220200222773028313391386216841990094621375913850674390231078261095024458528864490764673646791004807294279519978821097667568015298093437607395347448723775819017197346748542610334712297531728233667934412675958045469276241517146085599435743995361813933721079168919005154989773552071239730928036941538082520404033378215894330039183218261728635771308735209894318804725975353718356450239509684525123649665182044569781072766786956406555583757262686634633786092264020962354267019375099119634643193105683090990911089748779996486664936641073803522207989909222197980018944572898759161721482759668399848284566593901076333114149686470774707214698895680758668145325413925848936089201301774516906911660215810032582224553190129421210169884384776983709689045939776911201030285889755663567805225816922713841770717920224210064015499137902500440404990501003451137172519827020614484025414190711909073470398624344605527790807484365629216276750898793322387956003052672008692631255736853660447523435376719518087184948340375256871753418313053471684207679949511564053600946606572088861095992369470320426733649815599785251915283523544637811089406306153969362446865774220509001882164131855037740322343626157684514093793329587496179098756819838687814842115104093647982508859072956755910083230027079452935086076140674002234015054246420674480550919254995727447646065382288992148662889188922187376114014641691864568424842334982327455228010410085403781245352512687354860298471173978794887001099740579461005283330398686153887541275263354063368759331821935721281960914734004415957426065866036377994040026244282661389818529624677063548686734289651546590549228503422381599037955548370645922716417686779461492220978667608091875831277239626754489323432442711028110410454151177888241313246123154480485120484272322222092407948419740267545964882429091650293362376486032881612432295914075761513816737947183296878747253923323961779169731850050158390168845672688900429065610143597041440140921368527747977004262522867261101556231878889444123487460373474867470201384743729181013522784921180916706433914498023698159808915334552108628411378135789284523501873201314110051148024786606248763755000873961566388732940019191858152047892942388636225505280406479829168215871338262937240433531492934111452470856357987893775168191482721315783733482112088508092681885584884059173592162566208080952276550713391850562533979587722812410442320357682838086765684631893405470566492317736197969112612684300670768435002210771935258345250657293988475582211234043001018669258509036308322361700936772930346529262674525700252132118608372826586664473725799348212816122300993067578018699805974719630444326260473098163212843059677516827729179733935398826549277790057560422703566372276733908142266878881269249154318793943122836801911435068319818576647650095262457177387294149432534040901532898441477982652026258968634628768169363995542447439347347472757904843591274603579745041640780151047328295168504287388529827569395700273899975195464810482653487093814695184486093744275410480413292483806294030207092304912106748692412928734873925755660771390106013428947359286206960108837766286346139628347711478864486384028135174310864806667499949491896828734900089683827052108281082832817695098335545988909863020280458458202880757068462321141571120499497600669602045057691773333325494786192370737993686444643783338630949489012698645183992892615600853294138874311255715197081214166525407417081291202741930821201617395087595765422044721282757912954980891395632154532362630232147797904124514505277074401393495076084935782963936541637790466084331644333783722511302372362012338282849178362321698202656105985685136832825672133783831961658375418960902339918580973498344815579883544136737954008049170835093400673562386742970961759420984778225047833627344406192496423002090663398281146765140222805503491198779917545326584269267323721806363216846128988883056509837644700159161414840750576858690718419715564410845324336830816388315459230175685424221661236614585900068473702264150744278889264079056751551988723755075765631494385487715426383006616344460765902885299288893691326189671433206358518672943656048775855154051914198569357426865311663941137585990638184440353115895471317245062592778527193144687349681315718521862296831934639239883922488013170391047592280961816537868949925522957786230241363520200341212046428329277396746326456510900751302798157746109931105497667265281757964815912753467936457761628420246132410145670415334518372126344157019189433198586024245227680899261774451273922044342041541395901518090141587763227968204192009565940340533643934457048599654973281898346139727416040927049862532837928895597156527729461292930836275764734020173497168871200684190361716960711670673419260441603046677857979277941491695933179321798584191524872735064668645665010369860671657422419520233669650238822675455910588372020524863410705473079971986341537631165787540750222899270845344246773737438091073614193302388322731323900952737120372185412678700105486105597011824618903563600996589076109591749607826140767580509988289286823074944203712401936860219892507117831111444852961817022587938583584584132465098702982175892302774092906280330463585587250323879856322356158208889854984513441876793307620603710005000678234388595146085118565069974752426283165830296608398993298743993019393036546076475910733977861619497702330785819627369708158701739987188892208706130076141463594280036766374870747764416526020046790662683872222277622341646963514939242765647461114140673050479845363586521003423360362079303791756286352117445725078183751357432671900255954874321288228619518246166550613593071965638285490275138092733875268154717379672397496511216800324302449806661120332512812833436701949466011222451390450904637153864200814208862649064495339415654779600902020634290392208984658992845793166034909285773380600831280613435181000434268777327238591305370641021597487000663690969985861075392793964433815387909883051376717950129051137449158854658165177629767551779990607953442580478258760679242605992787096503322086059969676761884616745534564450334992877035458696658851630893519011018712731617694679159877125018272273133137814156255124396662138174343477735702653102590284815573724248650714327941091899805774262907539089929938157244839800834411706212992369562435060633724774607832967687904960799894699784448277468662374498036346507270072106084383148009799915561981012387355642905644169091697153763923900325986784827206866659920558837188881875693744387169662926014986182325425986663764572837865328761376384203894681197953485939885662812934736918885462538273689220522388914592458044433125604119938721307944000357205636046096554352205925827582064238008638111507320250733816715661832225473292657800673953477056885317344946583193547927625532431873432499369842806616044182611416223417128541706905471070715511851132345628217639799016643462646706138072545251252848851022967446772717696461100930093767049017576696172213150680588320130078706859813499167538915270005313429928925099001880733011811327028596501858787470080961749536064172403657342797414174313825939640888945736465149111302786957944183599539720168970127003813666983647210165988626852405821612171970875899023966161580908131868416833892149403223364686676421780593589904095282658651788297261521167507847189681521245375091606165094225534075289660271460690526193402776403624786564698887116979224237794059871953924546378139804585905937702449438453616884082683500724601495109033566557778884261341928009614106717734161212999398022022365061401764816359591186269280059718157476257685617913439940407306298230692675665859781303159543196351711635236314810787731789897969044410844058409340111966695976959991350572194017996158026133073582141151777665411992096139389853363841994325681673059028556076943442566554291924148216030526747821972348385488894478870679525262173873098321541999508708873935323287568036853823368532403384826982662375864731172058142859294233346201041399024790796635117953811106417154629704590909300571941918909599940666206707120231372637552485429097150570573834658401293888407445521505740010130110710103132657557324226619158909379651941730261913333594223081465902948871556820329856392720971788538189183529667189221266576634627030038667689702887872632823804417632647409076669323139114176198042833843308068041158592217507820502441556896549138170200879224276685544086358915792644885806355413419201448529481295962639080196071834301139853586525385195675037067354333036140363325462119293967047749633218211709437481379246763981790692370239736661469910748391687610977322906492512354208476953380806176748354109093684987259240663352131175435308766314152323770255849180989486935422615145154508957873521002196857619551472201811652017250351787496668525154170024510327591959187317267636016861283379077414444911578570515882878818787136742856341266060827544424955272934607664847349609817097576339704130857558429608443617176748347980819785232902326290128359190821339456148497792657632613833601363791682356370728356092211545978892282073336558116263609921703522947606337200977701693658931820564817219384957603750556536080511884247916727093821928896313877325172305465908155236547553735521096494356151096961272537731242148084529730815913647469617739563105170901863065783065592113012337661743277559453172516342055395885093025626990004711727949857360074915635138999352001687506129844480986394526818505677212269093090015952240368281352123341890420444097396859053154695245722988334263164978309737807242602329654083357637086236896246460736539120409324379924802307944924674184641845146871299829819839775453275261566732476345680486629597903218020940644888636347223118815022347892986092244929909479325334579482594858169049269660607377459198096971146371347368265295785756966943784786209179025027974418146877836486684663716496908356967257458107062454700116892813638856978956160093797892602579718650624545256700634689932081670414443574823332338350617272085276331366205213068236532403196854114813974708735224936450641536682453984209388970491894404541416650215838754777905146189698417398715391018777750969027290059495155778778251665479821422641899306995727954910279741502033279327502795624852981500317902554519253456775011734625656753483916096189349757488467175499419507202983506937591075716767744860403577793414767053788934553691978232981298706632154079390760321337627425756798722002378013432347409874381466339296303730383550233106785406783416000074928034295093807396723944266498006986793619251129157747317853784228413517020424607379131142932045273122972749919437106146203838087038221213845483952753815791922568810674718630764304096749790690656539242511668739130577753895741692956005224109767235764250222805142891033298266737639157623072979545906599928308622482306624262204043619147828313594572252624807159436627629349844138599593505667005630039987289124032854028327934998520027194102525105053660072184020835899587608153775287339699130834181297315556685395923523493783648251266535842773266964076893214280422128267330635976781037570813592047211800242803094063045910748231211992264076226521837400064200330797823642160740461659206853021450389384042940687105280349364270254066983998399457153153793701563614238632738629572773758342184054230569324221031507966738501106241297373722911876068712093133993623754048864680448815960583980575898690946446849727890993127624066112103713858473325269286429081228376874551154479673519500313471794984183542531909315970416139035179727432093311213474700027481095839255847386230276067907344759249050989180499883037381269300301045034788267448786524040640540031407535096228502420796992140159296781412221133300924636589393055808655143337980916032986160018598006047279474712061410938665325330718255175637794448891602641016690079781994157549557862481593805847397740412942479235122523168285724850150480142506495005522540246324045552595575617159152067849789908092744656224551062871710215792189333474824007310677876807523701920217501210444922212494776035342492047862241958956656151411962463954295956794199830377630979982863715659996634504772731359181414846381935164843436563387235799075738429757830221026153166465578862114302592438679058169334741686039178302948558819134424679849282668669369674301904858830175292523988160682699676678337878650816529936586904156521338495856580025182798942308607519928174048988977435223022329420083197516473909163592170172313250844201785715640592608005350084636549103429089533279564968408113267869827348052699714761708056733575135105730497804677113853049861597310111229626927738914904297501176845465748395451073673835225726765133554581884446529947100588334891965204502222341368658981709069617032096743827277323996160778429355133433732342060149736325663335930014921283995913816217291010130673923435825625587328201554641294091808570410183703856180217910883626270448915546235859086023980513341957192364818499611868371108397468421070721493591648704656129993872569200920508203246546786951819005374967542238781075120248838890810948632221555759472479516197010515526054011979723723157965645584406420432167888522786822823113771948697953318651491324631775251742830465587344404627853669381987859522942834108181177193153332479815059730325491135901622230884954240626344346234379321008168195632942079276489203191866652207400989917622843596634847040786082566816298641285084894396051929688247625606392580820731252413621206849563289767540699956590179559794414035841648835977149165246385562010000441167935009572562961183280117748809137861521455118882093338010257776569732465553402883693019675166849014541952052000238930291945851160039824346281417893928579608805415977158636268454022901673149208179253735493046592800424947700475208940069782561096292810957495525994868939179784679564215107940326785270444124897060564819297204059840950305230999028497782274869935262647138332373144371874961598755398572049481731322061460307772445122433494777914915538783980383321253054872187790347134488956693887983042569531027751545848739145982222986152869654528739481200688009941726605337831012976938078375217970758024093110184435314390007759312800325472640123060179380345556178391827515504370933960739726288200068821162414653216021236471298512816646233286868024941198040235979430051407228222635164678694917542226545548460057810466065273925450242251429023982482992099669342453491538132613960348534742954671582422363970086036647383209483967153759511862777378841378583489774862170064089586523952009211079524047303244949196200849183549605438628494691413116459623421996008655928659204998001229487453275519305667154933131907635013488420581266457492802057673416424476251911626543095700338599641946914772092264865123027050487978400682063011084272700636155858512311025913768331613530126535537793186400762921595520382089875795351376738501263165243827468353854892033302546185777218852676382779759291625842813554884477068864019095075122322784205347386561172740694810816620361212370708211200675878057735428777865294882959934437020181013359746083177852754324712256086138109469431307728340504134217660309731000293978101144759263373403139843651590679628389219533301360998997702511103324672660832924049855290334029054473996714027406248544577384631752552800023857099875668000281015823195296493000451163127236050789160041411142534376207723903931482265442036230741159747111888157202821999695354959664284781458169359158431332965857893147001209321806522367006037831796359205138915311964223315032729862979442930529305915330695007526656079905769261877042601811385996450578861199930937074547546816860268999483527106236772048443450423451956697403241708826948304428568615199090328356354142683196219906741704787013813478556124424368035768773014563500432664422093218060626451530388873969971724261918705970788773683875519168462636989146985971873664426554957469876557100586208525276353155127789967982779854796334877687396826032276739592322132394639079985977314033548191178266821858269905112514550580096057074618870133506225396307801672267075617974754203192560758377299064750067787834287870815471897584560800464089620014582856577452664327967292610069730861947812891703691863916590014462514731407880398406287728755214224777127394464093624018977561870340945813323262265386425153418635181584730088382665722592768127998121816635617629494959779546571871870594768312758265334465580054593757753446294571685287169208654719177397910569554151813510381045626295688208863857128946695867783842025210935990411491188482553600888962216362467556921486861705115563312749417828656863742258731001128116927644207977375303808009109518153120092652852109614193891147198619297003282805185588364085362813575939277432363272124235155395710337442147045497023860733901290538455174546155060740194812926393931264274580076957348984752733078820803095032072676629066920891146124134867904592159831380140941927684638652554288372969037078615447977233992374780395463926117247558848076902369453424247264562797836267261667721237566246288713477172238575910383742976362497119218760184924087192365138519931420192987023999069550403436192480880563151724841984878897131995172799109736906867048114118781270080414053969228632348029246353765867900092813396516659160256932962042479971167704829061846219904995930320701210778271113448581719052549239645948090558779127329008610688619339762952653385453514140819022391623939579467834289594683612861828939919723163226667428431838986730849836055693312035202047309118158417042772622510101972417588862462993333376656038902781987580367477588446108322503097457647911307648176164249610755022582135039050216700298844452037831049708391485950508238775471129269641032574426914601182911504225303491129668606603116910447732176278273165825251608828145320945887411463173664553057475184277820327168182813380948316141491132419190650060411690250624945897395366497513456990238202364515146124590943233594106983105820542791756866545688236869882826757011327651952012214190716623196245806544222105867915603057272550005564274307122324196790798425165440864214874362687741632462465202012998410367899861100044656379157322473213387762576185304275488218015099995425043497827215385225484699523015968141221191804065895079131755967046370708286622213729258252588125142432242993629209069333474726129408123556883728799985918860975481026386029198176208536706247209474872114037868289954044197007856318791564845532298085256653957203388373786274624465520308439057574642954707952889557782156203175834688770270539194541407933985528312910630630321273450031164859883948165629825158139903065925183884727780069634824605519785019542927802070205537045183330282598763176532513443991642881389877675546463451378109224274920738305822739400741225750385746521972147612119691965160707347674423661353052315848976670179432757458154408585896679537134788402147515464666194928164550849722942717879810294534483536316520167625242999108887507187492808506084472596197281120790384352183591254898500147076997482849695126457715741077764555596007374280567105335578184658571562938936848442437286136756002255989241141052169854857016559075121470270334126752882588824756480900674828481491449328326286638641915025461629420735113434969262491995725294780497650055403426103192991630160530822877368112512781322238528609155540845008649093527487184224456784377042006131537029596262033329993722365374943569326189752384969510212487836875625762408455706421504286583830773053421514880915325293815183225267416648251270527840561838088254924135628400215447489296587197851630860719304209464366308388142998864882481385359777984651816130865137051473712062397627402891653877194927639705384291495313379050071858674046307689367909081164772781562630141123806313937413641049302206222809068045738997897993490471690998174576715072989205711861573969158201422499266853635097172999151776910756995520560514090206651702374377566400798993321569420914524470020964109880654839037350365141423199008116862281319500942548543879904538636519556789046921623549873159034493530925215941863684890062610580230125636839979233946952399825150636032058367231679430114944691625356839896229267338251304066911340158413118154834603446587650310734400239915549537792875923740335023200706040750352183694999255461853817946343561968559085456041104885631912193472993103322947345711883412282450973629981012885892829845208991450323936623447257858289236189948649383227002746499227071057627992568054088462986898447859846804675506168664465014911425348455534967632043113126887223986331874017072645411380624523099259753918475109039771416366062088158233785418564150239496841251082921287701087208228244933119118423901946213284709924364734165456893077237452305212097469516865590828980838972142884879923308123323418859653989927740165144945940096296019715596473621564437333217946111373326778851710221255189451917345520014846202371284649672567528969226095535966558911788483673617053267435454862539994371584935291869652896386512351631207656002594857995240916758135542181010579462928937279666197661324615415810960750341173854092467532073445295231772934803228388751953269245405367893954489688564757713415804147914794159208734222155450908809882371847517465244549704850383630504354058032975458839610134362196505221962344201171663331125958466210377793905773442910649491973009341350393739351536560487655859278668219661571703952206369193446135489399727764420538452526954559063026432570279246800837977917011214275257601907433660697622707499884948704502985213780573350473698608947548544137749033217274118918228652431411705497141189659556412323975995181901610828279385263694577195197236764387429007081068726185767512767040383577841865004418740713231674966134577144506771732956538558015300622870527368671837525601274728917861226387496720411829796012984023709992337386715320565120131657642380934002267482213067113772545653400426326731823252892639792313233489590466583370361004891076276399799319530821501600301813905785442522403262003319205741261897903761669904144546665069220428252185815804148249902064183252958080080621902867234421295955020431725515142126545693046658427868795245673208144999716436948856489492352150098093769479913788901747675813480159738081495178410615046449687484824468834522179546147217029146418858032066521901823556505994999410389871923502343467947269123906853452625766012067109106648090622293594129919240207958422865278463757990123200927998840872549070515656590609589388224376107278637772799976198529335267648790610011399695792344591309488100654533688955299806278116170775417939035534984908583785636537002304427672720365232776593163501678958699202540053465952982165090802873290593033911186400245621867770294008347005663920342969892081905305298099004756848855405332553048792687604296323855208135776548429801049070931209682615955405482459278348736404103477217101105149187429686333393085908774556564829045592240831070819085810515169011592994333516349977294190534294523644122889667935026730522534892415013341568085301018948241996839062436475622384713882875013174412432239603064740279703222940369442110060411646415690805277559705225444917879357547951153305120106484383570646710991105407131247441503039196215539607653540778160382021914163848091057796996361321508189728499202282256160335113056509134480082820514018306432466499422161526196842128253885808078438345490756360697644285685885480520440031326590072469371409534866086064384271017764065713677069807092662803174758114265380217090429344379481605605349904749890210061917589584381866410476291326594085363993729719415841842178006859221446576976926802725919410065307308463092164083370188495446401823225077485894405137810374074678988867623840616034265249990746203690277050467045934539363892926955597452401046875889205873963582895093122665998372607762576253901044103573282357536567036071342748865130690300305467114239029333151165473925992322587793947877401212239423863542547970719464938689358808261701488735643984073200555290712861718426200179280744287651715904706173757734255467909600249456757953446043353026986922116655068748179803757339940647588640242280617213749400412670944454974009189779299910273015976873309665479506478336043003886492324646843696781254384021363068013464442231748162830883284074335729605234301340296900039455404808148981614146806281546058337338074451592757035360450131699329550774389922252857129941061040079452683816196062777844918751707302605957206327042328355315924652614916955992700771383534169324023582712281014956397994991218147619143066712736063060614938721213450544684499610289811717936205280436020887076507752341621660571477450933657800828416721139300787196414139477327327405124049936668910369428456911447421340539834202097472750803822604865499517615047539927543517009997505754332188856330825893975444373177215937064883137151694314812227671820938602229277834151441512507559658394706799825997764201057171619742180440770856834304872510997160037357522768197175158614089069318756318818867460449398682276565940141378036396192940865457694057109323128936577807177308187551501589061442339045683387807646849120781086339295487314120657999561649101327156840537103708825121277425921954146286920758928655233622980456807249876531690088219715246734194604169584533948368681952567562141277343048068814256014388731663726760621385013564348833512360713465570407795323157912978999015509320806948330281224788741878909857351051144986545591312325608078516655295021986354656252041311496804603757118744161598243925991598195821219177705230934688124539001989132989739848928495261575024930587218035915914452786726970976925745690368400625808134606676458979641104574679543034030992383290958604452635484793394604130845358798860823011032622362251913197766183048150588469541332681341178434044731330889160354799640692769602065392048260510509784099456653140426365639124205802667640970399483199769805069797441587200736994064327927735759283380738671416551680435332939005558056136873125247912266581974034328643508996707047939643291357167182265565285919249710707004986444670166873515213956358772139440331340163149466732444114568749074000756579446397661714021723934516611462279690342895613837028188348736688136235351455427033538411984184507257468762448926511240593015406891037672617369392238275186671641886012916310758832028809773891664541961867457247510757613111268975615154127364391968132395424144323475659061861604877639790305882002793461362708766184024171717324071324934113861105959735065911321973686507032444046953026803424165999758487467003818073854561984616982369682306164258490946628180638302025291707257249235058858160817774888498708938896076826902801656869560854292741244382325405168653049049225734792592693214924760273932387665846409510735407484994779034862290508222078459369111910447809901201045249325477497622007209940268295038353228788739399832194516774883868839203224470587051455193583529447134251309632857561208784249056719338874246200979948752209666974801959619275610798278095201886052606890264545890467003449779513845138614389526755809128978189476949666639429324501985404123421258557851990850296976928628158368340305782487417479113625265852591062094999858519652911129924220239781559982073863463457801886944640585355254976072279431955170185935329823303820886858553695884102257437998540457245690047884702778847934953824547170708257091130966067276958156832707422020570544350118674271079951459274332778551305616842559198144867954630717486357492397287471423753072032974707460947956916909704039854433822331053292411688321041505262487841795731395665549602449893671371802832166443180211987564092831245555747029367563708104760347307468513749492347983431459784304409047214250673394855860028633828589642899295211145689983283807982552362017005912037514358667121769710963860795056112988718239694333740099377639887009561660354327498413241048735796173280312770097246738487815196683609569788157812667561163690509455434961098977793207833258999776348518772082699469470066615863360438452525788666412684572835079497381527204367069733930652052841237984943837114766327796786227842695484991225010628268755587630162970369012699395020019798050424232679400766799696969747193288620513977063497438338387244668505651873975716677576034680396643287453661228132465761205574483302968343055154591469719221866634378815301535083555289219769794694213377822842338741098357759308536114146461860253833721094061536305765322454005809508468269876025784947328376298824411769716352194025166695500377495931363004774734727795213310997268071544936639331792662601830056401626379526002210736496860709290683892749860855274094066588333877059934785499866820000055080404244657529117782712766701306686307496174391487133231189519808281745276645161200506966632526890865979439781289200444540016621701098309207678836921554940902382574862374664096423103507405269904989739290416549419021264764419180759864323635638083802625994528919773445494411391549873018351554999501516568949493482480778127220164309179019881831074316648066639467554887411931267299332464942072417252190218041317884594099977744359099529846451433560464012911090561713150012803477068417975241363975240564768421862703166099446943353641164230448745947015009406065744015921573849094347252022227444769463187169124894220155060196597552753170970378593190445010703100724773262896790637423693473976369244642119535446337156970598529940917097755401065427439268083807541395554372820933317089670500356444355411255636043679282745146210149342590621570639195845246161156230889149035390271386693437235813721946317084316464454664377712989799863153241885821899615931639865558584574669354392057312136445311195297993013518122335659830953953334398619222723311964135300822139770932266401139974337506546475259247631581367456437084458223622250108716316076615941880956554693096338458886335394280512818229206610056415014270473476067933865716593956259513798271928544212380279620371860890664827750921267226445238147809546409003155120675727814697663886946837350877291985773645831096347943822127448069812603032375226115169084116093299076960519519648651794591198944420503069040559056246035462600508732004928659969872138348101864422727579489418907075434919016156222470856257092944122352751419111256231331976572317445216538514168125931077748922481207060368140770390021077906360826467328388998573346252511854227353094057761929949952784995163480813346756495935535332489263602990681198604768512079575822626234304972975777303522831766569940020371333192489903665146804424759438674754752353235969154621695985330789978155620220047037080680760253120795564060256310294599824384829893173339936361892099928636206154608190787852299536895416608626492321485376991710826525945455538181351395733994760660777152132403322440508123729114089516300837086766292956151037099166862944551280961280661636380419656087976375756253776362226288080845909061315633201638479845770950209046641584643759567488957687429304570582837281946871242372813138987054900884519132870442311191022836168957473560978272641890649797450775889824387590040508250167702824578580223607453159523763276567536889148755165614826691391350949989888764264918827710555329413434489710964087003280228688450755537943593307911056750048566338138210548197992618181997424761446211084385001521413958523704220735792846033264845868685977969344296710236429330593270967086754889558819166261950755587889845072241751789137870533469383612647072766777919001294363181877695008093112689333672663289692579889579183426524019643260042945599533777191643714933144725702863493606480722461302007219445432575080358040259557784838892118687857675436635887808785973783100012293454761767304815105868009381620237415543316915930103530043924872313618664745441186923406226273583010930143984390674132939674129577632067976151182599349217657802192081131582726505858944496618341344166199265097239086299565483960672546472189241979237598190140202129026337433367220240446864982030057273937042848978574761514410504888755690447418581524218864884242215114422935676382479290806794152956630773162166578318835550034419771007586667604405204347381935316564468975155706133260760289853549602060276315729866655467928300136664258222567947891448821683409544280899449656087966622435932014802437828094076514635988359930926567332123573507538548310759799179952494538111451644775253775105134360016109221679713321450688180845468672636168037973612863091285087431434316841902174346342975793555659466399360850594298377863390969465313312352957492164395695918949595921310539570808308842630472009118771154004161943020236026990906385282826483958796780316897078225504091176729175742113530130595695514567655810876670123780714889549898606628177507059725612325616794376746389495566858014293940874200150477617894602911934858672336184569368432063711778262631040019872766625578896512831479750695264799528468474367686817702200097751208233332792494644012125266540151429154046725957765597008922677813971433374496356655342962073395903845156062986336341893754030284881321787019456683200224619326668374141341330360565089921105982618389478265908636868463537275447442867983675723812175379330446837480362241314843296252390208628946217594025811517291896274693139514020439515473172910559728591225625811804396709214787841316324305553561225338486240119141105854234637003687919702305993008287658845425571508763346423201715231352792256147482375719722534553224108744133396993755690172841447959910171342242063486440808870075393364120628907605804604777257784116947025305482594002057503813647905908508881673805623701770888913312470328966536787245959979029918688760572031431157021110798294214165626598060119215223977533684558301854254250739800395940132815662913319506779291711732399907797791827167306334006015002328814909743693869084896983113718786801130379176150621856946893403744884121677014118253973572548116575440732040399431528956608358187397728102962250880945414331557765947192766814162648354105558917308323174976479947507119709204159289778998592165313079007579034834539089689875126044777735855835103511609271637050727225751685433686909259424995731182871089830010346027187905546633994174445178529290542466597443948698033473474232524341436618015147952002263908731688429350071146794412130484411997540468734827320653709566708315066677455298887390369532120220367176230377571388386110373796500538149804342285250162733974191758026505761575889665663912257047280992849530347716748141385754689325720680452543252563531378788758973867498699519059892379864051628224867230754219505079215377619051230435281515122699345761419763395497936186119840584935653540627147868430678699125343747813077045159064181699967209240008506550829615753243337231245348800679061062380637984546386617172495384020615177474275406369140770981725851393127545284728685136096121649738600846730681672199678513464216374274928423969090089863753141938411136098778856011225333799087772855700208116118489960911245533033432130540622875077299771408020848760184593732660201569986726465830227355840662136188092918651461226598361591970680290369472727326810045614733626734649733451863849887349599061345715054067832232650499440031565737842572598509219939508106376116837636566371175903320969061734090497018974730367472768606534915475928388898977018298183348438701309242191070281356716205680631336676598022903295597060213115054081732850465908172195913844721044821103120405855813468048073721876306408296027843683688741489112615326354021980394377649095751546646222160753280074879718395345093809293515287804181906981947954593113932057971749129969320579451192597960169164514605944264071226759923530995079908968254013747110173574536014311001684810810901452244964513501406187539951659739414107835824453397118827524167332178324482250372567935000600560113367877590527448529476661352693444348540787294026925837297008998547122942446574083148503127606817450964187614286297614705869166256862100755300241457967037238087390953428416857601404648095401388573560023334716515356447902000168523334573498799378541876512387063064077961926149231645182595915218784269858051669276267446482008674900675345248862070803429694054128970831876008633210610641784620904550368026120977878043709065875121425988303807120024963287428703460628258697774803576925895113529167767373028948464375415412404359475156186263334251147794826108164462989432105019677281400481507078931178530954650002024499376453422658844775264923534955186631408370877614448193009009776943396121831578398503549778638098568286207183137561041683873592756750507759074667716494175227318808187098353504858179208712994453235601933001693484940208968827598214201816741495835542296884716842869501276482234649537665583329352599951860058657582585951738894408118149006552085800674992044802757746572118125648789493742481035307096924025098357780912364031913320596527044419924278868838073082219488456442400264852150776627032630099791541383214627712807562736799123827437725517849859080537208359991202758548841844985172701504864622132088937907606767052988782033591304727281260507057235594285872063050742194625729454766298661643970709801168444650481873544613149781503408042840804723669487790121996955767930091036107168265531088020293151298474495683549416901130099016813914291621383704403746106642553212789587112747734065285067618715812388227821787166364372332564918057061713969904275901017979944552799598702880849904827454326340729978918755726804192031224938067024730891607236666811123692992808912767555848733732744462554267137889664117119790050505638807939723519572368833089200593798865191628310057228587322111972706179635401830512921872493887709791525687585074864855566882011131660084195877316567086829499432943696234716412700900983559950577620844496312365385983087390690898775007017181733469921090068857506812273076283471803445974519495030321067917418935782887873917864417148787874606766721430497054421865191068933583017552549093104540011512598584697799326162009313447448843048703716014987062218324070441824144870074146390866630243306792865289345092033254335461286202203360759963444565801972582720762869437589512084499489275121724452440560900661168593120911267959162751818689426194416309127818049081176387873444112367323445517989850731752678127190369859073789634203218208076614479832692535716168615431813710128032705872160790352613494934601117945728877292462567803460803755597042783801792220094815323897468724651788214737248862171571181555042580726919940165477418973272210215901007755136204520646675452795087734185462012847291952787000417406867395744494702864868243017754123968326059707241455475444883725757387740752335232361087836592601985557421771379747580332399357175911350156223321671062938832558585834510314165177215638435472072727541570688840354690493371103818023933750884888694711108876757993875498893921820255580493775450704497525822865808455714133347205786004292389892832911611751051566187936351183388764159741340634357040239678581471423386829336765458586337892265177839817089546128991785075395934094701773508222996376370908664373912239390918524569807593354276175634201489260173249775479542456194003166189910872198909834643800862979676038560996868073047613222485238426333233127658815209691376246418310363617320802233106660616407520827932860073468487792992356297608255260376561010819334159296957571376147610725815099769749207936120374929156650084259672657215996199831060438346729423038311945484620122125254253979724462067537031641521178631698529097881155395476517728587998451390508330685831324884291796701114364383361568076632945265046514670436500701627100726418181165294587515164196740406656245482900255334435174498374693607789524670528711584348612075420372224761172643131019527300079778937280030228279417230097651520951965430022898400250522880946213418118669230939972456525671951363787769599289806366328652542196615638532841673654607654075054758867833811719190378290124982531130529947047980902191038999601478349338429842895967022276956513063545464806473535453530116616390278044785712568334602129826302999639612267331547288405503585182330623506187709477275737123400192596353724884613619554278016905528884904753920512045129939650407816113876092261147169362948918768370516518462939768592800007140963408988340196669960898754501381967988663887678927129575622877220027035376930206122180214941672599520078384969418525212234813687840018915379477335379817690995477358826616365177510442446162908689483745256360946526854035779801349476056903902956340978785372588898641222061091638862564262703854000757694321769979279117266525075658430132395897943056862165552661471001128960314801280138801015407613171454668945388437789627567168486610612256607368940803211841552258024856943310181221022661547752236394672750964695566821080555725189034313481940648978842864340659146663581424330084310331556522306678288621382744067299406081730885712294126045729146418247870040182192144395689697322839575879630860061692566094972240283503403821149403401694151360396114168616751018900501776712540280671481693773743580423907128396395330305171801549178632145056832510736935031149942259725136607677640112232667293196235549233991262078392234335026838852479740945444246342727795352978205659142772081882743977009618674340122994989815090112443502470086936702997403905281109954322563503838900230404722218133868724875367573148556855899495719226649484556621684919681526634190360643392439204689106987932641122740005382215637904827271060896683441148974105901166358287446194005262546717752728484990495615609982131885236873749132203239063714466515404662151601941962255114573541248934091725373635943166831479641091080556305899680529133454030820991437521645410626459406391723993312400448537497729359241370387678486690397884188233827836256963143858629943391446892497097086766707131867585779827415030785134364569107426428694181965493301997422033789847393449418445783771449591937817989396649067614566560529026431018715700298721254831927634448138950549964672805168519761539248537458374199316290552284637202504504852658074215478856210741575429831849552932746554903074311510655115437388734324141965726718844441743730926442012433869303654588278273206308796141425511491555459623368835196863508016706362533384843281902056565013665010800455491445389478598022682103528712459911297492508295786284120723053419221643903208106192135478427244809466975507415071563497366870488922529709173505234217032497970581723426869423964125450274815348503062249632800141348816536579127332100569856433899741487619257057415603696800824937308787372447498467340512417854231434133276567098349057175043110198415940523785668700831989463254054845753683487422652656284350152365135400614990345901097533450631324658007824358833858357445676504806326299970680825070152871555900960077421126146439873563093500205386081002482322742382451346784028487095363751213092246742448389215388544772754900146350353226573881191046001523976185003279517511140158607958825482751839300514817109800333683454321571668838222215150167365846649167099416244681468523851088757749211382281401475681629273927600601255810276624574549586055746199013417487671404282910039130787393537466282525718707071987216915330226658066489565571189632389472873009972541152238122694717767093372333362396038137932229966106054523363006714087450964752801536216259812411066869573761116902010163286791358353806391431117715194262839848131204177918129871124266334482768511218259387754629554579803869033414383509099028418167449366485359011236328577545417231562075378383468487267768470252800718591507299928351914291266153400218204776795181366785481198785053544042775449613939520506047521432342713287509805998373353394299962470698277012950711516021334415631748423268355495843336442852093175062019743183528726884791707202433731294833270752888672558984629082152917783083980433542545861765424992237256369933595783696113944712642044468727690192185609597171515123011016268939500440364631088327272385940507813526304948143718547786620990385439495885578224729140960866906450939930676416888274853663955866416879412646030799361045112256977736930741076441923718126300142181008127146491891213655999832838945028178762940722707229626244181507122340279918479879165097328831210859330860547623938532835034229607658349078062602683796352036900085523258504877050081710981302471595498095738488724554906361814478597286623700373041113179081300555217839212349752598931057754800490306579828823153133210154956214372347750237526234753311308313638628666273457499251877935148889191162372314280792762387917969305186466194672940819522062106593408362667839819090602018034109578914962065103434571127315914635553529443257142749236122750081148855419292905079836795952492577291257206523369232022381297954023450262599694432658859098002241395477824282807506359084841102412938708058873298407908774336783485577478866426338516616207902210138239248971254512530583765798741996801981276851585201393632336260102901346634524890504829709462022172755421877759324251960818199717285784858571202081918030542658738241404378051382342451984200675399998053299049351640268193823152908270331637601956050731929031186616083781168667589345121341446771723097579363273470973431668786115683442481756134425959152956483055690615580377351874691973952612474568198770784254063767982243718543982016811634585998985575811686853491281572526490906056511163814956962001811940284621671111215409714667093178203728338353499901962012064233637964705340669584009793565183588220463811386872683584059707818093918097236505416823279390284796855146160793668029708196057684947640315575982421342349167991980944054509561913946547469501800219416431010906438646489254640549278823062564110262053487014933818561644187787711456774959282994289870560767425829690122397396179176849996335220954187020317504616912980020346675681060835382072466538054332452734543292208491243800492866527062909751913849402619011967378320535156469789473258466608252759963339429019731702772874758691359417941034918559090383036928590297856911475285395274418680644305444459291859666623849526567648693571564704080499368055176902803104338569777617078874968050036818279910388865377656208802581809882775346444461112520131843049266370827667625609034234524633061250721011396766511468744321878242890440966729233189952807421538479814678842735581280292227634018377479214881184759832458202231475059835828668261021098286092919121608821041301869219654141520151345036819748765310864144998105431052702161589201681478663585049752372602176380086414451718117063779480718725095363229461696498976520620508010770475015683905281965460148052723958483766964775383074339343026156240320570750168858017414891999155701029854241305075323258715869186389293447674346930739666919032064755755700362423130405699006996092623195006730108088512247480199489188046568293723985081358546507313052670846234010284596018958110629847642567660572957503186473776641170022715489561761200036130114437734173314375560787705310677283313294815318497196036361424327674544033395023705566664295252191572871941112778910381956548469133454539651225263841052500054988545804947575387850979840321383742603682460043775109022009980814444788493750788217679081489733964833881058292350112921669761207957641842914419687857203319048699993197722449830030955916069638006921450832259161500833365689146782376332780983427370462942509377921570321239034605589540127738571655423263236733742136674035968638844367058747403836064929398001112507345106736233942948442484062846807389535369722049459110325064800722227078580007136014639118323737683391986713280175043752943967720904283640044201184388595203516905519438185973168954928151111897523022532733283836166084696779591194328585231879882001286119237375800569008550812714466778052716168002431210488827661046562533542704789396603815404306768127760493555242198075275204533366566793364695258045822744204564635948287432238283359565985093025016919408732479204332751122416994022428737348004888804098268719921713422970225714747492927649072726660848278192161558814970787208769472046423799007132062987283421907917420055105458477344603521927700368808345119191820859160482242227015460107642323711649540698296952286117549264010437518639223646588967457797599676646964442515346507268816313211491024371397130980291008485367448817213630058098928488656000087621626381375431021775607680825601682724531925522141406425829864354544582088660905724799398824229101491802258954508337344854621378507659249710749300697668913281708467555843649933516474444151351971615291477009141749974066043846079789401899673948114107008570500411737693998574835887546670548650571224899142582381958507546882086694965120407618508102252681454146900097247860794873218952220103478074948977366207721953346712555900783844249405302919302400066215053909940018204830210369897869190949183670335952365198228635269473394305777108353129316163575177268968819824005543437797327204293181659426427963895272341232464910506559445746606034479028388622081479898251357414460084841891095708918608153005322874712800196217191566862969097864756408593290694670662489175233608394382032847050902310564122518700014317017934218344208116122821627649772156774445091959509458757636775826971790057927309337652834066970972373218845955967075334179355712010104580706916004494914346706107201563883367942370884721506864198977709226339266157676387805220667401158561056199711013538882978575136023274980396357316235542531462875229053696396730895833889774201444089769779837993803532398825192876268579455391689364631169597352187493509541014703189070607757181760983501888249880900753620434729572759632218853485783449404781699447761764533705269094895297579654208526975257384919688644454445339040828840257658307746720542714384653308762079319727935598216395447644586446172822303944533989264976484117983417303780939522928565770424684022241324041545778501821861321034145654668333682909192279978191828121594056255142576828237747597086522887612564612459280628993369948888832076027570721240804277637817424293525571725384574905108942691934610959498268553603212733246475787601823396256224186425041023341592238171247798191250815602955324290318298366372137354054294682425527643818728938756237320820662700461399356507946385851918794016231091262240731157704266297000282293866199841821713481761941702177594207973198138871289319690685484126324122116558858499405577975600872484722484934512135761653890533622821518841271256926219894525911262689779444542329323344581495110102821004492348011296727550058786965470873966540703315311678272735570855435519000104104404074713219720166074222770056607611778190973188046579332530169988375845262775180812280524175435911594690387096155684854347105136265917439410195509776641784695251469450200732308804635966123408692156225725854012356650027359602932807147208580007557795089806985862959969456473930662778972251083919682164906758090651794935147676520227939147161062779687279145403060054316801817994990418398524319050299020885404359644949044896636105836248816122164398060038959533259561660642191516557405079333499815048050376929901538333663876115378735179091324275199243859122748493140457075639671266568786048473573153008412447613506436086720129771908256091877442344771180241611395046500831765351330988006193377437559903303949605155689389926148132623107632194243990769018848440598972947965345599035706276803757637173106261482536100555007378143751761960759946912572048603865093958851449205642029663393440793742230300812071209077748090908628417612077122390878112216815952516020446019561489254546445560327366628259817908872484923318981478990048078950532989770164590306737919970346657307913453001562316521694353847557203377765911342923391548398406294085889631719380228916393457415831448095907890641422255886106261764201322254646898620635738357455099217099181334769799648565852567511019144612428021087457041654892812128591469427381379317872038336931984150334302618986698713371201635242142529476715976765783244320994520108919961832738810747659374341816551104995734577656294898224251941920267616511435488759817480076844770419839973313545290373279326475757879824161941559083577282227096233672988226651806644941928523184814545501359416570942788183787598222735360985646906254145841565096813152983258509209246277741030261740898312279110593897026022713031000869445770337173814393784546818243801756020991230398788698938058763258709758334538013805138731583806249184172860693286025341149079087138615452829610914155367306289002058978417408560438084548675286946270258118822356057304515059923534882718377802158332123400721939870646946166891022530541563684751478064469083626260140554458429135376592193156678950345437460086142421176918192157720747081414634606124620225803079492609389355406339952033116106262928185525432245628172259135579835987331324168491549388003447101815078786028194029980084966112845285801656972559723788063781540796334558641318168376895630196179665538760508483069823531685914632081975474681924867405589870222276824127886534818723671654557806914435007157362313782541693074864894189174413178524687045659840689694846160211594431353978905417045171314107502672947619640764441722091147967082932405262078315473427058857635148947896117444814059449576432295852509155814163630474470982374687092420055456499801754723692971388410083948815492598400008283273247136634925514899650056938499910999355023133031655332373811385090707343362754562521154925966608109805261555170815025491047281432448757857239406711578877118456938649741934240766633140973681381729060337221308025505730638590345263039102697982500033728772918491350292035999853772949450962532667370341950365155617153804036490065840104734284564668627565769493325005701617416186132947549797311014688071003407187669090817749199952476721542875924596076777334035707244685590093992989284238837387728733457212270837406820627021558196448753961753068574118285784583744522893354164018031593797043657094667088030110736359531847296554356233540143516471992303777601654161123150170519645158987260845727612128753944119955182694057672779134283611659538231822845482452219482730690854435615628832934922437896966166664262964047907857784403746091038279220118844433612303937565490291403494441802258381561419903644241894632745856986274927818790379406658954228416279380982597894671701297624806833607329713031268340992843219498573201769130085675335346417568512280061204516303110746090489392840599665333598347908952266751643577515770390935676109220455525623649476543025437585132820522337724810849193188671990359909586874717568821790407617863790901010627887503322777511700658593924444132426079411112911041530310794348607396900117367447292666774338659622418452720945572251071716568426232841159646454361276900772413448925169949845223599652662961620686316334233472206598724921345134960468647400211260351495866558660164303922101289723478728914062126724962794437971934490228900214447749124945348803987464961970861786963418901524344706924447132007107274889928743219269001563086450656921754376170796240718820468003386351604594117604724469677722793424115656042813846646747948635654591520779438503493689282357158362681686472325249937531465435194095178567031742641673098481943540023097481330437502695092872525495282053716945504403786354351937611233040047591166888135604357574054021286891623164429625418059936616941290306674529568821614450280809172151575130483798138369651629165782600669220868540090420049751831423793998847788943967990230663269081483403342124825312630356052723854291108931011686245540286320981836069676876372303395186974287328813756147895030465761200999703113201317559724742458343128346133247236851817020568433129383583763568209419884677968750128790222801326817427048894402791418030342244594874950143066286005396424927992582250883605288569369521729206613173409520295843395849352622336202478603268318845549363223344956685209967571821746705695515820073521088523669619746425290190891598598635397066557289003070925533262137661474745304433694042920194247880479856151526724766623247840926828854143904847658477214054612511829335930568277591007760767354041534707739966268533945925188414454759451777796873853231816807865699202597596486559010134236025956258185022988126113110480537741152220780181522598646704040999617081747144680392081895195713355815581120169282582681073458662630057666335487921960627273953757898923688682124465797875828319421051450501799968060079382791575856588394721704135411367447553221732435199423149566276305007986948470255092176967834488337123513537735191242271259503067752707010008754785001930885273858876518175300317728290815181695264369976305978833823875933553646322812894023064298711600087030084483152438691803501187644104651022475963197466488444570295388134737984110292647191723761300211689286363266359830992967054328113199894695274117217368670705622867381508249676250593296860568326452880944552589097558827723420520194309022521323937257465211594826149936291606243471276387343157531928306300764488221019798573438534209296776128755023248002210985385798795845366196805692833056681753339341383480413153638575673691710087347716110001334167522005862779878275655698870144973052173142997712901847692690155507673571396063066258509144653242146561132365785762188478348796970656295739716912291426016433987895356651484631175258388425325992536220405242588932922287628606199174798649229776224661923240904414283509245993095688060688358512302430316639514511132587475224074891296821819155031894889985340703192131497016560271108657166250373382741883733006250418950907429540347301136028809194440435943745573508625779581097950098394181540794925149114970031041034251573764511814062983063955479251100613251784917680767877734034672603830147622354355820830088697654608148355839913765456856510781720638001474390293266836491453793122664927654188631926180856744986814786094372989962999506261725904796869601115321161340015317458096008199774062726064961436141717804834385446054109237353958365885297479597075911701411993522320808141173728230045634893236094655662677780344170761955159630887683607825377375262945294333045504352947419208428434773197567418220166128055431103691624001496323710685739600555516925869205548316613784469433018838154999188562916303597234869890533599938615096831613965363838227731198856825498270839456814945845761294472019751366544890634913498619354092146971911214140958138569568072308638263901193842687968500883960068904603641327521841509389316027161176966922296847521706461800140854063349073257696379872275278896949524229664331853084807148344598436869496620212766173628165291016021944346018440825578274360781539394825491175094189860626849009296186773543326161758820529300859600126434919131297808219264438668538013605431814094740637681026714896160336365157349443942027622806955100257414133972344407166826876054589076525810931732776854785369725724023278210202546140129693817649412522447280132950238663334390817743035873912396062275735931942862906683534836513848031549432391233249727595987988453891857702609291058502886496131202688482768764548151063021451108768648407020007474389567161437357251617397043592615570426025348957262896038355348611684616167452311096578098340859315493539466391284421085500930832112458951153757858461900645636771111012824209420788113501437660916137592999916576943634580969453015076585041088695234417755274811491744078362862136211736034497527335505155404861917183839770066365268271493195144548564103196561401399495559583870154027091108290467615397871759473872407231142357937956053341503674895263104715268756962114413934114229573707757649091553179333633995812551023361193830367795090380163845295748412920440178615929913308954816852727946019585044420446845480588603454748557782369756945362963902973552335071734625505595696892160630965561511559417040849244285543958886466399422650764584718499067298843424085606406407319892369659036793632671552349724309732648644026081913594678669860790634246498402145128601100600050675811239449578464479634190441639130282143125248773531193077870840149075259312250071097522763778175705337799379659602716999438733291569467315403085097174659122937020465362252606483560798532507009638034740655562073746461225655153279886272045083704722033910287924942807562483011610603329321974245435585439633050313512423207310593737158657309128790529444340677395905852118319822563499089531009751287618117496996555530206813609016603957773315029000971766127855483221271189697360612420226229779910514086287287564048253990935078682524694838276590802167153574610960933526463228427679431039579484708670500126255185818408976999279616227454636927082075175967106831762363689358880814807734333694898907194067465950125402306720509814721013337967915980105866209390256909487544961964288599782493947215484346733969449425474771411896810980734412000615451488438572033037032965542452280509432471714580529557463779607556830431219089616882287028875379291657532643123692788895205470359445755515821278423200504861794212834433352460747934584846732060766697681376337384464164393284898375055028592066147872606760035788936775224607685901822803723691713106498110314093244293416652665234782359862548052159018245083314933250599100636391891896161272049028783886509241972888731191414969927230928990151074239104266098634101429961129188760137685105856760343336569325977791141954926776707127503023215269310742520936031387272484936498177287032194291546530456034491620777625941867053526763614630487921385577652834050676745205869402768648867627938246654985950323816907113719229064145180263259283986562259367471881921238871310813163894466784625910809254175862211204789555803862741035859070501918297632557690314912718623940141920393862217674432679845122553687705581317076459495519034169181910592356590942722626560305554218367137945226820361179992669586939600500619044085803319575778273503706864418269483017647892206017662064352484018004268774359557123793756540433438657875521613343228636962571838778553926559794433582539405934612181435227566872781093249644664667440779530121483979682659773154173158341560530441488442346135861475572985494889472934730514411159787344683974798233535805172573688534167702798294056808826126466748756534693872257732517761059620401614526141503803302933931894438975390291587704715112795876046325064350295518146642327229089182463236539389096776527839631105661209155845239026038355877242412280781253635769645223851129897818472367301009912039556079118571198269590512756005775155142585306362150866689173606269513692730122035014872071673069796139867629646955483594051007574766674311765733448381729248233209073754625834444306084395880059309317959999827373269465279813971103315554408080170388523085775429898754221829689419070060441753318213666853361412473244051269070482357083108884523835778956992109456104431526879908002584294545829864848133569447815144518443482699429455447287063073656403047371781207775648791150571921448615043571304591274092973897006067758202899632950336915547487868885346204816404058240396748395541293396898891493328992149962554204676501507525090463123871258603274515206981819204174767373792744170674913648184975664141068330179323352502791920640162929789014627574204796478780365825259649261914945538718731796995168004765226762771859019810828905394751069031903755999334707537627240806001007470481561047334659707557842133773829564619712450243571807192433885698881710112545432360692851761970695780894474736881496547052084302436144732140870196889476270692693490296505491644047919972391472024690038621684080879244295930873282340219707446194368565990603920170842190592174462652858697569876467732294466388724975252582019799540919369875413522444007021676059055940329374375130591049393312435661696937801192874358690219054190322534391244408363487297320372817359392807134606375052106978731398058277116295058312869186245791656754361092061421623263228209157566053100190571227885873722558860743405704387040179210344859504337819245020616521599226458341735827556651397867547918903901856341884445437769788874924474144369001837748299986025531059829088251146658787488033169996803437903293131617279723058356523208297034592815846910790792004475271191135719579638214756444782606728990322190703770200885804777154781821366696887272480221586365167587747395638788945636344063089538557408055250566260186309382615873723823460329201585461128446486187437276448273125498576638202163047732535801306915013145238028281943645612368580256468358796029518514086317224686983909253120401690874323791157105679021421066779255947972513635482068545386757487960290192827222110233248036777775387006793933102103793283524852354412778491981788113606684013069418318115051411283581561126416119405882282191811350383457381005676051717325226508964030147380583848753199665900066044070652849905953845991582806284479019294511540645102105312549115390915140294611365846985896546401074591773105061146293680493666240200643187754838847585133886126285769670182663821905271794126337242895561946667989752496167650740371402969103569655574465821301874170834333336595788561588616065076380650415584266543616912447274568937427568776587568006847476253129295843330047628621742116976318210798053488875724171925226139572967841368948096016692286792283144952900194651947957336950576307740947558059543351056947850292991814322746210734486052378699086247603783714560039277936596518590851702978526446281372795565364487250425526349794618740690511395111801387111350333740924211116728664724980902159393602693054793563258240545882950920469567864750664829421434329811985207783534151491463530604217292559289866969865415398175976770949400994066195971962566682499894694549211989021926160472297630250485331779458911805670110949330576468090143843273695590882869051418485749942009441903617462542916211159695653208006688099128522304610057943967953144481691030673403413789597570950109678670166374515597456396609763928169253154560743492051326555412968062581270399785290095701188224293649515367623056435257864809401937109182094283578679769746758908103974331683787058044678409541951937194438940349974086689285393669023420464380988028117118930707855289588640102019214443535371464730889323993742053772226382836862165519348836316542009372395840228265651749140510167730745619574179237888120278692755194807379066312600209588202481661957926593899415669759328042517566339098925937174488310014745960967110852899545820900804061508391016081590052174457119954849638490682462304179495361790221937595462912607468267837980313338637724113182300429204279827587405745034026424770010089494620558963778403513085408434272767899375237621271717231819304136948238359653187695201024073898947580679490361830248919957732618614152928285137500210162156175096057970380681421906741636861127400844487353867149948509259099988490681296471141755883620727724902588617094044519873093216630558705977081632697525911428135320011406469071777976693396480627679691070933270497895818404831959802372169479791205731682993847450203067715517533364454705489924469731969113097195581461250108970442349257719013695577345327169775204534027367760865670441791655085812750438010540613956020059665312109205012018904535435947092979978211902402964539973914267337328611330169712886652155062533564704755628554653620635391832230314500264423750377668598571217980372394672556278586181116803356289493284510599086783494534829771854197344072648264861487799343945999921410136580857577939715667051095856824191610794471157395839125009203324947791676884845960966513347892934064600916415062197060277065219179379050782760818854973859231006302831935906073256290505682814555687942649166178625390039026606209377928191583635140281255743158933038262328338611506915823006255048260236003454625364080128964741324732914181607934433353708589937569511558351342955997982560546583863526688054715589453783405656003194294315322315624045478669045725738762570080566602417489928203537560109984826040222952976629777943737888993626818157322766053493772887984859265570867853953175816327504919251174085732228106642066122793880738283155885660303515204788294446508091386457996648033898232741241425254012374880108579799882460359704532206829151493956682459842707637858136597598540350994522002189584821102228952389122149852463190704514379230137919791979398311027008272344234938729025131282507143387652424209462504134934762870912378772514923390850159559332952172273503961484723736811492855835609353356936382555053371240256869626842589858464799487066745005742650091803834176950647039469323423367436406167304235634383280179015146136959880057989347928361917191231200477071985445413624402468442741605069902887773294570038184408160788611455086332038283831952877315680723969631932907678669859695601266691080954902174369407594923586675749248747220442641111438040900767040089345246140685150346562093079726084745592544588396550546252808886317746418049389798717675639649098371969899807171039611776920033227813592204468451133972008501596664931143059958528977282718295422935198279940469067657332127328112762117751797093849007015601945971264362183061642320043731823752236197493361480902259689413671228731125060908176038047648038533187159602017794049252117944341233238684328402451688089588429064983800137225907610575696279053166839106473680892174285079710577341851093077535040627751723868106192977130725859711084709386788741936858887482561607652626399471633179220753495339019298516765069578523755453969271687949700303530930478054281445760653007316035672070478516291394200187794090977587705764440758711026982127326746256870144144578700171845352731012663666114480325127484526186916440093961547112179330712298071762271167244569228989284463036327031585416928744737240599878412953161068912578639105503968094419633288823398518849188803657308222091498320041502294900919430032992997799566457105432361563214858449066627033380445575578604739510887082852383712206917931530586900529815321684254401420498446830215545213129775047280216455717607312058283836253672045278618835428307024880769964313401789435944210021641340550210939097685355960492309458119510737704363888277770673095412894181062831634530733497668021942307705284875803847475418448212095548788115696101221022427120858955265995447599816921240064046902715225751205067165777137680139758927600394665936115559388954327898839236122626013489657938607835721787829072324452359593035720904166524379909252602203695136576931169374645635537070075598822901165866002727299144067394675552541981540830964211173233540600424035912572217352870930117738981622862785410391296966506502651908132890011839179982695130624557122486806859951457973140563104714921858267482463441739180942291794805169837859892721936867099556336793094712485585733623709929632379652777182066351629407034591171717087402039580186763007816751613655609095613633936766634518726244202941128169055179639470653811373149356094014391939068220213303404413723513810001949027634057526006768724993118471236316025325355150372774225986238237908981930097181192868013734127329391456109164588979034114193154734285714192412961593066053988314353529716880594951983823451260410830324666653194170937067637918353496759768584419667949549225071746047564675126740108897411526687644913859310606916862073953159892641993379620584746891815286118657856203431112056903492432227610805734691466294806654732191902916616341416338542670321044765979920127145407624175631264272465017188187927630332848356915891701646435584116165449495385342694584760051528682531551306693180959771905680883443739327384447920533150244024088195234999936296558128143598663025051210622895255950593724400416799746950380886640596817083705685030266106333995652673915219592815123550475590804897450997926048707613932261483674887814319132929639739356150085666098522704292659900532747826750642296580345093673142092132606819838671524509347816248568154917431897675633190021059262744751630501760520337175869056097460238664146867279310270420540156557419302491633421642731173086713089351704047604044491733544034432973153072954701805434356840799509741007076834379965731177945125334564534021869604022697783757500929349339885162085114382571434076614993751129926686014632398264769313214199637121870516576899268591668453855463782404829084833132424243715261537446091278224326437105497707591786317487546939634126298141616532923296873189596717441019715736771049443435698348159486461705072050889770992187567034353101245089621803892671606422083553690337372791638492988196188383837240296017208344114256523163697972554946009560696024006925409240887665578150957115988239857617336423488958749046617800518917048318963671866210026550009713308027516960128753033798720163671881878303627434294290074251145697708565362152939470110751765371818250514388529079113160427225286743409692870524903500133988003520208838351189815338243330807459792462118289501541784597987744063814944213783012323808257287006679377265206200612728304461472098158079617946077714702961130866847491392262338019232304420270164867558787278897210994885071050345178662155652089855571935486527701967940381090556738124720387042795548250331736049510025221397509924355345543867348488844530630652188865647091313268747298866864978731082090959892574703652525507025408351261519614093141011456444059829441326889487116199101745760873717955338895126121728936666440726610068920307819677872694064466394244357635806044650141520213998965442081740686157277201024972767806934219310470139195850701118203646440637704963327205468735775171913608073798875257181015093862551243527998965730072853916564657414230512701556824994070462085950585663056724348740904355818969368682700884901349112972822714935919882643461803695513229398110648865461565186675797633370564051468783218566634638479342242015412081772229525780651881236284200332127193889861684064033156025748013936936528229092081398482364627598843972354477541518431389422680443437784915542527729397966303170849839038979508866955285134010970875902413792178544329128601841119359009612380990745528527862415419687463881852596691858850302766745893323445392762520749315982830557170856914831013242382198817833138665961184250992102189214897013854001394634098196148644818409515491498073941945023709245438403576046836084744807966631374528659410166081911911567933990359200684652626568307971231414932806526458100616631400478274672739789936947267009826150681471587748078057613507845782774289218822018998644673107491560577560478507135307074341351315353591089238616709772370805003330207148804071116039752956878729650047141286718862900112416380629150130483871604364132890796402449207221924910216533844560175151815761340467110255077439618099166364939391730593678092275247150875030229406852432146265141569215156501436717918764422819136528559839281646320745126067682921073594211154778936409780435413810736555810611856419064360183508572432491334971907743909840197942233080145148934462108460042678299396321329293285366082846840659648917814026424102289205182634064423675612416019369382669687389888873448058067378298633224582199314447581301395945936107329400182687525341165156773800601484393710946549998295183683508982566598142486539604810887248423742416983472356246115216024654834614952950463956084239363585612473951315100954674031414494764337196343813957801665378783392830000150712201570246574972370833564923646911759888291203507367172673670418962612292108287078474238712429977285724576162806164304116463854647485655938826020687633372675808578558523902239381117457429944047784288992670658962135531811318087781387007360768432640948823787158701256942499662661678400334035931220861868807833064145125020304076833928512404492222627393020032061995020853588941860852085923774847448192874224611854785357760449185122438005986094321358229993948905283541989782627730430308757635366207485686611569718434302478916693326901373802950373591512199288447504727512965342338318423117398288261137717917774687551952613150384844538458055351379321415950243676721314796571567672635837823432725879974080581746081831402948363878743444548284108738779874780127835275820826477242360890586985387742940503732379455784942298759427578050383030981097468772773728668421461431316534412703655026816858823452785574740757748872161173234001595161468910176115076528375471009209690834819143136341021685218826755791339146344833077365402529366927456404258219261941434307544355492866419686331979228927856506828032654762686440968733645999121056552310353626706616593178989223465083015247169502176633343308522384905111120595379508189949390714818933111356682314691172616132213635976002454943790893421523962705609565557318458716239290333283265274406774797350024688656336499720360337015446546608250358008603682609105581988255244284018355801882793477916279440362519064829234612391185332907175698925557397248558819611976084594482984044931599186496725600868656321765384167415345732183890948855108075784192486766214867641912725810964844248141618266764607886306740709176523589967972873349617885125667009544736128627040589670122584191600496959335178122806646125715541572311635246824365698508453309658125610840337282980807439756631758505880419218496558749707264752174582144386162804860074330029179625987358653348692504546462342341705890111987930626459835519905520174616045642899772368679361612701698762331266221443394853872778597006110866382376628345284340789808546911693331294048030619900029510366495044203349140845784271784415381506915142718319620612857668476845552150870924824108831306946813858083861684978699125048781846275944368756148816780509533754829073430313306817141651117348273873509745580370044571461900761239016280158654906127158826551098532044016745520676646261548785572002298773240914273995766606145656707668952853215372612157516722426937811790560761286258420656159554392095557288503189305072136042320348812300637240192149163499908516127521960008031264762531391838587581116188584225760640159966950205268527462208070275549259015345859818351612735241503948579883133242955997969992487574134276327734468181525554494146251522105584225636668793158335342116489854897047086682428654697508525886480586685164716746633049128315676241743513149943875977231297235778018226883594471426551592265580913024326194564500918100438222532707734642436220799821696422947979940474105442376704217834420199373609495585191444880105120532070595418529370384157766469184495367310625456259439442725766510797088333507832863456279372466441343776193269137911868836168547491678923431269359120423399513804184304928489632307561143130948554284780858952713148492092960363768963975953299567726348090750568356803054318787204612487376465083495605179096442456195574224099955412912070920062140878983497810567576553168982850817239027942213594586435127642778975490214243026780889814684500598025952028959175018449946323562323384028600297787178619296032828946397545399316563289047165405472745347639594571858584293494574441478728096982364714688688396030162941180552915064366394327790415012452206913061291600910630084961802687116991440362567137123990744834812414961662586796639197338270915263854795119976989179660560259892427598870451212682188689006268926632043173724496436570209464132686608358045664025458674305156148878402888227612975495342336209595246220279822294550311207253815905498741590512545351767687428039268050115951927059020215044102294924955013405563689584234404208371710945273152860896790745669861740610213570013442710935085629605329768028549641193574838105474269181068726897640131931188485146514827681044804944880497166863647647918450341714953157206292175750236472743320964895010061463803843484732789065339538744758852596691519906652382545558703637906281540491216173535414819227207378119826496936556725247032980111881727669578713756239021797308198178771290463433848753723444813467212876982159523360248931247447843620067389939099617153522289850172018828666807600713194897511186671223565746630626187625646182800512821199117698046447145051053266494036305058611019909638843782801051848635917720988406679183904576773561983440955943641321347238212263843281230595315489621349936609981250036165920413459207826195222297851933872594211238431279953438675156076306298855734436526588992398683939334823682931238986997516158643618859398314272439795474535775694403266201786425325708789641488065303560389694510426324708132195202853865098011923449043878910798881261971582605773218143475295864574473264660644782458895173014432168424559287947242401188275750036164131974213055528864659645104635959389869695495183494909681165605791662127969052988704485231727503045057615532509617289071966346525780575318958288601599236470225403593477317595560751130200021688201798698366239458198830494312923222254876846420939860340977934603621932817294605885409665313604558689870895379887630624458397685128107049541634197280056910354473223947736429603259740030252882260826151219792232244499313410027768443220153055177690555999965848346786780961428644990594800520052033244131779976067546423709837741883157159220953377677959495033671837307470873115497019050528680833444745633669028823834380929781053162920553483220706361801334858490007241147924452519639135613914124679926241144376250029666295713576397475537720661013714593760810850793165316183872062102271003429247647851665313642380834369143810008093622194330096628438306508049532416534878952568872978802658147907763288214941977442747045590511125921644472245456759441684517374894933512460838444133711615741949413939072200402182072147235245040255273526744392425563010774124103914665341411986814027966337958800308252477831026478144695468404898066831911456651170820196110168583259542462229139424998690526141352447764451201244464120791465645290967448959358945684227850638414168289923646145228216896353227719488057288751496393532664044877055324677650868181151010738763373033841290277728087086924904470700053855810742558364945405510058776778340493984309369729854720640770236606844753803583812950758087287662621473327518253557992739226258864954644778102514501123957363686256963586868743318612118488007376913341032412528362006241851741598024260905672997981332014185367387728904476723316117072528565228344355754849211648067217701471535795648748712446405038676559836132247651024891264014262961570924397907191063322809432046988633267130897479227951960084322806550822149755712042169209771238932980455276859382338857628367599751391009892423865060980974085199138344004421372661587638716455121574783183342416121662144280035923054934887168810095771703626802651369662176771973749271846984511506151650399210051081327565384411738126063319608811471487370992068051549829963148900274781520832215550027170539095780119371101121699245509479123106855174419770490660860606880896542654730792385369917768588907620600542503471011990676522878798763069163025868533783241779277099270260985225542864356919494201188799339741216582693482887215286746421500925070494542606614537344827029748191788935856889214567878229724266712676908951919916731007304960309461163255545329196578078832206611000795998748638093231474094909521058017196613443968711973600858588200254680024615432563850415777011790538010383472394042742612537113013374627436572192800729357320993467455726141754104099001217928363651773935870599931085423461447304925704756374361614346300634555086470938212187734161336247412279454264577884975627759424760905956865150764522453718174518404414337602251201061909007218649711927316322938217217266216826479084939761878836287796613529763300531071652573387696290842240354269985084290657413794570086704670935161667399934762831704959011474453704863728498226962897561494574407085993129869948511004781060015059241149667978266717124991990523950725215367315829175366872553442995225224174352492669387791386408045340049419219598611929573941501454278220688614113885965343425557840627550096032662036465043005753387584422109361829373483669755768191440705080606611406177808398445626020144226640687097163358916500964164605674701682642415951393434809462153537758743753224804945848868656221225047364724418701368288913150834896506149326144186796084132264884484819463783896910267203436551994490982110874029567769783450870076174997302569804188776655467453060545489025115358601174060496538060298982200518856354377293984177069262622398873989151205673263311335112962386162202469969745526097455712612917926200727329919021983606891394047702819082879414184036156077279579037453550189198853534376615603926109172317308041746719117676767167654121034430855132186799109303715067661481823781068875002943616027980086407963438338605696054896686738961426165490188427216669895778947026329625733874590306693295805066803080199295967441188661903420034423239408213802652590937364237987325046655674952815071768286131442112606118579581463611778776403377054465468996053665429865942553186711719908805395962642643009446855106668494585422391243521668541099652054052481653243728659195786208205114265346255830951982384654205006754489386214056002175508980051668112416535507846192730863996620781088347103329553114940380773512137683710290890210016633576301113696652158019234139939737907609660875847223141151541945442933808658462466714141853782637608206865984845460555026239182410871925465888165443977207788445241628380553185757851550705891362895074843209927957482787212656572560247415894438619732781844461607941405894800533752869313169472796318045125644419938943916749210707529187846386364903405025480491625447407207261926452330062791929279007290661196508087549164856092100346005047051870724079487685676674681768415176989029425398515126745168425722081132908222123132465026731915412454857044332374550161904536247850694428274217380970993468693350835038327414187668933304349173391938593777184083078183415304275182643267810028085636690338174707439764437481836641892057096823852774105005252781749327011259867666471670802357752236583273265114416436428662382343218153054465887322767799252659041817958391646782726491528115179497579379170920901742023254863526186281347497153830716296154090977157644710084356970765408308063055539555325249964910392651751754316101507747370935126896891466526216089092475927965271989568700469188553265249368105349591218479177083966531108867434478214075060077556454227613597006965072991235176356492477065797447403886247283074785315560055506232480398782642808943368538465947889203094847612363988181587747479438995469520387699600018245169760018136581573561593938649480711592681785882348445842406206467236894635304011007086417896377111535845320105808814371029900061214294648262607798224436300026036241200643458349186977134899943473439435368695788561698240591010182983842764962958049865103754011858295349982716052688559281481791675804941693126029814697355802552624142840460627859997566315173393962974671959423066899207875496500066814841714236297666136119574453278372433080325123411003159443455972252549095413083635678165967731796050895677587933897554646082501735323713402479558364243968313072390799313942959901526844590542922424445516277505164129970937347309030330282380255700832530604678458584524144729184329108812009718424834901776235809830320482642245531903142627014933875543808740908328662161640369290203870108617505093399456476297618469171164018634476990413392121906004919000476937451024607480752474253749875951979917378928510109964260617024521694520303996380288995780979441655102352855425289674980043252905363805610367776683814881174191937632195958781477590730530661867872894375312536169034665494183203043881061491950136413994743618845626656929827900121155250035129360590903326920029599803498383761571592351671198004293857083525059581278071280542053956481739034499479128828252738076141042704800758937525076422990968801076340032985261687038588466690923130370050349330043448046551135491683871605992135337349951954667149012406732779854639389975408371994038081145404198991466697129749634239771905275213636310593694624923254230227240374706704522673666999858286745117052804794901944184856893169529257654121507152346271542163949160015219805349212419983575157900859428994173526133521108159942116630509707219044084711903537360630087661175233060886152664906815997237082237129539624415500608211429327854836685340307823769613967051493710910313263255961879443427450589429610153766968801258665609691960165880447952596624793660802933007812931461306224814753014244584894707631907356836107853054978015168490378525307693091033215876431318262047741509355093245915312386345315173572525564975516844717592881998732749686373144526910622489430783541172861986251100201387024989383580626076997069512673144362692736657639761737032415957884279205086339345726994013756171787315502018965377749056562891327120533185234672667427160001722564681591412920312089655203444451758673918925954087613187180286440998345625196120793383766412931394525693517932548273032690020341394413680694879185384381750868739662050809828244574773353630605473289584045933309532752224387765365915520170125494996160255313181914443231588894377268623017280311220493962463364481337820158945237321138711620491328564912347300160549637036193206665594367713628613631635175700574513371763974920140569300511927066751159999353259460603483626139740906716247950712263006657529763903222077847195102557526245138113557212508793492563255583229517726368432061151961895013538147390057271160663297972207615677706325154480187923216176533470593610662148980283647947929225345105342704843066197657961584798747161440470258607536468641000694461561568053689748670484441916068503550018892089441256367998639107774477368968280946175544561839106863338637262897383096889027101623291186200395124764789451959853770656609727225599345754226375819162548590000852197954290315997724725198743978007333389687041553055355948009653599089310081568120915504072479134924458696778536957106491309607753896338352168256487609157078009254777569375331197963150932972268119533549989310199634186406729425238271256298929994437849144181678247709822179745711226023438875029173982031214303211913250550685126591356566673927222642689886852908770895660208687140850479174846124816659957205575913396815727276772138644556436080449482010975063155080497319107974652098167024956897840981653207065616771431150678050451637794845535902225700770299039471845019700424870429495498263177088124599408871647575324851596463210732167826204048526142648925361291629618285350297233675331161281087991719775833509527756808938008145850247289345063104946219325929744445101136507617016465849251176239220751126356740337033679115356967233948391581559090647327750251927564528483135954793187281789098501623411381397049767379150213364522737798410757984919393245599295190545784833785394652554245812087088912990854344691895905847518071199942685093399982400503532247789835131931395415280286808304900563093607736749572125042114812536808818577469164276652471440413096618289182830792911002675190014357794281451191353878015502855271636890707161446716597213241288694512728420890140789407801542855783076996350608216335164963415648726790954102407018458994917434943337772708460929187957569963208815923118218964993897189592955626500559641654503434925357662698550443009571196539072994179098632426581788153609015973170015509523934464535917624848681912780481381689937430276121269146263616983929683705705692569473568295958937108811306972028056085961990918765621869804478894073121461653372896458487471216650574598922760094247030818322544154906536191227447076942716351335315573649767441056365416992613088136100365049254694836438296541829870816911910826943101811754244406057706563439243953570122270883242199207080830622194831319808674182899452298661901795952357847796337652478256395280259091915210460690078069392862100019864608822497351690361956573579447370131370604926110495748392076666878793574485174212663968645794823456436161990514137259532241663698549003632937568227547282883080682538402455613112983100817707499481702509372960035005063586450901993554395305306900221907571738202709590928070203998144209121438429366229053510892809785736018117664463832369117804253044267039726855554008612847000023103529673255638250788136400700106315812803933184490827994530945930322421485895243387562157974910460252514309833395319553252266917208653977273594730150177609002559946593992421834991555993485657306853055346224163583747880498666398491849928903311221462769146554289814466257042165138134902690075894269509241128147770994472257761715092259147884631096483017915615167226814619793205126532086782736310936318647814097339373502380427677694639671341002166196525472988102253745220107218858460894695536282120476803796590071121376618829108153562188395020307958419643135928200689145650175767844041091353310258387718131525455426485518090714586217388868177538574428932367182255130864014559634564814491445049103945475190643834528501626340442856826714346585925367171553087100810277912024673376547332660383408056731127162792722193022214774579474511597360933396370738930830836018140840285087437364339214288402208416293581557460623740729030656558639660261212805035787802943769775848396763050325993191561881305787837157008568568873134403515140264832498136417085396068036338895568797214911995444215717908956010734948457789294083729203097930986511489109941283361920689074267218715984229212815880309468265503563777008517337124256488161934211959641673709415352108563782879199702788577848672534464781758038098103586645347603462662956474859935258133897136556820113885638120951446888481977312567194257684440893778663204543257895406050429179475533882253357068955557604240730116656651001488075868054814710014466565058290081241296353737119355991246125702530166582604984773765937505807023689131427232670873589249082682878662770635967249487510688781896399858887735887898927679064418380604677565754704073963262615575230664588915707209962779506191410349103502169223384351091400034388349042247230762685171974758733424970005512122571248449627811445533354799880338892528745828852513786391988970442523665598106865369452334514935477851354786582617821433828043015919825725791669069526390081460924488889888325809700137562252725519734563020093290843181520284690570905506791864981157205233398099546100965795038594712130084548014012898071537068572574383078738562866759381485535237151928634096461846705727618153736033104942167474111080303620055680048130363515614619019720274055080627648464174695861414614084684336292736218241398688759119048711500557803724368670671460496434957570592555746064727662239937210810793981493439648672800782053441278777694467914911998622377880703509494951241179634285031594126146153585863298894964323802975632325741380909592869615355239699580281353772680803533998155429693229931062290840565239892561169975134877962036262952929517253133712411541769635047699409843286575714052321499148661905477786416580400085484177023068872627898409433579932024583298580112497953338366804931716178867578146968496752565578423241317241556600601391757637068285674759249234313043112453136066603375033734733268753715228414155682592711351738622563268082334714624572698828699675699341295123782744279705434772624635912988539704964559370207564117267943550844190768571384362060263368363830987622471953278801299744347139755186141430534842142549406326805120923086865517084991238378969228767001027067313297780278054849276773709597171225850316870421298781530965148422712443741735806768015178518023145296940239111660507720363465040174643237262041669028075855587553398340890440977711568819130064579113905273394105780806599739067048395420174080142874306452373170941537209266124362556053252374926071545733994820395670946742959090568529813897876008899809210349593537444223457833687421789084962160825290956701187422900641986694097985087347451275479792660378170913773855278735864360231039461786170626413532759935324392457949842565831598803961555513727161348680996516859934030376690367413031727558097376940704511767357810131632571363522089322167470360599805425551193791337057000337538708205111684638517955084935070511835885372817597763710774049625787482916165796268496603932553662119257214392085292353971179793221721621590689968794765044344616833554259002622924428790862219981563166856857839738841029081247007195339696899253977413374259128951689964856810965290504790538353417624271694120771014820188389447428011251415824980336846851398951436652265304266574472817309439266284902670140267109466349335072729235111216360035133592187021891859337220520679232159406633851961068238501959749459536133655620838844026300841398917122540016077580483302909730242818731426591723172207992105975622836631978612073606641375083283128836259804731700272830163162121592966179270838723247852281027317283618694166463396193704169160989126557692609954893600306638712828028829298949951186164011978563952100247085746415747884704685701281681394681356665025021997687604305890625021077460341306093845867001170933709940379183622748581531311184306443691418801531860821004338766990778440127833984079714941184465983636412157397838734599301545840182643229978374776341150714855912030934845611118976548405118725575810766590868798836134565540088037867655534825644227090801859565932222468370433529807895842378674738224783360761357083948771630541749363126624761093251552378936123085747989836176422952620552800308507306912408115246224920722357570498666541946305403240804279217923676889277353899139647099255420795257358084682727534041697495997297429490694930231114241716907856064623559502204120311081549807773751043076158003868013098470449221362602497249262790233707888245557960717637367678020054906606052743187894268735129205112161313815058486376278388382587048095951702364405785812684254300060460965935949965180840820830833786743525450862958400808467944714305532895116294078950558265520105598948079298663871436391571062789605056654169163731305705871616869586254904097887924287337168849553924380724182991802633655148440347011501610534669398668893765659645143039094004094076975492479053127535428963985907046240052025108933258526653208677453916860954697521041697690539828321196114760884537648237306807244988096239692554847336403540362043430926388681106688803922469500271386681616901119833337016072608791377035407361749873630008194546137173995980694654554662697324782814259611175447757696955580524589014353130241106818003095529281364840664320258173680454739742662048904058897786112336550306525331527984688772841469788386408373198595855711847391262366773799816777188010117014339356492671792433935872052274967347074339543994677648950203610412995313413294830170821917015869860606107010435003136851030646894459830960240865220170395713720718694732081759914047058501670213247542502865572413642712594760737870683999267180689493692910816186712668406073409966477743696396848702767911357286615980834803366212330299885138315301962951058855057284485203903963873910040289678710595467046599975222231873376051516722010290000075414646131819384212492116879600581458793374499336582263054499841707450519616561153042118603827470153897100092344924958924790257612225690966204780989375635900125342082449349900339315154854994034126057784717098550734499091760844556293390653998340108153144214510965110965261945816745103732946992991673451529634573256449063558865587983210027429809088293524913698072881487422618236184732094940503572852329462791204882232955898371881122002459516125339652897997424564835166039456897198407729506604007249679992339554385852011270241165144802240560258993400450807930290651711228548301625857708872587870473128512465640090113800585605659630402637048073565881344285804639385762160155131164531368348514657108481473618917474349788376550987922851881998429051142095562135631154386357116917375660113122681762243739375035879519600949315791913810664183718273248618735030234383939568140303445701655815161957057481184996346063251607758829756177499575378889311507851216647094518468706187820504424394017398050221653967420468723858391015085697110505971792508966731680201601729524685942775076868979703146129912583975080673674105548557732932141168103071125480254555708956698787435449742922090715412683138307632307770804334501316496512795050306088835380755102502343679476892355358939327032663815791798462355702002484732177860429848768796452287623241700778685199156288577182763829113517555626870013163268494254855745726196586349035982875774821914335632334494262778779250337912954506013556020921915603801279729057975762013402914107228264253780730617341247426807872881290105586992947250656625007380851046658503673505338330977172580230304722694204763463490340935828565813841971173670397429418463161198989210240295241926431636711362176553416037457618861790697099501485745928774045989492100468509895836662720329436575174097436971540727953749958211008869507570597781956274374315543538108907872873940735211778528274201808048251906117811741329837284307721466301760072064839439938605289155825261114021280979961386429578291816623599262070307229337066103994319925427576665146851771227356795878039755308099973781711032221149012260907206427453720571675089793830468302054479166975463903909009269100817888659534236762740228869981916113805857174030673204780384276963521528852258323928071370521144903469167704876902938872243174281898150804679130748958040289319175271925010692919993706442295117289335077485642545768712437362456990861800960216851471422852411161856808263164959897445352338949671302417529577298145429381554102586648894435669551869492607717882483820218206874919663600801244191622181727988274228835040425948182193020328998742700691014330669312690330323404197290167813228301310159335160839662790939654916805083848605495618869156395785120622622207747371409152694615486276962736369164107498525613042596491746280676047303213456571570179157045709895217374778306813537081344882229464774883844662589667989772757178184318621476663320066534022115873859124160578973044991322938216010328515440842358453179273032345248927825387607658702751438846674370708349042530692665336965117441248724431061335131676598796380830060951240134007008147300680169152447649642045124357199249424524216641753872796755360613007569093847905896148255894647261347911008711667744177395768882621982572194421809311387021910645858665494063682270583708256741918194052313500194653886491488550510124676484852012984268598954997459690140589984513022405529975634130216443605345539378964208131869801182882657560154015127141744600385430942616177842191130343549170759243867646343209858542527888586150794422204022983411110442635015562431838320381384851458965925229458977452062841666487070205835140907953603418139773334609198592532062826583554029959767514613383004056187333752753355008467102398750504972807058763189592172261124965422555114893513592604018491647358782515839314023737499434396176496257105513785524259815638170629550830012533625950021785709943645546768028849459913884992438281255945318212272088301878752706647134758286227853247233073810740758185628415960248036153657284145181876245354036664124832712038986968247048693153855888126621425664927928342443440750122050413402925595730763311038899544802589984285919824278671156393268624807545612174953516801639343693894335598099943129130217299037187583744885025454622917220293295443045703045973181524244229540080413308205258954916630037467672022249774380935664141943354310615608126794801733237587027349303853171823032628530414601191154301056081201860524434605240261005084477966258192331844236685937949601078187094227810809340553676136206631989388610939264441704136738361767554613034629543171602762991593304451737819034111321519188430897128470010566053255854391873545311738048300803608624912649010931978611351879582022663392011504717299376782495550817135908359257870112116171714973861607225379185980094178873538173008832765694906140912451896833289773556657613795930407130867673776123383033727804657493316825413990669334742192440185833085142330658063848432097428119819022589511923102955042525423553737256038585523119768922898900001589128676423626386414678044044065176209976064493028350207984243637060319966832536996008908577050483586774164252430109515513764473684774803805566880684410813900011132137342590893795167768728373227276529032492679984957165163966166069976720358601703196070188299123275160680976071256628581627811618184763889760719358403830417908380453417104839583698837524827354185941561501554905487084654344645932972609458058368895879566802398936125323974800119632655697547197785565754750315196009970854915371150371868389829080926843060131995462659122038761087831237024104796545036860458963475932773626030258816043661947231553267130641824888392043423938734268795735829606285078892517178819094158255742516270436451574326341218800299861551496090102359200014570005651844594908266847227647530759544710258904359732605565565212692456180139136738571961957621259242616849486997074854741629197004971108808772806006295659182773646577782175015935088000942466614736534023439496765894550097731912188498372527680801472334763352264560441423271700166731267712880804334678701482962985749867050396450048327441551513930696794293337608377924869248171834768654454100006717312884679681577857239666421962413149103739075376993303250435685658942504106288211623275719648112157366393768983697193756964688785610456655686607263558006279363354247052573026636301793689300795377787262832719949569271856455852458046149976099427465135000697414374477904974600557916466582788966521754695938663171613636463701505882426784601856149205707091180901984163686059792056474155141604202790151732779501040126557457919898145758990708996112501206981348884608570434578204287458730190014685430484756611125057101735054466036814844637353004896734671968104132370193397298984083294409710248664064994449141922300596892257238609885899438287963793263763400604194229979442555139316903920318556219863620956811388692722196494529308466738368119000528581913402410957369160952109153888824930345986226751955509593841565670705078362881860144885484327709380000406559832059218820436113158958319917601989404588013158809891408134546622125467081637126370666362769487825581835056842214630192126527845914056243648799204242362053376364233213010193676937865049206462028497504194362567155241571206595403210659786782196042093335484114464225768394930808976258166536497119522748150820359142177579811776567022829698904249676498975566360404033986286716830174395659706528101482560594492401594581986695480387017392962694377294741811118705002107492159268171272774237915832362475071363092162626979626829174208121504086958787257567616226507674256234220292219229428964968246131997522220152716409375438407486757471199166171037190942793547142030839398465455483458928278521228954527871512840368056908549736715818846016144977633990900730132817969078792336011131252874294391936482971289268115760539074138020811591403372465340626207946084506848542376636079795754843354257385915630914594158065237938599489873373268963667368708805591679595768910882567884170207817885370257625017414966919706278033258852812977547070287791576609810026927927318670973968740405101573213198291900407032339613140281049083958538799898991537342436937032938178495604633835110614806866434018155196286539151772860199297349537309149689380475958272415308442389913849418204397770221559047792010140019237494007217106316447720938880736484774762465051048983778871495664658069625562691501774808115618108990544138181587395536062177804644605371264350853800020430523833012479960425226894868459100977782421933402814147959607953755383665055495201379580750123567285025069106731084957345913868011146423943426086270202520427384146948076841879278394008432964827442183595231093376250589277087178215446208607463800860986420656869070926329630666958447340786675873075932292999416293090968980830853651724703868500715766134465629165677309037751089743244129262287347484798242332536940456285738679338949557332561830353684274205894778610800872614006918822442776102469022935775246281566984382896221624149409970809287835792161448012181642428430910128920394021553960503449868642244089443902404693117918919838051754602177416582779547621025667286512000039632373314353828996291545033088253600707933073779304589092477297241600693517715788330178709331654148878224063520615516824327027137108550981225243969450691764035245132763181815734532818549868752775573870796590467097324776821715440143335035158329429258019662711885746590705202931602358879656514740375389783731077568034582050664873040242395916295610674580990520852733464353612549976736814505903671804744777495647411847944013998168956637609884311278711746428806411992431421098740193717300430213613635824642160491801038974317886842553468479087469595956206283122093619042323294267718209471472326575172468883736661570893796090009326271042810694381251127334016369136352507991996196319736862026596723219318604375471816015723654722053481443546206041641334636348773662022711179245628314288581345564356822204641730279184554446228908107491883582591892701257531687850886775161564211085182288198693954719792448786370395842754169956502337063520388789539829592393949899324022225964367992264964956553021994026690327290132062777596496708125744371397617205837841263547090799333980592804394738639853693138983550686603289628967533440366164757432221635393075011200210938480749515406547740196193023766139952883403751079616911310683064987196530647914039600626721884665643587584883250197774972354982170968177679024622498821260173474363407507502523245461774549898980008398506043726707137813219365441185717031627191392761348940249546220911710995383684319511357071429873247390613648496211668827197551320445411310648120145302983870053152287376074943210444306810167277822626813052075444503011202926831040084084893474616334582814126421599829824229483084222883011490125332014479043152386076176398729257994270170067570094883103518072384813313678696932076671805531001126676443563152701759555699682372273291216162580583966099632630221747845993746162475190573696899419799310995760289030539253348296301171676541292774082919046859481435715104601199800730923708821374552255327561472552937634967574036444062173881768280840756285377925709405251872542756050911450093702526138447219291442761972145690345738241052210315207213905147401598927110887864196565274976380537643213086799298751803134845438642696193284126220886302001449873705619381146814484958863676744174383035917435951536167495328571979062018993414943890340949846727994072920596626476739847315507763688635718374973466011809640263332860337586354484876276620353747875144313425909044350828988891830005244347958261197445128573145708947280634375620688620908696844201774246506261734753828297368831035723317393132177321705318575422420006068226510890321747912936718132920786417503229907227192959729122377131980907015659681955904458980750571221192000902097656977029026648252926463735715143107711424909162505193468306292986457887591842193373114086025031709496577727104964537273925666253747429356059157551659979613868802412037525876911469231453981028397397560962634300265904077619153109199570421117362475871634561297236120089217911290961623543087322592825423821650912169986003030746251991667447174418534230389476744818183490104096230591197558209861287132619396821771695760588222786744971814004735397005621818520016209408103587650902432380835953718867430809613726069019246741492291873030009113593458076564380489420983158645174941459019326806052139280047599619257953499404626730285696790745222256292772649267337357785497850266368900091318909007807702815369891265613941593943128036005001410751686049403517682665536284342044978058400435065152453669849906562028958122560718200844801318451203303756764999190792771339430361548043576097965450969990700647215890357082886355542548743795806083142273312178779219670410654053924543327505947260143996274164505013536342291932553034524873355219315786120572050197879780692799393035000416715030247983575871283346584220971919879498231763156251300352024876570369935131132074942710625721900574236507536413100814173328277405718294754419910583696576710803797592780803552112685956209945480370074801568430462700223257547033904246088547029854648453070626000254749287867591544658601062904397504045385673438697518110144694847770138033645254161625713483381580826708966101796512218242181446857173835436125539672446453619598925634800867109815044035519522281201571361820883576805878020247031473171905975838153007535133338084443760446105068773737991950440271707438306590855713668591011787718277480172206125656138036859330364222527532826176711371969126936049554130678283805296976545297527744370954458466065094400537098182021118960947580493073810347448058440924011518730163904798850668234623180849980562696597697840450985008697978262896480188558607938994683707087479855700533239541906748352073728288289403637679614148019555078136456859905401914896969019490245964068145504594196188567891579665578223060277323336855014903319154471350137539447290160027406571381766639432070318470530426940936196891820355106801478753253142257649293885499723145756065180566668632877116713489218883447449323203031535059895439412498728807757399966715893623098332286286164904021987501355955993200936475850462960877880942824946881453169624665089112700982003940696742276967160684950703072253335729877620715304063476933834437988936174185901703430712248036832928322592930436130776365828184152505832062334657658386364580743430721997405578130356644180917768990877686587157460050338117064477923746300904969880926519423006180480089128194613170125524975037186001264360054092489735111830806200050810532566126357560884571240534348042289243521576166751642908503803782569884653608333905546207909906412431004275661685069064286216860402603019873948371235063829578277027763200780526277401260196263890446928233958157618085813097899256630382446863216493994569153531205549240099328589199680943106184539951118774459770564257910833564351346633511590501252595052350502933623843191263812091035777236616534785620095765278123339331931079412154537618409447938529477487971699526589477070955011894822353661103127370788321556614010999511909162086730488970881164569236107179141820451949930470853918508870753095072696259572250050482877443932829010493288927071790597883010642034134192633786730700359027526986569334356049269742067745116163375820662443048627964582270466004192140559608347314769624233054760135093084465776541123907276064732534126842060957848081360447146948175131600195661499460056854013831321308986381474162498273044144982690129174407021888410425663134333793648261494112602462975269561937307559085284616022040440397353463815443946971516067590442382865746822243298328461890497865463004434336584405302494125322296317942927042054150072909641978632880675586953829083653320280263596233169689644383565007445025933792852732691917854911958508133384938464947637028979150478132738688310682369636293433992691621083314514623347569064548964329711803140157940651474171472743995106039909264232296400236042806215764888886083001412267938664234704141719179620104677890241270962260979555200186521602124024058366163289386252041409906522472865758108048365539683945627340511906688840462004044248453470562029495550000142008689197842373980475478973988306711498366759759577099822895071706687192764624337991699413828646350319889563861437925429409103982445096432345916736831618416653122242070898372340293527073760095527903209521475839116393687572822088827004526264103789465454574407476194960818309942241048020977833779812054733279718636893289821030405321473977010750164837911710553917552528388883505276986179868074674887507857638681052348019475490568660224166977144849169634191198037078284438715948371969181285706744811506426436446371299202842122270548786861552815344754430730842649962412867370782553669661016843112944875444862754979969477787502181698338167669688640461000712681872126762979369409578341199668124821654723827496647214031121088192822033692487841243598390603430351590861355474383875431624815994866839559195044609141970849589708517094811711604340907247370164963624639641062119305058588612711771879027470257592565760217648042530066706206736223759930759819433113304511651144477255904547053908802118053900178849354949776019874179168901922652328788394015323611200763887309105073048260618629993685419930284729293221213979905324918828731356063109699224364862017848222778072001621044036560341201267320116001280212360715631187035174230997001801076652154800716837340979387069516746761524404362356751413989734702151952280533090876470025487000557452616685192269715814300580461551468381220926095086137765774720590602019928823893329485308231782311696179751221922378254535770835377839083359779759868971097309021244150777611931811109305839509593136385289230761158831352757688774568439705229888609297963142510429503752425434546940391974343239401125571255217920139724302516891592203957091060222350359528724705142771249381458288336677271045529287743403443908910008493151976238061444864562892854015894925281863827285699062515899750203963609086341406919839811617877740796843819563780404602760794643151007314991879465344483425144010468066047110521292643486764430971945388880644591835194530621488455864655937155168530525724498467732730751664259034761591626427744267457646184964877203584100986205207916838033310947637665576584345903220535611067154779910493786035230967618374341315349137702644296315897085973225846852391360664467338932006207525994193833112903060076424086846391043543263313979791858421241654811353345032076488977123509183900063364451970291255445022984902421859909653386242477030321302896974840559488915317943195909477707913621906623321128132005013852286540864209713376506479097127198257239010145510289752583426209940917445683659738277188774750757875549600231084612004256895332461200733793758393874531169128934593817747037160195591088454808650032365768025581255056783721025471383386438369889944371524121477703006119223501241149261224770489273608797817590605732742419053194591858118173741616561285632728276521233406909570282116794084104271609934407476459176945885729826321618311005201766487158933007009690441768139131333068922106655128767258042419453935126451224119730857183228112420290197125650302334059315958866484128239894344500722531687658071654292221199411383015216951369897654018575055453870924621613739836493428761797065927870783984626364422246727325862246778902713827205647958739769854104177018540528510771585858275655665439725339598085079768612185536057352240232396235270558526336792277173305236821924712102690005841293220673060601507572072362907566252736810231434201483920831054510613685188363650255143737376470416758977216287733448104014612519320984203960244574856300683668062854758629019673926698064944431911252060001474366123175930912059104389649592444146427176146832486717091073305005918174996381668186154715269079018801325856586391122695030814622189870603212359449452060956900830531035723235650800516103350604243126941744339894662538555240289568922102510669541357258160879344488105657380914349406534478255392751167915119513018669695205542791810705525170838872017992066236461431324933542172012787335617887313239669269554448077735960306912564930592375695047075141450586388955708183049072414620525081785764252685718230036577924698604325268272800303535053929705227212223152563140421164642764467730486204439287957161698591842363504377634318420515925119907549088978746582891077928992677925056289601503177676682331715555950693970695643204053814927276913443807884202799116474545305741881909360766134392163677915445540301100528647028031966209669818804754565529830264842582646691123614212848147431266620061970651500310387975491160742751404045899776322950055677693846632821347594086725426890832787568673903631329577470798505794700819012240792657728575171072072943129547329701669368676547883791027189097241230221540244863455985619465145823920617131981993413761755316557867901428425140951897850640729591559968207734509220890120986243975404886344147853584966308339112074680285081203402429034128762891781370014743203056704721707855088180884475284631255675658777791653808522441444300454799537668362917990015990036838173189567643876246600415973135074980400894589703853074895457285406458944761516431729029137563506961659643118876273139394548807096070279754767218894243938264310848441119377185982625602944378931141168701272433636753228021913990811388278931464639986023884014905422775082968130489312293559518400728245153519109828863079781462298052561637250457778702575855905598323140029270765773932312080789070836478266186716083587261559124775126531130736281925233357411723591251691563360960517437420806980245357361099479393406550716266818357942268402104544673837611190227255955400586770822726185389203111815513247021790221489671869169899439057221503003975960780979530726687623579395151991778463667224119946925161096117204185624427518232967827966245721497137972423993828475999324417588610404368009347988115728343398270040122594321907552814396607818796667968529501017818296455067572998723297096849737309450318986406959655627034438808703825235723268329872695829140736265998560667992727861053817983835890647531348164789619006958643951186233434374303552404633575894665801076915669283226943141767778916340951464653621049052514110786720518768780595499594610641531669775737964272196915545598428515458291564539380188712413342429229045145273762686650438864500426134542447662375751671573960082472224651959868754807289570718181311341588320443140530521102176155669852676204269443292727189971543273678674959658281452476885503468348119659980853373399433664092312246608969761449843371651409216271971482987490625205174628637420070510887205916978405248854767226115871004529360285869815570715307700806442308321733587211601508493251662696250076795666970941823943392239650496803427479363571402179694069063832512158802473891938384921036901502354569887289209036320210761391065070589921809225875738143625742940182889931448766321864109204178207006641251282439806328974290203713701096863393515153615749059847609883791292315637772072260736434646917079917894857233552847743862161207202550233982519932620254961655548830463474631254193246524013332997474447974740962808044943278203675013935408412952699642952499620371016238556206510070295761068856403518136676163860934958521364266231185886457984222888740084710151756883859148874932256837345426197394322126923567152333598190620922205131768348752282827049235030364848319599541656810335958473758004572219974633614568367169878623155944022759042021919146869182594117915198580599565851760776589175731757564146014048401535020576271683214810123531820162497333821764686678916287117810438391342408497627119529413248161247434705798931554706585514470890658832197452883856390070155148575103063550911774310642719359607896480073010690869014614865517580444395943996050742585377219411305035807620980019426346418310781076352602985847546987936998235095279138474220048555491757752477675288919093056948170782874978917298394315913320301421333068738795246945491294470426218771125570544127030582478916955200188404324818518445842839206670705385563285057507901432466088885738314185794575437736003174620490845271099686838710442290370881924650745551671874705349199065500421205557999181056195691260855250830211962974231491179522460204324714651363629856018211331566801652557705463917236167651375374092878214809198886477158706767612668042690036428347420527328421080199105397687474998668887707702141124249927888741381939260711548228813442364176449775779987432971710358902543639880710005123864843445072270663334939539672653141240113255834909953545103483008131626311989487478068960288316681223138331362530335334280363325978210811019381232193186922825264667290723937987170074831854114990743483805695568796457717050810691868673974274741631022105161368791779414669360731194779830297113893164199554434454743357305078879421331141529614530432836204703233952757796983112323079830035350761373452726521031089619360581315781045693796834933619904083118194412628189223918778272214169667549933842266239037222363459273016737532017485061134992838749253331947510652287873675494528042288726288424576632476043887505974528553868916446262710836357523031061392178631653503265291574999555513618962202379645238596861485858786687095277489363868906528390059816772402362061934730633589576175390049943981195289678689068196471172802687057234903940937508026109781134217200125395795714662739619215064969601105917896397989985061904768426165872058846580820421575958337510811275000582583011112895893659739596507622500593731373883127396403272730876164540355031094411818153988913398191070478786036526073877982280743763065992087836353819596826078727967218059945003499127714843966872468982049418991699696343909926547675854878011693992763240373675823989236938902810667117574920441184626351073574610317983359127974320156297593316874525184685685242028606079268587884736582512258939981543917336462206162283731867228182932744653531961400621508901773927201691308327172813943968276174090635760545348035847489408241192919490288886514434483743485530324337539847677194350388092209586087409349599209570126499556756276968420506918206139085501487095116031996576128063966407452568080384836786460022384489680424325688914780114362203843543441247877421630508428798673979763698450415641284585343405296798542662103107027212805196199414475529801890274986337314941662426830435514874737965223155732496500044846577134937567291026535808266731933250345546676190654600937929276486030339649660822425147881535801457605833329080018930483469299854781610454461063980243536842980910951388968269253371671852408161107599551445063800944429348049926107474632375913322771314070159455985248617053646186333745970436462046267804343773035071167670625918159593876461037217943062558971574546107253647603740580207417010016344780391053673445861196584939337156588537717796271140119647067236124346236527286192235259138662012772310543048932578143062346828532734923964275409565074657517631045317895411930146443354391398972911879615743142687471693219607223195606287810976953217201520747630923109315079631500797085794525135715149853255725854784057120642014177777092590559913162750602497953692622970962072804679839301563310669515046395116051700158993209925799588837756567809931287013510324287715428198545370074069729272266117284129297617399764881167604647846281290871103781320976707662359318225985354000744760023366835543909952145725750256733204555943643807397792377818587746167796473682602474016769154266519553335208176552995080294357343564725307899057118111643065211817525943355755827287450270505504966757934228227113479058656239816590514607760530308608384018480231395281008091941623591617242938431683328209277273765342165094465984056386995552197076389136270119342326213954200955049549637278738739287813255104939812721412465616450300077837303917892038632248788646775049333728771712239987625813092039026694689945788767246920963128647434214909778056111505728407979983510387003257977616591274709559938358998938617563127563476803180661789808206481477994045360212172676713208178374927319160055285881040470349184197635317361264756356954582263676019301857223829692053224726802959335988678470330038736066252517281210664416475788418876493293898827340786929066688489825295044909758153676708524309131574686860431445782927354571304523901054056908905427563411523339022534572852453196726967804852953415243916913298045623110811591426097652739518235790299420916974500877963015515832584198742058639514770014370397396149656703526049783952836760794774553199568845172542907538517622225697271481697440345112859858100280692719896276206272771467381285750036270072313413483437877547775356126282454828718096873968796083354951322979320440021001130966318771600919894198744899434335413389223694478033464153366748208144770381718518482943437544142198252024943889907749415982415443726223195151235104211257956939967140245473754728536306761031912319234075776268864455349583675202543747226058685662119989180949656498222358896303231969390787052240274621873246154027765544667565150640936815227346104687073460794574639215218659971967218104757071658975032584708758451461865296953526733051109008551462780545528288075374893035084019694714444938140365850946565071803469817639312611237672802229231213701253713179735257612461642310038953939031323898918256585770229054095306474281817073695750596027878000969288695217308567537540988809529237712908026027442348620064416462617727015820209447775056970663466694894947799924158546161481607059374889330402675641753848567172419484460166579870506253322724837231907459731186397605229615710715414511486070409817136263040364239349773154451611430932969732586472894112139219967978558155931429669126866463958892504233769456631082523729299691782234796845459977224848536496385911130197803660991848673071482061229217993161853569139985585551096064681208879636023177408064107831354744556964876281918715952422516629362986019763478585100820403245949711929427568804279291993083657776747771396203677701962662023962580187230027332091190527400777824242886827731858494614568589717340531663548478447517314037531767560331995948172611646244105263670778169797801213740676091638335462964488352155041557253070369816791017280459183625071578922935397379405180902618468716446222897205215896876475009893972195720406554804000770748369749061236123670438352688107343520127053751253523117769392091775097364930810516521821754886936509456527721198081626073502998150337384773542230909374833694070913444370284737280928478363247371519672262885489850009616492572995906414499839093000051904692189250121320242034469690091433090812357970370138176140846493654732539727008888857855438049027755141390375134018161134415742054314176374876777845721462186230747082186244973857216438460855951399181082579872924064676978481629003995795052914140979765779107609565365269475663690713806391493893012455543034527511542825101732699025133835770628087854797871454332655107422101519783454240032968118049056819090679687470362668783161425665468355621968892604500275742146971029111428031897356208149354452658595794393080937434688704124542925541482187807372982701536567449872463541528886025286322417788566012548166913997823354571658049159192460576013258291690146376692780826130145394764373909049202107130413414695276889631392171921288928566844757368171993477773108165694831011812620202349873024065666988445466648097688446902211820119154101360115351495720618332114097019149954704722214027357261826150405145824153142288082494009747093379912537518383481124036869124568783675479624427519021457517721622162141728802431749997229881232775975903699908798161143912032855648356672939255971068043881223505722161306539220868205060014887626845449555962539388606278824169921918480189043703461327502032007026005396043637418373360573316179846391960305027266657619088351421988029355136792940505557213525026304586118120797532059240861668232614820924146606879442952203471415548703358205071578307710935479610898056550557346524875696634712679699602785209918217839047143576031495626149602571322948995558117785457401090702102228923536679085144540646102244826613213938616118322032692112565258388262614959964565202478482921140364093960524689630172660029754081887073068194682011334437473501586487434500647616690809034843950887432181892183612233879811349674577004031392833668131315997906932265379861409330849658635372937148165280467919796718077262207600826126758220026733459414186570379930037615687974808913021150140497941933283855269011892960511782038806693095799225559027024004146831271151025515467844751832080307342938832138421846833344800867462881481204100170479722967576308725739654129353702381786029146073107381621147991179708298253688138757459537916749663227352038316052548258817563401534970841268284233951448907657069032716261958231487164118295377193753153637922886367403700302072809095927218275700111478035105616277789638811585406687766143162331385789716000251994075964097511173227773990237841772067353565269305898567849953061822077881128867644985822320818220802845385603699247428158701394166065112478689802495393523636274497338826370232993858720292781811158925781127659718577309951471865956528505809520287644147509599915715995150898215185730874547231352411830131347372367698266004098254187410138788839870272612205559477619944443091910607170561091885388440996034759533313575855895829909548350711349383524996805428015387758757722681215807186541738639037070668567080050046856026418308268595014313941173879058397900726439849081807650864382962809192496810053059873771353681185754041956416690040726628215829085869561825936007243071127586634411379259114198666648321166009969065180471542310476292693693538501925774274825206755500040934079906353474744904368546221796785781433547043133084453279516398409832821846807899380508525334483901221765540966533948214728313631310694992434728880476409014553090283314280625492701734601211102349892277225752865864470629619827910690691812010244319533266926740771182888497617644158866825636898469609104791075368462042456646155959506955046794087211662836127612210134214474561776800986575840794386134444685923273466536705565534993406632079140602014551755508622504056624934652123271024595845072043017565600883260125097225071075657957435344080116160322237118776421645940519050929137321041930036599678337389609017605715608275619815416266597843008615831134896829134313808842330657046025611038581819124247038160581546515196168368811627185583972639848572503757652730118933352560287471707089684830957263886084143445547732533413498808650735372164952097757836891471491078642938187510257111061434224826556383345974225958797990008544616386948163830356866423445341544030700563511908152776641478290891242984979924816592168339012110288098453918429937444775872161416565085736746414351941377131721371004365193975067784718705556829322530539059933034004928703396125011880206896394094905466479834130143772827850940101459980325452247897353817582402445511464093807531810318007920486782852911546977418327153147031263616160966806821274448136990316210832178938072069624209274109258187441214558765519666202066507747379739739824964426656311383113196449736778585873687917835339191055551187015242208735031491977709076701264285740863186725942564694731403291733437959111488222121588045257722027104889204211151186328053521881734225200189642715163957996279291333344538969952999036111370612534578328743706995306037959481850057017913763523227322705874002795935306951044170983904272249037542087457576494298004134376986545820735009444474278996140398160413648244734202859666211577319260298770407224486178033514801435290276212790990266415867253720511016398047569268463798800029305411314199877549908520922331062828138088651387029457136812701446542814040333042380082936792148987772740792304030029775658258195598994804234765773825267930420664696528092265709365366826751152741818857121144944458880711406329841203347591822457453145356548227261637917663394642062666384402920074530019884257953194099760094823816100654103694603338021713772818701521679482279983097462930170653725671512143878540923481116078519000590719540874720649931318369342191319300376228988497565970970302563535379522508427774953037501089090523274384302166634861728147457478459451877129818980961699025285162532193685051384443952771498865943874395378615575547878309778068521364001307913058800820057002805352772349516196499879988510322024809688058188553951951201744480148243566020863684872655392102338105128735845338797502341816077061672934630250829762683398309111740809950338843465795335245621100163767491883217436971378847835516702814228184234343658308704760340494608582449572600963394114437637033173677812439010823251619931035486908256082131300132136013023836434430921497205191087460743683569678292700601480219110316377797012212365124929443960916046192934141147669517056497149683620012718019948098020950297499633839310722589594133764768299240126619748976936048438946286405892108803939342426756246280765024734635913485511979948341745430438172443032433222231855753548903416586893502875736245193399570434894605084164095365992507007102792635619631989316606549315247643396573974666354600664539872934569063053519000925457295747020442152948214084965760429282608824346709475132741244980110987479337935951344850481152681241717560575921786816619314849271703721309418376850930348338234652059564778003343686451183714700024253684884135333997765730632327847753995171356933219104349832947015261379457817366508387226861629745847431183898077061381788006773063158742448645322188078577172363122387694718394479329469236680505080690671484031535252865169425991044497348601759422512220470550129215937333260128838557123088332433328167051798244322883899330415761289108627336453075544377549391170667884504757881770796845470633723360609201711158807014827882448521577860407131217911014381542294650501363231742033146217885277891997421576479432721149865334260884623952110956912900246829676583255435171927260319400792177541570552586998335864831499411088467077997069482035048548579076097734754274151368304703078389219308791906572392468711971566800400682389937314232909696014820839951916487705545024234551219111443191643849874713231329018038400067821301311254246016156391082835028381402999892458053716855893560223199762626124537389428900468099675890659472401921741081313590230407574576639509062364940007205806909711109841387053209720882940441336624777170229722427673205107095051440233462131938285087404193015535293378378818817097819649917487965101436968065442433519289602619154273960555853273483383609301213764647022780782933383872102840548576379524262434181059321232920862401311327393985620424133534579447134213669118766530643247935520819227247973416884164885261120855279638833330944066387657552148695639645461831339680944750536408999604792237699669605962282517500199131182862522435901881626055966292171397463663447402632361953871849516777558974582453217614395429176159222099400250337169778969284714139713405139285106586725015774736835433470692321899197044576267465974907841100568645337426833713587130425522453186497809888593190703233473158577256286561669242979616758908079232380487404077369470863320189508307751009667385955968333744770909027928748310570347850577793647927748922295996328158498667773478145473832070975604948220538397625648107655867562702664816875938827133432059588305014233562286478066519673044349814802884551789151287452715388826721221689430517379266910999973753245712141441047379543626458588657080752337637922115235370116093038392966889667066584051620432222854876197825686996357188405749964865930500404659149924046712151519846842808363559192532088495010297150580836058409487165266584880837686090955394317750345508019478074968954072227122327246487824987366043543942199470998986417511310948393878479543777741707358552793847164544256434023449827118328647052438663741552534859939991845416001281740315438815445696893708470280718739420195051479410124100310422997045106426613791662822722284225168959485365266396654500609620882262593151397539010857179454243691292563110512771704657553663358951876454014416393162710956862632917991138079167164910858392611370818895911294748129684152961353164645484606451827559572460234832992922360712129030868566014590357869007210338813207595057212534687248203977625087081560529485315117749834446662727328505522244917513374069554972740467335493612505773338104002446690593794219456340070665175165073525054779908706873814787324132200165408360333255974723818721481081662157923087547587087127986600701928104547434507627224319446980018470986600013728193442798783869789361834112572733085489891237926155135221960050915342470972544689037109032798428030153352628686862812189632511815774201718690992275683035680377010690238526105149704945694920731509470279736444387121422342094762948862319117649138625534183132091326331908192285956512903470717991126759466566615514957837898557483896514774452633756596270243241859480935128260838016341522490979605975971020318332321429043746646130639289832671857046502704413262326416837822841738759493882631047394587182117314667700609102683143906859293755677381965079491338812342262289932294930543225008685115030293746846836921287837801313565481527163167203565589988681862116889093112459225749192045560693332752293829723518618993076427438619810291761615934835740040781555858836735558374343665305531749054574781170626303549182435545568052133337980492123494797880439399248897893831937827712823983547729759491299578185823887017700225152718542861070023365084860672009758805949311077851695367093279660637217499678397483441638452669871619875995466332721151411239193930705784886570257431222744088517440905322280247663772849545785956711842177795948220763223487893070986489398076176963388352560745177957293943446029211152747934930036303101158191175909994011138931607278753635988008412892806553807154816646538648519665579170182740831088042237502345115322614246174769562425491310842349076806074438597136403250197756873381930773944831428930043633794763544643302740788469066965905203240298616864375020137149379251836773266138463792880412142856752795299571851435297480379438575777486331661250943551341992624540434479734434126176834530814702526889583944490415117045205644927414253373312547402552026104944481572851102138971613078918882859434605973543817529326841795601706467902509738991825897440491944686164148909256239657092784339283637310907949284230549418325124347827518210513148681174076504111063125136333120395806543167564489283292000951482278982189883524071794370276274818432273149775869118784174689236514816468661914159333632637098455344648452786030658402975695948392141268633391858578916196233162942507941606763488554382010046952954760845886873862340304774559657660743774610629235304759828932502386158747315239571320340807884799450754033368374227083345827762924122667741847574709883894491421034795050048534565431621541121540173972832949494016583564106975165006060100674800501676168144893620365880368584906671670822686716638662487575574029843356568145797671030383440556950337511484688366603622561267728169669418085558927350132960265237638291399747903097552697238380895361391498023028926221427638568557007770506907150379753289238676657936374154889776360241242579368513510318296363449852519863159400829341480036091642246537517300474511588962225998907584356066086281098083878416399266657879458590520335903778828434987041113068300771825756175064651536635854985893490413788824989451478263457512406890354637086397998582893840936156416954584115759029584847634917648826139196898177502714730256400477831570062611618180928209546553032766931168698192891934360875798105725131156496327732036963334192443834444292814649259839501394945572225405185099073877712436937024854839142425490463008516928497437368426200539081905939795511163035678167523200901162420430001237343780629866920923962985550316187858229685416371943284833652960671004661139641860030133432230025281685544401325198531704029882204386927965585222769050899501747859561430667790865031672339955367423030966955423929218538626860600128547805896464546797012867743674106820930377812229917702852442813313085954971997886405295313772606217673193029304435509733804946186764880608378969706423283843616698585106295834346294471608645295418541446987232135850457519085353559276161792171200306106988522113639103529734193200934791421295883558369692933186947483273779556392083080018120923406031059633657484304613677590927120695505333805334393875403982748473227116103265735393800338175703114654374401936622625085185454362147559388040856491424319748601435792517186872660732731877291230734222512226145586379610008410916147599886615463168591620309442048971187437693990158163228589065890508359102057140816565793592008298271327720965011198682599017401438099654475579342565922752091349994828526741086106844036425815027144839130029587248528565071437193263870973533163572411634317473032178624356939571236320316179810454544715741446999343704768168040064087661223817869787354999239050152415407766115157356748886225015305505038932443925200134213610293489872412558274584946259755216712013876699642050711896771250861893142860724505101270682182881854004724077025929678304718193582071024395942928491301752029754300680166848434922326154971208835093935699334029872656544044759849096683487234017673959419505372389897881390565852317582425435814952477980902591130142437763223859266173557768065717195620219085733020774468531219683839010547586999718367298993080630710385703683118301265991273549661078912100652094465798588028909451134146707111414036440992931115615848370206923704929703905165406813566924054999955326186180539220478641816405087489501927386567403473075178285076766331965774922989427971811998352762702687755213855487617895255772022059832961869987656741669297043035003429059140923871628343037942957518376525738912502642831889467412869381881360218276402648037344411766539315020994070784459709735713816878520551475834892834861397729950933360530610297036838248864590716178867973664315331556687401848444087698319332335981936416242869838808331646676349211403801859604935566285437337108217680820939351883837917991666254366670177901562491536392608622585462255008726968573421881801610874592329625440411590753231217177006898755947216927231967733786442697213001234444202029115898142328573660036070739817140586736272711813978444964100324761026410653921782044000281937725618139843670813867986603687789416329357643937931172630200814306599905162421454297533605612474925451270501212070324543567561215018616054895953974365831062886301502722259160875053571817262686247328769352136753944169399726174009032303863149058830086205877781466005567395780551466003093176803332196109264576078783875111318713483953368017132201308669563750266010364414251354984306774721515180346981278173698237154035709554143234987822996582900428152900369371409527598896142294778619819790668630051932270976186936021579804073282864132413110205703084297574131206163294993020605703508889209656083576720811691878563390286406744927244007711498528544243634587042809025326415411924525225742586419610394936775929393068018986418152795547348348524362003447290642368789648669302709776990148520334429885718267407365316702068190741414042150500494589685572169123459765112386438189040624143765633578728975059276934908170260637653850405585924139950320846355686667480217985290819602661810937021670499869647280359920585004236733097176329939721744696339590804816768267907914134791738261438944422814985750653131477087883634792296240182192601733311693318820801998088643031673647475370291135338492757325669911336389542648285111406644631970157403314125735570502806402589806658917055910573922571320980409651147682233931259999393722896110053445311643775224766682242739824217871516564988934104101749607460250154967494083362519835760467433052534538712568369887099352989149632751051124509613053929536027837632381215098874009157455212999133067822479951473298901267041201694668203761269933136765430077663725892352946219297172325510664654612440177309913944302942223616727311082809331677765037939229637342934215042041213721262657761472532097313951836271672849361370255291503428558104661220950526928922665810217306373699620869775706210416203815502757486823409323879893951492987878142894833043991935036422697204378934793416808400618734599011873323761238247167564180087781094355760580464099123431289255388127439653090108919829567706859680321438936600858044638644138127586585705658321212144783008730314975112615929312451873070694530506217149246957004200867354856319754516941192139274000149766989901792451647667734177843628644869673598867772632758819750087211893579041732288541701487892292657468465160459497333947310421800917900935734935668976985580362685141895295396769642000082327410030699335562467599510838078213151958494928296028332384134041771852968593721992504257248417958531668672708766105362458929282495154572400159887849253976674141236754311633370611318587142429810670292653412256048122187343268329924126058821378366181158416967217779366805341370014659002637011793669910787753344259491520911668245343204956253098715757835545440750143995571674175746516854149494845269433989002159429450499565970443743125586862204222794347237894467986799951632106634597769793154523957740501902343229311454759914887318704226652245930868807827892209296937628634222994627870382486315174253324129293342014088480725896261928406192288430042170045347064369523064226295048756359489264892136827341325895688298326982662127092024760909966572135470467988810137260751495740821291577592124819265323429578371663688410951237612342897062060752634958360807051844922384799683670059249260676384675396540807309643342643930228141783608260544544492514922286573947510333188135709373564897094872805931633180949413488399462901677321781536511605345652182279188553120051327632653953631929854714804637530107654203168657125233618514481167751712794385701908414470069544485077755205242681291037521245017835309905848329060500568063829536201019684883336192809796497307259234840643814518037262066090171836037866106575219492685078064520222500754679125311925742493828106412808675061638848331372382986767338356711541694825664008924526635835976789958535673336245641889141810332452866716015604028304009727282477434818865401492673985625959262258090870809801601912115231047147529259511665740094038454818925619539396455647837496750285502246113093670945338733746521174072906527577139126221536828075013208218238609292569221879315419186062521614006412589834095912704995265708615903988082329019359395225856087704794328289352059975534918154069513665953495802522455245250217637521685590368353447356288752727634851327650707454210586926731319788917527653809720088001839223050448651347006152034788652358697138107049268219560464657310310968603742884140915586868619322308039575461278207922223614712078422190002190763044488198069208523318953690579576977925930653445520454942960595857453274359182198809908679789289260469483546137471597233843837783565874938225958060035044157459632896309274249974719953316513240932150042535879540818082280818971401897207832046796469502849924341910155915999608745426408241512835291242167802980294257516349633736964329535974425311038418543557806030055827303683290159086613777459267613706016848183155991673242599904272762555937091580457613851128007726892693666225035087483090130923403893828764672728577342801133166391099885122499920515741419007642542006999577591310653011981112251928168103301948099785268169823055002346703090151537307322775209945539695325350096246492543984805110969355757964888276586832952598150163344959775898401867118992057088873321572834493406277468936611610586164191752032869449765406234852128516752366473653462633332305190258561139192190991234940297069626841265508437919259086545892766894139138334348739199637977623252921068658722732156212117432115635383343384360493056670694466439897984405876750860665785826503459487821082903579675003736952489078657758543638516692084913774614608375217408017910881111326294309574193366602366290781410409707955946433267644345490088232022824869640381925448624697068757171252262229273351984395731260882447587988450584330048328708810558175368560211872024797942004279203171108524218229556931365358776114621716826699015811086499593442659842918955441269688939264152533801243909500885142748247933352021548828094861611288312657516867679124788668784983341945274992465790066610033329172043197078253754591418006654393491186606198223309554956349501428315403507191253666155852134520163068386511466190147565397772998286439460538782131579442720253082810584315251171965546977555419363580124139726207804704377487543422108814622924962066731357079165607495620624906609762757240591101152637364064169680271128963122849110656416808759413532432885399881256045176995594031469770065345235275393527566296684216344730941638577255268956322603314509767576056779520097075691633534926619686686087711256218692831996068624728886833109939390881011409665663316505421034291118321092591774995318278515429424035054470609079522313222302123875513005562967898721495111649843222071684443007855684382186276252747276684465452657539911500490761639545583631127967120928627019248443336085464082286006725876945613379503951993059066066324860850808977353405992679613043361648017468488766642700351066294206815116583239975576382150815797401058470348306492299751624629457145396537593018264952974803265143111159542053419834639005346711011788119102362302667726977601793551510071006343798175787510949010435779289825898353633440160325926171654144295070080505056943327415680516350803931015446924253209032806248937133510660938079335241469262743387801562264017105907722341299316511555581338383221389980849959395286936910518010195479654856738131670679716415059209719345177259617628973097777961572817153185749605150200778827344162937789393922273248103089099975499989308913245160139667695644310258550248930032567752811093609207666409661277316861150339367548863395404359593152278648249960744051056706717617156916278838372499706004530838583188562411477523980741255969017337113336509862401020285859259666822068711705470503238156903472011215974758945044358940549790261656306540167599251267113576302000410950458659910976739973648202268461649783293228563933046488894884486836594151093425487562130642505052699932668383078275729077754289047505206351776401895363280417102023944509344724884976784716002954819011933064083116540583993417988504385033091432420976477531156700574193248587909839963834330936065042566260152401292168567739948813502109083266768594289223452414947285642244784709737146857080086536180065112658093661025733329509340637938894600543537742164880873777282057250488446889951669865386993175702513688035929458188994782167887086074867735797924439997761855304941380155052976317514511358218237752716739598776559031390349975135878591667107718917783576425885805922297548699220435962418207296075669945924720568881341365811656992861501068755725544749049394784525701171471306891566960916518547323090141009987181019313989405078610400491309376174323945258997650573277123454379922379849371652069330982532685526001319102534203909890237859137677562784074196740084987637911513857271768607070131848464382515313781757877213420726308311875727488415963886097955976435181336022875621629055339753966714918549137863329752973468283354276674734383350627374757114044604790651038642363936630102224306635580489083569185157193744744478074523906687503698949650193103821654248055974919301485307308196156990383447678153902696985002528896751686724268889808764671246837888305910983125763471349157841230018774200967170868477239327045977648850182068429478449674037294529443817201542233785804034277699923906776536932311596828361412958201417304283815028115315855241891458726516909568361894330892367118337702549733269143044889390906973869378022034223887065663647299419658739686447223913758662209401635228164169528111510758973218894810461424246788879977790279019075711908938126082434912080283696746175482240706636069377940324964110635935701981401280377978571892748322904337517019657499724668999807123108332231232685420530764141326177048212826536087719887518985094722726877738564987224691391547995583549337228674517385315554363639589164480547725031388594320604742603377678050441263084688151391273072053996634392271253590819147040702377987110446372635243158550630098018658825894131006015444429410058248225928985765658801861951291200276501838776766923198047235337644419720281913509054446375399706403099146530829772101351253738948964482750952208442962546417744472335349920838207383459088239431436066249064629175535274108306294995062726002374164160327903139902051311189256670994500578346807286224644251393504074018380039068187481113036932841266131825120824552676254924010390663648498490067413387818803106166486225233314066545645714729145428531580657118275839389554144726532563212341353313970764229086902221248507343964498089121608466662076837333486557200599576774474477618552033483001247945945346625252533628235853771979997607932128618572431302180148056283852644583487300490213817372331189697151368293257306967384118813997061595104588350339102178639335558832840191016781534230590149028997393452385640155510870441716170057897287179380944182129533606695587387627694628762883078245429421061835759436662306178017050176819344736112467256854327039091918175758432692117186889238634686589909005622681182017255898475957327985736603759983021850033072692679728225382690545123460588587263863373211866594580268743212484550530378571079165662687609242351470346157827719894812609908197710875897044138725962017009443697119774202868773010614193234097316732243800760606299311363289245262384927814162349631896707720214444473174096249168162294263691587661053026207832789466117052174393925844490443215733023461973409923229426096964599998142606565056666737587911354645611404788810629513828662354573903293289122303336666643412987514322646621631572031979942561361370545027465848980518033640666139362349836990506128268011181682864303816748622973357890833058692240880143627151006224461917170925692155887535748005392290725779747872482896308735156344238467122604477727793882327413979747776152556237862200052101635246436553191476838711493596431673416322640071526037486903939478531211542016186652695677448987824044036450986996024383214271709043251539559683950274666975277189566042820281574011715035666911498471088825473338010765138497752164047635133282591964261482849031166463798816835568668914244616908453901080580248601611573182133812122228210922039777287051969397019763298215787422066770529829845653291069479428404346023175397087100460381121826717149048070543006130479735984042111077134865101979867010990210632046076701359083160884395029425969736339639353492088627818868374018118253892644865455131673937102635826091698843489858521865907704881251810494338659786298107298663826867202934150276272837651459524686260948571293974218310820230621819166676371656191601391550153325403790314124120288253133564982317088766255380037484519292333905859127626758796561134858867085606863901844518883450840028369100313480557685469495322018464821393990815381505456925026343837055470739852553618346747903832426363928523486507510076339401973855548316902602778846855068300316554934999899519523872524664192938134113039310417180941528417643206183263093074778302997460963810266081094920914632126688648716755507001999419808297603152446164095894835073102873055894947449875089308516938405204976372299322944259409157606075523011261564594613280003463693141335160664080830850834503611040766679452319653425804718098262891154893838678169936561367744837995484659475261868978368971912518770157352771547870937489477492493693107137201878208567159229143822711121652789626473138712055240404077193438367842680137336898257628266911488196463771133600036542272878096030158895691309450060304994206326730471928006200787273573628672891417574386180726053723629677939281444824844454338432787547630096776537052293620660334436780977103897954306030507173184393202336876071184863251352738326137704598741608639433458321172408063901188104460975851012833685555389782102819629505963076874921425421499991922357850947144562071958706266416349064400393531126819604335038381094467126778545965571011075350064316002014847590361942005546127413054465853469688061459558748352008057309633577872913209987025615882184851575333156277518994030300099311069089019033783318215137416195207773256738553174489414391955380884540009229207016187482274736410198736077330129973203944401322366406150797745655627461211689517622014626833674305449957110551041765421525779849322333237982773020106150764706574304431049189022146991780249005041318969469125517500739547909722501934391914149956746122683602089554585819770071145542105280285139717223956814167945608808110825219714030405007168828152201607596079720167818700853327285002704189306747940769302875869467865822781745129792477830266178862103763949114247675655215158066445577402258848599476483321492127106538133902764146104154724586340949304834716592317636284366159406258616016036412756975955528349307497699869624994073101782904214085212332578003397342895190056499368301260683531527997851262913493689095523499451877643381137390295208606514443350604598267570130306089797601482875869837100352034803196236087759032327768028811664676938677216201931202982733028230572347616547980962089183578798874348415712030538719257671644623228019241024660145220485283471814419963331784884679930505155203619401678181229345473805960937109839595120792788219188804944154909499405678295645439929067275640530637042487767319870872843499507278874079238318976293704808853179558551697737672039892814593855594619462152383597917462135026292138059623053998729617718984551577952446608607632543644144594544393750423509187808346087873834468913379478014768791692960649832951935281138113240592764591259180737791475077839123267354202037257274377662154498949588555872037288756562802263990496259182388324112343639936644082393859489790184179856671026607232866999986500893471200856419562073994277915382808150316631395636712241828048688333319371219848175972230750078837247484357874342439374945392555601476425067190559653655709525018347107793538834266987970527112266426745715279081299287883618554836377916379277810298851319963678620801676606765657875185605012718423304379599973144233658950843184351342147695826666987350695089422114250058877617314271381180092916293092693140981775699209458501887792657777323038315543819389466549248466040745907221363450922182922510777601036138424327055807327555679173558194853811545408762389131454193427109741460579579752819085436209326561707329301836530284270951630843955457009342036570758994957780887425280326972048955089974602471383130758524170243826522035592539626910270030673587494221487973522011596589276117278955503208076024725964948893391538012246475501319503712656867486484082826056503064026267961663084194291181591035022936861882016414913310734571464603674103351768718902498574825464457306055686264904374802876921986665392701842924361081795100472458880315555774006493133858021841479123980863456997344697507783607809070457717694604431159614485704850730124677228415421534072256177717406347302645621504955242715543223155278005729872525398037379697594700180007280176663342452242484578305669584574553885734576856533293375977554720377419521343111955000431845195674590816631247690343060223139939507788278989859287604437749076548036344465465845121991903615548952645182769235189352806166254261388695265868805906449139647554494795176998824620545371169855952317282474677458579359494037721872549740839475042719252964422327465286331691079154670294880282570743947562372898178942344975992184124594515420402894154190151676021069148019360325019639433478695557272575998648841521263851208273544362799106805941961732027565329012729916515826485600744644902942671829060328023318044026759190278361206861014244183023800620844419823400469861261879301669422169302079817685509968876241872583470242162366871237967312191485852562384242789216397191890158253672469775170472295918573855908731126899627553990890086655648576978914417980652007001721304164124359980954660176238053396587007431473643335903694806917273072436053126748164262634457492865317257494170027084690583481788550813979439309047555954077200060794373115237651388898662843043220608064207233124534591383336438945073425896448769712010127839024114108865101271651601562430245207246093557047326975040805536805130999771304562282774218080108346170120439748688126047080478979938646285634731123126646780541313196871728920008351234684047469783423227660431653936897992144798309395297489700016890951050306042244015079124450438129268700510951649114854104838513117915580097072075019995882899622274506643816608114617353874562357267722944111099789989432464555926674985589265125098028140560080242592513820809455914272634912575333517447738163614120453788953763821196746606746981660249744914237591878573321841890914200887723903825013546995039233001219731706983865039409453840343064729704667936386254231510411056888536468134562857323766845790004896680159639346464726051342295655659419107115923299457131087315565333130485376758658573697843066509084085020815059322472531236881452950088967472672146364937213772075154918787517289799129945819830170425494713257825037527189586333593609865717120527855741026758472690533350260140429265965981600723975419195607677871710370813211864960234024921102533992224034777990359647749757731364321541659534214922224324841637201653204177689249400297669729036747920400056914957160395035198337609626013778290556039177960623751568430940696290421415941902148319240323454167605837101454430998165611499261620426802682577135253071117150711561243714540558295907939480000281786867779341857955480544689913226194249978465339481801484218572833067890231824236666395504942507341486322159594567616242484086280202059431251717216712742640268464191941062604947878750618835291072922528590383300098294600892941760686206274050907800287790376415514716975405644413797275930215069202542305114719256632478903757865766476766682165049287849940754497483799237729086773323410135703325294604513750110136679482375839639477522266170015430231190743686412726342958663640925494773235947193469891676087100178804921950654727263295238250911843274506240345332706969250538325640404828335589980453300408840954308683171533301514689278327183714707691001457253807540348485591412024360950457253113923755686168749930065917550205433896103805155885874657608939630680018877155882937786162176904444987444323509475160618159769051327603233815110518223057242778272094565289793371609000077632988188455693809788840806677738056704955380457264368042255597799472618181513630591219384341731868163345124946928730771587734829480025216327927900506532709402114946808617116906625592713096216689558957975599269221614689676161121820621479896193706796856273972581045015974040063235372111027431556432703346175947376893810655144905210233357128808280258867326790271934672857153936872231149105692073300214383829309924001433217964834032980864914262367664383391816819119221660424597751721919940285587021616597567806040857470115612604813081777898832070082368897581792993790056409736105708077429221967629897380023726060310907608429472216312781070216595729965885615913785586174407204191787473178122808919439462756336497983669323225020065988552823224071192501210557755999683981125827070840914352745502104351198768351555492047389300963350690882318605730726389901851695665256784544306726827301505508048364819228166016285418134417261782512975843389411260608809731660487104817109236586050891314053687190148278652796720725952080233843124205122661388479423065347596129394737519786249445856157675505631785362318488762132868375399342969245027632941070952719532223188040436377078543062806689786301950807946370577731435755943720929354464666013225709796855480050321245397386850083872478976841443882589502800213830229355240877410988929194062054880341001555944183632036565952782381476579872725942421328919231601421420190977345806703300560462387909357625769530990783548465436397395003368099627604013436842421518866758542372678510402089249785452033162989331044313689769656311604946348459788805964055622829513032924154821923815841449817909691344548048450156981720847214775287093921307091620146162762064546411170389188674293781387562555587343975638767995883852782741255813376268258410314089534074152547874485965127789945739977309248205934132595715436371315806669562686388227122028441637115365432873999735014805181849123385199923690114442913368057687016975131248445093343123250584185691891820612113809839323841607515840410066305981416344485272332768144419745308123680562106403148935479570213633361420064024576306441692223487450565416656590265586267551631714088182435197856106043554918182785253391675591969007533364619725603617283226917125009100455543193629037467212219469971746372590692423569399510607966346487914768230903969006399715167485291777484037028569586307450175073584787435096534484135842087130516352236955984430130466824665936843518828040617336621327613026590269008557288872116917522757723701828810060770619471505569842123577858118828989366568936786459374526468793493719724435831638500045070931493389085449434013076830700989391198589080577605160968723496057825221434207278569139481476290092756182264982068906579432747142430761506253672334850735609997262907535579462129831534955740170719348900991994490741491859467882976279021344471116816038010770138223576139668506739059187566397524853312379405071534773488135170496130884249810204112984297862026540362993786545869377262607585185647927329321037787506414046944843642004421936424305187220906130782202276539215738083158946511475910082576747923738856182986906694914018952028415605268143776790870740196196059904449110774324034397684843879026346676118205430948019950023120792294347185422237001315699333903235137472761915324232334509012680811925517944432851477379520941707901209941795664069501618865405604850630891773067137318983307351320973196472153551437148119991183396836509218483576036726031396322927150329843455542344386738467434202332936855604629952025210730785115578269089336783342826772954728769024228898885985515887070931318439166848321623891427235232274676290997240276691898607089494088795000475121102599489616001849170275823548569002276250751602905283836658282928936141332530879348841879862823104843664527672695738072914143944947757317175584980071985366598071212328284925592538678355315360298490828086831343766333318838788759967771413821097337493104767362703652853724141983218231706620576083123296725199651664624580051981962081429430084864211368477233508688914250513067712162133738213126501386774936991508907298758995837959335147406769218949611952586257510187960670754836193127385839337236637712093222588312335607121045334947982581334566606296593916047475157755526080223284202227317309744845054998941870356482182660390159490145827944332944016405274092610730854218371429711817277659646088289146955722813494945114669997221644606971361981667024333166754501735853634722415128812469442030624777593869085546690370243962920124211573560437244640786403364407949973571292628797750931528096937016453247468183310315905627027133850530384744639550050549119254002961170592566473881523515345897919329785425542679596264841061951678664337140346916485378545688492146292886169314695313257117077756910399223116677418035519972221839752549253009329827766933523350824790519143912837156348586436428548640439084094436149894372285695044259526856051405191069285358857327788371104282628289300561572455904471082252085133049223164927699407347272091887069172873879494501738657827947882942749687238303883705839217891717209576631722937578968734990897076472336605958376972870741738311360970687877040367328143943632307813355215097802155120930778462378943935706667709396999551515540315285622113933520840051157989964229077077143729774505873556095082181270890016204451403361684482769843716861491963296499824925251850559672169751840701143330420546610077577004556949338238402884279621090834863902173237226475569629085139418332638320125333386393303498604463356912869834884423163667670341271353545212839104304459765409335257512715800225156352194836206245580732945411182265815787402645913094908496204975456143136712918233539167678906787891649181803890194415995715363959425611771822878686958935773516850830064116636452053295149826860117197484112659136069972682958492806053151518482291477276431061444349572404940237482310992185201202099905099810187492933360851343363295515948638086407902825776997962862744510783158699917926079647540339690994964998850662222704754415113354854046090331813377376265884984412984879182186981529030355221885391304559597141131361749391352381656296472597863074506270750020933911186622382576281081516333546899549589993172541110398708097892065895261505991502888948775237307760593370735512120217591431282085151768991127442572515781780233068760098196202319769854704385181575857262823256600178771990040089145208834991370449519790593820474308677041203962803141875010798642167515677289923669883426227812518728645608678156229916045096191259142487217566538869680616877178976765373870910282763833140402972501491769465261526837998221690204044919074129453661396253262899256566008581981784104837131310382392690923804300442282715055740585081634168304542210868739489035535114031029907782827875627433726031621259779467192033140825145848140144256797831561877809220221030525537753175021760470220663745037114633065621536243787312763292981273031180301035175448723454600062240384357485575618810059703064049874418934554938136438917274755160692248489530878640373056690363459038158706829082441847251122264790895832340059946967188078900913550417714674680700194500235613310909983455960445070710772502690148734200980661029518735526069374546864133472561945442181448447852585732382891630271775507495736010285520518817720212917296570849086067957323247979156751006943894152672447166899886381584847571799445570209626273854496879615043318832698005679149480335127342239688832765005085548574266254577548366753387763502485081138492876391754520545697892362112983544541459357114194118664320403744426708139223608604277183340444443435076564224492664475891687131592452823720951662486412466796895973906333000128465971417419295634400599595804872804525980574272194518821545813098914796441236452838572282717421359921954922124043789151277931747126186567603436389057122298723779986801045118630241489475082021826149053921713409446233117915102169709708674568763646928543582515691987982319409808063367376505146389156980986774487288456577896214534796147930872494272287774484208852406447223311933250494353895054356202811062636764702490551836724133692114449432011285127919852274097865493487766430840734273977705886741618578561063346819665845355820761595910987267933506472106508373836381404944026489530302830533994466644111674685079239965120408231030661650451679064991064344175856099204849167453793068695289233853591676541360053934577109656712666752058845306491372852997357316385772817560110411522672649780158896301717522857971062041616362227828275317674803184863492137093195708608220211535867947357266834896541103556657444536722942482999282039721127425044824482050973050010895230184793298527650936023190718089740427062445190237987571843260672556624926147692577320269454309579727960342619075459865315163548889556989234334789180555930916121834391436116513579430975185400576338528482421791195863874815038630552225658571150005908565828619689806242709565981950340531701719571837901962236431532870991390321000738766026730670299819058394367965540582816645993142313201019063917251852403304425406046376284640946577391277990301874620278498031958299898181190802263461787842680697840146752427784655817343611750504666044952566859117805261505694102498795389888654283936104884565359479216215756927127949757676991517599899410851089108288917860116455695721039587227108616978650310222252219325528496384409035989173175664565059353146579357326248045624272376302266987499410390367561485287627670001210617080662916186516686450396154513209372997936460648493539863468584924428142434294301602082159698755442087275606575336937424390394083778190932126092276280997721731597891341738857631567411621645969658427680253676867668713972403249996638690847991603390059929527730773859590810163880249156148730730015715695646626602179748784614290220963898613475287866316375617701182052818476363780531476488431035471691585758751950311527255869727632643966108417546499335845816318989714075422019258890260357199476651279067313481409455759585012242278217048678788737009460166086013440319117611290903766761458911974000519645624395500080936337778208027260119035114183820684717487794314652351841833296772581221861427809786754424987378119552646751523674769410546189916767937187934262332112652940271043184491046261232983200654070846003812084210564688821749352445248317995563603998857179657455150506480872605143907707140782267891648345510651512055423527638920585336021137738640485577336923831007500704008692043879568626155187839707202445147701326514636018046984604106525884481161122984968558754655213282891515493313089207042317324273956059164191684046207150154830895918508125586760682181807845330794029215885483756802485392892701265247540000790633336142929010668121694112883338489159478031740504975779821449621965164144143868745706954755639570198372095134325775263969997353590312326165831724204515273064008819111544198149184942718709257572772526262953874904250964482687674439846974244114890723918461035322346172704842727842376696151886521031665918096116081402883373345342932880762506611814660491830727272972835231188751233853845136095780210409221394737108353116828413584139587484220223829499010467586369231545846032961523451736708120332707810066352655140736652456718670039961656229174824635168119875716579972266188768394433536220166911814281062307493896724656267479454904055501654175195748249455836861690044072299311590012644681000195865167167502155593773010952811291640713040587731094567412166340385190619975080566019467880495010641864027522948020692592493212871732399537464466990495696115251722219552222583161416108510933162940726073843233637491996107966470986952322111546420984269545657609373849428401185540345187879500374089647234863148638457886866767161711365120180966919065829944633264074898083268605061409709110191971145452594107277876076122976171987566653668379525373379495791744461169080407055469645438304990791124159201404528375889399434865498274935183683457801602627442173979846478915241501161341386007435358746737735981499645640741662100860757737953463962404875268884853941550210090766016609804803753600986089038565656806725878347524524777082968307387827917836540921129376980618310461740843070726576930903192350294083630680362752494199479410985674080775471456457251368607850006861823517090294825466961022851651560014760292045714865827867315861734133689379942469001865346542356722860610939078240583629605118272112067454941972186323568668508854338963987889836177619953190551408692381519051611411042718378271364110827198423700700796518878463644601889284819726237645629973384335233471746012402620799904695002244329068199177324303860120303184810412603648998913783189198877286839670682552450242695962540026984998817583670532109852014772646671842254667254598334235039442249301749633935366379357731660501803310076512646950554016076355759009226340227730798906490450836117782199267413480105673804427715466766588110953558829215768684969481597989757020007100747457655533195049345665205793618252997095765032475492045456641312052953394655719143779091182027558698957934292269065966977964860235422273509801866626709254998017807152154529837296917454954188477440917204613531934477306259149098351575487405837475553323609484801238871106483766555947423066199452184161623358903122337243243860533002479742981999221309480557841954554114974511832150603231988299518507566185502622585298530608541421343589571706246115795074276256296126863331313425298129475231446009451151136288082085208614652562185943912091141454405548221958042985626756302701759035156541126450023059516534323494608751653442687827382012701757684072289889166649931141187060421218472885892387558801063643060634506959645718349143060190099375302418525212871011859834398292560317618280964164240673549210821848789773262753481439713584839341039594942210406095287329011291874272951563715981876426009263250604494298778337989353494084629966823413591994556895929945119191049420046668604764009040004085792439529054412896437623100171378770406496785499569790066167515265089450531292977198439788304696528125876631849806837924340130099671721635126652526677749981015702874454465863504103898702635273204382734892943274199525207793577590572301899030272048015471343940743513434200916125366998280851383381819532151332432911421926507936880433399939319988530244737339018013826162556873878107620432115165093616384306416789530260019399645643318430244212213643699316432715756339838714162422303817778177976676882439107186503868277381077693932354168489318101213309290104342731190164401484605652241081204878445024193230395233702821280847440606286543676554127367735660054029383685389468121241465019228308517743492070535432356307864248609815744112841444588644688381985063506676044467950520018365335147710373441810681689610865856286687159354773453004768457968215495031784204243182419987723399564435206929860373699206283043876012091916237601553856226365864119793907375078619814468155470290904130388700089278988098953179506119171547413054550413428034753382741026842585441790349743168094904445504924925876991773488244865759374290895670215714364390329217079232980478963392807630633621949175734499347908029728262470885728419874840522726617418922476798288274325957222837892284902610788781200195852006750771312715510022412773564844746573938893345584161663178934824231181787267509716573839068218704698250422509613502602301718967714782746386759994543932462014877546594012900503911678252319326018215788739652026160620554458719866226021170512893729661834519414684428414549943267369312217350782016423342958306211691341657507794975853006086431871294645353259742963347547024247550775823305966417328814577187443855640594397588706192021509269850497925615224490978740158120242178964413532867929724084175521579520458508167415130215772783135281352691002824219121886087368408387558375479633297858225053875313147085518714757564877674639315713984538326816406374613050513769863404426135593784943279432456117316116862326146086023599049101110647917086063180063661664131294630946849537421025947836578036234794534055858295653671619968585740873053051680815118764962330250576493955629242034145317154735280700203426538797011596217410012532075007575498519563359867594425074114678235727488010579613935663672111655415666511912988547734712961746475831981127114925890320762544167534206440676949059957935825042347820592563132669973751873821054778370538973542221354103723516407051902738088102964802638846420331185490241002764616915187879101723666012324266547038402472344343670261546816976592561814068967142487797807911887874601495612826371438372804856409065024721773115430550284855329841468414234493184722485956784173397768637277082014848463052387535361199039991141884957866662431437342388915018504528205787257038880199098314213818524861046833560004591384684775074179886769812276051092690651333055461134382192779572228516275701478163116169069485769682415450188372943112733999433031798752205724684073186348607646532522429563413644437265116415404940573578847202233334177221300424224717225432918968272170053092219186895334746353292837027666933275053910877709387427288188763564507392890258313883847375214804664394867004025183351640219083820867555968363665605158976869129466616169919393160804516830637801699501381464788916998725214509672527086184323845611804953487365126136644206580267892655565548194672281357137940377149718340794043849490792353799181398978174641235961673591392247121511403950046882825503136365178767507352705679383042607460326043770461676109981696254215589131635256995451306077192795422008633758912371157816778678927305760256238438496653916442530239433051078906252317401626004177516033856984685456070995190300995127138715384386906161191944726420744310191931734365598191249584698851751421149493763430983006941428292092736280487573178936902919697058318796188052361771066404154606069385258820361192917619976591248761785775189448829920907749638016549521867330847475317046721832602108325453419874617272195769656478384906507074015458041097994988571626576102879605099446017521408464042320621260606028264600786714508291216088292225367668564628453866663079590318654509865912334744307007004237365253272558159380560092388597414286626679861621755192614969068758345965124394909773689810081900701127168673150451940938440921375139270318058287869429598623980085636376435493558045837045757977637830232885343684457516348019705201716854056383508056976620330357618020869294565227777440565048567591885777181722109499476811160709763846282933288762075987780245332826015920273391051033353507248964568493171191137709663538188287427019416468448800797342402891669203927473828289547048284719848987428106961367936021452678771590158495061959954521021411993046372462676052020956672639320645380222828323989723077564999078288026188092429721134228467830467514689447550493515174745150517095366293781986471024193908272875919886596240702668967913592273680446896890770364295689677671152972170528034931206532394767172811051554282795395198243470438732438157630096634617003545758094795200184782580999491736219313238502679664986502604296207036896849482823422471672819784434974899999240151407031631550429202043707977603197319818353305868074676624456053868460334725436472202232554978711443106145000605013342319270065007597692736530442085845426802739943320558102324605112474169980115867451668476722955224601356872740880939618948727329192132195422056837658111425544488874522261788064093755778159145231364321157234801991164246287862904986196202350856633463807343564747065958352306077957801802591588358581934536828112679374182208871578408694363319856023867369341399548049351940425917554473102086685254864985119914217599590229997210846716849110503511338433965877060324372706985132101305689347866517114090335126700897720109202016197728982087797136892767272576393927722691424216262805540769016771398305924657521329733286739455367338022673735442147571009679330784002913264225567895146083759393197369672837654382100393373639702965416435706115109851246047947441930145572874613489682779454845233205557233089077486162792724040398576904510076841942583000257536609792266437146519905051479300481882161925352491320819793004138268716957736145432715320634056428584874796158073864949274987174692029526941393202173756829709897035779990130373868382947125414533898517504112788003494144620260510946964632717184516391760749894695987546736446263734462903636537253175244454016179054532469484605817891581792840737119529180383407647748738796705019377850900526352306692312961412256847521087717849221112861166081209911438746580495883937814546717433773525805706909828407309345426041520068293620282337065441950012913720226246705138570611326556472638798081840493144205185293466719620095602530734954853403394153944422098946775444868767641459024325041256145607963421323510227011105398882947593640330665347973576452231254948078170468680904942172452817016126906230373888097002137008249735031534463817132236509267220600449412721238086198775147723006376101462095944758355435274390000647940521967104742175535859867554402981677475235373669679043467863144456443300640543929584391405994595575387790822691243837983575850212309890419367789637589650249490558684124497557158266826453129148953918839704464091838882695209938107188170713783110768880437925715180757534414886329307516631451521187308837468118541107754742465195227449797957770736153272789327006749187743286528558305748983518313497081874225223646676525683716306970193593307652903077543663916898108260095274340699533413492084957385187562722269707976261999931861537738150703020509286952014496742771204587736245685600277545452764421311704378480618362568338273511451716975125493671512520075660435211525029451136119817062114109314278227226735002564498820355012545091374857957201944654798846424180648523204149420513098654436446829060149791012808316122421068243508301656540601749397309722577080339427723534767897091949787185246285524116672846229171245921430195933331093640300147415508970966935459502707884932075540880769379430251630051810747715867517458009780525292924521262669845194320122213739616993122228527343380217824891547389928713142035044232631004003214199847474879649701001295858734922818027229175493502369309078468671231479091497354408953869096623477211265752140392439305802705150456760476536550822907887050631383621604434854104324940048473399538881418806938279262870371025413851337403205906998437728643839082912474622907341266879901139526051025846437357689632663385415547716689575202235334886861661412324632366063279136602103878689996308384022416847291244503876099900556663071518539828370751003558770922176378118411788653005887909925474020647578521009653076988805443484777640155748958247917749591533846750316451138369740587720367312799800019855774795302001832354262079596247290703076343030913360721402870434698669890349702605673813249173783612792895695893560446468665091819332408546107808160326130257740437209897845735461372755443885407397060719887633807964936810757702481002631349966681573425248590569755845803334136550457129635281977483008928405509641773519899434304734565095578803172149511399267329634701686974638926214007228621636074235131317214510377205769544896159255655627455487447056450158678101209144767535137060743193756788120596964496337387487318139967334805578593241780509219835693363139205912552427028907174984408579572987401699780610559665278555232043690286853106261254421091092413370442157316467336827056392301939414727476673406361781202432084122419420925806496517228619872653466855017237781260860501995940735727054484136095789499410234498850546999068977544788356440918804719905050710757818516144345059767792881797238865635097557330033730334018645938615549477910648982310718650470979136064358643046845459064285410859184671102162246153006260560809634384844297819034475388401653895413915941199774151104793330804761864165750415743715300747298585010322425477952939924615752513699818650627702412301486462930112913755280166537697633905642497075614708566817111809334456352801769107843980950066582401976379656390247513781924595139778189209937709394057630706493227063398185243492810382341322568600012148736388281633748015423448057360545485453924293168059035085804350955998996694920186269700819285637687426434879842853113641917386918853812783841594289805126982163573705152212744548990037185654814040783774564255549915098720967433342173320603080009972454914240463707128171457245539337610567479921630905394655320086293871351307645121818954726100511859047499570547372295143124608574947622601268890968738040921563457220518979621417209028525422756692933057407658157628300370917849153656081534126972793719953115044261422785169426331255157354430915811210477567048502970795283055895814674794058435653082468635406735474676765424276250749281048584637453716915789237195236129688102734660628812833452539505143024406368130658255636341804840407806151691622976110699428064290260823823708480834088527176890292099193793441610455050774589677674123406562359766714119257792477314991548798651011078619042970298504547525287245556263978705085124762093336338972949638155057262420539132940426015494046484600805604312278859659975710932642930585750437049518613875265020759751913425121752676092463497495147598191838555847259828976529212310984595332992788682643837425169737575764622751035578179267978406969636372069402580324288811825219922243071857559717447030117247653917066644724606011019959867350585147422180183116069258754055593890139949325207746378912188959173150136026506008082441373111677252583426655789092343598366198502481448331770829818171456316745776589026931752660793860575197283601802345861699922878222636936706797885703709712360425070131649075210966085164814040595321454051571494937835688800376172335168159414534819691680744278524770141732546852868553444944516969727613127634924490340239893988921746119425453051739075326459400556385788591922187308752571855671990557545716597007320546679186698054368441020464944938963718997093315219431314526027029907841188184460373349372574038419398635044956927235614978576002707803908290397102494096223434950400978673455687249249388285387385390984123184581637063262280890936513823817007523799480947310215677317390787158763761358728345239891752426722788268508635466658268944730356139144251936860201718971846385924592447213084522961420185168174152012189267652942677291254919570123764515841857593854851274613766773132914117525412721093991439103876260066109401897313184759396417338652878269649059511014376955138513663577558291242444006734485859714703696947235853490922529608210005694194673399155024457822995229403166069921299461178117181421659258563905454321664638363661603903116503183319567875085151763543679759464469755611519842895586079742596777555826998531176921114485282254449844335502302478021964800991476082076815046349358811333484487647834201794147787138722932497152551156081752951898266020472362274944052798340662401355693729369469710904565479704423541971480287849072593595777021475256200908067842095283958766435158212655315987940737759603275069729022566575074590202078688167966882977546900404321517552453691732789269342443736968948844907039867933317979372968054615667362840705260518138885206107551095516684738911277577485114713147693203271511080577878360403013441226642884743649134986791184494227137873815659424667498322285219170260199358316455087727238907236193709116576928853131825550713875587860155915373221282664250545842955180165748758585855074133605886170623038474816485799921088100511272494666142519994386132787030153150546616617908486839529159445167828793227649205900805964445337266267321227066629489908640958482918142978405562321809381755510552590157389773570127465381137608279038233681306693306928728619942856050713755974199761891306375561218346085497900919540369528135021247522868133063166232012006570349469916718225352117001488033223059070143041435113826731759323234669564965574182735666167403396956732878644003494962545078032219404910642462633756526792034381177956224701763629762157264741908323174947004236868002908521003876163856316680141615292986786534477484324001804836691361878723866699294466658047319092926820001017072979589553703589311800637651743198669114712390128693654912419903995081372200608901778994003299777313344123324109372259775805001110232862435308212550884405658823359444797839906369956991518473669172423763200025354234380909111952477153352679679052738195596321525066744856903511654994472923468689087981680207162239493964966306027070645933192880056949535980059556254628037485263717330360931656297957604510560652669256797745737642790384910081024713562000756397438093099762522122165509369008131930611487405291714091022441880205729502518074729680527393478307352968896412186567077689189935006437481341192006034295448796427759165638925066648771190728356449374989107175729751015148455541037169281661552696596071705936054559942542058597269566144527189366799570191674311725012579368476079986191624178794753251932128811216458187376173956880626337486179670261544129686287462058751059692795682079038276525944331887278642717124950736713336053232707340355875408090731385209351578620250384390322554415102312393827710277543957977133116872335629783824728621462319967165625841400497579695039948001089486254331981730162015860802620048502884984565843561322978146676159339109222379440296926321288892399479207570077045725484241851156729412939696076086472273021326727873582646799102910921815830869943412811336935814140216829338371836129402624382089867810741053825968851220929662035832365970852193590099307392012593592118662964292789515835381011136624315776399102961986287435925738683832091160944212648753685048985994040142168588131790155824792208274835103406032728812573826470944669658001886916801882082527417850346926946962182310046905159338553215918448395348538678831549955926527217798650449089008411970649834842862685572459177943000623922331786233071304792389169141374222639785970512133027050145218162713193539825544221503235590228708608548757768293159562207361444545577266756427900160685585740987391726097722827195314006942845324946008011863755137111297232530836891131815205384660556897169416622975434830669529633948739821317084944783542092432253721520077374963806633460854407467833852841244694543690897718301772809038649043256427076617799357450399497535546276016704306018002645140984850716212097072184746538449443881690071273061740063491281046725916526569978490450652518493820081875678760056202767161911003508081184114146671333673218152152848611405344367923145720152483090859939220932709048641450505186570583569044672648087690214605480809927530342423254185836276603710226536294027752860030896741528869106741664673277256775577977511622569973882505153013757457133375852543235450979544845353793233150161729402464478028068876799822537609749245986749507931544501513036117361668747750309925418063667133012964804442154206305154602852240937061486523879366229162521068732721273614340198854509773083844466281459886315625707991420380512004553687927230638110274594519003302006014666828094248636806346515472118175738700746660580618769652085433633977367299339268231432761813703649908976348552308674592355839727713173879665991527745833332508878577093443556594390083330214578546401108293409246956481349267093094031880290482458666674933594160246046599698836570166196254902097479757407252468716733514653318423222116543977925545780526184867946485554723525121590042435094070677004267167280382270988307265076806702673586259565092750644112070002643042105639001762091281001407489950334100083551023663667335666729897855875190078775196782169772931230446176537627822040395312545008950442807608845644669294053178898415737070603096745802468195040207768067828773882487848452217771739596773376677887793697267035959779572021385220632479961087248369807352135172940904065071171880372137668621917233280330410832931616074371762935490184708117180217327880338423006651121836092468119369111190003760828992982903111028963593776166485150904397663227488576306165290827058930910968689305091461658910812229218757488002364737172794365571493853245245559984032254974595363661432771673873279048413856269682156444512582225989316421594991922429391211573956846870884172137565286017908374502263134332483757396585704253755255110086916873704774234280205726898899913048214186112604328525661304695879116979600482353438007095218672749577187632989130739755590131547602501247082245716297746109320003392861275611765035300501362773043521503875877863471229480476206523390527263785607044605670426504282868632239843638752258432798795093636348633565199880694096962197111208463758183399609737355322236375784542306648569781383152200231139345935785756176214169531339366070455792878223487374928344284847518822144787194194738688098485788917972339230668614439270884083619239037763559458310985972406512984072249248049126192506982594825364190003597179948930489439655393849846282544387440879707859736071648165531913708103036911052060235068549393107109681563730533934892468560559636059941301070510688662506615207276702325608119711439075174243662423693039722383164122228845437764283903553480655122851611711379029554667922543911123043093818920577248776578979989868329784727933758410594182972267036665440462969658769480841554674574670029631249226004265595194829765024096624002114968116312617907829283534090520071500532507350453390627037003877572118304528139727150358639843040416906375193294197855693657820537260007806826451192003022414398817845391750464175112027553390368124635527374672715735836136055090928115143031949388180319578420720390540083918320702288045856775671815597457560133377274178360403653348308647426015582631248626895766234273503311333835871935538024802989669377932512608580561831425110641535217899340653575405657509801894761974918611846533204651361738098370688489243006746174768739412494913811298343613227154549699366514854294661144240639996660200381626295557908341904338258993247407905819425994052569360141196721929323648444088234158427696375191066922281477967920490885160381095489692760339100734238482349745452066199451298312305535114654185088933431542796883201043134054167800335195700041497170230221142577927459541836732817519567310816868880634032989814847125546476222181472335925330451961993179428649530311312091216614953886565621102755073026602564337625317962463917058647143021307690606067676866775080123672932017879499420489504995039910505548934713826359750897566082084546254545823140551329216448461382382087352074535635839124165168521981971892785723017163271226527338001549720466051628270820079441573655416889578291534746947600819621251549895396280300512154308429405901431342563829087030816169864500896334183840312142887713233898175693885687021904621208176163306286968165292563887964722449221030634406286950337302262333932269331689828101279203919436081941096088307081357167262997773615665859842379202865554285769178325212078751582116096725152353540831931383855310295729778107802925539976313114047026901347457409752868852725079993340316629726306435400198706571493433591417843801222060502580001207232180914549702715577309316659920699032183468056459810383884467879700219348964026516312491913322772999755170699485813356315861243105730449406022156953040752404225689245982788652304724543335176638115285979643892375770034275974917786005912426844021268148654116700238870075780435429481107263443520010421817492259405362477147512947154780244882297906250600496840789480135280690720870756024937605805326653789663136437857334277788556803606497877904052791587520736688076462543357526642992774483113403313054646558033180212006938507926892068630668875110117248120193279168160379885120903912487447824026730140597774346736851050747919553236434305012389167113975149284581876634599915792063199915788521668894275079195448637084819762700889878820385574577621256085013774208641459682825216922199199577801364921750255097665803924114496187799093879663061114529307580245529746207123722727702505391987403523589980717564552095951555268828578410784582306909932932831921897619006631420048372988772205555097172399695985768307705849383519628568275673463928863683662650019956936944478434769724330795623900132673150011647211807705594401168393550193127468965119555604104871808352464339726462307500066840298439626999247421908802867966857148004024561995669275951396846403832260003587772268052198516792091747848820359940668058572000861859938967228963323163228706936432375457886279402916742351827878640807850787080814323962575115305806047521401442414336709596986003111361113617049415708737248451761670453386362142404113905226454870466254196252181418818005943286227470712320477866617877858666894459412857881670682771975093169106350805931800689786431977301064683951091956827258936850645455347755398039222496610879689635083147340005220956997350508191513705288733344147737703647315522699641626322041108418893312978515179281142511613520048965017745382524429908549500926920589949695622292926847890499032020259652660815140381448971469683168776429224856439726966795559773294356784280836799180090331171277846767504684087470643814169832342381295595078076370447546082267393286301051960201940998552071325743304605963938708142356993068433255421643040877020886708332892677549308927959302756953953681557290386703700015891349989256765309399754354459071109642623620746336257186978008803149212770153286704963302325201857808979032306745603191388961619035107099299692593622752626523293355722289100889424029091126207648168038295804799878152298663168395895696723578574340077381572010615503158864708323355685798285395173951244460960844559455213920943542579556569414737895203270330985223093106252478251094933712333593344708013860167259088460342323652009777195133054516978761627719517779895935131561119366584214467039437483281631162907480925510657108342075615180921496848544795431621893918593364368697399480679256769104461938985962914945984610759078190313010057606464439888116277646506050334833223365192728669734119997868702074029666956900880936898583395410574878101836991245527132276087940915996595772064735426609229426343896167748317715254694137979028886942039995029300439035068156373170051503148621612408946214667359899525927404768457452238255222774026475486654258592530929653623267455305042449213884509627787625828060700719182498490045219058747912711904523746741387153857291363444380988563275653792175588346461248153772760494591813069315076067538793450681667131734423071244168926463332250221789824533564495627911313895591553213896314763292167958377712288695147636371361194800284213695750346884428103679973603242123741470010095120591337973611050944973333450506825084867723365525090563687815793779972528081618158765937869570695822831966042351128134622871709226306571718759961492901289775690676181239270392055727870099013046228471846527524267601266856654975318203579387823469605616454048098508332715233635387802080088432982717640199599079470661729543350459415054600904942602231686988370489985828893622371291364760384786327184795702879620861120514504707013039432264577100603928854220703100606288376832998007149227091832089185138892296013021116143284957657347825778940771754327904010503299573037694473231343213142177021401871226981203386689213198359676844536329739598267907860850714537478562641603236073016526613293702938316611694029091327318120074261496592470661908317072854845968362647921010458335957549782682982167197590117304332599873613529199373148872790027062003726515344203608147485094868356253356052416467937429309208547053612947591484759358796738211402135385564005051156685909036221649405269013356060749757703019824743294892047145191559362918988614539507935672329816910731765483999319878741057449921028706847972665458461834402761736337253590517650469374666286305482439688379052451847154679270441752684433896351031396323520108220602348337529400391376245624771239203949968076557816905644067014716872270397304591305683755657901106655882005124618038817592411063746418040456980555876493853041286077394449209584713665841513290068324585478518111165302663853868730519887046457164828952424497617375614594743618278867264223107825477522553009969023816318788277661175365842953539220718125171755372750246347157664629898952956172110620207746791253861737920229698636325866093244460696505926965392799422317442646092310292193394417761792031436420366947569216872746831599213787126862746684440720104657938761851261186568122035456685782306167303131553593523958167018356931702859144245908762178098855952034155474499453310934139168053968572204102356951759605280404376654371808055007174841499851207484647036286539527823025858648323191251445128478163685683800201407977824104736886943340961189376710829361483480807237554577391262834415319355044291189220013185823367255557956415335207874346489855963636182291920377051523079939394402059456968380492800215468570910694268458654842527988953390881738414389420827651668654855857480556181290609401207507449555951802109388482099662762361957382120586333304329161533273941840020579800821488875444089494054534059119138373815513518396281211010487862588433851919346991210237867772899319569370419056295724899365626477838515651769620914259560428752396542225301128356223882442718290324527660893091579575294311627730700396433036847978306937890465599053928444384498528486129050592870017840766316557478636502225111446776072546839090515764048879427522682004890482171803819242946740534052424012978736023618269942139731161972899280333703607470882609056064628769247709009819709752346491969147020911884329512019567260786743241623650970114576531693790202002805616245987998608326804484643571369981723026946340106541481432650894532388639291464459385844155146173332750088974670688505647010629190743162972449146788955978603803773866494131727319266650079222024198643696444556985724391306189394431959022459960059836883925277218952037339633773518914706351813716762293524906261463073569113249973635387843423925258781301090068829607829235735918383261972368444965442118522495045776748512026129600454346905472466966298445128787915721585868905124285832622676054281675961061693807688631441870101115936767146357028964761756227284383678665670979124141535095558634195270049575453948455396123505125303179222328253401979210065171220768290476585475668129934767570126760910859344486303083418508056636013895058215567591669883363155037093259042597456285307134142266604910561508040318540430757128594352860837767297984018507012679715596345928371803046551674933156363236954913974662391195966033714949614093961450769590504054286154761645884827238727149429888079150780274221064777003784267727983676107375638882166574702627721280426559595167551187184998527824838162106411767001236900702701283801618746840980838570515794412651914903198820571497572751035546024230567158312654074802138038975667651316198057518281082219793658300353481543136439263913757443379157434852981029747202050567483197174225738499722379697064164393072649083429674381912599421062820161348570543506821075903001681761695921015871063863613502203903907007367919246883914217819595208816827529940791603713446657570590674062494844606304085781870140048708847241531478522132965493449218061002219387685813473004367166124547887230641444509207328402944849002343766207202111016949044380617800595580344656513321422357240403245884999542654722426384080463400496668038652655270235039600522573244010516365799021990324254711314817992657056726381859239353552024151350116349559419191600600653856965771841668893641104488926347327477608486331669775237981945286792200570551232224624822476454487516556567836695022288684160322633596994781969114749314306130743494552422797962488238459569148506240832093588427923866532417250009055953466722307839385215000515838948263077228859910635406473394602089105848162091722009463834777088931262684280130550830437992871332809040052336917693510334727028968755153640923385667311602118177221142762626773397512971148473392195128332394062986615674114436974448053861910911844430782387497488516814028847851005670558561141634729445704881202590424504749907792444896721162018654266384753073067625364059987257064533390517295813175946646629350631768148102266978350271307741935715770473913342281095312592754330436301783571307754591691413913706484534614114309751524247718704496309387524854047371667668203910643815515250102755869684590433844517430156382683101229379071028652582477195268396172781969922618900211994132981215487318405029695941988635012680809956222350460598664209113440683598865126445232717623088039977198585430421433256511210278226872524040369967924550757686130261663528648778557097121493156022289382183912046081338368127979879435875895874821172865267516101100618238479437759846300793064333459702903667368759763907108620892371572459755936524585802546917065997996247073291647131344844316693081347092282335211474089983769291241304225005064591590917094936207720765528151671404995232635346901017119465321290065096793142770222848762519812696459199198826292459268648995882266996819512146370770539717517676380547331723570508994143429989203786627675648646020157427133666235043102018656206433969329814478638476674370277418933898530613512088093783116150242430160776484372541569935409210018681507672668420920119612640163693250742028953309171749671907336036757237878412486685099548375991227875402678440886908171192765193663472791282587188211204127189317783328157900159987652685231219943956916407207050055790850372647857105052626932447911895442530927114710309555051870654346129930415996767670931482320794578801271803467321931340241154961870691823764758460840396096193800631017686278427521797292021825100141501701935139743973745746654339332108505586624411160578746985546879549270924266546287495847744256163313778696712593506730792968570557925630732731504926944270048597991058066603485883842650229951217326362918740823762358723869011290079314993623741402428894646553902777138142509327394304100552932020986307668297118450390603678663619431639377100952991733570951284554478325091675697190241250386805999168498690436927156431549996009100025593079439170090716014473916651618051134823891398669508565586737130261748302330756892344123886436271446656592020013972475215035152264814925926330296882236372130186034790671945641381632527441578465977709409235439049321986313159255115942886062661894429248941457809434103391032896509738187063313889023418385834081062539759595974896146509517417883331649523131726518311834319312696100877774244885716939240897542034065246451219650135117147772916636143503906132312835794178663039325594426461016262957964993420891965815580674138377809457901047943141862700234562381137498900131685445806958798276440846352161747979618797755178224550090939854713253018453771387156883233497119692625465847366751082301746160360845635892835890637544590239051029646427272678748272794374242008059774271317662907316113844812110615927818210666968756945412718660945005549465782335817662817233860154025374404865605768749614422392940395395432794625004006286301420436288118649127465064041240073455218208513740074251860865749591105348748204641843373608308404405836917251357586403014493662356597308232507836161415573413999534216434969818580329979573333255696450107702362208100630617001444173617617356563470915655223477720199584410528451284841925987022691586084979034159353114647133127343011550528138944823513361249427439802439205267148424480438167945785262531741393969426805948790844517435597296362738356918188004903031283543776462743596591048612097798042180217637386428570862190773085362484448097608330144544474137002550896411658540726694151953711916819819895125297741350154868063939990323278555918820849730339808610512880843573690065727013467785204631283301230107225504041872001129245299707222812913005518753532257037207740439255529527544340473590096734828880317131494137316246935607164650346800109568276839191327435321258193190099427232740408525952298785689727519371981272628642216335601199834232123694564303636128101119622154083834689655764189353945913968107748557972021761208582821814420208798564523362090800434505553189316881590411372406878841032618559099906833121513771717196715585666045374519469582051907564999227153317101748870362562628165700951236216587241094211480666084842362255701222781440347685691031514663545677243291535527853233682687570332145386737341149229048256526690768680044087099073096997270493570472979139594490975934717835204038621403189898508179400998847201311658410064604716684272617458606641335139097343335356515146345640186305588540013062033982714266432730280145372677926976867759755225251544568890800157023820239490543570762676219827417061643015235374833359434127198058731956298957920657285254108570346182368638065001942721737458385357116526621221350197286008420008532454311713772206047577909735765810576499660445167051363105145280644627729145625196239241070486496765218261556740000719459240002289819681706652830161797408729153934271141282937985396989383644599709827698708095409830475026011948786620208675556826682337027560934789311973899166349138152689747862376851628159716429937662904628067798294297042179661616027173789508938721882904755223487320707984946471020204059651388703270220386789053705236937661911516214204682566158817924546921278316862926473516672023545141737037721902963822847119186096782539989454707932242563588541847469676321538533758361592264346878336570077538266755204132304948978208555801090329906039766320195241248289983321907073091447595469743326879730787832304296974809330204926975965236121601340528609579656072786122813978058386788098971558835685919164102089885042669891990038390337566737148286315810352438398117241419703788475775445339485408486355006161281592726543127194678880429262790388336498216689040390194563758930567708185676590701287285415781074433702846752546778270389406949478254759093331410947399980452292859812544892436114530639906913645980203958731845813297690572850275228676341262440140571810892521868428374797253562443924746456306388695242047483175063140704002460290073285263640984187817779319388270287382809430020661309060038334232937829172958390096811297622457382283501322286546791765359168787128500266274561147725658074059336281699490418681150028077987321990842847547226742395963846322201670696075748244312137102011084062191111788344170277795864817968628187735315708199817426320264564111108103668916819205715392540718072688510295549496671442153878872949670037751206982118868878376496502975554862564204448822083162951646581506426944312116284455412268007454532823998323194575208659552195250210188915899570861936489682840489376753897107406787561466746028913764659726105386562199979865706803457104601643259944694827537114692223425765242112468900811367982216152100882965076607688562644890215221440930576290432200696630857718819711542058172366327221209241279816173993516629823919834142255994275241426255482569751588058985404159239041014569711394637139314557481968683282317055472444289053244151934447249791345029359438105185504254174495078161258624751743660409504883102001665874851666028023795726392604977497907052902714441342969178394390637810687515778459672075189471273934981965050301825315435499059393479353988822145251253910309984444910397039454070672154372040768741107261651612746945329164044278287304141943967790644656213652015467636247766951170201507825235000327422681945552830038413378994252437332340144878957551464429003764219734598989615335852712500930488877764017382723922243486008984065064748620214386312404281723974871400362058646169532197544448674443606268327299516864078140485148291178696543714148474629085102048891525482475524490671213493816954381916189067890932525776696002214101373831915827246964125581141157859171548727508895683651740320154643430072044740964959314299566986863924977164966905915928159919576989879373322998759928917374487992685797357724893486891773035604225320414716815948584154087941579831814424308058088900147420253833075565434849723705068232908533314626408470417569157711967489211657721894622090675198177477551465314836867788994307888803862496159885878498115060637897508394497411099832522895443122785751796924447340800093919702220675517941739040558548267480072477289442984387690520078752056774100218269952504379531788554378012433044475266946108886788591603992358429837664548347407216166873285613859560590040453215428017418079022551803136244114839567748239195554350831896578462034525356886702953763884764710196035746245579765941365394499903610689687160470717224159545552687938500413163787898149121452686748364804558013455539586915831797263523734364075817913522570237477456309887393987174789434789077955695059328516662040346231987356023867779079205451219461103586938568416938597577475487677903934568078198465493133219035273591838576241175717537183576234963472668460054742013938205458506484079198493655423257399953850015682875398281724151789525721880483297302297444373184173632295755461461299870094737186989636436661558937082203437925401464575306452589831281444147131641433633765445172473404238305451114255982929070861074664856020396038459251944564187022841289536117702734624564778601408343991371486269179394646377928615210255803569963612501754987407857087650939790014671370850255533524032815454104965232844950097825465219521356346386932364587229697625750108971270543883373107070321864328667027370852506213687673420652251520121525953141530679289357882476223358272037349540440179319932379382017145722886595121483532267682406368142125360005155560027175880234131344866142562808304890900034890748819836257997648388704271719654802978241120583420866813648538291902510576144465812524751340992584303672771041679115291486775353128930783070847689331964613182657488182966302581915923324177166515473614584602955171010878964646453484561784984879814271487199956759106327081683750777860205558189520585393574672078830880202874468679303986527597883437317713474312044141217651584153481133852406959962582091652273694970612091156269630429666858635229581850072085621399060843648698832526959783020385729041449179501458001585743298083916247182491140211520885778648084407698526922235719161541339672607668799918941835052340516296426157517594089766701645837117267523461677532646060665139882638198243996317115814396020723973306772455880578172755321564695335501741857300746532299510903983670476518708722441549129370070473030282505432836616896753788802141246382081844910818746559048673969172547829568678330654240814173454069681177844745691796808466156804685973591914732996587640711096077185381597731187116264552860480132289416922098474514149027237778378050830490261747465420656114814291442869651017254126103994438727593643680864087845806237065861090504789907324254177449367580078055613825968125633096605837890171088922780612880791538403551908906785922868098493685202375373283401803910384440526320426611191397310032249175214353315646721530473893488087302446954430067588108054946464617776873037308893847996245720114949462638570782365034496569384667620990691849328386576982252388621462554969614265902954591077302332740388835006167637787443581034767872057334661234920880865816691869591026045257512249154868449531030811601399149802477568604228482232056701494480997105230260388222597111428004886935654135313639128815719444765156029551328081476956656960824931639601252112342244675148265123339123528981437734636844766860250547270836849520324872065118073588325849632003539595189592925155347464212522383892131651793736866683228685167455038859073352850508612558457213728074772398560730392874283740349087388630220957850099964704307598191323934897037821842501952400851452683162254912230081322092486896113101745901344223741311215627947887972816605663199184003282171104912192343713110863103881033593487242330504096587792285365075701347289832897883771006656671645815358680714868265895372934447807494077471264810048412752194487876298563721373643120202121240150464479685319472696883839680968843629989817938738836616635345546516476278974018538214238015563334538390817187949912504215999782113446543321750914479083308366478776252879826251258047363367952514724875549336196729418092804379607483070913416937550592266997433636112209961263918831821481880185816210162175678253960564380537290123075458614543070863446146165503343956065140337369368616106658608598057940836335732571650038082992013166468352766495222744229863998877802627979931755570970835429620350604888650472022853633052653564643293498834672870447596835657839398169593226474754334373106004216968013238071065364201635089758207261936123770072548319139339029605069578713683373288042352102808618906256718010997211910627402517601774110037326243729859418008456543195183181605844677647037041809922420335938603254274793945513520387328014573336029539494569001501846709510252077233733784446891223933265871170605122980785113604344939415727800006046955276978681109227174313476297886285553963622597717486853710359251224900994454141629335446805816628713782413368798705417155882548400502906828119436792945975385479034575967150995289888434043740673525831158736061337586154579001161617874596029413626824888918063436374809492338578917040554356671311222370738082713046453443380222837758929420897420096615831700444119415148088261352592681844656980869083238451636790818140000142459596866890850998940817004313361833775645692101832260932306554109345233048421803218422969654338847251098627314083127852622868878071303027008027779022796468540339349142170555815506903694521895852713024847460169126939459314797964055689130774716172475271550868358751675741671338874163240367655763282145020247349185353340403923352392277029826202791592973116546852536906014140142945901782953330565105004945738905737543642389473067815721120556528218872038905190153154618422494321055034383314198697806356294647137429361555555533314704853081312578616594480952094125556599799762087276268846245948860794999772600627902181170059989038213153111067470516251479394591903261676446390033793612149855213228195659878941136778729174000967497842868044548902868189624879270141330584119536723907599163478102668861050599300013236740876018524460448824622949866779738424251818760026977683696705377830244563206161382490750148447513592808674865566201019930057954688197983015290914961646061649119395615019092050118054670560420764166750871336420528607887175779113580712121727551915868203730032969473066106466352941250372962877248777895612027463696297654241039264628401141991054909239418852026332974614477717055035125957546028254917788774234999747599831319507804579181719127278546019582499008514008459299952964959713447786478920582334029787476158317422860211116630969049146906856787708494963124210779926918087259053832274090023863404430258382181653135620328864154721638214557343475404848640462259513746934902468607284130619168309329095727774677812101545083330300136678925969106043069081045606715898872735789031981448171135471551811771797335752938644736444199210579960130371885382276181459728536952999571324137377262985205665891441039109134530192527275967737280296619637245850043182892586961674200736352080736752920521693018711430310666865539573681646869059550709096044845205753496203892454156200320900763231887238752419157998484056509612119610528523321670118922000625359593649739773474643560091541966827309438136686453985914774847245264656216719260986510693979149550101390117465711722628459218643252704246890940436097879286993462287792327253602896463889162710427084653570866610076046978334294100329243291578420056210461702913105714883953437916239049978036822495965642213505928019782880724539006537656672192737986449872836354565237222680691715236395930627551119666469224057874449252081788891278121857734837906880391899196539276526535538501069429561535239858719629605594435945260556935948630460226282805739796416195574255426104401313805907187629707160249526965712167916026733923285795993448612232857117014876690376879270728082915110793646843709170896980041129362458698605913343308527453438387882067864293169039776552826776191947340481622530223598532078703883239824994066377977840727532488946646265517683674331257245117861070139496704707383597915856419491172116456766619616947559178918080947624304174728859999184029424238497753105981421321614657748642416817532966328644045528074734127349120534772140649161922920783972842620530557856208818324220640733183855871892315615777871630504074857801511458184540191660617306216763300284860941709392972287920587614462166236767147441898342568882893458114864141368934273049342180772780140887962975867994311683101633553201987870220027091456638614658191267144245889098794922260752520448647806497799493418532515731484652917075264822364846258039038742522216967566500094505066426674882375319267490535751975097670665062423740457739024274588734671396462788440569738402319951857546691378708819224793469079971193557778760111885397624822729301983088588494171644929866634716153219237742040313939205457646266762921135161169291644197327542819062371877414622309611292988644669502210031402973579437969656090903795096817518447480753613727298115899981292322388474388218759187179204462464123307661439326129484888483834081078440618207432332366134293482085648017879350733854902035342728009544798687655325195945006941666535753177282176160626905302647409205530663520541304068116169285166740849106299650732901718614516146841187689901627078798939042720684623116107838432503620714831837380315703128726206584138561234253707895289858630769771516461586986776566942671225186904339749377604097232153268543707526156719255185713300801781407766039286647310775145013779520486192057442516758714331891258209916860671900768794440930943223189679770857499201671045505991846766767290320974519947914802146387854793208829382741778300825222075674393561231472837991125301830154692027857651222277238837573368951776827950623630499775129643875691170006589914036028293599231205658102920476037543900922072250974771005888828002906996110663904272810204051230191733118103071274521223834627764581220572643067591156049772062190644835043607850377482453361234960291998103151836388222349046130257528063156685912601132214040065164866684865976111007218087466315291170157315989493902569387106927949548149925935288895799964067562625297032732554625813327320682409139047853007873254814192546153650843529185813565026397645694545807764356121056737373771653747283344486425721928526290165302173995722091083231076967728014295718377300677004750516008333105452356886337154448062607205505258373660736396630691914811315518256608611103950403661859074563820843519647818377932786133799586010633490582259852605570780677284579618333560448110407184133003134936684455955311575503181376449233835474254676481236543234122536745154686883099226998405807020663692706507947783749018268506823494300233870438787582878592850511999036843257883210750221330933452980784176225323388257938134581704276155062063940841040101979823214956506778663526179382553404736235888005020912955181126757533672917408778747036226466754306676846262648314196260592682078538505068345071812179299431740481550617110061357035222013566840588176411566524594679607799879564985532443834675864427339158000699538318332872760002021468637467420370991078197638543631432697959689988056081601544388827078432040717280843053815527759130959045933310038134715661868940694340411884915007369718872555534955180333519588431923405441227642555965270581760832163800896181778543498130199184728817398606429051183475123512108133992739325307922246286498208333363143485449838651809627166739268336256854792534820811952043921418341123368016685143852455642554860536670042552350161996605148619247261256904189057699166822061320951139990481218814758152216625319423022969489413152450135447415259914225230345729226945065114598041290540453239624439535781463408114252470341078457346756322435065722037331063681056826745586989972338615046671033546536322330972952475744981997717869373692230146068284297259975163306199605720386763104463512561692996447440889488713560562141132574056019117076914234798465236359193850815687792854822917558655664459388888592444713034189315567621205807339124897526108515045050483694099885849093419465322972822099214337372058992450152438252782227866499026968807742698629417192942253586712979670557764626785143037807178225167068536528688109082217210398902024733883078185024256000963331230078626101181538426911494114101286847646647825454429289386939078136987693857764993115607076262944994927432008525098368116401584014051101275341471852823254445728575826510270912563814703015155902871293735834198028852495853373140795889662049140736815872491944901987543097860924492351582917942446271871622302262465054844263183116202505885857014710014450831035831197066618003599648026823472039455380698815893834953006203073282848683153547416016523402080922926151624917360601153545651558633504179785261710019608263446382493414352207376944953392075867276479531894076487268862622261724715525448946411602045188323726895634954229973510481499685695715466009719362734536137996898823988797526356869145380208113708722986639605456624339215418947086737029470977736635106011014525611921404516108895842556613478281193036384592313569037596578752182632892046285971424172116709968672705365473032315321581373747211629706293877623017781339675537443970219720276713950904044762974764427716993516981489160401760687545262007871377463926792706390782635733046058328134005887879761974556423603948353978648589869216047625951778791651912494584715811298313143082389725098853811822088219170941701328388915397337123594579381690453336325065163369973087981707199133319635358894298011128526284029258352968330818761878040024501813726942844116655605872079126571206364672302549521881792629596016047591767229329028595288170171071474772613588346434805227288413904990872883329933317340286227645507964210947613656669965909536414482108579057010661831987637578485825988653768325048041177823132858624601842638918489213363864212596037716943838276404660781721625914295082023724116040905775940104730663231689838808723804862937539419845250205965374595336454258429313634622258200990677866458274880778303159477893507923819323262282074651743767164979116620779062813118152142119199497006107153032936840537376815959957097733322230664294714261977481206248076703900208186676602141313495756029999437741008415282646390305877025957828714062228625035547789928508613754989861322579429457667090332469355104729246397578662177195933357143749517887096087510343348834248747257174982014140014033743162431417013633157161861180311056441754921932395835646978055521832491286715664036170299726782814127967801634761721326262691076605897700127112378923255998339526387118493043806750486497368485023629048474247177507383612541679937632222762024791172927435856830408731656394217449575759959104245929132840636216503107246635022581502934764976008407444490476389725904798597564828919343781797052532299805810858656584387594730587245209872382137371567334546947181144093484883072473324373797169880349830021722972989268552270452646968177730605891666189290476150862304932598784546634199965853651658658064803413302884399689250880698647185070556254263303641441693636252530355703991005917369292186924063837960185601739020730366164241739976401970888905479582769826448285457830770299581312309343660325575433983619876796652236357877790597908889216598162648117558077984202896077045616855166703957081555780198637076282292150905008625988519683981661126183127894602094508716346150304926259891725783974129824304428722995577184722327808805879328580991140006208044896538332659070909958631798813460899043110731523621628478456419948044610388144615716179759247186698904405319529714147953724927894360315925773785087017691388906574289598326455078277874893331275987039842692685515500687092765182255136514919994279397231161191850332157501863408814232578407858397228944331017751274066941547578972917992192458533131914494444939751890425669013021800302309994151762449064522209084766334547106456526212192799491648158760305783180884731224956884351899286075771518155312809597196954408343131679106880097796367977120147281566136142982959181261567366000844847964285689321130195484288453977920677945489779417545223496099817976867286162193404861788952346378232702756397171761314461607292157059974520297503261942994045011997687759558254753480400261157310670506233865391006064603470708559876117403605487463263560549450669066876048111330252746659800372716136465529316773612499456042172010418628749461879661534289759433934282204412984920861894557434127201064879322273659079220602891092128316334586155187837618949575753432141984974585384869335482766277914111551934206361798348781527163710095121484239788231394096840256046104252449696412432236715685936617528085898310058224192016883999746864155155305340668585595780796503387688013145253354687391081572144353245283501502289867126859018003969435134290921190210715714848349338184652479819584272072294649880807145786398310891335620177413936448479508949790169521040467640517587622770772961241103508443003304588044443401907735309732263402312433611172807354189846298795651525278568198241648397345114118699256267641069174350135538363150922852216877048204605012653936152411459354006399650652069593527805897623611638224996233769984526208583816591131750434335304532520803855177689609231402633992668251130397936182798919791311301241100383108297747624053381502507501475686260080472418807050918964473300037748630294898981483447626603029802960385410202247991217598513602298204444251378531023649786199178435147052368698482316321269561856111107752856926411015818881479174454745252124570758565761610922264096898747127887105171372748634073449143497242499993755286046041189292510442287178794625662263564906819068042655359143746911514335082520902385004991312533176122233281688686371761861848677035666773760839542015059053601157446592230720596465047491289276430145266367094864322199854875632318678106541992907760665621611303589453034152367198130225130867869542082377562870759215456167200529102378941625507918316077922088480937090049857216792169504934494441204784673196290753933891201625202340736696550861550111425104322305764270138614023338982337031064115502881530477560645375717599008721723703151986724893680741761056096698440429799027629493719826796174118276987131834678932112085633538426419908730391825546589125840216545435466570250214647527451956722666743526297594924561902732872201468156618615413408010450462468015448980671215674740322366813471862329419684751949135014140357619661218656512847934271781140543482818031394107589673541034326290988979620186320965758454454545908473450755637898203066097057272452407225798793623287842388117184436095889348293595382825065395868939552372811509024095219720178228548801215434516893292781301162100265090262062900155888450801424777137904738924614068816702940239555985124967126023932709941350357160151842030085859986862054744578070806067563798138990479201906600454971336858512589616702196880633936404100220981955342796996769909993682637194626961552045741808429712912455393683548106749633249128541624082585816437457182613246014317196861714127157804454431168263406234088198351969690742184792724204281516414041480373250492237324885058488300254033012441347575784110774841059099856893257822036069767803862043775053406254042028702667231682532931973037223376315832687090934530150520435971688707045396667667306226008544384594076897918086306958457034835266902672077024164497390558803380417129454585571215595738320009870079218705063290193086284047365829445120431234753221033491207964436241235977601463278522772699738675498880787166966082166711735811029028084989207783991065702527029881096990933616281682516339808208292615315987842818536748305988437722471867900266975629800165279678619839744130820155316564320845591709636305141107695016864479292104528268975107666763164874309021763883425512149466746128378019994426638453573397713177425189710335194343290142413646881079566340826012007993195510462394125021145188061816176782382654680581185520207442768251899747936542790476253152410440078045612381311358167871294620351223487008265485067573677800145112159737047746111083376860492866899856041321475825015302955289682592412958593458280203433313013028497039350947140280891071899650544461928357271888302493878382013418111081607890783265328604207355038441646591019695474944851940540092708115935370316930953073630961499593270246301639541040919094687788160477544137575779239583870447649610759807909288973199455174149941934143350373267189471762195335263245447141446805979875942750395358993606247403336888378271264839591962604325876592580539473441894838475272245929357742732323751631849581382306201584609626162049213703567438241400481362856013162992620411220741884735163797084384794007510767468303119168879301262457422789467598641216068004594359856725350688894148463965557401950344224628694583512169742368120810483335945240436702314974030666516464699343582996211670491846907928055363418872500887908318260749430764925210508970585817090937901014902017463173105269111812890366203852772594566424830537468161293175094923583284889309290707314955748806065907357237589937652990072368169138714820295221211963817560773437087032198759391891267020827892957833628554428757192355709132909964454713814824103315633245852914884172050030512551433558906324535826596714027309169487023127804783699363101669108357328987792169542921509268222976124599578643574000656117700321482456958879660880224194595788004640133768087782778971490719051899608136430097794323744746444017393743647072485031767995961282518493297088596998701397954911618270578005321725850163422183094008584678473730459682702883982119965834899518226031123806594014295957775384155310002000035426154205811099696692719266461095544590046281495509423303939431174170304268693956758525543039280789364051826990735277204960339374015230267465559050644575053595879336908092416851132903304302711285659250859369840584733872635914889328051047799944623386708362737646126415169216404126555821469501789594549152084712511527075406320789718844874942453408023991499864259286530292080335658385559966665207038624184994704815366980565433362939004480838625101081458153462822358583278618664702475463326822831683042023309308273379057617248290994841662963637118167573703987107963103838906044847592470555048633580862086471828833228427026878172436007768027374172304385939786829965200955985066799729737030072803159527962866429969985034718497455197287367693080853669352576199078224804464265687757225234196571963452787814948268969917461345716867485431935539451193337433655848179077242398670052917219925467982421947459573330205923233747592247392044884079704197845333475816125512758403716270787921615442928432558279127253979250215751924126847401894605921046605916286408951835498904326809577145288758468581910367536694793360284906021925146999430474066447705165737212193548964870119023449445294782928934149170201619183246013682348041148321506412038311316037801217045947263572363422246844448595425944157721277619604402027533416140903518965718721044027534690653366687589172616163777859794471195118449334875320777532084505465724377250227449495794113715726844229583713806472338700364247575519835137441149464814865116685748226433951072672578448981303790296963721157494432082400533694110620393135561835980552626117274848060895981198523787560607905460188950890195426749637957025778612844832504950809557303486861730101111836301151250873702061779817616437104606591955195421849993219951292591254863936107383906350732924779058576768674376940378309655377906334141473869918793417577060910392850231044971843552097664617088229045750055508551953608611145442574329316513600218342395441370433334378529002095295787888478223673422089060591898449419776638554583026318863446605373110614372888800050969612591585121622352435823253573253250680715109186976859470399219311580210353978919971636038820438508067235026950451409265780316293370282900335589119710089178254354308440229424279473469767331895119159729737562550225147449904354679294511435366096959874427787484630579753373224253269399814876659352741711583434294538092068073797017312490507350329428764774136963921263042623787208041614396693910864720065743366152292082896680134428574882188041188200724693477636119340792469131027287484520747783761014651923018474843448585027773745265086935170175396738352666092432243797727684540445796317499733642101545134508494760660804991583192875344895860300592704506786172441154069776678737388469032949414406767336428890990374354759468848499642418422152646750103734908012580623288261511271411564360666729629817357212256291591788545980385234094364201337605647545744744814969338906987692345309949001784209332122852178876367184785014300976070435284975481003028170872667113236622726370789929265522702888131383438993421183846644383152194208741329762012490169411629392082255065891179893081308783863031946056643939674602421622172592746162684338985025727476256141908493322504240877488467845175832817493448186028503708694557106730316964316385644212370550167090653571074017524513501035794792293705696796882190037214568210606440399439992885890282586416309554296388796992809812523273390953684612533220613724875221303716435739531137178618689924776338461662074381881512116886367124253545480059926780740797991981827237608258068096951657322152032010045169171279890967070827153360690523660380871934268403409629457664274127114367897570930247604977839534466830647703865616407536595803743956463891988577203250057496997413532058158902599459998378132613751085674512536775775362699136548312949271892907375711562782434044168829983931266859951907218673635538114142516750460817878770108069843032300825312399837036208141368925008166832804452764308519026114717600133605922458589084173455812462306162793885089901525035826462696630135893527632720365041585255014667142029473515168840550333275163153081257116195183162568576315640626850034613429504260919419705308907890329941351117626062123476993497306256020843959853732520134872296495992822831764740906032194684314787194300338582161797489238147621023377393823293249430181294611189300488411541627530275043483711957488044307996080214537210588730756041770726484063337016388917540188077572161281307605782718051430269386096661702526668527519767337765053565137124396494772134327816407249780129440155118199972284232888627003957371760524537147361197870217245525284575671775767083413165007748781790202499048345829410439726743715123294137388813902191776534016612037452104309471388167826112051549321478239788601176200981663686546374239094577726460928068242111226280534230600051923451238925480628485676086618546324195482502564718568017814072207825419386914442375075019893170224800444296807925862320517734089525909481994194051685915870121113380745985338472169157893022729397050364245732447859755004199695118136699181357118551055154959312818985757862626913732364990634428658374924885597286075367125567116920256192531747396781712948928319834860917418019190495680676539726545761226007712825068637460420065869955516851988401390995698465314250390375385746777845861772575371241187872875925710484577459488483443799852139326851373598515182257690966696203344845584966805163850261751650258846974636458205706002917263335262491800125486801757971776732475066558777611788875474576368943237945893723158614344613333780902330919657301841413255655910065882667256685134134134874872385409217175061618593092521999470213619643912811003155022823394466706670330477364275497241540191985678317389538356173457517328046069634178431009539951426234000804052444732993584960969938971059519133980535344726377871078060586873600607428869297995440511903906281620538266232867528977396420938273238916405813711771072241027958865841574509491708086903445786144334927570930029693198009411238046204641574107183433628229574927303693284117579668215402357428067553191426117041562790185241717712966667482136801145800013628372102676866631518284301327942592013919219750429349571954680315714278066313420681201637615722993217885275872341175847078915161269034327422382287857540282486707822169840553982133243813011314832999051937494624093173691604579662214916527670453258896949940702548795869767815443497821041714843621832604172194519556501193890854228053045270387963957179090643900691900717914540533893189797079448203899910014144373715883714558283173296640880999078036122705131360900989039994318412966182727702483786287339015636384073728796775532035347647607961101836029467669895454159297488186471400207311648341062983325193499855602213637715937848135883965142261402383666205223562908999733654339538327522268315907491307949093593682480647086118423572860301081685701845290473875479018474456463385336194521077287838454008806774331858986475773306230588498094200501791724326926375166147503036176095327928195766802762917395435248040239720261901262337591278255755091969608926922305447869615590069843518906151507278884853093267442914173138759030391945667692430883802431953223516369167460574133250954979073569432812356705066741783807384723186355575172059872252886550448277916563870850909416825223327914817079345573745986495720179197821835051748631453386315010791480965143895472073090881576846051186928895308424530708819465917334021559085744310753616096820319886281926530254035942566661875013907757193392549981629963755720426602613006384785976106868572558132580020805274517172562988704463277106032248329683512099020772088544448522692290491813625704596238456031210144216063775446487119845140531996298315789236347429202254046517125427995427549149636023389948536628701982976156531789160687545656968015498230923041491181556852428743898744408004419481555756685457503078271013283208232552115905764675779703467972445370291875619985407173078776382904858203522455172294588818310411961827358234220316861996887748007624026543748720100482511658747933611816968507581037372541431512903240800498267920919193904825558025416969802109214667265916402133535891867093350219093759805579858623387319455759107232686951018451623358647031047247244947443014553712328367730751535317159272724239661333998457217011989753504552517433321769646982552760936440835981811646148555076808998260584615391279526467151747333134736995115058572305799064242725396081070634740581840169407867537227547838316976758619782395079370988894939227393240942945650091473855027367013821841275349248947376008106367028701019067403398364369620034273777330728716338663251011499309270222738906231163504865283735804610087340920825398551310850760084032132683121660904549451464683748857029073101708370212230468174645888449923493544555809395905139400714453565370799452682310961140741736732979599206020448706221285974403093374493669305436231010564493719452474889507122528663539253827179578078961750213030642825367410759275560787878383701231006700134381873708047158957226017634962651245521506920973774146390106101496884226514349277181917626717447158762680684203158730109825150185091019718541098158998903765082800294152529868555021119784224986516575932410453076333409341542818111197758147281580367643660133927127958660973919701224008265559073702657439502338836675987476995502918109563549652587613078986208313552704652440586729179809845650653913427360058475419453297287380077089971027829259761980681534463750374099468182733143957761150122732323196715876676866178517516255654646492070198998701746627834625944986916554004036687616568992375991361999969583513877037271042245116114233928177014201853066581730786590217929989998613862643673305258930157041127902490735814257682049124170629001173474212199939290472023991332265419821251479096533269851649743138188512782131113863127993804584222676399666475005697149255923431389483547411506109034388166012375504771732543153708859036096464797733848429522162206250684301505318907536260800505194091385856694469884064307493422850193441228584855293937608158679851160961467725987255952704483247882597327722420315857361900139488047768861665255245625243263104173584054420677852599499922770292145871228445142744926012920800055571964945360133230292630979867380517934278764528673113141435090514533527624052660880481759635106888792384489966429735738912475178653336008271964935294331376150463440262574418274574556452538412938443527180580105013439074103255075505668636460479193378114985355577996707516408392538308656299500556458294660618060316586262804646744797736336890538069996339966585077468929978590373430257345388882726134502003601064485487665522551547688396992648322340898181204723472685991926386629815339396679742393697133460657650600593658614939417353295523201297832111835396249970041150788717765618059715946373692484885655851657065921720637612721492140795278072555051809629097774070800049567909757233835262127153566015873414660396482423960518159039043030341956037869681508305310206036698516663540025143365461836730102257345731772348019240615043353305139447594631014717677223705962360088144781056369135815366842973851483539740290388131468086891489730839023639373388926574352394861692981853060999565441682146693995525568282222518346193546300300795339803945854526019789052426812462329009839730633291814964536051845305900403269517225546125878739939081543985184900282998553273551448360652090961590279259829102691023627631394207115169357105838739491570839273185690864168390476712640565227533877751859773842624110092408783644064774357409881279348475306543359424129419989967249423259645696193639339570285278637852861007313939392883660389893847830431782659992840348667817871703374865178930160338975465969075522998717307064766524080389518978224156715445808340550031018123271091623849224545434992042028455092074540004543818093712305069458777355904231455143405089839063792673777027738848735317594818320030022262357526181479733959370717093362580510106451815562968155846899954926463243586334121086494319534606924513465059941941879019083796321843828275521008066831294378626688640664123391120486589676514365894149587829545107297103402728063722372109597566624976448229877241385983926943768354960199127510214601825545001681755464015604207126339670476597557410572226088555975440516367786729655490357039944250308197367891741014181304049234905197601101174439398408968003622420408224853906415063805758775280353761095908017480860788864385808558297773394809361915304285430265962960507898580598120378932828595390650255549499790062726841081642890730216273598693934742165475670081146289182349561174901400156301725647541307261898850509438099970196242065039511968051839698143604382263862710371078062095049111513733126690933359401645932767453956731264461630620038429821522423168028277370051320297054264157236932119913451799528361032131552352980609560466124077492733755200899663569998654672606362146389832317851076140645555337514947464698923800879446669306647294899609512418999519944633977723040585660414637492890238995713614268776143720612481062195277827508544142514102431398771980260459157864543924920438699347006893371874199598001948176763660213345374976585294121683785404397279560875016070400382074721165853800949262399338538986465427567134544718294757391922637950472816926662532115501333036612499341830253128571417782217657445637317749571125395760506686223219366890218458462775773727845707751853469523850381711540909459501263284880506249814751110982243506190937124527618050730704039177775096008336889983713109002435142403917219505564506454732681186272565217594389447706563974274272249419586000560067830720662383075108834605587451059004635714040461933819088646595063615066795328042497347741972181590979308373181353642533356565353288732348310510350972772379926173946546482539760086527187551750985437696710245547458990508073976110433285380325766959875048023557228484164740316668731209215404441943968547258912322002179159676836196898113108513409614047407214298716607887378037491294566594654893548976678356621114409623063563782474058986114350894640573494671148791594006610388713291523145336791226766456344193824755600119417267182683943713046829124029359338457697100469944690968275388186531406692054269761375894475773296605191659071881177874478724898738352654033601871726141015386352911041978516523235921970601005732226129213765297893575087441514745574499738403826058311138105180055891972517210648873069393740944731817365765013841749614943298908960600647356996121084980307225656226124738780375157240388896697102304362879252141228604640831867703595006931091909107717241515978774866599453189031301638230896623944015342760265446295819549029731666067812980803094761126834005962671232832601428844405933311861982309733290745955240238894957043417620718961727409215839854933610386710007632030155699744935208249565929233752366074129130659017447353742262655744202042659435895411188600074803784425044321291337775461871187347226749411290830263587295926990498179899525923872278729783591723117580010726237601976235077043688550035566131086263633465756265053841103413487820637710156976760094229570525657508278079564037066559948872189689940359527269197796140154462317004972998107573800395369230097213112684064800938232701545183862128169464855905204995115773389094120313083825649880341944502654450671152852974708656611585974160018227707603129451070621746608065127148639987898964802008132379424204387649638782415763538769866901995226938734135773815791127930126802245167092892344383742360725093983851399841421548141224102022891681070008229150823996446831354470125984110404446740335367522838414271410262315041871352126271924423211361094282258598415958819743034415724115539714253148343664197425098776245328451729416385988642176666000600526703967946706230109805040908676701153044142316849198043684468592980180492127750434057014655093503364418329439722836334464506040081497365292028934339738208790770287752935739855477009033759115106265204234245588551476972956581173822882784354803186296925604018164768813475796521519004204172992907057676362868182045765473806311825473528955478259724531167652605846853976463959174880864465474584383358080490831603405108841328567051176615663219428335802514121454890067256749823364496462255770549492670715178304928442683712977222428626471578965311458616123142901521011567243952269630804687439096225949663132191371245307953995974965110793126587718523502988859671394281797272739446169286957538793323112781504877726078249122849732359076408112906365937052041141076405462238826855488696223001606022303349961051104731527314006362953037093907018600581922802667237609475602158083058262950327783842530292553991129850384354441792361757555200074132459713931215107112791634874298099519338375513543368549388176009785352011479590580368689685488144051298132760810659476937289040262670292202777290712056003779874675268801771371772144096347029426434223591705351218734035209262193166244076401648915572963731566791515554367836304772472112193569388292927808803025869332870539052350698487329861293121559375125851759943862431115916821401728622287281822975820735839751352921210964457098203209281574172512515742223975254962132897184130571618258555861193380588104377297641569832239253977950879548152060819321510208260688157109384659670155812997971502662147450883189743585620181438647672868727239660798401983901708811127862773264764788281603727025891088844681174689997346826603024978528927890984575395936723072214535549107573284464006382531850465853350862674775062976647416127176467461004999149885073672236619125624926953214566496714399738906852311522199551991722286990573208412497998468569392721222162039119072073978116435538322664035401023520336990831659434770485898376904229836569547481410980112653436647390622686726412934170828617129707605575090563570982080507828054882640005637420646793005216117229509070652159577176757447502682504898710913618358599994980417966035881734643334801747530040601450665833086076970710593520150677829436351975395766852900453129367886899360213371981367483644827502022081171463725872422532444537779975711214064493390385786084180464181754112119556657532270090090534216315197068789487314587448758181845361442547716554072333089699566024956283088530709845431098506885216801905204014539500081711691585645375750143086206117774558635649539405713841148134274500972674494487883966184005684950817425191062472672788675566338045727963099404717711294790300772847285106473316122143772432052045037695092727796264057503213253632995537531150045792331376274065472789558835736325196024793577817405935275647760888174936956624154694878509872783843452696568803072609215762271648167707769653983015871345151471943356838586227602300945571834556172356124018130506214445834321307056104828476720056840230806844444782202335224561285147839051893872259057829540609985258143604702614946748924220137696649690154021883453663778038484263666781441953855508162743810603072408319546074282125603234503323895036429104163193647948577255657941521456301316981206308195456738679598432259954800310873600517388544809573271606273825410376378515264010879527192149522143980325054402456391803323190913334999092068822380169114066874669315726472790836842661166435913238526223258471914010595894760011563920144549354242909039507336910567516002700926993743943455546837229322819420413200495937805488282478654489604406949648855874750639299988631548626447137715501886427042896601268102679966278898128003744971959778454114386862739585087275594861216284639303964326968887385920867271842883375480356305723017769481012665929971627213138840317031467048377922117604799635823662238846634143481713296721854498765016792671198349631292275685635919102573554228572947896235326485467398478300190512765061443176272853013769128164676742195971695005134172881505459669176994466221476227257051941937278602352431024445262951930921087306134790594878414512268243989017534713170787923547610405710270632723477152543535857220666253740267439945115707991860452646066714473014886972752481106613651893741457228212229955518896863419576434558821293193903715196157450154562694110335441897814296989647088386119825579340992341952888773121147821303531492878983561839141379480403411429370890674042507071227059991996737687218743959442057510283978401562721568878133313229873484185084563413408287410635219092050648415381377701158288681155189640129216138107482177425999637591346088040350888674039341604122762170069306041034886873104153263654549624321818312763895584315162630029268755151256034038126365381082123875797490138563886625811361133981977054586845401964196281586593066128003704398424110703658724189804291139006207166669965611562756413818636092350590392843552393779585590291678425312598698370030997730227962054826952702262350637059421252024576023814047174567969794894104950683785981481621742773032607352589901451976211927954789774477538588303754801057363261029214549676706703389433194475897517999593583912988251728890737614876046644884800545834295060689240839615948730431172735863773615133276544179181305466137440543985040361279230074917004268988007363562989043455604081676655618835186626010940934716311038308031806334684213701738816547439017098507633198604553961145562621355996106103895541403542392011191082867902426625147985560862753793922755749370343035546257710313427369365325877405568627415606049178457192393988429796570003266247023741063723839977895989579531296711912549212631206949088338583539433755636661346686490111253360479214775100169824357576277429696562147464416454450063824385047488307392499156829034858036878729824895569950955393050837231488966766275960437337695342295986076315704101350407113001564555357535066992801439001279028207200298332255842784127970672469832272430165551336887128769075980553344777782741644719624626239802979928338454073058274897271489559159819760585337452995416196063954238339444026565183513221324532239149361900112967447786571003459034194085440012421866855497824694256535558633876839110774102700169937584664324557335785414673859243289732115437521998980542644808720433283990551967182073764012582609189515900136752094200627483521957020242234007132841924205505489303863740496254492630708218526197187733259366705331170869748195710990895422376861831697477854415864866968000178215801001447066753687264726466485610364965903228563731739309381413278611886996111245810084729673519844505042830989886995068290306426564054539527295427772267584875366947127297929681648416799145533373684436801297087967551343450328052941281997519151395594629045446353483484398601773627092258943900603827301822380042273324315538500978071652548732052517627988602142373917210122787700968971936586506482090352318510176946677765695028679857764230153009997422913432717781206606878749273290761485971270786131431011309727868452535292228374736474950219429538116067170250310272054888765978945414529803071927339386065045626494857550901139027505732031024188774604522682113718859074820771152279973103993548154124867267095586924597548378456648136249622860639761356988454816462205527592052363569378511987416268539389405706024916588901485249680171191323067468414769630424426133169602435482119859351427380085771684209341534486614861198408447094645867378947623217151130545252790737252525120375995684769004521737243298879144459902743199880362115486557644936050197215995488370680623199651182521316076769645289639966828420618409080925924886337933690164398058044607530377777332588759570663555639906785101373636360543562830757563293335617160811625187070224348727375080008130894037401767120277992941259159267028719287685628292630862223356561018902999714289952518569036811540698984704062051155826939309266409055741948418554645415771641999741140455071559380252786091624890475884436719752868422065898777895681668245896547203350752824048623373483059124554623129550754348455088112413297727752994080730589251614568979307266761458340672276288150045347320757632950024864457918412836165933592882734672372562757467974811469101780302122156018726078246447542538643804119963933004910684883818509415165156004207295067700046416501246035779467551186310092264558321474722820533284328339245540453120497862118096518743956751491069769763819870204847687942230368188519160282300387789362893027089401487325424582976425113024271597263744049961871273607269071852163585545454553119207343152139534959706720315497691981773918482966645134297354833199496917874632672413429031365186425753032260728704504980483565375624896777155828607625221017972195053211410022129564533868757425255136040204947121304669731218875209230323938228955668327976972481708531617169913214518951815445387593472835823882420148289329056719182352395992399997641015293429771659919100579151843795368840989207982620554834889028161818538861037686135713656545746916509403900430909300066025039346492034111247073197432105311908851190412683492041050652075148969237333946003303624932559239551154004823156407785897681237451731303378591508719021475588806669691385725334467434768205347110204067153587664017046793519515807726680275011699268365683656562166671559767683826427961908213810061079337146342031296094962913351664274917547738712382581652210006392219863540566285156666592427025762248511370509596796030084176263991129911163043257488382653755026440488534561395417408262882001992924142019775601852022491413073539096020009030219352609291902402444412408058019345643732511938762150738490272358017946619993165117236220385002335975578750409410695213224233915884926455886804277111110533501582630040798565650593890094692841166312570620217556905917840767478810681443842227945990191498599294981344296124410043650816718192316351543476175213996887340171494791399161897899422329458903602657851792145286561393115140136622870063764018224076763366241296433225737947447751868198546136253379120970748992930234446658265132204782720168171070335020402184281624257231019451960305631166509500623029881209898413570955749682411670919407982802385071169862750659979669809216845208418973746925821381366410318317791737973278276573616282516688793216402613198306624414097684023230756780389260030317116669174254161858371048962299840023735920226006681531399884630436463610244425246882115688041633052261694516489805833852551582347712514280007732354367546949937161349640853853770029829229587834966225554840989188534243459187813592719634947685678131471339343210667798348193390978075059043580334779476648413149950100185208025739142962597009167217566262771437735618776809893207887968021788429865939409447249916298854274241681486684679208122143818877096912564676592925044676503012863638245349385194125932230230265082941875548865155527155786839389537360256804205577474352557839918748769804552167062029489700895812344435185018070889196785745681388414156259868056742436828387627316375001683362028222882102803252717018445483686923886899343487595348784609274425375128712599226465549051967298573528121112217812556063177679675303383198652775745977991702799623672996015621497101968434179048369386337367727632476722922025253572526171773227781159260567236969173010064124821117387041655236057427064188549787687716889476735502692407550765005123556595687011064225280963350454330566050980274382890134445004321751628624192100523346704276620688908939797958793387605578498929904741005919131328835933419264022902151122548454029567765054862771171587364776673720632879605871613860199131126576386691216219218321067122621939811204962375910400632266961285701627575598350587894921382813281357952490643682203767433970944032868098675676682497780139502459499036105455748413396332684099617425964444116582615404953037636123248246028227237149264931390866654575806863507929221404387656455735047254616894638106289371758685403314129877188765889082120625618524209575853966182651390034113274071848328022167342290085777176312398803833960721405440334961459829904094795957946498736257809831833451248148974100787826929600980010602843482589565170968898198882786508755339464305221539190609675741485337433981464529148229016644180603368164913324190768439110769121578967730078444098587454497164834994080641933577997433489967700216256934775616211774684445233494989825227471746295562846112882807071102346384586426281365823735214464209941861480689582971571867637846523917645338517844907573832074181405637121006482365031367760276003495306265846278560035431443647745630583926636760804820314232621547607621705488137168089008617596381706785829451063056396016223611440818429582208205817426642163804129787487003462057637083002640384036916466727086985029965320385639259132900276849640075005437394140312335244775210039009341970510632116745700277620552708103829807818897621032783310364711074179269865210487951867926257115999235313874051941136615984507762005255184922726242747348608339955151371123029616828573478932948881566563167540833108002326812788111813946417688331818655558969059356411117554585590844440209803555254697191028883588528793181760195845859416967830243992265375515266863244028188385790264142557082222123901212633451752302782441064674275094454927214914027613325969305219260768357465409641753133148146302110312729133892980301136920246914123717584019320773054001675814208814547631437132665561692565344895569607504556717099597966161483353198840148767870680185822611667050057316557676003430534764430758344345159172585218351584284107201856940120046757667457834635339060771272147119947517220212122725607678165939999334029366047338471882491964460777478979357129256830127802037971815071081630673625101413988991208657853495496236949342659399096878936296879184249550071926687364111339243922633066235072366074766809283532119017059431260689750631459637599563129030171367513364695865745614543088123534134174195561436070861273903886375336267441853103269843912066593412582821007660388018914694271691428562987352109692566499426759927890367821439493125409928384387780283273153706641445966598372105731513574134641613892703565117242167519552562869054412870296956365712166475481017824792001602795595175570754741702395568084694291450343688767632567498547558969663217973270100117157739738688569690933165643838288904338596780235289166689182180366014353042142423252409128963681770559874206431092851580228308378817977404238375063758039765456945281133861176263620130113508144153906902254306972647715423215319516958988543880422018539235397406621174340425188557217639980123453992386084692436151465132365045273915432123303170588679083161371768273090669902171265990602852537261876500913691503326686642289146993300031212547374372327544613724166935036356244417327892730987442503100259274195338823430288713053891589724761387933584953478092675783739519436425292712498057746016284972191692348221953390871822166851368584402470264719157022179562403511461254284998280599155135845921584770610174839570581279495549107946512905439269436726696656950426580127879060687764565557827398204753455768279722064109033752897420665296666843596078593080945175745434874301750463592340754716471309157873425539111417828622494718568112365563865836506036387473992418252795366568144963360908120408891190078894928674628732819427643789235530813169764753935486548794576977492623899381691404307280714633165055405046245068695268373997319039205407312661347175851807561871996740887371678783918253082540675798010965570578821904299676100743358946922536441206300838120134681216434411180603730782940289226052023910712581651101547062359274955657214951778559784186273928298848404902438269282365603268349345926886541736434819281619442500333057859795832693655679600509250210599728900712033194779094861748224537770902924142524570940044392292361479746686270215637912093728578315323874954255621901639386550499372140055604158181717110955164215073791748211019773777221091194907081613543334299505752353102669382338302355549939279728067056095146519877649688196576386021151411517448036559891755053220696723026809632029633376957435854537137646937279105290685143004651599061777777236064835107887043560971147244601872679522686010772204327245486972466285819986891718579544477104268401031118902445227672252235090520585404464557931698456799120164887399714258054099736226017419583406233115937426042215910429468306305061432614536485427650306454007951377945345843224848676979091799226122341742612764179182736728437163900294755716606541999599145319271596218759955064533997647229955310458581086162158441506104806725611873855414947994026959212275247825725756759425078850139803047249207032228970315613349346889104052426356809489975151128379113514507609643326843205873365957614267234229351661152216230251474273653679884196313722034059559579974901821709626682502331841143776654855073747322668798291004285355643572509623129491906986970146360860092014671489419006102324754147013395037848978379965193090853028624355262863450091477071443307900388484328072438749119118871449133960110613107294081710778113664064176904876916542253273945574533780927580670311973396570191258036494191762295067214272967402536519000431351933115074574413011893677628457117109256931242770407118591389743036358642393985127660570743771797577556839145624360367047243049248026357211747792264454440601778664808087858229446198492906033523780166089404950783674321962299214472087834944086432046470615281667798452694283801593654223782807289458423607666443744473996428578201726496365964022851322774179835532297666364436837293852789597612230224498512524642618215193428320548601350011548992629679242963544886821606190138441708171133909200405052365661204303297418137172978638048159899964882468485887899814349952870624835511866966539119993095942183872697674403335997730808275180454875179453392976052107788117194731009707969116836959840690485150741124814622900391916909052303769009142119524807973552284769323207630853248289204452693855792970222090005398692458731235598588301887194166751151988204194655776528207238262169139568308884396702449565401528014046250712417932112293305674481503895833838609029883121334253240122826932336675307784706691067129288335091452764982377854348574410222516974491425415337663238071070373107729219074527211368592446813305742259697349235319553733321006999629975170127308666055250273884795757454797623725157936870808781950773379044215384306407419311054561943396338274377094904076888504930094372234250880074395037868957836762322678357955324122701690744467074741984090500998864495045689285144647655823862279022414212380863581363560908833607339440832119920636713445162549791723092681828229066163499908968626742318166246446140490775527960265225949643071447525590701008863209507773045813815367166481897335417820254800143897041824253049564950587109090357536889631502349542069288446120809433248630758816774080446097994614324262192775920265688824139576564635233365268867920292338772013089417349747543170188711446774044931084972340630069252069656607625679735663793937521238843932497333535109783041697438289877741096870149335761994966271194266213189511519678098872173617681834605944497990841916288013847984367979365203980545329026594918833711632700824001224744330086578909406705034878440019385191309923610758728934567980124065078597734811338198125663146836313813222073073055959286837271346813145697383128897289780043071921941954057957875617075210696644534480054932646918251084552907144729597487414578072406132077309718542492334128938175521359633810833502500034621969587342746706648737219552918030280229737334307412542980001804747026308824357463577762008282052232582958482016584959825743089666278201471820226386170055049448463375743727310677796072631562035495219854244005792830562197772707452901013948287574477181361692261824929918504289494162580632749576422105425220007355747532267987722765199723633633254071260136898930605263239714551367774855493812644750412405286789137087064124760522556074199318690310514088085727487869579591236784246067368984682175843969951499281364461055563473635850145894433710068347510066791632338947331691900879564016482828213741313345647186343124993593109999046487032389612974192013978641642200288191662443118867618278939090850574812596234469313317019004369095357528374397108779636520501956181421409674150945673844070489593800460986789535547666318944055704411204653836554719650135458014735270947074097591372744472404298027696194810433482405300749428094645941286241988693319115350077249726536058870727983257440644812157328010191415582264906599569326935872037486643178677423829730524168491691629731353558379944397921854416498594403181226576123828763740055553585140352041166513934765796093631594101328261254598027720438482405811622551615668311063034962133235771559982785877630297829204078292404504233106729778093626826423467406205757100229439125230358404641427375480063479388548210934795135439911398705703178399221663459483173844085321820668201079124867635420787796091033959986665286572944803552986734150104797379351653227968542935409956372506931702004592748689202490155787785163579973102482766746374772176264415499847209914951740688477621884247886269819733380469331117099835685223415137443050654235006717920050214747057782012464038363553952714329402612899682525786150288554826768693731396626950285407389704882040509840854851150092186160732909899760040346642093486584023367028419426070682079577035016288137479333747299636808115292422917281876718546555947080002592854576078423763385528819826385957907147532260828299874543594700965825131130563650815916193522130670812164609622448975652878601977969420492056086384916876037602991243284075681436626311476994969074713721900201430971646570651986013146140697352042906088894865459397641411357927955575309833749266992027957211012112305619852211934391679807271033684775534302481792536998459488209606525289060575917109039425150077801167617485151121454928131689202366086608966469207205402618313083222083362009301835774982876321218041876693857935093792606669209674629648424530821453287210098524750897373564224273170897613735103172787648230164039849645708795756462779395795017313629137749466989981118305148802101841625630634317729460288952273644260185653566820499681925737044909073265856056698442579240872421479722818204478953090650912172189869226778211306468726788443607634434111909589514986718258819598223297957082766630197518698118662752270492672733733082462054335796280145499783600042776010197946563976356182060428741333601749730199210795745154879624724494239964190023316253928869204467605960122456928277677684886710393066244124762955226498099277588735678034210665100545545112186328559682092762575729231631893389343892665304710401140274591203709061873957984631929595670590722594596027910892241300839026710857920069174592029260499577292202268842889592402512032080272496155200330911124146680895539150927629056718922050831449759346493109778023879438714522940465064578962319778886163618464804208189960961721730570780439043141900063466746771321341217696770697895580950981738192641414696488121524703269174813677000271549279993351866405688645064695125186549987872597134343355929905359723290623376648254873872896641148751974844340317720747056354554990466834839556949795440623923590181234045419056264464994221831037681029179250137421802583570857972488339588868758430925199561348629787099531568876665200270529533002037410391245455271179117706533536141029909217198583265620387651180235253842489689608779669536805235109011130344646650893055996077295470709608795521942891644872330383316004457041220777267849221512495208544147228807067140379739031943383728695240984660687562073557925259754200241266007539997691861648029194891614632432824299776888410301247256927286137436553692575124262220289835831000088193543042410249746010700253919716338203191583866612315625354097645788446218905226151501693653816382594486250860117417287158229302233914415190196541250803386245714538285425805265142909178487360618509084624757684758694110363083440737491984896197772439555912889580657916124713803049930499527402013343922685449014752758402462877466739416529422895123989965310278383595873002359897964007080557004525126574515196978790590926971890123245313158450083658999910886376729488509936251803894823800997329796774569655011436470849722920191654343602432203256073098420630778403048437646369354774376677299963770782322896037539596564152678022082736538348106397744754879528294696325540228811889306951154513752534262565219290783797534726961393013515176297744736562962024129457717397416303884185692170288640816619016171100204533854013177823699968068336488923752818505254411288245920426786673556757227930212318273214306086412627068123329938625383442473706983146239431803389587567995711722023943042844305470170221026975683389366621839999967186679470537376758937111234529642764459712935664098066674292981030451508203074261173704693203455276367078954582558898228448573742691103026434916828523640276612295117999861722314565670546976753629384492091999559694002457869465524627059084410925815150616458430405666343836347155445971131370455869520451066423148589882270946127314750141204703670373285978277307078202975058505539157015639172027598076531139056256879415804089085348374312854697642473271644284228183340559110070647300186223489345777239336195763423141315308358849812405991497909746446141158285514842222708469426358394507702113443612473207092524734487173351110177559566378248985675483623367907154561399122139884212747187760601740542204156424336672150673172863068350497381591022457677605098716037225807926202080047462691383838085096485075992182023086359885888227700003386717085489956552777137091672019844164450229291255000998864765989608109976444035340823377361427303717744423068821241416909039615990244693161134035387691343602620466833967311317814877183717983720153489844752283496039891227230015682057911915464531328369068276656432758775199477912719982678007658363242743341456235321600477080429935964648301296095279465660029967134976977577308805697445111657211715254008128953524351421258768014729117319710630012765348157752922890834017221095393627379625672520279454649923612851377906198121707452018750436759121508877122963363967281991747568930000811130387147078258108016713543178734853314264684331920693826063470879385577893825749388733725850089774735291799986472642158641195163937493780751169816571486814111006210084845628601091272956875281885161729686702328516834755159857637880789412871328886199079372054636452370094879466065486431867253791287740942203691780258200362109335006381990114261470563270823507226176486607792856150027378274765256522579944815379381895782059793446197071430041940960810436648018076699149785740486651382493099439335851953053560352256650221195467007947584268174719271625066650302898001804464399248074495253921094173927577138130396206272813487940869541973360189637293047189778550338868230728036944022034344397055395975074301543521905730955664347144144856025558639019814958098777726914671925823494013570150541600740970776635511868159541915538961031519587025989286262149062672411261061874190447976252852667644418889991767975933231341108646615634843275456856868366188517001772977789888749922615878872310728483259371707624322676869677932957025896400273355407719365338896930507864159829041233263583716795362956307450437231843606758830791797829056211977718589038723160404675536536064858658136246038893988516662888427985276792074700736681575622481763271181428966758511499963540146205990487237071988855573874544305238762274506632847613178486654453539260358933988133537515963835402840034620446578715534123086749912438069885780814815654338018697772994392374391753564202266901940700743963678622577460503505297643478817309800360461738190297221144618849539929199314311284047559024691577668803628085823462023421259116253401625736368541319246153095002758023014965335522613205013330253348169244208073460804875511049251702330029003000152250302216736287843555619124769734680639428902462089825716115334370871701322031726595779055413158308220504684181959988140305954263890843569077835563470787354560501643134502628640883614773649699414042084843355180047807154112617366447235859344817183739140976819902826076131819588872477768597341769391675554564225797338708803002470810177857250676106964548619101172983004546386859557312137486471167665032336728114744682375759072130366073027110106126005510685274884165380425735279505529606411123331790990535269372348130512771392543594635350838106338822825349036833569016117062553290656080730927351939712591196707052060686309054596160808115027699986586432413041609182968026855932781298583536244332988696365755240826999821829556618558471456021277256319001088548402133129671242941736087816980668646841885803562296927269678619683009669223289740117738353302937434250688308270127738816038030764118073336583595917961371465064057676023378278979271362702337781017723426131243604549539066205116413910813159300743647173895428435046444360947407583583981972584005445815891671801608545742428548831329681463602981703709157788358894969107090538614630215092221322423240101069374292448599428224658041434311207475278946762503117835412068645180368084844170973286529287369567754529711266234141871043596572574082840645181584513724460349812737748686284811407165953185354627150287049984798497007926494915708988907132156026768153315146728317794807636303603227621277679270709965503063142713998478980873418204202464110276031489539900116311583793050573369668283614199618310064917424251703674194565222058385745809400694677429454232525113365845013335773119181628771527222399256937699993097574390068117066633082165402874325998693204477170603777898778088658987157205926420594005622579060752067803291935647399820972118706114644133114582109499115112122574886244047057270471118039925689995018450783324684727840505510367566064086926613155194113832527216139751277984380527221581998945498340591714206145892333608499202280282383421318831113212754465438409355193860633689799549675205592561761251292211335130892991433454161542246120241848912459918880905703654968996480446428416969196339179543981380615147673718694259991962293239136699700829183833612946133921287911434660256046223993141008989021504364731250406540923328153760868227353798307732519813197848490584135930617522234580445824096004769555113999729341036609438633550201678084443954949130004056693804093432853086025179247081884219982624010177083814249530683413840070845442085609701345267531641345602185121202418740066917213680035011021953364984310293345105445925551239039217614069300405308015724076944740765843831850350060010090350573297253605813970264094160871928506748914297257025685011679664877360318574952982443611522916114536349228163074069115347411198975100546275819488220920044389027172784461161464727798094114183416639824623413257840971882744816551858071878482636196644863792998590119062461996799099419857155552788468948458153301532382731398283739099863936474150561379203746757934277907574603290182173506597191382255199839251360793758976320023848339915942739136157356266218638588849872305179836840526706247554643174376517029853767657971593267509893856162644303063237442051001214583634242267483826369289525505010545665300725290093668809424330298325999319385883627366694664065876572040798344220580639980081030611685705741883788795701709803487868818304476636440857676643030448701635421957968376295358976766626175692061063770993022319454183861001496485668135820873064297604238268185413475518076120110825934331765889619003190298528739496289683658262809996203602976177638011862007716942662695445937466908171167256274407908221393067574808677306745639532476131092848071357946902492522892759310480965913511384921884585678880401749208307665210904828086323511164512708424724828927158767272298127037224341062965784604433318638767544927629089835700517975110010079514410172135761499011614464609292842394179054041343741837658871164474172562646047164943697732991773394473015144943537288329541326352802247587486460941442959044119548803868776520678667798294689943963494700965805393643855867291019842132373724764684852543630931053169412112398976819750213594224932580163135518220679361903049939384156112188160048043928074805674923006422091466199164448687908778169781400893298151231038651378334354694507890418352765689677267933243181800027798643306864461185400346338970219094582271459360595823948957398292394654989616013825063218741153824333906001526375334706675860144547909635986393001145037965417940737753442039457512468238585945396259767366952717717275711203063391616843602571606283536423264012290651483774774279051329457940658545908399814133282414814406416470462176914408205447927918144934984502217526889292750657484516162469228821341068460935641336467295606339184626954686991277276214973526042604157452947487440217365500544767747983565954454274153111615307162772873441427692093724303475253330291542209100601600389330759113136712279536482724353627243831181152055612493857863789639839942294982505156065345381005243327345762873365683682644949837179598136655387801784315453266011596261899183136514534588042943294849602736254746470346714551976786948741538459282029946754619903021598339428638333988058231913682107076084822989890522133130522512455441144073592050620201243825139032299074668417412407775493324820537943863859282175885020048780916161231299321416497906293112927374354343698252360269509877339846543381477249661680897327292171108393397068135697908545620308700611661158253548202796692530303277849336727087661836001848480677100361879157013559491068773712616444703370001300689643071559895839729181129305660430888636961908384148627318479446764675860947985000487456780977142383100399504937857799682734903986936203950735399190692552121124894990696717399358926436695425498097676503319483771908934302951257941585486532193263894427332766608624228847124095938887124760060777565487985464319427085391809514449043705241650157963699610155740079783716501982125485889833940815075678554704488555187891172766003463369589243880030126998051487450590237133590385393690789440112926909678430582370965351430771539771380225164267267643979811983634956714024330805420224401712417479967703574000314291062306308028040591144125882253510371738713970780854637947931833103377603835508289131575141015147002569923213507764651100314250225660124497975770219795246795689112161387424647359793923376107755544444799987661422386387200533451234280495651025148076649497072252973426700862859562644698899333121984680171488720268071907314592595336395961660039102448956537185330215685302162056611584871697051961412135951669143220840343847845003162663219528497013560739433656566040276614191089127043288831023961747313145538955986096560322808395411420414094170045996357691204250858361247404346925442103184901030616209442399913958808519025414933704024242923805678053361893680527885718126154937274548252347610610240317213523482989836804156963370783456859295904716362826711536080765163784746947695739952918936896354472610888161421140415342062538723560532048950373068814840096425000300578690023569559664663901395449869437920283385197593482205305351418868097435526265145049717339494704903749972199134369446746602780510754061511389627763581323778669237035628865791243747715041034007992642238939501492148504608004748742194405413876861944023347151846304537235919352094454786210847409369198955503604207048899968243921852920240315657616340840523050752963494143802922374176525827740770265481625863786652409574239315564155714755448238361369169826680693831557741812175470948072087995736407363844134000031954729288910101327697739452494725270109754030669412970133425424024462691234232731998557787079617570204784863930607104145150696554198343976600992433062679796563025366871531852308272452304912044583261579330196715473006378047842792827062091022768632274773426058572509921202089514047892488596665068489736885828314975518146077364705811401142017787393253815877128592244298024147033186383160839724412550505366427253858664871306633829075255540715869027743743494937686847331948841202484500435329005143605422859354951399175058551796723090148329893289438028670087347699071484085821944373795668788519581647524285613429459840015024644977176785049398011490542535366833510111456911461460167387804899346531488569663738587860098276909116589696958718138025747932898369992967344858012784187908403953260278350837129857693468011483995203988000837997416289962438071878760802596271356290360509454447021280257301234853712046595854964338881574640206193138499190339272763789323281736281479694093466823289086753017790584427519705022824067379273690911585789146879911034084779284010665011608634101413270687404731622301354377850875596497262000368767441899987107017102236621355918354091469246373082288139844221891104247782168660083034798568709444074622286824038173116350811136041811213184723893772116266524171245840800029344571726010868222668614810679002856939828061250950544261003242549212422969496040825376947052997158487826817090552327959929591815722251134312618703191399770393553697981236912102773857459217415553911934696657026687057048742492324192451912318614555357342739895191960494296003780655515890438153822187508183435612077504326255422068958258701201759133885431905608673713768358870767397866408703226403208877716701158018389923889267124137777766271583989837994784093089153661538202442965566192495563119433714002431030872827325373941768092080578390999474750037195239112106458467426139683203495757357523292290130934945127648651937699959637310037769505254744186140203871818105121029348060821496335016301823968926178685081032275752926324778316414454749720549180960840982898857685335946676880952453219892220351494994044428358849786628696376768602135541804941331091425930463434577844722036748281221016762917834338225321429472455302935222250967682720324646240527962178413034935130057220655995104447908864193169469667018850282480783817971291207856383735927351099432690151020507758728450825368942171835109799568144565258098502765419287915710281786950085184273313895651967800264369359691315439431629429818617508362095669143845368847099517600489012527839559171027086438438338132552568006051773566653688659072161500352301204954486259654603141006176625371103883053540008048447395189608586730645711695782671374558814145918383440090869513191965765654343933898548182686909090688859487248090761662363065693180327172419942340785862361101798473362849422068330229916984119747720070524472236514360228141399989643764792174294794514068105476667542811878927322242109245471111304489488319995386187485232773116242657561881186716661940925037990582201871239117500262482511530152537315637104139744027916675605639544145287266422769306223537762172416419986747701948826549543737872068950416106443471552242003571633813826218866582958704096691228769812351809657957611242637145988562426361832418225051850981861267566905283444875771123849835280779746781788332192174540611424238987401981300827707165034107753057112904150920034669210214800650825321062018855272275819710928747939063072686559473688500871296347776967222085772387870596271775697742010533605283348124970538993527444890253855850144174863943056313222590484067719019367114936794363121810431470370900941526661787429720372384581582875958985752349705342368120764082091324285800767468216423155314287232329809071356888441541667742925088113114570378015064573755237482426274082901869088554688479093977083000500456133073866195633045126869829485273739899399066111437850615562684735151837058585442873827865256522175961371315560528677522907227436801229066932799746791735458305657484391649482412438003094370197396493132409655368663242863165108183573353299773625304345383570053930343793622642914044598338601070334874919025444021358840044399793750776378400598522306795574369146672531742935955070826057186742748121445539239882954643925252707115751166797265197754450855330268900351667040893556894679021015019529585516031055873377158720740770789678254536582542653516752935737709821439681626474252229248708855876503917023996508482356353742979592140133219445479936883232709352335969553813690676037069997327317355295076341045647730430736833817251841559106088030473303804055485681311117973836291939276986912231784247037212383190957941455998128332920279904789832426039636657606429604253591000858537641651989264530147792227039053599063097595972156932872748228350778872436520897217831207738717351620216479510732770593872535780255254344387395241731258338181273253755977581220930420065960675732355746998803816670661181998143894647189722348289327300872216147749274016490381497393036838647206977321042361454444002394933853904886556783938262309303444780208673564629266364023734889192009534832069830039508751573573974923969794533544493872607871867485890395430935124044655298019937987434942283741066880704521579573668136627714270581083577352335070876518575001291384571060507986015244255788974713451605100455857588038582508218184315491750516857385454789967174657278319843443851825009879375831130322012812923094416202548260008568037443558540531262922408349297252815991917315042459158858315503491845103686360087222353052836167798722837452706151400855155489970360396811725223891251567813114789864436473310176073773612706915784639801173201576335205334887013251555870178591364392140365881427035677456153393611884074409655316711961850310624038422883426283793791615648003928871835963273974489898596786365512953575947881267658013865119347620980733347660125369725555960238913991368119778833867776453064424872853065882380459316746485933178954479911471663263048756686893547364984243318842544112289468089674078015057950227973031777625768758034869033504983572913918442021369123638234194937219468068284468825289950656863350270844242089201004641203319516760767599324821430681300145518538222853209293217032565931053153816102806607057515735900373361618626201215281823330652713116908740318583062409200362124445292925763869486853599244883552948459060639445107643675325641264683471408286761179905126662240146222852940418316125499504832814132558090704551297578003307764200228954270047793803338965782922514229459016997802296579270831936356109547215058363882281234692372249293159607767183544308535386251984808164236035197040758988441842664298551442526362154370244322254256453111954929253479498514930972765214721683531498056370771758343554641614761660840131444778808595235159361709140791648946675076651681530494619665839526200547824731204477253342264573741474104236537791400917008638458971468433232586460067527721629999736171818110844770380161014934515533604171190898572718789807779292696541832152676916255260785535462206787355222239472028020123259003921095126511637137590816265064151229835912064639708038942532362534852991539392368277451972629448328776305428529706081016305711977391427042894986544786952274056574512410773162248739033413738944705067823518050422476407046097818579615983491544804020030362727992655868664296896689967545991641445499489249625919364945311088895641122704746075822759340442943970060608563140170627211153416958287222871522112548251723059374567199983809084943253057531555055258142773184670521210513065199945761137795319332422215628053034019733795123548851332917755835643045113811404446586386285500076219725361902032132336683528262274327275237231936922371780079966492802108856338125419910090469877567974097045836688720064821079463855591903349131819489796173202435503443738673057681919595017012208840423628891982810479801696362965888964354780058463625237126195439294556161470108510103762174020351404633522491335208731449234433183236742467278428026454978438590369444890971392008205318372314532867096563030803377797495536098180258095177550376283150686049766695886356275442850588245925241884113239625903331439396500842581324583134080963666408273556114981277924165685197662136043949670785724842507385172122282652395098362116206692506640270877354550385128891519011762524583520077609017439347322242937217506570126090708747007327520472953261633756013405393390476866013224141069284963914046608439680864426632502268293723759987827235965660104380556487289017501453890719689449684454792630226435204009934757348417751186662149906113976327041144984615485592721142023695706251879288153757923753104020108946908626779255769408196117486876336801825934578032113063761878913127238784423613726281750477526095957145924755273537411000321233567342072542334595332021930730662195414231999610603420337883165255414456095702622310031872082166335312899615885237028213951434161492469912553005257587039468702082160425103705159386917276095136976545301254539596739160713086638640467951943836798846417728695582863743365791276198187854631285252970649858715213405342502231682280270008405212579014335946129787732835264047583605555591182693964761496289454406492475337703564299973523155631977417840324068035634080837156927947095327734226034130863633334191168077226486119312556209663114108686125865953103487741809389534748965002370554174410520538351446877719741660405111657627578674293396835202028849592603988913952711208128424333998598299074508827653895789901513564784257505283991416202188502572544122688374259632005501880903906042828258415940819158882779256708271299205415478437044289745053082805821142114944796745169927032623376086275884537480147414323276143293648511678820142024677834934431776757150728575046266552307229473319008400597072022784304333372157480506031051317999328178848970340080111759721786955057576328664257498224521314032925785354370173931850998771494774071329905816698311295789932283449345015073072097127166309329355661357425518236273118058329649225766607572061187866148372149819763757453576941886416922040648316243022715603169610734432594031608118795629346043936627873983811154097663379090143377942031800107550160615783822677263035803002325583249858155842449856846654739904980755556295631243264189924586048731470302631110989523551886889096557520241621172518090996144591189289106219588006884590840940744714174133710334862688856062688758873711383093522834521271719242574116167667870933823734699715666093890371283456684817895220869819178590316492688945265351333362397366289133623651347483563634854907736185085383524059129976432427383388122085046486661762565775966321759204261325481614259516253574540509053834816667393023607427791802175968267388373818924267726636924820886608853432203942210788056702984002861812647209878674007644209205182031690032967327735825861389149569253295187247958028892681167490741592529603758789257070629374004945979433443373323446058698769650450115116826979949704694641029726351333063080993008078072370452202663682732488019342918459008868197272714477995054093347457986203245565090668913319236896611139921856588873963842152182049484355734061907101365661007425481983878262929531153578007615536051167080313575876471705180073208588093323818173470394630930660157513130450093269066923535039964496717598173776868646844077963640350605831560834879256475335659343335942662131749726120402372387910425151212318897253289032533559885000694013697823587954204340522858545765772022342216425475054031637357009507835883917616262056974158006450081900643682639450991917232235496677858807078503452137175728957486479752040139486688022190412555416506881266469458532802193554290302973774551458788363396935236579370914416731738497871042443228434569863723614579555098323888308744991567312370130328044577126255947190159514391366117797741459022137552361163010438154817845705454894905647210604148194825436708370952813323223572164062553713367256911893663070717098774905146932039589597399048013641966033363693625868881474204275011043558112915666467771784918238872950597927179155711082228841266845529419328170377045145172022390312567063049642485372791189437942693556818750104883353459244524362435741769024701453498256734895730149801045432648959703487808510283843930991933660909594858449025756581809075492525469292621364419600136205146034992699466646817305231815490463845556967407378857103345149761982819796466389564762769879754180487478305348157904800875550743351812972799495254702054155787846599682482509933612256905339417638243765006816056002165765028421953563012040301054383140068102577610181061152122092769263600044935275595070236024395733785940315907110562650496094051053279926419060839417492095981396267379724783146755476138711310026671772928542181680045297201421768642767831071229776880779701067436457614830159916274411142373569922038006326031314825720361162021589731136004459432861871407496209562367378539705948657049261870971862167847031773668355261437006112830927504841838329326315545489169902247141382127519257893137884412706316715981463027409837944481384451207820301577696918746504600121443617627745664884450836688842187536320833156952989420487520620037647552504832435270993419999808586970558429244565804511558738277461798620616991082914453361619368155865689259682568531138323228029980227919683970488462306881310696319376474604151338679304835156374204639550447567080386479614158249669556508824764709820679680338733909385937903951220553806737109767509485987277146092509968455666526206582604401331887705620995183439270311211675446107787853327486923383612802483125327055074930497490312669921865008352652799899328104328318612709075304797906826415406047289942224285098235112320193531162641218821950613667588421518446175752788375013823689764198705018969089680059165170052666675540185665790267401594743843442301396725942082004704913961004994972128204490132232208361189181482711967402696069027824339070302096068406629802531839278817323818774979491479616334473466980119018213293508732538263729141993195987799525120353192492304750038215564497893210269298671183314696622154446646965789594183209144085770395083069867669635107987711954883546884519095741990879583774430596032404160996124744128480440636360485927526306613977313027149287602782068836303030749416688112128959887828487437232374518955331716178015226169703650634919804252856163930761124675489938637828663677830038349240427118734738737164866214913616831631039495228844765187711702655336020769759290117087346750939325793678398997098904169696584173427336284872717342685259880639952358137467871232692718748901515481781711781433012721224432480302476093064039881644280661658302272192179769765202437619959498125144095550520864374817051844895366160275502314785919974975366460852842577684468930460677087817934803248707508141676355078360492552942676822923649974189589571875134335834426994888174145724420448580969209440998885232343782681800787915409266818168628775542816647173375564206502847328628882225067074516923104928589700469930011471644130921850746148840284771876964268500031585847505450366652388533012297466455028000838333143624525564849069771091321417047848853998184487286450782096855405766227273219320274919994975323180621863937036255969599620871747355128368151485687947337311991978173379657029889338147942168290951776433696911818871403668035080569001376831399865621728426610466269688024721836456331255011027622280104501044666284123092570610452629783398774624247889174932574225935164273455535890719509815996784754814519759833308083819603671141415942665073705142817330041856584376687877799881387458362850596170158067057695639349414126666017838599111361031339194311091885874822975117275675265135006890737682428287530945363070178063809923199671257602363180069610713746355876585889569375239990800728658658386396760859797823538904760636381271143071288746007676959604038922212278345615816301399768089017889732866961162759880003335769126699384400159183844549853361666753931742828493894165736963668321978971790225238534320085186327343506236100888731215688692946678144454093964664400141468028477995112003263446679682838615940449916225925626391450990457589828767344974089716902997886713699320879020446899742892031317651728583571045626724415427694926468263602642027576886741237596901530726771512389622571167726980814761428878849906884249753824572052946404585796092587431994462644102159436995449911285929638995784439981083615359311379082041594605165393711355602175327706667118149781001187634738580987729792152824029545287561877663500066437108435736643109061924350167439093443477460617405844598572854042765636176398534236266497239357717589373306256515528977736272963301401879117288435230387756929206831915046808518194858547729292019604450215463551536225195772026027604074687933187902390683407531384909553347248611696011767389255504182069299312958582938353420106139803569817890658221077263895316023756798005359715810546735128281712007409797937484571668119366816641952216340694771434912729291634540136781312740603140748588176953585868707595805675250351210777945994255416011815274986685752892612142033387127634639431616736568658924984848865048547033692970787343650196289423009414656235515568030737215968303704549458603441358304270600139963979703805288659587990522165117180152922699507449979372348965565575703473676884526102314854333303306355699552613337812590591207164726070329853850012629444259510093389303034018624371824244454391730962803626873659907391596082909575708572015370702746041076627341791300561558418162372294719902940578980649225734355994480038981748813239103372198459741502879462727717659551155850952000518896615328530863357057963862200329979248917559617793165300288449040850054807324061432658004349417540421578728559906556995014294335205479264885453988214555935917813673543051930928769223776462306013889815748827489179678926973889089620009815198564799657705714857986652478791176079520814491394784202177497238638561147788613486075372872480210779964663484231026965394310468149899379484423401538169833123088451093571493260616161682806070583998554319681529825319371606784916726647037313350807855729691911307946730388639826668553558120516629665361493431407094396278055840981764655036786033169482382888540605958628400735675831376871096628991451349991784348471486369001467655148160240794734820555332291475111586916334830371165105131861972630073769183391857137923593998456521236604729960762784966585864659815177639473553767946368469503719810830452607124859428637555570142599591268922756369820703502386191590719400089285518679904307271992337245961161532986031330400902623302504377732298992128718704901265979498646092576278741710710211105505486481981519101022796323391212431423340758671307195397684185177212681909812752941100303079006152887134874918310991373427277933149745076368527706275853831424630144106092107853798138580334311728751380141986096638649009644460958586157268876604530485998356738712568400382923102279460644668772894318402876575165426558864817519319376664622401699917248258846510930506691457167425096189557496986937979540071285913935990851973297935124748577760830192485951209723410555363410936911764149678915104655901272184550830097160051874763867020799655143636310693517171982184765427173046378640221426475177104007172381324612315710903173663061689163466874246282417923191033656026899870738050836681135760516516997767027632035718710812249571539223628414977058147114241300312111862025485409925173305135959850056514604534347929123790225303200656440797482114046455222655795872752709526232832566976334142971633450652425783664218899582453487273566128302000338788520466070207851945684211107973744090410090626143853473234521164529853326346240768313295489650454939973667503364802261581883598158898594009251688294602924207303723364474531791738140764545653640799699346143784275395327165622441429710169481700803516786111233027581532627404172653716643308745549625509736219963606395719140982209763772946097176198709158109330819045813852085924394882156044269619864929393456945810886190232643169045664682811817769300274998576726923130666539614602469343124423193954023752362163943560526664075475468702674607270308298826660455566491812335659118833280973071268068923517985500974936254881015956161025559069843786303072306891460904628939806022294985006206346001374702182940724168910240004823886882554245205648905349027203695373608132957707636410162148815313498929651271701154358688640716061695581179858755342925321321576954694262406866709813293189845207567845496228805251126108001687891411272192609632085082426372530610104203946397491686684504615012558831258510614719369447922996856293136717877834157886956546336252977479385004908100212815577782621282534579816390317782909600132958068651118398037719187104549900779933060162675630276506786555900927639608031134196596284795999607743544944964005474385848851282730725994589149706116442520708129172087760991136421223000899610559923616285356595854409845457857394441321243769949280097190062657007393511074034269455829343622915523461210774819085623759744424662343257877624350088518340347453067320341216268332917979575119088743374436183417025051396399368843009134269979865178962471640314913606226640852878546779338461733786654770089290540013545770794259980769638975017711987916180091010471320727227555436060019025890655882542061428173042114149205644859124515723885481725931537370334992409076442641335088310610280447392941554724444151958239419786349466589519816475289044236682707391709475201665074473254098735411953770776332051337855784793813392338893602666116413380892472997016126495443963608113812373476628935342469782329635254203386638469195001265501009754106510962584294688047883517024604667624328883138949376165523339479821908369138223706769959417831188035520601406782437539451361476393411016790674552237473758536411038117493385225389380624360543355911400601051910469977302785830286980101946144596967338714218390620663547176435551221033083730446081362867151853302838526235355137919391123958764172441696711984540990855480215028466467013663141614973235991621278149706308115388882784120985417801083085311252346289236224899699247077565078305292540831988832547953508894888337200966273996040154226855848738663319812455309591292473013777609528234590772979503759729318534118041085688736569296490087000710631413718046253618895281138439021419949788083554670730115163643697947091619863581398217301246938918774759187403289273476375235353751469705911818635789558182574842911224039746379862219449840502119378117065139803592714203516247743644463537125119723713861533926958219316019803584283721659265880839056276084935302848986788633396540111451564849298454670920121115119549745627831436112999822831491430626161035625117279216411655522980497785504272420127814461893224548776484356342876690618658966027069028103163889268216628857628387166774505986955619208722652194936251902251586582430382678545242516163849854918760738092680890451086039110000596269476692229435082640658840274245552208532104464631721844701159881791125051633162393730151631311936517370859237186410934203102845945066308619403412587969261007620130043898388502332690221225619884403066371930616877873632177353101032678297332370386658126906961162156692229790523014596736503376725071376094324701228029365404383979249621579946741183721403016145283847675930338048730880062713365223183497935244086738036793712588150428015346284779865314264367323859858068939665364436683917914481042312520338322391685211944744168973923045508414397742540078288531567951288104396581100654263544461184261147222480466810510520332618086029895575836229691986999226340859087246771273645714337207479579225003248613985676159117253138758053244279937689275590247521911215437752918590091327018168236205646484452355537000929489977303620853459787305595898246833125829046038371201301111890369808090524700532972658889195428156324895388063428089183362823048187575474849630358528395829280758176979516338744132522255843216639896075520730284178166718055081149542085611660776808499675825001405470602150388971146243695454820373673408342035089871201005513755933579821221884475038952664949093555948727952344359654911168666183773797874351636523491143512039243866070120756100356566335597846760331671760451204889509106866446767707583394727635311908990415438328224477983621852457463117058766264275141087098720529429280473641288393045722777363028214691380731890973168989835832264475044251353156688145506298355292480916177488125233549584983516215133937681501130730010729946909621526171319447422763419456973124668380754621561951094423493942185255449297861295504706333472476278253947404274353128693104154408672291116583866594862529370282960351296719809139183640943498819051558646143298343789257604262861676248310239781150198382060194791378224117833937369898027288075427766936680401235387371130595376093806656192084397433400098363591770825147540022929530876081500554549018339866248449326279949467854906760826447139465246062677603210954475518220457639920084919597097707586011537633901369292661063082966954386733896608366453661902426051709284560050433891915768758633001253923233510520529683062255767462828752273088866371140842616999744278716724780576783093732311664315927073649839671086666040830432386079337521053078408645699292166136181529145262688311577162695465453061081213651596178724936420482060488091983304959799524249971069694134973476319454347926769233034868719683914794323251045054226583370719652810048257012092130421975118348956933113593243758188801634465294471646561484113357133963136882056711741734385989524364028811946413370394553044646772287031005640343162123921743450620495673368893788842285206391953078323473057291076521920678435423714899182292238072499584723514665688459156772419436574559863752638124121106660068943435011581766010702944953448262060216328161565137455625411936989296724412302662235840185841629165895624921492788547650402846114463083670859890120618441568284581494450262598700836215776230719856146012283854057794680306089411440404387221415062185422624407427402480205763800434582929925783215930951610125057884016338114930223720816236334209439932349439938206090623299683680673696755656489512008888229021596233572826647454658424913991507162181008712857648096961051393605161002899797099396526201431015306614934454560252873424200744636111255633434026759054675634592637472484761061803550042446534637620956362463744266249940016231517038295426544758137631351446668165890077785444761002802468041282049367011868559843249560644888068983647758070099014206044747353891032246149588877020719736297946077965390891993780983349994528078612756860608863116689995973849885294009390923704930232279892677178324093330905961289416689821011452808391114722584078304101317619469103707365404156958053058610293219791450315367905974107771415458045518070194231717923994123728665413868520085427749821196954654393202665242986578693133579669210170504888062258015263974398846700263620340224543093938184542062137035077543947072011843138945504658484662923857762791316922361388707337188828371590042561055060282213620834427537501191172986227314361979027496644721918282644048670738420585325079769527501818929817978622212010982289268783382508545708511583343529762237317427610903250476227429398808903582007831225826072722896883961398825928081802905449131701433349336909092193873538300794661945040982642020432609520968864514168928322083842337391622945026470801437030896832576072772849083387125599727621108134637216411315822660750846982472243623267812012534020691041059760300348155375838310442651210458277550492341826280356783598639158623753981115679159671304014388913228066254782514278329101926257338949569009879806568502587868315390358183595037892042570017447760722522094320493052473091406411279560604956194998042627330460833803450632350715391692161762661325976451892494268689011407748426301509683317464799304634614657092574965207814740021757917824502935696069326218281268876379669656415232112411780787254465668672295327067990675339405245902128519862027326882298803738227282095928866317819037471476201604840126718235009166465681553067153777828107058903361890083059537801200733769166958813478049899439129225023967085947557166832439907668280494281995571847827022054607228120777204812342718892246272212928040696020435342995281789766815039397495742552186053187404473256259163402886726466823123753598453285218364008782785997581556739408096688348260703081556148030353364792081928874868271721229123683130094945421099434167531594565182077188366900816586475490082135453351820924382084870081034359617934968512025423083952169437663834005550492813194942793147077850108335167335722431418233895567473033529082157299900418341278417508385751987853801106634852160213183027270465508585306377907088004544054685617992196516516813568198365516176768686665221201116475077048133643465252221288367093677704349244723293827493511232104430066287224710482839009082794425618887200017251364779624315221447076052839433336202330004677971684410686368420728908219668344871923574304613375171249448213494451816999771361853290323648456735937325070617108465639704899509364752557406669160793317608126645317494437917207129351234712940097065610919201047347911260149806740133284688754116975040124747127112141239655562216911068430557374931542537222632843376817385614699516103162795157822942876477161133877918210619178436737174060766647343414940134364598015212795920125122113737355555836617209267554651093039134533032132888270960112814694116111601566174127310834668512057407463100331744186703581741914853490692726584272375388189955515375017798306921854505965176891501254348561088226921201918862311493760522575661400742880323733619471581952822404599181141002351693155765674505483016304146219735983556374049236059594979142277790568493891743355534014087301625377500733511184318410138529095750188914779421728968371734284727656172978187022232710705050816520132125688256008500400952662933210477237341767914841519513181926637099672653601269872597005874545387792071586706655210372983636824647543068537515427124972458741767802551427773337037139471386998590542812615034462671322766460986693543678685531295450840610023915432869142929519309998760967426200752206339578431988458972782070439213914359175723862305401765024392370055410151119331268966024995370406026564815663101170238048582454442428786790423806382252087443027499808953892727968311114923739843908080725947721717474501489082933226322895510968243204158763036443309560858016299270894784165481680037614823493663505106412334256947782819196038688159796300975693686915264294431544981370771132066608050171133529296687642583324172270778323531964142324649540555928917433873529923143818172610783267700749216245050217036563657129731578911731063931759113730438034251545087016365022301667939212064919120904721494596728652594130567558992422434312406755007230292357592541751505299578710763622396419064356781136713027173638352733938786461803729074975879170234068580573625397330255606792741566700979646861571687101231283368765212013925828064288437131800602205833769048502296523444916820800380835429597854711953615306444711505061859323260440660418389263725401968568639548778926906098746974504903691234396784490959175231161852449274893130279736051052843028844158267023666373584692264765132124851558352617240562650101853060410054255167065025352463523765366502957926539436652330122003445802097403954673850202692329172394500541916745422275370777843623711217198125102115022531090312894151398782547784248566635220835728168575752841669589212888160835939477707753858733652190675427939990267756812660160512915771033282677868191240150857171489787616519088931330730841554602238305233498464399740800626897451673281692052741426237100918240087858822614759496159009691535274792373234486661004103690305699090938973383319298323100875800519003046007576407429077866752195101263035625288079582708538074244050651587129952087306750345045185989809958823369660612336193185807516290812126490696612935736092660114012047560240009317281611149656784986825637332679708836257274551136012316684963149448663692641583534559097478780157792214065101998359838688324719769003886121641691715070143017666671556476254914927965755846942679269768561656899936359960333129113323323665622255408459786221743516971338354378339960247770886795459397760497779410302712584597050267886375071535314209790190225983614943523305964023644103020358911593858469845772671457369647584925279716191111216162658051918821342245405221262911118908094356822869971146633349710781241995144310777379436533774143642683301612097406065444412087302576214994635254653376416498191254444885970040245984217745343403697190146619006361657344110856023591775845722653394603865887446334214450832058761632354254223711768693851292315971068017458518731749569138064599777736887748926721678266910572539965041931070410718924525737488611562448090139302648314817585011861651751084437035136604791055541733191453096504994934861824040851524044395114606563752478774219284441940853909971709038761224198762608998042172192730645959764290644561283633796690869655082031545189177756360886226874980990337958471940679895076905176750837083207119526180952592772293278890481281862095931612087079482187749086105696959606807014664524148009172074518834300265111269462775888945307241109152634715895614472137822234409540169431417897774255514300659688894290747564462881978513900717232294633042391654288352787282936474955172430977728179350773582360649591713715335974893554314600670386704301434851710422086465894679417048500329864931213807010226135385986305986441281822426029802265066504097116834298254794425290256741595572825089383558048204245312302314935291297111768814739264134755331146273582391486899588235632813059641950606615548868886711109824310700022575130841740726409033397160629096662941307557267896317569339181071338962200115862445306336175053148948906376470975021984415989835091744806889533275350340337917451747919607991976128183045262675678953613260817255847422606062439258197706776623868455656095951427827136177614830425512387210548515617075025721242841138187594712468132256307378932709334151450107053679504195364576984327730731068355417342926699921882979234865532794933219261795867336642816494976513554220285931608700187637409915416190446114284056516266003755218860783287817281974389790972178445744739586909397974736019616478374709161661027949368519970271599394158961199884780987156278719861337017870345254919361440508370043341802007619187430452427300597364242901053740561221008391395286188426541602272011995985731538053053962934774918850165258917358681672102627132178709094649924062501469789014027754442510160685621399143745863664502947719989255863936722664220649279419186240235346881666312662460899043882937169773552823267722526036716229720985048946753311617423219119351323281782934352619589519370363805651890464071273014975690554060598213792456604587108465381166661424374166703628220405991935105131753713120642158572696563232041985872035513772563947446818160731029313258131629437137004238030141458692600692952842808909512644673182505223789163872651698254737411175624363778362532524719152331092374855798104186217441683220881130450839097408711529436366303104627773416604157004620076103167148579972146251794734374416970921998468756722177751912435091469680009069392093717430804187213890123616272011983638429700194077723769268526041775072121010237645780142707860394505281578914955727869264849837506583216022113785230738093727460590325212870195704914284857710135215189019076411500331514876872466368421298970243705012345885932408733493994416620893466900072798412146750254363738328392396674616501558873605708368388982223037282666099688439393612863166406870821397735614614727410637712463729155401997972534829162852520111955763131792218534362751194977529397352891166884686501999539732495934520737795506534148422153190481214590327193383207003736793476343037027816320415164910873209374853385041759925626012833655405359101918105116269639650183920498561755400212692364110316498707316042362619621235079797981612076011257982680006443190819924131300708596883970268591615368946262825935035127782102041352587839983308723220346257199411947068279900155472132082117522039606825294016307135944602783601786861837079998916564041456957656712496299689819414092239039386675324917976761351319081678309872231669412159744066425091506511102169692622650267192965580685903643054963950808153566153019916325508739457166828314580264387564035452772607248966288489785609584735719987152634533207789843294111095550610786959682865830858828231163738632234425017604432962057345428186566098737079356482370456170548541030051209428120257405388208503700664688206766611320147755100907870163617877730425762019844003276203651211503701471505667019900437080822643399237432271115157224888290267169320369469291961144997969020199708461088562750202896360282410253728804070304611030530991020195926547898322536407468467836615533854143052261447154275110793437509234578386033355363446876686231551768349111312225138948920308644781857289199339519169739523291291929762885257817811583925647348135340203551065089313420074202666884131717657756093839228500373687709744074599219917737634340105930135774866810034690931075284296233449281301229710550233880933508252906079315680288478939215421955597102026261110137973687432821958269781323068795055123376498306094402507588882259536209535450224685001284743885149019617247997401724039485621900741481405034669699240746755334859921621567774551484476518243334314284245787698011217396356091323658987969610935304732570090981175826146763155990851803049701152665055757690965120974972865419576962095220698019093464228141447772234277810413709696688029584786678120226930848675278533020817016173866404709888196980600700071010959654010826774554166127886243370229158467216410927652688519261255923161799259841136648404138818251674792995386343061133104817287482203080906582019553427386721610534856255338798913171856885764370411379703772353336981724655386239131898019544262608970463129494149224803281097977100507249376024280080919952183110436943852812424992186761305116749715844802127562816294972395486212933803071904354006101130621702822880514860605466821873810346227113271394744734146122987618003179708912076273039844653292432168411417832213163823309441974944139441467397790682159306756286489153575262583164174895944933776777580155088875500897596927254449464364777789836260787534948976868157582691551449614667874738337366525965319792974433305686204344598385460270984057031193653753221816154452867465531707498245743453315067452514861011144622038254954614928520218191757043725730561879113233935804902872284773124694534026743736541204548452408638851691000942973964893523929359814152719195010602570069185880543616274358615568065685469580924116696305933419136367726768120446809582708800552800432575573208177872806959101170357283514381285661466301197906386971278738064452152444410998713467634295648464859536313518134161986845153399397741416606227893364960390355366275730178493151042671336428073291063717538033295813478648704365068089440848656456634974458802651518339519134428255638243243144197398346011414737508565156749400383257521183108056517254318416314053752974083228649804203937150694805272925441152245535958251406600544363534869044477909125773815456396167340633169107084430822783651706853741036571255056230852627368270917536847016117564303848473906959462353245312071869819748362273093302770484101377325035924093090996408791192206116415838582816778709887477055689969727374559932497983888098949939191405250406869657256642235121798791017119240965251169087461679210167431900138301792583027933923950324481316178972677134259410905247832051286220670743053170509528121485987726194302281148328298079843389864954837262610919588422622193591936740516956483951473598198889752752111905756030532566285594379224672284347357831284613722598690951302767615578552336831466453802505937230000907330779669859505167447831051579950991013013291009031377666959036260349763372098024448849442468938668635693981826963147157199167413001825381373310418693610616315287697846300985225345840206297299386344493474048014370028237526094214782294768033708723098041254049543033095120814557419597727586258125656236200363323485536584991354310797331220728123116896773378335457918043738991424496217431353156379677423030284653565158619383724061908996419359399456893355670781549714265467106359866744571181516399842731257135748307348940101885816374162708655185830604885627011099686521112509764171843752991433679502099817928876167234035199505306545557615116641879427077561112613665942357410948237596126623670522143559476637186645802811003294669608579308871653610839761577479868924241035193127428030699837376493226870731864520571393589954073060840748336350787431468306277096215213713306525442762689100574046097922528310708641946040213068556601570509868680207800420985708093169492884177622546725613907672543344561936126716575720264528387762568596072573314538910111696965829438207771749890264091277967296066814962365414442010883755765395328144869647461411946514995140028372657138761770414816480736303551447134538108149154564815559436390441149030631277736604260839760573776903736533849322825301076786932474508400981951546565915138671438374837202321444430476705808519031191866808523854384427332505650800744999677639832265941428593283453970979960732958696399525870452248740959134781377992774032409278488280776256078887277952691122683283531359842684337841179455904839202323924724918482561249616017367394663780261949974113715772030440292361312786196919979614038702839691644181567670657860310860525565086998051438948292117164535346075610018837170625609675997708719553452239235500083526200431948402458142114881361799348154696700158987219781359231529502177586901893669619768778263297668728449006523707675238910870771064826847528863678183272526034321190312618980939126972443736969099682829461617589269624621033027636062248192818545608344271736281381775129732574761667187413139050926112486032666608185430348907961279168961547557228098008555129245419522121060543956659191966392064863539161275442295095571488425561301573690833471125144338919913620965279311288330386038490442249263387151446119562828038521212341563024820593403700282144930971565019665417906190049015731536457933563003741122260674640167390640659049053607182669018142599588701777750475242756652596024291807888009805270297899881741340109348998687516757556349538309114690394580665408087452138043578659430156381813640522203540416387779202581466754138692464502434619060866178400753424891273187107633266302202872937835801832279635630822048413691613307200270406698341353603135960260414128075501146669672748012307957504683604368199944917307395329322725861592176858190293139793317016889579482696932556566138784579559946768323801557683708297008441190355889037789760640049863130246684446754243378860877580727614599050000907348398055484714902933586409709681820237521982846280267051874705099778515138758956164340355027342184195601458712772722248754902702812963661828358702097431629460883627110298460210242210315399353333049097059302925866393016798327017052975318180520765815189634507505804975613291936052996742169983859734511346120164801229598950025020297509252738646116997350600629237118742788925931338519556905945726746529902861096000967717446208514887814072041207979371501845495693834303901151874594804476643873473048000822731508282132131621532461911780927521008874317197058988092267340860788304652448735637210696893066003868388891071287865383033362904429830989432646007689244194389309446695684807982869942263682236480020459421068438194314243382493382425469303897836936859763435657650644587988697961816496049284781677347895356080396191094600092370040666046920140546919978521208244545835538513840662463570076124560679924319316227508542735041416446999553420051576650447391937070811870374010333193240273589883737955108463741557026632146819222349803325228118809866258404560005038619099540658119430698124822590506682761367836726556839688213171931717260177472740638216788294536241603262497401819010678510854830959670021725445338349242308238506507613543697517155511996797795596038315108377239633645703961290303639475330572633019784003221287296882950326599536000334756805424164987837446517585087243154881924087347874794967734012566676225601205308359221988260116609943442218364147937076396830391703212495717176230902118283199633714311837605484814984834788988142267144819522632912199682172201295892919275470213906562288507224801305690539734489937586138752031289806116560969173410617416044365667343163717465112555223189776643989148010179835962535360887595655810341366655892717596790181696505504102183351238828087490120327047286516339896735161461929125526675522571186541358726220094057908856772934500252236015672932619079302913621811187032509405500154855437122587940396757789971507387937252041279353767242138814662760877021769542934538650098110813943547616419682602452663963659804877990702733383499138594162454684222887474467452132703992388035802570181606702896635544430279103651148932246402474526062435030255183946954378087507882729848681199768908946448066593445072073335038621099853014326508850988336181675638895907575616085856216126643946444903350538306858884433558027147729920035641516246987062328636114357147227867552143217311945504217141528240801113769476723831809178577712467644103264917223917415481010804528224214118416265428515668051767771940373847396023506677365060986827560916225796715252114855812487712176983877978373086748771628316852435615871987599677570107445239313672848759083980884082380151003253401613565183704221320184514688962827439355038939718291418714362660924585708942492395291765065790803780335172024993219844210682191243982758580185018644446674387249900480672680937630901239472602589838852905573557561988533784161797926129669418474642445198704279082261136223646065799931013315418578779872200045870638978038218088064476691042358333005671056918412317100833068213903405539744683675943650436592817064981894836310697335254321795261937166158010256128480071699876512806915686512101690928991044402186818345518530732278650070879524263991030726396953010330996090576812373709029477651814040914518790866667896419079747963999307542299353225807446394225681280079997287602995348590211654447374638304755344364043815699020941563546356776996034040773710729132598245302575456605098373195247561959655548570282893158009413916353332507882979954941803661171422118064071734307434147237816126213751857459989191112036637328171952800890147785460373671579285681781141668928343973121051980011439020638239636407424388562229535996879687697374898349163812153788174973832621760441908990994997605031381998868820878695019815814171498929492181022615313411726068036209750960916784730799975098200166982512857641282433430478852970994410246571798301759040522325245533140814844701608647061502224788966768131378575753254035244614198319722451835375779225538420989839177003549927500311665963494089664171809062084087009851385954597558917049208738398854802704194257928905038637283334390636965254021495041202424433469970998452330730436161909000414973252365454789110982179248913601043979210010136908590490387528383956046151682347697181511934403098361339114361975262642680109296285237383287766769394272209823694352181684476680316013609586684409378888139259085383122647102128843779463270933301409897420025786104120519278046634208656638821432663102958251415876956830922821166140247315829329957284395831075489357426039166402502847231517929677788879023603239399530182207858610754241808041040266940052156070826122969833882691426661456490639423729076122882750835713280914169872097459199093885548978987707085352264877077851875360962020359580453411205794068388407418726580383146745007681236542930277082397574462552775809213593893865925615396068809289979650842101182833366591063006407460945661454756840925208184428610746578171578049900954699353787233584179212637448363866760743766280389603842520067022346975075538599725429766329914661291845027672678645623146773424381332824868715651168456922854309623044807555517021916184924099269503846420163011549039860377611442358859857445718257084354992625419341007346379831835121842334947497801320488378431882891880858031554421581161507807103506669537095246910287789929619018265225034189504446764599622311809091089304261935865739033191083017098099341104980971630514033390282025915688726897211738196442161057957046875812969399919303448330800387251399171590037180786971258527340189714364229599314989058621460873795003639831913741073167994128083472905739988752878503520868151586751801302274833775059692849910154954086937675124817871919776245150992459845412675212287477158710647060270451497627775037819912072482542399477709158812434508808501166998652898569731357360664249208788285428931351003008315229237124131215815223849707041665182630751576868973166825601384399828926071019150734849925857017335965790377598531333154270990737737487278951095979655629417849184192912124583787534475578665878318387211109262404222620115874909012319988624231397456516060036081419728780761623467885689991364817539193424849496009627471485302508800909571876023434942860219608865704767184251782075987790556256929730109265964756528557490854082433860613772048519111896238957108498221199373789896770145229643012892432806112430679756258690302241445205315064890911329117514146028394421680332331293532490056104222081507053437133885489766186847821401777112197413563784338802111133151722277055800281622843170178433421258599790307165376594634349210310669494230616273702753055339582163968703256380905521955902401259485303613336056082975946571641078641015892587245984164748122363046193943254240560627291998622392813380430652459252302346379306551708416780962720319054910128529180465712686386263202806208654681044526610786942079473637375634393496220066372968032064310274668225568111345287839610778064764496442997751640483020643299155248366886572807130293825439564488736134172538065044064141496464154912201678193176110935437595290588643364903263406988014719462383521683690594448678369295031248591427067947068173423897776004792132071338342620186044527910361827036430217317277736987662126794207839955961878903877875347459497006045464600869429823135928520631208550016852065326743544614884579214721238199553760599285836306081113986978972364890344476362955792573855982726234225442727013564800235777579007603815081306394688396993833059423251721632982873315786789437592215068155817592946968236346157622985907789838187850136372396549031680945610187829424143080366590803517340924160439733274299503018525964973210066573853757683997759892155083183384609120076721497883770225894192180596379835739645138234743341097750667907171354442342035171696899051899389136362645071440388660305555408019670836925344326955005395792429591796177293783850052593087298833831537941798687628130730044392185135315520650594905706317440420410096175871660052458127911312349072674757217649648448985656063044204862371765456612755661755337994796413105182943417490280558160231900385297996420067166405242949024686937142784600729622057612998939288460760151419459492865842908566317875556453915102973625730683394165905741281639813234669231386815986634720345858466600839759214004492781106227872483682417369065912343407586237970139643887940447918158238759941323650072689758603750439997310869365176381222015924637142644228896730903638810726408131124117084650963911390835727608106778492100186020951581882978593146547133254251944381092532351614854688079382158895432012613985060778907922255606731243746465105374038060449927601050613020577997654297572363914133222811161320039774316172202280924222086971105639017585855689136832332968858513342493326025810157905478235677653551866463936979336002338576941205662929542342953311443784698795008725040380523794068414172385594286230653047504870986990199586325342388782689758528820764073820377402152218545145747120432836070566525035922253190524614769959834036135394676342727022374584453382228590483987813154522826252097683632212276762986127089753305620847858393152277256323367457255433188761714328639005457856036794896929827081131801307648331969759986068985026875148307863104938914017594921220321288562989962719635356638441156908715803069935731489894859997100017485598281477207383264951860863109389742073292786429349151437555968028122961989951236662026037213937607141437268141030850613574644871000354930703664100960425591806663765025757672712947809766808963837779301894307382160885840640259450321595475168461758528631832992612529465072982983153745081760458490143651695089164915669447501032253403364736106188518034283901210658702275381254586058482362459047078140653865676223451759112067597982482574035181559151262824195790812267733313665842251641571465083846400434926372657499174831706931556682562281676281400051953408228753294992694895012498525395192558594186478130657388102682039611212013988778440899680887328942017579004291062135600680471843311611354358986698888300696447615309690641386658598303009664271073044134110710266762981775648959575026300936034902312291165540008309457614999167301731300417970548386068930475701475570940320254521888828474803192208830926818769002241013961018894419533779400836992202241485598146189303212926329926445598687035772888389124920010809953186050414525882655376714622292316507781931832823977451771630485905393267570765599124520548378711304298867924744403847858535919996757124679811040737838542640449811745848902607826020939047936570072225450748180116894714928163674097300358208226707788936735668630355782163679659448341255331792234364254994389351457677319693984474924460965600700924674240601363724503181015501857466436045657708237176591483404548895115941840219911453832258074218191977998482733171581547466871643371196368118928837783112881068972644831852986554356053939045871755495633206316878464298018858224374576803273107803510110866026448820761626769878122065989900654108224808032494514174634312789698056682586616340732698101220290898528458935445276216634772054036750600394838322400439376798035286352626583469664796354253544728271292393027348349559282544926958322723919752732842889160705199899323331008763079926168537152994902171132911780378452685300983505888150045876265194213820345539894795612857577330493455477495885457522980905652518362795803361172218932741694709591011012481115254227573642896630810857578061266092491337978897357597914988481994331962710919564259335792294780575055705918868161069502305191421233327331771928532013591624538019197841822743094222441116976015802035784627351203731823912930811207080448543098874418986837914226492608339897887903267850747955682634998480306036899814891845452607187440436633925253618167000517857642618596152254231323580885487209013315658856451254923356369455487904510116700626732899201343560572175575146867012093520224651230281219207439943075741277551762010715066728030032689742430542560868277759187638060010925316426147199302726432183338966464744395465023959477788575047784420730081208062140350887799944460212971918290164413145306601922048176324148554402983299480851570735526264817698376454185863344258229816934922915609099536320342177049191993333949363499888603674883774594711670713610074649203407922820024773952083221892843014038238526871406296210586779166166403610597390826339498551523578236108445273896650371919613121579047918543036177932923891155424006587864018712130462773083261306547356068887844549915614890546985461454688187756539394397989822279294869550572740051992795728985020856939903675968843388169249897204952769673359996549087712195169294470644422063218923736878614271036338466393419217334805061050001471875117539992499589272672901172024519874991759979458316510121150843445005413132248172542941647794268940061234898833995629484928407538571742515718766508657652745805850198632433886395649152259097074220954306788776780733358041929396374827317588271030436292255825106694604902428929497131311206098008142674814848840260951749600691618518435457657826001890777750604760320131883165803798930607720219582694591897281587631822096363127318011404411446410521696926012311652050740928454471085054100009600531512716967715949650637417766554423918375647406260669969546744008639255768000489288371690076334001413213670550577219591844296933300149186364371932189346795124267602602784348163519019873436201716427432421265582601624681177202678629743447240015597140165438915021303876907175065642484468578796458969944495972959521222205211336757201637056233057281043396952586644589186158680127039819224290231648376752643463963570759046442134239768048800083193340567092349231993643390300953314947832170804918375540798149728841541106782421940377591625093904665693041680688914998297700574057274893450717930062968866423627393302200924872076507880941899017199327257110975176121254417346796232588096401050134905558546441874002283660157987163517191632549677082848732202758653680496811626867601690445194011379737220430105626515833447466414923809232007565763085619210447978802418592350401377021641645481008914961561020543724878810367682151092519636004773361606776960435600384537469506892645171358203363905433025312404762051582932679703384594899960296899510874040651261721508674576674429084944505206475152700414950607029946710795376266092310189326935139272684529847583386469027130856894991737265090278729425260740504310693173123633988527113380256674893162694025163143124330430614309473991710809009528299847520229065413748791603696510579511920603320487093910877795258904105187308788092284936093233694477719331510205625758737817287948502971106976311759994126202707487984018461948032390694109375906103704089798067139865115275275762936115987262267500300937733565346975482948262504373017157315576074708114712238687259121989301258125463288977863427351949478710809782689040642915043399933636386912508327766766609168427039321835493958091084917408198074171492332197842879693559017202374745018586459774052158349065393482149813019947398417886680579863105458186709453076530802674700547365130753600051797599774739232646814640040578565896970791564260809025944661280453164647760464352642050462663381799004611570931257817346793205291130947076086515847897008361011446459097364779201006317704694547781517668121207952338201458317498693420713155981681905406305508600557409638028666343622767985794258232462438331834289403567315932469256783549459547072835816541337864055458462067845881135866980738457844174128540507395280387732592623422993943947201493488433498268771376514225664217153160274115270730602491130347863207666009711357377524592110733124194036378929685288569039685098776984989494975175064368481671877587858387824201883917771736085730529061044142585555343687024522074545852782281091810358755258439136425275842356187861806289763850275473507604911488840251685114960778682263206420774641125308865329344761958547658991501912750838760236923648533761357115561797822494816799914097316256439918586834060305723895755684599244594962061122360221227499330603774586521800926691168191522533821406697484267293957969168196049781196320026231555169177381967637635871352108482077403940752220132066412761953414422685344767085261880002421850732745126310035642898792395906991199183387330566021260274329091368852908667640837154914718778960780265374559848917710507691569833984278600145994396662672399836360407731199782199260410230100940226916072807970549156279671772912454773078301798831955160655726449808968956419121409790436131841327580160633577488688306569847261917237058906582122234839149497225188875167036694770542529390298447467927481801851446952455021179809421158190855662335383376211507849508688880352174062268073660414210640157614448350621202963304837231884564217088138775140041218075005082488270380964432091648212540433827437429128176507049633646681195945147123446543687579130533191877305514148845849458312859833915728020593789292165457368570324443461554033830949355773988238552755816750985963741512453071241806534380117019449107976724791362785341292117634468515412126674625331313756648689517690640497278718768652927885021842303275137835898844120452562961690591491607328488094012170155164877072415341702785346170504344579327673682628009518449236571580505271589804328504851393376207370977749408300518794230857824898727431161256022555676069641784901951302103615168677454789397434170560369586603599140650699536843114818374034360488427260513127583474995902571218426743122621923211373005501947034184596273047108716215559709446372748049838332656900347743139648594771153551718452175868483192844139448212421789481567123995011661831720709154644557975650455148137525766093722234814126264578729178460201778040580345045998966951209689680246653124819671148035616912367492364643884237231812092440365189667143519387219549637402900286779881961241370726814499244856472469355303687000554573803717703931961937353238207318552793755564351933991921451566254387902334038398462461396094061009668367061509671174675776314940511316707847735196224437125210905478122119355878337815223308391641128415669962414522654641160212796089303366776900537562942672108908632270457767868559892155873523562453868341140497548864275994929264582708856549825428897661851311979017781818790621339007146966290398711862542551693370605090973420474718080273433248813219101944364645720244146893234962787160494770133420466315947647623821687121686135582686183988026557976419634593889428977046317248652300044342080094180233349934411258252364663240946253011901337280490959728961297935310188974028913859051200880775873490491805595541942835294117417246009633697878621269892475441966424918425415872580067260593337897985302749518320315722198043531696078799988978423917639169279832572620601765397226881628226600871227784717677757314389360144703100933441377168170633402447883802979480329054843451351771550051497821603048007830624927397002172691532029152346880705983291467899950189234232834712022516811002495410791338378313399850925103312943609102966298952494434432599885289391384804559057963720858529476864883772854978749897690868268298003509457166367945863176156753759731568786525662346958272335540651967320137209946083441506437622449470349091534515210248267181709802112210668923245399857859110098187706747445977316938037065378587175582235328293183113386303350304482491235317906204874566604330712223422183381737608810290929630466813138197859720820192227409587764815895579640522034924931495457214700048892465003239975090965129942225849080415574084431767306293413577150227364429579692448435651894517079612964071492521580175122710033706943866007584287174721544371696608259331261103155050018835651381090130228595271780467555519398491247698064040751691190256507606703647317948320542434551306536861627990997344369784486745226073919937645555235446509912561439942221638314462172075705550470005596000194046503666828701464336556554208044947958600317123040977121684426111967771927550747110901049548056044562387196809979925924473725110088375789424990344696353577101487819260345810547993921501891027446149551502199907140677440373652768461212292050243165510035174333373064357289507975633790481510183075243469278710961067838007808554614386016136596960881959372525646441480648230984889736867525052062963615294943644120233431295563890167433000520861606462538983573187173037769841928785306560880680108542743048633277155923327717128086651250666393978274320989618690595156528749774171383924039177726963247219404990454270285961171167602719009062412716398752609217918654310313727899050626304801469549032533537427224529962387618567344495538869998695426421468860915585173720214110804152691090946627216062071620496191311663111511327239038910680416550534892317426962619866956769323372757084379295589049560504069407750210496535747888903714414024730366413268128613046328487710595035657476912069737122808978881057326228348633635093274023781118925221964761779004502228678857884751617860771694976340514109618333882554224338932580457068568423998793719241395134744484721549945840543985029476605212363276653743993929939092168031675501325876428141597665410730800215827092003280532950846068717982299210567637706509495379599915502276551984088722491103633326241100793797187622358167221372579580989373077676133779114504989824558389154766649992413918829799631715317619456350160726056279447191506911066519997865183774443783852086958573415076372529315663056743051603513828674215104095453584733226407605788445879628413441903394033777574898847171426919308524955432855102492427821181518260420428666206570900565790957275726151834282755463246421926426379902241155373746041801147477033468968952703700771859890198144779597223358126484065814795473981443017145106213884570951710258792977335998514690455990987031742900761987077903086074997565961520723812125458766626664367907292786589196175142813267981756764390691859738545054398817725999916365720873314294157599727542413877843329318050412927435077913519428159056834746232915358703583699535857585290899656686923275770397570784517627408713337403443801509286466840606565942115088642763213426616707233476101013350277786556850391676077753183843614655181780758752924889659575389209228312131221517695691529257976158712376040871616923593829073196585454730888023043538451871224105281434412325577200796523520610010616886649019512842041460862753189844562933856751249122315503935542752805491395336619169046247195937903126215797160679123571179835965120478736527221645245949751867643587024219702587678059193867477471276051085679462621198052740254740077027900711088450320271049527578973572053906733494582638584819804256183101942869259367042070953918738457038022638160376278656215697871593886775518463038551156848968115561192162423746137260760753275023637498501241182209440913004941761709909538799695049788424220859497471669259284243105522870309300226629790741327989875146321062442263395761989763090120976509902584877668161789672091247253582078409211441458367791891956287730156865036668378968821525054650131390052827666311739661999375628329041872924162433263339448983401321049517993075731883754062214709475867208741146420870637347250215142374728472594202691010330709551021893663108070883912795494895879684969774985627662170251134031516746654686787931295893577436300630073927837386109576327338933890528287391785316586846085158754407512405120511564859906758784428870235307357098399797454804075661511081385057188454647476816805137593690281182843516460831743719129180368447507627560835917340819830694449014706287710997842755168127782326575990265158198403483722455455286369780030940598506974217459524581553879574185402526500420917250471926251462519004766240064555847668645720665739540985128166227020861167803197917138628993745202516202510552026402672831387162939603255465684819344035855091508933900778877005933022046584229755390923563238964782587074250841090095767629549653528193602647091982537722263919802163383114421750961663638512599127684788774049830802238144087545126415344033003687149632495795536555612630785938522594914995264898960704156379237326287909875448409258065200905075711314167289446561870408921387326805462748823225226668940980653636504256423966199170866188472052657963112199217241015386805691262446647368960280601787502642861939429217606819990830256960656184728896156870592748377780410705120135373911096605905608279485629841423123712991472082577911110241660151347801445047367314063285288028371665204319196962360898286636132344614330880724253095708132175596129521089892210666259427039890006949147045051118211218971450253616001460049693337378911137514929052134473574162187169654266802749445868837906520734395782748514967343515584633434537758077951573562396659586335508975449892627841184399391921757221862602761013729573852098521283761780519469082774644322159999903231492591459806702391389030218697329351305810759774850593392900331528725009897609000741556356707667290370625399215338460805325989188580439216481395446598087664185735644639982651965717352524051203711909687806475532788926606039557763722495526349191074980620321075685146236189704225827407089107353679817322352328148614707088980571127950218858088836283799609791866963623465298529750367792436344504310940429860749128866061739784238990441389621682224819178008271356998982083542893639866735971496455223414472277735235966642172888749954622656615608923953622956259632052936386127021151108405458868038191861107796602455979677658265621285500196902181010049804857027646339026874448074806316213569418152116470761223607439824937724090450404988336433258178584913649844331914931672234272502537183088659433441239913240803706003711941290173339120779700487107313280818844724145251427804636659905704493101901231043676884563634280145274157754038812443948268960406880342851255824311166790855595063050578102585017627331206925446857419242427003586906916599441750256918271894421945112552509843725634619504618383624340314423854441187090870021219240151257788922970346766458573944263932415822581571705051345046116983926947940989159649882792390244009369809001576546762179995442157987207057736528320006489572344369132959283268741266004313370894582926734506143577233945077581639560030259472623060689675531323609831819470806895693329051161316450834493972392164102716342610083773067474569748429402153306591501059997670119210894706383453903376535966098678903889868086419238617310390749289599356897899207957801441147155868398456734137760462201162087136565525061810968726792986721105323642528415317296205957138479210463735239485604778915406900613247982890423750800076292304850288467764005571613798478235599057499713929400339626583190639010854837228530888913434663504717288322725620026418188784723599305661279754618876531024707214053354231588025385945518423625805490165503842712206064413572115959990035749239669623641466999798906207936186920393145979927519512358046055561136550795782851159022295617268818348437791920810442596220791690863271061040494136845106631664938314096518408580805891985103352126071518798573059663994433734822077922814587195574193385525199968598990261399759385447263674765609468211792551063925387100778699030418681414992436775519872068452589832698257557576395874721750207650480075381381045437807914206407988487515210989779572250857527850056727477691207628602412730303246717500297831901900782916916339943614360197373181141710163389440314599318616978868413265805086733554370232370733765964110522150516099127784791479974722478069077874045729531001182866217397602387093102161380925056171792589741198678843021540228822699087370154156145988520952174137723383288511969085572367151970374165886964228064522771032637507386876933897730950338717169275942900089149977472879472102642834715765404854942130217315210116088310854161447279073304750700621437184120383320147085996349482653637709171825975710059314673722648824436668044164134161246424084485763998928060946172248843476818248337361288577937387944572211320352502867187705477133988252306363769745493819396012868832790570791878427974081773231344046914705080482509468031158501441176241687694774522660927939154176890540527406295519761617522259855646357315368377114263595955905240777702355646024501148926441092952951249198257408776388200539095544451356318759005983165605818770622739094317751375689018636025495804226648031479748068018317341453139774120459849535694813926816083432185382697079387982761854423274720654576848956795715040351066743869672593828592852128012898426130763173244010141641258422380169922495872513381894962295547341284804770503757342980563810292383600170327469703384936577182269656165633639105013120127118067656574619708786646949447777320489314753062221149832994725929719233698573048392621799780192043244919636333556302443788268109251809052749426886568610487146672056823747045222345762715648379332303292613937692961272740747970558260192653135470574042614200010926794715815372428356673958703419915076362639510363779036923543275066497815640466561296736857264648292847380269906042843660388904184904642955466821359667479755147074259087166156932873656835120474197080998454816010115040333972761337815589365055633661840882643151481806409507469697713933332291879634658748039271104581700046716109619470421499926178632245493360869776614445473850113762093430972311745576534160508432535329324051950728104566822475918447498516344894675073475682186562265302111606437586615968663673292214842576050788182578879735480445271001274235868096660222460553545678127481830459597838275519229598272114659535465938122700593654711587207485761692876299024344548710639395160623271759449588926931942386793809805351985271056503061045959667155285796483531211343340843769012894799956575882400752972821798496690725810345053510115814723271448989846617916219650884437114747123796004209495610616025099913069096888896085678443977745092448892745865712343725491713793644060572460149736620853087563480694829225039590623127295961067264308235895598037202284692249539765006916251046108124636462848789861789236763296030192924855801890502103910149372309988177389331867794753766333747108349009048315686381555446937226206232367816408861832166924912474816144705191975518258071140510901005005654478200873759123739566585580480456342198918171269187448636799497668072482907167260734760911140977336016007834394326053117116446720396222200163320711601539216883674031652265033393180569136804175926279311768875067612659183145052128368423808678476977216874561527194335369172807638147311124368479426161230630069572459634418750220521106770966879030023506772906644749941066705838349246263659485952597720773821611890865723845711350921487575855985470979795927882240470491600244473055632105923406915171577652989062579773664958677372900783855346763971198457177581608492183682934679642712031880977878116669250513157329611122794339639116583108715262407767431849232369175746588481249816779394124023799975910086239822850570494527118218229561878710813200471359483748667345491983674942860354378920027469481335871733259784529383541917138268310934135009197321943570011747150006337455354292577691976444114568353521803918718114634403791097280592562572766829838693669517319709080529695551569651893826753363990313799537718525882438313440250293825343867084018151648484891998339630999824056517900540260890720710844390178208152801568191076443996899536241874106844467387685057454066491606705867873229968612967856677322330936711178169999019423136916123102119833640696741255273229452784292598427746003757210072450926591820682673960744830666106368257166706474837681837169776361591014348204870344944790058724970739925870685038820575471334645047584743910652239587786814552290446700529119622694415466186491143470784262917156952154649954334655181802587690610925973110547357939684705456255229405470764191926649188672384715901250833570828343733219794194530236783961536864023630541259728969105365395240050276631699867589276030677283552643748995981244557403087071935785230890124682548086380721310393824663149365024197181386337453772321046934573875669322480428082195034859462962398132801721824648608807912756765475693216579348779237085412134363668451965535092661311550298300689304581451220695195600910654540549186135801499938048727808194111788436106364640324998560575955017947350777639861934868478666855857402692921487144201504537189430635056714050353690116921127731862272118993490032535093180648435466909463251216590231821387099935925082412373703594247958469383651954429677288537346149622852297716442793816390180673823273928719783711562831160421851891672753288534845994573222781981636649836272088820022412356104566848278869617683148360962657345483343607234619398450764870286596772869227184806145088076045395647317106297855114655677376078490669056585672512038497807457421839619009856814428283356583410447510743411752426809411708675414353395200754156852464640521512551267234012276788121320487375502489284664875329114615147745969815133077275500366410037903037566977597319110373572463426266500400840270496865725209127958248036689621374832197271537979542491252590969228047945439870501545445668621530124842686477660736776713989534262139328234521262833172228540807304254761018714641456655882933379824064282377578500754099094020504213443329264552992094637958944817617094979696313884635173139649173311091693282333339229892394617561598181289069524772318577791857603428753633104584375510788435908292381378218115085368475813929385880584641532868194077392978423368143330836899207314326339292775149364332762585569949659992484931526714825617578511896376945150697760055849919452431207560430502412186568325683657414450336923107482592055523590551513312365921756622123904289281819605712651517602693219159468569389163742196192916607439990605564923563657321470768419767089789699460326719608297504525964289752448574603404288791299999521123833945936219420063504606636481530952153918595160532071375770599385177324028306820680947297017697982849095347962284642427620443183898389240368838164583779251136430194473605255440957494776880500772749494358720472720979506255763295663328673153383287715474572448275416967342929741843767699871769339558651665710427469772578347692900609426403932496214712359533317856467411306363356247670081537597188582959316607502865982490861915630004498457071959654636035287257906994244495913946138688890526585675404518479518402099957055249203552663307836016427845976312598154925226816356732874497349544699082425906356712858074020625998043988064961589655355703997786994362597284483593689974502311809597515504889084789916669047105989457869425072248693847332437573622406083610928783549234333502703915527363904929688618146091227808586250833752471401728411009497449290808155452083674576700095419792795427194800997792126952018483652603397171755747680683910496568043023274363024898956741455826174506799241902064829344445462856131575050382277007073009607520899420976645983572946574026077632716312295325159851046462799719775994841433704604619049784875910325823158981079043173713127640341801495308469851542574377108700644275175166761038404967641973772998794049231546378156935164171797803809922760143810080352061139435874247367790692290468593552656126119793248054821344575698032478696414944102230688965235783079515885239809459611351704128795526116516777275059542342752243970592250516285701066938811265591174623616930538084064341466589130319065345542863895184464162068348505432382850257397958942669743757505770050467638138844067228244432252079938541545073814137198991146551023754884515109931324409801540190829956660993250386450465986252951942133769409714203173550824435962789689723750892944127104522087876911949920425529892366331074173118780130302121312709557251071802634008307416153998248005510022805520341785186148650868075289696999879456987309525160372143721277709879945889604117724995786955357879682706998420559862991418581440923556382673570527385022992584581382214244839909350715927169407749148258935495794911610604901806820563144365640091898835671405032196594529082480877875121220931214828130346894556320542110385915250498915710912432599386311167685557797064385172859456784184221953800919921707773855455575970320034145801090149069952513310681773087637531553745780521837844131876446140108562145551011446756534594236104085352874651753706728319765489902281336870796643142786915532875790634690416368646051387571094062602844643190180423405180613120564454233668455073253465140485518428701176495562688676997722384728224153668973755316491745294557959919347302086883487676402542181097366712907720489784207710567864483988821867769378271686946752511957215985880769588485067751488822387476849549903425917846407447904067029169698548778840148014180729386940950582664636451497549281966663513330612966863620086914071532749564462948444446840228871995166637428158858218917190325035260857174155660828219970641547086045929380456698191994921458855176286476756156360180844521374734229567851059129631523039522991154183273757904751943586808143126206472135516002888027665977494056793666576755646797197079866275394261626723592350884241977389221528349584160252075141754535629376834369368180366725375689991933870217404670840724211200239225220251979773517583363943315180780608949948443458378587296801269428610553875420102514512276807850325371171666469502239511598684118911121757743558616660484263242444801449178675567700786349731686458901976928757325065948011728214110805137892871425627198865100478553110986080510078567243348726171026774038709178796138522827188000842422437160915890116970824157380496886158869085415739927042766526669771926961686439355617235054132531367703782272883794007918188732187977632443124926784563623059727017994273401180942551779225961043522771419345472381911686161392209041235911446473446097029531643300708389319622851048739417330491093904278852818866314788111894356171554401362440353937968800589785486829464912439068615814863979228554671903946496089384294836769274065335220779043783848942155712901156812663833497706950529721985731347221577096505206060803082018012673062250510111280214863095432643730217116444079795293862468021120452726450121547622926759018317515599999239671239380414962428896653541551518723103703011937066225408785423841435341587433616074044708714019356632822761132798783981857833688813502052057716053410028785707845646603833670908123857307396240715241290378554708379192521563042594405690928683903862962909484504482736653338738527263598837982136269222062162934805507687148609582279568510005862483554349779303173479015545328902173052593168707380330635042710258239718714427584511706641180573278047397208668496698711787641104243637700127407499934911428821738370665500808828130676724707229163037835616652475407759645857401876215378691747216438080435908594668174705995633737503276479865353263666073368375856136869123247033541024368878522368377217663357294484984403878232099367207504289308619382770902175820584774914875340673565841461665754973273392402291766731555058643621273572989740761221419004248488074325185519946033064511859564062522518533556191382266786762929899513848690854475878092588392771167737734053416635665140928866036754422521427708657150390740886531862032590612195486938845315786221395141299831644202321833473557077968796093068553512559576560767197881610887275930290741486712878979307184592673789310990607636424620997562488361475596609204249425293999989755878797671196587185104105370072370343868397462140932911440156533899383902433627872146497934823372167295636236776328750068201667144539755146396178018890259045882675492660618105891388173380538367065014507367454180669473716988509984011526500472277624635494544504810224493495460928489290473159973538950020895044842654073083324642592983692366151427224081633137055217998704157439558851366268554812425843376674963034338540621582278426201476112565759923949278694538716990471993945923159392614040628512882521855628924888878481293639808592392776573063599851628618078506273409872115983765186578903168282904875437153402914279743540678731539397331381538909232769489281109198025847555251862754631484147555256023680712124492322315390425311502231535030950196026227518453114875508448112006619130747935408120786624583375631617318799299830977993874846343068867587777751403101379370581072513133818516563112709106748648600337795050943905302589986355001126414785671892742257443668887747297674480833035744313042913721286409965248690035294427484376623096994580673163336427884305302282816188859015843192868414408331819520009588202856186580307498341294128219229202947861851335060750657513700877643276150517575869200469090487941367449528358410877307962283632467310805273738271850210960419664541176646096881129164503034049475607651851248643733964532451026966591005762239678965737939893527067708153018266252407714441284057462044593637893370817704315360179633526751664351537413897377917841573656979172185502032764393606209856600343338594114968547026175206582476096515624043979972409536212210849796164651707855656091909709928132563894209527861356001954583766749968733007107231949442884688724294553783817593986577479315796496266293763145569334646809253762060235698295592979746042139384439341103330987742450292837036877256625373273347525267224228258590989780765164394676440596572598399919110655250497282725703905833232713239056304525673303371490211538692778414535699136497689426115686945383475995183389976345980122024793253584157056283438143917389442874959349743734577495059202403930456754754495286260401916906151791995955329528360446583462996769908418857831574586553997704723750131326000922234475526092854598359636113339204124327596430270788598714323498083609061073449656069348524214735153921090322452994316901348504895705989784777354431485513258912028883314321414071080107053560470157756812195085795111466744868300850687763886859427131896455494689509375244506486952402466807393199686327509313461444759142014157338617650936263031597537568202342657603832016611464602899142517898636051752943793813830930521386872547349610356311490511008862310727291850102930906614291644515177554490199900752156363409932746395718239764399263234425109137472389779726088901426822236931061137163809726306166761616497708185136006030653392033392898679505874610089345746837899648332015469613067084578562653797955263663584892068986888684666810435354596020773065170112079110249075896468733817508873349128869213212402770936444158390959571092308751132347729385585058247279060439595680483261481996740344938945700950514575649203071888090571374691471595238694854514623944440914028983837845685493755299507460371304783336009146067613253789905648024374169116326538273873491427966901417701627082473776980854748283326398439354375656721434987013755547087687078587393294253041537238313032056384931232260843621999337268288309051203198191339706620366068675456455565440681845843969972715676601295169203734780439892339863107544411121846468761890057754701134146655302252404389140408208427115496461465774772578097110036323981462967059138853875220566730981215889013254477433109170331370960088333860105990794782796089459288741402217177102592269422059675114469980982815202590139677182148439385559097559514836261388179845178519713243816709663356855123228632549382056465729338401450549074783097202672831160596323657986304630321095816313362073256795960558339803537026241756613524589088099604968196365455959091906211363358670156318258439515074626249334336862892815918175964532332349180975316192004436537451140198831726636925147942929267246471231876183785898559178856349011691726177031243353008609006483278948321860004108253244679865763932596945318489311446605629557113290467890740577253158939499572837425481686001677997073831981519624459381325415093860148788609467543022016763413889267778809649153165131087015613713415061058940411964299800435293964223275434329946840682626382604610737545580603911434626450933702738880955452578168219428814648551744505394409525351709930059934966497057236925180527619849119916889348927646382513378394298362733048432449289129146406926278309902991487166227780024747512021184802580903002093516162649616056780154312439567499049242999117348261420804185671599849442140691473753896362886953686811946318214194109715042126593695658483193539695582508827417436880581242577557341640819636745775800469301109145053536961239582064819126902051381846144494059053053988748501471492974169692808005168406173212776512015921262396674594963951820457746347490093698637737641897040758270731912118064080739280869092506605908766474305342246174951245771947166262890590736534924462538113729450056231765492391173880423012297663169761649190057032229374743090915110921582479682702052392307595445460761813806182624954124394335804328786356962878673445573075674249293090026619746158487243906689303362952713392848862059838593495635483860767528606620425970348542886181074778710677574000067782463048113653606392809020147596136915093436438014147352090184147638951916483562186481808655278702856876053334458671800624138028098087921603164052838632017713985126669742127107401393181192606027074912641084181422772006951944548783974988241083992071148226032520151266762998997579019471920481153657052529668189114883638506096758632714225780923971761411827381212437302778316969905655223590677180447661430983406897421628008776579389000340072568156948799719587388875600039403810897193210436309029638265106906596233729047824176507394620216381537974103493563634733081170605778972254704599466479503566759034403474533677835859894275023065621720879601575509827311660116548622716091393451652830333638544360357897178241320905489736118922531972198255459247262974179055986254228136991188877942517718341624937345928139972533741897252836745902357133530819867924682654701781532468165182973340715939809707248544940942607359623165204392054053568471827367099719790724291041495737976736102544802497313153528101399626660862603470877022433531889537330689321642730618514563472248242894436980109765836142668268679662925774414440205597557435392486396154498720044416487048832712205034552521731449089140843486587975534781602518922826080960191866694058921291125053495846112719704136014454194479609215719244363513661753169409360074182721324570360771075733393669636586797226985831750120759461337024440469187903990547858035706377567960174703702727380599719923190349993790261509196566486677034371824240784062403800644056504966250647715606484856560572541026625678629780492195547931073945643966735045565096129867728247179713792048473614945476725455682711476011734628683933354940993640401234848303730614420309413110632185098452717282686924068183151059786991970750789451235418799851706948662305294693584426631184325038637920438617019788230965580577539605533004724369915577531496853951885458818274935938892497183113010045246003694414211427743131839388978444567482652235423415363279022957442252426498664388094922087299165965227207310396385903797267590296788795303061785951764600773252814383470345057824485980878412948821166087827003101766138269909228819574916856519420225730093342281404412747805386480882274971588673619527130429421760456157388491192362037682936082607738974897377497889844090596196026389473526720031095687459584705224726748593545337314272120075949509067394453600868565618521302019641389418405628217817373447606856730635863313584058628853376555639691897582091748270300477022404181603862745559090688629577258568945891131188150988196277008534435000522022764565562385576990482102687665194016500550263339144403227136073957433526331743041680141520686362826406907723032045283251048326305362345470739142345201812283867577256735350176414799212771433221647574089939220330820012998290559184087360194940154035653783632920014539315491744184525592294540078540404023748891304075644133513028376324385233940823768856768515117146896809580434672422973461758559706035461237971485734579807625456775790545303385576867501807573850327873242842365198746176464150977576199550933419806325140318017401675508509416491613158509476180006863907333240165754230038997217523059023458008424504861363186201663642864817179000141403500528898594817156756745091734689219204220802282882824634821457369827479394581608830126646460007967971594582925739686532259523156709581328009345459235361649129053381025496908722826167696739755878757338936960745422059860517308552915925934232624980133387007787290161086453632346451199965653008697966761855408532385245582734275282110881231784599976517511625526545284463062177402618446532967558627820980580580787660399095941938131842271166808129221158247905325674011331569283694743187917897803746108070649748061117475049490478536251820189912820806792436851868035073501911801099723726848991028020189990723298796187029373663621906311711468742589362067060200005079054341310896291755436993438980570163465041563496444344076286111102893242631802885359533352528325140009080867535117708864298135709092937407085383684414706781071295510830536883018978394879265873037950941481464727931458585696593537096011604763406197344161618775647390790938578480111474493349907043886005448171642579702322061865115153058022615904043985019190039214871976818157348635410750600557251543836258235073839901216681521223366985687621812244625293166057820147342179589056495214592571220217380043872589793856280783390160598938642418680513464106355088438887629319137079818626371282196940045628505274003805213548937869744345878934996140324227991205349950634863707211191569362420538123568539620072829654550290474859868056993183797508535453971970307195291854743864715626887422362390707835239635499392716776002595098622048853443921306203697742708022450124792603807997607266614723448145476311687677394127967753923254442494598745505420137370169964935116365919732780324095120373725001915186571167495578413804475052143049806624942608838324344668834755341419541085677885732471695785549848299873180551050463376212596306106037249762904694960919357269019487065678487246701187327922234485582741472439455743676293542944397394546123821634700689186069947404907239446945917013178848072093216225825795079737692789637306879876551155981447694561269586899989195887342561688578245219590740793023242222121247579467398945035272752754724103405850876333084295706427632764625131399457009339160013920912611279194508999148350967420168265401981275903355183454528960108957238540438397769317043661770153816313236719271812963603376027291898326988164356919856396868296750878383934995247726618132097784481854218027376174134683486755179254497205406885704479215782016431150294049943799206658422302764138750426453965253026237967124369635688650457862483457302167645509305633668659230678676391434629564300234074172706741886481090579193889045202212015466325093037001820741598942320240951404356010926903774808562847569785135531889978232133104703123763556408682038272656771632495053568225697468757984647236977082919978579269451233827541374992844715183248637147627497301614295952462553969111351264058779801798252531118081216953761200659831700829711814816374335299470627689782454472894245663439774747825438558907937160783062428461418747911565498797077019242801469851831097745630349270843671456155181505456187441142726483090134902219390965044089749529305314881345519803782686256263868513482429053127568251636651140379365495292467283511171378639763274937296907287651904014098323366542027782237462382545188933539465860208140108083208070730179033809870107618474138437372924291497247711611449564667347545205883789884836159012276032459181560599854711009166995895057167574465013090214001791276175790580674159133145795339025748501418029086696925382775105825270503168550797185811037165900777901149710728910773836652722111825123578628647866523903987244645794188788927713707784585050777216083818359532519148221623795746107082469923399031513794161063816518529688984135123849199025522758538534303990648335897306740303460643386264496522263936736313497665729972903768941533408939269011377722908741484088195270296913641561875831826399407676311123827635690789515932876934846906873412826359876756467974196193588137175232340723984981119600968090390790245926058495979341844616615325673675875172186628353219934454268834715599607070863988512245694262769485169847071272570429146675375385938098008143576992547215418024710492412467771131525453853113385870688879700524545437485936922212795240495161455050353683843868917893461437108205319629667151200843229200637321450235338249455815547231773943936980733596062341399425767037068457775272932635672108847489844037655696581392594370251525816820345239834722694092468784279433051338062241613795180249197584833069021969887374499767577801497086993818232241558009782448454199532020035653496434525402766700017679850404148681245171104122325944709510034409316862381764324056624934636833541122184571864204143397126560397020260632848021149739330152516563453160459876547442745227723145718456828670007225005714683463541542758394385032352092577228479146402898153397373721681331456858171866584993487327374639284795244296200893893541919107765259879928801973123844933918443884367131014065390556926988808600764746574028450031513010338677663023045839795080210960357290766356669233647751647091699870083979881280092270747381182003293483049849398310179666463819752298795293910596675134398188441457274926389343517172175712532949309942853312284212185313310266198877878090349160181827468735761522704609655155306057765211545491031609309782184511316558871009278443982533534799399834824918157283865295880903075548513949756230841650800030561855628199630085992089085115198339193657208543333010122787168737528446786933973458863736598614798742889429717602877354272553583685650575526686244680897292122177526584426283640198458167298431970648887686769077319783965206900552226379994547500321213029286190624044539375641178279272301927378157667993404984784029870568032941587495179667925645503447465270006426071468919120282004814252610140091205609893878749550409494854926165821292780622627656424156928202714852754520440771004912277873042613950749687986201273100120110906723827635096711582488063386122401604354241077753772050318862998367705094504079632342325961302856346689005267109447088632071952739831475242074705947969587047322143176746770608279615557193465186200097890275248487092764576361521294667173215174951960436730910184708062206218222418561274740710287817006548829740018258355170443733991911182113888326851531954535282066584159200341381485972575577330311106544380618984147072696136480087433733106656497305916567386299099404433224141683730504469718203397522775834381335975815746884111823515667342782366040364711485780278533362982442891404753447774900352015661496161420060921888944163314662898015204487473742896312278982666472003470371737981046831294825921842644637972439620856887659276433538881432213849688901385612843049174481572985114473657379112289513799746074022722858210796389263859823306578970361754136720947460487687915828383818094328529562683266481536900464641201973679609709638690618742251167909460784718695582653245704676271413027179646141569207220169472507224793772142254475645737755673235161962890920121912334384325419069462979453095087028671572231607848091659997281038602399726099720982417114100234757995656538363439526471452757096677971046149380521112798898923914647757968269413304876540135149967457775954685639163552721515236423906208533468795265547847594549098383679148369361584915436131600612238850243624782564712479086619862789074113086367084593088905541221175456071286275157323006385111876330580379799637327503625376620287789512981911638152147147563029887796695769823589332418896383784319890681408828670317997905759081373782058882480133297293852842232301684640682090404872675041692808074343593621146345553949314028311942524523195068552302630356879781185210164168411908810570518317263857433102728614079302749739025759203141371724681573524203930132895767644140725031975588075491189093549404105913302228751657283149644331265420509430541275114866219480682414362794422976565643192959211993410729987895145576611162864852672426728736611639038472308552171905705956482840226263975271267781195405937217577640204444171150943881821619206154043053902512549628163100294697485778416634231699057412273143732718319107057897958666274207719042729328081479112207450020659246680417490614133239850304968986371299733341005104404283154975029744678999095406387963567570087180679033610234936786715785963868044677327780643601989259425487055766739329348931204222443281979986682422469420470584963399342537788859275797447563256216708146861808704011169879202354168717364093813775839176178052542402522148729091134031523691248472941281694208525738114967525499072660719794639126004713563797643098188901143536048543871499464548831145191277323154005158524470012809348076482399126363326550059796414533519613509618440820480300252813683826439442070129502444772396546199855027904094700005153548144474143987619799049781187473745341444384019487551379491896723010676754817413671192550318401169467575994932172007865712206713715889198776301496039902280392667970034585903470817222960534713421453871059100131328565336650124850537514642063284802498769070042273784207586989710219248600682907481300643078164439080245680465041660642111085558626676895293073155334717478082979259111125232985271644116387925285816180425395641372097232599172815171185687210302779478055841873357562105679015828314896678561487497082167042043667412911433091808550756951114939659197745054809325145510838394101517568014300906904620514811770197849785698005146493662694818558464316627020955508965542213854895031075164264806798988677809949113324946745362950832952454151424628783270345724270475124782111976497490551578004739943781037840499127265817607489025244738692356817606603874030017662221774177099739705613218893036546857448519174637749479049049448426073996169168916072417714015532779371813936236240611039494624000464505299152295541914694484943282977145728714163338749516770856499946024494346248697930578439026555523880911432597344500455936543519627032594785901915855868631087725438313312316345360184131086413236858088399817198698900476239935594694324612946888930646689068860372435580687167021701863857809649718955893982515237857192921230412145767728034605187035949918644273730226958897474549861285941271940562104343779861212936211148514838927938839049933000915043911416484370372593112813945710864324394923077029884442879276403918690727608415441753369131232467012858430526752637652794934420651976240648150420478497840536182787892115320236366298165892006037322433393663160386258304891786069481390399521865138765589996402406514253968176392763962575585851662044967856491780920005185206417589876262125651653665058481832911415344616580694591662465860609032162760569916318937609926306302741604250690929985382504360829056085145213444252956909032287398145588967719522321959447172182156874763947245495312353249137902001730902522768805237673163307650831258287565718516755775349528084424376465188997558021684129535550947032661514425441228125958763861791355569921184246005180566622128502076016395044914685099781261938197118715994862087348924439835115331431847073945273008187546094754455475367593995523392467565358414837144388137496098054983329770301618328456525986328248700385637022810394683779716390401995052853517757960318551740150138197454581450577824726003501283401253946092471415126869315992943286719565337149147968617073915586685895992271000396312611455443734817302361732629691417646475073078934465643496962869122576030474326353320499552932321629098786349232210696256005046667701398870877996761543979017916272183022589451492492484850445536158135777624848950300145508141045408415552181046595754737209256640810167110259866885589325544010834519803645498061256534556248518359260049369460138190423923816009981111925840574729950801376927821968691816170553328965765879297734914079500332921907310284728798336559337312972273738338946080985908933079728712491712026403550588020248726539701204073400358887338845078572603956514050782076163424916635064842830066077068391932094863295008358016877809202161136979227602180559977967996556419206939924672058007924618036314959868390566338835365224495199820856680800304348563771966971093366634076310009933446542548137020786409493260832158706984145684065660961997536682375862030892800691559085540221711224083143929038269324472543487396732298325294959238563797997902169260833062297452755972470877764902292685879350475979331647511633395349366171512372464639398624832885002112618808044471586402162623681765770326370931802040551521445301839059089487614497053492147416608525478395013381468275840051089790305645979191083311538735950635947805504114174178421083585800736975072466839551298493359903599400175580309958047364586068326543558691861699056779004786772209795793815430987787155610573510312338231216482950755242023049415587796056747226447498818117942894836669319578703828635892482336168031780119786905638527238308444358239987728160630511098210324127381596719914696760674395643115234599881587095630275946355621798033170525978968443084965165108947444480880016779196388836568952847692375456900052466602174717248689946031907736934209009604621566967625201765892556523734305646453589159453425571940281275662150261417274743393130966701122492525906114783332659096480383563304517169572186134091279744549156077282987643720215938581268342032500927865193893733196606697603390079751296173554582330797475760534146967675909014195587697731063082138002386806693491705006518793073904841772918910696698191425421763837427294691949337518849785740547589167405158866032362295513136142684876330659290441261404712959197960407888159876351204769831645189762694393821008244809540872467598419915152230638944078292728515728679759259477694790518872736546730485447859662257283158137378722052087846174523664480386181322961485502710489717577908998342071494822237328581427804441051522820528219426092605148750740809050138105657076805742804842123686671939480109041392532305225321870128582703041107032188308403840611713409540615835193238101761646521368261492919239039158990106240760452067850822786020534045054748754080625727127762961274672501340799006497482179150484404159369980113699396707055260611061459039086528562670602689699825948404864247743237461612280121489274786736786562255097443561498696737970342420123911831488780465946362351952346375079151226621763860831945889495461087094610969264835695627881390895705757127619392533357337791266009144096746929778223441582340851973507488801348312086357726146482042056635309162075833493097076323964592566768965389777728249948348309748542052130038734976066641496521197628447886303647505849083803420223458615540951424502635225468181168805621469121151359477402309668837907087443010655383353900567548904161519241496489609785525242126096604842414855831274630838865362771631063931393595845058822152592981423602044404794175831816225807251021372240505265195327207711551693072222443948241159470452962299384980175364641181762553396756321910924252640574007488170108428904135775432460959286811752366081734672354152025065144371411950565450336179036862857767714178273424889720864234938057945189268659669367692369139172102497713406502136169289429409669612334557922653762567431256426967622967556319437536776154571439230547394533993955958199908615627474681367019473374970725320165884156087801633837736066903867559236910675119859096290661646834940481790526968197469893097625195186166680134641327024855298752082159417664627839658211775379103114912123806714090632389571409051718889483019515943305676211239816426490048698416867950806910884698294740974662138903481037195581405929843062068845180130002262609387789489641511850194080733642464669607781621550751361225194775139863688603331547070069636342700029447658264174431596396392000316967535172470705354606855164700321507085051399918777138598011595282886809854466893556119795424487247648239426495349322256227195845176171326853024038106139387135940753014205265549434465475532413399877433847266107404558813283628126880096354650277054532901098639802495815652415574269658386159458020088527123613504916754160093066923448798197326740813634986169035970497512556487749678196332306804449610698046358327777717193302655698427364893592784513984035107738739237080020999011415933156189316697445368534475729101331953404237332128802533305036876301331281336384148785228114422521311689967334819616443922173601350695598654590426166506710305734563080168834694402816653911822928014293959675412454707988662518280915318225924918810077338675646190757372208804475284710013031705072882083097395421643476583865803264209263278572801130446504896034744494523296552250594089664214635798778577378614779704550527993859232254105568382427336403583579396558726710081436637263362658745138170687211129852923791180496057430540149216357161866451639003472491883244761650420311695666584717697681966615755355453921413330543799838060037329468563296979509713308225476648225048997253890233055042115188960540604410782582294437328012420228360972449715275924732850926735070444047421598197468312231411076219136074226112652873228987830398761181780430184356584347988922062290730941660457652095175171372308839775706716931633712572173867882426352666991800095510663637871916485230199889227734716954131093335532766165739753772843326691871915430287946950183549525098099103366250782978082906039712629341587222824154519464682767795362107268232829945814887589668142251616773077063175206320383955060180030499350257880937095463858343368852425745357847244942744615171080320323402615795628096361989891211216065211807548440816043658418097927979152858983453151739974356670114237212834337206995645751063147341680200704855789077035456365547897668807470748718480155766343969953595200093233962992912135002686845044635724400841349370958426704818396631930336231158357940198110054639841436122246698778019615896664940075281277485316407044270693408770126524095179680863769886787332037239076624552393695303230620079558007707678748467062964353506639355032735126759497124990153721666402478543966034699542913085040299939945377803617057888736498873885172618679760572868706980076014579447400552018609397385711870582261355898636206456620176421837253103818885426799274804783447901434656166055615847522794074126537804238679046367112809115226818921990321123204044929445344147104431932316364546319835151255674864183050504494140284001816729651790210660026194924445733154551538530469407753000911017756897659635357944311956467478005765054675670363250652278282819145797709488681743581916024657979238136167285975084529307940153067264194300978909955816650001564768738413785905832960123298179784865711290760435813715030270344976341386124915181477505707467069120342505774578388588429636715664233526093725559180542710586793962265763104149619692703772826355166255330794595471966240210727917638553286880967019607937523471250765859352095146605852598764584626475270703699710197257812397105829596944356415986368917140409425467821198824826500530572012685921730998606454818596320091800342804004969820072858960843207427942733553890768511183280065041019608505169378635909064619222619911270371244673740238498687345834255234834026742479277803283237148732898229814582031892475878206699588790742179618912250847423678643071491904161055874920848296466736713700518669918686030090192777913045080028705926301994472017740391751044772347514529857129697603276836255507269501769037707621175856510243839992665194421621720600636257810840101180276543384915846264484520919118384171878485750900289587007706093189116741424044537614944792762336560971132649293054394827181363737201799729621891414234074737126808577392521971479423575765736020961015236814001704107330525228250672153086915314657748843896945115201275815703789457527482515595518911204988471387376059551211512093152982824191726408364172831590267469481961208435964612120951501945791336828098517195657123875071703677416378615840868396350936514326446166740180943319705521908622821162496540313865431932296488613165407778332056473570078120953095307798584488966068182336559577213340084720139374940528218841875421550223027674771999427955344978032223659045518450965031688059173705692228132402067380098426191879053985298537908959235322372034055475517176349185412882636219969322908711037581216378274477532864150674227505352374948659468558673537018777562617560785939862999842171977545521273881992838473419135417387055889897583918583847295771181404984505043405294891503843155828822083938089097440635143253488679026984176536163379277862103786091851393364618193250983066509393361158310602313759227540869197143301624678001562613636723448106614054113640202126893383716784902887127932761080638010293799842379835840139865157954033670188542860980959978390371074064950478388530772422561256403168102917583250564135189264331241765342928478512834453551132761316585766007332138460790145350443938094309969396263606362518867782497864981489469354699586787522621158476223747906519924135238582134698432170150335058064179130219987242768538396250721751281863223836922988793685071512437727147417669860848886743692515485843048227852143053212726552091155330967490697138815498147595355687993286773336263300607558158252828062766938938098306595791427797400564203666921856003368622671415301139931962150113670263085977389016811933407692975487947094634145153759272801017118498259157812551912365444960653360811167958291376423282629283297004511331597597446525454156030950707389329507747396029334927475503592017677322973573448844293329953657403490129694566503935789805344770284017156675341226239097278167933907373505513405872301951596355074591437148948085641034772486947615360541680636459859820656999402652076339515448575474119478410842247649306400375656006420820934703812727060313395766258226300742054851922057146729709715180995466942643552050193072381813024834911856063739213230884505741615433085340919542184731639127220728146937485370392739347510887629103609002953569253153724252215306464570132413619055750888433782864592327191784316999604127869491652547589892835940395494066430579282072030293014732700246930076232477393617847419659280110919796435367586325773775538366189194078361999582684748683000275137063675745952888657650527183680481317422050636894446425809882581912620298125275408897376884195741730934748572182983839388146685036916212581491103469273278945232226915636001708574243956814140372404375036631390779750847369605369971223113914060525608983887621969301612105507228194666788617087430384313731826509536703357564950340408553585165836114830053007628499194437157486150721775997565926626738769902771399511058439077465225803638453127982082101129230291661974765155306490507541017559385948832762991596193360348757189454528472736986303493802559383847056078689245998051349501191919457179638584160147903612740307326085657333468960199567552267684798750134415721231517746985040828502232011964178331245713524941034958541299893513702264842947487557372623337162788979493132084616351564824716609392027886123694222135382849623598987746358769201698432174766503234738210909978951395722639794261907765475004084471058505788544439107498845736728469061469633649449107396011462549305532503974503377434140952904234393155108732467926259587743100205620394791306942515148530378573124223004555653819439674409002549951279104873049172548345899901604288467219534188568788191118465167867200733608576248876614551128521332584915762670606455126379932227052136758452873905671295507347911537300184647527184098296828054311177584827940881889463320154688047074435170666503044947092900975164919736742273919322679027412055971480428391680377783359721895008092318525977252109286729271745935607381518326018490343936666592624657218293264650848541520341809941464489188171148438062317583097238424119085786567543927692588535949873104472700804847397762219555447607499652402242584367359799423652971094817594358667403716564145291026861220371137021279020310483190400681613282604847648537252609056020523479658057395992193214336764606233347210412316327990402224417239643185174821029798788917944346903824573505832546322882470389398000636399041865155845539089069404902526216812104456293890740091105173087336629741366668613313030692853349200237338988201030450831046987641528713705547090980884204602658626251243229230028643461674578332564485571877210078572277303059558035210077300074206284906773358422646646788022252722155737824434437308576185214464865042098759343084761131697679262401558447029593720189847352436170594727544543180869762015807457357586336542881611277986852057271777712189842740641285703931557487280807083129383762196300212635584036914535581876572009081113843963752539111681736734691913907869153853640243066333395543324846718543147234205462053692440958029132559316043256964820827251332540815730478502688793319552675228130862297814904383215279624348124302230585067842387632865394375850497639069256725540217087391269031775188409278068066639801639300731091264052389619908800188126686501639586935117172979896726231565573889638385061621298963635494366915266629076506670656842331558010887028249630856327961435386934587740039675728292944887991157894218935321533240904370018144940501644665072432172909788365480749392594543288370147977977200971284239333118112168459859162012705633158156502566180428702998867257660991184931962067321085715107566865284347964611953513893748095969393129194824440036237879455454797278367940500917030289885086304855144985540492407497471122608912007390535730104635051852488165258582290761673579166319469884188663947567393920847946154377910863851598792960836992302379261910869224164013295451770085746635978263951584765743909708822455213663011298221283395521063564681362631496611992921699282738256968298845467885860222011953361709718943369520535997515187489897682789711245973706045778801248056044362081476008795253023866845504407141788698086467277319715036199463397854470088182525439457612294166991139680781305544329626101499657428838805295028945081706785939674345612578354275183091227818622411047349996520444772093326688454629458328311637954629065151123686686721499125483166965876686181399247260334616470273798304968131162919023964533646107013435095040256928965049696510795385951782401594270081861726003351848820035539939389199544024673877872502036172359332752898212214505453734068148726203557214257147353707871371362835024800438139326889391491555285104485161988024337404776041617042437155543833240561365038317805689504284568860547640337689059148967474411280473075900192689915281696350533470754761378790279656685238655049692582716136544884064814529844404788238771688008307647015336198631205316488541828846205385679118376876558105839137884885441405735213647827617638429238088965024090065207552345378082435777777873127241802754868642686390520472695320256057061069882658539844123626869588137365507411223245119389867208197239462623490596483767131916335750255140513527329560963169026786456241851352334770869165808740054994955901578634586926095084627376090691080740106747944304853514667954012358833112054150506324454594114670246126357857000050360027183405439775279908262928782153559614592367637334178589519416168472425529217991917603887894270487027179212960078824102982646095953219279524802130864459983039996211468892287143512758622843668352853343994286235854793048233829268936463090989752207735034550487729726710207348634386277512377186171255472013137290240022831077053191447139926716638647280191538887519518382466081248836293896702740259602228077997160916837119821546488953526828997520216028352185002936438635602865327409728717346685874495344972744364826007620138760259584457947343596005514408860214829986098265039076963845136187712455924637317408579116375384726866741278064872463897605450912438414037733792525758327229956668529681657921281608428046746373069772326682391645238990496804538438440053537524364204288864826322266639282560770372467635641910523011683079731377037817518998959603529996979638501687880929987112492071898585127282001759151934259647345883732101838846184894028232366226884754056980666088246934546201805170811909171153598146341302923760139789364189927942368070050124729856858012029239542853375493534572374904986109294544054679521809995816356019040008265993310026439575906577016197611822198252095667348814462844148077907735986012356036527571633010344905689873100841508385977806667707544879700523210752054397451013438282605813754861752897720615779549133623841071973451998087448985389860707903427251190074504176888115918092765373800984946939346711585466642868551250145081346577724161694687571263949077126918415117724620406027951739708203240665059939565879638182236995372374703892417174021706231109868447446253376174629786538616827087939049288310171185745915856415886583745008066000434619803649132946018201270575163210166436312717473418604582706156987346619370394549602755090416595336865503064810252892851589131404240190004094183012755219410274642435934719939115129268782782611670939884218037326270583257099233423638834353443940305371563064304568923864893007214481191170585242370331604916835145301896934256651645433810774272449545464002228147636238543326417439624203052056860574281448894570140122139764098112143800209002066585532958476319605708501585595307725926514437882748816473556786410753654413157527937936694381715818578054095118858992640673444100848289031037740226213914848494308465730552974268431571583079011959122832012946131246192299905968472960309449252628844388873276390432447136645777572676969151961858177594907972928692653715919911205428970348179242245490261030939330559279944180918833800380819153204620819322381887466241343465100732598450988236200977910782788635305231712547648053489571077301083840666967139596925294111587890436510332941739161160138823051857803593863253597414228201288965445340918183028840762233187171436946289610408948621196835022992981257247414799041673610263512039075277820462154179421607240393219484346736081179724521489309461807458992013520829656686442208029636124718401336718163534299156623955900303849500806934728434420641857794710718390693991773603369624358000571352435100492866901887734585885698680788734692082218249101519880353351884630004159728474655987233201882605703843074440057753926859893271900833071924431479376256584457721633254576218806158065618503535383947251096582683271976963965474185894013375086129488317144578647954001153542964834088335167560435714181317924031568507791204092722671319138491616533486256064888415453056802160405044252608285771535596294457514177788229262469825397946016779439506059649625926189884881330608662368691992567881943105861946571254689313255800146090394663067798558466823699581658373780885097205859219230720569519338246968053286557752826798761360819973461870399504103075281158725362818137996457333896373842050699033896142683026711442452702160648757286949759220853573105329232624554182184604793583892912050141384861136459129023259393276416637318057193680807635423183627591442667294037602017241411415399789129351996620140674783133085058055421574084323917880041650691466960815886079272649587054540268878942363097737604658689906970502444633265775655118995961599619629538854576784110820017843478312986844993295163859105606254823678731986595440856848281430581024932571638141796672699881488166574041300905524221442207627505955693937371762514681416311220080781823858165371621881658997079957150075143722350902774475181371550094083076355127340064594780178740620409807978273601253183138201441040406369650678918320362477498525722276679606285357513679220495411814559398991684077365131216716241642525347999919948425300917619257816358960548886989020143384521053951172665556997920410810880651113798657790412098963605913552504707574566200551016484079296602740255797153051101974073874126390570515592525806808164390026632089545252220057446450374209762650499791123634942797957770693560842418468718588119819287705891413083859475455205507139211355070784148287634795721528767900515887582281042799520796511433711428720258886162080501178694198058727896677997704367884324363592181962236079986603270452565894945805255506296748317689599299063128730110165016371987093365961235813705719393603430892837560605335499682292514318167577040193234675203660616864240387989448741997435083556966586033830070140809286034322282384588962467615732935104152258542586201219858651501658435502834582727122421503146591664793979776779222714994606631600481136707330277633902291983096274423154801633596700935215261731835974394437098741556414598790856413275694753476164301725533528381034012408632995923900298072618107036274067027804053289078155773283784511936357277791067588827685961472143187910029352135588442220569237506333610310560866557873783136688666117648154571568556502540288857915930082207461261041939476397540441693931064109664705069785949205715288713994279848724784436899850511082493555932629518458098254107733816920440465269468789231929841006367972225976064258543949524238915359687947691346818329392579224597290876707623832170716623500454324500981489690833724253700413821641060122842973917049950506901568904773006356768624733614193270850637467406960447492159544595647631196541431043807228170968532280538595585955248764237338591876394153117342467738467754071149860629385440040885836469431970935209643779008704677943859710815402045787233337970369222866994734830162249088010826772864449719122170892682455937979324779329746151208716918738087815387142915004864570513388654852978300278044252779579254081851150302629038565428660498106693336855238293974214053390876033621410693337796277954838502204437438558499597883440316523258693970535396904329623053455169328464964915895311963189117675800166856709450836986309630727049548287891319703566419502995094096127786794792325673394507671132986817149453984553448980061061821929619289791445614306000735955321707203004285597892721435460986027186828485839747574712365237063926473041993338441644873660318022902930475061795947645000404387902801086880085566840284393303538813910498234319202568000558331355229444226421287441888847511180526848246982255153139534939321827661834061681852787262495825465360905909680433016675025184195115278591086955769149680254369437095336081103178577764148578173455941817876740216244212727940389414926851888181494419663561698655048533108285671922828078959324254393860792275128596557831571708459185935167886163653782561195095915775389482170124091062299832946703576534986699348044007783003045726960390418783032016987411777886945431110893934678698198922539809503803208070172047709497929927215873484231838309743997289621917036895065480071911832754141171329035564659585506191962681157892503690324008623572042312653448472673294691445517918941009491922548842427411797618922272002822287916294758802528674046156471204886795327783940926547317689927613559449692598650189573186757858767140183840101171135730954102412541152598447648548697526670261832477897998158100370401741834884660485233355977864540580572141176850584948580562898915359084631102457063849457479546365434472685426540651763576835897871516325493784217146288836091497259991103890855652351263915047754920291157672575181456111983426307594195240521404082180963070458526233703121183586404380164764809827289357021608390049126498437866372536482520616250478298181265963236516440421532685833986683438445181569217833352220950574569596533175438371667771133378226333465333247979812714075102653379001189161910269824900886267469579622470070399082102457796903399624146590098218616435325051838554046037841319879491654159480122029712707933957178935607877571908706046627611690901156311503452787339193117640390255058182853020598334278119486157806508367791837682616998278355672223974189168999165905425863965837175325662807314801087144579877367371404086277962630221416579235934800716642636346016658770005339250127962242900338276552167310766072252232834355810905566773920116244343223974707410850543861807681374054062155709281993224309509107215646008967049311197148277615621169747776656281136162040092296043333162411687331334029455920566059555294264509871292649176439629655731575798694644211238948050933275567423340349775563940207187645992402294392571701323940019374530937918700670535337750371511233564160085945013037035144207372022983273724190324533499860632493749738881950552127573763670707438880483968174876608652480675432069063026688109255034478125413067546078011254961367823995849431766620275242994795653004759936630130837384570738490929125167655353411032735661452998615199495366203275536783078150957592601641893408629126994449348395605266931154905201338832739988531338149810819612778003604016403615707659428841411623158123136336002499892649440286842753656957485253613473320448064354072692346510576738657398648142972459012746954669071266657496718689676903077220348469736757589665862088020965871038041937817639671565832627051579206298039283103235537154801013820867477724511000931089388973605414269075985185585047834323399352566578702920609687940265593174638581203708705727157911241008813703607037156674505635452813939105126989760841468686045431508874305557631851761178527615698342680671054208169163299379265282759577873103702879739893801076204876692490465996416476220053821300352099047523050045226452379780498773246081520480170692076223170817956758374049491037804738363907632660418990090071047497297000831541888977253628966240099541272583080335556516174040120444812222174600657981618186818812620625251491763026698943638391905744390421762813069747306489539095301383938829960398502514768065944423112019510395282124569663879338527711825093108348136889801732360641497564225696792970611809708583113581379780867791408191080365903212194446866983769791450365792411613695832507573200321102754901767228303247539461324193826282371682502507493083726141445228418346126096228682670958669824553222456576651163452559257074028973765232530147743665483153128981969232617031102272609674868240974163888742037672250425441118723969630020312584623088816013923261384950683703183917582632955843652547712555209884511036507133257008932439231560831101427582016853565142349981045788058258816853317303009736600790467364683559030889555559522301117079349400324987275023594950476818275569709984392379734064091913643565204149764179903992005830303110955691860179461090947394292311412214147595066687423067539212328137757819001209266299352665424059843957464594472258483447134306655722580828165007079540884894165921763154368307309646622519540569980945101644500126207380265490667444363206457229055976926257270180135630078635954162521488124584578030344426791762586277377786237931616172398434136263538647432634436076220157879141987369985713889554365266947344691838388103282056982030649626228493094254033126220389844702737415374344943436597370434969773705821107279198905385912291333919871828919196460494561762981749766719906065257682692178461136860118535976294856852257892703418428205395940306339396447464347953606277843555252232778439657219999740046513397966173452196344917679910191229533067281575452631760742335713536661281659073757174020174322552956346386809434309257255445204504785446664440955120844123990763343717679561952935682550234596328635061146097716021797213003360419343429212768843502782445312615412362035940870883957262568723313233341862591537653274839886176345281092763149394247722039837588905261230303834998048880618328399277852188975660833246372965241696553272050632746234284443014299251780863869793936398522269333717576526630225036684460545239361504925684472638553436047360723858987306489506191644493897779960018669451283153138901909698350072299543191741160028354639953255593524443590654030612768673526929973273351418923037206693601322936091912723369722367378342099112847152247396194000661580734199209769918474718630175976930283478737493022746099379700738227875314175838528688741747112527995740413763421980124873087124188491113473748085960908874063442547949466308330227028773443602118055636933246481973356728620285426322050342392198364097145900211892721485656740176283765520485635727479825274788561843427062798111575577388725857151257543818440905192789839357924038489631660393240497292128000517132696832770276043888990045173456328527386446733502797432998361627036325878342613265431430967379333037087075339028902174030077988051519126665882453226354583718837488611056323738182754754134021541095686715140280155898015657430740808016013393498364630120041235807301447550547257801135895501579436666107210780009842917028529759426204782839999489243160178154438917228508340556141156155680598938090708488658492025849828993889707851163437259333561202065773192471726162072080805654943197743173198288534369889689996596513187982620335113117598813995118553756148293241260500347787232471723211537724991871700392224425392943956835443533633971960291697751646600107357234662831491545827333359891618052333032548183532242716641020515729003361694214663947604294384016795437657490674219112164435109886311667960224523961914381910016987540880100642018228299408140513461783991460986087840883987718218765704296657979641670983003230720328873080191450172944135375235325463121951249295015847404938426292441970394431376590473578712251438131876186064957862826609983254154551087009426608604304180058198775661588574436588221815173098941688467555083132839024660665722197766601351003398007306639510142988417853500411560139401027880406807102018860176234578481966808759143871996124205064719943528169648454163137907247496015404994516588511654732062752938483828901193218874825198351332575619218699119094718363724831617322459825678901749892338557909937699104873478081129165922235276870845282892896243740856115308521631349195867732505292636368198255790906892780592896848408808158187328326811558523571233153291189037129796367863118933364624964649645321162694672339113483741670036034772503794040750723229553272036317333905809148967544172893048210228141676837406582208493867022659604314396202802088664835655553235171631177294401174485521660625742279909264217873610614635945641093686507050807078090784347777972814113114079131108678118017765043494961109642175499776744218815407609976862969816294516708250840763013424650508653545173713870152817339899154965893322602444672705695261165071525836712023224721372069410497237355480088976046001509862923050036984951126482246576970368592617732415860086073678187306298764249690311248120635392562364926085933393290801202617406420634247743111724892786864912070061029751939868057583826614065884049116767632094394167947309089976950952822303136170999531710537663932392327629161270879586940792745234729640566422517299696150019899196455437387720433119917633665624084700610764776360020921302710910655817189852111380304696140418512915193621842303745114423603167314767714452482064381636239153659857879139485356306241307300967674425427817277199829100416549402679293097502095704712364806039413232566685963805107016911584153283294833820670414808492563265120222214516379268133368931778582884600410401708165601149931337958376486539804490233593438895947033229970108191806613712948912130994650577301693478302423226781658519469270042811108071842278340558638554583224915484267758417976240367992634486374493912437942546241865481213125199971504123234678280602789929509624459878647673226472854378275680854682078281970696832423262511326184982496707970983863294997216519077570489634120701495839812974598877759923586888139544430252603703522769887553088315214218314444423973474959058884117086906118245818591402443587415548603946656491412521921479575713002836054123819038186491655965468924058721449737717407221021904659696057889666115954964894407532517913685389878664863911648315617986580934906969084017239669822395432398949509938423287796851491926855161779587063110867445376472732885546894924451312527165445737620208125859777902294326703907628131112488926079246650034964945350409676001717713430860390530151061918830251057186582626211842817729167024652081270585004337192443443730012927690245219235969284081266619642882023061302704446391338903259801061319165253046713081584479573364014136735494114765902916111646067464168868419746523428137632394248612791153931117776542989588050237966935253293702093202062423929887792808859355872208129940698193063288568676901925780182488658777760203261300303613322987947027458151205737954212113209050940948448573794762796325271734032920816005153593632581854986132424394625759311120503880443509740756229431139948624908304740877144216518992811325797916224518877077237505763837584441072319386679878347300455499482426011686753201647623163548353452067496950736599516305708006811222342686139003942405833415134266826913501312356472295418816097859330527398264909846859796450442000254572382334791839384051001954895565190075551491593186494767799610826813962171312185654101123429562774145144079808349044304441402433904303610676841331076516948299875232816280976532034613337360697457137357561811203413868678953231633243085748169296503378235691025357098958332704887018182575763035973373171085339393944399751397764968260439110623063664259365412498343147064113804291858087493430640010893633031227811907254461154549416427076718118204584961624345727302648003128354242511497217606463418729386576247737749930725813902352596565276156980007064883369798810826390974706784604298075197279361668173744642097171324410471373647488992757487063155430566270355168564647215956486462320239492100388348259608938426077088872669773506447396993305838223057651932456594728289086668225362726851144424761540432640967345187331772253400530754005716201906723970633194550275055889666190823840279923808159057761866391641795644273223367035534021535929760156975962349039014285354780793203059667376333197729609570741957684250861722508459743811759596832078798354388384594225089081621528394405949544205056779311062836247412743568454527787918815646808937761903013648968162215040330271138041402341870495758198556141464106052065249783742012866422840343784441117726624853481085932241935043435529900471914938150189426286060985566668857300633070436372650197802954639654748885697061885990023122625351685113590816985673292106368586043005310658740109100679105479021540978422389577107040666387983087780604567293855581634877196842102800804039141522697096371890071401975280992404184252504053835446014296910126356229981064633967981024583832710017268773957659643318500856989499601434143601055028662700779034846448017050121170413749616055595359001520234873246227649181497316548918377745110138140623779911715274002055721924291528133102032255986336256549427091893314029400970091455034787685657523790440827106506508422547512072551466740525531275734217763209831604458234897918092965604512962009769013057614264953366567597169330299194817062463064143226846457302266126194715608855918313617852344041251873640781517061455808389762455961313599097102340942818366907905803221452536255007726038523127274504361088631583963920272511307270525708556142808680570868039018793848727866681565346350725590171006128060439137015665297463567671657016752163936976517583165230321747303182812530386196752789919693570426162424381061024765535790361310922235116447398914925394174938452737318746254601121925724545547162795487254458510027224317391488697520764031652068938656982086592695458044584706446911709316813914120763063874007867507883808381332373456686092559375675865240554095858757867600844769011058275733736529413329747595481283526126371927693996142039613965292072552183159906976812420414820067453900032737921370841228075441916257113670360760849796518923231556698851030995337043397556277876749414512572699010397207560450108254608774401862441114107302358482525367009751814295819489945512215512703720571285609396042679922605179945230674852580298200653097087232157397063425748717102230534522932985324987535064442353232869326514104121179227160911365015630068207559699435591636130102310928084600711752542905076901173145460613872941763218491245246558397122263501786182462799906683949175075899469757641958616549599908067605193779498066165270025382228046782107973405066358506261383211287945202964178586745582372713289999494660672042828098626605962352908663980654702166728161085766994355869869359242093209395286678730939955565961247734301244324685159891928520154752161662575816557412433534380661822960578833329169373882790714621645087865590223284814860245767226948637027804395039119923305097900945710762669251621289172029996969486216534467549835606394490357899935083469859002637699828560528614028031552979705079173350674484811640058722829372851168500819316775511950759416079286660492110313847795569258250679185319634809558054445873261865854992065188717176369593202006674365927830547488922064974487985600737421333662493528400357423439968159263916407781068333005704789215282869536455023261971620060407371414878745544359322708272553290468784912719940208636535662329768702388418763943590482588226722450106276718656555566541328935264640105428367642387970101330971519924062113345230908361941221708206667283501733351586456740063330984865525160848675243899099478547956855710889273179870302940457943208061274275275091295346897437963670738477651759029294612616581309226447504360506683013194317925371091749882730135691034074870743053673730748985357275707050410559066880187529557844952850074259670648089570648986252778372495756167747326372628775475221911169562778353197566981208538067860861360075050827957241510570451095934675352674942476674203139464137736535738656299279417946084932034312829918329908649642577578811801593881710075513032379024954691529948546695096724240318489972087984224550016399618929597794738307765785961622970598744878687200778667460468375858963341203410470154120916281287675211547255884100365996798376407958500696598461237195625017155188774136163891243254943438065251495368454556419178873006379871367879917028864380869686103548516205137200430550904795979446041985525227279628340485761443746294853894991750464117679545989044143863044323283114435333472433453988239545679965251736589008887744393314144624634989730897046360235314039355002574889901935242540303350374895837227694584649828416201932728803519531518148911894886029735359451192126581482580607013202629687529944019235536247400709787284393957814935715474414197243202571450610530190470679664253222398496560395800250902500056663483226809948206430115975892824189101956739143970280219885554044575037059888799445369150024737838035507268267573410950221407541647469774038759058417875271596816510880778473316622939315903043308614434447789347633760490239652657757858865660878173945606783148828052944477030153028307256656150045831290164462020677634853927415846896539960820985968636291774068778001771051302387852875483921167833621937472031626160373428180579079549322899583675215194249380692790535129519842846037467674657639923313406389918024774365942996706777311170071509810063036863045065301844064279485476369024375903674237840975328482300123151459306290196587537282830427127355951827521766377018514798629831570838317468804908960861819854348306051330885937510921816786372078393621632874853944089893748575919834410469730538707841246740587795353329735247418444630540884882299495503258122163215465509983329867085905563203102712772515782487392833771252713751670406667549551621161562719425174204392116982843790677303099472758566312030903764059032009596238797756330507425899859039339713740019468805918991732557290288359625369958455807544839142850168904203670696013395356107131158392117024704570918818254611364804302702697978265034297841598752728246727118544152495984634541900808668391017618035932035266035173599084974860104337504331750739697288200917493142645696957181995652133386473267111326065565064877344118817687362218661323999823726127763310472159100762715416102193667433021284274374437781760954496247115200321132128347416198745307561094283300850493823733075612263631600852374769198875324341159487181611590383387018313186321930472047717954071183694291097569964648074466004187879038366224305147464723847668890968823012698714886541278639909520705635984078592114651651201774953637631728267996116598760857506555340753125424658013241885719509605843422302093363074011663468954065380604992383225682133248704941165108689779471647096191845400596557556641258192127723949001130075094448780462622216355823400001997171675274324536872204231148627931259895503291952147850465401191455565107063541972285553952726379652348717525460496238403390505368361203311750592169447207951957686954715497538888059409449689800276802417372573359037071977939062965603636276496639182872944462418669662531663762663423382093224690374086176221909591905346815484277639571564768737013053943544721313351201000762086255693252357767944257434700694266070066068699279910084915519553468285195283069387526158243767839098909314551273963569742155841412893038584261785488162640683523152428827609343683888920594236540096142527547605848130265656395761142118045217946695801299684769530577311952251833200406053240219434170235613269994218730148125327941550050813260445950012400962054692885245143171629493683043800358878819986222441403376561310837279404903489590910125801173601031342958478835105744587174210640392214315117816953631912880432795131617595383807426448108460651025024771777241408421723890275310727079939890999625793192387346427235170037402388488824229480708850430373708948141551058263506354708078217010958809459052268037512715890699687674081899537042189952800480933432849818966688932040495517039465787268317002650388819697513583806188849137128398633302959374359078607769296584828390396060550679216975158634904365170022078402819492312846556815155290002471059203658631122422399373436390149940592958610464705692089026464323871040344243035652404288708116686646806834036813929863040544540962936712144332647920004918922244007396753767219292829772655946857254324891962729700476014445616339761120017343807048201835453234512577078656357024085833356705714246619756313663993778142324147457378817812159975757489456562660333954057921951238966829200426682230398061300094019478539469305073007399746574703679483949101058231509976397806891995644184085124798927140492175915085576276357254064972491237799216329665184617414344831069515169088054896361177965198761930487317467663314632611528618096190228572676606376852918596657773504290441585833945155331093270016984284430256720260291134810887906762023118789487503166082867550060617300442118982416614395605032746539466534084789756015366310300568656272796883423739870039214122930764745271652297192167437729546318434218181674418449824883475838422057865547247510830698026784600409532465786111685773613299936027579002474938566727030715833629151600225889415245436179645017125436014004984086083692159133789000591711546740276575383685998973235848852262897918058942818626996300954606045279684446086113589465220488294284208161138615444523037731092826955519953483947324205629146775403356267029343788132405238799196011093667336553959992636585696467206371435138869832252623541946632386445534513340620322411516742077829239744942058277599973126257007382668417822436160626299218046691963437490645083393052814498959933500735665326795385142280501572147184898993203933449105895001202514497684637140804888673819272123541974802019470544374373086230022298217155395269137911107805651735139230694997521849771649535163910083305235675130237950631994273284448643942877583297618427001485695488408792595084802465097452603579891980799125206768477513463028466426875052240768733118084525665801049354867046912586476328863184816421325983323785730713441241614698127292121680703995310905560195864478502743724757294631694539538991543459031662908752326795899209643959657830657959057025223140725262042193662207645496404851183937478145803645157620568214277943753307096375136706263915147081775717817129803304612803991417948308703070026130733530740727921720033910907581362581647798384026699814087261101698641132055576237164298791643473023527314741904575365032076540222091645347614517743733948042002930760061715000396685810026136934848175039284649272479614534735338319838796667060914389066785798309002589555524922385532894823764245317499455128621092998307268414706834537875816023275304372499317882675652266587079647623435774465849467423697750119065978383979180554721831764912926640702463907245011576698146150864455252985258662611568065373414083952681817819487887668580994354691176812890205225204697320312640962647609109912769824365091992941526897107642532441799223116623041802274985679647862870511986129009573366477286871034064817172029351523307906815448309501744731867755570954741709751074486353437580787573490205147679439491523946373347371790269330637923437791094572793070006478669077324228920949531771255143979592722038475461744080107202882559725640075160949973178068068104711453882246586754924767676904619241866333536872655528307383843566802619065076589058527224750831374864292324264753269808741077831777021764684999465216492867151793327339950394690431002971819809375683327829210686837723388175006848541050194998301116662782121789860429846893237985654127375469482554125797411707417314055668015243261316488431210641577336329630998633009090415527960515107826809208743573079304866247480300035468010505887941702174403845350438659465907044020506795229012650263021721170680187268636119722486543142119988003407704333780177640297610559720417117973863239597208551211085710606821380229250526507962025670336844827400714771953615227819880612640960989359028008245684057727643105833513617944973428697949732099756144211975301141634509095209592922280606640123308660965630013903625023705648305249821810188967934541206164974269295985208942962843799176586620505239234380554152606543672645499321573001678935971053175630609919860554948639416234409006557498717526437375040932752924024413719346217833737343665537446784264588762292782200199991562292743506836397285208403505487429587110245465051829176386393895660530562170599726579722732122601282592026599102292976581856971160333410939023936143043029982309217984406710983437146792604829367260914753374940490779105742559457544290160304484157269130928933587761975578792607304105195830231425643940464778060126056613546069356775933496124299909003571099066684176161986568833612969689043822757231004641821155754390766490055951817695707498104186893809076585154325669968597635555961868426968123772050698687084141219166155591961448372334620759435173841349990865917089487091951879719471837653156286445665607344830462013330542995502767690654276915096120070020478597528686803905802226724518932610409751597028080815079014106747239549270323914873618175150590249306099166125222098895301239226224970058656418495125918718186100076847133528405860586754392386398078613842276586239046192353665562929027826323953552909018714925381930366384765369180926563533545067496167451960704765264899953126979474279418355084803360276975189687262241304229841086228939219880441956317914130345133970417609872236199495205933593678665039590308059375709412538297860255920721799367525540379440113096917484269457800169194080298626083918276872277041312266955476101632934218785220307658142292320686017643360792136102569907932371316593673478450266773519426436744064357708032492708508323375578806307668998867979317211323994862915594046309587394749765024268880267907165485112995747804797153207435750089915195779916576397654320454156140912526698344974957701636536338059254265420349234126756915457196231781279674196903494231898766362979027475674928962869973928121929368547572881161994418081691027930152187319647152615607341560940524136549606988343426807819533437729861425927178021344592498130701304424160848216431184720975033138140216057191925426585948451708979931957459113934072946943436414545473706105922839830101277280795423609775719898988976374504743983641594825114963573602815358088527609794071337336607302953718743201817693781117421418574304729821214554653500073403882438544984544789913762185954963894594166538754921880438436288324882736044334598767333550014147344655897844073087460768065577544973850321584938922189679237609593722720654715793442430307894717658246398546233909751144707004529722433753126406777986756405280033506610871799316767510482176885697914576912092107083976458392610918287894974855361410513898980422445969596426664329945111393835454705488800102319417232085386395721719357615572447156954640292910281964143671325074184263899466373249459454086816105902663679493043425186677215834443478736860404735983101135693899036328164670841417610258308873330381182437710445974838890602650146363208213427634159236948768539119940175777283608404159776973494094691064173102508416330882035080074854840172864855232349600734722402927016893297010564941284545020632171724576315762391239668809252849707306866104794270302459789627753351657723727882459366901720210160424769028535300672178400388869850788287952079394080338038776728888275403791425174986574272364595502604686176251324286277659310503345053723540754724463962183850541808517326642497161737585643247496009355380206602263315580466823313456648898699075069864564498530688935706305623659017684557754719741176325396644930663831172326969603792208110815640507756036191884343375369069194864349038163254929975598505134982367917864866018944610269036050664934814738871292982141213794518608151163656111257202340172749612198506400687935366264754384550519591557709071903386745940781877666328784040839788325431729276738223898404391925176630028923379305511739205763542013510830162700812704579426418864538354596016811890915503612282338720407138799906943170672583060688175749126800522708500604778052732845724139754484891686360508127575079990639548194016809133849810081466727360321302737944412551224468798249186592376125520564285545105855528423038482617645152942769093306961345009229680698188290298339062005524421614874998344581715740157480394484045101713512767025818998463525606396275589575052824899049963102443487972140617981473087804320197223243247948029166846461914542534521609758085624984988636823252692069273963107863596319040454018002025788973721555200297473289146530379283282392441916952348408708569463799023521707305403921219541569094190510911135669782580625833442754525467023679757598354723910205304457427800043324982085549852556441535023550469009009335254860538624397545242913651945944293795539674075726206543651980493245237162015539857441569911863530849732088485643177290206550508617259511383197248951863805387349102983937312169010587390304277778117835390816011322553705598774401334254435706922823343877888057043047667892743373166827340450400666523590937974353042949778348798781991723284026670329147859924616444360100227479375047283581704447208871442480563826545468558417056336958105371435753333711357890807290858289405838474044094665251097320362765723297117094303185262009529642348809239215231881177823817686033122465699134901447435320336865449544319069003139941449137593607505792098445044562977782434110423857822219806743115630597356815196418994846019038824550562481552692149420923546999190573983121285524982120735362965169985626697889073501191496596045924203519181120156004976237433830725902236891304850308262132195253262132244404229926007893435734536511271418691779230829041891465639281090587669604196484378042909146815197903127702375967131371798456075103417313526521195661698097166359128165194879270105766263001425649112107835712348863625258217347982077402630846850606261561642623941624798961876304132807807654303755931128494906021656908216394973080130581298860868438924700372508093553610673340094115503621383881622526918853054184557478467557422416927138839289065407463537931724693226833703808987809392387075141692087127669274418660706914159710981484256704129368182042388366610840747532624474410756933887526370991337623874813178733791641085519033582888942088823310633842049594663787457688131322790192746828459858973059401534743155898548683007370376620228260446639581270302347135444557024163111632971434607398898083078285221008297107228092749792253939997598847142451956781082478313304639375794067444390010959435210807363984677848102099787073756686574945115728062228470230620954581174694497489170315224973251736316918139211387083652225524084464433456651914151056457767424783725414447502039108614170587052866775279092077750032964622185454644011490481973443552318126279228522358928005919543760505923232715037213750967371613501434306275617503527860057612015675429198162351021081889155939559690722549008693035061094033774175683860734743653595550617543406191091303769828901298746425030610892583730883861792969907901417083002646170492999734345198348539620067002072044732153905505779520614519221256896488218424721789918822857811554431801225326527513601150689839919404953746200831844170594130905337725678941761163495326322722694056352302761815536243535165806054740387489992330815834550811458337707824645845731050538930962705787748489078566733898374616626744980500691715988716191276918651566847374110594747213773754181891187843331578878447098259201957276331926227745087941300284767917264634606208226547410823940378624600120827597989717851373015603958779570587561195044185629364533120504239008774164678868012417200186197886299234190774918730644009495797436461572709394214248216032639803695019542251160492491008886418243205999654710204896445273970679701327953799933067751899274537242574378886694312799690899107104720096301069486963586250565327128360115774088119493301321420715303508063408463776495070833190571356796498507095444075022880361337202447719028097638150021622158387390330555976190466637907260246152912643275145459487686451689434629528800379681581455961960919815009950512577413085147320657695069445666026723356178258303760970427268846256853730914879499362454234264524861952488402825344261741020240315237746461267384087521580617292350702435517936321789872978450819659860065102978181242972756074592855872706661723191550759503151272247314055219167774315515986170564252443928913712732193004544117434237536380940253207706355473795845340571164383868092976258759124691508969096993251310410252092147475693297754675511026529583791905310833244181403095804368879199737983839960058276667529717657017402812122141220726404936634052928272552848810793560071598493494159629161941685224096572125835522146453403829966313268603309346995233937917913900351245867223251325121868917444567873657865222717184887178548511335795400297794194566704557498919867673504983295043886310093083448246377535581256509551661524621383925703571561243295773178090466728288724014983909348814646351216628869532209885146993072140724440713145723169589135098190061075675992830075919959514639989254578640845168903315546168087802780015438333800227211262346926613601035219619764707310470405360485468479682519822381153412542432886446622027356334958723542757494063104493647292816349788832935653914436558117302898297468239658506947763748601753555427704702250590844992710388223127827623204398042548581583502599290560527440610841964645596498164632853172328474685529426725648434297794779666157351133203916406044171194539368486732548369516554406146683423449096087577163512991505378862163524556506070134128730178989083151842431405943262846204845447052514203375673392565202720593208106885132156966920309471116712118812307352364937784511417545278690712437562559201967829309383155230470339656061208510795814814897625485232463797186037870080046987478213035212215945979397080628149002149380567211058951637980062509903878101488600725902002180181993749384377969464011940321625218034698102476059040385084219031516866140516671900735862429449999792193639398852635004163536461007110883893855611552029847738165152056099035918128152256479753683508716009668935957716474668561242260948391192733597691874918798634092343819391566541326084770725481480409270418423269660830743849097004126546539308250425128804063642004400955273857790269868751175709563029374409077078793550455136305572031855089346547820030816749421754839033839542070650221081006707966799179567196103705031361424176663149117650507630225260616051043469602230370230969907067010793107717170593714711893604312440563415794542885577146290079611243143533334368538208501941610670174954691186241554367254025805321648129436941527180814792863945659235416373328168684914150673647965230143059221951279955489957201377744279509715234192113301075529224776782519614958453709875054515196366439451311948096638852049044147108113998096987367435883537680735435239822428073522849874483174330916865623188352436638856359098278534095113713008493468413156813936752091399336903548174982954853214400398491089142172248172597618670256609022657576761822972387176224359210168187121826763209489341036114375726901077979590144822650265804923702896223901052594524877973044096096628468901570095519004439692243223630015379812208163083456545859882371576332595546973171631210951302118312171277558844418697277087021925902686988978682066001868243469952617054566925513308857337172367148899796214403320341341429848318672425337363830758666786681008708475559613318753860032484992457378365027206447503517168964800019858454631777699989179802039266975465871322842010682466517212949867826424570187487580808993885738338971126664080761170533072381352365633289679443173016157934647051936903993959498879643285090682164623487696059015128412940611571683914946821793608896276384577411026168087570931578684285144239380884142628025770558191992114258520484860158567791348672708706490549789605207097236647739056153679570947921576297833798267244476943567437929135249034806547217286268368449151231895115544698637601728272270183893279911145435745082678100011379534300289366827767874746823526589773406715663510027337677698084751064097070089382739618186196094534191967877748753296589973689147887692145003684899605664216686381767792604811216833067510970324405958469115369428660055213994788001811050347066354074431847380794892226649680926087030622802154822689223987631622263356687689165532421627093223601693290080292347567975977288477609894156704730106467504508797859799602615790816607156698832761164548056812666943868484793259451220431811091903106318922742370559755560136214401780372779726803495052468297300956674362910451478171399655506957987811922489417090024067440027097570802618446649409892647025133669616023429568583358325132716775719298209235972752923256518821065112673537031122915938706409310224067646118840066042625025543870958436291516813496061963902417084646731825171996226748533552787689131656661151700518266825883414665820003545617120161393767564483671357232430323498237450947364359531657039036758403581088584479552557826658532385049439592284453347955517015236309511829957711568110894327528837661527072515467311331697011862426966212921646558250189542476992156525461129253917072490838767741007762859573333450559480928616977724642438883471562158939771375994722185067572951616366714924979504678961857194449561139173487322114607213136872200740962126783034082075873833257591052178075881380620786313892910414644732327626528598953632443588354588629008965725956148137018467164621689010122609947790757266544774557123909145501217926213537260973672108352441219072000267219395693881749007781850359524632650719498415999186537402080249704147613871686055523306402707485723532771758422401316606430413029636235161417797912258065103325721031149124503850785846903316533127009933294824224287888866639952914511951455644387594345227448451604114544419345886357892995284334100471275142929176625991505197647524273848351010213830745051219480156677117484565884099853490928032131587681833308837522022431642344436868146271972739656097490577716024639461016299262814664390124580405302907608025352219182951609112516699463285653018992488738031776931805126134898445523446245961814854277088114719667139655323051649655299471079521510532140993542313666340850033312010985662263712250762073821851473731642713496921416936401661199210809438370323993250042641125140571431456801088794724128568090760297599650017607878563480264246798947169613459461584658713269657998361324469637949359028508060407584095260855874256175473443451478974078761236063625006732371940364718131595803815516247628761132587066769110250702382838421496127898131832902013893833174221719784551667842216755190133278254812186570941176224868329074300740868879207313831765099973890461669707661872971947684137622388441863436538141139844923647557000890290375404231838257735295276974252899240455072118209982932998271430965320733177822643177980484911059617404962682252286601934144345216046588005645813018697492318749391926925069397284117913661208586822954456165960874712910162526895186726051186234127126507879613461641881797721561198969641346829383744449600674120031931958369230881005587555596471862844048025418363037385210750420984454660943910125315517458617023923621809224710487509551261549683194968857595906328097489765245170544043312478972055570862627490193340481006318484382372981842774554207675931427698829199076338065626772937733669351718192599152995140177291720625057686931370238321641292110909008227403066615096656950132981788171444080538049463027700440747839399339548248695066357320954724874472998772928850484504115058357775879091303454717524820531272521324823618670623384694622521613588658843512228601821955407305338788021375848737077988122099637627867541685111480379506735568152552992360039649334543517781455849570163486898784053597128198446419341714936498310758100302836225104922781025031012199375700185026378273893679013554506007537398905876256010521986327731778019656688347700621441218150362755480213192125100360836245408305052561297182797462038801436391715311226808728703383950080672573846480085739632109724670783392689946250566553942092034957958393522029019966566454098413922371612045362172092738743023184238305882118128303900909813205318382481913421356702985547974253741331413819034642034931145008918805213725123733063071643861025442403265718235474027028879638742956701642743909695073660511894983509278203865179242543855423845569275902528375354878088167881078637499211826295979264834017267618047323300128644320015917240686332569393968731552108794709350904640587240495561669360637225668578770514593315120580281059568676848120383861447541086436639983892306797194108710037519211745523224677006084848707150797296523575484268481802732575282537073424419377266312856633233228481493210528303840833250789558853348880186417731086039327792136338698123753526816934015117201367135060844984068806648364426511536701974662194312669505080815229341000622205149100541565942771288657963362777339448373386601604185235545465143161593990039847272317284389597449202310260328650751326029529381961473582863095144078172755584838936651492541475341135728600232163855662698092132360261310032390777347117066255934740832159697354962155488649777353913182403729450265949430863884928678796255453437630695661540001659118022637037826139864035180071008683855773734691357862163748743384298722451066877780738827658522417971652398653924271317549413856937808505562915702643694084523319694519528371939784472345373225867181718134841856120120979347741831005464416378528007448385599875135715701842355681275848025678379592779612232997585638387952954803254378453941913219686628712771823457302530823943652102344992034055545080379060326139130979906630739704250603675524384254330417152368837439399619273812831785959683230881671352747181984623150117409839661829681357240786040884968620853405334084073266933269505477320025256435116689091681753426668045637386874881722186770296448866648075792018770564167078218650739780713938020475463410823388061248461692771223729010540463331904901050974265422665063136767978676425381026294190637654963376433366875723361146322419657731732615901918484862883748743914567956194732255377280870783166312249079061902827716379221275022920586684269408210630427315415219564371903216902975982437131576303518632286326036109773535445686313151808581833649778115222642412475821421685332977835689759506626479291214588036182552978557839305099177956088613388774528234389066467786982821958622236399480157228717214501730625836380552807587993126565071678467571148682953803507164531540552411480451350489309424760701634613749984761769960035344099305622389754781686144761979699229499888279082438955973544494554167804629708713347896248402543243045113469453607502173708864014743619885106481324477650391132356881355433022248063276943597888631205746134646884624360848528032087635796739864216764209275014979992655515032139306454227385638200767826202140578676529482107916202913744387496644439390822444861164840947615199364494898615484807585374524068934321666656453036758767244194276467362216350583344155556307302705171816311368004120878287882210578273469190634863608782963599137546362176417769168693879463627109239610441085495213358804845053639596324439016630192947353524563621937975384673336280931076710144891742099905614169050678858723789715548458481992887627803655361223106442007887867057318602550320471267411200171387616585836666114750313013485834638065870981017324104269259547363387560322629216111497540645255966165860204108334942352422709162689130243534460168436935129363261188173957744522481091975311598033390596680132550109231811731053692896805160670919085637870031782425594525707047202694642523910126860732543974782912136847703561910738282333450092991416219599476766503233229910304290964452231733753886788815419386481105859974751483274374461560446419417900685531803704176863044770888539369305074990084383906709473384912506515858386543224750321966270987003949013694522925889327259360394056666318547388752270256062429510031462485556394857047025941952188759067212441870120034313027635247103525941487012464884622729526850836007807084673692942768077041720183181068396519282916397357005973730051447010973894113793255432333739359707915356788925408371305812792072742376374999575204560581251440958624678334717089454486927145314520369621731749037277440922328425315592715116505365551735260429890573627927362506894251257851431221841158902455389167568440261246078639271448702488910505675461435832143857090481270877198899569525396643197749113590146356929091468159458531764261204451665379319041750495254223857366014471115368246057978561685996698331680552172096850922221960798263900995976936389576252775933142850173454426031747859435817788365012852494666943065571061840467728145993195011247657911561756664512088110690184008070914766203123517986918465781045505426125693858283053053646448345499118358168441615785875038201866014669711780603928603630496123957220415334574589861915629959505775671988211125998927799504509232746371629695435702221427324435622058425938200132484372105224190505035481920902881597344868036835603235649480923958191156025168974084110136813724506797685985444664594131986291476627494617550673797754333095997879314572440573517114623010113706816761412007046120654021527202305160255525469363363991514010802205404354648853491192929616425407137296725887944375922602645254065277108616679652761762068996128848193417845637527791301727431702102318445470826615518542199704452979702129872293766762979155239297798077966913528096401182973894694113414712629770023671807765522516614395252467553068705194848071795341542376790556682269979216694319426617398635649110009884856450510826624677041868622644221806089595754309396270676599095059549854568003757483177247286003974535961489501871330029799845525026257434330609104162024078525575463930953377598328634008580514893767042663805810191595015835026440623728835666354317683054316570858057424855782192067839785690156843710173413803861716603182633514690536412771570811961814796786160883975944946493840483321017430280268054901110105943635656460098034902455725230763126527680978391543703282702561265337603920170220351412412537456775694290067474508280300728263791322682158346420855410311408534099208501621908166574915735775282006147931405201124203765520177339876041068981291258298860852902736859106344824951464574894146971786010357637800280030077027237462255103090910828136242217438775742044815788839592244122193849569829898189365462135448728022097418578311357111598425384251978475875246972406781689097252316443017354728805343808764439980579044210427957659460266045089732392671036336666388156734843126588489746255117907503311865344486775318699036699138027301993833691202017023621800719172431994843939262604671960760030503424360725549080730791445891136311163567933421782871476316763437541431739350643286931095610280708630047429143510930657689026184646089332527447170318021733045271389091402018795499564727503187118748341418628310575465683904977751659312710304078809817872311267589725788964969530858767841763601034695234556528227789786591796072027573114259774223559583148982333024629646417152160176732165009312966015303848207708451441230463819506640925113767982557609369307151274830337969908256759790947695199054613077912576937823324318179167559489254487627332651726333593279346120434632110430594891801488803124947983980020135444765350605318238966207795593414048375469444979754922532685372102801166786178014833123330201936443447913147836910418985699336416227107791219630432654158954987233707733848585646971969658798766582414695470036151309991639075143200562241681747965952206582348649764899943390311773602501968385934527109786068019656918277367750530034743954855406459903860324128293916545207221518746292794567061389843313313580590224099494270541383113605144035719028287660845253595865223066948627167687510411147062580137709463121911323225594870485117559467678132937694692217676345752299893038879564329453965196379056202136175037423912311785432784824260199697038046821375918351073151729261551313105087260388938690009079640638335197455267616139460935000268049411739427413743000881811660901327444695660923754439457453641413629030699520021464034465374424332430908358732543421743794350132607354386002785260409253153920126337020216175316382657331687688492415496262062033242389063980242910795220709589593497354347558902741892016059500241757700816846104802134009019838270827093451361507393675009739806326084335121103371489969313431558688522090932423320550024800614290765494921705133391499748988929944026574319048541070013963362220721537285819804085655666814651515013887503970658144082519225117489895099460594396413583820876004817325525198719982170294060582839368237792364154137832490047073594598827842898249450249715052618699919234485931457059709396773973163270924026341338212744722143253019801521219608785490490247010143040239870454515223947782546004483318591824549694766165517462595653570742792548422660332429350133962498588744176152756449740938697415371570572845424981286044963647497704761520502587362044563354059762478015228925906571599253852271879884080630135733666661531850911422358487281505184032312989785367912539042471040999495664901463618082052576705507752375851685197165435123001081358745901561376510836248304424567044175337778277215607037357061087601004565280885918660559539737827241738961137265314399830813726386316094632753983561909794441003998687904305817276420897560696855405076094105144988299390205522607427544665267758531597845194752037648810898020121583655506859462143431069364115587836350426239448830287138573344561406186542018195327137023430801451539719790834221966353358935743163688525891999868774024042709725447271603570568327121152991041196576838411012954613451850493390705325806906506979205497525203884068837255952535186850894346487925445571702520640651855716288374972183332492698798499857303004660481589002765573953380375724456258586039616593569370779497753497844427268945330375598984434864855278323531820643343135061620484741543143964214765564437507612703888588843145974246730558892964772646316926942228797568273266614214506589043351505719171371400576482442769307960901068018178581942434941290186936844829880606602454556502949125576841386451426870961680427742887163372922415898876475300291224029948149550219572040806970565031682844418241881331811203898596702099547934545958720190142954217976663909411362050714390620298163982967808359145422651963806907151243115036490985441620239010027489134664219697899500750605626395455016181615681151692529633250826484369410933455650872224971295791101066890438465753157405401553876249219214585478673726735158737840661685634517534250649384962369771948600383511754116496698246085051886628990680844914388825238734903250627883678842545440123888178383425006493427061922177729743973646169139877422609866844031880190771454576164332502054074102095063583624350291973793660254587381484886506458757894500328934793454795996653118441267635164348329955985842011961642383305524650139855572525297405784273869561084319956495404498976034464604350153277694635481825397210253973344370759532463033364615437877952553545826268330363809085388538249695968212033366912396155302767810386542665621074248396498078112615544337550157774946448053861874328722097580744395398168203504580302431894898239641224409466878727187661503900930788798826777930678686207464431622106068823641104439518503360932479787462207946169316843962290134262828233482274506751835535780603789416428039273582016996179944518411055520145879221104103129636697967840931921504517578145978531560428105273080020552416594515288378742424416067090348447755429470852236391241774016490582566492124029352693372476315352501201301159472429904135928575152706318916376182727288161710091583575034149189352377913387441656851422726463156305886256479036862845665958726182075744505055229866386676374206667077875446789111954491434290742710305819618824309859416789873832190604338512432839221424193827281727215188503960215168230295596404038662105522671769401907818652594719266323118857868253417668393193077365191739291055686906968013797800462863091293602317804961465973455371425599953261525359062117595828092783460151440125975753882021735003599610388189623179376566529689899732462373329106503113350837240678711220333090054167497975463014108669991336219313780581167608757224803402652549033687983566209472335413484850051628955854175688291907074120731481637674941882258288097261103677844647253463264735458103793027308405090986084371596701923788649722631889898368780020521552971733684865297721479475724397031207949432603629558576550464673419100739975014189843956480699461322094309789684529152382517203099163027021426189002936986631254752237851126393063285577115305266303515712188421860491038099813410175293304130242331648397242794866778512415721302819613530587781013468050546613862411802554114988609498402111176482091533402342459292405172148642814983458738480278735140970444554928472151404279083819185357930329786858514313613407367648564936649100457491092951082935704635690023118876946407692982654623887738758025127782583493906943000205766405719842264338104921290855621710070448771009614020875185880536243838787861563138716579234244810880911837172266862286358706460170821793015603488372835942280705869266774735683359973607872008742455408221843123410897090161842044040422340727622330896748490735915980370324916261420141482206317789967503141058279947929492844453142018272600373148179531963652556528332158679752712763179182019801576312274898543066345133255776023943676455435239326286325791755398284821599491086859088665270214855350350375150761304646403855052950422451407612540138906278738338583518272513376250430212292921313461105651418463349552816802940801972700472091376538352596807493054376245096327934760646689639586978307006734646482790294531572963016298277952756280971660763087787626118530549863777429692097541654121851182846693396151392054911810215658051670703395671847488615131446833112490008521945232886370140980543862720556076667435465275876964598909455242548976651486250112493668385791060086960681799738881182344742051839897037157586578537514516400378444745888408928121853915001024270400961218649126960520058593550402789698709112699380593971159105225636001926950308403711415207164159834758673001852735422333362405586979288142659267821271529005726637354724398103685024837994322502074771425285522749832864662329908772827713931286373491271878541417394641367787993647207919396731088150160076965651199702776960084341039312701283711547502936545967656843936864196178036784950115775235742786400340765302797450050146930540915767928731430455545715004099455625067144775544665722034877159034609164532422811835259082254278097823014443841456957776690285977898989890870638563505499252511941648176614837523357918745377784425612826567129808607733180942108424009231993734792972894893454000939866729531092734043504356486958270973576632793319892085323743367202406980064468766305762139267368434356568879848117016250645374165248617888874059569622487833185911589414056559601170456840195664623623469966991391832808568291232268187331084718812079776748191505897797290108385437088735719052112266938912172572572374584168205956977302333392506080002768557715510270041361503740833104623915808702154752822813473304198476503328303177036634479367374439195209643523323858891885927586388542469396272732812067903364794742006460913048500624751005597000300727281918607223638379042770920329842036266559705280469854433116833155475764289937391597511343475298763152373687441106883441417463420939419898247875366090172806476460674935856174990541059229644194491608817925969253563343789136598134716179956364000318034464970632707475036574648012740483350266137505421394279846847269315166495372698988427767417279645035401131229624789470019796284577377790370937553877961556144978307325823016857771493065535474571007761331959691348308991442935251094147295951422856810433781251820925693705215929214839838296832988816526499063333805143465940867005983103538418746441313643164322572902893654180702093160939151351043940902616709740378930256241507057890053006051890358762775929109299409955190678921545107365332647249463144656112658955542032159370910174560578574430541960541622618176690633804613757591295617496832537040747954173431891826862340113674151008881494040800085086180699653717611607522085761050457533844658451854740678434981213688268413303990922589370757115590013624892884308194551788774381494432797348510548389909499186023912645348900678299118970367661596365777138130056251689106458129412613206354146350761113406746150928967012793361361685286467994416398966534351109722971692896493715527398950347185457482738855707488516734355393605458184965967711818565405507086690037537480171493558385503078261367690644837731382504875111187918251751990126442141559172670917679325719161891340530866850637745862675697261054287121679279309642056861003896479068888256158582129492095906725443260026494400504319508907364937644233038976584900746149637514321166845345043194883338217443409457719242565049644018159092442560404326562022954450867419528611012862079040230961730297589975595120101241830661922877320491887248581272087997954292913811987308771656081613816880137831841808865430114669938151879072670198551745586393383301551295027219885909610986308975193411876900499195639553559846307168929011043331356179049980411070930679483880223802414591094004079197054264319060358852608247314655707069132221306168543621041882780581600673700748451527929238840067873294915675491794414224402106591454767993546142750327020004514337431096712222861293830119242545906357140255256520374103028604768594338400396313906273931756161030412431874966328314720709133780065155803457140850545194729745280151648910779685371457225800058436730085952952449984643418310437765919790886310622772001872300748654639261717779699780742520613810073913089804472124619749618365512984021360721893018017246195097505537072549328987080545433918011474574988351019744620033426635114073184919071011321125187989307450278921139429690705197405347957672310464582220430008152338438053746486439906350915609276809109390829275326488460445693012306252995803567151996984221593002319753160035945836376656592173709103904437246462166183814869437091069270698643968358168433340470486658754749129559745537226567373442875828906735968584520266775187233202976548266476615628944838493533962764389935710708992630581871486006304538157144870753971921033500234843516135765739060746986232124909815045321560640651852650271253489678634613923329315043999498834500747850596382188820710521485249802738765925732273256099719324277360499038708962631659077265725062751304658548791835018233959050101867099859807712490443349140755300290453604201433506086045428892007757690693203366722587032767200472331080158421531557312328418132247324916376910070478557631068728011258119093152002724628149896796078543040804049559832966968401110583015531651210953949505818409858139141214640802201524317632186797361771358490110495235329606388738549635756704711787522424908724897572511165034595285654474268798714414957871866401714243143803219387923603303068567402424228547916061544461440980643092862106989577219440004586155441226057224666074004332466894705312249708876131652433713836522974091791084111209010486096177820587847382845830538573858036162645613674826553762931347851443702949632682012100450004578169457298275732103769078361425562821846457507408648962836733032419162743536471588854076429785503699919134726361964766010671937000569654561747565535406966711615178536704904326775382812006223162834550484612361203073792843890037174641063181825837171873883610613178404809872715440883239355989785606167787944908258696742660749354633227460671367429984878265973606295066047031510943198633135715966940162980955931326343254933828186086948037233548729895663523183586177052326503684654556171578803376966457448724413672333320592742401972841239881159514007722150663443950296955858249034342052338404891162387943418795408817476618469999595063384112043247875847518301462097563713193107712649960817349935878725730757503889105269363476138864442718799904778884970221337422049357751275449901866897362807233947049406096182031532852928077018865508030397248190690957077766729496251918524006543579516035931254512978579616432486570379945166463618967336799488682556907141733210757525893028794294492530649303698694659761288113530970455210963643039341962437171140056313827946837560958016795385502214625916061596197039850970568986396082218873645816815761650338087933926854790756144418083656487116962347990441143943567433765427589810307032379927200959397962081073123569822588741296846468823036380199563665434663516988974200819228749902053971341529980242634499656175035396565763756954358908615833841105872790710367441424432617829735753563405827513576088751416207289285926436063574348374539113416491298221133135427071608334820235089085930997184169250830714597228101680907680904202674399318004679418464438551396767248780630245493605152128964638395404633387908384493037674130174604747048376490730559604800947079205729545398440955429135829352546854683075735547417631810430467031637282253910484895112294656543370461003587220921679149239669641989711839387417612347072700456282732437971168909749046026343800129575151585805129346890631426130650544112400308812860010284104599992005444669961275934232412077247340850345901977183535228238115700410055323080614444540261520921182024532934946202261447369651773168107617466028227061827020755771703105248885369284360570471778247617256062601465051227342846291371666034821740223343573009841855485460689975509227389432409772266644570246796123867085774015837669584092671777276066244369212637389420331092711134406004160783159164626673680056587267768988337060136978062719316611393928365227399854679751450685940041863889286887841450645831577847919987937730045752601659953008515290026944094667351247446639735021129811976221554295629770544221350536236730308042546954359150360020707467521790444651100438326457660029057754929821922981641576282673097352739683393914088515797217096282674585508445647445618174208429285098112615496202426096673685620683502050058281747857501389643162615161705909985661766972978695674559998881858801946516267455399752984120360765738097565622355475114929530749686910094548075725162977532789953369281570920615620733665389930936032167086399539546434643444203667312154119226492733835600666225862591850323991607900220072434733574691371521544552175086028092493476435751540156157309558160236723888810896936724052611655226109872267118652162540912715072650265001231407414431413162330947445307215232946725090389431577834927420712099346256588262335159844830210858106318440919061888413207512358877876824505621516252063839083551490891261773784703504262696920649126144839220104647612422022803734209103510549166918466672951179635635681362437088719115241471386660318111051993674903123468373808069205432855331159944404558309851646253513458549196876272322473562533118057527644214353859903340492507192211536323264283335548394720381812406025090106034649599454502757738822664125987444588136635195005525333832812882313775117015540381512608919738811794069413423817267137774740779434958230482496761557525660102761267526814019107674217022875824345263190186109340604516331032139409048465306085740218972495122946041602679480452859593307089314905863562689553000390088450147047140540017847314839473278783889993250975036953515241049928439574801394004246056490893975950597920668509617369132653678199247889580876663784090646045196622630178146791644665528080944448709333048278866577577809028574034054119127655933237975534027349531522769486087815393098337087863689904314740973276877096931790338183363924211902409636399479252531859819267513918614868342906429054192746080678117862559756029741785900994323983631335179843597127714152152171132080314315729815165234888970040061402766790718608875703404314047228838021539655055363559954857851067027136118711782647391943914007838549859535468176782878350632834560848018997601786218959086589185743406051034372316498835333828821729226981757831557089432422313662130839927498863181474566271379997245065161577495200039087010822899563568205204066067787154476690793037831721839441775612946092600208928725877154810608580593329663759425896929488663872440316035568518876849830456740635163372951443951948517408141505283844692589389084864025194362849206916813306607612668134433575641937719660511557159292227562818861813578582375724040663913574387312849360593608560645881994426386188842663040638003700144536077930495465336402993556586321726986420568868890736016637418112954264029142314693474585509184883819913873255892286601945238709785797219438572019526412397967678541021155227910432109490419155849923860110541520474999896779110491958895701590174672204156119597289847456560890851553503366611169335853902549605234768602413767062770066695425689295855882458175174185892010753413758380747826900890297643773830044163060820927332204182210303344069057097950746895577289569377572489729214373174400192772378975141047653445315607465535462889927131532769757201303008308301399266967736524440326488768046323021199553843419028672427083595000914455428336257155745293750477396938397571192858048707984474497786967085716386974126712398524196821707755531494146767036980885406771780826105195789562242053463913238539166245516630861374208522571750047357270104176704509300282273366771171591728612121550791268838024673426842065227173930849588276799190255230882746593065931833951885351832954320283466738488221825796924810933746707017564453436990487642821948766047411979765937725245748946586793171612957080066657755063936344385443019122768393612804791576819518847700537411725296795239560495970136522415761902951732453751345470264352439298446355196730988245961313274644946574125115256283054441481869419612311074954256405262221403786796870420021094584955953634636675665826415289216403371576673656050170273103002344116485844116916997270229525312946834576887390099774204461230093003512763630086260504543419870453720655926883480320817581512286994302648365464321915508433189959256586282728516903340660375841563402354071246009316394086602595278935839382318527532834077674057524768988697744359069292386843727451895453891116576930577322085935941196902784155643776790352755097860856337327915728972989528613173170308708624605627308746962863039208692911245704733213241987586973305888119835401578867360658423072263106405741232659961687874256203006374160884541963822493256439156140641104952350295944699141236554709500056859379136310115437869846015335729841443140999595808859203642754770303106790629640503373781175856391170237694696699844482512601984863073652353346468432367762247709608453345346412574991125411365949926497369920096172764373096016207420604590507947170652881023114393092009507426807107176588705748449192384447658756360390605582113470823457226171770102844344221210266353923510585193135699607124683011707544600510945537867171604734410897969461367267562599282112405448636390817912005772241103482743222542184591395537834387523420278472865328676216666479172484577944515251389118771973565830772926069666982045369168884689405151551204639432679993809162427344504746922372531415517088882388346345348710504383279528995584407819700520044784623792612829335046452017478630502529780229852088284163041684100815886200504732800243496754847304930019517968505850082554706525101017379743294416803429876171972787068589261225119864505809985333558208172352497152024290603178132751847571819049057548825458154012937863618231929504992634078305717977862601278947218343344003644466694038930919292158146462963762070512020423345827600451596132537651488940693582741093123466349192826314534096340543446895655003275806787812152647709168552434349666880196628731618968025551072609279327766568178495078518453571057963229864214157773452540811755063607470432780767646557574764372928459548423480027249374261205328092324155083982572138942626194581185636085247511539782927916882395437101880203014296405382921572747775774363159405733619317970078216048382317377489207014157150848574636454909304191649569729134411813160603593483850901291221618664734463333012786690027954516358068575668169541108244815514862088572901294359769498469412670610696820969338361112658234080640778010884597785565304677248662440137409267146773039571907956988413081795537959750063316924199785998098256178956262387548176471370655513908292203489243055510368927210737992642379295588091906260295820126206582582488173213553214903347730722145274680419391568085963812281113609553653398773177365302744465092079576471611060766581782263409904327533353905695811442228679930779184321082847531794680701796305010232776924670688227762716877517216409624053435672378145894486142262532146213814433692985842358697283326455616757279265873988434355358598652608730829372111872030940976119602018684129394461604907567303019184120548503469845132341391102827939239590732996467142465567685344114776038570397473118180840800762464969983791334266091020576152834180021238991144213194237907059924812730450427228983850590962301823756901379339467401730897517142242081835265504265696646926481685096561769837851845696061351740008957420349571732601522886651899863558066824588871629327769440971183592900299838359515996653810715480767276803514118325550837163805963108592751067700076923261240672503448832208144122462009485887914591519356214285287294332112707678854838042889865711323625232098479258343671980220818324181344627062024238380037409291857948818834550850752701498787449659746431655222407490840042819622650290050284502032646189961792115260736234013680968225441701010492910486476256841877315534063082339379897312566932469477032483589847871843200942640795215678496824460791945293250692429979340456946645451758127336980241697303049249587649586130797400203456887355624299902424051982320899577476583280399483311104416765331449099659226777848711664690600235024474686295233374083885984791174764544191385220738002868783712115618046415766787147674617387630128013344092269706889754618625077111883377271974560824412098302080971938737328275491902957124236872732042704755850828327034273482021307141288065767019723107021505139792411893966530935739524842921136426666166209867365589747930076100849161042013116915639895123645230826880553990214145734784118846870349025659955982982485374393365291146830972835857278911266041655544478469311236710708349739219786367306636038639663265729987497314954769674201710240195598744816725589363008462199399541456647887928670440682469021565949831221607616962649897790876313005256438508525676276394109086594655948043161769244002187714993849296170028280109403248678238450218404049587205161039474224982498211505512143302677699572339426618672612046894876047173935321612885186629967109968760273379270603881346936786252681095370664005113935477076459161363083043022139146826573676444057958281532585916423709800157359735360312564782118038865483729003650425029043377313795857449761670896577351111411088989222994124707098364309574976377808419647982406543737272434080487283715697090326579370915529612418270503058452154383854050937057347074923591418388694212517096015382779747499200576947162446787492810153154416255658443211222296586503945169246283951774317995257181104458141844114393026595793419167816683827841845095655643363717510752402355830216553667031812088363239223955431652708591610042925741285114334581155361054902186725032491283773216426319289984238475788669117148324928153892213343460951080746508786500652007950981504619471193697862911888495908163463832746536412752144390166933000169744423858267518519660566604241933123218780349243134720212725190974901322078645394654459812590842380138216767748584511722836259481189542370954360235721628568383475759836038628979715266289658401575522891645866377120579726218770323472127597806339011385546737186749199792980327180867516876890598442362664535373927005261427091001573616089769413745341375853063990744161772673122835080647211170070843518276262145517255370006873295000661572750875695389433964655041420278315727288499168228851142124717454711037055561105037841053859546641998532212726231303436872992103528611131209496913575145702432173494763264640887353498432908687519044662967991190585438492122284992816725354638212474438368484150921188983195656596372370341603781432653657526423422003693305956968892722014554756556661541904195268067728470550575437027724832400271839412763898708104519123390659216225189718515245904453927145825522481453252083535411327444619305957212570990803200667981673941117257462698700898456525596726207610309221710358862759079497409608968415515309496826493819278238614418003221538425178554847602800002129105842881528920400068534531056634493008005839268739201439177459966970365309217655578419673522139549874307880728154416487021300623668819685054013084665911383140886816226622594136064736049157225072424091988103170530486012181831312175853606672115796035752703916510030591312681997666658697835313791173203477353589019481526875216325106515673628697756480859938207081705216897656848829030234087076666845620402069013782895168876759096144951420270090924878738956292925007223299781205529644784687364851299245574637990718589514637133735621500956855042517792315954107024281079518624949990886533060926874664389604491571187641648233526430850713281983545303044599904028751323117700421037037103373885758524348701133276497091615931175984237316174258009890092345199666827007439641177886039294485055868357701580449496647068432692211289498583418772104828779547810857276857718084523884091530152664170462473217712572688297012324356363112572477864105189338469664312425844059195869768682763973737774254771456584469809122251470968281828415176670440059387255276790239699204495542404506799594173729841877176065999987312175654566146627667572696707941250246991239946996625001468357442050398666575037078371511310139300770053183675431617665751801295290660675643375476567972032095892531635317151420143291053953867008067567594259577498779666616082719334885830884271150034299744978374846804732953943385732520084750969637654617715842767214697921099788230913034237052784633524664869317238428947499080734907514350617229934833631109900783222737224197716728830995939360839469767169544752447614921905441299097292774205291943801378244167291795725088134719595708483894866342131392401308287760847993180640094419496752666923427891231230837237322924324321768498943514375492540724875049611269588313649528415907057619702349843967633153288751041019558383530009942405417957176650032469963193943240447906878255867869181630033627998302953788477552565282728758184768495845022802183539784475148034455424950388298106151804462390194751895883556969094030052494243695171879458784557331466754032178992106514050926742203064477084896071619689002399213326545789760138780945546828581082649089860222303385723441153888130445648278300435374490852348914266949602075824044261634641173715756306116782238822606315897942230585297980791948055685309181874331757851639795140730471790981689653689305882398524809584465897163727408150970549434484048514150698379248893337275665993238662480484055864764665602038936474155186948096293684356884471827869268236838082733518361185573609790211165081646674058199010411234148429264088811522848438705518133745636329569437831957050109086430772663272562744517502572167226096408480288063911133866545614835176201222864725883311576649780114737578572526172320843124723723560717730597281138352477419094492472146732247828477634791252799162663082183810544612506941009295451044339767669811145717212032556836870265739434596431951043831689736542947435616684516547850283498470591394809527760732555201869188888652946204824273002704516829856846942572760349097549367313074220524922437192103498228356334382830241730993005455321873953437358020965801625423626542204729190322104860956223080353517443553355454821438972289736445156080663277451068430553030440127697553088149820173548006897979599828144786721714122099024661189834585476306470862802373461856853251634318010845734134173651244321647681991701698451828061514172366492001987338952077703023570236517230700280989671752666240316647947754767312765628501056211550565466797371645368172196926052017581055750841055334775032361260898696280327308494301835290717146441316744480229746032972747675253345203897486471326511303517688978043215374070096160245032160065995006098276190856914335825139999752694803364672019468396024061847108222504553324130389695717480391519005758630171451560521274097182946004635235450687727336787387172331101703400826742406689831360089007363298371111850697801472416297898411564184306246571237244894785259244317932162589576787834810746587091730913784101927309476494319334200204983790580605333780700193389232773573886919349809495386435855927099486138490694287944769266148107415325749292639821448379473489267009109600301903749964645723351996719174734602500150129560527215263382188395851634395210867579903075501585175590318133330026156398155229930600810767884271190355598843953794862628184797679565212822013398783728014212424588388635116383908869610864918133691203735068400040554745752071120163216901726048285206044701016246584877826850499327988919955750847789986035704798799120668001111978532190542391832205398767731531308275380624088102847222471147464154029636321805652967302831662990999419160804173828533258479684210113873176521713897944130481665845680715877616579960673178317699715253196143147750474495304103688857401194915488151246200848056192885699120500775494006170340533697235714209961184819351614130140292123700070982082864156224927606482516335086867437086803440448791941154490106566975122198207439436169225054802777947991064849529138870575293161270375120080814841307016563664071844751815941098171767142760261674805660161033263019879050319805949120960095147940023432184973194857666847821775292306235153849267694534468103168786641678336133270767938541353806564208669859708412207420530982746087955180078194083850570659287930828534997276488198736868084658471232667279626567545588938035710262707255904625745855505151068251125277450437140357485563005662668531004124852771577707507883780389770507350011773045285231109648914333643543865385644190739955473594270384094342086412154717036760330120453752850301388444757108739332756465118142387276335833604132999082695344581415365125761670025453509107668298195154362344634422739613386227990063203148575265176985069611298759389202226336347322243278439685748870926394628762655047255788395077796871324454803724689825246321701238514226806456005528164113195549514979147319258289287634781790034466791706156626024964279317405933899603428074149440994209957060756203159264672061503693629616928710899777192946366290916272869455865792566182603285345089979031534924514972981198755956120428027365595319389139286058569694804696084115284907995451412291387730662576062448016453649224816202608334057869017083275020155686754394533318745377475834589260327195653432655458385644404687181723365708307993780010002301802487015756485079785871579797633664507120237730668777767962658751747037146950247556118331986704834116500284699196638797221299591211759996254881022928605193494820938508095761487487917024666400909022269513776876695933683895595101734731701848578953097506862328980931858718549535592839341334594581509468656275009689637397664056554941646833372591862161189126176947147687185361869323237775319122056812387479838117649577125092460002343359693931067774852958279967586890760379371051668639791016517272450202442087935048568734561802356998723150864054243620312058908988536917773933391947116349673137180841852226833189988897323732686010061002049462810100441326408128713167080450949977274205835011280082600637243023457773383768130975550373974655076089140191532427579650514861575088313974864203806922984763983048693019974396107606035041053655284839160458283049726816081593394815877018108221502868753984357376526203583644317368960683834077930727386097478016134020694253700361078465736641418584654341485010260436372145231929232421004543108151249791039571853428678095214242625247583056151684412797238166663447376366939548748267217644018360909992086100976107212547814690081153695265218708522121417613586142517611386622715107798940777954214300381688563284416833154684106462995445369010961283043995299408875702151851893174572432872022325142022469969282469561141553441965802432741757315134523419066350376285903283643274778348022251499136008149735616310910808783965272427284196504638006250581433171741791762839137693652730539006655430514893852628349516932926914599624639115953323930902488200527760748018969331430619954022915768174134588665587480064904229115941878220716197413315352113532227210939815345056808087939977511849438367325028553391864254134070222007855744930319023479335385224631233756562827479915336611233404378757525270881649855410374670258205484292853200504209739847876556421322166265751835670353203238279462235827969682204244646622696219007494341714628418046362200009280179823845542560109471310493604386184423057066464875914508317430713282032091153300400086993635094454347706577516956621366582485498062182298096329450795908244743681378349435715061808475699069782863111169887194009334387207821670820906774721003191550417215766737286790370399285144215498951128851756865511095189399339177548474796319948201058648499243168097042819952489706189891413984317582660492627480869700954918990695946850292843506107969670846741021675800491979440202649501407877019190525461732953317713468022651159271155891237271094321424987303305257174560355423746502894109371075506886469975233805530405905143176680323528024927229163752808107456346808910100424541947757541346213923140423196859207024511651454251665864398168440375928431749455766003637987717520897160443065290392685313906739692401133067358080953960185213392460575616537046727149873701222491041894388277518852693943474139926779392799352511014983765180018748966041574651125288275164716803282225342027269382686096500996035651899484131570539031002344788851165291239852814709692441445965970760244967435837617862462248065825501971307413510234142604533765941416658107353948480790642439989806665214559500536446638632858709247441462130789266558377328590062375414374358110993205704806968220959917803577593436555826796058024069765555090669349899366603306838256209156314435612276306959969517221956714040165705900543733579128438740482684288110286042437733040439701947794181078127297083546969326315208756806256706033502632055690915523113512829725886195799789156140590777475831249389590591288615476956563756074209773624139627224050471390133413937831309109332645140586558120081007922258465191850758083864920545766416994426665353955169640123414916674321637427915131034613718259308723081416601962284630365299960341523743747185948643811581923749228213717025706331554473464702036203016369381695726033252007717976627985056540663927234347868355219711184870131361393805250945991053705430755699315223277138047561860706018580156700931892092507835890140178844575328510302971480414049985683262063010131982590746873382234336609150750347492470077074451217917339346704826345139167974705132241071895199293235183936421718958615215409400105104068526738335412324204968043740042757164530141360611249519816777413034990515713514113682241569833005506714975120801423799571318181883039288911914215520632305435217922197563635772140195038311805565397454286661751581808636548082221180393702493544600908524773205280523138806239719153475179229382557923190105026337855921188324588835096647918429327930314512187563133550262924923450525991866127969899123888804201404512273358969770512776308798272153714375853175467435925762595367072498330182383414244583894446819713712457491035707001595051023819964938521491759354012643788656817636944477883648254566810058466188115004860143365627982150784061288956244346055352673808096327418319046217287345883720505123008238086844552653438720678016701415656334707376786317798959947312547053630663057243501898127643879010997298721148509780882225330799297517495080047444715748384151810892977419110483755739356971419729237238816815146259731459161474618343737692267487081826489329449839249654983909147203141910608887012378710583659798731824657049171500203216593898319403209063814334569685359019658955417323147478169348857406641241783821293656304660023031191814312929442808310030011215857652250901119725200421062773333244833563029927280241632898792137442820065067604005389504967140412890422967535252300062586445852804172831840726430125603375807511804507151794619481585545153946910048564810314298078577450663776687738402760970369869929369056803848861555933814770816441911910983604443944692637902777155563864666014409032472610045911240475177209824275619006942755654056303191362514382808220363611210296000222434661770253380667026517748879866987672318063364137834449342074419926277371441365639574535532766998959549526946351143819236579077911690815165105442719863234487520971456297822742627295646112677762660485769962106702838719821217868402820636537973127946344273953950854538818242125425891758556127581768628195547905378206043081076190301277847211695282525993912273500603553956176502002437595248605029829520912622981700522376116998188918446055933482164776904533536264780588069350014790710242452303909119384617087080107115735350942553134443237041031235024972353853493156550141652679919481108752198140902557439909133619469279408637876686101201793196637303200694615226659944497005977724591964168418679550168719999566088052719005238452020936107604516525360363744479092917287865608453149129359316053418719388088209252160791449703849376889858589832514788401887467205309478624482681972819555216767194456436634046352721021370809851655598527301952121572013870258267686770200616456087280064121251733839796013234039079371703159722544361970257798274290214973147540958846140935790697177434700025126702138256338468231564503976433814018278581345505422786304712897472693352794164901316528370004916878345207495486270199382123033452672513975641063841931936989286192239145570777205843353145894477901683891659126860933068387092601298403238473338754233650772387668291656167792113842786784445425205615272335673688674666755231107137063353971018106412164574683115931646691910171933407835831802485709134106375101030185807842075987712768599295420590677653601457175310809416111002978827709532553324405064270879463791994269099308830004946362239898369480448655061783954862177382841635419479196966788664907479063739134975227132602332802654990430951735523733589045625050050614826691392233170240158544733392493399182317710161879890474316765011101472638654230505912053398032466623456145596391865574444187388162786765991271570766449382915664547811594858407099393161529578972926439066097511864780211023254365580306146719819324099129019738995486520013412245805388814885576414438131851083726613766781465606444784132450761182194280933312897163578440248505647682175975069950849102545559385133419252236893976195093579070393247099587673111972369577126257443084948662593509499413982170686528980413945149817441575083077317679198099267179528311704129953867421847703353913577590026205962284349793177936626734336610360455027604885512790324874308522193072478386574712765075275053219615992069543925843133067227462276210738328070260257577754933985861824755596422391176468583664578554783497847295140457080435845246180588970832750626739987538753666268734606934213575835100940268956033771810035943527674996588166417209181472907579968691776738674657462676095335839765379930452931910617466292321439557925023434906277579241318309140497373808774545392091797832002339937635609679586974647257402817522026332056076180574305199616714228102969914028062836707824698737531827537666285213797117425207461410995326406389974390040959735037438668365462354962616599262933547287817009188066685968083943962543929389844061765745928582557812746275876042266396157158253493829634335779159081672541092974333583413900138055960408816152001982166472988617660198694885781720156216228884422234629764736058234480349747115515903317078660770904718218315349351724020827155383223339838404058765128781792763102022384472702165833070249953864544579651996712257374140955274146873658692984447776769295917011054990321582615601207262575118198038007407026339668848867254414150014493184426190578119033511112564474032304441252983391621684416736137058919417979570263783397634881612370459753959509649463926277888158253763487076207003137365532503407720930961767096746765142599396077325251977104382920996827589424149426618842188436548877839820353504978653676124845258804884711074822411653861920652903734325795642518188245622553909330451302638085780689903125589173677096568503160863270357236963140775764650357700733765332837638616272568561641653652813944425108110407236777909521193501952024115041700271254226262064536410356836497854751886062991407955136448978131230251791178109626560612472266141269390629056962848950285279456433036496441673546989285258699707826789815722755813221276276984265517413269939169178135716007417719925918136102216122955482619536002792073127931450895653708402763603037344320534340020846952744023060112217688035845077114276750707474226735524149535454061111712181112627905397850254223625378232900944801916201328095468852247118221830757061944542610038181078522650994694313558403508720905674436019741167756339284134080227258031932950428725682891729590611465426115061812984526596572235150900211212110560788997117196476539622680160641634409735537751058821579953307032531516538485469477374644199396033700744380102349571925617394436924597297666000876847047904823079758378577766828743023012318059641226772030222264069657326836143465660737375025987144027659774648264930200450159193015268928754234300476628065744602388189012627827659974105609153345577607500246583211129048923299914065426142829392744042087701838245377874212546011611181754543478516702386749737897659458182308816439958888933623609720264531285697862817909301212544508221644671480698291436970999240607393176802608174194382117198608007195006523911956806439876829312005745671522468026984530990115351039726617030735879911824264522581032991333998419034446862251941694193709521216185855046718490694956006978163497493418195545775216760186253570865297802585314841378898002257014803466085738079686795853631222026580539240240608764130136687837483218542811482270078950890126072741241585929112372454536777263481678981050777314200278388554127138799458717545224406854721442358756761001268456393874005240725515191321374010582560082129404048626168340161944905562960708331963615131033488865629610779280248902265147729408165326166927601320846813368031278249505543814151827882550862148248318177145685956250054507169481538077580892187509957745385089087643909424388583272002521804187208767550292088773763262097955175316330794737719517760584786150379760221742873814898242041597533279935155647484643672897673457607088088344835535477866822021246938960553767435488187600271274062801959191327973674686172919121749795496571910985210288858893814415832628466704106143845962119172230893214332694535735886964744849241644010713084664811375693610751325295055542714974907958837309662834994679675065410818061180175988198425907666079179727525826233595476148539083976834049780424657877964316433086177872781919615190182573766408286627252413412232924307116497728383578073474771970934251005574854689959414787488266587157557680816180240265792940685189893231074829730350735193695158110254908560270284203385480916225957772221682531376268827875810921509542463844060522192874805868538844564777730550345901368728900798174765434331979786602131269508219614160879995795207575383905477248418396001376224753621496104867600743881241294565626379464546444974536853869286697735207521034671320271534669762107479349122785084654878447057166486674589573701728124463687323378952747035771378964514185088983277333455880024911161949369028980686907724273322756255972540020990179989243635410719209616066979761734794319047961730258994535244169046684341368000655457060166069620409952399211057639782397422144309213638868418953985341687574295671619104803651751809844468199873899948835471284049023505675139241650594876166249557162410958280104916252123314364223172819070272980034094125784965504567818455741415151890793616809665824326419661937138415083289677039341233096580530738420697809962964014856486572744775833366594003799355805537396658252164366633234901333429191550841951486385134338915951197864896463548556906293540260491128816342027436084645194298915717687634938287558574175453790828651125244777217304701795055779010265581067402398693678401572087844782505291456466676186026328763307428346405578552246004582405533287528313942491441022544821880765789901268623065506018783615199228518216794805267381237221015146806304324790143113206292608609412072828919971781659031297574585575851403901347482808795984678787347106511980840958890649764157466635700244147587525349907315533946521817833044959097467186297664842709295365520727937830492037558677887587768702430178391749244023294559064936414168153873963745054603263422535918816111919186964669254786988340332367537357780862337523964996332376137120329258197440477750012416489008117513770676507153440768884042438336722423521689499074991554363571782383432733031424160339821010997223361555559426051911040311119797316622149059762472421110774836483992069176132492725876684493257103346314829494021406481363694788195386967922954008186831352273305103050580774270153614688757528567989717683682951742482610179764090389931387370026925401621657847261252117535493554332673833820780967834952820680132480807948093810646923110892387712748289739792670518998461850483383300083812342209296979207290710882188933558358497679526532271535589608960709263980544150301823190005049529083040597840976506848037757930842413875733465841915790550700033789208683460629825723274948843168679838277440956208913133561708005997928349688464295601817095171539797755182345195539543291108439436380784836694058324794652968774919618878423724834362411473893265631038105872774891486641862398415752130697742257807121135892584597222210319339000361499637500197891963742623308456244025802749052569562485320103524941420660052132773012933548542461501418648286674572602326524167328824064459062594721449946060352292844387563132045983227963029210174458002680263108217210197234130191224422475704183543016166014713592642456107697188566330980824805848255520799760965325844245841287243729434988412289599576270984091306727474844036314909716828504751952011953495700255413903423753848607206066167518231872114255893302625081605680815336006801591880064833421244091065750916199438223237496788385418724329127922524064552935803035704719727600262223330335797690652856018849247027866456975979690962768715701005937974441329075679208473402841991176790660131082878761600552067831776556523044994925357193693059716974522073833739783516287226369819923936525293954175541554864847070188769262144949656811013364216779871343014698716704613968478276710712699507065473362709831819164009116639302544370236200012146888770942998785955926562830422777360606348184581067153134915676327391379714563343454553279313406842392659618963088905324500451625940626533416045342637504350199259772530330357780942741952380354418477056832304740552232478850883514877640658686640191353116606799286372562273367094665790003390587777659289247880358819720892674459513255567825317345042809489221735623775244643085865060458113194607035418387989442541558335056719812641984133978303367110648547726959895110161125958321019333017932735368198690218745067971764315409271996244756917217849759119986326565571112920971511625947864341503702618815886399865188183681852846238740218717621871142679559435432931774541083123807587949263333575285775431457584731005548733695991398453051388821646490715739685621137947461773835399449343938615409606909045228353161312583338777991477997487473821163586107258388944962557787661192343536676787230783496460391667578665877103109262947410642381870009602219461619263886597730465142475686882111424107154444910144582209617609802423012577930916574794009963878140687102181286806279549277517142131417328850216024185710622736765204351823357329008024500090390139001450294509047752503344802445564764239321137715067835260887696638744022012633232990078125379365854436869399240236918581947300402288875681590063682058298057514207791736265911217270147103857690430093391210124929041388511855395232024975695903340364753423286866073876201243473196525957030795825760354576708946471072204053367562498262301269469039701238526327833437286049789113506623161832717358757644332061892067500822523028842423553190634206849245010632203316907453124806459070758838095857405429195046711435146256365823146419883473259215915472274520272763838323510998621211234189771221164901726313000934236201685836047185658326199586516526064050682914835020237242635073142297165237067414085878981622793177373955057957232401258700729636123557736881499739196214013723328583070864406402662807751358551263803868416789367815455057480314384142426221481902521213636840618808172439631144491898489460121279547162543972953253632059298323737232005790992072455509671320583562680885578383881065014097732552979071906994394190314966782684825617516415498845955136431940754566613103030173059757146708373509270062682079261716293878819074256734373035004681502066568252958499204353197910909469150474686080965904098131549778833957099265335129676288168583610636008021421793668547577236621413961092089718882097798178214354579945196262337964448429932421171742200548534804138749140929182724815482630860639083161232795653927896586791687715860061636089722425139706363839333976811869839157810463542232952395370310932651600853554076307592080313735352513216727651389140433036944115276603979063270762717434402301475341133356635445417919824489934366224109474130617469870934135197264481149067001849644747996274786637324946429215680772649779644915327080506937409865220726842100293811905191894846604959233449161873441188468997650094240418328308177726502242750796747529749470818512713068793417811333366838386166348795954506005120714510601795096951588387054150197624424673066455817892436560510242745706921969054031289854776389355201745469844705601539195718148780880466858849290183533866908112265863462862478155074015430315627398375289159781062678871190883468581751595730763714796798446377131175798558505100921887528762717530365857555816667116305441857554769973023595808081065307948640594747056827946686277052627156055342579181467567972159376693570809960954360783455349486090675133643987206968980191689641222004906903525476569654637901239885853054464567095782537352009220676848599564403089948350802270689379082651998421644341148236530460234641302246015967687128066222645195014643903402006016411671445552048719593293134043644173726220414176826450690811892257775439792372605721199292636431825364211339111230928200893731154990548425172750824852296424038620498989304879633651825136957975285522303655536868664679037716494940186310517276581595070554964516565452010440632412289922505872731594631143256561823139726689885293513373413627713465608650456589195456886414531831408311385830381101989975665139062713047578114489162376315849019837155306942074007893515219153099098980275771865395099166177339262434532168672338882240989775480476766890482444645713992509729509395251495967491411855122806128521917588991255795636113685830646921567993483458736473436948941773698629297549495502441833806765202031922388698714394772363646894848646727836499525522939469877354117384920833745953289548672651576563386036766659882430401582739044038280720042456041292985484164547692204916188063163103068725336635214073029101220459229181158457137905128663538543297555466711764876350698936148156503480078449446516142649506022068821040710441714481496264523493962221482119468722651948384265493789715992678126246653564099078095854377627632861267019276086871106105455072206256239971132257746475961623431661951708887867901527632979523993234418250105705217099620455205308033930098177718871055226626431859474169078506228606951368107942981210629372968055803939583643821577286234597738489510995151259510056984649006782202518376264053588737915611585050933553915652764591531788323970188706902796234372788544638012144541469424212659275237950450927619877972815214099671357643660361691961875190721073433505499639868158411317648282925580409445773101676855822918248653082033825286810774436697208947359644232003276451523292992680646114431993385622025453183519581371694813138861095502752521165321346585533405664374889102742359787366018062861002308485073773963279404692019936037476063745257617622469145314850333475598212401086711444844882427703058003204531995588623344731483300873124689072417545485499433693965442477535527506674397599879970439954740047569830275558551189009535772171971375439046593417584634188588330793825863077599604484405221387145420609934930672354088259900675900328915532174575065290878657650832797100823776431252915668481668581024774271581485166337615177537398758441724205852528137599403972523856157958226319146565186500954711154575573602211104526918721071013449378202642502065763553694531388602247690534084295391792368509385088730805669562316895233995838413105435871194173232099020114523600031694020706034926452768047541642981944976167031542101853379458165400694884455496879535216261813284885982339074937097668336748629474813182979137329913146158490379700533620138282910903073401377482078045728021797597557889817005537308579946596994675764101087914761814173784846188832215391292083951401455087339452573724962179523639102357730132190913045657036725191243835605273552385044943348019620539949805647323645750153846317705657099118001470771337606784241348151431320108886424979227844161298102409528029653159519166073173095145456991842210192053428068139629643400021088969015984323346844853502421468059236889245582779590983064211329124414119521000666208010004417646392254227697172310706616631516459876389291355032066498424179801469146372338492675294255882903591003480285644608721072732158634935278969121890739933573338183861579123085597682025034994184309830890573864669924326344100215380978659326290674510309310786308907318696562459735062647286234257942228865923512929835970393973469443529076538946750088099690407246839771562700802533523825621214113146991517706617950130310731662536102671892260352410140132797757696018189826888503418932936880644346235172569812486663923332714826327407147700127839102781387380152934640755045110640986796466682002125810658856638869487348773255071610883896682586338340851112742253072476843034495896841276005622076331170756054356965131643943409236048867004636089195439739563806056078469789340964707433002474864949710464234369767825976366369144779248410077564496634685678535993922106891555248659435730735848958377943395713861931477224739624488335096619201441364595449420184190545892621493346790447773828291524608523841786043534532631257741345980214083365239726406119759517833784363198934025428710780372767519511231078279182524296641173508793022962310603292586058166832566537298051675839654064167840297936136130325493899626343322079016580489132694630174836425873766098219079524374974425272328955133308387473400842588004627650457059021213190852625749400981403932151968398710556652379590342542581341939262000162679279215843556415305712593459357521216905747306525966700720230082119888466991290276396072563958687312089430237927278694106255359574102471590273172583931901248815262299606021816946600549230385324038784193536640464072342169835714379952839533625434911886043950588611605991364162829033358016927517686797896958891090499759498262315545250468313629162882950849534837067220703820402247976243406617953346010860053803750869379611127166072901564475548170945974346701681083625314109305644200441467923186979326722541734547145047165297299745085492729899325624359496641959188352177956200201050244454200074263246182104807763651521820743000817041194281383029168310588370633914636487318180162401134890727574120535524293560328455398528627125848340084920580240085210109950586953507830997329545896961190017418497226720555102615695202845960276778722986916558519650748841373317623425116117007797341102053488476609352457103554069642308469543654228833046155566876992249058283615641577280984464986597641626930488872029811503445717001152251767618802370458719483691853316094915047075367324874846623243095834592407938794431062153781655587584900420233493994941159515409591930454997601906441637883927638985196222319410911997446974467430090439203488572965167979199606411848683451492180962807830761395212028858621878363369553454813333046993321995100974597366025153330808847649228427421478328815647624143300627292195189973744700148040194614187098442018333863977565145918768685183986590764852951929526971233787781973301634325322616329265034497680816587673543123803315448223676086778412055394466359012105173380539703298539048036788582473839015842539637012711565122453616021832099312278911378625121584596139928301164086427680894162253870997335779621181164732915735043084893634820003732117787082002072637192702201325082723160833532146782539250686574038751340093689830335769721636139581804374273856649964644389481428048743336117170274510013748029945736519574815190041795700108118478530924634740883671119912298811306614741511584288337304537909800950454373486001240285304652880249040199146664658243808632748756830090232710403124332917707846088288720928274092198925808785483314487008893746474879406783423028209284493027915448444705097573975224201948030005323713121740136844862071221664914530484016556444126757054376297686746346544234985375043312909445187210045750117632729311571044389318331239991874090783543714074222499192657149867365549309819211796110186684306289415924096149890724212712073489771019424780848651328772669941646048558933838893976080281124743651319168712152006921956177332184976263580770652451411500605045963571933525220736763970524357005550624582959705839802662517804828898609444462695761451223665379084614953019740441213027920796474564276326976041437565265001363320985538737340635776173652802438251916807512548562285950987700724115293243912384107325461152722616660324963237022323072047317276121782032662138618576469146395363724221661794113038704906240787455170985105031474707340362583471319674056286028601671949998294581190279938054017854968959287267077659635193616094318830451596615839889540896551778721493109343776903309877609975203645634237686667034096131430554504630839157478297817369302922352854345992595823175100765953899221049837566775749790858759761738185931138306572317362608428670451009817445966369568415183821745863778334148270356980239170252566429608186678780096564242415947931993763521961850112558376874455900683247367559925110426819744849612171063781550827281426850366600561451813917334110811638729740143723594919597649337858074143854104866571741367201618448142760028878551259004655291289225641723813868380397909875857850449642072977353716701297438402346831103299892598219974090842406455541557377656374294882648062610905118338798558502628946746777794385132719848921849483455566406444103462722511274348726313653582753642723403101736519065482567725667317466432634417600299444064721252037669158209607221468137101317519752491758200292744258335770560172930425539024948322610726827057177000886642656776504243400266838266787755363971143462818634898302861752602960074291911508568349486922914579393898439091971348112149821797050939144192356448454012030873236071966316938900567536493399562306768736088867991711336652841387001728731597022805908858532168162162398175575749446615194625109656503778749888357396355434714325206048590596750972692519787327108669356609255107839997342809149672495727619204611477352700056492401558643166523046107088721947430416059884678759881021129003366451618591446551478960795110804765021960430453699343751307883687694459312043307384682528323230198266484803661810738814450914999781456893567021253365455307043520258044510040089284519354570637693751390529928202191798951625752238001806897173874363582864135502126294886936429409540976218653693149713467504392677042022414461008951490334567918083311088898777589220995257616313664356003811253858624853730513378622396250107932314930217977476491539205444514448068576504452182213237139681450832269333779685913581588060436909288574858919280270093003336186466726633106838465034997143334651599649137354161242330880004866377354398721589572851158281398528115743535833900781426824602015467727750600760644456411030725865878872671658950422855378155379582260439341435921895197942452129800754410602944853038072899270979151157320496983374842237535808835778400197355508769229042057622184904647385055798358603656851621080668677079028987019354528017147910515698390779507181416882259075552374070083556962598503725244730609431401984366639065916061567806449348977465381428913855329309763307487871699365297307412752374846534634328274315577828626291516164757496670248605341115585087558876733034156976654106938964745068867329419680052467025917183057364457461304315486285869337503682471663782225525926414760360725277814635891076096477703812816589989493423106812979493999660979454429529518792583016016103139724661136285475519918462958083110236453140854333953235709671961488672229899497219015998085078309626280179266422267481403818322688004042287992577074577897766368489505427073832944885818207357775817668022242101168135063447894303925123244895546389177902331331018421712604974850570245271480786535841243529248159471807222390124377469906319996103353122923926948721648414101255145199328333622914050559306108572983778483654061987162353539869242929463680543021845297312669827817378185354974695050775950550973218990035721569505787133383737201313203319431296877189272429917252765258589868923030148747001277315984966932847375299880106113564254115244832831979779759461064186242261780104449761069726217351859205087515444297087333743103969475709142398472750051459542758100272621169706630440500756527734390506141154768564292542126701459243951596573948763220594562936717226670392571817957310758771415316253683382196052042033661460688665350372743486559901282388289984350173196207244977227091132838713044517686629551754792513234870962991580646905303956465854779666819099972008716640016249583240768856078021868434425667356394319383886685032287519180237540922834517199712767531408129209244256602715039803316924386159500774381073803633708144323686250300866881214244170025802076297618042275487058065321907359086257182882689240023049660260761801394176145764535501333245968134527609250857125819554242028358821670226692161197195209794958244062700920193343506011911224374069510276215672000842079550981423637824255198685076212119173200328520976335942667259197402259795663643810933420872669728418971283893573198781108459422811620879450101494367805133478150220679903844336374432488069045330102648902783836517119867390562029103958563972765431527476346167180572320585733563114334556871558535874081792954193472162837580455650031901988718739603536804470735461606156854836516214401718755509278082313523714739903284327646945259854668117371285795105339579835508310946992391272077798714313497663350846841456048714276054655225683563925267739689689188192489250061182757830949011693113524029947953970545920835650667321711665415666346712621532121022629088639203038418854615865116469368598318775285458685493206357230802886762993671801114094711422290493404668627620545208788068686537087977618071520757700006599826112335278292279322200112191402047721128447147373398663173977471282184777835016017925139970811768045302764469658127341309852881543262176001057998382883409701446874552483005009098370766850425678087430667245216555852460058791827382775762611078950760573712517960572588841658007478458292149781215491559461755482723111076185310873180014944998058734560274179297450580074567409789384089056339550891620185064677010820821085543120953374123598028797741056902671668162225764265349318339815258903772203824205746316567544278512363071618132615539605985221173998692758505244724435461846091919398797257697423502474272446305505321165213935443608717770983435244632551590896859591177013616639142794936165225560720713646330487366669238361825811263125923084529118734660224950464053614289254613210187154196007297308936224929005645259538495453351313583040432458854615227320185288037080242184729689562701089630207517159000830841491243571307519565443787381571518487310029376192551905533781405389688736846344959843677231551906442068238870999109520187341850559666044317420943869093944605237199063073239504671318010819993349228446602634620476051339448762976089241666848770996971555358006951930796355428207253375798692181613224420717540910261333594925786139380669164800000471582890429701555218988078773373560505948065218512992701885580819453500101682767413134806350991235575090988657683971889798302369718650062331956831706533736239004090211143484043521503523783592209458138380976652186688146223641306780329329398627850079130769239169745855380057015335487865053844846254112842659332923282774235957764607100077073977927266265344591613164581698289122706083760475216285631982918382407473855071239327350634255285393456990172075973505463855569516797015266189453840716296681918133712720643287109777160203480952508627930064792153510705807870474517138315104836996696325226723653766734581217475214094286547405436345083236323681233648336208167484945192411938693207467443077597413267470053339979204595173366359049932026064651854030176345323172557541246912955630868924779158707909610771765527241815518596302367573823782830769131982777019192547426845392903745721656045595030646328378128633831828706545689723684656218651959561298218897505755588983261304251589795324318081232489209287200905116316885243971090188313601268232742874916073498884909536435905131619993897845734475458172149338813442431568986709874244207394200363022018743884354872036920154460592810096774371844206398045520434679379983641657623159593896879051086597384990298067342826645650589126514837379822643104463607683412077877427140682498017870289319380705994237131716412424519238219223801433283082753927821354967371917800615689749941607419079548926982552120121361545961769896526855317065300623840476298344270204521114002731722273564981581682054478938416378536479582045674542460667653464531982479908144055570700346062355669185192704032306550339652087442671090970003988809079315629314542379475228444937915410306162503405063176113218695712798760756646853107990952176409750139625964593112151698872700369143051653380175979161894907878594766794382556420061348979508508049578688634203239856371787391780105142393276063441757921650987512992437422780900820900655582418245712814087399486692766384932970237611258917378760579043239373288773173247795904423511763357917419043903277691711587286735543515286300679878936892615611614280545682157377531516188024276717806668632118713996741616853425491422517766375146057861505300717473613395888891626458884966111118796904584813712611934100340094461236262028458797517014858101048962715184158583265619676341440433359482400501136439943645972308161007212614388707554541222862355664810798986890221366092824848429119424203965645801973115860927063468829622852478443859469726569168941471050319552945052170947233339767173413723108195358836769242795393950696831030388724627785685588730513419807172617270238944495348766051212601717613701038745999239112423260630301329251466072013938863421359339212928936646070900068987571570364632703522969285816339918365330925378419646491500319719460383113655711036479741344107538592043933254283080995343424579490929233805711793910236543229994724649661036840584089999458985186184437072214049481403514319178486856073588660833057638712914147730476540250974066385317258349820692097400230447253388362173607336229333746960808703246375768979942527778003639467393781770206972756468034576224309462820482657911568146241434022519210426888250020852653641463000948738369009751490503018103791568129134622845313249002802067992356500444086434508279657445887310601180138796769824320312565077140673844145663834273634792858545817107147635920143399942391813827068691810789975773829970936663030349120218738579147456731043474933744917666598128290769469320207301848457198528186063455905398485239021456344664106290440719994871569254046486134480746647052972791969796969514718822702919549859879448370956234689848961699329438933177356292562534456812563650342943753861611220231978560206293460679243198306429845463605070149049095222782807812196964681799895558170178263811622557580355958822655657117144178001177759913969722473550754211582575953962472763158493698497508669146987774231567103765744031154731248928693033101037426751971175155628748760801474924880348390726022909705558335480100175332213197626014270842189454408999871927859628056502111801996028227253547175386131203006663450798208062971113033550070748967530496451283953770424440297361229382456273694330158993683925360973002101231540077653513068519568628694408657282205297108777810702414156157034988989735970346924965810061253637421102136556434055785189686324301897133385127214788142065455976976665684817439960251729402066910149309533598009489966480479582979883540738313630326130456043529370087721080577820965720370141549264915762678827135203959455324510959173630752332038905773673527551016142403851805042984701385739009957811326639547358206931103733129978307207876505113115764304345743811877751480087253495362254992216848256742361030569456478521753444057406440460991065408847158759827505046882593396205977159530428402220197642342252176412524515834112375592494534273101039218795013312494732159833615518534143097378895949835247585009139180178136028363911212165365634638976963855279354768682519944259940863147076694469215917103716905014890999012435974157603781152656204531957607483280464724678215779204697264846582624873738009323664737899754065143435172088520439594665666990288555164317118694704347450586693446175295863605862732505646745510496800940246531883138579957932980382049771599967398185347064901567249170877808089551484892320556372730417668103599766250325970324074784993110487935761553675426439508822319254890923493124471792003043952514976855056930190755296003963896878005400387281101633428835357391247980664992376095375392339440094235958629223228537349200948997674203604872562314681398949290146832712436483190236384833867368652946476407892354635180808424102926148821965912882044274696500751989118077497626479232725024768248677728451752384024377355990770339971131856851667089582532812526781573439285162711342893477647863503548100727984991831492152057430044438721284498376489862438545773300245725643399771590301179796834976016966732296211107426224701811569718095898051253069142492643735151787655877553492647333680171960544039210858566969306743516860699391640862706485423329630681600303371739408694400018937908915438845982411496217893588966627867298020481385682433910479308868266786449749316900177656335041839569968506662948168886453021070600876219039382857393302896154940869228300490316298806359152820122964042226702318908682530536172177129400340126139211785693366351124862907182031967724374753476308518867099638072205389932056112494210888546130681653755514619604264295616921473450137046835412000154001332344537709752438934870029693572569498168223450677404213497431224177079186249955942839339741231486201011458603552197088063288127522280260970357231315283745499368828748602307118203162894033516699866808728187072679332167422117992232344180741037216508402907221136133457183156246456414296268396658243112868938762888168250622180481894859230980479576325069190912505873794415711334190419250699095278733198713172854597773909974811481577909858890920911235182654803392529454633024005006884193854805506144434398036090596354331881245803250552480964868007625926126784143018523866237052319956734270426806817055713538994705880343469023880531748597108251782537810440194916290100760560920771984056784177138210141132570084205645652061899641658429252651523435965568734890371181979990126829140145631879672189550929325291356948743774654649993358940529102285427671255935912298445426613753666843968714969170623443493208507543538147261115287524937992297602160573716877494454450170646188941885532782482763340840294746074804030660663639969454977166862499419041524721983331283782329174801239557646927827743374582306779709108145388573204691132628959385045533394947466216055834480287634227441406555689654221998707303997203372010294019373828660460315825362946830192096734595585205074048666351634536984573724002488752382261425141104849965511601608867263789671812435497513212143896998762181821259572323708214766592156936812009289716011670390242880835230617245063716361388657236175473105097230106682712493782168863249552375950556627575572420103156131106560943408371208493861522639740379235262753020172267013603583913732187535706095976865453367024963402637628520399566191276217659892304076908507955233637475935346322224995791697625437065251710878009105445946526150106825976023459024633066630537934169368518688449875094059739182901092841954568235180486400071010469739552439608967439938229168704747964086971771594356660312157987466545954022177902007306449178790036662920329492304843552500452046714304748491594418298712138120251397231844219482748715406307199395386838180233689418007953354428510209731986244546543268728025381603570434296714033701862552901818639625615727512497457582439587837682720761415636946431738941386483650139870721976288357209353579112582077377418824972317765289379787487658597419019248910208273601693225883667472357403058535076352288220359115500948061753064789924507830763517290709204976236552356814069443928468421748715373361021095059953163414668018329319123631991715678264119817239918369917789409244216612726299722542663520675828836563737579781054077809572145421422590184246829180546630630041528575809514813683180839617144349076329131224755933934138899500171239953914089990100509423963498291475991852439339717662734643257656992557804935187952770784138043787797267870655113189148542892516593701097134391868586297216116093813134331442088964374049792734027453306534328249446441404967263626674010246498187979937408026953718099790107198227108718357395355420074229748813197184942221079344762249626627334315459790903973265538540849013222713360684211446673067366746853195870522418817842553767941830526931734857508619687224351458058645157502321851798790665695494300363437712382975282992602357957528789854529970429873072790053476109097624514666395309160322472618276637787593908758590616998141792255190794801347247310310117507178829679423923537293188744945358963292642290615287211237722966766712867229720852912728164691455507793813829719144838546600795558185303813792672449792016079410242135523011253969466946545147488760055062910320738654722465801290006503019613055688193942355130462000826997736960917526459107814010620676953445922250755957791214463711184993901069469825879746884124046126266387273447534841098133558871892751672561519759849198884859510570921022992402621851455424941684931655039526930624287564148482979814222331638430498893783173643817170874121635350296628104492435287454738064266224463526506112807011236417375516726377546400977566704493475160396854810937332155762474440050096490675520576037355653406820265186073503794836800061347599200948415391424826181306128815320426353936773064755298282515247367732996340758281605918876556989262348422133959781896102844714425436992050821553595518838351958721179576900465960657144751630106130011410761866092205723726152014572051563179227012937338919558374560059026981749660119348422422279445807018822676097269221431365301216996901449551650523578190605100510503394818983802873596854730581485542023671131831461294220865234053035068770491684961639122865510809449309279883982442264155400798376555176982277084133993923679207297666906773724811594690971011495903976547993062345545058214591256808319402233660311095568184774431530543837416624769006128789609407034363324231664564078036575520765709135862004442026904653816075116415021552009706258583927637200815689540924325964856341899703040623147149287336141498577891071750126392497644818873081776665997887110475559010971836149849725508201423480386062906828487204793256145520095931418914875936929987522214232253596790990698321122505720596678819354676129540952045647612348278742463614989049212751392744133101676229541376612830106148975367945973302670025063581820477265095381536219557073042706098156873365681663716206471681333191022423612198664146905536354282596327430391212268556946832759337104157256074535186098663353134910516439444807153524865682455959454935535312662345043368930788254135781577640488443681730912864057527958606353658510287696347327281705909635033278154535285650376755997727815424054569333791155739000373738747093977079240367691004337537410569618612640354976704932311943972282457942170144086306721155943129800299242895098983364002999272250257530033403621746301300957178746005613121142329147774695799882221514754418035541012127352066082634472735780583651878385044395840962462627850917674202172557250436918876451368595368978513299067030154099959969436297365146675051953547986274351923968468310644615797885858153374262164942431030158715599328732550961111989603361101588037900986378471003479822443919115095504760377548812278972452092269385858113309390116630477814127103083580467577900375957809574457389176520048659748096835333334862384474586384074769703109604823909714374065585694411086128158662422877144116404540967680451013624943473923365627614927109405457410387203614939369736353731989395952580720325604149561887005599852112128970901709163188809551331818034695552015616387238195777612371754055615140317329115114267415784716770300053973404785365574731569733599197655709216890150315671757338461473800563942416875783370561268603391496544169894310712837705998101417096123965076810880203543558491744532758712190761052887106207766982686044334584274657531606865129514563138877924149509793596078143075411880291066867183316762783427950196238074283086595009371105613863075225288505855238698682219410462169310147734762633879265685745064146762572454812952326014324763639587213380189596284063178672619052547902455872024440184948825094510171919375516731052788946230450388438721724844554222056848004392856675479170743926542171286548557452811416183768884609669176640340928010005174874288667293042760328875466952830310307516675045036387996381640952545535756983388278299277165412216159010835611226023099984778524881819081958731773378870761123382039467998538691120738527913375664700738739840516628236846089178496795569411976080366952177970925156213959758198962276974292153128401018367811516660205789781160069094866385246399445651861697381177506386882986423796653029152428655403440674411341255481179853135607395055500493161395469281607282485691405379049943747992641636153224403168574484799168917325856936873238902561199712093983557652260922940220525827406033657745003301077786215003885154322447719783044576513534977414540973371897563874348655707300299546684776813085750770667944447326764865430614278002909132381805961920124999669507735810263270239119888928699812833264921894925473188088830676387748115312802994884503513714657590352576817777035533866209648827669872195310053540783020923693152381671840003793246792339450250139659220118635194055128827481309690695504002606441537445386924787250436397328825107265326012140747375626923968659422386593377627407706151280624854911357804816328584484513345764181315714957171121567258719237865675453180847699618713304809786463064826882614916014068902092808527289337421918032490534671660712569523588467467800181671407438226244009773507881014911359170978092701138900170375214065339791116027081237730786299176906685779857568654133286967182541291418333270237181348342312288359923142985557925810253976990557781984612475432926876203143434766247151025097878896774402952501301124096791149093943771038306769568808507745830000958274198935921479407723236596598474159391881414842635382809547160358245876666471632151636311141256561416983358250444041767272002504470546756275167352803620496508460349802953589008503475906749693907070758571765585878748726858788681662575130362887065450851260709246828517198024945136991708033610954320893896517472163142688614515126304378566627421439531956977830074573765073466870095408987492965624648618267070758126868344619143366233843319808722682363897674622322122608987911838753784398006079762465304083088441936093242243955748981215357592268863122321758661182536861072037989383926390951530914164046123011725161020078549565991240615496127841711389396870923303868146752492307139516257409189703579032330604287447888074024045717900091711843094071299435158428415972545131018674751898170674694970421407690838011375015345815919928131040040226710988928583563974846133752749233191215265743466846442106839073766578084491028841503555732226667717876730658726457494280381855921464602637858600128954991573360827487064678537421201120875974898167226119270411922854991120796699739834204898563080650330875905257794958706484315029519994824489884346105760230068942312512133184294425856334658895541800732240714885346496415662894129936045344447517498152038241094795045174204418902613649508928802721513729100302541610605496454030676215476732076123286826942560096280122139367890482461406585604970318935755652562891863842715057561893790871375224480083242682630786515412144153205829721004095319959104044288285777334722909864941711164935597859998626564347577822777483221766525306349341525145609495070643290246632746980226212964286069507751616502825775163583210205418760731685460138102853241842352128562977785987484233391574867729942805537593687463123736972325825707044475638485098118189970585160230403625178431818969313019383103955983851387736944469788607376377974824669092483224524044273387607547277121235647398861577306130066838419088568760900596743055111070670307860970995209374623253264308135709077422148303115561157512654510643637420553055135273616434183117948462761372952010184376256955454374558575966416723340688725846673476014299646353136629983318947809965014829316232477430861536918554333024136476382930315576431683941429831856553394822841615936459315915220208688759573912647741480832772257397287428236128155043648520164772454673071931995394606176635975168430993272854199172061816820366112100377001811461145214098861420190500683367780014364491820446046064805043733229882203570454261938332162834862858481419850255361326326155507922876221984415334178654344922979101293488805651107963149622799816716159623796084669315862073549415239581382313195161070596378139114406288088845370209520403011753154440175598851006543615880025501525933643463246709555076529349580699129269833193302568903849674180588017906154980682621770111474927319489540351891288121432834262625591831558285466591743618587929263395693094323655155185730597429247995891389144160969436740760675651794004606322149282706230912610802513956778520789847259606359904760694507173333984488302351005946934568332103682583900296672093348054181458583793131934323313948869532705037757380543965004931541441745766709569273160895241132435864889117061742866193784544843895779632471960824705207655686592022393473540231793571458394816992558228614554242960724648516960764935282383940166591356210150750546431135390355269680005931451625111417804473096392026884103658009280660027852241643286233443713788517597118853159361242742854044674949511212709868096724811416679934278130991970158332064340605826149865461032722603315054779982029440758981729863392603664815055615791106302982469067583825481739786684732432585849219116384441581243157377795213944903906428543211253123910604271419930282762951999085769004808025653549613023105595309980798103742832511698912832744349075123670520325816185428964108270813427919109645131698724443782232697119859827126508420639457739731945072537207455148044676644041925903144967569245428253035650338064077089661399311967798301220099857943065424900370827718387805907103838566778286611079131725215607460377962417147290746286804063031528822792274131978470683573217273561735062988901335497850322561397763685502039929148204327745568755286978465543540657152559920941849187773801217133453930705962776344461997768346722305041383190686326210476220642572379463271593350668288638128959040252141017233950606270929994803288578724900243575461898206300838221602134594581394333930478029017304964265672946987798353721999173045982076819566238644135778189155654518486599848166048572057496802051511995620215538541987790500827203644920918674826286860035393819130675180888744994201288921119288669762132557245500881652950461408795625112981774110342892427578119239931168133137395036415241554511055725848620748682038538471374193380674724078898358205356538016144270358980285261933972019024619314491265759152730703026629418064791850351232385103732740936390922344120251701143985597091137819106851753839236536756717188235652770337860404156671517669948106989444923691907551900822295861275818864961972626184980036671466361221544842749648420816737090194961042646094008122214452054732937373910011433422278953105440238665801314380821884657504717736347992970144937116833102622396705638530862429702488925547806060971841677395194598667491746059997473924623174430632184601264059323969647026123101195735454832383566816902779042568202509988315682098782322283271229640679816667839627222986449265288151914545652710868553287496688872294310007713542704326127719426702679606109114760069035439633424803840957757620227876965436569590795438024159789074161029911309850141657538861338115381035451683821320997324494575033638200801188976271768448234427771976170410601831185900933539243544270173779786018343839968636981886569919766488251697404525781477951800999356290003968213267357717235299520163764429525971617499830292936847437638717349921559089008840758563740423471649667445289078777721399788520734022476748826846775641008691027815559740279122001110090942173738536115686678147430933912922049209998391870761662302390399336963217318510402770799613170822059458631828479196608089812200091127212280445385000222710820117362678261042682677788353153300779371063723426421649886853829694874307418383684357569502733999279812287997628999601622515981748966673770157999895688421169810636075532254187648701493246060453137557349002398369865664174213747588371444920344111604721154455010469546136007920747406299801036864830660859359386212716778773622162306431763824544637542462178551571272621897999500595863893243649701634199864148288673000742669680422979010576514162892918591328195949987540655845122783744974268772909716303168837342160260610715802551773961693207556430176313749886717667546707107142901660258027031230172746193984120698602138176614057129074264568746990444096624824350304518389509911893330288120410405549620538336826843172176236405721391904300134780545891928294305473830724442338923922234955586380307828355780280572622079474479274947772080091155107206507342197285103908238771026363850209537102737070832619121504259153696387167432049095299390865505863672573467631953407000040392296429890340673729137880956468850183973782454239508788044698827650045014500979237485391501487209755715639448350419973048236344770524836529989302513293082604285763286775175070535662443892263090260352522509882249276934089811681805761615606365894688397546001902859565456535288420856056738524264896774072113769698959288270973705854311428030466457578502931852049567521697378316721664529985608701955639978940541963902807205609067856965418147495337166088090881115840070468945448226198046877676012009982534745961929944939225690530430509679561278928653272989430314687142549427703656030169375809578871352941858644867960687869298482338001146869885906284655149690901204079933674368820563871547429590598145853544673970828372228094424149192179592703610283657288982636643641103130560360450527442079515206461287441680878562667432567881402004591876870393252712650471593374155571745006811756857097614730025311346590961441042773479370132512495055636697317890382513121718183866755313282386569262463220007134575203836500452211607523286646919799272544272222744135131341611652023932334850607837386300497610240146836468728023950380176890086892124346375632699440015246103038800328748701339639927452569557715275299736181533410523380436333745772435090844690095049891902030717341284098842028074994094033942545990443478973494302532872439976495466332008733430163617802000533865271128971191683576049275738521854563382052159773199758198414707364527247878135511816381443836500224448997156988705999876369912032399333873774305536360941025122386260965845279110210287642723606359515977220348588079496919552143580387988436231904262030472132115118852488254789588194920666896479312763193896537705749607425697954916616606998333700336677683985326436769946669015600777010961973326652387554283223395265311503421841525821270344988662287547833037779765516466628285804422007571310307263224817384383794845103361797009913206359523576704565419773682247728680424151048848785690990637613598932193409404696942256470518936588755772629291674294835925001794651540212864614492205132104085935220737791808144281856859631512776742650037167454484704562909110354388978399592447929319732205754579532831351121147002295767189912984001952746396982078700778248810261802846199785248257277349877438315992695809650666277567294556815435392050678686762852713339228040771684535859188608769598518858060438245616656671757272803386004693494665067746285200729939611653578416922578586179970193459451670742884437379585484005208640592922363162207437377165037208916710634832408993333897710332878363490857454559316039590245091786392564806530249383490530507677564186589278370003151662205748622653783385989721378705137046612268017182481188253680765262995045416196262452644122725310610380528305527893331059275981210495902694795056878629187242680165410766353804124607529124834632312685666575707871105230875714306439019479436845228823285454145822104096443476501207352399153955170426076112068303339774238806332182312724075713558600400129273258294543924216230638555879880204888324935230567857676363255126062871103020076300431723829768505027503000922572897286563374544347963054304969863966324432510729118292409675475465050972622710011207340627046912033483700016234652881338558407561846793097395811185978616239426999921794025024535806971903701344969290458293876862729856571657746294277018191012836755468706704315603763580468467880999871518293878894044667521995525800311889027699299473532634527316893739587875269984245261940851840325990315232174350724929910166334250960070142803979237192994493574622826889293368534571850427452960780231348637784750363604659879579656037017978377824204982228557238339360567463252070512181572915303394500800039961340292088022966817691434150336727282209880243183349071304329370778972850917188078903467089901471979000335804962195935968148480186996424069424785227571676957985386197451429419889833827585170282835631812589217880282760571006363307003246270158999147076713658400848679538348929286055184824917909447308592796699912307341758774533516099866382798215076961884701705011765161183052279149697076248877532498646074849915585811379524994294931059593242907261436903893802354661450216168342495257969076113675216493155477772244892044158341242817583294540677554766082633368164884804399802351729202932335862408834293563741329951019293502471473275181459400055512487941871504940730906111309659483640149718864769740749572376418560170817908770986170792949055143758764753623356026158037664054138307198640029666902771975958908957374183559118893484189017971015862069891553138926114759038394632961208202941515775097101476361103221055447085615997773623033557943740339455126420869033538914443587823506858302613941165251035460651279366094764867687460641764450454272057243651326319555215184770635998774594573757258530564615027785317101818949288034914434943585446481388107052492143905232282044653811196530991631588222689929609140413316525799947638097209129371735336201597641046538872470851665564205612378534752906495031588877013544540027311449013943182258098017673331132606940974419522174563368124801686282794863406523978335934544091613923449766440804687764608954846777574049002106929283803511610334834196650527586456618493538626160777097967198549948403666485414879467345487238257320638665408768582384521860215446479545024104974991209201323378882838552831271697296754359798546112042591880979639357991004689251690528696100096125167803138874868014831183973637689512046660824805314431857103040992614755012639569238179098876117342037354286969914920474719975462930999798094138394401732523634552400883194464280965196287162971124764760138336609169306874649640081123516421799450956425289762040696463435367266245100527159506746428491552346191916493130140272487233726529931401423628312277062318018150643123260613661678533466530825203689929785912395080514851795438091814663754952330026098373552476764740026907921162893106539351874737937413275506295230348316808788226489665843223474604446911973141889841186182659059914481486201700662547942101494044558983348116605956737750555894757323685939874730846815910581991917426665408419884388549966632837627793231698312662087677116045076800554439936786066074100903638365104132563400682198490710310350201535901980093899814087343290988520447635152103213591760337296740582625299283535165088125578123797382806130771260235952416379541199516127057376359260857524377902797414965518587244025711601900898846367187990642197983708975332564007928269954469806289598361430687233089260733808378315474587302544982594412960728380002896157850084032998622119564175123980614191973342052797152937158251965389660945043876648414071868540220993553793061833710271883404685860518940756973142005041902127575696097634434038761068490611703890734463793227864674711585602543952993852346017110142029924613585159667237558493132518714315386417438167774318023079408160057212603762274286023162436500721306438773591680734454184810139057989058793506536233134277090094704114264637415593925833690206061413529204457115216943807660385541826683409312531133188178944769096870753786994953484589529015567572784303635845502978311665033194779348318973080046122161755804241302117886618353026059639697499314363789690716054563663398412825952876650785966257714540041604786974451911541179746859298862648772800078170697685959446806081557508537211391346631554537687448324312397789960735160628720547993216611722175098817383351646442652553890576123801745738970231936549276858610614742985054484473038914933570194592677306150907642149548293816642914404280641095234993870854295887020997803869560632537215000296773280017949123954732558517326201484908390525542126673641787266666374479761135921373556896331426663885968967804657813534924176860430024539897661648791617376666826505655408099717245937421150223487492358682906717174983019501531252453146691001560005228189053101696863753345328438782083821021023611262181684328808253176166287694619535118310356432288088008514284151617439632689983291129693475403197555518799601181223270244375285288591653039197123612881738164062875380115340355859100575403500460205393495212923681640991651132838200744436692955211647854605459048111626127019770878352746814119711655394298144198874416081468656345187247992687107784711693778262055252653726056391755352857639696235874152773948726815750191866726257466815058564980401563067847848231576471600703312438885257469415467937318167752281679647336589990458999817644428359572074411323305078400833304381853092465666841985856777075949005274105569605153984817599321732952205026112634694510067746738769764078023058291837547569501631870520279760129183953007991540981601162317747208247633079774824442071959902534648851831976650937314369819616955169039627224691640833502133637999787850934629685911829521737975037159934965024080888544689475580646540468428783764336243190120952160885682481205029375828369416554146692942940982331886520443435741342465534412825607953300098989544170412095743938697603750718120812071114062075894229698555577988937140400019337538912527649327910709275470972058406891657358158207654552482610799284723945420062289503510703459310253580278217809840554675783725718133672528987375961312889553796239225478713029692888605006268612527549031015358662087964943039138609874155486186455497258123473176904030584268212892634398163880343096907956518553848411888703189892517839565719639657432355159345548503234191760355906578229616040284259143324161755846047759128067957696323111978446176389884389026038871092375638506813151926171290755066430093875708461839494886642493417173310909469107538401429879983607349298265517668999326416345634547676382220600282009440894637161731350636442006545819964366785858130103977120718634231376069340874258302994071529911337502732304866806583326687955213171154650723314351690952671606477422743203723504134222915609603452056966602618611574226802498975495374805563628335248004128294974816887137704002946815545045580188965273403068937537750756882913909665082940067493069897555268035914866815487271250666216237967963147541530141584698471157727083253295036741724486482727972215804951832396859624283647133816111347276109489502444017732889120211206868679779085498614384676839895869447589106850835887310058046611009801409271801180090321867945631210856415372175788686218396705433446274839337560570712818301049848871048781615150604693662128896337677800094997652620430194230983222804163360810969730214668620161464709511240307541635990573204299931523241798969019869851855659581886014023196496009763452949417558999664349649037824686312319764908426066165809985739490266481337977455484419621870042904475900436365993331322319486612161833219953132936639792285552203171774449948252967800515165735593826120947276315119293424248314651998561476506033036062763050544636904837854666401049072867555589386231969012798845795574036245675419023667178483783514234743546767616855041550055291265266935336468990619792266803156017157003351228307144770302741083358090829753103652974837535179486874348784632524046924488773259686045301748791273709508700139070758176894225787465446526407821181968738028461451266044084395874671283917877107713843011746813659764067930149520273769962113709987270220940820215914943712227489642899341528127531831024925500069041489026754227857086091557768871528650012576445141305804985050809972942176763560896631242542878886772122267274183184840800578753512224656574230580881177012292819466070904105299836339447534969795644117564070142776740856869163503093114381929083383348977036038993580202252700793760723497668184548001706043660812393613544676438309710333170434511832538971753223959234591870135066239831279694161329361307085402997533642482412775946563626403844698258822552692487345201539830101982662508786360194012220921078930543580649626587030750127839277204357905941222015564928035977664279957982297937316933200762474409657671736256020689285221781678613665456670206252736890478167528647756501982221521060419941834303218803395599923102320871852943405546400539442955159427239678575569414987410439204284560929692661508262467155657741257910659774388524243590855579552018151893634036567179403091366402529458616706846725081276529472037552740912614211243582864223708123660404323281350972317930769271652169094307517375534349561717881120543165114105900233548506122543784357149364939090391042577350571095901297575085002494413233051492996197252177212909608450897321096783180913659574927078260535420923917293695340239166226428589195070633334718596997882810594534787963001477839992669658882106370542039211085303328514411366740425632516439149276546109925936665931942156525554819814647151788391798348073057173467295681977884637776340233552558886832167463371137072384875168732027967686104110106045847177315962413111436034276965604522419937787989733481082856588144778487456040854833260127840739067032277825223627675144780265131262728967461926093207641260362530447548012606554595981906494121875533817643729495233319128504671998529410486592848399475906349905347285567477595612439308278082907352305559867097412052887801455707561171160954215258825504835152035875522490839577402653571198217479633057075859358281300769197678892374047797586856767781244561836891149660862145263000555801034071436324405108510095873527156795068550108324887359265291675303230672706270063697414808585839630258891297712031251159563171649494233228505649425742267799555198573913243178009037677942689629921608266101184141546825689408936138351350458613507281573490813617679623570353709183692854775102868130430531122662368459538336843557988657691195779909376113020853885320290754712831358581461933598051957830131970087872424675886277497704157203286789798974594902192207838749950866903725353884196289768974993654581168842261179333466749504854434105573712285906855817991217010071829708102943209364518143740857138871936362488118307471339950863826042335353673989740682687261441496916363107123551669542536882802764781566929104864615340707896596249047625394583708048014003639361997977328616088397410034044260027397521926364357193871429383587657135945017128606597218451763292181112273042205615398390844009385512071426441730057103430653944741906936562471412303768202991165880599005283015419733886254518415794534742349796562546099340733327977195795282878425395821866029439343113810567271768686336863145219081914934161425051348522740812674088583762200008224635354694834154420458386852151336847217485610383338428532324911703840890774437728892295068073462142209787404347056896861002711107894276553979545916965092037045764800297227356597645124384400360768507923668767511509653708403544787634511529700320906457433118528306762904188364616299788459430368232219410358629104675897900154438982362069984655994422883519361814423155861598122128829778567881426184196666191269796907154115300475695319190501800133617148373987654521032651551224048879461979139500323932669779285582287301340590038871664994446329355378204229773202942787839023599700871807066874738162668969156322893785030140205668650523322185705767952965301486318667085707030246119061478431042487190672770622824062677581481874308073560962204100792851539870341207642591940335932460873262436829865725351878516932721157178248440861871230502502091733211463024410320759594921729853096135691619063762424630252933241538492364744185051186646262415558308440972615065591530872456720226821773761946372312269433662491801269379343713497435728018648759190396559815698804554205610895819866526835530366095082801106337154628500747720726135944214173921214622607253926973169291427658752300535141118613877376986166830903404413609407966322451582762474256926512950912047850488413226735479820673411247107180229918786581129401636774838608756414233509291854505193898626790332260623085431827518232705060107688262527551730678236430620636981426408333498090709483368301633770656294737035231613524502734637483715063195944085688026842171846120042092726440649359105885435785922428745962774545938595213468920132986794733565742415101972207753615902294763146648719681200404389085925649061561291146004504081796087504928153937199275448072034766837890068592918793841567837968193664491008030847492731947573486947526498575057543001942023931489385000124535015582460905898536661972689057980704904830040007506274084693563226065258703688184943380827189834359682255366755475314853072566190304257527498812747590714415332290391959631476971022811787027367006378324236086371618811811936073675341051355379391948991138946770086942131187974950981010634964509792060843466909078420295910525308750555272448013236592092643761994212680009108040693155592039190944762029801879311760319580071331937405295315587232734783612068827035740174001807314369748071239467413313047000257142491651417471516947008774893402932951789821032848154641844367052994281091537690943765571285756663110423185157628392842691957218455646313355524251364699765018260043904919511496159651959974043863639441267829123201588847149072801797408091431548097434858677100427942393857247011879221106317481432228850247626997611306968367049609931416913312618767440520733584982299391921906413459292152343052687685151678633717697336321205070648062942581502536225056328141207053965685946606224850277118249680625117762262048486843686081870197284762784387306448185004841152748357293010260693459882816614175449218762494460691180503685882299164341631063247289165894276187513491669269441578798198001880391426891845095154880979127574555112159458922147269627333240061758646421061240379807199211773587842799289914257821881761235366698480711462584997834703449572020920949784242465554108431360210445142293676294552596999407390151187429005839382873674031607300063521661059513775978465523906412224306979024412719727622076386203235430544143338486054064110826036653431122468411567891550654254515156314192690642331023102057093529122820333511798082115489496358152279388602329249262028185609293185177705811647197889976958234691770859889205605053182977638963608728476688967424769063841589720753990454849985053175459915164256269784388135868514120503733056255896142736961530939259818380759853963387032281474633698539224844037948809421887354561996259240207635417767740065279189839785724338799214806287114656051281025165403057186659630798626070329941951722051162881177729844195858529677275577691466550777894743471052648511704879013299953933727409519145840555663489721650302164508340468299574511891703280620726791759206733442865159431982316138287638652324926183551422692110868548670256210544635846674395903693439497241442373542781227541960843296789737763802229051327703846308256240189293141433697367319923067305625493685232488111460567620144910510527546266460760466799857254451175674049169868181874729891840184831137764846016373296114943909360598348720756526011779302661439338641168965529630903265185526685744554635337753865805935226195220239932756640237315129813857746593863605134196318288334777385426388525845887019563984887795758854027290449945923944161239503467956609680487149471239093927733590318920847093372643247716137859231207342492831807502886658330897450260679518932107804677488218807445909977444315870557106207221583594750559463225453607159510309178381438486614260443450500143662023059270886935799242539623887705476052064872072400259021791537436819070567374309939666562539668530374811664479622144741435238806319031606350072709612189069660602735284087734610928608607010314833924691212300710680036798417333817139941736436749695540176260667629290563792409553440462238298128009674687287229600877320978748809848490344892756022615671651294326024308566572470974226059648680562746896527851368798976913214921309024121853045348561482781737778441919570389336959780257239640993836061964235543792276236891393350954992826660675294646264878179385462799078265959316684110023672148864112627489291868897832043641700435708054550728097734724080861089007821136844350938081621270416486738579828761524567548013897966025695816243601135212866538460282600766972918886746170095692160309099442452238592455729627828149059906643708570864372914892674667491250864364944145516832840701788905935804824338742647303765314187955988683520401334565370805226125038647356656630910351434377707949678707796798094052636336381047701548392604642233913518247842314784956564450609660343533630051468303024313256777459950658433804615801223308922372822939192658563015386422325033318233990098290894467281698783058020699052759639433519513926166564900738185958136997886003143017753056160823257498045678667024696279348471918302675021787671759370520855381949363150872984420354626098732934323061754087133836681965430378712829875008850622232203442864545456040412025348142299455955048709531211134876765591743935850956952539502159329467883454410203253763551092662554493283840301202866138768396735569913510109929815427652665568201363609994309881767567147452798028040877503206591286429619452402753440274525669587626193787241581532993150409574775168161551072998534607496402437880914022921450584869261187571268104357660243878358535223172922395416410438736718237134754827835411902199539986414191544804851968209862797316590567985925131043495359328283569321851167784124528426022969063320680674341522522034574302427421878495076256572172358693311430026863812733036208767349537773233865545351655633892645707705114390906082572981843195919205042449208272913972594992034416060791856592164381893044742159031865205375507689048310402686878281952522957109746485236427337346061342671617218021379311421532777763560492637825964003121190489412672186195648416819651317294405248694926552214608308428943998436328636783372268771772551893548981321034451484898513313134921859335711937618302270573047047728174855597289421298266661709131558831054153746426621858399069060000038296691895229941636001096529949916390187751813969975411636158495148335912153575489503436859558232515761891668469395874856748679374349842340397776697761423056737065009994783942483134011881437665315199459186700216917825707579310455255072210652671558635380402203265980288388425145896946296205427710582905849549838728678075082956036904130100547441526727354293564602126381991204273254763388545507777083115101678208643437381793907670579208442559865520607992144477898011684067794132924307339664128765217442123484072913045539527455089615800013255020970360755310545850650846236606393013950497917430227559466458685270577788371064352488821866992870577103916922870922223318740015927850204660455241004120094204054854950132327318341041310216253873008371521227968508375477209740282208565028887925509594453526069720603107381896506846167738281498795132497516223292171135055814611917197715772085619891943953814766150858759954471066604127116758055479750033063774482863159683337085548216600143596146577260595423151290361282713803979216091392709879442490258796668703415700049867324281253314259062703491269885195562470692566832121154035228155163630963783870079593577414649147622956482415913789828756497684420243415747574527039415849367762005098096713947823219589884998106127157133758481101858393733345829360547323469280113949049246476006387125883004325867551694817462397973000338478756329502782041626252062997338867464975049336790680262550856295850406323335158542616200507942264408803860754529169313813222752263064270557525206189683971141392874908900774700343648594260633612746166410587816828951567075572496638314150195038032214981045753566331207662493966780957243055501592469446805572052798493485584212670952004320723131585080531111676813041228860457952353563473850035882427485716715395933381438201039231531631458080252988881810951816916852821900953652631437156682745234346480011321285945379211168804287950288901818686032311051564274349035272607819857958336955052485229614916096574419631740538227603437468589958678831554123697090983304438873338990641981941745274707429766634740105654086008273726738103265776230284961552782604022356080053935130038529534152740283177115091875955257173806961482250994106414340238967941199283266623212738166600315933269238725941551798446899533762743663000759894077327006586315489831551689912562987676200039865579510544509319562771895402428811370047858217537747639129754552548079400698003657198818453669574620063722630123603367513631534091594037886779483187888012677356901846814474424252261794990270093927524101284548870239950123857342929054077286619868401687253343060947939800618811888208773715665060625154701660959169947515670872531417991475758811322459488880532476166302080614145798133840793393625391766095423261358312868463488277236878601169025159670014003526920905039323484601096653300407623629186416666299737756872944700057509471724334345302179424092852982433858723681482333719855906186945367870913244955221011252219997617288754824842650339939315854323148807966906657235975131190099423424670571659493415541595601774213161398071719939826865541012141693678943367120397260739303840339248430912179564520375153657841818483414485783073231768965699703840648964253527313985131862255100300921872038452812701669878042615762000491055067526034464899785632122273904195448173825882774029811011674655286370143685565407271010948590083288080298214488467377020671791142924742542884087667147855836495077186441473686740615518423235399997633841905684935834570571767631970482286620376211739005523436099046557732548733157626547763244073828615010989278158564964232954092053233924187001941485870352079040449691242489424298365793117689396574206535689175814799116069770779979726957678360075256672436574609910350078488717622029679216296356266016326597242947204015734075920850764215335258566860811743178598916704186650752838101007574425138299977639649959050225843027198678503312545513653595208458130995595052293991058373515079345865312565755106817385397746567175641334039486289116293806101791813477808873202987123136464854424631619845906741323357289440631780191560047497895086630407108999362126951686689768516766478531557961864167441786518131974715503221517329543571792694804269529759251952322254830314964201041674059988375288421468067374260973604960462961739298728106484583152101253430956106067882148291421347500779864897733351858200079321565314945805298232471257549611063876577864031201215065407043025451889391499275357728001060327368265324861314319088108298704847111693385204010770118711731129854822858134269224042925494856697113790775570475061668132229219860175165375344821217595421333489133073089106318109901415566964189279871076450594450481943697154283800536115290195893805092598369390337843040603085035259652506167047868104843025775703149608718825888287152118527329647699165367192504615164502966136828008638979780392542838766899961363906550522300941419712814561222360589517600557833015270620122496542607451409837920553843842026723398483950890504670234633263728154996902466652774515912685878462082399991113820104792803022571337943683890146240582359659585852945548325269069059454846313399692352858854614099175998677585941805464993996414855930050045083028324705699738937226881640395788643903054283117836128019497967805510832367350392824560236634979042572981079768605537989514708417313707878830380794790923221729675150823170562748942390189293422442696800096494278184459098234767922951432759419798443584097000072232488450359108645595940143961303896855507405922494835007642976508192277754317645900605316835808738416812437843574530568272788764852744973200911180691927002871635447148597782443754186158027686511584451669278501076000060451915138427308869337221112651344722876774040419142137153612896501840946512426294526504660094259127382155670678556063774773618262160166020746552726361512033429902490304736698014161617139483078941556290498932586382405164679581652556898509729528557354382458283968339927452500038205381447196683435881190143889757602335962230221393283237576638708713518171614787433542041031935542704984900976998849720410788590250935563756024913975084931499471462861466764564733305199354465713581665410180065876721661119686890898114994537000244955402555600335178956863123387218316003629190898521166109961317650693428871546721244815348217420565022116987550543094515724719456427887316574604581930244648816040339674481089759608119877192288000561803799086644021902331961575517854599507982688749315793056621782769019124582176808887002181571788636435674859591890060826250969819644928294754186867252822178225630167307623267077293094795881009849457460559237416328250788381898334499466728314043303844018385426405160305587628136926099543119295983031613822261471331706222785137191031024509047556295477469942187498776912202465484016655600366840865017051946070546976345370569018127651716709752171190191787343469392586532116876007913857020972838025290171349908400803825861179942099891152084350888796954725017298319047331763648126077146249010272695512091512593758630179739296030248484753500292862940222509166392484494186715098447436375847933907678026367358010360899656415636488471822407782439902536803394851213020133121103097059915150540690986047726023933596105396436569729768262187396598436139647058598801011272695564094196855030849912812036713614775779319676769638777681504643728212358504593705223598182408245051186673231482900374187089542791617463129737330908892103166838545219443520159950908595270574160218773549787868991477726312847919250261808642281954528652353212740426239313711443542760895586941071453157939681080101950920721787585366643926147728804236344530017083322117016164277842220063755623000640154640388992447011066340314695843405127635980702104521919342037175691136902000780969120997244104444407697409271102792576252900540670235240840433556820263726489828846330336431393207969628919019057870909558800772038116316300897487963522704942185512144631054959786992014171382400145233737380203777645622785147649008561322835606715661052759246500267382608921960304861716728198582934943668780528877135829329371998287298510589198634133127349821980088258313775619933275883996930836439135282164566148194503383584282879671475364695142451614171643917334120510197694652129042100882796128229113668097981614994952790727633704452612000555592556674359815674359074134290997457399234622350967131344459650893047512735501885702517819519322178524306080821586382318369287877268674773904327226855786758225080961010781814082603268282993237322769081384098775297857482606708519143756309044994754208664851472003619675304710726716313366263722075171832729402993068096797623162401468901204616244222223370951481892544172062385111932286800100356952917885974519639056420188767243757759037821919760114374561299198875933639376001020839035654019103229244739018592837757361046480123554018472030279561374775455887657778603274903897721867824976582835826371764422247726199499035753705064455461500157198204914962986425214900720177255492014993091977963422832577710297827600960432902281550071074396020439164990101802734139196409373858747637257556957830033276501860796726332386393553147726146769711132131471128321704154636598669348158746354341623631149940098328004271768667930418236769362035217962462048903278110826191616525761052510487402001077513656899613262029508430844943512930906234561617952416240636999505770430709867984680239631325461554784278404362881557880891459901942823379229377987629104691722368107625848090240264719222709489215886063303013276534220248749599719423939720298422345850000584888472610240892743530237155373963304225945359686584104563006294767818958570503329623985948641550897103118154312293344074798088883634495766923471057946328486296097351084606550328756498816900149864461878560126955345455706973949701186183811606454344058906574766335041468804842633028895279313766351003669184526743080983187684758063758408092767039508109009326871898617744078146103235913414645697876235060501789510834563600241849834995957072621391833472164818225302609467817361639209092926189773755964234653066862624229748943004951721336440566498619278689944749990034407443524208550975394586569524201616586811640102051578025297025879308789662997435307818108016920157240954521046835297219200467843564829976434165801192272190338243299247752606935951485068621787831063535555999127508874383408188007214957569254209032208769346702244307611637079386818639974538990813362663020437429451011442373575551992012587038823332689549819357087862651233648925650868259459183952697315839536695523659681223336329164607038952046632179760605853059891344506841474254824400322668759330554807045813780659046790363059104869473942058016400878759032368154811957881875448779275526997361388460478529349540513226983179966086011728419397612778057575853110956826084624541106667734697986813259818084747468171962893124242211736294309474818175482915897444996045457572630660149845907274964839993558781568849354274124974803400549096716311639043835068668948236820760132189788436972817511715110499328941938258317071938371355367027376092955749470496873160876616191246745746895883493889158771755213996994084897079045641523131060031173882105471170654609183201116359665074156449930399473565165212603069751846541970875107673830529172741558997216943421275682257978406835658645899608627923412118951540927940597652347077573572170432896729724024247234807352826005390336852127261717768945635337706500793934373684267499185628474019191702679094311597723132996642859151925129576783123218568651400150377006432517111838798809943997746921423408662906164264225434451040883389261942530591361803550905338120541769145848044560313345381506993202473284721200315151508017965733942866955369950968127867885841448794648863872556006871608365669116716883409004423581782094545246101008724847629116074869929777402772036382167853739025273536797672378665220488513809562561465739517123332723975647322283776022170082997000532012997009207672542197299709689742990427109462671811614055217189137549726074672666235753847630200774929968984333894952448000874846127052363694613212580235380664394941708138749813579800987227795529302961423113092419293674146643112622546515725724036474325502259406102544783215079078795615734064838300858438136822380966953392988651192037315003138768832714684691261935934678574670937718035880339922184900029031981767370768543353605503766583110552101695476715330491260649234523374807847917059161016668687813777335453710281059959218564350012799485093098446033015143378817670019672460199893769340463263286680648637257751816912140864922900870627696721519103597158210969940297038699653793430707531942074841565944072487373851833054461910304574415926441810387393845170578450789378903837598194225506151418511255411312990730612128663399770933508587278508103393044149404376614621611063157627054586803544230786255807790533141400609103288402526623464873969231669400207239059791626322625360844873657978258505738449375245188354946326133225336854098101997538532214221105536919404621209288416911814126559189352721191094365915000136469000193831596722536452486916866955753621720109746860383021862096326198582867548722670613860947998728515393379306019059910117700433327770272987968822106103697379612876091532173076809113862948809916507701648339446243085427455634186380930417344545875695141068135823329694748755440042988125449253784747186605955804824843613147462106218395602666659001605255477724540060101311030926415709946374971632517407639178656586339596010741636310383098853710762636904553257291286840292311995558578359889574807191803313655918568961951804759031019134312138500422114294900175760704203482233417362621902413184332228539786944579986856148986043353863168674054638038535261501949404704750788242937203371445142478058210422220497360083342412700592563683111309788995549213801787715743016478734938571778029380742619323753154439285109711547619608787730677152117918820954868770954588535818202298222497639639927292418082543821840275096033907108821594996088573459804923350584873745774728950351532160644410888079883408495138491138010074230348731336101698278559092083311776302839914476701323961146500239140586420453455352994221085547841013480994239175796529223700655624156367288866360215999497793759018618626944062581035058216562595745542791321078078480457158833046158238581702512864642313018440154319437573788011015190830473002751567865928257585977914395045508261475564482845399590770533846787224038957667367668585494361581299379076740490048529173385040549327588121887133413612517446302786953756903002550052498993024299122078375410232901538110024223548809409819550148191335799073751885535172657042557337222195179643180181112647630585218965844934605796946022990880957047402628504626715967813742512373761812008773341562669837450686002694388172967397933789918059062088762410380000305003139027771865814112618356249430456212315943412098421770749153473928297028424088738844213353613064842361081194320874190425972247714866256182464992067338351653351307938297896781360701645581667652412485456727459047280727357921807175657335522913583590719683861875694366136221397337370391247467959870590880466303271791085102007800145101041681011400736473392568082795021493974778388631698284858841692285215634955962232753590150149899177432467578259803357814016563957092635616268498350545526389323915859669766940538737515276437733827309875047574921260915315307424962328817470502061319741095951521881737606308802814231172592364360762987526784228419465195402437299238463534744873427596971126106487259878651230056684601419365401717086486300931708342098840878572805739806337366147298392975399169829620272669325506880875881160889828470180036417841313629168689904499161998105281467027176859294163463375006833540386201334560847355638839235216715248982583647647863473130413424887894539380659492298182310983651209677066371735409178196102233435131806370725979440320376845269130735927697948385639297636907515253364753580485493157327509995610326992161466620874912467490811544492724805728616544315708975128112729925279590895792206259868397366080455993828160014341136987472826730971073825108383597795669989153334326995677280028137293413873136577138460200486203585282736668322184580867250012478547925462297714399834910744053613181397629917304263774743880889774815619555770726897258205812820413836042589811565960876082119331567668342709864578401177548188065961189239189101021737240107084282736039348119161583037097964596132620098889287374944242202471860995498777363942525774467069431681198712776093127588751625248047354830328521479804165921875226185040840662063314356415596506590018212305103358325904545658462021235072476489717424881159332501091889003433501985432727475750771952285588247131102991831221604461277661760355760615445001879122754338838805394750562099687362327136460334576695240959810489254672445079804465928528733959335509441118302786877347447019928271451029409909703940266510197656030579187570479774923678455428842222691100179968921537736823977511396737338168958170299842478324547896301904482572932648941696493823676904394984103426776995774020652797166848703170136265429361236286336735777338409254540663533971858979586953066435283428700684635002498192026229699193687961105783468572302582209824275135335513842202306925115303912324919615094358385987137065816327469956311939232872552556115696438200935016571885078646789456885610044497158921171511538746070886711902499315432699348941930790219867413422226109192833837393805710297296997144295809092639511809590119418941148760263506610047740340570133805237985886302154527420581576856925151038865290447105780310240744952538742969294011824023070919223413110187789751114276919307022049733218850172255167449469489851268698657393447961479475741743537723585482475515611283567982693797442718222166839628940285903218438375312522370555994073854736549020850070116505669184104585415773524749229906381251015754733935683414348058635222677634201035275883805496606090931493880261007777628260666917859729312382128478603637895252795301002128369857849007442569696227227131306895575330667514596909326083579203601737992853933674845427913067925349589900798871777750420271012294269512246549500455275999422953434278346852056114147904273336005607898446199806358268453465172907854044893250375863393448156264196007214325626718313471970581385418436809468351456806966160183671505327877289418241578906517206481362280063972043798049170619016771975654795454372192208684140164958629789212491503017807515651291553085826440293559029618932418496099926904832558983855486086871011203119513820919531143019925285257963274631747901803290312963869725778462439838302643653634556251642802184177165624161822289061955276742102264119246371150884307833751477509174359752024168892814745433976033257171219217431750992723586795369851568287284201718998515414583399769222245925602779365663308638498248108443969273498010664109586730179500355580438199309125721641062450299872099503229716944746968274140154648244422262718405108225892353606743063518676293488950017139985656519174484031381746209325876900814227015962927128916515739264103397160751855363652942021109755307899760356783100406121723370792918890588702348279846083935327848342576567985034280583502651319284148881937115395100619016715020063107324656999038671566428109375074145490952476237055395955618987781422577469367319435431382216897070742390822568506451868169109868577546786432545651161023725407187463159781218131511189596494203827868018863295472299442196224877558171784598759892650264736177584944994080398220084041917246269483134479998442298663363227460482691770037944634120679664816840144322404614737284566377575368670531466084885907743566906580937619149541879318668908675868167029187278192395332487605924288448787530125936950721899254956976080249407354778938179744696786798923569623737737934027630805510601737974305476523609762162095230383747869527518994390211464050379768703344757686901141960612711826467615656708966354352187156281384996195155157048710374227852984859604799889426532013389153873862243313527071293518684082965243842701559935769256043470482033352417669840777018524780713412295404501964422234889176197617806640048099642172920765885615427907918379032711312356855522293505810973705744179607496292934902880168921840082553967548435377581636666282111539948986662568374433938942188666085654270940254719482494837541598505497233535289188302654751376200833690762073027936113655295334324719631713823847718321497513640061040608863075167881040204817013796640366673892524786730381457659228210382133040959524090313703513149891224852020864783202483779809681916992444175946703112214538366140900001393734918025704974635963803861123981211416193944882476797634328663679013496685372977697424303808604353633493442537327015606575956999307474115628524964715126277474742266833751270049621409703205823054926811876072474678909584488641169015869486494578100960035367980223291451706442005930439820653079466132037270487020729526011010342774502854694092888638936039235475658210861666738597305458943303203204611866354565402859204046310842120582084861024845489716853408982535440785801615540736808884512861109071637061764065217498186383783845636718512965143196437984687201218466963210574179762132293871126912113818811491949721660472526024047721158040806567156324398048639351807042021421504687184708168457929644304911398966023831452580202435436247131148670569646303519747129981090680934107524565071098877762793853490139195366423204410263763693118933397229462850837827734903439868044053644675778745563756761694494940827267068936137165589108986029567855942258015794141238515223545890314988959249345001654968372593447253800023882253279647227772897399678514332726811964541973148994975709710554435568519843598657466394784434322862648302605956739223785392203517527401411585783542390418742812485495124126274965266592907553734125624482503773433369687446949473386628639883874096865025796465966311280837369049738529806758012752484627887216308685073583731182112063734562464009035141858426615015735988538517043289769384096655720934702551830590959783843891782577765232985430596272767826420232586570968020639403474698198744341493923873475693132625261653940168871239248292277012446409809856817913741654796649314922274431425159748268125628916439593814141391995031309011547277890156509473545023208171381546214541488514504137235270079377263052825788076827498390666742432936526471905938184670736797165274679768482972751839215184337134483202059368124792964840483593286764746444673604233101061898823583044557999727005879283422242272164070871072430655866275579319889137870871996999288851291504716310186731263433845319204878336243691908397495072719517993340573736732313806434566725222609369790928847606381114629620139095490556694026951726501138321916037500477428657047808955177577039778360553122701021742881663002982391214635059829556266924632443630364735001248531064768888129540818741193086134079083384374983625435673287254786630740276994884236408370704773834526710680260393206892133766516659841898636724598765460493816485080336810061244353561617960585547083397969208876329385517275443059374977135191363335438903361792371896153802301762892405163220690192522803296646514064107747825261862003734701817929508553917528129872111387277873121502457896258801642458257484925416106480187635107030116519821225320087259939980927176675050233846534946775477988672518853582162670858885674710839773522553556144699596877539657396551652319527177897878177202562757293802406285522192651701592056336227212983258452041068634065191294309096295813712474373913981109843369734086588482431461267158425082263992332965205692443892585240677510887912641919939247918778872613786484720116661985768413579304755619813864310255462299088980546981259649074924813832237480958846406883572312503865016971459924750561544401493718076845104159739519431971661221153574315690030285095397320296021789345017594444850880228271296959542761150272380384608868945361802736181126552579738614176128650400909326735690600469609709926537802321717441593977675486794477247239563446940872859983841776013605183886938721897828695567997622815226155700844336357957235794796574530602970491259669996466054583550206106735251657150956611485798970115779950940331399935985148209160743456077706151534370683145413437359721655017448591832965458997956092875022269258386629829606820219905907494572225763362339381740378073605087842724318066791180658586431033467909481309055815143114290286787050643754619563305225245469807240135289784302538279801481903767967104128063681097176294521308593680289251707784831574106017421346216590048703189404415821254225894081025763355061337047001273213444655768450794555619805493744404116842363193375141593592534502997901238561773030978219052906963194994366180904957078291652195079089251935908043147834786718541896952954879969152568517650438454744338752748208499804607334124039610581375306742414469390622861051323740027049425541211667349319031805470881974754380062197480442346227331629574205196407323858841648705912772608544052251859922963946304195251457384134696392134654775276756955587731725559011845054698010944548034776250964044998020858786217938167224815067410875323941630303003619135742606731723268000934534324933391722542771333268574765930959853247510070439895869494002754470906737903236023807198055803736231490095486261734147478527336959268504863080918053520946350273913799535985744043735683677126945741873073344540913986228257907317074552020690546647245539240029608121696195472621717685884090966960381458713022783888725956918434381981839896017886948415916254002495767790475286165355017512120859422341301601984037280841139348175870771688455250699001331911509317115183828196581740008559386680221201352721217254360044039754985796328506123155160800758050061565274372361158921062032238466001529201411817460275959922262157251790370643242064669500577406576894515261414732877025506905597687467721173399240398581571243900567783148604536026310275752187942488988085782843161783952732204615732397154650096232089923011702311043631346805152205400038653820158316085005731214703670996912779458162665701112698519899525207290347001787852079622693962759589330841831771993094150998486862768283917891860192225310511828645273118465287053348230612513688825113114631333479178361279060121121706300693223416467164594606897304180446078114925191134583401879783126375791256548831029881709528339008030026270985083372770779139813962588985073109309173355031190923306300909016026162079526384794502948906930960165904022513203490651597010019609463783787443138784376129678195040641909670330054124310715667917080676536167993552603774117102328172098643955423774695961126810528288718325848478061520527758936761544945279804054542859179959936597095101784973141987278338721402426481088250923516050118359530593782950404004780316799007431133854833522058587809898061675113218772758184350470465289941677657210944229988267477261000825117638284210261092084062048793595961342755252479731560983484046552220093452802467708038200669241461284166547316679487685098359232730550281923570779653156128708695849208842292292061796095687525800264253820859452223599754478991819300590405635895935217432689660344792262734545112137192032605012549513485140363315120098805854008287488255915253621158956469728331809297819411358711742831963093520334710087514533945788673833463326299028648633854313115133145758034624085488524939030681799787487237570175262174662997096058434574021561344478814438105365226897119176873370895209848709399170737991133553506047925644611930964954715171774520160154535937654577528441805636639837101227593071015419136228445565337868113191152240695087516278372855190233862221006228586322113490049245141946321623012974277157620564637076835567665112397939291479569215666979144433051430248675605038716743540830884050150362147297144484306666427585661948361081763950627919461821779229087942968989672400305595634106743749871379205001938196988228799293067712702788899508938487607676412838327329750319452591276490001365111723725985133688506316130989182707311910805215989524631650163648480481566575075011669949239952521224522596545425604899553330592984038443821648981446954872140350887904463674692869762496236180821988187185780160272450303185341822858700686703097458388751174038202699381494542176746598515308678424441139352524017961039497932612387227179980047804346702530060107309929868068818519997019014334475714964204061063428813750635350821883843893436264912576708989900973948247492320311801977646124551187438730565486767501346527583967001762552412427316903617800950932049402074290163475051265175920445642643766448407989642646448007629780525488297405549521828379791250892495332532846992660996635400104222688561283946999912228488881542762194216669982276289854708285787219235734077987716236699642959943295227410223782157234182516368057388995330978051158656472457112050683105582870774448799323112346364444599371839201641596083120873410033559687839663845585927008221779018314669136919631016543757134690846543884216064218942352080860965614557317428041046851827413069723125369410915513967036719265777373677591354700200472286889590958400627544011264523187272132802637195663204136023491168355659823629089620726473432259845274289752164732873364251594673693619949000685197778286662173237047678146002689668531159934489391544169286658169654803438834791635965693327695348308588746182429489489581150910645774610165668964933800446720092099648138535407378494043115235799130890665603460892818953693346051212276946202107720017267831637358249323967781249036845846541446256567131776170126814449435854916931398872677451845364283278444970720062045246365160356866856835415724920857916916133522685575341580628315179431141686358068427409337953279508106101692265599920321762885364267976977920963184485411792565411539454444802946658914227440593152527987324290834595250763218251266697013728113608922868240439464788902189392836993470818100569311008704477816405130074407371243198283303410485574693629525897550269241466958494097529995372527421774890604645261926267015195032804518416903464765436251341308439071599191784737018887450701825460275210438068723746822549056756800622539792444936538091023322063309518977480262182812140682841099812833288929495744665322828885141258372161315074853241939123499285889075173311359099540406793829338564485963463399703537189054477401890109186391797995050449841378097540813834073808771356790729903329411429639205584190316229239120024023534423953507342389120586244650710868577218420174462482802458135399685096327042672594829150640385074682163230280557564169875103066763756347905661460943130330421634349047619134504711264830290325377353666480345378375704545597921517999217532729086792049055775866658093573811208931237982558052068514331355943458168166797272785579546972114189813267793771349119996277065306176977910642006348224135207795714609096006641404391105529961425312955474587654963585704071860046743790403944863439818935494276827891867037251344965463444875926037319304723864063596572765492994905267859121899748514908159093357995957177183230403014767238702989444692302691079258458558985675226666543023752926147761638561939108815494655776122711692924136527086641579488491427807213714184696348398714459137650440220786218875277231100598643424847536653598632214712634873764549231473707211836798182830112216525768610409101758598796935159382117775535662982350828940570063093848520128339329262125714419269827681432776603901802946402296102971006790029171641990326314339962530410426564083634170547265945541386846119548883771622149183291142464506419714532554059234973498301793734538823861970880412049597621549755521783750699052710272384491861941282997250198685511848163416708815714740049416591995510475948796701455415778541587226398114830004714979067916287772378436091772290559440785791134675785172220085971875682033970019409530250775216542230911063236963939415622274328262445364895556859542972643132738842033559907739572026630352494548439252641958482249224891495228679580460121146143950534526495917239666254539265159054655048107743672182969793707852777336347569627157464763478356288622845408816453122332577758378216556698416056732058497188952294912720984432052716052469012098353098330485441802796474198553349800778927207745684627035351663168239383403985355562459755203224734621565675372038356346784490158654372353395613526974637609454655768420479503553968716644723320842510063468946990385657812165728408326241775346143843325520880854166560164854534359141975119341448268125240698834422781239662486138392456643142106114652623608756109136493909241685880907554212429339269550710347683066215362807927726867367128619955027430129874146267140422943811990021046779135754558101884208318939333380217714931358831384573403006850625883844543742519566219866088011785816826184620605148453476421771229727187006650850625648530238207210627897733576598567605169603617479165366349050280130466464456971344438498049070981546024508312461310142912120993447310672648806094192748642189638685343390777247429946042516334664498928122728992486870066095788228050514366857222059888300419044601110755706136510681526867790121221584790322288687124744678733832405230131965337187663499845404119638203789523403292357598639446637861189799646523107804176854689407277358359582439982564708479424235778877749965766264734721388702072906841921099086100653091858931984115902770999682542841814757804793973727611569532139695294377457371282275485892457494018621285364868474679747798501445910460825095459241607813606246254709161839794915268855668819514214178767288490096402192322339006459773356006984027427428172226806756706154713461358392513514433714054120788862350817270204762084720593936366381915636101358952653786402142909499543429275646551790961027834179474189607888740776876159502630803917741380400690139730031044109929460367735418191381256761843635537364377130242576050154145962746215442982045997438985244184996518615116657047805044049004178897495419765846349396857480883292937121386150187204681464087937192966419015795501620586056202449614570913813265463163661975409051108683250362228086667331601902224433909287095726749913593892486046864919455248113703155794860734459970652984248785606503338545469267498996261615756100759165414347475544579849289572308307449561160890289484491726635452642943249432279304052962008969337607022600164365542153315169632517409607954181269939451841140206862962200998115637853360692865017229160216530456411505820536976253664977253280913685273136834124981873124422233860298880482177289550202068509274233709978485499450147415579921813312926146472536763645749103136294906315366700175554299914703060167755670098137868541145993915356398733207041780612902273502928073760117028376470559829451086459059246095618877285182381345948206804233007042026441748864977679724815720917103644693112054130822601238283165128519693883949044324067428977660733926137944553679201345700221581630528354979228956981154365272981382367159201665126597587139797222006326258788703325273022696873737111340253560065167611168225385165338953066085041370265534434119922952950423229899945786282945723045269700693363263500309840748056870515060627614900510326774242620895381135160182480347835248719481588976171954956286482667325588734460425490515765158879562997257143943124846485954954740017289167466431008280685223534654596774918800360924956433323834083029458252685910933756076957119683657751058392719609502721251074115048722046465078347976062490037721691385261068407353805154564240799413287780900001640228708587573426270600206207716655010806800037582774472051465056040013850837333386286105882721079475292128704042849847886359046636561611496455938692927854284934126112722007616273868070186119979311679346319333190282880535461846638354178458009875483087143324719430052165336157960019775823297689549787925635623177153643049113063826292939480749770511026922427434980857752555467588708507051123669072739049427423676547034616837520660946001866990349510918171682745299088946472594396179118234325271784474615399599431806372164153747280934202014420686899816323741782153321287184494717678984182673636534587684295293961420452563391990235476164683408750814671950562663861838357462655645055036975430914465295981448799909090631903789629415128381311628932613963164786219599110728908261653594626544386251136594230953228172226979023960192120097028823857657641054423037212022600084874300304311200409955674604014393382275565856322313064730503465378633172850003718111383318159627851603762232706766130501637599283724610556572887279008780025485281493950286571227603925030495577572074721825868607553953131160931417624625648273298749480422274450774281364549052120333573873285302780004303004215404322543435615965153721345787346291952120824950248526742698459160820019502502087348097100962465323902969950235189037247728062994919424888631824444297682169557410006061666481175183246910728327662468118282725754895732263959668748847615154363872483222829637139360111288683870282964605561028899052236047911193374450569245016621131290505482226296804340650387260541369727713981360192219773605743635358607793414942566002588175852970516487309477947081335341971581164494936312270299506870978033162016597921906698540720085728106276728586808913957583820080449367043946936278460755741450897164176225266617168837921617371927331897722222645432562316846371624735445486644940392664540658060166452622683252910143242370459314631708118559073276609493044363241695322895067895226960580212306012774818670596303513408288109774461626414241837306758904585396792415965357135943391750477565771514227072439159485012003515998300204185573155525602101013634962426964303214020829013803058082260248641972570375622025486109990642870166820473061192203135786552171833672453626223173759746593779193736449466293989307532789830404736530948648968307002949440597295294787448693682015548033545410230664919422136384166520798768212964779508470312426633438358572034504300477178703815410441969212050495570486142344634714573397633669197852557649784993477014946231275235318355947092028096642119607889874363436023080499264870702678849632520455624922658400276615640539532501699287266982581082943912625261816205698946047760823619130873012233871336533979152082309951678146236572910606456082762697653283317011455976190703091483940257325504592985000148676309234843712817802961219965295879107358289012037093787815879234377621915195270114521595468487643184869375918169980268444929115788784509285092968737200740223458920596186207565534589752813959212696516712046321162548306794541518018253654873614128488329045128601951969465195466647371639600745044316592156611067947391902216236647138013266315733152085764282867982687161959906548496786618942781673068185422488004901065243311891943379036556279201469369457252036584065409161316928599334068927221189864678506346055756360319975325757016412677784770418421850675195013368829118605361363198606611882415451856817400560183688497911048706873316259252996273182377873057045398604732174620817402214602691079156750978445719538886633688967136767001879884247187126610537449208401617273008812010767061985951453442135144909684703180677376382308452491617881130843610638992912509179968148364435256570984390715653201413442969078720725246945820525195469073094006249006251356897178429299174271233750343600017946613427385465633386673113300606445817796317279931297419378768423823788389728838307762131943108163537573994838468892379421478208482537065486741868327692234093080994366613360735297011507312641321648234697145547764240009044183313530141391665282161311327350619139715644982139425895546825662049779755121812992018057160866002212178005513679388701987756609133622210441215679640557948642588812442453788934880266298133390044551179754317748761851559785427082027135501976760605202148314353055937340634833270192065179965509513649558046263406869015675150574847709924317291679796698191982715538210077318227356003182349696097354110757847496979449415566738153611978064534001458931665614324901648475036925494715523759593724422612029349321474464695687657089379526819711650996098613737116779409478249027737598344590030312374108291330442135175199468403229248077285407911520483749265890443407152817069003080762055010090946222796972389467308522719974429641588347128027098018789759066367752118447852878540498044701629028697789583366979321460768706404894007263715615148423653117623198281295206162973426997113380796627932649039263663279460414307965810148516958123797679750629534309273074999892537485224116887499741696976456203728715879417457424677619397816322316738254648906796118121825526425622849136781198267956194812174820305688911895622723736826158413452770416784896930701195274522468405022863873342641417789329260178870384205947952881410384367603966498103065993216828761826235968465503587365618927850548884603572936734272018223508111674012136035995063627003497284121385538740973701409440723013658105956903483726699486765743556519855577942448778539924109830550934750924289537247030398440642769186216025493132429307490618517233775445499044515920749944630355525700920786291200739660299397218213510539485275988097579888969609571469229693144210966914398219573851672975206851423518979681599449065156129575304509003963076504285350721732754128815508868816184657736542894970722321038955109721310721101756981505999997273322885807221865687549097973423467077580458140766735190154483103229477983176607738545792039575847065553549421027476380179534668136095846236319528158367464902924801412312421002904255495403289548053829644232397134473780437443648370089120685352778370286340247366110025240824824884149679830036389941421461162084300590241544437067694602691842601461910103201245077889889764382896631963298706933157814610402815085548541736331119937869654585907944504404454261303155873881232212866551581474266474416211446282629495773849574160785150383688992861786817078632409056160177042263019191219120026645867578791760722335959378276561456962611818062645923098309587516518667574842705041753645937739462942218533368204956170544526449752071087336647386825022980784607561557689278577631099619687109752419075394446200999458636603170294065228520255694824734374379820120548145733627725850252786653931574097768229865759371107647722686521621555421862041656841752301369673292648837225858354720400666031423130327307137981098522331064672624034207966672448265247524090533929787325079532417721526356671250926712690608599840016492479558359790243777420597312980713369169737101687386564387675201343195369595964430065200098632979259254425303788439914894066592297883899328327546853086837039066237359649609473247085952810607050560575590089834274207368278200757207921052284017965854360542422043681188520823849506660414211579693177198458195438597746066245376107669637706626069520241778106889721924299746952665310531810010807000156361533141203791345384207061830017597500197365654814110529234509242204060237196407590517240206686456160063452141119008932519704428504974792853833217991830324757525548836711757599784715137098638819665742763418464078305590950738094541303998188898030140096536095408358053809727638915081098453573282489969194458684073998154086130906253370315979642040702598927054365882916309724315229451299043599890765290581267609633581917374113145023773980577587082316603945968980827435002905660838204465728982670756976628387516156345469753408508370436245056686431438787319244902741947062533542335325899639401206201875658573558558182511236262622163533813232207579091817987232524378112052537541592449216996553140556065611460375252301720056419090499606522596782906859255381502623118958820393646274469648608208285853868264791192510214347219319688066616229286610532252013413632104254734051433263847763994472695625804315443048778682059401926331154581300638429558959726917905011880864912351753421682948298886268440415318342300778133938092405656884116359303870621783634572042804533607093754406924561704318639411620517288651686030409459723621083197099380582373671042605262459866070285218447477785505218529153425906289721842336903831745667164175957122423190168336395299773952853885120017758278325271711932084830717129179291303523672328673634462129088096127318789767477004097743170499640080478054518500548065348607551787172936220563451484106368978634659409866558580959097926697335152525011478627607601855080017645762734933158992147454454536237255718112566274666062896328326256134851338354692991508412429274119107109060772425524609468211728260189518535807628532321978694539381647548464097757852416399705745271385130368293999451018731836190306318627911455979345374487109449965720927389970908945182707079283377730550716459702931340850112431750680077384358896824228982198569474436885908600697422907305444824133504409475047787882753776911087119806641745080430093004235343165846792868169943802058561786091451208102787247024144997822281632641535626966225556312393047295884104766278014440967336907275750372870641804107366172510312941015809322871043947561343246993348970801933039613298610622768790681942360438394815344277886375926302203080491032100464415846380524465669430099171744112580843897992226514682466873795554726872455103389947557101253029735780496084149263989878702158691248381090848247219397296402942980924391760279970227177533121929225982897300584923415282081468575639022246221228840022243332087247880818758382664591847108677199753453658735877514727368642280285074259745225980165767048575789923616573107298512241632754037587273188625134953704534401661073888764405518860438002254742714755726086852499840059861070663872270955210830656899417014398850310196564188709238767115323508119676822024520824932745921786974335656650137682349750285744838697200843415432188781059147621970847698165984435480817596179585618652218285952140103263659750867557119071828931419416278216329947972691690398883874990389682475087437458293666770640036124996283710457757306573063868055295570100434607662025278303533655160202438801319894360845941418290345385545529176228854632138819386319882616539236807636368738554548565265074534638421232302765865834350548425728681790980805433901371755643255956017493931946067897267824490822284758891139095026146663065615668779659582875883713223667256938589252465490399799837743995453373738143599308287490223639884271986275275490016333640881887185811654570629397995843933996925103861807306566044406542204373963511257658974171675390335593930905508534304321680237189386894668930801829110702301676641433905844336171916942157656258175210288076144726704736533666005215631635357997148024389964364128323046188486100521908774617322373332010807041522948935685652581503724147571449308227750228553373245727542608349692970430240532361912427122598659986759718095945276856161280867715152485787189004642095560740540306348612142859823121746869816999666226360419627167210287728707515033096735297010930571310553376268398442743608663491737335069156257967002830565925427858792952114182386759349090739623394107461256771188503308324067626131626766933998668752945323557077780552276572195693650186489246699460645839273379417163817044264391259041721471621344367874960675914901344155181105172382843957135182323188783909591954980168963762348341748126357428883154310522760742441528793033682647873368467712211535772813546139570863878372451371982185774373103417103389278456284132720539393943474035582537314921855540013793592543553907622527642789734368907312859247734439027754958970444844882469409525321781869704052206434455310660658463530219869975889288835078892867804406672459070198599764900602465719009361385389580968713062456420861532460864548576414496087001232099954674680124332943675947058080341800538348451803760206617414414289235000251940086384872276154060803938116011722949580117715132901393217316720630801975338316365813291752507032978372869794878070483356025419536762810490707693710198276561163144432071812881386635792833911480488437744348919550664991712748177624314249586998822692559825766157258082547774533415941954175889317978880621667046817941682141205072701280599258967705899795743039552417258091259701693407761196579250994394057057632657364913206634250343407042283082461361034885325678784927327486782643936653782952967455711619773434443863462417735622925147598840562852461271465047159352250316374999073212730126012099829228671657933193743709716528255060741192362225958860567589471449398465309687781605278838557561643460134747512815199397790081161691215684484979971003461296389547148121352212539704504204657570855014455401839682703916805226887739004754985124213872286344191594038662858655855043152768988984996351671212060346588165787699477113240507551585574922591069704483593737138499603955098123447551622144304529876162884480272952140561888262766023882754602879505346999484960576430316608669897013910100159842921035102337408738455402872998814985454592438885063244865801717492416767501557389342853144486802451937031130402076832709990026346034607601636513263887935374971222274520427448272384308444854542906837732793646972322468056702392182611779487040598886994900435851388873723162054569379457626747056122503087546502482348723210520159456174920192086207869557377583381049590068318202243256563018744302965404702453201820915944959149381238094120583267573586893325764741871169777723575684193771613467135608743268947466629627254599600887044406784410992975424572038381923233416244903780350516442202864130297685273435729134590704349497000562606179315119691779093673016561967203899603240164727547979668056955455173384247944786422375800879739736854163302283933406415909342259298359709262441063134865441748969265648118638275645781945989968478248129470544008890130716203978232418081439818686976943693663185780547105582210348318440565428436551565158029309528153601457873808538673560944934039083122966824112882425265463557671567624803352244444306079403793068896966031576332380862977981374592029944110964876694732782079100934500857377479319047532683368636578730736741636394719266453036189954107777939925565667042318088747059708300318494631818972866373775102510030596592700504867700486925068594954255387484160586560469162794254635004910019289731027103950988192811932683370698082877448211134213035082069450449944253453760084748112081080067287978446949473934852115946744905141535029882241808205697063873650986780141348059157382839654818543860650395821579526088215266066764075600809496308250301996506502310098594898763031945958662303320375952497387250283150351143113398666909855555652665674415682496842538841097983989861276102465449187073831635737440569221231777547992495388769029022034855213062475397193219020942619896627122327821135787913316670867681934537998991053539477656603476053495442902470175715891343199967925070616875803865931796870912992650465058069705292334826946819851271040843949365935816300282817546743120756488562619507177044916076769555960568066714990440377960239405578551480526870930982791023146759197759547395072040869916388318633717447356771482277975692902276365734923544437779699083092133848561715656039367245470350210591664716641012020993048948222473650533566240662751992389243894606125899782450527377104015968730786770941558387372373863524435157355425305299039295558140300836261134659810497442299970719758092463864079432364680945953188462036632793021118593342255084103334016609581141704321929964233945646105319168459424415843909274893261275719648833318158434188433393537899917600241646691719888957697647121570377095488969369049716458396743108352868100188857856020116681864026959294796962431447503801929623594200768118926495211088142995884865614372448218217084383814189476717007229081853952658131003187562008295958721400141171088619394384915504002608185148920082063154183507249159918867888232704839046967582486968685257535109377537389538065174525388180093050935885396891300214880556651945066387240380092106925060136684296645846647382672634486565547454284129854320590528839840152322681848727652573940111953902269628634002975265871790907280171756569180973261718106437222974696633833188136668859378361198562304106322694667052746073822369536445391811153155434244430849322986942971094317828066640648352429448673179313482698469993303207574770221116435755661025558649410785622581292558045741117699954735592262191335244032976483963169897545656201816207903683186201126362056875020840855094159641406533011871405800051532019570010098769667029097154067565594167393970412691466923572878973688041597669649721541767224145815481190236594884813907298392779174325557518329537431081902621512078811311765169926854717381827420768624046779349970124483438796603002389609294833758517082530299945460337717285762642834767807352019242642968543706401161833145076024397555280078934126440321568284171663496316199493469517503408570180332961667653917591322841742224311858693459371969382579926844632994464406261157824852797809236404094206108434165648578004686507725689241168314271147300944597971349586547478434808758876204265618802614226363033443292242245249241795260229545198823822756022326125488327457066195685519047906023524460542037222319842560129184902785551522081467967489725703960341476364709548628230451009750815699056675165071543103259600788106061708107014150635303579036315659681222855843818337496809850384492190953444946600863845485683589145090340631376149890918703413845113341751905966074391485362373247830377071905548174831656269061318994246944993513236010816470717053390007214000398395398943197276541755477456097544492124540672616405120354755193581547469895986033379393159501852307969761312601753113771401221136706514794883896643863374510183663702284587080992770693111766668280407558116122215766774387551623255909782702586202207800948686559621944445149650965354106143707836527976016215399321534770372761039972066143487568031707692434106824035686028110353746599126818536637310082266110607119229069110497285665735914701909567697669511453634902269980545530830382315442545824811123372070757643500229805058453635765601503868519409951999907752145251718278365750650831222785406413822183780262114230066158842043420869653864091241190465251628613592512144735463726322576336326438577443971051206667773343196961407610154101669769449455252125818199277215398714678840427735498966578424631787077907563186629080725651031495665903443709724097942326287520018265580866118247454034931628459196502595892461752102495640040124419502123235369522556572458966265750130524502289171443837971759107925292157455485448679608362950846853216737775822962797859865497027150210506889297425166624554463001753914677270103754247004282296592519097783503048858001138395512109118667742976286455291137490286020920214994187532240208185898482316136986050737550583824636660344446095415295158761739309690217364305808540960798210820562388694097196758227328203545637912837079574698791523562849673394697078607690887908710911007726305871754360067055021010451089968815778535357291751273938473468557588345987259113424579888971274545858422643968363365017181673044275903699490218265966135109025577228811591859402603816657678431934684088326884347639209275896320463016329041638726427596849244757943305571937409614308384199021210060022872031696898345455089266052164810037512068493924688320159782548137015902770797904066757836328726268170627868136710691289370923228083253042251405486597414569118315323241710689863832931100541333400799747302744185244276291684026635808328107898640462688865986079373471533378022729073821864854370713668045593204545535221259437696115100128262911176536741908407213384504597923750163212220436904832049739366444100448748713991999254449805832130643767689489803123525341144038442605062057728430057956584519601573588863605156364605827270786640763511827124221674594475173238398137242800253172700542127111794671528102549240135203460796173387776793143476090752868991277169721472689854663025920126628627285466627336871568333007267433718817399893540491202529597482384023833356238806032827754594666738769517653761743498865949381152341153427410824706290233894051320998196607428135878211945792577855738950075602263371942727674595658021397509789171633631952148105802134895398299517546479971505415677670234387251000321803360006064006201982518572158918643054873957885660385848152576761892539988100908291492923856116584361033623076539480068452249765262687894557073270040781667737718382846022877031699782317032263397004428207341711081275053148112524422258234821637561347337149365914839033094211461281416987447602237792971798538147064213203869194278298604954164447503182975868701103675820504573966452575391025689116010862033211128946723594704408924853478653159812491792216546708001016130150808789804846624202612295655512569923321042820152757681623523481268147059192190890620434624874521959863731463267206746595580377826427981130688553505910638224994441161370059409980901199245771311131620608180144809823950949281759063093298458110363303281417273316835035485212413862204688526657437232704279107759633125018071308284020404479690719846990837074705911150183454991550028620683571835639346403487568178954537598612310298690964240039262350886834920028298100287340231043644788696870610309190574669791499456872811454195340074237200352128054678526685888154284223316283033437681083096526821830912633733007922559508793672704122145094188302358624722479189840270550323415238790872956144992406326406175262111039639318723002609742757759284070880212615175186918346603858470144964894934824417443812704274595627486367047966962837833891582931668540164872834030020478918320418499729691213464362417805410137856333691013995979303890185464793739094659949826006806813853948930605116811432160752478019133308778663689666685078082594578911906428547432551468173041431298553369706014587568381037788411178308057383823635833050217589803486266245179035740206666774615312211737443299250139724584982526010884494461007332084167157408935097185573559809607546331442289549984331863500475567540302904811610744201887392057737227077320017594092202129178912907559021233807926860512261648635826408856005666095744986845457251252116081981358327799232989110309967361991577554197691134736524673551350660164697512439183946394897376274792212852474982393171993169149873440701937647356263862651027703539766204670534722611995811659619129940188078149537489029226637280267008594465216210180768099616075000473855258474282648857873550149268396818783157148878700539830887589031895708009276598283962686597281442744332937691556051453458332315421835535270290208183159506858015568837496909691369691684156589413095503824152973811357365790664794150017945385498339716317843470609853772746173766310358451520270183792818668251142925695447787904673425032050105797893881873126193042657610099291266444216650820583350630203613154617389524546260346226477462438455489790852244219975697096337895915395841019478899304430903549137936401700162840218120651668018944218004385636825551081603849268681210705323911391263050168310946220285476533357712703449239682732807276628590549456559761828898646758576523202899447478176911921814406496890449508806519794760928347493061284642106837780525025354495033552578412646426145256481757133567649305630986523416474972863885575349097923596700089207843236508871198043798103731692251870263998842345634745857310212963888243179570846398912973952131852401808898713618374934397531485922457729395861241231669064823185470023167748427986675006257645095175836554259183001721903139911148726389825190872834068794751111114587784221424569054738490877945210654786672405995204114674973511381117591949655493520369458805473524806696908928447481627349315815821252314168329615492423012259455518521310709177553945064682396119273524782407878619068675487989064817515299609680291018945331011713589060249648187859723852220114020637874053568277632899274300115212681706953983933664964323066093931703861857950323519245923694083328281181538281633180772819339622369247859199600717107606476393803649726593505635030333896774523000828332970003692675096344676795166205160509176988445140345125669413971449346748195878182482759376664541040164989556924046952299714187767204851049033446105345855541723179060059588444462685218498031931462990211477912706605615006394232182185001138084492801905905309896851974891487582904415080646449245910834743675292666803921960585407921230955303228045689042674082565035689099258363137877791701429371087364449300324660613646378587214152489181439972601771732471180850694592816286345361119848063620826209001625829002887048647538963750907476504502958558671403380814253282711495151023976244446351306255172924039176669047858676560435284569200413826122550928391657037021553999927544426958090551271526681924540057717352053598610183214943240920619489708537656886322757612574725419545709982697940941669517084526601393905245931141160042950037267780959050595350538393358605385019326721766238312051086651646736027876748143325706425209729403874102848958488505244143566091309794764495879649887988960091204346002036193320661243647853331873986263908086135302988467116980287162256691009511307004490580186852909456797597173034766315657114091602328152716613028603015634331703303605282102719954663213557158168979424093236605614774991958507494148795514498920762735144155201118904465569531587845553492625103594187294749625118689129194312429389376454626513254221157335185269373082459641582161169223595157974185684432927539539476768563657303594859421927898877409598696048720171550813830502007019762234839679787288880852931341277035596890384036232146932761184790537801492399152235368778932722591288825737697345035149177224459073231255432494875900987972917600569772974531532734220220340009214233379031520401987457328647541070579353669170054544786846553952078472050860035423110223406992443763720118206882109941111275404909998921813547761730896887471243971329441606332881770421313395596251875835301296596567985767407498871877623205616081610394493905788229750905224160499181228936695094134995007861976522333101088293114840252896063588795546424610132862408937308290374066025411409974276700459290872952489738754515514528327387913101851400500692128998178982911362542049154325567334864086748140502520221199581375875478150350659663478317189691878245548275972400385263140473196213257190570730029073891407025910638065544498419862149343419057062710112177855239651457167621687512934083964138516097316679671887126742037375926985630190142795127670534987500910119734788442428528462021287956385714397341515052538090674443063386798731853479883070036432759820914789777355709882513252004471987926615697330757502904938438905010669734712315276435121400884396426951261499474777279638774247131200020635563852294794366100069764445028502392528905120388922492905887939775992986543382146715682016635904192906574012866617097533928286208746965373827067291029232620651160458678494040169820078924574906683419132749561548103927602596643454673268400430262932220586957810922578154122658276659279046512487403950198768464231326187170859950510552202660720741581697876735757302220276255860453615768317449159798513149956563000167174211607785293426013158076669710767829799970230994389470101389561045647440982344976623454346967533842848642317387444942418533626660317504241734427765653775471756407739832287057296526719627652831446303577293904232942553108261434394608096891822299880133735227386252955739202001476480468328461308723102815257442536862808761367633533599131338307572932919406870760079344431010935195845513758012854988334897147645340210714199301154154536096194720889138040653077111561204112232257500399495506279306475796590544204466429645696438934610145817122064822444519003956825943463494979779642875796903579322499211765777738570814187645277337504751491860440182452631061054222220905096706860516032002080402640389931456005449396566179231431774191019647354951313226527240049129053019958640936063506608030211868967275449080994971905562816646324938334379522414678312186520752663038846591754058905166699603183099664088171516214515725314753414731063794244093350636743780403326761956565230757955901257770358805675221997522368823688597465905193417379938809759891502666567503703842638240339757522051305426762446898882374930225927867794587628803869049224208200175801558332571016879636745255396556798557981541832973943268239639014922725196215180601512034246141410574566141193008176933941827743102731498351548838005279734165466727250623299054918936447663527419561686912594245159935259044842288901917917328653729354242776180185023981562899544032264769804801498022683911144673577033503643787897799812104339840127462249564054292823174154452092493593161114592173928870679447467538514163256336701921158077749654725244780635867070589915635252860386444334172393055819614053447990146840897285983920554694593970748062889259497965028124767215814337337859043378707125564088080288515865864533095852060815852252294622187528824367758443519570040190902721340552277664142203778878996781504686360385688938405445853519487292276396085628646708955796471551322497057283808427747902143739669334439693381102465033612128637516044862349686346675730698100101806334289997084696674717454803656506313228580724227000161626144680876572157233460610773693874554188877050045656427215115104928779094211402366399734544704049171110425234813479105120301201328799090352315970309564851883570614826377968152690114791934272305956916109662506609760506216551037244883923543000192311204353929342779417506773984887109917484595169387751116782988000646467363341448246040996896999959735202011686218191897549394770009309347646236336063485789529639463848845143136490158804264371834138676711599188600057551671545848616381182297072587389217946830891254479851690036633627351843953537124967533092085095476380653767516891312091807528488519311357872238521507849683482079952273669630575644741970113366790896203847817649909438351552975682437799859461108494866103544823977934545243705097122434066886418986706666684245946852554759741870798039753115230789383707360326326615566005454828287700298755411233450378747678428400119743338712151359940919452267797666248757714314932876135071256615018716152812700473181719620147567938382569026080310357121841191394088214507478895019483375621329097386768482416415684060251479103018599163981275243591961547926454050605681504828788201499679573971548285947054544158107907259860304289399522258183783948994612014881137765497554584506907573195408863528879652912029435019593151897078956945636773482933200233300084083629430650842045328855985689430597603908518876804566854721636525541739302010891677645869463073895099682567901685993227211567170549308661057192951702201688748240017637236922521283340752047967204048006002700547136169456115072447428896261484859943687979902358627221354109872246127905949785951300818786792409889488763171929719741842996525657800439048487621354689901730186858659979556432084908621488975621831177880515961276173541643905352479656293510127263445354638335498954435315776403334734071192156825917024661872015225360238706453801175578338172097654757636819132712333218022512224532514387823419745651276914617272782894951655462864672681417109508324075133245620487312124932299706482006938294512192945397355942039586502581651499720020861644431463737797268993584211026931112546792139307145542719304834829954094362974128637560596302861349911136905331492655893125486231820471956738411336466541573644868216015725433313848756513795783186836336417435289336027357851804326850746369495464044955327529969706504490786882982251153535203606044640793785120363455983694368248506029887410405074135947782495863047210679196102688858443297901470427753606354331162473963251409146790298972907375832961371398753277331803308339629031032548060477298660262049159927662979437740491963114297580069636456300605037697689290704287220378615064607639358036653019420712672529935696038988463272832584656425493418819551941110049854848274847824845075063385109339787133811092246623428817811330138478718794430328255666995395828379165658036723763056927389600742052331943763019574232705046148662995552675223195767780038242577911149164032955824976708135182431821165020713874579452194451457271032643934773358777188155431237155836693645757108991227288496911025477372025859900414776589878197543335231744576156708061331715754448494833722395234279750933938755669941123109730438112521884259743159204641842413302031143481997636724593407538108614643292278907429997895333591099427461753945071115330889996304134780753714362060502292755446703662212565068191052017523545251191703757540409915655170891675465822804068646950455039476852613949687456101454450644707824122804200238408499303982469426445006441113395311874592843629855928935035828347187694187702831619707068553020130439119622458969791185119416122297866387856065936254159672354752016420389526010227144920602620250758557800117850345211450789574877509881029800758676073780933044145019407396702073444760216735974041053524099224925167645715615366763769635985939442263196426688078701053955161129168485486418612239560747889641567608830654339182210036775026213618793363113972929243099108684373160767634988191589831383384191270393437237973658980508633942528340604416692585964973005682345338338378384775433227477572909387099031398540365019281839244734241725285674236629914168156324413682559776799294698357313678713518551817211610708952587518240160170152021418086296830793227972359426004077967320937842655283838576928761647661298106320279472577005046254488027195419447714269294838867518882360907211732144282964734663884026979646347402203341148453754508262297555443528221225643032924048437835449958534320330660513282588738690126472483930700590738178725085194784883206133043125767816198492491744274515635877375602055848726813108128113390190641806699127096342671160454658049202136398782222523273407986651660687755139294837164918125905212236424865673322162867813737817652658397932470647299597633513416544411576514286957877667849275923527591391401246428731473157555248866351835665497517573282158902022126848655700176980913182637971504839067852339265826668326162365434984264646661580803237675942801090992590442671295031167164854595023281152972731898635494200143405581418589118341724231400276408982546357029368988325045893942037428701192196001190043458603748885142101563600474496171481675514381716998422138790187163815329743882510358954814412917382645009828848599831658801787935277571267307976291902410718511317128985300952462038519375473136764656079932873175321474768144705583159888425695867971979697276727353549805481168475444519211838283439972613663075893910696860558009524600929749393782542484564425334938332616041145872095477985367514237579154182293658750727188450715058887776073231802865391113429444926079079005703107101382740823363960576699205395162484374973258088299007361841603332381761422916191777891464727199282803756082170610313400180708798529345311485456852489097583172687641573188588836769500671861736796100753624890146152399312022905395215297457525418086851562772339240002337919639708011976425672997032813247246000828859091261756739479024571068622914581066977949021070117092196731156393246968898271353929868099102218764798258503761486495918955128267291577198956482031313191585579447931180887016589023457304386726601109941990862390689907071253158966771505190116393711333061125060331305550557564678449212783874949493323353468615257363670547242422040005949299876012498490512904818026383924379089871936010698295957708664125726580566208446175976422611778436088525829272325149523267800986183071178371407330134330693761876285465547340047874374028328641876822383166984838466492872215886365783845085212910027192343304037848017655098404067120502581904386368050717580537400299276531280809545724147212108609273805991214813205431132751025803431035682548660991044495090246180652286464250025031751368438226847763971469747089745504390662256488694511489232588966143331047260669744790585643222440566265426898112834621721900752769320007255367108551251901192281419037452491090911172838699581379871825993799820202804720843205058179332654562575118256346142368367784564046225010271011245004220824062248502388380918474356384514230861474660404903328242828754767777446797896898165753516608221792784702035446584364709190631815295980319928609329218673673642830696628106678140437179340067623901848590588368172490921375252285064076714134326152553387958795198743283139562903897840283926271246134458758655027108453929268454237711189171607793828753621081433934674027876120826993732746408071930585485943576670767550381352332336656122343953899162399331586389952149846215823174718393236484380214979956363705022683207801545684218362558592120818758804285606791730834113424387235114808619758500172950508066464474292649354257425121468451195763044122443051645173524560934109265541518758378957978585425857989055322769843692824348470632369166144427196685317578740793375072046437212604554123411423640666661434299133120205336418263789382657502841543019291611347359962405909246410965304522948004427832315544168399056657302036976546538751269351744869924110084821373434948132307386200508762179902982196021404820287570902564070332853058610587282794212980457022255643162460929753328838721042230100088494102416681755582355846041564498810932049273444322266205972006178952657925111767254814442283995777277491960701833837874038378066290929533387346649299082099465908712418580801786315154026548338729136245064652888637626956461357383860475918584563851570280946468935106159746648945641397288548620346209558469375946040073867439937066255127168582348850269050872634255823712081053999344674609410879585055000611114395027908747660743458910254819083940197489039530656741900077572252961896063444234106986178295774480405029045829198336893983770970560224906999422987440544373515906929728939614456896148251646567628806010489125981505825061454711321334005781065979981180086216642162171998507789657321991119150194309186210909707821266882626703551826964782929883728744171215431395592960723822073097633973662507124769055654303982689119442033256728572246060796714654921916133563247947720925918234598640783819828926118296072185235725293947121152291577834002670784991413096464416779446099818861663288840577781939851543165072854949024828923656154992821145687981339204094753824994750543072469360915938977510478961862944469226764338876725596501145755156216818708339580355717434551490414271140387489329429433279326804403534100892206791492872383050778515106361853199356732403631155125105677119383055198980118024104810170981358072241569339492476307855352512502731792824704169552766645337123970246844296135587712207440444168150532575382099538954336054112424734660373008821857784619472183874262310021102795889191247789509483916244237548908348624836219418989512806303047988027910551188969696377887037143885794204169233160061150232875729723018180200925187728964475394674061973185673677919821738761507227306831144653176431918182477758011194362107476093489114070208848193086161345570587250273151124107996436335661527931635045661532677344499619910342834513070636716191803570426326049325482401692380926428015106388964164643937579763011534118325786910458351317111291233766200079303736695380465841512812146908184923626600048814372566836122025303823159726217057564505574516585898379466133346239344841101587241548200920072339331594241592806261712282163003734949842491189984127667000811994515377868714016483109940703753246031886382969550654596122715986214817399357763952386891571190456017774412195708545923676917032362306560838385021212859165331863897700131464175194371569662529862873208094746242680050797140888184325361893312167472975810780033225275329378125179660920729121966672703275763698090277679907395892253144207393774244846087399764555466200710432413747028919802831887895953424690176084102484825761970049084053851112689429737432689433458734308394453444336860373490359818908663694730171115595972745775715621202695203117376481309136731657087818719477732670212242632519791363307922549201594407554848534489948001533027428081779869006916473380130729243988528881289818335248487285558662078739517070660167865939473435992264295965443232498414129309519443021986026904413724187444158362465001008256459911791087323979504463696466801997350011432284018526645269121502927818402198735914382370953992701997474778021055295043139190737935981644085423374201127388839590761846721344239861634235312934170129249619056567403432807132786546399678760070472365026516332893722233639284285836151770563229607932133684816835479101019249232902866797702498392592776200667265421671677823888893257697816674255642465588514465482344759736723880180844727893135800311051903562749847226808007873807545510313435248910050150066410162882539512971518805940425773668810804178821357590001180112125532692981137652557040234726056948866627698365645224226274696307027068818320197099815417923800404244479777630844942713511719471442661727300416151448111314036367287396648092835858089656266126966311168026216358743900622495844123844151192042802584490317244928083277757351386672440217952586318583647328846610570348295973729544013270939431968546829561909451249196330978860486691039810398666724877088423040998467025124084256785821273301965035116802397075760181146564501725988615435654400369950145634558006125039464973898205982416752144300605119633848138205304756770189846285082189304229963555297339103477012936584099406258154859328681822849211158376901675337090035306278802147581923672213690397705685771518566453846638442802633017497174853302817348238984235132662669945484711473017342915745079248347619355843755768762152722309273063472445838395312109816505613512790021625465268649622280297532239063495889910431235887488111684772642264582935974959875700500464332535442641161664801072407149652974941020361739819854399732004175244950150835329603771807790083114819122339958355928483201257884932366679110366511937710908531993663450400765936812849953934582805286532160040532338545774760287118948586490496714563596486654890546455598159744427031543837690369812611379473263833027507919756390610500404170594229427372898736686556306271519255380876046151157436549285521679916243646020515590565243063598855831109420851371605068841051904004615983990841980665544238718188429320882597575138572475765253074216596288991918121969746151694971772880567606331059929526683394965687221319308977150930531485277968293562783276777574106495364059200490817808467268109683844201934163513727495490391868329412990353537891853241539166753359942865886627934072080976743402045274370518608229118417240451266197896195107172148699751220870077213439136187770018634597745204270106290221694182004086960562897059340011408098546339070430333839059801700998899769429747471339647896034831803328101741668978789433518369585842588758876432029350914491509540519102770953649630201592110839748735093602018706828575489143264852204330148137794502295502965667191449451069917268768353832038552126356323058354363537426782636366152885996566432747165591678787386836477423588768414579167334430109342161549981566315361495926253379076008475120987377240102751193366581675585956732622374351494865394736357296612106312504358785662263545684253368498807357084683777046321048069475839818412893422292722182289523336938004533580070029499457723989745982033793920902801595825645817381378189397938961866387311652874903200639980764739777800395869705025231830765781867504078836180907395102985458848639835670431083432518148756348694748774653782993470721210534360633011532311375547388289129384883567210171545408807769788542719093906738465502538892672751688548948738317036112973477380509602834767953794810886499468039954810251426871820253208015154744471129540381492524851401434546724474246666624742230577164494947050330513147403880763957395738885863028373848772170210381669458094562243104383171442860028040068349321744086010268445192712818304934617508610478182060026454937598982401178267599972400529616122863371898883773908769049205700783450647070336840690730411164371741200272168257754473061091247714812507986276581370997591968470674429468631591448304149209300866064511534652073735124473083822096199488722460989237645107589497964057621751118316926880428348997082727815871904069572326584003241951323368031165718169169119039276297053713703848308373915742708518616733048310609382178047221725043024418955546773460788408441104559489894858678021727846646924293718343026708825229358951618612333374134050550483797612882345475362178097169955315050238444350348951031914378633199598789685671499668313325980212013306090550631953199810196924442435981298189696142255440061469541682234286386312822898941266578097195078703406158756335649819774945314668928375754586131942517994130927146546745301017971662867288624305819303962939566240393330681599937539721777331848176018538281721495770603328338460046869435307925297277262205005285547050900733614296989143064526437084260215851995703107473612910055472329444706761180010759497180041116670034511842023034434375934888382001013691621607056459410882449132892814509717038625617247055034578116402701689068547960635436517721358818659573085334946484277141955534994309534638255201018138795832057655287662854960806942426370515408388427737743012246145479843765879297119874948482442895007895563719570471820182548347251081596739057655796460601852311321226029827134783065738707669923782541386067232157086021616301715685139679056264485318556875882948647993102996998346298146603896114057073142394827026259375812822445667597578966015380685653121470809550997143575557782147841104925718795230658991762526953464761401779641320077360605770739504820117567923652299918301152942548112299233639157514468193765792938320223899272626381211851999185871739990238970065179831267778157172808636168930423947670152266927209242059750481593705151234638965712762429416510179373838102034749731329112686427920429021127565275441415661465378505047814473441754483030861423973726950698334429784729230074946031171741239418577097351944315761404966047630217750617411980846532790688101642074126899982995700217867062376366864211032706450746256173457766963753085332471803490477017929747932590327763369204450551775608791656718692255690913770350932939057695191070003236416365222390736432657664419838222672772339515329092363034996512381567813786595219400502540243730115709277572768126282915288820879820368689397952368773170690459479307291817604294961966624438685287464289824123204822038243862724900028047541624604008540431534617754040250508021527009323393159166330057446748249193639020124707733183616134256009057447904726096488566831207574831769409034256738433060733332342697233218055011897962796474815558393128254146191156200966604239807812788110035302341918019718595023950291237227227470354394778914775055002821739158583448020047007356157394357496724071640081181383088433657611007668478400972040812147069681883356695903857444024086848794628055730507128343697956640343083495067801935016157282895685262379764523204773002709636925126013490461175327531176251313115293883768533736015970046492773765814391618031133743645706986268445448804387167859483581681094895689552164970638305827687937254278578799271622868628635244778430679692814557199258046302647980469235086099113869948193599926819595658965548194319030774795201784239080432167227422921921830005631825436575546946854107403021268059854728441245734207493918903178893961552417498829463301522432106401556516853539565048282801802438529369898159764844326467581394421758306720700908774909289482391627307536042901412256050939326835049027044158602639177371739391018862435468183175348839177694487091449160325527354218262968120550665839272007003041709870999520781500157229359381128631198783482307708846889545865877301800003799265426158685788601531938697203206925543169197830213261746844750290952070857483873364037473228634936531967361220588728539981338218105291048155477570002693431519499963372607897117823926160553142831839427438460947793848666670149908417760280846522883341306586611285064023266808633814470215973917906719905475780147013726701031598295601866244864867782202194576542554207467904981970417130836949093591992988726169160860186387066088066404455657299393276692918598252477560386136382712183698683583390858583447304656062463623612401703244982573568658404729636435272479927646997473776370419391222451106520204166807394012215278626643786802760882295210397820981480974729889540643319957562836410609662227849995904531151932145605584333216277781370270292549756696217740266814501312782574114598960182246150445787528653790411436944247677525016222361349921348374926281788332379189068059912437397623348581711732005445822668689053566271898758411957149680564850046877456457713483028384999892459658337647633675062088735670741830206344391427135313924704959550032676027743939142111609070410626963724176307502011024943489357055392708079013654126401061819439526151707904632219691050851048821997839959530126168595293550884292545190711126221968508833373491853168765643745746232380199992246148800631935520165031042450729546386466108781113889600903149929703668080228701869289924106360878045893089372146453376945523721249355149362971734764908849207018752558207791455371659142946733917418428768135504212807682285588358937974168576551784965561111960005854118523485590580612597513025807369408534671768416927958133653346051634632784775876382705687985767142710644119075814007503271092181976428422298960526061996295681162914723761922224415813446838080246697044826294532953819074185197795665399810783719807165023903277163577042330682121387470404475005957609556896685919203255183544127061100279854239462459242904398143198303361524358183407108387438796827312040164860689935374600990603509092001483300550484395421633030303209844730013307168251420470655634449233875881693717446284401024057039377461471305796529253518025326785917203929470112902345212398173594495936256364818021688160128697986432201761368193974060208499198825929137221595567834131132420741938223298862318022698510938819877570211634175944653886167883712292203273608893046437277700058343587886438992634398151558318446105553659474217564418802874636805328762570271830766331105267886178350943196721513793845956711087758816990746051245054064812084557254041573642364379910743200889190838728389584687580837222305165460453817081331456467653930149283889807820851877200154181114842898531112970464882563043627314443578401150127816058430730067812847280381947561778499220725747103452029397081677009626381246635303800445578114334379519178927852277140080570447988149026684446473471322087279886457251078343657051641703806075671573321799924620130430161909243977169596551849348691397312585218771768567344563158073786862519780531963549254179701281412875658593950988595503598158057673221696393326790088155300619166989924961700444775092914358252677089897952028246377385911280088702644694927245964194846285637757155500115719444374464595949981797561089155399995555273196821165682545494180373407825028716863963247755258927598909058397540183867857188289054895021895202247281395930810023782312478964122470730521832286232115180376068470871958443062162934227191271656320050617106960404419682185750907014643154181457773384218868729849355807924989119442770464249337381949276912357329838904253569429682098027522415053483610339316495249892178436579753006402299543233709972736817824853205218904860272592030409496922218116988325900287955755923240467346860984597675921833707923710034211968625751816530674072839108414028124932425483574390670913664915152482375612626601440295158349842725992254503137217527744301465207588367189552392971246402259468920382827367486729369163304451790150058428344856767300089314515446909623531757438550217253632492476486783087830854328646595424476252828882815700721384202556343591622939623735729650920885217417707532642851692039969065584799285045613958307511100208383002006168842737821902218272117065502060943743379212090702639592119726012531057882809642744392391828871078762953855641849091425048491576278578060588751728032588922297892235614792307767811960319673513106858790241701743668487640241375185061510067559315963978736272961637826022752101735429020328396322657939840739413636514685932396380688867693190228751184113502597259079212442541931385246074389727866137399628511493852525229081729344211600123524389793370111104017712437790125437861073234672164703433259054597545810717092738072713206476840388811251208086929003609832804408373901246122078206059935223624542648962403871470960923919780746058646273388929887461649115912620952565993217372183992617555259463066517220255707442831418788127355108041436407271247807304527715059678816958469454294371913024061274034205423800518060493659251636414736771283629599952800174316089882196002142742882202947012701406804585332267452810624700485835974945314417436988342928339489702757792208818682095609721301779685125064729321932599662995980860186700857544803169367855648478567351514316067482620491066157176589432118894574519737611943187139678257898069263143439303178822876254565032239037283748100541559717903512360415822682184272251407952849953189447990758254702821404330561342224708178487962167706226356226521914170083098729877450898328553113332463552064664211180081639382144648270011950191282744487803025118776056254990427997782885937870456976943868114420659391704789961282865427304143554205441069415529321934445961719641870160753809860748345523244650595530657370111445433546806929005879434198657613020110466792973092779135776209183861545760543010196128827065710827144039939444146954709216702324010072098259663274650798700629114571912672083838041406709964595317965958592897115049430642007726056250765281774604343753132489472926706078099928507126514864700336568077114595249123027547277127802258264852613622890075666267289648664771823000152421672911231862221105251617855512691626084072104516599638899061154728939970151889900487608599757017286207583721812947607890690911130842024104561713613324814832865466102922755423975411118088991482378571223288661686234213648487763320186575895561280394014348917025463573031525497066065045973886778594974707440222947921899879623522723476585299233557822423155882087264434176386897666337685820911134476406174425393210314507325161472981103926562316992479663256126658347336853537296068648771145502807761868858246384115942123239971579675483302410018673833110754379900711722170059473775522412821055488836478193336690649000271704051605264358044785548297228985561506989366452941241674311978227712110990667728342069489600651780580647967539246549042743947978738176766447358665275503025534673201420990289485584270100646274919979899982640590366674065289015342333294851625610895689503147805822971776872534184517826945079608186269060644883168761900118827490357890671946439887803699438997497815115054062404650381657994842001107537441570888732599275511463210175782487570744133552551935093828793904484449418931833642601360951777796581473827198876226534757066113579459531172073873699452310896101956044512950450062575066965546883485463852465850896260152608403718517132635903066036285350747487352324383099000853147865035381295683763932802733151034790379926332079838116408886949474643076364674338620220465989399284135090803374275172237615269879410964953105927873775629760474479923974466710004805650242379033681651865251180514043220719565232840277396640692246719065620514622282085608592434599481625950010461707319145187113181236884260645282729487635028796209404750459645264862842660303880673240807460392776085034316838982111986019448608011802018691876771616029055299182668645693975286238673496816985899683525168923711326092010657785366832123887744373348009348796045394669882849439616547032370184125011439753679278786648609677224822678056480011982991507749000271057318767849091781969296469926138777663667299036864896395235831929335839734803303270291354871485137684067588057425265159623950416060925882017761071629538881577063474894287355125150626153278600283451508886836976921072160790406291524242274240184789519851748711147061119535396305282794861913548504799085862670171091959898587817482750017048312977418114436523193367996658691031031364515361525131355369493273613319745571875554300177627134554223774866944327082506084274222008264938363919855280058714117667548503093722518528297405408698104592153372090064648624005383946619452935626625199764067632925702272591912532014472045064398932011530532398384020151937044720594303041861169198941856617723631638947998535599370940395242305711781603353055114545948619439726400098901415973140727619977088428048939375793692057867096280162883494388109806396828013777488707683203897575094395932064274188549581152499659371849432143588667604054901973709918460013706281730678565444924995026696457604145436242819238313000627079114817857049688084963194534156085940024099650066910705069301713801260038786210282826535218429034354817699819416155451244855715777670394689269413682264795779514867425927134087418233524946100450765687798904375845516703315738186273668736568506758548495241751757027134619706793260452882811976044158344396136065289328968403465991748014378543038835119158591661534465937529240347609738197477398230234383220100368553625528884939027557008128300568846070762604726014288497208662156488886954808264961376823902757990228380551039367668712100686010596248364297847670137505373925681469619830700681456655482889195433104798661289327415202383833070317881816314734952460082545918613315414961808963010581023646481370218830872609265957514948738739392797849809484082371988943033815004126548536326442046032127559522522799081528370930595156267336358129693062678087785003002984640936450827537706310510783346542111776344408820434142489252458895956035574118049486331764540902330398054354168270638163360859994577750837929349759530037085557368849377548002848198468595449698476544975954942576704030733418713876044714502704333092728850517940568243551494767780000814035323298947794040154252304182807458807317904625174479035681618535189795109946319114518052058416906175660895210895510727975304921322868920158121034765632929068599913701712655022355176475273238962170910683695309371869338142104782704410244180696654264841363305901474214020789583500091846187034036731073217639978959867811724274386180592525543210475238766031390781339917037652489348278947879327001860601193193806742912742039383683164556109314755572348818484563408372312591784960920153140126011429125572519332305736111290591043286689548608527149639949487311841685270421977514188969035060528308132324414938482013557432454294083721276518756328372754431353199370390302981821580392396153012557072255789051850633270670234866366592531879364654536129151119476334657037196436838530521666396499277078147228959828935869400220598797718726525312647935630130196199643246368666488789889665784984409808655533808517540941811869044747200258799143160705065493961332079962593567722569092292650750841705191164997223189249092750467588678510317994011323772080746699113685924210465760638060587590419741291876819342670346752581510306652278633831287863784801110155771537922213527731949947033773279951174415252736822711774196568160519795872389887636689915647592342094161162187954017192906925096344839488784035097173323691224982667064820904636315906666243348021695286964794225909238613533716199158389233154954835081661409334886246515901280086318880841556083183413902876586304944567841387881014500351877310323988418296152287333808756447178846547842430483905977454421954600327606620448522333572207214182076855358623413564183416403580382205548920767273026435091735976212297121334882608276717858240702990367499847392658094762033370019688157216284842514821986598433101492245321764692871769430323452743055158073872535573939615310236389179729636934054072957961849006292763700248256036757673144130972164999481280755900978639400618613171199342583528197313970392888321652966223345901801972926013900563858208737692759310753427680681749005691190368593214945689483042323739431099753612023202181198222943819097216179059634173450085943280294662326237510023473577234767571290340447397348893859503998609062333466360941132617148776826586551618483845809739858235628320216168051842303386394014737292542063152406538149972937209084918032536400840654854050910523950760111406487973127481079873171820352912343572388766335283760324374419568209222391240364772429970207001160227298014995767254627599703132133318993944979035533418042218866145759777159205266416979148013245657936671411954199744468568549339488419048092040442960560988677862763289273777693215278502959248410392067717161344055698062493202307402412159715344678227555521075687580888485605889817802998923384347302974063748060807245077181413601284165336800087748798679416724031116479729194440380523073886796471741057780095608151795798826820515093546191585053835395169205759972342652086335001444661257763351103124483697370583500382496181460875980374037061957011517085589858081421028663980527149836391311473917378295117682135757643299123783739804729003163241702580209416911887935879412138679286347652782735818012143817501143268135197148929167097078953510165133907881652807972162143712962781155430993769372293464447644818127305342300058407755177114200490934265912623463507189670360840838839515930950210030667502284854093450255699174792175392634459581900939151147219173762374589173725249023992077108378174639277780469688964479756773170019890986684055994807547794972774347590567046009928674240437020451397560686484390210348593902258305518279200281790061470248573425043037141618909458021795992867782746726685794175234430224106610349200955109407845173000087390236631818573656159298012687529308365917219896316801970223284699350916322589154490864169042068373021294062419630827237180579626185607783251476225936696804546414147166530960453420201748231191291844683798609913403408029819242205773414044269960059175104753068845184647005661052891835297482161052602824526860114977034654420025688884563798592334494608805101052222395253001250126280816915336447378532907078090044686741327082979647385812082405151166823236687041400227997607076134217461273937560092188325101913971750871476445245703614803054352553997470402398681492896824727423881108451688382403684892618684791902208556950273874189018473352372567162597282110920469309970803253986994267141483557649731584671164258428401609095827181386238689723188331904672185347054357310772436403095423560538962507466692595843930274006995521776660155674351881360989145456307921038092421467542154412551466554583227695713180848593395190003356578397692428524503158600339584613915700446901506548610386152057818659404074251872660061008937260125273420778505023421436816680009942882591602022743673518950778906740876362938174803607477006435543340878253564781708697249939896514197936695532129945110349712508300208387362494098337971515724604861676062442560689170530259192779178388880298565747113033131489641960714633476841753544199069362282304346663376815251639272555012315107933441068034327044309505587425279544379970169905212624566239976043169093899202667610695098746265829774997924287974106088137414278403478223576982874620649906204133031832427171712461629944837620698477360809075625358471466954550718543801563242879394435016961650909977443737413874846978142095483003219223186999805879088703123251922978315761723109063381425865323838501300743218490398523126132083944449187653058148996761493073066186451584734757516323602769555654630531865607623977523097782357471072509402835358604844313084480335102618382397403442061245712512658753188245926641010771557296900931262678606810048934168712314521182990887679898212325319958878716265404956541544465031976098899416668040520083967160113518638060962622918093172632319965625820289266040550518624465679128713562276769986181466865428561525901862297545511595107335356438342123941852682458057573974924378010768044177967203921835485914940053989119366842355265867936144376365291605643992072058466659757067297921476357508032698349882364229654773332883617772000772622690927322737763952230868878817670622533628634549439966919617541963237814758345776862363294024144602615096470383509559274838873945087948821693515746633857069701710684688402321732910379532210936036879098882000816728283452304707107044286526674894612345712970750016985308357993421017461824061385751696764796446226726890951563051267594138870288338001244134507899498661827652245136408161997652392647690781057158665025974130047214683092576127726244427421253596059610494742354217612672687545803803407895483516801467068970606949709363121876739477367136095219375321696526137006491874010504641831182163744766435328110890811593832440840559655473857792706574501571572425020339462286394590871388875467390944932243171554620744989848452068368807359253732600507494254265487354176287171724789173615984783971594536942330109471874196811656568843373710224717261217974467716071779810908605857950736293114141551547665786422746134899679094299576329014929992316113266506135238473650822429100300125531452589069016725049423150219762349271284176395583696147094110597459936914342975657063158177340088132245794926900372150735104656376310582960837553189230053489532108494848814563986750217299795263150012198916594835650709735677413377934220420240849496539192313065536540134941928960848102573162011438609559637076888395920133343066712234945621050868602075554502827341928669249552250412042247600791192104412650982343765928830013655911603564657055690879539414659447373389452412066429703807669322877467413329141485167519275442045298817980257769260930406789270541756737021127943013527191990517927763254130198579630515628201396879202491706628956063976801264579306579925081136272926112127414941844370720430703149463050034715656646618433563713873058375539145711595694675055084007260263375802115251903963851634826924975708856247772741481328269392973001608117770748246613284716525058921806118005520618509254953838394969449588257964710267223639069011607489783063965830808685198999706763418201313793314774946517880774343586523504504977393860146861739878914326384994230920014382077021197277737211467984040715599338869421220308831867333904119913155600151969190617978428758685662168529720450352361791176351526884467876040879965686944025584083003747972696317759537327505480165196287792968082827657108731583785668805877818172398180133737671821112281664164429721648429878544042002049503327354650683481074263774454367345492063864974470885694080228669015273493549981040533122043386467654403040820675381860302783663882097371514259858851093967644962444087710070994330269740616497929302545001299470299018841335413214527508200190875265243383262256400612696446206625438832638509302937819670239278185006577399857530106718676637873888243004229420108379562583979599690130285481004903245477168117481627365845273903409778698957568570280410705897790515699399960328004749578712332342527780106699598002229161815468087657893572749864285374690038663407859373251321017722331100004941822531908925841389320129310581153065378038545586310289346811696219665272764174592037362310216133802986956804842313386756492391901785673656591184612855046574284965656574298755932486747420007967798190532721081296697700992081593679492767419234976369053181741167840098869719056806333490284360128970715120370757397964518583813577007507684196320663128211411775810179177093996990107173915928871822834940305570806466451822204269214279855683619757182477736085326496340580480818800517872935947486547309344410624932443762838663496442903345900733226906904304163832599056060714586283061410563034715796298632281163051755708652670219651359148826923174169933691835437004305977662165892720278380572878353561192942208393809760185485379139594164208646345045842574581640406886941608467603730879710016837576543191846408941859458672662180720969921647780423750490314960568684073421590389787491554712907561621172967176796832646666177701370456240580239564062776979987265214159723304599980804005677821047924196725725665126884238330488732419177590771157380290736140243349707895287236039252987166803537667338947494857440914413152593753466489039841168119461646944448117286199337729467465283374876019485259245305680365196813405897072921642751490202548865674978119160073824657619429508061409023739965556468357826386537854629357430792422213688799914146105032743584652847275585651935407334797571919739284669800643710889615780672351174786861411354194238455218063530829040065036073164839751559669062409957124836260611867581464160734626909862495369161782600926257964111074679187816167723950995740068194755633584457456491178724493798347589560482629509981878995987487679287676031611435573410784693219634755345875763879958734564643375272218805872552419408588681858252737090264241542709895801950425244216959102730715609548088132408742405427032576043090094200665044746252527274639017274221163032326082824538270831181707317399296582973200485640736680613954778392459481569928791303678465931557449284387997109515508388129584644612091548762838496014954446358816691084309795331718139515716928121033852855703223765235765028050110167762521954322655152367694597072672667544665461886622755601850830746342145293796480407436154044153284140330173041097819348171296768849247393930086171784009675073684079585462219024611183865109205041381620450037450461729083450062235130392181855821689278460898738036779542279708025479035005132089588695438620975050563684909783447618341417384711558492061896773635107999984033592137326558127996882599566254880406531677617927655461687436798288123225702867525443368814988969391985258467504496852642705441848758460830212286316998721598474019983762873039744107055020618408519784349158684747889471982077713192474107431226613501296687060067850542072268775253909424615261244436712565666919142540600463335821609965613371438804344300624141983409298519736460286461128557203715610222668622886850838568004227366156340524832639264441102315445514381502769702906787123605962713990059287539934666359819859235388421000684438442311320464081246853010005034100478512824756822036545727330970621436927534852899556922654956829094729330571942571630399698812806766445929574908517465472073133697866642504408759305803528932163105337006018111646986176011960177984231706131939134295346234805255601667339780106125144880086642207814592442553361158134779562135834421997715100615386970417948987132525942975211875891909074901959797079174803779021699262196410256565081856066140573790707492450890730380290233701432604822339955743040989356965872625066148210858672887401397886997354783286612009245550849421310176390074956133079063287993469376704420819583250552454466675631372670567812432693809839127267547366893624720631816078946840315917829543674575012487930473940945038739838868175678956623388711916515524899273730681086032349487468964087578207586828060431642265852064755064415051200710392433014085529563830469615345624179618073902825954642069098096547393375704974377063907793931740424611920955743829288797112907112435090021466962794010376251042270337215683163362249103461332551656049512786914417648711255831222104788317357509197407604674705789761967022574676971235070750554035800548686616702565308167335199395695334538164400729037359994163882871183534764641797147832785141061119677722051055212658527456155689967951692763873660516175640821275798796339629536063639158355371662836111248209573056996754883781698065933854311960497404218590352766797068684799251807828981643221251922801936722991037244827026784364254374518266210738105428361170230288675967564096437462195988506291125919131076188546454416307400351323424698140372410659657108321999083403491900910974331862575164302590538337625954205061482528402367469806439078711151306380852554563118548432071506975163956987832282497518274397394557797736134138778394792058007713195663475387967063252544132119065349815993542045489340722753339796246303240933079702209385622525413867772697397971641324497455024921593674828936047595964172718493749186100997914948832261773141133172764407791425115728283367093633243046557944383609706428536450705741957450895848635823606781438622522423263772713492596300114160890471621692151172607521081467957676227592841764899454536060379185652789096633680642845993376597886786034010808736462996820194765893239780101838059459338383460376805067031059343310758399353389019437409479094123440644400295440750716629116989361758906460799557178010255188038163455840952878716087462184297970297137807461513023827297064713797856336474579180068552295031139682370352303008831829252178792082813802003689721264093240389151142103646089431988179656803442995239674686278325313471118004808084774289088204288337586300561115517191817164093369149269246129417775843400675039184765743976846587823012192166267732505642709384762199057742456660496439954602534647204404394235738201671107253842759786718524750357815268990265588313947002685391690791089460294216628206784547930137194301958288750410366979016615529651437205336127966732276822783598573705015030122413003308617048793679242671063909887941041992765418562207522683603163485252964103206273208641698914272235710917546199372590819772283199750226799446615700677327949428774426171230560532827059082401730502388490271958436909447394073452428522159862322239682343518651826084974512552508628991754568780752588126268437207809019507443753752719373079896114537627507972535782222337096393766213744971591182643325454649732264770532751379289563164832068135163952389399422844107758703652911505910307140522335930509543811089585710303225634690098119569229706689672495582075235323069976498739214736853172272179864300047267225013690380080208207934920524343862007034010238584617346985432134469417159578187844776070023935304050539325682127459952965113919089478592161259394045361817092049975976384832168248918664321258881377946052271598069753614260719417226520920744544132623207169535090350091119164905583136544899858614180819408768147728799040107983277209669402056077460487707550994832575218730643879877154181375681844801453481119184640831465814698855941417651078320119652539111506909587387469420305998693147686968664460994307889366688697658900956933172862045323873550741254524153553145205436493860318300736546857326723161078945671718504054304876210206136411190842796867326129949396334220324057934793120812847691760815767985929081010751349892366052894365710072948454595134414318548639759218992559280915793076407528468438664101877085173014919100357572151964872092359367544181450859098323066444873679546051317682755733301249389833935463179494471468723001685341539522936459499505663879507359609263884989423646718147683935955967444882064704466412993799255883424746115339364651080414620660827799853662192208386910099401745267216753774391637918505774749095650101454024406543672551228828640779840553418268565390586427254377972255876359781085840569204714740202559220425357627517182624222080985202602074184500103719886671621718690620816767294828635667950145661486593886124131606409458009024466691760376170061762217391349011781684389327191891985693605190281938743646166738848654484557825852479283605544605142952562076221889175114703028944765935610398023421772735863596523463126050933920993101818393567079612787018207421898143733426979414710503082652601745419768278007248767860811912672425968051660309096925931551728436653302465910563867986737023187223541441648957097779660335803902511829373923731240799732164267307525216618680701073415547630920141164372270274032533412372298252410207688912764796083361819869799353437091312301761947890073730791132152277291104997428258131025573240688614390081180849667008814554973978784440855659505485682210701294488011283411048250328646014926200060005320467501503758780396214140241102482443573467920235878286073171525364790336386571697319338886986937868215994000153468878787333233107912098287296896686578985192069731230825620896451832040269792857417401455470716408261712274850095601004658445493442394069315384464059780828366000762230058790649245968513871252375571650388263302489800225810690439715879131466726651461345404074419018223647853680010821295917008548252960936462437416787112330191633500322199272945851877225916155172366689314980093563154898165388039473969618494468286766649463740562256417411044166056276350682630793198883630277859161777619676284954037160281901017513089649681419628848779293089375388866266172486227536224812494885058008123447114767999783693665097188910386509959195195578725411054069062873094256569109880626439177875252875085253654448787834304580671100968674192068767689206858035316784069573879181638721252777574716053964873906411802282372509017551963895766540019245775020617276354163335060760471670495300050799615231540539431991603981488021618376094370001341755034825693449935601968224155807632120383835733835439788328460661769575857178139563684803249143289028045095043527506292785156218323635868113186785792615994879255092756913846643718319155755030323441146922989465194200540974464939907947807258817157650097490269999139736043134541010742389815518143307424873592924919117181086486517212225211509996437537332100964807711710717916255687914102835764731369018717951590938052238530153019610113565294894847308979913833396763062893967758104365644537764409480736917783187428314675187650703409602549366178677252934886113440978018679307195357037812256152283421198768146584657452765380740848363331065375275705053639249041600168143970568639201007885324163185635608639796270890631899963696084131290521701172579380593156957649817425751534792249358006715150295607509566294163950882726001864914166310818475998897530694732032851952739709078624696503622175963992270084372512975398755569912460222573779704111796148884956671160911024560612197885421031753079543978577530880462368211141542620977934159325096661547757529419567432599498995862535468483575062603240540579433915308893570727993940256116839408611824897333955630916016057616226270611061199390823642005671462989882048686396976719181676938023166471645720777963003451789753179101480793810669398071472748446021180443467694653179942712992945015336215576814843647350237352704771975957316300255796075552184799699098849588997665279042614449680497079768223629506674753275088720431809663347724095913242948675609073043155254302509994293480939535051612500091506781077577399607069204682860343255856443189679332940188155533431052459267120048112805510113271811680399083052314578508578095911380578505138231365995304059288746067732559929364395376531847840204238719279396421380026522516138238939885400422467317320219412703927639261599538604066589384292418586517523382255371256562875529829708285624053740580300103188459497851278596178005701115215339363131668037189430341770428892537550000459196937451609283699639537805171486646378633028556099224800377040803450521356625584731306510971538847812715866616853285683928894991086338516202075720372556947888162780207209590945596530668064317370675378316837928680217066772471473900732912208390955760781953882493437854463534125166101833742383074898853039330146636722663735740648385485726841713081267208861066618141373306236784776437356563312759163521518524837620964622665016005277138415143886174396811445689593827036100462165611912080356802670687512829963013480574473665733156054094022534419972067960274477293591617476399539889508506983606495412134705606401598654058267806038233337656037346633646725771329110359561849778007688657932037671597833793340147516100032500243061563507379218248652984785441981232349247356258840126806020187027844249152179727496248240582241325466348112603524055151443206832468773583497328931835257943680629049202224860377956791176862232367744856799830119547120572651874303413237540057612455217144163168258337044377715422155356527054543368316935508927975276279882232581395597669947475391491093079814853379459780873521110671474638594577216243092823259698120729484021500537833250036252887722700108967837171464211471183254752361686764527316930157334271240355823062021553848631807878955445257362202802530146022590432593755104000333326925518071140230507066966296347328729100760050576641123483374625672776974464586623215761940489233837915122413190358468388893600315399474578985322254578355542849262466883633978374868053129562975043584777955611405153061986989067470952124397403637280940357941147208735685894309363485180958866472557850058400377880174485207343678570895643455521820301361399507189866367460558659854054056692319036539544078973053316725140228356305255821851514508418846943337533777812184736760435324565056831949176558291697589922792051258652486786489765270178280868045313852749957699284403301642755195610239454587935751902563982192674202918243678943999479504462188589169909519099398703342398944443961666078590011790081019274609365625962592481370067611665380043306468888816824418862873725404389250136962503349076573239596225085833218820262077362484424631114086911816737526849507807944298882204832670235694491958814225692677558904851859097214774953481699922695790326984986622438025810439803687046249524823506099430449347708943244960301364591185081267476713161519344775472140257208768803734657153606203371254957679427829417632533805798043077032648971374922456741964029123896709843338590000700932502167093668963990360889041650794388555365723294156410858271355482816276897216492968607929318169793035583216090039179722491332373526329578387600186816177751773541343073891303697116505067746648450686688800661074017629387487933915150724502528170023860741729282094758783138040311674498652854575918876783071285146826683095126118367446452576519019783092670059835008836718203093612662630962730770194059584137391013938513288848677381429357767568178058107907004800743475403265469532305465354754707570188674140251862937334288426901596863240042031758624257693006871325637671029596770311881296985109161172816517675603795530765840913085969920669759603240858910074071741007239673833724784549561482285921699353963836091349533467427849609139311641892227324794404272606583335813959531136025088117625881233880854695068681523789868667237670198776742726953821235756185762958519673709244164307644303880136752234219116617151472828407080147285524547602861734130753231133124871683468238622885754446243873031317563749463054988870154926739247215782879356227781352455829551536501796855848330186974957912167360945175500815913133714712701487512759400076489298890967084712810258146498074445447654935743564178252591194897798882278557670883895981639177824709662144456641259883092861307605189942512006060529196632433789160020885586161821516225761104449926637431040238932212518696668431091356217767104637118259141865240206575955866700788605378107040940042718473692504146951303136303523287294422061950972056440205408514329263744038113484714862031296146986251245065043272553100763389422733177899911265858299722944029588899615864949000238458971760132525749285847238619964618209739373986481627321810519473858945662315507666499035239015465264004727406456674833586679807012435875213833045187542871104447817133801437876541179638270861472102848610942355609799028560236332913863301517271921522951371282139181020438345324604407440248328744186977540207505184431405991725313097534998669040218283549184223347041377716000846936198717324657078381561182098906935878618289961663648746123078151147227480942250894258495498839194532218390281575180934340494156781504260576989585769526883927129856475086870842418126234857291469532450617171712925863868751873823389938142206357592455615981419460443738903916149618745294747327736394571449574997449181954367320528845335839049975840322678377675082238115873677261999140062293971283218741285256012786220338798640192948628020755995216666104562223590402413151794075845448099495968691140516465958846399959389963720940709134669986482660042677105075934231565136396888517510965535960574537127211112673459554339350868741096535870344861228999074433407248356299706373979301660765653207958024152582138779295125612110300350877582965389310744107612159314958459073679183856360700757449562891715575236999073525527745003513523306704807299243395370330116720397506172366015926720628709516515925301863351790949967427597775743078710101569475389713840703134432018169484972355805218091504157459103994667898577948345761956759914783529406350031277096466726848169745463337590054893385209252250640216586069813993885122080910721209967389920988626367870896044278222166494949261881233380153131785583936697085266028867137523890169276618879006311149623007000279992894714170478107879665380860922885543062351851630940151226976667785327652883303874850710465218480889551437239524610831169074004043886810321281660987752551856945705534895994995945728165216605596242226534454245827023571090048494987862815826409101541430262967099887003438969618287628086812351929406004107266057711812479555952467671269066603895058219246692606439119221890545115562274235932575357617923293055730859690249093811879595632615433827657578967365863393727855369269434639701699836336827683725659977651292949135929217215406043280403723680248907453442480002743621538260352409794901700440700119359510634164715581099838739227593678640167308121032896441362831417689395231311479870595292752433726540563508596363189844954123516209250064207284685254269097514494473873311580258656684105458578395106931653934271608265443136292964332342498760604813569751125519465648320235740439920258537842231561166419442535313014947274116943792944508938205565874760350230259233416082447976357702360174047341685540635108395474538842558688271277149437436446138595640275906146908386335002023996046581207900784320798485813871364553887699828493499668527607197133760067091945701652053437076716839508281133379439560318529390636320082037836148359301606388743730699921020595846477032404753916330836028191584044682833158195193306035949760673886471297905785461396127960172227799832693350953675806750873666274412186178840642491832606192514037942670885629382737993141654968089173247010992362536355033316918085160555680161330992495420310297825337821957329049773486538487049200320505061762657125233036889847148351401713501173350549363878313124183880639945358981894163808836473217236484517068584236767281589341654688963302650805050452210969659110051111910351618895735998788265534362252040400598191422149111146449300770167366568474481061881749945754183025168053435049380593202617046977247329598319657938777939314227728710268329684045199497446741436958097786645043262259905462523143723287809010303117494985988686544909523945602622295314017768427167872067320198686787049880153584186449854923529462649476530641807722640022580944142901882511831309368697874530853554014767224326334638423070740136035615070532356282805160286619301520014624037680759226919672188353348430309074773677119632490880268829521095091954786552046552656384814757321811542885983327202418991757353921576580715534761057997306263679765637034095619844364078321390812413789621756329075597548187315448705324387874811231096945511452765646529974996090865606736473321020989274836379946055640681397442347740454940873703322139743093681808883486324529483767294539552245909901236639955967061715936468586557521447855698201546253606392287675019262994319684664529628619071999969811408871616661265192609193748789064725361133998302549439256494315819306618275926055649026774762487132578667529892575304746666655998872644386715025575486522680521042423471161465204363987668590821048380329050392913843570492412450938203046337425594975381193947856990311262149402485729066003247048551508773904826447563166485106828570036734641482831238869295658734256405365440539052564564219456071832372463315641249467959559850585369565272197669940146654904315970773311522921806449678693910534319198659908135131615337042725675419341502967904886705844487254270385124806802511665348671587471491482378162296824247108183143459881593396111217602109222937630613816745308164321269478610991021198166872833766702285299371876428838930643287486516579727547261890095634353820188892854966966673436562826254849701827729588735497129081694299021472568006737374694529375805040728977659150222253217688507094345775667069792109193372214935197620552759927178828186456806771208425604965226326972020403334780284706931483459959452738286652590414388417267388835802083837651928125337563490375085777952918429073119881838770757369240702421818503567402309839755353481319146347456884233402044287874616257505553383627892231508808620839661731895028669601225948306371455891699190552443323387331244950927891306295386445940785918408590695549042995427048794465240362557202175950055130909320960211699706921258825288757506844191122835079676726805199860031352243522413316554121272037252680719020509063159259508259981627032893881774506212189029351329663355881436203356716112959189217774993975722594774231589033845640089650776098338740986248496799093779091918521497615448759971731954550371388079015864149043463776113985725672882146238476040840462706730757198308897303224488877731069656522374549930280506771882112752997920365453716039915808052754801805591141701896077478654528365087656968219377963501007938641823401434359698241550399487489526508004131361837987056924127843062673345782976135321186627688224951105959353813905191402266992474179798954036608008896234558411771879241166423498648590108045541848087238338624486606749255305110118899249736417038541548507618842209809573903596296754380495440677285901830804436153597058128414599584158323831092323811922030806555415268770503688881445829345203178260203385416000290030162208139615019348663248547014115307124512173977815716215412564453224830276268804588514057703310770244215025415696618986984081587904043874952474725604700806845618870900025374205680911939333796767598732402598825834506656343211140922131288050816746492944481233779601574066893847547540748908176379570284572407047589404080659748108743247581966936651936021780189666235447839601059989567827775855490190888406276522256491396352506479605521165476371003637627099054715943545859575434315897796796601441671208725062117096793790821156288598499874302460985979421062475121522927604557368533744928921228773119955861867572039592794147309018316823642290620799215870822029352273215347938955792136120021318168018854950600624066118998938691566145947786225053551194364548309236281375989340196137732976048836635506119121480633965992464153543593040123379564254306994936407531155179184292313284245252269707394678228294166197493333661136996334618799702921564303614152258577346986652639119527606008920694897543149260203309575884065133747595208117805860957601330509291464585503417295116176102102557099742237797102837031441298052267919211821100775347781162197930280664888461660914146787815747203024690384390074992264623755320827439194877205084707933009276810916687993275182641425976847810679140533950096964772614809063445844434570032347139242888032551546333698937039995541217510065330319435057138801954354423086967714627904238165919270531247610335743370328571176469703061752333396758638141749052577396051653302789202709813393640251767731970025440010801130828749504754387008213258493424587873780625964462000535481058816227217828215910036623237362676867689745375761728474278335047834126341504594042868521595528381587127313843351581896016102412181336715592852338144002636044463363074990460075189599288556089021190307925250036591040765208489146234945362527437284548539514279963767760725905789346597624888655681237462762781953506636708321333354452076137654096086391668140928575217462485151792011608874228692279783669973742686559687073661209331990426063183744535313092978124721921797580621909222877192696295934827365136985471155304478666289934902137813175716140254113502532770095235822695079767373383796048654562827915164386684976002582543568711268934187248611421082449003305374402231510830163807096966504695204280716185138590842608335469372764604593680228846963151164121382281412837687039417140683745172125869194323501402670030380017485713190233483364499667638426710871297640452522797090213136672601541605601587121132627657190937969562274359766357780216909503127290833160189250716897419724725741878329581320544291435835351757249466643906545772608613927593471375176592105812098755139420172920446208971805711081483732230564058870201205488318510068694282044886993353365546648817375288465894403204829101944658045486533375823146091141745567705159885901793318827255149939167622277420419408742587894443079985515440459127985327483958901315839929677728148565642479471577595008952459266072092383186330895402645372668486050165786091355783543244521815378684592869605498321889077616349814768690181788329347466973197667528816842849875997734328716370668737656761658078176105162436226690251938279284254096533514318179214996324549522168091468207253487358289638787365452883075966959630964635468652397185325520636247871315770711966399518962657099485180888480148754600523610178837618985686502661798765819272516134706236838402628076238719152575544364852454892474941356674439931869664443855737024510063493528190757362805347791868425117536031164820737703401114832152213322105433058429731897983947948346738672438454574399132802214581643829242890414964030414147871233293384000767288032046248352589417765661588572476530915879376137853668290680787945863547181352241598184093687815141769212814949577397089123797261899083157988851760923033346111851757040703644848095922941667156501567457332319861348499409288983275692837954116650143555440545250192977199333252562660752990709748290388381300859076891574087290310838233814099811383830911814170798148122297825772900074753469582464045895494846185005373874453011486614612571432098958157212050891017408566873261752529147186964428456148023764497957815016024213526996022100290974856756612541072835856005031876859640534050496831436380773835108837837640723658896786943959248849483810883491403024965178613778178105757359896042252963810268965888492677783275616589317773878189943207357589056831136987087904093636599330532890150949085397101611167847659682309797088295058341109228592536761941786263938209932167906477916788785594032257575029807916291088972431334336944307849455280346694953451944837087933821605180288642311274446357520973213119284389426767885482475702892353192704182812061591066887092963474674037490388303898513486823677347191520056931489694415657488363580402630193947769266790391680667550774817418499112720510440934518673783545333502908148002441029511461267913172600481644100185686519743177805962664084550655710099128713505513227049182162388816569539475917024167194294729019777078877743815365588581935179913182499282990704217619713311998583999321135566752138734096216569575598187287425222762630840920627372109432228382932571688076883876845669615008397982581507146147726418404517070797610534159272276170928473767648368118014678279394801520264536985961682102593326479625867966503243414103741322250350668837067100194172859950823949181271976674452516036475251693249005406619713085115809341731224442387119341211689109351595807128314399361237489712336916690080413768810776575690319927205671335813782151842215289513663684232368757316783619215648157071976965753176967143636569418016828107929003003481780462418948987695487205961704754704349213824357235120524373788266815206090564257456204965828075670461771386965920166171799865711817604473659918142876503831400486455398441687678897897656988615129399083534237626666363602640195499710914600101537404100273020834003786451302579655932212474244932091189560946914894025775047031142402971892691251953119993762156044420933742989355504886986345323556120966694577654526271472504471101930630740866023012615680807591302264389301886361103727596082326611920882414060102720255942193349847193901517791941463050289700220453684668901663525912938393368131148550323886127214870712389723751788169627617967300042536275722290350355520819205799757856152994384922333493176234812257427801186680507661155817579250303052800802693812131322036143301233286340414240285930947326064124890095426356985471826322762742224070738844061446482940353144295700494180664561699371411832311555173304814566912833928513482299054946108090558157285904150136988666213129394546721726208157769678025990194345105225833040053864557251080888820979704549882944575456344170535587002967860757661230837783350873522901243130412672505696252272521973863147756736462260224383174266568398348315247353250362658269710382032465441073871701919242985009801459556581837717771538703127174900500271625946866548671197085837059930130533419248404924297151509046708766302728917435240904530703872746349004583350395248025990546633080789696305160825898572287579317155167325136957338604574282132727385240444033535290662069803094517208474074506351109705723246299928007931246612698712508381993560897112628570525833977992418493352239398611542669919588159455638199258445103358744851213436849405429811925884014036022239477465620276863240377934774154230429991977895137900049696071012732408457288157185838743438616170003991102125153100881480335772758234886687359023077699797146271451134312665517797999419424687273850414468951928770049564573886575222021232496362670635866752857681765991436292438653209562873114823359479509345811106783681724893078827945992552592182716683654611972261140547009829588290046116173055516663628803783909306519595217772158091524592406285201235371552274015160533740972726965931196966754576069070927977651733929307695723471446232758567146046558349126404871905534133097860200942668417733972652860621239615132292626673847082275072893090703383137429874485194754717667737080409443833064287140378052330194110984118280297756851474912137623192808940396022296186852480919043372219134129498301278798863346914303960161157071486132112620328397988966167305818267728130215304038504126295319035140358820017053235731704078979273002928178020114679725368472014545181830259449626965001754957637699807588319831710079955425617048576742102172326643286535943548910655032102355037868109141140892442932103202527588801480498357465949647389562009353760818513600700903951701326550779335080288653742796947947389617338867518065946263650477489327599100051276676199661002538964623727596590005457808652177228322106493232693958169869253952370927975401449939649524018171343587090400734983335215317782399090262831393742978714050765281166221807452494793088083805825206710765430622089820417419752010516161884224535582912384360853098193632790401067481491277792345383774254789312703167701771064232051541299845592882609728908440252387170506792239591022944967527843812481814781100419422708051283552050560339805028974375457626363069985534428064091519965436652233443669479489496261063405321993095943409967393409952063841226139279420740690505753301341801688164683274097092103371767946242129733221056083385478497625275076306209791114504597234659412348943499015035410950008809797052046526745752003572134154003090572610438445981352298432872789989932765308917264363484208280853571321356314012934537628256190256145944259535207857387950585553496270135107327293523102128885255922725907259059727380515465071271346327651241678828013908380313012993473034485918154844601833981124356621501355259087603472502041175171645992796795634834598763452952388524065942924175033044412052097051951824508674014185009750570702944608798228663373897613753896943280177125618347095913668307466946489138100379489868892416366340018695121276921996198696136147351013956605868568448232382972644798831535629117586352782354571487459131763734038355485537937290626123689370915171661909698267967438534826443704568706210582380424190531500152767575933772394453919705362852104008315511278131399126003672529219129571442992526627164725464446735556661331640677887400767439592887363384517377096361096196145453981071471432932066892898726728728092520709996076529590355553490263524106757701646166126115052892277068075216702306240687154455206330465845925635727021496834881712969825312447242942553072211342836317750233291732609024037899624931245372943554361506963175702367300347811648749951964309374475437343523373147306593835936268341942758463655867256984328435549595726984527404273685889497029900762385940553269762506899462203205643268243958625470158708905630836059972923064312390813102770218892031706170558083396854765573519258244447716628136743642938681411339799227298668524682429485290434534524073374108922038092652663634703208676105400979968731286484260058706766405077233233339168059907913521768715102889405349597798587473098015352575398830669452823996269696102150795059758823758360746661941937625166564670753584321855809735214510366094473492030565961343940726304184961662474109220766260352876820616601819524599540234134306571135941525691718492175559303929081762856942452316503015181519850846496207052035761929576205815176859552469654526641188603347750551799464604541396814467143927355167701162670611940173852694596140168665468931747951846830649066804684597255900304403477702258525745839855718832358047544240238160368701640869915978015791588563041951298120472865935333776380131000827556577656701140089711984086820792226154523801398701957947882283748256579018319496170028647871288628970725699774097367097815189995273069414788424460192296864510860648601411519470574862596648414690544398072180574184488637870622370522099337608207432584017791340769586256082308305568695345509837320120134463465308442477851929157206716064756195041645856071628846757540452154937310173121675169376698601496276743365952214259378578269152338100645233422098026606148533228633180682861737250085702621320240370862073877148532723006121189410124962249550235042772994110922499806129898305069331149517777997788185481861332769349553844782793158349423711099630293665579048005898139627832303798410057528554306945919836300433641189367085702305697452725602035183229907595241996099025642100112436742615033906423494360854948329401174422805655951836199972231283830577661097240688776581929399653841897659538706343358183993747540311459694555004980913710340396542752319741488546926093432774469158165648217140739906285129644856366764577633519376567095779530333744732802701045413295496267582424085979520274888986659149289313080666891108063975872994731793470057918669183824981510314692336063321146681549033975331753855140005273204108364896539532065007173003704798612650368322744398123820359719641730064381858764481493131260331595681044293473583316664779322281970386932200802436600742159631172075629970029835964174739570741125535773989093687161689329035618574871745558505546383276651627891696903606432466440328276189767294827887697368838469988004135706831935498254571234348081594186072075934854903294259525982377038068852196852516187560114131513400957844059736503749182564522010854002229231938701188021128498592342134866414147921794953656663258162459230479906393551055643284809693482603359626196214232883683961341006195601042225804674392872228969284626535654647284965398131722250273632464308317108280187659710281692314745940339935555220195374626680229929898336278045110413826480460680805579313975686330713725518745025165786702809174347799637085933367863235459439487996430385786640099460064672145528971210368545640030812460003491307571631930535078230166410025490955625551201432137303691661542217754273157800676954991308372531507846090898905067544449526204811179089994619346157247484587411319042128263352009417735949823020116772721578260209073064539651252455958636343626274453997236964341267766897968506050098530974893268540656840425431679681179860862429696249161638222569536461940177314913919802530165333377974035443889690370407889694416499347017123394238556495308971240716440470991213769874802314269510153528703770297908527388914146633153713198901237166454841533525473072119024073349242860302527698174893174777290614162490914861362457091305851579652327720840856409546354335359818201984378756649683447444143273870044117903323731258988742034893618764751400539693405270356867423022533689458138624177986916291072966197744982328937829963184014086253666379733893550394315260664769671693426602533491341641880982264144022981704477172763159153547596463819758120349465235901427750307845107417893392793913317180391086034120319232643246657393453907217875635080729747360011317288667082143611860849266080076612247492910028617186905692179600439407398021876495066126715849165345180791027764544833308958900772457548108944076211686764513283074224676365962057735666256654897206435262772497245522529611126113801758839097278882489073868003286872622473396219314438864812427134042018033774904007521317755048400456727060156376687553703395340016123558805274886899180937507485151178613414386703397317978834965103158413892618672522341488996224848165798301002079961477086374041584586837008198749868985088144683141203352396758314928778179940318711640938749733258460701729918436887462608157781970432425125166923797539683075323772944242706809727589363606951747544039517905435562935428205428735924064964930814840270033683970035162438912656767770519050483957736779893205796878350474455775530816693388789195835454159644990456328506318039024519625565878744443311130673002063125803193156858287342884640922607742135426882935544870849327226134456836091312369670048627428362945825117371659479777289015102887299514554394715498665945939781824919447944267467083426348079270167383952934690184893113160332879807186685834577445989614746983794513103777131539523857128333060930836293773733161095518560151677857403978005365587440925416314566374956801931669914243006487977468525287511733576814907176143920981092094365356049299452713884567214496609603042643990872080321727500445039231816737347453189077675269714407384314563636469519957154155790777638744596904175249633318222789031831939317947080621466281368774469210247013425494203729223062016288465859045481222975535213584918288328060215413315100798815052219684046484535836642590415667791272812499208935065346704330325923864562714868076933348785144925834725937910415421357741876076312113279529791738668591442963884027889813130186185374696414828805264740500646364011179215413958173891764598249658350349120365956688380552724818487473564844385075393207049787735464915734083493233814053891169747824529706528854415713747476261929765689539775361217575577215408313263441606778838460572260540300743996178222631546055624394618719518865244095455840839854228373325628440385295577967195362223845040654132261596603154978635378988776402996289023827124839682358865396152512124424517651714345933587951488486687327444727706463419587490429774619187149283951364647977623558842452738996130407280883255019023673904450732301136311928686808645576360304776176974102856552683368694300591853008635024690270139006588244432212556902529233503346926289602798057217150806546702011204190808165158988230255647577206552753890552430086777750131716530382487707750125740851474007738923291941056383008524704260058882529046528942703804059266666480180732807389925319028998654676795543577008777378020735035984209511398878384933666527047289569847996462890950431068575087727259286824442000543648705627147101627814122848405485565571633407091318812728026977183927209241499172858967387305796866497713276350497794711663739833073040646232118813611194974480092295843988870491032973503805238952161427887344890358462961460793379931147139767065538100199824877348807617778589016738759246417846810031430831529322091529332091943030211147908881019428729568340101895193057813067517502224705031887881880887833088601370787624150968717366829188671763354253862319254228048778131280032596214196465072101557575785496012586328505896726334447456807778985357277809853250602362204499778260977383559409808252280208052878132513185794317562213678153924688651236695514164293670704374007347734864201097851284398367557025176467457179514531033191485205612218180422370685564328821328753172107982624390629955574731826955710904641972891251399202888927757321021456549979406314639578841160230061067375389226796496356943163955586310597017657986537212817867542978326280574343058932497778559497547292612392896533159131475577547524414045475235124474350228023785856044595669085119515075687468236863044073228373443833914010399934790557756029890412373329777182381936807542392820309830326140394605284985712711361826827834648033509038676104191439454360302535975445116509196140379750446499033191513062989939293836658386487699879019707545718318212459334760867478686970453768626017261643240398703394228459924199761434453503843859307878803822985250547752187784595619324355069503566110940642821100036783646620519708057125943092598257031101508364183871711827385061520546324438724021063351669542063220184797152518773864757030001741222208175961727109320746043345306109051446926360555183636237396129456075607759908591883103820559749580972738973674720263122289326285907182790219565022382411254762060006752940414815811678206468836380019739875419852122414140854847830720188423894707780842984221017616348768593912504682294123476804295930316614198556159804888133873366340071180482018871171822578285044303352781508769116617160252437572915559041449730271910027561180493368978160385152912655493461277522615009484724008012218832627585160663392127595295044291372976508027551162024465728307071393485632486075783904762999639379711928460957595156191051036547228751570324439576487484447203870512357368296527894097379284830186454709415627580884835822585020776306009646897558884729902202892604728698596007863323984295831956690328919685131134100411009622584451303634130645394865291589931548121598580354468858061219819781004332040349769938147957891053839287431126661723058025819128611444043723170784101654860834412754089018277035996351299391669398147987578180133916217154734922568903736123597426595821531704770118822102713333762479643684242686968644521596446038267316682518162531560726062930415557089783110580232534511338927769283002419384465779286389637377993528147347056358263377218509173233951180461467133722070351208393926592418132682713778725517164824187661200718660921928683330830664329049425404504563198688424172210748646052504612974635468694593978759333142047797271629876925887451176733860828683099433971204156650725201397441526718346583915508799631711809024006593304584002304262575199642140005672622092490571591095641975141706298008686528230318919434260074465833105113965259932448525480922173241496903228776534251907952402241404212641833188088954872988418694963611385963624766840035257408279914056389690449818278725227049968721412436328803509526131022660925959477070625905370646151016379656581017313827870143049379662288298713262140240722053198489071923248211713889848136476132489402239878634773746297723561150119058474184143314286468782789547220170877067560435269930155228364182628624017957153710901356676405712339975842561681455987648294299593447681433340136785616202529515334305996141384082146835445560980034848398726729208498920839747039265348679711859521830492467243648015910753254866425134800720945919090780663806702409071474847163267563569059155970299714273144736910903496823957381742336762571475476043029018465801624167231296566673187653370035956884271990237348865546189588991900417699847273858792693294362118515835429477956725425998283055571445542049527630760455872332218711464288444085979225007251679230569295024785006458168520302505355295149247875814324992376095215501950879751505983094724373893771612472727684121601805788486961184619788351452603913076241357543443620525863730513622267443585178713763264079201648921997199295641078641587608467935037965821797087196367777174818025290201554710508513960969392746502588829097116695634976653348183987359024907272550626574202078797289221536868268979048118204344184928079008588937549230614570108452855605383520273670787491479023768710217859288434328792817609161359679432034232772890931973250587850600444377236926012709326189519533203155191839458919463181090410973866343107843832467097379995931295457852806314309195849824303192447448455174336684164413940765200821213508385397538262163327508990201206325090659396040258037124382201541333107194483054897641717658283641948623148360224937774953657382536769452076231775377263993882104884058703775767151938326657010905860190000405811407008412584253103713617147411491061908985930146303430514189460907875744506055010157228152992346439068479347355745322986916238196472979941077449913709034429822142336240755378621973327022038002243412553156194901368920907927519987343685428023965647042299019359102082976447868494428791205317203444538596956082579892812301494452230000963469799396687887089028533116023450967363585057345120734237835834737295534442897514592114634663242316011069674642416727073319328986983505392161686833018012499037006750936549708603396061309196494452385181587739435568942632616882636324267722643909286707682128297962467109155488040095660313833766934387056319200063971414272692213166909545284120581965143494764957556866752329608295033740075854115674026460179255335992766470970024559287501431805924721270615960085186302745588676670911720436139499405650247003511764436736834741304762855211875974351201300807093733256483404915747287545860055064213206909768185085093900028438095095127256658290773206640863070869263717589023480488443983037935392046230638144347572271191626292476578118501060116719460031983031566417119425082104278907867970591216392640797475301714314630735953724172252899304121651278928425800267251456857907536894926879301871418113906208099492795840578119349358894430665207678579042043498988108192144138646122350594461550587430815345196091539413235643864044899393389823696344344769153857844697317235172978904792591494061278645443841417918544968425445026693679818000870433079989499875054981824021464184543525222444756211944977007972702275496157676861697100972276015570565948844993840246799586840642761339121840443946034737865093776493099549983925108396760333476851016508867002980759571904182436201281431552225404730289816105164754279939778551203897196739734967459337092653537067045632253923252368244486512886646907553599635396399787433578596751884755310148988284691340912382714805229495402156351241092730255463434483559084184177385734875334599771274019106529397250537046443556721770167285341073694170080013765626222653063690347132930901750185456177686796530527778297347786603273038323862325907679644121149031380836054442326148570558617008282852386703719262318844851896380757700930517076950559750219127974385306610241344780358578007063122354323899287667975793495124429462963562053393189318540744085854852572213078015482492538314057264032654068303759012861812064101987941445524447710324949919378169364232691133296262665272107904741949942869170793775615738613791365133886138137043562458118433973875941733499826206038502845286823324222049753368235108821832185278197161875515339758628501282645256702790241516905934928642171363817020161883030809039612051421745914942422666265621847030769211320833107747609208498452761677695052411535500003052471673722316189474706701515640058915033970296155158318231483348617662568661572009427452088423416902915307396973352738115142516024325420336506090189690907944474592264959535231358749098047888031295169068840643137482236563663549811434282142899240374558607752128098781107758719073713426677230563682220708315655083110176073422981243010405913313738486206276805901762605071934368200614862188439736127315304099126590499523367333609859083077314998790712554001355675097868249189464983144262787057432606683363210292641958860046953693561903802103198913778172374373150239287400265015294881404024161036757588499581986414152524295963527405370920965182102123084799571140200681482117658718098325589980332589778108074631479026842004032938133863395113017697039118626835384510082304585018063027184935330116272158531542706134843946668576136405488671482980202344892590887895732973314304994215897919151741891739027836423969423329930005702874433432049437295324424010085190981357450405674404867517665761678352137946941731560676922330974322639311193640582193407100382041311883905288913638651862509358969338840883437707144033540715475612941642845769431059577876932279997531246796991273588983001937661682388738700476880214731051817868490372600209570433596182541496642927531158596216325278668396606407735060143998560687210696640439513349705853478689403179066147759751876456905190129913762514789744464719808645905169953360619125398153030929673837960786600354217092354290266418330793156416243514210878190918031578044820663826896823810586255403562076569404232702602688134145062289118147513886781310604385648699480820113752809207450348782050995641188503214848757596196561673350124847728844182232704773755684784139054419856222234624691694652403745456911477649219760391272898803799177441074986233675891192582296471879730709423546074502516831431267785272742863589117764599403115783578303326944028441703421965737668451264846916154851784063532854432060002974755190640076626212978543512745693286152007138103848599119442301953193577009092301957185934333347616298263180608803949790408218538476848532265466651031624872465746403204827540837024268018452989210830377169996829624722362836626388933637343815828333946185894034989129326553334061976413973792847698848472152755773807218232575446445153266207845689315480975515961549029009232535533959636214430059765789637510867778406231148427603450714409283939448630033350918782874165047438990205188868201846688918279452728488101361037834367680400516647771096345312003437847986918346941759778172909258687299649698026212026447962992330210025437047201058421730659534436717681737220989917973109826324053199725769110957951771883285540373320978373574298153111903039892297109286650223543312330654431788706348965193473233001563728017541893068317783712258467648967440630766769755275268323227667496178394605864484729893353702127215724914931666307473787682866168015020510328245055484552312065141098417759869729143964799218350269262279964306251636064634445845181875454410297252942491064989851021195633853613913799654523592479368658468657998387259114034403404662625909849908729310612991159745717267061944618869885127933756143346587843261447854106244864001798138040847999169081729223182084342750702989068365641423595807978834696140922271474090018797620898427209405247518147985440950913412272950818808909640697018034390408643241214063517280203997262314196700276793020477640239569334697985589975350252880233333788404435361117585424540001305807260526363214690193721491406768790442582920005104596948759276141014710208399953357176126376925666215500929240899479393251329155544552065132925028272423882967827905226218077650490070131848253331705351152054472816301161495656024876934321872453012799146315534730701366189537809954183456579577171976561536773564827244603792455885404484877382271211317760480224202280117152148118671854728547346960883801705054635172594263106472424700574442428964288294162146412692034351413523090178506213620012116670475640549036118802815411751879332869768818277683677913443016336760872319088104562927853716571143883321987955538861272223332832672265791725469778684254085230177899713982546382103996141219601508330526963164940165356566627651314665604757210221866764957350248786820704522877788561080658934989587455467372296195334422494342012958774284774665783393172251639122248728230102260252962396398719524657028558473683700703857053858639130233873002645701717620348585361891750509928202625106353929711411652088933974560407225031483502861388305815268767558037943578949537668634671365590563295411170299143514062693979358275108244527421909007620347014422034587294344211669521795288463358885921492445000941739998954979281438761334065813049655763380594233430691745187126919497346426156957964777558835695550499666114194948558648664004483912753294213066156776709942016860564154049979290528759438528962013436658830075069445900750497820333414383806761632784723430350375881499239087955154598047766460193532925721752762544679617826739754020889157285416607007524736055574125633654202034735100075621412499232957759158326899370669926392869619912487407044426168457602807949954320711204906137041982077079584348481294467809873812385619410647026071845122902374453736486403227609122409678957279634736587670051304405543084235463790953467870887474805327540970705205541634283252188378643820047282640265728822877365506288493277062078839216291051767097554152872851449896596460679706213584636256584850298443654458622828775444854433941993130591333475418358538887171995575073637714146375353626183362014240076184923484978058473165089490613719799096303387499765575135677040152875224199701481903644583184907304319496762501371364187323179874208522767289151729139103136907292577852252977551544025405717357542926865904588937475632626019581409019870281516983524782319631426771909959270847439728733335029556681713173250052607417377480782065913486166217218346193839310515358595446160431227860009006257777469597163667179662055945207606613028130406390174135939464112709605672879850604944005606315433661860157398943616816911909885072410958224829840863967106106899728982341427603064603764060517783199664038866082370857085395428377284962941888831734630291595821846690454242461985259940807720459005225908842204206786066460168904894807302973330179168161792310202085986463679858503634948697362967304433295758689644338323810011020270763881093848003962550177452311082863291472396056578994374140989004173298222074273777488034196954245129631904348383848771808492933973148795156512198633636184124619393951277685821391662399753407895429388062308746153332646692099945601676120458773079191279480848162243747278039464346483373077485909441854124225557313447444249401260005330926955535598952416446200213512988599167932108775595687065879856716269101372617537266945093287103122366328441684749064598473957951900828915480886481895785242888547757031788899151454167266687140773971191862944866170242193164786413949780801354346433638145252041839796607378277252460447392080628148917278531605136122680357303868680353901529607132798019347287317232640661905182700733637605101547253696725171031725892926337585450981761066953189566618790993366940038297336736031647975269881669504037755231048061622741328782834446479268215221919354312389286624562915354056959245398339329207617677580476443852285945753514627111110462966806207406386052889423453006568215980636125942520453489910860317429393871717063899052521063914432559707917484209977686382749249840731522000663915947139333127722093241840695382111249785605174001582881737676723297696188839510729436247167171207412008111199332528944750893864094886037011769615893071596749047918882511237573965430694731918252582845019918890552566534776352816748427825544837820666686397394871410128179796889537469996403046051507127278052116779719832483711095673870782800974626700813839252059746623018740838836270106828443267410628159803520599762025339277878695497292663759913942569004414356712516233014366574330736000199664177097463070425950000936205448414306233556436212842143333868434611826593264127645764471085958962911239501839652353510951320517157226166268036310924797295465799909503709535165024691566028069227155246411254176115974190866528300279502836588540034679069579087745486393216490845348344206195666549332899969928876125748042410088479399430158266652111919143930261081221918797196710834359998723725529206695287782059030924225500659904204115005010540213036849749700597476860661548345928340949106055845743787146181252907270178404902359416909714559223727135219009390998520859736461778198869838871267928436262995103081042174298218556941155432494494445770047477147618537784210912690662843876311222587087692754197120328946037841118346066264986162171593646351515597104562400706378581439010652325274421748970110295140379638794880972096663579899200387104180086730450975256939523215550011621915922478230726190325557242609405618371850779901161277135546382993245462206666163375072068018822364742767974459577568835256931121152916591513277038738953320410749148064566319534257451625566207820467568526070621871196432808878469886514579041288489530356731033783321841946091095466520697312880345488688489934782391369440439347189010163728637109075380774745850070032185681584162740579454798488856981361540590614332002703783328717370720815812851247456740795613305331092373025671854255433021832216659342381001564995048726365313004725683316887761400790985239938831663749000155850949036340533814859576116594488014858519372339865143083821888412686837678553042605904172961004315850393127393609224106102402272418514395584607311045678099733073915832029176951848865709111228189235306469760290135751621500528157841163646906565169929225004715359910484474243944284897622897688135410089048828521751475700155645572350957469381185242030084412260483265442868504926273751283388718045956701988825182073972249240409883333665157768992533524050105160707620843874643721570003023712933742615237777017248990184106553053786314884737797000978295298398802746627469254951673900962173956418782575924050964063951244743005004880210571492693211636250124374214855926632372162710114143719742278787763848423536672366681723874040095177020848480073764858734985920850897857724587580151465504474859585280887344284238283910995309412215363639475420531368587735162737876269337194926089487326680752570476803604305564814020148848699638108731726635700688434470789489414145078065793715920415606981760827949568310974287509555326275785996914653293669496167866163987440499116463140688376463075114854246705561823011348463738142883881825747208163247423703701258039136038793781876159609450450045931284808948698909792386337408280691907576388948297731958091973706631652504725297009228090294137859871178341211177749913581924588634780659912658224948277605474209049065301527114372131496394128632226677759663295850874981303698054594213172302167126168914337529553820475728676644946550800308846727213894798765651265098504838256525295682792840724213503567304575349547420392117315943234887147702076467192646275498066817848013107223169208858913249351990243716852129457336947172888235806424540907793276758434269753782061261194872659399616332048186850238638384382581768350169346298758600396638912587550328034268591126800066612285652861237397728191781572098268826337892770871575985067066858524217956430662411905687133929760016489904702071385907671955713122472850543497942334257673938520981695691485598563129690076614235967991526086936621181275633024357353883541596119358665000430058878923805170207025399530988480476499335314383009448346490490181459939443465415842308506871614138555618704001946298914838153859468214695040883526584000873645545149429047534560261782304733800119394681313643727028712235386044470273922625282826887863433306410870879353854717623136973379968752464625931630387957745477802480840541337403174066081231653235508342557784193573243510861845317888021561175303590836585603153605096412085414851219703997006797811600306803681591999285720080235983128326559940631461248069959883176511996026969025847221511945242217337055000975808896025500988730193213634161719413140902453757975764355812694482049353165886706236933448576714726503626969442595762989684613135345905404523615937939771494751792111236615724282014983050519801771896416206624961608063910026857593605235133004551892365582589362913472137368012683483901295740336558265815498762607439277561384452805782487068073114996426009736946370102220368563446897145530571679412362609979236424516181962600546460445614393287030079215777622132427689587117197382043456617187884759921856331920578635593505413398190211469919281621641755749807180876151488936008104521274825216312801852170092080711200663681152484508198025229468861763997770428184713241724872284077557857516261393461712538126335661577833108994891212398917162436483097224275558808239067682827184763534306371165556429371892219164404375019313923958228130543043245271092255540936784077972803030984159487424175970623915350672408323441655797734705043810374920981012130793514443873863126815077684817917297097154228789730340784171565826291994996157513193829773405291123687735870045960732070827372795135783592172729769574086455118510019506069805405651489977253503883831420971154879393273540742781439714059259019991531135177778225060523503405148902677104039636619035037229646305654282508288428408647312061666792365732940884637566839576052267951341658529138046460126772741433265584162846385219761671729461760449761608298938281594779641813294176179802484455732697419233357978156737377204540973620263953270957340003914678702298007603884926203846124584133242837177472185107500450529483456754803944396297155413257474297844884879252282205526617123523540730284322514253602661629133034998303028201473644309341562126644920644740211144608307504094126134385373744033278265308340433938849301371108565203298287555770417315692484694143444246531090237369220803111931769806494269255928225470953976754557333431112586692029956118819517003305015494122607655226392835611953760661706999619649155318809165310385978121278051768868249744241773656651862004248539649402093369853601402077942027912219918637217247527289886433241849961918367242933746204692673248541008247952239213342206532153358078542859419512237355634229948698149786235328976240006795900215248411691533968130253402093684909550420623217744409773181695297259714219478108194681716125980973683861822566464426689283248457064411977831091265111804119842836248475447262953111316548434551746112702967711605404298901715203046763985055849099405975093754060069689773342352637603211777324701514054323101781847577030640935157524496958614885634865475098081479270230929079112586937609904373566564805565748086644569482857009537391991229571078282650881362596443654347078956428993260031244715428435118629526386005301402370892244742261574530949821496122616768434876702917825072480949042589296130369326207943597347995712099801155236152105398631866208378961549434037679660737791582363080013138129504084353379342387243085356618805675977056031554087598418948895991907373664649845635768411948865122916786274759005413694079415986761419011671590265796166775542587934238098508398999035857900704654625771353765060621875966749318242517907546485845879749547454936164428682832125878446508166586360514676008563136926891851025620700686844708129671552245185716174442394925703276706195040241661057412890778035281591677868220375686618213676843369187217686450775218811523631215403479924336577857951761278549462632652292068235022763722022753187917971440952629759507106146117599388335864335728731153975058090551914260358314114795906661183089632176825950457206962715508024242024877342159143305004375320859429904677651308890914914736200241402130256162885339741142777802970270013309916450105666670335293042314671916199330414246964850473158165006937249184853093288471340581691767123865128640600845061950191535374332730384900705446135660195257616139398880290959872555590878895530841725725488719395606139936598447247658873961256812360699552058130835847235265009007225202156556684651862275613038880934394726602747493674291838150993834997469936244453330039711474722710685435519719950371060611444871370358762729225475827319704174482641239517949748091198898229724738777113343720049126954957980830886826421080823317999795821995904125300450308010114585190059114821526034416431624714638467043463513550881884941751167445212196089720656714846382304879480366996940769574935836107744137555621824266028360470317908140370486780100771665895368943563664604328344063419905686357956985545669916696395029700749265760149588001590374543759671447217969973033837708470388091491463378727707961720527106962488623608812865923909222167676249778428569146687543544785739155154150041422872617392477943820793451546116968448765142688327101219872980898067484276398846354323170365723599613138294135069159471451192238222143403674001475289131827567888414893092399819036976232084316977700943343157964001144658737301730978597240020027921374857482843901775572459941302808786972626159945647397459995597926921143598753614379504206298849013913509885453473219016911065051411729400681791121403327392087555115256866460579844408829567980685104696455976373290953222983433471298535613552199028863585713745486057135519023423576177067498371437660705069202808239098741251606892965257526456240986775293288513915683221677080416712558480062787256411318109981062099680927986045781187106957071912391443639110804755898033440096603574203345176605332197622970453482107888322924427816631213404375934122696979328763717301989070333439774607029412134511696762767422380881274613600413072808611799396969442068150564420089669453910323276614127074157908695512257419167863565197234501747844338500525071634060041649272033430054777455725086785938524456254498515635724478309587499417805406507153993269730993582324104082687731825427054635177622436211026872821619663141247586676533621223398031080125477175302992333278962861761988281180797124538606504468096871389022466947377234252389630137766381684321276921827255116210220161852897166786759916023837533196868201583610760176013949239032663876074301489585447320768068764694901348075666581339132337617622155355435782557221406014501197401890670455475207993854263209478605918238051404130744973366062904545764254558683581427668476690395639976329335649042796024448391777926886911254635267713323499976717643711278534942920256962472324354676363754769756292942754185450981770315267858282533042829564611675016554926288799381452968693554622025786110556995008224233265373724957230587343621240168233884669972651509386717719349050184159360272906911847018618195605243483992353391144956204653763854061589392305133768581933866025795843295087347961241326666476402891655846051020754959275842373485005763443284995026316748897606113185547116192431601542918435304799979551084296397705269309205561814608307057523800087172727927274538746167985819104124470353303550181361352914844941409812465615131355830277534699118416658511234479531756363225504052009915561019556730263660719650892116226482495774403221158834454871444264917345857611606000475780539283697842203032877385285679064888294786076820257234970090570448380967678528713787756546527335570714165807268942442181648013993786681071158733839649493549295681772496661611837470334600287996664686855907159047098541775728817491932288916293981020796549085641704196773860709365595077319183563979248465951625292660381605327572546584708191439677130346761455842573052504520861180291880666952880875188957831367349185324132633756346127247793248677150626944474475937641542309799443054516188078803089398833285142085067360401808253702952154265790346575176656787709231031671461278743443146839727292139155370601591657333888838622230977610602615028513159652055012790862463823586661615750035267494917483420369104832572038254650021109243847966294885589304861550605231183484830658086087847460340106207479195485266089893642766531816521545736694902420147399397796358007484580554667770225741269562565522155622112628757333835037001537738453737652392054712136482291991020990179893299537138176312736074731314559496488124525319726155532929629519725926504262264994223531396346877385111693300587083768933461571903062658902695421098760075392700449532550630831885873053610036694837769761318378343655880056413321055411654193857324707458124294170081117682830855475891330149530100430076992883023717298218199332858985773118778828704210700170129833442093699280286155172836575810311143529387120598678387868996212171595696045275523844845120396251963886900159410052452472628040152897844123586450129489193044571076787237998529545221545636696258136667543841072597389107435363978431668645402919454592529709501607218760193177976586432737246140222455498050787350883402230681622674409256994991452585975536542597206029934792099532634295255181711413622243464898805903685437465597062559071607559336328535044754419322043131628956216691091341821189666184138644797525428454698848143552694435829569043267027559385755854036455627961987337055567840039219090447517647231919953975934039131128711751711163812345398238560916778711481106618468147963331755522359989762149075025367889222422511232187205384152869302479766282915273214684108098253694598117865613737095692929132253490147768244744369880415079534161661743639579039448382499281500606960260113860800299647382414231054131076604850242271336728160329991277397055134594525655361016826537160081880738068499609382772945265060216744289416334778719400899576998091481374177228978220414950623044993807273261162086793871781994190126500729740136050558918858296657963089943089142670784296833681776314319947267197468671681833573639432251524589783007253621280528654278307265756798293619719214935572329202741383332814916262357253195144594462133315675618116570333072818120640662344425300221498056890762586663427154878616369505391186586618075237013546545240662449869795672025440809623702140305983100380005916974044156663257884873190649301271800838806350105953478222441288309387308807304145501683850231396521744359613066563659909741901453488737470119684684124317945901967901281373771215691665256642426296351828608723815971724745952408968242817085891090983754407298823001866654904371249394356673615339624016921732627162497159071953625824742285667861298281384738732862170144053047639032716771895244793843358485346569640295052052254148127060292436479771954005451369956933675017989108883201308658038535530359200761053838790473730831116486240307047403340494876738451846070005399176235901530416449473319865650530955824909727038766258580802947135898097004671083299444401229068602169906422461262785324141067529573066177080211483300722650909981729135668900308870153363102298041727682616144352384740728127287304680458414441751027126605822790143101273520782317214804633698047388858370794245811105702958302366408233949530348405472340903348288002410086771918543565630915842453968609562081928335391746806166346392436619694112993933514925656521593778529308745538321475335379795309139589121174917451772681712988057932559675411787451694321482172333880154968412768955636377291596926003880694418102604476442410444257059863225973202117499239032652548255328452090541817281700966850558777937354371542355616921632038160313694850532682771252769752425935832807791692904484296661600238626633354284520441737674530256284037060208605748636302972037513960950470447649649592483270686992292070116914752353728970262903357509915326978344539559804254629411195672557273197175996904064290480493946539503172016374033060809819930144613869483739894147907373072425843973015843936501551160631225168894836278421482237425685128210163921187063813715950168357977977701884321334197891074840100197648114079051997673196019242506174082749856022773343767558400899856337323050974104281479698174042700916787121274227217134776217297051628453082888321349417797298587639863944134735272168055153171293221507577952892322859276021884265329688131105425292862685731442566638299143558216032819684225188586545766697800848460814348321090269243955807219083768621680869112375609149993064914381079860589969014274906576250654833738026196000682561916672421752076733676689020066862444851018455233232156382107778229511446952859118589361841173298071984232668012601006163826237199261689743236261192623012441125001316629088699798911147084697953902363692598254943790208036431226957966253603001032599782875179955123629109818413128763951559503560596342442082082458045482877864090298073842344289296729942787945036248266763710511350123859385688082326582909820146404103181190762120312440198133246167624915675097185258369951982586346073628283624014506169871824413724580581283375870416453591672242913048875506914432541562869376996374086212085025097770536946263230159417404425551941434986465527900921954618216738038826066596013845655296686047869526943475013800202027076008917647119256652884687467703734465220060515638672870521644799485797059307226379828111158299631687938318027989864724560863422265634524096870937381478030985173314832816313829565687696462879781498480043461874438032360432261592267510394068146913103832739308997326442064954871964843438662911995382435960734530905749599624254921716783619095542423151203784972391498595314663381134871097495054094209624898026319491386117687256084514186494836249744375757683342931165252959971407510522388021050641978917091617387014739986688086272399243315630927533650138509340158119714944730158654286030377734277636342311204121353631221783663259875469619623738281287427650763389415618273623384749063705621341677034567685090245715294527401454600734384887650725096004215701856999900611649125894805769553364061435397354156171038987185359607354349009370158313305932755458408255749343344928845329688195032621493102528091067565296081432792278856925159023400068475874817318524741260415414131083322258856200166448854303708113942100084447924752206042444330072984791616339571294477925612600807484991562225904889655017153360915548636295370213392819632943089775613374929462772501263629982888641273110297020309277680336838195417006831785361560906294246580843182704708327513246173574245833229159200951536269869573544043629352746905734648134503502971448821321778296128049506340633889040391896545484630572096410116626238501698929020094484227524743517177308642077122127698615755861471229084918049531473750984051129738066628259868457153408426385346461177688491857230026410468789860436514380058921139687968045483716574717137709125210488338774513322792200760772854771088710722485763895545883629425609691852115458299182603211618436019514125102069184614280303403223497461290562823766597414402067232872111765230090916289266064182295362523221497784208339870293270273721773907335971517019346082285986526902978505151985467735208595232621536111320156600237668313688992142595962311866873282260330807164051253424114339258602715431703122649809687075269034957064624146721016716651083793307010975970826749746497653354000681331396006434182261273122167344408360774952584416254814740457731124883053758431524711860795944965875589828421031307285435927818044624546237432236219407825237458867480223757685975506871668569845299269362917222862313789880037946604064598596245815042569464846146304411457423431011844204199722267247524479888942083150250636199131021664362631852710007601241582717859519393293306991988024361798963698670357540350175893872181000426370334279566131855183603997912084592991638355655635141227963238239082716417775088733303204182572734887477858551657136402916341224424687830538368197622185346531816971363015093372001203553129859094902135781650127210081658738164094486836364219177004398203519119669555793097044441100595201830932625150496362577109245610733775474004826048372430602461727554011573635699523000901338293019842999795658208423793897381721790065426906105973519112378351192250875879235333821865369322542142849063453079910864496143539221769008992228919419655672040852657347336640039116308551666457147227797056530099821170628029814955959180230441240002111510212122265452548265475046059852683633429349924423553229916171201488196957296942504670167601643299534499539712252550482533357437861653935722786027426741086672155780561331729970738640360057118881463861726296248577852679777550988815239065457622591145518615587134632099308558822042944426234296784202401554244997972296861358812142894221871041748730513902059694225714517691044075662440447834811942149422404555741635611781807074577700591801577467350035740679601263455170222032491354295121652161249603562193659454917438408597327077567097959828548044265513001025836176981947719979539563453778331930006814982184363493081942830532726340462630829121601754787304350112872794249570996067360718452379232364780336661528408549836061115345912260945151383403703185085200308451288961456513369811419799916908936907948425295197675354327495798138296162008159156663023894824562481232902223118940061287129587578843521496102633449218575489874894210564386711701195654292103421677536521965523750556982712382060434718634899094975979302571685990893573839453268287014657855117078788340316783999451317383691513823442095092355489510534562479497210063077263469730907469709671088883343651442746776239043931880405801377788877000245726626138118228303580782826322880606831083670218211040485780379064748926241856419148240306890817554578938449118201727308981989246808404353188007073786309487318579469864503909017821380179546875411459380479972270260925840397843555516494241716796144293495118388506600891492317841341337875541684257223242340345134795959551292512438759209396345042330899718283595257551278957546658328343123031461379210770121247120675662870160147382471603421161268932421787254425697131983183828143698659789697171418884148194490211500056499204138827278659198351707323794747904747570217295769279794264319233455673704336655186021999300125780235845476810033700266234023208339821509159281336594446933526650985457105425533576030648763935377578694722021821976974713705402164255550784513692451346949779944795975010676671529045078874861866386854989915577364950765508121296853698450123755213237992072791245399693621278052730346887563426940420506648063422104847654185073333974213198038001334125595732091570139546139995827742799763103962917347121762248398308065319819107519967765451937791578741881525056944567992699003225630725907874111886106060809614204985644595911712128876029422800802121148900974482590965522590889592014607394208862878200540163651926985357508819037381666412049139150109102831667313857343456953196518879784089181272279172646026215999479297379281081495302888287221270019269701339500517009483097295106556682919178073579265629885400038907997912221975954132825897991267516677776410859177390237370388955185608551471433188735125719817088524374843105885698113442508208303331171055356837925063032427751412747085187207862291068996211814717771222066515473935260751195730967691907154153351186430509589096400821238779291060476967664336213495464527081387006191727354339696031805873175037633048372851773909231450305506954394510305484521400504258157166269279670588148630453462289289723431372975110749097548530908455109616404691399778071904539134472086174330330789059882805105292433794561947328923926843612356490094039899327494816107579648951967408394882031976824364481592908511674811752045739159175292675245369157937996293809794130275875551192897737874733803176828044992337951478836747887607129408533678643496578094386281091940631375013885033650829543253187897889559947024499274765486943098334573630337678263208866780999274356917355947726043732026458364225056665757480280975590657053680287437239845582655118922708370009644562566562299020643829766633653616771616220587025959129148934270180206535513087104547745777350576294498298467047654292913276585888529858894122143318424385982466001711779541108035634023903878937732778949656248414760212561197396604471759468871406577365146395652793949368350623675670216518192046087244924534072273456172226120671472184263310503171140676516310867391810872311500389222926309988804251626634054546957968501988457596054744321350792415963098245431376731681753095832593141091281057705347624091258248810433269722445916423378232345297939425422117390237879198706462805814724395233639265867129435040846397619107418047400356049687304330288046688173666648936705696042322013295989172886363567222923804938251237551289052886990616478817585390383141762468075982631553620382619287408088952606481933074478536372730137269345876993131228401826761296232528475079437475152043890733277911896577599465489758085173139815120694166901875543823238040462269215745467495492062582549846321863665686193559922493469469677835441242919381940381174533260543661202678478011798531250923165382827588371132860145464311324577735820754320052813636757749490058666212077140869683479216541526444163969248520222994052831705539857701274449251439746645887966542453279970921412012622755133792612715606734592439163370950036954290685453590812772039165537856531124217878021211329577156330211099636383263516774634874530975642894435888213801745874006255776087056695666522846012926294012289590278013711521677550572483500263779914469794838864210644733616273447628194122779588135865750011659092499477976576652412211307825213748599090964292668827270875691073871496314102591368576499168036792530358062089173271768287207692835557598857704460257205316514189961729287776096634664886590435984029242503662288510613251983537838326032048441315583211420673437026523680402085930922324707961428098668369658974577837703079693423030027339052031171004990428481734568487490275081588110360542595376568623313403852438509748822975721487282392222610568317343227181969579192294556290440515275545608406896826287870159100653448668099638698945451845480938023679444130174745281331917779555190410594832313409198649289777277623411300320665772740364780409066548608672019887710730930457174718690185370508689216842318892619607630893317439080084304335772731270435334910736176096335712925610430185186988090844199131203355397516334412618727578801202414520263810440794738085381320446344814781715089074252526438447521928201517634269669649624020842874100555306720386155885482260656895076091692509248327769573453747872234673669448668167493353815115829074052713002609187615779789211899959993227935522645203365561537563579519166892860287579630394609629801513682214381955675755792731767724867068320997126372410934950214375200634145860431894858562161385814773629611164814421570849904720353373523456465133190746885850658395139158846021082183832871101265097573572583583289647850950418062798622491893255286709190058291816425288021558830148929418960980322303371456354787832338981981579992265903538270623810437139046431506987145928024994356875441106682671934004111214868038911900645215348600217748462647551255050630813890830449355329803939918346452099348033755720455558188291136051544031397288519755679275431723462573287945837328326557230076040089375890707736195412354074398194082006466897239125191014175625556528989646391004718639879075292571805453610004734833776077972125578271186311965330641184809925019301449672795303850290841580854750428121522078044180302626777815472482545950462803487255760110402533005862089442449663869293820017730943507734140726289913309846685374810100333631461538469641765902223862766309235144987678374862762521098046716510211676256658247051212287286524348060080477865314878460824309661229345391344902776881584329932295114448549270819922687482804498921839647686030635015443722798166923518344049395410346502248552108561345116418672712510393595419902208476191646601264907706169927397322051331686761265878688900610948521852950563606226126240066882627987492185191836596538699378195302104355816566607239536138113685942780002573211767793941087768022165187763465520613875187547445454237041294943933599034656642270435839875452547575912170749477026080231881970963527435236666495994643019953147579331313980867934566585263980266036455585111789463915017128590956295923520197210059385274508886183165136907478631527197330860897878802072845768893168117003265386451893627560670519440005631949022222092631542050973708731199191631667434820339824029994370297748906250586686640171138872271919413933630332501650663109975199423266916589139161668008767011742536306352399696673610088931214755647826250271708750623197419840966760777437989726737662231975312527970785029401857617904760806468373786141436644997387692768846482178266921193298610611438336046127611833204556350988136049233953308559996585484084285657531616586281702194909031245536656261322281363681177159130759811725975232779951484260622873062368187824339660734724355794490464357909354431970334055417235742488739841695823325798040999038465020832304113275742900109208455509388471888919180097328006358685116986287910509528803832627848572023496115716855014975681600263742563412287865546612012714916854938505104079151671589844661967662721324231358689601598719823427441492896519708416561717988599198805858086710126552030807199359057958182374747615457317723496180650992485277405613350574613214045630115709301501971355490018703988976761484765234882433057897794615445464779672503056995810006616068808961523622137583456769319576523410545117416856351903078224900983569231304845895613777641636307507341746110533100931739293319399627222172392225591440622319486848961824524598733234664884670539874060344315323288271604333155331179779983574147888854421784453719959691881206048889261291848341837902480737772713185122407577752760371249969533157046042951502571546893102663479261274821503892524604136950078971709858389273031884487319430631820705909646649029360035523827207720657586225940305429620451147452484282581814285862840155848684887957931883077780898014160100891938109692092275762413227734552741319517021632906807779867529686976930386956081859143921885247597890187478417219667833921737693692075009154118316997041821539943285670198372109459489521450568096257515817661788891422954282713692868009072156379319109755018134290976825609728450556931799161130243881447335221375393708230711763438985285346520748837878829871119456799300180813968015035954662354421724287370716715248693054968445233442284039310315844367127130060975016260225165899998247035308666757518180942897193642048889568952871981641654244289181087005429100977785256763417977399532552094409489465536334457315795459166238523805871318276364574282827667878919770453030390608096112717710159772954270900033637049078228274123648268483394588178854864427028240972727754215044632105159899347280791518296322464623261702432791884630044565621291157085989117908627008889121045611369203576213894874638724591392760000310551513702143231178466992394827746849899524818858331346824659914127129759604342085270470270700121334481473982272737693587463704838605759125407465613081381917057017205209842045607496457519145775541533232817204480791768516954452153244425902414169917593533578454117197831670884573478462620676213754652569376899031222742262704626367179104912825091202425402329558810269817998100713545353279378144625158323318811528525799918539039955034479510331097979913074340390626427619458878319092667726395112741185605726881027825663695242915445752433103589994685078147544812459401040634475745153409306282966685888208109342200264930831704096532174633141760170507583582610765862009776366347298310063740882210488045406182986231967496945183309923451849483916867351589304274569405723556065686593038212622170279308857581798263720502629135347981876054219249348900386579837588717861638100502660237330196463004502104733452429022143699918357342971333974004373279728537429888381033325210985642452383061072200337837943445059577321457696687046558201202148467713329566601358332763266180910029653605669716807091680022241127959518887774142252398080640086259243007085485645145186651968893743347298070783378142355237935473334891538660990550412154404654451756899026692940152006328264828043247468331070223658718848769244560397071681889229722163152850813440280229234917819699724548198117837965740552130430832962949543203032202388956547032256848976594110051008811231326517257395658178772228324070223973646976679982118808256321316564803079025078271266120075182381170390228126721125520217834268976873709845400144511920012449223467368894935038986265501889720557105476889301191428580117873348240299601423916709785450872248647009572360639894975503350570442015821804387458521089132176998456990554828806258118618111390375841862804112608188074364760903259960972523398838783788982154850729355935851354090697310360392184140700736755399242711663419560385540222269593499240614591475091570654573233293938398544941816198640386183018788162584669690748446940196987091914867544285522974925405844193314709187148619285214150454436235503374269275042699079573526368352025709282416098994706849157518584093517823366126621770583112324675430616686876559893132351800881932172616685065904889056216800437221764838993847422601294855039684722839118794209336402285002812392075984287614180224098223882142802639167718718765690417448932014088717127404959276148748943934598089220987559971816374978261074141376797685879070380695427835573989019226265295005313442780329901250008794514488580819462493522353960378652691901809174308322062621876571689969961000870975396620676301378603567952209102406307451566453856978373531273701217729403287269887186897010729734785492345560677507525174152626219692884786533950549415653575704010554749956023950787260737281439825882259052560580122193681798704265932221659337103470617550509233728592137589905570633167298848740968712280882787986984816274207803632879585273298272034380638578097756688533222844744238286537814823716231939720211069862229313456478882085848508721115954323594892731178827238621939185343936226756138305461058383605352244817243116662497899795035781507642452795715738445285678543283804780720883570942128680747679335461461149763237144393288989728842173727815766056844756837960441553873530356549231745095312222461451487796531737456121978488566156168058991256878991795299875365446435135395901312906934021178886125722085450422145720885640526419242748445851026961710608817134749525056599121175498560639463711177510920240212468850582915608991653336391424175860948877097279685931101388306842467726283615727778887376574819341827162485485538529198934545448766519812924996746332697856774926804034328950757999445674539484732160765307783350473879953184872298552702779482596751675208554411393668093818866383713686427158627170944708477526222531609048987139870702120702997729844807082241523381343728458129513149379958962286836727741754626154739820347658319574903128709161196628069532604191360941092841520537837874721933834583441933561198719920501036479731478552397047029190245535541404398477865894947830060443878652874761572570024194535739089960580122923593011238749716930781360493307986844478372302604420318708273876723674423016037889067031919449444719098548071853120936653992913073324694954215599698248446745631617711753900757821445793305375375491302561338178591985959220064098357696567472857121896783687507084767223701462280720242309547187146855830962097113137201089569013436029236154810261439698146767825621254398879332261991684031086655872110837132656443380342399255204127765669940832324138322901632210700284013378062447513876570667444764161824494174326799604989509873831881321354858461858160899220760992085322638073688846299111687068786297164705281143852838774435331623449543981210899097268745998012363002943569118749389399074616013033586399126778719946734480238349696551655824305834792198285114480998567313483703394830580386672280063167745027242148119803532387667020810806146476891187488421709687621722104159285118934030972704923222053420629828677467297889319327827098312932403644872706155852689089641679303493795330486618651838882694957203129800050215047984239785173916930531321937267357749170928236957905190790953710264219715346412263975405782063304441060815548307044466845612307397626510503611105113826583245923398902881704702846637906171192080195841950878775571221891890160260742682174923351541618769084916871589835029128663197179096409431654300212016680871502595019230668009558696608724974636586773395320545160311589420559929743213767943266582913325567074035292981719638280459342039182901137764611365213510564593560216043509279537089333052553227558722391069703104156843341022178212497582695935637832278391203742989235473149972192677527542737337653929743136077257734633743522805290763767184523999071139291078640974700198526323456771240134166666819498186927971472776916703937369712739336125966075985258084185006040786879545951379715152903329438322697843268038745486337196196266905929876511980958294954681641313534508895584506887139051211105429804500040370631399553835556309708033993419625940786398258964417626864512564704614330120415709620421658047922290362612948650110620403344198192101716656602696848392659495419342331950387682312342903630822980350497160959969879357211497090621909858815907289037820601868953738204927771691571371414253245835008625152429268515063013215632187828576253075710281585273103141830496827175698846173987281515388057190100910694295254010081463692119514283177699173450491623151626827426936022696150710743853207353120088466568971245604961004985104764860371482324606447335619251762809737482348297926591704713039055025220182979377659155962657520572893209066611365916289860274113019929244471580862321509338796268042248798622045541284996731926400745945769726855524318037467758067477379405160252770390301379265936034385313843198172586473620286231036553286880612456551834729371926493127948625015983734787489257054150405787198054548257105372013502391421747265656712878819520527231641207886325790417606220336374722260462993837227813699483372411170817807271219355615585148278638828171187463828347136379199451999728677356172622503400307153018965407714686334983055950681569676359151490097328101046080962721745601399266769349856493312266745172588448344576736888727047392755529836626996392136387440282321759345219910126861408459331353830090832628032097452059397041270251613644426345244570395898433556890879453799870614419979375345559437224911503167151173755912574469379702306078951575057346899657130863803081310435826526382293829690258707225623502468183924562918181208997577984100240890970354134857831747935140792842364752023561556364222377887190644190884889004983210037077774797033362700359738194842135240768344923793699174648339191820027229373273091050466117893330727120567470569977361128508825818336624309434714856664363967418922199049660823349045000823047889783752944267995753538043974143761825857949583822947574155830726845885876235655454509458585706742307623557458284261102944346726260974069883197975466311780680073662151600798909848760134203827750000556318821320507107268625137437269447956070645127940118821377457332921571877825283465808794442852181090077912605199559506051380662757760715307614167089958030735556481262076523615875019747843191633901144686374331814409805212284134712279067982397144567189429080734280852357483177045014689511413401007682533135182312449087681014719615169722696614048056790921005541285900800041399499618829748949247391835500762100337743708906330674521244185456183938697576232968977671607559789289168918056661165150611653873139519545755269193553790599415696471470656681849663353691734511111452329627089197628342302371394241087200260499069563441483961183588581929048578156212341240407723230409888468835177033069276598479132831334361649929792387608163058519806814111570517410733278403965472765866956768864451872118091337348183842634308589488588727654568238168947150057253368892339700247105150400799771100039062008397403202639478514837549352512689888650497083784241384274091977246603225904140684224404922401048945746277286098071271052889288891500742063500104328592122934244778268021284571163959058881717269031307210678230384244781014040550716151314985751761497419924144839969957437719885753497521244631219995606637086932264390858346827953916347548467361241784094813318036941282742446363853324060373637711669732280468080635389931788516079505309427306140716648938199828940889531588791588542084423118338201769089744464736829266761257505605721861656449671789171042615450318439501986999585296905981455320849130289158622156909758607577602308102828445149495686574896967160128770033002841675243760303729056116921639630961362420444989477445421849158664621642279710841358224246957342396492040528649730330692642920603414513549700846453262543904663926268102838945676061689841077616807439082095485069929204167428724762854347680250026144139937905706343032703752959342062103130580191536841569418217929391695656961730134795746651013814710073243013303860735108506965569101933154652081444350404549334951349508556266601543428708386899080090198713652291567772371562572685029355612224226187952176952537056104665285256240060440659269080573918354429800616310410528315175771121893305967868748983706358378928255578674555523207495293192242534092663866614698187324208797383627997430746139837538049052617235919007626178775405533711812803059041470175117332144562106791849340543941309549434634148216979820096793145213581282954130775897177394557384206729871619632651791403521664621891595706137088190308701413073947410857961485636135509850305877997735630551520581583536246754810239287762739431324625692313611606670323180232948451680461813650600957534972120774747603984946910273330939457190986642041256184246702859864484702194425484263299148024075715321570343444891267793626015714222867746335705269711783443619657234373031585558791407608057231370456369625344476666397158383492774867649425936321158574809775125696027894723721286078454201609118816814406937217974904256702788330028843100830128586861110478408628836675614988547487985692459146433546987117790945356549946176246764343484181665288526758273323638216789674039887955655702767312067222061635481777975207422438640916272084195895512398833666938744770351118900997585304429321502316898711311446623942774411043267794448376809674598919181448893974058638861651240981629358027744326659742997539066310897963976681373670131740669318273689024141067906445011324582980127010373518106744716914116910568141515360678666582099138412462867820642297082263026058762134579219183069836577905478163243831921152426107196938318432664386303815081023074690111131376403664876623498236478534285390419463136049184151250899924205530811608089588220092163329447394811304517601919267783644945777461826187913141737011476214987783868247901031182878278231026104560378586310742808553204061540753893937445234781289436603586294771810967441518148385715744271871142528426467245616629406958531059530858095247765211291425857690558031553255383010813480177635197211260751118862356868936075426091999134060939471454057049020000628149516010982801263498628493490090134517357810113799450276360909646304415344962073619931390888024758525360532177214409155263197171476057322165085968029117580503514895729186700516339369398793448194625104196774346560366082724663288896608749076881651201127728130402540844730682433495925698226484846091244857184749765130755566966587116902101998858474485701730477183990569341236685895988133073009879993816873731424746597405461644049140639609330186703873260776935042888663596958617588028872773551388006471958768786813274270936554834363081273881413557947077366005631056731099349217886729310368858027715729349985994234079921989994615633876961308424335554298640483080970441993276727412979118359579269414526641168971471469865123521844825100886118086431191056798541751359296683817714103062130602913492882669632667906514958121778344914534583209542767407197337163490226118803916842159875500268267016720213746446458236084436871304065056092964957910174808616620661132997137838547086046373582395710333766931214777939048416304266591074327513886575460765520476737183845205565973868875819098433052470121162549990801052574018745695398692652362950379473491957250907917580803374883369608708897199627376509954469523976187864744998924838547577593570585056940687121547525128706532380793124090567789916979380118184907733628483697414313714966193923493110647952080320949197849922248851602977096383194411920916460967934361437966152911879922935353181716022426034714699958278297151710287236879513134097688426251401927149345373687449948562394233550083958403716414904228704685951243187827089199054773691924454617736557749622159771340592846771275272178776805265988751116382796901993427027774551574430677587457515893341194022609415992756274076934036816095380151983439914727706043877804310677629659834203160983045566551679098894970493985371745938628658336734134644323367203545390775116772213599767123101814358451077419996489055454836585674446153020670875527887045806769913943532755823395879753509869060585112455012192184546994269797984266952139925114727443923459123090990112856866898302764264909604358424764728474350113680439697034074892880549374788116860066867042148555701465444154848386052381807016955196204791753760156202791487279987107578719241445268482971370310731212869359893046947044851621157333478344660423427477512830853795135891124770903319318796837751603741144310801096435980664333947996511521504752897901586606089151061048318943213946108372886936434501619180953180879986075947401130777407622656217574047320855399794904420739799626109942982277238821514475202286316687277292331221769761109361552802624319070525505764443098715218405987659860442024536378689622089326772390002331397604869295383543300620071417451553974284931947501351759539865283685430670905253191328368279070592529747049061686854682552875794833323822399060134096388206327223646187895782267862317991887000699055443420957850000951454179919557681825379829449426567493406561202855985002931024819181420210965625944386650540919702933380619607516056623187781973068136642016137564028258660696307762202551337006825393436292090284130408873407853936462462059157854388509975805007417314401563750356097151324053694182497941098619090688285169124320454028151501374209555867642596370892638229196091577235270620412910263323351319099172328216959618106087492192956461788859979004677371901512334241648638649008043945978503524524020478080464041971416542244658960843872858854339170464994579100618083233353417742891215320010596354008946041061952703869008129823505752658997458168629269249673088131599721276472381078446516624836715811008661537364575876739149770008179964944232599280912288363141583970854787871051715834769691826695229467135826089966635538965435630366390286663913685445783020726127033945972414023454053929244804593541015486900034386173519169472225679182066297004946657168237494461511653218934358199138765654549393504641649148884524198929236082249041218909703298432451398052098013703844303508556792982989625383817137060790943959100911864278514833583711897044480060402676359012128698614765779732689873910799467037597685091865623629396538442476587162953134625715538269296078302003694696485035056232289480027221555890105208111046249848811352985732494593277067170294835035575122680617447452809087706387166520750538378374690753434736133534760758640769527810633566883949047089261655945232760959694754154620569772373526804319840390065093816377227629259817173163470940345479898029259647942744344884267255018892981042766115773056144469418047467904152776047813126547699697022846113255268159562516639544032092439900346376566716273429047067236761396585168207694860765695299242600396612305487006963005896508102259072428578870114859845555534460776367129150391228659283005661719072756716528512507177935352972059400859628281063421131176840412780744863750491258694727676000937132208568488240321968194157210642205314067019599836434370166346916219567829424072004791874061551899752010121527496304560834085644420502524535924504381664340844136427562548559855052954601967476345832999635416077651694555553013787667419851845529880183668491482796924516912303178580332872312005016002924394393028646953216886821875057238656253587093211881662490485335785394121427028187786462439293260849033806182216705024597765185977201451997878947223441755641345681061420462403765225713776301896476416786632998878591874779089650277338087575797304010431872971006517994344769530133385560009021448006460795770012526073240268794903968146739876327027711749782261970945192454600736806534378860946286366786033548724173731373349720094832553864929759827367028982587836104666691135306899095287720511820014684292239714809047410018193927422214574866365091929222451940122775850338749160082992839410353498265356241224289649074198905809299679657305206610478013617004847070813265786935060037101515190513172905919215134582728819493286237380202188450917805024596993356482324141268507166529659414047597528263687923188863617588195257702564934438035864560352213455398114917901270087535629201135474294954316509951304720579396445973802209959314432879911963877826541844492342618531896422611243577790290170029295993698828261848994964622943883267257518945832496860944059120295971096563950218424724150581938863438138274697461302152086153489902963332983652033093073532726824249050336864800322756663298649622720495216521939543960005948140216667355450679552828003353083322583558814428705884437297468507088750697154200152342345364157930811191488236010748681771716978915412501256333362485335506864197158891531371556043856337870173253082982241950249596511538227492639207960046173514389796934354851318680829484797557153538640852518786911841868999627566732317879643701924756439771355963184737971207410715205168446631398822030391758741662957522693660048412357044121489925869176560008754254280319641877473046390074112836444228196786713497595397212382295943293859658294434039151110561936497942284038660479667612693535773080437505375198149857679720431140871704112937394137558911437484019549104848257220156067496651274212878250888459549162928065152714763599101168169114614387253817454616539153171857279123486780803949430412417636722626258165680549970354793293400826236819352597779946113524969198334952123111022623509975407819330882509031418749690052882276370885028332549412657008577372007615988152064678488240588463040014841445947353855196906365345787773907742795711835772815679993252133961157632205759693029588838926927397726742747863476632572714793369267922094513058444776387914657403079907301926480178017260554984706027406455856559723762582420690574037531706776917195993885139044480070744941290149105516561920519339258933111894976286597901124711494480049791075332455558370932684687817567190789107916772393414322380365618874570816406243163621720408314699661323078149565380354485176864044789336684104376079863116140975722242011184081260933085147667377088053544858479933541522977164758689390729837495350957636380812966110319350066731619132281246097148672897262918498193074608221362856319300706044435578543762032638398995152385477358642565023560287976887754608248297337098655525534392493870787215837493964793429550716461096846612227683075160209177994056643554333579329224518081712773083531119215825791660567601975709764078896759730064951526080460044437875359662749514802920209295078787494977725981178270250334395569156031477459860428111902998381117824909107746709611951702932163872208641997588473133291190121595399373188122877837103234573844731377250180565092705522360145517585828792787310902854830197052753537125221536782190626027024749873346601508977371904327128281063962181722333218859842995966276457090615562159681489047094381205909409597112814176537720434185279300753660627794805448047695167669496639529799200807998625139435344835610690618560275380216862819657039928656168191435719580149831251471947034698252341034333350298246748036756338644062728033028202844471350659843330667162029365947418162668264294357408891257891355707857987729772980341971650903673853774236265282111047445426790773997401311360673001622872066966972241649529403722610291233271354995937554596854438166335476548768614970558154878227405722135586781193910136922882442704306970125993442936252372350019346000886080509045452708511503324572533307296994311748762190963134956888062633724740846479969060389755345427334545575882655145840897286345965062959363521003135902323457227469821765950218220165701216647245641368193708149617360741062853919140480240557680226748954449532692746936799468321489416325381223268746778287919445364876640294653549783720074507243919939240432580448809251915240276774750020781839155342963057691926340936031099598229161821201441047903298249547994433153565686717261295517756311167297044288914597271304814631689616870924178510305897917273338681907026216610781942420424869083597228326529377871651985784327020991284266208414556617944853246746816677877917110564236574643070203647050665089733227037299976521394326361108690976540438292958115369200244664675385795262250603221206989353091480051296576192820723698819602932290121937846106765844502307689050518111714736559908249717833892589983184980752525165301751399299305862007585637501670242405387881193372107709488776548044630179795067946403879797665882273644451475706451859337822403276772552234269726999520264142137027288072064390503383176870622358538114873995040782494839979862306767573177384388891351591373039219480088022404709413915384105854685462702562670846691582307747588685526033269887180339681828503904976849767637137970282850426543099556821019651078621908737141644355463134071793056519906188851161489287896914145328508247905744719390333832855447117409994512706437259329422046062733575028456079495834040709484272594578855706667225543200513541967478232846608429530126861840401280578402301570839321474381002354034429291648553758120096213769499631409080231020045633590231284807944941101569104288020861663227201256286995380189170426622560687758670410756975924464252066820979778804585901841459817879837109098315806824165191240217593201548638022091504031642783460766441582569284881713721304017519587978682014668296071626349850481385960453674865383674726300156094650855387954905721804161205221274926204786450235479729597371316676234808988656969731999355778891997378870048134404006420520875224424758232652577731482423530696339043817292480020800902003989209968821498025335636616553144816922007866880677688061495245162902912069432813971952044410383212018478187060848744948409591290499122624903065584349849609679381078161563470725246739308411595633218948422686188588261109773585305151611720838316480243062458061313989029170360632499314958488989741588748597041223038630585467280345611387495299596821622196556810127326411701656004946156012101611575745837460953661074209523956786968575786410142770317460626775813506073625995618278411722536809083678504536654456135126400623382658999381751066802159379148064261661465080458115875980301407234878814772749048132372201431272269559519289659196870450335955898589649378590317977260537336272763904539087590763976764157125368842586386551216186148611222784498404556203267348752388315585673498775777674724825024429321902677936246663233288298567651324229633438149044112334351137325360222352994954024839678367157800827789624260547810604443952366081976345315560692960685853859786420863023231787249329917652490324647533558777683632441221962558287272255472826332132012239121687748271125123493349831247627393601530461121834809968792931372095593755887146446215394733394358476695610088863592823664466770012745996292271443722491254829216020772611734870885662848988470847851562215510654775303842944980389553471890585802089728882165675812716468480477754323024841631796812370806028188559302896344197877968756577470216901511857816819125885716050622037795212654862793637837435877193104335264047657555830422916999286138849752529374823417211390953142717640286656727370584044674614141460841857911352535682292134509463903638129489703771532669150855471895540863887784509538390079482196655373313615050492978974178940031424663078599091031369879158763032349682172501739306952551985531890588954441163005134646243161913018101136904411443043628627193070490178667110259260491316662131031131631731212862803341576720575158178475289329200187387315195019819170346814579222395215847091070326722517651570282651413012314110168577380790408872174176079521778815603773356551121493297263490905272175659390372064696528723217859412022322283784149628912725621606026335808425354522998419233908621902965974582096256905873098056004363114474982475192137514505108044327296474253528370583441695936025219184186039438788010090996575434206264642987967562690763119567169271029141932616107315438333637107266954551146121785636522656281536973831024050393278083317585468900817926684056361316651332042920390486996827635366609329432220523551437405779604985347720060440562266356943432137801075682851063797270733257597623407166990370305005676268139621441842440726383390180014556182411371251131882867361619818666495338859865198429275980745806850187372970841420457966330498085078623760755951389021586025354453875602615344801653062155426010866651144200035133886388834146654577921175451132039456843153074520498471543716770602574047017111761191054776491878102174360825905933953845237848395402051310987772346706965101397741478717173870701616679335631915603377667557419111782138025638639257278061863599875844706690002389418388279307892388854788189378023501444407829467122940823564902190641674972416590494947275342843929107505424030218199422011389307449383006804957712154440252899905297435321655971518905165771670040381920557988480706566200167448583143192081497872055072765078697973869567435005952417724669127018404393983063233393982707085042006787647158411892203461802577568865683520245099075726627617717411976930419238856420018069564139562580150753945861994324621536832853883015896032393064646969182702819207138860894559855673797989673782850835577483007438707678074520571820862421202184615928200737725401812194700938451359700114485493622020162236786563703565407916780836548782878237308009980187794034862002171452504149340785980795916160046695665719476819798905965316602311663331473253210933064727288624372652919830671437414561944041737031832431398511043910957311835766960547145749188007478910894769514265942202282881968267253520930322088559860821642552692988562598788420363350633136834561217130552925692554592371275319519561398851681552824413614172073888072521171411354548845727286775033475206984382473632092454116701408786089423400724255816272044247044183910482824232498563117207076271232803024601392229868385844072633845679508798985499865727250327051913746442544069405475913422990688184227281133815542603878714918674142854565183775147863397936584131194372197759547780940394535914504679152324202447875527341496396953655529519733004862241149368531643913872426548461636415998326267464475791917573608700610026620400075907150976506427162410810566460947400050103772764466076698223807889185466616410329369540770930767242395925635974205090181052000091234171945451099318010631721282883845821420806927642443874446643725605653493639589094083186704503594626629176291115011800527611858303171462558605992339790770050813087548130023062610621041291251548118407515832979899701454820283646175372357649507609521038578727870870823094599429988354497128033306707430194459109046459069220104628807734797852410513691572227950944706580455095203083256790286935958671058218866164951287607391001673552965296335801869719577633811669050054724563825734332758207529254343562310039994828059960643481942074796560306648294339451288260435417699259687339662687060153346422032244662158228963138863809995122538569331763674697234688657654814924074032593597183110803978459810414234101398577006369038880939239517257617561102788314886666582445844479373468341868856983850000194393393354905894616915024106647707071917395551847250466285853586871713860910025828119947282229290354014011884869381161019293042934004697212656814918676620189005838572353608636822317057942196832211012421225141493022440520440596657290188421485415682527638318359041362725858453935464272491330537889207140840036927568718621208956721506099113013539453636769017162780387222443034212522138780871090367854087548147788050041168710543417005426349787897401618103766593406881937608410826709772677314980605154816566880234124882038672640002254588087604617027432781850404881952944937655566681327183459437895087454111644859393090223768691818629062656186806472998646718149128369414262612130347241907156760636522627443721079319871285371857195448347264065773043347171393548859483035048791245079987584074659514586506887027911344463742114394900505369395566923986109226504806121624538932616607484031300898892580760305297356334831679621147844810374551150099100259062257905237538122356700634856638603940429287111301293770663157749326996338212667632657403721668081451181337121882723902996587626279968871363232262523355931323968329135685543692031882822699482406153615337124550791894994084585425402266137539253455296574081008672735293936665546115118889706865380093136151571791118950476624184616471374456122157395037354128893106414360978723251057553172096224333151421741198756405168800606165846153507692425910734255346875295663529605027878460102951081721579109741136811696421707925525583225105604972960123812930046394101568334681931358309458775081373099103890231821534405399194063064107160139027744150155308875728545195437240227226373015827466965584704268341660997589788330989075244756482272108850726185525077755276375151620792487102369764076086364973032055708529700832894690265182152593698387683380865075400578599996915488242544181473409865497277328978115861682410535566701105903276334843054728184195311722393391673160771143978865688151996897863269456975258442481775313797160533984481827552462266607669373416001066885340148977271359052080848803731947524217746924680570103990503779023110172595035595228649421230325954020304204285615352620108773734903471502147893954639905235688675746070765995975488567735218483214521427086207209215540130474747054482045534356660832131694199919236727115265569088431271161288016922921133944876261127952285950187160556539368509164057813419725493818206452453665524345041957780241859891092236918259807501985928745262699404980655586765077090976615155724082876503330568297987721298065319979893425431631939606569590682630134591194577213015294909721423217042812639448023315257320644697466039752168895057201337991174477329634513709667603172087123036907323267417898915127480648229304945259492733995074165543544060607187977097045869197395827817940281021726246217746883813923721555024488118518098238491424150858360822781712214951770033157440193622046518179746279721867885025080162133843470510585533251773970589965226524283535418513046177705705965372374489240252616064977443836771502152006581480729585608039870528581214890096469580037953655705557739824146491281721233739271462435989499975986896425358614850618352237541289938380434566873676872486785311843871384187318164909387807884344751457115172556477179916730210518431613782937521226720362578883243722480996469256298999258203782574508611289069884413635048797897972312207742809071026119408116036944626712572378270182286433858987221794938250583136920878449091433191225950143108843183435739899054029494365026707857326472974611845488945441429212408392656275308694667811050691785661549185846549153653104713886615694949392650234338101472007905127048065957287528481740915149637053015032921024344095960771955139624515798480508844528417113440360280333050708273362802895380006971253379583344230506409134664047551060924811672774950033981302545065870587203296343644210625053497745348959438216710100743488000908152953403602375113079795144936259819183349573118373417426353689522449998612149089105223941090520230813219139957477622091488483682462185750522555405182894934161432844433485634571976677942938624758359092889923118170072987979952854972034217130049570392286986895329221873301043242826165967017897226628861945067554079805192772021215399018584977749721105193758086390803519015397592024382860207473778513124416789405683282618923664311088559254707842357670163407833685818689128064883104569698629216689137169418373095105272333802024197349763702421645316570862352940439198289024901394397316962737894805399512568090987739595128635870637085882031968120326523856679834293753135109359697086849098589509864459726273884890963257400918083589583540554104051754091499572899257625246601786196143030956044271082239886528284919005803728260953566461121424031620578345738596729271880044826952039783995433385383924153204573934039096371817827808567378606124150244275684641709416958892111874724911763362528048666232544195016204396773940442288714924576622607046056211400749367003339407103518978463214012849958666034244612341112562390438482723902333062012815025758183667014027130477247876645583291175798095995690886975225941221109544190411099715570192487118501195164591531685914631243656366456353838076129131541812624517942684153831154584925315009117385214674530267373786661748311148945629427380912373479986700004869120092177571743765987915380536571979256966752344230886330814567381826000918427659354083886042430729682603772800635031025559373358931790679201541869524763822683439779712509235799964757132562486192085503380659210406255230809317472752089389630949964330037900248636085720791349377365633503999612295194252833246107543615191310134304056108481327914965807990525509139291401984977233665851772927625680309231674449647479551903577036489810997378603829943804790178887503951451458196795846099081027213206249713704987742989403699776826743518201571609111245149587545265745093488720324085063100886032225446964385141644965558444805058512829222086624540750519588501944810141128005559692854000655630058192194766522829607133784058713249623442014603368148260951808702388053233868385182983449829396833225569572229271983399525281287293961217748040887654847900326583394066900913248924998764360317053665034008651193327959363175517632679067449077171026242442480985298777083002290424075276425283353048631707267992407554695504178422744616748497651988603123940637608923474383807931588324349336587270402703663693296069142874843752217581804849869476068533091558833883422606069241189674213605215060781918068790261579572053982591373577967077922614621281115916030694682290066148924965342540895413227661800741750275019884208193194909077857284598861040888015999539615513261623431225386673229621653814154904413692661129354687272345706441639194448146634558157726431808735743479678427777652996928880356852701475078645364769984662746501290979288880525456888950384131128920094097435703982589707934261121361359501008360230652811152869306886405256718920628502397928755587084713884365942541121467033417820112840751241194046907527321187196930823825841897847150759827625783086903294019734024455954067108113370498266641430030017134401895210893126375576088853067569769668247620074230711232726556230234101602039241947524062801909285629790254616685045316396232346999500376970955052931810019659024213998751543975127169927413043906363576785422721307536248978070264648575926790304794454208526993766810769488070170023849511718931749371855709930464737582109033209480822811065867134975784412076505294423477565149672875877160667739703716717345982703209560201107726740353585362895417280247725452743989613991197235589269606859645704622487264929512000688367763163105540833381890375300304769102130881477809296172285492833748528959273136944001617030076613022879785087923064718226982744202533473610350468976136111053384971040156904639600081894642338040364372912959794968610882129276714846811871521831156090105639948118225615833262682087391884801840654056166416347220482110828573392669476862066510214241271183851456303585967454154581989151073867406352193559191761491668370164385360379360489781228651088912969988329903503924776557969994197074116702923875722732067540928363870387892110420509296096663193280439448748090455254267493316726689482795426250025536078825472134747866928086622592866634184673528513762664676069516690909397733434787452966695087177328349325086231780172259348021450092444942490584406386700605143120452669413895054982602021745573702968334449878216834001869136482481404736990847183725658483288942973492981169765696036162240981059685569816107828179402943728645528501310821266811791208821648661631764530910554237970923420816491406960787588590997127848313006661060849248214869943570812017605835528650240417749579281380581806409853700892941202204033110790564345151974575145493097487061947882611186869651108601855816015720954943052365617176344305804053119897503773977331021944692461697819218746873934660210773826256946797889979333472385202672555672537213907921119733652975679908826400435002646676685402173237688270460808018578921916221313258024594514747589476036595831660954216710883467819139447547872398151907551011537812296723110468343468913076557209943199808377523194864058718231383657400483700196584979608040540237348855125165630394431432828596335800025285079137918076249782197092329537337064208398051836461952592738033495185624961104318777542646927323260393837888932409511413172402478358662315195522353619638352018980272243664804232973146953441391252961174589309431732967373971503101247502304870927734091621929407378050156921491490067060245158099163028547778410678542685214860043103242415116357754556070840791532913860098023185937157089035961742539191255078227100831949004297890694074980360271734344987283529771603398337333669212151347398103762340448940695467503296934280966419389224873623595073667470536722259403832341384805538289803489857705306375813790451122741420094332403024551379641276092736529139321499349334449390898812095591842788287939068993511796795556414948458834183421424293268738316914957216828648868475301880121483537329609875114148032953219523846830348913657177319012144954130656575393775148203737532821283151218118562675024734172349152850058356892033898791546622305827865359878553444766004930438906461173703511421844795605020139474150183310501907495478767698597327364177863827622942771883806877944438280623971616701486684464297414143646862326144476088366080844228386283425423043450653084072442026761578694309208613305142759673301553263410788820325846716944338502981914546548740617276594658626149513663933658061099418134732180127378499310823541462331380827657101520844398216028260929786611129468624851664483793475324886204626608134901332977871247305721607450151390347739733415846125930493678427149724596130934135870581835514391880264422020102982562511002477754746724726310417490214167978460125929989420540537739612580159662964979500350811940511085852075372059816641149621884481778294641033653243263219824478588509971685548508594294395583064684433781429946248651813342531413090184750655277523784340905887504308500494664117140760028813987695583156098994315429704651178166973560993975255838907603673141412962290191312112770546777315417253943149284934299493043430242556110232477530157301795260093280796503292589781233028692390120126525287554142497008658620033528123757184609417287901969376109252498824941509739480175325445435303952989141612589508796294899373121854923905703969999137348921091897741015166169817190269070218703243726026527836703738587640735281003842903315522012578040756211660315066140276344734535201423343818531843329277827904346662286024916037638317081442662337336599698352335253692559415814678722268239011172787087057725268969401359525079293545342152166537066432740998160056521595711112432679098894129110569858793103217579091802106773118142754194571587269837648652222548403177036292111250464265324618536420636493929860675366477706846155718367426772525204816187680651571659515966504895840734158106957734532672845606134080702972565673905868131139671699229114344896720277775645563332072984515610063121193131671568043498696111031519130560348278959712106960724671170079486177335594300637103448687077799259619528102568738945390456858254951524477689898453165856718940025959333336421243744713995189010820672353522189075618462038869781066324160730757245866893425798179845267192224073984230427787752780242723676456353069844446237162389221821343384932845330971313832231300307829103881416106618714490374929633294984356575736826592663117819132363707475617344195874287611616953141367286611427094131526117614832744915267478032663057360631206696680334128777452277550033566278011992213503160392662632114814791191513830590921256652130833885449183748670106152213521240663620336585236707029626794352251164106022583317237115876787629745558091204184632485044187838304394159250688900531493791896786945019799053695785017969611400981709578062685706897438131456523018509149913837891727375704030227532556079940124029011601610173087071379472556057938094048378418173976502444986681534599171704872722618436903220622100356106853175225619845923619171618729716736230535023532252773619970458826578742956016099617481687426988520002471263957105220472891364029981607990064442038821349449862537059827518010035544322699911641781286544279186189114897757533991274826741454864329371073830353208360778063826439784688187423493055423089118326342780357269595601715189286642845546071617223216606562576511888732543530966503667912326024779214990608653067757765850218162719877308723613955319891766286871712566328575366439172965384334080971404090665950028202665299399958514521796612818167415975514869073586317812332103294746119894074532555189114049546126300583081619462372710168520125848018774055898840291575193513160331620314852610349449418459533398382387674444639478459293528029205883861535238010205621167312370460452744592047170889270517039685145318335338702937909471261700613875837554262291832543853538260448033432086106586517018574711718938602230411473089209596117790551811946984698465605364317467267722498173108019664764132399771187713120895377987822017896159729826901409104660608893106611896973311853889181603152950822947579581016594076987297963474815618297288972795760404117274271278628280790556964062330340130331599396059141066079056588139094403699610886835874587703361790978815265160067856407666587987557518981964472584101316230204411552630944732110289586652430294733787372817563257670044930250081860241098138626594515057965930870527455279522559524857114133834162016384880807369090801908571296665627410521410878255819433957996201481249603868519921401432130849216053449671447632468811253290561297854981177937881866564007061867439460965036997229134458878358833830725908355703317341976619696249402587059623576475103166801255764938619113219227189295573711027958048877831773545548575452946724753001920401851494464705775821049467023926339586621276635179367629366391326048328735343292953962363629032282165418549729859322993121073091840529090509076524965082716080649954349053060685767369039953182100861396988422919739723564933516156130148883402399581530018175123974709084574309839150235447186676227974699417987724855730821257992856957068367583119452780137452240044661608867518963717663987184039044073935259905128538988905520811258148341454934547986863466939624987021706420608126521885998193952796369703849465886503728009363732296740310397349759700378774794320112996171866009102801625260894254007143269605966886499903241112459787673704973192965208383289460492981913484358794409844410000900106304953466744066241556036549209047341202936249462085319544521189662014046342284589548616798534779540966558758737641880784735227334425974432612457540424530386996113933792767150786013207156486141801895250938274340619510426541238742320684613126597674641340865811623128767325738654241846461767841110621074020437750650469657049018529817674704748674666624629439332066641134942795322166334099718059340148165935722194084221557935700747130576101059426629698600411332832153996766610064545210815513212814757394094880104820312492607125507538513211304795228443860492575394512177162903940437961084861247518974356404782462532458001942569095715208504761518779797468982715756937658551436082735292019100734538109206362892030437786267972069760255765149011924401879172755321613899131500647048687673121133059244840444542837757277021683330719691640499191836887429958423894671706395857924512368108753416716848359387720327146907709803717011130333186758964951969537889444325123739502525583125628216488744568328867683540606315095491687732271764060207751625672314563369372580399828003511532733780478152472121807254704099552883663052906367609436377859917900032820242818615415327165121660558831908599329107639506299325799631936481308872733233178563607651611805428799111918716202129398904497249229136053606581809498306475758998222714025718851631436263861550943980745336045005092584846091290630479777338838959136332709961864405445366157405771722512494475507495075119051036358969452208447424463502932241332510265856873630280331031126140142489065073252187821429961703902482720772782353962150512514876608167650814338177116301154640510207902665063883940281427486524663264567437568560867532000403262571526488113437978910126231960113417874660116579780703847028022603069639767379932507502042658162529733417160786687176402774700162198072658514289678647598602295880344911231438793430344824486222139316809489827283239517395308242049194427100787260306225762919995630196153748299165477456742571617678069791934527989790869378282874149424537124110182488716081586531157974189205593774527886591284241630575647081505031208655608270315296219968177507455558953136845189473167432694337948579578038039552083630881399119450776306790111380736755927584544452876936751056159045248285498150497152896475670362236743222893750578592708490431065522556429677308891776952398926180905581282170593434254036177256974155957327377518233472182689981901847454367126321007895615098414542290496231885886158280009106024294878502561548482751319991776281989085146692635415753837835468804185997565619116564853393826789556837661152928160106309820906705105419113720098707912096166116039768732234917669873122530746864118078089002607334032687296980060511044359742617793121651244414948046769950443414838331418105045832819473668387465918649956965928822571544903949265156303008309749065285890794017115724670747794848089068687231387803927007834339700059662343920995615191161109305147489967435464841893345930509775979055365884267959853590703194027810659440129803169536411897634978034813025439900617678894005510180122506381184038169676352895855303175909232280025807152222835074657730353398955732003311949621403248700166805487972023551153896368159378612721717413991224415581369913627495530189628149046261530523691099818686767238063480498665039912282758076405140600549178578939874727390003349086516255868155299745411613889079323108818011795428589154886363591338419824100985321505486995497588952557591875754238531217630372975799249997362017189739383502924585776594000110607656075464709160782511686221228296635565624070884103293303651047302009333271932945485390265893612381047345990293130839732283429073420252824360062684977503788038926575471618806438528956032982831330997351633337264010154741637625626868343204455650964156744332941673551773399894306310931146014375085703587985641518036934018406287876730379329823178446766185902483703573870966836275452480019232456023728226550602254000100457478061029993495841740699731333231392916331402261060215878066836302530804655897819014883459568719441964264215549319036348675773086222957911805774984756601940353028243386791398216915825025044278068012297457289330782139812063603892124618092989070567395251901997035650312997346236013880426012539703831782441877924016220317147019244063641098673591351723583728783341489611123451074335937826551347280579587341711987624039506464638416810316408321318309054602970378092750146472407852538667349970769809238626968045212796495330484617748043564137125897356449106751198201379856034990223790892081464645300095830476995950203544566929122057485557988664783479044966963104847193038218669958431513323349441246501227813084478918739163098334072413636189274695386150162689247375416639744046638760156180686839043324675245597454326851953822784037718539954652750703166563159147640971573160963086266886867314821019567380054797430001715955265573566554620326233669318646217556801798861839890611671875949505930406767743125766576132341463904274892540420869715796302260179542558897383883935348920589829116529357848567181577643390489315169296949401702044147651147105147428345473413794359650518469075362385059662523683261126390224309649800344442808219372893249635882461197052431955143765730466346990547384083830456280126622256496981586088153142669438594564085236833258068863313547832212562365018295630696645014058668835907707487667333374679414245806948980657200881574877753166253444847578834715110818503264128244225311942978439522389157828398449176806018649344898923241430589004599582788476894920180018521820985151380621067215127546774175382315544848615587261909252634305122678933362148736157221617795430865190620518482801741341509395416383554992894745928216240453908510997232014432249884304949626705213308706840488043617895662655876398566782073488265864336432869856253614058458151628601554030461563872153762394265911531247576153672592376384511093725499893937283110988416535731403273719485186695444241070732572780541489058148410619161587381611113517819690867346050097726887338647035916586569585813904283543652920028319801236790809589811301434129399441779579223567157611383361844681979686976517777482476600716696765056184085609976200077046284127503608629489903191388717947543958484031725756218580569473027491411852023234052790865066722384342093523036316048142848154039560120405752709878141908393926242376067361198554624149180480375937170412086940987748134304739035737978577363714753744932440334415291392967146225941200905644692956998294840652026644078587926755478156303802773927401849322366640020435380233381881744747987319057345076795970595572098108331052969151849293407102099340927481584813693519744069196147343989253954411274734907102410332057761913566470784167835446962923440480153216269933147127082297934992995562717788570166912149481544364467902903151596570268831173793842615077173132334711273497396572954073005884099519746647353412847651173032820372202777681733355810446952875356025077819312670381094837204744123967789254542146731218186493274314422997796835186880082971754347283628286801737663444849677516115338187847650358915955972590923548016415524039097195866274789490260896218078948436266464156931859619574213481954046773436008957712091030583536115076135051514712228736673791805849444292382942852021376813678592968066147176477703678437084979418693215112002017175811716546092522127685301732232084816967292519840039423592608995339362433669352684565039077402131284153926101779079920504583614372953803422013746404370172603816629107408375516861796457128330582910037116275940704411496420456983315223308085778145713312997572868206580871148966837736272672978863659054849458419995350333003076780462180966086524549191839049298600678070348265258444172559190633505591240756595583401849255389178954902872845177499739878489032687150193997417081699781243022286353444119225075185273217258133486864779525498863232370671798858759672069553901435630357791040631622718794376249157727371403135833096884288766297551827048424217697477208021683183967523964468286429406110285410799143373624114461435677772607612646481262036317066937594916402547995991208959179778375139425879383304201920394136529059752718004256209923399649067371827239275382283732280282351635286361589111077437352841330649860633086387402315994351363113926786600926641044208021484928370142722155224508398955706307496953366905427506137039602027570364933072484419712647623296959975693906635923462989999574398392880486252160659500559352068982641816268639436547957883937473258483701357193009389760035739573949849536326880045013331624726874838573172213298454270264671518823486524855197085036836781900612784616105782626115569107538358532906439035877503735236168081958773311833643212322464293660370969777194447765384302121882984529146397545605656348632795528388845457749839118568180012538236755411056439115142971387402180137078018482311818489437016988568613009559664265873292372555563899523254263521110492407676894904391603790706615362566475474569679252228982130374722358224426560078303884172132196770805165028554146171056755212866088673242886870352082781669697825073139628273246731577901884356526151724958191343584634221511899794287938882811000926553856704629561243412432789602683694183159898160600770149654209394282943255990888612592739446717455561878886548459093359232095232416406755879374085628187442324499473122659162452828688305039634409492435200029871557829485448257499951783603848308850410113799069825977313443733476696308161253965531522131548997472117377716074630975286155354709538077190151822043432032050397003124368306769089067546479241912838427291221182971095309693962885357116052963009183753948782468908927811707077716277080171479064838171958654974781238810991366502168237887003725623275434432472860638867518454998357675186279078656780849884854444315992230309633382200603864400161394304165546181802171852836652187564147814147182571274804776738375448669886881469018756113740980171688449717927713712218363902536439989949380572398432593757072030907855720313622359428089635952930483809908157713764988718193555337596610099811777937162504362946600252560282368336841985214051542126637709354466554169589192453979604922496558478536942383629288500206567035773990377180965975251573916449437137849999158717160648567324437151607878180266997244180261796243731216999281846379545764337712964529290913938556773029339280360469456449807144014621529175916144344323931606468478101109822519897768980211889787033492172901693453971234782319878618925276454209845925661886572089973109138211182257375988517295522618693666881475103475544975869938632769603002617736806546480084513048560379060857755014138453101360161520995336549042856558203820626718569111852660585198929968398073263631651161297096807802060173167349334344185557182431411076030711043512017609971876575441352817737056936735920064103620355458560834172307380074918645767721742971564855646585514493426833408527111897444636185561686480855400123415627120878043128020939101368885050136829631248960867222419554615571123466884236734225597196365152857927455783259532533456897632538566416315698615678049239491148951822103932916850556094110098373501375630171157320966166504204232918686578797088743012252214377125269477809433975927915214640712308052057601505873146383189473306160479658115232831840886117155013943637943472052738733355135351906186883130316052665214611332550642319334223157461630519940196003849073396761816743049821012598806856422126452799185191449104580851872793936867637348606352864639081702472958620926660418534125237052529128878891238088716078008917969381758855093259557548766664285366736686292584018787898618275336549499403643207812713463882913644889512307701378222829406323991242326621037884212137082267886603593919181722089889212798793374860456440888962086837063618591269075160317705056756443713993047349859920554310589680470767202711747721281052299224989035595711449355668300069335718012703352542263144039185983074743071280740210853330832774020922321618920802543800783513224854391577937661909463656924329860618371099181429007746799060863656455776522871816763166700155320953963142203380359077510533918256905745740615855558442702133306450023472837177558051329251335625943802779453973539691765213000892090668748246246507546283308508372690725588121461180532042428143116428719345289390930582110909155464224103281918124213499242321852197173322074881443297757820351129473616088186193011559047444665351239805912491848550241246670512574542611049938744923852647681106847956015668557838052032975260568809561385341942281024062761517400324650472743864501623631128163791229037144997085485567471231420932929259682504292197604879307282027253497194907759837716036741465296980936101101884852714110989331319037212056737797485412877798782162302875373337680020757808626189840574833567118988622465694359087801313014032584791636142834820401454112524292838473147343989152451270551539037493808125435408613349757675056353272323919991520360144898180008573842629547878218390615419659673300728466956022208517922362725578202167878703812666216417469382989101587309455094478360570562602704668557408716972580919415828289029547789173388912345111493413692840256480443304449975098583958681128089129903883137403482609697948249741112816878390786518089245865623972348199305848165429034181792364001382569571030774784780218838093059205002337848559345476077037785578626177085208003536181198750391736280656588728824108304638278090735113180106027191584716384807436485195095542290905811246766203991530556823963245826242109605326281622609449977983551056119157273702476971397826466088376693003321504182219217454005278021778104115776088295063585900091602274832721999480476820438781098330741881754316175116465803628998252793441698347687509688566587157165066107435018249013136104153476303839384178786367461264183787715029024906655731828133030902849248950768260298985892568258335657144604823312305072145555822843088377365296310049948049731470442403592637011216908124875249208189678418577791913248387421373974408462867135024281279977047400906882546683663852116201990934679240880880270161543084207873947361450090974615448602451390304999647093041323124778057660924280911785493763686701918775113695844059215096776550974936445032894423241321788696851175610478028622820115712681735712424487242095914589524146751352983902631092026112879049596095108717793789070313699993505399265130008362558865511119935254420237927692245985570924510687421079830020485326715535608298128642649799471601170167101106971589051557090611058889079910955237608500894553537591008302788299467233704487279699724849585666930474359304139936746592636353258795627761098537241105828961375052937564729693237917397661030546441270154371117643055427462285203944248678602040911145924188820247919758924715538948438891363415027590975720549564660620860186999719976463886455893989490151140624571760225750210287818931774223490536685155932498590273226685062335370523099267830930530226074928777806682176923533297926986081783996480507271370703556197507291687503354488979185325721108091118034237204546961272656540933620341115651581565126794640874517796514329792152898005769181648329608061252960145437165411430739229668068065295627623103860227132348575611926652118907029417714937984553628301350454525272193954058826447455618569969779731986966941633420913391292641604261854986085245392344574274858601302209455593443386061954808016547282888616037822932897688232612237119619474931002879965000717726702173193303787637512845580731108116113622414378702847153128900330107969569368111699987059301602753684968496293870091775810441408699169582837656129702044757290212299172339364618124487906614668754545068080749121197355799128724908740585869707280256281288185327586945485000161728935448876870211261183141472215674357818619318881204484802372888305460555870317071660403294558027313210711151178102914636320855838088894998009882905109062563827037884845510458383309779071353078253868968434562368903818526708748907363204893920504020007274685518383854344725069963861759016395031323095165270056010700565550617556657656926402576902985430009495525500008072418083512874599742041363407714204225503717458501150333516691355781119633877004797792072201011571756651895045666684520916164202026467814687857763489650657979133702600606868838485947518019635500501000784498462622759901766774015091666383110252523139062844347484369582177868264636584589262083672050767470746996468729057599584458364826091884607051384901259894978759599340049892080789471885710610343117629114378267451258033718391987996472285822001491124260833543763824920884046335976585298245864443912069285963006664074637167235016511655037461523532097008452471009856955573218531724490177688970874593425468170808996891467939242347944426293874796414482703360756363769692806981622010993064854068898287087122585930001331468180278123287422047642879176157417674014175742322364672290223857238723922574495621877515761191026351574414533714362249060945360281112607486010815281551308107304018725451594802890006479071140422890130754894965090778787800135500601182150127050128210046199254274657445524519650979471983645373767541522107876169976513021333044077830593433687076884049359273622057666234608167368898581218557450469127703220448862662958651157741569117991779200742543675872527892483549811990157136530972486520227865800436197836911100954854787229022008508577698504356392545493463748055955206762471230865135285684440922464215658528026552479111135360146981474279119611116204606704774635392210536635877758143075277386214725942299221952747128194274406892509254839952785346045231491204671101940745897385026742915563749427474702485759303130955193357891434588342754332004571534044799507928748150544158244299345059225198148351487630475610195189512270886426139931259345153121885923375406849032242402654149991451812384474981106453868124466685050049432720303782276467356705733212353306792659579673799585031152373527275254000564218724324819611332700582166498222902980525446426100535312506189732059879998403668933689395127173755106276270798749783328667351307941210596997972299848075870664627606568057960108535853892759765234069695326588648777606043415151163908479439023820176002145429956244688006582653572069417891189590424268679066696843017500655657041288141812521021514172014642322285172395264874793187125375939202350394033933778874102546846513711066626764244842428241352397018652333924252557339282551421367094035318516114646699781684520296868288858413903741781175408392142318867904765813218881229297869808308331223601996066449725672817997768164931784631611355649425645535793622052632370884374329242840055039710169013484476864887567904477784058198444666366126681457590168280170850748285359439974406702543481031429467501361405824477750988247803980244598143827214206515561661064755441116208561024978601071020763397146986092642543165835319412778414231112243961320703890087311450224969952191019890429873602283736359624922672611934437432060145982232866189147001620690937950660766860360343046211286946489169877780466490211460639246203138773146729028799216469672910924116741654565990511423641395125187047913735170819062948416590233916377279971076872662850985373632878181041986883085098108521461491976135289181163850579101958181078901233878610263087793288308853234293824466844841393233440891377811182130785782142508840410392074184118133884855940831362743850388774173504684022832009082956570100071078637814771663725228578817410810654879725640627653620716084393014602493279650097732025178247330046125424294275537360932140298448213897692651486002254723509813598015772858654058550132830701846617592985440465690153471895183079902197154632132940371780004906084048160731485581846538285586327414839843916213665731773368132622223936470677574722282534102315841215558240205793378197748870875257193181256341898903956936591606266170703488851433240264392005647371050961102232078440427175227167123257318716339002625942853084761159775541298535879998338732867016765264040994821234432080245579407887707756188380956374611948202264153939865958886343009680759163932424298759396247591509469021937818169054026239250490794362228505791270647165568009452441366999442824816474682492525014666280654909225163869451518188523256856188270734868135659564863897877394240589079683972934142924433930144424502068991662447394931756599744022482301644840381017969864063049080639175246735701539323847122030692854880321061433829743662297359713544045894691110316575813159828386488297177367381923475036488691786997806094010020437182163666357415689183050403253528505847207754720359722687152579536369032085289378285632097977286595143347868364245206066582404684124744054127288542864314470132007499396674418746085621712282077058569569710394172265712799370730311203683547492024595235617040960367877728534121748394170475746308792837680144603150369269420271625190500375140076540951467432272903058551480387284439267219032924903417066372540897987048523354933045824558126272819848249370853979186759373705317781313080360359076951134627899887704679586956718687463217113804563091319779399840336671855271288456855031042788245513427233007408851749277561309229175660007786221234106676860054142158945110770867822905837585080571450120592945969362014528187399110538028810981849471511517158847938010398267317979199902363968308212738208845125609706731981842423376295922634347905981892715309896872794470096559391605348599277527242311726524242954486601386579650735904667951853398169402692576786676005234005001635727033236808836071054024044697330513996993122858542560526452356925974328489520520135301797849319967737672431012548822952774103040241163978475530487939209579981386363917956902812875968930581168314022365975415625704968629030518121935475775407927922714315744409569787799792711421716462483236572399192113915540405773423525181156840991098773752318742880114516461653218575277399440660640823130951897000767123709506289900597890821389642046263956503323692847274853109169703057530489524848583694773762336592453071399938408781299700656457132465858880934806065550319007521086400103828176581798041689963281347377537218784773715824179414592016466357999834622140258333106642201304939439794382642665154509333233544965428474976586356274592365584213885589764619904155159115328343791518045138335512762998819743973518699723752956150662393825624923031962351897932723577093870810309703035169843765602283962245060149332505871699974412403432058879187730401283896361197535963490157670115669754025466922070295853750155742510847701830032066645005020023070197943651931608736818356193611591940399713165756053966031913883053411695710194817950816622423473003958411880733221936520916241501362608252503003228540255079268070185389756483880353641345733765517307124915602707942051350416336302300773039585093408370712168406627330049467781232285970081659270978870470561981272096261037272916591352912409424267039104944138310673858741037083409050060965023757180289750156287806688143217931665606705920723506349576560345730615771926108544660999802173937660058894015050394735091845011224979723203571593750126640937670908517706842368029773511978369259634393352836428295551351007867278785204511819569629074865689602044091964723713105231693799267424146269435444869856194244259648287294125513074878053115539658125744941017993214710834872179173392612974559088064544634881770484959175239105292699916571743036873849738131719593356214165518313632051886132829640729196261374776613062520947293056379038191942171461731991857831217955639923244089486061073395129096220612524264883069043080844214812740223607853520803894527628692924943305381948544118922521810997039288585945414556507878676191678066572768858249302903111948421835869783596950304723548096898332328934603257035402876339834758501511777961394572504327310971846050704949666462495810921003879654267267065217462237806352682001241790290250412440265256427342003553819584818408167401819244186305154658985150556616473442727672085881801144244860278586272383740229431695960909260791242911855443435350313008988059710175177684538366291823083599611729953182434386206971751190131096273193517068641370921318263898433203221245028196075692300015357906042206003070111080308216313787196234059338631896080012519411530882474764137320692528966160441725740849137489457085585132580581231267674131629431889500734161830688477328661203610126653618170954876781683993606276842074335508441737947719458613154823547049443672145545482819627456652154061167257224161813515632935789578932814747572501971527815011109250845387467592091869127236166737795510999519955221255849958884466695372700082393499411675949961038241458866681968286152253942037782680724913307610927686384061782221139036855223789546032977463656508473988247133287888648609649378680225887111760946591777179948259138880789746304958785253122855807631057594302179586597586549247505291466005049394267415248603028474426548228092188960123732200780340775159832371598819743348611351318577152783497108489668984663110859268414813534595498873218359347466240335927728030547708872258700712135587388067069747355100711533444441435750856227318751725291333807510517486496374236319729096719565678484676980206003033081864892037861395187422593963679463256606675523255119138488750346595207977279611031098752782257010983209219193226850048389922313009786810483330628307202855776956519805802900257149195215646147230348300128043661738070065056227616067924918437442492325570017230009681118883845755486968953136645019428089901221228806771331526136222013056467824922778315614047500992922090524290199552356648041549769848307882844664325956981346158503197007484329512092926487173940138889424205534998530073429996952342336079234733173956274282046773094388021248606827998083809513559298298810855028486847213525376082448397412821474367928013730229625444546821546995549061118440060933593940451028222106354268642823086202337334582302306315278359989832185005830074164477141821911941362099060527712376679658179866748657830606414397908841011379453823928932836111120132726909669344984184603524180648999183941673908957297653965512731303728590339120797121139414086992708350987618844786670500041572172224192175387973514873902356642814390037537860104796966209236986033494323149530757654761709113631404637363039940260974102194655835894939581228477135877762710018419823941058907808781128351167415818893580383134474893845232207210553841671632562568882222613981553386302907905327842871704312239366784629331913821316795674565734043290545294071757093634353246175859071383507309727586522273771584769796924993774649760061197560816372581543206630216889521526332237674507642801155193249992576142953863268487256479185055744543314230568887275637924622224607953640731036775077611305847381439091269661073633906919004663147357363806555405169396141025747283224030673028050872517797662312179240650303364091410552556144765643124774096720779870093888843832773218076823810911963371045127879378310693311907511224514493893779620629454986675105545581570878193884335544179336387112739976851475282424140457424383970885197617893653453605804598029805875709418780550711705731519569953258690469391965631924525563338690611933903446756771500163627284335313433624470977908734687480445681743315529741201518953031316008417921495571847048807712264035158374038521798651182919228104041264852067017016839602831888704102904100050096926546077555851295864453641006419889490035322767322936683345692659101836941648263373787054132524168105146426280078578183770132513004352424130173914788323903126293069900570571656934107214475838412971965264905143679032219142395593196339370254536667996293960951789714261491486834707899298742756122495107452807419476092253910048028431266921478339219882928025745463459527780833042906271333854011305862706852850718745777707119445496268097052551645031495679011749004912465871276497653755345621753371377808215718998442497197997421288472217657515607027736841647061463811124456609175506984351427866741132809983636656926544665251619760786360665168608953871006363264756125098978993536478353909534400018335864379978239928686923374658016939317701946445657935718603872893435345315517760696754437479589331520670672232661233224003054794185808368334846047979842797208344983223802513420782748115916612907722051001640324829761861489965265852006773192618345014794438587012528091018181658993577705608248461210363704772366296589925093471816582463541458244606158306715372468227854774080505011112154055164410787692697968767143305568758802677647666857807280773259331640809837079336863402096495090794665696414925052870414974083680237601343602309429807329789233165448055321649526649681015667690753325779975828674554747599848886322426184132717030704357897923239010682993715749654518193753366918798777525228792787117227243279791103922725101710439950207790371421262172342701454450638571377806216935574547357703063863940139171516645370134658341404163779361075473404509648374359328453672481734637754345437736525367479610047193334343110256128603118572685032783447700362735043665640617446029600290589198216922460226041879360079185985569553248707917044219286400177408914328828760414910904334400550783657967039150778199268193154318282057053126547696919688931268853449544190063158585609064447415998918554214359096244071050367069255974976433210209458626690471398240431755014906685231415069624905781947046792235345110540765525285694808474320911308047979439711040065388170538753532465590498025715391743209436544799333934380241697590659977136208823680724943349604747982423738104160111314481927700243196262852650022875044326604234303614137712402474005137526531766937978869931399847782728226556886135093474126862510498670071430743409705867104802535644988919486014744247103751390287847459364648862942237624701262601586056643982797714814485463485987571259305059246887975754909981693682740826130481771088663877080935974679035937072562229423933729118965905513945177229411699928055186909924578645107182032232157510462085371676065747534419098174152844481449130763439406796903056669416547263658854767940609998573501347906625771527935721530510451109435420253528953096268724992810866465440672790773986770169262568577574698702005923772007087696922868808431033824708447368931450634811260694201077741939465913371250683959799046871499852068266871052608497827139658990758284860794694555587622415558292389976952923791582346049539987575276036963504347092813705188989006668954325797156660868382306323370150169132169384067779350455754656427057280148030502589840046834837739572715738988600244481272754096252287553310234669720452603933250164754673570424756129404571101734579140156777441412162223026014960931841013879843438473570189645989089327017425799526912302772424861768916932593350485402076452362250113967122964544214096083440593022781023304442907268275426903382523705561547772136761211527498432158954447275279622126220056475720423784933543698358609959661711797269613058390007909133992572835426986269351876008808576358712570072819434602270017945441856285720074984214293354830093651777964200375111781374924107368578024127509380406347701561803656750714416809905217250957615987109545833530020714051998028581696857402016260290194116054411373342025412232185492800193512409314099715512256605585985842563317165843190359594802501196373423238838000957117902592805512027343774238409975519578519560379265478712701260838135739068171174738674551207857924677489227316353440285659580575995025084900497751986707206298140392554738878787324371461592342618139744750797171505049603448497571694407733149441841998544806622773543792935194224354235630918603348252909122281047146851795659530796941977086931666561988529713737151544253241440243662824074116552724002259816951798187857712556795781012674999127232785382144863127534267709629625117267306096107612967326013822682873289531210703942518649886289302973723353399313860127223927390101340061335810619312068422342263017165096942848025324285641383146364974027920593336887496160085256282279970331106089640897716584264358381147785260146264683212337132505823942797409693779315395161275795124592195760525783027718543899579102614922429628471073523436196404976123236884406017927920410765023030776957998041043950475073190921464074927377328815690894231241836390607936777124325510737128983057331987033900880847113361272067022642185315926371165762473756024688732140113593960121838016486925340213432902194247227839654604868720962089853958214417974858520305339818767038883986564156649556913721114619968476606312551402545993975941930575724178636094382531152897160631341104587910013637639895286752398863804672801717337354487143303279463912512821293981910529823907279665131798323514136509255724295709082472669032880979846262581029585088349050959344508717096420142715304378883440269703921097904580956629623335717692743142345329530360921125115246152966439117866267484658603191234606308190800458534502586026387772958054801362636310849688802255251131514613765081098942486504924295276508358171200503530587671338027446329549489583082095281754521034336157735892099781425091770916787636622055168312880613527154414217632736818599642781619295925773526710138306715241908045925417159545607199966752995659101727666047759293255795786419081773950228676037427528992736192479864159807046318265159609908069003866303077859867746175350329267081443625669364639088946728965643761967422385349684027280912335570836163497518811534816036924342556389151357218734753277164393892955103303991530204905500932590897586739543577362895075111960166872789498593770611465207718311419226817559815024855603478188285126719851665745094377386139724432050062676255514261817208011781132067614493480125262470295069708841577238072527119234660535352265006507652077200906356164292777361762523247315366987604288137599457370706985625858993524677759699417412449369031345515130868575915303133599393335526504983120246263344942654020999320485695161815328125371060057315036724254952625759218939671455930841924498030560945585189530859939884511656468594314569233117581078737225676317201548746417925461830661601637474268448533045493354358125167767436182897921315974263356888782297123247103412672523973140496654919203413463253869203346095544864171456162078596533158827978425792719084629681479590026606095369340911203913557677626097471974634032103692476398787791678275827174785750268456447767215365123722393580247792793750471574857617354281913142535710104827892286811873665959850358115338530847216409501750216638999157997693648635764446713093632924287778498275292699542454778945137431167293587023985989560488431369603727422101883012527231312635700142811250932864520578225684223735925074990568889685501547262146596338899626237632262263942518049889830099649174565662217575194747694939932523249305598798271981650741049210550438112350320877068565577894215368251021486836889260773376888248222434989869675890428845035791715609207678231952630014439140239601368418944470976812197661475813912956684722574582083970974738746198705598038494038291162027291672223031107548922416674919808234852882659570287552656108739879002145414734587928431219716039152645459845458934316445113252379413418237346606652660327150988115977093864982338337069824307853541587727500579178033784228877556924922357833403271530278347662215178111684510289346426175827229884351651487577721905324420656441682016469038562651674336694920966075840455479060087392754708202999189754731356547625574002438328380665934945259412060134991410051423217663692951851391823284569280170197464049232837642264980035235477644318621443152626933207412788680991984957652864172783329551766022556854277251896605920245681483380904193229564784044836548942084840018988320594659713364340577448443586456212409745161340103465325457901717127095651066751097380052314133295088207808918677373090285666631253169326456682043480935747056688099061008338456796559894773584155476809379253263119459119948430895118240261128760737345582261351445731129794526335239031083289885585907868179797303131826010613076410775386931745421405130516851174748940766555336433955253792715365844738602376813269484492860523143106796613962748426378636665695177376195347879896367284831596446414567729446119794743051405249012656156082145085999470084457145262908558885587970943337033784457096026635847968590865662864978815526963955886206697566335979817522869402760010275657211206224841681484027213309939435377526959997193224921673395764041022261241851813868411991642727012804622018889982959431357098180657358984879250946910089604045816797741502035098513040526737382917057612918508744289266582114720900690675548602574187259730492769179026781725238171595583053705897857299619092136386441049810918562083658487781280540016000802114605998124369222084059295600866261659566058683820737758566818255700473036419366250035791637625902045770902081003436432223644956120276908798900348916424500628552276879604019482601067873204887329079155140180139475127627511431813898290458322174912943353238735688493269237513749093557994261749976474062638940117972427132744266336896864344788915407977880141449080336837905624024741894260557605940077840167375713832940542779151833726846424930577162441745209724817434733669462385315485983517051671977474099513994355757844024002894902581014021431249937905225308768646526441707921967420240392280051357622149853651806196958866793755333493030284796546254594954961722873098398864993311425314819330146905083058717490280354032668618162396027376855870311081675712487988604432944034075875367390267439430882989429799557347555145388187968350296042937087332903240381214537408193474356411762794332935725008819230666320511229007070123016849602493607664669999267622126426099929437574557318098492269231566317436984399229383268773040289096919926326540316239123592137723765045169028348491435764767865486916877472783336578768025989110780139446563485457348650555111007088978875877454618110679184899009663225275480958863318789683532258301969032629136048886571976503566210706611476500323382485077936913370324748455867151903341375678607314637513377734227905969264730500623823305516744906071647800029624355086067692842962327096602166152195729336793014051457984125650045956100948825643808108179212902375581074424924482840067052212251764571536544338939465120965323294838478578642152415717349744277516873794912054109893091973761556879149500837005807816834904204297438807971140864067327722552002878467874822311402421958932299398436299284383449461441857267940456346803387291836890301623245105507823807431136983326812752447149145780445107177608209942630504101444094326411713149158770707397641288278679983753398136359243113109061326622341538014553345989981247644343334231664081065861013438593898318752648752182219285301913182517488442449042421467992131425833156156373631109873345071448700560032051455134619034131543989809330340963707198113008433784011864700755607552475957543431618554714929455088842177279703370338947757490190642348803305750406799141145694559996675733138907427493154865942969740619512961520851091353280616109997446182204497364301633903190235663695067441650270588198855090376144315858408439880352841334195448432382745869490628178016519235985125568953057247671765447372462444435747586936836196359924848079828570256403026096258412435867277343383437421288012171513179850295451961218184237277254115900572803597084574639192200068094418971523442480130328954957535841773366441651391485593152667486265885670642885072349600862984928730825464807639130736365845198385737239022220696105236761402210890801924222991107154474184364409009982356228216637176023054675736064266780448667718427366034869489032304668045641740764979396369620449707633775894005739822322667929444242242730501041634793272798455681457780228034174363273607563357398659362858091133400959694124803191918211439014477917031039365607620474941358869732002047177545400807937013233852486539670752794222794569718393263871285024052075283602014722568964156271019594611139604404591955712858740448737634647329201415715214874401350787820936960271698603235519250475176674992821880399535821253681865061673567715483597809668501198400584209098508592348928518960128640631577472550602449210691719494979167673558814239782092621221099165134942809209289410619116644578998591717544647801729935936079147046585531621750011301425490828776191558385648633314948587048283884588430317773277931493450011038660029166877002514168642520902306529608469941124634205626900678469270828227080297139209715107076446210312393907522439034537816992736497683966716170230972113252656309211305565534186802352180430495316970946373704683042309014241688378111235282430651067703788033427874416869806955146747717601167213757083355119728829503943722874821796703138299235417982361468100457919588701103950078325107062150650965359670286583781530723577149754217205914028130502941993739748065254144156493750692367277214023760970664826137866650352898782733194301618930905802886004202534606072913981732984012320987268531151999746993344416489186381230858326904187843022203791622025090268665973579098041381823733343320705748564404032103206807840197776226032269520065192308663618974255409390745112250140601590183918850877586765675432568531420154317801837398978579984855694701643325197402668030074694368235221940852645379775194155998211698253086481429952386869228971904886639574072209783150037705845573366111991763449329828713726737129073240132356811155514742878637938757507985531934078253117020923200581639415807256455964603452667836145345686709328280192915862543353586768097195497805249434229414933664729984033643295851230502383329583715892853680485631334715670229355574916942423074687791548182005315417653619316204798068453830512600810681151268904254738282772400393870497276950361362829369233305963019553558803482893451374276292268593175598879367952313375138886094237372005418207298712735157591305124150217416543380851976899100522187709279111657203219276886680660100669146853838036310791940677404400426669452972679959938777911877310612742367609061862493569045998409113564287849532608127866827054161234936553227505362488910996467284419650977713959440530723698335393522936904141795328437163883568189015578172499249221873500266503874150644972854686594003114114084565825701012624793991564041443539884551033918807055483478336428386335233378473345291037664511259186958100303873027330980140859675663798325504870259310315937553431405955421287104916611579303533131406977310741331198222610590208772362940640859078304484774735440714461949974472312071944578718138195578612661076097101771099889722360008130644909728293839606565031304539774178239916979534652939320568686445116120190001835394385034340029501185879340861030398155029993569568873027529384863908692576910950500409981289920150152529534028366425969304217783984925883555315844792784344797598698712175104736218099258180710675596725378651440978561010017298971256930474702881029225712966888646884287292297275190062831772773600505237401457780304209713488977786051579926946201607277130567170040515854331764013312078904559325356801208379690146119581871688323269125951634535888892035728431904279090204227341549379063765349513178522723241749103292043226854585044969217945348306751475063434880689414970270600940938196575004175053164952159919837877402710403785093273458548641031808758042274905937487169049137254804558478361369490938675698347819245023784074463282992334693164177155351372847988146092914237096162184497781543472344421863097070848884858899387827845586505172506625126975406475496623235606053049750124884268230973221043477177938566615452205980664485797438466768399815738916696622074926649485407110062607475346869302549190495018937971813798421221616356460730245056892072071499077103592960631262008587322857551909132877782565376832466724319560613691178906617996967577823028327806295669298611223105877816592296285614423584961369923658810347273864208875107750811413622512894393693103747680554649581907012862886725563952564390293532381473255134691211900698727938223686652838118725378618501602675398502884290593027829867829135348800762448238614855827924275735937210452707793880994897442777205174339706626269544801289996156719558819900253811880185688240526727688576842818711896749996052024858873721527829707951696072694938291379401672597756089862826748519753312198574632262076955091191478994343339192064889136593137369495273683223955228278785863202805305517674434589264649299225447559454558779066154498549622642878404283819407349073850807633332530521121311083371043558819152254322047259039909228763385763593324637706922920146446346544182197679579250151917047772324212716933825072263139308708453698662460859409285346623541513261266915345487251593997984565504114932508390395140592332516515554319330759000925945081129930725896402459745653876925837956258243381763348825419957786077323994839613622565651270254619541166231380060954187014963662736339752808267629770847410231520124003888440012219560389478624919000432285760873178397641195744975881279103540933891726331169333163203835735715115764354399651407115896999877260751611578790640061495148836717518461160290014961047932361883720552819593955915396068304322355330816521929826684207157752053974269834040417572155657760097582577108061921734349230202903903573272349850838852409220973199816964140455079867429533986850580428745880269648895180014478288675965728504669739239084379121145230537941498294299092543552259271844056049215292935239261300065524279783173601079511879989644078608934786243042459472843082314615996656871146959510251876044216810329113294213668675218636930353778355435603723641398270046354171013971651273452050018508550091354744361803660689475960299401146296010649824738770321676696950805741706045053341026457350004469312148942815850706206473829688084313630081145778618460294404813824945182712344688786300594915100551094561502503057966840772503253337304999262811281550798460365634090028579455680735654645405611452144642352897951562695845498820614231122685442331076134256468106107290163678933474468295216411693532924404733717879109482338602926366954078482117098238242819644978447468113936458699468788589945135810294528773139481478485977065887550959984758557715119735104400469396301460105880759174048065887599613050354008124151429506585622869350672156723652436766946329284074829205831931852874188423451821695819452100886632938628679127524409744424509108714208130386770347871275574944127352878776223326190640156860358755879776204953522938163499631976516099156156550582074488306239730717340183982345098495704625952237399274466190049272190642977355312281352364114826063136975823689337285130522490492220526564586218287871082600861751329495106653768844941540678281229480884225834623676457722553092066136756497653487588213749898373325785691641672797366024848626306693353164594865543522399317922250192733469420712964366451125852027233029464724367060114454945739268087837670489542653177270330231062818309835024530529296994136550879452436311999532301913693420295317035176282215683370469478724087161034610615775287462546388174260568882630495612126376209591488259687766812527492497375650876194678811773404740492003891633509758397785966531910965376053576532920195331695329257425419278057249859160828185531762854371688912102043309504837220367711528040323146183061911176520257416366386612915884661065698948415887489442152488548736346948944941935041969861898984672152687135114057030083347136501391657421393568507387603215935641826647998415047576491972743673871705821468313480866557504007091983293713770618498341953362945618421252624645355563652918757723788854561380606828424367689262138381497406168677179528547601060164053096845066452255644593519707972107113078966342526049006239426735468336422078147857158462918832205237902177695375540690798848051061206358058473819737924473863086137821192773173868996856621802217390207888257092033888087015698493023281536671972119144879552189432731242637582519093197075982888357919235643157824402908128863586728965518735120325864447640526717329121259402377550913738444243003658280267195241184140462423836549127236901626230033662385331650180668351901726334255212112438355000856785067761931513946558999915099936479517190420397772007193418763633745347918618628601962197289687354618450131879103270430493127261667862882586098417989570218241989745770926621431977924189112057994282835990295463603999514901183033013948749638732383602697325519885952807394181784358511513455658804729734001194178834251061071620107911028153699335630809690149853871394032836068081231227699761155344573204319159389792214207144393862548067120985078789595279267870077278465629035110766898303261422244444900336447821143840541679927317811522207476282561778042622701322473546300671082240782461276810216150485577850637862714765296984021913303813323056046648243628136053384630292422261435875947967414686913379294919293307298528322303559979914463046873624593943725889413221968297159863979024484984828806951947741470857581090446362018288391835975765949569088592451572723028778804495052226997758072343961870815275873898056913012499919268701786778580290832637571838170315138815495735436526093319750383705937352745974462873007819549152551310082474903269943892264564079272905686087079470402576720696119516992551508657190907253947104700116230112692712757491204639303823376132522150739167247675981930738437074677374358944899011168175071373270658049543121062880586696442539990636295489233102980377716438786925689787073679537705786508681205134472156267934684477251892060465498562599597061103137722715704349901644608699260538966669476724894636962875563802285139530841013611133550081101527539692606373607969195442362257687715942177530228228119550656359467634610065868406018470665198230625401266923242247171688267399030661426155610912998347800746842322465739889993572288568840849707937102543686446248881131024133696644844693254255867023261377046860105014185828523692628246725376350300903381565597865826299583130005820486098161459167774134529226610785285063796261873498065395799184099049477270259948513915756803367560615977075752077510715796146470616817907876648548033887681749540941302618541957618397853552408419326311339714627484251338648608672219201534805942001634366317171195241036658975169105962479786591540792144614806664898659969634585527336003581066857793537564875674651193574840783169203297524798427157128312624308200458719568524436507458549585093118660251306525688234275744187806122383697313748695978585120129677367554047081919401772359809780248198724726687848817726078852660608923032778503386638493403848574612256266092206770193937794498550077751531043251566091317967734661744998420065155493578767951341601156204382551756261902902882558348399077284835620480868691904962218709178649291806675155997649441027425666167851473211879991169448187675378337107885331690292051066805944799446550008267778985462199495826744954383979946697923593171658244989064400918155555339889238726961709432291668282530481847310990061289097448241946438465784138400734845280448865747217763825559168947143267816971203450552063047838657042323461241623674128778437055682220984989906035486569805059384215263329769362914398773260832599168652813360548324045843899532965136845099241085725926811674410694895972768484610644191452942405068528924252490717823887201305317378591859822817825824752232059918159755784340154217462187425479974377380636046900815123473974403122941155765418870730638921665090563568920783342597474045533078456005989033170624292315478878794838269096232622275352103185400775486196416153683845806325738518732794675298446247256842792803900290607124117299542222232743003917352224089267590180177072092717813753244742587011740930506779297108373743139821887497705701434133115474270554658717047786745728969743173043334808961839526562687642841252939749546023763475244792347693269701750269920135435269838693567387621027429002658115135828562158671315368846063002915968033972053088642030356188901318153512693815256089744187557134510424160342179290710180107397217082634050039499709216821266276633649226033207989094088580068521671648660698176995654692180320607880212005010308167905236880517340876286283295381751790795044523821830266858225369937297536825140392437709353295492837977171565228380245949343479662392439508813383309678311254838133016267191424406626472827838663040708218978511876214565629093809314443355918082595794390712864613516626945387023057996434913340071750771967822151163290316137293136558195224353480153816705759173416950755425551950980056019818873283037909328400855043630586883189013613196274895260980431192962771927257791747127794509345479436569261198030033121538807260526229586120960885545557049299079675994393243623758771189945901668924104213769749337817518845071594747121657820129300991048673986798716491553122317584934297829091313240360768486917431992410451443965154878898646546626082180535645630382736775743833223773381318882274488131862288187145904160654702792644746887659083606048072869515974987332395386491927678557432310700654845990007489354292387024098597823087611382452990269433089911464063099880593453893599886752662715652130893052693002595651645823091709252493418358026196523022519812427582897890027856528502741984956400479563494023844722499700728247189034012857642720198826989373200189455146323125598197529368453959639044384252326198381872029826978653383561830276122114784312057948208347805102272010536999457583382169120843621580288708599651679436259937888833838967442816896597302647230270209300533883637796288034093121967440533022241970781051436775470742846042392342322964800930460744664842799872654597566464451951381292291592217640053445305570881694771801490007620472886591098807652218096732230979904029547578295990473803436314902334974343593037376691601705740169858076275733320717829890048897491366484901773072530852212134038143190691198157846149764357668094809357370688600320971297079913522229652453705614610796150619628784603285281820996878159167871034977966554696526762873267132642853567036168167533227658085973923744490908054071629652983525440147543520889733325966637016845531000582263735087895554265477144177920508524780912740070940510153813270932281641577192146818029704488036371285865651017351834125969526309838386760492432374641425120068380799844229307706953948812921839055253597656129255649713686618351588183936641554605180041518683217276403574853826272486101891622851798315304014924583772177353852601808603081014521167729765658884128889427243453039636368102487699933916779244383731974673592667132328995838733268715686398862509653348780372745715090601807857559216262002444503601601659747102240686018767717423563816968207683185176600967087884467977584240515377493230618795355758996638176508302449898450084666102658217150104384105299278404852715397760624476557849381867770699417094523827544264819370602905943604930541779279884983366075565336025708315678284419538162180317905208046737219606092540852927363989865849297522631168928573068267126318630600324443864790899117486105072141801716093036796882931774239556053707637696435010371230548449192955787498640003538273987423071278304993397129857600047199305765488544720770910337019482542516822769712170312888536230759894079254390255503071724232217662104644824696988869921265362140488473169341521839026337560156761258025891975094203179798906315413026250120135319118838378752244972353215397661198520497472621239513191840353959628613323214916714778006106057706216512620267783845982305815111592664751991590748717307474598302412761205528677627553558324859391270786424485972705442615118646817692728619244666570881854463053563307253156812703629635647717858737212619297330330088923886151519804957316951452754888926480263183554847653527932246413981843825758690252296379494159061232072550174923748919487222732854704331678367592223689478960349435927609316269190844974983780851702294844984316223357830274256827564773821859621698225841552966042139303406233709994951394071265593791058361310167368038872216611656755894303548896201107161754789516055386296231391183482723609045209239707808223444870156913782116242630169221872419324676706194987748224012686584728408198428892872338237298956871055669387717485796264971660806042323320617670034178915733804583550425350276008561605928561641251858631637042296207009312514748345734409564591985542146802489203878015609718057382257449902857036666680893591219708338211065347658861438511988257777518960710039981866605314834394720257233726576915918115346916579862392984537827957478022788580744664132728055473305386086894561917014493558055481206548266196491969303303562187514912063138314437318193071316877850245953674919377396188131679745997920849741050971654023845399053572297958394742208166034134651621652956977806841120558940686108965300216897696662651350947215930988708471989041052659106085772700852915100655701916079531568559736375308572121175572267284031411335042713925344918902021144626958730408568863728593096315657678484245350466033248647813246248581110233799192716783635179096711867235408260133713562650657918321172947651789611960390609237541769553862488359749576868300711134773039631902477086283064229165437828664945942375156175913736689716458691457179385429919877603974238031788327954076781511760224332596793136455680757913598874549523092879072541560671364896498846419957257581002494756292335711675885235120429776934356996009089566898213843856206920434412265664567207307800967780507066777496207311396722547197201222138872483835442726450099330148832920814267821027285635857325507211541184138001000684656396546266877229614204130985897698649512947864363666601668623109081428407311891928454465853225608998893924638714102224418322445764835754260264253033480930861529520507790999786896140031311106934471617578510978327278030234728334917019590565256665467355484808284524610148351992894674847508729616499230821674850159449776070143586215277983135215113345814484849367829802553549024486716054048455565369961478361836178778487972260550451087003701311563280372935406849453783454531096484664978859181988144000887097567328490932547539055843946765461198044920228932505405136511422173363045525392439776113774275845537876427744829224814666047364442851575919508469373459003034639231148477798443805194078059059370985931119212478098843318484796120410337558745114253595446879574302514249091307214882234922835844362420192233369032879527762936275280296246044912940393925714389281810438567810829523318305937631892924020789908489015731869362300154059834431163953516033636969981228737522951047588493358236084003678137834278131930388674999281079070427499128924781395030539143676369689690657402758088995329121266904226970090552886547224319460472012278068011436866728085161749831816898147715724919037101657756075175406058846840006344047067223472665989437511517493056666086842610068619545018508321125505882304525113405137505402281558939446533996592473435616122337541322996635373234315389127248759432209301524491364228555319861282478995456893240019815927555106086642567682853513161089422476864332015944362418914453137850317485455328756524744451252057345632516898332350171264822935615035426634341142543074488917497474249379618026043642113542753992664506877263314547187429536093432161372906936276545352434420453992590269054183674554639627979168202387115812625067529216208901681655594070881695031493671700474948531216919822105244732647893231271876326236143432225589875293839803996057912272575033766551744931399086428550645024172121133973300736952958136783539289447439024172414467227083123471891874064614006889039119618407223796172164262401640410944978171827094882475793991181060918794359914323502097753598333254035060680512533527528090548044762626811350138178251907517743290116741522787869048589480037402215624933141097528428626773335570301053364541878131624061514515248661588291915973357457678792217728529547464853052486222564384037230686143404090699013042149773189737535130868284398368877734544105721754185095829033075884258498421865499674462166009260181221648507657776566345962170348859203654146285165500577707327053811448432022885500370789976525923359867436162592951390998060223109025309958713797813056429320687470008258372069527065348728373772567451827079734980509613488642899431438935005926053968557365028161364649127933473968081687038325161417451218342484959074662532539162644392004075041063347737387005202773351645564144639774973533831684497701678262158955232734350243172318075664706534753221175246192737857764752573148274590006151119964054801723871421170482580576603885377238067877749702194912220981446633926006877197101068958293941531244229465043278609651557143073641160508040504234404412987318839579239807250541315501961491492567071195770925983800684493106604687067145192156822643464321744380145277404922604962430346870609901383803358268848232934464372173118574883359211079977315619873043016844985196429601723858148532454784461364947175896037475172767827607529389457059789518352911429609150827862619967173963163411851226609238336710456976614743550238125553213719282806125196082486299803740979560001477060783416027810186438852412704881023075809309200845795681888491282734821239074937869462317863851152715898252627846204679261581544838953124555941930945562044225099636542973963229553461457427310835261161097409576565971603953501620615246396766141555231406244466581164179405522625992918973022314443718405432721014381884227823278484261221184291940960994694543120521566030929463463024900104924616039310466387983392808676635844979794628767890481734500028106073165871575489748005800345732966368813955246048388843774190620198721017141700691970572329804825516931144438658100695959515008432712676020560864571535167463231775028592522681188650423057893496767241059193538370142601118890178129615687892320607735064384388941590969818604032326388380956784027758853051848455379908911836122174433965493025890274549256013275607626481148718374514648357173349170136188712829645191577625580430704731959954366116635512663761266919176145153279748549888083103728266055225513304769148728389604155033371030852504391032565947322538246246754728194735362868777266173025526356238933744645493949439977154952221757946562904036811256406760079496280664280988417885649460094651113234398714188743241613277567067402371262892958843029405598987186028875975036443332229966729323686236616823422708710021085476083413849952024093334311735446843410499800283824884754476619481799029016766144886316417136395233117113902056051873362083559287098279957590674906144764103441959265249892056823228776452421500655120164593170003801941633847582389396419964153298088846994495507813209373270512677500808744927413355475820449971273691957570468942945112024687819890609615953479184720736033134704990336447922192917955154008938398971426760311628119351287335330851476307818127929185045643316917332684857527206203402551791211394891207037968917923979344521965761298091698459309194664396373090957165072933302014049545888915885764479813470301737471617181342744059049756094449179319588851622601306566474647439163495884094906516364591046829530721485838208963376997506985476913401731583707019895803533861541449851752284756239896130880564691442825318046142429966277587923892618625154454992085875588684164539157340416698256687117010497733565492196918500228561423901583158596001734095643223304489032613576927639326236902317792612761303127563950619664548037936377853057450526325727253922066130084984235953694362998226659746851727611129696364995841460259538819117241012323606214564632479774432805188280760249691377362092509678365875501010041548388759800920021644116855483115519559286391678124504346079845924136513103878360614713643717217002422531369621929103077960241036127106286437622425991929968520100556832245056530669879209581518788414508743247384641234742251735424551057877785485925398450684472890271300982892045680933946589679893208172346366851771096156864839092406690750769676006171961180897248781950287874809240243306064190995430803063134321065495749694715493430468568578322751268871618260913949717422474151052237105661080553265108842218430721107408913195653407887381233231784122236650707316441296444792924744403880634260842517831827598971447533075950509756447335200737626544076475500962436856543275308179983177877633336422177293363333602313413545987683654612757286383171341566561276024403503780658505497854830387134391137383628629548621127308182373691709578095491990773884697484758303392355852562126764530142480736393262063748785707477365370374358425284436363625462656209699623545495112538772310842403739320911883218158972724533775407003193514439939355340208122759639683311174366265264400413401627574667701928657935520752270963232057141863841881193962907496505934817116297930526316660716170633059321458455393634132739442612414481885329953969604545865367935345978978442907549187929705845525741708126308322544208007201903174996318445339263364864777201267167469108659149976697111861741747054543029927097175091512075819955000993227366672685333389559872313339431056499292381648538958263267875548892613885303525716191967163195008609874995200588149292171106517873125765111177613706672077515545261318928843493234228705400608716268320038528409722497079864754416234585050225186208258699485128930587294008667474202339149851004967911304062336814749316969182742600843719025163846330923072650661993581986528052240937502125984734702630338416699722874054000864532661795662309531130414646257184434555899485960402840796109863369976251486998252759806191708500749918523895881723233396979792700923043509082096430671511916461909446994835037013458955799939679576315159235727539163904759853586875377999281429261192386008449514246322727502485022286594486857553672036420266092724751688972539838134294497568987251681755946892075323774868956095412474331051080996332155518327066557234651237851431734479927825645890066323128277718527525714807023259583001239751698657858644463186843489967455565587405486788203861922951255292466101811387841772323290500871803012608455087585754158425214100898273020111232695175405273378348663205854034101266652780702745742103281459454173512031385720884279244028448835109560522662570427917543714518160346380356720246396545229575875151807791603872474974765626290955643270769499101501762389656101681001213964197885133835085979015405319392812064764638976181339715613527142875586935664822952035649343667303137069558822329734694842787050692945306824015010869486482159860556620509245001198798302878465256536478132231187193680747608298144415252040488526406462723036398511471704113203695956472446689091487867177904951803917502895048475934348811628280233144741322177126427305483369028069142923267524427545229359111314624038925011882931792327826217650325332618792384226304746153024328064464438664128127823032863885971739100594086524846895640825652760334707546137133058268322028208421741040702741985865452139084306005220481648125394962832006339492899406686685072154662069320982892615751888870213408207819209388206704713293013241587450436756819770052252064573268206322095640094859338154736816628050707528528881257076026303636650833826145167182013215697360666009178591531976213791562729386408851769980265312858841108066039751939597444200265124412652894626900192109573882366334108562780068710100525968727339585075805013967404788947555224170753795760201038091061655087096126046788750099363213071267458358225479972833207892714994812504788047764983103950169870897338006714382799663347488833634085955753206181542029928988616234203419678441941935529199543500045010167924420600027510258500395888245904239550200753920905580791359765801592439074614421315266176857998526632340069855948573713957656249735509483556837373594783368454270433246608037095876123919167176169016047478697173575528010027259854350223616151014618005166778150493156129818651361464665461171531590777264066871343298571058472230643409182666771763517478297782296177098710160375487218037973848718421726042510501422951514894123258618025235713722439761245744422253620257554282825381955091131908786207656180053013476126417504775809753013912824314238970727760510388346798021134021607194640841418706541553963136676356147524648430717744888890374263409889136734838290412097980998665975927617322665872245268204859965258143336292039145190989204397483249943970390763324457453630453272988336677606027581970740247339986625635579297956243523555583111738507352805401359827716065845790733530424605518802137005984666976695084282885177570901387355578305707181399989390715911110948972908830167228811777557804487342171091065915270231232240314973246597426397458841050939850322813052948483737513307630374608107740207757308924801090787946353132450324006999825976022120007109206058043736049724852036670144696824944002610049059351058530906167328743752696331907833041486056093444425229657147927419020383086320405505165200291937164238816231438689370352395440121291622880630550871290730518487041652595765656110776006300575860373700134340505879740210794234845449819782909710062058580756429260382945560119195754281254616508410861371768110353079492839958971363720473203123434705554808116454452099720678334975846040913559414166411318249151714588632393403304479815009127581152846555710713047883020019377799590636732094601181336928679862492329111875685353691050635496016831792725727199771900715642741466810975700779928871480714273067995365601592588251745889610551761443983242067934537289051207322328454621190518421991399836392949074657652896387986285392643375693914745579522048456927040460785751204947561918861790858030964093075620243482190245375417375236192660857687647599064845597805607395126863180635154105320839813100756460616963123074924127777004679494621114291200539939652170833571967918263808549902912795282192028022449723317456731922612046489130036902875506880810477539818738753846380710428823171284728279311922114156063413215480713138869119430364362543873138899049445473260651701484702469612131116795806556174495473068809960275543613138289005753691143006442768869581846965682324257568621776238667284090903088763051796140170124222047204469998960333626735877201796313043507313606401857439425102706219655909490956079071050477945888457254693652125040937112903971709357496180810595060719468333081316358187073170188298356441549610683047055752863626354774853127062243103268216275722690333578064461795886166294472161118343621306425225376754818446594654904811374985675902827390400530092416606268553776777612661560888206899140944887705240622051111002744797342577498827875722805356005534216944091944454711640265222107267446723304414327333033604092549012371660183313433832034408745061034531504218369031957481055214838805029367900494087442164914941547905620669941773703533961421380330151199050135923115862954377359487704897469650210928662412635994606501165283335828393495699097156692329438378687461444916038701861544432441917075625247660523758760171453095957725175336783571898903832378594800586908986453410179122486402615198628881385743660358433478063791604924940891564437415156928966980653746501016205052886406503462252903063628032532597006053519710174717633872819158027372074629089047617554552073501151933658497808312264091182275556744401588276650643605077103815461377105452696565168410877610676267725177963624994825101737288492566261228491758663699520064051781821623112338010590867587126952536340772408226900874640285861771037662323682724268232541135430837508198892719522559037623238160954615048737049350752345971809064928642258134684083976449705294919395020390633250116323005795188707201540958181553911994298046644579763928564577240083513602189374671759193270334202808900919598608448533320655521942597259054959069012774216530955593208188156756976698721851898739555600537818870945816849272779995366970940931245041830228441675167112572127819591622735443774684668904062583815714991092991564732992270255020557047391856852855535094876520252221978397334028024666774187921181861596828006509713485086334743419760230045947689087242159331258333253718265850999524132907443741859490200965565293838738582172463271648236083928961116909555584543543407604524846586535733874369707297412009437749364240830178340122751201013304051982639583079478232062349815107190253144837558168147064277885686895581592690696847380983366390143405373123833651772820897006785580307242552112073146487141233600631174630330930841979535621655574034843132866972254454365434315383685534911712791695053868379655091302681712285307381274598680386956761817960258810932291369002582453034169986351425782406002919439559895008574742150547587714924505879026336189050324197130173285834763447650934652749672090745865207392728422372933714561907985364275803859438585252466792782573564625947856238413644060626175118093832134917011907963505312714627501383007075025813088961432059211410928199577991265239731003578042647012964215776739026343545424971137032064799435773765036991285002347363643260552519625336506615907737553741633711912428718903779820284877028274401679556635183338406556106530871747203808542672155927725147785322813671538382799067953380539785636049468482934078686721127273855749217833840066945486875068934664050187470522960409795866587345935215363949382554825003213101665248082820045760857375616863852432733308159083833303549131477462944273030686330334070819533112128101806415979721325009559018668089583042794656972952293237263611050490737107167629498618327296971421049309091783585200096988377550349194396068751367496128248480516010323284992983097853826760193831960182715077640616271247975022499862965159931217800666045610507292009941286420256447560572359394416375659110532834514379713837161391995243235553190873895074903941218037750459479472418357814332844920631397153878068750376979841210898400810294085626492967198654656205940578660885915091428962844894321089083178776785961382285382019392608562500527808320743479017322631616132269272367840574777269880374867878843751763876173435075546498445183847425470148584021464166270210894507362855736769619007619281790612971063935009110008209929348347575795844610698139548332059871501217134338930010877299424588763452302832421060662846459160065863551253697858876199908877484954635556244927629489022046517138144630686703763216484489123707106238587540675744184836583780465669078236845881482518748273244088368851948116685406487928076257346343432245676178646053007718696062425692111819240170640191780590516207030507993825697879154334559720073816225306675943130060351549846747751812998053800641606480982479413778186756007853653770682300507108014555373647876261241790649605325068851260642608754744320672715304118499464129895002041912717121539119292353778927331524826977458856801021899453020195153404284871319862188145648366821155798415607203767282383819510903940048759505943100616033870720054754557813398165839765202049803192229463508102248458796290791538186818447298940268180141718908846991587181948175284949177407196498760053962986242788168489844291735713881765541376687796070561880674380199697316279832892140720062424611864434100191300351934550602579367199478455188561892139100278137842330354920028002499503035843142309313292258832796381967761925645139018208286353172290348053349882512961622968248541344333971184464566310746662770955564585996479661787365155125698177892937938521686025805268319506493523274900889989433761500314331035054607462126140553468902637530906890518295811250125188618858367874246856828560368463611751722187724122794856023030883884527353699580594715724552887773113163703598587116046419178406346034025232130828009513898833560762077935609422024673898643789679917093052915766364217574556511095575916075542501038287672730398030875878484954480778125372027863898047276603015327574908388628984657623538159378591909540676768484976678100477044885139797988385693348871496809929613611394161904374867243376733387854150565238682239781416173400729341998892385842710014892143854875636873188964904279374232861904049868145482955731985092351810382474413680435909451906709525725458612219457039736969838011063306514718857605299710103506047827088441023995394274732908397608217776474524968756928669919162606007749104857240235837389816563608247530632092228836987308681163962419057279768473450676283337953511426166396951415497659436555197893056123995221481135138038956259445982784887974340984470031810678408203218756400092278396914615226717759682043883180726190828473051187727805359404781899549454732864335954030642452963197463874177868987291554049645521015767624861623045375743350075447782002767134620205784166342724252661676871391954909919449177059794027780165748007686733400538874018408255930755838417836340357498525152939525689029019685706859633715969469653105894572370749319953680108004767588830359889165771998892642384019739604923402507117352967548174618435781671903409229577156564550048208404824041228604487199701966552869288821582868270204513282978928711455180985106687837516605142193722628025328590809015076014827022422204936817633527619467388975086248677682963279642775978122704858357900801090129739486503473209623651236318383123028720284222985827931440089737944243234425399338222445140523813285267393819849365408403737429494359164682099397062122672697266386070899150810700360721528863223875671845909985405941364931856347278975262171432963509273997450615048128599680573703271681558761027944953257696492510208802877814230005655778439357644880371566530103655080002331708284680963266151693683412223101406116080292483130955542974717775476449273453393819102391445222433682235586166385013549510507683077849362448005523344721958345376691704277888041363333198059382095449728270540342614843067990336120550722348693875778649136485923254938224982250977678383022765134850833758448617504450627755596398830423235951475396158982371704009881762499227103920653748769272290323197742203591600012853387411202237202313801543786191749158947524695583162682114918251260259781122438990352569985646176236550251174874604772656111856021954799295979963748393912871920309372460417222406637837054230249953681824320434036130289331322356163222095958393025045747972358554268925340951774098957298993247678593733703650932939656447368608354045385998222957896503671113994831210145004002117543237453387474910062094611622492633221857878525525180399786751318268882024717476888799482593632773853658026802223247325961741569564451740778996797100548873240395731211533531601864435615825052806285418084380019562789234551531616400487305668824849644470029932618071093415699647884614833855591481807077296029884929509751984540002945427578196952413984367362838827709610392807826811432800999942161999584658526150446602728474281791298004870878694106670161812628182723450753167286698837950101833139670496694864663595829037073548718115468608983015150161756997992302122477627666236770254655851239591783729829041481920130932984025230845250236695406809822451347902590859944064614326566464178778391150996926234355504766441240683125287469958891834115301230331765351997995876677690538650753192048067142861177927805245865080732563709236519101939397818684464166777465514543421876189806406068985048653150457791276560656441706123958352596089802307652551437636507028403272709363012051042692586149191063104457092230709742200018398866264490170708254103246034755803406331159664075575898330747252823933407502867365289801747720911648498959578429029876891677197323072470805123268056404543651741012979840974450323327893501202409737066468899963401715809480452348938701839668943928882930987944421581214071033595269017365475036278824325306645012139297255702891241304325545503254016139650478986702681519903039622990331366009896071341060491138543192863602392498886235028218739904384852847093112317907505976528322471916604645636468300347136589810022281366845195599264408792164115915302693778656833399168562416254294165760208135170591832438685936115775567766100059121101246894986573152261958358016663723605676807482118342031674856747903728326842986093281515209095361253168115777884767472596329787594408234868421867782627084002523753048583935594845966248357062566961335334063065671891152400586589993915655423117918498343324319932635971008246102555745641739002781718846294706507039657235615530803261281926328451303637287622916292508582328314412709124439936912928242695859458438916926273161517760469304101995481744118592181517987065347177542030539132377190489963386330972088303742842945711432563647576027095048551161801446912142516955337270754202203468840807572566426993885004993436834213687148761672642315073130146574654076840087998371661074965543557397669243704634628561222432343240163058281136328612133375448818692318905262187728349010578812863829156030613644005268656314093149397107873169677974498554948930810601774772272031605838522417215305846357039841854396614214661328312078500976315375220460110230936268665682749505916028121011105146764798335618699528574543275827156936457729680071291420928533729735588792325436117269177935424701358432415219979461896361796733769103371794547929852678344766015089192439584856213958632736114485941625599439732249957115911793088478384767251734712078304036160401858815889532508812995990850336282210803995695340053610516433863617493025244434473495419706013166127899920200309753453160119609356960577224817914832099119062357866622463315175215261385449389264158795613290643298350369738474752187250261301751101653124892224545050822428079283993521167440148598295493532977605485762556346149929682246314519933277635749900731665883964921142448055306068329962992382852583165524132711513750361398914916633126712734315781499125853149586195249240962508297755794307789927845528477194677934105537193304627960408506704844696388710677420042636087737302103793859711168176486775047052925651750054748787983659835143798280245636084768480044345763194955784891584313066152444278196144656831868181280250923951021062092609643632891499175141462684017700822327706551712490911261980268333525949914312960316399232126594948450152342080084503241810878502955610559503613275773896775757157034487963429740586638126796224348901584024414310614986568693417297482945866079294814632723415775375590850006195077502707685672607964746310591943842551419905581211561518288486933630996421524221510124174277962822556613112754419280259919169519470505557582466648336614040849500944432483762675732843570153085076970139430696673094595566132207208073888517252747807465150397057184334232007514073205356262025384847389632728330854528630681411812254096738187956062644420487119305160559983473882738161151847848561247602170207026923136075655124212157918777123756860082610586561081683509182358112922106172467599391001735035446275286877358390872919263118270130560251290278799074564494556511668917426256517497145665541474239577994746519747673202129629100634279111450294783050074812747545499216705532451801491734281706088085450073556051090949675098459943007116288271569980770610974337263401042687232022660811461548674659469520614070184077375977985889152894499678559287558153402735784443067284093398609390510104162515734123517764621469228311828831094319205932570560068901852147834754544417817552906668335054754516436087800130415045127502299967681824198608366955640854219740060615697671119829231019616370908443364322464070295464698672967348805403817151418067528610143265265139645866039764839692718676069537952668482141220817126798644640820055863990189166963367819934474657784720564107134389351126698089330486603067399851314048734703356627984861019646000021369558343724400375969656122883885596611437353392213341308090289766147888743881907726354980654109365453375881827478417254041233715049808009756670217624867968745001614282118066467844841235562582665127064381738222633692114841413490001800166556531728016810341952253976754516776283206403678428026192386237492449224204870177444901178338273425169151678091031397897840882600000948018934069464880291677582801480844982368636619535651911800194031189777034986297011079111069128906655235199384438764300734125812134904545078695428386488990016727157842289118169353880676352385064448972508398167858544142636532326522140951995883667214970265450628134576093712055814969491407866550970013884211688802211338058585805911605289746660120497250984267803590195132091100709552411030359589016437864051447679051458036047618368527925478605199611809295162239813672784739832194901109916137530928298677429994843329248252005652893574930564009562406560962950232697774743351823506386876626914613930037412191893274174361179542161081058063216992312270240149518452352468391837879709114875553080827532438743095591589659943878047853493507373106713463531038895296075686100211337867514850248520804885186641997864002775195750814332733439855299805660587117286895073228165691508316046013114180655424329509603983363638058620012610581962920338735047822947814178365734390292986077228908155281348911727921495717959097380993770866231321140624487754569286895920620327239826218052318042927537617190102024008493547376021016063638959872436016446254474044895314484308481599510864461366048882542755677129439382710371757886804964565416024221318113128932867497906663950762880671815538907018645136888697234354635189092547917368447604255802905015198798621587813309427179432587214060330840483674823616687055042962359830902521909461027282437279627640335962357835253903926117679650352420676276966159031093479369705588500734755924249425044408758887875008291716794394026247476848024255661223640295356940870658667557326950435797553652263759425435197019091209677174780080023625024860466070650783869083857383057353817624566027334665251475823733478518481261243105470951750597941548787923126685077929657068884020229291968409789436232593153213908419545124798393109301660694752807217189223013249102933086486592184989696854516590701493237216964969879969270235087954452215759787921008569863197817751727536225389708662600376956794233022982468428430880400680516760210035796316154349262567714961840615462635690293225833636892402065610686787856794192648472225155061098072333395775987359430103340974942829775182940733824505244430683688446142986742341688358026499885309255284894629676449690929857845700594163330520999447709365661906431333160092469153290975767782021447502921455308735676582915260209084319410088353816282230444844802340886177014767730724602381871977894473078901415531760444776753712933837145239279468271666370048551291299739805018551492908769840931461257989507611092205147015893152302718675713902110125215183755415021051721198301571595289445509499985086077024031700898186718964894076954810457662468651095431064864126709017459304492383634419519647262648795494928127881018329618537698635934596560717159764207905189980595084756435777495266020065587252624802997585519461851516631678157956180165669638491163961212182437918411571736574957257016980164142929838498147395624668511929435928505850898030574479505396128371489720214554472943687244944924865325312989289742844471906234931139280388153020695197894609109585946994939244230269403157424988577934266512330649034603973987698082500339480127581243807350033891920617255122518306120631577885319518921751985120345379886239249821980376700000420880119924434773747772670895044889901152894475259753125302864576714116967005461073112217040494254034554309270892894600274894058809535711552404478257793142937510595236040398667677560750307622791045955637596461410738442038448883781700352379773688814450345689258739526393028999285194860308563353523805495770413200506010803769245052739174363887627377804538225758930460067073690855573138428786247948971955230220898895393899280554569214533782372374542916950636897444419300382606874038076719888221667544554182015123073509731201134497701647475797941201695377141363599592879640683517128436420423550169800035686026891989341364249253106638358876548871557034824314961705964974395246999626094917193003692807077847487721953901861617848682915794296622729806740531801840800622256245814748810995075703523197987553886678420770950583176981060552905156616985221945487902203587901868627954005713017552336742261281047788052703814224916228434328150637086586349356307174599633172832028084641644329138442834488252212379305848540668458592020642585805298297656204117642934313477598414253325023572327617714005401295216590721966732196591453650255580899818307946589409269616069774731204182186312738662271376128238092125152657224440637160622643005328385996623629147741806988866139520342658459697601493908306335103387313383021441469100143976351599338699253543337669368563148745682266213579906839223882768165979541842569999873305501387201493013988365091154264734000728302461450869275868444349585660888661167185058082675843438212675197262757009189274619304536577877998575157811513640592149615816302880875163701853719946619002143486104052467574932078355999949684467987767387857632345117769241050434238795110182662585030091889963338069843753454217461731011776999931705468820155190430107015090148963051522602165023196896933880022044469242366018113765456112094991027056539305367659406431437148275572655160402541625204519542810882125593068964754939717207746547187835805652666499275949714330231363896567349337057613520153822305693427714205327604046534646790007521797255452527382776182266715087171625717794992642376678082914437519944041033218700261870412730121350985879485428247934877417547583162094814095302330963712988004729676815030192414351644665964879282205690577462313775241046209790806695043200094479943348318929755416121710848447960436686443808632614391715111813863898877374063464024397550365725636992145481716331001794209664724966140317829914813553852895528666339623575070281114546745689061847052410933593163591451993587926725201909796566126176953986919784100745218755864509988468411965776659306159400379548652339670044794182246158367063068745678939898455409207710740517260708236376241516213190345609384759851048889423071341720134128092988515089501048955093686818223328564803938700333819402588769444964407409623779296037696008973692447005304162706536741611986160371524179510564931755474641462636968091738275144637989026153625033538268055480674963696925591689276828858851054133299970502810713418434095617208095503566093266394476108062896760749674962679429734403728152158810419327859732027472942037171528296290566670742010509473303955520338849220635012687106089741482242752706948212622543855874485058625368245494611252313505369429527927185332887754572443016155348709011731267119352859808847200138436825094418423793355115866478192270228187271430591057734967181193364509234216168346984440787182759252891812905825653129944421155516786350096030447178808559173390369445209104227287939904013060387799158950444373539611731156121405594316767589602648776399724391113443653026624662629792145878514120804730867474549579260051576216764194355631269393215384388293836967630506727557743810501688920572953566178941022145509938673098662201738982588435846398617467503408098474338995208829725589210703812846859121888896788996354991268912258730298318119026844136439746380427631810543958804976526676984634589564738544045936705471383630087310002015453856815294318202461906819201555369273112816359473855572520546065589823760716382045931947847109082678391330432844542947742049875402446138677070978270718986933407002054202089335918828326989952225664927981029688007887042042427886991939828759180192539661581085454013398243949681062362390748519685947231109740688459805210794350518733909590672633609812144280283327054737707912786222122133617048867682359677079200545376126169934646398511577908209054602123460279678039023264672389130291713782253542991362424947808120997647451967992871044911153913357404430750769267751130972667028624806669825457262643652803058269184553556557587011332902663323950207263587394618603282578594772435989148712177713256170885041785288966372512993684833580510931195886923416186610168930485174625347182591823684776521647984811280715646353765094153298749739948168838469142979010571523223825441350569464574657106907465114294065945146745529988208102093428093416509817211181776185192155901665744116882817608934757575922560705564727090408833065552995250684776864926641853698938328543869490302942137181202826578030521022992412396079561695827679057200603275060574806668212857447365881397339054394734908273233283462937737735481740242679684206593864768501842399785236067939720451367142660362852934834592385809010021592764870762767992336959898958087891579392120396944127599005778533194661229090131821872759498089970208323976479469521883331913963219170558445755720816206583559498991342776937713161208874003757420999414303515886585053649740634820014339344533518726191597816589286400420965482196001148053367167292845532957685585145916120293601350826006464265942737954548161526823372630297905111789824513970622953765065698427079072555060042820869241560762034085175689030068562431334178727233935877444318716672610493987745791616531854296785030397667465894662327567025576230997883979507661914729017754939990746846579792842582365332995141793138527801160811419379916540137600040206707501001189797185282329055035816226205980813930407719801538102826152384618980923333667381752383014006292371367560035158249829705563447060596962180430577790834240640231778055234841105635681791935543577810288352009364217480116995578909000427539236778858928450817893982069904277596973687019342277159466077923083230894330070674491385390101827341109335852165512705048032167741089812748560800079597357917135297971553078043030796805595008376837619226457001960010577144817054491560828366726359651321181268764660476611526788233602694867502699296762480483586670376961611494479076196665438510266419154558024914213829681262767212620217149886940140093923321987199417983198447559875210090184025878995225492505314983069255421914903567892886616759801137486335851122060065367333058901721623266454625298466618313258956851294263580649872852004270913465935143738243752236219019832167320794935962456975189124246171665376245336589006928975837282724305600535448149192955150110413569848736760193137322181408230031377846093251926821327047045618038968452261854860197414812304009022426975235118978981923461465683212328039367183610607413219369880481480279329839397533117080089963789798733005469944156515831586472734229416326843295402423420682306979098498448667102742752398880868308258815237632597126612604277379447156060658507475238553131477376645917766838842377616454619024711078377043866320288388332694075360088388310664026802469315412955226123795852186377227705957535670883733747529332338226131524006617595106831106786511180318777974096200526046191135353992637853178865002787523469437901844072551375999691676618076710048186753010204384110566567204832052344006659040432615147222516550888903842441562349819971451321462492749469447399065187823746195775840426841094085305155630838136767355857271121449002863089176768135792839101947215886015566842826509548361198928081706674880552756243937635174510284219078212343784797345862205917254626194787091332971618471983571476724870077917182790320932263523209341023101495477924924364334977796076816079817934631767288899254416528292776187644880492930285514800753357849895663946928988528248840066166740667000131562916886531137736976558766949118189314143564049643486263644893217085755196522774975216667856857122279866602153234297671502054160989875631230981107289337590706879701320539093586709703457871707411616056663702712481611627281790957548177715289776517097843883864512110222472768315759932698385463300443951848531748287495561041915396974412122218545434741507230641412283695275562043319924652453279756256941671293054952352540881405010768598213054421161325232141840247750987614998623604674240546095697288273305939876667630387081756156099316329216229007311840850773774070009193022876966351381326748100041816262374655782928809636200772001889287859892482613215650812290444280930459730244027873200624035911901134433718579359103666597964794938349383922922830918534166335853226257227933446010869647414960028198067153611181278291620414904620361594646667298730393368824275015596019977030383898091790513103163085159870470168450170855247342032333893611911665437610491202193589854077722461783931472532687425237257984271796872678823503844122584046589870463142105865492416608331403488402903671241689166216718115536703780160456394135449116631776931619820691839586719246663418838999208454943712301864424447436454203829090633945450730616089536998721381920729146041181298838153675206304029532159622849361056687317303814067681455035300391721978453947228782839562614574631401205405672286077900184196749333303316692514332318392263197934826035304224137535481814872306684764353913379887026321030822155699555043476618764953334224161744961076104357706635418944216949306438733853595561555916789035270867153909287299705490396060646021584034019358460855540313595950690336531981229192631620812097253717383423301422262948140340251348949633006418794742180917288496370153068191835739011435235245765464479791097743373937984843150914623834420359483238184032169964955465353455616067076786735378372369083574230851507882376033315985118347616439206740146573021971994800748312165360937088478086149011238434315326222667147346319677455304860449470231856677250735056943136254480073994157010834144284381180701840981725277976117139301686084945186159888585314759889589314529668461053922487161038355867580698784256148434508399793503867039523669952204487673213788729177885950615424068591462088964836802512599955529105241979113663386935437035379196599680611482668333015665925064824379706663462920573697566166313707258239589502395990231385400883546985753826821716278562080283695453997103847455487225913714974010899165990141489159640345604869637189769351974139590217512350007939216808995730874126041484536698362206159098460960794451169463935968736086322031651695371602070254485719955823966173165450685297669134039307639295042395536791497152987365662669928990979742705049720184783422236315410990684911905150389185376336495566927816681389471105992605216229339028033824820667705646449855925087632600384666133055183664007309205026137127701297764847454048804685703270037499202873109124786928283665004666354574354276802829976137619514994638945889814127127844771976691773132294626458479343516564909423705106541682929843837405943394119781798500856437059447828980535459691366451994892107054078223606459702201980843740425319883525102557659574985195614189184458811998198778267075951345302806457966364471545481166246159904984384629720682462757835072167871965954221287891659884100653172009216295372304104908487338079035940474262822372725374311700853287887051939240219112757142658068217404511355433223635500772870126861402379451887076067886826821347295491896524391501278426448496631190683041799323726937678185575553802001135634766233583804590107896177113724894895132565319322529158176658557820973018947855451526144603039823590065441357017699663698695057956528179074249950168768308349482421798276636801716149510216953941494708362569854431444008758396769499260721732323560220086901495054729087153278150359216950436553918027907172963363180152775223343410425033490057049085515402057165651879384995173772264412178781405025141223459365038659980611711374203601710538462130097114577467646101882871832034402560530461672051958538273747756885589153519389098905706967234169044257461793346331852321993866729782784710028754717053579232028467806352254738302981052118246386760840309594889484771126002087274945851029619729269913793784300044457095894028607354248696987275884712571571480979956253241630107216428255767688502211123442413697868510804084265724584496998352064251195329880250905964091147159115829861801071541417221657033167375684833291863912641379112849855125100179167432490489904919357857239185892455030900112632707888430642816091963392060046933956741659872980333917722074360515809623527772580668695159265136795800328039010204077588752618453440433315837216228290256842481576002645533004753975280013500131583352247141334635669792469666697078840898684865283751466024038752334966523726664990623851220040659061767268548297913926100434655593885971895106893097413050190533902753463975548697907710023568787901521986409788945819958509843871497479697434808734427239034579949048357657347581209061805170896110631156755715701672763165710251413635861565261785561798970371459225673629567743852084192270984017641218704211381404103993455807757765128289169499876756563710073837478114586656314389771012308264166817590040323896588707282601507978558562293522763614259229978266265191886529312291739879358608003453933019332138550767413206882636212109147811558686066157050319149602891606255838582222218811524039387666130723098092076014973631163567583518799413945585414482158494943574896897511051906238145114708475727088979543773533784513798979453822595523571614031539879176728200769379368475922551141216464820362582616000699060476465140659908952342184178753479843997177437863647119800758743697122686530942060243128429696636512624979890485327507580502093688215230738546782871808312867494559862769055770071414038860109809158895645307417855009563457727613916079903122606867994629761127688683014758173888527442276728397581509621729309057836801951211857190810477906601572854768297017453929623725187715567552049514934790914500793403689455400961384777928161614835933227381594320337438096797866999716036682438555794253244218107260905778658833529685183846014551198880549862833338227705395597729207973861277965262777802515482117823270379685077887951486804377074030041896913904639848960562868540057609694772002564559441892280342590137024971800710149873442418562006519351605150749408039645832685577836711263945001566618772757840377056932693588067321316194797862512709010165210024477486915321008370394896658381934521249772162719233892922408146595321695027647445560166611552078023597077082711564179565915014036322163380742116168416289330172848977347960463552536226068956867008050864698644337678950044839638806551717633887776356910484664834515516076267284911458009294783469594297266167316534336052195293084097704338443734445904874026471546439264352329234535778328943265707954055985321894866847208087701544579059904379590964422363360443091305667870314270424413563656172573080077659643551448382000052267001888208981902869839167677503578730500045019965901401165661606061650445827527588372111629665915387463041721755983586064230874084239603313990062116751308387087042855314085128015960146557074426008621476663760830886249056620917875976954925241980794488092679832317960848166711558153541987206678052995964604728560476506486203358353692805941301219251892465203930025143501627924601199125832845511330464309387332727316714957751855923464118187023282689828468963768099221765259416001728612099800779401913967591083237883802101233093466546461917028863176424728087641412968788683331682250164797261528950236935369696084021802893907892517654189806468695676626270666579449128744239071112462719637124989420698780696461846120102745153443246250837103218167170342030448226252781297314380236133703480610001056532293625611073377138763496165124095681828221291787562605536777250734859898180641680234614045033322413656763988842266978708807722004998448090128218359313152035899698686887868970094244578364521658918620606421333830677146269850810248718236744252238617534643575767140616248912233758533789876037944546016732700395921715270177767272613069398286660846103322990711321342133768400082727235173265659399373879920610748208250908265739790818156367996301905368713339785141636309181730427108320329900262544237282584332016722102966615697948388979540523735174459219142206069658130773441132095353682942148335203240614976569504001378105965949630331353655939700633263433590747176697289720643902288676394694361830178827759962538040182115433467123662975188954086828165816529119443237438392309170091518301600259861564351667047464796520740794254908854158302701147652687772707859530847609948108004165153164204748563029714401195363606415440873396951943250171014364860285056421809588209349990486001105643798593029705549359484656498521391590459916773933094638769520366361741561671182467870514222680955389055719991520670593519549173022586145889969297122354328773031093851417342655770209773527467546932735364638503710115445929445578732465959321140029382214982441349612521646930963361904993436096098215229584842968256166809172153958527686119027848957762421309344088133587813231588165954034937935836466790353822407640337667400664365871346889374992489039763651834867660449419040045194413902668671457799008680009262399207969528259376596253846844409933449719887984774345434481387690912326073073443407092626598283078129336072592253579319995865219854129777238461522283444091081711295698692588491172316578494330164148252220129727694243105108112092002592486772543282800862664937949636922784920422005290997476316600698520532135125915234799161866193687020285941649622285672027602029690076315625373110608074642398851837991503184310792784354089833384953933051510135023265694899946790684783073936421599054518144325210528091807336290156218733300950329829027570459613467528792852343325033086004630656699948692298199104671808052936310622492513441480937826775922523627593626617406763585173016125447359624030021537915099529871434851245498463678538721066587233688258279977082022052262201615739266674795696614204959114324783947219333845795728495681545365750456839509031996618989555573652991432373375453031794600802436807852658493681489442283765929894636427701086500063803827405667674716812186415105533095595540860048878086234615518313864578765977165995443527924498400282643972614037953521313778690478741160829269820903745915224266265553210593146428120128170179390766310583062665472257882560800081688025867453683780772679055713059301861373558634955254386316765517830046837675651361941476039175787643704068436422096655236919821750030951997654306972247263801661320758831261611583651669798027508155288853675488958958775482074921360434947710735349484921440099975604348507374070113511636009264536812638102911820635383084364607925683757082853760927242081534061301059914475108746249043797417227245010472886556848191581580269299793691482473308928830220250886130973811294129573086365765705324221094261652108176998075278693456911671111856791417123448999315038693523073658660909668872471387820207514644472675035766456648950308734929588461404820066510290654971037602290674667268037983778552764323050303288422698982625005478573073537606359651990570460605631104302642909031787155044226487912646064999496157843076173439386222291596081259384834808364807961647194542164702566134805267471100471541769851973215672329669538617965467977527175222457314268669495417047227768087465823014482456436474879481602054511313343945386041826374500595585007932798904215202435640694326926375541498706919687216225729083622460058035439850692959961884878224292070405375010995299397043929182597564088398594620344047069291049963348802594543741166591956980413042443151627646714768882509578079819732171742945913066458282215851699004926846129709016140743769679564788338581108371471004562737157056752834804336795805105382048846852940342392552155830554727224912555255596235403634708740576480562388184835449988998096466597021707068079876273765110070603296546530141026389604994500419464669595098431469700533834409532049550528276862734610910172832929511489364157253532483422801741582681254722264008035216794956906972276542289820707096436462227881453238150035144809823459045453128233093097265742580953728248593343435186820826861827679554815604747997788967809975821726145188886885015664781767202782928037907902092036519090235163213848760373972794744347084384760114946683079846805299752635060790421479046346105521776598904148441186955925927052482195606868032755030644366434158916917016118490953634558376894775855070676303730718604382587201875252864813333409798377166039113160895962549235571289720284495413394961358255850612500488729470126593727410668373284590431299310832053762263413715046495226239828625686869408457952403594739632812741139945780312130589381065920810059197034065978393507136223432635634187065433029773636741005542905977939249895871169691548575283428101654765184645926148935816364996880366193107333245509860940809986173068313207496235337888809971911458045028485546853382354361593889838003196020175836264200460046349155427576174795168195214811246429986208060746464341120441343635865898946834515279525647915227054529946387760371595303748230752111731135313510256328857696107871730705277771888677769890331203302011187422506888252690721019614971364462066769720138269273894660642063497927334541720966952345543792140842929302612428596165260665006044811544063571635354681408498016560995381486086993933512233337331423172737641634086897961583920462863437859253808404146329330390588054152650982291103035402692399055820909335006844209683560885519469434762197039087661083614834105079176283588449145491563471272664504095354351224829569710973622309056217207679757919762505670291660501111806356011413303907406863669812550843243838476317467810092575234845743616279715873699217927997517762988429911536279481219900344928436924322724445587770054350484563021283191530645106118289053092916859329197418871173391124621997570967331465106901206337477753257261587123891483442036576244779328931837103320116092905968475236088042964825698066583394745020960102152600281657648419018630886894645578934128397702814281997100017019258819822347185692632487355203005110746500441788279455665938978572606055062991621969259011227244589149679941658903722880023069366049598819827507250571418580019553159181945625212777392266638749425666966512633559532148734722422190001605983374631791716369507627256329457567692979973247645575282140369299073384500763111937487998209911172031961735288909484450171837345268553601396080199192555779102747930476300253346594572424456626183697859100082610949677972142189074663835404109811460555750459340025083335155905286381512462259184066799333683378579530304650407296882325515997527293428755627931215171204771397271418679689913326586941503923907711981736146743252148749016603419551807858432967270238029427787099010254471112080982549932326868562993127940070956112961306730889102283809805577511414814267498637361042434315075531049215639178566178299872369991681497615325817532797158944838839344242123157230206260740752097192227382755910994679865448067834905566060830400097634350222441734910411574418278364798256672266038339994082233663937124246344576647911308939147929793313261691457080135333149573169499049143790889744134287806123346726991084430008546067229829108198842275241462311796702278791305753566515104845573867760866521122631980449114182941896176396928364155082848114843186792148973436580118675909506662384939558273241672311290290605267898154370953376253405302347288022099427591171090270021253138715494860092784696900948322121546377092628878478420943142681274299534346930849104845072877657692843964896298037829483492574276306651239861101076952658076308978169885484097672528694737285817032181548861783598643757497595950413362237750086695891224148115167760677944320107008792590922913903084069695893703867943582112478370451080118597254080038630713901285995795475299827091107630832952486715535011433199274420680822034834703520800999983698565590408349450035179157732369593630568945291351386619857394225943297267978370496901623467811002119101402855484125959085818139255959332389531219975165992060191328773619257348596465269306408031387561097399525561899127287656527769767085188655081711768527128229518712875714468138236935673726412514430983629425854764808278366964675006776841515557066819454367203175294564110980811436555637518806937773884633581397584568155574104165373955851834210498222172740036059001979268372523318838243900599567037540992486036803732875117828975710574773958774313819675598938572488386692744401419405920596784451674870192996891441446804061029199674179223679029821577726134892380674025909586978503257114287248461719745237647680841603442895581236117221819343768116491646296082685876419820853697851942873223510692379036674883616988876364031660424589485480848242653606100456157433012799021500085381230045140908839982637636429412892164335344459894241710547374884573867592363566809310511660420968844311469461525084723868630274535771994559971959001334867343969220880398359509449784150759934600477849660596024389641178562322605716146955753619856815224740043159815236539650162237168146635782032153055341770849576569555989048970508502203559376487673437759067916912796435843807748327422423959822467936016101686293242305029550698977784094825231672193709663204419841151529281748445057125453397565908922041480481041634164674989814290077568445517137771349929263583943375881795581748482188566504813530208705547036435478548416173327377369651734794019160202153617673833610332423263414088387668020628864657023938368575583951663925188157279753618874753156749174291039318447525999668999569871400389128453849002118283016499179552820331887400157197928733470714780778427076655712379485359145986554059179356007896972095069155504894939772372871778026593372892447383417097813250185291052933833241702826641858183607368607001133730914226524053282805700652905068794922269428960274352545003624228756886629225668175358061833605406494346780512301020018733375666942758187297242368315980624912053745322091202044746510697966758285025554587258247731164882450753058095003857862817606893929377662450461830835456377994142916355882622021593784135904475268824992520884892237782369465164046907558875824944647336267626111572124645160926940791165016984684925174397171237203811335712950181376365418069981458491229786657111682578916475139256883596379734451201538665703781322664235079481552491895553749937551124694597610326302967816291017353323859464101995847744451388266069715201053782353078462165456920531774504942607979571534370374446700256947419855207382801456702329280887800791224107762769493667153620952590319621090094417912537493534380340554290108108628658770493696663434962881129732732161035236293262850202157697179921226933127218593891229027922128135919802819313892762749178560551362006983668948375738852647421496414331001064604413808655894922806597334219807472321059839842177309267418618459499531502694373152986622860366359979108241880284193401122723387336868536890018861460779263099690864588793097349830548389466781795610795618678692550733816736777425836700870317337405788178107144205681351454395831450908720363469215026736140103568575953399852457824874326250139107388199292252254397121472084534634837532709553753561053566547786116880601018746329165814387525358492990350765580956437910756801152477532004066049531219097747516724005161656817580059537703344787017746026714877622603876582186274056855767253297255088207175440377683817523559095257520946498755245170636652772174004699256951385541065335764390522746234384980266669385903333280715102905676995401501348669351597568116722484252193687307895912899696107430061123124896911413646308695058883427583209221514730503020746057975925732158521898414122439341666764753032382707470881437523793713176607903862141351180698002433275228718562509091564662931112966639338398126028146864822358275503760971125522520769685516883487140031090772094007606284514546144864108786960654263178939131692537831503303418571495718052510707054882491188739867100568292414510786873096342172230201487116811287611736741039286561886517429181486410099503985958080367488786929945733201469277006938381461764554791835940470138245723619406518413227644239054128768832534906927296904589843652746363938944869980685315219004200609776828958915872180677520023291010639473039894470261576516503683564350726186215943012046912608183669884858528518339718824195958624892477769467042262010929136446111178031838167160478861333551881532167647290967893377458305235472978001699042559132346235440884222829785760556022340205993889620983707714691845503098440778039981004918539081788376531834424208640625578891219322287955008290097879667772556105553918948971175544108986533210454840880923970879422395617610964540080987628541015221553134239480823819456978425278746182638032951927994521093875420156566135188805630454255948718718993120331053076038688521214170572013334969456904798806307161768141230544245947803393052002929386392198323848735892917874898593400884388062387091933695477131790761229658733445417514488816136825737821247996437649720619972156588088515119663334468455788489565380173029652524070896182568342662717935960824662407524172734515711558095414310827354344319771577494897130437240792493029772690085665387419217254985838404732741458234092497497270139097857250606163185789802375214553892711796831462993139021230075859335515697742356267399018588999847363972951456014787656931299590924278378754279909493470639036380220280153918679704328053473379406565544089528207441437517224514443171834958829745049705708157069340992790949096614342930149942047768972230655251812256506443187934073494565449104911335855229410411257872080725681620256488591772897691604876529758700106462187188248045691921813094082005584786346705827388854482439388824424541233703465311591866780924910731712055749490612887351134613777524026069769626902940924387446375115885288228998267976629042039971491151339697428327796147565461081042223063849876453695014597712871852414625544682468629109987720224408592615111427595810060751561738337868022431950998023947787031855515217625986504696589092160427984371613224753262843486639706556398560708913587434530455248318987598914042143682424101023333411233996303571988801981900422974619969924420899189778510048050773007195114361225286422377723228347197037649587704162062202072610466122778580478455692412926703041159059804134472799313843962312413756379623764828435490550957809210113831139856734262553996302735772348754238872575722634896056467272385556986481772205158649130238687424824271422374008764099598504056520877711691859161236787477395947285061521432109470890025892114762953936315417021149166862810754369971988328603965784619308912500895721855918504864773636745789981227296340764536395853869533830063034669658038314356710957609855829674680205726494909037262594266179391336476635480307396675745289841364520131418824444688791092145966349291707134495483571090250017396056468093540837465712413915873103662107591247789237666091374917297002149580685155518267677597538187330701587421831238291886459076021669734094188735479657608802026371671194417802273818248345001677565112938072689958553158718747346884252308308896518308197750623698235222479933889327491246954247671925137745149777832962126145839778537346026595084586014984119408443827634056445969966092626118194454729618456676111005780318591401373366246726204175640394138459911329658988271321139068715402656507914504040707597667323170292988585706915477460247117344048464714666055192714212382402781355500685558067876869120972795171640482758794763297135494881222974715143481427972803094707201002005085588677021818381216331735451278951689797309646971025719339079169458571951297811681044651806328679094600417113765357860445876209478577051399968786174068121242344419318408591722670537281734295300589414847828730524520863899331665938764289565892383895545153325911704873201520143517202151570428927214749334866722444422816998737466172804246579913464851447745320267687078185746620496171203985528357845467817289811662396076420792783880655560550810995770916220874282454905806547914022021102376722488587524195444344146681910544178120259233654202247875292214868183663367665117511540303195574159839744045045655612465125685912331644177299577187959212446493144913063566355649678033012052360521488961685927116332426731643286162897929773378074977043326184018181938146610607108718999393341372668590226482312573088339887459723586305857340781971569010617139236936166221852205433681915713905031802996945080893730856305226235943979032456767556101018429793363259206410398467088515548628236790966150449745195343578520020906113044243141886415006711030503970771652610482474989859229274937412562127971988604318014411694815649490078951848141503057694626380484820246730269506688899820899772568915096407494726460602191055044435386044046314860647382767551537454443087624439953824404386336983774706819506160054278203089945658253982401902125935516134475987096418583879445777697231358015072269569174372908414186337209809161582523935424238118435777843769919723970685894817292050523923403179533386053052571275606526531523139309429730045850420631941017314151287787941766392041555746215996377348569846394245835486620666494484189431238579501281123187379489806365824219309674363837036554220439617676118784776613510136836050427207567893852526902617106315455556407223572981997320305326881084942170665139093752826508235881313009296041004141596722079382158580728028343591290907141667048597086727576105320490954653979790634359216267316779120781055134515850697717887176741027217979034660793232765541128522603921825434676930359625872544503114182829656619666001415119725228483939881665946744413157877521520408642903214558659714458856629602996119217689740563533628482142778489309504632212622595388841080145547687705480680200030666735545901693044633133387135622900011419055071648115020506013040667987888008468222181802615847135315590138796160694252847410765357117506761005137689130706022835195239648167132781282503923303039613575652880372197899627224945769558159255392469698538407557559780829916819959980076198139727767582134106484848815622355110652542312428775170246877595053476770520773357647997906034547308646408586637027333477120955439330053233267607944463703574235838224170238308735018059866900783745709537700799623858937507435048054265350016656139020362031255875350130617301334151118276975209670175877163307091840724734636480084155044795766188936810097626945408602166933820736605151671696200585618057039301927394902693513976094760788191440217040101438734683251901160482938158997039052581257270178909914301121384247968844911406619669918923540719234650710300806941827874692296568377216927336663469258713307555400500121439777269875406327276858305801793473294635462980286383369575688047295719072673027602906433279609897685647973777420550144257485532570884310195116593289242246407373243364250396519639961204274666427239911271325824150150957237888933241104273701593067768253764640771867926135778871749752540104103473500600994236711702064577830997378154771841773232567784474785658121667868033272542095540793320971303839090557795389742781775750815827899571968810518500253459652615700544550047065587089016364385115790507521908047979290865664134755164949063054039622683291066882992118876005388228031851225483172568387284024544010396173520774763932291502046813574719833171252937046027889663272427580288040094573805195891488280496135669270209514531923589521833678581857047771505769009220085576304635554510566149126816133262489990818946404433689139162985158234965249388381493208317713842965518886994994121423645312136379768567016791257996323801900238673163265257148222698727918010415879263270169300471300839063070301177033806582329883211943873583145052400266707654730882220913685098132978247418081606762073275012895045875552568331870136108540704169856210173523180661683081497585688805701721667313801072734528604685864347380456399525716738586188946208946298916377522264797169553154660859330256681294686273249965010998481049545746608148226531821390300102144707439735373621992682255838509987056080938506828413033276310522228605083167494357792301867985808229743203687707285871293525363777958203573685117867706482940104057869408519963456229743474822357523809227925937933436496757828578447510730289454941420478102160739101306453446372748735880628246345243223723706299451298877410058294431760816932623708434782397655565235501954529674293535051110101257054916617892727122945578532283313014724262843588335075198993325258404176932650065431524827093519717070488121171864995617295468263148674553926032581530195519448251478418395487654207700422954067576589223036419200712834507254789075921833628478447498009156963436283084746488502724293645911620423307392055634453596526842534628815891012436579276594170137789053955020290438106216262111682326692351710295552125323347565094230441798538077885878833304147137452576896296563490096333273995794414825719859159478181088515816560533228289917309082267530805526619612010510173182163962053929968378299899248582069125274280807440536726547405111209189813053869288139143958575150077250578435581215437595937583818191430609710293864440381692437912205582396561793292487861249485880208622558849478474253066977377642973761693310223075494481489832300688140278432647406093564144680339653520007837893028671420273641490985227309909854516863604614452561694569989598384708449935298649889295785091881703065052254233401907286052444882969083996226436302985026230639377756237006733590379525554540409040846038513424972968488668380123383225695233097185584453841256862885552155534190221218511704394547934302637977633307856434914113048103334440655950737213674036449900988783280629788638702748054209908012029817635309206783165523747741146361542417101953752204076666403496653590768321854014852145708618135491689964345126783120945749530344886080089342937490484207439307032582203921871576174353878358940567264554926649245494754905934782271561102679963326985475998632998476456186194426764339471955664714442096502063980037133053349366070550719430646856776480892545670943352570968226569127471602481020302899877601965540940193970793301273294562382422220506945261889051704696820634052710563323214344564564213520541896190073715347860786707330476239327019175779591323342342781820649676263713760782581245773040959845738511736343399131222666238821964127327346627682043995746580459900151986498966804119600556404110084307246149863048059057013447203372250785086210524188333704115009750674454766525102452868804323499212223413103390885825567385347418743771929698093003197397689160827055391077269301188624089359968739635577692396461181981118325290653016417560287413280193531896042879949293777261881966784687734776511463771364001105867024769597074257927206446162782978338095903429328449848694769124164675007056503956864479966873267314066179946422491097645717220963313072300533448569909237004069981517003006991307588443648740146616595159415875598927139746468952556177361778032788607351514788493223219893722872354369175457066671651022122928249716589119780018253376659888697087297654003638274979849732011747600763172864855417313513489587890931250538052663517195710515880257613934898717856670586734629989614622351580547802920023496698168812691600974587458034659231999354412033581457388089304260751934209209690721325457646038155332124225553130471569188886186119934358057097927563316916927395078094350944139231420602858331834635488880665643590195013208691022319938971471897593010504103968544441170740627432761794002732158424217298138495611324236252575801598734190029265831535799172427442607542082880828950849777232360010439645793377290627161774905600705556839499742383214579837889147006558073728132666943933901966430926537105900010908065663269253916381762651784664323116596871536438350772036056129570459460152875078859593919197836221838984612630431766702569688561706051108678333096064755757988676705155826610127585558114508392585371482288458391032045627851271990262884321527812322333654772041771286092681629737496185629859190849975730199287991578578028835765051283459708200368577417363681770579131301485383521515294684996853048747125073459352252803174313603002941931125601395675063952906819994845099916950959309266334223540453005044876786226356026828222560763019650710529276722735608949050056027578059864721124758511533493473560745519017375562057473932381984960127163064810980468971391537744014353341334569044962113492884951555959145991507498626870080733655992804872442107114124294125498254730292737785283441745831665647393266344083363477580636888746980246817343594060593465925517580172630943911201232217304062288987879248927129265926645739414275013639819764553799128562527599810992020281290716273563276324421530719427773107370303624859689571750934769330339766250360718035839699627248002200819863331093861697086808717970866197186312390795823871567602857027553246831860301862190518879579696108992126024888400729743623484819513519906448717531211133173714847876913223015283974209290614119678926315796736791632023443297297248999831903616263124518305961090805306795724225154019372024430659834110738560694082558053499343815324922656533559464901155311239787130269614767776856336975953914810220075797077723307138039721541110445734288839936478817827656193323091049747442844569713713177887558552425384424743027444697118055327436515689746627572349267933395936419463226882619159204596007756330878888096155518191577129228665785771126696683350768765685119575741006627314795728053133023856619692734582243181916593962569280483813974886179635358202049791244951271356616585492168394804820347424731941837183856561887554472099138517694885644454999152363539509336617563241328429384476464471050761599958415727027182335308601010444923539115457646874717824549894701723485459385670234978118318418191205093171996759020223786010943828605800511626250690376984471506573754203565621930787348588318739877017410066778199346451497626480621350504055976273886201573515487990178364507627947178294168238179190053369257014038169189903976852395047953484982405937037334587863931122204840511208888871254141993111933466924680037207991619740618538390913211759303852866083363088109480151532475595165685226154750287709635529259929811407541557794400346473332186681476500862980616214841589093053162644860522990004985882659512517702457883543368704811627568118913411248561250320238998752326714023182534961395666341792383328521360095811625626987604643251197449183010150312900751738915069127826589871095695543053716397487815210600144901650935774283803403079131809212421531489349185324594820783963051548927070927362673535598145049482766472233658121117265436120667772220555307056587543022265313719231073939372163004597249852885047709932166543689965943183196280769473545399030091495149088336226038025057465105681142298191573842240805334857934076257947983434365535754785794471082504845990412423214850713963197891986399122783626788608157430040874370710582001389652521802741267117406638783882017516581329950691075273411491968306642830189297252219969590773936959046879303594253097440523325671685569617825926090077446859939921760984740751754039384181152438822744732077149366736101366482035406364451854389830571585215731995551022408933403444954186343865173631623036110120195231712991954055857177813662239930574256513561280436421210201459541825523012933951691634429505828241603727634385681149427975479525319581579271323166928807794585477706003392493967051743412432772400111594346764552680369077308217188428099885127393278345756796446229466254145278689014633689819485032069692847092431801456052832823065948367003508988872686597090887488414322537544529166984164090783152917849240024213731747059093398863387160066883160808512285978750346827358720745441454367602155825424412179429085690624831076482193540678188001412225594013537360783134766468808939475758600286317589888210312614487830381699933448962639166674070862576245576307381166737210179594473372166847862461141993291011029898771744260072182974993989679581938565460291774646917877844602367607172627026369503464162185199796821279342329223006554846382011750966089686279278973175736801479744891298549862716168658752333718889668160636379853853351664798370212976790799100894314544241396492482044452828654456648101382990191662480009703418953929104886053338170583421781576944524894936594510466360357030924963648387375389136346968952348922690156599726106169706254927641224438166050850485862531947551127321024499303588329217634603484950098630547627618350173527852408050595554482560252086998640340428960561348840202662802503544236310235716664193552686111762239449052462991463564625288101577054873091975124506677322178526480133402457508033705731158674122238812459266625392983350432237155889654194410540911834082245376690020274579125020746925774686673293677681224984934237431081653056940308144030189609642453794118942034867036511561921782141611853769219821153389227134693347477956079319844794606758603271721580561054234158173939499175777986447681097084460907196935374801130270627702993550149151969846385089005523323356215244179887421187252328838745847040881064942559486621069993158448438575840404129728229424386284490164087916492403478503599670358712452549189874673268094098335720435134700090417348662167021738216335983243880292105634937218337960123745580246427444555567540423672681173104041218806792347023025461318361788405970084334699981752900459325496604924180962018365879486119313462766564260171439720758688462566600916431705154349331449445124054315112703682388835568796075369647664081339458982263591913562352399952590209163718035088221343937945961461477883730468160909773544954862789413658683857310377490452365323853477003298088957162884861927596411565184413665128778428913088757281611945842142924630884384561658054554976997120886631222586793529304017631816193626731233112803470812486770899136776177038116474309187903637114573537402075777064185036500195366348513034477905102444911546086563533903294411951332514243181891273367346550764875490011605005749712793248042137782359266887350800882326130337207121493973139234082351448784859137884096450129834924006608865985710824928571168496564742619050912450983741361044683875719789878383718876531246178181945775520266464750501032337522131965354252300977552351867371196633615028489648754590221565899028610292659265873329877094348591142557169730557237154423668885619605359541713752467859925042194547089472362799736486477928807515162203552824118066583227702349068433009421110914153823173259327293893963005726003659206957254091748416748372858062025535136883074354328135205312814026128431813052000153126177932714578743528519330267883026953514914826118270305482356643784799108505625074589661665739311111976144252016257633317881142793293083861962848146883370243099701928208067630142302582812945027769958540061146747046884305715921598074586435939229068885701861782214824839633760993994241308890197977878584777806043930216657518371451198768477392242208286894289916676008981213520494199924173892946254477572555990081405697731136705510299916027122096117118188456588998895586319164362042924435458560154978145191661665211296963825451827765622297920234600286396356259762593093432190788972916697731491301859566723611620806530512083420397514672084894648451505402777173067526038201868470543370893923643763200348951968224701323770861452092365896000845968612797560165404359116291241923874282442214204981762344236128725762314052398066048348298390727395778947090485712131792667878764580513531462287211553246069140143940517535206059997448948066217741879902330012125393828986133356648241286790485231795662248817320574828269627296568119636359101339665965257860912556561824348707041397181112744696397411515691819967112721769812270795386846021019103446423072215609046718226169952797065839326528694546032756550911851726655973121832850501737209643362552090171055713840734263235207164878157812685553930157828915818840283301749493214748943445914173471632366277466818079213062298666468875211281303201326961786651662684817073447057454126134976802724307877737501490260592564862890932261889414150372523507169157751866327387278327255454216955548772097829673911331025661377637839412861670459794337872339203054530586110403673203422599859761669741959065766567075122574952932602691491851927386303669988706559731804161444193245696473303048120015880798257283418077128433518329791216910982540792315818498669902638836995149361156099524369673123391794951880995614176222453032549726137557931163151556057224571398591192832768812232085661587971782220459500788094312548291087811128644666341837543972352959424122196039900659261545842081897029077200356394252326115214908657616988370287323363780781420471944494474544821699521289890348012720531885652544227060127692212734595241459502399281588659372149564089450263268118973932183692274332873487969056823888833729945828231777567199378910567142309170772358239038293724817912488055207477872854384009263330960257915415203703200088210699566989565675307327379141811513698235903284302090542761900514020448816813247332406065521342173752093004944014010045354825391108887182547394634087132379515953269598223817812629469534132102240021377014267741166472769499424112983283616818660188074101059261793643219577693425914709133051937778451805011116333212547047349185773566472072312845065204861240231379355743529995637530856345814637931746084012713967291335221508939256897053196954102358349005579104890758642949056206524952631982978699101985153972004565716657429240540534115458533503014474593871830610075403551234537003445779251268166422001156153076232674306805191427393457822968743534636043010672067245784414290016837895599207610320055059110908207546283831776643446463605335619687966881740264648418658192628775912350793179161800237447006853511124460288649681968468264497114629887531623798600167542855787101811670498496267575882919287373714664408822960628475931194007106436951847075214094949606060409736835140839610245012753508656069688950612771967369653553892630285697483574542813456666526309628029525133558852935261292743402927334153358380899096078794849798389977401598843295644510692481369250253706613849638488409709533693162638865644489559431602013812002937396421968785188647178873968099782811031997122696170723667662138067514394913848525336074933320011393664177070865457995989687631939162163311151913285241303772397264997597580808735507508517231597934107495512098463236493863060026072629880574985150200143415174906027436100637410812323051956926940279583488997392146785719788273408745153129631227929836762652641952908291102866709888599884067559400148260746902670847794589332943049914787041840673902627918419810981644217441525347646323548970501941367166920708525210117844751164178515139427253770941118839728599314942537890265595119283925927881023612023561967558458136275176811220173390108862990544339386940782681670178888685275014589080719270981722334536724090453294992930694043303294565786210499751185632367137707814083945245779725350131952921151721230449733283124638920879839543699297983237396809970391484107079475325171660658059836734550326872798385283623262372288961820962739484895534787437754665974291541654866271997225229624677420647448449383175407312089208382629421903709534366558872161333191724875598507750691068307292109912183318063073486690413548800888713252491062361511042010642985454396251348348492670466012622992512031813191855597330175031621677335433221196047607232539905898784724822566185150260641186570663104353742904568652398462460656672956640838622591072499419586045570622389094007950639760538513648831061677030063270863776703063362107988433821485710157656360239940504336276848579941472187943143508548523612030149137200883958945732288791298335949287506152069159960518417958180794652408531478599658183717337379124656650597399052922402943750233015862382294443579885408155561625526158851649184088095873905999915974966232037142393913484718289194671816810511909655379696005049676680102738168252515016676975343119712427787750130290596692371563704571933696435114888043083538849555881512838352060858671153801911971660083894373056787372407404710086805610609067539955705143659057646133547930721039680557790639210650030242271484756118141037311256154031176818337986300159938758605191224467277598168961348575242238019909965084396036058765847719698058373242943697580333433217340529960267758896427755411006774443246175902206034826851204965548052712228691502439271329168919515642868922559221129056281384622039196626239328657472661727796603004241114007862066963330161826476127964707383664590797042292995171357281595281501985946163821709482794678167870133312472661585611602268080866515061307028379513955119784428396280218447145044271592323318350822578588721139309267431897238404887100102987421654661141583149410809115992019510732432920242451965393337683614098495466140335200670412876795645825244754033299879376787865813496793924800662216913046734251078337912069459849662832157302461109518546302147582673169673319163133611402864285182195116065091401330405819222860369973657640156755875040687198397976582160283522077526972704455199664402480310854078213287190166004794453384439895926751713771451785163082765793676368237648877174222732833104369355958525169386781342722375370458864555006702033128196007850057820709030928552564568694069338355236384867705761679418694314680060838754335426398464503065331801058843176815670199146109371292493935778857043923176245444970490430933074751897311083070064720865257284033651789585557386122854732004246507423706459214128167565361988298811393573443854588365856332975924388904845913417445955310939583999823222643798589224515266538674908411172402626075376843183074298891125914468789246732220250471526982195453706569277506522600614759237738194544326242061550634524222791274818601371357886347834844562569445555470582442807529494415781734440152647459533789478516762899427038063060575518243572257026295172991318153855111655346324789777789356141030569305270978922404578473155521681520268708722566378116802492713853330280486531483282366561976657083660491776148372165821038091716691491472465083747570753395616141693169552495528625266324221811053168066699509590078646003618792522807011100969161335597032682310831554457023997790091830230395347789647723330302018152362403748282562194985239865800139584902233391890694822754577330541999513676590316942091721588948882234209766084645617566820346268098085694352388816296365888429266409264109100234116337608789647538055787482445297127664902604451752385102617812165389391114474108977990163468755181227204647240837007674691654630907944473416579474311750267405962050131065340325633546955443919565726575353541913568292627270806342441571605618047671764462875590042548630001442587002097454458715684468156502845130377230157910218324115380460078200106135615505062178027856025197931957417207893207893214994844425956534043225546002798374715815473052847454612339820578019970629555115889342799598573854537641597422994181114757678245852124358347608524693764923318114656966920468599831608559667464577642369184241961086447905436267897779538402033450217825355893671954787843068404340605054265009875100604027424164102914922664874906325876632843115179828274602553434559974851116489726851084399338514428586433442774358286845778085553601081916562629169918860771145324436423334395488387220229088684020025420837867872502219368968545889136958604727674705895707401543625628273581635657761249213568348903914420478109044500014780810551758138450787910726668229314434799292047861354068088901886910447714717623742337353708627099582254908005631816940238984612721146772078381419912746429157795751793425182495597192620362649093323427169459364349167575451222282157132868845309189802801535980240522608927923068660345873928909209371329549969905574875104266409417804496904322440058089147025335112789301982778201928188704378980074624770145038029958294803143336838607756384377753608404882047824480868712970431206675927865161940103655345080574349319826986530200458136135949196186231347339774854051906291585651654916433945919242165595983261480359474884186633379319438221142916983988684101115090903032127526701652837719793402844473436904558625603779920444913628098620091777585745825894894608429127418974457927156961453856909964876706660084357837710238751847703880134814078209625131977077252517647712692930221992849124640614437220797580825606511111888601966653816618326192351609523049219860259321572159225762753766092176133830405380910887848949013014920488645666669910579823945438804326961721206473575289289223384675201803550586463192078729881154300857445702187946752051759179805086908415496392965588913721347250674618759987318534745129010714052173666861255659701365537879764743340867570329862105340519503290268038939497273681527338010597864806701708800125340460683442000479240968036925503696291169480241121710343167677597968909873195573013477016559393021161215085530697019919980168878696572447569094643647042724801726907037425243734795972297156174422290001624518355835948423046857715825028542607186543631869312203300320668164482325093942305428510612657123836038667388108917364139719013754243901498051381243765814947543519784469810171518545454498393114445265504166401056906422670381880951130311587529972611187940461800407288925170444334225339991778603872051770819568401427279385319800008779682774501075623092646293291617785117517546774004936770080236908512563665291726657756144714146785333386762384892271525959687843480028484286866153892780990668468075163622579806004820185808766275200957065435849369494103825434701019670791321407576390326781892528910029616818760725582461181506591272253930594301711814453771752507416101837634681759456983781178312805662840027646665550209507604348652360511093090330920133784912459202195445821544112655180476534191005910701634631762023781539343067713518670752942641670977873439160805493460787747184740767261554004531819408541188747600763052239613556913718862400509895696071027445483126075463274429949493174007556974166427822556776249875502225911914978285887314410062003895292422062018094048207072355954883959659348848472230548854300599706307607128940292460203582051247787650918973806810382880896176395647872138961691936519512308273595452992583892879877080499228573999011902905828891883783460709983451166715111696751755029554249166358040107002001787666418542621421599065494313336223786526648218283364122610032827193586648242881524233676207539042413782766359133940531015326911353132043801542656407434797337551176688269030478390221418981405420883825643099103726409355469269736436019647594399601054926795926282550596349554988375458570411023747383064578759000258817306769841008566364712088513657148976313596351453178031200089865121611305254646074518788574953252784830137994788198680041273179763557181274822768542473930959540511236760035789762430050945950399000907013231907912904760201907974309020818249589610320916425822829319461829835095009037668985449861601194699782019298662158508835764867363064612186840080524098104147684420748565050638238527478949130888300088309871625325580215866585418017279764511122109526693340477127512738634591132872101807270562678003596948717683656033578397615900173039239590909822743321740217891499264910193856549271194549372706364588741969543201108552931835304780441543869406322053341706979046124461580499830662500207797766538757147702782651478722910343283352053483188349677606715101914190640115313183658578102136374857610666299416924475252016041840845384639322852343497112701941678824753411496094965309961161733700056848017332342651056956778331859621716860499142123078318010959823429741563544689308607512591203566143394156769762287095184175454042403102129595990290209937579409594095548954997257057845622557143524436070049052670445635619259566595305988341794359443312658575156255806799822278067384277990226809921605130695381894432058060678550021023185204989849659026633981344327554788950774819943300649600624432957635766016118414387162232477316616200743901666470052507029791404429604662727774117279150654436121422797036122489733709625587524066980874217767447398288311728116051677578044812640283084108231354802569549672752033438424479384409783874218240818825245218234948961528611695125517690643358597632251975130461709690960971056489182974282227368482096050336334640767773152053419837477981972432764403900882883940907853695331984135240930208310554364347404920693986421931550044843956871687980191638376290305237274101987280022992316537172032907446902499066587498142930948380523219375035664770263575765430424442087018421889444300124648422045068618353102488469097650039482466858483953555206660326639690512713568443925443663253611823652446101730616720113845249994912545587345585502867566363294710192927119660974848762829634590693234355430292738590032006943389618646123680028005293811531463631698706586776213650858632527728790832876314759157554842398245923841415853009162757751544199463285085951313608559066599029422784824966687131766067461307993124690682661661458936185985607241401631282475091490576295280845524491420733570394298325230585010924266835401232276640003307224219683890869051499759584266349012685780541603116773043006478543888743670026641603426631262678214065166258928784831002152478398046891360914255094818962663275652831014223307863363674214097800140614493422094171805087017778476643139927699402314256301623187136402123233679065789936624668781188580732988713409549351678027717112547220890396075780175074623305925761608660963189889066785568891096780138003621561193233196681325850120085856666724527679052330841797847673250307506503202116093691818207208734395007661323070122185534942423797621456724087238778267232297933000235043575725310588824964959429203563828982673868367800096921315016906386377665449319951448968452263040976940857109919432651044879863354717222839365966211908773291597219228817647875849154841715429292264723080083741712318559992756770416236854452411546105197067913102600713832614575092742776102488733769119517199589762906328057131176164248897692391125741448623491989876574983692074609623845987473205412021492544511635137929139142208343452439242527633725378993261508902250103248290736756991594064041624806722467062937296408738841201738159299402219125693970542112498919974492204529085145857343840187802667491668829846581355027689203849918459570491766429662362841576798402412407972058365200403435334602325566881045811257248647026185398345085073175411334220898061642555407577423157462917272790226354192680576456048671915664290575119665362165013412858567411933527945431794195897826985316369171319277008042623182705213253627574273251740809388900376110193178958327439868233216554794668149027640472505295757823403147612834853058555157833303825759116936814943552378079556719846938058415845960878256564888773202233088426309051720359501709162891160563946971527809072990389385277392875970137559014913797794320589750255562539480151396858639481646016432656633074044589560619422842571885947686591422447207582500741245178177070397419581732139507222822410847559604965636066211846104604452279708077252727279585231571767943439421511543442531726415028291061384993974769681377315483767109246459659883990835590575028298773769774641918945632471337707306051264996095695102282286653920035125340763269988514719584830693453173320232038621371151337378486376519386921269259363969661344076723809972922026017035557230643078293048431725881620672865217695190054459864557520339016961166187623032498011542188869745553712940776290778216631756819921134030408758706596843115220734902009445736136464451883985863033673508304654318873437881431957909761139862875310150176786542568563213334639454929573370370882336592891569258705951516141938829703212399720507313931088718497422885037455550274411728789101597457290037477082143708496272194963429636131327182698899941291083540835362633138256860231174877199355589374128852072928697410232190073149559153227217746429933731941040031960883228190669365352645878829512288516084993487924629756556416627444475732226910098983497799840322429081117109453253674167719236673516852770798298940860083839105918116708747694319782739490327957253033630455594248853051940998560502497975999043063802229023058564185098149604820629196850279722159285914626536097914915199520962440070050734466561779177337522422733154319057954161866700835350991704940740347279716851021721422670296361903123228461801279090635138778565714626186968917807332186882519056773036943974934930875526816169019655500404118430820113666460647433369059334022396918157339987236976396711923202620451838179799944575104095466006845518623165894662355679857778758918172784819998898909541026418584144576803773608250726872176300019762850542208330179444136071470390660677167932218012071847955229786951205381319209341307449451474899003680143553794995426043146264070141206380218292212629724169006255920634529879831304193276781946440894211947250300271060574708005602825729613244036564690611950503921194688785858144507545821984234270632474639085798985244479839492967957566403195155061435110558272853355731980251659468040795968752475637964801563469455126894004989521771871886743404458227518013236437260036167287517593974404548332237920155984241599913318374500747139292537913952150048315109262656892332570104279586508531706586508648408911054163955541433333344093859382368012598457719492248926649259599657509681837939767920487938872549200490940427739692522534748838098256642707549609959651372069784688054024141598573291165059647637467301293484657585227639818935893028749889478547188601334424497649648327021422278703495918985123993363766116187119142187287651558519180883141138029380310440023027458629823304460141664482940283475704656768266270832511396997448542144757871941965230437512768674822188525719325597191673651978099439970787680117216628575309889089983108112644025244484935467479270757855294201727222286838506940461668572383825293407347720465462211447219999554025406240786268819976795397010165064889639055695632420725097147068383705547132963665980228826150946130926339986796131261965529941729312151621765330374845554229680573803231316069562978426421730198697701600685213798716879016001420711085757931692610898853762898217461474681816239172538199600720320634744110802758154176709541607822674442221343423226617842590192738083548797291052896433037062306882029894976765436300072736933215835345960301180028755981800632135491844559123307997470285811136111871691544624054587949073500382687467643660431727934804398115073011534379140136733002907430014866150069725356905919088578577633667910760166505552158371405593693217247321297625739799701235300409861822695235952452821427239504172211249513564035869835180474918336402175306641173049081452407934819245382190338656304264288678001634615146296880801115318094789171690809110486375901892276630089997649144876690714663954184611098299061924665405339225503064556977686696718822045896675423347569105370970683867314365785676385822893095579383642501297467096966477306552560654388190208656312775494476438253248478130608444544930904106057646547813835561973184166703807636010173566389212255743907571954800930569548368734869926189198591551483694867856262921235468859188851440436211574115386857953602005952291754541871906865839408463039151143803639652881761703655661808607341844829546345231753814065653806217521557018047857616383522904738334382182223797875049396194264737867176729083517301048739759116909320385210149031684859446999614177432594004564822852110405595343321855717409635240062573523483873584205987815450173253741919130625964283416920553914156777391454790592905551627756408615248678340924452009302171456671963080996659561588311670771745223460067553717519754722886210097421232578494892926433327028962036503039041283672278755311664535910865290983772720206366492428744949742847226061458549080611701827871617445469151864179080305125081188069925577927529212828070508316499447978698944175322498356177379094569533988219460613754832178861112576838000645736935316197404443991478720438493749169894224442284704327495233831499369144567825591883377970945022437805914093850242492383585164460181525758938091633783298597523886753077208018486839227067951800345694568765229800268417834804127539343174465124061542914352470066221402696265543167766207359868809184152293846322977590655667548670821144459956703673487732914942415913382896729939655280669702940747021645048017171090926760389541947655218722645088040742180154899542495786404798688883644560895759692186375711781545306402187973036541091756788907205816676623025126837098446367199161551467211433445069889117371052051609323288509826814523241715269630891003007116883592366743589622060475352549413288528811185250071468269822670370265241314367843992488888418645693142357644179194036779503464882992348709382309452810843957328258526011792838934633519818555464953266660839479729763304309481315348722135565953424995558814851775142900137672508557324032849875504889894275641913358743020603619195060633963162219203256684343344975249838415212463178463444684780308647151462540782312946595032434776637282641837332897340710287880430406262242199551987893456858444226748474767831032080038780185240316727671880168938292718048146710728060257977248977406724839680235826510800280706619546274377964739853978485886142221426547401676851690612375741564233562912928518419357179049499730834311636236585512333984377143409868494162180649444337026984205109556195819778664703946374333447834758103187599847341789954708922659972816716676043992811054593240575287656222494976832421502813419197668498346699464760117836457316803356478266661776140325872033620460047516484316144551746045009091802421569209410171296795060555125955064551444140806410360354028579250753785238008242360536220702458412734155135047530094144290354638085110074114391892406620472414891375436627462274090800809331313554360760461241120034025985526770489084561124597917513894812410828558911498960698131743178153091990616000373926268127662145387371238704263985526008143191367731843659831705082394419102603548856922986273165666934436390908889472948198351850906992281023491079964729196028852465817088517497482802640244542671437668064350911938982966900164095175490044816666609960812749512045691260973384555751654963330242583128910040204943502126341052968883871501166574892787971291641201997682189463285476438099287827549406531112695342679632242041927216553042356433606387606502673982723746458759395522650477456636291203525804821989593781971634840490819264635132198209146335903294825174119724575343551006069466350802088190050881872929626389599440815867271303299829278517500439752434722882581671886667276059547814631839541609375487032783461346222414224391156958055919930096856047803275021899215494129237635630659616032811400473992618449498619164910449618104789455676358695245129170420914041844035894064544453147287911571913858053667965432151480527368407594648750735727203245736064218601988055587385624540151403755476679787810348075635889500842980043871855889601730962548123876600060190366557155811976277330856113549305304168858766617211452778483162617162772753410380082789041879934768132674839176565553384453293714841981032318800056022824727092501191718065486473192301597958463939592432213367896740519809451125985138789391652972155088060615338887337675509166197083219347492976087003290147653165908696045353086390765962541644374123921122104596074714434551204414117544746445153697845751412425942328961185086162844320004968415402171506891919966958123297876652080911638673376710335791232672675841974711764711425072892091558093529032424856001250772465208609208295701269541199398952337235248847600073659937216249701055153493673212054303751722618900630922538514204202647407158892706871843215941945516348531003497232070122424408931726998320129358229492461766712437378701390278715906465930870142519653314715478117432875870891427228794129023883025490145825010151249008215977335927164511246966247460065500904691295764458874298526656324618001403962581729637069682333399332412307779054136757083941530596742812166774784038817182220460181124665645873650422420578362259939434360450364057037936131777370103199164487736952513655482901468650281138551454368539799618945692558036144390776401985821968849286704387355592489909952269512639493923627206653328055145079254588767660579569931671281877125265267327524810389569746529736022709231617184183026821852040410873113881075017287694329701086278969767218236362027581364653861136328795605396110859457497706299309878813395441060125859148187393314966980891898626460431579071289711173170128178774168064226863911629078480893482842774920374438006159010506504020347021777479100191247831279437171003279156175311124786034884001755700195171192457858069665042265792065594374318144171310105645440926565223928200328193260668952624263434707456956058280714194440593989667230273723308363058763468163922973350325247804602539004491942256805384161676040182182863863365929913084087220190021459132026768507085445215746784903790009518818928126948376488798670924359538716716089719947341283709340309336758374583367449302792188077705582472603392238668411348125045551250374435624669701810807089939774493190276562458616660402915804632481785425720121408551710277468960034313472575475712626541950549145184244840021386526429896631816673617909275867379644884126229502974483907382119444315998150680943247232449085349481271206054643566964445764026328026336962164468696128727781978597593999108672449313468892613053161797078767407503520538807386477520051207337923273128445009654903302594046281973426650948799984442396192084981606645561717120088847552486486584724277165624249063408960376458463909403410968839186358697958118893554274548664045959480966385860028535054814004527626815671917538284656399833701397650426955253739937870653036286333696963307893662650027185480237323160354872077749586841065739675428845111019207324578221672621701550374759852105546964548910076706732533602007762601900714239162350303051660660340489802455369637954488963874739286439584463460853531815190839734193227979484920734730567428689996234702566015979302536920045119678551064544307653538030167744157430353781537386163068529667902042686420966277358161711483468786788080422730630624837895763636349053829045660586074512853966075119094824315154172976161503387406586446978201324716816562976970306496040785183258665307629458412899935279262495222936380775704682856135985456507097587707460589597086445293633652908218541469569637635876036281143693886305597608328018216162519625552952712349451248964878709533452552204452406098372431483472786662143089392196804816562014565431601549423629665950466358390566732207816720065293073803341555962806530864832054170772038680828030160662025870185956716706160249764477182752751078338270820982690634995575313135735832374004726652427767698146667517432508214661703185658313355396355549611859699705457014804097761974831903793047807713920079770509533759194169608690324438708299312372693805445741333414002221543398335240522686801506397963338697152242698130571346970572965545235500257800643562474962671175932197452371099499613162070091044445827749717049693384590958011052678162759540376581040552429924277046709702865242900860281030342165572250950257004512306100516693433215606212864265342055440696090808231516963826632937988946144000977181318667755480300918495993906071374490276367707297864915291665361309259607781842052706435932101813830331604254505869870528178849587163046895311360716985536976762297056839914117387810849643800421304417428093340192474716745362389036748037279560355979779826501559115120435357997852807053853871170241076500945976397357679855359456644454428739136511536598077921557815711251852673526990915297462120135906817746563749274657304745467474939773862118823483001784234699431636180798748386605133299556285973221967044923032716635735720978097115626324694659112157701534715971248643205429537692397542583865679583268076836523420224186179970067701780582453364467287028047409784707478817007721156583763868127292733818455939906257637192749254704085610255861921845795159824760778736099289619440824136971219257205527611931137513791920938163077206833153200905170421083038548377998366590169498621346725847613725901275654816616135638098746611497672516293988611340043957163597616522894208683721760997292844434857765101505894819777435465259359010362405223541477039419431072870234462931972347080524524519454771577416706031729368288029153823480420620243330053129366336336352124514548552456706843407518416062707759294481827475635275995782422946940375295125516743272964547736633854878845842552796446815562782003495644361881917345868965981216552422530572160665219592364475113502756885160769297843149286858124283445255275173820536499039401275636535278437332899901872962294196198655785516387080655155791362478395566050886357253965179199394006309126676717615472685485036930155303348753110685297578396581430045458992682069974009692959198735964700450827582659738567276995972524828251454539714966755227625263496590788728366005507322873784926776860150456751316632699770028208406316463103593756780695186980055577733527504800444989185922548244587970106642663667739384470901014761224506391899366947764616114782835411362816264996688498344352683292010833288785831760676251252682924025870941802299509065124920633187420218314989753791044663475237535587026160797991702579227472812893148654403934608774037152769209962149353563114755446827797771188566914036770251170547264580968351008264064328174797502922747098174372737284090651399369931245583605597184219693875656697942507437835305102051584745108706862528550716158309653076115835371410670924480510875132699391637304595908209653215215464727034641978099519532775530191883446146913592134598683756308302576928182407731530074416336328882009027582013415539177925995307671937919769815578731598562969557916212297046517779481895190078916624334490378007145290908961732814578852852173951375402743107090058976877288225038410965573067079926898284096079382700787685780153275217449964478619508458626247803415788780268941058331246678606650856637394173623914471146714708262563500704094159639294581810643768042404704752961306972924291184247927766962992693468461835132263636821744842351850236183896821801055689958202902091821227297384386862182970592992186605069226260277666474552020487034500090188796065671053162244595137436852647316161873955033857870431116992813850881562051861540697989518524332985460456322932979950254935391850896338035278555631993509419060634909744246632144544414174407350679390829805565521164781481340079813235766325986771411155725447310638147615215427859147640100689156105963539936635531962523778150492035100638663501212309459683796144073958004640357790034132805913981040507159192364151699367444710884138255676200850194606883520983952169474799402767450596373513778337265720906766574512065104169734508804430788445068254537086222796411558634555634183916541006621196415304138759167775770362189698827290268285109239962014945858232684574350123922270271822919137675828989265213655489686620306919813918478769222959188377325325810211883804781141210749877677360848752642206694118383943959482638363384225345348989389155649651893061582811257743411418439559486862818923912575350669800944721662637072709170872474126649739707310012031120219091701749092501065715420458110742748970855365417531301722329503654072988310874782497623017528736061231255824000217303819640403738454829833591235622394441587203923380552308444093680175829388735286762538278615439520062713477871059617221039831059086987860458438826479139626979277525346198691349614903550064581961817425692081476673202718787546877488127023000404435975816914127535531717061641754167340815388710357641780164982528526111805615784122666890338951199489320802974177103838020131398748793496480342525263326915547068785681708564980096021000800154484933396711451194864886250092347324710246199911065103131489637201784239063315619373625567408749233211745404233279057222103385605933885839632347098185909916429666541351176307995774430453746682786834242151812802198309208768774716705560722647843084052495431429751565634448507460222952022677502651619164259743245379805216074865016857739319801494101808092906703853473567741378200587429970315747178731600596780655944707630961365384389358138748238529027325562115591301446362276449405034808755022967058582678825727730676629262921554322603493725067970848945859860499774218228761371311297053767967159815304651983599219142212082063023842000965111009310338579236607922418122326633851273934092028119290399921569029579360610395489833146107162597278148176422919827920231051570372940140478711694451861662284936964554295248335695663027785937572813212620433791820026107738683088660009642343326397171702900760102049610956812069770043047350662894164091180680082619324652488258389592895250434877778887620455580364923243924566132571933051509662819038580256108735702134135787830105682617231463695350178421991098596771406310265436252707957154928949425906531281694612984391425257644146549142102458674828479542164744560580409582260865838288302236837532989494748275022192026081883965116240255599434428122072926396476152037118081433222655923513164935956031103437758563167946136838051781003064482052968564788848745553641329840701006720435263527229129735404444006747309593337750505056800418629568244341877727389604430392658248399720056783942267046821785090114662013631132528539193010705189576571448981292478685209954031589938777483004644158798524247647554997407846131396308811941367286373329622798815855220521761984436386482952042496563032818892499505861113468919897023251615966604893644707011464521362826390029072808865731947238563355099859223639827765817746471070011066965517186108315042671512191555518306064635037853483008225008451404182282198074354593500642192457352978301019565015064506293253572244773392960650095495976935338982783458774715468179058589219986150656755385522464460785667616650521149417412468943868083536512642848825456111669026573967019881276216254824183390038463390748516469503344577570120662624041113292751849852585716608571897287121835416274304971426623358239969645530080662881654051636369496564569662443615900832710057833070391050162589664250703134102137208792961556204454146200139157137963457193534295863305990453401949820061637220967334190491028526653406183292383438586729102996750053376115089456904547031156381289671795645108862668240058370461969420600639190186528817833022270385346128849999072454256565183222750948047968921445377907567625396607736598908483712224959700581618153971195438520212484989259857145931579996580677166255168177733099731380861165284995618515268161145330166732612411727023448027016106380679880541758131618240815049866172703374694372777986503273235150608832099283307455019652670287701693862208147185909577023317366490797563341989084519174742624672030996687471385530979595168586642848341045023450187774621105372155401508897873329757486345168844728115773075194721457275998738231307963143620856712660858276979214714192547954472272548608347067483245908848618308363512883965033617915753701901078564089725396984858443851402494104563260119877833640036804804239756229663647839497961806764348649865527827708642592872151926689220192996186998646890259460565759243387255802063237591276408298030223422890972889306406951810962985744102291795944239561527833257268388540142959389401549090790727415610385139329896707671276925213997439998916569555689408495309225401288806765343038075595912645547423792342124668690147857914210200183935224166284617582191399233380114626158199445914683803552038656438953828725686091988271221804806811745484204138686220216765304504845279970884805285580435309822664522688873918380166631843306166162076400023798678559200656319458960396549320776925419465259538085684142646532876531110783913543828808785463138475017358390104239949964903492444872929418384883935065441213397390068914604164634371863210131553238700291243291322779550471260124106536610182734412321084160164471067036298896522316889608876142467519160155795761023695321742938405261435090231567773157107307071272890894905448406866365604769823891920129990915729819159710905020119240443184628976851817755664695851625722737644099072954517625917243146246535114888526288627691892855261045289634397671647563255765319265725959883780582133274886134600345131784358641988641709109451155787188049691875943965918347796593968870164797758593800073417455304122960645851373610656901806502887744242785954037099631690209586256780968032844177689471406974146372952769291513306702801131617280257123072215930995058584534786978039724799999758532532403893617690277195836537315485582515667447368581873346755744465600716430929828113634326563429404059061504490021458138640865871816868829264256868493861750363374409198939500351562777222253408562059676424929376030795459006657139050954997690339138775733130495146800645261040546249905048226907147395960177140875692896992307379284237678922719994358333332168744153754122882902036551464490842471963054739958588799076888564578599260842060759429377982074560679917089982778274701394255180013834293967718339372037960303818085803374755184695260271817968150054316706823839906495704505338807200655274640340542812590808776545899077864287187935968081608567248462579726826179495642965409812372173745988151472058137478973174132611032624017627220653577320915759578808188478520220100107785598535813316363510899955599480801987319979540383415483832906562854701343976257682933082460890525561163299028351388581708137937248400182224611103312976516318687385931227967797968729420897606781395397886713220640677104044628607676386094008132821178787547360092653930704590765847986527673152533421515949864792689937579197217809724604233906600606594901415471026164035214328514823442427582216965810612527021807704505680559661452845449755311118691722469401529198708654985344197812133269233585974774966713981701985470583535010526933207549166448494304569071070456960127300506586140495721553103411227696853752802274461040606016166031767169887090845239975752767945104173939389687236154811999676726397233249447258193710791977806430848547215910901495815594202103819423360171023812180127737655047506711919474194779209411560438707465995376486196478215174447181688529032727879809660975286809687579710330562730177239696026272582851503239480204003136013951932597775738868579532549134325772697702104312760599735323978447756870762792158630028734315794875148303392989029074879172206055686683724289839201395361600339624040730523878253398507200484465699421897169136562177207336175661844547173728662075629525666212384990129296561638796318967319455716912821196537585428470342296540445360000055453223931005645767796603803543739860371812502676834218286863714255855458496022720998618073053850396437001912155952826322184268794910643907702589567831866488868194851701546928889009004724847608764703337881641421354875612166410924425281027152488774986579996203497924147222549071036909481042373396892765935797512456966531166604704906406391459775164212846447202450164647123420163659933180573435660829380912031796058220606779882679168434592780869174142503260488917710146255781149911938790609381080261232736076398527176502031749587402901463803866375177909063270096644966107040614420944626581779218838423624293420465453421178244182801802187311732544658277580194406925760106809748193238990478205584552349964903135477270275090139662399942374375834608840428821334468127034235199361714186754123061549703811573923539282873495922087680120270809026502786843517174207552985336452478353022498060671463180911546622275851263674865314256324174195162750221595636617010844149505283215895926803631495858427447231983565210939399893174085363633638971454729489205394817984545437180588229254489232622610870733944690421245332124870525283850232200396027058321890053507656070343186502097032562405796508373838438261333108979311601443741643302677957113931596414426666095444570937558318799823725166185393352587076681386957619215265182770173275423329299764037308950975710207750566361422973083323283156519098786507779451217325556464886018670670360177533870444023356306480664297025778786194067316067493029773730136012821800252695550018797758051800031962661601681074700292501572462040274830381187233559221994078301065879889716207774881790289939183997922106911661183665874597847759927406435671886764824541863942738110505935301067418800184469281856102261043267992331208111125036725436878908502436567077349713679568719717321461156641112860322119540370317150537622169976994101125137320917187078449231097039443264961547409939170435112055957611234109317800440285963703012038202988505065405848361814333864943276028777698870176482986088232638632017149763451904757040453321270410693376219964261206799039987077196347160626694504114089929416293921379791875827549702646618568555505749001629963757617758958243091440473243735699187403281882002297958718238669162826705146538829426042541430366627323385766239988288225436018087462091712282531967721497715138118356818453751316460978297077447550526255165589768660375996920963342867130523269167873484147470665477038444563247558954938447016016650964963899559816617234796371333731812517994289263069177829293265735010156246395624041949341682283072865903141121163493403472481460662367405806571311699984410712790540237303829498254727270385874529977730804386481616003705657721242158351829919420374871190666112253595026993081164931818151113398293904537286439077172392490984158164492206824937639384856362085993239985787306648541995054593166285523454174684152590488147715799925911279817748265525987021010690646457392790380854170842649104824872720107318322016624385415920859245069519622724121506391721506268757314141858707175216497736013130604619119240314800389623983641709561540409538952233462437685134704542835064441950546745822301629259016560990284192628504679287226757339632135222315602290516446514935346026350711395569804187033485512690508062011189978852176276270739718554534011103115730389238275284836457905376358886623180827615156233471374953752800224589754293642098103598935611995028458127421407203030395864538839494235815806214505565136806937918365004062180782801784241872731186939678832069135994335255058912893204528272563547074958538444765724900369701428627983881263149374345157805104576656808248092605068902367799614952519985426313184101175228228861320977360573985265543527252568802089992405962082226708255458377310861720155089289510816818057208953361714210275963763440534918226046744943889262998814656396559181245811541564816527287564480381791290427953196703349414613682328016574728115888893818926913146959525978064183037548959669525851467600770175962012398002974299923182555400144928024752487519133894121578719746935395868227903601592454658215011833477038168691915714582622560389264282214748824909579692922963143120930520278461860768644663402511430778508472796433914996978045231515020885131845741823721751327065685941914151267937494076703178053802568337731715454271353844422841741381459672555406352708073375530127686607482830009219654743139938128861989104089460483277857608902414587039831540638817311872490983384815606478958415824172120495579613235360980840608261384803477629957201003685214296553186169235712781879652086932654027585279588099751562290431950407193382377008110783365627984252110297342205044530966204679253983440220310176096551989473371252568864610122936563500368606756660623932228062648773980118588941915404219548461823211688024584147253278955499293578671290266270603690549000835965182490760052883295930139907882857382485990658110768336400063785463177798066862062276537138518465795160388727172544175268011817481746294361915142159569988873889532383668086278060885881110535578007026715719376077070708531081784875993967761203421351029385948012431116039637699527687078337357696309189283327988971087731828668985014170866979896917317498037873167933506407872305688845334519348679236603343398924655182432895463867983584750224442747453234283407815899451862927734541141188616915284713118532213737283871492775183285215927056836061552081372009641654169686622384116710692100942125682301958883228958179208230410248093705951415635342449760667085266986442296444661982065783779070498487413528623270987743192590697105029999893519873991249409437631063793640792789808951930085686653242604983500531564854090556470770435284774278662173399656060032234351302004336253346016299584191049717384713109513558741389886813756292873799724697716178313868019085118106446236725709329597863304241302728896982068579228192009692915266238519509708798561280537257651135479303018281089947481225433046844134844244926584769107008522394574320741874350571596110908941531389372649713897257880455011793734490255332940599465077277630470736513313939528002291728102488397520436095902003122447929576170991743092694438260460693620818554855301719058832076873255522693749077076548305257618614745044939803086790120946435042508406251116195854345355553046309670687576279346247838853523899543756267627043777683409999840070400229232474844837545391631775481560412048391579462029930144392906873155470168674283847449420561500807576936239092454817806791789591015265158312776749820681184457572122134021424556471107516865434035972800259760064334917005232081549114047220053961968018286436705227964291199726973930307859159011873147436859507808479057718817035558810530309646193578517490127208052466826562674194164483180075889033641575382233695828737470181430109306169587935993054509450001700338196230854703334417375546602978288337179398228701738888523033033032166373538404100590754014067935340093475753841398011010080852830543024775657394055649660549470721430359108668705681322697024417833025595407146526152555725714268862668177080750590110303392629891263051759643252091509159120283134856335892170854899208249451057066725954950283216056650763894049561486642015282333031191188755089046765588840844457384555955113432363947179289056249706644733822397527067720162321452961467547998801518156991179475362972957234835263098640494022408169974192916840799513442187606132813691061535071153527177933337773657107783039211912096157689097594529589706949167256778750884674838085320152252160632854582550812198763172497813704424800306355840841257512558365817372247270804518848681758714817312407680982270591448310617537340283740243446634593808261483473471845288773955875168651287769780185237488036140221469846733479530969761495131522145086092959814757980260801177764100607105200735075069407241272118864615810274570291438787942619965755160968262339476020644657478525413969008829901713183952703028294672496227087810217702041030421754430159970742900012897763669862660100194421808024860561319778682135732127334709302765451840994845527335915585715670151263258733900030745200208659749749695536069144173548785897156758983484430362064641801620132956508610753021686819035232389008107488739291132747752027716200460924904192446715548031295043393567687731317644850035500801422791610547709174255857811897493542674451592677267846001955706324333854792937166321904723061974575882865095301287181085486766634342262054703010062084832280217924596172223609730134852478489557269331748887757818092892786623888105805285791385346288054189336540147369778899776603036109524907304724759753625592226949273779029741219765843397383179297633021557497651371894461413671832726091149586708950054696645347639537687321428110382202175706885497191452946088483971373814121083625116913853006879991395431764061297388397732254949581367705924867648576513598004081419037696999918307845849729489680597066979068497108389869556560508782581739335627687245392459249408043562630800681114266156059946105134491865628724275189991533024762731865797151166898562181429177205777147388186112211939193899773330213654286376183963436978519876530476343421272696253503360985576128613390879684905203965220454616320254212896419484742137338530043213526641368111015639552881491587400946256581201929946964809784457369750791562880641644671797147793961416699928360206132564626839269047135146289431759209723831458510122298935828290587948906018774964717251850494479908149756567414168410881569996295652245052426423713957382539573881383677860142580096078355166953838953401754172265674366038626280434658612625102975542224910109059759756099586842301867106262987331548752495094794464160396988717558069632787937617513547426047165387174724886309367345567936606836030475005547946528338199933438079844152072980476208936993696337988572773313762983020701843478467713797105886014753515239215056063107065186937814907440789459823974977747531780475689282761021415557486588411940582049125440570546027855919597473107518135838849454211846212825002550087665295194029050079558335196627724806531832452945242686406056181578153847766953202285451057383388410996856261465787755936497273186436001508368614265060499198218796932069823431096654109164854264927212703457013348046826173852053652312875312984777616863672724963369818799663515644072116860343078292641129677442339118800368261805043599357061274710771062535130649501455779501019887604835283487251865906232642034116292334247701015284268820189716093056529503733273158919083659449124068135808400477983533978637833009186248745510830876463437198067103740165591298998412207324104130030678157218234878211562422225598208253824856317953174868897026014184570068718508878988455506875911027534649829976372713590818415947834093897615019175438563423218959535972167211177599449465084778332536086156868716748174434197244033332177881751269771441754840543441585426066556962039831536157043913779473391636985395202744119810251510264089566840824153602864287068013894801840359292427906484234227957749427900725294310285357809789515766576409798975847050033863575376846715941689941735766231620576818889146603726117791352338367021298835611054191750584486593131083145467259389254432388143716591054875872242686970956737307263610774443653235355190825172403851809368365147305872652302909328477768750602076418619433831007510210384262021661258084914440953849579216897305524067459875721110618680845544253115808915672711277739599080202174370113463785846987871132326499199542464147386567653787885112309213859793575734348599994259789243165242382226147106948249497562672947971795232694973742670631620303174919012884432469588586339400358774727450413494152720242872921833559690759606130024738675064607814706715225128941425954503703515856590910561353204399695173916511279474353100498229448523667924560022108239616352158265707173984253002627959100649668797687848956351818075817840098361618252865793355488474350446562342939001049580306353655804153770061864723717258546757873474639700357466140679259671103892078680563667368985570973168299262253914076849736358744308606085813669258460961744167954282381424245780581828734246801064366127701261565022389225078374330172968915844521234711070426619647433689273998313596773361473486863374049011491469524868547088096047676450648058151807697973530189339332356402017861110762529396323674084283876121235536753230416949346019316231374439871666379087730938882981999622293238912754233277512440410662134835495484560989764402606410262018712715345678630322406087775243013861603925644275859910700827504680839143893649129920511202096757733167101184386120819520077038448049578769798389234258946140338107426415564571586640515723381863604222809474586725858796711015205075231633257384703583392202969864268472516495088242072538550551592058961989181164478713907553471014881505118087354909981791139130033618461923828264265835433310541404189897989993780270485686340631287387959583974462957277586088696385373606009180817592098601452429374396771577274791638879845353711956114740189155234722022634718713842373056151956030806298778348974580176436593232978019331663519649631988516346250938506652920029111656109340736698135049653694529589581737787722244260979310743888351793134710558958214565514265325263488867599586205356026008581253268385979605488997446016639962439857567152483361526333403716397207880742774788783351386210146640998309794409180824175959921677911467003477059691575432474726021042075732637427660008880485087759371121364014961825747403005519911950589242233175888008943647899069930993493907615116353593736254847836178653205456185614580524891080606607161756243425498984840293523497176629621061121129827289867752932621231223719345248887430441514448482869310885031531170774245243896863112174077939817281868613932464499752174011436241463198439351080816972943818596022036478639305963194304418591340133044369224981785738346440725891453844557370691253295066829621037829232962118418659383835856381319493685323884783368275795439763108257349565958946549949367913790271375464064218672665406988388173137820816004569733206619178291270242108411831014915898265689614668626434967768705447306980711427378227066921085335023038710562386271668747949531375770712624039933194130828571879252203497293965338320606198793373366844517906672604592265368141051257266061638809597725705229195821708014395032470578189085940864846790490607458902440480605131574372377307112455379406231956561803100376184113407194953869688647780626984446387512506871210631821323351481291257359322814541331075529810221120504402265264788212524403854446055998805740051218983967034197248407973148657245103026818170777571585229422739018504839028169509427198898064613546001617886717565536356609224729821456301667893674192507550093825769112255575983859957381648734131378725083357885541434349562769568138859932731663701744412057283611396309143660304843854469153851711366859471057113407476517882320428801300046632637820401291865441362669644410626376609388418208201076174936826600931557137483350499237630060288430084128328127193626746153792517098708093254170832184629410557448454124673425390126706394703905495169047494644175615818418975522694739756910181545630122638676399384768023910955351606715832214735184953104813441243804097198611165936826596478056690311436799572518876381777502882600521710191782318710620560141452863840045550383903841897924800911867363230494984299872834251394245318256148065906109917103969177898177378377928340780400585933591453202098493375944055358042856762736718853835904539593803511079921629957090202920598985301321689058718418251957781170773423110470027010477712128478811806928240784250335276373128664837108849548335405820919613861414787452009141239063901805573749578594393205867208853453018262596453313054681954768662751796381688395384702424139939439249409980361776491228012529090843179058988015478464252044024715378462360619270927699168892243792277505537236436479767804203884329819831255281174653014535103522977070671712043904014551044192392521252521772201191307476584443010313757125342463978531240938649102824756487138780002710441285078013477037585349565442492352628443166076559092526889162864346096928314133451820204474856022765291871002628059135935325671483172006715772824817079499697292802792214667984621933588489222835964105536652610101387714226985347246958359427690512088522205667840404868905743923206805475616587481656598644972069978924091898301746156693965816688846471554165749644714136416629570324709814402762742312407130199587391414127196116736003505942960301174647247096014451851756324005261880128125555554875981061294460524910340642238353490236099571418682805907271490400366138893648187347479049055970097352590152056138586885848499847604530155249861641226369745188703783910636549146522429480347098248019386738320402412953012003851094573405853152881731869384908123836540238728087357139054651569651361327293307997246687857862102305467672469032561864553168087007382869673966630187993146694881406227393689142900026741402912771096461269048603553121122208872546114176242934592627095004599734520527071783709663344636788198502256009050897831739314921649386503348186908584238790247280570647450545751279483099188366965028144831858822704221509219342298636385102037208080348340291458250243934757374508145921382048798790208428484799177620610045229879348931593624604422716188288365266288767005616988774903372384759684768897545994108361900040181949707758268287072902576744676765274141376335509362668308987578181008218770433115660799825824175332689485104020511146863779423829082903874288670395613626723858668536352219829974765740932709427930318046866667938981883580637672689840155274794081565121326261290454387459584368130017482808009648956449787541734634959973119710817567519067905526596413867083655306778738352666050228296059860498662300407458253326727178788918262621724796744620863928296791304910867799513803659719092717831389034668320550926706644335927039978246911488621193990541141119617298823078146609891844446145743900716273193358164970237856159994087099004931897948973585377553718979288624085362154243744578640711801503823527793437659068131089752527961730883305545781548340779797781973682623310109395844033452792146613964628675906281833942622207937859836324489193740126460061205768305614358890544851723231482448224558152372456832146402124244780696504246953299108455490498004282185685965796986104643228403658101001396525305670812421593980778380409024417843859494027662474233211242531603290159001554665682681057067713777538584198615467622477208412909194053264810178256736297351242567447993821715596480227575110074040575051871409428887155164074287425534229758288256395636203406480444506890292193061903332910008953835776535513871653128604430445768531629035339007487322070588819667466555901009873947835560024392715327236856275329731121470281492245509842930372303011683888498429869796289259432355104751553861652502863485260278169026868208051540457610727899578854160650223553771027575242672171541487736169862781393271664086094806737799987610175491972786764875239184938672495336365090391561184172968111702925275884191796427602235267690918120140689688182974525262340911509702441253339013986074385961526152981426709943950611076709062943042150946639343846129829786197702032705065381189087140350680477113457302744607767350216814836802935768824914009399549468842744897506185077240531472301031846863707605050059829813179131559734069250578317440997142492466057741223233519069333248108105224315831050809119539676956391647366555409865020934661312056255137994084359678622855395874261749520047247228498463880823892577952900544408062682947075233174624817837704614363082072951201171810287678235371890390309380650440116537810739465369640115416050987359492489742776927246032965493924039381377095752589332549212721252935749148188880288176431552647569957781430799920836274963571094602160649597841410363588916819415536791660680076208853045201602512010303879888587038600485479433431574923453546351504461453132623265599953554792536567045073656391799917451921684992061394200429363800042586028393505237736717571376027536193389949899738680047656231463026237352023113329627534121830496214269055959364249806144705538304327832359921309064335667428467883978585254872508092348562523725807532602913784555857710335514418332937653751727739432431649067040582365018243761533971266213842200982986500699922335941911778189921073534243093969370371964691154684280536532417290472747134666176590354481509203295517327067926053934175770151375305905023739360860586914480175640247517262480867792495459335835640613239933414695855372671897514473714836596928029070099699469901707827677378467451557038784757211544849838845219074342547206235230210564959414448413903317790499273806802521225375713303509346081754051021234107846932945593787337178101320511661490382034416607694762550793826513415811473358790852093431945687585287857527585224811559264777011945959294375752113083839858309368386750023572879365706155420069014459490908220130114434150514828069867800818284974219516812209903643429600318251416816234671573705150854540540606626342279778890071860586932499031654980708440608402710490560606839537232791851789412113406324862480568943634382253609347684609667773090967317727097496916376128101297888577780085806599644313245060866663782551535282307126366393263253614736822687968368245294586591474791501929867015619730215715207750847848754779787439295256113779595478137159639005163732777360344506892698886358724074405069667396432650512285754475859876702968281016103563877046291363977861771467474060755169361317317387692834834035413872371377070377363348506214592704730352342169511404475639294553101073279989565917772744365088805707798490971570220122602239307221831002234208813883573103703621173895528573143560546726955428391363915618004977998749467128613338498370434397852257707131208535216202294962913615678986986677466889025633599897484456619877969709444330541881622170483296004820670952770693690508957330680563339967035169568690513756864025567253721674046647609460730022517083866434470687104521180468045104312694470307411929345284795114889689897122251671118985631483693939847749540125907645791044735608914277269022703154454013200837453183946776776712097033562743123446391532494600962579246810243564464505883609905103654362514908537668641066747559979446233198224455977654704138684663872723422041222917477572880595422613451060238054992465751230410744629839717453019902576625099633783543835402132373043338380593150191042270551782102150054680582766550179145946678173019798430327123111527506986106075190525293480698487949472034518314312436481118744541016666941517036737654047833368716663033608811295910558168346011355965759114005067629530182172969001100641055322908636584814470764806043032412681181493989152693359827439383535896400368197900668163645391998396435706417786496099659682392096542760453533905088703934761209187702854420229269834448596871399387575198390918391536972830216302503582881876603542544236310693239649083000843342568856451368542707793149968553785488604186422872408583126776053448572191610155290223644121528641932654097044222486645607698184846884820420689020138771111616179998610834466757643616525836588655935638668874996837419382164576206130665662709057059109943375858347834315221434302625806503847238072263094979548860360037571950818926572113116607737776618095531178337568209421790912486415713812079220238656497788223712458468077490744309432342473207494027868144971781929093938884750268369333791355187963403816550493523057567467587551742805042029956025429326886584007025409572414267409623187907879103274231021612964005171100231316709749770190494050797501118161181824679718312542714751982696458727864865771363918696966200815834810898899994133719176413916600376969617466006451235280781206453014059562585023699681536870604454344653023965860853743660958092630288004287762419498408224110879120951897612230127951481694292557511523773647215088989871615461968819184779751160399126325322246149590305516428698630403249759855832895001124900774995575963831430986938699749023452827009148013855823377291257781506447368283851562335228560098443713072184604694177270626253273010489055446734951102907662953234752241939774752103112547304455634692859190069811757191058701984268347002001855520254140357137281849963175413294131882077780451081843550611872945413982761352474402534998978569108519855333374985995254921485818262437440644544927490250771121270717320526765231068766672073694362532554057392885995993357740279409477381143673082706455327104352544870390355285277890519110161042193534815672752814503702865826988230580156703228660379931050517259409311456670948692233187262386368616857554633345384044863756345747402186036855567684283699054170450757421009434230799332134895404262143316904965301601271191370682925487798422361311746952568234009013862177968293713973153857840917532547181090593911953239956053442593785377284387183833499539191235727976890408061918004079835615083014589644572772492218624836985999774082740314221254748606099044369426137520486006993496210417924935570976450779162060202274695161911749714103454027921991907212461062891628512636092883900446274638543702141692562690800003268322308308954444572318839193853777773000629067432621407278643043689305350888638694263031306674837701802942644603505984480564237911675156461575526103179933816912370321997877286106513054087123456695199062704252311132760400722447185005005552655804375779434384138478427091528989273553453914205813287906729663255489815190941702101840393992711185152411804535359088014019720975430282420241416344312581632232928068797652761979487635503641357990968957440749390116788882466800236996560659803933906391726551270335142211915155694414269343436755472434578354914939559118334299020139874285474577650611430434004962568475597874395364998840486139077976535007465886066701959500817617499065928415586708196391800816120612922385750535423401384794954533701288560998395175730240560852151233108868871762045865284000323730561330125553782320181596571836577793681581474707170293696343191393375495604601422647484269978017225000688427392657724026365447066143617343318775245055410199367049620096223024338520650162549833068497029305655145274165484706619783688493607026691485380611234727736935650960694818684708400982411618500229103782339395581407260348010289503222580939534947781128284637865412895490889449102524261267937815042423898047162172117140347784050655711691693443291510961930435781599770400735089717410610260469556610299909773858128925288309811531478745271831125910841974384620996497041230456596019619361298068005962858958287799554569252117539954147542361494793310046221250300778503617004196569348123488430997880823391240604736239658776406366845156302433377503956703896493835285353088859271499465869577772523491510568423445276037502537706787127719603992934251665921343419184609452079854511844239014217528368503642877907712888400179353889286024135746455650524294306233399802111963505220400460807719285288086453093647749253394364475936183151945405734016074933358120881939356295119453476855898522190304620628816441483887519758395547326552610405239358843888697059751917599555401364630443200364428055811387163197852072450266687957756122388036607642938767730463838220960719544421675264333577655251484543594053590071351669868329017992761821764894481081667949571754932753192735064079339578417540178229821781316850424342523321689671164622958220770300036329227236455948146540112852861231731184673181953856158952763181411306566440923506450938614657050262643687170467959563780981812624189095752929818171163411136531253401326610270753898819564365287275741579268403667438721172803064764022362146430283166938960234073165912899718281988644908306240768604846878242465567636555009716405500577767077370194370107895019127404117808968810265186604508587896290822587718511345500235422846023299155599573502695556688209609859829871344614906321572219074264623874672655974374824985767358880955089614334274305505865676095035544707936521581871275398511609198923528645320845659727122098254643911676022040880255360907360881607674474825408132812366469976551229754314906118335795154316221945042905175490609741886185772041507536569548516334408795041492239206896283306212412171162388465268226022989125748623597899576858171941678119536320378642203228648596123251732183137923789529442199944253652203070096106553620962120004791488705221794676706598355599701345740578118799564973126548549344909009660746876775214751391316284364628645816041067721046246615538331662341877602558509496584227746757928641597951584967953067181650601271242022255706256525532350804715384455570345030900080581013271229942265560580772532334935633173336461494073936705404373015171440480625892877191678326052483060193613553191035548526060258174235839777029495781834895990000831358950773607667176840583360442055996130792746555134370748425986657932318119926840136808867105430534744521755797021707748163574517331793484208896774198390760734052986986343559004899268048496843873967242612677363739003508485637444271443387118071637204847559571440351076727261818355704206707372002741138983685532754288587705223624177656833491160682066948064632936925531301126755640482436449681153814567663665539196007984896169170092601694673393332572861422368877228861247771501018450946681016729407031477099356098444624703435545259147412818124699943657102393590616971568328713869678008430570302749253282812655511727183662855271676726742691387327186905901341646484952697045089318417619673534399207759570810279728618671382016411593290048846843639425712490139968707959453437493428790325051135760334115010274199899241923381127723224187864436344225815141879631868408559092587298897406330836032604896619334312633385027504891262663152506186539692483877976055497343996392070862616245040181073616621981549620086793344995609822584345821156600302252421935106001118165840624458521151617413605440701396594643293355123573143919910173847455622398687988627171033134904238952295877287860843431104346726565119981712027022534716410017225336136332568542537683563353955537245833736495353928753215860082808772324502287482049641906536046810627059576398707183335792844025446003842731486430245516930985278741644336361481637903702133647586254800781909906925121398812880728758070439700665484749610178507656324063055402126449779024125883409085272341471440274487379209229182535576138932606811057242602805242034107156238416555009595374552811240545918157739462797190474439332465634256401046552147047760513973874353798360739204384233986567391168067620458871759416904504974518636352981812384571743673876187666548912799679756347672345091995463617862833395413787677939598120690168058606646484093663199704663698083274843806461066733777570642094203384604075697193443543217615203874828679721310881389026519940411514865470709411243500275838721750952803994366665626172237516226156171276218702022292489837326690648502175719059028472696004751643281418031336334655167187805266826868139876060960212087976953794162164917469889155468101911082696925549958320896116151755345841071100392467274020900185322492695075387257596869103902587502275924374790198928625734197861339277854582056483041274467252881334340085483365472861484392595664830322133712540275007188452771969742301070791538577894784614057209134951791777579363089822644971718935199084265252957034698376928121363258430462985825324138388649937560522715510400351015561250640525498358777048936325873543556503841675401174286806463702096090169242656977255258114583035774524867345818053455322579695028730254673848764362206073071871365023641320943721638342196630244123000322971177444089701398128771390775328343606823059876092778616066812330017956900827221041814332482147261587770897221420915530842600713283394107618756394645517228173902945540468610174410858985474180176020967786833183001166560575562411705366492874884229727309220486331813385254650108370422319323541873909803297567913379594834863203344851980757448608351006173416043777325649793863926743133164709351203217083448193087102645510710018803155062664119502883534852433364220934591243410643175831596948641751049382509849001592449984405244958480114315361181831526735386397694916986225356268855466438545950902972338122023679475722532575211920524877816423052537560021773691385479125041250631800346053152387150092658773522403832753002345982648574017922532285595329925414782863913054545463866910305539001398068735899534726486474104835961051984758836927052016876365357084458231774969840208652287094851053482621373954069589581531726916032497936907500949788008444806891767141729795991380214939836480699656484789296611135832376723780612537670857518787948850840962180219708768436001095165810458474691834114165499404946654604994372923578553619801006563866151894765728477690234667046387624445329157707954445721066298883279623914768187372925334818945072638219198427451348607531834557874211000235672468356409497026663283230381694274396086261843814015076681794562198616523901358305981868318435841623629959593298928003209563739349795772024023218263032921564786628766669218827628472238421365600150537142182379993657940230182259408145550647220299150232067210296510706728104119027877525832292364223389373183604936917368535655541213545252029938798044490285573620941752022581816504766632481140256399727456197733603625683556948994924580225939004622524829557747063951017860210028334700318082541817945202208084305808518458035470524991718320949615109829626004612182991145593536112933893795064797610372937149056406821348295469315100966095156407922195804710429813570191242790294051284399504470554740461454413138973461463868173919205782539638752007684597382329207386610026881488356566745475027713022067432213600625547401533849512710835190891542767931904411714666995457553373347746332835469761782939912340263075060438436454543381499118532304751847613140292808218305961459686753034293249116036581663772927798743508917655842159797783676596296004684719781274299655401216090288217464730308513840581676724716155936293242576868238158778653359956722828561490932902597134348646709908218201266573829250397230107168127163789268163358977873967427891725335316866995916097703213903993094972971822563331617199740555252663717465312221908293884719901502908439351901982933810524593343438187280389718306596113703820565232938437161238943321963926815981755037778355177388717053745291151372101840821327103671542796798199944697493807898734902906710994611751179642773213756501391765638393754914613672890458204977568856380791793507394432011736064727940345691824890812464330996177913424765411692872669986738381164574072250432717701694042319696004709018875226396483196435688760170748231076482345789247877275817998903857269979288234914665740489561846663548233383809298179780024295343136128675544577901733266751915763787205596407341060143100785409712949339830872480712914579797348554519525697268952367653287698030684423555611101849112754675130582318276445077584931097131529300605738003005187270936401729256725184846663834483420689203368585492984387208296387069215516297582308738940630480326935696646515950772277151760769804137865524062033974176439380316551057490679895395177838836370550933015488191947268585049813634323539139893021076940421628733301410523325469595712087409217145254277377348974433829277562312506635449935618102728247952661467041116389683536234041664118319969420853266938735498987257548672508323979119103127041538073813364876690683647366632298543954321286054996967741005218822304574743136631695292752712478414899342528975708442098641009615196158806512778626179599788076406738230048611229475383005898871501692709521528836092469064450221054500942128933212573988479968537868562920267716766690182299657275100892341963015328794056691795475074292756446190341036683821105770726821397106432898723717198890143625059586472168077700591606959895210658324518592297692413999654087861928492538541837001897077411439903864442293651193950902632886994829342521874658034728360225442516912481521519414317309815276681138083807727391475353362648007623431254360732136957293523387936540011752799049973044263936896794196770380198546833682823872261555815167471435516200684680964911188518668207411528126773145813106010619841367928440113318565961809841235728327522045970063717784542312937763433646360647701035735370503974473226585192168793535374318254349185445542598949165580831179394778214965624265042255282677558931519845755477170244164103848042638365376389498129347485680191182645241902467400747698918456050044410139619233684968221929674719890218039322214479562258311853682248753556206080643015612627687298853245936669172276566227574979816676342300420731550292233203403626117499630597301906831764775374958481157016594290051953542996517619447881910605189853976358285397139751433946493636865993127204367059818520319583557344360040971096711866610809685512865135711988037153151338744327018105736090010029570815274932894653108699898099400339451960531282893460578274442983001529179652166321711583571968235047422374735118162433840152589190870864595695601348499974751667840392593183080089947394104794664007481620717076480530896247630697950206674915668335705578016266029625387279736559677557654549287422922460968896689572256091420954339807814929687474243668116519151703070191223140399244992518422669214814209362620287701213694291100046331730887099244364355238033776040648886528955741818109903263053833206591133477059044834136166637148722868737037174910570596365240291604405908849155123529022920809185032653467568142345707562998080447612290855961351234623573616128303923958564691977758330389381878917848846692067318271049927973198852816548480068463666838220197600941339342762838896193393659742366662608217967139249946270656188016117821317142127486013763004438508851801111540052466156005365857890321809816030515330316012311719053551263075267711490496841189783279678881820016457926152206316132381127319397999568867581322223115819568559546098369315246452691328405019602413912435916398104614740819689681743312952834936005999021137893033611172849429836136093441570490550375489685105752376424068841726908533909344819697363285969859885752087498657775453643477568559454424602779097792083079541229635190443225927585381365495836046008707025088786344538248510289776930981554946388706332992510843992421850902997516847886547562060925531457293703571413678379506508545811772072267741455597148968207923040837857251064442623113762242536027028044967701664817367010099376115509081074058661384902631294062348353024600623321786163859496489847756553313597315863178514678855605339534389172906421748053694074178540236612030716887588806667259450334774583170415234125981571761617169201738534066570938666935106175420437375412995064570461830801622185001460771498740941894947154335280539735964119315820707363553757083081457669531157315656123350871844257895551829821554909128441921375610004440174276083145395757664446798431239210762635399035688607983521932202015021021646120561524647950122797472631004631805298131672466967819077893979935863457164584209784370275875123579178082915304947383294728858918220761547764693257078143121434184362325210617791643224381860344231178541158527160833244703238100373931949137436474548502297662641687731781318898129530261454487526452601477217536376559521881311476514617615615481455241514201582166676242758405004307823892746126463474171534306241952672139956873810917482240023846544374140058587123920822580722068699524658196704251175916288391709912586643902423706488502926492933620468165603436618255292285823212266841649743695750124226174248155217917390526320601348865650396036412588855892705828145477591913787135698582112211780208837440556560250501277615354478723736954962137383548878263808142546781015184085850503042123679923249916465897528210271470710430753285900691586217108423851298808991984941137179701025621507418058346042799399096545426718093407061890170532040615615642578431157692531909037184699534393926035777410952165725279596520033011810964701351241552446817462382059012364545100512007084093190349514765135965960193576186103341810760823445897211603674969539899451545842904004933663281659590445584159992909334767124845965250073247087021721324694256680034577376007024036986890440763084381004575034688481585373986478859170152114709826301600609517512819628116998168191103721869841185541262172654470020427798564385352519123376548851057093565804210903585309276226168061771164170452790987889532748990100614964409155188179377314533072947412561502179622002873793341597455148721674281603883335819787385493414585162248261457715627009846793101483691871858199130830824046975850262553232612359699837341442244771754045704309693590243650158158229316267253491139100990867415939102982982389873798732928298593456603231198976033544941970234129531561189536029935141484985279978761523405357829851978807866972216717463092524173789759729845790629551463056386015144051599349885835766508636784245361044004285010816723244211602993501711377079049722769993172626129694582409467819252808524847642044917942541500134039365674265310063212627521261147162296526170983973244930036762167546183052659127586191067420672380141762041050937343455812221579304754624040295856880412241292184672797224539371751608759537598320361901402910844148838248494206260269510963257882056369923671821159835901592565459427070884572879085422273273865818504871472814093046501336975927817121708290033647252361024994339260327730913984041031722148627966052152380283674020863808196350917540768585759938030473528070005275212148147288419640096501313697736136304305570621815992246065200121618124779669947416782128873429485774185626783274167231981336528308179568819113399507408248306123176905200013023559008232369972527503318232049660474922128138132627760485814880130645786893051177525937134490413692582717391580304262525503173116449128997048613820762783541978786440905640525611106113325249714848779566700453004840918355224513967626319394595895905400906013158506906785729000149997814361962792852788563500025747241066210403925825335244439060298485749067085232915521505726696537034211168932075242559770095178847983280162422444847093672740670364141854321710045760044779412916514952391296068587161667869181251064621568951633633199751659517907406108317107013080750870631455563841770656156591111265271774593304726774672480055334812142549688621526023812843189820790306136110335552396576439084387278889845185437980527528666917336974914130503239544537848975580650791370676189057333811107597564719909432599465133709895351480342649526011708143729921687303196442809099268469836310808690152017011804787512346506213308109698301790155236004500783849423822611639849598987430916220077825052678418071333178428379509910821851276872285597584638779178042924673972215106248318657942516697168263654039180097639148438622411272454191266219465297126044368137901273657645163197378994189304630967921553950400955498651735010238418325696359928953680542618388353728267801720112519062298804270992081851239526898567400202820939551223819250929454884841371686571984463752294487271988805435211449044741552737212340021460347718387795642033965243481976639665860147564579343891255842541055238314991270343034309861769798196429663815839902884865740040968115429754130428171523924705976634986002575852180448246917970421104224407600967420384149034985910473242375520445543060439436815969182141927842386369365267022281094908499549531559490874742681380181587208749407569679118477260648193282371890960855440632274012294200574549667419715925184760855509066341784984267421753422800253758849882011789486043046983117975289130159587254674919522611410309901739753851206084299181868142407098464595596380786130664470860319877527025236179242990270999232208649595604418114672990568416282061046732035337224130026628242299016657967598458903966058168607046970306537884720333346054545841624970237558897755065571338165361302980415928791335946444060885042438136595078201485378474132956414076226956772623518134963617627135729004915969931556904787660089318067368986883800868002256253549070109469009885191890591907967992773196116277633170578035015956252415204522353590902538465165141099279216214493619182720486769523067998780966994042539895024169046930732563509580997085855443866103366106506393764384674189340925873287736598506071994096285541603134428313176054826466933308670796435875772186530969031691681176127219218480996393490527412607703530683828141805135069205661473611656281447205840014390573324681394343335176608293612695446349653849650102037273168913880296761062420498732452422002623215332324432963494083891606840882357345818318610702900796381386221223715225384066403950795805248438475721055817451965277907961148675772699855611452667824879500732423851131230540818784765290623553657749417999496071453663892238886382036693474931596283092795723618070274405135532113549568916317054731832067638709330874522803683552835017920171504621997679601666695465946554787357622071311818841944923904713948499124079765710983143783490173083766203677341767319543127542432346529446948796385814149105078726519444075353545201939130071187292523776237670726541178764363459065803486557570067392320244951081119273415404182096405293433399102418670925516896820799203715424792693182677006877633402268822029094651682043996994118040775064057809900685797910231172477858630685102477515340543705984704463272415390526042013219842109881187081299503169158802523993392325701112953260802348232323542793126126286788206940242889236437735982330589062743007631233022394092016840864366637338705688006212066524792516593631523405028209953546511534228994514378975058433393079092795709542585532860747519373393242097307651364567081610791846625000430320546795119317725422590543767173260019336740833205832443127361215845061305789964720050448363234073594694579816750939873050448526361272988448144720465845579149774325769388912252205170962898755723588096282340879116350875261778395164316849335292673007764498414686694297668911041984467100687726211131898005853491946814026623328116726213084691264839309210740264494270838594633994794339661977114590672683418350053163607979872066475872565475441176812744469621245952080179033474922569590611290052866656232316427830310161537655390406748250428892636208143762132109238700066973191820514849600132151857340310988529419415822705106555058678191239697139387785489982901422778730897514630399509779688315570301999890937981439962200953267968188476436713705304913547855441430114564848724249311852191094865768634701204753570332364444908587276556134304063806335371220858919286395045697647218913754428612298058682939670799406136735644977361739176367846728178111710085801850228519801506603378117685128195545521392250066442429278767552128897264075464526170586230949017545399526617969139375291963857232317931935113611873566268178645882416151823276080045562107284740919622704546153134102521029868915723344784192777102528271103284598003129635967774114105006732093335141315152488304855529130665712027018497727291303978016265492325493885826385086832909919384976243221233470077341378384253573322703342696363398533716090097912410758604092648562171055271600937595468022167314427390604377356876213737194662145120057770238278693000212069591024981889632211322489130352552861109017392763934326072862309973902644803098484176633559047758382251677476831126848341693197784036381843755285588509233325729164925531545066628308961932422046780837897240865692071098252058498290888525313161687419642319605801571019738084314393320358395271250595451544491554841612512900817962775684317733191100842855264804593082946734496711685321845104178590674488293413040950732860614096565528059790684582577110674846506419060699540162213986687665409499524637577207124291413959019641143492710346194361937521825946675494249403381956208767811632654836630903880706653313386421806546372794625302263213018388362187331898191122637873899468208892555160791345847560062100728110391852612090228380405950379061146963338356758347055739359958480316538152108009714822985657844189865446268510912902372308744655888335812487497355113929554445622349813144512604277838215279708756949453899802359300017493725506356012561320728667766773727411801332377202110274992202417244606445802176667088671678160192803213961379123168486794021437234910401450027795336014625973818733477886389733084561406610733718553602339341110496286322585712790525423309100520776965028380036795999176639731655006630436527064425022783067999198531364613347829085892525341948724691674040637262390219042120691424624992235996350847903477720014433025291326895887647973382939857762568059354921739715393548154168281138190368027860485897254616606125515228966880357583324538099115590136436841871043601804778643204439525086215935551091976172614267414780139188557458742488389808994380829578360520751743191560362059216209251620903478216428988583962257727450912774011909303070935910081239392302385217416310693279176167571398562147678642882647893811163411980395333295245942717474187929372280311083131559039447993333812464144052032362650527462474897712833529247544191421830564149780207756061588432001915733535806220954492981087269370338947597819789956774127368006109506704781818182320984836921491019099705924966960208164821825226271340076404409273322179990756781929895185616375923881540364282176021882791036160592050363281650592128101467155458155113361165219945648006661732766691562069781351519734449685127695694132408743171898260614587320798404559091336046825607821644362506476333981830726557538210003531849652329648377892680010704976275509627534939233103750297387968025325950816104978391068130141163993686968202561912015718137068240621456069393037830486622402045935140829999788591090887191123208260691596946396019161538115435360227265894098374526800733246523413242208155005845962028992541565186585743970443676178931710773917347631664114840325995842070119428878299279140766334257598334965481615179358365868170190619487792311288167252085466344231047438867005236268125449490374119780931424066489642485914138976432146327992956612366891921747323565197130776191155873697508448264392955659578980178535811905334369255880447440724117176290471683153456485700999072630484963750661874243496337157063061897101144154523077187748528467932541082118190383467325959327068675577877557570249206497029868024716914388114365970622218248773608266205976599143628151933698573917998870567879199167427667541517478424289637190999660128058984558873863344780947977257068856759496101777559890379320302752923487581825257333564176943377046804000208776576295592393916501593775433144159136143171099712231015948907476861092522101810819306683504334181640443780792872117153320326082141216112811549629124274275060087423449124580255543231810678605477399607060540167444859924991155664498334704363856130424678962645051089556037245322835948900057411080058913046309580444752665528867571009297678171557491677677719507290340755164949421687416371234131844259822263348391331861860069920699994065258044360352260018256195842789321849227054098274234377344042380503553400673064340112344648940786632928792968389800575138512671059845608578574456265161605438872390480343312440743211089558239399850549245048449610335111564771363855412822705754718969345084245276327169276289872598504043523648101666020380988490358968993629910003641407427989172545399675263262686834098418354335488373913682615974358705328126668901123043451809644365099239120097955414167144475514822032578376085261426662853626468845414549294965805146855876179307771779037243792504281485530619098355066671980146616969340835196595608329351600899297601381535688090435581980170444166064847781180689966303894337805380909608561977364220470842170402549297942008878750439842466671223946815616456710448831526651911764979349023439499719282496854119651510610856547112988854319965416518622449441950754008687392303877991547902415160136760844583178121823109318472209729617243522802792953729428775580872178980889382471759977288947555429611299739976000288330587890400502489148933544729578654734777625377716693923100216021191559776174592014912167457440033169338234576301423431412359557790893151218311742797624477918339479720773545195901623473136078443305824872273274672500964365592860804023328245329899140906500801929212788684323187055172155678072637798908815065709442339305492625112042091182061268900253744017838900319977223094343142895686483366806679194938904214528082345557861982108123153008567037629534026024872569837626303466268535199906621491869165183189234774525235311359201701845417402052835448641393984589499268204699049278602619529255334562288705115138973590180998133663749901381128480434442548249742607668331591179255117744673769871929370045377684467760104662786293259848128691694711716359062922672708844873880047011524265222301400438623992237412991315627734928836199008796110008406494462979730355816667190970882032239977515333189092604836603364923487065378927093300237860620222735927517508605536640926606718608063628893879984321213795697832603256413451413277775390742243058597068550880259015676805518955898270939137424302725296165730779567127183918756795740760913790003866158551301566904731156324517870307061343744464638122626483103178449184322410403791784276072513021599446374745482358616014543933028621093331120796017881893580041894272569591921030764852012206834826362889564542083556469731371585080715827200076098439043848741426667106868137060453429954910935082968404865821545506557913169915380736215585167334117471072602857706935879343728227858461323419080250022761056653550742034457948548724591929565577124101713376856970591232284498147672552557683848561320712986847561408020229382719972481730535549486535631458127772150432411406323993027988067052421825955468755742031345244380058569621124384521203935204683911545932850098890977346844947837259932199420939138054571976550879012339985777327265373002438532482951441122194199150648624055140680943398431912589403154586382199688675738979366211422826285605568318979337378868703293765952374983856529019937698929111865689798629020573200172005941147863400265161639981222985607922641471971429249166414784358233305859855731023312472808684724336381704388138430086663646338237400756162647225703721883569727309718400580831885037889860728019305204961157866854444021985184536683642956366061829974618507647533450159690840734301904653105552687827749645162852682360626669376831656838103958095679909412265313815677746521479767045182508469548819351821439008478942484158206903017644476231967358595335167529601939872302726340825124359634907855734495414835066101023936260015121537119558865084132574924792059064066676566949819212545872830274625178674339414747431106131676351311863923760374599781507113341233150009154057654809228111163343069537938798987360091883322862627174198661134489280197880971117345102831694265753657948040852769730211636469314314052439509163160823652794940711359656816652239213535988898494110496037745213599887790515777973369855229308544230792103709841124669392192181223865854090368273708989700911867635613798222739574345136845014324038439035329400305873322873449681279092435323508216731708386391969284348940671026454509371302822919151428870335047114018515270203302530709073280430292405865432178305776796541657856887410115874411941709030951146072772991819851022614811072615307175924178483853051888801885711958718292060486710906032237988194747664097193540005668496534309645964229400539423879931344309420884074605062894476104117023038206546295359826931356428089664406104139603920300727673235164756452109279129651366496367549786513072183477404858601378541462069085506182655466834264359009371119749334116778615404161361076937015776950200734811646598379322205724290180403949023329032013300675242309765363935423443581082378345918943316349607692371074389185520344175804692328528053710622589236318836454408387125507245709269429551535003439481837774147626961816396512412275231158474596026489844828798749852694236140186191638491225343013052428277272558477100203737855475681065856216794130246595285604541812949401982444045182938781082822601023192984876624576580439399841683220630792641663237110741610486654127782026604952055233244160228000210394928372225321157969652664147023259554003925871655189549900461492848887324303030508791106004566455824586283780705857834381585219149749407644559617076817233553548025458611641669789425655329732586638617741421635708362799057771595008058397195031724013194887522554784057676936639819478620897222458741413602901192397320050496529924835185725663227970440422294496057603332180389539529100786762540645913730913955174955095616846363749111001162379151320043542191460463291598588550385530848689607666500550565663620941691741029457925358179130738251196306243099785853727204737779314126165723674515142953708214301727681188845093592196195256090435501652961068450075743324511260067346479615803412742387056260723107715207620056957092494181278006315897823827290408483899297860092973681563058688876908344770807314908585986267062776078884901307052634342195487911274805440899951155793755956723084752500242327007384571272442632961953763805723959105594979428878730167705671289920013843752756023615527152689219579256980832100726109757851330972260729266268486781562730241020072801953562073629781742460713193649434931902924618966567999723881633715188807092649836674294281466135984751712881361418459042417825340741080425178430277154691788310187516680304737468961094408876809020617192181293845604677253831324125526833111951715532761713932034194954124900649143985465216592620781206592309377055646114208656649579296304090299675850597740461690620645164043848915849112794847447994786728868082828717046390851325826015435752989279863989857650856757468097186103192199841061842806165932917124448017435148892841556938741985887455088118814689117819167806140418431165836962167919804007793538840188946681076697585041367867980155262009088701398665475536222962067841927572779873695221145571473522743651821601592251892364104498151145936901693808426093696111440700347044476124497244706935035595497358966565252190673891751634088073920602006810950641264256949795984164742318297128042635914472993444724103639500448371708143481475326247720317234897469305571086825745992171049315655640960891574775890552600338963613151993981649038847441004072225104268833824591870851025920598520657896784509301410597104389523302910560755459015136048523471542412983969600078800350011116629031443819148311272283535654766814080825173800481824966834124063025024135373619124101717070459220340813281615527709084333478277534646353503456663261598181488617288426035246543470604173569903243200185507645368908814248919527524399052730226199006483676206525727211473979112678568537107230736323630325598432838409166907079909983541796498879131078676651167723028753073212938039218436195261568213547523115218071017011634378991922613443393211511705321004477909405831644201767347300664838546072305198998293568360379492037008389319478095555629885274907002306462667549693243295207023869499923296905074587723867020219287104437595846757561800049662135042682802292992472510966709145820549209164172456789726427600561922927977116234577695523272632355679292093076562110092486003305953223753432352378801868114018414036394087395864363063506032292961097998572459262968060827657611939247542407135443794419455205265410799436240399400286085069526661084141231548027557594176944992630626275773946816324076857344328939124203282303976479223908389991757890012889970552113691643546489965762135913312884586907280252451289735497048966638118671203547641321035762938384951974550103584223283743675345809501995557223788553261477158105039281608257914108794353314774697026473491475851883745710098909338975708092345108095635979772761621342980508050233062651728939032641615961862412655588265237371993842016624401886455581636582286078053962922057934477313512792848615801475936623697004987548854345906960657677617028763909133217806175588511262936854572452125512076008751874390481781684813448765115655831384041859583400121825358767452566728419424193292237709324322872328248529326498330162709108712575041108320804223418579271974596681131126565260365677319640574324518171733869297959360582344326636068549224481579811229620143183337529920953154033345742677255905572874389424627015730053188527007984145243130656226957028091513855863093998618222579874505152053413705978325791434238050801481038469737441810150884312142649679888601307569943056249472932684264495436156634532309553163247380775995428662943571539813857698214875310651151341415197604967858792711113850789131668237524417402793834700415235915381456712557246744104849176915672256655629886623531486392742467732433883405390061580626486168212356025219534619242339307377201543484418718567834611594042872550563217485540735382199356036153272131113323874781426314985266917068820926213512714532715277263455595312021318728624034244811850517307012452007007485816350184914799209523850902801199236406329688234034692793161051381989060562264833241601472619750147055959239268059411585357611912301842431301439907652153572584566124450752523531597093735789118359360909524294820103137277481633214313553741810673127056533623354298911814949968122993915599892817978832939411864277740663559828164591839002606354072836095526038097148214148003226492617120408761352998058728834165329043578395797594558032390211699326930380733046481309975831465879065207660574423462476072729526281345328053476730189173264227795586224389795944128781189368739659766773882431309871929031393879558921532832786444874183516679942410993049196801719422864503360323090658940155189833168869093854961213388246676443358161111896379112248875205451169039907248913790717429355762689247316389353917873375792467141539668473866339244848958313935905568921813724687930548195335937352850802890168221024921240144899230420745003693665574035858509779785162940591018341465547283257676332772739892232282174576735334321647549423911481153757521210066995215982681385724610030089990631189071806018629936347833993128272649841773549827994029178324292753843417716926188191666953334806195544368243872218859854066795945398211314802979588961443234839648769429759259268478190370813923815198470920076733316410715798673201366109006512465475613047665943451320396343769114896756472722870822994649272708525186722739452996204946645760157391225951733547421375009473094541662751034744963179604198167820907769259016861758623157399055358384800444723470746147543469019002942864757635827640211263692984186958611664441814115362568156703530028423851363682818477172544432324144836781842773750856998163236823734079030229886289282436681190582545898329109401764203359637402143242678667619924281301318475056912648732473224634762917408276589525906418480080349589112135926614945466486878733876521165409273458483960861157288546988878562345845012317594989017967015523832520007302519725866617657966034961621684896064698866004959268888797040105730602041630288145583010460423187116460196110429329011160824672200444041301423353677542175925961891333122934130365031645033930192500211027693852047823007894073406204396056253078060276172234801046495343300160263360534309733640305124181063898149397950146434508179516003394833109269016879608179540336458729957558647527563164412580310170960082349727631875823102212998029752133824773556768297117134828285432713709586591963939449464035516607947970246819806961944499554380719184794254611349284667776676689514274386648752516106322885131691239880343481524891462764111495686533596130775623616464387341821590540076917741915418165132975004549954288125484672348148056571659891635478440750906020433430809888222514738985312242015941160034695681652697233742340557016366347363295487279769793748576601338349362979715421022547455978006419405009500620187310244192738350657238475470916223348284278231078195645258531819080902750684454595203191022158548362182311783711347785987405915168796485176455154203111284780521874620579105627282310392436652851369148083120184280459792175868523755977578901724725065161663197681014711250542586101346589427586903640276632705539117833793758178854433287794207392371162540446059952327287049580579886598910733350907494576111530368197500313876850400908669714163728017565629065379244520929147045796864533096807713763018369363958953380535543465646551687488455525344268372240115722029294233307046632383737459924492786512480345511283438254597572406397431922914164087045031059761006198246943968881672705039095292348246020178930051803551685995544126910320696283064952625719167205518280076435433775894851653570906073055793285029532681371407361310855522384127312003978586241974483020379966538006178552408275177231177631024253487269889630200789807141146868178721558861911113149860292826588816600479587679291187903456054066329079837561099119071641145541036200813930117633756592721388411940781082347954584919878715276627381305269107240532202684219139565447704669949013834352997374552112732539588150782053632831758924890826276623805665569822641080907356483350451816052853353821529661766535764247304436439375674329333935312743642209717702356777384911538266106505723611477821363219214597200739793609090050482310517571926443769958127678728066945734197131119298078496673359624759611536886317180691359438287676271106077906058547023115702468657960532973180888733867575746709671778985693015711777454759423306408198463590689932881834282611515249698723542255915103618221215523564469331928010514773593472432992646712441721573633019590559897129613124018877016002730793366016469989107056313669620904834322537636969163906904014363095707588238032950894676259775423801616087167012064114184560861726048120425339839970318293598208491982566343542213573795512824175191078863678210427234021126076727965494589406904318303076860712796727175633637572834888357237343965376890584636904891702811550347782621422169811696836513941355799831438958246843898157355804086367345635145493288469800459307333861568235799311898821516416584614209004693068746776818652399342686311588360854025505732923308718423482762503944551671942256024265062384994465114687495938800379651216806278994860777933686878307381950936959772393337986654184389380945311709110894203903612830121196991384133103126122835278840513513086413214272574364620510673935555092722288158620588801785166782906328250276897457205946366327604387116271701506891456673957357731255087715608499325555607245723679212791818787854451570241353458435308793396296099816712603370870931357408015791236375379218362525552413163639413138322580854764189287030307094686528270824903414330543085899138375474346255773242952711225872884221005349153149445676971680683621872679829084876654696419592120330622678351722649548732784523942641067586195557240417684389569841241954451777422892558737360157899492298996349477191017959605921062841787088530480175237539300896855005044110835742632154636295382908732626461826414390950558096146901022947472811893858322459097685790467861880780998993896544984572262217352341824394064327859359087274441794877597718572228167880592265432610036954608042353849639476516530336314437036210852020044858121479749625992065636855556464742899135836963244511686157299601373212154873397879879093108318736097669238397782526327018350270464436279755058580046227443920567399509933094498948206709704312985194012924952651231555753864315145100321351842143060533963233033464784104160429965291599750588184172405467323054670470776603598513032226446046788000449292715968144680466122856261364226532277419151908143007579163437277381682086553259449225037329660696651246571680698399370508678630993175815349815931988481665843708582391861085485288644147047063731087631133082832086714037762139584095831901108914720780929337630056641485177699639844308671275242965661565812100752711765991683014819146095052646811842784807988885460343848067075560125593406289041065222021396767937107648796027561893847737541180323995021733736712850879690804469082821430034841252707165918814072035039586538022001130206839194092329805672908940417719326782813378491691476346558729392505873201140767897336922004748421467574104689425725654012936200250389621072271323917521264380459592234261834525677848988180304808239376877968241041830765840765930533097879797500596830405233884278325951875974658672628771407810357008779919564156904141166667982711808893063055341598544857616035303656514373029916835155439438178515882371445779541579081296113294430549073608242335639643796095977877574401931683307269220021382369186030193568790722572901010783955753777857227590346325629901657069241717140366488930069965992685547175737701269768691184476964079739901170817889652518206123757057417551509510640587432897514254377462306643888999561196569487263336499111241519753081330088174501160586178692198059117154194629640912601490094146680247713618781559513206627055817355364728903145144929668246132206638265584319621070152275375682392346078836613176072233142967363506646413176443774481012685318150834620024124032344970596955701517360128353457267745074075363407087305926436192152982894353265483379716115976229045415772143346697897564154105215898676200804912181616639137841687079164191192283437002797562613416923939332841211665419318887213221232619104898092259849384931351129248093363912577604603999199406299495731259475461635836462959483159518290418742625252307390212995681390707161946083293346657115150671887662388923708939407462947048022124922403943365241260403428055135858273886544599412434586812267811071294985589724144237791688895375971444848020372828193927373180708970936608748993456535900037475736381668813453126812481226508564039877657378160380584868233386006962628859701894993039504661516334627969124010825610213808312276075475368236030125735237213287944385041927645903042565413170061072828922730446850756503317033382113936100610242984143206030529553876733969260120814474383817600963953579586014318312229667592572100118174853601045937914674312259359358791592879849746823835144466408089241424668705229204589525453216747320698382246271349589167911884060896526699561412744009666219706914894486344416477045813715880742004238226755513516999452697697418622265871193468746927017159983267334698013824904397277231495110695349461710079766887703056769258960777695382102748687249047514830941292149585319006990388898221170243795025531829564005045172854957373670959882157869351938131489954922207349483217001512156629689390029376513185289651199071276316039807106462682572196107629125695352063702972815468336725059184073254332811666300311295982331757664097260987085223869564156710233128931042305522942003941903362906531427614265219507238527176782548505389515809645613701207818326468565241336882521070987884624678707639738658764396185250173875068942768870468821059318077987883101050420302887743266056598224973856868428355479353888142314539570819778015044683913969870932368402135773715380231332201946080732893429091905317925187284294353521398131539165455214819594846769898457049482786190351864637138069090421608307384006723922956989346561717051794449070878089955335341606705934341947085588680855058695300298604238403098717809898164681227893698398613499246649394150832566619252696859084314621155327337567930262198233215156496345713227201996683843932836234235638773231620430389944309095626870153405736065921264025826616816070131108165952855771123421147440184579979958423774913490797079996671004641968159994341760816436984458009347431776316897011302000295318158381150708052209347983047615503819493385070340468674116681652086526548033965363588947992890347303475539210446894505757705564393524715660581374849979123976186986859794577922982893606078162417287068942472132298445996478993080829008963537515443339473810851963094721474584742536158220398494890324009418112382912214954146202371301608807559744719725182918130963961518374879770971400886561267773776812426420673086998651806215069416582370619802720166575890882844888314252738013977008253928481650939529884420154025784050569472972845435759788187837853041089369820162419016637598251766157138885191051218069285617753432324586192450102564964845380056081802708282427172122874658551764011605774009310689311243907241279985119446329582184029037568752774859493757844798392161210978131337722492781152131918429487826738468279885113837662027779502919933414378245579777741971337225210026807583913887509754880784039378554594740240856354576757711333157919126597247385012006617403230777812450460360787085960029437428876951845069502998512132292506205772608960963809474191442506844193243339512673945934433907877561574665227326610800356282910382503429166540478089560724405266499166413471670882485568983864281095546019463629757304973880108965823453940516174982996222494337367979356275047396400320528599592375758956848518202191554800780519430399942759591584307933710614563300821420089436970770372243657690032471338695476684562652847552697180315342980605787807662532645571706439097755456318707442316986396261728708606992275332674525388755038672494860653665446019792864121248595726210621914461314716329749273718556104317375837104851333610492653171456824243177268623005090318472370899942820722771819236327965712807178629365202356152854547399522764956387324002181858474531050382721458559082239330157082446569191970425177124255078974176474970782993934620148590845490671713903914601284498607722787436181805348109230773471964798840301364494861346943092936353687231313257558558283434764309954241483734682606724379516144014174302860619347453223315060980172729389553891103043292622175321399626041443800982321267513888534789676352529748921503325617531592624324290829293468679159122973669215455773523317682658336440673095160268706075676306400564209966279973692294997965805761227510816700150475021693580743305099919313858527575705708167685960541983311204852632950960662251765099466242986930797762018299716069415877556803601088671194341031030909673319579804854813614317191196776369557404079350281787167938677701005585380714386028874402039464945996445490020036583439933683262055440525643301416355825540277876796991903847046283370239282707892284690579427265468256299316795521229591710068313365891945964061100293750577118276567900353816767090514885157064736930275643708198417497942473684279542758944600522921256068654033906723477662673470153114457188926559673896531053120438409389176029180374020095423370235483163332445014658607653688671860758663280424529548371988778418005391032108633270692124294476075822115734608047853914802118938706481240861270702153380977368052380852858814792005318953557251006319444171257445004768302260952882079632837884208430564992518247636724406531419022492056096091790090678744841239360961949803084633572025458577328856546214114087075832103931890828977129968636106881869012405061320703231755650655219531680660290237471565557181009352540159086887689990750466707718590724051372469227801316030317984821789274799934815863181383476311011921021053530669411583374345071229805077391740963333211704575031891337026467293643589127277042284086971067025909312140946294414350897943821010649962871696037176952917439632684551268129273030564605754441197889287409828456530092049905338183030666552351441062866509896251670874474533901259322411987369662693007681742987605185986281606569372430289394079451775776502824427539614840970179300359397493289816356205454186210716614397195290477985547445253722597245500055751895454190037602664727505941428341071717791917376196241899611351994166323184631853963558485584791034295708737465246683868803263841848271674560840746377074332164406916611948835132151893584964478423885505910917405075755645063679232559573690401997034285300340287342282085445587835301328598537653231419023253352651369550250353140011997218830040415225405176544360502896615002212066064150703383926150259020492028312158782738340346221090643102237842777657633352348754150589943094081542079826736312799644475956767155278836325672808038511179572091934571911981200837409526344272674059991099776099029460383023767720099605974575607722283890476183903515475306058170929092205473949699722081315222470450039898772759753865331008931318727930270475895093788006262786495172277605741041687527159039737438038393361741460960407782136923723108264595116351681051434606684497836656268621226108005619110049532929152171270593117293320601730647396220183385842983189823914524151899257013296710261422983521273480448196402746382628916251689690677674223216605485555371140893424153105418447223262242650145626349055237678832962022809962274488493570463067460604826671736737635172724199909495267255158399173250790851465615083321497617546688149483923137410443689031457523646977716217898015651876178299520650979366669713582369412344469559809636849580322509607644662688312074701975076769379020353533493608995704791129153712313070511597478667706458465840759829040773984061238945384483155404933893280868203380813163710797336381554904490076070137563593023049588881978626872212490411175443756379886182468153561666491527987072568150810175833067240121767990083400726634686691747326390350668393410635359315425733959726699144471404275281787397462938587317942004550699280578272868869690290139286093544286837982138324805898058436874807454208855509588620026773154504755094516376354971617087844762462369872141613693118201637812754616884905008993027677293322981359062115038884776432568478230697404193489056915973848841266186938738289930391895025535826566140383777404810622460112320937209487120268250614986556055653970195382787280235238508412895357709214065633265517602687329720793230341851481743213937018284802436140541632031234769545998647589745663399422115799981375054808464387646713131659546611066321645093285500358628844898430954140136359240815276128442266428922197943514629780310406423563660320167906844886836804449996347877676668535446212890580655242499940400334673450393502363597589858660825618275108863049055972765803138037564036618787660156011972296977823184490821056630134240427955738397750160249640259569084424090164952198107051472352680778360224484304584421446325959446781559840142187311820378632062871193937002919413497656508610759849959809824081849929126081420350576607652601162735832960215580743328476542137315074232604407342797350249065176470939074531077247282019651502845628547769089935891042458420477706595184999807919141452623894329130703919280585821909682134313828477528471574923265063131525192075342349277533907094754576163021165619259994347040187512805281542111755780985459969172041303355718745537668419800759898369840022235649197414631939771293761922962458210814656737512868652092438554192439214275201192466340451967685430669116735338149884170855195486104186385841250578738040820959561801887042684277715876672366802220300508045220649748166568045492963578264805593110564494940974551821376547798467704621620832397905481961760586038369683194056873530122154710303144081655516526182878476771996733166633171232449525341340838543408468159923842882344954526633425951288053101766494096387478199124521588294957627272087987948936289036923367213677864737787949686265229005648177937933083289245501171113102973075960916299131704222764739330509390000529740293090677344656825939059460175795120387986219109653317467788895705775889606366989142550928718114904827095469909738469224342375848062574654405013046389633187791044822479031974220446573817308723774859295460273389991475382911850137177191967694465946675094872327353414549903188189554119080014210383161675709608966388695380261764604434983439715619468688030679416874965353534918558421146762775731698522220932875789506764581151988423211115846755836523384059421679391802781646163551391784721808686459415492203186827858722275915762539233285742206406671207544756852375830977563235217447463067767788542922685078333112634149581503655849510276586314938519131765143659312602250540383482671310735309690460536364737166816457105978482734041981826318900660963544213313922286297990108061882236761630361188187169581133163044826716743402578783894375764254626763540136967195265479466431240758783721818543542985080867498579438430926663587065892236313341401162709139169763057911367677465528114312723330133637105697456892272922945464460219714086696290043024039709681237849880850480724904855942156113863697535951235614436477376398388213628209322769228550620340281329299435230051877404366918560702396039158303660851297273080119950561524973286320834336419442349227039258123321709048602624986983873429141670614637011030394802508666631188625428833808137073327478702649679759505838003707910793797430305722898555691956407969070894482334379750192125883945935648166945714029515186581633526730865650928582371030323855058203468652525469023678499351731284761569168190572393901456889063780424654323330809670498249678872088923723253958122738145192768658761732096880215066491697213246624703081041668527367396464253977080628472010317253239215454323954389765226661132776701732630658771296051368726542008226494564374697054739580837333146362746497898026103989736709258885306444144851809311573701348960113072371220812019461759745401827817491653174732617976662417116794451761518243652862848873740195114561471236644155265126120878809170565531503905697673198949061567646725823076600410922132505999310925616488300302139830360959890222707557098636438728650641217224897256132178130958813081258962029396286412744724369272626622235637360595470202446816317761496324126538947048464483815607914019815711312271201402501407156324314769071353906596099897930374033845859584967022644938314362876019916687305186030898006547609379614790712828237291622016876077568921608627420913206621983921719296706767079227080438740460564646769851217939155873375463639114786755723866757111587389522633673245977912366952755023052203230106108276030302573558774494582576185575889323782939476725714514958205845826638623906133200177488737594481281225667529415132235063478689826556440387124717424320140656645583013727237040026128230191492000031098678164219147815243734674871096829379568441235938201611131899940136321066525538939312942092152049519365590155379641906756870897103493035259420978330278787317399166014085288137126198904649712258351501951969369433024509978966617036814764343968789348820987099527529466842933393001744192721981262646638598671328759414019793448766256629196536299172901537694601886451376767450422052905873800414659546115492724067025269067442404474714342010953014281843511783130166141156561229581860268834783495731850114357635381098396341199665319004840180468729172367570865282154905908124781584435054569691699285104455524497271144630942786112839601403455902629886734106534237847499430056777411147693735963976907507945324212765864224386003620533481936616216268944298789075214046957876844375691384351999438352023347957288145031843476715175243448008977482158013226140999000689192197866337248038128182400276034283691164665866578235734439117936219741394334300816750161830648935459370374626530591176598215935023256147424960488133059714363150125406422156494019965539544895384191088156581525217124698256889189137750348761507536200394035361787587618060851126766456504301037835077778075220844005091269823275623450612911826273255665556489393870628804151533785065375348666315348809703948820961748417825926700279243129345489238130884212428781875949206224743456739685587240114566352302061564178930103418899386953301450900212533307782961368200752720459661915198914884180302113617578947501540366847377322181718118791577740653701302242703349102007303942732151467100957600830502500728046342446865758890005560872332931546743856607662781957855877523089933126549544643221248468578947294422401841118974860540748130457985749126144216052098275724260119817178680414677726305521210684584097271008269467015679062987812034631297963795522288459422004519996231576925693133319531730419853014145701618255764793833890754624870419374357371617929961388080769497861923596640448537108446306228380530934216263753761821489165286056619074667050456825412817525572120172975094639434922339018152233121530177447071052351483747329306975759094702967320205109287315108161164222555000455593599945051987476808585345185249703289502094925412264090049580454229268815751332780768651993802903185445533404277095806220398124615409582965459022254260203114280471644451132695018609012088869559243473658670341601271457872499226167871171179823885439666338412922166038360534188173165004287451187027356833435649694952366905285980803463899750415853379981567238823668237297446524452708398806873692680752097865089607596271306230249057109649470886848651196226353666751631692889426339694746210233653576452185287182797612207730002906817508229383387532676391919730931369543006802465421424649313862145214388990774703563416437822489503681421126576806707081555118467993021506399073083796510598804455554836390031586105816448699725608129031453084340165956440231785553334390264252154869126662510635915204430559486635435490830761593459470570106661033573918103341944929293006411409106031395141304969889237841257166176438624533018902650435402164693214675401134107795735124802692982829697965393474531717585437279495573757896173817730619038183616062348615444775633581822278968432975392819247357895736173367752726613166410846135931040333252583701163603115507765182813119476898022320703786442747663626151119413706477720615217579511929088510958534127694243676156902595905314054042125299550289933125812217490711745417827460637391699865932621015263547100765465608864590782350606558932840472232657511999182366619584169748308243549853638564339343038748904977080923906175119331311080101869433195971536988954995725508500805707821075659625782731036182199005103649032956485933935891728840493435637570464218707191690591064650026648924186864687510302817335355100758037607805278825259689659220819230274431694985944405815779906180700257269515363621382462835313758763681567810661077541712867003185686953045926679724693237664769831179743619797006060230259158701364954534161973739091904059471709197353249123900546460731655290794111411827076093612801749413055172541031943725278485430579290729348028136804494812576349540027116118050416970370651732952297323062379035288874102051031327150644600051608290299987858306998425342109150146074095633136946940483355672569302804320634227110150396645382838331757002062129875374404258282845771267366265557685428180913897533779921123984267676874752433585098484408741787543656280340372445266531752946155543422126614467137653464108205020249370310330136888315457650488630818601851848532584052792139219799031557605517124555329068336259914608045348240120440502864595201118633828513559639082030729331160757227748601850657700121133258548113883113960769563110541917458973334009049949575105832501735545638057529162611962335665169829397598869571250334857868896012246037849030628692164792146064808267290378783617526949947505184765350985559049294822306476576556775467076714658839248212172674758658696828943305615161271496098969178327846897033765540751659113979657095755003814091122120657305788777910761283615556898257080223396682238513774838104340922842318596339874622589585855772451236479355494286155575170099571312215569558037130393951774338536752657849772017021396057291670064713854016672774982555705459836897662506630449330828920932088888098583605225224103731759926376491361800814318684937578376008716967059309393915010787617297327308930024654484632571162070424920554669500637567802304260269846204000162026190181459610510815775413949615672559209100688832848357209774360519537162169094874202813239538039771398300713555540053186341645012597698475432367711749450483934972354609715767312399630607340373344040648129469264790650635777143536436602194850374097204914038544995017228885806211863793985500044777426354789667204878014885611564431456048616356515368560771532526905540271461507289128206844578113831248866190442530571312488405032442951254654424845305957656881337233200295946448737108256643064652712706810086361431884315363468861207475412005063571466459711060289363127910000418754150470067961708802617411373339082303039743075150537311153101041502074046567135778885350171674507963396326961269332756871197249978082222326379008534742391818009336025524704755875550281966377062211560856211148165956842970358827915686316527586382447335118146354339948363206034643531195776768450343984430977594452878437701521616799863484225426451661574091422063444526684335698301410071435043038443002784076000443393245321100051053772320370140776155602996887140301858229909301037505931995502337187932728100421406208860074467000078026187488719091356609959391887943568793390451333999352993652037994223959972664877018708107507899966918618298997809368140823712728515038230251044273765855341852417982369256014121801278618707921479126439535134453422269595891770936773466508872643617442221834497823148205327208502287217641175109342477554363119667800563978347823013576902586320309043622270632937903515947982732190955752877429670393118869211084800947283432259079580951896593753605030395094451390926184387153258480589001154855842673353031379671548563697243569513751658497748234863808227839558942208015497006660648285954736046825505234823974550172702113652320623109449678191935300831058121648544777221716173103594203611821009045869419894251560690837596897860838295814849465192167857621958888489599348374102733971007134935556607298246947564807155471740734625312490697107257920161355977727167509786358639902618686523722663158025631905598696260741507472129263161506748140768161640986909984776987078324339312003743839902745711317474336803601682378057958874480666428631762137245184026062430660796314000500537018368270573675840786384779753017094882174398375918338736654538838719874834688502366339393831762990350182979919680120134879230889774474206563601381516783826240673458068828313201237869830108631855258103039160964044947513189736720324595313124696117931204297971140318032627089807463306490517051733300050351380793599650070827717775232442331114917979744264901806322772853625684382753660682344712808567120259982488556430114353969111651924087793922723033341692082520631135174758795472734515062644808949906858079359278009371818559950583651574188021295740653871133855876947872214762189840588781694040539536184743382205968158837037348507210857338865212448060457300882297435934979103429975361838336475192591996731999149565528201081864858717237035221683927576201952194235140290982607304347764403592732081008397009619700263981128759634018555567958759428652979088731740737150538393378188078873376899308333237122253165547325277928763564511802048922181105785400409009414747792187169595581461673266303004482598091182009740097948807430386306171852725507663406011827726922199711934877633727002957116360790417464003674532249220188236978606550429163251498548652594025352128916125559124233047066979401851342658500059649558294328749789007362090180740348685370205948635732615291257625684649913798586381498775404073901212762293089742796734861001971606155314404216978487791146000619662242428257111699854369150963921446890229319187149776790807457252521849331673315465688363142677492706507977484451775637818853932693694782413490256454347025524746910716554638189670236124806914493442542852434288259847549766661548596625396088424784857614663622044036425092270366587916998910184179348378095879032538849564433044803098797798792932004091878373788279555572759695216770940103435420306687381311151275218248982928649059741163251340756389811093303661445569358736195064941604146892359905395212006483438931741756843562139951291659639766189487739128525788588012934347164110762938165850693646781454170447740435019747843605336259811953949999596241429307984280081450498376455290333497137234199255980552426351763394239812574452613546121698705864594616141228015921009315400843245873902409192115543399086891722892387741392369415412078660177818948911676633557561003808594887123040238777196110923570507236626097548395883412700031075666307743210180959607225120865217913371576219186197189017273219662173537822357152122746114066637425338058945857919750038991285392983586160852188279378286515289659331631469932589528180901110486896972109885284412798556388619602981705747683772888576085643989558837448790527557785350494972085843810471124050628148974595348173537189889566452788396635540437521580747805738542486587226611758799365311477821688862734988786352055116858378361196625826579447476046155785989000266504187984029036386135081643714217558564441315328944503050528926521511531515346086512760759125762001314803320972733311818317298158947997929752726214923447455437907942846101195296996190673277153468931963193089953422089080706415501898238852342819037065388257213049508238179649021499427484838567242627851507554656352663172058682110342799827670757190337753059864316232044305294132046187512229808909689019666863972223674214189642665301530218108678817315630171744995534567392133279005963637771429027134584169107602741305997931275215554152301075117956365155783903961271085689517006042638251813864710610171178629527053965708726363267305122784579719363231194173119011710317975406641079891577198173281377930489667785281098046253766365503415958163656173805223043574513591298054143139997289126102630520102595360023636277373548289604401045565936703862135764955242227618404864764672255410021209744628153545709808900567494183826391880088876904218911249889454695404159743796250356020327665280394403610480931250275116601696425233715143821592281465909077836883654168903867546487749797136521636366786194637792742023742123368595079939815549193757233037956222751372885767899389846532049930861272339556177773151417261789797163810341927885819894035842271416856416404016064368340403070996034635427589360271751630222990059620392861765326878584716931337212227930144080781370827207309409338046798736847461407686721731180783258467751801604092379056138415853504093919575981972925114701339551157155839449862183407313819043087737004076886019072789381455590709456678573399337100743259819920520217772893306762075306530807134276913121601191746337213475583824923833325762803892577079778017579775925404513013218594729486631429018053754613308048705967276984048518168666732407750871471554351706399159199075768779035381674449250683105736605062342394489326551314075652267341672467661911880727889274903845259147213474264251944431001547009642428900220562782691429043238747100561298006172343384292399869980308184586885033120956740670068814160844332129476438029367746147702782887538500176940607190845767642033832189819481602473202582905999633067031601415034029741501741873360961608135821791743328308257695266696350930567056980739512696836456203772289217501620803660984129495082221179083755625900037125713369575277517919135758461918261360011787324155982659290336857624651986406006732523372032593238366661046239713351069479718015525705856861321424364349384334647782933822648766410045066280988831375346135594574436659672265578654253630734931672786069067350057591277724048789085480103364310039100203761027349660304393864259953822771870240653503264642322759834149421028412804897096362957249744593222292891629306879380251294904786824357606278825599101227950730222969221649689347716730830544448742994444675586846436104814156920979723022336195197055153678247145070026623325360803975249024189278459769541645438840878218954146329616790879326318778506755358473998220999834868984363811117813916298055587959031570614678969057972732122918446472061623602823848354985933234668307909887130820649689407443375415984923249577982316386204640319441332325268255418642674178098456858241737339718825464816129647545662959938035016431977558211164016361626528657598634051956771926722046184215288975305537560603465159034838737566979313061503335434727226997995915892786072733982605348154612327518702591947224168393576772726237489678614663058593180286974983340213958534194390502328914626519120861001510686437628106579342054883369239229425709739844050089118822975256915176619249033988963770304237846520906903759246000710660679145251275323871544697657241389409769980399626819142606511451410481264575459277981901156367680957152427484873399258540856461657717463379296640163436986929939438215596133520366195472908162463338912090048630563737152929295448002240657358250553865554328693586208746866903445198626719964955532878459118276783396032805666417186575387618925730627543042239315022950500436952343536157042876060141175489169075102714579623500693057469840798338292708760406904285231531269742792392736460168610426478584596227145009576490678969833503694489117707835423739988400358437105949219000242383513867278783395092848875512491518950735365990383255864137798977521611373793439236860734793884392068350530090998436457611294324994686795948068065279315037385358360941482841508673123986184068273517221480449273985064091033916705908128605777650715028384601939080061272078562195014477039608288762793333148481238881584128224146590642780187100563069410837953041810767626602238462389701672432416728225759028255396461569063290567837904235298797995276297700218402665917299667372694792693314499967534136186210420314734004478512466071001603485507079802113049175121168287245649710185943842237996156904497490123700544231360023138117762662310758640952828371686136695417932583859333347883606043716680503121873459457964108554889924615938757274304965057322317903787159405043115323474608568095450848956476007574754818838136852759915366287532596996610593832006403872812729606813051833811334546208391511727261421875663059837616285364351380420077630868917584906119926754886665672850806940108073652437625648666997822568997226549206478891152163461432680771554146946717075707181262130500847750318139417025640742289463911997599488616617875136066101155802583457728567288462849668121159575786508047646969426818791772324825034494216269161845827327578427359361188890614206845444109622369559318576048814861391531997740380948820012769069928110801250787743939060902406542441282922575506425856462799822224410611116554539162292969227583572841222208504372327617095582658170003364846992367292029180687643020848113663567675970722198612221309862471470712654885606111315030410568316525774342541346638411016004310183177360392085870436928233121427570417963963359304777939828347261699554946688520562920879272794616036998150361113130259360876579297587915700068021992744460563746913888218098761131404738951897652182057264817245805954664944744129562678606110030605571304266957638611890453646406486329732336994355437509286875656516438390287192780779044372811906015852955615004902999734334726979372529793820374420173735229209120157546144761736585641410339475247822374827782637496912873148334920897168179246350911396084004246044531686015687899608721866016475806987531622419107701508686159561916482712001505893492773844728884931281641952548630679280740499008182191728425391759194745275975984285070258942170836821368600907710142276495430604379745550566245285796552402328160395564159097052823604162203465700502566520381885397384742945285924883671146405499805949963295258970264421347366153482019415319297596026869710062789901056133185724978186114143039454995847238378060561301499767521848260335338598379909372647394363252450045261766812672502308129006083635352427099648626125359156888093927873450473705959244581065414947496931369597698879020825757751665499906604505212215447666396849417560519918203566039916606294622321051882088124592577797727894348154211340549657498755056759193595597823548701647100361029473265855108997749665248357474505238412947144316334898261430388889814720631076088667583402287331336567929207783478592298516580298422475727786868685118079851726848853229035266518898178125527823584021229712087453937542981790309179029267710352125956699892917743537423988842854432738143571803299161441965655088618227105024605109490244981412932779675253739614916563799162435461284787099609230728943821292979872981840292149574092828680869566734330451362242458981062904525910489500724434284480326823087628994933098120816017099843181552441084620137706638332393967963807924788332219965263250662148069165976701357780173598413432704543011826736822664204235398429924642702032395248438778354628399518470562627176537336441395686804258061303349393506305495923498859565194882566376904078007207819969091972720588669797448495791821765033846309407874872065065055049783464997600015485231595092033424327453753814075335426454487532554566415586875071139697162490897651666845388008307541376799551741610171386466647659405504393093746513603333032086860580856233733830627548567398784124543995678972856650617369274068785955421701054582633265609974645524065410225766627373063489341573349041050227144419391893521451988803915786516615629828113071114999061849666913565549169720354225981233194701248001133181554360348372461924060636763654021453066013259262681693579035194095944092960542561398144018533423444494841965839507212346901152593672646043738146783864665393022648273570870384452548226512785243817812485553624243254320708869450040906438562794683300353474297425757885496607408000186216913426434894657091271987311797226218471469119109251341993359472884887231867737891277873145471646974365380108497977226973006511378499334538291489165051743419151983362650218272406482244627573899320728036969501245585456287286417182129479827790813311521822023001148640859892435156549186189198222241006231688093984867087641705736228185310441717685557706253811053079854362083058178817506267420053142691886292540668088760700402507820371672994839977143025884970064414265986541250407948314655282778362238929088717892318404773800801985240370877816101304316699577273273347724011853758596359325365887034441478744737142745914566402345465961239847338760438170098704775791675496771434413671781960578546045616555900251304085491211244885212582307548521052643644996111780294611216249075403988939598607990406684956898975423773779421519653273294404903935930300448654144067698482465969552692830946702014966743318863901048012839177425498039745075901242058980373208691347013669613435368729975898485198659009097878282658259675512568300221648070528582552018779573939825897476757156533579928028983114330757588476466420432318905158513143156628068561013747714019315296219330934776923831217137501556755783361721003004577216160858159188547738430234625979829497833065101512549092492440499212758698395190436292001528601617202890189045684202868403604310367537490625627359097027954427797252323099043511056769013491519196681889859669303982143065672169808794903974395267078912769314342020276419020518873019692286854133294843763389600328470237229282345934256054835926813474884150161861769331134311265604512467592540285289038774317311157672435533278586485670940192484422029376780752127853770002415560952335557276426105642224310618772738446465146998450364843341234260972133785344448277215031533511878302852439602620847389002711558520036685080164650282562918202467594958557070125969307079536972928058347086777469542488411673910718789920537971826459829873746814424594080760954189991312059798340859923396269410553650127064848092220075924328892300924594943107928114477645078224913355616800686059851546705047563265665077403216525067954107395184982006314307383393187407264325750510090116340004219510883399115694687085320577186979973445401230117403492603181998588533649570813731594451459755262391764725801223548083657580044490661650882338862367041197602529921860212784915473264749192058149548295204060975701723978818733510347705154506317908150710635818210540546000344497491095427645853720795256460350886519888399394798477738712469376725328367210295768847519930609640192598295102232903678100723347083677523354920908625376148176223566632891912290550994181330669756862444865228946785999558136301948399918023646396767438720627969931775992638504921779829063109545573381884614070528067533739451654120313470371153284258723059879835057432432131474193415987908924270076022906703883506620913519698702544511951294747711882122062500250709203625810507351446472174168561002877065424324819671717474273443506089251741161190660469896103837151541711279482852047101204487596885129121660203768432470012247576328561197018423977851049180976383253830582752296773468325534462834755617474253829466559104092874162894107333552248875140997517319615106913335727929092435742556642333350715082686172268910407817662978465030826087215788622107960856621717848913201464581430419436026063948644763603726598487538090801188784989199752917981965997870196736610912392771600712150971043211916838001415897248413134504423544351387043176827823794619006820099293967043211249079355809487783736680818173448601329282774510541480481242651245787723211719765309995666140524064284431674598232704224689947295749109201623070164705819713208518670707187765288986882605200377169660062244372697387243516831417460062040398708401040245118779876451053004769937785152630492393435201387370290756382131277781381709076963091375318722126613263620641581914002770040086080083412594592205289997752429488358636722026624649516426120720792580021055896715301426621624230810944886823061591612939516644090338574420172305134887410832577752257289792503836241026891069019414391561105749452898924682248014498836032548752684742231842737700064933612915462717813804804955450009154850504618988007028951256030972598838735845271420230582254995840348272276959344883877912200312337190432389559716468279796421814257427733964512868951267879871055660375263040481684206368746981607798280296444735843641969048142148129312082728411246532853764273134459868265922000735182962938692764411482023526929652567761739995707729551525547648818471235198898912246577798792044021887921140483084979180943341162003522422661633504598577240859055811616655886421776831946025354540905397784748429953876769646939074283049267912152013795292086590879981143001141595454376021913548971383214431429092542477667566181342687536797925069951136626550268343948481026733694098078358607761830079712122623056170603486506422089173394858989498445102031967967015286520331698710740735956577745702498492059389929143938452262592365870834609746825375963234166836356839525959376375856959414605515493895296659515501730008785469373175934613053276726389779534333252919927159972477863638033507829186955310732861333955100669347590811246368808232453904169218556234282202420416559443767438349739326546511628562431525590636255683669459346338381709000041366506788371633707457482599941463973408456823729544140394551097916393559350107607955271914851878106475704249751737439443613690661608950257484536982957508906422764287368092443239213455917535742690608178886409626859018745231283942793088121771802195581883296806850573822456486134252831761913891050953085176045513633765642877501153133256537135943736244687833993994061857849236304919141123293257856849371307872054021808438354204332081665765618411147629620789558503533507431139292692848328667140810047069530199918084662045424430181206878615282210334389110393458525863322647275574358958877630482015975678268162395881965019052316673469460162790206748817660298650220135274074700874196922287103681258840678404201781624556121276781891024207543698925974450836884769321863423760205749421790807222966208147735787969438334765687346827947861533112770238294298969473834876521744670875814820727591212357270848617237761289868681479559663755850017288507875965332277697491382610550756667482552690017700166422913004535648420136142128464170154746977322380542268840765238269710482687608546241859110012313336638632133080500268695545712796638848625923020158270089307210252998196235213611215623667685006662264051171496008765405250213401150416159797919889641733362010883144967792120602477618312421845550770381575331541980152848083565066002005493383844131223141920256734818457228567808651068880847430546198308007120591695108358132581225850106164093318965864708257049810140479803123591551425546237173142445571798645149575759451135269309007598038633261468969334504825711389699717852065707405911789732816045943147973367052183256705612550781597374902454602275540172728913271341094015268618896899309627423723318983192664639606431624005490731415548015755660435223861576636693980982096611729847734433028359485791538049673627288903481110786957777760341115156183520692564239399919350232516271387934029586032217193359497288223300028303388103853376657375109073972955268786234927411609465971008761792933375490088585407046853134271753852749615308311007232146655136269384631997012904753581326422244411707795681707948677605751028435802425879602700374972190604969177277754346028927519164738758322705910362244648739219760156326693228373597973690143077906301591171248240527789256290205141792366128873794392236445995306843311993840493270937474063912205765401179870253696914947569199757177991581652038660491286787787741168944794102997027963841235624767788728363479320739484622653602180329013177010838945153646354790240210043711424500897277881039288572246800132262230455574646404798002254592006737708400616423306693616902503735572114339768343217209429759339527818127883570170054788719108160656558300769616419626065975264532251200797425276810287395473493329966061333508789899636572723427927896033359713907343920741201393710922601467363501671319392967634334076641628185300214777477018094827075081053672200179375437826435058092072983900212671485977085189764587066689183189427116941067804457109885084056729177630193079841119369872036660167836265147456281840371111970473490153480167056953752557041162286842525358345160607457148930744686563342210373013854251668814760152988074413985719359532566958779585859622639597174482367440482006285189398683886761407254804170620896931285950594351717637486352852781198702905149584296680978769446852282450479463597852232494945413596279424854010319142640958870924363352906394205019794474877935789010285258438943522301806042442803827013234454210206443135577084340011741335874742670509271624938201687098860178042620009134031690024852390382919014010709471055878776066450942901182452770263855107933152552937095225751292418108094223336598828673456669002480609504660656864172503407636676230437043560696960364633616463861457157420206975792919403588547433844317193947981732173364009524499929969354107008500882820864283451711184327015117581004177501229770139756366777987346417082217181165500718469957711735638997706050184922934299742915802007302132991579845440424164481491649804045592409549141940382363994381455016427866723069554747362777723896255210610118003715075174323997234915321140640011709755082068033934802491175778647424723365602927977963014298811818430877635083763050453677292276647496022275999470968746177424156529944066232997398208929016779251008619534791281281434964831659831094413829550990807442481804053910563013449659026698953107430215543262193399194708367580240245052822968765138041924578683574090284272290847607628779946696068919022193110264517608423208014087248082427307799102021928648894170300238071409967545526807105257217185674877394971971573154191253873906730552000172206778081439441527459558669990914411700887760392156453436466780611753383539210548922306097045604822971811017551694614852882975325481188544678440757581939583512831854279120031509478315987957729339726038952331967635673171751567325448483573675090890080113132976272593033022623984438805410494482032554585484151990349083367322295490833618879767167275618894207901801200316628932599696766364516985564130808984590607842315942599550013049515897969595037416515882180041570704429668111142788202309291837457620082887120504513610330342863324241010443682532233730674850389333413933331965204765042560489736213929525497921553850187562881868133720155971860983435608579165198340823652073243531059861919715961256178475768624619696578507923711591803762667968017060563945445603451484653129082364474619482647493269709054753389856369444518033440918927078500028931198698715088934890513629530400652980672025865303710721842781841419424681005218356147827485649646107617400900049213449599098738786511149148263421183976362449443033542864649688716035483002024108958610538082521417675001033059375613501637808667772857034826137417512356300009877428134048794100144031051365338828054160200493204595559401992943917484261364803179017959603673119008775600639817310908174177280042892706070047629338332310379473326816695902458294122562232715063925736350288400740681353325519151002923021186175876041293433280856753365076708021266891460455173898954520510620830867732655124861829444366792884174611927577399148211949128073214510917871370565851505664041547017562312731521526454906103770811139695677113407511554991306445143584197066671085163888296793042925979549359619935565972953158052089927616281178258645670254945926111109643802219571617545341746578467931070062198339490916700013606791148279897477651799291877181631392633123909884361654064233353243999981343660008278627902849167071573602662292179946396112296316947080499472113709887553051738075672369970278827304239553277764333627774389161604134856575697732013936662294520904802390714879050013130351022736806088353489975118694601633548876336527064427039165084622983617182835460363118564012708167426731179695828609865111227752427733536822420138260942717154400235501712674792850925865995955150965295904325223644189341855387885810628422122406714012978183066303129488863709072006480713650718440351774897129130358946263940865966418631842640901387278476122639719465474394963568359792878033557559793076268785143687122171886017483936573770601654382573349706655613444795086561539340736647406292699920352908822702414733131043550518429790051666355912095243076936151160959544348077438248861118439515201253160066205758317463260867895778284898548396316455425322999550809160718597886503442298874364912270025291254885042554310529960729995863096018331218241359103439913911732081937585962856636702731510564374454000551730022866383799748377062347275755603629667415478116105834022931980047064016048755850375381628007819323615661633759178536617658934019847531449107107263599441117228995029733743861233654347623301399667941704995034598528543679282039000877783068973309079600686724399712030150274845057297356087183430495425858144905695354727427190475397140919623724792707009952164837073739158678243680362765283762928058849214135966721248252804565827815515137917817572047131813289822661733532926276902287070321152617679733747606573882936524946693397980392984340120853319621959894711015902073788755872352551153564659311468092236290053759285965458043808664817363545439320584208869307752564255121643332342950881867509485372145042227463608448566244395018471480971526538670818522509790590232606905931529649966939672487019308934658865136182909590601754354081786219202842313365555641280663703519948808788915014268683251410555426577966111211211144467826232323061182327827189779903603184629488932035122183687034899210874508594458914333020371726060215352450527262383045520620699949671131751712816858082045212563837471979052187831134598489419181982264535338284727903109505202472810218720571099970533325237786509596150774465291047585855683579462850944742910518997376509039125311147985812088361574297781034496369234903510914807665201933594476624014440771647481405078796151278099973099551080720395475910714797999224171509709397410099569175065941039376776224492179120707607388321144320610279662813721057771042338510483168987207190039110281557985450451157210912830515134528669828699760028059588212498760860266421635719281189832119523711580613097973113634136064303849854849614077645489823258524097873731050544906368646182898176256004035739303921368669255557087887534220906660795708473662537926209825439155573474898796880449670971761453627750122521780685013460489221788620438654658632000631087796393165449585688826600584601251269691039232877307367787112358584557590458211279768638426656688719835238656222273420795779897296584094712659616634360680418015682935455932671858335623041213234072610963758198161647013404039316248884243114730962494539220401883478617280688456356611643551146091720947546302309327415413050555798865825199871465253614244982455311371759566574097193448669567093503393887194656227912614728203037716174316617821837688910400447629311727713610674632586185128967921015353564472002730738482866765140914406186359863119570479398996679323696049436137928987661339150618251111766493498264274111553155021674691064448170087011917927222208020166259392459226767493707892102402799181416689460140697647061427097649634375994428384812633166603795313581063892464204271949257631023705035519975128562407742814028160991968126233338785438463749264079100146630895662073253187833194555834157219718622890475534972071996134425490705338626535445362139421935589402069612246871148332332451342169681071438600736503537835491910209310690424210135463841835063130609011201291988544209175873654636179565629398450896305905384548430007245671541358090512699545305651711762628711954426412295280527248022058230282312168137099468784078264907509503979109114500312345906173218040842161807857835913236430598263737430128276260357249892401174198116974191700699765059271523657623133752790946156795537694303417712295089407400386771679248100663713661602125510275214021312214746015826726994565389905638063753576241157686183515856584110802050223203164852283778529672142088267025582579592938714106048184981257590675078114521426836909217029907069451074090162229042215131893504224865770531117556253234181354402179351130993309421140394860733732618181412544263227862996825844906245420973313455212760959724596937392977310650248271686285554970775921454884473052123183487189092535941847260152817091215479842317654650401802319393798704765884635643361009727553650093632226149265543289937559889031277228740523881068597290972155366333381333815099932955329020030414421611558592043750187256300698238743605389958922002310550902940924734995318175816988802802565257809097724491557190113430807755886161489996461146077310481280731676613050064409632410727726783363426291907003871937868760628073027852330401676830255012820461124504242420140050295175831512731807089740594490371955335093879097220948341207621097697427300778711692050500783018255162008940247965757683467258775189158314615809295023520524320868677930961280095425518181815223402546951782666802431244495534947297196977105714409309816699549709070610836743869063932453947811915169707150679077754897970746580660979407933442361159501617355295153011464355518079594551679356354976124368808977843471146701563132692901216562484249652580825494862621789023285891754239370590172330726998355311412412557127802639197640646744378428314346612955484927389760300399519135525257401266838594465338748642962907712343351687394739013774886227874857572942598954563532143015425428313157704531619390418540639788728676674680190341565122860944378528492915201601830763125081451770115343054665037863025291148308293205951915928982617712368166780640168482209080735259509434664405556873531802577601753725925561364503485049405536870884070772026324148174962511103162075585572818709983061408855449998619460679790789314002947597856851947164203567199037010247684291677422262297360949792797357225697006690798059308634532738969780708948531334829524169124031968419206541458271159687252768584290320636613442886104676979839750718500286809028117672769812594415923200463903362966190796312770040302825308912767870820211860906789140790425507357246348399871611301881090954537379153925550155859819513931206442356330227211679784424040042996545663741880628454572168384245450308792036000865437511276128720705314947163006084583589781163625229100788746690849830752594890861040188018065950442065388233197602683807232851056267499367060825090805602606324751901268326733496925698665138442501438648816320279620891175362354368775039194601596626506589848021338543366476032442831367599776891646717401922285747285541186988744903232925943384099048980868550039705617849647917391183765151951877110222756830103232019473920151637647157539167024592442696633675049785438528341026907738666353234950549971687813421736102217906890558757982171588731144884594116973154205235301860794836313539148845340251890132347136075373918395111737897533156348605779652834404106021005247431678802323351009789611613464477365222309516369454497018046622217326367722517143989739160972827632390165079039695909167134779689609185545580858196895712732296589238752913051428064885508710340891384981738358860970232109296114955322407853542870926493955739574183588546022467597263671083904280505354956373920270098754729893763150519817868125189091230393245827383755781230205740743972628575677147959684252020660826739866623008463480092021391472547391835700828557881807691304966120238551830250379308051450055494051567970837200894332103434639452140070248422662784714683132468936780961635746295564820997220491573203710925510921578994939768279252647146308644758502027571312749900823812526677959254297986356426890555026688993687158364130850765029691984674605496992713526969602733209415611042769517362809670368097247983521252624025211590593995800242900223849932000217831522539805145833711088196230620949946647821683914212337204234699258230943847453142454239731115011504951222979890815935008309292544316722662857418702730029869492193593105996699704377086211776072632789240028199069029225805492215506843336947854202431503586875262849446617194446630185648292211917541213355150948693794634741533361217838216006196318444756163173116914792664425165800860500116665639051344197972348214736985495330985879610088438583927177636351481962816354243074992413656964940207282140009729417026403552602932524092914076768559980132563305721785556098839756988240726596527295715047555013790832098912580510315692631281218931858541212449047465645341652550892968852677269548731193574702454180387993638610121456733101612394389626171312923522588687893098931164619221109766287274401785916204978425189756385065216851349999123115176841235611859825504821384999449505415942503053828330940904613470845357888100058933702006851239201003897732737991304390953524991881314168076584017690583112742173535038251627925572837004805589399020412332159011545830641764983239690898045095880332714806114716387562731419925725705271272222777434816603681381042959895998278692859178576086591509079430508633663040356554635699786540290393041315910079762443773734078488356415449560453209131402663713395273977532489060954952713478907056258576967295798727275460848333088625848290295982160867843596506763238067590924553031333785108875187148506014888030833020559569165925365756352382100150948781479103695962511957569041062490677094857717366945763673605186587060063955749598571432689817374289083454938792538166915957910419075981811627071678086460778069988462972348079932700008276320386117827543223525921529283537337531796383476928162216387202902420900470868801842810175950473737858140277867002548777213535030660144003497212279100506389037447696336598088456130488802000112722897848314823780289427447627601123836120524272110876527026123041832940202906512205166848054056482366006172447874648215417760459072096753955106315094012988311341823444346974947253708536370768880570370554083537484237784629350120153224008425014350979666513613345828398424994363014552662995968043320032072267993394647200606514538212724494118465882177947096489735416369189799010133137803890972398296167912009748406100551373876798138348149801882040672691119974819041211320482959179157481083469819846445713071238914313908297972319485660822985548385127145354848524584254281382852186161329141825187278477369342741826498516119136896927202787428038305805888666475420586999411391032737813834135289092449329388369508933542557430405453129881653057077361287573708883501518321868357053142184932406350590997484059689201095472713494801439579227991753708645827041616476426437803400576438168401003972048085286796509532992766955001724032173279911353611804744120205840907689166874996646062631322765001428014201435259031087167006955613305526240799743338101274941950417780534318700903472475285954366011736147045054730394916176922935707931490950088199053507407250331152883789542661685635621917798362731831073820463917670723198079459387261237890355776896763895777430827097265850231065904777544465788067185337627578957417293203964055706268324994207144024864318793614461885770110330953970864348014221522229848759535433833381631407542052303060630820271826454078460767700449989647521803613898215337726531579177175180131474010698676688185130077664262551634093353264697292961275743669745183372208443522276192443918151019210953146935934265564054636639198683589642710275119548904815952532895576069209132366227167384470271283926934120575003522152186728286856869385945311895382121760701130920284208776760514686139907696345664030947479239668004314891306462551697395735497222151850963652069346735096484233445223466953723805879127835294343016418335320969514632308549325406152722368069981587825053637025183066889356403032247784056465919304247628678129302472644244835420336944385957984092394955553360104800593496183044718194051767046809673660414865858111540325325652913130068132250824710771962122148753317482646834834692460227390788811530923647604449003919928630046897648471191227129467168350085306337918619524070153875191793967232078911621126083090552238286574726463011759720717220589179539347426658470190306402691416662267533334020509366202666533255658092454453751459111095372954827441345554171917790564017666451612030506173387721031360303518036179726408824127428029096184787979004254369603558300250826665212401911420449396489441918491383983044054821541850927921024791011233420478655752896501278327496987845709806414180604586131726440050174466979118646548911224156067681580194963857826014004310344582000157575639190267462500837979101955863253117286344355349477439704197778058020334108456301490985624801866277195086989106974455504214958427339466781173200987949078017979662132991409733014664834357575349577253215565865662686134130012353137731589189141445736557265744658632505341409521012392807951326327374569818576593549495637886322838605010206891028973515061283947282698382031978028096390033839970368751143722326545720062804407734611508369167347265258800979049955990098117584124942367377190163721046728340928626256149466597020911744149181825036650199811819997945315059205620905086404234524867982165152883069124224622510671620372972895635165035031962095758562967432424633038519868429846859681441962507471310742979584671924216718049879733424259771107020152685851470993263654037422892979871597325927261903375423874356598246722841353123521894964736592939723532752747950785672443915786891869342417303174884059368140818902704449114075594495312884048564643432822069462343302727350707732612062480590968098578501341479535160131311512437115613307083496434480077322737015295512347758614165477444422961220306000976564912596654992174428362011043534323488923347781138336668011812807706773004713196218972963456199385104396013642797488732490427780047505897951196999259037670863502119059197486896211688481986522327039568414728994549564401481269740925046980762314210474879236437109097521012973969213863619815554569442745327450280732618531065579422856274019094556473797533963305186481230806811571172592751121065123355105562304170497627333994130317381850401479845498921151797778517504743963713007458303914138327687544784498811354042436145755088425607359062674447285287099663477840334486106828093980373663852493501963587026922232685179835753871400139696334427602261288872712719405444273577548691716872245577013050991580956971985120874311878556238599486517712559599578102198595302964722177907956214321541351913013131014439729592900850787383487162011966992709439282164296476819305467166363266925009503830472436040016399054299308666092252354426249345965594813261042704964419830403219531775326800246758543004163416871483026202083451316836038343316156116469051777605220511197163129853266732527818614164729225761912775358793463936702498832871643500916476993585665500436992325283723367686949909387001355443927474854407139032507573931121001798210809865358410438947138397995902091601147157815087663429525355591508068314781292274995652950108108559331962386974923256628175310019522725645129221031855498786065853833561072533371703266385095648969751830050973546517565968224010210889929168306036479066373316023314744939737206929527797297677375836080240223186374024415675045176217842495006308072804097451777200694866352890328777803629083508905218832099278628988643960632940924791899870658680778443153835577872230885393883064109401375106757494588631460395001897434182668557918547043792005367213994183745136779813322488149474580854780942062920874325920393544025538949687659184448152830432643229353789639032442448321573734600964024991865673919929722869697395126455238165954388120304391510981499944341718846674523724507060882095563605870211116119192301794032254400569922747423078566302725667768015227961780765405378231469615941186512442962469486076999318254354718899505885753408046237977850312327666942826711336623259226382313220601032604671299705197457999192060392489777245744128778880573224018021890030785782297425277502861747123330573339486075972663443315403061347813825534571699992956812151057932829477200805052959489172210599185743646411084625324199327074858965176995396388591845329472704440674797393086194138068236981151397739259064166902273077872723079029522658282197010706376976027651710065729359280450858029089438264133120009519294152154053970955376949838422315944505409092800182886458985712690761101897741584527739166094294774513382651703669043109871477047910098620494404987882240708609178909115749665438247251195607128291724686181127245399214755008732373251032612378177261075500677691414677446132699008465756344320591384845939415382959620827684960456589241265580850971370846415265155343558617813880305666851869528409015995255208302870200646067827218690573811204296989681319889535894316967298071113842942110497946628525062786170970975307452984485143674883942728647812533458807301684960189952831803898830525675153440465753267077055838454489338065946447751008565338224532878762118460260545640981285036383410874270042747280591149223199109976303357253879491293588798425041282593970980081473701289477121661592373325235642353118855542200522228515251045539204393232291968244423326193632179487815526117978565058785440243795111703695461733552148408810520645606566108157325468161185205047979618475726704943827568434598252451643604364050105902919610583731741842386348611462006007742317261489417869755588276391951838254613714389194514952866631345011725247820185952078193879528468690517056848804748934531484184302682586451314713788513752462894240969154032382380976734159626037428674603179884471012464115584661197648984465185170461557298264578840190405441551672983074025069281127211451013203217459613080106210213707839601612927091406909508505544260706586935334152622006770635397393031630937620064618337959862547678953522601349432283499606104691192928410574379606376815866335344620362469970146715772781213038383646461473484288493264497836464147883026597450513039558768391384190038905784503944694959926800804655142367148377287065389757719575534665756940542895462855057353485446749104668555012997755312003928929095073124529385720106809480311519431284779018625599998800157381741587357253828161590334736013150560330211745798145562911111090799863801410191602897851706564373488627214661925412069206797911481698229738635557195441801875638153536560268018988694315669805639459127495044193790264552934400770599325820052586511146231588319794254960672038139697847612525584782769539488822723042028795893863560121516253541574884904832794901936922278725324668318365241628697355677834984706030459841757876876566746333413957819817500094807245782534921556422307396644115784491838382742809569381265651280254732767906779521564259072753800477827854146167418530713621945862677578564759602155504114282920694854782249110885216311547005827037899958106152780857630797073328799307573723415301635652775835214019087336497617551184064276301044028181623124890556225555511996171805767763988587327452285342018184098445935613841172103112045101405331601971028178265969238232993303002904780697417881874466634777426902961075509029790788473422559253388359635162316433641654730555317424173959651191497252408589759029594277968381223359652631372615815997966009188738894166278124958831686360157964417512548901032945717615627611328073546588049254392390478371212464607735424529067413502331483877734998271029305093557698666881316076578687628559141762122639456636831111896921782942567824740816747908897090257252427255276142860902976381766326522065537378042156230949622679921558746504706150022296626140448132422188898093287039554129120253235613585426892596487997231433625876411853969258972494098820002433888137579344096947238628334021682508000353281719887054159310510483449408926543235330548079422536301763280458964659927985091430751552216902336861470780833414196351968089525377826707852817536545249081684516633249161662190699652532696946534002668461472589262695450397551626504647388380539155939411426284312486629843621799996759238732791553716250166937538228831823438510889972793759877470308428798606794101633511382047032617966175240724476021050687984088900052439357475644466956252533095290484183821446102402778314088907850902033320054626031441862890384142063240708517097181876412849990739698324508833712126785992931256470714256672326697331563304957792187740542062734222063004454755797543414935377056946835985778797865342237512351224890589775740867414953371837592116023872559100528295331829606717061137073209882528062070315813697352471937926583494158981541365313558321788354894908586066718200159690597897093343644687722700543128592123792779437385921070336007401058356391418691153084387479820806048792090230251023278139606777933065337399923504349520262006392130228272181387658832307305909323504967069865270403987714392534800110138874330798807746750271261025615135159591147569806569425714419547823559605432251304190442128693459184616752283343742623835614299653906533756939087358059519925635681695346032031047700341737825076396300995821560209303559977546342524759907062478949412356934139194280392960952134546618966075328580776483553309668961036261478484720148028414235692385228815129588433767033757154031553406753835800346836059177871577509575708518400246603686278225137619009355698629025210493016184469550010994150631017143267357848326620689393824327553357385952390589653869548742739163517893767540501219492627887745955178597251997055516971603165158473751117601163282572445823789892945528877911719033841419330440093312418108961588600309488793109252303391988724476436328559869016334557620874793697412275330318930419585819135038494592025648932789238842579991023850860737430462554311484692886081654079226105985797854324019613506574394407035065445908319745693703590752819093928536950776667574596310277182984768213904910668152234416142444840170089396159157950928530148092833979044260103873740075964957710846363121645056582595329521213196967050147499954055849516467603578514681229399978903327188933570428888334275851842498389690127382902104009897114922955097051507518710808062584718088311267274489159440324673403456247305386325137715803892881930195794552247921879745514754826729357314730037194980100560486647007778553192695659974886537799394502796930363131716591639574879343542688028182112037946674119787950366771171525875096107922781399737907747473513543706744139994538517428095932525427307411541194881151959999733474042266373290052803999598381334303697916948817749065934274474867373184915235790485921110246874622846190643590427413122703803108376506648616129420521206477512009873226931332362784092763746340420050340410606793339749823638456452017005581259999205318273044603289985209193176076250011685487473785151253466746835240870177417263491221002431448777375977722839140550748345694436216650449735077795264889327596051611691650291921457849286899941039209560980862190165684730879758278538397698134253155427572393675187076024880278799315421572087527103424735173084551009251672101575947883730203944777020459741048897416484112948673388621179333374604985524900574165260035785679773499451386350931095609912950426195222914626269724058767474781661730582865257392819359276373701496341898088626723366890659730696985019125080084873591633541393870871842724912223932272769703432797585079058326441051693791034152162015812272442283587940757874517167821715166407173644760084712695656012881451385789914014843351212082616241588078947341067686788515212353436569791825086041806784390560509681430598067686757799707266789937033617389913003393687516841075123793758160323485844490608902035842420163885179198773628090517415505155088231947525925112962123009097768687534684487258889307803315369525938155554821913951321325362538874720319842262813859663204445441116329879106735471957717485428674866523654247853664282021111059831728544227941221133079606393664842446200391779109347727301017160720604133380720354419633923379244347170739995210897519367759511783420464778811589799707458457785355713928843632771495373083186765914833631706858719689246230854129135215067797394716928951772400793355600617138893571382717371643808031393099604624578989161715131477568849386348650837010190145724069777426384900718820281252748190368138831681675043178601952864738844287739072971479329009481372955135360738867377327055910410073386636029250508957020378748981107321739097318410840192910676157069178851873027380595925918263338227395529323738127144756196845097037886598890630748367408042948087894196790786641128567701173274583397125373838207967870518472057031595488460094378509753768074706008520701225141296032599007618239066311893294227589839034107644301933796106379690234677202254191949261091420254600752873751327742086632349877448973058061577923916004447759409813852081136924660256518389078929804269552113851700658514075098169903376984050234330092917770696758730390273492280234730973185223591317718343527897452906711799333911193786636291934849755150733379152758086537366982626588958156257885182068208712864086382582079834995737185828133061121895500637750911255594974573834486394206959419194213864520116541929020415649910519632226295033018419240443762649381484669009422275116616722402239992394098916366793100374291803672585909016818166181063229564826912023941691711105798955983889957273323130088294999928905630819183804902449413651690302401671576903329834282819471772236829846757931015155451334530261523192223732925403876584091363207182595967894372016433573402938520425971564868534906432148859039131160161870836902658219853580520817309785798302338021234302408742693832441991219722493072404556071543299182432244400160983310008007689631920175732149220890015059763686809064141098160443450346759467015682688727359167793924061022747432925285873445086937030440698153607517332503109621585732648522421908766622739847563572118632597256872914576481481876659819974113268129088217030057493547679464334590928306817486562658495311114773965435666849639180216252703137975297981159397980436278498953608889635632730727904527306231770321999215588503621621084818980219396606121249397946553566831539463234255547800995022072535802325352488970110673024348566497034400652661126655817046507432309349498030897403493895135785847856344458158753689523844349488420180075392401692235041481912511206083835726230733514781911065738229032645603567172819995736820629294256967509422920012524092932397197781692858241688768648915223557302743064299886854293583164220713225004319624992103180571727011029262323298888602300079688472115732596835004191034591093301061251676091050523388701400551929315481876785751728346850077958497988343342344650406916432937992915683462996350929473227416848967795040363784417717509675322537443310995125623289680623626454840985142110487634985684901377370864647650475340594606938822804547748573316773245587119694184739183084268171383968241738187228619886320694691022237704029539091402993094892961626416740799759475083785369972621574424656350667555303291993941049713806472808416042271774640176375375221973774250483799518087127472733580362545800978366690086106770078995103185491758394336505323555091040204712307782988233627673119048114185594838815148522649142424126273428462727146810296104973210717655171893102797121164186023602054311978012959064164356174742978305594264654735679373378232954263702606045626760830526699669501625827446253721882276041133726069960862099645987225677228728817851848409895213107416680264256952900374459823647280124192938602485912909640418008398290945475075191674763393451738708419428654425105939570336871672276202462250581071220903652749412260498966462169869678062210712963316862247720338685374575799213328968184749065484373472330381566669294620282005181851257412107881037263650813045622709484694087622978067706488310376330298862023748893184252466336552839439211176473199503795553286868528177310904874864881716474689480400013765921074069665081844077044726801617990941113592621975422546462507218271342504391715062333598695044738829742986622003901749431023328950787097406666312181145105001409961256049816335982263859120592335799062551174375753179546921140048980401158236136962065672871929225235529310207430119076216405521836648574087515783488411334484922665021277821202409439835621105610684616143236569447352750934833531890695688381700107590840878749688696940043977114992130756345495936950912507261908325110562007329087261976650577051592144164344498066350567325163180988596161564264856935459115293047708495976903113731266337818956306649759394606426405504522360305997948101214810106059957663474522856077464081285199710147909345402468407085281599050310777351210524226971808113472818971959793485062295285575558826349553339072302009369285998228494528838425696796718062552124470076105696942258664763010134779036393948037441625283013503151956019524089133069594819169199481941143636930827685555597969463467348373120947864489084945129844815144850284905742320940145829681826069587260656617452137650649414655172614563409627576560883138914477930533990237879232750650811254327908004728046428840481023226767610437177921345011955749718264507433560976806591127525800021843869257136272046837489077247647784299011791181091459955490559153725043414687470168704313321653689040637371988577274631846297712084723973246360971303786034422259847383186587736010521508768432557960543970655777988254900797418820360736635748330159357495807275608985996165163851750142270799087388914972262591708358374619138773520286429358692337111563301842213167128665528025634519972631237258775736593733517744584853938411384893287444834581495253991714990080638035115206252687198355206144685837720745143543811757486370098204728287019906374709786764514186439913242469270862236010102307152255897901885968183586194893709159976453297198058363943744048121118339910584539828836892743260016114606682661532831691606043319605715730332996868100047526853247461288098215119387822414347758298442962574315116342218998532366855781139847164783713013008499015700606890758776046951906014313400481240000603778741206539499630166113466461504306625010501208603597089757293093385150076626086288061109920509005941642941521691363166785673535817203276133395418650071713287915390142118554568539365104535168911920880001470253923674213300286227644609350744947088623289679816047091082653575141583840399478690197419721869071823478156382546786042086303922376449942572106676040137331254421238268747092864638942583895248364733063512726337484663747159304084143090140574570415680502149613168968660459759249240361185036734641586002902095652015218623005780425910883422959616990223297464148712497647451538140793700324028250994892911029433560101213591093725621290190505873757652978796337041039135771736118800589274387508562824360565378889535547932441009835754780398071001272437989206950257206332882622547446568887222982975435927821459294069228261568039898249966809182399071540338641914487996518141667803467213533762088524521224819277567842991946194685438241293708499576498245085374502051737311925345378959024611184498471863946183532038660095246261963456385083602694783659147678406873263632322755897998423458108566506239791437113964905297989440516303807816735496067213805414526100109633431863361395042484235487639857844739266117338087720402725095162835721108037746803346360524555844730664400425903345603571245801153729911291586852011101992708492010015820311701469349200502809088583323806638240952108588421248935721913975401604742949319891352330182274514332134382478842544312561432978532541929902922761815921360748034838761255105099099093938614996160658792477265918399818659801539123307467773521327155787627794424140157156081774495119678368578979271326728053165601546905987882999447986162805362008148894815287404299829040514665118545904539831982229823454371869865720653760269025723775175240801418652492391492380751264983103477669586086690265147637886436852790764813726055529630517326475921963364825673623143446883439309923433713348510041811755099528732078327017465686550326524667009981669072232701793601548470314869210845019803445808241194714120950306032681675573358919527962652027095498651637346570419325169974374132598784017688771362735619345490715696720607015929562022842762793164676046492789920869543756863608381644460406133947289867348535415178797094825260142333631357491890417226131844506011749705411551595670918511619927908123409455800357853847023054246484203982242306787542445628779690150210438079157504028820342939880400723816377593300031746084092806958824236774087112618598108860909062359190424289208096837276590900089965530666524400579593300724459687090016720200628888964900204011970222214551349544418860120499078052245657365767836130309669430836061314528197222582229425906222980888244981032314381547292103316151497289632462586767143732963706625973069228721690842234486784118174868370381907778441794390588659340798213233619278043960531363957847788271309056327987541517864476528064221983013317410973908155125197234927251088799655295804230531628394571074994896820902882132455834402246356014342337878445549937875725411656377748505262456393256337362046490653565060777536485544750976393593615895858651618798747556830803778040848887210102414660868600086050581121596341942511410129811139417641575458399205368823790004132640466333302156280007174798686289717295502113817613772427801894588749383421134596438685312610968741871456575984621365893173125037428002141740599520744846143646427427647600458284298075540207957348336454696837164148729641054098815901801249989076237925473476148823261468934294137525994682272756576825352483646018751710309648901094248719193108951645661639428700805821735941513393102943418279640087523920151453452371447717573901612497913671053741016522118740325685093655399366600420240176302840089759595568632433565901053982670644468043452934567387632199760165690193708082174853969359404131032264393064963604416330278972760876057655184784719212391271320436122667435158252199938792089800056306489185178414828122722569633036739428932851356181827811819264032152487267050894422111090260822426227674163091443534961308872167002266671747441652279203924069583567278145560825213930278695454335255138206455892559651595773393483354839995879910754873124974458528436742199945246312020730187492951928093425097579528415171618558605112428867793856535545013505164156202956317395623203737325044602552663876899721146754857418535589274483079177301314207728932253067793773950497662578578683683433784564252530130231553718415378609796648261648867486473520834938940400634804023024988521788223269054707975985859819476659947128158027725036161700989480906438933182051115765583216465670019936270275118682847442384714142522744023118683372576271521173394389479604156157123078963868277708215899970568617849668265325834811542599468915457123684846805316382256283563525718503575575399296994405409852941607655840551773288615107646888130029733797402008855500994229668167172278053157742163514878479224886627972115588484248745740079349841848191664717749348069278523964001423118965479377022625812281763882069768624500482798533288914368330805811236321226001482625911316570790936371039521915981724353160253365081432296323432468750562111367937061692752541027958847535619666851830202570558241926398380845487958840957262674240293925524781597603699808091394761211264367133816507179125738652958036336608820993371544529429508686246070679271870959201257630103266227357568742189565388360566429558432046886853441000932142151321955813282120165010515922367123537601135130110733835939472774026349101278478361205379551677969729072477534859111273880022779672577046529488099938919075353575387565381403940888427901816128830920472006738378583294662301780884762720858299863291723338108159876719775653027908169046241893772555113328994165881832320037232147278466461987254577941123989107593829870837860628783215607414253774701287911351915411887331537873220433266251658509250070209417487771688552729593775539519031432370389249416704402946711744596007618075610969592492533094706037544790180255157480200570305180881137355389738379929217035683254050411866171281142603264923853302229740386421143531529855325775442194861739964719752868985634554960496555547110706932381416827109670153532740775280004751026283434879400740500105498451864220284232784310588950625794003847448798499560503669484073585989991532551338850600235458674891538425789882466791924638530032772443763165421318305368086838221178855019087655684288848132114246509556423937292480075778329703255163566249892365507895943865862291461391236341845466112257282223255310258481167343487432515901018436257420717605546504469034854300543335070210491908163541976852457530378120841596071491202068075503606903905794463985665843041227881242767631448182660598575070335147208845631073336245808928528762262729362902439696859063069660490074962331674527233353415413513208354743165901057662603333428498189393638642846723515745915057504446386432090442008680165964314268916520507829689611604693294175124190815992280416925120060902606423571175162710307147258578174734735973186177457033813691062234622167346119941221809351820359050716736377343040989137593841203328795774743829914229743625748128576090320070298530729573738557321706561723926244169191016823399501301631930543328568667693238052828720418029399285696875693312259731736169949514406261971987316376584138040061826015305783861609043878500247463331298351218939905135369792128627059763336148985833604038643136095735112864071011705010346187916194492139699441220427360207710109245733724839299218314441810419750776971554590280394122876906608381043949382362185585926003090833049038667600996727656000746128450079774045223897532874502620444788197179636099134811869531682144754903523455916042966704573375607614349453733297363492720274986338819633631809103566125436370954967860589430245649706730592461919264218767549889121393385320776527563215941588124052821635605862812950294154786808888304764267037458999736211299224259546303638265730176843715015413097489632016426728668144035851503053886956183033663864142204461675926185734110647477780646384302598223284704667786182686361585001454929527885090855138094454963237039790140277882198928402759148547291227581144055077334828575738131342784582142880696367157605407597818249284156818602784376369570701423882156001102872302033176340499024365245483753806578230429462391761189117411445657936353026621041906317650005068021872645507195094609195754940870315620876245616592492250436121461174057282924095689571564203212122329396676237655704828252317826887476395924136132013843174630980243131833713040057957346295956875494641958474550618833508912097327106951135200242630668763637715217082591707085614853965056737135448357965405115912536122566903794815771720414943377160868990873555958069354780007968625517812646564607865465718148247076288210896135142730583807585962847769732098907039872887360255088438757021206940542437142472818939011308571074996214242329070326049915684545618764290994732498544515357766329129831316021050240797862154631782692461287766556024503038246047625028029595701039345784308844565558544789479686697350136547640531974349822357413431959983979825704310069630031476122710574955660357955872651059137770476887902681122824082454428858761517234418376065478931750846285134754014520942339423602938774841466099621657169657547502573421752427117487926533870193631465943174800412736466280829896423909774325027850419350594465808384563618586446326316366278659938858523377936138487849384107017875536260026432410731284186970269128925974758924885946821531107882902322216047538573361214856528415347388491173587483871249177387766656764916780534682907890092107402828551509716543172861133109882483659142265679274125272906975989629394766877218476021976071929426962215543882418986691961414001411026780034087968015437783465384488324058522787110070885094021880770285030969479240703343769802461824798640949737581584594404744518355257679219122227566014988423376809991070822389117861280610544769106311836892910038140646783856407067468337760209630585242455612281192608568460975647764755557654944817679261332088037483437905025298619135460865933748314956862707501947896515859898976031871812143879971444438679593121858145720179538175871013007200388632913638112811879479701282354273822939065923334579131545010947768873117533446188534238157211456791036046093821156924243328722050850396336791922136101584121874213874600439117539534868688555967104753227712170355374497652869384985848933200898094865332125327567701983363891367360402434439555895075990108509186977929964863354909412113603389022526387864581474096098079023813022976521038549117658061050787783377523221642304166821975049778454820168472224659675530795274521682093485872126040263724959188859840626171538013734634264490595066762779701672267016321348601340333175185382587139418911786248460401455033205433720307089339658691827973185516820752343208205768013415506109021492923039753436687965209471271268192943621757643580818316512868295116709589644319683688645075602330588699222968729240292671843334809691128126374047384062440292849345873220641112702674475200986636317627566547840082195817622252940835602375005949614896132839228178803740453895213118977614658049619361101617831867401933350190488419895837289142170619437992977337588191776920557199129672283549367098564072355012263353460371239904150344069390077545378009985412592512903894507336843091431180303525284989094100163886576775689272100181560414151421307475398866859973364628273404719972524845412893242239914911365480308424082499492121050413705308656122072574773632590753297392840461149278661618365773783933166714914293853871600339523309576224009537775104048249246872340295057798780856890769407424573723061104769016982910849371215620153868363128438008226452750638937070494840155177393532365855445450768917651734201168389400464025045159774934766257376351005580983144025684231385858776785955881367034635413312001899345715791050400337179110808142640865800972210007138018535643653956314757906248921359981811241206622095789358782720683729853926414536074079625884359496257282177949307128265430118017135584808719044931101406063551182019580058448093157109207847304299511979060968682374364135642824015321062450175589513288734539870094555582144287257627468235979859709163006535170756184572817292107359756137548779737771597003482363371836770006240337487532748003952319469079663706218347607961394934045526998855416607529536068601556669411731797534594840677635745978910741140787241250912358391925739750912400502160066012351417799573601478895339130188728225354626279973420876809797253354155306722533241200490246956744193053651567016966378504063835285631216365492062339873183828447457631180780547646040949349190237507173916614403713190580690867611955873977678526383668805433720260801825190070029168359253491167180146977482347015231697737212924880972753140625061786408338377906967481664830882061023897587440792689729096510731393731546813094041869773884521653014354681648226562592692977991103279164677536032978487491991203271576964720258602631962800159715003742972252693680333446423401735599826846278978305124198612025065506475486975643588197610989106689849038009172781235798327543076877527356889673709670984597848148088364950050354716485644010796994924273845941933502735137577708635421079599514383437720115598187399849339514581818140770048239709868946900673974762231555137909000139963108609748640938899713630070074551821694207276353796857167125069829112842358736054723838484083527224287877831947825711923790148712994041791309089556174589263828834013823487815188766999977375770826910296514914325680463672073694512698363569776209900153354162111708515759078954206638320174430277910241835012013821573868291559342208642276353290013866833791401256884309296354195726995659941011373993567050225411228869569088492384719048681273600006447627061479627881112918049853558723927909615952973067476753213672887984912084891140142908979177904115988428647275873132609990959814361111773784615193830235368870714379821544803421696922794293850255823631218504101916082621225152956228308267607096253179138628649685290869681874086693481315980823595270613915488915206830512972992696632892145664459033072987623538558541369831167865504221727163689449610019853847348487055296290803215668053912741205906083826316049668383393209648779086915818572570668391603620725451353749113318116585162889533289819556587792719785091179437186578679097354980982311016541197070288984781939375997671375589121848911599079324679389219572081156795367570432510956201119200212325697257526528476681201859656649088248964814407414281817282929111505024134668187095507583308416140362824148665392195629072215219539025575832974430802022113721840928941590031081894831685227718957863299785718902680637452959402058683399534992870532568691601297364190474549018604361067761233807270060193472461084480844286023765252392921807845188071984359623353818149745621078843795489386856602881238987776822415080264969137374296064902634805815272028032422024535269061626578379351502239212914067656111688494543515107927847798747399615646805366471124983906507448285092720782879662317478594570810733729850709617311642068337367682206686461617341289730967079901513447047768918247767108629630707228120574822757044414335043547664037373915335586886888670991172934280254582181661351981194848988738754789949785224911864561204848468587953738852027059146544358572011134978420849539727331132179761190961054702471231554332482235009571970810964658372241233791781930354780537930415613131888625706828270399279482864430861579913032945064216493902916611801752657054396523417273655519469673100883451355202256113281628427419026569124547289049815225735103009672620473608295156769135329989599717898530532044665831885032331411683980453657508890619824682706194055002667046414901205730241346626607133551872466885317491339241715216231280429407008989892914115117953170417594456594011714740342715589420011702793330385757881827711615573393058819860062813300089892343469226284938521275240105511444368808351774551643917631908997881162382795487707194709513821652688114953415297038474664506643126564908261211793952417793244823551392818596169807479688792417038658398067331755373338497416345637577240501978107575409434323974754686968189676175390492841478951642075660881263658865501803206097490124162350145273480026099601082697973692483662698168956880210648973498089950487860551861350424634679556384788899929154164124542744439575704410394126346766806659678575914244265966379772401580255155004423026714508215177310531617972338963880652180346298891477053366932513693857130535384398115196497173037550628172028834351216322041031022079333116327773959012949146539547617717966533964700248019594201776907663144184782408955497307032760678352464118419387015125486869751443015904500733083998626131654913700926038986182278256185561818724109063884561687584476410016759995824011320699748375375237491241755364540668725124331997529477262540067420333573556658806703530850965572156695827998056055468421194845563547753596422089360326553174127347118329494035527763288906382375288781655031592143627115602635529385259588299481847236302855767230081889383992500413828977452920288028444020484186317136622646425499345693542821788390225308762797987925557692356771386411047315674134878690055155533541181190603929711215357869884604263394338935961401286476874620751957954803855148564316561766525697785863577044505625386903988144955637188048825229690392899244014007233579297973605122048413658874716998134507859307745749757323625072360329936974026398056471697053320714134927524094303062494829267961941010019270687272057071722756528266826629527471786640924486127612804919583313676408792848734260767591462010532256031687009509247577841631186750361922763879259839166177952119817908349511859728910143350373429360799488508220837057114982170894247709424402265334858600048883198576884070410078710902086117344139676989242250259378917220161039643234717004652915699042143103485191062972295588183583311610515782197464582110059640698061576407878010187330466030350174601220847525346706575741573305571002662339399676522219656668678427712705833901507211218778291920991197830969543316595870321539415100714878205580574131312152208309300058090720842164429073446733330982791764093979169979003582921023672782514436019202492737707319596611138427237888989432646567218816621036476468733983344043481320169753972466999097822066798956479793601885670478258738085778676930403193656829978562558968960162241524333279199220927371910295935158709703935342546497011566923109558884128475022451234211930431960189966052984099180571617144864609349681265514195988852847528917206395141954977147056722031389942075959754005144291509572921285146840045995216156555040007321008658483042223579980897524679520387407245903355611229306658925980169221017714616574450443653921018875232959111685310842883962660727974729173127564673353905453025145884009026582190321041328623898834470784037680562704076638168940020753502143447569244944882060010090546365628690924583657894598008448382006007136329912054131680520482087122316512625864633220712558899050771870858921796112692444918035597974075930444565626795683653101752573242544999330235165900125157548235871747264826163783809322950253763636318311276648144186075568491565848048502109906867203710794654731602506866589285048112716951913774664078807322005903298300896866919967510906600264457463815338617423835315504874487278659488983179827817825781564904159361389986678982768797103387245465974321106221645755166564327859164030405122907701753074128391984824520415927272520417177214018538448432267051210630692423399510889835932549471505101791942362411744245218573213510270733964997702941048687339172229904233199353689649358862971155400457791066461854783336225953364581706004933303959955596406621139057346063665412655926519212694778982165441202594692605637984701250672758938109821431648754285040565788166718659811527216680206196561250858584065261956405807144151546817428552029491686146691109484286096429554604540107402680009942386738430738299881387597778688752440596885031016428555243991552500526224424484970452446458908678682509589375390715106197688293460754856081982160504354116593837360372042725498906463409879055007043136037205533563301705106499501325290995755759637273734243085230383922499209041707888834126600920470582187978705982093294144233677367302867267164693816292097932259118205928650774739482743881508666649741726311448481183142674945322441486417853736508856578729060743566556576205141529960330936949477842977959154462145022992203940924674684448187699758111431741467296322778446057208876663596204085775406357550196544857805252529784935154765359052088520234102843167217979828102133748643471678404792334682277268480048336265029943752174813353647364778593556445366834890895440123730814585812945676202102173450699007769401967598313267231332102061310691684138411592552076425020874828877888938948811958132053442163713410786856670013012104115545773564300496818976844121668728184311479907917898259988232305674685129147212319703937370705152529814660120818401209946326804200520865069271956889689788121054497231061104426262581038128508651591245404153681158711883613197604910167770405499203669538009790387369144225359921822537023857663972879026015718904551067281046447805751465780218773363076176340837211186007083663808440477387854835916118721479779943120519704973508297363921259220584670334926738545855900614807617040145679930001919640840564787501078799082736866259789460002079527373847709308374272258606909852234073351317608506697752408064087346301432142062403152624340054451743071605557601632084810429786828126256944361730418041470780274513759855819084381501920236416216846800784589530711798976574626413666733443006210816622394841178067020922503466695503867064055713064680548272312605322575457555318872204160694383267827089154916778978949674662184230650346282723021296840257497244625621469204223007265908437551486738201813460423074476851628885459290303119212989599745032486572508446940768105487066665980774174317127974255122778859748397929653409686624074833809220257145126546293717183607841385241558917811528717766036611350015231032369158508089199309770978880646057027705723877603857884030824125405856877565580770435925449332439502840966861450532026104420883636114948403162218201846089142954096076869603314067666792920176005207448940461488797847710648838203874791315368173243673554434889744362177315151327368152515695144521522982594572667300061015920960599632999307945307628272911348729663400761455017938896861829264434054386289500824009644964493007731541601433929046947607575700030562225838886864395727649501466278139404130792251080446614128423884436353054379916425240529961416781060282773453310208057858264475839711576183799875493885069214997954914903864841604115345597228486005962352211265332517050297021737254606742662125638516047371042340143559066769887635068033406443867765637187487289301159378884871219909878396250448887484779855025937618879425484235758541188537993886718324102790648818883979428709291525299265652787480623731063531869992951818075570117762621145230742963803398515009066826064390252520787644001663938873264652533288945952662861158824303269036715370816647465870939795234299513812019319588494970373556566940274834241928095779974950749740887115853817423533842420891325950438523618590331126387756451480998282240140822945227881196536667285471838092221947536527149469607175489197361575080150225828817853340717663779911254527603406493396536286424427905150706241186028317539373687279129116395232639610625446454294941568428844313672333346445895514178610831511638217174674244852174412050830262866141594872544450140634120863812939866119586189167356723690452922822588045572658375511110654976358107207205431419637721670444814095853703776984191188551673688203762449976935653605180510885268039111098122578823247712550261934594749871249295844840483976825550321859294716460784676312802784991170027115982601719499763263813130884942790753806729479832546706903701479802637380294511629749881020091207640099568614203526931454874239508803293018112209784177079976481351672815540038282820655157106857533907714145706787734972639865556911563417679602174771843136065584845545797784004323742297961231984802208115200988613247790450309637600131352195021254613743583918140723092604816378266814886073648337511750640798631693345359684265977134318858428628651332632120525657577514634719755740403724207590112644018573461244834265341402695920065425755316983857153368376589478898597425862302746201409296133829554223567225807769989717273901682780083774410467049243655189639178388260825106786886054487447827780375630242906426715172574198632262468632773877572856897452933476611353034147118342497181073516598558265706009601689552339929338215319439638065959648782906169149701319399999384007471670951499380770978267136406956184791914534556476320508042340239050200226571525667818744134641782435892821251625130902158427348271593188936483887576612144072866676849135069895005514243275139322463475237821118242812396232732207021622370313684989720731426203248343476255885229619966023868575196327475099467403086686400640825243814311744066976880048654984861430561656226590325186591677418263236607249820356863380938468259104904956731117654823752680017343574495704827366438483919257087188048068452984009512518349213658039090267175139536725206872150350489791501441035568179823017974188931782099451083757919537835189442696490030185538949722071760920756894602210529412593869397279618170182103256417829224504383049461588621445751429553650188083134086167007161201326829059144556890692486796569519484407079031739839672477404087003244610280093530504745905976047304436532900452477502460514219582328046952278293242340561199735208459094477906874651988250787138373785003520654473699301118948524235809093289092075567448033472583877481385545439413641633371163257656737097936896008815233848540255938750866879576214006282307983920980140521508620007034674327160648246562962220781109175800671555292169950588951450791392037189566762376397957310168816219643231411677042143431203105051477360336971191334520645564907396703043318551498693114801449579048071836401004825958002828807035121358920826161202698025933108915244476047774736719888933287946811097462502286637675288296561206827062618267443551047808166817607411665140221753148034739157426272202223888703854673585750457168998239730352972622981801809103076344089177960430553677677062036611066740815461129015548318363179050111311476980329429029018743017951241615336876363385643041796140764904349195667874481816872391160641803187860613550648282258883744812862526287278084404626817667430676661737761880186050231663348307474890516410368524143105582737520323224860046921362174412641474601285998139157146279089245876710736688336605027390005129609643267239230146965244553959507755297212955552788380168303648633582186241715916538737394430821517526094687710354330761558851340297018459989409970868052224498034794465135191060704398491933262036495017133114755048110881479354040957285116904428616909698338643880369861545264976417928884631854367793067394689325988483217439466185480649111103034151967417822654065463489337069241444887637341608749333457087875614189508075036296083226654109416795709152716142185993587547831762670688672594984020239072556114233844637443248684154026079070413799391952201300059977898360663025404083021345923192413841386170986651782763038295312653314797291361315554405046778837437658237709208909938953350555369322178910401142968184172014668193184797674186776267810829113559920664012006282252984931760441339219483466243454120575236923741725948416220792453158140480398001769309627468237629960375870982078068055796440202678224171909067766129125862314081074053831603452996039104932437799497368638673001247131521832885610603840006079507711548763823593227744046637877704866622320326533827998394865304435028743731325755891157854866560941131879450126891673390571854352772835998947561936728360210918452229450437876372621029226144973843466706329189837015265186730454834492224234721599580865160557857624631716160888759790780673702077846236249231082425647812735611768485427893284368744616801788828481772027477024516271803380467677507327825710480421527147958434925423013019428646017153342942714661260064827453725235917997829109290620512185525801755641411963307766158240880669800140388108486090369073900287384563305077956054450574621653135860318998315875419528105291715157637381084976776492176736344766122197589795236959057851255974190239444692422256086364590763170940645460541582949602053078721859519194634031192182830382198545483863687350477214280068010137220419030527617747445875113388932831959562796587197600381568306035736201466993150924702155124004368341430992322814632442968862417496716048219954531540597013608246654922917177519996077033267464291418679563560565539751142445244221038948486071926195225400842696913191532380155605044289845197366584374437245018221959908425476262755888860456997740512044816655340460702681471787011086499033226202529862304393930616856672657364585938474968981137415011939866308190377073393169264346480320883947392376195900145493448320322634755373365212638544072729419820064717995672298165219788462846235120784547129190028060027754548432052952333442591289808037969291420802542895957362509660249353190547031696717845035407029693475308573426821600260862565449346864244828368999330011846167209503309990746003948988972879560816535331486252850433701089326644310386117688294756979764585977834280740392600173063960446173814599825570389202582593100781881945781079528207870028435361342503902330578478608704236714343565805426967746456312744555754646388586369343385693821365238666889343706699965411586606911524519060090411550621938654062482113895202648008394948766462419736215731292408422941517454817286278925671990810633184790561367221853963724024941551846205894725888682601957677301616852528626406539042321557914774879245011512967926943259497572961529344519846193733013129770352014198035928996814758078511289585739086943873986259454407812994704016873309656733216984552776179929880481158515695307268932708060919746237816778804191465480210252994094939152343501926716210419184964530422651659717587775155300789988773222268879089493183713898808151390968425642415715220428814365088373580524614263061255325963390753358638441327758801700102061403651099479565540685293388659096081418110939651967518615803826060050616564665274928150449138660724039659445146207177749472454978698633810075440647992526931734020833972107737365555154976548163769088158439730043528930339747588051382101188407294894287784913967224047523513818146591405890108710857074201295704198103079925190303796522988961050414743170746137019494329938343938087270179964991668525223376138573475429775602024772812597426671115229341247488191069495718576919925764138008670682530276006533965312985309937959883955998568182628484921444156469919489949791282290776180105946896987615616041291136937624860177900404457189065251642706691400167380557096946879024744355674181556172781166552289379267742899123984959456856568813449366053424061698064387981935605067597116864440536626710886788599863250363968297721136239938649961264773017398042929925389355107366412661931750068826746454925467807962590757885849242319840897337345090165536203849081091485197763007215203729378314001645484768108492938849070146465781305283886210854484418819498410139063461707613523752404470436355232113817155890622502393082562977393922686899984375858292607962837201271840276890292862802635861028654594596693861574886135431893267297097053098770678927481037318690411910826208120333522767218559332032980414876413512292630170938056503951975458117180781200291751213113761996320285422328825634644101900016811534346342309161722456236673816302919126407519012231411196088634076845745179975800140844040477226264989296146740338234892477861758811849867953141639826840312997745054571981803734705569332145308867949421365801182047349896496964016740458357430613128444703536703320047140625110496661058639411608412933174278847061722854355811863917635775738808378494912690642149847709715898055238656182906694904543544315418638653595468091034405628682280124613247429788631811821220887873029863790927348077477894825678469104120606816310468760315644100882229582984861408022787601067284501600823551462361536744110944067566888706660407356339402225554161850653276251597288838480903912377280765012094384590478097902196980907777618670293847698528895776421136213800500759370420245584902980074686890381486823084910143015485730197762337086032745844778709993329392928295653595740366016918589836334494280793796605551299201548780186873790224069456271200751545232344855721966864337170786573877668684553657906070421431615049042257229451701139259844154556326516024837669069500354416043095213080601223190030269549994014237115401835708665835283969483586759021911107457579534042374926668639975185717681406837010867362943767074892432715919982335575464629712655737523235455872812819584678322210755487053878774538756630707421126771086184586997167457633368335409609964589588851700022907590799386427920943323777847127523710332803267415215075163759214325745582813287247681273848355564426691388400014735520326569633687477376385283544942146002570563953680911438718369860143952286316045527893427265894066232652961728626428353432192777627729097788618238460886654143190588287440098176480821969556394470159502214046730576151345028158218323227977696951889577201489868266378035599472207478776868279213433323002931758312846089010101247518744984906375051911595409633011237188710015621669927304375353300580617611717511293093816503257143877796104315001640405250481376751523676037735321865686810049982299125147642864486525515422820240660079487158534491406784954009975474518672567698922569839467594593877759274336618605877608969486773657628227255351256149978159185198934580691874968188843118339011759287621556420163985671554672701910940247736066475848704430229373326345500512391046387406379584701673930635694230031357120440415806719201632961318722373384229489874279247862459722979065968430297650196762617119254679584994556776378012970317374187736402103152229143990533184815446216644665652573080421673028927817493463239753157503628090003532177542991737335968199986452489322991277493712012630804863858424690639032566940977347749452929081370686479101170171397503098002297206828555274942038721506658557850464969502479217980471849123572051266898185052117449619816700933794247162631104005722444771583653198418930702129621070589158684889262412929655440169148420111506100936876206540806418424287970048073416337919838680917964858004870600783246586454387361455337191235389060904212333992053688336245574989303715968248957856008564242697540554350017827469248745247365045555021682444451351794944304284784368926633341841754480257882464063405984421920464339959799144620449100277355320700482693397677654516922329805297590542826664704222915685235417847848079265230782135753069987923968368373675872948144124409376428981196761901167337578617127749077284658982136164503996609048342479173143201060296064829381274720338298341052019928395535532673574141592791253285001770900376175873734858750144100554182826925976152186038805111656543324235789406635788913174569210696606281301189722635686103770191211972122261314582081841092030646323032597461302160949466156202568467378554431685289343008511563585246647660200265441430201014768615722795359135098004432690657448324829134881386437901781012935320322989908125012007266299437296708042450967197603257740933616264133660177313936259503097138998210909273185918395823228689768311324442560615130934809061978616514155594192441449010281986893737832545959946606119811694405405054476230958760837843245318484059167506146733515895236196556452513756239104394429440104913815831039161697702259298597043375376851402501587594274712669540743479196770588439597748194406261335635870114186199371053684118538246150951817151258728979348999832738202598959109305482726184705783071579491950004522373302118418634687571754403141136295132409635482140876060071218802810295351645500043070811982106227924828212277275901009227559084486323410411441436856165710654386339937960783024589685975905373816838259677809435025004486423396131079381260365581025029959647665937705478494700908656477138307545158147100956051408163752005472670917815032270453114134859734402854103258571314042246540369220972063278184710742371128923475231184699755098762141149532140235890452258248112179766679311339759282399468020654614506303413011286075893431370987051889661280001555411826780779491628502178983035354851657496233831365532714568231827578766792229340527696873721238698204488475630009184499682239177272436293488196929730705962104404333358512311706304543837834283883528000268492078874468113490233015431767500595144966426856726237889570908835718881219171769757724803003515800514088284926103722085207631845376240487981603829280239352566154067489024481393186623682145977072084264573637374125220342119554253156191445960290432068074151519416291802417645281572671073083303809635929726380072800425344063427799342451474644614702772681524455549956743895119720228445999393357027681940978074837474319646934726061502176248104346431332073623047927053593070795635874575048880729302636813983013851769191280365423102041188153060116398474045734000705123707346910577168985259161462468487977289636261320681792504686270336037627006924708349093108618639255877612761699780039343704695555153755416599442756209059361947919272600529819302547122646516821803697175746340311707202650004667669664216627717629600653011918025378577831234269838130480853719860022711653342616525708837353136514282649359121786814834070012645481512218441844783314518742884290934400672393421013493189573323789892796994352342932358175517299493886272703207907656772280872373843070172015247490630415256788967008341421539167611886547674896277178727162995621064887207219460584928318371330179835864437690724354712743436654675763148997630604385612372180394522329558353604033522258286930324302647419984856271476160000924847722610446562217780319557956376391164292002866522268601703680844106846913274839490886172752366976170119149037079918132853598176369231669394611769612276093749775847150944629950419435519164569558981348473816725022866519691026032283626097036430716049295372520874109709269446228271001159089237487719583606015035263153503007786735141502078402915351618724401395697365835618182398690243848896307369208406944271052573051581069667445642554561239916772740355194004013492414213326947785997150146946130655305411921944182237242956604732205577779940664935042673753296309281609716218481100342443401297442958123657039246650431756381975582541956897794490548964882182098978253610189867736078853585993417324802319394550296568931690893051671192883234610704968201918591895176953791403898102951064445762607282510624826184116570342174972142617091408528314615059899217478744208907455717479631471542695967297004239438753989841202758758023181235127924040308307892829989758787562661081186956175676270069008315278450828017371449574524574549664403008884302855360470544208274458749492183570430502416236540222262133642064405098929948597476726851350073775281670477024190173932838937392135118323678680602642496297515978217006611614651096596982301466507032926613632808395227478517110896536772306044939021135546003858346920361219734732284717709273722988076758070851488582157399944144001674111153785324133296251386643694999190157560106915415693784692303182909180203422455047039313745443023403004004895092491315086958192063787818837953955330610190126084821450094528817048341880122672340193446861762570005912002775792652917172397025880357420513568872381473305893868567188461275993801126440933980723655109833272248607381963070603847449962625595895373535797729704996140560471984149632628399152945084541055724217285798731138841168304271183889196009356660707294535899781552519766396329319243673128679546851595993279677831318334356848276901356316085030610774134531023278947440730881593365095561287834707399657725319773489060776819632436438673869768067948709456407593216815496460003668367676732441924682689542694665084861912376595348071474490970158695288369972577867006478977456820542642583204575211555966238878653684763501521937211124946789669805672424637596841136792601682354354482593612558217496952970565699250340512423263238703255404295806365658755323801074173972996763338969347714359054123181192261039205258297798798182513974895066075917182894955553856341568167203591789587968320297830746378848961663449965848444305995443514776803513163790228004092145958064171039563445359455298861052999441011399208336012962698581731436749092995890706233591248466638263600424267876002378509415596154313123304051244142927484733834412282834463341132826209630200465779912644158048327468193225821939115930715882672036672020206472224520237873125572199233110171703937383580829921176463497606716306865493886906880214656732963471822123408380999060239295884526415546621575584422634428846496830798258936817678106774124870736024170419116262232279501091788688699185208998429875138328340527864705232543137990643213548140880643968825771568229854801107979341898357798502461195558205042168824515359512961759835855114674527035910244209088951422790959952395436990883040453262719646581641052494888327739100975459671355482586790794922804909477977507263879804620509591614424746555751015291553636662559876730617587779028938178220712287693096768065918869527361415638859227391953770265706676884183843223147427802021020109762366392655129709079950928499242691150012221587774026552089820133377470024807203631560425309640147008284848008167428289863780189699173674566062592322590013361485441306745103059575254812437270497660773732980256552183312248299603354517004499082759542890601674001580057697324512171808447626564173052639197205187064596365782927197407145157897762797674239206283103216935677571514564227351629235951890896047269393200798384741400689822448100282631749481266275904743971702747797216342808668408218827529229616015861689706498659464641130159828397127166170789058391627760863915145134487205483878231819905014049708792242490931378447729115591782061075662971244417436539805323003934649513462726308971260931210759708402343131663281500352671446357666200433477816693131491588771779322423704294509855515141215677423427475068431745172863673454175872686579881749083232567466835337534548032740690604484816622877188362339552977076945026002839405366913021853582753074848769004611809393089880434899966254805806835961155808559934068635819764468566375536326803302388088923197938130461170703252462296715556489082575773653134427080689912327442462716972870891732347554806135190103412908320714729005658021719104366118369046875292072764565935027437682477857896756889845193095126511265164207636561089027774910492939968713795382060529050719895300429622165270623495170489826498657691795011317247153052881388743641840028735080545003891079114595468722035198688994327745645989645441542694106507534005437185721607232242697611151072660167813125219500288648430813153803978857378287448035219950751777664284985546623378678607040391469433071484703480488479617093608199283669690464615376255826231606107343281935052358559880521162230544725509573195425960342286958695364017717948463725410407405585753879189807358038824962393913378499754494669271473631559109825004207480280931748205533755178747065400160834574667825504540795616852738139050363190626607216622807848810080600998382422808943482939215476751541158056589549695801111651639754782627053668418838777294723549843172938433213623863367434147716634087786220751042768285384837477336216701816038702990825717895908467139929636237424534858261876623096350348215504573758124162911797312318571237053126618691240086701215215130347126195988840800081969311952653866464550648913567937480947500254319571431631288549354564921520964484032991247331689985806257423945550741404646410242073661851665782205337579011110533744662109427590069700868742640433824243057974710038234708158194622974509782218833784446779939964573447681518478708929299547174241712023352286669132877359720560257665103320399051106907201391727823634401607113232170580941336939260231635591487480631239986564774781904838895916732065009925901190428137115950338601171580378496241611388287500473230816513329128741723005219364125228028284767725355654941287248150481417878215057680095475324300768055673660330257724599628782916895188622355370038089987139866248009329614833047781369749257076631364027796302259919539274575477576075459080850773873763845263465050041932775979961889659258097965199819769103048977119113697552882134817331692149991916058035619233298368566893833167632712341488374552243456978643640152715679125154825573779683028444079025834440187557028456549500558738037177463080786852856436268529913581469300034770687593628688037587750638120711609812817490725136140843162994933237511534464025793580895987420536223093321323745344385666937647995681210644930439056591780300087430538655376662768793089171056325885506712095608519739883075729685347925285996887950112906866755969187677863189808569776183269162049035775629591761485314180253315712514207721759603689952266406891474290121498030291315754397117924244415852558523200164266249990686554731236634892029647803167178569039281856857500439071278108928635969528041442067131051612215889780631979434794299922204214971516741816158426093396710112329981469348103332067874778319570916502078909036014972312409488790067457663255873617670673498947527794710914755597825308407703424708751020296392817527152001404196934721092524291218805303126716727033128096531350541478154194554941016459246365438883862611968775181724655265047122148461654470921021243659258216441563178829858055666359978156068408165104254593084495216636090262836429202490908823109195249165094927017975804226117933590281778611578049366269660666512245920433054090420278427606376612547601365193248082923813221643279313502420140435266371919848150914515567684072015995324707944846303902230559892599966897060595133219166826398019838772965157188328451304694704497236430005089949463123498827204679378562871869666898893352182654352489191772607820028110913728296951461975957993258216905425850125408080093362959493507794448757780394883900950064960316750189166412233572158974569184353009254355779286888017332296620309120879074705127225713957857048576459448621659495816530100627097905110286805675322281734826918677397821450536981119838719712752152119320237547654076250364110926811055858396645740511715023346478563767422440732303086525149271462554685896811511498659759552292774685340824196262201637494707273102068742724919254167978165423243387649501313364550103901194935489180792007401110566115287640910484188455928278576190114089381143685145676304113938206649763408584847564320993133302433941685341515743934733654469601392985846710081225372270504842714001286936178021810429641468507699854533789441028043150479717024620470532026067241730144377651262514771951898155725928444605049831415004031830163274197623344336576208583060778536280273516781242720406335717975817512010631378053400615179316069166377655774692311332400288730806013255747809723463643984736349633296121489934758504801334128551085559649283511309421756556481573740198466723271928447912993971909461915962773673059334407407128358902810518148463769983904790812793700383118442168225331679009463420088384638069239801245255475854913642433637052182409185264380992121059803268963631686650177313448261279450225948042107105792883510159205718045650385603938313142385028109402690653147817042742876908818308864839904328098127644368822789459128212833516850355227212330028252640629716295464042667641885590710081728372209190392992779473201561916283457810818654595531438068705078676930319094124443872567261471761244794419155322759527689802771546390675276344395374340503806314745774818632123629615878950185296128821189083975525623284493999395625397899460072380853962874374946504125147506533426121957621729616611248228271931562747571338052850842572833382675980691830456122210086451131344264548765305521018361586185512184341519889274128794262321533010950204792230863249167716404982379835772537939079644890643506722794765773313826197670720879604656151514146437743734298099599946656047597855661485559109147501127421631258102045601115693526050594437171687180166072205711876045678906150462233323718151561869748417217384748149565201878012648681221179883819317134846148107651880959943488455896135807812632526501551856230165141269689947451722678997531247127262883139580846160770210896356203439140585071994925974255757318031745236325805327319753546854161030084123430401102362857481230009901710407146253263472995270536178497984867922109831805685612561519469550539528435147414158131327952487772626579237880624282878582103590673846609771650108383062733754726665336548870305780465051620098315082904467937578379349975184202879811371418191340182564427721649942601086607922185219508885707472131190141003531461162879586947683943906503413766917531068371353851099265215440504022929471216326553990414441384193895995054472668878649525099261031076930566002921830592657810334940630343385855858525764015134182578393224512263013651532105903542400109914908575148763274189450439943701488938102871764974329007964451950379739390771707654454266513624314881483931058463739861946668431706572895685351410788004298388321734962384476422886825378655553783193833722526568170537931422814814962876924130802681626126521389052048086859307957558824875460453120321107840377279134538524869326791431234539742486271753908390331267736102692019425758588518288704495525877510307368586834218854564181068830972652439187555366218018087159534639576883253467436946667397338016361724589823646654621053172894946955340685490344803708048476801313661634631369598040353045225710804949096006601673470971547068631384223438905031762089157254069407108516366737880865783687108398365844605295278262874210774046483828884678674690138780223049019512726419337995165612676647179454601480259158055390425640703461844346640898964636556073971342167917481215878055082642932777259415059384010297253525971841468933031672712728635507558182120400338283472751825102840507832607272521485397599521917795323648728465386827213038670692999301149430082465985247437569371151715348795738361231353764111314459232994920643484432140560849952786640284019035090961134509650722776878775047232078037187171549784715814136789273693085767386033915731045023096221567807706454051790488191639545718636675258147681940927821404386307636877240495266582608000176909550623055490059307225145720323757620119790731551707280972341164608301296290005708958052788438557062145669599061367924918147086759698408690070061469161394937786114637877203386337214743302356426036931622022630319853688793548149021914335433843908846037412398539522839223011426143593500742699866761119077398565327380595436357763920273751283811424470826822750279517724562897234144420421717088645307402546793729382789200472955232411863352553295425756392298181682978651918426559521537714924921317525287403868290239925596174134134972827130124143219999416361866513624562543722433816600071327611505899680646409895909603798627139955520540056093202113002263118990859575228328958087134225990409883817427376191345877412978305122149321024828019926019254720830946376185036563027108279025310008875430068739078308746560937854919167009432876928769576375890851835674666637906581879327198162049078708875451191725481571546466046020113381844345416545039596478249851364651650855281855214384968067907988759326575499339935873445650575196222883466614303965900180202536742758576713325757566764889569370595478867442632678173539220828268723774083920297562431426519132267017145189853859656178020629000157466461638666264782065035985182365716621629942649008824632976488624078919657894736122303377924138088126668809144120485007305118351034177102554255229546039633520903045340857524999597174678787805159183941699646861074530318087183873821051514773408526277403570490875183957841769411306986800648985854453020963931075554890926870508613295025586885137005249351444876326222178896047551976293835571972565748252454619667342786227909492577776875786752016271930345085508619631430316020260621287040840535047397774430976720000853798840198317679286665252829620300043367226128987706480767500767899236892208570970346308413738288424495918013127157692706044489361112239953570400006078460435640816105065992247662502582390187505304501395344049142583753619762870395837719045823153481029165363852391786011522860887075156978183469710241458340507162757685008648617635606796967396144600524275455084021575901228296359046316547495037070661379656590466292192255177427477079193381299968046945965367357102738554417043932985615609844148562259258620979680790559676306576799194659426640923638536818974975733947060740573888065887161153611123540638551390366902704717269814930363430302435585368582854389181301281107803219444537172011477876450491149799127085394304925871087613561255859960130820175553750755497991904225729348589799478479710440540094966405588689981416432622937843803981279548811295255280476944465502600252649535825783130013906474472338932449065259282134105623535684766920175204028875678813872672553060318174010938513654754780261456956240836472803857957760219408747063640003874753138733694737310289087933669435246769405476211557695683074731207632591535301803783994254065033726564740191816795646280083946592406715187478261937057597762787506735104288436260004737953611902584929641127698544179795245688753909273285433947121387351872027436300623175295068339158048351997824893198556091167647302434253257026165633614409473502518342106401395884236698437012320230834778223871459263990691395106649785887815351194715329149107567445945625387345715711731848345190936277842457719853402616610167082406739396213090358154083853276315385808370253677064651256301952720770275906782069402640666949783146962209340785756343555324083169168831664105424326719607747717104727532518729764987482321996783888017039896473227658821304988797275658766752142690078086978959707501399726358965019563068843701727888540837561991913832010065275462417577151847872955955863715995335690942202827179305307266970436994366557490983796079407642051767533042664139284825414247937614091514724479133950024565616241080449001111116665209216037660739114889757269608528570850640155761495230915815942607294725174753653198460471601660579605831448876994672176874876206879645614134698568733731017600377503416956949047257148451152045753332634812792902321305552598469874481676572194937731244603162800969248314628270447578297198520883521142750513163474049438368157374935757380080007033029571318886942434066126722980368910549066700812875783085073513445032787043740414083200917315528643223402764773953644732476647299545390331962213174705743709682477903008804013730837242333341302884236872914214761461699276611509436481725096562520492947022183210001112737218168273756012673001780647642865956911967840456631510015549631873539209755458091213332097516408316396832737923176181762343842803266355793063969821265839827322310743025230831536600517555704779230705173853076625738988749811525712088478742593789303799223476059359378705613169113255920649853125472322413207823256683552348289747888383366758325666682241944225378161839486639144882092703955006131315416739035374849477463356418965083984602019635629681087195418483626838172500717632167301907908113709806519592150892250379093779013844673335583991927624971993108387362407893572632519160806989166490049991777105452103609530387188009814021371747732102722574290220817579892581623384203028896160164050633763138882261923477055466554421604589749228964000304216109103575889720904371074308240816246362153514326937149954757124195231149958387137230679429225812105110527894402475476598737342759113691138456142479467667852354109990061045901762807367586045701270696924612360134020127269163583499672829630640786355865548933183374869108729665304572694788511284400699946304509717933311313960555860452734440985709277433100807944648291198722988236365567190757047013162120508921884798023321004142987306303592179713246252632268664894969361157233988498818406014981830666197449701397161481648576468447720193300301945494342035755539411563042115446708623683069562145358571116912081819889181314490033526500724330919388756991683429548880868871700229469140838213252700245197362150102584758334876204055190262857816541686906960071893150811223956617085197992741054737177205942715052706253603671775861672222617486044459906047396022170389542059403267284732795583188743532872358935317514750865663983654646555513229123994079230272937430956252189025855113662987663120711726960166324631634035923173770758964602841920332774329298500205722229570738013123793026057771034936420810315607863866248545874587805954248480574232725658299182615853448484570746422560899938965176847199623678705474245733348676782116610001081577304701230101224134396906176944849930381991850870159202644183506338056472081626307298494392567277222233002651411536025870744479661227846269002835646552297036402434290553750068753639913535756887420953972776741729713726559674849968081377281577076041342560239299646894029365635156509688446462768997854169948372162875510407624017038731307124699382137907338817428537999342347922246777920013683524384534169088137838966501977885674127718149850307012442648602192351748630312823540768482246036214492833699272923026421375345426863808112601939165799227953680025175689329682073295074583924094738687978550934146907893581871647306699777328000810379265277545662484002025338359750358274442116522033899655256618869240198188274999025940936048270077589440600413348046297508686146846028527820776349544341550823244463158510939419725394746128068263210249024680528921648363552658412195189052329910611493622660165357899579719234257119819480291000259362381364581673834140337247575108640383131633946429843692133683039973935205165394277701982988989240261193506830471948791250529432090383249091798151880564340564621526312773428203647537879916823316928777388195158063285975900674772127990124926323902719677595566228003147141911918571029766525723517962912730630761350175695949267482683770792483449180778712112404839326849322496619594014631208461038882827876070337782879332574936821579953129232125421809515192072697082269469438426559338140194694571376971105465738553613059692384001047577187761768179204141804442583793796471236357543159871619712299837823306479578290739902724799631788407116117336747054249577060386409395289538344535334919303440937202688485785375334955202078320903534992183541152695805084404878918753527736162317668854823453093823480094336151119312949026151102804820687679914324158488589578350899085233670186181248553897675488050020040397961541947331404025083809669144303109371372202918524454067555228765367359717437064937408563762281377115039653103331923473975564031314631550535099110375795916637265510553368336201798113565009909755185220418719669184980893101760050914649246150958498569148300749979641691203771758062187560617812827376418750657071165516892669491469996088928358800624936219666440651791410194848155796704231376334572425345384309193167118104496004279428253511484723508054723781863063563496216365915714884529725937569613784306023415962158927968822622259502617663356342197002085521426384579556781793897637481967965790325163402882709901525579043602387177598376060704926585601404989850342858446278302268541967634991435416894426531201103702989031689969618852260600263461020342927988077438208279188306781375245897577873976319271880386909684525813843958620161825499292970376460825859654706995305755595056761108445406109049266219082143872104478708219550756754499915576747141782912674129294226593780364308458108536978407140803719211894424116712572671887300054652897913190402075820464453644073411239370864592345310104916166065450692545459452557300121078918919009817094031857884086434391139500142579540254024262934723200770354662271686534874488947804290207337526948375165700335578404454595355837191193674575757760138490968795437670333759693207487880409151091639369864817888086146268355261339609642713583466484582337867845165729819098479469396610014204186683083201788596685631213540890111355481362896426149779441439325992313990155900713312765968414839473166448614515179054804608638541628410186238450191398725571569047221186103044717157495483552070420638146419013777484600885824323619289291237517140669423076616174867151989208486036290406435754840368765965249258374377428265178728681775931100467967519432042873088758727826605868089261252861605345077344763572512399664762772308182483990325381071094898347416272152177798458978886950283631038114359920915593650936680180035332986750945985256678084434853603091223067524931350373011946865670466532911509316582985452351564815668681892377360610609977157938548994621128943291937547375808019409304731738208300983923776769294714296388630003064874807449217602397125651743959647392152025701783549948047486863084574103609508886222047965690844951422842961282739987528798458446786671018855922286785425352988226685349889207554660877363184254277785688740788350802125986071717011990167957660893402634738769237828937380916564224661432897062271926626315470150979478498759738295928166047040545431505386744767185137295573988232766356679336516544107613114573125347739982746494973054320427771374764054126304547553248688728413852671403557930136035512815125438515866292712867861900995664383200730358702510812822183620457044352517646583963779767575222067176564075486360975557162089763349339680428464277473010496340267854238350954840794403499039415004335039961895299315346017468376034584243578171021863749769770884097545924388410475465320021909478111777670285988197264312296286884479611303388512266601583499007400454007233403694594733751864106028441118207512689611608381318803403836114322628327585338740073561435065936827747720853657907211394143926643660349698097631382956542312894868885194967411968833176685752891938293588109112938719101053895137699912800997341223748125875152479670331457535580542949093444583992836063676055304674455725315317306648871209915053249685903635839807508449919488003084951715599374708566858024174302340544539755695343940128436798597492504303508725277627775043904755439072912155162032628789747500037317578112885637617834481913922709183868597261043295638749747045783807775016211501372215815203618222393547537087230387355389217500923792170111662129739806131533398993480296370653275990683524843481026352308286052821836015377136340132558768550292044427225820988803629844525549313295046229906510180430344888836650326775564597561713223351502937060818659428885548282852693668978083281610449668903925339857410924501647832516783137068165406160137390604216642374797470638194786109170364485228766398595726457101350727384223534028302131495020050592544378910793938870979666850404465957720689955372045663684727022073286024486949819874307190738542108664625333914636769698726150622157437205384724335867300642888774550235033576841210853316362680696099594670054752410712953771190580416970593639695183446452993899418956680964169326227815891703781756053042485922468819013116992382991664145759665335493473570843292366992161117627772632638332878538922259144863283987370712626492380551323489790634408949416877361389148707721700155964718074131682160501543630055684616520659917851470102767454852791115173227581929647870013320282143637037976630102521070341484958695749933352798405600155653835797873891622824438464169720406612290477858198264489452310594008168626895373177583851109357786359516132813855746402366500201550449859708198935262423735737529119703700772951661047451013144816171478864524715757677607450326538690832210673021726365177447086251372845134146537116590852130968766496918190855978944913243166623802773508408258768003135480976745096504508229437859060013102782928697449576866453277227979085168362342974062731479977827124461657112213970562497403615820063427337820178224738945834968752957546924017857238712355414417996751529232467817263405567142565613317764221101437732449267392076667473994386452295052790513607755210529121070595609241135838637727884934831138600922504803056505265061606410552134575533126808988970491402829151192294472231699563825086930805131469063624046322988085866209233803599791385401780776708271462592953283802170734055272582102107630175755075600996516957727017196242561702018523677016233626313450551631654628677801271434542601162913466154369506745518953787994976082642551470120024946652733655707588088818697707337397233830506161959033067446082610996977357912542949206675080249352614964111768347464102019786215425760563546170083033568630320824914644952273748530000201384579280763467922114150954390840216034873378186668475757927761451546928259521219281965731138381999796331404761610580721893085293229051900095530258857698619167109144295180850032132823761847008923734690952313973468042093092425051004293951572391569796586656702066094508117286499826713839598190312077124389652010343407692140282349387340579860122856090007215699109949435371163310570762162816819413343971271765674686800447436634690128677547026207754332072409727742955707598998352755403512051525302143087874454663004940071903221152614377992632325106322648589355378966927577729513986335564910623983537922992193311703992080540090762253171492806059947836730962433349065235880792247511129830594740198918483463037782331680875012116308760946394776887291613343578993582369873075644332749472484246031856419575900880566070759096120402112011017794218870618429561568678714977545607089093650798075857205236763901024167964004973472763551634371669007887973726743812730048847628852158904320478141914417974750526991564079898892487850211940437517458016896057402278239096326015974102856325987313916037048831498926468999810315482633153026315373417312599270036348517823165160847160568501876431173450383936934813282730310094163017721260851208109618463135889141766886188085389655192578766979601456334738437243102426382585211436814906233119689559509171610655412108511248108130829673318264938682568544511078760908076454072237574088364103221387389577290315588388884938279590380552594171866503118038350142005953960312117796097241358502552807225861042035775641171341407037134137275842437200001237307391320937398677033535338114309705777550409390121735010655175714000862223349414850938278151185600900874423986159420261664724924552088610228629413316718513354822874175668830460099068625410048108019870921547093430004111438478668193096540446273073746454506931558598879817661526786653170056814419156338857016954583061525980151627829818040601877695187512724109787848502497060629804388267508397279368782548460256238011124247014322262772248997128935192786037559915010303111417939902936338069415706049723677810172890019736468495285867562205640860815182559580619539059753759159478134895846582917160781423561667861608761605755473761543297301218072030576588248409319740484838366151822039791514174890193228223342665518736810776991422782593452139382387646126996129657629610426832301548956567541540023983355135416838318500128241051355018989109472336179681611006169000628111360779651123855187181625204050075082453814902302386673095967500594235869014015852134497213049474314234586246929563849170711075194616001706830080850992397579781347915236747064499806337163365329109818972966354079637505359989211150569408212062698894358441094751382118792868452062078823181740721075757779146951443944041262981542245777508777318450343759180985836915430660042316912957827229376359709073233708090780957270428450357197362634779334718754236676956360627635345414630800036704231197031242363175919321374650618527437732050556841133081420652693684221983228365468120517596006987085443051956659967241857148969555058721520426378410578086739483900303567625574545380677471369248392275115689402566326234071782415448932621319415059296951103270884681478598079192269033414520165685761576670755520054383166379490689412346040276845189125379736241425747975688363380830740348110644356456149566859174952297624655937386023939838390850598312912950967588406058639011978041890715849658496772794529755217646727883234364845554373581354283102995617527685193496686993344287214987230781912575315770041755391356040770228606815708532686951368598736346302908464534289286883550402930646276067142894799277194331499207882074755299045682953462408999958845290588269068632862372499374380986876604830428009251021504435109004696503501668337350586495330763767366746252098467366762225966217709408346082684909598255774362976337422916630084764395921029889582738481195131875587985430637344707264721412280904917041957917845656584531633904500298917767417022748808473155264562658171184219665464709481032240966439334404438852753258015632672166567751616598146341934359181131770924994202958220994645203966179657532742485160241943980084447006361542960446543913327988982645407499454216163971606987221564249638787819814566082443197021663937266644798604055267817867961331200150523150230360044135696682796944857961392106302047999377181718070285362771864943013527653505830343223904662940608477083034828799976165306055380238287166691183252756880369488768034032516228766158252283274063304761318203122484723727536951731414145040731727015423134504983234822602740360296430830326306431727881856698418756744288476893599161353782998398360990518994150613153567640442118586699010320610881621357520656082353697095766103511230438627472146403712779472687876485793209716589942718935764386130323966915740523894587949303177785935811189254543931655014646563717937268733828583263498906122342898006279915016991234638294229995286302399378973373739961304886420535275783077849789316659096734053263128486996749370853633570585293374063443907850312109657642915469139041013146108367241821273659484125735080884028278258605288904166953334445575493141564739882003565121835868718542211089066989836041658055737766063520871921612554769246815563391252122600383401785659243051523966702556097188663961922120459666470909004752602068041930008401250678890246982296177174129228439043615576918944955610778599003828773933586077365841341121983580286799330483917128855899024999000117811244122656360876967677369041827704867171587450347804628106274425615592310802172923881871821760224130125814193300888815108556015399231524628611608976943156150429978925947843645303776157979797948296680989384525768935435266360445471525445906035011972576408619250236647404290924345334963742294618644850865404851640086950763780534159242215156677554945912912256208434061044004411764947993336367232709192847530540983458589532002545847936430667612402868470052908771067703826861559793247356997109206304867708458525231545292415109091484579896469896107735124087749644209213002183684120322177137602334825773797457277719002199765688440017844932907399980022006075450848143115153330716739373865639953360489041495768219936013862158736628914443207220924823210670389900281475789345478048674100229417319487276426903718820717771967273204970031353958593748516497913777849225444137537682455930837095592575525342160345839294840913268929900562841691329011638338998951935074655453040263957656368168046034776796772966838325053539750033645842607510445223050403480191329435563031588105289655733016865884892614341910652282945366725400693512545776300389033582222320060937576220767534710907304671068319707552321794523503112782299808718143208482572723645656680542359262585075427642182780786486820702546252707075048288974556531758837968277818464514557160347153525477985619657395290569075288878933168431137069995086598428099488107104664411681612180089684537341561610007914731369153255085444666425776163756846511431039460853504135711259815513868706874586114554757669225264133599973999624223983771558562427905418349669749702833593346235696430957445349100449547888362065955335544920300756247843986799961008565057396321611006990538422954616771311566283699571665977300477056177370602882133803046015980813330801679062711429404095319123926263322678551355824140034913043173009736672922267976770695574641796728041748539408458133971614932454783789638247632242376502690238831075663129238528003635393735257448664832457076592089365456106745877830215714408594752211045171904270016510823084315784034782873043614205250710125110156266043137845432749183594584064400348011252365307863412936824705242991857852676515967959721582977430074791547097732774453368868263073278560120939566052037495727350193930909519673847531857682926422935991278852041398564528896695499347213692786173957947572568081590781662525148255549705241539211932033056150912287655750467476389559634101265308366992987750097298762596368436842616895240732070658687285572731090740278311383269002734135948635560233624450069247885823043269597940637613458813484664255056296287935769865508321697295733705612274354979543232840883007709009107241270469215571805474303703004587379187022603474121377716317398441153347949139853921726462191954357570853549218009020098273137315609352363394986262427513715548284596603198362981951920417878043574304676428421041298950236017479942807935268309275689767252684754379822401117973849151231242101196112000940820092530077103818422280130264124338649182053610236171627997358830870821099980705262660004383687367248803451728701960445563924977491826079067331967149572246438661284835740388027176600373569382690702708158370298939444377994241809887196315598134876582941330124158706011480908043380426105953888846149526762563712468567113118265044742143830162849946310255083133120528557476588015687650329199281442179622234502008226895328314580207496546281806562135310231894116453889750512933002445199301479169051065165976968173993745782448024242155009538485906094826789251842164578393502889034392726674810412604790601532275265251915428756171446437377694995020394999362439615848517711931904000075693258696119642155215222154722617056458201323809993376153430655954395565617251200209408133089754757875487686535745975207484713597216873511571116578690051646793939908982168403362366117591526198619644035333548836683047798909101067213024706313734134275812264789194290847027239495214880328536834922687696169422499630493593946155442385518989314645485946456227928387712158725304828691634206196574854648313220607099322161516023743155098770245284824027490194555748893824755106511676026462629395916486260619612209254332761791961766467113425918046711142093122686021354214637548522046413651941064550158516755477722451375763719110162923967332833919788317043576491212043816651786874941881864659140279368929094471919807201375597795361034061671735002866342821731649413377845829722144437906239678359309849599105676609390611469398242671919362270497258144879536212648169751339431275847175725458454259395606339431896358541607823911329700694334863597376078563495232658607972288934487399221845715362870984164405248139519572225203766179601611717739371840878833015763378206620865995189178130703686866512495215451771139327570317077907235339630636453646972141935739500927637435311174471131361057531488132853649289907018775021603013182685376891537335581023656054421913542872266558964352097381061138159264042908758805364465948952018862491908054043853371844807206976111109742539125881657874171578786580596792784969733715811668191565524211051322819139521671742939662689670320895785964203705772674959684225860971505013417750992600533597224129597678520387014780970804615680462170529966457116022717934791342781532622125475251007974840709825007290410405311880663780830925748076293788465057231603271652734411709737908826792780405161961792661563004508922765438341662720113389991456661614680601748961781590846915723983148464781513223753050019327845322872022092588268571264122726528717316141383904213100492912149355669402143573134351563005087897134851711032468916588988488066035130064103336466098912286323252158567173842463547986236979054204470747750606721224145580771394788768532155434456500698835624350840083560642702133101382510942130928773853945944588384178945937858526251144412299313369516211522832445928425503054134644373774879277592724426085629178649947624570649665594238943953022188154638375659202349140544407595091810610631345032498368417801480515510137349998424542385762823265985306827541518098536245737280531356165361881505261528173129594507853075670524113791565564725278279541251953589720291934911883412678423736045785645486194467835776273712225444376002527259880158236341972653880430248049561208694884551973692103339190455663606741421620889050188173662164193411395392516943752986278034673444452670547339539731053040362605548598403708575984309376837944134475642481979171361352336838207318206348248848961717041996460340822882385878473363263824907833811003589314664828089364717574888691070240700714394844031055357320512922428812829074546569638338079260837002337368174593754410424820868380289920200938821269086857828754179728274352613637597618609458374161946879885739150788914851987582978316962104648984154108399221239405616282063268355858701616653171019191871658831125634832182589596909911466414313681165219773772926521961997514186400552661072120859274860435296050544270306849747700616973249559348077890117746224666012581894464833404545493140821861760209624858186535779048755758152077598259756246139929429290388386475943079773497399361263257908523139601024301866719811874363992316009855588878592122508805133954571873020017392838410105631837197652291300771862873703138528980706193702486293832168795704128895012786675917189524548501576802295561890284229864538709542240179142558298622696322323513118019153926240224185267586713373019352054314010559890955685078822850379151689101496943533898225617921793009577932713141755085367507745047733603057368684679414979996553973773290296769226795571991483475325191784566235633705970121698752261647317842316382353145592508394263231632175180938928119612342925070940162591900628213538288150399690572374806595680586511770826405978888015477181026561862459329244400867633290735028886019660733554428442449002021602380730000920579842268680246678175416348490997576607185342464393246668537549090166406600068451037981484033466516190320870419750716527144520058607715731501608368303725457821102894128559842397948205620244978258172679402331648471651740240412984520284466555816867849973197979078370153393576316569723585212301998653351146727602724707322155226314511514876930701250939126603544389793098611423603638133328430300758268253126232140506089690475377120221771688947696200549283565296303691230466248245134814116075499562052716844929926328539503577712372714571030914295763593448106810272825172204148114037049879284390287947928006919776434712847772779832199961354032539349639488899174780299944086967416934936004745662617340368564126609905939257480126816969428857009191774333803089356487718002236943393592505673380597819106929164062197973656559659798846794406719739945584477655644863587744389641975296351690139146578465601142561224692748460444626089406017206730365583168086565577809250465626264380885080732898019706876039526784037259339344146922908634235490615378091359311217527644965853898537330436371448624724367016071274830018883149118501164968313263446157220966151477739134595859035275889826069129387791658442902330008184443989724464541172426586978653572093396811499372121690957163704939863316524486847948648030569229422657454048322161171635406848812614810218756472927233840438238733899664623498191976997961275717088331482476580361520639530648492188067783978748891300844398036669633578894483070392379523911714575115815247736187243841457171890137406506273535247621478122288579399703096483191977751069669028820002071956856194129810269325912384134343123476854101511215254637769142674419424908855726952575803244505480702455213627708308222731976845251264760826648762370249832898000912390513160333537974617373815368978082416331777180958445423322861959737624206321553656606446698662967730023790548739740949913744499743067038482644342684879483705614518125945047900190741218874555704002980800401759360037480994118714811834681176321852994139557528886269956031189277425129186547769623459674308815746396196022562596381055292455671842665460307933417254630516686557195631719886670423808013228632029100708371414170696913815767183312725754981091757727412048863132072297560041437720902403094708499747080565027345558182445744596735127642200800550084142495487511890308729082245026705468089956882940308631497878498910418487951041052506452996958324794084168948643217137723575405583326109390969317895160440252666632688088751581546781951373602533625546279563679913376128148452153133135847023126371945950311981789717851172632514872072503355337705623169598477516056571888858224793614817988976578194184712217626068084360619437620808051546606878302669862571719111099476248860004421522540014639549611789464018764390872989358881883163748171735171892666033437953705973320045745297674450811083159318548074294099936354657148118125480319009511014728468162105402254638503923305564159234874871341411477294859029404252972168530501078216042692828097280083001381183378010878748644075531258808689457535028612778205397348457963704766229797538038093315718126778343531527991542785846287313329420699232552956197660035811414959287615023537929902866806193884160469212265125522475030045849875276656556264597113591823963560991014953652622248251164073196078906228316254667756127672326103753906621083132340948797786927851297447454614245476822329504848526959248166165364324018543670045171845758730727348524772205649909891549783668803036706692748216094291220886932990818920923746694616829562135285876801743711694801623638546269053710749120265464125211961586929668521945108157298595606536206931139660699497917576868562169860293827061752018126418271685019573810030128780875793204829153777388640648268900698889717084104789531207083302420980154387704152301280978577774667096369425193890586599917940167388772797947628628533897063420478329378405578810699858977171252631292432639885205573662840791982751177947733383427643137331753186381717672161513827789790463868675465301493983504352128972147056791671928076796026680350767592668638536961079968878547886276944128856954624844748792777947127708445485083822959888409748148084677525404113398742918355426405934041022051212129728524803053025344379636807794968598828189500513826650549792121931116312707220520975105210313420306175708922918484208067051914819205049617577828496173098499808595032373889224471368096986137517215704907035541926534861194279784756854539754818937353965311867460884993466873816306574592709818908646010698005729767399412076244077408323694286353640261492044800337675415015028134608575790994643001454926168559352227769045959755968232675150856989309320442214176581172136463144698826614596634397282449758492848297877550996802029112184428513870485815988913291802079657799033181537713484439028658497614330136942870099431872137490188552000437113571219623110406488235652857903228042798358331189049262398303488256719159935755782474686893396932868520546497373360700042924704937803970193231231145826545409169751143696439454304808134675530206258891965655278433411870396681987087266301410522879877425552173677620324276829060357373225442030748238754613838341337532114895934683724402247535001091008724674163126261189798925502756503245762851054497290225332686263775373885396036191561702636178280551028566357759889484806553166647126376939566059901153172730158359655379756727401315073971880230756819534688765051540890924537086235023051949648736963965421068010132821497323899887279967246870644469009373441826482312109771105837382842089641144635343510898722485103026562919219599099649200663313457377148314132404034898730314709892673895419747556465642016960422438421197219412768897064046703738505579697557939348518330740360376507821660601415764369968716753343459730189881088883176139775401146476777957561431785827469596242396708260062638115196516932560769730048576533259733785849594122734559768013194647568311193593891774315665995370040968976626683409553162965874113242781633576187556513269133482394694639732099902159773252769930549359014065110998694994304480967251377680762115171312485913349942491493676227453157675644133552408324940914928829554175219486552682183997484185403138783165011112588710764540354636480193113244763135012125522602443474704124166609003378887120793264416439532138668433929423332236274040071949434855539419232438014928336761992151256936913518417867107366176280803108603833192099559186766541077870708553826256954062564572954058551457355514690420089678655969964895572853161030995668380954492295299348844684421876753597626813009552745349000863049066649569290108201350010921380087273416210335900174275176460960079150782702081820545755371815363562078265852991979343185649442152061422608367843446551868119081717603202354600194742108244743855242887532294863581505067074785190840861311103171223090393324931064730587394922372264456579478339487944785668741443317387877645953926220704321712165470782898993504402447998278174494961320090763675712212848873831181516275549979241097505360068226069656013507151407953566888358431949529380788449824962464273988037427581654070595051335434121173242012872695702505401830832153680749350642070043189288456759894204320530068521952775741181644113859639532746294616442639543102943203544481111904684644448718653068292657654294426193550225613612416795756674222249084495587078367104227505076306760099111376424790319257698462400361012542560110376301622962463581908895720802230364390228534366053904452820581784560584189688480938002334824950603884126333538943947652826845066735112514016131535611042958130811237598014604344372487314670286396527653635098392480892447125752058079850847333214784280222871834591666512594045934317497301510393809331323222634937019771245097105500628644929639337244581878312797431775487812869489277317955726865719901820485186726546830199249144121552422043501567694981991891862197860017571286802422957222326136951024627116162165790312924172797449171792819295036706563542291268038563827975027389128157577277100177471180868799019236622953536668753298309225959526831516713243917250188697861853677187784349201256005010990657142159125888481560820886991264423476579671619134701232471183256160215812652331298046609435057810125925502088358333984662614254413278603915683579273830826837808701563218144687090474397360726337886840998420913808939405616993193107110846846262282123079713368445932355561224453378072715153154538782681265085295713402299527528645770380471312139959235642145897811347091294932388870436595946596447544158711999586774614224560289492990049540019259307299545530271723922967721963173562903137129906909731127477294064221486702136465147814060942246271155384164371381028063490250426840788573523279635730058373329708021250965127553659764478719502404942837581025415662834093579088266521710390521666648885179321085645964893959756981049345277653744553187698999892853188456255522517001632699700936188893871826331475379436573333707901488734787428149947652406533486541478337575050355618255189029221647232444768453439386228051540606619258350002676639541428648188902481987744652196182250996489713610951885763363242581688018537529414512939662273862715753565710882671679922132598506424401069672138602608439065894564592695376826700994387166707632437589839495187538660146167743658667783399259861166425815030050832542620354135918281259499500274509604866952201738531004529398444988481447029899970011326296913628445982867427403316489393484048451084678547225991117058121999976673056603760240473255772336568841865346470740482641555506399064700119245525332407038163326106484793172128235964047080995546842869654827516929675496581926296004788304709017512636249514394453287221930489652535725448649329016483141006556395487666679368876147992880366359725648895662842718061994434383267635133967857318261908633818617118017048192037735576938098828820981989419716053404998303841360335381632448252849987698601023723324630860208219544591335174561344940913881461963212591554712802127593160595113869656709266189710153157460523423259574070748267913113664931966670424706574334432813912147038563888953176094995458066731808931567025031891815513589780407094376293372193578317399409480350597542782590409275209758976601683603208212748071722272513550134553110630423627273929139818953749274687865866542682802176701201096666079016283660015447060574104708724155086932153055182300386599528169509712742713918975768980648453755182549096610062144322983187064193431493890997089571194197462590852999331719381730229023282930175482954984156900747631722641639973805806222711933860296601564838095071258050771176129343411706823141644458146020572897895558800476826865565702000381053245325792572141918754920940298583170735100965162509506876193767898096754681181912282302286734478155989859711562276793683031090771921475314183028614359993976533958421446657016906396758563716075897179860046905670562935733319366853064296357841709196223237120062295274564624742156797672724366505342959256798261529765845838366320966317624969126131521219078593187980919882761234950660502284471279897077715424548699920857171059875880353854941810740322860404145741893428766096399799612945869841369700927902781388543232984845211110505660395535863612003673054450473043844499958742954010509348568734735684429715499590831360037611011192075084095536885446876852772912866359811728695422345621898707388745933132586569543817152463373217110693771258510938276805395450030494481362490055935876336638380740030910066612948671745529148918686953509772468335134897554987151020106847129526731367562754722415472908685178114840833997997227388224947090669492301881970008153434753058254000800282103630115648814988723438148868463817082478100876871249258029307814228878181938839673525953144702367526276183565012378833446748540836760828944061694721658584405223039743352464991504132823692813781456357845130870061274249102410934446790827465256078112712964098292002748825808970489055687512181734377576617082181054568655650690838854661545627607678388692544562262309360396772979935276643314397609490227870830422499608720048745447605587447007686636523431398516625760500018460804474791578591018460816993609203885793416189780295408779865085358093283532515338664039458157654700480922608782859148221346417954305280412104365929619787723570311693879012884591875423492795133571879595819494289661473795710375142931333911337565015650848951378599925072884219060790748560281220818640655747050251468802490902344795273945810942176549522218431256568788260590044158299327237485431989432648115320801847447079104877886730147428915379602609971546110890541015380443825465574246994471152662737433023235478895530677566678643162532865349068353182383979798951984219828034331747388426519379177905289644495127266505258383320187492649925455878750295396110921549565968606443126255122853534548692423839703397640848362705087802268245885657057865382506489594867710326663754708437250828764222753885302260197035199544747987689664572738876866883172674914011086916278172583885621336711891617219660999341690398653788657803911124575320293746704842841849132042724896624035875078775707018083861594107868331883775721017006539822817433670021092761327825893152179411200454906550994858245119631581111124416999530113295949530227738162358773618482133334035048751249033623832143482114992754941522314087810377536506451597498752565481185296263738781112808285803397950193126335223271020368374038149519621177196767192350160537588918210315703436589118607231235909137152044907957333711546307598598335137237705273146878003581076703170448450793370229393280611327479099354247786134334701363378306404663753218514998599334496594010198527483716604077269670997676730425820017047612817937915006980864035254131549483644462639155522932879463327876305247002307961186839641297237967732780742353703959146650734077639279921975840165860578734719598898353470332202543803492691525101221375477853919167404577099240970241378993997685910387464737370274159923469462676486366652210501782657324958071705384693262369441216714228066048066859546321902368286929814520449448639684412005757678654548131907566479605466213818585779352587033063419002756522690063069527009460007647236086270694563290832334192179041204866771897596068835643934522204705129741394602921012447626848864944177794589033023993501917908008745625519711509025925898904257648122480250942879914294930489813221699968129803561166448829862357444208915285055703014631489618228172834131008676979974850572360554109911110392297871291450559466255592096308479085881997867355409270417012850769388046909028234635719830848951976017476762024591541450322730389708820392403975140539957175706888017655311472586950393142248641237922484184879457041576067471825850147748713670749801981171375272154245712807987132583155825701289495870721959412004243371345035969277877120941116696764109667007792576105797257272069026531170118026794069875651583083403903119930674699741740361326835686720442780590598246882958409201806259789690241718915430666062650685290877016643400610566397974404079879283445224268355012310506426999004161634340180614476664021318535278161497069710830712279359331609706216505460441552951287158148466759760675529259314912889421809888613355345345538443098389876135990677792738751349535155808433038435315512711471529332844005413056303252983548902434443154364613386661980296024119412731363524114950440449813587570331789694056691077083516749898529347091100697344567463126925403746302117306424810427141234955816328922347547002497741051302524705264776235345896497335800863222613992155425064352487725277196669795826138982549077411845302376336697003914160137711478057783526002777002978048615498190591895657932675595513767593303970426241422694460168557938966876958152393555793897914933517864102250410128044179361997245086315065795845532929574060733133702443462159603712390809217223674104085024019244575072975191043122825563089746466524950966173653418338423064987850044842208035386318786925897457593740730627234424835424187399336012107327666828405796997809419378159394953568353392373049216061953317245785747893613428497626475350342261845264378280240547383779108051812151753004708074941047573606786484381933820179470526516619379856392318512619448185440193508735825578564392052702380816301021801134806493293418255104026693965406223376637822483437668173747212016188696607151447351351206923186327437675009761064691687083098207094551252062589519904717032567833052188691679456486492866381600259405535494973949340151572000232590198173949692616982004490615365046369074531974459683694441286540964041371197573240280941900504317763800786742659653313722000009473750826730714885837611682437410861185390793071712203837208813483666624164206157252285151963975663651491627183014594753841285615526090686659544886895184729783072522189084828205498628287152799892914394801966152414904893948343851212947701686305412289126643921954470412330981494164011532315729056745957949927336290588617424812456807131427979197160498022361372603423513821017021115197083932977608116249391354201404822678198682769598794349255013129500218677080931818168192072473940246619657774916046798285786894602233403121742326062958366431876919190443058516204390643273184779948290695817258093405347513783012487980439014694623667224191201292824006485554975266501387514722971908661170042632979488019877817150162227065024744701544254773987041090173073295951568461978801932914517712257675320461513241519263369673265583959094301583712731012194858703207171695211489567257156099441637441079643022754129857668009308896419594664726528305049868542774521874030236313403807633310944440527286203455006306410080925934269547646935823437316278231716676033046362232711237543236518690906178732182918061023088004745457068290555178914718742867863182129709446439706476123779474832825406897612612661663939391249514190822836962060792837010023352810204376488315806010414194019565409100089701313848960366464198288742892432744437658542454692726004172787669351655981708504659059874542180439066104577945844123009334092032827492682550844424246797040338990676795839223673740846180103112201566136951845214158859721137005696375006228709159706161525545961560321655059896356374115857081810562841899629394439349202630620132961583201476522231493501177442934648207440095732483829770799096522097835749279546486822656069715723868154475967968151005727894503210213886800212166084236837421840495096991343488790413333305267459928881888563463531399978882860663179338309227052153903603873251425245740735991719134813660687302072173284402723065378991887629399345023861792877184676454647583044777024909912328881496769632777183783730963326471351218369725395601771203166372522330158034424910608737899618790143758275304674650871445495038947038582396227514274396935509393623776233321771315867239085934400850203402344939008187529114806747119985565246437043342078286136796650542025066379792131228410466925347618232144594900326667990192603719453228776148424028552783383853937591798976917494722618003381600362427531711030473429548631491747065531821714587127589245802235386133257175767321146603178151179332743276631966543813230670025699443800544741416673425342244981436498892888165524806595094165906653711574108528788680642822024866232630974622625762291115244387074792382506609759733892142398903084565113678099773607199763049726690502896127481860423487634948580562059895230130719144887173172101360631622830032022542091834286672328882490847045360398835873122006867689630250646905649822059278514792864990307144872511951364997075393198229115946105187581010843552475554308312069866580018630613227014905870530377241596915045118274683900485120760772210630573879798749334507971996412683686225684129826257397855606137799311352621510207853195969469515166284746079945097125586765394082469790943186441058801774114399174119022128998205682539161584375328181509693069095874716354280166525561596844429975139024597526412662084538252173698903728181079592827753877579876960627102239544357234335295446034840562246589941513170276875555780637021284833381077953267065281118949525074726654740360151418507460939360453369836193979274908097039438527585772917452734559719156930177458701215593544643001935526027606849221634688257430384440592064127007013898760384022538053168361910262052743536121098602459851315192427773671654557922215085905968716905228495268142903538656655811420299671110185400630348223708608738089287097665761411545414631946397725471620670759789919936742410604427278071458369919133374625558643312166671307660728777738539825319343200874331693432816831070283625225742808882614912722833118285571196165770205250481220547765896730165498947145425030207240429947031295066459721716614633377823190574088723838357066565257146971282363905690107002408175966232849714755712273121284415094595073749459175936814914779516991223011917909283574589822503405248616978116103044693793980030668842595017185554897935256090145177133480842847544691580663581534821481611152928127123248653099095679666319735584882515702333816203357949807749265047625419847348173748090643480924021332805483067190247040008018869929018926904936414173108699530906710876533763793193485691327208920064438785334548358530212211277901395499069177819543651075284050879721911388930251496345434749471479602472654410330057637933152242856522665771734888614620418932761883760351374966056620346601629911479548809940377766778059011354796087799101525017517735783186446418663934113116468349530337325801749619613058026635961872885228658698622415363610049801315614139935142019114338902213874317877819531026560884687356433310426187359505834236834772070259105940050948429730195135869497291264840873205119014684794886049733226249342252791229963665258472718639606340474382496520714802071343730533702506687740473301264377650775217929384526622954972992100564751495102802585474721196364409321995918966233098453750918797480474389667109413468318179567256959768357204971541644271709151044514465586847525902106973943440369626926308401640662509528090423547963324914677314762188102787827631035794574597641043002979746029855984093107916324468041356551926450805625635899177933647174965126604156461121090101930756952620475855389140177716005418774320530727042817585951248391055646513894846968439709044855456177764244943730557033774824378700370506784653725436405000916134740613948317622277631311043440196542786713484067277426938572999744396406657232643630163788852924471638399287879468061126406534179884628963557631250339321451429892626307942398944872478081996828735992618309563585189089002818252682418541904747028501706636316098014810348780676624088282155256605492173206127698530291392844641664694539175503988046682500585619767667124430534028302896900420629952419956811398650219599512952851019596818155797539729805976051938186777828074296141308998347522761791962510573363093630791701725882989659260498465932020130465677104077037895504018902990781263273102558638581328128327807002207503975552529767801698612766965462127859913850720923141725201514083068552798523060903116472253106063326811308981645225321724692569352490417943355508841084408173098244485829530224379665428342057921659970005015512534207525211666632515941933759490239100323697452414802834907511837123338686692170757952683993470553990882923704668389270887580763618717724273971354581654291780517119754503602445749318529203761451676906686705901616602462534872529150785087956544489343862852222799830741810265314150697427059629122626638951461130635330030627264225857741029270603053740692622222211731236876194491777696415360354964884553708212008257757062367994405344101064527382814686863003201582079696115478212197573032073480002939368480479486511384373369441802878781869361493645074162605709168969348502742568675930025434868708757466640359790612426159763546579303087249109311439695557561403716615970890113313039032450060415767606570955353511270932217852662617312356455598231458448309120205774138029429301708890773886656151269911037541278994863227773445661274178293376423792035234462993110289177981320669861056584810353527324613942897727451437561054183887141081039503261356817981380621926585897822728655065015564312472439917405474576716931976233713689389367091330809605493080879090195796434075299986550111147643754498040679426987554122576732285817025638444759916227826671786056533447459650906711166386079877238233250277168823452269196440305011859893571065881612363460052370574912148731102086313058889717486029990728504736817401689744041477797157960262999880874733116879256376881191091162712282694365724517888569470272719604133177280014858235102109408427925326668631992033338709463045640683944541109114273186827357401953285590281265924301928142675882392711554037145796076246759555964304513468908886248570966499323607929134579847581523748324157885762676821959000835803512620936985914401791331908012364018538853711604246220288462547351752881869083706770611563457813908624841231205049614055940078711867206888819023648401213718974636894871294183775825885978287626157082527083454038430049528234306260015194262090882883025054395171998964415610219552682809350610324091087600390773607058001326827872611517239128009732040423458799676854849748604371063049348825237742506406659587878738919161393045194478223801865849796647874519225348231401767558738645797032063826048120033454225767562451012268739672590666304175920100031875068148712397061648932897057150773654936469038108138514753438908919541615762710492161783374527816751334106072761871923034647602272917145103112421868641869615990098015228286973265760335729748418369497579073468225780800491945428823150797867094890806890544476381631402988148421268629702270550683341554884857921636306947212925607630137222723441746618195036024256268174035186469721815034709332322239017660701862743697088583013810826614308196808836433416003380422139284618051950801844381710354606978905268927182968095221993291381116603468021819760051856928679281729006518921181293488494812516640903672859101946354568823295412536161213688019743842804155681571800351993917633321317993070695780776106769352534897268448774474889133041154737279645713024752513339682148546762417394994147969213941780311235157880428033565827110799951191783447694639195799461169463883802118860313225945225993084513686267287894392091774844606366669296137256007882689016814412253993065009078983519411348212467177078288808933018427638306196405305508791011320735399117835373644461482948422741068293009745324517993342839718724565787264005959591925283493367471946122172001866151062152621127890145239340226772076934452782097930533685295086323339104557448229775668892695088133464907317387136596776326957513548667171885182289373774937763995919357180555851944678987001400056605178268282374934071623484226289134186015612919087623174698030122962298108665065442128551952048407827018012654712274748065349168475266581018579340456977274168765072261501608070422343815870070270014329966226875356196878052034019939501448864239078638411650365579753953541712659601424478971718988408729035128093299071677935116871532046745481918866074549376813958051594857508365882668801596252860684389469385573637343358124053616839912131752785442606458809029787651010708013200231082253491720122382670622806548185019194925875765862230021297600281718969445379928707162621727984112131750002556542374371481400397223887181828665196033737193233078803715590572927781187851498224623154074193722618120323901632675955452947031999183912882420216960992270749596910571979479577277473142853363328488015792241909731666890872912614666077126756431312188787035123690718972694941362037140434423220602936488029768496587894768519311460154636453697778630224049564685536375672418604364500218415548309881164604274982438841962316760869898231410970055067485628611752446030848459544152747909939700930867625668578150850617139291310399328338830100126913111401466168129721159514398342234659503921784086561589001679038927409582446025503798056425346594365889921498149218216880457116827911323683796864730894306912077306257497690349125441457662660043800487656691862158446024172073856111128495023286501407563165373257330379482235219088241478113774429609112333504143425596102790395800424816411505455332259408721405794757853441978682944613292690051383207002138007691950841864249786656502802404985065546173449944946850839131592344956452325434631592634479933844477035890995289495309191078153552360905771969433310098421054695833187170085582500642447549378783570843076430632020245136248635443098990816158551638077405555143959990350183728549052959282273885376406875155476624128875524638131539912452311686872669173265914322147752154913839847860090946525659978932042165146530696666650190120245987507381413583934372241488548736821465805909761745844227924544158309425665819849625972705939727564386789629070961292102426869276349108253029917725306809459461084914321565748005296749445304006839679639974718078585500550791711564842934753125592081265464884103436294592907486313255486312998126745080892704978627584352932396342746322461810653371787801990591434431776520458436150691075035010655168684936807461463282380446713232488148899774560046030736265112390146396689792979354115332437066640711482990887805189729424067309927300743258461705020360216049831420012812719223558475629956784262951905648830376414031379374812271321136582265284864385133154757494324444589511569011786300574422736504751975314052044033555978859210869724074765378317722855606379507279233537077073154139231071363770063207105305809402978063949727239657031126209482472912467985624059207547133941013653711540616631105417262430474946617263130613715164237540149125900981270297627248913256889472317957929896796086120257962187048254204565808615595365171201472119780406469922689691324526739692503902682377591246801380354589818089264913029013572249960377683684830438545160645284365212432406401540726964486524046860128445463155146561953464058367361360747146594185762403375819575689436031504734608407759699541197844811565771902392743753246912802327924544826574531309561372083087629338175739941787575556508039236702472901934730431820858324355503305253718617208136026131349133932869682380939639337242970891084957114297371083129752539924270242820554216871348272871732022605604733497860133661181131621924504544873397864529382094389906654506764393031974773856720959633598643651550503633779216123521752587164797989747728720384194978576143421837151238790114692059414891377408397911010739370177763722341474225659815042584062475159149943898438784293409092415713847647292516801456471412830263995578410832489769703308290950691187762108357847425423815842969673700294704151641657873580716705653700297346573679998394198705321619363357556167231049271788028972578769472724647200837564149343641683870490778339353903880316062419212056240020565968661574462937046141169940712631858745783755647740736185313463013283222980816171564634675728750481467686925493517011593067213803838953015336775493836711026383597249012266143619368797224827769385224506931220896577527066771179136863804559013864436458211224091533422132656169360896888214923385210731553078095162374429156240186878917601326295196921067375786223582061814334833750715792183010497751491579320532446852373214179141405843461302701004418799261765430636248197701195167578863676675711212069115574983141353929871509646442134649220939482651624976427596387864906093437523543949065919678557598695530264129385937946722369212692140221309833103794472603454707515236586036851669000019625074820658046851848637024465252070023534858082075425361050594482414507014398430434821993607921112394393299893756550083135422328585451116419286194430960252179223040752529716821559018057971580731909657696898588618921801045335090477520695374920194464793145975500498434797572817797055563074245739476784837234218818759481829718990255797098118635735175753619303940991118560250641318886363484594420751102590317518942284104184105709661289806841305432223328440159465957971745429059185562699248859347849750781082111273341366094669648508381833928875862817672951371056616611325593947458478169923713861876092045679585262563525984177614280283890016042828967328931903790502167470426179916125031273676243571511378073738475193058845745110154986481238944961092357198428948815750361541504394742560829602245500750205559057858343142795593569026396647340847190708208735307889086075353027373857151911246384925037824720807782932867714523114846788284735532806436469547711288570395711354490591463512741539372895762464894938013440940170207101419795892933044293362255732279968037659179935225291114223806426178853631998609169190457598875340609274120998921674571139097204526746837157884474606375986983192613978825350858711772537344031522578842089597215809794258664251935439203117244395364843541351356929184357162695291698786562866171616463655650159509946174973326578207972573965592626190102618155559932077248343326285281550589897219055958636496196101861282045312668836052761899942452660443717220245502300503095729747489776585673885015307784135113546051165125237123054968477216890539084387157770341197381653682249923148307000607095081212636900668509713155375735431962849274560600251420680446475874558770283407940174356822778193225457610040079560417282103339520992409926640560423988318997746957859896605943980384736994491226552479405257124719916664500566295894591665855381257654513936255370056042467306327806604957336471761998306730735968663607754071434740428249109591510414887215038853373222801137287873135492808376243848783417046597226479934043706352750845091442407256863608588225806278673976897054244784126995639561636031849940327360875360743490669708308466951863821131468386146562576458101807036358735734850267682823795979317468374845814299006581138312102408351140459514866554116102984929484130045130243398082852188839435037607316736896087611206317026877391062769611935412695323811974941662587238520470513675113978006487224831461277369956013653004584038983754444520931371672083223461481397441267963480187922371440765364976477601854710167724460350239375953310378270045744392282376430298341012767616255973731813559519261050634520147190320969945783073161619193574231305870315720902949810723465396032410297289772746135566576069372327080829030970509432125474305750412971232492388742654255743930637156946607346708488172770433286420651872288519195510846179839302050830830805539065481672357727093743330257589518231345883216396780362472286506892655748594195427276885260515198755366994831331461090518097905564445592789513919530209852680473612403530496188102469836376477078495009566873795136207211363941464907831507305456088856434174994017421480617280300090401564168857484746152592040122977925229902433848947750588463426360626831521015333466813044585861765751069175923539205006123678489098675565143796556428759566905763292107524041069683253629695313435707601318173034810563920201167879881600399244785605710771523864854354530430724820290741451120528340811158640065354578420803000554031667866815180003786015555188917295327783344759399719492995501903575169577165218924894097584901916479576758964487117282295936975559946072959396530223476056730587078230788035374729409652648298829408452456249672395907065669545374874186958620366316594445351278651926279797569539123353234980587183621816499696378293861469699561759471150678640924377673685983393052039611456221192257924833454141762500256015276385025466264333385110435083739067726530062238273954126350283819204185439697088576624489557641622413644168443590253844520041695587432532934223433546629886147416574573957313989734854257028160541089213001301208147369595856430247768955965976257867396909394171185320281354072327912546994657308817848312316548778909260705685502888584253233450056717412732641862796281990183501761425273712117714780126415493084961698865956645033781121864233798748501810393504365214673297377263125224172731312884753145965317154081081306716639622677278630284330581346094731470851236130209851146172007656633387037337490899436966934936445908877477891299278760234075876322849819303068799087648985468430488749907564138139027356813699787352621635399030933134079163548872237885230994809697372631791710230016842682901053834490433623769418765675242446498115285021924427245062473100591869432179461093408348135305239611474000805383816106968218377687618100302964277204701930034980289229640734518348503855372053589569479618988867712467453626492215088760487071349759166930098669790431990290316187310143332551395732540933152680199105631813633563796454208098129849280070984665161243959285963275480728092543583830788057476755387461189479197763243429510564983167886855002937859891488653498638099715751917724935197287840587445197212636194495956412824959652331997328234712762592793983733604584112616605715039903061115615850767020045679152240583231720258807609332447357082274524018562702373800461423487866811194467564057774842972897407550873812959521782281927002180365874819393312297681573520773449753380879592276509436988405185944633868597675557825508850459296230895876267406707958729417772509588179702340118685891795673147162200492382834386522812670436203430322615747272097931250598602337766281486048638231414501735937420383477007718760755956264798634687244787287015144314253202431141573961462555890299793365492703473396937512132339422726787976949200712622212799801111148364869700237035370337887250947796894559092394730625289166107624910377547718030370896093355242710583997632586437769065339366189161582369426545494728591251166791108152851952208667945331409480653964814817559500195005065737110246976221986178799243919602960216569332884815879832891891492501160355491988457340594848022750157845815148815052377425780798648838777763549912385984881328570468225726800201888951446976656821678524843230464329316911201346968911534413736039031862237489418161585365203979727553478352021216240105897784928909899665994155652783201271317370056774161495029785622552303482878907863151620881225716156752870095641950972500814345298507621144370960955562977173694820434326673261894923539608290924913319337757912245868972595182265734361151336512105622440114428571959598068620244096407915130108085948177688406376606353179669211472557380136848036528922354895602070353047694933113708352486496137553156383147676924122081399516689090293518266381885311359445025953997634522828146273380828920105147682033544705701507875929643827072678789087803307157683400282810175590139386525909880848134593264570338055755885567237578522597710376426794725530102188727597139617313015723433316599987242698546113803619036493747468508491386885464513954915547643983353687912933079888998219536649897402711004719274184899183323088264958889001347181556738578939741217709253188360080952442311129252670487134937071742787983768777133840288966823110311360982783310928371450970498646308607965019171857404613433513681432570690702522586941638305361871146522283410474502224462118393533765020037839045617258559676339826887562658143967811071593824196451463457700957629623780796433532271859341499636499338593389353315735279299487668991701801193192818973196755869843204817624882304537190610111149346773968022627878401163329765932727351844906970561578734227371225587300064016101025062131790765922386953579481449258554724837898585758336007127670346337145874267727905882556180748849769207487275613040526172346151404812253767785979181500795034837810700700254005860952391496797301058346799794647478185341671070404116219215011830292933628726462111337575829370025115669493698143493609637193514487076154786174354782079809470975041997052985812925070233151274861669398576997239667000537087701442193312216293080370473978435035613908504837461828115998608459475869460431534764726804443091507773520478040455005201266417691284925038527670666968046730847131605933876968839168367991970345068862661331656242350097551618300235069969082530781381227801853792095518572032868248553949359418185626608764717455258017588824430721289740685004643004731046872064692088612405179094855756733719708346850091870985163963842027157329793218487384927979914476813187761405941061926803937850570678768667618031352799692288089412004921942099192364998461688521664860600055759763617284779364010440357396007505819985460520290819851055412015989191975475424817554159226841915581275795418362963725704865697707374095636755861565689915380076093837867326827690728935247503369443377113437727315348726552199586561074225619900028571529778639980561127770311601122579664942867530243429766346918704441312429839420516225779023675397143578499904328866409220108784370416815344511664588230766668085398544477622945960065460240378423251769725645086713325956110627436746501567273181408017378713407705607502385567793369912428701857614975213540868955597768440611874511304518853185645081636346892111675916866957853868360617546699193931462732904188449669373340414171164931605162736368087732248943570296536195909122873336167935418260396288126388685262082699646270321311753220188599765906812439694612980507435862344074915702054434933480359454330782445864361807287688697221265387849713994079268496291146265892142231569041998134543475021637843234257920865863805418956461401352362674145385343614326704664729184987417659963942740111200310187905010536844563506577100076699311840689764970146561735317759196021246178820002327629927815413973598693603898991783342396106474572511833682889246231107914208253578155134306680335303449579169897083780464591501848625096202924742187508062203739001840683492576867518511214315103671625361558545751939859866096266496362756946241961706856455942756835069301429894101788344639848650021574350066552578669935330235327969228948229037348464604922319807717826452444811317900735196235500292281263896406833099608192765135748756221541090216381363160807648030719602068207814248132088148880565192824025973304000545407340725657350579374801183658129373927350003952805261983807036797545924123452126447119358166398316967320709448552906435183532145563734976785375168516389781925080350227843596194110867110660046824856351861334533308079178111398424393095517064731201446757885831791858395010714668247919179989619885220471420817781527258946578163260002734009875278343857917535396155189002898658084161074151483446128432711183104466450296094811580652672696545565796062416633957911323384593974484959459834269651912544063673778172944344324167863729089813925515484254112240816743377598171124367023266383995056939019276427153287970919914782831149524133880654348305478836547444670457824934382700775853794299142496352816427045563736986050002375639419353542610370067869931630672891660229049881090379292269892845428913580806478223008968027047016936724700189105112436000532773188563074064685495895326258238693350862451835431793671208089258527208349290018171423757811010534249427915777243304844119835884631713049349369965330652737889929473005287331107779224560808599849802446709602092878314752157966823879790671489876265108440962644857660478244181950812604724753760001047219699882111007748748440906908200432576155384990671397005837516532121651278564957364276781573212985502080910625222686802089411241838671243117633685447443112380998126084071423296064042669141613161058516391258681241978423075295956893017021938189221500846781795638956804053212376380642784408161916083418057982901122874028402030850652705644496402509451286570000961653367553018379276182023712484795077338522077098892795330358780607127379235512868349886080362107076354362199376422960763567125464746330094952108244164687526743721320003473226399903225500425669564126052016484213291927891248155930207913588625989685005253080804113184916718888469781238760429592674317928040729687854646889612358412331021493652702478390654527384153510133469748930164209640179445886361168758171126398840214139682653771389085214125517092723908660960879381301178434073789049493464189085506979338741849088863785130701769664896294301281470781833868441528171095527353340662067672774326593649846066620618201025674515729065767697226171200494526802901670744517651159518789424316356167709967496122690508003146281611602137111403433950878778386110858959686873017927972025003633765645343419330879168992663650086536379419594178404722995890118310286916087716990200110386743730583086228152353016191823544070358152203013864799512137033933358632411337385865258067675095224323550312649185984446682716732836763910392878833175158682560956995725904569484846684112888731333891348011572848757014456955382375448886787023309030546512705154230118759121676734082236778068824683966205375362459314305650005381999626142002696450856835042911696276754856136894903881195130144273907088771029738673861415295788622702979247033604571097678247754223116859175073559542892829741410120595188250785318313702335996408104540291948803256988849602292703617763306528461982026483011830345376526833168214010374064625579924824174147594930016819079794703476625742391431112148689613274482031139558566894549788747411328966668740114990429002477615055921275412587378148007017125229079610500950784565439780247280567979203858729640065158831941306403444721291103673650395511978630465390345589465843722798341202161466996503088122904239392206181286557582749460086256789470486394477060875510075971893974553715316460414812880810174620566264628334673779494945656548960881692407744448272365766024297965207657288922824598440739871083537148072557311212594161042366649955192649157266026149740171881110169418539346429446396234084251023066096599629949984687506903516398421744372210875385681033252967925716735193714270415425710877493227241978365929770042799317156573328800150904422106982953008210699870632257608712402327920562901128422187223152616000516001006809205154713762390066178041021117820104024386693794474168210984234327783939830299505013307640307223931938631417786622462653624219708332941467945228450477804036753788601066703757374076030667455824232333799876081753589351384041578814062897425155201771205289300838518910077710710117668817421596239965314379837063709984944264845487128668853266124001415343421227277615612360323425796391639599179513421120591086114818884542624830027101225416063358480904600223197901300421265802008916875531914668824817570211657122505284205150804019292557446759437285976808400391107323881785727644237612528480483418763693972562655229299729349450739121142605275794569943783356111105139855918450556212613982576849321180711587267525237934164425277588972265483105911828145398447845265734597958526872629807600596773990042739114552262011835099473014447779859516062978621622903994817119643812358861654202517175604596711544336753665105190506535684046775621030851649789699079434970194808027668497960208125936857257589840080403857250697767040589299993507022701858564718492764880849594869062004739556670000699245514101588232318817400961413775804005003108423440500082349655120959505700108965394302449072151443964268948046174570217479063487721257036384667006618653234317514211757386937152151233154261936900319592676479701305965739654670194237069127049779364451809155747314287792254253869883033227955009855503959976554731710978407585951045415951190501099727148156430580452163218394075868637793544970073821923296357818611872776584101357206704960965732920218811598907612526652626243230007532355788258664555557135589519158447856948731687045391811958389446977982551704071205454726503390891706447454993102881352297932645498741139799835020027251724285993539801123944958283325356739069122053636596374121305415009168253705677105610250163622013908665370256558945325614732897201495671266686581392067190789362324456549688093873222812340148141811722016964408532567675999759601734053389367524118060378959487315210852254980852413793728834101562342518841909796248953702990104143632515764911301420851607032190830053747055773981809402545826376130681240564476198257794971729843933927472680856952694771154052231260410888368153498130703006913712745715445862474395092188511475306451009782668194630006216662626947232119855568956455163258481942927130361359262966037978856362438548850193628269267671831022925374750399988071187683273586223774369960566240900326415583922623071392961294780657326851939760281902378198423870988178563612800207417343309373734088703068445024614778550884476623661228404557380369804032890285020537148208096255415605310874656656828060306800256426717909238384849973601851038025779803190707678776925368542202925362345994556946670527053596072869580954871366167056955712142118640697935277818895632017963598081891820702858514457768744033683599347786186778191201222452485577565590577576871038844926393595502422022303248323735975709614649180976022746750620738438514137981533967803559337881571646553823932949088179405071647072735172091332491795083367586477275147575792474186521181507449761370230891127794538514934926380825192661576195021283651399456648046260131150725915107449024954394738089614340730681048521653522678905925071540444648927015913226505950548942064600261723387107590126378090723719323277377340347681048026092599144691394892912430550976233678074071134608276180502989388871708661910625225749333795632145607777775952326059705473206580579688712640168030582603052971364709818402988396090985206672811861354608997008557737145579199812348652471963979661559821235659307025891043617142121095619137067326808651825199691171790786072059443059190659627742979979416880455966969449972213666425589914231987710785619817267398716968924280762306378361744191180769032160886358902642914518194404525741620693820128886196730235027179116222488294052489189447241317337339198578212452139608202852144680230015903858947986683439380515980238673417483044760661670928304289898493139158384066362574685487442029642574315486193634863757834232992700062675049845930860391116590844713151505993974348034531017296395739317154429396996182811254599149188676778641965542173053879108488141672088469228615782890131571558209259907582160628250700258621288086403552319098877430285547429848601612431636763792656918103921672735014511792443816918594221591300816872168124565837880574008734740230048754768199204378795856127521144981177333700214418509224408496468580378897428584509396133908294012113114654211413157606604419602832491105646155121366641894975913172020001289613726921614094233708691069643676989014762066334223333065254377803710630282661621671072702649335240424759944996738539080053481996238530610373542046593250075030130839051223944139488650523967662501261557827947956650203457401795322813311734691941282893724213818538321059177014870794094608829439727209617244306194866089994867713743538744674591229044414637948714815391983576310167412684571551498756238080264341727085026995229154300569125204216019930610848168491956538040212179483819582598578403165964113658607016871052421153253264850720183700056247283930417745430568293833028034973166468414400501856798964735451419974155749695425236382918758453415616402433769642463266703467000010409533115030896235624225976407357957639613146985029345739044654948422996220240342604351810440145275596235687366829283562957876969240758190879806830363405163601601148011788995981940906895265684974386790949803544053401339195844291770012900124444890460507554315687440311088583666871849835727777894134711679162483572499485831060193383636040540359736555408091898511145823418735980550466503268171370585599856900539619116501896913911694750568885259110201185542995722607385950970674542839703310581211085851219975312043408181994553860128103601610629764846247846037484836664026159270198641761643245889029080173707237029583753821698735822482589934981326864398973383220605384999688354936521315472470812695007027683969382287631012173963943176520604827291433398627016375553548849859144610419838997454884554992131814337443291019483500172382567723589780252087661873374989497627013782872888668150545171880920868442625249001338848114467428939308328132592093990118503555193906509387945749454744251711313121910970670134984592117389333046394993431963461708078814332990042723073233191186709261882306544455757401523364694429868637573252179456040007421421305332952369562618467514710072123947485914869272254005288999008990026052592688324640183234392481799974775073693062376920684603239751265521808322767912701622288041243493374467446770410479643945948935087062781035482534222748844612139556475462872623343258800711648735007792211375727404406957526851195666421691304552826153636096205992255615879342991075113511595255576693477530747646256403556267165906198241867686412379411639152501448377906267627456521309817212505643799215241396142806841872800080498286881708408332363258888318023783782252136073185915753725015417684917667624177740151836368606605615012789162496058455265927146913137139060099881910385208608017854294085333636715152097827918687161425721223444457921981265293434186102531972707497464560352862514936328526044461599010907060489818104593766937732776552609921074219095394094873378173043460325722935804429103941952285316054156280726161986842435371566308718432405794387782015608620127493087821681949518859051027607025574129361768394532512388261818573160236846299985593122787844520940649547432315768601391112152838285585983228911160456435464077862434569531654164617642348821111884062612478890209010674729451027069945141758265911413549205961977559609595343697683829088138609116523150101466528738906560920742023866110363673931217355340784619206333643798415606746511219782617827816019598328530330198241086338020340217095568767030907844939124035241334195855505360297514255587141219096320694864509569846606418732004239579287839046077938697434080801038566219512056678029891871862388354475802539897250989112510357043966258817466962736216285125131309410105091546679945972136287298763922245138490615739141425851975153606394115554244168043867771559853017617442462232635925134288050673806059070948067032340150958046021838757727352618509564459700521780461009492103769598992906819164306506797239638327565843778998931377095504025008193948044299290792303849514089472617125180053893572190077591937018726179934813138249547094113607252035515963046718073496036033788987820335968602008964394559910787856529514883306766690457683144273923330789354576557797641557521822580553961662654722984378537023035286396470639470450354378536140262461181371733019811765307919239324030643278133528570355822591863723686623479547857092176737459680128618784188092406617548192063715993404492624052553335560737638418545665114057893484544696454715033988984996949226960223949805158237568073669419979515683926239024827670232472300280036001846358826413318635668059147106761085605051592411343774237615995400100355197293188071832217605527862814473081829679334807058230168443982706973585623754503480085187354559393841676510515952343002140144284505345275298398005212910878057067437459330204985236575150388778141927381429282447191642471610556949457868425880851210071335292844363193049450076333680878474851530075471553568878014159824683218591786392675017556962871022745501990796326297541220838353435280555808364373860313333302684531016382725614370245860761843430619487590449495168056106957866025380964929904878603690248166879034831308684609826050669178173104767344996499199182327139647046068381067011896893887528512715328137508933389785867114465646469752316961142575115930915159014736259462334190764167720665247307884074923351700703376099546696365700383976550868837991028580252155396503135024133272321260508512546596006123827219765372551824717229638689731982385607849086186210481998010538724192796516017353059768465878465735329846516053926107037531500096777868012900141532058243990243499142372749701831660447673048992914147181228229933264796013278555129952712265284866343764834156650282257385366589823489837441610192928077367033488428029974717577743492158461874099733357942976168049062331747545388045870923322975532504072662186620350643471904149065444728600747334964442244236810171180059472730240819505158009437829015545245114139590300867804145188270448604917909668979347291935972728168582639819261732305126104324012425849498463132917324361014928012303379565899664013717778857486334612157181285322586694783058180935420986894650400262493479523269440752797737623430954711515521011786334999020832953910160413820078034647441516867107019299175967545614166051258936570702466970740267257992205405797884102791165083650928214146349613643092985116135000551891193773873531689231721811913963648083770043993942625376307539335494096069795058887194502550616640053053373255756451336971060014613746215599510017006439734053632082510406854434887905491405182871267514133598670595477412186999387748569542007074782732102649672847227336265162200054585704236379701070054363655120329860858584803229948817894487154113404277199372363487588214668679062056846617416112931826348995868246218449966193607621191419567652134926863983707066544112213271660177132102339409767725526224581030982130847844289465149583827817586811374705707205626273454605199336749990917752920535842873499311613504716150498924747003544034367466201313631659058032189807443286447194932036653770765770496048017245716946452367829479084915199938502992265591335166196155659618189127262638871087995919052174806331797659168005731028593488847289123469066618125112627850406175027779607729559083781621609920817434357213805419517766748128057045453435345416201627176478639249223329195498200813879070248259156863205310905660476853863318110668231664601264543433711964889915112015626816648501638501548310263778971579299823264352615823062890119467202137756584087749769612508138173729563453586494749429193023187825513257394300734181283076138695402631908933419125839031438764975105139540581016226544382114786014986432183693375515887927220468374645138465505029711967953525289828793907805032952141595114073805797879713739262660553080076293106710323804334916751210418513971575505386508945130934633291907471345273545678111383282405949944400698119763667755366123974210983045375608938649945071718214562158684891086377040049026234787988314888022269872772294297226218258283364710598536729506650831622385845102701846171146388009915828895518981389353400410754473298637836630617567896786010318368478300045658685590913495491675839167892973712428672439482122456637872942350887326952211503681877802638078118791750786529309273549744743448616969287539966158051356946823395104903068555017781700638368241163449082981470210584371775475310879486138890162326333360128306214280550689577224730095820561199922673415510843729016044550973584142487169678076294663004032121361566568466488073422760201569179433911918857056833026702159913626997324592996147090703731034018423930594738928897590566951376725613821796095795477354782389835054166908372259509919303861548184000863287482341120549178086152116405150023988637652808709361934001678410169299357589662172788015234354232072708861262243137422696370893228543366979847151029164442524063280015928475216480545691340568941220505728098178270137636530492441342083838043598343977426812325116474563463494346639780294151791980728635805383271685161035968327501026325017908459152033200455783038933997711796848583784834974105444012646452375760939022915618490015136064116065156628596204782145862770703897589482055114481919204004383763261051022570282702354509454767378014119052963260437997352893239962042353044181605250076906021309835857242418067262133197842543178089881192269431372618985177257919889133817564126969962296286452679228470420798105933467947376813810316010179684421659822774400219760182144253248965635085112797656844029681862715229009166693120263659855204262971445952317081786539237998155680983894178335154599322508976849990520385966357559599311049756594664892290821495249040789967996605361397160704585762902292131388925067405774999445388881220435632914672122844222754395800191363162350396301671239086874064184777039359114241527742254653743810638427626029831357796727749687251923731687588896652021149445267630367422597431615154321305576797482895813946812225783786174945973118283123448726897104238307100237171194715805730540684907541366293680507667870908539221558550820932973738833594844609011362899949087366263225335009774102731668879203244219414042206824680475971622903892891709298702541097658296551917110921023552293274913337149634003020329174274545458962048050337781024107913374051746868382145997309823484311517987303191637553680892467887941669529536942216649954152475521659019009038330324853220311188359754987914056248586380615662362688609785994090669131545829347846833321976998633531304189914203224851365274095742298832946888957429805620825121433823692509286077069315367676101322631206534295308896422404542328740400065319592698950766844078888842397618862552435541363035668084731029338141514626591864461081017451781668836159865480296789031446727073291455667979872054650210814859757355548386890406308926798562836798108793853119786913159216218255482230494452978952001589166068287952074996844568150706365520380045408743666160538176789661249971422304592463294390043085126728525533225271680181377839000709801366211027382920514519553027505425300351573526432954315871169137561156968254571021431254364716244545284022958901278177308582181204052138170594835666230858961748335254396563613864579795716950826798643771053205773574463683538458913816536103747808803071590093588264279941995844611902848537350894633858693688015866735373512482043390002301580154309188659246813832516991494193870235492547689757234280257317437224331064134293385206532169053689531198438643921096213038269766107586346094126668611852401726215798847409277778263934461899890547517926592492116443853747788644894418228443941231418878122308581689286494485309244341738969272432308682096926021454752547483994302613864912132948508163504668525048669711058184193940813255594329675799944449088428643400294408845691926193586578304294863768312805804487993885134428276644401953239243604852698895198057104417451804343066566996855262055446522338699286386599399799776199226114394913467152217967833819457581290852893535299548311433535260049311306164820059488383705110532036561105713894682704274103175246256599690096889253427013998964095423883468485589777936288930617923433016826274431366161070908154809140333213407565447427471547707819089367668805371739691405540013861632962632911058215295828577025021847167864321778295640508595621415232602509952855112692623312161094847463461562379284819163307079445707422000574500769738487389296630143383344263858180429448314896238154933442030222374586474903382292249217594087214570681192024985041166702449301307253849977807749514723696618100829162439056743038389600802072420049827351744791254930902649255192751374721339892214136895149897117891744467147537742088853059599550792142093595500233404642876906099442290849931329389446385403343060904695925603348930879661974306808348949681387356178248350494108741109954544287095203335611654222940304811636611752262358652761714001981688888059976980824898984916010842969149202690944724433450928028725059270225114227782941562961192604005171548541325009933292145770831966747265069157845601305722923159922246327671500958652821863192509835415210928693978820014863452706718237002872064102927622578157932610444752536892744230183682404919287773111777658820728115019873352901142436182850221199082397619344131434728740281729769242363175672628669437505172286848856008410616160222121817776268702310514370989095967674409909297645370623934238652673478836906225411108404750653748707913784022883107346377153703252581931052633933356210537468375364817869246131609960655263452394257296654488938879663880907435749428576092641409442121107920085463718182191971515056556418936020792911889155705549500725441036523931398266515609696645959020917936647461864585781336213968087005609519508519679555981716809796020283994298597923341421144698225638702486709901645896552431786833419615699208909714744172045744220162317090871415887088159815940846944246762291234383493783108791578621606530401434223758261922451959406004079974772629987846070384134533429452526516087140263649227033256124194490341709446155523235805121490996162339569415718781973345022861697183559009864940689314856259033164960670322669323840914022621521423412005582986748008727777245713107807641814130371570127578448577927741428992275534963922510600485293790325424487524081101736180174110942763160264085099401621160312398936777990219515088313326958929941668509372021169959288235874019054632335592279782383130089500505803918841933901336804979911655938820206104064337197902205410437500480937377498383193280473087822849621376068925572394008308548483384227721260810258998368412949740052396040018029597732295835025605131114503736920595886770208088036888317867457273165859971271019794245491933071468527425201270136809340740350285982644026167668522727449889667031638401861991400343153252461596433096709757440396367041870871620205052868246668071228984196293757178964270294482505433544764142993910732504103258941397591011238706155867273701878609132426138871209442193228190609988151012379822721057608528416811800364128166303669392214792401099715711244885840800098717203560978392823360789897932673698070706783880379862830907219918481464242591942912778461556251196742340297619918023928552962536414198479816601092828977576637325513092977830102675915231233363932649945613966917076645776880242393443593781182580393607174906988533317025293561026540390830841675477006948788411539195131086511937854686364532476991446175797709154679737781216821937111766814119716823630099121574600327462512106731549996798147224216022631618107546621073466896455697393126113369572335387352997373417101060004685562303437484624709564981534238662987986485212758206500779656142901257834909551988116188117255605802226519960453160666889563014524805182163787399145828035024607053418056808722600223804751151201493507254803464610296434754420910322428647304641727411538036057039817830373223934091258178438066790841307926945369525927225962075137773702987854951365304327014255030862848276987003817316057476872460275256913301789218659759305925378962177568244744873228415078063296483901504052692961151921661562504887379501908990296085352845266351715064543064126282376108260404368646036721696993048694892475971685019917541332856802232767965837442884975698106252170999997696618679589367115359440228956257137297098919136339064281283846278595689024882212744148024579133393156014367043371583088739491051458625641200764669688168020811223359846636400817544391470490103981111602616715907580937268832957348386734514178198636647578778713429933823431057405150657319639005322710439758672325501609717011320258229284021027982487231549105660068693742431986118208977184197181289172703226334643576913995256653428221380037414153199501112376481928993333057729536727082625063436997543728235426342535252010903776613211290961263429388152911369149919224498649538276402605105082941068814108670456887907668424515902638323290913879107349634884763133739188743250116504558305483446379210688353618937971379004475191874586342679417121975932939116408372689831081143635880476270844974754967019574484902183707737708646301895217238210667572445539677038235965797453096884150823849302035391549681933959106285506852797592188182184342390834056591329461914520328571273121514174326774154912282736983765945861763220683994094040068298949604005117519485835554347785329602247780182859533826715268019383274875178747686395051310878097200478483320514745265673852082384782984607340289368083082953243473486471908010433389427040457102004382507482732099299208376695085529040493443025124954968776743903643238245118295460093131759466360530101608507988860507972056688846879570019534810812523837360023054807818388537741687378132981928298552641066131241302731386763897704661276731226059876933002455856887395919378635859709496523528130018355183484577544365096718262779195198994749465316347559271721046377165837574851125970167053213396674810736142046056339487958810151606342587245659598649566259345639541467931538300076790711581718202080472951247552522748031405155991668308572375681554339774652561727389831642181984247792467644898206882307111268607387796875012583806322369782424295789618358329993571147622872461696731858344060154489842744022060199479417222934165424509490191004280091252213797209588994660801894199040733092080345606630185199882622654695553930637245598772311038667115105161714201142331170075769246417728208899058657969996640626449300942198866884976480080871302982817045796271300218209692833467454286806388744442601716815691621779250622368971886708748593822319787464135541013290878362703378827426114805675966502512728588638850678887459257818371145839684710492638538091464253396328137540685094519451613850006251880234645102478416466641517564647485144033291228819231246050668949514705310442335232910435804318938205785508810697945802845710742129066814732269226293427644159680451305993814535877538916010860073738072002579198805004040106442320942646033287973208448782095468426298528035470736663370318096462017493168452487195687085942710029135935732081461434884607021992009539492252581971502834283873019392527440286959800548463852160943157454163230877234366655633649519681882341383337430628924891569624379606591075129915340246229214839618383006974439226556907933265014867588130069717350849426031196096726052528162051054820650818936571162733781114540983149395650220788171579696002541095906507686637561268782797944219878775276877365151558613361691930077320336300148046983559003749437350183846660559054213603498090316882273984711021022880573114950202309919469547759026828251245406249053074528304326408648803113815906313595658708914170435928215197690760756559464518288907930828230112525447868815704129674463075307189369283257741980788135442281817507086217408293133818199087259196034526461145156536426813376106162169675011736475131515780993599690324234513955579152189305388848073982370792023906194748925962825298079999468395911245058043525582260412152939169417256886164557321531205412893840111909797220037327261163579516567846490017344487597877374538851335208923439695068910419658653428677639171622537387187624125935940550175746858215258620127653149255944350039118379768063657874745857714572765799610649973324733377309683017934105829701225921490074300841148463412511095333073707433368415419968341637393324548906490349672927911549170633397513897420899925426063562535417110181396414695662480190407744388418326382054389620190152687192257660630148699952424947964107300905526680107075800117720286035093324328678014071115604084291073152906867134629488372425755323256594167589287638094868337624879732819147451823439281986879201052101641047094130053352941036809454966673292524631548526406785791851785576882283368706943437793599435556963742060906731425809511399995618186335608508206372476675099445324298239803247421644789938955708728067193023362644613207126612892954881804226074156466361553123646088450505505796471311668890675462600262463896044219602940352196166754431104782998860142826419283994696935836803124107776256989761292262322669125975949953890234218086329084215537430437380862744097439126542507614721639340836826596649733591278978014759311893293611097188662730918672003026868896786746057666974190623109214703467134431758305535287308229629517361690595841929569788252751794030693955585213704804493057256702035851050378454812580233295313935808590318520969691627702447119384094833068247739512695381604275120948485691556333540259737826431464255516622806783181975675455657861122109975096008307278180163328869885966522605387784131538060791069819508753323980144425006754893382233914702714690845027214829163531379028923715048881024936502696589515017117641082264408091171749103241489575612183563035749401085411989063644047588733319577333126169835693243554837502971802832618983782855621222994429165778003735142805581251211491940390062466928287544191319030628102608855224726962056277348653566277266829088125600227913084923522325494479975593813699866144353107248896052386786578021656162811662504443231576245097120352182653760991239279824055359220606191897838616795287571771032966230157741403964500353889746775501125787268197940598294607671055348772428068624327146881979634491289455446448757458925221790443438378168317203888053725373420504771640265245904787261452694686459403272307095062984082594227359738869217862119837862134118340318464254153594225174402909950263943863691295056187566916125444318425001564690150196032950733641561241105877532894084769282235881570969761638071619920925526583267850051203461601828389753514344337280672135682073483407065622095930560550217235366165707341969529438593247191987175543684635793856757168750192256096766724567152855110672213261057415172211977773534222071404825944000769039437836554036740876012318045148251051441081293480846453767236866554324195764546781717738402996860448356017022458399878845539389459283783456566076650814776920295908065687801880421076938118205065395056927292919706888578516385197580536412569489160307052900770084449847704410522255400435561698852227321461732840142641805844176649411573109972869748191905158033506263166633498044787471282051839013181973591731203030710966806792370716985652333537882521256604158110243641581361339919762679047674346091960112298727569338353638804852747274382255893253287492619743233281819083052059513733823578898982242582450657973798951193519795603582473413542518158051358251997613556472771716825720572626362750460873366415633580648312520131767498770347482551633890989923867778142565916069080388383207477290984865469735119622020153455117315525139116403172035121563566387306852279754768175394538735597824915976876513301888122948131959739722242267439818604352686347611704031115791762084153404798590770005456769313435751322681696836294382387304610679571780889404605243154161224299475882405205859038101258413419011276637897424965722527971879509683001719239242774431711764547111661016321692771908474963048680956735411177461901282651762248493045673710831384151400814214005744709990258902467557637842312006286673967524475587435969893992862104036001494761252873456004867912635572163940411434637129493045425005502105947942122818315584921288614991014606029832080198352182478991105976851776383011135704746231943563946050817623060258860383993570099805325293706405739609705168588891275943063130634370976851654282639955782470206210813515109619448792290642603232680825680144794349907278304872682689090578564254591021021402948624080744807673468187335632902980279054915893921408514602749836885650292350591699651750633900666324921274093195762998276410601719741280167217560725159450700543110377730132845750452270337661246909632889751173017317413049109386055867101801725308669521609531635297290320807079818742611722653108778778311379478792563937212512379826507520533544542389204107188139362795088032741053470401828851774708278763496351341708497237738102501506709463434755620743677332404648412737587409969820840013778205643841717194880754136383001893663480041324437320881547157788340682148496447791520289435284802179731187925001297612421929723757876563045546398275868204648222562274151777648444509341395606028246902998930435054887733694894879921766360911508708870074089834639506806229943336702232721751977316313204008966795000212781618023411103367471272951719690840119359587149823613438654374738986693243140525304504680313844810564601795148439585614115691127862651631523571828124707022510134603074996923730336394076943461870908994331721144688729569911275258960513969054959723090667318389807363368187856926030662636332706652318944202919330201142518827706473972523686250182627826753556621506576977585918847947089613058452314690406313590018760757635112074660620662636099751404186579057279522892148921394699761330843699791682426779481182669990709005295797406145742710914558493882657603548149705570244506349193225834253319185801225022569849078343617028014816227705611570965465046792323872763095141327080040847094233970665356610300195262594666646097929502512392885275953869637018421351574009280306556826683930259816459555302810459692479404240987891702492026169185345667428112430706368800591478678432268704690337266803497342179483623565620699615681969516876127104401105983678981625084077602464236552646465546632906001222366685606974819201361546958180752882874181118514119606221987365472477889954046058259989104011068157896128189216892413716012646739190264614653323393874850701867188154474918346232593216215576191002551273739062386424196926837236255630910922740397718420821474275144377211353950061721832079121432983229332833065125138862488087922582089613308620763911948223892411732367196698373798709854748175950634725207926171137746773728215548597426332192233565984887727151935985529590601523584642037990974247561834421517645551822569660436681667267552518629199927134836872229999208470211245796818771183440716246966276845212203290658182819672173133336794088870220269657263682544343325897980215373754507227767083077372869794146873927419127842011774183136973009118192815920489705778227171340916378608320533130597904418111246261715292203446970265931521193730138226284330602657406147871068541403599633600347956933197497921986699546851184449048856671106665747157053891667964883450459908847388117326534769388438666927033480687357870957446305226847921887163613362438865129607610880230815004529859430320187040487978315223714291881309129212629579535706067727838683285301254118525990519177334629478959421212276489682905898660831687350599249320306900681903645555607743341527189995947631135137167848701366244852294109512448848645156597480893251943543096465187406035267202009969411592849421763197619891227792265727227310974014411499335173956135238592623071820662763203211936687476418763570462579490131216550574667427587330179235428752220162366634501670957172200139734329854552524520226679114733485803761124028087027147391486239998659979555120749835073165774607165565267231118195555406864314776951972520800428967706949189113122423442391174489903847839065650214860986671332448207490750839786051915166397986646871191024331030164451293542902595589351049529629649592104801631747604145130921119628207148999030413486642898347242315786412427834917423167920160214716807445344202053673325280380058720523858104256238338400470346187497230382299774675000042509144716749934296006912135536204338153801816556249568683300555199666863105296014700939559927981783292426122120297194812863317824393369640685396241490937151897738677518288932339349055662218448481443348646399632998318600328060781002897492444197523347619978886493546624135263273138284704451764046762930703611162652643623663908615534825186602424865642512366965510033913522448512294685383219383173300037679306632413506793357144510911378040433095789605042898093406459640408349162175292746358266600860816020818671094753856229981138845921592476237525221131625485137563819840451855829527317734669864326321571687895400419386510178292595133679746887770284858624516639769168540132538736555985478924077030248480444021014284692076820663832337360500375501546210039279645030392831634494329078951959694106691233762146481948326989552214150471090260560501614752357396791706204804767447847718982110102479405358646065885285322582305822713186082271346893120894703523487679997994395951728990582406411184881678281365767738080304215545459995651855775230036107633728565743372445229559601050642588494928263686785066412026535803956682607728947526362671476549855062699712669810066534260483847875194628706324417182924932239795305823286427753389251723290085447329954381547455275043414368631427979080726594569677189835183291833859630310082042181315063468100731983181686644716736137128785568942560142353943009469099472327127055110221569743832479524268956023964931669283535134681354152903461802710185810015465701537806458392964389028091794528956177129003493526176310036958344030567804870736953508520256867585111325590290176032660076907889501789927257157411131744860481653640865106787542679689743076662993902705513418681508796285439726033981284681613960978718277233625609710498103883290273689957256229300251112398384815803996014057133191022804389337865736453944372412996411141327847109759733604887328352253374489910753132880015838070303881656747832073762667614169397130847693485447203995660296582780543578670250646998267387249883429578198795097616958582557677047670867358199975991175040883428114037385551548016647525858004347448300150450259510238700432902419268224639418525324785130645495720063094184003415556248594432469229889649229042112951512139020653269934973028512484791558193364349502985562195367453538301656206809760353831984708788297162873515023047500710454526538817441147576283249097705943896940232386946128086043134188663419427922948776829053326659033433691633702275649873658778645609117094772263579144173123581136647558780996377039904996904965320226419762916258362071902473093317977517835830736872526324970310110908074543017653351567015982424748313899076571393221153367502384044750026244477203492909206272684780147169648270620821353974274049714212544464586069061742666028005999382841087423952081372320940292029519225914886272229894116202348617565229041730630229501846443838515710752324454829749415741054623094896095937928670893691787069345866708110375866887323287272838431455310420268407449415084035489942363880805707812601983069656386909819761630667222574889159695275763641101844949612145617708235293006306911670599645269026965423156657409056755181787563782075228724330961143857278304386082146938279560866200372104472823917387025924549347936477154847302654633409646450523382795227583695135937974189969022250468580181699770162263535787023531288603064284824443577766573405837137020688903164870557093211626207675935885786031689808492854129288480989330329222964878510048448373039006329233494154217245748237356248543784072372533874621033187947781996564406672778255574934070475773661014100655260470584244780138729326232250070561422560541362282956131076798235925597504847770194683458316748348923190678122746659888044511258561297063471074715323163480243585829066268284286122954324868525062383540266569863858370135071178190264236708622262197840987761684647787195864219109963388323105677666538871498401218753846528508740400995881310467076813194222564729141175480872869049857805478037112702659455480196370610728062010665731222066083808849240650056364591409125038137240952942377300900974274398080499426437197490927208186037984590542915797761878864297470230087490765807840312194526551626268870912183208506974923654120737333447299317440704948893621321371666321205532416509863101139619672767026340193992350902621585427358255598213206353160878963402612642349278953430230574623144437253584949059054167866488753965260847199499027529398240553499023354739958941035751170651827776199040994866674002247150417111850874598111310650230713368586459088661946233985916651511567474947764495409944710290369742255416953074567983109710391301905273145298708538044133334484353982791617104953008209453554419960304404453962107323310467546332072368908198973527983239242124468541847406718131582929500539822184882086137242527828754778740703284431187153107852148608873695495693022384226544179079249735074947349180780900391045063898574900858143156455193026286150281473574982291943778401122539916648424974069255051654032985487370594068328555921212209958910676450477863361530601096806536870757194317790569634025757212860711573578455800407523262372901866901807678579077025078259921784148094612821450909309000228365818767339062650486474826158604298491509243127676324290446078835392783134270535181281011601499765217778859092893872692293938572236193175411982408986543461860213111688113839671721694362099514273380858978037632050228355224621779634060826664146918994195149476563926886638631012170036062370555391925110089212328874677271817605079601518007592862984439492980106314853307300633710129854151128450991831420020230169565974724714035162711955564782954652458481134429465036016712102171873079563438976070332173544939533861632905330328302624452549965314678270968450522298896448729849267336487561480300394590731867747192069734886097702000401076262742338331342415525111035237335284134672211500936572952090276180832764895721819711250650731078330003168456957039893361921887708225850495969584527562441481223211920965077157664728146104006377068396164926553187858483107042120131565491857157366707853549328861876576466378567021398563118299950772037503194263653638630110744288159175446162333705350486677216603450939219016934850945087665704026212979794085351046942943033535839645218756222089112113281945024788483624939013326868942314571834094307761964841674671404735504092270823532119477689482655328581967890716011196209645244390175982706522893658066818557559822180456056684556716541769970033929352528792238787331356786071975954309391538472075879558713914991441553083198939324457116671100945566453739867126767013586309491835590230074728055822810493154868013930632878650800738957103427715643415511713998213359083070890175326659412102914433465962062390744813323922470914417945268704308868158035099424570035282227496935200145158048324906625324123895406521621900367806084990342170234762607455746964541922220133127640529022001063486026216821776791920414899588654655788458682898287784148574330254833214296117847851520260701723048936239824821133284476434773795961001082426973831352190286587462695041337749576608675931885757549623237289323189752493176569242325980830284970971163348241452335854620556334182415553226864188711404467179573051355526139636625657552691378959638572898818884832414927633447623498453665991358750442366780086422303953100292676147891426360830949376692207681731588226632052786580347255299919755725176876915824120997567255388247602314197253215593374029781459982750864049071845272295853442622874840653817068146402328344378570957478482801669336515899751000554181845667097416070475595454319750831508941009420491329333341560453197810632536022575644091316087816429209485118692231886045913073782907102490072741381417699255664421389097671238416853062932127824658290444345238286934740852878843505355982334384799147617341198161102852063587504065166066974385047290297877856393672423939173299998251492258721350344624461671561904286467614036275218393329761744245371865480134092139373168844688942890879532036144313367522414544344188944446480723794792452113585109840033530071498203141588613938112332401923701619915586082739984403953028314534137669555351416240095199006847965501925305950160737236466572550439899821273457072688499025274307889900227243455915495397198058388025040517101592937315739602901156725959449746459449796757017519594287372761086865035281270297277741045509613838266130134175704307660164377302454995468535001580647621196497349337854765913125888829094783833290554237149175478317487588675868264710620735917159160871864865241519073295137183610022095181232394377278405479374458343739547172420511826513014071788046748775014948519526065975267934180147472872907157303806886161805711986478520059789773557031508625583942501137237740240554381021776793459957966559925005377753656793846810938631680955700737375470023070559618934712679607096518070830947399836938468971597031951858047594549901078819597071583789358642565288285529069970397326416338802135850287418589240693254047463736807353053196213476716623024554721629596031927560541629447962168484213068888937257884918119764721622739778466056185381675476456610929181846215244990963144953211340657968595621133831064117288796362817630571424637633633501710696226867873536449498572933881684947020302823366825206188089646559716050920855910053323063635624863710795060332322560078592402816209716519529363316442012060825294184534728999719617006730124632278328764590575422894826170573350613932760261859006955213441436862563270731845390938941025970528684226909324737887409519760927011337227218594078013863844758509916268912429600258121569348907604881273659337767187393401732605996357619873217868544939866970086364139719826161256049020793445188195639261672031738515916795004131934131404458498120433205176955591049242567288557333828074582685889828191278262891648344158053189496947858746491133896719209607378121038817245516413806094062241953294029151952052719255978598329929051992689517930924809590307521027490131054022819641276340935535717135166541397453924927548634460899369056953794894234884258555306895304845070745600444997025574067286862674581573385461153010193932152886184829560787274503641831428018504351935846234561107302762179504670619617323921776640521534642219058369139864403525452131503052452501918272201497649249831802779287067268601893045101914433462940623812134405246079412267633257379055251475320393375764156803104656865982707802654026935533539922833212637036321997361706288552995265293533825605578078473142835613426285587452854381355561836351579700239449532637033260941019894532600795240646123677587077910808920290185822931852410106801077867512441349766881392479162576983866730411481865978227117878409246197333472801599665084310421640771192636072835961322458125929472041520038790743788958102071675638155802515034727064228659884184792876197071258814701541686340080597857002420975887768513010918379222625909829045795630296453499356834598969106052928845299972054240595482059030751975285614366753502351308400859197962849345209409409924475090018450274642361885184913916530127496618811213763376994660351918754799493934336183026645493710052223374770166602682591898322756952340065644781351872815396620972437605245420246767856023530440613980432663127524009987485303249658396628316760378800838748337731631151330327459522238411473962726522581285924372828033133846077034917189573556711762918420486320391857950367169308673570895340637476400499729237298711467519163147855219496579609245771659505553757790030125669895333779655334546809144566858652157925491794927741868515207634466092647265642294114971953021648905929187867186843031103042897573673743977939622038323790482818950974874399173172049665415065080465604883782841215468810515331983031674373253976794919597195757499819565502132618947672700282780302372958695681040357920846331601660872068216662072942300670157025766153239477005950341668319231341007108181355640294124530571467877897589032476221364377173893620735292341957401739420101680966062705791638939997122429058792262918560463511417759052391569983038156747333162741378980899438720364699435152177654227454483966016183211899867081627867590270530030815276019985865504116130887378879615569929041132500364207625596183040555657340996366989514158600384404085446832305370192130788220161906758242104696646235487781601960047245977139899118940070233208157465145618396016600189310128995217819132865205630118662933778005310121507646427811283669509719606857376955852722150348131525187770129770026006614443456579853547492531638084557524413997169886303835443152434227431284279315557448377622865951870879494753018113170290505199639751922758832646587632225144709392784483838797306123461769180597496701109654631806626661666794888521922483628067605022941275387246796285971318493164264527071817848969776147908224604858515850729799422400746192258188573740816498219229709940853459131410214461821589670038553198364024515047839959118731635543577188406326895697214646706118433954530238899468228126304910775147299764531983332415446292418291316067240131162834557515667316455315970674973374488768887286396135382737935523996826233892461028905589204688541755827862089746025929752112299043810265484985550795978250000323781201824009299730541434048885587368398055083850925156599295270732196365230226122366314295881698065010012177700452996437279771307399290149244181975060446902392601359578107070818383080566828461315574868367750007893915592537491272600606537326887512327309059564106030882109953255846779614803652799214103651897381435956840034028269336631094469854589190392259658589980353905529996218442903053104736059505641091356496368691575826686144930215047940881754793839732299800546225731507815190416856495976614080857034685375648695709740406919743921665918948786055667194807455004121298239520761616192294084767913677134669521171293832473834117102051954104437221199749167332260718961648168212978005470350443983788982283978697225350818467807569505680617500586442140084652751712572486029750342044582567002018179224079275658970530949675522613775325216692900629389421169313096029272520824543385460428902268607664165044204828234586162574888737398321933585210740249637549659468688163326330046813077804103849144053732590554155584645808103569947839984875509049127466506765479772155216980984453274459528401577370941126639621667573177327699296949992398429335780119445847075658529443407069681192205043667272272844379410600515863644788242835698874498399200294758260894100238280552198134893521145719446534893051410664514940490691227370089506468477828386406156647398519052902959225614077180977423152168857551548883126154006474313354469201891201996536465572707238584592559938998765408743886327961934309478521512251990568046508205383761151942513195876575911073251512681337463063854585947299579984107602856341600946157065090976060127165605047456272575829822452047397333311248160623252667361930589273797386233208082633280367623480586481285243236724368086008324039711011460203178660608836537534994451239621263136036138766827494437368765267913990670401234041640350275220757369134672457083684720428146726823367793828119370706497877457922065223181510418888754668029600128875242110287465376429061234152024832445599192774617037031033226360014012923379971737790950085984268202519934475571136505186594503100684656134705834479000858310743531488322817252027995038136521121142220486760917911089261566897987686332418960771800890467526250832712951408835368748402498944293874747242015209613893381028215105136350082243448405769716621633446980183951085586443224162725533281500648423306807176423258317164335458281273525297047653415515968259252772888191045343972638452101569499648424587832263883592905584438473679813961475455898882009307939574807160437795636478282722587299103508243170112180286606573166127858399832785588232294808407672234594529698264815236452825587587906086369482599906221398577980983513634845805287168169089191626516517271697874414075843384908938214108557644519082730902709450558784950089805031518215787839306952051117219415728412789902541540123884141982911388002362198506654048125773039842994379914629565585744051083729480007627109499072305206272292141695619572238598053147063643249764365258151967231549892622489497844725725679160786840000321923326355751346900607011042065445066214010747944195398444221928792179057454340554997670660755743093756591138682158376072778100211843404272822170365771517713968877940182616515287977705360766382333962610247873218577519260418500469988600427876293233545528192897237715028255744899111206206679650639488579955993843065361491086930788925370223521579646811145863945982548684613612497974269423743488927908498540466924323763334381886784065792129868309261213099468331564471242405139878908854461812141512652113133307873752881942082254222060674520618600638503290799750670121501522730219668109304746096392004752050348503754184069748547716406137173521555548415496703937760223841310918505002143351923695427418599385693041808903310555739320020242188134373305490961244381237881624293709569798488745613381462549930277011152654042259149145654881156871374801181425125529261010093602701415828625672094799052979471729850581204157568119781269053464585184292007935991054972013456752863703620844241782896756321959244493437092121029254667570215887175875735418521102865132108289029633888219811348551032040039348543658642898222489892688891254242969398618594616363467336580199256551373218499558490114283669737432301480430833938136140746140326513216813332407700656737645285779163361546649444223811340282741489634818198943326327946970007667794160158250058055465575537335070471237442076003410634994305754608744746509882064744738670495237376450271521666960083044307331427352560340970131510653108174667842861091467217510065240920610619874037320087204383762330974396383543607076319264811323659074411523574959912436973390625930190055885150576767838483271858590622887296425589946909931544963937312425458256180717970527848762274122714080300157668001946593159135135878974579929834829487618852097783682566589955092580451364132004135788870107854693129370324060401133887029812084897159978125170773338386678956979074373840420787025114757154577065295563784583276914540797806505306358402026185591780334627636659340167059754709573150848332721903932234668932942532004405264226927734727821758181863674377548650528176085210347246450096137813565268555831659810104973295913481403801603791757084354747792031504001947502898789724470031883934907545195743997011458986015073614928506167677043014513288974812488275708296262265736668836414822420866014261593814895719491113262852925668810290267112946546727006390862241574048998278190885572907733068194113262063582392332620831805091239118691274921644461778555704170278927999852265257267856435900683855346013346350896963801456227616371643582550960401215319678072637183219177198217632080915181253530394279915625547886090443708283334901440382426137645094685928157003382259684538779029001300950943783511435320900444852595220275005046178482280516652842177826383531514061858904930066916524359126588686879099818196212825048928814315371016063751116166840463989005345714258195209431105885229374149241625767478761200792420350303941762004439776423985604579799813614412425284631098035548113650678023763744794286774010607684318261370495588193232857707680029827926754360465721913010291234444403101447360906602561464400627913910980711031444873387615893227186469501154857281305089501392070629968739991335593680205934770519804909892778600963492640364806960218303405362943777732968281571623966563364764056434868439638313550947080810493912195899828822702563063839329002908874442196761020078859228330542017682407267187017388152624373721736660351951482389352799202236638232470651221838175284003356275257075895227345096749684477311687718742798375037507548890922455440251845412884986357204746035129479589942714263425876844376072529622335295695655155553395196041270200820337002357177530813794820037300033142439641395793598199186525124346196434804477459855987460780272049783588112699680504858073271027004559712899987762690920756649672708426744712969087695824774621242839215080888191895387335682726539773711970112637058165744475732353129453413225009060069226812509560131777150575661882777915312419664228610001211279375788494603470309988519247700799567850791431264471536332505431146390931506983682936849503347793905483703826605504313929646039947419987010728832378523806700201799906238179170534103160856343686815881741579914235060618332665515072958476560605816884080254975708743423549564131756162853477541537316969704343121890405019899494216812030897278428282529981332679659198318732303447647261864041091109921765732204105080907023125180979119217236638051824119950019302846053116323551604184774354630376942312110085104696998384407159489045821972738622601662967764054109332747070340465851554513110662359789435551504426863072900911666863494577895727644821115844842577262776119835141874850575634980067320494196732816643797694965990042579000290045671843796258831904298111303086114171924458027641122736546683948390727009032431580638795273513636445876167405588673504751891755848533244108980887412163417315956808838349827917374167149614598342728445840575043908319684610733896609714821687725464978100346139021737243019340306165009511054255249129378140220797873386088789010999284528280141795507612221387336163664542711225935767451673227026502563532702130389306495550370932121425504590659494006780694039063544599978548945980780641010051385064309339917446115705296820752939660050449706498038232888959534419682670732629589221083003173358574849924307199908010750531994068691853965528704149040900456833195414646898994723541199630704111961791206692039796771872877552246718776637068034999038005861801739068373963160888211487056197712475638286569576680884891072467547166283301823064655962820769162135553629280197900714808822583085009977633015350156709008716903974267846668749524493966174230304543803565420157173426073778556553254967055218945871694416438768937879326629130564069170037843927345610871427629268337808627732361363211781644736644835867891813368124607196309818840794501431300959494029199143895794512970217406862411915220748089737683532160919990794889998391234392682978054633236941895968016674092267889654908715719842175084486779219203048590957663981623009787706277110144092707362825260692539776889485868338265439052808357472966900659550963698817818869259618034469641303649359771601119188736584831471429354550669236744329081359979202397819931535145347787615287906290034169254639946854542272840901143672282577354526878637740321259677683444945645111126413697581132513991563057058082082527573298985493088824016272541940846185599323357193491169945880926522226008133986362472437752561428546680768626962281447518160553780413513233032280693296811368444882802611440344937145394613103743490559947867287713604505711712635506336369017259890333615645700251279289730428228846574001538088457201408701204766632568070095143913984167956867834042276633728306046713988723305736792488262802903762960941028962031159571293033719449279133933017168162017245182456094986176236297703124809125717981852857757282935361579703310501384093572917242020429256471569237808366708717716328876110754794854731883004613320297480065280316539042935615816222518233726164206567476808044166574077954019789794854708890068437487259528628562057279420047199125027744610524617456121988942361690433839300285675524730975248362946678414050232583068261108058502682553291402423471553194617386973858419400765268832113781767574998319140631268772728614423090951208739807571465073699648647543768504610787182995866078102068298289764933413003974358181870624454808764640139303792320908048233566588161336649434849463650841029180068718845576684935879503966136777173034286339841848442243871741317032135656865898692886669159092427303919490988251613930019976770089551120833977096175405566688929157408055382331532160063691600886703693513296293597668138328811475475059154484397382579480326102200773424085559930816512347602195844195495806605242666286440223147951102053008584318172078066611669266275356983787812827220848680467288072764491460924638040963067871604198009018821532046775287043104192580823529934566417077673178381753964475602339533259499240850834294341273746048260394512734133012199450896784705584140567218500964186520885414547183098557843721800243989955036731511154040748619372295631838741817503800686266577987041605657284995056061685817721415924574764173975073872973770324129079079316843166799304412116906535940192508007784975486120147286925807296000787926477463555754579939896511227134186747246413520512653485512063369831806764076543886672475841105064720165452666520504526477538616404036178056366016693392674797884353456274934400627301208012035567938837330847469509756067003263167103825839034539273992933700052973987884306120545905776101629769970349822142144911499585175230816836606904299557925657524735358481411810947357877877829636514240521357994669438387154927320931708881077119553480118503148161592053202028726456470698814059286055641611055654923712739072158017008286032118905919757565651183168278091081267876246559469852084494252657677971912202029555726629234793702215153140713079868469245398979904310295349644958840913164878005723009709968442968441347048783012083083604479224892733138190838061983918518905861335324138452375138780430805701870232302468170307497708486627035696875202641592813241043928807021761684970011201933750609258875601845345476856309828486046612170250554427351203329550746455387990689843082564520452854797528013827105916845367618689730992134179715103980756072329695234645892413193594701638645850980190821403953190843931224230475131496223100636339193400642573750614830897397091510673619443965430844411107115160032973963215345921229379781954077794150133115809163073162443021026804414642630115961277696812442795004139640404836434580747885718614980395856965365123640789319453161422638280304945662434844817567991299819062747568649093410868261470038103936967298745693237278158654592568597059376263952478917356827807930377252896155488831861453489836065735444238496646150619795109180894801203797688195941071314155526923212713991241622723414699367941050246164851270645967297248945626591589252063844792158700071837165163798598941939489523325234768387861420046251882036465813057869744343289977854795277073613424738367931383942909879341832293687962081584582649162207320250783679155399323408853545301583287531467854498555256407696664872063460150476422787636212151474401437276606845879980866566125973505866708507363485671494666819984350360480305337008553259300194188154120383914669624799718639898397008085535395623068821251719634631420690403652229732967726873203562844351677110590075654504059768489391506912461175277122920880430232648958115569309057445772037921004244333773210926432245111933823398326912080273308152385028297948675893123201026538037842620470136483673132646834277852304531497787085605099493147248224967363324227115749500794727077518800797792015663079768163874556968707308879344938755550620124457608580975519027553643130273820990585865299553860718726117365408025674807353898865341859250949399105133689216291244380291869302056470864335734817279285043601916057636416974206926848451216852779864571241320538040729373415770830847828299438828256079738226820457978246160079428599829672853536226530907629440755177739108981130571797757530784486867383769967760227217516870904236476540481931821639768504279358200872055844273711284463611871243898996541958951903599097311459307993410757712982718629012208749821780833581282884409866875944884409469731260702297446263599496186058242489906259588553647181884088046109690364066571621951424710220910761423760548395513220801677804245435393317492427677967169442982582920445645624297854327255135770821000789390081595654360463128765109946027328853673957427591796442119156210719034970748194794503656350803338167389555037771239052458272643881290012210326553577152585214994738034848746604922127742073853634877522068781492759917531042549867627489012073640914584656686810465114900711780501224242230154567845098489397629512692363893417967529428515962216839884991106414234606389043148424787522021732133504493561845066286963047656172401395656693764902214718143480473344792503062286064112028034090574912676132491135908554971321842678758851901245331217846462946661981154292598143147844869449555497306117163158205018667347402586657491961776542368344499410510097164120609032436293191546680567824236945330708480254790803943669887325185795856675332470891371499508388322885248350339670032947050124793821158829835080192698682181901614597854953856720147853558714493838051528011445663469034826953486409116577660420958149738769202306801128465364281221477647949571566633220901208434089361992801643901435121012139240545609155719374149961446684489138817145300470604719608574380453921883127738301700844409193130294281916071001936633029365307131738002625384320456423372402780674903209441829394125776654507404878271956730728738230885514779527324815488935515933673387114103580346173683784116234536028735194033360697331028690279535775715509778003713839997688019392710821927329375392250486504442157266804320499122348574998934247137508467957115680387535582479746448357032590099333958347312890903486195384901933755455450577221030110701384218675063607383650835784405774360925682551002533101303261299389515230317690180260795890421535497040598582531553936958615995421385378491597991867418059386018810519133381164923544012260121771348323651157423111296584646488454922787090839917370125989289675582934529298900212028106055736246745601488643695781295714537247998857844545409051073712061286071284845959563419823138420346192761026956461319543202388075072373892252141608963877086749483758946364596702208962633893293965841663734393975857236926905885601646972173897241555428782293879603051373540993251833193619504361339634509033850080920844337566196829870497671922683871498560103356954836355849636369947944223167625214575305057015786984391463573301102338867749710778448781690976171291938903832258065744477042896215456917522147097498338824803767891097186940424973541054695293713298803162666183464037555886124639453704781000940955989555696023832603822602608466674477350614016874100234621013416349916672932102746209288853672096601920687875355323904250447998318010408791659223858646320303340721018696654356208756446875080525745741684080385709288188766723195921954441943016499739336045992593505650572415782083297127736557524625434164069554659410047181506570869212668256505135444118963386001790559524367741968274086999778352557734914243205038931386598283037350246305785060761181729065493442225385558136170668784665457245878953289195819748182551038571694763036805716895287395632281626815961959393252724207293941794057873059776185794353506154770011635000364708886162608451145962723894533188638569219036894490796273914397292817382185088897483787864559124299374194098817315122766587503008808982633197963923124839393466458775018049345120230352812959595354945157384891439635715903581097275934466921388672430169569520215622452138491950817807586553827293333252533339989248504442587914147306579161293904253890696570095753715039028156979826006006101968899603792572210557745102577747833066074739928506307024885372532806688455556956649688254628841849840369982595154969317094743544860310943008264234296842563849863676132582531460855327386775506675373891640228538786493429751135263587729096940870206634691644774308018270828744021093849589619502221337692555917172742649593798332868166524193742094368786058073214035450245389477963095176841954044449458038520138574421668098517888797661290797828339856880980913766776561873382712193111752444380615848927462130044943148957808760553684353395435391600816702112648934999760638335535505886736220257335497340626865348496029270068263280429588283676099922027201616709812800003029927444054275460839105381833749650650300600540663546504346566725136522809824783089795795318892690956605055299922348233685001650865281612016689571281606634464636274741497664962878118726668052101701923698015685293562434770502831426703777510483075626243937801809219361808292929643184923878310134224643514392172884859080434489003808232738592275106615952680384647924083338006742953736519599671192417729857042335789166405461369492487891410238192636789451224891243694573290034253420374472528451218063862356366345794026358778761190756655243365353663269915461089686578702373201274163530714908104090565247461061607430964954865335681211669493872592755552937910784765716511303424301999230889152836365134530172086356168493915111891458749257499001370275506367559224640250683657600438353784559577250873924672211869575218712505454786222401375941432651805159962579183413464992621674438708257644823326503351265095127624496292897206510199070947932472929132653215920953242926862553511092870587051782087744176607458919275753426545767193273397659889763772446598904941796992694273071846842428925785968202749038130320640303859094500927141338133018441928359805720389900838405640121164904573785843283274765046376397177389022170488889169870297009599551355000886362313402184285585361036333616787359342097731550236330592700315332104184509263233995368334095953198453025216424423841038161499825276069715822713247769129332966120042465862445176103473378561976802995548525604222545235411015545192818713793819074841607851007177053598660626843214951672829312413239917486427811172969694296720977673420960096666229959082686726283363763239716856355229091767337909040394063214884170099686071676269747610545451879633414882624542199947503391956583888283346662268949987607420229853306291865292998562664165967893294096141617092696066048413232025723868545802529589493625902404783381239148762084239253062518525566847932978528236357664240319914012143449877411489507383475512834820310730493785140295183304473733372846236178543229334280175913908555052294422897982519309328126546814825513131925433097676407322965645654443698047547588039739793676207935136188226100841431550367907322278470814694889706450925754504923946255759526934864931718470814480097148801012059894049013626245468797541917608852159325455764334603374307835953805643033823042696208902615583541005485449991759314708598980396850620736145503665608571554902216209100437884737237309357057112650728913197981404017167179910921996530103144806649495172209096361886233698443329650954992339848936892122105437544297874799226768593354442196090850004667158202240289426784411371223657543190232203767289291250807417394346437586268401987398059479656166107934176651954368584854261516023073611394790835356979336482320208133949151096063439686740411956045004208519166933039259131566681022192302788889076239956847333039186170488982449231019772339727798710062212623414073649961678369830959514778216741773088915818681903891938402438657446294577538899367241974676623295264420101438680731136372215634094757858981862816521950334700309424874669639559819794330039052713926921550018950927468104211610121140356912804318774200437177448966929996679395333679631198367323456367775147502309277214887736102192410462392944738190872487986735065667925179674730600352992447527453830978672307343103274022856248186090858983428357844928240438195107154155249220350253841738791078281123634827715418454770890506785872661842082514119816007766983553780904726937257255087322770763671775368334635499187901424055299119932822555367114507987924937941459233971839201018388884457224255868732906669620891763628548554385915722972588374176953739587453158415259285212145916023572496475692051561724127951428609850281352202729707181150582870100307087340992362045092663734703840196067528997996208833450615941254400518662258661493565895869861851846955550775093553788848765301200960141615159634468742267164955987985834098973733538945231617910427254726546973949748328324329124358242927113292660122318649928081635673698789300936721116821858611154399838768210553803614502297830272308014739612286042890201437431177043672915533931965042095504364089540908226159990453275856604001411691164183711244079076234631643381424026829234814537533317471789512307617453587453131771612395006447771191382729365500227311571639798717756580291335985058979916402858154207790622066858871632335217645171224039981400109705686415503193263193710205451767915804033822246146682422771036032102215022502283997539664457530855062183481746300733683856027319140978437814660602701494095060478834939552098713079276067119719366069428725400802792217021093586906334795607942613163696587060191187480063809289601330057640646217031588312850395062133589346224044596096187451117671694340608016176057723750224179888521324403466367962292581189822974364644604283772683027872395396029759240117287890546559378647693461396718400511461066051847233144648407017326879386631241879227854152858169596544063691004763225292993040808598777041128000260501934657254059021406967100861864771586062858071781144541333151459552784489357137367188166435042764972980610174214807193094683748605405324000968923113355320995960946877071707591447934154976381983159655855045202571184489532992744788966046196660981755510223470327060119065442555162827730107209671322458400747971128108875495027423945148349963921939065036315935926866673269406512417266235644269694681408420391201202584189613731917048520255454995213939370096470245795172221775519846030140303931420809319598559383798099214927697755634701441998522506131255192579484431700643055861612101098014413790462319372746875227635464407857488735340102157765485899350937033582613870819655706980661002729752328812761739520184235777409660395213975266749487756256860638546673154767541655192159926750427302192242895665303405629320745027978047382663525355672473055840243966198727672634284842118532187487045307819812646851147449261665624200389968219501432529174697291874497356267652598453167460916691383621822584643816457558463994442872346294541724353359058848817362034980170056482049473323077741645943572457246327247140377544405490954282603056544537253422731522107791632706450756656075527902217795881870833763598529808501522667809612766770429209085849961244329605802611596755237742820506613560115854823104387742813966942254283517464790151384274605769160861416119905493788719012875292551751415349182796995202556495143588021867071116706804851549676851320422576844597232092605209435663394723271048664861161334001682228673691113886052637001641664560252273350399647572807217162286719725290912877245557246774716406707992938803585075187180268809918471823531191479307477162446580342961580731700454886873339418467687179047382821310061813681357209442252124356406071905588408779932392571097596274342504442899780195690133365307145310862468692658549467407378865480714357775143748189771624401958291127625467816955209831394487439544410123963403654177815222631124100222916880469141342291492871739213661011811596014344535926189751982495272253932256115434773664363571424737510026083915060460729623614661353111367245728193085483538651626125884219092146282565386437181705401253895146872399492222253734663594245301493875948978659961325590972291569768298180792247333110711253116736726716241236420856397050612945145168074926114779146565665216517871760994652090304404994108952425547498017447097447398914975760108229384679000580898435306166875318810674706207740762426831096396041927615144695242327771574532704636272705008989133274487293402107390903206609618892794074653132387995316541150838145084041419554011051602118363058245323775167480201834378926109826079051586640131960542966541045942863034232624221206140876663260928161840740316856412436292870184914893009486891948925906898628197533230783984864870606696692178024842292629344921971216101781501370547551216753584521288398550157088939972518266822615109680166184355626464533649476966418386415239822074134850930962750818301698272634124010632147637007451418416262736554445055822127355004005008248905468956761512315871775690178380432938022740773327312677176420329362602733507327849746343970871625200138726242335086258347345163826100983926935129805379575913591285015134264751872797004561422088781796577185766481298059673108299327236095009419586764535064943163619240627576187084726664533408305436213401274224386329163665564508941611101406426804994251771235404267963497739153275132539876151641858709699379476980595950342794887305347167964054855898619142618205277818221321629949996094398038549129340879838197099492416398428243524004959651223873877309781262273250134053500547591905740734630636994898538276142200457454263286265218219485864707196641391052443080736679552512737676226979289629570142299068459877271921998808200645152228505044006830499794552579554288208861730454891503121659251651844547096291274447654869916938791199697143726555397555176815552209764091756820469667205078239724122258586998073208385855790383701931769204968067542108625164992399204458888848228749268517640817189689670196015654856923096869295198277120388392654295046917236815131736109516647745324676749903427260268277824698170650643768417350421282332062591165443764650606499934961764193041689235843557849611177426283300478202599635279368373592711366863757742953605698901573557041173095776365242403449063861705552750853665160886946787005412232176753502278125980975178561716224613472690410283565424777846225611862815223178848796024119084337495336270214528918661190599226876606603804755996091600964414876429214268314612912837940359311728499487930482848307483002886433765750587357936024886361448277885488451751548615395717235010871687648844340415320280993995116567488220670409636525724563703472190115360241477791130963927257458734734042804823372201452099910261623620878552958269986543959084060116997441133402874019273297725554696250729839181993641990897063809289297544452173983444736298072753296101932817884752622586087808613116118171868566947925647415152576321515179895153883506915758180921491440993432621581531542478717488021377707738421401567181626762725843727869473235113476436764745151692495094672910050680548151695585876415984483454142033994294992195153384944715514919359954320056355426457764767998770575404675432524415660782336935666426751180347930206184946719542937346099619381569567858077493204074100618196217281923921191919822231007103443941020965474780196173149934062603595190068460737765441154753834276239802728165299485997822445209165200005115806852860865542592538745585925086037844221054895925503673646621248800032647858776817870083659788811673194556626588654923040377782299815060695996980189933968137939484445020510234556787145447885371679788575262548050612755097806111958290437907715831835433024256002059251383585669878054751897153703256201234486689690815649095290024774960814738037469750958660088806887221723878424497431256810179779769118088806327535366342136006632170877483053984083738782422598887577010683868782199888734707376725390902123404910891027535667014497622100856205055281229857124455237433258906466012376057246892425395875051498313440672147886986988765569504633781495331335459692852291103451434221021430804597653604632651607113399223965891162505319625004595357221738883583872237890097662580891582700470157301753915412156298731824744479955293118002752954950099906754651854448446610449963897360034693469117197262315051319488408380762392161869518306906425644832999282415763407001853633358685069959444884488062039000614382566475416227794081889867779735446284846850621975632611747946934004158065711139998129994430779725881116108032996559971537434072049117887738735214304422536578427266465052951611933207351357182907975193890024187828888130404710975194718208206994287536940124866979819575149874205858606980765246067960503695284596092288042533523829194709106368652121931344856526443763548937630158960557789951307528968627851623499421027688257923983382779378858032388055961476954936704841811923088448003898195943284235410246533807330250137997857867788992971093890251019270386425441936755588885193472493168005712777479298052702586516099305590940396444038795620717424466443173613909902070229752788878065952806826554154362987295033934459595782866365707398494962454463680948530476168423813123071496937708605726778841421889353681921441580714985044666623319511276999124587274706250111705276780932203008918937115086642614275110472533724873174999802535495834279991850367544386509678295447652993583280523768338119153132682773715297713072865737472469818009299651233286491700523528004316702897370953586849233436399869688401006922953368146639820880151322934161612842275199100549558047988505866008624028707162894278292652064854904730836453880777647146779073582223603956310653391740494308713220512854878880739902874054585793414689076052401414328069311019865403801402733461316229355335534559079764258045649984879408979687065708451109813178369262493233010528400396680320155867766654123868134933454561855015413363891742164972506335260505017146164112060422899552397646057696792360338646549488545262340843122664482496578180418360953730521142107682933546495537441422849138605704183557336395716137756102171461226425187333435339149630339255755666458762646424137470881847280474481468222927363493423134719655702418297181753661623113510413711817961340638925509116078639306582379272807981060373560936678955445733229358851846398069711595063499994814776221740197990502852209822362239262221934141310139478308813279120601435100787335897459147428881407042616926989238667422570134495253291647741636479523775202820185393690917730069412149445608466554873474637697670200986802755902155407821526854448266108781790095675192891938059325459876095356433169050165413949654121654549577926163815348121298587669930871746530850464589050591924655753731532782622192525873811936106752869718298341639659412959389181170386324021029471566704386453262107400162591941642226303048992256449094346979982544932277689846655422493607982778804946099871874673768672865061080830700418121924698047896182283281332202447405436904300057617631760389547984402976288044061421694475515843532521330859177541174082483916363753906604666654390254640339788878759935988218972671642168226642136051148133950965629599894345873311339813207964847053223899612515780039408750119206206475182129951676600741935187009975544864374881526831277452371289529143200282360240352126866718596510633175698778083431930769058443090528266317610812928471075450624705537248860416383163602540492940473710645685596218620130603722491942686023190116424222240507514652594069912647911615376934173204959895602561100582501575451399793714043767191685202559243089621557525597372474774542186419919743406079023398836609589637843856596132933450212290045600574467456831355823381484308223841470260819057215723889309140681077003823600537367884512753649957299550211269289490957973014185975261892444869278413310841654928829887062262847085641882405976911338991487135510854689501065743593146525802520735672153486066003166398515456600857237155452160532548922618364239338587173406372043716752321301874261382285549225687531741287108590886962663879499529706100173510365082126956628180773721398288530822622777757326271531763262403091175320787548278729393518037198616023096278402028784758732307804775078735680449349138726398161583682433610794576099827535951506130041945681671800688359909195369919287546761096939337793713040068084587411530369278295061353723101331693585698868940817897962339312578696097278423497199390229342616776943054957829755383389236158027286973893363576477482211059679592985349622643111204088875701793098300468001024113310434850378133796527462102175371299388295447707010952308410395774382821412807152848837550061638826642614820134675136102216641113946515489492744621586382992919183847329168580410220605561529174886527164257179064275414921860339492774431345624829536620578877593843141595500290835889145368512414315872465289264791783782348258012626597428161225743513149577261323815147559736586639794657513955862430112009881712485728662212008770378917311687697452855953263702426851405683548652789422645267664377322213477593558823950339967880008007580434763167785658140916854163733443550949130883449430250146278872085039078576120243215394199030378454112529200558936488887199081905916775023254680657016807012352029742768752199175177556085665167894689871992983076340017926627365958017905000162379254856226869499952469726452133407185314615383509990625622447382396627917993517770999931035866380513246795284937268079559784174396562190600896692491756758374884163237268912330444587259310246713724179431643185698902282203378102965622837642378981228699219583561987482208641909529820191529170221585840311368926870897676191774969205804697000334579040818378537093778835024380027177205898549435173512228104104513354017804360436111586908796109757454269053323321863346591519942010698389281409587627072813812296687625447240921425204806825829915242567319852661830845304470625564996825164573905970470613482326176036106816694955669693596349328453063812314980303729891558943782897968521346272288846766732818702404792909891820556464846720424907540013958589110267068691650227121236392438777763543472044804126686769475778489637805554655094347798225708234208684011517922428519003125996703623749849661449992369231470009453437847943487750426660148812697984370163756247990540615027568488222500649360355275420002362220123022931989327407803403913976832880233164436119454250728901209392290857027732008214205428131756041653843809054354360608251783088550894573636064990184682907614354941017092865618335263827936910831822225289142833966961110230001692836258176799090194418297052932504225909795710151452910000490536114985867327502842083109030290202111010489687040310334632518961256355852286834427764648718032965768579101172824752984058322294385763435561101542525607087397635795544726475554179306529385176321204488625181215409130524950683306950973829978372962585416284629863205194188798112391950054939079903060819179620489716749662228814322421741341240969687747101874782863976863006260253650399166471814236308730149846288899805736099773418793256948828729065305814353952144814005450902910532667378881835231604781475186497191315862655781221019391616922861774453868601337913984458108259829484687701073210450721871134763194482010986036190565694367632788676725966867823660693718587895151876485139684257783528722117018957085971422521977552658235309262196218568365050631641813019943617796870862430376966067980385385672926523516941416991796253340455611933765542011325274901033596983873881414358075394458942356100979094562647620986935181008432547568913603119203993845843648765949570728101866544876615968423939048686982475577699073059479972331831606359652161835484600465550530335986034281596979758312816625167982181871991991359619888673846449621404168442705612471677128953151410931323799373331567826248530308933936078920470736874229680205431284229370965839357866134793672198863335245837730660989139254434315249523205839348808089257210561111041352849527723493180205438422036752256774076113440890992773951632217448993755674696735988343430912199950678985666340659457543245353386399968637308353740301267727552101437492062226670794884764319969353472826009610286940159676215125314840139326618573835855169312480732978416719892318332959273314247626360761557242717444552591995891383827555998749379915197785455058590475472360074182243616094902755731920700060916946244558819538921104859979162808504317682541606017780684093702492298331793867290380003140909166321175652835718684275946799628160702703117816209029763084524229454750217596797523700333795527451723889169556342623714918990938137228043284490858748525242147966403843060439997960144227114368752069881505396635553978410030505864649271836060099867910460215214063563817922935807341211874787331192342208019361596249003230297509777189164853263403273040045440714730261923182423429930328529943823223535724800212481459692931859833106511909266378580528033231139721323136193372992254746997953685042321612605129961236817742050050541070757195649973655641081656402462530016551401080099392270540020275327035203067559539138876137882034779432561613362445740948038854827700599929129737939178795963324401062439398259859294366022154706771300763744325915725749373836724548749770439513277238212065270155387858673005524188021077199800258092757472242240761914221193089832813369301768180159621487946585494299424181314697805091681762694495574948702672368629089889636415008738713101173874949045447761487049567937567450813037475301414695911950483438446216773832329382676890388208984948787782133205345083082338736763218383853488343294522398444585200532761823413786985034374904362010934857049557840977024795209422924086308499742546268525089192259374536606138347542363512519589395821541339362526316347823908706064088401562270578983783447893472630609087553322288303019671245864046345500645279614112433899909500807433895924467877993288877227015773790491609467045362732246204869470378742060621212304840557267982841616123954852757378296618827427686359402803257232719449543653882083217801555275433374361581500904670742252978989074827127539098132454613836441530868807595274382567364022501402796048223268813536815165587064791099367900091463029565802054815110120488437358560123880601363748868885061186943037137288240941719316065594895885066385216960657361797026451447382491500474499412001811282824304293103715073637230347911672914152302829299841681272290433772219615028768540731208129745812537968912621440500873892024152605686103699841570451797999200883107418417080643653229863412092716567950855518054805889215073448208720527161738616049610975068504028741145577131413422944880470597470736301927342927941077576236004966734573716299321610309107551378479069373739281959384694315026323200509298871884997917302450838819754818046255653596548431477152599971856712818520622401075750683239089785374521161470412758997624544776197125393315847720170068293325516514968584508412124233944232498939838990359748558324135444817912637864020530139746701897162665762322887495426309130828245078695691173833000639902720343407426520435551308404626966006049852510959647853301139707245125080096020575436310438938104565975443865709979897049775030506026737351271075676081216836210910827779330900525346694569258374678214246892193901405011990624114788646978044690212001988052833088743503525122217957713495584526284545516485533258471458269951212367457768511251012615935532868520163634442209907117390957613090443978465377923008414349510130796320282049967287105729181304154867143663234879963738422676912664356240403092769310491545952998570573842063551940834838882241703677947508440581214833597333597033348932426329680533499054683925310991767810464651993353083974033201029546303559475778331515316128833669689682341423754594094033728709294616863712508695630680133079282326320894036205517977223370477414324314876009372129964975379125192524739658222775113060871020092297893684092587972344836336075325883718652219216209653721867824496964077226195106914711301554707403352110727693177399988970126059082465297937767439101712378645271135417163284081794573534015970584439385334246338167148536868913136261603971912560355955198905471825001058585217205090204303836998988564038404012790171184416066640007299743338578451319210077867549516188672550424529058941961102165134487237937706405169058597402600423246369201468774782439757958413097184464483050400240558135684454041130288375801465358407612561776858001776039564521838898538246568392993603666881183241726218574240397623747123883779833756876708209712242808355645743192834165485330725607873577471997995174094486499817087988672353963309449164720854407431392933022047118537039140456837036973444530259202344505917408858832933088276767709163245564496870417914149244339958251180130602373560106418353664435408837546100378779051611392651456322297699725594688899346497261787309245001742270266967328562005681630060417570009689406573835333228661251185862932374725374164008765826057789034446675692293947090038978915355332030740679424898521147806450823779774147993940014540785196429147446464839932879623515344477354487469409741084724200871023227169478953450322531132353531486995289266644616496970268098044460455392395595364263589346926119101952468224887024136155567859866949921864915332448774704338313823289503949778054324167805090181400562287299530882532481420454606301437541982775599778501708763159614333972648352572302119155530374387984697998699668228489166433807416174578924154629939534689050006634754090246525416380234316931326135947647218078134804671420657461167270537353749660337714595298995979144459512961689786131780956908391102899658498827939626181598379523130880713752389690785553777331397600711036514224048544629645446395439414265290265465901366227541446121317490745405980210930747985050417601696733250463804934612075589335096891015557113762578355917787636641785439722555166081812715819695971053932125773088825862840604016665996948490761165762440272640432380997812133647882020869980906135524676019201078717302160404311359105439564862572062646192926029779130990449173443776867861779311764738005046832790152352878569202848449405241710047993443923496153610834156177658713098636044498354588941361465754872431172486951901061507042722372235826202435930791509921229197027271235961623049606491154004031153257962469212331710221476046126416167499355090686964372134704404137346491697866776351386300223243917548980533655360680757556098272120057434975135151853621840076632331199603613176284591876867785013042736641563371247006982845042649393149846644392441983934527243409918765422030538691866831748874341688968440527514259281938546093958061939871262616601135769277416611822860132168380853414185508937326125733601027910965704431558782822478877366833348392212127008074645951379157728796350247118354395223629924283744514404914679369285660664737769144141725996123336205720738744016922612003312019037416150875263777961227234511978813048234283322093489690620660002355235930955045978691282427709726871082699432676483100697018853819234219640434320825819576791685607074566894938683225533906430150307712927046748682674120887851973532478010606036653539109142580652004499097926683204898124961589877010009042459358376836497629211246252351821052459162209921836381079505508950664986595491367591761290349870238188722505143032138517519171121220350063968137578582659797359043422649192263981415511086232689238130674381686640831294019052072442929974201677355568699836109720679129776972613435220487347402829718449490900124533681468967875057259912379957066373610973312573110007634552167774329150845360180625673222156394228728314223244940467577699972779588839951162587349016115108104937529845762645050494677185159128233022509128288445892480405499596884109722688769166566458775129557908636736442049418482235603006604345399074994321008521784171624686703817133853268081579274620994380462638265197846755511551168856590882267079851683971611359003134875914850765237362118152653672354740617130443352604459508386497219586550624429769123270835386560623479551468416186209393864609061075463242791865922646974007389580163477374607996108503668795177797408102531342019650928869997591328909640915052818593265272292580686817961470391043044875575600537327626178851847620406125282892136104489419547019281025427050015472343352820996989896922801316354274187750074959627483738890339282754545754295085424849348565263140303280761877245426172850058440987651316214932930887216181499018041151858079942164868258986874296667554436888662272628597445959987942965684017843715240751581046905754735602296063148184129435222565348688727848835694517695565507575787996037711748045120653408067587676547779933948310765211278916156359198819928828723653479610795265428527762264480282491899150508371776293053045174008380834798841320894631866502879996913778298210511289519933290130749945587477179802541459374001857680293193547401152986460907375261506074742063367206751676514784177746657856322826080088299825708288692875707231169363424085982467158812590085989182838622161000549933813565594692666796104165771980688697236774673678333986106312250864652436901201384248400341180866253785662791302288103674663671631482133736795138185417998624571792441442290432778698707333978836481538441911082520083662363678698157711322063321535567743711749353409727455405078978961765491648699005078582482735593681628074752511233520524600331897722307450256048763517261231595435544994609116250026775067354916616194389370208012592992911307915989751843338182317121014398335763867589180230773560324148485209375615312024878407950734485419577630139144225256808979083847079901811582373900398272427434157439298668587714383768968886159041553550766594918032763381456860428539824881338965242417979095896488747309393091627343726802840405019014226451258684127434217462786987800441016076796541245438432610934935912393183377093769768286016420694636874990429026855800961826521196532447189627027791174579036628686365673296385742098990944359614286720451231764846821482198246591372987300250341172948865321367883312353546753472379124457011678009049057793273812594291156627280090702026338921184797470915546096320251952377009235094552540317705306573780966804411596013441237059026561867399440540375664862229856208202442905930001364680504168427029082351355233890998580420692059977610976349465267903337198619058623436718983318931572793876308703931473676672669985807722054189185111967605406935762545627784770235466769901191924693568355432076272000040554623533659337220304876666626315759875222728790545480726425566397282771254646134148607398425718565887400491059223873749001122699287355090203209861168637704164634207566038275262970929812989732889826547455527079014153710360637893737989687291310077921476717974292531043727590048620153487551511249144717861881322626992482666800537903796626245280220145227191038718920167626501313943123554834156794178195516503049821336370251870951729823109519853982036588320005130089229362664167529752426476920348246217254566405220242434218946146540582017547752895611560656432518111438770557527870076529701245764929720161512326725876420872660112912569693271566279788153266204368625054390310411076647650911528316255687052978213902103615620807048261682155547105738724529237749054939010347817967403584283321610194185252228704006048671593748392313095489163639030125179268308165634924058551647380033128385401014528658391851683941108593479301985613381754183159509150718764552268943449818991602504266350817453074631069194380840852073941980021538601413368347866509950173760390997313187536362249202439941984961039020220894187432339502643738980607568954239149097010354817431572672656416583464963303538475854097585966095113151411658330378866102652797931682673956588364596062589821372206819447553064539579784663085720760223904731683604715000536187645045666546329770614692506835840712635681962348578199188140418298220363324558984770138411421044702843277976642242266353516122689231488956426044078470731227633893444194854482483706655165294449278904490487597043108285198221772796972314838188712601224397496494984937701117263704939342683036482559192337848638046914303371653081499406434676381662505563728132304062606894919733486485187317258298254224159431918242874715036659090064362731487581816425448596012320354444394145521033504680814805596328885798469404141619640230886071711584797204525891751484635860936737930320942200832476431792542433313584858771723568765932719210771774769377125091252128939732508236441120630396217801510302120980030511877594674284834214154898145124688494253488445318567778453620315458366238881501460248071600836641468595799070995154911528789326376889035367667930720481647044706867753763386953531994045692415302414970253754023885616121724120229253189410960580669575100927338239572564248622430961301514699702132856392078144871110330286521100526654256877931238493405272161248237008706549040676321334520443885098266953840931285653496161168737146230539072452337990748646037866479232415239404123704952734240724422967126115801625682120179230534513820120630583725341167396257245389522163064097796134337482818027277265562511381872647314305209376893889491283344449134113336022541616347146654582914745723061873728868851717473093485983563312850673320579665790557891973031643994517795906349147793151623245314310316926499023017880262133202038039139842483312723318517974731578380118777252128658036592696017540600097744909729876019324103907810340313396725699115461591372127630438242448607960539371539268926304503591890203049740268149990583977506738371184038451578818728062323755385970512506517161236152968794727785802707665173709485687537249768084895937065818883230393694063291549827784003752860601321278550290188060755254643482230410854131603438623248634084462876652580566769339557820221912072518165199682873751794088833225728834681402562589682159967416166355879012032346322325632264247620112255873929701606044003473007938967544128441336646661377482165596443428291961017445974534187278409768743098053240193105484181277626856444490215131574600998717810345097312603350221451268573611762550945628120055153752315917116091009103869351068602895441543203300489889832477951979071361380744562786589362587123656552594409143957877359796311999910296626183186435366958696180700730244897271509893245218365567408431740983029144100856018459157943520452079609100112243093699994470667063961544709472984116174211175348697554880565401694672098634287146762099023742610644722567471149030706249022057490500341057940112409887985237238449567018129385217317909163359893174570142577300115612620134915243228853947927823128647702942745077440779738245044731588430238149719643790200292974531496702144563287980808223520771810524643516551804119495064794036827813449581906707948527608273044771139884610796574111198831950025275257118961031766795206340932786905271092792532686453330924182491016239018368481661174045097601471420867027366088863665056242327539618676570220550447339337662861261162022488713068344945019084818283495752133856811095873075735456050350897132217228974575857758056730713662920698989895055464740606560343866078364174787974288310535254505119017807457578542981013599042805114482239269114463300193438302473509059486169241394279025663025676750968928266538849540189481093359215158777656592024914617516526352321903814425025007709521671875716165768489314490280589958301404367786585790820089899250208083660440965626238683542522062495409496588081564147541152261781890298913980419829235526923331997498489322604037171270280962364445002097451441130391248300144303795348201871595534718529367276963124825966990703437330717285734889037253006282371644407765682433315822225758608523367706010276975501211586899656369683341903263305624103601777904527521555105863382524801121980416303196403536852474641738169007767615751247048206593410104071657098055144863026782014296434630465517405562138570412595278717951309833613735365585858498783218445421723152272867375320104997988941107661411164967647705191426629443841835216083326160032092332080609553522361461304064206181683082352775580368315653667928490008842235686624969256119322860072109406937390695999069842872242324822742592798312947861588235486106406476047243488615468445328659050824473161096754367355972026570532632710056357602399155013291731003154826146648672748800814933493066884438993054594979520534321275107826975611981891525268469496084192218620827876512213402343051447817866840346432853971185624569480710638560615463199117587602005614585648192025184229303974958363406357905369478393218187047868680206006567908882253412352099885535789076744274257888606482831265365405126358163097327377967246854719084389590330559100048185254737755488997506201310864430075475682309266140381662972274541980401575816323643949623900290280957348631165562081061547204032650720530090745647207216686591372841432448985095250717428881886629355739309511043998174908908704574017092814110458916946871214587072865760249048131338731627503485200023545138489513884542735782308393775146501899519265049917873937894140998282550729373452199787758531169815705841040118134186503332760398419042156964103051174213281456142521961814962775190138659613967067564742341383761818033788290574915188461010126673806596917199446891466334416007551616787850845984743484931522731471167406231543982438554026309686565109899263209777449297012571211458079487775388832056921634559879511649379369027807342943100963355108009843167982073764540954560274885913403577955728543074983217400302019734947925780873957106277398482239929210533415710963660539119427747761459116342345452862442762195019474389100336495653247473554586584181439355627151392509597131744061087159118288767267162292683034243980337912246907652513863695239522904002250994995240839672862132410868342396650404407465208250382301519097800540983963587296232211232719340041554940019542541821037026564809093094159026458805657103538384742739307280395727339870322312178437036652198199767801695749698666225639894486568955579721436757684332577158715014421658688510867143921966495317831731534120798949352588645343929714769412238062246676599293574416415526095893509709858122451406524431862998672492585873184741330783084986035746252636662634952658701295343196763043256753026395538426033059149205805700832713833731692893114292142674292193998786359260599698384420305880931454816347602062481442540192077601597088478617084675826297396245068303182343177606333729217990609614841255541675999284017164069736715969579807188572862508586172183347523239463931637546485118467732772472825576727295430448945855352019319174042422925790410659780019898682312822579116747687449326814636900375426877398340325506702515457103684597777480328244811354815657155441842775716803739332039752558496831941975623904109967477050010599856398516642952656527738587506747226104248414166076171079606387970240538137959646580422853892875550314530467457788066826403917585426295865338449522483071715588485137797850059373266137313274160003005384777650656909695879417159754195221038935061767477308555880377060072672712069877820921674164831305251119569882622019612941553548304205694235545087891685689706112009748527828638746064958226388505754231584117630940937371310874992480041356143222206552508439337504335288603509971575552322740290552362288550423457241081364085139947465503387850668769286297474021208832554294241212394320076444729428992041273356534364687496333882780597888598711440850018375418898597899764575775497605366227346800067830852138257682570266299048584874046490037401634813811034877773754433594818029971295639820154524659539655587518821192644607465595177350495027032755569591568063320148074816863173687952972730152007426659559416031867035809874383502215380424378575295449159808423246171665058997718299282854702786931088224414806009085635368649531169975841303997935194143728333163606842219777271330445881997226975343886877795284912731477442632647568454861263434183569147141744477487493529655615034774240075800937049728366029295946685547653844286074948991013293694483484182389647317276453118579471148063520185792121153829016621196910120293825326875185704959433049457669426027276573734945800916212820822028295770686637169523558639758645529401819237242883414453361897880638830865293747364436132947864180820147332130749397337407715756384647577881062091409312463946847163252636630570332444191708143283597902300309640537687328348075937031945740337535333431045379872121279141258629401626241177107598792222490692036928980899920398273619170118911663470482168068624367228330704290258601912553740534999414200845566044404037290056923081520316075811760052095196941172763254209405627170104654891373408805675067479747057678969232134886008217059492873709090540426423527907183496821409662766666960659404917931105706841289610170518122473269087865975742204791310718976867305796387840249147251611291925538171788108011645993292941710523832677604248787674707728910501212487096187049626933238232643677618909218537343230444183468560368889815832076366713420310383879323037464493669844484542209989405320355420639513387419558859459771386072928359875288054011718870530383114491729209401684333956986663189781972602466344821132947577759620630366658824814727687402054536013677449214129151813708766223608109368653811279277016952965102640173019649958372150485975768708017126999665384580597371381959045375315588283604712165341895792311265842308388723355154663721222292817837590407416303629271847951017544762214728349951502120914206124879406920926396223320812780855846562109237415279641380471646576421737477364371516636857846642504642596954092453685370181564854999640725719621603080032744102111858942898904660249732843767230372778786071969252530199068291347201815928025063913018393562145951312410693823473919280061068454948195582119309808079198725156530593961502586921871772241983372664508816581522735136048660729324576766977049072960010121551476016269080940204045600064589852107070167773184380185636454915153601338361634649965375106701529087301073183092408333728095131441522593014309232779534424079240744509773717563597290085749741975908215881886722452673306384818232296030615839551239927982726762298772388393604750288670559875843060905647836874060587392419880681432760395173461142936538492583899546879818148643881082395739003045005048524475870984435311896459559588414638477260786706050651382158580476953511720877748367411708585590408784204286898015149312738026107282083216834961208294800343741835935792785488234768331017795341839334583134997512580530784129753895907353792716129763851672423780340954777567382295925635081405068668579990319758248380880298530536075569441839430284649198841851325988584963343669665277165192207097524758955570670293582946086269984550820627038870355023922948041230238568407446250882942531940254682554783279055151560270952930759125632542863223533571817490480011860691638879538710715808115652457031775994424822816000022344679084753985331489971679782955430012094301389879706863835414317515420196832292648554489960493466623611408771626572933495282045535938625403005553402619241659525142409913884343601535662290514244853012547712979213018367580887012925591364527841645118372441789555280651499981465490370684808434562381089146753531610512163601808244461076864510706204561543827336500603114235600290846230853548074856041936683157053008099614167215449122444270113683459310225998598578830554031198702844223271506904288103073861196155121398632910712911070705305155110045973447233576391713329817733999636212865233920246504067385631587227409263647383896216278627816417920548271793669039854976204278691226215612326507442933183248441514759448108009988057352191542885973932366640807721072252330192019564391151827637637697357801214214633868424250047093310632266164118960030759282650333143698910529366246806816498035925155117996542230679206586912708229526664440885137876678686538302941698303656845612936993300949518729444183989093807378178045052873235609788395559168239766748827752389088791428796714099968831608125483984515168225255079909522367683908349268441997779649968670305057988578721239681782528038982498280799598728163489472970172074227657342764055234230377801666661466880610280936832894794025686952436056179602593693267923363493663930036394650434926126055737995054278022218084873613879738030822999302235283766986692908460461378462363128299709184982324277285083692532302176935514400990119216081288852457499184462062635119695669338005695037094292382681923229632038750954887171889832119120756970262778611007906071921931310898167852804846026732088253036505266712757722005546176093538581224651855272353300728672688385409260640775136739605347602732754657327954349749836781066163238874894149521969336667248853769072759905287676809051182731036863694227519664366474499810564039278723463517804086063709503015092699845541820737104869297008543642305431698407527933972687444047521107169767119608331323323643857774851651209344267750960149991447021388844891565544397920603453578609389956254550687056442068032012443950092585205850485080639417427273930727452647000114292181997032894226224836087862757299197495121202072724749492792121831902614178723941735925742322572129512838166376170215556466793254533980682357707320788062711446337777125391568626261349629000895659692873262949008873929833190799315583622911729626463937835005093347184992556726050453755032765014021584703055616926466097836877816325755346974777400109065183788389665255318018090977433520006080064601032547921611867748131268869505738264272610199649922455868387228445485805251760738825183607071933980200150856767895912656769823174573327319431527909482690063357571707744870487141231399458162113778003669548471467033067964560851213303998122517834700883967490011101559823553653562293993811247815556590721398791268147667252844543798098707452372712067138256863793527731943906623487798894427700368029966163809743814225731900820906034481104529084058730240027675367161115738848495249526744847401315804492221630359544167368466809402977687690122500721197429360256161358234531764653634390254900809092248453622401515478718263351035849114090376001279690996627944371279126103525903682838537852202808534780647374516112824110390597357165207252858751538390248435908836116154384786990229640935078362444268554956380659617717929292318038207647860220235267487393531251211865617008732203268228525136219649100752497466070873704363741941121187246507997690149938889744544050722092736405385947192979559189089143871112520948167069862991120909650413504409670235688817824892099768067485987100825248291207811675445624343462546527380746030654386091553599859996369009141659630629619064103742823620400548392430603376267515997870435056171511877371891113815972641153940071538775194747276279544851558991368849344424672073452162955658726592903682797126201218820318692174825971323057515429592527004342707631085625847543069918537664310084895543096400011941872820609318225159510765210621299815830380598346058933680873751840501915884302226114368985833742302007508444420132862255252471260882225656244108141160864614313911068836600651100605070068411793097120370158329429094031604269261295362697687706769400609580463274179548159426969626534910355349290004398184783002523034318800828195655422864742892922992451312086549076909261834388136097214333950270289485862429148774901616248336898735161742600779567406728777216034279059215533517513055681846920613995403255339652508375794259340638603618556223320382820416685682148220551713287040113511617512176492054711067233071884622994751425825043732814808043085837390628436920860468540676331173345898404985146016473266301870778463504000653336214330833659243845578285519982449987071193470038224952179328972183241439173568865178559409816723548251503669162490950812182685435313184585436173921608944692494475748454606046056386713331165963644324346162488406687441041324125016953871665990854925778783643114005458565776350280458591330387873007773549156329725911101075761509794168857671864701764413915207840092104803521080100317008046120704483373002589419904867330153209294750567973865845600071893563145951595719115279864561152995781709503135678961332164116214829762767988117694450773937765094741311489405959997748737702475182184908791037975778144656919331032944562515081375297949867055525077495544744014302449044880489828671605353294795324894355414928031404984677783505478204011273477992694589278024995370356835887238344223632352919610227609326048411102549246144722456550195163187399069905811335238877502958942991184759528105202487321611718798341475251729542519349646034626228877394861374783722653178143473301925215893874871679715506906459226204891186619831825851732235498568973272657759923129965513376149679391820301456060702003948276472225089857036093064706259787456808558992665222452234492405060685125560790585584696401956544521493772592537345541777776694592626061639444129019629670856338784890950038837936519385389755150830584394400408996930703510187723992995009816912812648593531845182331879688399704798058198999194786521081705253594098943357587794769300107482750007076983832207805007187898398219306489218923890401522080101429408763763338429017562160872707111322774553380586675898660689848783414607659989747228664077857103228316182296961750357811107315351638416022219156812642267159852023381538044417646069451558210917078146812031099733816315484697090437089930136517431229786623753232536259335664769573343512860186263800824141489811141637606000049139899954794972352700238089245936097893261684548276087208719332648556523603662547020548537229508023115392310097058579207397379304763899496142294739529919043360915535352263335829902965182938372486201990254263763642045574921690464897992969254145883174801703816229815516864505258399720518674455810115277457987139053927512360545890909163994714587070414778246382500468336333414306203512399631594558039692271666002859619066960213229357842298602354919402937600623362559062616434804349570131246917798708774126695008739739522167388653449245462350181873843869953089082129649544551704592911289739852090903929763398440048596414526335464913200245932214167540880213131680391682653840619124168310965450905683109254200847519086155989403072993952825198525170183550117202883386271484435244856443382708790305539750396090640129625793730020519013383074368024184304154938612089792024598995302389277666463461136743089349265339152516152957915127716945278947382047523068102658905239117864739504546548018239278408189188958495619541641550949514787163153258541076236835526414146066866850487775469682990967922965539157644258029054902246781551006512480332169274235465530295991186675070035056536869509741229880582407952930993804249654041792474126603341015401322661305615426647478722319180271208702341626767333598116572969523489063635584225157450366106646774543356743819328375071658066084953142337310284026337199347450230648276950148315473105093305627491374957521874339952163586824361960183933031257585429012415943051318034177500017075775123287200898164555282420162491859390627382610961669819336282264694149465333777747050618168381859743905904519234224736104974804601494606707014198302138734212869770639277502684646579050668666253121531563432637656782532197831931512693564123652097635875269604753336343577497511790961838642603539639937713309679716763502748006976298557410312952832876482183442288307020532792165686736965043750966704923813057692987407129434613022993686488058751390091643499799659586387067877175044581989366161942399417918771007455470470125687470372633164223723036879009245656939859128313894816064954701374133379550407741349797144073804904385719235668130835736881919585238631092461442327202541230381548677992680100078749157355172200911289030502082447083057802473693081157714578376546041773011821343681165081371578995534554535035280734142641670904553941680384540781483669761348320639558602102389507512833729117235723778924180741151215274855760417438911148149345368527754948919424227152524579986212344490845289745555326983048865546829107881793617510993334129473984156567116428187987625020127191896784135058656236790812615625753824818878355862886281532205649393655555364827911630588299460223809300488853534798774079567238689656796487253762937230957506439053486703838222028019899606642556353873371487396494984618912545730665663478673429777288798805175294471387785218893919518738105497408744366686169581755587708075031608332995570038039557618051895656967389570493057184400433523930671369870448992490707797443953051729802433447216689365844224044788303995067301793273344115497138785412970479512993132797390130201758355931274648115220846001188273650623640636569095033289160382553727185903297073153538825595550015692750221254460414640865918275915147272902732950204839318829066386492357007967734616247385455806585954623498895186973974185841070175593746462673840259244241781244258418684650985987030826597935288782541608168544572661113435338016640934584802614032393578788065265817963893271802959945848974974237406274707915889886277743892027637557977186998160923106925777145864804608630438832109653459163087345895900650606406253749114643037109654011361343615866478112027826577269516507565989910719287057615074016729016915222580055511840840040570318942183667123156165877768037814896233608281640797828617396814143004370347163740884211361360642984698538073356849441758209363717893371659543620867312326998737043871486882987682041687148292918231207669665334811184874933550537199464224752953684222762657268039990071697223206250084131172405690059660161305949699602914663717430633292956095803777680981076666862296036172880897296409246176647938496018370185366453069259011487217931752064041492585374513760336631985611808540927738198008191043499015848774676535645113909200708080926256426355071587865146711026596191703310059258606218056560648224006340146839207943594591028381074775069428160847105825781624855586989072748648191577834507421856659308892599838070640715095276538898902103865248823480049657671981397571489089881347915767595679641961874275084119482187913575994195442885449484748386886975073705783933726898389591254222356568178605565474019392251941343337216698672423246359351265811383930957175923751404632250438169481729855262168536647128766045364519657191131482382709309338851283358476461598583542265621328832468628040139180325044411359427995781795768698497897722151876535384372861038997214715374234944176646823000078141288453492599441906095239501990438980679267384057807445303222627507704517538975703603913748133464125873845003847968266159167948132298485988301050540267373347482416183922357690177265837204672450311920752992005057365358062084190132658428002849140957231373354401063946323428551168264404319758678304886706109576705156731062290853833128754838984438338756865297680039506325144540988862864390860112045653284559212040601900832324513334155281993695269432342804623001777348717033205353227146071529132033757423796311607947105491933472424866686007296857844846323557241380938509953310487576943903968242057810275298805753020543168879657495534697666948092890947959842600634875631411456238870869450840339939320085091288422747051433701501858560027823950062423975711212096621291571247817222520160078008221035657353861049562678607603102258170381872260346972517211327821555620856253547216569942260512577115749521437526907054342392553929692053866003186409007714293007050320165154491882791984342453012415095671913089709881103084067550162198522096821818383232426969498422875648498538803367263569442729874352396758387102231791456247092811040695910635538088804391720979928739680609418833614046629850061610774349094747715668032755145127093821329854391563757279273168244941435897210911548536721900249040969687338882978787914529711529166406371961466239625321999017006924033419264598530053534883266517729136296357929880478521869596476814985203347006167703958987824616683505923281825638235886496901668633609251779284634975609148907593445492765622461906262254757559125304547227095374550304475141320799863598588258794478308642686715705133383989361006480644308737390642741822372556571727233403932957058942432881103798817133363028515294615169947840596226408729204721531124070608146026517207514082570310846309990239667695089425921457987172435767136171829789650168148601630739892625297369485837786958838751752276201521303405750873591217947052198858206513753843166866753369989108526649396651078038341722462442395829492168780977881125626841847071128347874339304816239176395879814143093822963627130074625550934517054837398206534950495868091892939025547297409332143287608498799069180306875448463533081170171406742030249566181270677742939887757694009094625158586487698325322392372200952262740622788358137205165497611158327497950772822008670923961778473806870446625537201655035682953606654705421162096192353125110233975096206000157369890142853653691656481873924422448837823385134462296652745002605030914933023458676817940260526044635276738755592459177072742166314225334519904317804684855343184258529651031953827361870488780336035377786692243494869055939779217781336705217408455752449821495665638083293023344876576167459259638000170246548337356365541965258311105620414683957202065435515999519911818288844648994197100099942176457484700783055936697484418793790525167015409807880045557250176837504977294292229088356359493157167651033991659483708719522748505100782947718965841405363912977162711117198992464913499638260386608871683342979017094379858388169631255043953946132346975416761873707427395400895335792717681171451600815701501798773769616760077320500136982752912535991462930066226169119671838900803132370336723153869054507280415428030214399121010663564655070653015914883090509692991298156055481769946843303831963062791707990438387367022656463157605142790589753036951573134560122719915439597818009878196448676606705206113649802999136797423545055541629069619282623158959545094197336089277820123432286673714218985733369481631007530252206212386465014731916171181840503229680508144841048557442164228048266600554885260781221062768576761924664560940110090528772703324508363563795791060516613911125930656286407468499151696466492334452907316442642899460662080528997006278605713252275090165988321979831792405611296665646663111871632678108182563395332065797362200042286998018599253822349291228155533376721010245692369614522164040585789686547357099038612918538400711044851465431096863117904771602950591025358454982307860146450716714598749681018039866879817047304864263581804762585368333801198566868711316168785063887285279442783309959858856039055789403929346855033083049031794618248627451979359130964896990858871474011724631706168554307922457222931831532615481824946942307601540572700117720979822373761853831049859354683960274514839346460355360543625527498869901224925655372620579973699143222414849485006063215698896174676088139016866149260998656547496519914074089896801843830671403285201203665740914292523578970148267311200038971312541301533300086978345953255068838924277622390791633134685417709792922545215490993206453063382585953604056080416917866272851313923245970803164578853097751661093168529720693900812980534605614487617981875955566670284575371627402833574273602829323178222664025993311596710413465817888528602641199532719365092116330612307829150858832150698690488524749761863046143201629191277598731091287811068932322946832700161350741702380479777643624877410811618143123092920617565713227455422449495162238266409140756145765861941353473133758566649888016324817096515665026906903242324729581115748722134246217788938123200323648285451007955556556892284157592274578657050809980418787396084754219708370673321324358622183935302388785267462324827147973877567592897870252877739074981731194789926774323974543672975781499790723849142897502378439841973517240733328229052709513473731226722554524372535436444324870784883712869659153682820776309695103565513834072648230830428094642917993676225966413550689594066282339602528093015116481193006229001031875582643075392182532250651552271345910151734562412703152677971593819960141177153794061539879242573224143710780857233036172130234406865026148511485311256347495339040386635102721451338454975256340821204092184978357068067151648178897460083023976069812373127121100304133315154040412471620856085139726195566906475584562015332979048915134845972145080026762720663897436774006146038920418972913235006831352205225904535631255995327444065865726467857494635443050822478638749207509877689826062043144873694159328117193762798278528397879718830356088428398355387696422271329247923117867764215555541508579116731641805767708766624980920824520543627463959046628609074535379220340701038269607633129207351760174436492344275191244545326622716139651204826367860522562123395309100744957250983878809183347665064406357489666210064801788920354176430712635780716656588304650199503783618242732369793750759142591484144523496804190171692106499865504698808447638185761124138779673924210623394939363944535030131012842315466695258250202898793148927323609864910502307699541974371884975579087947756835997760934740802288577142582781016079094455404241989234705023140190540884564017255033237273533653341204300633186669507154369479531039943900364327023217912228215447174694867961982301661345514000390418722979672062701481540162102268195825922114458675874379946425858667765699491493730151094390196242507436051601659267000371211828669714304412510430726939230941319191458824501091746866419864594781564611386204897469751788184523937182022478447491603609172871680833630465531241574336828483924504337015691775481509325249853229972277905143401294371452457258546857280967653014546411864078350088904965114075765858655874480733257314570110082996045987164938771963105387440996359118185393153179182107650161970212413382055808540087624642272499523834522719989385669179197913099895505525651072291180317546261956121094707182504470482152157779606630808929015472121819241041692709656566453612217827736286457532393998522659083051214479725194621510856838216185639047122178516861687396501827600331894879344432692810581518706911344970991155238347372818748382021880800334725001006805322686279266357061031652530343527427510588406323968989711747225357561489569084206212845438672218902406464018281006786741138977598918099065059237578430848129122043679476110038193937351749054810555397058473748030192325291757176771138630322826369993987562733068534257262058163650007995128835294584863182752409026468686068460855891604445976359826564981331252322754651693692763063797580219799036351384123126843157331874744253648755952162386190466577066788824300749283622552000949850002187602378411561723286061636156422278747022515607129805394555407785239462716231553448866170743437188843203342212425048245960242245026403108400152081637530042728509209487630005680492440766411881763961010243247901329701199031807769872460989303383803611777062927701639218139580609780865630315951167664364471809523690976419178417038283883259665866283188434716861817895626171551470443176362551356778810768098521336278432276131866624252009636749648461400126880074324723910799139311074705313008319324171130669810710369910915516426893889709183949032481575280096286977251983408578958126563040091378534235769241526477097412014711567795258940961063201637095540269378189189823433448380620506630556731848141628740482638158545845587749152616855813879065938995514471847743899311184192088038117617815441481054626274816013148063527704566793051285204712903088290012446183835371850163618393386921493902290075149567900038160643154727455471533644673162976651134051893678332298606125247445142743465749726388803598169026002518656550025490582910888309765640550728617719150537336878500915987267822571585079956741921251945892204652483832310158641260580128964755215953266977197195066092023279550979762960009196326975829092074624605184991061638062786384631428435606598374554898961929131537066385476895246113050026176153493999350050931735940755844250726347933240683506627048478224695296043504802218957265957118912543227651729395577977852377640026277967467753202793504756246436313384786014365270549027590059709118922209880977586918595728531659398756527880806253037915403240641718461623740378516908100761783991714376627399969564988841108547406024641925188042175464282790061449995705290360579104810046196299891557185391705496315089410267817494795199589550989532658750737110214821789562116713287013122575665176862511666838030486682529715163890766266315806649238622135647110127076628353793845618525904767858407147766946946268431590555103645336417088508734645486730735706097525308782492041436034468851606469909420835753330497851683843435195578301707265384778087771983875538294465960231615440325418518211298868149570512000613302470056057227543281563429254729577315902388926413009878835977104579326927104044077680978379283221927962796431056908781098088224191640502961737398214912424456753939732711268797637827221227176327974682530739966018862014147128374708731830233414045572770603715494600727120702709034180664524918107950625394448706805223206148476794487282426967554115411577649937411436804369542669774133951875830339298027258667884135107942994969899644703562990707884991057922588702387495120142931324304548073338442129080794605296094792653454261627116100757859428586712363741331954275951617434399535163351149287984628068476956025043803003365900238229325406698113900671042561532650336096833335180400975533505527521734304506523415263456518551890003702368067784161076222003073814897929985964409137227792626760055259428631081148215462532326260657798041232004447028893389504849647810326386656759952262771928164758568073465572683074628091981219356845528791637462593349034392681364825610035833234055569419038670659796681435248553647332501016143294285002724438389130876433651139451045178764840946141657500131772638383841523065847126430989118203524009124815172092552345761911498751865437882629665395267939793669244295416938770227530183741415163802917494181001468165917458023345084143739963750675586558763912560351106351172697136605273324832274440014329935293157612642040128269270231068304874259276871287252617140539690414960726385607148705976494892899400952209610498803991217691590271964117339508919179987026516022773830256003435488831176251038814987337828250292300642378375424326577594783611118107524854645376142357685200870667132668170823811043496959989844582273455222677201066913562019237018668094340967591478880619156611681627688829526768089800459039275174161834264738854491731200884546797004368854620392276469361028640399934746389108368884940430798441969050824263465499465097551147516032902929091147874989202269910473909737998927641161493003667443542090175913514641932076732426172430222246845780651126353964184712232952768200050875885577964672778229375535628540362786007011217065817776804129193919767953445603627714870927323347436921823377058322926154378482423017323836157093760328365310759858409121631311654465578730320860079163728268772742567133931661850468384856269012496336652961266980586484556982274759771154810390540184211286996573249868456021172489052482932122796270457343450341658679332758307057866712240925164629827652704600028348155154558431088374987443172719298750573081398218660466177657203178391100573583359432976527911058026849299965854627438403868038799673629639950338773765817763898871094955306278941453671861491740508701542336380890311809727676464851252749022128775507003888325030531573795586754078536772208488303915340740633830926101681231902384124492539322149561088631863136239157734204849678945399466167110599326218929001153043445887597185672886060417286560157204205271797777246680391813808823954661915128236604022215063844846388136056223361449777349450838905478074887259214116265267510762535491270100205305043051336989670892979981103341705961979118478057236543120545998901869744103118901514532236866651046002818540990389364517163149683091566860410319977478584187790526905473406282678709799591928815453183455514582278852067311128827413606523707691768488967671624730029789245797639923480818752935060290960940958316412302977857656185120260493361040741540812606502457789464742189999714866380633803245286817966427859699532348664325476620349628546090035054692019687408359997534934191635844409913201127062846932459621465360399189329975428848854906459767351193083689880186539774874357331704996032815206161450798101231242249571330592181578279978704416152659587365862727048908288099108958802502313970943351545063512507089760046232186210414216950749873657177714226904782108610069662083771128792405202577800240857008417359789196670278314771200493739513102734179512962091356655233809380034377017888489497678581971904944225284694949058796192156512629523948402004931175841610451913692569795401288624657093637909307122534057088110659361722618854268981662618368262630288980168010639909361194543890434883248606338571662569310582968010531761634435118169511082747647655487727695801996073938470446303449152892574684679586638971265250915500281758350632007325019098878843422968515534863718808301677021219916589593791120316172669879443619649779258449355186514328589790660748305507653372021077139841142230658049170040732810423745121675339055687376628169696185505449482126174814927322532671920278273798953004791683217156347215855291854575307894146856077658308235466333006959238965796879458379270962624476883124426461191499606898265833058861627583021531667422769508686321741054379037183781118494553079571093315527060898316602680924929694429222130435256416028733112703913172105981793364778981178541228109531282394259861126611628933051142528933407674280843680945782888147650279466422293776039114809320285140155140112554420513018329582051822261385024423183800386034824671837090684310589267413143422786656636367372848922222514676905760320405037771342623044505219094765839317836899755146082467659182224948441122647597554688883192672239472598626684666259606132669447579662155979853880875933905619621492680680166386035136571914279774449187390535806169379007818305154597603346996183232325816928895709712135473455151385442720587190638995449075722381055203408752372581387882737108949435076104963191801339254810580811460811916557941423358561023994671898571407640264279238748553632103243498846630268186828130731332663076451244190520598030270320617002915066473321566145096563873618301430054363879334309206613520033677524053354143610520804930303890205149194708479632180752001352309912026750598103440857118548398349527026481282892808128932954769253427503241796267652941154222834557661101361214494550727551008945367877346681696865698448003838923348687027709350273805866222059106435525434000772134491254530364035145174104056289540738322577457552158732507042172714811046534106309601092652823434841160353610743491996181376195345100295614799980825402103196542100349937436785195237652880505527336273796523022295544336261840468320981937453623933488004302135811940140698030017325447211187672565802920701150907259941608655993344905535073846835592445007089453733442118781212961571847395774012936895751339282981512135658906440217867234137520167982698354450174097532870174512915396641573515471190315998743487623809384108790167907607242191888631290587182853587404740317311991052687335861640026745858652855235320834191693477086658870376809719770399269699271163844875805825426868196180520774607524865748394442166957245280763182704403481482845086682624867425809283132674541912156428479165585309054649230019661396600278818892381132758129941714835329362369850786925366295508442984289515569314855762779040210125658183244442029759681762548250287233510577866606869776773960904942672607779934107076315493717352131413998732020842075786800504595448156715034630656392316503978552023951398622451009819982290579822229657997933674684196329889680800848107156507927882808180878219958807543099396942818879607506263705596358247796235924105925633590301962701054528321983751137286980933184906498982665248844308488450686091941220229709769632983151304283138322427744465001828819472696791584354432094618335699545460614897684082352592133997405601283894517780654775143201625277686525775375155026861702110007826360354344747741626570733287709728481290114984924929265004069643185221167036709082381338146389180041217225081291270360882816307746468575073565204955395187332758915383894684896475392562477216153098385425993270751431901831932936199805289827062226141605642116987154218957634134837227943299485538658893902096565481534012757400481389609192765082468365482875501602164188331028034910311592177370220689670646037282695671209122020240748076367869250804703740546535473676496391027193682474111724744728679010090453074941289163400911112434338603139093944704237076568608664425564945296579348926219331425998891385528639326687152950914316674544483290152221965943485455951593736305744710978034164393268485733233441939346412660026035353250000066949276905483754028730205140495002289009716216589162712949579979853278063182745678131334282713560483833014775096244618377318298484510231522764793458837996178866269981242633684971598446559456890096033718487747084315165488448245365333873711448361700205221820329794333029992926572698372139829644790805412262156110912540188660200844317530812606403891159902433074245503689427939522340840399736162001648758622611985207423572841027267012414588804916164398708153372392305951658336060141821960477559180304831339806707724913858719267544609410801606263689702521399042665296137739822459414791281284854949066178652731722685360907549172529401069587859440836664664518768872858102027724048395409488180167347927415079053505957028576321057387643543759675587312049728947616552801277376713457871750891303923754554460953449680295836438610002404982496930313272880100414085596869442732202860426237530960276888676219106529511761369954238501233172159524750157990118854385834501200558806385030301791129877614435117936018497260938579985582681536430330301425242310100175897455681132642956800548500945339607911997899654500141807785765977705594316675049660928951536054102231319765223270636407154889527780148995428357765721199745639698273042682822016366841138707067428205995434792817173730777284139928771290209378535065965831439932156064980188549326979589851297579343410681596027413866481661883463910630742385123806223235805011800693518905724285914534982401044363760978203275544043591849326753393733004283146637328996654913815976774481419938276125580430703609625481438674001803045561273259855176351743222850417992863888015308181423583885419683127796735478180283718870379102876737278586508206355988096260510419742247310902514977542435720490265745236065327987999999033265997426690476246646777372117253505828365739679735666337521847110890661402109213387695936069646396138190917936650003882486924023931366567958925744783275607838283134881736222218685338147377334425791633069876397115485552391121301905726258483069794040147481588991374076333195769155441217179906200372480129436425783566185376954943543228737419541248716853876189078102761096661096159737581506371526176534116547698336635457921188363275877126283068848631620609354724696322487407367207791179477882542661250636425717647143074704666815205783735816398913854629729342400242666826909182501078981903499107949525350330766858556657239202086857939272253097154416864068141961457297209309730894721765885950424300861941927789244248661823454886438706530036962210058979059994715826162215258774661379622571179629155979367574724879534207204014706445567633763187099692857256767477379677087411984980804431382064958613331347415340386804400256899584004357686094613984026137535862602439655998903869491970080814518586975197887828430990152732558198885542449932381716341672365829511509048726945637534212445781091474373723720096128560951907425899983542997696824402954025570721529920186158346078361828643813306757522117887158367761516243144214195846649311634820306040460477553463768013900336118448653253208093108968931463943737536648061678538871006435789762622362530616474700138384938553224299895071363863750811990551203699090690837388111500086165521706219059214144239539824897003978560823472277588455966921899074028333375542813210602347513525926063538210681060221718664557564633980701205144799485367561575736320610936545833718075030553115298351512976812317996585156500586756538570119451781423651273440551822553183955387174750519679881056026803693613983435329961115716575237987747186054174030387443937852837659378158969754663866021087662795307156825567305680494298211255531292285325588107338611606401004677576515839118249131099842338682888147661131347096094301040118391750134744554252372989550861650032059444743100717552530758742361192829873662201102433528885384231802680487944456052802859478159788398150565114206515439813727768465371240639590290152492845366716113334913919600282561374102795651519540025497798991436750725846000935904795027582015876045674297547452199428776086989267432896562889840761786538206048434209994912090586946806376107137816300823908846707205187408920992022731095407086385008635380548193995585334436711472164967975466869101214976448146889169880726005114941176947673882901011178772818852714917079735326922721444962414164289596455505079836592273950107153478416684438035782790399884449708522474043896609419200545818273058331776587286347194413825206004693039917801528320725640946881015679154908215119032811148704123579726281794344660735796257302602832219345400373811308207028671112050853527497733160219698424417189669338461797283573935273705004546040056394818671802883402945595965569941799387361980845983631727693010874382437520804102667765600695861624602459673001369084581761627390550812718209449458884227816091813396908316927227370571058879390510669012849676843025510996375422800864900357703760129010718264895134054550204960497410119129841375344055981564897735196923032098516935104275382704442171221100178587332003697254686441201906456001016473947322005397056868567704373893422866350381408636033166329094657153778101326343881642387501025751392149629479014891008163725233543472804184833132000083949627099677111370202748817574096214187417751090963278013585724070980689047013810228206981180623622478971240153303473145559127559140772561915206326580538619297453628117964807318391282416533186131077812428471690555071902137908665720163731531122109288626573497858150904783586852542725743951266853230084424969609888086186096502666123830357712624494676333452034319410439663571816906080443620103789165530981132137791030995922762782789466373609601751368315290993418523172737120019003703202621988038636344191165301719936803858742831525557082876352499859083560431390049824810239303989566138919415250042951936893455610118961439322469604843127790263993635217342166787554417894190584176773939239927330176917966141253204187450635710401717770350523077404661084982214815936846512015256927349772392510809320887566499094211656749998994076147635520953116172157433042677972783739669808305169218975137385408298802210353978522522057099621500735652271133468181045342957858272489626279883355413159520980976436398021239664436130768814183280156921181988964143534791079631435380963229306961411491977527911692437715189927716588490946839577754490508238555477823053150822373776893165885812047096420893980096475464026252646168930758868808453842438491704941720686783360950043942482621351215125727694446740301850623376393988952486866428282771727396412807456484182652636875781766263240496098559888523152458123698469966258209845535918880226641848551805474276467108087355124545604829096516800124689837741299995104668812241255883262890916474920176740353176715469140963459632525725900546550660887571261963859625661800446360715861283288928006196145553485076679615252827801162863426837980609916576952948262540838509024233977817635127267511687525896746194423161336410371228080835105103461867406908121023930720767326464557806500591452719868594532636990040381542711193630118072640161042227192383670043060017705662575923055308544381400246569026943465591384975914621441635457879943288741435949278095151124190889837746926289242796904303267983340144547799648835231055934587083992892656235303871480421795262236437864057387017553052055802231702884568676717565050253174097512520762825307367222166301019241460310713760616207098504669709244294913863551162881943735323450184858550944648571378017561921755402324334552868850400742426245746746879207944325823145286370732030695275701409786214666894278036161970366311523172373965276456689671783639479656874516750243064529659729394232668177672995396114813660783906348167426806210825805932907041380988307515240198644048770040599864015645138547200397913247352577059635591416275769231185785186650445447026709775159957635118163069080518364207581778830840938552076229927297672448434310538868245494770765884441220918018956802840389294345149346453778712252860506302554017513290295308171648885866956921859922073589236310131272561058573434905971263639763392776287271443796060069390084698100820247178785218993048773189087506777260258518307426821077997573144112734496014006885929636423799556448075032960025284168427283154069377600369378973796035887877922841161738640264371603242961054097298445734110674723779889449299993251825104037674877151991871675459405114407195882526762518347270320491250578375041941691762225901694826412599578389394960952324288056695718791043801954744549508517102355014800701634499140198790757269294221503421780395061090818387029739910628339530698508502701277395753951194454912522889752806342522363690883334898999110388434147350610760313919016041470319356841728197863130419382128838825734155241753039428888341450629903137746591351853082267137102471060674251161172015884055994493555654967734685529218967854485470942528331020381885619216883414398742174200349262394223433482613633672996186619595656476042874984852759774584926502456036988405143983296522238521700306041957283298036795940888325101066519042337904533864094892310592233640396035982750174486899585746295535849765741189436042555996172473856295589041331457542170651470200846835318142078763796676140708802178228181858596061847662867276000025774239357081941505581446674826693694501624342059504909712211539608655929880409577456545945829486286725645946097232676720227363762544945822645396371122085711790461117083487487976301694650583023514123294566265247953297894957922375878107307582505180668387353935089949502862595355652658412137475477110673876890808280209337103887155818336705465010441658779268129017375812783021961759348606738238543965023345109570089713701874954076227551511882219054192583961099276912703333116091026015431670486794845948289931754739640161011405780849463854126259743323822103642696568825980307466193735815826883428943744062893827810104928977707779614544352511641238193909975442497148183801795803908462372088021825759122384829609837411263324855661417050199539669182588969681256115703534461792524190658540876601600568536899339148130570116349271021325237266045886885951936384492965125202291450949776166952428699177001648075503907829535741824498473145866101090343630591616660754519648281403677804624479919326104852806686013694178340620585000313429878823362604442324497609960057027137587851006498806665870713620074038984939384449866056969093190379738827324846179760018421568705837620462551599873085293533797695812266330457689585150599061792536214934152504230099556322078347076990699882677791607851330715063216613983874895666632209991975038990571257908349333513542028412043501340807737904663651928025292790259684180546162128644160723941050921760657690506116707991098346210744975084759928357635312610047354437079219341856845207016353071889160110084085086219828375081461532484546308721538512096949853874330368202487700339469762549022538207008214627078778107488015733774531703251750447136528755004673281580052715128275660204712141180238973811543839198647470552988952629152876179868095622119742048525231058657299752085258567800563665329319160773475016661180863013612917571089186140540560812838313465068565100722379428145400779210186946375658015642281921664912103285915078795171613606054110157699507826636185328256549412101855553132940653598761605133185909494820825362073619971605111481837947278526171974619313658307968611527177206820393136724165979198478167629467847148778242156688236303619180214173587311155791469688161525276109512565377535997789559672955040244753129936762030792235655975906808817771718500432878257647038626750904557252678221631100392347282526197418625807900848171209521276488531949633810430903671261447020589978888630092099881495598272419218881650108445804806286284038717819909993898514901416275417725555650849543058918410221856154884001952201949046763477487843176268937463745113179163030107597607341206198865950756439334755524978742987994607483136030844697600991134111741377156448603488198485608276312408560773780880407391991448266062130106898009544252648454538205913585197845114714194347530142023712975327633762663214159893947196743487732697440524365017924204768783154737422536624882757566796803331848265137755748880948823157990539687202401531551967225995084427611971076433405833279673810403577449932433442274011521570984824634803684860038951201954066677015897003389162351936460300274687953387943305849347636155135111776764044637706609377298013796995055830949035895338072298834792421512947760375975588456180166745499268049906745661864569735457601877325804452244102714198507405069599334547831260674009494215044865565868986964666438708901036108273240832151230894602957727906945181229138641630102413963503785361927586279807154022849507228882143278607263081386590742952028756889037840724165965306795453057239558388585988358684960971125082882014183167641369265699393690707623974573128890533298456024608512129623414636477552292002309035535319300435501222947322704953379922197296688562667885108736997087453178927669614155002263477815001748793926599269463382221894831543253093573856984145253226061093406631073604464268804924647175884140550444489824886501310019122216516746691086103803835949460106922296029737005050909047876495846395631320784782652136996872432325398454491777032309603164788209217442720707276002329975442937857533160802301252686166551611638582375812926432606089961025868759627079337858944851136949970490719264031662546683783982503377801669478128016730255421697359918201450253298125679913219885711700149734883035607231204510534471474758575159713118458589877312545903170587577827345586603416155301227971031111727608078318908062333889323675751389536248767741970426652332812807198082762167553089441797928215883688544452220190948364914636375127108457741856459679930378232108467901454940778963933043847446854775298492524001009294848695412517289884946058879794356933331811793649442250944752016110865796753489153142914021175656824177224328598497534376724039279643060016970940845599747790248609514680067360726474423491239085967602727064438702318404970530417596298464431540834689888011841172979922891752127840760689296181162077618092154327820299277898707378768151508883388784756190242262724147895741795831883176461339547873359697402717213528866562641386446135003259559499311698207108399205043387404861569919932932457942690084159011342052538267274576146550219308283251797786142920279326656758304858144405035160285102426690387285062764298715594924294855918038179630336640897841065483673923012229581820817580803671024808058777916698284886999720619809376913751123713056044729134548216400478178800604110472690345457190496868060181278407631851485348269316722106230647604928294189365387566653111462958245705744478012520610669173195413986414858609024781139890028101486269708491113506032501824489537624097651544828987705776933012402537460367498120889187528340515134099658095964083665346264852220116341003272007721842706145367193298026034413784496515241383785654711009023483042161916575597333153798961982005002688541574969257465086433089422091501805596258872896815271081243418162304280967725912705193675768545297701374373723555922906127449282610625210907528907867142066420746657658366687769697837259119589581129462890076061606399039992515350941261417813176835147177867715661084110131437570918629297846417727034658947615872248663561152419332485688641018530187725712747628609291048254218540837202727761475208790445087288587459687527297670860686731636851088232877414300895969027650255537876194812020437337195555033927793778982838294984722984603480744378249474827630575283208186450271065631944016448616007455114727887356082192899275584824983678282744932982185456869475958960281126475352855422588322047701964670624487705346275337984624095555793727375768667420881384886321000047660139439844479281040737180076486212334928146720648884203010678445810312814650934811827371137714580546860509300049283272095793146552265342680713776957252983565086738983189500741717070147388721905927424661839023246761128105346206308908756458368943066759590878335411144381295381429421096306567594893816778564627571848437669036058824872603616430417115552732712286388254815424087261351921453389603269898546954790630970899548264786053804853629981754741056629864418208830512675676592677334615631109732410236333032784907586652717953653764399468811312618688643653052334787401269787171938199035847702064904597882026918039117757024960904375324253504055226424954997966272063356401547444443622207839714632263425626453012492450662933203618362570501838241670327812025002765746562934024156446460991337340581057074897344565360009852630965610116385664541932360701982415034457893234573461672003983460343415789014838936088890642181269781445130764565247712517098094246394370163828901125272051053491376488962679633157599170192186926919612241516723707306213888779692185156724386356963841079541172906443995920838407744098940285528178764302311997149247444509505363573579274821021871459625772668278234119714366861738187336132369098289012462039957471749233300803233857127875331449078461114930534906226661381286558434126942778190842760348126103243777193706555221139757505818735005040717152217142754987458569711983172518743287934594540725605879000904640073666943095159527517395701598400017672180955009720325706178058874335676871476940600200461837092540124714196705039535062259266559902034108210562581182869727730606573152549542290283097324838791340447440644840061165725724988918883103043636954266611178443479085881114677586456422084221347249093317743938060391676912557945973535823694024280798504150736923445653652395685659590070556515778476083181183820772915934455519677571471507590296172192310293171948836420444768722493543298182341736430362449929816210514729242409224975834871444708615597407053281875946937600749101552371258176699890054267270069842397859245165361727370528190849655741803576701333420694334989351381455218369279400688484508082836079212778473801674693327223083850352871213679151119013053616647729418844055760487795033960315713795749345667383291279349691357208024451095330515640216980030729538295262616526645517281350227706767986061971531650300924562796772751489628668139944940011514756508516214096980389817009517763940787785193993872578448235686309119369140850647498226994016587712261562025802371465003354229357412238200677085569390430288372640108415091097957072634993171298329991760692682922486374005404307708885519164751438664323774605902652342595110139791892505361980208518873675774501015086220871604241939430710384099378822711673566157740047977317512052910299553847918177019556123213073314336431460567152192730839454460184738952111318805031388604830994462120110625036553533680370005755610489585503611625679220167627217981424776398864491503098600558939779936158411744127135998676418864730075265661690316540702976133839289703542398123756108570181786871722710179061500130723525046243337995692937214948287911920923929801466808481075386119940614825570065326913581999646200131801987980037905552550004639191712141888124802353588269155402680255114272619820568859183554502985543458326537465174514943120787434248511835995927238117707788573698759455087692177324405898114115975561464046146344053031212880952112819351000645549950752851685363099618308396976469381453863672620781575015708547446591078185849784035499887161979037879446133294305045141812362342772462883739327898638757070967828310879221591158427517333620612249193289362899192492775871078043440358842630962182124657338281017517082813147495329479929804150389509648131833580424396727092088144478931426921595313883668646836327334551999226299287228020548945246127729281001853899440221101317562253912205437810191204955949469602173425896075512844942653355189334183506865250905611442403762740634131644131758239298841092547210083152357086294347673958867336836339204140092157126445150098041292515805860567735298825200701188330975045377698574945159452122888420050770683071662951874341846372569666806288946478374855521032958904003031948810871926932311304495459258068890493527040058850606246284440642488957260052946986642562095299164105533027426449072288066070156695544024831612133549316890932962318063974472316044025015208752375329967822490937052674091318323668779188002734383567145405413173304924729629620344181129199289270412725075166906225163747794605713502829694380013212459946176182395957353139163953601525250821972602436076725843507273386480995152025251674514484041736749780703247239965065923584790001930722906643267188104041558410093877709248964025988708542044188525049965536818542321147112673073582961735145467826071697345185374731911718026384445417071513886395181055570470746478143760659803905264479254972149045182584641109233659336604702259865705074177453204368999267301687924722600842224243055217835323726681602108955208808551841847211972485200797128674179734497994684645539769943164538426874785058206050602490702712866392245114471206037006779213540420033760334039852543712213269265555977568341420520964713950064187856085417481516370168584235832512209813872611935592738997428616556210572223616842403594074566770908374078639062207236035018300422800524681880789455100875600076212398237615582200066715204531699391545379149660104890653660261723462072470026960362917400947648484773416236598315465962232569513442174850411073624047845401379603015692475343109964337974589429053765428345748200298796946604168912437043754286489966366348294084526600775169412468627871181993653537352400897989744964211209808043293422176214909804279652422471133092066510133782698867943679445183824297936506787790995844575150450965826158794133611055252753925695605215862230690941989835236190285014724276430842285616480012870386861733873310779856135192580292008151094806728467940322026406518046319605756860905049485676775329035555733439047717113471489216346477856148576912958544077438839413896802696596881784543614191805193655121259046140461305980841523863448550632353038668050664651025554000636596780956882096200924264822029313501316350560902785445181913308129751851496958073691118437692730828248666439587205560347448954795288785035562175362497363853957704110887031404882609937847760901354052435411564922387701051612702908869627428907766044703251835959466871233579188176420687030420489647064361881672477011334970549993265062955461091875950903573131578421506722126966239057864983889741933970133521994904638931025163268797443685292736192768525112720858842950919227073762070941866245481080670468080988191349609038160764696493801660567324048262429277571479453204612393247936491105193401937446059962068483392888755974281682596109336662237290937555018112946261424251463578101525074220949090855215645539565969386237700683938623959321428862358563159332776214660381611468130644869215494993489657067185620069291411136453878336629263899585626706135225897964344847153161009068393629977428343384444266972507120142480633826621677864082519949722135308674125750297567970451177864356915485104989156379228462321812557364318812645114860413006399157704513073247108799598842720879368075549724297902259102780728651436368652858528962988774295913867047895117820694594661921175163868569734134094019896929184100600539410473985998451899650016942860340150712627688874080520755480916956017610340800179317971481207081900030832402941861028878644712496247642291023380762214741694147165565097090868297998484737908417599165977664774130462581471481523783733828021346438157044640432357422288854296689957136360064219655698677043563500221646826756220967731874244095067021755291239923349862354095434944255858515505795912314867412346069232235165907483341447875575239390002139146668769831776444261654382300340698530274483102433132071229596213087928727921469292518664851546133652533921893050595873630453031101293840948371731743052758390791413606026766845731942895626344913062246409802198371083297005959878611706982666282385113396258593078249380858633465009878108025665191255479819817923405681272307409328972205642107030577655810235754353779053483611432067679555697604204528187562542572876108387613718411909451527846556218480868465244081406633763989949429160873438888119481795059898960059672718272284131441952838202188322578251647466456298274584597030124749734382866205642754255209978782914654691881912575240204734294461778902308665622736172583837780297844123905334322464610755030729832316314740975813779023312781733948879611980620638161063418285028221896765263941513773623930523065514207341750206799971065579953948071806950427242666162750518676788375443800134863980142611872952753738633440439024271690046136651393653328500038921614953626013870523890484249757599572227692434475440609983426548924214188991287224196546329021908761121485935540737087285265558847523745829551012735036608239259180592618210945926016468043543479708403078183876500978189108929474734768735643431568846852747689161763337314173523297249356086457288431683799499883868188429245995990465920223874898596451668999548750372723651769428348544412024013440483765487147252396518360853603194982897411892461607994238170071681408771213308680489526643482423305289659800497322922271960294490378871084441034001522419526063101593721356777616690685122749676705480215784941684755711694070356514732821728706235689132933997725301049770215829131041614497056325010087769302361641246113245282049687253745298571702478658862587165588221041613890610861097842273094928300304438256703992272129115028675053770586046185649797034733359564226882464786253426359504647478492449950894963171736783361507750250876077637021392144180708998532651699104632398201447590946317872290252565893520317370842702159343630481247377151554142678888707099848244088835457080833310495447752168563340774219869481065793996381165070217419723304657846504147813054993100705670666628902267705253898334798718091323327713223855640369608594841387905131363857003107441563432558160987929084073146239876550897936403762361840424046533632415962801241568918705199537369184302547425328498902535423996121467658863244061008371895252864168004399355440563632776324502912317600956373141428390346022715298426282404421038813147288009224808196085284094125430012586403273339015524892519094439646018950381339037937477951748916049411284378429488467591657375559929908593434197149359509641258489365405316781958861891233505247128023470929439387321489883561043179449393265943689443503630590146928586191696722087328821646517128543954943728803143514587616378022004353506752861159590285871002533708379344982865796222701918807274020448864684419846234929174453792394544027931216121705887965057807538189629630253168667647443911369288438808703398876088610668950817618059565829844271780768370609361314143262523438976582002712992034509729916146074686929071514422008764256651608842718069451048485559073552452220419476393163726737935513960775452270706830165929232491085795002833525288452094286126769323730770990397710100603237242806679816594596890948107801335362840767052951123664500140432792462590166375137018541712218922059395219478239489767858229168236837222179042553716916747754407581771353186710056922557753139637289949123547699315548314326404118740773413196984751375521870396262976600582875845645547308268028217681469476754735660100996065039550493480728301267288810484649832297250560973232766469980749805766382649585307588408423485764192124296390860581051306846196633744391048509485226866377817103856316899368803881199801730564721522212410632774267384567044569434233516223678606041822014550342552114460512540768372897263332328346999246407340791585095095493322858909400036045589106502894077225731668511663823969640235941768729162702649556137261396419790515672493738508288964738969908746680860339249113104175137167258104072130429973097202873538938108458534276196099222319629743779860304341345920928585895960441271344626050735454364676861794937162072564054675059797676247312849826766867451629864736675584826023035857811683545420909647746146239763451542151794834019598766078991159961314383946958434431196819819134450427507660675099449289565614866529050333501587655624299059637473944959734682514581427918155407634115373263311777613940853488435513735495815000899836949759489637087856868459426073599587867393801858081423070186159877130398975489554167615705866985182281319985200591703367713997508610216909745809965327522933145858288974059649603577325953759364196923666719083616144494203654573120683627680271552481493829327706717436738848802373498276954651966795862357453600791631877096682637642151267315473679211729637451125151047602817743273143323695163943721251435789643233657039780927476647541548881216580619685294443949885042680661804727974734439875451584063989329032000180449537501361390399705827246270710206440451637033739588478800822223765547899220804066656347506149463755272270473536073579905270852078468268617997969343291353617180715252253093920440608329066586481524772718240304935465456326335072157932964123938615180352787841981293025988187430118105072400919753697733800839464960729292020336196380073950001106392850547216645955300508574575726754785998469329039374758133872564679416653631702329686143508314290291745874397135321700551446090545945750340763723483072740274293299063566445849849409118800011450681844579753430281452053555024880740140863011909949027954685336575306449560079244130096258578867953031928329360978441802429161382491869238370022420711335914183805820655811012989128155724067256606745813452897030378771949503050289834183198207688874589185286016299113463640734874848299614224166824265983613186277515117870001407686834514414238855773400737091712794863157237880844050963800665980563468309582798977669144367225683911416546724551437447498743041854379251150215462800663425995338475713120639061382249644915498213122797902203493754376955069576139867977508820340190981782399411911988330385495199528224312125543836152913426815617463110518413566530499135097672666185329409948635254272688973920606746895480630590332074826039187168171771728022896576871036063226681471977845907749548456300853261927785230503588070053210859778758663375994818146387740606926452459244430407066826078435359476184970973141426779269135082207242659857107677844690710833608867105341509527278703518816151886680253360940550665188615352499814319664352069946809250080265520344503956683103026826258557327790470256382445621563692907743462095541981998234918073991637322792604043358087307649228713966973769589323755365129791413216965872625514757497532524593264250680023257837648435093737465261275236250914283210997375907160899231243502750382106735167731256153548004670566808373865361668828321313346349882283805076222108298235441203397120968098031515439530478592500990152786517270192883413852456357876719284623189748683039865684475886997297124476957637037144237673457724778621258763670006238534453904174902449667245938854884319733325614908697310566730533893683583289853952021014286003754047453717041461574811675206900462319925330046396379900597775589989779811711033791163452575849130127786666203317518490691216729364612608139587688721486156005334834343443161744320131740526773511547509298437943425165837633705431318923190651942329345220262314429313787149813744647762539689718553724732601331997296888187021415843234906411401092640187231153443483592531203598048355018841635778125914585197674468146971027410499604369910720066345956415867597569658688199707302208410275193740735756134145800289101576189753128092776978922905604330740842218417765181333276951250630921858737518932921732729453563472838636270644827000264506860463712051294856641421914545305276812806660274366336238929732424277251601027409086914695277298497286907989722863431800400759364706374496772661717947189398755707251731270636045584718644806889789620755942589387601516301954927540357674785355958114330528351597637208711306316976096385175181916434663380954775728842744087665707782652144463658812114939716726970425986992407358817156806428943265631718729626543731848437310184261497443161492197979625899137768694930868921669689647631905325665192499057020078679699186677466025006448703505647567554729875664017991275225735974674849051583997933673732196523326176126683257696952332239738293138616407833648438954648055046653790269334516901689550420823505323997588451846004921157019027079967632711184206647921801876467653548243728957537078934559633212280958838459609794829029568938436749933021848565008000404385823897013978880233052947981053413541366338290227138806191619757074360355825887407108797754378577151719417827422675595550205284997373786239879514220156919283241257873523155901612691270783289940662586244777254707054334384569384346099750164494237868883664042745079141706043497497445102593986049677403013799197021421275533027489279671393029283723347378069044486521852664996352419664647899607124378703768730153241219209436703348110019996605916995578624346632852891301695572962724448807140853106094523116376047136689382326033995731944823505390380950004864084663566769143608736304861426147196631063594841080411384886167905957675357487499151817287422252665317179274704210121599004373462041602286918778902518394485138076220155235782079271938961844025648424857866798754768760844681092568396407675775359491876037599139955820717889282550390182136383705576377193954647652853699728091080456326333163593190127679648327641091791183864904723516827100828422344714359355787424043511321693252167986093261833128959750183884945155459624176920595189877754415956374841624941864327241273972553853165239446426649835270073286272767720512157241732438689214911443107492012119103749401654128692845448971972390617345416808577667837794736596423816510620536971795172202791082813469680916130281890281219907412816958970967085470297688331221049630596739051043493951162361113358794531818163689074285340283684099655148552880307972081922380794902909427574149850162992742080627377578230010302249825318155368583595149832485053862922093068219172008866066936992680814657146033512458856724122883284797556049031902329815921173768838553366131927998385904191924434535906579258555412931455173176850076765346974985439184142041897567090819852518795859280501570306177129809878516638426689333875753116999324265006386200746949153129857847856855305508985830849614355009405026602788599474770781349197540506777277018933816175572425739682663302912123804681239752456939973662540379084069562240410675559828906190285824943642357528768944019210578514856636999790877199959401794976434045712371729583794462445045902626869241365897146821152748741826993487274190057454888807749422867328497480263536978997529541604854604057040047945816490496959326838955652737522601710251919692585762490209914753857275251507813099030791854301926049641760246584931177178082554446830205962952624456685279980716897567593269128676011429255366041341787405176031060327125094299425570641454406464311590733810344811665127999586266177616025424765496476190987311189889395148234327216983859601078886461235794709288056868540301021256022840739482996798648985268153891992852498602156438693870719051644399018136341835663905289533908919596107538446240998854203724513158078392530894243498102797758616782032620423474309374961578186253718247076116996225047068261228279089303057712386560174606197218442301000693026962216000307274844586350338257032964236941091653125234638975321808779687352234854969822554651411018924130340532764393767395568949596852149336837863002977587549221120685743323046100015080913314894567671557679291068014634917422497491285250522334472994226174320109652332932478455703138481068925966732144313502371496413532854926419907475428069124419294921872882528017197437807472055083013933731750138136429028236261533112977991653492522500253197981212773123340332972800899631125889924450455630193948266231127988490266103853177538747833041587616182618326309911042047121592091906201951148421277274290960074660403433849262278744964654272892730949351184993982556545319056800267680159111032962213618016726223099118905285643758406136422463845967558413858789887381422796326234144278881742448805324845617445258743320879530544262647939018477587909996080880657325202789181098915164546206489150152236522975843044258488504818975958576906110040392156272784874054443495976435479117403741631359591449766481118644796098984927680111258921285179612081515500582561156016240684327088109981568013362363881581453467495383795930358813994311241527634797224687707108144668082312674695565210989105658438550039652862174593821747744627754520874260080072644131117489372078922540271591401113558259901582157214897418551823754692819029434743594376538049860038224544735222736837838090404580259804719811460510371731303556003551326303832758921220430747392988203502494530331346368304127879907637900787636218840483111424693378417971688481454479316184091164133622072000739880725173481874019711177236098304601256652585640350333133417267574495983300579787532149005145204491563305255478845861918538198455628219607310511217331207027766242770220448204609726239065509341849180001871337220633861543077522806345219665225633593756538070738388143202701729870225133392189100663183490336644419683061742839332648446497104193430385402986740209779300284919017315650675947212154758831401540652758458664818785976716741887719297099537089879840549938172686494521236491090365912623016221631637822436044815103810330466736486440014046330480156338916418571180701922014049999348036678777542309788627181137665979048781029008665823015641737959465726235142731339011510213980930921085005700771154245354180262748160124351142431055034381930730541028154433101531521442404419652494054001409737093429987097651425958900373975442811507504094637695045382718573970065828693569694202023603883828801322412444541299628004933222623091457927828568744123975105777461383808644002123637679229338491398726313198347627990008200097178425035843526735668084650939602721089305527118141577429816767510202895759096810021421933025723275218833364394878947058594876765274416450575381323376293323597384474684126153555925272342223486778512293659785626604934914941790989445138242736094417677894228637830963038014255944569721456334202588459018589554126668049564722100680136569305193335532465871825600297405620177668935020255394023800820318206579950074179932936462047250850009858761350309420546743964732038199396987436055301073261562360106367985055690046067723187261305564547813761440319994625878448639712432910090851490132202873551475069740335782923232810709397536623047382689929878908849122669377807770914687867081290760846798784475458877108493707795234493114418017299893058447848091153371291839162340363991888271347078959551929070720513677907883617738521129095839698214718118429411503393524852449825677510833872140718983126253731780018699762955627204553886764173850982264771196690710905454952200771788508651884818619491129088616709459789316718880183621645412902334296258843986197500120452555747889759112546858855741287161481939376051410165804066217230722299413583258272271850906849568952552644000710369632511375415692800357895158614113013491994656691107166115141671561695795318898444757836169263173893046975522222019208836672739508567085784879767415363342448281887883113630267542440826404275324205839857858605922523543625323255812182317025166095849244507882374263516409114812518521441801385487929709097950838626352375421658078625114656260853649303449530510283525246469043195765159889880644636766292001875316629949242852806122802105001198916109500828231047573921465972651893464572091726744385838243641430050703328884458582416856828978123218663480620667393893662399591553125002541287959653234091366129558008345584452602820675261647741325433020461920001731486923868580550225808025176357756008436143886593356035607221818678497706561691027322070141283799955494309208084402651998762469406152787392060703942692502526008350493681853784785061934051504642548831178729753046301914446379445357729323190820323552688786554655575598844958759897274037905717398823790055965796254121911484091866039700312264735846199687484497346669682813431096229321597038737259267473888222782264685374054971232340412332041643039246217823136839343309474375845856055194163531857257739118205827462626197155025007049688227833796143411044364997681145318680210701669114678055029080536760640736911975522126694572602509958913567567664710709111226605754328613071518209195457185742667435685052351676344767823902160938520169179515863556971107580823476141963180849796748893446139543690944311612076574067387251230806914636735806747160448562022320372869257194782991193013710233523890926355849648588761962417787136902487928558827239841699240242807966364944538324823099060667017738759926444215469216287785389218061176130103591006855533557207304811355893168482013826511514417975648489273794259037443784211388080559862166928824592869931589056144033641563789581263236662147745626319239732056282498529616846426389243233352755893489790427730692311424358787731193745388817192064588362901339585847626913468045224483088127158894799661158797785886766488966034678367657266924834521149372685586712499027085525933921646352978383469194687229709252588609178653414136721604860073703321470297543307067608547084103138062500960364385246902121445534601603040948661352896998481539208937986659206598591548314857244999106251878670632317861063988947853417298864365604643315013864514192414795945921370045171203835912987138468758407753025763474576624342649227193212210119971351893249893914885473263966395035774192164271695394108908607811934611871736613318964221217032145141534948151879323581472374127176668438802386217858064963133413818536319790160466283587575755759693802810396552776780352349536043957227211363474505495110329470447760104504689663030748720198397011579009055987516198045133743364644423740960318276274657542360055682102805403126836117186112113868757856549351650586359741001081563392438333937575077379484053137950143962067276406906989481223817799970510976269743924147513413542358866615219341558258542960661525911107338987751928123323261335531424128853697529869358494758537503010348921936939027036869677555188370268398252640503421306871182452164614814283325647229919647467647518234404482570596640033913251533517156922537395114454933378700477511308012295092637658836023079621546693919993323610840331041697741118809874712948851310928603808956925062230644921614369902721969034018222905033784605464137446912027810143101599453410321782669139371362923500726094245261499398112374702818877997688066108214342131801203779605386901757050782790293862998698845219185504718363377093820411153346550345014440204876539563811293472482428933363133524125677803444510346432237024772170310264654187509550713811486603075986142948582779633978362832430111603007289387845383906460111149036268489295943108354575160897009800787398049284092659976629815087042593783234753691014850834022308491311850838613418313195388471865904764947837473686801726212836485575782924067069707397000880457256596900849929612132189462989361180909876760857205609245379701022840525688214779546146159988046686938663253924690257085028257820896143453374422265662153554699778851323656068267418504950323605654862513725037828242650532483578957757152022412094322903709191387073924083949104892639350842499616037520979897189350745684817106008726059250808640148014087588716986146278319141747071214340636819354920734285285824902648144481929836508722902300885752446407776280557167839266657720549172350894830676554521714506728959168313984174872022916633084902172842490149560054531214536118471893902213035222872823730116763306447966682459336636411891356161721261340919341260612707471517733123574833563555259514840036185067360693194893906482100330903342605865733258208465217577754328776377532079966919959519769764270051666168583391047254303506573357062683968181019466454786434183574765005754703729093772441266876257233918289129175969427362106762899341062346875082528063976778948622278577712784071830404465500082474387464758648150832139022265671186969815509683799944169536503334864364113460343464740631867727925851984798312747269442947749756839897473439053759339099843643662613232901003751732246286952512249589299112695064369196153323943343788214725250877347417873271467586192601786087978782870236676801481959972250301441994121153355071607389329831743809973551108618362846812175328976695097446064104070651190477953585049293688888774664774001162784803908739344861118763835019040538647914013538831062260289549807775550897691366951915989324385245877773379320094285254160167820114998112835603501174653227677805586661293207972677466983487472746638587260094468713351843126599250151387853441224621015029201887075922855163791743157059620865016609563200734861021396442669427169952618046255773448389633078318402703666878051973235509685281823220887404630758709827053161770691194263913417790845392522112791042743606852968980613684099567392070455320452113256087700829431638323621706012728565070954938640626889671400950174807700140228272429267817913677535475595387021191438591257234610504781726814121790383032748674311164637791748955529506974637851088334558105662844814900205066504024843381524299955443392063928659395012888700435634078996378284425426941734678418772199986074737183884401569006692867869331511727689337564545512015317528394396320579539753391537198458905522287226677224417084587198599480399902303584678240719118964677181801144430417621526559528669585849226234085297371231591455042157989200566956520431781092396778959148231472648321158182364373739312308575906987296032912136766970848505216848978999358610373989983620909528857965400102770317486854885742928316219788711772795202675700056789595594262052996059170861541413575574103951562088535073381553267047597901010011239911465987414148223915657356392541272533545954524898354427174123844548158463487163787882394641517506193438259725558026545618054610606953125556551828918572312088714404286039480335847026120432990604753947559204629470834715951844141361645964740479301076730891442622724023730484266670840761605037914575718239947533516598143230014149172409127927488432469839527562353670738469734619075833826141774645131033266690807403112373601863928108686198633634239891051823270504003530046743437965535124179237378435858413329889538220803363924028286641345871323237876261451211026952245148189787330974174440695523496057638978277165092332651066668827639110374868630060567406703581035991815606560000770060617298682787647901244344840718641202367726938210090726266248168368051107646465352723096635547458110248401628230444019435913339353047255519780921986213850976844783475885340062557506881878771668736196524345213051954580901730679138937732082853801895872183493046942112443460417250055097973172413765023192432303733767275400614578227708113151199617133356604167463366621643564937538063999525944618883270592043678476196834420105358737988417043787285033022523062813503167847471329544683181925120865561363710327929007763009728705740786214384217647279675108209421292729310488737944499040698378306926347445332735221964183623263351433646329409063578717934411280534854290261726917781465071249703536446459090337740003019676007262944231856054880729752554527873395253709148435134630413810459477543323274816774720621231684811925233036899710383288672289763483024001290312123094725358129395183049176144660772269573834703590362854083189629095576798234792404133690514354308274884703964146669490870736063449137723498129759064682914984308546359677397962897001095825948804769385348142756840172629977558148561283469397521507100700116446831581772736403138638553282098276929980389638764055887319210967866203548556096868997358303087474611185065425599534771463345350048084761656688076816794561948517220971635191084849977404911820300953065292955900609647754039198034218460073315625373872198114517375795452273573509489535343457469490336124273674374942883609805248267445086471072386988576916679027613726424605164609739921951201279640553386297664000319592442664002954658247949091283839719037959836285670756891453761396901180474313209362306670905664288227346382997064679762234274879203755151478255889474502626519757396703901275361906513378779160285144689636764588850953037476718559412501963180550896791415677030658346969127277255385045936264851936179238512569441512994726712230536126204865163070673601911291744963184966411655062389336131857064143935423668325923492413045904592429811297143961049782229188932036507755987245779804423659000947406006308810079230037104854551125745819303915828834251832454104651342899143713852466725392579219801406807071879995200917575745766820177521456902204154917749742645579649483773751458736013056898743135644373417666846043002091977002392799573746232310744435492828053122115240336228818711439897213342023013099003220303910989400910708078322675331773141343964697548290985140097713412356942932884362165554052598915981891867066782238671981340406710159937061290652616420125570623993089124382810958424690634572894792480220597791179566573420229414588617162897813545522837033330802153963306365952034073026997934683753638629688571884763745070897277153846393103691127220994451104681203911357965036937493776707568841187782891184318520024488175005899468473472530291340766514038094123534309333058056719121128400256125718310197374775384992117798869930617108111559516849992432274095082592662024230691367321416559383129400539098604982761451472483775882853265359905767524165423960400135434804110055868232456952956867512349944909814975765994977360262181068921946196336956192742614557674360267256719524277186685662085106238940462161073279034919016829474961598285373527414863015497790312581808261768151412583355470681820016397115146091388003782747561625394165131109646190471832386378491004176729020495578215669878644030507389404169563488997234073509414359246432510033225274394302551914871801900519051246937829370256000533868488373476585872519721012541682211764872419054702176427767719501344745753972403844782446753869142080279540985209701180499108961819211666166213896274134732862818703022679594865461888340806662191436792454036760203811013995225379014740015474721994717539051497158533867928755189032298698382365997281224149246511091142120332547343143128746928966684603719424459493386605293654705961533080694383245206516461158543069357793208534330862654989923062287666101111665521438848500502328218170880236473375287392460098204762715447531036023242563062295480910789118511978881199468049203580809053131770834262290615011709881688455240867585850920732328121416375146143108088552550814761263007933699370935160653313000523790926197835526522057312177125788062616919660563467614930357988521823957666653458243837339395859169827741488175636284732963191911549918921584261523391210336133904178065290383661664657788119213469865561504565717709067056205314133404504724903310406967218652451031574740224912892705890612510619318908045177950097584213722617185299497708661921462678864175609133841460979859128631298572500575408161030956706865348986107327897532146028402045645003303332253221676501469531710476569254608466143010355513230640473045162588043134981707623301542055867649011472105973736932299745447892690922230074912047570625431114048665845208180124156163051153692887625334424561860884436341750860964979044363047040616121774317725832515680744002925889398020662827247321598524778614029847763335957505630054359816818521166417086274671516485099215344182191524492997865626945579480566832011830062864173580890742672260112544940960286762213231377354718730901188429440109242540160764039352281474411710865063121099257344620754865738003183655116283695296990172227354466922864303005491644433896625846107792348728681011938443980693942366548013861961935660013283958880233546649643816139007632664596718172083899450551381128139521422738612016321409303629481273967887758506921920878619568270853213161149972634335971353272497975361094365049401014588408259335073537426957874055102502646051454137662017179014323706853931837372607747160114751805520701565481020541347386448326904802951844682573822517045539640876301735921612217095821867986347266088790102560290317210070241640548720130882451362665013411183373998782898968139718162814698700783365709558265988902776286378164127604209659912278542773524521984339775174142123459793111526902681939666147473768171485183790729342490971030266329905731343364186729531089337461732823963475472427564888499434896467145474152959225323598375251322193659579001275980732913899385208402367516561520318569480041368870816069739677141759690087272641211513328705734825419905680492065880853423877018863636772295659683321201669983153708213262559365782074992997757690104535004548646324064822242484099236951665059445923197696690822911266303693339578550844072092952851293817712287207598662716762706761273260190025396604939476307602089501522665433566715265324913694027099349580410002009733546247999566885470075430890283889242706918181419927583991580325636375813745984506777348648035963220271987339636900038925892020269768577565241492421367352896621836678883993364485772896987896561015659115411211267644122117377747856489430239600714540253891142817866669377960903355943438493254630651236505744413360352532760146128379697619122413106562091841923434002143098939171414485203328798446615285233544632689483431411411870645910299506737454656497664003116516678082832770420955236232362248105993769072207865647435346543144340560639053944184761968161333022105079964068622652020912688655844091715377754785737343833091467123701944429219929483522436455652655313082198302034077085761332394578784620425110526890552765019179838839701782311763418181707943043667064236715326926037938503411277179956616674249949144348296894419446477749990821993322619164367719530789871250649203642529228790646299315489886499524418305285477141355594165371251623317718761710294440169884003861597839768604067925001756418487288553230138552618039792204576187418622290161728348810632642873424783698035937194371541828268198571293209472126392511037983833264489956170349797813867099527911164584660386647401794126054871618100949615186825427770754998057913985263810285749996769765774835652507783329402678602328174391432262113759005397104922550549829081595938820304551996716296395108510869533211744083124190047074134994104940246099949597579029892666477443921906219847217722422985688348475972483124445469973705603384661881090056252611778374960256314153721086396351132194874523296694821880127278396739752939558535070891657969942870714703316019331676202146218634430334204763187918072875941572650306993996732011036041746894968922345741451245710434674295331387191162176217796264297833072646960242567767914994150338785589939107337464389615564761261937128078017295694366155659857311390480100752929513631362542797047190605729090849083707297024006031996016763607891876703076766049942021406576368110121685879090672119835147575180781476216020653755231071074950564136509514216297829847731825697989493172570103723722485863111163549125630377497926750914830902132765880749141152460901278306261106682810562118636735811769003020377241817189886154787167885952395757383144805729506188129658841715142227282709899031143305843259659737483593566393691730127135294916877604740590184099792532627259413652243048599702814851732351447130664513628842358452489383538860498123109696073710113713464634589054718559398351723950641845305802300938883956796430717879616963289846071444790917121006698736159681929205258882598574987657343887790974063142920211772280083857628380899938955293066119076234858948407022220378868186435840174551860248525410682268261996181203551106675157647489575822178920859965111920685844860370677710428221615204680874136313198299670058700580156112986283478788106664639408578185387622092516599227254647452689642296553849093510788691058898204210206147085589145376282626560860925640210127059312754645513420316173892224330455113407356335619168308799583963086197565957731217780809824526713587217459173514163439418543973358680298461774142348854665713431303932826032048342640421252922029362925706916943589330704022725914613280638447477927153030294151097091218422687202902296904413805911388863087347960587740572795468570927799891492398157539636160038387610639396781528775385594933846847269783810866162177088138977779887930222606887787172755126656962443093642330511058186922745302838518476936342962815029501987729722195698720076439270776336644062181826750338459029333615754743205365178808680769951882978238277326284018778734850644188934738024212321032651752609407705399048233443227531937635511537836352038199755394766137420792533564618264107055939592839369159339541593014562363054497190813587008590652033673618705310800919153092610166474914067694185364170749690887811506670971883194478965012983242120464745326752629027213549968758906366559973430919471784411482887765491927830272433965596420099774500886219894423050796233347671378010652470543345500509824381790508717329029613232109475894299014037653090279151695750776172810435690359145630564603489123913026196923704683715259321292856498422109128216036799185633788546944758486596713052890348337347701437030209866769338964358249677934891322553544450211241780947665975242638905497987260964181514894598677052537872544039684299603148333195276672009144582009967509304844805161173114787685904256953429909248357582938768112944997035326555001648504359076091326739425975850942933312240263196434425578054956392612620468779238716859587285118677675699317341081309070535658716228078333080608666834879833105394318024662409774361236990555613247778889476103799187970077590943123804772137913016045565515245441719773805602989649803493263620128445588139911961575622905484627358210505936667035501138068502652054308968971504009369362171392052864754524985972209160448914730632458614428380924727591356713465455013347377146070306406174024819382457544336124386157641798650873627880066236958144104072936893010714332214178124061238034279139946107643975367439310972928357754528939704432257058113538623050755850171668822046087123772674508906480454743969816576768780589539445920362955222197741291403752970175930081331397063439236404524404153991896226183414401445106386518755702546906756587905001164870304080563768068798089698002694405930493717231877151932943881282997112080508719166555670636531294328328618897746857744701822433935335172610494351388817236055927772694466093627561133195803262662071439957093664259194854366046352611276002357164054575960640930017226046104011462371832076049766600868875066490804582367425919515330286969032515023317649903639766979242075401487707818553671060785700697934569861875322235392108543451344074581232467089390449652371111196208923637476423566231451614570776537332879694677016198096941501689477019234252301354458022689936855817744770756183302706964916330773896649051927858708163132140494229224929669288350095263567874867057503203403002271462480533585383158672301859103757902890660710811830629498898359362708799014681603844542447636460796837307851972953712860061847996737812691943779341444201589537866468044125170945689048952626184510980053776693930853411462149144728293042319745551774853167460644554010314817619043778715870082222278230317382147846900011018419968341735067896677478382023973362189793984228499492839190807849962039010193372125772750248651682559867188274012122984981127907672144169056400539604090017665881701297178097915955603889003426150664922724348803542508633050818623769498508534723962927564406334614848380455145765856646363698483241712977296357918476584704858842037607734269756223134947069434310411142074083354562487222858465216883992662638927001207980844066208606988494837455348113387234592225500802550766167038451657760789772478149831953966957741349361478923910384456432703180979228395738923483240779863874740939064528571773856634954973038295778222859383486590354560225530539720655269094235490381960678403363794382157100368907788406224735816586028477764882057293874369859233058114916116022959088864107549848743488179258287090433160433290829612536056868950348076424807941575487198727201581670431097224260987587957421917019786514755982640976100694033319145803828842711866518985593289997720051683350681985725426325913536282664858492084556596392109561806152905411735263611836566217118011700213991760171521591447875986738170881727661744328619911655221102456914650013033220394684483725016794207772409257118383281231605133544297432198449050267708175698367570482641330209497969204337896874648521594484769726325117625218559546678009379752144228907294374928232571455427945353584745831624478870155050466627227709127295305258135443968380866454201599472502590073214376689165842161939020957467523611623761161211274763620428865886844938887809476607540167429758004359021016979047842543939007107755708716168090276908377661644654627891254184916144838130176143189628750425979963953170120938763221393075383081943450267940236350025699388603308601710159798029501713684925656922993294867495657939034071355603890742973967439677009271785112427435777157284418845245040957382552359377245530891031811904195181828652479529251064067360880925485586581423881765480912040327240300233049009502680274691585280368904251760078985592168309658678470137244256592136852823098911630542163660406565094926120507872392389455322985012341489959638824811582299498490430355809378154422926914732356871874999452263556089658077068174537430354577918356594412770938107992798990837586974330032885934911906168945994431426814985564006355703996850574646345691354650848870352734842570021619352713178427776338415948330677633077222411831309245054945638864626647021412128334760567705556776742267455046149788855925143631220415307289509312212237291618925143152571129210677066172090962407541613455345513977554796519360503434648365516900160934947379204645744040467392135039319034500287992638342258730506802021983893510455304665286777765956259079285172825636746795764463684358046642902989057234784153306571246985102446150326760106294991881029420090841182479649980067279146543258546254996776102087547782151468599874796219229971805233323885422092991502465166440270792348164175742451906969054670789853742386299771129462941002993107052079548816659895117613089387988260375816590187509197967326153534461658529581861022624740531730365411381863115925742216433172999463839834248844171558871865363309049307660582152131169568257946205123596416377600529461161661004805602679096491021819138121608501100531246422599224041171785417961911526740601931255996851897699969006806781636556929848108290308923180100887671662411316575654878371707186135655817736130591999021717983911371992447134214807972065484582930547872598015129967541421429666948059837914312103645671341330971737107020260305398476999016340267067929301867823936285467892774297849021590722431484732764473343361121870426340440216362796594522742437743053108539189975251599373699825360899994684755091468861161420278313513198974189685933105213070658092185644699186193614968635551854369133505283192184821849400009941988024428042305171502832877643061822731964690368995214328581138021299183332801046993400424774097123454505014472021754227232756677331654586279498544781746895345567143905382090040717079675402810437578457894268658476942199739077947286498362970786047262955257416278930756113161838957481938402586818943087896275041985574998842481947424747346300626286702794760656127088496343174492459279722086789398053104430350141281932469053511384543344787983866646840226245226430784233463071633285209899816034030619169382464156545081172243900859955535077025833008458269791483082879871618018686279453602302932941851930972690750838721630441253992546790982475905838136939497921621774882221765724578008483667258944329826331551648710237465178558156151134766583458082506207543307572463838883014521823292726867115023021952355085256203973174364063494271631980730714301734665841049863292176353347045111563462963398290353986053993897210271238057431980351202446849586627587404870881101007360419845735570245125244212346940499732117819405234935072707074150215452364957341697225651400686577939673168057009397822529385446053323379796762192243124966909015378380213668308608720130470382716427200226352503451256856926490506914673494584001369682872152040716400556355998327535405372686381099012672837912898411498660654759067703260000222970843632675437507124041001358365445498125399205706243834984288758427213784602910949269176416758399743944308107902987356459930529132782509748457937858830936029195049237697032066606601609042934324647445732411370911097637546567294622507182658600183592109819884236253131213654045738133651210472631134013947864868556562099799195710314227134084207442095952614231233541624917893991092027701499304374634509385460200177473174957742933100928392165049888106845003658256989159746689861318330743043646030128650501370046077625984646779300556515222296361395046960338539166444435230998835741428237191685494627119820562563166290215471282608141054612678848035344423132966261567449861153289199633849614135900882418427875816336705929861241675666430930677592825896899618515705750170421240827935420612361338744715861111041315951545185067206447033873081415133775862122870143610290333069036757750406017824844888868862454837097892575304675440701175056062039312327825035733377722589974609882001453645479770766126767525105376493877703201831736159324205593869413666185922058327710366762916144503093047943624981077626903926156555317389397413717191612201130454765150556916764792172058758196548465168664576560692702210012299380105317612054478714845684035222235741019836769283052227082126212359040367892374417192116807610849528487483698226043044663880375374521509882292851806195251628267978417362205095494069359892032737674118127382299424478110448917634263896775469892766241551629758888323526548501663241121634537669984893357015654946600470287916370824217535784228488905001019199203545203615052392809382673158199106275436219438244130971352028360471434408876233103578540757987273018499406554546214253522092512792550950880433192720953280372140966527338997713361103069467475024029707880775416620879558570399135307472054804251082117968915770730815074980912344911776353963487893556523904981996938665203914933186039331933730735363588601160783142769152001322581088887662759268432303418950105054502203987782221295129969320248184370317208553603027186368029992391467683144929280063279715403135173683546167090615944198191916634856181001170632508027693597133917411460304865406812535941451629602649487986507048069518678158313613451741500186418882500620600278251519480521545807977983535857527158477030326220030550680421931930269418532426729172397444359344196640823095958267846710002652084145019358952884573252244600324183352127869342009195678543230818634486820780628214431328115242763967152469688885075773447182885693414987681348868655228989511486451217671927303711859812697900173184973419627413060921761579305000994901201318850661464770201667386278625532744492630670574996437781890480000251755776598983315057959059519707803161345047239044335383006739599764448523178052536717665242513812599395587558409639085343531660622935863089212120553469916623298639231520657890523476281236494155667132249791138700520087073706351041188194183339451805931531839157240091412762438721700251336436010776982885878100876050792564366188335950201979142976811790309482863419989207541345883717198831745256022266853663565139588208147682704953030071820450952556161216574672282577984067028751745637707914248091098296604830973334973377211169823768849612500319558887052591502880132708769657674308910932572091960216442445663978607551606277881390896789667179566630301641684136801195931145623029884612732817058061664736716513363798931616155994178194201834791713119550065978083104192722363481521546768387040429409593644199680915932165729149849467641941903731943123454032289088716020126024195390823698608400095645055076907139714625729659594290732678612234006662093084299814981501078071746521465140791064615021876543818451033003824823091206570118449689612687419487902977614457389699500135659820774125321636743984963934898413853227859417272746810511733782514705563182372432281215923236864314639116105585110866191914035401016089650997113325745835524941460486865176140636728709691358067412010942894251910288161158931351260244071339322404717193404159995168666414590829313808962727323788784073825212725536732652004219604650051880783105825856514277598710855419696145505799740613759494495978589595576238469579386381571606579309266533438979821007804958608679192475916105050805423593212395033731722138532795902389818557001246049643242640700002944187165416664295164751308726817991744625374193098684900751051650961386390738697582894910620423089093990994387036257731372232899104636583584541323771723576170566587852112346422496060823544214496612332303816723880143079549050974294522240095024963872114457947055497629963229582339182752822986957554328766100944777448773883601303245467229844564102401289791775915851703856795335272708476588390196439787738705504645114572051231592117133860473683112535520594111260895341683082744980080557821536365581078258266668135265436381821057419866330662989870163464961168967519928597174287480400101938476186643408533376050422077114886248816894560506549486827992541778073235374393683378842775074015045077971568551859728504456365380200939031768030933938481109994605938893437345752300928888096103453939172320611597225091131437626251829156357417802737663369590682342650619981882926606004938600486317608640915577921835343056488269746841122257468147863125194651015853579292847664073210726748930567219374914036965604505186484926755917512908320702381340887720516170782209576665417292286677179869558214820101955793389587728925138994412515159312739404221585354519952496181804437051561104949965829486438099889477036452020135852516203288035263592257926307020215422464471063143512775560420201343211217272715952847121251108399809614433476352858212345579592679303179570705716894487385542963374472796720827318154476828908647358313992935056375795797698685706461490683084482120531099148239048752648468429803375933979713473975975709378013511570909639928836605081619765352092413889254970987216855849992011156995187328779145402908558663485325570010666512851295728073458719934032922892825853107539458830043152103452308385969009827275798786598534050600842921087771975052618274131112747402209848405153916497985867092138279701676762988090673305384203999274013429535192354522918055403133034132743721436790294646545638249069747647119465377317185643110628842377993613520986628283553679438698235243427680060192290022550429864265947718259281404719575009334197322899157088040924639423041798302464361891351563130604536069262060416104500720914145106736173934756976691206727249990992101922368673753048498204744574333393782808698433588578275208277730607017347171317645931572699984677590152644538818136722538139015975315439436092359315654783163789733298963896707251121829687244689808572592079906762788259794610073300389349374304008145041728391537635991659198175968942522679272235739908698194268103978977193851762530978047628419885073939635844071279015970538021252405463894907623193172275134567403607875541500898826547463597940673287108700384072765586531399547129977322888437199173024561904126030447701589474872736592452979754197775513092162103550141334516072181895167451825410021335193818688180896508841425156103406404073246154632578023668605511917910373106828892951724323294908274373927433162261306262840697454552154582238573198300592316915394563225030303450991571332840250217131353714834545921811840171788621186895357751477106358181968065829216525797062488106235544007259298743636998218066057634175927519326506216105887723607524557024536216263816324260190384867149405638224087750250998276895576046472468109798000538221361176317163112118764532815126129948984251932494407772688544027875747083386722399197700368070136352494340049565599345905159684820067620043733144669990265631134839817266288387861694095268877119884265893009457221979088817421691024585731366765972286484331090661210661510518888635788558230664032551772401459869703422982831796418205417888292127004652229866332743195601494042684109338173206820915340686475757551046608164672385748739762025214282754047867923283464215690298379385606113441079464953479138680526949676648715385600159589460964432473571333246643431401971036992540958197906559675837952883688577045216528466483292947807179257415254806111593551046313489127448883392392804613684375532735192881263550986365550774713401088872760989821600270837931178858509570213598759194442848701172113095286963776808632707547988021007340280293568081927814890489876288446733217282942108265425863275485510047773225702718793112531847121400322206872961568815885343057898866735270425181995769164525727142650583012874128254311416333159931780053631468014745676153647043894975401053586936021171769842444897681270792184742972784353362625916830728075733645171750968141895803866869415298297810945454715322893141130707207992945061830188636130664463757124432308388917643932815005503405964731851488991384205361769603044268591940150009159302853736326489544385346072635100584187857523544141318757714576020244850056237482873801303996622727214426236306773739904560430508270211766648987438279630223396945455298906712756630008834144743053591487437764892124825000185180258618350256751391242104921583631765918360064567152435744862897604361239227355289424403434168825852401981920295083944311061892688628210746842743381939760002587930424577131396927227509276804124210454814548916117126079892439593136137493557351539306470854640623494083985369276752938260157246932300153520533291030366936062257943979967639317841946141967183298128100434802400374544736763598370372749450491625542250140884351771610936485650562759080042635855724142329541504323726188269792625663516369339210808428935538611620745022761906040708302052988157258452346260689112626320898996460408611353556712693461081641070442101681327477683330769596024696674112880584373561792708092717941184170958787759979610248898377958248375412738478000943530769205031719072368053636856405052085108173216007411787236158008218449154453104356251726737848407978600031449398856730893907508427561605764977293759048160583006617870347463249141420638160714802427833906846106513278635024215745001568291433051696588781422980511041661254758685251568418115196591864472863026579423303532510974577848210997453777572638627263263621211458460230069011470981277807482727165331976721223681807649781482444068462124098933980172900863006536573479311448723593044568859946731739376569885106864243411135602122660094016686923135923988987604408478660174070400985663372906502667765311389724636837383291031537910446919674464510531593907741668695101604847174534162337245206308218277823107962898451955077923305281806105936540254393158432066262799646082975826817178163941215159320178322788845741030538132074421973044050589049224957699804830018359126267495917726882318256462003487640718109159251648164398489288019754490386109672219767283592492821909072627326567143742288790837178982508527051362933716285512541220976054817175589350084424241788246416547435803056446768203836767249435201422956679014911026422637405985053879609687505663304149477946878566997147856854526299651459040710576147205439849862619906828878292479831566126341818300844773589697905005751757756459396835185773882153881469514444361773804940609196732465672970035748603404437797516558213406910828578496637379531559890355993958314536466366842306075297157374552123929228285541354634942166199696437285254470532292504462704354561241468830361120683501261661373374871007713940163981066041141151028147478277070453112481554607569621463639093977280838579540086017479410226282142781687059415130598308414809134613535376988133147946875751089520654389855974908759859386796607837820579024405878932577574504126488637229009931925172202502538447497516255748348671022598487126385406972916270845437841762901101276161670826488429248109100171354193733811752103362875751544650310080855167083440503216586086981640066414045509245476459538243687218492894462822576026009481391993210667506439320296302872891482801150624246895100593726855977549318091033604985245922078890299623340087521996095856672307555185287981512780661396893468245546565064811516664820060592027803968580165736368580920501246335742178337762019105102273879781093316549465833114760803260059607185460142831502754479860596642607505530916312679981353599682787100488811849132100069893177032134610936551502704981498703449907392265963097401410638034041730956811527726518422286369097248175554250527722094072687047844403610426408282428215652518824718312672088324988129916284204342770415559260666055043071053284585047323777437352546330614075292972638756881482574108164251379024772029955069362146065134911240232325502095094739200074247984087287993603364956687659787964543374265320775278560537807198133619570743675731750574766870907525345739421811914309671876216095038380872312416291049705715923221401213921316032278099882318624560286158022196127251824001092166192268009390649700583426308059108961557433758866801573336333286869941820603379776901003670403650144247948929457744014084667464877525721462127200886727084700092600189063677281664361882283932378807148573728976039223041688010866042774953525339554967859953925784406989433078024071199981269322009027618245408991539708168876405450368385187457484268807418183602910913823755639520334165204931769633901940515745921209327444446064938092238818615692153902468514034635960208352703137248054966875245649668021122846186721602124787917309100045689924586972793786772507711166003366004035957622083873232830775043380360934311026581715127362509983203405352831249403710470248274069597392588115347389283989983843536051746307374031933435982240772571261035210791748558712020772204906974773432085760530146176456555290841893790589851476653946398288292209749322120861331747608297044273876158559347635522644363765849973818223599743687016761613189842197782184097989855104807035208554188070633308706904899875110439623584036393631981761906232947300083961826079305922945252320617621615413012811937324561903473270244221992324790662833575084600792103253552575960125814682422977603618321071593390622702555140852379820761273591156766148517625227214283106678418692223200413843755521323099648827160124749790321085808960425557020940568594153042966943779733139583252695860361687466533900824448909346500139288464506075515154975862334227168792965015291312587242317500251645561242177844706248302252613847735597841121138936114080032125632280030790207907354856787006812618769080935588660808549682310887998670767262837448073116979800921623745697811433180449863053637612842067927865480793882570181763743036640159147800067994734417133174750639523743488511597289318077237322576079759239356008005911077049838375062149594690635122249147608048561814860506745944675362847946803832498105181861326013959085721597266727874102173940106636151520552408076442068423028848389415063768054591099225777948197833975225441600258206858205256238171428433262997217525603536852748011523411756896650908160228124619643072547249153941072459156555812640872164558361805538198960103432048641748627342669109778302096587494830106725269741090556633014991285917313845251440578084076373542512671325431084088869342027708507664769919507742879460301100712913366351145087834450374148544849561151541197229598918504852477229781782132481192962429277556427569915483198524191468983968546447265177967135682467171585436815455101216760778711362865162083638634516957115508800524811322006251193512500374830602384586563098559709188693313216474896775443960921241886676204208181319286231768417135458298870369416484824231809262855180877315601301673724120243839051157220654450122757039518834574256408075209108042420508458539393225621921473360445095969591940819351448553166498242793596404280995218601070127661839481533998929118587644803246858922012193560539714268675148956388820603112865262141474941411399114669759476237730182238127532325349980250230889057978741810475687649744787376825100983204543314795812034185111497514497713219729911157873008687464890259727296804100053498140599539927422005777008472372774258314752737686120682575376555006947789034982987612141541231539430492348063610962507983062327982267689399416541774726919442490685518624579240139153132746794133656258910853485891165386735151073446603313412740942573435344988712107911119950918356501230944655387379870159683568785987842381619495470368195679479982845160907558410161770332340240245196298180878925058284349301979321746888691461021202110610797829262908555683183409835406461791196814545339604773872319679124198777068156017395886688595667060670867635932987291549228652321185231594778585292047743478758659087050140629368184226629058619389625715450750865505659792163851388434863943115559574636988507563653078817366485953140931315523120309604670376040337823065249421484791726348447898753832278605107598836474376810926477739630022174238529088839242710264072121510178609784089071090667785279400517180072047753726453203897016454836271981946857466415849485969126212755327041443598037528242605673604009899276171838691195217988460781658379145045286717372348972446278022976792619281403394937950239424072265814448420447511926012024792746689110552419722471058949098793731930185596279794580186840511947653884802465377041560845587876364958668293437008569175194024335962677292918108149659649311660460231886816586048481811300617814852358958554913798520676588453871058198056561976017754074123114309140817016029147986093610951560870996780657400273597503948741891858059126113293823082617772108833516267603956289220138979729283769589124215491821203327199447222598511014963933806338131114439768893314679922903323051781527822268105137038869184736380084391670871370553247368801964191736931378574247634190466671381690925192674890499514189749593806479678185398433554896477439974023099538682851206036384265852305846631249080155307185849221173974359966539519229755636345262302380849756607402440982876141678049648913190884187810780709988353873140428477113346050492870250247475087016401115929623400607401626574669139122352362605264033843628331716467174638237224243565267800492064743524667325680825159406288913710345698525629232330052467158661458387977885410663331809799858544568629898729841954648252359196925901964511794088320990751817739746751984940605173508720146809532967685025230570470347220124217335088335483912251395076642766099849305827753484720711183754669989638442820188584781649038813169120022022779763927066757538505373711517104049986733396834608743446959321148233002844927585069471592850912239396414990277332905224974239483959586657908936517012931527217668657303528353583300770917586723735204522786212583939189902074216695748295645982030581606387176399750633658857081153407710585192317889204401655519029754858011887831283115360643030036538191060262460918471978479885750976367866002582243653265914178468625430623772665825774571027259001323726271226805031796476733796815783176862470059373885708331042801768494383109321879345355615577371053463930046739582535258719514378629127979899354911813526712143476737452935110450861998302448658848448221260457397169670788961129007934725988465152687542648873333473835081543595431781272588088887225347190053958678370507332866982387173264769224650952324794698038355160640285051975868881731206311797947205639140615383833707561848958915503534346280351479972139498946208935289473817171856292496935957214911815486287094183009278782335353201131320414552280826931463912896233582741861723857810254374860468003261708625876371746116630320233872922030200514498510365274474656344354134073932938527834582506902602446788392754548909861120914993324601152678208126620841253013356443944279807219376095144449552800944443840398991110943838389317266110050543004063400205685815839736564126439073023300031826155149676463887872449010175479704666858096476937105829817490862737081980091030609694000706560358887540467000543453710375794927150427810802525022057286372582553724659779921869456393995776459576885183562650008251217494762947108685970868382427876874664988911370885676197087893970185604433697836671929521341148875135936962855226508714761782465718230689728727490649556752389108082700911573921312666025695068774373332952900942772871813358880516375136212022041629717780991936348092254159806301441992055222812428184826600354653943205510845575389896536276292305581689305932685898450443488413556400762755583642076038097361223698353593899898686519645181785452999135437211314881002956706817153348355525628438487358930446621337301489473017477943661520438322609250881304963678368848675242743258198173213352007910416763537796889368315628873392731976873956397691816335130274136537927818058361826792687819554392528528967889001210028902266150065324180780435789293055800125642365803101904275437840511691663327244602289920767077147200530566269818346207265095200845969666271281922291593161067900861493825676203335154294749767210208115331456520799002346126351232320315325807970998372021118081497356555300297031852395995405293923546683953177844519563307867081145177463902749316460918812934263584668281575906131480394694180231234981628693972785224481184112452088415986991056780143967282757894450269545791964319193805477671689790774890148720916675828489082440586881019407105501682811356789226430130155191103007866362134189601579063301039388761459013340305184609240399300478986706369458340457694864479422513233500435842916931561828189043977411822205024822139901669581300633112721310390074033594658182656674612033943728515282998214650124387842904921693055219285007426307774816162482233522528773792025920494270574428460194727524784046449876424361373275632334660047870704444065820956095784667001846141302758296587708073173676570352651981260076986910073163176550504296045922090100668876426006786329550193039544746942420992547121632567925256713683012844140355871976745792518416142122433281986826670983367297946078473878289883965520193371894531340504434006098596876917818218721701099500932386727615342435520431507439403541503907604509725047080141687146657248349441182725770765455965298845113499101026115283541235664227372401366166459093536733011602760145233368649225570521262004390266319111764596882189478630903352996199553404487604668076320321115658240986571414479042742673700952713499391001418027130069692528297573187933440151549096727231260911214047223758690294500213777199368544318900776117946272679905742910622721228800725108165189610796717931524149125403584569327240065967708414496104635719259120960388390402762134736464529335246764565876934404675132798524862872784400707832276687839447728560492963845173513383236576744051449546436173398031914271476250941869802762800616811936791794938912955875548067296445719828325117506292330549392717705423351785282331338491349367345386884960925264241958625252057509346584154556571920717352226405004609875107324523353515313724726002860990327975520290917727979429471258051265786075157493404096648605467067317842930472679740862576771542247040926256458079795353203577019451212707230537314297800300737960229116220376078019994225896314081921607281552047227173563097323576071082958572933060318073164083406720686080312270158471789903751423753072098457073076977018681946876977976777156194695467644846596690061808047833162430727002388741459603749191419085587961944860896110444932365718173523687051713817214048792195384487756585255116571024132412914588130358587967504589397780814086544357712571985337143515004887274785996536624178735645253285265572132309974740902909642095135888864848957508645870882667476255036238654376815721871694739035162359992013746670164554340362039858972052118076149257633066915913795477429658935222141070549265679718301275538327885840798450967612628577950261719783536301511386139699095988911875553355930488213218870124313325779281643867044118869067170472729407010443268369945635483946705229678860508939375732975812534296058072902683700166459845292808477403718893290838896471533180482790227653222409673185466069794977194118738935123005378344080901817885661671355170921621365606772291549319833317447743709263725253227071976985710709845635279152494347950876070074960162138117992434053017298685471954255899387000430369167178531080899988136788303104697268186785836705040789709190630967419656131367222749165709133116779040997072841211927261489372679620458239371941204663881289940692735018892184694648457164244021894845173458362469870999736587547240594186969071690317655078887151414476702926167427405939255052372624119903416040667893743223730651524718757442342192113404498340088063967476308471892773655951062644466071282544446781218469250711297243107424493799670918266670669639371410614227183328537257965785179290736120305273696669272273622001687724754401680125707340161595506267794403789297906052458066100570173758857102600573777589278773183919983465857763801760327817682141943878133302511639732429697495468559567340575730062403116249583328012366722313158768177858303463653120946931824299683182997537100344199276192293040168936772387796587575741264402175469990572952898368414922438951368389387552597381976377326559296635670893086015464567345852074897753842988755772417858929416535450561166198285751630842958667212364399335725741164866533339623689166173674467118336928051192523545050060115224362627852460665471935672956029882143908688740234337211397471886565009144285714619234136410702918459499335037248338135132786634776039790097095179468275309255884882105395930682624682336646329662076399822379298907718286739015265579981661309349944009179513051912040173816244530668868499866244015557651356886214598251266331513139689385277932584423351713341037300798812903537782264818502439265496461967128078954996917765684904775292919153124264694449145909490859204883160610429013813035021745931385013643553738880277217078372055492519613761965629175124211153006334488120719968143272355927153786572579295533850845026307561356908502578045675546202378822525753454197743841858198725258087804636098333569376256784591355585780804306625425224474555608424958303786060034093849896148101479503639636555299409765016498688609818000728057607903303743726660209398778094462480066116432337573475762216261539748911624178349307341817323861558477397685555866825519916042737816705374515779003861039087707029231618451714197218344289913806012996913206637428971597979399432995164361592889701114761343598638125432325684010674100097661327742076160088520013507197153466945069964553774706430220688446858187695841329492442629910084801166095241365102565814007709898032171969969750167757466041993267984336719957502294229285464673800818197140673654450813879691479471749776993460815689154818399474751974626200743724726147796422082261939424859599569173832779893955734329019098180126866966542366023383968043590026372496183081366030857517982274006598020079656318969531736679105172357199929694018031123600753345049941158818313875430963374340176222554979817291545614343547409517242553383106661920902094154699770655343534855609887358843121520196164025651678611118376806967113086643225965149737955896876480529020048687520183552233393266667940206393471198453591019619670266957070078124522005021507289873371978503087203238436179992013911249422196923261557938943347745891161636223228917028101262042661916015295667616771702980202062134338351504327471402469718502430243061278724411299186633037077881992861245239853124460034181128419771062045805694422848702378818115624025737018895743784741515900884522527851378650990739991489249612151926813416210648568786400251872399513722814178250387681871285297324365301695894660724862995393034306016919364246190350198208492907938815966537298978726896439754783561864773048859043329913821058695681076724844403290784051397057336496958925658084585935007972209172435781104738966811554300195977221927903505691721146840218210198407036951620711544067988274435245405949444893018269195975070090751551340042943981106304358698324244568987019698051424117980933587122958795589941680309131051191292609255172740765710444085807424072401453000565103484884656903773061552980429556450234731629108239000209987642449289181436952285378257146217578981300792795488644743285872320783668072272540737910154087923030653396236310868913079364998754965238320397404761208548840716036118685110181504799387153514339965416768379733664904928555201276275760404239234565330171898135211665094924476069161060086989418751693388483441198332051042056285575566158135610288316146415071284395535152363934324280718395535745839311029178222619522410158364591688580851041021817755727463918890179294765878609344812774720156216612281078401740293995579727247516460329283541600961816196455814634520992158320534545613773854344759563986756994572354960152688325966301057655184850544575107560053635430501145809219355620372773925124003167714143711484644238508289574384944001358819922965388892261377911839086885011250852510216122326753518829331432602005848515212872192710142018274247033012794229302112250304360870973283393388804176075423471298197779250227843556333661600309504230206121268685926254969779378886844682083011614418318301066620292885321592949855309254402335187470374933398090315487680592688325766842038114686805634297221766875169469736530350376887888797979342679986633261605867111266346432872248811948013916224604926148938272414659178660209570787168751400232883771236029483065958539323211593320404818357268849094453272969001830478473303322158752630739132336448058275811336409410187707942909460353377304723742476972187846825707042357856671940288995651000454006121039801993077796539883331142403407012285524179234432643109270648259159037830674130965862912748361269109469549570890348149339004759175196973323115683097669063573704262080050238969375542469935160639796588953555561642060362178601514175137146599279230328371182144823099823014899906993613911706169395743024093869459537549483260496243511635287115751571350646741624072680192925180305240247712907788385991317441456693581257114175115027384176650472237572543988856390546384983737368030986501552643233906236369769930336563035058295945755894026819350193384299272183328519115744507268895361536763962263482639833118382110843413382907161338413101411811325631157974916926274955233759399956405234527288377982414020105997052980086845965733657773085769940800895651939963625454095540527748742435102428089933246976352911258964386093312824050225734883414336876211300413141384576760194377553463102346468806268785105411554796575191479144577499528472010768249741623911653540680776650744444800098152106260315197843362675909708688117250935210859213449475406971473886542855089818361231447125202612434731325343965171665357933444231908700691269480432833310320970886834273993225883167545983118461741232569375885614550549666607360824061803187929004702146743357136625671707466609471034987745320043030989974375977563841206495444965360015092043459681375730055161189399322416659473918045665943163631306993913398482627804720768495272791279340600801398973462529971619699450255356222127890499384453458679185267450121679837481831967554585381174566180731969002200537014032992410127284447368342083436961557725199001452405163509193925996675016238001723306788559317894887898112587334555974443761348814138697001527311239668546904301012207322789767347427946123313333627022990399095907513140499246466273271028031123171313193477447042570246407484014735617082165360562989690673518657727455171911968127125386181982618985210801039443933734040543183444255684765503744684856610539420878120227827496590026894762371567574300542392281498837420982097414959544041228238685945915286679950914809903953550019413019167645825512116818990849444221122745986619153265776200638368891703905003917102983225798422855396062050563920891115652207723553626731974556352684168614733733493019382247339558502522256875752522642911804214686949426191747681391677023461155291374874002325357833010228258347108994338086458233990168045949145221219375683509150684409486253131651368959302361489811360665244234560197692442413634237611674949337226258249321589298678570352782718234084483076126607965723075839296973833481987783522354698968409075352632630135331440067762341183410163203343025231902831046433593130413662799715842002670161302138903887059192958376975460768005694750047905216364486531660938881585815917998282144124417074755032267378818160359856880956121924987557199301296109685055789066589405300861799845392456115102441712060430206040652908004726542383149775524732200117411175512126906406328653972795191657051574564184602836919055865573692804953499893696323866090496732472673091395641532247842160267530471469289861942598315910525921774328784546731109309219277995785122306096758931067551210421161157952061719126056806667444902617030233788050879103138995744866702698486778648857732759126762813950649576537555807646321574199073330895965030216585993431143900656447335108591776312845294855514787851206378361722691025383296493188590353377823764389069478429106861115633909920389147519214922106392074833667777417623941633109944730646544984791211524172118902067946390225253698330064215138084174096768432073867876275180610893148156107140619678651405220018458448072188773215411177765389507435998524642444365695812133660101726350677684430747196942155011497961674843583594207392700315108444300945534070044230388414941125868284590783529182589387733923907663298786867878574523691446370926541832784411714490186125532098353835139890679656946166414829086205831010145258851182660676398292290347457272301166552879911765307552872953931076488200747720612228843245475720535354983371496006034707827609491913432111177702718266493695139983157540559503766283159577539706847560372794163471291776622054460786375425770420582081225238536462704563302278998750460132934984254612838783691920738990151095401256641526561805357245033552635309747258655818559142064017193249384005637951499314056919484964623825959787837471568902305175429712244171547776214240936135515775403714925050990463985322767783296051958709669529930663350251874390174945431670984655314070057158890197388812378728586495070982483607527590401190364798502351612585493842625957713482084004527520261060277289498117188247871314203682297329515715518410115482348136772790477432976818735029380456630867170395857524456684272990971768125817608307390982264791053734276715497007771584453849306484709260947287383100978174882009056355418273943114888715565551021106199271583150518078142916459352028764084701562431684997445982481562153571539568584098526585396483469610644107540047510411928932720651197830378529040216226429988935964417041576917729317347760421773946879132637587714732514064011039994006401720133134328729050768722161635967526977666311174073093556923618702111963090802948405942964843249161438914367403355856701858612166412717828663330266567493941822919101509592921277587110514021489777488310688873896721626460988523820867244859917077338009595326071476296625775784530852350610543157360717694334942977622128731934237790355906620747529198980029207422797195003206015379968414265638524805692741360548382547147507631205033170205991650774629543183441924623782208949103527863536812642016062012627799586963756171467447507370093462030402913859852289888464359613681232009081730241553802984091347821478093765715252148564076403754367970767625976952672300828738261201658641662319930325593351166722473205519190851000953951698064955396495693159675917749556056729679639102820342001247797642578741773247595232324016409545543766401390272212299415881635075961001752267553717080503220336628321683589004742603575768335814064527892186101665387385365056196341765220188583133224970596791818372710192637824700671033835284085009730628964657603546799934616224835574136897872400507770830496026651470657823442228716931738447260780248180882392299329671415071778794382128458319370037769705212585549030098413035401027215758348778464070834278962095387857204975412463281098630656564043546641267091821837855415130086927579454381609018248755042132312707366182819906023504549707628242950636528380297008606731945667115981031990942460340901386198644239727378359760175591880929265335457884261430134422183055621037615920451306483142072937721190741055135925813620474196301085831909302493586867181361856433154731756218235138559264771911203860023584441967337667439906465192092260073899536168362856676643077803358966667355510424112876260895009234930969599994713267730259266602020133488317422861983358025399950115457236791931054214586971855157471066763069274824002152847232320463899692520362337425158889929272562966530281517537936862764474456127353159642530907549935837230501609458613797873572236626115314718545248705233222507996078869067320154794881750453732298774558598548830457690270156181630176734612796495003145393929145810283804252852407192196246084169370679762180753712906798450765004011752705588319369163361872464573743583286992093718469420499456514911490284418244748862769872369918829865507932605665475169300499219996467267534812365467330350633097091996706392001999383935963408715662647047322049030429589020124418335455479776416095229893314049981001692569881220463740538700040589619320574857369775198482725983487181916640047374209669929701733279114302734927654052202516302129967534797319044348236478839483590320585739671698989105611932352192942197013677511911583974782082270755422967477361652895489788218544277994590637155271048187645173782299251368743442915052019399325531440785757980613610425455760323369601830293015096650285586354884344015099696249528898808894589920236718895591958760130910639845629803375541398026932554859937934345176737588234202619679336696507570475499062939703569960062677808147867951701846092748439761582611537513278538248977664920735543720290452400856886571020166050102362691507327649365279636429868210056274214117800361861750872269507751387624950379164874065034561530461077815736874595422457766489515044289349755301703275550482085400587275727383533387391272049345223995430728622399599479954587493186827109127146427328342177643908734306546145969191692301693875938202288161709462984810403974156213583258724006997691458309069100891332956711196457148069115445457202592182459055956123567451617327384643648709620179253751090013385529835511627911938722149248397679805585265287618690155532774210918897348539010737149609277915678015626478581837205404857261265691848413989627067365901251418314573647375237044748127550437287362141765307361313724282781021061700287735707030262204544557084341068085355691360981904768849464731692091936400461074488504740208053061518858128990608910324489037619981308408464992116831666814440807008370860689163049371315496171038283051490473435106209612415043628625242704688714934845689494559266890162379807804881635288755194992303746862254609911321768567029844267733898311947504132794541007167828943359969334673178331214705676437945628308426867565401809204442857599771166488985124430883605616046367100764186267335646057972556067464546364310784006306001083838784641256258196262259006515215609629331085443031426009593214733318280808036711823519273990408238989318148012198568924674703433991377932498259266494427688477413432878817679351492953621187744835191525774501458255054039824655720555315256474497368119491742823900232680162250744865711711391240847587871833950928167999375888774501613290251279438505387836834135992730236316030329727395110113272222429726568741678788503640121763345157574902946336509527773447111527653033141525666223625386769839050838075182766476610539960746354964800291223497087728816956012946675032749474762319916230467518762399288471068029203824473771728515407173403600439635001600916344300121046795431624219048116751872714254384267583032950177977271673271926368864368889945929325910533877459214467410315833523735233931756117942564897346728341597916780334745891976709078288984603277478897078561065881078822569740030884374026125326852843240728543944312065617469057751146479360458902444002425002200473869216132406697899909489964360564543203151984016866739396686423833140235483795849106432428828385831221917671290865762309408259197911231280071349185148826625650852484412442938290086115618812432553092138554232416734615547898532051076862570412994319826625255659021557446925840412419580930632086234635314766335933424806456728447852513200741253970656849973348460440190030423073534645681833079140866192537930313972291007193992592023187974077697320312694490271529516888327622448144026647402219771847903065420398030359059584996495690251219111103352607508561120696452811689201104311166086396429275019484261319559486330925986047138529582498669461703768067944123281016535756996846306692902271271822358935344247606887476965480805584323253050643631332056290388544938887145789341792386062125935088964480869004818957544023502172571344000763784570965056924136122292492844628839992795804727504085639151038822148838755328417153071120884379905068505057668694058743139182494225807125363243085695579684036154047659803230124351742213558516860630763183725254037882371328880602288077674954423901843225086942003971764173245755592855576175973321383236553962103765455396081535762116967527119187998106102370073703628057821536435398148944946513898435873293601859967896768352492861251371483806776717374604836220329685300757791744128630641342823019397019375567234928996763832340878461850542462426926165963040020077684497458482344237336683939624539084782924605245314438660290585205085038878952699682904309312792379902632189011603116573640981285132822975985482953351714412295243878101925176350150128820584272700500112741256752421048555656171239768558270716997173909870313751838076432632990030738902048497001487979628978220030879928108576716871497290246913673978687519051834446479404171622193963807970188092464076794264869352512274947808702689340854081702316203037511608397064372905453555509315529707622242771951494100267634311266381103358695971601495552035234757618788443147295354032923901693369225333578867463182543549594878831217847190623917765528174104385329889445947027633181887469077626431731414512057434516545380427988573194354354758175221014776585488385912548048770292235928693663870855172737427277810789529876690731162303298513965380062955639676755040836724684502973595820683127279760271817665977360218651495936327898226900593215447582147070249966878210993767932933970686813460079649386178600990465321163961521725245823983283951301880191360211738033629951091607848112769330944361633666802071158048778875618274662238975023105892113724559623064335138055834510195973537911667052412662649595815901288754332467254467750937510913769035152948413883292809210846337738418159054538969970934621136256094063884233056700418158488256879812725554084144626449228313655063862983354875078730225607568553721982212068112802849376571378954464414454469081514262659681594833562452952198516369054248292903357201694746424521547957720329631777459621527103455353432879721586516426605657586527319010509329123900408112004432831367389510154430205782977439558410417352386040620725375268432098273969356062304220213194066786383381224277255979995298368671648304404725138883851132180057586493570429575565314134563418601848141206705606607840105614048243207758829233718893549007590680977248029553148325232341200610641730437034126760034836099418943984738619986608195127136470132897503865824200288899560935100731036388778315840757519774936677668499508157098949703973304053321254399756707284583944540427272786097942720898065907031321526661749654562984399775310082278543527867614246425314305253519250520966204388418221151681920254366956805413306613183885107436378925490769671723430639747630306254367209361911165805840978015944865393956451863336188340582570878166523585004453606191962146952134037465793077119790255962513233370973167945324794512231265579646613767082290739088222165194798956954264106228350081771515560859211249059689324319894772580918499009658683989434431438562258362260407935569039475965564960103892241246600549867838731292734844586878533384887945290089917343276671127008567927954611091087205461480752068692526105105319664297468118322792535425252404857255752422350189795109274378458449044690780655192770136878479707987298212346417997764728346613011018434521573022702358690393070463836303632162004728991574917024439292614855277700409215892536510806682389494443977136317629070850974812178631589825009004934197937411410948973907495130391412200166016958328446214449799631152639241146320171485133752108885058092939494822184471877063957932073365129871740747350578277654250457708506815376973111411517301676790369552383572769190034714573046235562879288469413757934823809895798144801107755370576452066275063509129472585186794270709573318327365483052438297193448240753204494023493986464844858414036674938954326387722759347877778227879684486084402215715742344919825502197498209475717815752001324675204613588313260531365691290424425377818090962092344803393757737703609681997904423078678009985655500760065685275517092756110709654581691667383725518340817602531999375501392551872187912416490859205785583737533674505601283547268815137760342382028111801670498738572985784979160390352393233374432593970774280050355928804968151563963524664423237310384038700031648435510660137856986112472371965372731278124311967236643120259615119301323883943722055451014447388805896011581781148128754233505121723345012188279971977737203114257303257263597283580522950747849166677828330073838521441297667148100270035875028605260599828967128925163600880870890484370204961337137512632498772631602228391069818560176836024781817489628445905004136485233592896195646344873762526516768830909199944065785022782486293826756878481822531789396875947997566218169768069885485657814607916692469941758783559819045692399856786367296715508390151380643243221296382274110644653320875488714188649531171425964299477842277399390429735914733726418655465940081727182459519518126126848955998724451988540690166562467865475239095232104480089075028569017656914031034349750073937923865453610327636384064301669230754728393293857158094194799276189610521982217585302903467970819342464309307216698610254913547060632162578337226068684774453883325263993183637087838740809927056639607831360902402051084849173392198767323332573289527997429838091419486717898050270183985156411890867462241280176822319155680443659393507563625840774336543708383038281403459458364070745901113497416577210588865563575832581333269924997132334592650207984206435061888878911973444074864533789612130057390639025204290454294196740556085259140365625079108108664976412516371353523378328710309530495503626219066355732632005028942431608606395641529343087365561049524626613465043695861587468209283110842595838249328748793187243096527633716531099775802523978310625749800097636119688679984148347620452130324896731158794514265665833123567006729638858255431740277591631730072727378431335008045860347859760919442516779139707323814436544965661304345295144185835380028438938145559260881007002641567328222250554873796525587139393044541803749839230986530654554009679338959747298459284162758303729541141466236165658408902959180366126474363788557687934632535149455768757265873902734894692303478242693188689595999681918704009140989836839997332376325989732404340267841537084497775352217991418817953606777625467597011992776894469027763233880233137937528858142202833208933461263910582576353165238288185406093597155734791553262173378886274580368512010495948241488892614055823423738605715025199343999409699786126305498117283418706499047647122785893153301688222843405967989540357403154018334333959917362915034200056012623910828486394591357934657067387052771772349668483485799484884486926487893066143342465490468844002921742425075109338617215687051955068614721499851558797477290463089973751194105750983011300110323181980323799770354514098717642811947526956256113422958655860549937883372096112718675822653295711633131319016534960295700286743593349226562372730760729337067400767332832325178351571511482683117300662217328879223316453800825530270512699658030229261285894392506721155081950136719119299147166206388678390342929931201056967186778723724897060652879090748037259093082413903687637579749805779164781492792968185231573254915731028160338368996567523370590952677911850705817907124223427344490345617208373977448107143058299011523343640748375726702049146367240078019460857127588505213544994174354935394432566100070738282190444065112784496822223198628843734169460002335543904520212172925720032984872368633701997126729580722190358249765510950960352513385514996265007465964599045823199028577572838281318945123249671049605224138741688031385661819575626562111306527901555164046019156913263228448254715649742500394718952362900656495431759993183374765828468691243887183952946550298224891704751343576432007976305113469236903933396147255722787880582032528796757881531527389646127299374082948211657833614015037041574239218357840369370054252345916730340109637133934511809848008623238604066105627745449138992954649895530793370458211080366345246866883235132096412615710799848347778647870730399433537526820907366552721391806558267338792948056584941209621253194881384550457431583323436713875477843583224550598331069346988459336744191322533377707479466820125747028009568622956352876769579229231840346265341931842635044715112373973597969319456081287139644844655141537648789358392766770176869643582088246843846596655946389833682883145256788935586396475806613574728147061061716654279580981894977317428737672355699434412544559392071125378521757213561863054322939376944355379381856512922400480702955078779739424346401541828616064090699664895822991738940341357269321122410836465675495398729777591913059477081627318345369342653675929376827976625038240631937732123713375572009885273743867317631976388242024740331455409989196604908611443677793093205933309409571042139365943817148495026454604944553350160720402434760792613304520638483404444689982184440372333755454679751786309712812557457230705431249811179261815122138822401609410987818381672422379674857195304069976568653943410281355910477730247934806532479769754449155960549781124903239486392740588887743954946451332901532237461065782724644030436800820298450801897504625372191121589863835033180481726285601774977351226820844492070826115611316682055888491401319388950385116885193326477105912709989469087968209589992106282060152731483737343822589537304785746079516332726302302478767502803179433162304936595404608389594052755583145088387563746203441907465937177917407989113501103699927618940653284709849227543417889469481749324773112609415228853759468728683018339343621348041903944831669986719433230624159715172595630590123529630165345957746689723907921864208093011959442886991194362643669296555642804861028741295077350768464613512821996747391189275791934516731822445510218482233997741238721319950571794435685838008050715388209890250047897526989227132884535362729758005765960921926641436930600706956604490898427470739836970073835171393856123250817758509861821429107741547745813953523674124085075581386467113028617314297106821440690674748366001375253578818427530542850865038009775961881549621878925604932601174776084959852224636407188162892347483207822237953114773978127108108662825419938002595640163697612040887300620106317730532887571799192554991350966264359094724130317890354630521586803395378552757333748052161363498129685253679829701197102340034297576809407930048749109527401791122037738323505004163177450579218012930529525487599409929138823185313709833804654791531325025021203096350946136150993952391646439585982919805368402627484910174707026266587227286027910292790082344674688255194593947421957490408741141213339688254957171147787036811681194789571293005670822325206183130765471313415615365044504080899037430534899586751450856450995028483503271244578391893584323677479692334399547307493077039921369752178819265861490436912522783004624250023468228424538578673532443783464610579702810571532610300728555307759650101275870701649540817863483474918042212390068262887600549941436880747698695726884625510666996643080928129446253312039390155980331960660817799423333347871485020014849454285165922668726591444659725396987204718960952577137615159640917608905699375690054310606508224732783485242918034952456070709946493559098963027745033631890150429291418863567035171971346684112871989226283567755215087657597762925952990554522846350927087306325599097656575616670674678013509053206027973802927110779608135704402145579943922849602953177315654431841174624408562677725745824437027324222238617550417667680790778092469706569329961063223324364605713344718243276027250023321728882108838870497783539234229579972410259358673399121525718546599700716460809120562648137567290704174582890202865960233900478594305827824016949233309783657556862608649873941258560919498594104691790087193475020258484462921023599552134828155108219528206196684357455380546037767014860325159341358645851444081218417830593914533598095946700906319827711149674863043147845182067020131346123351650648097817930605998889179436099018259006516284911701103643459211278106747727747999211356104253558140368068242033514745428303054117943327048368349047493749161681346537426184883300321498422990412924387057982793392755194433627534638184281487311888743953801546266439774819743955961230929082986606949158328427485010018542626701071788184738736896798217209964300639832366733069000130005723598205595385985737201691469961167888893566046482400756668649229179034872951032616526901385576199591600668955744154298756339846052079934036568030930075572343339897449233368831567590846453658152538057180348048763439272423251723215116559256904495991318426937362698771073999502658516460862948638224401391481185390693532362856730561460732042464201596525341286399648909417046909668949567441715374956704035071844446204779978352043549850176682433441871553546850085525642447132544458836455230749908557508528888347204036837273920383266888892492594214969745558083884313461769490610943413706820655216984739944685369557414365943487039098863152444104314231954243874367880603057194945802882808924481929816462814379736929830572561321035377086280213158264317990503000429376136332463120955756661149117302002530296764481805221542910743965620818173773416237593449035557158789470014916855253393315810227402838376452658743937884521408867519587789023163452948643867059863693431847670060219589620865203425042640986919604471935034765502216249352539818448494428787482594335152995227801060044282816808541592609146985842602099848178791152278448245429022294539650018720783277251239558071250563613029016210277610883900442148512995924208156611752740721146249788667522666169073467745643516564442197847453671050673818234259195389283566429066002864802277557519018142439957603117167754421261923026556065886526331059106476613217556554536964298737380255701117790208998619273032993471355956725553826848248500120662027612547854705638481753858395541507130902894670185536952856373295755185512851759328416698799419014130549147121798174743637921800010568104703988493101703421929153762031042977046760382269275360873869068414062319229964949861792511570302680162267814360986250058017091589181499881222183908849274175968684534869583719759732961443469307736790621230461762388747299994720375585819558352081269849271256874110691957265251317467048114008829256362142139686875644868964022499805542515669650296637116206113487170727405451520564683635539363462378236046681325599155296503824664122855987621221856097902839784659200357458445683487853520430495319429584169674219099937321666917745093478352057390996123608830273097926852650846684762393939075771895783136642968450961377068657956916758905330000366953762177589495824341007132735960758392402502053308372674526417034492951924166762485010780529109646150820818906915500026851944286331990856780981525821875400156223615262302422099657008009079823358878145721035109286784924687713073231512692418987747885384885813188131814774954764662980450330456597055414213265137925744912589437150911890508630815625256007529670098340276234757039255422443482296263921372970201522505788842247091837859281358889005915581558322903775962301533860074059996844027587802938653201165506971383504427970007864762486200762982511049454236540577618664027770529028236157602703208751070976043420730851829719775507285164521887283526335252050146067561639228962535641110664104459488892375717378512304183602197895870305879005400332137739770468996047593307603437655166678604120671128866222726102666532690903213934122056185080492764381196810085717869781444434647524879325510147273876020601291858281948040084026580679440406731656183958738580643457414611759464837599226799155166961167245215082027454707148922930914429172972576686029885100752285433442774217225701928590123093402897432866140393327901982912998293931775852967520787849378319060047698779601274266784151743668828098077315167444971956597279350872756800538692262650573121200424090285581372062784558516938891026211923046352641808508121660387083565160452064498940586433857127959884071652502861098653255034065912734046293501847696734614032441739892176932527841082487355180687369757913818967768341740056505158035916648874479485463748015888665774678559379114110604445423784802300745509779191822686351965478169464360380910520808432099558670180572657045580975314260352431197599651222393961203238540046279463272898444366110682980582363508738120838953979452114845212131106254634701345784751679251764778753741273453279439966696243188092660928961842551316130764475304468199059475068921577259476223511793574545496391447219757771864882117987768250813140859575017262924661510148965948876080204185618472074883066861789451689508492008654942351167407467781507376490766759665075260810714305697106796710575135807365364478583909842901294265020638918200475057319149972702595468984857850701259288081473062546551151933299212398253097565180889235315840271340334362652232114436884403333540053209179290908675635291908798375383819006668692403226223872043184218597400318802459961247358588259361778611276990465160751617295904797896059689491178338881863777484840227009515746593989931915887252575291414199452735534876130322395911549971344144597954959336315288880399238636052677146070579823484737240027759624520137594297190956292927488486590843768821766688302789005087982600677673566701763745704382312240746298838910041208873978978562188536109335529272774113175914633911594632348119916330561548176621214257380072502933222189052262102537834522892176508646005073560714365583998630615651192251694137403413600353261364148404189081728750871154656982749101091170765695606273297325338884268539360145997598033514675101242506288152305895255044215310524448831777901168406750243938472708029689147832330002428552607430608035997087998799689373135191936349713902980537340767667794648061600380781256108363451992608596037897552686997039394273719005564522632666617261431259791207902057289057008316871174977430587556055624130808161980801467175660528659484851086849594573017141888231420187949853071842200774923536746162604865613867371323587030181126329318290586404103441233868657038935114436068859023838011651585972962288957801624960995553566902657316805025926194407953275916464829633760655623876713051923257627447248135335385800259010517614705613033792057595996225470899239804380925529441614253652070590586454872394313704711559104194769299741156715151036401393822207577956744516076157047869054965299423883654849137266200339348011063951311035769488430626208361936936382120471806341585369419135961828500801661209622508333901706947734370490434039575776815289907744438130763708970405477481847646635917630382181580776053287209724120188188564182054393667777990800230008179558925771703069978344949049905129580494015545616983206903032108143599766176911570678722829412651946039940413853346527745611053622530823121517809957620943368826574171383628932245413465895441547684755095695173347520328402724547261306352291082443494303006342995276052271937409802071918143986000003285307912251976616533723839720778016715864439567413262609293413772720125847152152799693261840962694990345292152863813144101116706626697138879055544007703448773724102000665363205991462285557564692271194567037398303274508446379227280607229733807247875125392932452250240140244076103750126462164198651833868664378508407312986378955922960604285881287342207289371356029402253114119480599511431859043708732568965466050228558721405350494851944799413231510497819741670903967340382588319781297934141316246269650982809633284765920009677669211788116373905374863896500102885022186066025651658853726659385062898796709268289008804259191415347709901688191229744183611255659637868669168071818739180220736556739123267442737941434234636765809726638149096049275060020071481287928560217767512954913152664082800631599221851793090271656582934563591720709454832473115134731626481162829286011457873578520681103107248865391009136792377722506094668994219175808031526889360099180355978566581036557813480282536433004552920815166927899902137641033399734854176578247752282732096724178040648252903291251773649254166055529139912377987262180422395196123094935317305242522599466315809727000871374293060632690798598088566272975281424762048947723606443556689973701601995320870936711625796815181221139357640830699666430000570789089000261555474229737775365091373971117550396004356639792474620492155621133105800877775518196896000025125300782553541238717886751555215957971535255104503273557284307980067491983240515723418142072974540768640925947029615886134118829361444032189557384016712220993431758785843103043871371494391971438115227489780984308419182947384043386724744269221560188717486887898897985729406546481408972185526110750217587319724969159398686447937837863580273803225029238771702120322141048836888971116095934560538955882553518029054614058559420338602199703227869945742401560101543436408631540299292110640398247022737507768124265312841821453507530405445385683491644588012442055802614571434487793026832879472283769149510312455774008688647838091305466843959459701317547708442934851990625916993525714451483375620447904552025236455338675012233786363382551951898448384563647313994106775748900782712850950035744757947859592936996029853647890149524773549853638387149692175465237112013549419243499643233860669363634437409782208773015163273504225980469481423746073792503689236641646670571354092232340327422535430397168179346669478638105202048280908214931041426188728339843680822557131385403794143086488808368614804649289042018827194105823303775740488399715802958392798435682219257019941552896411612793558830281762406446869127110311612217020689719198792800090158419276685586781254817900254900768405671229851103549082227323301637575303932498502821489399932059986404998036836661743336158664756794550147099775232436525502733656592049838572718165352378389826222017211923934681274314391997288873660355388992847755128205449043696749874673008713590941492520896995140436720979557497729143500613841172848835587724757129356203101988683793064699898347839891570118544784817754819385817161687728861912840257691909245177838829547802890746498894861053909712751037164825293942871274715798496887760132582004213635171378356140846549342056350753980977309832108647117814630522790041166884158478777971925126972609107359431045501752261080330064395591857529849736231310560788655974018106619165476492815862820464789628352098206734136350862576377561376217301382502217673026869847544533352406714771085578005984647201358485327323160938074422471574008655749844485704616298719923505656864797830406131382163502689464595712893771081284173307900861589576730803893634994144239115224606786890021035460521763194816529513529793992199386637361342335047065818990087420965642263389107496334238465796916183191061089451311114754401390548993198386824249621506775402534042041339646763351534854317051392817354143618144699588743230182321892764281531591584620402912854764966501459743548998888673666800057867260780291314715132692930943046270327901812401555242442490688586762889100893325120270092084944276785618408474651810407203034756770245248288287694676494473839594265467140258615457524742437289756274065318979862991121521941286432403495174831981282076277748793946269347394018724754145775497379616731160798258800075260700416356631894889411281784758527229501205575150643188127617100858768952468826687246880560350586627520951699961948584011453504730228795998632378066651637995986916425063935169971372201462012537393741510284365771826745559115752349886861494405963954850956338413347481439548220658800036668779757610584051912617038926087354723451680898051633608942838872076123968766639248452541394714326886343686932945960524809663787138597039853668138523236825793563437682888041867246940224866530148679186156422502792892487480577440673469298440015812533650271572643176742532424165238428914614326870072435013224005217167201256949456815903321306256709081761511270376161402532902789011341740352003069823833426815975430493439974021857098126025089948585158861187797522803911817728050213579176299620532103945996665766290514469464688670673253225068291176687572353137896077645261670992331429162059174751523680413496809137385868309928140937280336237704666855200152042885629942553726719940332257150572738697928640151658853245571374615379758287572248645978718275184132164757722108335661572975275186580909999540240797717266860178346641765726851024208039974932352624458638736045936705143449026328487558661498101401757046505515475365658456249948953862139249167468905938898439116285368331125926599059558894125330983012347135327292227669080232798781673055600931087887908119415423890770311373562690994609033923349420046958680569369391800702305508358387723622392833633697235002294286986432017640814620170406453266605196777244782913450321057478186889723550331382000651153202197132769115825114150329204224670292628059640228786174379556530497991622085678811411453775179980958234262481037352638944932935390653380977636007712662647859094742184252236461634200235528478125827513299635185152042137249593207656547425073088280900408893377380017099410058704238850915060432913036566031642703151153451688047700561649122128989594528376187732282072960282789019743666950017044210933953523012461851942109432653920667721912151472147793744920793522841694976079401608100320445542951231519345298795149384144053933996550345768125462012748061534524856623066012236176278939256751341653076213477142842016072785240960751980051443406749218894801448249912135910025783681155232101611280442602710451438655799813804483610518020817144811065807312894038229934236492398557043513235391589439447680812634964887589763827239090772888723017466997455069390998607386364936268528707565494061712427724928558787688485612210628179545633641533636711192601131552417060443317362602129054085234108656591782204270679700115303805635097073703301542218441809319478779229006399984544419090477084168939055045679154539690769375005890221812330312604816582433522465249169765233905371524963494982060893147509334585953853467418947185018674345398810773931578618896575863653722822404405916222227928303965016986921534747145729688343803419374573952709637663061047931871940990514016585688602213331391874883036668293471804650908827050895300820229120803944332909918229646491701768925160135887527058521511882332223836282821901566478091790878125508690487928155073584415868047523811856216393788874362069387842115178896734632981206605584708532861381311374586919730764659550228039390377937022136798369491074142486692014537168525000509991201320575405814169869320294455044505338794711265583117185432576459600608403375418407363057855286801065729060077906071060144634477501952983124338884295903854822568032480617406253207179806602713107711140583054441684659404100306445853460940641740855744805804711307905441262282870722593646892123743892941863128467052298256790291156163297602414203470277146125371643546902998091214994720537167994642018181468213197660189456400193831536624048832578838369303534522085567705935599326513687346481761777769541068687024435603712970662736376687385079001670605162740599144999871386503276144815064208237639823429905218875855377739678573035484828969998886387051611162560266573000463542397564072712651450344537287838202677856415535618248669571418387177122680947485145933493931307106076388489226172570430121775192272461059000519916301382334377416502692979875624221124891794198790533943581775219027437607313203959252632384825217050560542951822371525253861791809457802955021261735835967497172220563065405671338994881508697802606052318720046043177458069086568686746568352793644710513149394379246194475619377569050813112941843077461040468342909818027911144146696002571940220253374283086848445312430647006122305836333056452174622806805810168058421219720518521988949155020724272874064673434404337788226834085105101995702357932848505446194934971406682749013023167983756997142657403162440431081476995124823236554475115053789197657444135223978118399965086698297616173598220432643083177114181131919500348777657944768083094867047045785394760393858677112517415337837178297243342391928055859081818091925606798301452358165659802606287951267298333670504598682106375944741860565418157176007409502632709932706042977004279656943324830232437692900296527807643025223842537606248351523120742810852508501253340235998525925747589236466979448234930803334078854625010659942773312404269636042566164638946509018745321141950733695188716396740541660608413827871542790013991380160222566406785411824645602474721183239059974892535623981780533241744133951054028512619945499220032767151021071653020111338172596679146514595837876938100741276635838228858669335739403758039390335907310769297913779447286072961888913756967047192104950450449614940685606715170077912439047794446035333600879164690855334214150055595357096384909318096105037554008153161253936042415244196807607728155036194993515236384862149086002753648058734636730045115696386324546600569946561131371788232913061442367007076390247922529573330928540795360271634183572140752227369339920220735089269467183798439247620837213588194461787358460447859242696312666667058931868008698825028737247112957051825722276031575053486626014686507935259197168315590782927598002852160804388630575165694281660094719481399104756893563670605026563203541003066823038348929141124590367430068250854722489890326767404421484848813756748749122928573900125847191078555038657512276940329735477054373519874482902276488146297645165182185344020952251476782666865118174502571757333406525925341515322152582381385428758864691320328440816052369021035087313573882825010125402063455804132547062972656939848547748757269886799767827648242067731073093823273189474263624174312258122066404202508171398306512191482443401415200432094707265128763432076149478965826366974725945749553675300316256113370334343344610701980580688957136721320906194356002998937091243406213365237220826560756985158377529110824820543297617369388424917317406961331859528601335582030452680320667384399547926708461443913784328615374546038847955634811850545507625181865292951410737430243751916554599586706725234583546995454455000486978335937740795226070317027195556560972655733852286781259045136551002621645184340181327953304420076962385352021520300337809324916071625895507066948036635139703210390114639593337086747437876593514551359342525989040993570833194063573906445745189652087112583861823870086917987667033242223359477899351829577720380775761126030166819010604376631280425910028754086279544245772618146241190909855335922402864619403736888007919092447586494039390677764540487947760762342720396800763504532729285680934370843379138162733351284401859227261052339082476593505852398854383534279355670556155361685373163383012326022743492671826997719287501401527779785507466419239134216682327674199578044966038556305147759891840133272532675052998503621458360221093983748322469244164571705939160838674193343182901867503400490134429686429840567223730046536896966214155054955678042795437387425433868427689440083869013992922318779398565821928957678609036085862573161640649287628553910267446450689613337767531308174913194088713142716243916748854675218275369686004876806337928255394425796557634234113313243970247743937823981686429035467674487186649611188901260896683557325740908775384577712513308053892498371907477513742870188915087912866967981453817478989926600585439200755157176843197976184173219990659062605793287392787356540272827766126291952785055010229054675400722531682544067728651180594919142390623272031218175617488740577869527684286894931639579466572517390150666554030171087897482518060188806244741677958437066358975918164944383520898380921086885543074224247624179942727664947436298761203812257756594890774225501917718495938635250087072862207269691614520608796994629636048027541420147474396318052602427326736510565979470909826436598451849166359465155320086429161776614712910499531534360764880014896009802786534888276776902351102729983239364095995016669652664228375487584678689850586205580847082241824274597510876091927244371469921827905805547729473976180941399209505402149961161200538819316062360074958092808310260985351540723425360036228026529854611544607914747193760477573774621144174007538819399359500196719230681521755381029596768680633403403410832057182961459121804702018235818532973443645854184327220400238497423128053622323047355201085489462547498450452206051886078232481712777527743551765857293835305713816633597478474689486972319681852435517251644659980379902154060378824955256656663707306558377920902674411104869440771901309656318149527397429754790208783823846234232584385329479260498780310764785030522452146513494068958278300138214816378012660981762921624325084039425607351091792713886479543051979162742275768781859051404225499354639150786439820000017651440650677215830635223934632146834908944150615754399338947709245330552079629326396903445596944207975673549937649667214782941400524918651749583413262987828108943175416800985688243187335627468910086067046151809492423238136500472426686014210115186077074827319135057696644744035284210839234694706046691915802474731231658444138757802365949752358423046128509145578824946737272853860250971439717304669647471937627677275054186311506766336442170802137122453726020655811601912984955449222407487173364345491028737685593642731335552012816578768070643468418555991696893757076855047906894816330692800963949804802729708669019470174054789529221620630580726064208744553999871455508304907508668654297828166904956129907722766348762358450953787359896348127580929781767992951173668949398632504636453205127647681611716242908133589332922557229500623869904502839721013535337610152260362966040235896262894739543449639856468551738985622594066308459189061153039475829928337549356442753023155381866744720756684205698989440201626927677364646658921264379740628620335281015015426110907985880304948962380073925522389654858826664145685638638420842426148961393563183332871995929209009826494456953209835762970932589018154386408530872622353413409787025678433647489923701547959314545144337566103945092559443481666669684180756151711752193325969905454576047902141272453308635834615229418876926268184092882329168933250316037810739411517636314482455439383693324386890932175020568424706090821319517476156177029213484061382410396460579615562958767147678190968552875779574671087362545568575673404435186133918831406802246692921017498432173381354325684555911016726608797849909096640820014809141081739717344601959648068833895714836668789458816347712695794741430945566160782872214912562289162138530357761141962864599291245272976962663289085934995339673908568333595281487193150787206850936707169065911484046855788151448159053520484480506816591769451309948705237536293211280407518290468095261376472720813254699550603235261407178934916820675245781955560446804290371679339380427014371507854599193317876873842696204058347248714615383229202401743374848587195285875478061103834055947069841285174788190982940435682773321531190246053945549636357315210058939814798412441725617981080491946542623960941895570196192392269747160433163453209295881170378738251664096360624736292372234814417389987251465377510027421271632786609489298914813203754523607581542410232072518285165853621672193007003016143654239992434201127182267944530125525629916608632602103317830244672038753380080282296825344443381849724739437948056291549284618494440828537931762009114570621187048964215794066425729909700976569882629040752989649003168988713698940567400515160245316228598798230946212393146581022826986989538028171029194952217437951774449695571069399007873144030296412029399472232078391482368115405988717429315977308797976826956362434603291683202495282137908242694758865189159963596704166423917956564293792062887999574650051755966599972826694517611670260824483231456809967859220269933255096123553887509924797637773084659594851258291312917642139015585630335640029734843217619501177126953367808419180569938136027291635851290309007719128856410581817670253087053915708094360859474132412509147192238921672090379134841510436486754517182757545109294796718676499760519828901571704778459216278279610500022730461042508962776542703945172729284576534560057588035050611034543583661274170505673796803022956225350737410780684958675886818068685463904232225267654812380951549489941286237351551244625396256165782589252577687670073919535093738046250750856360540159444204447603973664075740385537682571456883124306000525268368019487947914289356212843990588438014928357154493786033730386259360878751128804270714406865442119009393190953228508731020587669146640243583064964327373448512454558811909082313520972001108795891612058814623178090310712185697391646089051763853552159637144622904874118080664090671712803536282352995173296934395126260979569441732948604204939161822105092247440025962812152712759070924631987437679884018277866409114036009163949456653991784271539063627387279222890301445688475856911778366556313751799200082541797384796820196586820854517806346261614913056972828194241300962867900623653958343616027447054183994694035691904202317456564503497044819781011881062869368548898913013886510669628422349010232429741686518455283165474223335282105570809951656235026216603380993812936273508941347167438664469137377676149106657431265704362295485901331964552992847620638639894274917745152066183638873036731623599857685323378999781587891356034062921153650945629283626144166927236191658886425481300610276221030229524106111105094360844079333352455438008192793763046320190975764884565669725935209687312934206705642788939038894663504076081072746528340249945456072943514013256493834906847023540739633324093659418822587441158874646379330496322810890436882018078111839951119553281251307078593625890907245816871770804599311172514922954648285882212679812628695518269626163230463992527368791583331218235263185826944675919719109210523440485541106243963709540271831996680753668182988921205380549412142429478069473827197052124369121722967967902317950133925775604364521442376730189494547668300788390122678753159724384486948036888756418133436272412341905788491506064668067120592082043790146740679446243551690548673910791994319198962118609483671050730672048102132356447083338386643379209658961576405559438097022308015817348557274502544561419322136768641074229888841907354716376078806012711525864998130076811176086334390920351892992286293542337910777181176092679952968076330432127661648851285585164194541616274589672885040308860474774557422137321541080854721832663033662427361994558187327634149273537781698784596550564547033121856971533744080077635665985411238497529159992946591524294583006423054026817688915923415328037524477988747854047988998082623548438787779104872431282888938491591201762497448224829233782525990769102219118951263410947902901098195343093837971093480223359094774976546045857623303698970386346476911980314445775655112005623419402914085969091153270972859258791631695581596719041131851800867801083212907820004431357640831725574878600239770168275144942549788703922921083464938995815918538120956433243574319221572353071620175235101105616079243570672624793125085638570927574790384220322733604955116875029966400469975111970801829309853593285558410712378974590993637423386473492885976932768671125821481523731563751881230651864498674816820330456995252754551177352054455361009711299972109584425483638604182502885619746633751758890751360860961008259848797244068079793123534586059142608238716797986859347498856239142144240789776641818970859701533515340494252219843243704341519577381006515271520337567575769829053151875566271364872813176976198386447753136243752873988713695525042433589272027250721228442453291359567586088011883749065166129934956526315949990646210416447356966734957883835190324872877854251477559612224866271608209675245750127091077339107780594381598931825268145029168385157384588774190782081710935061067046416120134231684112559217222894243705038838813508397614365086589356110421202488664968015445401541460915859159822136523226710534566172852050484891922906204667358173567817425183547523214346049945162097339627681298863430624186308511428675701731146991749341166646728399774387652325369594737474380361738409119808882458099068548728850573253317349163059007796114547303906421168223768516967968780675575771368608585619565042713836901354799432334520266866185346558843641388597217602969009367489518788571782403396198897075211610235827148842811153833041016861978023612639731239974895720717783915591152974606277792115817902786714917882637142047691462305839923974542405862466630767574557145637570694994787032920071958003149039846044041248851903834283846370529684047759565865197290689939315822167244928632694538288957827672633484984450929290369698659229214505202178320229154741055185424914284246260299385276555112400530868055889465656694974883723957206890960963098312773981929903829797665512536811918599594201914892567463792133017115130420704610746104800718550313104421179465828841163103748918131373590000491786276425458579264659250092681900915736533272415833517781794199475371982103279878226182733123450721601076091357382606802349943657973756678471140482057967727571923349492581737304173913603071155115633097951057632976417703059743338192240930550319184295284519014998821881279322897549473222298143541791042313634725386312032595636895423117017214277966864494795837143332057775267924214267007147513941708218469534738490574592749032759649569784511291599704146599537066349973215774155208024441914815271505480093310377568123740618690685093257262706793979202454813235392181132399566921039587497619950398481478679701278118402321758603120053594915981074434340202782303756877777678567754699471628158571274038189787750367378831822523693664495899540840651351521560851206622516986238000545808819407202251610044519562515828098439374269326647907907626391808150166667099911248697870324386787978368639430428314947084999093232451721394753461192105231721129982274780220178347396529631255644430695756586636358564983925092060121554040934686259013313197693070692190502067653927024355272539638268562600550507817827017926857122742057522422115783565036679675374732218724708291237676068159418954098597595763428455787804993913825891640502381287434748749079672914944600843079926940363027742143278736402151269238453433207721858551543964451135683031827447201997038547351869879452833262790819093813459637991200779275455224434751275371156959765879777400142926796464315592515151644360112187477568019060601012896418075788500336595304028916440937441478584973704229590350452677183342901128513141714879552274194068970337495230976106408483428127498829017567896484636971029153215510351163783031260944971707505047080594186009839023684707185029531209042667600305682218334506962778641880090323710176602158229303591129630303960663993324754391250193321960046316980825759382598470568076636915915391507156865855672465470855692023515181790362419235872455187858719467400303088164517770796203684899586646361800465326397872034799293699478684728628614945702040291695633213979297164666536982333566518770065730039705623169269711505462137960353914252848424759261079870935461547664771363035556663770065293288520710204435120634310478721403043108064924183972077183892252960143144809563192155550303636957310959987554470390716203430002062235810074368766232015258794762215025836717141663260312494304990787277601760447098257281635975701053118017379083921739780467290849514822721481321720310713514993080610710339096377132371200026837767873191005130242661561074494081788488987303616199817032164254625063273679150372971982888637206142308742815964366433852857251575555686310955147640328340341706915869215999521661987382055054446283269239587265693457447313556353144669069845736534462270821195271099106900692603490822512440742723847906721866532803658649554415811893979167029970125197648560764523695143523555536930956851630893050407278750877406029064088243127758948387359209368568343724819942265871068425703912433302925619507220365171910058214798009959334714535882853061564793460188112325534795938921839674448099579137840151934418470192957182269615689045106365216617601404401753053399936918900550325990634020719035795249288032733121775557981586639246916078006210041778725062402742285837461565881071663422312035199124079755778590522308455769359902081207489197130905411374680754171575924755350302448489696033353981477333309591853195594128095505989274693270942974549687057450077044884502227656986701096597325453652718865435025021494727718653276517414527346416169211132927824593129388323753471491398624021735448622292346442882863548195683466801461784603434416624314685019159226233024452507809683211958221171808533858997697210075466470051323547888022623390231206573644647456588856502920495237001027442578579147371905909898096748132311633702290001766055640459348208355399333552929794999861862259958753713339938434664405994557401729848954352024951440518549428231043144189732164942387909050120064535403368227520136715224011026419048574121739666314366665083154479649809512838836362368061184680487690532820485014214678114387002880884969613383423601821070444679799255492445314427617577680360726197844317097248267737512930217863773729778123397127105948253292551742457313776810209292613829611426379867121603849777768190005172158952521471488099521122931557926896742825189978969878690974245775852290384545095881472436761445117034058955612231674825529952392179187587652513937035739648327291838232220488405037827477089084478005761159401578929969219593704640570763452178798507036077066853747660608092105056515091550423344142703923124410716187411881059960238171030189725647372452287822211940881092536554385179681112784325948589660795931910180331713808862112900743104455443320992589360826834064327774787477578896244975947209497853115607127134044474299469881331022219905531924918728698998588273243064582092119771548057286495798674614474652615160251657990321144463761766812069951650093894804453204818248957532322998208759443816385657295413549852989422230319679892657986946301319969072486101404646933770283155625161385479687845756524560453298067579869784535414787943164761553888843189948789184617996014685948139630001807944768479285852883585711200062528053872223678248405421286767569166227352390338577951442404756209410992321548903653571690549221586289824541430022071043187495216337970493859691510184014894651168585127318389892856391114936664869012333989912096475756798548158365447596504871805521237522844589366839025568939411091537849248958474250030503990141616621705168138542250221142713240438738224340636980558289171934581208312612160325331298586968195211046745800516843881119120765320170138974886737922065580068047170752210431034019724904289164773714449797701453183817588244939333802193711858084572794355788242686159237071734895633392266661184666692464764185322706539564032846955317388762271521595230620146189775822451264455006579887614000517720022805662855691661802654475990124669148831915176114000694263907794251379964938392410005551200750987954937260386253780664552877459364569006340218963308916873875389150812527888200111274476178002789153614655331527697653411840079452939135002231570642277496522201213803545844343923287096908469367407663128904461671392857912551687776925437753744224382114855558556049352303342027349560896644953923205400511512323485832191057541598717241270860460007375350338797676375278092544189562646745915367122282196193184725086555990331623480877397732422589185750670922299992614554556257011612326394086452311192866931142566864346162512988954544663138369472841844850626295695245147256417108593982696991241383839953358040628681328407779261816737218503396007497053730928076386488139861787335537561673371549236842189283013533540967037927745701488644822905590623886208464786749731785591880933813265474292572638914810972030220404005045756184367189073920329632616740197283441221717798951109376026709264442980159598203377112875334157122559714169507185745469434978481664244079728823435466527009454664582708416953176010016148316311097693939660098911468719532387548020850410773840547936154458359001055759516186657659728511891629534101562592148147232793713248913380943295182937317105804310179768585397212077415388030894790261144303362087578363669350381511271067703364089545789102728426529693757003112916029336371360361788947127731747508740471633149280971193250474763155000244291098327329552409487816707065579576369962321030040523959124515963604578973058306379200942807492011480580148973321523444436710335772921999082281309285482707346230886329471794689465546000370121938614756228729793742173934432084010227661357696807441899301900834523708718999902207428564711579919446562612891322118066713236175455333274377801242452558303773878492417086597943783791618953569856479204127253780421589038418916917532906950645278103280551634108925262085411458583177473765786679161959781525042799748497741112663706679280200880614737501545042688716439303367678355126769907292011209851635733341448942505305002851392078423960042342712217435562034368102264996410311534362005046631600071997989125629295184307183608906227285593827167113181358784583730923805845074913057413307368304876503067317704245112105490347594366204317649587065649110854262552678487012748914081582715453890357548417839409461848751652442514290473923501362374961093125320360149031308826237461102142687978987630531765839093995439426279439231328238529299140626584756592088192187750633954390633719657346154132577118993600306942372077062363219690304341081185637939639001861405314567298510078483609249314157033116053073704514279716857564563525422511345758856508888639538010095961340930875172418086456143296734046798709335593662463787118450323703767954335149829457708509607363638303390328501008298097356042768180220881595149997311337388083643765239111555273430068924681633047603757404912941675223696330363095037338787830489296564473079522702739541075826481177835012628312518465165435972357067805054784242070133305763805473749608786511501715351747135921714233795845785904444422527725114465848042741250544879518274999198569332236799416637610215552909653723136984316183555958256574854574313778664403909565419395393405608471024995193843939458878771682479257000083761180808953589900309403701387585213874715193063087953451297800892858947958304621203539725628660281862861481787540324853634648554743811182860925944689393337549302782747056162725312966922033144633944764755707028670245366658937521280946870769250312199042729420367624885487539746900618019590487255207841605596615870806409927482020941323269975602682403726723005457864481249039157799549261939931478802509450527576785181215209810657189456975284452408042722575520472187067820629071338340085813865248584822830812990120373867618276769955399230099474800205668642737555124420997577089619013753603004835952369715111286777746103484880816370575848875061835445846782039493075847318385700239624455286745121418411094808705948728973280408146439281850197417228473373658492630678070856666534015429684665300923601587145006252916775703928601155163972174417705026882739409210954890315749531141512563449743794269154270654512948037155676503941604245802208935664590697454953590891188090883938500828208324821098870432404517949134134212164605834258368563093306644928739980611716670593860442692681390040697545247330473175932459557178457308174562910645896727818542343555196042857125310326561934400730772422287465867464328385090098377411342871090449784131112578102781603270464286364633682107567715950276861983193702703647284853467078147845102482594103543081080794593906603911693663073880985479829163265193674633557720943162354046270436162587225234281530160326218104414029596975275158790936030252074049003715758259424436215515725506359725657649198147865640971582891683050792480721458822750870277413984199851887190485449944502271333491453211876570101872285426823039584643417590610639842521941249007065584646946706531534480830550713148039851498989500970480814833629482724498505129921155689664812128794888862369607382242157486512104919169261931459656137885605645161700831488449576068077019824866348910947265907954614843788295144899655202573467641023605188826005207928011510870966502615846166424117048814679070781470142771091729574989044189749478766943797303316096814511285163562517834899958306693040859285397293030891615986885793982098872771060025551702929774425711226468975758018763994660172914508288914185407618454718547721094138712510800435186507979284950475250064889214519488293962171255487938725142350561090742576714278663354046655646460684316078622295434869666182930703753107656392867367020876396777878731676149421610885320161575947031503250814254497205557965205889571858134892259440986912625692921212187460607584200283569950107672480494844573032585013359057230049966863315992638591401182796065793812457064729420186544399838360045928809194151074119191179246679256188464403156953312947639283396393143404293705503606115840456353036045815367004746933627024939596520919874944920415586844122355663929965935586943004450026935941720591492478059476155528090553612300750137013561107664050001925038183508724210680257227782492807606348849436634354944349901207287220255882113324850754407170128816105551690026337677257582119516320479303162208418599294346817090927549741612605442135589375816631179089267088094605421389512590844138771483477634051175525462535420023644431064394944788622978596431036528189599926151212555167456755977096850694082885552620254405333952181029416237529190783339052266629029456170742168743981832932006608794075241977742226816402467010247909960134628573842516257134753478106624439908927738931052373821770477603577566410502465525363650706102152267969762652889159169500401961568848769699906882790891292190654143102742072710225099530657746041430957643818307288394768549673069689435784287310405988349239016124151937959319301777436986335127269949800846883617125631830463105588391431898969059509523373202821913745954404478405513197544459877960662374938667121025888183261573275256923760471831406061137758396513214640828443261739706202130451481622701059691858226637553318321848889014505515284446782692721299925312705826357399658478131898003202716688980535863837362708903811625130422863944453032577199096841370619514222530330540459206170511017633817579999939034710944754943711070179308435114283584871756218016751500218988117451424191418480294904444716930065283823409247459483879841281192570645302895387608311520898777325277893879856951205541475287561765765197951193584242136778293768694834341390351852282589774555451417381320191522500813936301634914154807218096469047440845872832115237157630275601497535244942782618892710725728842290207126225314781134328137430101294189296561738981077080760892744475817919757791837824219217420339543873222011708324268327601958721286265340344831729612225136306719913428541348191176955417966897427897412796278219447793336453057478018380457721061518145731300073356044970241107743918175624041734202960164812090504714226253612265428542657470640138257033396412445723080104620750147115211327368284963126275769815227810270196918942740139922429055143869466288477411581462700630054897368638265243882485429171400319757662052622367123856062012852753747217233725738618221764366414856474014032085959290963277941971246790122986667118738372523685258167011944026746994557806210398766853515009341006732873720479534469531846443776703856514354133661527610609736884941104112969666950785540677868469943510329820122039155710337989696733094079394247723515539008957949739168200290490154638617153216950218134592218543215285357300802819124062710154973904467440487576464050445480004600625297676483059365895979406423286802259008536535288507321095496217592089115438931574754245719737394321322843898207124969204935216145281264327584040804492544332149370660878357671288226979473784464204351791252305921592259777131804207659323745745148770878240087723443521662804064167032989928983573599750200994578216764118883649236596264638262807956759737519347426148876867841911961159293518144202701393120319990930937517970218329567682638243609959380903683707846295810024957496491479601741126855903896402089619400506331877863370817799390036407224414942430516998062104982242760817952171888161493878472806940247132212949649800308649696590916043734704420278635300944058254316933938819000278785279342665378816263051226758424610010783480956622010770331180057141786284951913833687740717345669256621948883100088413915589250031873248690581583592689880679877952824198118887085585300040134279588494549631878561068653066289739042646668445431897901447723657926850750827529591712325373952424365990739303912508403355583202267287809264858607640692569744061530066823213650415987835014210431226378901738884264157941911910367671602545688977400462268465331205357132905418210118796375933240909423358836829567220681889870671510222970417690662104903466626277148965436934888580996779715129861903447624196207160967858943218059281180332931962406227233983427557034947476636130807054488062627235999873994333778952042204229486733497903575978245155448436498649002871043820081391089012064129715233365594059950832289691885188653058510379559716499640319123668098678739923498359938379474418661839538546683984069650117479864285153345685623100638133529163456953555703804217596668468024937402089881605557238687949942797453448749870090686686353558601154671539687527253285886951903744833799164418693356015077169995622983529247942536609074540588499961346234708195176108309207491167132620758631877551072841335918426915534592494150158652365628462891815784844940641662539560837992639458584322797955807907813653021477352319416685295168131053328282292948956351300636243897408319828544992300467444214856594629931915431544356428364503345225737125047894401747536863482095347164480520454383655157506313219788323981983535562239858874432249762217681338958149985813099992773646846273441476586708680267595358558305038719914711276795827304171649784058088444993863724243256414755653841488685710826746679965099712822283636786472938049890627141982330351930615267179313763456295307943172084469080914148974989902885540834568617272381235150062380308102692656226823000345938013831690267121112565728331830857652755397287285830863299970264737496457033033199334250171238902002125980397148984989754138252675950993902029140678238627612819666225397010222680044656666360022905096477409762871325968780047042997761753302416369928522732054456719844824243213914624673178018990422101285532667618077473387895669677726972906318538577662001523440617358742254882568272934076108041451042280104297776028681399712945914163411637367410856386698324858180648367147965881891167787742655243273069509852056324586596451635736960005475614695928233251931101582313152994816735558283040790037548625616467150943880434342561085526434660980495804662977245284136001636612829016719967715712330845067488269934229127876838517343902953813014413092116828183392387890379787799818844989182653810614284280338066347248044692389652848422785282959507175710194256229814522951463382447009355238437271156587498921337105314131300099823304533965769391666182709132885373478476579152064173827113688369642966840886785741360918933648479720895136670769865170200216513186354774386138703024254410603336046459674496310453092500809277606665098564311822185279947211297582412663143261295895093415410092376651580358966307762291266967073303643319060045744740122561589525138512119854750487116399296002433743625071209882899462242478482462522031303438739735007533874715555531984512366571503442379295974596192590273505578164013870052304316385399186928669671262557259578957204635394479646452643878784460627247715601854482767709853193785303361040777425794207626721371798570213289120273408115336030666192465289715497666931708177770460531302393490138435103198983124094678334818634013692038820147970757692799958894717491782689356808885730542200526537459832085518977899702449531280760728079684995800813038132091070215957471809602946833698505483992350098675465230058061136933298062324638288626010935497938406365585319743269873904767331892351852854689232046087790306987722199620887491532287825685604535946425144072307675803123859768977727784836895452766474960739063331734375686523879275470211619769718109210440466262896532086387533194298849118729730114741968726779518828353031221808254311779748862067014317983323679871911025130265381619468027527105263089092506798908474871489258681126356587237344450437647042758333361758939411087153867526465214630369156266424649397137601514229921957463735151491202742266840555958177761849413999704908871680341564991705477314163467561741576140098462811858235697168507906041393613028870800967015618947386330186704995253681314527557519768081109810920344691090859300382995729490114876173848933688348919959873231710656707940790892313997627956490942916589739278636307382466679409800777405041124109147075760145117187507188753699519086598058442637368249402817301513533874732922605709116879259009335035789285718067489762541755081214080767288281111874771831820072785348400791799150255322781601649801359820590024599001346360157306307579551437907931329291922850548450624248151242090100693307342288308444953268642878441215523031619308830727921100328989049211517594996164017787421317454708530113656313983856945150594730991781623930545241260744542133415902262574713673802368108811730711794406171622859121037970565113923057272678874460927094713296723044690928909797046543371188948201002574815806692964947691401126302979970950120445447566648512053955067089794552950328575179220082424966060791432609482778912110697243838582582739843916683858241575799686552936372860128493186365884257388048239584491932134155158539209179396427293847393056766508221317375078342644459151072358701773600217423494650568482344804221993811324081548280079156819227058834216540225311335495937667847868765560721542269676592857856837995654990972004047698184481737650754116568433931301531251996087936967470883765089365147275502566195048501455596391682826818638413138931027071822783942607968987120436304110195090842619134967862410246795320496277155030824382995201285119795699397339201081489682208208151758020185485667227472975579227038286549978260107082190423604832802009493334400404396419509563050059610162264422005917208462941179619665442890921648714434178832465585935744894843243930588146073678508493172001625926412818774573482174808544077271173689139979447973432860765375757208260466933685312259505823119484170843003407388788237700970983235386759308508904581487796871830587077501412234795834474225557104208701997007826161552889293840504166794021004537267234176294587850692803924241784670883077791695992605545802452832365829281236102138194912988730235321873875483249579304626274730725313641240195522730243823407243738180118604998657380163079334863080734217268742970107260046420004270330675773427703219767985340951252012500159000614368274603504335319681365459212104861344613200386070457211190873887733908945977880058888611853277121450690685205045329463574219482887736884736966242888435612703710730574274189642258789874738808857394638669843384390197408572895273958891909926101022528455165489773586796341685221905658909563646467689938644337639544657567422951978311470807852044672522136354171452251357949180823820995257481783167234104142991922623283933840786445095165314666605715278606309356985972889278986345126670904921028214379068091275333051681572953125277831409333610013172062677873765034667969641182794338046005005653463599876265953312703291031800347920783459993690421742944531569798780631057589331369569059946171125473308954516915489762421317826427952155800408529338728258135686443994711598620871359980009083436791520466245729589486362564438443973688539914799945858515273942840390620387863295257340047447525915489376165283349808029956956415035769213108330889504724917807760499109812078949663650491090127287971398969218232238934147327024808038660578086799673292535619708204509200349564438454092916176116079452379960221719335484113032867716183427520514457682103629989930126257535000682384524588039806825179177319922879063978130860404446733081203230560379118364492445463064536616622798972616655901956624670530944911669664529870296248188406734023008128076886073826097406045718552293266680527925484958881733844570315611202852868704331033998238851931365664774780605574022219799254771022507490084120093411891562075368510166382316215079577859811937315405786219893574930412062621589417615679933084690471859813350106372854615104972446478769342771011791758752702630908460873846394618562246534705254305873188990817724041130393029512000555680864388017553100042579575499157812847272791623854195452769148142338452431618939689740865202203426017976908370462344530106954576197582789572790348238566720062573851406984466181689582853136459653045613211600835606120732851627254002182167410095038999085793023225179434793435722539322168905917261116764002684605244376773416347643315736143059630052318693649295987013024076475015456135369805571087173076044261612563676256012834137007367989292806793328479222734077701043095798972265422737188628826093100589485230265121715444818816121655522287803506999188048506560713438436550576688685075874971252156291310918873059027776431186071896758623335548355744434445754536710160763892527956903829642674378717747110742091360975663428949783809145413000622424138746097313771338483838638216505601169361076853738968625465441339866190979432051588214071856974164571598022040148826166485876649074412068053883759290288934218599903190631325711546898291716831646024494985872926318361403167790084220680371505686738997857831102539321107880116020101733033692914216667412397895517483525720973240032541612178748588578352604424077807522161912921004399941954619427538522806014666917798206220831192723038098455803638402149919373815898929535982615555730093404406039448046334007209827592086222321732814310891712651072549813605360462407647199295788625915377117133549623030503237355916869718504856151820700085375096862460596135814725215646883489889977282324612948799300163046714804281598740687493157851891291433800119025915712017944759008467807159814135409768798510622338302898225007915196988724858261787716694609993201815669545496427042310762572639757749682592352985590487585990681579401232136123265638777531965360639522928767871007811736862021866750368288849875201574586572215584096574924217009196690296609135546061483581174342310103088520274146101138005815014041522539790396047325565988552952149437725756702231435603547832374140240568495966834585536367087653192794540819957478913539853968686597054527812435986373794289570477727321776485619017541138794198963756499507402492033953646115494848688738354894389768004530685871980712578310762058316742589057332034518800710629688166059104466456188207538846004343971602399274897278906911409513247648480893308690612727366014833392756486374239056073725795087148137360752446770317261571402698651659769629697530592417877800099387969877462230598301745230892538774932272482396125710311715043113369877646011138990525280349586405193120540522965607484385759107658054784370569888740129121927718769738425618814366856451012369998905045112701447954222979850332536458126186839168696263056414312926920003444485251654116712781162961475238498252695834643809588986872635406058450979320468416077557542745378142420188036968446391498109810739300502808947578001759284535495266559846934129082336444244274417487620918991206178780567624126081929507356756932650677610619506432137158362613097464634494354929708930114139670663710558769816878764984930648073445598267481245992263087585726801346857904186208820520606809471430839371402252517888175785142094937450326621346333902139622029037673442669530934645096080595794995045411102788427811544394557109678846044241783491783219424891291136930038747419308322595617727992365966278193582204639850222485766997562092542525806614777305322755882604554561311205974098378760805208492395075777806756929797042483602964986650288030777144730687945901355577053698752616471860564471339419821072245920241618401813950367846842095012625590933656755771738394515686147573504782692890476594230628887407563770090811388430698581630544475768226830756488302602925421543942527630206102761858910237313665635347672949071463761846004765097559102279620324791100211533408331789802125683838651038282071294110384997729167130628995083335638516285228518536625799954966723745725762243288277690837220695318599199077307946787099620340781316252684980968725928359433481074659507412928854108569257395070519134098919055698554194584411926898337112320010515231415424327434045001919237579160312915376403954703790243688840992047479893284136398823382926476997688749452173911636577233779306124751730003818458392994134217487361339559567310265939615524676405489766048537635864641262733273729129526747126160778473557677486895781844906222289883924388959675753744980746226961534407414865984871798399594957652332813037016190565716532828695717009884075253302088352590021002006883370531928898919412130922190315138503217033555651068186213997141175563825588044418955347744942726824410766997055250032952086622214731619597607092984342747799455591367111489822764013201493693912976459718337680160300253515944589945634326032594398779574810078145169930953792997294939710471883977967207369539975393503951210933564375615373248130581030741774599069554466044266066123552818548026231979505994827339562164932616434479935370701996887772606459488204571034509223362314682740167395072956871886033801182228221920785586343685219298299804891396366105001267757715026779071333298875127223889908338645410298954354103954812522225945551743925319003688885882975628936834839381659632674289542546111399077344008306922302371769806669768333168774160069888868358212476474914873855974608046275210734096630004849650599491941356962537376240579991576276372518003232069745280851312180720142924654979858269287446341282173354819725121129505436430064898016435371381504910591883699788433661270616754616850927108878132427355992715487181958280163906445477315304009722048852679467217655478351967500812940029520448699159431983589867341903389413831071511127055054844423696060920996420396837710424909466491948429750617084569562081278429592202285892638217119443648668587647125797361316933514974146758538218173713641640595145539302052493852222608445846913256213827092736927407793666267683180538393576610115809635682376793777993753363578250529888377875092815763199502297380130088407550641162085364810549655717126542612757416408617427848413433741348237110813046801308739129332490907876470805200827613365522273706149571790309482205756858454397675506877707229936301091633243207438974405333406684720178084876341504782624767847829941909352994066427345295217518299972286980933819107413352213640586655107989136817636466366260092517863629461338246413090195540444455241851056640329731626155768271137996424271644778021566624228094869389088691298325615354402512309834080327683344201637235130973722430020623322417900310628953954807205823061846374104965980153119860982255507257753190773766845512596013058456275577126439456305083939026821277791205151636290361733225270575473432604235126259151938644773585794909595565980509280950088661413154357177691102122893266898166997794451805851862519114090908203478413789857157803205064246390673264777338521748311446704017672942225137525809827019298313645176217016901195123767995179658021901183906117735438731653205835890117853666159292031883067445740965902460841834816347265974336155699113504466358611390072979588599185160206071509784328957245720839023196859473760460567548515198841713268574078703260333268559936053962109741298358744631207717060035667715128090197271304826881558819235694788397668743520533872746629590683645536440183640553388952075765293968543522009771717006926880897735692532361098471430897786171054086260209919568766475321380004225777362729260534544618337863953258779426689607396311200299658827711478453263358249761131566916698461707064708671689363217727907809651021320725721487805458285190836760095390831680317823731832832517167118776878355112236931270288490833766878878015864281109481754505878659903051124343835507914647139963119149504839067714564738413435382110149788162710440311731597188854841020011744027609420423443269520486041755920662386570457953345150449926786614873144072236427337382718974885210525149935483915382179247332323437833924361871701294249867779645257835207914693453000268055924989446012569363017038414491651939626686226538828163498278486013993059060474868110999345233758521807878823291371874586363714298708226408721375191024437043971545704647529067652650444075282121129888215141677001152293135737172727592798624818576067307359346968748997039665903469984693903435135435164540948898501256235132275589229858373446380426494510232436804829635717288394467841391778667102938347936318924449915753123710479841381918375508613088958331261261984365802725210530853889696386106926882955284534128652408395365669127449893073265076880598885140208116729482364939326954584496710531174174247451474254463712964087371554506863788455151911609893016284840754209347163336019025091841528831425987558899167191269994288665149047270702445403384433492110032090562983587479804518580018365165856134291946714108731454650337014914882368422956718005653245112209152880750911268179075073592945497839551243765703804383555224260222992407977422284430809466680740933566865507061240065797377192645758940280386277007676763763748848698980553470944045601634066567605963426984253997154816003953653572197006394157807387562042271700529374276452359267161167321955638726538711707723096893172227428823596180218270331426301256640400671318833352591130425133850865755588463991761079161216905727501003835554266813416929110860839676430957409142408870674932211217610899440322662227415397531616691501637297060604109481343474513553029282129530792654073390081325545743285511582447831431638269359947352105682201762151361874577280951291841749845319855439420656118238234042643872440757257401764491833993776763531296771380610002354465656368452498801496400824614805480166210491079850777485276041096528548981974256193732464951483534120625910043458204233749853425203367238833007728725780997804029291097145536748269843423743181064615671472738844531475606688558434299997328211965053501348071219805233469018273489383317342606352640208165996118332602392642672057657890881109649977569503990433396781458535762239510818845443302783249245289352453473050366499458160958647174096423645408596464211273740762470278650959109829820637002590770703810841175635649736619352753555511641346299123343027110717089885352458495688266163552703274841324214493054605285726446183669368085649252947528428515078413038810744048829832276324622507835608617610424507760011614069304402534829194214197030379642129394542793869221197772564157936472763567802345022825842133021415721741225904064165867474468047445193758531708551640429421440214214343350751535778124419014131458137180734850925043845348924810177567518054633838618343799964610433003972956259847452297718945838454581735578212799595076891767772660739028608624325416629416339333030329014713357784239865222646322735555067198903795744618484565506717650767836550771558189229792257433262635726858976833208385108554428431501305324936952493710277573009552009571222499025440621103432968236848577528445855177389664872443299120317529231704882590747761272613707181306260487301966364182540073335879154854793081711154196259527280155721578446592219295177724749917873210949077286547490697130927933612047312870731048463652125003231547817607447151154190027086361128049693283791332548358467970154256867547996987486819958099476312391066082627122225602489954740231605420328132932137769603234934693385643711129639228063252793003873259133325584246354311961578186235570098569864241334204134772633346843909697850847971171940853580423012934522789767015273976334075312959720244322464011352235229383997934950532111926200538352927611346440781928968251549987202417965303308860303633907877662909293613298943406564045406574370750159009929257246588753444480147450949854996834367994285145454567781448645732051505464454202048557845693446180140763904036174933426928112098048145178637538705785398873079832703113526546936994755207875450929721621125458316105691927853288585352066790285471872855710711430335079324284956716913927797169146564659852722254865325936578475750750898425793377307986105609942675303272004250621633998195976810846193048786808353111099794700570070170000399439375949769676667920871491214195298290869410059122594010333015083991781166833067256403077099121648354845535948324004889904816116050205252508595311415169917148055759845533790310551275253548436580887213332164661280950101033766074225440394200414374094480543055662151774809992574499441179193126522603806600896955417878630256910658158258507853332727230207630069779259711572063859180102517018930969270145482275325908675293163673317714230469811176542308299465896938642880423828391804333849241937174277137480329662981011801332864285322493354901833846401913675186836728924204170340646305608602886223822642520556281013503757794229178235899770064056669068551715093857154852282078889013462231324946940306042739464636457842005700936303240870197315523113530057393502631579986692065968945068526462612051397709954438228876320569637036177428547764298586654502515422346935485739488803267937926393011260983575065376503182072467987832316782647468870683973669400533473198212695106064253831489263042578629961707932864711580071518931662066595111005968829495791839502150078510075302532879364552916296070469045652708376096369785407894412330865604063114591868120324229778270571367555297589805299467985854520220736460893679631786365131933457006628051981941393052175716236404700184208811882960297876997039775610831668307411438084822696088216666988744079123895269911751966170409720420472892168051194279949665156575009994219857024524542487011465195813656575495651785540670278208183013188133430256926164692483348030378472397048448511755194771083992671130631520106958558238299261749046497747318273198611376539966213890802445588038167522986346813661877872036270283571417805587371283634920406932340402572071149140068417531722745855614290926683540721775847884274242954103547746302344536334607760059350904537123524033620143303277935563127587722328679840924256145960520024823747286544416956972058635422733923141629432365089784402609656369518106651092763575104942117529511191922926400943260526511003294600132360901931926020513808828330143826932246308104204689891025300300231066052388289795958352383385558646841277915851951690921509337289551824789016097740318813887940742042935093655929467074348221397767425226813719164116740622353756017452628714448194958213351972912901659170472021806867546991285410383386439229277447709547160623151864093445484748970746045826931922214724794953899802880537772897099287939227811404240709176147054237412525005695752940501364244483342917878976002238884466618285721678026679892171717869108701747030254659617169954705970982086641721339237385037191534999975504525940488869507058335516533318568433125097041056117230392660615587887455885788535184275746206277983081803821984399766977850763385590553298157203364897288381126059393619648148256313871087548579769924676005741883690570195383556473776147122339324928155049446094576256444545355341884498332535812782650758329429721625911538518449548575174756869313090832264509223004157750177607596725047950222471069956069535185920108143884817321682584599053721120520812848740927510685086826596662954651184953410227674956383430030135829879377368239408554157454931337141989590529326828037372213897673650274733817645726451475961079567532967746787130033844061974084644740827850006387737008337171830818803798421097195053102851175232100222618696698066749360258378009710192489532015348533760476655052644872899831014655008544716410845746648393269215857665931145819957720574519546304513570150901125239492422999744692501975154207876178137957409567768544514479732893375537780000181169454232121513604660601052776408458648631639668439331104150141815838394124981692781722638506038627589067769600602878531361270170731868943216843789679846182370577040480669994444905692853170738663291430960441133969000753360291787318647283500272860547098913224686743973781427891630492394768255660380952983252130158644625381655445923884336015909164572154652385464796286045165707101293618160643307629555418139093213250791709287118555196699690646869267251199288255460757360808127176388989344781908046389441185597154649431011051742705306338954300035577462608790728222121564990314270537433942300156847965889651213043096234093727200805108100946032345341829520419719934497043366300611180050972570543543511616459393088806963428023913282514529072346213913871385509082916012959785477534024973357889857535279009613411748364121320659490375227474421620771076062445741929807011660935511243080048165563114233895211536065014177759795828430641493726612113086381516207794133374851034589452589901302287329133656836055501172057879785139014477541152849328629908748186429460208409538644850383494572735558282604549630895424081142115951906138648915039020879934513397083963165906998557386202312071750487171116287502601904525599967641567692655061447122332014961342924462932234889916413234017980209427337505527508327956890527690191381041870635096392783166745350324723445693974358032949927555489510597342821778072490744515553206098676036044888839448001381992208520743990793122637746795842634104068090651149233091062451588925989171577009684905013460461299295452136727159815026953314937606149310072610082590229651618706650525880190578331231634849859646406794163828631612983982266077492592346187449971208608211500259485859004695775475084436145362982141648612981798137775857809342602405157016650635423560270584459972561396939343073866912404261838004891066691440688378606204237127115273893994108473369568934860332576510380483370478836626056517692890730051147670605495574458592022903851597882787196033507852975680985801303703987028829066237279745201250905499685532153990183379979784278730166961297465063358650082122449278010355608817474526801876031527216568571136906289313093578514993491544070386153450100926784716395365405203469406552427707722116199597235727385121434686737831315411866752271668288751248634021987680575244422207009299041021871197509694833160412626352361843556154905142113019815902228275544688273235744646732493672816830403535038905323226769408207206276498707776694660608901886946274373502461287522018419421992493042638764860260042728768996471383126699882379225501287853599673126720638563073296322527853936193174231684020897836557095781166990472904578425550916176051814970196992395413737672188959348576953770584675074156072210670725472947092613622345166578936460784179301248476345074875657066369636507855994434447416542105843523506854916240199488686962073685763220362368289632533989974566860004501180494018261285282770771949726333256366618417452429967432255739628762882301053183177306494724831732561958709130117024073149174837400652037265475063009780193387056545199762893987435222986112266183474678928954300164434470431318265198276154500685576252383987017405749786102615676887466008983608343174220031109856459930314077662098781176436793054296333678641307712389847549798585098654288687499376270576234022972273602465478453685691526901570702549278007356259838766802188235475459582867403029715388852074040080089186850467763714553769941305367877436044293812580083776545546996972862150647885125900850043196969376219253069298610104785031800973479325891685479385387205939409797453045308114177361179162539566540587269899701196981920706228899355197693213890169560803487916525670848989044183345389763091739245767302582603770485243319503547340604090294754235835786121644749701462687655344428954749062936928207505708692047757771235783798095199567304783601013343973807961678638340833499623759897681571476097769961589275877335527111436443889996313524977695330986751734543018147561595219179978570228364885172101739770414566835238606484642046121824411745999990969553384323666988009305573850445150425062908832557013566180847726791905579227122446549614907020580055311908222888834371422032760148999332679067924555584540853939689060476362176379370220058618063411709888193894001016808891770604090261158307367524093906317783954534916846628445226151363926907877312661066603322851449227017077096569515455913920167712964177658039899285507298358149785577861028548072103503495838403661149196879487691259317704567113945091239387107916849788080112463738698898414852021561511469259250693294453278449316472647571581404995709155299203774868401367933944562141498949402381836544620538203073566458765471702252799485421286454129949083650447370772938635548845135375899727618533407474189208315615422361607346643132066056995956802092624387970889801044880131138731719930544252656538720924965469952880241265215151260270493828516984365625523160603341827439449435047772261722753182722637291647604116717303060645865344070210002478688442341117169950559568893633387888731418452350168316876207927568895276088851286961404504019352150311792080958743216230375607040972956708897137671434665292580686832654938379630534742865583280265660764396835574611282000419789577917730725104776033768103511818735995898233466042810256956921662583740539471042422765429391560454240205773373648761138835657401664791674706641974863466540020870220576476999440532920440621066368295556614370952546939288606662169343819371337617062768483294579844165365591807503998333422745116791127954768061395581431464731985927084913387461091443544143445737710114556630673614791496886726203560386392308158033675864653403271976512834718381775323779056015410504117846842204907898323181847897852477320243273636154477885525126509116762642541277652619548894416558065779320668213912392039263445735939773897586300967624121752452028487793858426136407389819608351691734761349321319284677743225309770059241358123784927410733339201301852964462737580398863484691017096675723216399183433954381226915883801512056514316352886166753446442057484419721216164971063064960124865774161410466200293112743449363367647354360859767287339703953008034817522528138000086558885561623489859103125089135720399229919470291056995010047821019923608094927921640541494764413285561034808910632567367335869341290209597343481147591863215357294657978631080639836000607775162506673122233042477439587575913032959311063061848256915787476964073781922331891774889919645733064794400060098329986913963804660783557913478444962836358600681738967048170952512723614198862298163059271923991967086789542131185697166432400580476833593521474827305753959554922442274470167699888798275837635473702231760755148801698649444707633441286411227320808722433161164274562089485627031046141080580495988811829966541180936891163197166219662785568627316230387846176835952187333540047295280113997663673582282353304177809998757591649681416332177219381656833033412646856890870583974226724730626764090655761157186133650312438526345825404825524438206962905542776662035353719771183286448144848691890792897427026781068833480004653614726173376513610190250749403091974996653658140345102739731114357602038675645217168691487823444874637017883312906336952501629967935438912227797054875630968930372684552898044267476673067561782151448131464764293588149767784995079609852345215352286221113860467620040977096606109847898890891147014536747389549020605316553607234880079309262462158676315141357323589618626288328268572007070921393794387231504396933763060646515461501906449611787873833651509229348974831679575263971303290168290643031478617581440582077965203809024828040114536763687419194621856312441157913592102973454704696046773089983365109184107691295269226028506076892066224600385713266430637002412126886498366978980541169640186031301313414724618697633357227769723804509547607920535294826067422616777379405221666323798784765672607112809746194791864886019289588508876480657570329512718167883683982441064977829716182532859427583416639252405488415168730680978277808108626756761341576233967971621792737606368485464480020054157863823159777749849217993933714218154759976996824520697552221383922146824517054322455094969123368562657942080662379719461237605181805770490687810938420062667878639836370082743672960741573391379406082718898845156456774297223655016396742187729445884748077231461499190419176574599622519862765093109266107505753224491097764238800967887508019078515446626663450462145611892232056274769960322940680799980892753931805291535622548118698537004447261641315338218564473907304832215864587604524720779980371998235997923884865557868498659749293323276010071105739855504616774204065893991144173165316849200917834362945226176661655499177210878856307992319278965552594100273321477489468065070781446140217906746373849725363360999002193894731359641018247130714367625022953259257728144040516157043867828258482600611990020319323491868124847538394591306507834321473763138972247010889756476727632512286959846317630130231250781827840300057240603514816371784943948546456177537371255939343144533780940104600283481541857608427280943411413298180436940988677100607289539786826075649220053578008115712589661734494505467367326723026552056883523996112669849185109179069217066989645840776014173394233920539524079153980522041773988140304691233564829097617002475266777217028122356600199668989601411493905869256832126976164113895600363498998400577485322419261870710291142048267392520639797798584935758904853100307682281433560124889056483235134307692052219857846464500858289103324905328828187725018433643379986810957886141713239425322823581540306640454962203981049676199968372494480504945779098280290523464957252212917547151219180168509953982729673181286672447017618871596269157099522028422097388084188332258180944572824651092979923471439050194545357058759145373586484787387433926531516626643504494586699896777079135785964855158228661350785595370024489370818801990196924960021075364395889558784706325624496438955418482236639237084305777484943576414465824681528962043192483989520804411021971318889873583263128784502418615994883963131120979972715357538960474111791337281555449290342908703569712675951773815911585418645728788096299196964567719886363498270954145576377327000312978256288286978378462953596135748550754968432359132622490035126127103470170938132031075001365788644750310823356886348229330073927711537656366226164957766189662961120417373367263330679112394046088467823634509005839126882677785191724471878258103277705653649932064852190404132328593290658171255930593320799803285337833547484127876955741784657264530404253816690388715198842135544150427047806258187635892367317388280452787677388412329675923618552373919911030200495217110655024516978619255741364310399304949357018106423261639788241737232947144174450901708588965071867820715519274130755664444939041090306202886529294246580317045339296582482046028763848495607996714605765635269395889103816721891611106304647520297526221063045643253455922383336343408051639822307496476963546929513140770323699453697349721874048467661430974427686646297834654270650190550196239442927521072870822546957555154042505444993805465945054541160467823434373604839597935940472539693224379770873895658014177742334696845851096101825565134092731802167083950217692154873923823923785996628696686312756311670392539659362482523748781308479214458009245476500542830183788763460734185912476587103602002913552445036425805078865674788181392258186395803692508448229039500498600031707929692289313996754094480992773268372129276284319241204779553308961202363071342075904054694327898954097648037434089193044797133981440257487336439802880678024788435304994974047115237650919989424199013790086189904602357300519144299853407075662216737963250006066142335775094549358796257888328969695673749289393290170618466879439505246637872386879709557806015497351007135164334043207881762498873628658475604879527041694832752092884676127523383788935158908252532121913507536119804430857912042969205186425503028470127582740886591314087330784016722108351554840394830181015173740203700619362191759127425394263586901884619837135499336523606811573175098382687362513659206121505139300812581215812679760970670389759197658575351297439698337719714276331767150830181562817804194091381205132677601082171788064907056044855372707969899713249083219549284686073217029546511788848179350524241739308305308245922395322428990614831362577203445427692141722736242050239231484802580503041064666831917668199012361173871845543120789551548275275408143537659512713970431091616778980512214567982778337355546931280296530584558317023742229699085729090326376887497204607669506088531181424325236147292711069184398582893513613629033396044617854968015014851040137721093170716639021761388261901596315240907884550341147879476371129348295779310465580724303991281984215364121139077704976396481181789163687805899431948853308499908340053282680271571636261136798138153158757532035727567730794641233707418819819458917323596639132889306262247430537318781477618458342449955329542282088760681710502818278595988259623742834158841500756893899237586863097077223069773642929620965553799876007863570370827983487803072507794217039702259759686111050850046702015225765716372945109007781647090503430252047050767300631111495778959751594779967412185378811132437829831791927111568751818047632796028333579025355527602421373445040917256417244991601618306546419156366870883180142955727318245190546313130601108371797582198957501092565415445524816002053679493595445292563969505523911520038251685978528642494097251878801566810460766463794214714846556596178711300374190629364896389786901093542676914932691529058302112854555727929422065315431063163268353887839065791104042766198990557275172462712073526302603882694578386888400685230088171409191392421145260720126749201042126085986319476113628575553633904556232779115614002324892330821511223772640902735808848372950768249862058687982140991033945288723922677662567656828402721248629420011954416760517994312860111713043931448036689148966899544175893104766771279864158729364978854957294207172679167123634971302467307772664348496125107816418039406761884630452383428522209569652246604724724447888753202418858619436807058411899778987581354365485821270485778285342083584416900491831133685927744294077919651612579448264645961402887836556432011437012105766137503120337580233902108150888574439906519507332568626842906504755570589921028757992854577155302429357677963426130710581900652033445012801839481390915597911300732863990423880875408528292253906324376561190366111613656125514113917567691916853444676343257873701969364153291434274118862006195012216941815270376914884689750297756020542697790197543981501801363533205319588361112632720312502135699797209738948852504548882917370222178660138162769385314914867074230528293639434031870431819553301062565156754286262187503667368552099402943442266669427773871415014264206179009327872645438417954934386931291303748579938250555780400372093754406160681979026969710127786115388462101013154902105207771906557812296909453350730577666169040576911167253492120348253893618237256847717570536470241434134913310469560099327284922265566168797407672409807930286936655326434345213611085795913296284516687604469483516184103069209379315973310153018316264678860221236207057073739758991522557034844642858553787098118381662313152973173909514542127835197691321829980918406602611861053338451906233050116778329056051044539081800951653564413884739065454667070436647705993240602247207550070203990073680083698922462610814698726512035698001092536034995946614511097336747182443043335972815685904271041550846028209696851293563893601415450579626774066425409223203016469971462019236263710619016905850992894646803427095568868612284851177560963366532721897279433541283179377893267635647772318544337744322420003374725421822962771457019535350625624320266209679075453841970432736347825561281369724639745673856632118002414416934441777038711415746683986685354345822355552531902762605689575887779558921730013494113063967349331922278732667742943102593502272261421419304280798195291807756499065524130150123468836793415698533927577548057877143014513747100604584146536653561532140641570975851260603709363961015052455396961517055705168880010764282524845954299734752995322919679071618650228851943689295896448875638344124113606725384253021461268591028531168148650195712081252917728564720545429527912167039586057851919674657861377306205054072133378422656721476082803368430523194766989760640699730826426271317993369583793707893258025721749891250621152979145005032386205587856106124828857957102141383116678858732028444732002012759641758894935314475463078012106129451580438235062600289434205223255967431833094449874423675025483656628501986465810656725214482031965872157072728085322373863379393036752271837632902069807004202724649150805866989476985611680387871343419600507747969199571225368676235377404356863944294347221864421531515340499671491906200026340673972112681996530576033366138208731566121853538230844448040475000556706601901113561266076575871079677841203348007370549910595129475903753793273847134662774491519756288702862603539023205043214059516280124299876036861903665192499279661578890479299464379866080262633403428819088467519111859196030215320303941292952382185943266612165289549304787278015906288338846277081008690466326628118920587741715514518051392666312001140927034753962818260712610473983314067039594204504783192703508828545479629174938205181373063387770944656841978706863160233878135307138987559359837851399722312660860523897488920901784258395119034421358544862320988100711231056824231752466494123238458660345609028606588053352391116727924885341045350334128211251603707242446847193520685745802026313906133685583776875983356044351417307375506012441959846624076345381637391600377973874621979017825670862621115218315520805516218073976079707673011588006762777690682781848307021150151479520432698320610983426194718290763742331227603640732061324304027161822184058878362289938388201529605590567851820615004699561762112025853625905344441963517153623957436522980722970540393963421505350485205777129894340485710210878120118383949914492511592592638214804523643958415751733054603482306243870110503822977576453797018695132066025477914198926894183242476860571345399215320176581717244073353133239546365763762942475674383880263003133366071508049315946165647298011961754384473787381599138320493050150598162553106765359695862830076001200240569795864122566531685037244632144072806376853684511633504967824730772519449839957571782103180790197132977373010065618689039378633394330365090795131924539835410258893583597904816674579309811850320608102211251667402006097230073771724000733636858514944342683722225754942509370092213323847541236968550614292856406781317652313914591057360363294085267702626216025336860338520786518484879354010605402476204659293792439202338553128436154300063089163700192674305606597885735198106730794105106380595138125603856738541795431289310699843124690649146878903668683900185758699708288025764099478657700621841064552505535695830125191391799408742840050081384347196840172274878036360146783827627036101700797561429460022391600574550671240854655065397039669516546945589619332602525175002009671513266900973648176667972959334135380358712147291866415566841484371425349552553013469878856599222872041092103671019359104398312323324017717135848711007523527877180581330571946928148403229491359854704437890705796014518392312810726474133489341916314837046499394989781853302574325623836497294189666075147600279692553080082263720482629412838339812925462446188373862106547365040394117860577479733980416953744969549732417225855522792579340681405879782529678875883950538795993414760775896131056066478457417762046573297985882427725471346444188668020110514923974868832326596807308666584368019098380420874873493906729109276158277441279547441468695476756867650475690285267149658528917054371424372065412173068371608517448943834842802470546814631496339776531459401617668043429364375098201507362589591978104634863644960565421618174544532239034477701431174027216072924877797438625146772187437279801488621527708845218857514409657007180861836909371108144560065611408107548647265218449745729644117978069690025740705753430046770623329191153269696393710448394336924422714012760929270423710728903560764233057669882973971671876592210217829625276264276903701824316228250256711833004203031987855545658323498853037991594242356764961779924028279488737130442908914308500269230361672239532653214167782183779038156490262398401766634177289968052361929589681121245227403509212256840380872952142483553076320517224603668883868555441931921382696861173954991438936302850590795259483783642532007679364727381619626154647094892138834602147826300992807727025526606597696598456497932234984664122393128894611361489279358672546571707987831316522838458997766039185022655198917506938200999976082910485358726140201876124605519583395266283057910437110974508896364485332982910761415335685927440223328291147071873742445304239118688991857673975597268824832849005532858667729189715465392274162957073423415479780331956042823455748630825436896436122417312631433434944557208163885960800739018279711723850768371887323558424378727553711190536654500611524274493086799246273118127345192844006113911400945383467328557328116336084051177002566132632906240803621262366504828787445034833034762389254799039143038636727247878150102820390314545656958314643995565838629137935087238659217547919925839701224675510159121671496843010955855560596964778747005471113156887320519626484312199851236402859963529046668600903543586901759300336592495768797645630257761402178653612729683062363057268121138865806660944237972498527202616504801832606572049577713938353266392271191064615013797155672982034548454835022370949225860919111202241700632194370434951008486737045258058660955907359674025179967495865115887872595462841535891089303322578785045848336366824601334317440767389304533036452884545008670866085919674886886383193003229952760556070338892174275160934786157441951488605875822657690994594754993186010552489146775871690061926106953297516965019896147040820608363697484175363310695542233346083392797977307372089421630506455912350249003452621586530969179726871851897573395984806708738163335075286410406676908208718828095779865934370141329127856657513410039497657554509624014172569387362151071220518028031035326185684226746378642897964482743475070525651827342533161950710719686446991082183527578280462996208442390395792682962680413291778408742976473181748068391828603899807165109213056420287880311379978822621390561188956959844541329351728947236433105349094951338061444353666207494440362435191098505362591752829893623766124475102991256091351099916585034420281381309404472995164530912126438064864183385998619799390951050322281104156380623652779638657678353870461391928641956693530513036106143000404680726677105224793959764440147156218715247631409775386671961912888432837137749606607315187351508995179322058300567968754697711186486198498552247036554807567096812889469107398658102107323372461234731886770571147322832923121134951072746598303286779206364876818304536091043273038052864468657305001651845007286946572725707680590922400078156208773941397502636535244663149826134345362228701885228483231614885780417788592974775894942320997340001919964229933268736587633316009042250677977457625573616577165413861611508816324824751247033341925087964394837606780812633535680190714728686469316312893762715214393676151484837041572307760894991182094295754039842990948291553986989168418354082306112962015726443090751648790109048939342420727074772977320554893827416159682605695822571162077314631330906575129289681362751396221266485991953503331871903909837317694818625389468256726182536113243715034430417934477958593032739440346453993747030789473142281095990370048191444993089022077933990288374250314795370747591630550264253227852697695556899198432055039218682930820611148798224583923546745758674294137501325701910514692045291343586124492142582606450112650970492711139670399746968676730142553994389767533783199708829261280259721129226652235298725754271384295381437002307251623503920235479825208136558464857719626282964029340282627917177885524964636245493081529915696834556932552303700343193588263630628123070321594149170790376182615151441216605550076665959340482554431453153912789018549350393190335922457687208401510290342123368197168590763883758229435598965199937089430408473456747161128762638266151424442821195512751637028120319719463315435156856323386928418283171261237678644532389988529700625175683893665194913089467818554327804631943796177565097415164170592581303084878821817288266723444803441530913805251825262681052103650099543756238735184579521989894244490536217640994969627157763636643778207274632547960895220590454213033764289119751881705167301764615573427360403022266055498980746459944307179963796426848237596798250248532030915196320878749414107412454887771374122058066466740636450977712466316204154506106011079996983954799980507064354428450917473059902458033489602686619433834182282263692859596940149007497366988148743482312664634547988191091114638406383780273323167867810652335847253361099895044422271251089791704917530149756086724873939026453391421527759311617766549076911446646292349444808089404613774032974860922454163886100046278066965100193388957459241791619228682119799806270596529767300312083495648764831878349128403185072660596917974070583152835429765660871883778007108371954997451691999440092836147397782714314898705385794807381360255270447946507095770358187878408901812881539617858013265784274523862975997077042434735933729607812508722790879444308976173745543764003230679324631864843331164151873873690750572892637458046378438093629162632088676398327634160140152085204313502570176257326580385623544379557895056734276740121334778080096399758564384477649804925809899201780980509248633749851669114509823988230708795497258743076919910857894690570320415063009981192746300906608075106486188255996639751163826677132205614285716142601537367788467532918432672845756038309069297678332855626324687580545150840548559022256389282930827555158729912046135069507045251486562003399052776232631607234365872077000605608227857852010470507446962924952075930646842003352743530740576001034500227159882329341056611960248567749466919480922375562254770093714675760248983851154860309336759641264187844093845732217201746806764394859366197328861827558341857015906340342592914012520193078858186847216392459817854552589399302603542827085555324667492882187771219692020067605140646653215747125613714286098667983775176685594217069679372344413323761683199958761528721642182787137711216609523163482919293431982637825191090947663586525208569163780643210870542012349904805686482822620517311021921077004508571849241588362572487026113102477864111805334854144091916930642510291403248390808087386728195920698423332923029486792709103262790746898664220412552790889936371325850773754849440134676679410608441128707631233495619838354965115896098016516265811504291823877658009096458850329892311934618845650152318256866741462531671666112299912092176753583329629113901678726258290977197722449318888303716402611506038668478065530496100462027963153125956450581906562888984596602380092812944616151803080706773853480059682582173700933354604685080628679253148501978294771130162703509402530378989444505348353109639510511131487659762781970467259918204159582375557796236151116756987629908471129598106543718341463074812374130980697238925031423721663281370180098232425159850317275493436365601434965811590820898389935851106257981480008172373971835951063534851953753570725341362766632905460446346242949854452853067114833944845652634480631476794620679794147863520276640753204437742110565621288435014227331960767136707359299797036318455086128952562746311629089417199000198942924415565844651051730816790166455234213370059727688505292255527559013203875955042280607191267047553289532220040921221976839908201817893386802820930310324921175472900211579806644237889428587800687644169896870026805652879034830476505150621036192284146619446038870509164566766569342319258547810415207042560231554258280873938466735871174977823526580228559030427183556010463091084853437452969630115750868421657249183165222788010789978470797707390741324804079737374511987101551585367179471324031639645497745412774434961959440815695809043758993144643167075273135931266476880412498566647795776360847035539312609436913150997976482301886534386562917137167853643636924294405723976660433242898484526794519061652164463088763769741822465730556218703721087954621640230440860575573138415510708076880056504567955464503540591770861090812830334169401867403117531321651508184254379039777311571050610705105661752118606236748836409546333368530044935471014316334511657261948389143334884258332967795899211291595099627571028264158254954408509363419372740804497833707974581680185852674415660046883770154795135456886903924388208769762416322301843238465861517406402369386547896842484076821236515314245930485054875086062413170469432534498299225929953407314539982894384533611851566789983929826217447236117501276286089057076253918363959601313986124401756266050115268182975822936043395375954991127117505092973941239624535968849808858553836164217818581205659008501919234940667984062230441137098099638972394605894663750119036701969071415490106126751687310119577245079655225909085801942532980936303558395861854095616999308599042417527293658932852625661061381387170091794854093303766476470846584141674623011059027781538656115074768375419806837364244949492038187533102996364756459889568671269826375853870796608321504272463439577556311197213803713354642908975954447113921630578750350244413839193581822818872540145698276565896270486740709998123002593143252243520862867650530743746054869085345302790163690222134616420583192290265218117042840475139311580893693135670450822162426024433794866833206022616950837384968233230635515206034607642688236653188824567643378892698507688317004824470787175060564187577346857641391693378310808840820249010028217538859381546774436872597346810640936431671110501214409117695320532274376308639192242361890222592567030483264107466408882409488687607452303608700213299250260270661615082370520172548561454127759402007196706684957266109746193831604308764658244545105680084528860134550098985828423459490347281737394769179875566666434723465237890604603809551665044688269381328199164825207465151582925724934224970885326221454660058729441882983721907613396032917792115538424593925588020966834451443516504577339480110789302983787520669596700588300438226533258013209216528577497295604045694216617223436426129322302223438295031360046861853490259806697320069691395942183020852575911803658272487372254179745247433740659490192143725303109404962914075702414800206809544023069191542838658734643875985573105664589052111681732148481381291612133309112327477531470022865913757159048025459098844012780931329187203546937983558556879634375328392636210475399830944978685922785169936941482007770996251904595135652776410829773730092484141172457653141365791425763798289307071446886333834628679055732780026065275732167277152324190813601944474234146341042704791724598676354994318200566358798581694505239099813348885396346943439123067541137902327861232843712310690671847325585754965075854390191879651135933273881142722663744614419279581213407304788628004277053964176897808887339070396981462747127331743488799750575942258476685121493580191816084210817761805253778219006256771716803721609118534733678811346740646975009408607038740436799099393510119017825490353381772384616772718585956150604007217666894887593783247822808759879887998849041723453650545268881282103569009875470303674702470231191590993635016299884638799157720037487370522329268269570733860430010923784885002025948718607024211415805759995771312363223607295758590082827124566790118943552378776943753930655644384553620596957743972811618910012138011696422166047592543219918415891212395666652405715737691715386173877873595664013938823843385415154592265257303897937076344838775177313539908384701609669586791953300910399271581812112717828715797495397408793797581399479507970700696545443858733009895863161703858229850003661229937973482992876395160593326267726579004419127200399768685069638121874414695316768767527914595751017124997617724579883776067030931845010973407129406031291164658814728382385254596284749653067278443158192666889920576932386436649125286320059963506891778656448184451249273147173032264136576936441706066992714777078739714279934905632283029761286984983065471057899304211762318986957397554705982300242558810396147064138165094297692000454006040911607931654223041088916405481873408354058445129845672734705281382611252681814560967994002406694669046398037334382171684632999441154405194558542520778851528522451274863926010104221755093141425310492264906126936802869294577055072650607268888235921441613589806064057182936881711078847427360629942925507466898943642635551932276779238549723254084593920498454681443238988034008497146207875253570534555285510234131570946468650106629708391075358852506778075065464969122107347170832217749554200718675316817036129464136789332732190431425152215758290463532765073162046728489826596711987354143526980748236890386349269504257244930953115864590783084689121341763859895381144674597166715382360036284745207720757482623024562911193158486474261193305557844971974104587975305226114626379742408228289171779484423020974887342085164082400726120452111573792165080344922393305945287811379370368423549035882424174992283732240659786184938076438162983899069982377593902851702060367930847650926395283561730644451066534226790897184093752706353385067247825012122382658208536849341950722194139073959672293499735546940385933716129628239856560214387039806159164568606880050985787096930032011467546419539151675958978276798528693246956728366110498468733640603393377499773393616055044704994026392477595163385736890973459607505326564273077791350397232869086565442705018439791036267902942485326109227154423684004572948604603122054665880342157665003431797261386649728803853751271499628332294925808523383144226814122713403198938142994227835041905001781498662194204741212463945877086837911781175829593860916084534749031830879505750584226308147561887041764994292546033524395719089656370875896662001650387370274250741867785718031803490732068809923534809254437852100584964758514275276540705922767301523460727451675542816395590058748010498150462115158155272093858713068591030805792214987353546897894591388584693175235265997321526991460415176649701308799544178719970271771412411567980471442214146871844183066972528751940045167474019094742087222892396589220997965560481148544301089878904028853267162487718716316736749541616390491510608469003610915792961122452093062745502571161194209530845504292350640016414032475610672896971423360802480921979753433150794815409241874071009166585604538149198661728276835216263568392377480524731905949153406072136003383183753573574966953252247780845164247632335758992785468277669791902152065782743279889511658294940445984774524995508519677668267696993049600794488843733895917479951193530489215137131056046303449774349651643362843319332579199917581073471312445103023179984478037079161370507033592969448260273389949044893935438960446895245330878440284790040212565130972815625787609114605412813763093871679851984378169110474065252084275676487018099067610899687532398893677213573146272803293350840999607850742674840873679829572175805192867820893577668749481321003308289328918832972191937213430725149655114668857756349797877992249142952785294207451004124592993460897567077196007728037030636109804172349330371368480631256067130280019559628800169525510390793935437505691293218208349595772505788074999098147303182027765521440237415457728944904741500636060905205240322482234357478823566452229696767970121204177209320662590696570024036992099745732504403742047741295883203380125813569488541951634372297533631832454552590398395881987547722186190545720355188060865254896760621550129027854019908153387263031009765994617098721209433013420595232100863900769979408682979977676756357667612324363809551440232648421990347150678773353735078454530815241726221694476573909646049323039409083291907518109779519226008634687193799729064873315578831535866892607863509569309327903347741776616290020748816693340501238317002257403296704268416642393752196203627364374706998219252832634775038278197880069101724470807634163146745392874592013047061890411095716854693710400319188914493065213001332219980899410721622654101828885553670563968735453900878119819766999568426744227341100189575370140199689261912338508264573079205627606922263653397043628899905680753780489170839146256371168952361135109779807731458379172701990654767222028570624328910120815237614685038732568688285050822764931304051279642104835686617055530649844738107135341028086403520202486455970821085007670000049584466506195425055896264054978536316024503253475033335765485629784645514907324039863419352216526074834048983150549158171205035422512696045649113018343077318001660999166304615443065897530398431545367253949321408010321561723583802070897482031949197125626089241202040954167948794094573747552900332476383299822067949184331796391374112215489493663800926565541872293372604061263210376947207013149751154863317415227577844424658121799375832281537796033847371634860065693564506701022670157941318623534975826408453015490478672278750517281278981119974459343859747209760070185997568279783655565480125100160521988260614133459402795057250833022949026042075762918859979232012520488999805738049394767135694326347366051289328165768693055663476844054330128692895257066939308074315737381670013767657254224485046103771186044007271411222941206125092160215633732790896026182397254806993742906060254397152519550916781033449577882365484986157142063603969610323337408008876629590942185564646745876929650412277220676591539201396075538343402876409667854801065021542496724849725730367132790291936350898083704727499810275351860347303411615457631677170127643166369954586684417225588206299432172394381206137503615872644162490439666526648648093505856470679774553844655265841908163876429383645494269536477735267645479476595536901233238633291018708050425698345040225267235189866397769207379753538796245896017423573699103816645597222272069126448435122698194264755364112760328429403039740751613243367438692604456997355082204950693539887132490387551172210310038008728901826044735228598311075228564833028352683521223517366417111711702740317550898723031404244448883031027348001446503474543167223114811840427615745540218971921756226221721164230753963409153460450369835008264251176748779031612418434524058513167525622124203958866311993993190432435931199470164282786983768219328332744625089563713470291524521026100787091400669748382865603149708674203878315022746708402064797509007840548392329035322498416807865130756443711984019864056052702604771608714922717925889183564387840969528805039923441492932765830176447837708157052620310954699375440460970172250541273529235137516048727210409174573326586449761755374836463904265433602855314618021640369227148159424385705813623059418030578062005959683837309549953461032044288864985710254542868543292834795652074004584482753469936488396728677375611158313801649618833009230060603824463727546604653934535619983698389177216372781190346416594677094167205342952862448651252612280636415549193735329506924326241044292456624231600053966157143458374909008406648931543509483693710665786586742374958586789019383131216823320935892747719993407744909551625191948867451729298772082609736988221163638514345368944760138269985062639936752724103096387362528350696046500603309075567132839016774175401820331986660912373019496575783226614150295570449508782028790294556075544648949420351742621298146041955322229556966221370136455993978511450194437362398764542042715372828857867418889594423299946033939753847098096873391635636407259845318806316466995011728263356121734079644956460893569548410594493096264646188511596291876668720954561361670723240981980315050737631827552701200409042732647039105616235406782181790137283028654179090623700965824136554580111912780597099627409873804588673444388969836416541826077429594902201404198746927370715297574990832034018713923137757315192169552995606160638433828518523048260177821819960847815036787929913601629856412061302949809824133779020750100883150742071925114931426569249524583563438191699079140660918445716907103927366820555703359404208708922920900062900327058098944904998375860454355224516296563008134962396701029674591487576074743989727095738182639007075552122057948800671412109100446502812357441834242210192073225595670640616597428130646949884746407780340477664476104452536687181226604595471092479419315235283754508741572836319276767179403454538618589482685392321281699395689427405104423140505254180205876599197891163339362290817841062356579277200673723074921584303628022518244699730644011356884890663914351101820404557205152502802091907749186105333195938021432029562574044995935481559297852882799617084165844998882752135889405308246341419197928825390447889380536607156345377746484829748182450912250369574027429738705270733698206661478872957861055907460431472689537411019079813892135085670942322694601887496288830517106702270118544256612153790647794541117104217276826051540299682333162597400814227841655656618163559062265005921695076838178301360354359201363268689458519237936604335404489186713895476540744424581702857896420770623481086216819204599221756839780952413234981570817265641666766872915845454861327794075010599627375409788645044126787236746959396689881116116373181579746146463899452648004684952040211625450454528347104414903469763372984916424449806311692873662358899593710783262477642013060275469202687401640798297531672118934195439971249800855276611106938303324060900720931304241094610421281453685681373890826994532456228196262503697164040605045049882990909619942593546761864819618546214878036471791025253198113984348653522521587686856457417308243397218151141690196794071067831622390568727742625069102866138791221139407199737804270807810096804547333354264057650688374527407764758222861640780948577319417432752149563435348007652993906633346344372464375025070841543663632423244531235840088000814074145071763989957817524282019421705141052808967122146161007828027784919886096273054111094662060525784483366699598457913903143825862552959779671174193700284753241501105504748262279698879761519888559331762815051180277242534203987273000811912910606283382164308518660515218721161783613051380830168803616662272278354292664211762901031420496848430872116145464065621157842059412488061672103751464957503959372593986893595724728164845719267855235600554797759411202919709063993396611393447814844441746459852101962290114921720537017061199271788885976914176299461014347325536863237997001813937085257261826080768989466136954625504989270906317144081390198319912567506541493379290393501687800588135567744856591944453984217824222696389608726783655098647624510193411650488112249496820005115871128325537430087681587251059264694179303282922595460059123803563715504114437380116565958234699497003624708023777959447140203638396842980835468306339767381573414900270709286119798639105105169116039486158988917407993435980104584264352172063471638355714195586768247729427913932398139914115603901484146060789182194811398857483420132985548154255506075133288475687223965475972648557002300670222499367351456527438300204718309954480916462399304553541148868869603507910164666856651484167855412447419314125470553237374669618523082201615641792884528565561589235160050607101924318015296449944344671960208086023296841002278332201316693267286436897323668828132781826006643528856201368962663031382190466495678540791219319949431893159306053060993302405893231098180091224156714452649592795018958959437255914593500302982243341863127506794879549289559119774005530715992293496381086866440763752809417979274862467121468103823071446148735893465858950042314210166027913655665191466425950149534660906287711668193672113539837838319238090683581810943573063843720686009556141426439059149860572998787820834203823490557538150244246219376753416123500145809081264780653507550105489635770759141901870083098064483277344740178850373573751916408186659295751497539832650874578380355485689463618321822447082677238274905801114292086789696543407897208906421236701348036032101281041252069921181397454049491777509276435911527075525468645835981726661393058267191926436380722924683507620277672781639222231857843930742827171633739589645105410477874786628772489111490445133848318666323890788034419026126509098050187158956376311284162371689140302877120806712553116151766907675205295641173593781865285620290438978328309427803410841476968676626862730916163201353018077432150203459216974002749179114875806780800906073016836760189930786039398847333913600075271606416067669434837585467009119919292324174648095509977647411009395488712748311373079408736244174505920122193938465475685152100998001428535482918635350995568455538907434309275640762228257717660110933611610327566568623338999985377324171771717261360667664374733156716246200061747684521112382470328417230169387852044222591227256533727484257233964711158641550913763446233515855952386817113112883520452032934574929712580927701075353650119051923041686592964614780171127948906554107136391324790408234130894098785838522438993398494758344377048843391248665319679434923997129468078688914020926605822090630817319571410457598710981358281673106152798898967944084951066467754689343058313267175210160598482241064822861796108961615268271765874727546613843710854244836052486506750098988695162283025696964408570800866232722422799343355479512168084864490878062658250055766905080276595741484661754249476010132454525234431206687459394761927424743137373240666702439960322165541805043575286688973133469804253999498505568176094547561257163132375763865109160829650403586488109277765833404939887882830978424649619145451402159827366389535402271157808443191771524561122197357078532868682004282493257381024118429953787452919777919280424648169429172990834698656992172760388728069297144484136592557687486597704237607488593394100828830268705009471403435355102499795690231944841272101926319436194934595757068567753965368626120980740723921873959230491804323773266445356090660783849381551602897497716254352800904998106236452487827452250179549495012534584154309957415161463289101461185522803252618132561221489069736271688221912279079159463487075322886398433070469449810657569850099526238558913465555983818752719204485915727663452030688529714124694399094380436061660849781878829050886601637132163638063167276867767719380908988499264140564796475510531889992842889423331682054485257995392672896677875702920248346173288920412740078236250557870412507988480836008061792135972841495422013324824777726444959977893372284888957826195970171792141081670021134684146288347846261490935799679111009132103151350418347099105286279326611844508982814874016741382979091602796287498213333935536045072078956146540152634970533708427935966485704094814237855755696333880953138718387382141103990672070425198522774155285191518964787249253710073691349575022525124002825067489440475012063801832157523784340312255238820570800463364480840813988272238970470944773419537201332393761013865262748151866175887741881946826286319392664234574988198286828294909785319347012995313397696910549411477525999348452880495378234075458359682829124449014540779718682497468865147403274295401131748062867335863638591474077683861885916291005239509955216965267037466187668441780104078190235793568851693371864546891921407728683525457901275570111434347168587275178712615421711022683955959585815760872601931232958321751082705905302128519683571665839109661726769034216076301258332079930024659672970320626383577052255734191722410649962488718489335357849459961354458986342281188626683040646185112004646908215673160411574193422481238147316959478005806936035667782906600755775432300976763957373954289560968396460874348148896900148518125152798490527599100253453254557264158305524001781536965125721594762451418958210006961027122442764484544238637609079355942159028979310140832427532222000965501531367177365368865693764456687854410912013860894850044931119357516321723908399561041481215470175817134176604419661474965283750726577662699914257851063039810358135246623169183304977664331440104006402372590695780694297824527697587626811123272137582499038965197275168689735789214459841650057548231151333902487573209633769925685680545133786855661714189612311198290502992424508571322256171988689154928323050493652750248027090156365029626089293397095218684901263288197306255439624069093537523079954825060368857426335533635285458603591855496762914412926249538920409822043862496199608586336535345492577623315598426103747254264301716676018170884438117857482208677658737369758970729794328673820959778027808014838726774600170226247508927823480178419874149160416968365467697003693308682595241095987603842713837167145385545546003253688558776182745565701150876951855212971483306388289497196112664848621721118716629620982339864649179147955819264392919461887074943552397182369502889683501852545489654910950221425535961936001632421529167787519740382728921425097300136556915185191106244234633195405981306958356646983151152520644554116273612281855870269626047010852615985126688776246577912387481555664006094323927742942318809253965729424033353908951549743583579304359253272621521334440589011646988402094682407651681977112235248266718646359367026795729888566245500362085973531788237705206887237485854694680165774654061262843939501361525460504384778386573907252853745723940810521093838260931119108630728748752773908068754587339078905660265655512466345113349054388791585929303123176808193618814440724014456819449917001753903698429902754493511500188992586506962988715951363383937291074564337269484299642566877919967038311880761861324706411642996537618277047624583562465966644056508455941716875024999740712396133148642544857083267106897785575715154840578772967864544653271092527822402217474168648625416802298848360802408518374268675214990810193906696450284732753819927050239960067704675937626565492789422579328801348088774086325635174807708178940912012836286237094163531914669117883758658317678335149588136415517819237869220237833525039049753665011998204231516009427145519019022287753038722835666262546446475894068039209630252691485653524126016994960934688594344256707382688267852089762524453463278767874913302311274029870946200202343291066533964225420951045385189783016836920683814480796203552966520890701838502185191939598825532076259837017787832573997659310589136763377863545868843396011610937296623497567233913605688699058726953655116530501745369766263810924560333928527724505121003203325487971769337633128904182427484693201655708112724437006670746559878882007720199537881280363651872644211249756157570731702876587750751827277131532922625058443677347536945088722744115283455756205545249162764936158414441821069101528725861952657251681596916873678932147258892796319456515346444511282080743569542018799782682397903589766227500547519431476473126940592822066375820043701546016583193032998086887101332741455738795192447070333859567743045732115618882360985623265154275114325170005486995321015912571089498271843225730013891644164778771130398141596624937369765567548395985081648384104634446420281433427725239853396560658963890983600044969073675067552337953242559170777005236871975332791527014770368117879037121587057419941567581966699138804997769424750056227695185518422813957763823739879040681358653994802617812163989487026974961008316926764992386109941376385305761897772780642604723982740975500575620267315665201007446802324760684024593045720787455621486868042904183275953306594451760864449769342810019655261118805780338201555120431902008423129630098518935828107327238391068256388961537299066006315050801242923040241897409849164323727351906875881871047799466612700855453007760004187094236413760894311777901673646372096869199343190818964252508807713545686361695438197722969262976278563672020386286071811032456908793798434549985500939914227605895255125989402846330508674155538273890939471720474805335032432758420993306867148461747066312206045595029842935922344437202725719382396397098015774238255724389309371230790709650180057865899096546780334024054178373466918400434345247286960808035003114435181532931976777404711847938003531829666708740277638415286494173352352993522792132517430935472843297491314136046835238357572785991695379537465938363914575065568842512556604665194860686057406046103630715820044968561154167319024666158814348661444725836423641226887037006474315561606345362743786327668694661605112439924298804818169364814385285492391383786580026032516373014274527608988645569918373597908358325879871151295806190888999474291859763247221975641528336870991073437538859493353350078624045036936234325944684370719215368281695844772431804437693423030317925443633650893079493799549754298414768293785315707765317871110786167163795269468054747121536565897256595606885811460544007115518143318317295120962518048570677679111700205845193789508742629788545377862972477735083089100659165946231072284781175774044552244814043747916031759264683942094445888011935396777625342321427260376118835652079391811414825795547255762973594553320761579969449208708126791875272467542047509566185196764424029390772212936413555171850428653218423845675590954511663501079002401551995491578857272022663067771661933088699491494801452291727459491053125505531484019939776831496578673198916425581704061410031685887236225166387578571726824903012021224263379386695140480261802661268241084135634124724371495555500275172580415155004036683278599755484704707891802413673269682114332370682319035345882804688718288272875094429219831125032630706189795483487573632072513050860474584517873333081656212974166132142868584458279428315679022379809886293361646294600633846344318771257285721311630624481285438107468035364538632429566127513938035454266412754402418641544139023489078121607027786665219190516017285478259594615411731073809183675169960362733226151506947871495568854128443661572278273495507490805787343034028056963578755687880880782392718763648648432765567540106993990012236027423190700191945031272133713665942631803314558047616607864066077911997908544089486992821091510056276589609601888358364074631575813728094012618483942500427337558428265422683949160718640040258775479566097171593900717951681693142078103480119845879904205800844229033933596014888523170887708338443543706987069047004411768268121178272430003198001292594753604527519004848002340475328274393797295468864796114960714862435959341485396635792028861068613098333657315235179282726396224430020531267812260546427895072388054490148275885193436641322006144084863053319318150443645013489076941565840046193061229365952471775558201531894680883861343571967727006444372252651995963553248129945619826500918392810507987545733108172488863762946570611498936476996669595345990311408365791871669829832014554637326209771989014977412534505561617165305001729938988727559033036026246701830444409217210305701406234558016351759797113881787641544297447498456027848833299548067655607830188320600482807596723259803870114010171819338029301323972567677060963557129262529817150777163203485287336074599265640401523935368962978053202384748587146823604436562044990164277012188186456828659170438590271000363478198166335994157908374345236664020183952562857277193595217665608321542275152084430792100945055820800529392175887341379216821274427810063065876310821456763512695765153119296713416201192909478954897721757138848052342429439557889924968334438185565409889351466548419493976979412485797630934176198234032592433861250789885462528952495064561994103064672668807146499572159486336578743499402788739565001635724518188898120783354030414554720946528046746507312658156085100686028201002847425799204497752748178226916955734704548304857314701142594016047695348829128009024452117677553489485681366673477658077374753492242199545912684749698351426711330983323502100334126144926110688939135228590269375766466691216986467318707416720474013574475570965686816803461753105389181487006496111904118412803162092716370723483850021521207336021871477104805878804146510581825427250727535882513217805431898372519851741900183084462906016196770181682534731372423629434980173114039535798660926369301592616742608496318344143853009889024909195218297927379621948157904233883006328544085962818789505870939386697372082486676007749789577292194142608194742916398152556651349155984577790364124093428723682628060833271186302545427198248138640202542142404643402988191619327134900142576638579374335650671837340884257383849044485801662956996987917897290270647911627452080521441264970478347891135111290960402310316085154724481676555643985213114798429521761138362639705629687571299118497042372082989760779694101683575723395150642331432277925532136053004009923246742097151361233211070128864842044733486207604973378131678801834546933973613125971428810805261951057562011069306686241761023232542652091037420079499647541523611276598518079881997739893022009667880975981682926817217795772486722610001197182183125135506127132559760486568204245585654078633534662224764207121603046817772416142650649736552408158117012736650179644401136784809267007641437974460376146218660867544201859144211541425496847495897149724155327192992770700563688534122668798231285574301030537815846995133907785255882985076038882830505528107902483905160531442906190147252110389747448859495161359625265044944544625769616673906619350982367925892385319951109626954742675168347709525915192807971962752354275474452888292051917126408069280060339525376399208980558177796439976319809669354007835689953080468391444031398800714668184222078180702502781813943560410048820992553710083880450915086443093723058947607384898948730256488503402127424125181580884031211371685149816851724939192226843446849725004647494871336970978482139268310152860422123214228706139625213218243925494879956228407180032024839404315164489292206741022790625994310632756691732846543002962903864063922803451559196445143175338101533991952869566658805880999519307945759774298733385060260726256335141331627559037692720823693987842403047228083237093565586676692539070053282096008503379767365717635108008820439936315386858861441128484672477413368580005627473157984588619067138666822692639652883249620286875069033059668125263638738682623753036659873861949839591816894847289491857336764130787163910469659963021644981625971501304789391818050214139221646085698104636940982386387213945663162062420649060994034805413610985673386385161674146231731826848262073487759648272063018156706308994976707724414919118130411281297917433557410891775567598615762125214088666211709247210303553660482553170602781029416101759834818588091626437412911221513459412596167988827265210649386118607604531722389758265641457485070953618300102593450906296769954175324639903222583843942636707801627308349591735944885006242286099894739320924876412270461513558468755468845291167402383340933607005900406761347146801072974733180514348399684729835586971054058492786121336714397327962306258798444841794487343948644888092332708689173749195383643640784798077146840609044585161171030996224180283298464486130592710884802472237037880388795255233430328044072017964419442182492842564082065606256037198786029601603816725145119252816627626584704421294322770192590627022245455950486507575378626452189545947442807699567630946620209398347828462496458508372766272682699773361403790464433161188856025921771263391405871731764524930409958649278307974050818114541143229555589696695129490348996902585618893224013686445874348290595728413430950414322089844794136017796378028853687224848164558869889202075907428500666624520804094886553274869518987771300750189294452232322560369599649942838319499872479731264764193662667675966282457986317262184537207071199460643383646104955878684898666275352998078858071906021000653187535425376348630627882788097210247742639657982024306659724434101617140021090088509466459967966753959955961508135319505144644396624493188135520246151420812225374129037289609585948040283209966986241896086271645724472482488965441239155081692348915540958605604696901936027623994944435706690684384406360190641999858697438318361446256084778964684356123455188025644216150708847648685776965498595742160690093289896753644708078740978328047686051627485411553222430955168915014392743708462741041380317180569556347692160661653920310817815187765457698467227530482559323868560525706024423851390712305978675008874973449543953595879435257873190280264827984591997577864906929503604436643592179259763676818559734618669903296431042373514246575302753196254222945043253740482209106909016362707139844909198691592916699571271447439351199340074122859834374132267812413896324750717832387564104157345973756189821678305512011899336948072887118806911145805546982783403584339843009000697266561977196908800836438521564553321708540720380241779579597766484409005713443253393018351408085144134834369135355681201940171079380496508867182819737243344513788123893994663254549655806181417775743491385302422171099819853913525699516057684786249631354253734178850034621010215003656349305034812732190289303783668105832724995119766678828666250856879013657280887762797513382780105487016534783422999093627198464956010157881483171605279426678892066605759880404740134964666562865106854804126731123729094369130475417521987261728341358805383463285986009847338913268947687919465623518148671017929181806805492346839962248640230716060382469432555839019324000356472575359123717255971708649716067202843312395881484668202300257605514644549951968318854692172122801719822251963205978724144033045154990481841864587274354547949795869260330415826880811767487882259166657892774217058536139301195755123677925405169193574975579455800343656330072214140072487202049880806862978237708496592647970227619801076910616112014325345039559688118673596866216136398783455673742099543368220205844067559054458987684436343095927105919015874243183620959820844163142566357347913107192610723615660470197922297737487062548858688027593291123417725834757807927890837419880926865309704999914233847251412989341311903811479358047905479947747745234972728462257214346352847639206688731661267530619030691005454634327991908541452416721360560863740875234535451109534083157759320442131267403651784745293514457770341395994492637172288633645916868150457483545408348584098039585159538795719864406060527250422774984939418729538108823544076401875030519009625035979799112026856829203938876975020113187407914056832476955332226755386240810510058963496340526330184644271146271533377361086955327573038919163127205121791537966812930276419300426959541599895005639601181473147173748317964232917263819149671813905826020612115121123994092527907768035196430371352082553950735157920535697020465994346257658688305089160735605321737895706237857721415960309809139245889726000109784769452207931789889854758380414049619351920249070351220657053449956350218316311877973730169316147779134343940266187370476281037070208475841480854655218828606012735164584624066970375052629889781230063461793749422726071118318803613043685896939168347786907070898675597155690168286562163837289578576218256429245068077782701406050454755822634732848510002770524657185628937226818397763719995365640383757423089973590065234856286368829410692782132206425278387191710270152966805347498097488351177641050183289910300439101817713464311050226237316874786868378333656396939604272135467899723472608807961251678896167422781949049646586942615825861363285247515977747287427800063956751148393651282499209050786648631413053892803081302000884638120582208985400484622855997706202189563819633621083658286961600579423741685059074984105033662063949860195148811330679003983986882798993146807030495331628915825098681475853833330819409069059001655239412875665132652893945275293886073294563860146645868377384337974781179873840276138040906247910453938864188199203168805279304317186053732686990339359274047078309777366124025933982323302693576215564554589894537573666828055101133015947287321592580965642384068786653905174994261764802047582311299517667768326566387671684741028465833675013807168499697533744399210212836877234491857744677603044345567882201213759979901688622041399826250854307140741045978413847071752016643857315545227238017868851164859432852901000653958160960018354604739716611187956402637287394603339707995214682853717559353332577849652860430517479998374334701955735473557020408309308989890232574915036901172239635343789130055828234629026953489419926197860363276392248204514979552628871746022036005973307681785763205840549866562888151513213904315508012365728111546755256766312616919296330684971246424572477252186268106093594339755953766161535212257649209864106147102034769188837409525616669687928657435494071618199043882505762076025306381855703097615540203467633155301775726464411835862267980754973255275323419441819095192241635844267633972491277454176343928515290178120661124570520873242502160351890745826706676974549535950624121873317637830229546211845724094525196393561050448852205341501674308559770853617683009368531234732957534219555844764218303136930583510152025002521353169150427779831399627189226713318594616590574380274323894093168527020393651572074890798444465718614501604616561473272325406544975748620793111451397486030692679693412805318735191236547779255775141898217767700103302411849360512149800066539838180504896476689445672537601492453050483334996293629389489998049766567199018750579778597208637041480939805175649928440912651910897260655271398583273484483123097794896292244903591508053001647572649665879170639982879327322656807022519754125848793037942989283415819058677897755910417691149810275843175900059609577111143290527476693227546569559849032883579118705090424580101088325324480808874220375284072922465613002541237253718850394945226660199629505713777894657825026734284525116630469982107823762781694072981325786403850602382533398969633427933838598914458291430836943693783656608282700074534537341550416482039543761532915927292885666726492140274928419414126286001828183505606762958444198945333772018050531235546951538427757539616748300238452848352379796524058767875525149142401149910852867773860093850708143916984702191326589541200532932712416022333042441801238575134445110343855654770073946732632082029626659659820250318144302831176494487643689706915087646300673984729238689622146822487422065496624294174135732382759796163201956215386810507476908511322615553078650303679406859169590282318430023249803333905590481616952003060713885941107093364920663935178265376056928344594285472948460599188883348827133317250313459556748109617848187996714199099216755509787375805878325723823048248449995713782187889401950616184664725987740259721525370715586448308752793287558576364332997897498621412666112435558446589081629199416984227368244186232969771696430169593224045879458430892771330270110039686008669528661379508018544408142949643389895747945940017511141443964923928447812904192491774713644320219739349414831589045957305088362210640706376105394660976806860007176414077127473754652346213036555601749357209662461726114485275549062057490399804713481368681746361348435476304297705993009796421537184684580983561002739853901142221935167001123700353528154442903504063153342171853168440869660787364918820842418571391715991069218188357898512736714367219190587586488306344165371365361062527220121729626810333116108664504119437224838930831171478361151064669787897987067692759907183282236578550269657133303975045124768072121963699320785384787729253122111314917348552220091960085564966123809371089554820277343557748255597680704213685007584488239121405541769683653523380337468716539224852115972683972557035557748674602759379431092608308067448284777942207105979010034677033817729064717489863265867416683715167702936121486028544892937646368698763611633515908287436970246681411705216075522600641449991577348376832579551661414425419634863877536134226281816013791482968188410669756146999943534384983026254739423812356958921272551321384603105939059982137240537844620473329196508850694081269049748443753010799970493826829430977045200193719494758165781641639726655759184163451906375911505791257198101509859095418851425852928380810477964363716592105478738023608232631707489530332529612107576453856598531461196596847156095906328150216476688756692436101262738733232343746284466751412258312252848470584671630278935244710765211776825239855007456248419862223486678269466950289536347355615187343305405291520712657916277820075224053131844889260792092196414347493793272349146862619814049093372731596453985201556713801536395409393540789321971935058256164532966489302136208320758132609378536081149813431909204286723350240666416904642207062369467133589678819350909286616717857964389593562144635188140170197716566179934503084433152294541453285100248545604596006976484610125835008024288744983083946841066425705516299935533805136440897251556614063666063288705581344468775235822700300100224805606181068836525201808952527730862867557350868877687998111559817700886658367705344849332682191650348808233642696583643109320661778001304792433625950466837773517216660841024925544701580701739584942726789377947442599640689753234002015219813392990588450069434709113142824059114914821635523160551007711033120618698926368357531136615049174543578559839052330506320558033118126864166051473141547598076603769109839189110470254895183351024204765374110212382370773626307084800118739143077245134490429073837187834095197722228094462840947407499731959626826297225579458905518652992522530666248922096986229113852556395975515589316449468984134848299642297859987935992770448907893478711821207195020681032534954314763268908525527768655417538738634885585982272206330067701859814021905320955564322061512190907230277579003685135164599699556498464162268552233370336374113266954155183437006780691094807112309170401441628342224795725150697603319920178664826411068984232821203670837144374240523281730022128743060194800071203699169546270271546643298789603334849348283826284189081133008520462192027606434133857272745523470191509565283212142429509045523125213348223697053864902596370931090571725586929316877940653523768339929904087919449311997612774702585988915494644748686750306242386372074845632862086743458057000343978125253464471271599391923126786298667867346612115961360108436086219106558104562984022590381423807811761503652503560582686092142890561240281298159584374720862110659360835222195292395416537325442629534084649743987793578698470455605310327829176510445281358903065202620341622753939883747772419347352939961452593853932362901239839766417602537156315691089687193916867429370080153570754981325255449465403068004953524442010857726920161147315142000163572025684036975242131526506271832690848008236441124906231505342495814573435618446076682576111523552081081181770564417266802247711532191208508956503504342914988498961451333095154350627608126200992023426499143108587478628467745135858598330453979908050350561323005949492429534838126227092623021683867938448924083527821410635574178131988080671636911280051055238082447937190822019528121428793512184577297414668293710167140254255334046556880483524785235021673553436954302416437263092049606177496419548058083814041314575310797164593172991538694955904357692384699151875646710108152076984965717652804340950118007596681984852983480663314289017089512860276812560535455872067333772099499896108409924770456477213755905256672452061919671635542459633835107612948244125697547795098816514502966246691312523666861759305040385162789957138376200386516323721821440544163013785832850218991378118086560030431431703094448529470351020909677275065927841600043879999795086870274803378627243569636444961790719950770017025893775660969021591470173928411767911299883916261114201776699295360055683461025797822340626321613077304523141990780166267848498857177617940277417835254086851183295068050162216258879115061218696522389124147757502352685674159363483248239111341589940946447568058862850678414067032352133956234913285710537205209726307719760382610154442997728356810326140014888619549889989918246246712482484429574430448965463516229981360545337992840814754285121090326702149233542077418218944919542719892842306407493467425251011425392862013094639710617972344106109587550722311444047762181781458144785932889292480220900276777783358152032361795055921363218879082561126386577544600858388151292485257505889109083258912315735114488663410516868148357399363022494805041550588097503912117803663528671687683532883680292060252033148687448835227693762413591708877762482344268725549858420858199693728087561981128711942304709807040559825060810178253970940402321443368985693054602543720590135840699588851172984948739313415820599007253081430944351125088790564577823237184893807673173672259451423772319468980216669253906490668363176799813532692280160597414144709583665961976887507375980253986687042702560800009760340488717114264883272242447672530739274612906930469202253009482222652733290842683283022241842941479526855367496830014916773585266405684239464938961375256366781204627141403681062898582454046237358408761063259969407686755231948820179483196585094117577192584731730256628719670727012997634125235022588621557115509606197944606205684428364291654437028204536010611223441148078609318233044914760254133479948166114759575306580374360039503465237089444457418004378265359092213726980346177879691730167939019043601956101008677746250785664585910143903213126549393590420150772411552877364787781570666473083085261912239100622266602011799058553810512018092506565942186629883435952172946010141848251863191238039872312123169253743637051257972153967172434548882794526617085586193620578002786156791956150007907414388312272517003661514263046038531440247126197419550389349843753568205298999974409564639417891774686679153594989073307721414989695959554704406691673854589150303789292341760626787692364272271733475697440474627626114625757907697672426497797286473479069144403267322284491537070999507587398107982556562586212182128165984190136091150379526506649017032135752657247858397017279315107845258459629225029430705530217567324371984453501917196695178854431646618424443078634269839191001000292863521824084274440393419127748881093295859305164736474176087283140131239474071096874733406378016963609126252176653905861482047773281666559847719375049699426699800285483875157775898214621133993572975714979678229684869864283168260710049815905115924393717780359166960544276542579268000692994751738481786147493717583496941418362679948427743323654944604311621965757921796397554446150915139669302229683763839745100947758213416988320393599215801086487585186231514254038762312310340870055384678267748208399218943823720097048480699821253995800982005084860554425415258529429236465458648094211670621874542558736324295092072828266314996906558994619222531786901040241313127137976486723288729000646797724866119755832737559021840234690993806889187599386852892070987608045768833175544211548722141503888620595457260562463922511888186988597471034178379969335859347376068727195731878329377034427876894260854302571516591062945927499273074132248898101708855466192760761109294617962598969055485206106228288340941031145254398373778476550776410671535931771523456171270700186581016190041881953269669245770716932715068943993696277981600939391064551568152431834138835481689019339667608675360206148356598751711701648745686710748973380998020087592064269513404273896577409823042885010044582332989508976416254373135620166658519698403717381988079968163074560844961581476102751427594420209583657103273105458955665980104355249846490434873328113637744478995964941026474382651246187109852930851583884163696720631798499062710626512582801045673819048871331452340656103703011696355340691727472669716370158252835581219713949793916888557134828980528476899928125843971646837258884106580222279288531950670839320365490139633813823347861169166068206289491184069285332425560454144450489198987543590742259330174350385999228278177580399292650055213219311109451813599171687231756989273193084696197458915249667788929493548201599614826017220057563388405323426191767303326548575631479378809808160602098044551553468283724077655929264303559926966563509532077926753624670788420693182685505789125034167815887332170130030090683409646203841345108351870652247129129460458560410729842343387323546094116083538681826287192173394992884319919429134898633977583592170749246484255040785745409964756750648011533690225104298091417507200287175353641255078320133805595783282237347782910601730414122576395520628323943068009024783280855972994720655706973421275139729614893113252137498978263541526665147394308827592816814267575722525487764439018481159541239067245118907860629289409094577338391265412753740810852848842111210926301528668801186584516399352522107898329269224272364223520243677856823417341333259896171729467938043021001744870740408505953151497824922360019892877053113740742189137596309934797385542103489963230926686305243291953116807640965782428979486223510180855661089862882258441010381471939532674505429444567195772975062889920054247160600033818796707240270456402830411126127376045488952158593690319128971585720323726255672571815769994957775695008104991928840627469201484702326562898897162600444377711385770063611564269395188098359997233217087673062128317492868958860757925574548313308845017468000146073542666033940363808472586225559071345237060346142625067871480759854481221486095977383827995166520584078958086220045332721009955330957760001441542472558941708736962860477925361805424411154704792058610509423499191219832015338622486826559189923256237842861336602004238815230329016942861944416592863912449358897191803359955914833127060294257735256637243948441771779910744327044329236902037203430656751562181174011105567468884806350143795653738860038687140344701867223074012243881748957672129025312526552576011528111826905635794749947402019673858423102209014093613952929064850099858819748242523652608507546365921359732474814794924059294309431360019172930494444500644177858311384613867183695202231410911148554696395008231180685245464342135515510767770726856060441339278443903399648632132908160226545299731455490023793932704473349338129373698937758047473417275142409938491348869622085941069825569384200995162878141440520831539513978719610564513036854867691930209711578684081529601848684550969122954324528086043134149408618083923800113551207610985790295432020752289431595392530845958228363003401451731649370861744335649242560498573851000710709531410363677577901516174126392857347722857324790363889392588443552927812919623098800601385844864818615889910559240228621800984071744623429858068411122066359537792859128141916326010177406490065302907054350300357947862796348832332520887112585006335661694223507838966086433080279927227665185648873253503219874236488611518416815333806074721314018646557933310427569403295305603584427364218924528215494200446270626697874481199583239091235283039286660457435679211584115936438792309141896808391327070487621981366133027964439009560604885937738965602486973085586131709264308133339049086134211664412430401258951556596445942655930869807456606521872404362964799426616783230496879099617273758263177734940284925851184252879651675362365813375721408406793934225074544319199551780266115767585914315016232990266917309760934235334714317585634256407907153101281253874641308027434083912901859497361976831930247909505015120958361519368829389140309459193342329133402853974289821951433245713994730135738393040897827652177459249257724583924076941631280095204424359603799835450178614084643586202710061797426311071090355210468098783451971693027978603352473225680041566038603251602872672605012295684565311919916744758393002744275366045490784787339877280851047379867955624400292259103380936728249978884730479348394667015054436275389672545700421261148970085865880350847886918202470856225812241442659146607007480490011254242342736583049206351984646455711883849482042714483901348103873129836216644407115686350636402048951291511826406474156292690210059563834827289792517793619004579469937578192999122762216264059219801037884945572716800722372178213851083672813178814309807042690722152298091870958486524530622836980980721886330435328464841070715966154872084898890482215251214805418060127652084357566054687474935227502470102526972408344821392872818707419611646046383098829254943451128804447843500117037654031098239554244154262148124337764405482086719726811977663492626808869618568368464715920219701118609116582270569467063352182628394677626783970735929797385369711516403987258703326725247102453460866150465783031389848432751143936267151936120301000321820687704635243557230108126304985311197353361951547587574955650795541169197047131488253729081698579579672324237761209972047023006713458992204591154054029191210339021753684864335706560983539961608777848634253655418194299552148927007017116682467594082599630702959655116620616739832087242817284125370601251955366262793617548500118406235384473719080754164904141572004346006930625843777065685048670841101744261753412449798268870848199404896333661504703469299507048548428047566886030910394723827617036832065702565402067005528787660135538882601578031827638932159858802594483202772574139376771990394812320983048162595695706775391732152239433034126530652424723751783370741831173190765334568839437964984447961363002910088013442724942753486543227445057489912587875950963003886060203774624578848908910230232534023812553376801483187605286124029034743099908512050110585552636125959230868212648220961036289405167610902239712286734880970291249666025740586670101476222757782459895094827988954993704109871390123690206199608106550868338960803760944676706255398981412320289264185440356617199489416291365628546665995098107661800341700107316274813291360123638151748030989989319680505140643014994038512789301538912847122610142811482336318246704117984283040452037587986596191006848212182551306865220609415849187581579023735213021555461709378949016878801914267393157818809037112707832725909189149311072728284552887170609022173115222735077625546091436455288203787519276279328938938003393450263424777763940814282143148674924735841724267754159047046172373428635252439541368896709064864252808682581527508226603236635325889316844711391474822740943043647893091390811694491976685058562479327726723533468692657277992534404009698791529511116563695564067367169442578508010010549683481088537382185795708586100033227335248017894787009834929690569078806744854498916400395845683600921723662019598085475560003539303853351212661412219584090122826935940417378148352154725985849304253139891130425589674800347493792302988115710017377046897324533527906717961612884082251002753787727865094743228465451917991529584048164219390767771530229207867249700760439970696884543116990283589722347081602451796087751637865488446171688499343699587286505048200571167996848607698272865271588469093411775199717412841383516902268773409674947665575187375316602717373942004577604827084104338715550791257985979734954015461212768581781580022119716341471709735898853240328727315511519312075750712455487243354072545765229823283064990311469798233185521810261552234654163375479678700649290330100782595825365881047897935651276429694915707317154990272965891078374513419976721201298866977390777210737775507057560989972169778179663035826078043180866077433934800689546555048349712129716467831154145539796556014537828549551147000655047023255433028019523815740878339755707249723896078576603805363871598834926990187945654230844509242214242445788837638928392057774812126919768059570924356480539734342675162681958283560236324049349998274262032776035534741553107046251250474716821152963051803490115013336786154857553004443737234979119499108043346743682449553350719893519313013708569990174043589834642493825670260082162818793330898925423689045058181037819188134048754142496558064100394134738599203715666607987723118860748612670195394390419744149361174323573902407278883612501379747665431992766698787389528179924948427253869232308000567211762139581503882262193962510927096541589101908430260821856742487398837162726952830962992221226754850750825892628888331038803615674486806080651898934716579805262705104867920652280210319795060681699063667140638660479769294398323388616756426123904425400740728384196273001746688840761270439068104391775175300607891134983194709428779756617773743762988342366177163748297539938043061753284401684092260258487450651739090279220052919546971044601061798769610274535093958342349686739471668039782871073590729636096340339984703956359196770511432066522589874517221632382107143728405109309175273813565276786921967783748644962478957681375823787268765515213375718701602953539933165559723782169246024439482771153772185123308874088353748308498737339911266700493203826362642261857039787564930117049330007643859155688085904207608796196665339202343404618045210443372706662035631405854658901479372205566042079331656114685599437052404877316840692294866910698353177800368697184341533055487682580288005425252335844110890158153110670921949874876313067432609479668029092425295039908855796060366839294754402806923803188273342237971365795192957114673065469503329212033389633520641506914280142188333750136655058842492886055830929304490894653548358910208076144389316604118267264993071590652352204773225865167037540944839757673761250408038297817505134980263822763141680469761691725543982609613675470125161826460323012079674935825042659286696082313665927728900746754407882064874735538453543117457395369872285495631610361023938300741438507084729667405971158648888626721556968039894361291263077244504887461762287345470324180662460832434878975090467082373216983706654912052936092193439005065158683772705930836384855970942693943372430391504127201150840566625130040553624701179530195428315357481714519987259438742647054989630277336770563639661893966014538062822486334595531114769815111108691303838722660996776003464659320678316220088730043926182379949989085437275658640780207720508238534444054669801432885343415669858063550851229567026868737946997857471307163380976131962579478721551549231462095056257078337803146816313711643213050191459512820198604952077647120088610820901802716777564717643948751836002903709167852790087392698434125641842283345518437694455652378675088439391721034442236378882466692032073806629203942118692068683764993529685173983504509151279708482917462984085872031668534645583069324868357960633917707983063280037939947528418404708756628170481593143724099111005348249344984559421289513062591761786226950620699737601126582834628035311320939191360814119895758267260497073414913880408970078878598311305822878882946838233626936710086483095993029939494039753306153881276755360293859028882792054578294411643823868159021085079717452953117180944786876592938214365600073742872614393754795200165766649452278825627540599229781265930042756329989459847883659163572296197756248758534067827126768294549783562607700900837206643761212063013113239202076074872859830949041730736987099487917901439086431014336667711102171588343701968708077158902042969821082420549058815664985283667333657028777626393806650417336981831993653772589855505428326749779253811284124010929918774340442636738224934960580785961574951546340625404932292234937889915201253842906706214435150327427983894315615988959584439313306664077276290285504964409126170316764241850622359025034301881293517103632378941619106729574077130157702875687970611149988932640101093214501627160945412996483832390620823889016842774518609597438351596920192578494313862563773271504639899876160019746186076252174845830212831069247958564931413552758631289823493773305324961114846899516222948764918241943602396269665547937323602035977711991977803421150433130051898791969979613689421005663272724608124940383993416380600887700885668170942093716191127757235358114021197050947215556044114147171917295198844753859688236921325951471789582359926663578290282107900747391200275855734740626694380546739026077578513970725991857340307915889471786641576055730827480604714479190082134815459716685741245708052972431274815630238047781191816250746808526803217337332476644808108564620299629643640922509593732698941713836718064024384388108280586053758648514583088448093418664608782759685361619464322132993699789095116080621777669678540072834846705448895101661087076296065864723354947776374570771105741755198261379853449068605252677226223982857577128309791206610682089336864275215260026986267976678239625830009561087931699057241554775585694028896136327135829654928355881721712177558296160295910102462009703839627550695979299498429577388200163476525052149186523874232596801071971072632494806711632040025813623213941694819160307758572563646561877756526745750527416204949097357505084742328874383597454418939895146770183658253225976035814596290665920609711746783908472040031006653815801543363163190515314215592591489378270571303858058999992164284986927912157668951875850229084983891996091095229894462006489254271844472332996552466961811653193133082136078159753309850806086417355156018269729104274642591504571456126941195481828353073115357456000419062614908418013334986999196249853261156496548048248764938183389279539591427393097659258800649424642862611646844589844566014094871714642618587942867863853415418133436869611506469636755957638272343881526950843272200311135304605105420750618518414501149600933757617766480810169892777873608124147518841057845341865615679368010452950383599790381848623693774246584621050729822189162016408266783777498616103868406125573426120694688876549572552928705687366699337525438575924756875005410975181413836143322778205637484700208974822087510143578211308150358801553154263723408347992659251648853915427939715192050911302724645809267570529656469204886679295997363115847122150633742426379280825041547508709896982858086555377748620313910705290163718742441213037751020927343825552465491557011799610294673739459786220289275542417356793039976080633923914209287953185358971393630044533190257252317112449541218267703791955765053258972246140231038522006219438529292017073054688930490573117018013615944382055985139818344728427527000477680664905338055626012833098487053157125057066890502232598668836186824832134320118107226273724138381245155676877618141277387296385421518911586895464425595504114186941546707297769369631258807678228434418732756752309000519892286997385721710397695459722208751872764199994482342826644914873781672396474311455763560499927729493385969038958513908174424142127589509527574629379738653240730622340341064388711725770137362344894489116249521033950853862312205070138948118271780991395677126134823772973756063620449921986359393430104956377716654813595712354105656207060675333800339873694086600435383836060186167735574480149383333430894658667376471072191788476630489598153730727687377486119484818930046547433903299430006330780112742817052351729135664723838502503803609532750698059237035074465128701495088262671638296090354012795028059434149910585293839177982317996617092083370842701414237556393830498511082161951376588326074537810258437559778985783562946050878938706628541151059883106136366635998848154136308690826349372592929196884686016421467841130357124269484453593068610161137565179063217113295515373732145791179830741319438354884860606052740942896124720573184163031642369965875918336960634506388019631091663974211297042795333066095620263644908364838394065504639411446038572786297532849318739071181766230523903442142549580183558406240369717496104154577565081744157536679473149222798268496394145520786146126325125970317366044412425810770309078326665003562952297698626130442905682699346366951061311512893009455082300418762913966361878474727096726108723358037223438514682239538594729894216208071806520361268491339602265835990030797338819479547733041134107350650969138756463767700817681112464861468330871961281461191905948587276662934265947753206030299929597503319032428695313071483904994723729308885915011385452603641298247209140686155218591696556026927569593129237411005699708388798667280858763392041767564213028015810074425558966613835500653820638823504722791667089084199398677466028631957787810147731278370862639854558776307108872595509099829597935167394339586114389801720867309914079945837319875085075059749278133481794434842878214649983760336295070304810276462125854366226912183000569199293288319026194645962950058065339169446064802451819111574044679277970330625569625917022945865123365432799710469267615406643011398557327797955704808976520465291160001130356793884948272280839213180467182490855192176764701012789169765460392479945888964613952951060534632470706313187430932928113294022650977314773076661071741426782369819039002617858476213950543992380471830512179908518869838497386566763293739715984695886390331658847432695918388368214679528498253965780445924831795704038004474856436379909442086487974739528486374517114716607655834788418986810380062274241482311561324927671771630780843811502940413113279472329979680739650335765541098068033598767062730303250583282187945235642063043384314673816894598224332455483511688822690967576037409890869214266285208310191626408392374803057454234143682766857884489093088995398529397243652538335243060923115202981357015249161625759289152096903718820034428695936664645127241399848706322347395452710902365997571739103749438601443532703158624985246612090315127834961653946683315763094063848073242455635601139083596062444051597923643498456544375447519115097818497573557391675638266403094321227113977275602884034221540523599085437695782719370143151654126270517979234505679952214039739731959702314483435140671506941669802362328969796553838969401165556914539844210013764626134465111053422529279426333182473593828206276452404739761100443621405817101888816744353279523935738764486463822356792359282348335089428822812234948502730930540506025838241166687038810057603117035717955531536579332568537008468689234772273687309031460110490429734623650143192950635418321481826523571796448482451972640873007000997600977274954600990668299280304450682277917366799205936513048579286516258485270758764463118840727090826135142218173740373507798940314849403757817001193088953703968335028341766829092849597277448681762710901079898322951274869199798551296268050405550290330383416965211578559187336798653491269135950809780125718465515036127537545433370299235686459885521314949987350771678542907214785456957252412318353596068208095756067102959758634594089351407869972083246292243231822732490720060728567024901808584728721362736204361702841277226181277078849189176745791307452986552779871630374978415712187868441359456185267459817871027446503729807528056245878358631999368877462830534217405936820514142055677404114025336320549556981066510814338982034253703936444933477182534702488142015474112954925933662908054266241309964550215064900633498532287789448530921376433591043896502802288607741996959609217472762324212910055153948463911109901786340325467576991454193757538995827238519208637473800480648733850468595682498490797210570550888394760979226728388459285904497638936801430066349467797989871159943677829307632916555314773755323511771254664804016542875575707524452625124266794493225933356091266146042942549892565676041713739229924335817740094354298680721300789135306786248566936293751485507049796216893261888283723409027119198831769444521581190091981736695238438791878245015765545752827265259810004892344623749415308956782406219587136939664740637349485514600337046630762790091670232267479297307117022298880898774404240909634291496998021922326604511674782273839364945050144138552658143197146918974879132050691345781322438916813819148502701421298988077141773501449169413342040471243222427110566606080993849923952446192394169281469523489975365690847621185836013463792483072861905973679137032740579327017050895697704048110165759868742880784271816684014099280703873192159582715264757359076189973581992947793050202589944027336633803419576765201322464656928035167041432677214354625947213890953642884898896795217870110881023031624624855160285794093767080636182413343721385991755736423730815548279150473033615066595865193386810056487855873045626912176562397802660439352014870216546363327515761800339392239169018381099604110441250340424906808330798823510236123216933438151951807822944244345247314976656078193641322281977869431530302942335719994691521843540940513271950367267187538093415794309533216667331683779726756650074587879901636026103671613274744341257069125179569117545453441542067847933591346905786448141817713415333145746446555699749646609595959026423339085957297783640322285427210549760026753796320894008797639200941349295167781360317824936893746957669008910719029384509733262744845623919822738230550000615937165091008200726191855523500970341175263195602902310927366450922513211684139975673991785189273448050438182710730569920742521725618013451364519547249687577887115541353218539996300465214252626987138010624077568456301644658601767613742922544865762327936697745788390669074675630346120564526752772270256490814340069393162294961855002162383512650125362671506824836591799247260298500310592947360167554181999901772004080667355917558735306200653226033417609214187505672146233623343546952578406836313627774806094084319653241874991306200417157363506766716709196571195460600653722211633593903744086233870318303486987015874950348495553255865411478421982816534252406777611192877190408951710085955168250583009082742227273105320210065181676697327715821424680456378667417066484318123280554072870425953965093988558978993960282515366104069809210027327098296862090135559599699021827017408905511259930811833928288922678645169634748856917210091746662392222489703346144857172790516764372384953682843529770017299507901633954299207270430831736617333221784543461787240013311502331313083403965124848852963636196117269562295346426452112440480793249156721604599902649372818004417418823192288091773754778700506890017463569281924797596987114285946900334490502781734903071044533573505686826022170837231659302369235484674102310922587069375008376822200160976778423510076475403282785490906602229033796365225345516862305975674655651765457251109007553137145433417482562500842600694239737889046817021607158755659844523407599123040399396458835703653907460854490652145657190503649964049814285167948790043190945967034554187936618259968289478946041183370012332512811255402821743976982715760083546318910257412546582499822305854628326532752062164932179480487321972161701486222285468101816984457947261020171196343987635346939215422067218995225841384957956032072249424396910535874971732604039531178395576891890960594862973473675631362874496114605119734366555313762561112754556787238555508048147309709959597016849021478262580244226578625294557133424412565136676152934547836947532435920319105252991873187359547768850334508396341764009620416709319313841674800763718036934123131692001771161811091715361066806532661723976905966268887508479598801985587263146576747050314598186512940700100797522730001196388281289432149539828971018794541035467796826509000147068082535818370143859423575165766362285965894411606907758257170478898942146708458990366849190562019306206790647731049521188990426346437406660925969324119296605906061042322124118723311257364588723735575685860914997260455561241960135207133847828586191191159062592089079520685900120524916877680331074382360562337169498130515082077321619241059153470325016199588181319310571985880650881686011759308009918806247613581131870981569643354209732349468220959955849095528159242785294098391893169047743277330067743817985994064804588064974029176157889339975297144954868207304706810053049130175670644710577897840387446326691839230101188650866457552989510464644178827849338549865844983246690008354435234971999761337704193922014130338041350279515478807144119911677949302828501174763606143801817277820377377074083564544081019033385826393644903519499677132455093033675913744591912544062067133656067060531396061777662782020983792413442985949027782469862487681299315649815828776427109164727254723237672205306731421635594810022061577713439838551039263239117491669893054462264778352684341470464373907838602028605407304901055393933064534872865136900738248259047187187369128710397745092625969708935596065151299817754259414774824037799561779377922965813361721463001594248493843483067086698897416541104604522315825354802175788840986627864505520616553692290556636919348895440872284049593214595965444607429474383114642430972848492192302156712161558143832491479508452006655730018820460007087916461290734697633676430934971572940793555984898910717889782122421774257752306510637535361199049653074410846594219410050462542309145359323461477812209807187950126534739020449008385392427482260043985041969818795998485193947610797447569832018481952657548322397339759528512936569200305139555379191941530087498382845716656670280673763603066245589800212698108669475320306444928881182272271619486739618159879966267001477976549039368515420884712721026455200194218608439916290784980487535634884508045889617579320950250426666037055455910952769491491636762508114954741182812359425762670705976415448605431038703313522204830153123376463051714248772487340419307296894683225278261725642299960970035767571363866193534463277042629527888383489017745152721255972631623808933585899576525998943696841391337175871450753630647140579404279266575784174282245482882323664204176269916558580302721848442251099958601150266303439763101000721789580289514689047926957931330038710714549963263785370375583781997927976321677332968801685841450913387785404454167465413030761764408667047160669117429257323258817102385184573534791772420888059356046172441911336364822675758841677032481290609382997588653381016660519973989569788722165915857372184267064382350229757801524614383469245424787074845512780532512899646387283201153649635518227939896567162715232126818941375764686148042162129999253207955310882978293573076243703586563013595312528155019697230244525733676395015006483739248671334782600583258714214212379662322531283066754070501845526244465719192996113441272294908990122700999520746321121560465340502297587059468479320095121844737824466736747457158476490037693542274192317556313267132345463053672503936839960342876320058017352456165188289449062953224853248909599446772824767623408523349907093086400708070299006042790673979224794685449445007371442270653509205232314694496240923524399261715149092472723153720507074873563951512280445017734460366173656897430742448934488459836713237817404648456782489015655309981169783472064023645586627984088822221248580056107817232898467370975264474100821397277183073946675086800938392454391021585777277153583335629816101227730580747859364596433742078994465585790755826081091777288194504147216066048151326827580361127569163018951724820274202896526833412722783657263540650135297555636904999778331805411118999367944686327160252943357244127029779905855515570270682614929765519370845296393189444200889030456737427482265043535694809366623261323226967376327199565887591355836360065392933494318323771049321472776997938730288781577366027152316343386247052306881837723912282565025038922818243043252887395061477148499907745223412037574803028814917681938900351316103570545311847790820220392955732899713337815468409332277894515600363393081731849262192960341369918467484924318492155851145791830888291344077174882455023553250024346016558393198341667052008575708721511459185333213602687290917314151297782019846684274555956457350083132700282651722070741596353467960165119731144193393574300917331056982097323526860259360673753934024745031246663934110403296924360270092569677372598310315303498126675266253149557200749643854733809463021854372219634570324172260669306743640923773386688236199363344217504674126684267149880306977303480791520381714881688616912578247676512218981599751831611746621643580738859687004637692096269425505407425733609120218142355553830431706151693915905944998921639659330788639531621837054512465122064539135627679978120123562076054213953745572112702643597131800786279940595648405879827329075383562910767561102827600736375301188682722343599772230210289643294238739379434430219929268733696813431387677325982856242575686115201484375784910661957946816239066443748946914067987980478899151126545299642322702686440194940031790711280766131454008624133055070515577192884408164072246538405636824050476621395585703283476391164004002256437316703475057655429508304548997893290790420727651870393818265068543706438688583185829576501326779304949697313467144762248698060667716206550701828700767359698826814908967604508091457356438627990947137647649906834785482356339515748037291301212565904995484013329872680764543195998115092041286214529980734904067744947125655271251587285871217920674970994450358782577653422284059879659284178035630803390812298360806840859206371466494263557519791520464351094615558768493324863669307335870079621302024929106827794020993669067930094029524914168272613241405093422056545357132927838793940895035030840048167970889658860689122268774741278592735466605899225949165006434074670300531918640975033874824477645321871498381916905933541758028229855216714455298169937315820302478997963767122737460125153519747757303043132387689247961556299263123744222683573471254316297785964486640773215525629564681357117665094804058968216158205193571778235379649896385908644283657987561215464832256406339448347537061008282193323849734802276075055544555057906532704446125830634896257933621795080736165553450385187280535368007742766232254379570992550479633995412146482721632692446401078235232190478199143670462669921386903530757585021412176064434591039081575539325340459429008502720036907795846371556890212572899238956546954205408167511974939256882369487639752084193057772942845579057034742853973429968028996657513036012694265092429169703879744221252477334717508708681399838006332313826982588092060782597551742884559258699200161180148655769797131009912348494175506354984345897533636443760005098822702896890844700255557636742962713983125176470760151795863290551976948413775955546908537971356758946001757477389076754615705143182612055858293019600572779027635261075636943685964150224059467693441039102416879614685623556684249211914024043670158555789700315566838080225459702408397446301511078735359673619917933766773605507366401307419905549376071421625995835924669018098180286658543118118263185194207451493750501768838309301427239743306046583763102901203661187959170228803909186403311618001566214379353076562875688592513270764450280662652916966098034314543961553885028316971020684807558484971886446411474706419275104672410217506992976569306206919322661299044813475437601446518562103020464691005678467494463878388755143772749575025483706076205465609240523438168658426020722645229907399324532010840122148006471216734280486193364769608822624795031129034205187521371123125318577690097225445225769268288075701371397080897332646396248911976013997863335419166487964810941948108936387368920369333111976783151910413026243484170150163616182141398344363663497838528764385536201318047246174519827390719850071974773165439482471206228247978466933706198524320693437082203423239787367308118743812431242549543852820574802122092423970592945326933303860782774764383266782625074500815875461832862677115143694857794979635631575132217658298079488886648186587850764933860276979111958080886809006441069712927222417202270691772466658271832026679495907528060529062898237133967467565599416601460149128791948591901818890762382260238904557891885751996509643520751298443729706522910536617057317247298953540555120552427608201401832908729291180699572367771569416759658575036718481943791482213377467513999129776303429806208079341471457152171101588574272753030490476020049859036679175988280562287614323714523721471674584298555723208492025140169527896945389918139954582181736141981399819797469716087515014382906429931349944577588247310032610671241115970848874510393217053324381925835300770584796837418477055904507648627756218470598879178967141678388239973048643603284471178562972227028696727618210166078260931119574675745169083685452750656751897683639563929573811900815409200591251502526872349510757597808054932860457035854627038024001647643775399518696657844499489553849978727008026478773332043730955700514795329846131266605850736103820984202143993569899580776442930997783235117656984613770204680921626997464614710418062478351423306436170240670827425808072382612236830311992335232161723754994094476017358954783834855798755275416413458531806400870008675861122840266464332147017238713766025823995459280628118118446943137907742533048470936487761167506689475159322469120229746950230425217404204466891808066903598987638348209261113653490638050751750664830647393478499133044681086801492077203976941870336855417859813659381412982369827403200234407674845614116872811621983868679061748274083798417405004693899721668165173680579173116859658834445056329887701838314855867909635018102446916178034349317252329234102604664483933410412584212635805945227425077461861717339261204382769428720434099682569175057209516865593859705239425455925010903245094672469960954789958840554763416824583746061862689701360088728213817105979640536281177849783954073173849937568848434766981727644651600125222524298151611146322309426671292673760046747941970086867665374721656482485647866548496066541821884666428401859327508757707154863643896889385426338208994717528823509759637730314619056917237696837266576838496993569986059050669620358503648875264371584956572604176527117123983640413753928487456452807679900208705859852788919514829953290651237622727916059414914973674197139034083114026222667123883669747451371150932052986975355032832992735812250027837517961370582665962544723724263134528123586572169312308388358765551552165442680128421915509252850008580224021880043156033303563518809423544126597644019114413903911695730428280595915319673215186197708321188243891573657023072796428284203800376212191778153783771598347728838024113269051340801130478616571946737356614842257430098049098749803036379397033588789163861929340690741437752711762154525556527830800357177267701552610923365538914645118099454726956903780378957170706853723379875494905276227044328492630434230818598427267714270677573431058390437000865589149532594102294507596020863655806424031015066862626780388479543284788980902295835009221998039822413104683198882024785494256316223476434382302808456407163700903224662341222535016063477661169970620259543215002680530473552586303115449222605741822626929543030514822531572817328939783372396144875168769046501666875517764503177022502947589444393544132431732284050351657928611194604132570608901279888693339407239531509590898298683809730385903364480632912516564754668122748153965368863891961756700756227863369952381265912983559957275929139721326540506739015099441688769176232423823717727950729671177857603007718495119892574616857711672172186493027800199193692717558040491119195697655915638472423646973376535332301057610954107154858867746746573357152114342234843974210700448347552132686510739708236184075394099652583207069014150982981968830980454069873149926377105416474746626278970127029397765058249825751857855739069991311974978180811326231762858542432450436751142758634788555981344305871052111695565486206607694420578813870885942715825473591516283707832967943627610261895179842013264961259827933663104814779194066112623020238325487685554187313696393128066652938269762015356801208061771331519571651545852517405307910172260447965953323704156849655926030989854905129576949172469208846939591963890366399166856528941308599419539088422053049574461940258702654213922763095798527992716367773907351864640004302284309261318322919121283201370408717697668742907465251000300869919893772750610871555194851500935632331542505819792619542071577241890476620191337181691208872367144148763455400510414038536476568097260979101240687087568568262369070142711966687115581435316972854129391107239560047877319194177159217628422090524764709647438980060494718182643446167887181091314434148612494068408193332607526224863667793867624936104019296659739891179380040861087139548941921048044314187743489589752581244313549678606542732141596599727161320211482723196739677153540260077548045009283158026234081440122150869863476037866738563236867692797657873853325401094383580768464994149361306465229193061783157258790167629998701428959251612198077945287532517980847811978348129827549828500986776442739925785209704358302088488018377671125703355508534056910586848613178465753235889418842117087030723919655781356458668510648694545554363371570073801014186648678364945674613652185297926131338687579979275021473045057966296089281378532169139993673486695563562356667629680841826985172764219130122490076973256859735441573739345790955335853323922454329340404863503242931848793577888536375944225714268596603727245953992826236928781419012804083763126456822149303561002700853613795527429179435803004595078026293153484864600826297602081697577405406708146017073689413485819349224080955352684439682520818121202539052300163222198396289649776102722778293623193408255417145349278900050312360920905675930574111349731740275257570402440435840257695200790565299446852820137951135546925463374646531037106590136257421395405510828519742087000261126505789599730930689798967846055900249896404022061926441948982972085250483118784261660156211926198858547503187320640406304777366816349509159247152360654486901049589344938549118734658906498142084695147957316653496743761029916101032597136680114593256486951113458279151776575296317208817758716019014512140615426059232298964661465789418989412799892922750137078959906488431564551345165947660904205829552804645892795113866566332431273011819440872608135022972404866468389464272189129552025371796128702976776024295401607454569074650614161957995012715062689221442433116400706580700857790339275454247767472632882401639274876846440444168648168644329369934847535740238933172761780649786519690271278281763949122583154723386307280721376212934881516429343295400658048763344353239674486105380539921341501884192511221089122340712493366857587270780114481585521099669046271815075604184215148641515625693769976383902189920777707696713497897476441220906134786554993862026609924159425267776688808426195492032172455464872271285923170226618817542055386394402697294544362340832025443031556509160131549515647498520022799443413534003830542623037133017309535041904339847666671306422285022368755258866772791970103821026998447038267308943451512444775276821250911800075426951694160274134296311266155406619999691411665597922754307100166499904370597318397427314355580545536399923828195555573856300979222347927989084058799211696825642794194247851752958035005924343277635654968931427464472090686283752609659891315944864372188619862933494318632684831578446344059217946711183246327424055052821283495124295981364224345466334102452371167801505250353712318961928530859456416264029443996421865133798367350269280525008304698912894686038989281737218638765669351271567639058420719477003517581815028343677630021853389226792556307383320833201471395580456191407160422957326242137795669653412680020569828914037727357362574325826676439044103399168528956342919770982029427593641445069992684002514850169812230832076004222706844927456331782597773273215731727013152229583338559300488227698975923446181469182685032555341945414713154263134007801551479638341555012529472628451875627142827422074283106944245774549352165904816225845427312164434784879527745278858663110971723515292001689865609105198155283066298385146964182962780129636370047720129372825084365506619003556335893698673682273240308351696978601817544903750852913462617064171584795793625868468808426443253717852116446672194116322882085482271940098270728598669536867236940221652413366442601267655984563376375859708293043907534830774043072567015821863593304621366719076870891098552617809014172159321380357939069405659471056408324627944087637317170274004222653360085991362898960077076214209994035755874522080402285766837208216474099372114540270268954633156992373267612764064885819659137630684940248042009453615779599586021110435323288067709660217441000631856280692645385007857061056569576045086665933076939874555611381768132213577564134965030636817074703511846314655311316646772292499259064104226499379596864428331850754157188960378097840836775760826542334839638303483391851162388181795338362910075055224574304882208463604614249922926672335074906185901486084834447123960409567105907591468620350007453633661438278135531254148510440630847588115520730128142388430735793913991595477491910894074566321493886148623079233513244288522783369322186988301970249228682553890845150216115054433709734841017851176884264307305768522546234067161926792485153795426502563215974291309938121521023618117255933718003778896590796625930006505792005644895536491185599380067727363090998002298843631339446574004004958594251303679697030928651545842841075208517651573204211769452720494726736893628259556365462324706561294317486064744425191753028771576384552325373733950911429716831569945377658519690159948106160122204144673729900668506167578710186905351074395443207473953946976951429013004335769496977099661817454850747452963636449283318623721068959973854909897606124078583947045840439715773915173723002704651577197925794888005237782094774565808003314252932148441352067049838938738344099378806955805240858589933356197398148556567471853100929329779919672141038340484275216872004214804934138194501307742091124920328297495630563797380593851728663613525434891446694495192844549447990867507911244510549733167610661017452046124835188858894564092927842079429504243125443984291752263190718939417986359350220834576214272070245584484092988787986492654006514304988148377312340745611860117000708730456599803537942888826873266552408390687232485471407954881937405726912745131174667936877795404319887228240844130199671251269706710993530363873310730002083943094503016097781256443975499057008041724282747195589140597574917374799623658390855532463947854763934597655447540361286404287833180773693115387952793858054522519632589957235282687079644619382972840058425044466775769332998065976145255752153503723145395601169287807930387579489646315428243915989062914438509733085636747873140441086262030535875939454891750814003682822109778740665208108979557540195223454956600849750572304278992136805695861359491862432068575943622494876605637699248488004157875653049224933034578485372767222554216719399615528856418355651783689040326586617920071461129299213383329730525919379609923358730365034819070095161147562415776668026173346956075093261418694973527450613536666451807830950413134308714966922377493325933681747613305156756566388191894048944648113596655535878390656433345769562803827632967701125635769099985612812828641317825545006829873926507535124934827140844920092708386399141104236584003421875187106502928075093468382339057881247276389276304338341429615296325756477768872665259658973466288534266431812897085373700669007726681096182792488889107031855849108396484046479707679071494451323652613564189051339393082945297720386186465469110042386177333349308106426939373409877248831251768044241722854590334033553330673149437945244403649284477389448689452272901742914728198816946162372377576214360614716774109358988113494362171250678343408064128908883592633636074595790554342824922499206801264739498308046808225055310565710412005612804010916062922561551102330540259871627264908808589254112951986793872106691647960245526028404034109178071416168667664776263409003900311225121859198492149264547251683078110647152206760044107507035504760525712572531862992826240800165736298382119753162867557993876395888432140290062221633967384436434363443481749644148178257024821118370602827229211572699021633312803686100674195121650872550246218433456705854176883802310648061176526443917520632731649470258232732099037952000115208237741768866412792712030638151802133186470242606092843882320372027096441332432727406851700898674309034045919900257271061136701891955218242557301162128433492515739376658591526499048933379102437451574541317130645352666073034021928638768244969801194519787983513349925770841819823162732572043231540208675230971267024716262308286088671406697026114917199845403557901440366747049314164438348783910603292679163631403848299882523996726396790093718654894134401520845039161638464158384453928094622117192028774917421673545375531908385969238072321423071144289836914566665899173055634899944850124322618553762724439227389974344688621810414606658073476749075836931555690174184369775105809434908408070482980445844588225248864484690719965360640454171543743836840784141964486243397083182262683134545962990589488682007758700995012201067044633650647697222065878082689653041219771107747949624114286429588929753936963394814294556943185569006946466671673265839576391200401392702081006243990019013208909190976494888020265529120660003033124269657747201993374810610995085221407636227631733977057443196439694833672958825122697398748282603954844725059645130112637678267636660149095429186684311193447632267858223280822697829500650724279269884492734691662807561043925639469425010916623761966262367668171734405302060370568532111505851331839925931702759263833772861393236781912043999064688431592975100078364965216888843663319825103943513305531513018610380330904721403817128381139593818583788946932520316287351721720769781705954636386898240784555823298441882687268096546858999046438288063522416584522579046339638604250702618900295558443401390411384573951711098463612368077451902817919289713473673774713048303637884675143808354224365705869172150146952321269282026555144163418747514356566876504061318005873370938150164460333179396709899847161806630558530592220767049321800209435260484532287969603778085225907186457535414482708469151117040988910540338464393782606171052732483826003619580150992654968470773005133793746970624788247285229103765542913703067892282466351776929240137613367968220880143459621264552085954966654373660634441654292050719266129403614153065869555850149336921937803179097434745370427081538577940106844567855144133726673428452554572011892661470048102171789460028052334017982858195266103117170753720142867495939758277521443727962733556575524133110318773310177312977505096215377992624102292133205352339851895609009194014271852084690275977975241947745601331424503241391714893741191277377855354798957601068534888312021546706362581020650888613395172355488885967747707012447548815147931148671663730559924968431346320001838450203436333330021560360341445159256280339075590496451511594140702421536595313431903578640642940742431054488705996892217775055005797428946167475251216107518838682069369173127976556252635860647311415161931738972442135058804170037340252671370234437877402584780328475130007322375005914959658616654725788913635090572287588235198148212067214286594326534671970433500904806833530918727151626120679199977282333379198856311679188702959500110407684702889112435809518964693796084849612812714595212170505107150952118225567284265958014014403582535324435783515396459748479062161750401130562098138722649977568542259294527618234291669960222410205567139298225549294853287943898280760661455957582259698218253640190217748461767674939546095897993480550782416259698745727531920255112935864019009062741675372924783957186577011139443176479186614050114948361013467353198941069127395275951975906940079002581551982179713765107808224297778519866877815879657936537332484099418507983112534780948133213898327021815261340705576906287325931403305683674296376185352438242620041361454371351547911028782022001555297783863604844381528959341263482916871878126121379886693510097416312834647040936290134948251234621253505615399412950118431466013873447673353189938941561134942332487944940507912560404821373820527613452633109337121836150127854249838175861625645635211372513952378659043264561650440826450839627017401848757477014933383651479301328823309437514531491605297897745774286592822768884655182321932774516884825824048379971157890568860253172286949902954408287664302784239730048947325206942499888320043516255209122688295007720666642909718974071935285323516450862040005053187262186317356773686965769072207739372388906540581249638205940001099674881370860129339516657409638920553493110595383963007046843155279251760868164057123112466239420875233138817133220525474154378028726566279389345907755588261383895902194078316063583720116743152672296230340422075705968122481504572987720494686087621434075649950319416600950709474439084962863468864532957603326337030480474423235979200480989462700523492549184720020505186072116641211090840782037948587924356445034122720154486876857184769849081755718119888745094234646930346436194884209787538899360475082283310318317934347830102548713260769279366281758224080481872803528011433828001596288776527478279023013792696029808880819262466502822319374556509359027076903299795461049607142149592881539927205833644811178347858486639514956998359223099720394605407932830629940113161279176876788576028835560203939283961672274855374061937656906177942294800850376026487963076431310357570251170639417103646116428669414255075723666728410900025629287146457321509913304264285275450769377873152194055103819157516579821042946084707670092062172493251667301231981397337512020298280286397905656787438148286971494078139773686963548753778932480032023451184878603039348815764096706006296168698650042143342692447526320087989544352447636229889662153507726436373560484212356970511376740154634706621309237910556908430716657168420036203049341212989448935905504560028266303194208782686233887543473676245266429560272120270272901811429037989098677517427670188560973156728594255219292162537575812389711618472175778756763461788908625926271091139338521346386077945769383291214113497957640091516656547647530800693010229598964600278628242705288407844624403452195713577811677442287048750185875465640382999132700559282115167247502619250847605682076587429626689182231830066369248625980844773460506794040547401080940489066211776491395286219252725472469890322255485160111175762366482180943816341902556023700526449250993499821607483375122072581460564708959796368696473250162799265982595269751460091422109503739726603839691838921629643999088891636473293207242945041266736979259836783440277774424382101790940188634223916653532631564452735650445363649703640021367602670323718560871105737651919164527702363736233546897751625780086544675730833036452089843981326525239023261688058278934421327809497809540560683740493850659557995275958518756251372226801178342071632293116686016337387812263368302756664990329962059582414548713598814989744321347489896278381917701283084490815427352935281853611327551300630196790068225557019805348402913949370839483088785020656743190391913791776005003786444283985175801979600735349438638627447411373705003833201257124703194828794067245243262298756103451060204692740158563140026465454250786946548514043167643245602043204648146875721340507075582514439700004600752587920409477311517290273360768549925869700965275827717020339770648566624945980699725941017378827692231975245836294656335904814548865826181951181218013531989357331794006342316558532109585750975417080508187596892803470900706675325702984366017031252012380319980382382599925129531093936108557201329088348446650622576208044865455635632971831687191520563883591870044346141121131121790837784890834579779342152298138013763886518768663987361139590117006473925253746425630413592962859783026079901332374958481568788841203241580872658799669886616016711087649683167567894213750185635099424216880008629479074220074585847227947835084104737236155592997487499354403773547562081742421880751607417290476822072530010439294858872202833475201211727747411684964991517989827211638551602157158066750688016178403541928655673232454554347750711572093516745998654074838341719879588779285240274207860229192757409909237857239480464882715926078049389192282134557549405014946339098328880375860382310267606189406823132715080409596036378728987152502086923365903014718901345722132837402663715586694182137594055423180150639123927508084494342319180764324874437695833971996851461638673268436106204963988451603418812712036230568098500596907604071844305866061887913670682597245312676708685530588185241354212966936235122096423871082223020834995057934166284555589315253200336290756688538054407350309642525934928954464595232827124801237998744589171984145628405439045767587008501722079716757503952744847185904937482100669183842772829858616242183013021588901281338669223580686998647103358559371294084588327980702844911257192244448282693479206379233828710626855099270145236578815906663778412651835426902997327703668002967253030556651149335492076602960004147581756592798699470977870268951317667421184358945603760185033269054601648801624767057037709040058939158450774890902578449381866836615842421022126479697209892156592901660793817080669120257439165695060325653699924045397131403507240227812378323149489040017501979798140482754105753286040134442653653230866608082368820514955998522570925894499472243808338914521361258748644113496467326705873408704239008151436481449078394155536052597074781094614253430786360179119691106620774615652426107225391127216325687816704066113816500469413808061545934370748355616524238461196798068358468670590767880880034771254527773326998447575354212332003627166391429389725847718437891075664120757947095233148642303593974754443007021275366614035138989828834852761859649733224777906588575452252292648938066934603367839064807441308277957467881915964347631446442030024600970489713887848413510776627765012196723348471862910221141877587556074408291906390702526802701799228848559327436826557169834157539948200775438946196843050287866180428641280022602226095359088936971356088381333273273861502083363796258798792205648908471262238424863738838498685846238693452940561173611051190148739674949567163097647620944548162255826033266760980199600215262830328833656588732822570369189165316099396748158935129093905704982209995718405821859951928213011209199938726572229517268229682896740614066078652624090987621656075513176177779630682523452886424000417270377710373719755858552411052802572606842096058367976416469952268167060872056371779061029055263670558885434565193177440790054602968110436984911354028783350940283557482828963641762701362149707171853722245233470528848544176611300738985291539735853607754339336491933952378646696780182067724789622678820070688211591113870393681227460004601670578644740569319524621043797780426623991962468224781176474423655427265207793437786892751786073245765599007913179814440859892713009962796155304754193963909551960938981090879658843061036081455851120595964134792040813676582401244493298140066081731145080857199296262363679159870580374013599091814442897827977433723272832205381529858171742177340248877470954219185306682210670092631001980160066802216941238473839915986533154668525825097784230070675238411516435954193455296917104226230135881591574393388676069950000058510917451289730156825069942437423707819726992876648513366578744921346099911130068595733445392555869562602161804447874302748606517410695597519562160144480028199556197532067938033569576728488664722428631981818394610338843718802463811594301047331902390196757302036810874043211716295667469919260388570939147458284247720413048670523186205470414449564652269089641092198038607541257349176440011273149419655390333073440158178237098220859592203827567809104644972701229384785935120937528939358891330086399732053574204981341152804067503466262621450296347052311773542731125473062289668502303362620863306012725962650108312823436996368091524255132614037089457468490252132273825821451880089023219287497791737187388524972977258196127199235757504971005776990460550397983695369988764684372008978155778699130965725030508523125973334478764551460800099812331156412980779517937521541559146834911540783612672357697173166426299193071506599542007284386224374276791799291424509183618035661367457621992913855756436881737554452129830599190485737638726455440078453141608582230596170751402415686978106220603302250146296242787137804782239117325729469132327841197321765224417235674471578934485064814467097851665080326049426070923615085771949354535193985881237824105878713667917945310771370403786412235316994317027115488233834018021842152693244587073205003286276894603457094086124429538396404416186403697292020020623307059316520722813464382903392442124643447107964656173042854332384616866139983508024689174275806782329426823146801811579581942884626837119041239525676260434056658148575409800403452418375077270178610869110135981894579424564457187568582072961438070752204242651559241092589495204832024151976208898075371565748046062414628277797394123967013592200840795414514545911948986807873857152878049224084215172099255116731179182226185366786015331825835967206340477862168554787691148643979269244242852311546664993516739254494964806564316287028573447552590758094800470642528419767181095412551301148502439597308171464968892213337458429295713992252816838741285736733901726512276140286931256961346110579401853085430030147712101139319931948846209569457713882573563881096932040218828853775183659729827876830540611248058111040100540316334987450591277839102937300627496620246989294763568896494160359805383487132634760252985590943999192014877616614018566345031089192957236800154245906864040349002654191164160972421950386110611005379996693174236428702966798873501416366395190518558366333471219435218027557324691839207330213742221567824235888066548690589541347291278519856860656455726813019923333475775010961127358599117959313967170571410926380220823758134515026836955840993315101799665655819945484974957062016227326547804589097845778398977659171592286416603657843436703896837325899082888323772993790869545119930922532713370663111516228960443624145149248413019746994554508159784103541664179631364082355005649727715294595705636140131096846461767789455281346936187574546625086746872894883595302732674329879955941387960785241292904349223596753556939108494508266704262583246260769649849825019426161609168407044906831819888132446195548526984098825700874346225109986137730699848507557046479290241831701051539098516566891118990859370832246991518188449208354272643292087054490187511153403058253068429450252337109299495885405396390069911874268683386423111108025404064069376211780303876720859766388252037761176659531367371403745679468054029633280555830115123078302678357385911016417707759240578835328419038015261557975365870705674433129768905420288981383550465867874745781496973326510122088105797816431159161889973185357853026884235004693907290064605393020242054744866633502775241248646866232081104966561261530440254915672503998423062103416010249419714240526765481876638538837160258072856280341951771748348364327374425434431319743452197566392850976569404603374964931429188040017130502758513844721712136311071696920491764703608281933880132802653234416106634767860967097724688078707713200219606646106897493138206737119180602254591992937890080808665931769876497868678169748016879959712287489313044869928964665126631051898110795612731470312371460210114227036335995240016603087138025195534809288812852612169640493075690356765921320918838246418867331141123288024261990581377814382012642336268468670329221431745135795815759531095602152141343428954849250016537558036210539809226029303992931757040436206165666952329595297077272226651351049004137983543108330997595643705377357008905548411019358840225001797962844912101922022069818388968740895191906032963500086416558216783326531349691164101652828637272957960512203779767219147346952577468669422446325205382666770699620301847685285406742362090478292500161642517079189010900858932103687038879575362590490567944028194547883171669517643504355927982036687126641608110561137326597216772198424048326084860073011094248236067675895113121984604573328664718152001031160303589857349010551901707964353438543361237181028912844181553666217826449145588740115334001871726590378132735101455792335881897540404014322462754075996034740240222245098266877565610082216276552614455735801857673838202631338932073731080538311136776124952226887855212723401347260600442464626509607791575123310681367041695342423160381401565761911135889169582733235065188900635206899291442251923904035669025041948061280041129416927499533722464692648458313951719394449794514422538495981375179036458082292130454214344772499668508848736454053249222929972958927986789207615995619275311311119567026233119376724967079060843823617329836591211311856607992313063808350038201563034204587527191889426202177662258732474733191871272425698756717570920188003291239333833108487470480695355457576921257335684771558406534128549089719529732045239087160525746881035942116019967781521568239694865018006030985270724973565693140891434317991689395263124768598543292027246523698927331830855781732317618894341922121537952811755354208470827166632047425428440745179643943731846729906606970802254405580980355599514061049120168403835094224555932386791078779426751741134897534775520665484593609786465348739586181730466733174406697103419559338305119281978411227793540843823966793717601371720306568023968454138079583891317432110852880241770878202004531388366758566990862615197012188843952979753090130431599943975478422889031454994861568475536856036206645854155060718658754557914574103348174434691485455932724499621645547272195877443724246385449882250096871395943565202426635599663775446334699716317070491485983425194817404751192963142218510132825972730577928762130089441418115441534790019069817683282532509404110452099859558280143262781416785314726131972704922970741220675499865000830049719249782852772751593090819528278176807154349056275464318377978368440507507099458878980969278713013420671320600991905184811588610461065194034705233564873983216330286023624421567710103474420240110714634160961371232228756028274837850542738711693090360235835893512285166081556077939030538978506923734306413505107467802368785830918938695674381770581642467313893506829584585225308456812184865283386049799308956740883703184328109582331916414685994154205157157521229801876300523456368431210629837143671107415871097853975509740475501031007141979461636226031771747352435431448555142461071967106896716167809600658821722713259604373616963722997225755457591991477563956671656258744598805762687462551571681277409895070016526665331787062598049641183954704676651817991294372386853868776257059817241599618167273219014974846167749395099355294197247899723336640416072384266528596777232505457823315352226633552762300311256145705027604835280717951104053997097324055074761966897947474528111816028878680858868680846465811672638037673854790582394549925581393445126413448164616505813088092430649116174236356335040289385383782394248594973962435445598765742079201741642138467204840300199143619468060437334055148329985666505982639411955942996649456373295271826836343045064215911950345638225726365259796559604667513295082584937913764330045300126271986194093163221010696450556745026289858474818193728005607044690646900079498995151918774518789040476776599225959950299437968860469505525274317268318057076144870648666272773120298541111747444611944732163420514729441022208006323621249748692450310521277866872237992677090076904149734970481380722658248381183012552335523192481012888510795423626796718916451180404813482401423143808755171541307498936785841352139236069499379578488255557829775582783551875226856124989982837760370851297485330199012503251810700078256018050597315971024231161062392546733049890645527026966808915123236177355880481557750882475161827753967066965860087765840244632907918757469275444595613122375206123149238355324340712841419737630345040198121438565901257289835263268919773867421259278442624169521238775887724684416708840829688791091606198974219824393098886511079166831344739825018490342703379057799196816978894941282842249460675967334363506920404443888973222609972511230210367265210747508644769151582680268711171831109454091541553454205076454189002437760682604974096669397857582750662039521103952258195703063935892384815079959822181964988746411432070548826100019173668180039159954016352339957108417978480633483897237296064417145712107544135882574428665327340817101556484938824311271294340871631759358545143776464019476734306529580522125908781434260928017513828484498211715609915854217766554498551010477020997491348704700885650849472412086034020750040354119930215627136339628219963206028712180922912177010534551682222504875408857577959365947285394589103279490993068790463364551941346013522503208877923652820480843765626524529910905234460110997679545760668990273769320268661345985390780992853217381246858374514342560955115125172728661559411816011260519207894018356747170016867918948339082712343665168482924052066734551217362673222825025372042762532227058238022178205096872117693615525436302266710043818413011422393825095166797100999924295588808486243125161614164568698211099073809979983116958934618447601575721809778517517562243582213589296761697467044817837627430804244365243654437233931943755036495990299312263613405985151802800747328680103161752411200189993364681376574048267596195116117748638240349333194450721096120335462780100420024844925154922020522620138121878874391737305762834347413496765568901601820399000124198368223009322834693234979736391961512288167885132127940300546024928854883591363603483730421631443707799044937374564791189296904153247228555323775959986274785397560926362901672219045262378878991298369606841724222825994840485035274503348327647163589489262963075263320848516336960152588493536613127217149402615780370577953732712438026791140014809468023844361076265350850405620515284497707601216146728282085357327058494963396733316900796484724432116452245080043236160995260067062498517340666799942310934723779001488623085039889329640412741668238832411008905914068710689970236380722017350078084007575932173399633609798388769753298150947677769013503125631306550739399539768059657658087736710704124700451183968795934607297625368678324145555797529274454682874875037541825580401876003548777368312426132079609790793077513815542917023732231116983517851212682319571305320188441998555449044879935209063178381877167263778264037629447849720823971856039327719056295863537919864557814447145149840399382127176995816039538420678242028947606256978309288894270972464114061917643315522361466462594802103809117484922231609661308149109584776879042063846028637760465335931791528024210696017705937619047785421900545505004388688373995960220325257729444316082646644616045673482957457710722800269624106318637594061821227403448562901271066212566006779830191593818408751200537798024283298143059433258104038943688243998913704217301696601728741278350718908369037414723261338994513692879828429198614996916137031363825924715075865165919642512255789058871153921031611352154624410633685944735679183925843378636882222298520881502437203983008136601773413744774833357692162003916404799091504780723882956073131926610276386478290251242448885776093075099343662721270605769237988899763218059347621722989632464708231198383931841423004586413741148447986690625706132803824915784763915717707845556614457054348605887820926219823781803091459180600850328389728053381490217436296194819100063012627861699885944371780793653022915800370314070826846444138674685497155969930282312378238287304223878894328948883807084287685895633289508969856568371447687768653247233261775941110125201946065093569229142684700133199174966646351101892658922107954922902960133969204617650899816498184554958109021032059709971859535865935306103500879860973322818801994494718723092066306027758580047528738653095142191489834110138290507849319755802553794531392252055062198160303104081082095845657817242449415948655588983421041746002918949429687163942103513060693519032324058651223609121394741188522386076423699995314252369808124576773499159321230049885938740611863222931969361113297214800901241465239552631416908692179368714140853206765124686025152247390971089631028705115589135131521405416221239202868162205690120111272651911886320704156363540448150503855624242425025148234214624198882248303280787424466422618681299407374348606903730447143796683929944550128246707236475077303532085964291221079920628731835863444864315015193620470264108039386349913549980719410881723823579101864261889477560146573587279684378974208726743344990933450013743346292266454015819623348342213067840480243039369828934254512264490364968991851525941183819294516510539822830294797489591949413000806281485237859108534224967602972040773712071478375675429330998853623613482623941902089028808148595207486424851850772777144356070907981944923597001836150489667876499774828692175113172915427910175615794705048556076598449514279842232707207011909109528292389570817187458151324620585946691740969047952194637328615930189729535749824592728844784698475004276320544589850938983648513068111940873747469607603274767363839912593355877240251153161819007449447871628543008334753290330952578350121814232126075921143327322799654390794731958597380956193254467487448341703158118616666490728966755231567730554741401264461323849493752994593136432901870186834240400205107086274210371045069472835793256342649372272189846094706556172383935354037333928299051514235525797052718873702572131426196990136911107961875597364407613156595697434870200713505383646946471860603371279270567319184187028885045742676629521293695815430294807778725494786330753787687813480111924787978423448775894355937336675009413047876360944711369795961115121600488342696787891708046348820234392513603491698238997967859361888532395380236561757310248789836285991700341943604631015343718856422575390464165999884693208601850658188119781175018520823291632478894052955823532551469941062695403769887803594490598379752601771003103024744447741560214772012734848944518007691976134306780565612495322205129888842649321474569967361136894817580726105656275638063902359488921137444625006687507884390739063178234247681914870241401290634073211242360613956461869361786494527994724763808868392556584066413607154847378485334147679522114466873921460192554583003195865744948797160281428426636078968237828535440049249312236414575986383747147896989405420339013476884708183386843511426053725584938591361131637491823554091128144405953531410010298886931336578606574637656640742676043056801105214605897480013490103354711495009523562165444404730075782099708457985537357536086927254250597194394991132677212850178761486779027181677061993644531240633828110159695976603890812946368056557032138011516902609057121807867227082847269644726882725534581416878496828862966740537729881866293456248492904093463651137462652271222728588531751491190706380015562507191324704585738513678876995620639708144601318070783367814249113885312930059254822513024930720687916048797548141641399752040689577501211326291140798323211502341638783418168742388566142288883549351049216912664832244191519192297651924179805946528737389115521843637240037629549709163996125302823321322090462868056887676070670610544762779570991188260428901615401869677276749653755534175545460577622290879996230915834598185374393144649559764720578652382009069500407203147896344665206463043787915381797730645807903971998855100371832763714837949002214132073015362038541571256413794100545255272844955471520451167487246970603006498848267149841789180319113473296093535583109166667842662317104439583467118756360653319531743220114125957333240879953764231834510983350318461542798692603686124087637501932829820835681429292246510114892485761319689440090145961617804881110975837753319047333432129112719456735763080256585908759458671702943914159624812419476437720623345842361126949235800609051951150952820631742745407186005321505429507555765568588865902617577036290025344769012610418031674076123205775375021853991855466081236993970689187595820329689989113879619185938001232943775860213248044012983235018299570766937624223572506208246813144782586553919729502067614837244170724548423150231116207006131394766065808852706636002875236490929763118884004490054217856467830817814506200544970738451643264209275527923014500839510601323238666549564678016457438310375693202712814044968918397626629896766479232340050521962622885848516596690393461950572202390607191148522233462127496378805316648960158913492968128142223185435039243081799681232796576207391194897986356755676049664166630048334376069698016218466155528171652784349706067148265740883354663015554361557038356425182499095741640868819774448572300989432448345180228483304160017523299698167383290935686827053575429960265887269171763895442041094650063839497044727212750286633840779162313722839831340460274188015851660505983768428785198327316444594710001398293378046828646565982883286684319949426022160103656949235438689787620856808557070659006121411518872295624462018930409487951636740039079496744227758345891705598821737246204953592152836386728460421596874665334638609490143271899263752057152447950265457207921858714260134765326612571471781111217144248284081863215953071181002595652048336381570563666467683972878118373103832370709711580269066759858226362501175322745225507756430934540128949210494004751993639047620636021370537017932327086228660471170786132983146368557635723238796541697502778568804502700358817337519210049075853888536358042320539309298508889968491489278494523375579937865917078466020055979286621909583710840961659475082546674907272899340683870545116410933882685077877835639943591395614027783351287741317902131727899232156855037722475351988165749243618873741328179244694252704455380533006970868394275035893827626537387851610378404546334336927358813261535043630652792424391003641866961257992982072259326349963575891616234918827087801260174736841433357343447197892354966852703089529808857807013737512156605814742373226989916193557105627967676788587382322971188804057387319704674895525897648343451541288946674273698547282173689065076517463272617876070992397328040386455666022822491048824731315561987276352238352351136348865030587655737679003954216851477093093628647175951782330927624604622466191137417673278252960477497550961326145434282665899735503951481430698879254251674087879606397566136386656270532893279990380066053364551186663534544213730275252795192018643770267453049930757936012479756720424129044329001730728820391491000589641972980581971754944622899882297743852448146040055210183504025887477539014441494728822036373848346407291314634160578182533232791419552857738750182700139917237786929422713071772410033107525013276477146111865242362131674674117684316094842954970653669677340038352463229259984998949953361061039420137113672773366139851868478882613212542167056796939796954609341636068961799796027833518228605586315714344116056328547201988506153915297675683351134989514688311666124236612055340868833444478071066719414015281879842046849680048773935364101447624197579714446984907902569564430134472599602643197828566431010839686700574111296234467491597246861448208251267004711095903840949965322479870410594400067224892117485174012836376880567678607061905530061474943111314369145993200945017107266971329591354293738841272016759614720272089223329998612334742711038764726731940038080892174105041813860673956720640971803190061207730427012284501174802989507094381745607989149024817399279017013774184030811790007840703050009945033419990065798916335925847840026847409084233488401806829419846751394771861905830804690441304773204217992716978520516799913877176250952163658470594032120649883583176847642641752164794237950995560183994690384706078026506382888661428864385386304611445013878907961209500567420467318987083038896157848419463281720629455435713489850054640485929128424920890124749691288322752801463707616838189408526920182141231998699792598507723967369025448407758342251036053178262128220774823560720209951332325291026723137712602105186172476025591663261793429079329540192061604540359619126498298241417569479130996337618189770496491145260317961270698589695828534311310349006513898220907478511783772739057621629340482060799924038221171758793491733432053687576235186763766647003839213055849591506184531936160552216319591965055087368711318736785341444962024359977210037201586530616061005201142394777104035549158146267677437728097749657376332489027931109532209062149168795624166237493003825503819627473112716360795873210288747727322386679703668688335848299070522126328518821556931349918720476136612177509279462992653798333620250895231272035944734606050771970713255188106896132167402240739029657677690804579242668688333424532266457168072137217407991014815868939650151178670804398368418701525480041976358988882338532445619861675896522549403288912135863621883799507444446280395928807072909851796560905136344625543013183959598953161243525596039427392113003660470844214187947624162711565588696173847429847347564291223793232334927001439609297306104273267682545505098962540076362561766202259700801906685058725812354122205703396409305074322844293212725275380325662321737929326038514932167209472642146114958140821916420686305797376966201632165049288078066439723858917441241509503922489436826333042959296668542752989958246805243637448217440757305684489142442894268586842020171830105842200893966109246507206204316664132459639455591538711293088731161680285322510738873713223574412818901058147912830219779705596304048494787181077547739955065854610594483753405704823999976239487785016515121999952267671043384378613617520254169659070255011858402588501500558081276463594931857831571075782686888446409252304352744161060066065457498177197786484299257423010763698712246320028310897876428992872398883630051695916269033951702043401649025895502597651313167348174835304481710283279587266203544728382069756406133869987736135567597767745972617454677510649750768961779028971566567238785397232841646540879031581205761990953354444046641150759758398137760782831708858814790447296089380340392188393104293511024235518062190056433144448817089682729394145514611320965615026682739677718370674530920489462277199142464606282180397639993996645296993665441931305610258725636108439776342686415388501476792935698213189179014361374189096692196751650026754420411256297981283691761911186069218248054177213653685132371424941716356392661918981607479711031368840635058330622242257635951095955751894518732867752611233192610109747683409331799317727215712989906958489781689370372010969787399378738969515690217946012800782801777692147852913588185656132060511359925659421548109211276895452978528678462676904134655868489884719446316089194701654119088573123226378046739122023096724325213742813245972346847388566056817745673776317829283850155702477396732206858803196273236544656082171849386015681069117249233088532144939152936915948359174482327371866062471494436141238688546190007703117840968992455196722647822081272240024935933743086772763586944629258786683423470737509224215040657442439310436924240337591972758719286653497650156425104708308048051694389313575187686338624430008819117820610331716354242588294576327124290544339577616969390310088442343960981935294462177681284996501514185950597726448567543501436513273615672950648467348879180319289734575638336020902735042576284798320217329273179517096816811139047693469964787408754918044274557396953662421629907359473053479363721642005800816801456430343684580547237239359111442224464729190411924916581896908081265473876801977377574641721101964503278560322731633643967423722874510927865663937923333425287340582019179349183123774278516060649564317643014519221781165329262907105332118211669277054299079857763619850503191899544375998717207845153038398472167364615664878535902971377777884370788685417121468011531921885352427304652200756808160466420236424725370706154132355961524285915370600150231594325848090599130443648411276974697527347566544753957157084253457787052833660600589726988867972957362929858724466396589511886223307227159460069209934159716455478316669022701396062336269815620337160050664061276220202953434481965792102396738678652659324572500406224299173437382249773196154182612438455260957269528945334009432294170902982767454681722111686084530481480748135774152507258846156614863737440745077713120020490399755447480188943873363694885901165367168901597282240083449856842816715464197020511598728406258045566176400300171176524759870665583142022030850369573941417997762195595767726643504636543221184421601545068871194264655518590091089636889881757931395214231025236861335113448348872604490597941526595897939627801602816022673798823805393532498596481350954734789694817969286160369073285372098234721115167930445129214955068541102204809819666388550397624805290261270590680316414548133826403412838264943027117121192280321549216333694036501591857086321826807059387244965062062017460174115130291310292003390797866771767544611242479583593960901901593513253813110830892621737845834429839064027086100404376271606537140566074077334759474242904861558069763076551180367025210976215352795120838680786729437083603274759780799645826462932718404280605328717893015975077309009763379979591304818999663232199595039077597764099428130560084609339948065975535619380511266127400525903187448003142089055786366035129961965978086138711434990797689709679779559268656756717030341046388960649934278895715298574698237255144935872543575004311402669770584002271991695182230990845868369544344507873598962181987531872497237630286627441472433125582465806009883519188016599362522669975963904417837781949702495334474852996289187755704584531390337791331046571004927076326250633517712256186013639699903957469846789096190478826243517689589019246346815885905187485982319461130895753868763930423605223137404229619312497740171238622542674479370978767612305099708804162420494893415900161333878223154028634257296999671157754211259460791835659139248648437856258929668998256564471275859501985565694614485242104011866333894321416919364201910208032655624705277144768344306937400304413743657188363800134279187672487283275048060878230180801805277328102924214395328935186877973624715523964289589822103942565588971227729244449268205491181785094556461612004098548549517943750742191440951175011320114062389416084467686471187394596230289034129764164474548214067506517171411906641315480408020578825932652698215765119704016446025052893090683532335647078478389167680383513882232948750078688520185887431747360246946336150826119315785140799036092489814183322505702755726899459851472276001232349647939870988086812608039269404903267250439513597849132267564465278635054958658485084476754494719469558153409440629798838523433576487159789930503495441587943884001325788687796816563620137750510657221849682741452910330834965067588452215574881587883274027665730453847883788932039551599068392657618112222868607691984552866209058776110799026643271387987231276362767180528437500621592216290732096229724336911804082164360719907019464009699876791411438068726403788876239943155686855213341650478981067864946954518134057051307531567097662134852327418307441286347077313323774670132535576014269468010417153031701677756119103345974641088076186478144675818209314550373483052575906725458371893083282219732647731026364900199705455349061826365704628700825036481525147593991028023495954520945866588861761168609824461995667367142823531224690188922071411791000811823752116944321520709791272631155644302250292214513253022380953038413325634125847509177241365729791029680848122275900322212569701809820327873537895746864375538351714209963511831560397686485572986316009066780654569572053499747728604885437257976265430107000283183763374150263419379468693647396202742903177575737277661198046037083503664907253143319041956129619161695333304811864553992561924610104845206305681484431898233596868380156841633478152659301062621795330136129152056750712422888280003516030153050292779247121542662249677634670083552146946548156506789408951500866783576547315572620673870806521405188702809850543517951826524958492962126631853329112543018716795548319532080975302406964470504020512536236826848733047516761271253589389514519177656395581730713522307808585595323570584813846713804513333606636033738447399455536608165309022810986600057518790033416547795113853782465770753074690383808480956830625522887163258757329896417634560493643864727905203683412559910534230732928567747570815443047585929939065921158325027650843638455940894669875793979373675889617763634411395490047293928013804871055072964045640896789327938512003598175023743844125183637072775541979052327375261844192666870503050657821591343956947307970959254801793451847148105320319868386405962421290553448661096623758311158448793682408590445151246842672734223874988604799984097166779310150317312580851726494120365883551242910685952115613120258640138627013582480396731264951183358786418346749252065675868033721804623730657438429163508031941542067511124858417425749928045994904811239952389888110707913133231688468742505535407323578509889117068678113223967421371979126761007707687243078233746613531192769782775878555880670048520901191225394642185900876152682753044608092117817824900346550617441932157769182549920697254586765879994160205458888607724427285263060065794144151334906169783037550979873115104053352010065314707384737768541635493840039913087456529992397316906686157535000129073465015291122716043737731513928815964120396083437999810813252013061485143307923439668297656490561340676965022666048037906885958657712722975810108771098860607269457325167343906782445499495614508857246024720887942130023231478415614497775188081920543483494258385711320649786832096038442076903227265848155891650860616013674890385213918753279675977199102399707235735215240242356610970840990671051136690350517615538540375613419766250545744596599248759840406228262586248663232805189713397937936299146322078061388953292145762961182736679616510049473431967944941810542262841564498945620215920934836774007595240176366536578573399032709090871029436000257981329312466431922652988546981167452402372354419793258545154008546024561360580762506919468046209306670881343134235770422069141242400732588826675106503222455924891659345439217215223599431671424396593707921907309261819019014967820983056597679594354238361982953202178898667396608643111582570278568372625245848654594371825904250807248434500585759752458667340718051686622583385971556056438105567922890600866191792664444186218605688509525819156803660235428861384859409134668403261714477628500570015429467290137668379877449696384847297267778587865459386000510110554936073394290890955543148672774732344113260261904777143420929817727338029236156035990800524918224682331447407988582500291252076550268864010384083378918348260871287219278126684632312867895485529916654375126933063766077791325159592996373274241600714024358007503397836124413704975380211585662590548113479756559836221507054900162302731988839746457273096780129435182579441095623113267669033548048278007377293473702048838700549046322912204830788247024174654403184362626354883487538426750058298680107719385889343805312460558666097325644592581113692309097095015358242065570025361633641248921090485686419435471680722914844126092244573679562725824461173276447337608107424180765501325800382871932369716290766160741336074084469016347139211724932405478789528834104373664403789706945617209622743746146573523025319229165673010019779711027902846210069089785553247814419872405321580695860053849364229960329509294746089233943952753451231521574157305900350778618497428733424214198143940222471891089862002585237228133189640204982156837087900547007022253810219744816920026720325126377502676094333877919558244513079864056736839713481381920216771256482805230793307565502527125308114545668552624422589301998480504656649248383052282828614787637173227770251884021882257025438160425174151049389181004807451184311253675518153593346439182350349364526615314602103686433450707969926847789119944316406081233947997223794122327465071093671585644177613485728271266175312771638870615019286306421532851023799186613544208347974388231930484761388863945306330895894065073637912326294549821610800131535020984259338701354036156570667552248783192619137300403668143622895918346924356121045247081961137762368348407204176208987841260793286210253352170908166035599064056716897473434266850558964840018114443596819186324469164045129920888997090907339753470678455311581198951108535783016043299021962104132932459050089860881286283529636028228792713242002727221391298087835072792508135000999850223115618476650498376282196153600520985202723565176635803384910317505169875867596435914608572305023300555997710211781437898044683028928524954223370690733171562556853842323450316495439640618538245891181067736535020494566436610842422311557773237409527908447552841676641291066021981749154652102176422282338958330164545480933146546200908270686724924525624544093318658906042271433160605806612586340086750170469554161480387275731416328888247004300746693803628853974305811394809650706670000202693066507405249378429029194284010274805690561237120251407397527102525541890837749761553558924108793378466907366293195307560464119304266184601793657102826586466577922207966102969673145461089287149462369571058102893567070968547471936080296412927347933884039343027437114905013825985797537887496748911882032395964128164040627075183255176288599621853562039847379081742231636954956254942520503842535085339602601049462695878553031823271363290949788475608037436998665584502571212395160759851356219204544224718987249980436518224561679326136071054478767140310790831889271184500401524398628426337433331300702544874519052319389180145707798388095764260050369313554360322341863071246767354512662900307392804304684137086969541924283221890526721298411541905457341195000243636822211707325002868546498384232147279857024532918095076129202316385172046007731385213178247604517110419585855843769889683086282256780719076937621222899018964930101327751811881207622394267713099938252164049668408236093753465966360550861938754120033528221552281919435093906061272031455681656292966897050825808876117261731538412017634667156076146913727423628221483301081357442236616414784088343458974970881093026365244763663712052660865027727556505642961578041969573113008870352089160864890452639381180361082051434299816607904683258272719149663814363230069888432793321918511634365825513725547925268157189659326849998074020487996474929300850578150197679878075128790229860185560635752049823542058625351809525601752218373318149888269132166758495366677676790466733923719572244364570385678445939862710795786239422676649892054119150860171212750207154201088930503416827510388997790027802264872088249522241620411676956184130157141677457642429299384802345085630459966133496828888858170301042134862651955792920250698263592026159274045797525528608893403603808604928300091205854899277856110629281780065491080799803162684640048549232460329481807111931214891889873167679200395495639884293220401433251316787701427268098309587151621678924240293117551193867377704072978022813076143132457587287789309106883756874428212781716725017342205825402179220953508746047281586882325605133458007404062656223820748223948301791990891832847441635824612510618451188039701270156644682675971680746338260380209097767951289413286595101786975739830669037180843684643413418027516276321717024289395274132252759091897864107561478541360056465005715877231678161944300965128368154511376012487683712801151028834152230546505026794097820358667095116436218806994019828654517803695535961043469697067658979581498803146173818084078073649640534934774861499688788388511341849859207689151706303280029193829050729808843306138783956907288456027495382230713214255810487535948694478679480472128222875533314848742714537625037162814926253683134859323713142234651095352378643388732939020921124478244981500043656606262805415378214150748710211556182962607082553138643110696632586387764369154400271184456507156591645021853399890910951436685824418737336548231947573836787542040546950843296261900903915770452877048763227315093779089710599832829422124865457230586807509078816649288798319488127996636302567052291167816880383380424068743531799323975581893974211430075476294916218416354860578381033875276509754056659937845490405359453576741554338010406825678516509441534009580334980373947957060729257115846069509335128050519105675343962436913012898423570833765830004893043224532086773064453563990802414022494100602456522714811564897695096480246931563207873794680828872564322011506094972271930591725549421534540036336215590277949593461246793991169768458836343673523040836623479669491485584127990985317778074524220504712036917100215348368514168463092051155911542036934741012838531617799334045570439421123586593577961231157283356255519678179376505707776875570033893090460840117551489569873970487332609784902424405582922575938211392595420015312840935759088753237721945123577066682940285871399195886398062958402317489906504338656874187330750170877312087167890368013479674777370673060769782554307754353641983642748359375339367851519780002169941936725822937544967946227317977115402109172535211713610817965231211441680838725448431019120266188384117758645010182289348038382778160000051895700611643032741188792328454374693341485476416196358103421307575120911526117072555833835427097674046576577852619998051684847904818478058257729824039858629138169136608763308532614309202942136534769832662074972228080860654259001621972338678409557536273250455739584155244281722846805498452690956799749065513253370182342136360506407642456095626389412549878072798895006577582655962662728702359289328434815246807984623611721551029798852782640823336774404043419484284798041757559147485660236268536160029800961953443482619660160234528910749141100801731019181867140925179872856960667734360388313543337643018793757436103378807713662544382515960911720159271682044031622518680344841924760618998276411706432194203830611216941597747505511024651280094632773572783664932558197631458680785408907484386537527459143802086857046787367042393545923171274831343641456081430451228631624307282896496214505740636446859328499368523092457129004342511948806917365721811208332083734152818860888028705111352010309536384439853759182049493959805762597518145474559655537284124553596693221610777945871985047923926647664208930826810611462742748748965392363534180572942699596686776573975110967239948858014030257475948571388247847467971448422253329930403681095974857606432165376291186606478963290675777542326767343472218568926402825246067863366860170717810233912552339288792707234394217513078012862577817208622967454030974872954420081587377634864589167699928591852338207528794610267144783531437367319312854462571117044124822561198140344662365164520940087651747923670249594864741128591194005335935884088900189063552151299071888640122156461483878588284645555372062197465531337282552403518060840693676095101008666193084691077185767929333815638240624442868676713654516719923385149216312077323435376524886997129392821506681956212469429745829439384859164501035397886905803025448880527033096384775513256953925036848823699217840983522711007058908038487892699204636266100989210265233537086743083904092936646802314195077139863219729428516828888446460395506421748790248211793138655671020931425258025698999825018549344354443588901570393597984014497832954809908636362931985172435779415262979131862780416121628764722186779800516266586214173146050290637254555405252738617258635045220127947663405182168025980788301343983290666395800629067789442266929039178424612543620345120512676741077695801251170847704835302592543298570235183878990646723768911237781855482916746382750629357534806162066090768238307091549934012911348775735944353725907643957212375335892835657737234309127136680869133660127297108448736216179195719683510794643066805624257906108165274827333933605778326588402082835145043033905442771770201424245149924962056184320412045542781830190105834848489163435933714841051153604069001598575336155661615475649341606959509428622445819907521493634845786143015420918585591704919214925565553151616227833301966989638567557535643905355752369942798609774807937069253204239230667160071995677644196871454383018790294618191959802288285997675776635837412581621037306189392298438821282374204747507041599600824251134971645156960117468140765975064656916051186153010722251283568678368844620719215005053343589355107144840537022271380593163699170300359040627450479779662992433771980088978807390974463128286291770413357454115097854658134033895952042800296059791336614111820599808894186373825970494247236257415919052467756007979928240263241760431507359411158104375477593227018035219078139736404693599335067135954704695603731035886549394014866063838817508935338115170209268921736677957194436700207521653223033377168383386486854430170762928639175047582794904832391776644358943381053020746819274837922316932836810664293700838278856362206635544745093559899472294652863597432880664880802990569566731471203783039273102253077182012191227953761437783539240682406525178303429123985066244095034338308352636572904183448985633403586665061635015020069381576605465189973831435316136145412573832403639201937309843130623573677405103689686476426833542596473267048555023768215533855638006467500984437083074145205930698870075979324790962402483767927707096850747341459598744444549898089256921649730590058767315796417325642633652150620145784727550266888904377962702518782466958850451094671998888530135054919150091212836761856297347349549657113442701925744115190890207522537123564173977054496732583957967763037497653876415278451357677963917364387633804317380547604122774263375789535892780393715261458193511529530429466395287934760523408241630443006059676288298576400202837534486762549909446233291277331336184637290570033906322824162539239334281658222884085738268937531849246960504814679972214309507921012436022432997382502519594126843374706315882927178979177418767668835150849466159978150948571895296334925764625461580065757024207566628190728559885317562462319131882636163446418175015804874034270188525685831214270426269415752932456181391751126796344150043812628641285898751982547289665377972535553764294719891053583643004918204846723769220134399937931910729041089490106617877650475646143443997264303288361120496045680913506798629191978599658647577438806147539959494836198813056433353836400602109982716618314817451261972299179815675729439180932871193210400712311886617471236547169580560952933787134473649184598034749185597235680084594757405882545651516304968564681180302730779006933184154700732936065001557044659099271936451441919272852093746033141192253601970009797453436474167250297080231184540225652257967481630021715089691979448434042488484971512844668137687811545282378055831274752797917951481228825700139144129234526631050398311099235382010359379527247557341949946455487378164199494653780227729263177093757377384006756225518394455661641224130614349893736510873577716632802928813341826001660795486294054379519514032532730306560259455129349126242972325565996362969348949503562844552536139227700649718472765904743854486426755625108556615428243548438527226233844454308126320415729456397511552185543085725418220355114023370493302210749621566732429514672840772374197624569287368693239979634620209889381879492145028676555555550160796916622822110440413736526728142818194165862860329049566511417664880957017409920710667100115153908969698568710909849544449963414879746921807685067413895509051607934601577100632963189973718717577573774346088718846532779786238921695059014025980957819082312004666485076423850867631708790273951728609902492217764728347624037899993686521859446010355117993156006609837402952552507119122657776891358490844423782574157549878873691777010996820601591905804112460538454288104825535280370006814912473637838709286873783375750094726690028908868680314149706841935666536673572605750272874718286079671489399982550228617630516075689718312973159485460360009586799554257955243541311411187843906727465493247800583574736720876474842693368895680720523327575886256436151487354212961749801516598689187113047892969927324029691945542307397140927746822744714294845387559719096888702516613018427179194328667583157443249221542151993781683140719696953464906320939011314110746995206695408459732065867828451699598624425391554126653888520275975911739909686768008855612494302507656927906471084320593676573975441371888437924687326144721189263038226914229459156085077524582951196017460488010852891000212737200359212999193952288056909320435172860576096872137093812700124844780397147507919006299073592612640218910502906270467797222153508818930637441529352005680291593766009994498771830068775166136791262256028711808997023560387176610603292620667168734715666478583683749750329654450504170988464174295960745273449408479344861739247146876096370613285237295972499631412699637985751598980038770409205906138952178558032371350861578110846892322435960951477076461992535965932105510003705472227464947232698696712662118782956120220179192264484451123687910735256497158429344088345579259341582941190518879965787871109097219688756773016505634661608121704880161378531649416573104425095839163273003402589146715504475526023317259854142104043872813430022628884122561121199177579817838059168336306739663960738425712056627640204970765932396779461587953965809124627263267146077401487405211145625120196866682488203400524560977793965206426783221359406991893462590088897195165169223017434286469277127473215561953798502651832438598287677564934001032078148432365095415779648562637469887402242636386310876488722144937216943045499950013111646517537758132974677780725603433274753433623103060965880559137624524302285455359172478683671740205819827270740045055005898933803917869103194387064175396409998281043124204924220569794441810083639086313994964369696338191896419610725359947772104214613948557637076736868341832866150589911503989809189807936413195300119858946712425415844506151545506443045160454206918939867168315092107181120108071164764872694473628597698637475926832078841806313332098439315648124916950848338407147575906506491969616113179889771157566459877823960828634333841614895247056855164497312346638247655692345420163540900458789367363751232817466287487361194802411953446464709576616640426430554981069870866388397065342380647213132225969829444821673540171875451896092034502384593118323995876647782480588239432491238222913332055000155595581056737001098099858011315007169697637893091101811981162769847479818828605317471685051057112693836612709502138681710461802828269008666472488007996386041659020388176733927961023468037665744838707419270871752955955878157244926573772892315623094347469826926749617466349026404482923553872011753738285351333174260954910042241307257837847305010893614380222580903085822670504980522634250792114289320269953623673934971169826862028282751179655068566553664152718137585043851998374108910899618842917410302444125582121964265941468885595573903400309605318504169143002534922507004424417393020464918305224257514682434330844127936660563094937183604424779857420538731774025571744706267407161887250404689978241712041245879102519253315091068972459137250086877545805705212835869825562191362151738290879309244813038431716634336492488698364051298264011081352842304613764636852836729800172538989581810283381517913275327700761458668773966427652186690856966056040686880427935243901082803861173877744470929657229707294874976045570748112017196369188470823491357380673128994897973653618422295943113203506330308362799024236972621950190581247502922422780564854592523198357199567537504154149973031452442742252360881897080518795681835449451274909197156622823027230195265798322689296092345821965471854422722868874935401631054165263870464737938242264116923919550740176056093885076375245790353237221585230278230793498582875563971527837170577176448759049775727145147544285466886672444207549563299493813611421238811624870452563425634119341650236269923499427279883696562025411262848141807116678970623499153493013672871178712091384885205597389312500484450546243720975973679067521195101654910013494942887139013731069204568271766502654998749849042538062270998785165310301207043525638506307414764265455978447919854725255723967081379720684477640350437119324459236681209480315397064840482006173647041297736097595239118772020812857604583115964809738107458183489558719525349710442385134720490081683746641770272422009093095306181776183454218065401591630229532908196878142504945758061513251589138372992594601749578499608499702237350624390327641287664316240935299818549950456329897428662270772818158881022217122424235192621989256642653977977244598069035855279793631838616728370786018261791481786088614649626390090074018937147806402040681137006134610985150445611543469443174744261125661711359751182029904912160738293714492197159850492905579199966111065828124661298977927341455337577007622260982304289738223176914075860155791943875142500882365498422143086643474537842917335337717113908629355549837732624611391869745103254716360802868397895838190505599103294485249074825635991398113459218428950349907595979034070158297932353364229380774038405144004677981038627032066311064956205069825618864882018799177047705930997760040834413514611603458703024771907389792459994573206153602972411659574384693290243897984633649840578077748658893645740885933888897573623312871702283591973703402144920427113928979149217432548572361025521291696710129390584691029713133413738035613859022564990735663051936088971005326603936751951756484314479408745821419169305230198685964143899136722810797142994842607260412402817271681101369014505431409206115394481578092267653335289004573879098381976306321925776112131295292972001659444019042907481394319604014509840982181084738754145131790431281555388861108251881436128279065781098777805005969930751770344891894644459843273805383781960558356881037239540407239315954556812560786032647037860777894971603554335573159004375827678517347793493592703768431274309703101788204729713120069684899225044123915037016925878084290083540738778143434914794035583627147741624074333683716833492981084741668339356939808865373205951692930751464341946972887872873024506507991346733395149914601536588417298717490358854530693261950265344404069914703024265106893449120646609453805137402031278293776139710418040384793316431812501633611898672076197743075020081631888502160873708187129810870477235362387378278894231213835173314717687113963643982808278358464320597744107750675268493120042748807423635860244759708069627031246590260647347087136909853821057063258426285583012676776449351400535769097937550328522589694186676695738168048302801794666873519897318302731257931183913543237475729356915286320892692972547027711172220490188242171634893718842653614518894529801037080800230624268684449455745651973241475275691209579101523271600204315476347854046928066493002246335252313105692854244088479867069127748731659906415729339350656154490340064293620669949133570499557454697893755951464890851221573203286136357089568055627608328098709428377784738144472519183895748021298247696679878034994209939676482637668201478141951373982072250590309163558573575350846592274175009359289556326397257229495071846965998900567865132458084639872418252321766303770526570950200692131255028569695411308469946437416268590973230254860603664377385622739888545476847535683985775447868651976426872579570248742789639341071834710629951062223868443974387338183940569801696058848648354787111217863323315722648731890406370761793909972287642890526209395793069968203234341196785369186448262964716904451997139604149808251362257257681025037546538391243582675533419641775875171765346252541100354236045099819866777310040944476168096071052670545614720220952867265634825540529893668839889436490647948070690594342751589513526376533048140398756154789177483227720763913733115578228898795881466698845062479402923332180298752900003744805643051734600906021451548252157926780285916785425789564547255835819729264275659969269731074257490499742018994813967679580943638644895731722489675097964072016662534812428096948546530730821649493393373295117138769512442615330496227593244803491642570796384623122644892093642196248836286678972462752903017816489587438876236196237882216420120943915833446666647580062691998344810382859427368470390790814091451009440655557939972955288283686437958099242805293131290009522013945697092830184148273680855614213833038310789167817627070682315806067979339158146566285111479821568465812534166458838556823235062818264292367098573808371478218556037216166120577010553673139083516102288562896010027372621771210276419388367567358433857406423617047707652209557364094056293232957425267127616792660800788074382975533435023813965456134285959313404293224379822542260535078412138938587508936748968976407572600363222577302140166567187649812774211074023009968541104170245180559359911589079472441251358057146476811253625113014858901885983006170656633794515528699577795287368374760377761532628670795092082992432630691518808838490401534283598368559411362588140409064387052402270303121750010261469761714408101822797158887087512336753152947683722853444844104074185799096307689568225079568422613587037407633894248178946835764146854274754982943387799553505074982284056125940659513971405761984834000333238880093212521275594090094490105739875248167196913309713513619184217084276068503499704760008181649383671170848464411640411412582794226793936367408406631990630758787905845811432339544829270466880878231692542100235691614068911402341300833767831087506062377376211296476621839693655035353918425688130549271028580069294636621862767944078821821915692764060922280947964715225003870782873088037380215842792904990369253933631597095015059098226829056671302202450529284669991998503932268639043863383966797089147551453186964232429370172843201020763694108577466842163202604862622807637738602369325173747543712275415695925674010768678172542062383785423346166597545545603169463682318396341100666514664345618686809186111772508651532024831993255596404810015755936067279126571191450193990330115339466009797952522473682397461252177088420829857934144332629960149077870188608163760725654200258892904399383796126000106365176370710498061540911624743931950010122785892800635033597035827503195464637633293983558869479010942322657582759388822939549030817806535357000231855988388266443366470962239240715692428612917060931525150105767599659129023792473551715575502628030091682015689800658712236884642294172725616067388126594379110987938460022543974311564256557334687161910564038526362666832910333890400063609496308496836411902667382646390670891621161873973167295616014060604709801554296892635634731244710384572132216706826110371858230100957320733106934806215032481712321818345080544782796511040246255624408882627089247603013739163264245611514233534255071513681760973698310567780320110549979642703525918048797529289130398552798335435360742525053171407238499042710241379741158907407105566279898152544308684270786398761138274295579027481223467895142583162657947064179283818801940713101379318898796312272542261541673328042098606372924580380406776645324372429733777500965690636791738622988585551498773644868975835187767404021707815639731109395309882383503407070488657043826862587758143224850861442527589527360045994334621237852847007962783831110714652075600294234550495477254679192664720328967891725378645614136028320403781488623954995564390329784268640607747384421074643541372339072047156303832477964265309709294219195486603597629790147691042416109240297966221763368660275322889382787383633462104961662784291145376825460392160871800785104603985682772397425177724683595118395127020104362568148657338614636367297102135635582675252490023222777221668614135967274919665709286117540338448227702842031546089989014107891647760760558022629179375713029633870653266664630653533838092397782174871378610864141636212816612150344647059344563512719114202661868019824034446413706254126050387595179966666839577221181861617461221686211881691567720835988448283616004264513158234586529291059767651609967303305367948260001311803459383426576065270127210494523068842481180748056702288927184993669565518164447228553802956691724462964902413337773775014446277114585211513442859751277887524958211497154902490081609790359863182285013042760937889855075300206486928938702738099716708260984230659305364745976475414274379927627383184687708896768294053602006486786019733190185826448396525355400885060985453311116200853961268496885679451799455405576415292342449211790438714048156412140950558364671332952824203959838158881442406729615046749552739403266189320036523040893166170731755167072231295077693512872466027835438043301921922512668088226556580030500702728173504357980466305363078787897495407981275119477630658076405166098471283845693769881971118731336427436174616961677771564839112965411786993112042300480368494167618100117852480970454507200790426467615857247236743176654724675202725695086058658464333137414557268701568931225919146132168863171036656095805234519960748628207607663763859082178306201780946355403624625824903065374263120885058535834763055910036648756335715456229404098198434903153905931939836657820983219010738606859337018350862590535062969469334222038884375210232669146757411254757562407922436123806343057325176390580377656033808478693161731696632365190168322689423439784853268954924452557542713167491264728813888196540258783137878780622685996405903407350244365906964219370358161914577463498686648532230616720934408415788049442381028511647192656755173212088402314099329449582029466109724067995519963309362088035518770245535051742325546778512098309198591159345685393901779275059336503286639870901656732393328492423238142755739686179459209605318525421071697109542730847122490516360697175656713004812982457996717604969820302208324567017148405427797091760679746615243105767464703611732615868969212590328285778835920429547621921852546317133646103513461103291097192454783620827456733325116714162873496347030538206401159194490313094925179294844268957458088740499599800924835564251687436395813833800533424813227354680265730020605320424580899635432070514979870393140062668928387301436523204331824393371807116093351809761826625715246110966289832414273833522877742603659133064605818923043699324082535833550940485335192945958235593920294423442412369234420538926892081585837409236981762737921246852481600033190351774223217284244064024106903997760859197174103569140758300587459598824803614022937829039041354233621258773308317348920081044619943267065237425005965632976563281026445780943536478650187664210042933923220086412404484419766288882093503304578349962837188759789580235315675938530272872952413174852905985387738478212089065195420269704425972606277342819795218905366365712091394763209034514634432035064443785755476958365278423955583806463867004008366704795790735750877036532313472229482268410816116297187522567153562210330102053584793387847441286944286594037709789436112389644280684207999826598623030572721162704626102380179734696011493338794757436879400632867210378932774575528341933489219237865072625934322103183767034880744335373940953906351565250466497226920678422024756159921250443828156996648658367018977706192272944711794195289382390243664788510027055522457203079224374279203505449813853857470665022878495497248105996335184593776241004293845677366327510522937745780402400714656422033419887409161883058809036050723563670274171432663637903851611492336008002389856968606725155766166828243260593647174042139297129882319234873486207354909584369228977565018645359993076369481664220503330139245374243272649662318110878565367066675349855560323456247387505751435219973185710086082067269392365044143233643121215664825037847313995743521689500680784745291770510292536458044009324609429867619590077409335110658325706968086492359178649325436523639529712919712796320463529641356043360136684066097397190262818853603937750892234175977191931750043569564036974764164383026982731301654690089505835173303115193353521448831852488723728151412797076439761262658858408766519782744594920095529609874310897019875770362180212471920029811111592858919787304579846370124549123939678880859867254767336866737546548582126056129708732861526432410121392921558125934659265318581104249370806699354517917617197021119137333954917550733380393195528466796963792436677894162027979287374960631746458599015103434198830867714795401985272896187183405414590517905060555928785200574059619059525510766186999109755329155061792670906010244112457252489827538166324363757655062554045226315156222325141368088494311175672975472267267608076098189911739227609442431460610626545206495230740833462868698696369080814703578086405538634249722926107177757101926262072906378595976776704670254452236173030694610113343649018565515867410542943213468019727358150366847981827397618521241744077200370398805400185858849189552651755681103170876497227750039318124082927463538769494475821010010167584657752279905302742182740898292771818180986621363791258881531234811901074504187494203673329506711731948253861416452393784890061206813204646966534760882516058908909029465152708322249659464546389748183820208266038520496055613835064463896754580491523565775863153281583640249766992801219760237528382277013727286163887588055727065206893715633548880920254809867360250163020044510605874061872440684805665120064041640621853299394774990255589702070166563125228106576194292809397770824279256362665230233655755466189350169538871820087611228863751648834244462747240716504569605792898573279663666419442055762617577012105204010230876529084610045675351617071483640019962493380649826104110236168602640219769983579881854073940454302424457182716031677321022594775640299537385590737695684958423849334670740616331742898618157952748372478684209257925575604684428306132049492586331823923388511415405620547170264049732882229228431471281287508812672029762979569330959834256024447959401163225848773742914229851904743557283347562729165089018943185564956171411498788565692970518253747888731351326315039594369822754066140489410174562218342584076326353246741297041940616954796116260856017115655880771306333056003336067814797372565889562824368527608244851249208196444344669998496761010176134177067163962231314353049333151131844071485142745597564144731403995689951490236127642773277352785014713209771805604966567076731617874966177157056407070083380352182243606814913264293227797702443899055864202806562411081306391364001504776734900139816910307166085060481370440921784171962257379308721886106481424613682211309971297723353785779734074494227400695684095779045449451468568670733207257483677836715163304717730267642726540229573005520412692311131475035091451592151665729076803323158606530686326847028525243371794903037206278975264709950080722078868368149261124639736960225022596852617773856209234163734278269935821836378569988010770319571013030274111133042469610900654349901034634595276272296294645661280236093580437308326366939704320166837642813475320968517331047683191085713778214066450311109442084372724207350563552114930178408223407948263708468231834448859471407506713984636823554508221755431040730507180757948465320948902515105935732817880006007016819327863768096133863955539683562425836261962509762260771727274487331556981534975392465054540691976881857816611183914941522817959095005373974529374899463810220898645281672613391806910073246499819660932476318346536682557253483700370357803122781985029480646906729109746056971479025108855960594494241777130049488962739627408620937229154042208141680541626828567433682007472795001594815352457263044737385436951084960340084979713857406140208584967063255708164211623788790463658901738011422999201914365170411709194136535689521909914408846159393407780088218591951832215710858760908894242361827419507716375610739291052906153739737491059099163478417232883111184200062799820394785851852444932875838068045363224024540529065661669129216738793510852182269530894727695739633366259720088188288883167596297639821813679235618082132345932851133271457345884175118759086674675495222275253896989178105248192732082976698219633859534520994998264826187320016625391154122531038429414880975851084510464328037266863746212416383155457418727537149431801988489423507095577458965895402448262688100508923567732300692808196740641237854396794830884662057735841381894798287225110654803675833160660717427955653878366071971042997827076207428620930965409317692699219004216925897190015446083147378713761153496741023837576290149957707262050241101180219202353427690640268201675460700761075502568427151316132488534347441760811443815318752959863941657582456340305715672902897140122500095382221566586575416269612663785650780862503440371943413493783621844816033880547094671415393339091965668456511044930608392013142387542553619639956049220584220146613421207226065807022873826585757815788469296748615962330203677359194614035828069170689081263392728605577394129193368597324866845699660821353403543702687494177177244744403119997605580391022333506127957081547241924168462918255055280096541509133564040174029647848854224075731762482592329354565682476070431667078781509305602872221369535348962489224177448844130119460194745667505206415132803348086453013516877417546912041245081620074621083291826130427005013450227949660399931206631573958843741991459568913476396239661831929146113508445987137685660815695435382847502756954255943658279341963902588830887151821574241364759912506938665683733945407819373601712136753196740643852214459311065215321179832673549567710658040225987686430626993990570743918088431918529507055655543521637184730854853755439835316727258742481480742716705977663344726604453715936562414167951521825292595004683427308559480939941335799596860576596068567302828082747054813558589343197108393191650849992355057726412851678498073174426166436639056621399615707346565476158190361099627586358504241514821451374917969475266330951817602656363024236680731418019918442535635427973648280374998592556402351246365052810815362779472723430236215447897288763004225822596572120426795140990376058387494549441632977110855521336692230772469768263991122589793755806109175807239794133141898027029707692455882919741745428322707883209281518768028285980503404653178542161976397113738101056379402594668874070222613512035470788159137258337661636851872360270071474277909906522169819634800948090511623358061199287477875694045883445989471057093386383078671661862496372954901601607722584789978801810183684033305289169266750993121585522779498122268221861075414793340605844627417308588439447569591835041338697665808660976159627841368949352398749633405169781625918439578469804871589506116530918777092672543504290931033363895405532494680519158276246089343345886562945177630463273339249681804197114830406147257258513760569737535616799387329252215750757324564855478319020431644304559610387962612195017132230919690100595566606843137615798285339883996066833560196592182474375148921274471880619414936104612633349815003766689943206431136259117216403669278762585355061165665839317592502038980408016149344713534908631447234683811151030852234198189276072933140290503741721873858709703375402130559971095528845828462382505918264127854523282358816766848967466268177058646255653179966016721106532938217016879282992345695667926538754855866071208342511400005805199823993553394611067582814526497613503520124302467009653554653103788223755596781295209779850058242248276306648574645850591889768244278240388465366790214252541735588519208388728667715101517179793470925606137814048983684521661289994145528515547847859653601334762727762550203859531058730737853669000241519105627070484143848746138632503204781874383286961595570209808806245355521072963261768986925066431560969220857397255274142408584381498807264339400037596200493526986381351658522627640103471500401443282961297474175809015919654047383713683964555400962819457117442858550989263097764257257684871043628179395151215474282025632206579508913089695957761158288818504929072752291570457431289039318913489157530428224337989711091594316121863667365406844799908471877862772517390556912756527898605627013305386954951927383343769769505601744889659922856771215393892011230635750598714566674848329275027589784789412345184689987575731630108160973216620403887424072611147524734543214029323367815474086242081233763583908803023520098951867504315438425982629267144807819515991932773870848449392359405505093871838201988682816264189544233671823360132964368133096288960830648777395855649738328654880845750650272035571296115298337933398664566794421582322349277044874774244584810161974629940944782991421937926496484346235047262794700609328974723411995980929402975152147013606958168019723056798081954801244961081937605879487579269361007605917046492536884134350972570602533063705185169523788269373526800548933476087393977710579536072812183529805827674525805713877040572883537336692989036485318911298830159993890926400493214346486671284923280203784395576015017045040734212599943765674034183770255696500466965508212792742946992216690388677693951701258583707604266210155744839806664197077684229930335042378159866841267889754070492214427525357128337561700159083853206738039833399479532623498267661936294163310627798143979302417858071229690559567002654545016125912992468642134548495153652579427586166487004116995739462096207966265363574285228106275991953240916294081092331562256195903031929147544244110878026000598563280005784158495581803408228516733870772106361218246319768722431316649359636238054632285833676334145082253508906676210542743122442172037998390874493885239810290133185431272750331036670338683651588098659605728061586596144877657636535268556387854110764209191495333516078645987573836775296803306899807366505802053612891187471419232714248241557889641889450700069159893204720279552864379013721704963842309214313131945195031185177337607320009811677062423350637530796343066145826541796542402488864835309080093733558748273957431458364426749776175195100868734484971105683477598782237586291384627950414103906514766366567935937075860084110948738625759737762378050542458465267436822599341114925528415357599989960215622460954814069431753488491630497852236429508834782894664202091631471104607002971245695561969995236733947341090971914486820483130381971748810753876247040690710542310304835545521321190498019828058026967263019734067407108401876048129358392662325760363853488015576742815461503414325815367042885805151667499645648183681886363892113023987567181869749621313766312287216732106393776861274899082770798408821177336818932388534164767571428192528517912250923588847912607963374390904024585250264828252048289317339611672745163346618573264730818698474286751687965950351234883971483929615789896499722110591622085042238158346843501774901522479151120268692015568274413228092107103780175723666493251522288940072845932901027174080034361791118652683661194015486331686697983536536333629102752901111894139139734333702127859882066560289836653636481601958260434511765305574712733876336885265785156104746711727961901766868512077190804073451883366809342958492272671534465398097005009895365806148086501597051329184777310211806828993300978181958896853636923523343729319408005682854900350761661492963424992262170549729948036972543151512546751713575496234489441538366549294641564410813392032939278775700132236681857181854094876799333989083522660445363574713662978512444435614186730080495314385344585428886186243235032794547855035155862929111795554525874872389609839727183361655993959393709154869161757178569892235176197268757847743686314650576263519299913002557973120063769388104861909509064614148725817666349529827492484180226154661212126898613058987674998570535297598931084634752926258291820407236215673460597618746916361697523007636815226471432173604695706110386893025922647470462273562352837259047914034898388961622780425605634580050491120475309959610840104645133085825973571964166580967502915271729745618994403252274275510181011685927264403888859849285995675240766557344651254880646445066765958699726443907547013267457650731171005259027943663157644069618727190626122017048200324749953631862277493770507852577708739762374273054447157164149394240757980989747176128220125888394990534974331598710183312809138507946671569791088045382293177847317288518942697667895644488214481346307237061314958160977277344248050805573613491060113227122821131154316362919997774244955538213991082438669826559507802634834485630261564533105655038100996881121798242961291380129093964228615770903086562732657357092551446630054509547136058353490492228899555272905030143906688893154810155719278142248446259827556372922632326335425004927440262498455986135674404137024378072611878202676189404013293696679053304168912609364692615699832186549469849210501317299568529807855743660651483923802868405388604916220299288540788685946735600366357733866623661815594546972191696742634591364491424559377184050779511079333308565069509696963337659285109540756144246630231019049529835019027126076674673503870108760948107765736931415931838639599418617455307185884806111787763368036507743381845817666326837733168733829663384746578325925815041780341100130418278314969532983551061403459116218250247309021614241220270626462823860347877698950559197581192398538291749719523848907332215341825355775210836682170820712158640009806588421673226270865938821168131574066826235715100211836343527264893349379919841104062994529456901806431656812663749604709250446702561810390869379732559465593950070644172056348413425611715128979931713855659088167156777794509756277348843737959801043940802185825952095458914475075068736815934958307735074186009945681019321299696507603978344855097390151923292186164213646945929538254822580650628408736903851964618690984517356290761185654639928774571928328832606205104012535916499015053958796718650657665008705171501605904643556127706560958512853854867154145636268422313268876720554855303272743498177867477896444360674165110877181663769911002392621337004475300546626846429278539514065312984141062513432669348861418834532399178432484748951245288588276277729744308691492086283845573428600079465354789263132541485834489149135278960641670819805809769954100741040756891731511313527660851371727943220353085963817062921106261707487983637096249183456599048568958513393335541307942255619895367450708929342585619784541986171229061963346744471836650257800620258028754361620312822388650416763150673372131389258550077526666802698042667400772235658220651270105468575094450815759119055415898852756269388674090351142416747388288333859113334682619174492643589458559914755620967662178695738580907511798975467326833924146187849484791762121236296938149706985336936365195984129952157679281461148542628743808880478018343238327989069082579686875361465261029455747533270845318463414649963331354303825822146013364897180637425571130185158566554177467393173511819267028297678851622355143298243884367261180794797036847534240168275554521596157765126909471486693565598708657681937054673113134682052658397284669512805650451745241037214071845330189400200858137760111068982567318449297712216209500948901221269079289209646332202409459918371591054637564830770137979039347454856675989836271626322737470451075510411395658547809211648405410385562212167290520134288413654934778205598026421703606093941203386171884574566898784444465847831902003806192581969589202719893168250674585440477482333208352479482427124635377658073282887128606386246194664635723357018723906049241354554240398239081421705733355066159854552508818454851908454588517646197658005587653515871376677262896252119038423385323619411508872565965273646407479418158032231016082812842092974732678586445545292744759568718813301399842190620064197668465327388934923904939829948428974185496677796881253070190510168379818424404603477412328995528288517587356348363772912575536953200135584661094435351911994014510058210187652735985155538843961088571937463824348540734936148275159095568073434185740633353316851862958934976941080019977830263200698590986218601976394807180141308671356050447698377195483689259309599745832040651188615923270864922560751222843803848657109707529706194299950937732682576519964445610003514993751836239240056302828667212855758338980447241375136049280289789989904824545407129390734283443679809858498221635187254328733188724194295870175779718965326237205568208402247192019921887628820358265053916702437416842793019017050911506293775840483488088795515775698017757186936658447725238077867614503384089258123071751162244561173666635575653428285618363824552413701707526145166426516367466463782434341395275457388313207192384768422767805675196822071515089938882657790664481278540969783098095246196747574357056681061786510977865899197647193906473321790494734719086368862962611797273317382928746924394706527392440015249555225955593339148986648692759891264347727016925010860603127769929582867632535368124088932719998271662278080205513613445914949958497246213598443224826972836538138103862600052580126603485374633774475678125927025813771693366961495275286441630150038392506037086086028032774225142474935983369879260666783473007920461662772492472390654774875657350108822143092149922906866373627296127855489411444619293303087258239789349301354994197842802910110180785385146038029488297543686287156330449140979180312059537955230038729384263149062923922924648820999338333539308747652275289062708498035550681790307702928865828529708638699705904717187129976366076918800210600738020575260247561191356129988412729742960163184818987249975350139615047487574078576890755227202077568325979753625318210291812478525391260460548980908507228304825874846777360468775325304923393070313908275341187180718325538103489409845278803506427363815211618670125024495304038400831897408759372337160134927461931538231138145434316941927288647376142151509536064245104704982809901364374745937072683678597281902535688932705817049408669832986004313537093753574602599484768284515614318071188707712661127388467428780545528787742110980020554139377767246378186715908857425118188399378123852207346491186225464016236437945165506846900136329037458581344022743156149423861615265648769750725814999861740075238137305669132542981683658123870757586298967844190442588309572958464759017796404218905559436627043440415022434415692660984517534365068402206985276401636649974696493639246741226880523044729538906593860304396432035572440248173833887658664486014996596906724216146149951287819244925470362547510016521858696112583320721973761060068518364688865972678851787646802950601014290005010099101560071789348670767307364146867845034649897430834888107857348811967464863836867909744477129047006051964109100311782302919745817948589077693811869152663265397259242814129696999336121338557175027174455418906382444996581097414871606533539081268443668279041281522740663366079895191165836766868798484063544440912937870817542625139049391190005260489800563102350849951713914523404892491906217721999827654101156715774063385878254417035253600289191623209063467589163643527050155528262421769875397673608236361174895689598208905330707444404356803015657834622542489946816637853465080463232995925783637530364426207136990368394173310591701551840118224413679446204841486815757784114163372485754270745615000576526554697460080167929641026527724048963622679778434661121571662502031732456441004554119968586608948592479225211973704739672828477517888388567993872407096065862503124850216526879225060791682454097043817663685619388410523303439760243553709751740761780772272691166268670748579239272308937198996092016712736777060887451117205976668552510226865038352380395389591272710324813735203382910824295150343235872896043194726469955401607473963273827731369204478960487157586835628242255701070261886602981063222558936650271390917698446713802775197777350761212696272738540871385365481019875058500557340378670767886223744199234704198429608699231165120013481250079772527878078493482593259747250130462423256619332405248535694308885314040569350378329032962624391985983868960888792733393417831041537164374917823439797337903839565030632493500145370378704929868880127046913946068442513652709157188282950983067265797298883327554119855612421137338516389678468252084117442697421923057487126736788249815062869722605433760312323112084496640819266288817265236854572347552368995976613395727116896232124169403151300805466066335035033466518512879312976899206456395634950313988169443610121430113480186185908895818669665748179067156309702060852417189146095587613897024433761891395560693355220007446289473500160545854385694529625524895286138087485376073717587024423967436762585403220452689235248740819475419866129360959885200955685430565529747354371688158245003799998134038764385690610833712981746270858663000933564761616802780164874605789966748448952089885173859237731303281470052443312724305063703239356059540811879494913468202424079738256711856164165881759531008801445721848990265705942677607660580740320109126552640768523834521720887529085778150473467204746706313213538981579332588637492184211275422276594757325620888904052809328828637617749136528710530344076039553233669652096760514357427426343404800079991582516179067562990298588764927443130440908342788405479142398770354868747248905893779097052266912264326382440804382179468720755792645603499221915727619739352368300588570015228473885106681481878805741540156022731246521425599529932164706474730561050969523941629062705057594358526994572348167288783500803519326878034293181933811902405197629549296756423005136323461195345306581917191540271486974936368735021772378180625843499732665552581107611816230370385313980116294493166959258521749795427150250901035724070870895709525887296595688475782326030690055254296965161767737800298024372533111849862429625292910360189939712342273100525184062830497072076436624175627209925852123350608920974213348058796787361985103609130332950727235299993356685493755226765544725181252294369731130125604870184960873224061071200983866925106642807978151343269491507190908822920960857661784373936387798146549605534768326692614109705984531412541778713032207566815145207895915367279366902555245159052715577159856263864754707834696811510099224905412420758170161861275609697811437022309822824765745285748603790008391341121379111452277359486932911011429173529022357352225528407225134940954522717012056407315037735878095820495751426815708748955383256329144620176861565627570890896367088058146664372973814249944714927132404354238299808846861316029278769622709191310988738224521906532574598396408273383132185710054679292387137542808571787485263981180906640798395205230666074603019589122660184137828041275557395684265775551037514993531704519902195227537814536954990676447811762422097775433905537304569537004653569832592985591848213897967854181018444410923732759189534282948308428061385635425655570945621975307010035996830676061742841912953711260915380797265103548874890399809964982298066469900689155065420745754618855739533623482494924962934955504597447220753209627319616980266149928989247988287196324271590540026518931628277386106051626934128605469573859472020656165505529831230702990326576028081517109806471111543675110826223262020068794837338896347803857094435305523503601212826751878313529270175332117840704660842399326653514189008874751371875502764270615551673179848032356947023901441201460125947550534460751107768483567159458746255029374632062017602179886613879297774782928417786169955943337719491808394484824346386208236103487120650493452965587171437288146841845001737805629234074292420291926237756602096724560649666962605423675699567078563600497531108409628969980923625684172486024879789881230594872909191859702221645557432481548447259595276572932357408848956197267952215781964676493347015833594254952300256282638868699915364234053843316543126481903515119317094845717671723158971141528527918223592205295982258264594222030821301653043577135506695808122460838908105547763194474895045510552722730402288309178975469164610605885980432854341156832477772847610788406668582118027947860736618419731978961951531271059741708076301421120890119627711947968207713227751359236031209953777325699631974320719852892719185592496454925891237835037840737665087312401506845875162442139133187639162116371364426559552439666858330465760981072836285104520213198000382834555307826234167966988280831891634899553203963640221325144277419539138949189250792683595064141457513484825487526717766952574678963431257114651165350775744984163717270261343177243673104298274960142912268124762531240053919787872074047210179506852310187355292975687136628359980021551619963090541025387752921916170555913556292075230766951497750568975144442315242532885371599098110159904084832945482279144290014146073239458905648552724027043179089996583200360204433517057218174265834112466953336064775966659720156033244644980733079875376901914601157602491329789468552499298512118443105037930767012236830241462043300240463970794329430732645769935487261387852262220367918516772951348147969673224572961014583883386394821249480981085921911078865748905869550346625742724092912281802438789550478161955484434846746466368052710447330687678814262152490605144810118893947184169325264443948683168265811581023931267152633318551500308612943059982053797615275032364556919513716465519358862549011470013985063509051200609102070629194982476304719943307923417844915271512156099456673335298003159417553879623948487480091646559458412262669951367115971518216029939250958118959971254826818812985601850806803996658851025895067250415536404839966146950057390536447968316827876826339500761872057074596507777626641341104396599707284298544481311323053901247665386851849281772848877661609826401288256011862270359980240273807494909554372450938885765433707220188918702793796014398965049841972090736739149704146477374367263111564697436201942858287480744655250060727737838385968240300405922942845501632825125536283452601882512750194270893393672648397123008547257970734972719267163583122520158985659311263283726907792731213144973944928631423761205893731214723049803288736173533750876242306222888774697138087375642735437029506050537810740058869773824097204362271362854011629947071172910876626400092708230717048089527046873112292583688186141436388119233395727238049580551973485259559038534947636245725388871898876940859181788159176321135900444278096790374484786902412604721494358519938947122291690709321099583011539351234070407160655434418338643465769818583099488863089653986328028017446823935161174748547007428525799195930710759580545472717660525774385912343372800836822359096000343497029182421623140560341535638667914712214108163121408552401188044614184221347820031456424145080596466713397252011685978737779572500662373366218215001234048555591158733255786144218004822294895741453874642338097162881848435253943635190126600674724592278893615578828627859105324946956997783813454011560574269371750675612111246730284064907780471094975688939112412864951235264077481182332403659842041519770847513419870694215312009473995119195763088802361813260754053344677439329817411168976084017730695948021024100792503249750769483207624097709286971410815843702890216295337511181883470622771326060447849096995133924165940542492610236482076826545131769800468674883788597572041487374943078028942318971236980811535127676231551365740087386422978245328482996856402837657305163420494676281960411409849768318736617818448768901674733033301877150918529404072907897716648668513046574096463560335251417408705564575844816151323506873492895475389726093457469866754503969525731045212478667205440346906403894761024254733485446476534183582854615211030549988355799453065084552694929965221513504680846907992745288004437148608660373410134459287755421638057225990749864322797909324452375139056125236240366696792222530101538699819130337323806009534869863679254246668111440216153958742607463256976730140082062289837749801247809414640863600536173623591534201766768941035682678671020614906780502438675584901078340355003573359613915525436175332237984232538764269714632395347862785362850055708255190218972140360485459604009599036404917807745302244404841585908223432275269787342213611449965717951567117011271062158299081465256890936125740719036930016100051202059730810957046548509941924293288489035861145835813412703897822291028000481985754870334363373561729826132837007922220983973210802389182560998642916718485858635251936514157726868109392735815626023648130455805100528417791449136969067714246921060396605323169640226045931694090702441213289053086104134122029349116617475438969092714233646817370094461411101338081256356990901238247687208981021397263668739768663254270981956061788296133375607853886924328008881873107316392461203482535724828590683181089529574426527408543901614347594143251972956141832674274672654465736340361825928346484286260928695329260415707202577947455823710607684378867331171720582513039840337854625473347518674782937841338063241608611364239273318703414853684113319199182853897361791775676769351378863750389923501488075029566919940523611419336098200973022990458071402129326471366021925839308728945013172164927139162493417131209797434624271793033690720227761703028604533267633459601850438425738635976789813829417903577276681253194045231855249054237876739031149154855222249809119203058469327886013567970349712562607455257464008415534957780472919425937383949796202367088314251178446349694502280848852127336134630172822358752928196445232816953444821874911148833158357586171757461875776013588143774682017466270090915393662637097370262715808490534243102272957526424071209436875950298631686819091873200617186325284557632567833018062535122694939669126056333626389083572994286914711888955794774793141767597224418642721921551372007252144974400411800765496600547114890997643168989080815364802527585648745900534022283797115928518850997905842917739934407890915253107642852872767804658746414931503976440616181271835549521569142904064671432326725888801140823267717839618493066978266159241569643384953146972354071172941659234304350146345891077495497116542269632315480983834172993985871998717194818166640281074764906259817381301313391966284332755330085696418374631374494545659500202756950845392754592688577470078342862779633363577806038371326346267261589856764810075452040878366413523579613077606751874807996769117718361317734334726523714055177914655167166128898028411000788587400878633835344399146252858334528143694154892564310182934928377113266191957817273996231930437471331911750244883554839714365216474934721526586134309949557082240003889333251061150906748902399799046995916221996384155132140580310957636227550537103185352868936187175287875781120750179858920490347162938245435106914467235318943861240069670143113304344881010679314199634808070869920156937681565464333005999904704797309292239610462812060635794565102727320250223506882963500118124646279252052221809892391865334861344098207959110735200158813898764980718676382892356723902396022724525159480609120680647891829173811004314625828334271847609360452640700236247581736744900174342229760954373953971594097113838959012707197010357608812495704603133109392775788422906276466056275894155267293635682326884555428085401590315641910192862089374793789446019987982898010503235217000325360259234809107191868971646286596999570452765411422817691311428483619174228313825057807075654337869265206850349914524130928852373657397190293597571820015423393070853738702304503843467842037358998791002094320570932547165746091406225410122276384130634467001300068441896434517670608274675034848874448560541779575898883744473856315173790073089542588066519442099949995239916167654222007214633065186662180215665730175513044657646264926531306673111880896417653556261206906105512982956927678445192010398997766724462375737128476398295641589174709182605525407354060535795723955066882885408971301717359198350383456542925735305767576930316816600692907101691212803410459964177473165905354807403673891331927626344841891292692938688854279893044988863802143246339440999774265336378465601178769819496120431870145318808368277954450272673098650038343502754374855086425957534124348293755323882075184206067368409526400822952734266300427683166505757485122808598770422033679896828676583278391010870693049626044601769759805884630324080264784814734904253524128959268344034391573312887064743096906527054212122049308388837600579190986317126249555628752762945511662042782956670740617431612905103855056953937585692947105625462649432731447816246642654789747930632604957357092464687140240908183544443097868880176457306013312176925826533390632486185330352580345337708792157703409312929570671204820586558492103498276339903474615777993251566588751426158549505218256876058399362618832290402477462061247236592642473980805888571626094487099938425497227464772566200778071040605963611491509532962659381060762368933200258351329265459333047530542096301241543825333553226127645606813880053285811626620305924396241736525354015816875318542923647512956297729646457086558179909539308299382444731254045117879829184351844372334467169280153700391419625050230588339566630057723923778551661753934982516084519174859934547370950265013332773234689095553887567022132947618680104693580393694854821478018156940644925565573401102694600105869784868949836113578385574828690390400737883676862903953000704202522052797304309586050724275838868732478979314503684347497323057041414361076907489742524832751587551742948786860394582005689096024445467021605242383339615597367268169081363577721289185270523910182709416174563956243666137153731888417922826142483391489683309073753328774842949387299042806867506923225200191946490069951527334405144339119963279875820501686924506495134913573112338408509856802694260469767370914936631498331123872005645238336034976464064990690385870565547666225419906446818627602661398460806206785347250679973091531040179539177301675901263964707733928426280091164418997397141342371379573960302217691486479763144625375302613476092232240912077901611312499195283416468641213021309833331965464079186620605459696797381360574607512924870042007348878333952373243133420120136488806156407641874484143109336037264316947893778942441912304263801879589441470279663776743803001151723002168938605081585374176524437151960745028448919124269113318480201875623494354388471386692413778948288146056746214970984884754940643090952025225479785959811779092339460820956179994878573426311260519034718312810035081081390912408265793756479523134572087362141442180365441924173404681592616186785224698217060599091393951053929260893568180489068805021570888595660285698545583707015065351197032545475973451367991434000557538626485544625561360837829885787829038707024403338199123007501087667536191806048287911956049692423669581490007357391237592839743362320280283674328990622009591705085987256799266296745507319626943856699570724828173217755948537021115347556645513591609518308526447726940789401208112548060104484794175321019571921939132961848157154882527829666167933468217592688760813659827892123053663725873408340943913476293791046334604518260927416927669390462367637321914242345472296134134780516777267818777495052119764837825643419648051473138590132045881938322109009099224145319705244793411469674685346776214650297843173669895331645884877750717783031937713420998724747638900642046872062403379940824563519505177895001747027548707523667539237009098315636126401253930862663912004969580353676893628292701304723540633245470565669012171891080203454879034329430912874712356782351620278848208752556888699808505904284437295141128078728632416413169599950287223122503376098887250215779444858542538231433787144165388181282032288536960078221467662263686714336741337675994348334042819102761110274238987849412761731247995679526092176410188616591504872977435720607637225978334122082552645233268999829453172467038177506251264091196060522565117349367252715883228337420513783938259830494316959705464684350316798502798231565571093113236600221442554738734188161000445011604918114659892452224685062578805224759997907278102652614976754537625295593247857324295411997827137104673395895633694143266786841652609275326046294985267023297214622361363809739484547609371060537572318268700548933442474406144957964815407689571663788171466085612468824474258684803687502453758559722135306337387875225427444094263693067080560754059773348552404688207089269609594093939152378630674732701452320483074054349160035534759307684918929104819552959039186424508571598491505003348702912109749013207931156306851484017435487581771753604190939054460906563842558819922936549359561205268176833022650353733787419552411205970241111694417472653995287057844024218632120418525826910505292062956575551776473355623640945406595268299043765617965997354921849670982792507646868306592052677770861678434529183783256278355248591428131260091124816743843893982012857204618169222237790652413472736638973925034708599140380363515143259256663417143745096766775627599263662949098342488772199225398458247072475913139711614213655222278658299019886763769162920792022393313561901200728182739508501594521397269335449099836417229597887210389618936063035875522711995513740229594563557760509942411670622365634563079050734606149131678893273258129515729531651565718060728816241115839127574540913912510771061710543820000665551150151057757972348481720502187002553864899249752306788989865952484046766643590564639525468519823110691022555801833603304651273647215606807253047784910014931263229717896096700330734921453229460514116403874496560803135568348181717525362068468934641667615932942917231125838564680800248940958361241000147129782618951577341900568873940859569238822840770752698190250858068048186794267989728594166154006252645730403778674032917402631390468852763408213092719829965993764241951668734573765541327250122784612537769879112710712332911162140757016091771873323656681786284434011131118999674525115287887824719208068755634344184623160404041821123489270977869328477013490307961163983258989834035435102743674565222106009226684840680412003243709327850324841497723847996101570790531565696141213594483290339283296466800230467225797476702207325422928578139135557867338795334906062747371533630102671304669994103403817933639447075550098034536520338736503462258922034650485670319722474318145085448451271868514895889472251201940414350696877069720264538389359133685774355477226293471515518666310225602651834314968734198320962210884768237061571633427842332060821601783803250536539479198872024973465203359491464554202751309687018347625267541477531276089281618707531528645738699689905980732912727544509090721439397009848538834966674120306927347439354942336759214967861373617772516334191989054167661542635298852082035724307537308837405487033492716899078687905929385458331418495477164971920625747593051540605857848689437063850671979769503942387968239162062380403662786664144648231454549852513470376733115136264422480274586856562766628606398563691557765988950224113717145044221537378572054693984184916204495168859116748422046820936443421550827807646769513243989447503983085009351592785072844050324842206484984619014955276917517889550764746452969603663722221311956199552348153081738810754103333065178289864813500843007357803526604318593912431605239792189144357978188890740682109705043300312699553831006039585080644278736899414834522161395210348394161816171244732061956189951825861044483416945960880569032459231872989945515488715386753447661436224214375100950479120993994544204218623556056792035545500151373034492576216800374996514245413937440048448610287103052200526159357563416643427891621760814318566670829939094953789519124209815106841735830363211711177002285668196902700101024471060541015170353384401560454008701744812588605310624682121483887816495052101682098668292740159401169968419340641650333111988100677627942165693730331253195359269850756506756137451186107535442131199106464658364904067954065997080685297448702604359001634924495152398398289311986303201310065562717779396101569751290040304023776321424238539741846978338272277302981949174668715374884821449909786996739659898232156005991632017138186601599611357452714587635596182280189470235069613194808574267857491769755963747769942794549097401415499267319684120559816019453366855500106983883586120607376972446325424977795670773507121901084983151438827937998209941984080098694662509448855791826504097068017782037894581083735871568071076801528925159510108459138358232832280142521034928753216338392138828604807140089222393173093791240231744823157753641095754121821498415043493450377085552125067376046610261982568441886415899136666806383746496538250597819380643025352383465949396119374571816810558493291156912687788687048272600304898977379560547707387982976248922082051639309286376222743221072597508493766084635333204099422666815696496261775735039763260864871248727842644141200727273045398884713507270581774194787135599924122342422167928399873988692417756367734432586603611974339892883608870645224237320693758967368247001060162594207863608965846990017528078747898860214467617440197999715206611561242093879263863645840974221953734616199875496691328834904423937903412865579237473124664790526729120637018991173488795467484800190830489506418766048969407727816313107053382949447731465681074157717845081099356164755070857936339406336954889261905423294455088198825486248468515011844977970326625100006900008214708841637620492628258448797407269578504448273993443888574658968327668333940102885154414540892185359556199356472349845428748510966417651014118293711376541157298920889576501309280943537943803759290580512298679227325804666241107458943844176801658667669551875269580646834082663038855762839946367295106897326508354778126899423236281880388933953646925731679319507066144521253489166290773883179767023708327725629449792040723544209891079183402760394866605282196841654267476788550969567014575788772473074147656995254455587328373842956403157687649529626985228353065053996352372227539288908534111429517840057858993304158614142785355854678093434106204622660631033479199725213124241128385052261157146512248895046176104061240821995802544013520632117613437541070101923157003558798361253933479791165336951980004365533105682906167417019601708436288677118311729041061930419850828559754012733683010082978681261243822092280653109486475149420647088022882367313075092781237697797365279718257966015895806443437915396625408608818419938375241847436022753581148764507301169756042557279599549993284844115763743176779710297812865970375183301917572905697848890397573982795857368882037216846587368837943652989423993193445364053177013536644425191259443747143390119897993513344163378747832507585100127589999332724681105256759270191284524917543162490363068592926041524033692310355521383898171668962422202503984724730612341419965112957440023027750980995873886192020048376729514755547842359696029270054173528065623150550769961675373934141163382235472695115930645402074695533386263251086959815707593594615006698392176471186510959487298086484657043505211709590032520068857715412796935523236877712066572810191223573343899807621350647399688438629990424650037639532275047446278547378876703520664446036940557174053795292141239272497606740153776638412538800486246556559519544445072865512989172803916794487840000996043403644969610661765397858608887803702568530837222507289856521229153341446820763647536773004055723936950227387816573245075179900634665656007280246269086964130749092369444041961436363366453134856061615597830566347099903563682007570215366022592610179881555178781419376552081467121228570833959888736624037189395418418361552511756420195668695950539029050904072013018010283726886900417868832783691870923863397649874806279824630270227018115263236925701391528684979391749771982392686442503105441183448498332383729101204590456157412335417580601558231259001297502589211281428520652595362091806439456282997970759621983980520302264896533365648593414061527867221300348118029640420521521905347758565282163068727396496486621106560004817132191270689752629467725616254956668913516862171472900656849776392833480263024955131227904321874089220830071653682446647501755828889532408463100913670966102457164146359372187250140809725555979773432713109185555715827869087842011075796409708469292079506259262993399426282846570788423923867559314677857019764496583888895368756695437273643611174907614549787437161087013453927347550204878329531978731965645168980571040265400305476641138038595736664102523517069477913437761287351636136963262060305518631841135293800709987232231741205354059186833064016437813637980937955797758933462237391821317529918540562230549620145822203040887588997385545907261896157410523692702428581363469273856518510277576264563594232422530873642856660620135462535638245953461560094905617079044510690170884004603017084349857371319042079410929171252930770926575399096136948280102282255558158398422923284304536745215022617369047678689992689827923988910565040614474075839947808858327988862998224425321573861535172771992986835303744564607733528978978685793257005614349004602631776585204441174178996078819404719883235471731342322244173243813383229313302134870919876915717375852225219510142248517272256245606813559776878916158663064954143164190088163998679759498693985905812310677552979795358802520154146890291224108668331158192813540514471782214979390545054409989331125256638745833563407332732188294743186939974396222489758919252563144829475584632650598824262936190691417315764350929038844191405831133797819670849113769122587373512504553646796844162034115739505912387100240373748726979622504990956584834284158362463959210098857072956478509828820181401539677510123897039088165917996810150051890697233488675578975899843299584512705250869591644093792449465332253608547594850394460974620420242511747103555899463696072929268641508054488483400554205920959129298130198563479251242266659210347686472178518317955297093750388895869245922864452860936064107968862943592174920881407183284848637649933295894208586700141495890325636316338222102209897579032694723391440239258362526860416842418673626331561739684544004994965779379840710654817037771684192836941325688111675861881995404133699830282876943133098294724331737823004865687631865017573480160134381995091360038903403092127572683716052364268044186250904452417957310187121215969579890496275558782027527632894485916039835217886184678805762044389366395845196989950025458370949187691834468282156878645732311547318733882556844021786152839395021811019340284067150492754167149542279026629083265157150613237513919184340135917788713444136012038553923309398258315277170378804581924623182650832195398224417360707859086334151440803680320302008377337099015595172551728626308129675339837926294464050649187125853887554615656782541664352773305054164565602381200343047569830947818283972847481978520250149885471881000633805568053187883780366787988694305265155634517993536628504109875426240002484690896322822376613437635841988916582757591726361674653416381324665960185613925068125399373474338763410400075197366051843786265609062792724144963405829993812011551056444940452699947202096679009597173457859940464807274904700599177766184499850726325019535001672425201273032890867901832076519589558724869944235482078648618996832257156768924408266131772115003979380751209878739825823988378982607774708533616359792666888896832080858981710333292541298731414253260255313335608924022159291836338464778868899472347884482654643420020240002634080958305243555233490835177636546565396427789014301390544401769910021088741419898166198141069423188888084203807113946270204744194202798060107398434554948562291296891270979541563908069824961565122725949472571837310652387593214916696141389428320284103658695815388598079147967998412875944719294763964467360427787545576618047362972581470235951168367687906463470027238366854503867150225248937612664134143067677455664240048610800374830460892949979687520163701520864901147865457555260696053420925628451264778865524984695918254445464453321747741222935593336115016576417840382128445186019162037420384317084639308122516022738450023747663771285320248526658463427816232387008540868487726669139190543016729343394090615209021036988089913041726609255194543900679185419807602356534201247991492416980346190349795247492928447493232519797003495942279755794944193103845050861006741329735393206398916072238925755219825465121892749463930138735043678947107023708489724886368090837803962018117440477775766657836206264606746512307970973799247873912618719540557744966724688832872686240300324567236508998767757742903862275101870238759819967518306344159598555993821064426216917073401176429143608244628388724149450444889812631067101059063158185788755863502734780713108670883675780417558265614920573830052813408785376642714993656547068881247690607159185420579203400994696681345733407785366657360736164514578026997961916539368767086288179599300462381849255750484953597590245068167067835775582524348059087372388202379348148731934682287383170639900187250579814459310874892972932435373665540911407981883664007245415871675294698637862645250613052271573220418532341297750643425579298436737221410293454423658768121297586360812602804754484446544612601028580534091576133536492362207599397749954344091711782777593260689260192684097375263190109627299517412101965691438832296829631479793216660139548895040209274006617857130372953764038359275058767358918995788759979625703440280028880913857670788812108819059153276746879425389248981866742833893144243624235636597921215005293261983386641996770209625943197004864845618581779898784587868903629472968012952865299410781800870658548102699445579309590530030121468585880267312840664592832796706799771974969334561295045663644465240815081429549972137195933850854222747659043135197315113226442593190015850379114576950683257897260381721773516249245478166254523226991171677910454398230936775500407137671841958440057656587512492009811306981125443577525849198018681608586626170140780574844035654050905931306809834143581373813167802320086829906750949298624095667575079587788657225096781647294849930584901188294446499018573419443559976723526235469365813598488560698163697605677460613362996402447285929822313614545417645080448808548389240756883572106445991998280538969087830267284913310104042216260887004450069317568755053771730910179374642103739268215808784165440593895400144716813980733288568163492018095051279492819966938250294558814211324514564026624461044612752708535706230555559825733438777984157623772304880160104879294875207865428587347004198898614386781396540494168151361050447735488618200616683145891065378444219547458940884780717925386296522453158932781660508555843758698782546663052340279860577743939422788786417262399956129250837051952496505907551471149434917743780765553311680976301316303229449805413829541937301245828914898260465181995260583217955727139790808752279173177267304762849395863437663602248035688222534195809789260452603170413560017730252145557132055062252327120749573521650560581797479122270476662725510489215267788711111713654652916866001197125401553109539543125713398428467168129702848893835476652699718166683060501280306629682799108448297752140062175255160491743187907593063078385317976630939707803675911780216349263277460542320689984995197070366627629885521424755440758831734538965740437411266136448023416576372247426058616791440853557718748152579936669104954866115009191049057882684056700500591183317629651005057493038891200253930797215342707750529809170456709944647287111516595146433632792420173779087456613992016791310844248203564646467003307962571367671275647969684088708113098449275729752927020694715327090430049772459189420936012175288496063940552999312229802803788409495389894550333361733141277000247464399084080122614214122810705925017306973992636755855258406056897219022633574303089506987868543154671564733968208262840087702127599065540602083277970716939753646349984139228491407820126923025148123355025828774756326639995153806313099968497177958954383346409354449754229351814659389467000379968946868029020350768021385445146413455053700254772276056465504794471775793820281788369903559553245428750832531828808494505107904866587675168517300224638788261747028542382251677793809434856577420061431307255796815706658813233786304648686467602069306869292478401190980195820237357514030086832491368219937349729518021942145838371886096274223723939843831393948817044215998209102058562603970661228997794803527968036266030405748044514118322561710899001480687629473185091914454609051893980939859599227858577258365137900002253515928672937789266102548777511505062079729503196520709150986900513078253649273257589692824327163802989245125031636701337244090514865450638740590242899768064001634940034681915523436653015714171031669051077105474059165959649132457647448689737290780813799974217811311489221823503951287290421250514920814104804071347749936300890774916950505165101438731329613560008677718218376469469992615162478907058722557376363671014974723553964280630858287129393366272556361015101356343757287855376350919575618352426717462588221273296565479710022982055383826239275517963552286377070860853385117701678838331942048470709553271411975110726195134805854476801137979616345439320000844991310149931348102663247148189935884534679551896246135753752090135952534593294680773309884792753759545923103678975455740314873645986449320331325937720662070575297306230253493033313157222916009866419095809178942116477634182417771940565857735071858380809157733224237039409427759839005182556300128401125376885258885062866004395186738282874159929020151774693786047836743317617898201279590186407235006066567226411647014102531173552578965661901451091101347559401787289451034984387098085416473824984308936018503698941840217783160430895374385832977809011134808295353777580901013071885054912315589240458175287348585057962025164724973790730723906263782773767467348642587369863828457158041840469162965109781198035145654815786556975959173008362687488846125505170651571878942416463188830883252449927482734495270940932944838237323937180501229590822518335566828589590008371149395452822878410283067881327529143124915063595876186742707562015529390006137915229116607792377247915797451316703256114198667955411215141912244299363871109569607463738441822201286239944291346700711195539020784024986717654044669680901002319087869605631319525325178209579879566054072243252302399503613032827550949901897962118853733000675812687325319025234000832136280876655509795520500094298230329590798608620447209839852729528754420380838283971609291023934750492948732424491825200569161997209283696791813973670606616967158158637194676637677219140579666089622876737501570234332835127457085734674471310045716957360707276671659894695441438211568575123845811235577604842292979820664946586699327497921418899314913992199987703917529053354142321074613918488181240546805941437129196644208697531518331883136700194892237325617406608448736256441600233556704579412893765952826344991629111574500111700191899228316747256687177911461733783420796021417722801158168583385125659262354604676124390687412490668102892921096941474819314122939051371000918730374512200410902349334635236765803599259880396879378956361164851897125285281872262558397200894192258803744944415362968475595786106883899980473681702185665436344103253935506666346681427226612513137757065548688838261668557082421449065033465122543306389439982306968966323335818369740517886824540969586513256573478844261061717735645307980437398740889840963814873213570166317808163857061549238573259986142589506077330230280505216117298615961514475853709191020168893813390984053984192487793400161912897998516077144925696931918785442233678207164613941976671827608875665443223992778102609086392058565420594165279686453912899494013795431220742746706170009750624758738242704148624246473032833002563860883728546738216152255306195801529914892509004311623640163421872989925961692043566633581051512988065491441387525160751609163792205374273574825239648437395076976544126903414875916082883240105125560549127310113585318040125237371709971795286381802625141100154588239671904280827958889895875732822021519851571565545220666339615609196843993345946962125722197740986581522437911904437077514832968951515467266261151670824398579856254460193279745753925327110045739162148559990788311429994607498420869764583599651381968081549140866184423331638101172243563134705011658530775844272410567099240294143804912831009972693543552967433418916290243217765387470457653523547223501684979045930362757700719760656453664332789437610623671912760929044649559182613415564085143764973684269146519995101534083104509351101087976964545254927347404760587868199466477319694487920038085041827905342249126230539785921219071897843640683776225754134831665817829865964854019823105663770523109040430894594549230616802930765886539545024012442660133712991027761775334787721269392199033593669902071341414746524845366436289138586330413984673482298597441463580940745906273124830479331029807727175985266356917140265657209299263794188689801737456016674629450381533924715345983902813151981356281989944636077281193119563543000369554893287860520621968285503331285290525756381594541232037015988004462415953839638126999431001292658255316299096674721320519762294023319267601520967148043651567057651555263784254245660134229510626186436471716168150272013386704120661543965514240832473028393231815389738802241599876057394581023729952076672316520362704425597852433424309723264766864892222621159105173278637225005617776744922421895323623740163487358868820586072079852239009937130893056206976460539416305419066427357676712423878235787698658556538851646008589276465541228134453220655267076887875179501726964058605285855294560905752610588868141683710277572811333614688364906122822663737458005764383504413636566878024226038378530277872754934766237274991716298837193440873761102422714113364369742857542370438863300329644646994401181877144059876822918200765341920820857468731092998449357358074666170029420705993991601648715936371736795138144104182483340706378848441715443698984242016060595636038673304165087213374169594938837645128477040947433759805277939013734142290146994893397576663215023881533512089687131779252031953337271797974333680688288290093411742393220688275353755785108751559479626136462483989404207563963049818175888674548516233408830459403974315003179041032009999848935437604250727144013335315959156166976851942909988339706714635332600758715542162634231383415091408833625491196161038237584967766141997928287884181438173185038129606556813560060139759002150557546049823332152611358268425557628247563327897924116136864516637062835151874602067060457012653325718059241400315379780271655359262134208951750219555166846587644497999547482504899196625625048112906553448486892102629317384484502158644642243883301401539043283479270619926576550434555641682013032783026316689244184463873466255302435091416574659234803518669841529201575288400178580339181595308378663351385883862872487799911627435719579547645537786548446912471471661010217395276591000144684174076056142389510735403954172751269040148463275671838538457886125253499639160195400479665425861633075842180016347050175608007880610152159662499941607272650557838319902240129902869062979752099394844611737237056544270619609864143654020570569945364995703240987725755859479275226418857148827812519390331326856088734922620563951534721757621210947845206455670860871692632642067070195479200142139384710525253269861187090423227966898277311946992373137917649670586902758020711358245341312888275520758301645465481206640319296090596216159742429128352858306125521204652422561937946286416003183588386756679339085864549490822594489899357123852877032131637134873601905898944731075636417959611035158769108464234639225447025370365512422062410699115481634660797785605894520288796372292971646281003115055297142876575862439945804438694866933317827345824860966266888765913631324011491896673055077475032311829792171808770762845811029705751566017967158759339234654643126115408647311585391250361398224210702079388824524370387304999490004941086088143378745463941807641234150880801782896474556887536964182066368785238706568175685765729842458110598671871805742785444141739805035992309023514158123104438603510143113105219026393054874632797130303302860913698039385069604126657393526537040273575913833007802668716172577127119032855125270335197811800122746786595285438250740981155652323727435838908466741942638006242159069320877090179360665401712525157088351471435174842255648741803287800780442122498964744790432392437871885700339462578325651822384848893180667914974409736551007506409965321142226848967481105528821259138297383624616812864558279294832180631955387713741708044738933283160819479178909978145513054392514074029855269477366751046624727665329754838478022702172149897781508482482308401701562797445634129870578759161106212579685376365299788065764203342765699028425213414368084464479916341949959353350736414229960298435795763518869985656487345825782962867749102799152664481807328550744433906834620636980351762279893165442321246487393891237481852634796606236772151115474319126767071637352867423696635922010511059215134478728869138708662764952306892550253278175700698420699298434680573764327513578879115431831997848812118469671204837830351802797248090445328759914808310409479722905410604691871672622800003640690615794404377518231385521537998586740404173027501331651745897556071914375845831303191779958407617809761019556709915928346643646525231673767444576259275661522335055989463877696108087011479310936817406909191260646492806757175669186627949539621871354749651123478874227823404708385784689654534229195862016261121590112925128671421937581886726189802737085803333114362559266319526233643905161606040420765802511183906703827853963370714882103658792934937670966406268034607280851560254041629722720617932911828863456320622580834641495063186130890490546014618443237179669814270198810688868935400141782886379577457040545427264486795089838002315927888796249466479541365277929656130734875320339641374648973194809256419913085584705875962425293438073665849609674154049389727045160084280657003826530375911819712711049290694445735077738785182231323936943916160941635179212425607520991847463591584740244938705467976972749440054447375389367387698106094805759689588069046865979632189948311355362435417959368554899541295476276661547523883602268092723543817099340378991565978269804313656387060578781778194075594302577946502614868342968273203734972844205164458077802914951948797679270561518526645031744818970869252961079155373328914050936949543752986469381433177597891332610123885142129621963337915621503012265310553636466206024266078012361167099803532651117707322848251764591340158914011509599632195414123211651649988260488681380236999493703854312260790692111053265499414878507760992114330751889013324106245780358417698853191526986891886690993346051009589621532272940905477435198588315130173200400158967533582495662809523570104397873330400725025269778703811227051382200367159018873038516951992599473269436142824525455991566047306639328696737694665977460392278262788084108161478966474415762251210329765369841575226560873624755927420891692295987423251258751393442157277964892887633357481942892183017630934630857225234962058274713869147504335227015694393197270822471950717746999541651139001564311380413591426260962535240587070062695443491248348847965011499399945765818740971959907803667533679112664132655811304262659547842503719104557546673079422641045115507561974261220363945965755064729968574393949039544152704203494891768616364019046929635953440330590405708331354197024292413550663298813495076151594958849846241901666665944356070923966560329779971416205962768088505457346060636166995013256364762074694433943356830847719902582178173834456574049779487962127228958181621190472019283646771481547968568232137367557961038182682275603990951740708192858530254225753837835933704591247980574072814980732720497967124805319671121358537897986272361913655576069710017973724835053650845225609879711539409435204794924599504674228179291635098042527722701688913423152891531865984820419019575707826959157707988153108480690082353820754112513660147057112799667352496475181765704662910706098168511123907451462744256568811358985243478220789458115966838917474143189873756339226281502137814031957804383241212881854408312144792094019332182323234352840480024988062652188057724871512423341159350358844645362035897246410320317887174734445773599673158227572124637080355687829243133505352766907402158394503642991020134877393774785932865916493492833841927896464478934687153110243622404630459173706586183975349543521064109930846958392751938105005576499504277486844727282916934782003901774775640011007868227511049979638144940971875402338671950829236257996895848771497584237119248934107471559494880116803682560722705026618177417555428290832989053251656412306996080174305430972919360018439725901027232854200670902355776819515325964704480068272024384075305400549029469455786086689832843307439054802708622055481626708849546097752426167545791686207842277364722898287952032601183907524059464279395050396832984917859896707848033085933293589754274271926486301474688803164742351249694824780293099827619734245064341632221110736715257206143800138914047710606065685352977433068428400805779113821084929325630544273232278583747764171862493209055176775404441763833254706670605785354945058707568045508504990795507013014915704001163132252073059366435735710083015400915119718038358324780016570122696592392399388540958364025426442927878117060212867232075129397693581773358439044296900199482989176995557023989790071367559406713813523732778052146377178221241812754411289881217019762000661532569361671718289873286349604262030423722139385725229615702270499397843972653993944429118837010492091814380254673774240141789377924401690837285407894211442042957773119753600239833259041699373383732605732129443971175326769526789875709138361535203853387886863951423258182692915345333325140211465109333183821215510580622082522728249707174524493221927038596651095872110402136888859359502005360471654547314419275107176222187657406117850591821418417407925817163256213182175539022219785770646976344131550667848484279024671052207277807865894476941042603677295989408469428900331287171214617231341920704675958516795080856443189128199012691597337146101156108636391322776703572661984268827670676638581460903331468819049864895610407482975869000571590347609666577379438392604425153273208295830452999462357817083917905646433626149046773711628685321334228568022184907619885956565163200111752776642376782956605695153810437635968833168141839979698322889770091738016430480620503171538373053072187961863210424878145706618668473076731291450080515139638550942476878802624598272063292336207926205933721515285649491686483893199433929422154840554314390823499293136910893932384681470263718229473907021065910905496207911840216291962785730291034526615685632620696004092864279047267487096776981009258157380219425166921340808371283228813518722370579262611858080839299401382820298829783241239669637880266682882398397046603784827239863404286555684218253912711937854661919973957285620476668462740672851573229797868473399178108882883969443812417415886572665035266537657061794569674180205179611495437929384780468497779311935166577378423420608927410954086452277779704425518153633656565473971926573872956281008534558869503818530276243889366306997620968246567445699324808469603691690996705400069956656016329351992846890836350987361184555774030285776367698603972515320218503239985561993849138413552074104887394150207049123246725073500164129899061009100763105922783763639441448881392622039175866135898270052213942459354897697169223682508728944166940255910472654034363537595523281578585002060391401047520532932968632728455672249422704688586870599724159600899419632603396741602361676565790388429245571723631967528473987253001895397537792600011706068305392245786747884633849201554899815429100717887426777654921710159735907695604906901972471156232681655321198777729827751080939782128817761931673512092152763147408455710434520146627060628999005402408040940519972807463221739542427874904394912112117607070487705338937601141748861255612926077974718977113251110493899630990380424865107327764874439176192556299834710766857433441776444505874961280680809236182722697257254707275429183973675078890156403640035640569759685849918993704036178639738192802439703574122723708067387094434763670817116559864819090550872781735661850866514063579363084078255073231215743815763786947498249639326887720061122674355495132418732949010441975982836092059271701974751239659018843584632097594145110119754779144652192072943369171911620953999563142860690762959055050429595550012872370401130399808144174608052217769688709122673259466374372702144233787185087086643246383350834886737151826961069643728217452609187884685195247176676538390531492853256172465669338188566003667590047874300376909906876014836491010720416601803099020107847928745892178056155510419761869568711595148767764464378540730263072607885438798684343096319799542774102351298723023159871010320239313675058876180255101320131458632754539809615599559740275381552839168297688737455091781636298835878908738087711721512887693572026108949413206869156317622827747093424424485738929195005574817309494132197030604878453258986675963654569695083426295635026115005868357728391443670076747726905429344025243402914018274234859853477042622260117011928711568737301904302144268803196218364403562935281888106439646184438577542197207556166387040526596504866354894814394959639308339802301657927546292706580654081037527989987685981924924009760520457942266225400936077618386673072578999485638923455827279865664944303867891787565306770005785733260402358885923268093521569822391764618012763202472459594231269509130976459363287136635899752687728037096449139957414547818102082533929618344224806038574662571444429449729185663559946938392828033264249593731757303970654065095525511544306266198805824802700752803682407385499019408174658626732297327694231877579917996669916595699464836502164499571553091891196418223562839653404231038281309411195872776113735205791745142160689687044287247381137031005788451576267216464966117117397999626058254562149328798416366269774174736664498427442930522073721906064646223180799738970418361437770113866944985291844902208480316859912688918785118017345858185011184086840345461751804436733755671118875152050148081359911078956662063304871963644456375220992362913641855849514797947805504202185572051783138828228777065616387443922929791766252436196338845724541284924808088843306263135103004274435393577258809115591878548354119606102961803523845871023610724688031760374550187039085540272853837793615921045581319158334699728761768516691175994185538541445449041578781642243567345661183138366474605033133668839512392109621532167037691978007574837965529971392259002058388542092258454170509858340502181270560407990390828379159596293256491527061399721566789831794713997759235058231647855939085367440789205070774886424829101987185941421688663866233135355883787384298916721938498316172976238574343198615873255397181136075653055611451078721898996615786211947692050839621400646243290077158451029501185697733327937448506497598748140449769962439615022467926216734920009599747846239771528911188440043997886815359768158314689922684784225977404754033191122082677024603323271370274587793591831875963984306827780569273435970807684034884543745708444894454638233813023002948714468396461407139427880488206124867605181756075030155390006232449759890471936483131719287286589120343938011408554673127140275926473535322314663846230857082392344588948173973509253462116743696880049464771951332006150498496727884696857382390077405736317828706289243844358887873145585867608536564400793353704196150943306693702081436669809776052458540555523631706354259830343438070443486732602875389402610239779329349726419908488248603601675248920537713788807640757294079641679075165698618487205638327116303529369058047728256995485939973377538046742320756669903267309080515478182279990004084738035577929649358729584039667306560510337415893008593433353983398560201942455047448047730378230458141515274520154584641332386735657165047734400428984310979425071266744646626854860690165276772861323257501952116926795523459653569814624961198786233881717288985722263567285159438427036369944855882440987173502304606776640130143138544753838777072596816197268163183641752759224520190305160714646370858738019863015313759622056323776191331238355166884724808108648516533679794993648353393735479286847583920987829214908112334715876683594397594293817883847671508707241457092511713092437359306657768204511269226401248054147869550890244036237220218110623649147619319346091851001616758019253352279772308571111069862305132696101561447861110678664719361204468964666952781081253840501840169590717832918372317393931465445369390213342307525744039382449821462920906481735124521529061522706457888335771934698718904342130743669760071959543819001974698717133871625727973328550172031907492465145623078448591783616903907262369347830002688999375179920618137631765382511495456342243056213128043811990099703189376741939016697348472255137840798535211558104718640187807863834826870492807695300067668553655110994945713865943400746058445730582913393106383740333127148656255704623232641850939685735214176131280022264255994969466087981953189467765855318442117034805872265828173385680543811656639927861416848909495095547028820632132358759328721228885571539848962401773995233166166360383791555437061798190033179788315961686809808982404600482201027180754410307778027808979515353253108377473656948554597695264771152363753326223262834551225588723806456228942439364751896191414567999173065990772010104805174845197361001278480113157688429950689133201037657339355652362099974648494996629758144767809617018641280962681237204007198936585405781127587819436811196937792471844607053512607054538250524844205152518651193067228384524276488395772953222161946734635925342177858199528690736672536950769505144374572228776070808835917827808105038605116429920602655158025830196792782037003439998901387992144744400808864814724198605227888885462786922395536709068716273240540904685684604765920081553531001719116789211059675013678150415220872515577591685320307642911794850242431014187007473622675591293592203221619912363690512204819791914047716425202061677016630404310499365277113858470135665996748207515958373378722284786313605092632726970673836618378411772757321043325394949623668926741150061815988975329771005172365559273299272890810034984526920474643288812233268293511992154657082906855737164294436505339490495304241057559658916140070062441025738977048730614867924755757833909800545116004629404916883053494521032553684238253640442472806681474949758794681439543476822193977504310840270690014030119570889403557623945018392460865009115475049797543717336031325402854543577743082376986402321777148326192505740659839883340248753225061195741551494204498191612346096540406782886943048862035376063619501003544448979268019197273761033828468410049946892700050858984672753462577719626880157861311104497819426163731624235360918943175548371546530459506864780473807903610993570882361928983115888714954299925933067126310281765880085211809365239737207337766783090351083321104021252645562104786084746921811925882297587471270012280230078951638437285652134684340346268525257350782460673410376239173057174751393562578618486244576499706497525079734331082608494279791081946378818187514550443584882667572122758363400752923782461157525839618315294094417356942262343723764014268319391652198803501246253803972754829524221128969199682313016086196579498952065979979363154557170817856117016603954730907137375649549684916562779680613934796659818587761175675938507776535618683189322017557751155108269352457567467400201530699740289282320372066664636013860485999868734504335678067280335264345579784526231341457205999016029160802372840511484799380794168948371150003949971530990606926722850825152484077161497371275351143149226313399046380300975906267093841050233152179034883413361168053726932855584492759758981195843492136746832651985461665424701703425592652947232896203422729116132546261234562002453365135701339639903706737594661543492523084375099240623305248776739643968445884283614692339069655206420925312538553717116076710203304796452199707793071374401196609005126948215956731007594494150924277527204355082576983947532285002770643013534943602971143747471167547240275513064179346470142959545246226273453582292480586602743490780056734689402920249114235946077070422930491151777797748797204214012509947082079985433944138650336298865250934638411825573107250556853050850230483138609067192916435644251604579956088051884764950053694952672443385575532887551742043910013190260656608547029377065448051005488978820145640776281962241077686660704773320165374020017822794482226230657540612595049346391497729004252139221021646708995848076999297393671601828423572848607446817221000141249287044705470430175312566368286267033307787996698339351299078097835975558329299080652715422983407392665358033778413803953059192291315669626050630792092685803794580617719275972502074059327112462452480151452457605673094051671390768165868260933240513408132219478667405475425472129425788017951646085076706038624370080721945866481865574858158956846885340579500848260315167295803191322857841984879133751292011687138807917077209578199304203192653324895564878488008300692732546206164949523264326310145306318977850344142885390627415412313514242868948776889291250711806446654521312154716852943402525513187129708694029405975606495352800322608759407538069702669485424696351553292862832830036879238009382039697576711172178444182329440269680591674240892418969133218131118532117070779668661660971872416037852325545587625716432535682447957079649816731352959322034611891298393413572924275182410191524032062375862296157283454620864675874489742023133118228787621963979976364825809831891505517281349451408435831026470313067621139120109846563351079830003839614229911073996914591420057859138873993665714225824043694009790789329139196289755708564417969294322708533944353967303506185330620385129858688791419400555864083584285831166789552850798536351577540819102938442457991950084956798799047014303039335749092146273530726730379027629444437870377860943859681115525593041582859269917808599993158785220792661153432333667479932269473311805297887666719245281898823734541828188298389941811848989513459067399410759665661324020027977530748120281924285024655842049941307286484568040405952615540654553561135639173860788743682497579056308524101323640114795945461017044018589087751276601857707214580842085891560116465247275121757601805532313100661919496825374190087570402938326011480045857787499681239415253127558104500021676229875951474782783394293359845990133750820815219135616915078584784679042844913550039287937662444272657311530639845829514028605578339945904128121093006528043157979850088952244487430576555611944824711891749632597039167626238032692654487860274677242103824872393513044945059273804058501617144237363817495221759903264039126284014473435526011864266715646094221944544449567198780046300948601724174695086747845927493967873739847052374887020257105621125366815423365788115939086668764691095639352908668692210334936617842141628109083393045129724653278472112652187142635852028917519923081527114367263574124456806871740829384651259321383274090780635678853692838548889246856618252715999158501967864469832872829750217428363455754020023669070731220582046445452403492478250829331693277468195378412192827232220929648114437860915262125157463140495260491906786554806078268945489107982883861178240078405147316982637632068518430269472616539281264023875732746797457949386136655887716830719656253116966838647411928823179456041076671666991434563292598197098174290115952740518538200993788776519553130536513665250976783558678847693900226396747877116751415356592901826374785092054428319530930664198793724447817871904256007698125282550613799844974492853499456618596286662625325309596484324423790044416445934780418099479010705764135154440280474404798668499083186308241608225416162381502059758882971202121695952697034094136164402611174669250752314554039177919745042052699367778794506528766970135159018788721350532588875181360456550436542418530186954901309998999392140724423989235764221723762329135835784420302023865809435896799430375824160494407735297032593206130004914047424372696127990136572835806325409719047687136097116971185672475400842315844153151998788015196163848017959766886692805124473512105513238554340144974350927346716422088731076697128664529267822828429073363166141703713307906019635223845563802803443555389369873922615712790967839799966596305208092672459161492981329602734683329835104625745565528249288865142544407570704607662179747983180613733879981779225462013297595848114196756323155145670119988087116238731869996793779450066450961196067600436061351503499336812687046502672679150092304374639570721763576194884925418824002580527367524518498216646362052395510949866602625839547134549273808758655248531082509643632777304312504427359781405170256893492866572033981200229776342401473921822895667510270628530082504894141122038301895111289673215932852147425231620497208373793530798121155291738953128320892288911099619729691075409509058618812803340253209036016389128014434417489395164248715249310529472510985507510344679477685177277847101817502974826010839537572756740751283389703221921496784250732954922617334283627527024624608292146000844700797727201629032189855914467506210312859148594040204390726765040338826556055615571071111123107185342553605754788017238814256345406993930835641522842358416635365044997341298148444792391609290855960333651658387544439638971872878718828928932733052992394494394364996412724470845806471479164499782383252056982246084669697688743919513199771944302908519900526461500573635038647125626138447688862752053394529695488014696922522382170768604728734548073437281607152172736970722293567530955786431331522528173589263823571162413927628137661318951033205986392184070275399260188819806255358759616859965437455025319699563042128365403439494409010342061866617458732297482457536789484638225468320997492432786132482057345402280389893010185162818430335915694561243660907747527113566311332328634352286318884097909755730175897585648214028401752214156055852576315689431644100022959612577004507881970920988841589854705379429999526499419795260709052793154074962898433343713121326121426642197732815665681674539546632733653547958489030155502018591425870380142569363516257795418935791198140385614621142649245482203365435460844734416479425693804861958655382528199289325656347023296198704871358612625102830838894397836141844659150607135848578529717219470063462010815819814092696765092162801694260992645026062008738590680850857389352665793300174764159783545656031605557529892772076380690100374923577870552728400298468112084407505517048771490531383518653006244743698962576557298371160617597397400284740825893086195730963168475045111294424295784252923703022128965131809510808815269082698045756667059736222810751101547418923890040350379106681005556668972244002597370242750039149840835901907056260586621200066389800042713847327204434992449548627928712280035386758727347067618857461989932030428530481286365051102372028369489563100633770140539974123100588787643014616216395809376592307068818295926279561647625478889816743818711325495472993083314348093964781169484261858401948321274887499256869617857280532170324310330138451674786564992436013054390349502261077604510346372558675767586808936573480240710625182432301841812962305443526664304483470952117395021638710610320486973801610023892572818773479269016752170391560615950948849354660603780335602439634011106998468114640925395537768870907710300544029214123942661479008681048897030315244257151600892227252931034179452914506325899768954824558115819711041796464147885616860478064148898141864182032506996168664697421186274891247246023622481523765908871115404631550474311830589584815355693364743926900008770873352915084258631692638347107502448692876016371057618499816130316862242956962993602345055462416538219487027477260885833464382998172231998154835579180674890715546169359996901112030097033755748373728385531061382663269037269739653121391107198869283546857773263591477625232803695067215368375065252729764014092556063918732089026713541112898142689674668572591365394537568060688624643659723951152389647178841124586868420457430195764361715347164032754618913790091652729934725629580573263027095080822902455621827255170942574065177202887881387109004127711126947263570309025520352383881412157196559898535427310991565595939680582426891517980371816972522930933480075887992543822375021073886090511271937634527896073054518705162570562845576506442326592744328830239382786374172622498724462207579865213350037824830546523999282135295095202002056927138415772597244227186213872427034460277231813472961367559023602066435268329146769136359768968917204836713360956037275819418213059652071915835464740558032743974289871886572777067942638132195320893996029309861401249542284535985674852711340623977345696619534007337154995827438207174665592978133482006340669625496885218572808607505740299304715007976895981981188831402873742249547701854500332725413209080945403034802085927626290381815415456318007410906045111173557661724747546324621987031938543861003236798836923221968183120287995445728399142675264349328536153849725932249140428738076738950762705165920536678579897118006492499436637360202598843202246117658420693391621681074132084939258048805147853885167907086735443499300448621233063431792376959493175586065791441069529487130416486990789907132197431715342126033528342210767523310217461190021125371089716783493299133072248836748868124773589687350322009381279457222754475375749122765653372240806441025072429818381859233520103284755503168155409460880907402431960700294442871839554040533224019982347961210484444051862759389420750975517894760642634212729674492426261145321225642831463237037341798843287403000411770962446617208077222731627988140417912039989177366829307540905233575601752242446874600186170340230763987377336633940135390840816788739000284889354087699095520165214858392409008213793021356701222301155964356251201778899200650049602958409094531188154077206532924982146932182147839522919370463032455876890401743734736055483320803399894861195851646848520882036134028336016182860094661404115487851324949936830598974370531921866657836971960095329926789703443736079272411493880992458434682384507232804542498098010568504378654815231221767020818551703586270318961564330916782701334903170696771409222713188279550963958608425482883777376784652943850740524171471203083497184695082896929072110062947888063854649463452667193832620288220107607173963065414832088493291259800193131771469138014115011717880775177632410841811554358175949772747440829285531464995714192921420008332294298717105536527195439019673616446848763741815540963539210060268000001565980376424861653723698305874420511169934343107960065061273764788897484767703869007089070340637396293992860883657494042499435773797339173228799472187674610776946098460708646281579258961646685369875748150664831506486545062969710580302527044495243928692235776183253824926896224736375233532336595735659560632317290989284041683892566707490035143410080582200204358164398506209183286905680293159917856049827580643875888347497554003676400195508589874358005866836130135813234060767307004384338406225631354175728735888914655733919323416831525358587683433022194759135143888032498053987993673407970150656545423017249727294912661496649929033732899005353906685967660399469478810616899202856308075911022389408246827709896913389359888597912655041415435570634332647133706823776815639766003280468884486154335457252864877558778216573150025365623905045047332780007541752161994560606635951315543966391062271267878092407777533569747334927370776174194092893673674972545675419933969002779244865788147335343934828799135164013733803746688609781577555815834202440459894000002113802367618496454227812262062758155097071233643711604510875583071829354917683644145546138187076462670223041063337152612371347013275494104000883358166049288585684092255965566845058864874383401738993490032566765777695245730169735440011810960708465481793244270110244604264308562024590902362452313103767173491116900078346630608687700905756982965105069981637870826029874231625508307838679572494143579525644173846901562619864878661171701785023605801207503439465990147864474801164110763038062337625464198786294104740069098495526385869677802467645249910401965307995486699091894013704201714402686676554518163491346320732196129743621905368481774710508046085330979589564283949094911206586204838118538608291802437054772680439570688513290458456773406546346695891761703599408850946482518492852405958474035237542913264174616481117614646526273591605808849779000075736498078832857116313224426778474440591615052144827546040621575972417919530110370658887838237103012574416811002910219654702224161481670944852258600484268366737427621907708624443035308181010287471022785594022466659949228670056423486835943032935573094098745713291284713858604706747545028764480948730292428623361456533014082486926255362131764420960283184219762769707620772373248426427200795398422033791229487229544799149059189719824490040885147291476010719479985731010928559114299716579595772374967050494808776246207761918366130450681090255422802593722516326950600549935224555051329272613735554220214350801946604949839807524248036848514832575370640949042730723487082228525300367500572121451799005176936549184404943052247240949674223478478665648314993677048520637844082672338029308190654836412304431460540688815708484404781190733274596312491845032724860930294989487775840504317070714438447306768799148738602170986512082345309531969394147532768361268104010332690698678806836442888640361649425395699118115598852421368010215445632604684393701443951671484237153118164837204955659702909237048366330495170121469210225549469752026100831571185425815483681213485859086026970510485519484512199137431016748695807348490857961545352116254641708835587404636602293799328986947702585892424693909037547421802230130208970077775170656867409947328517908561653764604103867883948658813379497550009390683720345007811868889864464697866724862982852005953400565051311572628355713200447208884495274719498421466329259685211051833182261020040156362274484219819614360758758676326790419975103790856246021638846349344256284191122201843209063578195635584289755484300270935986802760152093895309436895410003089349334059559688382469330601421745034433706838442289194396552562483141114486034519702135573100427819050732721577321577507121137267038031425239463930704268653089619593732973168007194717176050857030638030391740769066395847740891632570868149124975419176560650286318874664520320277595928551280052817195849693207301251556258749892556350464848376077206129416694760727148778960084541635163588486462038330483535200675748465943956499010989009310599162491206944854692868669914679690657710329985954192418650492338166339225127118574077107390418536296583173088043123359822325355938360813075137666084295703816615117623623394989534494291594707382668380275818635597781895318423660130337919610071487785169063567036116881524572503784725439849485634074122878728441364090348506283069796770093612792554018015442422647741741893886947295375548997226017923574601228074399312792307845857538384151229667777783980806403454258485624403067047078034668901928195875653616655154101712742891890774839201711978196558622576385759396265885575633905404515353163841282368496281875681708365686732740323479362615502111401959977725463936439981011852697232166147643588892397180270748631973799351157292168255564586531521815306743893049142468645792768246654150965353720914597094260911724688492183869308568536180136691685788522711357466204629348240389453439867019017917535160720948666449218097895836918246614355714893290914980157325704891261903663415428095204914989317556300616062689057216247688162015272641592868438230150573206707530472374723919330947969270872590162193502967447052944386850997775246994284005565095123359740848586958020483893655599815184555721801716741807482221789100927318960051395708510995985984338564397920513976077376745242126766490192405302563775938909043696633981802896517010754850563106616958439153889555920180763090603042647170636598506266786726216035084336999554453356022537484701178762456182546838787333110713758643733361246061078274184960587999801262189411142224045033110896412010362367707825540857257481617503035243357961887628018605297480466585430355576555750359284874821035776362998034955749976245367059813866291661211356630923544567211301070006620819383003171338744590785613812372619409904025639469873508653697075646572272341103361151083838651670300868034262906780879480640601856285442163646678564478189158759821438164761927203118759347023765354417502510921850563673460853813649896261363410523927524139671421003443458914520959264538917630777092700661790650839357007772604137851670416377129094275545444861840661402349502328987160883478709808882979525542539945409327068542812892508369978887047432395830528104452528770592920125046229039500530683937710689359636495937768278888985225579096559161245714892052751431742189992722358660075757021080229529396436366753738889905469396715377065571675863426411437970739380605681117838414626718284596376204711492596196504925045835935450457397679736523097177438752897662471890608075932305553764930686344411233204117957956359789216521911530378208408987533060051617086246413702925889455813323372321232692412767717112659213612293569673779696676107837828113406920647504200521756245521566269433157091039217641623451412366207529480954393420545942768135845550117141651430298449154838353850618311102442263021052924536417009991883522677242016957793756652624967658424635600508126813697817311564648127628856901244789194513215161298325263524496229765696378853914787676103258259950943196884100780093777535851056076615639853344591969843670033551683230975804149402552846958430453257015720420364601091120664330111505671180343525095397865739656088846829415465905852636023115483738621790369256308714594680337114876445782869793902923177442657971663895213925039358998300662001541496672534758002906074635784923923387467256865764208220961625237069621036456662518320943213482229914528134028016603159834779218910250767102511887710725883459142551573807428424824139430639841405181990527129545441679441421048425419974255867883827470686685580217367814114253530844783419208103229955422121719418460284263144428314912365404168303853032900612307652515064830026658705649318609449124434012324971741855974089338252823276774639744115950612043861971975322917829711923397452422892842410855067460745907986663589591455828824722096212247735731158905054164757967359355029830237209700786489246926420705674342420509629923266484485769212482054745590905818268430119636899730791245847415849560054647992713117304939002026984834404729375704403408785279718791294426706373378579642168876683472474020203922314808522372207443283309227109662977238258967566027964168522979546847350053916710169373591669899967129551452184361425062266654711799075691715469795938484886977842446397329097928784554190935584309701705128980551810921469328355056343889266118903348158408764641788765792473373401519595042708576295684288846735338536223003956833103298525280616877349156637288257799374791793517462829847968483619505289884369500174800971696365766602153273161847037519815800978663824286682386078427185312004353070918806980015074738992581083992649450422675504926910326373200589515915350172763971564292878522033589725843664679533459680110225361300693942118886883813019767489167334631670638729617855961022746279532571408995896669283331409824250705304293033830806105045036830253099059346762442671050350188212311668790585706307462420869047591884192099788257331524694894166692207123734944931196940698739104188486718776570800459835761348088952151805169902175361250862156801866086225521013843635687021122797151182393658993349272918388726818159234060389926875547858653388145861155530952603767565985809427947324319898183883017696498509629874363294178953901838144164597713082438645454446223778062327816594736462904688004252685076367731266164663494704265510413985558189954268433606287423309526587744890703510866912788037639559821844381693422867548878499394804204901503274060922576420857427245431677907917050396403169388838338954112663088801732791546035319291989945119907121419032312276146039276399587170139048309670825501609348593181927730988956286576056741888763125655815965943635871427120351671398187937161596505980635236962096820535648743351706350032777055830223366612705490087382263011993154197705409725235682722793114603154242695065689915493670246431599967763071000462350410158323188251365236728650392341783333078232525418576091635769271695748929087172166262121797731036453623132059226514777132074913242048485391615538852899420296314807824417331499732287127514887094107550983063797026146050880028128064400954026400298237688595804919644753642038554953860370941038213931886730199365534870385595720715739005385733398985027601153391745423596432972560273551095950019345067052924541035252664484820979439982255400039739848726661800187636362982821322293373134954108202787231918919161830733586645355837871404271860044093845936590189904947743155850834006973287148844555208427898226804584563624585207915897335352880668606929365935490787390558216946307109140960725947397110817290081456430827858137328064621806799894316345599647572070591811095756349624851615495619489367285928375985691833082809051945994467530425507483155454324415083053009013429373148704945693798596588742781562072963699590411136140516061463798171332887623583032446130540410289443572395426398108805660812263913712231455923486155025110274410071888655228524341439012600723518600233099975213535976485041400009987174934603738845096422837340153310387116895915356236111044542006759820104429120242953597303999031236448650509450009674724176771559359709123236822980695811161405274314364041588207810327271907558841204829421669633161624846110609037712595986228944392949781469197081032853030838892449630156295915392184115803003893745028721059531174503857424223113366405978063150086747716077347007078316315639856010650859040085945016337124378495571947680297553086662761816038045664895062103828954700472074553402018207959774297102730099816765183322599517663970063790068634473995084824780258280370331037382702520222380951521731802752360190227842295778553992614000689712858851466239451445759549667434380420048371924643971915905117303680342131598531149090290839876423540009047498084654793094281814114793221220807252393319561880037755217446518677310738157511756399819837009840293849592559279084295187437612240818105691878551515707408391685982500048263724700183070220763997928816876289477777034805636769561328153789735293457265482610119574167289935046954098419310464909044669510086787446701023412095805363467626743892366699908160319768371951227453736730992925833177248191294387212523929976910175584164696794115569903431008284575001141981574453473988994352224102288007412943139592490540608895269306010745155724267368146684919033933104725092593739966605117120000302456184564840242174885410409326409827607132502847540884662819064759927293934950044265706564904684795201422629226026100397205810927198320579130860483962359028731630518046587233827196368380410794475340019628885109498230118154828536221494650060029491172710560185383755787706535966770702578393525194672888155392621343331225925422272218032253137849580499982104047256261800541551906701785176586201951729659892156083242198684248834993652873963521911928443696519807075496981710189858480091921629987256887876503584134739219638669352868809011107131161265437125817976250848487927180674641497933393144185589637637564152834902836921276741467317130421706456951157821984495272530723215031746842403209799451032376208511479830242013517955612071533712402504642155979916774311252463424245701298532152117749083872149173088933604393228778301756889472515921881807743350696336324436346971261737471345572872485158143505069337858612739420855432741817866416054825683975905648288620735374730917031609444839434098094005152721143061564668022265631514955225417065359880605392881191389698306429672175500647046574409348543885801524217644115106748691835296154320547913670536636299501829499013787847970139507946002504567213839596128954618982405374241155729767425947174236336110533541779347974250573200661855173171816417313356015747262705429135090701297174292295509899384955473866302767065012174191834501013995341611622122659014274180954125636141682295871519089294467444701264142277552708106782815317273333790544176045355607158274022159099696543437869684295690129732934090335858445622100794663296364834929500222133126611211669595050743854991149530588242370790979859914674667518196050319144473334326547749981954599546903468096771567991180323448917283984924305996126633360580289982204866592214014106340172973141344517963318204585977415653429847475312626428757246657429504377161103689884989947710985846515894028265536214572581801362637193859387478566669815184671302141143481167315047642826943556103760631941282784210128753047033766978484142204792279648998152065586699880984903564314601702253648433928814683740065756691935803923653966421373325796376473956282955418636590348573964466678073807315900218946664800717401924169661586649043505608517984933328359412901411450807917802304002990319367885733255802775388802822859212533691336057571228998330047477513819667598666680794515421161552141752650434739120276648268993977430908164668846684478857959099269038299165565091222926459829739593048786473096098991092237755822667762222133417641768643816904092357663804276236837142921242300327927547178837168369272158069750256013102631092573259342831908896250687467869521067008389764684672329553301750250609419287243708935540643401592339943652937092107046997153678480731009047124718370851315041953466937385472674211038763515413662708744789346372538877570197107455681662415741854817331769842477139769710405842544400411637909924660212850519874069849549499289322658091370860164607804145758424161828782457379211087487988012349714805892947930414389733115163481529877260285876204215353188669676132288245981603223137489729416752817750637346706352174056915729098535102324555279246207398424188617634162703612569072271479741142846275498173002992435678541877494795778130657055567277224978353105555143930336266371959182908973864757198045535079419294225089055311006546819310516325376275149105422271483510980311021835722114517251062341299934333208621063862347230742950666860421908945660146809492721848817642976361753067338652228730452610663429913966798195616239539909699222227272559755475397558756714188569527158080167296866636956406978324246136468314513635059922151771741607511691168893874606163488683252051706404239077581616165145477665539406852616848637804202731996262869600649413621079309585819480316856544211692404714647483760136643670548428410579873824270173760076980421245292393429854096724391731741400374694702118966925211050147773508885859927257238584411637807693224161228244886135762209833554062019704815817787408534008538998836967344408693487121151554296144381250985678722155482963890394123842954321615734076284948215125365993734059920309451788418798953743367167217922386281035273337898686973941597928172382985952872664722741404170109149281903219457061318888670081489625185684857671454989172923361842493446531815116486956914380312458017935226544029238566941806387917669470325050614959477490122221211772219785686110793355016351001771828317626745286736956368010649206425662996585584779599504848496779996428343021823685779298572889584731661182835599064953645252168158753990205086662042858449057150015965830135397872619211713102100419585866948827023894866566299350442743087988577562533678457514365325783943354563201322818435691854017953628626587556137445664207358870398944832766050717938139401391446768081370394105166854622068895472487113486338520488393401553556548323044194579402779602770115953212611748339367068772984530341451085201917043479836874057491487510465738543292493381820191862599470390063196988107254452408178095041440805948753333621050018199287316667981760517926696299882794909083712838484938886535393117547218542335798011508729748955181539522867920618712916546059892169836699663546277401416592722361546262158929300650018789319071890906895013866059288045358366066779118363060031488191118162003787749129462608924277481560966504489403714921106779606515876842145833772185007539749063897586109146347121205575231190687379479314438860547799377375280056815925705997145612479120360790563582460965076184420155874865171526562754397009336561545008295259072707683617887202676202216192328769762109575551269058118343223084602434816644113439144315788433855739070490248370917200551653335670326072825289541554421411572775006295034777815703928215806889803909095755945452218040533597782740190450308173107232759099507087977518841279620948454728258005402862217958771214364633103464417780196361956946026777001737571301205725815597643014011869762624189965636168584035435497780707140133909655653844396546628656400365427982852961972450087796456197886874470700851389932010119651780734096629413564380447120825899398242459146619876708116230477359932026443998904391959432392329104792315489589632854121129339388833003192835191759815876841612541654767108503634156137804487046843271956398882119790139743611341627572720868651853716948198390086284533825171958288361738352192200889211376520862322587773684332284165501597522531115538241110663592502007780506680487730965149296428624948281346132994984430470150986322646580377671620741310157615062451938665500518318747208323674741393189239442289310900170350036765637097745369492771489152136327309223300944587186158206004049851894943520645180070852070558120141237560485448803704980082551498636001725410329486627502923731993565749603789076353306269150725598260573608784079057282213375989215838113457803132940324232967429741557876424811838861368494844669936602141239529305203448949313207505347709694500325656404385651303566113188583150205132258418638614857111370076465896581775247248031337999960214898727534510306522790900778449728268552762082113545381129013356701060175746706074631010908412891771182726349831549787627329561677117373111122002106131191846758131355137842509962957345245632744686206765310648788880888655817968082720980244497387900119650776460092290137777508047443862568162654684152027106381695033276440562304294780549490447928563349321589223403730232025680080739261904210347860591203411667224324415562469640566687617425548625182039264104112537597128003723152649964255776130966658086813843303087711057740402887737841614599711185396764026869397979309878561436161095996769464247039844028035168155383889054022902350330827362355390410091600396635543175916478566503050723880172936494766662499024745241804134945528875471006511924677741604262496072808807169399784233302346782493296432444046276147712758536712898630031589121112906182365041582968418367930689083196177269365692778085508171237816381162343684359143876023087120725809977788026407071661798193519777375344935423595549147966066273712187559897404686572690328200730274781556974487217155163305370113594237455390848337212136287734185879156088385601567065910092880269595590141459957878700557032899506383855800128472392067578224966713212333745119970505857581495670880292232614263230238859570713128001078436830207333443894562425683374356023817999669356392908489880567960682496321335374012432040393502124806298049555460477184816636861821726367625200364723104919308992618454809259247887093660565782744774069827085130596748954608054688081092431352985921482935965634365847311505059259555155897956904578664789336189717938620781630366862574965271257521603589815820784348299017633077611354882440973917062943552267443365880116009760588681599106756255364551840054979689438882982672593595550409761109387120930118024843322212551344137661844903782192516454287579775852172523657448466371213448471468661994217487913299322103780060896150854876529218697330076387851218507744920220541358772846871737315369301779085385850642398680530467683371378558040449693369059379742949511905588427141330992695997174129032985469546657509279620039132153064585869582479929783019887325900842008927172792364679574185354837795187694198450165000923736808589148800072418933721810642165654027980869745175016727800111101694690022817172566255139941180452006993892754539831364685377054892357748142153622315416281246368919633616124947879892510255029455558385166768462355871318949510718204878016286363693697382483764002142936786936056256860330768504749573270625565449229419105629001745192799004720393260935327254700657617452353669754134589782900961894214759705749850903393946616308080304203610210741099083893463592120732051161708293085604705669061604086175069039674056411707499858265828325090054875568842335929414669812349304778924377736671790152635951112494064525784194260358231761424904488855218957287420803488122044381652438679951660600335724779743523092519969976324573858538497879037341945536343636994930948240701459982032008074296060088051098434432360282404013089269048693035015954122434841845912354049139751561971616342337092040827023577921549656603651894404030616684142074069250030293758089294983787301030430381023710128657160185374117446830608532189350935796053266323052161903325234434666320621325156442542752471657168410423758111465447305719128775723104626686584752461200187791867150140782167869011601388323544969619791382362364226624587876557361735437937807771208187575590977054733731104999990286089620650996742112918371046256250659639656915983009715804922206181457096533130930327100399812180562752719327889204275964928598039352348885664720944767254912154697890726012211383033909220335488675482403623708252257601535628620030955838204409307250309363497018062711278325659548146412755877591373466492713619724326378462418897025233927064937226701368603108719788353119835000518958322929567084187312545032114767015578804038638545840406544253550485176016933687594829558096164500287244790127741893179594249933065132273193220209973822065067582470779806443830902837506747169456987798730251823077437405952121524425938185698191396500112102997951258961145740207529335473777852299846548896359711860472518183735857827889456797897359129406255927651253713797460372623432316307258070250603607138756171015356406079760914518830341604058140018598315226250939408541909398955322618520751382837647506539954348647125548163136476788626115351632192099881456340879223348968864639428294441985118121726450887808964912671504001382918583987332238826293486514163651776424616164805168953590939385952566668400121667691269936988597380131595284096427116491313853429815562687158824502499457235059570029646684231341217479449343251244402430704505103979627977346764224841343025133746070226319439962654983857591677122777968804164925070800996168260391898910656779384154193432682109100682680758333496960176705217432990193494783985572697949124603952611241318757004648425748974009271439884949125713111525369175015901617273383714979654572593192768975940345254487400359154285624631363415294685374009989140841146416308406291786705987245583099763027036073604784670032108422577257518070950244889465722585379908147418665833976485901671388970659270633986295675790178475299485958706968233378294302537540351831423098128229675268612038050915016125478805708300406174199084617186169614334845239200671485250702853596051559015282678765818806898988896052069049514308162201410299847787400304897627751579901094629780943779065927011344620105374987172536129465843300306350361730849445894722827774968245754406364434528837451548508358625219058435256787370902005648411805535648241238385138574843547853787230760591213936589279959950356263175633932010320205059863215962613777974783999976078990977328345833637595675452427688097905427837145563344603543435821681696666147362307487921802315109489131826536139419766213591073463197478625097794197884023900221638643867793623474395167669163931489122602935401223922519514283949998335983819091908595336752779310098598281285951515754833555914459283931191120732546611002910972262353361766387068482550549156094976348820401610160880515522208163599811040962829815966526472389189143044075756548035905218522447960865466262062662623152586300619390409339643896552169029699996413910937651295624945204741011968800231709537223685864962039392311863210239727272716730403132284441273350801301758333408265086558351440684794444000261454498967902826092379008088352009383267814258278835316716945531537020565546197119745437742437420709689886381557464210760390305188941688025150493092680398877064679138672305844355498210915063956858835411328780485187307101255249771699946765806850045512416156285404965092546956433899634832710647713438790425657419508651848912114057627649332222541417467073954840392541075628572598582131278549704698974154392343264892437081622316782009391795699808922565181137219192542663121325504366444961703944786318946218854264861252841941176151229690243311731741648010157203118468492929677076000758901105446478118458637203820571690170413352219173125847205924089496002607162778328122183078098722722389232754195357585132429938108468691058752618369371055992540607693984174791080530411851067402427439182471902444321344753874819776385249082734640524719124171792676476859470373603960443045571475608895379602595991517202483754020101911342890761686025837500361366320557033312981649839774739344781221782405818214698892812181857647491009990399405818463573768654807902101726741506938798691494295441849942006054761276358200511958653024886685979462407998179412163382320946889941936316614011245156987091542930460889034982346450839841743933555504006627942737316101596327718583451989177353661154997446890387407858868294769599006554201068382707127666460597685359309025211621400483628646148471457200638164926374459525203938309526821417192312629622918823019528483781667671201661678532482259058877550965964197963878823258081440611100235616426027330004641391129208561582029682333564759495893795866410757471626616879020013999468041505293570602774153037469537953963326858219199429285920345011967151281481594322055733845873511967188221537343586297550630088894025270245613394974280231267932059247143476675015594906158630430640294332254900382171924149896340125406844017342781217483611399618646876692381274415303001062362102288667075647409480613739145706276515991826443871877389749694596612724076024549302893301218931115358554331723978788248015718581660568280721158036061720927155872001454655986466414766298800640071244020076337589114479703820665275667644226840861163059694446415521581781122975399264069627874537008587335403321598141948678354559703571486673287956587560296709488597094648107099903418001577112741601947223533473856702980487769359946230734069414068773356244411462709634834001364396664213805204490504142347482414948510705274422756444469888513544986347591448845760358967199831748138592159245481939528152355932452996374999885492635126880746496727219439860558152844116881968025401225404055678693714253567378431980873220089797698381329095812982343661323687444050825689050520116494798920589816690318915910041409744108092745908799845071809475182540742418340213741166030183427554440848267848687898181502394843126397160893337434873950241242147103833554886802387307695813844092195814100047863126502158942433579092895277368652245982608541513566352705020603435302000067848268325328673018416212009265220665125735732801087865243439263663118299740147526889468141373989607958510127454262971294790479354371661280082228806503558025580851323976827232527005356420702595382899670731250837317806004755031970368758877974032022744764931312646200288353915239940503404147591675488042792138033869854390599594310069977016008263370743285647418780136637782272230364772911798451758994442622519426214379315154375404970632655439009606537766755573298610797327369910244449818663032367244008739341399302372095292353656990052268185219165920417100273102339329015641953844257415478515801773001805401884358994461386598289793320862060205815938036557610550376355972671110606858813863528451181433633951033268955176811026742905191809410529555651409396485995620618826937677773416816355746597702724508380186141979351318359681893352249794307431280810908110457470547390835330106541118312216864595324947321341722535364302743661582608663746072705147679043638765307656377302524262964080601183672330794105572325228109157783376265238200558619714141602667661230528675424473297309620328429889341984773698073550296296910713772252948441383311658325608597966840064239933592747845541764826954079240579752465624837340705279208808240928121483862718556381111900386458679732654961347556121283874522549670638377679821163507734753564713879722544940910975586964199407995682275125170783087028664821565739053473758767732146738710489478588187279830480731330129986908541764741530615040218194274587873342048443147961269118244158473030209433385646319042834587893648935264324260537307986067453814757448385664119193945686979752750788213690957987340639117715458870736957376155755977736646832445326190430650028973629194488187512424162364702959751228285885157352152700949919694210006173763960443506500802196705329565705198153466229032495487668940001080751162771842677024320688831182594980860230921103023592276490660934388274936988211383668322399564773879834797267021751259820871107278389769243927540261872059048800208921566848178221203172523041306449787878137308343493229372115034943832254260302453127257809908270657065887001942946474459384743371463988532017385905802074490285299157468532308833698896378393707773920981752810276934708585779632855611342471518380865733486744071142679633591528416321833272426419297560361142957126494997405752480592003161706543919922532618163179898841492485836139595734544504825337715148152794687836545872119067472927578379754570174354091010357652393516508081294356298493249415181450829553265766996629254709821043082228102839050946745158881719606062239462913012253439362350471778217443010741759553056824815954358840522307662116894729300740473487075388498864292723596000712272644107351381107270574879043879515961607563124411619847440432034727121313626479983907554620735018362285764996380270335839979378373666015327664556813862287442991979810278067510073036953658291069134905437820663740168818883254260358464210849633984290465811040220667000458064831972208327732504558290383971944773431228914044046012317450201219618270568746959902665832097914539963864081907443002513896055436541125779528776108324724958087803390446555142874046495234552453320568320477917423470802258335133311097561731838054647651552615767525108286495950124670362283651578590579914055510937637682359246550777827109960767291166014921025515907326734517549735828935405849743662464797777937387521701421105932050159672982198159961270361394901381704101356195811675088528371126087958102413047637165301698376923695257704553012486137566790875934410218667378604621406003210808886231809845960067938709161847447463433323108415257416267450626034074678232502084141783807086362694782862771440967065016777658626870711220377866435927423329038842299096474978484349059806355378279044917206245086827727626269745637641401707829224064373790961199227752362491572626434773682146914154719191324013697036632098990627025174449015020774719654531294199611936096825207308349473827057582591136431136009913621439887287295866532459561316610102071673007658477829280202829143527036132182201579486301574248398154413319318557288635257556111029378520805812328270681891567841892917580108812156168274927787939866468658408903748543659395005851575101774038027170336286228961697906694371906763745211731946463354937670367090539564034333456549514416121869396767469224889361091963061128826916409030696126980527713329082580536709759265048444084557082694712204047274470286401253871970009970298774437645361931532839746443972132602791699057419047908010585661984899231553057985053765392547708452336995147920786484484918738916598386176869274872154256780694076410061416828427083185261688038210793419171872038747912452197198395982340208738442452229465280355345385089907790281703287315270113380696238091964395604120655660404467886417256096298924996047181011550590527792015132237873606734600341881266899644974535650159255485256897437198861811120297979534628166271371679088637324609130511917511014830082082572261090967837442472559248649573185348722101362734291665106597859079611089312785204788367333985480381019117116099954477459172207323145775610484308457426335110055942869503059803316704304537406734876665455317200888342932158416846894200408411958539729177484915396759012510998774195711939010669576370409996425986852563675721551856987817348212687858358238809787844047291431540610809893001928278754435159983372107631663653630906285419296629476066014834761536066207115476699364046992562848173975849342806145846086406720593639803934319911400073225306386447001162262613141889545274057662170954303718763762938837100755338728675381562465534323454248751791846933527020172599133023554463241661353808577670792722453781509568332995210513807481159492296469528160466295837709581890942874273158790232006699919902173448488414158158828477679275221082251050921465760287582112873615199432520472685174669245357592363798291616836983785210965165487482327680538664066201591360226092806321573642372212792895716671319769938159847326448564219168297586231279836554147858535710136183409517999791954926885063313437180577755448761186554637233433133678336331443798870880798172012624870986151769936563954738311298188743400612335594834445404831193659349906690310912399731909271414496771535050696629916349001428465456930529299592528530535033077545113819094925256563761098405839101795358364179751142334606888601436971674463189254470947277971078734981266963605368616453887231203155459046960803792929024825084465340862690334763476044067014770719257028369410301865917082223084650733171740263400380674969929432161338064440511660208256127114078535173560571384414423155710283994788836164137532150374252670922328797756008077584253079519476527808055419411064456684268170151084096545194347050165139011841724364050057754452226010867937732012234597296669770551586595985896412112432001444267421596585550919203132683695886028972648070808817021818011234375380844825341789495514922400843692884357698920626632004882504350945924257940075231226888879098065976624471274757342859946235143045074117635848836548242468887076182464833436670323303678804498460224572845711653902095103225561161421328884752384948710246050758935020807342069110377178401992242393746686376137279345399049132816680272417371029720177282605571069530142356815672408139382093351568980542011831575233319320451844045612175374987762347798713540649125387632996872873114146692555019527604867171456828097052878134521344382381195110222888348380272645775118805070632736970849848344795869294901458481021662439213358946607223995581317667652239966700858141351794360278401317509355635669487823412157185536598401623523877116682067745020843447292534136674165946824336147946439728613719844811427533744205414692108819720511292470687336314345281853032246825307337232999165493791124860365352017067410558097981882349561858019894952817266457762414597855453076244542340048365788598610068825483882086941617171689118765316954820311392804320458182916853637591286043002822635402770983553100185847523816920014937774163347442831747456344622137413990566030977561430800071140496989847217053465018792945071396481320871555430650946589059338081111182955847831748255693610199446223546720125844242141333621467531296792865622322632472501559479313856682634643030153864162762833901542663512810869784177305199240349118543004225663226618899542034058769018163344605192175976398798559787473632192348783257741303693329113493338181483333891548736089766949723215949232707932429337823935737699567272613936381051999705344355096434448054880004603031691330790379621488226796012794786905916073792754488377115876576138669301224262218438903866537409748149802464349748151574606645091244968850680822304716016038921589144628683364916847178536715131487709227749150669461662562992219783397876514780980900226487843234921905488740594295167068887697076498608140454519141148081188060700684195819500565026050616587030796770188241819065789895135208400257079629061511296939941956229012838117679467866335657806841257209618480376976086820286106870195769214903439184884804930194872563937096686986969708352330900881831169087455658970910159034269950115078452303941529279410164846906509381314451704702127938653368188026415299832798500995363145466156984944760004859241570501655417554863552511543160069548635613717402220192571910804417207679356322958603057371527664895384835165479716114191269522967279197942868624023471330266110120550727456960626177056502233086037960297498917284156114028384115138117522445224981199642556318397149546403962855674625640933478138345347904326652852430049499558705196404237172978000344009551602421599352955554990020457962760624540823056083641902185490042155627870161511375458433316064721130792095395946771980080151366685291152323315466275622917238300495423503111013033302819851631839657171961796069477371876940070455568945319155088463166538074667306602752151349104889284928303918481719707972937286233054609060833011947700424286364273685060151566757746609635617645191540823841581142120579561197994164539752202127763964435449072881294422339803584813044691897608195309561760730678604971302660956969823740281841542557112798726825124818736423731118981093911305477650501093564795745801519595563544227407608758528294576195506919245932484000931982695083992916350760497113215649342514111226277340790184983523010281157787668296245646944370630752347521272780679348933381207628360188457053909037699207131000705812262388621763708601995406281443229943189185880562423270112637163464932750492715160704067485383705067763176532648497114090197551761154329616860467396012318807329304286983624478373899825903530324709649940932768661837124544081670201213867977117044590511895510257195383752536794104869854132668837917243681574604514906492263727568015007500621039976217083812774119278743302919100835640582800253470229727673208398364190729439403839426554310948511299031485188566392626482827855961171013589974981419891237894522715001618293612257748294875666264226969024043152013809384534676587891714466401334942404087166340237620863342318706706509930814538802342571599126468116227710776114297697034387514647299160307676510720402010042518230730353159285212661539547024925671464725376026136422423912952362249693240833384970686753376682995622455103445294445568779920087712254117584713466372591129970563194996671315134856980813628671259270256559338520918084311448924013973817705629554762835893089960317551049979891388692841743477742604012894315787470178947120627750870398603895863842935961792771864877552099792430601010206267221620658565239273546577758871128220965998181608847833861904320487317819848044993157912683661090995934792619999519660123346371116940016559502275589683467626622060048486348414879360295980075643218755522803913957729323302560189952442824539163363295464569208853739819411059870371580044936268634578383020360061688605955906132969730487875307201584868557469154318548562785963070218026421289913061079359948819804248424670845986807691034438242329050900571454243755661533638858050396021682005584926451926652372228338921905547808754881941605976808046352002042241879379618356183861441443980699095670262854630048129323206114141512141266114565089222125373774157430584735659915439808653022703607503800832858555837644129988729344355740037357600886705000312822091930056267061329142300559261604959939253487774877254626829243495235665770379769097437562798720727551216460065983158514822930228361232364189173999221737037621083493314371569483800727311281719636560344886606056682558520767343367645755624839968423544653946652733976385431304155101293611528584627892439833724796415127025051262091750255535246554675523334273052832575400066951011357853171714130180456545395819382143267559450240340571865001808428844079925705190111364740083530427009278634822900442859875446274956255849552439034901792065602484991164006213443888035838672008655378862137293383946876696341319307438778145127146998382931151395968344532132211467599548861375757911178893794396579713987004742648953507172767093318200273966258008002861642628797072528774682666813207583176825437172658062673552371533683903746945841053272277477591122099654106848704562563910263948645844894442847167238860369820219786228793910162797707000612427018175040491903774640500873554201472418805382892346094299407834605725114163381497332883499521720994765347222990015495289597428515077455572638694764236242219903421636037259450704974923159068235013732749319640399518166858081425854063769852450686369294383680172516878897426099330509013405644964310201204777074590855769986416148633506082773545746905627810149672780409319213894106126513356600252590522633730365164580581379269077320583341509151031327107414271123597447618337963780453828279306615723687160655423369638031838425768904417517977189407199740905211154328997546643296893599505422963262342654124966010259819219802865331464491754773958314990977851515179748238014411511083940887481598002189128860011387308440034223521571458467299907671162301398441842829473700339883113144222240756939497254113508819907359329929870355023758298358657479152384758905936405099755632644214778478726016425900436288716986485816210318390142883088519025326940409599738744910723044421317038325854992290146870003295906966999107822071018075514075529186865809257509483638981614711005387096271907619696709767091227391228777962049295048205920872937110035806836122034155974286076527858318805867401661625299390673138533685752279452567589508454317206258871150584611306840912097107606451093594387856184550044628863235616190682250417048836807385235370176627368277665260722791152591593285940247091639047174872132241294363875651779280911110826395317840623399431357885981076917310574247762956877979614205336447274919287157414161642890330707414710206872861736415973400674802480631726468576824583214495448535266176721318786997690504315644840803946880810987341112510678076119885547161756937114681578951959466134342073808246814861625400330005595236829658611918060964888339762746377364548146322779161354166565559278423654732756179252213610418988692156950180989098822490325167528642810222147254317208433933110177331772608930596826169728790620601685187427348621507813824555894551271082892726984119113381838742409389097730703492304969577639039501557616929871757542766854708774119717835315221051801356489921207565868959779582368754631709074314130585531705654768584385040602655553256609810186118875549003417251242822616451614471293667083409526865615567254569802064360262298250232854545387679294508031384466722423242181196906461558495125028081731639818426317248891909088453580813015047911244439499850971483248843720902929432056510883860172221956413049714458664997557708011620176701731497114356444902160250593804085923791824391797787194556498707558997477391304534483405388714109751933199400163092446775103082714636411324407628235039004593707270239106052828538311582690088571044558459185547902116691085661109249530341903694982015269364297861229035207504368673749536610477827911634500667186305433891179123723448337727674353471817513901038706129440118217431940405319419448653276212700971240500306688458909175032909782837730907711845707940900781839744754612473965155483469412879493597722215527877635937952730753107934870358423556775398673562841276089361017477706195042420187807108959990673466459006805764899866532361306170403723873197673021563059808888721848917726468784120341182535589527909214593719236092538028451736664061824729570237116781876603788713383202400631720495608133788718615383076833698389170812677689512174655664897829588398445521026472578081227967902643720730938202009172861609683573592533389299338480107128088371559336778783367758980948177225605031137413691485450224884246694889681700711851045785456423141175608712890923540901083687207465844472107620809592503791823123793476888454858545207024540517370412648950281992860252515375100057950602186429156266515337391482161824281417410897961647385489934247374054975670688665597364280576631873558941486636074222134612897452782195262980516321274042787802883412651383378740261324925831362710736096732383398547748436342485288210415232332944233093805736688985524558597177088208431656359772037906569360195793357992696095036321491893119957294976307238351081996833092512446174118155945211362290519847533114613814935826868394525733427165211065374770395416425834976679452905346181182855363419583877364808476289590773299744169931916025910134099126942885537501598488629387821346894941693771608197740448386232169793753691024005874577726244539062612866746918175051242748284190186272042640381054481371391131175503833222185921944576143138025557756734556596896387237200475964562062829024291266090774470562144744739654780356886504072447380981513836349306536132415547167457340163389052536113876724864186327674214271658299839437105807671510899910787489560367010479859277678110319569343099560495574442491387881603375498113997209333069581595780705605620539161320757148218102877321068767982594488230888572524436931364161704632118052459102715948715817593290600304028847978989454324998564300031636183935147088448281963363754892426218761522035638655147267904589586952756531594910247180779062800041607199397117712794351199042684797760234523169620229372149987671648386253752782875212385712226010490805415702904737361506188867784991802267548416280019488307287464119841616376153358999732262456345308064766925927152748807712292703747073956442795586788567522247902780522662330636320084448831277994438773520572894724194127713861809806358954531228552023219183920532583944643444187665212048667195579550222199244510320792285019995624828888969005634658147159564740450705468569895824570098152667815015153779893826459054871429474417830557561045188342555458755806379937066990695280951439739378520051636140686646810076889298559536678420363051515996463175173982315761620314870064759019957707874548770103092632075769335729661346098789838495245349350897890471364935680730658353216867513937846927786919818449155929015336807091237457204413477193594657303376313191677298442329075707346718507613008109006442554209545189509058828724728005485587380220749129727638373309026724087085873078612952527947860666840701421516597326846224855975236033691605158326769412008199566233146361211951474204127358795461976994428446960009744436519580375474707715863533092072512225321964260531643588334594655050941199995509770311824332409357884135747824330450060114265487304628381798458957420446862048401309220169961146578476631919664552472799345942147443575255183794330869426696166661170897949511776687298080431126748679625835524436896647362419535812356811272747250839088846966554634232899374920890261015574319278760625813201337822111585368247066748750980303542378608033973220731005068107839856852793678456868827717057171728832801566398073369277492228174250152240292247940353399122184414072746113099061609010971263150181115906776128242751157539223770965951919328153067897480812034040775663938646117659032770282438532003865633666015022069590473334893692290373641404417513088796851865463028139132481771110752384387042837339361160064525037829988995246469311308285761219855658744393435328867056239911200343204090989445090262902568095240174163984352613399729536526262288164465365705522519422878510325221235097279386500748473644644215044748648488145070136243985918471798958289384647824158957101810217016495967431432248515931156019172722023996821913702345506030633884279569966890476471992921451299632941902851753600928795329766549287110105979969310832089217198698447842204543114592051317481136619309974663150124422288432769502891410332531667936628767893487795714220219896287517448634921065556280168700741594590765508597099808942366137225670846477937471390870202328661917581959848076546134778923456390515052066571526432941796357142520568549520347758625689221867140833626860246182763486246937761138924144902846888431742066628752950461016901985342290520193543542828124407200521364104372988026312527673064396750066046197184834421133970875259475086511190569727000033718001793916872136240656776514053625511617993572725321606074310917051768034003927793083844740000224817594369134912300342815894445999149742715370676064012091201450792503786468869906840524410550438790658704177988553558548472172337158223691467400894582777229033332100790662051820951173239694683423901358605465534534536080480846711713630862191465851870867595364447795961781391370828225697803510487950361731795345313038279084053822951659101996737956117823074503095024419776193915652069996386881033126656588504181061274423563758126182369926673513328149248589060503622420226684153603873907805790848598622276702005301650334770082535829137826292524581921062015380369681274310316374329372760616942979821577576200385371000630261977629002739424317558874565779506378790771324580293099277431668168858223412956398883732892527382876678058243026261172697886349432418486200153798343832221591191985721194145225400896016971950265768132718811762316779209741512641095790241676182565641437822464350396470429546913693629280445407911943106605567770381816208167443708281774281016853056739547730226603401368368707545968249571459987184136521682387631637901096659606560806075191777060369721554547646994828547200648498547269832476164346829631411067947733951158898282229320710453223623968267553824962811057381882885459289383149515245191505444136735413185896505727702964964579941098183645954226817657850771601246455520403135729210474164785474448938963184523091782350592956921302727083126158289191156094765755991057067647195909696522590124649347091024506991310893457106722810737531976805520012310673561907118573911176251696889703373090491299472591461273052743446924806236342525961562832961484707683793003526953095035412529347503955902823202932910297638713260050006734015794756665468864648940905253853164566492103452288717855544864740907182700371711661372539651827258082257994640904607504001914625495421239558838029923763456209016862164831479134054906450455548346744731576205943922981787716605642099232652482983917429472140340617053384555040666845055855543839285283729566699599114490489512744501663829051798932262407823761813629579098594463571667723316415477592200082195538931299833647250837715182392902847236507691965068074384862824320211620326108406399406786314101014635192807534763691229013202331053640103644325568246673335194712809951843371855703930675627899006526789037256521868299867082699309267883753216885648591144920026455987352106881227562092361748138076323820881155120542823238179452809095636827386042579041846964373740827174959097503138091915993597047592095916087420789647859405226311243561343111232920787456898697060559127636458564494784717302874139267964951350863924113744121629105612636776072245336268953401374289925948535375751372905760365538383806136980967931800369644257922634048109311803854510878362432211730217383627715564308225091849755677360155361634797918752986043108087072540994159442680203178158761044213393956068931463356174378544580160297826510099752893223240831192949655843832562597250516849651107120150785898709996362848357691162700805376562182847389077818505514494614003986397805764390826273608055505260992052110789206473190892696974229753706664801225968884407240028230737145933509508571383666917207621174641454801621596534744941815186120784640485934693243482376593370498464232516124547966271512886986171748672700683675450576509073650492536027311231109040799444322224845037351567657060410207995004426478431063299682471134052100824836436289080637963536050424644834584849462927852288125109899431970971472800435500739897947632921147963332555778942194843105488531415632621571483945348240869144387188763599488658769647683396735178185507891240375272024688834437598831249689715308474041285895432806891144260470367456420589777807758420976051708324443875676822098422868183665469562252636834184429958354603924240932968678112625279089937498146645564352672273549324330228040029847477938213836665785522663673196654477629925828633464094882803547143982823153871791016263182910514933916175593770958623100862086041639462696334783625370589952094202766251199615658833345812496888298542994798008587311805428359368953332413828637369522245373939191023820207730543048582618835817245341300411161437661649028968248039493496578494381383666208797367490245718657495168652896549852663797331594406223457873594832400141720319022049918112935136993025172351816986720794415279873294185799848214512090242217675799781941311980374153563451981650523401516762830459244161222906581378362932687714614995380125388891972906212794237938061974416476054905506778509405532783381497250607545746959616122228497596533442751285015549731219601123333758724287471629166805916471992095610422581234641193879409017359456705388757786972476347929931108278017977297733262787003934151523130107149985440780050697447966416853243733686388706167598412474701113168714668193862611594355955858111978299101237930357999390458028346424663836051212284760231368384193025927486141366773202568775729095225851486363258761292880989000896001555608820291254652413725463525816038724076272484127561527312540291575922779523022592627187388499775388454279696077882944313295786003261734938313690620862974451103800934627780371954896289944095950779670768755347198405144768390090640009423908250987007485742510207526723384652803648630985672249135156747899404117370487374088330788835681970265268954672166350628184650564601031976775716387000356916752499590148135222811180635308689499076533073526656027921011343223650054396521002442602103575620339931137696933063437441972072281106168449808431399336996855071459074340960491432801272506612146374128793034629650538891316460389715636232169874811354989648881198668538146897736657549024812184174292092307888643986317997971461266814696238270857692600014481920068249635722891724187773636572890302978003615373625268984783371766500333799592395748098672371118315396269116818420368968078187284595520929845879261691825808438414913329177783139791582018821732097045795423350231563453877058717579181630400413702092608008282920890591188042412012199233493297980980093646203276277207190850999437676920489685537387356427966032823766216324235819468906390120509889783045759246692506885664853876134614068975063995463173334201259667961585134926113324820328190496619303107255854881311251808288010021090897533095703543685561562519238011591200807094363460956474260100451326679296888429674770874689862099677442768844998035602262221030397326818113745275549905359741478834354052369028703887714954447945970215775302309676198426008522718121227404161196292808184517756385217590980584886473559687973675751998591063329939454361523565269214531857616145465794234793542362688610850910736488191942360224033603285920822127431153939812965591598240400847195043108848285159812761554064061240260341930708087874553210068392881084614941628676780553480150257753367033566495293556424948871564711295116785617430740462923352623645413557479530082881850325000810199659912830256505072443975877223652047724529265339954153748674680038432527453051080306818129023343487957572614543795630889371528279548157296950302276743885434979197077045857778814622834775258194025030988151002944065048927080464788169918014141051563831999455619761718415327307540605125653183941522582312309288138088787530445135665309278578890338971758146200449133239133850824966649380655778272666821602197092411867039983108706363728759627709450383271387215563703629595361941664835241845943998051345499199196958475502062038363601733045564716698765108656820646658193699248908444010106599972588102782912130966144802796513887951979666791112432662538266593528154050912368712088792096199511776151612787272154157833663430838966838820732113530120512976559935626275589143946119475291257596817189017682498173233766315734021856229097068779971182858356252983128779006494308110064969198191039932498440163359352515192785159330250719549773305122819817418648824671483600463530627185578766390954871778261807005162947053631886711578135555371713624767073795403634640878551727532313434862141845635390972950300076800729895249261270761815870867684980662424451544102277442310956475876265214632372350903054989475775249844922795296977914524138170895488042586203540771798167351402198687395321011207847797991065148684174273988405276727983483553295736051918412388035834613515635453413631252296634415543908516615821573102333662868634728505307793912724897489217773479716835123532770688508471372499476533561600992423924036572351117050131448568732963793624215379014044113851984101793662568706537056456036609876440410470877003119480616998676044728391354908373893729543284389739828068076053047236242123294550861296262853838799756270882494957919708662072960331967276229150627197103799016782871638658261479088071605733052395528665931410103608133411127101887728147004523368010631369013995092632182774768152930742868936008753846933932071779397968038759231589110039597960101806573275635516248965177404682173352119600209361472780529575038321942257182345251847010717446304360869472064121395220814836013984951671576819442568084850647290622482853155306169880463244883507753050119020294185485181996593504020012938312116979297161673897471909149992952021878729886087077230230001549301420557602115146837063126199081860930313271220254263524686864122047137608240896488589348894957337138868287792699977058910607924476073278325403616528807077328863213326189172629991747526580920038253049248505832301930584149849424447856691914289534151474784364269804917389035671087975259446080234596670287052710450707295912226140381486593395341146656829971198203726585244353555710581340050273337304977236166517891511537583958227930864348641195452405312884018731927173572368381205036078290445154072591278994738271657954645773302452812425288069441817673645968263378988610236669055595127378201590560953049504468766643492459369837594002889410927500186633096986930506488255285791097011935739107445218896331731405449187131522134061605293788691533653355387839900510643774765386027221523238162071722083313251216936644622655982792419040765102480763236772729534144466053224143380995108687974860692363642070124303154519854106776987227711500522769401315154594064749910350046098449169086019187024626284267685927622876201519192031637172808312013187519416887786518540063765472279298357383264217973413645760032778980275648188865200557967639600331570748590590731469153574620341317661437648479974610756427530881205093532268064719240159314338745858933143358158352921422851389083197143598920906967460560631317899491282006201240308043190730052444719519177348972282281152765148591534931701451953264292859404993128412994631470878439172225644121691939050631127902486066296728057793930524515288430988310351587746888586881789459468668440726612181503263784645948514140130767115223970454775934700885949566144976041745536628050892136145537611567600866973968091706536843993454471894124405760696681528346933807108303156500828864670576190848585992444411223668166395801169492540826815822094761216162890131649768732173814307570967348055202547801828944728091952875864908926535197654175934515248360204340356975981923341402294409296920810027756274820650054785488843198929801993866495625601066551557033804654002276343183620732611015920882015601343209855694610406965740143851127637319776108922698174473970939292105818944413024331521217918551852615245583032358296880775344117737707217579660035219422960891334672110578963375296645829215435928707643087649987473080080158840531801501458152451369533530307622957633132401869325062868683277614401402335420074180704654216546219883561160737349937649326389045866964906566943984206481130655317220045813514589736848830714935512933705243116616668332445893446015880422796948990360851742269761589324200679418680066507588742768037129374217634854567100808347176096506721353962072209145259660355687113871818034987430948886039678271214370798362437945634394496791099087475189456483711482559727290536077607068620300933872815349442893894059112177888231534256825192789110868651869713999752674189467714789035708394922316869082244386905535528087724160841897299063016448533582874649672897444233850283091564200838321215272478841860876609079102381854419262392709784698485994525947088284566977143656016977701974321288113236543785186179604601637149408253861032457945890445949545669764648590342981430729986846781040718147711174944535297874061734471150811596276940028260943954134939177221062706088792201511530501747838941082079806674710207281160785385126440557305328377575068233867369492578106550454941522295908955295737381157446825288520158742111941441654274500650649553530287895849061596522158805829777833885574457824611101191826424781419244340808590867563804271618105093087313531473757058575022446994238113003732803059365503891771564999087873100583486526628045465761283690874680977682090594637618137902211708053777785152320232797483888985969100107796744172952588092092947849635963646954755473472111554390555968500239967624146849299803637527518926707001919358594977017265542434757311899623156992180693350942942831853274616074076726899336667245183257409363167389548022497954139430936259324264830595101075881030601574148824109881979695779075484602992308384081245373531031528637748895254809725128662014485656749339741047736537690837325426230349264905412529657192705669094943857213769545907464495429132614022894954640561335341433226993476767741197877745539932596763076510516900723589577042849228344284758385017613519019667652243525963040600270642441429865683468055014734249277182222631971324221780064972845898262388834007008477019624362875132375945558104493766792587710074770868505779892979095241041584289262564295137917910756184282444419357457579878099652869519211055135601071646884720961575018274855741871810007906059666922234678727990427948764140867067048816798062730124444082723493342780460557674686667490361366145651426173616007955819760928241659178341292594942197078134188901933342410997302075195623917042927713438532441445112574330255842785891865935031908671582259447801887451062038276929528778175829753249908530181993560531548854177827797707513861091001926674178049014013126350426328078604285396004391710294121536790667972420334061503670050595146187382558745384344962163285125608820028049048468797368559673765483470947694280656714941442212698042845531264668218200688945792350104958472697443241307890824325650093366931782258821520351457642460671151383424632439603806374834079973952283952596258440197082705821146909005813296693401787380471262929507219745525737877902822879960487982842087259094173819272493585669902612288043680811640513797877392717109978078572292961769677676660476061213784853776787817990945569712706829822153544850421109004793725253271543033341094725103026211765777084631113685069119276085094702350836922499143966228328960975996474705609195234803959185183299431313455496160608602917099552854579965506025995989509713539242860531701563362570554510052304246033484574703079216253108160410406990286431373170196168097331523620351143869745883685069960867997763563181547149513081626434202558033826271700290592310031879172999463489474702932188236806731730054473037603356941773285405326774073721115897085980226661649305675826189777418983180992456063315371782242974350797441925317263305939758568369576216496654533671938164412467442539581617514459171727511244454512160450572360008549127914201484426773535093671614208901822708060281143384445020234031584380151664026947623551848760879551504489010476871568325928487346229367566875924037506092073331139355942522368480737763138840812792325237316716363551050167510451676543196068077115976734116623143279810394115295116390344172021499961560682796297681671116735817703681107092158339098045042127677673752913878118362511303654034236793426798698210753042758268159682385822040592201931174920580882741813510098569129968218680752794558865471047930553591037675946511568143134987828274526937620025043881297923202151414845600108408513966451493297480030712255012378914261922100667261769251071256963891047395659241825269855248361491614161812445344956225805402093337474964948104135222727026078300831854646189445282890372993188198106912099127242648780981090954488681479549801896819916419926212799981148258363742431400071735530506686772100857278409328704008901328688069255500818829757854435763217887792193829935454658844155831448875988693612303744344563422508816410203182012980818726583846132100082330642153692231944373722883324557952628956435811110998203548310142548633368340787275789805546736451682312934459066160890679910203069530210378539388565544413887835908747783464900060685750698712108404861307784919244844086706808443461797785077288563587243365876065653159233084789787900865106668355884800758560311308907639703110277226082288710296567717350947056388344206591746802769520304346190420947725317039750278721050309193838879635346716538839423306003508682307923843658195055490851176935989276363653188576726986116931856421959460324881906585727344248281343885264306665911480861145536545804993488473726136060384432571732294412854559350428935862369317127929645711514449984406101035601611660864022127332219616566705468314632195326073710944173297579165821532584822408656293925316361220448631486062368389872215549995694675870892697938805647517277259708569509800878880911000827564959934443343420397061291959176262852397509079569593956756007425737071235546533594415107224455152049389952057883414223118790651598236810724712153571954030257441849084607143459309847995334694549248510380213405612814687619498559034552514310763130838991414692655104447346512210162400348247040485881987667081881355972213575670271186028065221175631826408238010055619090411096130633204064334015729199988141945805418972860989719090095730495798112919770259622556040776703470628274065378835775814358553154057579555465716073033192413296760221373977717385328541329125372400583451542533222147969707823476869311495063763558810505134023027558664861487704448593621301536551986491300492547395910881658134617077629945191647826967010265781379573898648239421784261915342315184610133079360692999772500410133488837946543405235906152682691215953496123254944579451371440357988495842216766521361069498626591089785369614470715037129396186894964676073351523655601179421657061613745796400693763614298603227224592837696486206450363464196698079273894512862834315668725607070098862707894556681153679158140347623104137453840679505614524441363861803371211013088142048388603166986199340638800605931546366274498169772537607380018777948496007284349940360141002969664937025817351518337594407429907495967458635751130808366187619037080120840307723478041724050982805165084508847129064906779040333730678391664398880433829793226920088033762411115942680215884492672860607223147271849080404328068684650058822792519476520394167495988218181493930193746068532667698998453804912565373794994707818593006057018801650151657357246188555437970596994728877835677659665658134048050592774263292893798841241929362693470908185393443138120273824083895081755037233179526309252438626909012899577745695179048191340756413916169677965846973572835932917009095894496538606486036687296598106047662271874233398148131280016640019911881061157212987880077291909299210575820616469966424410253657571889766191954013643420258420352540620197974976562934263814575742591947932224658260143613590486482441404295427887107726270557961998805060484762828398707314046199480440871379587051705461772850935656062958544542753201111013067735980680208738646972504588605691729402569109176034946092125087576557314921762516545310801740284161019208245750521510068273315514809637205071161734375896763340941277292270788162923969852463260213918573948066949424925114631647052121162388541214868637147031215151786673212420950557129058355673983669907901019189609893323680392103094908079619435856473983028426071443842327287136796463554392975232676165982322834781433985976398802019434452769903684815685498844253366892741089438697080544651597979269425631103145237077247457125721251733267275161028141282659017944072180976093600860525282431540374389465812771262789977286061587206616072605882137227256449790036367713273652769453501513508146628702036801269802207835392576565829532881624677640233591276684752309400291056821639283730592845591075403696597819774838904209227055561110361610084994051761648368665254403179832175146508841771294051881706990559975969555227051768382761477500727919577342270229522494891277736734845822466932445824918234895619913526379008215430264845535026657423893146019203519546163716350388027293793952183566902016128440451029711071792709168613403714589077736245952266366130233674684739723766144505763350185279383590004970455048621391210340770805017792379107362307351472334097227038208492921271743419478010465059560851031766884479078785914759345168359081292364102076229864400791673803661271349389731278770688176311915980531978930195569952292624435947472935660809784863620227821973971494646824485155312723868270608660936296711393698681790224420513074581071054702642380987230863480745088538659995057131730047426119155648349969297815453779890411140396652232495459242822025405991327615272091483962360005305607037717202280443537878867731948659441088136975296067546815865665490010369028218420145272112152222265486303645346399496487232559618136891512110420812372562005594553637554714215333568862453064469948633436932211598664553728199164640946467298237891793968487190860952095844731627786891754816395282991554789989644201322693104551242509154201835303984114829609475717888159234367440708560663855552584118820006298469150338770985130820601731148522386483301535715845964529737946083592958299641852618485099260433627865410727802069809543671699530703530835958558039798674721376346856422368118188940672616289310026265485832377864134558033489746558068529652276069888902026632496488419702394806597176980167259707598733453940155641481806137733039518121489841946192577304865946483980133867465880849239441543513374287603436080018970694511726606023085430849062278938788326929037947825645509388673277501920331649981707204953503450880673613042920629847891953342137242051837690570936050999098761059351637974618311562332640486365187633456657683594860470124625411063839762184005347710310021571598047873504687367694577508058641340164381308060843591051023081373051600488410263241097670115375528607514214384924996896650610057774634089895885369407184706188876720556726161250728660854579244016512335410215842515588744318178613217433583665048595422528423723022829914245313527601387417736135903152642396944911353282611629272617468653050586956214334921533057985991076480044102821099895891134936666914766591467521288059947820541049048937222213370078312346634333993510802267196732071617726404094304975975864759139171169106093101613149318447144865563729014113351496463334420555247501332509736988422263938570648172113980524438258275931412565198260785451445201384656910014580416913080157321421195449839273951652796108274474294885590444289969529240827135221041023050741462886777067426823789457426913621605570044994209789163739019136324437702778082632053460473712727724785923699973440549958605607706607036898963574784063636563391081560790477541624855938326972402223846403150353259716172786104992635517070169612466632594074246080440551774544964111808625201314064167806285483700849872172730809950524795170266038279528256756390768402487562353280021417594336710905146356333820973388542999889613231596307700709419007263298572959286511476485363133399229539109260145307218538037303054647821041735017762400589966010297078888371526860574996383175672017726627225103168202292982033394319323840816616916706839670775745549199825920187002592369103122207115894274529246600542435717526303778035678537202442395500047427046977287321629111845355927237371094646651738205542775722718370066279109133172076048938393159021261258259674338758769808736967668414289762532207902035851217895713736092784482693656863880806544413579391334167752106799444308240891362391073488162081295971063725074995326263542298326412782693202382015833008168364317611719356641341765105119433692576211389574912456114949221921391177085771229880341067715385110244269282791129479874274952077129746902999983377816940760991044234376941601588551775515275607789749875113262979178928206426888615247594938214967716197725886705253456292445141586577002250187026278124015222963477892065806259040658533961524226919192366992956551167995580002707093090030424134273792247862202936666811011599951191475041347118983627097280777703220733503888020047650748349896851085167616093166890343308546287368504816564496435801040949258975051448813754480249232119949763574168454733223565489619821607117873303259968244712869219678713874856483352751242709571824462664220883699788310916898553362145106417021754227272536782086069459454053779722832738825658486394812224795608660615045459200206313743015887151810534043454469406905490704050239534311166914027633879815757249627980936873989011979805055838544526182701773435947064765000899353118648391089638514089439271482130988759683996891074571886912543898773961316213725360153405926263903410285806817887427008825018056782137189854797117459784208086151662875166993522274256483169827852120688933571835188461128596355432229361607233486976406276488387828510653020929160628140042880703947421156446522086652221703609421873220015834560907502699052273405194192076698891511911090158617016112156667224523065612239718222899646299049383755657356400489105867348003544688847481722145164310436497137105939190876567911464055271749226518930531142457595773198299544818318538601805290263841141170450810546474233438055538999043654127655124030656575692595527850638318808435734761280214086402137616504372760925103925419301340414965908121915716272026823603034615937119889752726360938014150855114312662522049124714265624846440643923235612324391261024131731532621171366973793721112472049604440055965493232085681233279031688504461295913950545772393125029068380752062000151081535809926095851547399307465749209509094657965197362106600291112955257320594225250654735929540670585090061500978696491158312690193872201484248722242644514717456843144498427873322740937909280425572233180312067679959695074807079635516152666943509246440395871007901561253896907711392560345120023226615213031824041620843125768078051064928273276929374539069064374155648903003430252695427016493642674508225718679469465691417848737481646924282173006383914004786008428933534312344673486999343120075230946375898303159117433782554219231001698060611211903724193127276216563118554596836870121636792913717205067125740497254045385505054876176266927028751060168908773920299283012671528086878180944415063447600559517603538894720713701252299253532861676493416759877298924450143695134700959226217706205761959188358665314148409459604826275416788304033853339292451170898335498817248905970678961578287007068718220155431045444475031019513104706450427844644410674648615960536430520809601860009619510013029589072285419974005243694301713895997037828513758232934052271765023694418482390978201205809215143146238028027405012321095050462449542190945458543774958740661875381556252295159103979770729543001559060795196814910618277703176801417209116502941162806172565922097797091711235005714362273680645680840641268827000568726419640758968904177173426737766708201248192831416871527629058715782661288446148468955059085519128175365651268353998562755024242420149032755208759037475155325136052131587978122727663647591668521610674559121068258943553072368792063357742508898600909714264100424446698592126774917081314228330127559206074685359321890554744548497187176084611097503209547231362877224646617399995306633923758258579307025236477390560662150978900787404694342656084737721451563914736727212722653333329985281890161795261123401025349716140287124178686457414793666807043742797743768787824873928573095743391452894374802305212963956078376672533144295369766782311172525581844077974001578139259673457617428189389221601598787373981185940499617366696787704140890864757790429667542820766642759605809096063263614857414023119612752964803905439512399193505299120580266023843877890536973179556678680943920234841814317483905491651672361069965116525529761673649359009554095635885378338982952922633357689557500778083763948108903641733512718558942432664421076389362955397431581613160454319539246571938858137741083975754336394258572224515907364544064442368743589812892154752996889478176409986290902148136819224565395038315574611208701437564042400855794993261627480457552379061209331323363992936168204565689273063764968578465987241961936178756533738431384450562392466977370786034049366735660615907803234137182259341672471343974153094523455435506369115499191971308694475815838622586659593659943636255796681064706750730558036362494466746872347092727721512906097775118190904720035150632148676062084396469429851966339379437465581169256554330716126339896320603599031122897632083564508489577992713505147409426287778113040752326894042627461065439976427970992207249351485136817185049486343708442009473060482087869220124042011769085278121674553914110418416989036883323304515041152111817460739534347262016333648072925691039525067433087032640530369981696131485371262559744620911139661101409601473343789821322274003188870437158878384425235159772861688850513342083659710505354203350158777686279766336195034977378884966469647557203783366735380252368934692340751740725239208729387346832365871078859291503923340081615755968002659864840422072206390085291060146805705097548452639597720682312827172531282310991537643511201069003104968083471539627596104019367652215834383609904529602955936056452182915862183518377710970607229036744741070426978592178274221472569934085828415327302483731579772028878475438010609933920144837568327204291450248952737914354544880578004058465215085086672016286914462445727000248742763901126685076464080103290506278163714889898678655112282135339037590299402570105801778595698283904042666577916385785903924453708185438523968142041453039791006331477787253092787850418850201321554392393868651958532322882713807070238870813262056528527981971080393763651812686458535634415211775772805164410107766868847418065218557131364135448330401313494049851161734185338424945960459414819272153232938697638121719404999791571072335321725238281588740506735632580425420715987910762788685741540450839781231122493100750849456671890042908518751542654227600853091015217388151245130088741629991651293905640674957353049834841762263219810639768911263609482164513698792767053703134231806132695065901458860216573135963890513016836647232817965531810166108016367208369656028656339887720041841333723501034965371373430172876126698080839152187883020652227669041879654305991352015933699476523890763443164250059742133198905313864264539171905098510362519200999082243892546811416446219939303129073963780566017846905708025782990401221381770778073052098123449332104196391988154176542566519426060116784974126661190121987685865138529310114462385354394999311816816933184584638796153733117909443905551571433833295596151797158212353485574555344866893921788019541099052689182528925099118142375469823701740765166313507216718206576303673486650941097085288413155720745166451611143100863307975005315446285709694087039832768007820074488910768234319959121754973506932302996325012125121855493956642820534741671890608604484612702235978747565361381755497147678219314331214399572664962351242206978828285999794972036828075127752249366630678184107298546547064675722635198504441343838210466815067655840384875256660935451347480277742487904034472320095285294874537606712063204419704461313692071336455921018543425792349893790665113238493269454751198702108005817277603599636542721045254309397904288445426146475278989576780233014212091073928080977523939676499316716964239049596454002370106516979584647629179667433694938223538663161469070147388163124085685956017107116422747267529733512946535248699503761545355125665381685578294529870809230623140399304217863038520075067377878175110009744188474904100674153611056221853153719989423372399117214817910121961937500907876145397554731897432097697222745528883229523774885919607443217752356316679616944578195217443955151806847135777076724961269935538269555207388627499676206691969277374789809098911299706373908941353910035400039262677451370346011786019828602905218837767550251531858989321070584492508576734088177162655374836912276788858919383328061249676514415036486114636604084675941877794397164874156817006978042818481688175260318649661423870489145793080384034416610285048557058903144501857822946337506919767661294678351675033091791442343573686118570047940843286321573462313359833730041764572210291375273824183382930563388604176467925003197954297029302279942092269521906109036245012104417364918068784403662512115362564240925134038634863252843650014914113921533523646039712001177282807592958617776318661615186370754773766947939870422374373455839911424893226111854993452388144118167541748995934016378080022974936890907315725635046525627498330436893118278401237785698518064509425948396623361332101941887261285467855120363282917151151605721219198393216231732928638550508414486345721481958679257425014898026987139822055798144432817621093251143497796265430370814456721306565618329651533988353928661611624364269302603816575057921724780483824342962556481384779835244362801138673170734104998026733988291718298288318262232005100524693372090312485595849308402655893909606940511426656238673039072046120967823239751061928784114746779702499341713717929072821383896175947274473894935338448415459533377189391095425086166172745637932377347396867607418700917117847720932314264902964476007542416685772344556884375954850578109360500493937223584768550700150056354813773504524088976831877379954576269938031329307467223924085219094754430870524549171158101559282798197357394426757256061020246621524254197356248615137828840135926566902015362943253348429036626841061694596349767275628174448080276288196319380184438305059205866179255108084962582420764402739161426537581678650260067051916886563327439007935529170212481540143330705993915225620911980829099522278867884411488409185390469032465042581085921337317287482985640806980744294616037107157380993476536731280074460526308925178763012549193884716031909155698239601469766649140278109880148779238720913480240828300851090865252693175249219093092097410903902502478751299762074223222446835777004742168535655454189723321453572967675041018883498922851117850054574879375484438997757358347983925675478162480211849264426675196775475184775725991350236510730824124342409626384413682692760069990524632540440536534254993987230669454220743767609392225084647845255430978985038463427113795970765730578609749848136429436894399413126932776296799389548930330579838210190568328814988025171047074834675071444453480219602839723044371992357705138930697696937857609963353746518641729966389064007327147403631075871418222316594206039520901960008616370116058051746827044807672028105517140368314338744377823731850733157527196745146792510834515917227936847940804168651298312454554677051337676634652359847930373078429028916545323296033678799206850607930533874697687551798350089039115126296182034959810112967867203956993346674845878846183227605777498398038872215870989935092229400423341181903637954730029390126199802913119356196535036185815855912722091453836009986027584264390155895595803715469411753807837849443580146000536956727610629275404516605252167044522624091409622040549090794420376757204275291667257306214041575844343694529003712081183626094284126421451045718600353036242880474757201357287845856694422499513656665300761951012344387646060176414210084182858531576288376622981092729160919024579449985517431224412321409472536815832340508288309588548204057143835609210967912861790153576005724319481524817384412117872673118963898873991906872343735813987411121172415585453706810618833372189962596252465865456138399070479300334861738077231011247277400672678965729773195971161591826794580365608887774556832643888829811749649381481524707481028060625985875243793926940272694499885729004812815906775210772958619929307967566834791987487070954495364005980173481236418994962831163324145919503152007974514238339466211068298132707494763657968839757305324722873708239009163285879422855089127885025368675596940621600807412045499051605040973911944110439639977796466533174435587837632677396052746216662294851195812688801603659300047206140141367408835749205604567223222566978332918250306587568444437227328362831212207949846234485636070351770439467450503263023107599504244535851513918500628629993689171637975325665169248255987992964760280562864611104468658374852544677336473726710613813176308445774248666940594295497537255330320757208247939608313155700828601804044681639006530104324636439790429820923300884757093799806258102127850275690738333933748017096881817815707533638919030963667936816148550228888407078042582055374019877015279105791307206782095800586442914391767559505581598277005500891833041539868144789758891442013149289628815254174417063696947748204007444713692602833622532093327097318650338605907656061011315259926499916142537420471221118570174879609527681557655246086638044150433692851929091816345660080789461589167666825590604542824071994821750015168169208576621897902207033080789642661373085034816066442377961446195275114086336182114799562788598399828973788957169354693072854099353177473021027033718826340693301367891397922787596666470426060426134178861268802690981277571995985131359933981486715377434557647399045654169581670491107232136743664221732614402241175877870228263964699830817501819013639429117157207652666614628398015666298071862940142735007267856203121349496397669843602363224346806762917833288226740541658991647914356761750376301018684432464372208216467850032028221461721306975545522124551968613577540286404820109007555994184062584283081172060966672832212184802503394838492760464806580616581420852956384358925972038182087162908653521163066917635279776254784268184664660496085113555138898553442027438071308813819516692986332283291339541020416291581038197394915778749840091339396001319875010027067602873830511994696113243400506001804015270633355753922280641581633462850563755832505385664922390238543484730571491250644956446421686396716723613995883630158469730065941143005456278417952813770735948972706860467086648670394099533372317527165074278519081060460631975841076693245008067382734081129403355956044399551745773362550635487485835593911627711578207338516201581685508317352610897010629090172959682735617549581398857398597954904044043211697856180384687492038223107050228355355786003947282955958612302633679016213468311883545264753745957930509953124926736339773463681312861910363094491283344354503416778537056673397259340408289425503446350568215261685448957619782795219794232741094912268707168718253020574447773227796938588674548304767614094592985240317916450679798119005019293091363056438387194074021898230216171244739979146871365952466003208538895086997354130378159068925405606811738637049714277833142357288511878580962183586312535008308049866111938336163093194007972144435127644352359792775491746914656157497750711126252885412781180303133391783289819887979813361688717635055183333473954936027259465919700449153258304413821705392983264852091088243381778181068402906194715116314591232747783575806543517535042447454111287632471080050121773255721269684480332054743243729638631500510943190017664532343076351486490908415789834017788695127209978695740552402933591380693393412169630879843898253191855365145175519511451380407467496861008560743221704676726770762771385667110941127480080174670167329513976437297828431618004259537881372854390707590209183949032296452452327429499564043571976024531574221341024983503691415918961606185199587049019330338210595774294013478831504146826043397200674859744720630246304592884748603071252948239035628685278002859213411331603736324263161894033041214703719453562859933051103493135425999631613474053396829968879953851433154400368436290290391588981819357886440371758323679862004483003140359229756316069551574014649880482737252213042059024165388337700076848285218768232668052728387088431540234263555995276657988428155371440484012243194898159148419981500041896743576730582460097824567527024238052455749315115255857896962684180862296417005647129959835939755874596850819923191101029701324735915212112344242251392865334038386929374741094426606208367694349615044928468930601791277258649651145234994188379773293983818406584095512580792917413386856577714285942719962622309316857478489647735170535180440833884533886193409038634642670152587840279277333689606417093055752756421895620955252181741595280241849400497316422840450742772837359150893503059446602960683907013412083166488888309082774238089934736914495362575906666766380443257590977270293730799330790860912972307136502737146763940803535924382124893408519032437019337163559020042435321342217723693558670475582553662647878453253275632144206596356824543880434580035624950911678496009328839389788318823002017037566632058593728111003452291883303236528756306220860662936790156501383719986589898564653915503653100268412444755578421236098839484785100841550500476901096513823059067462590005094764609390420897047647951011339310407916645484522475668702959204641992473511735936331148389955871424761619309098631569403647422831320126434126746665778279572237679974623635732939351741192348284832478434620455243806473491039030405460610783576442446254896686518525203720587761849837383426669605994778769942644909381892859886264734470558788347764454864227234475740160001799375205939424081649372926934149158957800750684934275904703364499139499971271960158515087701087086909200487262743529362568385739378160541136817847038048156615825352777106646587833059925346713275800322208964162227203124786815826375112875106733897259891241831827990181733269496171735320531814407051759549592936337047350089662148238017331768761530935949973560616844949846491973296891029800794678552963138081276547266282031553794866799160870083730445397926628653824652913056001012231262152694016869616540231788848014310123178292493686690133431102901634702717820708872462467715903479260284560768018946187211356855929382064773730925715555927116148327970889248092467213911249585279610269637526777845891719607230704492988239886111034879343162988543197892139823619546826207439482060505667821280440072150555844243998187970124670509608003559579854973301209858366028676570048466685549630963057958342136630429155846109055352095454598657693244218172961158779222503159886527350350733359021530064192465666079382148834549672010135493313131964912246948208031332664265679492264214033956383467999269192757569525780775002466913980394264845949869763558854800023567205654617753307583413326737622023917484909822923443495736877247285178524213604264761738238157870841750816819472291245243136372590010210884238423203296573508163922509769810187512884468457642991748107351710121561181735613543484618607706861830380708666035995674185375140075218927685689653450139442020750015871398304541783192338798980386920272711706043233404633776551852007103157581148021389916338715316662874693078211073643111880719411434268202374688271666305649509919979987687900992454699671182599391334039526817712933695376175861027833018825092132986109073274714546065073598780837265040237696710007885452049618460027066984148869848668996294228258126139121384439579866671150453624528674699744376677548547395804232266740619509875230113984086954416351831464478716268570254825594568151328697225057299733607378851697382799493129148652868263774142820818801393838398402446207387969961365233926431472863104718474165202279244799527200760717747329749954834209661198586738375287138746500927987033246597440108573000568390097757411593122237908414504143691157070971128850757414539349303309107660291855555823086128302745212471599913115097924898489137651495928205792777902461860848681727385153208895187145789735403958759995438534510457447319797264497226767123579771009777929660353979181431243545779286110474990087645765693467809685760253271921109462794413232390045497507228820783672547200317569550835131123328077123656135743648279617759224710186103511817257383783886360628781231082684357757552535678863274724108687747279240639776419019568809655449886332137831221765313763442644347736305645437334007440173831988609001485779447559037091637453691514945783615372268413700933511600493651641188625014960858255974145233868640015663798486108336838321278663557328687618904859427722338453771346331040098843952757304334377359298451723962508704570006153901070209505389714904413308387042405290126829890291378063024701975132166402185906386934461827847799693490268618318692989661061342299805627221637520346809786043623783582076698598199380925489986658332950382008156935860586387114835234862284918062877745653033559457948058983082361411020991547797569051135742311814086978885608727534836590247955753357411595371450560752229261045192254408775580032016593210329150065359055819192935556065611639907337331560698661695102226734487030451398830262113381047391990366875811469837112961838330420120331574045681893623936372262234684364283834331170102826268921606964785064588226201919042304239907676010859445076783691978644552668102186792371986792855086492050654953333483350989277987627837733889993094143987064639887638896548087600617705918225201326509961384844098206189557920412138865887565051642917167359778029732379476290797612788941022815092463966557121784344327101598053115333632608202769254667311176729253642163169030438764610346872606751699604065921511694117721557614306843367355967603133333056108175092370425976553456736871261287907464162766030957550211997059510744470351657060883311742570162557913419586772011000852308923791418873363823001393083122245469458398436394290208269363366355335821628637734344845248469834641357487037611751333040573275967004562732056291976971950316692321799510759784859816099879751229312638997365074031635865173521591431248907380431983069134988704546079491245816313896054732571570359716263413650872169610430807590767100818710470382345328200135516249291642724785036029843841277550781458737364803379060992267638807919265117784113046494169925286497894462494963870517973635265660963760289581716348899945800008217942209860045848392629486159093935330949264565590411882468115274583974648305648474090159100756842560409302495398478851981418360330240634383278543752871407597972266731793715171777215833779376643822186860176029914449807854023600227373202119346699864405440065354872869956030517474707861185729245429074114013498738629133217361863059499453943582043166938040505920674561585933122594304542191811684326583866132088531221353637148295025021985199033525490806280725947904303212085815124763005067243922081234523549636840169613929604529724039092230541110497175485160791918401346198866281498831741613822438583847072241975698561388478200499817705156746976708552394917068740039815886744550722354350456937033768730735386764241144278155981888151139953938555152167341286892013120449213943714105568758292418001521427927971555464043752705254484345128291567316457933823583718204558988446354916341348863458947790954077432684830444371742847321917195019552570180363721704983128458257786549705320652519955037088291871698788190943410636375205656917173822575005903937979365423061326637005408248757328458300385790803562730483182987491157470395486913412033293666782027103696524788616121357580539021814581555390690370191142965223251136621152721593807771705365308226677318311062609141995869180637199544227914264600815787086675876038935573554821581294503912628441166067904698512374345693719120784837105343570222194660589020933706251777529472353860813998872227380348193479515549777863532257888304677418580331677095982704413993893649700264847303439296849034913222668369521296354831154954358182460886671027413638528160515619601806796087794630330601703478967690350167706089187734527746499800802739906238187698340145734295103925408591005049288785475975685301481571685273197056183732099941406855439375322571192350907257215497571147836340468845600625920250347262378604496681559866279142279703055390978993855815025127042849793091194716373785573412672585651578854578392725647190230834171196348429357021360589578273862177424003846327217882274074777555293220460843214856041867948688903109708855840583906292029461141323222827128838408522187572782689980497450894475581820603763970244899984138089955791124564147777575278267785336785281222146339752039750019848793263234608988093121535118256739593424428858951889980265430075452389609901748600299745119170251342916264742650427104420435768725540505575306620114523949744647960914470961896486154743831698201931430459142693077836806620014566105065800684035824017979503310782416408707668927386203274560477917681094260355959357956686578570160792291864422459619530714775310869255679733723005059149541270804509431850514516076351911802214393658546404861715683122381697426833958219266623970167418384213383153920698447254319993255136859077257132422163288758614564451134244026689120890698780327697169870903991354074832491616895352367908394722173612766862176405827905761884441520024480037992533260933023484862330032798399768581905073883314540586757613489613719531973358781648949933118161739878824591229293121862595239843388263068150229163441281421330126831166602348354416021151140479628839612519021658027603589760609548731008742359363308445782485942410022055804559057996062541151975450331688264648613782430084440844695764258320672505713506769975260987622983639043560963400112792605790950347119271680958724816480301771828399068865184552842055308911311269500565808722083155051278169244838450200770428942800163504626445000607301014364859881816336574328990006315233669259596944660868799611417289385107139097017395945080741366559137329524234848509393226228991522438415623151605943346722877318841626203172678595515353025354556346847674703492752242143696082425334708245158550659941545123400654125392182087008744740296179070634546536783649780693316760987040986284872567667164247666113467742125446430492919220144464517797286001710972459687756351994573982794953894782304592166802974782644466709147117615478318382422489645704252817591526474391948217543810792690260459449914358200842550315256802500756614294842603921221018461930385943226284042855322476775582988138337861638417789748413988490875355306993301681173877526107899617461058272581935546300050168696865290469993099594294700998375888901951578676588435273419971189547749506376829261461405430696682702523884423491443816251615965509020376561259511646427493035855149302233548519818881348227703981548127048987255923385026317178544699963171798124086523332862280922222199784878643995672178837288891284109399066824503261023655138000693970881432494034603923293103148092048870578693951664595522404821329375444867350871885926744838174547330724182791457104741713048832864109361769694469391030526414036310245204827723864757897380371514172547440846785788797301918642799788956539661848564303356427171745772160770231211694853486404309203674677638967055547474705858034892596234723737380536930381883221850735258637677303180166888862277469909159849217498833861044201191691645065245174981266311749681084804598834288220123574246517979498925199826788271350919031282298461123093721001007156538531822618502214868204016020977099588991552336980081306337531946765080487287705007301546116490639802162188804686314619465230365467148344836837141650749439260944115736156531778726094063915302958333383688827172216725337935114541786385155762358276922400070322158530557580836385043953273322867190126267121653501027781916886489250123162917372152247099379868651896605368888527461360385326676410986197377980263571605734057061596158381030102773340493925392130204445542958348078774357286084149641645949379707575866477503534658075613396811420547091806603931482034002603121648928312347865351202107318425339625995117577252564368646802668692577693202169689776091123887059337952092567309942285939880642906380977825902473272567089815197046967627867499741139330031920291337866253061902345773647608913118122337217583775502098266408479209771197996687390008548622761073170301286837044520845749959646144573636784354466115597922846514672458769329022082847803469527833136992166485162453314477683093739969542880153201753546494259954369522456987381932823894139096918596287295499984738464049369049443942693237077962952993137414334234012973728347890686166585140886501164214309577881011936342831732575008982476427589835490879706293295815090232819393692340000729117983043111659151147604765779715136908301469760119441858123106865238538228050963595731938102556966478548938765613648125885588996371661614567560777191673244114248801576519736355349988632558482736146363069893316456826090476838841394301588824977016143001381189077745901450825220521415029167560065435027575839905578059876811301682509273759292722355924481853746692496440595017582501292280510989088169485673381452655119439133392578894591303233830295206654721971094690928965129250490494569952067138416591428043655956944751738982090942476136552502184175403602713478400068791844537815328023598203922835424714346732048280803055576975804912342470210393775086035888014498738424424492132644783731046546057396141831275984098142254012306590392224759645401870957095435380307790701619907975489265674526118510042380784348758566039737020411658672091293911277366840925132843952059283963921268549758702679846050154277021271832299926435741903906626236249805354590197351093620108279404298778110280246098421624942530318625313245606995021059133080727692881560656839691162920646007646015340471280147146379499030959094020794634398707430383234277810159141296265813728741483573696602420807555155662721022075707065740768427219993168419766614486502064514670214667381951872408037483231880124659292403210907684303123414894276749134245526854029107979606817966930577659025837547436364975004520997340336269288780917366946215749461589356421602425928453666253098275698637482974782148748460421440241895204346075630279233515263456101691790582311994205951546497333578717696773154753273709877469193085637014567805345021097368611360694677819331080183020320315928780352283967172375790039309750286975651935293080953709171938839081973909248410510814976780396938100012795417651105834743909672262615830811989848490989409524628575750070597071759641693422810341845716195094248548761220338492320408780039899351972761632348746360558723124955503257185149792258200587358158151882862598308008036220348615743471267655513363439507304139001511436399622649823287110383384607196167196590910657302332646796424686696257784225792509778698314698462148004507376671953165205373268171807819088198698271012857937266065530656053100389765187822452496962008544768094921331727982156933661282094400841557423653252613621145176037356986941358492659344353055193942174424093758410501675562154555956670488834334985403905622614277009590880162967383865302554880760759678002635892372256166563342932733656558216774359461347114860549941254489053046741785121981342539975421314978263556686123073668743972013752365370689730322598330462015155373129294281702539953305403353913491346140155469074851106476124053662532064567669082187877789390542318492681870409109404090217403897613254051025968671419577628889552522940444059347105033386535236602177529063636776041409526933940868554598191045427240083315705898905719560536690004172218350035226427394009895954741732357042917914251068682410131254037047278417534203307667775017673936264401548908147329774380059012326861149682834474508026876620009086442406665443226688589351077495470098611273720135572735566898668587675571064898951424200719220597049277531319229871618303460450994114327769891613595352418392554859818828373277569046970677069797965573978765021747613375990297223353840651846287896017211549866157599042028663899622114995874729747163667015564123721231837464217686797283604669227722423500092476053136689643253580111893854409811604985243069300073734200542703575446730272285213007291213686322182362059277179983949991903254647584462849698168745023775999232180900325197534334557574002677495383421353291484401678728664373502452365258306561513482403890153286324044316901864041450626829200511849596549393144527902770396938760128588530991494917499756033237293024573400790564938931981114459473885489203422410210930776605228854677350857968095938073618168951908175858311746367068072311064754670516254799274233282157046462782220555309912810892005698217475831592666893706591693839030396991627021380292769042033775665690511338650876242732251759640010147158062555635055020239517665791459179291800863197009135858889645972890546356651665419008142312938513775467622424757230221067065525050363192962768901527239777462821455076612183666240478238719152464583789134664986143361326316527182064393926784894513519988740706974937293662142050328042428915939035923466171849525644203592829361722718424220115647608079705649217961168326287075884327657294619278850216806875521761044105801045786924301870305091369738282371454566412878250239903031794320257452250789573683167524598715161021888311044274743439982157786361638068449642167919865157380793406733151982099976937540269662326766523556634316103778387566952878353600279012809325444629900880683587921123119110261160373120237040777050785486742904688856856968537230045497353335314221936395586174199123472241550639559113649123509113167875095705612374070997041828335281963177731252682471016101738373744262986891655837701974911440735500177560023506050819044099323018673391688202409703082710394638590160243619545778893089211214048528322020232390665405441676886930402327989848482365005198780269119523680223680070008569370839375176493450690646188346340994090779000639015005834607296668677333131680215796897112550914778169880112462555400919193987193393020210619689632170055662573580687842941493498648191010293610835538646232647925296653892768890610233667089092227975159797351420957679197428602026252022502870529032262163314664915986595603812222155462012099907174751495528899868861502748305659870555477549892916878218408409828933875388668392444454663262073743466564495272462269769621953601774543911176278418632995582756801303639128569218928186661804241630752956535139386610790992600533864523287891125171151237690999312661815814002957288518157514271635664585632541829458091754000067810714063276656609754088664164951767664732865868821158506495460216473519372188170650915041010031237032449628386952274693840249994959831513989631855165228198222745063340169533226285825737189630712144887132177512118441030194052878946563164600888282114675015158133077404746077704642027553074574032560030423153963466392742162597955176260283380192657066584712874468702890994779404513225945957926670590524600040074139449238361586140700427464535165221287122248130025290966611248491516987027277087204160444923152390560333810598217112533728670937163506324326824695560934038849471721831113561161406435990993369813108156827276952253256200617172692870897972582151323770345385420196401614265380865525844266751910717583337707607267581531506045094354629756634538586418341209469935896368744650729074400619318297322286493315010249324748104076366532824239942696692116310579235978436879222156430819333440365739940825925880802752355313843325805769531466514113157158445405919401168462792600955435360344969514693361346830901862238519301066831232626361455589579286946112182216485458422301764026281976338087856717362377172031360588549129909165190349013549927290001528996392243248059347578677699559340133506756177501948048104016170759658364896493424755287771420562000889933029440964493413898932142815425390099396624207537575427100477051529598695464517529038449238774728434607206527803089608850137607624350447343645257177139200553297729211083448753240167814425146396046846157548922273493479738762026057168681888027854711064457674937251331333385081314300636828000223893915113500736008790229004990761367613785457560691232930851816826736933636260914993338078099312161630149023828356156342188482654161142147394245361713288206715209127006360551546547111965623173908176096050673694883042617471106697517646134715200245685556068702499941077307591305701026450622900481256426651504911219119705620964802000056342438235095157599714765739479265520585711873098191983115061090702892818386416654879176105093604003474862247757557009103526016716596265044153213824977346498642075381242969353890153823814139135809054688748684100239706927233186407059368279340726302287639762577705140310135024526106483086208470066214190713122956340788352148430578439256638064974929040187442642496366058729777288700195371007039483624054423474585726411442880120854422478785865941099485550408780956646358651007072625839735750645913652097379440925345426640657798583015417148558483733642771902999637097643505280912932861069124309380653057576823045583951094404441317083718599329466677075195875887524563952592570076449390031784802797364329332167029672072032425413609309903031505421106055968412505863752669514336993840786592346532188569138795313315028457373736458103578605289376540179036846113107005736270661082542043659797298740245036900007557568769420226977771237850617126546843764729081728078432287556209666931624436351191185527588878760188991903632294726375269849134288634187903116363888309955877914515546714360263967640351300653133396056356503575642468123187144751608598064707553365948330618407462148253194608314534324045903577842863329553592036718023742124554145046290760497457497154893804252046812509121440545995202344296922947075999664690911308331279028096215744178399780532796091622705031271208124485606477208193597068995974326930382123780076487145132933566268165290354743912486397311569454260688066945724265036136404937960088668918246683641800673850638193652452989450149130452817521724531219700487736316425995549459634644693860804179964184324247663669017890724041195929040624513469463133538472180972896978054061964906486532841468623502664165030229405357292896294597332447821620267547282019085118186205456518825806016062320717878486938025328889920032245539673594397322618957582922780518903990753746842984425274532586998189129838177562451345352353992082437571967352174073819062789613589498131109241553503977418335067937409950528656962433685674898630584200164637428130776633434603016345010627996586949979510469244622061429399012696307662667834476322529076323722392316153872414976192393958124176468108708586127188982839765533710608895764885297889901310754909792478729048545887615858043591707509852503733523262176752635714183733413341486141417043814034750731676655227400225473935143908558321231260889559633285479178741470547227087982819438549457300130295548508006737059483614483789056609698827142581792668502177857660804304932930040135079277240179246431015007983234469352374053054769377259773448983832213313069674693989496059246245530885776349241080962955085200252270011695313117370549388157681266740350326014092545228699791624223697259570668838353348104281204402891241485056896561759612151974462232181566208310847033518016569857684951320269488479538996368126215065811538882154516021560682572948573680251269804789880737204751873890319898854878098944206046953004446686241838945292549533669789655103858359163558077410199775904900034799740565885240466296593148650434481382618701257169816863621227169512162060392867610102508691144883333507999324109115239282343963898036789268099772693381342128479618096612084341014184720031780555781677301534968654310544121837451927164663189210104794758468290248591000471483982798182827583901805646648880728159471166879798784545182601109733274388196647785839459593913405181366043489603744246247193712387720535874644606305565101180462710944813074230657478502063137157231979593556019755416936358311467800713502073473431795516763055852873261131494522361541951528604768608524657928728684723263344355743554923107796333938206451505827688512798064596386660631964675359224697164653741036565215933909907992670737746588243481889873464598399225034495519891418291288102657049928012358281869330013584327328883605228909063176767232005344891220489106348209337092645690819005442611472138990726280041911142060183838234899108304801212484122562916807216528650762066458858698590630648262263386958436578698197077284917580890526074523971575663271478522570712149971297719046291672852108601651032195808293389943769756729954067937907916864983024839576452947768382511500660135746017953798431157394588503643787266265129111576139629342480712903839953048977556087078690899654984138922739744065525526284192362237344790933325762582033522458393544784141773367279349954963487522440086322568694992371518619868237592439798262687405276594571112202269815974049796184057455464346966591448358909304944004813655428570084204618542219022097962527879155466527455448212035073824950084806658139708593321189168789081252475420134132207214960964159429928957277406336176408303415060991659198109928043589447439543662266504005126422012302939523462842351977673214441086309056447274078260906705548391738447423364825047180908278079021223488602426164457964847236674417593329852197044733478087926852993262073336467961889575943218797100849386545948932236454586818369945845918799898438685004040613765727463923379594577355387653509263827928524040673143075128361037574787855857570859211246919255896652571693193931702316888830306138360018720959711725558690744223036636175228819634589074290111633531889830175333897281011445771229669026905015932079741654534977290514587941518390520258310238278688755070218307151848335874806862431850571052836458495154161200088690833104221256609741740435513368272654709256874578391107148686995199779407697448045040238870391137805598122708699003562755788862176617688071527848511753881072819808519317495382676287391297192991948686941066182553070255344104656225802087822418927827851026488101403772798228820014756529229172659489588726682769332140139914439095944247612460636745041637529607170373649248164239295931940409709501935119799941492306802557203612043494653820901260828377999611612066915391265646988158684251074835614386380509631656547291237864931759159522636261915847341676335184843119087298400107301680161744092878905570188568332989133900322320107605990439326685424687904389583438660358838505663834667325252376803093321914540518212396433324467379001851568779657814302211091405502378354883638528168880794393167970443134402154968960368024642036129659736235156716977475515345367390480991568124839906862255856130798325227612598503872452749748288649991157997709818891131996485544272359065296294866358067192631292985306476069728244430352349174615097125403300376600597162876578984962718552340178928954416205543913037326700894584150512310496224612849191126851846147220061636938340240804722701778057180563136598124920025935460547661299043936978988265978630074785779167425523254979930765842173274391968621435897600821991321196050541475775433307379942755431710286851109436983045402580644465497717538970823598780626272373880201600834737916801578416220664267692777496576613129032552702415619720707279914040853901788283692793953339942609924261721013655182573369522679328542217775895346938928127056836265690941546847034439307777998327316516838057078668414186757703092672989028931666602901195749769937350772953477283019549473119352633894582377411243980234908143700955146233146656437846847190747113385235997085927360163529374536573875595689499712315753051374351449552551155582332674149653993466538578781929709326919706737107742199632001293613486753589867357769478570948161093901032627871072748145770103099693221409382775746390937894223384087325422982819632042417200145988981667949626340961604089440703955137759751247164826842441357969649404771620747010428595921407528265416160825055173137897024594650879734678159644078627837689341163088581975913208640418894979895514088256313733654542389810071864288387174577625989991105747449198967374712880302369051163338282188968137626934286067264460739222053866719564465897184824961857830725447009160864243180116975283451973062513358540313396583486001319198120318709239397472993005406245929815801543895097388872901986506478561964345259487574360420040089069341704783995709266358804895284463332697800541372665286435765972777375766565749969317400985977346180747243397313410569168262814068117504526420537818193890406612574705882425842270061354612935413977362709099841204324926196639696336693695233310129025570307837554941446300845287026899436888433367938799000998763125069288512517298364818153208354530282625834786843420379573985227077700142445708648808870645376122689471809090588335948480209840992579003247655694936471524728794359152607530281613883211214647167874176181375864213054726444876539274807360005576328210500538151927045603524356513179920799034822425998011493440364749823547361098971302245216974459000008661797452223801585658768838826220458748679261602276693171192408551293020084266215240151407881016810768324932827809969246852917032366927809545845822067226316044727484047865793885603832344909647023184641696855780674112309211570950674609552865335584964340081308266423273002360433765309039254052581189092117833481320990985846404967428340748326774693930995499628372926517190438457165186770771151158382716479522584862670558191106692884745419240777576335428644644509273984379817977779702597828288666095783020825932354841053325597517370358128044497461753677266733095425043280519137219793029681639151893219798157625096790733942697236464501668270943894446276760945029393550582653370318839494733482048305780096338140088454956917818048532187230607947753687627610818807137964620035617125810715489994785180254466654392118686708387973849105575832166674542442928051850264607249640465854518775043647490851931385473477890765474380271197688151705906175116998351759969760915351662132681068497400489701362020941448843763725582808131372650407244580767508391558257961914720252854717183151318067570406052258325568347689728131619093998501284592751270680273931431297107852326064383163579897825187173275804559745350097128911756836418180427869096320618815273859061252718578567817485731285230890864872732696003618884799919638320400868134793930561231595816782173439179681630433925793317988419117755438283817557936746950305892010078291326666475499229181577646251013028930658151596382538503350552244818880978508235382826510650203522952544803230477144367771355279610652615614414487863101511761536033901734086997980057916358182302063342410626932728011079552256349656315010529523035249410115887110904554658869060149470246375011065311708371760067895923910387529813719555593479118530917424092765325657078984992724905791491568147364593074507400126898737042784541488964815795947652298461706845587853686653169080121611411043256608164601557972291392278534435265374348161966364829936483834311508709975453259902559637133884520855705795517629954282790085552184376139653049970863820261814589446499272849508090102655150234620425953750336797964058897348332990939592998541641539987937250016093578561860311280425331396509015190616305332614148824541801151178792173099260870269679046949278615516585440969694599006358879259739288539852140962977300226549112812760088509401684509308203502020758208654688611763538851763695896679875784786669448816036063948515680549184990474573793591515658453635643740184620011887811410683262386387948949720274267828689839982703424699052912925949540512377924299882081006508877260548068275761168819447663103084240010254112693883165069797758386748006206521621876290744013323757095217146196174990154690884570605083820449033839887344089714978316227306422387911324827538989501713150241129523950964659534700626774234467995261736701682766632666251498215649340228550431489287751729488453463681155986804603280074643924932497810392324707170311099356854702370070831447645669514895018937406313015607277829000598486936387285972120971917262479711829293490776028065649735566978077030045399528671411129699752816308020670623620748370797249332445962043667057564193394129652179986644575282160636562169766886372550639286126400786559567117971787073141782551341782476733055628175611170366022404770038664962352291706603811135392035102573963431819689083078419161032732150114072979453238613833701895450998143219638745814813378658565790568011488718678487046037723362539927174630541777302633745808770407187707730757774269155202245888397919791685654734129239812830416437572141101338710410021508360031160820303580430494090470261156768597105328134797023078615122993815276621838464411432608345961319754390876543101019385593721179507790384059998656664526069689548253147709837188933104683043380964024332624763856543461096784424709871875459898724453520919905745818842777494303816059045365700417704243911769099295435893192645020232769263629102089100560454755588128583932539970892926936471108034428703361854381613460595452222218484270315097515393994520295610512722041199711511693571121728233775376392280923892512856628196769048940473038530963363331203158261336462523165266485131022461514116515401670656697727515268504190629238912542361339773045694148505072191785572614687703331676735655984447577078609248387623937573810518420873446639744505763573546208503109332611793633559889727403813190728756618910713709220645378245421095169708395665371140367310201067174367846384247701837377056448018616042925762558597235279663679282359933671072306404960258981697425600690143774859426142231428751923307413026583370851088626668992449266900770903568813874457912346931567671325396494389028879187779842004313955540871274291455544535030452808991250186309635739699015866349837186025478085933867891428126370506924927114607793941714227096510706423667222771209565980073663306078790675676120472650834809206828282349861764709308751479760388847981014886541475830504460519891736868611602665939774801167835318159220427447893755308664338831683360057982932132132013378373851686778776456576864160683037842777890336638110972280195481924924606273070743793390460613479248607370472045979921340492227254213036077679967115211472192806990425782390059378620087070449053118715051684315821718553661545912297718844534200525852355068502151265797881739129402158218568042659851731316459218304940493328467830350861096105786046859327820209975251962154017134808657407777615355877014589933612787620791342466067639353994141727364168194875028739924303568889169688831078942911228423127805711741099350279797890674507449737832514989584826394214006252831388815940228075353525976314286268664815524955638741290317961408750927840048919134860506502674676928215760302015821829800724869878212703925418960921932457935916397799291525621494273631978331623212300501515700755463337763292761032098036757588631259108172764243577564674455276600411610259085211024344749210650562895745153485290991436461405728084226772674534499077342968031069779129482328174784531057397195741849358911601142059633427315721353555819163150865463765979322673753090409865424789981552231309800163448789558629947006038186941916067069122533663453807683779974808256971339155420836514267354846939934906331632827513401155692273423499792629305287247696934663225241078214506639629707209188454906539402958670585922053561724023284786874742605911284030320351695973833942468476922540261511200607613814539552353875095362887233362555497611962139740270012743768699946570621602676491208961341093840859240784391219154048407957334905628909897867364152223691176466363595214438491032731992778630338033138677099860507340665524159345267462606328630817211225988897822982767684733228355535395489861697341354924954273261293631317335324021110110395920669498396360472230413485898998930064904623307430239960984959657633935306293811267387080848169622788416656771419013727601639937173806604980732074737760486942233640723799148434886211629656509391017464694770018593585740048663495945265730110331407232143764909306895866245228145576044510256605342280559736407565671201674751489160998062869517245894511940040617362564613451817925978945888017086438196864544441594033458416905115294099109969977893912602837860472732271134615492461273022134949958898301298136298934015404247613150218778024441047034159031057178921760273750721955087766493635300985910067281537085889507874581846711249292776662326649408875258808445256921427863668253869311264102860572416988472098875603052175519786190820776218060574097674630011310049459343591590991649790456144020987568426982392114748102875320290757400361716369670137710897079375669747851480918372880703535556776613243614938946841131485891131324279344061350593699060919265881891622462640615922884256938718767067458843459281802056678052933808660636614213909773630612153366434858016312996998350583995310612677492347440925371073579286596739890566184922281049853070256154469009220272087703577078008284625072492944090799518012228025821823622588577996208664056703755790293134636188525457952725839733056643056098456128049301821854342740930737142344472387779417241809472034721660208795804374371070461938727223477663054338604071469308180896687670445658081441798100844441920889089230804586345658824658726657796963371892206849774429603165023133003481076129267129288412042853655793519189706004871316616760800835131508076709295702539512552743366709452007594487008471443053814087616703821157053421578255178521831671492706730782164956142325751451910455471407735228262997090493312842559733522980484843611020388364692220408911191410168457155256943635887564701412326681818777631145311030282200819354040397979959040703038337683500013832181171605889144089226095057279684606665750641789079150429618641885588074194221767781333048672167239231876814939183604548248538122868357339483129827505761374174359326024261450229664384030827173940387485608350864669121096483073427374034098063044822900321712421661864364532652752974459018746039666196522437560571270925196183079824498231239894189074258631610153535484594964414601097812824190673338406556309824580690738594055280487998071189625285765744710577645051624324730909692501379358834604403605746674952169960590397595901934956950388954120611219829985651106664667103037537917152074001672414467381107624278332064864319346487261719880197549453168045041337793316557186241270385943225292325882778132287131418943332280740863325868042322020041415259377978997405030986044674678297306075870862928565401666741793382079981589419401436416348578978704259021103837291640210067362086743591239613117977649597762077894555877125842198156171058525617105809344394852164698077706245627420419804169747903980292671710463458866931683832544664864181363459637173420573348977294408066706745578024174821203297892053703221059586288241539828546088663444393816892011264089170749745778411870209216158705467838566930654082111115562772689078107701348868286223297731942968080672499804968589051390082577077162930206974110858314191335172652550569895778564452289659666218812824051207665197982972656086456435953862438454608019590007763682546325615101402176304404084402243725853730949437553285287028322211121608915195761223824404160476402513349482879880584504664814982194467785072119053489276598291351152260579660965983018944711131978142472716823401438206097581008105105814544569134463830698752597483805628821468068709444465286052520249909950876542627802043078603814092474044634268626267677910191028675197185310069678329628609940781556675206180324988382596095226525412798341228632686690383725818484350980705196585859923891746440027723774044277410170273437413303311958060665246440225894956998030488559727249432751377580717706562465106315862686971323101559221319172824855206694993363781094168559447390741572205129668883263738158727637795030982147163237171743081550241085323733365226827711495937987009906566818582195606258759481776578331543847872882237572242363354700973980629400341139759487571823764836676937921965692450262348257786693315997526336415791215171228201697681524680829566616683987530767081284494349136077675982379548946371895487724734768794042874992322395412274833214078857927553215956908690728354176128773741265073830603448084551520522406037588630557067781394112877627796746474868990426707845712891341033628341140118468322205137590518240845130334266162753585870377256491195599200214346156187721457879795899284779433813030998456395099562986604895614940344817702982339990134214443968853407507069045256943424139287967016005369423988508810523630248793110317708230340485039995676427938470009731076533348069427274966162166135547371071481249984053033081873724968673214442318194704096445094852689600824321865647100600980199495971988098435383760660509955698299082227040254708460525874311056803902152435445428786164527430197931416127940244299010063198173615419392534317348904960001806355611575510923827395107180217789984799310232684200536468657406791457628245645098107401581986502466235096243811339103006402461938613375781883667650730613635498594407975755881320398437264350960785238242306872705320008194729761571022395151093303999619305213330851384660380511196879884988025160902181883041489403730754535854872624334774932362402885806258966698188677695503002411869748034790881162092831398178692445225859144335242377242406822648502309532607074383960368092982757205168203373156501499315043202481185595655701330512046647231495866368056361500886671787103009719837881986643110328913105458673666827694612020638959781584517390975920688545267439798116513043648876225641036217705327056848502006223927642801273673931625451092171058200390598758172790912660257909633842984560581792370075248433346846419355976857501554664695323026859267064858595253783422229101648462595168617263820321380347345269047549306563799423637532771351153008098116315095094204399794978873483384875900183920993853460596904454963465917120551373099120140863686458365161013616929345351580357060803894951519050739951920136830769050984077240912644576430370661122203735083867422078683768408849208633065164359646148293272783838243598818194169381428153490248929931672925998695019629777091677503029673632626488358679267608311654996937175815309944284601205771540869338176095550901395458534103392807569300360341265217573774107954756404554569237291902313742113647992876373154165102327562962290025891270038830850159286625896463787235460242682420828999091466542770962453314802978168576471661841011075363503825146407083715877499138253746877249054993530862112884155278166747977785137688690115481384342925828399437368499475106769316907587824018715085166924577048622545298872598352295348223763079457449101545936027890686252093364989884501358908501705092050378950852597191100469017088559820337501240904447266969187815457123343258114052003591568775635739228680949229508115855554665687240242457138972309829874393437882934654341254338828566121249368955878889873626268068015498341490845538945803536296811478412863231335439540320570093329625321917590897799987676842859090934645787912155198192749686276563655733850889500822563653414489006771095800443554945352248744207276323774216950220275145687893043583403237351106857560647421678081946258967590678716782388448274411153493208539713807618507234287832460697153321846762498460071612430662017720256886163652880723183078881377574599103412640222427739615563407155975544723049500724815440795455126309064785270269347978859604841069316839510230578336245922556042018087107019919432574904770976522808963141064846951000530816120537938643646931085470023922233365541337372660242989856182138156949691273363055231022127688087627021125359748893757094125315079788717492213225077952828435824339015303927316599418708919618649898815356311388471186805527599229852274970643011308882879400582989044603749336206564185528746036429650887676645902305776330418140484545094189415412847193485009791837360289065693504778009535302794501752044700809028717818475872867386671656769168419752949089438653687125142056537434865993539218018865142098785446577167655756048179847978427359878893871590638004523277602851798232768367414399377006923723807018210623547798134471117622154442520625131361063748337735686197142804030822923642212295569947380082533406045638242209128270566546746544007728619357959422885759654632038735651740374285753099618276542100687474380364160052633740538596477690574886628874855505500495106299633941179427249033044769568715688950142631289370560574909226676125777037052264982212092605337399700771320100539595749408416648242922808650159095697826097754354186841376221817870870859265828870968266925739437524291887187508450357892456966799746996607881145232852356138469780667774001572220484489743087256057918329771401851140094741307708770034011726973094790211916194131147661071292539386078865778518215072402416277525868996989943600608784264058357143461468917726971500799412419167156100879160436634505418496161703020563918305715104136428078821065917650895489650122500839555070611954853170717548728435800089374286376298488086606729576023732832178840569337045210764500329191453179808839731871986281051606287481046496956392962655189708668298942635104391217239211634336182382866482072012035145687454999897115358002196236394530860865240630334704508733825307501468225573762018176660819753322425873852331498637546945976594422079871179188089381442652340464061658036634203517506420978266702751132602441582294729317475410120084783917067677689763575215326210804147212037771680413843000918533031722496226553967075279491166902318819661693673932802880091408099414774434410755129280496832670874020587010861275803289692111439046934841277617636079840579766180831274919390660781606442085534043810522715861053072515209931403370655300042907299741790419361965138443513258377217882856181215331338978521382662395315948370422725514471718367681336127961559187654539368584415689313200464281334275574059661758775466907508804407767907675535530657011231016289790453170465966602613320474396682687795453871787417615118656298544941803544437183149147938385315398130145805749172077566115591528468461558709775405946961571607336341484347598178435296031326509271447230868984630757569379475920172673428541281743618567651233448771579198295675697479649263966060568049465044235036684166826414261238770454479238326102243452629171174432497822404559685083215805073503986104244652648281875524290492099773776399484612919867005726484320342548183472744698337727668838692236834218058718308669027588819983449362040307351847515021785772062267764200250542401453117017725418086673981703316023179892960988133545106738105551637477236654989407033193730104790624174027202503228986687262389245594587719962969452386647061955095140616274265207458871698299794569893513483922439395206825036018572903507172822911114967305123174779175100863919836003293259972969088902232891064451609133331084836740628637013421802364505491290401297231872599375565486280653119256340905358981427175414780163283581739615940069331643766779735997598880627565131490201169137926004786546656020415563813092624147086318875263842156328757347529646365242868395268912505769625748047759530515338128770211686353974838850665142409848466431167333352080810243439891754627266449741122142389164111286331023493335853042267688725093992365861517050744016210826750647692616370758108739041142411256448568842805957300275266136019611948430667072365149718077691912218471367456332452698747778801969828081181516450021353699065868060052946957233279958584375661929388112905508503808519497216246543832539757129864366124101766519016323983951111334612950211111369555694226427553799189771206821341720806464154197630248158603483073920988001195853207037319369069052962797456736552662901838795804442687441080371615012542031409043587601933923352731866466492703895998452901748294783500746450486456889806749138189778788079131040211438667045910286719342331376328936970230858246970530351346993446280769262949502738951209118597190902833762248967891042457943382114386709814605867937444459428156531619050392287844668664498073472127195303978360469794200273989047696580164739870756686668829579536355693065904362870618603165446076718959914739681368028133316362943522596993486071567552243073901926506274418513058723646015051360755686363058454140031457128540361106281770338480921671591602337460473664072971314422344878151623318936549943548077357541191867986942337935993541492562869891073478543432534062115835090193660877698564368772963130942264704021285598499902261073379333696151871472297271980790070905298361434082944855988651375981121509978770974338911534822240038750437388435867496088758944357285634524530496000768138922098725143608842054438612824228643821303123519120799774326454492190506502794158645837539588737721635298632735942933601171826478211885204358976369906922109094495637628708359337386935080839493771600522979780145776637797140931978639641686827084294634302606436903362841359680712573253150393239095889026382451880047645688281807073846573564684539429366185007892005042978847489871646079299963269221178776681279935844805648907326991958634497106555826087089832764279397574192398698612203288380924930235980372484763551871662129519270545717672522302710939398718953185741757684872923451459725273614914589441955822376022628919143876687748917858855768196889349596315623115410975567734745231123392325514121176422519724331630810069045374479310233041896260811604602203159326716155294848656175756950456650759623075917760811687711255486583320722271766193554099619517473849744953481320417574559320615569716379088793662745925672104802195721205376100777625324919247339080427310591652952797222828207922379851491692179826139989716192189011968570515226981414408961968730725142284552759632910704820047757842523982629120168308717746518559950863440187642211572588104219806324020899396671992393932353237426194482958008169802026786973536914396637664977911754995237371954841476386995647556713382586789749926765465794497806830567262927052516103230425160383191686051130438345285784696139805208476410096229735496443749344260769154265329460774912065785224856474460225864756194308476680422569820465957087415379188878726755078033420794462007426562492204313960380288470876026078013061374441205617855884423786174755299844650233556945505922993317221355842010345476193729130540379701686636523359222362099324419170223112105811472941061257288241256063585315056273409099577097185744213204979642841846926884843223653532497074995292460911727098972343037636104196568732895388625141985625274904858715660385186366240298569828293187027290896551621167772438615675288674414056009814181396601085413269561138073311673472448820409644980240757646742965729063043918141300483633150024272741954831612845106223371745282843982513933866391801621628082706386593891002918697240994811753347163550039874938200560981838408570150352666333611689230827235043229300890237409704797129910290185153094135314422458789054310698740090191280774269089229304468284963801443386744040731048273952678459367471029886591307636018019568268544826318037911147682217084810780381324746406848207229596124999453305427702313993469483541165737121911912662817190712174922029273467294847981160071639270371738269842885770466991815634666518323020436764363830066738931247949270857031780882606180465974955090937273034639830849528144376208511081859603087673768851838890868829911406047233974501106996602099938550752663521593973804585426692570410346162730095904741521633942249040099659159775513843783811118106235879874928685870180453878438817796069989248098241594624644264852882529672674896608656582259349350961409896663620318019338034416909366998652815467863055519026198998270614285528092491878990886585557594662092532462972162883829046467677346052893819533545953418739431021271605850410204485804167237467050168417530970530639539987745338902459485801539232713195953689320902741956532869550902699115117629300147655950297647014025237348143153067781029507431370425427163414832667685909939895912285368164091256185286055306141664696813180545559844330243394081448193842329341575887879111328690059820381798102499221266768496606527520192204749373645863912919324841390582875120048331376835375697382336280329582281987495907248825774817750087856951959037847133093666487181481863533231467671957803019075146846031367325507578662702977273257575280925817056109604562020134120400200732710407624205559042427220139441397270669193100107887467209667007111386682542859979967103758484076942211589284012473908760325202182776390124205326084146140065414097145155093440822860557300909408934880942703335423720166953820503983861382125782364837226642175231150239221908732311748084347837894036724856652732023286801664103321331102553872161345632406435576612527118697211438232727479059145470451542176645897950804609242267057837944331359194801375812248961033649886364348595980884149678235469053065618337714231029275635461918709795873221511338980466969039385214936594280972396125067143441047753987668221674104555172046075764203865684952640806951330530639938119409083044152231887561016598366143921985165947614402983484377548234051676031838209412437233852444832506455329179959200203938856936901570949126266892248009218264280417869132299805814081918622866384373141279908936394996179088802459288833046218482657199280674113618299642390772508755721742192425677748960709065440741653695177884746525909316693187928212354825740670928645370315640745638433834863807571118111625020580794835330055444298448969576051467542831470839745526593027763406956606165292816690844951437263123638239190276057408394636599731075175327972980453090887585802722854413400628427881220775065293184919040334483120933429266863437449056923331753157942909863505161707506506961675580274598381065345720913685174944322334388891170198657509881638579265804037038844072428829860633690572651295257229254105389019215700823051908913184010251573438391047222947922872090664636021667817559601878600648008752348405231886188502786814880184254538021024461634828150005710727903456002738894572202140976383776933235413137882140978457922660517955946312185250396351799878692902650919013123356428840849048438495121325813809983692010329963965107998764787597255927357892691000629313505363311722664714345307143511404865708030809082442320349136908813923901146826509354611149792611744954937842701488299039691935867146071970480596207316350746723730707966464174717660623753755928166560059898719452848443717624130697544792988417413900915086770532226141708997962023238471367498002215349706165888818417403790675530853631501027647844085996438005556924876728589076332834906361935993122194187762146572048741260152566730737439706002491749464031768193545466208821733110394057278375848702727921090326537536603731843246989973358097038277252528064170842919359996832356567186386577815121117080287377848561024039926940502944001685023587747887128677040765723237837456439928502667382554360667293337275263581388114935594703327335964142473877309470862910556190474189339705815700027804667119275465135906410952783859794406903208662810280663118295867512766216992659515716111814325295500919752490196385034917493601363496691898623785724357276676730876573286399562947746017010684264185327472553547121482912637063187894055640878138715557896538869774031154050553898831144003547109634223210491513398475595713527524412034538634396230153656299746828492637192815486881945450972971920158196851753425430281019866263202064170199249800598559467028095318249000793772385716921581047251579467783777467507402916636467652230861892278832164845966032948446310689834950216612607337756077720689247216529355840023431744379853034227645330349146931341075378792942825847961330266924227086413934577483383947601730560943522750051074731035423616111870423743299532758775777075012965203240787529869809054592102423195595409692692103046044647472430357525916100269695611321914318488679827243928010880867031869862328587642464054612950305672647277922712922414444946817121669127305760114437482469132993785576084067641700016391729876399573738058493497574635025733727532370236620392019721502970220277650909216842508902974005021693714108036426257858755092241600688055028080731186062810915673456467319221337723662197075324827281703097450165457071205919645530285851301371701627305970372451986571601721432943543718408820332963578431825657222436455450989283728169081215856950618903689010787779652203205429983743008321755505959052171621037249546327985814224488615002131390190585356066173197345342606452894547097587725873789674887695723827531226087860596013010782160640605757918932824815779252080126052448571231251940301882300673984322031037776328473453939366451494743869728497276998255093215361770037815506940683125793888490739645898511272811674777400413302717563817301759847200626197348460409993565594992940425629722215100931505598661393277950160102141043373224146324624745754795419099203475948587723995902089874453863618117908623093786127025830873875669156749044071962232927913051437450692805900597923410676201032669609594425526423239972142418112714711576161274319265650430167699737744576718159065366228459515339246231308096726285493542322659280534073702492676315147668326070769916532892191896452382095726892229720740109747959836247494549947842889720736637199529096901657953104044316077842433590520380130878900711604659144359327510344261563020308313993757361613409946024888387451918856639478522803594843070273890584159084529537425277260513189537541344357736221920667993503674773537035232867332580825389153098492306502293451979336283123433742850796273764022222192284972019556438740264501416308277315306894273505631505962159898922195083271306558961143351843053547294591703971451170140122597408907248528286357679183596651362893888053706127471245248020868959382690321281341777031860951870675954273880141825488623690592858539103871718851652802157178503278214918190447298115954875742451237794339487957328245645287770433341213321741226026708643492682367079295349394334193756195529873846958010005165645787359468648256879530728063907730728948993105098482354166872503711938016604519708858137942190474743948412358642967453044961340803783161672639028414814135777061641911578413871882439638082796885071486576234168647276330850002291370069186471716546615044391174946855810744718325315611359104199668286647540448949045297013700740812956914019813396924275133838993013471108911464440499030323596546894850904304540297386553164273390666894784528954013452600699222329438058591639134156188263412212399615579129308145204707934877485820945027603302026638054440364448991547519512241412220934842799292803185151923618484731075714794837089440050420826419680787330636895111551111316078127222117482433327292814557892750846324827106510911296879589488204072883757659790763312677758014441306325041809172183506902427712962605947160165731261280566976093567661762443656512835656488056515947395902602052124339887324660380306515800835217220834178992903969292446958072971718150896276255440364335861627410224348203960417441979066569733686955298961505359544524540762650460216685155015373118008342360625119321626382957302763908728869306641386461935004111924087904885978547125714421230380472335571519914143657950845506672417537928432458590473468365158879257013551783757653932379945944661230456629717440019468651417889205719384876675429961951745007570970963969701847682159590857338545714716316369378569013768421162249020834913617205055410361667867988079886295962974428804685461462171499757717553916805992325068276034818611275581756884363831799577298436251087067595788992946891674911002646496226672348369787189378568690332523342844690827463454993232406566254546499447638690192923806566867017043518050198603212954498214471452589660815362216515431115544181300039275847168924072302285944551355561864580107146908466451680280232798730842851167932720763353478762745435831488724473736634880407875520960908103511184102898602376966462122061983436884319497404154026439116255817469645373405758957617678831860409898668747303139043793705922041394767381579285964193981691016243347087475340310236671527526477174571856054273741716699868469883913905853482941022194318286936747574089765432606052563604899269617720111514137374510631348075933710440493102053775871840253963943334983586507667122218522838912905081360286475372944981423518666650992154189554520065438029079603722979869268404901040295376229074916714199974569994835824229047697662529815446556464562540636570031401930193026705504446815177774044441632844379759387422964317459534307946168406510223177876742157883949245028660687153206748564227923209723286449878322612752327888625959439392229222828759684355089966511554915951208185057988213282351301471137059547292409921600717020801750655040672961626271352799777266748394666484091915265057935054983716750552710802144463921719193968393474722968840629507612641880599199570446983751117527210195593862688253985208692964559536049829942341480389147290857020733629083304407429619497301874553360292858842481703540643576203188770899111540328644732914538456943507368997543784366406624179831367548005786378382551034874585087055553529565733282961398242389374167715987993391407275085214906388207783082806830827003749258155748962945432994954053999635347050894889170871887048473710362213669902922288539481666926043915304451629047304092579804080894106809435320644774104030590355610439149862691108636308371168054733026954856485949903636134011090488771472848416004427911092685937505316173121810662192674708470997020640672140009917414361535858266294542069689357321468893456198918303712082022174034069141017287583854565038281035651133308978337841267294824288674171471909768707961387401633140731594642924780377620809526551836837336446653473820713558731921382072548053371394053806049170260885553576139939166308692738556036040504748294652144351245811579819301812046998753711496256184530124963316387153246056578005908814715958053548260917320880630610835939517507491619219032738381076994516400607548041274183542683577309612335212511943603413025993507426090085221477263648950534844946889012081806674414126992993605220214119515371429996768162275103093075347105047179691902307355925537029040841163961342693623948458672068015234386106779648343040154736811656686817368879730138985628181371321724015926050473784759017780207733443009193646486833029753264426303489455343501617699188404315907941278105990187959606948058692809954157526818078870404865589830773180827601375167286542257851185228293161564090065459228946428423676787311206349001777195074482649115493076154136522730773600686558923455290489165356612554032623580470404269812826652717924811360388260227727361437174743828276082483348444098653356073912943948352496202136126893655466309014328837853253775410753151265660732087404298644645413315439572420284958266179203901795554190209259876269326035424704602881497878915865771507777007817096662648743958959349642215867084093038779189920004470874871287455201797852449881531086605965675684808412285049065959069518103481708544372620524201844167553439285130720916061696964467520188876536031378330268759608265039690760254468565856030618366673789941004997091994490677590464842164159847130891058081997685160243619136388462898558938617612716067826468811075622120486074712612174891123812240997485016795761285369021654150886227212670817383248717819675093743551217550236726918839083182517471622429586599063093616246398578156511433820107007965427700315997930892049734752195131865312798138867142299844773053222564211077916877492512342482490131127252723773431839383267677110940978105831491245568405417458761867187046300966657592166033537840627433038603528871947858453242436899796819613584857361198043071962848220058639135595153374187762304858641256901390547594932626267127941154436379024860346439127040396782820972348564487570918637338226735536363304325490190829367098211809640571069105606800330412920499834303483849914014232913807100716478837434885912979468729465134220327711426797464980843760325603401329504795679514546879527399313891632639972540072418780178206445522402229680110944962255818385261806026001201085232508473291831844992099009683854885950501712809051956722638592478647357659844141565818620747099311128204310376825768383365636984038071782787148580515888772853868935588660923212508756441840243418985288613408940589420082490916244700725746504529514830908992622635688300725829461129116656169747373521130768564240950140984693673389215642491707348255632458952464571007161732731133620484015033747009066917356464034268363503992507938367052676242352865472922724045376795090989762586775343961410647265864260167343927059302932561414745983091099699642720109058619259518629759959292547020760154255276779228354063936165991790880303772684649448902311377253220113058093200972964608962080612600542113197269879068632409654676827293856211665549908935580695039950473056387020840353086467120530874623196011824338442754559171358450635661240777377272947221473702951831384921067537426740458122768258356685691384970839586364518433317209945802840378224696025565810728830245500384743176679570101235997509188665148206476491213364153694422197056727268343029117025538535872007754977963137599003203015811180759291827101630004483087360310247919005089833075351968160083612894545859746848943411156687067911255588909888896830411010968314584266906990819314392706735369234076021398514325417064936632008481889303818965611672708298542201380449087531892529972271155473447662919591268656942424915727323019396703050106553191215102150815817639207927271074425972958375585815317306603145477100411569182719610978718884581598235872101311492057125883950671148153998813507057513970737857934316065974694826776764051415015920892001069205378370531884633068146032496730928251597179129515227371998272041897260417575723214477877243728062799133635041748371611970068462486370706504768522712666235057619998330819158606170203361251831800413366765000840535715239982099730373985654597856191139514782602516893413293033465273213452279495903623633010212777693085026256938336500865604972478687378023207029062436784911036757982720848744531953879011561339197518138707457942513985412665185029190322872431141444699732211634961349319842758827453998616790045140245012241910599317023996778934116795097963370889916162780222863473668947267966444615384381226385238513155909714601457442331423974734898601171366229176951528460046484425811008766909423425649421321549139149625427742117765999428609377882261465872913607677000437096139360576539240417284681697400333677509408485099246459177345375213171861285965476431714668471311609490029597364358240746742962664225965850739296692292652356320769208951378608921838373103618993972200318227105824880311038257438451933514259120018591460297993090596994334509135675122415040858626743069009845453878237045201674839457434257148158939665790776793699957153531570903960666320637885472761782970419925855768160127566315301713860491423284149781576909284170194170436046544521717612818894332559842556517976056864236599139849958076184146163725321789658992571093216140446471664785439035592634876480353999129528731832680899046311648017345028942225259967334840652176295819493724590690702412114664999341194587868000697835787473343681799827844223776861238028295571665024882227118349699990905889666756459933622760837596090751206974547928415152652755625951266650894177435033606144348437088746336306360148682611155798504997011780840712499827486582209942204692611452015858191306348533962312353623633962656123348939301249570511812242942029316192576020198849686430141286959866322449655826986034279284912562689360541346624641887870638879618674755472858162679895920230554417301792342579709870288242280717142288967096630929219480279717688238187567339892175672677647341028458536029460145431693048670567930795913985748970602884634320741826621680539931348357023382508179463067710157696083835156115455397040400826538416594856019156509226852657860374594615724621399506917714724892578149236368790650945668405221218162782217788162474865432516250269470976851176649598635495316598617319109138916516964901441088541175783839826609099597064295256976696269566802702555603719871814560215888102539671347912264174703382483154294199689185637125803210554653350869441640487731254702763486865037071399596276629744491533812609651411887537290467677665098299263497122654028863784144447425996531591575213533131047820068217419043766393861599949179236580174272299842838619998691529377917895387744552406882796218743767781718637854277417906905390554277458428728335235430487859124280629395348836470878846702626237088064429426406144244053329406149468360064520366890530057438945415662154715594615268302658686157717337066032196928011074041628184595687176548469428243545714381881784164194092578956131793249115218629759718642434542824979786045298486767764158046002358744667688851443395604298749332749418289690499999405179235771267077039235698671675801230573198598706634943797198498762115982737283887825560110313882346244548112678292007300885982261972617760958911576125401251580997746453021253086264768588200918648702127526259339077879608106569028153173766020457494831104100493997442739798295675563778355408478168926300660728106145958202363641256468379655845824514453733945612773575167883673309404943221155354289677004269887267826605685550914877192157632859780448840794875786871528683983750518840921583921991615943827154706657008387100611929752975987038207580007162370134333493121765576979880535199190211211250501118411682127422566783696269199517118511866769096769299188637984249599935438897478106061110558211718788402147877933753822743631444908108203565204754524260890610967978115542458014688410360286630453606672155603614631833480194869966701622767853019027398917674136374522667565949727129234324950840355499999055700674813359148495639831918657931230763308325342578951775048781133165569710903504344567938101564265939360522072880234195790161354384670342858717062834507348446660899573813319441692268078649612420874576989201341392615357208551995527106111784019249499508480225307981466240306396688977626322725171228740897185666146667844344225755072011072566071946429420664867086227200781726700500806987116186024177191753306613975631155621510117899806347207665374300873609283287914899894138873774274274425859345799925864860296512784097660188906852923062940795950542589178190084615655340040186733208509590675578609693971250271971261210603134708828971490041020569044333903739990493221842758406841394766159705555761557114190077745424925359434568030961848517055451910722274573357217099311800116596249360561369787750348969450471174396717258135767715239225151317771487256347983150662085589625001325959898455309394233626090659082527854980900678273088462202141071426807240614454077681802116496004690659364501416261965320412071600883864335634857935752348507180421753204625087715194953383623604421545618712822073119749422332367693505966457287534406295056352176288757212394614317940745877490542236328327395533907277918302274224806047485771835347553385549328400454543176894028181049116426350769946580815689535663365874199294480960016641229070084148902984119219101837734267763900352167796584445608456890452033952303784057941125988401423641851738202122254681734746310987542560391790048223515534460287792862331592893314802758597344287090255557018189783671572958984727705911273748061944135781257674938596089574797637576939540979638348512072553053546744538182841858736402830784396270317377001871504095580446827957636094839907240877670558812968041058155383502058842575357759109011992085240315789854596665283393534325934663504381118908482673131721097189359025409763382670601641884311221311154065786961414738944146482399669598036242165367642124255051361204108714644692969114392043134579860367421140589520005955458024274479985857300954968698932687936777733750462708678687475222629722548349803168883330310446337438400823779706470859063278318590945382953806801964884909646713874068846946378014835985364707765666270228057539237783293792047869088123710642613999439541281271460116728226300793198852980497162798684784065014347792705791671297872489787620212243819381205056612337636901467717335540294891969333073424576053760650685114966264037227765343469373029306395920958996491279470264485135840723754092784338392294385326131635566786261980039028378941669793377057930653269622415965024833942280525825802725530292320075985658797637464854276811766020187659576351525063978272457806201617027026410613798073005072918020110222807812778384100351981771367953328118654574393227182845776576911174659423312261160336144840081188209029479297435480021185399039995967355966220514320941891476648913325943389245833167930866417640750158833625093639782976460076950279436467870101746459609530484941520225268149830293400777178501212414709723064579948095143475468483134635967694375864085474990634912766317122539501182903673552047502708638562640625331926309909780650657594670331080503912814945665538467525125598959191807383794168604445848160838161961584507261325651818019181231453921667426452398169250481295952575185272317724490665032007773141554101619529654897332715386772004370516733076174226037909647148250081414402990378572102403239190225112299139372577217950721428246174354165567911308131309015319636627199121239709172472425695680795359485535955786649143097446375571433691474406685219370076102797838426502261731083574099140853345228203252403233825128985304271805978938958065033574322652660119752366052709226480769812841553593474074890103509438920934923301314990808678344894205741758458637246158632317246048698109840250387127666707158882141190476261348504251611735329844094441170820565548376535801706721318616891801360834597808783287542317798081636973710221026102029216815210678922979348027877725002178124595558032450692637168891286121575509344686148746630098651279214693723607263471071218224023933667237456503781685634342775763633561020516203422967580796940749807615069099374229868920287084256751619185331269008730043813065902685159829254593292236345432717403413922764628476930239138365904031694876271933305442487210576085488502897717563390688641494719421665858232417364633684121051581256068249178821794935591211636372843094533148599714163763973047759586133475980480039712171775448483896206999397415270217991173178913621817009866502560979562942069055851596944369946517357146350773634923446672525018328732037300166837850840660864729923385113882106264145945238652874236471895110024106278400718647149834912300843382888842409943898332536183012619541114820230703686387161724472779593131386774880690394891882922717185565794744878900661849758223880411895394003045798360828660936870432769897257062778162038300033293410690443205534360731477920333259314239039109376594312796043063843145919072668954814569146835324884251637550176968636615653404550889512992961614456433873848922273485319401578331539467202166566211668006000110508130777335783182516565188750378500041113561110598913344352914390952168443045429888605201070687245750724953963747679565034976643355779960194918737665157490785337662462459234851194440761738800722052823073658006905536435635362091652828711179598365652149713275765326821780750361652067169000840497739631871789637407748931364457404707539334689874538909613371220415723216758690330003266537252609197427059696034921761211159951030010476973342326331635049235913122986116212569009706410926709965967630577888953297573636970464535503696316862282868103207746855363868512478964407147514628413815216396912490347222026525592513898434878698657901183104273401773076298226767042686110149013312437957023752838426418900316998999394615435964700072015501250232427597326951906608230778580668422269280037627240401667167825556198524847003842487652003286568351477888699152699502076500087882686181903555887049315788336835259110574146783482813628013486525111145731897191133304875936518460746358469846581167704863310427566806020516084653690343669630723999748694095250808035420568765113514111025831888556059274978040529358478554696155489888878095526592464533694448203365851164064624553909679615217243461860138157010011978092322499860728686066745422413396663449352970893262924888882439116350502513975600457690610810025709156615967583394744830641618704432535403043318995818843583572395544964866700426947243353882670533523884564489261353806111261248311335503653383257865459205872586504386413227314826556649740882131913172049756445424253065442467733266001336548614075629292457604353465904635473418758043759931969592513747800360835701328811311455828005732916430107629273889185411472839539227473099082186285260013541993462603733668820704522505643444581366865042516594499555663459991711718234448677885265100602104807172360472850321968423274713633275851072161612085466080509422723698772319969059338102596949144663430820777555158952956772247784649467871180312621300677325096872247323143818835761916863490080124873315389600611184088835586596932768441367549461695230379274571947105100383307672582217364407829802067270316924232090016980533873016939167633781461242487581856152233919993786046791472469389369290754326886008313469373289405035356721827957972426579278986040891155985696068294561758626850136544687763130169910171404469524151507731857479535260695569853157885035863148524534230136699460139620401404478539172595075233321422099301235608054811014770757450632087724523718061399587753867336469432280514247901710784578533713026033062687227273143182235443102585161614352425000295005773406337044799889317178222666599947063487216335442519719352216673506758783298718411118734746764855573805273151666323547029959362742675733173619279935051817151314828639519897693497396716651692270386143747258060762817466129924850014070579642353536089484736931342102931239561952533854796474441491104838491367458704750445815483558964035820897402237439422295024312939032972423198185426503926919252545983917384147366593218906758273164030914905397987238829572264993980008218389710366646065229983398694305992516013340280301077408655709234738136203005075743519769933497341764216570579667055998682305099768334694359710851348544841475636367731009811257807503250481988394535355278065011738578205458970617925222107356995002378695227887449139116436204793646744650156454882531269159793820182410122491026062235782201702809462565153453821311752512228397448685086686855279546366553043681397480357189043693046638507842212328214014274402558806685994412676672728285611379185031570490543136374334016035675360707695769565467262638375406790493313655834833164286514863516087500917927654812026071601455198979036935996044298782534635687160557893868095131201820728871021954218614756325818116225209378598238258188288904164399374798500554761868157664258756686433742042065784432849462560161918465849689965415028679520107084195325899908356042898139833268208436036690080931052230853348579715516740388205587915705270897736322877056167730025343122440398908213020176618602903183088962042840798579931675988544886626632026766190523783433255305026720081057001753029982464294950170619611792320444805774644294297380623853297204227780866329601911213434529366570454625883826628739562372515789907782614923179826739308708164353354688500654275690012192406841942684165829994829568560954031780213331951306546967882449691371696040131718877113554857195093818548685462347444651042534507538115506380336693324455233175084785248082603916659434028400201705176047208879904719845445122993120376804568946166854198263373783493485649582887565585767201898323021684501611168765388920877896294499166487817038594196843225983146299185343840741369696946986721888931478648330041724011376365225530180894497977101338556450491178649632643804179893518582696623050383579642463346670161833989461523750589742508379188253104275745564437985550243340446049466179286845911592649072121470035881992310418703038845658721200630498654155379146538712085213077468645327304305639206818193794016664872872197613518452369883960463185124098168658939420777593863833872919353061206325410078076022441834259458075701646404418964531096899042097897825008011547566654297758418352408752042813059812990830818292732361903019880464352640605151867685696396876419420122662524415309087578699799171322667118486310985038648010336760760782709295188183718122244762207964372071055619140299815098290843430884700495732538321601744289440468869991549048579422705169857036501111932848370897122718815759703615575994763831632609207835466543100222148629677234674680288789061087571566100514428829769058383949413853230086050802374489632733978798828328265198057025139022197315435767167273487968162885718050573369113431418418551974416985479694010840592683810728910750009961757496856755627066104895474904385333946792183163825224223267115779447259689030332846824199207072766453107172357210674426014028274898446436766055024994960405611136149028868025903682767246115880608664185883466035003257112901980668689105205029484311375729172489403597193337126070607622971964019587790707594904239299132607218850794036598980338195306680711049088006128030549824795702855307961668823479985287380009588247298828341427984893145856714031579103965773100131682112746506317359954027690162594150160810467770057151401085360223651568034724239089843382102956054621743896023991432656494537485726991619673717958114800024874550163054468065030671547255914102745454533172856159034166101601476076978700411584432010043829956960741189170896465031989704065295475992072912207245456699828041279018196938683519862462843564185697057465710741539462853202924199157219088658151821188492496638269397311021256369291647113190714697404512564666085909087218476510501558176494033696844268632152631679083345429146574417159334781239894884761970683709123868648481358404733482919486350186320427551325721254663738694843761206517657831839443230440751910520157585869379751411546121252118895467588538332641442872254797707995325443515904057558143491803527285737823942708381733485615042221707649457381640859084584650900047078101728895842512739852985087764532408202493636817360818488146965045163086287577662314573218373027744069669599190923560881391995820301261298714543583743254658604081314039103422487144573876818129830220114860190208606393224042196425167639608865118550656687831779443259233093649968595330899092773700836333716529976597471590196641948267996634210518092176771336097164863379498325867986818519013401182501278409774773356965931212526332251853075969231410238575441983950468737685333043446622783087119055613102664299309488169767925466426791794356167119656401610949988019512469395496999939442902149032503983875425023125574111821262415214880088237438393225719271006543575101478457449489286703027720030888033464338893146823130394658512647399260382214515032762397854369904985733273796054149385409675341998239292252513413215114743406483699261214147464564883799758923147733483920790931348493524103465742339095804322754674701188920394022305552346893582466474053476213659133101510354604566079367791626329874710381477138936289737624478850072225884244371466394602133821235686652351335243346541341295432442863931715430042082341546396383467026368249916761104547117052308577596319505546841477045789745596688104057365511790219446069007175273574209394512395168484498050168325354605661214435456582005426261058250165960618402023653829010049715116696452856182087703008573361235924529098744531987985747666141106217139412725068328149409514873117559312244885550660787066843845787480668359273710514398956092652678197608138575030788484531953025976190006470389091074236714260317155721360140760550779591243253949506840436387230541967399829717538967031836103064369468124928024019013874947391773548148267035599966152335946209133422151241947690287560798499077633393773032149870051291292457467102847499472995580512394364658240967060567515531404071399804058322128497933999928605585434382850268869345630988332225432840967802759969931352320935928638807396237182820625577260303227416927550948237276854925358019160770015420755625542151801600644819730514229116880984053723288068135547445169667535571039827710539781804265920713050793905435494141793564506194497954028232612510805601025952365113827838787871724996527024832511969286649540092943989354597496566632649297594169287332746890106754098746642392911125855011392007474042831054797575226099738813995399617178392416726029197742012084132346184686173251707395721293079546617775899378315521450123813186786419953070104841682705424229824229611874682610630696950414970280750163886694072111362316705318516955400120951816184864911397877344841639470646400769909872891089152737658772352575935438950416290348243157231740508768865289449386088455234197388989139931493707136124112099549497168890379882159754121391285435525378708883762501622408171937796492374925654111422708988783709012800819422056983787046153352920570443352007758935239126122517651244838394599891089661411392282315898913847942641058824167016487090712319846116954974439226148695819732402676886555462068909352442375479704028983184979772352633507017524582740023877353644321539210323940155957422934749500829172421204397225535605919465705085814335747218139123525375583434207609099283910183634511831876676767501123927004018856285950491862244762015323259273616454107686401328784453259844575711188889815157497386422085422403473381357194708317696464182827186647922945199846782217887100534047518553269513393372290209966498177328104079564715373818804366028061951180408501519428110781704053183729547308005767064359152955569475671083763083806065469531209993163039752920728409456871251254606909071866673209928230154999957846832199338812810745329383342088419932675697902363907810399445972517453106801644178223949545639549051556644528906618797150690144938922872538670292407090948685469255425861858441655214646055790099856260345265395119450910217679059251023301431640010215296812560771370699594676861099271199532255494272888367597361228630015686475123406708933070496573688815839387386224426124855094246765423456087488333265374196432610736497525088266865634630325576645583789576580999825716025192820124908331771911658697307619282842959581759996354078058372545429974300173035677919381644883453226221403618345337236844192989733495229806062877185896722695938444114102435873171791516140775371808992217035668762109615289252816040542204175052926185869880070348409094299624669193831345253515020683913598173227109516043145750946175209683140331334423851924811253019815874502201401695969971582489714726296831034743296337473914031485027988328392433416856374577168854063233285798247155066512557781808634911893406885917910599990813911442062197589583291494199142041594570376736650843487100179344401497405399504443284821181212726348201434185304307599295554084149864030244733219317603213985990548334560687269074619980923737180685277509801058520258032288035541077224041592691894111435903707180330152467537557956152889236590201615071612426786833332782747547148030068356622488922812823810715533167748338931909919413865866602138809689771200115236579609214422204135149110104669595812142662782762525260058756516456545965928405819317033013015963268193246934377464365511020486038811578064653080558847356586284595823387427716743959477989921704758575161394322814781690042592042481839179875189653519298780521893114353877908830911080309718721342171118637465755332872463057394871189831901974860311519412912463687757951889608752200785098075975618302714816282848587655429846654067068726780317143624673164067572871471526208569502995274271384705858118203116824657872332086805041897817420550355431800030745099288904743880080072796782256747527768655823306669026241464715569491479256814707066064039405556136953821922531004552820172519453726198761528116248890112581140407479795263688803032642321421107508324710867994465777488981558945458306221632622658389647104784385938557163941630640600777608079092554961882295650576520614070494979835301574428238731979346045250769461055119285056673850006210028109834732329085497156300687187988354832145495233398766878149566501071559876589673697780664170569005798548678271430316904909751811595121086070099493970702669359332921919327845172896727334605292211711660981018782418710928960374309876198727410285257517442818814062237340775728166647296863870178290521619959676688808724342470031646931163801923512508537289018122609214597191033833520255564601179636891441084292559169698221028795998932420300342751715345603358887920223914338513427050564213051297278124724973502682841698129469191174467744428059963705142808105937479079620954524785681153410997839232696729419703257173652215977076228731844746154902183857050371455511457126717033245830566528911455984756827453996691650863157389536153158093673444706008890821457304505945217015422312528714753690936969307938915597181993729317439278465930920572788205830739840044455784311857285525614876427809322636809927585652801139888493024773506276835773518203857776617528083274615367415540170781122501910572835510555579354908768993978799643361984466028365798619404054019297523489923750101527821138030703772060729103896076181790710640589896218568983429243308205070464160570244518206242952397811827252050550702294282093216653505897036188402756710459358411154929244489480335801091819202766726618052515040918745480072389272454477402716454646027551057586308245533810232312427491255212474986887943392422322254806205318807890327487121008798217546331465231416267825134396771308181632252157187160556011596617379016198469773891777729582840393315631712332139719001905328519129442330730732607928915545882460665483708940580145915648153583013672308688534151331255743446396946413764488164382416451653513853388304163785313126425023665199896870781792156653226759946244432433892968668013162839308184709941599498008779049341656968762841910169610086750394959057864769747957703810692076132906203878519374324174943278655568921287929963338140580677899846599053560357532284882944689276124726042902556501002952029530235046630651120076215676457575245422095388713113166244417601784834215533666520712594257500399086243825077276408871365795730294290228526079656666596205707377798631964615897352448399653664098843743740786566302163855325213022876550147480144029291490827532126483250354666331592906979804307830699354765716879101109596007062379036872892605434025661088611421249467209304520352958948989581240007792571819583741580761299671147580388200108033965154235471411441883090713085406241492130510673071093684353052217660697651059430599268901468030829649316679484675668175751409643837724684681412003938620875576250958455747448876669391126233224276613019455435119798737741128446399860434345320565672891186755340262259621649905982408811848725444376673329148695525958242526265531628313413270371799054954620259707839814307839693387358760451633116079296792276527619086501529291465476704449826564312707296573804754195371532623036091683694776305126281467036010932625338897687671839008436042323303122065269796916605140115216463194130985032179656197566189903069221450563541800267754706286014420588822535861485138417326789772106905653684762369466260480979744309614430033453858117621537981165811280045699582915450906983079470117570983828948744497751444710455457805866394281273751255779822148201011824184390591589574738768131614636050990397723744485812268430575799892417908300587939234966345036067358986261748468197154341629682276475112892261393195649216124336380308184953268030700633858288384440857087739489527753567760678210926741095641242928380388552309146625766442255459635917941394721585447294561258050788279074111464589312993056160215998452900071650456164971663950353349290285900798191467775483737616136264470870901804880269301058946947925010782118204971346665165386112834771005271261066041898992950143527377254595779602900157031214270417360914421903154358015570421857376225794009814019641167984520528720056201961504551832567646427901402404640472699859662913774315851822479925042497182885635749298846654285307919804304489346345726600018963699894123039949688732968905474457449003483514242059841157781961328547611969680268472669690151861806899906189266776834432774681439246441276337537933463146479434331983258457241372984970605156186950583049505391171756559836129103925626660815594790057783277468101777387942463043755360347952942527883714342770710655392602902201645346760810108913818022200294673199926605173125351700318436082620554476407268984755867088162226095136352107538715696952970213075545608585986013210245463256294618151682665067596960344080183415091155219895216567444252489707118089426381515971613506899968853037815036731623446937247676873099216290629201127925065421666153856190087199328319609195175680195573989406746537709571054623689453460043016077118676755628916084268587195189793446956834388896674986552989315339097231186341579263594023759646472796071914125118138278366975582281325272001133845038330171828444548635283347688833242323147231285809561885974614259201846622623972852492883897487773742421579779114193023464921774818243615610134179238432578665618268631154383192374169110826609465729167799908389097075196162132232434056545149096232697672741373994302970306056300254397286896783083087442127173430350861408699486048315976170413446738839833701954658018248780430224156248581411612712825732970982616099253229024482712148125954476054573550491335480026520293957272291370725145507133523252406197451497375452553010121120932926109820337824338052508980488009695306825076934993820615549533864783916640556645239234957947057748149655122610542239902936679895456375625125746588662849453640901490005918175391343754782977524806556579132839552432928174541679086387917183118230639790944388752338609600877608014101871510024399268832572228246222124491792741724670616969663424133240776216418984444278737159154001079297222307305928211107019790630787733258155409416775745479977728563142922690727082221334240436500292782804067198444963286473598505090395845606580836969015271158802082011295654238719061552786300121849599552834307288503994111906085766790283000410354044679497474590779947035409382086951742891449965152791501476637113571097579935760767963628860816531926097570536795173916487214620065634794918753154977388245444548112609142185762117863716591239690235022465700309215827641603466069147593791073913463980129269954062733653346914667490477798222912477726660850282533798182795454779537921795025924130439736292156715120622869759897094743515200349445418227054613587998822893601321128400241182496652407343933665238948446773285457476378403479052395039528683494285991722187162453723114692182057180644211259638084547786868067196262218925170591518826719729067711815884861717832934861737490561657774166410180122051085860714545989393437358455346397174233739088325108046386746395137435371945791108462593428853114153915909751840768859008282066040060721053686398970903921818815205003284810218055012358079665097612920830103366210373592480904248207177749356615876834695938674514714878964751002051292512895854436781195645712041033998058110164092454693446699603614539267324609341177907593261362482970996899867423500511231487390378872101046676523357234445381269118691245112738128279760964904856785150048288819352402259404572300046216456429246410237393442827918708742061626522535980270376692627433084310377820489773351067852031010730322955975181219730591274959478888510331624112090162893759998951530518368819286585627475618527658200531813899232605725823539042411460446353130114829943777711561654732442944124673865331969169024663464989718423032031650681158442853153434712054422437715959331752847351706961803993776831302733179926507088512576148306175414998311965144160507641685283333281989333833554368675084595010343823346753086064602601495811017381382939261177982835127978637315246009491309252259991233483093568012676193786604761315185717909213455652858394241617673882246134714315255344863142999798415861350168191752624765355027816104759034943890921117825371627580456596035423805925135502960769642857340267747723123200962350587467946573671901534855941054421176002949230600439720254547010516853875481534229649176415253168056863574542137743309828601790879624901554309503339884123505516139150563053611367890647174003040762204982303157686948332052822943449940504800695520616339481700379842365724114634737281189591359734337508755218505690379529418759230195791080900018266728731806500675771149430658749748219607496143829795877044716346739029793473105308519393217649560741250612828776561441818936385359626947819643802483129516335135952154179935516539877015583496205906129075052865012432736004126021759708873390961056750633500385745873661839110251113843312788071357363327691155243300976997125379395206986236616614847018428077929811494490653166728374099118189742923868753065585959521830649534824330856595719405315285076775665950621525395059992034330108975527785619046605183256576428050229926897752842099250635074209587035657123954692642782359956654881080029823600344799869291317456887419283373459213137035528884221430458320834499053084611122079060935754188752264889289995741693924708900704098178790863121866275190349160243542821794660698736445782322774961469396163716282685215085505305517146742853905680030584688969289025133409364983228947406582574296429211684966813952545575466442162741043632141355245273376422071915375680079012448748310647490055559270374634287592688163627429747658747671047387229246407793924624808306581466022762876752509135667183837327622649676367839384831375530027200283101844815020167981687954673914453629555057644792145306279343812154115626634776466762446716514112984253978916807139978702780078663043759319990251757001113200809346621160959433533533182175128734008795996278808139276146067529146951866968766102232706172023190997685824793847135038590396175889482581151634652705005850728434410352466966353928840244342178111529762167746669336464725400032434552809562953550400238459963074822775486340684303845895256187386732247898230520068367659028863582874657834936048139583046779293545760605399243906966653634547353553180487079907339674550434719069076182831416521988067854446690626631064900581869718236319980760080031143868833267247048971025865221689285921292028513368524153218839342532456447322811199411446703866302399349255239562451506851535650060359729950631406495513730148864675089619009113503982116674565316089958276899487670151949112894880452431355996292451536004927260257297608845466279971310112906919538524253685040810634577534953518031804462081484343564945268836228977190271670402493486087748045636366418406711497964728958940716322521354277464090952639572244045671788566954808439825726767089323262349995272431310032320674547712583323773515710630021331390390705502106596019423736946269787175702941474894194691885823968424286725981852956273785985667840554668219524546216643442119292323860128366720226286858131586765778553990988708511955913784709570071507489268829956184185231212340719373414175615590532014105392059121381991565603983153029243653123365027903085641238653790382225044553452055871356795902874866611630335979759119979838852562614068209814209248621918673409290282116521474874960485562839773943624258813824020524628737465013356429944598301462526964621796470826377243177503680597937935708760864855642439798989753370304586695244652765097507860954278723010505156527929520428699672832008332778897835150616031017065368514325391405340869162992205574218059546200375949904393129107343437949961434165959964390930687300216214911874452631814842303204466369349085653263149921559153044485392870653074689604734479837156183077078417247220141947030077107809495411709486741361015687663444037027886254950059075496004655207779616735504584409353298603146610574217678172463745989700311270436763037761453476146760365852630249239422399663668979590978360445659633458591025971065787693499055967038161360968938212980250223429001626564925437600067522924600240995005301157604541480370176375827750836441655180125744721500634054487783173095227890782685016933737987225630304408033976973667925034263262013658077773085312202565149992657898584736150002778570208292651168220202036016666982762253474792021523394919011966518608568697144875636916033998436935341617566581749232367104264807430600821832706830811218959891233455536507760909628507359149610027228600574685867379467859787795171750399187070905009274996568042226231910476196741190498037488167276365537237001997253081009736912091430660074547262635488051141761534322309142772681838519932288078042522621091208303924862029161127364229788189203178013492404922468226801513702758839426137397880148815580033711757015638769332421516570440802663115276944128600957224182896148110817094161753720296232110040311812572022307089506812398173686921823918585672622559855189732647809735517517924614362158947556149291916199374038090576339474070347225455941639934103914516689507522626106562720476420815393579031731528013613982393017458373236852303815838423214136836652086921309102809077354741170462059006688625017771961524260778294171271655385789282022636173856005520063235460806073497492523714199601015529468265474310024088916584030090976683714905833169362110113392363155479671090789211045435343733634468915205390537477964938645270222832240695852312210648670398208792308589257839064851803012412984449965629521893920042638682154861870149940973664135442774907021822855878344448668420823961260140422140641029167698768578955447020463617187144168265084880352056227266852061958981514395641948196526153355033452275735648258422823385689979863391533338243861628236788024760173397211096217529940553492345819547178073296988894945534632769116741296835075989266996025901245151196677750601970565981964303588110865252790342694164091042781718020103342295856201774161265782717565941657214810605533922046950862240169963207941656829618497092174210662587834075566172931429238401181870317386576130240385363862396379400162973073331847941352417592722203247595198945808006072630642219527563762396167360536179690584939381451345367555366613961440545636416321354896301576982031290215319916282844908219358945868811533425678185828990023076525800133390239614394204252831313007919012506768700013197251849557283953545210137771644296056046518512870847138106999210350697274507184960977385966110219997684611597948327736856750812614134996230283888828464554778630051745677417687138235585581333318216272978189015635114590389966641897287348729697700732587175652428668962160023699655450830907715362299624526748036493950582429131677355131787390135692832032620208944696754814601225002863763897303595789734553464937247767023076685605944519128573087317224565970132680117399455316427082632302563142336203205393052832874383849661831882603175331882530410261589994982936677119654896473763588352455806547746655311117155561197815185745629586472830990886478748041330213885123534014527144587381422213441537695974970797285506438444953475680281844870325779615322797353048461302995844362601396867105160216510876608877257259613633139047946949520389855140129881491491297156700920129577016252608429245904946875921522906077947585792434834099944880606926081167298560229137499928074685707057494193382212643978769859452666277214108471657355481319288599018187123181044723671480477364260464482197772263693771942050318020558694269568306940658973015307290822470488584466465880059380069339823277174956237106216074341600483013822037128074134717482025744896530920992851309086217634208258269333492941135075575581041277177835532631104763850938529324128790520224620242147516625967444815856477213868907775179386888641039231688666564638991986721716355393073146985426729562204736129077942728277567265570730986329105527444334467862726726699281812467886333549797311859490223980502521049110501260607936285424392519822996788116258969897352859399900336573021982499177268659732097228394614518129408061280861246786396539802134789925235950267218993784271308203956164865526441840290075682564561578894641685100227843964269980969092822988164163164391985790617310605225295241574344776123250146510034875856707289362504056260967822916504356104738853079780734302540566911971631359187363275664258273119630057528376819966744249986464299994588323610582966185400703222704315605232698471744397767838982845617496939653365813938186546917396415682784594355745134732606843333540563118637865684774573021439833224099050145583299352097648830672938595905187536651210859578078935829308157746130618987569021383515588923459827188390253041450171274857272637888780853408260539618881924526873839369337052033781280986066247154943465237850604288742130771645524941304490623419579899795147130234006887661845882626024022954040138610349131942756867418494518381010307522147141064695402564501295405679465554997986698780502094679940532332687817614111371344128780573741091727851198767977385826970798075602506548892310060128477269811224352543912546803662553845533831786582257037484610609908789472704008774027419294076725460790390773971275314171403529632319331176253188060851399173962314516655254273030154667998650606056166395213627507951545947817381648450528644974130062351931441993147308239624947671598275859842211037777515860943485449396707688167330174253861085796499266201932904574636879751900309338549474471427935676529859137421756491731687599759361449150146188284133825110801759814015057037885970775885973775400224946730145939362753790952276010072273702199453457856984793939776290227092851767717447366799657747727764256532738260956508843929962030032721029479717953278325600616516679239632465018528997572702183251260265977591004542458662024721074512981673871768667196983902478536278744445795875990495041197491970943983788685049850678169341493894360005946604291928156881511615953582006675624148329276907146415567527497558809216867887103994728754556527580700343125372015240286849165795225623894952894867190918193031873845271907990488466288623014611585673202996421206732405428056960181892293111591714630158201977066583684767491743402665394234432550025314211778285589435862440870389921427695594661792579965362298903110954554517885924798963579835403199991751815108962845638746372125142754854587267608729565470927001655309160887834148678093282227852432088498691772618224493252163726475312686352109088154330508746567254801114667439822200033753964009639014692822124448190967907897254530283612346021734670151495097114208208499858415908415230607196815288218937837023188483616419356506958698689439691629633724617474174175722173451607957670681352665239289523930162294559248977286338121820001995438849572199709975041772868059785005733561540352313048559613840310336999643431337756329684472899524520356474962487544098541338069722046989817669295877036047126186723488676974993153515404999195506262718905753798970101426744076964590688146821136014613393230350631322426853057403135215611067650090351080154412030850901916628027416457406148261681810231229326226302732554617862615373778499001600021954506322077638854153820427348752928117089653574134864599737279843613298889155283556239891651909926526374540539997437977755359841434838038827350703263657565651330033566161662099311935954656594454244397619190037064208328288780277157431510281162936339556002946774449293997255850179598892982961994116891931851254293883043634066830648800534119929638390969545323689402087829297704382664081866834916403413241019323227968767799667784009750342073464718415224286415439802782280768378652967731238012047696878470752910516580824836703452899429477504986575619165375704388173532570297365112657779248649708719407931144481086421221153479219100997679500221058071171222107014118792199398820876530505561544845484835368982484236237573990326745801377015484489035802394718884851652844339090114867094168368112304273935628836576041140577692840575944747846853510748601233043256777598325865478520496153609624355030126701057199225344731980234926901398186552254350023142193247669178109625298802658645864437007149955273510168548679521511229983388793256365169237147914885022941972401063811089949937321244595397705742427809985319401989723107328278807394762533104330062355986697035882385699109525247658453845337980502293414945422776292217392389876023954588978622516330505387715642911863081257665725728482388647915881794953352818056522406826455015799608003306564074343216182438172923952393302039857483219034783311727973704131105193563492852090273701265724342842797554794682484719268894314726150380271109893507615880542648820561768474048052558284801458291376369260739159057580975813106017282685809631368362837665885302830414131553382057639648146503804439292550527486569139167965302604018915987551105671686352698333617394347634074106466542532050040396749633739989325406808037384917878314524317017647587046377379605950521530689468788172522336845934509041177472693632190435151819229563905728406837669114331850789836376369909996222482434684682323923258314590171575302405141847279438375933209792040935656942536950636191068656647159901574026495682619419083743502735054379226278168845725183900251325969857186258771043215238742614747620667352280159474882188355084106171945477580121437659700811325017334214254551113690265683255661050818837384174241268601424642027009765753952609374787801235977477268476602745464808457948459911678120503808431094360234261552775089619638828846289205598633590143597795297667204955748112346377805556204662702198445724418298760955265054717255868714148304304917796532640803368480664854656260620627949175787595981056746567901818594291244389035623333371975434650202269711296039241641586583860171969086193779939178612667942834166529971237415525351866601082057577823793788885907201100593455133949563593271977333604477059351427494016618399982648835780892499222225158319167531111549845819596591742612983052744664982634985351431136687266091056541184530970382936816559894730371900649993939273000790580368849382397809529723251041965286955610137068630393602073133658536567762209736723391172120029053698249111705621920554327560149421470118867953979439255608610823615142912519969860758777151904514853341173247530275516255027990058321647459436268234580725034764890680824243219837811670562835250357966241491183520781535436260248351808338587090635731647958372888453053392089492638150851528343740384111939214496778046249254886645372286346657636667650120960732025458869723902953116925146126087373767051003185236911459527172235904054220796519910076856966929190107526320670264214940643970245544263132255645073912130444150704260239294704320275376647732644643794126053072271312334137148755648583079446571719454085873124398332367362924039513140879233565849060124069768608793384230936150476245676942340161547604686856339518149526435703934319136586625560996074663644415765517952913215538516636967558755946566038233413705517549766248683764279943751494660916768484749388635441900361401317888824196358584049912243441879999500013808386628185345334947091817023272164434522869122619352694166044142523875609906075094689955517902581657994915965413026916531266367046269454220100183081042946407106572884955094387622895760238713644053226555642968578586632599491069181239750246320521246829211959474623218288957894120258571476281099559827338800130801759784975247854860369923442943338952408739895095714038747044259683016130837199153329970132152517619243994149344757796828523420525035970599543322391160868683328491567156426046570925827636134731343684341471365670113767595982099514397472922941024157820364587556247177377794160199082301597681027475574155711217711486144445249506540416183183630646614526303046173560100492108082543198943937163637007474667661177479094776473993886247276702101071046185045615240125737079704489918802179945058363261013270628000302183587532911607293557568430278831019452880770502366348545008989047654181180348910302303067656113375697842925851158453838642599120914878779355966411800225797219742163102320860505858223593743135890754624841685916616631845436879365618536733339846351657721611456888212441467389650563888181832281428890151744451113090283486201797286664294231586293034883656461283398246879587210538883234423867707284598227354851723540830570493376812684643732429388054161204757042774278578294172009083277411670330584134536722132072106648155703416700111182299397419157831581432165348010412769608811999522049717320809553877246651672434634286689231659743158496198907923529169414644184195273483363420697707889700954291807402723998790610283027255439912417909889483358338778055481919149449698670388186868484400576642350998146925952928257275799617838040265867983014341158975573959299139053246482812875120254697433516015008037285456463950386540263831022304395972904913603483017957502384071435884924116813410316500336647216481844358813105666065170886583109696948981676072063259054819053808991310174036937337084492723980443611238668575061894117374190550602471262578828048948154334704822667157063805387167033852530747954875554607622378071864461313224157552184879262772259299824452624844940970097069965929203045727825057704540488808705677776058876197941323712772119792551664849502826021823908022640495585155196987893396815328636193979555782437287627392951853316536221517936975608917400006501709313812262714977381711823797325863576871330871112597869116425526745836350822083903135650788193674103294079296787872812054982063816657524277599440682358432675046906704661671476660310591983849531174291013735196620301685060205264648191611087211612545408172332596601921070952937984158366469509443728948458048536095932502853197139076666463719883731499703024868598029929601393449621863441264314484077424524232044341741524066294148851071847376629644507503395165107199384014558965572007414537522833761470410086645958334924425180155725479228156105867534509423634492159579693910831474098264469195909978857586492134012207435160626802164365457877227031659515879983061139760028364038320855055801407049168770199597924148998694135062227999465394472005933294624644567999569939111676674166648110123416483648455885111040181044170952986215972012730155708036249726869158975527999862124120985523525413775658256148018188353502751470268335904672614633099683458198369025173977188341965646015713761016949666839655964055828168633717099545443459648600908690831925605855081294874313803762702782261305180425502166752564007485383761119042375729498133277133699805727645867568908825410300895072160855935033131898082543676135496774445698982120124082887418629372501459499545988044103115765316586413908183912491299125897937957719967656720087486852943212270841653018589764383986487962450414978402516128524639428150655812619113339941428983997693081978457793217980439399674640878638991957369328445592079789248101835456674808136107717228179087715518618025736640503669408808968282235270736421635342345721800998584111154021561757735662113738612049417010114784627903537736020239195890528670728497593935995268246496407787218913600646315967077299844330249167680927025491228266650820568506577198860628397368525411169041582067646506207712769053013788076985768190269092712283502900624209264375439538552618101171415682475070574098507696974683208909632819328999544939106771806289327287668993276058115510238817966617843663705511834458403347493021687267541919886084083514694687528498879185936997143195871936794804089594327603833003937251071722680382166760323640293392560644242965234538410917701379017193553507707159513905937916614352202727987443444039812127189990543271313576826280578537809532405201327642941418587192581757399824754472985340497231398380745233176700771461061937296589491362600148824532471955880423366913542273095241482378066914411187663378408846346377532190849779228995917945940919069747522916233923747444696297067419767087600626685120598606329763670589279705339634955575474586686765941745854821607347586754121565327764747868647245347526101566093264572420410445405586673604734887854370349272007433780229779296643310557698736628020114366565343337203937782891565134742680520524519353105033766271676973627038657004682390741595650743160161125113737615160385857148264727272812895128282408352346377084916883219015475131631559699443216057057468962197263716135646538281016154457749048421090491191606212594421562335347355121821928920823178869746972154978263365468162013511322476743177344922392394425506045471656808860673953041118817292469211178669360069332332967334046229002769842890953765742023543049354109046109365376138374862453434257678051208203454248495034820698393104761890643085585363152521690824580380982696289930652159549573497443825137066871223707722983664903871740465242346845608911504974943074686806189646409299174976825414652285855297601751546656184510276528109954327967574074980756427140941151353773149438340340559355494080985732325769550441248931073160127353477763657382557778595779389487039696375856847637532106504389804349370803624108696045079477218250240940709964838828277184110888192887924468914245480714962056121319154148836636198642813228361966320490074018748319588404566276938134222656441560764815367973436852016456876205345344970160106139028203638712081215143638211593193957442994043127979335438861609832271654070886945737961472296492478055195025484382489388545737705961529591285366707781995279292904456303757781961947787617880822765410136959005435902750967708967144019492248232959985681765918968218862564697556715332309898660331490454169130284608402863811041509214726422383261962405836917712319403635429114692873552685211107771634774368518737828139106969624858104808616890170827827156578600339451963008957739852251290924453269505152834923556337810921673374880010356101458106502822061427675669099295583984509519986732470351212999457833344282566850235912898667969532880512840049932623895003339191620935027425071699151450529099623950999518938597629330732888175862685837890213425115491673913555598105911605008419915527348598391077010234459196240187159587287230879873272460950089963726903748075481640916071064954979358237772156243118615793828696825752232327290683958199178104593025944103011642372806935022279348012844810295974742756962268087957118235317752771652312822685743246596906696830356494025716355874206177145255955355558735724531639301249323118633122891186610060976458833130811470204405246571239212407847492657997387573528655667752161355109481835934253358344280901453121517068992645806036303581214881419476811643134354597917039955572708488370680014099648293416599009576866777263044071789109417049242060267744189007299028480482011616118428318898122701019937033853223844831108837961811181589103008436991918444515409233865345311128456096831813781441826080952549418826037300941687761067902211960941712871131405216843275619720177381806669245339567063453530799026600607743713858507903212513485284409330120991778529965836214500057930056206870136103093804952977918372847846459764609319813575923741718847771542089948590757234390792209673023721924374476646291983933750239955147999199017330350717381357229316069147394612312400744459719521969328338946106856536243375592830792412065494373328934611080449325311564742966702118180706266676437409684636792729407514165154277126662052039503361216915914878802613802976824482038630828206178568264193007888331773245578132809748440700680940510574243439916406858986280714835845908618725837986803349006147615417148352338775727055455780942342836435020099422765794717107997078904370072998213041745088527764157927415886848600083979835425721420469406612624874008976594783870870742951236188021441624589438294369946229457503225916264675114041572471609683060102488291043304707728667435875612953448161674483647400922762764901664069151095999537879077455225706274080890156729840100823672371613129714094862177048212386676509077746224713346750957895325390141601522481809564655985205641093385765077417178003701091227567659220447787400133396679809233959897460480592479153999442156495266469982305235306595718151813045284460855809378572422037956128705669298120083653327715258299980959394276170758773014062664350615752853390942512984780422602168114910728463862104168459991450461901300090912118181430177084336010761182846218854164833078200160643379106296386751352266423887456526070748003362006008812648616314553144150922999108347313486562143360199376514430426350057901605552310689408046428523896330057775919307409835916534158209129059341536112069761809330223005051734822788217532802396443921057806248918745768476148364630590149915009621952809554544644605746346772275823796000346889239800259047014653139794354495684238405288734593180631786855638053218869454455141026358288342705597150799193500603262084303469271639478288512034859233572237419523462636363928102626077897133161336150953492147840264887180592325541961335309276238201062594854133665354984486243598847824930513239328719916269390848225004547248741667342765717507077953545910926256839719793449725682336582574223548095489269894186057003747323005527725387728452549885424624254518758952713627757748079740786632227121415283526683124153718364392793608340288075371080439259319765884815205165770519506366142841673581946369412717872044471348165816483738386015616171550227642571399273253517505810043510849465333844154157313230956524915008789877395901168032229295340371979035733182191012995808948247087876368100308501716246832514776474616491624900938001026390938962151904449391027780961087107256526336382477547597626483345542691686342846936419035427419046858118798714292727886841803293193705839224200826562420275166814582563141301574153998589942144297243094501655908201524736640230754963026265718519380892342106412890138554015926859702338615787053823183902683642139507207519390720559584958253725505783896095027083934865881208682090060649819946896719064505929912875131722528833058520042083242414777500214832873005679328676217366499395676968084044121006989643610476981526880150678628430411562275044213421806242806390324183510693918503715347695291261321089512138938512902242871903084400821745249289164684280096876237157049026023480196696148166437231376659608301580259810709224260871543494856357075453057925312390429874829753546124822440533226546607343609267900600093186035842624798756787819170701360152920567645012084929065478851052957983514401315363494627183713765842314486368532670491826824676555888120033295858153273521503855471814828581116090034271091280140621206157525152012559539659544538440394356516425465712874605151675742966533075052368385117911612060954748524718846641224795592032519940099800415223927468213815380978160393371299377682595916341588648693600339826333760800806052041840500677210924835474080764409267833424822429928075000085458724958506473172559639967498934312156122847598278537741135660876171725255936243466457798291192041100716172883229874948509671985233168096053771130734803191729516067864111086330967853274645121554390413724378516018809175427682827307270425384904632485936376693735123333269443026539899849204695384665850613984374427321882010752543674447423231298433219764556769450828843090092160239305733250023114417327011774925971965915983660190403990772725648974967013017303994910748083341383206951059227022048942076198949967984320366445155643771033537233091553511134541197582054432881610002007670712077530268842600511957181491841978366939204526452577732805461964382873802857879035632959242502442045749433816202540052379864364764676985197340246173794348664182368222460832347497082615421883962892182472289603157074779194144427771198560787858762259949024102795047296718037649375718937718166198499452758024989048526822209867110348596547266762036432767751193078513786509815444674562669967744080427891059155879339529540479760409106065807258097904666253727717416344677909885453817421812425451460464226068756670010481731327431252016790300089874019733868688607020830508747650024929715662224748385695082172361266764301250545256195662307840399366758268190641408567991900104995448211015576075325523332038103358883606664331017674674488206399794886047244054068922947175486553733627087163907633424363658692059948323895396705562533920468782927784969549710702570558835368302986692118672540830656315477287429878602686287243815179892860722440835311771016822683259943233378285005498638818230341726259360046140871559127971205207886831271302018378477101350014984433254875554897455225500193915953702150327579918563536485308599628302589807578113821398629652826234378359131731125621823076233372787485135277065397020072552666745438903398974552278537281369767682867834221562440375143825221943292510670832491821530428770376710477810403161373424079759840175895885202962159398953730476044813440155699907489173269315647504064328290419180965903991757909352615433195509517369384693326393854996614706520514783177595679119268876616258315385127661651545265284573051835138806532121842841740332302276845104678918362557141493943127226719020326369998630099441954871390013973081514717076858526957995432061968516105472328256413835788001890840068836763979030888253997510608319191391367833043625752554363172587741295395429531777600512084705777569421270559047539752011434005867363039059730398930804513061986311174316076004952420704957080671955779402198789618581885029211471158865782118380008114562410864283662789347192183739659613808034558329224548758724622493810690645695295213609291187177863805575007288829599174419162262208294841352685446915774749423188566298187730843077099261207756377078039774941591351981169164785061857018495523480438825072391919343408884963622992853649291654257915489705535947105178505552698813104062608204179442002104526275640752076886277330784186864383929949061018132520373610113904583403496895145653068133163719223948113268114164554350349384529169558797375757014579976224319582872144278605994420180727918689198973193552771711309366570655226875492945468442052913347477069678726712132854591883419766607830042129707639386393697039716437463516190919044945987762682464387998428142315232567533431042064484429809687544560079672798342753658538222678256085505016383222704840739773232165878982692361595932989356015888490361174615997505078783669278272849427111769971272448998377409123380557340309879397670730558346020999738658697886368535400499581566532811560520093420617683275522995858963076782042513082027717076787754798996522618439697420250555089847213356342369244868409423044440551563099326916994591204842680325971142173350755659444766556990265169894328659239741388576225449551929662349393086012391421640136522391841626631323318822389939948691461569851569536700832699328388015159520478925644674764367181865865888795302577940502945460212783336749293039460257062940721455311077503458421043204780310273562912453639005005163820332528311042660303637295888959548414511015155329446152142062646774898987863050747572990091833542558134602615947157125505119653683434683043810576720784704287061916471277840555050807280200898798656733096136930766417741936119987599628502814319928903727839299355727885499591131816368814270282579565264615701056545139999862234264477292285737516722994870309547730793445044378696212976697222408365250944269337613657865344395884697703568530445188364013638107709190862156670139168661822870790522950830633545297467573822115177846164381695296459041990510034642349196232126495329468939497640084389456769227526913359159404881831693303400828316589544590747102894324649876569085696881870854113002617442246992476384857732323715959885337873552107766866670864168416803942192555741170196100485666293439924642842944446139233429623188007599628218426840988378970772944389279599950461497817044925739224193837736492413501234778690616901603286768891015115405347460576670365186676553182326485122210622463973108449780091078137761273268769886586354179601680450317574829413745271829848405866148340786654442734939989248315086620118634831954101644182535460059653709379029616631809522921525738635457451547965184821629716140566707332662993974120802272417736209241487416265005510547684943121651803604879384302209343428164119576228975104499927739614600068949137255677715490508287035748626908740292635893080399986559232011026878016176662770493266582742165709098179141973399643287790397331343182551931509722394589492186735795232350692986657595750600482813053872318842342479076074664527304955228786836120411582550939150903385049577704817972119976848946998715756590974718323880029742027300444577669938844970320861356017811811654884434573611158790099411366976346789308098264999402207247696047561153986897966949988708659597128675833380291249497515800975970537984210837204570111760795220713177713198582211698449554150055488037198718002940991450896833033932291235708573470775940342705280763584386767687585948512822274470611614328281602291689627047559232054724715248968213355999881437017833190998227479053886437843816547869851627676748812541974701104015916232733506625772991005836782085932550105280649960872916974794647712040400855282250591537398476631135085508779332500980774878600951954517926184027175222635434775299025826902977020390814065629489902809887627014944937487602310953856554979357986383964751130731608009032213816106884291200147578649351548043819872569510348598017085175945343163508941290620655415940497433172381493862440017143764764994497288746839903082587162688763352792542463101643203983158207987042786451813820228366236215073101050380300055219923842347419111658298106739830111897501739224040033421591743557354415626240941807966321891852142681574679321781748978823461483248287137103449148129421988336150910412658839796505895346788012398391971542115541401600784755356084788627052171347758749463194956750744781110373578114429032209908342356584753031899544199794335067814851599131272447599236702505346900414921360091746543454359349837837761993824407819931663621145811342014570824943947547757939325740435735287720127039627772721874311627809095721951661590063498808533695995846713590417298479658025777932536784890917342466576465530823020158058038338216044537015033537461213690034111147373637110242390690220118332193997665749185569844175717951350148622394392728878843216829905454901689676295944572051535884526777293392201157689448838051004448369324068722836442217208720277559363730687941692492982443893526225639021956533394478306287376555238219880084643228015335187660961179039062791722549736762368774651428226709389811143812820560130136385457474357111158618694904432270229288172239578890487379845661505880911351373150194936388501950078405081716994488308949174244460900935666531593461484023717138567832971961133830998811607789290640672439716352312458567804410758012713412485389609099945830732807479540526743595429930913691459393527757043137485062302020486422836143930484925034212947286021780941856975716539712858060320465261792091675723805543399001060315358188186047631703924637624670794842733736481683282011791565403481975778650031822462735215242241251526079170530921695626513488513982801706992500045944013259736170022563667904611633507707376221283537455439671655106006324846649057480686355492904676275747342876750226437624972419683663204687619401664452453779843623717986828358390031019526170472782648075278014100946164862392072997691422535151312022155134090067943971118759587013572840697669813534259377110859669231958895886997738260564840492884445231850573613587488069227874877616739652700599358256979584085649465939097255092235703130520785683245541882067478574232924658062206123994025731267588546041179570585403987778507895227920208489333480462599099254342035253601499445700605581797692758052842512069628196765147942178725945117050674481078009564584819677007928619954929985649215219331592686280457070013580094589111309661890394196078819050485519261401000405708973725714197189723983421427895123216915175814021037753593877360215733140062029765303318685090531849391562134201941997166136875558681420667318256152909672388734429092988202208839592035765634873176122199953528082999329867681124327737393979598250538950351865831983654786295266343788587601826668179211907646211162658340692449920743375314306237524961086816726131930523868523677600381925502527377066775636225231149958076050831580760342210536705906374927329579387825110865312823307845292783530189109701399569825455911874944810662700288121631310598103338843674625314912436566712023947677732411337131523770920819440584325926559134491764085756505329344928898785915949855124238683814667167178080090601826688799587203855483058063517752623391308511199405839505259694364454473637959617833787100243450935205975220000054130154069248906617633526647997735662662919851024069303561669529326235848558167687049086823379565047071847700552738822544409750588810510167935926107737720044239827354329619098480877638853823273357689711742974340281851077981695640195367509860682163289217926505273888399541058914851707124641373142899698868932380149013341305606604631485698002225643347858326359217429214730533743998352495690845943482479892324701572222522522954727429686708251277884264249215097478587827999687959882999862928096845490233111805927406242278639698043614248399177067662362318530978671433591833747456042026334010899778584525817762492993668702157138714685933671911171372193088282659894806328705537863300526125728075974039846190789057291388074960436733778094298167491845929514261013191163425707073667899833836553043685726571451200392646231206741301126812725785732848605073716925557659173116676054047579238837577360050070239320409974499849793437260009758535970810408722126580737644140002293610044147328205618094942323557248837700159533193648409879759931003052756059611584356989324050098194602191612283047314320731663035998938175321156661303803346710574889203067035754806686545434665281853918263138965784031379573347832915084150751597525447397702973953224061860565176419637831305525444859745969117875339139914555326477806346220888903633619574422947550321348813103812333491972269397394839787408986701417107757981555341858756295553641895317209035158140325230237941924915521619769100760634027782864780936945690390163682969106648739354548520978783718352520883888061075371228201757978796149756281019787591659212560546514636573283762751580760124494577539969397325238405971406720527167234943800619595631492322030709422192334583346456459452086926030385985363038380816849122527085514491891644664398887569346907346306241020867558452452679265902779868835521388124945655144002740193671521345720432702561079919352079598923313925166654647910763286728980625894585698923478966161842368389463667796801685843838888967188218905709717378848968817450200906797547323297920849953676842926129568547794712994151753048079224225251662240893370825329181340315790610831252007263067176006086660333973135183678794036967882837134595377333530524428712999068214494142288891398190730478369204155014441388304861855527089312875798672996275444331791221828505111997882172885710562575606340810651487504381798296676367750087996435813502259091212368856542565544686357272428032334930992942719863467078061772075318110267399614501174930592239369165569142337855404621772892647204263831240757669407127060414626710756515486258359674786894159565739673355867604415080990166719519792387228433895572385407025069327683471544048166289639662100121280073860733651706825866204319063472103375122282986529271319844441750662441401689176513376124174804312464166918169623094141813259005436086620294843442551938334487046480060397075902594872096951483456637231531526356153549715375949351504668475738562458375627392666084788621241687019859396410181275415539296982740051570945151847578591918046832569564238336437009780361146929807274984497910261061554021723342734081151629811481264212391256185105216146453412774781403546623405909209309771307532461615728820816999973241228342672054214466144462514252151725489756551174901543153092752111587300852113650454694511149557976961404909349232106497141096725821067594638038255991658592668885488210695078014271515609760333765032007548005147621223664425590956319769851898355260515440375150847114190754708102035361651305806614170151353848037863845669082516774873297956172725256869231037697402983277677267905899729945911458715826839472435245022845761993474509799550222747973580883864143963759439344226093584675043378409783653908445000900801695141952753346295487862915033065585392711268376106734069621936843920236548673149155135188055484554875238184540558893745069117067620273209500078028736314833918863933119831059334860834762126331678608565808081568116664803563199034336523241129468204163356152030068264716338378209729660879445757486165140636873234823062367730190101656653107653165794028439577425769911926765618455658321201484405600898873228928265783333242849039817031298251553186105961488967689021514044032027590984737329003966286127863831659107981281520197028335582304573117961730138896355928567919767153357846172025728987730313202011628286277903980805940417985616074259024018205802266434965400127868108864878971049354152949096968519905527129635713179832729648848884705506095986036497290324361218607595426250850716709902204184550851022341766742115657232802524874115880464925802904259997730605846275932538142096166595036479764021559242299661150663039293814558673395227517557444623152023138720485571826774746209312251981376044497632787636222753363157300305245075024336181513565260992415680420170370525601038747380574116001427099350953115598909935563952582126305781285875339859477021725429137709941837946385642877065872421156699237456627904824096827955249174221896573770021373836033322786420225427143205028999043397026510981071820291987065626964885824380743099322083401225433879732852296473479150781134926989192787409078312601672222237659977387008609688134468401528311946747827995136303701814753744436968365490067687661199039161309784472992020962611196744758126228148708397578835251107798831133850480986187761481802485625542076388579897387110284721900328066648610292545441511916267807890134256022842784390428913683487958952443885012517992310436935787970280629600448188661146857571305564814177645118915843727155181951499645600308815944750412525319943806230552988943706571379615203725707715807678535922187516697621744656510536454496173335363274744081238045961381860101554208330072997982864195763847707043319469297117757435851378117290290241985024604455958309317491299827017028734553466202390087063124080278786011542325163235605150758809923673666785253167971714828211441893698865730842178106145362948449400412688213462787089422822109310106005624508892764138028800578621506248698370276873578431736219314243648258063279895853757184328355211667343520302514889611886307150657554704943469656888484601401217501367957336850493162779595392598989868333911246588134001298205030412270319656190187516521797983667855251465846787786076702359943427383616885438891192526746070699914329042286880783967020761576952008555492609111218281871938305336386816557738722510352908393336098430319009015230771733243678162169225381773511306267230228626546059392244621632021119711647677255848233551194065882180700603698263441993549213882186161780623468664703712305417927676018474028992892774656910026992550578583821405396342271268527998523671503798542735299613188435680703252015273609495379491966061418179964843138005255660632811804136874884477598470435867469774642972514537900913789788786919524792342688716748288835012382901548178674419316231256779694037016478921519075844205286719929832968921954880151410293853854956267388721733946430401676737078853864493060089480706975731296213355949131474807041042685694238673867158137681763771282573609841505873625629151805242530159609715491302589592596495448914138959772411307322972475347912955523701999013082945923364121933698889275831699243519558295212615505177620127707018261958836509843289665501041319892728541577012293876094866479264535671893361517741921876703435028593924332298736551903808393841384260585631348479408372496388902905809519562692795455773413563732066624238378253348523116085017843428488354219815588973215613706555557921877774997843311312812180616333949292806457274173208161361275766318646034830880692759891690914595636327819837149533474051356678932639746615834405403455316557931150815857042099168428627018532055996557099358316586982778627965327719436266911813176041740794816530420034884780378740775543440407210428985292008727746557858646752900499506239754686764360181024346925340430898691228473463536962791341516864695935311058106704086321763324444262951564728356300962282966847360366379037385420375607069608645924462476314695248681534781790939484031906104175941586981242061941539320264516008374514325462620587985010629525964462912409675449527063815553064407181155053027280100064557828791308938514049356834333389087180979173012682116779562423619350471127708663813470327405008353483563277957135247764961356625027158441399619368100474623479813252771353860853123907463492806291366336244248311933992683071641843467668922654805385474774826507104564822877983046790037953982008574670147427920925666824886235522754273642855958719703719389341368287045929321654296695440857672931476051032932987377690518247990402321594813053589801010140753208600457882418392209397247863059397550883811412669859085571057040817856468094822192372064806076606502773492410883240924807532343575215654766620298027345980674533363567344289862676278569397400194426084099180990931119169450335647030921173702475871265953606484232272399223603326393892859289957381277293261260109523446905918608967444227462979798854790522811452486632360548321404120461780529788340629387243736012219907553026952733174940390724093556665546694059488556908882245202949991932988639587723129079585734973600132423280368946787625353929697614051812409693904370057301073101490123149708479650480482085960293727080598578267104770806255438788297993109426278387139183987157626915955418551363492855897119756714475158683609225572763189478022357845332884887205119910138210242113835669321656557889023333425858644086750559202794273344800282909433861074299469441696050899172546362601596351007484246541713449309116671469497481782501310954411364529679118986937118433737073364737038127213653823369099009914129927993067988694727252588352706390228722254595543763690561908656449662334090629110152014380341330812279745967132288880571372975659954221910871951451576542437695147072308789711926417283225093936176987244637613192039838203549985469167820591587146496986904246150737592796594361860680199860864187177848530899782766204763555402112615895573286138446472052479201296017776683001363067751474968342913545227506493474472178922147130374537731315494139915253215802538689941127641218012841432065576753990146930662500212666090756605963267973135594058091697782185711334236347824426414650011420037068851498504715459758390561695367269005334914040823688092315721450391722846788384169903174377158866121733916288132737199754800010658223942238497856455024823892416768380584828030673469015427537053184760077334536868326091873209887386715757946408461128392135835051488555483175829898037515940197908505718593533794556491951604413597107462437804825762178595188495497657077011155102577074207978782706818529164800672559984841532190103540938219878983546814615365326528739734044180042549950540312806007938778402734921400500395753919841991645909580740377521531505297808111196565405840643409816877901003682365276040623551762851580226202914709988158776516504440796375766323664479718666364693642988449222672838101892010392390290433963597705462704460942837783480459403998643971874028981414949413627383652102613795118376829301217127225615964511102322100897934366264481712115608760439590129408276221942315584332124762936168467875619843504949679908232519193825537301180127112989608936740603538463505038538640818057935650470621886333153998488137951412972486001388930366618781781880975428041520311356675095071497894097491740059643586462823248658786334216342618868825553004822475536046559359538777684099814081886709076479210263907163782529362751012980173471158767038143970476007763457272315666581033283431528886139115458820318541485363376626411892877233630034229141662295991828345887305950048194224220568418630898269738496239363845270764616681341834048455903624109123565219764981785497088717381409922553623811055896061849373704256810807144368115105598220807690808237687122806336269996912167460416129442130096843361026774776009100615313135430682464416758146695423811059657503339720434842121815201523370629322401154038052607680754833990250757551719730722413298087137007560209318082121968169558625475665568814339653848744640630252322440840473753844374102061279851505507904529251035463742271903280299393229087197494194849088992809866358777299124282972584667282570598961889209140114687941033128566749365482977334729417942769994691525267436659157103657621285879307909872893491567939994871021057253517727794259812050780711588675221954722227461557965734109934686651971928915748381715599358180138425133749767299219109980168955642096119668971121810114231028058574581221742063700245188722046571084266063130370337109842402466531236816978540611554754628728635645422070148158818365403413323896301391865369867622342902950129866101964740032261252999093534875602508480947357362347941448691757432503139844456852009929354567752969337803423012207231132653203302393242701818224502179985226887581395825912346689540094384056343201299040944423846794153818180451612838711576611507086112657543674722655838140196055223285083499317580072118009503081408380462988849967491690539541458086692407062008255993633520445742330210368631120368113135978811769219363831497108659956862138281249550263618173858131537013249860953375866138171183671061977122926598620874225681222108859633602588277146771696995605380074706086511533042121874658036969862387050445567351065593923849007571844895288833563042326766044607316569991422130227460453724121238738366827584832329259934599163999360834678505951206478245151858381561972697084734328954816716653494716596842704871617053068592674819352568539140144653971284582985264640306035513966056386228732775208215463215191170961106623121669528434638145772916317181277807102520523669401811052153649355987163284952263219416882282554211900421650536558622810091983195371795813857087505821634023610126548336034612757194548959831908603129975559906817802799392654001611339039520725931389067438529472706258624878165249406670387155722129307277787263807884527936714614632512055071003590412005202556041156890224173845643333498228596228673828727370317410643044866839329580460152144177731002668503116989692197973081669850844342739110770704410044034415192171808291045167836704820134645028781745403608545358492901389665588310909728404261089165965611190726526160702622204928886096685963174803434264382557903288118805554371975882146198163241257180033227319899551637718714366960984374946246202391916482448958728169484748639499435958540793051703468700356891196048091594456694379501228671333679542092055330845201002978480486678980169831036299796348387675628391916602270604250078426514547801952066870732732869395807550837957654903663942095539936142458942471682997516397904183198803624317234088940826939594177128415510791984679618816946349303574310270003461295562475371044644297507500364792102155946108100950775673724016912237196138002383193637661180579011781247977031488834000114495613656822884629098493799874274367756113986367976086476764676532000410423030994174446606013679145576458094732362783984537615988083395440171532986282333582600251441587771234808054467819047924639524443637885397177980964381979892055570538354981447815174874096755133954940317884344587341042318688747703721803681809230342532256345661408900722938162926801339616260644780610187472592538998353707690202226674153709987173556046773177865316718306489657939820959716963887928363678578840588841637169822539924016570804171638309683880741361666352588960528158932645256528248620857009345760160213889105222596125543520767534190243534489887497917996286683722366980208636668945613298192994501115168622886768080987538143288038524467237140191924658266784929537830984014912156595599194160916023821955115189230317816575496019466297548941778560855678585462853591452225413800193836639576779048178868869931187304392528152335616573535628868136119715925121061182765508949319442757097120408774761798913009665703288736653837970210384042469111127341766878105135820889670243654485916577683229321865991820347289925908150362640063854107485544852950356473411371493568963761183090005922718869044755565743930251215594415636940651567670033588948057402967764114799753404403530828398800567529905777443828797575457536092681268202282126996966144894701962939767000398631258949732602142787011095526794964523575812760025362246423145623466020338452796323499784120944396664082945683899556292032655928110947066214202077142780619481981756735156568357099029577485473198799173536105985383502413993780568372340800458985605739869751372283866411725744956449016149509894196925237310432654229459046787561610506476897528891017181302701545886989401724953242216067990691759838960496034832452220813587524399738402110648164124508980798828160229050493451624708703833672280722826516361988417456159552996620815219085415147139474324428041856188013570950981362577362929573006485713739304941933946239537249713508159036012959572045110552022773517631133779142204949657984252189279475090448100687221188011094990477010358739645094372538454068018992826530140953839277511126326433115255983262896983605988084981309627953087834970579664878971329702156123655583341561670329798005885405909024262412336911441240198221633807169161677524381775231873356390655435291130368276975229291461787406380978193666551999959553736250957250966466742804588896948850230412548021929419554271325821067649059556357970959874758723778275795648478148482253387182596387106351830541080428615978307762586678435495431477152461656099128091737331824811715348918952947531533539592992287610013490815013697698842693192570508953741128782364112764960497340524590709375699973802779306099713013351543760352615839921879451600784958730999075418861941464670626683990002408095559050906045796843796484160256548558661164216388552296034664323891798330992708481323836701948767966705390497385813987106337230187079746281407992261867404346819765579794268296671187894056946622793744650420430293854673923378327037682713966001813097804431265255556601788450635082012348269549943577140440425969976094211168553532621715732794006463152033833365467899230280281386434006518716875024282278496171418259593083566860453717072794041009652699142004458436535517618221428147775292491859123618622033661929698234872731501565585347604519859421503968633181514928776632898558162924068782806336345664460795473243596399676044473013164887103519905521985898208440749451912169938000971671959614721467375906809802786536697570840835352357901252911902132429952525062272254336416975552283270719346920870470324358372746323098888052448797240942568787409287437239980703672304386627676304700998785652574636094766232595712728397098194229890001555912480700941309086228116037867206075442897365159392883566306217634737866813330756005382519774938587645927310253268104324069701818120599680515201287312489882760364460157342574547670746924987714653886322603513951090748030688640155013558191590449720713294126313268294839294455762879980553354739096385327744525706458821583696807452362440494137373145647312084393951124950108643800537350075730447688795788514385476017470913624155333383928567293839125399079437785782320126848985251693844236097055671567051265935137674894182371807709373705592196106174295649704350510296008573653247372841015434321160450453307255900330783158278024440562052907183265253664237664289773672610802097468725767309863555489951863907776799307322750658126063184933579638134226237143592662322919318849231095493599059867924298058688104191162849308440699957275891922770120913703895628602481019233480806881281864968458477207181095103663664208512452369289463748906465524088275133277716999878267962826635595617463007504595007218770121673688952797188084756059575922662706201137557921217859095971552301778820813704711459462910902082607268763482113802528223596878204098964624073038302953554098190987145462086590424662747921347977891906143715324317927835750739065236353902570240625520870930744709775333874574799251160770169741704186338692486335352818172565927803786021483212582882669332443579427735621306739021276637197535201309562532544516183990138853844659944524685305986602327295745345726350412058207392593407423535939190194781326115092419640029495031034267842189178530900778074987752766658925507698033554623857059541651993928105757322091913602850119090504765770691479163009081070323637192202025546564199120955372643231823132956509793220801682929975063411557254945827199997361090290917970861572833226101539263294509006652975175936175826939906540876914216975585132478285335172971048194355606800582565978166433228995861284887719620247570711732667882012767716787388869861261731396463818358821583160802603908981497545520236571532874727435268027153698335387711223956154626861001873413047440468880229296593128350507345940896380364841435534907723462068081952893777262509542421677143920058011025507292209208306089713334337216456367020773426862769349674293711121078117875273813146821686529339419648171659289382992538359936941429749711103091713195348014758999094388317914236237452396179077691847063217763836142676933755035701033430856702952805695112982120193814732984667911621363993023672904986088398722307498662817177482169361516125578411353271719521576510514316084688464861813741420608387601137107380355412235416151859276722908196419656881054517223452380929866680292444175773845191551359968791684366681833036331002111182367967421405140470623330485684361639671333983409610572533707169258093722984409445687171737014815864276360719133859283187039479622851140738671600993989531622205949320888347401338987712524029282582393003337248182396124482230083489430662023159860999999729177877239859830844909978244961628524777352379362327994983412960515850429106027910669300366400102100572427052524548628622118633740982700880738869300003985654398099070038134252015960222069284998632668466515274685111153288517583177241029663913910643235623495464916164415866202117105770829674093423873408141760542703089758998619155437374882170386447435271821632717209649369033786494674462884380095113394224426201225917528934261717475684659969482141510017732932100547519529141464333340614004160471558570350427501689300784625129795246823830718205359987957770294302345649782960833491008699773466798928560026645523642030676666270062722527713920520407927305818890158620627300348558358668612619772232580346209149542877329203503607227766710949834240148299004508148006298276150220374119376048033511315938634906476765352025310324881750591315305189369223885534787908914458569293924620591318460035169544017601578652025367190475028555871346068729457814554152968965477939918393498769150766771454476002534043075128241165194087592001588407093084735655644270737972767223645696219560542949655471547984759088419666397276349329622447048650134135449445803888952111180567494762503353609860063353667277834280779567889416823801451363222119475228281353659595922130908564544024777603919873889022931349366610641540203040101925641423828264495481130508425546945088963464448418906725184454042349477745032608058907977339888478214634730538163018780185045431487548558883252447397435115608593344643022390159761430735086112774615612194876201230806494527484895673742663854348730506631207518402849019191772163122982605321810298709362672356739337271732082589599477700103746954214818883466151259574040296981428585922357397019596646914948209481565718697033343559137973843753723960601007794855753158261944004366292275306935930488288454594826876670089917793594303811331053137932385577224339187056001341551345503246296892542520427982675153071232913111147449985011381880039339784741421927057885917847741473189742824864941896021184426307735073000043330228011661412996295413313672638597844369779806236816517996173257746932738918734321996265682332880954516578781152158121103106726727993150847350266855005475103487508472897467823750739636982975806475238428780772236672611672816194422258249836126634782593304640317772224412734015165709061534051101923344705764866263487011098635114045384228894261556293436067133091715922755849619895103821215481129507836176937128501074534478840797919396116296908790424236268146705333887958235237605693406861657771109354995185128380576282938290129176350338973172104382293814557738940877186922805822333895902543675787943536865755044770537922645935798961993646911540736565612778957719657012655283231367680654514522640859858743101887351223916476181579948299960607201016111365186629924557450618052180757469690570305512582764690040988967215766967340378974514754076107018290875205955224530956932878486701989662112648399417885440487297088667511184719082432836927860242081101952207451655086007028966088076382663022533351360118355246647718414383629639523129206228772908983733998547455396741528477513176004217461358014659941960397093350440042983926612111581595500565444163618467916900937761914449897513155877113881168846933531110336762694810149540472581878042180659313003900804345433906085486343609444491354129662223515300531858143614483899787617209453038996837764294685543801031761471961558700571190281902024426901850252542612985448928969430770188322400756861410070879785364855005289719212093705815906457002898380964809457257501318143237296421688666188382659883709356424499815180800039945538620169627859809375473490486133601679005029993148981568278268645366144105965161603584562959028678990884378239410295024312924189150558980180744041758726938969552150132923133266076066193870075298856577662335868459764864567577885034231860426145376238073859426846043791778806519556259483788909905513887641181860570963972341359869120184592477544654815412239593772539151271746525093482064577880653340275657876128971886200460884104610721020526177087375871029827126135625037765987073949280455234359079883965010456070362416170856137505040657134406134099601886445624257996357407900787704489147379600157033896064357637525271745286739528560357039009135870664542705163356554968485495560188576059876928863221342979237225678862718049725493480601636963475056211207874158945350224018008179484730372966525983102179198070869385750978488796681117368068327363802808424997027243790869895245246168700247314867995362219363695516520082858994790339497388883013092940831690092129091073718724895172944562593291479742331496142707788660006117172616861522079707138043855784901552129204745901945762906216346482058207999136171126248175393554459025592955188407677851551244220926329199384784890743094541120875823057951323182414036465536344559507490688520749699476057488632263105123194144252967770908010339201324003540492696042985985878102759835988924611426843518363989822497191826149574418584135056974981377663748912931140512987583745448737320210272119641058373312251818307075146641149823745494960332646507818703405995552480717549618627443154683176060693500920219817344693074068989826022926753150402097512001372506684482452400685635718810731903572456151622776984876245399902920105290039918436677717542306299786965446227476951415243408438159955848176155574405244294626862952849216868655962890254875557499814175929111635442300037368960026508750385164751293793764073231463861895235666421794412345076929061938216749609096070780031701112565991692747402252147038785406571991967779288292722489351959029259220869984148997822570766197175907972599703886769954115916647046913794382122898622954006848342006383462303942461071476782833208740705163981754237329911492941340904268036847012805946721448825619917692579284838810463093909103667039016494568111485396344236835555183411117832824113412104161635395835198331636474099839262335808524824301176099703924839433701197043176752229331066978669419130867760773607363362606917423867473028043749838188899348379759747304504385586747414515456519817754234897519115753217801284805747568414393381439308384958881809024171828287081861785458110782317477961267642577487675380203805507652136189405056439081188940806204113577875914491018823217016292597949082107690938932672751030116555725139044029088517953032527691875338378904733081376562203101309326046011005608995380258794363228929316660769948272997475623352345080829893936386410108304300257196568811696522743096006869201294353548065758124902797560840048818861096917812902510078316632445289570069875230590985117245494699364293227137115579378305658404800307856113323428935126558611233417016026501290771960945287148965460421675510779535425539203583858192993807596847664694730820939548957043093381713158824158242931480230308395391603882026912894149620371512250526601426970034472899279358907178044167941440073055238715799049105798093224264053117245426089703363498767985342854229630577915619842694176322922415935441594612967019271085078956186033303014677566618581644099893908134604592974493895742758688250258845896621180321240051794172280917310818720936091582406204798855962089824756283733122231257264514320637586633519027087282893616959358107177494852816092614025069809191445103545338461033612840238987526306465742105475588098002990696511181209967528413571338041866630346958278040384389449565986220298375876633921539849149170131064040883622085646651101724174739833236130008166251327105871232813185183183388394095206151234209289126779623623784773489345028355283641989423693866512742525482653699212031102948901770025286616353792245055532216405495160578194201346322667116496577259271355108435114776581965600081233540176328039959442134660103555477730842315138934519764118760269277012873283540495895997771939135150715948579460526184876073701593071751449827023264884025385906829369063405611399124303095391257925237770648433216576380978453663198911917577439974968312716369879730833958720987763789897367885540579663954139469926933014822966293105382219342110391545048312807766939234988249769831934256942327420957230180258816631056230607037221815118843461099286162535019578619830588192155422691679913648519519329598872494072308365794097936069713972227530223843430957760751917244457101735260276131619587800775170424177299390116523178871029093165851516806803450586938399070398677754706399989644195432704146163094523021253952115495728629950453298023795115942584852518405137267030085454347761373785233360932198849913734083293699028459654030914935149636180751782117671227725137665817479534383275024807297862270776209268862808786992601078968238636269048055481677685626999139127121114230929417556978886095346806693110964718788780467114630914062968489064021332851172658514631353187265115416388832864078793926522294553160259428145096312820632374907777635145359039419255341769435125886267822492825300042490656059023854861778547115199062999924830985717203861240759459230834077891055262538664392843800348633554755496853503245261027959785653230777237127334590568835836415964470183424645235087599866327981618962822337853789438266606093347610151760074412491300522479195196579053827750693863655687343409318781804422139071220503421310929999938811476813238876522695023800752882820647798921391468995765022670382088179334509618556917665831658700950688564151296378758353755885567986829498374358867914178142261131296908346517888205636248415085056176633040872487163895071718306886936143475885655360892952023731820299075292814265629475145189174608927516137653417778678127353773529231038744132961102912973793054184343187069275588841215128560936516065851756399661182832690041808807419348895665716642493451199678858120918416467013903313390932439967035219763094015248736392011341455913073345917977657251297096826325153828961827141415818809367147581364019745047952364193617487892272780446507393177863276637833928362694917323540484649172152788815512919690808720840084183684646865151473718395512974602668004125726985697406811785420096541948047224446763285240155276143306562581181629116482872527071179450094784265154636902884250357379357089147525719411836293005256357547965378509029436998703667136530235268975812979500172298331882606606371351177440251630982853488411971890805344227511665847765748696656414510235771504553043944824812482877884288579530466457526257702069855142590608849259949975972230041227581407434521838135734844865567647766775720609718233723615393956254381277719641014732648643869060338741345772398925068576312195481347272827193064433520945207788894862254807321532611492803439235520317371136313826839782162306000924106748583395792939538776237259330620291452388931584234526849841276185514344903776079489534511644460973489348709958251693740949193975905064698460864588262885767938031480888301964063149249951918473822376132036007202233549927073977784183120949523133658398730736277968798523750053780563408231192549531231313380091707432842215757966252769654061978005176185259831322302386025156728628584290788864431583629914123770328672767929753152509659863423528275236421406946045103475662106699836189754029873437054045279644391574729968407143019035605516729815929026678919186284438730716120046186804158926322660954485751042772385738330101021537986761708676172459608476417921521957220576430227289352542793190098599764791985579837054667883544418088869903745625627262737406174073249824973613507264754445785127553150123740971025562812851647830042757311592190879744588687518421953324553146699746013276668921421147813969914028146201135774312799624479149754569933648566331267044582373487517624206515883866130936805141821105044219381613450819429574090636363046644454698217174742111300687046697009093903924420045200082586760852116317899396319839476803783512585492783188147559067657911550377836679288233524547149759929865757931836904394043119911681793029046029283650921166962606144466039918643916335236393793937240020300183053213065891825700546829593956517196394601044633977839837854716315310486546935175701158843876803259625044949133232216414030153060225670439157027273267443880294267922169665057403493213238197511381075155450184966263460457495360316621239176561564196168759978551034124752198379630545325129340172606838584785410803030278002801134182492339667135695652286072561773855894500066790534274669784496086725100713411223905550662924420185137579801211176403214587487962876008423291877970164044338624216873349904823091692045175206967746206196479506384799408005396347883965849433674060850449869523206198474223978651045971474221034804972333681230434177074254162601174796379005264020674473951618800609817325102249595032786441717259710966458000669448158730904487616627861657197199942655633290572283994820061491113983972891123920411136095802751715392874573261068821245431280974856594073032443441199218717623559165166010375877656284991903341060428128812749214322587901065429529678960364615345834251307138101077966052491892187347236411856811081037658259659119591289366060951885051657852175563157628787390446113116206837397620062009983053079106530365976426670635788678020059179637890296578877487749858613418914851388236163092663391691676137237449205132370392568678729715790129579392570884895666669158517065239184220982116639846885930848522172847633560388683203969231502285873364474536585162679333672895651544691031331547485189411138050228760955368188761620818688974548612509394323539703349981862090703168769918322520661380340291558297259438457309740720394606758534883063862498433668732173560065839795312929915555655975364414171045591327821073097203083798205143893155525955289282196432267958075741541907642787759763553579263446402961694575602031056824565014955314186194182991341953680546202666645928963199969141548781331053868389786232810431222660016053127423012878048406907847007797620631608609068468374133781375414125956237587336114159686457626562630063674597671633590813528288220846639971124477466249867706039845957322644464602484852021476263380709146870521356226423484647180849228574952208146848986880277577485054432608888721879159665478602894412665088134857814517751686281866967057184485177424741756857308168106125309384391715487999337776817415078619127639888489642431960356583781551231665988789747303176781929844470605204287901136317751697917891790471739500033405730623725460669933756555795143058804770326138879098479301700486224652456982766381968471752127219262780681824279619296495967607767459877556252088887024742589419877014384950959642659010806202822700912972262521700138884608966760433002991224923623178623877867303159659029427901067977745335648455634947811833752757032980944604568984197251435541114283085068807059069601951595940170806921685696683423677997105238609246519541146302148959920509982002303796074873863217105880492364586534332662416936205652628670175160596343561768078893529076240603131238286457591863009905388148919254905057003136860152392220960516353910420899916646861671045671105429817798179212179094142992674895637314739912041537144872288309484223609417270482980126930713478034624619027982990966063863111197661719443343132406341048805154589431855140793968773160207365530147441608516883369480803477846163714222469855799624669718086412882819704469766696347508909427986445737333745583135272025660835926676003848964366868991309178556612201127111505345589869290899743080065172708646943859991885130016788639076745947253849061109046653998769181409125512556158306198613431764742200488874762372522909429155102476963235464294882664733325349580523177557495877338153494231139926935191225523238341367541454379339570455079241590995150170905682266101500758516205595051686968355429846357017582470983719356460576306615737092297366363031655601530035081715670010195791871756933759506834976912018724242708397664076970551558401339552526811123437346263419725707820407979246130771548094538720209611445361535103890795888804643005969549679659112903519275674211708146793124861479517753272468211155888145395489651389662513520072613447356090815907359392896202475840076068210685940983573860143264563214818984219886935498107823378977685430441131886848311127723273734832665174572904732068049275536512184822357740229862460118673521004946234930327321266361960197049673275362267454634539339261289479189012703626084810191371693899194986419008676644849468755912521939257918768560994265436819400789855028541602200417619841031562793418159868526885080052230997211010704281257081431032991057502390835056622344325764495011900973582339512327765751209045166832643915809157225180578892996921859125982049984471876453508670360972550756869444751826129614898299775305243094226927145652931389246808783329921629729824547299276109035217501695120863119627747941398113690901337093807829819298289747561735403710660123133647932756505799070727163895590745023942861001256072990065304295047847052890185411274289823078190370521903915016028676290869439125992726581672389253097991948733996086627715950118047490451953796775826212566912754843463369506415597734106301665703384126401568669823976261462730050990041579633794080296698026932605732793631525115559888723675236605771973963928843165567153275601659294944290060049131714349344634623043419955754921029665450359086418677264832858157694412298487054004394243290828947650031537556500566221769962498194250574750014592204825280023884892974141434576517465914950253968961151441785229674191698370953163133110133359074600470456825246293279999341282470123520358923043099774809979458345137851769029172622192377136499514899332848877436649656479576796608398473801492680248258374164745228524787730477418309245250494743085068372820814975155121141188503664230894090633111432342192743572375881950610493117358630598178913041962069466709247152421029280336932358746467610711029132922336418612978856112877657049071711481704639326117428985693108295232180370251387190905713996341130567599876377999884748169465037693749162514899093404403936838084499504155998579228653134728627465804539838161387343282668455648987224757070022444994628626918943417558070314039991232005733542352270544616115554804737619724604864246899898875654034518432793341592530151531832163092859045569880668367424695279450597212919377258483285533933005405897768896187547807081764908434560035715854018825658577974167303374622003844125064229764530350994034523268268096429331741700432152957205800584704485787802077685604632892427611530835900100854642694581038344677331797587318725887027649243842163010527041373834161905976523486715377515467050279182424529619395861917526742383411082505465672342868158922438477412795077287868261595321609874314239799770298592229991553298263176058823110229484095413431824594592639081220761725107376732137007301881667573604076073829588271814524757293518785746849592456922219666045613016562573243226546646448979423661861038014594598054859059744966154593688275573588717536620090009984895362850097538389573607993980308945915618464668303636725280097338406055142155087225771504811532006033717323680349297639335662454035978757209017026906062797360802651197368849795698042503874430515193123737787284273459385283469620699955129372960088321202379132234134295295053700253782299110634432656513212508323885684712507732549648294538516140819410992914025404601964378648757669376242821992469821677130517236698797489198783706103137295498308077615039376124187691100981767238359438983580202016754243801964264890303912504762939511480759336699185837824263224641478447389181893239808679475420789033093901701529003941162310827180717424394455160485935872285815419281879385814345175447077861317280919431213885415525895368408803221378443647315975634986211196303748929455431064907725705698122397586877596489026828991299839859509100640654353419492415144428458234526830816619988681799133355731406459707714202972319557602944248135761721470926628413059523909492425816961419994988822596353364653718776718984396914189869125537346756082912213952307845563740200938155623033826978639824826398891677994151092604391025377179114437401321427406120373585341669311825273151182522855600090123089344070430043933373849871368397063151167741133802192979621968819549378414465982227324421746447529212894049342471414624192239990707702505413852967254714955058719208123666808677068323552431143254613746254490790492888012003233383153073871669287716088301570146221805339061267205045120564965374493532301973812931461720387183585374128758494872963912358021730738281643459752843833063562287769282085949947279054272590525457901370144715963566042121498447561442663623438070366585727128711709423512814270012043983291501079613344878975390584326259892292863956582911191666477176611582766887965785710208165533087643359536054368928328333046727418419203148416617406576090164352872852045374101436843856961068910736467207230033375780412128973823989387669980182899813070233160370678677867994254669645533845911480539440090942083042910031894930715877661422277467424706831947814082601138801103810201504345841475644323056682147061486205578566725917948218575798203076119931341066649263843897288808838163414814858014212685489007645546390947057610716394375272672660448755596051615919975585675321286614050001374036239348441327626598074954047522787983302496205911042277057809020920098385302985292226323787442283091262191731599893837714197367339887145677706131385727648459477052899318660528648916742939732449626708864238264118455220087727753385737442650670085865990029763725724577813463254683670472583528697835281283262496385963806118636994752426788675824209344001580254279731852815046825807402282026083818811876625295886638934125180036910400617870353419803853671763607478043987484860188022446801691854220982277939719585101194864043405321463241625972338164998393011205290340401912006632274237568187831732598333791800776966149381533073482265266056896792736422812982298387740771654795014507958386041901030951500313557096023163083127141034402649186389941826218839178700608077907572180486522574012998258851996365876911072854837073326292056302203680194879003231162221955163209910614484898859194268145073634104829697685163423149922054231357942216875100212419053648369610428990722136465453007383668166149730030751357346037780656275621251502892069412028783106747042305568989095035166807746855165035532450101150545799152947028260929494063150717235877143361166611675909210677077414911596904817520960819291423164879363090356960149770901244654262539900001305305938498634786512725794493362568749426006385797949532004001152016199159742015103001709682005024649321403729991957304866372707792410099646146817358252015805418221685887575868212005987961604660297304031148460872840244813357848774049006520089713522227006809466054461792706813134609948778949240614195535266400749692804106231503909922475374326529818736482860979358495823445184508493688004643796594901370204966650021928605328374150457501004581794230311209046846825385113611638375319268831978104981252155996859102553000798126823590396229263957410577294851634038555788572501133634494056233158072092367977743909052304249128606678895940011360002993532644498401246860927282359739527735609890542988542302373704503365910079715073270885252735924709691828094163713821374394085643199503416020730337612304437310187980939557324037029127797805081120709653338176105547418511209730149770187576703600092664391243075515500465138274670664023662217975989082732199673890536876593031544926324450518438384889062490338985601200238159507781830593003346165724580240129691810320569565563005066614749858995577135559794009793994313847566812344183539144760624787547530310867807484371230018273658145222779782424326159131896845975677072630833418151353497413116184674189880790173218298695767015986819587276987456470463662236353365928511596973735926346064516145753642489398514003163586882711551762758964670657091879708333432330619146297727023890054607509428425172378784201277784454234214499927087828248429304422536359502786617479014171488442707860271222729337845902805831375725754802701003721213469726958313315549029391347223483643309585615702618226322797743657223659012231948978724318218886332201858000522823758292981943369635651937761686752312515789487490239196068706716052466654303318250087505436399378343213496743425464287557024677661814974014526922128219797684234565758614055609401019080952580028731917940934898643600443366302971784558185277051505212868311350364652338040369589370028817913135684429850932596355945843451857069577397301152130649328990235891791796572084594849623853180373436619776445543580410567841783124254165922341430345332483377885866613833024207538169389270387676724508675048573213145865001984111383816532231652428016651374922419926757018090314986746314750275791249069533153446462844721952913032051105770603248483607061645979507758545671652800325035145572459482965510998156655719331043204536120028466584380348692569052592217296735932308480333105004923401748870623353869645910683323746058476232390817647379912745030390765564836547798396536311910319429248617668734880734971869685544874003770145975417471786308399966246171967531732536454428734021090768911918208184810677003992058056638948175340361718850183123299667436163639238294945328443479685909945156884182349341729454716328169736680560415633508708502759304527022967147662085561037052443798616794601233001063327620477753444371888743113502304686011406538472523554734044361509219290818066710231561811042594659847391251044819130517616906926226420340165314739531528752652040024060853653021641857831361524358490211887233536282073641184715961806285799110378146180460391756564336318058026518269100240790125214828834259641911500475853465828088765391001016633099066425811130411396586561488443434326258275443600291934164669184308567920686231192721263611952433673654573247871756138591454803418105479243088402595688780224270483442126062030009387732634448468289704900770110598705311105495687412154251264027597725080998144443157799823385495128019742355920720756999328670338887455987501103577432088871335756273558224793655550117987742183896110565186700204241587931443685924312613073758817073186740407396011774418632270106611682777121062615997957266448910307888829966674856319775484253371926736500267118413721600192907621121429663606170284198771968309025058484990977726631737442621184780775194551293688238498299953549695859712106832065669111730291913262684741569555843078567820276269885135107353991702809253268486563498468228590271789024185755028815441521927146528897618196144035987143913596760266620683867938147170653386320414110771060391957010281401939069305142367729374571763961963525121158015346414770375717620977069701372966147153695465728323876669069434616966758500736227213393862689154611641730734629001756987421478793606534509744512025336492902625194271576839990687966392443245444646991346268672390442196762158704642932586385931522597127830722882905686527302103838016300116773537572090207878409831886981772768002172599873982470478655725541582447862353386919469395997410994144630569788378909851526311469419615563376012126325222639655245550156616633871496155179375094900078625588130079878225525477755555690281662373080915948138866772326425581205562204392336790954252327772072639732377158062374312016201268588885717938134538974933517495921632194310545386582401591196479737819318815264233038269855506873694217090516347188287978856520322441439936259015674248223662896156420043574149830720139886593126514129515308283639508384849282563484266626615573483330189213758819451126028505538142110024725971505198084629085708440142528437318406716283251718215671889818005198280748923801018895747402238345641764584007721696990343073113093218533840932776319900538859164293644250988067855314519696258839446314625207073552060560993508791183308510039565300649661841661679260713226468762018632773557909497592866657378516177541994265921376018846017922953207437328633102052472964638391258546785041562773766209350603111742084009985715050263185891227244621600986624682440905585541584344612689092250447265258216874214886609850352417956215306560166130376001125467393575116972562631378535814414793032330009314171527651194716273665094034743513809400437466746792574804556751254270350319243242501239177237384987494982557545860874972623925547482786142762652411686603981055210581243809542431590173359966034879258859904650209020572440183851255405425983192414692616839701676618859310561545618841308590115600638198611728214729473579984754643882890044157891268522257782209578915471290261278828040295591886642151895580693300695780773156472378302422952449331469935740272083893533758255343734280579205670893081800571192742928656974150698380835852556220305790997824303534340628962007765974043982825146153405980190963554350207179671247221982378804382950633897314378944877793229158644618329040124309417535352670934405789533329841623590232586477565175238021067591633025215356323965823064373106127246008155232138696860226494453194468282362617848525204568991030842827549354483380406821523715386829161699968418006222462009522239530833916201250081576723082730071705454786227100258080340685367563758899066719137658740890276433269679726099900994373699361766509912919843382636788192872977132291486432311807858960358641773964253336504382159455416141311829945125699849485884536646871501710542247978654608104691649315694826554260949043255600243120469763010653083041434097159888349957851762006231016201604048498372780605584256748063067208032603378395323017628314018876959673651353419588690224065132590611549441301204271346743654419312222742910217200917485778955850026384044154837845073245867002705483012569219965186581720783989285048921083729269452799775308132004515515088538956987152462549565890803869969588044046568457431205787727905507788323274451665252462200876580581615846031120519346512036468947457879708474433863763896130600326582019403870777013716164639602174473879854253481344422763086318534167635561778682372298944262178614383641956463008324822973562803419846255807092311719221783951069914156286016876178729516078846454746535361174419348949161868085954079659764723895817071830578345980183677598642922736411830007226722649429406227304875706970425218580095786872483115661361441299178989926439213656402982562245113852497006176821646260024938188857824840673720521848285787499276188060466754996482918680146283319284974001887458216484965713072086042503297614156134773302481972676292571420627152980251836485440190974466088866742074972243698393890958251731481849662360351469187036188598933515429243604240094331960617684552022806147759815712652447464602274862182571569059937283719149510955003331466393776869415697561175214300052716491387040490184854538754560264085286917550162888086439116389545743141280585674189530930698013085656657173858624565787094760293256968499401481043484031891209253794910693628271550613471960803312748234615852584298438325951801197817709538050813162543033861397436480036892203486243166973343627319453216988434108638738952071240377190441771660401267322886189532490079378755760298976907441869497575529969381487462303979041078155900452871907782168711284855530101112483547526809540485290396089939665817657783643828758825719154681797188016368360482318380799634985565825444643622018452430582197565709065933926938236691753068825893753845023235388567529162770922669814553578103445558966405292695151679426584644382691938587061907739719100168051907701028783546967609048272913252062455008269113162555396018240293453102774474612111873594043548837161321922588991445075164341753115569075229875491352751030445813847717230842121025965030909482199029653285282988658024240693628482137598765570658164319208905933823087661524153625277516137893430864310726390752328785408632872060577274122397704223008041532818844811964436527460845051276105632058521991267986677830225582075825500288959662711967422225659861735343669001078542816116769929410769118284609549908520160161641165601026351619397174934877306825584526307469829563449479915095686874404009788125048742935865651786588130832150189813673309702011049314580881366971655460966134801613466837114006590287889885284825724893111719567169441084729490334000080378182195051928211079510674612313419918359139186911066735259609697606453559965227269285159273355133377779810198650416205725126485342956859675065441749572598448305810401110704081195780052538802290440406529045983217299673861539453753896503377669709915121493542358408870577003660033885005084401054247231814705553047278722399689979591149567188070715805042136496483857316836106954588753626940619423386771652620552891107406167802384080472937485581156745374872691228135708938064200012100725239066378234197110327148810846724167198952832864361063537907689351501176408554089541149314823183706810391416478666084525330628869557481935179603446968021491594659771170447323776250093866344259471679678333013821923719606031920720609447661570477047609183479033965327124671599062604394373054736895360462120798437512024604006976087461038132163898553402039023614271969001106083248357334608616516092995196453206300071763797467218501826547918230730587128694570344882423705174922496653630438491978351432949331060952439013458878268294150248534931838659465526025780510852538377641639610499374964650814216542227981782197778127918907537625425139186161931128115892281563215654144833007361527058525900917124805715605450206434514959748525259173324823869597341872039925737755372727191414086576889840784416860808907034036937387279697874102779791353636793748433779033894794428783024244206556950385481119951671178773079025983641522616698902939217543284862886278299965161150493351405289923194831305222707126388990985799342215665916024068085278466218677099965319256046538167775248271922453814127810705077647115241451480965406480534371639487287553965061810150850920942066805876107913982516767223318888774002494050495597809197580350096318211872708548220629030872245610721529510819349993210726961585438361607836849894079921922442003069012294757431135730264178967606984568438616441230530133852853429656655975163281571115378899838232659806885622253468714862521037802168926966907386449390999456879959938991286357556339849634870251346070907911575717745880151724669165767054540853546887869413519524257787249704917017140629683884899157273648017172230023325338871474472578030242301845495511416403860965713898497393209272698875053348900195656618892652695059952981662830457953716161499379236346670653095559886367481009520380186364173162880546990540119651096193247186970192350767228496672070735895209056411314786922197543864639093808129368367156020249147866980917466175272936288148459524722526219137853470366072545225508986906353858395551792474357055382840938868003464935500312931476661626563788563308218556379444062069691575304865667350695513178601146662103300525397312776325896969717029353623464300807297353411861591797764021424031365373226863136627387212234480811708141259029578516315104393087008938805690499666607226780538809378795852289487548944333019215612022172862364410797845056113449436323873333884233589695817242706662733137630613792028793450301556670178936970079838776189925359554597757098781822185037587058167393402807990765842072361981697775704143281443959108922093889573951359652438270388453394481304248021356585825393087607719191505745820044579221013220801020785132762218974411332185177024761043009959483097850544456420481922397395269124546075088052530065489764588009816974827499399967491909904558238443603233796925334206550088614316101198159803275480520119186590988823912591838203354159652364932453110418062114725097422212870871044270444985184801429537614607915174308321987379171616574113625400436346276663892895050669417692788201463816695465869634656132573124199769382846936643259420264755010740704635131346894128156342206241348956336747232893988034434549074724694002186214279278766478143519876855035231262998914686036116967557165888749074706034314312317261027527882302881329461277793421196281666336541139036866171357084820955489774405304011699201341741090294049581922792493457447109159343203082322952566568144977091719695481544872884679265928731848402651998160314350442657770947906163958024440961491687094289137979903058834721673816699677236944223611909398907871585537195060769394082290833305848834243914964507458188846414230626357268992418068366310702532178524142596503580767653602501516585575400651990095330056536407738549222327364481306061026626154246532803013839661580876791008963621795337367541148731076589868480384384733872314415869362739128227140501626073910167076796971985279670945851136683495667165425710639275018210297533683628296542352820303767605528474259923466939879508304957283541208052119168685866983995223356243330913585516287517513879986895597027056003382234057982286365298697876123509622961848610103814765193499585506734918185380568054678264350592920567083219793370265653900386867824067808773041970670745837910246085092285553479561639786657994750866723328430994485117886314291982868773345805514992200626513172479008191417155230968593331433790251512539813343351015163958825412567610726859439781702618035689491777264345271662644420574870044624010460232591588157586585059294775554363365931250411301471198784108627574879555774218800995421236264489820539677008579107695438508722406325487025057164125076830933630252930838339063970724627390242092067423781259504719867367410017819033269975712416335443432515528908005628665123599521467330680818324304771550539835210276497190150586196120258027365468038759678140894125736061583188599118964801608212315709920244028312613558236130636165661448297966895975623607931151487183408914800809652376588436275665969533229035499939846530891098689660855977307734181734233598182032131655696908832663388128817833592528661621569553226161497826969319702395079799966434009991929060519011074331709641748038482897638979161066903507367283434434806818656806109108742417400348577908628700084112228019978326756111281208016160690442785339605966144756294679197849093219267647761826668388624477456440477439936875937306092970416243889185715219373431425493976716889003694710375471853158449552455491294054033606211858728650376992710078298655945014769925420678946230921885294785741654862737617285826670235849498836361825362539127077044226105430393021957737394361258708281472656524758552825089533883362499850857241500135777745562441765866585705508761616118927779175347903021577758274937667732138735746200653332849211270903068751518439563822662107096488058779415265224867268465049591929396057934299619619051842598591519886032546019404123810157062795693519902347086079165162141661511455753273869162538300755050263715304686773341011480910745245383197299885655915149500422275961642763839617199783126728929422345292420535996837110421748381067711097754754791867859164888034756764444448586568410699054004518601532987438388528726730776790255174389858109901971436581981363367575778573510387533228112117203045533454506349694690949229610723691000665061937332960465292076429235239032840407738799494853040772043347048210937978942807113910175701203883959009028816893220417000859949307196160987667267386549044273055883042100477599726437590910644184333830974415836664183704973561746154423991378245380376101698960193575294893159991104295512477740873518074211226950728186391932732393260981030595548526259421525634204648842645293892227070274067704084570190891610682568312275954418136753387942250727507003187671189694664916179716158320546731351370672066173627578009696567919873351236458344006341333517555953261822491546611892661784693744493834966124542503089861042371709209569109542809229940072172799682530340683341195028317804828571900745226680667879939210709353031352515910170292753668594642897455757264751531917373496285771176340713853350643026069308133207703760581160551864442874226642491624688787455034381599047747994251734210748863341955034315816778359787911780028046384066282288623092313872151645087179156678890349092989097044625304108304048647254359286576149314833572741421355472665995983667744034610647530122418319263627014432558822850250937042324555210535321784412501337704926875316849201683024234054222519143961693102707070318956792660938802541055240083572303581465256709042798340869135156827386033539038242847169112127143861305670327304885777913952125899802578376063233238987404656508448827586062859404873821847230530449345456206410108613633181464363597797103832486712880892081268056830070790073407297037832833674979244801339942948697208981825891731624223844465708376905568449949161961206161954061526188671942959050330409220268465741397385241764857330249107935018021846739934060673110121628818053434503494194262008417182224465768487688308568400150095810643444429270257867481673781502272950666039622906344084100773002055728598121707885448407076327981608045551620581448050029913634902418550059489722952123383233406054131720064881779187536764069187206961798596003629274827694678161558500682864120976975077881052307118290163124911711596134837689526576964435549373495059608337929375829642380053875834169842120570067007967937528167425517638212879768430863205828925558318289559145055259091884586488323068115656942240536668180163606364633646379062287170437875153438969649928373296983902043236165998189403816308322159668178731089230403351558815342407788743122297702187809417110495691504064559002283262271615133207881314898931667238365032202413800273688477176271067232716348663068347661204940862966590695608246327933850504731711405977223863543599702009921641862491021838327682838563992614298264615177521864758757566254031049833215895757645286455892740151711048001863469423566196363216296673151281406842478238867125884429925085157807140561720876038385744471163325812511960719946775466762794659031231976938765013404567812919470297274306939674384037727189483712576876429536572314385947123973526334537930452837522421123079717300927114753619533509641838744462480984305024137832634116247778826607451755773730037233453862255019749804975430861531364066608692204981159422450790163349601081244820419267100021765688362369276899500145314410100216231547401729744935801553560311452403780502405332096460781917457719741000146115786135017782017328152194170341528559885392555206570859501922138482329741804809186525540897393620787882834441671875144425177821231649489519583464920164467256947748432397028051837711329345201368639047782160055523265456109574540793857367176272387408586899702733651497493642236571565751772410561092234762366284407039707414710221427179334603000350917201144875462458850577648308904617753463521505658859875023551135544178276094508347891534583218285442493798727150316709864471376819864285195063681375303684748042348556730768813789685372170777468740285312171086999655504850144622367169146588313227104735021042580251878832808096578556701105101303635874476470888170419982122353908439499371544928900315143725013212406231746862333484622071445511621786657297541910365853145888572538892878742123293066901225821929384250648220388611450500125917586068382469219372374793711017817701297797997553458638448038284959659617530254061891396162005448137988352702785472264617460763174176347600418447892357922655933172704857997450616332619435500372332346955819258062928123666397302444060485279997639205481814524253302069729486956760707219225005315679043778576782500398298024007557955785039813921735072806629669649329916613542386902868730577875063929512200832746998435319440804604623024325676817197959994855042930487755912799520213518178316604615215316952679904114248792536111596846925545740535071332148997660899256803728797463249460768252746379243958697445992507137852948748196965510827873586463326409237267932621507887336424939388668706617556366721681073225139301141311681548868541530851576671413826131271124361833498767552092317040709590760349965772436931158198523428134218434654290575395372862852329522819705499816482548432748584706780764714383104233291024485144115514704521091519673511808592584643239488780139944402951574893223344931856996814383867843396941510774724036487963589291053190997091604561587882799126451477573940103178042408394579067136501125559604146754118502843323158078027441472753591951656168073286520559335374815171800094695618378225311296747368951814828505627021911932042168526005007598149595349989759013162036794393639456463150800608203303813332148424465167136684697871428158724947078503774981054586375021531285210359780807776944082587380959277427486267382200473596219104244866242593421715868049591361023653032270253725003666215229171306090278982545428555940420556369495154076544635538525309197099687180114450372651626232315528151489428006034639301940139256764439746743580672599330128172413042574204730148353874167795572427447920472129036966033853901699830870034843180209435990128018170688143441714572021797277347326455493326417017038025022183507222425947253807269638596740402518948992175140078535730892736815375567185330226189715616664755706133459328518418928864319035958274856014752841619576057570784976563640156981314213643975134105025765746080997381371219261169650197036088198772712035029536349104180526789793041302068756901027059615652653819703073655316915833968344492783783338018944585397902413067519840858741226201111501388941314669842121321842490389011703579532230470473120603195515741751630519397310250221430687663760177432843197661653281588803744989870345698069151497980868584370909678657029301780739827437458370934643193135448704242510616554678118343344334512838224556570527429998924328669567787207760201187675132386526486686447535130282977454034848086939761525269317600102321206746544883689370574216385768498192857412935160266904899163918293673309913727943783788721572782567102644641876208508691535308232126246943507381906934335815094336750809880204004669915127148002743276948450662066317539219852869011228468757827066536742606214117046367332778681665536517502681730603899875335814427655357866796012014297112142111135180145053469434705171536636277556529381945467576815629574824382614409307365185153153268831827294863086316862198147721994420188689771076630391144555661695548383034283661689792068530796030348432916690986650615663154117222566470229901435045056330754010198183329073028921903235480698236887953040754086512840562410454236225653514086914872325616957194969663550818302609015042084244705391027271711076431352325964269535216093824803805228552972920477371759586465939133429917148937978488224230914691669790955237385715212258002560016354973257521295757464455494720589873847698233223724750955678105750532807673927321495691199935354157615259619876793685133832518962569302229331330241187002258217354752284113276849539751784844931297855641372894857170057221767279894433910447719076340053593870706628556757307729108069319598731744061613888691246066840064977819277327182818048948880646234458628125033966576577729753115424126978388491463154484714220553920388732173275633576738742773652599286538231723453901624985301689000640321767703614523764273458116090864590265541376698249107541241307068357476502123226464727275871501968314804652137493146984320009595960089109627276420932630280918482013945329609777147392943240311818162426900756926722183594567277969622286356977888890896908968763197627058011002648169316557702706301691481161336343838644834837802900377047954239953961948795735740484289835479921457973234483010875947586115607041795298420652977142694808936473059637954644448259712694276146599221461248006031832902667064687378223601557129500408366402526555088221408218344176874077637698808124842621243326452285778831652114386610433689139237190629583683541016375275420964237288379468394662854291143752199728880412235258487388782219403843273327291038173571346486923998075299952592174674248914715407034732374353959414114928712741606240537708797250762175620091949135508718713416718590489059720368135703052582967323299259814650959735612857318178482421334994806276317791021613024892660889671313580586994531124174476997620915973825677157030678504862429995721623424539838439023209268415218969362234164230365242876584121919853924751017980128264652849915347459935974785523542917484215991447747923602539392803105382067743613741726850372658248213446844126717750290329440070313634747635547556667701853352926126668293664135665250157135685957147936135803779482456162903156493464628949255255589495624403327880896892456780655777244589867926393000774456721461202803206226530554582246651922851323658497436027499044530088514228903357825279892195490839632579215208113098329429753187200467865883529051546302451155545622334410603354046773238691916016411862055603610872920435550978799154105404618454045614653493496850131810645912561403194059902200219223019590535249288514034329121991532396744149554102305920812950213590460151828744648009192430765356432729951175135592696934179984098723802543850855172197967276461107516675977903898007439198903229005175795997640528633770683090147188083809335479442686896454891296701111576722058878791415315761986646529825409111563923281215782250280465089976885289997584698527406797320359681634262844184832401360439850535435521584592088059125283252207402534726403561687654224099173482573222247836676097359815078831190732005370538279947527852491214500696068544693689178076655030529768129454653864363253817873978467028971862304427871519297663563689053950059552530788282158575958875678751641407886288942038169971204137335322890906173973475833321470007072176325675360987826611301394992102753645811141792444753146971094619710792112325156406793843244083195266593543912796880255162860336723099216914869213955791675500736301056261764046270720624838095522133787163350032913212961993177353528917265180925243256756805486632780298021565911024379464757892497852089314655809474192582128694598478213897339928990931805348613886575224993517402716823656042344752763020815567148085529046139472466382524631864890028074622522595665412323251505605279864417861654806864117641807694925615055945801652581347256528740443086203083763385466062204609295703170007084263281983855860453845438881382220492647065409268819834338405887073441703407726102639192324133286835292771579194996221720354835025621006248637914590785973711544506473152720906227113593278782620645894319201973516827024473586006025134146627845239662410042145297559226260119812113475184401007476682687940495697041532272703080502434595226007854585183160567326600200294124401652689376585160926587562519939475323186057060319856457917683811064795558129861839063831582890921956474491011221981671170606449154306057207364270939989871507717236591372849442793000864879693645072060375599666618005943839038893195968289060573144680121262942315826729779571410070100000250944294435353656219947056242650867538941433965128638395191559369492943495370755440689818779139374744972369086183848870628235524843480903786744194071754200916980187866009139321291015624695353407987767393539251651964663117259415100074864268863225855625342191323999720181748041083300223910137007811723607031822898287247991524308983107692815731983982199352212932662961405622001205294685514318389111481751250965466123432629528607459990582765531831032537270403460784798624182803786899865528122777416385036912824963775744195397175648255469938003295287260072228541203406392306225762843389286504305027389192404560330068050734330307056569475343086145210156688615222897111875842364920742235791458195605943385000311854852504094404130647677402555056086662705523374661505367848823267895140750733128542325111847954973110310672427883283949522355629586503473772186841791722051864151380833726983285003425717418308772027401423762005533458695645097876139453095668640025593106947077660178671005261905495750194836735762936990721604098970857839639835249372954991235696870171303533447616035672724248303359688367872689403592922879765562519049827894958299495505490246842114396277806647613450584675299387473424657371956253229787670156699317467781442567460757787523780477459590302303119839851843137865828656422099566687363975874018884964296321966016061126197465545245329328572382672473252149296254711080209962699210909598948670682926675434886056686393150222150767079913294518974982529776842489704085645190591411874522328816567611512349602166531402308624117983490077870252143283259052434760312766884243467796024926607789709359851015623076359001049464734101520533701423342131440689919031832929782555443305183602180377946545263782519413321217204984654673026950971762213595017705229880627442497055643068582318353250141903702122388356772317927130073407724527500942149591981242802661632310238609276744872520897107086500627429426029181642759947303343675157241693332071566215958638841111806724382461769231339580599898033255322536110659233936078589438125531247552965830709869309373079188159541985532301215526499500194264296457962286640576476864884799040969044000085205081927465479228180534894693287386508667635915442410727036285517114563808461910683447728775871594600735486151501298866358245320746877983437337390066565269940522182115305780094703125186155078871586943615932907683923001307207909584822078742449326911174236860899136857611523997182301521999494139815077739328183101241110047591301389527166395285890554972092470761356491470826201050853928907636833050305916213973200058652356182406276149502368020657630637722659443220034293454495315482515361604680329396588312667278494329571754976310082333308929614580385338825777249750966063911611904938629156408345865836296775124319622363443011811617784845762344289659400662300236654601237138006921270015746396530426517924421671729991180406951680354358616615450907549514542280310486719225852152499397202422273439175113913500378536445717457418083785545519746872254645815762870597912025369527762948200870952364623738246353118372381352391135397985863897982458985438902066831761055433935483386920457742138391332830414935802610838498092731868973518450044761730736887786772782959710923162910282333578146342512904909131100366797234923743895349052737242269989118328904747466247086775974350417162825777423444887594229399662043204501347662631868610295438185212088758056285066578993531340563941513584053724106843901388771908511580684496464402401089411210106702736983298883429751584402420857762117497827504785791127978388256534696988452073008955710307380794207440640513046529921203705554559844656636895286107236918788063949552445446806047357290382696207173629939647129716247076008807451144110074664648622318492467500469761523827431871642018116043884771298399118737195601609430255838334456948995107967506178834726947587502181864784747080586931532142625831012414570270775785243053827698846395815311594933242530617201178722546411257768620720580500896458064365929089369583437558312866852291125813601299264072612523423652873329052983814170833273738008224683060575054227625070577384519791161777715148060934971170049216118756198535785898198325970925125658887351790290941674436303175835318396403499688335946503612703626227348004620792891404026526778831876883498080221518680227981815228456894708619671288510399226077003654932077584464959001227506014219706873378715487774425532226918034343550015164503322341573755231756891712116053719168883856578005663313024971470627349549814309708149397758297043688648637613133375788762274396051616414462836865760648117156678493343874606454949894480852674009430081253646616011853577917427847279093013643940784897250791783345224380056565120697937389956225729671987806535552216625948588805591414283754500861406535703970261193713692768120723916407517986948565071411870133218325667128331533279459158010303063833626147191368182997382343255775035197197283418693844515279800044024955463511073954078372538247819384098422374729451615293615095885689677029040762600516870336827676967934202238655835892405773017725265632053166726003904144402466543120681041330947522238186970645520299392946081618517266630770909822787862138471771288200700467964046542408051185575490672566296746125864064880440171012514169058279832460074688815929143101274191668756389213363363959228043551102987517834115363255804017652457603644999269890646829080025086603979243503500114546837446270238118660017545999328097271327775386653510218281477049576211849565875348469356607551260574149715206248801044959824573346278350721336722910716434970941042746203887701610440327009808863232700951293476883183198387584375970982380150473319108544083550895813589107939354062738254417924293694281622307737485169909407962906127135777931960411516920088357753761405532112421337271749384488698418530747480945445641383881753669258055138677443361454333868299261167982105694241339076767696246606530560551430707558589220792623958592699702992462989461456037469687196344635307219733080632857475426581770073612824841051215908388196521115602064665520436151386441113174940301561829147064775826166611616013411099496396085963205845285107351188802818753255618210650091310963461066241600838345900960377980354759867268982504902014615410650296605463592270382455932040751162864321734002048517475394512345355353833156111191991069688392963291033045311547856873531201297095971908908824006005244483601680457601148406126997915083312453257378146024768140578622021475324827965207472146221337275598022397428052177422251234984445564876188313292341160257456978236059643960547807671206404715112045443815736902178826541200361657376217384288335285985144122150180499733918673402462962616416688959126182630275034830012459122885726558476944601658247686128092259344778493046923002857626344552618103017111730352053246815068049691489423268738265008359223850159228324438142964848315787824286425449344733171839993679559367506785298379889082486619085080566847819157328798003073519430895861710644864894036026864492191636826352143027814093267542710871808303148968914468471826029013158176352911440747352967329708845028616657143545502360057514310148826623392743352046972575521488509828547362023746537033305919617013301936033913818571361630085208213506621799064097930884516285018419817125532370008951862716291221511706895309774963676014076099361296155550790847364430472637964571572973949347662086377968759627374648185105180657091949856891463745258085118083513218736249264284967835241808358568719193175698679857103637985721730792574817000176726030566884006871980803498495998414712425999682064932873483385859533805771604787135919011561791343306481320463480813467009716392944420995121034448535727991529952520988359065995954051643967249649560679471631401168235215205269425010922195154291466348392630749712107082781780045682488360728166927011052665910202067193359791752663241906053127180080892906056307997041344792698906458693310222655863170886488763624934535862469514130755070434558184865710679965183584138610083530827863969310253971223439576189681910917855403152386248301546387634943619056127347040208719409778969819097976861848966023305071460706971542260496266534514593734537325440617387094611461090764380518590804923878201766242185825751350157482555451095289904335214277210773328199820542227840053182397536660301061057338875163492655642542684428795253803435454513298438990703274667327743145412802994948564346137087159889772832870373543689617751365485841024621420254395521120138373914344370177445356333245650604519109400743922580492167063609498104991873099940425985508745018174672121429520363551709116486872814079852429466077197236403253721059714357904169196835859945995207175647125855027618839442754201871793158744532169580376607272539089006951794441245410221867121318505183541641973954157124380970838390634007884627776897395766406367270625914534355841163573226521341256959391372261787576312561737738851192783167456966008330960471557754357800008743030879893439797880935772884275512316425735132359368708928825248105798893254436457032267971344774908377424215608138569642234658515305259189672634744844849355470201834974988786744026926367557263454180080767924225582718164749822822096844282590734150272535860351081335654622017423253557824593930606561049348355002497426176819349358109444057988499116048737449740690322988538509494229428976437221006541230710287701057462405782688769319566968164634516660210965720767668420257424511805729910302498930648181077454220726182047750044674516054843050482888035371842790916030299840048351403515451730026600845987633467895483614072188602210590452267072639470759581022793282243641908189483971991701577366761345134583911182734985757246638229127420815308717836361571562532476998379216432693470500638114307699070468600662942876669703993485009017107595503818650507904936996009183493223016758363070156570155628745152312068570293628437108305846043603088631021511177164376542358374899663834982796419930320177677723625795047845975832603977171052685552657977120941870519353903724063098544944114658999704589504277019979332916661854415826338188120577785154827211479503035589053025381165750184108149130398462079250709385924586495641080370025703135605627449168094958603671652531216901414794035925574780183071592218905688958044793079153239794048330259701103094039764340493996418476074378248868840059543754461689611268964902388508568181295575519827558716087033086469125309318045560981522992887989295058068241706037864591847161221965101846929977134202398527895480551355340312038664857114395907229729503786951669155505320347722483515497058572472275954667839258792890793921607729865647553459981066993634226991525180558749704703832967226497941030850241125070330581049560678823768223374077716012829399525036573218798024178994516042529790985472679667263665771300264579924693540880231641762880333002514580734826250974710866941110900861164967931008731247983920199481589512155510520863809430667234042142072575218990720731267031952888223973559445985078418405397558346255245679298071664408213512353831030784370204198547643006558723308492839400029304777366329843141069972826853400083666895384807283447552031340779782726559252575025428720454246971108883421712017550423645186069593677783190713615702616815248687017146517589456418273986412708643893327618424943285694949941389255576840990580303910061996947137774156375821597531318246782024632848742419750921480264068295629745841651369138633308427787608033012467764420409757393897919913215832306277629440281366355381312647393583112826484614548052538908384357731659427876322687347983934035212222598600125939299867641567656522184867866128284830726211815181870095846695401833431986443604263676776507000521218292905304409446844853017333910325290445804374834384701475448676067487163019640039282905822375929708930835986603457336832852523794955774014631576762209083314821357101163937310950297966123048567430204591653852402976861517600897035012208609300107332170257715743085373975787036771429545015223355952763975023251892315246386952333188994799503904359820142087144744795318334932432474405464280883065975768058254705593146549820138261463187354152189800409808280681269891920515735320905011422946635284336924554814413399866225142693580466625580105035426508257648600616304765955602283791462111768785931943362109927575342533115266194261635259913817920351538834728150102928092805518167453494915446505130551633997857672475896484581788465845082107683689616902514854227562699792753736032041018786236341270156383937894718061988837885650258337744704092944649786564772168066594899809498627115912098160833858196315546122243400847492229073505172466356653044991971195024011891452768656178761919387529646451933397565271883927461148031346301829785428401607695566903948386514453184186341617177676302318492257213490621205991206361500020309362830794688081957798563765137669240489858361139033984991510088780784331192062936933950366842935804201468849197768441116773007367177825191696983098896107572000054485347176266107769627562087914869505787758495182138835017516737358751451859256799200298939526311676549988401682194799679352208039571488434051100328484223299171576647388843101628613471852265908626213020818365568844786832049838951916820890865770630584958838913710278714843594559186080930608930768776847400737507730555971873875997022444741079878162409856500350888176639033227626907271344910138294242563515077166661327469256288450948324042937657653507471236157307565308674895385318563788543129806427048577029773946641732354362696131850373711588727156610169905552505088082433227968186930216775885786089275354381128049919027445698391486672719379901547744548252765207890612880274906542689953885067270111131462518547945284061996183643006177564681681456607044593970392716863402988948349556667963299836692255514775912381088457372918963639021760429248201639757310468343584157822853367791227938912475403230151390338216882696113493175090240290163123572198295671694002099878578454535020604482770622237007694461812581673223289153370810744332536195892548668280514925414068187530518830656729874652318149592448748583286301537499574594269999597529839819179467817069574332559138819366612098337805387935649460419703944395925725582110291826635854274837282154532417239894845301011709721487964306617627839551889529752542431190390653289488630261187973303262717990475375753174304862348290695138515800051136793464831790472562400990683061132921066040127730540478347738154671487363564173246405643000410583737938737795534822501835502301625473461506768427046004197748148890231373559146880796203667258408375601974809413288650768177842033905461040196102372764316344093282222612720118821840498669216141708185916132938456546840896635728605926762250809966933846535216950067907367397298860558142360919295853985523988064805288335689946491838105393409166840500525817355980920965014694626043032468721632313943402080541411439441101021184483888123979243996086030822325588115598446192133612098956130838228172139848681418840889324536537379571507987303625605946479153035223173480962869973597624163014521503311267611006486795647494611883506180040050707883464874383924821105113525556776007851772425717068923709386789494436541218146806549177596856425974084311230740826196498473954490532616204216082949163781770975465843281577204585199125851567584129175813093678066395990209998150562589128504410969548605906412153660545484132587915728698891642851900623381415269047846580051927336363170776986087926661453196612287652726623605411644598586160304212758359557816895451590267124207981198137174565398679721590999856708740503956268644044535139538318350389769201250585499633117405963712933606624799310891824940171124589911062204013088599135895198385875226252760715677542382411362679381693279370614876935776570886181626077201718912414053480731729365355121305476483859620348417470325265178550986472986049788261478285690107195800506821688918529989721065244754466229243759505192385741475745276207016727147451541875729868280550463595220490360569296318758797484778045233912868968911679758867418741695874674505063386875621778268636862690634083098403090739696910008667067353963630738738260833735430593098403220058245921748630666805416469170501388039542790724089720732383303167583357145748909702579422744393249133294499922169253081030469977947770213186787733891259257134149416872122509687322003343900889676710498029932100174158829724264731393658254319900186147530218825509070178365533645852908875324810015775986815250167685746315607956117210512889419978177557364806586798166871707379483882842365191069793091991691590185092188049352570560161555974011229621892203895358254957102866332771380621253824607252152590214376902086262360035407529082501184529813592814289652893354255735895383311931680452299924842399886934357514016370595074618002902531311650727540472409806611160608789076066388654902367221780931106311630439861054624540318748323744948793140933634449324575333075342589202117560680693493280260644027841946025061937533715939241196398148383385464403476818394710827476175225999308481458831861113319508607928907084192300009600023222831880434026634791155422311142389812672173492551875620328701578139916102708302761519173923491382487585366002395212521011742720765698313275315030080613882917513055274207197262935473967975029481046044570487959722420818592050016627213495269340132471955830838302424731671296019498153744168987346988818345330384918769555510847173772321822477331253099492609759040241817315084938382506649396215438093412215074882018391492695486350709357579978304580019827924832108660725214466625034004116470145899221533138193811240666368970263674766573084925985755859312805455064995809301718909835721242166154839580810762973487495853011755681810874499586783002994776800313495300989048333338431459409699569125069476398653969446720694549743518840982469942734500220312097958227367114669778958855107439345570103671664002163232591062805273302143945434956259451569582729040155469881455182370143683703793638852327097612464321929179755509859863620711309661835229657174107468981768891225026127930210009139314343148295196563324695453910711321784687562091300098550276673278775869126250088413009903139059718113947708729338634219663878049032316780568769491014863616057213791664139437330569764341925799846720757465449825769267103735018528235761171542336378616660908463540832586794505819727051670348113006734151054672284427774023856707430523216909950521601687169119340163939673657829815845497991489832402902128789462959247416950204451819167263505366126039005419626085647899748869651269539075230019028037778079753540291564338494871326836304929878044469297987652639805509757502601313761854959269188689932733076741701871525913945625479240478982400769877503820287097207057815033984214549948032564008969821788158337707587699134489693660875901973050781594092248276374446097970760708285915507589575361455190830533083707770627971785376485963927143889859403503321378373623798427642230737643638121692654267004771304305032390289281256790161599335776585966682063179753704817149506427190989552201888930580038888246881339951156900776188428678984509221110987666390989106042471629447171313625754724064452120776992629366028264439152510302998063597761747087344305971889435505266130403981654246030966047951355644227915194326675077575112560020713876380750158191440536274498312581344992439886631213012447049548578044069010438255845782471726249286907300982448532413119116366324047661383498848354553874407206428618656434490071452241087316478384142598411106903247579696152588991251073213466707103518698901559790764542060206710121301147392355373718779276454306502936045234370233381123919284016308792314028789884017210018526741773439833073508826831017754049040747533540082175505297650482895431575739089556082189531489204844611853101216476016145564923960338259460768135523188069840781907968142852153965142149150302356373455344309204844323168363763463482448113697327475482113202857525424321382252055750291077974728262590483484161093690181787970289408499575742829983376302496760743329644284929702069435301256406126010556158934994988507088324850018295960694343744800740088364861018521212913833279206937764839464759001218166263680039026435966705811051599972937608751444202264236143599873200775724993200006128753823219769894524234706813870563820584706343558679974465372434233047679759025830015300312663343910122532494944268633069499162091714179885379501683769177466414620492063923108974478907326606808697219386228895486895977518947387669306045765673178814631948057710822538494455835920650846678473396494313262418033044079501775118788228692458708635910065569640199710617554510313549918671399100077784309134160656492586821479741672968542701135018637428615429778190449115830206391406917539031366827168077718869269436089180995181323304650472602543858244234658670037224823506354944727202790692342172430500637277248175691225873980738795130633766198091720508100769458367020562742113882357326794287701242650843050558171734939090187172674014189218667307563884674358105447325206631737342383693840044460391930464024095664516976687324664514851097832399274842962593688341410707295250892646767939714636045303858624618882344821701684174354321749822805972199203135135916843425231062173707015639735652208135823956460819733231032138983847636999659181834605668036067292207993551440301173029825934973634788804680085267759431966113596391938172322170597323083946390152924487812945364647832113158548370736446210792623606652168331749358376289770746690896631074877599484484941710754080284726758301335692831634438456362383345009318577975263203981107586841946712428715655645415080748108960447936075804478553234585543870432419087398022364650901542047601355878021552188068854869474166719648369273781295019375066688744112008993153073223331805698853647684752156378488657577131977193167566319045775867682893769328705894898190292460157863109480367678199695867390861454352383562737525531958374786853169455618172201277994118969751655263473519021733329493931124588873811284377241176454492812914163183412000117199616298606596181865791013493658029187688768014337991390580496616319121194028890989388806177104098822214980939327740881949529132475368137833544278115132717312186162700173954703032689005266065747333262014154699872347238890796655561185037282386477015266004104060168889111739237829600051761842986828602640333937640085573992707172232527717637843220789070542065230122733988895205592995858337128948631727183099900978160841322195951464007045063167257347231664013354037209743055131021866621326034403189404000453470884461788071603336526558157229708158789435016946492557656349918414968442646995518143585795187358085883223927016970581350285805106545948969005623077260813616823317927426127059944887059479690463712368876292536840458218677855641933641112136707170183302453774301023236176146365498530806724438607275408660558958456856005211446307841648065479667139746531949721801403257313556711944252211205458034483053056378621826166823726708999731755431553110786212949503152979729381530467526867031425572995986157639626843860150251588711024402791630711855545433009178181658997413333567154289415593265442281435114244338152542748914706052128838111007268979177676147964149295885705404692923811366537995689971751700500186001993430919562438203085987688284744003236935803045840416889130618182317861733993327460895307252462487704475501254283819179761534805479134087998815812298842725299939372261995353799545213465961056014867812617052715202756757706359680000722476889120568057730706095845122342511164003768159545671672304279831482720979207022258706955765127953262385508293456999444278109693884117749958118021430217032714811068855177511405872734314104733808197564537883041416509835235305151253748264170116662246854356747586132262981284013825157478484260010562885349278670752296254189277978646164793807243554539245353755565607348457308597044625491593988332295217495149363215005780332897133050557945229219696933214906937369984808902100936787378530052938364582152305650496414562733790273972049097060311392136250811123777626182260886590462458589768310458028224929833377872670921554589061798136121503600315586740245942405712556029135207902659873336393128116976300334441543803855750943909315636392413764915484738016813085891172297458024763330901188478403157268654675012439798206507373305258197371569594299283892301507027550726156786606886376987105183605505708561613683330764955472058899868703167606494251997720041578696405642410322176368937164699729404950079722863438675070564025233739130732280838635814088615353341059404364651124503919111741435453898557603170137281920371587558422457861657426227450615492175915577209090163253924070730270232712963956417317819336232887135807945159499500552995255011917364143368615963747210240114187661396981120833571765481121770444814880413154985186027347604481576565537105218202755545527742944108516113127318877859861692664224899710615221735799100767058011738491313241738756408362918043055008597152169013503369191854431778095708845938079192190359130967667222135025213018526133121784011033117576425734247591133590558444579916423828451808738026576567979722359846745836475048617485959893897237368712495845153431122046425956033675252542643489464797185071616757879346523205620176635237843057337267887208437560460991917008150714246124151628021262459450769298100176854160944505350206809429231178359768657037988470916158918413352853028751698103753880754808579714543046546908933864381401618687737696804075884138548682194882986655711642723153515672478280396410702347194978203827757077763135560590825171245715357661184263425907438256673461141925267070695197271478441597784464630197745300884916424144121060186579313059734355070629108102767125928584365818760294064702292436800343366999032639088145041223227077768854814842668694108056047083523570584769745375802694545092535060618141843807727732465050764261203976988920607315299171825535977075532623070735920816911834379695452816806764922747812225643639635350618057654121449333777949346041374913066876233966919530228692589491686295394343593254615188534967397750679642603114313742620121556965759901491776609201163806964136246476544452518867690912476034773112478313471667284577851703878719140478685067012264899341527641093414185884166493730362492759591076554710668064899673350652450436011416336076704893224523872070532717294944974257401260576887346284741959322369727360520548346329854956424754875175013036007746587082841780812923153990837144147625223694652419508728772944771187940633189302285793040156481238905672239283672731152120016000069316600046914257405408697144106299078980409620130768705843560085800935232147581861085193930128511808634859136491386982303463486340859662639089974353375268175194089008894278941106658716949483802446585039763722555424446987771064095283813187487006916823650756802726966603533837461651932074657153556710175468733595172821514640285149741115196836488101407117407585031216476860360274518587269938811746201060904376803939306316391518249739213851626577623820051061169557670139463465593770135861875198373136891277657501198567171309204483563981347546824113332629746552373275512269485520438620765755386647132215876108431582234229761157825190603060869334837320269916166606031724620103035298431484839981051051604891643852841012647721201036730129414091504688340404579441143914203954615315392565241998236511835561685366594249307479749327989126981354171715535036367788442324445051424368524894934787376339656509454138275894590415349187809522562958926519337582245751988946803402508249149349893434136649952003421860573160808492876219804570153816532181839538377151396699695406611289179075549881653272659407919357806391618705145977582687831291884765128025256342271663967995854181831288788698959618794896458205715362327134691479591663249617114039553727424813181260621826167671894717037449306084383824093642583490189710592160131805016196790182569344140832646328052433209281697390548963718240975970140871572069348149085473547185511810857525203206641095743654198054648488291514503754408130404637821000618752201522037341532693229983026264572041669837937189016329136481981483886236874970240716471288422086043943658048946603149708772082339165392369771033740364327315353799386411904948795660524325479881261102807892413881774308907068384712726405949028523137483712609418192098121066493380831657229184123914472378522297561673313137136294740400856726648324395077073864776198495024099606365639033155816296541989679373823147986473157122624488691319727651275096919368863043252383691695661735043656334800934809896013039850942789537039598128826113983520140616229600269436346632127868924085812779963119563572748174764559354902238183893548646024000381514154287585071903093172132406008594473525758698964183611634885223648430069216207492782139611435998536348022581679592731768256842402654334558645577285167609995058546014166353787672300608478507947500301739844936717128847756731538934941941245790169148887751837667322147434452908723022490737559965519715477879906192307056208066210371089865938007571379084695796871079031648499601441488295943305926884982692251380244583243333647125857509918937941739983947590298632253569108914184888731918858584963585505157314702353090254547909208609487077251915749740915308495642948349793632834190089569196386982530653292156842132582749704133270214530948675182978391710366156890125349200764323126889790598821241900804788316247215587955785537667627263153492799121915060409382121809420914913179275745692165665533679205965919868690355273266008446919982862871920973689670468855467036936956869224164138540540866389140332893348449651549311441321361088094896500095247703623016466316831844963597149991879058451227416440127060633348534567027998738684868028809875215272108755468894691835912476852956938230876231993901194379516635811793948378758276337850737519593167482478484599432355199974738750895431699222452308564047843494784979353266494799748623375501995773284257546272375222468191925816141406312115142540532849990106792046087529343604286257667103789688265338717358715500808117736916932872067395176592689785007445071207565005068280878492381122330797208108271186101294785349675229226805118412028234957573402425935093284045509718039739046499253743821158175025442094203814615411112200583907049909936324533918230746083986676830659534051928357722121474499195098251549560044991138122775027645437518603489683228488605767390395679468776755016759726924963241547284974029565898657836558628191630103808843095202705776723389187549564723391220288500137213733223825887132026656486373159533583632795656699829212655654819925482849842499707116913119516168406765651562762930047007670446195831641840674128912805590224421510389906146219883843440800191595002549069012236738605482530317988503994422182701883101527215520858366648643797539476684266186511735569289804823212506449787899775031227151889058084077189731100684007572822894177068634462343087627949548243915245069078639547462251343381223323775335359224076960743927413287177335871989388429819588393055027486843377634317184893701015285347700256962952215370653712009669451411651246375039707258999912344872207903531116687369737855482218978920323273591490996516774855863246695606474253346009880348730413783986601944840342950765757925952880389312807575523706466823733617855665792217631907223086516093420647588315217557406530011124438595041602824466375276230387122657373346210236735389256251089674439481585952602997010902638535520062507510522549308257218049800824370106231631954928918772526263609311478927428475490877716508535778246200589753626217295311652496634873687930017209702104040906342320172465053936477278795973895795161911479080004785271621330364155974091199519087051502324891195447186224909916912276909211294677112800307916631363569799812618055020813882468109584301421869128464371731852963342366910732085181615393985373950748066786759161736261066864010772004365209236151646933798348338902883283162441854911044719276844705249416991383779600536754732860082617020166128254719959234325741445114417461250419127894615365751344661479882963528930330254416111562018717308822067770219838056290526397048262269165882618134113482294658210963204409409910758496382659211114696247511591577019523433481164332216317875722624525171415934086860950332264997348885627269713125796435439683370579992883405872805951648134418618575680690260218816842725349031459046453591348568280570678843666516199136988121902301543464404129007810929421419195097526855752780134057014739126548373394737160228157598384128332200053257415396791892451208727452711712593816002067066663979166437339236813804440874309101048746975951836931586126836307913734347999341338505932930209251374785618253861361346289891295497708034997943346359207820660768959365342722829927724178072992314243642673949716651021410367686758796454208347528457447820706602909848183526266170859235483968223378772482000948451788168103429077250668972217794390099721491225039460490714215256825985276174574663039909179364750946485455262779915651961694420916141639530766759387916575510547265068290635740683093327680166671213944050671318930509567780613476387386673726627282408212980959167086932385570172010986686300568039151477270734805572427475832182395896260140760166219667390004721407690741933887498203508368974216781203606216169313013445038327482474899023658134502772340141987251799075423838078760787586152509825500661875762500826276059154558903819948611736369788010826197422614701331798095873802593429621042107913554094567231257842261959213554996231131848799478055987837921957945965416619451213932059887628916023637123196173638274851599238638440443846465899434702345302105220850713671240642283010223095129769148568712005571108739003856468968792241282870434168201398771332476631760318372978396396061302907304757068899516879256037801347626582867163155638441683583459111937036223322584615709125394549584521919046696654977055716779687803494987410734860973080194375086096314428688590851648994391865009740174763200570497851872846291827195279095969115076535227025277570942916082230018011587826328560502578452230637287492364214813582002666592582166991351472862800287833823251734979398718396809674848918382333054217593655769915986870096298196396769146045330431071138954731948268918112017067335602650428538965648844314160057771992091526499711477561503481226138910960320430632437092878264129800863780009769202231260297640758894410218711603688561582068971990263079542153094546851521778308354019373503229450259400129025591611394677190239502886377583698618867589092899206155670189626760696755082301463306095743031192852187638568702136254253127940878925148975866897908558638483942418467046023251995010378035412917714713403300210361856853363273180206889780215584580616452741356625818543953561847783215803389490138887475211257888545179319871238116611547164132093033567487939783578403038867760948261525335095949636425715834224835989233897136587432788499280300440500650215260888189648086853036706472358091971278737453459653682971800429628460669197291078864695187464965596266744736537271158565664355153112996869780457944986508079667907047420161734159296379429191399908240451550359935053428027269390176028742038460231414879929793692010833707198513143004629164658749829899227279612848534946615701228556811739328506932359790632750025895876216774602904913782971487987823208463120764420256925140869850911592043406945538112931138854900393841481537998816194662451493505316104635019966992780685424818106958463616918942544492757882700004876838682950942550990075779160932097685242315537355437768724793384591401227648435609501942839580747177590280417430883393606600399615222832327642714964446592976838259326635417869190921593238313395708555594215640990294687899115430882409349650920281202879128036763740539147082545914284616187678110324581722948131849234376637156133551088333201274876010626543070173891906070926821142015171057151189905443574984985034741247266493605821310112980445038651190345335585218255176496034370184249224521890829895326601451287356307138511403580213968574128329143944770245808974239512764441096607403908567540040730823157237087710196499666063413050688877352303512317941670312607933933697993517174176807534637692798820839061980524894299971583795010823540645192913516329167168328565333289017312286450504793329240660875381321679765385262053812401869132883197612134148552977452443652510417575704893426611027323765693073027989350254639109445525430343017610913045397489213058254735498683252716288934348399093683831143142374427280585186534721612714308682898662083092341091813482767622301309809713904008277538190557379439102354950258407550287252572799715087752410911226753867315960978624680197567993485490923892319197368269239030488278478575036256331333038568226979437056630435187021978938874183304806114244241982146516203861731611968531803174361208352204918713457704444219115419300572867916761662002490142201214657179459379804956016270721905921306961151800657290039024829109501643053796996938805502329798816264190572279633954062499100649611863592694978944801597634576037600768747772660692880268722194089712756753604974651827705535634463694822953880889400090635532773429048593890701137153618383591581316203071295075618638962660452958566543026403848768994935346564552434499569563527245452534701284409885040174519238989446415503421753244415423423774099613662529573063161723614252583212345611310553020232812746827712135577720669912306031676705620038698363309523345426876149245166068738347892930305877915812209095255192869878959940169753254997330184379997922228070242693054910703505076311856838709091701377974505575496227413892107375064264302440263276325799662693289175116277214510931658236326367032370069753542439950087803159469006936981747315567393309008997878958399522841129456916291764092487463140406799805251914487570792718109131345369364484890327250799336516091826691875953409019862951144530311359278786688467055451157652620928514747923636009579792235826446239068749432928631666686504555447735662872369687696527121489199474823773737179348931693021214257249871516601982563153626504586089468215492410105836016357628394161119914979216774336099723598416170154036881813827752552551071024831930918261409053379362042083103888161956293737194482364043653687620874278542044140952111062164323799797877422799466938652384397596489620430632745207469460185192293573242351448023101602768595795723310997108315226617617330822889390426314910179913642895352871906520271523656944638773707701955265969410953711951461502859902132317929833551688032789727704380777345947634969890213288781370771752255225799294323178998257761579614443906949788861344868201280969620372113135388893908334140082446418898909206740276830127836251295517684521351732057660806678702629749279536634746766008419559018820087295210078546733193987228025945301055278229185231602787021656396896062467981499913069446504377981690265325683422070083405399186935865280235996488366114765629935276515185711272246547781638023225868378854626590386708597562081058787533626956534344539156876367699133869156992654768103052375612881765910915420024809718980272142761235196807998655130595748192696424210024359791712621135481245106026415052359120772711244430869116718436891427899116273240729487704079857436875412671088538770022400339021734991375170254938725134362212451785135737998968063644350906410557340551123925501745523386362597602787386122196772837750960311980726157057393590703017165639574744966177034394390921257177421482751907924401494513572851333690493779751910425240958574025273989327526579718591483058256043528895631702956832858460103915370137270528804782063467610807471242849597655169733525121651636337628305361087168751699608856954332693486854413065564466307649980943801446869279477011245116669950109438721139986526271361180471765201644634783471065675376747628672483048077872487199179028857896381754442144550936796441977912088621566508899148399413848012041096090914367131571553478116598725553128570410755148334033477779582803008853751242454980395201948996612229731066667374139977905055193608578345552032939439435705708141794587167297043073811756922839253613149534987692370767182491765070020968250149388295935667716070726110358763163687019450240741650306204743504707833964645849358849544778252598430167468568467150734865250195780997354062728466667826738448606196271716344657168085815191934620653963460327736275329550580506199889400685494022660916389880684213127753066391881401952244724461337124926620250125196624204532657814753757111021006795931059646472115751101705770747473751606100861665262085743404945065595550291242854183068172716418479062553350599343007272455382473711927065440839124944355982831893106689008762344846899717086842736774234390689122240840093070064600040457537179307374826244931074329859153081781378032214815813679614963648695303568388184261428349534503188486655128758398792585571280136581912309649937510361898485078185290398531896567209012063835604475909820070193509396183248499125655505878926453186930620618956462936307234274669496332715912942250650229166407325889184123492925288480231872634976425546617970864334170478299008415776564920374019485078073997427120018348778752245420121682084048468251737401475759792862938501587858355589354606226495154336118500514273619043696280243332917409512442192558599897318846516214952811168342897467057925427909411010989533101679329930027708790663435775365110539382983120463144723101959939058647946739062016088694882567165931239981130044709762407710437952188922090922109115032851654177735583548212359725053614671110669055781663691584752565896315984950539708259257608861167183596830714785347104560426276016140070626567078026730428398516732917271925244165772723349487143261755844194491609289930526079130302443305917663039475542932009883312760501882769444198149004168677247859550741608948360365150178230820066131524980708182048887574234741759149416014542065346938367885174707159292923199148925865794750564375694059323505541836410002465126019051728650659896613153479370352203042387525294608998644132726435117510900277336667665961325080120146821036054211289255233507495557570246480666121119769186446602219003749365558814935057934790684233438161718627886427390480002869379138711987213987916296336419817258832800220152107552790939939161900954353427740300965833206953285812414340513991571645606033054986825430953987107709105971198108677200149904963879526372729955770819376380608640913323876287863262024360514412946419703475086755436505126990448183360635168223071606680959122339406614141320116821276176559972710270856751749112812636838782500054156172717222906203808969696965077194538052764534640954363633775028035438003493614235902550296518947324334974322618410874195679280861813269259308412175281270614287403165834867056121558712641373729944720318400333946184266309007622933297429983161604128417337053808431494220460150102669131972296015377939628926992970411870650053406596172964924790825026667125778226061304989846673530999004008188643892995188412717392544292085245275608071666002982634054398938164619403497413146844540664820978322631071675716197674120942862052806840922025116181875855616669338347636045782660734811531732234529776311185372282620100240026932872222162053054805109949064446405986457199537740529005688408547499884403104634497176209383007194139470527456479991773757413609731678433148694857846973360823302560423309098625162130209750419896381005079996811789113897122211236633392228944866531818643380344227176381629833275920882639577245471741482247064346776149247003929031399845297974802748276558519257766526468457594942060080430638894143540621484977352340330256825269004233040848789420911360522535305342873624610304215809493658669338319954418565501856435935385840158073355066695934075537533219070235216388043663625388254261106446753831198418539829332376941799108834274446918023882702939940988195339258006820074454317224951296314975942055561242138390687692358174990427094119441901913354569560938848746324398857229642527234162229503909193270709791497763250856568032954411801360841943584670259710267912464404845081419082891516057138686868386459152696095726778758399781522834384256250654706658206764083376733498739505603342302281492181575941005125273187767316337288837900865629378310524419855981269163966203000021668739937748667967373764626553884439543366617009536063183958756622965730475557826756286885308177363871492722700523409897774597101364555663614113102265159363804095498686027726536698629274116864611963239350762377390127321544949153994193257695795192947822051684603724402836404216455546955362864580543871485729097003263674550732698301581158397073613371168854906557890360275164097813018708909007024506482500763931084847587245018578906960256886330535828048405952461656241267914099424587860904329076213251390206978593170147772925185580528301425891365983277521378509443157694971451500043222167331404656838128028632172329839845338216640393552392859800250544228364536241978699376818200896338118239455354771292225376624158492284746090615439174520909779085974172724909368860103806829012991815257774463912460865253698595996495183870217597636752409466123430637002365027967965394185630769948711639571449691662433553705441678155673842855620761747782463489105605321664147996995131356212216557284675603377139146587290648391034106321706872240696650525951430163485331996615749752127167964081300208401668759509539661743472824785679802179879394596085089062111325334236961669902620706878625317158463257339777525098478651005106909202238587868897085208052138376730310780158934081440302405989748948266810076443059846237792983547694190921253874158988145918602930131366867644392333284133193998944506270566604654085838596003663729502847454081994568800358346955576731386354232738848537535900339493288190787140651839586680574905413568057058505830200558648204739917154785366571756810018533802390816790309444783230935517239980763344897187426738794288475504951609050270510995999235538545081796387251748904391624730274663814562555943820008557305834611147159873084487469149005219045128915254460632021603943062758449250741490021436491239886283302867298842765892787532766023552257145563436825443008147965583351234762501642947766038239760389705787659000998750693915195100276529766286765054463075313404814996155042192562332848986271076618333216263828108821434157143357999272276319650660174761380415428322180022590847482808648417486393429061327198632456214627300053081421932040418647831687731090623628662817143432118230206721257221524649690214630336371063465206082028638474029269944603377096310355897433933003645111243661531728416426968317447571232467030783274967721313567470411873107006049177343619383604964202877473394175554984792307666359168608207729905443075035416368175748526696398962608496129092070675995550858425486907657932332761576132363970578604909017105617212532258990638808283821451826727095565134767967239206405095875184613612905052863566650779012060021054397368837706363408306949230655492689571823351587484002627520122718681016889608734053508824436010820647216588160882186354647418096167315440212154668825710684016587242545698592500580337032443496022868298917340703375109488521182382958664378806776784841103397798316647727795033184796407569051950707904108486232234619068005935637420488040486694119208935354534841910789543112526742821646840014082956265992736861571279899496314047399593259069032306690506948078815108558828848532343042803090705338716757344234568328178134090906937157183735213914076586251420670959014044678777529600144228183013325239748411943478131270596488057273193190100261973021382920485951761263117029015487167887739087745314350831178438158564789109828980236562571633492563216475141577028308986044719565708279924832331620469206133091055427558175829135925052194285412189720421543262998113960485631427072127595648857187289213138385955474891089752905524861709076532346493318845556909640973511419016115588015093405084190810860395595276846324295508722344795165162388344136862879075728833818986065094721306106030484029766010536858509251780462349076077319704334180028027619434448953794317676934550866116108043597670473145907339855827808321214436098549641313282713648675467235355640681192941091366910242981074896908932254564311193333991185093709268298138162402501975048840869190423390341663842618056750885600848578884766901687786800223891001372162896064850829916685803324387405054009021421943310799615704067301833347594615439627502377439246142434327332822511166766980038491109663306861935811732480909598301228034818011150668174105129990683234792765140005368790825240647630365046406613154506856536389226032652588108868371746923262468646714046179214352717793485603462237797724599214487017349338704612754309511005979491957874007744666003305154949617500136197848632555794979973247479066827894347065920040676510423961563503390919569018862544494346334453837826186038012667909128334042240624465475521878481685352361900418854362720672790923941344543013198080170353216900123081923743732607458523776082237692478886529316609268401469853037505118469726846872473754630822706526409307846645205427733192305702264949396056534353164090466142005942499398994919036607838559835592754239279719192445420011330667592634191124273437944834466191759027130314473458325293132540601150298249699136545746373116341007214985903780554204057769941830762571504548507851662792093903688863880270835262061735699587267113933530043218762179108067709834642421496081630560584350359445180662484638945673304445132854294964590161572155392245724138336760739850995932618304404689741989631302797004157995850866418425375699932529834899448171350858467089711177388649375581712973663308597171797391154994227796610454965876689122284199049215128221933788287384880929531399357348697119325717714427330384904302077843762142551141571123292684500321404639372370273018653179325381095103137575073682977464130562188264376279757070163893873691932905303554822027999515991397445397410777386735549786271909431769230639887898874108046616653536327499277936689098668161900496801942740943899027148805824250790713178971781220632512967965494774908369733788492900411610063204915927966920654259271965519070190543622696917495242531490628603238904135092941740771591820691622804643355323826342085658505749816924746674314619089671118856125444500089942102797346559007883910762015606900399734755083807855764537386346919760269515303406339163050938776049934553955473371688487052373909266426693872948254571772273244497837439162817200789062305995572358427949557562693059769558058892534737910541641832788065182889696723862077855882802682328709874671500271627722593573704173464019654379710386038894169497680264081489248325648887496826058388546590341972775575751921514109312383990574896365043980584993093687045078514862406133207873745228114339525347508990510328043345488806183633656318987757106557987081512472456001122493740408616250284074125475133483299803534266996336203299809262286601847029393606237921439673422820567540247517230745232754391456290424725286770779135412109263048659564448184664915506535118469907624159341451569243481944877489217066597538482381768463580618540075504472574138543575435200844712429443028675967445526319868950431872442401248762437082663914426789396008618666222077803066524516158809249023377516557819398048268049273425471933967558997193974276822616310366979934541123157178633301215044074454986448645422428509784191273822925245623123114157167627523368160259499409894904439428443198894145419508912111693862243156890103314896187353076814260327155756234116477718275542191530859879860631116060893051458315050413945890068415883809449374416973099187116223851650570998325490468347192083700524210419320332975104209451883712778312291834564627945146410578816955278589722711532403084033760646623964919558047223482166171493568900391140126491516478112657169850186313308689639666120363534038112300212348272079623166968064237870325113195605340897031065638411313055825969879079292131783531940684564131426814667224378666161840778947523002948838460729437123149269722307382066259031068499082603184463089633896789207487745299762484411392622449720591715515687364208005281695595012619929773936405702418077542598262166109109550543365064423677490285158512300019097854912036466322430388229137712146869495404126674339588751574422624939768663633980164909714738124954768639606017042300417857585481060187107348729746003060005389073220386832025996813650240100923951584380022004009041725409435825243656643233796061434926602071121151492699369360879551653482127721236467189913366356367733723891958099117405515231716332390417474695700127749294373508528497102083589996927921696850119128175983936644110906152671511046798141926847097725925570329430542741329185064947172704845022579310905950560748716282279070298271935896192065675737799055726105588638036972308682477847676128990459345664153055176886760933694830360592314551732595732321069566818559852097421224730537205297439160684630929014923473260280613105799252124386653545439414571578499895304371301719450067913559993983140687161845952958024436720261499016806417798861017373615552324290117525365039425425274316971191258279256852437756458350034797273358396632662623802400761738602396893733183037461017673780583685888154620948867393611005390421670770026143395687686106520694162315493794424018258397571763622183875555710203392557064436276461265790863230797947727806305695254401163212723970805005408036227406296753772886747119766157489363038370938458202880967151497513161202451021950573768090369246662701488898033317251815827455310278993965862827807181130462103376339738810933930895856850952992401726452340809397825708378069947630875284609916810263849359413348385029302281274898845629561142061514993002301158041594229976594855419892384416103844234492665865169868534311659794793755084431992224554754000361474827942743962384130583619262765626588597384438956407699323382122140456991178197574913282728563588237657066087211648076882120293630287504878597282640460027612392622525854581451809828019173441137069801298283334658032998342707656533652610470838562349971191352966272222223985891785104356470559349209530589210045629502241681221390885427117331763774611258104426879593087964033278340641570343834360973955105349933615590955349238252220148236754917494589528516141780682675237644037087282880429357538448506161241271085161339973679497596765978725672005897899951461591047539357522679165330758960586555228529203231921057952948479134764825594465163905824442234646708388307693519866361908683846859696167155800324054085417199589097628759528976815068320965932092343472230882226620731637407583050119022631768907432480154334918322873326073558476109161293788175621479907352420136850676716366116196266897633772158320841403975271332872869918383025868490944097515301258810069461298670229348283528710040995515719345142859315187764821458282542551265396790170649956998744099128787538490216353152109730833136672997809309604631891151248110069665601107711654525693252515036311271360695201022838481543448909766181911656760731095288092078324887612572286488913679362238845862996430656408662436944791051091631674057306107734344496203313477829989848453223209854214430608474517025957774750646898104301988876598743673942470062761228560982029761330440834374321931182576990126449094641999083725496651074948700712499774516352758347511087132490532549420621371095279733698093614434685318721699327968610247058686645261763992044693168706645336679518977073887611169322161295149597106750634522392648160073646712913093986211462645829086495768636786357225572830250083352596342652370393171801955025649845257736348255053232839635575361099390197543493453309762580130168843407621473275765758030978068446544945917902795534285358193917094858250714150688184364746042014437903706181419599262349641218800524623406562662808734765324453483196408699640533460586115524186400510656091336064622302010979088940916017417983601691393719746973769619816699747199331243770319218838980158694422230820543185517391396972284026306086647982371672210340202310589315741906464925731162456240987869741145002731915788877616231174661936165494115541069475196006045059733559153365122506609325419568638667230479467494307023965105525830151200300898299152742300087563930168610913876802811635056074450917379171052314724181836012718291222941212284526382461369736228072419129453450301229692581761904850347044496008449638923222112106412087171076358840135991112172402525801870150953155973037916226247893606225153830800740789986734059117122392795191641847033604853074141395294132426084673138209526789107187878356783808960972445645051648203047155021940550945138524298070633281518017440082481511989272759738210185722762731235129012961092817252035977938042749164335497127061289333968134129217695205711150309709703687733950718384229587064989061735839794043384351105680651732529948060598752414096387251340804890580232956160844087117624710135316941512080281532543501858067170098379374477174521464996468753218448072735218823880044941644582017893568743399133071123033155288452765101439722813804874902105677412640891699677647507584696842214424631714454506206205518509793083066567660634225890158214397995949792668518338747175550225224971939439421028961651095607004248385149009184109464753606373131851106599629698935088291709370338542557733623605988165951210989424306490037919642157572711105318520958916537736745873366676309843280067812134866738748353989185848841848314655951660125856434013954968968114141368391411312965894656203543150378861479321936460427945362275108791817780673695218690719287995161505644996446410876584283628577021134985130608980580715601792116292088816381862604359210224318439561393427037115000826746965762432501453051346587430677919836101353769859483306446440832816195109621584969322611634330975904706106367745259077881542100597152421448952021572102583132704441781171663633152506146547688853247611380093190632345414032083121023725915814482941659401109401808536265830790172833492303257422176255781125507590769194531371908096165480669907719331359494439499201009298799497728328956343528877014072731644197283747401044385813016993910405777336063399354452408172553070323220111000812865503508764956452426920446248769655453702664131462836732367021484388339420830465979990477334436699963230544685682840143537163331852617135916447846043680381255186599341554324737517945348728732049143566053688840479456805082842878083289305484185739834541295967457027699842314037991182290310656686151375425492135454772717218862482373325407409655188068924685205292263489720591774854431668124692497432025325731966133137721845615705088412167430690876014778911844261506711094495644955430877438091342647823881405344175655329164609136598080030689489099184329315569537112423479939780538166500557343083936468605221165744524177109920046634102250099365844122870625359384717968454114659855196646465265279881191679897830787785570721167056303908446180943456693212596243680130614832634914816349374683851649548184866365187909215549378490609888524505620160904549203055442209341352211762683942514573704508979202515550043054087202842021094237201032222599664121674373490467087299551756946909496282150485142270737195506664854074126957860645248669718109421107944868609002015570337022235718664049249919850747562565750361572957588455021631656589257818678861187128177304747289854541739210039096667376311142914175315004402497978596596852593061812026983689596318588833333607519420571776965542264758873927953596211706583579345782434682806609853561522010912697499470571710037515866070169169295214328333755463486011492636694753012066174658698541668715483105685013880426179720798579561330213335117007313758425858654370173764406968092994286239732058021309754248487990437964310842557626485375223289623787495092931527580951024002170888602334653620438568993537484147886432255698084594395535859746405060705803720372282223330669551534099815948099040191202457742280422103473800601343755654944381315962508646791635016715368116295958308443241776089392353546789538088383574440447393834641439952735916643462875517097509457752784419580017515740217808259563103056658392857694712897004477740041806308228973836364769280662380249895079156832365560599866924330486493870480082805509900993274338266242641314245626730519956217678973085037667824224483589010882487187157393758661761014004962977230727726797806025621800375541503324497647675960464934890438887902725938216146490745679435846067741845577074579892340544218099498812644650881229515906294277384403682588918941359666755785426435177255211452735106250010347949617041233920778417065566191433154583428190040577561054459982190959693869845543883317421031211552683498637524908749234303512738768658983796913420216603401159911023591353036200194194798035469844536079297046257150365844990670927544336089799041047173959294047121975166556916939754595179940733567137512448505263406362915543840050088956342958354416575841341404847223123072622020541839960351988273773954666607971378422519451660446742437153450719824015529020724573959552203348501537946267460601141485336901591308068186312386756392720300742561326700362323776024245724845267286358584780748331225404136649852208505079020660064340156379468271801438703280148387645540263255074812241271915689902347063662267902686376273849375956178997990939780570217018162985185293968088517993771702834390788243525870151671965710283641293827755178585616144626167207378128262954110880411598964950251888158295889880415026688844775519328731853149935536633517410097930894794824069401301622217502457487951778858472777424779028665031263905846935900612803221232023250037867629456539340285558371520839308576612906224118033893623286328539171682432204752034688328055977915205075322217154822457693000168065507399355598445278600107294616193470017479743193096268913610441667456021998152996548397407952394747911109386896616024721923768109576707771833632020255496814991117428514469854628956190421387713284350400504205616178477692150907104536574011673544264701497616473476169365081872148583665951304696408831997699887723706923401443199645082880925395010841947586482783683722937157732020545112286594338932916650486017804707698116851311689286623733448367223312403102981771964594642861342052830618190048404185215543820654981847061998476771663453060610220778185907483720139194696232857482194686461694494473547568575802565852267690006035282092401929887698804341965301111107965318671392131718464811038015108909289222751977155556539498759161943953975823068059653236032098301117874955736425146953699373420878446786417352385132285846278179515579251290779296493238380169520193445791227009192648941023825765454881177676319713419217782819888307886487316371049448046468575189798605567220874535714017497741289092364677089018933437878842609356722480355623002207410122270378534668237794646768535052065753773047749674643299653568532646243240180596113012204697737045328687943133547153256254231213949338459720717646712773880450945010631561649127696634216473463306790208294593458835986942229040676227655587696184495730102255437657320975527982548035210856962509002878804069070206149343387587352065352530687827279935755361894405581198237465409294187227387283369559553343270034569261051747244284119632508424130311652145714286126743814508883951691410976540719874168076159820938721305409510799011084625464464206525950867734083654373503778354746673537679915049521777451824403473020435517375599045756386710480209168961038654437152386121041218478939387412448673358592613994719822994246956166476387083268348581758819871900971910121008477237788667963786547392104931061201707844280176680097032772602736041692880325939928591837930297712192965443707342897684750866491832021778855153701283355672895042513661253897387396660057595682873091017616847371862751352514345166861149466928947788008580828481492281438730845830164613563757780982313603134920108788309913420284044383553337114523877366709203650751635661979767962567385888621339107304976432499635251272683565491004269075298427772180093475036784696147321895600904832218420801141550719616922972937390871899390304084857891489701281278257441046361172507554287945885642640406709326334435652674170869165446298320169172674674744807921546411626745901128698043023671860581707162645567913127469195457773366690875966216628537235547506413109810839248716404208294353325727289769738222073574085713893752854608221670056614839444404377742852068713117979153075014301223209593580219447825764006331479324006292533491285187714751129144343427865711224585703913811214674868225980787214852609765319449722405602293558416438295770236992162223780784639187699585450602196157914426771653069200524760874781899447752693735836758137307980821162876609355377627134983753720214799120596639246512832094796762963414257011197125446328812767623319945780304976620303630699219427143658550650948458405429188691842217558284485299925866883884469522331442152347524630228325124150532123021711903831007936664861700024026450468495856324912871447656819074603404744238671203954498711570895953876470905088137314599304883455539768639493044153874075902182839500719255292960012934185195878646861973624488574257162840339240335086165899112311670115740340049777589054611589467007344162526254456274491362972585809613954926295133298377183557238836806247893411093413358202475266881182016114659314513989063066535167002839113871411456101634344577880306915520667988592274235833596313612152675434967625696882989548007182019126499211173050346184166809345658722748128379667569746908340959814098612252895659490711193573044772064649514980205407049411843079101669533211199998408460197169415659646784399971229648166105886952477022931457630687155935375677047340080442777805106101571540863896325568860498790029297723505344514611111731351751911437408198511605258041901010827988394077194928921064601491782331657557660139503819978013933886129508542086491773050859414615654692864685510613245303302195191559318167040800117844309995027610005587624637258141531759706698227687848879082870482493262601577396787070043182498178056992053544007434878094072589528670414165605515514512475711973880227116135628577461268806708022325464644954685133830487440202377715067919581018819010302107333601932923009268929770003526969256372291403571022222003226490547015897337450821961625840842473633661123733410969273549434987466363292083205501642477718769467038380114897354398228602190771787783831506131180950066031122946866867993797051969470263518810818859524303562677773036805213608868111994147001772046606218126454775312158906390297186293149722713755860635478961279310355705983672022443507538959351412793688457154181981469558118638197184791760654156477391696047573034330794730664406367967133409068971076304901428224179269984693378582722283744445659786677943320581498017332485709175381051782922646913834800667385208033414225581342522517838724173629821830261515373426922833724886721214626136822575666429994657181893945217093401478759488826109130187925239951462315514417091830977732493798155346626016308253945297639171457629140124509306287407430115813072133774452862846140772380250449253304165621437870108483752803499498754567107100154143286276569854198707630794904052467784110517555423368821992781610261822223277400960443594955137387102517918052417514985005039906459592533014834658255672277287293841781047768848056635644947265100002960041061651906303529097587517423211691388290870296988227480074082620057044112127884200460710027697107945104306526996504093205166900758193519561744304156018126805616023834867086674929616331536015661324912980121863256919071138663388897203994289635450210217334059082371695647834261024972047459039822089677746544338904201708266604569242156016897635018884626865552202642580919622684970442310992647018320365393400384483840058846404250072470960724235746548104963287700027444688489328025093712667617145597918719756182935822331652935327153907931039455929043684931959946626134053268771230188682210206884288089676386026881182314184957355349608320777587337762284748778819590268182909312344341754081071317706943838116679770705555234703849167426613177021766109581930249813203395939349620514693945163453750088064384054230298725847418730493130899777178927485883823367796907064707966083130587232130969994086434069250425054818244271994294700421409056163881955835135266879936718072173530028583352207399282255368042728193557877196126963117577776374073948552028412549180198510637036475973532907481966867955794803611952782738829836867953233315058658865779473587530433957406351693975310664447269156001840977246794410042179449023464374176264313797158681126668780343928910759533359088108385616747146522835811147521447395996293196911592795918992529910802637938651450242572811155769591759404635389971878311741667226617792179861252028146404891571816102528717778326671817564788156160874562883116460384944391918092299135983115407255972858320006913283292978931833182926629479591127021621282561920422558309957416814302537080312696236474469546392891578684351350167435878624141382971786571882724427196623015937009642098824950179828309705907017626014210578744140566599187711957560463832304661433314821143025612546163300340839196962839938655800155495764855452895306661141216306017947356392612232567202146457477252421267584903658751692616600496493597630330628837885997844731730430331718724582626778313396011879543239411579090533707594694982677593002420761396275111109112687316836639976871942725859306183151887543015064488642486441610497697884373562930068758909441199324456168744727921490457006069920762069810012103815374516381234609522863091513762886589956328656319803485660004352465229405243159357712847522219683117139845001729029619075724878969659460302758736632631064023772134235577164938621392987341818695032027796727685845736496293627448571841505418656229406627644423449194226408173021611897806424422689128252165296951591952418315731220278935137295934417434471963976907144986358816934223508082795899135673229828228159993246796399402470449500144956423977556364301442542659854206314674251162380826117681511259581785643289712223513097718063470754681415124404068704834022943241670698798381124733616758020141923953989036855167677271377990865425590518846726800099481074661225643963951574081088972814691097823317472120609803762863352553056064254120674814108594315051674297011463728450677682597560871156394448949876078567468197644099738008792745525626917110390512451665988673129597008935451749908072704159860417646602262478374149747521331573641791154477525987765027487480600780253622934675415360816395981111554050800054847881252882532691081225893771346969017807527191200097128576574046100573241937629916669167342537347651820619180342824179240426453629073239729076174474409839971621840298212619426573995773274473645570337168542326814857138149617162851272767807733248377900302863137325030092262237653350630814341763983062797959520038578229576140166839233580373171372822989381943019868687802504061749265026135530271986311044364461190044059099326274247677834590050343376472565664353452877543840165036797845359310745378051240001824578075026385684849732435616606301789925618787276498520525394579195920409777666948418704066777759367317596948189298256534382768104657896397954717291651267717699718514722185309556730855864306509934202733850383060856083630859878532407145963886908886760882587768179211191784127370221281262028047102757335550592337013806336789218135514317874306246271263352865283059423000152274046814648275997832989230826579934756853894013557276700597731796628871937833169574637118818885541908237444177779048372962833332542530436312296011376495897097237570908115811781469267789802757460183247693984424927993012002847815180347146349778156884132706822057364479229213553842879077929293112729677022137629787065658090034601657426109758831063035318684841503485422330853063960693614745661933265652501231644329390624034090744471143521898789774984220245283600901802403740152159401916994622407739845579085111473212603850444972748710383734413861961553725824186745894993539347165990670699403037940075910777945099934309184169289788040568318728642459537608300914750004019081853595532939800357284240510394899886865221606547423262639713491616544456523310768849570091799048546091122849564310644845223582988126174039699121652294171974989140782378244478884740669765792878145644264022493509884411873916167908470850439354167176343686581840651210441235681450504273673151346516557920206408242096036099214536365923947293344429425011342765146613974337193667037746296915464774011821772097738970397488625289262807260813942704410725146882247289186657690917432395384265104017904108223219977470986315397253630773859249620139952197903480845824626783807721297174017090714366453338488718713553177341214374046113552490719852383716670108371160162997758945983168513380745506419474587502334365806005669434469527703088665409322022541546866613601266692132419603815508694015856655633695592443850983551579335268511043537968472563728457354917392786986892842125438808107133594125909184442952953308990810616325552709266049354580361871377500046198906601995160841032554414101154646483944732869828010041770909508101852629572553576173585616938418253574990041989039866387304340053635380383366804471253519288019735109315952219546884395987483610072921581215084761973784005784988704261612323923837711260915697539272945713008724787711366778723119529502130996304321852715120002808389929929964050616468031193807075243447383312242284945866323365857852735191844625907363723406534372139213953099228276282962037944483320298840391817572881001744371619508922558511754382724847478631631058808186630633064647991985451877881666349715437975283752367098328182079207065326021006144653534648893561362152940104513796527133553665053906524187919258905564078457556165288051384007807857477803413824001760499917813009758062882588889161406031434777502775820803331518415199302813548264302550859170378782546438727948753859095455583257160000695808184275126458701971693049594046149125773718560248252039958883940629950448635645420412806528881121864008852887760567694984988210215106580595045388014176355942602064781858370765975879388094754868241118677318481165250044246653014598208267988861402804265939568083717498139796825696075800928294438148261394096868076140150535328407424934718579510350943002295095104060989353964190478854608336630347614468881933110614336795261687266032357207288134025773852381134767421011974227483231841461411920157708017934215720831372124662313139777738488034823460019249901219944532802414832826933496951338015859955525370473754508358351901627418805388833563571278711337725778435768047224967373357807206754199044149850618262301653490903661506927009664054544670235962311768023587158876768916250336440820958417259753558111926030040455747715225282241495488335363065336023651798584368614345056629304901377737778934003914583234953518979049665854033429955392608692980699010499210977495626409259353632049685010922873827591657124386737881308824446004541886204707951903667160825927163598314209401191403467922073720269471551660555509436699722872437393416527698331273534188904613621794735766190105832064145842139284153953871764402165831459141070487967288850316703440125716783632181152939829310622973978780268662780170125246915227188247127081651996359022592180465370282256457998159160907786220142368190204696192085066006592018416220680020027398939105588929670171306994985722284216090793570800247383448032821890178031227065971374458459520109701519446628223842909203924009146973175039274823606252787771080646351338686736422589783592900704127640789713354003715538119028371419706994561505344834065359680009159140177057593518784586101472039422971150454923424539760142638478822381664338013841655045958018380228480337171868919440663709819695302647291639909688970407035225101625475275622062718087864328789470267139905730579627307273355919729055999787841911425872778417895497466942538834429296686863688880884853784995222866370158585103716441490043905029016195140356596885443241711953559141971509853995119224613098938550872736006141264000798019969559882312971578651189538235995122180513229386074204989897169148074984841971902769976961292799162143200069221133293857041788259642907387163424470895077598444305329663165064560641110453169131894298538656428655775807611857239836127058703441081102287869852303987307688086118358265464201421170013357611623999108058032020079978064961424527238430083559897256237482786849710490411037374391371136311393817902700609510708462450545618363750275107841556063552809015350076993945320782044587370220401025590344492284993350573751321777066023421910832612025485483425267156504543741257551961550649475914240772867969656155740392963963785207202360005889256099229643505390406930833373305231917511563689860313364314666433610298011307386211737805036800800330311681040200281330622477850723049522486315603600070896749920230699704991293966167150737234817666486734261107056704997041434595877316946455830230862476318460659362725091654464693130889377688233342512770050750541947902879012475145063553026368240941618537851760242375161515383373146456096404347403131433779282102214612589847371719454282953419270397628615084378902492480509727927964993001202288132619291299508568837379773631713942023790691113742865978983343265713288592052833870314414662824153806608308003252984628166922555940442498537565543454636181404247518319892880795310215824825092218234364143746178931373149539923105257095634476402613144387658479030543887700294495183998681436082170431990783130650379947802538885309457753269437577136528739405186958901764579435649576671435982363242077874023533627547642964980960028115738129496120878431151947225733804275634457911093258353060018123134001770856841350887352485259180708815747697910604198365488359995785711775946693577359569997914952840577587370759248808993470968604413444867298663461063136867012043493848174947116059657407279518158805236982759967851554536391491444324126372833434641690368689224213403412942119193601152581491668102879831968603388547861781116144732177132183950045338930824301365324796340515729408684610292402117354743720886893807856862723083350345603007908521361521806548990559421977503777342121688728749785882213543751839210330272814339113099969159777828971421463159126542218609427060992171700200316046086561771863498896199368152977349604924111134904260003699595198711150870557613876045608153742803386909889887880181368535427058712040948272127984867178326830788045663660973620181499366793704157676934956562104979307892024668490952657257378405565707838851401306795561089782235935995006341350674501286220575683696601574808375622200717318649574285662622901583445464090927724021943154708059069581020857606559252700252809827288697601374432032964626020379298116867968412840003119688707971050914772914828077385805785096248418658961517414184310833697357423249996550976750085298594891338820369068067673255455881345675189395193439034536433016147099106008856054962617807109584889794357119197705515122213597714799613444090291101252792516430037642801323528509201816539608906910034777223601753785811591863489074178056807337666407531421121752943752601450954411827736344380362460274745381805792887110221836747658356442970763357135919196429255607178723139619025203298073836724273098685866718144262091834119880643453208712130156263538291167937998451471657985481326443147588230949469429796665351245500781630575383349720742121278420222966718726916075591817385725438797649448983487866234889023083904149100538505132841190236551053086522283119489742622756147680985498864860345772549825047477223976833501649889789341895783919024514836296601133926782329230071505759793516814961813326873156281318143476790140446716583508499236777062017102386287841364876944805243022518239896924428150640733175127135794239095777069744758436801286993784426798882034441650609819353588380174720481782994425589195095998813513308015815432966982508360334762108205378211249978045158760937431110898235380198122437804980358030342506953775080782773358133254088209249031534706059222231148094354095972812000703876077094942243264413245003908942197925737690976294827311149525060268090876576474542963593925705430107636800011578097867372358833413590568679839211773587427432780538918546793968025981220836008892566356085279814764184003061077502215849510257202933403401543342265894300498266277385444817963865783991306127877063023271375348406010270363203278222120767323498051385748470478208336524346273451003580487620944193401107970090540434448149390146928050969080892437956858971643854986144688042472497492701675365207492409823317117914753497088631820506746185034129093514815267852792603414938322819260075165674472859802918327549637642755626740400601558996828619389525695412777452059111107997544044604107035839356106738926489236429258163446703581058121345509820875895032742077794681482438322569118268738812181190200248125838245099338955952016781231294183700296329402081523028370491721864530283963687866501452216575032686755671359822470557232755647217478751155657011459783162875229339361038951028158294523127555384983883086684919005250310076573290599446619750998586695284642221477423778718709947115492960999954135074917271195577586045239834780166205594900147181550459871359141354647707308642050652295693668316242911177860234930704721272853729219418599766736886662168326746028957782127918999564372562978029264583342828869569868136689597574353816058620157484688805993790472267267543639983444648947630753989610107051616330572781079017745649603554531527947162390124347175285695934389001190963130743856802081894932353277957266916421068082248852498913369622097826233472060507835717938237889295383453287836386199532950528759470043534460873337036408553573482328768577569782209583981957501685192437805927756272454227379914770768273838741832082999636336080915584854148702540772794951037813948132841741285054742866050880025280555571971931323639088508662414065113853618236288629511021120238242597752740088047781868899606501600596450466767282249808740078142356571831296313893776607215232670020569436517576043726044818705568842696172546664690896887513850501080898187447892982086893009183739141004943980577282546836169731472669010315143509277166246700593610075742885376561038349397037170435997267251429572847670835742603168163090312719297031224947931686178792515898729358723712209332987858783937083668594902975866764405216324020221415096514423328685169559730992598210134666582607616633655307527902899819238932758864869474774437611931498687495067596365334811710823183289010479467945660888762158447956574886482562366833837799025968331447791934473763657799929936988174237063881062686190762456352994684865067058113293281052132624134586286595754743873060158065956372368634875411443103568939086143839811843284023488008199884625342970807430058968054844106107305996084961179308790084560028671048923509347864966511664859550411761318222285450290226193087108967587897852921695681983152161412612419602627810361981050152579445774205892804944721329619287657394068767698753395788066909193871972572772932581852920804246715520916808341620237407659109925500346669033952001842425391003187531919441650077220474225202343741060601058247913223558932055030930609672419964280320446912619965110229886751837237749912210084107907889537532804718886403383514233249454206144721997273182415029237539511852029107743865839664813122047453363342009393160917199641416772087825884711568422828300193694292473062852625583234079396009631972927261189972541022637293968965684749837054750072929643778859022518004829574996736995385292273022439191067348490382460110234499273128818041909902525707802095509535013990311020256067419790497553664894510615023815856114161153598074094001598778359111654025530568305341911653721508237428273870239333828821180661050807904098306575068380728754147117509194756326948752660746848613016442341018169634532822015627778545632747024940769061901220625046617309480993502516685872623026342005185465239373147667040289368360853508119441261827013222941424393626601538578465347117749782408230963409924416200977272887071320056647603189349343886078606811608210870355069686644732054001153639556290454787163739482764211100310223930775600022665101941442078015520299551005064290681526382549849002042026132901970910407305155547672230503592622171147187515959899699872427507942948079146831187999424094348015354183086612082676882796076105893142042224045436279009978572633632647469431574045706583399010072844196460768386895710229671944976111391128373377168248203487163535771893635835413875371889237391196068250648602955645440907769887543169383390534343762551047313573722440762296131518683302490248887127035143288313328752575639733277421713265433635342893449878183786931369815747354901485938163845447342446441821927249099767025147782923131060368758785191469528709917993642917246220190719045525878815278591728406029354901208703663524448007552576640715959744010274011492459968035590031169392992218684401079967753719773778565680165859338620588295827637021920664474633393760154940163442158534393613766932949712814523797386533031012328658066875086387874558867901632363780198060815427486081907803365370877853299458022149508103604635339780984285000461222679747867706056442754434378083290669523940600395589517450740401371436146848181293704014698691108543155903485402007609033317881150898336825061136759791955189218013488985329783848140410568738536509591730506890201602445930828898869741179345397158521634067731167477990482001311035444005163129410081212611991954556469752262397117313357604719118594868504160622704553558504573254502135453922188467200911131769722872426464116202325079612673208984368198425739397516986695848550017970561136076144425558185534511193188834480388332230113882442624336212383898082325409278462428883482399286323919080298279972431850749152439529267791698201969056849304412262111341913462451009623429829126162093245714388237519155196675797805872169488411819518010270450265747721782489500290271224818281672147520349426398156961483828257294995547361582569729651489737880708731132227342119221607726007127770460624132435495102228111831557677539461169270760266640418812860595369396462473611982272822153309378633394994808593253149579483629214519522957651385593297642175435843586739010617911858180412304984404062023866573976371022875495064413805092811571526933008346227034360143240167428162398580080485181625407052094016276207273730458251530326126472567150730731275827799450463556220907885161704960802908864330639857515896050311652231192888265220173853681121923924601195440864292475615639542963090657988920471504955816873041077242784794028964687979795099393944295611906791824982739936242406272250990126531005428918495845972481062394293698510860171400548059922500493951931191149986957920333449066865759652149755269085909535108242361585306886711014265012103162290864352945079021380752683929784041130200861110784838024951788852761345813848179732700550024837594366882940871275982169103719834637484027320083880247597395500065078188157878655764468543683478362726909952479166072180078771470140953592750159587433719881371398247347225901325488159318370209335180143181201892307483689701298659013779579645513788617870586189926002789874896190269348066549866732181405694649334706729046128803540986099535120090637984314677600490297722632878603024905079500187405481412862696783067313086680793862683614910046729658329203826604072367336815227446425145950596023363852254761469609303646747630434870135596956355715487201015667772654290019883742400281035248856384789613170907910594429166513502518588151483380293722096826558593854239398054115025400433980817233821642831820676902722588702941476634301983992169768843157168686900054944573845209895944555244891557982908770736733871881826109272449214912222626902806396956857623312596524907809682673261552308788610435176494310593276686650048125745336198008691010974069510634541150784543035753819946663397616987450741804845638777352087493436869939603268757565974792138028792109267774686399652944544227570797204127090530944536759062160733973520887070274409374130285818648277698450153964513125126212202846140983679131849354863667119737968614287389285001630263705048697370358921827622025589211623920000467063772527892964511713545296050124071441085248041632335645002661319125029655358561081427293984285808741758730460152748306773662416544449289653118041612758556134343194653965382287859064189698673257905188684883696623424381672237443749242097787470681351109981575232734847601558436716198540356249428553557113888237255294538799667561817303231566899426593015341713585264941197764176548659907904228453268338121894343032177280751916320013914278004437508063354417271772500601648862287918222294980201917761334316499696643004765772446074112865081205713863601380707894654634685148028094289091236520962630689907852742086784744148849552355919383491411252069507932728629485880665382797906104229254231692614930411769250141277359166210155852012225883419340575043129710580098527921086708420348751071531145487117501518489211263194033815868623173950216913730579856305245001588522958190575234751630606106889760777030439982353564575872199803316004044457214199797849660978345226967377921946534506144850944064714387378425447228062717342864696453950587500431808213330081172359313095918095783012497553230545705755772466969650405741647392499449816650134262108974024175078132163791232555855236083922287120676699667627465000218104475739676940813846887826759761830541450521411901640895422229189477492823994599145514613174649480068721066109633887352481887479238319809218905389632774917380776389225077131421818990164460500878567531130546155179865811631204888750378231558787231534362168531234770083165900055148860431004297306328493315655838472638962264406096706295196575327908862680774647576676893657416748727024274710034974519227490039655617523002119866423592372587541830812247713615966725329848951394090221261777023140341839350700110591493557283537297530325667347842473291483767370514722444841421686023181039330027028982156719419032595365689779028926806451684684539794179240125216115140047733575618598920505365016867552806864740048383538585175834175073204538453618453985125336935699901356768364459105321769107557942249344554285546318275597871055888508499403707308752853170326266965459586040541593717410313362137727627579850301850848602044284544675143002215834065892842424082463732018099558154547465935076629185594708444993980828230002538659453485208570975659050744615747131854072006453965953930785851676312231837352046622955265218851231918984378597124101304315035105578248267314431177858519569941702078804932831546583755297415092514367292569352328403859931326420897363381685960954891278329800522210042341736500588519825375688875772926570031803500885979935618541790801369221033958635632825289412501171110256609920959109886831542600856065973631582222093972695559165805504838558544817675038063278215102948136889835774533197870037486827531205537326305122841875804276944337743851461267794449292779918807166416318338779721425785921839752007456173553435212947031036172800285270827625274153873013806977120557437843414582802400727948578057627374028414599153189048417994131664327462981557791010023207606548966313640022419741342971647136863401205503130373877633276898224857735126128491482380358584958811634845363461680055995168575134068122751719618591322113041259198041099599098631332493739117876351725175595980695827064135735462679367187805229828630293330428026438565849830166897069913952822908687215776907721536448538874172193393016179480839732145759167806354765092545269301195861415983673336509355627132245285455146198649777319292971129345405391996870373445805086864503824079790274585183363259402644520600107766024020101335972303243832716522049567232101171877675540396364054138407325965620158668452446441380505530632142752288603695481330001491440331245676522439920762930341842458204362690331377348698763776493392959731028978192892317986424094728281541957386912298573366282980679613876600542941502693928234473260409634177831911454157440963353646740308536755589070108147199144177532078658215265069762544664157466816625276221192840152408060758729267860992016941461252172956416735326669256291028839968778323830490499821859962643769871450703854376239470214265535752494896856882818072061745286158194806659336777921704383660972266399234215157964898989803379763858419462982231980032530670309897678749209503216805751323703647025506965336233365762075808881069300047107098754310914650069226654124838919152176296101346095272626957765412876143708586982273263854634987802474970664040053729789734330359134856549902865816460866953574996014823643635160732516219992632604102791438608349366320433505583190832225593525847184090710343863800521428126135228541160712452436484298664740168249391549094920100847489367911444283179486575907555173140347934542505646647652672121496056649169423095828978149240950640649216339056994032370842630772480327514146085059958618907914704064080108933250937479766061764963186620323049363964279786029842869231834025099307443375222603808832123528253816491508021119203687442792998174254977875522178363160900039384351617727021930977158408759921579771517385583431521367723542868477165694154854012333531472200545576337976864675190020367048328983654313978415772268480918909347158599132098448433466942398348892030642481508684159448390750382772884120511801457862596434178076884722735889372834380140390890558972090839171784608041832855407244715501727928539580635282768435766426897573680715433515596439256280874753216102883272749487733778683219992820553926724043680295201380895883933333490570462152019183578206495353122791655748205086565705012652372467214748982660433975982932466299669825650369321547310264667938245442841530618410483266968165954630845776533275116490348618497653275694176248106703856820415929318955818770852973149163150764378345157390756572206877076048275643505952962929524902840269821886307551954077525576626950637089436288488651400759590073456333403215698413737461785314987879586340662048660558581405613459246970684751515432770949179371821985033850292317980243147550362859092283780749174962075295372008736596576860506160750791139612021587556857621775209001923012297916220930936139254677413159651063473505562556083254295233406815773500042761419368683863518482001962776058805472729592911786506869925211658377357971920613181464154528179775849843239240533201185177770110262866589831436928290903195776782847598382609574748551404334876332407226454273601398834330464876434433186431421341893604318515938536158164549597816938506251700582628059345298806361627693329547267839344704649348596624403237469014535397497495894863636436297115106853277395171949630382418603992268298461320376325166801903809517078380370477539611084200803714238554108330764219748556758704564241755717415440132921502017852054105802970913774786810218086831600405342465043538261941095805687746525749506445393038055412302880607484851187580416605494703278665325367639273422737328108872192997425947405447249215127918565307937547146115073792824504544900181359075145297809480728291579831361867044769471235709666292356268094583959465331684670682132507107410339839016409490751760924379881546527821359326054327552536366775347632626871418281672158469240277861569672707919838095621894366047772557241303091387873511119558366690006005418719437321822341749051571380344148574930330963671276463135021071027768061321321090577334027997976517344540017337679408058665030905188749479547048548590269976219763041432347674764561049502800891354495192993416654160522356750018258522748064504458692433105425828930194567442759682031866723943323532977141537043241399751371296042652178613828559792576274090230742431908786984586633627907384594304924671952665820412943131301061729875189407859673429789119961076186021182246936382195495914737925325105673677834715626478385549435685931869601781202881919986367776101987402234393836127849190145608227278067157742542572714049337395157368668083128307672740599300083275373361317790569823767467874718491873874985529710797544125324990808254968234433971512089972450993200584600603404577649310262479986071786336907003809394577186517691124970091491752075451888054864214870186928263458145303985082839081111374404045606701669107119255242553055893604906420283369963654473204555720188066624764415322765085776186740500268175358019331780111761075601266601017289409228661563694326838319383524120076224456560078143838130626181825153952881824175144261365875919000949483362574427599670705763087863178721229280700585574149683868562067075791361316445368628393665952247338535916598402092699813515119820258471217435807454224887151453453801617998829180573769822406893618082560723378624338087959931848190119804170855241778976139794610309137481818557885742026058399901671600921249763354089831081651709366515151095265445530117009845374802617434154081442050069455849977244478082540215415027392627305640992547029002123621893339497142409249207702573760286917815644173158300070889484999022823089087764951165851687411405601022021833936746199938649322675239654928613792583097901696686466590317858766677872715333955669735108325286915987644079540217676133808767610772026346082643932709529455874052592594575175975739207170451005147625691123957871820042659157412054681396531402497990095708192515106057297300898807953727286259883925408100329890754153725925119926652973789849357759524562155610509691759245753582521992332430686268408007371339711122634113052085117469227097613214674894543004247455279645116258705208298539384131187927021798471130540635521867881947694547880134656623206933222470286043552765272788297765392664544136568886667223323417584086045828844953881679000096916985041727580309661058595122183971408493444683577803135165453818136855426160085269156886866377739027258597935070701808999015501093184403227289812988899800964121907236779545055445155930093079699016740498523544545498318730577417113783718287837540436765535322255858912023498563150836562579260693544219866236567876275157669974537197689698580285525856371723531571266134608953728877590474549090161734338184705057798641381401986958164688035092998912931736514982462656363607126127251017721541336042997512995030416844185105719701562472086355515009818123691026963419191233012774354840748857927855774315149646980493297163085053374907261029806058598657306153915255431706094061886743315322655293236843652919762149743597344138276566153911209267751506726997326330262120063087149728101761563477327671338044714984011095577124124067858991010880727574969131692344318521598987987365636131198371051428618643751605296280414275431135894720852469646906885147468016304038054028509447332281593598741093837749133590335211162545151663251946126066483480078924760470760176368982865954750448840633149000286787552910868560293746233664761172114008239922479081012062139905913997649459044283488751010760349186202844752247633404161668115148116339311501253614960063873235505363121920217184286778018365686215530717117280925833313082618925529319373742853734011048518800484388850671365875918841894879296769197142980736338791992450311772283529361924593793188090548267280575263894246856573602999088406170927104773079938526141856574706418780721120612147726447128883142845582426212196901013433701695939694894222522677119281396076861072086447343317830906751127574727139947773020200607531749521964606188613881294076951406502246953418904775216315982596853767788224408032935267725101503442530486685889042101102042582443929787713749476732994072557438927622053391251120256312322328460134613765201181760652699501636348970836749681038254794696996700839515932295862920586787896184510876009391187018098511297399562773375637289234481140421944040947128679382435527941455306072570979460938500121224574848632223649313877218677283228058006265645539634759213479713178841940111249941402495674806220250067093368149892483154310716291529675856460886993892470816293567161035756170765172861080717277652763681309392141871298421867461252487358783671083115021911493709050212459599195750601578945919588990711696595277839936187779870986882689815251349834214512374584130853359883554033612464072166130113421452464712521573832547088835940574804331591972589037058520909954092234235467071558045746084124196343599441489011690095780531042557105182337337102510988887206205453073619543792550501621132862147320690234538656270737591336493937884169748465061889589323304203997823443663404998449967900601105923572106405177817250449599451815312085527522817479252565582518210966662957161652613625630929304842062237882360003199327225770098483980920074497380464236010502373778763988588150032923866847105180512587934213976904754393640962570309877915806567388778734093162580900754618561594106072243675127293535379006021546441273063555972620360030981712301767380351192911687763012352101945605434968486866932164321724092961035170454641730410244267315709045482077718279116756469925860861816851249897763264441283637245659815491473986568963435356012152206552418696491039504938353172343158174632236750189298464078748680948672311935496908398602819967616521020665506893554876916353271053800507958853381087898848350286404539119263428237149085934414159022027518645172826078515954049781225878265606432208987227809826676947194814359207752756087515875876140968500578301409759962292258149846955192490198535863830956794870180961088007174839803690889829054698031758200536712916301608768268479453050444551534141746224263476577463060197967396672935797296884817614707836636952584003439183465106360695337552509611448848773851306424028631591832808525627749844542681147958179875632730156096245014719261797895676873792090113130623545447444947915633143822705632996513090900142462339807583280455127014606184285355423887220070510800187761465926416284091150735995640305275108392557527647993184761779366941893490458241087202570191355058897777575037070330389229753245824862517003975294782869478076068940033665794088402499080501740440683934085176424643668157311278731232975604851594848552987662670735377939910659501729674863846602510233144871235083283097952510191313015523638939076778935652520169838750788874077857300101944991545055552786753275084226089533980373994811442767825584681197617819574103841269903590259842999037411313130915672544736522006276496060748547523389522958058729891177817652685817648220324117306843020951325165043114712115824331053378041365923115058296363519614998141249302274988347801215024374277589653981474059879840730319187140570248005818089695978970456446923479306526795827679720457680086638035431358018073901622036792110043334896090891415656596423147348335254912785822411536802755773667015815163981126587955884808081003191154939638458043602144268459739179277377448604549581348870212169041378006282963078281189658738067464273911442783646019870473464778792130160543317133960952867990929839408660303178356765627617095229452398682067108797405388097720987290391309666559610931437091916637286624013181449773022002185731979200343243945369478749699685499600636093932073009180067913256607814125012442324984779705507774201089741594001789605586001773537274734288055132332351060107000929227883600252858949017040126022075725789795947484849127500663657155655310023022975455450684227885648962539799485070440301371072776044961306547837322051375291471884421872032666417532772571123848688288198238234021168729298875170983302195262698456574877968754123019850282957275855641987102383337754087468653784477739222383572285605040125925567551711714293769889391308674573356121132789872229515849210848399303589016202482411513484476894594347913981149003805337140933094269565509462991415015018175849824729133579254226743238262161582698429680937028666963118511560806300343276064702336470381124919281489814876119582993702118243359591958444570843983147356441818093236953787379666814087897443728900193107501268972192943372301741380281568575579827266722618725358540327936910553376521437759359302759686097730921583889179478171794792963606336370879201665470940134542004724269357458281416075554935880568033377381381593833565434860040399558824698220618954407946977165689705863223598758146975436475097123102443517742255112990120495677907921900905888626734382255248811827246591666457560025169581339822973762737860295173719000117754503886507078731502741633837687943582559689397883513582867727064272751959738209833424946477897659380698051967979734228478677470263055258385425020206950071611309901024164801298655493403488196346649700521097089123850212922798575116697270631331072727984236634865778961365109132120639990948053514678706182466895480742928954002460866752356600330313817569001338756493567805306078295308244887643527009353167860617299115923297273957692416916220259336585327995957786175442265369483221742628162011091781473783594567027630792742887273942369088095336335776535613456839488804571438551104573728198208344967712968815716493665237537527722257228963651404402354675752585044511888746089238020469165096027154051841595360832107880594410330230280168396922286728329737400540962052494573288835526759089201809331613032051265697973505418952422956570067451765961953630795949093602089131716449455290786933982569503150818795249517070168907520169835026156527673692971162323940241494314764952558107527510522414921701595174318521174602681863444488946404611133037759521402456342717894282668959755086430349680973217699197632923923919116863774335966920724031612040219179690165574752305020056810426009697621325087669598081931292536098416087204116430923996676586740951988359314593510504376582111041524971191869244096775248808418948279871968371697178932427613211670032483507575759248678956904484649198212276223682946541460280283557042829812232932798367396464443313291746983246206077583509002523035677870023474435184250202230251549990956012090265628403166510549417734015838448421017292120802715359337544488931380323161139230029494510737830820816972157775179492863539926971377573966921981979935892710556903434399661725968392654183487276323181692965401669204857282528957167870111837264548722710371285397057572002033751448088846674432468539418761802198025518729826998149187630250404134949850169197474082134234965842848992499861922549973085357527695668128247779504948315597027484267742019687618130610188686996223719863018177434507721669723156941794637119199478694646216634818374267943812173755173312206685236348126107587398526552994141165234142482370814853833395361452675615135843162625314018999944244846775599525919742736385832937891046974967087645960816523200469341472087431244181140056893574094706063138993590026207539587430876875452233535972724279467476139956021524470601518558686180574950999163283011695355458803322585491974024246447162111288092423494225384475005297962045977253113603154796450606393778558658880459782380951210251174441803996286657653544817057309702250930450923010844715698911830103253597725550868526774067914062661092289755977474394806809901718887245648889666306778417788247560430510858085503857837227246306806938779168556789138848144388107867210908389251948979240026923690619668648301241923222828733017982537783233065811916999775680369280326788683210434498697234929462013417870477266474521484119101543296194571424318947276140557300078054815527143591008203191359890623099757838064647813982980173001610777019258372056396676692626953198223757495308423948562853042372649160512577341171214262955257495951317545112776272619799873470389010182801120924774584863941380872933693444487617893384601454606301559916345727937980151532547789879007906152037576746430968211145679560840803241244560484784598169133577415828314074696163824465677168264400987096609782497342298300314035204422714323418693372765180499332546722352098436961901987932913263885771252514893183065148202974029580825722853801446575993206174105833808939911931547001848735083810339469317072949154613240197668369502794008288963774705104723751945165015892600791460852112776705717487699546825037412327046539332834974173620338651812780533916944648251471682211744062181622453065365046147462368849966499861870426428842878215867341223076752651359673219594710479237519338807466859840857085662294497468345018900705501079198384224202239742945669671653559279373853695037739835977856084254485162852008613137962713229647790420885183065560619506468439414323318561396403074190605566054066011939901585230377088657337766928594486790872382012120415660800883212551834448532280927759593814927500844709838946391536340104596861144191734757263252194301680130911667354659756234577831894413447679034689629890888143030396089958969976321129324582815872817860040549509276519352575415786840549257745771029440891017225424760465103730329825832877848129693950363688012569331551943883415748043083851590236063480422669012532218721062133098350722996152517969181208863756444382619727801420924517952475320181906408661731081901441531910405182793637076922950349723211797011677213181343855836989188284661127788886896467734782232924577044212547990079039742750304282330827096100102081694468480924823911052208815470926879014318562578231037262597285117436259736914316691621684248959961009737090944486091675158364818340654756785594032675710007471682485597842683340897947124714892430932649218770262330023842640586394197619838990410296276570835549100734784655797440162503716390756707228963844549581945677091166206426048877352695924888057850136950942929742920928519399932563886602863193014961831458561398440568969042137232245181696641415020736135073306733241604190826222449028985280929320782072618078476511742196314513369921972085728487457711687834656971405839354312793294214217171884661266731588788165638520821789919166339162042966142841409012932469354486123035024314189056954032775441643783584838092109888662788974869505095664250659577587807104537548708572772732870801321272126106891662005808849746916239494984385604798852571418171829511410606383334913399470277201980179984876265936758176507665235274811070600862338093619051164102781400876723105964786010877539934368926448555878001023931410068314011565422057150589966741203177346859143797372476372761258371267945136045669765213224972186111596376496209674166737025037305908555866436805792434235496929716316298885011260651272777198910688452661830517744800152295247338746948349092524441184558037030350417700086659464788031480673249584792934562172480330925421661606308644001561025385228012895191347108142911694373256695461614484238147889046354583768973087855100720339466502494036659883865607642997918864083452134643968199307192534708178554486196501481241011820331891826274829334028662092199883597382471619852708300611136298385271331821483748101274136760681074572478449939257088427761269717496708786902232968582185297278013931266624386234238930201064220454847591931382106173401889677395743401556661374456907752920656349121687669631591945585003057728003252604101937535513727691972335533795699863948153764106833391443519688074848645685504082113800732032851573404899303183152712471186371771711364716324768871822990095638160514791705171477924144489209852068119329430852901311714323625590273592895933494588370246533295098539709746657880382529533095565306196396364757559605832457682862554970142729870341436912352530359160219457139956153314542936538509125729561869987402464154145654208256324425730254956218398097181578256664843191317058065127086869485509754295928959582991524132485379134822743414135326593614249884808355267651628536774655305135743077595542694385729377894136716966010477967239583664436195076894341034593608845418449452188754255956374292905329137187068550273745941614713833926473257927704252501104458853360306855412645985502652925478724263686865468280652115997733457695315766245347502235485869553593956381489132949717333476926777682856495634451287007764427486617904976356629796498697245288767109241154270378086465060046368312301292287890217642865633029050148575070321202134064661705569385859093691296586122469086821344094990934653805362350350153900787670619525319949762877367624168954524066241664411675515549007635880679688326050976622757787925925949036145538529566645249153818592288710570771241528076793627572843202059438835282534358260426207502530151721734283350739967338190457493630063581359760769890122703474337186409757172692282149434667632176728451334492879373543977843250255371895894942421858205300451953994642603132402817935603784445305670296243907902400882705565815170026688440572923928812949145993341423722517369893383622936682132577144380127180711649452103636470948547865261594368422895170966864335827227896462343495610696450245017624395313263868448778526697740678746929591247777708141743590432276828054028902206926485756407558456705304295826735025785392187405882807713109093255290335693905145797580355700255778332685237933537306112961569382385884450438919766345321156099511155058127895671317152500361317202798100152384607387653346894408979682930868805831199034781511744582970692339757592251185122034711229362631358113648461758945694201579930332197178007820827563755059830104281970466247708809192606213097460674265724867568514394155958013398156057235907604851059765314138951640177737456124865847828005977877215987348175605811112023006292076500035326101909801919498907943038271413843230335891103500388056607221465222126101091734773343775530854933527328090066595807627514281176331202151048365944389919741660826950961200781558937865858278938537930061212893868856215852243027398811058293018770134255198235687406787300726888123393325140170008021763926335244325408623712230448216271379632374228046129981746187253600496048637918773733651202238879813145934371278803563012110572175526684945822921881087061380547013225270363637794055400833193868086317351465822857965811687940169193096866893427658701477733971502284863714338860831233105939263688393181456684558576726949749364815468594859081156949638649809817089375401007399071746392000463206263160837130617443608985914526614469426570616090571221042323431014778957824981135148930362137446733410994623372543697496949908829676485475233900103773391233227748501968518770052567519659862009081117606802701738352900674996623673938031475246506274643838033410604921851723853558840736367575231318912034439447499157626118933362973949919081352999562088332175118608192531598718997012613437513812445798244917728338946142731045832429826457167435606891977071299794887924367858113232052344991923257546833824211249382772264401034912072971022105042735346291762456633607247240060572945538629204196047099401512286065557461251371845487214201797578259585455716715636798733315718279491335696719245971651110545042451717589977771262915537673396961678813434577438166201097250042404120385489841561929175498846934002037423248200741540144392174275116320888957949658936730244443493886192234671554411657466651244809578923947583478035426483679402156126865024787541222563592109214822088507816241223705276139253198185381081822766733163174080488647651859768246895055357224603324924137037703041488401214017820477182132782244404224289249650560554077992723898200335586715044108267652280006533371759349685273230765269820583502195248367995630411216701085921573495256672760196127896677226541708112339562479284671369689992205799388105581612226826402406760062450121985355585071528354522414123542641049676844360488052487688497099797159848291808470195193750599255251154338110635436326115906517218377306036629891807927578674898556310957446682809238668128849057873180044546013621173580191630066001307166621266715758741936526357839263349536600587211382322941788190407207396890845555393780396648951720757169257027895377138077382770831108974404552583647751705681824503831398598439743501615491314580333037629100480349902654918899083122204907283930677600000709529818007290617339868362414147007221744198222701997781943604827218248393360371239873847699571061786188482557158010950360751295645418978054539592519128197959109271590479561185997055607441505657359353276029069572545128233523793303643385206723893329596872717746287561911689291924349818157385174151737856223349515546560117684989016780385306996268134434043859385428377668325184842023105020825371899116026790533402570312849164509627606678337709508678729658331710042642292180440205072659886892760666819781024001408880711712529181682046756452071063944590357607860521619493879340614197121115592478526918115729830661113092456677687033604570189758826348811876149927162055034909612363868207650146021833915506084337725182895117728384066248164667704076252464254249221775291681211232564476965170278808169788143142772979040951722881009584579971525642000556157181428547041170015999072213956399795238835982276861398909209171933233376442621242651878936623801212133643142961071610919663999004691977655310432444761214878413429506915063530161273767009846514102638411474536934621791095187092830401720131467839869296280596187821337768690632223024999563074053525760675706613451296967763460564922508688388839930793200792306894922955088348384735456070658112133005052151060793067829101002784015475847370235270361109356030450934455945557856279990550655782454378911031026708581864037879550040123848235778004842253951205487510084742298055899068895729137558684009671582249302570761731694632082560330915655512772809303220716252612140309644674103352406866725441250704722213493097415699315505399472858273284254826972039603430961909284587243950083096120960118745558174689392539157631142069830063532524767828469237932058608546783258480548970614463574029216815431777317405547600065650973873534163764154223218876404474869827489305808958693618379498606856594744861571291140405524659921463929831556416367102401357238095237450904253208305306113594060066373160116536838225391728940341514743888889707678396960683054968893438827961018072417795048457739906742128994169018268343060569602044109474942363952195014754743694486024223357982765590398049669053153398482006785583688345382927619325343573639086373580410364238500033574853165138483888096271336435066394807198217366360030225670101084780993505022606037486027447814089084681518880430228344777954938287706261315306652684871827691032264978463870094711280919164716970010177740372699531403152220262280609017005710773580620599650196426071805240622013880154083508406384067468217832533776835048205278201199755115922380487882481655952695354651838148110535070840627419392100928073340231477443983840354749922371204034274543843696506086186303862165571576688386376390701095973158524429593755338678397232647031508719874246716377661109372264529147030592700562424719447501032355547720527098654773171444212505862047012897181456087801380709290661379782146883217413776484926506092299187029976147132681795180474375348825102828666728024410493314311415934624407430786429154816397950765826222412328059847060492761461731819330419611746519923166168049657365445913033349557457969968661918674264030836019208406379595186808448138851924431692657256473895657777641429071226096370109452050871563911174819734798963403045505880882874829316656683674708432525546064654842717267711813662735978575299680654532714814835598767782828690520051138029804334808774658171319094306280660452822885171518401178950033130997091908861306148872085529881606227165401891996339417858780871793011706486818019477115513960435384069874257384511140646481707048942881750793598064741711136509212711226276706608236951243602194978869580123960183488886950502686980952672081319290674302406502770697238727062350381174390645844193519772223012776571282396301235172327884921528465928112946625924156269227889726663017623468510734445968634525974547923524261776400027720505132794853000496867561586605093700244637936884770223584203860620172790891956339153510520661092781499376061508929434682543051932537045948726064629829051020321651938488616745502796672133507874481789416469433000263555669623942370672372260035645173843558389419418876256927214268044191504083008130028877193571874701747049430317226397459202053075865216922712231451500517787233759622950866618103817577080266758816341039668743421084534424316012363913404666636367813480712085323331319030136707349606869067260963810213229280171527791716202309031799578631745139657468431108483298713161148993650694052396816718260833124973339625432559613286189569551695829276290958622295408767207220227443393320657464467805066634503013865193646856293846217312479208101740267686145710913346015090289358092508229425412619115339273192852162823036001306365562382950973154207916821349432529053955514875363759701020549287922793629275776861602570715214446779972687114560908617509591974758399348733562974775303768421941040876008415303301127733157257289647094394056443459171389248054241985597004723716354870868613991958524307661798731530455119318953828308399217916002398329701400495362446481308884003682555256820611817352417900447036597841999686203757250367902300307591850053728911921753393579135573654934470075425820315492038649443378739224249789788499558109369250333150305351506528855588214932703563367906650528299505900714648291015721650532784698309642406815000110259092969220555437767470160266391264161376138463509586898699708398094540642636683909208727293762094397392268022359288497541124748351863305669130596576885044172562578809687764225703132523032849336666678604740461849753545374708667563525608976653013294366816067365468620349407853954275395790984642548432416460568412239900299540305416112683647828459447276485650718157917503971345499399653017230928017850606216243322554863870267935976785236386506861180971458343185811043441058267093689193787095088627548185836699542770572015464141160629126715144343924861553476969915834694489221593163454312480284429604582261969531493218869238709044754663233883510276008061466236043361118206299375914468070108231608777023105599481517606825278230678834431758065003216291583912661597999425228689943667268568266514232660667018004564621787471362665203346627861545125093036142529145842451537944402263521607656351353509976343831975856135010037857170012597130921763425438396082961941613515733916831928583297245380771859719926673432128179405721772065802488762407077188983028997512806468450997098427266883661246655986947927422611737177675199926461739199555315428535089816752586968245764115506636187392205944138646731130127032724658059926178198370937495253361828780537285988317554100746803326927855834693298989129204443585406014264415820894839513785526929423615206420159260426492495781556305057973616129728110763154451210248056112634710071757361196157513802577604681888728674832945252451743015789857514114689636371499172689216251435309054277109971827003151033018361292027702342032628603311590357430328479971571398511502295267405634641357651277641050190083017044014168677055407464060070857023626893851193497115085257152976910334106525858035582590316235762063601183061167429983117089138409124331125652412696860452480249248584058741139221052660868241140400622039818594356242169977072775734943465265765559452810333818333030800053249008225440003539034940159261785302840013369294612940585257331991433405628663492161108976642218089616884611521879567698659679487163305504831404779261944184699589744838297693037795535841451081575309458256019454718171702587619964612919405535135328456934233193744885433607915764914519211653009685112517425069078484356884655855576334765609921254715103723164854338853630030558617771108958962014503407812657796102415114378511051343193553775181860572900557998743088075298748433101558689972835379184300270221066329288114492718079670300664241942868203655524292334670613655656061341768629731933871525348572137727730551740455354199484921467611470416405448242401790363816149887791443070002612980702521659362542319694655895337952364927949356285188896013608336009144373192623422664680381906156495418813947118382066108696960433805182438116347047287697736623750748056479016674391067482511490347763002020777841797057322257598967602351041867119563341910339730760908235648050895041981637779765977580879181646402088983299428105918239399767232456167266684473259242037949388938069343001526800631388200999602418042599064261075410139822869591035384455167274790150392654643938345198743949584703668813758996664946806156299165071335916933625784801877968480986595941032731019675133507498471393966018592248825607744485663346111374666584449218402343496991724386916077876851505666919763794751562880595348910314892502192019779639968956636221646185200310759602949059811152402292671855414072444163808233136779994459408505169435442698902528879888216604957223562712468067294450784973147513288841833468825880914306057901005206671949978585183129360606151310369607916218640364823643134539995567734626202367122274186538748246212188735720148486866236534624086886919634475314517420686389255982702955650409275047824445027801325684261718845275892136520145332850522044618776166994407548677276726628588165898931460334229187685864641428992963915433489075529923431987114668512658947199819287338828063371464758141401145751723732899059121193277360861356375031761004886765897445539017143068365884766698368893748238835671741674341130339781213060841737081196837843754914146532293574328872601551224294509235162064323193345401617591186639281310890825566278087083874109617683960758062629381572858238412023560586427581942971092031450113632917352279597648982765620251777515237719576914939858352876882074251238072489353679943478460409381214804940522847108512407352931325099770142249248059985932994318073271394935342365162811680915643948016054002164626844763716338529711379379815226157901672539550152351986198171949798268932642840375439046153802871257452287945980960365130525179679785253071925186315816483785955731612164371661642553932576373704708538624812386696513297984058261699543833969155235787306176658731324671844837472152924329696763339524942184711210102324744458958554371500894147901965174708945838575972015197844884514210059424222961025229139287519919850524155504265588272166361608446061633661962357677467934023731608298225172037698842002067680903061812353451497699277765756735551826160363359235494161194757298862937865085891705651264883248963289587135616017865380026383010023182128103699434441836886960358492437769091306776315429959123454561028236310262528707018919972774448733546381604198238790354319377011165326670531681740396603448432769825996028302341173763425146091919609895205601202611699169088843838422054130399162464613740802221520232301307739807139887931493782145225769448334549370692294298999859816228910722601373061960055331522440957015364808329878133563128998729361218178871618899039530861348718635718422732587668408222568892814838345623522420517255930062572042195222771015990689473596842357392167152278953404579764614484399906580343846458926808933152149879670876526803756615650585940652021261509197290932245180683757295362663479481883380497182145566017807641766406682004179701248252170910498990134053894282231689088201565837913851797635353779504342837210840796930019279205405576621346023466658984143634572610122799952985493408663467347736989874156869360728768389279536881096175862273567437054728565938515880149438806963341115829509349287807799683804833506591566633636501430270650045250164461229356113392056275375633002751236068542743025272467802789325042052311132094086914731763382375181955143073166514833302481762709736513382589422062115963979394689146447171620071087673264725588082878290041796283912098762555310222936284958600628821710436446246484822650241834912194020466455371284168443536355518024631242066914858456667594428171966839940472050539199566173785768680642246397252384885113221160255167103282592109819809705239734818507728587646056487466138858098041670325569310034573378746946210559603333374754558837531141839959451300354639435970901756835736651648082026616793619503090232070335678044684435740250964627689536844107494067843597757423834100184912399141277614136687593777179963621532571124198058991935446239552516797356092872623881175681722310689476544838839100810473313333508057532903528131720743199702431933020813431833072033779060714498339615488829052094255098484546358161759530005086503644820335470235414674794956164610517391808268290257858992888199205339124393299028653750539430919985435623457124711377585454579748769257234907302820198607286593751929004352461850774338325515421169320843750816619104474972050497847030999797829788097447056511725881253324637535112943213189261703813284310199151654448038871665884320566509768648173450370765378866074495194442893803563656138201928930178792818617757014807900161482520945469379888678323509941174756126769044637136503393656979965923462830133435888346633095106384127502587782734199680407721549557459726717799144004990563548516871146163571089008610407565783837069739660844402325682427560149528462028801902027935749806161421207234564110954862212124652888794732289853289193261531693148550772408263787121926940022103774399312369174418558482196325032442891752157033922388442577751083385338803306880264103135630827179480744809390364506443360986045602945509391565403453197936892257244057607493074109079170367843789822619875597686361223059845349432439226989923914509386209049182261696504691065252901953687556620542694114934654777771384806397752888594295940465639708310046042102019659834840006819516855139243550486255762308597493669285669570452031715906556207541256295114423927583890783890657950787365066623398111294804591775587434649033968659375348867471180319585822803544432818626477319235491953538189964460642894419226416671908598493337245062250085902832726736656882033270513589055893590355425779312903627360243936986444992727621711720818562680763569218314095346927695667109989728489466338779601846583406412529831791071665945126064803717374283573164160661342389869713507521038121858886127259484298813016550346330002214877656066622679959423191616267868962864627079943753936597731160505544501081679377475400958953816172159873929500130881922513808042577689637716479523877081452870244677628341229644325956415579561461120550934084968753955334789214877337255448261115581303626531229620341452929718178487558892712107125409705939734234743375521587591311237818163520018168611216145971173965816752160945731844984744907631292249561694607823923855577383250664599887867098079539875426406296828670348128894961329717094514906733867584458058069917948250304810881712532650460997606765204240268076039981125790721261964843097315759344550057809480806020605498222452697650644376567944445875242919485677132998591083895472535604458310270185777156412672138106189103881238201214791666002205387352110914146024824124336756497380179010463144318094762649460546180274718208859482468434872887085803579297342506648077432084284888651174391457838153131328991401315842526491886339573143466842623127876277548931825324161905356748639638885732554695444341690883300868971635427915439943198008438989141382396937528261767119880424158901579742434257872438892679562317408003991459411903753784873958027627701782625455086879919867799358601643193638726324683833528592397342394591092966254353264871317944934620231636959487250920956736766886314033086579723441341180963469137985346163480101201532908652111999743321455019463504111633642449598649575384426525375358374766765585757613372658187350504121033019912586767003885555089197856166983011218852321697168943256297056560167218693345908499138959356867212474104481435207778144511817487194089031670470139010946690634815907616907606783594816695102137214061761919267777703036879547297390364727515547915967715764700068493346031387620250477878593192054920229008474229628333550914974355451266279698584604615210943188944723889411393744555637065742610243173291324672462067144156192065039656584127179623066600180225578524714228865321090077625944698896422269870840343625676193190859853342359950558967962725657625521727200452122761881038038888104189369951053318826821858938953516411825770320716967538550268111469795933754341581930810157420434274112428750786330411887458826267344233422791591144595592332688049277615774848560476627467676805427384291257724284854974178994215136537781676190480368457795724613697316248735399667006939591845275023969049309923277317008236275560611084179371611573364354408664833440910138155937168386966340172493531519194947076458949352520376366960406938210289917373451699950337334413882538033011211388263868900038217642714145280643803504090134030074780351066064034489129323249526217497415793908836131526612159186670520140120713847473718276557366798032732889213185128942623806208773830315189692953179398133048838588799603959272352576232281400761343836261445374243191463269546675814922361008238850296534163160628755269948995137473010516417381538132961858317544494124058408656283207485043220561909400318311304902030052292161989587825163838293074940782670471690180559604710457548909895337798956535982014867013477147296826284578265923684213723415000204340473557960198542216994883533538837973206512444155569676664189758504422310714580784316674847563692682212572120009035863013139982439388699769784921288505200529828078436860868548385691739063555093196729457945758558574652863762408536578617898363147119273672270591050671370863464551305328484640952116063253360539389621517521613431924545920462859817155267604597065406601446069758607893513286973196224677020651281679068120059369665112357195964740523250441983682694129688287148869171402116951496335368829971182092171178725249512827082396858964338356308979840972324357592514758895536896473047084735162620848627772787623908062172429172421299872158154626401873592239704409002971054398515983381922942166123208320754214912727946885824891042622923159913355126143264383626696845914826894699260779755059019578677752809716046564855658737729112562496497853888872247960874849781268408988800214584032639496651225623152443454669454781074287632459279404319488969862161588647492679930509593034655766524997726200961463668814753979810204414253300929908776738445541040041152215154853919272799728358033310558945632011468280447178208305361603425577716871327474359778407994320134458885017174768029623310200576436442941992502044841157873544778777999971965682661728331853559780537491482801536058568482236118270215190467354055467783184632926029163598577890739546294965626455003926714292263784880467302137971788561530073745398774823021432044985497528425692061732797107997228532800366662577648151432911955448838630373864798262434952401554677358283501483487381646868679955954144397215813430449545431701433281439244410093075496054484567831340422743987964773556523250536313964518478555706160077547829132698103417208327237088358707445695987771063780403560029332996321026894432630225872681171717483225658687344208311767189505954795598234481658596390519319842428599735744703963565268734710909339681992985176300958976782123503014995139015770809145794543345002275370938930987090657829828259857442485993435504539169023523910387782058020379884699170400556732654715163735199367128305664379354173253777515493624135497337331942108644661655632018060457225417222323777887129612430634074692976709582812180040723710750654798905983692114700040299052796868281209693438155977664881033161673949080942375278679328954952602012125507610396154518909308747348442962167900722401786526698313782150437367636530273232433611227668507912287283000412482725162835585851275259002758495772923189547203473689200934549474523537859321607478004406597501780159690113839002007630770353562687770214460803616807024353180595980705336470572015170713366228452508772902440313994660085032115065682919732754359590632659504860261032725238567332682887543180102966401226481140749883080659461038842649759063529142807247251187196779966723576485828039114725693414949554047581621637125108962827363598656298684660913469297298971251121608460206844968876849342387142646718987757339504192813468227463602749726013922380204603824090789107410135107191457081400324016441664779479785916207142450501587425152769095147110073892713418315225160788199116433352932986831136104423884521441483864847205043757692826534688927875999451222026982694345381848472934574713981749955710182769442361332172420473665407267525119597098711930094163553628384792922564087985815485599685602994545411879236238187901376320126653217342304241431654144752346925585716712651618716995078636811243181758812087944700571464937193523496920170869328966280247497233278142566097242384355507113507596802368242169813177977236111587234709960116785395785437556376995045818261649740653625937633094816547882883568154188061394818157653059612880607538557363081129851786124770205669056741960486205161351143885195096368977543471371337403035545138333126285810327218666582555403036227774255814796931833193520460983491976179031227960699507938010187541160174640438378119804889814954028002821356908584511077354862501639080439029194423959906551088766786412179373249144670175652299234175826983130453864284832456315599981150907040720708292099056897128726431624657661980831170085739866112590583239342630992945843185542607045767149120035306640709130532822523809911497283215630305140463614400665372633548855028843274712715737135759289523797578281934414723253817933414915601874260137845248935483220588436744548462454846412111376333256500930555984430380030302395621230465643873346793182055824626500176905650410065496686279801683016420418572154306947855204247224680899300195435083715633311167672147970112195236072464517726073245482900064783575088864813565019896731931185557518436467979121623189394971869919904259386076282330477100281445536858536418681797905752515189773169715061970579143798275932689934094661141998963927913031883414343746772713390014244944118959076281084817457366560984449701654973215248378213329389712437874411423775692106557720469895021304045813842996439294387492907024288334483170508003347993262705013881111658161453836301516831113681280390846990287279633676511296220646364518888774213609742729519587209815246618101353619231362795400131629966686682803797018206425548498367451328530357287433056382223248512501703918760199925739003888875773565219081395811920427132141508478230234686717756992013016261771930038995799308248872575836318661710516478845240552905069243165402233018899756849360199999221715959434247737572481747113551456676784276048258783251238212701761256012952933225739445631179898870464774443976957350565243352906857581435794678052023766217772736227695596431723796009772614071046318745853887982484600451198120564243975671309063563064514900935282488676414146480542659437002114367498224930274355230104226800220925116790362188247254066289982901199079678833551172644798825491307044556998497452266145963664660761557955875267486471185459586315291679662604382455197853689939623512946694555936069985436570630104533623250370628346208314451545845632606878050108786656151150612852151013652374318522399991993810579796434678213415651251269118857004773384858676470850600583367186031153715451077194750943509975072659437890503424153782373737249548545347806410111698575963996146106895176325322727738573227044391410952417101569827131503762671249928523011892805457732450195005306413959400686382239582384015262960697906218143908943836991578066824535771879652983070846686682718073101598106550048527146473659856342277195516918836352705860874511161669408097671470368073891288093756707288251905861194856273128149464752252712740950372157897475916014174633840444466827220379373471172398713762366923586761827468173574143303157879217565854267211186011574574241323163475707684002074769962412727024870096050389243526719491309230155117642503188795680787269805805756304726879229511701463155256286941966908542863035028933027128520399529401199405523809306044412410131841519654809384465468709444924655022440797786095423024295933543309283187527336016197324365334146732007952027036944657109140131035231838240302257548165462665013701565857332280358075030143884590946498175324456504808059026019335295795766556587362224271853125024931142729325346800398959776399713336197877793630375675273243766535957293847097735956265914125655638981695263033984155970664061289158973135445477721421760913642050585904096857739512389227377344715660601092654145548505299043103754201402905427188618011226445241937085092339234728379670736837555679346104500193727462871119177861896576387022672851252117864386506964542820020371751375155792281850680339709839662840062118930828025547386571805194166267385845908584098413437601731264369069904440160936625968612516323365639326395700967506579328588551525766461974707149736391231076468855136107332272913091634087361147671528614250240367339520752302742167455203725896597293269065906825456668310202942317460133197912609404121354038109157826937110403500304009511485397167393846876718733510705268018923980974059992396851640211238457864003418403905691434526053900978759195994254988346255367580853266351894841661898916448292195674201546105673936709855571375801639771058020722503380883308409636390832678271682964421733817548766416919757927627794531767927613774563089491549740453152640292912676801504292426038701353537605894194736068570326498982292960930412591632111785268564794131219206050739163365359037785237014237742348692827580756495838787803525056569666253337370779914263715582116761113198569460659705334447472609252561188645728359716815546964606247503208593637942705888715009798588118300561113828136607417125168317589220420777700411982993667540181748233654256789393010300457487407853397678329531844909425809280285497880691230655926651216061976213835575008782013532138316080792185975812674147469806854387603585646267593252451253818831826097866396009139794453195620688893762228545238130963374111692122283333209081427905618898643663108190855696277826532578196150311571363283522353452580754292496146943648621518577898802166613296941824407764399888173413555989535155812263917668912804841165621829535778012440660046331226823270156804023768363327256257754901894491665922935824926445783075911014652043612872398641733273273655338374390758975373370215890492200480628423762034202736048175236801875929664856683139010173655430433473246788782813008975910736303504318338623821153972802333758553722823319916408963744751349747333231763035553489882043417784415981428451641342829861979621919059636430592730566543940315985562881345854162429852770306527223515329472696342743117484226531368668969356658011037916219390069123041840717398021456451367064165425949423593940017227553365893955854469169669847796622656718501910591065334690434291713800105160531175965605681764319471534992145322841535633829338816709838533381249323903421291278723552995775547107103723332526574633424047122892692167588145076007054729871989305144409505019343190290721431152091069755638707057029509019616350040158831733052095869744180811200162308116304483469540425721914696450814379103510610238563105900864210144877937344375271705303495105397368170113993664740405456600985061945861778012366966248193741317996552239086683261893102050606307174991677802792369722108469841214144935151243726103493016345455007275331764270190827578967412091309316893678624807086518621372619804094401547023433380894220515655755905173124046571245484731020191975759686416182215310994179267383140475981885678309492714637905926543628544186850583040471786201374792625544035351178793348783425358852587249698790733419023632564187535157381068507158613566714287923978181835739545316031061071758813470603458768630838676277726771807196964541448290688146950191881580969449847305500704737883219408589670243969738147039872267762850365026492516044791401432184234646092330568610743103092928993956538478314115578959098997028448891964104191761915438172551945411595696362942266178411910316868623074905018667755965842794252551761647574781177020323747688598826754777632299242584296774764873545564888430333710951352802907295397464062357203711779490699953710784203785337417748510397727247596653593676861564032128268261238583386723557124177190193848207406287621040711622071544769693748961851110025850879972243785961541400613735217381977595362495891822961178933436230735199671841492375980854883783601036851440064025577205025323410839756534721348228228248360462649647762172518831048326410458482101176953071353598440023686738855824655068096174982887153799704292525256806178218492258643023976733649144316399082629277738942290792007118661806913540416687889529217331342743870451108458631610153092542550071520872374968591320416255434147144321862777443837710989880253947047737272052314922004751526817713967459248968427124758609775299710620715248763892046823144004272288177428455728280552048569456107375977198382170696836880939548642551898389073700465320890448715650464086166080565311204554445679549977301889255731115395731735338874465877575656312083888727654257330529397003924446112165351947056849429448805880219645940637266097315449509711547483809216930054787541526802707457239497531304782811716407060579371971278365049053976279596993189217368067863721806633235264169118452171158401215639082872982956710758628423651680168548978596891597631740335351039737024042940289869806413569486323136694675958179936787586191115319865566617641834254575315422486895636106231708339340491927886534473245698315699196779849797809899034451181103939720697265465875993626092685881989462462624844807530301535253925137995689434971262504340656405689498990107613983078670705508301058304656916493692949587082254033673404500282340111097920944371024374129660519599481144249611966216578158617599816422187819082246759574476414130193659080688239709544729171737612215484433787335163505952881387214580530776331845251927653545672043619309744210518972643268391675926731434039173027194482141221405058949746446763412698184309616039770727102629726507666901077920414336547513964884630566969386635549850596770724754536309592334123997195052385173389728270385727284622228597294919674862585135539346472854064863847149416467974755879703268491692602525713463026510623571971355431545816900077971284042198912491132444222908355486864222261821110100371712024243138148554799374240852752157356702452455725953721799466039490086078933590952215747022817317316305861207220004464100277952722581531017507972128085836963933487298065997908168575222697848370810509854091215021298553382567814285999839888961132162276694035630850812446421790046381024815936460997503184094533612364602525344132074678388947009324757987808077427564103886114041034345550937196320096147083387187024560330373056912198879849998767346946739590373343475168421616332358098765682586571717954099445185996976498243688047685808795806595732768039599617986660859955306426627413144867029739017076456998041520329243131888827161276878622662877695656837424549521324804376033609882400386206021101581924901507025415669786837050672824525784654163439290379522932244383925250522828402179726923033873744934566402199225700456681377528889065233430104971894256699909588230913568500905158681678142090169689602399089206656549227710379721765016438562940286854908490678535463737639783685550324800637899668281612609629680777256820578345590317534683766512233447703421630492388828850892392885170692824195103583845567973519744148276523139320130831195168877192297256326762288747040021088156029334225801536069726614604958698571248547010217193823785498172098442431388698337884644268015177674954657270200024058221363268597655514762882863669531592442463984692163406252887521874855836007517856461709086999993215758129490291185528027930927258343758357983451761313359690641534462334742549023112239026704624222439891762344001727988637652848973400710584755961572005815015673759866183446175137729313019957267094295330112573353630635872523703659940731743934942502649450363031172939399826823453652458995992188060654171879083869242310303073402837125933332451027816982760736591774440179400742179594139480912206963809972752413336406412067072228816881906639363158357335186999595086699015216508729143381496234761791304541591514789528884130457111442958070574564235534190625557765827304497904555182083501795974273138594197591294122408790732904224881445355347837760390382058676981970110627464159190537514514158663654796575840976983623006986721578992085618836726773119602930894071303936540135074208807517648996664219716569273483165058330732130802244771353798313986514229967119720876577423293865530645765180513175004513800244093781130784519432715821396240238227083649187999129652779032166928335727759151572840378611697512238177741022471349777525871320225050576817443437913037602466466859491142314629329920719308259062720687726544697806655376606240365303352749304067753039386690046947598833484512926255782759657062939024813635632475802038811787121741011767409522721467291229493533549655355919519451108875634585871025889254296450077019268249732262559497848456943398271167785690039839682648621925451318565944781369933916331614851288681377626796676775567559346833043665216372118556728309414125175341763874459121832537719194352379375725689005298130540205012078291232743073674476037585022863374910896848517615473109018786240760289744999986147596176797201542744608963992771204472151593987460683860659846128114665824027130874804455026249518128494859327086778556323272495599807450652940107025555793617930224472469882256116990041185842716869242351210528331382189395176098875933215216074406701428498981389907741105913400294838882676227823384670848459655926937865076899878738966626298702059492648952330147031395125345169080206837453367572483693405856652480485554871076846258142014806845322532930313158945167395108018401267610406671033503294263301323928477509443065857792554718692002969810183002016509414269088924002316511294141288153305079021909789894276335784049500334911826761806603654642802087048370226225213293853573247584362384762680770307046742341056493935072800478072640451014678777291870998080485257597244572390146900746236461275321025469598779774053963373355107861039562968921515136228000936809685114363327608759853686102369537657845774214208694725360737264261655365537206973209630377559127135135349219758991794806806817304157705202260606853127870783582719040598878791163738869989574537317953431630427054161967813274343825678373435170594717083191997821681741032995982713998756763245027514842317691050693573154035450117343798004238360438606514380829875786325353103184112024453651572410582191250798299369647982803063313300286414751416852199820434844814075915672008455853139322532935989053256383368521208369275806792805133337769494644819699784932800276486135623027455755390375267264136021372084182548095380250882963761268507259910655518805332678353246984128791671827613499874531483948703731946773709020423871077701920807956657213028102218569389690211316458241823167062641144560957024626371935190999557127530252438019854216014693598254196693453004507785056278596822240804241422946350500544351366816661752636635828709366056590743796266299203094121345838254351714704412120171818435853926461578336052685756727423132077813310136432100244010024886005203173103633352237118171076628778061797516419242368756441776765075352401011587333156294849430253188180963977538679316115677672835036289186660939843041466990493372601303843115932424931498884137856517179241091687650316862741042661302835981188898524749124362521980443995868459486205190877668256082530494395635075245196940174378608461346817731180594234065259332359364259572117064727614271392628228240910806835946798333412098563676317887419595409947894552863435748926901703037290236747287410157636009801928980034701816811543150400921584718551647549873917908515511617705399363985230216679729440614360051052532978753752120026207210573968124989298368892772701383680294145051537039314693271654225766260244998082538249348900580869064118971434632586647069512608864155537452484144663410909892191760551371558007463823336142836703742816397615970622490682365254239471189206695873821009554524208555654968773437416916191111632743048674335071441841693051104716928451102065979349868910113064953122988786741915352087434673391562686516249590763072099325485621978694194673035411151945764066300893723397876219885914446576103888536685433319169454403933324435958577739365859676442037773172619901003135690827260699648386243526508223963397131644185981226819570775212739318989681566771878340558838141283256168136295885304189954222280552629794063064262967146000661179463216149984369061443680673514709413560959275205560534175303251151354788332263676095064107540654034731036170245809576079781121593373825013533875040848624786162853334321464190310514619016105476266121556056057987754953087788507013278250747769498665523275017762337754843795794544017212293389744416217605146664265546598433780252513240142588367444199374605974384465822641123357384684028402762904411538514283270246236911219821508553171784660692388236748796045450917003285774099040995420136961749078954796752002600046686503358218836863320573689237214247010556841861735171950316936573801735492633847059081366847087607040757567089024235965281871716232299947455945658620311253949635247785645824050395754828898218354713533083187453499208483388561792345599439974045497720173750870527181952893947800969957339980283379166365615159722726366381769838848259447763155432862343567657904840854452413462398650367489406069574008537627660984206568696633733832881806955365128165012701442454737760060091589868712354754893461208881324267640059632692242178931965583790647033490686112667775227144560778870330321348531588232172876591858621919064373511789233139698559320732018089615917676250764288016161033525902872226845995790991329945726762425955299018364486803426078590771661134757376956725499982243178262009408361763365811097421057061300263844929941973751756968868100984702785991612540412935021444942762391651282889717206932936672719763217007855391518057894210348443119239181448692744491406928511038246488895434333017144640982117259181146008837748200715458388577156076717007976111159164829744526337833974843785459296655061377021447400973573330243554420920495993196171856310719414823993987697802470167815093555066599818404557916029307215561555382407403458920425903467800050638554422588219695512667999429909718024050981597638475015137903327250159679736616332271626418150110360167246207994300172081439308400513480920239092120600656428159553399249960027550725101792398877211619211357483034953326697067268513420757505517292883138712053702987259842310940410974111499289334927572239055822859016583770354932767530525216868810063548997634533798784907001708986390058218837899697489897972208452151568524754179523308271999529692162574985627189750909152139320730158908156294205950996270640502951703926636916313116986437560174834419943383696932727990197568287890001727979784136199567390858956141745858216347045049316715838808730436749526090816354026423185553991510723067175637994416535668562135010241917217778636227193036804221254034077684582587494041908480774621980025160259662735719348462756284721368953741685934510831382017513123150570483783648112746264548316534855739304253402180751677366035643702271837876558409568889058323531153148028006402860095790111362832904929816953680063810104046648659952115472847628310590988695951826128208452481835158904713122390331195051651477826117820852094307957775557337536043191482007705185329358434188143620015834712188543866038857252642546881894276655854436868120887998321796057680399835140160140483666162869613877326658427468581966980349445204699936251775013818977741859162627890891978750537670867733394499898060608315853906525651774660790471324814441919173246463471699242814292662912134389257789254708250810792463533218481968654363670264322339199252075552491252148672385253065883264261347966009347493479903149181803463646403481404866295018519654897710252462569754192016877618530587043662835248529597942793778516320757984442167609316862058736004486713984135189404813519250940477132070561478711535975926125793409729188787854595483599948147444741814187414391207064454289538526099428876711157007703041367479053368424666096365182428733822041641553914458469863683771863606042713325618657611275278016250677101635828273241259761240775153790871405300379618332280200110356407867596852456898351093896792260140921356014652088498956402168817147787963354253539949554568049028378997941335602018031611830614160683879517914401603396062008787058702665329372782704227816835556342608854701308211711526812227173460159227140152533475461165716887407263808323872958637034411887943924309682920449687496909509191125270708167655526422354681513316262655188240924353994283114364024713271247179238243422071924003860210246805960788717955422348288022655932560424257178501478741625730078849574657531412340148599986783616842186929260442390398157575042953078807564366827107936450621669146763573265471834862137764933116140957136760743054780575547057883021310551148307834353666689577139531628615317050936108090318875409001185442386413917305512062201422148905958975403835380459617647058678011973739189522026473073841045404932587366553904682660049765450262695962666414047894175786556061458355806182300424371751529468713631210748447745636467193628910773788323214404505584463798636651326619112178832312207314597267080450984760726875127152032474289354371283427207166001774447963292395851085547837821296567305073696778788669446688873595835937322135673290337784767203594675065620250983134377343682878742947880379855512156088015921520352012668958450994749769119386256619039855743507156904211431338761837499846648109514683323371528442085799445234699397833236982593888819384597805769118817653626138039214399301837267233565265751052895524247291813832860145779519559229828204061794743321943564740070005052731775560863785388896374767126031768738032389061794121721742328240127527252003716699698047329358204464778814310610821499574940927288212330866900060116408328820698831367219617186276612148120016277192030668408870605425420818259437598581232123920139802309266223990521450659926676785221351998317001904494629979178939147930100069248287255460367013430943687470081436356334089048427470109104308813649431635505118465849342955018491027723217679098759109955965470020245290308680223614478589131291350365195475215551321486422365943946059492908583581637680441673687773049145442776861692161501643777034573188991092967683058357318419591599334101861713148233678975914493685774777093035054877230489775125017823574153638215106199682275701517841988264021840852106974574894818937269700065940040753781385647684046613984637314232170129874847687512198435156455240417868076016065039110652090683713259966556929596679513136216465019159566929145581250502857931558656573763932366120095649241768055270076685321386281275863560692344219754056600688386263120712314024237935147145997074938370603837649457462936438276459772588302666135449195070240567031239670055658344479086856376301910311030323601628853148714364860335271537286985707530345405773493746565719640599214759815777212859447562524499888873495045045390401396089584751768318043239060814458356377884106926988648163633538065749704299568119710836823689757266855725367712038565028838950588725248422842928416200165435858934712946189348670368224031160507148802949820781403947097977739186633470835379870618817659865786507125214326737656462552054874576027541473366513653232327743221275227149215878971956833063268117738673270630419383292197006617131453952857080270302057180769915740992160724363000110856959995680588538396018520762673182961858342931485549570377597469790637801733809394704200563376055152686849002121064565877347024019935797510427216330382948159722915092587865456264089620888843295821325758184163199509419424058232678282960157647390606444420147058517300672948659365080990994301282953771863910975949167712792606998876165041400204136695098777003528283921278898555756426461548342570520466468504294208274379900691738858212780667834438603347827658434221458859066611303667196575520380350661963344586019855329489914138299828985612873184466187609230811622727783994456386216101225829747482222621106645434717121572689493292584354863503886447235232108150973415338409817638673207692043084245476543626569447731947957407664468873209824287721542040573023151299358284641857403869054751596848176719744398013065490001145923686697634455500013047414942009552548143474346773585551286709831998987938443714852635673710772558745156925927281206251718836922894838675512963524490172710242766411728413455518113141611080843505246404676478387930801506704731726974992444524904657525380619318337489573852896201431947651903177208578353893585813611377777570420622269556307339684893388985577055603502447535290026965493388006220829790069166493206064737324579540529127041209220309699115783158740000131196649567948402362511887601641140427284694791897871116711961190503361038239862760689637643622136639096764427092001713006293124793327809284728859685778117287881487275023863079073682478427099371601314613562368985318884052394269496413477300739291675389369566825409550283198434145586695184118344719725898916009164348509521591202177841552062820533785530213205101885854323389823466707892659864941754441267443743849255464943392444291754855170408123146923310303511014313558478252975564027832212122081136991594052500998191790413352488363205343851303909768416699723855633691516575647008836326501330202359960345344918498885016386337047485653611175754308880012003033447810753213324594436174476444469226602250239516914464686892708951115377392190040267106494056305359373535185319737637538398440588496710076411261602837485283390088928547852406616418743422820522859959023627122472213241217110823703218443448339612033130668446035477781731217816376155423868331731942514993035553571647693722915342425508728513614621889883411621185671293151215543319948881294687139416456893833800134504245409035469949460957762675646720931753924375079903514695773335330959489639599988057827506690103023883215035541102869988890552954731152061556137558347957984083314700143167974649048701477242275807184119914688699509736081376824896130380171088878059180043711737108846498488461616804926951761242812326287006187148481549043662316298196993129949624528322670160264360295204003788923047907393459433067269663666790047387371047360783697149288769378443661692177676331652607590814074567426279974952958454549911968774717188033590280509691485863498629252925982830012106858770633313360611201663748728617827578246311313348479545497217286522561380833665453107503099793173042731567184809845287405774139075273989515615885860418398373465772664353440381584532968237923959069495360210722586629242017887790799434881463272825491560425550743198247939188970795011228410998905118548168050414213856798378229612955573155608490586659806585023688915745558520079671554408309728073939037464751560851934684472311981127589417624524966823484230622722089775109645929989349017182042228560487281543778462914896832573968741991254544311898440691996511436763030790118567720214086618124313494604050219072741571827983405776886737135331185273997776183407428944963093478019516191545583332490431543071984823212915380286191481714451781892141734917119396486644224897411005672288764264375158379175258237205024427320943332375954672079236220122833131557343586867434336820986924976544719478254155409029334264537458658387449796039481325799623294210348412909145141334776364415289784674946156552817397858133557026181729219950454649858472668098843747591573565398915624155791614549795664821020370823769706094519684368037896291328182873151291921904628101702893800558796992106026114477624823721867615371232732069528906692624831685230831763672751867551992287082020749466337103934471633493505747424731001078690462765764428950200228003324987278151258801926472180844985860936515743853063323275101838910422198730613964487098608310653248762493983892710708292316744584418500141279567225333210848236631254884400282734609182445979650357251109648240119418776476399957128306472100376417368453059675111232472629553862017581073236718940016594278609007953951129303455572363950349322213888401847915684587807712951267039621499310244922360490401817469726108546271727243522458762778257230664669401865111291083931130583489063239732278534520169322679237282801155732614484541957644083857522775342370547020787881144322135382608726566903021892557928955369010511820469031791803352445313499332997994929107927603992593660339864151934033419195301952909695742250226628012914286918548477891560609154739368406754561216140738104857223370208805764792518014531252173086794492082380503508004236664091033201699822582599981532188222544036527861360495402932984808793792093760441883412396562850353177663605781989360345923358770587539434685192411610390741311085578090484107130360712925156437456768290582176231729289401138008968974063855097593919553540746056447705895074952406228775581719107954983489394654035936900243304168792822767141030445676236947855584754199181302037612617881061824084795040491965535295414292853332308006926180610497232347578626163814344966873164350225369827803645037055885187093258478618024989760659993470572558006452062066308496772178554155606049961721342533465838805020261902079637801850288939554441738217300939258498381220788710244168435980690950859887026825379223235551512372260944553575419961980610995920479330627091024269946555101109801419483118277458101490167401869422127577590477447126035648912115472701502059829272647869335245019840359942935826669336235009243096175219101368676905304084173794710234349088939408219299758575866741341728825048762061189303501612878060772659831740520016040727810661171370831460436320179474596070330184630013329400685194411662503510499967079025319311132772952834633842927638650090174438055417488640415543127068358727685459585176564532237143740845868062282382936130513248491352084020605224880652904640162506492842632663148989503433790899673606388328185962016310904269769888501504142038607462540773251207615568344092494347588087117456494453507676656449473590270400208274166082408589841063810554299526654734472827117415165192267803694929569076078486519224156835956881410532547047091329164495905203650982544449981536169336129106451774781440444001921027406202605606703070838859180864964656605964473741985566455171267699708900156900958452720721215577612119268494320923075285621586322168296266616700920991868364136174838888314163991365250988702380134443789418338901256004450897257118933129462735146705632774585340354661014889390642238889770160829560449764240251325870674153753332874209038775289280268547577585004306209894522940877366731817797639443759582874818415131398320993577446706262608516418857503200776378835774661810321112315331417421435808302876494417205784876019241368973477092724337931548374476176060272834026768646982425911938320381234227838742193732832883408340397849559929084646725639961559644775859538826501193481531448256950844965903793640844466825052076166902878280697380138462609758456233291801198287052158718210051727999667536184613291879765635781970337736729505965445781055413183255031784082222571175839180010602991925606993946094459313806090462156755814427495075728519674477547024701365166519762002853872029987851264353655558343240675144381057557832960280226239883685451675718449768244433331218148093902953066717641345435640399242665345965551261852802684669152300335355651954128371820773262126780042699210443425632093090245747852234412378990166484256415237811676605827232037460070821432469933879147940701265648588504356164476821906601397810893317658729250363769069971366860886050489115132298431149162403946076467703099763117934064704114475037809175809321174385634096238811124293496877357815122490016639946420172494598436094842347283550826386104513049127078362888136368430937068808697655328139052165415224393178147951775016769693896114803347111729427767608530263628242110362304871603057758176400943407124218728011275324735979613807311331218579959066238107530418326332881313212109461697046122082155580899394712423004293917743817476093222721677663732243786006552454399159621286259106507561058005280048506052277693250853932071984565882232214292074094007827827816535330909365790523230282590284013277983388909330997767188346440673641764871930524330219286633276798334863141496327249813622987942024500090692108366136624760020728568595043581986299329077716225307431645138788862192447209016037942827120203783289238014592879861608124543328037212034938836972969488134266768478524214782847680826521740409981385081882227241180645446658599115218567427391148429839888101640938793019320519623608756572596097363563530547348742662129218138633680277791200487169630932797982586957684379605187813432065663465461696590943131120244992485442892633050636052759031810937438620982433489454133905114570627797262911477155567659797041260924397629336397821987039870106195594742655053774924278716327428136495326847742948611893593803925897243478324321711338551537849985409392081739564277038822870177187153003330772337232742120889784716839936933947828125019586547399501977573920096037893655996273994546101484863349255604434107865163990483112343894445068896460846687983119612905424999441673686828930428283406060349808961441479361683387287668679939337903825028293289567847175802257487363408231186928132441545482145416214250315397442891742180788426903838761240721492302620007436675698744795137593046029554540886599616801667758302161960045398758986607128132313933188682341386834734860497212464117530805224845516482616140357340273198334579623337075815076871872272532089809271495779863571624601817840653761166612146461552971126371073449856952512507976497650194278636591895978730542159981022215764969168459523478063698033943106215695357048838523414290276180490543211004373808366707055583896905152666259242321100330206571884737342694360799343679642307379246140517135687172748570208763469264426674052636821234189313946465106173348444583952405968169776200810404618184668119865953908534018994225350963199543817706393596391879678266718181346694669560162729949716076487075086934062385158360422457397710300978063094061112838277498628521667342149694489261297894882944639378695001523617723934400899982683667862978355906107642034288310696155234859051206144880146013964489541625428359252334979261229288074023481702212587173606135300892104012391890549993310955583463679842919174406602486019954947102820370263517168925065656270201793540775094289220990117792379960051285256593517623268835934745928552515862753701485016739294524985429136593768900206974165092254786113762918205135911033938114666079369072182804464335767640200873163443780299746126706646084557631132534774587570051730250248486836413529148493208756580097020107162665126651301007959666606232006027581923718688144651392913532184444779081071097340306105426501718145796148282563430760652708685985742744867946082964526357063488749935747445113877474745625361730652671085653514782790883141315127584205450245125258108230080263755552398916577324565280312622724212313281370084204188646708856803727321405567079163893476992965778617598861635826956679438729320023106222330241294998481401262628189781807031913283880115802490109735450237846199708360200748085436159437930009854540302572506002126891277284213804361946407157006843892223174259526810186142856986392044511198033469498330429108846643452185613820271829577503603752367628000672806436347057134034973498827374059175462936058386778170124570054210651543543585602439972269128576490123389979659074092694875215268114040607297222108963005455492941993316542099733508018178950093313110391856231433224266109061253668642380931165615584240100745019844136108842680853298423776067042167877624742421896401319275020395177945946246855599006069757133397109156156578725443378785406565166047837119200992114542665574646370853681211216655216875199018740003580402724211810529420254627804045856453911564482973308320528503205825043134079270559445392766445394061015639348208527619932909356477349259559520898469591380214909127329675530402378547296253103596646034310405741097384803059979285420641665702676474493124974070334636927210391271035022593620863178268649916999668971695501043427464759080915885576362067894836830871370945579956597252925322137576414325679636962722353536381812803498707870461135689675108438938179374483633475938770321888007449459990376643119179341562829400229936824594394333104653403852876748705747670964067173059001741683143651890143654101443998163045118561690825846405669312259716804577948622378034581997266677051589413151077852726208180073684338611703747574384010886269099317284899080708990205757359236614196963184543901075750984665652061754027695260263494065619892112778578582090063062325572835692457072198033927701244869810742632232503648504363720712501027114099711778081299515416733542922133038739126952955768867775291236518759463397523361973418980767451626965071903762629060202818259915107273051687949970128625381629364963886372786973638240785124317257781668978690987843847189552106723626921231175998691951020933951863505630051441346996859586149039125931971704709386849470317186992295961536726898759549005034716694259241199640555556465611400023065995526364662038573986549584720594312094529792417856411656021967465362654112867477987493599723517386812480948246773673840444317066449961068325021482203189528043073473320648927822432509805345457672921695438215598361373209124609153321134992219520884404455112281518857419351270925801617313131642861962071584121911532729987518155700666986952236760635774415662789954133190006868944311264710594143138255117559568117848735245126336785468030705714181334785133863906554467481058995629608762351141874894296963768652524266814784256012731562508002993215916995674375379911672441916257152271061785689790692886941648551817443142249706655580495761530435626762452961518415543849775007639710087511557149238484626122755796649497288309006808118919200702282563641421277029477728075697599141537214573894216633055544726932506789374997316843326169724445616716297275427174598557425610087575632832663107969369140211789760905197418708855872773840328932732554521456992249114898233977890537144181159892405554394770711492421026454248123169482349615489992631274264830071502947327745665268006137968888603965037954100955984212611515081300724112947256331321750166856697059307024187077505921664583333462761007562157608481228603294237806335898475829325311070309439001326265135848828053856791352133529836199795579271436980280472711311894798614167235733657217259740903039743212485023373426667340786977760158446822186134847716076807839406764298221861569180441219761693764344624756963099852353310441022767880831499358251172898274528601346989144534802013590636595800858035620936999164860408734056511812000279940516983319995363797073267733936830071062364372325055130128589137323300652849758917394755960147506461195138018297444105340409081473819753373063929109161526091919361499717985388701207960340113627122660163465456134436820759944761570502972624248694984740157676534284208472716416259335006076675061945812658656495978020846237544591761452361440513967890190318727029181897994252428343087610324363215366784365719343910947812209840446182452258381422994807257750941161909283712301753604668043630129420991031410563458318079678923765910505049401518607936491306537363598622094843661400438997368654760526043539944374906316866237813708507347889671388508022399075953560399054763194901759808047098104578214838689217258025455995793597830898889918552533809217139396138883803683007009849142694094177953183682626920978618654275892096287769376631411827780548140639427711991467012959078489666049482528113464129008559583456936266269432099747360708150033384881666821303967091718421657201782295664646135739433722177640285496904800773790806537942256471564613029519359096540639179738858683529883976182024391651488654744586738848611738987688878037698156823620826426937849492312773724857848293081295835286912901008809345655507009094732368729437170502808930828511775886305197456248784670858117391169954441773089937894590296128973237242855751011236932357169207927159600715989432783977743076882499563569982106777796465963186287209671622828289419642697301715286505687719850926783708396845818245799034451056934551375530059554252705674903314239173418104977839030889288344110807170082983585922967165277920164408066778317858246427707621997111591310865113211123981382160337103008532567753895573698360980216472477785835753697558010135041105048368247275576376649268703438821743624502528657012703386142782623870039179050918702808116447806147881895977241777350808673043583464171558154915175897127083513056879905360353973375101887281986429350267226532161431478829009470015927525967009120994319436793772224633091789276621291692233757661204959176637036400523612989461092420377867230595436402788226224396144803776365554288922744197779783677750874313791262098271467944640950014198283772422394614718730362281429540753412200455311578950087883468815568761207171390238380891879306103589144107670320562402862745249458763635822756295598760298774174710232273871398498291246450967268395546369042875013399972253943753226869129774568028425985127910215902054899132759188914053305964533253261067932629057979803301122986662817453253801447674843671559764846630057819521986283435787646958280102941163555161391608362351596091461957363850528396921707228426422964995065548568028144798791632644070294092291913758838705947642827742999220862320218808974109117636230494338644048390335267620856179927939027390597132883104069341410074954097931062936796108576104916754965782514093062170981471076177555148769445713925439421133874304339476067836261970878320165052018021048735445156537511459094474588838175812413332836546392569550501894750367489902377903906816960661660814026847799040799210595030369366549508454194390347960679233820019063318766373381002636729970399998417391350176772887066551097012739458799646203855663561894109418227640913512994432180339152333949769806754955477719698401712687195740997175920080990829472202840476411709772098576582300969716074535287411053890065231768690450598718787963763477030324826118087160112846847685468871310723601952814306907356488401544880174072350979430233815305355218227608993760399811612378875420394096136038274159299887094563740586319661123210142149932731776717377694430265223746306875912551694735606564025344252789431926308088370777557692944471570480432595342320561632150437355989824914405875321813059424072240734629485690936120497072923156092234563915443378031535483955138098053829885951226240502865307381683503214441217150304077701589990731091274998119660419582977828565352273161828061411974008178509992245530293755679308432057797605478001336869131559421471801683913482229640481513737924206537732277187345247711184088996261226107907250269975943023137216627217475187281003327644596240865468800323417887826896724799277772989697594973774251103948590478616064036480387490962991445650674252009040116237218721750967585176940286297171413716548644466360848856231479790122334397907008685082599592020575400092468586197879900415758753307236244894949659827412322895648521443677074756357837327335017662820590801114670878496373467451281713950770866364212759718937269712916489642810626206175632965412731227299374823903500408338792277657170738852855185127022120688252261333614377933872316794801615009441872240582192871514466922078609211186108558803254119763203295232761426165894267400503621709367514618018711785731986524151803117387919627226038555257923199244909695428964920422502823411115469618525122272688247043047090226166295821961792483946697815378351789169436945939498384946765861666782579889817755578740386951047090091655248333452012957899746581533122216229657957284378887760231106842139652529734597578826594429341341227441257730157508768992232013944772825752624883646209660584839971481205743267280313761431089522344023310949657495891655067164840554048867332610958475063756157122791362627807881690585581775619270604838841584377480829179559453045610590751587986653844652342439729753702524236396677867119761391365280001398872007270552409381516858135916855084127677105031848467709692379248280172424355339628085995194265323978442571998095438831541104005825119778032232235805884228458360754867311937692417392568332358384600538515975516053764332037106171834783283379640641068085534636172206298242754330155466975525940309705949615057020737397083016898644082897451886658730605521832979108300122493039890734149903595146960406570435611444488012414525631438001283557009002457841882987219109072589938267347574229871685076025067484127945828322923967868094014972081985624423284863145090421053102587957584255102923978577400603266187605302273684931657234010815334509001306835890475496810715017034675165117845123223320142258250144967247484960410088891897177281845749360555308702870545172344802568210036764369852217267074177278005493245193401610502752941503840409077214280619904426837765505181845662592056514576849132252576957767428535174404489418792926452036666897269868866183352340992730872033544910158910279130760207787894884833271235946272585895192929589976488731431084479188976056495919668956727408385588636569785495325015996809462119671932685222593104777452300946129040607443118664532405816170670510332336411079708853692432804891717217473980619635311452332350612720450648573826940473691944945596222625786412675797152210744337869349937496625999015822825374609723810442716782970414822988749785002050752220422864038814323461064604795667997980102599076058581396319199166634468382111191213721685178266999383857836851340444272757981724431178887598281278285274311876130451075087672445076800707462133293954283928728029571272566612839072913062663543197346508952243059091716432444786132332056567201120581339573754760624541870337064187218597379001041754552107979334184424331190427566119351044428687478609843405527795421412164518132688471210858960797358918468710824293282646918800770945629746769462266890281168121183387309938478144135825855455458484074210185122298769391945576823128462160388322175407343440942909397847282963635339914353249232791677508739241500014866781794849371806778906339374812951144822681838229926918880668667840530971868335435257917494786952930946637681700041765388811805841269694838483527369070173355797124308291376777495327859321609794122735774551666136150258256615518875971402581416354379360630773507129371939457704163229786533497244843905351443580088947728149591346404306173197390964832260305415574991193505608460166913409717719935044896133957608872076010219484569802049837647371632504504835715303903890857409634602945318014503895371750381222167844048667699336640273954907518344933944898378982776415327352111548677149538497071418340299051301487901647689850531355653046309726601761718438243595764495340720682814888165489501450644114152474902511481431061413475954717930479557298876694948368398769246553257586468489286983420499544068313035524540238809784220926944963987684350598779488825448618140228576634033048424957263671726844552849781032149239259572738118608606778217159342507972376764873241740312855968373559303644000268543210027586613831049762942139042678591262838940997480106477684861021538214222730583067926508260510683163762908459761751114421167294856122856676661993241232464623534394034518118277197689534536192488294685970288422833515207018662498036855993062628093395329302190317735509849684183338118258616627875188849020258335739167792110719373756101200529796616848416663764425222266940588851792271825728767068801706836603545290668187365826634758684029129970678675071217930580779943287996500747397142047266749308668747821809963774413097450841391430136222263757919234319201919209579660128449110991831066715314026097238740120732327621333660509071565055389269109165120571026366370598259387948766408703523122058764836230889145451124209295961233048849527778812902247925908711597498774154455278306008771311697943364743381829960912009372026062789554372935058852748941546805980767649748869004378955976022619474563145780884514725043829056125270659825486550674484919442017046323324474938708204457838158670910423465364275518731912771759160807193031777830052865029504092270625963362496935609799317523362263192373680365176951240750153234087420456040841312496065318393009669454474004553311325107532216750920694340970312330014130698370144424537067363499436316996619926057210258108699134088552065452413155448998780159933936699967934936500372703182929803289106985624604605156747753615034889740840639354489826986568958116576047131396527692394624551427170002537878704254176119525696027550114092790603588157473752935899251165024838476610451460178496003388647386804054272099979141456341200910569656703157057074343899573164066745290485592758555242519019653779335848263396970883266354633546522470260624994191494154168982482365540169457883772323583443092414091864659876655423218529914071353743281543997259590023815377952020646971954152137394958452316320346995336874762713334315428282791087123600215445811187149676602518488677423626550603104339758174215275818167984039530640964190769341395002927208290982966515723956822186591542031547121717327844594839473383287821605753511807357024476041436897313591442877884586001619119853846619205607220798802447702256186736278295199374271201850987100074400430951285477645736879229508492538581169723109133796699281353120403296856176278021843960923817334009814826187829575224413246917673458794520611906932397579334374866756009655246567227262623190329116295045015703301838155870281145149025166925688221731442999552057914751461627856100919939654721219300513819782197536176852197022330174645032646344708550894210400478103524465966776935153067095677050822549055961556997398136377862987153725130373441215369024302203297549240399633667411608101593627153750158268511769825528566346908355173331669090416530335884615741270062967077329418768771157361427143739406000913781580589669562893655937111431334098077962648888195440881404920339868334153462139959465071695819976136090270116640224328264764241075871979693516055812857498162746947532286257884046091570285792692048888414309280457352729469526827855963244823788189872188755998761457095710496385698185033191502214855740002880336867543710351796987574608953944438587979872071388578624129982025373996707151991321706532455714212442550455989555061240228009736204158526161253159047729936731908205483184371477626443313201808220718074461438367633788582169605101548300133258507318673602333140243677400500264841394591246828802108074274958855919084881834861234623434199747480920799481393608867705696346184375918489194156582112132584860539831305134587582104316662965001220727004315335044965275813470469023387564124800296435563020984884426285197627657893035267091417718702520711813270771115396447811184978257843444683887502380612214855609738197531183614395287342306016470394333007293121214857530279110560949456063225290591761424060665177433167852623680415981889044090090716194925301783191381389702075007125363320333315247966398722293767273447251099899474297300667142853128166535262337613486686342385669751470873142224523938359403126328277993147056842159609541945197255820930685246926203855665026222885466444644508872903571490004001493050897754401096362643839925493518324438604889743970736706511441490506456783548934291010371795064367222886598172717330550997239640087581883535876416956331183874825199352715818483596451443162650928823933087623832238598752332046355219365316605476911403979804159753270426145904278165688040866799222497559639166722469048717553486016902845710029376859886532454828819966636332917780400429467065220804438202892876734432529738200680517714103854986616515120143457753843262839916734843848028856210513631217899051263453122268745490583182461254340900237452312078151240115461580405114540974522906165766719525205284783937792390033134325449434102365164733184986578514519540441401573727029618762437609179906051057450065913231564091788405747222213495163386523240362631208210524428938422573795815030040927601041778703230784890661626799356071183871098172784790720294951787688508228715006729583865833752953452029826192840982808909739108759074916743966974098797145983711301454071731776590380389085754593102381536351465675528714340845434992684486146216438615284273132176624674419528684807095863475026298244145129605481674458949101306139708329577355341438228366877414241655703763907849217288028359395735581803985896345501362954081230809986146802734425884754310937495542664202156498501448314106473486387451132680774190438927026964530195615506224475354533940138538087947404492683436250159250922144043160535622586201229202508079875287363311236759733029685068113470235714565469932535224812885877467291257944806930952612115503887477568466708884022553874327458047128967356514645084901707657170023279069617689095301343090484713350369792825307507819214884808314126206269246061536040378243430778365474561009083865555559712611853239297031978656462181857541980755195972673536635405623718675451621856750595748148138098651029040767637259238905015691414448304281285001162748904212289448727138329363310431631145536368553412629958150737650818797631491340903661272641082740958434714182559286786472963405068222580472046260556112104247267845643489419957860246327811419402718192443141083119029010451416424053503046206654859893139846880229153511016662898005897956762609848291588472283178922293759997978629296567485091787655879356230571105034031187806425558875596280769676826208259809212935865523570696161217883717296634563913106626099316391950884242267507644283529681134614101648020560655925123460679237419692423912141428068865544876873032998526057121116029525585886116136071196152800507585962560099566291391201605568194535410826928974057994989622743892164048926605581295161785241195976835224155995350782215838961299804911791843564997542133321417207142930899001209675234933904018921038262868022414921316317374004774882432332157094651391936504118253452941998064615174892086638497703508836913243541657091556107197899160099293343255457127568892466904078227554033935695960181192784915653554346185691211392056609210186930579466327701680625138947644127474378133056108181225406361219145159824610130381933746102310928017895128661498377024334923887929868382829485944027802094469776352870186790069788219238163366232618153557105221882183425865726549601740961047072605564768983123184388920105941630123023021754594123250860448685796151339846266323677389921164330863659676535237520651249767882256149378724406319235875490223611283158016299057179951259636233112301198623613617828001018084466968404836996012899409521584933372077785577207553475673434955774356173151212029870732288333088582888306819232492357335759986269631817491755530355242301062666440278294943933124226172052977064405994666581779874649139784633227273073757236996023694243345248764968127206940476125356537774119570714775861774730506579805363577118287909929300631621834974547133989484904278092174710430624907808816298306494495019577848572919949421572696919271173165288579026783830067156278059547973747130887546867904395536951951930346643695840349023181185926869718802972770132340794418361609936128317456835786361768088995475991250511932346019206831161766684638267328843213193813334886282584792103835982074584561637691943406238111767378860348973722595402648520093518616106821356820710486797623287621116479940616584552598293227585929814460721517147365191314336459105260368858517718986882044938187395951716347829899260670507162808877860451124747188089215671894975385574561845432023253815025921413157224523780172644074598410715143352666593312072112194906728014337325021501295209170939268535559572073856658472363765702570388351516507707332769334196214056973323850208222258599178918334165372252047642456175360127955559467320870289068718535006214889256064029911202859643679343943763392872515772040659669427512136727984772496727050905314400863356040463881686652995254694707499662044386875883242015866308253588650861672677271156387547788857034317329756852831897743680931097879275002099421548042859421395419778332222152185182199267177119307469037306742821904213912071135856053178771084497839516832236791211649772243158415435060136625249350037404784182396785769127229514665948017251623770487050393962337308712758205073467931334479418139590482044111561494919724256796436572870791549532653452412867773174987508898314883727481464848163031608221390046819650140228360032326398713333521971143154325093631471254687051823549212445968268328316966818747667784114615238875288456098183394855985760281595779946621776900053010878605138327559007620531293611449166641720248257456293098683276072322999526008013697532718528607110233930842775437728799209988351820355753518355482006031014936433406175512892300662974927311753061405371713582030113636270371894292775820911523301457356433962964160853455795759537913387133134737953330832926557013071386578958640892449191983301518958073127213516197495827939336257384420711486860986731537464401724718484025414572110274539852041768999467367094744767782555607697419044889545461350675390369740406807125881163756593639724556066794002013385425461103318485130190116885700006989598909004636633215382501079190702354894809503920873417537419038104726109813137592569322784351864679587558090191656584763255985042214953038264494306277767014597904246879515558493051480186369315275221346752479876270264795587637090912981196499349315033235119842036026621135493243050718687124903859828994744516419529916939206709853853325695067090275678753677524771069436463494735899444557792191634656574843702466298999884073796356626994371661078707087598503272021229845457134739857235426125205701908117165912396816257389797413294915680700015212577505542820797228753832449293758517601715048835287795175965230620939944566057677794520269333912261730252372471637133286829008495032048916920634305197156219006362447662439087778084697254506210488676610073076482313069893118116694702387496320114141125406482343808071311900467043690725999376135536865697911745612424171379352289104239841077772418024698064655183532126651952604548983874616739687168029782110322295966968188859148462697929955060786610388060960124919862246380623502709500632276828492296494616603761821619865135685319794029636273190439576922971885504301897449013253025978771557184449414778238812965369321814083407642046310881967738507513207696159752591506472706160293896260197461351507743792986204306620620256828757720032070553515418146050456697940952736970901988880010508296528204132824184083898475243851851201538741371737720889717563203478787189259386604921006216886691090678939330007973989512955899108759643893745345658387651156135273847850969179669736633862868386129018481877054166528322479542034908642311249820203290405978549526998302766742131307686376097872491281843573603195362888102523776967622053376663970556140638392377949339223305473789628893880539935648536719989413330114885707989225416502556350551585136383138984704388281228764955500487822806158551579844528220333655286896982688444430656185468111604928850429292235547809936244639698495289521484246269763500208977695521960200600159749968190337047077143305765477275189955937825928795334014537640635533230398347940644336137901442106938865928148095164084254298027209333159279331560381309524245833900674974699506724589716680487366872231149322747538940987519033944984479517654748268006552662307088750708474703791882205594215736402179583486120319140672284287950179337508540085609648409162729678803953452476677089834939460306787455572245897853873411325387982120653533402537152578782332114571881433199106614125872878147160753369464815469793158584797695116934108478575922338494977036192277559638311887007116623406243064129470959741539101140703811832863544723514020422469799501147476552400108229277463690400712041694092064837651173918392883997022420198937447036525177865646653313913157515941805238258445657294814297489824298845073341403996425803427843799445059267445331147922350405086441226099501561507876067948667705293172964321909582784694869281329811806643469294783739328908163806373242697372534309416739567480543171929292263271627203456665474599165253805208013105240536706388214285553817013523042473818799846042432126926203092298537952463099140629355350733718963904240248842692806513340126904449442001718844205110838340032720136892081809046925479786723009050939231128416891628349712145972472430271175448960636420937291162821185695223989381576097460834786791363268141525394067217426855625983978725565998274704031730569196255283738800546077959299140441449636945559217033514464010824874569978272310416388654674507624946539606429948228418583590680495073373683041768568386460034319339076601281633278333961276438056129910126688216603873541152992537880424694779355863593828444010776810544668475170497213608670066822908961354530682934168742856213721793356274259398495646031783846365204979966132231621336121397269663623938443854359389200425210939768454630971928404486883856378099040235220195094152326086867877508063893111138190188370664778379520879800084284797576524978455214357376677298217533788811629025387172434392531236152481992576800219327574879951761586132241580898221138845689451280416329149315282543778101713224649645161628761049595834765973499875652586535866606840015147236190059490982294478878674112855987702728721668965116144789563331409558477697697886775774512722642676232462956841916322199995678560951720491927794999102060911582030188753601762763816629447478113852508923176954819901703025637867268243200304976520750626201334300002574481974986268175082933239643418916921863572222828301058929122575608423448753752902169112990971340730521189675095554649532748366403076324272280380785981804417846551495660502635428566237057934490077907042869883564326194889703780130664448152763887010846801664835171171523344998390052253948268794523335174303027760421453682315561564606124015452099646878455936028695486411854096047730570494243907385782422230771676951228297018446057718223272278677791748484193207828284602939914708652592033916968342409826286119306385779318634009004870108617976626417431022292890151942497065249637487963697939395224816393317719575520954377147958576729791449477341581571755613055700569428650703442616423009687998354228073037667022378276909130171991103700485031880133818178334470189310148370573030589263680845973203918691473323840826034102256650393648015842661897336536662629995005975833452117512924856925940024977856778754182605044319703944125898175127970922911849045618309440759922906467699562543269771658735799599223130709556251300641347131693131238012591303147366069931090388888870981391394460341329391917252694736009516022973832460663541340514609135524052904301993375810648292235069791283392902142073069242711200972379884572411685855804096573433361989541901752834889799900088147577664202019847457974926378148950784775748821224699298952850138376249966706697286627465736955646833937769041665656241460529960114795533176519332072916053362636000663513668631792180754206718455799332357557236366079526201077553430791918811418861653844311361893540505079741821984535867512513533345005945667262425081955988247946179898870105461339752066995319076827376577784144957469585908863671242749832996053823555325039475965944489383595422662648373275431970352160862013106037753563929226054316018167065318023608077938929734468806348096432975293576097184642632283326793513510399359237616140265124345519744128392388588539383127008162393479054769318508748258619989647420376108360614918364901904107302920353873711459522995293677784552103606708823817614736519644865102442045574493893998177026575760593956364217970513402835384273071270764424011535497046554204102206517212468095492583007696967074573899057454638616144542617033633421027943688358260334433067727806635825225799643806907090107555474298777483572281698537899969344403447888348353746757700169995324176014051275118523674588703706498484055767370534988600444912239464294281906328393871326735559018363512457058167504154125982542998144895112426004218495566217875776825938054183669313496711304906449311085858936188916683659404473029529265165023198430881401662522011206710130279826231237590351387451033749306376771451953781006825875501136384890943222707702703930759559033995207083093546509460699659712422127931961984384745048124071554934512007479828807504363738171029870704427160779323966926534406727090734890545752740038648239543153476327435530862730325308930978538047081771263356836818532704517472788340680452206754367787595782965623119865193374852423073089781520064950916286419804188441749954861463577395618167507500040579122180742249037876607735778912310581267167065174418931318146807941620863677238525942507717140876830348587066961786231294901490173122668058740225606863836231420686964227030738237731715013292652395011333286744479915714024515811546493619716285603306709106643206950449105944446188117748271519060700381633499142230242858461215535596619496447142906827096238234212572927510441478506304491619302533270965234490447641396232392488386720071010749900381456490679715919098405585242751001269705634445508484194427258401125002028011490074887849467795841927195877514677990061500335065383449759570319872225673145920625209099801431331615725624533129899275946838896560903891129523072300842325591811682607123310092557889227077960234841931452448969363499205817871180111926431072423464503034445307387262346184801955160828681394677118855789665091695616904544278258408883056546318471803624920723026451230606251180101757069841307700073400306717441560246373657264047086423880806264760572756744818504401122452998867206061999938528396858998892679005957079004037068337243815678122097303202427767331270482061651757538357717917675612764072213697174305882567722288602601655702619704686253923057418856355308632122706766735702374177715464408088910431059056123258755211793657729198813714100178438924310937373187657320331513519462853572840999712003312991929071583026467464890396833341212565727724402383193940747703032739812192214006987691416187062459095132634194300158929474958931630503385313235007627543749043975342190864435908828033670258356938454723514378587381949270038515198945921501689314496061553396542265752098205384232861152187956186872369896666143913899310668096937670879810989619229271146371166603926647587917523238505922569317206480711270563184745210521402996116660290298389128782581494794094106455102269630708559335342704651905069296554199811976991848693349064587106923308759652975793084673754613905235328779200120566297844834387155691898623050950998089258193750848961093845937533903552517606248090504000680016038396646416720839423503290808133144035702147095232315032142909081767132351203897961174166347693321006952813147387335205614476409745937834047293419929941965066342404083763325879988648911027875010787771326013651656334352721752220861620389149114183892429068829567058614354289214426590884175310476424088484647415997922989920492908194858433536958208927400679358660547151956439984699153710060696505048873952990382203777792311843382043203402357045817861976381913628288862952523774328113817620356140545008420468049863654574125491689180060007784936272079785808114795888196423173432010999322446174353291650348757341741936442180559583098618583756917361829196738417259884914100838016297779738559437225768259275512742486878706628039215016778621064287745651558495616715228938901076325264482526223912128758036146971431558037021394372665462821361720588936334231174221566646023861228362359173705852516548990805479576933546823107138269995050315142068259556343078811303158400569231568248099197897947539863363587482838164568584459244792598269959291873048074901229866934644830411108129277701753229119777400101343541846089453446831131162615449749524786435044135208118269044576472477404621511673698312389042117483796672401714882965937642547471443386804672543084070747134116930413853509846965336343888450324807777812997724182149368001929438601654335270343232203730433610600478965888917098163972292059986116088995291840787215779542794499774683665954529616647924644016566297431347285299741005498378513990280450364788369574143240090931890867118002477252125615287828340505117988826573570461341716392618491265517695107426320791548211179919216492487843499116886665315221884486317637021474646353215289618855525454394863990775778542260347116645723928468777050605990308580166473439299571600525056770107052491260895680141378219154221149201765076977656715782911590216284843655798651314533056472799492816851122501266927118382458762676821594188018608341574150072941165247137560013070864381191565707073481761289396776244913960554005192267398340361516421214272384701580400776579884442961404750202461414364677022931171456196469011874473900283771226202373610559420759953674520715135730672764662838771097780510122999952958648261341553399977705453864364053985830802923758402932867370559215865268837741545411905561738286853867657907765878710358814577963430582065704409900117644114586828360012929719259701780892349331204949047895234868385116816565067252108863604918523493281511130582851184580508863567115804692530567033989102742975012345621460256928010762998367212855829095110394466815469787206276551076452813664523943117722181044215007516303133797256782033386773539057044565288697712932784186617876323194804510811234168437515021305457212382845312732534342615183725941262291638877844152332811580198485937090424009625358612169684211850682216042143598694366896674573274589229163429095608412002526880971287615417785462954165278858773034657900394114664489098671522864040786724849998192092467735433831153692572521537356217492412689287177346314821855862206697582228245333912412021141575815441274220974233825006740765036214318412054192199827575860085555130904481789635583667901712283712904081078137895165199085532755357926694236793459823148653728819038156748113543218920507055342767159938205655420418314817094063735813623386533664619787022193138637914887894403650137111020169127963988080089578483174483837588031726846666966004850489080006043384398152309944523600736876262411836776800478573187542296267163272964941059688228912086772360776930216255842199098898702940001066110582117164102782513496732219170373848100082949055977962875382501003633729378696071424479411374148932404831248313548362759350451462404126936030549980663522313953241418397847984511975196234779178340070351846069353977921438975469010832430390828216842853456682187524838839998278634060487343741834996183511874614599397129167847393429275170994419591207338009470361069045262782927912586760394651331954258666207401804596069826983984662252188759666270706523613030929532880092175052836584214646281595937469004637213807692388897320737328948458842556247198849604562310111182147269264916167677987626863039505548141268999892632674127383943249487616100879686622325357122289981823104655135709684993057886958986138541361965087684297685784620446475903158043343810907894895564830195007415352396843868428755493836648831992444862562945051386864290354859800543021825606513433575179032043623382353864452080931667787241579569318130247531879116342135738591637379095078262374467801374991245405667464768003596800876136307889596615213314203674844240060466462639554360430300302092781798899901308466356186003517028737734635330249646158007850850694504925778803757924007498110031289213565558388621507036591676554852374988135333743145413209887687217171246996858612006205111573031312808328385381903161331098607951418623243635200764982826277165703167821334341656889121999309991919364055201590532806385651671562164287373885226987747763600625403334226428813999389426696106448598113812521716073049410306291190930114350252241819966086095821698818924499460123124352222523760785244432687824286967020215967701517825268627736950763454857158185137289502490037138506506239563194766491464368408590902721459479948131288160253077734415416727285580004064651778408735892707920421309996318755684047234251858814736692349294195869145672729653666807576292866530791772862095492680146897996149679394199319162742106236554647776985281989250359150060779469298656925091354690426425337849690475699802432782233321013705025243475986555501330449307871426809619784769177979766588123391560040858504142556264734225294095353636739723490691965071893691673057690533508851207049698858144631322542141950194931670981901701073025457358465851360095230043014923459964738267048122943286548533720380138014355020577281038616498627455878889146715666253453884726799687921134215405583994891727836347391455855415810184437901408636577031341176453784876604543850660332548441521007855813855676859548253056650609666836538853363680478375702074355858154995499499158611248003995042655112420407690246453667388969683846457404477167476009801631210710901607871754386347048437435451123731783730987476152070262513111391727877814420348201926491830343797393799762503179950749308071187755596396864055156785949826797889930885635853413379364288501310836848238359522785186338313930259558854769511796447118445277394270190101305778451741155254619728186675536421663524484033144348288254722340912685316627855454518338410184027543801747973159385509448322523784045796544427338008016949063424659117359334821207595498947863348230426432220584522546388122151137682045642544522010332069478736867965174690813943903488203881968302665576285521852088768400025543280144783064103288042983159258106354423794454245184905861297124354945748391422203756427303106978926140280457933332081367535555919314803528315409944593099012455085045281013300978129502138869713475264570797375305595256482731970734283202549628797820012958365266316500253431694817107089464889621634568382016038573462730703247891932031299284080913484456361141303561260993893406033115401284124026267901685740735997081940440611676767466469451921837411565214824802269775416756688246576983919119756871468903169441439019019760228359317995080631671339843155709094517648900532825125491454106723658167930584269544810623800016842984742309220343385881256062011790523527199133809964140346712499727127274295355405770377802636050249954287129467059454146485766210767276870248159567534467538594168673565356803442330053132864243946472562539135513466827079130043710758056634119769050044976865625236418578469234241749560240494001347999902747794440373560180609735865555852801617502108567045862411796857546077765323797009714851208035324670970972137178759810251741453938054933700033149874226755372678355137988244033811653846325239885009525310046108815560047587839159004694480963518380942374738168884245522818434751641990527613007513629696448449667479333134228610327887577767651207489678245933789137686807381249717802144662227027225545307749512947025238768042928365490377187531988500530354649176836483778368772300369283165554987017791618659453860818143921971552329696631532989278875114057826109953789009258974535487422582770488385303860969788932192379458126908216587699582376221786166998598792159956260143796703200076647640212467518071765507085016758934182628878612033635304057332921148675874619124857176354301141009131568147309929286237710105938660498210945510428840873575436575143970724478697730445367765077138162794017242068741875740308695428778483937498235224996232830788749888111349472628196173802613028191331002570772816809437779052626210883813553100263474326751771160155771521004920655713171973825427726989805683503514065803331544527128252071914640165795374816854333953821991458519858814226798807064931793150283195696819419914690790995981049879624670215879936412080193679790583291187162985926200292388639521073085580899819956105198424803033100982102560796797122491958221314952723990581707483570285743256464998616545384907368849772412146383868490590658000274295267139605709606962689565881181081776131056832732018349088473373228245681120157964867617153021890632390069609214994556577034795170522751594928491054153391278181202590623653027798051881910341413153510870545088915803382648640714857526343512341699790252394117461975848836213409972974296120288725017965043273860792818750271301525636400668573206358157202092774490372501674831445432167512231271985609083830931397413812647768030980712905788196237240774821549409770947986509266106683555910766604683298108138624750927150710985057355814057960492495998039221827400087507627116401469651996743019638213507807418606960327514306065238137328961603083019909936480316212679457150400090153539908773905621646531867869280023280385465580534038578746971052168205314142731228473300386978458240061908117475619079724190231886207874825566085735942803001416781099249388877232175930388091932751604952672857421545378807781609011189232007265779406690536175092160802761923523123798554382894422511554419143878152598414654176553283059882362921680909288597774713094629280923443508799144339917198627993807636333635498798053691502249172194011530478742373555476457111417476224179178853683373571048426852605280500374505832065504984266198117862624688809000228956430790302590886724525945887736630432287656064107155050514155626508881329323666267899203014208355855240408706350060906069426915329324431862402208390895451906225102120503470979881663066790655167437322606738927005509605761917041101558133164737874277888263150341587645745997825906784095340623860653459196022072269074710201188870988629128193065779192586444781993148787233129863655875900615261774774933203652265613123122110889463919401374947484829282314562481065952153538533990387106102368946487212768396930870032099571872512074108813086066097135849263613548011973813547780484967462863384947468916240226427619491077009452269000395196664438986489532697935185583889502304737435124804912558616938653896716148255288995395581956785716130899451247628055364014961190337134393986588658323290651730540362866779362716675211383073512766297943570788365249777088388318133141982425295602408298814018434323871218173433930935228245993878047419728618320705336033735688553890431010351841163842660980650244029201073566922280023825014638099978735892490283823481133046557438564932825213594794155029035022311659058883013335483081129701482150098495627090112551908280626369168818208839453353492283737285592070308855626204159465847949063371815625028106046044437211696500690510406002413318084962166154302483597991588685353082028842842248924014653712738451166592329339249357557924783906933999397095986523119963859740533377998242005538968508621405270388182171073172374627556402867369363939494736690290638752071654382476928805077005126585789544993051582870848058038158734886072808100363406953187585275987766859804481364146427199047468800641065748822856541331801663565318455289427487437185034574410306144929387582631875722130615678278304724682119487631626398530986860588811350288551904840693974099851925628368314853922241727437757017324746181942049398928052453914500515082928649181477402940051312815461467673076024667367806861197127985300299350430514667461952490785909221528668723546245985503739687100536096802027167763696769163032524021778429657655805720876746605555477033882088060258892150957001630708922124025360737330811041493272037476718760016681624163836349886296467646008313311036467143331625113043283520512239800342216840875899981666362550857309048720738794756677999019385025373786817132294540747487458555980397897581295031013252999667564036383680189333526625928238027411945343797962076029762796931976877735357224305651937935241785448086976529918654699773130017346036710588882031207895778685994787886487364312598678536654658904538971973220988797713869932629043899482068527903090329280691810417262623929802477881050675127030017457623789082204807287787530360721739853787641179278035556559752344721408171318237726675153122567483901269296611458276122400431748490055922184313073997646079909317772963451841121212529986078654358289460386798182920138601101634543380899265329962307526136347583296876925954739192924119196432619417796299763505428323816687610318315216215719489391996214539448418381718623129514792330720749796508948998134646714976607857275790931115312414271289834141165180487861146722326130760011552660556443835683635404257449440178325499765479200349418614399075235773622686087088935908533747483845289701262370673600124086254224867917268637020184557667231489673219859648979077197610069674614113937432087346533158428075551917486241174170935214769218290233674540391824393439699044857701140991880199131824436621614499046803858964272011930126800551442211210229737754130633908424559166236699729465037534843353681057531734661638639077360852111826020897992654653495250646303176046949873244617794287467323564426511592582586119977425745852963220201204326075805827234656775185558923003559194451838722773572433399170790577970023754353735033247824869679343976061339462132653248909616528730361509290665224060013060288717618091526411712090169675719262194531560286192328355691551967939616647448880392781397187062397716553835214554784474180674113982033405527802091921773027174270427078804976676863289804436565372423650216282758108107954601064403177313128192624208786022415290434324340227546384189468723889388569530544892551684230480498738401138909937889247690725989586521338454596821926111414570857572036917567823918802062478806808389175595437161259140664205640536860372203570666413297384198024979637747798722049237517526139434355190787465075812140160013379206273638623700484758082470089717269047617671543233973867999900949244311916952554996016350946721753947339706627179041291188815781663061706767433284150257111573627920598198914662504452336695537143132931992969664404016170584915088082858249195610207699192836447460147917394693303874859609914206141457206008385595843843851495205656991493426922053402172175673966270855106378626609183920515228242132247305075479778022842225942630719957811760090831013381454077462084263214996391637810086329178430518649134335906016753087713370014129126659688502418723606386580429664931899043708807449954267591840988908203072629831604289249768260117943506008183172480855897648242784176368302713147453582046557029939806203437566187238002765331768895244393756962887962124536614706022583260998763165861915472637215993213827799593924451029318889866535571319641846164190517245263496710530929200927067962228825390488563660960920186029697103269251454053157511973570546608981779482689089191120794975435913609313601411734855513533118323689182232340692509501359021367591979826116270438026358967116723070359235017779653739307021238088959022118014269782558848464281077541233550055844153440970428557219300430392591958289498282672283660595093474693060788758866144234115930820836820108543954111177245679343912418151687227601816365420815619403299001046314814930137423571298313002494014478416141605360096847229156996946994841489833202038945998961550982818588231649610678903902699442940285235753115718798516281333284966910274865145078749225065464573260613129249668642837397001348244436618763056803887300893745950870967976035281522035709510267536242673001190310181273536361318252012541061259591996454653611492799719039509048009414988122552340657661279282866882341903684888960379738254153045297273429662948939814212184324035119168821360010444569664369442444175082236387685537580174380294077087228947839585939419446512770520415143436705937918162706664103757722436666796861611180878758003523298102091374928084462185925374295959379187872541963923191758285359247003821513011092003126715011248582319184463285174016842335776875602560978360623119700588989913522052521331622417271105106735439078082049651568176584249953220092388414277349618223743733278533826344834127799714440603340518711540192678716873895844668629504518662003502101168779011572231683171346381381893061338257685806524865938596577107388654309743101538640446346819736910122208457195106775030762229814902390372947080802518340125796099967578148806437088857539358501252914843581448628361790833818700930937619396209632539945027094439857997070841621023344751788725155072023977898898025048749815585457497695433660497031812530067642073318408881793713090568979488815472322362362000669422061000979216542173526130306080544821106952121250928587116296777596182958481956688508774992581822388154746889521510041684797188397464670176423892055191856761123288301658891956681388260703652236841162032475601333552070806318026631718367307926740377420156156558728177325538490531893504421561711610985079118448434256274833975495982398794914856557223564053224344559444473804561424839161882277512550614131532265558109761279989483245282890584987404538309135846484972245806929138787017006446555956967672547191953553963584910472480464207032526539717332290010579842353167896745650111755224207089150110172098132881436435809194598226439698086047042647428169588415764650300654080377348849382318223632958872234224547202514208322314900668862588621951542692459970668965721559746238953913908644127386791553859914731266556353616629072870724983370831802079678296457128239888790707222113329754351270272069790543832688862312397872861993068337868833334369446021026818635789060384169783775891002597660943176908873430785076401132216461963492427288987287694893201237103358554724533337588282648166384740269903280401780714380337401369001728867402479820792479143001796003180508672658000656304091466597123135325075619281336244546743885840732601068855764341553965163157412563206618654535259291667231381931345890259986308822941983878233224097823804284005597896085658204476864740173976333113747630367537258877626628767721786573661383209152181359268139767550856993492492833788481768041232711849305247923627928979031327380327413616222315788737346153613282533544968330675802328653443880197082874122382865065451395786173397017503072739807965214319218657786119530060956763449459476597477356767355864169927075371332630217359844960396019716112742620894227369392833768954643248590314888364147054624568751861754800419182893301758882739705838986493546131369982012413813638635770126139647838120744336198968642423398146265033282611384373687950332309195715104461478291849689222019517118495241522155594556973900203713345309603868760365758221457782872299053566792011249155193678759572993190224319212020184878947401880826573335077509026734161716503350656571181323587608359854548098450530220156688813670434645337693018055155283490978955951283105159995555482263413614010565550036808180956319966392024271294350995105104228281940898691517926192216904231025994744430292368293537012195450848876283841392946145074034758081556358806773942892068752379236590687596100624217579309110573254015900063309886130818330047733273985350066737278493228249570211476465125995655303868149755957130213014306388372974860971471192518468024918727955159658086745935289279336870828648625147561573797692030286691527166391608945980673464214298217646418270339734058480928462214717496778594882773992005295220798756031483066169082576781650432020924190628655502317343571075750777162748257192226363333476983544166374316555579372785287022127499784388601723497929185202581425519334909257632120675123482013136702785768471678673372655170247887063692675347237925500127902855826290880082428666829673102649064867190002914384923008783998219534067420765897333242328655393610434716634131781736802663270838241379111847119053246500028464246641213906351813177858044920093944692467674097964650991951522447532300927764828188206366217064106773208217944613170280246113150045954971648946366589695330839800707701324867939171590291501175572513670160431687295083777851110491230534116161894303119015343364010347758139248863803607633072422573798460859690844498638070826089008465606713960291291261567323668607280292524547974719842881876896045897128207979082246790180725601625628905500531162405700072028033436764650039339484381257827210512559229540009834706329971534952636264807426384189708473371707320484768693058716172351086429066099299168664242912825977639050826907360447637381824959174235986637104495476996866994936722971903832779302146006086631367980232226927442701839437790278713111078146743946708663486178742390710849889153830368279542886623273803837518193839441141924298903353310693639151642085043578283980241958812945339943581494919712849727172593993011324712486091660623933659603844251813390015288846276520339977608739269471288252526920338793506140166204728781752571216565567807847291946720512685567484668450738603949664027024013301474029628950471516152087618113388894944019951651962619204865521327205314417912435536631683808119767944567830727597050641413984175587187046457242421217679949088733700246847942748739528378448694713875319747322096899289049105624982988307757550453698603494002949495815662709798101715925519576832506950758065787273202392817519227841165104264065129105394113852597515851732109147134391769267116032223294884412166556539598667339031741690203767248987672587372641792240701996287632529273425018865716015149455789119691391124195445457037640388788994474143615659799092563082840454390065166653684473054271293142184773655856666748270976894523039849754024469131189931061741093650131135566451858520863385077837483162974146163999172202868853231654739663073484170355830742286378152097175911067502082636574677112899426259856850085764275851632583711730834765896485144105951250740300483579847336272064755469252615938750781004168258778949349010609759132739391851450935284079920535933714270223006373720015793676219048325530179071860752864643126168383515966491832259066928859269903004830229069810908723098643883730855138319048338592438051574721306289346734142115743461319310904299216043063591056420270248478937678885777847376776850626028582737622369156729594626347593508317517529120212903406357919126377639009332233719381266418831287098061699480434908771087855496960903477735042718468591135856979121418275385719618821279494708330695212076046334667397365505420163360812698533989554782614181219565955228491359729171557490841839385437376421181562804761552698204747282623313393646570048161358712200096357874078290068926884212756872918169320209674370765902171299349311942014861538672023676521469016722879602792201091072662728213382856788018855716630270085202686610360141605751270198129256300533551725002784017142826193868323095022517832200113265580463104264741935564073056448587922803545193125024257434284627195706642566747242550120726903281053676521112552441195970736759514519823132932055295040721183252935127704463978152973226322778060105217169793783217146322223532226671615718428295770681436194393689545820553596676424665070814358484354232947379362110147168646997132747920922316420125164919834291594695122160911635967542536775502507956195511871277645440974225067179581013550308425501174801663714970801303445122908610879537982247924196313226261780747266436786189723169088770784899824307304639597057294364849000094505689854973841680797630048614686603441206832045544188333983192340267042424349346051396706670989088815440227022627879536743605525310804104485640511537841786595011925146591346714828058107931546438538736697814851199902096041391317882336637558101966943343160531019552121738659120089228141713287737021172361426109065038961179020844898685341052738820646666555960319109908209536152651409747912892563032277489498446474984841126195005496600410150022397884307582307773596425530935505759539134176157535865010736839880498586000127151983784942561678499731615876615670758073604256365241116098358521698437696813369038019039744623860251203157506595413265117112175020292926234522953198351763120968153171394028453610356764935800815881080178919017059781459759855195986747071059430210693325223197912032274478316380540785203176938782144376693605145694833605605832981891233904742785290067983552734676532389146046792844871757546827895242825084617633461037204771233068368891256299161576880681438451404702824885796816129785481329494433583796677460938497076564558464353221382656958650803900669214210387328107208245122038023076959030684376440919438173709972716095381622980800112025026211653216214236287883630953490246968795260569933665170710017475703894529779026429215237554540077882896485315588025853974914807108747128654323929398326727377656014272880484445582552205948125587502587142813406799666822547217485602012356933654026760880916451366322592880180281663454779215305461790097008409861224007893423804048127283494417810051535145920992106093826896977398110357508283938816558719793267913438403903297889001017138759181868517941827933500458990071345623318826613635939756115900001785126285864666440711652477650391242853992580242564463673530641419735242835223392963731652713816172645138916968446011423199033046743839023389851794769782184727525990571084878298058905468113458420783924608773952141245871936744162866972180957478580156988877680652662827092760156319550729457801740570545754665751757580723293652012664734385261837257201258461101723293174624625148217693755343868519944223367573350733322575935002469960129721174701041018591511984675018748710177773637635378625388813136249832163278364835481291388981029936646598527772532441696123847169516798521020702633582494631956479543839714551624775295269760007130543875764337264383760042652426136433041693787265842319310713263114542874595247207455271425164580315691443306433236609328463227083471792676884905468424840131831246919316139260489329190969651784069215803641997175601758598976023603664888126230611825567114272018086048352579845403645083844167968516393903843869301457565193001061076500439129571075180218144981136429558628638834012838724143802521949574898353157539531010007506033563416916671280840188088138846827387962995979746855942067444219009596384842955410834086200461208886050070996068913869586523042747972661389508998551712798286046302402019581691584587766940191561511068930649461078628702349479691574000795030961927428105784682353921315392375742501876448783102088476464867230817915055282557994735683111118440850039445720732550519329546304048058240511007157928703676709554527222557030101602617242714068905381318645120090894684047799471495767824097269843074166892919920049327066745487538473876421585355784066763657344222853827474118148027519254278199001165360331358791461478368440281223158980068753302231540952049958006824303463227354240874500833676598471543790956141379448334412087826865114924409033763501529064818146388141643517692571805283982985963025562981623033052050578556514117939518996665465805921276867744469960826718454939038699371189572358328097157614530907135651695149214023861035060479613774459296624257842819931843684005104998950160847696894789893488287657706804161030183272094528693834291146836550706665481802653922028714099298902659974263904552348833301244108967859674053603933553893047738715955019738758355160930675177322248066980353731211644680735907176360122245287226577161258921344575341534027776899153443628214909507781295511732749142260010281909764139099178035986356622830571742072703533444849046615248709901182443957717806488676399903285519119629160170349539484420658909294428401598021486059530385118796115560835146235662792019519716369733010414736581646157523183972998877328743962732279429902777193525724136238368207526617372391979303618416054331138511474044276152035016144425575734521715617122165167312206777827422237657322944039568466621671640045000183859925924633371978243448629131489030386040253321049261036001799121919457128526694631984303163353540926901506643600246695574472417918086045876171041468627872829072418109817717431766957897392292563729988831173715461739594078791951933738314406054237758003932335862076888816450952168558922088380417538681460639558699026227594019558320587443535801518619111674642255670544492532573735032106624854601597753932525901545473409445950972562616201654319241506011381038217059694051355469953737237735656255600854429043743575056262541423602600405837034407604377433373355357496600722109233872585278563391038474236665736946992074935952457338404238402674960953640769188218154335910610713501487729624149337170051334864874426642494101928682219307643336922842351777391963456426885579846517649475549003853317748023075866708402956128070122598011977180080855450877687623659108364127682192073617442639559233505881557066542988567920293792394130456112361403081888290591821708889837779285898062226025739918631353674282973701348836259727221987719616553649626725830946067284467743317356889064058470382339384221180827768174162044092445176751164926038251288272748484571971428774530369428461350302230844031194149139949735972668356752712386135815414787644376726330423513678651889337624746868643503322699798181431096669539905387136669392239394673479287882771986175079127831376806898060976579963943359373690175201863729462510994141202556319049334866766613695786481031934726794736233718748226443761538088010916708395022625344591834779859739281342083855520766231817594020211122297579971231470459771429766420533948793977771081538272634380481148274260195288291664114334467853845252607608509821139046707300813575281855259801714943674210399606361335531092963357575897505163318749054379364387085474598066618716788413457796598339806951535082174851876667131274222119833563434538048476660530236044191241261316352336675648174624408345989322178994947449980101791642280244194459729690613381159174514434672269072111729339559201331904808214854130064725978426241123017454698861252868767189011306384955611312662227865513389619628696434750139334469736277676152001331396000210640638267408054358045853425043178635537993521581562100027685248181965934472696930929021164328505028713441680772497838748354953830584418944278358863198980170055065495453042718039663107442597764234674491058492305079390281298527529599691082152010543378276290252763116052448566850939108331111051114191970164247186891587179527907933464840357250774212920707766718295488487595392061222081611483855798285796358616184494791817580264698210643385515443536561168559354125646914411720044972450015131310197996351960978269795506450157917496181708252702880712511425029565636999474056468928155075168675938820038880230948974761317797256294696041314067767849819243382823005468531038015904500915917411883455826300343508374941810912051241445076056316079753848072105380106675741205692372500993671154790532345463256131786165565439163499121637701167865881337744786140507783956366728538549925246587311987753352675197893376209045206536178190455699070764014617064410338710335537278612929159161955705039219974946838744647511954559268802796014062800206357846506012348448849335407862065593877903085397990861169961669120593371954774942672055360603408450125689726737236246293026645190938044535901407049599645919780301560654280204985467003508340777276690192189529918236156423051906847756234584954074993564046494081760220189275771772902093335919987983893859139046308699061139308346109586030986409599046305720154098465202998603005122708452199653986453573517410662331829602905428733668480058308388440150506103131297100474510942298205271832151020503902946664969394504486055169662905967638743645348018686085958353182719255351554968242534732146195691471820059416772234220467969928478904314542789004772401560565593719261664852880123761740418078804416777113015885124818521548361312184201030858507053825746326801988707629375496710170524754840596632548029195506314711120473825538599123245187388568357443840141753755283634528636458371165694610566850107894811243251885225940312666847240819154682427301101339723329114388328022815188588979215726073762232297779376539864196123019543377625035013499601428706713622431997061799245816423880827561152461123322690148102341171476671073125112065253320778274830396587465362436567615583256057752774040684053594035107470975649406997837468589849262442231345083590021335797820308083033752252105455373426963259485054500361534047887120564168750751996942833329703811472316773327574556400794158769760910312403627036529694570136226065918427720845020886302618630713864329697192234787805772535927735799204709144865394221216919937368360487589600950593262643481668374417418543349414409148374995013869127214200993474787290397289731833371433409078202178811051606635925248435939920321505722950728419636618685977019468330857624221384148758887835195573948037129112490313561888417741655407763207319359229272918122963498362919276536797567533020300481232738398715750844692582721367339524926483975241904285045790262866936064070522849037607122484803027104668137764164545869389583685086380916720003647680822610959211083979928424485808691892835747318190456372167089108826239424255390616766511231160294500919384671620074527173800648770537621767593192173791060113632539724739924049095529536673909806010833255569626054063757658787588348215405982142399395967794043318287733810996226879717239466841651934875926869797154055404563902562330703651256443006813315481003562459079062036816223851327499975803039846776861448948799867501914130335419817302601532833588991682501889148105391658638687400054530197177794417556036232557926768709785565910534407369474810300689046548597378742511214323690852087437340393761440939315183110953989523390506469399543963107549407373827299105479179028073434547207450299935144679956028221028846387655953082629750288391272036982107019418443334514082349011659445898291919275113303646872566701490826310952678958421321647802521649465048109114529270027226976708455786975203183725837491332303890451790617433697642737836677397065899664278129770443664836754803242053975290101764234687408044810759880398429168089754987433001236363068085638882649188668979686464237129906874557982798029891293777498613189461654878323010397669804169735205090434457586956616585317449093772609868433937570507842784164535429659179135659461846782389826773483053369106057309604567715456719627224295745892645954301699266825276682353497658432446143007285637478495066490160829871447078910491883663899538822866864448189378125942546664842989678787952336617854606935170046785150885297753942820234182907607841737789555095302247957429472479918745843719008705398417361117354063805920940242034029237108031623134066442410652037719089253561789295247588708352171002999635953507714210691989488536842768234611492941818803866897997813068267135400463779326508462948176639473309990180392357678608277543488121279797152210690423063604734853086974236725689878334774659980205913618597177325251007044966064526171460381688840963037631479094422116296128552470789864373205029214721785836813333649691142475114816444174016381481599720197349808279208986439310023430004831484035182551994682437155998865732492321324604438346777827975147431111424940008713525679109567614252569000444548716851142166054292210860669582253312382654956173463055110864612433607540203168855950629504311019066258496332005191140989047658558786116510638613009963233747210478708754218984068842005822239085580194553285925860926448139544338444022000421820852122038855770871598485751346547297549473106420215547726846324421514357869342232296170600459116741883327120922465271727627108492528036548626810925459232513598713534659483312060135243537397913603404299209207006602519605560231678149683692394594861984238820397225141309156848599437850627744665735995145155258478284810011155113498991728645546938018919996309756012646307772934795960530360598094639801094799794163014986944029695711317803709208021801256869756469386442427025703993102338624051280731637632636924968954072739367655864217625156035231498712339056479432220217974818787220515023853706030467933588655507628819406737033358858122050287853411720385271849057770308214491316036013530672370256696393837905837730807405225935813780519807685647443741780804689252315127354344841259274724137869644237073042438348759532141512553026218903113783299777488568961826518315716918862506950765181449906564637802166676956111732731538539472184849085176861894355904131423073215146187832559027888417915643576876257135904391235780717609565284402848055171472540403999841909487070946710595618109813508615974562601177064630582916817208429097708998690236341712719357084893392358619158175444638621299365220352538169352045052658905178984446123610903946265199737686922267744871754963506093175165504576766929163475523688056417404780582126653377845088794481531464672657000556160138321907728388590445825379756905260549463933217206641912574878802699528093181821624944852367159952448949478692581333228614159080774083177840313268691273362668946128499884157557002358326773294374589142921039187423701379142053976304390584542072165456630360825869895587950646047734822317422308225894427326682602425148684270993906924312563330765556253963193672286959906510569658649941470609150200144547620592442935362432740653678816422616978576172582521543188372381131947134546251847584044212132432237455853770931382039851480268391496187143759326962820253535695786406836045313719063680168114842302945988647702593304130551428769447411413887419177879892503070030580867077903002139266889698145271973544679534060092036176519823982499678842919203637082407812497804371704554516752755724409897416469060627820486562556100672796452312931088104020230828486940575709332143655053789373588659435203135842741049821876738795964547360435827484515991093337490802129531885229830722440758798430454649889068942798533755084629862914482550798914389065459698136568829567645685324937394567919837451008860041345925662941187911065763428542488331255288529386802465568523105792619638680814273281066962961722020805533555935299581626051476284445987221726587014281291012362583033704945318985753911896648737027445487466953058584231848624993153856370484838898437935858884744004515075825640241035891409801413396784082904483174501919965907192120669952432544909121126624576828436830266992578187918603170733953248195267374467868647404771429571074183118739942884664886963672731260420083847885175997749497772911361592453960497529184015734002842098163638064096711402456862475242281777281566335086495727048211112994750182117195369871653789803987572603357786080278012686985969510579257598906151007030248654885659455809262671258221663786158262841588530758830412929536694832926226095499324424006644637239956919446044611630172304519591298592286943367140748921789189734807137739060672467929913311957822365469713352202873590500248511501816683578194154719284962328128326288468976078161538821145896583040739538977004114129292368144597329615553375512775911157907013794388790604536527060123898123799021854340627502212860810143728798510749041792835382090836589284223386416185255572443027409461402129734310673378324822708190190904053474150292713793886476003886502715640995955969791062270100820743994709326517584461100262037239245429750472828152377949841234491449914958596074441843775004196565417661033820785418139625741018085825494012714981460276212117276775079033977802869289063527748567979750806218151793901467011883538739567337824720307607308184001979977024791369973940276782239844953930800289590534066571040340630240011944626774388959039423555961739392598660780403220934327723668550798478608393543042234013812594350329160275150522349965076417468957785085771141164394214622164785140451333031114183297146756371429438037188288755334449034547744281192959405239156046608150649858762847258453338696651815036051718266289616483574977069006417945564037673514983634974605791551787622301081471894944108311181962879485518096005251857023499554331480782885505788220248040548748845827896402012005427312242746314892789896360834265667015154136876833221643055644120655107911033744697936928044008022293958023551322002838536105298451519785438722491414886959962485257081369123750425972628110920959500122874037870761789278452815978647362132337188949245943296594268461966491527861815871805497361757611318414699954305147424989676917879029127139791448175009001947789042223443298535212560441885888088515600125975189399063647788230557378489482990223954244597672263709303398995141037164077593883636569338889036055649197659628569812364431499753350246189267331127433617626520155554994470560253933096999297568047902004808827444117141304748396463408787039288881178369161706755049955160145482469151739292734317026640813457173603781707335893556850315789927483885103529496062406857427055871771803735374047867294941221896459457379110910628791825468499482456022258730751907542895816388817484985739849783006352446914992882750769986395917744089478563437140053269026253612980485996972746387362582913535594176730200510123858073456244958927156447171854458016856081350954632021126887177889093285970067375020210532569428090273976923149609046446484249871606857456022789356095776185340631484587322008778523937989905892582355527295831684109351505961614108884141410918013456943296882500867043471674989988792263941606626080851790687348304410195635606274930060999272411094096618526923580092723777332991148219767506229708097038144093525914502810932125891293414802323550355904146206411549702171196956378629585386758149145673464055534693831902004062137020182838809540248999831542234169586796863073613685630274416272896809242391225208725079251736031460414580062203255928198778792649929596600815456802181615516443826597670717938548239884055773657004978376535476944399631046435239724819093136608311400753303385812194176518355026648513438264465246474005292458844866509291635989173346613515237162381595201071664971124841496246375242431708430665861950207008267655854392736406398996343824367578785513582274884852281099889739457344131482493786466339448997039369047639390450005783367775330266016197626109908766012816729501604562099379802995779751320847854145689314448562022881097646134802403715497378348212997993476616419967043548261443370015050617549025208778933755739793460874228985589190475525002241836311827066189632643193179695654863513184523652571425274587292416659590192702467711217204077996139701328879037243397795466071023386272887877537073206760545544693456792056607902420748993692722502640130317979160002903614536403474319306763233422490453020352070730293589949736252080723260958746713769161457764888255698455862084402594966240523959420329768149873198007106551872207103281517673700178822411102478772152182085808419282061879980100212884144385889476333870955819059649336191833055713493290319097199595610638901404003894055180686825234076824997975746997776984266254133380005911205441553150127674659083304687614572422652111482220485831921835769547239649683249247255597085138690208652851265733248535175704001441631919578651725648458126752125068858331140985037998951349760271465133745434468978298074241064228089451820576610324829882500301777028274819849804108004878288896679166236865037500133450355249234978555817943716556032930237733222767314698763094236985505805228481060824460743207065923770074978327186193093686530999968173890921871021288069470309212018401901386111681673082726567424491801058387494571877463747957787931883406888919100625166628307823777744334976836238867462868848169105858037311614188009520901230556442070024423912706972021202904999365285567247747648645167905584392902411193827344105808215264808028836179835492259653165548138663613857094777805892999516102790519077674167585805564423165836068272141715854882320502420270692303356682486720884899146120202822502407650988765851310545806091578359341670785267345898641364717558527531262211902735299597988761276216034158411878547702422001501488345476170839284804849152822699348770937182331671138367620694051902498291838054588116474886117100996317858461759601797578029162326306622768991859853283853951932067744054742655829668609023271255404987476831851418169384996586516608754132628778873481581615561214185324736502139960833848135052315327053657245737268412201756828060871145535212405025977504575838791243531501170468061499963004493856344133851603483363593222685826309119518800986894012053440394739002112996937497965921683191459709963583186886130436052904927624314937094050478640070460051792195500723912433478688024263780274352552810643037702190319545673994172026163697731378577477664084553867456969979145138961829822143526113176992795391363772767076330098495602040139631584870780105398142737969940873046617199907842272670851253584108568119819231215933389192239637291213972558892331810951461968268390495189883103568064150841133133480721121942449329228610214197469219934420261501712614326172557705633479598377067084283321816828951832520503048327263402752227851077449986095542723768324154623024419601785677791590126794484443774562458823721544831492548463205288446646841941235348706140326474156171981836775796851379228475021086572472288925778166124537175181162131829950590099282571511555687618642060504974670095783873664661977360008552707838268318888218220310600382508841424576470768894910112764362003759964638279174595592632176964201214413904043747725229886129348521196388541655843239065157636446484189553424804089339889236841894971446969396433882012651862951270392864367903091623072128841074608873128990540880977449650801184386853133110022426539919906573729707055662530467825356415218765317123068880466419161394013769788534775718263829692568149065837323250159891758102623046977592469778839190492903346857824154215947176845236098434960663156741765855528040715969839768840578276623417774444182460918464455041584869283200783195282482398953080524591523462494174873175854106950048518801435996027827738484889018840153239148263840367635470374965156358785683206551494470166793308201667569023990929162647562650553631755726623612030729194235139950893729631251198260585561808627600619978744935685107545734551449538015116950286386766376486906153572079813983435594793311731826738816690297469707880553127478305948099416595786651853046745382947126296813614738981085430283972728234256127244295528545293104026178216863024397137015793615799909288063117658006582886793672179275364294671224817220283754478572513010424170865696991666075563979190160197969400225862508608974627274022052310289518271980530961694266066265701278836076660087707780312475930164906889145930424879161721117001362306432647667422315200960871340656534484281557178602417922251658698866895613691455934301312737154677809510861240385274088372649376283406218028414796096890262444894097864920177801808223580224435033949775477550264688976538466305537460267288064229516051599430394744132354125808454432828396587799927689281619733973675317217307377456373500826359848601186809961159094695740866337225720754783303911375943287692492018596980981186483827637323669757125627914385314615971785030472900728720237890047009875521749212677347940474314911069484771037108801048969712955353243323153994781007476137987856259423230164503106783000062614426650246093828191170318319060930665353937862824284094531762992382409245702223879294477309688473595083963256023896087688456865853868465519124159293392405229494250924405300556469535586800159591253950284683136438674429393509051679044759917389570578904364523713148057127624650326957928877204963275723306587969798718301661617828178565400979278372860591176570994548152168770580654160147556769517781712598205247890658115915407793196847546547085890586844099325521767089231287040544217913940044895318264230017506995203386046429502532962503706564447190969376044512927118578382567836964132965596104521651065891232997514737758923390744061010015624499511503024703822210774412720048325094602683513703781285336227455965300375066966521082438643001262819588785151047952090021178065792672797800529914970203201435727987581671777987770756335576823591504822147151823796477717398752675669852394144617605561127442942289525254191750189678189500252126046109728401837971744082802499182909922656355537142769993426588057976210430233566693405355179434425975108311704862303741644700772347446960768689952678417565999377568889709200632432359580477663976708487234763876878914498269655651034113514136204599010135593466542085787685671453305961696081983519121524651641980115517192662456480852758621996508010709245254914220765548488461506627722252099522618335552268042268362612762457595724321575521384093733740223706845769257553508652230378957898062944230274130405109262400589963656826165803887347098514456149798649965422456697947749866073705251044971639199022723541422008724511232630814085731076693876705643630966946157347176421417582879670658705453717690167271121474577994995183046540730843213477383380444334668051296770247986118375611889894964166336786508282526365401792185300379968709758470904545200813028441946282819735542457559513991078277082726017786018969081566353225801775328235797373579251137962921516852187723130772119066819044296122761151261155741657633443054037664579161758628560092437567663094732637030667078621571997934098391814679753363185856766183956668527525487913888877270541202421937645808628496972293663040316947872496132473485387920603498579514289036500655196297964543696697727276653525446275997152254799272638187316967288428482824577655734230448735207175352005625995236079312008681851865953539845536746937112867899273184386499478017863053982661552513230189250850240968855762052091355402480021411887659659511533234601798474697902531620067450812992825681327376527293235927619480268678038122239952926434776190628273086875618688846067623164682146124858094315388723387791020851595446003690759002614831065418076205566320734420226352726858005912414223162733851204250367144674806370409047250608672044061887734230775201565509159412602335147706394640216855374411480340797961720649638361077033621214457479290983731226480181984013122781246358419172321952496582379812358469088774789556403766029890890294673269289775291874172133009503561037534194710645699076481157367472833485670162849770573279753428844620908459196326281919496995690397266295981165151365038822290979171718449180408156703479293223594602487865437394681443385057059061603885191372183267927843800872124018837987883025668193578543937653681522851182053830054692826562264030888499321203553890105519558357879919084718979034498962307887235749117267360686222728674971857854589439717448514193982406770395719395799759312166654347689028899793465742826360519816015861561178075396304824655618240696095801721357312252768192371896433724877219554524066773895775885019434790546162210785314122692856257287643908812464414536179257830545667053731352196060675380580250646160531925534549946410174831191770985587528088625322660872545866499819304213080391779809170848506627749834259324608367336675266284769637808081422312160203595636987474592149550249398855965532919499529894179624789416438329998331202820408759331672892151052988313852785698742339873436010672004716907641390694213531164128669794257744363350537800987309597744673852250370438352966816060092065458488613753152982906024289765101824040465379460282707425242759832012969762498506497909110915828411817899732701238026967544177301194538399795650995641624918270844917389640313093877711121805201071121830654409798808266421154569648352066671563999061453685208663721093427154099521644309903772016055122553503187058584054277587854739876616382372769013510998321197682880343834716830147492440350532328791824950498201377416319005505595481782474352699005267101911749248767109575008035713271691027624987371210228246657494885486056710911544216037616185196340834709843221986987527153562462676057334532467637665119354341896310531976904197941054944841806181313888831516386883947724877764914734904464868921782380717802958313370267136364105364586303595907560891320503481152649449184652498666177601128196897799480097226054728724398610736961927405614207967280615448901166111100776867598896126502192947456945924622260947800157289148851889967631665200230256490220616599897628549357464436889304491165253218527005043973204601199612503464557308250509890676391586278091069220715574505574134133190011750120760248079177319462250564951344446345671403839152043542431328584152614258894621487578308482634828008580745667082589492294927847191464568674968335743433264171417312714358288244348086689192898163346092494294593232472832693197076962909444746700202586111431567656524629397261014594732307746881829225379378019198775912916010294514051821838077092586599143190266145183249979194739677138765718156215973839538801559932647360477935570748729829053968316603187488198050237552011974761044920710186583923600522850985871366538586390026021647613417190050644527191021826841604551121461339602765618001187702314357149112134686288885099528512703251689308185820796514834159755849049585146123813766449253977074602885471201450330248634554585935893566799968529094213926513534657293729829258768098556845364735765768808919526787819502466504019780410396941283967199935159013614915341670069358272051775267061313443958433289447833661799119980703877883479973348089808297379124170407092013201267411290170271820537808916436743310946638422534693402141882772227076343045189670452625001589003707583393133895199503102876941547884492016203417730647020658538123513839565279581424583883525559216292222508810626508580043180511665913747016713945531858822556792288811111007200163407524805323473466755610725195838120307126079092946247196846005018501610382943651055859712834913356086367782279942739175299822472250964431726251046977467792200683456852656505013916205948691480492455424587628786212747536744842574959573362806629568090790326132987294414334247748693522661844288792140503683423677701160724014886927948786958250495442560528076884643274822903641840925800210681875259735448635493153633825749016621351118147433582898926000963317931898910653369215219737791089682668458733224320422862745443579604628991442545347284289700791708434423123034866252613596143374943695523466210052472639030266389256989863926346051677871596912826788546081176689441582351240803622075559229164520870401523386779717661320929588952950015672293161065633159242541497260608731160455639840415083925580442570303241576029539501618025826443870523255749038899108301270988457152135083307185299425385463225314892867232107517545057656171495626581836919486972208739906910643340233480192265070814760372275048022621510167011060606247624881849993787991494246044922292897351688791186612015379737292021858047665094056419984841679361369202486677503551784925480327303461025058126665079232924668420355038353479324863731465582579415112514483511691786272781355941299186536291495918415435513430617204315778160796749785288834313652394436182432714567490478980815767807770862657017153384833340430572823852829523003942085397028883705023333981885245955393591642620796796674571283260729868126498603035812563986920082140210057163581245987633876268594674036389001113005757535469302224604303987088370920114197536308315788334373429440151661009649020064701386421627310770543626489806195059370752440391498695328232361159198450158409242232897091015063247029813695871603166651358735592143496203022237110861306657846007107386467468267819943190573208021806304866600648754125854236195745968455434788333576771325852689891880177669216941991974871763954620640951389699805932883150525588995172626142109130990473939400507170490147454204909636125825752923772752703757737322630494638573246887922929226820723808022552540811154672684919788275180313680483603404674508428891645991072168098715943618916816850784769967980055529592851888205122108418703575253623076792861746572890468854604918612080748375644589293074785154837801941983996667183873853335121402181478394909619862310462866447877748343199971723558266552476411056522193269198609084446165859256433182729147694181636186699734361813299141987735167172669847976803871745816776572512016905131044525202467392425152342175193263687727508517549668392812357137643549598944647919219082658908879068001419739184116384640540414629364398488425872561806371588392129831577658139844140648254336081573463341088250858117327261547990250227401459380199071246531559226033825976312005905383652375407696625522965134185944393448844118496260665665157617937629102157611264552838002275209511610493308302631776113212878616786145339739054660880339304559140465201544358351976261135950773305376203410928115592465386346953309014242439032074990178852415772980384626502357005574869991518221033012568160800908448621651739392912852680699973571101976730963612758181999537649191262586232723237273810455433469910849679830849155387547161519670892320466633261693333518382602608667801591306124996667304600689306438586221337224607884281981933546015974107133945139021067390352822284280706841748783109525047798369544985703920798441695799467836558265920997796832514278379494309622212464400301583144906052647210089954116867791794427792301974374326347678659581816513915192038447620531057209480973640507361140666515881390077442994212387654462004088608635101393503327442279791102511247994761439584134158549153048151294868589145208907243227270853158020632610620411321844592741591239150397216422008757963992197179743182302989012230397796401878189006581859526072021701920120044578210073691105124362639854083088726000541309675885244327425991126121368369736064333643451590240341136808488299864116267373402541170011263006484369041675613530656608086354447799102146547956486572022170413357010564064509180113971355816439343727059517166710978418596538109538370715984947364921526246820018227753873099018472722988797426618659568927959980308842180394684928377415306645507517766365965034659357594703654592742375363181810100278062227735092096767688200615426243715378117064899502309114416506273752265811240179270430801495765573438262423977801556502827583454871286438678057012351922728984257440905508453980108224017491398019568744050578140205138441203770055119094963839489348095553072296614901908246054408016394219435262867536763076727253987701046589356919602264431291729725765982219521123480128318590973587584740435278731405142261932292539755841512846521780743834947185741711817110531824097264392855027314557931265931146222802738089125019700420456708354195736372560918167931600856668276381320211534270107977472310838894703515111874383996465669282666812723561870953033508877393191432195815614557213784455391740898392314151738345060081510993380764282138090382781973770448311415282044854238846450913736349677253852394100959908401041059865999235830069655358890019520566056963962847284557436160810879729035766627836134559677396634703857652019398965588522707429727639893578170848719063536220209241611908597761762324725814177658255922175143645259103246927367850153613664372092184798311959407239508104946737506296632266027188351360589749520440267835399380161760318305021890114414966382589198289425367149791096876196729514808795993291746912094047907019589338662669751232555286636623817430968249762810226373928886123280103614024221716513454320565110220449205040515161814011552778787109111913914839009762137812348170381259990728692932418346627311021150932580283018635536676569362733850876152857187183337546723052765134293400010847811061426016133649567130846133471854445692903042159762427792316667886659819270961395467762224766390272757430983167616091791160464237380444475570033456010492693697008762764579708007881244826178616770185648459284573046831019606596374966487277531041787767963925024086354485106586579236980520213736006610277254714367429556037346901380659969553620318820061438924282431942264771098594280319124590497539843730363184526739472327371882301366305329194699439290789753004594008650606699862266267636615525062151651744485201992700735816463181306826060383044431773753051039034716624360911732597043378874494691134679636498863599051006774583779096493200973512690081540375045866664370285634756515814397181291166234938383631213515636521594990130404921096916704209207748599388518956042349313229708697102344920645758788507076377546617263457444518532749290025955778396483878719204774273982784543505266165483951322544840771168783007007268831023428173318637948283409574835581119516287855771479927955417948882955575086799281485736526164958159384542254655377390512534455921801769380137755965658818437755402866445569762797381566361691329008544944272805230449707752156985937620759557149351240108851520030549799721759797245687960559379508117923533376968518028415505447410757569859770872471419810944051191176309692242504149539361290258919249624034080643726600195195612022425202199087700220406870100214102364346686930955302256473469122016644813960107188528790995710695938716159038281519728830348258209989372339862423966287552348888020448440991200707621300621621598086970969767098935687702092717419763830013021600736510749352790782755921488443090952000414324090006072371443466956914017694758480310456789020521645505014378500306173305402750833163273521598801791289448048814993959123021231102293200374531425128172823149166369159630419413664048532370872813502708176506815933442528014483157523234429723090008733270221131623624482385345216937807706271676510152620290643571450746879630185515907341657350943870178041823617391740013559320466588424809637184744666004082545710854027397918890927925814681116530680710731545589056430441138976115527149285963539589489630296755542098309091257127428537198886503114590100336864141850500553155528420922783214059278965175955043530565093267359598686662707552032754241622513671550087692733160221636857447227394575508715270649699147301577390347497941277875581137915622365280964241646083705095672033242671730749118212979441279564758347781602139560736052421891690523865003610308563075671168715802436771699654144537069663509167877025762895573578618154367216909571004277485601521670896928575412948865350130810669753774439984787054132155592194475076299509790068990695520770217614270038357654740087415085062414820439535494847209368809283406054659404205058489833751900528864717220111029718589993406956605827489320228259144384826196467443418824614282493945238985821662130245325053508200517598439109638361165606297884892925285817907403994275996203254572346704201397130587791675856754517016186628105749408163236686775220539149883490487613389761071535746624244356933483479264922639578536399479581582665094944282988381387974755642918752876395959900060507640882785440580213465285411464233730119650552303554380156208550107766326848237982946620729753306084200082582285782436549322947017742204843406845159637949359825516378257815631052748013821214353881837924726588218212660334419518013406677976990284468850898598698702174579674838308176076034580418880534500730219317552191182727132787894757588899510932936289439088129501394133895333614263941101405683112377537018857112015737424289968575525700099386995130890150956011459255111396635316441221946711008240892136130312356420357302466790370399294304235219931477342702220167101539049185757225067421994358614798396757844919665049393847793215372985237550177310392869190566524907173124088123299026298381727440707285050719119285939498525142109677261782158242710823633829587842348714557795904733593615429325298934764983656637343516709793529885936026531561993393126667296698579774123842995190772219484873708710972295943798456789493003211674244000234596889459879261455362173496897469074473849038949332743515842793983958645839787588508494313247618926661928267571103063391388261612382297666109614374699004563774602539567343839435139682860155862715511816681613453141785887746045085201465451359349377496845501508330078207629640990625307980525411899945823340719389573888780314200357459407380367633090922008158143335295224978530219873772443728905156362106990133610036115965333721010993407451214227549219919684473604735803789525016880315984190516255367604810977439592245816412670173356848770042830182712186837024924904358008386022476550266883354792398005701857796510256675069913900998372996665485666904343767777476129945691267225183138550057457034439817124455207444767641846012789376905415569237095434818744961804429701498473275085980394273980117043593885319108477731678947795810055414639167041736789302975309028969361498862657680939802143305086199374734323589722562243717387787243124563970191081831518990649153704412268186825693675632153915244339502193730472691896755459985377829005875109064880064065337868708441993253648270684035423932041770560415287899050023892064720014341468832452991976389002768558782673035013329162580521254567702799804408313511598485572376924920040467975133554500912187862552479738968286138635429215493670731340869030220640800687073285393305739418612047578690986452119490096730415705886170477196994027558912587887166255991833308247141439454923862255528509592868576818304682940053529894080580071596741334544246654989119103279507891819399869703904957839333693911628198968731230095199961042803909067015668169649966210329177323178441824815232064797243393074226467608140007466155695022306997384326970213805607939290674290654223944855659012364516670154524059928434704307073578157114971573682139104016305120674540987940611312933229985425426467716257134488447997921898231998476457840026403364043699844227998682648415089675639043706759226071057607167597913922698657247663994433216047970242279041366254112877828687877649789662005788361974802745494780632718542892148885418056849891677942793712809583966736067359999131013454482908275356380698889005301506299418910076956879472720816651709490869542433392963855076539903894921167927122124595691237052270438362062594793101304311019416349959548308668291729582383794576440097462591248074396080061625442345545982194083677330871225129440846713097630758646154211017335348785745784890225460506981879797636022128541614705907860718789575864874977590402958317445590866459536404983214557745914671463426680446398261915458999584345510383328391107062561834975433437811948521865468452147645645111138556121626469648210753782167977145619220114609226417431359868126224387772098430918267066388591555517342917639220683304340334315013343561735126225034093622418372053855594530044075959943681375059449303633267994931875304673857873817456941482578634866780293627925751060635617995895170478321072506826075497003430736541476319009184004873190031283953916988550564953221026027221806089382384578176817120787715802470762547199633782775332749542014001286476377830105359744317556167725112134394072615052387166762675653446106509443999960031942778299214965799662957881079679207095267404682049382809171823023154170384377937216661864785100226873534019540229943482255325081046043969275625909256487703288861050806970230838582673715701395109581453695264528238936064289796744375585103322125846297527048865629479881115705413834250746981182823767625730944560534563082796583964424216226846536285251643250606051410362182052800147844127053144518334257263690784624818187211903355481242805302365738020894802185574268521439238555478521505956555818491040131854332522547790842428121763003650498263245088361389105298161258395631887435392980561193296481586276715199270496922217354720560517375403995286736103649720519557026286796415728488289010931880455432382510778006397684950483953012696558391018321622822365910015406944662277514570653269924405977342890154387264009356996305865416810079312563242690260720117343105551480932058566876483799180996445529692325757350122933344626704836865673260164223230543806462639279457411516855984495577633366423593801182967137663766030969630450966881219407061508351983109601294798752379149444343463419294504447110149939263186318079372397899340295248344021570197497331417501577703563076146352799649533682745135066409897341158554773090276694043570919358248633880355209910636021415533185516301256584049497515174414450831183492519562032795327233741367116598264231991481670305926802460725073788004564481598866382981524514874769185789968957440154909057940550464172080136254302941391015833960585830547206380008444143565070042421512416920832636043712626440595850596276659851209771107641338666675762300753047542524722147996729043121758313479624859302255180413551104198953571452560164048425383154227017452069007981586321847178016652041000854084137413472027044871840947884425233051098639090641496239782699029776406438100933316259465109238057508991405983137122991535272668051028202163342607975707530711587476052786619908827744673561734410196452985625505889151646554071305447222350600557544182618234938177149766392186217678659704974756641281450077691269727895847627125078248952248523691637435403535032699930511520056556314982131888493467161346460000920951506794684534579094788076942621929076833674461384722749236676657234404517106801670004533566926909616517269687903186144841335919526351808070982536212740231079201088718822267865565475713061278614773822725281657418752782209083234946751587850698891547729391456855043735228288928600231637521947219909492739082273784214938186539155714002940988886151968337999550487250496931016714154650101311366299520832681817101457884166770984296689256103252115911507815176298708197064203766726755725072026482227965465919164109741873654731280249102025590218417611308468214495068328953935164452928143071505513123303818724107148362010838451136040040055757898366750378575795198272653560286750000438247708427667351990039654983194562079937478909995314555968700755350066926999162748220120991134927361833199658800433448159693820853939438413081291762878500562738766859727811145957664957026244069282404944463777452130156614163238834418151718719644867330852768917875976165850057291572200084859921250512348887510010691640584022016698657050904424812244646338792808137446453914187043435604118652946464661232281998101424657848841587275628815538035377278201939571037591957868865473374390873559336464435862083877967778081256217968779442293864551028517973706971729827246258953130285537762939163008689765162456578126196120727053308635908664735226924308617431282797433504472148695837167915768103815785884351321765427516650954851322363549159954387278823965471445348418002076108295369624450870237252257467150784195041370973023884223400752288902754487995339260018326128921070046598213676238330306198460571671847187556283096987415061902924519361529931153830707980530750036888404830365155680174336948595172073936828731094117320350776283580886720420457392320537438959756446184638399289071138354193112263129579530224139936486542458991481211236880666285303156743409474832773966498627662723511629636248628752759762481736460673109509487044751538691764175261495303073265261008631233565400406786461098462727911976862200497042662879135209709065177850865440137058999293266678372666221476033732245300685741334928512372167366379014413553341612713543544301466853183256513443655764431336218314055334024280638595947228194158702396725646486360484338532361773741022550241325899927014015309520132039728881164671641562484933817760839870111968879332275297715411299544686841472100431570502718914167052458518572497366381219539724415335362168675418922130186106904950288248388593509096232097279930087130989152733291114515766234504144871542673251145840473280505114015539525650029353894948398844296485582437209303259539811054091745614715963892352926322900827834026339147218574553074179908330329855907819687330657984387925162944459787382850738896568358742206258022045882797566611394541060469406205362395454372624706548710378075579879580678303768124166003971673594694220495601269992658672263775211646387424992518907896985579874645567689388902041932796911650325471670415853696686905406139039929927727639558542716377675062808289527643836727659443643431639332408127990184193021983445123065426674607726984192563862630436981452688295776088587440653775014963585595760630547118552762901559064457325562224505152745976939724118184130890377548347281651293955291167604363573018908052497421145676707351910528934947068354634820806682855003969247328100607011399911841581542945742625257755920050047793175755893875265370888308879134201903268914288399793038261828401807531652963898107218681971705409906468744451171905770548874384113568453338489445630897704195372215581797769906326212039597808499103959447198808042645534929633972660071810049621866915103832152103725782273682235517784103553498124749541507180354361557515697568431152768395246352328132086856721864426996628331007493184573030401667389901891346765139932284767279766503175793332732600720281707767226406020742462290811323088732931112815323903315148538216844239721612113307446901191133503033827807855307922295460699501155218518237982175197970663467557282394925746176374436783409629247001613552157923052782943057851828190425291785509376784159929886827503727961232184854123551273235282041343115621566131123711983201441885896456849349697272361228736133745780708654416016268221992867072209544376296469316738432113674700732736655985511088893736081231355889557404561946464693479206173946673251768519038526512989568685692053224076044003907919244443204833496840489893437050387974367969546007038892667380240494435005602541131305523460707744932980011363056742443491364044779561285967156830313954700086595667015897842909016979123464090074086977634838738782268797661722092366419011577077278169381072827811678178520079246893543402151775866933391939902062600763222403555827229436744423184595003955159960172106831975275539675037851430609987149907429473576780717692241498573462727223232513267557038006866611973333111294734995676692289176973835399667431805368155455539938544155833065860078717956954478707777334106134018607216331740843622645086780954232224863999032379764956657244171113708339748265440502545021633287851010375489855548066022663791995942462859643002664553149429851645809832372047270151474626030379937625134582883673292922444133252931160758071888804970280017398271617404013594637103322777008474221790172309921463551654238038340427731796940872903596858217166243831899381547401841000246813830102224559170432949479536444276570709506209977728871640369663974354638896687166890991194713691927022858537460317636077737602875421606076160593209865629278299523386017622273878024484397348257776228252181149387177466750343752800680325402331907090410340092885102989004749022808406088036129804052278135530000997824693550594001090621503195695643116517777276518199995619580394363743018709044443662400455132948097074080466731497866782961484218967218297811487024289592547841716539068407320527744653061903459451257258534970327411120488878043128008855596845754967280591122301417640581853164603981697182450886377405128070660104883355080978574643989130586559997590247595561748595435069593542454210066517029563746094244854038318800363200987252712932807431491523070644142846232610831011218929967896913904860161278561322853633118440053666420868290580442027112668495192981925702643381068437850896459137094589236776196266921450556751965321924525917861450739806817815611382045227297849616926907760464390550190140465800738719620673821958299325129782837043556864000040711050098826350658439213552884733812692341416084784238768525372796650349955544260539616294450865936173311662630431172888144546036505580347626842881710361042901663633942749350858645986015028271893829007048365114293269053572510254635261515515552382512066398444703504435026764630404156196264214711467615688106097717223026977453947926442064561409673989589056133408987204737296338365795268172222851078319167724538292842513187849215010921025030187131583156666545022624565780258464424286860941123037733300347588300366389655289810539174826341412501214725679270649452449059794179944650021063243521911907402357883470791434970506722680198781882634942987815746403750392501439210297887792527861520689985580187637074298493485284322635180812076224204904797157977883058003357561650627317070044395472597395801681811661305984158722287334207964222361771367713467250652993240976404339019126193666024566606703530261904490439372091387668469081738722962592602172565029349382420987266491921404283910696053447384823597260138686292520980636692280781103734517111303021005140455417688601357616598935791713967037602098987628164058838074058840904391110924262254505377542979285750116029564153410421847528747011089311228605547875389485651715195608445282629989062103678305213008484985221996676105247299804940926025556604169785609548315115733763109462158042210826715519855605008904801114847768448008134195608391586680160635914920249429655718800086092314967060191823288553236564245884241623940553096558109083870143910054987563723196720366372911119848963576240806796315520227704631523834397067880615603263506278789309188899153974940180440172653472984050778358630295146251868301575571953208365445394759750165631363146705840037930017838633951108276148049099847138057678021667818891671752044812063145567961606646103347185147040706601673067289516047908923325153371227625302670858544797690032583020727269489358537589386614573851755136810965055442914299455891620032531179676584998733274923040108023298313696710194689065829489926909770725863268288996027218834455572599519183049083552034666724411600020134404723887927849945621214947963185315022590958624226539540891412519088991044778393769232000525290444654299119212115338552139414021501140834665940837241338594645582812836443736570957966694178536711396807423061846183671695381859443765153771642584701142966011928444510862013185476189415537051332157563192286879730107834772110897375743121746116334195584085573586060637727035404472882707773300264397431444531566975077783398197851048869140204589653741502606375314195115397684929539226049119279664681220677186197511748753449294552870837088790525086650999783029248305001364322729926288873616969810835423678120627980948593682506765547847378128403184387913215611628604402936138539783819470412962136911681234309235455695131288441971458808586877517389310225186753500235145510177041394324023742783589497822026326716709391635994227496049379173532462643382833284518750348775515023549877123610813126630961592478831337116000978575694827241576178774626561338520757090747685088661042540021054400276199712024770500583856034147537872190012588306478274997732743923702982727123178618460029580605928709200710412328047735819311857389893964584835613982772838708667274812007512724126243414539865174091851040824215391713613155271509141362200849848014813679648391401504210864001254670653420372334870338740860865452835634575591646396208042661534959149671630037968091131898100944004652015438285796703849152072959499337292546629031762326721960551934916405096340198987594831380239227904092622875873684266993445901211204284514312414847993954987278336624762155413794030570967739790956432931791145147786025561769460548507493869408294942716545244281509291771623199573962547345068418549593913470434096711620190446693052840639245618508545387773196177987948795546224548132420066187191045695229211765429041661259412006713344780593519721658025816725479497275923442953902845363722064675374069239982236402513374760808582646900810514506934997291702763324886082461480801049437887685421447545463529112488381315480636234719557294798595207130560720543211227848256773093288538252509095289436777833954803185343257969087793159834438846449854977309494791754405735554589054399859762861874043085333761562264023344423325594504753491441601772564219490265368831971194031628160495616711295908743726948352558952220497405318253685411858798864998133746376717770036930903331077855239038349008115095597360187753366978740890974356413747669275369430323423718841978977643045667200351386542414636614903293675978814223086867231324777340100293892525351486148455214497837319259126582528199526822897551909400268461930456256859411540774175105587530901437944730471935177266832523072068579849842255803379525017568622775878527019505850208329823719867077814210623543433426651297472684724172951067985378696528672301058167622449957527520196141516031078117172569983503007624969692076708412143016126980002941652260764671877050614110704627381219634590054463010747024034251033054207466803877106391649815284572730986987379866269954252416276430581640422781390167467623676556157785652733294446615699990539810717734044962616587832104331050295029924540421738753001427646195565905080194809403404779449576122370136648398832992578082192374707566347327680706863465839457482894429093506942513487617742175382423866493808660964837142995272026426278456756636997481656765252710931849045857666373996571091668313871687023037970575919432861015821186924028935528362505604969431228189923492616030153130622038227927415260261593076620465518616830398381183447340631130336004925711981921100571085443583509506244886298246647971579576685647690911062228758418536581280730823407782344528818480837915011402255723931283268799094852969705113741782269935070553324387316290981739334736621774502518711329756660730399714283919680580052407422013225067348486439717894762176849216729122688358432033120037457537650090999096752839097594533004817766995354694564764661896418501235591113591137048365529659307090547369133447583977640549585160881182235859031680270753463515425945265274457617724786757775349951984056289822471157224269019344015929973936865504098383511439945351865754545204048335544818059820270452538241939047413858405711007141083010572595859867894170796385031521955925498905403837289697545952376657451485238939524352603291077819047328775390687545539629910865939785494768463635491835515010452406449217226704524792190727082085702000360910471159308999516978537411161028380750610690164919670268631055236078239089700063509380034713776723461191092181773386665303471239015948121854074249734704227264421907352550046223569444621116782192263629430392101077168693743003915757453682842193030562462252253279603547024868305078887294132213869705007131309077716653192980500675645917698217922791372472864838815480994794244309676812143924942802563194695654491558747424635555963104254940967586828021016046956299338911109868044657723445418219566453239459468631417757688880516206729327523904297559952339713744349003670821088582243093453134324670097706312028380508915041710193901164989908471428935323415771759182467757694931207711680605615391698732622218539169570176615258040507942248289176755690407692401157716240711975746140925004935555823867203626197544439175337800181993614796100516276720703994991565935337589867167520397329946289139633513376036117864370336589381086385962466702842513557793952915545708616378045180226830637398075449655776229654421998233217455267993267342945389574692927126652804853934665134418908533172167804808184746493265869304308757071484255637312086384343525637102911444907946051449596187347001322245345882859885484709525301939743883133628865309993995380037517739694664049915789097997923080808923867243430712220621279192295141330455844983517070075684800224442924980556689893355562166775349368039616382525431216833833335940334345158557120956670262545769345611604102410702010825118731631112932171795196938257880398555554032111581777589768777889689406519548449401127526365115537634914143664263330183000615557736779482556655066615710903988352418574681366762996998676048432846649844368942297191233900754606399724597912551471630434961007449966062891287461205021464022025031977555004722309295552577591282411546173365530397787804251277801551401407731939119101666958440084540786179885432805624822713027095613214585987004822021524022960786896462691620985490808213481258863525585231262296349970729839481725301210290476577342421936750679791263966214579337280478457543226797059616501621882472303366783575286295217836803093190338343471042915613937333213504904914418585178916698323029617203018165961648024681917755408378571867370219046925277205291228483580739810902708416052931839697728603430997921181664439119141649177411825778834341834374699920647290573855694546051411067481240434668454839683609001871216080793491764791145149202876934416385723501622337022857925346568403620283747637611171190565953494661489542617835170211698919728782796254142336673774387166280298826938307164509015216741233244517493740847325750331300445979097399317800989370104005231329487302528289404171072063333193061473004380117940675525009124008467492335743659844816985943589553029959918587780870368816625647276870004882714800606740102649956393466036348018639139673305061965476661641562108583954458442342374265749427431333858431780780278389127684511576622650136988732162875599854036211714492931481748210249708163370788618831178192227296151524704722919459732174804351258996817479302485908759524142058147865594591701144150525792557716813439132214511579576836484749493693712041999019068700092357402140077691700235541926141447051783400951105221042067654326622740697900746723513040219416620065901480619514077503167954802135939937098595433465027673211919170050464270770519173507758202941476236826750053371819137511120535337223092523697262098679580421261584324455002754969847796092854380306713410854672694431369584149780478391445287322293952831162993459163516489568581816399451835364593240409752158089734580205980832043723262655815840796009146338023279653711094243765394314402798797383687321492549490173102038847255646839351169272746145683465994454246656079693586278769145075213568865913060799382358430450266301154192931538846517112769210555123989888848491461755417583989092888925215341848171258994007910712634942068271855522164954625670033193977651366385238700251236740518606022653712476732942219605320893589999978310883620864515326061658025153570751372354948739818599887906841112926676063488763021281349741842610374409137288673914048667722268930713783003291207746264786039662286124700986410893896359998772592516940796262454804056674119305518703458095095918782487212995722130122339770527105840167263066526782990098267147794018897746126763672608800718808492878618478842102514485665390994110401531426502428259130279241643190233366668572044369657414624399960043698929771559714629744564401350008508512023006980117704168592719853825199578739957320653581068996984608505502833747039657173676945068829805696756361935927265452581991985519920134676068124888130930274461906807478071842093686333143701121111111995228563225774786179485847069181868105100337472290802909462175475770243453912656632706539970509382329678683523987859570623350730725781699110306872587164863087818555443715178897839668555070482135871909868510261574175189833556343410858228328682216724080916075747034827279444719367226159438538803682165316347040483561476126972140701599024015073835661030050914423762763448135824317327684130596005918967451259260221335768147137226588007766507717552711692589252740173660823284469607916572485475144881937522728885019781101018894397998686296134415693023862405674946737375319455640205193281801675127714143011620101497597378560163847082565778136111177822604348908332694038296277253997823685425831242202789494906068016899368555320359495729144241942445171093695950595961648202969657468892854644893252171025631984409664264144836614194209110585957630578852044517065319654335138896885207767749169496725968420619746899198783247799263974245063286977620008549638216160805832962722456216741404707041396211172323680450109830586881652832982893831061012610490449160048484767766109497547840778055555519651825350908878858240242576434450516026919407467828327588114792967568351447539942878133534155693084809585879206631761424348727776604398653354154580894010658911233946828118408698237823899833413921176063181698545540370245868454047700777667613601684221590963662871182582559355697989762170374683807573321914463027496330315367882632352726100288504511387087559255338662416509214380986848157145115193835408107403712071772714599982312568380091461060228904529751901967286272833056467986534605259351637923523414384845818014301739588380047152928414413727865614859187065286385071583960277290919159729110078640315195107515602593741285843291118269318894401334785613246547422031362985006786184763849973366403800909537052864321318605412051416396886823189275835597119939657006370512174376579613115375243118493552837878102327836970444293453454485282551232929139390134660826259511313507053056542128395792478741474587671097463598053067926512710458429980737498727717578067918273540153483291684052192942376887919474802800557991285453277488319188041415482225665178329498352729913232307658062516486448131534915798683318754156865746465154952822469393883425844429812940274959347765522013106432856245538647770980049208746270359935705003184321245601797439916342808021968801071463430926560308623749361442788808929771448536518828383532438192119993391060151634056828808619265101836453075503700581187560866760303316122710841773228498186855805941210081265745939485193437089809695358672597568495927900279657979988483580718613831484050005548889798262816854028520176117698199141295938407280192741948472532871288223784232683392694841169074584078719349684814078600704890587181227528410642214783999628977488338586285445477369974271657488098601840239995835549664738283025893397613628973851774720689192763297561166662383816920414859364861452263534301970762987561699191634513754337597316376937126461041881213754731311855398376818620120836454812711690556638797885749031825272043440790239515813347572000794725379975912623789269267186001408663259730985247087120318490448861830326607889390357428828918458133662355715775306920439781802735353213131923429327526914627452795826338849600697851493057947664669507504874760671879163385581348864915341597067907081631970845091836689288046751698074842164944170829172950138145663027810148191231168469501745189191142210870294745264599603576875951405525648316786142817302711682461425911407399447048159962296484688089067759584479758764896913680245119607081573640559881113184831953541620152004088668552003430853868114677260762991358303203350560153323041506923112656626070215868326407656806064630945554050195240842883685152357757416608649501187572638573406026514916149645253320099378038558760052963770290319949159559837722877115850232769034372019711608914383884582710419584301962915476102301445072341525763672337035860529059700122350538861046218367631896945931752650158091353203091749462943464821779601464701566976593579065363276182356647578676962269164454714166907076487446341375039382062457274022941046944806980432436587351273392404931823797608237629077075361529223515607603533920206186722809821079199758394492108652783890919039807119161535445795791991148778124810200093757052305047246743664792528056045991055368412388323531635107506694010871712009127788443185936356373166445433670482452742888844399560987047269777173947475034902914847273587864183688957157140991977936181556742048159225784817806785101966584860751577958289460169154251249774624646625082946181371635637072541338348109351668634990436718064192175315103454412909974842110364539198149150587206621256791257160226423418801394193426795257156128279743702074024193672327847043108361246018117660677120505682513317694491471348600192735546923847628128529558724908290079075208223815233137059598019775224906642646594015912264932219254813820098590830428609313724115904462452059340841971537913140186118418488597632143739160445867838856693332689514389577374515731273681410085168515090615911338145798571503871921507380815170766750706275593758659342857286365740358966016248139954768319789981903016347216240730895063993156521536322163115712547353062330098544410980762107598460197603264077269301889829964715625224822329688107407056288805198593337559934428380421475653036122170394382120624416400513391178360575630227873086835427906838758040254933155789614090963360840037694039977730453766776905978774026227645761266463987067786191605278233804962058117952784282612916881341587574956261051781915983007277507252625514432421120543347960970919167704303104373908999730068010652418858268982335160429054042657593675476714054561092460044856054120708913658950885571516360823320707130502757666769374038231310951834461069415216576576616833315248391996628789147801923327356622707684135486027712820029796905677207559540585557096619466123326154954294415498890633965604908190938314299579555494443963975123328320441994264065319852346402906894455768815939050969861881241448388305869987706503474467676130382295418744433669781403607724539302097760421273406762847930820662867780215468199454431459496597621611249307266106164481531280340502937735509618632083250952868536541819503397172783084963256548346056437596388783235759207844277532042795048619015030595618203585266737527485840737240278143650601630001815947729221563645146047704003163932385867973225926691327316314699579914805499137577201782203487819221396074591100640736069824778398744519606886395047228561218864234536302418979735534525122051603930381484848524437520489038552994434600384829921036804523362431340126475730069748538171046955815240730073659922712037126279136106841181438003111934192381651719692656924179828752127671192444059340139633328814399252148626421400525455963372187894767556496750695315949961167795763384934672281389355765733482832285596246980275328336036019279991367822805321021637164753812753814918284733771912925290834094679437617419422562634916289834278389440600464139409948839287839553646198998011631396710945095286835045114018825057830330479405900332222620630540337645010237347820242954384514627072616844166359356651513924058067303171368153316530582040262885697521053605572640284906272503622746691129712233078523941090314164804595369278219912995653305977169490430999520527253853318969175683201353891801821539863105327633299989789177167621567083399156384130354229034914955812316262758314222780477653516662536368857470287683393624508773484768489040523663377996045292521242323597101802716247562330799447635275537837412433821730862552098443951189267989069900411906071433949740287489774631998183002553913294247423485126353577124222121789558129805779169431132032776535218664427296249477756950594051615509567130728164661709868019460956204079575602688767231359696799781585244215305241449139711109374058983435374120228313522232639991123294402321794925592889466550480026625638960066550857597490496047519771249984882667065393281170182497389176657424214502586163550849136134638791105099468531456672183912980378156602741288232950612058847387890609755056369401214516780912173743574262759639358555268871614889742233423799370516285445950356878771529635084920543645423324460784745957847499655174046279735981135290414556917958176626962487235549900437939571696039191864139213831793724378767742971848070918909770620006853187228121187717452336757149953919045920598744382532022914004998328390030737218899240580040427222504807538860019339337816790417523860523067638256485105733911597541208653113478254977451748351972034518800637077973034125373552983108417074506150803843780994609223591311728492324073119616697837787381449853588617149793122924091775541111437591274082741309568620833666879104025663253750088320006908132948833733856926393098893433323938382487303384853101916460904585598469770835547349852233562400427794684765705204323675040610972685609922817960011458824668486775203345461113997046600865049996596537403069640832387273165533419319854454865053253548061354876965281771830883300683751937470356580826425989185907408328162296108209266336181037080559499289692361186284522937154578723487847041543721088999481268555884358908524050954730767989104062805516325683526772900476367453018272981536966793936248739453976259355487782107296058813443588363672293632432094270744593143608520620104795113810132774470371149908242990371040668661310976301316525754663962412471779163899774258309118391098096580723289566858163144815603322765179274712097492162350887402401918020200686439639127109297642659705483052905033422689804231445571420548441145904671150539900752812278057916107280952096039912167108623339688087740777470984844290456952141203855452384280442348830663504917034829067373790887906235309769298640141358177065369525329780790741640487503321171065938717395415930800483622522913529088264258908007302548494218586090380924545127772087799436142947500715024423130800473938995973042203630159296989040768626737679387417630306987626542275758018108292933012892727189487424404776704204902921313856156491812618898966706646735883924070913257443567542510967277131442859186576522903688594180869635923198899992862573542718721988645351367999891473462535688661296574074387582191387605054765714472537367506213301195193779943272812812561216172987034650887035219478941527750860726562655460282274712471628031164819940614311366067077489763608595635663094942629922852475164938729376981091101825137194057490243729050208370358787385259651331216459285290625742229058245328120491215361102229750211634858842163720163357730804572783819068145361493051182425134860947154417668138533760657015227266922906456488971378865682944516625286211714127436642249352913827521682738941023216461909028272012762832327391273628700455878273336802044053296463833267910604591080517793555357413551007546017724444355555385515899686621870593526397560311795898586224044756827320770793681187984898704706364625566836992769998189468794395493455192122249832214366823813382041716764009313461643883228131969897422655608147128807616049389170197920265514377010430082068044938528846478960497229795413841296555042800653085323128324159828722141994534774937578442637687120315500267085356223691775939510568779890949855031605849819646868545383387246925885554258566620322906450502226124818661833063079614720853581915902832866273665491890600343606410362742432092175674561116689917152989317121091888280643267416697782773678246331096855784883041949735042626438310306997506220288652051961237110860864526921043626832893859600680405496302946994947416870739280084900917781201840827181735925176417231234964685956070021190363563157447990098003528544310571510272699428919086211270769593820932777920829973724486470916597406459842690157956271892881852924644743984732466317209645447931084961066655383908565575994984640542216398070986408010705371369147993518406723235342648858119650176541878360665592302601562339973389779011461879161135149538085778103549494467942259154705398479556718498298562432827007730440030242982734108318737590079248782981634341423066675364991931572887824518309008408034419039945429890109938952510085467729174290536394048829368968894839657948406344461151910299798561342226931143945977029973430146204735145400974595628795866139307210212578275334465183367106910926189447242090455822465483490744808336673360484128121686021255711949045982468399637497644589188052863509934088016664840020974674936182723940656805158873251291052883431212065417445086733542246959542610149181775307183415205160070427218172079195866519917463589856293034680341780867007674924141387715271092794865962057271478287719240608007900862745786201580404634889287668945804403460626092276469712794908158337979173880829429095321779782599472160428758158627621094241361103048619040919524102938796398243290433721173049406350147277426671704707871383325204317626855942935235558744333305925376499370620669869714505480115756337797403371224801961312825083017687545906160415382621053784447638482246778200145579987770698536690307505126824580074872411459870321698243460693087523368041458880477519690331594996337430908356858744420638181236821097653033573671988686594528352770334839605853767037055559773777937241037930792536673289353744211004684539706151872300097216256569534498856863581046101584287666404044975567485145375802141941524020550767949777207854787978369635656230044857864047910138627692179863616737902614530104367925626700889301199004774597035230447394778877386600469413806365224165101912053773984838593887727186389165796236230943133480508741294141101236433467152157337719851696134884768964869297966788556116615367735132289408843022485121517889423233412746796867169497831301402933780817436938557752857081901859908818597438058923309194081429837650022858159375659867600072988932929813794806435802531629971040021866561981958476463536165166963476944225242083257708790428803499577583853927082886370874826074310538218729904284151081653194246568201309545761285904084569614825311181643212173085102281547210914598860771431014226551386261421215596488810477881816872837641006155845752816358834238024004742361238421898083020106903159581550410895408088571487178338237711307672329456778805982382268649069359069867256811823363750639393044111408220195864986697553952025557574043999382352209816425615205753944422656681459024945963727082504694687988973622892799269242957863460856260475527084085622739007040284700354837456700471003199665276726685364816711022716477737176976201268657162230431266751904800028241945807915728788059300827037577122438233813930729307354365086376140229723875754221212982171741420579706769425151516884285458394867444062900963092254294582765019946317860052292730229412646654068225762651704784828863382894725406779684022119585317364275849331267440738339520807882717793908816300319216642349111867925545561824241635666117651442965765292445516266134293650353907888902789003047681901631269826700127027405296143660146643110973818876525629801381860090953983307150023939701324798156741959498761172744480947319947763183662090123060462422377034521892055315870986134474958011330243748513997084042261264967119812389941531113661781404239991771852487916005013767125975131516501298669176874000857576197176635940751740406270844109409260523357144622876340930962914221942727838960673124255469570659959703868820214091213049664305004288466409517814817596298086288165313040335063944378340390729218957017691331200238762095081741579278950098573131917007474273978168149235112203292632120118455710547344822866551626470518973785309657489940014070225864492567362412079066264499872041068920603493080644801982718459957899176998347781091352473227766263605847954960792488576248054332190477157621227722946792949775205402700811816452216512174790407749209416353186404822589509411612950595816218751430598201160435204845213296502209470573423989741246861430475570987257627833480850916303427798667653978688103070167156894042564870947289265282413277596626260754716066275471844813845803226696498313297166147846939966609036483995499787532025491271171037892348918024857796441847104228207913139132761244418505677030174293094014671198128983198537371250456169551009842585899054622366433023109954362567579452290291957117245333846066301846254961159745052357461376209471184921131873385570557733956558095462930076555008341198775591559125975356998306439218776496815462513895985987558212539299364047792185317474201570328941059106751252334871745045719340438756929095332456488639124258972948027182058507853388896082685944800055873757606978911309479458975808820102941496298371129643492707986653826249201791147537935557221858552777012431080894030863837900586197322729205187447997624453695854772317157468751938516390098323266753769755319971931217935737469119859525919442456516863772655524851267985628725228233079656990617163653470717568778393448509673839548866648730425970929067387257974706825609805540822780673822783195438812105588988982533778398902547300601900038493646974649830597144098287362754211901840930188906656424036611271037985409059273951527598528113702448248379225447743166546394199072367173543722644399910045192856111333369481033891929830200154369777772600414279218377353002894555823737890524313804075327608868750008015899373013057004612421659889349825330671061134361700598710769632157912788754018766067973634653532635683778171751222705438083209372157447388450253184915034944712879664179777952029287228277063860094013284565412741854137039724008820662531931638467279567407080494567950350489948534616514138691196023658579670375728625023172446574932705712246297706009519125537425908921495441024349276354609335917639021973537719808001749022450938588952972698201752985715783052550993424760313489090018537222970304329887575038346229179176016830408396629094287469092180432747843813663803036326001156013230116921503625261368417534818240845193869232978784952203191926296374383486142700272386595235748663174514419186252966095127559184527661539523958961283031482199613070883720780017725077363342852736853265888885091112849125630834405929710345511053952359388291914119245175779025976716038261757597662455649842928571438032548563220221463078782482199537478512818481226401739315741397664809204788800111043181315363269430458587415327131502757508019921230846902379865297855185618049393741851934026488821805874589579611948331246061552179961820758518580396348720066021058105696123590623137076687608327535104041722267652999910206383750961396573776345119042921505259408340962142970373629481460272220713116023728935047723697142770011582922699363449797564042508878026187996810192521376259281771360977589413449275826603246678652285933478239477511103818094206212633389981469047465467763912889687543896159645990380051848193329531028090109615319613237203652126117317941474318679988742134374105234972432798544720881727214427585971092927321426051737928848464537322978799601678414239891274264306559950073068988088068427790876090561550789387009717312400005868309191175544566115358774255667897754514286444227950552104608234723247653408991356834525085596701600874074462882418599420718232049260021351001190799267403824612691393883221064355298362068225813302265472195134941939494822698977063104772185806081476095952512004837848604704438878398182624166251573324595369587438500969507725291210925626601960627782259673799770691797645438608395394129999861484877957417877597446505392901050625553314483747182746788952127276911072489511485217645002059496787889463050063591661930804497455763072775057780714673857295100350235970543984755915710297738206358364707322466081166981282210991597980148559462088392825143912718658000545339915137207121196835932272881479228779565072969400945924654905697968943181727362085087604610841539864457517207101708272820122261975510138272110788709806709500106736368894108319097430015971018836444590538389364377334280756433852081186024536130620605237174898302779668082680535559440549472574875179725137642141683864280357797235770603315289205122889631131588513925731459585747413982652272492405189705381640249820121017084475706499893114125764216412372353697692299997098114498467147421934853353982857869154581637165578017041507065696440410310728043651693848483003434820572222286680189451682229467216687594389074587173724710846321026943478143835184506331251334612762664397151123650140272203977230573309520068853902500901461713182077918586932267917414536009665486591178422549638954810311591200162987403709450475371666228788729471307433311257042264414614075275544080897078370518409074348816215135723544255914016329494094596808588548431851670738605012270305730862643021096484078300956133058401014167992852941380782165446652353626206109224785599128903654569711879361154871510604573359660077079446012841681039921739133457040884667176347260417495403327159878213499084177425981936747075623537350409062628184149968589709015833540669743768612558350371683193508978768112287335893900992147931911691742397226890681678887578689807701382051728717911588840061098035937390371775118447356379428634146844938851081710558415258147381279414115308369498492750697773137710545644672529769418575821035616230628693680615067422952378467635561118972284127010152289726181116762630560319874015973370867885930378256564239093619584709450676351241360874636582397520303716186167771263784058367656430178160693898955955670809384042000277643894034066997508744184449790338667902389845520846905452186347000772217614560052560917523639560558541684537194698348168618678373043267679179155983174800231498144292609517943877298039218862421829142775082628363157699065496876886830652295689458247700303376850770601262841853606581066342781690104443640932753278040146080927060220616135740551041991500974854266622601125482832859392753016617703631021227591725878447662073167793721595845794501367404554443208324166409075629058113559627730116191451536895020552619120032178103579775526512763104018063744086929068342448999865810060689869734304876298874135621360057316221016413072896765514040966244108336551896316355914142966153267157172255760974898880899250828567112802609098410415242452664779614281195672730825424353371779288203155567966546524047487231493976294020786575002400343159302712227292453767194671196490293235437318336992221635128135141236690987066469114088866302148281909970154513547841887185875916788349445328337232989463383410879733990144767204220135969391627776799240300651553809223707590254886538134866871937631137794635249241390589177887260109229960347223695987449145589992812910169680264558907544494132701023212485606557749643750744170922889508879986657732378060856096400569133817585834305522457788147255859272036015928298906378544126657587193738899443192639655382817475666458318554373367971447782399288811398628268914937344176655483309911659167214853041216995275123160947836241243348493635153226749408977121557929240522017225514643556188453710844448379271790755021740127983040875734177982743422471240981726681271744452040494274756124315897320499993678526455877183327846897376528725939128048928068345256908255754840406466531568855649011779588317627364728407714364922098480889439263925483474648506355532830275085513136375280675614094204533049348964493216839489119705167877058601886938682821312935645926578266022758956446515141513531865701106191257472289903627636477715457352243993001172505880033873873518289068745718283644640273818896503864530509473398129501242316285968570157036134568404589487461027758248602991568047042004669259242131095025480550232505702669489482081198614932392666227034097008741784950068133313142049548614580060345780608969365587762494203180354906076520580819253193093585159005633707825523176581599358801982611369230098057599959110036021172078396311530079599651990689262231201439982976205163704161047330233638952889198283447582447088842393454207708845298932129341020533853979716168889122426168612227529163250929187701624112391408311460008379599398486843752067069189577756860972186175941274752183391285313143178590340094538347762166076843183306244332346167612861330312897997874459830668351197504352626559058625328800715144158599201984445236833038697731103239967442866215371973896411187938319345185228165873076834945915667382825532273694220587597631186659500184457988252463913986751040188824447192427802139666090126030220968177403018398878105715610268877203999005835199720756727345596558895006975474805330152999660131567486679838292228444149577339562904297265658938380090915538346795784143748152439451286893859065176104180640158007064758012505397154516063675831173539710531546157507771358033241697601224994608342996751165804206492855460617195451621140896377412271059968371054669201246502079325257599830550759619241186522998171025393113495635314563924445451606659582701777107210622760559676771362100473236920136192835890591421032629939130832457993972456684647772128517392687844390106174500674367528009393713945850460917101477222663973092693370656558765253868701597639033245004043843362497280996275620927594020786147065811825825495224029099929208505107387154488869881249090476738920970899572639099589322287867315101731209921013663172155932772942629129578116260315848526251405207418730145024655220021360511105234949674996056192328141393003678838473649741685376518497984291925942125279412828222473792516827295652980777226194510528597986057323911814193302336473354399679411814558387394793920428098528549623414903035032281935512524537366949400535793730033258527661122203028286821770392320130200405254634327173461107404366654118957289919828198070950519076098006586702006764529749572611713099478244113650135078397229693952046560564469181471204728769097349139053559863224061914154412349099478363846010951386235329826019102746402490841900618694770002559485561857017779617629932494458351809897932345857255512278517457040667128758292354970110607682897940862439684245211325959046899261642361947642892239306445294409987396644511828429038493401879824021871013816339893919980410717170627383255017134820410232759603259729005521645140200891573807633429160706622955175914161205452935040254650628798351776763913360479740472143031334133670068295375586373087816972133349140367942401502969864518273059361514305569167308605153029320344636017441169288099027410619226679919144354919363156697848732950531425236280524014491585252529343062417569224915492254885082156590093532079740789559819940092267369823687866490412715358408409792965984797748872161850160642574539414231811777487758080149431641792738471622124312458236764635942993489236564549970685181721151460508902584978860926081898430038871973511730304020729993442553308766380157742072783353868634725876017640969567219887819455032576170005002507086674119435586462417748978697293718841850481841655440801713797607418240749673172591200005258132469273535729875779537101230674349725925404357376659441545100884634088262713895421866893977782952307169083459602299541666147789426396667694314042673141330125238948112513739824874965984748367844173199646433658367580329739487559094320602983148536007226932664956486811889270173781864161233143791176016712847442800068357923965759730867999594248910683116891940945700308020428545570547788793887966435527399174747139947054034230006349682639406038768471696216310265782796302600750003178685972556911840911314026352885719665749774004203471088188554128395269463359606574191801445868305557370448266267184622916493270025096195557258806881075173789917463345526358778823817342198482468908629072459978698197762099609633116417430282843931158856557919649020362877986898206239844554920659696213357980657368504244996672537575031742741785522031573179280933181811206297381205214987330744755375402593665693726262182496779038542857731202040725851507123086595197941012294918412671822122030774726247160891250843868838797424975835989040721949958202423125610881946764430438992969352508306964806410090905925265305135992073476434167313689208596083121266761182457554494359041606109833407859785418503818394670282944498519335192775931509154039090921351943043432246443585102748959474567320734495984940091762631631792188256067077498120956101314616177638081903999208231033036208005179235230232778601567137163771102337475097599449804870545433497698484447516820302239696152612354963138525167999898580855515442812634828469722319314745127278870561715178562763994731877815562277743294207975213159672961232268693601963244817158859022606433872225049991689479448176247157063392538414605539982206973022110163085576530690541006225061804429720479726825812318976913436550104121105547087291505063508330099320448883644003008788992228359537758446186877699203371116783960552782286244831046017663390605048486179345154540254131048829710511105444259178255087372561870835935549357059765229004476141014422235047499126752466244261011230963904115851388652209758802794546502115315479430008836506701523722791753140976611777065580576928080777912807772391018712604712957031791990301940276760741354076391388994476384629574279200078598613226565911362360644081932710149485892023958805422961075938139798305621823630118947943908244463595973270194039265565846873862407093197327504900485856086937017837669495996725503159871655057020170909935991054641870427891614230233396082305456331415297702840129384879685680369057148257400515757593807408558820930635947158654044521611408153376896192495130213670547224662239111927524361434601529432433731430878856572894501026180665404858014041047874885720006032617392136264641638369635924942397409890968145608208957107619475609993664684500409877816074389744562061089702782032335675073987639571042800412959553914362837307484918325185285547870243581748158566715274051709215263410803835434872027611213720005598561004080849900619556071407939590522039089269832551702741929573718875906275662153252459538527585918076133468900258921120653982178237241706686924166591979706559912688136057118975696259292911786170485343393651487113543925155389475760085029996796199163243476074084454287426733253037528826844118787725511924013248348429587757201057611573945810064037913585122022570001713754403846275774845031771430409658808237300437699377395836348513470988746876410348934355853572850139439439927057344503988342643482687430559080398329985045835835194965605948799215865565978463869876337663716199075609182351591891805354688030376834466917325543396883425405172923081875070374892946663961335108686063215394932516730668672805135652232380069654136212615864547395142782654838557966527213652886125920490213857772785965633805764781265036538021242507713996123184595309323338082359017103596015224013307028882744098809166611933946638509251100824001731038717638040917962720688426634332599373021375999712562206104382120292759000685603925149595154626191361048357996053206787601138517350518851569079275425865149176624324399467805219511099879555400910780931951048893630135710813262134993536409114060541700786328037585432934499022993823962437045603936749603335775374815851989404958957048492038025230175515590439881040078528355102461734852995508192404575236890765763176359504069826908661239832764021599604898223261002776374302938970398259916260532190869169138166530577888731760377446158389128987403792378183466120329751518134243259035334536728600747699801404792874017115892829593375415805938015349276910800656877995704121565032327923434999279165097601810967666724434908822657054161485537348404305277550796334146234605143794758979870674434355016416173534407137143482579260761966801710610330868421878534891593302833328865957969106894100942971060185912410433240063604242649997778673145219213031330589779660821238924846457887192886088414365212642720719829241697989306195672613505260059952414587239228016512807505862975580947243042457833600311803762340757602377643283217500415480751622114383096058131684370253667480958756346992771461588442031246814161873686276816245897260735626972450255629681892747389797738581500029312507519077680660468148708896686232842506756292111141222195357435997054008068712810816514118368294873868318346559748101590378530858587400547466143658854024494386195634032737148685025008627749887817219538949938366928368650860899999572752235753899094421494337124829467098737657336676358343756640261643194837312769279755772060799015898257569344851941047719835493428658033043528534695980963704373326113191758377082718949107038724645634650077908227283823062694239446871392104634375525120440357567216834143935883133358436310712424746023867010815823913603201699919132412106893905264305055239753336085254973234471707740498740063886544857203472633540172149200124061262515835443677161862648854813665014457201453265936029019982518845332836012215280063187621212880605921369639852070139557283337869385861244270638616962415523691077415002307730497192406291944723276791796114964296622521747378321765296655950134423537954795877695721810214828957819540333471837240693573228373585767834592640121322294823919683108233717718724319853521419265590209213448544230332191150628798528936771405795504150016386884820288653939327278187289190402745661972315432952120299958921274547444425605494677743158774744123533122830337052302859911199755789015446167425700925622582454611165108442554046653452850298416460614527271258923646867634006117539842447556442334003971478884791081533704376778867099646619478124155097634840337427640055629320110624684085430355666758644775928631464850923296236343797410913908515652766151309507126287514741245417900925581776070111500275585319091368904507028736750508025195363622332214074724050205199579141235839263125373238533665907097412449614942820217362441446347966549915667702324246275828035329481176547807025006698360734019320639886382608578103465194495613499749483648733823041413023481673478998072073813432537336739947896522725388340128833581006010823765524052905780633153389146004066979437070594927051855878473564186193331463839102344360873148057719562964986617668392613802970103927962484141279700321492526819287164592054629479051146936656114578831010447309932282192129715832850315902113506311222472226558742849063445041067161232194893518337611290672957229913101833759560635548820377053623292860689140347308851928004839631698954583655119540719706241276209570425708554469694988093261536110131636479995186436635699622307242855694470252896558112018970511925779433484109268120625612745019100178921303911894649828106536733954770773531940071616918333448064370321384172864953864127570387057388930520105401790920788067441527173851794226422499195936905835536045705799999126079783476985008035922062261465693467946738400250321155011388474766043077851562803288451301383333504085659720162464513813578090066293274628058416682064014175343442000505671535948373520715093819938245140793903880045364070860623825692289567740143177638386702514718304129457572719701088292531378650023557679986927814144617063178265478445742656816052655863992048737359603117355928347619804815393827061923291443034711644635348966527577958620904992688255145125296836623339317003288749032732225834268490780029467680037293721796696786504113803919840025700135669789386330642582542573347167775405598018328490180810974126440586872275974875968746171214577143054225806918668846493325506591117819095146338062000855686152340795325800095449773596596820491328783634284573754921454675468953525989580724382632830902413367153389679540568322508786641612892844435221421981057506756685957460619241420372020873062619714367788378988462933197683557340042593676971215560965254187158333804755017656832677701933611318731574075896740635355867123654397361023581850402647591131536434696772768382495743043729123444784562071663023253702059344773133047628395403980966443529593553834073440546354515945815452612173679084525471345370872133371383885630407702784734536028732103980270404408507857081208110522948830359079997762237283813838535387084861682011880758889784053746869705662884275373339136362260392128019500100770555565055459525934419354114990108931665613369614936292159021928665693202948864097619508171898686150487520824018483113148379681308118885024638344710817244542029243641616085211285906544456721590694948637141554956552866173520550209935824968770230921183438048396871977388896612341564302675233117969272394731387857179887578649011373389642480148853023209160584563683358344460371938627541842551650827823382295713905540265383386372818990465232597115684506916862185704891112894838190267788675224615689375107846945463327250610654185573074824917698901585468022403027486456549164596886456898276569417112274388937960812372792928442283220330912545768472402933753613556925967463831815385378033835056999467217319243420868076122441341634092586499130335810053048372858076546801062715858278233468011590789855951745486637303517260295904065084319155464288017702100852835891349512413662227792866309434988767865172929982826056725261273102008091838831176835168104010833134091257174350805818270367609366708607249749980025755185354021303554538443276565976893565763024827225355450189467366763005519455845878083865733503670888807799881596598669574501951694819332516411024725563958707643990255572733079218094750799784767766591615247692782254158476130225553942248560082836366737933357726918416343303148443113550298315263086214085788029843018305486049436007889013558887376093706318677006806464659605775487190349092992696257369456419698987505651249457416772004923678595255611625785668545616161546207925177390464526221539794479998472469114573347304557673641429080448711030370404568356287160352872695349618920727255175419207206388010567929628700148402550873324713532965741867039084069141794658531824961062787727798048704026354979645483877578606253297740614712637554495574946570043374983971482465385436191276464420782213635435091097530606712010202442309945855783010439356460834987155230444871008167969876198532462318984187162522836288744225276868384089736407688154231978589122751211644695986731385595191096074261826632678997185747410255297574124660223081290073500843556389638904709477282965671613574972260859289737024315230511378236061500254164951066447956634599282816471648868682507826321884494601868903133503016245191548090391141621520421420823923241881607087687298843556401908072703717534091777263462109256635185466250107700961190950567000287643310085314481593627748509995116074721867259635772967345337970319546395535493077427327606962023020735369493792849221754651913777736069321544371579917754961150935066810096910628319502619515892413413026754881470030276622000717784227351829791145966681388034626089140988078480480327424239404866549598180434897764153809263369068481505645138644438811782517933442408215363713135553829800807975117876962234078407608220363835719208228068182025186273016628316310164605498938307167011744728666733778077835246573979780682201642742166331947727706816469470430856457579185567136924503200525717798454233402570924929381871109331940270021019128631754778547628969749633507997980425590233020206753585706994391042210737753655719958906546522529597671871148980464279488650487624604355854479231238791642506422629826181461809044399084037984809559462423190854485603617959896403036573749709328343144870025517336572022872334650299698290662158741766196992960577870781278495659965571335666724719805501345306811246270837376835693037190733727780240225614725886947032916975330344504675149042766814347808712573072000689519737716560516167099712311611145917289985873594053390106790375822504949573050704528235814983083463776283968425142178998396937912702528660888432389400703496551645519818874032386050090097173233102333030925931231457588046184042066646221618292094116275016639113902950561503456506841375083961824640058849903426057180229135558061366798019801784061284375047205577203995423441772509002914059338648133011179880431867271744466180500280162702795807968332536699943758626345290582907756092843096132486527882889189976295112597979746494996734110850280353987593074053961505828699617452834371470216002594455715754225049666638796224755338118774486083057051681798645415965668858928724592935754933734799228444668586838305235628775795739997950820710446202955698484088438270536414849520195344068766598615173751977745861530418962511200981300361370446577863281883735721570553511398424074955737472863820470454785470595014978292943583679124096665436239868233255169711144470986862324125250281329562221197875927935651565433887048321137785528378260336023723544115212920032020353748009255739203583012187353896754854542424271241650275746049463623031599657183265696736436473997746640984518483215008862706504012591403793977644845910552370024199821609596901142079589879271114475340262932486933564196212986895531011006906666436608113528173077771664985986178659287665993853716175547956569816181732774826141492433917975798415737965212608607577742594858526108659530571000855081728160493715116292092994827783198338162443348394152937866825131450473558422697695889092853663084433248484068402796002090993257098727218506179359729275837369063148612897261208816186996780944371274796491029579212892500318519904191704423637612551055974613079073773582601711412291554475060073660888188555679663744419024697301897112236023082172840910447461907831691466495796458473671527370840079198729463152078110782421838586274031132886134787870515721567041474905247221399216471615356802714987219535912058768382550670144880707246019583845230954050040042482400549337717582468522274228788820018643027483353646303165199441231138248168134890220311100320258910904021850229655168015864606436934169043943596508562659378229863482967143512487494860837480854795004792343568520948875571382941337327207694849070467925634362115973795753010107160029478621179841582802728520868419669492967145592491461132879353866766896764998835343965413828656438507645903038703670070057805116148283513709963111764235061311770557225696611115018106573230368845005131447670006961015735950128222120475845156870401819249074022382915662267220052773093353096883060247664678244878171106671175796902167638384842388367787852066868652053067384855112842166052879706894264111798050622025192785169361311758981201206938956449718541388493100021221575181354982079113035508539708833423989666281721779634459746300181998028002758879533770935263861346877381714878729455759374977524782758535025121130000429211844100382483752399982502918534700522678589999844778677418752962531648750428921805544406839854536805798291079328833835586582593831118197149298427483447326493997899097222384912146357640994524542973232186642538636021685939681077053777627577514357311030435079163515672912757256367162887161080297510128674621316924894132507857951559767538263222913794577679093088452699691971626141696364056740022917051976732210297939685928978686452551647854273836773797467749580130296297419768054548590981585960622711586985475294681561396078619926991071483348449012458216120581978979564991861558135977440293649612746958340724046463230729704133778911837980083305549189221135914732186855198471377687805007564290834599863107145733882171186501010340953203944088055652994852950813289004196827720854947328527542984749882768895520508908902028089074630542715675987533288743939527796137388408757637585780890997509506784387812304150911554663244828904242217772518506725910716712781707002359731664191634948154311523848784151383288228796078318734403959792688754439882447323251060755711465447739633357682007827063097282829036499465672184105033615854476933752612178445115489357428392210267398626042167129487803764746570966608807962025501497998857443266711960951365746821803495349010987232934891518776417686017493864240349786670044568824405704353718719242692408535566247759762943382834315495073562429537416160698087291086511715039483957817370880186375045509690357913446689210663664951451228318387170619660708375594622109101538793323969289368921459421681721197091812010954815798889587201045711960580066860910564157173681822156945624237109899377365384882696616231318760914799698958235515771519052776973185576359301719702423571349459959687347491770766397424937783004645061153713551268442699758991997439181087825528925223665868985615427627681372984255701981804075397278455667850866014265624898631333877476303283964835533234673207376972319210599920475454365302578084701551211135056373319945191419997727888243136370672044871745117403142379621717843819717022494702020035859238139572431286437713016728689515213830694022407462632297671108633209357063451717886406286627907170205499897993579232480222036848693532344633275297295756627487640720789240539392809036983714614952818458008158526322817820539651460313103726642650861132623134887785793612054996770548898144656520524481882595963020736471626212314617583291330049992827128492243846547945074767463208979322550017595895345929343054984977853568752342736376257178933364923626017452842791943306347539214628687064375314072356586540366141984233462660861917541961922125656155990034348954902878750755915106969971220850846605538471593483457857169696301587586926767476398838940267733504039465863846612047512992732572029006576869821551776088721227755217204408064195511106007965362516938727511380269618180569976979463680521968918828103306643111129293364860284909906897307843936792023478232416062731768855543013622718163842372119895302157081588209873291988809776077812190619184659098091637988709982499909171171406041157464571180722522255589923826864342802828114233875393011671717099168787118569434037402516577350592481292324874745397638787629293462200695933152313424975681676744902097753123140142706299702593132923744698287582727683545214038886542849220409726105897943288219625865861561437385446352219061724740215081895940030010290113921558216603883193177287164741652351715952167422547050704635090244920218859240708344578805801815288413530176898652517231864643443971476386378640817800959667133854351436283857406541202534929954658075608248131258796621379022376086860488468161661882270289566455105468227246114452754797774872917044002307364058245886717941121933606639569011160237514726880740439250047441609075934046256612923261029056380354303694180275686652532277968059259645641739909279354977156486889003167187643962587023742529510591568340870868264472238591662243568643856690084426272578616429302427167736762592371064133690700932738448323292830409315549496622510357345357245731463371621103551342067179017039290998220612975199819088041334737080393188182340919166306775753056928673780147998936634490193804996020715418097323202212737176816282006042983221733053539134059876902755685241749736368292439440291242517262999518281383107998669800379546332771917564171191432972147736386034546417674156093590395431272502002195854297812542869394460224868858801960902221171122779715259987312028262749652023710173808786083728242369334395858426573438456127321424524325900387731175287978204491095908919972125505692898328710249391173805187480910667359215115729783601297702287551734479998707561922374105744949189439219484130436374847636500660827683989235594231963392261880080551440407151889159286317151595833511061633108404134743026617897335219392647309258751205142133492146888296804082351770529590692386283084952485214459686055140815909473217898259308295681658744245502499001580187110782833914680720024233011554743743617929608988360402244147725278987312163807778441031619985751253642530008959321619203929768383880219092621310401475517681991525544805904895184326064820037882625054239181578160072431243303971581020976436683597610771164421748554975215824741296852178738620914739307854975148319535510630818008196357363641690348212182938297942780084699155984583275101768406494800816170389417617311209447013784733171023930099197403603888337805115697021242168037160426696047472292200290848986689420722094785966322567702721823087062153932408666082297184128166471555935254960223648772659781370709036290498389672239892120844625582677944209824342858153126760181131789620859903961773109111810449876997887568818540174521163380655202517471190907160968948945199893837629668667875946683666068885747158031217426516821912761502492447926812798049217397518582569254734139794668748694110536019402274443172043028965765086087801960164173949504034854663697457297353876082227841108731984147689454131872327669853568561615299731475686054020942574049173565960825530669251304049939650044053661856194291997108946425408972360179813814695095015065987523025507289114386433495747648667095576886761699222648587796495125389950413920292760192601795006706993375893743227672101335434142297652620782224559864843598915305189627158501621973720471835330089446884818410170424882252819733803792179967826696246991492661567703557990000636677706620687368313639202242894903601062780454938260152071227332281800090616746320835002448156231022590746433549252446530072511115621451011797917385533681116090998497263729397016827725297734716485422610125509528858763940803563871628092646724261254894784971413300157860719482707370853491480073140368615636856541745334833138538923659821907076776731907794571664635744190481673690944314102478880766324163651612836038135492522387131121624885198272243119244809103915623120693212816785871892420299362631522650578369984826812571529972748448873639306493608384781116047030885520528534364294200093171126886110328876003976621125391606209752179302187496320068639466643497216666117755372122264461731794691131711138491611847410010052058641326541595328996300328966695162471206264848923218194410224682682908253896685434513031336922409610076947444026189494368585139925506578893663348819184934854228398828789041733013060996608385899418784667148112417897591453815224614658657398810374855002137127627333217147323719714591747941867093355623091865462008690641124355146128024671968516202829425583440396669798118997981917782735088967740254709031321344824628217869328787332310387561698516921118500032042020200298893669862071573255608407135688873932412850794830425581107364717576152494476987934443990788164310883063632927881724669586358555541445966881230037556913524439150119235617415564443880767800820742435602567146012436134682346306528563460999459134415534769745772643023870347975040361926801127212189258609283010173124108055619072826203742217814775280587900066208500729527060128154584027321662875835285417017181341809045636117803541103943841438859481985399018333824929080272940968609580555016027686450344285177106351206901924834031481445126994697834569074443206100388640547156525024368840221111054386747900315865616260409112888279675936153277987522427677823840111042664836364083180761893310323044010083379760458129352127919408385318390502164505420981743336358938164597279947589072825799767973524094672051528666651740523949369009934594597666763023365612641101508386308472974857726591355420414056270194224486826226192676109579561525156696051881943749397681594222239091796479053183281017853109116772408506367653387499248867957339280715591366877307520172196696918383483196061706886554502245619002794117746361825140588813613162481466336678004882914904902508720473458127068401197994839563817817439891153860153082962681097423625109571446944136855184789726232865429714239694778451834411105728775775152289774775954668506291001029652189305883061864710251605332859810546586230200544089736708718356903744744293069197095395667047048165610164088593799324835096863654694459343188153868802444723434365004323430203432645309676053646276203706166276301800391395652996264659806586429557920077408294929780008383288376352589571945280493610650255860532951149849627223135034584852552655882487279937482129976315916510515510679766556967860769226721472088222928801501256891133366728259685686218884119975294680962387768726344478724716342151463027161906209353189539958128394460527477663700144254518760156027996769199418433158570733831490191039190160494877721362406493725326261864507605436878625904065335814120292094141369546939122819093856410502841082048007785782248075706167981139749490837000450548614743644375793081432911977095783990467130344826678590043617505834238786103934097904931209926670544695321713741904464992679556722434077859618249021901197476394182622178955481183858562637566294455707828226140958707255273790364997194354291631297589651650667934382133627160675655958928120680145957231978199868433059166322934172984377666083462585697248642430922985717018764526016646666107845410832609201062516928830885871705643507582795176793147518466628916587517597197399482552378673103734551432130579458120973865436179537541902286779352528220436585607471954390468716536399171405872504904673277749773258461452614226126677773977157132189856244927045070277766170898984718152800979377177196640449589359077763703105468632736451345992665957488735780789324871398272864923078934441850853334522084171307300315728115968230328448316780010498688072159626710002926404466402260669393510797511272036301906681527773306680957210885525777788634952556064799337366819168845410553874771862669154950871440977039463726301220315111137881904277204363368434990813659177906826189897086959041019732405135730120015772723077596811610577946731084838130873121650610140019537836425811898380261275548863625440616352138768013300359358712315355658354183558643094022709846720075132875231253718200294511011326670855886518486916904984821721515984919414247238815236389739061898921286240574734362856065762648875399923755428798639692615579965695410748350275146306645928425971149713064199324662996574875658531479724579150798331712154655160539561171233724304337074455605892914620963467554029059757322819781085089879208437682839840461447099772601942702506061889765442194023817953017103284079162005345739332316446112989689792870873297915065169732003584156896075123972609403294651462041919727945736099499329400398105436926487715254409622770716347500608545939738422561294968792851226255728824113162957170350708769281432501125295250134115349676488273506814956558890525302582944917963351112204559464007224366496091327870529774510103083211056098083826964042504720426621612916781915346094913422986155196372425794479608602374934171843429119867537617777591643449535864215264517488319732748320889677850069137756610635093261258737922616967673087211442743642760939259227573677534078462134381932331718508241500924284036656964291220445223526958527325988322776668268165688533661489101596745591479440188123167300911803981936741416769762882868832440555462792523223856331895074686194051278801328151004026125162583960871830543777535005028502653444778539942097816130833450158510344303402226437853418780640007669713113244740198100422007749256650950046078140698376275322284655944384721562851086078515465439409457344468897326061391721441343250020116551313002838732480817307295178936908641359912014671626530077808421780114778868377067147069304089897686338332655416441818083113275415449014774716462394604764342519741136921157314423179233414994618306074850449942049306520427577315580259527197438960586568316695401694524098136617111949459140969741676567698671542018853245004990018554889405496672606446765682599255650119447816101861242874463652053586410474797884586536144641427092282410178524632754866780629629932611766795962158918089285152608025223836971418362600659631365807815080656066123546474742227670538339990630668519730342943383569761263267764724900816260509215846026294051847858497779470422836415045971964630699722735168794688451150383664408170750689342390329724587136870591965722892153136232582902704738870706756344738661640520456663647404614451037755364775451878121217458285612860889756184056353282704554154311227222175944652906402229168303875969371164707435449107824433700828418414500606312652662319044631631001043437169643332941665770906669212276198476519688798253814090589720930843166926582804836612364234494973954763087838989629060689451444352433887319690739299262288649446059717418298764937157228933132906501975524092746159627396719449644422703550988934282161372195550472260891882417559750937483390670601752534351376014528397783586647994638915210318157967990207517784031406266571520170834396300058402429421720625534783894792706896747913395027042133894577571591105668518791532335312764334011160316900974281892403084323909391296710956312673814199433531894833952523810059902811423249965133723122632650995326495614799921150239047518750388354965577878086555225326439713281662356582281972235834093115507078192530971627347667615202950946157255655090555161008335876745563184086295700219670734245346516982830401062631294913994922292971148115826381708943767162771507624196157347967422411436762595716628857562781065202758282162882001977932597153591838170734121476371712960477742094864131178675518990926066601339484179767707222978469343552581075105965838961717022441540935522380918976361694620025563813309539397242317296967150983307805480394731198734700594531096189666835251263586024475798524678769606062899555631550579817359784537553671341976540742596679850526995277751754654244184730492854413178969351484499635913324772705920721641572913404498427131297169878466351351464263831442666143084393444705734032309200733124626500685829778690038843565916978530961493477606363883066790476208169185952845942595712264996273553054125681081613436677224425027407416609009893550098359760818790737418912084870941754918329728712598287023954051647875845163948188651793892187295287441867043940478086993223103585449983804343499474512195394749282245382243288003669275874873197550352763980345013061079032617326361349342304950136055164061649319402650918833152557839384612157080728846558645595661738964179711755930142551350199185648927184928912158283361702905940876692060930260609573940785881335035975838470734074928119131244635844292548318418965731165593888060630756554671940301516963873210079578611512877122893638459630770585997442705865020325118672477232288687865100961036922215825776448739061143478562990503317529032430792208044914900239114990628265864692594172019274807856165697409824747754752626288705369253822800216379213289834391926966527454090993115509020776504322082312374916687275907669208264630580797779209461247056817672814647841551137053181772813766436394435538526743038777135478209132754673877592862901645306888332963995312470421957671398289231229812425167704531402134988416730329974522085059964306118255463126129059271350507710431727430791303483133911958284889851939173798578059426774609241457566032483553926483386182230453845657850802789461705796329736560934669466179057052307716281588624567806662021563356809242985540721041048234382727200457989963339713321886327336208229769758944504582522948833424089004314246383824773458506360165250593623719589275987229787767991650671108392325435609225744331783124929391615816787659894035862562042423378585259438053160915890928573978086979677203970116766148374527668296254321922928496490241232144484605063393781988106233563190549994801437628472496764986659821393510492959010788796033709937454605995480451537200203024304761781095865200288953698291144559477365093687855437719616338796704592914351782609566902545112866631134633642986237743898834388588027687868915711727088454862065884493112951482993496266031025937832567493245354672993479314454931723485412746963539869397313205650566486059294822269441135691948304864437626354575204304068190437131015927118710941948475534293833531805058039712362241737617557947869341616704404474927967789798108309793676044450206642984748534557437575964195449644511421852472750825205783616111303281078246049258512583994090416874362124366524434277029241166463921913734667788462656633879040609382381713153821619326089194152084923749948567792694573620655185791679056104521827638748527474112187807344809428459920797771793926047180063689423981857247095333340738336192596424108257462657420051981688331888359211652593404861458365572570741021283898189340105940954532588937899920431859475443982787229321748111636561398155618187472046674522880372313235563835742621467976977789794807675254776865977558452239941553412276484822425752993837561634833579515784915250176736598375784116955934927111597818747995228975347612141994730732497426374484218665363861681455286857456553449766403556815863308678651124539294442495178754488618454265874330571793447242276504379654940159851919266901398036693447311528822460459618175152365538017039445063352687163065815503082498482218297600001132158019147427446494760238139141664967406141093681160024500730655369867946610195403666336116862563009779490960166515635338166943266600412862004670472745876404486505545672795540091062160970239767892111682700525295833151478546015376550033422202725739192576564366636871606513715327974831413426981005343796913061065390238419621029842351628301014169082332520588617121442601236743497319770565091644445036096367728265986286756786015424537321428900432370111659388162187763697181199021566429092260087173870192656853603555544356461703108522620977061342767502770240844983575515655958796540636290830381421289495356909842906235107923708756038345869616329801739186398497610515881429375926659722301198276912394578613225886249375209258054418335250117612882974220787839185176452584799677414591434058252325701422968460094659120055230970568475873710009945576935936089197971319297713568732068308539103473315656005271023561776361847559343004576610133061190218734506460465074671682060476305174030491708531776425800621567027453939905214863975797910992587658382492360578542415902126318978490730558294997267680903459604873985586294886705843300606532710955917098995544805700309192079834652515359452598423034926787600555311593365967769422918582611710114347322628119006249467915150819007724132232005707408039264403020075034580893722029287651046342879878925606774669357114659647494536432229462066378476240562902068041817434619327962150951694600023611914788413791340647976264504842370238423961972763112140138615931175939106981274059254839561858277410949542689554507011585854354632188688119437928901509566299342387610969122604471818277324948193686603304456259931857281118891242625492130595875380343799649385205572835876233598990173794535706220467536389200600049587764676887768011585805585896859495583926744974022093808914436019022348373173402935383518933813657803213134944931050771369514560649945090355957051353166715774963836910757134213116347901457642390000575941299483774518573995290226622304513248982816714179999464341654663794693365228938686899612105067933774317973192570421963492029774832105513019567262144293802451519707614174003480097726309040140294067493107328115557551868459049827624093245358350572720756023572714774927494506971154537710959513995878289292540160490257482291515635181549986593198909917210270602062714460187847565592531578943744727341931519454876333519738294867699079553098736309990385421303346141106587951015354160999051557796209804202046571849677125272140444128788404275308595350898693053654443890548844317042756820664298553655921601232236502988446028102825345253981702976571827071895891559240132599862273918039571462269777689468126629193512395932506754017264882131176781934126904593362579210695597889339735378475462663481023340944873502765696047251246446779740080560033417646738017458677260325020645344056322816766589411741453281246829919454288632019931922154255405365961521584627748473105000667042255486761180649482233239478898617157309294558457899805119690386594656397775734353723904013995686109678069276511654041602350885420034124106282031747157995407494628981445530080956692158552881346414191010476912108704975606380174600585625505204303804250991461087026455050113952039112270347954729071399342739901847134911382026550063251825235122220558701027965913412202521642985666187908708741336880024718072750118525544800296258785999969356324672641304790914400643056415817860518153857969321994792604515564088532991292902628613740116287660853984125079602895223297200191498619381093698145680990149072599979724611274331108192449939974843268442460658591516799851744640445646247767343495324437208983912532995920519403131774361248428633688249624830166732836933311119702674618743780254364151021679246178731105795783774888130365245733228776780091205231054057655526950703816894840090973427641512533841952553521726401358443172949657582217169910083643295880237672080931740661244603341205168432550151086420058375743561187143493022996731229571643357072639261656154322591871402870294806274283323419109702355076787768132923857402040149964373371938461845234185654428400321154079837692567903068620453583230264852141211265077071865987233457726616371607089801507588529304142880877104245841829787290334774524398758424456873827718170939421022296533349303014171194551053389483012312678721822813476571587263749483639339186881828678573466114546042718550178780274246052801137348907033728414209126463973403993321910599316930134739135676311401229495674654314726479668391883308630685670434633182693314602151234629023703443505759842425693521085410370197291232680684120978129162135164277926629742101769146060384497291306937717002406573756541683004439490807371340893739546158234106996837314547431988747842013930149763709661363134007365510914273474684060001815456682222796461555084047729512136521318017318996484169258874932643770927879767011100346287200618981501498317170082902380521259283750863167677609908629836025256111060314494348262581117967029366701270678563639828874034735200778012640726460205524833428157936137327865921528844378841205024954754247097230884584731016257617213658980060941488920084703680700396245737747400929635835740438866294401972152123526057804471819906422929377606610625573979596725448873975808523962571116216097119910877512940368430681406528671230886950519040506271904160410564074181347547835855908854652564679875799403106540347867601667183343646113000699948043766055371547579005202771800655300443856881742518115266884250713325711640551621283667621067182604083055972093897313982094566088409963889730199193145633149920683117709716038723286479094356302329794461337320887138391126877051079684502304210721560788108546633561289517614433902305239903287364808462981656819885709961921115419098202463110392477059743574103993520675629489976111280473994190154812767441560936621827232395271775824495007408142793930651565544392821586649004062603671180117302447663889191881609013301987032655302149733055974264224493755379824839900338254429877298390494013311936678918362039305091963808664515165326865843511467473595728924110415010759282171726931986736762103026711971091353133792463271821053554950183343842663633524807728976680937086403171082285411609750289203797651511925239553438079976032523369377573203867748525930108913570043989583579139971281775264760599238614981691358295524652501716512954613504407728345118012174720438777577349804850985142766517422683712796086815726685405129080929471024773643791957880756442876034430194891758828518851832989509474071650467596690955812740435059780346089107139837900186138602061002213503094076138552184134731431254281978351277345543747817599991252008455161875200957430166729149413429726011236137884586887844259624477325258778978036030627505168188472566683800085031767978628643528864330363463918497889994446775684733968857391799012453622672650446075154931743728041912324478061492993098214502088211190687006027789699727325807525717573364286986998344664059457907851727293762859391881103805526261951031305669250073263176339020606002520535276203988087148419750561757714857921418501751533030039499378969396452106578133464800812673736508732411982174247300834904231979354602914337050862392141865353613027675835305984394702589134319006750932776365326912997269850368897388602057935704038588835229064160287240469282852270290870942509087380219439140300957753042532993807259020796211481197058906944208059655894275516444862204246054353409265295713133656491511445424758679343784295608057335562119723295168006161069395703437129530498352326893828029221513450279068420130573595213631705559970038843622752087586337208410868792656013118558253156655931427697629413446301100868483162875460540990924324017586589604784258208762863261270859633141182812136907924505635911783419630889821542758946190223380928117997711508236430941072918375236854003974208814661713454225366148040766278269671670965264181664111766364139417291593315950366438904849724205997151275200069311999797720452553502221494576579677738456783531983686003212780668659071443425624376829233706498375432714954235426931873545509086892174693403520542878719056898921421642244819252401913204992273585012476355171853931696718936508171063656248164308684823494064457530886257548150752630588679669102550249980408187455698431851838587273986397195071356648347229219990506185531787148209755632616098531816472978423754552653013327394923738141960664605620202030117618670900432670322868400101960475785745386764320297627834302563747975343260708523883945356254677317789899328216950527595358530833342638904002650079395849755212482836932606895724294211432040186595737799052059404504145988863660788294201498787930347664669548422846794573014012909323482473967957862044913359825577533701586047676504231434391268287421542370152839435171408744392580024869302003697872832498701494139750961642628990837011829465244982435768056350993893616917813251120602214049317987762263860351399167597253285641040437711333861345323831706177612677009123949378308488321554344826004773217327554315247710816666818839753612366213869654067820724516822995773661426235241443001112082989051670082575090889392368219508156353476897590338897558584005885157273999637961619475509176822891780728910209055634961131211916705251517965017396546982796397990389959837277073982796060439533558101754718785110423706846206891805720213461864558771416865794048295853987114068773295656800686551457940181891804166219828907615003955987553120782034837247431624186080258643596769246165825574767941030763288508863720551531406944427772789193025066282422045706212081419562193796546603452036156179844825219408945918827074092784328210703649956846358857669762972645836560479924478294389678788118395611207524683746304043951981872550047885050247230564785789782465425160738818049508363645297831432343634918143212884190225209652605359554048885737760710877817504428902450706938688318570823575597884702410263579564899740558045330896527507320587766892028270319842187163364164677355797297305515102745944707974955294461223143229968761018547458573695527633145809948249980826021514775723863045688005184740888999559480165672935409591447127047343899135022829746309542214689298558182709267248217936420936113046001056784271334244194390851360015795511380876289783150541318640658796451933309651176942461749406615618972899386395329203685016095910354236598961595558959487987963885408960088400857280327850360625153855431559911699620458578201454295201052193273832851270310910424725242576298705736922134657008356152638112014770788438030167865753903691060270852838528952108889118381582042774977529419203110400894648492617316380366067414437899685509779592739007523867623840424597345434417424511419180033393168547233905213533798377305203903377347965875209120431612289019109818737770178430110048306573756722368013447735624145687483569324702110587343280167351731457020862807260939207140293954750069219941358232516549945614094768619764886732069943597007024604174156015814856414031875153516275471308136994900228293538138008489782157935546562683615889612423258128944971587014320635411255238204130037064024561669263119720956084641701068923651254104035037662192978010893291729728265777686101859374950043442955902663916081983872791848438534242161726499303930737672833470008681996963342934311895277888695582762109334032504718092684891264865463413258586107339762337823071992553025040317763505482584441420428624835756489277192601428455379525077389672540792079157206557715392046306310753109311861902331472327152850225629291901381764751373826458041480738205510734612304706790715015273274964090902695984299424110537543598217620225276984779737611174926354179112609085486935206270723908929503036259902140878872853003551401942310030513147557191569255201532722746994996494652771263659267233299737761256843829990834629097515390066793712694679984354916565318506678662128017678419670758719676870948409668854816052757877403458298683691970980865471935293041509908767592144555239451612846624537222436778043789910585576968968148656983543600919288829827709524655100771419231992580716492807543534017158504778963947206754295974038783009883995049428512320713087793516027238651537516059106555515710875706232250292402872295851930231072481225624603887538958466022009569869678635674975308369504430632237673354781455036770019881566119256061222351374258888133507274194266537941897490742990195741940384934958898653074384224881532961254130679942424584766284103647842111909089812198707591639056300928379245429246934504192311160676934685152982207522328279748575859935593793221389717446553885973604261534171641998675626655872897299340552941489841202369731211611576050666073766531713206808255464174118578491693436577324723001682833948647976513657555578398227113154314864361011612239957216735402084907080151518835515774620488927383052525069705499084617936980756187886220460862885282864086835679028367207992497197232458815364613443855327605142533677276475349071037331645803280207975352631232845405799871102321187637796893038037361485731763634879571024484589752051415627383343809081224312444134555265988103237359206663879365887949874583443995315657772681154164417608797943293607920994330349352421039351920588076987843201029492392082790405137193711547851954499120389421003554927181592515765252353299038150971817428296297545297743195720200262598863245162576034507026471695825882431975805077752288239237615014494403965305309969336963361606330888138797966044056899053282886835103492832245159508359393946020004803596258423969892049294297997819325138486995357830008287909891773856343862329019485052539994192346314281284954097430618479069702379232303707906897984301935890514761249660586097350712877191702463107479987342927263519332513141216927983192370044899661224465707500051205491943878741687421883135387104320144258088142042918637968769641532018420847785859132392992921800924378929145094180449379627881444362008165113745398301665878470966721596430935200414643901658229614296217524283227166834648088204425127867156666998289419713093015028444630417672586449813283259739718430481244330786159872200271013100061083770083343222879141845120379069967062321440209614293397818535448756003420279166057483806748972566647599274871192206349290341509100445503718226149238886419267671923285315830640325519948521659386519093430942621060471910118085469121527402157806378398706665253896274892775858744382890678964481138945299536358253472665244314923708309134303758693019889915562932033597680609198879443843201258456615391288653819963667935383809065067963935221673992750313486011075727224633449621893926748086394950128972029252516839344323755660508972459281445253447768204713622941008035457116079035898165171391458775430411934057154184175495539596828979266187400506934449714691156916908606202822757553773711197660558649108582675029070836947982071251507209554145778738255184565019243358116047047522495587755956957076224515384055699466446360880570464051188122959290173783256820333664527005496261901876069424891987946975840659378434652349674094116914223101639580919093149260068678128681879382160458670545872546843175060729489971747250410459680598157943356199809009667934940780375521352559717369457073496039680290589250546350459641802288207482039864336321709786365564074983654483698820730233358601115462671805056876329925941503732303862275115542128155416209873218201843295128997155417280057952231519198562638242376067124047309351287278215207212287079563535912163162017513594781984581191401549845283253669491741696164341022534770078764031038277673011397429350287665661467577970518928199958105964785484511548513367751209416367296738631104262707156753091242475506454210649595875394377738195934705479658058896764826737561986089512015630193861707356570806484921259967713272106476019161764071795646160726781143279425635245882645536502281937170062674698510217666052165742721275356218110612432608580919531059648690692002181393076896975865241980186043298667893943075651377758089363034053954774513828460960848633650417400608761958729651138173067038822887977681436704628854796740107745897017577573095910115835182749184700133286602990736977862671494258747213314713566739152745840780435070028133634162932291973572818516490609084505998005501045392394658821279777998235304120076735324608952764302388735689848970053004713089197117667803496944798055518470166018919101132694038187551391461700997668850549858022726770169815796872594977905642710783646347131717831408578861814099759650355803586586959294268050092128115797945829362594280515613269935387835030658035042023533158074382576297749549650459244682513081201768078751672690217009980022403948438514163128635914711206103229418404884509299742806658455274940095472812523309387724920183120988616542408850961545822684042404200818399517528373043467444078179396179544359146409788915933302768754648825926616856447408145159687167105362007568935685835219101324646311010726880595002936235722740145383921026525176417187404284547084401815549823885711945712111187210432014419380922367029464796168857123285548148768151461170759813977085227540064242289858477649464535377999189956592933349839949565618679906350015127938709710158999576197189860225869633707420045672807867329075678299098225665826663841484393626826603540160594811446713529697555589303955879516937481736398553044725252485957804203483473044857917691207096281597630827260263841049239305912762104246947945261855082850254165735235355349271457528467071779436902461616646417407753768445218135072788494679191707147231058163287488627962170058409659886862264520252200976842569384711619498609019027996800268947587322775286803718212205525380547289540344122611629564628039024233596332036399152105842699704160468729805090198171781376974237200701520297242805300847887810841069096378193062532283297306266833752511546312714646822440295119082277102051686902139603716640814552219609788235693866830895134648257132684440495459719760586109294257463848858488913081519812400030168780739227378472812939383547417690670724722152424606393044444411594178063500110841252245949148576301646853293457483524508616949702884923017523985412491364681332501584264282869275487264327850385238773872636345164536073542388853932151677755246851088712335217971397557957640777512155234244609977361675813925131172785428409391948764046474587018653892881820847762482819522661069034663142378910957573458596443429908687351753935673790699097631223325483055751237721420943563353712990204218368540087059828888184385723726477560859051074416109379188945664257577968952492660640306110969658797516986377649765089476122334598748751824167551487000234226560753290771671128349161518373184695057880433187711390585637955085113923807308141745776471152679718934494379127681974969243276969639723957385150980068477530767757017908535876835212909600753192619818914450717860221365367222220302436753494989689836506769104899135569245398405590202280170085266991449281599837412540086552973593472704966638143931283583282482270075284781867813622470744563481157662368242994706151440985667216345041463627988403583176738669116658909868190137979742079900888908189599456450970053939217310762457112533395217628965348268599881218488942635335226128725856453485279742116829524514453206266120564438626517160408906375799323802797941354535084867817095504564207702606860402768333013404619312737970456195758303697593518126529885513927542621464765233183880434995407496413565504498331642797423972668985743671309104566383497976811181342808522408110612218273414999326989130136783944719777070233258436405953071876909083912531662397015708492704709666009140231669927367649112387119334415029082532579046051132998151561955612876520153632243611610980726589325567350607587610632400224334461025370823043135871313679716491689059042601381259978326246779096882335718438681840599750609416409593022797170419394605756290900403782467759528985557193974166182937798234873181864125502634065922979514785106862172851204571721734317370322663732344674101403912518091615784438573030018495640007748009127915508636469813244217335010774754002515053027020993781194240625925237269178880207677106785033563058928155579873646754909452175854732458305472682813757489753092891622063659751792008397964356923191327315603107936248254859121811221154981239591725846383741253945373770345562731611041396828395306350055808675220258872823654214207689004655008671459807649864495952569979674115274744090114421744501296513592980038251402140682605685556579921000616975306767440850061592681136118068187191515665776812287910598443734838139091402611105771201090404982542551861443708962118411157161168709085026719891134940912822210312860263450164839462654468215948294886065626858668792383575068848656899826789281492024591782177017600679677726273006185305461137303181420166840526156318756806586599729559316295468907135779188080100867856020012600374424773335157553905527942916570433384976380752430446685737696047178581771596007317188713527429629128215688767617440516700073056129046923187419468781443215286272296052184888744622241340713058535471792671511052578509283134719673807089721718817777681738598665078206859450153588976976046947962488743832672407172120396285896025330689019217529579488609364443654337996932324518303966794747524353102959036361117772076917319540765118323349180374812826453020596552113735041408468002922541716836393082736582299829380843142988025174194181118025988525011380422419366353609821043069805397180516250871986649610126462578014590176953108047264774917200560014376454127868032935663413816938983636426014402578676955996025151815429400326861971781619319340320418945450892158647862683896216163382558534516500828750019380359819367110039525743569039385200588828808381888221892233437947332882317306743187152752914143893438911996877464215817225705308020586712038023099834950692696482781463235180892390766197988093061417183664143279363423304530248703602246686923708669108243829814184043365607057787013249128501135816107387273999642888857448541057773761862225997753138905875843332603349182649494687158167459348567409232494277461250029017215644201436532143776168739329102821246588038041221578180131142144183243244806211852260089626932644978872804093713562610180518704483336611790831306008461057152619382278233873108642163936925048708178474945177411795898235550679819371748966704796624545502697534369896027334415234942621442642150324286413092663447640397531400077015062415074311576879306321355877997742642401535725408176464417011814113442294144045163586622706591245085776291689845573870083976893183841714532536334729774380750438378098624711094430143776266741831767950880766583184298478118573817182621975509553251093329610469772976201832554589851121215750871962829497441131936835358799980652942667062237745574611793792702899700555041750080999760319577884906253654594505272120358047104942574567964823350997243481429169703464835013270242065816053122306754079686197987954945949869037221688810238170602384047177136398418204581422997331467375723538061863426660909800351074582379009483933692821999099713775553163711967345420037686361398449389305519016873400438551550970950304969483322058439338035953878219346895526329907423834256604040581598127683639242619536723156306002471229216966466654470274736919127139206404866400003504094301410054669181893939460761630405614362279621364285968041649804257559814358342506860174094464777783096010864341529516601032920667581692542747144793501272818592162489245895869038080569448948591493128049537806204263417007526862711609867866235001014566604255284162077367403352058605109656405467080737121418645417788725020173844822018247979207651926265451377629021660458705389730367903989049311605635912464889116370721054794310736496732064053017484708008564064983342740275531076601657819413365315751803686019215919791080132702534800976804643262518241395620548839260815298983997020037007945340717621372907486541220042839921238511912075574455604858018288659053244152448229557461418056340799005610123218201450972052245160177828595585136150515781770535313400685708615073600732881749109503826714261059472852417638998094525055611070650331506805202353756338125346006070185567588867343733530934313840223103703973779368018243488019042437040240083179473694750862072695941443692603587046731052514148715100307701259285784814336189671262394829893965824214018269771020698741446908910019671419220908290685590091110652476350996164408674060741163514708206964575148653352261737655387951136994954482670428510260809609711829246359244625492339873565939555313053802450855160196389082994704755887191569228707622909215747831863405328864655933824079616441230433890185411903920199443127765049524968476048222050089289550185477840219475564326491986822154082401506585001914120791088366905114594623896375222460175534840141766997208295006005946471751447695625056218018360303965149564615076692686821755159671928574263917456835275320736471567519332630169268120486646628392715130542049714381958658108313795083037299398104793820411778121034289666912634742226847383793265229302561741337239397355629811781377123100982662232676606911762227312318396749717895577144103499904241797589273444931326024725826166751218638377704767727803582587430164995107117138169745340469962620716416745162056988408551258130865704142170050480022838393769446781729956344631058695336193610775887286156532920450689855219415947217847048834315410400113606059153722466085335104497087780020250017126632141409523248651171637047956013679307979542677034104338970298022678585345485527691195938537541920258701512927994822065223242464756612711270712752984068971103697611289984718782895213055151770711375311222523693519847491694149975742249474857502474851970671722796632062988887150049302166016448441383317683040990666091277638431920722537872900599744682767409522040779039168695499025227046679423385698713542756248740952095261695124985935516889893087028138244550149212073336001158831813856514146047572191235189091899257646093091657414418990809816918560948014239527219842696263030542334463430338488178405305619556515969018748198138765027055900187002512169394748905965583663799967927188867035228708150835540874062754182795254772055719298281633569535594430758715315704595971707148857482457093006031490523373163124850155665181214288606270696888331838994906132613102366304157282226612610248459865348167981024620057810867239632449568080320968154955187252548376452061524314747891155232164833481001200083698840003702803888710228213333188596273215413123670350380572965504684647336486682983549369357265126685462085770073147073878768763395868555989961452091554337763314751187815171197904281938140682976225335497086501373185466916997747137097725712789981096121356269401935292183106703772786471118622235116037270276336531008973652600870528122325512429898926622699819153343053763467198515126766280168064067507175441458195824206581141477260776255525808154168812608134808584277528326001255772814509191691355034041361919531209159841324688785703983598314069245336781792131246154881109641982587812656998034082643681018707443542858016862966592810203822531394005055695226765558511178099856980520306340876322486272978351255634471915724897680584446042477241972160869031359098850257091957112535929893269878052238098139006922367515704368270647390496720321747696856360152367155541650946719966546762986889765073686270893808898637770047482490742048116917839634560786386063423242717361735644488582692593071198222933683659691961536106467279653709669035748813407960053754409582924824764560629135226115284337880205722501982845787801402010831846672955786344228105573104727988058253563958361130181170072829499925286698837419633267576906476787181492678228782105621925975853890104395828266245652302824015536825005302376452759403827828535657276997267501404776725956591362680700297280902291836792231102142709494029098381627426758047027052860502310272997292343883382144115900598323738966847850058332610693551751071878676802584711834497146995540545563126969161364100541169981913453370898024783321275291307599283330640302877236717185875065650834553321155703427917154396119313324310662214939338039791028627398436037560496775295393875651553256107274544027925742163480428269243539687724270464230313963009718502070943597567188544627228771749384490738649796174872920929450396855714535361289914866512675674204682927676264977635629654802269634592461017785196322951404154871585037092640472346547245935419789963375611872709913481164233211226736958446180706241799404878080391323511702696832789913249765561159277350830627539339341695578419653402211827913134508639893508081444581910071424041125888152498180374488232533311501459192079751048652902745070773325282633826695004677706556264095221301571558320513738269830586418950906596391935070686434908154672091256385384249834759949404860013738787241136560681277914225433962195103417503552111276250575996743510374198500876339084422014603894914030625255374169748468030561963045508046766608159587611138876963033654395456766506270649469237946405098032637911685337144716421715844070520818937551568369313199530010045742178650542906417925917626692804686187775710978052280111459765407989150289040298927463899690748231987395584625441969042683175372430292132100775967778389157107006850565748014449645947982563230032314663995337018333461528494799449508951292990580116151640854859319291274586655988589652456459873229061609485484998809852669620044858111069843538731162374966662500611520382080326300571394328002781693390952731733639730486702406372767042349065241944058234970866771737346510907502062842355328853418639198332736668195869062464066080271179301965654255400873708438553261798697409405609255384011466106412735670915872610112243305055805207829566999786194761787507845131095467145092605514927473745903196970234871033601500306833110101460565211901278537975497769747986016891893811768574038870723464281362375208326189779387407945375936602369375478490483595274529640838277922393917855418140981015572074875544410075814445765393301575424693100883552625014321304040005457983105591729768333924512305436188115035101869566429826391549266302292253882891178887852351948890027043257492416822904525098547174807160765441911824119526924956122009576175049919694249952946328044099748266230402549641417166628542096187095073552789325875902575979041349658360562737942900237133573690598663617420847673367048376446850937905566933512332323756153027971222012499044737442119436016255871192165787137690668034067810834014917149277375870898607254231707373157271588292838915007741471712183035779064873365805252534354122743721730349214776117750645786641050273817218160924643081937289164028176608392899934336443465858212197187712983365905598761181799762075212450435835852299414261105478906229820541360695140673029899214216171867363622835535517105943896363233950397643448195781053209607832655103346614505698581924278724211162635651553372342597549535132271706455329328557191801084528021222803902394415195200029935517171768455191413331600817655176977470439743294997831251398310815502030339335066936751250420189581228970367364277657169271147079694296237846167774025614455661712659745772790569668868465164722135190707416199870281596125887090216359932691548817052180392664765226443519892286859227502395063959415115877263195663367329592890640035245541976481348399806473597314137334398837576442259512971538046180013163855994305953418986523682340970429328120276522136504798960796021490662185630294134752268747304133689551249768058591178852776604038886162908786253052373121636914516677536230773454513432519390337670764847020347115623941563122291458037675967392174337044991201699090931341059212666391210047424970462541568470639767973873873677811371068042250188252984689144048976429015608911177807443183817512000613119399300085447893646348628772255599021236638692476133936638970205080271860923942319181903989871196746425613253477906365387428618006657424850956804229944259178393571363964620303867068383760943961089597293704081909486476885111403271243440800843182437490590476952257329440486558758127681242889077414684815986046258379147037054681786484233630766236340996978185560850815096952638811681603365703396128785596615701877702819307959390507039863044293229466377301975758655710200582864924581254277780683693812654568633879346422224138094390979713580562505926827623952512112162091106528998848402898713625052290399022307192069490012608779300021836885549254272545752798325416096272957743738969060484276706258430736981228550180009887169851672420046921748146758921648944245187158520284302153128657124235613313538190661576661060667206557247407275841421513005422204993642891735787502929893694610430876313210126761744956584908289329346285955981985150628228348686736077018713491778433309849820056821649086081704745368425012221541132623502661224592628733113471149527350481736170843588581160272192835356989337949104995929207553938061680359478940293258374779278523573191395033969293969143329755333660254786942906889556072176397263885327500745580555559394269611771561147431151356302078167265391106549234292743942657607530034753265538049141176576204626123357025048617588631411771142262073313195146496126750927045217464737956803272087959165776638097001189508140180023529149483325964123411992286107449432108545766627323365488692948031572572122321361907305434267801321475448077814214584356773250096342011733668141928313291426685419332712568115794328766251592211173408098427147264257895523385300669845329421542596449566840328420522210991278417871444494386334244211406494589679599769276432065671220068196248057855853974229028860990234301082527916190094581258520951008502897738765546697540064277766716525448617461280086351646372129637696455327222256142622713332829195961622624000332111581853554813854716906103175256074202209621512509094060988118966130169237054860653665202229735953774078852803025284908616780232602433899453518344220978083430689736231653211848167815985279568583254743640426575159821065338885084027638238884814265287347791641572254635664846378331797635732790567827618934650586436902668955782620570241494439672368148220718632113235964600975231894137314713003812805057259718722508794817625607499810152726384051896829689655570488539507321798145259293530281968178375284340733423900911715921285748404900017311394642209164875842199449410324188234776853077068270744359703528441089638200611670803475793078307741756742069433254239707726905663179700968490984081553543918487440331374138756213221084654255876987923459388594441270294754533696904507563812132520381617466865760103812260068856633000491490899537510829060388823644695100638204944346736869592967270250818437940384621510788439736022352828445637980457557086059695466172158635089097063287045433597880411191442581827247404261847158871931197825029850648420013640923027108702624510941419315289175541820972205631622521348377774430695074255940392835135031188824175444588216252889872343993871125725756130514515807315739472770709829943305360247339803099968374423858889873628868932172217437879076703410630290670826337119020175041632657122980150796600346583945259652676751159129624582364072608140792709199013298224429422560960785697618653620932617109501923994790184495693994188475144164443911301309849141937227014279128683037789936164620422312874822000859172961631683993677830119547664440488315100930335945637139033935446297200906487445983720138116423867056152886715685622491441900476895985991688927803337504436626934241795792989652239119648815255801980039691579238134430614707244599275233714592954967449912201070688708733956826588614115602085004592191332319378303403763531750116634287215570205550329803127539914927923573023794694870458434745316987193376363940514341643772524162441838891972997775395007206292884089392791386846948827323011236457958527170796951970728218517876270778087616496747229946407053754858990941382296880765851393394311139956797068150632060816751550570062449377322558510881990431505131600162709934564705542991319718229367060212152468810870667500180529345483840446436452938197244834055815561935518123098450143046951521487009771799444625667547619318960150294471954636176402071422013866502479746266459572076990821068549598056816525768462245994981520062955913637029699013098954274002366070550928137177220370921538473141049028449965717833224104567444891506303155786366008610010909017337789858409009382194676526470323953071252859820971106275295916709894750311119129700405284526297197450557422807431165269778619239452887970021681452277867471129173304949035718456970844649403463824039176375527244858205300660993136084526425011594359969658106190710211169982482579337412141335308714021168048674053422390141411259970210127570415367823233153247987670675100964806704569806307085403791475371620969554675170327823163846135161123378326533098722450162625870559365205331323751532436701467270316314262407373305274409386631537026402443406733336854475691826734747729912012775366300099702906164288130296539604514039204312075573171613854980253064875095638122598942686195011728000420475045360166173187611398879395709534404785040488776549028186844683163755536630848167965562067346548240884824915944961984702458362864871921295977538533379871755585279579422286010491047125154873491156744615320067708133164711925381291755345506387628624786877540684094164943589354217429844535569777700865466498182590069083942877755520456920088924201459311590365653213090853543108193878526172246406012857863444188747627974414950869900549395235312122857020745688181751111798428163604169533492226585172884677075227362821935500097398885034551288755287796938909766500698680340687269727013663478202706860715536544655568637116348983274561912707226429546258699113548979255549113710487509354817115830800822760456616730409301581585334432096692202409914337286629909404087304760683542339349443242798039703886509224455987752860762187838243372722623944321031086567489283077147312363483850059778505434456010982637721325948158592109992245602390710010289931827287041478472979533562000726215349550657021411923738814365336144186926372292229587955072817890531639196331218132075024838845773773014249566509336652537659304610691743059544297228102228720514372382237542390696908496712268305062676144489264193904967932314201536427230595953914793222533824136650864151334459467290840321993342050350000848181608105063320338570363453170483365189085024747130013804275702171068155098518040609013094493312535366478392860530328698985302931498859208411621617389682370303944817641947262948615104267506355351670106743906263356185110413467743471564461450959449051904333896976504311860828739942683122525948466766435003680358871876187876704330297899051987390654173996736038650703184268314523463995160927098434369461055350952256054017022917729494373831515845405133801574904890652170501969530816424100127455753764041632971413398666723514209985535243528589127045664917933472300244629402658094882326137015769751415898788716126719854428158371974057577529202819234002789264079069571505303803460904971941592241000458310830446980028820506072308842036775774165614595823816180699949245478336457247510366175524338407781141840239730996931617388788076171035141274734126183793534563972594478270854832282376769970523502915598664495928871103723899579091129160526761502881919794885487331258645260752576931721160120567771626085614030836560383400911149647446165895767630067299845574468909831318657960549385252138914616776613461157760012098946994399749365301260222148841597414141758818752635926667888555005425259024938283558079777547641207631184631861898436054269296083056164197715898143629043913121537580150742280961241110145080195074638034270530470310089481049013804477260673180187477015037941567385627509167011063742311822566813184170698366199249237199929121644398558940233307426387006288353310996204215967773935841777705029968488909465827992202701805642426451986141872229457541476687277135933739486686331112945911376702823282781625778058232235935956370750384732018958581140418670008081625784671542446242635146997903509845966003184454353762164594518493641784314043167176365222546955773428048601827336142282875981923122645737825262635190279271567185123834272445464003255202378218547061568250835401264238245743711735597977017199632283864924229626131380743796909422373341259911136577035685846478540807356473339137220058053822907989172341892081761718788425999430849929877531297271039087459025838077847947392794820153312068889102476708391159208910280994950805876381612808887509358812267544411555537621648610620044729353689332394672811732227974636666008907351064497898493495570938023946620867140482285038825022020124987272345867599555733043694144186292164878021171560113258222758971562625520146705634848471311202718209992391908773087729116069553094030312394388199171661583102158753633499622154089093525319940204590048442145299691883875094386927584099962700621104885448788218289709384895721271301562632010444850584086789388643397899099495696210303047633460012220739232513821426874951149037989389930444039910032934635923641753559379570848805840388277925331999309348914163247291965546058573632222944254266321836373429257034443606472929027299653474619257771676597253077483912962197863938807068784871853023881167029416843098574782250481235458601292647194188705794606882961445173267525962653960516104854316139374841030487224957855895598900912147986012269323457921245074340054331461052197131303923138298204582019160455114014276014205607852779898525716116983849387092680059107028718189116876253289903101820191816602872788613286810339966846167657558539142614086064548159808703562437213366220033003647303707489958664673383115321507078081061552735319328796256829980539143934494547078436647501968677051102591629136290965271719775441345093356716013102607537824183252559417748937438898507874574669462769218782121683353465269585071362268994789995745238518565490057602689982920096864532228142741587106865684527028047936410176482558327939661615174122128324257033789872662538778960757471231389294722391978645766853427909232516569997977266768118121696187364720261118648281355149525575081625592395520813776407156123619424100152673287503329155014372789623308169613828112279918080171838636094450523165625025410945476409580230101457122753372153867804515859356404131125727318198446815655965619720105922079848442776021500764274217107556182827676734930673109235752970683006756575797419544914382860974916128696232497140590737301184730869822872688094406373713696948070209865006279161308209032503236532656214486059183979881172945451646283352951284944276941401968056453956696640395164214187191082836248725192062553978918744928729362898119901288265775462097860065978326128559367218796611687817832979111297247431591027295991072566053763545601596521430326689126726315429279783031460022870586700541903258368409481608688345844618346377849837894705678412305011930813731948820903074219754035879514659986743900522426639212492689660013220221319921208871829584646103262569809345925014807490812684839201942075170065377932779773003600096017187237845198022859420927246890968149771541519033309608619401168368389661631325454116580397972826923617326638055831940299284565699700721074174938435987060747399321146890881983651581584254564934348810658647009222987528063822826476884743111763236056555420156512466969102014302050357654707145512608669388268158663437865300284574459652181727682911015840727698294086800920782814908158305828353428995741216677094220835374521301537510641964497022148879195788018850295919679150778217186589616842454381801518923370166019409270768940126263228277221629100490311533512914343218437174233732992229952071900470994002528266618960822273282772573301917586206886183436269722493215196279286915272253144594869720757693948779168355525543220849327447031118714660655407001158827621069974042074138659462896165295858069589115635516433303293207983097872474412407106249351474473664951385413792047094663497173716810463110377654531173689951505353170672202803291278597335199512115370063425088564534943447563661620827308774468881463959966735420246202645796119661057111025525535643201605352161101647293029831857499237174916336054557769387025480901434037153950804473885474323861147649721361243072220303047449350580129111388325333563221771336727547168291188697792655806462928671571340961345821927105150263670673136870550155359482446287437183133553450395919119238550429513565742123077605052443125012306995362445930477264089760309304653624241725134526980018636038370765333640811694567473412627344552264588121716001730215069264171787121578036287641249481782785059982377935499940640063572416972288633213334145703953489566212958252155668897174284620474491905357162582628800525796667386847008445866934315290484753453878859988128997457240011753740368490625259418822709466435747933568581991539490103467209792644878596358768885612351281290208419124652823940547648556919648880679048800045238418369077355500362509305918298176530055728776387042620060745225489627593332602030548519960886119309947195728038188094154780458585252297195739041991853807690578034464296954163825269218035807723503355574751121652883314377922946947539889005969306229203789429892081391961135953452061581507125813025309807639929962265509943741563445004845706475237236918152555698840129136260979996819084770134292680788187286341501719365813444047703076818704958756397393414133841513499619313910033426062338606442687096941582630512734025983024870014266146222040745108597708064912436682377866135867607032349978689995763809323957332227701211243120274412494782702925204488448695988037762472148230358087929156460774082703561067113017411351973080685156341822075862804377936968936230656350221163934793974869203863799043746712204278856199620764138663432771444295155929165611273340385272065572865857022495224450922618135686785765452674849617874674416911824032310649567910843663861932502631387867918202219099561337856876378646562292719306545069515735407282103285114663209929794665915381391784571603353427284520565045116070642167178060390189041482950116788821075768795599614836985454104262571192706698479950581534943167150402333723131788596363196884885262972056674597877771985695487427358768222888729830905149344293320622072555424516530132520076948966805479170041668729581342666990372740210435741749271744804794684005394662498403132004670861608638154287858551882157539830002298302682036143043874275205524470638261636705385156033918452723059614572163027204032277779903105838529380882478223854535396860986355071241017683285640145272133580197347350730630824320965700939260001317533664345233950556144489159869417147641630504352348201909781566225713091632781099231192586297522944152068520972888205404904696016020000926942704618363363538820744523352163265037593907754329437583802701573100796636210191193648063729507493009576381399831475729898479388383098888229212304680526413245698784274560458554416479267824895752639651011342832965713021982110714816862584506182884646645909441711729665335355240669995267326969576162819649328670102146848373387941291861795401543077746696508363170216318334311306585319322167059487170059018546954235245205383641138350140414354930613200242119306270219850137576174077880460698795731196129208597862486852778793108749867918105336236875373553044673612819303871510197486006486814916947102541745799549633606555234717087372649890090607005757180126789727822073088923086846034429459557973923495931700909314330212904065498984666924624895371859235079061965613867808963788820990085665020792075726198058328320986933627253846370407456971244119120403792847259168962776323099035082991384779634686878589118276103345535984207894028374144060230471097443953189758450325495845830684370905570458370974551918576728183201189136052355929505384621773409511412673903669861236490756426869800634099844371866818737681076109718429197131903800981498234923329758427623056994074583807716306331347167417147575500758466236112163245915221429071325142964541771513966092767437675176859298284400054644431580400834289325543109259003972135842067957797838271916856100892798257279100670456617165725530228193054274480744847536282345556259879821598271858241468933222486672013071388490811253175926347983245784261907505489760030074042842428740274689506957977664033966217566042340520246985346328248525664495105765270985086919500009635068498201786407155594433315062727406417461003197644022249926639475330754407317012716727273281935625253408475959548696844389338023244043724874380862615919339722982573161983230029270867464375101133449143251045871192640132333799764944302915038590959382126478509610342556835776781507637247294899090294379289447837659912000693903639939638254747658991052954710036481205253380383920394028225430394763598863119415478081080702219173243785505408083235335390371086496611497768525607592935220971014128654046196892868692110557074202389268374089741222154449438707197152373242277034717812929137862384586101740467040255848287271628971959884335441813112993320061420202789770902084236681623391498083366402851605958882820472496980382779458438270942688250097916579298826443688567587134117941397337635324286006276185749192474561445895622229523716169659290248148301791719908455402119129217521168857902642099795302384365689047986431197032414530581956871251106825081359415043511606165151306197412047151147573133790831676292816305318573490548699267398413527159721148527266182403195883750939485044753875015584623371449296426755933270913804440162712771656307264035221279150232653703547002212764747683132144561847523824065898194955791745079855535333417659489207379233642149134353095018263829456515402461119316374934095135958603601552931164750493670017189132152474849647625350480842138640534436808539841615939875821305623795987973804558213172119108522568105308655372681574954441278963634293158660493940993438431276283983576362623983317104050196748865442490088075516867425816319955164202624926847319275522779345788256872955851244879312179941922367807054181860645663344847839802803280263288700108620068646692991070317340101407430668222031652223620928631003256236052746901387206135632649619420002113219018795900331949847111263347171637074146004685163687472723676636731683095692867443321573418721804759426735775053596169251054886585552470612210822563942071155359646039597305685320285849426926829411989243780619037184965360863537061627183310204443932306552153968422030803491613537848952855829911283128443226821035241180027578207502166375491978751277781371635436006700658751289481504408336927297678034892385091709984688256443805503682044825614967486442500889443501194667035405459551051687097591963886961927668833541095227831376256775696878784964204717556509848437893653043894097627732245329743217315163348228786041403515819534231788401124366806694601705761224667362609025474698544543941107806520842923707730529446970062987722214555628660631671668054390151413632884118316992587373003948176210516207341861054510179725404528574163318499324077502893537989445629701886269593235790778256204296390135690699562346383159218419959112811767417150039188129209996385461280137208640049823032231218174780000491665483528679834505072770168522079398429110254327820337117527302562587248460769597234771400638817540929025811757377456853631042425797347050429673660975074907167540193728214108249736414971034552025013267878793292469325261673027864319685204133311828051669180484411939930240916026694086719351084669489438613671402417801196415045889235347988631761932618730822612425835317307547220174039983206830381517035423052399233104972205089832749472180991982828624212467052625453934841378153648378609566727158977396069296046792486145342764050864013158382242412545789926929862598404925299304486842583892239653328800541804759934610700344051167349825700248776473670527635540587673367213700937804895866359688490484796629426155237633524022213821992612132054047689206789211838896615293460427181319911464129052714798815469414943871716815991410022841205656465126099990024233817438496401316278397622388089450409403364495825065248794096032540364850351594287883083832843078696885176594432317166415025682572118764535381087882984678630092957703337549145294862164072660684123442882955437879891842179255956309135532447322769885733488183993782470420186921301612266316424848190331936242772561489117312043657325534747917076950635316588146440731709763878236972413839634028515456636818709497153184378207879458109313827232704532566697393509683886621199177954135381208458499391137011494864166292324114541073392953439890363280042195046480467718888641105545618207839467307756399765470822060861710544922621344851726573555909394416434555339050212025595490923192219717929864663654621900268162135961322143023405437452503218054540288565888520692683227142555332235544918883771639652293526073408234368114026248059101971996781597320595849572309552303741047916477331507816155601959983684967292491208788848125761713404328170136057664622661253220843945399764221831169484226513171573854929021812575438020303741203580392051419420932028698352842363904803237666721289793019024195510329898612725794242885694249835954110295378926304876736409103342404103687875326081814229138430179200118991297999458988353389074552776107467088373295361289684103169964885469534960837239636520704296991619353397037620517203105478440691730832967156821176259789238736085904110451183331871067224850589098938408349854337681837825837642776314084157917205809616531456158538193244116029034021603219955236103205937360962935414078868641224030343978267607118359032039328599953444138027414585399032924331386178269656498347727770282277736043762579166362870221360234853190780722185232874804616733830207254154961280158845150400293130771759651898173533917411484712192807468896422451096272353763288744744763869538517403657522617955958874171638838913087079001345064900016282207927512670278326998146537997009559292456719013692769853197754619703784190610729123844560037086459887604412735193255950269033273772307630642630969816855166274469939593835236352569265426265100636160547348143277626666308866067745470933285990784162180103580348308504451334583037222673929458835593611885366563504822277717777808892413818654865361969429454561847917179034911079784628994264727440654701588443915345857157487249653869190191687740972203133545714215238319535311184783596383342665178876495067480466756431079318716924480758994399504420215561785996456245713742018794593244959724367823323331435032924582367464591902756542800968300600982868935104947061629507470161439282313987698220839430215125929836190688185472322598493973293981647676974779987549094067990668172334118275329493037932429451739967152102270338683431430434017491469619989886518208419874729788992171998143995816003837419185961748832233733994888297707531796468552777097594855739043920025232344171184432308289721033287513632169786420510940100866504264095365571119125457500993653800430752432544548438169700528117753274093703585923973801329824433143551953687749060225387157921091056317997042053883502838124811465713659277801328716573899931878707290729426941941473847916992084407630241125893330161802059992889238727902166738805153459025108473848793686757628693054297553011356514772728771914301807710617722110799443908764963224689482669531165695601179243618985231101631839263101514328205785504243938697248445546829615830311272500234779701014809628034283873174865391478967531055062569831312313647129741007159175845159017209703128396426754272217312082197744410081959703757617664836955893205173700222923344289088192065472121225566203643857127229299853980734792287588859571164275205023053701761248945956213684847273179156184696808224205509367917202074308734312932262626349660218887912291752269964894374060379832981080271168069528459127667373737861265042331909695449784416989473035843914740070351127917591974059879443126326594439375812536445986914896600366039995865594789917617479087340282681081967866790023341697676008711042939650352136096737189982834644893804167095128466174011023535778495643372213002864700865372091444673659431631842658233189631650867909886471673343992334679180650166168227874167309960176565515329925793133334524291884465550060274657113926798091268337006338571573104075349460521489547235605352507986648820258037026214387068116012756774828816675736407287684051963722807362895985151502357178290377670323790272883280003422050651161516669663817225465455073020254095131802671588470769862567337569621667273426450031162382956469623134988545074123575288109685069508782791433905859677430590111003393914644434205633942132095913312860340167077322115865908316926693895844049165864083795060348962855578007080266909117344738467678611253608702859672677610950039091568420867637841669144016569552989049911266486782159595752227640611553749592173073100888150064656050642962874508883457915041151087675077329384488247106833227131336630760403056198750635494044760647085797163548073047760335117812436727942275301477144646208660311719354387184947285896512175887498687414324946366556445512585103150136876931388423492731076735931952178340231736833244482972978944026842606665359868365399210986196746957929571531972380237453787993569289781907966694302324927299814139268976799158768113426974030965180970495396131548934394390197917062980946419568536260837850497160806485333724601432896097719495166266564971716985329902728441957229752921184029562789953021683162284186311353959890849851989105102979951367810923555470148716172112111827995703645188254990057962399134879325753386942405590179213126877282599669898634165000623376237549862379161818207265779582012052450009147861779932924376588334087642677895555850961894969921333938458231507681335922247423440294212793910729423960075473057400538357169355783056629606956877206343091840180780550778638932036354918090301793660969016523228139112179704154699979792937761784936055292597911866283185193984081032010411623896967829880702124866772357211030353123682233610607518996837127057883109436839835758966815888255798309502890763086816046258622229655495313765756012013322183840140482371335141210834445518300426447974331335244263901165101278608695221301936468134063704199644104111883289946852210568852830469260983570415509836355441325191550231358023055311292767355724498033289005057678896915454862798353578534646805832693524378345564492706216554511986880219564809708803893508890976467955268072784419468186085474397819990971366923419193302530271527713822541176026587217512786270767448459933194645603603424874895999637009114586916714529889983917075255561489300513103524141193017960870240434009465087486893411676822424581576077722474942289842994699857933978175889382963335990095276815047689076059678517462276725915632971263059353200101160661735758845848776176641173670782894367933365521215444877726805804947254363735417090509046832114411349520724212667529665342099269699994202486615403039084208017389132058026010216278385668263247329587975936854163840387992717250477266771598587728525142930181871341713229158690007064114437518926494488331101579791445030281783001693574484978961193056031556690525085418320721986952775169641314126034646196819030973185375163631631064600946279319232269437764199114094067946568199903653994754781307704037266241995623601826995139298338139074758611251934844687741429587209914283604829042330719657081622372251474607056013114916851142835664405058319556191266509934602143994278211700662447557769366221962153779536845201429413386891591778184119688134274616428179621763384479358578532621216145221890203675988493467066494903456889374683126805593098260931303573648395121213145867715396833985967478978880284046041318026104983159807009598976527984315900429606830843548174332542011813084993436880635100787609091545378832521612231287874032139460803545434761593632619447688025097118185572208168309354230513874827060078933071985729008481729667887178400159889340159767428593497365936553214324189672674779889627457807592745557495141573755172109459467835713373997541508199470109599403080502459643475222035735270004068319714152286706672214426392215168022715969105056469294147836851321358108822824937305357560664918734859370132891771248931678645871034814160240396256226297727694007760758830619831625960068446945016959524283406703880369426194052246674113831552358610491610660259957722903083975406522311623529344260012531158138638315937612286259927669663537831557224658753357590542096749498610841461462107833209794297314242129075495814429869677293434205617948868004257182215279441681134644757125022517893676329531494765635244271206680492302879615627227703754233738415535669500062455863780068573890919392788233359484722442137637007464432909701737968489945974592715769163376359459770133593483894187371192777978859187398411358347958256613097954954409551361288534573611105829464000499175548608168022578507700387469178600887707337804707905764143456703653402183942353128920635713740621388221740933514262809952808611394989724506433328243940771821730429258592055686834127821873642063147876678708065427924918640534265925347989630160980116177315058900992847848053769198096610649307493056733501376639238261270947133877266263925662008276537950108154774107835052301882529757978739521508138103997269182826201456470725831076073875918890179355739206827307259482908687387102714323270111633502303531738965505562598122116238508723674302723310816723294530375259241402813016328954929109169832904119023309404463716343244421471987641193654595484367490841215320243451645291798321882774310031459791764326374756976917813842720105653544185631881304811295783980347346492073411855360958603587160694856906940209968299529350587842638648705341152452787831740777607853451055507640480296599214897212862899164007488503743969049043379563198449398194506702991559485498410757127419814265550974423196702666243786632960880001471144187228037776901548036706120308786449960129898161920393304308754414652116951988245181113340367947687335505094234824448592656779267434391782894850079234603854159314522703110272886425738241635840348286501307174837417742718795225693573676019303529858995565642416492431308254167353837412981856183598044482901623102671990851425752644663323466763294616935486853393426346148241110391893493359821988712855256665023394039776826502958734128627730080759000375514240291577207446303518875069347650864714786656468394565150523250353467616443216281688988594341697095829394207174313583222858888190458078478832869264421933066905760215695643395362098644281272421851567983556410672156833303010127852252705946730629718427851899566502237040528510003166937429866545230961036752789655893995667040543955310680685082072275346731484180219876432665861707602295570423555498923897783908493019459176810330854965212969026055083520584956504251037792126853058014177635152572069289209895142163614773997665817650287062200107336110935162094193054072257555492378549026263880582717444493733729297533111667737055810620548704896561815324625384858406055266486164131403845998009546038242102371428518810797024639758268321546599002916009892319135992331334509224455056959133082715406031545478435275976228130468953918268074094482882539743666424994161925213874602176262496720517045401098433085835255052678615269776653067700611736372910018494074782768999699646888499213780726959776007797288202287793957380387479857079892627842274718574742748999526376778777748148970200147105746980146770450787499704225714444605350128255808409020607131498146066883786583620696156916277294403802835929925783336096959111388870709143158232649180861648313233171217181239148530886740622720079245222724217282162088577365965524818045126510536676889557515599845014805638106203078113938625152543948427636452890993416762169678907601929028550128836940801879327280506935077593219798882984366247782470402787966915922710808849369102404590760570520376205820826376298176769974549964106589425805599736509755727737400181017110353916396933465684175575800223358522252915802661190455235266237680181632677402403491366381324724406037515978855805066812167574119871317619081090392677448486076882469620617555060723231023449191595163448177177531016775868993609239653439189662235799589756916500686701214995830938990533611636739175394703690087628450059761985638053715682828830386002972358373058692751250881606560573060345437417855915570548690025446885872275633165715401082194709483954809732378216585814703963041588433219279411856638695768428667798337510513435836139804602891157323263437270711874311310332193317711984511481241318806062839221902408923734215528818547018394926680260108773338271534528297704820117703898156889734383234688910821152966253746292331827832059683814432215705545093819876423864456776074922180255403322963104675149001409566398991258330304412493020410763465169408123562998295662627871301159560384134367344801178957061743010147707518257158379906128881972554141773474313438818932232705954808568193351760986386405267761823900324082903955994046319286444350336898881821624268901168663733407503570177826282273537093161752509782642661312081732629952622395226065522748811501598328071893995159543162744633010709831566495047769710159475802152251843043110942853651575440836221584781511407534888821654563264139258124073565081040296914299312872232996114044188967641324199390219602890351094077861669232324385703371159540668096957160348170852870030227568960881848722864598186520352145831017079772859513682349998987372369891597068547305614341077092887629409100055618741364611014939526217707898627856415016567212178559419113122665193672935013095618469793641250186587109021963570043815910947350420341758219338260783221893373690792935877922069949992954913089381223444669620305981315461386796666532608681471165079102896722302451884679984779647234079658364257990941781381339552630233246969159859712223534479114839717970923283342153530264342309102118887923341840818678659795398529456778997053125160457287669768518610247598844137983172991862454730453090946116569602474179587799647485368875652680456840213909316272949083474793000942695017652247168850086767539578086860698102908765815762899088485587125473440268251115591822748083385641087241684264626480931703966602474069554686192597613984519281186838497969393728194051663568065553320915180958756288579693583058977631600821377683537687515486040187172431410468014039888270015598847322295472240506580735381735445800527484342916243162836762155819097483886200450723954191080311629747421931140519230578219875429702368997196951689277705678319528369282239981722141488836405466109481125932710410025964358376618380378964592534005417006386649863419281885803680638049638153243728120438707721401860884833231735036254551138750193276304768993365154338217030260436859250212177142994316881714871365811073331701520732595807841526651041865704372777087977040864420439832143022815350441831349843180509389820915337314574157292535988385305017555620412131901849120004350365869414541701477801501935153700488940363682169983426598012194114410733524722100097211025567501750132765503958830398421784817144820801224961088131584722686777448632969733725969270273559219446554402018930053318503927860355657363557929628999885645564406817888925200621371498296864523960188454614809170377841499439003801177120847716201437517083365928366628047565698832765883867145494158893045176285091008436424924632849835425021798463609165327927347765503248076288680625527948947988659085236835673745580973877218702610670506818480330907606557590691321424859366483774467643832359647227162301041414620469737140983373560144202539549138548059416858199104543395178803589317804595151634697042685936850134391844024320364119896935506133041446236372064979232345953637533511489907399859447933435113382553403515474980261183951722699684989531534045569243433440733275500671927204054564712912050064532994586974283279401497942193531103089846382229528708329241770741265446649345933348500361991232620063438443682009413889653027074368679143150854743641688184057031007280949913287496136436484833652116302125803003714708319053092112168514170150306188778343112854224459783191197356059211773487041852677103354128555335262618789550169324114895164397617968074216055128632418641479425214997462520622943319701654837009350149679569738122938149192019390286725949635744467209356744225112306872688673987696131832690449270493181513268966596467195130417145194533781645772219498385402519473384143832418571495162663397731429670737018080806465997654877108440451973810201176867581566402214602507508557425406503433901550331644281445597935065461014226107907660401705502878671565440513236254107779280958766389594304666903599294034141152319787755339493735145325155297113771388591906906336510953549970625045452218719832445514642772546353060614928350226047792588939228249373518118826075402448525298923955939537143891788982712553781394670627835330486511228514119976588090988847878886231574723339521020749856684066192286076166907263532157853475527674620054659578156203831053909569182298199558540246439649618815722667630169488543982565030177380899365413317199720716880538402326119490974799270221664682597757220361676837150346234596703534167886277558925853084102215310674273780947068277451325112439494779561463923548731635795841217817093652568020217082711685105630180866695017271467844513898844869412501520427819755951496673083331082416081680944792818903470643860025308814970388546336704552259876023619580065939377896878542386357914128881519719743620168987866436721192833535893072937483237725316811547135276609922299339447414300515551578160797827556095720463104416482568188939290518146920719292397140525712308489824348891585678468287588927242437811486979932839815968566746580438810031216854488245878141570676609252710543658761053778560551926075455801196013181264670026942149491780682057713184157534597166221552829135158875414572258270691116184649376917313736593699227115451740979033334677392095415490757874745272493951149765577096407706811207576524511268341618552207587856973886155410952086444011810932031852004486947049543232075070147149698401998140155474093972188477578446351528392580037624763991388048625830345912319727486321279740341762378854291500453856814971817882740259908885725070563216619229602223308004015355030465676747134391468134751240440824338814315439092460375697529829293083349040394785647395259820326679303971576220273898245019293568651067021596880201454583076081318339025224211240323492837246001730256881507977132133673576338355532510047531996768856434731186095122712914650845552355696105751480833137416334943055000676072273206122935972040734956345136512013197120808230190595162131136492962418128786643955536013500483253856316760406755300866466220658104507234293489392357117371478471397794240664287320654219482357885797864036236446483143436997815663976308945822853340305525789483945557130612307665066962991359861939038437205502041078791507805351794626029877029693404177668036354228857449936722941660307665528792387491984256174998471516575190894819011710678010972496981081820038972446550726177612582683702475111700210021143647950009280558437413271852489962516562504380132158936090694464915254791429347619537719066041586764551637785178601848065557887819605408361140601557229520942131615660138768650717351815508942707188647099275529210250186813063001457224557581887831451858333843516593620733289818454165014212722685804658551179998233348211619691555199347440642645737865547669031154574923375193246041857389580199423409872822631848925967500006302309425036336236047317951926447649288192674933389649069715917120690165444763055365515566081221751152918637057650048344152939578060950639702034613246962520857188130074970279440110695092082578891810524104322647309634124618922751028327243695381676682591973990063289368971756601886264965849618690113107489634519128540863289212727591322621815803011772059380137765417173572260870668197003127616621490661783066444910300375150227989009420959698919395273177033661344982058896284430093476086674032865063352135587637777999109935093122170402527634630681978632959943751849616260949876584135445592045225961570322161182615617196022031408379752362920105993086696544600833493300464523902522780183049632825753743687577376386583842621750769772518557113322737733650778661228753943151824909941055370043417527930806872175926272750784534291207302811335266027035618073249339769993941123674679552717003260389310922491505362961619347352262072814501638398747293008109559441439117246310184846829384728086949042823438964425715079902886288978014000457678162046237848048770267064241118851348571884778292679507739076807518656556322020672173810852887439352204994976155998873720236416803993444650704773430029498215653351276253003621670251143486531781119865023428531017845070897580806281989154575653149093551226778120174436048973135405312692691731871489774142175879112839716061608293192809091448928646278800780041209788676451142872350286612333404697863687023331845030673857061219773601207189220307471703171616199989138510549304521862065434000758199940465081622458246936092632967753611283359646089228260760642684646108664984113918098858047718894359828563457410637599684648807425499698932866210747763355977479597542575355856758320086527918007837080159876924613129886903407054374367809835384770816326400337083229137793427158658105258612051227157671658401794241669183219018408994495678525798512955136461943049659687675009048196083515749021257173380433537372071836564982003633261267576627691295016629662900128777852290192384221478005158176312284262341820219701347689803736472401505013508603391092419984919102543910490163251019452535733759387604452952105530237810705340851204028002983131148839192841207972828635856012800165311243767779627216173355771779119742885253428205792227436644499476874342028102324241485784104352176620016816898579532434263806734809823692056237804120656138919528187476775589823132249580824107056787443928440926188645979397512223080447963180192788530798753189786000874509359879262655178948388354217422460447645912408347302069106256901896351953167750329268562071326774424200756986245769067797265808019629732422997451132416443805727052319442028728986166215835999657973156838817251573883565251093533251345544345807173134082763948034123840292877307541529676709760614012490118002904764526425542485804844953820584923202948150447799086926787928593737676452723195718818317797175738138635781873206411510959300840128287132637814917349738071049062584259430010883805888179099979359150168901239976197779665959941476308204091291328808592916968659347753687891121931589368058084429614234350719355387636801069392735039837343141520661833754170872548589911877281915053914419324725758050104131560437598183572216660056297112493337061199993228431763434847603730015170580459798795858624615392367205636026014987104706033632933448050464872315562131662049237139778834615458471235679802300428785265727817943769139131687675863635414295785570616820959625884832925345239660356275784481500283656819494702233171382696543687734322000408367524249136491158818923837583064768577678209997766222666906379074711844616597359609298038714992873258412451458441637310151374130980205447788332258367475261639881398705074777445678609987275522860731300508450256166670194782484439248644809195318747640554540156119512879031543632023376037296210335054505916094338915261098407381597016439476329374835837695299023139261332594443296807673321912096424140430454596952186525911455067707934245227326427372603934866464570324131037381394418256865741903257677541861820839472347689895105066976926528413434657013500051473872486136376831776173237094707660363424717164621133479472009400551275804689351610146311163748649827288564126160384777844714428201632277223312678439388853537097008758589377819032540496328870317639097427829047329051045006864395768365982426333931809685119556548210720412067953503103945092054159890046853152837546851154200920155035579282700034114527439991075952768046709046565647357410397232684704711963862469511414196978538298107045849524993808201893265304447595526236698320062122510704742265381936570460582753819134857113050502514503815228591797280691336601054544542395388725850006427850408955610788533156499390486256871640267079098700566100042594385848120946933295240144470950749249477828583941031649380856208267030746292341807704438823299757196805652541356653660044258190246817865349163549229107181985541893146304412778778335411428559873132058625199822129225906654710566536548662003882994543400909817553051911444871075448605851966136184633789731036739916517611582628501193030599577547459321402363393096846664369021131316699849033107261835895544162625139824420060989838759637171129295936983467370821485561370887111983750884800377988624068875981105384084104143790439387081709442783664800169357661947242474680573076709583972525290042377189207311813175904061638144863632009400628032464812939028482332597858785677158407177479802468506031353491903049501471988420343844106501232104569425077115798930589009134083657541094266727568014405526119869531123142836542071067068323442682851318397564671422087548956062676935550286589521176594938568212712859619749727080178655424718785773478697991457238091634825413611993231261578905089695382331227702532404363990204174994238704696342926267633833243404892447921982865350794836180552099167409336332126325064620351967807693011584188572685399678714552374517654404310940558619152921035469399708074342029060707434308659037786203762442691030132731003025089210788158469753304848412485925567943848450201443478869048098017176866105085856140781130983343159551232942766030360817914550430845733116001294659953380077789095512335850365108808358509108848570340780979442483069888436578844487832800042771053356079266204579804605818868515599690216926406551326100144562933148608418143532799214895075426805078627575912902809774103951793649906744210322193007413564087303806922894836336154469335752018803917382407715122460732885284030066092115861477662660632430240741522184084892599859256578934993078082428183831034274071940987187413795561630558260799784685156540232808557333329749534146574304838472069323216013879318519225855882641428022594701275627006606729514919229458558689250367651982372441676115520484180775983772132688557701087042381308169168091448606859702224873484125054702427547719864328557527777337480757711566123947529874671185708969728043057042817126082597046807321590862071706435065341845929610052497578665087116270243471456637213236447194465974154287541869493348970168531887752432577842126481068419939860764416572616429413122552109755394269673119609172378353241736960618480564223024528524534662079196179108873638780384294001677165303433463434148700761118316349269014530512452449882493493105307995853841179828681088730761985961764734148092381859396306054925628959746615804231247056392998762984945770255082920381206916227892509923811306910395373142437282012187958503205065164300833709416369539095100023378052409563978964301245041155218182541840310968674952859045437134224068312457599726483576117935059293750478318261315627227054050958631209183693558165843386536582282656769793458848521826198633747670923480061260361120822959014318124545135146568542526389596951149313827437795072349451978318937506887798537595976969030681441440898902878047248686006573954302199654072898534990617406278070569100248056480149987213477921575172904136457812672991244897183312575603790570484871603644278691069124370786574194696885408827513283548366701354168827442534333636396251895968142734252399143669838315277010562933697716257563682172438136467062938900997052326827425296950514834977227848309396064006322559142784805386171562284799500830257166592912520401839490574136992535174811645265551715913370810883007375194151364812304180688893953100470532104404584666878799813208149568696015886067640182969636926409470918522248584613458175904732604154462688788037856484316982445101041213390708878579312632550517349987019618626131052725527814903317924338262972179248218960572441924309132193741252911546054588189113649198187528721236231577750089056823107378949707588020239111452065880281349351035609552808028450512356642821275922414599033359580694236042611337007508478490785180060711771531802443989062857645143462008685176476674715268971981079498532087728952749142480656606795500149034964757255454805883653644801816878650654147584107943462216472545876900124242570696747416352003744981063308568756916577183589355092393975430447537552829499860299541146274441529579055800972081777847159843645667942232730329368427016129062438614993533003624783990862109248826536230023799493854798724442229901972218416760430289029566088055356391392000637952890678636932831246256856105734636062549614662459672936056147047433097818190986989144439459255769599425948433055898635037276656427833936722955163977478704802547200934289170389128637252798100584963007294164257880562027736027076847376918088782850463993854931289421173151168513542340820999587496179640570090699770918478273415751332520239204878859366663166055331494806612522321565551451623277361857331442747739602101023954190333488175153071810537148568194732883632555714408326007914671403416120986193322945000403865672974291040476833821494693426871019192697315133985618238024486747355416396816423712441938779572323409524697178860786060888346216091920663546798963999025293503636002398661501969450454526656402408987341342441732152173809872626607661629920332858445371487047726178764047040805935165792253213837139225305268181001548251973402874900001162505963207854817307977900868959703492960746408311002034494613477993510821568558036091968955593749522862972416262721190411680487244714611067718797498377674503419207980217284842509512872491227671556871237400568819555404139765301590109370328579869696794281674387905470832127865417071128421413443043996859214014819326441478976921345690955007071024344921312368207944774452673666430351476663963555123547348365049181627245734397883392543144215151958343490925963654199687305728296787325448155562525906744097056429554604781631315088415365111742995277177622833072946591036796199999015538688755573009504901605614791880922947913145066530728485171043927185603152566042218724520817313801437009312214856727093606040402282914844981272782550773094242291857280071585559773723429185271499311079128632863845992730984786591767320911369486548627649947266008626550199454412429543137296178632455047461106153118998841625901523037179274402273239842690417417032085139342524550739624801792777411643520652615211848239580302954745445807904907918542130653324020698929346560788496640984195840086293076135699470158965686890207894566612452448653980035788443346219324329881856435642511475073626801966274746475950952415985276094475557453840880005790750722399311343315594621648754737345698850218041837527759789801769131485507120109668614053277794823088655914307311525856698765765378492232210642632146910171942344704700199218990448651519984634515741650968364054571513670770398258297364455306843948971950871340878620274234366293818786173224241960891112977190934186612722901894302486732340820879785168549077898256046621958011864249762769417412701579102185086302298247195003205334096621659309228128752216212315724348531924713776292067762683089751344920363784006928515410473367261257179381040625337380421186162942310647858243559824051155288551456286328021300104731364657985615682131599472477765650417676188140270540933559992748211743303682208905276165263484294463864698268093878446397025091625103019388809035631471430194890204490165413414857469661084124486996976274115440797751361246131344821831907948049652560603628284883709960478558911282467209682115994193744151329065246426259886031749618489881004892945100641988963283701223660831711858662788820615546011422480911753691098220102780672818489397426179631969614403654039482851815397734665188267177004481748621144586285281796196004693098190052705661193901897957370402357657338912721320013471431139853569807484302389826020554169353310753607410242286323132040221249938985275894791378486956257063024021794869577562446362695123013844567367769494975818573922062831423938353697614578755289812945647143959077313870695419428427782529660655707251747513704949532901594458145673380383736646753837496986073126036451584491335720314310164083820708498416136056182035698046046828141897364955159325884749650956294286680428419878051555491517027200512465251830730243158448545461669891118723985289411350041535916677530970176878350123335255613643646642492676883554500221277135279342264490667437023888847407082278276764993914020827580094248719208953691458171938880667860771018699985845640661236649779630257031416451378485093959348780541546301286641679479053632773073924245955531493911565576107497789609310178151784609849886160635112166556475719259554789868701183376676689536898950741125163903785177414459501994552403595238368505681441431155844782158777754574582516057505273280051952007550290429560938144586406523574989932397282477828405879416808688408281072475331749249504605913841191903461720053732856082772321279969994410508132396766914920120233664924800175347011725443633763037723173088939546800399720551977978824559848361855933566417147906940413299412086481845018285492097494030302051845957157983329384619693023534134741634176499666516706029963111955120973065935291400010727865709192653972658358689850407814420191635061454500864917988992919191730118447210298407127884192487157990867987123041136901545974071979165481539601866315278961464571578744274017687659247928248125871073254532951207274288312697419456353233269647855884967785202969098918154710238137515242586976890981774076139723032237996849912393800260077118521447330377587480328049905299329679646995862698151033702445936902208727677033134300581361076951407700436895134416820239115928239184381232954895107932289804086303951266057126114453085429340673190459629109592474954172972432301152025127134659342015803351012752499779412890113106200003511212782241388188402879499681510916056614121898790735818183590450575536977608802605616340038807143951378453464137497103175796478868444128978805612422962852997344521250338171574432673653416296505140295707759564274498262954790438395411053446402424089144552645262148789573760659337446403570520967864862073121644819015620876319916555636804552173136058266924519746099479872711885717857091993902585202914248759490741926342380479709870009165512852355778338671622743689153016879457162701836204679052498544322896371815256733265970316613741509871637970932526994593789078109633255192220017217957669903846594800480397658330856535751858657006952362429929946724126055529797518463165070380674725862500639495913348270219322468251300150112324889379450231561614237126512877487929158518214482714843364380672988264668469856374926938709873156056181989617510046926548269610418859818437468574086600660031223865442027614570395172264503788801465083526948519954629965556360820399147599102047258091513480631248826179490779397871567521137638919927579271217864861590448476657516555034428174426005934620891455521831151659642414780716033010808900152908511530539674266099304269981213635362918409732155317428797384206358678001902654928534182117531416692250637670491645276432454826323936556653338482599458771235049280574520771818607767874317806627149303062933319188321155636221823705595977033768022156215297635455557532907526152060001067044046691688766314536837625280772854713726666171082523800220777444483105878895738060982927942206474402787476767597306199000254644567785673548946779976576974598677612814402761935738239861627989300920811841622024468922617068444891188284248794796491758324843453776894753219887713393872824653615262814218103104000573959792401052712903571489192487403618303666286412824220373064405615890771505102217306267678506594360243671344712349294110219169876654760909803171209797718143077487852816537436324871855121654355259284477577099475242731475023953894278141431193995979649889822486278986164351274022171240147617511371650212610700946880814412231226389152757443511945836584825086009114650958703101085236721033395982782237697701601840452018786003605471028206098516131441812016049112130185249838055801808356943193004650789335437974250156789200217881535997050002310383766213504608874466629773068038654527367797092287080716271558090181517501572024053634976883683449059779015262214760413034957369716365208838464229909448914301684681618909462689374312742797624355427802403707682756446257944163354307017444584739560190194394038571327580040288226664932287817323464782252735114931762343222555527390646601352734694667839649589761920915744392293509523692495725761971226735408660585899699006336891007026860397294674941994652429939974511753324555391782941923811616807164120226258716284315882924762938604405177770652375875356380048340130478159533977479614188303618931540392372556998175469238779641083435760490264407493226754221997163148803119530466728717697943155393233856237760655911055334654936705983369109034070592520000708812980286753115164342694522929909672062496101231796023815796328518098522431177394456085304456394685691004245907735210734257584936779858585026838894495491656560678387029159389528873492844399695269071616202179215918843245893322207065602864352100261994506848800397221936208551746426357885234376979919574140658399399152388646639231724880103357864456339465004443725386030655725936307305932559426940229334224163944565476305878594470949561510752774993511624538414073348513247826715225778551041879064378681251792018889518075986723479290880674438270508639601430209127211966712890674317330031597666945237854311867450492305257079472289154799987918018713011750373510075789492249744241639075631879148456618654590194162618655112357697023529743388203419814307236981450134135306894400697980534779513940240752317153264389627265782069729298233461424835664321009796480356256713139427975101642232540148556603885450061829856417082452868050519802081679450937271207256309266743751308904023650886101923086594602750167739339291443546533515156341022878084685478927797629875547078286950299645577722570566888150311558060731710523491866582292303288421862463642942652603778759698162029173077092605913443843639696617999073589692388510413098918294787105196495708515111264204323888752990547787018568582997231517991586625653789577474611431192779853947822140381035554768024939927952989956511750430095264221416107160274996921929754456617673534466475733718211298719714427769325123669155024237884131513466819202158416674476715671241264972138947219931640454090733729626296521484795407479559676630418742367774816697249121421755226555756771259696185447947089226350809530714819068473272667509691543969736403792472739880673036577562392852019366680537339679742044197093204248533763166121311569120081145381455122050551015007278593809358364638362381834267630843537541927011609641090755915511742235146749421611634803299371538768923001112232130309468935042796173342162984121714889382875106659922115433829435621207525533647626670806868329479802013956755087148273371312749406645731376606204813195197145593318086386338496367272031697483030621389981512314485676355850161264862053993536513879344293586770467034857494195418798753829279860883981142075094046196951838957471283847688236894910823386490437506729641468073121971351986240526139558501793375483332423274103778479399272853160185543405477178086001890042001343908139208592301779766315728694576813121991431941514498558152007611085685764052610833406362167313273823179566276572886741228406120383177169973789939526532835570228011273180404688707069953790236662265433061115266447571466637006878645399549814738743921239571812651030941238917450217563889030256179639276007694104054711291581116382975743983363378657678573581059362789403381187009143065188214273704171139156222209028272244687761261875829518836420009362762268075071048550878570148700165897370104931002667309364645642835803917781661861513340570790556711255946180791289671028019620424761686304913836735298144690406228732898738623629546718644066476266891602942156112390590444535944895167888770284288606383895658974467237140391555444433448677514714241738950845754563923578610315991203336609169401413830291254467855090121269193019553363753605126740876969806277595552722998604615967699868758311141209574032060025170157028140318769515167098698590095628718020058727049165757866671407175919639659736769157725616172297662827554249838944222056671996853346833989126054622290143107190663561531770743430917009593086240319997394198445341365665750232583842388184098347831267577446357533622011853791062231647590717838127710368207395663753029389574465327247249965487020155660363188805212683632518819925088921803867004271171769957206165188764544392022850794904818203749522892749517812651592338724546079950523061728422407432667622841761136085676418962485175588223092140755625608425319758029669108037793361422726382490047024609903427567338968545888167646202441357806682752462339754938984955734728577684526311848354789480611249939181198078204615354960263929204379008652593640368900369665045091691398376867480738965404198785511049510409579790823923246949133777671436190423143478422823289353568366640085605834780376042223242601359603284057903565795092368422268718076299333086873173865709720417861395780823691637324085703581868984872023422360233620516326698563666082214881109753152386989512852446937948677517120645686883076974439023151596082141666954322243830697502294674574430623172277764441555062043668923741367524610946733668113860256244866922710498495019265949003543822068640292998919132773997793572481878806000990319866816535752230096530734439599314561544409129176061525319668186234625585666204353802106225654284356288657163795232056094815084374346856158150610039263942898331857370832153423955709112392134460994888195766820464260725266861079789802963815177502087795680011974587266502890845078984234830458527763940325214496376815144355267428070423201501068210655447506636414746451211113994690729244441011089556301559053857463609985616687297502616887585932882671743217631672028718055396133260275632962609083722750866234430212635537904922271036343223000150688853269190271135921182389967318809073614675427305593827605364220813194633850803718630079922920654745755893414853653946023063230432989678171962162394285520806774168072296463216763576717248623085820602349252200517137907132499269376205968921972896610148183285127134965185226274427111067363488111451181805982183601429197130713969045898906781543120820216297802137591203897602237518956509819335029805187334059561259488855482496048599105671164174766095346933586271684000878824372612791525214619394625224037134745856512565853304814328998047312087701391719451514383503722850824595339619920750329964926867990858417430515063860445137160831440174878854419065766696923320186400129144207005401100742812742461076447800591150415513493815627991544412915539150401238344504317893801860522348126969291878214593033256626931661341006287719607438637744598949281596395126293582012217719732584629001182498306081852742323273048703503298179080244587379008567320183993666580310052384932735446663914937774800286697100868627943914506230206537726333960616746256616278638422177725186872821474489939676342526607076202886979420264996695778680954258939130652639211745282985617530500303098251573263490929202751924404237817282392431632711676317260367549650005957482955311719412507938416292255467738370720807338280659837116299764003927395010708564897592901602524873736940392301218283685206148928717009055824930128443114418449732560987319610101038639402568689566646892153644313939362073023314302482159652694506950931437570455849795826369149699147394100617576315973938846545281970375294521826166215763352567543684446008796326654308538267312154346574698623336744323078638170851880447120596285131580570987513527696946811001800270711653294611230049599672653921651329712385896411240195142820345026262661395193163630079803491759836338358510396114249137389304036687355155058126867128171955919255322789799450881463921790316783187790661292759236741617203086755429138310758937221020715792353870550028442393781886287226739792466550261456178994764461312290227303959805425890396387415745430348982066285100997023934100833886297577371827857279590038692903330068718923631412120768990557132544363161106826269512835962528381944385601755355892072344824150481133768802817489162168209085516907857154434770712024531683901026236372439278996673817680497537446593884134186207628517190918852144382958427767827465882258638620757194795065707203719536964196635195104722159920604460040135098253265082759561955775374415174465237142525102802263903638897483415641412953633913139074129133292423638704387557415190824339922810595516322271325775149188151603746064810319745587168264168752163741222369360340787987856337706314210430925271340663351183767375801211108254019028252854257144487191330947489088011812305270739733742713409307917132674793494068330017440132616623897756175828856419073180769203145523232864853088374624802390232520253415179319175421919820237893620134870110321575791104303641153890364656142949867386594134025597463305489356679382358875256569497952628253453286097864100957539594425608943142998602346230246926085056738964381125138899910486139235571318562563637755774551250342978933602688033553587966489566963524361509965619899237832840421199345384977115138657325981584637253343678440024962616629195860607988724424642731065261788177175328173962367570951722173828380360120528184128028336118888868309346697064874458986007027342901908471839851192763475369756107181175532757223123224922487284506761453881986799496241739631962428497782640250349451746808314192114135847011388256655734638697412130135911007506732788382004671363037842912548882520539805265179275158188636425686618870080913743407669441205779653077313911877401865122922860187912979206419169533614129604282702162504608411900842179602424036215098317448746049613760803947263431469642159322490381663232603831817435436039680440068147689710766745248209223264536811581596520328498000332298489763227752204384660588418396666039545994938172844153487240668479912030059089556103981042873077888547350336667858374917793857360932789900944455619035648636528839510861297961673817574947017575713306991810100462750407976654453218997780805243402757029322669248253723340734908773078752185876296905747668109939202210825370383877910512068046741521404729083047162388811788384487320375130370307008742297222218789571565845790840991788259633880794256781461086132468004274780052867457628728236298592581016345304033302950526978409642989253442533813634335887330298619129481185090113686731263962273116651558465174659410427133437089777593440919361315099226334704196736262694883570419925015003208382788355963846794898800901537229505225654407129746106313328346571839539095367110646105874211107982270681733138661752601576110311362688180689560641565869604467636873867128797426673376695143450982346001367874519864358236099975155355800161517594653101775605651661738310251926709872373519648832672888391869201504904501355604792687611969829047030799665916840083211273949140987762043219349497720202377430444764129743609768305045415844815600709458743989343102631680597205257561044414186780504677386748956912103738834723330895990683093440545180745130591587459435667113991173571610822151895533182519615364909241767497684564522096071357107670569970605232139434277563435814799409420389198899625476898433240608491291138589187771232313690498030176730146935407944948090577380729926816931281291276752555824235136001416633758337192990836094368650397242011264840233936668484592106696133637051723447692991109714116723196568881036119287279763051947601353699987960557365964987731702436508975923425514376923178355348364681365609394751309341141267135660011182072123260611032284288498261182509950893375381147354007784989251261929197334591176304659992150546166707355390285745119533257633980248175160863966361166776314675228543755454459153745064569889889567321573069454099099306146786137656586237861107744239725721667981453679794796158132164633618024349348763581922817299588202418415818759245481112223031997360497711261040547191231429674049908589517210794358382737375668131091729086878415203354415077141973093549004932446539466279065158991770759492964139944703519903568570725799533022242765334250485949077135038927102638464314851538676737137029745069959803531872467119034433364873286207290127324699325762982538449180229719253703237771439362605389841998267339284860213123155763673322937062781807774681488099893229181165406502257650669185217607215363994463365577271012684913220977707706899585688674025329352151709725952201751806579887687693363439057782586562480964849726592755566451203699583661352659692322181028688296317634357571224952368944125929780536109188939647142878379930773512072335853888418664147757794924462826093879802642010664854857179587138328451270878272430663094736527655264536762919118798776703239980305008311338921332698395427577813872855560670240533559165430779219438141767590422752400308730445687016166586364520821060233396089538607842592251934107954307534064886823391470711972727713525077446885460371005961239443405535644765164666748022170207948163806444988792142040550291476720700517768228557472652664328999088300127946319575851715817658307266760508066525192835574160237357076091056801334897219851951799586422850872621063211315581464951884034410084063791951097743195826644545117885137976347870271867064501029170665813640159223649391110860682775483260859407186744221152204088029655463163650432016838949664771915768214185274493791858364935037377148651098839479943562336219971290961893881519549847957106015962286670714323865388694421331151198490622847717845540045288212187520408977918769646105162208999420984298394997473542527361133710659142437323848076413440361540579137387490409653411599395604388096319901556947384143157684700262430044987023306302439863029915951370000164839378288081655693709428511975777527820412381124577260891719099911299548463310863265505964302220348655740554350276230600908617253152276083777446718358875236166941389057676554728367137410845152477423477234428206340103400178311201751751629798975170823159788799290223183283336092080271194209193743179160690192117474155714452788627535474749267282755984068138486002614756139963282443012244707773524251501965937300600740584209621779609980324956795767792050587108929317560802682358583764005215805806498415634762579493679534989640061616159289972276887290065323443435670692208236375189552828627864338166245260538649441523092671516335418527068578062347716567849605114055081075869692284461889922700881263781642638221975351483971446221410156580660279316610255565783674510736876489598026401821142222951269313712171122516568841088403887411881078053974477171984332836068282154652881971155057287940466749905653746910899710501178545278907695584528612419542959248972244328893654125952866877962286469911861875512050585432842357722102155963600009120646068939570068187851473714983290270912027581880157459549489930255034451637407429313257867312693290938976722520973052733619098085587673601352035097783393143104841951101512418644106134139586142101454604711079179997383753736962750270300977835794939430498090721645246015275646791680749397773055490953061437068702396676735893318324728015198261980329777628018561098592147697687010144526723805215542043357556087853371912683787321560699836098789943646815836043286836864593587469022618820384412544743846584364076376817933664102687926163540476922896992487223205485257737313673741746386353514693418431242325388900450598120311773807252690523027476109891172033097364222182028862406519543074174858136882029740862014430863773576414380304703692237662496145354070542080990603601746962404277609870292635760662565424592713247793896928150779301379296173511707316526954990511154527999234928162957200305655642176173828809793702623632682040261703903548628895149137048901126792038405309691131954600698980063404333948322665470296552713552235352567574490854585334678524895332986654884727219672559171018496664084214598836109208428603581012835047992138882741629337592993808105964662782852395639529848653972314358373109372763577798955667758342321686462967062886200073418746294071266018001599681912061017866304676076156855976707094245425551320374943182151663016214290809762077718974583617428434217847850349168453480534171130772167533146051780592518870386302150775964580244006088213888316923282971145235254439180993196522193027726790597287027761571562909879772529646867307115276444484523399160288211358131360153993169850121837352371598765042017714422798194953352860064929946710361118040827693893698219530778417067872025899670805937742936827386927192005501046333766535773373773160942866555800855876984231795815586837439293863584904624049086928206653648753291139716241465142682081379743038127435247210392191365086702122948491791420644260379322900367504241465710867345335186837136790849633856830678468555661294254957196820315372122842078068761134887813183242900757400800882492304250042214549112923648574498818385073542159387361475801424805084566289542686057877055989855649261206888319601662389169255424229248856545121068163395888985480919220815899007263847482499520518541123711128230621202410243701614235121490731938906257299387205964988678115124493893842714791957208161807406118865080580776295220650159049578905234128921988365213471483756351770081180023793183688267694338435453597156171686656834122259426774996518797140274721251235347476555998577995918095030542890693158967718546418795639622815333390678731784742935030526746802546712003440610810927789614986247457500369072756127869320086322276304947223665197011631898675854551888977310622286579861716708043378513179283654083560361366205651597368979204492955442289397750276966376164727637617901537334194296526746151357637507688632677632696140793839093262591385229605815573031666888909727788313049927464117699407310749464656398345310254170323439746069089611638000885812144409228735971064108675168392197618316130193458239197135050227013585236198152953116588819875155939413956819619397373124536060196079103405273275217759505236639401070019249500697830099968094896028891596423645389441441258232229920193352368034492743755867488532011185392092000140630415043425959182338823400523049898533838433564829582347260041354377865544614213109220513407067507732821889684713526828285437659489176673446501530040453770552830720596563891920827494102955743495610371137091996788017718049260094615902741269136498509712580668612771561447393168452576250821523739643453509346506497719335887818334111117508054277728302853636378439121750174437128034862593090290514934713556431869438024176460969252348196576412570351614287824569230237837529632811019678702491955880375098946936360081228390796318011398116799670592703304295098337714434728316897753312983797182158659173004666198852551107283948177792924831140231203171926130885866779157522569402854151148676075103039548453759512636635426432243501668646820583571435439808099921289100354023699527465622951780491201433914650632144746711448114518478073104278699354665417052956602451722235806679447366842949988962097759313659331138658458905421651495897047622508773963366049158813259523275358894987454967061368009176456160818104455012607802608400525413342793014503531623546360302086918628350723008947376793581349582600014397876206352636870326794074039280746699337338483602680578129865815308563918643776059222527475892544486224930581216543352048285864235394079271815986226416790141345072696752880882986605837018450843397673367172208542075554126400559153614384892922244510997412323589237878298885116861399811380416288670885822970096302721574153322285738964260849999061445818706480532982401547378006499833264040653829204535540536808989561141407238649506652049076753880360252047900473069459966974284007103194345873847706800384566955829739799246205601865228839168972645035245542261821597459662621587391993487204954837448829461875430862304836765122939408001629058841619244138351971650224772417009326252722997050033789171689876158146288002060005755998411235772154252583601499384351014043983611493846107618214739978531285670202881396032911672115425827980416450632492937045809509457394971103227528994110110696125159971268030443747612939614148415562251219376043769343947499668533057086960863510699361358973045841467045753116574708248796689864020619031166015146048047557163252465549054888356317993827547612797052505063977058841565613776514326979403388010576277228130094879891279919211447358689968915705474220606680787712182882555597169947095411881420221229622342105538729220632501604679762588309127922092708523961688286474312324180021991268641416844105029835940412351029684386111364020322529953283688322617206953998212010506286950372251777811354770130709132230385446309284574128868859205275427901669061215933722725145783962647478449135738961112063264627888487918321048810200216772660126581656636781708734049216006419785831852572901205983836249334564177975979171728584339414128635932215606168036838440182727712129985309487580063483897683852590902703906791831392909438410130282817568512218131904088072131088164260742820733346740534224858695920944655201120560495644006604249965740146287608423649576610414488097311339152063169698789891672134287052727101912914928581559569988480903690059249321839783718347161308844294182541004284406787797260009971654774080177747559393873620371980205036403758897102340983511141930600127880693465040238764098361375557650486601250704984767777483381665677102942765955768380469220906867044919383004358956335147156263860612043012724183355265414120456777868978720715592316716631387504483835335434753303084484096462331912203474450683179788766990873825616977572649496256946735990550513695466538235824185808956522652421120117168982247673544928746397559476765539199769508103745807295605108098929403237729729093620702527046409165499222503768425296545270153989126230245083196179836276613549628041467538843803295299646501892805554931893131959606832322730379571758296689811973352458859540259440406667787013375363549259018530467562982789487750864413363390087523248804785832513660619398071017258937621796564313567002048145459222934958449305987695591889351869888728762450906122874810969721868980203256801788941638571112574709547491065235861577291862446169012274416007451091439517081024777100559734584023166412252267409368886094910912335000292578414631419541988555788465675988056106110239456698084575213288117500165102940139729204415832204560987453800531953481294407654054582394888064808374150344829099085999026051759956835750328316638949605335299342771270607266148599988427216118923586405542468650806497308405207878909746221886898640082612312715695671540346668931975806241752868995704196706735913752552570855142104396278642563808237234322223898158983987704454386601422821678067739268844472223519142443606922668181715986978056129557640642739809721798852475587626788007648068667771705965307552071766856054761442262059833786381871910458807014735753173646701834339558059630280316407662084666324407239334248520268287607259879922694008183584229557472334968970787705663175280882505260913993510310755235809808717500751779601584891565639038464540647564405974973289510043655781743992463144965766218638915929580832428685938070675959043802640337145837338552393292293050454894557680586027278019777868277442231391433312433922242793703248118092261586221527495608160597819865464516565739831189098946729454280242225780538323393133343865051951033694595333600868936490142935621091374840945440916230818619799289525631527945308508453285440946927159149354926340766212899052954863140973169923407000453030303559406642556530459486824650277746987617689317173796586081164139726384938912661960257357877916331991614961970655745237477893648615584918668059628779057140721456919720942756982406561227992626934055626173323636093430847809647510750906094107125127951096341117139906240171180663416739701137131540937450505024697118364125943630434774555946907357999517315134671518530260070438459149810007880881061016926579403298608421377068299798616013503875584810521881548322147861735004948172181655750750444430422683711809807815237984263793106754229415389441819296952757363232273355826754705740699599238729211148312813913197003083865146984269408121334561870740506864660647742261397565822520479889729798069100676521600546523502191833812061416524982272707325792038129323261413451959157838570132439114217166550464588750752244596885844345559131722876758036190132529948969741381867392913763146475086025901905249455028590949197389509322523211404933032101963894680148826773575869809808352797358945778110515714032249644224553337325296022950464090378729792357320707047751184854003664458957145028479948820885700266652501579348603183747542290021897399225635585108849872602611061427697275985358925795145509530000607832216342474853827618607772339420873386253218754688891398853947152386612686584499935948584580989394832237117286006930077372516346806632362152914296732865007668731567833925019825089897230563742650263531901226672921935638711605295307457799514601281987207786272900857372992601003986019878372836832929793670037779577759925682120431308899770682509276602284454302796518402808128887665310890865787763412951735651916091380824860805291247508893803159394151450916153091108135606975495377232209281597628301794046752642373665439746926317751459171922841793998190756459716278083693906666065590074022223925266830328670116121622159877001323837856401231251684947969719421737850931615855402420334836721474401137139803450590286473313679165212106742619796410204601091105907812672874515433460956170025269720526184890377159470586301460294437560434707083954818936073069852655323234887425609829648586860850992308750744295511462332263972712160657134546158201325557967821122271508185218647540602434095930770624124581997972015930324482588775682174887249461267996146906672158125496295860991396895308920629885327479968155364038475814930099420601659865865330676110607511495390935439329016550174135227883820819231661950294165673487941917816369413490163092294744673375134749074034927582436537685068786507784384124695604087778168435661835243880246321954236840385834742744465834987887527095792294908765780409005599923364069028341657757258009541945362976863696292527030459186230172037724129912009677638448252789436599621489964734585489379358233904811417301951859772710563180354874249195113989442211260782931119118671158679129705524646953215650061929568434004775755526465337872865356287833013503093367876082279934137002135759474155848000570063053229794857204658925931017891479244671697448525197023974192407830353445526435187048218230285011139424966423799677815204452826703898793859182312421062480198158470147905025311965870194509337223970547098445422529823934232248970235503607275206062012958311329594794210369449822106082380821881311166974991332470146477125254409357390972532000842516084042692939716806735848858306526272821398271776009268111125207975981944143712017793583276537826391765677294331652585264888218576074853239537659100858051903775031263301033262796097070559453480631252039874341730694545387589142308465101427641376900223684206072216989713972905269832706550053868845142734815508715887587576970972647536827982453909661713130930996293017534848325548550413136780967448019293177674038599984519032340921904226064606058470795871684994280488048348484114340111349472235348867269183403825957386582092751863121736847690245242308314116915538536278105873436295952633855490250765618926317616653854416066535577231249358363670973273520722767213299811935869440273884616708083865211230610223041614113906136696522714855844139886096205304797270067607093858225961796329573898200614207296576180858434874698493004692846518771886465988163082830956881082518894480641862114882022607717016423306027687078259071992915784074778481034473627189296495251083900159553659285565912805346121499173104058403989486161480708646049698004140790541805824760344696672335865567494440649982143178314285836555600271049667571612315174600505521220627711371992798757533810911883243777396091368309051026764988064126700729328747451587504311837310689273063900274733604028380610273192689528993759448361379372696958090368299496285638292490139975466047983344155334411909912492066905432078121425444358527564116215038211876286998512606438112270574115208753529984367339857020774358187002131699654479839288732534725494239665142369184321008674845865143848622765578237655247809097864750909435726284260989158148563598209048777138752414898649187997559848843762808606230656361265319639926985707979704634751795902007920613195635983136450563296626548420813515253926188125480383598024537043956336237034450630614368413613585853596647911746011317771922989461581236273993106001121048935944317327805946795669566086773959716680735925220358610177051433971869875011637990382163186746340552268718166369502456117255607060343470351786270448869464439526351256148486228803058484821483961466507852302625112303763446306972400813936054482755995510644687815182477619384316626963584748883860552759754775551577433529720151454937985680651398642021120666136892221607223624179672555418483106446259101180861198426801449388307893831538250164309344313383686141311192459204230704755630821758944016314061365980708997368967712348910547115446682049885189717703277892173550089730961868703334105122511032251036548790900056468653803332042523241679120989186811417580605606754701719443249911482764933401191112851886863932951627875463743535363028717219039043438812063063763043853869286411823011746540671006327069561247398451410554960117450519635918843318777498053308887916583550310918551406904569252246493666420470436052965827318196721098585228916550413190030338911417055675616232979275275140641080136531264376537691862618712625277111468364300726398864862429151457043060524001358389831767787650131109485578718323000746048395793030376243225769133071410764677555911412105390126302742305197031495053835664895171769633937290230476328549565509731861898453689250480164560217467207950716973405404151636611674419986355399750380027329750832797311094177058468648758002023079605027402115413390777195667832682545840176426416802081291572924558344978234341360077161823825449930685834218715643894798101261518288924287255178877534033666002379951768913201510422098901105030946070542544637513897981110293623655180078731098748238537441543286361140777681133334827443893124630278173069582925889906196162236542157850581081603718039041411885829745353502690955651877562458397851349783885818508193681636459552411532841557485100178999538752000639994604205550874104563218781796594883388535791624170463491966896041529539091047151009576083708858145854040174764602804569823156717480548863192179361542598847345245996961100740654401727971779052929472659015856973161267149219190705780101831200124172581217640428173657856378974316814969277862162084921921085845843114340712360491015101724074997740567861775179755305374750501358444687054898794304001107151570393188260325183108583714941168928917016042398984876987163588458444779578572851930533022136378636054879296573182969610024750549936164872474691245579490934287532881499554203189476232286159892198266145333320569938733826216442596331887905174031720412058292676813741125819436596816192375436375644549645707469451428298304216863106067774742249503224595061694497265521592812224758331869775074593567460897399608128854703790410704064394510886986551118011706148470120172270022046513514515954295263115500677288749958901536643433997750488376612375618923799857865852053434500250270155956196567968599860653919810983832107913907533889258455356952308995178692445474851301467041201056032780819974794943263490657758122644836345091264700516102960666491885162548990407974020209569225227984825781632618657052649776524329854446204801624763145333331021791817562063003680155659387467389936459316831287443222568415203503093743448921705534236391309135542247461480540668569979171162022549451910902098588020999606017708227331194710535372499858010134014370786474821989543414741159544928451894750603064485962276742846245468866310506739654431870292371047197808404876503710341617191831700644588302555916134198396877861929982930325227312510336995996959581373774011726535594975927825137184189928748484870527090617389922139736064046885238918647975586228853690206827127223074233901671869995338770729292802946701415204448000607353825939165140901118673437586796438802932927395044195390077837073462858233951423578376636216448857492793784715458763622164638167199215428338607714358546461265298688701403088896145483849471314250127925459695735833770431350497523705445279650586956253399156765383322954634890784683443295789049689460622892924798977473119707955125134530965998799966472694150205105294765121061328358062397190987230078190108014139491663179954102597975722457157224537681853351622478726306034512763366777337616673874184457832722913097480041498118721795784610905372927127319612281465564935250554744621330578812965570568842629344454850043176967738035960206039422841002218433173378204746463953756055984337944287353064558843557110991783505251966359448886652628951619270341640667008023992477922037726776973313625635692117505368791652615843367898449975207058960538067572851679339219073060394567680074630390024615158934889224663179642048147392431930731100711061881546109869117937075224028594158467398940421329627651295035219039046417644824824014036173173405113601406514582288454192892638956990615234971973423093619791441001841725685233074188262734393807915778669353749636615165695025833464775445064036650501614472602167538414523351990812900129591715789327005913688943721429122811095625689958850627506759778188931756846573422488657105883766775892573315999063692401999353295469978239463283979066997938361151934361949335890949117355612244961484442647544142366943249761301319381749168255472949007117441015998011157003179850225975560977435930377616694019533599551146953344867870512878866174790054677114552780253958531203229871333264011342480543119940139090926888734377158358925126126608593987991467924011553904771969626905201001142444384310293207146444941495541483976411947455141267820488874834899253023219923541845452216289913692112861456735167056143037623127501720388282513619198401829667309599464889921756952434993847563635531497893115570854443000739470894229214392245659073291150289192417941161165913142271505371892948307990923586560445311222057667681303907890737316504617636409866221026271019953255103144449341377914264605165700007379550716631647926543384393897358507141612058976341763348391425401296965057274776954003655178744833303458311490600774334268476046993968764700211958560330200174874282349866437469752446383788927322742609009188457500894496380835515868771749405064565352891217678841456969065514709302520196751384233217711420410822947713450495674523557990319964029812466104384394053188071506973306006233460509504337795317294395516646880370357063351750677821282055000512540183546640620779617097686829448565377616801295744298530056173037398661400437989209132009426268472647562601758036874808964949412699161391482739191956078905026568354849034345221048224089839945538497804269241351711524155219782780090605802385434593686357704390492554673423136332709818577119539295705548028182836439767214723737487854719009893067691807816110621343157866845281165468914241282334221518048081913990929019068784626142979227384979285741737957704337550328776704930984726630735970051509831188827036094476791513535661375455204671401548555918426745310867725145607518089465049904286947687564909386607995864742903443597287061678455597899711221798538249520599624769815366958014155514314730053509087332597940626295629639834056729243619466532879513056310889570744386645622584394545689794558015814100577089558315815524287950238552545924978502426015064254766097014514917057791710049579913013577604960373774888677653262370293291144387263178920239892199307015750724265180371125402790474858514850586197722711334917616911661184012950607678542813511881883416043283578119592253972227517625598594256690264711085639293887930543338055995279113304524209056338371856439091309774250823757197123669932509725201835138622458425676766120529707524745438093566984097057936711530178298635730518068411012846225028091884446734301758724348085680338299879165831467730220352283572244416856792626318734129479079894708887551197229399852914677767986272449105929872426273266649085929575534847358101706375382382519624096224522794337508382266359157657631020588753794185141961352600289166981031097066463753373409768582390621392984587024560528548996091369709352365752040348304294427077729817864367682611556011941082688953419487226177964934337536740315559149165269067316053441213079817465279280700837502707908306355557084846965169458129513973891077734249371902740029879258939202186919817446943610588751112107121731467451336219798633727475988710382196666527209610725358225773370569308105887639397437103573514887884009546116989985350037438789600668314806558067495424633072823775592359795793190936097764397899276619338865676577576336668468584808550322057289318431878535570399881993234373889592157982059917815075740649854255367956793260788213647778374072818279833242827445123179681562886190486026547340316582199242436189182544936334391384117210677056630326908440729871868974379442666409787880618559988070441350271215387201599834643257955916292277922889722163701431922347865160178431633344075002038108556079506306650391975802156490368173965981990805940605978792792812141889008059277008406002225821971003443494283719996827206640584452585630939864953998456923285520230183045283252025784671693242058198115211008192470936619358728005399366476844904527582600107227724676647344437838314340859484063114327510264746116590139916121463766930337672507500750372904941398550083765666501623112457519238090420835245789644206800842228458211222204090237073700002546155609913125486156954498932988655495412113755812475316515584507542022455682257394351443921934872215474388514833819656319439435719390719257583508257253342140444107982935437347642775314999768844808628296823088527597022004440705140335124287727782804943148634687751137796642548764146698940833502502267937536413711900330986410224151135845616095143889365888197954769231514539725561339097190805889223303198075375060938439870695489782389319932606009709441261876290695848067101371136797202515775995275103501795721209933291507060693684109111807462808534626744482561809981179831145085489039052399106896040232297315074460147870890550803037241831959535125040756433542934013115953984353864070561393896388384244670902554317694419020985794482848029810952459594803549682497151134368358268114273645173477720686748631263507943588949648550950630388376502011280619089703109507278646505048342609488889571869142200290107281024834601436275401215128794418100629210366405917901120719130990829292259271277223847353790608733087601009356739634833577514230933025917028833313248207899086614056199757045218985629245586512028053201960452834096432632956334941043113659699489120446658266977096545129080472062383135993294167163138661967737831595702672683326228413659443148953222230215934263623758886880189537512133840207146236568512642183946678101785495513587492443494916916260970246623358239269836524360236403060618625050092376128040011731912232187328119129408702450143961420831142970780388962950751926960295398781965722280062520860561669994745799980901417521349800469574021405910532863363014571670850734584202694068801274962214446377513418812254192052483890618994148447371896419093079826190433980186437088742570143001382469697830648649652752565065611212930578666699475943648287875262743011261273311936926842344459706130876858413939787985451422510643153854155475777591893230194545404166045775909998359510355984747570972196140458443667420118439597092312621470493846790749989698182883787631931077182755225344803505731333951210625009995696568777525148394952617954515746008139603468229460718755605497882756597864040864696450149252527252712280507335740098228295423449045765777459420035245849776172143711174635994561335340175792152915332045205320672976536884010923342261465179316932201362615535985401872087634367034477955684308172424902490071228177587370494265979377892688086398507595194134638317500758332501142132547496517266266497600718653601977093068516908753809368525157623183986930150624695609640710980464117993268397671748677078752369485250694649114639368694139921314075714579737326586563000371853225483937269064555828902072651484618996942426331717736157289890452118789317153205375281401674985117787591817008164730825870191018406033294623167639414509839389742349115236009697704848427376408517848467538360788300985296228088266110068668782746132432650457391929819740298757431361327039685187979719450541509722189310210092703954395740217368840165130214949184530622540838220008000403947198713382739794797966852586679825399374912330950818384535251036852690791301479078061395108351478413662195690422078534999842716621242999641634435950738430319246291349198775661136342857528653213236690793483626695025214768157036678703038974842531171235768626911193105922501544517950774694762416259782168933291181671674970874118515115602182426330771627714558367673509740293777533871930700113459331956325402591884550299332563472326785852849549979217336778784907711591918952684697815266198143333591568854464757468387430128258459018182133138842748417679090202709148658576146027346497603420259571655418899793645948193273220980810087804930633556189170096745771635908252555578037779784863125734698999010939296160103663881351316202484503685258582267995163719119788554027631967366664907939928256906355090786830340933168459056085814942640132103846726960205746905517038156669101453799439870286041948709855357549856181429948308278282005753374959904176573031918566411774489546093795600168235889529170231997320106679327164253614637656784522494613811935346297143139720566512520930443664013326168082925557421491470270551238539188907143446103075880358397901484148898787830275335694343109767863792450300824623693058831358766393742780186335344426400190488064784633827890893221853560514590793910784738189000915957533758804784482380385656118575813233554660889524482782816679437986453851042720522981393893685545547387099183344352675450979412673600915778492006163286573678213145666572808768774848473914191398130835508010862612469583210764545526378294930018385674897612260851089183897883273124917523643865175208299620316908103237958338212293753898404978018745082171477611288659059252698610131153441271704720710981639497413211526744826139270122170930823572912592237080889543752067803653398278105578837571405990415367962196060671650262742830578256952783340030892314842110366138298859010711678424432316020978257221187085601731129343660141186217053472579323712926388400377792121788171191799459442338821015289289540647575983864660695404088150433925802532201355959020563257472656255216261059566951280520744644857202844482706778777628826232613171539246075649114747563249253964394565096671829376154583760438312499371085366360659233343959037324215374975268220416007039445732541831710740795255805592029745947616202527111361513744886593974762785106167311942491279520656593221454192245806999440311740856482370933159526278816912533745139324115460871118688097299683267483909786797848489072151001509870164402939113290697453129063537805850348232073244326081176589494648842376489356009419213455206517081428196689251548739691749816611728912627229744926399258583166853036425800504930349234907993091073253844287028451566015574250812404455233985201822880770511388762977692913127449625486653213835660274262533587121620252235717804859226292667333547139028257860116630632477490809003304087608859462075709666685889548936220324302330579242155005622062808763617687933999762385639201499835708627912096944921515381938289297929597011615959308285783623440684939308256295708427422328253082781940862509177689089597329867516940939825701207782564916767482321968041812729648546362609589712580519129068328739968566004819974178761091040810886181508261881889244513128795506424661503318752539628334862889784829771126025036605920125222584326682468640581202025497007893940814268780192821299239068349756782639727066117312526369120201051222842947042019469168022476224935516388502729499744313078527390153904979552791941519152420300927933057710700819273536422909666559846434863085060186086890514636232907588442935773962834564028047939580118223333022518627738590701438692203256549840073014802929388773045482804381105396132397509055230968040483680214390175231307322790388538127560322293743787179144315647616096101656422522453883506403211862007049849800324131776894830644701701908103342119906176097055670351267392747469663022213876735757912769771147883402429829359326006180687656145765931329557881351926560897785927870610734441870541929598290604525005228904532509671648787215841804600065570632206581983609116386558138922097340840688393949841478876693612484018032472180177737031885922422222175621988991476017887466356442726084380378897440148581068371661763870556178577606527630418532557709290570282668418688287170347671660645643500080823598732929224422575876988293465343350637187920485114446305303901963429398009260748195879720586108394695019454330380390307059954608080471408128292560297347494087193419830154215462648592975206350569560691812209793188431983209088466583103100296582827239157917491954424410007357154787404236802807821071086488121276477951888965541758339571956574882026631893294536244813762008930031279208988302392687559012719168071232071535374437589713420467346764163061670620396673841722665472311146711253759382337525340916032602963531392941183781341642967751155937494718880255851973673824284522745609496078913365136592483648256569287765271307715085503255040118303229864378303579397328171547373576068774182104759757590268286843128329298591633094367040160856109455722606367318785804791089926831870540747667769438807415401014905383722276321576582068667000418900537406996661116765662677089757808907412387348016382546535934704782360687168838789786649629896587876139866217604351509264477598751608361437722040371847574551280903387595172752330520171417025496513150009551044354497868359514381830388365069647316912492919877676125625554063556661651247495558953014450166824255070130184605618784600277730409035362283924835485038106134825411677916068434682738631904416218470068787877793089387402260939742408921490694696558452959061156932332410475129767510790802011112107133548369295460049827083325861675365869640171016766805612538167661276299766302703421427492855549272465741434375446746644551175993848186781607157825138103395193835312480738110185731544353738141667803323046868607490231753124909280141386211292488522002153148783852372464683128487361550334615534426424062483940386961640766050568461214986372807648251310510456153945203167792230273393982060692190507750192230961802766100717221322386409937137308699682167421796308010270859465439412040630990222087351590424391882620217321076479660488716241153644628758266867667816899856542672375568832140319065319258021644703943821971952999980324725191546161999944574106632844802079533715400440852834013319561117483406723919124325141699357429982029160484049002694164670613587051324467895607306659954736804352294556305400392020659946504346845178160504826851595508348655777146715046610949519013311231891663471619063150309209442662124266323451289906281862923122548510216279585069111393086718460204160397358570323432913322853442014936620706002677752143675256768753186323135962257385794480934342286682361541101157550398740271753730340556243837910175503626577635549158153864414295738296103408636909771824651048478754496465345884070503884164959464287329943397294095077234685456776936370327257581113224218358939009267190155696358842015560846024267999522868804736799774246226374025553830185020003750100900973542560003953335976625313429372299074372947985121106194883130691400868428926910901500185682314538933941212104338920641452721250320799629529908021528150463205954495118088189309888652787059806635041075836567727536960771978463314660498929965653401990605349610761606818283002265307437395857594658017028185012052144116892620503397822025552790846384764600384182711330815938295352169536065605925026260879141805062616777879378671980008472969932845312868027507750172658159327121982227628052861766264914133263120489428300404534786271402945805611927066277160831715698226364905107991553131173253468149990462182565249053833890114772704493311990138973222711825814059506303642107994111854111725296548666415212113325581238282084300951364890765786230571521319982263561279568430560686977010518580122147585221002317613799597664782125210497069507192670150899210052449541770538938547718465407601083433401105203911377360033727261246640646502807276217724109182956336330689728276225333440103526699565739359744501121308017107521613748290484792966421781525048003438975591376042128050111944192402364175413679985967938247110882612508330702513301434964321332252414878322439884009335220986536238782762424105146890182741656046813069173774444613579920379417783929258714745668766829701089017799288949302519572588302080475466671526924758950113732587509266311972918773515029918665667303445014103685401383535744312888349226353573531025046768374007963772203868415702866472534900606700665400927318486729728126659269763638004761827940419940074195616754866510823966714516647846550541660544364785796531209712279841485805369481775940505805437941263315000604499585568595783241949668777637300068182390340823725804646824274831298215477619432183961893121929958666869781863948372137410794357300775380467163989625325190309205517311575776325824947933324136200012377482449582545441415600004816668751993675977286195559621674604835298173693758565099082502241419068718070975218953158437457712204742382538252545906628733563090422778288879434341627289968744514886226708311745988062200701311689659556097588970849733535725125598162950669124307478441141186161434345466166315240847856997079308724975988405005581003110753985272796704753732782014008068991462443532112211550670180056343239177338223441354488424272774689838280761103859968982155850330810098463584355422111086880901935451365381369312193098505858135141953812159774524031874809000559597068897894576545561641184098992093311563645320310873143426173089023737489224289704867823289149330538898115215994548758700854231226620246071487668246562889024837805967145249727581571883386723000035304554795207697982919674288554744764131809932412359050143261859637095738724773224130208479785657754117403737117465938023399979616806468257086988415782111752117209965467237523847128742994963830672923478284929864757120011437090771506488097819241245124791188465468296631554026936696241197909800963287079225852858509742243508628205430215923666638392760141235634626258487233015216813399532759130707755155884240915754502232537554232470624432584149130631358910715000547478509464366098477996758600182233899678539763043625767669233627661038327206394569700120000867346286556787983997114434145506532397566695161644676879713688843204396536483807248509955033590559453059880513925624680836450168114128447676118852448256546083559694223838602035900870380389059962986102733450009376633749043055486448385578298590300558981339651039145482871479844410781615889285133337415581094738577503900163755066645988470775085592585396702449369886091779272968765822551636477777036535486917302998346076533628705949455350638370292190269755219478313706276923421742907612357236133172179820998557145864391330775366584268339656289830752595389769317121377359920421514285449043455641495240268599849525692237869119332684854583273033313686524623757197805432505557402488119917026281340279477906312970298591757019536744350319451110334419569067547413944587339645065461620229254283907518589849317329762204496947727968447659426649782157106778584190749020195664136186535273913047291749443095628684472233646996887592197742190723779800257670172073190612071015580724731279384365002204140556794272926816759743211933046912824020164768935146849234512991698440961061304628838678191870967374015122653662768916133324809559020276107601211440767665946922889716106612102221833353496461738617243271817202554861888985086474063591409378560661462558547330168329535572809818950231690085019203766664682516464935282298123301041597214122089858597455007260098288969691615569639828103604768793880265962189622682329442358753863655339304058015540684698579830609437478178376762059794899628743563295674361052370992023264460798792797847397097183633943886436745009017588826931559596019126681378523661455304874304455049144495150139214523546679121800028890008824041841525764229788733384730837647542934269407604154538025938555776253543332822346490657184076775322047557667332888547050070339332245343363034772806113990772832889649654143149879654454067071212318672394230497228607922275594880951326964893418416573157282372901671218960258703229532488498989994023279498579949171123456140474505894473816057189357420491768186700405605561927402772670254578788105448480760838804874672382941183437325587992535484183659391670445889194332154068700811009711712896644853202371659540248061529876996067161560219007857126039334538084220335695473975686441726324857375555815081068441493818114280158715017680054003334925874858586017770055785099791056970093102850416704890917968687497404617399068209064355656511580256769405741507510398339573909448315486931651924253306124349159664719243778871655389158722098767290461497224468204317670304971034219841242649170555000607505503278251260576746603395627250218422558304763026193127659484564087239517312515683384670055437991054885594260761187032683167531077468350915455868863421831917699020653619825097188495975208969789598413520806533365016226114450797727158694303042960199470009716435454226097808952629674189400461747374814348760422620332077036703183581014742374585284762599090097871388644878460475244273140833671230852383728363021423767199690572469757416466800717545123917621171870539046564407151811268971768761541664061736035763911781320982402262640808398002736311062173023106431832134329470800042527022402251373453323178673409879378739045539285889046358288731857994991355518450556707247762991526226976133304242637019383161686470759925534100050986317716690362620536968946786276261197111744140344325898090842863568450199919479509431133379371253160956506336525747693365216105718615121343133812571183867391756917954338599244632814289481517464633813457957839904837479043487771394938161351310397868349456993899155712328888012319366946164357045057962365487432495262502580260096638138730802145048569381759364975402139859370082517678435637175266242266449004718056108629998916159752862227166432264317542275998239455978233043214083186761872237165856997173219795214447537432165689021435949504567809847624915924876322546062791046729732670722215428445964303794009402698092673761258402431907758972056141249349215389132872795064483784765044196357269017496248404189931815236823151507733301752116198243076128057757012509665972874271234562139845447131321046615083445459694522783825979465303337082888483229709874756466899154084884095669591786309206651866530317637710918761270320487243414729693696573393368691819479179397355498881662569303112267041133983969128025410609286796101189664397813233559768109850158415978161559328784096572777327166924423696327828874132967693798476606293746769254097859721505205227800273119856659274023591859589197484524846737075050055539820037809880545902764941760732405169221753658949209694258249335358052869692989275012167961410865454657390217769816966358201584231598937717193740638297279240187130509932659096503456152823512537765093493291194184736565753264469265927893512690905527941117361156696423254142091237401539749522424170390719207127899885353134132066471298399594148335296967277667424843956622767062587357563277453087055982956455899546608578628145743084869970166717599763934809251131416190407846605178414540811892025211238091725323502216079495636121219983067718222804563125241786022015051855434523394290907942323760096261553517695161229450895494824955210478452650506627530268981373022986549494479087312135764658417345860130238059994848119162148924706807341087770531542847996385369045916653421130694063130141711366725477092254778281064213057787232856451319764543174756790945823200104914071919616256171382355345442027218139464701109821437715050087843345436042513824825927233685515156460532635086607557798062733775123726730610108182484736215529458147324009504337419492829956925807596451411712160381969265209342879517071432710571805481303163020568263085695737414150595067299681022011090152627501983782792713239268395261291069458779745135965308835078424815456788916765830262140458527685073606742872577762659793526590093234358955370311278589398998853341892115763250840727390718156561240539371061170520554036899438434794051011755973478375214376597811019759491453815566672332383937078882135634353563573946768813654389309611410442777864729594586465156698126997276769052585533309999115289106353197003875467799908553971600799492745640953212758638206543744016014338395855040986541761720197016251955915536277159032193762948222506466843416599864276776440653277845410682560143714223959898557863157090996210378400337404015397031580479268875584485610906119462104111907750614512769817961721739345273574158247562152851167186931676000687327340714393491792717807644325456762937732289983759493171103279978057777040358242781129213915140006163888409913858030077409567699033293496622227904902697715092695633243856840088195100156154286110248777026966238073524909994168906979486692036790797338647445311691778021250907303533487237275063740101585314187063896349382474441770045270731364698849289458318941994426882782523750228272431878362707984883505480166497489338114057768341961900902309306050408697552816676222723012162356864315701297759147565842164905137028261932699067203854227801022231683246960921548804166625964785655590229080580308233536426151952285584825409134992262748267736380797266595749542243734893806941366513001402260684954947396509512608246952190873275925086682442880404273567501132815872890424138843927861163988731985095764682498595992034715098694559610894444627540432200714624887881216621307279490102458315657522618360778636080127555401182010546535612127464871133023104085312866873760675058562692538966680059072233804322414991077794952032831594710961005124717444970431948419700495893656174659751392539525078718448961896810754535335680264013998391197308358208910181655716808753087455962364741250967636619692270932060482736699273644454085071415284631760698204879904005504958729282056519434885208644912550394536132374323677802358658529973610364000949270625761494766230911278711849810359453057269462821480883995907697853995913823806430501750548497130302612183984505622405522370573456392413236729782387452872394503619483953159547036967567834787246075899445901278614589121073388430739883653429415004786705309063094733573104632588966650738694130575445645572115571522013396215741882803714674459952744166622105903323553864462829875881112625139124862632761036297786988601972954232892653648856537338633121606665362453791093215818462134150066543915728305318493154822393849323318353990067686380566751136114846693744989171236331664478800706187260059329514891362182108097285451662145134905495216987048269971866745941527534701118576405755748485743855204617311148889159664986028229246742924962646002851625995255371163070739196994055070571622906476724551731157895901510326784674203534123434196542581704488346597268456569521316612681365482357496065480052145608588724238692156268658369998678138142613481471517640507597987526028506361552812558868136707553055019946216559753196509092039773110616886231353298091874374011314304608853033869914663693530376549419623310563461982829327592867934710605141692639895741806343495633238297255809565739188723633095840554854917879783470294923847074125198027430603935762891789416228229748550095446882517170710650716344732853503770891517559476532812625204665537396259840070712458062907303264232012746483386132121538495641774846512885406279090903444537749581772691999725971017986920406744371264984963689406104955075749784040003947895844911536901905171381442561186905655907939170749968135229011430005427364214754169016874341450093967523307350520691313499021368109741871600760854832884651570859457458464626255277095229621495254185064121795067609005760404701501601681247719784063430219565947591972986835063893855367773400181842637556690407774436096085578788212255559703254716326947114022757224241266518956594817831428991525897506318241334916840292329664598775383017877661459630120099597330674097836697880316729666113548014888736627056966332119744385907991508240399666899650222094576453182470009023553306761770234185115855320134939993926241649846434173077681248212197154410600142093166530705231285372750729874272485284192055156875039312634047716990722180357408672953528424697870346292028091202416952753384567260462132050546448615962816693859239783446377225905099116984155034168277758784492432864602880357073078528035437325258454485174473251964518848641369634602465166299544223362255256811680752001670796093257769552467354354113450065249405602982713970113731637488729745238386615344983706220204485019070816065647121293361715219921039256798574992060041570397928427019784526235542694849400670193116233712573887185565080158312667987414683281262658154910509140140251182172849440764139478295263760932487648258875599911107806265044324132977493032712777582792133493502867931670594860055423001475350986309319183325386515740593782712338510054030876874106231873816799326533075301008469078313954422323700947911335993883404834321303344575345619085937058517325369228530221179974866881074172782097442817212290849666867526006197780431954220333692649072354534371152600829492395803681777856877276497379985000511077924195193821097155961930475091392378733471523070726092352994024219654399011377468007331682691452067464759012838047805302617019242781919444686647314513119499515655496793593868719592925009846953468123378517084903921811464161469544647306528954972551995234238776487778814912526696361408060873786477010203462031097063773733628941016888982165098726691427543777436917592402684169022106225432982851247348267726757721875371652541251750244120759280441237113955569495213840104425094534285069771074123583465520852668897705547196581065497395051421816679887016650688304262080181061437029950818918632961838089266568049957286532935839168671530739538397828660573603062454178457321380683110759832932737805479854086653901576099570655179354714766901638226816499276696351776147713453922462464667341284456168165359157286153576657819994903728005366891707378248427943072200363490598987133764712415332252052216079723039370747299891154271725666992758550057364558016289280222217649593207054047296053466619325425193063581361824125260504771035264463545303152784642842510286117881904564535333169380896802694957567695977756184961293315580490825562033209395014055070002094745553033570048161371999580789491207526554467114896524161867282016440521413970524987947298298780378464760454709775573147538033765452164658476990264934250851075013724014599260416025034902873048018207425567993812646416720152869589166147057691047446951081874559788730528320132347577159301782801359013771000424098765500234224348618175388378060606069535780478433985359367490675951121940810137088673615103754400469806885726084200085793796586746794420514839163873508715771695369355674960761355141735349502076447098007922452972811429903257707771994816505479317310458609542172117617156219574360507436226843925968588755723947241527538372453681700306791816625635067139666738243809627308769097442925740697110878567744244797426791957724772659504076449980357358546065426232806397860839388642210634579752316778679384667287511999906313722058953034096322063491142887086170237478062275158619055587646256498038011920422029226023164513724002181772239284619629475547680077823627007692909049365987221460502806736848383052015758949109590128640088215638035087564913138933796762441014757584978764096879684234511275513498351342927437226616468537678129959756911545983763211435108974172444360027985246006423150943171743116891987247733179619033033332212391493491882301848780159000438452797095349886537014200083507186691331130426307082604002773754785178690064274758152683049066187432849682972625646908472732957031139704217473310039679686636384924911735840010717985445269258112659782570005425810759448463374964758351935597510601488875367340127176423618092954809853667269170205734643040610959885259816757601551390198642288660936351886094820386018838875183940629071242339308307223395047316215133121085015859503839461339955851188739086720218137451565138695635759277784066591556976867372711840583636073614807361219798214364573792973064497418654691808526383234423482379530133405514921874710669589340281055581044126754653340863597121758643319207691170637562483011870909820322942598448228693385284980444937460485366593895540325276088549285711522911861795937023372175755150077534762362739439702037650688673307416303506313897052882267060878868530091434373196282096662500842701453209591535365527968835342818389249360450524196759396322158554757354714135086779290757087747026906314848635083304248650817871255436181323408291875390476201637765477528994630580085509396840823099365456131713526006053382687434283666776144414554982327248983480634799515397713495781826284009339512276025102129396799496397268569456123048961537907151591233566877670491982718955759433177249264806777935598671156442617806012001138177716515350762321915910997620139119684463597637934299229404177635395628881026364013352833313620466991531654892818939808043098304626908184959621742618105568519610121981152699900620558700427567270285552840643317053777949653336547114932234075770500172999645388068949195263708591836675267126560193148709068513543687634587896691087035353355894145740128253756159289123110814723418116222221032296267310986962418062738832968186773340742416356241722204447335739036802250080874991442965903756598333137803141708669153103881982437543150487421994302300169696400645514259228509005158806153850143553299000370953169519774687150068933608713604311142004223029894128403955053444202944298568496752152723959867734603221876487366566606712432533505211096736050132887760753932762100338423352800699614448629760668285052299249045209680187047485201805320604586785387852426446652663168020492556094969151222119930661817531979575560486472026618456931931429913579831647877722660870566496923067956367091613217910653849749989997523433215561729366430244901973941467380149672668994698237569135634777695278183188467188688746437578212307607494692208548855665505265456833960845638375739231882187855555837623620685074871036845355721356065508738661485740730842266351221992122909112150431573829809785349563745753903710404485364475953213292450258827873774077948137034785801439971922501102098534595905490079141146847342616815479800417478506213417678345242827595187062713422321119327829793246927417242463284481909646348180731263816503469883411348707958005588319884518721643527061143733262293684804650105702185362383309527549347087523978195853554772521714366190239704387951415288808223975525289836737015844444465172413187167340000846172244595647342241404065236866298083447262298704858919230672044244077887913588396961887825124932573231891185493316449941791442513064624633622840549483029265971571726387350596702235335706596597951011697234670434721099162098146678245167284505881143261969954531006900261250926536808359040494377089241101191460026135926407862328824505949260944221618802677705901748708700764102497969390505754328403519608178385123573901128576284190043144906711080642714039735352142490191851224769119507288395206658535467877455820635801017750968409174000915208900693435072579898906728495978879099532914725178477648136345503753274618404062214133088153447566606999197396733083764839275544836791489286940364152394419816400213738330551839892994367824669521029185286150024368505330267481286992814975048895440215832321799993621514746837146988935994155977587348752282023566701785628703251261436302550886364360143880967601245475628856947228937770452324155024289341627737284409358951502740733544919118243374451987502161573426485339579996838794340332270053496459175543827546795300443867763823109113978351495043022351474776667188127777083676919798236740977427916549728017515470967747053905939533940219330751657403163534188354841177510153091154079529860339072028631735661200793214192256939779124108929874090447217203589961430418947318376421684726515909211175045269774514649120581845168494540451431232329647566662970589770271354375943679303094448272814611130741260691552616381819910017397553616959068475097566582319499724343043475134361381273820176341015112689357433812214467145134045364343988318922697040446445372896897714404406148777394055323582549265261344544857729012354999348911995007406166770381928951534184196177302763200012259670367404746493503505525293345668029030525023894464465737932343565928286523757507227724234548559733364375052713647144279429048236270962250621274613100948496384861240677324968450589843093541729701436648200438500718131380227749779986400385293516819473670757880989104502064182058599131535039669585049890612718562942143914839172219300598722263261655122395069516593227087344277604337713035119407788987401979784763189086243053995804354490004518106739521609226842261740318584276649993029076470507818459827992039360905609240334645847810507578503707408530367399955195392617967489410437942833587123287326715463246753064682379471243792333293817437970177177936496720653279938828774246531420900995424813846835721751167882854571709988909537338027610803882902973085664265061813034263633670294480020412969581686392548288533119475692868013963743093341646482287051453530978569732159198578646990232726352483321697618153929887374838304814775342572390717869412847255182846059436759575429289163653413861060279107556082452337043921255717472264576216636935645161307330109381726073305036581410403337740344058523397922923848908689448590557672218045890388211055520373047684050557512576741113850049490816665376146237011895464948316255837119562481777412192788112309380955266076717275907229294678521069710259153456182487523434113127240989677738983257338138907284595632816398304845017054428539569268923697044061113239298090329298231580477091518882867394218027727973932059661636239038025987418210704425637394793762649117091708049567543303563710579810892469541586804354562057703588804714740910077195753185381820700106872474611677970618921322697251232456439964225472790146090202811607921373989665348861058290092096330611059616783996248776135792492142996394757467972920151145876386917702686262234049856241757076685845120072770934415947750413166786705038963081850647486075183863098215138945532869509321513623383523440880491786804027709128955046170511981400851794382320420944339059189925891220340569502498036068503993753163639251063738669632294812036183611484796629433202867587346445100236967083044656704066859687211185219638223296594075701171220320115112685707243641817000669091795491777282901179558736376827584650057671790999935864029639614309598908781583876380732272922548230154582828623093817960299777690154374859617807487470275343496357878302394221950492511880964319197081593967134281918254629533634992510930025228240205146062677447963410150463936872053210604550503305723115635933248011686642040134470269279692089321726145928381530649937934060731905308128592862906922348454715450236445813215684976501052175402784050519509892595025626082376649602044652477360166045427540670674637653918646257989772466468182488995742801627176842219707638250398868897419283072846767813975942373121745524513470282986138113786509748974430139027159100904361568552631047499291327120704007425865464817601326224666915434947615446267367965672228169713236407859108095014875314381172086617821723645392406450811632791047864215892896265111557711180793973155471152933136721070906082412909383130510753318567072025807439915824363543005240607846805945081646430634106825540475068707816399067515405024770561340876120422296029376221022997958439766146132473209257542956875235276454583615794564711287858355424968338702577007043250563593309130104231483407879302678611226931545069637639834972559109221616364275774564613565869419522798007305849589668201413026113642927908384369019816442688420311283806087167226368805998039099626284735234267581325736309549930692696156973185361457350584443255971975992897825623989450147427918294612902337634605251897552774420143712276085694734736596667770154888995912949052300489356281295764429217747218425756372012205687134903484046099990822223478675110017843468707864948360515067713746301910301605228620422925155698375263419660613627332384892943909414835941910316744938622658798937503315583051135154331840721165253220128605265705559053484945936840452365348041980510951556870554177586440913158972894601311704341968009181327601755031820815374211821700677600487356039018401055208785545207435994934285051065854491841073158127416322821259213445806715742711107795756621804246956186222317465879511963108817004868088359264282612873400974577467431299796934125114572329988188345064882180980599166237957476927050470687564583571612297801026609455950167963939380823306859306593811083177308462646547575656746445802744183861325217850698387306046688755405566786212384740302415586122322658666543554052599440932452718738743756448347432221468081618687748509980286668049546236978413306524776413836175232548430599776898343524166468342000179004431390925992482391708958287455883631121291075610491835808702765952552769423521868746742602838737286322260318374126716336351496783576681547571683940169118456319603710816001391146582274519441390925674533200695440246357754758298386613575168129519958161796224330866683595056235722335155622720233959364767304587705667089774218848662019709292461215525897551675519995083855466246407873375368510053947864212642433444397934391053598810317320145315669207983320929761801808875088649706090859908920237963559106616671663910625713784416793490908605511712210472304770453253404442335579769590928202006176313127854319221832794464864462426144426812027953615958497271798601875641620676017477321973629741479218852590656850094518953035994555204666661933743571302352364566658519183573592683405264727565651359628833435569438136097707700609040457622514236307665534945113883303803552425263603328212678604271446255078624660405621963773237471908082555676173461656094464157389430710533294246415864684810354837754798062383002735901032718874564338364967490354987495407302636511195905353957440777387905170337441610649030467982684264394695071878494983081497222494306029034449780057339879510940384431453216824156318333830641371397973550294169791106045422913414279308224312885325647382489421068487503944849263583359162016102758364756124230360151563772158363727971921467857171062048133001145731963553625478438845232178744350319122216726217323651673587337360444134652646841441416212233997276236273744817256540995121713358232642339103271064745748114091642566588031311587075685124981507764931087321539802936745032170402372943907586184847399830623510937512768417770917417380047231936884111935370567246908538343679599853282487723035433206621901322002973338815498331525256268857064138393160371071751916763883072476895716481523649464466795662300848846184526516274064453762085468396115276343847286709261468157677315001795252172275148565423594157316655329600562441429227773241199037938442601214851412204958859280550700434420552158330551054351695044120137226196344441384393105218480779959646068075334680832676677314072474640086411131750402292648371612235119558548345438449860805122225399840903282170417918162857762817269065753410192962018264605437019024687915051757574465852494608475759582813544581897847284406413955771681008585975815831443530125314299262615809814886312857170872534868409277671874223390758487717542322134802056292864459929552071428831635346292642917120500636771071564479518939525137723776193992280319603362087985818044529111272083352601091111422235940142636104003706888331923289082394128746372988277760553336935340094490494354782709748768512427291473094470456217318771995145403096518617920062451211864553162718962031016036691447671854344199627338529646102037398873891008831405781442525827435386621007716611473133944717149609400129662394527445750096052781377019540370047713871808158381590524251423721827712930062648668755774166308171448316387307609195866731026515544521710187176030999783183090996191212014257078502185566410688502089505846597213258917194872033866957872919275913804954970178845540629704176966405727699803086941015237003806108967380704823749293077389927331016785101345829720997211263305766617895504162097766589287493532007706200820894499521948943847016023309906146532604653939547400469695725252959510542380522983802556037966874876494018427960360081317940254818637676095149917021463414879186203444137705480832966242678823717728029898851539755490852040637322020163535689837840734576256196783924298667293577141938358354812838676064435453379483334265495303403741323593085133438804895069643970747619609722133435481665692374963809326872579021567006770493272580670304298836829562217704988061955602408111941920211902622929067660285932228510238763398200824248068361647274066374477752758264040011074455678878730116522057772438634835890645469654961801450963748831481525062440147905019013929041339819359135527790495860286938343388185366484032129572984696187162774438496503724588189661477488966970471941204625655619978634351992229892369256850798952023027337192645729876959778379875711510026233171096071681991206589268039829361693989990333585203479205405861739034871958668505003276290073689334535538386122138980359256527323513043788719559208578951600208464002176043811702967566027130276427226751252097638981978923179611285099031772216962888463536249500435235594856541148551967726132845601375019727579070673327728573899784242961900429208405394570392085020096995948442363875287648665823707694670414142404032718071568206885855826987498631796947343855897896195692214008599602839635379247085866281004946725192214508017586719985671636281158513075684944292726716948569952745200269970008693432629139853990774240899338730641745939276071070170136473843195117086847931081235287037914796613730864421001701435055763170554247732278314255724127263785441435128889267112702999833563939022810518222816424023409456314543573114902593845181264071467548247445811318176974921382805563520637354496253508240523080071337202705764963605866447073384504063895448559169538465507918517602602641881344541047110462387020073616130687555491251143986910157215762132693083337246514378501058410853696356027263432898324563700467380729553994311579252744263237954514921933835931314575234855424404965934324976186466565208278680703771555526130766675954147444535082073293463174119487988966393744432088909894382353511262742399624358236140505310671267766022618491347682235339020899643881847025947609145483169557536046715202628484622682554060165122883143716159216625131496035436175937489460976637267853908307147744508319235164684152681053593804762959637839938565090892654347983370167787366776653431482748693041111025715559488575388826928706562303704802158314613060313348801061267669728244923809330947417341476090524253089508439966900070426573517505248317576895976995194260527088821534603993306355965988017430004476827977402725465804020106115888569945258915880289151002739736055846224994704089180034538578486321059180059644728160240906475340508659989691474474616402283279894160547817099819940962700844103678585420968135245464761525672993049600621792512650803016360397961707318392713419331819964999782389517228542774029219064471509960483763784384214835687274860411354893684251705903797167717761287653195646605551671128679229601100176823080422635471580203549813153078916413566437659458537096272083789608340317538229756959557704716111313890241236343940819034570392950826255993812822736798541467682560002283402632255197009925474929797580914538341298897031370900705912001105589234026209348215354257971384299573742301784462304531299547039263144068864294900944411104333707783676675330280203567390225577613771611557773462581445444211711612213404240800309324825132463015840232061224597189784488264452943733250562325865079734724858043305515130425281121199985770859451452473252241965655679897380147182426452297508842406251094577226278303148669632495236906949223139897157883336464157492335803110050483589510253952918853191531063398121853139566869066661768712882047083313333662844487088800839717312507177514296341307132850677859772538871682187035843385315702633918359437203789641671237753930486234545902774550187907205725275635967039472890958395595372863262415819759914981225523917119534527465717411796509998157735982689246583625056392206309832433439766482204056781547031136183979171472156338050716554324775177301456889966950406501005366757474759322659611882366159781282643750713506082452391955676560596073381944251578753486327270933646506296433061734760373133026205495802147862657949481167737307141493324955703982316307938417797293129431678540638040675903288196867388631132024739863866587756779839301412034216298613334101454918870269863375090546546736280003546984920093285368631584489114349091982482570770466535683663512516120873288930579146925281301229597355983399050467057410887598669381221859893327758277489285128359991811974199167328619999542475284696142532626240242239271811939600281926790843884186647591498369953015382546996901086845119481124482260445845454701779999345836575567801902381823989816251429816533754787048613212556641766022979256428261521845912851543419640519663307644542703382986392611916484334933093020478727623046726320338472734038793629583491748941063153243175890243087183861386748672739501696234526449435844412092218203389185522317045145174868546824981642991664432728414121796955509099599172103773359055524588326171956442799602121314977585749602577521305949710609376345636322760744756229847078047786630706016649173712039434761977644558832827655073378085391216180760274211929071013294125186575257551058409945427463018118031368396772106024737337642015739012868709176061462396912875472497229611209688970323671000775743455387243170817851211119932330797951281621645104994779968567853692742362902940462163998165515134639760912313719997092360944506499566611857613984280671023207755002945972549327382093794609393187815545618939192251459237493321488583516296597832124631779249790000872231192457593626397778921084880128002282244791008242751592789311480788745064633258715690602324604376847880976275784846140560525164441007656873258377603716136491980215238774474726433053400805709083372325368243117012949628167140241258943545979391632518078721991336074430137244827870654705111250275349681435767026527280928078017313970361308259886769784875724613588850987631107097396675009049811966644425861201947754710287376593366595065900128118241183911472316303581350597985109163342342943352308290991396851074787006911786468263417728101556158954872482947271972033042055242693859469064322818074645326880827961837293951947574741327154621548605343758913397259518722973533049274554615395746989035448296730195499482182567477722682696067931432741551220306860971155029006027411065740561875497051334828157430317268370083986802627844908046475430557098229111877936776455885746954174041041389983303962233747646831997333010421512807934984606032404970534664499101173533192473606050909344322551556884418317419351617449111209729429360149038121997884109098041903702483784821681372070343086947013816679948603363722195416555788362003326692781146241253333728805637598395391725879865990462294551325677066431530086041650430465113969180116337456422404596575730867885316709909476006242971236576446618134454043999714931409619544368480126924221162865062218084070933859262397437756717718574046655477476024970601613064725366662158287775356440297717989731458372558220203763194151873182612633168981077785424783462925632109772003423854655005769837037948817184190045670740872998276616577333292820967706923837633225264351894452436743476896088310224762558915568967161263549932163905389913176555842908305143697407988591313022287413038867869918879694272593786683400390326811312899072984216088399339533012436884455141924189514541773581183280156807843689528733655217979209846462413823952504576839621197488423626153102378225284430702943334993192806173023399075399132966118775917331584144563538191032217977404901374039306866831197204530019293074596756583611426158526836847395482815283171108573433570766806999424116313754642235822466003480452951799174350031816674484109446435661097415808627305303116049633972361796818748960609076389816476369759394836080798221020319810338528797936979935414335110549769100385784174497768836188287641935820020027633467328941541440966931046654310351414710984191900249416244313577566639182411365821763970212364001872121110247587672162278052366929346899762840818464385196053138310651813065212396181370275721949337216574858547368509025392506449992971677131393426140793948328299361957322545128839962316431191454946901865211119998462142084485030801459085346905961261729411917479725304212345692898492333707301184813821020446979317836272393302388555287580505480129933203112699728238889747403859626425142371513433980549709632059546215527620369338006301338774700586805556825814362170258042687120263984402981171837081904164992939417880873852522949544846909663814550432118010815173515363541428270171323382336009167854372182705151210562733485838275057267269686360827074606123661199040996570736491642564285864196830332962310320882222129114430089910150760366451412109627792297317149893245129557740277113985935696619741825869267503963112830846276706278086651738983844888893210881955475007498188356960073829858044776289228601837749289799287412205161477325745815044330247753969531525185085320553066778601087155771286661901970451089333306279229668283759507306082702163329669843768409740320710594994256150042801140036287705402712377435102861073503509545866763444965584017855324162565285060024897083464718434932612715902672655244378356793820787078135986650902685123438987472369927757377485169126446588816459749090521999851254654780778311827106792731272151823932212873431454343213906166969512409154071786996158601772741016878263366564406074517997207024336797636641660296947038485632453239874699923705452717742446897316717790926569587694825977309593469063824887121758568048180441685181843731143709454302547351527918213647235229724820866550827598442605693764899725673210530089112645984291806373776115609525160381461091964949641240684964281112890141750022171760462046781344630763219512963962683731067391707365267786660175897798306173039845525835244118821572466859859931682590424754036190428637505607258039859900923962120825780854942123905768440919427709098734488369280612642626788194992463591096781575081849508972109467831970086140532543357594617529448172274111494700804886342638288095268205998485418387107326526398003095666418170464731573312131675455043534067915428496350986671489794884983123832438034586096085702130014932869500029125326744200496016746635150533434810048334296634758031473366063259489827735383559041433201607989747131464715527480299525161701610392013042288180294137669969107877342413708778697300049450874732632150987496545337790602569915694127089363338206709734820649692703915345443880507354947667717134497655679821132897470418787668414969605724696790057266467085195120196536212385770415366365454700332829232070458644752313175790216513774297952310724928930655410522492746793377483421260751777677437791926693267107967178030527287020021148939500144723790272917438960757391121016173344643482518296538028696138214219143572777488952089124840129636130752872941793760269952442514384688303580389132764060558953798651446229954151925080190071950551068721070168941154510628501932181300699220730752769395889058609395793615460189417195725735234436048919439756367096058755620898010292359978907518149883516576305543637635238760352073813060433199091513084087631435341978973751887958272284389055071278797576289706032578840842791419445014830530695148952385345367125926961129778095044984911173470933952414021634748828467487122194326860403990200339085766168388429269342908640671664775497868945686458764004644094245314011023915283212448591656256634361061941382661832574308390503682257687435590798157236315598094217003718628789716552271388874345752501615288379455808333424393825654639690058693944407480584297628042011046057033904228515255493188999688982199136591439603155037773860593399236381750078481795057579201740687035572697430105338657453695505723784936500425419184082106634459573434095300262251768395577085489700898195083641545978935831550371338029546625353031837401823589959895516268877579835420659542994883109304594313615892987987944223131115276995419289319517815664884224454266219982221111866790445005037077281020999368380981664459270147637194767956586845339561789039818973693188974711163516859498458418109411183904278382827996161502625998265473560207939220882436362755083488966052099936770042948149843566075145358537992017676095650066328132625915984023430893257429352203699962171062829264767087286180765176502829162341544715422400119387516787304899306741638737658000639234023762774110745908597147793768898338701665118341467200779455898482201085803494764753274034404388053888236412948866936453805472007894408894195827238941358840483047666719120616813694227107285086380349125714501620844076315210209250492825499383763720257773446504448371671752932546376243807459718494560866499749135372131878776647022623749869942789339965835198929911736530310346150423146061366850836359506660733995463465901877865119287486636237224580586527780705141629732757757660123235109381724194744913806257317987820859596271184737551404175465070036710453426425908734055899827068137415837090959493949035928883836736410027938485826521958550662320050438675338051978080705217315533365073799473429010176061673161030757190837198961681039097678183857594597908152291111759098651791111113777463345239709916114108565945928622975786612348533486963226688906474772771657577555402022590037357519257010757106425616040883127952110813580328220439292866111795052619005915731455031212434291839778607938787009428276014099852617164125750998609923103607259063133943463447223093920685509030234473204057477686081141073265729610206268828549509388253578851988168283294907528877313560968298409424226778108739799358922939424284478599286920970003068508021243743817101954821184394279883015726204439952963325783833274202562003931722711519053693417154059436844700548914973369777677104974887764742703270556875481828544557032257896836153743192915678922352061776778547329013822617061075744489091486515713721601990232319567037852003336857586225208737572208162126424487210781453922360214015067194490804291017601998515266825876818200542511139289665530580391795231626491431662998027951569106083209527237895462268058600855623407026517777376849913256273400779857005210178687967806879863677834863251186960822758631424123452538709373280516812560469079823187741574578456938684133577026405721162215260093524431294379009251214813971241378023662270403915181204064601856008355004905247465870794733180244054497763232598775641365506500883985996639672951037132865629369930617862167258743534198360144706012385378867582213567719280364522191613920173435902128634593253571937518011667021114210602977410072387144865553703163210398357748140917676322763653163971877758741325615771910753591845502982446466639260384251624986357071252093492021991880309298293972511839259241455450367928505240657121310437158040781381898018372025080438706253565281035239955697454828555839101241067280692594362697240823700514981755380972840442930561898185525614476276185646208131193644605204580441384680885832832309257468473053825180206124018462346406439678952016637230712687618444352724510155489704928250861319283788772522895908495396365959962443219851367839150663314475958204301111065484668718635273558470482131115242219444369489294851108522510361515864914300303393125675766809274809563845083561437956808332423739344550259637292893792562912387891106590386638064902848281834182864893113356509229372815460614178788510795266069842785593394615724038959381119636007210076890491921975242856013976750808963714581016847875741125608735521431725046654892400957941138860460419227430239143046687577022133962940149421531894973614251202167503484215363854866798080634274793797296296407413137724565765405722157360348656190964185051538798340226129861526335082868063565074923721702557007362787260162355907498850033396280860445004901723316900441228796183200982851467229683275824921672643854891715644784031186547912042035651435593512103134630169874246609139174628760818551937401735603888959372421376258145767399933535756701722917429980448688744528228890302146349506443329508954076658413265008191901503224173976947745351979326414429277081309868966887878842175021429297721700949394058952494034281641906111782206789802336501020114651035142554362099341719844733373179444085361498809802961114063946138314057375286337618699042246666925295895562728321493571628842373176773256908993258171026851455435871576700656653916700201673765720989868907232822899637361015335374980047543431760029199328556815638262605368747355528806214972004015555035917116755617256794333798969071911162561267234882579837651676302692691614923721939775387614058331152857565047263688521068506414962492658152258836267280050683618263195624293654141364874388923229110144668750619557151173732365519534213722702096328396660222085942304510201050887072013235261683980924785411950830816303576506240357252962482329143433081122162610428126557947024907722034719440565742296155631669921391383464161206341719918236734069541732067641496472102004119425546840340767457137260817607618608876863021830498023143446539959713808138329730738407060649795201419620722825988860175896689252777563632181150300064268318078359003823126838538091816716376489286683086330534505522858630994015295439795739970052910501080615562110716602518390026432874556654904682767960650877441580250299149762248454175102694153355855725736589378417584484704893236649985020188868502815411177158183640317740431132297231514884660630872052460130986867307709173814091668120733612433229028527699347581767016375015537808392158907795767282988481199865198713915360682808680608994452932021539440298960216943603594103624094360265684297379925902563633288690386347580359235867024641755383295749343547160546619140203303852617472378661150726863888422999847846554380768439389321298593498433823917397720332018858948090518895903776685937144007781265727749165686805738821302939520590286076137799412031509023663090352671105603502203207686813234100632767466515518871577831724724227738545097515160541977908412343514567777543277399408328552080805896350155708854845877540681706095699546277490400286528213825069502044222914479422518855570010042668510168770865211117729359023760492412607242631049819250529474978929448718667266151193955666798218535245884386711272807412516673416622895513988848027891889626590705669636761753259616654270953608688924973678360020875401131897259170516138186261151942388437493256913380260405383995667230746893015326624582373358649469823343270616827318100041176408561844160429834126364222264812305586798347254830014525190123170978930913696323218942279678274491929175559326512330991963760788098774472906936761446976847702314136413132955270439622491363772928796525274870702552390570374890911938447341368661512472214193067574762780201366246936723481630675907186167916158229881781765388911800234806864134587254691344588116028933557484811679414303550633187957327150683317262658073319799997570263055023491991606602095383059558427871279199755448329285464175564488237612995659287691295704194321303133838255197750653091406264900483957403302978183828635058606807742752187373303894858021502074064702062943991352507241269991653153732457318402068805275232257130674414146933709004954199824927830856147303314267223317157864196549283893263500737859596757826337376536858669268745377576923304966002098958032092479382795453338979734343067102809629991027624111468329276937383669581140620772361457011278198411981258603369963255454205517965731644777224271398831119294388097759104087707886595349818133991720790812086221273121730328901217026157811444324684079591475010675855026500187417197436560717618734086198036908154302047527167118513275009576901607011291971824242722452753293234815324071486370851137103870362695735177736906438730837673546692170661925415207787821144125612034265421125718372435932974653597888269501826947850806948055382031303185141564623348111312768718535733098134271294087614396743726822860320048640489088070944010140127414738178861511985175252188105033202105744139413720852860228240147343712735308054635087771599662741445469107994883768927121610758181574471687242189864809377378768610982974993326140569308105886451746058772816998646723175463810201207322659591832743856439878213835785018946882775882605430112421678905345614415835331341201204355257872932532423585885309640707373340818147506433276749215504160306215911548671082330216891341869565683652763591637631879150702553743257777417633681106465064241375261251687308679748988784646692602306320912632462666767563616560951004013148346920747627360438516389198383881307141742536726546385878036061645320421328797946898993029917455767155739451300742937093183515359966514910568028936282024554005860235220259938104047021147284423177802451974555974718322864475053977152138138927311060461823030586663504613718683000262567903330310277379732473650494540643886179340136926762115593623537726412693810507159836004040076448125799176054542188065240137560931834926408994637686695246635260127377860024705547209265815199058947839457341684531861816363885037761298100103641472144603459115126402916141963761515077352927689949526549550756568019582815302071938589816131005054478615739042043087223485143704873320942701183544261538788814441818022658376794657087578842087545675213780362972269394357106556899893870670713840522010300729692060620983592367753162715999503034928543894670247770979637111068902827661634755015579512098464032641250413380389262393050747143973183053714192809200456701338882647149635317725481666286399138675431737591066800381381053598191995078114894555919956654405045186218554681915204861345203606086842786571658048750518583629703312350525778886440917233356260765699603495220350819187420095883665337830465365934242755361809090506647753881354083601865764572967823993993429269416275709900155033341367340108334983541026915632635867246877197522878361713458704332982146300606669206672480437703961465800859246813092998180195817728876822099357189209029239882624133580607442391837923124872853730755014948599161034911026790289081106418269970876225599959860427699392074988842917328771823464346136958678746295879832871053314629011936439547759246665957456576402115671760578260561415155843656459129063380418054586794454642494046616865376696658080640506009002226249416457606712790280991623160183080452481227145935249218592432090685144899455717071641350252915000323571643998763384909090675110887975743338899766793152268223366148890849062076583869427556540778845611997274982990323924500897178090358001633944258069449043687659021923957523903979011743567193964570479773964741049559991005898404435544956405339349793186938283050447995345259396235858195397408311126330372966542379817706241392744357431828295642315867378669334565283615305623788037428531485817056778996444271334949345192591564707351205168509867478117730954990350736161018428141670201256951283864030829015991460633439679382574759579884293655666805706791528177511687895812924394605519200831102750835746487433749121870899795225345761746364607897559598881703939581327467328411026359495566026627403559692093540541546174564709098918931885545061056709487509231277127893429172776454612374386060664926946954322098512792244273344821860361608625773015337840874209188257385848998372897432157947077298225836702777831258562480075874318979114528643853945189034288955353878257521218357092400470750003035551325393015444970939926737587432195725556978559350261740401429016538263862777029214142640437068502814612178803508078017923953546198342954513554826771328758535403180028267924534656750110318994247428249895139543392565365607619482768476873019079417758489589619897150872034426407352742902922127977597720353681146414894867900698034921427442406321479365038147187613870296142268116331940499963335521615626230693239616826148152669864045437029834945401305244355301544464188909075134135901899728364809186085448093648788763089204020085523487698612621412050061363755655992915895497024171218185710449741282103292577758548142149733028008296396966549544278811772604965297496697696747711593877106014480041494319537389951740523609970947405679766916752822340297335849957614538050783635808396431695032381895937626600926192126807643847585976257905440082781444906779902101095181011419100462635559345022357577984787530992504912734739428973197610248284156400661691762233896823109719774452320899455942205518267158433281719366743714832203181018155318605905595295863009802752777755342048558764219178093101366675283678590799913508725684071681570137563009451725678771075549551730495238834249750093158190149440379775837908245520657706674613755072851020199240461118705757888526179834191775619303372148656779028377220521199736607904539437658036622596962171404646127855943657581122324576522076283926941291214762273898079057647992285612411317597876297046998417802230150014191173574975796988429543977876436175465578562923341166561301834391761517646599304645109543260634433573468098537509839029482943582336050368305335906082981736456460721649871832732728642959920540436807726536456338434729636203513666076645115664116038949252261498139922814096849343403989857711621459658015499301392970940336675431983205048938182994030104880601431076969476888380419561535501937658482802548697071508854903189618184263542978501027603652335976882812435363819207481661415055778956735565288107043578677330221365025878035819019696439500775019480707941770252327033802728848780950923152655016792527693351903335213784791318075265999032542233673305126976469592230893843838992939118958086889513621764336701196334461246662536930834685492164161996143034670020685958454681884117001276250418467485186694713481443202834123345400877801786252929162524713515033054417969527735815967036583950331210372238915094543014548073516033826735973906703671972022389654923085907797341690483171264281297484366490969514981823465429073113575824443008128215121811372353807144710990932546705533447235759485754840244543593714606646593600726038758322215998085303216248752244373076769635083765590786747444555317111592137002443623307867707667485427027247760917192935213854395839017229817416468597779412114676494891697868093274215065446384492202681535843634688241005251165022594802194980942408860239598951622545383827246676967987764507507522210070827937613083082966673570791154458854194554107237496178129861114759071344487484286618656087999010695170679884941643308163682110690757799619001464363687880894598723512580698814473845573654051450308990874609470133574984534983479233693118278791910389161708614738913405026298645538195696640682470254285967650441573029210331413329082052103210965090525929053733161154519532119948816798095136936495078386580736868989570564591851527371098371555965864569310982265707465063993410462170682411863597456081578494678481304540632005335537160804090784404585017714762010746024550955473154757968333397085148879574844818048811824538973446089801875470673313869138201629345947993943934162999756767429580345475315925916778046965164488077723901539291851820999390765532481986176898451632557545076787413818755317130179737436585775755844714543636091755277102519884465437903410421289429450395311033359424572477045947252133415076951255593869028900617541051686972852464952761514222217713805486566958416685234793328085213876745381362432880620602136403708782686085790744539142396199019646907449021464524704316089221272263296329220971530920509957536221800602633975242553739081803784449204814286136840130084476586186424061222957807399802872905846316212743311740239417601551701223538890294921584520935806240583042779618503212816282215333659149078185096215391753122251935272929549282620775091009607814577642825085489302664823937482898394191416117016099114389846025598886820815246722414031953199437710181537445531523647564263653499179625571048906169213269108764873655132708467207626019369264776757456338271202611990887775862616493080296834433828885532392361012922600765445146947679146071447892559647124436167638879657616725906705511621365066411821101526698030341481488612424593528960250433458877283843553590337444608103498180650737595067776592183867547119600525018579267107899144454712709246610206683954763935307759573378518972143133844457370252808391521995784452971539928165049443814844401846495656612405947412543629857760080558091432065150505789985252514015433673624442459781277591635288808520801272934943867660809491317634174186343341448811953278726713151814978200609410654166013972315040827803693439671511873070558796245953590960526537503006561625279919219255360435516599058503842766299812487878387913529199907577664414228041496603624711214607900376600797706941102837585241337362043258271849794651764427949598651172778793301142225302009565133862748349097448201312857024537765739348395360168931940968519479706241151589148031159034696765196405098884268198856711707714114894147864517619499541862957046191782450450982048289803329772971817904052831287006449656069544768994303447101140424936315505038481031572888126004839958261213711303338044659218195220740393479249412657799382044997081407484484881170200247630661413906935973842851052027816889963002487522029268097467764736917179408213692574822165423895954903731501343772955843459697264550297372317308096015125793107138858339842966746064724523796750181060798787852984329671994701786815905918103771917551744481791824483570283674854289172334704954300307444533007990118667588961002360188311080266911244593030511646282261222873881413178256349497802480899178881530745582691617703001788639027841971438838371362233816687903349752063844919716265302045777595791977767588031596250753445621954224553900825795642944412718759998929998494621549573772203872930040912836652013007049397080742119195869358266621423076098182035916738592226540539001836298416035905302198936409316585866257530216920344492815306538340832915311278820504577462671961186699670094626527518673388021036049323098921762760513502622007543121255393224809284870845295509582119183629470025857759964158146060069330952323309987833738772898205919729570877489862943654553887830774465684212336620650791806584417004466349493243372423432742467569113511075102972941229912451013589267916786949304037385734447914543654689966281305167659128709162053994034420680091193311660673825854843736616468173395737663970523791359259116346505705461040717570158858700113121605136910942945994528183441494903586070876823325271359156957309351475358658138679314900859324819210652858704888830859046362875250062106694818442409752021480098865288115011054419675171845634270295112934255556458980275050625391302485098943995917503112015231723285830720441812486395086565841280607919730376269841831284649573901324093025230878634647150025433032560712306071015332090233261319015682943542252940446040899301443865386855128572701182504908543770046067047748476186178588670691401846671881573211625121443280225018144141171583227619074068374472820900113087421268200011216948308274039343570590388049864945701876180378095742919022883295322712020824811917955695230010627247803002879774097556038431920373273469865823764320109104789505114290940112891100666561539815335856873723546107603447671205201352656920669866688439728238915591975910117460197396409097907864994809749007448920425530707451107539040966109052651435503699198923518557778537612932613277765222181854901509389541592308563286245358579456535091184451125958588044617354684987422193605183873914534086578511282068447110140874884856145935461443310914678335045401469486200556323378697615364665871284053656331291411444367916945015080809005880796666591641432246447336633763810802895927536002667679721815316992862608082704798167628762886967765218393258329776347389958521887805007390735541606862928663273999937335699239907915329440032575632518557258425498696695686212265170357571640816302928670112657558161622533442204080937118967795257825776080611165089065998602413350015476225210238831199181278469996788724352020133414481754538620099331769256084123867261817311175808191034419834083069316479617353516316066995201136629829240806726987321904242409871615993110365825195868125195049761091933713613769087216181271123925322727985854373453553431059875242350004711762276303549385809084791303996232159152417691768581150099921687777110892503116834227976556520544955332958433714922484438882804982901825414903177185000167538133213056861012774039888912217107816712629726459951015589593338379311512617455582026861669941006994012968478032284275928606679484755947381630324416507680562582260997832392635657995819374405646756506731607970943479547429198639613086711833066556351841820528713843707593751930790226242796486014249807312202736821802800069350019692739441021634183323424900783126244842185536488927287395456008410801355807443734920496548818001049546903198379455306281063989222518128970152013178284856984303964995902121929003251484452773762579397626925681646599579938568966775949231676197697900385246242671969587854798064081746895474120296887036027595718990881775336759485124799248238431428507942893230582647129510280625220926748592015265193554346165854850657689585144305859618126816562916765830721713828787026609249301243552745916917094960356706643271889073968230985655186320666313664839095281337192570287156692673880119546018751972771634912535577877089518198258498966765367623061395220628566785524631894474060112079195611951352527018452680642184827788310277300885467229133977569832165686320210918548382673015044678026820949479032870797561514585221577504836766126906634947914947747593144073045813307587899691627516030392600718775303101048682332320517033439787062177353478662072485198008173663211085890171197036265225082771275144492415408427783895085176686367202890072829496551936218001300924161290212240953958658589536215768110558527381739913422422078086657693201553842942778132493663128443384594597821594391318027363850641358659287350170062507459062259367949033305418026123717751897170735842191936976396857543844116367684104794128036271448180014792510413603170466112939007489675064167396844844543162955017923289423148772102183661303076713343173860145400859067424360856905055115214555629154363655743744493783697938977355682601498264277928786954446777752741340806009651777909124439663140714120513801860928856959078020165702390258280021662444719043316993819156123855878904527452456002899617079099862825619080173148784010583613946838330560997500184689149806541901817924779128364729210116673694513909541495211151450908304996977319466997589696672520408422867152583098655884231471327928966123516571046935693998571867687689030918612678150187819617669787266319187420215492116549267228563668332908994207493517425542846942732763300371127639370647807850853474454488631615186260272676347701083278748417268661953448384770848948031497105725444207356651320871396728581075022121612822891076746319679766368749946894174372959426903340455130849590284062974382233211588549550110437773253109651772291457884522334102669460203821151892024462206537294550127114475105567716952370847255989427987882094599563375689536321556259565337115740944339126487147470682477996099082889792222922680877968629643346534765410538821263292689761743939830102575407724280129088372415351281094688593333135997969439918371514694305635360299235401056434256161988465120860973080039078553855779656722591732008152738841523150833380424484395799306486665724110132471213352591285367909140004949525782482677933794484386204033842557835564229791869269730904558151411164045628998774826175917751110077236832836475021618468957651143700492166889671782507045270368661359384489919218244305466344806703627755686046505855522724957403869628020575896294369535033130355328426955326967598529384652376159965992537185886047592546583445610884461397714462708107608931055391288976347896516884037292916674654615498852414102223582081931037464735087603811943994773353536134617558319478953502641778447217269975560174130005214017088231166687399460109559065758535258003692052783836081198073609614855258822328557929983756476404002943503048904657859100442557002303135846564447316390085638353356752163462576536395365939067748414999524028134519042586465171153031098737113367774621434823705588020799689601983589108058179392962680007492199626252645741349224428780681356146087160210097357771509402811735460008710307071858203656491977468186507320668481596434189553767427192602922485881736771216478602240548625535784011335368835940955752026505761416474926023972354523462852651462791453133391979429049498282234917588774670528437269508666391233988985894950985863151526997974056571697885622989708592464484721005790325571367892537520700683486283332649191293041034882263623291107889417666203858479518246384005166582538053711518591219861278927180860727937626124385989489388483958133330167486373693861032111442608017478551706674268656305687517735694042715507925361786115814439475813117464353440271377740769418573394305936014830100038388267828550631336178190692306448250667301513387186104318557874574836236991279212899493412284493298189843012914725689807932149493936821063085208078563859490402705186013575299700749366210066920568939472507290717496741949568571391853867852737492786075390983622209219636435295073871435684519083684407297238808830406586732409285905594125797722771807520575240007339808530065047980952452008823785917121929524674076272573430526225286273890308348148444078276640572642896880829193590800333032771057234546190779473334464987348409636000484397604541614380401227351479139854464978873485196866383986896459965094592471284594802840228700332173896249730384248161692488695164397932742013651867176878431173449794934042837408934506241213788108460633294968869998966442389943776801791822618513112139762134572358836931668723935877766294162014805049072086217610398185043716080838572522826960422760699493459253756173411632377503107223067710923904562983538119298106763941501200483263531986356710642779762246077227969886866802770856716830154763029331530491316429954068709541570988492183669863402265932403079377897549886014788737515542513623425498534552270894666558808823094858102119978579970882306762864100919034503355412149536624077341124121890801551513295156194738020989346510503810398047266923590093425227184655766815706809675541372897870695274966871901789190947672103979510143473563148895568744760373652492385962183956006420367620271222925259365475290353445312899439323437678355340622861327335716699789734265345278389275519755259464935349105041404123438025095427835863874960322678271115814513386138918932297435573773213174973267355462455664862200404270189349781264030976429485312830825179849685327540513024572050258361361173347084514584598739131031667180633035418738962935205831312284786326653023286338187638940059371988748311398374100277089527693595192231365031486952580743489683359593910559755828870470857479121767249991458634352161690132290502531781101579407206324242914619278869444080223445119197413103057786412165822142854867617903791926142451941472123882179903788811279836025774441822442427715565925160867301452157070994882662595795339350613414433665358070082408713297749239751220405901099926575317457806151838604512021170278407456265465499585886845257496189085122989589742827125854034370697488251867348057746143771993480727969088564855653129401608945449530543553836128335762252440269137502254010046487888908360167495218752962395165516345154005048128201385439322434784712595310931047088838753589427627046261084664217140233523942320876750800148705371243561489346029273082544023211581977600228802514396861397786022593279120102663686792079819285007498735960471071116352844029896570680922191701396157330730485850446440666147544416804905720448393774435257068897210081548652023507104569000895349987787863163663699308074189421790667832204704751438409037715765878917635000110143277388150461583386026510276567049127354853886379430308525347593477651560731508368303313508444291237112424854454017991409942101043100949949189873487102323586749767859903607280612724925742135202118535409312667188067955631170235820704943202426489789863937208953790087823340158505764737554414624013847289141132005248674397618564441540811752954708153879456313814902570009503548194525334190056766192365680612088337087492390823052144934051635903133346632668864921305836832954541595960206570500924292148628347551469090190331677289289104595765409997112166870826835026834109252016058087932498022006006635593856332989541324023269651192087267642088941172675111253054362544472388088923169417419797809199118019083156862618612810487302672591725771851735589491963834027223113104653120019387596465731841484967002064255812421442328059211236159668932242294855593432140965634073408449788736151540092014575853541643885589668760581382436390308812572548481976685774225009498578448430801879532355279893924119677851981111640185540093484191482225236253480751723483903183113639703409796044633849845295554318168930759962361383586886481258975567992709803209745804121146249233938121220789919941900298731629461778956717697010741289295008328247831760919514602813048972806015340316705666341726626083050205148545765410608455439477181604202870554172569639668543014032596805366873450298419612728514619129421703859878394569152006535897808806815739949629880999060433488454100315364904510991992692122554687594607531723588158168314858317028325027222804638221124030276347865146080198898316412309594302141294653089152124442276374458827385565365817751832648168708863434406816391513070989684725617433810381959361413909009398423174469859767254017661898693272204815535792398232834623601390042138912338712344340600624099443831070805867075578713425566356560161453157038549119503893686035642020924818790795593396012798697767366092342166422693714632522838118759845820540822863518771521533781985749207548940733390852739771818923597264730946784796452722427731783440470371407583707895890206321355766351311543034377886283354113367836142154866944192732003527650289826804716533526732332347377207338252592708426143120904422032198571702907338898822113143426559088587234150853997522816423279913781146296826284416571131172568866660477063095987954109067197140471178219248312906610957349758980001093872417601290083328910949131188171536097489999200907988911882632399859533370427540795373474064888124462084534598422664055136607214737645495310025781892622235785261320634524588724762185539602013678743150110504510977219413099980556983670687376937452654958068970714167103601985392288213175922242720092884303930462961186254884687098761910869372061852866787184738092255779378542998459866794220048636761228732859434035007728801640219835246232496412171273802013031655376582339619042063248431154351138206887682698428292312905170574741775281759076055577797369850588249863688564120707301915029763007470497091519522731418488355474523593525700800610227917094695991366047911148591303537618373166331201354764728076025482306835640660158945531059377766436279151221161461058127432539456314043990950347950916902300740546641270570916695791844619057326418808946257018734729640171651912357839041167371957554949907029790019473439964544349570271219290742900749839918925378652667027342261154949232090104123279118276523617127944365578524221684228243774975571532503091667023973353573752612966793010668004391870784718958791215766489154414543157882431334369006549468744848905683397723469511145193534614531520721646488619749199546228972049531937934218015405688335279963605942228372089515297947653171306422770629792207497507327912583213114588467660731245620665230801876307134935568393150108953985036413537132637289363153033388576014716897218009433826268498515970380550689590582490506922729986203976771013701801715454341351506662066557770749151720438956460468446321956537082113484866843882342641478953336144358750022152967842191876902860058886931740539573389798850849396851709112372194217364946165545336868028362445150898142289698099712961446935056825839554588540272222503369743251279286823566080181257146571135634482369851024600414022978358567016667690244298589070272184620072405566122188779284425890298185682770917653612712963099044645250524880759353473157239191592330955388929445430731421163387341906369501367933559042366559519924917468284661039059973201941603317989609719540877318777431432754867394359706813709781427399568440084405451550062308800596471424285433710568174892686744935474483442808051032659791223762847657896455619580134905706645929752567893489652134544081310403259929955880489004664657725282840571779801740212009856534699720242209074402864427458897431709525794163239199924246091541583217023861452497464828961563931644583009675306094583172017913875075332700543664877462642830002168416471169100213974268608399383871384115269479653828349436157975851502322488976256794876221186426158038488457087553184467722996094015784771884902173387983609407600023787332317631036717211821196439730639936882517791994320890686691666951822238713533012147124556973574140456133796750768709088528766818801910815917217067473267055700908207379235210236668551063868106369302122211282472843343478780772914772887169842802142768503494648930364191224017599301719086766605984639005394709062387564272619256433565728564977178389241164400166200780719020288472637462157485855856472771944660687913735130341150039872519158225900891326037841542674776508615558131417987757494225660012574326885681413516180258444571348706383153033952890851645168184596442089823964306035936109505524466503401600593526564085164005230035280475144292413673602746658732753300442470054964155042035866507337516672844491465199775484239529325781132072480856147619461835907176975848150818708004348537404115021086685922914135117105843933084035553294988565838931144255940408985167487170754438035334889978209387557529448087342485632280572409366061011296011977013756692372865720373782271207344700957762754470409954643562542968879370351110561880811821715831917657356553047590630278057757831367719426144987759698429170172166241781486622517587358364779236686725051435883254210346483246570977758350677583861455178657316085988117014241248255751641371579017974300856985467459071906820830080074210450896326012399195340701036666832211062124443690079347581077642033918926089628655392874638417956849512424021874443110095312984102042670073890319702369697508041305692606522429511199841972714342210965239820125545385584295461911053836818630126983636678668395375569149208324798694703205001026302901798759204644679010658813995348724644441678200562679596714572867546256892332258713347702818901086423161658560349024331205384893000840736437131910192290235990133899974461397643403571653965943078029708892554783500822876875969164067393630153299331135658920299082510315974370132340963035479233794059292209958296077639950410471406204470097310371574757257153402942115500803959221915989371255218932345000427248146628830352505428251665903815289111270684920506641811213194582010898595695414473796589855431526906480397434934291700123545770323674923295978477371664178299050304324254831917671235128305416175585905369805495560860252249477429335724914080467428974392124792007278881316679078338052467618394018076794880271823988380635225529544041053546744776738892933921675536295659167549401520757929433395169383534815476786911615558302729489343625791600753040271619902816468396688664042974886716308186099948657821670144336791587856492547944580931912686271850172405081884274763585340176926800477453047246696157993224105759369001265027371170867760892689567168815665144940604598406867261886897817675155418207409430476030512060089088774919113961042708019346247583102084684447395788147824191461161032854095014868297778716798359414521031444014654790620437769660961755009434426106035467175928198853225196642774889332031485389624825107689428003170816419269078560523285979342481671292483740912743348991173056022376089811655070533166684115088420454252830412918636068235061464331815421787909480041762480098946029384635199679333192298333106760109052958973831649508939529755069308904620257773651499426615448868522960457389020610567070533844402551010890495822509848523743784759480178695026735584227039277185831776465394411767088737757720924686404152639905803020706393977227741526774205196954879067328575865258622666482634115320879532532565118532033175475836863491266023102129054182739578268627671782396627598911452197768829884576349062714142430586115147745519944683081233761006447241492592335448580453502779704738100702209907695797575676507266573527993903130975156830301168817604893771839719442968822569522566970623476146061401125556067589298308333689120165881789897577720156131019234543234699946269530137316576902786107306527321648400756515195330007851554078363468654101898436278314073463804329378161255244117418623377792830164420386318736386923197196099806443698899041231323718510609489515021547931965682322984477533616139528918470935249774625904486161105323699855741864669002974972130160321626645894039003556425523229003327498451750808696769041098568111500954995054730517304461729208560036221837651525268648008069581124345169674338633075576747414130943189165923666631139150810879373650050363733537122134218263310750797918195271714632527465583267633639498859164501389569908121820641231884820931919482285985582084475940103859002998189140837086452520814099834869115415136483480266176635308836421159666602111957946358213882030736894867531314052946703003015646464819109165086480811131556627039512752852171807840293481611504038508236775900258585265110274172197842454936678819292865592308450929846394759494631686701896680261466256251528944389435850698557471754525576579941330958457615419559590038908916421545941304661388151252839058197527640074221837692552863637796827844976399480601760649955236249583301239920289172766635385727229944098389374881204965787643635734514752714824111256740715202262274291512650486401452126658460239698978971716918524834452710775768632669568115297282709287110497580158653253558820041070243706018958204190913925834981761853929760432896148537583870150088387069438292672400741872825290468620615204516548424527446225248537697170511003311093340949065278899100183490671376168689136987490635865050576242417343460724843817346083745614836713447532810411139027564567288045964936262946199212221824321043928728068170599497110505832676383936869202682927840433613723337010344561138911355658397683687227619969672129520105621077863679332042746122567774203345157090872354876472108275275361155682019983372416322613907431797267573868493977845593161647109270779628049084037329445645307367298102780211847938697835873332701937115671629952043800053463899380426350456805920326147327588212545217394465100134906486719667863976617450724480371190451030272405091558571553406132028014978900128793163293124703458991927079303264177369226034730775368823919399362438601277544813995000552240421037417765821813667523220734534702567942156511981885454128722297326196615668439897292557263022027833733165370294134373428386210315132072761264647183141328708834502907553199543204488712240612473096241731163456571460632524509276360840480801239598791525977449243469747943815624450913241904449133277593442316765761966093272746588615518143606041015364222571094427891581839944478867951243741715207171685789910994290236741632480245504445140022905990387986785466856582308499552183105115800445655118581769947749385439760715302571854661308955224100567015320970815834522910359178811798280263648523210642615751285718704317576318118911387762894183578684975375185835316957628987738870471362181589703771909347645348855878496267077002039223245409279391672333285722824929129060655339302503700984558713197341235968761302077711431572505062189169023232642657206515285040298099717806264856204689320504740984197431948866603013240319177576036040926322221319855748825669574224104805916448500205260722834189147393046476242806953833680429280925408676285391035705124861229742171487765617369605541970975282654132269901959094100603086378264641455578128754406104090772477110016827409129024568323236583124980127873149466098607493468242443681414656002332636116555538126643047783563872921540428374964214587085880855598583051160841575539959934888060611067533094205511332361407986945560764606560283735880372839415642164650924147478018095036505167124018263316588751347112016297128093368710686817751034735041754575764197479506849585572982421842340239513172211338078868433084985244459243984394600658560124310510894353228972854116140526740260428993323050931187567896208560502665429852369522888302114676475482835869733452330049372433855117643338412710599941122026971903870826211918866111635750148206205578186679235918095679755611256532316364561409519914290827310618062393946810780686657945761166315059470497342200510632444344822647757530593439256161310988500941945744161013902585160343003851153872421158121816241740884429309990409200107827110336882830358848820431488202282036338404889467178304226474071011558075001573307085293570725524770348648100741683575945101272097964994111838863371336509429723733352930183831945047576067272396551662004716790585040844265969286959299055286862890942221220307763035677257691344841958568142532783280924533992652565700981332485549323632605124253562570376716993301767201372453861578401689133151252355473663156543782421569776350786849855445170205439505359554501640245522588167603210877952554001156757091094729834349004214916984639489767986858627789359563565648118888907331405475454604610150168202044993424842943771453691107502844148778723212067390518502916901126956713555395517996435819300697454412500090096254726349791627714518185189976363425438631112083362005927723598234578572635708111212372863678627335974903604253103923199149998687252338823316079324304207011750882123082781329125710087436602689031010686727129322968268135961112998992618634335061426320927309529432541888698791343064786702458921785641267808092177318335073671157569633441450321610772520039892581743450890266378431746491539623306613582956609915738095101863777550183923303049275188814718891820040562858821120619655461514266081028857201526318277151580100571707324537336932218932578733672891275496171848374818772520990721876514335955477230791149370975510644569851789974993796836426708568413943213171103718307833228851554782943900533398292644653114411185726424043041160933539090081663233039739498379552096097711486403881500493309177129901719827056416059584252422278857880595757152766891703164568847775693946728433861054841090418740330367685865474326834001109616863720369265905318260369105324701807505464441502303383417328664043261506519424571538893688508049593929627534515630577884607748447437846611448704159026190100706361871985241523504095988347652172477155576438112970764966578716241572926114470392015399068715219979178981606937010160068383494738783898003676380553998499123455033051750035736258002877453498658176796093878584713573734030805545292763761315676392072162036057776496888161249703360662871873253137780561415363644146174400026533524682372840816142263688800450358956666557072635782754713385344295210871082055941115887055939334244762886415881470467102172106437990960214899437496766594745596611695014890834428137238820869438025096843270195402420202499309046345346729024194043251499770105789093031969982557360050910979438313450572610042896232319370181935190449558151425375637738310211108265657874474567198550210236410098632560546709757995662498534963471184384698818373014376551674598528218455778779261186652385142741415214543186596077753360445735235749576123868274940156918062731429778692516721621580246205224122100490640494974446800885197077902115851200003067467642400503874732116102661740127412050234860476123116988275696667298306721195420221066243718578736894240054264140245281279012848703102609942795086539771007042221096977448913465954591374292687293110407075487742752277944889701768001619697533592634035888330990540973655549248822680730673272664421009922361784435986985773154108677690434648629378472120320201904143334716596187388459186054541112404978480196006149712180511488293748755525923497618561066788196435548352553838036306567590493511948654509440878948914333125339082512042339656520205588033311127604827320230914715338924672260124039128291229862398413831273960067996547218484985587701454462011509210985228627508500542470328524713355842577360638710204581200648430247458582870615344841658975462661613007614490593386040666646511162587739229078364486816950440307130609807062508160533619862993126962455732172366740414007747756985612557260482854103092652375943249971091581101104016679684163356398168036792665177583262178493366389802891827638470821083006247961729229593896125737712930514850593457938428614609118698093723255218536584468624621269838082844755738093578407494877934155109361840297524032148591677634358559932488035689045180403315453804956272587743464112596746192847849462519874078076922635914172744284755581735626131513665559915532497239835441002295569532639546696944426391921157196090304863229389704648702703349512980672700776440722998314829566628574976295638173955086333360044249443321345683572183829993412121861335948477511014778769905483543558822630360085125020426970325449567692052429818997781351358105531472296105482921052003654927014124382797103327154076981954557382691485416559788104929930015511814542036255805356569602105518738831479858299414680149673387034661782046818747624398257400059694852175930612835386888814847862074585612040942318005576567462005279147774603590902059935121372620965383268825851463976138975765443654373999122171228481956802404439048099231730709922597655013634377738149216317408255301411451863855156386816636460764301480550803892876668477820047819145266562126090094070107460365322310516707553261446256684141613912276276483136476211426884383493995219610906791028105153684030263491300997256924129577269326471281613915777681097964376469249221460350130412140465703658062915866642879818705654941309272449826979867408138035421474438676821858949123578696469961198535985174915071799161113534742434519819366438668175059719824395981362062194081024041974620045831305329844916716518978603557385082311567401188043927243931980255654187603638978997724141647474402952746798780327322504427131222425376062127714843719043117466015871848768927011185319531117275214622990426540322992695976409590277326033492920652971981342030265118940318990019448075087877213108937347121312466530919757532651353123961823489784359649396746327024552312898565284628390013641024305320836166460874168774335304025944709402307204376945697751341537109457072262327544181072272930892576824156394505002293759576493348817422831655314027151544195387134789808222559856453060005531634874833630219306622262191153169824639915140115401458851873652123064792250173697901657912257379475620557650168730127613824195812025006007760684575451198011596547636578190245197457213343373465838908983002155606921093387737035617767494994419288713118501021091300003285908571818019503958743775307071619345902912400759447651602383862838840694547712007922551471097993245478355337651523479649990545081500702147093214609510828341520752293724328948125694965842931242425732769757858286710981431669954311889893278336898485859798285945030580745866704809258567844306995469614596945612961394433972879540848345852921639477869039254897221576223001168821094262963439530889629906496243967025090917843118752413301231516282423839493041147250640281519704488498151354411637193791196818111930831297225325045862890278288103422331852919621590129342961088768541995816107002916374244174278027558880315876742481926378403570371936833993234283713418859272134163593732436661532993243518387645936265321014331152173091021536708162377825693342833563678760642298835684411168148906605586086706906204869971834282104484157399290691873287037733950862322078029483364178969769126268013472856167236354854970837467289460972008708735413205705127253771581161903119271792939739905210381336471724515585900937471521360967984782409436238172407491606165166500632147408449515264864892329432008771568129223601160580895820876960001114352829614306815793518163769359303535951444502142248990440032115396425876206172341686108176524790713867491227782430718869536080221431479377101287837589454343769651187029990499523401388916337618756883095617686518689147703295206826452641587794569128353425094310761570507424970826782862802403779177043896341593677267331803314602884191630029347683244077184226935657797892971777920348838545832800197948939583516462564985380903682741140345041161876810075587231726222550078864421051127374846748703954394559049101457315137765797722994548641191565310388251621267635302080961056007003155253128916658823570391586633196108479094117234049943846063720591702961782290767770237335250757038364994128973097400256204457356815093647517673558180611507136434685963216963983994286116292569754342195267101300441697837219895945594221986670559695365873707933932222900038371652767616457034353298162298178451786483229734032631902121931374630286169319344346287384190475487428881090998820536641080504992387567536799341982423002010310901589260717879711603707714796320407830001439108707073313344560860007515280310656735415984776468009043306502719095598992560115994318997176078877431064111370413968647855202577228789320056330014412496538045056133329967366843649465449222715598098478227681307288558690077977657433823582909140486143918807485486578517754224893466417619321030708373782977576638468136105957170198014878559493362153931203564069799067946294218570910965379672455391475166885377461589924394113019737940067041447104245119720940834257213123442121513118999545705768364608293615000671166230190265487031408235524981289844494577215384668203882985865131933215479491027275368867136506318863916141647768618821257587440382294242619611525476132998898169120073194812935483046575604883535770008721893834023583351769827079133273926853563844925382545876117591087081481295769115929372939499443287598518169943133137037008250803792221720973409239805377918924114646926352501374861529064876854534106433706691804996556290757959394724980114999197839335038529396701685676142710808495807951691868098998293122441629525350716606045320176380882963754951923546471419030200086939615930451926378755483551608755117728763281922932512033084119564811747703237836899849922656027512233474275970637599790010088042690705309968912872589620791812220554113703926801561871713059458219340010635737805989077915766626107659976596818684089628595842621099012736222823270239186459285430487477762893152886228529902756161576302401508906317171711970223212078933746028775882928973733939325029250766006551115846955673330251540485161873609390364363350507766889866623024184000006574598552482060957628087319236550583656417217857435450069324576414631958506077644712519872507722938278199707192667431811675184293848627183816213443461865966933808930205307912730616831958985079266216090291413991643443514083159179358520815135239928897128168862422094709653905453929543390730010704517257424310328399397116643284190632976847131061751947811992047129080108858068296281333345214513405166820538722402348889054255101525312128690003399972977868442432024248318634841087525376622573472005158977913891408914010621868068624228948840207245922610308324396585706613133533957353757413444052901949933885276541684883290751163388008034667941074941814936506770176884293992469689413534487046518967619904926225721325198461397855063449823868107227020177126257309054342765546935477761225191815287664648162952741574647722885351170010088660998267204355295784024596685692055411480560454741727236094865207600721738122378867994003988667373052836292738503486069726879543799023616080734422348197615724422212896376071835534003121982073570027403177907221527891148212734187885286032374687608667294571499161262018157823680669723703301192581404343404505212948960853805393680068108944213043140955379500676810371570988761793113076493408928117310980145285393704837396981267777994001843168078293889005936764504084107894449999728730188744020799431030426540639690071864837843833706178100789659502323164879721470610983226358716340805484584693775664953301708158476021624099817378062317869392977387090713033597020721833076470873380967399389954449712957673139584794423835442292003425254929231404809618397357643545888661186260836114503205414758627911546830387214116184561768898645170001725199065706068369194449525422320010990492407223686678825415091974144971415867756105432887393462282105563041327938604244516827664423098732081592490438161880504740316451354445866449798810331180210049402690179930769479984064605869903332532247006528647500461989305905550401527738538706324377655471657075733214962460361334133971095707946121515437370546989643506395802425856798209531946931234073892119644115481498354643622075115634991449800079686696108215523936343507119986172112271322053595600199209469603377561861949053173942069330665948097083000653674744402990223095401097202872689538433481079625570231872641625936582019439787560098702432992544984862454835481124382786579654532260128808009466529248727435998701235274525395773837397334833861421280277312211819359334645354525779293701204126793746312675724678044302499708476575227604456510558422032191783937682941615693826920814147766428751961806945710463733691034448103253760365362207625538524174896763594851787053079302153557654754977147514349372056327021365837678951273360986382473382623301496748710530362957276612304001334250432501457117332514995594839668786325652612622498534092254541324826120209108737196906700788638545458930586112186526963888522609062330701160890707680836092205171957433237515822507929333469018581152690501939276039920154018372811993176999283018593805451348262296106903189430612079463803831085135638326097055461960984915897573718601162414661976689783590834486033799673396711726611886653436118007806329880337926154497282829954217938121216530745189545469427860996425859881925632331667742210332430045331523281093708314693349975018076649357977831370780420145267448725456905425372028180120152737537365160298286007023371055483619153031100551288268110571663215349744091973754915443580932138716180774794064325342920553768728548672929124235996168460458514845935425800963060352631840877288202877936688983903830342489654324591341001248602039217107740553606226355744749912384467627576594298982362045459764428777565001475724358973477142883178471999884782169891734811357170660584290212945998005702041489505106722556904840551525570137043654197057632538339457747252542466095704208128925737417574782758502256847839395191904957068253122221704666233271245981945256798133386249840391685999266313211549477087386435114844034256466145880525469891038859118244042471002832848627708487717527660544531819138051050950404328997305413505238325926174065571679572510746096990065135463169289793016615685257383639082809378707814028200861566418948120706206264307087377754036610505173443194222348352175014838350566626796128056896591072335285114186868237737234774474246650720494706462570374347336526031348140655117766838188637786373743773395514358058732403911119132154963119177032891051407107697984448438873726476657370239642222301896227718236697062598407651020838439791887821029413983160199664469608770866176640687171444078498219784125131687462673449230034122837383119613309766546290713171398510435456982044440692652848514691464512554780944698186612816121721033689958736503737807027051033197233690241125909871201252689244957373040456425428140835900038352301478091943665386960944788505744942854355944228058541933237969896751175523379068158166881499653150701196299001124141805764168488710145535286255785210645992494683172447885633347039593964722563122602718636033995093216612520267605508105929846360692822125198892421558278203567000534848345101227165899869689251801602061329626784880322911593189740202233937621890523591614858599341580942143043111578234852059860641200328788410873047193035632974506354563253006416470208281292588985434450314273538649259088114756034390303452067889202207528254028133794718579936173988883496110036541576618998817003974810936111708474085319085195018820835803005320296817140936793892003668328308106885863501449929858986724022452666179077507668364445708913571418499930069015218401979850199570326392889718881257055457187389582225298315926196212753365648110391282779866359945814572962839616245063745026563317002081327607297097389453546459874674907245170291916702362653098467608923326325591360176730939057606576387837371766837907103579832210581826985753899377005832358692393826784653936430480867383589804083705545897396418993660617502992228075186075225899509924623839840859115212579694984435245452083683957035976419302317201065674792550183521512564029132567768273611166847832502037129496677837043928211397356747701985970062073807926486508924185202541394579431872739304936330566581391719045824593666060232095448968570591834605883523567988668251832733260495527336569411976618973949732703433052371334090148831217473353981888313305621417414280625395022890830656152643791065848936094548874461086448829077020436699368463697721351347345275981267528385045671982788918341844162538410233193809179196855821712937751668107844799981637852029425927704253252307328958505084672910073459528652742115857112064714287772960106908510128470614715168194494961340741635083101892519132442537803024256380568626784225558834078698488228033906301581712439348588356559138694337481323738384085499813881083609494464735979941812908054949033269190454070457379669685494343652251995978998376602321926787654009832936368569871244833830129489616170385615460920891789242118733748015799213739701966040028904350706191283132123680503832477930595082269326079370609746824983341882825609090606691656918579519198691235428489000837494749364261367932235852923880908189926518924875903785409179991626088504133757580434456795160535345058117227101231201773286872304903952231545712867715609060007263263680466285499751310746963503186743016853174750580200678079572305532696797028469381045331178089382796605577086938429357963339108485060754127390863304048864406736529649152820337389520250590806942752029632342262266195190681166184051330609040658174213481090962764046963272928823500429439061650746967771923552624146648134720974655744839987321093874369414303358030021985554395340864316960542195821564358942078124808655725513198627158933013539498049497252545626848698784980199806092946745170962260172131006327484230883361966537654825509598112679850189714101309559635160407198291670415062404353245771731480844458949941626358912603795208432880753725794700525862699147575029005176113836052612700227888737493623520410576864644801933806085780120367881466363764387551607795092099021268347303608201631111286509298221467525663089588654004156581621857685080228369973845764834649998428644275274423966589618328959001573772248643991878104628654692331272129693220357828574700637401037428356519524796356752050040518197895713990050767429255760158730999738667010424457595962694821218598930766476362575435451681271073518726043537474153739830612562341361309733308324303276281657033446349466155403062188535989814697286974851080365636327392443923794689210592025208757673325976318782186657301268946941995316251205597156082015300601223652822025555156393376816289019275624458046213709310148526775522497081099193809771146631660164681227875022684321488619536333960879660699955272757631904448350987741366459709974942603487855707529770230694339678601967859933895328131397853645593539415710086120171209197832147660176041306060130151572858024659151591391747024715569378533400745703450932717016736391045419451987609748875496801751946356983432727737538342010874736394982190040316874815136648214224723456170411654238973660247428909931864450483334252040686094100588020232119631420506363465605151434220813813635954346665743970183900321936477897358565827858172218616993120985829210959353664844868786795436232820130002475828288131844194735164269481530803534021772450950344106005036131912709211170434519725084845669808397793750069825547889514764041538657712878204884514942344607025113143671814363785750029178280620895367437829012930067802998213748826679904315788138478196236565323841402607307634611125250510323055405464115358618179325559564609200054091885488423391772475567691303127610902899130526285752695998237625859727714273379430684604662185163944933421252355111520593890896675924840437959836865816147439013481671967040965882634868775200222184535877347371238153132900774611175383137551191092479230250243696800128630412010186919267252899311892033026721090781564145670845843729053640840018058961485565874975320869287532247961689229663589891121483744883950021044176763900427688042983574028070993534062028151560533766243976307638775518881723262573724442434446106332691092661065828519113796202083703453252067270179133106642338474323270821093782736171121661902976021203171931879748232336052470236336799118408081829890643042944236400755188162363057553310742627857684872037606470104398555870605257577344194249853763314610641560337853109835438714378821300966551811817140240837685651944021285029896966869982729031887709503256453498718239219209887689970911833299657614983372813358934872641670645307081517626613794544668731840969682335246384765295696215358537648198162428079088291784633789486933235897091700114683654233516122858630136222905027150137726034935558958191897573519549995056821986088584540319604307171240986926350529761629092562679083367217474160092080887048632164906179085105194600180551094915860072312945580330772172310648333131403632767899433168105301356192788957813418537915213471678091792464695503786764899952553147793718554421716745402507340784763686251002918296751253831808077475002340200121053792918749582377290564036394630904258809095882351845838024652735753419677316098741807482187547939466933729096978351513627847971327211250863783402553974713008209723468809325554220933273903061955554724260216908792396508947811893942547857222933923079537548988695003212047017996916539334673119263932188709169005138538213915957593366914604208812179507217020133305225222412709279928397705559210899386729183359005980753987313480256439406613846730265419304693586656619886651467232506186881167443420425435009621877895848877580368187931646629805335407225072036062948809810312139064937042945018323798924683647740993584875123001837693124438862153792390368101258687417150590961894371552397722171097778594318215115129511183781337697822833212087594753397065517890878346669945305242115779306740233536699827096824873987322564518343685632332712194265422381964490336955017843928803992493183579131117893295785165946108375923577632621592117351529959079846851572501855200809154911050349846085966533011063870783205485249011168017316632941596947709376949778909164699763604433963866030147419049017454034188500557654005908571818437571830705025760976945253652103423638971952678220107924837961436663561296854141835483661544399966426133782017662236662474966911713715097509487593911858626874542226147583354680745176480946179861462213694934485929033881281892897532230190342768676979413768573645311045481103435747082244331683624086273328352003451559622236217480101548302650361541316515679264417805072300802479944845343355053866049662820859832339147190310058461149359179706350744416658048132447231286847395216248555456807680850134102415885369358017854777853757584304479100440396661827615118683265460186376413620774179714675653069612593195893125655569464786691246431354821083306301238692003812891513493322464392058828164215270402189599351512955322928820302392955243131996815894164865945111874117886000929171494076920759698480922068554378599289514682487620056012984258333733358134043252024343157697428497706776963163968464658845345866850152363526537628293731299019786450185311893803819900865240503991914184064491252015895405473738406986362347220466021236322402944271510389140424881661496715199196043499358278269914321795336780253472707978291161147410203167612814950341641073929947204668923151150950993659696992738108984857197481705112028781643428941966572932989635194679302769217954310492869122141844043143225365058457401709409799018634800966325030262603881227406674541931316634709135667104825308388282737476477726143598890860600709108904147443373115873082498463078896815642997235343188197437226820512426449737989945906410871848880071414882320694255694103249938026007021162749686887111458853129743400615249750680944549508160766438364895194537407836939439876036974737279186107816393042412024787953079394168366057161236801055095018040196441687583531801185291162985356765868413125851300846010336259970918410253669482604963202121673037811398369086727461640494359572412108443300375635167464218288039233267246487213072957287596690540537650920693039003763452985454879192731394583419455314013563944516291955816276363170153049673993808742354164508160566912140154694819275331369484327198295978807348750325663347747372646019818342105228033579474701404059999830856616517868377536174158308387420683345566253287699831485402114500019794497274803680647517205572556869134599061825592025963139242622846287375041025941762829961383471942710814620872705951633166338444603674329501478226811789563912699319974472672547612182691014528476385914870241745811846771653596100973277342153521864531517423013816326532170092951697389477750967029439117508072168422223224173119452592375404608789758724188781561818230130289379246461006477947931500766574005726021876550103740619316686638437341598225747776457899676308012871766017992484855164370867857494771371939566067787893454226224133320026252431293623677850135447152678870989622721560958270655451189516155329855486141957347007257989582031910724430513810678860037013152509796889011442705314261530957347129224191985231539101820132304775530156682531641043823258488755895827946311023695648363389675134859570986588615185282708802464442478519090332726888978846209631519587664967917629875290813428286311168984858281256109706213241423320796158141334426020348730963154642271520449387724085380655324203207315053349163652754858559492690035403139891051511553225893113417959783586889906435723792720091225940423690898212547329730919142196318895063705662647973989170914473944844110006258315072944385919746616627531443005687128356978140672907857703593435923278231155036950316035885857099350103057680012020796403475424808681511043592662204415996060276017177635603691551866147794860417144048220346142470763929633174831407626910394712029562841693560443236078721681654583919480171126477151336856611740671217122876199906241494829372119133620322254701006971335135588557641917415320184024223016116854947354175183448817850341926623564933494541071599185088187636812521122575361931908845405343900915042691018118582421289803371012441267708954807846845626986621086211539260905696098399500419148284162696387930429245064815167186866251188738828689256906174160836917723546120039788927562729147514380084874389040398844069314234271572880848815091997761898524393846219365500861577971612217478719971940498356905199165872744653627431482383582982193424184832581537736268866221278988316001504540125292603250511498904542313200744950626568701393501815284631280510412406900496379921241082941428426600443918627354274761145883694999696234907732034856096840357296927694142029171510679820459861294684773702007259451977085899977533964265577557862097372144713899615086734986546360658339370034350595839559182626843083550714836985927756536750231750138330797532191212739943994269359280982066666505739039243915317940989624465135688257983715206561555507080757689104061765897797433603944046454524992734325211437871627052870458283932097585416189908041043169620569023889748142656338116577145747972583382434494510973671969908041663309966776141297850987607412226824373488681014188230500174308097389880406555249122967418007226965934888176879604267170400309088737498801412118180731903463480361502085309596929972199598173882118837477411724021788778793986977436118052457908714695512946215909945175804729465586694466658573149600183180148355997075061632151084196567862380724212786102831931436394166720496634491220629558453901012307444990477990008529585870000078912520823025962945974183773549584321012714074666502073970802618483416664335340163929029738247088911933858582955115848555318507176839616676130522155113854451945990104389381706271499279172279696048249515433347172548381396700922137910104231923317274582672015260527374153055187701511298907941483366144414583426869602601592593718719405356795700049121906604170888062764066156226132837795597143644489609938771513877768796915686409028056149446546371360800732230649712215621260847763361071845777869682803058696369626157058305764165677431044056013224205026503798491657284800497341865642741547519608113454293587558235694856842126975764252574140144568307797279329927420486785811772371085457094317603384117692585737431504733541663068203060542566451704803384156970440510735838190028309170603090233022144912279154198667073465087123776430198973641522774435263541550721209853507091867205287299455315368785876530450611335304363609160035036939208633925957762403227118368876237134870251474086928303525947287335846863270624792453351916577089345640154673216842250834593188080616291311294177537474199305686218534743410811615584265778861767113628638950901175540216516161273781627763924442377041390787700126190094176573966219503673582086658659124283228502764478668117586040101023928402917873639571753007867274031263166718161705721109605046118932446089027143416591693507512949892386218622944624430621254532692797138093404003372096873986188503185799404275328426427499145364352188471569139504158588366857238837258742025929397585455639232769933083756692079983706933982063489865066836395031596108802411780580392829020455199734774417462986237253668980874921572172916553598668712462963603832852483059657865811502291504922774517912121437363193945299807541989263899607373935463805159413986052913629263337123897968118521208602790129327344847714549556052565486402297613889795318640212978184301253007713283152992464421159555778993967045459247647630658762402327779102709901494054913494458391276336827295642387589199375353343854437631950937586833340208246934331819520750578632733239386395734923625371759138128507706928867838229530994511596427118205945647980425368067887747529433149843345874843510168539730432221697847919766590461297747867392385670388124545197152175087335304455839588558802070993940818080665445874774799963482316230937602247610259147857144735608328658673132165443344575214593909664831426502600545628177191531557853640451855647893467413528878405915765941585705659789411822682153099005106492242027838841065265397222439339182015685749661308310846845531598985021632979111501187180506550168800533452612167780561237900371464224318375323365188559194726418019999897522547970781607814285844674070462887099949534735021903419927198032555847310337447834782160888940877144541720830597028878464499785698658266563478262269010825768487651535612855977473875596119591047655412332448611433864097881392483866696025510408963904588300418312351186461229961395412898811496144950934654899403706629327063676376676781238817162722266892004112127610377327797756155615498191742747125243435402380925448482910613058157620814616067643509844142686366941698582490637806943976764227224357599518770834604579844446744451146142873020103642000425354369199216110266784582335378465942559790838334072567445167426605414767047627373691601630503588892556023100767605726549421644998674679691704410452428181559915564747764149885840690127099734163689580328999290429914639151054865280912718219871262442170086402033401249229841264247580677625222170570237609250643002702422586319193965330011654768796358879461180831327931683734746131988579978289687184845347489610271586607945853807259102856732173436258596077951673357406089784738882835738103539479756313561457599909730368328364866558827706671693994531318476610739199670573535597056714105807176095281806973373298905477454775850627465592660458803359921881541941301033495273756877746240855511690760379620730492780153133711648182272220255709892713562046259693909930553511006034566909646259942917015137477817291901089164449246670914856931338158770434348357244315032934849039274701497816055842014789282566657530305821837770396330982332962762580227264589793457259040770909335312269205341918923110225996429619475588321730757067765742852464220221905308635384671685246054914522194712332109619390912799115882132394814434694966806082688172818323667529851797846794828119429422760692894317997742768400127000941334550490707008462746617779843146772180483332489810838994645323288284163739652064998272300009522338928290005613456620293173197288289361479205969822635888163968899171159528813813222250009680713681425474972346369199892929647122563609466926223573927913940318735411987304219082518546286083273297615548862177510739845947161886013099710481538512122764395594730108505853804959141693952779739587527279607688126320100130194882027593854197700932878237380743295243823098733751438734917145763066527044096489584368033329191042525625476151966210660700226889865986498135241134062388149064989641892005502894958691030577676803493191236870533008792960230257999092102820726305208351839494304602728370902683477744279708409538962027350899793612572509133358506844024168223289077281273030834071326607459004454058809721147536939235720153885224265296216748690851328924648576556050463812070316282615438963252140902637147637230446058598084782456802635451806444468881999179066862926862423167649689668183142431442889314735746516898949678616910120346130043990176300046472985361765767026861306309975703981943352662915086827146586814848882949462129638975957908761796057357453964412019016179857022978825741135262748880429924141888961569660495008313633804399457329372286137740105439902461106984007817654326132270188089194679663916195135057550178244214295925865218263177621075361925508150483513919928269155355047227806729905662537740932645715602210478308949046459725119594218100372656197574678181656347019654314133472417569223788312004437280948270839442179163927009466428160358961428620868617017430986055935544468363931565456085590437033824556724836072297373167997405053730598227976649542954793314816498336617513248925770065955287248279808077979759726135208213838843350655711314506211445557302696492604802682213345628125332434012832740603366383302824367918673062400412190907087274907280290861165626768315301837987394327929238625008017612201136700516393166061015612364571853818069618631795138421249162798634965969723533902699545112716344520301258351196334246519599225676293328196171083600904660082512305665104328282861803799071594763869224000008207284396741541420520400597428965684945492881261819822460908113444733896220498374560899019433651115107854633238924704621049293975045136000602516016609218861504627763585691334906601252050360855864139462401866874608092601004304398823558188926172928963726333163498265279650697475405137632619218713715238428471989356318325688873810522855126425985342325840771459405784747611545965877627313773831165223408113092397878529595526801575653423723921352307391035566611423371516109227324825607453826368154222179009955989181528019941025977406360973364512260513833430909632809991395816694825417386735429546064227063829150209213034709218047948226759837391931042055851516613081873800662563105387787161344819704957804346846544935695436213807519010719702688724671426564348016089849055002942487664431517266946980546570963604788382767433790966944229711683339921187569492012998142496931394279215862122399828668728190957062266767874806634878749976188073977351005431288957301531651090828762584462675470025347403460135974295414158694313609771647354317772817937265693015134582875992966404190159334891794238565091692460629163941741969097178811963899725251311924138152130687381269995357592895642586744785842220982168582844454413812106599735453018198304064375974457878985899890637270387132260211576814094482183967133070199559093915836505290202882319563886781259245783472927967848618955436990259851209814543677859755515833417523538363667846016888538816565455069244112323845449986358593504681834677495108920624789230754736617539117707756215849615778048172728055469802056052918443280173245822621024298542128578426453861550546849624142628429282264224507249503394348026059417631173011618289500958287253948882135210232658517405784066217737177980825303228875385168855294142951421338580439935150063167455519001799826303678504049559447535285417429077162782463577180483316396365258739249578797141258794962788011249206964776929405540599365464307891534539818907844269205006935773606873697582933686837372746760484961182558278625639097960624572953155178295492305169875417441749385101206231116680258372920547038198224487957277632945837048641827433687110653313734484956551849682309717622301447139894954230010002114973826970316534089055299871002271364555048110692767179934279602628516120682584017661104937103531653108039344273856945520269539109150865700707441003471267085221911749025243872796138768616433758417158503156546689336797852623057491635390674999724537067448697552335179759983972702063363677308720492639552863613052677555714323138763405800316383401073490563663323393327095625531258864366156525862577926700160834008706223751114199397765005771591864139264485123255200242940363525451181974247929828058832373200388054681069180297972749107479400351091929635260722109674409502685440632043910535333889035281605849274879625500929402678177193015241203050942589960580037827271159334932351856314794531060127647112753536884378420145565354533958967522203816938170711762889565866037527199730510042820360328041974726229991722181627243191264912305611546279518712874640057003905819887681688120576990458555596400523814697983426907991336609474536999475756719500205497600031314514578969994300397694075782863393680506269193549447636851093830404776827671194035381155457243943489863764847265891001450250010283340509142441793980134137344422673734173722160855038159766411361793804675771267114450356977039749370876528012529190439625067909671799926637192256303054506405672022891224617829907858339703190490227960548074163664763272522406437920593362552345762492525631645065233677557791364384097698212886203337203130851609546290245317717303255288653588384536286010104263710542791413185732828645387995456960034096357270033740060199254883862084231374750343132283595320872025139040236901070978812903245921691253054218076942292671412181863648550761511249038888677535256550240220904667286425927126773202134773852113510607157725830202912170093919855126652966832207798964656241611031202336007545744982056362307161610736416897233965561067654021845889651786240241330371121666594545750863920355386167299040805977728859560402977512227489991537861844427581004139787552876568704992923707789533783568341678683714835707978183394006858060929828972875569044608570500217535716865391495267407105217346868597110601000609111812019163421857154430643893474885669054502864870375114918287222637785533808272963861561333621675614104925791048552505281709776811764669155036009095972246909139622052194192373736333410063585525216930603023783061932007850399438387312681506767354949907683609710952016405897739360947227128015923135302132018967314913586067134172648800692169118588580006288488238439668316886037850858994102761268757045758053312725582344088354199522667702069030921406654187187879020080843278896043608180934040304105840735264542655117670163129709155263926540499378446605807291182981551071852712210997571507395140251515149728904537312783906807906909670726936056129307443429441372697788416655671913372517981614158818403200251432875501218636383360764700084839504638579551303685602632876497584856716676592108341749332000223062542918910283593948537043651301959201431483553255251413442133808925339817224640292183356885044814015271083577279212413336146392113762481567008654310756795077610772413897029758109952687031465514705760412564818317741688501066062887112157776233636309162609420868070714693003403042277968402828446477696714589797724299688661585727134882237298018915387340825131781918730070622508158232893363953257477309654399461272141139482658311531864868567640182557768391901668078011340551625036834860354156055600506344940758235879539585451379729966737783479763913675377586834466261981022251819932455854933168434388509899492919943455129871264678419083633967911804692927346518772418272971489304370059139758125874561723870995244655744119624484479479482876942846061634494173711067786293919715389159300741273387629757919548468725287031952993437686343026915116239230285590820164571479797412692731359322576454442934867506692674090787791449372357484917691650544030373147983702185664685808148181708647810765665554234791623306419595749689598009264952228590691154015805725806015322601111445080119447426755987225404566631463559086837139937372696149344951035412715522706442033055672276716249128125403678319447591045827223451073147139805820017139193465529810142435766891378444497975417727704986084211369949682430028036131908892476254343796986459616924266355917821195107779144909830357300073707208759660097856875118273921030541868136821489882656636475359759526181982023606168928783061083360657205610792739302597550519958651703455204043317717017928452501509695026181238995071168217947356731538768731049595478101889723266877435281207335576372461175594880957939062111524963649460739607916119085550051598264325316941945602120259672631750173476108067401775551099927939233865891213396543411622715987203051852012278615789044291829997909185804389196381745742675035122012178674591763711141649531922092223907397373481889254992934668152267296578198621810753371556702373455427728152692749783679359361427691440803788348808944708038951567942243616207860926817667155097889317787065444225767275414018736121719769634760026747248774896615101386219057978904761781361357472844512560554067639920292702907921838625458918922371192043044407474552044077653911593849449159395919550711715785909939899237582318942359513685425776331525857676668534013561384954451212711865512415358478517112590901501215445290440542924794670611704060877722275476585664993138622321574400568979915912541219359717577012095350266660363705837685953951700592164190547778007270658143529001521118824358116077756658602858046847435139880587742798137287150519812532065056741170407077950779032860226611459733510110936892342849073856437980616423159031729224335638141676437039064658207378840457505637999891566294949075625595728974263594229166008367162428477065197013189970696523444175052085251365018673486025599987692278530563576347290096363002989111654894112630064478637334035167162868453706258360119054469854129505639076955455794551904856297339524435145536360838553386805801229068891092425655794522998584875491529750491085742661705256320980408135005652231042578132091337089650888756403525692152308098751792994352828442171832837021563136009036468201663963924200958215041218392633090950455280682442111082755505273286398477628179780399901677828635444684335998505021665404057659751568861263247887366452058749711484816523046926650494443185925349577889005001196531495447550162443513514998687263493593353560785594304651113310607146053546321432868089084211727207144614863301037265199863361262980240971464828650340192999120169822740569201510850571571445959262811159843657697029733507072205399718397482405679276076844838663491631038636427683364060168671633610616873547911003976525203504612559694573035891193562580111680385499800238456515465467874089956747082840641650044874110161914751396369414864171597910347544170803181921723557316839455371971202864892830099503533544115670827242559235271621459541212151159574721439489574538443441930530067332528239916093555929000040961546386687431762638837872891109896491865658789676858105776829399184198175051827309530055676083501124844494949988477945142170675946976349208694764607910557830719883689892902458482429431399488775112003137211081038386457247829867288292370686344586339602916196718782566108335056688447038491861357212251713132588155988954992421322291062380175579846056163682246574395820616653247996851286383830336789291813036149047655360950543503211576280123134124330472274525328496718141174150215461479405657815131047123380778369299221786823579358959071488250241435144367932266703011948487097538290396140113057455296623669764037067039311354475796714846278285158220354695095897840578248230158245024967417411713137385691704818695713203910764425952378695807091987855489597603707087950173569813121732960759824638846368937384814962135883034356461614169844368521412478645674439850090435960218042228765123358293061983047353225917006227650085285647969793150654204546346141343833230775478095771185106584752494041396018971066068075441722120889579999533555663658762396069599169534340836252937218645135750631099233189956667730175559196278470266217930817503613185360966121222752287189876890828288230895676077322222187962688730320540245506617559996531698775794514677740886661610308476374711644146023630764784233884222459740521325559822491961788182608194633874952224811927603869872359221968968351519313282604953123200442936636798337327344914683696595104784497166186674835364711138056949486969491109211372300029265170873298775968594069957819476809633286267480336627582567971057544604300669557954639685026178917511464010852872325859116271362687692900848841603862375650619254783737907281636850569780419851788809831097951086865142741908121852620500474324832857277703418751201485225082389968228969066803621377127438371601951138694463468326196639941975081522435987812599980814083216994528803879178744844912454191283970308106236185595071376965305000022019222361547000291083860126285299245593133222176143398646790642304589723301997921734922139320907253314455914217591149295137494235712672757182445244516597074205738063368102129688998127276329724056957367482086619692839547193609794325695526709729023628638708137897804122654526489516619025916654549756194632253795623435370288711147356409665921367909229056862364989864187062530769235202798241764044599082971276574724044023127272281530710598157626455230816673059201934368082100339355318070395501182688472053972174730993338625024605505486734742600114718506098887036032725183007434768416667013511730228937224775363800673142314373264068314084934291727441262484477848983965492706423188332887881094634999462908712678300894472869367180624044798095880700115225432709262907847247929076771093158043035060709736420523238932649740190337123444509554578635372053707072185481914693879228712727629883895642586537729035787758848472765857366451903392474927365177519647199519871181108378101396752124741463426448165379992138258828767372037226313420111367280604643727970668717750854385982443057119560306934946498419653332550248461716093193686387056501402296240312900909402783560194380964854788147706766622829112986928309091970571995759451966929042436274607288051598926152644273555123108350193076928658720948924707188874879212167194393748253167959571561774302962119818526462458543817819932075865855640099780701496465996775289319156747631574745195324337618411149130644602824186181907147288119621531965290183646605749932086312619220097048225480656649279236592243916327549272266397254651510469463779280348835303615405359882099147104600748343997113388264592969363381177443373681728447729477759259272543825936528443532582177379225942070323829135931521748939825647537095174460935541018871495314007497711308373716329907008437471721049407215633477905070346587089931642968021524101202540330531855716611305106512566141657762046937639385118615279169318332661848672791033218773360952272790182377126580999296686006016099440801607605816682498661653901657716493838116026691341297311654730770529464320579352725014733079555106933625836730065492916816831779779256529968459587018342046605323138556436267388557050682351832190231040726336881344028943882573799670872476617743417090751935679137392379879488901865904371659998809943342426548329572553215493773862542582658993745245920944848692183752069613331018862554555139851652500502778724406743068468540440037830347748844566918398004688554572790850494265164910966422328783278236689167826793767165611721236534783861914075574381689139010541650133793435059138803341391280070991136578192296083171399661291103207036508107044602057861632964052589212241043094682931183028443727204215190332955757877016330256550793850437830948246347071212318542485308205985248401001434158277355675918382997878082073587170639468118858241880906411975406120252040147190173614500147207154973704214109585381788695677124241027876071791317497809029744470296113962558717809801369774824407069536793897471229256264407653082890824808146362152889300591459651357053991538409522446350605758562294630314433447260320141228659380501908774112772869200401926916926663789760741329826416290166744020772467733072888353135822755550259430716785726929821022862412087380919729065579340180455032899409590641537901719725116202602971701617836135142242636916041319382666020920668420558340374608953531834923220204887330546468775130140660557664609361335494441296578986533793541909893752365203525802279714049620317903600123221202858047785521539048875254882980563007163789640499231946254532218535148000093232195666418620494200556689607707815755493849052572921258659972576414851674211305014268354295112420298378839808525648123850976933578490163016483277205366123333018796704303274528627305203310922753705690442165042825408536427722244707682943603118610164374937847060090941713150248669865256758803535625241689548989904857759329189488456480437858005185995764758505610973065005844276988026372821831524544239361802557215887617578172911358512374623895060507563280285012079286777817894020489745502540593404124115311394938233680731479233157141322121588851859627906202256170752419976310050804359234114315005669692685309270600271918844439251819676297518359923178857982088764183962966037145949900546966623452094560648067150991596406375717635889694984525399900702404684203492609415671112483572593824884730439594017386738802660826943181937501307559240276837965697291886850602419505140617370402971686686129493747824632890750503189602486632627976822025456530873047909209253267549800217926268400512385373669088247182205163239516419708787325122265621221570730465983258253227325079044392109763017676450368605119163961302250532975864039030126741711205430333915616398585664619512075714729327301081872596412781526061235072653284759975429158975026031485157754891081892628862185676341512695213788071144867086964645886786020948931353081088554341072138658348072822189426218463080046012813830144343989194765434045758132366514227551250240270425980408832261495671667754442851115232209092792074820836035050015077250582689772163083866286686222153527127636808270752379499493825144019116854125529524088047596556858619060727567430094201695115817315557300567648792889160781223038720124349495854200291159458099763157935766321160358977142686775714743323705081011470500902310292889216168699186338002275569004963459527094660428121592515621293757322567454187157608973864445550320439954126537442882036236095926777400459198301334778101480979878340291062285794764737041771412126462451005390327593835666346827607950502034566458459025358996130900977956107911178090195150312286303991563172692486772537059431329367062341098599305941466148266118365258043900281198957471794098194543446671809879050927109049653997382448624068487230953797413273840140353192961955688964422656765558374917758679851600370741532650195740942381333095868305869610595981181541987679451218491260686093191586030043124221680443568273659924291035654168837077821921616029045663778990156571477067145040690914865387180481214549990656497421954240801535390801206416397676209871245334836444862814091778100642565807720423125435839840257621914545294252699275150404713700557676450020056256614708293051951675706109177502352204054801038237926546939468246906218644518192635144541663404316781513809697437047147405639405876487471476599762858596743959686279994816612495533511828463576744047322396086082149870672628560473402357746091178443855204349276272070986322120215304506827411039011613305457356652240866975863391787546882196424607469258844979528187596635186720987452094041919149644359799881951746979091500190857370248980677642277691343293699314756868614467134044216258629703574586044273189635038897060475590696917377151356772286465193389963641014716147513156131300994258788072348570790872490561845114744806611643856857221564422887969266346223073847712594819718536110581760952666407486555370521927648319724806455115081177485372713164421569735124397942293441086513161015923445792240371851459033743571383908167970907367553733717659212969357366066621211887520689785157585579076197346714308817671010111337005674625929165694162736857649585676396825389302933510810447453026402447817280997815185165366958009878991438143964321678117580430072939711972115344114184826280392223241156835589003895910704988649518696180650520707170383970257170001593750064610432969581841737528032166344912033208356908862783525657638478513619906354680317974662410451144461356718697484345444906211862712620096654304711978099491690652306648037433584879569847764623042009184170897152199420409424006856222940746530771464015895484968889059000363503423164361201847901432123554957034737021718946445680985025546421559931449260812404996691699565083968261191306686333800155641540850398892638529070537253190725509881326951945096776928168791659542858617146889365718938789251658733386034984082150571782092402484692491647482650469700020884179361907494219307171673530908587648466727388972475288718558216821091193555258247807312875709450068607397588298578318645988874007461615330692387354038531590548098200257918147744865019783512463332543836914677252785225460990721225941580718781547921242832237164835569989537227232076845841732195137406339503794383850376421702223782286685961524105329550316864927050119620668258595953971926725215506399561440055505434056611514517206234572250506721232627564897489602503690560255811544592341564926318702829542517246867194537194484310570657190762205597768266394388644367610141391027953806250238422501485666652078919182652750892273772678850885278477273856300725866806006505318588458407739618761730047102870230289157176334178040328566668993187011117718580194195455717028129700937212423381959240604171426148453286069012962315974715869371541761305493572225191083306614761841035133862521345505986882760409440202060575610591596693945449327566840681189368906450137795418746134778079090865129665637309362051014805283835115941871701307400520268492141446568813892617904426319570956097671475898750859976768045218330799202384730857040881276998911469290932685240730267036960098955625468316636016778939702746074420260693871441383393326808422663404532564807080210367639917815278525131874032171134326251621295033364513896369269630676314859221812454416495808605187980900871836209797288899173153341253073898392377698836068748045773841214470187408040634238107155096099454203734720912747661715192030662895051359987879913598589884309230459865999640722863112354697786986802673725283056382304137757445751403533045250185578696693413072051072327438625891240128768699889673389510640348923663365908817446060784016737860780509844534158770031259725949269571868462241349624779685343458197099558567966029871974068401721577587618663859842747938783708514001826944872789157335927808055580548630805042643714852515378532557421435358243353294559735787283300944227669033330573269952814797633758881615685878489332874649970178757861899747230892773050808542359879068078611321587910624948904484443976015398304703630971039851924379878953483605397633044687149255049098868968764517651483066849786819026352285096363685225885110275356762046141417193176101572308119013262019095131518570625221223376703390151357256008196914694752842692344280717141912980431619049253026676867763212821547397364683404895938343966336508564822392302358258923862143482877431812269397225193484596238392318439635214503957472898555552839015962144810059884585819066333711699850083094043176282897799621148325743996000112344220328852298394755153258446615199561563628642599817174563205419131353697762017267451971160165857327826094929584041864058983024598226463075877880286940011345825372384413729272475670217639631374228326727290662926423075228147662827851833398388313422544240434669711184562389559255715642494073854735477261263810033079598584345855481599208085528733863032540329883948954884276398642686532303600296560344348750375193160094790049339609061766730626988539998338205049900300813370431689166443708260568120027828419332230963716822727425765692389519310413441229079311801607148095596178341859708257720224268609880815399902258017230796528624894688562716136861880366961314704082734246497652378040761379319289775133002950062437068662948734001955571220677147946602314117469790093053309122087657891956084239783604835487943969544682976459965652592020263302967173885964943553182141626964792529698835573097430890893917019780317606835461164433715621706897965482922878115275914638795189124728922460949524104852951736934838707991137846748435277740174603888997253557637103324350514595029741533327943370863789684532281664589586211714118935229056558133124893780791029994423388809661971744778457761692800857693605485818256988934255792926457320998318405421774856927439991733435115109245618834470583355747568307410771763463800924882903982479686457777372628974006615541446852971334639542230759358715236075056915777425958656739741895954104589819082699953299050230387050740676235063981146439211052032574004550323831819826410124314500876897738023805361724357612177591176068749277398529452506213099592290967166883809293444130403196543387830866657391354397784445863309447834618637724113370977289195199291265091022319975554761806839765255278842594946618257968734699540313137449961196393222138194792206253939439189049259628420127119362027368870314266592869480527551398609842443942287779437612481005733352542675099839175042543493928162406496490242664166402353017758072756349337550152068058246429973898859467762063268292632986921850641476786373682171755106852844202313393657555270608645945237429257430836593022478531807286320957122413239942021966741333243562077578974862051217305391117362199385897156431023482161975348000491368063677965003395205607419731702586322726007646464917194755146481100401140178022461837167098901017997475172624704048865891116905711880726105736256055656618261421321947598911115357248885159305299349239948845749510662028675639937147226892644080072136455704548124303751577707110671960259653760578229254550732607990908321907909624011650394949917038884612491654121414784661576807457902213132045719586569016238425588197988111049340476013236424277388835979862495417379506027816831102902548581823744069630041479523083449436027327510768974358888042252018748088968001708696879416484871262675888588589472636581490806256744131229681964977906597410300280785024600809889866060657602828709639470062504594264820209173399017826000003964739433327081503376187747238552249313578524824548242025000731727352202552472087739988843207766786254523218728240058307264762497210420468471851166404255811750621918898289086012693895203363872165271130590211595707790979736343520597202448006386151636856550687912645079433724912601470201818327156019072279105597045704116726765413101027293653171569574383559595946034227421685210508203615682688182601878536919809817628659648516603189268267211364443284507641888326802166429710556370974708294478721781920845669583379579229799010529647780693011725634805058584217256088764441989405206996845889629507688387518570302269481509466647355920391873716459991797475446625931026451859863999488048283892535696737136672465148925419327565782216564318959839001708868129697534267361101188197757814894780706967071082708515499879110928252373137496052819214696391883645390987042187657105607508370735567490069579055605910278936293596345784076100015425830711091782553071454925826934782563165737624514547471699257024318155258756403591456043921783231544129826126712161613282784449427116265462765793731032691052594731779616122527409614021461548054698376222159659777526598747494805850435859862842078239050641611273359028476949730666257986399316603072594207853387853023193413777783831637737328738523138657332047614621882228793111125265325817962882366873992267575869107669738015030546573469096340436665439775585847197600009028526489305690791901038771894396398074007907182410043559772776603346260300613441235068243203157935373553457392679544989341388197446049721561622369505276253168417471409238412678856431627138948435848409668343711365742509108396849829025497651119341218748175060760993427486741977390713858932114134219409312223595764074504778493790957926449927299957133538613012464210300848933877838858898423220228150717156479775318959724047811002489444629905247471223700019238158698308759772168610284150424726058900867222644464286943023496428622426472425344662279175290997514334977577217357942828672064821629271347961915218177705108232622658843768274080536818944159367598572612550109549755746730348589827798529032573144418797186355160282658922893110081992261405306291772410405425891561323125572722000821277391383080314090278417472970853759710092226071782970789173979026066855967171001794620393073080996171100912836770089110350833502111617164980231748646663446508835282502895525374346868076590222863173411219377078879985454564017871338481661348834045339263769087249994293474587160339269657962722283234982304084657554733760844463044615387990314980081535751253702373112801949529012133126559890068669528855008208482885752800281779598237644175151190076386865439564769689176677956257277370456413729898181306553788003189356873852918252291539020238978690210127878789877260652585908239632559779978561156610689826022964229583639580311311272491338786793871300288514539528549376698485499642095834551885941897787326815750475843866405112090355833777840676954862651483238378132532225355570127137587771099466451074079615630444438999639522098784316055157385775245075229237541128313917930687919094294188702917576957964932720600350204790571178551326007904635400389283262198591357706969508246221993836645064335671292365286198903769798297337474543517799612281305492897907780699817863795714482114407928882865077848174748322666869890558700404061196272432184313069623453291778819375235485493406781724058625404677293950877552891897334623183345100202868167959209259545685980326211793611209839248673145338676972504204383378639905942361047497621215902797543646228384634298558209632344039728015405778970261886873488946732022411707735341025840518214929996937249194372887464942772701178839725874307096086344054657781399119711994069307344806261048666558158837924857532245919430612235628815332385558112338820329860282180812599636349857498412057604050886309837022590971490349680049785753504586286962626933270011088014227720463721870791456409501519249767528197032683346684283143999401231462752375140074524079973814095205123188373054144362728196739499175184401894113840334865089163877978533355364712145850615153744324807874907199690926021508895249984028551986616858958032667470774452803254409381424026065733402301786614011958354131240542856733050400397609744000959590271966633376066695742823215847711297124903425983085429189974708322456596254044795927113686566485397975722747718973878326256931019203617876321320437999366856593939605571464721506038796647007759990580206010547388544548094105499769132940821244807045734504623693353310092887829271064501231914221220795943652154922922612555592158522356117005426184174586999630020676839155820678969207912646448307512775141738264252779493499162313969431572100460386615222137968624732294015572197235595094267555783145497528884023538074335427281892799108635128574827269769070539625252769437322625253972323984930985079444204920992850410036327166576751860478775429853108542527140236695507825040005161094647546432013722076596316735181123645194999698041392741230042688641924614917501860751328841182156356962324164345273595193414841235422658288823447184262010088264884111572748464237703556206683201943548233893373981366948114989999899783536350618097853005448293248444695159418212090198397530654610524500458638492622543933747159957721425565536509247025191455811244175576909418209747965361288957945448500838129752133129799190830711403440358693634068119289019220912776518979834220768744174206706993974223568498765345228922661109190497589563129894777983230379682186058325495301828499625547722235310551232485508862815438184937606329503230938468270475609579174695787999724406886044922479045178625222456530363963476766016222891595023855684139640476214519899135518321651461701047655595963939215296729645892950371197111247651112096471912239692168180595962137659243461433730952305558728233337793660257162363020302379291713319342072829469759806058837338186092292949185132423577759207632099733201847692082839306263890223555742038669364980620129356939432385486261775779108429605407041998621612987857595208836898464957209586334494033332297442034002935435075696318861938498813321548465909254954414327787936321034476552716254882925101725204671397291934668173205967372369320808791311074898284604889668125302633145976638660552977090701089690992980871354277285842162454797112841399267345263333505872794413420259568242997664933660066457086855062658166407777194133947983242857704666798279579841240857042809577214723030070949531952407424003176097962657620229159925922165236336477734626295055585391995529109451127525987126278482426036250253009035263682299395818254435457633363868360343950572307285330711368017230745377819185596095003116918605394424344099927721913456868171308761481478928370007530221735125170983924233427315591612885724929961230273831859316792689258327082217772446615616508398542476810912465200722748150116714671861657350279239634179825920153359418413492919473485756889309570072873259700927459225701883070392626256004171756260925999030082056042551111111699335256697696781827804723144179138272808106031762457247716777674063360118304432001641666185794818261966774753478699741827195239785063153177871126786332129716592932086455597523532354552798722422040755230023940372974712191910955813501550779811522983485219415019652944157745824264098383843642610038491288528963153145234722046759750128409264765230678531860819507859040899199443041031543799591522439383011341567923776263745483665260164608638151112162805231864387451787670085538214872147279947628290718428105294662530275023620707460798873523224696495899484062235925377077062524974152895265799883268043306076074987996162501048267334048436173783131458573607396783905615992352369398199527129375021701317595022082720547614477742404940626004499204386272140736200007801945629804240334408263339387565383041721014229990768390444190273758873515423383567136338541404705036940865861495367718461794205891003440261042664335070954611394786555999143056994886522752225444261140969323114326306359476197479071620738745962672695075280577135887912208038640390789637205634927264984184807331083319889037892407179292620349968277929433394984599684276834769274598789686821633218517459050522032428621019716303731271838106684651628716890947898351687426006597149201201898446117636774827071441574439815931426686203612814788739949750133204532594713902961421569908514107482081406191973595338421915608137247626337588260586686870223303579629420272245085288271675801351491241452473450759454794886486581092643156702831830177279355511639361536957068153812011828610552673783620908192428660808766955257677598690868482706933645142402392101436669670370624050354052353284466593070544851402596163093701318235494661835693802192676094163355906675049739479490993532353482342376910175453068636929929201111372540300076766624633306951332287684418868059377458622183947630647980514248134975673919577946980204991889921199771380514546327045669929745565623683353581247072380751045566549472921646925582433505646548319409450398188753364592007178250619791346911772001697018225733606687333970664405523989147727151377403389553434320814374933538476004058393331441029700664530400331244813915640426029085566800375247162514426643919170950310355010440055504491171099706121078043277680818880782073083756806247510869501371278625004303429391605133936355958563542719948225608926866032446129372721292483693782702551982966812760614818986885511086843567501939656580841237223480677523865200661513740914951510348866161228902787803117307483321606135797727647125172674293567083999080686985819634324338061370265940410147198023084873747515938985125721798904088175348812604912650487462547854048665155618552367196297208148001810845476292712744088110756687043378915172796168962758887808815036251471995758074709807879873614269749122612816365164139487698025993112555855202947231620771918535501579566908018217771227399461918905085506955639149011025559945876996415448145774745733163132749458399535554226279479596806939001492770783471087314563098558288344411181949919769750635160753864243226137448825931590588676393994849301950440953957684499647054767594433405809022557825603119248884052715071744768436711826948705564275852218036560323241951105458007739110249741898847339278772508132921112173038779395249523655901838702977275190686471426130341790436644824695050309226998681272137603714328604950408703734370468728975891861847578178614382022049330960961375086756522348839091144459433860526119016241497503868602747577926013496206056960800669311269058653027162350042199520664228667906583950884466258982358956457916021402584884930579370666523809179456725269651606304954711899775555783750690670445576974950328288113366426055547968505396342362659866858823936002430926522775937371431784115331157534400043037570482881550327679087883419478596085375749160470526324604375891648063380907383728875148670290044593541838789171656776222318199563639627169574271398744827575404746760658416840557834133203887724297061957748572475329886283384191263032066318007367809289232764405223234470529819629692508783701205141802871664282058590760003354567966239662591940199008679194147380860589404867910759718435996762296161112150870949317342336940780973530755558983608669432304230821244933920045536433108110869678041578415690913716846770069570565960121524431444263808039836214641062354853185706587494448733949487390045441586123345242237005267296181972925099019222308611262874507135698178325500340689254305220499476352148391764426011888239555527503262314042596590338055814909518685457978411427022341861366579321341100152065224353688097069807786400740900463539938848034855333986748400962510709696741604726736734675997303190510026364707905438391483257971830893707795004993897249302120895459995945943316534454291362448466842580158286401502158515779903084630191070324463990975292687587766227633634584355120570215754302757292321093405389144997080088091654683464862852467867537371094198412685770743675005853103671588003566990257754627375984110270536281707891475792720349155694352584614357732075155702021727505567683296059719101213385459349455101078882317442514388640850121829627668544436631570610608711259325683043012374186645970588611787278774875319341217410437400015847862111868382823657648932973437629013120436018201173335175047461250239816837184312357754620034887229726718175735728595745341026196553286722940174722693943344694262699813876122118110720587775028541115026002837991965905057128229816181337535225499465347415214720471846580128023514962379136262069734023852353561070652293252131149417688604652242584443778112281519564847383321308849209773236181478109813094767902797083664645180929442084294590000839249313651043061830422188480740571557988460367465475236472708239126834221014316196093743233550965148788369585817575890974058269462225966704246518340316816988172429023968747411881769845593006959525734190676990246123670518156918836842471865960711436127037133642202474357476361026591423100629968247517966255443617127273809390264023010279846477601142790900510526033522124077860839817663288351749065048889964460890811714715522782726516348436584818343661017567409460077369802968241224649736009882638592099740568609710812571014087849825676781634845521192136135366477890837033568965145471833699877390205076285958487320696827801445586699833603643587564233233239450245285164416762686670575038917709865466447594596345969780674606042711120622925091355217160613002069886380546842090708796564581805350860637286621037119376696583072827348756900867009158016808224434232426820292075264189747925831639579530570070129582372449875623724721233757932691085487511917304535916478370482179055940687315477832001705150988642130197554965660349708505293460585908005773731762836476768250190715245187562592374441536484352525579227052201480625316351595670805497529916692237191799075271962741518607533474884556014100443636301530397664932199005888169884694301706396734460421420754207934514791153727087597581962136601077670265808660085655048443072094413066264981199106182909282412084921060342030673582966930387595271232592378226481347982268044634145428522416209869448476377683171832326253434862032085849883079406963228797220455276053212459341888786037636414346281698669737397050308137785063293075300951664532599193648430299050202039768154169350069667163335273342152500442532126898521906300124571952371394063999814752336279144276882320245461322772534585594840672277225459661483077304983219358584498223544176994055209014002229544993609298024781401891857778073734574547911193744983029879013493145701492088006422809078424227252813999343741021453793136372645357187430075671172435049713320486847467624147111337533659283545717610823649664654425073425255467622698681290441478798061882351845159395898764941492951668057582603969720008858470716571642322468186130991349457382234554134741429894827055613555751795705833038601280788424526830204203607107681414615088051472655619905440274495668512174828112251187419426228707297427345493261180315579408918571647545545009757537445705888937493863509624046423949356177314597115848007295059308593221420668471786960734016333466579314763571958833725732024665339629173898769752542951190979737917197957851487540035628583894493292451627931860946880282360570333454051095874534872482082415096607226753893559296511692043703580030618517752550483004416731373803912223515547019501825461641407864226950935147551433273660599932593967114702623833345222432009041446054932545014229563600953551739705895239164015445175634543981604965729950865380529334643421595685855478879131683014951381664744018617025773569290891063496768346449080748249998015641036257668978307485858367139441274280787903851709799547698597735020539425917942860718365093327300754010230821836654009369582064584836575084659977207419623107291658137107101862075553431343428047702328444597774904005190367784469778193567767724843141566730624249784560580837587788718246577090647345891855666843864874882922625882567366774674878436268375572541040545643798514233766276181417784948740643467194914569073001685800174016364001840288744151586586623570020993328938256266739472235298924731567880421933596835637657936341335192482264005585395790281830335654995014034431377120152640162788166789751572252801016177437561106716099308434763449965649800370525663782069764100807642414951879707841100181295942238960958695578952371007309573630000295906390186020046241403025045060038985772229991115254968124062943370184876895310199574337741709492798591968395868439484352905998728913419735298313677478510288854818098371687826324934167293495396269292552888859667534397380727614463558643378566896031366025850406952845761436142071147633259459214971848657139626695109846431534880622447640933748082792317200679782547493311862811402445566915472882437146608563103356694233565236548212692375297567251668807739512671276198264438593124475794601663078715588865183134483333027183442084966396512269297993381756121954458702036165620031224533873960400192707437568735733521140478074291276914379283883981972215090798983536202019279830526338429040632367301303209556085149198718753384001519896834846995871218235193197363086504317923781662464940925901820916115915554071845860078912290126198696735223028956673160626082139887319454897070660341158228844140921446822268962685894935548341802342539634139202261311509766730080495061967276882762520366918962992095601353733434893599444467184357444853736116029009031943536486973597525797013500174188509021575411559731818955246604208374865038262313839266750223722520808592434571582404967450539391325508137783284148598516439982630132580972595231685427250723736815085635477566805332178488189500012081537921091566475755912010438414436021176996920194284978768987821620875384468172903393368374287732702235744205595946279197401068445664307959833776948711176518113490507465565372321468234412075944251173857437931667799650825974776725695967486980167113420315660608359602275934840657160258481717011550070040956731426870883793114062040032532757208748802009140732397076098433294264930024364558653000519646807630718070602983021618953492289095425956778428913963489957612956925725080007799167754214357280398119617451099488037973188787596649641118065480137884767431402997088407273939369662767905494608570091115370191071101557215604670914935905893186762973227064202324313301644586969784702639390550014175003778496787555355214991853556087683508853724787720481505948861140476620897402016744558604005648006612147505608222077990465293666182624041567722072526096481312277142333990298555584028486335222417221514690753274910585312697046475552021215513510572000336308841385163441953328381661404498659322566832505447004355478745493892659064723738530815035455011712793386980902793342230279976197366350196883223675939103750300906197828572667769913676119439341304757588578706213796303726971638443109722046265908160727964045923004829813127257195511440751248221089610974713558526883617473097916682772123024391583665265067712999686373480695441450349803538297318274123305183247633758273071234851626080305320376048629937859611735156199618351874388284563646803995829949645484898061696115672602601081204443777343412501167154434283772359407114698049411788953015495810464583347266366208332564846704735727430939876863233747014256883581042795015957143268243193766194498555969998268004166716271943641003232604766478208225543349389815696884091327632238055759755296102329760271306516702936317046700031955357083517320345544662311406594656836321230554725012171930402839778661038853635439865856573632127922802805416549032024610077742046701511897536373408669117505379611118981811696387107811005292120873388295270193056368712360980806405027553788939180650868807540151196164592886504700939210786140216158599193951036337363201357226479975824036021113527614356784904333931754478400962643437317881904071208097828700682743497814051747490847737076231944943243756031274091959116690420058276817717037999898274544127928481506773019553728849241842518428854466293207376781988452350382388559015389502645931014102759431274447458867573406564003050431730031247186821344875470271822200632591552004916449426300833845314485795300436781440568690183382561114044603253924132699409242113950497783325867512305738639022165138567283597346067593084764697546959012997223790600441103005798780892170276972604435849700396024391108839494142696610385912367819584268572436212446704342106504654819383333530943147047549694723484963559801772011246041890579733354106911128848072856219205459598630333297551850544459504251795172850232940433577852293261014029818174032675757269494648613380155521544989981880306558240824649517363463183307799324186775025957992157029247734295680447720508143285021081526493186429201297935591331509839214889265964961125984938094730089899506524398041515879438396355695066898827641071402429887433427438886621740499344576512227375813813560454681735073548815913012602964702218096802919780581820946318735823753318109829460310981372629843086427090605723945743956022962658092951009368077464657080978642907892439506910123077481006994044791648609033286840955944756477802698307749662541074116820979246598755555912698080198414841443847882960440286510076136556500608461922594378067636847893835395263402288140953487203510295224096203791419928207191217947395891159897447642500064805742531186760745604806265441865953433137273736073012882892750937857005127689897121593353578092229718208970416962920247941408129450464886494452591178704073548978320015731865056772910528117939660333145415067977039580561362715345658817385776699393156915962188142818182988174314455402797171993565672983130957368845579487815792732892837292459970654493607073256944128238258654165748697955212933498793516685651171407922641666891991380279259005076962388885556059305638237085925270905066597811098124505728911262029457161547287043482665128294302089559340967097100741340184756060435998566591577897438812262418157023887731745421007154557249096064862036974165118673926261869016844176088756279325826021784598928289094999917300455796011141104937281141629044201490506629543256610966130916467637436259602014362231314628884616904566653719612396905339317736559965560270905016310376904913182547779574599607935395659870992841412021971112533197642764204610412460869083058817889707464267794836154663613115234300684042358626383682587473050890484491723765328206701908405997345628613798034836527858132431546711345935169923800720907358667767781894356866985345079314008350307356423927884002340289202293917844888246849971158064227622294151096583699425874561597267167532586320079651572284586707283665659971841470451489635618111769608518216536317590432675064093936879475933525295036044281732270290824827553607991693445881523368662019160821425849995507259581775819401306111813912530677076258826452508116463826291118491873577074631203883674504233226252894615956021838845881906168408558393679578712500969635149258239798378226097328950063814746465913442546567316173645166593522696033149809381168991896787918933216778068234830788410452081718220207236112163560925164143760976334028137049021477498489616906990488039523572852641768527762049410280831802548662342835283376312381237831942056567723525901699823599280085440584331385607469021046517425389130208039328270838167129921587272040902407076366163331388930577283386416818611976949056866329717103701913831368076438711514003245376718465488459164026105250260070971850023038449642357334100078232084898080120059362051519725973735959962652169779444694075459065897631907010161715343085358372138982044422161379734100181879578357780579638511742008006291626095978169527881841134316733193498749091667024233155847560450763768642811398975182974932072769467844247865969034893649881235560270580601238239924055302584243567589449697272340154488925460745310584384363445501261277105515158590323586662376793728569257785388461058611080589418492671819409201079426171133753822803181641741536572354336238822889775479117388562936844109514955512723190585226007614203885957062491817272820451959185687536007047576311669646051597191282277995870698724562495001943403944896186018331373531239014776054536108660040394298865440693123987481119918792251963906285733850971595882761194414985591417655107043106801157111788604605843145034436379254697193602616179351831493074266798165062074514160948633065961939296027897981587315174524753223856580082890635887611030208151021741993688385774493251328686515227305138974404333721205448788067356208672749611530896105427933727385650995769908640373699425958744596065471326849963179889459274977455390562773867248192489471405250801115371591216403866347291515225752636433139250845156042105731615555686587052601275185930255515426546848062814572775752867414386259080866120106909742802449085119444792552686425865559125964490168114869466276054378740003403604791970275114256072095014753289781065794570298229362367489657773158666756964101527929443091244318098405265064001803551727228898996627035878558463451188633468206280468179027225323435376768271381415987087068387269571576968536752251639000795882131493073723966605671037196035524223416411373727706460792293451994215369011564200185090586678128137816227503173090421393477162331278711982482620550725875928091014759820212327127089037512726575272639669571685740768229551259537556282709886785737298237179530863140553783142509430899996473335917736565245682476857237225419048342077259178724148795186878836699703032502745961146603388279330290417613212477233278304720479486342020356964450509902222624597115450629005670143806661568545106486850930752631659038606461492507802542141334526921936506925248137841108166513652607342807369565207368856363169322744000817488532101922190210823475914573883638158301514508756682392761934024517381703063366539641007619196296572081275403906594363225158384207105490497520524024194832530183286804951669250160547117091994464678987406147208717292919929437080878542998709914877039044583520658809773155934454899129910944262200513507216188327913396766941703096732614622910124262442399640130034525351488964193867035731784803866011425321372070894427949170484816939677680517172787843204558746525940731877873502908547088840074905282052042992633838406519141084385913732236177748789154319265629864290532574269993636511871221707569820063105623344883712947851504245254131599753648296677117829530383896044642033695522525612986038913624612400042864607153278616079666700413208830013171863007507194080366486061576963667631183087765569105864562585802898442573862822630188009827436730751879828847395704887284914356617599879172089723696387561330583044638955215221310298277250182235033871626978281248576924921418785236910753652928698637605927414727995117481073747281837651516632456066465880759604670912679293858474007250424700076448427806642565968051719032814104752902698701881672384771782249579906082551252836800476581557462379059212945449146039210389747520824874178252369962554511911756283603926769135517005078385135829086892912052078555774762573852169461406557961323376505058744133993621697976652551759497097389110262925673952701570813781262102590036336070049516674942869823084403255239835438884673737335317524126530330797247345539873496854996238945498283388287586495657748530888326138130822024999348728342769213043968464427460257905473801897853155003308002300113992245043114662978018395679229546192067222944847714056130501474632792246817587260652339150396191576583881660468188073443926746053034384458115065565336537210934141041362059322416231530538802310450742698747674643183814722114464420083368643168517003027417265955073398255903009971074953409791801924846838371246227157574749060218521895395025526802829626728608772716592762200220169836133439092494426491574009893871363744107545286878566137068941825714280931579631845670615803314307480637132896258987115825337930241605744504991142707552424131944409861351544512708617339944433344987753219866651161335530667588249981619082588875586689965264107966293712984880093596866779570651388799298821165615642884649881889877621798299095757474374367647338059623326369637115145729815464562712221143891739826251587837385214609933561716924510955901287595731106429815543856735332669483742327072952903442760149650619466692708036828820190278225555397819285596747178097713425775664934500974903131284440349836583935848810542009365893785870294517407655919467666670235445523322438762130239084086986245156684003490086771853761559204411516613393689487072201123403292504189490014350054581229705649562197169828412482592516392800090522289153678252175635061579597789444112975242338504654663847356892561237246092277843564077592824896190037900115462952625964038922808479616517530416605979441172880961923861889402153301957085625514259843583602114163074857484985852660943575671212669839201428183958560049963904717179540553719428281904287493568969161969639225374378321195930957973428143251198206315243569927141445464192850777910102408612227084739018257059893288626839476733014623036449483014951242875045413842680160733053742656654764864086354647953669750439343132080106725635474052874943965340222390299070473427739789966582951132876755455424187095946497190172682618020548061182611292395762830911592505987016635723242577550820094595740807789041190127792201666315190815289972143558166180754253310761382746344236162374027490477335390587228911993967637292208760292573575676089163959940558025559419672156267853846176017814278880278751126058315403401077577919309272479821227990646724178795859620961478317260020623898425983458750318104141443527900825884878770827575247041990058627212277527183705644006996360123308922813360495762380401080425796997011423829492602617417687060133615670715791303411058147328362531879597167745106511535105789816606833381028029762013325606733734912157376462098739226111128823173895489422529018629382695502594782825800326506418220829453127023321677429530452959882694253184004610401663847894511800452110628957428953482358472787644828295171126800084965623317384007595769524494068381963404365745532244118071780346251514299886281314777708571655632389686229229250835852324434705503189067865401412155090951859098579646006794290708981164562905355853933372548472125534631520369624081590399120721155314501175568674254138038004917609525550653220947138768941419680678354567981745830267992410821540432747344029652248695274802641428246286605844515528561941188068617118652287348544360148479330153582950532362399322551407587325004092879937964950831915305839359021041969867643688990784617293935789251198653746732186131549713633110862738665775294339752189063611510741361201875014061185286961575082404697964963556268863855013416428858491894092962855031219123111649910810214820666386806207548421285686914619011178463758269213793140772600444778608303519706595200135321755314554399524522934675308151909992134994409832485408619965171939981581808056638620489449247932451466423794668399564212478135905414935806144647595933250293927631751065760360315412318624272141186566016326581166082624331961372196172943296223480755938303178926232791594704001899691221678594165132484125046602484798778928327315002515344259225454161073172967987400312110818912750402018549421704136849354660125177079032819883055383581965723031774034190848470180440096483874899473693891233716335430831934468247520160657669573306498111141123258528864029180793890561018175562958651627580228527855911989185156252570101600062641087373090244909736798136875612382058786926513261677189451694576826751600530880421189558675625327522291598510525098345575154354783854090993708513213603055046670778547515545607238034461664906902464843371434518619412426245733001766016893678298156722251186928425015030631135448763311079661638804189779013293458717023899750477109958527693027951016236093363004527674391568643742735970237879385781562225626868752150274402472652256386481906117452891701386522065796330627281511498460445261461319460984297383562825018513225064423846572306903985415289405187263070386050004637619454854585102387715232564473516270193462386767950774006947187016781943980237378328710641937669764810946865685204129035943670731986128979745906451227952697920363750198825859574694410713777647139305666430028759981316360988310670743752871117659999800482995964124028487856991906896868944275454732148424596241151015489492795172819366741638982330109803967345534890507869123619856479003134511890647234595551401983001891657640476832841307906652324408493731220867511921519236400774515443004748720968251943671060289551449561320576945870029649793320250161615370780516134807226722314678884460968072955845777339543902455908955849339952808680347351002388729856200581094265183587756737763615239140178605896540514874209035753408416921449018249039883966153807195571667182115924710837609965313954778282233745460929991119202769313567521810659142290275874602908469404056270626027354938647115036754837898589967519772171113365435059630902822528372260962279275083060982882283363749066889930749895641302497425522769965838098917485021301613203577003240052140356814197757010228192262448066980563464749558372678748764121343053972922038263719300455890109303199856397398183391145913210632394571647312450032288000248904565225798103512368958442204040585963194909696703112056322365179462721719584334333831095210045737047149293907103441449773052721710198724781467014968184871686014362670686292788541036204581129244428598418175157497589726774368732418550254552184529155442559804116030325851488112893260404785195128208936640868192847840433802277934678838444328063159147109620741556907208531562620708960371814641667405468982214722172560877117731491179761077742832605477284541412866249302995321478491756380307327808271114457516194504252835306758942150692786058297281457319328911687548571863880207912721468466544735220781647147158894302919171544865722224153498440621371126401025240253471841383986626122626274563958102204368231617920381293713987256380566251543119393788705753576526060579102414218708839463001980359490717565343264537128616587494613622463010152995316772219641706286832760467506976643694851648708006139406894622617438842159881760081050477369087122616200286891233708898093873816551622021281320199187796676633052341949693090095775183749791472125696608423900062310987945799567475202344570244104810471774283874799315673209769809125109378244022556192879657076285440698914226483826064505852295568511162343046465193557903248857289229690162781752139689662459786612759581703682585226085700612000889538587431862668615119654976198114894089520619415186141008507707389549453071891521502062661459097208301371753266356342738502694478611938496007480595217508329452570820719401799856024263950307334881091946349213768628942803664088334194420986609869845302197228534264666106932418498559042897151752251114437563663695303054520474269982564453915586520001136286793211709627173635497061929978814847292204308983790430325428208219045037586225621486337225677327188544823985802670858493038967621400318917701349724939343832060537337334907233560868261733439904149524553909984216157945760084256233414710533688054681989676288543282611112670567387118196507787183514231609096136494165989557858953894416082235524481211669947883704197259680291803980574240607520260442566199235194078980451321300818817693248642021747405215520534094326334406148587252309626259779686209384617995703138194336076000596743499730208995588948737137482791838894783812682942269262702673438113146112657351685107165483874906340462875047901885258029274022658885342600642975408972114891545763271987847911118926276579345378968667326281773753695301305699825022845952127489451583498693391579187850781198588325941012122503108294735117162012843224559372019115603620918880475131273128736235285727173526197008784184917766967277182082580417175077968863362485414177222840707988078865169424085237102987730826028675105847826644288502015046471424663346383539867211080370113750037487651494115943932736280513616356479869277322121997580200415746648371686039307910470219909060394795545737297961929141393170880225285250579637711870237975540480216535246383177616645189551910459214800763587974372102318307766526919736149500585911853775296365270254463544736123670951539836524999089747870219545582505901678862634269217827391707148973745362683065351339252234350865039262078920025649218368453668435287650563799404370737134932903157894275886869397297485724849050410144035743075680333788583856824319292141126158518105253914803442933998843314613778750204236292059212808680531902390602605180888070875167787354150421028004102027469595280823153606132488712416405838064053505512680657910881038859325250694630990605918325788858534712810378687591877544309805397721779066187068719353338234967858485580136989728332973846486881299919439589151143971656153947397442733810754136303842630836184014550144885707400831983634012290355110834484009455801446160011413265237051562251709087613244338098277542411477199284077789615601341262060639681442924898962823329721756857892799648571426750345389130132397022991685623156041072310436896228698710813198384254972503525517394755181876084585031687735577220519063388894888611188648123252347429293587739989628546398562239751276627702359716621671486301697232216846849940267669854783535681104433039174713855310892634106808420820803483591739059281349397959477142397300758527396653330230057579842367024764733676232222207956747216439570464225467354053199860188221613222648314715870145879719697193743693737550709914397190828074452037386484861655712191152980738379173114853340419052071272500175780285419329442087034233639310569713924815615035932427163751432730477944438477231894014803432441776320721171031811155049125399440211887719643073261892308274508139421005193859096619937389303654150717370893986003861943394778929378863407217151700970134511231563318797972355316039154266798265682661714797067067252308579045404255566834147112830661649421672704648365340615116825040398256532498220205437880966647805860928102014313205864827737531355382294462152241663978011181148457889443357301496343295147328008032351492240797131645344796220560792866886348655493130107990514474486074445389000121387131852003616131467758116242194479373742251143570426292096976177022010180093473788114003679364698750166617720560656459027063188812768252275547859932757643311260240954957944364825370430613417431553109002979809046132009157667784146497351758803156647496786948554589383550192633448532408327365275112173244964745196597333173950541118310379694933617835901456275418616163172257984746730712154074647668183536233077184480831867693098799061591781881757846503249667951654994167862264373272426444915791202435011612921727943658970930146166842994671572745187183888592188879022530144520407310156782430447417637743040783049382997863259321366354692231136888486208280756392729993605347304336162221199636249045057543449081874248515968287706782657290948429605699874339602556208293770095200410748680152411756129865292773213380312157279245523392180897430696997834698366450702748072239501141071719030120153420001643359969207077478409328068819187383094080314621573244520418813861349731774452258919595964048009959425387233201023866003850623591867227484483316852744870822074519064577900766602552340860958994650988388204729277119081038798147083886097823483021770343940924929989459661142818081924647654022972894214500855064142542126358176018640445143362051063898641421300442190005021905246895186655297360938398694973402638564769255909873202097515713805338082250212873899024490549379787655374412022848361304283931730531885110023760357873198853226787974859564812030015269029174420479488108698696297478398493577160624166581218911311203842715402239804869952798604258109790340923638005244674977739974066751661320053633407759487231281635703558542298757900774749321818934946601072873609112634463894172525125010466163166794181231712039523058965641705321173863939801665561470963953751173225555811540438024321530563876982728597241172156337982909670021962160270420462019847842932339125297556788155045094891716855643256910908024020897068029567366629830334490880575934801636664146603256660167230385392367410447472894760972692507917349048541776832168548148275672965084556982332071413322685667315511035874971690249685485479076374258257609343400627739364203904094041581043492681271788298383431960280243355374162268921428965620580217409519519991902572909911970581718003110902039415821740957467362090826445430896154340354439912926597962354741261463637677778951550371519933707332636139052232694925507437430982345319635674245424330151741590244412884993473813140213626663996547761415405856419622448069793633366508879417058342831234927034145294752364901522696526418904002810221331811206160741631503490722898271836894210955447102992534441837176348095233003347697681930800802023480864011513540508668487445905549653921243019362661260216874382017463085783857162085545849839050809991333329594808596354722614989220233040623593086958663967478768050366502829634180961308700323076300011894846455532044139453830612219878558496997657539965206732676216906467090477363657770995566140895575491500424643730031305352029311573166083237294578542091204911829857830187463892380476362086546172357543195991670848821889250890129757233147207563243408399361138526032545839198553614712600352315017998452795488058666426274593236671398383813909438262261760839919939388062339189636113836039617002793722849914911009127724199672666653415938293304877820095687317426047496628207783233443323498425677341115104304352153318864343640809549442000661273661130517552166104579261919394219886328782761682377876678242681933726917364934346319698462042857860518092534582612729426067842313822232770664787867649519255786850237125770969992958528250197463019917706768046268071833241421991033305485300119322876664499932818055657702853879065234637657232665986634035465101032256565156384368738824499663934080516967967470371596704971120725790995106816371290934830312336288470937925576616441417931024190308903460271954323803619303505858047752720417109571602561359945072535862626265328951882252758234553530543308995358195852631983965630943734689304451959493912083871891472780837241982935766952249665795374781604667651250395798642269018208992278256395336428654642025171663599153241984047738380084134602209301625411194759829895773107150376953045102751751191897528565730675807219211926640281454641331520531654918039332850925804868521947445128552443298234281025417637453208565877643156396300070600582972125657033536028924546094351318608549178894845599049435050085301966592466019135487214378051997978675700101272676575906506886711741377783561276403761684306901486350259295740061291806436564189273158959323680485070593276934216279052767030069926423060437907483885236950507616401587400146477176387159105303863418739616246259052586266605766430189973852856101030531817418424467691731207101343120695923619674491976366794619769723225424192993032969480839337713926278076959348194774198116393863179918618626576942746098156125183355726165594172009033788528257692548417350096854969395706703565099587425111160660750727500762596048133334703262873536887556779437418895983452342879886900169240243540311595318917297498450562674608549560096354210633681719806785272237081922273225089982730985482771914280814248290152569992257066124919956491720486968266661138899630717806823178147128079679730360866795859179496504993117231800434367789508629386560192379152989487533103827862740942944197293637746857566887219853771124860706343946786599588986960034909881809854731730521304319432349066157806571958183213381297310022074481670822075591628782514942774073106559555753890791794219118157540466585672050176498060710917761234169664292098475552445599470732496486531539984588467834140875656536965225986906500977259238901923483170490186557614967232051589005253636080533512647063393983930778091480015802987646803894992565286789858305009421020834497382931912621687040513042773689815923211816271262286853571677274492426730294072972686736408561551603998676103754338240128248277996655871247538370800826797472895643516598655729693371088853240654007368242482365121373712479250419070154841421734099647408981021414346941456491195242689138925058421765888117845394031276392621302192126967672960858672752490164176153518656075856856883065907370441464728102220788528990392952761510253347869559116946400362137796891359058721151680889257858816062128425025267984314574961271020528772774654728363423801274283762457322166217296934817180601727112852031728652940599277582679434315987685063697761241424087233434294387368369063745713455724047839666533811112361444448964622791324579803171160224718840507668985699206444204101201518134231379231480957096834269494193656559535855576131173146564251289423498577941233937738377716498744613036818386319198108071746263799075696418718691150881111695398903619494176302517592314132276650701458090368136874133263904133251166245986313667608921062801482175448084413064187311276784225340138598281655310025276675927914010468234679761749083516829460687950071883020790032527191741865605093806677717653517695898155674647855601178021734192045525879167848980807258742677645098438290553047689357386263617660821247805335487482497750069681879870520670814250475715191064176690836901295275869166457089518335225614618430178690476977392267575795950687178396405967150548200737788563974059061528888443696965512662789916916094454938229727986892284521827442285706141525418908433914458811511947366049614061981484875353578793852406642345520474900441864183518689381662673357488303378139397910970831612810358405165141749215936343005330025707324252037004779922369962880908935178195239481197617117239531397449356325690202855138337584142658587503159674691792455060759212021337843967702116894513471762006170519634405115662742216809246667289607226127953118033364137653758948231718942716577342455755664709950359729941396729877793295731994735327997304275514756047455642818759750163007562881631212408610526326952397914233610278287197883251559684931485767528799064014355500155688754255728100348982071099781254831197384634128863330173581788916016019099081416479339485868614803964150596575652896430215086189318957999757169463352866764345003912230661830846480211536625684138588607922405889118741195798756287337823891538033728305895947530452475365395527629921672820505280320933239317138300300266243546966510080441180764813718353465946030607086819054136478596296696080945406876691255554525721394172902682452867100137126976131862815261973503949745619561183968763275763646638993833037118876495677059425921210077913988741489830611828686568981147091504325238703489107724487385158782238037063066255436720703974714877065544153437939383600414770771657572036708742239644615243226934446237419622986402521097633248475102150585102288113843374831629927851889121066364199979930831898290154506420946969496193215356520242738712748981587047012767343974705447697450667692930505476990170322470523321565328932284482600645232686168230669340930976115013547924017228091335749479328990859786651995027414336999438419660520473763519684929207988894610104790638861706959208617334007068432669664912046547312586936658281968142428308170942911621199018021437580277611845828514388720341728631283737107881977519163795999468504784390709158842087574791106902524700802330329468846123570159440690583223939559056383603307143365806768491722020103585284559110949138953720062433283315020722918791634163198766487024746620315972588584121866809279646784594585527124684129878617395817770110198899533797842349065414916139760124750826177869194899142541056641990844905224525551131757403685034289822309863753753909328297301650413707714389004577583638570222833261947002739341620654245681115771903791491324054553224180411883401182742625923928982614672784526836412869135799715181668340366073495196233109582150040047186577219650127824883539881163019816032547296573054824872085634905506124439813809233762753892596792154480636387864819778998761842354859098857815134616847364004109042764981699647928214122601470930208155023119046276127329277793294209507398121876776558544855101544477381905111894496999057840232205800039367646867278010196555333111259619118807314992348768338809878843528329244090414517649847930657322990771855265720955026907572959183902271429545197276875155964079089013454212325976480028280659451888642004897656641560373540761521113207947144385974501194513345068600864674054617933641417450605090884663197204335668533010438612461184686743441597035634034810274628113278230318902484085878019545745177245881625422940698720127723798746073324761408860851207136214538452850333974961617899133328807560348534701836802228849518378370939550166454480479720537412259491121978337271389060226856353359862682545277314099153543474864309239661200312293644444313837521851564535576681065964548823729052143439557261504709457486522135485714504315313613638674863653332531034544932965149853514727936542192576193292684839192565899374429190063365063689695228278583129194619813780776787919075199647602650883966764244180771661685018691452335504500997515785188184600960948941750895711289573318678900080392722809318499416534368245290227792250884006885390269333544958046673134572602772074459411465049153980867149538060836301788961387293162228959604445441981926073853492479902436450762957885958038860352598129436546908619261813940871049761193800679833559082786085574971922255429429556040934261146758993853440980798645906794194817153823085926069503367622844281855251844012666707774257391852496179873019254253412427585868681970239444822182198032598412456365221400778030677242265667011908269960247099416044487316995678039171337377618516209621060608612648643605218338298037378315928310103130374017663061101854898808694530300156523640011659204933221125993813993384714524090417658498534931005303811402096372573398573399697915967224705606111753384449884155186298703941680637227412211873513541914257186553550116067585042761031498895613385921907383991558318736062331659494652244608412776516352222754642698304224445929489272643426475711188394052059362439412731044701643574661280457319290674808600820182050647716682715653982220902658300016384689777883699401749423164072708097921395517578457022789424329092583971871223044544887929912265792351568254657869474338452790088759092984833793459141904989115411644494160993133261931920100561778534009704563659506035598209672580844311191431120312507601671551378882892701140274817179583019044409086040442961195747382832494349921831627556038455850062412534993735743727369782212891270057229680211518439299952781874643312721013152625837640052416574593476099752404553179234397113985679282952397429782018822827516140540946765948744056452190305115551190130450630189792154115606711348894311692295714289408061057847946932684300000769340458195719201428157510614409441773701166463979561872283823614692490468742052611673692109880319290425783582368561560415050799859532994643111121505167827063285373846505961419463840906661896317815255093067135141664750706856376856554051003180252069588158811842365465909478531201606822233474009877420568918077239216183437059017704711349601995609282153824519713820561380726203761647242611182304773363122914134946751031950536788335671035628002421688941489248858100259740135278885785870832443777090028175839373507870732730179834494809655428814341704053110287157073767424628047555960023453881082186872061958342679944941703162544542162799778226076604972725375213247785589052279130083621135220422478910720381594960623672526325797262471083852761028772990052585444609160846752667334288522229846189581490616954291735537513961218644373148646967017608967474943234839782218772770926857092546704581755112383623463023285165518722258790017248640229584098222337472736359441697008853315453268839789655446090845317422481632963557905836782468817160449017433779818946735218490444341455529492849011621615897609608924398122292432860104771540622362041148753064189248097779960385317757982977250150829182167657738461685686749766633749531049758653757787594274892779789303576522597593644812233270650872959245612063405767966903730954888661467662281760558331707941060481292701162109467374489357541020150842363407952169156610090637813999963350088269702894628610315447887366245040489159280996418807070307745237870276646987094113243604620530762543198378419596024684303996493014650671506258190152865712587841046295322161839642262520387035251940687939008490008308452599579082066088351133667804568211020023174629201225631248627473595318857978271457274420254265972386968008695527276278179844243735061994216367557209275082755916123238916005954244316105959041599091305770509345021772237483009308916311832059619226628536657235794657538623808013119986097969245810377910398374385861244800152596866851907241153192873350521196808150709319965486766765469212516145116836635133508485778486929713013717274131644167836531791806271646393312357039895428706990066985624643040206437091596991472479860190781291132408244685938020602223453636075729976526438902984021679813104216473707867156940055468161527091616326725093364458967322653172126781069754122871528356663839436188733588297169750074404812217980721433564746073162090185725549195928127105958718432981518206366675202754934205807577207912365921197493083924257869728284860284573480886035774719941896317669960827793853203764086648190481857105510442236963442910565748541167770131026904148006587046759039547188629383696458379805771571562878318004244897255824996283758634174454979949855031253432434444402048505552959335503043528364722523114302948931555685845237400462856157814853011120067317024886623567131178003237011313756793466878927942917921731344640714309077799595816712292758530951613946677943592270924603965131542871788144375118223505282034055221920222375995930320927097929620448820278080486013135815146868977273622993940258799606125636728473929810833006275016506019817524034974011209339570073009841610112614746985129231809677392862412433305409633323162748949435319352636104651342873747407471143012472017083497878440154480218788474598563174906914135362637172893000721862792957582775992607829576698739534749179487612771917372336452243763434753452594637035705323142343979943609344392310294650189001859133088256395459579919792546388477190018654230354238496799261213007084406813349083846554613915791816214233290205760083222063143072862054535573460921119814265094342462767617661110311179049009433852562902849838591430726672943712872815747048028663982618458538294679261292144766628664928862351919610230994943175384571331242298742023146326084696712630876740509458950506203663391336457489471198117907687480011684067225712323713094566497428180847165585505718849900445054054749683868432740714993662956190711325303276467654378351931590014587548696743432371401167257970790401346326497832522474338002037331190505780560575791036268966748900267905150615802016449335164137340015447773689067627890160244149858068682879072618369716081849493959412425523178940011919710824971027297669040974889351100540824446356497230207193145127585974139975800167174144500338491662438282173620046355582499198498114977843261442723784162172352471560655268173648003217960425751583792657112419086962282280250330904599535838401442416601689855632068761430568447531050054778141685316415481224978720660317174598564217045336767591262362861598023941092097273089264451537788320898266757985440109512729788942303606561455396152262958145685664385305048118415186599311627693463497877125654033447087981233359106695664042753977784146779834179625999597880176101716118494778556365966989614406994074217357696605098997652698691387013810258135004626173328753663392678479765357601578054642934718047691828646127309067974876898969395734922719419434827665051880842859146471150471584422040265466718155581372230300798171161980939111046960702167668011718708749845023154428330179465944819387031991413421877782917084433923328775635901331042448285856735871692066162598020804171795953767504591279656478579266511354532686712152604597895561484691372013652190823421101982634325246428656558410990714166393918193286738103972117727740325232593217813152214210133968614759045982288619535127100047664379650521549630109808187318298982292256724656793854392044864536980441014980971165185066254515773089160520249756857694389675373856893473545592557011545341901459197437964197759818338699378333459229693093861246861124580519283792770891180812740806510106044363505246754570126668079819209560319746164461827218532184451968567606393739910024723146218675439627501975280148413680340275950518583563394330975785728353758116585896639317583058214963795737994030671817854162468488516420062310498975088963748692532670831920804927084012490989658497710747098916329594684963016234272104224411415634418440187447930614541240068079201403762780207697198451813047012121270528237605569391964541183441414182799103302617521651939472683379487754907887165003565194688349105423556789217371592093113797209201518215942285654680665965739832124402026554160163287409818938290957977126551116592416667867917017983452896154360175471063094294635187479109069554830519835154274335586791329593818593159219541520250259719523962886177142912487736236402858417103943073472303509198982279929718514479272646856321456581178412078216190251466958671269246246549913568351636510895440197680791613977959195546402207471192062754719878576666118569632200074847706331615432711257967852271975541671512529772229968740280402245501583528233366776232357922866904131161098544242179541557169627126801679506523360768592065663082118315527875408461656834674890982175989919415770067604916103117471612478000253577598358476002476973254445356126793279096739692246782887770406706857941153632443912073524761060591318745731663580149857206229275434535430425515488178555579560508594512353845399189213744886943341733436447054924986865208985185657390528414472726876483109630636980944636886862005732442303710438989105439725282494555538970735344368611376047068967675809606730186715566883190652969781929783065323160519844922201548773904699473123969266620438578843233858528881295159883295367264258538989047086119313881598434390435330956301937342224160824712639234855838990328153867572927447291871948492795990903101876682475328409512018624977506864002245713072982778816975314622489536388953095566169484689529059045001962165488187990708032561398315401054241639727269327223533861962555246143616380138337031069814133288150198683785719411238810568620900594349967774546765831350119118966425802028460248688693387997010861929673106755541116345637499515396903778099514304843748688895946839069513020286977983235485659425426393748081909621410144598263340026277820847585263634688791126156061368106799083447833403411974737506059344035085588306183557105483054607363150665359003193354440219159179333115422074648840647638216115435435972236296431708320431869225920355854124254626658574686815182091665881722295868731121542139417177210141459200811207810775395359929124769836940830704121773678772431934566515310482564074066228053690643633878513298730793851908548774562158682005499408239448257812320687491345935006564002539455034534752516910986015515016412118129105255439619512163104724982042329852109962445090483380590341720657540897645227981352980223845378330450307961216506566164066291207330283557232962561586993974849112285615107214371655128079495050963326386468652100452135306824939528358810649316812984025311770051607350406962286345212818693997800863367167240545086083575326378832462230744658068724830588093384403581574964073995437618761041803291619852858913605163163518574651248225012512870960393870431492278816933440328907517411486182093582574990376743597006489124570139649057919785614601841670622398185286192430945800515251768002856268448693257889918910930666403985039150838437029251731165563064831475556272169167236479923625837532075431796324728529770707427170678215968740116508806426359804582264334090156630261388078247736440216942484935064614475927243545625968033523002860302740140149254275202012832294906828003195894072530619173870805263712127973883103388961894953981175245085812272500808850115531142892665123072678269371971848795697241956901180287932559253141005470112059942126781281873937541153092414256893930712541101136473297022619299592053984149249432800031061843656204473898515648287369846119504063343697680003084430309208410799462101944906014900685160460356638283112414148181500579273643788697713583151874978259360051936470216830303353427939599430641990869528103904484943842975734578878377139960427650306610774499020643556127876535254615338539443747270446065568348054315752228527963733014782322285190048788502534078195910031864545969240533438480689176205929932283604498535657408130955695559960366970724499282356589804594259862554871985411887485806706416868903711169845147510868205570414495313158805384924435860417799118877940759265899057286341472269081567459941798769571695253258854935270583303559738677158443689245225444916160275930951462937591629507114068855015808562062789445049000363720389857428729855811138531213518411915101259810638550234678965121106322677903512433300812928752990672023414033820304707387404408210600307411488143280235712686401679438771196774767137288495562177734098335846484537937744927964568085905711619532527635931443531261661634506667723105278564103987911642339831532394608086445616065997064552797042927330689867079808950231666089215514228864328912891719299612672681427449332898026957881808576904825882901334752095457583441009889569889916077297203964579027893252150721825654344367720531062690813687923749971609380973834364917735429844888461264788996620608577742445304085676681132720214257838912448551509120912159206527132929143127374308483402007133027164151780744218330653400914684536846697554019544377709010378028605038910467528224617520694265637546099568323270852112956812689837337628231623737522880389507453070804696658010788645358481791382991078408543047386910488428169317859956483428034777077011133529034772001081566218072671479003559942372725438331211614997450658240538790274184678079086415251004923148532620856044361530475013298637174374731568065233550679468924888009324560262418682298698935020314344922271606351010940529228191283828259233567190442776256190005297842239795942447357508771712794036036643339644813311494875848871579551970357513792635879324430420338685310498671887859686262807466441346052757825364902205901345242361142838561748485814962936548733701961072119986384918264126813133160540023857778846094749827949680390722458212115382496718777950658939008876968907915142389937596137857776162069346096103915725135731422064162977247078524725246845723358796012409426671518549447085345191549923587417788811768611565755590519399990562195722490754740874723503842674975415657648268423753920825673613669414532637711223892086079600481331743146883207706702742262145456778131552666168774614791284452339404193873996045984075822443320692805833796020844903728374512993457462500023896876831979831402080519792441162538958662565932340858297983800476172620091587897820039624677831365952448225763058910186411037016323150330183856767599981542980437253050463531574393619240288101242898049671929371202707536352401893537812692622189298227756796697739858397259459630315921283193377222971164797803732186799569281420004140087534058288308250012216955335106574720198649088424466256898621563306783010307856898399516612447398569553066257881776872042311700270430836416732321272777560273442898570299114363508559707885534903155884360213414658798158210539914560330432661841355240727870171498888713567542188637951534614808699575345217348332737735763880365643566415862282907037030900983130368988134787899491388881288581995620392811970089765751045687287753442834868128391067024597506165328775311168610742064196360340150987829702950892151356484804135614979238965142887488679712027855986878709674478500346740678361559698097320412110207582431764187425688974628080884083929145208500295113642018712882937459212738375122956120819670151142092346639556225418760092987312660345918140723543497262650254366798335903815551277997480081046259906369897163617214841586667338939348945623746488738203889721228772194569543400042972999607476515154710054930800371737557403333277480549521651535235360974978796617445133292059563416581008709689501493573572546675076155243444245701974610820615243312820383321195032926887828557731340804494884692675851266176384013450079343195288556947994976176421758218935431934606266492188651977626455032182399196483504194515878818871878801250735399328208341232741768084435558735684808414518525787990538960043319860288518064048558923760665019072100630449655950390175964756508494869282375110773608357341277679864901727638430581866428213094169232808340021970200591750822110288997114773158636720318126622875287307150510205596298062914530108291337294967523846922154618377966514121865527291192079956581040889417015103488357974987399396461963907156194332794209109021341721582359152311431574127635578376183885779040552531661886658301567708238607214153230741279844644829117214551142614871390546282193035092818969487402130485916370300823798074536652801420449283065973202967921500110953302230421777153334307598915995201278904023286340870003879310224343603050921833564404319425923539012761187887062411557825757334157998702297438969501731497648405465779696064590592278215409628666882426514024353250268830123629593246349432422211158313984689180721356551991960090122353696934980452059045932176766965479121416689571486544929411449277732126468040109191039331479087716462695534025971894022864292411372775664692991392453539289811463465139109596153356095977783032006465241488296617176828325395609620056767289509792975386004750006145535509975528112584379982990489729019894326915286958998594961485604499088977107792447812762997172153150022835402900807632712776256633767519943428398388623738597784673784154211411909685994325261861676603115269544108729803607810321993627321633984720044652637296599718710594990812213011455141789791417699884604833885756033674083768313290231918235604985371627698246109592011930541286559291343455222671566812561981407150789272281413084788540061997628812335180192091504871242779810832894231600010872181082037516879945436410699176205515327924888938114545477718269474537216620521574414916791862862921888210705017613816020009287163282602305297812238961302415206645187603125217579946811311643845067103346961527263209037626940131380265769557835963433195184101134613696941883880570830055509331213981128329736706775280428501992051799594905300127885669753409277649063915302471380430334072333727367905292993974599060231326607903458750284907591594583363281014349362342882068495487653621734435949839885205679498641737105850256912590306750154490264321967904219589312637662959651470239475787179379054487208992240176449519341572487039327555942681319778291544226549165459099535973508858425246050686129472129843036169974072983124014417976675581568896416927404464810473294907657865132579815536698742069451225149045354572874690916839265541659090498862293359467902034669187234919486246610969065275357816473827434142421917331588886121904384241652131778126976619266481121873967397689735963666753316534637064314271842602087034476521359250591658492608345341720670929999357538921730499470761331779465206981494432572921183737735542445971666010886211457118720617742011628480576516477853059997473049528172856053767806724526318471948983103572234287483765673542326297436228861716109477948954989283599110371647973885325522181723428556891774003477015312801324431478847693787802199180931654740879392979765439474936558435826722328283959870310985522678449721247866650193520222591985723139015971871491257103314609693070197163592711070495500091834461169747752326825698907706554235893903231824400638970950467525173693332591522683843350333321099611728571270130024164519095319420285463062226776485431943123477654325725945926754790461090465389253918016237776293660129423792273471445975042499874157448788495907366611897592095500877843563555517065580440560537272686390363502530978383166216372860083053361505647394905799334684434019179918130954636922378027111964333558128953357187788421586702490715176609246815098831322803183624481694444051999453653471021809121029770757354277194606786716582770715466010880902677885219190190863180033031503981338902144412977219615521554260606156283646756120783501928705332016559775127012535741697768803359219191413502945155516613580979646772271967963272666063275835245422726032925090698964857762124212102440886732381217820806464271998750785718635016881789085566892226715311211215065536792405779308739730912192999740956461577003718378485624637519407608744323050724183522296106654514774455348029779835254745517757103643156511743427135570138074861559333528589326528112949983594800295676181333789537025367048096516902765178994517750623203987109095736577372057426105117341219409936729468831346530190556713458909078393652696167734464019172445573096632749434106342487542493592523204190608731672040783549761883853488312843645811446092736273039885854947709358541036960675512372113851409795892314646277235415870332738723517405356814407799176766185009580416597451771863659226284840151836023545364666832387460894050446442194074795286291798962841237999759152672019545630184562584586027034192588796798221779952974284402187752406110726001282998258305153373056944057789538623527776138525847818261281011610755792145966334138926684705567488925848861048657444788640308027985296854385522598270129524034045850721597683997574529583825724012916349145604491852420229463284345202726460671107716281367137627336068730533969315255370306030251139254418705831948202930952137509921833870527349664046476585085215962129241135822873315952839914166033605713080033587790006310074474419536375683052136533071375254874242268585524792192735369126272478542516279303907964860210291297160873741858169887968589690713801984634801129887185821210181331229879156519197951944573673040883006755149837631026127351626489238457185302240534760671871453886494774020537983749504059440134023756504587210252879034591324320362906188155398047440091240198870324156879148609902583365121247142048498469843485289828465524629189290868050110127430887961134706488598600850010911427239560510956258693769450770587165150951742450883166445329052830193550805222412053421639033513919659957858286467491946533623155819059580379802172585572320733618308422860874581304983182133808215806088762307603525584174519212319187970456921876303911286828146026298942917559279416685830222218551936016531188924613716960364166934636911509966861763994457082394909230914414315141401516917703382461113342016334424396935469968725968312142433786366564540465294570530587981133454808885650654554924734520907316526617725131768871975695716786553709740961322249162925147471387789045361559731565456762072815117717848672001192050149380561720050795111091088027532293948798761762119773698832877372801552600597759215405523581197886187312333121638532520102900225829955287838586181543931162383352240838895667884071960577416604196103645765261308083549938160267176127150099992705723476264042024565660498036413744683302275060593456738522170997587123049750233965578539660461924516960053849032078479765935351614751350090947997122604974306933868751583203674717577436067144226739519909772214219105129639333291613146168832035704525016876318991100227257144217185889492804087535431131152361544329804532185990166841227805388943916960678366412458004145217493171629366061491329745245376234710729226955761155072503838340554319778705738456795822243665654989198685234710414211455312263449706035849058283689036669449743462622401818591713110061080509585819399425402110695119577310431573045700854377635050476788076900374074288027070960098885269619463201003309790623237527031088412147827549535048273297834090339243053008859841638082289703902596258876334089762551609878714241389567047393396579530900718753447730194274517958782582394058304750894266772021757770744436810426441034122160454214860117973909499499962960651258064117900813705756224137086772410421053611207108180533995299254236138270722491319341375866414412383831206102687712635411344099190320045245160744500280893296909473309498915138274956209403907399494543986604618151330941461993158921669141224918626518740662916069428373774568534243142175149463739470434027479121123044730549359886955463007717264909627799232314254912534358618335909105265742359844969820809719858693630557986551807025374305451001762644245810163634461475433816981452356346039692337816375024111400902909652051559654421049690414766537917992531660306450970559736573584635389055793700106384865207211007914438832120670602342074478241984342489320314364209928639851862370539303649121594534594982714314581198467782697776147714378566938267126255850099442449099604606366672239745869096868311656865767713101154076695350291053342113881981995110375561713477590876209340534041222984280207028850363553761037818190587622279757857320113850412242271543425480894408659002270179251917714167810527011854015859409987020548866093418436210252335480107414894542236916140351071085537146382545379571134578619211004582499651375562279736269003431981407590902129056772503975833980895278413875846094993467613153273080336797637555922177226302563194127360072328819233688009529558500720679926814291526503662949627257936555944295314338724596631955301906974340512858587997271342038210610113808099641465970688864120294881527794927618600268557722815387465153091578048758537159421807368992474202900358781912757303878029015631880742591075098298939030998029204559645188851785512190660578863258040387222698347170039869450491584954339244204948695648054493977808745076766110070605381090331816199009155771413710195340900708672096792880830860733774305948818340175104280487481074112531671592710239869290337665376086068057303559666179413673513139948128635877908644704963294812099385469004360449240603711251255687319959549573020159341893119617266741373767945990384687741317653711814558939848526152269273487335323056012349092652814816388882950121433957408804819618767352800110616172459863138418244881297329578144357026726485589234897967073109528274421787306471398359164067429371694247829083755324970509773779965317318689634788417567649466292464175444083789115502258453440192033065519789137186221221397788039123852639953372340277507517264969571661108220262859717720765708526331437533917960587100216294042139636676489299473876589480583106877143166892517416213908340416772733013851946796259467821047922199179897082233613609693220686013798204490200568097050686464885986983256922578921607928300637295527005349270812196883957613169135280913539548678689161178529973897666469619237416976602829012057465142219998511607357383542801318478119998626737704184241166698018677614635777626281992797858904974243632588798425100111927064488600526808939939263712607374529790759933546241966955681011691128561832575557544377678102643433410726657534387452659545322303067021531533159566333584819483102894425917572313994111675008408931712346061422966339888082891464560301412751650772430618359883269555807080885039915757997064350027679415307965723417803679962104326809922459888313376751916187825607773904107001686785150705299274267708701932515096397121228429219828552213511816912688200592337767555668138392990930847102630529808282016973526796376550711271153818509061964790708156868425927408523453280650847819910055282098464734734969478960915680708355218310716950843573745361248958298766660966691606707342980942733010246628214461995081860961608429964344342367457652344093043914384515389060953874275032645403252041021534328298138948534822402097044707864996041829002435471985109843610831504040991995016527434650223334582205954150240927116080981989894963921499029380861776429056332652720243126559663882112802200060362993969764649020852170395922108018992263353885789389709129802184768405087949028425995259844617029881876248690289319193657573566208929564071227998441368038939783933599079688980277236984748101488486401957226114824485586674065552922918507713280553338969936098544603729127182095238418849924481799607974108782526694895289607861233649242691550792440841740118300646033847860054364404694592654989566715571144629501157970826380568864245824293392955876302176503798515360526416315851309685704397961707792390991679208789362190552367673643181849122578161627012691086520793080378875520091044270169227141492112025823382956119174276493988089888707770893779107066894260194420320494236807888105465592368397296697862152766608204341273126301498863503242484216576938924648601325163217364091637745937884816361597835721364174108634320021458715289568588405405056912409913000961895890727027779856791075819478705663960879744336769445186739062143020802590073757596223778878898712386699924678151580610742184687131976223696944864635275243289804237117389698157053899143182178394443124700252124837775065459051319321873365263685755257448487696309461211172028953603807052940251498358506002161617700511125076068444953828093832457854193980391215256378454972399452676455698863276534045042552284416662661946362671136215562411478133528155158960562266989078725040136059938403703538306284551750207885609015029657625660346276579668311786777375837928498948971893226233384213935849394617027839187975593178987586530742772395778908500986132335888469564070169288080709616859961207460619465200179887535181504535938696724709357046054337971586046060342347679826349507643523856770572453684451017747566777882815186550348885442171472044541700881703577257505625318592859548502972638049349129307427774583822785628298518706122497126316374447602070550213068283718555516247550788684133978824004805586207704361826232607920485557442686567904399068313576819163536920529685041139166486469357389942778732663962889286488515055519762298047773168205182643508213233986165740559042820576527113392799828565736558634471172292852484457009405283331278055248275953967884796483866616642608370104418451373952569489027707520804718685882219358568730776988876731762710194464786720717793711593836450781889907161323809184697550201592908223353247318709405348217784063713694865231948325399706045578780188981544688350480520007912316998385861646265054804806687208316695382708718056338695778410408753637444056768032687855464896083862894548536109857449575806707356692902603277744635097876461967458385764251103277595697048507841971417607900286014821802815984901591234863198043823401659749883894672933712667108555443533481919044374049131158737303045486390386736868210257777761614478957617565429765212643678964793410712759056179411821947481185109437707087558429160676427722514147981407017975240459654088646011326737504628864268230874859558630998458208211218018863610921611203900002141153498456317746652628036730678586570999752646577305699692812030589593047830773880131090685449175068066479781865129596629701002249908219048803698886082206351722486671984886439477816980376989889587928674328504140316105448853603043366232344311265376176514287348467211750704333060110211911593414999741572984871969936807212422257557180338359352201798537448172762459616699016314831516289725570069776149103096818592880218766651323600414599461849346804293819604730665432749448593505525148918143041981445766880359255101975115969716101540532348645654793366756392868619569586622803428158758958348628725088943371275693685276975957694663349227446643699733411888729976357288590152297536168713318942476976017984786126296224249471618352647900549014290307186478144827747216086715242830196590676673279484248745346833556465410466485486586701822298302465187910563401795520936778573383975175954434340132331743058165212778904239850333927560291265221816585916865564216252991859427855873905371672951020120197324311588143862161681179658000545642543772464727534898575379535249604576043389967269982647484987475067533725467545108687169166877894500472307889540296184247700992250275723997369639662700756818441782558710034162127827967574481711491324520977703727689376748342555922561109431053588061214444004446056290954250871594914598745246410446591864883675295254169685741847159201177183519707199723698991809954197403429710867600559122385150363871285196772077985379547087783766799071432247822804079945942392196441460256091931390649806593689346694298857878635868126586727794765584445966593635425510767521067706870933725145210796904288835895123478221186818068989911955399558915824934305788733866233040730871930974257913990361039246836978467118111440482926320560862061776064461020096449160437246160438487563219456271670522930311307735414475722086061722527310459963051949782403100475064801088853697253456108022972621648932857213459881968806423086380512447273731070896289447892677468830842477458206901372366114360771428929770510245818400032586278182752790423569371852087952020978740457389400440120321598937901223685145404178181800589578664228652257578646580995235072432014806482090346687170314358061742581145680436620703132572157091741284556410561505142595583858011671782733141966449465416971582831336738429040435170195144803148414701284141641980500819706579772157377516734106856136957503849825465317865328741403813181890068357451501696837432025442997428429100718881193949918261738297630954833047510299936374839605077160400727747382020547633880036943975137296518924161321027988079351531302023245983165396359816916622880394472153146452789204161843008317598231750096502140463091318838058895641906302361938670409746822945832575723334906210964162402484203194730667071955833359819700234593539225338598097777737848972411473814441053861081572668805841695269280423629360082898787921359391504489649219518186531873871629452557202356041952516161020082535444277865330974061922876391823633394880242384244498132630424925984256130257871069006968572660544460870138515823449163132684900727649119302580550812595636945724091860758676189403683435523857802219942418878169491704627343268834154196539840529397883275916292493974766312811333530935239554001546796879195629211549217726576373491607816915206139218764369680861164980203924560825017893891455923963918675057882839735077085635475133568642374132555939001574477127619549359408412886983105802816415159490169766466153276341984272169802118459343711768640946123798399425722577565009391274784316690547276955056575992740869054230579578278980011173562558791365916924951311201912469109366664646708412462819163236479959530947555973047352087651044408544842775440429273930045158105677657095823460422454364385574799842087933575377510651136469652692522789634183694132548441594394872229957973760678436845318193210675021540016744949071476181119889124766752132116710250953124914760159001477960839311485003565760307719682668049779527226129152382464489845001860837792765405753650672385169206146097084109788451230623395991816704804243170713493779065993015836171413290970521568684263093757509223006128679290472129342150216414296848335396190927544744179397551691329109800335953477460694797072037329510436633398808417828365371901724372804582603549648660976334882828813938974328158811399409258465933816270177091345230141974674960718550887504786179714728204556285765546312717870113379026802636571912781300334780225624848623257096998427922842396323296510911986281934479221368707755844071353126746598783105476454111076753975331570768381387360990379262915377667825966573831792209011056792575430248774172921924277236529777320771374224630539446103434572516046861514946514388254449326284665906029160032157787258120484505057611417125616893842040672331609110982802617496372553649322535539689229896046268895932305872372889034411079591304347884019719692942474690922578390336436694220240660699336114741155667596146654298539374748478289625759927717077673253349651398040733619124289813247752753580159413055194107701267902729791211152536155432627657114319544078500060902981656269329279042844337479604103862986669011878854400500210449895235621315247593689042484435592990139968974823304326038604404466603722792423288800900135992544054713844928079138761525569164925362288722216802664540347321095562289754370176276362473293574327448413029483732723295893635291157034287942950516718947105872222651077932526833196322207053106899161342994738373296905236713176947165245577169595281055410600559529367816702236797416018523834629116943643825452508581843169692509475481739218748256927740106179360644379265171019233503127533830104415307332399237941978619039723133039261621596902468026503796310057519183884348043046359859545211756239334704820284519843663027840995397856716473762115878987217759072366215952093414423537494851037414404013383885965240261453715764867356370885141456124089377632902469357162931338368227783526568548343043149028889034729995085798437367599663185068495092914256645771309620798410657957101451068170796529421161385976343390731066313524965284029286916602632602496161858793062831248822519951978729430519434087328322379357840406070844805734374385324544511414259961713039036803493909522074806854523703709141206036105917372408293998895479763409083221920313548516082638676484930943686489930411692503475408320187769859172451643945734431507962269993689215251785389415265761883102909668752638040570268553520421504946506931892587587448979186851713570421193037584467308652370432403376646967555256408005831007493186685095213379155345770988377801612258184949210452211710377906710714732794667967167676640776730660617376408745167768719055125779883330733522020151204377442336007411504558703888964990932216755550769581054906863024206735058235529738653360100327433690764188800983868288251739533950164430941003924471492901059625246126406384226222065795011092456788357804811490203796401711212268785935067644934662163382990498034337633714321910583677867328973547696310326421592722845364190267775199218541676480148109374638338816471563043765180476345975737248871794757947761294505239730356463588532181923261097167726559870800547864236550233205595077039464082643994892488000386949519276380814755257492018782525377682552539987790216198420601664301464722396905723909937981905217556327797465272700044206418540569492887965798474439550776897488103512269648919026512462072170811254799704109251408810447036594170804531018883570109639190397062571502741464112281358184294130971606347844532395907983007754975280808768208489018518428937131502301340741069729237343813628244755346911755970564808973863475247068599879823092065116648885754722098770882639563927535709905807551138830812157291526031592288779061243359991624968884096010970750142177341209407160806072672367407914559294492504110768220512458152117492126599820252897200682161860240134802943918195717438737031760698436843970305210650750286780010863829903568944966514105666078177755930276244638318131000950225431739585386379187167455239685291488273806618582567958503949188067311266327309871654717859549010201689120991721954101518895584495514725812160775016427050802322104835632172564522429119842721533458735033078480265464561148688802200326241054898323024662318829081721382135543853206513994253389485176278451158166728142725919758318627909792714032478716605667284278716433273609489335370521899083194351918218980949938130397405422383949583613826253544290815964872945150292757112254142240733095519802079569342869301672126273333065459628582513844980315917003591568872646801919775978633814593473823952662693483795329970597143500300982623347481008435384353238726064073523634205324582888637646848551627368313612236690641313844084301965294905935689720058896517036421206580998302097631594674789905746758891821524419196368803968184049721567822139017466271624197772348358164596276989148967262103037449128035953390718947677052695803314821420530244523930198925663606396005012139531355366872413596593964115726016153974665544819500834003415672281043399070169253870931204643051874601282006365379816774756178683476641419491026190013658149560112908533420212424238835878688531767036743268707028847096009009821471359212380188039014773316420494712798719688198296325448474871332546979066247874904830367792145254296024953976764810598315517582081596089847737066383341311100677761133802608151903388975884714413840500449993246004894153383709039287470358177928123926018770450631649578745397182076971452754345745672298571356258949635509700922647452393962375142418710706651341231725247878080307761310908908603389956787356904837788719521795097681381195039173985458222760943202924153923365992116854791805023024239165549020297553374829891246122075668203187608111721977184575115859273861205022760106711579376747692839620756655296877178628586977833374733504049035190567633136617117180346421547487686502367391958674792057528599173670244358666586203928725386556022453654487727005733974319575488045950618102210842546732465913997562309853376855559695101762763017232174400868473688684724211967416371241916628382838596312180928116233835794706869601790641601614199480928566315005874725000220907490462947934662672866178336102939221076967264053482020839032958336535445619621883323370776134093730829683121509714652927250319700663115877666841209284811955747251150130917973921312462735906569195671998483717332963467680171044331617836096925187481185350187102951647609926481932868038947166088271522606016973904564937968050734932129355187553492950555394469481052389092414268104407722561369191039930214129788569473790040423451819090980057906340833446872421386648779503543654021869478570737811908489732872949355796027469762841797241419774954973140770979113309061598661649022390120940833185770922611418910309102355766272691599262595427764291814284553236125571245476322800126606157303017356880108007121372122310677132369700965813413822980924323769334285755758645132331404354756142920399277174387301836370875693826480102412746101383478636171458955897763054297591891916521504230747331446367693080285009723646813760397326097223825892628795900316048579346554268210744782567312562475216948208789979437145108999024617143041496812908568227403901986505680039850244448797708236683297809593421008813700608170676078447048581653434126302647893927912319227421024758542536649119671614223953041240412617097517547505010198299640501309609638663771456930702834408455788408614527124990888402908871965928319858705307859298246860383370711965461665227145694441389078522904049292746393869560430018145677375561177813817742274638747085732709552709267182424080878855324505189160456668209659484941254898878150088146035501431792095198154949133605243462306964273898372769897619844564200080334844340917269056080924957325549577273721850158702112643562625077242254346181401207046071656901569910862068131077289958413253547993653314718841737156422677130242965776806730657086476453100609306214656308067548078783903316683103614177561329205982455732200040910106141370008312558357673301251632654314902746656875709285390168631659637131633016502629676500743173840195182985551200421568005396139463162599420706635336773047963897885547109013501696855163682692790995176831437289042674430607699903849555942654528205007286013047366152663202709159516540411552380559989844799922997742967694461264609684065313103445957934425809575207205864449584805450992514834367869283937697599808419932900863404528419297191940839565906074656220280566494279877694644314755849688889427384108897476595077289001327356511829307109022307316959630688385005226958352207585650221958183756008674450391146252294444141737352423325015145685421053167202281218811040419147384185066074719128938653292035463402702213716598319050179251601806041641328370713604258294206532021988134458314651452910697093404675017093929360570276269165350844190981437423601294806101930175887211707467459470697606304589387910086726537093522810377947747708307897592291373772371744363775241204887559386354536206505429673826569262643847372277383219087808516500602886551316733624632304100665274082769781731906042304778624656686694116786145554604206542789118945142713979091014986560568876520400990254591894883181839172186922777809520863460300886631894347645895411547158270868965549445365142915721586767965164022954884030511223927782927546331757932820970449483260117996506492643263094711457301627920509061870787310534091042511661981148137901300571030406219448429025096896566246416235167890068396186964673121340694324246032501029767382629980294606027413130789921995996737131947495799420114700747885477869826413287114725260807804815537088161326814193164881582162746186904665098409887068357634937975836502588309797391871522843359491670288873915186638547354197137319521981809459447382836350533349384249287854724075188061840179517748723805782090369066551801799199032226326567849421758127109368637561873147580211762126487895809082732381141441228734335944905339999314008796255914127646482618624285237279118015634923766328392303346105028558079639951414402245577841059799728815468826356954574203061554281962336048825035753402765456160227175779174014900611488664321948065525163533044987993060055352186491914481322371008965602821346262214095824726796319458077901426518556108018610237923289165402149566642362728897831164011563244703248637974215845960814080288788287290296729640656646315335996700702552349275353910884104439650336847920643558435267568330540604019842730413449703935882329102205515242038607032748015032943787115921906306442822279104041378935760176621844192131772599481003077713942018152249289309769118192310346137222669896611883562459922574171007628400218076125647785917134052531067380545140518669256617124613469793285062552277013813322699773728701072016898430562017078796895391921376329253409911099859779832502753663294922651129296749038033117123247400732262116123770486952598889860783060283893911045361112005926216487518439037960627347140992931132841460451441731899746856499500482720918179344230235411407108257757077856789323257738799763650942234366912270308800110334998081072807105377282458454171225388898379050247050742414166279544407656927571703419327407740604038860643143698115125391215937564871059905973584698228328563566824458931198820983575004607812884404058062883098419374913893854161553570847594121055625906036693958483955612421312648023037340435602695542544315829491883909443941830194555633873843659879798252795269158964865894224762831333308243520484722518202314949163007434140252848336161394526037047776947761426814870380668659018962317651631601807653751406484982565162209661871992291290413005351960007129239695472313415693346402374393822856029876126389226056904764863535726547280839801115582287863149547996799438097948818854893323207618879317502857681938463398311471702483734382169000685697830461471631492516254724728091487824029090190894055957066951219093669325156128668888280937737122309749956957005438969723766093034556558937350936341853870324699520431771165694597605604847838258840516022458064653726643529721904496434502344401484228097330469260102562381633624439320213774555695943295435062698937859629274894235979688536408353847754205045460223326207949356792139771320015059726157993080937219762581495959682934464002339406042209494031694143384981494784938296788605682145783246210808371115589751756925235805412272503490073411506951195839449778905540901498151351601698741847162425375374535372227532271499136100537354847162713763192607265371684096445933898354238309531532676646237943756266926729956502810082512572937163855620677508748633943837101367674366527106979044926193847057658771440731146420025637254520402286958638789624181862626500734035494012121410281261000438295905829821482222172486345720303281347096392076265104501954144137137266382493165199895576965478063814032277119736205360915650867871654155027946979268331687945217722154543139729958189207323855870398738671384101044399674205417968818452559878801672669763607213211035521680032225296063221048279729754382147136225184945016435860202991604389860632216830019921674885699607105853127589961644107475396284097123737809838733464134101920316004998905674621042448075068731838793299626646305664511795614616593384347542588549999520043910364198054303368819319094886851610911116175990478983474655880683521959686576207400067509039968348177573388080028335320107465825040858744330298518023310565415623680428787933735466157157739278017131877874379883201899491923915944798798354497690138004988177314215158310564283897945182687425246158402031042590468983864005116395168916060091311083328419502398143420918117307828828819761319819826388753741262449475346168925617998873078949143846922592303870567285051565500529692874198660867744290550770345498578389689017452852004084902590771477813736869912140709192318474263582454497481783871252899562126858672509714597157578460479979507392260567190870298426845026753823283951503114426676116621262235986316965158928637943730647629677120909922891037412690322103276660830165626573496885564991078909811983987759182747486792647661314748066267957711412309730767202475940641020483630945079154240774156318059922069820390160068334185783556146225597799903014684727230211025784127625629253700987195478168414857141345814990667866851923904641926894500159096431428739704318994322289147782784803350695867123606279267671448466157827144736242966225174636688846510001741936855852986472739111783687841120895089876261939269938126307248122849390126451987976219068767409574459970151829777843960527656853823840568391880711692342804410430482200780804202793386014892434624895304494927420134363304645953814852783548711029799436013118582571606280671977313894938648235095101035486343147141774613002257065092802893675740854964539722816003689891658333174715146673011380849672175818102087031959862821767308466260664699332580655103984196451242719122599882285100704321668779178792520599387433502002106608525333303709898077875419203268767310832010454353338762558110130300341815396648701101796460638526543438252434109522026635973593589229219322392868076757490654435981132594263507221139163517406653054910625901535366934128322934131682389784673767602462397608096005972758778423134717458807766752863264039622483327156292857809299944876179678751851454648689816050786698891645845984487271916628198017793184109966026785909164147088512496289175599144065983195780573856735736668612366505321097940504980456006191606269920403566367449721871778825382864844838224563854991346290547596051399246497496407176488532413515489415366847512574683226468870449823607986357510817605638448849871832795901890787262651954615169326588091024814128832483206111685557159868491878576646979759183210084285455966481500763107948765111505525245082037778307248297021048857673092948099114323921936382839182497374961353257725256544628985189169868073011420357260995601030045544942876173456083228733340443013758663146205877283543076880105793364474067933597960279970510479452444880008984354030312193575067828356218121288730600908384916988029783678052966956045793146933605533457464992678950967021958040675988737707239675616478142049663610008260762032163656372517376161898059569800601091325315554837560732655692833040641466014769695410653807063295595974262200834455602202549727653094459862010416434986368935498679789007056443376148634616828890784536700188497875721683714081577686406713253823153679309009306273057059701923745164908285493850818098133912962325816622582658132231615937637931818116363517232296125080610804232165514514801370886634566684158778152851061772882034748756497516838008902831648363933048379842278096870755769280087933440336918986375464259880546533219889504529065470200545343520155737797002118594959079543703935645116812462773366190152350462532827759760620857215365677562134981749016229687071147991901697321838278270238523500182311957276910612133025986679680313283370962283569529708681574515404489359331244044781020105441918680207221751173522215340583943900694444342445871705137300159625203086354624463997415093565119702986043334560436782360184218440058809223486499295405465968450298932620809559677849935249723096373848684050249606352766421838149624347704168987217273164299089847884505293278356589547700237262486985064278887375370270309956371658086439310372864439517007962263080498228818495505542754070669870945251490341796358804096231934844257742566327601796112953606244992607335006839331982689363478929475427310602793086516665588714760684763270628204096638791143188862995301937926337194262730398755576976917808219579045635246055444523309018401967927067652384169638913374403716514677260945667665012493166777871820185538000433305398226746095544800857865139958171567365153057595807369302358316978623750918616007676685399672234148932605532742470955000550249998686223452607759076775892615592630719024928278417903447678976055450033652862471212116225421277711242615623251391910720951871020257774271707188742455872401556795773651486322294575279065641223882882023664905626021726702494535023054751338562354550677094719116456193531591266779760801252587872099239374268059027418489203086629049530190928910574802977868604257256776276463957847546389860818542562034593093281382875929099367175315299358235699194880189499870327553250343735295174854262987852445831394588020888160642334299980947388522601397124739763840990138806587330686530030966828436698692767962640127493327776812695221623812438771856286059967446503370101497518903619653631370527641561953898016164046998221117968558674402980171934709814731710440265725696344894097636461156537008664670539585448018395886044074189143747823527256491914086009222411751085045309960757934062297370097458242244537291475900950708587783985172352801413643515697065059101385253343814498542204592477058547022036953356186326025400842057137740973704833809347130365410874620010990174982094842990833409654019704161771215773011883979732245000969916000071652049490339953530845546626421145996880120337390339622339476044044701386745870785474826932166501771578009965905787971518647761719967119179150103882551693630295825667252989287174455715061547043897748754048045216711028643962880740645573236637561288042199447002963609782584145718421820569384816640063864372046662536892523238476614936782757438591799366606357091027451377560467197751468054291151029158479692471540699708335706748824668282262701944205166552560968864289457472624609498782356537064820915921455568596258884012563858401095682015446057262490412645368189239396368457707848465399430729799130351374084889194154067286406724012302567825257399713037489119661083428625940714385482942085091170519387847276886322119718537273520162260937866070034312943900068644338988754305206098041007493203944566935800631970034678715157133364290297346414567037722861977056384122754061302100867917879537411940897610426882528043565515728197291275003542743760915161055699806280471666571106091709819077628276593742720866172629856285584576734539741142645144339045350625307402335996069855741898404792829699538007556323153275348278432942824710750389782979884136589728502935638933300711932478409336533430647006367937220802613406386884789919349530140491459059965964104523601174161712478235169660235105367389935580198637474735316902880154135209741784347683198019525487883686082787768559324927925821275381537004169054063646681645418575180283086461809164638716793619686574149828784686136718238420930970320917347580126956078390873222399227242885397577263204596164864305082211066194910800876493922009416106343999782694096618009438117305818427812919692029260152808052793088068535813693137474290899577580694942203985258054691571576409601095908117757363696980298543310486967965595470009429125954536902152581718455253434607306281351289299337897094852046701087854891107115094892761018758879000360035664829260730908845429109129093889172709410718265793519548284393608647713465792699412268334438745761138858519672213246131748380139323936708649731796834922286099540949746307858840009161142243862175832630585171706876679294128638623124196950717326189568840654644449850051091845606316975185067545821068481260381276169143626469563040080818117658220212301975763807154128153532036521756520280755242121222468357009265612306628031331871133177006382186912776443449631976885054383029593914394979115238788145018075786215182819962459758962358135861827049368591826837336476501983501304677446178546957829065816957434373347517368813256951205374042646965790012141093471993660014055009454252799558799308550397246520263305749046782844480137992785099306019618176945047997075530436611719748218022019061170457038605257296190750504574417467751001169343045589156838625648515488336534632840170815956199301965342247253622246640128174695466775977988035125644642255947963626277448543484894567092925993652064143696618270734433191208995591715250404831173418030316514475870476433284732192945858175314526787500078269406547942773864425774433678186703078191132791785119271447639590948569251500398483000821977298577493627154551511524127293199303275933139320952494483099952678117002152372398576773046116661516114060833634738470568453906911971459294020603013250709493621272016259239522256263852625129877242677121635932944169742381124107572545481505731539438606446914870905038927155840574526354846401171771202828348422822371543325954954068083134726575832909904863369390388624076138512870675216801828384204670050720183820119854145722862233025826913663408676532747126328269277750612844394224959119273160304417140628289381692307419743005509941015634045843375523284244147729875873924789061213925834188957325919912042943107864445920936324047703303483513018757110981276573458612495409892634603401585845286170511692445397393046688187068290412550224477383207326568267140203711423417501638174547129084316746505930415651756970583496517772920533262846670172942936859270075038627787800565846787609213650695047652506345036992093122019395807741956362028409215098319857248975728340425949825726021845369391254250886816107726676689173647749697192454554889409829046928758360725724859245555148502555026272042874489340243458714577403449793767556994988643540352817347085201548489495326254290974336603892825463301482086762774023903237053172332431626430925042385187008825236915244060909792383917002832224234741090355150339519786608997561039002343577261036200641582683232829746609562674778384729073780916312202570089019706409483857816499302336032679947696444136777860612443337873321208252447031342426026249450706255991392375890979409415139407571752306290699483288355903280150905645778801649601738795223030567320692002732848558850098967439266975530569408298390988062752166814913216242331102470367515527529794526049629791575900628776688665401126037220151491587839838193938288072116783604267829335350789028497012955674106597424457780573311275357629248062683647321738677326474804121596721632343723840108068863720857159013305327271452180519435659429546387631145834974604182001807465219272667987412745253355461675254023076067182286433331430358717774065434853238524888709362142946507786913147113142818152594131213459288119774972021025482981372821364629546872732638296866901152354563876392565789952047715041291903390779219024720400916224013587423048228038814953544778696562510937386272761113442651450245005942865964007309916911388457609912657878411788311376579491020047609312949520564557212389837291397160939167194507407606773559672314522441780577430088759241854341582555018501675155780703118256712062656916646541290771605670604264978632373354248903830363851276279492396780753315534659742828094987530895903409955566578449533209907888301993326985065770989101506256240744741649772534969379676219852641918601050191934579236988548418334544145147421036696852730342196810890620044860102356177779548918596700355854056059119105642084936056190819918721886946832134380758736515656919202372583927832228393679117612481851618181542780845781522754015285185997239297542301405586940060092915533757138757251414309870852896070608678343514652576069080996183234762209224658998829776133156679017683519211335857570638825022601853667961762704990755917501579548813215884618788163598940319792710873859153595515907556050892159541586327635022332623417877913341319620730682530675459730301750331641277941233295111224896351825104448937365947265917658548560822879124327075200464349818928496942361086553482281954690927537521427754742592397832448861111730666380088715568757883364103227562918635008710455128310867622539807042084798300955374731887597612253328898801887915607188814322408908377405076667223007578322243624706892804023634918573027319275737956331645213675444464719114647589363373703228720030814546423544097046405377739287073167611775357293994485181531888608005534385415676635647562584434885529818825786942975857944361814583750533313298062075030245168301712397627327498994916658855823569446467692627002550189426876687078657485824950956998313599096494935625623039080365779940963001871430222757797681961185746086128235278012061814553079065305935496645383202376927675143243397926720502915459699402564968440262311891369173603331672281399664518991458814160535034778459810264805415721131102894640210756751533426889216862320352785897730349619036046152298163235857142254537579421853368566361664646548941226173489724681263406402211182118437277081502793523914050189969099500559710405216050873025662198840042311810514991176966919298537303049442135789477794676245274888543388543765288652575634235066303998423004699026224240601471609194279759906171585864942867488729691809819647720483276368087611489280829312443494873943405300300769966291507644797041853291289753856478610639757945128334624375181213305197094363485568435355181537572238533367685253123586744188783290147836270151133118839768789556354240988531991772357473590227257306981032581703516915286244100648543021282176274565462498675418834550803069622986282581155202884246685143444295108763796722987820709258847244694438102743674100435597813908788739371791100349023764404788921283237415363979433798399924526968397813391267372796211779459971779021569066358288939021746692462814801856018815848128155594141929459652129035859288605517241879643751779390313026349181024930420222586295092747795584665010614450943572170076415556798684372925374747793740784058764108303507226259693055477521128081563225028776772589834722280701254268017122595667970031678917145779809339120317905045616894457101345584949482874616746330949556518559522787975345521451531225044960165122796116570902264100244600222773616609176368146442409008658899519355349030418379415438988321060228638918860449158723388939370194489949274037128878241764483251466732253837686022608902492013268815452186486701768621365809865491537617638337419129415459251596345283660192370573960359808528655556133467548146391906118512109308746554739155039844366097556880479300740793884177401520906871823503033882218693122398641760810108521799360021766320702391245598033855112667098065688361506606602930426139785018602899341000721865873469784681584892792875192888155599284009691169247526743596766138395205995286867821540467841414266190069865334033103744553983053838211943992823693672580959868882574267023762917203011217039852355130500419550116796186309456329046958671092949803799079603036100629027501225013520765071970793202377527842279055840311213943986847163157352406434558196389954731489828019006848493146341526569717706491779222576612857553015837503349467277369588753714067585229514135542651978523341375230873890682802366230215167733578236044633594114497012274552601752881805431594987100003535486432948414015044586805272584964784166466464702568890789309889716363080337336692175870810988010180867135417692348826946436064213874091004625016203745984233319382578996941192172958970441227532397864020374733559823943296470856827262719508455979051886358219528966957440716229136256497012792332739885850035275849494804210678021713125062480555814309313214268067366109394356749510021688094977195372718789732310028662277900584007735084796136434500643513298658881866515489955173447291897598425780976838193729606993620555131892866806867854854215946598012209859119929587702202692325252029196482442086737939657806980851150112774893960306892333468918425547179717724662764010885398964149121859893860549804752281714245422237074911271762624402684265888281039745136740987609781159323779935387874206590064269015049598336972653747041559887690509073174354569925977179700449797695353678645062950627150531051217211428042562638512543273377356736133254732409338173995045223573918857904159240205544436969245099215547420297967995340355924313308037122693723078921001495278546460733834814326513055352643819334837706244202801715187080762904515926288067902220217649463848285505682601425319987189375968089772913899638345559722241990519285467408685684760204190365174079360398538428625834204242132309845692215322155171869625920936220391134039286813168236074867684817584923387810717308013846888297622784933125826841060800414839841881358447805156193969251726490604477012991638709325843726860493156574562421259285927238464939193330739725252866318339722863288254234348886620842874452476905098407648209527977477899932787194336975158731951880876490936749292461476397425985775960582191365365774022378941372612044506175911432114559404101668742793941350643833511925587237213268899041286380149606344344915718176834823854801144349052072485714545557445710649866075133625108468289089650172305837755119353407680404097525897769988401260852231100818464042513897498321156961473914443932780011155951937712788865138452284623254968968250647937712164973551456876601907590574474571685819940909489729781949279737197193739851694904440425767045623833410288524042342291906804624423897217690203256592965110704533911745418722088953680137250790150120291096253303023154314624597848004716867415624466582022277083171422518505555590644140442035547943458803122994516981157657800783997883164488072095869224188471867700490262724270071855460638448013431351074537996813652134944717699997214686741703152058321805855831814142993729609166739108851686826936241210619780237955284116242679107937218690906464673422124427337354411311222290093497066813479555962543080074308907198834544897727588748835178891385456837600533282172880324936408738568885347770803621502037445973197481791848500550742070644992125208193328168385635006302305471765313740669068369091840019454863403174032736207934006544906956698398972416569575261339053655122082226719391588524794600725003074077019032893606362016750872062742517294698495491202967403007138548419223320617855928857197445695191944086865860359640539279787440753374661173036881719564237628383363490910520829578357892132433374060783733991423971019888000412970893569633327711309323417128464627914212880294065330751447349801066432405665681974770676128251465333427898601618884326957170407017646807122218034850293463852812923702315327669476085769500684860785468959176337942572445106412640261898641824978343574491766993472457757995469141372466934726695279731887375285905944971780309744665557210082323200364656042245844590440354367005990258953546226000094261739973968545853631760725585113701224024791630882471662159436030625739124200949820447664395363517876490588698952509872322750737561141950560080987666865519053154618057017530600741744711917614317233709336855859345447990928910378960397002730106122446468773101566908181915674773193578397245203027202390101534512303910091287119681456892223163757139383198123322955330609518673656770763270383617525983174869994414375580944998220821003012046412918641583435473232088554008878044603096988989178422529303299781732119467178839683552843144644288587382909777081602519707262340869482597447195215731999198805914281150618598815492004310352602569918577191083946416801527682999189660492254243707201651898008679435622716097531788054550722600383510720757525970509523076145122628619348480620804709182715119371099849082682742567958479586764886389889609967435707152845188180402537272619825823543495163827964991730025543835458389975571295861407470256597988723239948148773065741802662888868304524296715095879442394657861410919986838512949683722879327642025596040340766891460322685574759097568962739533924618321796332131283519031780312075237111788812553167828343459546380008771764457684721336910828850174510307568926999986691590925775693475121059317264776913297412796033510071315293667504288503933598919091905791898189735954655055088926523776766836215918453909328998576397974904008867083216282803465940058030967309696923296521807863994225349698401733276671568872325089906093895720703652800501789567102660836137620244335854387353202279605303370252321511623365083664506268153919082305537483271561772371409888603496373637106996816955386723833027117312994720874296221913282205463528582883300808668685635695953524519568648482351697927622186699784949825146508704555700770625133946489366830098432653891329218508302447674771542907206363488687005063656246152881989481037060671428971962699020823151382481407662481385633879357486393439991701541120200429138122101385518393654269758487391286901616464840112547597393111955364153836627382836069450553129939695040854453870223566259240182514167432862342262422141097692155441607264239853670845774540159139351736280350687302480226026354356984117346271988692602629287774596802737160282304205349672648044410219512627874692269920801375997328246883442686491283131044215281094750456109507191230027213601461677442738309446021497662497697759397671387056953074112919237817533006655600782638187675062736207442892314774327327345154072674322929855993418327765870465349638543420557889187862270496854158988810400435435573063659851717718197361416611423773721150657762358808230305246202531406796510445830035505789762754205155811534310881077795396852408569963021130926867742467882006837156376274981212876039716227323318092199886832690341533657713756383738232151713406979720963332044770012018881046341680966286522147997799471819460365394357334977306641191096664999542100079750385779543770331744669896600255782860634463407817192424818468855788719804252318613684592418844135497693957867139022208229362855420094605483822467845631501675979711990363247432411765905790597859546041387401865178747716991682989435242620175468690994899111040388814748020600618425620839039606080116588132406806472622710071110456218992420548468763206874600404377462759428688274385415532326109210427887327938788321016391961968072232368440944632245779064263918913981100566461284622361673746252760874274531329553851398416457393115566395575120397467454431882653583636668865067634605794231744715849158027616416845733057338259417004017803686748535493089652524286623058723856690703125500245090621500971530459371893850424915558742944136657618091488105999717111274926607045778186345947081330627912852304731301120436510353798514594933931866807560403486074844916382806441080989274155677264188021899217593480741352887377295958098686937263230388620820120739398940031370646560195542657920330584823683561739270493842330837178380304602277140765485087767678306889793662706282462457352893249450543283563823275776464519749423333674039665519601228901364163048749008253296184711304101134834477282837058273797459889662574299267845470576140760767186155674164586529054973383343091227570274603899782176300713903873166761744020344606101808435390646111919898429608885357994184299266478437103972366492792312514636593596385327464697631471018464019463604052145031569081340622958727772321035406552881899350664359377078810641914757533824541815649261390360370080824176113344074058953465440504982701341728403547222428632581375294637067769632581231253491248395390741944658115628901199804118290584110517463153798472043193784562089326142015027186715859324802190057919740889380349707631505357468805716346042897835391075073095460444679422130041355433964389196278386093790169081266660932487199884943956192208180372107298630372723672296601842770018117507152671729053634702494950981086865886583467830606372571162580831269567070301100846586636701014793763982828454605509495899496607263828060098744974040943373315997024338747145918641830220220103038009201397859500784204487500260299420905696643777783298120858087236301769342115785798351335219563538460540923220951277516106762496549744063203399545290114151140168863662754198694783391662434984421497346121920868061960425640078248112760405970611877128251055760576269427537789295299117956071390657999936747422429327087157576445218093356734531065147980165238687368736756510063266865149454686489906665416799746816722598105335062814299665978981679252971546983879914213787008509299262843188387303313862081075023987592235830991687997206916167067569687495693722189977256824462897578967845351620988889998750044945296113106309846131849960118459083768973421698081215453982898567604642375492293896199444535399076710385084682118054001622032343807017084356649589854661941318977805128258930779983091072466206938261362945139329838095307962684219239920928662309690909726116996977590759162704843297540677240374690617649361154134097487928993431390014153479497388366498164525438529909513682158492747197917577038529883468954900722224816216288793241196283912723230949239910254881452602693470786358866091953426459090666922004307909088531907122591941870922340450672891087677214339664957921481023926602943047411522752367364308088688117232653900180579809926805689063265128488905760956347119331655586301033062143607614644652521812130819583818204889674072547964730643986768248285972273659520808429215922019121231327176681042506702326314577379927748199939387323777215226079952459222941596105113428225845519472687501213767326174513815859042657999458268602984557615307632077543193492427859207475065371745769685531889431681727930359220432050284470977768314071944640657599492672996551107928444076773036260423459577612148450505960500928345671527003563837758904859375930473387076437410620794725164863460084185333225655692509724543857472426903629104457224090937691321175802545915303030293073032187426198915843568047305891335551353340180241594251537530478375290623881298950045065358932471518303880472434932995631437416546935122280543258052621943324961987345168132331408900318075814823328296623772472417740666909005285581213518074559026253949359354858216558478767651583930882131898295995383658420979209752588056812267361510859822331857393704824936691424590869618930813648248906339793264949333834248108940762288832197845524330305548745883651888440819916893913693553456307664423330455659775409391367603503811332455942870799427210170410511393938606558679881340822950073659090467041222719233111318369115356402840721967924915001650012482756838448956304798190063754802916656156127810676041469138687499194631634460592580986476388244691896262158131652386394954805492423491224047533653927896353070209861952095567245539237256041367138772028882880259574733848442520473144943854178716900007503264458117227656706766459642091282018348501497491726451708538130147127326725573164038470742250585327390433596208351870109361109339289443387940013451376834201081897182600074813694273868679322473313542412614263210197495500598388232708244494932612389483886068368840272997040413569874142456010703988273286544686605178816160392060684792200338101572601144048777182421660365594093477124490828300897312293754326567773406499678625975168537377704750721270639056726379115131287531867215595235541450599905011576674349569113716710203532625375150285688095324474312935637181342461727443771712805348401785000644578631464122351195823537724498803738762638352797358598885068012317840349101855569497733171118044665593363890452194940604159853612161383820930422113043059666720154387744625530446153408394261113679983257734137868829426663346949870204790573569081665903500110881860191100191712590939096560045495995514598975404803090243797212714914390790646712519275117643387770594335382965170236269101420340378805820119179681329678124906816412038781304491429676870380241516220734065270795901049474150410364677809574820710801345897786032474680880691066785841689564252885332805017829570975887912350587702268769716197567010288871187401350260549205869434838129794460981523487916635145775929058788998799984023311029138631199965342129970271432783531471498165698173940595788432104392075458119529557827190168010097474656298870257185983851239151158915149217568662755967290686735778173991742637252960110790726292448809914900959272386353866466826177904380233998505990710163682831943568859795004905951269408303378917898455572260895034493059689947518162510057150735583908778410030562614748661618421651256582689717677338407063310123834735125753123081351382111021203888277607396933366731088050749711108324499949882299314588444580709500150866843411107436390072604843264127232422423158318767164377614921782000997916216947407154118637719064421987847253783439808943410992709396666670641493567167400045474595569342300946334759063997139437030057752481454344768272806636983030410495133336106395822951198949173467585940037391955100041624131839665907177746673898860562067223530298719812761452234061589115896237562387781486365785579187102471540301101692198082658435236686669040892230374049374299526089340252474295933614125541226788408227224013986484390332282894131981043773695550554592146591401006169282751748691906062894743649287013928392815838187029293442365472071244879619913905514108133194536379753209688049258261479569422527890542575720885857363230330439567802749665170411716312102126221877167882577412042912247112781350810569542218483144847123483821034846263985723696811243373784223321098349688213647648014832892437459084457755536556042126899701069449784281092883470297215846787652025059175246276062959798093409881231412656642307859688180484075787429962065273852766424283316671860792936468402188272028015613240412216385618984189128825023961346799224731795329013845138846165421642052341122619074193406111489915891500417991936868614888806793080561973458443933315320216235401337415809762027344582576435538786566155556740410372789153454817449952729762032729115029894536003149249371067309983972223551668282813387352897731729565875942925935572968555111735020637264564635945413926160089642132877237238082181290673878902530861753368771472663045450998349463626829725570671127725401441889233764243579393444624590855101800760859584386196563769772916836749287649281499941586267972782290050562124642157087190745702596906419606120497274737729712897048643043993184279455346420246141829571441505567495685962004201295143776265731726806906197933455708298167461800423015022107413810791228330927666565959094668093296101733417313954471791149846486966965628944763581568207008478708455354150028860702534972768243371209320873712441193078153602318333260531318626730302542573419157101262883621208117949685611512424803317476162267736525352688267542479961674199265617021434649531620554612574096408316213475837695236847814744918677569845860197668624589496433655873682269706289105339554196668875568781597617213651734086001938125223508181980319629396586522231701615470589137435743147071158480865505080383371893400367256977942009006808507510507927386820156607651269304637850651889325336030866678814032810734422793527240675123006147523115682765012176206747671593911376508494658710015245275408362432772438290113755098545040371047760399955089705580269638877264970468200736975065196623693681605056413966236311542337033149474133981464654822430629929293707572421760917529957684950465005241160973575257601458509186441787764251988812805167702461819797998174898811820643738067218933854553402349932120991978952800747583111847939167374034659444853714713406815639052150486797801805845433863971674691956378117700348257146994210933787133044708206975553193621573378210992510937124839226967558947364310135253515255871862185081367630991990814166765404928143920894927424386417254924148087217250847603342985594988362292523603862485310098156125314145010971508635104930377864969826665136509735054619980456720261675968643517680965222530599396184255704002715177464424457046409644838826863830041164786617540439401000909675342452021885556610764485520540324365840843793605244976090536773261810162832352306603956219916310525573102982338984146521994455905880399443646668148093781902737707493047560596497954460590211507703474557744949853555291141209018409738850994394225545260499886305318143699453891514468585303114777530539889979579818963458060150831686813791727326907240697557366209966355729678358089180297330138267289275128176449339893615160952442936580326822600424353949723211108351680975297435342479486350352470636091723281772995142030205378094815553865671196282721749300697738083715577442100096813170370384449053572711480543714709383712999931932928666201058290856730091837705107847425386024313164760343539168370708174289727955799016940160769508855092480900991248144100626899407572304241100161574965935771045493232367730079425048051796595158199733577396849471409231969780031654983521513141023167451668349559741498714766043009516842648779344744657783810005731434043957500203815825699343793093253715112939900057984886401617874912710109895149026002686050237185527108725177057574066914735045059951204166515906027474962529330401893036867702691395108074817181655443480848920135332718354140914845651673471462533931514664813464517800668425300933698104494131523561785100057322376018075085866626438831397504161654063935973094369257698159659298077904345516612431136566453723026235517543543400410673094125387686384793661113507361001808242675969377334693649048172242901620818836647219438899520008626235821568981307276955911286625375380636275162183766181916783070124469741872777041115283893072262985551488395071639101350410195502906989830973033046160326855414360663287771002744913944391751962180954169715760456195710374390179497775073289170621964848843491823340284393781193373580998456202274203107154669063038884621933627761000480429927146187066418808962962479261037142289807104632035352256091887047692903276919712874786150512582462541746442734162436741398749102608503732204251214887739427060329997848332390380510407473060507594153851900314370067779683189007097597087700261330783159835240503578871856092130548820550231034222408336583970735678992405526021033472611467780093889303330022813783184613921379181469998162374322893592059019281361020501963209815078297372514654473873049945702549721304334804408177518496306227196102482206813034176596932470218763099010797468174287924118463291469460534367899971812312376242365154600016493592837775829565548490473847785331211391772020180912903992833249755729697149013086905619966892775734285446195935152454954751574146528992248336942863416753572343518604570756941045345421393700947935155564013752377141395320796509943652420948912403093555499573570138463218475030161895588517563198421454954523702963094892252609983875661835819453361811320590346379280323072228236823718428814752916107040255386444814390176967469180484851886859310209185404088722048286275538366318226760286584370072831933357577886733121785875975327421940436086057629305495588673427391857487289329316989779821424087396734210883439879755640720828117331953895101217678582275668942960149710323126932462497169942430795481951791138993974583285059175532992947860394763353847159199794749857329341507491271267197277159322196790805666795277704542421865037633345215370744612205665570579897341157822881625434264698393371225729477596714623945157428782139649936309853508984790547275942738591550675594765169200236220314245572535076756980631736990470380002865330360625819760667728595206880139897875571792791092390228932192059058130780265197454147396419223304758615779475966756076788893090388541208939250188638195322118256976623772818865922203605753828278481637036352715918745025309703966204142606378931403240105283861954247092820701973709870124533960155839536731031980504131590465524820541043945392479893316396000995583838602027273715308597465853360422007593274790851736474032235986082026216368642188690278132640260589143149402971781424875544001947801306730542694107794929528264070348791041174236468693371882761164035171834951617130662196386038988737938724210847876327111629228209722367864268011571762885579525982172998198164630021719504202143890742888308672859216719039727967289433377565039448070602198380165566468619370097696719230358917058410237427193559140723911709843916131401568935406628583230367221759843253930412077979356336173530810136520971492022668596935973941711534024686682237520706992528141875576205275626616910193548922219299562433886789952647145327556478118816848927365213064052624378274516765801839066899530334423045856406256470344940303959754405813750348065438504520065759429731889755027767010705496188167814296706604746080931967094172671823081536610410158115851619319520551737086018414420186179274430498111211681653415150525192215250184869485708000034874942840112238336176983646322784977129802834214496785593881833651767392650874630854253970711198594189499361744121477259331425531428358187539693599882274336233193621577197473368652988486228772037148099606655833660490517329236280672643887585644699427167087653753619018620792144209470681336953313720433972593661852889168243092750602157192576402996743766937305735208941436687477834936052340140141474292830283968093987445751783393559655052158265961854377582560983819320199039702880456449127958307660910778161652706872251452606283105729892939975546549637660797875957997774252943182422326401544373173168495753866110789458801640936603939978069653967633833828218948866475523887130312230462510003682025504387956514935173774861019891800807408194322549138566406757168301790105429636966898568987662611195058711622791020337052175605730914770515415706028942004235241221134802143679461813100444893812851878631944638251677990398291990765408876545354014101844879762586367767654421567656200265884662668401998383282499555408130250663114570191399909122509198101040063644549908514935560803343311871758447887839799410381034469631121524173158745396040748682430947916237563142902825577636623417381986262642155424316571221919313213852914408848033849556912007682555131836182464056278854882575934167823215228305567706031388396395692198445828581685522331452793393515193185640851487599827244750624735695994809763024841419640555240720770470214341910187102891388237533747747908630801400280938809406405160392911446901830220150361818972119241706206454271827221653358507371431408758209444015234693198145182693173764588149396036795463380886959784845592789663580449792609197755836806560286564359067313255435885005215000638535436258650250051895390405697671306177814186930242564202946579974177452114846210230833344840942492219105712688469131334850224426676266425488287466446786995861224708796319280463917236301618117249512133946774281004371289104337959522197839991322578197510221383507811313556678308359531853987767656335065748322889542264141914462103797836434859031097672040902277713750437246293650268304290928409579457645158086831590912513321252131177407388338158933760203823331767173288049601482601048941140011047230144108153921549131949041407308029714770695684400680873527081438674575618771468598292806752935990825662669830868539987206311000027327528369311028699195837632741264747754668955861734107959635798032629641073962110628895451054129483101864504798817974067639593047385558091307956000819334296227330609434585770441911871993870395314748720144359608983691040275701137232805710495292635748177393676055222493073373420373800449064277441225620604493612208175375454258302165782993508191562569041269438253649305896249820513294200114217846421404365777244319198551314448888665668710919089656442409639685976032273925866458483710352783305206929680444224249558163289465511466212817033358792140029625374865461270439114298089773809238308805127341006057728538993620217695750020042897034351873753594058042566057280660619228412140050384355438920101297348296557893086396383236381789612663686969882227885190618596762262385489870825496546992826767012589844179608393490051263847575429654947852456401269737457430507125487813231735334463592782821710494630724000697673369817523088446940659080533474926465796413249275555064232036610378509867570403962365146100531785290743281716943928293304157016810844423454432726238667248109461115020282089198298065062544610034191278798879505065825792570762020841893379860469689373084253252966406505240484018990692591265685642963267704122937900554100207006143125324493869500515609048512083381494696065705369066852957792956180704488818847975885766108589304426975177449459536907032008201458127629174511074002227052974585491919232023824356608318245140407634031721039958533030785164368176231800634534210512631729557714990013400392193140908563948240454722720022861370598018753253386413300119872817252729949862393300724193846970284291529916881077311718718480910106279888085602696017730212866150258166280154635543577548606264017972238926901210091478635384868805259886568529692018563169280029591622971522710026959026961002235551456454001867108630976643787533902079953700772716160610054541611329915627628735849149716225523496476972282389015024817420802650222800732834880514528462034951509755199056113754087063321154868271346354721246430580085550200644216579261212622946004924413051324586524544077347418853416607025510199557929933608382055282952207523245709159713394555191137758043578717779916184141519342902009831881778495496437563181299920658052821412914300715750253201530066005530812853132528824935989804862247154278818467060996249993042305745891045525614389018042775803517680919887694266683483743560318383310957224237287586574705305370196340014955429720244051843891543253028185521674848315935300219138278866232813595845419745546183421684350978126364903155877983583153671715226024866847503295525109583843563532098812763447093916445055996722541465256558166730160399895381390204928893135736091109631701014261194540487533327031290348148137404918360389121714742826318445012882773958921983654016026809058630632141843020388193482566570159449385736853458594553333772378597066605052065456114713103599617302898832977711551738610704100311617749253330655191215777217036013319748484514779772501309114524533574347651103063443980041115571620261657828290307512927840357862463447318046599318161884457450875385677982182836328934436536454051890746654436785553719498732592380735450674177517179986411702110592475601103105516411244465797178750378579640238527172790613393263351309795254486952711309531477910630872067677575707954443077005927130656503435410432958214646953710673595461782828534852250234116109820390996088493271718973109493130574185972289426772122757739922735088233315506104043008361215971328947612343034080710151793600027068555832471479601013586561038387015088713834936139619327947700222721212968911446344245139848267000492228832503376410676393146809986777890233570340567824584752510481012772247040116451191221401188147567577782743433437821472188966242676538846106224722567263986015538457029349203067868037126400757238026323273415417429481285393621407187868184876370286375998837700864412611002318154763943592704249793277184367329385491821411538159030618003746023962566969110694379954636713301095820275678438729697241386496557918198126854227182950651115473776107025600666733145424680264722300459232755100573559693826147468400026537004380401360272184576600211014885419037672217954519392055108880315837821093754267507096313463676255635364861843131432305002587519908297185111090247304992801761400548613095675749889165265606377194899383362709072158479819982453803909911620502720095170739002251295257310818355808833468153823838115362273993467170798262589465320330141202019016500255909979065824398699272431090876364601892024415474923081210759728470481995856186731721709360754503905995441219832085837376733710128673682942217322315655139437625603067859144252162772026237072230084782625913349803347000767014983798622391294007665046500574460934389588005699517362552888856282263353796432783859765710469154244599308699970109288634767627023388883972202227941364189252886846915328827109735206079325477765296987152935257953264609297659764092955034582387827445426474408138419183241455610677561732002854337927102388356969387614220670344274541016741764124430777738691724658634891559947504023358372783079644167708208270766964024891727719531757100368293882251581479644657736132700438159230262108467313406092085759660477535472665895874354430303266029847783696791255010328147518027262051690155578120450045590007265021342823751886484615905007549569108652610548760894528657064008992220607020102259679264803653662415786011916363716030544687411943368116427279464841210661644798727849318011092152838487913905441390648574530286085982618532737474535472277811957020590053889416560449001036563759946221156673322937053864947324849720149513116743540071839329993833612016437420928280090504766374618435479486037291083120243800109176426583993986329302461667386100627089545988188316858942102046836530257049817223936197197208249293474819961291539233806256608620931533891549982821586950140563274227953320905324012228949192508896069829730750940766803216042351515308541500602576160047614315249615590962124959059155530432296902265523464905231804731055156004528056976800113654510329792314435149587701252838898757330327954279615604501114331356616674951444691675531663218045058713161211632487948331997740082559063321404515914447679704068729256630278406274727256300958928917025513413110475385163858349782855038352845520821682439992792529183824483946182322201206078359026650684767246355515343431372967954212248705457952323665283881533468246547785797652698217726340178855875057861369489105912190193058861860889566732463596074304660915998725077358813006710841909130854718455747145257297548838408726064149322360951253802727481143312469891757408464984127736137974967921788418632385820744696412667257812148998876766577255020040736935225635029060003617040009860800725277387905799220618517082425412162160970738271880622715542148649038725803985751389692283120868071302374802891518810517374515332013994289362031753094416327331996388681076768973545325606194586169603616475178732394322980077879742510568742458522913299991062729870298029592542607802131891126894509960282932965380639857573680372455098792490448975081621874627795409276680497581489493603466248715684684653146414193085968517560697062190275660117429485147725652669412436517480879666658579483382630103520102053794227129195108778901290819827328547778979642238774532669470589755008310663471300723435573771980129349163196884862676689186818096529915558550972262093982538608244651537524480144685186659815750494783929895681832266272236758451180313210714944174363224088444817122330027692223777010396648843631580785720579283638241445225936183830158613391327768761973792153731617260719146771901825890886738343396268702700179204482749665630009118699732153828396332020720637414613336751098265785931708103718367969510100121295082363173759800630169048086422849401971283981534370045203637562432757738535703579411630263330328906231339512169189332002994486013783765699988692562498607803784909355547909512089141047499640682580175392923265091959523727859683973034463683836619044379294732405856135391322087218465934334681691262280275453635548126810088258880036775032344401955814197261159545201344437465470619762780973329552277766749736007243872537560766374877359347696199952557422610374610049590814459360656958714890779624011832102760401224219906917826311327408835024294154452791645976937062709331515072124097095292768685683543913326201139933751599816060729447743387173995892804695608117398358779815779118396359404957277701641835222853744057593742221406983428060342877048130414128689648047330060191303829436381538216673984358325495580051832293377430785659594734617396614082189955926764979644842085410108535101337662887427939623145285094990642398464918512848280990606681817172105630988577540580650141862994061636205729431682038722275933031033334430080418274374373269880605981624071046167081771680430344756807895062021288773700326462626844275259106887886320468788998125330073689359721478094811229858653836556999177228668322403756399822090997704734180829586253279190465347729085468257188973369038512382548208593637530793208386627913402179360647094972422586509454872372124602806603853069666468529030805906892608700644426595896137205878281583531490540492271186637338825131899631102015972959934314996201939775147891101907553467386748541839301623352298455775296825420755521231861154864697924585793891746610240953121724237791394749388591420573687220524216382905162147723231986825600365206738889743334195323517594744409562892239044832235397512981194220843247592670600599026296344214549952983430459197204119155052310669429559078209864562086989433568607224698161275061073971977400856977106218022818195872873536618850187669168863894925347283448046992273450618307945997615938580972787438120155856837304161030931577897348381401629069382905472418593617877576170824911357242245005556109437367869002660488126598477867695296041813798386658148908029231278976628009177698216510064754963059084044457522207106192563069683976988206355716409411329650403762871213996985180823131485974659931433150172849206348223584983797461698524507039796785992579967919927369662422125188011740112850928195499974954598527827782005231928551681615103321471895232847774494356744032920739219031312163150106261604679648344425137677324024187953149398325259873293808839499352936630095617210045640345652791314981814818762681199548844129264285129095837315503887364075596257838895861173249184533702358281834915094209709293710803479503423978986208857246401088189357038253546530837887015595973095401504804589807039383989757599278727475788576683684444473616493601559051553212238016296024781946180821686002088850488254424474701330850997735463642189829367048050004720362580706009605695229072372294256359736196251332986826929568661305834394093748673685169261542711050648861334945008627692971346634342820674743613970242231023770458273635233181811113724983971775930136176912703859782030487790324545615064581543980015383529265987346259859531745953053147322563843005832131148134765104077857089040539826377223680348890839658289830218945869150372429726586606222634831550125136382696188190687482287930337473231837002428273112000186193126008449001374605972192855524346987610582755691941794263640927718292056327408422475733393797718173688480054316872603555662111735710752881387639830978862320697851897364536936580553234671828878585441087808263061950804683843783678163247364587961467937409054424254808014472620703459043565880961291276297634066765992579038325458808339377607051077174544559393996525742253002127310197764332950770058693964646617334055705132742902408627725706776993690356539206386918437175086556345459952188287948641245110939949666843473043529314347499395243701649383579661324797865908760130314175323223703111388695267983639710361737009667668367834017629522604210083012514210929633040446641124356917887459430537311351219282888236648036011225743700066257311396657243937120887887521033549022331718515148866066998419011090980359514781044331216038757608460146060894380643142545903470866808884895977819639141694662569133630747123908229757408335938843993144009167050442425357341173250234446833395434706582371230085359640507062329634513630420172452572403563688422331315550746882863949624107550758131139675186738374964618881144153005621306244170652878178935560937908519613069076453099592239918971957916925173590317420060278124067454317610509962317147236211135775740600649410652061769307800101909446171208962732260782679246340796204334609859106944248614971694616662896752529939168195157445998682693063166821901411138151088885223570434148028359286759146079443925631261549485189352098860364381257897004528121435440469188931885785433799441800857805747437432078652714255530654949339701739661142481385746959789796664314643814829994376874420598975906786683610954828230064384961097869832743940239714058370190818283825864554129421591205932636234104389648520639667520164191639075738579944630899256147560232534997175440079451924212469265361668164505831457883729673843282489154361345439476025435475355693219743459358249641356832619552493404808646801016089163955070766101677863217459448286107557635219876675443334647749500001624243090708531438229604529639012472729474087225435548795075115054581794845650742239233351981060685286629750212722835513431399311438275733663755871604757414240285201917457593033517214795738998595270694279873109740507337101247278255051036076403413022913486191242177460673465814971361203334910292655305733762683245383932340811684233865968432826814793231203120101399977197939658971808394668838114827197860800980575329285714622781143020211948647853915427416011054594424261959884001891762007966794058485623776401066349329791590627829053799292343468862385928969384483690659015603718847208512150628978121648163799268634722878419244861549863779784401409507114641507739160496328019264823039852916154899631533775312214789105730006624379501922051847417916074387962756671666571140515177207761915956197845837856761653338093528807248710383956923290873782702537077173953405740332271859472134868620007762137940686464018472785690806874657658852087626973905200252134073555902329701540433544125469902760468718863166738496275964848300118258062222621824474677340546892508603724907606539281530616656643824831446481011131856173434498001812568455098475462415277776622678118857145324719163405402918550581555461872589211734687104174095664857460317345881519729123423344807534563442293578692346396270611958973450618920489063378600318417048514803671156737203657819115595654903525271783272524380372921287016737940894582310117013500806612700765156783127280392330398575727090203166583619117958805989223501099566386697248192751492715901652318093469384902369817228590674514513475873410666339428604329590313552363477739342837860779709414699191596541830131076508475789625140418173987945732990140072455091146768563897715033575966934218158328423955635840341555727598023544979182760292557218289032971895177107391156606699803546469612934184438526247554172634130223828984053181640684093254741866939989891244912996556437470990242450156756144046331598130261616742673581366593190195661737210247671383342232904707393401657124385346299727746371247218796685223931143132363298085509650450197657833909152344394824024211437605138449841630088761774366870451092336628809937268641203895360778925696873391113719815609465145318545704089624570666467348809594267344594636678467582133122000019468321996889778198222295278908038495164390261100835585668601253489710142520409021641543930298232638734422464831644575696777542944489923839184600140658416632270645893860136072472783479105328287203392642657344693207758143172048547646953870028580049968240785161376310479408068410144143120391310135830246533161693333636040967891172807139571448538503256279001224047403549780039874220425105905208503262821732426960289796355905759113417330308172405615958316985110060419892945584838296224522737936584846244866791482498316029856549137612452602157851360434476280690758210580300912783864703966219306388270244101955917033799271808577502788499684662949400875215774158323599751044408589374721849854242956228693677346549489867678787330812084159775942625867308250372203692501089008660540851138354636929222878672816375559206529582361099547549830073006770833292005003920330123025297219107993696928618805916281722950293221111519984332762450371546256095484488967024023260826205996710012344750444215833662916774405452519332759791655552648269785913978512526992962958175790392965265907091047773968949381242991172543177171850773653054081635318485069380055402929472712143034027372692936277481929032069131429907320132896983793585397572780144628495119127426851213521213240168382731202187603589387557881294980684100081994356971089620125698225869024694305321094592978764049898178423587892783839325284253330749536747049062207951960341077636325845985357100580559898711618772452207469828111013081619933524297341418895880682993536237921537024646014344770034095979960179049647798110377395865288906567050140653371801013201020401609352960706341164956634803970479065946782780195540272577892630874335710256838610032357386799766017702636779606746991900065850302426057657335097998346987945000242263396364120718340798209945385366853791569833653876499478369814854518526736424481535529030984043766194883501261124803330466241870549571472257855605632149777312071092786809534404751333323839436142978858094413903211576986744269033724289797459193100561079758712523056236911001444226550485365580474604354013218777372941806496404549377883407503818991073140315653935623126710474029534236712706451591514230713594743311739574446067956455431305196992708731049053486311894211318841724251097332331134406722465705404972198618873398653747769720012885959254615149690980000715415930419719746112895697248837851240302203632940718272657995915137402967312386182422251872699228291323462511495839643358515858438441288193729505109142238268080203321533326166863598756276039895378256698887710418194124061392518359382340135154295672630897583848709556168541530846248285969404977543657744447822462233044938803675149106950068329464074443616752184693382856187879927850247990280735720081097707083838637606447394265779781906942819081241080513314270350227975950331959029045779660330909457212524802341766333289859483591410102983184664283302129726449144571445484927714926244395084699857711824117336407086670713477973153862201093355552124765938313525783567115925489935544296642666099646314340014337904420948380114098417772665105132148798708393738254192609455172344258829453824056097226013292563361104497313892375874532943816854898167164610604466651675084467035938837192907490050601579723656268403120759389879517548800623828473545950538476734566242807199883524889275928275834011615471165411837892053527393667241843755196243864931504847877611045700804129823723317241585926430014429785200401226308691232395707549623274138184549553231847261655859667352591697986621354283461828449140689388475991255332977563147577715430754576508875242062489799654855311894750718206923124552064729786580561415351211185149469175678152733600880831651501609267528432856767333785862877836003289453418739922618778726648134438126308694979382321592930564473927442046810929172263177720578227669531215142285145801592325941979086516138646584926796366729610825289962091006424492232672287554031981127095454387639836399505520999389732550588888413730989267860681966703758683338380367631925401994576178499651458389134913249653244110374278464716880124025071439758309681078277055149469121466139347988435605323041102514758306789768155707622021225700352743931588051042385406913050065037521484707036926505260130418392136443063848039182727619253669009727347473596400822900342184555892767074616374052265044559520810773716073581687909128607159773688124577954261692369850209047896491968627029705070987714824139054134012411604415393028633151269209317928574625529204411236107875942794928866364603003694587608189340942260751267323047049682838591075957084998225633366449701734688021633411101909040440974919039132234897046757638510392210746139087965282731590343228042216989605121420063835661942053402076181920334761005353012045962219815321609794798957444353388010126800050279884573184317013338797838362946021472524436585213853463409435492516562157316587862370851457558391962516938757793590590922164018824047755137638707870172322776297434709101058697001620423966698395223911434965086689862932769760378107229015459779793894701444588794710886969618842357954740779679170768358626332240132102681769480315691449005434299034695087455792884682904414932390917069560356906748965069035921774947187691861121332460808817738194071881552549333274140156398543664962142391429227736915575200014565998537127919111071705778097709594417272058063157158414826887424331696306814256734437831066848715550222018981590316683838893084278364018219698353829789259608588332271785966362915416253103250831236349917725954476690869994017754487706130478973361268754310235326565235191502423252947320663924646742986661420148152680360171318360618146157837106854526273204744323747694337326828188532432951543998842890158435525785277791064883181748649604402990336317596567619582124323230683230185698582317866813943804968055057537785116034885304818099026587747024114024093468995205839078743681327102143003565392227789944648473962907281855749922739050232511422754656087906037165274700791989592361433625930452841329173176751996733314661924914590643384379556253290651434537077876649836212436161045332273603426245644513373024537628030885546057449494006250054315320583252493635469773981841689105931054019685179595589855656197943120667383309522178109629036760605858095684317363320326986464924636048203249132339156905607843909501768171788898518217802918150566198886402281281884182798124332455528212960584483517198419703746960855552996097254907385226115566245774345937021635537001214984914963410732365281852275296463435952673182455508737392135701206021986341112066347218110205390771098682500020261519295390032286314489202288809569029378254094060776971348396497442266197961289645310648450998793501502131586886093522763483485200289870212631097534139105820881237409665790255439302796234092423734257656985286090908343447476912692905083869938099945987450273877986440694305395163114526298121988013163924345533943026306417230593344652542114589575590788681707302361747475222527064656301943433575748255805518396755630721039780198157875279485216785666515311079628329912057797849942566871915358027855024804276875399019892648699717953648101389303379454788048453004421987322293865342321806094493712902231909424100374724930471318649130365800407334522006127711181397503643415590452609026807603376426420768050928670293215477766235967541272277592189222760094375071415826994067230024998309051392262698638939327380710343053761083131981888147372151146352246557271841532219376948775858558921486906164531828777304266076848023962076708600046998045056322591393108719978425197691730901253220309314459473789938628832867312026538911133197366620655731653275369689950886095715199612742301843766404821178924211789929906733129444510670711383252814565317877566710021974777491706542169426483356504507778411781214616435720514607972148423383979690667233512003178598301502553495540193155981330606229020969935030028587169409308201373297659623360368496779352538598425439843881207718009323187324987975690581050095272220721156013973188210069506026282532206177351410265509827709322302722684063353049560004483209706748521178609522002936388832594311794621266244379782199646842276201081180738761719601379209880918062825339498362731885148663969144458606138587564408459889773863022320059066238969465148886686017743388128221232871026703024702242512544795985773534183331085307908559115669209589815271411836542603942731187170266307588666185465560918393724462507774707194578490414222486717181267099180187714964605726522541139475976924855612154671234403481527781095347598825358256607360833336169511052506426102585897255118206128068991730309664914797073849789481591300738177694589638908947393688769257371856566117192506558818147997051629087796401672612289465925705475719506012799416133819438729003490258510208481910602767891869889985856087002523364249994146964824979956889488821984124712069457753942532000961196455786654092904893122977642489162842114708331630810532880546834009113514706868423707879268209757988080582224610678389922496969291189602066348977979809975268958544572148009726054485629514816872202121294414660472922208422098583569696288543232025057025554676969712446532263785178780990122364502398759060888559142244045814245279325539194565406323977574573055981350866350329079778063979980576371753310229869372844475008357953889559389824888293889288250540301038266224496601415076112954042963475456536491364871063880664856409743018304772522373798491883743181421644504978254502659717789724440299426969749175525275287547520949421978968398908514956725809170329669914684419406517686049076641400895185285959843165220276717396230803371486065678538046727800217998111026027474881304866817876782309913645272165440223167722404294085217085613344853376024250505721478956700192591643791109814555306177341707509369651762584082296236703401999186895535107737601109265224288770412028657548712275357807874404527581303137545093335279624959448798452311853731599625303363150177529854613373713972235595965540164979745604067954673979013748397042337163109635740918985145922260993322955689943767871367721382966035613160692806881101602113739503129503941653942731587315612493788829559376430060297528240459300519180982461131817237601947232693053720894294357903512171269917091416162920607320411379541520835469981665982926081682699565449928693048218207094317914653432834139731028084435215096454296596663336751770032398012452178569274266622239183135752659900087551634963119059450438691364453157782922555353328269606824919375733928133337718522881091816587508667033125826362016955782927001292527711109762914294619871108507150921201969623642889895884338748804622711796197627886123823353157983817145052848813393336624619850047131267502734858265613961086084655659000863296788471673624561912007171101117946350717806746204799862285472253560455614901703909367994092408547061499060398454611969814160793897014558982018706299066587081772756666534341950959042217801820832749355406633591155625523016958435015620950718385253343824095193204922403086834790578786607999780086917522942603150751033911280357811528943889883716869060180574068463609763660140570379301032212864647496655658995944706725165850053032460347181096011718633563375220722344034115728767374268069810605034329920190679781124861387281456770879148545187570896404427333184545709337221215716029925753886825917855352124404722774792037314066465752513594930587274839423242351828961953521601821767045676059182677198794215585858004655503309943242869393658317216215984864985198611316493242895882326469737499419479737579864327839648785670812271740771984965025463883556167119913770651617561256625754466757707082524513905652360949861721881308136009409572037765728394936396659162862675443401067221211180805463316235033934880813138081297236843191651003904378137026374451078318293132467321022084321468838977229892798714961250548293799034255435127085749505858752131708487459453214301940290985841589911815146691709255089479617013192851362058076519798392721561539490556481282345197916090600312512994380887376175089137615972253886771526520786550192304337213147096578374939276144352034739113947065763900628453553648448279479697348837413073706601848665640430152053418720123737529589875883085936772248770558948540184017982977405584302801172690046535676133385793088234918733522280214415416215525363288283029307468167247090592049744402620298128556585466870016956239116648755395710082448324898155162150300405472777837872743681837935968931729106169396801202441316327531907617968848677745525214765932861807062962127850501533436484711255656906658458962483218155886161450841884832109356825445967381114224407808374463052585317891022311927090079211615234487163185535712698377846838049000268563180030098624708805362258445641049622692279288643445488508774427322089935783938009499696501858112403994368636535962191394706641072956846557297737657181259971706513282894591832803280607570565125828719507520157643994615447790296726785389221641563990286813797233083501457832718928778420462234064728479029848614753091091751674332280763093201374597823678797063926254572068745717712055093595452566830945996842449995649142002252990964781781376795823057991816422155770761681513778144317720112015773948178541032440187241240013842844570149488428455344715841221684433689960918364982108140877052658266259803484529297172267362653433368425257379484370063246641399581609478387007026180619466110498394854322343556908741020037062713291786829969982055242845869217330817623192703997054066057721325551178668388701836418454222218395992485344064569309702270080277093876140841543377038695069146292707793466853449242865007449177961348383087198986123207521081398225972729754983656842000112596610735927432441241251923404702476096004998482956274904877682138405021575414239050272658229084862328861677356688782601269366252000967741428275087003366707566685081313095814974802963611605642477603557084761413255418600014862074303708224774110927071256123199166349198970113330377832757248600685682219065476561830731668390260583602534740063486047259670627747085841936634700726561931565158442431199557840317823905109189731382072087141760584262842724678757274192969668615328098571429140126947410373712714163663743186142303494049490882233372273560469350218187824184576248859595024793731305039103731467535431588890205250139210463812466923395800099154369260199150441431398995428305551809317978831107071412777816293506471114467590321383917803730457689151032448161504712925316461037287700542619122205515351881372095055100592234732776107319471206208142417917697868409591142196759675979362879649471805011108088871498636012592971098831140337422649253693679558180509990000009081090475957880645488304870141228180813379670864373201130828046485844346677503043401223671647371552639938915876045772859292170590581529108813379602592381436445545771003054001493220477524365458787870527148350567648272443007694044214853566469980941148626268474868711639694061976940860993474157493104840109545618966128264503870141884717974444483084842125452185775576375166292516606682735846395911332295616797870733732082386344912751240438658295198460336964842134859010078216796643948895142391794638963270842963782699925852017616453256821708722150203909970493422391803435318003179448902240865572120726817931715716770685616555945409927968489816571903232478578839933358274867162451106287499802420507484631331976662174515907408269135753797661720141120155784391132647644296896650575286889680550186329858970868656537082263498231509675394504579022246872184052910462280364564124246837236646384635937183919829208555762370997317671979204138144459656885920715199070783817637178591426332578940173144460793924796859419654824295781466521752779061335930077143091959089574645278935530303699877740535930000526231197735545519329537181040289202715536698201378259851493673865658351071418624055767726527301958334446472659665548435175878127195152303942221275204709083384076934771188858455331965988384504304942002438865366437579453723036014607556705116824527774374276712144543709282469649571548368479639360288863416310719718251747664361412087650079779167191271767565881069357771259233892861789643887759860622592654649078329351914274721162423296261782153445558136409977868078766168836046804057751887868972683719939353291284278461556091871453145567729841041420692181959116438836909313884689952943946505905921088905352217365228389496550583375415356337658151897452091013184260285656300955500371159899423965769798420282438183787915957782064565886952148742587485840925254154348161667106336539709613922671115667268944109196085392121799152583673771339300136931453467741539466503758814226275816411980070982953002302933941289811254693620041822335252359586782899312755621520956862509757680180555311466543308587900437644817332107520151771142235685528755814274369756200225629788730632790801631938917103825739567448764975270668559365850149900599696154508079000984792320604837196516352513855193861860945495296691302134729132675464648175600623312544543610902876775358961515258282033440764739122148318659287139286182650247538548329391538142826549770478294434184080609851786756086942423367211017481825341456587442391740065406816745311572570905599564470662297316778681063898645864822956051749177490649804915426266094735291993259052777189877291215456089462728905057714068458840479982547819026123446785128220288719439335141008091656867765278381011049728811861380805422628834568299736524905354606905415132022222955794743826407593702836467174860353472684482457650553343749936494467279854484112623621770160433021045034328922073868046839128348486122670764199851333185392688571949503668378543004776770861198442412738202258032592441672730393463956121634581112456398935466126898551720365505807325177993195561448004297716803068858087689064263881303903261518269770650665053691123650721659387540062782236138059925777937787423033556453926561651951250571789241286828124712572210296940354741711343715798244151330271351840603360057508563294921727069703313560664460152935282784980912835364698512398986035016595707159081695316216977124346978834071457325898530041018549922045111010748949308315014868157862348505602512689983260897978335231436287044420527610195798251172252351942466180214750883018690826192050032977371490919343684957211295000038347884380179898131610077674218228577321695471532717665781310638214529844743057432166049263498113072273992228239660225978090510899364820199079648826084226178939067711596843925160821812690376608536262797308995082577339896686121413028601360937203972135553482602371510980382732727998427921588323361971887234582886778292473691456631168283816106871963175065584892113435663345819409938279035127598918570363106139907743064670978514566697124775716535718977761977585811417502074872736726049238107443884471656732051766110167769597340133798360654198456324544895606883271286027321086496704998779257488045640253881634972748850867429591754084738509050180283245076218875215665851978671498814320705952851668518888699999764367042408413762059805186496864956634461400855070318970481375086226965736451603273044421802358126817160866559812599655903537663431942657439140172599721485892237407261132947325680762229464020626608647332071201086093694076756040307849504882437270103442084439772096654031045991143116055201549600183146503541254357380988719952162319069826414673494149381193438845251183176260710471693422765562118696241939495019155339348775328134571006582220043105076034349536208454851785477153676672960785502953480011749824850555559408998000878114468421308841799790597122611256548377248336415095644752998342379176039524210136284994531791604471757465114308017013109658422001918988001165271163619942658422488243967235289204176308423773409671374570145858608380416991276922553458390406968618380228533803873715241127564174620425544397477595530583318996271078985730480611433953413998254524227777892661868528103545048338471550794327175904298068077586583953253793161356552170055759806706381410451199223763614516459832672815223729774705632659270125686441590257180434269193813232699802437516240770584134989632415512979702919402840075580660646932905196672541820439787229517957934547508544498302793446009400349626607968703109387541458702372505041518131348454981694084940466490797731294630503161860637780008141655686879390331007591214834381320145402521981222577185115744578919185223506090242399912811965401101608752491868471204487430257879377186601822198420226741088442734579739520412466406681166743316220018193453955637752500242662018151600311941948164188738389528510209119828186693781795970276156859879363106526117567403561912324621912409887324926930963589971705287644380464544986751103510516977002840209960130175426066625760049522120782045019918628464650033524272442310146554806159436665960687550669265418716251535120755616361022470635764040932864249468568920737604691779603571021832753540015506428373763443634674888870493473474282123992961672082694190726772321387404379398701879239603970922524232797983108208390851675367838108170939117236696032113085763360351573831160604925299064282257601129739838681959999464009915176407249956904014258157135241476072179113579068603441521660390591250217128274111288619972296320637343186822442499914043223916892936363221173904655580527526517770472746950508216109620507259726637207178261514729652485291086608207138193722789007175471623766466336812970330975182055632323571311373876210245383154716163448477063317004900564079175345101760507967811022129929877641325543345651964095664421944970325878903572292551192180980674432897259841035267099675378753006739115134661358650545262405311617229248397765939380409887178970913740699884769704039264942534985822697790009762663317139577106165417520793045646829392907358972380046982857871091315332927420004215517972361195365257777355520515588133156915913662840529501327939746227185291621916365733500660570996322677313382486463818241221566934067522182653241025950727048012987713994134716491252983517519778573478901031546761630826857500005835651731353656298656363551659642094590829758561456658034364280537200708117358536273220648888850484764157821043863133398666314931306074217627392385874915880640417083938506054534171925281302789533701697924274799324910999773816441294128811143034964957820395441406898441796373424745019720398679149333076380388026072285924941853443876945135185566212884131170731032312062500400649170348153314932313453703414208953510794296171240847389079693527928203409374407704951687701033809440542625529879851549347249514293293671792517298084442740774104949894407452082809028646711396182386405084832616476621211925137069241649456264833445330566243012801977101603869410834280604494244289232981657347435967937815348132876966905661324192056910321047268837880604286233380521580029883746685516562171307332970407403461506247696426702508546353117273741291799493199117682583102024388639682537282363719761162327291311129024903158068137229057089629168824046485000986999971387066311275960762999753883197266055411907944199252813039309297458392088988361782266326458694603331282858285606617158076455129785008167327227395794309269666778408875353227561838696798834557226641410616677547011228251104484739516120984086308871263862561929866704585006971454110322119146162260300904584856380151808775797367698595787595702313000145456912079409992887647495878461771964085692660878807582913593274198283022042278518676971681954399989176868413414640343439111412170827143525073501529770909900352253335292999436363573754932878601727087554255024923626954796764810926481555531669398117804385455827287340753189752282423320289852270432988013334970620589689982641637707003856929097924645891034570414518238195666497822701995407843671166271046603991259873360672515217708993459479628384031251185917593537238865760095696628917426393393923239912855504715533855523249837199985085958710972042576873483041444013652289930438875942120263115531607036581673077915693421587142036833308282585064689770244082682620301880263561577582581770503349071243681577231781631433754112218481392674204850514466273595518345882671156588453423449299860181991224416450788750344556745814508694321467853658749611231226821459173460008891359584553784464693421206382561241022897190221155563274003408637280276547635873375737017613186786745604139729550172137652641183145362950786300024024808695005325810497941491561256356556075125326972880663996877270523230176364643619810261193285045450738699507530936471705647996017097996588482047600223544795148068735449010345503445190115678647868353954645783429411103912379634244647436392937259571546400754793686049849577839024280651815046124427763037228782496690997708314005169696077450368222216950773439744563161183237069529392804346645145579480400598583929428701176853810821155894756322271239737506298647419347026176757838281880823443233509556320353327414920580200910997200584686464594482370397958652325726092105905817651297854693782193843326133169644590380186194740857002826399165211838392441657681417547185622061356430564933802672102044689389737630936060982674641091956831437855003494923482751288667334238881810090259689312836262314250026734170968432815376724429510663959506924936349158654627819653947487856242103126534315451487857510309761376401539032417200786552971364299169381100721662822417930817560552873687248228602553191017064934352798084267839708847190030680737792283004008467891849583478636469632783378103774653999956944913969310196198436117674986169020155306213270798328617871081724214758524965188824766164000452836218984938443182842603461807111420472715550476269063569272270179191855838031614481317490334165661496348830850013198493651056736784371126714776425110749263047313801591053368602475008128602969786694764684324521010923543655633041650870558346357266975183364794895677863953156954718908165635118296553092776457461636594923168199076848009030282947508090600936896255302829042808084070835673115653768404308685844448944724720502694369496384280922030513576202986315160288280675163223363545640452758035185061714478330833255036645115656184716422247547698170801591660541544069573653552905680708335078884801522057021838860135867201879831989796683947501817036611700859509655292595865241297680456814155623754904701558938428015595041382406153207690399196559858716321075667843921081997273195326491742223146243570376862881929959426476288111252450853879673864870037203701938495973148289337764157978373691846941148408721897322669146088633059098703120342167993509091044126280180667307583741644799547308817784459102503127921459250996382070434482946960287206830208149548548564683566022959236684515502817153420412656506813421346313198030049668873348303731089130592134545770325877295456633172453293173293253173056367615957037009432520679486042834264580859339778442110037122079044845715696843141884276811085164667773891658410331372489904230757995765097201346902585922059622823116913078684869135752564645311564008978799474587376553553209270836267081948518366509360094814186740294620116891530710246114695475478470291977464267675875885141193031990385670063585090432642534320196901649540323045480859855285544593873735029606573340029730952432127413321972843673657067081407427685842203317726226375633539737659799441288190684551633025327300425783369417845347405228438785483739067923831542647350785870817962361668019291628323755218999131849304718730345623647067824116498187778374587222250920597016248295812513805280097735252414892160726538040798371057687445994717329136419876035752149025421416571875810681878876657871422905312540942660656520130284264678739346214744971868495342664237860881964754831656847151877370415107428473425447315558705926177135046036831861451350171996201849911937702361341933621680740866902753784746806266177302988872314112113764639339727784502442010265963253952954822347427429283631674996839454908475959392653408180415658561633524872259196210023981337246225930694015037158575832015624639469882526651248013671687107295689092782276741047670305809529574005816768767873239854192140456782453489813844623632341964050592263434351952049041797260260293913247012265387642622641488294778786389198781493074599831751259977986658996751294325615286951964512395131742472380601148509558674943172178555085634562386120277073066034120304232599620978490582132982933485651106698505735800962951245290810575920775173221102898778969501884132659815240108664084873190600315296247887288644007101803492998575893257129893156165039551000005377887849462530120234996237228221977556046504446164446713907854314855390148323583379213096157985132001453829831654035919577111013078981398984180674304741679741720125537346485967085419314044479095019326834107324915299556091034115370954751048454630406228372591312494313903213714513464510564016600318649086279980286588655166072179328606862958594236877014519689997327602772110651624851154491878249048497845435593549779880527649550848271049271574361526188916828570695076977374428880572890554049624274199258182726164837182822595545688458133225280122985850963265129144085731496385727124910379553971208252590392824270477281324816953453866373173177967385451228545801793793882910492859429970717331880932434796312395793250452979713731203235145063345896524277881756568507540892432328748858968137767898247813566049220698903537568778896082152992283019081753806510357836985291885585444616589223277693010516223036667989530627014565121504938462102191122773275875164278552913405586467011005062362035906569825079626803850762307138140858605617445547172256018979133997027210228714551735430807392738518520459717947851228963029588866208912462637455401712868579032858428885768451180877298859319631919112615895935053156662177971330867938433250125582453425472381045798124611741367793780988620706153755021845534654401363251328558047206469737932906760999448921855513968377628971550574228894071028167881943307191598196536571830058096622457495922214505646339116850397750342218988596750360179458097100397270113184623831489839405033777255425671754615531763267337762945865859783394806409019288425874102226039679694034274737733578035083270074789998188343410182295842420238476535079482722439068680293547253559930445365100888988819267240513382382146953837838686445035757867806229400045349065325173330090160014000434957778694720689823198233340148289219247359315382234086514888620987090089360545593956133297914470796590244526411116068753783851775814852396058352802767395038172242385643995192269391124621623658803897178532831754577685525555597201847307254996847085703800619449826523164472561433633371286636598023544750778782636969976288603529279296957286631700183763958628643828815628745870028981358697527301721994212530571437770348838148672338490707715547155773280030831523921601297483920451771143701060285407770772254067686133118600797782573203358543278916918093727437220081476429903393705781353561176744606378199679185039737578873360074809770468726761739470392136958018525043849847028536929527873747101661135720621279345124206006089796129769236791053416276552764667158029619979562245928926006816390981573053716017168420565623427556380268422774093513391004392545329915286672998171423750982734550417064157576144958815824949536764020388287033955714521650270818317128647812463338023236605099038371742534210890161052188483331851542671247414980370935494392401477827605131040053153655498200974016670983813015795254785683805141994652526380894104010125824660331494465503295752447550938999437861760040237713777442909312740353880683981878233504876813440148744962756569527152966694425792042725293370820449961510938109351761862235193114590065588780696744891699435557233493025503516065567956373748329891905238976682275797032863002794840275346551930188611929981819013306497441500857066735760636400746173415098701357331249262473292183273640223160370220998302691979553614164569885691173891015541396317118480742623970331765346713514370729270420174634533408036219653028149102644290588678407546569396633754929705375604070159351105427822663728700058250386633213231168343592111943300961925322249904406317853236294155941292237842911029427565124380751731686418267081414786547186921800914913900354520585273110491809456676564705923617516900320829752933243535263119249737289979258989855254709958384947016467643948575305604243812169179978290777578613610981603770343731899539181980539731440734338679563169400597247821919966521825769627637861113318727122397857136105112787525700149349229778654190266539464032172959927183868372712661055396854024175220292816102634914739438825079960440469242693741663727207421037167000877535362438935355371956702847279091441154063027694647775873897164198284480709133388859505861487726100299941450721376544941519577237987260647617846815480571498074642706526181451517754143640384502329123482373339942948615862387968936800211802670250081157505932521774796550392119500508039711312897781519650309871459209869509134610077901029035210038326379476912955808385819854659677325724551834969934384470332669248379538705580803989727334098785397047780961447122583915778017793845346101804723972357211769071502597287489161150089807599704387352114139423017331841102904409899390359556628598968415014210997401732679971421447070419907741063910046427659833982294750607209721105795602392924084685983752238350581848569320602028938638950224197825075690334875864911124483100361244469055688779559945079627416123729449098695299959595288446698487900329496893872074530605060209476950551507122082664403195213021505689710261759027471062177282912552071806171973703446532852592976294489675542295784451607910634045805625286451624379896417049515275240141342201949980433824368609155936367493690697251068292904890266128330486914688353095712712935351934287054328544588965516294181195923559268344544329285268101873629833654273178570140325459981477407990726152320048776774785251214972355355975426555318420465811167216942501671431812594082335941609103523703187723981652357882370171423979357371401675701667544093374919442532208543946120721425082523911884622713868071142760309678866726828790077672297680353607436854669082308614671103415315394733151350504638429480930055679609016162062562761018400953682028628494384740953856559478721410681317094524697714473655410542983028006538158428017734423387198273570405566847393021431941090400138322516939505435048758150466894519507252493458503578222045183872001708346107186382314742812785562874886311634667395989728119347081427443163289323462814682795674906264723060105846220508427949839678093048659006915282840424457435108469080317574797815586230584265654699798416779693099970762619361321229699714991737545327623791020065912576445551139745761764259074422941086293429560347123558550900110013426376699956522416869585265763976755731205086613583289111667763576309264992259825036121197752608348462147588904520324244187264939644832058929321296385712147317125067623188336291354466051528974819768690315251611321354966397789801832747600592696234672487764478029820279903661795846228153579205219833959235286723874144747923748228177016277803430209643118620543112663461742771748818293141788746431230444712088506606692257323928222429405449596137909851600401941889660407279255903087743822881344730618082535805407721176545947333272275584767484552576731563545579870763204827395240724093573842578946427118579436092380033408016957109084567700739709354843876261534253922683656245867710171644462397165338994397447675547702669968126880486931249823513965121402338139793493739427184976994326647741256227646436462694945669515328549905605598838928739246253676290502061743843977970571996069431454166536101286246470663531072193119841147331463105025000729996261808978297040625893635140166813776995801882152234467556937314994241963049783162405787877914245470920591543449859646256979237302650987991032622515084522965164498868959869371403833388118181739838447331126092604938005377750050450536215408795113596689650282047470221000195564495045755699933097063184857258142927938676098509000784858255396137280475010562490980165318120257590471691680174710371203567321538696425304983292812531698575430971109572160261549987103311250968522221307979917077248262285247149609978048443139169998210166456735825356143685885488157703184245259238092281515833295714969848731944334870244925362239568163536371431862696153282588819866306178843367484443514252831175869820060080226716054823527129811722610978624636054532609772818366624252245394724715883855668338064606847743648223609740985778813006313477477035455848469239276013829581008925403205993946209470748821902200460615707892510962613254864890286003187217516006454322445724651743591052058055840259287618875937988314468421703282467835421846892985936789156761366744047525193114191881848692841695293013223018191640165309099650289618917475409653181194102886384470235338228358350596609013024237922401968420735170814696064713519725481010751772922603592391331629727504006499669758489478599161334199734145497916383990549847040973348276756032083566176387538121866650452481849253696685072002329840326077549110571845627246737341526872495166266216180838972750592145659825777374533248831175320568430499165208482542632137520033872424392247570084151044750744516406734624933099502780994559482846404621250573533575896795000955386266668756683448973729837773659366876260253759266972313307615705935047852906713744933003959574110085391699248005751908944732403444244514528493511742099620709772766361191882003238305758908871890035473690843476005975455947338064258522522929297207199240356912188732813137538251177256875644976567521766760293114956397977599305833836634020154764609352444403611112584871161925217192614933717302590787406440671153903414317522157354365929209628408905441903902197779236497348930974983897278389867743026916011075894199049433127943019997672125016171099588073054653092168101255960576981248144234609818218439643606268259585846370735345395323939728432970272959233639577541366929603958971093595349955736138190389368335048327470603215094347854194949451325388210332781428749431738227762649413766181983088559530964132687271872552066518000364512742552126851414371493930009393327970056102451368696666480838853056223577322497822133183544347098162952612748898788447475529530873919184027104730553342446327837563255184625415674217750276782244688544264749001920526427134855681403306009912760814434989540893045006562509966042510303593186928017624938270611744887119363027889473032164303504306267113419748310987604468779692503310189221513887457311726892760685623720063480321675041507705953511687801572303193460379426838717472426069079775220146134994325098567552770574535233904639488440233119508003246058581175936316127946129292207941276508263122681380100464627144403814784054125752075278797279301169472230661467308955617970355553392514916726659017926751564515606329704707627167815424662405843384386994664590419749822417387547080444405445816163319524492167851123716619522459535912734516080361420901702451255952807516718250908693159226731710235603164490276250041921663090943901368285663882498776354035803973355139320051618883760302557116176931769476894367263215690487281498739972031328569986250971132911523573996544767889983660754416845864899080391770484421529527721333614577110961709778804633574650256816647345369798106481842352572333687522133817754480794725519782544697260641523167838021082201747204567744917448239687023647105785522169817689781947324706308978475418238521011299133863347475572236769826029642919638856790599196336801574112921264187536207736185070901208616172742802907746495575032614873153644772937871617039537895435031956503977377933464525590246431567756309604791691693214584304544012896498534940890341285394781494305235868887181246229739253626705509507305658600799018408047407397529524661888454178697070948024756083332091429684270264899902702842632578385038368768859673893411603851881026246295357375361634009327148132264731075987316863698490247291366519853551846865999658942703331038215468672923042892275407092365048266696374109041662976254444193173351116180454036224322335494780503620484211560099190836403990872138974684283076205183558729870532350221320494015111058985510046517469185300814092448202198922114709169429499124824113147350239797639234697911384375804106516136091079773330068817841721690728590279741752965350500285877366088146132800798913141657387466281710554616670272688155931764762062973355726058455136690195320980564612967274555028681048157257900160536620040202634991167674700047268833089768015246901460907388507705303336668576835298207075484328205779676781159298507645104467543153614835069960128159267318625127090034736775255096552524328490633013216414334918411870506331294917126645715960504448874314361111422686551701413799311199061822963340969600827198097508799965922660222386886522083976229529799268617665274656596740770579362706916264074108731882795534541915923148551696443095985305200539044502863128582045810087769978742950271297614435800395319959120003590153114488602872888595217116495337700720149429867522961830252259774323086903458576551826038287667243313063991389025597111973761553575376491420986729405177791814927063910531151308017017765677958983095884973326673982543693172076374985047462682049947161869918013145404959028116196268968155107293279665685391442119281788814932003941410815096929744779251580582017618848499166716239633048875932645720990354441429834673179024237846778202773024961287616757865115823642642401240306990724466535849834074872820426828998182271245159552092525942554120384640104477113589113447596779524583471851381373759808639072078919444816910016799468022719899528300335284626445643289093735623069073215752292143099271658935665290868530714269797489827603797373356869017212000121623756848025970159103715589601741089473854657821522734243787363250889732036333916651213568434091503989202264777187777380603676463764211700899061559795251073669159202125399959571097392938165147720288643271493505443333476040529042477711759109331387303841427955423787865282282388556778385905476900569639262029123084769382414833585833243852818911357419757427201308432493854408206733018211277565513555770947308283795783813576452372504441600295178560207650891414451921157548244568818741158737888797007054318743168162646128732604548706641918185735363318368204560423486121210220378605692610552892018153761261233286810466430101777479214226386030823990739404550679994715598922385195568517304441493834169369149056636754144194609057245431756439712033531295594717825314591649961255024826795758986027196069746843374749127132502674481731315810412602353570879319423014688006945303965904455438251495182108824385873650890178408728441290179617854285367115598272575278416753337776692695713338613943118187326579258505649590867866863779810119427709349311480042592041865621805375231575565894610091575231628049389517929371124202128639689833319626358417526965906478001418789075634704983204317663318916324559825198335768751648678285206658370253648455158415302604804977094414796086246585107777938596600821588092373717926150331315423767498975379070345984745268913739225741798032196489260266749590107928976872930192337197867264762138631219751466683995891654779863013287826801022401253262064257911973122051587801636767514455810145264059198172938816311758332047618518852213020908822524186347140508666043102213827222744904039434381826962582060850769208379266518167307320784443720647140194332888840001885207169722030033582243541577336999079759163822339120946906974531671333043699287219776250080670489899301164462947110570442781228309657957113068963685495495703895701813309193314279795010393531319301896614915282522200444736356860493429171818027397553004121208024079696766363748980874401878327003347628836003471835910599572878786990145557175926283276653145833066624693947628826158752895135157339109156206298139761272732470228389908776772842496215744140244129577306218634734828333517853784261193848230976951860257641758317766069965661843577706481446026376379197828648481506791388251861904020736938722035829278389631664929222794638683371986809798126630157704618467093593140738777332371256913271275997538271156241250917182144939530435531683091182754476691959039096225055005312280051042845220367665536506941503260182850016920398032377319972386585073587500863947722342084252403922729932920983432994660472830740342220170407655123719349894318832196797912668009163972587297488309344010174752778334519396355742567028220029668437163287976040851196369457854435417012588583373115818149670511747528417632063726651672886445001322531553736477432928773031877858679739107494308104403287617763971754146955980327160435876616281640486820321766480269633302389995147868595590823352887787701967502530422945713014951738278387026270307329761750649857866797878933308853059308557137753493354947823394449577336687329003766165703617528780222789533323720930911752449187556186954718316884978828881079973873754649339958783629467927203475002723765874850333624298647113543463921820043274952799610318100285748754398463480650731725207866035592620863791190652031949776680286704109180347951701272470708312815317012805149536669480099390194535720915284511004911494536925175739207655517010213100059580990454287249122827577123302233362597596991943824062807202323237154846841643394892048639163355262896487504054432177923627074750811958901195150493564920866161107547955428761873569091045509721559719618438123663480701902924753576468222491401057171839009862030514319054738191611592197747164659638443688146877435975375495929956665982630733204124588364038745350273065596577892911197319389220595922338893686168405552420744184905312548929724224660083472468629766001412861828823904747424267368832636349273963334642408424260818441501123785004222699319014372369707975656899404354576907921166103662477154169950279559245830924896747811500004979277539104936076665645183838014887985782492725988258673937004386235419855384912085129296614560885204167428012620461265532797185287337034715782178347998519179701136289157645544170102818746052955737804388080919814834093601878101076415564488944823276192203810064296110077188536331048870548717617067425869003175380474739542521462913382639687689594970457959059688896269059013253108265162694215638864929330186164663782159275615812342315620623102227820557707321072085085483309378210771446149202168188952577199691760834657396113815395156767869146367955144332443287365572661962120417797602750505620441063786183861189292004537017721681510064434054968988238312923472620859570982291046524968667089371804307299232033929498820788247077447719824500175613982954857170995757886940572484791154594179458722758919433903897408276976970277891764840561715120138834028004365813956665585900308069512602480705135245996676255025797208768881465463086160349722128195798080003406567916543279634385733288882914242329737752892705927373626850736311379739110112622085658812153874853340773257005394319398267135456195294374031120015597603445741174792898279745754172236368240405118397113838447288238797866565479137999051834089705676607137408530496921951049825751767471169208199272488511280364385883905162822614255877540520714495472297688977943166834239778462372240162047520184088017541029875163050952241830038656140113921126550171344504777987471757620679635934272388025995279384206216536784413632650787147120165476113823926081195715753881855914436684309399067121969725346872543556656163828292638207278610762781686494848956700954401981605629416796932506637393666917961693259390739105005270241639097085677024024561427847746232960277187284701484204929132869017459176958708437512106570836149686230883741933697066783292910863990943138558287319266307212498090510185815582406289505306243872003752117873085805756198270615195190712428419733760718096920068771337700338174851277980305198271190786479232682300288142983351007818566626450906040606913518564277387297820104834304946794154675154648290664612723218069556897881878089387049092810127239307837430731083139928292307683382184126530379628834876502967353514436686781851679183666985858048397386798079943921003080358051292634574198658030965491095337528091631272860945257215743324004931754306979636750266423182080891167259123706072453844626624129020382314446483277526237770811354997259611991701522071815036359536087926705489098050368752051735538271689999285885587012756521537997389795441074874844037215632869383289244426289197316971682373327810361754539767430334498249481853690594487205626164223842290007522385728618541774066647856085545747796002470783791105848615405135413651489869009992649769890628769102266776739814644714699289451118973924098015194894920248208780753406390548285879389950355784308568236985857553823167410289232906991218563621652161300405404826722409858847793623789133262971082605570467896797535449242108539004987340616409378721907978344384751740071821577388909451181908027175840652935208805262518075087962054076045367075288069781452375730020027065237952123692181822311619654352496891071494693634841389824099869668513143729555013111055293001976432272772219329085771280287693104188105966936623075192551389585871232046811407685242315864845597882051676143727424951206171750468215635370774585629526002230140337834270383843427990016993105856502286901975403315311444639453193196283094050571837767070038195690830994240469138663846847980454772139275562083001616960594729994336770483430326842768086546387347027078180591000804155404675538619650893727308278471654501405226093009332455814464456068440147545751951542022704434025390844514934022438235145751962535155467977298293811300565934068584503068982841229839485633509438656684393141261691381569396794955760209506356988055265904000632512358575171111204718633294877974050501137781576105145164350066210058246561655279022037619283680401229456940951779522699252021521628400748528241069467316977787139994948818381283312221419346398122345970989478251923137929539063143205142292258404319016533590795070310710500889925735306806281988759682430659585083909783188936694317242908806866871639056563135467644796483379181354724713794571206874608718643977221006420859485346872614390310358104431456581080371144576503681971869131876669132701224179469686335239130244104637376738065272309458863613247738162563434840281276851114867761833835590098917642679814458242804615290791577656564725771952147697615223172557477726892161026035595318026531870766165911580440389640938567182215109869858820889487166585216418963358876955420822151362184799251616886771177859420804748757369927694027958114649738626397763564833068889856649389533022917368580218899277754852442705521219298831623852950736615314728880514056303258090674940325897699221295505707821215146477589196549389427166890964848998399423195622095065237124912203793726742806259029390296149182488049761616178778377745070709017140260715722411924767378178741612455620316797158216802551448460219404978910055653487722481809153108831286308005468194108638689147176932830294530740676222656845104383937340685851757262892362178696768191204969659804257872977820227728530613733289468756523397113193065206760166245567666302954620016182965673207786289129962940300373398983719877744090012027860894586767790896634547474036712497531502841938907280931671925370213320436134419155357506692922761093847665641973670326046906233588279963743872676084039090011590561174093300452513480203388625486989656643638277321484745696915061300710067067414044271637182163186666236000340389737472642228310872448034356255939979318004698601724521930860970296783896723061731119554027078775215260615238681990631349635029507897696873532864854443749115140507924122833612885835788627745597044898570801012890545071031014376999410891033444211682905087856018910379508081902886590710510267804697365381837986802834504417458425153572706688272674256371520579711409426341081675223374797360642479888682969172023784387517853744216014703329948593770853226031397908104863272949535114907670809646475760014085716668832386738125776130891711041395101084658321996826493003322781158995380663560333573314588152494159418105825889014014316413626167757980971393892482563020676838699192745621716415863893533418751423750791001287537197336705890668266182532921251371220664737066299096698423156860917503016507498665494079048857322287354429225642360228068396096105246636017715164650935666750708253020370281951237432344852279062846861683791858156379950512328586216321622462896519192807358821252398199727068695614682897352658067192884616071516993473734685208038937954005714494872239565360897344891083275424767437576624157316820563521346563665136894698433665220659262191559915304605081342692296872554824283360449151998612857213868749402683143172766745740445384887282751798326326646049621586220389872760018025646738853502820257323637566626147804989929701314867859396645187988334469559357571448443672214528256299704540179118104979156175038854849787324378577340922905290516095188568233723326042812083081682700530834146272922678995887510688295845192159112831484194176026526328793026769536810158325453282973804246430285393879406513170283605525522406613553892543779766163121807297103897249969315809147202969779251445975208549506266201127649827592810959981053000817146096453593064081346989339176205421383490580704768963310331635843004585562417878618674477494723641226962019955335904992880522402268604200500032034179244945619477295753301512650715774583964009011631662142770831405483174752174240204738080675762166065567052705860450068450737112505865529955606988372549902220770239266221619705524483110772548691473520981958209530736289663078440676011490731414217837406562871213176971043825293319598347954339510738081558517616640441278980453706572684311131738342294280802254919619476900212838961397758914011584004782878207297300242476928525557096771231836130561019103956238738339203082433785945485876737549081926771434201451550295164140492523550712891686569599816585727655732219317684945665289271310887554665421076471292985814328647580264573379388023182635521030510780190618704431654416076135968069814599452253788940733255022281267722952956754805148901554911955586140115230777927347492722532276756734399926094282883241548031431725695404272564645771478425462517767311334793016122608447001712114250027687700030043683397030116358809310093782865569326460511308395617177303659806858930855344807010890208968564277453638823263255246455715542296980757598207912420444195812890591716246414478504006709821217444847365627783250366085668132750225233453352595178863581741948052274845988665518514127735672248083735854012478541466531809497653126997078052520863853641286843124276649547487050197981149183608492659986420552638120708686572314119361222519272230091298875873624728985162912926490180643929842143225032592868612145308780240101784338012869483109918223580880495251674993098900713486975001339021613168845089248828720688755290289790482478085841503219262510475509338381329279690701121543456120533378507822417977145603891729571484072472407786748408476460919429650701277756859517509487412368883395072100208016856931882124380845478100981495777784846132136258652865876120731263901193240646966492039049898805317464734572846554120585974902995069940119528952222978202554430791123943178497217758964340561585171250968833874596660547465042182161826410998877728851340934796424705098194092951626077455332737244094929803444524247122646257276936478314318282077176248212469730172779847447783503380191605291298415940061382985721644187797995146042628701575403239823928637294961646225249093237693920273298028597940506678483786954846991993829453430307710514872799142482086931499056359173280121142143759389820695070008133297724878837486534771942976595491275060696661481127005781270610635178908762442462389214899119418821310512072722246590192678939842742551136693863105660837691851398892921705821581742882414633636019382262758241776168552911902326906194025389580796912905935455419980807684268165964094560099596783595766961160799969716252090657318046117331786522120641669295746184597764617421281723020656864588372707875883298025522703309520832359898801169348500472601323592648755936145216794396178845543046040420306180966468479898511165835473125743324419453543356367119803604644403465371225102031536301085519587122439274817821778424589956788265512667619191500811932119275652942759470140982503489583190678106271110732474022738423126468057445083773432948793648770431028330402042267660791334631867776198432134770716931132519858627253440477611859201311417502962176179764807459952923235586082702332908843282086726023963518330474794254568846983535079069904265205809735560297484850258616429158520915920073771418938932995579106506941278248668144810847288804150357258632466221432214063477038116001225487572599196978561720114418856037561886749528106050232860942786104257452540710436684027695365606875009920995619591899380349807360144883052841611250863030465916056269130394242160248402513221997587791346663707800304537112955515213846980295790993769869476980718913917603444290603146964143449440400145897767415255274506110918694913973119481023521302567580553311206100327993895134115407621641886454773619104090552762107706556655221158997626419571849258759537839723592310969847974123008247080820017457616458816239320986523031850450554183866137539204952960060296101808805444917151754370977496634708693190482570952076082656598643668587535937504009065722925807200660710215741213223144417790884306235925721787213723888060143987577014076247886607640959836834534590334446459294759219467478936915625148008669185202117883486289448053290712838484324429731701888690924004245994922159312506653790466350220403673795863004386434351575088768797486243243757100117395246521171133101221007180813116021058368872870927623214029444824727238362340489693640671006317297108076180528079413252790691873693753060708442280806253044931397935018574727318844638886928452420106963475867324960210140634672790339996482943038025814405276886141231477682120366337414140249835332501893501696421878063903097372002728867086845118053846488397886940714858410458685727115185177078986184412344223364912065051921765778911458506074983760981273358530574484057869525296423029299193604754524427723575108357773630223776967301691618541393158976859778927275611601722635767886259513485540007757584036627500596150208882409696200513844866408619820570764343057887736496518219022361723411046421287019347513769867989699214854905074167998041649344850048451531507171482885356671646210025682041014189108384553247129880444971457467962173425804043024977849185255519771382991059230758592127796478981974994538067362940373583600115292023234072084028243986892732093828285593300273968189161379777843795995984745796606006987379874294095880967656469898189884224645522900257092682272200566752272706677106472948202846053483845862120859576640611151781383198284321114131664600392282449964697453820820055428572877234514843775639893951897254216708249443051443161493518219059369044217218529409972308455354786998663482086613901121104959857105861445480570500959774907736432897438718374005174926046442514658408276905917019852903893354199789990320599742946688971732225895969589745772490430844259234675348235293758623730808745940934390037058928174519773559801075516620521508957423215530032990472243542084421828822615196633999999673855422849761524683444438469600061699812976113611110135348928319748229906691127595098277157439170959831339085996017807960366699117919168646455078042800124270704800979417788719240211801420845265747417548540868416120503196276124877535239654965180039136559739179253774747078161928194822927535248543904304673725791323775239786277088609638540399462497254989019709436727168460279556878225912430036898925412327071269034859877140423670527976545562520188696785124865868723227417948213013276210700291586388411084061917896915844730966024766506830329853454845965416412406854354908008432265588457345479726179481186766234024165374389123174000454310366786432709734421039741864629241882356904850030646185866283592474956700286434050179824103372655808695649748924019286111079376385700318613363113957306911084849730134532214967118403683549172190993804202069629572293039143380202215890313083133184276525059754979130186991481975919655515544046318432973493720511508675243469877456648172778424684609976294883175555858622874239670148537072021550629315293247967710744985501016503973660161789968162969663396243848005624699381896511982670997310084981003693171332370726925566925720801461685774412370792693540999527909245441639655167459927328911021222205147417912126040597977206025751314381439555346097354053220590229353498918168479666854758216599936755956233894937752323662187591617505028178644874425303064745719389919086130295693148587215299814065503949983420728703660991566355291223287606455622792805945643786195597214130060645339513591374833766745563138584466908911721515995834903091075734672029636138369034231512078262524884233588185492927412077473205213876000620812507534668449020524009452643707377436296510771035014445693931387671833608933231064283892369967431563220268163493590358348613725055810854470352044095600908567324019775866440934677115206375403938538349962139755559143441033967325146093013967849839898636454360323028479073190650660376044237854545898332168444098675555245746162433614589343048591934988821267157058687221067588513463776724543035308382631546447581232397674047112056229149331724876843360633627017706089346440087597697177918138179265007067565163510594008366217283477368450533482875542010050868833216784804853379309229051094304884668531747882232447618661022834058060784878616081082312393402313086258066495224257040116981443072255645518885221918708649593223099059266178313480817345811106442066252454704839517853234124985200292969101164957407548454767442854319523637784325027004836309171793891819379883227894838072744342977817997864176003997122425318618694796480303799259914630252197938617158517122393096793111174395888214177640135956782844495827767223384860749974305679106349882464742476381990109643300574890137788106038107995116156808679937304387386853618488087594073493990334454492509513950587279109386352113304600084723965726802099355154779679267208799172431358717672109168671404734244911773531664724550771606748776685529096770302129118715294553609392785629170371721999131988465871412409107801912888033318770346654059673423579693230662657177505658864080110320606691858934369479477766757826634005593632039872102787758476209905623808939369037492117758789838474849409455980720159613322022076849595154216452131188406913602871937759823869519159076432147389388279380357697586598473826451638420623902875061248911723853531877435591671090311826346170071371386488849073436909950538997247726192373586221443862119963780807980528808490760647753038591164196268162577498448653673386867813173766997266915020675272619506599168363468402665585224022923853581467249693216494826942698135289054015607931199116174112119154360701872027051366620913282513550426517329778428149913136720637810678256469495999614250724500531755429364087830723374344403417803188400026980193858579702895619786756372490331647359607425360802067590528710740845915859835928857100167262714466705388703327901192349936391945783522310486205095239208442857010445288597211811838864535903213428007754568350320666837907850661086981504025135306463324175991010076736651830800935931802387095573592414784054464302164709913908728028384588313957014149942851434206160266562077578564026949723141933397283797217533008334586843320627363561453402951570579889219113159780395357949247835465430499038893133844437613291862085101637797038412387021179590810880012477437222482593286902710062323779155712968281261227674314339115494049696142639640697190435678650651638704950198421226078514515446488150171676626627650883508335473050938460195567564200891147676409486855137307852909189784494751495012568026295987830484574546377516625007798865466375071692519902848331919836859296173160401335032054828116144532441938690251835129882785819136176384340668056462720696149782241817351274177973217661571649457292547172174654467423320610623506012286695270566115672929349855724795418227183705239443469256157734050788773643160803557313562184038176721609984480527723773200012157673748183606187679681288562225785174595021472779276839084706868592267549964934900294449280893652901727674398155809067028998393327686049813033116415867443553015965854142677092162830945481109949064265012795168715861505023952154444399463163631171264116516343387384640247702311331394935626683989460864475705771349511096135302603897862579665408561000616505367758566110511484072760469887593737382797339511131647179329459377896067525526836147290252090686430402597135009238450519788867459124381889805020679858866930270122756644691081225139196904242802057230674338257868056699961621080242647496365283408262124104143592688878277242449904159716452659387493428145660837776373786283458028070830608422407114470200069200302229181858705527464033627769961219215620345141152751031678767354090119381892697642821881025988007457750884934295792065568932303832350452629583653475685527778610286323685952010096550809268743354102932318312024113319374640944912975137248674336823867932551660147368686530282841617822782929445378382612341881320470057559542005247927741909104830288829524231652500711242340462796531221473676776297472265537081163522918969282872345594178739284945017261289972150876629762679703620901081230794992104833016127260299127748821531534632365134597428941727920081100038218509710255744257956597458664283271038220666650496848733308131652447015346426418083261082631077839082545923536008478900588207489167972698671866526046330583557987318251580553787502986119481307926660456383130565019276852544322412173713814791248318938259401745284611453099993231032399598350598427487901673224778632837195478948898133345067176799210861982225004902360593018153415234945423316962951156613933693464414268527806075064839928580849026208121802969770861715646381767887582122098005529265767994263554328816311827977916702392134311138953607404195471733025804415738971454718293486260277606395162247726923809300706191556920657862614735020407213248259378272073516294576672745439104089544043690946490010928268457010427943632019351933296387663477978440022056706810293710156929913156046865595765914182848984986787325956725737284411444758317329764430677526896933505277558663813539245474456304917472433713076637339927394815408435872529667446182513154191753671368891880360862441881237985500153799336047534322342381629780508949750117561052696418630981147114136179967638563897244948832114317935394616088083731113644985463453665480621999236603302499485656506907158046439346736016368540947937820656102551131676375112372646655879911594375184252271331152697252640508839492912040166584451121495517243097470717139585705472777893596377535429637114343557178203544270849928275089656313660902030822503564090851001023437178643118394345936785711668972356399002840301406810586893552422064862048255394328129827910719328960806220392399746022643425541830966955493110663849008214877388549420778697192542972358515636721510299260120861631079118066094508941077775183681478340628244284253667255001211648059449933090860428795516743663305375379117989927500513302771151795329499765316578155921371058202246112051793249633259737876867336483723287437103340286504003104324707155200568064591215887553266503406348701695510650541665456225445256087100493540172927024933746369688206815976709933790001761599944104917076545911575218481725080845842341510462681259441101078665806029376589432367725352635102377623185247194952104263333762971918187510363460824325503286915048550859521582928993812361700536577585731413751866941569576533215706204316895330502263684909791825115941854635357031138076114060169584676849131666215382344182985453470976939851415392231399974964604218405294747657323354560863545645553318800135272451404602502943649854191653192922002113794272108876680778860492698630642746700419768597191447148571039262923026858850192434386176255196334837564086839584428144846460243273570704556648541049718257932829152062153977530409151466420160434724506749640487598950061114260455619848320154198225793720464669959810626307362882978406601753254472049736288574211556547859046134852618618387417115299497130759048668142699515765809794387758334075634348835527580584825040366863106816224983620858917673842477265148206342830717057547502804921292352321605779054537242267006314695618523094272494488920209337257631455196493865511984973236791696349208776805377266449914806216171197266936541218360233019390983086975313187304946891260868317512660334509074016014353455055894934449950767982705538307773894986922664816835096361778814026372167528646780183501982486250387691561144225549690256982452255729193983052759741805485069133984515774534029591537711094797675601456206983427263655281725008698729986903278632894941533163622404573580523993046403566482120736397659191949977859741042585725918430907783888804093838092972001196111847467550809052990471645856544731782523412061652776697394585725778181940949426475239615244265759836767174204946201661236521032407108932055345894846065976491673916377961016973507339286179195050241001496616377551318984690615398766658503664718229170808035508534883337838738107091340584584140392000212166244906218697271417247761718817927453615570262719452964261678690984184260143015174741301388387126839655751191080507286087183046275057038804706815765422498135045553757362270403887275400701126238757384612767579861861071914991719770371365452144970905238125823286575696702841822956990938762446009181725772201835781752928299207169809966121957180693539348277928713621712857089146569485380343389176250476008187152513637397616730776548751057955871669073561327821251854809989388124101287671246229905020182382899487346213793981570980049159163914150219770130163019449676321472322457232703539422493751808072225503175096904696518306739199934472781150689868579459722472063011203010703929752177053345401340163837485010068704456895658697512236323693719205074722327155467406858854858589461532069680977578146466957158668130620213290618866251921523085023137741934687279021688265808067726512511672402061635657258666036853503936578667856883439771252203660029203726766519720436647185813631096744670224986082539679598424054231162449944149111711036613556982811354599101986811932402981944365323968562281274845932781253919295436524002312521022243358054217338399188228621867358955016535438939299636733890065715134396714328792256880586931101273490556095892203460779485269403143292460026577443209925000140547959303770447887289988611094097723542586955573184572025249706206021490354987580215745630528222838296430704532124647659525578936523083002538115508158819194018989114741345781025479782960610971783782117098646914495583212655340932671310215812099209967822221561154829720173125584162064563764609368000346536105318582625306043092835186567101155163219493544809262299376749003657332206678687326418426257196849752003604555187552575357285625188822862491996981250709834222055802065320235604153416249935113355481190757074351436318978111922364786480620727790728143118198400760788026181803184681765044099126736764880069243532919005347365968754164327529167431891701423213975629607693647998156897899880311130520037469700196778208831019428061867054957674266003202617647277797013079190552290806183427860091294699973978004360390552320901173085712767423944096714027466778806765856544495912896092963769172604105076072492435459137109148485813735803604374844525050125464156428132963384814308531222688777474099992642751292995902772016812394463780978338798157444549554390716046759853877973352202113588611955869435970387241275424691667775063534223209636580282156083997119822047180186967810807594711678048822054031117007916661910767171433535970951368969784220211408567807808991637600142460790497174953854326505988196491948703313739866683527289821428172529920929842574546956246681410352128424330341060231678732625888264184535796054641125738880559796063958429374196749724799715416275713021510846972733961584965048299919589563249275228026992081618147139633546846539321588139491366289880555232876254335067532821938384396899281263312911164089546242338624771736836133383469355541369778240560059650951276908461113096854245367655214805451077537865998586432126080645284618513455732839818258626811667742748101528699423388970306533128576705132756372414186874815204857975102919941762660870679425822274704726641343554977962450089105306001173947507305344808502312653863067925531932088006814434243800176740102461643424372086051564170264804120485134420394294272767631724465181351618895144253449534688509102074028672166270074284162634952011958763466838813905549917387236118270872588469325710285249997640783653246725145852005749192444626138948233098102124447567365463683802753273019794158258991988126641431732441348251466955509476381815081107200349620443824285952193142703152676680013359414391062821750867592917231205907222850988563417564459239346604198282550058317335093808332338213591077422052404922686755846008423519775156336450884998825786975609628121999304891540156304407968683498468195515867916380870105019036098468854791068216250950656796192764105500375532001805835207387068012543022862997836338044690236362316987942243462046046584708040798402746528742084904396626004328663405217510585739223435798182058336935591922366909595734779435388446408961761122275154380878872319514971546673250466243179268052981981319900144095842090356564182858888042804651172719153091941527858622335440397945598922956258841498989653494538026443564929417522649329695350963072424028506214122606053854203982496238270795800043936233432240943812214610689919555096955476410694570403715240181749442652704543381805644335656840581145222740655420696651129221955364933725614758032802451581918421967865771307100971334435821194873835058045882187817870821343477788091333890770337103040727361352998928964010419061623660601890362992474415374305662490748612815176259590967331573388272681659002916380543458825602688874250837395386497283601976574865018645089823062653609597754116587121151310913125202723044626847566670286434130637922437617140651388631741733259011557391051385597215184028029356510377216762136397797360674514153174859670929458575033689568553641465258507550397857657909728649714970307273571982805416627491196541027425255529994173408569205760011405095595347991139078947781297605392575243152138367752338700121697389907277720096687971015317592067757230146857179099418121229337688569701596735912840138379612198761822354361966242703029430501638569467470210343703599889269338619837759854135859212122638917213453586719100512039368936768392249943238963827079673964215193163723853276379671915859945482274190349598960321182626073127202801506320332117066915546932819194959353695225694251295221570349190174406226351736223839430226626587506570509038588146078267069543156162717557992656450251089959340002138003524699411623245763401149704569507673551619021461180016637731059463639065931650419073809496313719870075250449278027884658633084834098137345089909742913916281858215969242434900228905245656465032078699331132600500083596920356104223953851459233133307835589778721144984866341608821424983471111392445891636185220854074686033605866923544750999526157050952811197668786254477818623615359543406541655874210015038325085061760029502940676907407846565116833808009900230755702844076785736551721592322976621353147830451209708221763081289060874899360089039921076428821572909179984673578830210258120840382817829490659974701230737668367349626952115384954275491565581290666249047374070175222769413127249652922120848275138917266931326288022430873729067589122842160694193732708659199497010142769521426063874795071892068634837891365126201856917488638703671051674681055097139364274833115236944204529476074858655249260185971000991168069670725229462904851879802909448264083261481585239142061348533953218357925762859174244754046628979974983535665599125681991478823002585637091363761850725701875835111908223888809046309622374700168119600096768011719361750444189337595858447113121998974032254351494032243837327903372427592050735561704346298860764406523205750717759542524597329420819831232662428006396075525457293040467711103046453968199595231515175009007588444264403765132523477320536338481680510761996416078835007145731186950390162514321870073442496203019627704110288595386486773506306769891713261299672464074576224810622404883040018532834242948336159242971966538131753696339211158799810115670133746365026469443334542129094112814794051425812434089005715905181627491490311311270143965018334341127691417862782473102972811794135105752100428192940460194153915248040469466082765342441142347030965418974656239311271850041970958866161156853001565117372830441900511642664596287230316224020375879244576283471478058748435947601527863812848452187046997667661630764352357128419100981934636644442126274595317694052224221267982634501613224436344603613849816714414268606304844658141660967091226091877206069150893912169646021605678000096094599398683144989516744362381979300757598450715442410633309059159455756071975863418263417008145310347129319878780293239105542412877383164247727722593771467334095161620400488922725085820002909351476698502445679047785770303318952267766511066940759273251745027318952548073412786299112715887843680715807143506058911118285876271758349455991531850865487886213634446088319032136213617754106482721200254284088483249207800316383068060286424864418358085993634640665043895734567320083777477883632528837173678179447872536899637028625937118026544930056156508754850442610028373200274677088768696932028753656315484103453768365598618332160164474003995385228485650075540242318769665856327328467496955290652835808707427728385639721403550562347034083991968655339295424849417868931626797384367925997981955482549173130749217524108233430314169636747631071941772349026725837024824086976031824572584106147822233389396390219890156294642715260299551917831836517746333797324535735077857183007220930500828499818005944007719566837861066266181075129688142115576332453702649907107106224880350277822188121790270170339274039643902633692379506728696371321791449350273422801719215091654894232639011423766143076041923402128146648582238897612867470319216438053261005870357978247430692826103087684971389259504555217384113159992561830914646181234026439810374774478242539519521002386665935850295839161474575474246188787678201711024933570349057966197917248548089875098740563632418608083122427332532180372359718958785192088214160591491596701368829020746520440234936614905728172355980351463003843276885313375378019760410677497348531659153497962006354651607399297393297568442953778018296877809570763096702019167768954486877217016642982549950228549206707013941933029863086167733890991084135634540519395110299742128542943258929511304098424551890064471798647872635479027538995314607592824934313336528002790625305043219111180870810431634201654922402344637943106259556361634818651891981990838210036761915594199003340139182728961498776042033896483164712991046164085026916350370690337056525360242704909784863573663739322585280233557051811222921722216248030160037838049121825273827153723113628324666821045692172756233339943689090669774353657745087758426212564713915222507718149467221552226316964965823987534656714638364362630043692263680547422304646805077269915990322916211321382655313714910769792869284628395738531959607195111624816754395402728526476328995465543851217722580667836679106410498374014430509617187147315596902038888073052992294181622884192726175535523320008067069149084464597425753783291980084813736782935470015547624805604028202075993347791911550767454699410789465537392163302234088308138331665802497062913662006278140974721685908568403035652521032338705457274007336803431765280473391370354121542823604459496132064221043777622179498066558060864990652042812591167050942960204270819974071089494966638993206998902630504856712664176293166988421710918041187922338152392484951383221602668532205880763026812287333019415589384337799215357451562971108997820448074044204660979345359193536686275979516960591580986349487536909683942407387999159929428846434434062056836151789247510733958513308294441803955811107833285218564442788796986084124279071451592995243490881341656523507469972116016542420910726369168304003430781294488549069834074474972657149503960260716311294251922969622977846155327896939475934924291248082743598869881210311643744589519333267672781216097605112335688702882254876106808685411495094499361607728233125284027370925338478576556515079929941328684779593063117896497374074732654233567031843924687969559883957717192199637823201475681933245333049352399938548948875070276530659030545935331041234138389188987997809070950301529348060107189220816898687392254881628255019283009366547974509963857104854422479574882704957865773108873882020769844883104471199941506262189096646513570816484571274634609047288054341651780952333362750362591800611117296652230470454730587864833731387499734377055534355239893906672401518975613139170315897835605604192254329135590460356378933017136246161062862132751033137769667791721938059361433885459281333976341511999451022442135780894388566713000638061929644507663704670068778465649715029400034121776005372375597109386168146323876080946349178426401551024656538678922763006961448624463823072154545763958115169258132359211285946610040907483384876271141029694608923064972892884451692974508638351913897107394061066912589503794425293256349463398720839504818660630047907149534246626039483730523307644989738405630713123614222912205680066662022204796587221902400691175361418537321124813286292136160980190510731908996827855042550824687673372175271960428779959702723550339886789817132508546584694563713517684224292516518542085218286482164370305111751807646707764611928736261799248046223899545310661434027399535115232578895629314178437614291283798503031134372802940462079201808417517515487222068349230764686843352963486145931243554207780164142852636403574335298561971722766023183233551001474760998459854763670071557241571784750204932214688741669861089585510900696061524940896451013307816232538605461195679315645903750261446533641971476964945042634084471671602973325626846136175955310860482618092304623400210343881194083164575067923534167981860467548099839078362194522687570564228329163417424879522966531326123695903284623917060899601324293135282862206392605752037600708332873008267355185296881542193958170877758811527338894984087656268436393092618546484664222018444660387088928307389938886141355639582956727331642088777975701581361428121862009241101282199433552997008998199726922391834822011514908822992707999018390266482118777228400883532149464778010963020122723833720598565431704538966523640239444190216805494194177541938165599430685443287408242438738028285115859405737999733581998082593778900451489689990863789206486356520078825852501146136945064250263164311539439580498774020147667310150609763990727088479481693884574254584215301117688144625971036844130918898263307305575866314960394529231913493777617674236001756495008217646408676989554172025782506934560563255584725255731494089383302001391640344511556983721903772078558886888556200099429865670387464928746355594286350261445241750224112746150851045471182651058380117924514168426869771746893165036552713707059968096181736688382950572221218660308271312496081101901580107229186371559274175779769537711324336616574533406342897673024440905236408577867552652341335646335941688400359616561673899869498757613525183369852170867053546577121550518876716072843081910627088771315823196776879874702204646235355155753389616624908206139235509990267637648303337249468163077719535008730668488157520462732509007946254753574309723993292423041124477598578647887315422540158293841559396831546229786604557111590915824269068987064013033889521194418919455351591266421774395251409806254389085332667580952772227889457264037644015838594644098152152424069490090927823906437293814053265049047395025236723735693574289860546217859501262928538742923825540249426522197893028621458434902252041677924320802359164850564300326214270837979797006990138804174964025859856734944829117701679872790950418655678236363531929657524021733778376731045239774848780261280722856257773773798064180468415181381040251581472083589367230958473836830831944705561777053445325649957868575173746540318619752442521174838360287549508623115399949040035892893848299930110040139539753386168348727847602488390061321433429206764147827328680061542466471175368395009957234347289239287494020738412427462919240050455972081493857659825127578402935265716044379359120043976864094772566015234100522909148786023004032356835026440167363950307995370499205575111012271467906777521911253038857378088268016740248939044245627859720897302225839829805016802261981981351406482216538555805803625865258719691284714841322171178246289280253857638912804502101449624301467774410831403851154878104574643097928732981309840444022608380994574051781171544137613633154639255610528481141461026355427506552632029872480288069581752149543415774513810363998845478905736190466060922516145479294478827678095818215978973536183769673779849748505389887645870311928751365613619672038654855332886876251553504712175120374861350220808663780995007745942056285885488130737038160663299384063703986350621191276505699482024884564838808413463921888502523090536185404286637571467479929765471994526218603557971140421666426239325496062543065719118341567792655065962193216908029575075170659222007548444652929544717038640167608544015325847232245789410345987525471810531659574566403623249000157769528469138958855310996987688550741810663025285408452424499714223424888216361658528070103798839258507479864873175568235291103129174169800429781920626027797124400439250480927784857717463008566889298291176257619517058958568780384013432515813604093165231476030198377925625154781197254054301188390461398537009529490356463105932289039736973651075419766464132773071664713392271076047249654699580985538486730510048363637841914082490884193865823782117006086115127055935227253895369519472881952898632969508048516699545805483866805262083477596775449407063168157350069656011338075322716168720869351909126743865045312383775204178666141247074233437007515366368913921725262460040855484163033165968169544544783552058821682257019362417416960479834079406629598491980436428765874337775286926609623814772531148581142339060062667260102664053749338528054093720828897299513277291809425173186496278102508966865155651074108248539360173834122540443399240874882630068112066954999545394747604539874253251950083483525932838402212427913137155993809246652541147161087264307894627401980556737007633264704245990271840788947342974448820203363873468437456456135073373960095935242279755714752339187506581865834409368032742360848290208517819698405997750719001365482852303862133830172461592606229402333839807602899307992881142715252460268809891589073176752934363502821095197365912496269178609028170695458319868032943596995259485838105067860558694627230739636002999214860602825110749884994710735512682286443627193950482875598322388566192325686202822068085712107820603138498357952501958546517311438637068361206786315053215980026783628353499895466483270635086564249252015112805267325780264296778914419264163096079312425954391837977807569207074629924759688459752250631639872143861206082773006587702780395021430128404335047807645223356240484505708442675056420756051193867704623983758439966814650221717052324476633793918382692810775009612685158911238035404130577348750003088620213528303910854953132826085575001221533143805860468859974452177445934848863789279913350348956589546633283490626308545345211265909120327307980899847927002731523255933709132101664721722050673950743600487493283322960342897760485224794131979520360530716746524924751943998851018237929619978278818734039517446446747111404661061917681127275404030259698117976158408629606125392872317111256968517454463837169696456716948328886235449058148271564942987805385332082446583737254957436769720777625315413903813286148132140897831524842351561755832356771175532187941324296297646899202630291626050220845320919782750807934373460274119140290682421132433993246324124127864153180212017053644775118494708533060884617656090911394352939307691995174309220424223392945857149984574386868606902955668441740451708608867867870731240341830961198976177145811477240003930139286735275076172239737938316528866565961101467076031235286908997741456873857715147088001308793974970237712058869731261126079302851833051394853196078328974926209481753743317554887177824338183192054998461033640581661973586196291628383309898514390468481226034836787097572256156332684216951080484575556985251281295698689114147500432123656099575724679937381338634503556501765858728435643498157397929463444627075285367197088048489088753996923347580166328550334943107727624994270455890178060286128175659781616836032292973514631664047399472195838736310978250351241748920125691285996531725326834453309562742265416641031852828099699409015719990884412456679664475418419527837206054248456056877480564285803868822759665156952410271985654093222033231231300635609449140532286092370297906354913625778715313858908125223228878500885721094664671337377525348980556563621064041456968123905622455378553235880325848958925739998690884949326814557793448563001562388903588504771434563474375617472744759916962826834385529056484952634724295864312028760176916559580475813650639475192377053819955706712884172986857192547334393636072981316234252702464200876893929341664525456207376227609014399050646409531364285073847983218167286480131158141798213780799217883638214674996422449088807955746764019653782401865732762863302243404712554252738091594899445164101740278516257666346173753303442927978262126030008033899232047273504642076303220927690262631858919337396694465476210316424380717723711771604023089839196408220640080636874916107836781775671070346163091200942661815642258452153000890212423447591456850251112959736362877608216647429898830245654806143638095972599949618558944978685909437027585665660354688931715195248717870562914716084484417596522316984126551570664590133302208174222781711146941885716362186766010082986044664728952211150230513391017403054742621131990089220079660195239697788297922380733174362956209654335101342854934922748988665493427207159369921124228389260549177834835092271119002274103651173697427685783305696490610284474159650460379017366259921404320886001354735680288248168369499066567634609654594909067885740716499932124166583331198068539686934232871679972209897208684986844512894991295154541035753973415662570450579545094182907419996586520392745744973029794231877794348841079731763499360536910342143905557992381867867406559371371985229794459816658362443550096935835597022140204844261789456176691885569268027021535953624936167798302099656629638419179482746054795344276180434366836970284910007535514243843212498253805131580263106043116836771957172359548469488761735348125221072959072127135128249847963124965959058291372292849734753087495593544872549344946792386601610082811547836697791032488402686559781154398879162065993057946681730981578906076360230035468552922683545842996945983998659581943365648551467214366129408805680218062373821256920703750368443612586431218537688168142116680416660641978032830541194970594111909125909212823546795183987688591362774778861239313285756612733235796459427309044900763583113994583681689585756692753214516976890367149492254385000462864892389844631989881138956290654525045024971266942650633500521366955296497953375309241893213102148294738191931497007462896887396867101272024445302692406109752937361069541820477834285274864175491145735564485151994366001583746635550477528009657562062940263652521133488840757329614246249253470859228709329875776945544147096924286408288566579949543768456799410166333969107443934188122955481165050765302458688680023221409189488979608067556552283718947924278941613473950945399516061936058282556434495182895352064532824480211672258340091519859366163202561933984578865281477168314099002460367069378058949236257451488968243839691539237566065975630050817348358614341193172391146008264928259639599042134561768980979543088565399171236106595133033931179136522629883676687366690953327699604064352851227387632152820464115420002434876263479707342489165931536911780629022077776644347126123119904552268851777487604351173175522483587401929125910799254193044992343447244484830331251076380625256214508699446965472369439831356310915469021374964374122073159722497717193585787066537336119983765867457584458901344010841443538132486991564364119259004975542508550846352696152251855550494530987292951647517659998272213052011239586878388330972600065590618645495626400762448484724783595947266308545924414414959127321437146077248404343843459783344800311657788888393438130359559217922291684131956975189291767701523962390597556037846875434764952080833961291026213142075187160975779700589686216351125387334122467053107562065732865277973984010482199526228324998026691015831630016643190692495790903325254156949590507295468058914122670599110579865152649126474833092749602094280796494358998113494802302754954607319222330316726536166100306574646015339872204671526218782399417080313705969506430072304603357591222763032407785406144232029768912877632002180950679594413511756779111528776534583714583237487431553757565428948411444527073172869192212132903712190650047103096832340938278751242907847436627530339906320083434975853011513907669517321799505166221813769433953741850778580918609541444877589150933620963132954563432120227799466234160497739743091747107971326429112585992577841131168321819631336023580358378328798024951437888587715402599132132345159478660786887814475550023750003692797666634508052315127342380499806808893036926702276638004486819270034295227401687548489755730536857799632214907689247501095540401908632739916778660582240964499270843367170723419819426777312467824079375836563558378998225701708491603525898017948813524465444963525295889090939452704347245300173299806210273978637933224433486068385001292101611532014955809970442102572996912761307164568269777541449317306663235158847263656836325862320572032665576582989910991815748767216222274061487506041289925079078958597537759646047877146029531151353477029274565508594230252652017590771696754121428158654741576217898025720532358310640553447394514269127259471713704766959033551946279141591562346611692244287883547328686065138967044339369056916655906197594463382196349480512250381195364457196205125612761254404711232064793075997016908488939613291849444757379925054796575320701537697806161644857787952881794917413626151579903466663258436933549712837272493776076032009346024400555372860258585141078297367331063181273668822380306896437678645957860984572119397797893944029121351812576177744026758967140618754988465292384006808579640529361845196557795079005498127377760588073849230065332851463277296600874753671813415422745689583053232775056528938257870240561730876914833372965965150556444446221622624084114344044438382332081494395618813296263979190525859541809148283146962464084560477752649694736602105350042368735262070814209278394527633885725261691117526732854899311928541768369194427708524644183996432380529916899771999214182288432670029680353136199277056273731942660001314633564645396616351667690066162267954842917987731891133846835858899814036174156000246332049357354552361660004930293607471804517078905896870614656331106674633681989907649976175784796315416728989911315476836819353019598523844837340328531004583688047345628661055063460571890353380187719627761961179090738867822224710825564281451362373501582393131240886473813415441728338084808229484043203590733325341226881846220977703333070515394891772992848168533077297202134811986428358420112391289349503399821063234623192299444510041810563574640093286147550733569002147538264198295188796832676704258247985607456975759376133407208502507322084885561845121944502002670406432960066047930896158000640109584446772327342838100762840596500231089105673675454539985807440298607340218730122630192193336137958964330152319339744706779912154625682489886824520653225183941351831693756177509501689623926199815055943877850458923566810181827136827245255581175114456659343442308188782315818276464419027023958530151130638370957284578051598742032891241168746496700905576746293985194680660962731521217772041245645044790428560476931490804178269952473137301690567356312588338917550617887721170907531813225701422277671387084071913902466806919165229200786182153533204498612145956334790938983281814264243850811335745807642517046370908615092859912530253560129932439733593795252785965027965348845033206184824517817057046205235127642764157946577383603303420388278696342961146681258042767560422548480463075648332203577691496279353235027382069205106689659478404427580079204675893240583318471023748455160251425751503364160738959294837255439797841446522065709845792332400863808633053357354331520340409478644658824558052032547760549910842843371941520104214788143954428937340405723182848266090910936940112316718281434471714124168738139193255402159543623214009068042454227606167351355570332617876868745229442819866290441841211745051364770457440315850116967088848593433736187541263344761871709004667796367479488640488762989745577500370373337596320471562538264914512782355536707304584216145276675056694940898810445552811017658674870930027246571410901830760072364179988982295232250802865169641261790354145351213396022919084897732325921099658044793774673106462392042208330772158324847819819122894685248849868123852660261974049722804425737517379485049576423793793495306740329017326118598175676928156867157987685975543796787553470182013527492095943736671514385368271841094732977045934095881115766485728486466112201639018545813334633165559805746011458788519183091933077316675551733825894338541040185726907450440986988372847439177412000413365159584874037641582026363920805485614624489158576814843924851415442154504895087639765815723032519544655970037337509265784235906606982517789288053332139827611846880834934739925536978991293936019474190879527439164816170897443642618241405596923491209283171107928569889106404527295527948828966720435615038231607569016810669524675833984259049405717643171671939580556821832772925672298897213324455889640892095669874598344965191451022304063267831331122023352448527823466635291977850996911530797961863811398155820479484384756550983551662240741675909753824994761702150054121500391498015586367912994454384554469445144903455268302475136421255015097337117322901827396433111289657341741917766913967431731531248963685803685166266823965850256269984434333518294755137494777076704776073593525613751695174793453419583751625413748635988738552462631101944265002480890568700484323464795489948429229934104188647264558396479089862002864528582523674420680294958070876271542092444910772195065130373114672660583143866922086970201755868034191414408071544195344067459327501130957972040887601165223428393659985787516738309258681718875144410685941543412367163913289825592621166660187797011226026355257913745579537202112693617728743087325705330598333353490171129529759814339942120650870044341924784260039705123801972609372884013192240702761099965411437389456794092491842278965141221651711969712166181000654465811309736698937489985203504214881986266215513000826871227788880700253618857767197101039089588165945041643913236984157095262914961199249506793360015298691860389739264717626214793816209195886022953130564067746121341961237591110646450143476055413426585020158940099229016305821021656555511541624589403980748262843094799237149024198905856669677327551982208639850434958083030566968089767731998058080332102157753326888305218525011347398380299310142214762504738903775937596921170455968543767696466134588725165188196263084134048672107930364062271300382207762611618514402117440408785909623946377629777210660018826565131938038180172688804617532756796336618952588724918630623227540442395405879771294239422725778990369974123233400081626356230425479952637833769759246611225230449557475557068245976433403347117142649901505518171083980098470929929666176896672262909029236057429573255197268239633280880956215883506246135897245192334557656918084899592555962008842491963211299168001729728134009684106072005161695931211921665898763533050129671626649054097258217130776044333752489260289045464816368838285731199174764564792384444124663566010297300733851208495259479953979980798968668991054145903412285265393952039089765499318672968232542504148153430621185855964817644671836860166604050462075512245767255417045461937212766477817530951471983934654287495817412529799432686625114005944969017371038581097138177258188441353948605456911992175187898970683711374671195090393413615245506102473559813162296919657601236680314148216614794811390410939557791072046635282494776287601083532947318537573380256019650373044770236604438369922007385052774072247645080754716339969898289541917348930188259607335796253844915367122385477908973151176790569330016630762422915009683929056104907767753023386046215316147077018298155994495503948674456863036809091488921754199060092283632729848215591867776818485605542118800106641720725192998093362489148713815307576679157530634347016941632649813964050052539240603320472396945557078850195351226204534711429897584138745277760726298898254616645646450660118422178656973710913093730076732064379963072765508039787282510247669380040423627163172795740500586309038063010654693726137892324460518800183663537834382153887003963157665221610032952998597903033434462478096783982707013283094179536198877692122818804799391700116352684426584283190584905318525155607470409244781925763856937340160708867124658247850872721284577706298265817488964866095988675676183046398794613891134945071932039447045015600471170171148901942351164489530672266552299229111172696579038520228909885345365433201481861257640599010959694441811404902319849283372312526416591868107951768570904976099230649334852152935736968721841893604867967222808728641571826349746070650611924767787810767738970315749251835352802779334818658462526979636411713071794205193936917742871727860342627085170821883963752582254010848209046236421122300040553760298392541820846034662857866858615946723072780898188368418322963892284650659007315858694278383261619318335755768387792454131769003726434476329330630246739242044403103234212857113935871873323852457237965898332595006729584164771755819849106538252231053601417242986108304803195858989307404969892791687548486450693130425714054590698313852995555460314747746005061541766318389883699221193404911139855380677186565699805461085848662063337007163541124747706191642079164082895533861570630484599329361322037226791041664789341962065744505990501391046825052142515517882398692396312815914928424265295250845795552920667292218747679164297422589533535061644040447611082684133312361334916665913138023328942947304455870339039664595746432476515938532869287757672665051025846956506333516671838244630086230838292347625026910220764784452974542997263253818696201073985788156210735248021474105831701337199099489172950119255416855592030882442712230359408146278399350951095402076503397159608298386159760185777715068666707101614663628097680027864363593599048959344658439683189352985090043088488295025036915676598742989040244244683392949753301427349865171300457441350670706387913858818615627130608700141226676911811783766482157564589274220241163105539635937448646359873140248600295903841414047690025339266686462123032929347386142936104281671571483228370134685874148300499277288752433983114903045215406635195075341519334826762077360619236369295810956808133924235197804692363152167162294657271398893392243999634074965273189438857887041581876186607224537340244084873778915237841834526737675348835084905050843138378343452359608171450151526104170084510681266541867938369507760327477998543009264419555293399566615534447345293657817309697079715101483126318687990867842988357736100722054473378156063987128584122116493827213696178809449115426506625212035139709138318188684010139952658801653070284250449680511579271085686391260529817158418329807189211326170948386778997923428956061229856620750971998395688556058780748962796698047432344651077097110661310100121068243553901207402122778205900536219397220161949802866071020695033061887259994970532550278875431927760417933835394425285707800787137470556748118554236623390290756471074127935190455204522094255749722946335073124896288769378402563079275649495981416792502456880736154758048244337043607189379318723670422035346706208306830900239774193931633455795833592475090577542396193253711645867397369799474235528423529385949605066940999907492106055382884619554210565710982601127427263934698152585040606869920816879899427515635069898687288667006698806123843010977757602125190283724560988601217068282309937161182700063009457261803895586157295405556563566759533109841221653165717065324979033554616779666557151097550521078585793193391590331244451691175290857334402414275521972912891674052989391484090147969007439315443972493957372180363433869657294697767003729898361765356823850996919808028995254489210164338301447551623237572533907173803978520699559135728009327384629805787007350581523515169251148585121487695462466841728157201156533789167997490547558755442233623236204501225490363796222401952907751693253314473563138639062421307241210565895175587421292337547074529686709877305089048124761276412021664731481920277093436424529834634410446699909068287818524041465581954516131133717134193413426267082773265478545920324654355974921069259184651045166548500632943581433865319977289137862339309682169109181925670196831026086788215239570323749310196380391900275834759101515933189748444028170356301605265839822205588902862350242267744071433642719825029932842727677463605582717915234063686714543974023477387643654840854888998798382943711862233401123397097158187260551769818546274264807586739577881717723063762426538074191316109718976606988687128010458496174126848104500908490378102842369929374716139997405832392988466529390575256847325731676190066206945345291537515028560842329255953658039635821559433347144824894864714804210830047631272707082448388402484667962114959046146059996615324237567067468079555647538976246507605224546100992870151710159108724558863876809021241500180039505298649327908816481612632648566443569492006483014214384834811877111973168152042124229582546716987248785063428898017503160056872669451755644342715768418483154787078658478441588164522947382541433763126199630836132268809705688066293534614591919899503288397191379380731377423762262624015990173338088223718981773978714253124045143987484126180800054555378507017058295737125651306982939246887749878779566320429810998956344595377463752810318233821501623899572763131900570349155743876041240013798423193885021086701601250635447069945697309516019702087641168388082613384445014662918563508012627508203418798778130787606105475481117073672216411624115660176847948155367411986695900803004816307905509360452177287348605525969576308838925254366138613066295603359328793310550530822328702845904295039534633286624284208480564910574685934854373853925847291242368124604897543700684439033293187344298934792003374004597017829775140320558347786172673364164012113713389988794070532748449285889062742392971101472174515994697663657723523262825325942918146360795884609988999337021684527909479802595222540244336295556819893455804490252281222789265092005607220681831545802267962561069582584316571902082972887887437814588845463497890037831714776635825211088505886234414419095097368783346910171274150452178811598713189591114563754091613736481195589352948620625634329683432510841459643910420784070644307966662015473006306423393469570676938083454134842293714429465008303037133184479742053638805442298320528765370053657795046704519428993567351650948528734285341859774156215443032117005075783554449432720851126889364124687865721918952773300935601402765199560621664414845730409679506084395177486093262282355094533134293495734463340236597813111843257141545804424884413822733571289047283434928660092349270503137345981520533038553463745539193466898947014224120405584850078590808370649411727576531118684725994097099146921212652107161714371842332165103607878850564843160459365055304996566161861027034101182895657792655394885887819719088401119803402516748198382874931719331583693607904429316536599208217582906082718325234251399118322335854895073643433210793647147420291360182575944077197211081844548939564646492379262197157866941180130395442713076009289220880570757872910009646136358646676719448191354608660338127974157208543284992025917487384351487429387358414050571220079311182223799227486788437683852984933472660877444431346310894400484897248302250679643237806608805555933282183635504105514195996423797639631467734685372555705253637331641202700562847057641637281134347541379884029942373216911861298075998199696995820041203046582486518735599805850459672670077619723032466428458944066258924289336946472996057267266979565760411971259684021017476366685968284569791861529664658876982426181252224787317861332736637835335626464492403392222956523524026117779737223636549469270210061364700343761948925432661133658838470235335490114108803161378607061003801121969703824084090671729598450519224544071383857680658475231464862060594551045954110264332481911924919974613540261375259282192659911269402971685471790138462247563123714513561246040264801940677968981151318839629179150076973842225516259057170037623301412600643872940803191545810465857441750572092009429687006457361557175847513198714974888136509223957528936936896049329943681544947189826840321268769196119134489837749638362710821466749902696319311672234117469363938247060962138836110441994090762935634565337769734176164360239719145944852942952192938943776818099492930391069850860263140445296036098578531449124901329996176084563573908323975782665276685248893333727734105890662802511800272025543574400179119186486388841537044941149556902167211336975249196795711409196295329340374523712979128225625540152013255466316223618558998970323383899991434399278736990054232137405515383257036643679386468262286491812483129162523042560448885154739380077474606300160804015934135631555269841496630913735542991101243232193336009602180438965693101989589799597433714591169894900369290210231218597080606301319607756073047642809061561544280937280889687071348498763891647658155552263373746672466566595397035534725883565316383261916717138166199406641511484701158121195867990586009892555220315480305149669445453425663589545277393577489306786102527698593301626102216827404697393541172827657305350690760543824246118633478296925998400719229982280105805350939583591265310033713210141277043380407488995355213348830019194694035618428398648022567580010735335565293641327876006893400611398303746696624461935730890655719769219748357367217383239590794005047716101047703248442339814344380585773553592086522111189856031623004401040896903662486191572821915110159691428034490940083170082612112704878016167424260422248919380902732268586102817482774099559785486894358505196159844177199672908424378285565823262539152722529038270495525045532375224902006943872008561956432961075467634984398260498028609318030885025327959360821849313056122154688401317292817822833082005548451624557809808019799468922258887527426479608034775018851391798262812957064478666178437814190376376849117376455851063970852990803195994001971565610213172785048036912500706513289688275720526537332792905452912788489103800530664331315930625371101480018528687840969145663680559598237362011949282460674625686755097205840231003151484232766305972684983705145279548833777530209732572960991251274413387484465635414961313073491552463490872857616016845491689249642133726169672487622466969332875729593827847224986463658493491094394809693756131903736450302583195699545834871922865175469982077879688847373093972103631204507145774823775822469500631717661009917915520280271017354977447720609781977999071983995451628724615716412677965785369089155115996129519139814102283288476061481183750183738546285917102078457717800113167486019690639922387414394565726280084482186368082941261045686369511639007545194985295470986089553566414836680329149208490533961486608572589653386453981994534345414918300118669515051071635760879573949043412394109810161700367662629998187298956778411028982018846778284485106874947503196772356174241633006497428180872232107089030897507591244208094705309757429582670083521553481798939490285240088115071809140334531933951521918834200761942557704277809185240748969368051163613368109572641688692749416797694198964490962617254548142865019343910300399681512868724221070389216731494173430319466935226437251343166058636741731420092827275790321232475242283165371740750783159360972558103907651788930199285563908740412371989064264115509838192980508829048309485110096742261820859473332078849817534879404756942530579139902306639281599149220259249668636575780516886704977331002565306737056155497382633961064539832278325574045003226646420012456598246191751863214869369024696043631752137486434607380295545029667159678357860304677913146341291801311168099459029735833790202013928131306405034792533320507458634456293830496557566975795149348642673621583267685558288895857950075634580611170732667669874857761432412279692696169179392020617343878260495708335687439914990582515420982679320596131751217650094054823804311726700171980864438773208837120459588712247326220411542338418673379912408182694851924086301665529063347700340783631775316556538643713738283462901814604277899331835817500167206230753409657951838072879930060165465173964260259774449780764964048177086948033864234037124440055734047159168219955776150382218159948541554155969781148506327270848513566852780465295879916966235212718869840220710126793994662073625675413099343437673263881240694934544885714990961733069638560463459775430715904401312736061266356621706081644653395441398383197021729791818024642048581287599067708682645263475078406963812108658639899581436637301521204576833838123114493913281893036478647238986557757454863468960141133138437723157574314892611905216115179796869902686842242310183075395185375844712805980528601088806925543289186508840361871850857163477365632274144228284667551561516926872599940398132857541990812168762748659299466152673077451754857891722703258917933995187957998276350380872937976027733214610027892500984094923828342089743680099387952743423700793464816524429887013012476555802475184604581022028782213414381091990392961698479406203649872332171659696835107864456015074527183185534201028696239163353332797842671032446585791728409459626853332220518442099494529613628986710101205631326025968139025786400306200521799734696443935697549159940233777344236042316526216879885515575749925054259043774518640195709657423907067964241456194555860139763340478432647841960728545475364949885143842515800000809489139795484709263053725136889089701775551958293576776307614507412127430963698718427158249213188070370104098008384106031162492157672601824341257610336050783133315100296346340216345153568590007131186001485057251646898329412085431896439542572071116897162354881268270403082695885507383184455518647215291749742879013506616833767670498120015049382640724088870512229460572964429230688396672430830519186422783113041045379314122811793185023166281721978565824495176413338224601560680365407421987229891981584166004909528698157775979551083965182728655648221974989882484669032637762724125243725790881550355224229561864134043540278206907046282321149602571620160522996375369013034379063035669624359938550729589772960733806034071365618607041663338999761629633678516130099673783909764954118690780351851126732614003549603035499252018447844333899347031730028081107288581320197460544070320412815879693224516053635203989653929188002786386424365125671178567981414396670292173834481871590745733255157169693314335612784098322375678065620195939903768312591970621671044969980479490232023224149119461310737215767205024494943705725434937000240807341350648340382721097359455409996611838495801434995049756868074781092907302501996439842297032252163319995837381302072305280704327084001402532928583640196718499210815060738207756103537368787467710077479111594394521995062560790814747731735976708068999457991456178539226939402391222687680822082416820532015649555035341989348412055490821248807704778128485086693007571662150539036629922590480855276307272997648265760563693662643037994342684409200625295174440390324744212993634121002806524048112686539548512930819290931446170720086076409343012433733578339885336666901793197329498712048115467818734902027844760060022425760309121983567259070654875084573798012563549233731759464772370690197439415064383034522454941229415124943016379457044686333852056215673420416132417895952872983886177923022380598627555094248208184643252571130069824893121161884832551929522756133586955439800833196259403501468573631724521687622793097250596806822260057937112799108566630499134710126010301454770792824312894546571283051783297975083449308943582574576579414265969758669619837732382870939914215211602710720955166718917123049509310732539680124598108521339366707930236522594529535364162731341628063336678967145813407190216294275153741275339394930548825506626853560870720759773958851086909588780848633010382998154926749496464725274198993104921018613254803721416779497518808070236250869685128108750421817481570815288289941526564042050019144530370262248861794591623070277194533894149496572084049916193876785349385730422664925035902449962189734004515864153676969655668124078006235837923781986661915088901659745607499835227954442679928507600467597135942517137516461284996453863722613094524758517803496263032245631825919266877963974023070353296612386641185905867304614774087865019253469540263642914382539889039217915397748494948137066075687120533474777204570289819367490474319060179708553219792009617193448538858802866320609247043596852364418780527562364201029108250289342565671622871890859613822803982454775685156063902556186481453123995853239029806499693908297117316260250247659376325926016277882974878691891491519083351527093234982157027923097751068530475601959812261025323568594850896230379848863859965792600618039638988595282130459775368845741912254829348619681845098449786600002445084344958110688147458662482038374734621523653894020028587642856390312984191533189927767659322435138795192510836154439704366575488858509342834526489511081345877879396556831887261927995168510054704285242898027088984313795934898487432060000893408885008205214245165457834238457205928959685514218206654941370339939387381126077161582060252768200107204768403003891404607410346859756601214790741062935419322793060576099952869499323342219374725581898693834687969049349593854501062997412916968746118990867404425823086215588822083949451128968489143310462490032979876590245981216755870440610232277710456793097533173000225370309319925617725193689491115629637723220547037546357105858217193200612775260400576891074020968857864639455275861868746017317061179749418066610744933147466073886697085309405424251636434652400201430085616228525831528626321073852008300073628096906290643577499816986149688017240001286080626090244463326564012163837230689868646966521680638793339438002647006970769171847747780381780656039649922375367348710923853281906556954170789355264230452893416316525859603300834842418554009171891101332124652427181753756548315591650293015286194331269214464044236379762452424784471778912577326089949478726250274251131113185870070653332365187325604008605338712238693221733781330543971982539746302264402320180995173276442353949443081913057673034305651690358940870599972144915945329070013781137919045793520123769662634004327941888737562754515570429310944660997838946207642549964453251652606056029302979069409339865829085298597729927321720446160949310010727466817628267154682826867198371242910233076057692162272419538065327319807712630834513801604170525880076731799894696714461045906547965123677491673821760077709456280181357534898818441019209468140454529224658213459213247877279573890991307087448550764852942924971711153147696678354597349620487778209183109600121438198947299353323997936978958219564947565841188990884192417605019030321719043457827916105285831626722799918141136149928314677621399910780603975394399513767477886986723342321561083915635000954780339597795064459545948505287863368599490077338424986754811025920132732035079909870944322179101131084116754076145121435529681945875050215781764381778316725420074077411119985804735646641400101412468958126896224177658452278509023472985471446342729699741094435832875758308252129508103582338960710765505106575291693694081238696831295999857745917881573499282088797228832034718541047921496356517579422920467078034222709727215543257816051291714335674025421323019833555825552449037625795509447241760802955440015642255477979654710615821343602281785860034583217134028815084139814681326811770820226170537362299182504244516958732394224974396540450465768285734516421576478618067624404732890421122616984825276489398296870144095650813211807638283921551034656584164063331076816088804240768254056999032061591855961947883034301895285425100684463817711921848429260636854902223819758708641167758532511936707434040839732586547919622616816564911209769769923103478665704513575157192553748513882688208916694521494560149866959439033098773436989909573416587417299728444089254453186725340336936416463584160392039214368447672705078302432188964814152131243137962622970045228170173062438700134554074391010950273405395203165062159650366508425886581604352770214004940446440775765184954716053781148389107463017087604475076560600124366697071402516885246813691465407857959901239641777096529259080270114962882737061950014008188294269610749916802805227298734125548916024176553471114266041448560583887803878625308830004827286345164201614881276787480735606308085546786234631307126342341472173062845064447995601661499053287791995541860107571839781464924879372103373861433299145450770032744453347557448308553832624443929068561095974811755036189300233969581333125442610029485663612262275122489008468572013841555663227576601484955842741326239990747470835267746743220891456270208453816941347760882499512947081980863403107870348490708453406314312389355659896226969318812691529839435042019121614239923868391528325285442844582221782436517901493542254595324766054476349573412772077041278120873979868303006184390317883576145883345063298647424365442705545958350935406435976304770083278842219403199181803913177698968968390785630214030559280450433534689616262443520155241057436915362966425600599054876319560007832558866826633979613044211305265115109502211622224304754656522201699920935169302384129027110822058098278329686519361808615238610187983199891657940530322291254153212420339321727732413132638710705214333614637000833514859064652401318833392684589701363750629643242824128459758817643006867248444814790054653913053330522758279280923893906680689006817464076053777912846836283539214939953499060526418904815333920648249097775015695624934632027404372545935604414872850447306584013786133790243822866481998559440228200824905577004970736415163102371610256649305494886074373073281970093315108677319128965455617546406881048245467805204799875006599779354180442431348372984319415115275265909329853165331941660400442694064807947041469683694403189573639765055927678359041098888719511403827522742789186895274793121343325247107012544903560295812278122945399898774537447116320689228844620098296890381961046020247285512299691908550354266715862059985488668732403325602072483277088753512337152156026159011165303179954237407559843731204666423312745311293071068458490988152003793247327064727290618022663502090029375413152641662781536759266058705164240889417165594663201295942367145751759403456743127890788846378605317688410637128688757398588002840844125514087139065049997676842595749385251875550843328555003273036982847023069451827212966582704456508436061315710567797236186061600018520842156351536194654916914886204631722833150114875293046330928037238937956356866905514911356287845754405550666253415930497363752899951556482111933872054187836960974141526190669578661913332177712299411475726570372187167901339052773673664277340630683825021737923156356122731484902879852477804967519707035916071936635115807837742664323329423030517136796038683060972462181237667354171825905900326591953826471602494677401313070371695551998738390239673348027953690084393781151798565898423996907036965896629370827729376688459050794883935380734005640622720833174874867555008618706518571642737268214571542246732392826375383658517707541648312022207630350780427542063342965096904474577488080122062810501353396671205739931412792900679861648681773916390482147052658738674287015905549902375901659756039665626177598773499347394752001845946437152903937300817075489414887106133812068340762292933885252891750634960435006391582145873711883997648795748489581875256267516991611153870864650769341986401898463781408500393503578831258424259417508588416083780455867801643363999988002874953033707276824818603063276511205387909996688749929176538174996285849889930882416899259503751082356721831547674840637740315374391895143684111139660520225141821507940528275916540541118605229592718915836429300784663656958675697086882456324603674199293145647651457552325023788908210653233702890821930348884920269583083220267747811358762700496811493668376025481914318538059299784506091408656425845637248684548749150603175039649404294457463947773303478680113676923976661265179924612768322968107743851860599911557535796249227147399246562998150857031736797311912658821586043180363523801845814010146432202559114494412632539919181257407064731019990178722634830600325152686505586705903237797382902820180825168860449554623092256899816445381197763035811130583138633916236579621652458234982186957694731563777817543882683122712675637526856303149841975660713408121879648447580906584779243349431986968366531534432165741906807488117457165111954918335519916877540172597458253375112645050243751277238456662031782346847930607177770911686982206737992672219845288530753486882473298104392599335442198419236107445229625506746165168169611388973686382038912806890674715335215218160312109009675079502247732809635874833386045961281379862876498909788263042965062450770605877400288151018092232568723768483414208995484005407883594279011133840942562940314764423178823029331041460801815617806562184466700096797598464608039182338342741736411532956488187901420117644179290843173764313080862080149805395168521840323851947817862422800649534091105316809856169324067199129989123243033651029394199284407807214405009725694226056488876639267549346041673096525795610913177927425760355744335232270057059283394178345047101603133712607679487077598226728047813471096154900661829049243234980200957615558669357002358881058077933103951393392362859723042567822382633704525134171738427919380906574077035352214735894814349488246600992767658299357752012835802906724877844489584000035760375440653435880540428676170320729333908663916769017825263065792338296103032645646321696188712693212882190539869833150812572543336303830724878433751978716320342491535466625111624211549782166654036008691722721279323228365262329023424224088270477873954629448713707411064010986268911877831834296931310307450362398693657912822629782741372244866911860017382482542927188078751219096634541332217386421566175398200121612895792801849641848013159634373303210086715854016298328646793212628917750562638009235626258592407092603476754849566072145968033713824848656218112560074830656636408258145766801217698273660851438440979252719016179180864345953971675375668568268959854044632239760768951479936191926870541144263801149466601821862364269033343816100458607497772335426944262448172070530917854787690784172617563203960907563270143843014017305612085417039136992872442795743681875850936965265223051091311548410108392475439385924225786759662136424166254384727535455950716828025451426922397344149148104509477202984223584651473498975417398960273049562144897431201300438737686753026500990745809587227131281455077333413881290302840846439022844087576191639792679264292564213546678037488853439112650917037621516908985226007241880605315303965828227058506273880174888877374546453042224522023650786328211127081602345198533982767051172569474990286761141695484592080268002563177656331919537862611625636890637480264220549915577175866358580596190373211684047611289300568018670078894782979489797699824851733769934052018278496992150098453406632814109341780349305903372553886773919174946316269274847099364443180667819640427150517734981678361495437199555684167988791193559794607251837644602479138134087751469502323993443529533955069503975788652106198122318068656835746345258683058928919824310375759255491687161982472170284790589130983042223398716882474095437139980034635962145052345761782782810130290605328897750109119177650181654345556818375785541497556308980535828541635616869431304406094995842236432858972836222502034165151088282837049157312261415340758667616191422382407502317275643239372995844847688104314695542975851694457754776302163341170128398994333247525908544447001117621788193515729513788287057522732281837835859779589964948346115790144486594708453228608005381603799915931203718189208281933009242868533592782362299970047211386575228122159127922258005549174880832158150769221796730476544744561635568062718649274152296592383088698457085848902707023859103445756301396686735072182601274390138859847805423964762403316672303584058970623641283318321918401314169636179803737211798007380221451092244066795895374942050713010792353584073524176746183699824750516846606310813717003175424767296669229329019192497033576100962554074814590626162394038530196508691518653020682087699576597588102391490986446942373595328280914189720580775544712936564050806378551655446243661305141169353567948684466747976717301479811989407936532408880377255635830231783377692323874497125760908496551527088112225155313725773509656899466573918203044362480968066495878651362366810575540737546277632286745483044438343280596247130006020136894487477103843971300864551568182828291572503334529402394012113738267234245281309633678102493302626382538493870160395123177879647155439712337262061338423472131804822463907205507664153190395686836435133041467522953337700983563195690563860719012224747146914653866816101416638406372899834950966454218848370749738715322490045009458747093140349460349054101244879789291038636863327570566867742400241253963564686690339870664355457277617491114268600973370493562829528798101284156385471504463718734936303086386246618742863378917991507039311119891519193956793344418769005251907574931265652402091713488829353990464827475361636038087666164942521979662025587748881356133329962261329286738551211826814804503503688606807003872897878957612254743934326251619420648942080991951635157207631225168706505458853439678380912150744419598300214812639047198544698885487378560120405466125836487732077010578215019392203223036367514749753502268500254358693928348777845171146032872829227507328276580456893107083837947873008279298497595184997429379159653979509561864358821481481821668814634282568839456863939289696774135482188122972236164800083759772607749749142110306298503705089908084899874425907343381770312551971113997261902737486140184733156413063319012149488356286381425733542282244506184492386019243129859280154189145722723702618066827119526470468851963171513733308857667023711561846871619391512054612653697695516570841835419555794337063708390597512440950554630907862801421144049705927552604995584341193932812068734280769744186113347209242081102264649597214504078759506238646124033671736115769933334046073915978208781126712037143961308959092481000480814824595628908362639368746977076467615734383408518843729373336754454290077584035811210157228411159779775464328615431013397511745919245640157356364945151583290597167707852214992235260595031547139034229576107179163801496459353897116403783634324200572828011452700276544619722925204476330280022541871447909691301354795071528351829673900347139490579351312995351438304515623780951105051564375327980344868069163226194408200869223851665307180319093625241364885236587741803325838180278383548633375235464119981886387135721854546071592030448428743578235876924924144283053020807457111460529817888239405677094034224596054626031461394854238453195171823967613684097273941781662750109529446200101038498685341557692754550487229162063711201289785940731638329670756144179855170367866509837844125127253471935400685137077612035324690346263660065427082377862240792449156006275770387421115690339170589368980369236143799835298731958492819870945614780174203380770714352391579788108269250555906896349343381019485499282793360842309251613147671322965237903654155846992685763732233975219650506465705528384467251235263896854374382498825355169908369732692441288488391689843645779048051995967079238551920516610085304675867162119557446572890794226138895905760298934386156485283498358782573595501059287702618335934762960840278285916508791568642969938284068012752084251788792062773755494812988284145561582647042332594878399085168204392549219754814630301876056264993278182444662334779492429145814263977424541753875573007990997533681082504676066378453377262173702295736521605361169440957148174177304444795554496344715993528204587290542205371786294466010318693528562165093607882532343073725729086435161672699173542077294855925324943068511828587602402168112601995321770388620030020868012878079401113129109730558958493065290972659884259187139086617339669855668203782234379511510075786297662967105405883186669485249289406529142341898960563122369373722236403740556116624793849400222887628211938402188127321158742695014243887571894307467880234098105381356626800426987453984397520177234837844477082774357785842308287664460850631105873473035508317726842851107780499805770839471810935120303449094442287209881676484602257276027589385685693263552034565840709433166247567308178614005799329232827034073258033666824552358236288211103034126584053033093970423569257585162684476312239645079056759412118970787312431251396272877956000122108825040884140412464629318097373354199109106567034611714696874488999051993830807786122036173403325655052981245701105523824769719782100545676929542962599742456642039132298573627989955182363259933986991445264201397792888727368448042487537652713029103534282723822181402375073908084796347641569851602207523653477875372471924555972435934506235160956289786043601210426103223423843324459828216614752799704046656265101819546778628113017729809256019604047717758855117480410825088992705768576861207611358256244321580089909812035820274078405354005783308145104777879146466891499647390319839887940650397141536597535248593223517459486533901218377603650884385687233847507015982824935593902741113902004379130443583433252626013630445616343061278413377792736176162749260615162337486282613086125998414350513778166113943493949971006669095301210252764307598813626979123417068982884258633468521313315613338570028210849169945936182732126873965804191080640516458009929577185582711373741170218094309832022463373437996332223861688794880694659513882234074833865851569574825310525743203109309772784049947885581130467541619944958150877994380663806559127575698117461739819181908218921448903285038808591008339595076140277397713556668302804708201682281773654876217031756956354203254852339734315177895057477725465928009489814671809192591278890652528447672838412355073057309842203261408444452256377129930009010902365022507741621588868409367214079636214365086940963641070393843525825975060520738167595375754177702023780065165225674543134796626718675671078674299278386196970157481922649396957654478565058032273982019066620068880679196322490784229530364633946147866822092092422834178126561125645321336432107383379295765325608980866279433135023368739079810663545861616610375907084264540487500327536506336997457265638481477629664357891516213263339441473309508522742581873221089229702139435476335098464530367152579982162022334568854709283562631903064891544631888240783671513856868357294411911776066163045582904751037567323664496203483210387541705546943629119325548712370764347831448510845081032587413990517118739562323991909433257493468141361411903781318557058583883422102782899839171680995413540487647340962431923915341846004645399251442097936207438157697328230228467379240380215359589767477283873856211579277933771837494621146682777450481371884678737984317073946396214985953920365184062395953945466247134974978454243426990116544554115782212010794991188086280578310225709615031855098394471004383146824598084899027738129559036673595890486396234879001921962189204258487658087357727149331278316219905344463745047297727862313400257479495324972842625111370086378215033223405478833293626222408917776460026264413980493981202650275409407497871752625587287325379272232667424938455500194453632202953535627518896506968607882414418547345686915304071090102299877750649252739480935111884464129135242388633725032742760565930173551360932525418106330023694768334031856365043935260549193827422183200549697692389659247603943312609651180651819036061091869478057302260806829530965021170613197038781114881012853419557159896372076864109343477683325341751120169540391917278445319336017099209825416194399244533638535886404251712282167938948615222687421941003751330056247885120665427506737129170268170018055786476498680674684466052394781014180337032875070804193756570646232111929289163117102812601876332183060379786410106674552969750359901362190767874926129138661292598772920059714260075746042312024475640610537837772059029505987174038311792105992078687665174589652448295168936977311133226046625926273860272848470893621458356996161481888653116147175161922662831449037355860975261727470608367539925829350223294083956427521964354649757118038365050958329438264742129136420710460206698063419472733799848610493059321609777062874630080598499367837157236559973261921609681094714635190626862722370489227466553614882486537461001018656263902146699433764559291212590351903625148763087485818861579430240126583678742325233870671515255712551905628302422310330665291175504984383035291093226570581989175370357437547415746714376074571239080665457150977449410564459639588159461458802471792274648115416016966943602922369492894731872610730784872902778933532516583453113512991211325166838059548613330066716326049196213116906810565049603781279705986168776838194393712128006530298197024615824168975515949023581909857424690126498398063151731432450137721772616356696109821293733593014178127204988860837515486547975032718987488952566595498199639927508910020211539727530010048301040200961406421412913782063380575619611936230414693534640831865968538163904934018647337178657230128976064373553798930113507237560150410287427131705585906207083570718926745702498287820076228730638746450832341043101378687242393694166101209611995709957699934869599559332964535610232617569325309283759738446443617262670694040203424872355396556067409697476707358739093700416934795326321445340065745467357397386259951139133681855050339594422326439766595672306081790170334819099474860414598588735775524078960211503752527086181544987248984039867693918885169890482545158645872499854106505373002944326811461460553615077276508005717073781004822328390405911542233329670919336619888941379429127093572644702046756940621009249759787578847154198796982515403260260132177301347162186682913012545100321817109802446753374575442669613203953254901214438738833852766908384397090017453987276109212188259711892956948326232861488940515554296843808740092728407362886003813246263986666421949180096598141083101119238053002278894846382933758793464711941340115974580793669190508168001401078719616236552551084188351921837189765102174508890475401651712431978785626171013343503511562046400578514203074595340660919405718158317199155335577118428821038275295454879535394701197102413850287550814456094330537460724368933687684628882016279298351258395831118879218608920054776669419795656978516233903073242414964379287897487666230229528693700670690219546056589629952298864997676262650336902669904342934654219851205574859993821218541185766891468644932100215407206687278993065383287077057121462098051991781335043618332304736306650017655358396720917156138471893494003405482140059381600077662299880466337121868221098953266394373537615013182412328545540434636932333759318112363815191496894309284493872351978043459663614970160139809161562951035643774704202805557521714057854077966732502887942093691763681802533916295330733333038412981660573043292207545479665210809887610419112468153278262103311822292428471295720657829265947008686365511850962649613673208996862722316667758203735668968702896297440121047145819007033113264568818904629577269120533841536676833831381540319785038059583911786303975155750766091961349570389270486180333122024302408594091526234040978368799239193513121516706303090742514303550856845305394105518910838248662258034290606655585785197951943341562638423018480680415864616661798382010851778045661101366595170812666568036167022180627422908021421360005994778322736778132295571507836313217437115886800057269810878089443768232079560404558147020227825466107815456814020633211936692320274716768976213906963351056717763316072198623638064366605307423429453454054108941733554125151041336981026524788617511177129015099270495016471949633059770152265690187642707620220906946975104207644714102000392861020383672073694748049285147176872176812639172110209820949237247866585891109952778011269067709417011886142111360277992794108931135378035763998275310464937109174949805336759469053925426315692644245510937203576985129262961834226335951285221830834424005065985588621842290180959341360641444064762313840172860050345322997497180289372530586353826779937121547085895642651931403756935026609063190391016397893536809260649817109617750604430652700621269407602751848414704059560536634820654156140401507863628198784219975061192201148002821832966102099994544192993023182382917273682601609991700470268823156118507339663770941634079222659329827187030258257439523383188065807516668411140310983460645957532957410986503317283801316324949622907279820040828013893080345102064186164514749487489932186943787408070376099215068603369679180817627082683550197769007492222862857505936736987385935758342569017895016608507924229825652129942912938229511318913355821780487870357737399532713710931850942084275164596665872411396501814957052872906385991514866126260675450632831061266183138548844940523380763449144740996784172268592085231053046112869225401401608303227981006507436723383305552488302826513677493934031343301357485746695374904286889428019037585019355070193499090518403801683225416264873373700827588668980455860714956132939672066693031897111558596225983186367898996443141369548891509285181538215104081243722216456944509924808138164965322113521636826241074420747866450560134334626988059766206057384360306774268533022503813307270026759593822886773674521467802009009601364738560731665367835866940272506796257490774194136406259369782005333065746191260030879573593207383107893852941671825827574034497522071756703599659352660627041530154172447706915172223839285068447547293314867091463111497709917702583980528616157215863296335379714885606707520756519636906279785751414580805064395230990752246376169049437733032134823426768935823045723933187508287725412612617107495024648667637750694146211895580254607872127532917807008550822495287735379737508374602348289163568564311930602611284567115281829455526089848972174247270859511729888252365195888759837903974087436464809322135770723116049961336750363789726881489678583331024612972259406447695464211736621740305158494325662033243639300940232058844957914770554345671038781693073719510460957150825397643904608454939408911324838314348914062090789558287831609692581438309755568469264215810799741770297311209975520874612138786779115925602028182241587430922828170030307578729545103227981133412804221043107782389390599727734176011663199672276010475746121593616687038674208640539149238655190103235103078776583466060528890030177984190024215071090019412977871064082546775318248892289470504940500432974020142867022395529246484383886000659951612360077474762822780145707600684253948412538535779783782615829801456521999959559744302192805360926498844720711327951212716872414659903174921678259889773639312700337134691329983887035033906325474092553330300585983078988513499212460642540288580380999249008058416469760166733784376361541429640402021583478126437561225677481126457297969968471822920494403764188387306802283525963541747437087518466134462362373654269836125545841551969227059205745014112308779621326085675782781336587507184908035468954318431860165144981584665112099034123035898894120141883326622626506312673918621557714526494252918026011718944217210457634910803285432637646513375910194310020723331983785348280110733861006941438553014762396321402834597646737640665577976883120590883932210816081262991772556702400590544120136537942074254813297085097972905413031368819169825714177848222727296667996234776663954955375932063793586647853907838111981679153590141048627816831558580107533704743841856824068120423426241930096439813542656424249921121781299651434154065990617818533952442878076674310847286158998341432310015391038604201695744488846163654802765397771439404413514454083880201802215572573403722277844464463640982123043277975036234284873093241982915481327671217450530011364885066963343881665401124244294720724385937317894279131984888448149509766694884150718383088559982180743086340459873344559160539316786343604437934275293139239989148804150874319106851557774263129664530570887222986109490518818546580307896640007687538872306911172626188306147269625352707260176316818849611432258842573350542456036099340478095364329673916660954662752902720123490913238479633929254187666898629628291853377977570736678538327443536960665668294805447757853993206130272833070610538226681873295159994821718883594704014842163754973715002983946598674451653763536776584908724788569388075649140120967454951867241655311580353866680867497100765443455602457069086904404976383770302053908730005696984032427659569283856870082180543233059789841337266549424055357182486672058192704765871353669880885861336419047686680107199073283165392907813402989422779830358897102725487956173252561192537669243095671276248954700816556932123132362495132403795678936049520886430972726185769736751080934652251883749141363778528173362881790730728260505402133190640761778050209909325244852538645302622755229490693658846572275030524082837410875309571239154444958404960122279289430575667072439790670531732271581659485431505473434414099797469169304173179949860169002381122876091980936205822240003036619196449666348763150732886849429049085123749362529947226126508134161321415918679750356808153032139306695453497913702037009142060913588927015151766743310591266964246922884880056781334023514393824109018481622714036915251115203721682349946165742784855815945990078088953869550703968668648502352163321247795614907032525128175474409275720448948640200043516923650582420790710173284091987322741537744334548315144891635322672765517273577539206399537243797653258465472575755235714194671255582700453955198173168404403509644985685434004297170103353245863216838353718455802742995842908096299740660525441232542078878632948364800983414331544543958871939569197362984755505955542174460644312895879751880593911254272579911004329698351487805853353899728454982158292878571038675209610539272268540220074381667845091579461669994089283783670282815097804415012648007542516632011157293186779569208421234712142377629172759997610916378956905803629717430990753703212380731700820222631378547048043847072373721805705695259139534518609626727743859138057947952711677219902763199399903054609156922797922350762224272183346173630698384366931667616852737126142629812006068254295891217619328416031040781134126789986871925952738194560403238231934934198104960747348703255785088006757738047205838700776360303601788716204242277959241356073398014731144621862819055214274502590755152330804702644842299175910074697983059497521361551746976282668822895019153149936993676379768782984962701607932902938730477670098128622174249907673499534477271368755654080301578664768133346562842198810536650190117464268322532641478243901841648365214978516622393603185552425772801245070265372274020531156703577630631657163501314527162142267065633252432118356725130934633928528832136328838796438237574703553634583778889731208164487623935207546666270989420504374674332467066516664008821770816563310406051958668673578462213976729353385488445607733935947579888959701641954046681574681695659816666011732150256064164234956540322698429264600023956708605987811735554275968457261399973201524456059269471237124489491205358258924911963456824078012584574487309597469675647514639497719523739021940718678340951021695183617805063244155263318582508910072011634082925998395262228578948426785713817736541629392569543333849576873535454531631589107411175533366391662936405263822788485903227173842197059891977779251000751957326365513891336965387520013554656503066136367451137790897421242121553666158875565668905263035375667528848958417274340468864714843408753604012716053949901203760435351363621466212417071295486639484195229111861485839628103813963360310464027937265541245803166816195469486637094941346596304101614817703470648161976436716294008968380527007145481826171116160679409475369241016669267829731220832039339075980066980126346556710404957640476830213141403967293163102261314803364778675123153596526184786143322606856880705340663104651426117073530167106910293592414660415961830713562970297669121137408795692992026612161592982141063801999843817170311160392330179559292050797050589126929124271279691596826889654330285108278500638415908025963035809389837385533913986157900720235840815605815103116986771611111579814736602884556301681341256047487570246589363766263930541890516239866320304131756946502288274600331694854475795429158905562880720924608181999072754361749575119894096847927443195678851187577612120514031010469955846234230881234186165680344189930742290236075278928132403850314106522047613461511368724157974301264905254411271479266256737503201324380706766687550660475486403546771598185948754370525293630228614378793390863600680462343763283660260892440904864787920506120508509850499807194912351561916643490500150134553207432345439992875308206708593101656288304905789302041656276600347105437071899017061834868191940186817552570505011973832292551364664624684383510325753550515653855262328729353339396852020693650425984813259297204844446226580599271882648835535965887971609360773658234982208782456173700293019221248043768739170192008227851697066780910443858053177002008296307067637822142500109752553988993029737438166580203431068548841485430874847540422829276327663945417779978500481823916829160055452618542853537838312296874493435918079696914777415986741180876144418380774928739140985549765166333830388781778345545044592787559565294165766490293251348014750889279988532886854978304158199691018567852991924997523454873055377502233652677455194629334900139310519102138447296036926845564459743755550334619454256687916659773785990443693901393586041948691135315793180903602670425144453628752738019962216947552844355515938227160389653381357074584246234205062965586027396566585081340035298075208584284289514497258044480412669418597391986848919835554295348877315033460121685132680773622359156075683160431041018966575010808763167151269317837519286991599637556138042036719088732317508599422298551500775209050323567827658525179340263153558532568967615397306390994622963670973504216393365426858339853895309555459540412615144576489835148276923184838965868728659649761929530701133104920639105294386274990105735536202035633679912948405739872205019669352651509752659391906596416045914753594500299108527766294418997321587273560026115741604952119823685804146383002912819165576437092863449934971111060986990311314339264947624213738012792868285082094481767195610512864370044459343699176786796280362939730820909709810081148198317676229443430213804068596965653207412637339049231947694951314898101528992010042331580281087145976865419907738920874547137260478776789521556458978505585804411907610571965429429259022052179284780322183158623623785917372621616911976948947858107532247577629228753630066225345714555469723043908862183256813615286070208125187860137164671383893905408862470859418014373405541038800061273263531704735222395423100414244786935799015568760176905901328411839970992975463678786064336659312715108921359183486637013695059405550518106184342054916839439530736033637290256959539108263031193914072897588657824743076842695900856478968678347782192283677050940373013841008355360237791127225989015900045165493401472368806960853280965966954967184437727770157025510102473750711874390241469625922718460408914888356257790387669515815882825680107729669451743055675988234338945483425450364786796052830310200794637717046123385988921634314402348464099592733305785235726215383585352400865119454894102522779173749221140910340400301725573005349139263679331029619094318299683732299132588769256919156674914668116937654055267304548638187194344973933980676996313291665956174678162282779252280084156910545759776200564950068596927425417573122668762555317288745795722478608528028951420123054509818888501113327034319535643213133624172301328015984973153223957987128456663847008808368047251989223784048259224269425027132165598017810083752014617092720893087442721313144682123440483597411762725350731502573963531127159447015507463405936227829046928549640590173563042890003634665949967644251354901142616592786082021202245993386824369448288367752357981450035786569353268676783346565694831465449934616315179748486847835902052393837599457925459366249149522385653367991459449993804635046971088040071731479114529038820186333533337209315750273915588306947039919093751477110084917824173854282025428264486714899238968273629930025828008658651477293613259166033667321648773615077903734227499044146642036941255591803496008954155699590089633728218502115227374404124143095676425760843313085176622822780474633587496635207479621098834945170176470779344674806195217182287876985542157628949049559480678330034666301120720450757529631677166185817350369195970075500314071772217675762242147312607870687594206560480262076393057920284974130300022866387622438345642989322979742592714154569516084500330634108105363412527167392414087181696401280665938063000986042183621511243451547546030711855309992833963128041891800815775603900134833076402283505148900854966300839966453857139098073399523492285986442286405944109894758499820340759680163227814968031886505021407512248903313563305401595445056979703166638152837760616937443160776876147359601252123858322043406754757796918374847118012112256567296311302487756805500591027067356340555251660483893306342706747709911506102520944374754806623345517599887446634250348088508144822751393129814574212495405106268132709480538561171597752133590853284852803011443954070402857597101681508316207887333421032611714396836360071864888986696471462294483429626793824114819325013004685976916865359126813504325181689656758121816063498893720993739045860075856510277597015313193832425448054216902131381632236294479142257981386815833814533981675419986820102198606938601213569800971620886980407289131973232519226593645211403468953888660297818392628055070234364849179273015586301123087439954222957081296970646989140326863331150974766135688532540452610772960096966508662813698184788677039059559990080550181639767676159274486508491696821947614550921507018138071797198872162600074796967911601910528118311824858148870975396023371926523909432265513428006261620850195066390196367056460672186975363224735045146983184760077122482686194439222419986092944153995696617449182978164255705451568043091121582230837354450557739461214958582965985743348556053552969561770858936895418432935801574169199175263373458570700800136151007760813668181633985523462786976610211199145743725356468241287357771934093005042447609672463141862371812439635751213508526936996214139475986217332392975440864279831249212210799969717501726867258641698203933689030786394340008585628596399974273324259314211396560416544326785817433241187647865534083634123144195674053185289912743045519729741683692909915769083053238264443063339149781849421623570142313055676467908639714646304595748717888943911728555048988912529415602759659386411028327841077595691855758674972612780977973021902335205774872280493422604823271505370827947696294409420772057746783912349085566109859713889502507966449106306913653877205965903260870240258217848465898936961114685952043804918877229031167314467610667758039859035778028764504542376478385554353484842799410759730307460087090808274168820778406522659095826631325938872550261844327368326857761903283058917640261273740120431340122485158553750273635091695020083461067187806825741681662919686301179209256953038655860558250366136997047965304505008708598401948666970527800889296532193975305882240950634276448695424347404835969948090989078336442678848906326779398922870615742725714212314427362306795305299015023265204053125313263194992533318687003656784759201192371882194862925455185131516657058538600813032994410716739736095814378226955569164760629062570474163446205495972054738692933206765292051533711136374322183019449191452197398345466826656900859567840691188331436273985793754747949750157839035569892761639936911407162190016581829833572664268053046265572505181973204910543023594434402967884007873602156464167965809963903171985737321575675724697415731901541061371484615739354871907741610596540726397240325519633399883147470253950817107310919634482232011843521801177286410788803773838628390391566052042934854325674732340567814088963470934709413906250094144962056415162060260369736519836336518661985850031650583695917915721590224937937133556502806256692132151311175898764102468463274281155787083785585594214125076638197779286700445264999370043206420172103414136384416568141375248906503903044429323600684590175378887871341135078484606126357994496133096050444433161819162969246979422248125811693816309341339266390856169510416879184785859288946399554291781380686274046143621302649791616284145168715378545902901607036591758383989807010789343282433169205981263576038770299451855506293719028477273259989579941682907831666635251887981294029596039193826006525652760287949982642686373300463283157331969079497050985251921120807620854759722504796032976261980932719396602182821906765145863146806640189742630385960238836716604903729963769132051475916875807092926349523423396079432931357388510813338833885999888443243001432031074212418506731628787658434646513072130029552157705704649893943424891294211364091356997592596722419807440424871044686158039915473837571577370082527943084545615080283003596965147473893439123103910515245298025975582909027584689958738513492809092390887501365523058269026166021506198625676444581726301074416008758353124751711562869220872912585512143801454644616126517075756141693694998345424355820423662577592323157894278509620624067588093034977242756130864031751710001296187872514274366711015607469469756261629698414248828831234518532102656466934516599220479285487987322080228629380364389763995191642429447476177708804195979373475824062694251653561066312985408915232754964657594290423035087061086394077314093868965956950197747661469283336104729975683670550334033472993308873668653897353231010192758076391408873649456556172458911620554600394692625390941169483481169794146846513231645142799901653055011670981082226477690157039122235487964125383248140403442943715405103595447023554492511124000853246537714516658736665813945897217681133375798401619463096325176868666487886038427359929351710610008215952271062978941854317506107427755416353839247943043830159084218898506753019026687664845446302410274254979929108727430739334931431720024975366789642100329833123163099443364255785912818060926394748309912205619263060614499201173149108483356599794815061915850771211282369503979312706731735888872355258991168482743375292347691041626860805660727881006812703657522639471068032575244583774893916477519343387100856945759041814220934110132191771737688514700673147785466326008877961136538968471096475526716761609640170229465673251464063683409645017774079386077371810767196970235695311881223093119679253451685901996637595205049642777302134770651173248478775761560529427546792371735972345738856622762459100230602357448987781573649491574258193720951575416366513896172123834859320666220861718775558694563402135950825531770697506609676434686423402919875929683317729076813264658259825598111467281482760582588954010577785854114633688619454204859453706565706603551961970061960438099438005127702990402548092102512143270867059878945598843483986182508341524485542123589504165321207779801395060329597699979048043952243817726972794688537701197290230637971201425504905421701705115444319584972198933023345387708506763921886354658877180070517005095474622755433753689899535575845726544572574457528502315781566261365077162128974118285194245910208595574984490469289346428675641294263844230174427596035773909170138489387125778395922961446137749667305774843866300178052289793724908840689073205906651523428304261171195993716805140347457460680884622793336261045805121622931309152526885814816234624728221896451326184379558433980500516133581053842689844083539462085497660793426713686021172827211604112986731263777302002032313472592364051954372555845404519126421211900216566786016420385604733986355566733581680644142910458685970415593574136515434477685507737810282751033769408566322874635771003099246096101882156956252877847741123247479573991251608720730352874499146284197007432467184182693541574744230183287199270916927799972601880997384680389521030882239756040923281441505001988788347149667627355282183756138189797912437564421377710346885636294279600586335064326911513064069104200680684573414539579150380269311054940688952125365335930339221865186318825703077448654735005786793686083550094335943053315189916008409770901719477089564051389541209904325563273862968176461113774272189875038165021440270942476992141969657709519605969483468700256370357748622490327422020794126849445093388578213333402851408529522671221255407040992515994280347297884908228356148577820479303856690037525477855028359640490630087128807057880009993210432052187586247777454771757240362545157423867092891996320129741369388300134021709405065417450210017596719397258516748622422373756705049545591229046293310907970971491314852176823009041447714280704686226095450892556499301375530144751878199792374897590705122762885359578115712539604134132133427283724665894728200869926241293195087738340271342836751181341916247971050044235783295222933004738629245141225337073512255777303547740290577567361030729062561598090150120967420549232487477138280233158492466320428845433814478383597590856485367962153029815458462812801511826948824682245857170097908447123337745192163618978421863488268781060088212471354594123322581574328679463215717364264127663428067134950588802826255701413775091147686144201772433703513914520742247486932767151141426429083955600924708672156129970041456516884744795272643971323886548535738193381037319017419096676691034577177568190724619697444148719691983447224990924787367378907321621223488525410639730948033012763666728309882600918669696949344104844501185729546001668905724363798973614837669402758232353108328152572181088480220217777730462637504613093366416762223229888554792796812202426506187916695011874548741257036454958127144035058909745466844425360498734999361200921119523942289236187475140820001652991006548620070656917283559540909002163906411152003719914619135298600532288445787365184814857119884380988949526686456307054801297794766755937919538410985428507647998752166112249412793148470942440656220705476460775408042553309416396827733735347026409325391918830364673059236096991045932152115361723164575232576714329788228757768792655831733597890597825699250283893686148584431968123817328433793476369891473286523555999835007170508434299344093589742335550288604159431316669465508719449137405628626030039328876309238050380859183831778613034261923543297723696237881643534600441210246052103595667297824562094507442829863231081842739731757052159662192391773616764498471339125157347584987795241860568420970404831758930857833376298729357173931257443468851383025052329422525610785737242931667919578620763124329888777021810908555677761062835963727336217150834194366874501216212063151575727765951598890435898167347674918214103117973600918430764268667922981854367517550698618012691158177279363134516172743813090776306302907156200140512784086173649981861089660147522305031020603217594821350096595481059870969046259882783156016416107448821892482346482191656267812499223604247497553698402885373060995073434470154112202651678928007640444371052812920563269746279561446856129835108544443079146592651765164809303098943238867028412000767875752483979670455060226401427693621314765657007025448845758610629520555558140889872297345358871627603019956913502459931620327891773357651811367129926096076504797873762404978828254750728741822626174678757912894738106424947859245728165697616396027889602229591408621726641476210935895386113005947777307369355859352279298154544790486974344904942947316860189069027317072263598002609386627881737565965671452835395025334464409261714082439285844317173754907465952567718986355028949766554329538401683485247061699082969613888987769967712586070782949323548505170851687551326050110464171555780413681076684546304583737507622923695128176827095443636451112590512604216384033826827544596318088502219110572284604451927374956635754714708321555553338806469046993770967754200014436285375052075716316365781625299695667793376618699382008350666012881727023995313581824123634078986134699611924204331595703076273014800323567432152097054372016212643094291956103465882393718306409056112135206856925798829987889825796958309272241859429408568363622010644664901066318924560267734669062801155897550084844610046389788440116639401255472636097299286549375985917403401177625370399131572818526882059408018153944090547986840499403084311520237868321685030902780355990358407359091193346734189939230722096389772924426349264800546655179031220245257330011444538092350356609348114637669366764577120969566947907632539464433212848899378671285005192884047335503180718821067766543186162240534071620819887700880661497516689729369562894551696030525922658315031093822220563513122542134271294173122868352313992741326201986112067497836411550732908087056383262990558314537860642331605736709230412809731457280390249502137139134748120146783144434112286406260409334431927110351519261525311051419060751619748417677478608133482673673994465333811994067623899090126741784301874818292417084030412304372206046995609608197539241733374506877428581579780462629812862368887615558744525215374848283961915087972853101780036266033265118818679191811926818084003048478554845251687478028879977911548067057694078462526182433083125931879103961423370999380557918575704416115534065765857562566188302013815161525601106356549073909927961124257331637841717801399452357119401788366457433329690680014626336239041190951770566821468780093693469548993164255931006841760277304362046942741381925975154407220559498885736586587940022637052901116131332396583404650960335419731703951156256509923272716883547873340740746966903912230174375411576018327271994476721015087317352823848865772780000272064774867407532223423459364754616062835239876653458205001766602548834934080965226474250047162868765769933222013161579492028339932672654076787681764723723104998703101437958728091009630328838391526990565284539533703662256141680906876936205679741791583878000815392170141815269675128652278505353486073311062478633894996730465242084722254695355522788689599738178282990636301082204870279235026497698822778872632345965354830251033048761613745290804958242762115106460580405560937002010118941612450088043661267596902100629295560362902292972406669670086263642787157211962781615420438247492784457381918669627430236705573114463294997410315776147114876030317695940823799537004288913304364961082323754875069084375450880478929934573737448000910316505921717722740771717887461720103372582864255938168622731342512040238311083302001571850771121415183630893877591798882885650646581210510400286960257891042827797093410493087755484069009263176675300963809356451084906803898852232012900553243169993210791588439519986113506168394649309575567717212015713748930144110422179108306188631666920676434206848202706739572575793625357677362033886011379627723699866264861056635025940463650989594143153474053623557579485741438788181111937601354443307638408119928260012621946122208354326932136957114309317153212475106061390571592168809414365083411713831449398856221846919326791124022748281130922048598919311807554462452681253636967733329495195315999861067183098264336049767570940160313833414681065380240057179672461301264042465909395032688312119727467716491070643466257623413338440234467607174919864702740563798967625528732963531318721512572468210901995411348226757679687699492573922412424145928764995669203351837057902749319660465490381641363644801254096575579985695750473874455675470525788039859172915964996496030065089722875771910749630417216676679194714403707586144877355638711272236554241710402955638859082004641223962184257937979733274461392150643659668782810231874839384452796232269227675132285066122318785140015462118629538821932285260472229090483585072051946614176666773821776142420690335216107304375497169554460991507202327362474424799821565419065584150216029618291454514090760547554303680792162688591452460755697673052827159233642900773249932167250624543800219098949388303218445682320923950171881793648606910293184176710913870592372222606543503585644998744488561909648692762303668006029260144576200657498471518557221798867496688436532317211783322142179835497189305528874814420191087536955399431901846405894696082516342192967719628411911715629040933145831564629841862233732407539881249807507587695292780810097873756720266087292807175209629304786563480554422884703347882621118925047571749791965392381067406113332051353664335433328749956140715425364800276768990528606470851907275958483450186958634274433423425117044352324292322778771085566647363870378107982096757307587811757792599430604178064556115853034028744257629678503852662599034925613158228503170635842353456392526578961009543088526547634706290924459062499521379486969801804106254786259938173784540443945500919930602378332043942336960106777958044718289801936233981992797038628335158393553630173890612671758293040712775852405074142653664598680460704856300344683137047892753013422138302365476966627573311172912068694458844389902655154258189189312840885841735864299387733639822740694545236046852246878259883480428292044925160997697671269720184931518802805459398792582902500961637260783944662681694520424749779282367980091803629244205001677944506829804119305831518135748972319962365722416044557372140278334888385959118002589316204015926646250797815208982286239045353593862942756048947465347137523423803080184914553255645886089630266646934882846622120736660930406098354063335534363051629689542941216962033649916126890991416713595753118852957390248981293302395745826167448101796326105146818785303965699057055880513959637809952098510094961063372430995408914489079467929180322447894595911108577657088345243464399006678602742275316239442830756165320093856499661738897195292103262094177679872849635897570865580186614783352635215743834070862978849862512663536201317994204579574043408446159628451139672908541507247193735294035255636808456738383107705353486316805659041337236427992101962804336752590481994054702084070356908556000604504486252388740168752971703982330318281122393174886956181133960961238331426446962487506919879765139634797226569871853477666762814731781956486921948716434317479012201261906586495276105463208487339039617955132522900215374493987705762695479879319761376522441308777090350782223401389790864094467096246617484390238741958499014579774917239001423951441400887139211273764684157363996201448960045570735933675476959869666209714312146780689300773740966749114074125845611693730905488434855040719338944482046987152676291156712293597968873977066609338847422358985744861559905667474262620041901735840550286421821101742766943466378634004693344718274945469300348537710592350433675762278746701318751119232979322191309644307363182514813593737985041697548778234482015484767683880710598577222202433194035021402352139756014922743444087867165033092340659452983126857931631753599094635066938562666907702678846188252543077513462959282037821242609117191106117214825835566029840947317703724657382918708521174992082655198227697475894896230231271781292317501599667735318550068423664528268220556272028462702632014050128790424758817713740581250663214152048139846503807036151428224850410008763578705308316242414354355135324026418654040046728336800367749875958246969538009999086012464770383811468300904588557494488059863389086284442802341431437556914526362929614265896858706380138676597542499618941884154588760296502801006615885932097648139881262912985083261054659416610005157752760699129141552733240863555093521955071929737344404313157479231725636704307604460017564978352598390147112354900229290530364163009944928908967834948914731642249853150374044879722895553107600805384953190165085556583512627782005586285305687645112132977423116887525896835464682164663214499762986599905034562232226660213393108083874233035387867057220550108396752234596999634997611102275395825876910375614799109090005821173717243009714301723058535567425573351262006200302623736058280090018072616047918180511504240929251868701462004385757915241616047967606685546138893315499127899788714775444165536564276979143476868300982865771112358830238534823390254569182882390583636893353609868187683960069925316570118665294296742337899095978987547810539909326611472148639864295845926767112653535570137926066579709300265275895923188620077152670638505965444532480022411280795379983430851211254297607098694941052730653813212851792325952376597246273825440605939030564739853758553493261623451387075384917041009416162804588908914512319162310773426908521626910189732285966404147135272429470923038763251896167130200256558534489282224553927179005857674388640032401822501205308618599935859736135111162391068387768450939252583366035605513301898329860372944423289120867255949010891870159166163793095598068239976318210885182093077975915916628167864001640120143968672196292082744287867124286293319487608409722554617383908417270481395474067331676619689873476725295288243469654575390109255401397292559829707297817033693453828511093508871015925205400271875325439834265993823172396388280970525633713153182740208311871762184420825979819519646451366243392710276686332385314119550183703017970989872653139883697455390427193324038480901252253055762002747712928167825324284784929134706660985976867979827958173439846531785647571449713574930563494939746382445391865195463446320257192562022337980289116299846996696173506239286011380098797884458147811179322890273899383662169578660934598586460986098295767671740586126625611084766944820626548006426099067416843175694299492377351151097315446208811855375199850760163138690418621527438801432941529302048946483781113358432234068738258188249657685720553647507004242461736576218857133063685532901808575440421985407315690815332556735036839078405650987041293458106866450733852577539940481022835220550407097459434851486607684079166587865565963315139818936360790495323057440539693466943002000883228488996935027911233101866577923864999421671569366999281789950883332523638657228568866442392398331486395344330420182660992584969695623550933059274228716862730788083368889742279220582603867239963386887104710634210795971969831895816961873748034708676692834812253503852537977239119512521430293302025701392840070425146557348189885629010638915839019422580423167238047888749822504870283854642369476365867762170558445020673638392358799051204200988733310387020410973371675385422428376869151765824037023792952239046352256059957735562048801088013399453470538969752936667847692285243494239191142558381990142007290805535093160870778155941760640775360008435033867495079008335686706548021555754232891014442515167517072620243633508669945309613236615031396140361578732802144160393699417402187862107523974895156194101646862894693522361055339929195540337009914812146200791741021161195809398908653143372200146546700960735010380358544325067585789462587218583726472151203399190511450417174683830209086486696712001736986918352415761638350968458941276285827504348726352730997224298246402018005489293621817903190218659937982664596311917192545850633806037407205867450690540454597872155166792290008224922968846127931874756176987602145777426702915773630615183541013300911744611419292501549418045843389325892417563370374468076785481660420093359314395172085781716112184563921568132005624735840985452031771438012098007224841739868063616187872450865514408025440829167084553322484686112348088554657366778146569963866928207912036567824669957150052425178561176840691448025232380779203837397519665951890546604039562560596026977974641333149275210887692549672987223113947037551873271806801345187529390004812081481352717888035297593961417162389022941895559199768678974199403895618445894827536281373755101786413119783077606198424802791123769208511977597792292606702810891088859983320047888111854890290337740847250547262986901646633856491304786050842328832610219213731679613587544532945199048691640150012603666299670141349180115842458805738772139626144465816513727049246521340134378130861943626049033978793386408332692558357474656986757918789951130964022902120166369552387024433760870764074967730762309709417243459408355197485254902469466749970372588470641630195013792449208146210536547420650238809157840422184354266053208144978334660496570194122809156859551056449356363125206217232462969827329835385642127443882750224040271969298996040886509323173081115415674483308065937660757591581137246835978563293031983463610969978028683083732208748755960413939169978923500968165410500493229950873134991890728068229676253883614406513308041801795858591131036730931689722431346060266412420115424924535248208389748426841757019437237721212395853136639458302639163102801938437383549899178224349020784160957804985583153917526125359882761396301862671836206296173776381193600392496381464572654884503649293791951750960056099058848667154573811739531408461545530606838537103127080663774244057885305393508367766326982606917684549346347120928230187940199504089905975816520676034026076717547887946012140589888036221138537359437390648749633441604815256239796191901819106526351913133046678179256243319249479285411406884472187027826092020058704848910023673192808758899796681973587310872253925473210378988666576392238597115867675957826433104175991733259331308561616786970438107242507582381747897358730096916224536673734731066791500507824801071293371321888140050054759637981296296423597603765281420493123737359017962962513013709656459169175092503429621824434247258634519097743610100868599375801798016716373622934359937889206612046364955400031261551149407437938664170799583245228095286549552838974241837900017134897749706468558219023081889701544325614406508890856939630573508859671544171997544922281466724266709692027922822391047743054906813600734231738012425916944935079064570574682043687333330041538594325545528761776320211495544727291844979433156413568072687712338172500450477158440438507448929625124467967315368317986629894578372021667930176310501331334262498668501375648703095972004786455289812929526446752980591591101638319099242111834841466844647215536702562157743260274183616119184971599949449047062596013765696110803745034867343674277075686469810031235698671183295528233740424379516278009333888380757153702607126834811231438749992518514965196666101672839035488933614503093786161804983187500134047294571041459858168743547834746471677290666996505404935186855439663974017751499594583575770948862676323711230326499609839928102992443854739848279612150265654739863475588084343107831324362427615401019586686591498316749509622704947378816440182604005396591906006053847185977920692993850011208093882082504776349274753892062657177757865286810646662190651717824232647377432682540500167919458684263140283904358912369805121159680241785415604118045213066029568542523030851879909232773110262616737789913694020665005112809577545644008562394407523377042430118658825465054042674230495366672300621852083469754002816496120988306426435164232290557155312114666418169203431997011576534282073621875125929405701821421592962891984931584966218523338047897463438429186910201786672410811460620037825799953983645058017903915257315329815983697325216097770306110558275551508198814383098219286537952675226476423737248743304723566869367077821375815866358243602478429928023479923994943425150497777868098830395925510602801647928652710743354004006401065604252167323249393806066396880716377687831732187681675778585233716066359572927158556116584409736517439110943804939273117358884051010280046415137554996922944404886871769349935038212286785361518560298675703777544144972751328647445946561908946614529117948205850903647690931590117546387182308867826415504429196446058404527939525346504615435977509685704613744535685604341241299746330538036920630173546577380687443350947050075482410859597357961679327080702172490504677238228167505961188943171199654145334472393649087723901425133128328515487541846200045841925007373377511742039855933640271919326727133296983381167707048832803186478999523856867167060211016084067068052308297461555940614260554573470005488998001233239490219821185340758019578134066481945213018494579643793435732545034016234269352763189640907799657684751376495034788928761709730447366299638512591652444572447660959793288018636199163931240099236630711489973617246323829579514499927314758884654852097681920669202778054220371068952100029177290841165712304331147149162367558595951343765539283439696083760597863232965714615797660413267683568329365046624215958632734065786821079786623933120381485921767435681955643870287728860459045269603098395557734452482214369505102133288722729603540870602339424725731563164385401960682620614894533140934718760258190594807468967540034116325718159601330623615918792883986813837263254152605137017719805030674148561600418542032101657073196414106025611656093355653142686582683398508390309484207106006619915303024258122691480738724017873808002328499437077585867212517708666565400464623780784727624470807877075735504946358214233245000651901670495740725378682125886168093874975707774323300869421554090467484295961095750845363564659519858451936295145277011874401474753834541783086444773026829065350586169064300769841460347784415422097279444983885546006042650715915880290787589428844740840563368168466089226042697636657529498624218416545759056113185972298881240575818354805935091480171141592839667727680011083667064551403912678648492862137296779880035831882842116154347933394903074267040231239060321625499766493650170512220178216725456402131464184533010037617873951396937178689516361181455104808266779247385730396923245413162093863624855689622573267896977377988667482066299626957069706261049028025004314019177996686515244503260353685781277378571861852142206559244416260813998432264105694153681470637495631338475966728659252890198705370054806616129871477800179017668294387646378748691745554133093883657429676709890339654188359047861234303443750692738578807274576697299259114476255895644321260103443681354390448333177711941936266629766626827164380738377052474255626255298618966732088047724004184190408251029864414859803452551662416390590753663623239761222438191728215343092695402069203386131657370050466492917763111582285061764547388581833706737965231173419649001497081532969125342355879081412428437496989173106174221615045366442405368991832397979953518721621272133711450632289485978980597337224820548516696205840787745125479592228701881155260590508578885419141831692919705589369769068826394230521675207940696130702169955694614233835312847125745718542534114993868206646158950373390551081094806128088648387270641193616826606605818940322235618859867506493763376948331407367270458059486122215475091808712521771128651397816971589025674719883409275912190665038738795260794470387717576957778948189812234006630586081128718861339168681921453603499475805912085415870848651416787515234404559207966834560806643588646802251760454846283950087059210747270019279375040395552495110811718742843557813514720095673651838106836639040794935160553357594987807505833870430303976418294785773508568437868456770502283570842721384464293469210417745012780286425726120138487205851587782703343719139881618196616876339552006137274827664357356942779641475804412718553572573560734296612691119965579465824762384128953235201031326324784118659732201649141475850971727921129897879858036591143112253454538922701788896327685559236832200229760340169928645319656453443135758048363369991996559872909088494794031959880173733998339933030557616422738030056301484611497210811475840710703881903431772568296407491680903885165473731434215931861138245448011070099061409421438726255600048259611042380526243254841148224771263438427436644726797726980736337534489986938560071992052715812194293376864906191475274024501369484297319605182798176292252322886001095594607677251021890533170052322360243011257639741612522749801607579188051700477455661922472704240178365522998055468735364526093564979658931851257072768484512740579981937575770940890815299773184748697207043895879963433290976135290962537182299100396151289109978324288408084797453730157156287081751288353040781919433664498620410138479888461438171020068220356224699895046622612473857634400254185576356639211596877194300287838352070287374819048668584943529710938675028182772510594940020143330001827506079922141707224964393278455826738223347478637603062812115280735971802701914674307147713810718680634824038679401328005268633969937335153046409161843047007440887633876837192250551034654206360142351316599848813829186978123430951354295923675792965137265190731660906590661299381868523648809858728794256208744105088542344032272656394347184074547966411514132636421210941690647138707203701964913123563621735727790438202860222628708700705424568431131445201200285232571838380694058191501957894747453093890163228616650631000039150123176812109998629746838385203523157049550678423572626739138370696543974063908537522266006317274871964320062130569939247413378438163400633278775931648046376316560419088920053268992278477725819067382284461553249916651284129794479213098776541144836697918663787071532281843766780246557469365345755241032981992561830249029882575996906653028312865158251095310143071400161391182416507953688601692638828045143260476662684267771952017471214097430168621970981804041734224139492580820577842978384178969839890676173319948734567488574957518262896395285124516850756584153846299298284204679892371647726567011600313904744220521158316208363818069297269954112234933066635903060191877662709783248495995827875426898808079396907145485250600473133388244236902111435900843747361572037198930457395108962387010796321103246882723168614772738417303118460434422003156819175836312676818981095067366237014063547182875098998831741749449451327056162592013397466337065615091994562868147270629008032551846935400329354787338669851894208127189014244450461602313657458125780443018821473234772840798611092537331002150227990363142228361609623293748441292726391888726217510142484920968760047800373705990207519444476427530514258199020411418203848918338219159457584176086338060189718700860810922773102404902375650394640161628727212471284202628404704688507755602392442193315402011758820925829672002702346485218880813666911839992289862415395533098240627862922492468681256196430498167543848792752653742515809199034512125845254575484580221376623087585363624368772877462556745527001256349773056526581321405063297096094884461602775244038801239105344786933705782659085198464761876996691310095778269337646233681667503785442087047677590182621392410170176683235479943154752945268765089910625442703699165407520749234276206350013747585082434710671308422645277642641258400420336865534007683785072501485303275622068029631294205122857272262688492686145335988731576990297474206500059224058278448546394127937769919919739699944795837278869361533137445356292748376155283984359649816123466324040826003855838478889985109933183771020011083821857616935663920807218027581839827556358131720287679655440173783700970883197435564559591024615154746678844869242533792078014464080051769084454693905653412741529716701441846013601381655242439381088146142114695943557095784801515769579282660220148394477586687200627696830921816173063012758567052820369662975677511701530922105647859158702603589021715016454880078535022400935335958875055313255162199224888662141467557205013902397018425869624063858240346413167110738628103593609139410025988212727397693620238683086469637114751345628195411513371409609216712895040313212588953840660254171405657686897631557864555055876838691965595357908164364553501774575157837699834142917468701815634713456746166679704608222897381413180835934909123224403719439648222120240026459803399663135936568669995652741440144916523725642723561509427987849836983996950487707844768308948856398420426638791288866331863801435487951327044903342586860128198289472654649525969407212371699707117581143963757370703562692335356710444687986182977578407167491163848336507096615126259620923544302759560693601017498854126707711200896874994984328532247803483764740403216318346853346709388982886616291080036451515772573173828065741801985218478583176481931677750899276432086887050135468806666784044430022436675657438640940739503813635283344211926118847146637719983609372122949304615585225637180410601088104134815395195822237165206051838118507850177429894893848811350546948226488125565063989695801531463718252631053515917330069883142357660131858877322798193046581279550379085112286447809764523313560874587585534897584587035018076054871361415619903337062772620026962577394235812095844151631432973249432956306182701173870375599702009634381940115569833645748850650522022084652845990505725558489179024215813130215445082730534152249464148694188907148144808807130022692164070069191158307147317035138469519735302306405372782458620944783434210235870948240669626753171595529142223633557668411604875770686410016740409913065045968491910433578256263169366746789729326913083307120835768217182121230957608156678622458483519830707759707197208406296001599490864856644389105527101778114196898811434077094713207808986444149087655566632125588555736565722656108549491328539887927212109964050836569149800478028162499982343928381540768984657563408435784456876299734709369962445048988971220135318895309649402407080226619885322630118878088917247258726943461636798614713268377156683357824332685983863587620816135090563331212736620720355165057736380677436206438675488454789911857313411589000789307682530264649874680589759639171065950305717352426327870138733913105755634864353275363626027162660710752758062647442820513620239058711125001405070077346894911042680288065619536751313601632322639635676690487991121944687575361748029672721891954582427774180934918557366309254926445717109756486224420144716239760480145619896825357985584457187173571378654081760936052369248268239460440511607693573064139966364517237470452665616265033421033639310923112309406427792886118347546822123822701618708023317883450619389123224862664976500892916710846189528614112735469809472496391917096952996170605529645453989390094713809275703648888872103889078310733237768729124601966245503823729090748586929541162382666571111095248102078262807253640896630863059648352013209814890842860476961219810645320747297072002831428369377148929011710041638127657438952193586201618688738941773176247800824097894275651616755816750187540095553535541584620585139948107750591787608749968835970194273076749730528005084437243772923849239018359458633584944869162336676018804710082418133598198246629704716711655568531799527090393901459193591418226980087991965264998778787799357238252448330216196326728117640741190704326608960341949618842440674825834282157293440393813272786385391205142931559322997689364064632798436410982310380035949295665400661866120489743396054356395414960118701895928135021166943807016850845528708245296210535781714670381783590487709647986450970021634073797377778422348367926426925675028205592072509746523055870723832192284540151612664696033125399020909851753680779093145649524290533456112841999656971861152537532871119233056508381486444347393654485131145577505129041256226200435302991007270148239633744004132984496359738371785522627278266287235443753306475683608220752293684569812118594383918475031554849875427443731483456526687161887990948372304927118581235571690112978718036070070227811813900080476015722917554780173178034307103248031105358669934972477026330245586108212629577605778620280665623176805460582267734984007379686675522168102079733087123409817410560197935597486071425796279858720392039075919897211196569265856800489148427951131177636687298590240174075487508461750052397149963766133807052547038945368189670982793359230514009454061766462369360557611233385920542740661700089235222793861420740370646506567252671436437485935482587644796884537690903298071562509387615833343888531985380782306948250765988235536219567760913501083603195791361598527519579566722495809951915919978700367092182527991704574595621641438347882269202273097272839923651160194902765227626613045152335934367440312914424339446242105319112872803853763679718659380055262040145174865437796161709270716248188030421449816366188695179640694689408276107501041016421177273349643874412523939199432598181919621617922076705374436015814403705765532121201021316423737287840726446971630176827916212920093062775931377298333580977152082030791788384571834873453133236116021558923313304283564962000625212363540886791373243774639576199915812433404403143576861914803571779915563890273486000071954496756728139933962749536800673145031833707722620401161904456616659796978763988989538490759161923823081384832368740816962824640882547142838718359809520727400777088960507396679965716431459605695495884384716580078458547511552821663777401688777009507882864533196033006840204327898517883076728040762102534978041521651777317837031371463351556622871877008060090490485046902366890010080086920451114968050411475758083234549352578239605792230753006149671259711943043697281977397629877290440270473263427485520051208233105178085068700506517289056423189290036187465286272266650028587528382550423551155608633096921031471886761603231869703109233859173848157609004644476701837291674587801143278470988315284668993196650984480240774312703654025601539512544387707764841426164942637754599382781914771686062226223272088222845593559139552140728221095749549740402044236491919423060959789543260533006530810740058171609444853971484036967692871003833889636110763258661476387577647915460737166548842624780356985101205038657985962674630762502783146351839321474075078532396751984949396804446186876657611680595915860501530062008755801500532116213163934245370125965669603293522981188571886075293284388161000286756553908490554014260206276967252028472271846799319947756282791762002419145011180573675097431265551225822218589905637685520444650148111420933774399586816835331257518761147040136258621435927176866474812223045998130928846234083495333571112328405888167608726798040767019309630930024823199358432071823439733607373982570771887780151069928216832314331180270865878320308475976399275451456081408506898335645999665898476247136914215670922653912307980697324791827331755805596645747537182479432339085161198174116815923824804549147464850359308115395204901219777978151041264329890295397454202710450276790897345348017495773174754555547753508771421431211970819657936947677026669713067937818558427180482108794408359985917930871936445376561717642360180579931343922596571366412889315996745935780963240293276237666371735541506951595382948122807213035093980022009533369112588679733292322264068778912510424669615930224074213734219077949041886758600857319862464924760080344818837312996063440972071371858684584862510314765082839918192105568141389560374248238735412576127337656388149428118995520170473153776265219591649670298186422787735851474738366183114742454973629819309397544633823119687407977029368432036874422969480604572565421824999694149654983396195623694938229896028510687705416351402235182435949210375187811135780805933934284930624677904985052194553121695685755863076411656694579514626340036131029711441999546954847351642652386622512664215139751633821854200215956752063278469734654491258707893845029631880452379925019397000907694523646693259141794853333020301410144260735803788613325440065314762381549508454930476986132005850547027724996339909225745971575927909621371715190792315919904307149356807577127832404364442780268175689140420869845585867406678007572806618174941382761907879495214552765000826836277472836001867443320094230055044223711098192559929998422996410549465127958807962882920207568680816961292767595616972237179038430343120851015291902687312339461603339596373175568351531566202152481451902366784322074204051935225873666189071222468834351160855443108986119285531436362267859284338134316963913983010552532685997676287740262972032168996445186729506391225889187784556002747714332446525222604696827893622720673247967431303132462047320285871071032818769415424482045441791621991452177154082740149872212134588197352848140486862377299321720152285171370049452769815643245228347308212493307093056837710508827134518318926456036589040816196848864269024696438411441532751759374004117857509015389580571317489288804861473826613869171298162367331275058670754757177643085225661136210536365991909946388658797739135119453819517339397530746178098406555550395724151524733545286985723154487707785390986782052720866173614811186976905921461887100953235574530733671805909051880347551770979222491903220407258239792045358883815613262714271895985318090786613406466973891804342738795096158825582890684825069277462205704244741267810239116327003974984967937902455212747157737265404221412682240482452407412654540025877836678534313967958153664939697783944368945445540883462895370046935910600943597034529304589900110256452053927829368291210417070526469566650867465399750844609336619546270744578950294330287085866717913228816243744491138535867643200186522845195552993931341761369087653535910292388967885381291548454038462902841839905017114575305746520552919817801040578701678697932490922815867545912317514212603616928032311237310501923563624468358670703506352582362391693710974813902990339176067809324182586453329085512318226171444655686705977268230521577369084292292472166475922203893580124209006976196774271317651641620749430214053766764963950516553597786743213274905583513370058146858446907836137840635754757415518581473057866356032923389315009009510352242617259293581440537147575194560057629315725194521387756228092486553827757635167355216662891716959239387221266561048394096802778304405556712148490827295261506295310734020243599287190218872672775306540432185472777964189891892427870904845529562783075840666804301733737161832887061094734543804847402355001034524061291975107400210751481996524033968059854141004784469239068706019312058491884247130611987403496911865058912006833365740102146651234096956445210491470594121898210732454195222694652815653841493768188300729654062904776700323582529746511534680619573930301466236959333952080757780134576409722104447163634858905511654444183353754098063290950489953384107187101500125856288800534871510503565666110591393542698927182994882587614760074493070586135635896498712564242156694690671974717901931017319009118892091351473404455673179351435086849269687293332678659881691836279281106861257632244207920942010366163171979865119829816064463872341956935726757928479134747102574596444403682535169904281323298511408828532086258592204141801407324520022829594254830107768271162802953092612536948373940861960378077845397217128240774871929219728609920777083130189256510582677017771643809287400657546886893916969241812274391395346423882642275486297619615354893862311892294101212334648642077028601319203893463560305529137452022345297868289615938438203609993490062067643496717286827060083537921207490207930403111304649897287653198400176530744275932772876072914251075510661558101388723780153414921249271026422663137319274507218390837536974951192739926624960543736618667502085451675945992913874738101590835744560247192077378559635892295231372272794061936410756297614210456771715208801627415055097833052341061651115930176404542855926810977414025697542077611546162835438904164658202935765000515137668585114430508172637661785787992687562732901225068083199179472029575957938427364524383715525089255730242733148549440206528001164484189676047696323357530430781576558035787456532212309323201796408961364785206299266330006446130444393318232189385809405725418211940682612226832370248472080576066940387309825811162945262577394250476151237702999544596824535158616880875898790269390219994279235435373199449069615271546404345554631104955354110701036429196628853276998615244834085544582407988480213195664998294395134243178171166166021155018104721048366693833069981012524819985553363474623975961511528223443623880479757787624278490834359482353992039280063431844317987277057639815929905526887907533467131000078607750430864656853522531278735264257343816624302147040622686679287113542509653317396218679095072768569847722400890583650173083125038938887362333271971408628095800199011857298480068172654323529503969386526064064461826392319156222677439334615739488269613959852500605139616667099068214268682424892153024572800917915444070120449938358235115279345170731782688841099931240740644436916128305150435586100718997748417464111952560540629952764774603433307899749248497653242529507845629133246799239353571411082022186996819948164720416089108238290612161911734339403887084364099008169372573617684436662045938119317535915320231739374426709307062525083336063598120270930342707856379423130623854156369159750274964172601331082366180022076543749903399654953491482454287122982960127952034816046005556152695478675552831312659349653059432025209839562600760449210396605434625370295579687362698718114376050943719295939045225149198371619664300041145986216519145169219265975193715234403608303703695432855348769990615489274348079920402061340290831709652778059044584271845884528163189246161276817747116296580299300376650745772841810460679365902191521050489422910902452120669928451038905393599325740051527731578244620047229812495016745116980643518202257605291915530418745993177130793089401150144997436321026241115077233920874353874319247316194752894973059890438705244959103635827307865082951089191242602985071865034204285447586278528695062040532468088871076981316002712146644714959622280779033405283480443707598111280424168686791132322762211126414913592729290329548259404055484845765518024883750240202428427080235655160671936994305093005398540183785686232319785069839753486713434581990788031908960527884970774352724603385120409518838869692903352727389689116126680763720907767399645888919920958515101527401665982150879480594191841582493857755756593805467933965862964938387973932705950358193998707854673992632045986318068183903966755904507848159955551781734179306382377908810159040722341819070190037958830120485026989271857376043184569746703447666515725841197651930914327645382994389281112067917267724101977474880574799337810736079286507544722906515493963593421104979718206517678189904229650581462753681807581638651874138328809467748328174429956975673131865187625811987156551467710057937130109593865474560809749750334440284541327035628688414897115651950318465691841100302398748868100871583108127521978135745878200473410681948595217838657408335434669967083629607726241643434888227080622830769488074487856187908706276840647428970122440266338365317916968252606578538898181262032833680841740860362670457165233985138911864110882848530302554046679542816971211893827320222947242425383352407791835689759487286046013001839488978492941398725356829533852409923766599044920372535978405217650902401534549666143248877926022875257051064224107698995710823811481918384153877211607975946570345418902230726091570707151495664815623884757635439492879256729380403003108239632105616634371417258177987217801368552943983372166893884797102133152820548303504141328453949060984339251643588207186837826160311307380660571474848661635656082793496003720009604555252979542819111621580766888863410468669055990348064159790722089047432562934166864344448462475741245387089109538010570608358946955922063410429539447395140672970094891610066103362731335657291238638124104062012192644383641812624453869344619395042136034424198565500588206791329701472466675852916072589829380906360877477159663135757150626020963372800674720505016995654681159629048424558064604573486515499301189988263495898071860012250286035517380115575967004279130911065134221010228917718546742937035348851484914628111015497894520015781589006774439965565058299636110568643153657074097937822324457968997994454232485300553975929359546347122670058551735563838364841028447251038891755283683915266696136334818613986745064019759082337349172970361380833440219127285007731064218316329000370241343815990230900551521635114345742769494151434824419186367147157373454753457140979055763203598530915447465618806085228905915723458951330409059117626932304409885856860761965675690977240536808848221098714256191033350841848011783032292877301093583793695629597565500138323500022370223027027730430572082109814898927533629210191971452264410061713819050174396126016923215984730125115134798941568804145713615674058742788649652674489323554207778991896376802321449005562767480884639975587720052360662641924922876821167726396222001949076021110044220505108362005171127690934568418161768257197337652178301835826851252626440230308648140211414921673734189745036052850871300671637757466728716752323231926373029841103542543690917744024744995390543993432561811737682879907919764438985446606152711704443217694733736948193221110528827970633728186288657958697946948545371825703821749322534902325028715432040738486111883619589455941603284892444018436246029509128470352550249360888076750493080672548556879859385444047076928746878410097481399383999178547587109648838640605102994991182675411260721826220278799222391292460711801232550492832201886648727044463729131686124416347922013431516598223354949152615502075232842216000593805072794072858096383632379411658352435484286096134219052118398145925097362445381447295690999904229742357859243783485811174960732543466863195019553313245842767266641022010590967778693696592559380847279480750247456315537739979238031658155884010676926285990560131563398671247791963196208864736574394691879926428833712617336429956985308719396471733227458067075793045539796236180008682362509103867781432496365573613735695640539382322998781946741787809900974228922266936152293103326627855091549511764835834726566564384926391127885544636838288644387876050913727629792828014094517626225380188314748364650197910626422912892095619460200827802040564085845034009780626008069033033323286884869031156215039300477793454845419842029747872911889671251250040237731188400527897156165003760457927485817506069350861671602467357458300780650636642671942578505042076635049463567960136496326625785631411701828158801271826156838632410868596537648906357270957636610185270914015591312409430197254304252333206012255863049613728790484427559664899156167237972112004201260362820749567053455889649950616121888228245870100201698679836662664488618299732439221965960868438612575299897681357223064210403919684978064063858520219877304728285629444926926667094903112772831543183452544753720933464998546592571178023410885728884619955137445118979874521814851846043492091941671740033243783573964286114337978279742452066207874440227934382735164528792898016975476990278027570393319209196510569066379149058335034939914665945439596935149431644402856652329540819075500330541484495536712649152604789972577397379481067835078578799157519499989813193643563149594100524285721069240969812364842782625921369255649969126513878134332453373343909744226489448953392374934375458915319533181443009088092079459420831453655631378435998471842259853532553594471074583047311778242227742683513241958762699693537932018990803999862406712941824446031057262943585388914096850974865634763968426544598233257825432321934469719445431200073779561918159326972359957018462869586379180846873801284670691385790528997212417555992123745028040817469299592693334620268171317214943487298900000142019388796881174623632197006150586937556395926159786002251533144437517157874339600521881741546412509076796273444442028970025637891754544653242970785923407581986775434439404597209960932536199985878954852053777886494311846475031004988180910288044433168597408656660263442620424198175885253505055069088988330308577877915593288830421348561407577087051743856190284174728725240826570216549345532794865140751767985060530675503839396750814795628404332593135705083110491609451008759456278045664464214088280662602712884291962866649542897502037286400463991059029430799882128926575120026511298964321548820339778950836614484990136438877237050931365344158422480983250984417478446316646316760531606805025613604140303595445352813704700423325584882491055772041225474720157673986467190809670918621071429637874022732319307800393088764284525990105395648602026414402895107370759680698093358672539037623655147404332347180109967977183149854624935450176250116658031446726544166686052013756056651457258706064294803326605887193488553035257033991925072309765235934880088534128315122474076156523836457812866432225119385710170913935450302277835175107300527405380920780818011502898642810956923995800248289616571327610930960295815602290534711252056765087608967985487902563273285858308436866628435388471852837154970867066108331434721924498682931809624388991483647101667629951651736773492361654235690613700727838518800864165652982077120018230968464748565941267556149907184974980751882024356019035936643684609859403904223892303112330290451114842803973765623125743012091303348321156539393546444103007732014416077295148889101040012988757710525301729422387447726555663863966297422131142007785145757947557520600193320433776716519259444165441206534711208536633815582232548914908229610352608442640702142714590054156296974014803322422291539377112325117667887392483969036903638170482430261171651600472806386783565205534575670208111801679464012399522347654494172908064972890614273454721542878277566127115685724137410260712226910421294848965327527488955392174638866788393628968894750945585799953271064988764609831309242947439248539023081377728854919486610746313334285944547804662917017278006245920547790877429227014595672442560516105378893925515511072599347336689194467392508114966374045131077372469848233101441533001262929311638736251539295570138471138480253002214223729706130133286914756393921305805377999194901713918064438691370523814656008799435219226272484862670640814087832428943069960317970267487881117910267796015096106370903329039442396043774707052531030328236220724306065570830324097627386602731765147122753905113313358421662762407122089542468308504072295693596688432025232341909809691862300186171912124202414900292420116041273665662219195945550705823492993349606736760015867571775742354615711446204175834866011467735128423396614462490125033781200872517063946828063520299267196655758456585917891787671096510216083728694789250246414358813909310206718367121377448294454343644909399501921235882981998691318309241840876919276412526370986600251419086742295573615046130593934866574047769839999968621080481707686100179088628127714980289557524101454035928990366701460228949688340788372569110664114996060958894642665641496977346937229706572553949220191493401079410181608985663714461132357319328789387200150956881466211762091922814220107217657245973276930843834819822833817395394068432873878940369510213481934249685136260886877792966984745388151366579626649937430827606179234807790079027332416442019374164809783184714540311998749361028643635411677722206414710206550494336495637170732133482493168812973003049502750283252246236659192424081898313854989230486868865716499000375999642417050978837925247984237203161875320452972719136335495958376596836379957246356742690293805917063260358811107880754589647697680894545179413432223180754565202230084936364208704103219913514342841112916325153126643472812298068590579861013662604606409309002208484328317368816631289811143872686949905824180692915138081116310624857000701928086246484318934248560288365998082608437356428072672569463318128071995871084281565332753846540902320475916227291671463087831237150096538627507668002690757945330756169965591433097883404071343758840472591532097366089469385552200659515258662069660729941252584603622935333007267970773667427916246918210637244903952054752318582051763479485010509393588487738332497454438934110094996588213403230822299794498243026612306380452795727336258412857438283979549424495682659540436394236376576633087053817180473166305941824080005781270949520908539217069661563152821800313529450408663992446330493522263557586948157256703943906177436818115576134929729631635727883358393679149083193753427049773960406966497894319588921356939186287017512425912540635541601954369159624018087000893866471829829746798591219483957985039190187898866956032733672242217720590430370522717171463720105064545191892825605857035188096007336384456433978826654667320313006486716773944026061324798635209834429791643741168520720638514820387693834031561543945262511455708054462988918480246074105957620743810086131062141057619057643188797477384804514346361656149660966209114340665347756858843279766187908342830054427625187270561733660398741503055783780314030233793939266218614460372338562590717128757402221223263088065118259439868552215213535274182808676248863641931223128724488920228586610599331902529858812342154375865769276912445469199389330975906359321577955732583404626671673997899380315798384117828550545769615794270290617283875025510801918730874165686607794089495693680554242605656046043969838752297915491225156244980990230340227589370566959463597004752536047258424495027999081834328290633291772843819336865929575304026121917673932315011416979709251063367348729258830780440390752675183414586769584984645918111204471039719352031666041684465622042107117613977682328580176237648352860533044488915728984233016687336041551886140409544686898556554004999453479817914204077377250667001684594157638691793392658097041048463809946499408711510562413770434527014565551214387799958931596656944380796043387718769109957155602224268521659219546313711331948768751298019816256525296009241907976257779901599796192636155742501527409391802897095676829141894702186565744989024392313538042040539567648648236179817918772038388603954601082991638590896153776185950262010048336035271748478602391792837193094726958246938377891819360892413843970150671376806245717118757139484834049623408030489992518059733223830681365717610794619189497362927353309162716281582167853206349876933939798570190498593277026540489433919006179813917382791346096144030646249300362272960125304947911793070812109454461563725961914361450064377317419502143510845193002518472160631196675571666640495325795435580800555633120717281082674448794130108626828015007742235152053932829884989649073524447780501016981128494868580287932557781525559565392596786991478610392273971524702323742337072361446826946246024995124319614539838923690384124341586998807488424741343600495463091436611583442255920164309299010420035158390946490084582452427874307362911400757040649980861949927496292028311719270093766809614027309715696544757327377706239425182941701413435405619505047767864315227116618207386722507081141459166915909653054447907694369141167374050262109687076572315758884587555400708885519276633393450186133709246255221954056665930484381384802402505285484564011654554241030745370727817927262369544341508135960971887522892827162128379005065719553278825923911093578812841257698472983946850789440433402415878627553697904165172456822080492568658597365507481851839514750615457147528999943389884261516201818975419021466644323531597005478481873173484288849048668770615600919805664766387534010338775038589168387513919401638162221767498557011919740861434539568833673730425022357041359946696431816060330875243585104624980651527306194535651768479846526535375423895267829076650596549153078872303775770399005721542428719835748792493433176310022969578518033351306476302308150443912204934729772644921618625455405245997006160665692924807722107923101751282089569533718593769388814130663522736980678119435368525908138617697089588601605673098177721007886950011903260584009069536805411038090778270777389265443023258363358337807337892214985915908551748001059112720395596143061561932277779663923250462662726745348650491749956669487461233429840516896348078793529582127545824234437123470215762055880946800794086400988410284974227319434155240686447797017064817525754666224456900071674505717522216298840325775519331542561351553018436011908692801757768414396607465704491410300836365576196052095577509236963017805040718763162176394825127475984210639833713204600201489587166925514389463797868126638949304046949633323137767462378980693973595132183777721038065754333415093746465254435636273537452583710399583053470020914734575146967774735157294950720069604320568823690379373021222902461540347212572001659656700570284222619676822955373235300361950055666720657477992947798861199980559895934652212321739181435142530861484274090015078076303484015125932146289387832933644076291912830537834771963617509386751897231332900443773899246953267343928547866902805202357286117872411354438520933431393139828314138152050255453616753691160048104422403818665565189994947627419407406887110257876413726113584839989745492852942486238619138682323419102691375167908299242388578713780791703843210612199414635579448677051559019488989232512022690842877409290208979463636380446608294427944367794429111363916400061250210558103780229706587342447658568988491231064379933541077499034050933322692789419999396398516699746534607063117115816199763921635010509456607312688447565232623978879079739228885431471092113701179857415903508166246395820794685903182137202886349671677514118365116569117908452797406781130677694516782519745844924871353647748691634025678297879240471833878012610305595389905668249118783179112973693039458383876712571820639026947549492226010550616950329147041363338666313711748795235343990213923482812916060939575714254774235883347424847522307580393223151418628557313306149118883698039230875577624264621323480377046517927495695931984520508059274472520241175656788968026030474292883254046243090132705625008451808690560853802684073768112898943401512394313615250356335395361728266571643379985714963813231639166059075975914584589221839671946037777716276840021321525588925369108003624853537304025876273412899052368345374576927568772866839804274698962215713911351606980292867074959053769591430416721238022718844267747738135761151856907906492367632541279698913800430662029500346820159157375267609514423232138920942489069937747122895615359300843732783845105124946596943038793294565044344196692635756937561056074411762902594558595735549141531379213581995944588006920785709042580764981310107926490883199577180644227792870135636476791811284206881442248685041267603183874339129120127850045403901319086273468062142062501539672525720739932977355928246914947182766194273339435704463029506680506608221144718218324543129546806483758435576489140111822704413378510563938509691608927690459201197561880465246860248271367153904975506414336613199415178284566618099889343764680400402911134846554218634510793197019737462762927492684681579189940166866725468234378484436432396709370537867016635570227498209112593155581854744403296859948053894956563660864160481059522157771736753613638729174955638208029694328951744497374716159673915054093808459524425920148544105012113622216778394318530913183276572909004559804919813648821892603661684155533176548750679045478798879005313689543125457379030597360281951485553064946662960931629181534140442974911692155930392647801820418639704115722107804805335970915424306898957163490059655489846327743400028956878299810342009302297832928086351495547441764777366032390542842172661314504240369195088258510256970780746028820644570147655541836978686461953800341677949148746790514558909254193262993965884697725046653429532734041725198720314774478508461023318533982828388900175007910067032207017431374448368185142366023559645597906660405364245378181784642263042979702148955061674580103606138144937933478984643022051234590584183598079791011609873193372386310137693222933667109421315067751569683350886985953592627624781044147055512930829025608273392180450815966605900293154068180587706865915462603299709617265609158941895731863919223458126421812925208856951130627553290966754619177860828135645774679810614823183057570016088076599148027187780998294830238809871563415893481805016204687575586883515452715476741974049841060042345629410854156221570169603002103092884717292580768783829226845610131683068973637651221920685261007669724661225430873118173277286763241453554106710202535311286695500687846256528104874307596304833235042682123372582987800822948230754553943088441814150709792001689039479748613491328569078751107856508907376185521740319040114286752635364155458708519668966978929805609417551857176151320042120462866973974694065815910560239224015582467603500817825109193309187810383006176214432807736234028936822927971602329933449342371817955298724735009428204156996370859507761830665483347772851354922280622188051412410139424000768016384547470982461100950211026934102613684284100282515646951942377575814868876975545821763855477449379344045649866432033596012078117897244447339474237423784931832254049263456298001545446034167649493087909855374433117512162399336614974232363666012670742789423592622811619657092893309685528515027829994983032606160157697921546786448591203721082008162865764358159906385345826283894150062258272462737241504465295542119646621111982269736699548710954271929906283402291795266889429136206241563308157767589231461560456798730641424817035659347984609283127961004553529792162600168236980298772598997225122218578540051387630729623300842058560447021947342992159681552675294172030902648051281952224076186781495304964608531916072484349134059256990521904969022213140290193995373636941899551463549383739211853929183403982028192834200589444395873738666294494766467743239942248515686509578919328528238258070602573715028167969644863091716355372522638724107040653101672516910351934975845602416641721968725392425421432071019496118663102255091367374060865712389290597201816556291872184761111302298426973502096286414691701273417447265948169947393656418023762055368726758392677418826054282338285203650563590099470182564082173663839930846884102867872310781198740430177994790217970838129717783819720182289101139871412447242981735186165894479466650002747245805414648860449374323635454180057877517764339886395971179529016072858245201836003561672015012805963832027646548774102158014488031578317235659587170617620003576489864286641810538019729714553476317871794076104261977717696440941773487571393388764985335242635203671258312224575649898998618674127191484263196009778918219622165486015057200143113536722771058224694608949666282062527406852603450896059942723183216968310460215946336281236025666766987425465290808478684026101011631569406436300344923484099667825657038524134607344532446844753329606551864443163841616760177160718544355891251027628263266491635853162916494547139940587683226540169505841903862912033562099796314413600425715244114504004987081589383622939056504975841906387630475545339234764599610655547868994696612013906696995108411118168622016588726677057368202459739864827245447202423668361224467592278480620107848906678576235159164561222706329116430785369140888946795927235538660265697190383985410812765098459158643736283866735872718549047637472010170244624812461967377530143184629526384387337294957733784090053285022114606390599182641159124100405122575485799438100543643558473045712622463439238077549415230450251044771574711849196774821701774887742473831638564914688159797520349493485350751103233012834328970380974099782757449542686215674122622416868389249377340291289927307696455057785501390870013118835389968049135016144273846146268355606455613788380115407012535351299824457593529091063613013232222850400595496446452491427078589603407327244133050015787931425169206333592830967591600053239525126994160558522590478477140475394788761680774793118079754982344532511787895233587290917974219336398335607602910718567157919580397182385901504837693436779993102113083259521675049376731298718346604075490754184391858667139179865734143758285501831746340186835729204474000626321127435677465226113387577365445228317902409095355998807996919254934398160313047642907253077544840144036332266650815525443186109604268335246331870782280207091645372759306574612299578427851810096864148238896267451074375211752143034613452754203940120461005642490508703089826698321743020235156291108813750657461657695764157493458307140142338418482887734205603181300808210029315264195250824724554389864001052075861723594608698574818829285397182944472028424387543879828152775959737857369978860995045198063258528270724863238203408176836958722028366021617323189439308873487837241722879277442659449321998875834332173564857183304121582062029798130972256584273568192847218442476836320026249090569192397224728841815790931849560145590414013361697380760651716030403893062304231254463530327085328173732915257622256762139817414007148614837342928785010328338233169569290300458541889054311867550813023256632620531485032492149606787773855400074504538685516116759663875462481393165834413237984971784807461384424199507532461078745097386874326679585691450841857324391175368490612733244450592704656563438754387328390729845252803784135878814915221465096290293596192153595517158596190731442568796426717477252149709087975005081048448155060896204634705445986864020049996165565902632393341996696154513238558405666050886358206688554189056532581276241554131312714908351469963742423107826124808960341796813978179985316570487775020239406305731904889518732113496480823414459605186290391392597676540087527648148040920831561650106135357337988820333901447568245194124436160500944712350337881069878225830562917656804084165476833704362171603170801257264943572658069171095608622188515311342001572186853005147570526861884900513952626110928050355961716759252843879100777708318642290715255235548227825385815099308703276042482433377771586372769527386035650086614379446450771971683620431623236367820613883027090375039768372170121221830043392392493210319112965866516214819725184895551542900273599034825332871257101276222452195559175761503989784373969930971498476795713038332491891507198513025773815714414125016047639228521263251729261700910416760372542745028674791244078157477760995512683763011431851373417008033578625725321407979120804316552546973017244402497235708741671782176270762775939835507566155464749275917832663633193743371516295561775710128828052985561767635476072421019040868482852977227056285044027516213959812706032553431968752853455564441106519469197467532986923105079306545371405737475656356316864884200158168157111549557910282818770907221858511313334771798778881904615927934550291966714684664185692854462050847673779576558120138720265112100478075212516325452603896568689961893629033348235187866689414200241488267696049935711024867843341239509319543728932420094815176236409367322398035204685200975363204221297974113458400614376837769277067206662554872377032529353518218459801408091559030238259824916790325738952260012909254131484801547575678016191016906499631891684763835171707137298440480512695797702564791861332682965794459379567139114903753658375025529893280181485307995061130441251868862894540851158061863996538371899711512130494248006476717274810671974206823707371007933382663849109797681705848419942896453087822035119758116681101707789216937184341111241416897358659508290419712067815110055856987972496875560644694511529998253653759321015200963137117175421899959333809764424818868129353187118960256180588400206217128588389341616998638922655674788819606158606958931031298558393668068869787126214843078480741271898589369972520763672150271435071112934688397541232395825891033539919507362141128504126374752772926405845933174724571811345086395976232215216283803957552369762138068588356392577432484745110404689015051393978748283863541357820589850376166802746565909992732963454121269236875120492313696075783417318090500314103406245150502596515045032393489476497770525180712748774771256212109659123756681784669232321967984037953638609734552613517839685685273819023387830412635933573848044938314847860341965368989218422070583556930396650533621605619554400773988412204316030918660830669769420713736922800105463855037658059984702124716544974221258974548795773554995748381440590923408813083237337033627558198118894250618594891455970148496434963604225437297458181965681599332710429723510531248024753608821238353098367415731652138998691278191786331891390351193026655676497815072335689148605935335399386483012887659253741109258976926712479672519179323522847985285696964235507088459788629710706479445279598546744957596050780327332540662173225815832842546218202377990295478919034919269326523730737887637580826699705568042895285631786185737309248374323765812644322131373466093434000696456672629846932160849877372435526001067086486514572759637854535462838384108830352840270012328442117686026186133216076387456150789954346499803038667765652128302344574061641349312825001565368348121915962589632863329096771656762712377813794314813388941058309239443735920455482499801145841196799762319987235009622035833923643379941948918110278326931149626429969343279770254382950060325653974620071540926994954895814634575032291121424463471935613386785751045389361593212167640794754940442856357341103929518783708630632859709281293925758040348927676553004909075021735907585984097270581006324471853794245952248964396383181400190125055353608861168987834567141305405263549500100134541741702095635897777864363929466545765155946303299309043703839423047201468014527772845860234698912965826455471949724250243490661600422103205619524732274220633782975260286412865779249075953463502132820668262250864953023698431809902833380747790561506691342251118678874883885231115422398434040721848263587528373599578084860723084332481784602944316078651546638868024469739775391930753390664045806315233987682343609076157210658469830236029265967957269669472668751551991126133105690581817631944090923153898463518850834739757959914072926713994663433875223580277426770380781741316138511629925303037338584537667551256026884220240558714834419694616370373635349866867504183718318114294439731981937771685571515085337064629756837749423553403336032694986801970072189970528559480068446113337568227563446617995237997577827655259087386684473520431149858338579248204008908700401949715227910071399817019450568885334126497152472172838752382972950636977809820484732200201925716497712540207558588997770837301688562778625114674732483803727325897916496300121453955906280087156492734866672591405346833392377031611845949342026262888152103443222973486917332229834828324397729522953584947110101436642789062737058657987668609913782002313589793187484095297649493894660509706485547284359124208223073744930575453005200256523329453399793680314648030643088837210635367010280657980721733861395312881980615544090968813252861417258239701449849549688134942058507720981662201292602575681560588704384455822805892212964753653616282987430567889528234994101887953135913502387578222073389451143499535753331773294730586141917433372968223191621513200252313213573260697082441189944199661215817820775073715480821919859179204063088805363543942260695359316648641251892235683859532719076918702814220288811198811043933799963947036382432278101713981890137017554626490036733666717255733692698878755347815439945535224783880904289682099259131252470364099159559194029110471645600681155328309237243816282974628416933585072711455614065726050818510211110601446101972192987415583631801415720727793008764808157540761242612298099393061299699102519851792772073618425401628412128610481041293168746297392664258092823030843735022634787923645270174042097204439113769205441606892233137018602588188664997854313625023617849873575705623790226126824583255355781985392509296546412397071440044781594924587261366282324501259936914501307886597844582193358588126868706778603195659701800551561637272543538737144092743693849388273358839407212511069784397596382000880211385969171454326233459899355699625046756938992520033173668200214459278849828738194728883440805195448680095572113775237813104846953762641986093748992051379761346294687848514013989509019322761255802817387882655935696699421715316545396088943000438881299204637652892720499738901188426280890611655297249012642878161183075766418547694091810771846302815698881090210009363683338094568775975046722046281840717461513823391049448234097542200799069346765674333260897302168068856763234538330022054939532902444986897682388832155451522875933763485533753989653547746298867564378746328414834863632208610398357690884132246378682168386843286974974378688871097821910974333262759343215182658165260992773825561379581879202165380866127101808454563907644585114943528236130754603051099466256371567122340882161163826275461317601161844434457630748838519914265106972636477558408801326961203481546585896777281613630763833441501427172410000646894605871347386011049520074325639911639438909097017020827722824466645706174991739510431746824311291656318372000362117049701117706152087521250909052177453952708835549717279776066473863698051411701395311833492090656291527116739675455784709556811831288174779575743559447368887670871706486606234632971579549995231684756205935015580706359920724053712201960175800156687508448859777242762476357693341328444817532480638722860694319626092189724766372415236801035566412839823121192540512742920612560613587606999183396176796674799185357273511754121225990526685091573863189689942091079053353458220204958576416578047890884129153964278652184945320921369145042058749936034176619269028871857503382453090561770899052151025515019717253524700282057426535167115915417764658822309479266192161682752432501266130299128170462795145804083312676285800206073655417882806013413993229482928533390136711767829334036222520425040703017748830573626147746995429674053050116319086989417311391880383504337088558528374320840555695911465952010149299494165010308392016412434759694567012118685730471622554030334955047369317473144015637034057721656202544694121164704718671137345619374809725302784005385665258935410653044340234140001568339929150397617153192979439019536611712068484615138067015243090989578519633457167521446991346730268272751386188953842626796604405858669402938417365072867550524756485234466391751259250247184901471963385386057031922591584849647194600078927893215573662725447986975671197889882216588709201979315795193003731030340289521532028989977050651484242553058020781657806813412038782561337035551211122347465471948134667695813435493497475292959397637950992302398877666366942552678189060897757624190942966753641815036380353490708695808649473171467758924842137111058959143796191362634648588014240838399041355242134752624133261136705029286223178424221459262279001437964557786522522612445345181977322090232219511565074284738817625058296427689392988642399271301109400226029642696490259115122093838236593462496770366444713770453698038744864861202931032513958608615912871467793890412484349280866466702642638043191221331629326278268648398230823725904952324303420815222607927391607983883871204864994175579150072525901109239533826521608526025216136721018125632360548553470019297047289262165269740952123343673593996590390771889594954411910515634512642689403115148759560258746442113266541674473415551325116958041081166494243716559587013885847433039299863524185137207692004846474530473171925816080908867068575983549601398547645466920018531500993203093906238891463000202221249378161860449612358831004819497458434753058429701746651637112091232386950268104960969628927126336165610560715245501756534660498710469560677447456646271366458428470236119758432732047567172453775698989869700498215768542238369419096550773422558222759864104295150523388021589126608584016297252231875445998483662124470706666041618642211663115178502446430428453082958925860810744429515269162834933139274421205759394956546206713887413910231480218131331783449038357381011530253334473101958336679302008686234188714171114126894794094753461985765266968437981619984166882465094257008445458323031670028344020313854421449698356223887884976802756825189077322662871949290391751478121121076276427048574624583261179348784387046652214276809053121134414657208243113401785537296224589473757575560123444935000668351771037242965419290889156284304463291632011110982804539548142821258765536255633050568212931448921121385404351463638010722999190112363850475192717736278900444025035815585143113211744094455509011612868639579877769619500381195807469504702680110672065095728378015597368852941746710883947061444733055966961494970430256036959406550476104545360232614659663514539183799605063825842816391844404887873126112190475284302677269639517662369232729183872008029241056847091026182513086169754387497182872146795113627662985452007930678628435794455341392790650538766718768122028665908413467678553351693276836000499524395649564124924176227857410961334013545719727417561862093670670234472578189397171930146543805559677544205598751171748217204791411312261388012028171848291036367481219585566979776595549420386087652505770806741259627600857017336251850173221216739224045684294538646491350018132548915138222411046163379948819026396559113051342716909828085495126221499448430755367962199100927453813172197306251327916161451458854624005385317424089761901034962694380087725859146015473645293729303548261156835589051236642116566373808961594200075003252608850274828461779605768019072495232396229227520225568531674708377305789626140142559555079271977620862322358259914125628257197379637642117756096120052397037048005413029391174757692756997811538931828346246404537159892557717215545796132971216214413515978592314449439271292087268067183718432987276137216752970032382510060630625840326502365814389258476768226954235092025982463931912754167137790475341968797305788494695226624916587557224316877744868300753473533257200006973640425018142038515884215774183771202678684218830869163236053019412758998125641427123545417581990054029722790098336303815399328786861744053105441705657911589594028733417756784502713555421984288359480053844211726442935469735361239609104641272554038922284880424790481215168698020200447960916855283749484306918155979324883624825968061941670241029925406727458312765593089401815394891970801476447549252678553949842807449074741079650050953821867491348823780616099133805513405308707402327060994436157539923115393368778419662885628198460918593031962265962389048075313211464707695831528006535355699128377964749174185551124213064266133713574405113351594663030767586113304708418654955904645116613876565856792466834748703101358013177629593644252653864923939639630670932409285215169801438279772951000878100854032262791875203294446187045598198877950357779377712595052268454122531008991256626416213011206150988194227199141335092072808269568666251603527803993100244463120643733869490797852828506184397074703027619408693443233303514984781556750679898644783141938213489478336836995160939385774880380208627823963060364698279411736276309767392253512859389281869568929640945987522347738101670828140718997388300266369817451265708865547062511574522323429333546016958697431181425640343998239053407220312563802062375501809903443336518788609249550495878195986846034243909719850508268140186111494098831267275938083598618183701593146890240174494217419819379060818762673106151755155981455000946116759752255856441539358077199503577528966690138394016104733527282767235513886964595561975306611768159898858608653106132951175286343522868496302830549426643433776871577088402556802832407893235813688579945760165157450078137763885869652824564008785496678506427970264115716277782440993545087986974597251091915957625064774407395047306133812432550060302835399684783921242929056916849570036107089567033494296256932417559100267507050277993203657286322108568525647600709569359398032629312339593638581946811048684059865013938598482652848727269036495109942260934213774441099708996961075914114137905014331768751487775761029267235026953788374793016640386288876723570436476377579291742220581653613793553226920730370356525850698597163670076725520484128972114696535197456469394797418797874066340389507118552692317783699836743148257214645321579444231874598795194931730295187853359799549237940943184203937977648852888900246852191361574997888010431200116379969322808881930872848884274520772696025152253249668694871729694764982827280190293733711059477069103017058349861319686760690711026520771614952467629726014551517477487794951062006348153037708095966546292760764305709744010976842595186992457912072623597431700942394517025441208687908832029506772884838988242780677275557645480522569000164255944201610227745969102243444211674299590282111418529434933843477178215813072861020951664666211293195359160328985133312207797801078577051074521904990168478942793173607462016607659438368088158420035558936221222686926386773875448687251400517066100973288287921295650860520817707839001068035835278631110454334231292564061976849080770018951816433140893208751356988992314922181771956025172622733711322392945998027248333348161054397786940606259913458424121653318827545819596181122214540548209424879675922813893586921213353790189537528819676413512060414710227897298668905573857855792166945389284227109378119926102995149062101881300199448042185253075209149069651400909363691781320085382962404648254864774003383502258206197211489614141001904496148643294053450605919703702585841378057515138444580771039393476320728643018957676773947348762613641241821746099392365464846372810298990326782653953028675219492367864092953420207934650229389118458402725745258194133712303120505445238371173248398990053534627057351550290951628955505821527718507291447491605748386927450350628962499427712438157120840751565005208471116468113817680674257393502172452197135427266859349675953659242237993938468438554284570790566043530741338568655661478216696826256860556526763740131086106560172751986137912982563013781197839294359682239168267235627618949025826521425550094532419676206794731069062202138660186897865571243137988249081081694156877371023820073636225982954366174346548290313695185511671110652461905645809825627777206682569742119120588862193172959027480488481450347956901836473843729494110592431640606540087877902529122616290503111745254282796203899622431575734789811300997228207969964186887288154132488991509207930291343846014759880477184130593303934008842225224127802894659111605104014399884924758509061606595043439954329544594569323427062422223548946138703677240417698469498873593278776151643411360699341829480195391906698202032886097875789530720453587787640398044569718472168869795225938303153492224328264562288579273218357534830469930917138476207800303080495111534057687125123755784103104089702150035226999138645764482724960912555405295513783864215052993422066079141979736012727518287629257972711055474895423763240651833942866037023798005828520169010165974343018561714549988687451261615895645712005591207584198834639072017078072180916590986808385953565652641608526809885675836203273546060526929693128107730210501167033869115854809173379962592493687865117678297810200757039492482270527014172856178384828801521443911243670750534449746305500717927279911857409471499146030845482381305624452381768092919622234056443238699620346252998615756404381000517992447764889137470686704805571186821318080243364214577585316968815276273609699985771121663766365578485209555689460608375969544372810509918454081785375723111022924937293536747962836824147019253173141125557762149734664277661800597107645633202834051263675206717201450955062554969674000272001761363634870001360943598905543462108993987886642568556788415449592494560222136127417393760929501105443470948832523781960425833204997421370037567993013999092148710668648697159493863523653382086922911945257321686833289288519242143400775775172613764513242834149353837866715328112002556985001721760754749130809046456498874447702844822766029616975812444687056463159791307568364528562885800539439804265016167111233103253847060334344873649227606697775278222801961394108751891985449612942133751186748655367294338019901966279185425176032454751943011270094696055523354844304636769593156670928399916249968292388607016555851557332372443830332758175389780271632035935230768487433888760411391760693992016579275961584757991325532310857666060596436756957187825142128251957089754275797852773164120814458050176320973333196320995555971737560097077737402644201628984399482869057596578250643848045703782207473424050386021442617759839863553064515673713246328134660998463649100806490903976252053486678461699838552919956220332920087191774059005161674049879658878601183859023964912606831396097711842219393285948544182376905324108014199681439268847000193656422954044762438828924769175065491206885529710251551234900853023585803979550105184439603299899118669281359933986501419870586750838774399653510926700421863712787153382619469177812962149136551048804520204871890804763013021784536710879509390073945211795710591736738594589656468339903499727482435023899731128851830905117535620758494839820407355337081149745320491082793054717702289524635048011707342465213439061995596025678056814414619290704215896718694544609319277978924886494358472940204466672740167049254088361001882416011970276353626187576021794533757714422245908934468331852831149066900875601324841446464556078038938573798079642900845835071115971379584827494580489129809262933458571565152471014544008302045674974337741636849828504888430546462989750136262242921992177187231181919255028720872096031586256578926158998475419155416469437958893434502577179834104539066882179467252747689986176795417351834396890954584813054245522437309698928953892384956618743012684286133696354286296361938391631679930600068253204723697736356750536426252689565620860862529543772186515707976545674973515537569408701852070030515852503172389137295898271230842537358842953124830382515032314708778949506329977192742807537138591434123936600284992940632144004246768402255301249833095091186143521993116654509981991157463995948079244343228035794194886545407133297709554118498290783169606954080089346592451484943599644473107406798405591315698908617333740748040689055920980998706631197807703557837353099522893109216729688117627535282154204821922905914611541509517797334192016107633314452410630356282154703300110323226962004977080937167026922810013415300628310264104899422211591571489293159716397472815479533375528297618297288395792689420726274368791648497601258657580164599263765245118588132543141311920087992232749510026970758640860945897057107302216753036524321018922732073168264290350366544347580022428752374513735984135049447667951822442475399358849085854771088613517542218730647229289707676444990856770150637556860647491434741661228942165829003788462671376969335532720807291221210519128766095243248778734125516274016318624200278616888603192630742073274252172713576039294114317759017336342018009218419982751056215442558351608993954981275102681811591425628660670869802520205482395233241052750004583800443251022939564575840310658307313113575486589510689131307368159004010579823133196120106350614609831149541690534083078638862624196214602486345628890621380094572883523690353707976474290860731025908826834094512197801581345037962058865451503305074994672220105829204141361718415221480951281521696671281377959944797057148912096705912900017363112660616233584152183512727878121306672087203304901376247191844407402201000395055976868542109535804733793837759577434403361613508467549340864143583423934323608791575797418691951480470065800524876621897368771739352831689523557327531276776676282252613370090111898087563708343168640013740016863815091278638154355977857023953508086367682656771777437977493744627148416465726607749736582540162702957294551055191788399982187159422559567227297641756116523046956274464762764143109349948211880785951347707811899565377816463925065336352709598447644293414397422927882514908169301877808698506465565577495523978051957854957807590408595276900958606485266282937993528908367531264429281979593736077105243806435990699179194405746177128233813643710208020304749500849304297520217162932266638220475119677313443863124045395883276853567342994783828026682874156470648511892362644086054836442064479799126449314258164870060162173822992325768391267825010914238408093794011766066616406874469580089617797913908837683135435295817128181345174879810952536699839210504778060228134519402988085578199874887081127123253719680880856565478083834154763142630005793447733988317571927586840102997651192398840430621916254650980323395585752926072678688744975445682562708216984568813730075829218886071467624019291112327109535532816734943402336759231054986465672306470541828481971946999849545625556428841614563951582887468847915167789202102394951302217912629973024287935279232562289610730913977380337908507850133424644629537572618825694787182252335576555865325285621668010202183134407757943868886097116520717173765636913257031569375700354163236306387179347582718523032079910811670719200594550868493952098149870658847785547897742849653959626794957642162963680364407000657727898918262819436627564795173602053457081326439308065173603392950200755699635986427520223261757338712817998662955795386848373929936007504118784823846733042178372530255682919971239316565662986773267873617089955497820834280318863458175684726210647628617334279042552724244509082046071322088226341376100303753770754775412046589999645423551114357432310799453239869626506645117809392359591033045636047215516217859767979265843791286720931128813384566179826838935412837000750052111093878855136443979988753920034071804807817930654579327873266556230092619791598303988733365884594669074087119456014485298463305221746702230490824184130913238041342158184857974053327205859198885007937041772468604109216433241412924293050046523698022239783409587597279374682634296421360838009258539781840226626758103757893491698412096582814568312480253590371659507664025304932387622855145541685291387665083429823923628555554363073972601963225021434536206603986419534189176354244641383891067491203555999217961983622195786261957806461448919973746956769452581668915014188234918317176471151106276752020336554930486250254292978088460823316792873369658897888162926306243001076935836071903152660191283310231590156785352963789760494260271095236891522735176523935995802688544857441845874299012394817165098749355765353015861494421894506573746317698577186169660986065712144993112731277107614764226019322774430549431030567211036288934980382813156015834052932980404276575623830284105220784786037865817590664834820642319026563414680708599151262325698585773673747486170439940131017941471037089865487006407277784965922001996993074823873116416050384284277321151804418562468978037933042751953124281284449410428778713844671706168824912219536733548058747180013208760840032669420563820126651551878210307871260025180476949957035406366979516737000173938854565319331173617702447162752133096687897087094080716784630433501204941982536869013240223625168575127568790421370089793073280013154492480841790086696042373666027230146496585751969333339602174774019603448124956820608380172245409689993664621395444638600156117236181219538873746125366768791626671445901270796000183799002158902109415193544682160351954557841197917385947185001640031683241334768508550210626388233398079848795897737148779671539797674702152403711326943310906507253755330283340044405121383404543189796754741405660574724124718057428320806340284647809182155702030017250290843680696616175483207856486018246380469660173438943151937455543446279258869785679937386139547062885753709513384745089753829676079195322973077703212189387208596861023854598974301258865056165128829016824273042862311636859069718821582252313142266133983211592731682477446256598144786720656988116383775405665256935240456255836497717385635772113646504339128027058448714556880295171304963966685065813453459386600137220282965803049821191509628846198140560013469901859578796299638182950735086065921345220391664249826557559808191488384481063975739605371918350217858150388123286996590990432012000356474690662286744341467984168035578349426393667175850897834346945174787485373331379116603505184643970670331725534419722440927922371101296208169614428775083694706349588282107504979166814014424154758646370731037928965397393086400535743915589831841453256106480226754279301063618665338497425079252777076794006168447951724436073378643325317934242906990194552952441409880416957679263726218576832849893742274715656546123205293927344848954616660638013887012255074062367542953384325737520798920292021544938404179719119392464382933394313218477449456990494658304204213043580796069472346975924139696709431698404460111114122449325545546000371088008441110437099732820282993198782353981234129466282741240718084260334379373594523768090868182517911349360600688099544513418599398227717857693901458911919558345948854135840468203955118856513925730186846944128031124646867915797981280263788798400134770247088193269896444555056535665197484550552787359148227014588863627099579892711848340748477035157075142549961216176055011999564931113591631605613099920067675329420355523672175176610965975445829908519437166976671148551965588922931601162291530970050868532323524048883175552173534926105357516712746549839291342223684694127297965637380470287820350536649759075713454311650373451736016802218154505253782256430913833439315257832473907235529877511026855693670847287217681753230276231165268928810451179124759702053489597028579322967919897994421044400867341664782162525234246508959997269675564937201588496906887589109969375793731857887513629182420109097214192116775359277782912392541609710881460777079211257815149507860007474294221628972683374835340871872598283448916568799956892330239760550278157322103096141029455248670018409038627729707070357850171499394036812225621424946016043196435266572364475507816818285906769476737679128886254093572907763878916288868204244606289517916050968868368572969072047532261842530925992914379579312482871033936417589174520645950179775571280590113964889505132224082617882862445656995159518119101928198349415846051545052670197198565200695320533073231235453286387763950556206202440990984388723487121146537197069152220823571146294326823731850581225070710184379011988367827352594908129601384177209986421235636543327341859346296092298525535330406476964916373934186058206771827976554513261274641137530275041444804812200314522652368807610265497737806221391011733271874588811416776292103022541795569153786907536827575775309370548511077847714952830985642561840314966996341742545155175853042768628803975680018420514281195054728629390480014744088975060307515461131853784255194717287977611902843903475790624669323235218363006189563120081573378924991836119157707019747135620727643168906451543255436493369858165236247364256401984319305375363914644171353152774961740607658493367753671456894837040880486067347240202482101043154787820198710370638860813139230144914776629847080361345227478928989326491257863241468554741861516351678756850069853345880116603129545523855687833026952905886706526050915348945630182140824280598219683495401341883215906920608258761345079605873278210901400470075956918625791007332217364190545675753863507469711412962930430680134706462712040582550806980008799161569121974611427287655627804617611465090015290588160158131327253515491049145748066953044964722745210559364394164406243206446475611568109002439742504062339449778811263066872084134268457090092585408286574936514781384351787706950342496024983504675145905144560493301671989106751024664558056297576774966157419624298167582458133964815422782813379748170623701346052593476676624440496797037698003138669921691301857778656664227058615486788620376230059123187769616495073849120480935020051100372619046586011147191766479107570322020940042754197313837047949580439502447120501977877711526065858646607179443457664212800424827443692077665281762292201182561277728301618245692048302029072829671657105994391426220351089223182100374902307718209546862871134666826338506748298440682331653580457416532962781135709903391137309158722413743459889984200711654256481888572406840445591172479375445148159142408626682018503303748680033131742055796767790433580070690182558269579611698174976743943696648952070964022603029121143727605505666607991251208257535724047733267906681502174108654572534396771370195566958620404573304953539489626357855657195968277139233452002010724171516362160531876137890984476190070329638774691130948607398048400668311037055605588510315475225952243215107371536072707619077807025756744246604069304811481891233255266288849232969048696248026156082296322017808653964701768348976506011122821036708500359912906081643305494643083030779474973581519396964284915710424872751539495474522854128896911809035252971498106005522629414253336048256915071052167564294055395098895632462653314940707347839884331534928808412338868885635862538681500893960009573299880390717357634925982409073214182874744242259968531699353817761951912942464646900254475276872918790220949824021493060698608475906838235345177617954399799848650037458544232871325618671664941932707719933027740227493866266717143858705618720472622721606426377566194921429069968670634624287196985905698565356339990894237350617722746285701758291957770298134575285694812325405496429306073149619086071767847341205066909146306708578254732698222398584838046399289642241239107855418886731735015136410991520071547142096723337384212896736297843484726128396636427791676775177214231575813017804682130343271910410612495791777034446518921060493947403859680288237788490088114727046385678798755223835065628322978436750042326191414144641774916896564374901410821857402180071125219382858722836293501857550365939776593023989056005139392891961695872186045320675187977822545651327701563636963442287088590175832821056710732474809174983510616763613943311405663858604265587722296849506751937441537179673099227152527332623953373299772313502739074255539494880932350808794457664129390182014065997834629484754894577855390275693115917597676728353245818235734580138693869294338616049699754681101009111713413472128446977471446774850806814415728010640277174637858007957910906531051085134989711938729349222302018277317716367646288348364533039551315531341421980864280247118866720911542972821371218397399900335555624200533865080687298230741076770052619282591883582092350335444080120660418012436514312014044154577413056235719101685981652163862961396317791518081700854104212763888098577609367503867777881832157348206214013311206416841718942944338014242372876264682461588380479464441444583369688321513926642258240866296605568402034817815905594817527634063434723831668839198550107580644072305081551620740898992074130282199450581500282661450463463556542239895955797159823129065908703242052978688508409460657683794092930586535013675828201094806613798951339508611660943325745392800691835192778023393309787451310053824224949165282749129248713709933911104860490047167101799578837974863689720068418811329066431950101135778495403113226588190351748598692199770793122892772172639519657247851553841186662499190831425341565532889145077712740899786459408555131798743548041711491704478869338698394223880464046221595098354240814354008664046718875139104233202376290654151450015861737058213387775493426674174220331602414357760542740630320314290468120411128256134187946021867343057772981856505498694539903051559407563323351558845772771717923778254333783888825696830043393482803972093037739849837946420924423532839170515099903903208507936769731702347281001008959757023991097258546897047100595630605349731074449156508485061122491189048257863267494063078680073956172800974273274263920094926344806335689141576502982240124400348670987373712215330375622225293144982293327242346457073353026253225609792067516227974892537671514202724570440900134248341676956322988257691974491784409620037408168827423844941070381002239029553663247217145132667825280360180979778381549069255297524847382842247570429392135510578598987356024678656100548057565874660395766642336040796577828952676850558496759840627836209180391463884565719123173657525717242715836168401884721717509513674385840675718630579968840227726793578551532443051557738903370985520005243739824541741787124168864982360739546982226162108779933319650046193528453423763331005662623718150511152611493782087263794462011939294110602399272210632108141453833643886551603056362702949303833734992866915676539401037911860809012344874686959681516871660741737640547334437319975129704450361041668198844289086327292611087605058274702670092776500691575990397279850166854030496859690237593736452186713033009614709916022828789852553778667574914325888285331359044840447742192983370729046310704599309463175989617402542284862636525131489049087291760296859948764529266511747450817064585242451209699429397254070241299097539177384855951317743800667608360989390284908360975864766168434034361359247938019696472946835000623742721941853921732599101129075857828715404069301650588070174149434741050338784586814983279830988545985536246179132682370184566684240922853797605559868448506120804356343940148658106509137982540045614159838317200744251676701826248501959558637664704578497145938209948247114048637274985471389890919481111200088966136832172191922560138057603413615681001521776859964972421561831471473323402851407902898756446096904366693849342271710479245812425389878518482823190766641329853498826031175139787994629656699976649915639330262416973463171874320736254338238111859376110489484189317424691904497112806220033674461512086756371706494438953925401974022671704128537846241157007190910690259161890866622405274133134204580955783372169768056683592156010517438477505363765964489375127302221916753417967882695033464023598286529492257886467362483348159110958766661432628338003357381828017118817155635453443699098054037840920145944253119247572468536825141960066978866876324971180604273937783813678583366160588918396399705645336819033666799920075918100189015425929001374480620919926351493043065130147153965901427808079149205333974707670138904910343866481535872536943106236713533336961634955467075556841478079624437145043253567418611641631606120615113283263610722409577486297382379973312203763310219732530572799609331327146125703551933976922564597122454904190026529832928425148434027718061460672965364060828769610958905158353898694805444183367475116018161015307494374740105718330120146186400306622488380347595877063426965051568070366202903508314137399794298940466294692149665552980406499339168280798527763393500743771030115224939916475349380390207193395657346782779653566954782619917314857718725212911477229714606410550307854069420011574631636958876296507841475331336218057641922612009018139789872543017767127442408723230068974310057633832620334770477919726146360774680708767392754059308676964108036213721795371695604406844551383984727084303854867638763863928833100231540474620493723338308188149893581335839887117021836812692206286016440657707099078726950407598646333504029727149820303681365075020876788650649249198347661016775310872630107586709444689223700640694508047542541425669572912239428936971443848905026649815075897352906183341771384036179495541845171020838674049019990702829892864802631151989776046092144054652828297381842477328592296909863506081372466181151781842209979976098299941587891137167707451361350480017682097792805822096376363573033944758203552695941348403104611374494064105666772438546865072412147701851492672851337881000256059780234679725313263117689163053482169268826610259158240770508759520006297939400662309428748368017089818091655162056582639341067700585183300513707839216733831470514807247156556105712465868303855885853095149913471117520101852367901510383779677019296196474344437832152226552846712827768827458143498817214116598974607349867865269613830124863186218809474268544293780470697609707790262916022215945442131126813078439776636553082443289737774746657442297586043718435881061208982373347636193915109709831721210470078876142784681136264663542430509673772493541142670955201025049673539194572999187641017342954688829849398653814748437659835488604344918140598153392133933545959882167508964303929340550808843793941231613003158789117956676220332079970433204907544833321119652668741052629351089256143991641485262705349569008910251603483596726165411824759861695727507701796745190539268751689667836098615001618396974080620984060266796331819849069073152821757711994348697538791498180263852181432444303035240240115907896123615514365383640929608947573469585226334715930246894584720575437159767335720825259940097077967307843712411730505481561843393777648212891206540000732512903007526380588688068852707658077312921191060579443642601649416842350587371547071688874569013002803465648714726036731667883623983933617756822910037039639112453846328724496369671949185549111978194069901704771430610468300734761275241282852129668334314197287363171579618184969868950426672822846524526728111169024788350138415684024839356387762478103086443934199114551612935028239158328456168236270602700944171201584455827909159768168408501684353084086920219337875655993264152168563645619779212580932463779295159552543728085634940284227911179208962589652574199936108837196989594435169328568309086116646303438929598891064395622462720800806236889823725248364269167412021878549559225444693956851234861728756139980488891102673747397602992704265592196499802397365809369907764172147942492053942548384448862899483723381771232477663009246197816083918116541364422146371655493217270400151886079898849174037746182317643035793304131482226702366359031696589810477834529561560267565217274263703686680521755455817801386365656322495103422453534824021807344977869170733997126118366277554115680991349008448488000943310207331042387289299144624590976495485057182695783817893802620925315361718159316613356782546731847191210637150605955717984748494625259028277789235292414032982699523958613918848704991266440553961386779232913582772655972576367026962061017962575129490752473879186336847815255475469724373399141680045657013374929501888410271370390121528520068529877081729370742526005748128955752638210566728905606097561949579562410437379623715806479947351954626065693536945970358094149469083907421306722868379059405667602668312514908219767384190673355889122833312858603358414056112873566822440383550592443557071133763636702296774037327320606338669235950941278718561261972633048556835335355431442137476126482728136392233966882516282352741429034334269909698715837770162274581508646491616651662956120259663907361001701997190372523726872923414244639842458282224440092543107226583979152256633936081582700227063042119223262707033880651763650992729811004204709010564099468842699473687176336305520496748421634742241977455620770462856423053334437323264502774117433132364914386536178180455479887890458105180112648133453004657471163778529283544914521288288977684101859134746069779276624133911683297408873493877623617155102556085660374617165359642630919461414865617181953512204422287439597740825818179808391550102873903016715414347026444440069270637981027262743973946842537197864889997106059677811201652692343468562067294390394555217565492940192093077970879988168800459843405925321498100685023104120503008204530626448995511445245654302259076908400937284079265351239638908342278231104265676266644822404886405853349632901881998526784874989658727609720619062006109075716214430938524088885525152450207440740648414232481813185013463774212316045835787832025053158606811403419137905262245032198881600668865002017471746377655998332593610422799770811878412013290207757071987205685008170226081462887342194127456559408194056007166885509173958987203806768293765257113768528987520091424691388135285970387443481303808521826069442043739229497564053970186447118179292105947949590761898207069095875074199714158195751606649334276420575296302136338113490050907433654826860307390714896304853853581179871667416295687014540781232286009294127507769076359953446096705787920147076195331094017683870039277591638030721932043248805028667576213141154480820590612483429918206756843833583282158871532960483440581240658826913594684031780723995217657480322317370498786543049253364646934367518561992899929489131773222680581331353309245515630332222820175853237287098498492844478567372888337902002163945428581189157914624623100687510604361521194733993752163234514168383639593855624454235953908112931664984227722201161041344298513080952365747887681236705238796901588556064044700594033870277294038915400714552229204078630673839895349902946912257420265699782267236153587321015153325183908073374368894442411928446163616159439209659148275742074308359163178945853697745009396523168230766056197212419776336784980393336633618980057276283664485393077344105863927139491195038799675341576955508042709357486367447616876287864352372638587629853400393857426687614318934360481107718524683380952544728379413437588319185649113248515089209507172344095368536503777229925958113583548832850471062111450583741924550242649522281055743363976318471054434583366680510679689099328285481264605135229517734939018489936646659523884234852748954852165427065071657905875577863036525043754558269805622530095105255743703773830267402729945584665510346047545447986115379224545944466645301403288431726126444276509182377929148213986380314381279545880329132719179073013588555581819138485311142071195357276304025668876812195442215706225280953690781595709124373361223250601769538179471951421510937323617783243352703906664874748266210712876482201031158138834449719912717909418430302811985552815167045353080381121132116234529181650726450616196641991867063489793053014571663971512648087695903862182621071229016975222115524521407395342119849579113081989271749263502509758945442124437976574069001582430525372636048815933506934375862882488440042518300864894476367271695662267737017205017556202525562222552146439448843239978210720529852048185212048948070521001720356847075655546781412251573538249228670127184440154320135929570858481168684551171767451090740528574345719717240204256034034323077584994449571758889653406562038378210198019908335947494693824694587716275672339465177577606382896613225240798677709350414041333976837862918679283220564984256465417270359110572094931416880137429018925438334731341807845987484690871140784838983129849097590536341010231392574100211158557331028170045497088531125981200445142850685531701468251573000043402646591777637670621260949737020310018138250090886466919561074725019796441582811472127498412075698236428863641874242579204491773848407283899163887310852343116772377408707213758059776093054005486229547114678230932308234865159353647292333976290030980071045628503886441386486965413088527319247493661836593784741647738538294292511914864693227601208277157960897216639069862298743805592197849367296180372765187426927502123580206141986004884679455444250102246276901751847807300442993286621356824664715734289555388212459935270809771147355905056730410137067294538928904546563942257652304818791833922487041952863216360466776497567934644498911965726823739799156720456037951455112540490977025428336824417820257291975543593650753156323617942975741426044361024268055735466888407087041487834368413136147519038193279795659038238674001553294509727463927040701499109448463437366949024767993669341481393555601033407975704232060389753475276159502318482115014367795326622792379601821874871743320541935265768078093898026799450559449015605972766820590920840929273938688260858308292295394021870168044388096683907053040777221133083712004148634169557890700885432254182109875109094159314815973585638587418572777026405917955377555665052662262489090369616498778015985222157679262219883152369068840372421297394085141526876335087159033222020848976089069494311337573224436642632270794415696804579114160533403697413785188013200088955253460009696330062490080486401321709909487198787979335788196883337334625257997717088804027304229409331529190994776826987451873541437049524386842682138291349339768985699364884635776321371990022729504198636477327135296641349282546663034154765525718405630670403984626190015834460072854024349073094203772819316343620946883097197586500426859453582593108947760838064386789720796235177699611896062541453464677864672125144946744052387171186348844045875008175846772332000221213159212178267550215419663232223427678787886957867551703032351350219374310353106497497734243215960971133753579389455399621993979933450316483221206074084340992012000512008785259406914020277818778912428151596789116695979956164106764850171876778174389572861654788681400979242583056676621677269535770514098613339887336279704490524475592183186391244535044540471045215480479009825266430472986192315551682696273522044104248746208116999591010905251011495538835047962703554292067105021810103885181104690729938968334880101764667680747180248541893489211263271952257616233221868832440913261194800792723003100932094909459257951912343159811271976389450788707353474585763264514618122137610640242315552863590370260078240959112580519111999610113166186562728583406521598235641940836762263106726214935485403005102898073680389030430947665696273120594933269239081867945924112355466747338764005237122485824428332142975835693507022634717784099493231035296208064317504494045107583808689700843287665934783607211044795154069153280963443047032817092640791218473566084217154817639814345319969117548853816484954240450892687456827973728541300291784229866712795960125138906027392693891912308922280061386404981609450334406399657435344470762786607842386579922774666380247105917178002622918568686198458013651951228978032511098853853412577898279396425280540902991992861605599396332124542174814523155163760368432829199404289882596901706381047420975871871952144872400925858891281794203738661696011519417317375300502849951674446158389743774879580032476743376022001927305286440513417536161576660241349958554495398562254603904941737467867778506693440720415306625659138940021859029071964402330546549951339416699809389629294248007304094415226573336056959850045349622244428791067326591745844760219659511635131996128857754987974598314471117531953419553814853528715036964487892225124176155492726633146000244790331364674572247589532417278554534947179403331709615111936538866268735777972826778967478677059710911873777228930834986645041500161937859824176852330261397868385287317577625806318336198380819942989367180023351581542314685138356806038054549798005197674510933372365799117626685791654572278364352907644598467433923667397179168189899466889693431022951001469259106740933173846925545796440432970658691969926512469535043341147900291564363171029909661111160213187158990342140691857821777261674659641685725198629238789513856518239483159379677484353295118956821229827981969469107162713047466568969803424992176612398188755780476665466690048042442071877652453471648124454381861097726160413090944134044140581915249252577831086204769293344631800061722754977432945149345457148548150527147785467308004695234066635993046995124196467082410355953895566416860144554108532825985290333459440161104399565381274365255771894244989029947225892409179209434420821947425523244943297806785423764805945198337215990504273674773427992881853894734684305415827196614498124689406364461107384869979888119923218221299224195866972763773507611591839741785296159403449070652994900978146611516606057035549988272546379237372692617445400721841098968216914585770710453449760835505946456376190045174416027312847757179943000631183414100355074941591676283561798996154678989624371191767213338013856128541393732601652275682830431231622415131710736925823883160793082289792523735045541853017331539248219582136443582968695540325485750421684368521759254814994271397631116763564175427760317820092001242778026577004981474126788032409157878558979033236472346738289137437899903351137804221655857958906484057556845874456146365287082684774593752284881283177394232551713358762049958882774147479917731100374655406209460749955679082618852174331286448137501638950363696513137620860100235912842699441635840530665689647119767482273615408600465381589992519732368458134785217130886116466663320600110269785476178923720481042895285193524046286306166355551639574995958391306377971624971316699167300422806762626195600236270113425179588072583210866959756755338656188503911270278270863676086179010929181099046579847195961046973664499782015442485261964229271632697139732187938349601072422174782256379468794106944913547025817114229498677156877714587619531088693587619096128532263536891923017888067108620543144753428501087971604086210341041277293193295069316205110050098724287905498336476954338964726258088280253717487087907378899190026679804037578846673506993923693202900673166764234201846494640253365497324421649443451571012118154069459354425967843777984023917167258880083158228887569036732347871868237830144852160581358433271453504991210772631822247417691602196049757336970194703602066803933021214240089242857678294806877287922467491518115805729396303697052859890312982939399737992372078052207756468992524417257109056010174020457730697926523655643277009650890810996629374475055813463345340423568596780502816807764952327578280350595808720328028031499272596780156752830206608695009162803279750024869711354141183120213854310888353932757721064211436427238996266289561314735897774581517780601995998475661933277500835714899953356554010913322316613462359227348186282816829233491292519882679016088390801450236419601386582605216188789985826197538620361425775098023062715343061070572790741517439311759208034125502912722307368193869055577961772221885229884213084604786754927298212989426946327030502611241650520434118510027082599307204914467779918454718571135881770708444178497668427461213613488653275949015224757137217120011821354433825306435990124537016046047959068221681489310435733512543031078454975779482574812127907946161074018325977718760684506544085948416450616223047499163093756160420909811224902078799717460630066110528140048780095238518763471233873150726340130368717525624999499771483126590545607616348720253865386770413813476056009484534439031678990008173179483053209069958499846997578767118387450989494679809561769966846273603496964016612038410193542199148494905094302478331949283964000204026831894910990573099732384686284389477938365674309617116238591823078252000799235196488782569759044313698033989964933373122882764080897957916815109041870845200772650375619879320763544371300707120404382645060185014120708443117899330398803792801338456944843842454995627166856531826374725583531583988534834976675949784136659718890423850547268231704687340125106967349376841302436501873792148780768814763380593857969065608547968125783066521717104488851337965424266946611901318499581203964892500342173070621220631461403813699991503513441494837996127991386210143908734157571391214598219951270650339422749604678118062244520864816594397068716477119894295157704460876275055494053132300289374080690431673645263293871866372413538171825926315500778857851052650191917056212386303294035220632384697504771768743616890900661858726168857323425037760971181134582348022580068802631556377656051142821719508235902130098646748738828524377014907702481404567349432195995414949201637587546589127576985365622204269251503108408900042830650110516090953163645538391271993314864793236068120758877754519391941349591631675601126220931609711031257834085661970630903593267504379245577147028458504416116959771889118134844235384742002077268023627212058075609590267674405358425349596959625621632961618110549845234663649499302341110817999714328435812813970258803214179875703952968561657641471421742967684574462283444970902146842932366561631039630808999074874956727095666484502388998976513464264039039732631019560623311943961048928127505159739792159592096329769435290237987601526409931249472516171004813512778242911300935618540610134070848211689359734081570464446824305308665905109753879122677672463896804738200082174520904926921445996988557929273307327928759950858110214511042934517680848034168056195192532014407679110492633081412361304462809352394325978828982989987633972030496544600583023380835430730688077721377018547977214325226943390370923186016075352356016109018587754622523939942997284556816790058503223553434879900144349767662190592601231518010950006656674836701986434776881204811994664814991216889527245577534158757934375490497968871071905940884705683071182874098606245657109116329742136996302053131867396121468761247904441653565072708848982411657908527246898199719337719057460337402521302378718311813945513972113525728398110300334856667868337141712471172384983543945403101577119056592747585639367440669028399277059668345655116774534658229899960028277597158236124498411869021400619859842820883829023658187315333552803748827194961982426057031251291616640266769993259100498591867453584389080574755926869791323275862073404803258367021609186934040862709729422596177857901693469983286524095387463170510464255140386236779702796967311475245780018017846577738408306386095120899325689633578861040179925660361323546726891176162070583151577151887965340443072882727111561687965447115138641088653040333166481981573904233425425022015732110379260476121326182050406369620729582907093136618721616125441463004874989049799477289203418484363135710339191148486669885102778761495001223961786388275056300625973424980214229370488488805574881342802193213215510409579620254021685254644133064924715943048814738283857259891608457895767217127300986541465829864373252185349134308973820145801945416958242525098897661388983363113448476110649859680262696392453047066760290126691092028556088008055636471802587296881776399889014623716470143016628347481675707219369255812269853365404062945597198769478341618768545991246022723705351720686409435937970880870408383850369357615299780364851742684043192293849991371735996795775519414448223114970809486646170246568492360612172819808672875416315524307429658416927742680011966679158855394893249124257841489833376364861213950475943781053767106237551832478182103070316733663185650323839510661851680578297852280814009624881140660394469691438143420232217449605385398453845368727075580776188303647814749921293207042204739183477386914538289433982040747178841236760238083742460533254601009812450237036137839287538026929379830902079333512799417576280833609820068388150130141437027462954859063330856891852364418760949307993075113769763258488010190371687198917609143979614683688852454864912833546818714990005213181902130416898057893356554939469262753490205695738676360839220154840331042371490084447607010057814584577908384938230691751599968739360598566662045124418119761285408298354333190282143861426657522030019346227382297561131826090079313945244389650203368180472316257717863649431456428711126482261634461795197737212306288934179539315356736186477467991244506276980111928157181750484354023756795529309216764101549467720053891838107154314626467392265642506210048211066597392898908792741445064867347320400861401180566054125429881761996129058703317591652735195490718991924617145972264207937952737506580347378750811157375718546831998897055036908372972470490436020111826376643124630614738759036100635721231431630639781540524410101848036867964083725150121900752595675808441729386045905674286636772374513479504838886088099089010491538704588070453537545673408680121557776205564504458913389744984668500760913612124167022730763735975392885709914222801981388058030967533255179391731389801919467707213330893196514393412779451284013068990819308634914017897466272135516289129030637686367291772526550639529674412884470649864443740344901831362206521292724701308171885267619975297994939972358167974940699243379243608137870937690923525221962770264590709243542776541434161931417681438470301629423781852980840023318150589587028475604701356552273112666827677200456774658102941616631664453121647823316040620906589860357070584624446538920299849015572323447314905636497348702517371387067312901059848697129534605805875689040333067787623861782685359925470171603340412452204095229276176759194261699670909854685509165629348067009529033907721443814063845563517073707151143806983579053069031611280100868728063892274285195893433106689290610609702403374145422684557294565240403297950806806621973338607148676367352264705323484932999122171552877168296045312565995771585481794796638159498112389098555858765354916206296385624737173999233286184677299165109576926705909627959258333447372734051301511400373729039932747037292331165152109827494672822566103639423390063694603726357186719429317431551104020478831638779386529895966712926547664715628022587041960137823133540029537139774421443326068340340023191570369913115036350756950798470669830535841784547830713459758949837596518374996311989675396109084302429987849769671051810215285902760783872665645576939050279255866196992793513290624257712230427320026608555441357572136613817195311176908084904079984517815403534622605081603941989554638831265736395313472218660754724000764532117504098915341118927663654372947320837880875263827116282447173024545488536290578279344408050657249704975899290808110310239265245174725285866861765405856296440486356438620020246992912852527274466278021825980427545257691580317230271981832497022697690811868777300833151901958529125029765186778933490607811818139064302624086007766124231138232829496064122800374342340892199985942955557982876071932895185662728845662230435689343615479134714450383768757842690139606596244775882986314860844956953816496000434626637486336831040547004327483957215322337847952408392921762435516596919700429976269182947260007789359194073076282187367510457204902132340229222719128177005599988356789166448353343888384813640151370552080726388086252262901745116762412646869826458524947678883146163306304985490387531684163509439660925975991808750339087168159144091069710811013828336051792928138262176102372342657280765274648005370902471993449061659970189767930675728321629898354106236882999069332888346214728340120268631004063111715771526434892815801583778940975035061382335648880783988491168751824973342175345659505057999101075428353760166580413375530011332606383874257473541661789100747571084081743596891294425174920767442373878243608446149166429492968668233959514552429264789998563006545328593234189672940407056798968491278475301105733119744169494894571561457161650282271426280965708120913283509732470834884191104960820843113493643345755158699424654386309439686594479680077658333037173361447505103327121625757265444433428246614647717098421944974701169581070438809040672727116636965000939599813517745281273597990853203025875007324722053243495804916720751961210765476092776030676126939863519046295819167511001600663233000159146076958246074424002036104261391632989235026785683613572542707163238258197608236539307223303732708061098131060411231400414392649703118026868604589239906114005977557510155376541318846767379942196499158727369920606962949749264681475997169916423639119446073938251376856317874353169858931605383081426136211131846367395422436698426791702635380217218420262016832895759050993260141275864487707520941698192429227888747757761967893154118755681865625449115825047169209770095692625821576865257465039715131421509038350358489339224510784702610345428512082273093248977316684998894573720284406945623610329420906010980799510197324052224567031501830649146123165816852015479269559327518289595677789010830012584448986858479668824071138638853083980410294153912068736762824747033135312090113779474715596384521021159996076807212380424860406673959897039293056982726671509130302643370995446884778938194089126538567784897551645691848186527798149887191189246555436128794049530312288195925054345827720232489989537643520473998389492647329674814293976887588481022715863437369357795440156260618169341735304401855770678378729619045058493412267805417840443760720501826933682136817866019616762970211554757988203958665806536829104419492647904423297508569397408334256875267707571985157207981908721917975144032992600328044864139110187410643702507316151841514146602586545407117579017386997408752930797936761757567814658732722036642860376018532384707259945196960042459349619655936783555267925241318178351663086409492780986498965297820483527603811592811543042534191844306164438950265492572276882328890097135395384518704375984634368236611156930934220488633657986801115627227306759764191858341317434577777557505654999899215367094194685594916126863861349472973679089703415836286986288247030559462030844685899775281275042004596734870298773338762799728012138294423783723156644194105717208504906689361761677467378080640050383968645988265191069104318471164067538605589908612212481900212729104015207760682546885961403969712095344645904051033286029316366836500087355665657770908488053383691596475474761509149906084675763338250925580929969259503472873939328231457606311852481915560849257783149745484747864764467719055960902953851949299507960153819413286005073547948186027322542969135044872560052930551605187762959686881971265203152048476042961062557397139054028907661728517972043290940180056859635237720282221042759289175859414675794102038191739881676346141466990207480538535868403056221262867261726570179637824044747550749698541932763728685866705558373766093128016613938288497067333496385445787225101214222372241335273565002909510213739882986857000090048240762958980463143483444947230540557922054023465959610121788579067133092635212747211330466934748290874105700886223038643043336204904750497625301652993063213490933531156178177107755887697187857150185815192125634193924236011984938432530710117999541791868651075129929279737271788347154478291427252246952435375943859190932030159103619707483660494594621613368551214773784654111936983723187819469017847082431183653634371364850541088012227190204523687553208543666694848496218923846087429129096212902533397418850613898482504250101280831070223925696717026830286805553055088040563639282047802240996712441292372887460968681447375321368967537219480180750512564161763037484560095271670018371502610842672741276069883726406772634769089316390247986313759105405232692127191531751258635906899783561514652630609545892311432895312082055648065638803050029535018511989022610717001684226598674784276365322174671438414050776807755090480025611473869294104846662293217574914196533161539512939793507728680258588911729035879613399821859200737806030318333394353470309764244496104546784284935303213968935509615560471403480578703736432938222799769310944913345706595039022699794068133948645156732964957701377855538833990163031524254040636204561464330587628492404858509172780750386580896006827187513649929268467992521272583893008706382184001856700894675921351228018694280566203333253808477786218511172824923879569342455486496237786366310175611248268080175086441639049119571648030193408228499938545358643483117780834799254043684792154704350297762693959379665605522510646272992796959671872662498966689865655937094131718369355500981418153416604490720224064674110083039028665618293295440198666052237058697807579808509070262493950981175687372304674392378774367361608251218304595206138946446408130794369575255963587601683272505981590395511675486063976366895761209752027900628087366974256248035780022353499932563226413654903703039301594021963584478487537846192288689799438820348301341124273041189968010111240318914674735569485712880521047484433467574092474280553263903961625115215743229761329184148708044454058377410293999270813707930477529083844732152547187028426335549497089547717557670801935518519728264131475152378567124081370743788543015168108441782179070740727511881646982314321518671210677331037043231819595774899984061457886804226561412708889582913206544105566677851482407169591249605901125875056316324588856148935771761615092069935241894758214572077377584464727762091207394785283151870796738877994823545406024512058480820706231966551918321125863766915586076541674657144674244635954534520239347870030847565203204942452772866854908679003665281540102026310688837693805879061813515796202661994187172115284863553158062202619958183604270040553335639664998394248595318410887897223904441812149826038651484065381152769511758552734027351520124774197166397273681157161089701644181543270862183530063598483496036345882149574760791514787079422835419536105329203125927535580067135724569587005985205480979424403361526955355042819716914551577553821510330950057328628404008114067623264772819191392168543993741241905110212477129179155354304318289997530666514674787529151630393673937666762875534482023464984620479943593436266835267571963344408356563011101444865326621723430757028367425952558851826705477831482326637503817079023605173766911207913113827273482757836541183079039623447983251007671531545973196001659254204744563350037901614177003801467425595676252369461097416009234542256396138780223405297487664669445202454919427548767647339815367680577812009259315359577728659176890753777023464890491357946402004830203685647854709248844330091428707525990837297228170313205184790723932082741551998203801402012561708947644493896862387238451792237678060288578823936093304148885636098968280265274589149277051177953604175729043988782457249966841332337230706307066437123808551019166472991034184409541098727940203271779666974444588405981352326893969089788381136742995388650610285869048075007770401586914498294060252073964911496534456529918613529889990557055566985151819932777740377618142125465239086608306526837368948900063699564748936838484828014337524125931406676935947238639750971005966285085689373139409176780588663869316323662841544125963988027738964776569515179900780701054934335131369728912271157095342698318528854081489369043667750538964287742758089778332205839979317361021444998904119089431500061834129325675057623784797075595385725096178169779455261761716004357408958720351575213181020778014400572065597385999549644884240274828327318286508552033757927468698781836769888086181816682223675280408230493308180824127620234804515247728975518283701868809599527501061033985714226601495152777310297699595877408696154541854062820725525600151362320551339052238867688444390190591273039716341466663117529001109533225787433629165333696608072620216007980625559834392882754407698438935749958507526911446560445424570560315396408739204838862262838362403350455464205717821055452091197524111489463962506750452335973985552595474841259641549773366249554189935987686202440809147218881641020175861228431536350306100498139129031078225215686465507845621677962256289676419382781382036378170141123964016473718145472910350481511612802213311488726084095791209829407410052683719975206308098230398196793976897459573071621038305723391383015247115081117873590394632835161246956051057396740660922578700875536207516606876621492519399763533673931295439004014496045625715733991599968641839733564221473269219296510907317170453410947080755128401400035792837168930153822043592620863089771168837672226010536304378933657487873783415941067252128846252127141791614231871656347018135009416786723032150896326612389937758394364647095051647688925851855039737826168870746110157136259027829769402067140482325951496870680300074742578800795301925438626838427699385380150416148682413516652809611648541048833144068580016413676746128399026233852814212294816802615276174308827058769265901505895135193374495226196459924207174979624043432514618143916185811623816640822205486448390146621520545452036043467796439289646154171854393574401421450693728095472960841640870046332393174644445584645756093994610577792328428759326704557280519766285434197801282365770937521403421385114106842835630379034776178019919939001932747609238904122959195174009957717458964663978579871535873888088993664963915121935815617787667297131061894304663398871622732421511343003393292509099662318493166880663620562726798512510305134120723360294919046934131207842173984121974429106766452686922373169681277589626545947354907387298468916810758915363433948878284810351602959712704767792655731507839625465208826636090999082506981266799937524176413892043903060483572988931859973166820621128789126905086748373297309946275751537392066352936637041901077969041414783755304948226891200546792960960043336468179413772055776653634725806655934431434897013885878166814098612068440154513660339479731089525745032372656821392054756340672391905848833759982688850049418379231884816203357084186466177386250221394438837900929214894408750429362572847621674664289978840188989310536189669564738232589224030922558848428172762064300829010458860763457320014346275424292853400562574626675917962649942626398281431186062660377425973455256133041045113785275277517628801038183027491090763029643965719863852454151005525086118839793666055750265025294848527494658068751414289873228801191853003170194710348638591141547003473982006187407740322624194821616046608630884400999746756256956224418401337778793375231952328436903040418517067099502887148733535032124310466085796961155634268015289559618510019351037894670345239213754020211060250616296472148747850284690870500624537149442071974351494245458547050020799103902476025103382659767879740652912765486311362973936352382034317257138959321370329786847227683735933345432904026238176263231074252564192076677516407751515888515233187872115462976525890125485045814434104248703202342993858824759864287824552726966093863905046227738091686574796864736024632683392310867151762552743475043300033937049591951225959711500864127693850531926122876354768574152424532491642502278305185470703023118962534879564839655221315836081967182739707157764227706025508444037479255972358169436281847263032495243308685222651229608716854211679911559050539667582861585002269552675536795586464320371734784801923937968842761396738721877842562232077912523566032775355503294188613199657578238174003921343749377984122923565658922672279522899258086631594405681470424572311514302077270094025606887146313461267761313798192161106683554210158169876572198418764016239173509410485150210215515847078885794652328095432973579069717276285254531920979943102372726127484527415239363444163942520569188215261180517017863911273170893289032982230628339475902739319387029206565647848194386085513968203452853020777555518250173015894379615418645243062990425681666914883314698652925436363803312693146731948558975790257509963335841701987105200238787131026405104015044058133477214118391179428709955981292887810601736426233015355621867980993237711291480163452399020162464225330992267142399301905076189346769666185987175748328625002986143075057671003545665187558714229957069713445926781831074716662648453626131212192905831437565932262894036691964679342802220557259439286499594081815331596542893970476335058172356994279624675156545210930327486103780313768043373501640494790932428950617534565687750833420291904231060052678949302101771790537283578471199783441539679308089243892118069783103014170732659237462931368061762913839697752018013639842129156733860303262237123551608840812378322309370868491205881519248330745811939035786042901995097830657878957021697284226076498064940191583940215404455639795972127338697806451834325103435882846877459575767591615050940128682718090425914849175684652156582198916458805921050210421821896804052116860173365134585771200913865961934600986304366743191334628988361027609354473308559662988790722843166457791672887583383691692448188587533555949139740197136669743951857066529023652830885288557874290026720986245117794450520664606789082283986445454502114518457028907021950750301413206644530193796980167532294388520082525482607456298776692085613265858135646886376471062726924611311174775832786873195387792082360733012497207439132410972213517748795812996599281736576151933999609124791611323580599002705371321985990072728648340946538500004744833778551400392877736644742278262014231260860845433462336608444386234818803798459731290498973805190325141929793337624362716053619635594801617160157277232399987321693616771449683602437460241476614700797085626039973023001709691108672718325196626094717912121036748994172072879054554449767188013047497573140849399028971179911713244847332140036214447598444809327581485054431146517741372093526599089832485034867672988618938721741836772823231747803290837531828132171068158538112634208091871622062670381765530908572737813989007575754199625376274909986686135619882711764610252894882291809696124527026070640129994379959689366814428598886684539025974693228509418480671270608356118281573124462791992887762992862659226454177883650837585761200164785633452091113554860787708447212399796216676737776012542537382341639424439426208242311148180414008445327741020374557945113093379228185517989859757237101253944309496098003719995388895266429325523432944014949926501085350652976464716950909915325578718050584248598118988429801293542208005595696137955280195988009438746048173344088207479323365408641879419110027953822984041696074674546629413269998597586404007649514792847819896095589525692911292535671475952707280960180409225520945737372033101830084000851141622771512619326337323562199941961742648293281901768051514951980410910820325763426104906596522002686380225755019813052558845813521078385102407170063896982288214054930198556378919066237644791452768899120236285326030378190479335663429293906915699229545964099417351688444754736268383150153205431756490727912611855104235151853235922705011025364389143613238698940728925093662644142138500306303810621931400295083034188420792585265089193293409753620447152482848160148687505607161675246417141084945563651802930681409785153147752923819848156326085647348729269182365720305551946399966919386211019760888260989280863807925937202847962272848129702209252582408892794456936361453478054409049113477842135088034409734496267464292857485887734132885315018396108447024281184372765545144808720520151604029225175589296929928060457137302025655964185725491779173057076621552546812190578874906661612036807640791033867092235709350308914122172741131674117544590458207091745404933597386815825089372767960190820010904842264402230406720480656368350529620540324629971328838639685196223699277150550062757041470556088075291952935933127634906268650014310733320342187600185001903062984131033966404413554075182072251425491730804472354161101828558581672648473513997065347587946887305979680585268599993697934795872171134646402244734308741317443751276465319220091053661233593610997171909966254598113737990629726856892543890915275250963486594085282397736225066196701644780913606032128485406736955364844285009422187621150956109056292059486652663683995710043193708665482751245076672222927765230580381158096061028823681196164864527076935786918201743998199190576300447272183337721089038497538519789728596522327357391979628275491426834213310253515347279005605706827381414288565668346346896736308044073980737460828960180947308194718187297102158314577379533191133634965224272735720653623499184733021727590638948481666665070104227269393064058009133882021037397240330521945007156371545169580081926359280620945347368456931627330834198771846117168959451600346346997257879611416001521125249302188923770047251894782276495372459954508095782880271054367266155811463288596325209121824152323961590358026586670275094563052364852446185441584000802434754509052446647734987560230215203096286239150688868621869344925040137431313691351127318860233868744464407461598256300512797920783682039324618000157852799115016811290518184157672744644744198238739347488761982002956195597526730633927927991715370943222473245138217094445350131134731828101800794331535635512742615220766635832792201132147518789881693505392930282125812968246073367232008318798133844520460645706525596400572041875412379732984250388437627436641915211390278222718054684278501578549899549769335974085089966510977239295015516828428864718096994801604688872451284473093062182193862210986386076691687000721794832243464252729390966734806438235263294335167327269367534241568707676955148608552195057060852039474944022701128159850973750766082373926360551980259705713197735084284369432458220947105702902532068084409309454425759910488234379786863231671780065868049072686600861778379926842013540946342116768196587944629870258379532285771133299490212682010390817181705067600742052592518036432180768519827135321392817981888072354327477129328673016193773336489317813690570439866696774102503816053979180211783749355950413589461914432553592632657193869868657381390849157646290125910201872030034951736509887854917360316680727065397823968749179098456368182489193923448836337464572676651898488006873111128417154534073984907691390650162878384575465203622579064015243123512923098922179967855633245363133498507286745369918685739272247971402982526465693576172122073737267783543225671974481386850249823650735460660727910068423597940278250479836670733458218156066443457008666506341025349390121108748897390967110451782477798676914818233705597754519938557128969914798136562503087044316644212051734033608469166531257876161889541432665431391597974263099298728439961640848294125548105903584051963756472652964506946727713691963853696490372990272945665904301589977061839064693463348322041024503360875909784937993233094978599200498662545703401961109986105763549769088261683135145644442269959572154853505461161684883945767809456247612451192661187666122864923115746672327143931277912460472563271023853669095999207803517256501229579925246643106156191673865820230678157642544497015271653378724094599524208464653060422150054625102872829773437039226204092507489259157895753264864223546615780656916752423469287145983883194485634702254316786267621496075369701157261298335480307404462763335291026447243210703226354292687534563446251547251055213578068630835709269792094585930992132399561917484595393928227032707614278717162852005959473435660957554798545265841120475986557530801435874459223623937811351474885947612939699408399814697499798382536244613889844424443780463889014326304421798960897697083564424727109797396861487587638135739164806990172584010627514642505074585543552707626260979366663678824777428776956784850838278538692324593018749404327465745630311205076715045252407567300249251513167266130541763423320730972595557010047434586303223739396787434740127374068260604537513874439882999534092491742235427618151844992642993507017968706543892776247630383573203061915992568930705998701031917391538348155650953675443734020773617729302996110479218658442270651886417643381331944111975929580094835367829348845124727748944580306416928910121329297090179624081694836453844977422771253442564310791186684619210595548663165643230369877019309943725917067535334146748207013673152131632244991789794616451766491486057770449121391363455150962926482410699958211436098489566396955581882709471921005314006601091929277336228343420568841925113215219149807417533493159636202782655170713832424187803110812194622282606121940734238419209445360887449497114727652517065237973276375873851165715513236443252027326271545677600184845271504446278289770905808457390725255317716791146034272995204882469512337980934537811823345816325867749320232697503894296343373914698900505530251240399535601728110018880461562708245287744237569893606750967197345236598710811531475896543822818701796628981631916784553781842740882591282415512912226598505091224665530692337892385204126497143248584531374378360814477138441173194075136919613909265682683165696759760153225054993676862929945390430289301751226359713672423871893512406950152487960873564681881101917549928892123931984549669639484488510690299508913670605784649617185087568790281942319653766215586437979304281588476510449231100490935389878327995272804070807469713648748915931379662527989000482318321620407589652929461109918557700360804306430122524180376662269479434412620664167588895266198842013291655291747715182757717412067001171891064362567234843133957483112808002347291091205554497623563932883589030455981855894696695608930433421188853007957768966659230968725826456402053399958154768859899447915953712964797918505273119047305078847719893490771070830087358809871978562009389479330812096934829112463518489916946150317828359835239785131597904869777109167980020136966588696062475606737523228311353205909103587280487033910220275701326899837939328298818252168447960386997010142954152431446751837446858903522583063882282586876038125295948216091591022137235470088425548793620599880519315668677260030940319114188759502645489596970519933638877746327816342702156001005771885763291233737612979211842095100291566005538571257539562563306710947526564334398679726865845682506739286599101197500696043341796349453177309377871162417732126785919416712588758824338963230226529916872091510315284563152634175704403577497937939973320506687157447188881035522007933152620792952188555552444958968653009137825155302577077848634651182479781887448604121433781706862086174153530097622661489820076855541054412948968857570625225249238651904937861481857004803326443028878442739047819057041131396767034351958100471052114706744292083358602082012678332978277018756010621710705424771854049656132218055233837378141523226985107642525734496926596115385769672961873312933666534620782941264261804760782893759722428672203927416037274597843721028375741735597144993265608729246132006799919604653623344701057300606368454620054002873473611774610720441937050712124299381474018365399310953201285143998825077699140373130637000840487767258800213285431231210706881968313355278579476975118145685872280120461642623546732140099553250227809482345528125455883042400357318449189423843199946961745485470449603304352210029605564010768554496329778609465057339511946454304188887928213175285151194992829142373087663961956929114380299382071486563357433150567165766766942854373192541413152804241760060847137517406219861435336402230797641548605074033579750306434006449352078527641741924612685503125788040770335939458344817803784686353539675614554916934647440709489963924092891652855403428994920847593559926921683549878742701265501710503898499406381483959192426982428702193835972777889974915514890897965055229535626868208898158641330485545358636469997390010021494961530509634665661251516026348761102746188256262951568467757587309855383898175558568650551945945385871775396340250707525898584373959249727035066614034154375832347948552981291620946984479240862861239491258763235677016104293793264438738775880944154480868057946857114985461816347472724731710582022260697748403544280771162057881600175999209212186693362141554553755435636548562899113917712514109028991491249245349535878698152404346436010795230957694238157416972705898785145064729123310628241526120071368451077277197544277778303180696331334911416015671230503415700459857198838165008429321767831061640265729017856001504981469104691350003817565600489742047282929860415769091200127305735408351921988962959864897217321382282186065885618795334504681480437443307320887723215169281496551759190737545626464468964916114666567438360581775670276647763364996810991095029324392542410118723192202213431735425922641190812980413874761272993332058035886851968013918864720710616753056862668199144458308666885914189770637005838573362847302737711354789782030838543160178519088318269138717537738428009524780223015261348246163453639557078723017709506703962357705479956630459584104939267297904262317204507599284110774762949892469732650488100784438572886987647377623747615388964070823961644021403385346765493529915898794128912823998621459792654174183280848728604708463947027612958815084901105924420438869738486288845175351436394777571227576205724403222256698374883852236277371435572668525463297210029623336451101410792565451940456617536387848457702840105389954005652819577011626254896451243654241842840599432295587986532740704375826324358734766193831840624425644165256695814582465232273443184915918719811601365721363459461155038434400350822012767253796466510784738193145337832581812311479796604091577524877528186629988836996522130776190236462410677043388185788354749061686283304457552266036452905580275254778214996872619581043239976049125046064176286442546753217206583333374096802581809334154260888085509776825211826417325866993381435549848439938668744141449910161406591141405977310244222402347588348435264876106316103354066042510965581715280901762324181091753950709838608348443519355779476143781060409140652259622465995581433832201294753462890660381993909105710797900567876244895410017157752195573329518386345631290288198144089766790021945532824949309886045813472715007747218605859006604981486517557169496091457807091075966132636863194918362668818789819022933885095283789040165579141298892461597827558823633415945246375995975519381847107684115240156428786418142258096212331302549076677446614439572298009216198751452666101049112007118627161902962291569910221815722798370372254711364354989425268840879630800487783267324317922531824381082858945577768539833877839854202429558222405665052141390700083029261158861388961568132096928603156859875439919057749794911983356825028644150972891389363444036236947990634274328319098513879892818114993151550999268800710499839010137760879959016440829085562304317914187094542578159855106230727733200372332027988374989361044353632121377090077600151337292364156066436166337127597662658440952223006361946875934599059845697783162746988082775911534657904927677304354770062530377070293180351945096719722712704064726454786436508088808788679039548574562250516882458149795207299438272589558179935939598464546445971705162722587522674663858575406962380874218599990985005074226564355911026427116004462507115347673913663513768610655977899008533272753633026796139592305946195297975368451727178180537779175196468934788732885940608597107031942171321033956663480059334403842206366897857479187427062359436638650729910364342022921489763971908357714489715842745081270766339297087965607592106786774059529685647647852625458868715090696175330149361391221912751768459251257024252818852600825061776842764238323089498574643811708944795665949325384120499343210602479108353735997662879153731980650444105702203467258985375824933471121205791523308017909605233911832916590555418235963336718934128389756192490255619363126951443099550597156393594950395854524090565244430986864595191399348935358398608096119967597913138662565173652836982084954098109398441636825257419276039881108321958614842752223680511302412909249161808670412115403937568230342786181401868953016884307488230603369542867693480738318624866629354940026314585529179223980917512980578727523292686715979697876678469262439695911021738266624328288417126168526303495330664653870673523950399271040367870948189867498922829023008256116801350024851741771861395945027282838112667109447622621972481887344018522559737683899174804586265885429501432190149484173141619683314662726386586557323398780817844667185411495683270161870916814503113202598100970447791011710971789201790596476106082902568629822401515963448627199861052572676782393155794792378334278616154757202531948414934528542694572154861120896160601106754581114605668264762423097536943541636665305546816401365693609953371826261038264533569942266068318981928495453822423619173789455494777579695890099109848484825053419842750124270418931800823380828290583783182728171811604002404476156955858896216354903716274121387409272986087724460935719701581065148315278459241240679998809030066797839587750484383265200382781599283504694156587724047676720411104629158236101574629649502353781614303075946301283413922377476642822091223566488430300537761761089717540626347528737744945221165409813128997062015917684075457417519088048200054285246675046374403876761144211267805227591040627425487976605864388796153158372487050384918653119411287566136370749412280654528010603402219779128346611027265819864217477084922441531115970168842403046848948919377950593375663808422166374125025312897896478120517294956373726936803782891932661060423423655891221038012054041391698437962244568365472702797545455844354752376567661220878677303531951202490930996067848935919151688950655772045791523998499642463663563795199798407278494619935168775308457783891902372362061416620667822621224335639442353197846502351914135985439299389244002651656901664432963621466009526907329588642134027933168180450155560882290809682947100412182096553825857000918563475919658413015265741221450639737600903212102567223704554196416359411604446196685397042078494560160370506688429234914824192520459155476232245002090532295019056358239057589253642168600459358092295217463937325101210892110638809421712968021605348531547557057744126635387882819416285114943178389462400566866375430139187903170644706318757667195423265379866331924052594613588945928852319860961480004295391846197745343589412585266862607243324024877194441003025084343935411401845405878281501929084996499651378632964998213662379570358854022527402809454955907508295433168024258474343516644791285994175662210310350412889244156289985092641246226412146124227206802485053424740786459163578782857064862941473707020615759202906442301902814689587692087306306546090513582197853645102654066083073142753587312307693813792378943174023912739329517234488165764849983852701851728154742002625260308116078492361028036061910688852226108137257265348419559002103134107818443562806564163490932682696588008455525438172842170376565207138079990804428367757836212138907846646502792461988511901551320990980063293821532706428644048029289104669368282342828414152327619160030036551523809437236244292153595176223936781615633305901067138126306738969451986033114832152420840570207018083352974981315677945203784575442139839583052515724060760389643759404496418240154819743791225014200524359098937475110435083707538081233456284828901197159565748672237289858819699547998498464652277189967278913115452062696551595457814992924276107697958941737559821709592555039722120334041300342097403268666172330814259117727259568373469625301169253438013200907104991540752465430534830315957266542809401100429101120261528091134763589380765845156474434279945675279131377535396364753172724732617395087300268424758172718327254091706345571268335729934549056396125264684716873942644991219789719813322771850906564123887460074945630718408384143335649401036619417802681739507262016235201525230624807008444747058152672304752954655848267464625774490276923094595736044151863863620333090634616644005139148348934461229727724985415954190231629808611185604694989299683850485685720398001161269701760787256707824744294917108648541430932426509302676841560749720212962579560766657919572600505815096370441263765988227263615306817073290890708076755356277005727575825320975977225756046031948843968529391319721761945554821904276142812444357654772968263347806686577756517073006608513793566284052817689694179105854528227237816337674213267254929062682715699519628983780764132375927354068132800881442374683551752252257606368048133664352015355657381764867819954999182837444261208472008272336975932216775971578417357773944692535730060663166059771043332670746385252162153519006970769472628729576459311086514947806197080862905073682348999938892163402195760187235515404721035451409131808365497593011996000904015889923798203099306364431437349771490617963297741792172234644224856392107348947848990829757327811283346877846863858825088964147723983633163077216461856853599809502392418055804800029514413230418497449071270256951475256156892236052490074973830291945108304023672644405110819236254697255484038084267582068932114223591039195121420145604193934655893726659939770675033081797339060136291058538680588680233503329235260919488083287719571480530980559118589062323909272525507676716932884978224155101843345196682909295410400677944680789914976262835026991178222048547190414646059749332199956736137474302041354391871362827632157424717314583863289013665559543807994446329810245446899083486991485512738435876710132767516543488230921019382329354486087547994963572811527773560949170739616900157942802195079563629969368942615480519971232430738904506298573234510163965022610236010238134615296527824610453870889725315105266525383495644854385161691181729627417989432428007442219419707262129273047036864432457487693515158289559509513939011200012252101837039506353214674838195197337332180536777454503407353077084933807954216672303885836412398570353245451126424430800573099585043230354002767590458116126747678831513523566050909724638306729670712894035493058476861961836070301480531040536700608900473977143567163591656180859665152359772828207036885658327791914417088723725764127471504902946455702896112597584736082348567560766520497012849083076561915274982535470156033175512259130123703635447162251541895224094279249645484254969595369580497437735975207795741687599231889768504261064628124716198660354622945162740731071033121434493564857882680028698931162994314991497985140993528517037855304138226600791760010747835640556802076701758827438822340728931649139096137401147501663724992351566576951382665991701038477730903791953854349795425339083603470629239205561981937795162654806370501007328385922816238253923763738123341947562881933973725411690952275284587732283753729977069372137544631669607655248787434334300660693129880393742078107852225215473500304859113279273832321199025472499071615459848060719931839503366229018256835348427889489800318224350743358001983300705576357352678935932769288250633772422792378114317115167507774754160461639998906212783454526523935038882996286911582403183737247773448299190069594353644015282889922627743471212663988561595133304302413693089871756450383292288705888354370503936956527979936906955620008560515106861758501191105775081862652407240976763564156552820997266809415411587095905983183259877060631436750935224539030213716718082399499947677811763526734916705505967677032146094307667083329362417556100462377671929867437461560384661235599330192328234336832317538841025486081510830719604846572632474647199678337438915825016897231506931302688731323521838336593803877946380698437004246558667448112115314217372093128748706306532454196739220126683355809642318720505137380824336157794380498177729855334557141322635449542636215484019634861947116493529778695905593977068004609802007707882615256174037378811462125129891931405408930375525983834567171619444179849478331102051716010094408934118804832525313626999224201737524708650483342648109543656836407979182252718362279769793584772292104047100735053940709254590075303370002343755331169045150225713093577326581902564442380061541284243437967587730456698540944647963029652168628287109090349560230846728757069988599199566704904900218547167916179469181718056821759159485657242663321740622991144214265583431963273280910592569415880181722610438150320096187144300468788038884066261839795875601624108942400084585536245225707426709788350742555737942622953684638126809445110223658781290324556040777895079288723971608439260034028369749818936727698611724323858739815854791135304691823419510180043454520318092342185614553172618902881006358479197001751016951586859646317167358115051083413732766730286607826363242344230556702769437458277833793941872776181994451433426866309407791215835225742322002468288728397216802327433641438654241869658565006960322946668680968233785397607883394209802513514658923740344561509096767240033179086448482939576594409213866404522163500320604760158613183445404761606957487796821908078513115061866930162141362711084378105271197721714772024419235786975510745567038250283535357134202962514148816842582716750483192713618567454716106199457138430596160570977432083119268170881003560753218734164070223475580948133293901799787810997308509364369805139899906648012333434423123752771720951518684017655894867939846217156416497102431366870938151221428660848789812719679105779653698380342394026923214015043048750013855187347099825146097175307881136893522461863322174196957125770442678558417977698684279644562077196069142601501110345580212735030565337708058715383278652090133621754145134098394432542999827585408757939377256618968151724055433902268144994968284026651725738642900408541646605088872614945797617152189300099456588957537257184116368400671058004685802212591747181928494729909020918019114203307944284081874144055010561708323647058337967688009003905727518193294249043144975739070213326612764550325522280269275618912794441403165591092889843450740700594310767228864464582630320849750221935024979522016586887186028002305186094175472781046392560904528416984317117579692371113850215238777869232223168558709146259463909602909424654324265548697226609509858684311425731131188499489572730160792800986123995360638785875251366144315367643746296022468269776499452593833210509409807881645230213410629310213008355204281731141293231550414889145840258614187683153455400839815494339069247921681540441148811322413808614407622632047552602776577531509635919293914332756650778710132713306579599044159139421039178107741362687227504512497664936393545605567672155304487780165432925669443023203721528274933095009864217444300242535993309484385478238705770718935903661568718987475825450285895067238566253597071309138560545887518342146963949201571903758052232260765504643839689300525769515315102275766444495305182300509295422981464789253096642329094522040483011000309582104737432730045198573865395794996391102668223534064011649249835587718923712046314719322187983693531655547601870379742907317436636690912691703109248687955089302905186288285126257261366932866653530736948542465440155039383227253490699468688462461521918162224756341915219665270050125731185527514206686263953578611861840964686622868325954428337763051413041740515410731468743282669667846956024502019931974783788930260909126863002228200273831232719230529751359910299561082579801422787456229989473398171157022314666564712171453352499509698914678903364308771888136496799919457363599907652946454725636448898758781913740134141696776210639828843220807392062019145179073260846953818639619697708175761986250607167727239872625432900303794707870519385366508687938610631175280957741384432703554413913137755420328978911448358912853107946582534439478122526228832477177887869192730318857558491142050327556706712359429924123628755459860085115684461131296958187671722437294768075143588752070524498915121399131636924233195975425233178509617171578322408520730180440430497145730450094468176164983259580527741418138692463963610720487166820927197351482791489073874702357812665399883177123229778574215397370645020204415366303797074401035615599021846592323091888549740936976209299511990788010121129413452118249539916482522335006322215951866112860921359352614658190586685906561338824624644466549961354760946577332359317058737304305477972793547284074555703691837756805932248686552374547561665675350016931891250360640548090926668593672211772944455791313954112266187677094203318830845809454454618893142215011354751169427346416187237194171057673009066540063712254425467319066779576411380790920808986502257449101193375067492502870479321645045040132578934048779499775192775026248055820698208049889959578623858597426747477351400556109360051600847176432405470837769088261588871787145022979044881110376305314642885341722697246140258344531238803487600991982114411201784684439894533859090487198160655096106961774770483241983561287787213383822950905102391799929511827915507803079004319451866979527275345426239102499256754869372894343379848857263869150145580331731410503657150908498061282437753840038458051696301612133590635372433729381063918912600426575774104246024914952125582214433199143291525285633369183541689963676619181013099600368461734498606151549945788047692079937227116898291913570520423224969388955219871875005843158924334361481129905170382455605312394409361736778337340804369422476772904240167827448963544831847395102092883461317905186351015934169160950119302846991572845543417174700402849342149857291065098322321338073745284531363598070965827511229926928887345054334741157171678511969678937340563796532209143712017857151859011325308980806234736643845250869326686566893388823696271372982117885948711752011599907841360965227794910222335636534129655766198035957902738710117024963669610985281280501808343678121457005807049670245452956106106411030995451221732808386054590555686204827950011310105608700169629389310617323958639200851658342609946091845582682539628372104532314040349337487554766811071114026954253758247885298268419290085031403891786588419575441334118366901640946215965849406813957049989562061241763681307778012241855540790615658316456375236918151065446701980096679946043455109255247163253679057587019445173997334207380408576418265154473228470884485123892161957835354648962923450412901558683867567758203894456140596372408751334376348681758086197108810894655119206923897256289016256757484755267984295829683556857034351954530729639386086931342865778067170214421720054723075119531811415882831589072847285312081489172844515270198345459783038107858762477274000624523182108429905426554272367240980643977775039678675741893668822572513557248548101318280517543970495343679691505895117946286572955048004076959374784427209806830168748583781743437108617147568633892772918079275926344005120371201331636126558883321133852662168744374002046857943779410660127393056293202232625885327171473582280005124327122353330816728529401006668805621452553479977149999359597487124219981590246472104119542318303194761193044784973606017913332749884683120755031837105822482233095243935196702555096788123397493118427337302640582619133387120028894999993983029384812940305181710657923523436838050528101666915375678827077239987702745635000041263465670850570911591497473248475892639376795696303978682675863695724799188384904703565614620134730372871015359330751153342159889283564743865307605125956009219355344993858661068320857324152402687900750280019349760960314785140619719483774225056844807545881507932453554053755660545134680648010364346232635279557273388716918114898593396630876801799026129134868882077614185633084265848743881448620767688859982819273143424262928022322390324820759290950675641491824325488029127428162700899716709094768624289158316208985346595622917016486354089491821885350633084615863337495648619063569480501595147152500857081777765522853301156167249706784381791040308634721221381133456957909112760244285844283655684076856569286288126532170213390274969614954069887109700938991574409559934492285364231156602944802506507509392207867139588370871460182884408813523253743429584091499557974300402575364413259254381850656737105543333740762675640992195367570115684324968302697151377574089255153418062456196597237436329128309320545016244725051446320269538162511080212678220316433955406214442273752778990505016427314946520805967613679074915071556826337372963731665023260852989402291740827738622494510728006737295352274355102242430103727950075413363995796206735912809632788692543258600028039157287046844531701112574880397673134073344758194282974949795727041508557014745273810019081203050638786699996307577059018387651479802007903988967207475132748118086615511896290757944322759706406293583658003996122603672930432326156128505760730244514870075362849206671599551038464068839397174760638132410015180715510247051449992178934374920387995036338096125504736082322159120938533394729328946916353428504210654010762780748060003008150889213239659247234832643684587871161789383480373225260217595890392230624112118450777408319106744483648726152802932759970344032600396101711406147791615286117378699468646808313925767403959279155078512390961066396762148624729552741532842971120213113528884287962628840706417328693790083242986305725339670994917246175686166779686366213806467886736726650723618598949988899639602736231951628036767207225344574586671229788150852620589190380923920987476426347135985666698353859898623778568553118782957193444623775776548587712376559650583934564637401653645373628111193507569122710423568395196211130394699820567152515367291942150378136700591214838063911754750002195446336939954235243388958485738348102550165104666331330294644973787624514817474997674370332327712987938994745315954229181562859979757345361269138048865025196346682637119130800474419486448146680142105954928173684753276509820617879073599743681406830762973449784414379214595767154807905281536189394410759759392860359672484748901237731804587147486610673856784732670759943910654429203850657864104571822376209458144852981734642429892347053570747261124751418823641675650203322378529413594419352820806842309116924266119542717307903574177539205382299222590788082948586276957876624641488658385609173169868577839418004639995357648079588957452893856915513670398866775632696149276520627237698161773473942493401198680595182180064416339611868639500924735881390715519990306406435897370936747852492506936531403344130732902304081558399556216115451414228233814459441115795227050638749109543060764020299649391354032259793264370016982248521179671908029283958877001227503732032686541922061778813013931787609784831970836194722349066953778395238027258078482441627918689425288142664488410455029926636897670092516337463595077507482167322747733817996624303008596765942931787253199131286522028472573085756369726270979626882039316594858550022113027599898602247559524085611224600926078005301170617982059771409339171637374508358962649386863292890490831597814867743566959999350767879359979918032842784495666299809499554153294363609275556921338432813255172435337116596193946605130363570167378557058105753373700870977674302663825995696831436746266523218965510081521697673282988014669147413834005687200452303825296331020781856719609177276334542907962521620587852429026280936679685368948946616890508596008680990389532515905057560351312244562424113327761838424105249668875476779209256006782277258945456017421221987620484307616332325737572880954511554145135498729520819728233575594152413974853457064174796063990844261159712223206374109054400086628714065476509976879399032166946315027448545088198039415099212215235292435770932883256756313114979731185175639145423902459182282570176651812301943841774422947017441401904397011832813773664631770463469485922598719972597122050193312918135268163208805732040747657956287290744063385428883809956280555535002152294654348791925275551644742324203842712513640932174713866858620592260738853625879629439896997492312259196911688591282680542657457763499287677752521979092245107864785634715909259610545777048891296725179972210962997158381676631245497943318546176173983527519412731663910410874845319773518208201039210782518369005287935887332835661563461565985302940153219511467493345278049614295386989231266093567159177609228325455508164692117545697337036604212976602549720500606826355563604707851094830991188680990219596856243505023779931918370381732293419099492153281912492199456225242770385361104774509107188801773090953590428036814486997218155036479169084003557613809372538825721641908352438501706304204123639035095176967348350207185086915108252934963996961580770215992383544284083137438941776279845170230176842925181572265445710692103653473908467117919039773046005578660085526451747435541094442064879183787262832287805199868679076583575511330411941898472688208753898560181852418581894697684418258009546574725703316493188578375902839572643547074331739319506619247870935107782727120112273891029998700173582497484748481418409169027967398267687542047744140902812629229048198337552575757221208034443779321367662431034832045820528188802465365209408245209818775298322690112265916272304686525298619498916190132178905704483335494276928187597187537672724672481164478287806843370288499218051596601497024877881322951075433524551125650763571480130178051000862045468169807902999395153681584586093419895676017049236278606457416686402284439848142340488792641605869106035341995495857841148385153528894322586257784746308890568172903392754776543946411678868223252196386277376052210143064035213369908412660319246786738414801804786214704707836956952019090517202549392284506899465595692563154544316998141886386129008611669518068509657530458374159896709809925868415802644791387481613770736121330927308825472505483487417408098784181411168281499369556095624287195623731826442939315606298794770994689038131197451626824503147315411333720829713878533194144960245808750386649597349161809779391129344495466507085981930989542772920539666763085874230037247727256151764070725390006630849277346977447413608200507089761987280546525661906664131345509562252368118395080065284417458019182368892734014083838888975185556572132715656231034506646978205810979294699966071962146246805486589228533118406214030691368699217351510919422005325059996900285340121694671574269914319335833964422183970744535228676271291568204977270573636957048846440015884261219346250365136221187420974062050930074999143581762363233959563245190567921998914655661704112538460449143459899083598754328939696846404181363382503848152946577793736048759663139460373139892082201350057731998827765165666837625309544094520914723248539078687801977081377151798075701722803130634113565341621565156501785607007354444123374333568677038934591889506737512793482522531939407984090346237527920782131758425722958091401983717864039310832032813905993228340170218940263990572863069539443037718543077741935882099929808017645532325943775491268906776167311595614846555478424522718684048438223416246031671677393061574714879133199402452149017023774976691843257551089521006025108472756503916541191589858275977817324050099256502484821180579317792941586474264906936478727289018755797201939279324560116639645487837791174456533917009239709881424625327282506192122079688905775834220577114125431219566705327069648519957561748481575575373382455898347036557927189898420028924196853178820063910810872939739611263679871174384531354839028808984282016136957062047486490446998694472710238037320048055028850932438996282685401833607198807100214068859384774253713186977282803859301965230495491114282376955335127404983893085056979327702775222331069400559882920789539154364176212050007146838597690948186255471920599382271677157587184254791301909501524433100765527823850207743681408390729322290780304648765187222366732083920561529371093000382056206352141751610715938725483793417086140090002652961699282077821606940309309479747934801235584947600896817362689913267982063103729773248959812181366215566969551492104090543721360239527584208220888191934349559198241558806848743461419719193685932969002489387710022140923931081556695556526267299197453626363300201703071565543788550266966696398709617738315900984788973942170748852029964547764814105365522264957139265628024087297743603973631465882156396143930801114068424314007395593446657285854992481397002232862978924166391957344468046672923725166228309925840262158845290039482636829248808838598713064644198730534855009072384293720850321341330948114523644115593198751891820518057056899604035190933170056241031202502154797699084541739021590899719958194327627863940607509095126698910387838240719748057289954509197040451858653936230401016589781416183646646880809316865253919030863439521713474282917023961678010267615614589183281834507588077273586855006098105341223733326847460144039116436486223896027449766535091987354324163287070712954314959301852038245395531158474742223538350824453952080842159313168429726929450503485589897856495634166160395942233324834194342640857771372285750929326745920672320556082470110942620178246883379282237430403757146086890705220292865477600170200560298120763549401831424025467169995596684193782966528865224393080423398091990972922728318731441793578416193658703280990822798281399792976737323781156421107301350409216821404009788863769307129642855983306957910816678507462410620779372838134643828541756378874695497808716258616231895036697631490769627658404577343711478951834024776537676240598470847090067509734560225222468370311260777094581054922019978940333093955735187930060751096146589617295151337810817670460748580246715847528422153112870118914296592671038692700410518313900640336157058725814572057760533303288636911533853842538964319096990525109746253137382376446078333839654478175073448542551757505459422151852688411308167612714843778845966211524904511000082868644075723249106134522985670667952445043155525476311687290180664453923767409091641380496101631013140396947622089586915943793779669269622341349013998319696695138981089242874586604494189550009811793779409681417404726094433522868650986200527213170037969684672683746526635106950090452494139664941717924805207926750206113547074026044309440338771997782328900801210364972270733837202207346386075294345727150188123759323506047720944736382699684027937369650735600281285557347015685137898321044406084328031015706476307143550525284047109486368931689643229703867058486639073329766889864258555558443937375362411574652383028711397556705989534438242669962388249954926479952459014200596301202526889849200399990395107516683534617226859990342573548775867831821132819722537045426775249296425379163249864497914556404371510433980685694891413202154437108773644397270309916220677483610003348207742624095106819911632917124806771716678501692529489346112252716165083513807853273071544618235331886519739119037001704643592173755190760730361311291298007929689644809250787306525594987951599049311877134450030526680395284168433658313753856534079420214827885810123448325705022122297092961875146478339007384867133328329947180216263055363877603226329015360696049498333773812567466533246658355124627489938633222781131471344133349395509940372321332488188362318058924781802855444374972533587822835942141871357110636833038317817681437845291328028143562537229656801031367516360607286982609778967560036934143843948340484796151779017668857992172586194792652064506376074729459520677321989654305657982921025462851347246650143664990160426936852308064662400995289151948823647609413663098947597982551337259158929064823453679557990409575792187748356477050249441981107958253218087881185469155831349071167221947057879327849998292502458448056225157628250225860496623479982536816052734247359687625641532654013408883467641013490463136586645382473064165895954868164041314070712211110116006852259206646081203195676049831102494197570543527243585500890306801678368478546644936977267315644777690950215380495484669034046335261939707890843007691553887960830712008704931201236802346427842521191408458803634464407481596902857559926902808796151599258211675960525458658352078153038309909857803620710483598186979181141216265400411995987203958496131272277549872799982654488878293301309768184984537491238966128828688731777696297808085517086593044879910460365493484916001167339778596617029541356536560739084810537445104235342532622217134958860101460437254878779685994473316775947238094444687321896471289838141162948000614879879252343515813804741631046270987096364450715038875693767992458317056722678841018976288876732745260214621536499369144361066194626946982205141960724435516649700643222369508052201302402532777972796807562924367773444331114577667364925581484822474696878592077708309779241051615452881383602276473861520434165429930326206203076900632082205269495580863033820048677793076674575310266619709992567099500812199624611828803205174198298856019215507852136258362220124332234300314415362314422608755895296972087253877696219148697557144918049897686688475666945999830008911272140696837128992034383820720495355885865109951726273849849905291325750294581967181600758164264057080894895420462542077444047387528938799736329433602491763252590933597933813502241663555653667623983620724376434794646366866911058823668356133561576649398372871852199166550465951441472269850134755604234987589670075085795199503614718201320389400985587916112866103456695857633343845392415695696685937113376753558650316588675117087029873762772563096621664915899232424413700675351792799783207303145278730631601181933368527910403173199115590233938398416457109649131188504649936273760673794379473912388778328802730740345667666705355626464900281776859556218573975700641018879220116321976243359410596839142202084816608995663912973983064922523638664857739217177148521259270692076476665328298435962411000201919957529840121072219957802177394871391318229347220573313118209654531104565887892962718747798577045968571636414904516345039852071144377010614570727482847141577001044652067029339782978967736126977678899067677948459622584069609350451996359820780785519084024222462167898474514409353867175323208501307785659117553809650841961638932399834794822016048948749872391525521707836872022970339783704691990245463268917504705561162009768073737160304218422863514171463565168656072272264175950147764642924606430977758220650943748044381244240840088107738663165183745865528366899505897627054984694082294052430815521291115460988470651264694978873733422383956040322953611159980229062332666134832887970309750954466882602535158303559345962146288378403670009199590047511512920573069909275635947710958535738228002400458232120076013309026979860614964710057165746844708998981059527146500547614915165581964050079562902903431041463332763845756323988751617076779735231395736304169288111560416594030384079514448798851898828487306628522280192787059177009392238420019375614861070050029741118596145374474250776919021309543968942070050710719537478859424023538506707006791628835846279473321911505074583324391488631776410544338314857622576583328513124245503074628324633637776240302100560755818548355997297697685574369459335699842116735372137610982486633724587138886233368643458992934442860970488508569266504949676819647008182139333377881946506988896212480629775466235222508686229907155602439471866009907539957117797061773327468799815567034732553308374890058513681614353465475929038441334818323726854740656264028026391056626540072470678422172278295340481527678166609858874397403576835840263783334707628763222714696638845150326346559187618185908003449627213248977072372282895720822475523366708858729630272927246865980426078426302452136352993911406343260165304408052024394074143302962245587607512068575859195891908846383124350303226217044087055736114367387914698593399719981736111614606814025828544725569671369703900275540933353345273589355988376487837201123272985549867452800133941972712808976137575587511901144430827726652956634263526710460323231660884311417870261055457621360399181310237991496555563319292944148844183736736370797893666917397958472236313734916792118540422456505818371035253299614646173540745531740059375823605177621733264523731255722554800767529748827631943391134371804056865650727264230343684219994607988349048290208555801650452354705340358619484483351648341974473990907306630318401447866974592112175717714404258234079597802018278917309907926856953746028958672674059248871709472873987999088816562474857115301535855436838768205609512837303857433107917369738884795328748328014700378496534241639312074567844786343316450378083316992156325097371870883224916407852669012265514084242158221381892912910776728171796104379899851789202405331474616349431706371072840458130510507189402502567174262704977477463584254533228508140775505279127300602663399494128441040445102382959935657523238430206448671346006180939351246823541259915273124412169322609616032556045930423704969491992237425775961618641085156258203570239567554707699257249180049291362225926363352301602825783694664404901232408489153847834444457555310568356162514055428442532249008764265073483786557079858965752803010337608090624356760127017392147034324131981366300425309208286179963080703272256853190663948161055105180463358143063799936578798916292251427382901073756794280446846306953494317539069691095944201186820938801543072554839470887317838830601847164443700673747435242745500585880949043788189753049080331600390493100627823674443092578705740992163748544907684730750599520212850294142950805861326974766423404945693188723895285414533642514343803146842798842173682084851293503712221203509673664910473283345247185740766276525701342855823901932827313768637541209875750546793953373786470517952114806127541045144315298431037730500037091077404836847745907938755352391794078966255554798306849740627795074325582236447494857824187396093150221080480977570202118588060149114845101861613060792363037258728905827387209178565832277745850000972409728257130010729634311209703330247701629418645894772054183985791637102558575802843573325619757048428232676436302118475986212102806889446098711590712636288439736394990125418789080372217946592620370620286296015216566864091815433252619897449990423695727345215776101143228570522825842205919567354034728138038723664864729542639405828674062813540090288917499776351180910897603033799386475062867185863264323090505760312557968757860424819515355777225217471633415355672754460965782572740310027969481725344007714048690974049732390638052291066788860128773737016701388072099965981983313737731077412527195014507214489337959639940466082311475628943892291420137052037685570269089460782522097320301111984209824606797203596234736174730051231019736937497106633353146429289397867343704471427442994003405737220457772414565217148011281301010650542602790084883503070457249845987947595087513941058634042589047466045271403743866745134497034253380349912826946020792574321542056062584867542923090609359131367200866662619000619241464450026342431115661436945518387443877426399416312800038023819854945236340432887993115547892646759429963656376032791505658423354115646968640805637251082328882303329127994295683880686015738549942966993518748671618218773602781656915783178679598244735375020398579897445046916847285505345256667737484241434953947774550324516582398014185714158117601428252975887114604028221529246504306268599870113326525614619113498445074480096556900382673954054450833348580668489058128868024772810845973615342941946753535185979418414062755994844203391188101456294311672201005523201196545145800199908014616577450731093469133818893691460783501379658570095908107545254783758443883173508702050936758130524827310419099434474335187301205416864852756322061486708481855019859112939211167235367005199340058386048979385759644307053125503344935980382312750511773976544306206415494457417080100842675734056773520888602158353619746171579761574256196378987725200637849318948988861408147260002993855275037278365708819753826337794915275067493260019550488912062342286722818644548795369324580494116869755190439700535141540542800204777059738830918014212633061661305918654812753116142982129286360724185220346453613820429227010977984156563722466581484712448109975939588740201519137156475176425039915321675766523262783495143539818370844285094263746353713996878332730843175912801472939664860330640479019726474982447805581177956714782556409035656122992425841286664055877128216057200116480631194981324999562074071685226195506288197430363239358962983886205219598065098644046074260004026152779946559317954797174134018519211435964041732004623410034814885815766806541218207702352973870307622489280091010688218665334051017177398393265184515448815522177073235480518586404616530454907340001137952763304648302085916547158145448297775514871173105547807046565950087219095724813803406842388588720686830518648553159307946737977760316955027387591664483489446501934285275474086110480351833960410017859628915012648831676879792723464766666639121968628089979891936603752384279446582140920460669942732725753131228462796462427152761424820846900670788206571275804974294810439725960169033301476033128265531011182434497837673575561190690173939656406140110736420889793326369176551154218428781742080569656837253656040825897088032641204566690863184537107416770692774695957310025552836968268154853278363449952985377712075494038946652583906746245578570698962278574555430698853493717648045342901474589491168259575877153936331547106854613781033789517560125512340854643531958240596333756216393679802813160077380748710020214656190910879111813982633069983028034949556942279164609145249724130752780415361274394536585970577679942382419711915682399995123617823790803642875033637498562899748795142239797529770945121324230572957443231405688226703792951765091463081195749163264790199401258372946544160456024336215748804370382268979688405984402215902983943928270784520388604956675506654262234901120266790781821609727084185053147703542914718246064121087630685650930249686463090397064999390761660960687661341783269250673113592883413800103171011173775789534279263475006686269634894877052475445767711152523552716887285949884535642768308292001563417377502154376733046507620813433671149783352092612002843170435847231526080649361082034537651708077479384721419688327728066946214137405900716706853128524664057958125722102989135962726749738392190593239101475713444167495840582413856332046025480285855658918905651467636388189114447475553466376519161602224000494096139327006667445832417339046850424937068892010668338873696578238777147209712235934256438619299201515060461520717218173256034082170798559218984483402948889115188874838663184487773164799758557160854637871038439715393408486329163878262009396988579595380873919238498245756990825959804552301568070054722576199218874131301087525281400099044098453536085556965241488105402938125638607660370614197506580708081317121289187316446574556850212621693617310719791967427115588203343093955179308481054096020081660481540630984394301100256202628529039228917343435018792263966340862492619165670389584379526362690070565383164430774966126448751294769554600701607283968412759802791019366517895655622277777107985916840990884893643273358116209650219895803135537918371912518447773322829419707441521322360910251971573139584467078419741017374148248795538088718110449804415353208207163260561519642084741287829022847744494133157423267359018253822861144570837495449486179958888830694617529571447074072937994859684220559850027204038767867774368981087705853711880996944047153743321075126227577747570571465030365576895805740233737915974593989778778256941056354702204573385699860003596390612017393174202868380286295154803817299336548955701068565373453101038293659535284922753469181184171522370740513002098726900382831249424702808804955961793799510982299868499415936171926538836397494491395437849979733313471184630875531646430388576005525924143871347954143832539834254298742176145469130859367133643950725527937639424051675489529560597328700893367626299226994840483550668417016395264531854662635870318312771253721558039555429475464958064545591645078197406703173709282177259153594291115707890804204144973522497803689849999461522743294091527341903544053194569314290428266252545061146880082572929092662276912347635677668073599587473316499876104951715027275326995660406381065341106878989109845385513487918538572076212195547252559902712726056870862965290138205192357675568103602529606050857540880832682146550952547504776876492400907917461333351385105290171032325079425126985595716290658520173165490103513737275817891290837533999748963725966337916485446750875153194408609419422954303083852142550928994362486002197951523693445474726430863601356219631370753161729617267236528296860332327898167380909561545943879582039614430323037960405384230538303562425195175826263222902408009664912138508384816230910070992942657178503807337309053772929944114174687800995782066021694026178067137321551822976550644207525385036483395319523684027965166035904318157893610762367665993173588292734197030165342746194389496839462300061842165294614001023738931135086715661915131385220821806654895616797362258651636180864213883131942448396642822476357649803370693458740494910145919633341552349346804284775863695936107444193847586048118418544726586732501665513553296689093175229069444492588678363562819398714147522401067211229533649498929925321664490044235732992468845129030644959682794943598796785159584401509990590939451069639867050809765084554115938336481947266162892921007237231197821012811301395084528681938693812431102763999524896582372495414623256324864028591387983882048400411009937404755650368619097185883935509951035925463239137388930507585231933462203161024251380621783230305939442851095876524625523296609179366378507198334608681366536161496725222314021684724385186707219617538831832410792593632393768201448238461120334674518674217237597688077063374880325578680236805877836385215769467145501301643500984880038015546123983137796555484477664718354729749725669523832513928472704627762585919572458479058259772272636005998462981529209430324354766793124737783697706831439952983128262659296668040177902427237483989525631723608920406083789856823211350981586726628857665529935119685808576037149518872902189034534122315682057716609573131608609328496468012500463763697929074242084003256866404614101997772211442935038529896343079470234082785597699742653793447275253983463465435432952781438976630426188581079603223452469664922961487477242397919230032550575397668568525173679913792309908314083409721765249142259471767100190955928554015347742109999993122030869663192580032172177270605894176480366857531428652311771104467218400658028879557013303604747596678899993834756616307795189244144981180845704734470758071794146917384857740326141965898736512415398713348763311768678988939746714637411291366468046792034295190534827930467019726912947031194329248396536928185089790852072731986424019177323719934031081975760470799429005483355994910229755982345167651734340502728006915869634736474548888511756325494864453942364203664614667598484214249414705086683029979925008322078254248128894804815017207250783733001372174945200962286081878302514876085892424743865451185403408588707339245556105248747521648902189510297468316798216272672288209266345410911008388614654213149825895502364024351838181775584920558589079047429611104088133861984538803118355521674741742011624000958494045537118878954207099670151254945011881204331419862653355335075046492081978692016137822006913593823060019546150163394804731428968240035276108579680951273237642345655045493014657401674544112519855554897252992548894633686141905825723963143328328532089169990535487944710984699485089474789594931945525725964725105585019831937608656609895004298097774988102889656036691321698605828200988156334632658473343820126811450836949657821996781023024508878917355966242741335858111030929981347976319250203791312952191848673175227123912150560630906375312046288859079027992317333378956079228122686938834065402371889655203516533955679342738213255021459195642528109827982303829730381567679652530272130707062697067089381458871807611282410795047300109202742449308105442010037566998128633312140179477861760582762283305540928841244092567927736036140661434751808436359233438289635653229801035182226829708820857662710319050210779782083558120286463787547140078216333799822526770767556878206973920538533405587814107271910047942766868397387543098245427379559744317988397995592064472203238393287033166924584514493766419021227962940462446085949229765971108595866876905352763980484659220521026388537880596501207441722520683641045246138926536858881108206452382360261544516995946257127819753363677316959146752014538310672939470513927098588446344542453707969770719633620035544420343760651271996001342824511368176592018404672158712299081737633725488789128836838185457240090630255122005797945597719278619212290680150551305600792104407316184386779427024208587430497278515468142301350791506335748403290727519241091675013753438310747602284463240825875600614734022441767761197606318376357493651605672540750235571521320654626910614823853562035205393068487342648824202633240218969541335346945303504324538545544201313921109797292990330712010574966913765354669960434998460748193065337767078426921327321752506091451255488917715095791312062403065551253164368663157737572248419648640173289809374830473109710552860598469544677563372219429587129830788441542796699552654443941749536836958684170655297685258524635817707289859316158324838891634621696809093632023470416509037257229880008536517841186680434748371891763662915043545786257010654728387538447179015593751643644799102119170127587948362863782395842797912242425734212518539095817242018571922215092895168860582844780300148713715414372018171753155347722550776563536994382179018053293492022643797065216866767497257227080449956418545216371367838512148534436883822331667791846098819366635402456803148847404273731889317140845777113788284554798566541838483838950775489231386324035790694924181715793693893019540521787345462227453889580887462239594924060902063029145183034778643550320814437992970933090669448610715994832141182745877011268354537511576817446642917788162744562110816738234403996510787998883677445161826723496256655121194681741061845244013776231148831806077781060529389485859175216213120977364638538067651391235479101719932953882327950847169346926431929408694625782774161401317142070995219907802535403569728307997483579686244964904090596753275744099030749973405691976543349715377721609870590089728678888698619688126158430317409136759889537303289127557399803197084216952836018582456874914925154509851742275097455369512384331899095496408189640948361716283296787568993921912425122360537228121497311283554045747613012784858689398055925614399502621088429065313939466779144857105338010719810612637031982771465292752863733279033532804462164083094761953307093963125917988607249872264629260657904738329502815440562441688573653128168893161296414862555791277761980410987520527083603278441762829508071823732845911846126110351591924573796752143692958058269809488443347286613577271106950374118672716568286689890348494142059183640662078187055956615310970395816376073637496894889128982259034128965225873731849913119925100268672848100661562249093587037746902750849897504790823835170534691475989202118884048528485914587278235923146628582808901168787596848163151104772854577521611216557915239929765673799801283234287294237215121364883308877305731253992745650829861936109414243005403553133160061252836661178492308094748801377895445756707074878521691863100854855192891766761595809431569670036032169302371028183631446449040551496723444001253919893254828382578643997072910356015577142585139896845580447574263626530697626642276276481482904983600615302545625771537320564350769664959375546571330783170197711838461292333038685098178006222971413125680565355970018620718746306705424774791574764764355035540272272079722247260071851313628911731885009052287706969517413470840858083153331620118842315829617689423847179072761310673370551337429278964150723087498547501357189104390953127678811493872935114194469744380919749271281406442360790315557362938275487578632069349710444992838117851756466379156020203583848338503415306099604648096665670462989366723735932429972319564888603591344519253980757590445658361325423386271599250076875770970891397847958825005134068215686206459315113012162678135739226348694998447906818481982470823239897788727198838793212237536685010365251757961087709229667288333193611780467892606945061996390448518080298967304362860815913035996236428890440949700332464776933412042423551327393859276717295293131501846253787094096856669428177239212792130216314935521591584523626437511294887726235584202197433079721030609100089703584331722835730127340655222263101574089516039927262436375437334672124609811547517901460322866321313641617162892775846992414918159711641065221752173365406152603101220443574125163913731405619723348606534416356387781801686136508707857444835365332299331499817173935544247512331124420714910989157667597442275923234526664210361769391415220809231822523760869728937296266936873993348491180792300377162768216232714982606844990520655972198821248952469492273534069367896783717560113998404965184249791740171963582925473065202238024439308460458672470082919159267357739843226260176022585209105848722147577793510182931106833783107983737220377713028277280531833567084347147742516453819293245385251377989475510834752471811240587473848895340502515813293152524851864284217397162850773501413116302894165875573587525362394482780389913921819617020189552059209268064056145193069943725765392292256574660907558660935362518407393230783382801562074573345040467356210217716335345565675334644758151571477288653015708245230909182986943330854662763569682104137321249006363600470463744625519116294949819316665203772232925968493460409701205780585198901831972627399410966334974871117165945522869951119052767610383268731044693415506163519310762856284947805633763152385795928122483164115351345348124926861515077823894389825809953153186597146168263853907324980965930475690047764701717648034096491014968068502161735235192139967054437408123583531014666873549817902201226749868198072317905100611615158451658378091280217222780041079222996833529943571264371577297009332095974390304198154702396528880450743146801583784517962167160974594040031091438152887236013993343368531126127100187028259957840231616752359544177342684437872093788030781084454362494487171229300546946375819084873121301382129276994178349822854975222324104699220958398924537767621455129159722461746196182686362266528051877421705207660152652279137603479879408779142577816857244598184271155411305973499602312993762919996746159057728212712383209397044107747246669583887073190810937089834564399535711871226434296005728247121477770541523942163394554503768404218194131434896211127432874014983976989550807450430397333276664653537712043052608672681885431862569947804462961952669087710123364202187974319423312118477512225472735934050909054955164791818879665279804962817565030130932026763603735265429473327667006190708746477199582786657101829822791924857623587069944631697199857605683776875964086875418233658796551674432225753226409345591411269305564081813419039896612377917996774180738391376889747113157327178772513381221580717092409701804845314234469196344003448719786189128918350047731721088423864533306719839555509532866603876039585904331488682477533920986739339355310989465353778695896033664704789583122727740121444132932211049784840837672027616777099229975492987323176588203736087521467966459711744946379795636405218736063841649975513589585142036866985385939888586673256565947220865909903661247119824328824768325661572731898489059827135142872597456769084190876990520274757519099966314574327052284207332931700702671051360354507097577921749044213463763908328144387898744980993331405203261220330258178203571163709530638223523936051099890613200976625931739181860728339607696614205686688202902648912506204365284751693954653166537355300760941897060277616810895613476023634399911645160072718133718094088380355133075907413739495045664513342239145151497577242296716846238527080956431057949548599118911243743628923259064021988249176383307742008096072575268953500198449688423239361349924478128546929773909360536084123099620791549992082637118605005632346251101765647275513259177855771774041710762868105519638649969004021040323309749484317143450325979083992198545260080915011114731500969713885316320563863800625523190167384851117385513575465747816185304625343356812298729854573190659708766016086287924403780363564539502429597023973484841762119407566854350477417620299999095797522454775420751583717380317362251645878265416858406771950301029050539663623532583136919116674714769466338182241415554643005610496492705519676883693412734083914161674814807202046982469436609087802644442859686896309741788468464214430752351827097332202156102718327057244017303241735749781957951218469784050698858549309722171515224413410458146593074923457700433025127167878319674225066854446664806530797530914008318867487408833654378099089247295794888509862491513068342318095537368377057345635743164054352237724533257112107003127407844859507753859628816640694615370061973272302983488013073437631439219849635230487280442323190708864915061942804038843934939331256345220754183264040117829565302424012725951383692262404733633507046951611344318461116589298656502432607089102213614694290201860822714016801038655259382238934892013414784719377113751163914420982377501507620544313482753437685002671995498448365728486691757319431247190394284880952716980275343951756987870664074744464217867521589614332194791854551235710665808707488130026624879119589308238553953049154817574527173853530052223176064589067256062245722970312660319830425801344146085574277847804533590364806683790737977875139032447842051109668351891304162098151499903054160581532055183755995643138928339310631315220174474039172575269793615875271667916892277310237469830080556771354112575047090483521731086583577401025255174073896218160155724051833113220569880524205116529535937092855656052499997313933865933522910375332512286574416326573635894050777950299750272848290007152215046158371900046673945607150668125392348280187015172679945210689853158186014842273084053744361371087394047631525783925044755097237449653489493926079398952487297820003330519262097187043912581434946426529535246338499977069841361426900557462568519363225423535617429339122254278236837808752197235779498352940462113059159809754558152470097378306430728146006642777695411209977297368161179098580183271639325331743915396455932591733369955903347119347147414404292847318370302761608940480297335975719165920853404277287647642650598845311301797696231393182310611742354916933144799505965601559881431233930570828746246686939251116287600645466675990047011804731246185028275492550209435525419473014878118826527831115817340741877449175640047870575227753049919870807058358170564033362981039475428514302177985772618577878410987771045446096564658291470338385217674973908261774421544794206840868288826800763746247319506591736811934082628148480872871128695889608887012165864825942353621009690969617941385436389719802871976643541211266691469454870566333187422775643455213015571862473058972277361779731515065959336461962265085225989103073672143433335804025577585221173092622077310144689080821910423738250150327652462331368413662196825490723947376836149291877574048846481792160262802886929051722026755673562420536051052088894427932149639846965373300669150318024535234283479982737674487572652932801505446060967938736913352052669590612367960343215654108539177059254250838209558111261799773425984127298990663437745211537164471680777074525928020521815884844193632323821504269697072873381453286700942949928979287481964248366358877475578426789400804533891716641478170459391703484528169327430795693731959310502232495364058330354416935230814181907208762246734934615276243740123501746792368239364536257522703446796200754090860246786474308230375221922267654690463652371971614744674181308744090886779347666662983799073099537531090855093598294467057563131284589610510548045040696722962360279752432627014632645613877607362017727264928232908576635045672974622489009056182642336541974000705244154197566748629764414322689552944181624462294295702708373936812298218746806238668822264012643506978893671737730980506525896372079079479781388562502008531633392209293949575773849279991336424665016646510469090204247077309529826512300075438861784103603594951716109391978018171508710537183759813859566107237331196226627326113223246094931636069190865088262321692803366204278787815410575999529234417022611383948621111479901034316635633905629616773744822388847754825267000995657321948403166620565062962760092913942983351974826320767067572721138458956476538583974552525347263701549155310917159079493791471305043119578664829205134416170022957034221379506698585568957921037369259647917997608191649574436048630701292002689891723496480612507190890943716122639754545563488162896427355111648035905131252631394134919272609444537493282238370379818601755916471312511415671734870731491475217784247948483399001699212020605535869344978821943940253623823261169722540069073298467802710548943632386697354976586132264275653679856473389404889370041708076705830577601144391682275222796089159809110679362433148038624934498674143759269001294684356165504598670640263949957024759205448249316856979250255054214602394006435120568040693152002618087149498996189056431345011757902756010389212640817004814348502666010844204197278968062966281636942919338782261970047822401558495043504651738921855760080319484252117912682216666686504579599080059461794022795889389699084609625150029441931596965172288354173018862364649893710344790670760068172058267217864185647633630017011910304387692336737319852754501986335099563903281802989026535962613608758084541721337921443224433187951095677682031746269363783344391066606452521408827800126874220059633223073649198334629281022686856537273283627691550424655205305036464133029514985191738541988921531296006282602016428256010364150246778551528485809807884224900656455608631395817086373763937979616074927591992119593025896113852623794254475345895927854171197618128282907045510176654881868247367840868921676307374986731191469199060743205957078613147003371176589551168316349021239644774461585571857637239996522628446196619175979795924021776355892028623561864644496453898744870414356340724047823773649375619010852261325074582245290470310775846175139105749906047412486083852580015675415753253678473357080745916444673176945378186252378190579070982787613103297087993148304986668161596721174968336727082548028539512875688437719945163679531995103254107699698820992301354167899083999470057672934505257333848120329031704992273368488862846719953328848691759225203194078635395206357399628064855105648375227694707246638741043279590241370403803528262984980422098271514685625864489291769088142679874912827964527537370526263965287990957616908440976995840897633929960569395641880935910979508824441459655426596631278809324333467396098085151192272605054763989708145011386094891536524217505227595428847645953188551667772377086638443682330808964176976260132518086678375510357405615413736210467195200196603958645046631928054297698783867897825419409166970159058564972573550433208263078009040558975341320517743127620104319408622984753754573291902763775303239590446963878349595333754615791138308885453848519741356611143229134815882927552462218212803762532832156890873713448281213110385364701473398971377140148499684937566145912372670483452430292929724830320755107734691875396927027656120498807264869248941550171215037348404751543672746816284373933787216529598237871241460670408344778843877294085303161559768544940749222556979552835917342584810532102045186951435470974735184961358451120960197644842031602870698385117677529747385871608098570166366950503816741610035844544133388210484367461870599684113040705059411133396801806395258841688186758071787746123020148362260087911467417195572655948898192023231457763829694559311074541005563847007819812418841360862759953219733763003408944753899855511407906550990549124928300515000326927325729851067480123857367218237918461331290852025796950992614121720491888828521709698914893948928182136808729223424183255520439793770903029750722143758298550813583992782811427426541646354409075426159318946813986009956712446556285327910105457286436450601751250595939507427849415512155182492385502458827640363518549718554019835784864071782866749744857033141808062299447885880237355412829323135411006529531307308147831062563924711866121340985804036649589220141915298897402764028746326488517929874482418369235021552716958249530053064869620939447873036266986283137462791511786556486316257416700271552425389329876259213096396570049848924705568763423124403100857288315658089150784703053929437029975046759851969423428253986468782122197278826891490562912015108221740900887954752654816131222408173008263334682195748092955274487841036073059268594856519507489912848665530158592337411026172095771833218623714053873485472629404269990416038313862219081216475493793780288927257758343453256932170943622469677857237635422365696897609001120886371213824244248875630752602796314465538803706199497028153411597897929264834080159070962752654619760820226241150921804863585817544692536151277702181121158660737302949106433944001479939540729571051864154662083705267421533182376965987984834943594994048053307836272661899952966944102267896666840988393800699262385320123340589558423659273208225939495273590021450749206971730687931522411080366926171455357329968321137125496292221127906618512873073494514410067636685674218741591627683844849610891573079426580904623728626470037336253241021776151656610288631783825598629258835236693656814096464537759836335997167286580361230070613486772718308055686792806074779608922230606518978769239333183712080600528360556233476649488072217701110317173163299855261843064216425999562912228175791552307605316283866574930083911862306041206668812355709879294086926353897106815549521804317452939659314799434609551655558377829526729409945989966258835621100514465449050867286472607444231225443269634550618768232316064440050830958624361061781745784488472600764951758217250325715356233645058282019155763912548834059069255123771310107406946437094138841218868451608117132345631523970016013841622405786350750331786887714650940441871630254789724739076006691706888487094851501402091468276133632665447664669391871182114928146160165692157165695352051335727815782037989452766876312335517901001913441705527378732469910672284500495341490204410978724321134360458699104610782174947044270260450826996205026381721809445627574326951505046487732751674760859882354751907875254808229836225198239622412145329998842458553690209540233819634286416602321273087706656507156729683893492800551203713528798685276072109316143347570363342479097127282178792428930080422499349923926278875934645008950012608465020381494761288597380352318652152708079934328776314772499991202329287987576793662544203656146185912408253196172879547541970757033257661522372541140104737874397225463971794630067251794530184757500974744920526225761168351054601811975454319911430643567547387919001114539768723581005580805145295286904027835166871613277688933984082481676061805548426340263582098500843299006172432202140085644668994218814230525898791772007669956987546246263196628244010422447176234765791429045400548663035497375156893786301440406773871483401266752878795597801817415057309290426704685481234070122971298366400209158062191894563312630845475475563694669770550247789701230765799688048211210839424213612203032046021088894159210206795031394722352449140422816483713635283579358435276824255457694137582083418825746981254936951060474136384577344277164875302299825429817546524691882517733196646453425863525635564368686356189049967186223392904304082023589887989453684862177035549012310810134239327016979785333395935431620436775752893786694857066929394866760772794808592643196989886926392755406520477093760034412017419377851269953592510819390752041660146115218536526813203621311470261948132517546777360201513874517014915914667417967906408994867048943648027204163145240664917758420212368288774643278941500603206356974245462033092755360823584513436966945973371034715304750685289963587013651214599277788686383309398942125251216744936003102235856080181894564811090678182475643165524729892123395666436878915784607932055226585343366641365467209848386292768400015067648397425596946497753747193503316368510746367272429306006711472694911721994349768990328143422425666939922765578609506275993814785724303860608209881794322303298176062807771827486360963994545133755941023118696184276279884793548210763433084739170350627389676411623068535120683276727166848634468824422324922709296797576949363647110088731563045056670109137583828368520138140773485462709919465894854261671804330546016302457050574862361084414910616511390277374373303374238997221944978012244254157066256416742233286815722197791450970586981460576376078355622275749525679089724769975844930702907796800785911817915922771614446365146558671141893606691369533634640282918566816137930219291726579335603094818110578488924754908092969492525438862577653446395296550460850207036431026055041135499893274668709853845752457307109296222911064195693328944081207022871336021904315138086682223691230383754434123367569125482382777326397081593694910910080126127583700914446451265356722504151426470881516033244897544485225407173436065515174182453639002346490934746904711918364122467606530050983119303610822023545808986415478861220476404806137667171431489625033625321868112655340749521144671117576262354617808115003316519125734275333702530089379090942034823609451007379525175387205983155769580967967621593034794274012081919208645573395827194562827573747801976402283184448331371517514642170723991641393707198358432571779206568785641934173865735181728465263444084000709123675227619874455772204670115982857467952165046070065324385004411844622464651654543588492288231422301998300227348656441489623923181362221151819695422727504988608094406287213816579568584093279202908664902856565967276216480512912803056813372078865013456776166987025314859477431027380030906301519219064372371896444174393202468842222404345012107671400298342135179982211855194587450940878755092824165838925819481288891533669237125196987103321017629003410013658293953240091876971978939690805913017116471677705191157280608496991622527096188520774610684767208060225356948420501726532706961932556726358089949083745363646571017235108391599325648599947779377751123943593424339364179646237354427112212532659794010387011457515473230891193622363043778642134298743719275141481243945684886644383801278505343148121068467232902212798885414983096972513429871411437852781011522317799139723901914614564130793250633911592867583383888409279066487253819878844992170225546521523532498384319194240978717959444501685044659468513877585570107512941436213960866164469988555646810409062591716137270213416406672927994001742859376474310133182005156779952149184666573350368641248479958167680742266020443499407554555686562613011786165565916951106709292250046429335247361368011456595393885311588397685996715201596026621141012042778629511540715594177721789041526203005713999620621681886222062303359741522710973370767505273196554710389276754804095870932357573781471946111505794890197754988312364754688110946118740156906787718987502222754239203130676066902603620956708936504177630561798591418834190862494090361842607333050278672130456468904529161922060013869428580979056423815470541972917446144662942451978337704757084897609524068380407410587834639708062484189552249628616602137226842008978282292636925398857581067194839496535190728835217897202899353696790669671115525275047339202115559845129394611208071002491431123486939277635947319671596621822733422939563769184001872378478337605807327495936547486027292519047740753845814560670466242865367858938825400093253717625867938417207239805171610887417649171376069204792887875664238741730396700975321076378456580274244027382546339814018293987387687593170048964938554172657863089912454958843776395221747874155160753109873270024879832608462859204532853874297532080848014676374186954760926182358391796184056883929365408776005631941747070459792132324731657933018687477890015939102951700370513598866895606740244513453715054117751881671714627234530945854445409685552198693069875245623601297939670094190798604336903271411650777166930064964852830765484441629462451228396862136987103934887077292488422999136672200359674267578260166565671285731883642891641648186294595242422197054850082130497639914631642569363633909094438420540774047213691764523740452575802616371975038187347039949266351874583944994169549526259669955823000441671178895380067230566245587687705148137516505066728860909841698225533920540707558654046800950798322410312386567494019491512960801793884518269802671025243015577784662942159365235277880070824871921557780021757076057662214494386565771668718166298981829490880328217277780681536657323940663515784629626788547895787787989648052317212202149455249763343114674906571349553693431180530970494809722079007117720568911004064767769171695670530731839571216143785560449036873776144640713668178156346248543385400256027759076286964793594028932536873968986612840013743108261401732124168809052931418879301335703027637713397751413879332184948344105589775330622820965567646990452810251416090395151024468134737125082925289582149977549011067885570951729678578712899331998931646815771712237973202197799432097891622567574689027088060621097012312998051398129426799819772083753440285469458811171604565381463553769301481181723529954355114785038423325466043390498611566415951461957929443974779097319997007725722341400167239677258903817484283951133310888874063208723537788913049670142488932408157431808127447402987923495896181977039796177927349633852891673893405312781729996971218280131007757717052661510010015447697376771006766547674391945813325188250180907117022634600693286285626800144386105432764798805818976508455892036288750257808701940626836381527105746553308446350519972735034063435988712848498562964270124251204833765182323362222650373958826000757043403624304831221753955668537530787725758291432601528776545632899668823585545956830169204977385606270219856144316282260293006686715177507836170436146390287403848161592001722934348637194243309261933355305857614302268183743473793482088642553657773121740808882290304966337905061503664765342159253853063139262516548329868398574278433317713377616025119235326679177424351677216114336601499161835475122434731088952832620580755814018941337255562467422207539825139502292219305752027731035964933052741908815068268813735952841116128564613473764519288228812811849856127780412708937879861756339105497792148705641973330951146393969897769574036315511981951809217441996236227493232586823807407484691215914386458223629129481489902601468104916315221886634217276595293361396756146706085759963828374515880906071568316886639537552028553051802492694815528101094270484227927989512875902941640436736178832390076760369754520151970519899580871740663124380046348173339850032925572915572980892873900882147753473798478632299230329037173951469832017932924286781183515735550577007245813576091090144739727696639177863032804552135637672701292249807475088632204117970160363798990731545752987383664229542952169254831964611421598269015897990982908922964439518096499534320765318773797713273582695994033681961201066289230361186313766140322284462204690322160809039875235149064377884208777776815919088628051637534135604591301909520472088520106810306569989405830957879270489233893015664899295044233400986046183650112074145308898706179106344838579056446466049829044857617014850671339548968993672524041912485534405649804819559527553575975650122202202386797438259653446733421330415991688196321977391580120771938257672324815180944349259345440526085466727579116083231710996613254699152173027393491725532873367404671921128184054672290066110654791289033245395335556994087643187029623880132039590083754835143883089365029455799127904897582767982277036335123632599117966306122823490387652647647802494052332921036666894791882664151198797207959250010611396792985268659571520121438091036237714604420652755192850076029630899303105191356554924951053756467978446334394024338041978775579578430611669556470226840660398037049070094351757635424937416014487982421917056251509409040635231137243466395593429598785704002503216916346474632555885882919613951887246673601116977300429802775441887174561774506817961445169604145649501176528427030546623847886633264112097538430435750783484340467006756062388968761293200604445337753059588243051749468013483716786946158626839092269647769029161804130833097290846748713569212639542404582003806300286772506126998324286334095312985475407511800511349758871067908715639296281919400896404259479901099016152484080930062934256223869816996832094751076098330999220277398253205382223889478804701826932335125976968900281058085762225975901954230701569099286307991740243530348560896688836659754790006013679524959194142961412863307167508086341894277015280049471094821861810800210304385609069859708098289483784533864862025987614932814902122471003689094075264773674621703777818256654490251688777906460082680169905064166047877358003371366730233774579106278521587424608168087793095872919184299819246454180031805746255458422590711552262672153783134521332019533435817541034028851575422065380251588166391973633096276184615676423322309047420024487992330711803142500223422370100996737061627340976829761306701040355170279945289683732596531514783648792626324917631088143358169839303905485713503740910302664463236470242873939965759698753214025179219962300620026584029483774483699834353383818344423004989923815197643788576843038686946254114946874561829081239945988039872827620120611757121092818432813659390460495744456106641852760911749843945665568855901817980350307119561822021626294377606837930495232730610539960798115172642309892288062683851251265436140886477475945039001750061529248271749730204355263044114689079543470174461049377115212558342268891704787717036432084323071532758135304518492406735545093998588130570420733443320465818180032843859336684534666070086598229129064701408119674567342668508426202379636512106263026649678369356346429223288715974944617467185743318440605406977589255168102854544687983335122274808716729703253887287802747750306856940203071552677289709110622555347008827660071846145651775397147527426019770102810124560766267086658770683073028725461754258063318151747247501068851308702791744552972738500195571840987275099920484396463040568731310593514830587543908752160524782516409099739057516026397827084827603132530746705807379930243944929616537042348538988852172156387493052381273916578759984488564630987865536974161064138450020941581459149533916227106900448971410664616243967000612396067789985828331812756632281174948723286792290084516743788886775368928668743646720342532110982585138259562110436921369548297069859814521003550441202719418692189544362733760164542447083265704809247963176740689003691347253866230451759286246416679834576948284746322103454912169515824841941110042132527075248342877534822058950910277452105028372253881214850576681296665506690388263843230751855068279831534688949190575692740301433723739036376730722806579648126421419139446572936326487571141690887575555405340206303182202428595616069316676816163363497976283629037947816287154870410484522250773183483460302404658379540343077841792022759670577563309217713867588365363947573279522305602927884436006213063899609565052967668354405927411653407347470389460741213100590263387154862590536704693757687333644293331809559377843951944596375917115923579227922262976803978168499454313981049058072959016127169961171441994010298102414875069679847337450025231870724980065476448875121314251723358337395469698927227805641535980452675171976126602799529966070776167792043949962695043950969523653714555648716279705170727007094458054054420475317878014661566431746751635452896382808318373875500717379905374849731893393197382562976205657642223046631519414274138384690063453740764473880049985423720911862709111619736980096754081238472181251946143499234152054018503528638993555719303125255546268210897030167109837292786859932307379522776843316801721048869868261752616734422634357580741233595781143355715641076905840769646937701797676499783253668141731364991604436611706143846849034629376941061564360778265529739180478612933666505735441120454717150075785470776883407952655673152150642031370106366903626078641299657898016248123480962649526195628885285708232094746134921553336710679564849916425122162641772580648035744545588819737884418225892991044959782803884689794468933898786688229653660779771840097864440561503884729199444718419263699241520682740716246083707404923516311883288919186851861193762089997144888062542243850750752982749749361326236775247935667727654793870469997393125076393336004201864383966805463125387689439058418210411721846194818553384462789482688522135820527600206953874470664997771779158937448046371680708275111814271462664340021811423791825610504750933596765016116366289384083824644697921779003541651326488595226260685488294376046889235827340422743150426767422228915273136068430061903350987776569281151125662486829672917220017796900403607475520968553729449136330069875722331833470352353651853502371043543210663753837339347700740454287107804514600406851494333584177641426320404906756904520929780148982544643860405975855974137823311329243232472976376298981144622689692815788904010664886890222198761059569397050236130057489219192916653385320536106915855233042611718167889702753423797686899646102774966318441685494795791067360959094474907037944686795913907139114303149256658058746345172550379511129375826066628361289525411841003659320417100805869676694698573495391621358128071326719108591994254721053740952600646611960708401606235431206355264884386822772233517824769470563480831179167125763350105333518165613398110086501554439536805352684932549819170552350635662021788074170434376857829085536790073922874966309963003094890870269301170886559573093638948043228919664722441088605254259847620761638771146025569437439751064932941488580417499225069129033931261995230447911527125475600705161806620350657668521861257556191054833573928283733489707824043566074947242428743968280967070638359038385216645524793245992159712455961761588794660653638488249189002601686991697196409671584695344764422353116103014624244949964249984955686816668718733803169621056717609919049088184676508955905437955190486188950602846012713801544725808074610315916727105953872123818673754284931107382848061905505717119462488668807781918346722413222746783287951855397815452182502198134570750454138820155142664476581386617513695828459373413532980305368317365292004753527110622943918300241487064684953974431496951646274550672172290644243039455603087545831561828851688786375519959861217767990421824135538342871499691850429505535271299732662756751728805649069730486466650094363717445049744961466264338805324349611621413211356152442430299289863504275906542692048338967589172204984151309098820840091496647110546883966381427292142739003889114746501732828088205443939753981741756527276339586989314319513925845145500544099861400365584708850060004808403382154517765381595983366543152256747402944981308859492916430973196246561046447899970070914936720135310611293612439273912224599104893608337566225810920480766346652592539880941882242427389512119874290610710594548241249588848337205122190253228375198562569762338809686436715576334033240970339735716085830123349569034990830969736190831181309042216080045479660162377200997466041306624885611446291834820555557918254717282847206646813337729728723969613504156091618650746128961572521892945551552894216357966679084432701041088651695018528407669135249815782386693582047928832872478888775734032066980857271085305200824778178987704868821267016411567493004664189269917506472445850141805017325101896513044415033998442075058292601434257955493444799076067167218136136365942708055404563526182500064783305181054844466583750449814630648920900718018755632755648360420280982410329633351077683088791026519518879532723022957390281828170829577952787641837020881243086126998806072703549397235213973810252223274204487046788885001317691082104586628701069658633364788162190858178534667428453212331260452873169717034784044511138594103364375623924096040769890606380329048220716863229338163832820628926687930071030148292649963029405779805292095660661963401358901853427924641889669107275382152742779167114152659031315858741080007032452603987820711825572856236301207599257508171666835316721842258696488242520672652150596990831420008939882429573879135714831790676854226892694499386406604304133203437741551996684499862490955131921162093551321565283921539129352531940847282672165531973284829619592913900780885342960944759586497557385192435391770293442105175688411792107855864289346268658213438948144884283776974722913046747925397498249269579595376218825932519314753195733862221159278200628980897249090335737687858773818327331638973627378236196837098673618080565223388032352301812302421855863340528402126540949402694873607196779641936633713848075413983447300279290730782322130790035263347115124045950568471191484430361215932732093945179181733159693601688982401648470371825080595494731958775811853131113224063039535410535284699210590233217758092180631596181492025269503751561604635376887832045968813455547580873315679035345068458348159935917215873211335077865025618293650895337835824623633573764532366544980943148182289239136600671330755972420472522675965345690916246796749883892447350372434244066352011938425649665867680697920112744136050443570376558773898707667377021964615386003007191499925335935576269245630166032154665434514133230414791384716633574795913724313302778889913583679814732835355515159567969572836353176419309072975530421362198211273672071645608460888589775719669873994945596554860829937640061842300947318623593202608267956491251090797659911097974046448517353979923720608421873582071323696783743578847655289896362188258801542352087674996067298391398130629578078519348212526891936779217232493396783025273003551334611001383302639748447253674364205445854714852128681389738972961994964655940097194203857294240398713878142999760556706637894520075067562189739720475024050750169678515644133260745591836674552762165820543058862820305448458453293236411962777647255461535166542984209197615796692595096295540306457420481863496099744354859941154142099665341476358152496056027123784381694075828676651408632340605022433965072199317935823362758497996907393770643645675122462428657400626114443144620576945382290102555253540729712503761986627701098646707112166056065097477082288849135545936781820615531622457104650411095671068385835981697362544488451427580487435810268315974586047568278720975973903004022770518376310283889710559316782830713620479525252343679463432905512486873126913092894719104705526809444079076760239965432186676822649495291421603735662091668817095906651807008875257183481282539153981688289015213565168196173983453886663948664493316155510068541755734070030920955643020871390404141101271282710216341756019672000873348471174754974110814819358406948293184785299090428997127727165269412772435382671118769628551476096421099195630517958657519877939275898475486890113973893052282641249228959651518727311934373039722340453789152220973110714826689999125334180292675046115046831666913717181676102754712372112680513938055985901223921095458634414368637471453339994338809193468661772945666892453617288757487677784605724325655768277616046220540598925864938181694687135405820649107974272356906938178476390886386884895300940134715654514131036219226694390133883237686913183746469565008211504314134461995511516011878902073801695358195801635912842129413601897945240712531923710847671916904598854758675987853841475307011737240832734056704518252860872438602642929401122708962116616015370276832613334189396244062814509113848616973419647672040841135008630750335304770114627788309761127111748038716341808893896851680704615389227755373875301078221126016493562432465532629696217171782262639079985332444209854480161999577704258670856920272252495854669468266170636905088284490084662089949694524472391552758954118937979568498033003426377508086640538238903789960560419384453386801803855647860021959816860321026324620996188510862543450132951599261548971567219117867170111982703666467791242386158245956329477263960060746271107538910172410870998959329679823079333284113621780734530777356256399375066096046465382836347874693794457821773945352094866400821872068894759992561463406875464586180354379786315875050729251841953492384766664972969683007391147596040091804424697605212344520041567404113033614635010394899341462545578727989484057130627704935381971023065897053368833078447019779703590541698355641569379329231271568078295020263888843096847618492456909631481090880822834893162956372137308863558755724123995612601340578703669716392685140348278227802663142157928864390394204470525961202325466317949850747333353491751774902728242857412616913132244993546008154704399007061325908779982011716154917677832157489687826002822570638947246752504735514821837204961022351145634174470408046750349828603961046505074980334825531932171886838954649659656882563723364389743121821246230686004331351673719950059560395604518700707343138473665292348335274875196847210326486937143949443325360860487576871340980723006281189222593069435206892684773298433988888420354303594427979350351036371732295878829167250237504413439625187272960328022319755210074305467628735939193744216503398366975213756401944058843397891478597632450237864279862624647607332403296880393462445860785393667963068001498811440597237597243809644361401432776031006050139478684225212833367168547782264895293738046063694773880118895564543389125371623094933371119193145491371770725441436640965302534067294083446763730776028196650888959052501338347856837532612999961297564915577590002533170136051643013441577724129284441747462442891727249703890208772645557161416223084964909507013396512160902021123786670148659976349964949073407618983649322207723457397875325196455919037945054940236951564129380836957676452109491341075292609421346445127393072385417981336067395991271336816425928926228149706823476724654092498243948871793605458225836343873745008275472743770797542232130736445748114292334556033469865204016787251034325145158417401551751015868370546281652721802152835138079836640360477457409650633925807355649312432102228412974997395435573451875520646001322612211230794999670972363192686614584819932978355695908494478904184116965690694357541089269055490698366687268208196000817242400244421849872989808167493062581160803237133910746664935659812958743683486532943212499491323832749646803538724106948829440511661642029009997082347713703013872361374720192608695317402729338178327941779526058045870719554184391729440596438446044808299746729695933162229165634157359504412156666806390557789791703200403902038479064508405348221420855645776532645913714776125885347882822293802253518290975633732247985308551788109816707669409307808058763479499694995834814335352148661070773809387712683644438127133023554229260158281247075330796573183890206008567988182093942705373214143118045191807027037471397449709408448972796638015422898216002444839184336064805920225394544098608390006354403475566317004213905799605841283193513940519342355728257774597192580306232242351663822975527714664598220861032952042009399921474050285372662308653457715061357567762250412167016842661724183658450628339197016461724289663679310528038513024494904253338641878810929770449204551121310070052374609053089000452845106136320078382579297824503749729939446073150972716185008148532614318605418661128551683121982501731778042852878832715500254983821586999222435984504228860110246968323875065435594482979042919622700341344691388333699060930447177534128720167589483429084668630736691227159680690633082781974033249289229122530687867063573598525985096798123158975236159366897077758916109306980112386736506229403561574996667978986317282967553713055205751422849039845061504923205880690171399831818591568382749205147363684465859531933451607346882441387769364734028575579076029863545270098300419584547917205693804709283192489751533384375712930932651036540103268612887981438598438217735153497083750874209784645094763009942724277743238937793083292338765760841042380334874313885026435919356147972008319361155042951625353243850455857505025751751929281447494648092739746610089055244437410800040745039255647732756234126894671654283263666372608909127399078904387238465493490277575609228776528756649283649471729814824211309232942816681819549114202213985572585262362376737609236391796650486709432757865352452246078519953929546857325449301226982090876378698490463996034363882012272241370151017192832259013756397389114019288708597307756646230383684249498391136486467175709277881663440529244928597891235983778456148795288383946859686131134223762378589823376135813054742291786426093782000954623503131089885387102723892153996889022327396712760563165315199099147645941866071713437992458462949087114274576452732460239443434149743429899495727373037510630827515540349404711506391841371040322114991718324711896448679032297066810033618763556385574701287925454011525228123211176548526211674639274665328431093509983330440958730386324831089006304163201150030197195493926520157016777673190315298771422103185441753904184671659930293619340723014120871189530799457655080206688540948810133247003366775068101519568662358025739860628104621283412964442340975744370071089778805786263232401928528480611641702512992250188035982831050683657306792015054542574911486265160292907710526178125805045272108335823468936706512642598843185991756065488248731877079708050112099018146257125546301646715479350477794180540908205022881546758520163818390699600755936624341900057534669680463621171625088647639430193776873528107645284638649430229178169109330049576798758183239420973326276709756388552474811288179467379036619743076289606593856289400621071317217415879667866447826365385793845505599618001006788611739026129213076151244076150735889537946537391023434514304595014566749386240059028615308262373466424682235309032163698003506241808957016549239898457764603234261544368332944059718200970759857077414403359679572186889547238236389315752034768158384986359489865448769962853169584215808962319542491592803117333428772027386431028933186742516062389919220731531943328553321322807672289190832092290320340934829221850343488994006743824592492099207094822552013513379191077287010313603856835058511149453803239965001536839739467038820695761863963003962875793458391424018923345109313221777345701215700873031520438376428011092047837817090492747350112715398463671289714122990954223215852420266382772577866746624457594800925882186114759119499516966376099106158464148594208960126684420888852651918388371491676836643162872872131809123964790556083022818568338451006685219989622270659846174170980390127582383271431501357440448963849014917628637427907039012773988912236523394268678617107315433067307984687922250880642321567790637981352061254335948927005242928048414783247633704248286014212528532868767571107920145229222428343673351814191611045121299762336710478289531732942210978499483419064909159977729125797695908881266955721322458300582672286085282119844298774843864447404308076664941880827540365630382471097980740333339310781899808733587122842034227675302550971971416321204340431060145907834469070101718534848251852242264519857933751537601899593165310449565460921231101177655198292485532063688300472001664340990609617373446825049880164192665169713378754640192450696037485795138732935190099003341282591214378354587969657405053281607482639586779003486431664066467058647812890116028521128245099584548133581627945005998535451965164594723593383315915293608360206130763810661836354945429238874251385776453149907589354302167056528515190083346410510172529770128433561429352275585124696396491566822610443921709455257065434475158335129013519597920608940388774136805300190087506935066925533381622528750791516473230139512409850784019750423264068646434851661353993920321108845831369044245890534008080341635614780832665259129879201397424785203866411609582914883770264345343673834411435178744564716221171167209670077908513787796567232493938871277908042889986888284633044236686980563293522485171268531228359754379100807781602638741532012022836489298616780953645991522143084181957054687074531745794270343770017589629012535295869835545785658975184546967445623927209068474357994040593814534815664416138190130817189693654213878123718636681913232039918870719100456439909525948804921334469855177313726602730267755413729613642201701575635450637966986250002362922441698445966576698966286881438137916898049492045998518004532608566469192823495996232013293925245676957101741425996966456343432687231448957989238539227144758782591014616291548406152042719939655286956369345956483606804641742002730776262673590255455903288649637585680768781495420867503198977996873749517634997521864178122598634462960358130888240816569037585252125006085931279610995656629988089120684674408203363527642820913714061742734139851827081358497820826621330510715664898900348145999925850347955509415997550651708097029678276453998057878415546786644551115557307245288950434763009614526520289908902436574517181462990203264020894571897553536519388551365730359324859374219263554680489672790111396696358945104270949181272019697011758428553368669103887605459336147123830884725602583366175969064946944345406671253931464304145461282006801968357733668817942134381059792649751192939979422552246028975610208637913626072436375820959345069798040108552166006295361841458977953124964982418982640823009303322427375580597272690582044471589472883630596508529267347663842697376509022450539216711912204759388750919569411832792306642400298418316132346176347620723810587260049349577956865355141282187963364912726305524193105241770082521174476727718679209233532080923810568954100100680115995569093328890266208063524053785872654063740930780978973790752572950606640315970293506776419992200906465134926688196503407617187882675009992713504194259679234093417784595441481264758576891997294762244576221427328341455073354906381686129234961880836711730107424176998795339335456708425576207510353218485844203860512810490320285611658241981162702462211012550328200213481030247650150770710351690834434974956150572316337761923513586813209027792867402454624884056357099806213446778429981964952049490444724988475985806646240929600374947200435313476005395936091837884086532484720698887601713880676797975515311183646785556708695825584726806433705396716907529783051782699170319260981355140313467088534293746686978464239450586055884279858842485655629365222508922132811868171722911961653693603696035650729821150645146394305168501155848081022690803980202584829143307142731845881439623936389717537402874911949110587704527453609483760869932047525431680421940342230387737907042657374657367362896192955717421847008046217189778749524208605221235866614994107108839379505076579445134500455139956956668202216534311727504028279690078086396234256447577702817065867953181944480887764234936099087493862936975430373691347339820172468239646612777034534939249097801569553186136340951154855447783472161364296136474379217936661345725323457948242326177767936849536011220676642821228156251287854425622358556410874736624313416644792821872354232861682291363042378428986551277868878551522329650778499127335315374183942838807991216099642479916394248295953911314432246347342601338176709016071524762455867138019371200652304309502263167987073634353521189143830385497174711255052945473687686063941927571562594905949038497353049384470970756633519279906264301215252959084360253048284362831569387335075552949239988834378979702960677304876168009709992278920577084027383868705695620254290775106934868159390838431190686840609839870748653759207989504715681980716104581823695171111242193834653438991186286301260632907074427448077892551020388841510264190870502999351441450665949726942435609961945799096208225919338001190786592992586466121805052475705887669534115505067006107326689175684697231969153795361547124786183441138897486958382737192930220826066364828458012639996216312575782161483590785075917468150669962024037680812232383100185663343396798397630099318352327386550523986286495519034807002604079767100633898202232217468932431473255210604777281226376582327313106613635805995135730654942341635653273373806846896366709991831845113406315326498847324750501675621233377642307546267442373987668083991040917166506477998431947946620449112241238068369676431728291481475190322336406919049454845546540302020784709157410475524405363737024793846522840653229328712193346196172787337070815420682556363122427648805283299036146511659377645987276457166527986952850609296195414818417313085434972550129964199979783179955801912400885974119064213730244851607425347715007795291259181903236087034040609271736376860279869118421832533712573635742613612537696455788697605477359712013038650943540843174841128993226770747648520554783202781224844776395744786765210464682287380348755193857071973221295601399664896580593652087580795031677145710588354311124167779735250442897088016727489329088185808771276890681557745876750162914186804440282459028728906081903871716270831834408093057761417131300184953757257187945827230760943280857038420190941289742272700397721724810596152146618497505838774031860081104202602871557505906007490323714908125361984206169165079531260090913126923109955832195470445177427406381480145018298792532428598803038931589487193638642776099487196597872708028842435326627340674499360044544390205507895998736541339985987750427894366382451300944710962008804494296659772077076934447863331666233158571412093422375803320710783225080513107334509325642599172762688912099059512147224450721577190599931089306583025985064833238893483071454622153824029411918047195864674240212737886605344006702718740832000299240327283508616557129182854339810203401353483704895179838697634926412435202849529922807580691530101249276575862943803142324274987969237902771944345091996773266296298638548294049171215392705235868554119238727471616537212539471169341195392239045212166850531604775061452496684892179511043461542492922803816233275964443746983725559877946630475652045937095162012824448214530164815716215865368642245532160029052723105697247993756460857921920056510304036195978870019843197344571729144121681906868862551363023369688966696431042690213554555297999503058184821981139390586374886920979018555613925844179618843764460495335923848903073372793513590748592669878714118512311704893866932050846929301492588939087820295978272084372339808406975273301201807397776211201457684776367048857659438725685736710697773995100924338173905232182076416954930216520641257474256793747534166468609203253968065819888278902377799746449786636527471581505206115651475668973873818517208828827982815147324997455290189901745138633919111394386386364103951058717850620412973787821721990427458025544770341657176072226038201207297515788674476665232933606479960954538051402178953130483562714207477884702377286354939447986600526300594367100591956620774729608565729071758265012083118260372614266938372748443656590672702276454098122013175109765607497040706156901579581300616865510154025445835044490348992456386328860294388275989247798481785616122593645102940539589055710672319625798862154768320954022947469978646736156340998821740520423103858214459879839704367337331268310799694074938510158082735208942232123033536883558394314941113631171049751924779891561772606195172781003867153858028983462718030181605017903147764050879375513179428011871274966133544488692345563628732315352851411339237150618112321416129703176114198758986308254972203174270579698856010647850283212038186539635668349137639929462654396440147578505370376379098698767688012840259025404379734231070867675332986816125041324248544784861546009098331713993667964930844189462257220732833532496677931954492025098665798193776929956094426901303549066943054848784522239471413348514315425588487052750230672794214694518716211624012647524781226669553604744198931528469574556638167021602502899895488221926390802869651586532135380509681757602133717241377710178349973991833270075642698345951227550309338665307498124561964490357183314326023101641199067822068332161790584219187167493769395977561544077869008262068598737823055277264059884625194422702662655480806186078836225174884114690639187866450588828803591144852186242929357316225145938307995117715431622136209822075080024145828613067638806067798133757550170512152030964616792720133568147488921876150715744056922282699607278638996025773556031073742470039642125849822672648948379029960927544632149935553622760785358376812563864850050370374540272847639389538571330758280559255053012582619540926927159290988639135303173720067740180403223016105550109228762257567636319526093402859442788547592364688130682560338256007684304328941918946975333433582323623735374729108990190612782944454635558767804649226120164592368617487809421108681726492659134598238003367763788642993382895064375619119725450667276509125432891716718464647402966495625273521948404142180503096439357706978541261525182682378798434578432337701976977451476492338146581055152979083789624668001077693114806862049975110405778802892998718532963211182406665242146228743333571422104552554135873651451644706267568303787405151520601745809320091168980259334724224862786326420001567541248293597875401442598406211336188364167073478080412168231870572288584421088400802479483544565636835417731601224811069773441478917776727701655503890229393515076278803494849580213548292329332754727501243376266500971767480163366216865783962113387911643721968041721988490704319121005338724834770617418705465846447057988643410763959038198807446934692204625822002686052451756975154376890292650563019781234019623502291282363424531237343283337651384661175546290808319460803663839425679127824122166958103460174834012687900131796783304449157473239138366877486242245626090462995268228132617092296585159844701196868660958201288859004495056252896287958576406299565892817882390845220653542659011014276122016879616423729574234386487231172809462517322307852437987219084471254813159705399064468783370736819788037269069893229195380847360788047121550682627177752420360981702326478848588933476435556154768268870784042982759168043752127876983564601211198346592587785331922571649444002330729169098676453830432511030498868658200564102021250577638078155697108012634840848323398945822614555415384401556191281636561717926495402630672906091132813295337305291638609696896608145882065455957838352178844146886598416494488449875967607206133604154921337349734787118308461381778314389297691641782081301151123814504728001520359617623099757799354667336753988211689785798272775809057914454119161651768624027706197372504552520343682662302134476630638854578871112137533688704747334192306109580342070142161269962791584165742920461895071026727027360226536175060110656978737858643835941901456429787744322961118140529026008266029939191863596675997184423131950566660565629144647227117541270575169062188196467714547526222290750525682139102841795852928712913951557336741173259630222060628288647398612338365919367318143246050010932763990900497331041931331822452639663753585777864969459519853916387058727140252480434896455068892445322180219762208013889087398900385880495331023971969900247107011019974083075481637565695670188120795208829088373459236216894855703515743740959490890194226065732729391875335725798830076609785581199712577825642490662527740067258012494616262082169920534208056086434332028007930162230688489015368889350456933159305288879447059047468177321322247965691389713787831392585016896478155885866594988426552013023442269156128395435867867974861344388820238344422056315940523650747439413758614436118031477404588042641233663218219270352776646404611371822079074927983483599376387605941984217306854158673708894659563775235602101385086289864905413628415794691231305955258570118257857059849045079131362049181380896688081702864879281621266623062863309885078016054211356257342345176031108670864512971166822181864567264227795820776892523031220536198448896925743639409244114346518820467802551760510824058664830044733487359134505063261165121146593121174413967515437803110525984244050020754854236367397435883422776262637092051448341071550698359181860080598079760133625353238120831826532910153319874910527785445318341689820378800180590541940822758685865597852008577269717267680612335938325140689941019692819192457333341295610142551867936059232916174279564849363574907109260326952443416755365033956818546800127188456460634871978307959422181321807319117817368271374900121816863872199146358046260342569421072359691043447935433223232325796625440305196443550502165683120125907616494653335400851504262723053756393374461590558592833694223721870576265416461266046669953083131431453097655841041977184136263319159086626082829311194672123972518725126601151008504568399465862103102229228590039205807773070752440616487194709338154697281488411694997922040008689471414489755901078951398962139177347545256239443219977032344369584586991497622058240372359017907305440021695082800232315902893323589691604118503383932307912907371884566767345801793971267846802462835810534957157555250474811101755372100066525331782708746655084930813557092931500246171248115352444079847837364445482139370054581958840161314748326106682999277299068166603546953351990876784171695806118701816399919266217844491994557701960881602241860738232339895609852935449470142814366608993887580527952284216903479596572238207140040930835112494031785280300564867457096942336558226538006276915667389529466255043302280330558467718797961449557334347277270542304617902102788469156802687408578672088296356359574011442858646432422852862183560670584991542178856809629647524315462393368889428482043194738956824035490839287169601718877546150919767677474643347299348528489746614751566130924154863822163397338106427883106236706484556970468073156224711044847148215040140031657895066393318725418708304040295318183228893741630968201079158292978056600326168464622437476652768002481851546536857079631831762004641744931375916199344940039747283167008116069817973023791864735985166760448868369551651266153021973157906870618689477432595261791927940635929199849138843932747553756586773153298047788894672946186176020423553453533170109837916700089831513722472280210195672326140725979049294232807819371492404913928299234183507514800713193342016043580135803825666332744559096149764671574119702503191334275679976123770574103365591055235899901260381898162591335530974111633765938398318581997249371353325438856562082279783203873837050783354040482434787602020895335041238554436214150529312115991286976136781500144461578280300695735696034456924598023060555016847246449439990841445979836749453588076971482075478930401415019093606593103162903619059073565073613528975325969360010176855794069882466195195039049890820604498426690023719039838666331226067199806550768378720594030051027469633328939036060880317563401583592978707248171383528726122414290904679995424263273281623335657528367857494550397774424166936268550910947247297596675136925912576705749887816389841362675486187287135483789022220669313132398650627418726115115840260798504601635012598804994138759508852483535728469744055053934186620407575932599138473703870168173721472853347201362858725286981500250282330142472415874787169403344165830434768516136647284995934285328481710478743891933761609275771791890167634389628396527239664044325907417298320136298504664417315018538241125770536642382490727615637219678260976482741227693633717756732549565956951012410634182270963954471233698796011222309053610863844265393503728532616331326212525563410042730553107065043641275735772135563009522824149776908725440042601044752837902621270189899552901099475586407521702859982153162131534395307967661627528047591184692133172649387801100583875842497518142229687628231416524285513147649225996170831158870010255877666553209239168149756388607115996987209797602529191532457373996737584975443320409642020241110204865190018867215114658072483559611360363446878520451098118447581347971802962438767298216379349320295128031276987136666421921983088871511705564499028324516387171017164572265594349688826289699547300398180562924343025255647607867645666408914644420360750363382073867309528590227827236901702038448512224577200026398693435122336941138359029538126590055132264577065869329700185409434274892800843874734006525284232228367993579610128376408172319590227517066437175765986026084249385954699241189916713598503507083915820943088943803691356622891816885515786868608092611287949341067623003162806458178847024968291076740539246122382025257278849136784487467877847433382256716699515778603699081992970390822671069590538630867506958304805649006853399089884035566423973444584128331109620919708175114622799397135900803635191095398983441264672763376103522023715681604093521834794824009822002624885086597865775828499594705786186610897735727099732095511202355985468073065818547477666184027310717982970018294718247505743661156736465270116088004427405415553528147018562013893911182747744078518438615362013047018787193992197712439715046311371172014261048861702053766038050082383781357299554994279623908500475196570396446213354606260348861110352702557443316357386816064261404033479938902396144184002033040296271534546914942274433786841611416944342952862206882416019629925986362506339139748183569600314888148604167401021898616927426878492575479139826407931727017149361488056859828678164045082442924572784571067837065040525317596658638417149673938590484392740209317231906008769854423777509441376168607051779124671890860651549529122816637077103071309885683943459035195992955054925204759101886643511044086321584420725009918968228637281597621592334096903477454149360355789157152639630675282985616106070760528681695797420857169393293238020743276590034748704705696000005813409138854632180883626993661716338947513549985617950031341838695715386528163325559665767672310237361224978446074934818360798593878087538604947404495076398279898101068568443704153417638822731461670124358555020490098032241340361638645062586740719616316832154853246690314336248615365416696087259786817949152977520231530498939169274249025996682273288420799374568307017100492906422536616322131300307539635355967830890746893925518566302011724959325041622650935391088426688200532774904268542442397459777112146401637983578411000966984137084368987199242427244056596008966275252574337216549076532467738405520958011089433722880679538567869692341756692533792452637365116744745269785179094070580483853344966062604955927376996801101918407695836608102751702710657702429651388560205871186896218918884898775556785048230728289683096430553094213755906053634005689302953696796181154576604504872892849852729029539031860851035001665317627449493647317991877734866809478669151313350225619704212613392833453749268434851077392630039093706117499265820474233753159648556597144925652651737551314836844045760633607994138801389641873705181464778396930764373826139165133564023823117502049604205689047022799665031775709500512727689359452531567726946453543106135793889649720221080729300605194188064803659215320124439388147125853723890556978379448137241062376505247951592737457276280984114496822507023457472900317261866245976759133815800144777650842239451066218339628981647905763050691009893074977340804853598896981448344585228476651413061115817127758233636723164679336811796081671821793968005432924859462993874832094985318850582210836963603480617526520233947974205843381592566854249397385242428965061175361904220869859459374935873343753549569273937571551254962219802940246502666123434411128730148531705985283667537064145000667100927343687879765563957329366829642367137433994198270511905331265586616299043543504735599459873546832687933343460106678744689002504203105436796507803466955368198466639935411305841098866322866997557347310502793238122784949053792125756002576310372036080957055711601171165063297165963624085596819560977519180712326422299073053762494631759702968963852505308507842825475479227643467943034023879386311570526193119551154955418354506725147802356523261073192210059347719338927724564578446560444295939231226688230994167503389702124520793404338772702590797140297996093966227320818462785156557536836262262201567805028646850958631906058679022591723818852917806429422293984675049406837802432684036251798182052377899640037138125457739825675958731537265788507542123541211691106391290253243874630976710142774335948720132683388224621700729028725103441380140846437812797432589368925001354732111288434746932596556037141933076394899824069809706666160642220825911954768450663011991325515456075900098142401920853750548097320906627549354729594029123102555837712203866427138701326654148527891933553319610540823288585858055899503994678621231900549032347567923269177342639384835156604379418452987727788300483803535904505939771420139467636119829021283905706980644545274118386860751872587477729453439603953319460313542404996512306782974290435768870834983821502587199010389122101576986935291010822526811999502225609381341104558383045257191437563441608210277435851998320046556047225054353180298559088166715019471542171757138220756180167336897776832233493037685528911257630964869412729064919513870794892522054163397723988814726874244872656994903287347172818740938829490994861845085552144727111705551851587599587198222280758113859657373660114543745998370409733751470404909312062922964406616959999123445201296043756872988238245674317437857357979513920343440601741901923711241194340247824522365541747998455668473160556939960323566898453124370393049892815388400199708940417945743577445029291690783983101544579036225366927454424853553170567317328667615637486517406007878079598054264867774103721395151170742777979496199467810906436298657761368529530674768052974507190287578202519849940654380399795593098967678300039913935884798485727470768498320319575418962910013024301472460204950748157481316872541338616641146378334443454650668215537799933043324724792742729227024743816637997417527703114744964498457850629316903809339282149489971828183215839116501856048017009504235530121798356172670538142701590318514928603548982131129606088254341058712256254826346315430015548805523017407068903122480908779307749547367521619451876894016830300975602369696849309753494628873995681884897709396512636641030785337325758132956715531389937196391964104304888060664449300502715745151658718946599104566844966169341566272448114059550912989085436167109376636610029243271936430911416141989836912544841790654706948236957802189546766991031077038267222371766191490345590937840682318723310499435342931410240924598320802945488901997068746513781837377261707819366705305706640545473077460719146517769667140088942498301114549227078159882516422521016372830183702279347257717615592890195066531625854836207930979044405658532185597397404243149392755343687577849158498052635452248637906906006897684740227797564976701940920396142237119281174304358957046582472953291406525791405526277276012284547062515833167680373731891537170983596132489163782400038400062563097895827532229701686381214573743682991522252449986609111178038895115162917269293026972888700876577559841056015425899299269803248984183552884614499860195750768790779863707360536903761057117100212401845528328313869972547176685126683567134464016651664742105444351173050671754599963760250282980295898371272229965018835927076989208057573956868269539190526878082762401503818834209051186966500819210797290725771646505890563751488542558929468811429640366551931208020478965311597927238600133388359531918279949552070087154399778455268799489308904617830916493439520502624882867947190604944384811156302368856705164019454271439822659266575592010265966195775998017560733502867910152389731227546236462640692730336912494423608860876163384115595338715196787021410204293689277553405108125846083538810730662925054360737076236100664964392522914171704775653268493892400347786983971020563145185118957623928378431500942093261965671776668586725833516214919471039855721647617834840634090988699298163544604551711862315646542683333541003822249722239362645364809397366397669717145992129447595251526065061046137924803179187757710929053664124649489086115921695499009863464065065372380459993853747548821104129347632905063423826679080846871924529357726841938723471939875508229895277874137273665246007345614244925752669913305954240449029322730160227359584683250539295930084368874746926331095570149715860781457353087786677525613021308354878928515976081380533117130565125749611151439464091677441973844266967564944142830429812332067222711714909111798272948558833154319777914326945099139767152259488656615594478986128109208768608060841812117343813551298107784631032394023430629811278808053577302326071167466331879951623552139198965511640539217303847875194525722018107161000988853110681035163821329529813207971144998494193862656684860192924248106373199914716591227188831392012293756807900998057715393415533214447773337894328013810875144610406327423545067483932890532763603999313540021775420754874560921894637568836070683533363430901466941427618558812303850404273955034419939026800924916907607797696805102009761953618292989312249751179221920078897835365453558130291936842344882151387581423475890231962470097445045299535278557848199731213701599309944203159105678063627798946027619928296174882944136681875397328564222609554390278520231057111152269329953578406806520466002615666278524290238341974191509732698723595797970062399680253171822661054533757010492113722931862182542141525461429907433002462310682099737741069964134419955084602453833067004383052154549141686677986254841905427404138401482747184302851501948908225021767682051872796478589837300732596640544788719225019866637000103624080863424737470239698946599933573493625176271837794614126984473846234710789629132057960071014554564446963191396961672974966484560810917111425518476013194882510054384071812643801632172224409973258188281828241012165416383960079224130405484223884456835906577564996051462550081903682515484736353795755899101559852276696687245507943426562665374230037654517409875914458364594713803302011477649428947914336988013313042526520430624258856350481021605420427358713943778155135636033250299466807845923963849297470392205031333002883614879372366002250508493090082870406181185145548651974196306292063040820959301182724331240732986425518539963791304535074353661566031187359090079291315382770299898386818545381165578888506979213699264440110187727352858548489355923969998247501249757024901734190444729376300885660940408781545195320923649072022690370375109022956469918924304153056868302980388985087083797914488695730209252878576004841201527567943185062941718232245608190101696257629151852943027204862800519129148154875790239858083625366260041364709590048907826467245304641969863952458406543691496649609448191765030484518766972211890897287606592511393717633104833294711456390893535294566172313953642572536248588741061700871916520005336551072156752909979450092898302393134415760843222933177033374516387948118221305355304385909247757869423198837420983028127288030378204443368224770438347217155995958149178065186407673828705015344339788159898617768444609649122678388693592209941737708332547605887058622286914065282657929806403496390257652623037688011180571870523506953843647293209170942941123614622232718265449144929981653575825807474781668963178739128428918153984491348863082417338256348227700147420051577001622471054516503385475282964881127977637177927771302345797566186950446834380288177204922327562443161326384396323601768084459371616095771696127856272222278110270655574272189678802861486247705539403525674734644256959157106923352683817616949048967634609107711452950812506303830819209526441867288764490140531985785197714835093605415289557160383952177798524860150742268205867081940181367288323617212841066839489179540839221670620470258901640249059643366323250409873447138432602679848354690259114026012322036882728651988783639535196734363318207456827997835218765041600349567060835803983226055254413481452991910261507018098196476539097024327952538137512691542572694503792457145191948496770549590227314122221889268798107843841847859121838643132724492970195978062585495157098125737910268515688999705536913855492364471904411053412203422906190965532251174662035687139517593879233809489072798414708517049947606651045896040161127523168006565504794251535584566061028732570013966961203351915624951624795225456229225845283359298581520516008097233381575697237026847750225359520665639687523766611041424550280669524952558624414511132860637308288317052486618536085000134367036093657750779870617011347242021051929970808071692005336080980436829789684295220695887595940062702545368534016655587339275080438866069517945021273071534878474435827640457888116776009254267516629103721682406201041215039024610850418444932381251763785247758004988874899284688369674160858871302746662577816354833186130422365388256930907824169090715646439575807674173289186414923545112151639380548547143284573386695274443869713044214613618691312371465964589762042007674855360355971301717184543574053413851786014317513155896620680089134424379288303818901586488575575365827196471405652039982127182581262817489905972912184583834748169505497731963018077624620286486771777634566763723026827158771557709769035106348142215644725107034844275891440602694231406570969711995675528852051493928507850220230219224825474983559410335003468626464734089737967228390227314412902810656635220990421322611885984424099624475061991720953163588550267433494937588732634642950003620603008997302786569364149534144887659115990245785843651735586746814200566228311415274324178252448775062847380540068712001621051336352483725241501750355159995961535119321434829999301662719957329885533381300400349356294259403427852684281426468198194969702934548265076864360698643351072375136000780764257704282232760310815185698061579228127221545225600912174854199090496801348657397760862139549475652554664994557246500301123932002971163954325708147295332835505597861622145964012445401842631169717668780942377882818894675455425860537347080146471993789160205222933735091424334804598992654114128432777972589363598663164841162738478062421571338176201092216189255785984321553512115864437845702010416926793009195830024597362632741283270471363516944479729131614834730963839348588817576150392791348995946554737430005571646041752024559739289293207493615625184717073417479292148626832827584737041771576363320448600381200271620285638278956564941206245393703920479454427324339350798616225690676122421827748570155053487132846869835555530961080127157382949043620467686192412358077106049973286052315925055605710942371113548420094682968510004284935953811318984117103231688085908134204124189633904204921199815318131077483749562951668261654244813469243940008269005895932808594277393688883513820582727904207788656494031439678860585492369613372790264839491100376599519560256741911457532217330020567085326750547346606896564532082343754240908215138893257535544639986574068816603453117740667781210440201218800110360432822944479352322308114306938638471115345416637802805268754699514588797928213282244315661404592983688028728757126074197170452285363156353209560177878946037758586554781591847984702086026869214016079775649328516867585639746565334570690659411377244532859371966322762918886913649989777964120787330224524163101655961239394665495235569088590316782004159424501487885907404299891213842218403732744570962431772999623464053348804075179001940007156226699221876672113824646545947649885569492868359664709181115083634313563354870392661403301144455463024729558737667302850378494870336714648089151114565435705331450831000959517026924113996519393337336797792678255076366184807103466433525239420444862782226976289154642954336923020889146991498393791118945652196565540060794273808214230101480085724737380504865208434095668021336233988044600846521072771448064061137798649810540919734267997925913093139613213127957937405327953596832148818116347276514422024009440317435191120527807193182431006971195438315440019794755846136482789451368012374391601444392231046232333705169577006997580338267882412172648247247066486225234609218161163628887040964260283435619991867357243059302389200518854281616398157280510481486236303177239230771187641300529187822258138746528302441682076665846866098539596069467506839531909201783389074891644058129399082822103794745645960914210606412012240611125524315727598200297487853682374574557159521362578623421877084624552524610151369933320130201055688477583470598508059717459534234093470338709669024571125643089703138030145759361983125315750669020128873138896425622992970410293442200361862916886518751347143180010084934867986650366966942242408645904713555280557576443088222386216746154212905204750494452541636492203706027742397605259889482837182461934532445652771260394745914097770481855974944326091492561642100354403739769039805248560019908562898072061268173138145641450851709790585140920141209100221908671237293326514060281014116219185649043157048998420433703299420137018398615284478290176816117007098907744254486655714910461783267336966921029687250895566754289886911472590703100480500740832847671021933716716060082334724788668177816880901139847724069827003673501930652762880146634934268943495155179852803588089017183639625515073118832009096858996431604873647319829793092192192610491306624451823796662563486464485087661698693181952159671854180503731537938933821364361619281013330269590475462234840767766165916662007693506132767577961167280893644727491543494726200818213076667415564739430861539282832392206166752276925597141694984491226935844354552540324866128595981820755065013191636139090413504129437102293237365627389853877709182083738708667950582078444143913560536022518895875481753161124982907927080963725545687547941371399562244887727526298943882089480298240173735540145300639232340290831228111293961113500442583012761246307372346455896272904704924530696616668801949789564032933889998000495625340829771260693629670047265647299400552530258451765287994126893870812298790691490245078457894291650079052493519198762469053148927248069588234654497423248072016252557314790073988420120628476003021258252555848629029636873217453225730974128888716797684708893661173470107886021352792529062917035160830916011355175538319470306652663675687309198115026188787123376769942594769398541631143269520090626852739151214764615137258051339864106201994750378533735588577138841263516804353196655180365405786246062001375944595549897090333102675814658652851195243986800022737429202432540256039637956386068478313325309852000478264539341087156349142383448239009994668490516764357589652481879343657822702141820025050853044437678910926663744953074053817613083671113083584313353476012632872724769855185934292394013992594824993561625866965688544299956884731649477016836582661543146634856466935562536369925184443680312021290226893596459074783447007553477061821434490440859641785994815051742049867294032309774665921470910599840917723029708997695868656471738809819274007606393351045600886881236555623023333313866232842832652989397949925120239522190581813216078999314134819063583111350111537950887083945602781184699151148573191777736253691385972089874331272213176060891042570571464257061448726710817173423547247846051009871156282318966848445408960644573760891490698126082148138131599143669958663010118708254000516274784995770651792392110733067463595877699079917527224510787109743723445631656142889639802341732485941800052199932472477798539974611350599323458301058321372326492523831535362630493609938377081018128465529802803940182108162028299561595650321456565378849314733045096709189985787926794429092153573505683230825925438940400657000359737638519441669440460581518326538376807614152909701634907276507029795817158588205206928488865530701922693314087141996122203228613471392563468547905657182168002139065132501210234824077646417664131811264127382652141396255826993077131886136937556981194782834214789710897305214340541586466884211547836632346601049334927289781838603122394128410985592789515604158267239443714348577377643603448523671465727698370807011112738628224132248278032971311755274346651292864059727971796574669181586435422302088805280981518190562690739244536837781226231033763802571475680997887640426690465350899620476051470381061134508730724316735512987511355128358479929244104431219936603880390597984780713444852561365052177444695723823783780555303716290525774515309629649168437974434850973646101575593189894946546314228688213216121755457838949362131705081496026138114598864888152719811111473869607008914563333704547291063537683578870822816275376773978327254847294223778766492918917343128985295254975922188355646710023748802627829384815530742808037586189850451243466469605751927312828120255265022556668638725980673428598161422417162988330400690349108774386385388764958665167948989743142197662101184650373594189944491622562582991316106381802718251381685837617489745628935881080322902198797978243487465318063889939020753926760677344343577124270871511903019253096312209812736516210294405575839304541874547444085352314879477375591254601901602390188432700083524489063787743665188393790067317804133967814464369364854948826311488413239511250393911943433088461010128450643026847887676178586696220345338996517418809498872331378951028065134362336862344241707993664037829038431091788704434007284059536227223424907642338727209725231883147526011433011474583474656977682450362570863240642887091803026300276132028428157309268199679821423870324072451051486548345794058906777549414726437212583990766201635998648074062353655777693521567567879960303037764156391983609905386441663368683831916146837863863495220207050884795475355569204005021493770174706430181636508552686583736666353899320144013952955999959730934039095520931764324589308316210888713880149053182910390392078326938340841722184619372289879264653421832269616327243326485650426842962898568460363360371157928532388969036129591953047185758383535524415229178205306798993382851514454676643653894965425076214931873447154909242791536646007715696620192937728236790251747385845556416162523619767069912992287700037315235869633435565032844635775085266298261689735997661044233486782224579410538255669578915011191452514880958727865555581430234822926237787068071765760039020417451552492924544855662435366282855884133492438866084223600631610234235672473229343612164804260531696375789759083287664499005986680885375862053196011098260184637701619323434311390098253145256571269078331435177985957738838853922729163368872591268022434132127773452324787621300672345775823056292085684105337168650297856763361975830480667961283219095515012015934550783110876325566239842858056535846146573267435486737782085296112561569995591510903472581765886207357403470437952635259693713194122594723481617571765543278377235981116135031917787653046573739492328178468109032461658620719375798355084139524121997011349702684813998340322226471769344643460397437256103619519826278905453988067860791440575598583522480171903497630445298043044097683866326011588683075130718806974026072761467062467807152707575470894462960541459926405634503018533262738862686864215872014100289124209190678309963007074816141500713426785313784152022298906021685307416629510724034035598582025260064442164890112115760044688312361418644210536836862708881598332847050270505225675516262715788434654341728687436888362608506576523789956225126099428196355072256249666091935682947800844121703610577766314830299825783334325165459670026050265697975600984178767507720870024912218259652776317659356698711118440033968462428117476995622507539809195159932443297887387598302468605275029107063169073286081809809134784259137039373689581099609768885709418140163392028486983101479407310525771517905451029266627649506051739121608341522432734362771469083434432134587577074371768531120599298683119429605695334334757840111861550901104237797768624267407284318823506470295351540264663816164854339705748691906648349820003212149011007544437639511025572129359619875269975200769501888073210840095070872755735633612554140638535154937490221480282123724058286362909181530558601758229464398706460551663497761337039889772105244811309293716512727097757318827916440001046426515972903125204539437336852898228846528426005417905519158184741346212901238703831086210660681062761090208640508152484929671437580494434704080995248025713168896666483275960196603094706087997089935422441915186504151287362044259652521665215716597524976196835278461991933317214312178341320141436620852981331460127250363088840764483082302272879609053394698932814392764942925396552960417935668229173596805369902493068477118863798440282058784633632062087948507036786391663766499805743568823993438075962718908202924006907280701413228429108818278765301912015579347650837375692998405931111787697797776062188073190993751414203442376020146102863626588819294628673174278687016293669186761142764892177189446486986763178940017242291210143637487820350749947854613034923825471650520193634770594154064722114393654171270115250570431529923270810171029627077927817442395157648383879929724305326169968653343089513586134796034062796769890876224848021032741635214370585359104709064583877288624202707740013265363515256277352074364736085523890015214870726242447227578867302586445692436313558719470289347043120530882968525969133285823125352642247455773368002943369095710969289702002564185414065765425743340303528392156186972674036592214871909351216553144261959827250313480696181354104897387756252030631521892340632501876733802986443614392495830165715124919235931482100027448774265355083944487509221754374581722886059746197751456702426271793937046617934186905992253116295387306876401700905634029009827301342230228351683264773776565856811888672017004827755216869429799518842240306442055378725176188714094647268808193631639694988262480428190772861786555784029559639232294032844364669493245190689416473240009940375797169605824762215102462691035613081342095601222387498881079479741349575850044203439020257648328116603504256077704846453599897184637852321630148172417253566236818130015271754531196780996015376785048489670657429257386742514769804968459683340118662607625389534656272956765117584235374730612096374691974218844472595255254715094802369957564029510411616064842389848390856710344012766836509658108783865020807205014751602178608806111615704880243222406002288069791459975212543839674619361096413097597817810242527437000629444924347341759475874348958262518385793305746926864050535809171652092279005469988471035110410967655792757131647287405914311651171707083568974563307910077670599042151565908233607017717669841270097637079755129335213311441958918027479974382172766527525116904212594421525715335383892407031321084713204939656947677613162441430135126912707893575736850036765712632649265103550913660090827000904672789008655880970527896056298971865972558967212080619370574081647783904943046757651157259018079840378168050728020111243585380521747514466214695412811130402032054804385585369775013508188081764199591648531616821622160618509084393935299913754673713955467590762595605127170941112114445492966500729550159297988130582349438604285557694381802602232983821685568593234020000494772736092277470359270744543705910538426744949806618468908075014053313250077224765485396637163042694822658884069779904880856416312300692064464811357319970130879061995145619637689093186556211505297116499954514473797837588915121208865909989694027880678344912881142734036469964303054934634285168854959294974820593686652563462597707303375225076840116936703639091940561136662751179602192454421782559281412625465145797521566544890265399079688618419336038981195840178102563981736239367251429171973879308849534464407975507583489977079344222242849755603259273470834495906162256946036113786959183013254875305862100995408467550855703809997505094873225372752842717062320355021354505337955440566616228969930400386825178186126776944859722003769176060177103823519704126400614250390028052198038800793742456281067858990062094807819265648122942594791501727120825538713002221638025525053296237231624474399766192861090867332178953173339125394083562747177629466643138234529033024014771046325850065047761985292978410343249284341341574633358826512813032631521141014300579962895128481416531900004484200819765183704380403217671494091108420523472233637387608862821539386634396897637713659748340141456065053327706605258439395972417929091379936273476804478293664423423528459906544535137718809222233690787157854776381123891873925547569123060454964462587149635859687733335616029730526574011136784404062825452206623324617143489090287266263522171601415774824825503380127050476579647096381857474720392678297795059627447191142119079314661567267559895880679629960431327451319771568781077800912889090376665937749047151008226551223221455251161512251833854054354359965196569904426455714191909713827920906088925397152580328904581320368240200923061990183236826232958614160720391476553355550178013153187693760419628868729753471385041266958421982125651364438188367933538519238894448341299499093771449988472035798990729244279602456870767746741103731705265709775273816099693387945013120947129686338093307119944616119851388906714172429517629338939160268879952189789115886552840577364905184131876707727249293131020521875437927824079563137649063231921358498736456648539359783922688855267159198852193000030835934756993154061520020499263651009295183244476968481817848632683508926925078703444707058605335998760067706872108818045785821289964248907343126305048362344269414487224481838667702507713317332717394051874306456004845920012915392776517425123844337794182485213467202774762581581665275293096647776174338716206159789392978438216983999826775356054299330742234899369056546415996320997024014586477864619035579578155251637090326951477828313410446070584749509310601863467457187496478736312037674087964969783320581468015074034963761298627087240704710228610265714033922463672780488962769889966223367529876440811186826903559695225618117954939483583789438598131161088479677606300220374828722801995929567838700792007949447295280980297620026755307340469200879202930237102157642944129861978675944346202628313334797908172150133677856526058656474253620900208638700196302208408989272310133969823809821650557298473693174365637292925500360824435996131756138672697455775749698009239192141021094854691582103005880931229262186200917559046246946318738687568498749463354007617752794727037985121679641533018020651414192053469229494214999376837219894306034735879183705208786456333796352312226084241863733547318322069686322217810459971281452200244217018043337877298330459059356639562263855583715970122254115321106420181115882202709819106770112019208456844529110425432814333138150434656150120533915622749912008203018448390401933048973541876671281259356475375148275600810312722453974784665727183115291555842802676421656433008453643970447147087310206928284928247093476655352137342404614478097824783560535730867771893228952532608714677371468516670828393193274491147336880398831616911365114877861460699106844777671299999795098951899899871401932875809106097762679110476815165852297470059325702429301460625597472176831399898167092191307762249711586332277819100783098357330543108949762667364328604051719647565900924509281385161510277148618290293433386266739537756599482092136604530808830014719955493105444128701803598873128664123162927203887346775787983497753641803801670388643690166916960716937051083145962891963576121668534018481391270805444680911611637774319843545284810602747759792736427164238986195260866029883058176077635949675620426344920424131277229593003511387471685759679910136530804541257615421611087619506686061866742654872097542650848712623396932503444571430694210557793680421525168780136414341398317010518333183039031686441539943500500757845633611641280958532304068072543406488597505665311977140611861514377304537565896973695014447067288154067832969257604392735040890539774885034817579085774752586033190181643604105292102107914174576428377431872084196729692576816586300160988492742154736526987024670882407711541706506105504107908254372431955034878086230700383096989368777428010848038850216848307020695282853904694349697014728104010490867072524931499068366705004146441305954110615217296951868346356826475252378184146926163363532670955988807613154246070198711668641814045063045169465495816427671110958274309652131885304043234404320179452605178777811546462063731044727761873784669770981090241567109318048153249687130245734990430868741080987713072921810829505682710821808295837978290811003257698915360007305942531081591901476917868991938165728943979932116344618618483005816421543255329621679888095730645163648143093988805385602138099504171076853561099937047854551557124067658784018931250015926837307735508281856117756552423366283166875581237442817987148653214687872951930779151552384755926626033571582412496840615909166075164121647423975907812815081973327665603193676079442060602207044893221573872949081675171206863276208629028076290166548604715885052463216119059841592329260545990954913241620650477891395929720559351662301817096671771275358738657974745526285910903411842773571687779190444998218132963858828214711080814967723247496820184175857335269689610829046666223865088502227437587732520685794459269580641108410778778210651246008018026728176764022036371765004463554107977622680370578224716230820783854432126252516686539958383559190203422523619962566274423883210087767482869811609898109481668349052682565379687790712547848531452597347751334409713764893982695955329967144214388670070660568802212411714404104582346435723813907846717639726164222371981745997981738146481111067968617644898024000159581936433739342976836175908296434778202415252468287847681164659937732176346586969834429371367345085765719819936615114413042244806621552518551878584252385406400356523620811693021960361784244084861919113462547363787152205709345175659169057215154163080672930908434402037729795933140389943949174173442981082360045395695258800612626743649327315970948407967647536519352021582601631463877521269189834672739567389141447240623986319547177039587094820740723961246119357690355104497845991835060217555804125462427301703463697525892424149120739731831644567045247931731973193565288244027691401752008319897066074262721708599878956858358800620570247106009217408511562758239352064769852949016121398712308273164208964401873876783302695321679664161093161761105419916622616207297759473162777659063052160579200845834748881223534878602029554728558312485710041931685553934475238471084911864777398203056660132269222914800013156426360455217174483969988344180888290248225686141036736168794716406542627627139851183537733022664674350996363333642114394196919439038044411960881287039541946001436538065901501309431480172969527074293373858822559693914299261623007735567709135150072698556071630094216994409310048927832093421391280960789548964700608085961039631014000976922537793008779953086095731751248371396372690783764370450195719112549181286692599488794193546093356279284902899757729261197962041444673032340907310441728627135140777982346197003936248722320038382536047746088842412236649612576520375673246335293421295005983187189657595104941968756981791044551853312376900015655484655321510749706788834017759264314928882810592999154858548234116736670522493520698404458639077986224472796451476388641025027672269723704563023937036226077852573310857473069652573342230889954875578327870662142632972017301719292684842193926537317512659534559280311997544577730957516925318285096378506911753868377121620172625575625158700885104295818103209274678351337030796526668407327620587635061473433815384556074889690222160893908030172190221643529818972113196014956413611168539419864127032684723746592454159318520080187871312737991179085087888017018829036082276955327882026310824229163205520503243559479602381281750568579087825794299286806444081966885180529642019177712736841900335854510089094237830337327565722649526795381936620011624097885508369464206756522232387904418053262179006986025488270173192640358788952294613644349977648213227901409180869007328346959534974171050499683375625670997948517930816670868461578624169943049711308817388979536042621915962263764186884644267894956491900070030667361752243415007420648680698631617878427037045540977438752405495484875234547969204175176457758285961257162011169939660003162364501116909901073999698809503265397642061783376856818335038228114331130340772906652045812219674080667162079046642925412061415682130275689898184294893353828356813431949600411208206479666524370652867067088282352378250175078703570438464576811284713992377876216869693823965260321241496591290904534804802511909222633682965843185103970075335234563932851673936625579186054901788405433393877329313138414980952121553946653289983900405166025219849587698466594464225082484108300150064269190441192002017063190250110197219627199770701227478360680604103054324108908989924870256413261973496644033939827656173098870766017233376001364273441989695318013093809749493584884846969341921144389634192822197995305966928704454035833552021069425907721660894670099421650739499440398567544072464906728349229364220158943875992589367424482700107812265919601307949142905619485767533792758477134519029421982170731296612853635167934686182199077701446290456580240265570124228890611976520544075207015988697643855328191629018611007944751958895632991960936721532721629815898853519260869641298623432077298006037359335562405461612485613691753153758107634434314394841011258159352663783051318178060186194806537240461735615616896380111117048512668701388385534673557159853593466352268277375834533575110311112705174981395035325560365412094532664828962218168486697854280242960197497533335053002564659412760632880715061593736154199086244010993764526026433403760881022167901698435018837223792956822833150061101621058014730323301341741727594946561691307263482736535489477394139827598392240356762325906153764907208377529651209491248178093886954073940902163786824802205284925432703341607530613242788510040822478157169696394519694715124246316998210793622536374063736473555261301557227663704563394512231276872308961563451363406788314930693288748837636835689462090777759366717477412415937609530770136048576865022079367452237666039659004932636385598727840752434598721221198430298870143577462545583718762163137408694049438095368983028977972157394195497833945442023108337354253544210263703046825566054911638276422615890553750666567157270005603244702992873083912899141859156577685540534733351295037215465917575281918404224437371219277749603705218103354626602230720748389577816738488260864532227278096187782767030941707452911171161907418957301259417248986789892160861366012815771469941103209117272160823186149611734663275431043179387760721423991065954687483073852144819637554004064915493478999420895732186625867758401054872883213840595926334405118424715966240105348005708009546176731745085278902220383913079835430209410903151631457325366288125370071246727720566874996380525906771942126071472029488649158781206809628744048850741525884872837152590723575594629848265185354391712636807444727347847326100933740759740062055330160092435285066174386693801712354995739363910951885769276140444933926573587903440144186957759251325454487853161614893875766298271712538626370325554103448854586497754994603790221332285208263545997607342988571953822644183076162538372548468245545670385801774396127988326970988462679107415479007270411442986694453715157309047189172629844550671970539067225622995785165406908185514299260994600424583645109447329580805758984903291529022894603850903100683258019626375719968476249252709751993198665161473410056137900107380019867483598621375721256984675912775486791611777009682364553303881361729563208379797535643374122303549981287524344199763668124281875386249094223675966032660987777394047607817474514614936299940430330829548439757387466045406296226389220617558368860350274922416996403924546164000938366526488682147011450156637335676148597414124294180663404771815281036556067356233422958633920630765754223296096959258005011410647224156627269566726629338618396027076550939526193200155016381320445282861088890167524401408785682868261807290370324944243456409232882874626152379553070032207662016859434552623676842222504782424896932420145103597995500348370380806586056199146841050325602363749688654351306254938761123117971672929115718403283911309984403759484254706825921034907433468771927494464398929695790371303863843800978316631077107377865122699785008150353013515662561022010604760411109851395837372698608422245367330589875334360344473385671628700320726456983159432052512125073660529009643194329026944435214949643279384967740350508692042485036318522207312469116342485342985155134511675559016772532904017402759740701534399277299533059882148283696185895078270300643685080090468470169912952624404203095654600824166005689767774046355127353043619415528803667435191859343620401328423518326710678859573795866529017530813366722540987353849877057215890529279992064424503624341550619839212324300209866074022968255525735524516626823142403770606483506316533148876428746782069620299328584853860217968394580131968289275534747181015790064034898518358192057856725516842606570859522761817682155359648514508773580441344799035880059760082648115458825735160544579240617177120173311822163841955544338246171125949811719669549479262797190381339431996740099406713549195425287389599773486168144224931562502880530420058122070098887101781329154956756598489953172814598789028246594100225828567110841782654599780184397120785270801222851482725800353165543358396505978766597768345377785618483628401910680541576658773093014534743934919681340619674797399695876102747211694621420305648577312516063408821832361422496344400778894727769444815606370791018697216684666548826338591379829423361980407993933922895035376520709245393167317692073727714983642927151011059612857211754622286210725554261880168197740288209146200443290857255689049853161996780340715241678762469763493935483002796927698579776791897724264156896692774976041484052513997144732162618464705784072001793492580600862930517397431094005048738832190418651837151073292425541888875414235743765525143757465763947438659908834964454957386191359802003706594257177504138374678740546858827867422673610926357377625363620781656545670626748550307394713461040519977669668755003012240251764255901313530915254709607235293758477495507887807492014745017755098956182488991905470772843471861359991642827017421453975562260593810366731254728969827582092493788981461038436512592525111864345646953121546336572160885145401870723850804601481316249460067754023457241057839644438589044542103988437566033347406713298456845394013627914318728244774912831963415676531219311456463706187609015589764651042786289559084837171470940692315067927537832390194501715099007025100091993589982657205394320918345026086468550343953608773113322324118079502487244841271283502000229479357324097396727148248842844365163646548113743507408619073413124328817109161254707812881955795649934037072182315524837060169934759067311176405373677794313722246142147549643254915829837574716282456722172324259027642264042831727869271458990619491396995908529681155401504492413756932434344028237699888532152415783155712614127457289448309102565472288840275076514753609994814934582109762599178360095849691590120616412345259001721654623867554894537807744536803042095282474867515431770757831005809555011538270899126098078811309006607323012231493670882901332914258830991995688849691979592203101481881762717030965617538821961899240305933080278056249420801890686085321282648201013894537965992965358944752994245537066366511367327233426832699824500163131336762379025202861591415098106787035371504911056773641109070885689419495680949955262099478906256269165397068324767356091485181048806078684717641950354361301181663020813731012295806484338419208139247794118035412298053507083949598363452992613247731837252402106258357443432373944724072896264580756641944635147714701414811402802039359965639283764003863456550993020046433050212979220116223573368327928005698001102065795366316901199526827009417510429203595473965029386840112241051867881829910183196061643371768754760030909899703792307981129749096977824117525551713393741592396954858384484841229530828784988685263215392238763406885140245873762009792918430961159254715720106404396373564011314054818422940955437486708203623708184208880108291581878322972292904281593131327682486238395897537320475030706243014793539964688841376335336310887780163130683951744068040769880817456032474514427491779200162294284762564182173265197910198716976420927936601411435334471491160583273409800676003824912510550168712993078453560262785492375519275658413330626440344693081985807654725660208805770557085085554432677155645384517210332357046562120937864635282565336911194205190247368693015786451242371330801106707979550860572963849585689710668318779280156782549739001861078867824899443156816985694704339451334929734196324882424386990450054539859605826347769979959454097848681508508459428771823107310077041883691631151521274556944695483644461549921422080869254118300612495124254858590727339824346988766862396461681790919089894111146989583430493312849231434632841762639525949272124563858876350997183731070298661928089381383185980836677818668537705854231222649155816205151702874716971488490162997617534026149867643011130632654112701948060391572608562142158703270323120222481937390345332720199704297109418434213217450223210523835368133583965764931926564126376261980103102324995988741070408961786440145833287533299960082680057388843466337632154868425498954190891838751840860789069801564843266708726608319302188451245500023427630735119168039847555100232243842633599808080810782601568586467607869769232744788371664289663200182729944514055973078669732657404871223967670576247823875178133271963751308105647815007816631808159151294458843913637162444323988443429916467622097009401452319121720328686930510175124615967776336197336120830733732775232519425957998125273320307663277006795606468757231277505927307231043168027050348298780861791466374358362121091582768805094711965811442746752532275639206700030726591472105737880649003430509000136579209702466073590173126777777904445968379772385955951950982870671562733948998773151672237721228234681157409332215473029263648708152679301798924704006944295125948731869203711465246632169705374229000416774770322308724507159810070525396450538530286185430904386293278363080698860138941220998157525271848545077357766703261071629425135069437631502146204954211402402294198478589192219159395302583872255040056564909849047647492936420288460343994877968477721044835756960371305149990966290726901359706553084431786659810623456000189024345924739648778459348912351682620105411036135952287304432375235048872396142665736049783180190585341002615066278207645623571104228272528717061899797920695628074259593064259794401777608942965270840307593977097742494760713453332962083215665783647776229124499848995233615338655203345011757977444921300480234699789385926211464122238875799706029121574865481169743900385766440548919286766434305377898134870461471875245634653651204880014464009348422953658448842187337734121069720557713785609853391087535875877069046509694367957509469866966221651496943876335484868611244117287519246754067036181543609422026170958157001633170092801712368964833756467693247229085437579850128583201858400978532123995700549716845600497081540928702961976700529597061888600574389181524652192608048565549050736312292080388403430819118734980394409043995003056335620416557772244336936053754728752230394648713364375213535951531571119655949009552663327808243390920473065943458385764842871196696964232191131779571185839623455800634349429504924646996270528172181219160097245566995404431495424069708203069683671255402116986162462769534685238353725837508545519266064156897788197016055017457721445882222551090760732606540422664444850116966050862513195390793936239333625166526198130450880292896285573138661758182181260991176149438533439812982501717376587378987483351326569172092604069982923627833622664531854113899554305848598372443067786240479042910245909460070819713318922511593077467495133866320918413468174611521412357324417567524677810704861017802514557882474771695820257803177352780162509354753334994059982087382879339508715800547999883436931668552349689708016851999176573276914200752110620086017362458802552167224812388273060588699352230467685137355262628811514893560646528431039986673348030060230082241719475840974643732451722896912696288681540696028951065627250514819510919110202794407760345183991093865569571274014701934926198478296537027498494668537853491370006972590290200043908146273213885666990177415968554576569630867616977432261791263024913428152899590604690285196826451274500035154942253421830641508602168738845279419054999349778200226538456722571144196232630535547380527709204911273711253439956506037277500301023353022626958495017073284878450036278380741728139159058454825588060662174023601630585012385073652886774496054499743688654821807447884902558121818174481649173825446095189777511418638122373832237739572762584006896063882143089498780892613641561398693161747256971593386494364962616121014374060263212405100148002076319646422071002349768454719911160276682842775948273422130868154617600183569673850501970799500470992793345486899340589086868725699366722939059089546927256372950275635071264544923646417873230249885798966859116229578767387444194221515004587281070329758265602471407463851994836227595299678604088051285156797056380121850449248523781208576642151522214448388830446292906380843110433984599978024811288254163965584892686520450625528762833028897845747018208041499291732903476976303850174034744939083383834311989803670655104091621839754723946717173293661602503659712350610176852589745829265636487794271054559876458501974530264004773114073352854997350016087537440692559227744447730056988094954089083742912737129089902938166945016483695376539615346243028674338186992193360222457619044762906582173816064394261994957231912321966692651934452845725279473789045904933745840850793920843444963860546409045083093253614157092274170889565184563794397333590159269853795792802356971543980975035320917913311332495613490691778209788883413697463319287553561596192412681067184440363370817440258498215753836182106952028126076850350080851725210658729075578766313767143748549843165830825736593739653648079289590894940912666036600785941049334842032754414257875653762198617759737586723041731373916619275342959265978903505468381049712862269192038281412219037999443978512012225347184463280038998213276260477138066019924935953608559911866583590190287735042280789879319290040806119775087876064549533141482536529211503689007729240467872644608100901410742881427483375805873488817461669247360726246595591683702243717975377961167308722230680780372282526054551613790720641496147533028338289923705695654550446105015756148913772628211702140497811456818473002099644352574592612141186989446823483669211447581307410051340167295452629098964143220483409869482936548155394985046156580934101884775856020925339051319074567818535525146524819402587760015200005583391276175692284742255848604010027022947110864474590135564293744087631283785831243790183995853163201131441326230433294675257670257893375129027779618630889137104913832119015416158576674359825010955931717692109966116234372348711346019445446433321342686563758277620671028971205110665688890707271093262616138134224493488840876408740162966913783608848376175715150318232152726428227185370642428254396123075892152426798978391472974177050368365750114227151088403596103906514540166551445563771691164810530628956095980523109325165359321571620534073026278879535076590698435344573830859290608053506120949558033948999564744456037767136810437909616708187629018239685278174565277681070617073880384973796976992086627315788098007744924401717277386696154275892667784287413611942502610988998999952754840292848862440376442066657997929984728976767545712631134368935665702721422760753227606479617670998271250439882813376432992992619005269625382615550771627492928375083044081591354826587008220393654473305363242305639530472812311569856465920605998864905888191922245700782561981430126005739837443991681217684015570881843013439532173924445664456694431303071095852180926531231162175956752115085976737181971505977840027302586044851495670744387344763080277191340674887879359588689239675594451941730680836448197733713636274063934457577110571582518239582206950074432468749392693282708027943142991987779291817168920113259174846318923778508800173195267909624423762470975381650419411399229369052011814115842214512389739243009907296634114740174208050732291278073236100158819166128906537026115211781820923574446525429146358201032958167518443689203688165097034666280065263809630744146180076821795000181909824445416596999517137914913963161218584425608054365623459663268874484008835699568650207242974464802292167701522566398979861148064138168552414260430640342005278275533054205438672576466878100615535044420488026822299163463892824645122768653222123369375149054119868346704849206910088985045984208890541065866018227615534398172636508032418344641119940822906539279369927333627617637818878800826685937208492724583336065752380139528053068005440874893754176213456893581147108346654001525077564381298376728146517119344792324171302997380796691958178601938815889941883096800947010619432718537121962450457420514556795085344836292797245093633683972584228087539325884481234515195454628242472627393446250635168373533766327516593376930887708601644127345620229662732862525739798192735433729565939075765195451944252844292063374922264225008322515737444546344970337535641332287533949079384631399403617341288123738404896964455111175988342588948383864222267345355320374399853808115080191601753543509026709809828855345982600134439624375185537297414907786628373714421113693504639445445912746400893580098476897211669044398687988320789742524834241803864170257479243691162131683459721212722211476307072008238311882413404195485404697788759116358840553899765965654345382845034615692955689893828512367915125651280885708637143742090165658645694833475442717592377511857459721624801473071739703547953201490604092202445420647853634942827353789022984508858607363717055864824946439071844868641246811599361789349452635991904745150621913637042822309654950988161877377775322299294717347831618420295985818143543357086213901424245562390346905302594145816879805686669115746819658977892853526305727517038861221794129171594450398017981949476789730421949675036263062872467718109655999558304622425692338401628045140803480158768781847751882512295899579421596810238515856535944830808100227673086617769598531237437308037728684009763260479307352893660671835708789633143906502665967720989486372294166866659560561275259316861772897400127717275998373298298380024049665423663231554815777795416181233307491836852794530068357842899871072656252586600721717268369363364525919301615845310416449662265667596571650611218612866080112688537382149053216006980260325438748036076354073402144777899759154170885607621355914626747560962150921823419526575919956069072576335953194139037127304255761874990107325051840433542174286519986099500258588071850568849980916326542825044360438610980882729958599468247132504863335084729625647939307097237350431066704221480333178982672776178667134563229134325161813920578049789492837506194704541547273686303926540001722192571940457388979915426399896494983013087532228305266994829305556442500981633064280447637612635601543142395080353010895784252452839915735317075512513795870407459372487903068869168769346888929019655880532155130932909624162753459208273921641323272629625820699314975840059602665323516900861388412494862599049920928140718842961141298305251688720872125445999357543419834496299606463451771192239104514332338984868675109256580807936129043140954973990030311092094893795825330054413473943467302533920957700733675757786485648629374807449798269324862479724922725462996281143627003811505862074178018621512105628435645800268283478412780630955642094154694461698910479068021279846135426256296325607731418775700710070942019311799197168616273657263796436062832702157605849349362733271727806813909839267583657575949466492308500646017041870498857613672563666689572120679542697223286921941783083115859674617927694132912300079633528815141520710224567353343040755152805328762404122418066738880969989537268782385209707261648858337232168370277692361844164218690178358774842908392087788257950953589957956496092524745498670291232764364283807827001428031420678153074680079432584361859984591733484530419017409989890339889979986574995597286918210555179788539499962985491738219008627678375711779598475560696799136558943803977630447584399103346375500458699149269047982238878298257134394323666239835958117468810176974148357272747776478318589304074535564854968027918216090851249572578039319716304021792342502081036045521924801524453044632858048550601219156996355363859628639582702107893512209570319654290052866115878604365644255969491536037572844307713826122476194584154060337785025701339260502456307349525332033321524264403100232352446529759181329673253932078662287824099000685113834681546421430699293190423223927962687031745930947922160192633490886563263200723957219703571229485718812688469351182471305976161161587535730144465164618207802271864119003882723701813024124708971564455792299929076223053158355080204163971398684539694425305254470019882827986192433658639757761792308193496427447209576855682793830771836779836619314673425358096063191664606734923202711067690051906727363215563381235700540959825676366294657048174700506958151939302592101249043305274327335877048155848577819999611687687433900659279113100946618791619678314792576517441201717262263211524289244880054510757250158796672013893560462587089713406064328467787079269576109648376575468866476810652045327930807593517610467239076746669088137116073141938413946555417526318205010558436379630683484057440863825388394500120512622008450253382267600646272768041848578826094296779705112933152867076061027610214131349956517053275327910027392115125165744748014886989233270062289346139949613518526836203090361737400760603758654469477344743427575735845894230500006007665567888843279637961261512918376502565219228044990813518179964645415561597001387932665484095152457549573845873767740398405632634257535737281680809680931678424203752205290267142397197695254397459478732471322100560381564764942775880954715261999793569911241333625509668550833641448965052009405269145094390325189929906792287125877930976263796534692539873570883778988720955499220731242729541829815638687914770116794142080420613440486689467388663183333092364498665423093279731308967757546977182020951909219817270969027917416694498046574121636733094322456589559177319397201456861561990239701957747063930330904922698663754140349015144739751862136157169383306376509335290592010339828724046227518661858766873212755911794227903106004292424982395572398753887961341894578009829348475780589760536106491654040935145774417062402341905214600944575085850308078479569177264213900525955232175404491996164253555569880272204595969018160302367368453451274559815941963958188342241148261235068665636746681101590365591044204629815449350192869251370386078224872927435982073413435127306420213159021490477865548429101939545013809760511542355635918406604609257452726769721822758369394865795149602667359735254616577461005143842801458975067453680296809508522610696805296109641052503192749583323853128522298454854176587167840178038001867249990677311917825742232603033228293173051763142082758367174319915992899828855184723900219258488969742569676564266586267451653103685532132082386100401709792479695463067914346209555541460334510572186223146413294082058001620319599163323772728082916847720661473596885431562660691177458852445386277396558573425103850438854797524234852138247859887152396937030194994676263084653889741353700825218037458401818555803130379749621253989430508032974149262280781538363450926839933580951229534523458565907274089491000291275232704745309191808688599253243736857043483994028161549808240655796115150049703787402315240778335767863181393380734202145321390484978033477537588168538807271566841189784654765330115051021059795998169992826285204233349445801663834702697977879575940417722180144704031644549352465308647719326410329351102327435953559133037428887337469493452058126559766637432515208490923928739826608915904135071250588980086946396856133128203139543246062536344028786159167463930043670333858629788494149231094696455820375801371867281401166229376295219674328797496628669231768665584939796661360398024467720361883712969988288779286833272268618085815746228507960428985497854301027818495248917322031361163301696647430814958717627736457766267848581449677325336648597427410788304208151140914203701732373554251649760790510364908599420641295580787674786250765052705120111320684264546891170982084250102252848369619397189755173997624880702446921218161094608483200530808324566398660274404201539407992111941377378925778395452146223489230572157440731334589865698534222449988867611907296546891076611047246531640706095513410784210095306090560548198059093480168311077088481123617455935946258618215182621991584591859188655148545545413260290639329544884453016333563217603888885422370882374866206151239225898606158591191191388876213110877134979116550866477389038447991526502405307642185460972794981212035670357369095180245919192338871449767767864602716575025022831586122578788190617108011875343814272239670586866218244329771454222816091038040745794026314853087957957017918122753171668977561607971725386018538453350725939132665262249388009983435750089551908169876761220170886493605613825793552016645936214564469424287664347006737998207880480448844415376364091831058128349588102947046033941152803253672237762771689608109529555468569335713013329527743764300003610640896479594769505568303912493301743223852243742877503994432226700092314988694931459485224754234847177613943312500117890990448158287929359773619711693761346191443294478569173089884804445935336716431628301822811199246290063686249194555771758704825173367739688169116235571272085754924052403473290877795227912694218251812102676136808546733310190319745826407668096403740341822598946662460418581351388212980527658030140127029090911201762682970333117376195923518263672279721007068810963003522154573059819874511929684925485202144817920287598019175800573046150610430964098768562658826648639494226213377424667955555751034291840753915540444508944950198679267708794707076232804923585458907842016559410796195318751110586560497068671674290796729517285001704916785090134460086402454380931056393759836946819476662704097721574635603411617411534625953060157853507209881967776306539659971559936998760582643321803300367441789933293994855043450660128770460720011134987443118344593628465491246723329963081163218580207861222883161246312504593322899314794701162501299803604618100074159070814386407481864111379812871942953020214767985022147249316318890437807998800972441170712115951023816259005574507827973954122002467552735325809812468805473553492792276300777031380563735401879453869230607776818379958457559910214476189557436306058337614749200802072523830256692446758620526361984504271961085562387967728490602615787044849198205687342787740071201396277889621789507770371873056997889561418301646686368083504306509734665724252245335884472361090767072484358608405454739571397108457339912434409710562274903160757136031251439851324019596446645545572213970443378407157366776247077104096643419557172323524173019256882628043462655009585173916806231122183754829545180955195418204230507873443401407949361101129289615915031069093375703554236276769270374696270750732588487000430443072244462417392736349530772121948263936010871286086097934274319371114318876312452866690567376578318776654081231440928556233756722855063853824554835441857972463379737717663245978909610766308168295383797129044682210230280573223096725565643592914223750529772128833090187984163948636002718484201780924533734896505215185511191931631879057049149490406478177645530865928679968498589404030798924839891681631825890687275055734099092576977330782847082111824646812554421748781857828982316082907683363585287206822194719153671458740768739568260950514009781909500415845583339830011754402078013192686446487182318541025220431141698456634762825013366161981718114238855815100258770019554911682719658266005493248772904549553788607279483317206690334907103838396338828350124750382269259376959389529901626741741512416704790796937509782691617325556339775227335083343513844724319417789533869661230629067456090115852613403236062406774360743373085267673828472818510146148766079721455509531960604040940609796264355957063993827265144867913393786493477711674972631922109129064898843542747553862539687352226997919632456643002714156731005814838273520142795993239596158078279903795590987068204921703386155911253723334277459735253861463096477115838149145614607513969862400648086261086844357859919007806256195193755151047104196985331855130342532291772904167236856853158142098922708164716619036286757389420532455685674777950996896834443109332449722723052679745945867673332175862550182572990663263503701753226680821513648276931482949181763610347250220177505914289832394433680637609753254793835571411795566559884033639195041853186143716178104950399774548579530193307548325969150191165619181607146410071688855841256420925220267831403027069689178821570805845368087642956876713239699304988835559830761842132208502895945212776479143870063194620103301244364533776296302513832701979766738562907945908744887410710209102339585133962391135275547605357900832577311729749713512282252589762854318219192663279810444762824045689997811631035022708412887878634082340005371847128520831513695856827239301877191754756396955589286539292183041745386475318615341825949703748620959229261056092137247615787057786770998980273935285035348164757287910832418420575653365266187670203323610469420436100277618630050889589793400100295776051471224222421507331206859435072638077861756429916577031449178801905801098527533025221319756371454264346860737314751237109517296058394472083639730421983488571051220738399471661315194794518139787071148787962194167193593448111882139888626447563476050297656209634038918604614350004166534892355151099092373239528339573287208667534926007688116223637826645528513788905331725179173794054353023356509754249734566399981323537551139887541502172667929281966884328345373005635904356188179968844116597646637602508565043815188569924819668609155770520526349468937550392011120883118350551255928920447409519979441886638025146930783755271959522495002497728813719856150102773141449061427759929942976755064766397884848797931934439715964648849061369590790276804877377647278332594963606462686808023388728298267529649458080732578060000620835917857241291358649583132484822715327141080139792404558268572069146983075785043212327173620366619587798347647661460144492102306636430602556800316738760400500971982917558610238488172385258457140561394863532900000260537399514959221543576454217988504670802255672841921744892019848442240888401767587480321247045199800145061256104636956996069923778701449624668300439836742858289586115652647035431437852610977342026500832931005694662700540708226989431613525239908334218839330394122028983858312517732730905689379117499442160551754309523782966609212841071789492776726527175805829139493890337798517144941190383508094480492352035519031165496178527114098249099081099339790901148178923180327761888013182887115892212197038082880140805822812042053511725209611652393424898075973751566337168108101971654011164341537793352746598120812710320940896413810425379500190197616589823874239234354622961681347674053662391989206839749901102944868730531960951180793356636309089775725576663818439220132726214515194013968349054788643808869045812744149905747663666045118834454932346990175335287222329760176005235799492770031456959339572780630909282049806007645739519085979973795289618415423882131155405412721638819648597599832661881733654262226596237668863807710905352132708514635877397474082419139015000708903921163273605861881429620858642779250531997189643738757769942033751884366098972448358320224109613854549714469583490040360711626484187761943248730085024733509105954124929477003443582984717540621348679756094384969522590189344826878227799887778609687004894465740826285472393815356311622909482345812444911777050347883791407177269110342960626419562623120280815296600675250300351156591772651262381414139574399555610055229053630962331972322198641190881008688952021212274108105488885808362194624830086758456136731864654732294159164434222638335439659896234734389293676886652014040856352942993605973463731336996751290834194119953643864252253536037369077233153006595513440537506749483719843757580330084145723928815709548081732752662198923534392936637101350669156299317501109467991215615892506844215374622245595408335654520599341850851362112668684585626426795687116345974366408200943319725989442843117985077661278315285941578980881048877037766532832080805198332515240858878589375527282524493414491339739440499515469305018324277288182118078712482857261386260482968297776312617990354753075195544868355283179764896662136491178066550465384863506420568826146753214020451372625982579665533297029748186893434876116262897665420761551866249487985462216163610881187467707384982568162485883425357838905003304237287916306094861378131807427006218846253192422962206910294669016372809106119676499276778785357701475413674113751722308762979208654277111341264485360008656523738654772363044087666357050888985989278752896517083760200390191922711567470884877659848595139516845518164463066841825969663931350417186780685042409505720409126369121504427451735025038259399674488457867628478621834576985460535920332561067412410950964923669325332254916646206507541494247984377159413249063399547213666494933992635515664055830677084361656217759194585928224324973605806067713453475968891733484019072025339448771301980239086058265773445191799514393539205678295271757063382343007905661162534031864134715939022851234336486503713049335532714993469561083740387290430151432743812104630071823124793560532940991053062029005715023971939830541278657926596430438824806520470201232365036290752345377210743687888430468288871141370562017005874467252734323293569186051666231801380917243478645521500981850391486217701804388367058403575158571038166198975440734264658336767292599407817267983186653972697813455589577873892902765202374749845259386835014474518504674107175971941466880153212036556219080995185720782769504788321685636378378912889419508487564360724395196169112061343025244001784560323761154003732046520462844055729255642287571478533173596367116450732686321421239834352058827562179901825161333009116725399049237058514917915254960666801305942415047271170659165477872065847153612619296157169242986201989351522079542287760372023394957743848518399691339479894862770244395462141787482312623729908229469831842643614983927720350652539195896661529361862719792101228685830687329755026307471818445339876132132336934500141846317992678764395044969273114152219953318544799262954267206109912808942498470129351364942377286424530062003655572553803939118256260114202695622687768614670795737801816379043840591560438569492396784988378562972582036687375015914959231582772130104095755455267138037676379642254993424470901757587017523954123891156104428823696276098856023697297719355673821392371511946705017091427928394369426039370859894455918831015879934873997053518091931674078852716561128771171465834894087414326923287286116024198588488454333287043290517658401392645286863744296118010545624747925748380405106140958970860093931408315571582364733781095626713050417708263340755798874648421218746691392503945008704213230125907109616536155299343307326591068267241162305579626335489825518087615251703244703475085900735950663656222442226069631524701817191159680289656196838247750633050146275715393421287906529907334837929577863917947999896946944883835389473440782281602388492735508530746542343817955769628482959944695753622897329266418398097711184472799434426147547848154593314809214957531610621915257298152622325729735742795227710954631067731611977671212914632978558038988225003069985118865063563539125169549214642444422391521623335172686822868213921987204124863121915542849943127599175581933102161299979290944439100690954783505635088408579073571883449476373942720240287841280677252124403318668413300281747582628493553441360409433834457436290172615433125653990326126214108452777768192448067824140416967138002714285441000316327554529750295787192925073882700166820812408817534106710392898197015776926850367867998031227798592969010724598608338843611660855554057385943937850809530700795846228395779527369250808239245427548317219383478826800896188973727283186572279053010179684465700288760293917177323360080325599191035196906259646362299206493423161351361164328650108664121653056347503442337946509609516704500666735244564106297490236900108855444746995470305975657352311989075178301410682854179467215193303096058936580530343769760392108838491589037761312893343761967797828788394976492890356680880356524778756904381119415381157262572485691866086538913518278793359474036608210045146283103589970704179395986060436642117439397266377926214640992959910142623356794069062593013279283277136601688893628823733163613345292768792574273229865235978209989903159882142470119684625017231912228520191977455470076587922241063892247926095407419488318362917054423983454303368228937163387347967592608082797308528069675471699230577930177410559925809694779381113055687760874399018680091116098714802345129311420250805260440077601206216167493606985314679464602941155975030944926912463919217884968764660979624412005856343998172052335545746704151332404456117394604370600721128461262461998814832364803166398958240251247681318909731756328809988631663332693884458911552853485524617887136730012128327730412747796991500677370393444569218595163046979568159494021586801318664731143481126142999955784819022656236643820424086913599248022113391697456064373880963824036001809187286299532458803653276530406476328928119376205334735411461367376324342784280886410124299953024164184579568117315500208732382733535789383170083615562191069762455873384252882920952257723570982166084672171368912101951898048006679537774302026117828921662883476286753290593868162116118309422040927461730762543361686720342827886218091165355331889110811028829773418516857642206669458620768864640679231711088762308529183194900665781820621776196869103428496289777774730648843043182559297659426622199706271380863749064080882707200128190311609719744953572426282286724930524962915176355633627478246861367381000086732468556010902501482543829591812498913638919418571333694397016330284394358859003412710967205535814559493069324791356475908797505606419211269846857535357258534947179598631222126376753468906677118823608767567666373141511501093272124283251754070769424275005360008057820168504442992866375266325490828718056926154960712667863790738150072768043839445730727605215978256317561177512816140851715424497897612039633957468363103938206316044269201170039792509542995112286879268754597660765308373974409732147722477961860051903239599566465583029476833312864191756294806155239508597009381405275382893921826086325196620424206472083880231475959711737627041266877251774793923729414083775753145540970444731998264212925980353991135857930661897777100946609243196130752651276410101512211682752516096926569695126610221484360003830212018046184741308440183430881411775245396639560575070920353732605467345092230761188369837267434875891808938749472053918007393092999101113098782213831438746594530699873639112714146504747473977539154830359616156888698050806308149090754013687661108719828175516380752202536479999452766771852733738594109644208890315198256897140611029558022776947763045328737070258016724086183112641296127530661432341899245071250223823192299129552924227421699578251707920502656198286448576870909987920598575268475956694816178218982640335363527817091590666620077804077684693775480666771262387723296064846084405722559311926059840242781951779373980311044764552166295091473596271727347109673541479607838251386109159393744875728688720725383148002969083588975869799490988862790068618027432437279418977821050215986299716002648760033362447037009802713972330144247487180250799699400843222646586573242115218519440194453848928887562684725345932942537052820691782941241361284088662366056294065812113710877293734573736935029440643681549774992336681834563629888575768469625738640102700281805376044566593730519008269628016718439871063563131769120790205796622301791371714010940524366297880141123859543412348101554996122699735136615693660159697994444932970975146412234571117435275632981878098196862141701623540328915730829979179822008973921786023850036998094270828638807965743187080280299015594763784007609275703967349823180351870123853621753905309884945624668411065364078253881772543833130147661839666059041006019211412329065594011857218710839914519126430857435218123391108697440640930549144744086479705709866201569792951861656667640547867894108391996610462223412328408790160080441894278055407219454050491789669893201709154169761196136088020394503349618521995157880261732842469813453213877076575694889969257203886703503036403904266387870954342776538786987727749518062115036181262312297906723795182147629657120897890689548224154459895704442387933126857308990699876623078100568024424974968105378344761806493899238770722224552695610037843465871470939753029339332151217203044304975917818590239121510857223416223313648423518024855276443338353503971285240134236558141918011590361695792384366093206157716274383167211012441388727348174027457978412474164832936710375053450517106123092616281893241988508257907523169890798398757823820008859265230034594653336970881125877556954625783973138835824140050273529656246456356176548514301099835452637000707714360991575805218718603518510582708557790164510174809238323034340557238880505509944719384985856956758599857783066441603664407956695496025618334148037525520025773330008408558291576635794460490015363967246025029732127118445495769608784221704929515170760735505821893327611795516681707899666859624160153178673158923132302111758295330299851966269027399887490580814050893310611481362728493162289085762896202353199740143761349252971329715579241260743257300609176962353026286697474137455233626453918060045711465873584952032512308195748673530213095731293493536511560569609941106141497874271467685067212155023850834583961418805092480307344266836309089679639035002786154162961095300666108006826500371359422193608898830534621316366614067503140603437631232769474226357335283506182190416521660662715662419418528638556397078415150380822603481077004572593392134376162036071054401733764095334584545544398229922770058384409244018898534941228422849161067760188904440683294949739517629623558049283273188717567975138711701754024095132673645882654001171267713787947321690583743022627175791547811064634219440748685665906273904427039450040080516019690273448378740637260755044986527797136466123681285325791254687584448888060539293208032849944207909731934044641853617303668003653353667106592890544219109720762826800423685734477374706409944278396318176183643983895260745635912719073414740691232543048313657794626960101794950126847294711021599878398745306176354102572922595110653131232486038991752631280903976623497718078699431587554266410101124412207284776730734886506672571768778205647397432711048776125213655409344750307044077389856906607860773717344676176500063191418278187927684679957686793637838567409811282342419612867255711093746356707411491764369920068957146416322662316696413952400286704961965663449109667642354196689530769443041523250695913017236872531174524228494614461431556155722895441885047463448279118661254816157945109788318067073820786297403754276476051591094232534276657660618387769423240945526753764624888272349024013388082701249430493805802112616299852455677516920127588095730781556950153544985086251158087840204992490037231528161721341344942916590574127678668467291509329964626478243895126288605831530340408935786282067264742163417549136676076943939414624211196621887379104369759180738916045949457411221705149737227591336396918369001315644423607574709141202734708371805435430347990157502727185264557831667881718664331100058111439791779652265578934555043867617952402247538477708969259091840336129560212393941620287569772277895098044500901487782648344598110002361523411166138196968651240074823365312229071720461312032021604867452134954527349961724114407356616918404817347668546040812412215545815626638152514061982035314583479846502629252756292606481141250732853874042968153148559487981265316117545838608235013196390416075829693378132085657325664750357659026586842165810639544356417546323684355878504755349334752971106052593299287790416223956464793222258270282085533175004216923128934591712639486176164624719127080044343619110474073414600685478151903928411968857695925050898324060359583570584465769295120902200861276483846433761342759395883920351493317361021490841097367626609476995802356442699550173894866628427138692691277725261192178520729602602874219200124217166618746534641913928092186416244596288468727073436267161503954377708647818604621600772105951502249559736834994083013538183616644622489281664951565711959690636119312303747625217806203960456878577629262293201712063709056359896140587463071690015069868068824080427164398957473773097627970129736625830186117581752523188447580206288553353973077973463909698781603624868847222620357652009786787420973554750708797919103484019204812053395676565944986207244192124657209790163942774216983245764625459308645096064672203769092421167218479969218861223228684567497984904191277589297938439962121697468233820714666058272009681448606593720062003527168158749739305902773813058173360960370780928958446321876588571926480974298550322839014734261415422396556497473375226187002780247955245393986194231583673715312318579524965570730530025643736765774184982415772321118413213308774473849023372083714559587252420841459832117468570311082667357458902568538787330767448103049766252019600992738116386391765178922614404058885014607078153681677397393048579659891991898924942474174820340800643570785666450718519986094330791360676841439411430509097896922642839279728836895373231054403612404794969044700107458653936899648861292562241039440837069282593605606042036174125313045471917173141049776674753798726239700897540364311762226764256363348093052908820222111753517918064237537511039788261319549855291097329253032704469732677649987919689523247804286123628725246878613076301890216072377960072220889606396320991606844285921512853946669347043827234498239687898684240826604965306354016977890249008363721107656612312474865171291308838075693961317150959848523393353828410496351926287785248990100328120978248421517411789921469656830129836169263599650175663464902821080935256699120061606830962930473083312768744890477849468174326576068798327370288060554219297838572424907429988194640013703914631332405280643949830278872434530071601359771427812936483796699926154815664658840040122124192918537467506515934441977830456556551421071514984840932240887619571912112509331744683804745788654750638284678868523513920250465942506099210277728717086817034011423954881937087644912827416165006400880561143390156788464591291853334321856288409520654809810723147323099753973548354713719276012335613685083332792169995148958489204058338688993905531688771791802030605807172551783034327070159030708750315218708281159467360201866022292536729806842428859831489145466578445738744032965750074349353998543948010324471400530681318280978098934169121442021411542417819758643104969636922821098252328810848029690030994105177377761956914017267918571210024001759037447339278961734522318557520744184282024035351379076015691234025261197109798160345097202233556995003940982428332407844729972828802382984658068673904146255249344198671979032751600730993127124414097319181113999963433475943530248089666738235464996107343110856091224642399445682733729948983190976487534956394937423408612605865143915738810091497925837178815479600899383084314973041663429102454517434875335245142904389568478258504990530722067468517695748544360224796155751183071728012023388850386236272422178896759018381719517685458116594804744957316460689296040467432766050303090299816760673053841561266508565874931215050028763975494734832879944476101810773486585015960158021316707842760977005092637194364071920406548631364467218655561476375878437489371345586340619942196543444216058496696983144083781883926938393250735035890533886234343502139953294244786407885371767546220235708715500402504508126140024519387769049225470950095079676532064510013613192670721098013593520637550243333355811452317473375516762426112737203446976978317799924927732284046450298420642826685496891866859089021935261397807229080778609817638472160589779379916894205915937144071085753929789041218407739172801895294837943037235667133591911893087184285295077280900710197604002989938830565516461016220494633208032631179252160643011989323094961898594520665322653757958020350189550349758278839081792574728749654313473162064176412438509215553991687222393208141455581147774294067299167079298400276812783129185234722945351584398639609387620924639188340466373234469679238512381168682239308424456829650238108073725232839833735546241491514500805152052316835935196963940321317890706582337382218118544451900142725793767206135907176066416036931220542576827984268602434223670091245530681882967857871089825130540553588100883009655424661692430791150203825208681936135600045286437003191889806274350851670111546606036476773266398852612931434181640455937260569834304436463106827193167516406460726234343229155814459681069239827497747839744948954336272427296268085777423083176508047857817917254059221447332891959400789683936273247830555087163719273786567900082336292407194606319339635396336071157993967155167343757881298904436694431167277936391201315086750464681879178062320128727651920865373690181000935519012575517419289843607304747143274158697481056750289583158724580183666355436746703576982440606999616460929751913546740205551923414112205120883406256770940850831849440755782780545326161001953439353560256115183163185989661673593317948466981874065595520950426012171305277249907857320924425310855738524530139815409330828381492397338347843994849873655263280537808360871784519608232472124867754218793048997033199967385967007493750080461188451627699932068486523444957551255601150422537188991434164836016166022454938073145204445198028938442022727561301017263892838188248417580842713360837533316986670101848463397252014953052401944108309608974423921915447906348820218930989170331893759557428069039840980623323948714540046709155710715191377207488025811123484686567246158694309417064301017361757118454774913815640107577931461033787850084843511891409419543648352642623693066965131373980810189348812179016025377299358231530725285952402396349855092529102792254299576852506823275254151170138953200244311159571613440467933767844565010860054916382527359270892718602591591118627756711509442900426102121892796606940349509659261113313878047440549679011438466594510176726937986234470475316892455806598534285661315259325498377181806363724598204620345841538219273883553589598021973404148040264125768498878451752462801533713657048987435876142473967303340412121358930003589542041640664548992493614605477944150550987372054446063754662417497942434173537148640411517416831201882490517089595060205589722836188483668861294548770079222193541493354005981462972308746760867047590916691406802957350936759494511184550934975264766160803691357973283279381090728385673402178887023154631852620535457278183221240281148060079941806548126043511601736786437305964191765559864748177245255238182027709839760058634623087260860303057529874526771115441827642801806523971302204844104588511091923548566785175890771904217206989733390439417958744825700270190997160525952478935594983187027985674132506238649328669517799813729472685414435329555438821192391322573805453669299101326684255539416349256705182658685695172798541216188688499482681466771999306923169791247968948446619867877094704134302637672174799901420349480160992579959572916072192035837433371534358874173241863742556354063259157444895327728341701978921659123656548973968656540484533668109333072327162966524238571700549210019857113731968520719471912127870010236316791453767674414765796402279720977232101598676201641904751309945366893988980500877385302965208469651411349373659411853463960918770547742872816652213604283947220815133446794428087271778126863662864816679232554803642927830273734835150373543179926919994974499010722124222153948559604293523460685161410552347735913531816914202836396327815633418093342790860345574012084199580226141820766364270529497934411086238803526172706160841853891000922839828604511279375719647989868951616693922820168579646996835442599658132882600916354408663770731475054978259715794336159752666003804148481685323099991662734373096839780641312274930675120275956951648838161697352750500090958634143068250245135451626644810847263869525702096079051281708895253939188487084983210725996346492748301390434990090615522377673075583068606981528069261051840793065691750219112156731676451549905950851023651490089963841752375923629658764077202772621425721623689908106663706288708358485486485304860871346289749287834095746527184683899292546267514421844295756390913763184232941905249888700751038546906584646142694747055045960846895183314221507963598610443927209843513836213866649037485487387249190265384996197804003768685993751802036824377996713451016683126104271280136113116350273603346606433733313377662800769390248009461922703543673189953522885078418706862892402569261617399548197268632826457244315798109540277748057138907002656610842387918433625804301795341959010627924309854134373218095968217852132571096131855818909250160756660081517266894957489625525900770815396022418676566719437622902573164748773194947678989959070138249446017587961254205164564091450935038057333173887038938229780665076025267174345886670455522831383046586175320777804224106174046882458862229652988132656490808086900703152760298631654008879419380917744812334397134468355889500786187448267250204529552567111592281829852412790923166501061555894662448895356525885649140421788819288809761305009582958260148974185042534514963369111489498108959482354960056574176211362224958751621392886819769231351284850823621596610341430277533741336455927062901311779998151946823745945815341714935413819770193969858516253659971460291015483741330654782906403459204303567147765892657868214740964280477262266973110273678432966489036064109976973513635645117018283989683551491901866925010196288919172536790017647023553676947529062830275624227322379634863982975280934791261869353330301921709294411661707216038120294494161292913218703214530131394732210580611170462087272330359437997875163825046175195556114190907651942015352099428351577009850159042470141762804246997709596551204877904300394150409474275432757846373228367966421755319826650172996064411666437864519733633344350578885204372286589980547067901486629175542922258148866024932764590735049049014581633627696421239408713577659799548118473162930263005037435682747619959474141504904266629430709348589544482577894591492561261583056145307668954558188194606207382098810447773977469485385645855971081997885013137305645550761944136077076329488615439872610264157726877383944044747669191859448808055846345933871199594688293941297493530132037537673251964465402047523295786145204555239421150743044837739825790169847654107546283942862569328526211623528917113761459217469358578423809981099048846607897011347242544184563850879709977483775224197509251126311396243867708012502395470835535910674763407623199020543172358833015232225485623318253312659308649583353549199109450401130882569032146848021130206278125683220810020470540781246639343758409974564556681153437903765705756454316920851593009062292838300347737087318021273558574976604079174800293455355357043330128532566333043011304022006701985177945676679255618781393736845625844676221129000102511959273637442175105371964754062247570536348134095332215731816771996702499686289159650878209059681572834601730777747984352317720322644135027926428087348840402496112782987997209363293062125469193104888518616835151460828380426022344353037230674209040433420700928708594514159108163385936754954897673653677728004476092514777372886651711377794446293247454671415743640787360252956769815597681964928542262145959029520958577628402717784824987506932922201332814133051796564337076274938527156125331068450507064541628364448227174854844698237870782034735461667794431389808363494239776952680875259484008663602331147332590536561642853403830279333284514731428347689222331528333153182734186231328365321465459441771378660352245772110340854557274183617919837031532491170983440784770959833521700825219886969710629747349331847060320555870766104150077867196207740791858050738501011429817267059336932594371965618679688098738107726332811538521160736277763215582215333615714717113604881531889033276860294565745944808930881293718444166238125218039216165551874595497368680257013974616473473792161068558922382186238495450497727468745543657534306292408198487050729980191444087386383354314512351154330861342031930169317960176492022235775141489818484524378252047074490013161095642767078752635432572930352709660283397583346953410792446938650180689730278567594398263731515703379782129487030574817941526738491149188165477534159759252371564211183745391393035943948690768988330419762973071823626436521041841316184621778779013984568495118477238782143553348884624500890509502602073409402892063291144832473887087664075730301159732656161905068732790274538754938995271330753825628187441767002773298069611778868098995214672113041710554265686489071637728268794051259422777265929547480274596865378759285918004449175054535887050902473318803682060858605200733312419832935936633568212858506510562909181081220968152986707044240033369187850826360057643582601496507738229702400518781063477239985463386961516751788729531947219578824679810697400080432194372686722548571039712405353741701488506034662582388888425754317727425136453287839114936992686267477767089367868297432710004919931794299781381879165722085159052664216103251407819320478603510835874246731600588016430142931192112799513724595863632890070562871589290847443127329061987840737104575561523030464962490776220901820536782028682985534340594092936749574722872225118150551245798014208619027232297874542084555959726084583486170667856738054395263478339414351922880556561229888393652654987663818449446041322821488389849819473601199169255344138958240541051658467315445014930267818374646079275296867880399256334064146501439369815958198781282360462175981975649327716943524959766542681319980694084181816075962616563150908459886661858162102475836141460741085016375734624083704611127767052137228859873935435552272441605233109899404566635571720304164772611165293602863939252924019565759098248659695389387852224269679217252423369724986311784893954301038257845868821691065140035500629783357989438216941766441055589709815424668644622778174349918120442172140227892552630411581109047844684917421847939200144755774983955898314678218474142647142894214988311525083651246218763219469405847500825244950085672102960422176196881019703424507583483508323062032033358987737127381923761392818898097228503307363080735814384942929886873063353775657987055824922264673259607390683160907589242553291852452970170976759376514753264078083184455714351453172401867706461499206887483854586973675345812662091476575817195433517547672333311560387749902486998415927023603520684518131844423177751394945181733819171065041912972474414457119835317309926224821912652545668258539634530940237391076591530673092088175356722111683244287545229126303037560209518674984859016602883644169727369574457693349587992190634177299969084634469077955801335280693460834417846018178835706097392885748499347646139060488492566237887337582234064333357176254625916664408250735038907714784416750172745897255490030751333140686649617461066669611739895091907227835124026998525590762991538418642017838698623020929355176064386833640119276278281798140385758961731186746933207116180118236576389049056847352305990626431684792088860684921984611762365258746830164471984804991418206960106981852538868824521070318203094522871751115611306893490295379290494270354433076267299061090654690870605572116324036026460595804117144387509238268366666923144520203502843891591633111125539977344387905643817438896065642364550393590505693263327370361689398558963484038838372546558555713345630391837757030416665726021313188134360543791545346707541401705868114303892815708818428570905504574279642456647307928875630829062147301263816121589429130703507003543577890936595685122470017574598472446815031588504200772788281017287917136270769269657682523512531854330380349926439863642996611212416214848582235651766858390097425847615362268048188330530082722246732510371566032512015664570127062206428725718380617766631889500594075634354069228151955022472244885663353894235721110112294087747250326333619839529702947798705320006131014578100968135205401733148972255809701576028712445686711735238647840600536716581868082327489075767434311746504918654225878660628182122184919020436135197223367298299441624561152358841720811998058732791128877501458198817831325988027327581588789169394701141066116222258709392932658012695917503792883012163856740064786376327120271973667400997578157961273598793615850203008909987416193474536417413998323028398791149487913101543871461816386215079436279431639366371704011642592823305546961718356804441296664738231219035834655068991134124102602908845936449967892949983959689427937537144069928102079302742501155071354254476712914356108606739960690145782624352526524975392666194881095589464327092497736476738742506841327212363682101228246040254218370553930639638791993460600164855383411353824605872330577604853469321020298879980365090828411913954155157103494641719863779297732466490409838980463294786776947986944232316341143138646138832272925263637625958931144499737349694970468143666119290868938470053769515910524341475114537269798455899944903183140345225039930432241196585564290990455807725268238868590797771202805099205000839539674950761234612422336983647433433246980264995284943136373270401269520273251276686113148224831950128780151705348974951686029194893233172069324379810215429955818229448557490696853744479009755997531287858762171402896365669432128989262797981527657937379266659265029264654289174275557027879942545768681738347638928659940743877629661400620687239939979449506020452687449041767690609230039255229592717966493370625712858787651643211219902887316995896218189197694608896304639891972752893645257583879530346730155472545402444113661935440605035858570115111156402421227906876590115432870014685157622305197264185095261102149562598435318036175752379709548585228896556813269103333553351611021072218205750810657315786553375467438662053424127497081303661307524384878114217299761708554457040015270414235806102464841945351966625644509845664819409616429964648815424629376912705642448453109149493166527073786254414748169676202164223061490878239458534889460446510954005328847973953979366265872375816577456943893764750524421094090540158705526083272896148151143894589401874168750133717711495922707642461642744386497201956534056674820247350230395996591125571083265394009895315051231032742806235534375006096472842335532062000389149929428116436306989375166473464187071858943656996915279030064990448026300771643037231210379043686087043335376773255709730645916970890276170379394427004124741605120698307336920849874213365036309439663140563687515623658534997702653688291931681945854474843706721890270561272099063416997242907707330990645602571941467250122064755577888500257968340444198929089327560922279357443489891606749759128055280494241482807137266852400049183595383899799025922588235026477352401757295062820414230367379152741910313662833350143390262784598349857532293789153152799049290725977042072294352169394293286934045740596728001731602080749645620089185524357079092804907368450777007386916510047395781264339700833489489666221800657756794282230588940878246060929065247163886516289964391252193426865785255687118291148509216667338234762660276058636916288340115053599510556227581313417752582074846664047119443222570149192847456035036784951476669337897493125020143211934804478445410363126652995901932133528642772859995775195618795386279253551358318624329423918284118432768991874086410684784139042572744369971964312826260677926091616003029749693101324782460120340800199505960906860802900040103869679577126075529232113272016875783799696987422913802231566655110973522095935564511103047757433344323453445490605795554074689144229431534484478482495044481304783562916937678720321267888331769697965860967768267831181615263473949966634097683205886692932552307641828720973973478575432688248888311277354794262414734138504184610242609331106040045588635658262036109687683426190621699288325034331367156461425312638283323890456105870389346184377091306750635152752432551943803904399475187445919637871459100411150113391677648803468203840128489844430153459957710831326305529219267144017120180062708255278844622301130257856344780948664797075315938497276175794716720513188985221138528490180100778467100638817726710570443927529320171039729746880817162824409721937145515921661159499072106343075571599323879489988427379125139512466221547613060157948398170823794507064759624580841332611440951982324391920406216247716199097657019766303723687850679992626710492062974434858149006530288789121337508507655137355399277977320296955598099547997288094819191961814923861417348556535472861308170836962521400640274975671483231488288380634013388944727575485905693697485891843088656267243481542243209794176790453158587509154396596788853050330086931934714892119944522780412848986530034388025142616676095772734945694114073558788311053220200561401066158293287083827177145520070300746275853168061786395666411773052288729168075777781515454863947903900986608006668995241355426333453371650647958338343526543738836332530643556127811204840144562953060077517399489896322175863909913084347957584305313014870126755294130473558648547984179553294950582367260709986515759387237711032102069040714347465672088078666129411639848023569012431009456130356637447645083493733997357071582096870756680325480966794478683973290050985897304003035022936192925633755946492656516624555455294068230069560088527695235481423487185743249801981746634216124208276718942793173388925832755176364375168879316615191144410950655008792579999514635544272115993238591929977369419124747592646114532506477919610384355305784164264371999177346522441139717538179703025007057515840841733226770103721412188327192038986406917686647927140503623440947429904758480902761632435694027274943805354864784731717022450898489750070357368063101639437930690878023917363787722877076258808211657117947824486693168529543441978833183955524832311261480992000782876063218117289502777149391760356663604109465337529979480772773565196676551383505955788451012904714946680414328061997789256675941156485433051464151304496671763079605003010561657749921095194212406390042809993542800325188612110586426416336075947640099354195197440838043313150444828897131069075250955431455039968350497899769426409641169894099171139876548221861928788399447258935618236046746129955667364426828044095407520707170658613730552017341489162370688224857516074042961257393352681764662308535284523000171527511888549877654080778368971582136269035875389807968317257208583518780517251125236843292170443121684303898486908165405097462705035455716198439250334685902490339570708135601053412260141963015067446961114893319301267175502867038787879286735749552900816056317155643174454519916495245104844638223375435146328461173689282622613468536782817711262622548972818166014785314111219551195297379938968931896497796838246375368693207473468024264368558908508770103834458701015415416155447120667009766734036127641463491597666048333942170400488335304869914150400053822651075699400737633793233090068527553025739154268141582229368786450579161576235393686620368370980551171032722684749496486236549745043227426008281214436806543632891212695484662950693519780534614640732176093919163771286567172232330290047806588742325079618415987028192038157027188642550645751536102921250394476121211893889137556085890072198030410469375022819314539035674052965276345629132272832349579728974707014112563934082947390149191645379233184753233489261765555246966155355885691797696477653435747132896830760539077002705677421626425177850235594153211329252267828201300179192130563520826017929769833064323715327935018846006559774254518586704397870967216088455955632095524965217488864601989734046734462654197390196387943180305568285606280935954055063135391888919783328334290140185716738007875859429010438343337926993440920995635823444441861699679501259047460001785485332288669069643562450588226377227122939130432446269179646083379177837016648311968378397171178528709366989533357970046393006926556928638493052165198166563757139672088356655349383989755285060818757384912360939770330749662846008336518939717173104343160782211070107034156302643673040129624766875141321803471071498401794960483967678565248938488998734876169785977888652415438713604054365843911788879532005685840120487969353453784903296473266290716356499382003386197008125505194355641631473457992209817926516006916292969756918264718445475115821339956047858003406552768495376847307789147094170566759776704856991578659031385540657511105108750826161238493051243550348749671031000253156194850579101075431141928292078489012856464443350158845596585402060062040299798418617723309225642502051236355877301515961783334545718130753604384030033046476520932848690982104587593420616218695616606531131954643308965577006559840536942268399188134701832603821592859797595973057913290629950206530439625684773541738687455961220288665638453282320480512692469370681981964607826753395391482435679036502387896370173044891092705882322543288073912222925820216570774364783609261045110932717386108252591077028491966274261790441880467073583967624732570684914569326017973718394000063958465821178606788250898136801515308213001105868819212878780909307461994783272417570899936220958222439617476642579102682473937346972204654490791965218977552508666416074655531280995783879379416738139342961656307300698171090107197838377073283274479894707126334762028247036721795305531236032046546642922489950290540051147739737690491201966677625249606515487663730461896825492538516736263224676933553457418864346773607378986733589112654376623845010743324187862831733108615010093668932239784248668825018154437775282874926097339101070617412321478349933830138373705031360567430071116362861279485930882184622762395835256933873005934162566430339325157167678432631224197905182238860821203965667782155021276655355432077002015776424842486986183409708249100125651751966431952277717836122118805714857167451351080636987885480930004516331680468893518455234672112320711941394916360064699257258497999876378182348530318625952511801503458662770039794526412926077177678238851617241952833416622376663216885079854000598674263471717378255115207373524296722510383964568661165404104801646193983344720920043183318548277796053650954779244068574113190341773050726377562295745428491058125692875253717855840419918929512229664925182081101988705136479342516825005122912506980974230564596133739481569956948325656372518971077398955715134085458093920495081589771614789416929498755643759554332549052593264724708980525450147981049460992435046833036714375472331562384920229209424962048912671760514343364091057862977122775737826638247230859913105389112077521439692600079748376966738865201225302987173227922708958014886494020671327128047667069986352491798906634005345645552293940230070419325617248862711083412431948050420374254147725491960258570205422284791034843965304340887422092530101652632348190824592138176141486781827369198707101402276250260717448185094052941368958944088407139871138293339978642644509951622784863192802255943804278476969021152087804053298946255209439691267408629118873159320970288451149628670239734952495807887057398567448735504883457625603324677893324314585573016244186051266465364679900434391759985149183535389600167985343371426941923297207009833342865681123140196536973674016005771826787565216572093180484144091285918978372957856961571530490142675600296589305278856496918875067358427036693130518398295261926875626254032701617160232589684225244494098021860138326095110237618322760788931042081947764886687621777475255538243920484090792690469931033286016542356059474174044892590144503858649332598671002075622406407644291522206341384044915950452259808696057787209508806555395641729392389948645082822137484037612808697985093763742405918635551358553326247746575035348749736655542167109125610957930970320489581136634142867914989467186396879422912923787149111430892196676909275115619662533515748738574790961406032162380858503419473890290298996467103330228003360664275201156157387655755334316235686275667549769419527679305027068092629425960248992949019368917372969040698550678566169744739597850734789535288716093938105784585645955448580259456552082502059768089198796989281041209587364544279306811731148216131297164139926359487055476021931722995043829219704448774536020939359732077458656269352758680120661747012193573070786204510006438790595053472533448858924770518901840709861398274914982927107172765870513886576774435943434214329771966668704809093284804735707992228202729520006400750777749807802927114310969181637152338249090600153471617896278571215015817685959651691500164193967900107325017892616133794094085010449578533636043235648611018437206750513508148018447148915516738470022180279721192024332743748454244474617306152115442312930783844560521828363730542708096960662258285286264091174336081773938081288156581558090153547126635635263452658271383575902134300867737135407543282460952653740455446880777748558839835011974430726970087684695915533971050506189981011562939730156543050477862756102194624370884656960874542000002664995789870696975732875727978713724054637745466852575613014098969509314326914362656275542300412858824528244800631969564226087684983597318248047993900832338596784326255610997097631632469232409351020882958723157950630014942804202464600958138836441632376857717828521669284522595057819576293431452807094545499775364788358368190366040007670195980204117359752274208321190456799537375502721721822706312515870112360274964005419911211661186793255211363900800613397764697443688652416072699666400194869283453630611121766492588436132913699548834468652075292377210265651743070530669220406799080334984370051361536244185557412667669132395404777219254067433365596145547959677494303965447538059003671073286345162155815705442270439411116126278324260618796518470969961005627817822275019538219472646759668704290331500181912183192993745607165252494104349409162913160553607562708895466217211960591027333155732173983284794721520690789023534567254318100408252798753856858637358572554660942394315918208413027315755008722892604185544990074697895712666768971296710427851912392044472613442117469388895203293996993732571371981829835948752694085082083618201337478466053250143425684606643232248934007588994951851817592745521060713721163318195819870575173338264373908645229501414257810769451479588294366359477357794220589613885128294709808764719717928121567089412751718914806411276136205033519923334018791798834240812928130808515497617068168416223529919626379475637664803074348669574873299010275396379465638783693646161521205372992271390519809553337572802140589131897622829669796305376991557869544196428411988303300271128776866215715515887849291737513142960569767871959765822893844957737340647792117965857574509324128783059613192474310206265628806364685721615063772249436855316829510605468124773156261572749264914562143315817745065568877462915941219396048761393521253938512025989885096430924478696109814048918774489320876065906675689497849304047754261711798240271089826460389417367083369214374314524487048248032802431022653342178584244974323891250893005714002662861419915179275319796204239977260719297134739684832321401085828903371995572532089213296593780451564387582363493259668463992954720797805677521793483312566406249040195860196998199754210033337510186432827360944949829394051797171518872123730538063768077596830592310697957931556999645769419455740168567059868308559152821364803176439943126169839328287905702078202509241840176684206172269778510561163598147111570847225591379773300025398014695809941361594769884161566335125632291213947301660668978945221136342671791568537569399747699018796315081465114681846871727730324642652359838819615926347601125629784598196947591400448339009485772669561782299026646542566855065950908906990597277903548241114690300297888876897245782847752994753450766970937290581697116141074146586624617468230958183513745466408457417128865801865613701363806582276345446783449453412108403073173144114555942625206239167783349385648774167834424342724498940931537705498555704883021437973630965864536437157792133240185665013288999534312736585009258705338118334053338176788563100122054807247311597031566999958005158618765796517956086792297817017203599544296947299961401847816750180571894845262140987267681190502164162000410505234445899850974050896359136944465685747707736564640323284428455084583404072475944870854718314464815003441769943415665621819639626652601023474610462156830991754034501761948684394381104795310651038025944293674540182993253028500494614329699727003042599435850179539892450553150704130759710020834483670369281395666263046766708706762722791020019472177790417026491514345628439410622451372842867999966971142996915969962447817058655331973171171546538999067029638771705044330049336633879294284469728079034024638859467403559138251386873052239361390110303414428742059279238678148867634694909946827031070734323901614523503394828923724732226525112600565835261620730007169473156169513039861221885149715507591398369983160176574267384063411624819827348344741080638480979309292773662709248958183304388906576495822849250380218966984974260439062915471207803383002573869304125489767252568032505192055350717024659226231190026663410814985219490741691331046638795643075841970867438646976327965250592995151484643388186159549243487510250105180393805255031672888301984312432172747009813373793050822290171155161969539756889089175194865779748978679784570188230498964196896622495358029817816120753447292030010853180410230021713796451893915690717347733298705315142531122242561073438426406211677280902258206718165548552885107638393829989943058278488111188174493072829522876251384950179467342367440034621301299221514020448519205246200809294944600498517915824820414198353196251056572020869580606550504737464399315566799086137652738796193049407098137111324803453898277072575535593495682092212959271874088335637753150331359594639801312271528699561464340127955665117115998977656543893769202029382496644847298746603932132043408654373820490312755906675938363766937495471903500281593041217859672080845690664803048744688454034412169721476585201843783274554319205133697402449934195091367574363324517441224360082345066267077590324176645437507060615585543592119362235103134853131604443777198197831713797291714869441140260372570556034628264086419388451948740588786548749523683323112915716159006864785744613686673561066820544954040278869624209536815115172804793744992273302739234620435173652264539587073171278827906240285097506600548019535475092208494614499234736788946214331721931443248007607656686537513801904162404242177707166873231755179644768932452467043266728942149563065079964035075325275370003254541326964000289298632863026097217972380503730760025091970981460779317675179799263489633944373305534619012814029303033785402441708081479902992138514483907404569896553607696109933895300011083939836895575701288807513198575599202027923700617802653917964654462024651061893051672712693357318572669092720390355961792213497606595743625331006327971941274203372376288382933822060540701169395512961320036578532668988273141399209056720109547513286265200142920968277661040245573206809550672297057366467019555315613143158974307055744246349964544262003711772021459804188252949329637026253282983546393032338910003787042324814194985894018170538052263359808918520373114754740177656915812874131544689699515602106654212464104804813633173771259904597219866071846529563416183984029883163725951679087894460868818914760303757099495921696365555954404689719846167955911418008240344242679445379610677817735610795775325777970493547308370145853874767537211387736569157683398310622199010482782835844425257567411691657914779016102723044587917610614664624971821954109294506429839394846987293565816615893341551670733908649696479501477787348121597351416893131974899232102497277034015990438280561040925440112885406712416028529549821533550858936771049179731713906964988025730106437424594810724367404902313368158915746438907293574804930448684212722137471210834604705332372162823271464326689258362329387550512866095237417381493695978291290193767548608119370162920808071125106841254652211656875196732794031213174979003200386654134240648219700442131829292690176426097490441454625606513134446956684922743262155861467206251155624459880926564285639062355985611670302140583087602976322448492581802956079647444159887766844759462902246048910604807062372264519695931918425038112964111181790066959229149366141184875280992097672079955696241879224563825177523481251621713747499222734827201148512500237361600508219506075577633611236579362265281820400045764310936284749802110508710682829864623912236358097975417638939224759977825807411572844488557019951426834150426275449734520017432597409059289239384291869081416167540095308130739368366531231110028552581946247284290179162196136249793458688670346050614985335487320825732818043454816163491407623466695085248569850540171704329205801066645611319216677984442044102291715353447832425879450462798167507340401368721391067255338805375546205175145388738268169228331150945977652357099293957617196686739976157985972576043623514960949741169726426151722165177125653138615359566071964028720500053418351655903976227802567215076654793975029763635947576398039614704854914609162663724923740402477824845777580298687802142338489397099599689390138196501207402856289133685775083709758242902182913603055160856102988027878706621549892293901803921325609532213020637905379734528648011390859233593938578446204249858353003895747408609654793272878351513991757888559573734537110005310340891369308155729676522880438914644872446783127584371989356203319585843676574946056392792150481130448892946400418696502700348014587099748443868931364918387513917822312201011282004926442509167810431398537482897761102543722928958134018670256439497209613245704063714212478004263841448501344223208229462727798604269708489261807930876399827687052465219391594610977457011481967875245731086033709516120199141281627227239122893148008908792480963467645619988933325648339504897075562635283189332826967623750872360475385403468346285905012061136537907204012890716778508313825967074641882413895326532230776400955045181149956240998161280879737284832091254697939324801083343336484961146585974634283880507691288236782439672650322371990096559517168279826638467402060191995351649811745130884165542802422125201002891814669892963358833391046222592621824585526644242001669206546496824814326806363630138779371450577665895640078188188403495255400862819247048753207091718119050620627387803911604524228412668292735700409584728867524790205936166428215934533202085268060321533795252626376246608096333498528751268918022593194766805921330264480157700112951464796022393546016043812069909135892167901368754844513345567869997950346135963962919559462380112372181966193644627922295735938464415580030873039032338006954128585172987534336056804409548683865126112696918879890616021577751464529149143565526314394180451579305151214867904592020725777942314208345660641559693839290693858774410293330247996420668742665248525900462163922454511252259916882604573737673847877295824751491716577065649701139493893279248683002609580254369362359852818482952746726761154027090030711684684965327258022936360400215960206800432480696093607775690259029280498268120120297825951750655562173850914052954517432437742058132682279362179706867572398429922401670009546246163812280134313675025179920879810295350386182298207562653408238535759159490607348116906667452309893368619298431838594903469600218009706886868993520958676838726476745956521861028361786270208294960696275457587104625341281559847040867272263971019817592371444232127728002416630108690171111009556518235916397201247134422443551681412248532243908947546473762244065427095847611711741146186116030583001988381851904081847882221671067613615152846193085522825037622267331828917260692673232881352141732709416665850856251250793897078753999717989636664344643763396465078406452107945680862923277537481588277875361738293450535753872535198689058820459944169899376586701097692004530665563570146826619280579059499740902186088103351516720471749342229118062967691560829812589796115834279599179485790967897203566420642557310808837575557968918294168420596884964158913267154731784543191250072684241857416287134586310232871835036079781690402797931802494539312113410587209733022956348061166973864249506485303150184674874018472078908710153684169650322897184142289457203176919170794861707956146372488817916627185475993709735706973122846434048365722453429712877825283486893972694248276365257160879961007035465253572359963996490215326659591830320796049888865942544030238507450695250360475913015369552781473438832926875638436397226876852809558698941136636868915125235128177778766233869945947819542671367805613301078505631859549672858304975247791829035848397760738701256647490924335443202954213375112184791959752993422131468812452293055192534843151753412862855824456242770840618950734067761258345515946163366599486409495789943694875428644349098368221776172164371650799740704691802532232393930457058967849038490885692733380575630346476918324004206126669504461102214915215709970554749772811059005103220247069057932294991226340150970144834180147417254724593811360624950829208298070019639088181278948315171346003581173679814189100796863968839258557888569166943392633866175001427898886129092106908796098705498459906997179769644489638470216914473879992725526087669757227234010148305169685026692580500407605460180864059067181042630734378141148672905058823700539329341667332841402349273286527888325637952384825623363958454203358799455022960856662544678769052203016879655337005281601026436053490306205414674290105877861742082827414982635591527936810148139889431272415476210873293257295107654273851522548971051026167724332004796592338202687796138157392894519038244115891499918909636732422048875708322886707822441061095566768006899492294611726880334305017159075344008535757042794549845905662519278996799702005825930589005256838692240970237262457391273652636318361018167266061889602643031412510099550137374419824952695222739650859137647185354322770952633427618369959351486953531693574962746166414266989163541071541361500694956548420821298309809257985368136054278950996848066688830139969877313890074555353848746794867526382207536462301340093214271325522658655679641499438814952151237347187471906428973870603670077211702621515633015751894427942619574986070297860617170370142112678175653194225185420651523844856676598268935670722155868262685637695523562639605642912267707470996822946076539442595341104388318498727337514491737539601502313645633866702950358850949852415756115842741116729407473739280791396264704652809987026781266855779478753830137858498745535199424685849615529864268654300063523028555778834346913518972889779425674899363190799873642119133972188266227610206277882638544843238930928197558592402382783007573646986838185739976839968212528522908973700995154859067646268715511831161206476834421897460621315686210674662154421877097547117577547805040801416269564884778140160639261670670657380411052329965229493582584899364996598576718037215174970768441985033760221418616330583273687930856678190030647999669420324875535434825698080649671205239956947973643789560733042435329521814275191475910816660757194461292817491037456857215411696436751111428500004321775158533659316297874894209670650727566789111006320099790591991140058847160144530778244604195706644429573280821822723120325675653236215542545935353740078382878836140564335127643505472607286004386325003062860756505369800880983325411574461603483450321232420859753829893190626054767107690265484606377222337331015023942682262055998340306743306525299968717970987941734191244259781030316922051741256500663484466482609466846749076375704894422216305447139431606445986035013933650864708279288375679835233940954135297307955146748742064835324523513971369101684716457099649185623712503851267047410945893729544153276400023161854675584440240509395260078867045270474936504796343528767607303570377640276554338467019336031636604691364992806926194030083133545602208184230138207337606717066020046604281737586014922664611685672995725506160888745022046214912560026942719998742347549471170471242940068780227052566373840235608540060107396521361685482954944994683977220791946142758406970879038866598309323944874724914716322213463387715423424446940146928249100382682178299914670477834366742177940580542976727414872895247243742208628756301734676067959914380576485699618023309800840865452649914135193367846096734756004591023293206776749149868535043942303030008931407287689366071203808042138240299304093219221476293240014906996350408831583642453318428466961399842793484735042673379318166056864816097928596496904635544718462356973511599621780667002235484725350565948902725324785057521140355351986561354012566328737330329286172270362342406340023867469998338988031463754635476607817731471103817973248707934664130110739245546990693027628939281881472552005780040405138351239444538250187907560067990729791878397493866748343972638258051184101482902942323190237169952777744007764834525345180267331614494177245149918170381754356503902933725187922503903700050252729681577410698419486318260507242774607240212682066116584855652394162156978677675141482802027499943501846907913575399851590976293394246306695724065664303518543195247287246470079502622838057171994194384844586628764669687031056387098793145157582570808769321574391928011710970645551430234401303474172432552786519470936249122344321002043858453617228043883394032697656721729874987839373575253772172115024869614015034174612047450401964647928796929077361421451640828890529808304976286758204315788901161309481690542076901016573604997932630518889576564208715755733922843952092025244574478696122669381046044759108085918571946252212249284849747392161115273890392973535514390700641469573957897212529352445519497795679449349997601281726635243287657477054097453875363528094092119472363565004443130478358972195206547903500728206926525659846570356080680073463879764118503190714228240221095943330789900224996050510719770404542322382116396253797798138001707055543798621547830366963642985395579173039076005350090349207596028069875844973552666399877561471814555136802798690316974313026068701093509396722856150828148705459846974553664010584824352610649101160147127974232762425364440975392503255687283749210581371931125395035571349835917216381829256271409062462026488094408759414759884530763043316989018661605293314213761776306465896029326842135959286249076778093546334637034545484939883548072086532084796028661124892044003803160770598957772056121406484604210129663450516062620202526051433819195558333262302625365055811316771765530302688505668566002750646456107640758520310386720752428671718419359155739172399124549655288034375360235955618561736339871011987851099032098676309838553835104768630646830115428928422475470598374946216499270444260055339662232551041945359680834552810956380150906869783011040222031151714846142944951587947477939058809142274174888042728540697984601036826262687023288148643531165655817437261885849968277606792941712606814355139393421107528106479435610745182397308401241532750884625420002671088848387771095833802728870752456927045250870404334987259104271907177375915733964925990621751496286193118539678524733385999690789766302944045541095915118796724080934833281468939706450541702553115116781527859331865636230388344703366973400493610434494593742038619913294953576640584800015368273737815111227113786874590838502285445576100247673392979852494957999902374610638305423535469964361845213759695313051073656859008907357274301096349419122190094695628943629684060644631999725407483197437008865496183555091808141270291768581235185283829352828462465508095142214240384147405211108593055075182058228438668206653895274189284406299377110218490934913160011495449623293297150962163809427270666915906771461810405841429404504611323094952576407690358764182705783229647527481503590404903661793770632560073498077542556204746998773747099852863023516870274007576000512599184250152909025982278802790200908084101191856788684736279083422355190412535209447622327318431279432196514653480905047726609122044321016387657036441122813681871067627858332506860335091746999764689202205373240959004857631142449640336727236321389659811571050032052876772016929091385167930974920516102800115288615315173649522393249901282886903896992238874278356203463909404630899076290729086892613813891823292116507135537205510475420226768176202285443545428169021684253869536680893253035116070426221542421209672408368693858843769233196671239617225927387447620808371255083264746728169238295028903936324039832156829076581829667409910189834820319557961874764362887531508006624798434610382073060481914274422369845055261888969679694813208707823024437390300127553896194502583668186357428571112267674022434353044457477857174970845304173374629143508620324117500945170208150320355315670991292311022438887818601275870994989722480465030586056331386633244694134496494645592146510693582098435521020009570837474990355388919825238648851995726749655215200905601349441499072036067472242336128738770467565516499766013305722623359331827166593558874103608783111022697990541031426171344061541565376724878615227216060195710793403755047883217013627529575027397380089686346784138719414844216701076715398356445994203766020525399770430922259617877398094352464524129747371564983797330519722648271551690517077641378518027882670045007628314532058548077630737899706719542847290410501734829972983553487013470712268267636497033274176869375512275868295064607026255854107952989230902604917397311672499766021259274965832647519143891905332967737478028568551201692580248819631344613390676706234562312872103914744324323424979176115138196533531884004397670406272759258907735910581776577787586355683495362987154227985124006809858972477479550742234305194017024270218067004841270317042223760031813045067550241668508725131261679664639215431713549701043857313399969185035757099177844572074338302831261371463265572902952835386267898536949188395097940649623370353254263712329482503054014862146631361290664565629095493020216424753608445479593838537426627438886178094507118671885989192832058506602463910022050077310797257517111601710979810166648284360173286183384257885071546501234988627487266765340095409488414042914745773149446358400230469077651023772615753206933026009795805069031665887677322732792656182727562748858864363095831161793613020393686784236337192572282631585467329601573552978049326601939071731656620311821671114080854570967981285284615005129857603891881781922777270552041898740761025579926090300547798835397007159897630795091220583420462140307393247144398471496571082037103714866497596623156601853242418955941543075560648803211117354368095401044291389819288188564229656552652126661376175740545327758400708696802762532309829817973339442536231096867503834088591580485102195450812983280168675470415970220872147908765390681448703836912148291589045144176571506406637953042255259653056086886477435657051883650457020132238085194907292515989378677838032220954653339065308847862534908294921239415838521817213702600297796301016387183511840056093984060977148926510070799396178972013257920162098465340845348051529209091106019560099542523891423327633857127119566293249103541157426669410224178577202426120774394882064180118506325288150283997415815053083647329306975211936550099729187365433188385132537817539305800009755256052633372356009307861249202743435084392608032812418174478288244382375673421504222988487791644937665915565778299967052666008060091028722931452430366613232760279939257187040121774307801795720738985386581486766785670830053494977718946416144617018431675367264251037127620988277421500658695060776893604128154015149601356429758042656167841764343376537491514057443998512945124040575897516444744526970455071155061292074261299887737276058826867322652564608670250436340827933029932084827584332102841447080607946004099360838062495264717235968635137799886511656880799085081944229720146261261139724780558621808530618621111283349922306686819703988674808908799857611070385038118410910089422368685741648772201223368558653885849630225093915055134348082531836277365857772305612198306118514562887536582347075208899893813715436827525700085335964431143976473437011415485615826984820608829150710661101774033622866532499870254452110387448015776362868043358283787104056331937441118448225279671807775877735514590869032332940315488738460724266644588306306906160738617982076597585461846500473057711546381005917720891729695978083365962433067540992829040894837877832799752084212904873323432225422603981303968923061883844261106072729019592088319891478784659316751336309442573874062898353204378956074017193835902347665892165902341006064556183746464971696037550657130920633738038802686122946835262575422713787788580317366715582205887092958628119631395382085131486351075598748289277449340246770810718316030209547867418720549449080069029203705844830732074723752230439798788161271587399220377133385961788547742686645545045184702297945978700209092176027206205153931031189907339197714442012341333570836330986446992342676566212851505861482824704624740390000492134117792852273149947388212899513430321028623090568953487805530032799067711647377997001473417146321925840788014959183272300690551466983580036486033663631927734768928916900767767051538607755311111856512535142449290596479333014728223286938209183093762325758234000718147560681900937591196558232698076286064535651625829595211837392190957434853246701991170499424660590226097377716110795284617251542815474533102684643221524567070091272010201960666070525375291711987908314115949209512284295671063759452749471775007004687830214353829424279743214428660406791341247924446449220678511363685235054338701890843250934458087716888377588864648185241150845398978378322858486773496889056150617334288675760712388385860501695686825680376269623694433697720827949229471074109010497419239639707246579930166807895405529915535817693161921599226696684654460565924462294376933295138705081087217763672108501100164194276906798630514170429357070804745194810204339418718315848992546314298534577017126224655660819388837561937953194066299407772435727047209783754373028693156514246999410175148752474730029046162911687621459866996907776343580578074413450863618567115188393012797602384181074474596086900492557510097698789507845362277976891729605956942583621436280024308265655310850585390487237044778732140881733643221566922515277860248322579408660632636890463094001379120606714097440420926973400623137322346557412817196958649912476182388214181578154093464923531054909944572426899822938895990789700107759089504446561900983383387169263794136484893033866039877551215422490174044126186416489224291211537681298625801593344357560046041052085659288804900628137966286877609966841157850122615366470845516533705677443507992046296437359871280994879566737194001952312332104250814433117428647158886071771638384993251479928773928888516548519578248086921780827392998782124375769954832411134036905771088789836515570254509014456700649776138523830448594912433915253911887717752458332757813220067220045779033160549532113026827713950553276867961889118961900099297760133586512956974828519019201528400988069494559742144741089085676234642533394428778996940451977711602736290357606266649616704014119653055876136331352163129698664028443537603334025291253275126252058291052756153271536407462332753561905287363841438469368668638301189948441316535018031989239480858785157562473921857563648565725306658036116021034376754772526094698598763523192654211034333022586701187240457899473654230133925469261259781920129207513270962067049634674289267302564511196871259696624213045818600902069651456095414592755157911352997339931410104407444240693275202597255303084542470945146466297642546774616652009108473935666505636981902571747782631184440187910953819332263122040853894838712433383438918717739925797736324122240078779106545237174320079119265277983928353486372055883191276822973335639199735522141170033590836789158699340706476894729999528299747080899907043350431435407027671767729092227916722980896282734519962195663896273580994638666466489607773705447626032429158957553105495836861954435923020249276442359867530911338523900047198169758838646856132915464816261491798458417354705700734091034171550128789877224381892269153478488949022200152957109264221612357699412911942349126950781940154139639272527630602387365449012463430318912319679859704780376720378283661353948313416303211794251494014754951577217641365317891614003323469021427741485116454869977976566385835616691676977594658416105857509364973904625465570452964801024762001607387446723939356380600570416843825990891531474134715791013306441231811876249239312634008041370195977768127662245996493241935518336611926013707027236587702253230924372246480834399468261220682101753530202086856210789926456268798218435795572482486289668795554670071965412529913809999202341511532879990870597355679780484784177459574768262251528740761260441659790588988449327174444227443989657702704172049803473807963463390485378373364653369363876251547121724042220194343744401554392930980669379583565185077548027153535477641531480780068484009407391561937622580386421129674322586618299937364753709241447307292877945134485636662282960896063343493914783417848930972821333427440523187019055314131322173541691335563566372522739675582612214276748475840263342473100736702317529503952387017230724734547702617085267707819718905883290775799039567208401118019751958770542293429116232737290232436973368871084807466728441481966460011303681244176454857051952151306229906999603270328729495219526113259288117352223673484338091818913405825660221048775440944297448266672789958187271830015825911249697695414616558220651723566026047948740792432610448328928189928651350739116193476729954195362212293178691963298781326324249856497587594169426586453879595881654391531394966447280971236150741160311737816309312144674213746041745617751046244739057204085197858955054712423828239935138055474361534377753811530315359703291210106871453918455748105749200419265565164506758212992520172005774938982254954716908227276054782660082015085087401125418648585201243058044315024848135994754009625599697253963746202195044160989460958147502865658416306689887430508925361004603120600103754115898299369970523908167938313482846687103075996173564784249611259771173029784031535104621891453973100950043521334806302557571016409656702282214821331930290002888710025071574870521754552921260157839164916988937987735946221387915541427945119065184184267465603251575089943229486376910244507144109673775277705775556388862375407514315655536709990593894612113848650927280342512447400321479048196693055056056672852848955555016986378838117829287218495078595452074427866909461005994372873357901333134217837762158823461696164694541778108044846387627463424706203561513668745620725168387167238298283470720843601926748455716620888296687025333402948218364592613460705598534240431465505712525639309352850814057772495131914729719974283775806315341378914906049805551451680875463120099687082624989118183565261118005641222813051579679438226643174338010463846680958576554791836955392228260061777045079948785532297881333583871683775828337450441066624925148152707121191615556348015031031656825310925133467320892398009940282625392357748159260128484789844483775928895256448402721643614076945089601202506198313497292139203223674888264598306241382274441960483914650318591598874190121331411725467861526272900636565713239122255060429566259178873971560368264439342994518855483885745125453575212441333300656779141410262883984194520632534678029181504108290619204662054547091959729830396861010159170460625885194349648736448013002017063329914779054419731314869089922229392109137199725823311938013289461318354372064053981850375168729136453812346334866974417915729414958391191909734020469956860974153995433289332737131773196111530267410773299328540453303878999104554860331514607985803971878289953550856209695150780616670092382543222377239057275475747660358884281797917443140874643251618180934047902688950147026796094738967857632518439635087745433396518386348973751772437171840339313992335676021515933377052738874472982117562505427192813248847727882592430900550302707654530914584440705141742429410960951931627126669213004583880018707633948870502660652319657293100296497816893395687886598372272266303432258011241663090293054388806683509812792695114665112680253101315371306005017138975092538658753053223899518727444080877620395303699300487183622392901032638984370848017861859231392928872841383548437386797249862165246914650114669361001536007478083807767451188612175490152819854674677423724829773306840332846456725441476660693577974646859154047723460615032169023202471622612233256146536685154747243964041078193148749137181133514166704446232693971889181073282526406117548381865072700086794924398339066275504103068612057816238863288456076055742649089637946220911719570584070701487962883093765823866617008383367667988691049412283834275548036460238506228900200427311027646845442263487224805249768832899821792243437659777138983393760530058963128928776319801982250485710040066391288610162831283199658177821730941712558546258997058194416585501351038792020318289120022912250144372870836131513098174222300903399620049486841565802611611401178762401397685702935980389014492508470599836304641924607880158250142609121924611478389333502224597141685286687898385248509485894101257556803591417011215881304064069802327120793230790468935339307173407025400927107645252425633048708052854175350332701942101274423896810292994090954735467405243523426097770003650103897027607591642477751280177297894566783001730323082970295298626998159335243394465098235999705932614245459610227543163417354934964351051621831297995483519571363423373713100600050297879368800730909165494301872694541943908010799649746474929826765719588608512053893220733380095825420977552063671907959058484759259425724952028264532561933810158251030223906595235992313204470144526388867589020765433765172864061425894234545289294695874720974916437972704604163426563825011672092690974222457091514630455960722266097950450393304434042402159458184761498702980275084535233330519593433929282291678802105620803676073393468357320055656989393415362815030236921104508699538009662036378432558816459615804113474922990677519250714297929405492943501380008303657836546581961645592034907182020689241510751452258576451344826502685471753002331644686599872645871654372643630069269804210275520174579620521173452110751347012470476571066387514196361588488307914975398074550359433850387942497328355693997862264767797885268557954446350060069438465935572894523152291217200195519173043219898752827916963228891888880044528871627712621184097501147675276375731060035690130420260201539926622869032286832789084610843419176038593137995823826812173332191700921942132716820571894020350815251579101320505454220085734425231018387189905002434793626427876280343692815789120084862597988912655986760775741531592104930229874221905609624874767883973365761743102869778219252844726218527929200729287836917175421234261445664390038570184228294526316013892604592953888205582449769282971435398274080915727240375633986059731953753275457399879948373615421979325163377581395548543481491210672237784164828902734532304687820833802827777058339439759896267097401012617430138328920510582580027490958878218455163245887374024545457162585152982558196607502715428008080673664554230692819726536400510427583333594054913145587463225288724895349555840403256611999684522745830857543326389411936746917423419540358843313261735344240745487494526223866194208538127361626079723992312360939388809201327031655649638003546236337718579234639146321006691272090016519167093447252649894953006738297313912242516854693919231627509439518941067027879659244236957088768629990429841141178927516326140905157859403231332061682585184463766262485548437163299949350220407745624588864714815124803318123392931758483112562005748723485364050027055024742014136177725652601654453822661258318772477970963044768288734917048108319525249599311536456639883007729663831690580103663503322909303340140632517894292882764944773082166847590756624455133059278740531798225169923858890302726336944668292646736319779166510626603820167667912233864653696848088229484042079355625059184471410170893095487075083255727189538734174336234904916783902690789599017103827027483630076882960417754977225440197394203094370490038568385896969733846437286750293544423844393943408888132235105639752189327156945693548393140844341474340115364305275165803268603873461810750759933372887436206888712580230969895419746835455367269372721111093561027138559500529202835883290212831118121940462758063166696366334734223363762845971946901607091379572180657198758214670496827526335639181452225131477628537854885832986030349956453815789381508125387539969550790002086600817330093886791443227198450587797839071042316289952648279120767202517719650538558810358434706797632152910589553341927645935330963259855732282886007125567258969438293906301373243024562682727684897244322808070415915700256911143993487981990356379994606214360214717954439723264082969929205774180389765908444695943268308465433893977123422759653182861501051958080549543574792045848253262439375795450591658649388697093477232860673517319466419494955079897552335155366082663962827393075455419282119063650478904552907151302613108684364477211421059277665925856452489690282451111462489965437095824654356569596888731316544268501207493374879623837023883076363021318125398077172723893917310338166195519842977893292531836416193593894292233036882471753269379281583690113071448581463235849118463891296860206097475672645041175718579427405470492551738861100275824556606824266031541252362027334804301404681701227391441967767682788198820430389114792790083360703921006555576787429474796721509858235720722116447495204160566052685847381266996024091381114712181937907683545479170533259474884731911239232611126785923130481246096420759210240075801009786660608437273481618755679949249680084432924948574201500592296897034717250403943544421079491153372766651644557252452626072114788349166628839102921058450497427021406019323380766412556559709038779956786473366086967036852217280679988301424604750198503822553362095584468508602127726800996247581618781630443163101769016276183632652077147634101706396323450978737936372502067229173625035168872751856307678982513813387952696111930839024577682167938484737685957207187968013878730306842377835345718911159855511322070431410869854312775577221403221516201817285321939620411739509004936859332497962811662225057719911870113220678685261190305243224291251374749540733578378933333395518223864119082802694536604056465291452843552337914402563605773146259339767712318695391212050689667705075353846037272151637425338212316924412904814107946111590281655682519090898975234190742670277031981529536389789042845975858158221607800615513577845984357646151104993819187609319917842623784567872204791610820241333074281375323605465423684827629950586545238562568443854158458087261769068086227366609742153287906162804710424793610045480275857753507566023901716917271458911887492132641720616574363589284317955311998280880613789679669346170930663936474181718569369695228406917001842897756784120935857190790352120948130546734567847303596448695119664181584205950198959959722581315551850376111907365678963957318177981100307892857420320978793318117961951423668361318136223043089963174013455665527737754002056056480064207031390331674162605001281265470451127042217395731804800217879647549858979869430264240773868836914138776525690451419526382583430532958828882991667747186308360483094626938093623716165749874014779355294221314815973687408934427831225064769632770958021066100718371876943003195296343337544358977873772706529716985046195385481435812791159600828304141400373354460581767048975282120975653515271472127868120203373463036494884333071965211541432354426136766346766972667840673639708662009353967909066612236675136648588449109482364267077180437285648191483102614830973102560931430308825906095790311462009899538834393545199167791085323622966752905962394763102192777461736137787266134979578889089787370186300854666446695017487717761847512893154925156355703397369122686769465770720252897601944896762725815109052275273844436266355113694981794409118960735106949381235514338634296691738225047881600875464477795539104123003968971758953858090260301330968301629276259753077081272980421023523842273479998782252890512763246186056128589136306372383523612475036965093384989774679452136775750720390450543999517282307082899810369150303880192793984692408303736863761203581678818193584306892007617662929104697298917124633174063116014243605861517966037854331096348359185997360170000193326049071415268916974870309734629140223685865880134336856234587777532968378396083402614442756494998404412863731232193162064765994514146417104365359613355126265827120743958352781924233890027585471342916775766728807039280047023926964495579322075974632956900591300908823044396687951358374819141258206445709541538839677173894872292557442242519259635373258270979928482340740376245499771822308415015949537633676325443154652616808265891797092669413306892513319164208155708992603158964737252072215270822667506073528510103306214480326150581976915851459238587605994410537808334812602092728498673632481595916775994198753993365433538027107385014771503012719389669141165058994824845178239935003296595832582053143375152766355041889539208398432247861882770379267261315538722414185619650356098893108955463288808465808155691584735670771235757046876929779686106606829297310746047118668380011184172778099954437427921235840150653026180259274752106178375132279798822143726865946225497410747335871848882542117576365944702615044409273580262615237780767707726654359275321920879850095438569331771078050913159133660492268302066841215786986856546311405377042652041405196885479809420658700488320490034320780273641709592907878536727104565583059661911914829581575557938519307612105127574228650238831603441221124703314853501784681404106383100601367210944432542939005400092201764692152066160993495465381493628393967052655668719339544947622858095155222562958020002094691533129569454031330489224672570134917632035386378279108417616577026566366089018084810664758471834489970441567726461778961978396296329666346508769743138856041998321264815067253874127848461561368008820161205899513152839505918807062642285111694169209453017051710707498047264955007069582561007925108356143578006444979406471771609566996333222421568326035607736173866711356787828873524539228793645368827230991641941418144153601132247726786758331194765690440115893250912507205210995606910736619249322977667821624666646512885085958349562815195966878388081153818493941720756763771857679673995795963983300281846736800686781182346890797019958181865378349300477475186986710935560977259540258820591082559128825207365335789850834707606632966029966891236111697604444534336980969435992558353637011981574963663829083568064317553310090574804914430258552313518911335907680356291437236757825612863999835210090467471658540462369125577098411767789995360593317217536166680266569307926424043523282239228219055553800641216474375847350271517551099236717917387921743623339984678483531693616489476035771036840291245257263291174227641316925781318506331784404848578190213778263219062021932237889041902514355377433998435119570108505311001013002107589747695478079024374952819974640932774003223338340393748699911590501829545445214701727432039175900966409500069267392322540159876058750834352759497851024327126130292707325977712708636661755736417404326504303377513458079761313419842430622496895186659143246303925201300498607986529307324295792696801605329997019706187311757018459972848457640072284498727473056660500715469924686454535167175557026291678288426171883143574079367436780188561524496185144943404061587753415649552014971531308648480399084748890190367910989567667521571997512288149305876498613858149259634182868874912411486071941590502518977217067977218008785695101403274638995373179821085565815864972794935567047387788974610539044516056440482745183999523794030131468341260623430586481017647097625592670528939752619418940093284125166371814549574569438223288230023491808871225218405411988574959794344352355927445449365962389821386606026058687525744776016523528297629266128819976619414896376146313908234765972673847232174849697088930927205148474744060098893889774277490949370011095036504883489624036579007684132568805660745359634213660124041655587612401783586059000384117716598951106123194558628276862373991799004058780513056307118383114693317160748327875635212063063199503431649344479568505943748953513173919735185200565741402528631214271057282983958645777249871644689409025959491500699439576115819915343230216861765809557003945118008424030711557989089606276203772091413146670661236122073612609561879585952902639995614796117642467600652511473842378663573419383638324784279304986275312568804918590939321989920846481981645078828211322288483337691606732613448389064544805060858049586280769143415033530749372058885442838599714694231506247935312956724604095801440893075894420930285667095819253851942192852082564370964494240388909885654430536838580009688098637374509428751725434161508304902570747431196771160117218117669198658473373053745638130227118197179539331473693823115059727195848861881675603383399908737878958079976182786054692025960696424955183236088820216746743826433977579229782422558193587648612461413347389722210760850021819670760054395708734673639044553030789765677028948317436184470848646828506903975687593022792062709411722251287341347387233842697097698283399404496766368945455703796614367178193235814177326385306750797694205564979830133355357369408271494082433530322117716851752334536310091630176975142623633408191505256498836502024589431381077370591002655284258668927172238624780058969321998550837962248597905778869147362738956365069756614745378861058337498126548482959911462452574766118463952772058644379170866788646224133728503483665589327148139755913911883648336186284680783064332201554566032746848766993179381917422547460140167838458412702139221760643849197498659871410552781312984249760832847326675430419745480176984003142230672385812434997636660997255249346065743099926105229975569769971603500563722567042972681483902055410117507339372328545214961106226052621439480182399948004384684069841908744761121936058194659450940286689535580718774481355907442306835819160412582155260419438206581433357332536863013669243585396192207610629578168616615397882962683712984576236667238332652868178509347535014722289920316086750048929753863817084320782275335532443658822729753588073710844450741554963832497661199051894326619483678676388752689736811373941419786452748051363440700616855068274899803664751163300455611649587170359950233342053804122415494790313307623406466803210186127449670076228810214645031404190829130052273054827989989531658323560995787795884456818735504294608560437960355681326059777946580815956778888152107920734058042760148960530333280952159691322801784169411877245823368482776075874409083169753701959473342245775393653780410476833996276961794190779280812551637932859373640882013299998261721095505197307936592249508483531994218947392666159092060487037500965606889946349812093093944030084796705191530456059266207712422621925043814119296454966711033894679977259455346240571776519747393955776050453165623273892743533243702030234448404665057430172431996559302486509253986003916293281776317769400004995560035255281908123986660547475495310325915327973968822860626974305551079960903096842139904848225950685830138723101924158884396282024829514605353728647427131376473316082420720997559613371654133953269239450913512309813847483720874261923410334576281900265900362540154757001680765269631267376250637685756880503690463301800699701100304311878882152611914518141971138602800390253053585573188886350656857828806403354322222549603957085754377068202813669312846355910372285735381122684027066900780158211895424254480032243682225313829694338287266167842985186757940861642156930354619088263431144745743705072095570773925743699272549428092558327494656866833183556775394420304635380875583411175439774965224405794443500019820340284972253340516185930683529000823725821515084416624713880287987961922677536959704316629411439780186290307312130945250464442651846380642539491426259235045003305185571658277659568711453662837531110708240744511329860421796566645760353291210287445171102751409339728050651725068365876794423010271465282252384539734717962247478649388502470094183036286483921585607394860662423119547342317523245919367653855128675757013390160418735727098018255764563419398572161112000958108457067423380999069605856672758969807413954114426095001202091530778674650455664224811918671279774898726579282281134526367972137168782912230900274709414256692530614091952090253483982410946435570682709484507471243814714255898119957754776265082616364356317498261732622977648690408860372117485923308234544539054570514663987500378124533177720189027772950278346510392232898152068569011427794838377345221865980549068769440225077068292578600447224316442914047074532140996503927683985261530756333192795684275852314528503542095839850952330785634903794156124268297092503297936890741753548435310963415993623814845712960369440565718180509434563850992186687871169713025724189294332981609058924900064641419522655893313131622301501402577201711608951921162499485163033886568594379350205324426309662207768136862597032168261369926929208864738203425894231669710974873545453144904453283032732543730340904080530350468060369304034498039024755406284689085895446410751439810978127349158715460267261672752378524051880307541506722263745108489571793094131996282209410563821293965889360339609290184677828359610209833804369381195561730439896303302823340294947177986763737149608943565370420402637753459327407561991060155411667705152613910844221109664285174569592191091141563947708300719448519687331367236281998229890757278485574069079357944173243811239023915965839867807375461893426530805491083963269470878708081424375422204228311445144970644998385971625865158730701714160510733726780781373793223545328473829315422552680283827785969651866081451026916343306106802014970317745985175952192106388679764447841232375836502117348036611942554578556355875120191384467721562502389803871391358955998473354868516794374916276730352270865456373581234532426535947292392036420452934959514146344283197268477686640141923834367852483402685561851834183296908127012728190404928910106675434415408321718009359490190979019708103297248118439259298991333113873567830367931127313365589710958031126454990201391579301112128136147371518082641293250168515691091057424426459932833608114756538362719651435284634440392505634927428431517032020050212544207471710436076194461879377034782463596963118914010807311802409556959679026355623458743211603860189425531716819351608184229701406998982857834852182195634807177995938557163347198548521607229263356702222778938354969497120359469387958147480955204586320867796380357825397497698587337322480682410638510450370848792557095096430562327696183384005065334935327489670648934424019221902350669670291315550269757514450264981778536737784561013003478776964759798786394921378566808079681393254523428331284899997552221243933605414722622379899456713981183454882536097318801045581485725561219031607005740638872274250267315342638632092138517641973447097199255154433295656871793002077195922322657652938404548524561357008200250744769062426187938488402143543904147996830444368935325078152270268729113570266072533578779415997274773452956958384933471912293883190617500737517109013406253143372172828789309332639607001858563004829979255374776659619661635948209871635462825893627089471058398461730527823129402767555770853646246076096576383138248545113674826126728540771139868132682619655391653317319630260856830210449084420702382587042704558360427051516806238190418009807966832654176444446652697610644023199065676195282323962111059371335980360803302482212191747061082371054810330832456302699071493852297611924278339091941802129157194972430768745943941025419798190885556300671858737378968932726568217772715187948712907630891186846763140465151747507582198329744369528725997031391220808119687395453712875721558540955485710336989044828203764157699124818749702948867195259906380113098377141413206457447376644558221724160427804371885433119361679174951680288099998721708760391206929160785404429209926318770580659150880931203990651583820218515798373784265490810014377726152976036443648991992242578299187673772229846877303682072871667371325236652207530584084591093163291636184849273234322560114159739425354136379387196988741029052545682374300539862198384985026165807170802325365610544499538962849218882699876189535794461227799532455769612429623592664146602560907298121855751143339651037114287935363189199674000412683441899251658647660426556030536896225118660291103203957873948177307708607649305326906319971668746856669301780899286387868589978533960973796438159420912041750065493458103190444981933182285417041153757840703328136625896251858094496615023440540647105411179203628233206451025414033940979115212922209669526392050844989121113804145006309713066628755609267778092777954965972226348336558496619116600818073102494426512547261732979546999669838623126216302370947696813726095863213777720836876762733676783922287165018659673469538768225911633749157102490255364862837747681667871948048653574325915428639526473983067279858554154817788356558020854727875068064540542335003998642014962494794080266768400702973579691129788540524207312325474958572196545870947643796618128994460901702270899881861763846690971991589847820181979590537580599813561392568905465673582876034603324099256585741965357569557586784646987867340182671942413160604726635966498943290334908288669770883438916925661128337963516341093084146208227319753309095743653330070763610098900500056373941228251933502425434610547281909386485867927109361812476845292277618359474279324126300427609266242338928690710967537693402708513035800936495318283703144600013086929816254278868544932703274039695583431927951965392948674556378105896149640277035283102339320951955461755076432109991007184456777506005595936126043615704799710256581565497566546504962738207364914981946552533371606112402582287519146850960385335950732628346033145510884187829542648783577208963551355685676548656221748130397766248839811490739917437725525628744799280915287626612621693401100518921102882490317515805312284246197068289784982717867134356385068074563388187121925338476334781183837527747674855246847850389788348357080651481182050993747052865784694210565167052280544852135156273214179096858038216729263357223742074154965885228079199652763701807532213836517332818824633361701530153763894105782494137109720749577014298382644763025085022028861430578055500847520774245398724066770829942927022455021630762401318153022745364250661567459689091024773758605108641492732749128683271497634730859291420915391387409553247738617508514513612101585261670027814560208554853933952191635644523046725398740987422327129286661513430962585277542562826286052414049319227266090952832715949609058098701682761977198354762381613794194096151004138907637466055615936254532291748030424501295717809688003550930718454600827514998971139113797091883835261330126694588033259670235477747487092354806965240880944050981634445722657019470464300592309644444884918879403377991032954488919868705313481571699795874245408549010620695385076085841354425681828475398800728666471220007408299959942796821811231068908737429422445320190656858722168322313160638968533906253093168736159171553498851552592460582058316531915531104943646523946621076566428142482901219460253197669377423530712654132692232437944989366408811378871020815053949048306548472835082670399448286432187535388737618502795878097918119586801567154695245593234104641236763121385670119975463230052454661813948113917187629370826937290926551825105175739902611298166803547864185882976884595564827271976332466341688767538775850376934802280096943817504837856486983878065035468207910762581751426148203986166754366605436169103607966731155652027204958045681160452377608802923520234872876669324226961979328921218600736655543228102225107055997057152744297203584094493977984543181177939071449995222885844523189633914420148029736459585950107910508016139217217573387093459073671485997538055156899106260220887963523496355920280127964900497428897252846746972716175612940445299327384736132638341047459036718841874026799890572997232579270175909046554828494384042171968057749235765327380847378441728978052899673239456855689407700846645512581779779763816681021606417658039997566747288904921566829661982864329458901552035349905126133837846640092414634241825787593508104647186285412321132855809048176373675222938111918508340528669826020245965368786066238347095755611562634512626391708071706490336567022419786012562584306134666592623913023156497785399241984614147257770408725491170871587690742380704841842234373049595313139151717686044728023439860533761111088146616095713565618284947969960315459492182940647769185099337845929917767588965532177061100022294807852381406632992376853505303159997250281900890664730504965478264250328811985159104291421254787551650239338573361295667423029366286963086117685908155723916887964065793390495345714095994765421363729816573545827694988006980530292279714846981118790098078293746832698691314756143064073972102785905211138317004175785429516491332259278037730195426457968103316958566213745615963156957474726899674810161323462431302206958706714438856101357296752055461663848310794503318141359180764931213029640554176099334589117162673231756318913904668712421650485452617349209202020172563947079810191265585652019248836823429071562293205117088969104450595717677655755314406804721136625706733033394856608538495127026369057371226691588290428708216689299886335463062257429216307041282998989486119946621436562141801331843154994971807577074383981299583930315127216330116838230607548175538039426868021730389126943855939372477822007041611291675201921344116643057736301738013489107579775691207919609331982418327329788415339884714600366753001512072561952605968780036738305519213488149138677170456515315088509535770947918299705843112038425208926718117948098256879993850785739108463931274938416187791282679735174593892745706099710065755188405562056903316843582070478436160393679256741050497394984551045627113840994146166991347466690041386324636403873711138417446135154173617463471333778691876358957268204590632890028450999031891260519364604870559299944964585379265442767970707081657276932632697646415080837254086188451076223296995497289184594728981025487088497562931207569354848318914466691347226601559632447656136585298177887542756288549547003461401079074208842597681322739294568478108717733449297371600878523768259267291289110311956660660513006687061499848411460018011374063481407194176884701393541900279116886668170957446012754938768505441167331022093727503161717129810259064697908727109834728326319801151312117201339560871431097330597382554307244943205355231623807036172884043319318535239618806579804745298662167678599830678524729416003038986932223946516730622899333750322020691910844114399653309802122100315672918875958726757130152980966197771464288970675413120277716861366811089321335563190940224149789706799848237468092534080867677609217090495224817651766004067307084587748186838725643382728781549231845956785968481316872573265795728352450522186241287853135825639494382330187153955801832229134876786315197415490059692845050566109205174986200197813977184439596498416662431009687279100037688381190799647995484938373012759919079309268010560403947213184206615533434634839819871292302457947669530559251970125345923204559543674887815976540430708674451037239387699865303275676053982890037742930597614723150056297716815200368205880162248602909870366583016306754389152730018820109945928484268473562159270601840922919405878600722809466320307514615127645285798503109602138897604142677933146615782372084015997510228057337797340579224768998711116207232849171370698710915951124401786457739506931874595640521600613655521444510011377241120478042741868106618423261749130142668779787966057276906153184525628050277068639379575592104814415857151291092342922095523209899958791518675224769540309134769020727990368332698134589186720996860800642878792966229099927892857466304962738678053826139411785298839791699461229317982894002940042847246053093723689034247848511947195788373673977048477678136564905999324278706425146146380370159974552065700117947355353721493594146175715071189633169463399283408779406732660097396923757573510167348512729533673328725710610807917035789244624316658758297177080098233729836684445826821823620040562847394802840650729285213744384428246366811745160230365115682043761162857661679796485947510365948701605399892082670115671804932994466150794691031155020572062077179153817194982549527688803030021990573891750770355283960202357855057029004372102607331319351674580578238043410564457638619263895088009293239472936768559155335767673051272553862040041506166399947455075677078768184921668441901182971101874677982972207085945638148553998226389927243986970796514257623537222585933471562107596885940189428276200835378693959363280186582810699076908196679131799242298587194598656598822785427325344167265685181902739992748697514104405851209071319326989227104014656501783785534352777703798252397595963370150601153523914010279079078048271360450181355138973256870255315881835913585093508674847859612428218723750212897641730456140294882192733340352042628000775723790617096618955247086598909486869603101538383497669740815790741746913741553052859235889080750748054821305121535049319456412826396740512001259960704396464367390623942729753817901895048633310757078992556361478853145162056582588429660649039218169504910896878669250486569358971261849227363050090578161406403331003931751552707439703141934133401562406248627742295437875418193790886797173194692713607041563210503459118345205299673859926130342750814821800613041992259761173960328953807721943068109117428065754939034502586364380374393281308502765534032932560883017884651718723550160423051087292666548871546222040894989096241858875396623452791617622256530051567949475376545940501374662184166463882876726962914565792965620428646347217052721779574541669529486097801146110550189438965514955542530105309293435725668583411074532755525236952383930653194441130004432610652662956547282541235095044049617188918157890982166289784945355866518584541389208794671999365296085824727722497878466298591527223213967330453388246596560986646488558131319422434404922354717739565462488794409960249921738794768727280528670879608025478242785981270619143464557258233254494425429227281767243953384384154291168200182470530949474522157154988384422879545487250596643616935899881364734554812488358026441719978974615329439755089931883419612531591554435934242258504551390242618288675486044501878292843605426349546309471618346118157645771626906828263480681033584687809794048322468528766499382876237232013215198667417985442713521101086736981228591360724444207669971056922545799177943379862345611352067738569317925928059484290669561459013454512303958292768310296990926161045343070054360961945201778430273505309995953720223791606730756334719643819939684154422205478193536415078162423820851191101798845623279944850774414003065875316316866709057124233198517985105846500099435769378774763300773806473065057833387818214178095721660820209095486084343713647042130544289915942222356391096944411648811253428830912456756617198526442263394375247716956059145076580166163603555560272983572693158946327635730889203103526193611453383490931365578061083320724663905223697833032602263549900154473064826615766449692490200300021488039619857258932351729731067987301279138355110880794227785189409883044380924237073138258634466924881508137780130040588699410479346848853170056361241627039725245816597231172969184582373856108111196016901511840491567489930766544963373095701157970848418321264003124212717130303433147024643705418704042351627636942708480173166647607883966909971029411727760687788463321076631328733928027025576814665594883420769352441170294861029342668442645566446880666027909710821904905940134972956971492829528144104544258958040496959715676474744330391511245778097592214163150093067261050598950128021228526212178007108275708231960222411087768278312621631760695404867062993213075943316750462537263989311555711846348972551688363600149112028454935980984477004379426175493592139742658782508157059649408766880400437904426751738220381206709137550847481116067550029431979374827906967991399919089880985005469218779271728390106823540686323398611267350205252782828667370704166995727455720400750881479465699201309448124022085516066280059444486434264861619980727549002715547499246673446785401780646866919777271497885025491926750301791613355142480834434160033604631391084586990868235819033132047276686190687069624824245067421779871945118437452644991333582631532415640596650565178736403878512746150678403040792330848236041113914504739121120277069056489551637871534655350289581711348662285991853826984722128251706398898757184020770397733205511402963962002796120181092311940680357171174701545158917768274281138549064621722059682050669619040165056160621910345430362737043753837150843818920391934902882997208396352005157382182763997998258380979181706999075331319640851766672990164255676413276899351760229079477047113831679142171813918354821316056172542372253493537353814659411415481412419415265185131776118135885934606586087514655706549085737776757567626853619244627004741722306879710969813561072844402213262348596044121637227309325284273267497941341239341633025499895585892100561932030857002258396952000556663671266887246104717250440356600074636890392183801274981793087123478826565387489959577119565800159442475903307967817850441289397583454276294039959747501279494873199809257726542016640635014257598528574720446140397265753512043296250768694176540281257820966561381243324870882959036875225982731250129374196268817410225092242979858147987988390213804440382036774914955801768027123129983401747493226873787919335885334544320226604040365780983552953315643506159026725098489783504560921205581739583790121800084296916392721190185555132750161816191170220161372908898027472598374579838295050131535188409439551690791747183311342711568545887929839315874797836345290718553167603260145177482062421900071715198629565429690445942894770860342057352661696685943663077936503555600951784639967134739452834582056200191076717282964308319233579654051222941014479072628546475118840063076262279602566381235679620059610169149629402102777644354325621809664244680087827215811728898957606589240333068622763138328257796508883647160537662905690707696075084879438472547234080719451314408746475629692319243232229469472636122227020883920605117724861103137586864083790060235060182356486177799941857168769468014365414978063379520402924824648947647284141237079923955261618917147223717640908845890201891350857687367439906799666637685333206221479385240924740900931540140108534831682410473379042107279051725176704937315902580047395319734959385220444206144088891932560987774293775672811357976212200939726497111553417265356089128378716217372981367780210448127068048233423216891514491803693174991817799164301620591943096279444241109938736361921732614519655250302335838989733537273232116273365650864898296683032005282719019209287847293057178673218229966200265127039894079343971657171409575766624425122963385542808646268731122536341937568535316760457809247514181586350986355594709570938639259236538454219223696518614130808441581999806923144224881356365369663960677054121154157318045662111427476061771129103221808038122541361378920476614525870056178974703738108140134982580378731192340970828267457732639380765602305872817095617842137456098675033343890225707404042853870730951992953770701334603062627864370487997316360768723981724199134718872361864902085283006466744783371782473543016986734229806548926171585377357015285144732422690269962596865587169165911113695032563976316806054311978372122583133592015948262873815001443313804145697802549744230051690378167345175453692958040431500570259313430007584589569890338565996849746809338441761697977537805183402696998735724080144591914036477772513538592579678630897296076891684456045159229771408969439202290804292607733302314172752229219796283401644190660206372245668749340466081132684352393914487340082690058055896060238668612703862155112755134853788964075207149501930347935006916513610308249288577640143765223873324022424960711218036739122271631236408256301459237466632148173127071387723236925285070304382440694116125425968528730863097838353541621548536337444448448747466038921359673694251177486593720113996787153767271820385290683941371350718839061971160824863803639156659101603044261126005483758233292775392132363530710135862931355181348497436838155656923741527918999112730506915827067404509987478651109437647185369104331951817418052397689696119801298614113714620851929531356006573401268799940154054851401568262255569609446607858155297667318597226920740746510059070021075967435350645431196993178142264941149997347741751757767328544570967122170686173649019323716954272085669917887911568958177754530488935944003617319537988916708136783838219353049505455712444158959124492703902258294595591668829705720827182594239396972693925624964037828621182027141777518693806330753910480066954509756350603877128555284725038666175592201077772855066977023485202403777719796940750698065496937301003076449927797515301646011498460762668405161472444658591815071247636233759861370420448799813488382034674430920349451484354161789463796987794653877932153633021011914297166141890811288767902208408926784173560894667602517453890009601039309663485551570565598520992496308009529110524197420923195443806831117087919757393199590790892271283251553175366844651250640084931930783160763548164654481540079851338952795745736848451194719486382456454317084370274509770478248129915750865864348089789743884811483884762106387016048526485999280130973295720075173930625404280511492221488363585628065547987877296522598103226175997299385744648466973260835983317457348862351052698641457726458382363019009062764355877245676931759033993194425251958916488231292705451075044180717650598695169245251920994268953636239918190143972454430813557879656572797166177684567043552811219093225765958856217504430329722592499743909416484392602219672220897938800052374770686340542356267591031321412238539172776222292669875157216908629931902170021795931309128724450458976096463731481872023690163516786058658434318085142485207068695980552658165075172932028311077194606570217869059565026967951618362592681251890164657876228189039198477431951880021546998319391024071238088559031208708282725022229728850338909920556634611035711734446377943527270853553154868304206860162240535610659250538393433173664544153061810700220976406922188511855422301736498175111934767889129827448875503167503027406421748041730132867294043317678480473193936932108824417107317541352332441946680411809020563088981011134522474320892133203114497662967523196811051327208710745237483582668335422246817640578758089437710594802214662895215940944764851423268779552873287794106969351878684216951405774881629512061611803377663909291247891151650439530666244536727260027720038954988151527048534670202356821583001078472941760260298489059244179698479576173818917757851161242398116527757266637320922490554999922551875481317885341273819924436007782580135888502500817283129621879086364943419353553988807173628307434375707303752524987295911637327733325579905635788088055859190621174996510797691247181498401631919914884455166859886772027590502722525209023362608176865944139827609503763721459523839627753990052193567998419310135513121153284631700915901200092238708527153391042016407450169051928813697772068329479755058974724337347217494762907244461688115081760535444533836062794948200615086601014971647926939900195300754713023784870341511749646017604320288021644092015442938360915675147708365774600356879685717677789186265455990599682592035850522559920899813072969096604855693466462974221418191234903023404412362498422052469850540549769537675750961839563885833401103582280166440853538148777434526521487086533317542716820850777841612356283711484664960049398109460555923435639055551902305210439355768169118646079032087721379123327175129379241625853803940032394950582034656939309175951618583051017673483638443576622978857500801877704589282343178775949443880099242251637484268788164705109994151530935390721404725130897463382468185768551912589740285505160920506096156510048979645171256149466564390239368702938467693081500873757106350314363387064802115021405962087174066770066334247985454104148067387371361032265860046787853287492658432509386400231139210596212314126747652582026068417892587195525959901005329869946287339822837851580184985638184488488145275256186323131475374788732168500311246134826824027408588125181281048512475702068407856307137804923689151678675734315086773350548469055457206281319682665711438841966772330780739002486968520993047766778014332442926856717754922342084518714043819230003377063448076210231268560717001693804458723017270422540575005468787532946217009026615017291243941864736763704059375690230842897262450729813491347633372533844474518212189262110208620792165960845623388133763864363682700177023957534464763798418892613474734272118038199092866279318938974203485406071522613046846114301126018217004481577073766667172764841592591386486690331613600404012036733109349620959199395748563736247611393549460867678500575609549334746096172064919752592601974927760217216938811768356526704842714584539399148285249465888845607532736383229337018921003701601449814671223358156054627763200063510683753972449061287721347063092304480156781057764653593613048516252278166692380748219388022998981869656204217254084919042931745693259822035714142413027496787197399088424242932456752198698412182783182331277749827818878754727333659870918991005838847333514381782523739701403834463037794638931509294802149479823014639966978790684986839978012602613451068759308912730334165366789996004882936678868389379816549250769609084743168139765766798773472026888905909331363398228415609042635839230175613193514384062666526300118887653694280265079090856162607508527043241160216791074191388574900920308062199607907960950693901658583633223581353918696842002577522425507924777526346843391696411966576423660092191960489835914950861657945845993614092857003986622343543448803737754711160897078165497899752266301847894764524027098040225761604620789196193473615605081779960278111841686719829092991325889273846187959507600705992060755555966267364875117804627239490121349297277076254840528054535258244826324616033226707056428991580086273687248426930294902652583059971193190914374111587598202035378924855241053880577797509095136589143608480568984173921677074756524276445548757404642090521664494670583120953977901802758415253017914027704044940731595216824838058769096426043642766215963353062939877877796097569756392036690598149211784928866791157474286233744091241740741449590093006329886624801146110797618520655110052743376323655214398469624205056442446616392659389889339156585767297359987099633276844524136978482931952190748573928241371177074433034266181992215737570362764320954345309738784209887461643630471537991651681497136371476170380555624426128516980955844470503612445029379023039130578795273726832216822149259321449512698091482162495537786334643548371355142025959558298518432029389026403968149106132271962064947097663688853350737432823459908133791181764695025752084677249836481431138717014559625165869553957741285994622501087333810440448752080488053894100723314803054168693135375876805848718182294047962134622056568793462603694328332368223529996087067858784813960322869815525709411746606003786871216301339818807190064301991072860005661075097550822755419811273666801262815520309035052647244662038335844448069431750494268207437634603607930218372787807486601448024700306446515394699365956811747804174966174576526095689186221693687971788261739177239354594775780238192664458741867706914145636394759489362902382344476736296706713847478378790576563742087304075922872264829647142316423146992915268847466089588634602224035180173596263204069507199792987772297967263936829376040838029741222455050703802910384218301916184855529186726528464049720081774484733475151814043382858565264260150210734528896283930669141447364476904232047374928501204267777190517159760397527211266717284838869198216880679183999638966461315970293300792048060852783204815863330288636168147929266387577803233696999005756521593633824033154154383555585946680919685988190866263374695851345504337674208951565781997485752874605221186816920212792610545472357250922978818503410196459673042208488198617117634933772968569984637949521467436559726538502772179242586714560445303617259918028759343403995389984012970683708556566101746713194097671921842118456205278271319856810051119524604931432239025530689368266858110404161678752268430913574850907093952746525069770561413451242995683477139244236033023099339593128213361075580309785269724555864686293098919093768238635606159711884041348277422501368554694635841183996515968377180137285907920582774007839106211079214427778902497359846442123901920818249735515974227380161447710431849274257508458329227526258836934553614725217336906548367440624855109970212062658791382135387095412818050159283958846331254044675360150476224812391437327684720585226835951539648818875970575694482985446206789553956084130937018512339085265978915543455472303216899576140177941862890201860122842598369905275237032993942508722166264864735149492968162514482162855478749738380308902120371220100062560943138140875370956423637612492810913358491965956715876003361049617345137608065220755851970776274175558493564571320470517259137703188212062004285914695047192012782578443863835890682271254387511863882895433764218932099461374155059536332289245607329716234226146907144378777002263060115169848371075066363328848428941289408542508427019279420802612581918548920406044520716278726347284864331757138788762133203305902632687699499632728210608464385818445117335027580569501361370710502113387033194840178792502565239838080276168930481234419720534623754173345213778294263009254423968261651781130071842765255635465933178083562174502255932505755579072340283311985731425605808479156221680134698771409614838515083939228515541439399739977541902996039110322123275977430701268981505934713836933710317976554739838367024159795037740940903599916386823114705490826588688301846495806881219082435192781764962438856487001190295179255331868995428051554615589610235120445061159782017347545508699831364854765495199254940852348817260540114555941627426227416404805910579217917975576319369951606790130732491772986525292482474729439331135290937956215611529682288122294666046868024276945806028509806182017936570693604909695499470066048503633410529422391873983878787618321091110809925389611770250053068910434668269856253686182968733764175755956935846166210218916528960666662811230335804740687298474447458779539843994952607188747485866076429707943460414420571104537486702425060947474165218317693059190055116676714642798453335777369148526553040962847899763681877800367264341723544264741743660711639930908281334262837761376972141214052645580764688697067503597465474050054222774336879148122037310430779336150507792345886224768534470486943374009840349898862973103326482924509147037652068836010579416985760890419392977579999872096654686198221917121947632976126864186450476098301930682601097718927974125915835943650874124364629136604858447883516369969116912369964436184491686357972370978575668489276338510919928944460588234904528177577372293448812022451629806168039489075817182136249622356930465757138460967248273108660167140428134080994421735834850921219962896285762834102503497890896898017347218680167138784020048079413560517945119443357298178527647262533493102198845549594343612437775075742692169941497190659130850633803156412815496944317896191275808191468679350072978381202023243829173090871548294200155264424930174667032976079434873384253350774425587882261736761217687892409597133155552185426846983783106983884711799054021976048745593414461016272671943746518506284676368577868673362920729664580010103919473861510643816488550217007623153562459289735209927670368242731363396645762815450205627250212751864987324535102663359223501529951654154623651197860113469220429985777797017619965316263711208987472277343809327567496223673938056835452972573296883886365431471870340524644321873885507922322028106008172264984164600333524802094806745224293063342930545283178225447554250264412310844576343174930379486987162629725877564665073433215041096546208496077858935782834675576830055459646854914135763753671914321693305751900006731838724343370062566395713469800815322784572221176091113967389966164648943901600741350775696543522614887705279275502412845120593575625823428324100075655296727131380202732509036081934312986034730935476317038496373424588951899345154724358335115297083576451249653095404577089332935886433694596933354959193997960909509271433328118388485734200843661065053786780799352674173248652573415270156471932633140333744394874237383955271930435638145313464548253894124254031946318346679992229184199438818776803114227038010458102979966848025772729363562967427784141781462271764141593460289307276419743246770002392489373206917955945328629368285728220360274423065065774050004689765236231432608654712513355809619673729815652967095660194516678538526459985394076454887598774096343334764447054838448452404589959311500678282092435443215956288896988504031206488544907802671430492480121552902659153440544967099044563979084323074354215290474335594544589172779884124804635095104120008407902077697386820248471427806289047134362812608553036140580245972824724698065236868779920029782031428476768747088446623096736254190112905619100899272774956392593798786445118375869538454540117748559465648405523275388386918249877295068507080047116480644963505780267790738257815676883592679831558138621841100727609404604185208700457557645118094674666104941474203454000607871516303676933322355513533264656565424636086580304150193660395061515259766007064741965202363687301253507459848348632464971485617384522087005529860157060050565821185857584993670801823593870098910449787002998717704061294644820512040193519574649033156982728874291553471954876037853924460318530094549185145376116868602971023326640004740836753582283549538509816843496368462191678699388137926336521133369210560549307965857610738094587162717819718900470007524794368201987182508495884311476842862230364349707697081818672538173107114240672932515503902593301839440888961808583985904718949918083610244840881149704309096415936525517734476748074312511118408335096644776007349623352768751426053676333855848288863124363757862182600974154670065784750447965614896006303304232169407287097784230575714391584413338438306383619797568275066191406980464513536073465782236871135719447448203362996496727368733845471024611234497361098731307629490940084282879156950545553671240881455848241553433168409340565852680733409877957164673132920667437381560438417452064418863230456638188413717656458580259772454522656822695433672358555151667924892847773561977402599836118688507821221312017866415207218361096742021074205828691419955703152161808211283515953635254007535872650793334027941436125777643686583177721148847076778735758937719149985751048134263707539407244532929780379684328086031293528492264073237212982312542529265972034438550924869969110553681773556909056948225816341002038801840010617579798583032193007610284237231415666041556005149161076408748843822715380940928665948676497360509750345387143650495624245030265779770963427087327364699649475375239891585503834879621585652755590736256029577566819013942991592066459335766150107712161367911196547670720511213462482525528492241455698802510927197027512616197305513118568564511668332701285607551858391005582534487851101738229120333815295628609989929090390607420151649955732795758224000890446060153495044350155660564594049282229425557080090225439370874649665057763775803272539758831805947440398188610650347774806309544412508420709432578174152461579804797850655596219390249740529543158442209834839278013769194199470192962741448271873103193057229684940548443329542025447636960939334863946848026166907918319738277420010559241904210655963034320755958718568854868051588087163603544307376623029356851297580999426818129534834980379373603275002068568153890820113614641746171898423063713095670981309764964436373810173386498492844428016410630104806091885308127108947809966881777560838799150038944918110370942566668307693278117492686438541282854570398868722152766279716899096271449115473603027426329254860892864205580154153626431858959631085714096150511457470681154408222096973593906953030145132732558393739252168049513637475952964045068757426214044104557074188745497687633478676977510820029843873325431761546691082388727959688000106791187246525410431464866252872681520988052276640069519313050904783601461167101448349729130966248202048542903456834925073220820190167851962068870740889794555136813205751244818207124806016612111438206310962924513834225702264826173964808027113484897451780882635126278653370633015255172385597730479527214175969823059954080204171512528016041139137134485005019402354083591846286047046168761644056521014138430346407480680740614593949060273042614446641405449451913759168514434406926151941801245918077592543995424903182955196152669437540107224497803939893373611386193722666478095521315505899433837799676325672640321755588785733645863420133781851085239598288094218572750948737996021617139063068852216340917277910688447130969420530958356467616580687420799326739422198674217272406455097399429734430516350893411347365719833249178700268209569932455560147951109285852203856127164447588834196060918605952020750553097033950633712934347905148004786949340653549549848090046297019606043010447163978541441746578022049248183366699224953973485328185614962584162628543183480960567408678687189083214223179040803294995491746475531668080799978083877878586710455436725962874332486275549816501869265404429052094671285950328456134779095176079143157342611692981067178654601099093334934185203162051230995768557089073999008637976477904546906853477443631507216356210008253552425734485135922583949006994969101157578019335620339588046876463857937095366849914220394597693300523717965744147192084977370725299683712100281849569279036688587859295963257385290881163487125513817908811784301720341103429956588953706838948324644117456601145777016036770112972250932190206420486375301276969904529166700100752478189993217173120854421566459745407310895509902663207888791279405538280932375507680036235875247377171911203505939979548256658171506471631713622133873496029938468591195480841439610829160051405880049130304748178729310876725726942884738613177856455165781184347778931465533894812345881650497490381415943150528802633546648535431764161370914055182296063079032238563217987612075973999910880518183147533283073177403486124828652842908460398616186799831306144210060098073737862399459589245079636539719454913534432064702778018255440826669251723086057731238008976565215360450301283681058057770510044500914282237699684268055713657456124364036445558082202793503425093670342583674813025129427735784845527448275227610112541049292254964444552650938113009882333736665506370627370926901884473454630600950068247313624485387235494405740375199003448942835775462574322781710822565218403374928151338371271593230105752732513185911785486493588945638174718463238188540259003915318590086642238150973384821146947186760126030800995856910983184336279861975087986905359072720463877714188032777118809441830085643978901983338663505626389666392630868342086384153319776569039677912849390166439054148990627120051301945494956837335418576122834332067744068084517157649494829262512904997785260264981732448373386245091436003124407505363011640696661966611288239997464874170511964443458478038931382794999036857037017604324167043331022193201701674957532768084428300604283662914245279704967864949338235761680683593338352909006501335717932385157177398569610257560790855449506094758545131365754682867955626374207028297680091772054185971894301059700630253011181614544659636871036508306387984241335885523729672659150658173312833296633084706896756878319937214402944404444366711438221703720274592473459924743191930164118472154362630724444965566882732423799335118471549844781061479608226320167001974758014421755312501941426300510599148605363394532536519972787603862503841536219471456167798292170329691284217411800551648376110095049488456030026364861110766760529462805517748393737405497851108427033622243067010118804078932351500785313439881147512186001559187208874715798641133273974717875429989153956109005703987276725928871961255912380341642758799250443415755083201110489461394239497883257335921500106732972106798578337226815415349358781830057717238289902378350877087478776808489023631929556823810489744972008641771820153755043735010509554911480237953909989345781620037486813038864778590267705753435689351272751787488915834456890956793352820180363372099745582324341619170635149846661857885983760859091098329278525244516392502790375903035200965244351336934190161786219765222223368098733613144427811413435128460311051708639418167882833328463169415217800470448649550152920423164464160141530788631608259419597368102236416824305859803864012017593331121223991592261008041909454413225822411700497931966296285917481522884676056085588923652621515732442504382314040555238226257777275945428645567081779578202388805736468570648465963063582094802315339861119308485434005900301007685256473304312251787242415751441910546888074972920046863837947600037680699900253825225956328211081794458226320715428244327864311989270512968247876826076976875280959293766306614355287561569933059718118600919972846936842115436280147389336624912599835635889180189080012432014958173984025737286372878482774979494366386070007908656260341320066260332219171826794137405195460870990690272468022226532640205652000572819476061635932245025420329922899761383131869045747765535904704838023595048156694381332507364163150520603197538220310439923253790211826949930777937225874537112896944295812481017242126326010257320698978947565832984856977246627400223852020105351092301853366894389947144682627926601427231064371528321622223337704003229761010806190287231976130078863219900213973227510452024161459003352675545000510633753521435309453476092079591852450525109333777552674854142593387845336160836925475966876270989467116708676914829288929710095148573710402455389856632410419242476878799523420593631462301580881917681414714188029238088531041983072134808725269948905089950696641103875126400770237252177643530011278331020455107223909057126727671547371165805037223919494371874439535723780817085992797028801306535719057121816197979609300582248164724982025078460829527413296139879671197281406707681668932275362910787718462713176272341644695104886940573302454928757087159532118814988783098469819376502568950222948836368705952720564368436130287328476859653410254851255962120669765629837418003856010762731057901209821427279029254087100170442546290295480889460262468673534430795908270481938515634513208860491829493032869818899046930938725143416001390388892988278771683152701778399159961423595846107983337335696231545026449498787681542626002963294462848182163670125279065385807683972564163183472910942681220513122188304995404714534610796543890730596120188909130987368355813345982950456848802812141207001745076390167043999878531822971732437382042754289463711823084247620922621979792131200666078793074695860914931535308580633653022398741922545236099908831038519060820876491831753355537249230122417352010945782946563575682045558873445240714238487278482314452171807701529012483486103949815065413678008160704706033094301346401220221076269186052732579504540638715753671261341308284495277284375365810061059968260626885627846039147182303347748837977253143281045684515682206286621648257241922915108024281037487367773023498279166852966964023389271162579397087499243776115023267472292207611579267325334675500204126581790184922291522598084389689027255381458533167701185581386040625782159374080992049328559980360531042612426927975935180762901666445267871230812586028592197691861810603826448800816261628672414849501370400210875519105297937492847203954732453929744804141680841263652230944873552063632178661829624326622148554748797349583552580759972986236964869311020844154272435953823328306432221313402073405918253634228546886801718038057072005498248092996676129440071502542529401698807988671879517895098275826291124850205344549689724954068023841868532842426149919994869377695382916577946048303245988589916449575722420460867547614697827571684647804163490579090304690537175650693627069402910425834631375973232150667591346039827097420865463322688282076809226253339329282892908244262918149537222458757796010102741767466061780965269214558153567850635708702613208375071525872305573887020127894646400427901761574355711989104711106616024934805393505590591886979942043392915396902453663370061520182177219001917266588041749255752043435822553413555531241891134833312505551882554769862306431429386813012665792079278657668209046655221539631930435782805602571391238051252878570923355892706973416798383311917388741915390530185911844112629465229445856228618782876536522292050902612710948690154986237474831333431989159506713039989738137735447533909785600255872019792841382846196094766053394135235491182069393268640862431506616542884699921400871115677138426192428713387913689456061040354136521370474208192381840535809985635573269131403784130789096014416804696461434611902730114363065756178688769057175335338444293672637381261280952953144921146022950643091573405339690748711053906590947012130713970684061184247198055302896004504931412458770491164152226428700362037210227892822343213017991765295094048965516960370301759767937107807341605409218196661219459736328876443168215112124763319086895939632871999747183201575361348143189655437570625168653426564858290583614532824505563692669819428324325883240955869580034741396970521202399803954484629610110979243229738321543781539673345271996841328617720442287776356628877731119100232179936166512163494285117835918010366293890932708089616805561326070236419408841630630070286963070667615712674381906209722699601645439863281913770389829589539257672956398872654829934839661833206426850020702144160750689830268258342495850008134312611879783499135332428134864933248203657644713508909012531423283594463021190128741925889486385046111072748381145901581956656396133397238105657291277456077676375880132394566797366993614520166234227292461840137384772185071250978882304074880357641087554021059048407938269501092136877475660389292181320312246982271847627633458058926134286862515838531330776446440976066408050406157847807376002002178714495417594697972430294348537586073125659961435287719111040598172887923194754739889259797355297137286712886424062258360620800447947774605861178813823157292975630277673280659306332402264378621341670380749405756567315202835419683427818941384924578164505198238923980425203002094425394123230793440779542226782111379568834981160952042945947812959800320961008951274459435329954256579041684595931903874818228073256925870181236347541040135784208317798035378622606569398949029848466917729967589143749245260770197310129574166621589117050903835243598225451834596578159760418611745261224826351117221957666036643471117159516081532914427987424709279203912965357679205472167885656230576947993616733631463932923659435166237832619440375599375136725334083665437984417446626257448305767494727114632298276251486422339808325187812205346600709108080976825233151727066294522777790792545574522639911620925365663883872493465213215154429108928924781530892431328846372003198355299943777844187682868527742395424357943671664956453985573363005089927096280387321566249141239669896953862538676954850246825896557787293351286141254962999022051419675796763222262109001274480005774973596689362017857403809549811876420022500533836897403893619199279593885911432220476866416309454140550888243214299657827807375788849622215518215851517114945379533088399891945365888058027583514969526450297628588897345414664234045086724103565873041768760611917671657703383201493097334731923466454784842007012634507942055261517062499333015324819308614675459224513508322886094526277503350139416478775158134882666917814382732944439966554139131836222730533275601077521467182277327312707191699707831095266957443627469354804210060757024364041094061302011854997952989300652188233350430825793516064596859952393799711777588832134548133139997024143193856933070628206468179622205290067887075226674867273597636621195759732396060608193065800371159462666049394558878558003897574682858405804230595706462136799735281637962198154725258933665990754761549817276314112878926448932136101073290219327556933255061876715742537338534531964668000976702368150818600265920915479911567834362920780330019912021626564887693051707337110264560558064377719412724582436833226026192627056138857959294802384203149708050189527488783743492338135726267245764285334307311899219801963258956272773659025509916799412590850183270140432549330983183279506475626417239554911207354849959113710907131547565191850376223616866340104892583781847802716541174702215502758616087081938703509132577896378111622955097508550421890039754383008855173611149149226509007788617961053132679606218449100992880379785579555395774792821055749536106823525819777197349202085808866584437919643981917732321195448824014475660705559001605609090542310837576304235622796653611196046695871571315634362046583688124043845233228218322935817380374687169518711085613558342532763322803418326967306136861197758401385565267359014208010572247024297662143791724431756051496240528701282638491962557698310850459962395572121266910589551560927393151488362957660562605321630757666187542686235607837792239879457422728062856810136913467040934880787069231844780104551270558084027156210505116763838417290295713640702478531484918017456705924679316988019592135159545951075025279089997914025755461362581326956186955138896076885953202625580992928521959264522330244178165221063127859077223046127688432707587263941748294092832445290580435072075422606673345530588402655377517000423891774089210730030279384178091624127590561017439784034179936687113940799107868564455095591085221920003889510941481376385427021534985295552465196824453066254635350696405498997359250486807973768184885470997055400473025617014626700715544543113215187125356485802333769390374789822967311272470277042311131915855058941395759273135468632223099491052215355271332901690192421456125064106019489981496979339857428036838175315214602712945089450535027460940605840175650090136029926285144164458876646009369243275354628541603079235144623898595029974606212107757540892145138782189103685095318298455705779542206088784815607573748547930231691950136993215151808894173787983135418589381278561776570720746953908515683823881557995633777543605620150539788055467980419423171631929121443555210899362679851227084192403477091789168221166026655194016981906811971047342798392360882286132371307351552045306729825441235430279346779421003050720685995359811513392569718799036649587247360338213109758594096718956723926566317728488818525843465785301286567311073518019114800920191559471366020758582781886596851943056637819229190653833566475327725239586443331652372061563477512554877370333296984553656158908674486447480994986424163033179344314131119443185307882111012492853762419236252402236341783088672047944656443133435717982801798425534869272008156672050857267558880291494762958087057976148333448252562690609270177263206872902077720898743691129708666441150904815148025987747869834894864130771561881813403699730902604471828163294695436711276525425261398535053109059932187607398491077311986448340250607683089184724120403541675424885110541989577077226729824702950781030512407084220169029247872453472955643762479387193152076490503898072624230666408704489546986519622133196785846476948395897013242009362541576815220807635126179566279390072627037633314716781591748795832508818803091246048384717452711868821542808516649220147199241467634102375855671076985622242615724676325956505646278137670046754431736969070160428998486000552868114491658854423384693348481019653881374067477275131159218193552228707579090539969292364108330467694895393236645060833540065683264837462708811258971895088018076280828465795552407639504204310955361409512838333838866193737091506969130855472582705645833268921139941005163570840212752036408760809168060018558921635071396957162821580937802498838013217243176744290523089198149266106311487339863602978276829019897732587998671771432396474363165432949485023365302528030635242364785076517195061096335126386014970515643488634010613996999339612462538099696281798097990261754042739063196072704377850497386648176711049502551441634265240648169755675189660340442922543549999636431492983578599635899069386895586867373715062357799869789839332417014020884243098836182604914039871152707242637696155670358038260998300028511144341026163222617969629635868622365946726462833443189384293454609113145234211411752595143370986808018445539436512873210416079952062049585918913802181765754079243465717683521295150954292153731656691228554094454279700011232140409393503293865795757802703325609484076885858491526323146760605222566230291664567902168737370476514048457675426019648778338104366387924078464949906435422230999536093503663838397359449588548425064844102930635971925691638232771889737720789376949713829402928113699445448691001185012450932551698325203994250696676294872570838513415464441244490506129531571649519565352662601695415672877316695715095240888345703297512700049146071133853527122959262472279300988833956842291701548831172140698738127903631285117268548045071144537471456297669293148273346047507418339673030702623098827517722190828269500168174095910292832073824823864486860171559601207415858521515634786154457366555275942448535821818925473042627835443700124339123521876522856730820974163924408107399747866256431329790043621374707837699296593257203542305664019850858686761345042294906707244780287782019408775758257877457719257960300713023123043513083492566800968873432741951522494877919424006469277597756704055204195375932107606855980210025765647304733231990455916547792146093571053752236599868028306626442740444710935601677494929447703836989521274398388869187143393157157951538739835520798095866311564679132786233513479550426238207448490105676839941646895685173739819310620690048979731655972973781543051217937596512967987437455014144135815636838967374022643645682691874445069492638966751686698757758871132780784094732677727960709354216112128591969457629055427148146847841673642481543703311434262968990593665782411644926409746947901815224523917919633377984974036544695161262052249404582371589564811304630931070802052789420528078487352036316342017591622044744066835130974269928310897473128255002950203869138592263048674278448587762417241576714691828911639639121245959093388731265421754364441685317029160613139702125416101222542015717345568267658377844009140265139323127799186955312547403081481542780025140899847588327661448831978059439329150252451462866697550040359587731499943752489676800723641244583520227929898763973035108106776936671457237645344281234286754425102170907597302587849962100064424297218973881575133242776717051547111694288461656503958586411364323883333569205468787757721362727528432623130128196070993763617378054424264683142418709308553006765917891574273070603701469454226312733520682872775409495573795657293031793551987791667320039877475525874322279366118923465073066807164421212693501297413084008406707273087305570719812377544819210448814104290028006571233125278766989753502199910815539333273192685752878576335878721733515021799006204692528768276696218303548471424629205900659961944726582194614902042394377360275723490733366338795313483782137334447645018348349856738166391583852045646224038825977901478729711064958535370216794659916429249495952374552040938679055559058372734468051641748461180503866951450058348399830367475906088789473043992126747722573681595059327719834806336047389950221194509810716860770865570977129437526600016303125500287518415986510716683238074877498252180838684989272238970633913386344787011495245623835726866034007458616963508503401169424951364188703535130972510933779265841548901911239865147234756938431388447308993353004019204036441650696832192994033896274634170050800558154440285298410542823866675991015808074051238870312423175659073067808243216712936003907987293953791502701700055032224523404098637925398928773654484218643479245675912731500409712491285536273462556817584033975006982037770217055820234012182888567208712225321264208778436164082711239417782110368100783907008572173751362415387171695850337743232307633579727626130419478631664631889281806615844618333630876781364457341321005005937671526855087238274149042935175917567862956691670556660555908136541410817052634248875160614858679778085055312423944194014575227513451270885740194203215582721144294372699298502439128724249212293227523026135487718412092850890958714554068029319947448023257630193035413188271225031063379382742387747623991828311354331510375954353890400258712032588148319444058697908082560551709991554649853330758878283487309084942070024695978336199697198084779656879170893151717966240030350372902718086818885694251520872288327630800660025084612349347656822789708037627937145741765163529988158393314762392736866778601266243892889051091687714436376750990607048366570973238901201451220926841460761045086995545174631453299876510409129309640592249177903759278110530032126722230397624229592028830753600943925563973867818017514965868384899639202879951280825778694387986721623622539765410902640110021156380770007485726262735462328054970254541469217942801365337510273362497942526955880279595316631060522675732668383833450105659039844695953738193219615564548293451400943373901358346458872059900692483956009566647575906676661317899834378748081633946587954330020436108381887922019169737008328943602015482411734318488738152944785411732402207652338825688113337147159220647803782803481863537083136149851311716077636550493274921394010828142753398077479492496992275306764801189234076720458061418451043344892071618982929107367620225042464132680317632752585888195671434092037659896315491554758916678992953128035504139549954886326226083037861978731202874969632909470864873691096784692708293036737625818955248302394893166081760612662058793857949648873803021873312714566970057959770046494854771708646996294369147166842953174172045053836325425608169685768769332270301350999811641839119162338443784696089584570546650256476806340088219897206743035726589086027643052113749914274610426098397241791050161867473140619541363037679482669141385276637322964848676522654132752670666374280179104030954153005568563121728881322121750748817406175129577896489557608832423588661019294199191346038710641340331531079922847942971745229490930606505048665242614174051482827790948424935091141168811877729820418350479234391126941233858312050334530787123155280032715898488488200699900755258003111640854023326475295163697918473210506296252504783727685349956109339352301756876026329918348837184728873114161818816005771534172556776514791101680440207667272075923602909575431316652197529799296119149801975259670686886879388733760354155068556957650905362443996413013860806580158313538768497163008500669209002053168353697015564556645325638689394879180980128994399058840277242810253501744791674428088563979370504169842022285016259143030238931190619059969346092118192346963694820721439504313532034873929263095048189897862130704639343946236972731365897036799159302983520583139123564820011074940706072238621968119928381216391276168070038609701923513875151072260316789373661361133257555851961003720578293131899705618838362746631417353822350220191601820180215252841645195388216122151945789748466748542260586376567285835969752062566621879546952808607134185961498330173251079730323177942745221884094625415083397672270434827876949426567568532544769180763558892799399619457016701743956844913548188305280935895246477735771574567638928202693283899971452111976985830567773814810307348696330504291354678774117763046629187534163244586358094203532957089842435613034338242979119558237637957343191271308112913693550180025032646091194029509513028018195397464517529562595818190646859273714391959799860888290996073380786059377675941367304443381109646776561035332605724597559556487350898460714181614285958237052722118963275626224574354102700147513138569246258279144334189109684221806356620843416632560646204117863300817685509959347162511873408779851896640710210040658566916362967206619599146794899810999639493965475722391477800847611052138312748488947666551696385900689937957356270290610686829534235845713278446971404321779913535274725717415679878325075093314853148114102070164124407135902809125264536401667073864306657532974566757917298508854637480272410691126437469190552531971239474088662539392949289341493916246651739671727994962628565596541896323634670948031695514667384062647734198274932955411805744937521417728712679286799162160651848186239429286568006101691973975247277571948961857722034888226600815464778780497470892141729589685075018228779212967639165214012227346882041619744695083755038004333694575238455606651204651178352280166962227926578626909514209763433148086283664176737505703331419805001653591331605367293590925724222105310098383493761205759826172784177599095733595874770538504592250725680891971247106639097733540666762076324269919896287238663874104323387278066809266531800296964841297599001216732284990791540014668650062020909014052745336408304736511355134717340992391509743494171288716643756386038420621979180733833825547699201514543370246060471070763573548520677555162691130173985334856854585092494698094820164639762961713987610389799861613611817857973735609175799334487549390479410508888811415372744680903397119889182610963606112223904171950683381145799307421968745194576649187909873328849595769950235822805891207697762904217327141040676126290610572805863322476638929498367160145482057381619003662178693810266629426358374432674595672996268497454598940912034277322650309205722329495437518379375925063361049750619031510407595036670419954865954709273845094132925967448411068400011001414126335434312105767528424748881233520618669368226871335723154684951685225358919492083799133517664384847176366729245017727113515009059035225094664605323321434169113255109010370816859614974418882248452392619273011189144058621588176078610589682119970613900578397578991705541196274231605223605161544110541320126612801044619122616014853332968816135821576716474190580917824093914176080473324210623580301265475832379343119649344458555329589911170420966549198171497966003465476742398015311049763561233996495258563950475802520933508197951094895061229143572316965610106727813649584609195844870567687544643166519926703569438208086555637193159836334679055220184643645641216694343225775905658778129624750857047396050665957766328596427132487397806812167859867497591393794669397000556842306900981091876538134282237805734166382516452842222289779150034192401594066460578835536497668430929761502810284110560589716596946103929412345350630584224737006233004074730159228620715580194257226434244276003039769446021015765460814734396170649287662548339308393767861910464001233476841459065945635575721943173900816344111435959744391766090688577052634862197651365452044091350568973338683044698385973639739645586327326427010383564090083600187370512719468880955975894647004229665654295651320570768095727473025254819851222184088570525569986128326840274768922097912223935975499393574331700586746730850692576425407235350732012813812649808516330144809656127638295117738376260988155078030335073597979168271319121804517695553744062815335100284034034861199340116488333833527630889321542924694060383952625991019394227972047094038120300945693282678615812017439362756558852923040433360532944517351963361057195185993097418128315584579425372908690196844795308611228453286036121906395032583696768245889438941853830643143683646492440489382485245628044330758597370371675574687421420853857036367846120570479648197306828170518324026402852913633076896925477354352560316136605567738692870512964027148595778647663383599120042302510582951615441533538079782204569640636252916407083154490199212742673493194318650391330963535255524258515755669796466656458974839896750274313664788439333448545384600990732866543560949672843928948197529471661635509935370175250754030412500798745857337747157261985902826064078826171595882225506930972728391044601518693198445712207326891991517726750917444604450516076088565842679374283275895771836449081221198835976489121017393503078630384303043468758709607507822012803661457687154678870948520279561096596728049983560245485679072573749151231115385540978386092983472407250788684769332228557940887893260958868304701870618261703688821487200798511323468328300762730728062983744087549706391835015208970374749227276854280875009837099863097025704636286556322032086765562726759857913926802797880028192232556456975236718302018149434233691995595581260454702154289020677382306518220256683078735813986627944986283374847744099933121345859758165808035957597113116542559412124022611499812163504506749454493812782735128760785495607317568578701647715957882770809634840156331778608748362982909013102263731868280573348502963364152786078892561339305186919444782580537940063808331166231865011744713487191025705184237419046345360742074819638431813373006901104569581715017702966307697358555911753121970469128175092032692034949707635031021454168933297401090895512011292242769758905388234909514175002145450303673861491718845457395879801062091124587116602365083518075003862492036363272112960060761836220136134926427030701543506220084011239123301250748779999087212983522709272067281788581312878864652906129760293488269794729172200821918103689186115673439636186301632476506954522048756019793780545146302891322300720555383639826888950442394605451828198850208866625642303883286325406108719022749089123437532865578384738246260449768148456311103690530587769205123373563626406212894692643698952494206670183473039062903911051958925688166892151090010667308448616525635973147650110662260540381110944389181497683409152850462902070701545112637018176294839394173790830744950325268811828692578309063495204995133084652969603201578758023225382517909845979856191166959780102182827492929753837957202038084996372628485949629580353130572721141321199095213728708898092060131245352461803113655624402748781318289630547989332692687491640508596723686618616655123475907902982528445751791742928628244152814489379335504912967841601882558290210703064979756682112746264669164034578054626453012645995118821350150901890956004396484789005211492976974737294609222256843519014447953538538814980995230060208268911850020054209826386016448983996855856955747170609491792620391556096570162901247208250907606488129280052987597963894113001168577552706764559693785730902956049492464090563320272861401857504972839268717268175646241798324913758396822847541208732612215457079812628810266884342437073823353251585809222399380567367613978282864430683792544682405439240360979257715464228823796666772781624711794102485135783981636967650180717650655285249125423709257075371874380098155497672755847800887182667396752535097836372637671184329649563747696705599868579860349060279880467369427100647018884859407928214886744039138368656268923464749428934003118231449709775009589194269894283342073963265722998853534971503346212608242390049723793528353130913092767675452357350232801902014952598053535400296458590371352568054116742982853963336622720741940152773872839001571285496948072445893158916544188957280520086558247344861776104419986833381506182488369837495227584038958345747905735305775391525505490609381602519910934233413417859607229247702655710773549829148458377877696719305861001801343557778593982823303454596235998763704649790719850422977555990398929726306758414335903956949844603564501536483064455917103924657045823143578534864865929843628452412052089440030574696025308636187689242488443954723920325157263319721800173018035785789016740600791660462072859176287779823174732136764392904861313373566109979575075728598944170966821332770748713830898853703621734866174343548850466441533191524886141247094537088222369315038471571558783986523610018766296039563820429685842082372935871309856931924216616123580084081694146009310541994213985472337499958129591146348011085140040122088991457459735010825505238742370330468652844108840094710078236366832922487165619340886012325602240544662069306768534969634104479772344710062463476593975839870094904757224633392513294159835143493765331500200971937015980435177064840132782439513245417049523204113411240952636136932717627008371760239347153882539906569526212882718807552337687659639036120190753449620337684066915720274173590593019565343328901493986707052323610808289521137375543097207382991556021684239378432074198271421588211598461472045460026844237318596851774136388089855640400284079565593592375471447596308263184176446564810248303648652985034181952881666207613559331190048032768825904739948985838735525412329648174081792034473195833997584791745019914439842962567577573393104969294298976134109923938592639476255152035135786245869554770710759472502344152161905414355533764981229416889364575230338200574732341823816258624573288627404673026021362783580043858955471570843421887101040380199506938216701168277216910067296214006438169899465664880994747913304903710751794953110962339433722800832919664054799711397657004773937282580200215844542169599237438297606475927231593836433346894760554750446306116840674431242452332621569649304411247200457775840581386607877155097114076476205918033233467057072569769298008522184398657580609870192601801700437203897175527759827110831670922794301843330143837699307287184405593867779924204045417547345018537283839365953406862433256707762902863257885646051783448495408071530185874122562727358096699575129918960175256915969785023155917481904015781979247254773407824121663014543658947222234185696824071493677320102315768056439244080269065440359749648775512463674619634527743152081772970108828283991528508234460114915758111697068880506365670394991991277259697799606538315085071321420250528996659818286965838330537182578980111768653211941518880585478176435561523673452642691076506067870390505112972726422411858735535876552699821826193354321174761724076255086893183109812883317720669005085553115264226566424588206178022274373987959322267708953932726193099044168901037265599995768331460684543031638185339527118312465132440669824988175782316294015291340511731857895232147707525764832634248869514320476582310060453770664899534019959129850854141032245452794568210677089396330149796094786011014545829193254506858589420710127850265239508235793751010226926237039762621734024709600537277198798726195068658611873647746166844350161971981051935705444577409066051614892939194012883706899940892570086847417084492889979470040252867347150551257631300850526542942108677622756267254964043465944797145343149474156712949241030968255322297842572056158893708263442109146450442174584364274302014714054420310691884225623503971040100849892480006982201575173424814798064295705985881722383834263509992552450097467135152680421316910823715598452129413304233732714027736324597208832655531894967710026247314550062156864904836605745412898679103799235055217393701057110690403708620443478815360909658601816201632822898618243315724694717820089454746685869449596335758023471870406162600617973060583287864337022152483272232687084742662557636307815925150313504467316975335779003002952506122752231722259448635386168689737168568035160739746316878678409677281267499400608143586781280277526217620353774065102857298406576240977270164129002604022456044478468836286649594909482051631001420867226732934756067622125083268344470795448496283313619752732807735818710216132479791007414266615649675087117577576708398886895227621424125738983763953919753429040927603644459255592101122591928176853758649050766500152741990039423821558180074409539541474580043545134522085127155920875251677203749837021959548640053298634036092845335823165169969508659528781870806231877590302529640705900192330624746392063445661586578518908127802324522296425733242963467773034977735948800953807235148667637187782023610198345131511223745267276375664507098813863875537170202915995700369283334354083862361736052790460854969179629373158131128845058779410375668165317435254354999622873716023032995047279789772175345606966037006463682146221319417015690345956257169891693522112634855350275323250371052552110929847178313520039910830745993265500904820677818334286492816994673692373553055397925555786763418508858790321265055085153161149055669239820314204911126908336475126932636641259171698678815840447805453843853541671226615136862365509787767695010521356991249235006218239294778349278088754125553289428101115064124783170858249767270276654794180656325698544128455110117289345632213326514255471706118363413941929940342853757278746489993002151941738218633129303032639836529377027281770078999087788691864927208725308355713713593763973885566764024424073213137789946531826811546704739173131417290875927928172505146955109329254288048406979478157058245804455091588376789123497268385335642393252748733211318750684408617068315119440684152557134523639115504773370517220328559376089645531411992142329206184607518364975780207901369516826853927303838763033939563087516573638924555151481688163322893632648815697066251109875026043372234124716755521278404669598760195842383710287846672040784134734887012364299319015243577762979291550113144978076531137162339670613095926847089448247159658258014246326369957413845020326259846173738770614591180305421662977421907062628074523630736036376716329964289834141127017073991255709253035848735148094870111138761479335172239967608372247448312027787051258205369483144459324793991091930371720673658018072868274650724839793720942106177254922878974814424268075755906152553318005016026087710862251513507097285268638135031868681734353535132041183654341521600941801583098791813478837754541990658565172612598005085527659128702275733520323328039687919488659767558882658201022670696121244796302061965071384635332240225432470477375758614611918513115847802993046962850431708306556464832171046037760601499018283187008356666505508058500766967280991900355743645662842515465631517111723057187178242196947257834788813036910394043857762288003692320778406527706570258607444819501235182819580053481328993288447130374274007601078661475908551572329505165268147526059589834983185083253325553155623315385566682970547519214907260220238003085900016739417164757430629668659072207991886147435466359597210756523545963569239206723480866063456178483593355026897113725001588981862804102428690705454597236227890385081207174609205020168687622643628309031950027342418258126437460733572326303988385001291471779123411760655994694647670546946757827438940434289518014418121161440450861779296618817520722526741386906488242711433713105472449215634878751103877422082747593420370435242223927183128858598656049481812404520854733415945070454041010024306558478457390077369611591672056245697632841314938681393026892997249628827464446479244278501883819951331581852267175519586645889185573637345814120019795989823896199459429825138701362031198067968951428585014823729037522563093925208052345290438964486548631617693405788060766965470760123043632127136937597531949632722091197556886156453341172135033179532467073698824679637945236264171095661235665041327903368406139953328913083653400168504906099175137637008959716310275325162080562351392185598677523048384068157030779995549669475251058480270117777475706001508820925957367312095977842402892706222058350016851896539566221630669409008198714504993251821599260579142180646282004510216951913115964791819846797354201763965519917101708915453122403063634037027902791753089534468129911920367751766526195807884656274850968340544958202961777063506485145273801514409044434150902727223046996144801926665027950241029180036118330046637944173786323301258466999108438522593753552257438379776106047089707317930253578249028418831073146119325783900097435196947851171738734331253501589373367989161107453400288296648340768988516421698592010438657268683503955256308378309019367101745779509742163324433354864554564450231395485663842987837014714431130878108305897531342901065891890289017039923254560677503798120872932499385628177109851243434598964653127869321558823060509894832468092961572193527195524093503650808976903061620604556383125075218428335258410402949255077481228902230405334426157995659380840322981198089366403631225348823830786658311409641335747262785643698497049817991649178302427056748413769645750280702673646046100808519548799227934935750044488907152397903452417006463244777702404065690257422045204700176904739779679663398535521706552801869827100712305951195929880875853413212070413971921780768882461740793298276836155404513580727453606166977579648979718042262061683096122135293933040652425569148603759268961221122000790562275180883283926150614211736861126526334037719953793403069590248875482144640389716582087296806498596158790098871300142623051521504903642677889337459822994636993587049135550634321496126576747771884942577403488836818046584157415363854589264899736018726393303246545597351226879606599993454398238530545062240923369821213244701902484531008008155634174077806938843303266214441105533498100014443244465351083891333114496321835630046110859761001470759549133301212519898190029191010802393507257447685121674331208220000748036004032163503783579983082581705816699785045960412204656650555645107439030033680915309701881834899391296857687848706802768812544263222118937280182635974664235066801627124872550190466849633364682555660650193629178427713640719346627801827640598160300424260796864214829286164379629263607142809880009944762000537406557373039153158668830701524415753541807999619534486973587232156646072783431767135870622945666602290547742628617333961075576340423841554609999801285942949967369828292435269268554290800804480307840845497904814380308616405493856945031814928289010438025684712111708723736227073411411282085431930654614253382386642366557970994743253671254534626012667567598441498451605212575535122934397863640481007692941164742951286896226412928123662216077885247062061923502375183559428045122299855188840088221919320621155393146700051657186010179869494566787566938083418802597022341506365235943278180249297682271552118058321724001817687316128411470290347481144614432628292775590082998548473349211598420739318014430911623943785122112939299635346999843378967142646089220569430724963547520987246735251751875643697921207429896615651098717373107704809614023250967848702424084440631761778305353816935567748551419740618690107649569613895778038077190179592315934206636369069680455052550205386951995297188090353493052140229661969737859164297985994819078787437179591997740557774180064601169512504722429963521962934973301770296301977775874920826223821484133017888303999728893089854644516901540750861056750059403246635815730297816225476957208205791010039053762234250138481952889155733357023031773866524672542973622554481805076522639963706363274610708893404022076476433997753592957286973101962882143975230139845432002615178001175732006350252376646688536536198839602457105281366538630061977149506664887114770082512268295061311948718649260911371017302715805934703342980375734017353779114241196871236043392099260391259030441027133315315018559539720802987030132067380935056793732017962591488755125041872819826346739545618836504206276837726774467048068543566930739732014421350895648620870178964560066587622773756564560071014478547191685802674616310199122932952595939949120377181343119412963099873654138343680229455033667139347217321702722905871906359569031726881931452360774758580733856893053905605076306450663855083230822346147219013519354631500101528088064395868616663066587659744309174399265523065531544674199197398380529738381502025751044528456145661300503313131395712430142748007006629172958255697033219782605394973893772195382803039001606300904442222008591242284008896804895042881812437778397243317969551337887568324627674327016051731225123555653446318642224414288532309232395612697458712170724245449196241328167084540616454455804390173408105108046890096083428772832542324899034848645298942976550584340063371932002557276900936969098610836930964017767493073987967028494818034637117381198800731937592002897917094306226853631974095378299764152111517230416238279419923515255176242188019210106082430180642285711999635843875921643598597241860159210605320980441842472148838219066085758598395660563705867333819332278278870079574786574760425515956465344583604149598465962152033380225476193392490250872105835433069540225838659505832074105613583943291457996250130602255239300839840625440221594616611486244433663602364181662711660063383871867150617161432324086419766873117235001108652065490306621331021443049909031975653941926469575775675390358621960015285552587163106854612408678590283159127267359974125674242407666869063352164105492422139033855266197881587377064465970559408310180393572310069323149042755139073838986740018680907373844558706369732110755570628775177228059601746896152522916612337686721821536230460431272032461307924797031088858815238180034989777368714389155839728433840954854832682638955219087426556146297273395155682200260115474539189037689724519270716253021839509751893335499597176931594850402178634188344908167631112955231624636668754805774072327015789091377858056348110674379638057908226812254594878426395217669968866939455981425271865216772973846309927826824939341335516250244309224862199653005490145846205326430228488734603711080883118665386874514303991180726096676673280806845882437114701040409641640735276560784777807129731655204292182542040739388014976368893328819784236287473772940816593282362284070463980946201597821084512979611861944043686016426363279752820358796923335685941957566549562294304068831046952532174231266880308188093955719953154794540578157610623013856010476444942093562620791099302179928481144779848125401127577298873984395909599014517735559382732482529342769986120800813722639236138269007899335733533215716255761103162031103395371051997910999013138605235576023359818120782667759361017421514047045447553275815850328668616649593337208416998142353768869215414013417052644189821170119098638220796253111739795423446138688735513378759743041677447695793743052916275328346727720745229145673842561249680452402474059650498089235373443002810973239142969448243699615948312349738478176001903253270056344907941989348944054407833965275753749889192849201114124022988957041441307175261136314882536417058378188056309991660919489658913626897625823355371066475551671640275368852501766575948313647051884709264738600915129814956706238250808797629350227651634360628266212968862272417336362860983353103866209372088145074977945829934321634398784815033022502325589932080084706880772670915463934235664184584584201647772164948991804971327240723585296888142992888686225984225625983233742364387351339124470651699708255114520964012843775840908594656353981859397096186627678660065428744342992106677157351213824157216331390641481792652485105204930539415666000121756581724661314427090770940871323907257314304605762494644399666776922620404419625443709778337787423325269463448178977653613067192302766519361419098500121381355419602097081319837458119062737978643327254847734075996344066118692731296597994072410724770343798826427482703399352690905708395063780952846487537629528705124144844530244604081714016811440030053522972772459060693837556486982221079120870531913057429508443110564635937761389671404488549407720586797928323150619142920077086431772012276300544496512646812309993053844354972503144719454332551561805046338673077694951855481405100406040658528020083499631189502142658589897624170886884547693855876261347388316708103373010233335556387286636562203569912451727516908712926165548567562838116738682932634109665636815209251024251898217500374278106536362819719271250731480971616822114827827164279959662038093158666246732755634228330275216940585534819641772774559889367323632217042252939453541937546593971932946907563094096585299168390909328099600314390550967332752069271709292361221539797371784111007364982048583840044663336099987666980791580055577871280087275946227718591128276634159902046140984142650878216151276739145565475771943802741833708099479849083896226426118441202778564921825855155044227982601382547677227122351077351281092678479944176584570996692171219873916802201080517193762328696517664927073304935362356722722249919447503834680765520943652393048754888963863610957129703103834299171324901514990707032842803930038805755692943384583733934164995150272300926443457012386561638313692443666627785417973960678615350324818314749760015123044657198968358689911905696910247998728665665122163086299332471968262487121801739616455433696436119808567364647804207122026554942530892319348019864484537192123214677974291599597356976202597446421987824471097360586592108272497501108743189289954299589838147499323678873876944985449745086366096497171859687293203374585493893969773871045776300068298266405502566230985043670878921922822254300696627867911246971638552850493593614028720630494785340555192112371921456342483892019943260515016221183248708060926967948595301106714138704637349866740325036755008839713163183347385532343197746178310899200364882218985913811077573689061254629445749020441179357407391281853062980236835411432995888967483357476613978787182247659186368160950200797861469684371886372797588007363215445828676992941075685351570740987168833854135584074519395977754890936290917757232265543630708040796746604525874870168036320038810022419922385877179767122699251470606604861933458406771083340584624145466754441468291788863731009502711102159748362984541767033451503130906476597524349781779654486952249595744438357355730470499202275001736140994895682380766091860421471836374253196437368345857628152594865379682086954824251599383493201657759638937849593709763583645700943810078646234882678623206518889648421954638187433871945558100131540462194084607735451392208973945420552655706319942274865762902970995559207830559213637746526325126057721581712534615960510648471296523713380195078407298232700662739079131889654717591328198314520554330125537282002274930062629891572919743685510684454799488986210480038481781779050449568644848414549702559300496932470458208155286887087152773047327778569698265743092834134951074652138163735581038276490504891320702364615462447467465776080384854800319867043155126162840175407971537781343399387806677471363182624791503422729777957595364926760693783369489721281515651749898349671170445309511373402519299937120400534492338318953083155543691879645708493410490922972435453362586314458324625675970972367349821798740900154504815587736479871102369793459502148972491190247542501137594017502205942772725404301019560820344864610365579697023213011007247254021234536586628817604159161298680294957380398486438263456753613029296261094201242640299472105004213562898806191524340918852502172210223415311346211413190057843096768494085054427914901733830247657288085976801066834670871193445526556486202108313069859689987129232655367248888502542247767050590692349692933045751082158133057716089231696314211955906792177860718013391881918425356953387269243961619521748796084180540931973284460379254745535357933119451531830177563412659159443052543443871474323073030560855943010292357768931590250035946038074802347680102131034290499398368598301862924302518646037717399086510784532934368330422772312407155945440070069635269436244466359724906385911418486469523239516541342244320293616165671459758892200216398036878962149748317144625564926492527634942690025675346923882830624896294111451239459230596359225021672311223703721144979425881799944545240901019219710180306602886122193828564963357746359675541853156339569618815355178676229473164916858478080493446050776866732901080114768760517933355982427508037088796275004520032403435979484705615899383954180482401194172992100104194249622859435336816685760614678367248485751037335901676793388045746479960864182361002125063155526734079947607428343138829337670096123262165735002292387785026135699452675007198730392978721929925370937569172931724448225073772889024591222003584311642980981636700104155924120378277436250453052908061846526280462520763109187424465325033314549347208984784715761244463346690173943641393783362425437015400623742048859839615187208872226789257596406872020368163438415880801194187788057917187970896452688063094891032225184405371608114256810590742234701775278472451173733848942467838375289026994597254351340625987814263890292171989776950510437127002354718623387509784997490895805287243901096945853424803052766040633526957013152209481916862167232788578942287619311805752285849372871121014529717134178444529319510592656778539072189808006405172782599229252122267564962082186332870438820680134748931384273920879190154744542459015024985421100423450470506868647365777636013842823622222465185518267379985777631362916689200486543897675439807040856635899735941138314171118266330621909742987326652954515043712530242335318165445892807303113199838749314099455167028915681669540986662375821149688683926107086694470983288251951354807311137670140254132678079864955545844556926077690204123861227354847884414602777881327052193754502984394231663830803610365996478872616782699650988952465732402797574015544803568111246797463365664673538990238127627389684435492150611448241699872265082329392752017289183136250470263629293101100672775020772873947631853293115338804868583135550458101470120470323441079509982376454182352741831641954772458846540007759989456853093317699092093767578289176579560431528076780966655029180365685226913103612406805408495853683356926151171498370102252818228854502442854560367002993525361881656890614566704676283686013623891915765145875087744234113449843745392107553393881003864719087781736640196394659964698587633490922763075277397926238544699649199968055412774689009014225292932812697580050236796000049956168898712648111384859249199770968191066131607147183127067592099418851822639605029920982146869876208062672421688489640727152489601652954488463922963678750760055206926637205049379234480018123571028550386976219475424682577544624448718343820425318005303275351668810988272620978751257329722252632074257212623891525347675007479938387069179228934633905522574724451992236293789087867362636052578559049221897016023378640617007666216923845341048638874653055251257447934507520435839593505298724828911655506889971343094844420444083546918448999264887649239634458460622935998313311442386103519471394846332994445417022986354560686368834593197141806788779728427913679175823524369565725873490888413865338468783813068741130222508099950201481643931591276076232332717105145083263644132987608348531451789985519142936807210707685855318487344440924133644982253146170708115213812850471509809520902939347729525435537431373118117504638571433457157790627491545212309986997003892585939197197083715007670866523455974084525972613588745784331464579616042007996459998378665677887490488487874562267576313014763479766717012702326002783812333458775914153511516178573750588390731838126016044670137340850156634691532791296190411117946743781522962552863993680056792144762504296274052973193787673175976655639725921517324405597661151009304803618567796957959925033531323242222941802245695437528331794913156753387244007971962776599431932594348353860637353422691062934192945068939800937894024921419039908764535965798887259806952625107680845132744542415228679911151837577857892131136427463362881928704717190972860090981149536804648415791715696255436548680468196436590111381410502476798581567267762923497343109566965837545603025994465423027538696450871290778662890375575107088737518201194125186370890921908392669074283772846155637156240195711991732061085385935204801337080836614598920173024284753477968859438076706595113666523373867760034428194840392103405135062477796837568692798404740190518139357590999530660398262325730185600983677346036426237988390012218222863380486689116754505633483839076626077683782253443324875188889165742928390309828556083648286698014862504033388793803148483058394708170779684044740820097167578056262360539001387381124383096452120012356781501276200291588821477843889990230871990622001760360463255979207638639044648817762624327711287532394160413049755728593488062763735894836890230877444794403080636454139935642668312285495815584186919764560049116768079509816089496200248640379401883090461956713743072105613157229732261653802876619264058261547242693220792139117722998338563265269871217759050473086837575923613569360543503070650920742963125340512695307685334816682763534036884176599287361562214287406016772729616789820818651595196664813021135762140120650898378034067178335022158699877562858189002931582879735685131886055492341621427448165203548716313827077684471642502362920589096202446434402097816592725844577725538009574373760421769382663328843198522986232186117645306788159423074579092595632299367143553658309383196158149828680324738852509556292100450426149852044509866731046061672402017128295904983757062814749738809415186956375093831677115479857616682738816976299232147526363428666986826705348392541628494696408009514331211878843453793814638005959952299093446935449577280238023795208832926157486685912494730651121272034884839900396101486103474879088920102939557656357542940776381365894388810984591385488008109799222363340291067541918616719750634857089525911353846812371193555128767438238464765331163363226259511407406449327310669874992822925939614852185224850066665449390136045676850134519857825757657421899152873552316672925555635006699890929834714666194254186432958637825588492971275987131599309912658599506031627570493509274128206228688299498399780539785064981612140959723833587159948613171891515400923355170299498882546587582710853344492888374017131025086093628562903787319314463370924691034281982427158096200655259625337696146964930239090485732717329063576816207032038039468703392269970789174313693721852859824929316960494075767423359661018073031932795704574956360817044486867510481806739415857116974699317584613590908648111979369463251414973130820586426476325789444852973989695156985611326298759243355621174496188332221172868726452040229126510065405090632374839866997938781024878426579161410281757223927638748632023459436956480365947922072481789373653643053569417267316474410060452973473051259172843032138581341296867442406352417038489592031826627561791307073568906680864191671375407781003838467406067403895173367782030248498709061608592735514714715750194777909189263660150025135441145020342571742918900691061582696618661230427837457575324906869278799703246353551079784214858016968477237742391105865526492471696915021692577059717511721959073089154824722890642337569414186750605554327844295645061354363416164095511255686686366867318988993011566452264819220209590088852902971103269886175865648825770906113807289545854468143663708853281786147324252573338495233736221827173435034064228339724858057772694372954872488276439382363863558528286327421730038688167887975969364324497835565765850359815895630175456578873223804633715977910765813176776692435131115789130074182839214510608198340022290946890749036206796388008131791208073777794954827077945210469896097392083501137897511931078450281966894876120309349997211561256809393170057836806085754833917483915187760539185964736898820998704417853884303036750884275528098795777713905816590745691234921365461006595802498132428857959883295354869545473164495819251534406193666304084946709166793042756320618610325259479851928340183557368060126174123011832569881320677173730732527392958370106138753761442086687148689079813106584524914328094526474742743206935713324257721977908588459630992138177900623572838334425466957808305944349856690901561477113827227976475111866187411738576432107535032578824067107198369345149180872508620129447201956918958548168567906626294220497126650322582246516956739043715428679490419231678499036651833355503598957243727241598285540198276180795135418953019413075577205683380868940563801772214288443651208929346346958640241643334726142076097496720537179339570347866325828505589512350605292537901496645234958708923166866026375735432317013718233511396484597440761514179387625916417151140174654804290033911410798953845329262233826974490465453883450791303898303927805659381330398695713703927524703442357039946384553037754819959132409164555933700783129187617861706947757099307445933697879937616221866591441951527195131909691352667747524032878735823947183379532621260056111271783548554268454894875238042328058752322591233484476119136292546399251129596513864194521647301793468412325847228370989736159402025895241088300238150968814883032303147973068522684455220873892546113440845288810714960565836526895685152179805272700382606387900647580783501409387642997899598611529912229188900637149999910952546223359772731859510211712010421463987930558740004475163358564684936763706858818735038989945942822286263262310033926990536711601715999163944073598829636983535967831852428409324922037075128065718617607432354485298335924132755271735670167880376215040257500842998312501026325068322885793245480843750364424004885448972530998171487944959080335738151784643424784220994600487441792763278820427823312500459917963568371321642164512740780921626515093852357747489006689330724839563319122334360715151077972231264684105660918598955154368391711315973712246386574897302176112117925910787428963443817387129865554990520478741276670967428574508454877059065591366938352018694642281447133334672521734127767579163335169002278687250960031422240844104127833827213684986514750550575633873109313289486235235342526965689364170693444645614196352618330869726081525117651486302728879857878576300459849477149663322086650005477182428864641054301689741219253716461978498819467657122284261049236212929684330826431231661558804671516737307372594097738852132577209471271851241016123255766539540793231174763508323142277038394761559477393601685419620750071999724870068901079811186146333618729910616934243647279030944744119283065868609376430680148580492970878258879543908640529050193855685080790643061859598619928351162354690423675550145863151015370088426350297405959904221661664797070836299894389894805457495773706313888702101005176966182130742715320519219448888619025240007966848995909955754145448651945258398666373298692786723226151809756224496177787853953919158338375982466180819347202691891181736432554713056916401291932016409464660965132568044615836210704106580969407688397591964903286730009926366471927615136902173818798318051603616701466767280868344126547650466592834061489669228584500826988343353121039037579563555074778376721987181347813106786933847461960302167307167476393567796792684284146645657273479043355186616148198592806202627140353888917565587839130687743163616369309862345132856477424451798209139874825215222080057975478339576448583175391752892261095601843245240843784864381525757635006234471070908284870724543099650042588775674862733322307264169445401567625791463574016340877402372716847923081494432381124306189970019951554611777301897237979858495796319294396943780353167562495102726037444126104473934026934637170669815264572952923584915717243029315344334815477658766342360421747040438618607039001789521363047045778613382327299333271236611569826674722079832842119383984874755300344005899307844210632029850659515244792307521041212430081807408700847083554780536153343887614545643985037772165016589405918266756795489634461266142170723445693924121208752284991190160613933202708713344898233588647706655955064197119874231334534044902373466070701435982115402297973423591116691438582427947032579462908711555722944862231113673676663249809022896076521637182703894378866749465800086153410126322182706743989218282952701739242258887066634587373551894721286119694223195390236705515571715321801081273372832933989931276558063449446638528989232640977466088520493470985360955530217636863583915627543146233942138411633729099985029346168710930311055542056461808327886953131680754479485141292714179493174590207752437256753729806707420952665015770825953223012628129608225441760563430395650897119048179288526899568496806249319849125924028306856671431824083385046289579899182841280194721534634812787658280345948210857042829379078529006710404293236862043823247481473301332025945856193370959525255152402739841803754187491567128413093171891175131644032284474169681124180717865593669900181066268956544346716492643991397702770261753818868212436710635312760671896807711779578039885626186862632562646687055471615354209029813309805456722691904817131862240806885771941835216231514956432650291255811200268351258824783156721952017052653596780012412475586649508546652143743395081292744774203218146762615961439962765076901396288131868531139573479972890097365979290504425178506720109733852883249026556057996068797454248373131002653807132403968622071960419631347199866546518587252540908731006082816980690154133186515398379955776494070292352097647990962616595814003227269385162112959257048556179220907439532945400957354322708750186006887830303616085658310451541724528098110397250552918192491161970160766818136049156987534560069198825120212320447012031429248895433423544813706519139984282116036882163376667545608679130353335807143679219477420991840357001996297778637261961982486145803382292740973175048575383835345896975743841310197648647293407013258250916436606516537444816312612481414545516689759385538926984364443833863013269336239539271995058120032870496608188358485599040712232453096407605986887907293212809414965488156613706951792832222792266410355109948398138162284433063666316673598807378621969440396192415800525209455040602582272596118956199527762225026213062529818720932847335900963988518321522226662209695785938771551210649887813530085386211816751048029414196306662933053823422331755568278307024531059795027084744420935821447141985947147487584784017419161577495470242106717813422792213584464686109199674179222275548319790873854124817966396815540130471497502181590426445038395346822801875250674276906978375948648669343076768896933312225369102050859775057485733444828773842774314496855433583353783494268469394734899485810416437378792201317758821419020296223638910162800789677900376662465056954085245180656085928267087751348998188387330328196167577739090928436426472264590490274312067682979991638909137027924319916271129612612097320632822847923048919149120911036112929978155289200059595495611914973118960933502749558886040634184567465178804903840557186532213525505962860825267712083979075438117207788568775311605146118296853529155559236631160114203226145917258869290764579816601144238364079217571850800069528682451413990396004353502096569883478512097858398077138963462770024008746588745599573812422864895490460683882829593715065827548411228746788429153509668033426766707442410466465088763381145240450858364381889831097025282359055545317811961671559191735447617803412871575871327280341091496203312671808919425515440675123486796585893918003420346755345155162819799048365103605621346177236833579508597528888361252366538812211739560543655030678097782891615507953685868428421888941243730249422705586536847888598820540792716237030306777676294801270097861801674520168653837366236675892256855547573963866022027467355490871672585231405779887609388499860075054365231127463314078074678337884783781037848841891879510277338428329551862888550099127049670078261686409626760742942526675158168760000864189031016595113678774502606419387702956513411025278609101406778139602448432549942112382674148993673296408335771116637736845102197705190365523839554158228152675636364387679329488033959969920352859024621547821128205539960468753203388043894728330084856204492073876126082883787192368498274267102445353975178624796153241918684586566792782515914279272040935097428634907297727298913053361520615428824816258760080828681145801998946961369204277652591234895064261133505703225109756083324072178347257987736726930111658782087459531936848346606657845819000709341354615751474635022623864833518285134734653617734402296778910861055138127271205480497363380754245102121470187243897381494696920645476393033435418228498496563527340674563025618817379628392440857984999832617647757808906086233808602323814133301827688185920984913176688397145102781651609201380599577150431392486220698602288247181073406614379659792947922167685999480464698911477263499243711117677230120674876853840541145017536730929632445072949111264176499226529012267652820079260270662438843301030167915636591679494245571207194958178639746252579379983589969045963758273404252546438166830844613132816707845086556333047206899396432764644839850498643698854611786962018741648727941976224005905070523688015589894091626265233685070058746289092669261815833455817746581190852792973349232522292606564885351625277521095061165466222618331008834268667640531154070714791628786001191784487563257396473382709793267217315963057273885534945052000488167313208673980083696819376844609871477785198114488864941943051097522043140249502553557769304054504923549160714060987386307976752940675878547296874142588662787304427589044245985315612770338401545083855433955044854109369396037770056122076211318743122225899702776666110881947271342195751447559704400390852754330616934543363303163558589556400865837689929561178144326160467658549751045495741324502494148285951849685515409901628405144194864086637525671570201207700949211217674477446114456207214575665077178092679474965305510395489678858254765194729047927069280155473158926575923026740442869703770994928895375291096822507778399410136252295922978778441965777225712110134251112208041777979169385862134484879966891707994734137135366382544457562337502921926691685733801281427365154801957173808445387988848619005156432356037192580730219320512529894971840955387693250976283462491626282410891356524974870462620652609118154601254844386282538650166084619418197475297674832012376625120427221500577699816155683949257641946809888308255778816608910216851469585055319741458347464680725439240413702300935107510276274573379606272207343365413794920236230745969933992218465629905408805436598975785614315927001444180332771318999691794154756363497087558944292707495951890479296198766275335399413960737780875750619968627403113208440472711292108644596217990933551008062604466593608214278900555377977500022809783753474519772210459357416940019818260571430041007428545272908335822135854348618822439047691554255548261777319322621100312648330043978984989482199788708257836590480876303057533008107069774744040517482453511862763241350383355565369299690186797381030246107576110435369736011178830146174768156417675950019216977082303132055501159431578861781417347051692832286154581774401070536419808161770401368467305408498157015900673967272524841842416158158654606991931598402772965927341235847549615081224438774524093410191690246048441491734907933310752645353790649744066332234671083500032134497277932536714977576243854686822864276751516347477406164196269104102598114710026165483851910123385902657297743834289638213739420154799831626917416480936036541362583790631981119833255259834692550846094903429626936174992877036319610937598263623841454826851459573715839015831941515898448913584262594869443177891571551206715253883218027741716595824893157274285398351687051194265665503679767610605150021346763867340320087222115335870905228147973749727178579942243802339579522113685539445946194399177476680317879955275170193355828922894709350319566520770723766221776815893555892663806940011155370321981333236574209450747444779776378882537120625560645084211418529210961643818460407918815374842208514555346677704903258748776824699902897731276425456067012306192902407729186126151194167234674650532946371403210523204015070829224280565620170513426547446471427425176502476431077897968431868925920631811148322892144763734870933132069287050368078416709213077691202272692447750164506938407087338704992707952463106515367150418151501374706173913190673415553991487128063290794681695056070956719964512844888744694260572596870734641805833317066656235772529573342568107238897207631210395074361974219624026373244972923154762577727591771212532366542839940181826855282278638066910249031058720397285335597161397191398116399994821611997967032637263263171096618735379095641142874219884217764613871870092007477591041972881024224930390279775709300233051396698516531826215917584880885188583709198733418093388962025743831590730133219315442128474056539055072565145255507292624206357820390549207188802159043024997449749726315847725402988063407519868580522506866410200373398155935891408732183725402934939124738256987542945074339330231972962483973990993008994080320533252350617972274512332263439452928542741141390142898815944319261002019679849825942946240506899301302841665532271230083951202318319844176050438162606929396909750058943886007449000789537085224268825471066790200098804974456150811255906107372249241262345769782543646523454166665199560523713503559025421811692230058662021362410064240879172164723866562794674369462841780272798605227235239444157715987989511458642778429804373746728354672047918559531383331973745400909220106722779282670140316005507131236666370741899630792790247644434642344469698357162415268337418597352810729891861895656293053461326836486115053914205729354813452068253224471996436380109439094855172433033915005836167896780787450213190661900751537559730496930983566955814059690046604662242022621797826152791703478618141907472514737800897459592735790328247677935214667181862065095533395241098994756298050750702575870939518874692396809608271221527412393092816532765311767596246484714907360735227244662847320121011396818571845878441320617413532062877198306328772264983763031442117430585806725482833365703663423695787954061585302097572674708383041188631596164087686555641093750928216143099455226934746651453173247203522341922278696167416101354626381517545234752563486823124793845458049493407249199382967013201115081464648001125185470175142272114480778914378503666244977472572532937803852086943297976829235974950240387446918416986228919912013682874653644300496862002100995241651916921238317852646971351974511024014657105466778582107014541584013940175967763214905793425144989405114707378493781034382862563502652538219817737686145009179485397107548278407580732336141206956367327964330349564685337024517581972758812804530127987993549011276023800486678434894203277486604181878917343113127624664289940245059147612919825539612088331198299880091290147872983907609946434444832216373947386160305597085925128965023756426109278419201616036624507247524255431047967706720249998608699298774841309465127038117880804206088371599893958627365173874257585310666351154397985388581357812860117341725617630028289945805032708427692645454941828469633914282129324102665099022697018326360730248279580476043197953907204251261723775735502405078944571406061705244148937474980463755355471810551980298803614113940318171153429106205231999956056839005451384100024028018744824890487849992869613455147513755514174264349677188520742107553362298657995411163693547307680270656025411013959310867361820147344372965603815042100784036278349449314662266789839309725439636843484030733632282464097368612941214274217206938382776198163550666163271440293326889645968535689552974771060880536255164826011697655140171216888436222840945716617869058587969233272847835559505927312443657281991902109993824602151841750244929492853120881353606435882511014253149160062778220349325856664975463504445092638172760549495300127413865464190273928997851369838699251127199880854715996761050535420813348858681899047278013609639846536222458468230566229700459870907994455705750276911389190874024131622737372365372027429759973544566825988308698833112761191709425456308037467421247242640437062659743340608237893898251468136070251829829663961167176966500252003410131644107921328251218822496925160640350854717844532435290803452392154776888594599499910422302678959095180561762733804855858290359790304189243905287479185904745569111303728948369310065531531130017855229322878608264254108154282808357434196766598418178525842454908630983757210385534920795774962077005641188919929115766874618571522672958612301945259106292815320197420229024827849173565230788303797869832087998433407528485343115219708171317969751122200545936264378469693127772473931942119943831194143475054451130013626874970362159976225489967084817688511355297167249789753268624720691986285919061369319723747042257701592784597477154655008082570496624853758426964488821491027422309622210958079164189430137220371016094173301504987871304319337381867365196540289957207896520056069706140822252566772236010537621230205700667364247624050705293488479460746636032670936651786119723031882686351405835231790524269081592844767568044580321520335921000102134815987896388009199731645473165314920018078316784077263407854359213462687297505956951265239432666839733505508996103487208787227276688145123470354573900170121163445614165403248079156004066846384357723490863053576993709910326321284578743045201290923625651168150830488853991637642200719352795474228072045303984056596195571877972812953159346890435301543828212323472522583819443212368813235953365592352871038462759349764221203256532162952744207414715355206271734323077476370397422934616271981120177873656274451457931300722975731007024975609125814982914826446980936291982400319327201864500630637164508011341157365249795642407426507438928336755675306132908700594329881785743573283054916164725894732153565910325533144869027395324715677133751041111949003188490479049058719924648273807022964777617153366151965224209177742417214758440612184551896525525364756696650425870019431789169820873855479018680175911612318131561814290121496609775980778936105093042398062854185156033971312238958312277863933167254728230432935288713619614632831113085992080828254972565376040133547820440928070378298782538747595165734507456852489647872841012815976003306214158221967615275861502649815372809930260749365148202623366784235318674737851226425158503205998187497936688457145548738921638272734028882551902036813132203261124720222105175573903426865571140140847563261780142231183033973540355799959681149629644859126822389048004048386995253188397070931725493252372633052208830509468128842938104321179804309709569418023586991846426239838965933847187185086523268463752867482907868536454838746667745385571288068520743645526883804670747858830929215024753765570965037075805613774221159960916286724327542671026228144455253744062684375883923240354275861781241560575981429604232465122169273422130522008682740291863187803581929345592516995689855667538080229621241314190710693086031532339254737746470325298695496220950730842009442341029778698102656380194736076190885235549791573375561397390323005479449311147359275877285855820392310085409128534887292099902508564365332216112364133637691074880853595158724387462140790300740035171047255149218215422512638000299679380062147493047511833063489678283283000683766250048074827810675097042441347395009599558018391046254778039420872691314679426558357081942786436315786314785036185669221863162108720972660040843345586480579274123738987119721810743759507052963613474653454765500266050988486458892534899012180397082445678437280709088414567525649451168328877240022284554384687786297862365395079457297142280287754151517447855033543544928259381509028343051650176945131729593442298818745433448021637313010806690256950030086896490328414168644156476564192193032464164528017371584612220705876289070446505105081108649611384945186146236158316231559546327843702541461842843694179011578804257693541719731329083272619918043404421118054670278969692939287801468832525012111430166070578472343721096589582691296892534111594090288442620551787620360005783814448676449661593998491929023188899726516671448429407044587627253742478369598391736105855119895729493156568118592306560933895443886630452567035048170384608425088696001500232528590901278427117290348337849623263173365209967543616231834932142030804119506035876269534901504649580397276637864423604899336882126072152365877968628193991272090243802064906409216726954035497082172301899664305549920747910969316331133730974762437307494783967739817636721449229096912398264229710818509853868386909019448573570368745520910438924146320755611390788402989802456812943472130530884502121647653499495950147031418763211722035143644532010551277283846651920549053324299294511834088657055239412607607538949933306495499822597229632870081108710331304357700008047137659236428633969588889313029689205343261006895803408293747721840015254103960682804250812031306740719045098906201230470867030755655382652335220086053664330455089349923631632200538549971694345092321949903007876546967473457928544407869275149179405480034034388945481980512262150502465124295793771254026501705031626412690385212120831431181128300451444562237268607275691762975412683625654717079644431597255099821642192633043626795453670363788133912510869101119920362311796225969511052058713708106002076082509767029173437171739429384789732333421663703262180487204623973433898560987971489662846065680203986959179813256642743484561690268959465858359239431428314314189093522773188206649348485913236734807736605647151688485020198014365399969905848746698070464811792395655396245348864887844077819140690809790938212556752876280598095183271846280796102340807999559232411450757426516776600357327775952611300015169284290875559149974928700793425845113331019654825404056524781613162761026791039039752910498652789218018984942536031683687847511057641145089174728388042995111742481848939776937829264856420686226013993661820140592077742349516946640882892606419459166362352900044365052131057692770176798639314671539651654147396039720175934694990392611988513146036057136640010990161387521644992892253433164022872309477197900798611715798261501560210312985926524391379976210443813044623402178745033103303355163224140557310510474465502357174983102990384751483958958939789533098667213801062454570935355641837139644447299216860350724902529948008932666529870972399646641067005987556745552431031071744427381145895661928279776533177324794656957823457441531956499378482775635205459362837191738437335942496183693988602831590822074199273305599513095030305736985507505286206316251070716728912936000299669926034255839745397993445144859522073901268559613166775546740709524253134484076939878462817981003525861721691449930539744842309285832504795894450829451774409980864968489669047389340900640583725289021300022856208144786039360871197785900223023102365243547071400547971748945329430344192435985105029272378998090365004406160185220382853102123436276234872351795518351604765089837742858569854137934798429564039061983526029751866242358435517498027982369032249618366954821931414455477682141229305310277554326712852744201788274933737923418567411810046143488927168534130849058518275800663867490455193017622430549562525143595768982494776364735878261825068969913361184443673306208857236660627204895911387455750318445575775238336802005436398031231619349448165102876692888526012829616672785131897620659053914119260108189850146719146855615252166499853384781086651724207581941314272208548705767562206016174471707128364263050228819510674875582188133825406263445422596880965321978464960491369912609341570316842037730242734024175019155059620961052385821115225115341087443780402547755167125544347995011922565947228322571577128846132697646307372642751789809085682995190859857830606036340275566545269572716984548885021480081844219891893829240449348299448437235283789301571620212409251103479195688217160970230606529957379663402029339833901780195365336752378059161235126727403019652652075946871817220344985907201560443950980350433301783122885033574771117976595116749662579715522893322490697315458525109793082983088351351159808363764483685125115982113034707667352697099818016756531793016568066929240997718865643039328363504814092881041993455453913714341449550941900360144275782907810314474636517096857529954818286103445431320201957986879547249898296896398709413379033912145806688801305035300700474291506018933310103172502445854828445626539967713104515829558703192156713285346137689310896000058471725215623974695845926859660935850713816524053265563955351334231922895363314075810714579646348071987107029881823374483188926302061974924863919211777458235382110516354083693422361905122545046770504540021904306768518279200739935091277929379093573273833853358459996537212889033780460977598682283153085477472989769525811216877952961039242931740443160338677351167497199937204908550076878043388512357366214776744127579947399954882792849953687556414251053131831573990831977488882593890836664679740814180971705220223943959001950466406814670075952475117618052108801228400155304283970560285115258185664706510672119121428233729728962182076693736773798670183821290132680676631553956139588599055076366547110855348369445240459297988733548034733893604390203389851872036688773561525519575900922230033616484879678537553447348919859586568011797557664686970816722139165579546447651153947126418304374799678612138794263465743805533758604046080425257757883993730390198483269260498738139819545173095420652113158361166818868343522898324761884270825677609156221079812280018659312292813074334435157681669894138163352155365447769888612132788560773003360340133742942051648179428870096043323286582774925505639968076432509459231160588899648661038547817639662303327179539929912537566525180470004081739655098279508959431084694881556221074155809741472256974105151029145564256858453163100873314103801081307498011932266555492213255894938209071826105177830238399375429184559876556623782714142116779838955418564980821975675767357289978379123050024063390874901410278518875354214098019452422274706480286274512535529895602263727942726181150763682830046283121904487191501044011420415316401674525004478856236639161299245761101553883499995975725271377526422952044751184892783234398337643768695692786771173257227498430651489484423099458540960090696752472222331036951266872444141740628677933081358221124918336604182207516899309628571189786230433073089897287787790467838584973387172039196744202139061652172287280498069756047572795423277807450759276180921081216158384910959401864900984874464825825316243272589730067115226414164705496471786355145031819798514445545215336773602622913274675495576665422630230782262445989493535508517997302313496382821050472220945249067751474983700289343634254810500012136895852530548438927490307974725627285740149224293978375455008068434125383652024077322265184270825069434695034088469117021987335297788005813129114201212360015142783718673135033567624521044971842458624337540683360600152298002615615793221294744942995246550647466483140155619268243577167102777407289521416972973897937036433061727421398742198594986381115716798983504651583897543375072707850752769015455113022044737947426807142533859596186420515123097624879233256118595820709637287951313630368949851512792725675701627663519338282181908078927536355277382153962324912189842946270279942992020518964268995523648044733911828242986294953820715365947473424467984120302691896809297116437399678681317583466786225460277412979586855020014946102579789469260383367883035563709325561016416212505918201020681281241275091720919018906348963653673152335928204646961810703488764430512683605563565773026241584281562484434561299909529190257820077631690083834416340227247856758307356185763247645912344425220088197199651025533651271716656540926109943067241587000493021023805350840420591914391997241235375877731188095422190315261522896977462066908501481028568778060067434090259419249501324835430539446887848818820888603048522741411613194321962550644918417765070852044068478075179860747383895052407478207057210346934038342063821541456267642109144364948249498613674744054168956356865733748383777976209728755251912721631224299896250565599414404531097023711913612101593750698954454299543781645844916640530735715903616292086014769280649841628889048035268707870976856369687574957205869510776591166443340656299289794530659636267573800280065555564417592038970503647983606931567122185474556780178073098590453021156501001903712398468966580956302069313612421692867974237554821642789338052771476030831430435634129788236406549552634813780948495049950460224755422786963297091597885683468525257340335111309071099413970241839309049430484037961635619081702968936821701473451521619486644536587716819495030217923251949756913051617800989211829143819947613504308598017019992766247481830719883155875516112730750055291745303574277348534099539499832967847647568170935376250335128810872198036152661925396792943691231891872997509673936961016646846999384355543348472832156929442875170604300373536481826587209994355732162878173465095275261236155616295841925426631087344495149187965566501584180294339284128120531626400125318122105073751925341370463652537951200509971253589715599198381074711190477417870629642618842810826629346677490516220682931013688726941966532912243562606697130755647055389289055398337189391912907193064081199005089752062204290819531480851113933210790240293415542434709837742048563890471668429664956490934283452813058579365171476093813971680232927842367827270839227294864271331715480850474374090267178386299888872112803636580161667758341648593043247414881232624692131315936862841726030697979743196907777295427936293625466491210751222721515244609412095337753282057852354714038993503636091720689804416500312321325330755438916421212623109878617963926558451995728951294792356099328942820993115843920097018264807866558134943281004281556384850391892607722232387060437596117665843847862347611230534211096070276413589119581135232293213822006768442104748177999896665247815925499986161289233073895820993435298532461289143201562825815271718630836075033586299329503245232631924344579748095741134271664320959473743414296106908217504133942565579337858083907330587869398990677901850716271309439126238801508439470113345551759081191328192662448134525771635307808033478619681345841351924065765107397323271439870247716259567889402072292203244351783757682636548166760192504144429161606998316643820883955608898727488277101325009777194681388030061152093829881791293808055410844765259095961289282682205298019225567047767588741168324324928729843671906979686557842714159814248929544977773152712844349692246723952767968951499915160357868529092116578317153407672789933607125361536555791402734484986290103373607189236807178063567699315325669368063709286686232727981695533995230803571173191782681520327527892697503501853914308828945797374692672399505295661398056801032829447714922198885030561858436056222297794728827339510955206995961047861310554819288745285787197055780883600563445036097328591457408304834754905387379798654591297576162201974554408981168525788729753057548731810542839999001778472759082223542301986016346978517552175439837391486081559380141210738141890856883887534340057270315645801147165145517963861649442594730081310477477052495011720974830207828274978405451231694521863892172275945505896806467741833620300422485402252951438918302243277440469956114053263201189074752059405998677234745558592419077725361478386860880465735636064732787689398319023084604495562750810537499173074159312228980220509629449986314940307131355452080864027599442646991089435695765486630933235702766002603494497742375625566667736037889812815174459154082767049248551269765666174786987273600672093395193662082146257882229984362924347534972509474514307420579731127539685795305244171445562995873145320800103962222038836421899308551832855103534315648653180044171124851185282472302884887354063361636937770277029286500025923852634571235308693572774360460879081382359592594995600435607478114447129153473919171922553894775902109295423121081768946520010090005374530340377532335871148970277192396587126172839912231288061950855822362878549109289756456360564345870459299284237397108228657206922386880417863620796715275595522537659209976935786619121405966213176695205517782952418854324870210271090970936507649275161677052451738456987308890194864935380184352989250700709984395680840549256523487937046103811900815212492647288584385652067035855912787938984823980236835866789173422914004109083085567838238231456645216707039082545571650544461519025937395394962127091055638622308727828348708418064144042666313408647320756490289813660078312765613054618880462680247697821169546228781484174235811762199660259388198336390115110183658498748099291536477575146768627829182426349783451773709096104076080526872352821786687168800653710605506598759072352888236365572067074972536502544377136947686738112459299145697778565461021984439921080616703901875468230334247844744916091127805984258776297254930982909208323786056251252995649254760085587153537802885088951065203906031747900644192960448868705342016936384335629450487083113267149131549159217777828678594908058102834761736842743773932085029551488808312694186041014607194968263371994166949491197917414706440639019850206201875914122436052427204873382564250364382189259575409204936782098838947013418318691726403443666493982450223079908073573482472877171170894592856682808123210066471141844672214085153126574418301206531377517594694320870117710241100008018922301598281137502143480928712031219542082219788617798339647077424519264055776862433890522366642808546304770230486292435024422809334716411775202402413742077851150290398870313226327609655328394560289318388122298997534244150740411741641487987605153689303513782102426730571249283862937790508446832762388966725738087830443928137775835137705591453832240132346649495267084844132658510832987673569878441343831034849361056299558179649247835527375636663050582931573945950037432695266859585661989545336764857293994388282710680227678202051011919951580307221975961265233584590621467275940123350000067437410840806089000727992605565421762673243167752248407890277502496212620266996083396975641619101930621503267077288257052886047090751055071388416829739999721754846113910315464652989371156116574471936519667760719113923816235339383796287239542702861716953356846149141489905512600619836661391016320019531605352186018335382351710084833037917225814283595253578160057602415013544884038190318754842878350185005967073118465663480968988831064223185718457441840345561043047246292165273788543336642888504422745766206478432946048986162486118095643247550817714316482358621452212309274250474160516579307274082916577371555944756978415438184496913301517281958957545778666861461115901019723204227518143545271344240413275310788802420796294931046537347033257071810549454221570477666597367630175019778032805589263885163851003291320585324864993131011275354477831726392662156439472532108909558420779079861954298791500674396424880130776188031412383589187303749111263023886782670435409249281095038064387030272143454973812472276254985658470641720973524240908214937982097514790601655450678901308314909947631215641134826305480821910200786954934518814853762041293619241714906883759066067768742425995391134636268328396920002193137471315438494205879517609394929779137788938056736585313670330746736342997056939939729219748873332487989216802795236482155744315899010377053463426528131239163223092559968694674491134598837516992906036772083801187761757218760716117011539595481041658285678175699307137522731436493073181255343264609753164165382018579260042151859662721672679987601110048145180436128638588778185058264881822584458729456560507714432535699605298231375473108899517783958678402633648393651721748502702017906127993580452911990069725291322258025546166580648858087574667819996617712850269385620859541567660153528929752043715350605375314183266841968958644469802612639026019428503512832868745341636722856787639965292177100343697373168291868464386293236661205985697290976903489996156599024209212051192092581482168138681758873053029750003382014319260900460938067793980373893278058234590930792325792463267115449076301798083433743336852514733286409024834096820536857397763947289493848038476804674172453311005941267412505400803907823106681523211230971121510991382713390060346253235585816575294065380219259227807111854984247001430108082658048172030341444471288340626093651680286497199961773097428337863861615991340003321458335307092636678924128782758046541814482452673289220251931266696179709380960351812083113005015945521173111797666017262884854995543096922412654747102645937606842144205805382891750504534559224758752386123038650977564114075842181767870277065387725537687231607847460022147929996127235602914665639042163877705931409265699824589252637269432973469160762265322331879709665253335200038055885405583421904185549397200614061036375968486541320051749649524521303528342423090047608034381372644956154226142120547633465815949512193258140720036509472537559390153057774016866610066725011899372922258127548113660817666840412058880747412367367246080299353127714654277989794427233861870210740081705982835680469975638684384107300581387817970456414682975298077250363599152520190761711105680686083676648670039600451893833260944448910989795193624271860171196986013630503284442668132179704679371439085099466339733406701600812840248386739122600803841217913084651315662866919393701723970499017465521444312787886918226785159173176565052685712284559069380214017928992547170070683853812068261417247846055467242472370111124045779981076340147978790465258892391356721292074598458717388410444354907492714671797555664347328073192539325223084618865254117495306872216671365617342667811297698462872183849024991010833230664736988317304303987712930761741395051159464493130906911539411460308751237444827810004530202624066098690481377182691143796975550376575950843329147074940782357102360520011203906405814078817589633197878857683465957997744836565544499658354332277352655399468912922401732520342417106027752673043375750437473158777301158639866589444273684609905705191377233446110284036943094261584126374663668247714378989780409721605540979158015570803663671794488364205757772009780435094073855197322423622662356746077508192570501317922271339720602847424189556844454383874344133095300545049117916283892712630178680871688715502420318326222059247030553721241077900634483144673647950866341481135395931229529980299508768382175251819032489211720515358292847911007781031589962261752934675281052604280049292502443088370153549218141499084348419964575775706880337612722524022891896623768668987599775572274127052109709426540743173813340709064115879176615017144823081749141287582654783331159461109461791649242099054401564605544561512976907032231068135802802476946741796114716162645384490929907807804257242691706133665744246418646621349555030395410678281653875104425104647295183261159607686129217282316659373143200693892553313150738426378152889747958673477358885295540532101538176572395984344955327804147821167039365871075243075202389204881934387246347507215827698003078304349632376081212904007386301608764330489831581259271671260690446886789457755140081466501488371968128443044393528776319534520423953096618341613592756325339642247521597899031064445269407230257879887116987961622585155590790840208469041747286004435340541890101808357446038634980504078784295137876909203883922261550163935195400224195525028530102446853367657167973370370523325342135088575424577984172253468140856595945416700577998773160767303014024542991276904988948803371611944225503658103313933227380670899881351958895306137841096939189667443805337659080642119540182336174404422157758750248164281935556597599137952618984168328975684943251500794171300544053515891006923147737909878304437346753705979100437760314032881085259486716787194461100568721930361820314719958537501739312394024888959722494944314655154526011882513957768343076123860019215069426845890675232617957718895874108281421646163665221705181595263375258167834303042459669921486087073199428950464309752627146841686230718173340233969058863569891606483155220258701945183545183023145137590470344984097689624271712215351499321902842849074591665554240741980775176902847463097033126037115628406910289172401584508597685440381109263604785689131061604647424160602989064129892689365758304613482636315733125116466405599015540858575341683726071002374128276716055820037335012960420149590558673515170851337096547558208502900927578133224705551524544796114560874482964297079754517580792516404694538391335437679550482627769834019016841443633758912314550341730234320132769238887991200984803766991816013221120165888069948718908494982770104339006940125413662550204683580399303805361099299457495983486392086886472815199963302121752485580834236393676549936210651179620395893464002102116263628368303059042968578514560129433112657873853429954792291501560214146072574151345829892324485444196022218046448028884618327373019980224898595736283744315519522409475712667075648707402410983234896465634133111913529395977226165530149611102735870172074808615043137461995290004425569648098394888782453184445849955361722016705668825871908938314123372395644516059039786023683642396847395792734187405191255455955547584700970219595581986658572236855605234370196407709405146753481937311395053644064697069842496090797125687412278128165232734330747742903017409439077113624681127558599079453914801986146313320123747646036630040851110204159849593845221348139527984170370291578289543043893450470537168544512981140896238672897500500730046147908400648012209730831982697637395234066322898203581085990146283610422312023554863494785303212174876856751140856954411044245435772084001333446935298407913683872068037851371398577841243400290785814438833335792051911828123600993513139830948740615379357670276966460028850498594127445534224026652773242320941459983234033871324991835911102977825070766049616160693184317833222285200048080060900474903011186234362255351916471077754033022312998337137983625605104820332349751784099749643184616683223096131378300314129985117856312078911272484657391080894275134747141312548729269063968820567023523689297778226793772410220013245809481939769392464976036579415454275899298996078225389177558207755021158213048397932836654840261153629564571848193499294573952088361485296355514125755192145759122726174746947620984882125309520674154337610038696147832294875059502356522686605931783509350035026953633237353219297379876526188520376563333563234488936541548715702401527712252336135105617218949788021627853516012420676157112768603331290795233555983995061400929928720295235795931869568439894919168538930505122030020892654408019207296118259366236197289858978571669299560015870409427380940918611642188965430276369195502294003193011684682055152700809714843384379989732860161447793240045473027097927709580493592798848702446539759754095387108465175585720102877305682332062682284764192812503373241170399407297193841924005553420477704547733968450841519082014382628118954339367031099982156947132691602205481589329393818917752562890588857335034617746783112802435943529896724661389651119316444885488989996323095092755210090082222698372181444261988830213607110775924267467409290055621367592348150397087438077668900557256106940299760489239888613496358864400184153325453720185708945663480695261724766174063038324726020392016431343374579714637158330905776349483207330395097987772973447463324080635430001460353536289301017661755522856417590387768941640750348892997661709405601201612413763940463028856750655174841053586199876354041682386466793607717803174462709157637243160913006028226975720421267107451968117156159397649990404263144928447748243727051714707215973563520125828412012885046663307861088361330858671537443645721303830429021393947733430936213186087403849193895630736554379533970500526024712749323523996446768159109707874157796465161754888481880868149717846554815710086535390051195628917401204063596194435369574206073074371196259160174004406340898546380413392416923807876778377885376001287430752722529202533613520501488216294231367415984871432225370669807699833929351096479337457605952802724961865986191265904085099788133679712602117633429073259090013665903257892900400448815487267764088833986248597388783026110997231429363750946786868886634360492111881873307673323962835018531032398880978059245312003955272994047149766964264470466772956447483969914050437485252579945993707808558093434843638758687241780197209008826425704869343061432398286443126914276542774287383458466974179319751200728414700597756900410388072559849464031125668607987266435264638674066632471117785158233947457525152692874574208775824461390235221195249567085970295891719357948555346736402051979897952373087260832636430999675249832231092059703953736364718261637987922241394883810104591483269390898330966421518565248992952529317121559120220021977454747165164527204514499582094521627167351704117526308138415239067634331152982858798437029955148771005138459663929200578114920591019855997239067801546996100050351321336321167614122699236297769084831200464119002124646680459168722174852393002853480794932591221678811860742567802516603889377629300834394457575133583325475158671122078782335124144614266670868699956445429475625398088729673370440825264462289671750544375241417812223148190830250214856011076277040913099605727657917678999079821912633564155369556612573251666094752437455981082079547063051251225833204037074854053656420250470816085575740812166268268976298230860275286599614750565337568234883920276424870523645034284655466728423130829417508959169843667150086457478768212173373486952979469875950820649794164367063245053024561967042427944843429138722521072195273493059447157740708044932276685361091811681189406767291297625102594063162057382965367255249837192608391051807094879659805721473571006375308252051573753939068686916474212274476418505150276776287497693577490321415050686877460343868102621241149636048732796325360547659223824172108433948657898384312113312838886083967169104983715137440714329829925698034556321172324065253265210631236579101908469521286020262805153865933971262041322763951376520918367535154174578215357484220784651727489532062436134941042796653486230123993792158057201428226289271739648004724562693839456689815647483566831177233797409335637401707684904233119348333168007823760070866659039154545813158759581691879172146446176064002168022152586166263711864911803524823248864117677256527320667260031773254486381330472325017464198397775771626388202629358842613684265078099112094861669498058989844326134866208585176555354908620844540261889810845560935435788554109337917865196973673057725281313955414669321058220878244154341342044374326155054206316040244069501713229113700587590203534730223883743501597272342866976215188555826205900750808630609312645102621975435525561113551121752627709227088395116543086666055888536955538819694243516792145265483850370186740225937226701991173834034324836173786825619513101659253094662434950143269570882478128170662854716420871989072469657104098179716001535010789717768071568473913243156548894325839484586178140482654031068687627099087363770027202396904077662988964541050111927898847056385814306027470657181988284019103028369407824990305615828930417064086772080647842088211991662217880143971237273362357830909689433147422266849474926159820735730807763872455410879984771117169624143638686676580514516830921465194606082560601943327865901940572608117358921083012414353040638424183060518279777079526337705369179653503505871959666941847356763258996679027420885378275321761071631330760892948598853839480433665385522175273485943321818581114020210634662344064586338645551734202191214112667033643344384998360616295991052042238432042677467654301373135342094576664004104455083781095006770837851590950033998214373622936611818109576204706060850246541265316787441113632983230113707146402681242280550410948976374448572257146211322088172974845799801019912643455142928781220206313634386168681432294923128550588133620345535420713419123939697074852759859276974299568447271488017885995086254900699687803719768799712517659728067177967975191257303335579886718659652160364668236922344947067532957865562131387820039407967931820746091699889859249528412296852443583521340395296034895565804432529200897394353498758239498378325797329122437415056744485233877860066918346139983434230875459150919373184848105616649015177661981664745947697421591770208576280362105743460472953054498509638557778288864855173220932786313583686117674400718583452565528915497806006291558370027781511758996236513955510108739711771599693135120293261252519494834790481673199374688895612372499584755140736345744701258972454273122823745801358578040582632829763625933622153589152997359178155195485730634937652217601497089574447032753202628408389088746483050412795225597241919311327165527350097483530938231555696595183053432272481360514455173101717707845262385552765219407992431183261107284567508492489605247331332267890790000207491295858883879709667539605713578609937004767528951757175352053677307539352064700084612477605388469872463495430168189687022276024603364640680748396361593320652489281197813595643324449094343981126803053848020387529855158539575359798311913493635292923517099845072736347050458922982311267394074738807721136276053385004770978406010871420655632268961051810233437437498306532999592536650441895143533944087109915039381126172784580196926775631628273247272179033822058880010715528330290539756469925702260222581709886230457991707464974335945040099108601058406404110999702662007090512273448953481371374381012832164212410389375633362606425335726935464332365253800382203511921812727266641895549041239681160357816672014962890155261010616893385381585498296198507338165114518491641296468953116659051599513288782444979373839657165218128385614874406487146345283482431327549432146630678838943177396393052178109407113950022833011990227402938641520533749380356733571546653704933214386436710593928563688788158870092105324591372100847350557052549097513449372262295581558760479936862782835841926938739333111110614917135328277453000529733934290600771783279433929895707094819570775831270162559524742453085630408061159545417006132088856077321213675014777462757293385278211885052659785147478692125968001118740225704919067572135598604113886046420501499016762195064415972424317530814973051235748755758402859608402552989097016089281570776823712362338129477322245208959256126216531381630871498938459688879685385388852232565935891473490760321670115066013280894923777322695150961491777252024687986374992416809620690781614696145268585151851155700455056907403658145101988615184157979214399881759367031685723656577834496748804403239110872304158182933266034860424605072369686700446257867550242158035523158448805145976095333569686138327191328098882749551019630553616857431929985643267240874152174412128303996973500095242304925457687043747358437838146177895374117570033259095026032204755598352425505233728295138350045858966332548558246008652000449394463248801838089133359968628777097993935511858584478988268465884187043622931304490117211946768845224228612581816023632575675123156009740453327928960277909512917806250316335236389843532125866371536761302311410455936013124151659826071113775811915531411588906894976209780816821901672937749690326893301715827863268237799728396406745854857416395006367687110091967536128363859365129072604041138775285841123807507381680202543302593235163930200159706758718779023187781211441005372475500088894456712483811209671295188872911366735364195971383338062290000669249995396374056544498245139759091744764601174111507967949452474576470767798671064539226837906097654446354894035587129475992986543906348599589388523381275663883341496464574868639852356710159962965449018013319181926181768943825703529883710932247205146484175727377779772958426862075430948939587193692684706925215787489793713676543599636132881863351785495639496994127813423659246511489065088374005142881338238326021257514914664179527831267743511739507550113947212719309813486505160215423522701961518322718971020006971599536658507066108909870333536663156331820511480990655835156709780935653328372479080412894273170381068313562857297956169128551746733290143785954291751370056226024368432320021377830795428535484397659627783785834105554872402195261599916676477069298399936235893722463717601666047194547969838474404725352392455756041999877401413406147220872096625221268929212444085597383050042548452281729960982032670973893801078235485009684176180207620514309842580255628793268532614182157991725109216645187329294243594689071601437802656275818807222935785328120757949841942378161813252237757347731865437072546817836691347983046222283157028024504279224690853705646298451345457072402237481886135981392260728921157114057150025667042326562220087387865079890545731047947717589025480364684554369206524651139100364392979992267248578481731859649401023672789911608985046609769443330542810590544413389750438920583626666128265849431815661382057432281049368649416006959430867128067541656076400570473113856360804996237358126570021970366134858390585367151402801126297723723021854921188108778184423338403204612068226406461787143773798582597118449797530362761240963030336995510423947491810459422418115938631823561393204448432433215948662359022908659547546894605841051880095071111223893271715072908236626366358677574179786485406595036828253400268548451490956907391422738279059320300890275215345361601839062822407491932286510006156446150787530867646317751978300243150800503000232302287474256339154911923685911072871193353243952344165474055420894705058716451621820690028110392609447197328031774904054647930763229614481498707405198690111415747382997100869571113032021202081224642183199681973185332796607603432935477303060316375313102038397304087126977407681790159260343046296888277028055617991693071218225472392148727607595469527706415384918658631567822417051723369822256358059973927577992988978646440554253309393247234770456622073681646395927105504592342230317975750164754912752414289383686045990134145898947875916286544397809253148731673363567470401934832703923013833665504383698128369900143231243719328423614234316536496531418940460974330461473842579906894212067258921650509803412190703288707067147002467966311145699433225637626519999743279905961890117529555638406905309722431547494856638602873147917446482655659787688834072525704863581968947076579045323990358430785639717262239832910368678287351203036963335625927991851717772617214825116739266578573248185729967986191475139276674615858526617045022945542467469615483061799012105076627455078425463290879519934332610452894607902232348615561915357728554377606124083248288435758497446814106451333182999440778647050493028795618730400366371351049470002738797520221000278397560188499746896196590062046286349279233606372038311140725009822028340234451762963056920221135774333113269771691680813436584541888539245640124008151626442022339828196192915860151564860368772628594636302242786174159902695680212007630342821335172941258144897685018415361575481843788250066181137422541683692467824271416861002209698099733836447707082635247130557310581697663853683270570581662949497825991336774546904907412969713333453790293363356057887048295430198256884400907872580908873895408346436285997657862679515188372987674400585499925632524134833290542118583051737544629102951266911517294013046500445554350598945393736564377985057140180227771887565352103921387477823099299134557333749977185813282893674917201261992161316541473035635860411263111041700491221766687912261501022660965289093102660864454926404652023125051603293247566893893554462904508673328755635167407192584369862380986283361219903394691101633701486222644593790728552492320140765016011704634521135042737455287233665518283281958520162670475533529015506849225904074234901074446172702755010058896548387573179313530502778026487115880698867285247537676347763262598062142605644355561406691155428670291276244992378438750939446995085532324991523067309469676754027026708002745620923858697396928893093322182365609811722843502118532408473998775549796906689254472773284530157544855370095162384288122548352213456497256462342969291277171292019817804245406237395346493248481261050027655460467474339024639117047563839367474809460413004827601625051627272248709316900753572071098477537524717005047736889146924770176917914057104583669546047001046966962761810331882866932971438451997427148665680127690441483965798456906505238422797369707800444005895584018744072311481827171896449761212264663063061078619254472828257129800107353065489050825516483386197830872616134615663553767751206091456286831834729831415389426044418442837112019129357464062099825475651685957317553602510106483619722145467428768593044094362275448525918338851824534350972528008417879185361616781744839015972146299365887679202454616316449920611082940894864049167769598251510131066993478758738292679588483358895310608530262174679893058619003065784069218993264832422760860877997978998179710568867694088116413709583900036566729604392137340261589261594223174540411304327287985602516996440429073805279706715840515419884251594796527336298922808779451512287254004861915227139805840786203666031856087222779455059083815572870858327377949950164801439560311940893880705766470344954462981432557348468701721742945560494971970202070984741131974383184886304219608023609888011472702844906699721634912556597684426715865144236740514938337343793663008839517927748470945867877805977788286745233595738244941645794114849726652741697941749033845123626643475300330617246754990682520157749144522541133339172647130024880573060568157546232080742810093992547161220853309776608680205372051904418393127803257980010405804979286904163434620337597302038933472831784879569953618329692416210893219804653162455516810067414733642135334470413111730402365406923823462531933437000224054877780984750357773588367671369362946270527109551796390284016126834687283481959439341184355702179359805920100694502939582404630670997150971326923565243868628419644955721575430097589935419351125185443866189555771765752092156622133201006828441447518724213244919172003595106943567211464437116100254772641817450470794464861559637470991344479066027454361113290255116574194905662487215227471369940818530924131898721816351014923451809810135752796975882998186934153813704280434417665899030952716333026812544694247341015618683831605237888943042453247766997762167108792015129321143421324619648191851946061831734778911482848576307703084647590732018424407721716940876664465773291439465204194219239289705856372159490532050265403084037085498316475259452807032778875869652121671793159359212010822268901122277389643154485918652056057861430794928093201944783091586618997045185737967545747580787656390116476831865850300729397481829090046620739634591986789187133088333215049189501572719913949731042902295261864406203777170348655294998045288554293513072861830090152713909325523918048658163078512868036635662600291356723659989616564264879413547915745756455047584192735391060774916381343724907754205877053251949493890070636929430575591906505842226336799588734784334033472232603445181909654344779926470427928463735218927867571299777037465270967397146200877894477710786188491077283928861491768278396752346017717279922339253581145020771684720077576054339954485598075053903754228586639412063355903579913626852721582075544884164961088461714123201703207672313815652539810157333613498556193404725261914320689913131723213218183022062075144556247016803994197245783219553770937605230643309907695348847517777775692777526230651882094126695451237345355681499201704130708838805709144668852680319124732991150691880264149654989489377455242939070178704324243974450179584178192968232150539386420964063309697065548439583695791783732422858386010267628355294882591968890728316352897657730471370589086412769777014958014903118565983902803355772758608940677404887695199975279997084112459059584572471953087647412495850452417236655932481209380762748567010070977000778836264593417242173451530505523555560586731187681681651404209038247996852482034835961856769143939151053345723288872632998216037265536312289394015708531366772246262918854765019817814578197382735271982856719290562923336277653541004298227402739255393521646490546482296449090329255399032780093086586916160379210459857758617453635437161092904182815421847554332614150552213160930970488932315599747853192875652482129099376695170119171889520080263024298179332136032135127072140183304192265579650155738492757826634558818776309819544126282515594028957424827420138952924974531252655076619584108244205115527546345870133769169185354960528904423035406362893590100038106764854410127086725008202991008211582921236696203198283820913181132808665915700731250395520264362220237192322369087435688334320760985381273112201833560250286874197903901767475660285559735625961807806640048268546896088442048105351627383565957035028206047933734513057415498443852940847270494552241095019006691736961008979568710780759869338668441015265745594326725597661251231939711117463541867431637133592083440363194904979062685235355530562098778109120318649015503841974196889331795165161395389069527218668073884080925010450384784794361391427995284037437099469416031269839677954641683727831933272842769212315110715655901320755838838316522521633677351243246761568632648518527512536175827927379427468159811307494705805941810234325472158332016509753911775644771926375892213172017626055907817261850959183491473003451721080010780631161281716926964907721381136451370755150587234960722431747219736344192767234106913418291222497548504862720800261354321440726521890743223699840182878833156094422263457687849096966928583720016219808795812319353684235374895914524536670478344991506487195107942669828806508576944141231892969314220632744738063534141092479622396844830125973791579291156585888319176005985448757549201826026183909197166273631040471426471907842874766219593279915895427562457811605600029792039538428115274209701216912627960746420792152328632327231370235685163574140016219911023535289580375723585880075373561214052431028578214516212714194694836599429645941492422299187916179329266500194929007520658815761026437015204862045904274463638407015267512224757905801822950529291884024943928187679761937927424394564565931250386599935013736213118172737146611824517343340635714850657124260042168860199438115840739100829012624995203928059155779399256643366155210630522060893911151543765277771369912644192331851478119062815732758313721975961135968185293442882523467814325850520192466648576699459541946689890989691462489522715827967173000702112603870247549466919292361489945686284706275645597158556589240777467001789035127524345094105555995798770416398143986715401557352598812484066960746780822865845673065795074605463484407204698908807586307448994323538509237740522926467516085417838078188779800657356796641514720702537121080461348361504491910169621850022181535576657724282115615012642898308630631608139849624874565206067857746826875050837378197718267063315665300899345179183709371594591140564525818724705430616870611513940313874927415905451254242386165081395818066536314478502512188917326193686721897493892792601048148777117784222967570168380613496714333127401200739104924869693366603471743177901173508730548726154662318535060864190611454304028504814603654101351283358078580636013089707387063945118789939865736467049377588306312404230463216412790298149493530000618302196261714007273405833480439849973206073124041788511861428042798331889110319980730754477034251345792070253975207078746113875962363033814122893859336356366514587465705382230163951694129808628481953581791695962455796107576259934920842831920814243469511152667023761112676481284323226031786392564304250916612930985779498918355499908842135866193895686046956819887076271013266195889426276943150027289933490374276050844119054296887049345406569422199928956182204043818166391402061034657235961077025136861928255257884058188651506669400367658183465296778778660711494434416655816704357088711944663909622963702389708116148536812860465048390744646840782397818280652214434600386721683280956090740044056770834740134952748643093324007041324807713886119918090315266611975309681686267333182364215318054620385492399927451762007227936328783638124429372474490734887049637287157442129216407830689679343576657634430215108483049779608665620485948848578154843369892480530241825209875542540747552649073494407108519599051332244629427894501258906316983870332961390853213192155197866196206386136569576531174985698128682343463765422844585826214926753554825460982566026697255504646351425946529488002440355137765616378249028826705120086746365685467665086258226739890692124485464503299359821526741030133694207280229263791713536122351266001709798895158412001490243203762313547692432059269388091377779134283304604643314107775785060223159441145141803486732641316792171699188749627684492835980266310134031138317223804349770187190083292374659653595077911155640563596870963527156108640257118852370067389391579234453296087665543932319065555379478159672337931423353752792143310076104461005534007865608300537998485520436769996775297715426648723815201653560029797808196388225495134718044990251393905889760670860630370248244546240756337828573759011688211563565847717414748548547345237976324980515376682925900810610901867016476928178332975542326912913182617222930044138175022946658130150777204851760317075898627992763065406112941037027453076062862812295665582033301841041881751016617492897095111760858240630881628982577342417737122503679249121879819426648311626924984225093839290358808980087088545573627918382755153493080243631195743922233863884813478670742480620975848281055198898669811181337304882064947831049015712115891743939209637873554615597684913656697849210764672478168958266235778501571587686666836775480742759489412660932417405057320356063743643984701371265999007384484519244534712120240290823290342715663718384368060258732707881139440088638751234198629928018919943625395529360248970116770799847257770528842211633715114237884705094545542819387460024496596880348692412451661289536829741211020215444456291612213422750596626260211625755415471641221773347414631044106964456310805451114269478425917910145910124363025803527071336125188424918735433192089376459588146863533133205882878844515335867764523580158443701883478938922874174946538910034973891793186081085143048429797912355064467966671538705792452836694421676374359967699890182027041420120498209942521360743981953467186935608500843303978080960980053203982532128560171987632020250192097045133608665680308957171557646732790614956422518545776765187684741816531651126420943254284579308497433908450828836959561417237576066057098846213860451740664823878474161878735869362050777548235924023971203507312882844403833626795059360008947309304478483138958130882694581720851310566014767987041176778147995170339860353211071009648220138475715144715160375093868442965263517611210013393791554511044287270249063233140656872570199872336070307876994026629418137253106646793538105435289384058985542042502096151150028247448528428964072181167561829393195677225468552327024314323686425136985405221062895948395271684538721411025356417460380328582210962997361968355390826785028357766718432179776116129954599430200754248431679883190402443559234247054686618946714394137846753466688283886061536402634254413621992128130922820519901278287090174889856703429538099781148989292018349410616693264757716952143914043883213292663056966823303038765325804273955693894805866622959259628840225851571719687110977698428710248072925603520468859334993838647369004835935292834296684144770104174493317939408010990678046085309056547836289699952619397505697636318655079528230555148020523235105545504306755183481629338221752025559288828020956668112110870372117175862560506521769684743195111335784405836509609920500261227493788627314887419395737110178090508694928645902177798822234181485840511503137808243313234615411901526812050436092392392419946067595418131986313936139168151376093248872321730076221535522827250433749354370080658031355477829262270999038811301649744562355513036567342211952824283287945709212427997078605827223640444543080353718677214778913741134210176061149785516602157271569087643373677580136324737144903306134209756361920569759230672420438282355042511212969173690537858330160025867179807742022398500228959236310693268193523260972632742833671070944396271225274761713199943854089954371010404994051150469534769708824594881811872479551420021252089143992037640115137245836464323768940309065441455439164237161379154771301793240469316153385624601588132242819545362095693087674233899904506896466033481079815266872821381490612997178854566683436560863827322379026384366708591864358074228889248008710263651312974941250514579273588722355987836917422641045375105380638779204940663553362253408254313893042650322892616246604572827091638660191777350521464494195398511412393845612480861996964718416549367281660296060245820888691211939395887810928775136487825633417882216347293208003465806985258848797753558402525020336214439074564468162729087548520240832780088216532872578790000662479220207130716656921307393664190241619998013830568110922277808262550529733058110862616871286543136832423381401778049311694446578421983922523194263424147932931114973151440753389206331256200379717294197758103058239584337680848196864465556494643806454481163627168467705893713343160150676551193377282225017041916424650342539405733611367448326156076953886425741007232801413834331197544483815193804260608647359372419602083269554443123389668025013180887005763163564670583735503594672287672265846881866942124521769870593318357244863929438090519572116020597583225137625535510372301898631574010624533266885064959499803523888446273054912001078678100397346225908621793122993472340000388396840844778843092044914759286886694630242759029246608943382076536450190505804633986282699860298542631316915793750235043806834638805741168653656107259063185194818209519724405785133632687366628219706849205576742759231260124209599003970087424973624503633622503932999053256931630393441335769050471537814477578292047593124673651951356176929892383187036137277111270455338961663848285783380835712417388204707202355452628520029484217724018757020654292077454704835529006894596401709152870245697105072011934738435125102233692034749416075897156897748455891788160912914077311073767550479542903456161376237502134714825901276322069993490004494679599451065996754728980185842352074400163044451431672008929197136401615076654134499815264627713620687794770771811728497406504435664141848809965908632474937398897333001943173231544593336039059044927017487508771851170426160102718199223260174639573900858843203486221423014549666422116302823050009349734991958335192774350739694051161774668034753749682099927046105015201760074834467574920770158417718001203137061793295524744078918984461969462666454133787184328219712575097874294371211662245736618874200741811624467507267014264489296094360875726802161228125952450765097225254206236493434795193932441196547050590692888737322896571426084905218616221163146930036359380239017627370890981875503986861942951116320020918470664427173839712381350792056196613227257607006575793637601178464021644934072410397557334185034781159498963666895779050426548362045339004940782131827936275965775194354980475125788933353253175128484547142929219018042507638640518245954892877630307569902448325332355005770110544484383748380618853288049383951186575863396680861744189433206287103833554153058499831499677752054898152477589637812111469648287339883279128292112614060954955862225737758077887378765797649758111645486781705667036266492985736528574971102051680735443080022960653783892594214874649808029523398821262322453289579978123250965455348517536587653666556731468109315968488558529868645819940923526773975680018560438768505740677374137732914148514832952736738226835068224149424452026463167378523008647928419506993101670333294803889982507584293076922548873619517574477562132316947476756666880276956961501347030534477228834009525087895858988423200475499819748305616720781301961718895961452029186056562652886133705620368775044522204215524387073024460097491103983040882631666706891538314593586638340042900599608062675083257452090493564681755694479166073084953415307537308944552536683882440338140855082566925534619456328152599711207702626940419662061489820410865072204488971009068136034158997083435483193320593662459770444495722586817834752937159192015838848779938460068015065039048619382131642423792448506543279435683613595711678296753847214563406355867923914061587688641801962494195753476696540640760764393523690807914117504812406317475151884907849367055965184069719758386971938677691075674533602154208419614814662394581560687159365344488524833517459185983518319845704697914114663900031922775156148327959153780170353540515752276901794387118922098183109302106687002454051677265025014450824028165796975385520300656269188653643188382673991058271518185386297258828516923783001464186977273862484326860805632098590991820458790314037900038400559919321193365542912559265470581983250862279483796174601084372390973542238636152007053946187056132700621734813806554624461971565526398664617174037036058142873846240583438243687274019384789973090874658030888050477475159071373473330922001511981596880640992469418418609147951221098067897054481734918086644645174792608841181682974423531717436936354115678037610953827256953543082402172970490068377671082576258572323054657257673024637814060070236321512371713305971953827080097192961893437098278582257394775146375959856844122870591338431721533498104292504239938605757993570396586381338106622780241507146391299482538047682973807842813696813476323712778740947814804236928402397355514873366543847507582539629387320459719869701016274152795450229764260748752516744147908312541807603815161852343194252064113158362245563451093729898629310809287730340297031297846218809135122687642657199034905185304498223171293321977042930768454886064349891075182620828736745596292761011268635771576196301425254844406432930905320941015286582467719325321540843675681591672551244534280591271722467120981223515319466097968635856139527218301228843771611122718567470586238314599135300822316218152745286605620570607061000039202358154455131723933117711870164393427085688471752687983062723466765338274862801628658492647030818702587249757976024065659264393881082564112250760537921912749590439660255528677409474933660525290232088847325782530022612361752238341460361450880014584843416513065115617368621628909948605942262392127487859337765118240343271549960496915506722387479221301668911480220072121157658519078210298222402768585714887336030984774121062936773884433836156379384369659277430504792127615816097016383985133444561660122208976030335954260931947478412693309613752962676496959614463398397991818943055926865890022749688438030664915065070691743264680280521952841075569321729482925891143487400963248618899994204567022613021378979053322504681362827110149462015970114345155972029169539502513218705245519358722784897167416958849218574383853434265536640280602719637637391255092743398181289987800096275653376333099768754263613313868912637815559962636328981208529817986407756600506309235322910234520315818193023993705528696763427927040147179589881880747653319763638427911582034598466373152266264217823332868848706660009043696377926858381408423489650197582233581354329304269576132560720453905325227245601081172326100094746399092682640536414722491700185089298327270368442540881639508897354039388933502761352732528415179066457143911056976985355515448382014952021726407273546218071659005243961202510039164027374159942312896268957115282579148938011863776791599023885162834157389839571016446423454854154052515856809940827064338282509815798664632636156646855360594939986771551780723749998501660480982173497807719854001028950164528513519970551224811926554268152440138722398043756554996577329040608433109783530024692499774112396073137586179548834618152882187880764472652138333080071674541398944408857031338543619046708601541271945740964033071294813116538828866219215350477561637576685482977211947676351288538353843763921699432636217242399151650507240305331138909949210964991210246921956822186594866454374374955593404971766813945935272018627887805038582999289093350811990225934475476572733771637363617915418100042008941055065194397256779669281470130948228781995341698232855531851016036483134825037036449168849633267779001234650064531489031865620018893125899030312148787667759421186959689602525172230036963777214940199157430930594772258743655052540329890710763755584151524381684914964211841417847882584452734367157340903428820068818676682051796515498630258858278803245911538023417421242997571667245969861795464975192883051845980430891999527539034387914262609821710399182250413795589018849540367080967867111830245402688621309308163808811378418388835460346796990676593237465525234309387733401328650100973391728950269003456854097506568483417072153628695681119835957976167062912561008894220419901057303496593947192636116261598314903784957055779571752227140120401800733330798185390330058161901867167068690828453244967524071775312536366749443956392666796664641350482743892152325627202669138847259000612256610262924964194909506662581709588263305584310304511901409248227423637234231615223252538342836554604018483716979244904897560878683918745812389656279877615577057644893045454823078255163134149482911461665123900567455857039323774213623938111521631108305606829643361654857257128078250422026790134773022658593421647944466925621542630419748875414565407180285102057753943937222570465186508389648421860543340270301250252394093248674862141262139571025717133663344125800213410571577823962894244443762731810799545508964049160660595324617695236673111867889325857645927219279758900596584864763163592935046883887226205555248704567772844456603253565959686017500247225188006173031959346057923232478298189043319076841102579882892142791138771467115694780647129658674390233180927909708626925852532816173925424385467577657902419250991857379367989107785854897467525565564782803336462775094240714300455873333978573108914648103171324840466468172002654421085248858885266171776093497918243057599869909378653407835608190915199059997140150160946281902918544400702970531259532568674054018287883345919189275919055025876075959807733651107310765952751426305293932167031986947560159005747602192747932893014783698780774002568353740830018110857652445614938118880123071252998018235915662786375254336166641762783888118085991743574992492148382506403201097080589334118464601764054638583241952372448572010831097900888184100568700390182776297321312153286503084248489891760001597679547519272977232078466267762540697182863343467785101252982542686856464140353756651701936681028235725697902810034639830452289849152502751444377256809563113813033108987325732298749841863161104682718940297698582885203110336954384465187921970286840018470116710606614407106010687090467791152902472183379698217621357838853570907843604403150638763216496350801923932977396437138517204905938408621148062086359143721129648432080452101815744245743758303945128612779205406160818177237662715744914450418496721832346396381726282265750838819604746075497490551720450650545895121988427437814712694260480749214885005611077614445973055279773668813032864889120308285016973650307342274499783127309979882151965805463313387333333924726405869282234754456154934247036634330867131800791905563968900022096922845398823894377132317531852201775344881910262717992883797042106397126919350013923800889389231851709331487811693669519368153972746264060826776236206526210486257914507383463448358180227797347428188550852149082749419979968123467414486031997069175137631440955245466865524180128336335529874743170965438124308660875923843400486139835168319297886844532154023877587375299682535274121917754651680795249194956645482359953279148404207903767467976858484573007812291472073879686294819246058365784276386803013370738390299147834613116225247307723043594255540557657696027078846272302226983245405036071074402714693859346685534784221922118977144297492978812084773032489990814065000824301549635589243359524712813390560663674678654026521831733071132320208379828073807949501238841943573588271104283182262873400642985294903732836075631594503891208442319524892147479807050977463316391152990403865533907579477624257347824207854527010683874000969595876180219674941455868521276165760352349924362989288215368260944558508140861879746998324234336222167770279126354218351464543866154390215703118186278930253304901964114135104786471244606563526056757530075167878844292747378259201975166778740895391377563501035773502802747678230772557136080114393630087739332678055892585612093941792035042383566453920324910777557528885183719936816549981089544746793499357266316764525085001807209783282199408243912073187904784822186052772370311982291589594486157672284067935195011678555228758059423651192771341606200563447990434881210771039170314303811799955931731249404014691114645717748662794369368553204429916431597287886108157106329401024633211641914521919938224701178865626493625901965283602063391714208324505020875648488486688427492979753612047378085691945091605570163506966669556909324092998212958186441011154115314813772381104181368079122170893813301558275263154082687525948436342159023993081715263963166760704756933675582404467796165138807611919065036092442760078708099974715983555667541515473537887543634067603663725212304249234114001851975382696922145501075450872459050235072518856102288515435664136673502483770986807575377587281270258973281800899832548695626088644076667286498103720910367319594520818572137854685221225816298844814724904145441059537405903943778432601668046238481593401043703638846245270659015245578854536284846485524327171882800718052896956510413026472021409335348889712335480824346668822685942525629993590507451122549784703483409280496065428092874714366224886818707335862967528220133761775547564009886946887944995340444052662444311004506082668030270692052912326232516326355241195491497442533797825095288061631315848693037787951093535610320982235991702805719763913082547568504973125051376832071245617952325878514341900795834507360326150899990977237693551311387386878576244236803230240442477285560203818804801987332473350005592771303930041611690568319651434536852913629438802431916774498732876359532159616420782211468488920839553457475085717589646968039315209155064928914489193985187019464404614246578862447917107737123136881968724411597529025253970054202629914708059645958546887639409013481071116679354941963485988453254801980039386127912676525384036715355786628874943251618176420672055543144463974645772808224808573656046896161799369196693389209444208162511843136932992529349648671299553755111776974393147773380289805617787783650181485360991099214228209865671462596059492636310175781732587662414246269544522491334543112509918845428271800217034015871492737633314156064689969202018843923146814173150076187647362544153970133521574539606482305234517186485894476947227476168676426914395635507455310819200872303761980328244701228143537244516655307947976473738921517027957318995804338722277591985631179053879770155801253819642515341210252007903317514616332807734444466830185790755834743672651995141221241651655112475030088053820530103436309253166573571779266879283695600933386086606766174020868387684695416137261070885768957994929037091553752655699859744624168050315894323498925550954532906227660962686574233133873603778547923804367412363724222195823195440522896658603968627538977069619002153416509305209175109866046661418918597937028789847293946740473622577350213696785103396386740811471565686200057217442831837328670515886536020794784360122520230242405424779139940876665033962568342625894733745464483084128040086127993381059882386781255058014399159079028422909543096511304757619941525022543328335125972517494075390734273388532529990660981362924574711787699331473197717869662224085809639281145321905254221690293910442942753697156967088705516915218958406973600684029878983087466704146139707511467034382384547367656736123292202371891445551753123896738242951837788630680575085035008694622448472920993831828863589888827578459016506659495576443020319055164792063703597533717398605021633039012947620043665985895101970345888132241312659819625628406744529699462683003190488290578010774474133390764999979137974308175160131730107846475603818451986300863909519525057428080463537139296191751667621912713643716329985528896646694655724448101671257283914289119791284123664327515716975771404429374012706339570426444649563248895760239084813033954192660357827454544562079285226594583208033787057684780651634768945496680773366705455180026034009958065808903660804067108561266113728296317050364457661482885813241464712070938082320596074188090084613493911853969373076109477119226800200669534350311437604344899938828216574607680796910781421380515750263201549632210680669053930764823852525062474516730341206588424901995720071241677820159956439477130221105674652217524082531953524815930264773140257159587241613113872659478695183639472251452514034128931668750660504137534167752021915672602617735160191366820961723989852791739114096512928108863642482261377966521621981150955799667482381120139993040443312698558248545219554071795659214260275200507394901539136121397485591736901515988761236025859656905880500818324513162388800869310512012293190141680083986533840825050255547554566568095423702905852911301862747740032394696054073194414569538057258690329454435445053773038657179762718984845224776569837635916654657386500706088947690110590061636938829945998542537762122895746644841424726717953672330889705684575430199693334846202777624817571650534243719930052673871544805554481412120831153490896375838501719487151783134224369448698020238134258001087724016678500271081182513588934291875760524106049416091613623514483746297588888050706358572887877716680812655441008901109813184728211257844028410948955748280876491014538021385259642672036514250834326935451992475485124951939441690246922956879320703701962824171835908052972666179629735869180308395232361234283216094962082803708582523850200382852167579664723144325544189442337181389912425270686204345541025303326866727787815993365073273568947685014322259542975290873102635595659168326897281577525211895390955521804095079623996277574152563502522302795522811539886265704238686452760013572235235537629452671940235740493315512434760396422167054246453330226922262224374196841665187989045050831600229272468183347022084686052055346855073998367063661195716631967053211992286564370590489129604686554770107151406249876974230022021592733654073736719943594236550796501247731796575840704271756026336258888499055734819481909957525373198834895383534930087839267170571936035295273052016810550666867674208493482946580311085211127280303926564034183997899998612508735348695852129167502574263592793217172129236606815003162467119219957862430607137749247971504941604915428142427346900998729744126199209628212411392126782535769424293650837741449570164938370614942507233591968016656671369804144583985496041266725652541529164996830280439924420516301956292714726898549373362792451099064234616846759223377602678789109723840974713021190861503774712211102206477607885377811949906183080824322899291477596228751817087462340781348635520625635281943216407855589479050861952044707357158460567015506158312517672603497362592325451597813775098582280124422961879949003320176509518827823233925791006983686618981099699051429629479126242266820838432011079757061333833044290470052656538325077712153811513496215670919246071857288316377418302478112671445991923504454323889052223366202063992911552596896386646398458053016602588852622805776335657743726579858607440093499375206590881729636084126394322068090038599225809281671188316479409392216565738344199871292248921339557376167197353198099585653225886447507539597598236750733580334680406499118634917641799292997292041785799556568700746265787056997261230196503670039527786402069735835644483535047269568018060562209856158751558110075144550332500380887296639653894524387334324347383553363223831362246563827205689018857052832445819505554017396762797021833028725638410907812328026213865323818887997418594478612407803781321985286982706621641329245772995775139884113735696583014676623940253638776790436730717413914838596362853185837193221033439046312820104277433962648752994302585248873857980031811371232777612737887503125709342376809010232951968989092568204461072099967907677368158530224520274133765361654834453922593893828641029135866358699707786111217185654710823503291831575133365230890175456092273052584196344792418076844452903294159439767393035897313309535054625807479674784405650869781147124165033911271961138312390715010614697402718202729548026905195642185734210078257828012744311213853193958361069981488469712336898110394571412182115644667766920904249308543075348242517003802036029684674886800659660486058112050721737865592022084631982724483157570913074561745087044797518656658197522954119299033821635408487213253678085214899957161592681196968315371361817483729947290122943359241873792111763790645743533228270561470349936718477909341188171518836999195499098787467047599399501269041552768915304520680369034578549649731810962740767492035993132898646364335861917772900127969783724740610273741640563165248984797104010600398220501622484436930256728841598263645171176089379544778372849101890123173435921490118319124387087315765953392900505201952310683717254414221561706513305778417298659279696529874356995220835477512841461289304248078608714041070055018216394661841451290262324241597671964729303017731786451654954634089702536963863392613093316018257109176432841433405630044878598827068643608394048141870970524253626957799700254095407622928503236542258447857040189856516844675581286899917585253858757741910831028430281127144167683933224428881141458354543638640663164272520511957992704854510540685880054117428218059491458566186047071251789771056385410003584254531937257127441697262810879273194534829225009589659183450891319846597153082537940105089956027869875923926051818601777081320236647533156770319675032606348855192318387163465388184318893445461815074345279876732855039402014128715371388800606897164637954515541658732066795930356324346045900657028898026718523160165035896701763729996213215213097898294535906460790237257345429838348511788543037789163147695670891774708127588138352665534927693824071076253225578983309958942102967041056715558404576978704627150031191304254638644073573740647750512143219514613843812197991162861736839914961967001928020279925243627842064419353497847487034295785996151948325830523718246715443272655679048795002474482797900450305343712535748784112618964249475333159821779461997473554869589878012489567339102675592600931041390573677256479678942412412010543500654414035089174889069722008814025862914858144042194537841573120176279622101430325312734761221943814379538319632198284754148297608767515142635738521413137442754465920966955924730440300039860292451839285287917116289422098894309980168602201806046694825362025264677247911629111186300091422905009391133662200019171327340359113303584517701486897206400203914116019977646536839136267276518603079551455645531461131349748943881812014565388253183266398407940131630967203982303109603470915873421724563087983355552503073758194530845445825854132100165082778451845732155166104533765365586439027824546555862187034133290236077717762604722447580028390689367766040773606875607386213906428088793129399617796838979101531426352435487440476242914745458474828926739854476955641626254410265239751285973936255100243891807633130573179148514068018664135409272184879324711594871730399988290465003058747720539620833359060959684905051653051175295244359611667945650216733557893808689519752740502771984816732750510150120532548565692102978058891195937690859977609193964151401572649504722521378306055469833181943072552907015179214570236829032661095022225370792747139751367722879472447103494639394486596151596438907767743874751009175614597293468016970413805809135789562990623581329678563545689740863595605707093700125294669754942265363705407493270884275234212227853215686223366464242647551328859496410315965989626784218422468184931394141976601663824300166662340491355274842687796749050645478402224457723251813030512819096444402248007140359484986580925786597966689427628763169757774699600819933464742306106632275066318957828964665996331182956448476759918374403198749766067903176147405098830267283176789040890067432194260130560253247259036245462594701319269169922407714539046432504803586701313622214680458261408664691498425392196991623129617273358731135726999494921160039716210352563056130764036929497658796628702214457081589797504758873213518139050983948294206807863125096398769602446193819876785047660266579058579086945414165506949705157458049717231822055809747752996939788781055058888282631112119132560493337547414372622759143464674407978904739517025109586597915378248144527711587769913043123913026078662917758227781413965006978161513578514135629507494010044866063317745637197267905862889307502412996401564046857451629309454204942688348699675574870366274996581310434542007225869436081980934053456558674842648887132726918806177962141612740253834732890031606524201649627145323829989235230944096920335800477279788905089869582327140087000709634443659702569215319205907289785010261871454302497393890712457844366949551546546696608270046691418664690959913573145041180477877966294037649102677277326490638745127676613493288282617076533686700802090428820642951665097486227768431040978911883012637074623042122907043846709818830164093434068401543596202459720203064985482390204023705812570433892661838993862055289782108259584443460194165054889818306479698643466474682833073005342444967627060844021881351277852544769716516309113375725374394560377869266171577451806732610493492523314765932898169575093761860420119108788563150876613160721966932131615020534447061816291283891497937153966974583030282890224765628833352235987653111332918015290900271405324147319018071023504915893544077176160950400110960437195518068313119243945017917158853995638162102558026423198575750274081429637503942826734806552891795008623448956237364876138663544018920967065232434743847266605498509784267541667378541372137159943556236565352599035922002651106560716581124871651517558772421426945591738566513874838365134687507646802174134685298028538226958550695071574982326941097687121615650489658763031799136296159807447095843963585279795096198591151154826455260266696086950411268582683722835793743068625195532309990158268598920828150006859761053856688416969282084311747008162275156209403184449554832297120032151491612880137006642460076812986667633128517106647065246925676110908018726127117822217405148736516687008840682655455591687134422284508092476769744543625562509955275878191998219603128665093626626350590416901391021081541007329739870790515240056994417247880755215415319012426230744571128031891876409347973184166684601843286402850087832191784098909642156635265668210187983099757255679148066207788487143577516219000173035220269380178891865523214892134135804633688936848519890477535362302435479360172405132756223939982854414066431191227420731382529708923847421799070877426921668445523390134546535995087915066514811651464698526273456333812297310540884534507946134182354078065378331524055896793410662856165997160580364641102706827258611146845024222756266272251745859463802736017013362513825682023360723045668054445967624351025740875515644790982484581882949607150735257735897820002984741723461515799277395295013656719486194335703120335887591894695967863238358346173153505502248475487249493309356685497302912815073051983091749654961903287839796317415970315449722894405742596276715636405501635771202001316909574227505933196766500444827988925568955279645072711088845644134615485047943536933422334975797847298327987526228051318754872145013241106606960464238805426443971123076258196748717271449154168299888962969519922449861427704171490698366601129733156839230958853683364921111518083524703921356322210852867003571245416441418224870161102464267871845586171509139550709682781451646871731934645107213012960087204990167698175608378941296109348951586668288020283191786490194651221510791250353499353155482963918194467618565893321599568810136201847652962714352289648627119431974240810360178082077753160630299860599505703589937936897393139769732811230443165167061362591109558469569902623587153048958776550616312066287058103196519762581153496286979509718849187774422884420287497407635099190932380030605769528051795750966159654730185022100131917104126460265008876319031679861169147996165651595938640320228658230580760258054795722366598842152778143513510075911668011097482947831226928060313226942115561289866931521988854769012218311851939746382562460446132944919719840750271889035225964707170985290193331263167284793105805748999826395176170430889720500745308208771299758824477150118366253284143020718408262422357883118177409334106401471383736740978259962182112165907897201535206447308976590013868548091553372963757677533210325188488288383811456255223417693015408424314376094575360954376363756522898064543636178248154090846739586748239619045633753763752350825822213363344301771676854729788657052664408349505224959585018964777760524977223607905956529987524075589943043130601140553532999113130821544125283995183871892082763530092992639595574251523880975966542629053247361027519343955574406388922824757329944601379460285669685405771651645103961650704892996975451912224288871199269240040203034445805960580880061800864638263915467383246103191179544577525908917635151720662916999054807497353855490634242473107404856839024426555857600683915353353039447198798515861033454689288712300884535810721468448524199132400130011610444564747486556959371280563620328338321596860708514218010641266446454181718145900147572840843208607452832788074064333920189571557898201851129554358015502381449539696071853957605334503286661438958233920521424815341070223809937751619384249583784406842576834200591198096997778898923980929820652385468467660642243797420121322669076078365503453743993267385222266369108730457807307002900077862194989396230063578682438605498210174538869952089298794804817166501334814222236195280969245581010668130507967673968716544486734920357773083912152578579677385181611778722813297231937714419756590364378047168884525085578807456947057554825252969761265814769563672179535176208400151781703134749236503951148506622937679133895797400274359010032320206686011460301070096399910443069777234353513561187440852983636716741545743149405188144167719536772686085472186544718766761576265833778607038664384564423722701332320526464113851441867360880945776262272163109461346189245386105945084651799935643649275163274468450507265070669623946706112448030594917675961825199768174483622404900113289592359933508374047356453473135910875538900654010529771475994490408419206368913037661785172882932698480467079120997665223458568085537596450655991324341289145606756720698194488837984149432998581382971539621475308920292731473637275855467926244693242490445808518565997743284181877596063639717444159650241629097139853123735548425865296691153410023104201119568725998195871229807234649291919910003453662190696471319589434437695151146865726928188669187919228819391856104814609402180858211564519499536422386029176945961343004384310112988250578635683837348630688321205414758666790657268306406269726607613685029913041691952744668661356964833026076440217539388438719057507013435768756936231963130210107572929321433352556190937590277187785978107760202648884897605878425918959601700435244725116658022252202080418631009586770785812054888265824432376215065496072143675854768979763688493681967863064582614380534067106596348770503852717136993455357075989219788821139654475754533341584145109153240334701978406187470757963874013954895755808786940438795428792382829246937940279715346002836657801620911408779388662471801836138602251261067409421513786946358991765954866394062216044936414663624108657231624090692313698305090790724795198238248450348547699376836607770254148473965812693634690413375754792464209163738217625794371669985426184048230831013235692756189166385376282974267653862706165771740102309404319971216564867527685451318325231080588052698388266593919503487199906810450984368623353959077729300262750381081542851839725727977800965414316542249577356848172244640102152210448014148935557170792260613570682954963962782530243129720772038210807844078174707658042313075344348397591384879930969390970043666916278310544414394547993133430183201694436800722441865937668362982352025090069192757850934114346285003580267517158344943667273158865892900756830273356694506156605389745870232888418133471462367107533247760989203382747013209731854784507226349281906764531109908688236474540936077928810663981420471156368531775093546581379392182735750139193910386143968315766073568297981692319390469941711387171354648250319117895433908103011228231117301284138075607539107655225631213248303456336080085760635276015964766367260740689131792043762949720310927901690907615520021795840954098448534592262061296227892517415259152674625255403597467476107067675997137822604208287299639008063828716052363859650807384124194268423838682628067228247161673607433971961515329710688332993981751764780256748305876575206161348531471952108269703598781690214406577148277429769454039370106597940045002558585674358315145329972558519057310387953319915104061290920690420922831474585744219008868318039586040464106882456878799354796748958902974092503964431539064204702096125506345565840271123985632741709661711078581336905452674089624339761126300061416442858685081548952658440848017080846465289305622376572508567065561729715912212573837104979296526047930572479875473982358599805350744049550011330354598137718575045052917340058084932928981080837195582999099509152285780513664640127287519624101341494708648768034890417190036074726609871201988335505748266729023303737466439214507999740525504343716540471592212017169879806931872951508756120938954852179103693010775194226263685913299246086914376877205743828785994147363730354509449737697798374796997650978008627580333297699964842402839268758968687950688821454376152188082506379330381832213779650227205396651915257646705950505736056913132860324436530931265333097458432399808255312338209637132703495239889394934497157669191672527532006478111045227599201019376301644776994156552531981044487675139671959537730487334358159113273489788255049001105931148427255420272818136719218954654133676033446002631470254365167900730978768733643706351062255905093098100608510491997600229165236643768884562697184944132057874150712421515370299834386163354116813650877265125216462819572943295704839839448646839012394672907515068032284957187414601480726244348575277305389076318494056791296230788097102722159783951267783443591574353517734062369153432688274197348706515485237441850248478257892606377578032262613538657970236792905814594801222665929819302417411231173304313406065755683832199343449600145020000065825618109164451809866332331517221417533106514319680407722285389791055782095886597948369336242337408939567776617919774145261951917202123333086221756318016734305854762922492122216890968228300145401389818921985745317426009482622562724732677752949998440309580027093058857575148121980388222040020651304828139026384526041560932176478197497437225351878389520926609993508397904644752755937727770345215944465969592271639312786407833666199235239653006202807151812640393399145058756303931710036398716475788236901458263268550075457386731917831698283274960072849777170143962483858207720166191803650728628843138247499296999098056691786463595547703895697229342383322896475446966440635986743603420769590481964337506776634846129078325051810772922567464640268237207766580244070202330013586284704806327070986926458364482377839663006650856374130356593312396985066917394789324951016050477093880524199212535404766174292300028752454817964655508043992909275588384120655969199954687488126010407671694175787667621904863380143155758392352913608397330241497539817392881156407722220524705378055937007714339342961720681502728979747429831605506152439151394178004436398278523036049656139740151452660582723457365251382296175805018558092308178633198050391286835436681573830224675407772434269186445245432897487913620961765953501744440147045214849466290126157397308352704299265089766513937611357941745848796087576324735339791254394777164367616054299895559986121899453391351994800367776983400823621419020264431996574828133669413582587303645857884579169085181676428000441864477780507389421218747388237840748464609057486711840184348376603511772423300214161481877005726879269816597640273226070222557435265178098206542348548086929563389425180430311839336216815727108926706049499686111393995922488554473122936838609921476516165025569689429813500518780255053182160487381734969989420895795299305792573775029705967665065661002951951713996034866003675914120111095661111110491424398596870073362029729856008026566634361769530692987420935141137860832385310127800729618392847575348952200267853653077767882769496707140113092483197564344840188998032159618726442248848080599683609069348681581564576105595712774806081406699963523540837567700058897620956032749828188260764501249555188297271841596662201675376525084460385289111268288951454651844972528579388763434004812651462642057759024245041911141250351061245234915552629940274497758499672242020438580788302719095587473828265917266430890113337237585101698414074752559178246755821792104913912683307948585500048793196759362743753446289755213500903322485519234456972977834182330592532600431824722599877592638959740854983245805932570963191857778797937346941399860227376227846921155366044136558428142305052279699655270071944921331796891002597266928514058559510326235598148563025899819512371644832425146589796052979888481407091143254278939501648179413175309133001295114270524451432309405347218257230620130416874960026816155337932069988036315070909230849748471009701908468670589483147810165515903871401291287159252226856280232428304928977099875032552675528781579653916107022236815844201499088925047380919004703467036545885831040719912063680089408794996772209551108856988683537912649918466284162245030138151439957922983712518387807121866594663769842778826546019366663399901700096206761368275695038215612473188159053986245518848496077575437577880557168814908119610812109360327826555499351428244309964366824189712793401856759998512607409045204189335082598715644684305020746737935612314884209333978933963163421870597632478584386631560411087717046416471356791465618934527696922565410022458368676973325753013369660924473196651173762902356501928703680199043762739462774607278582173539433522306553897321929715084204798515546656202325517815763185421331098573768947548562849907048056123307435053051032169247286305969977947167093736425524986012148975990463648342126592381697218650401959298296326610208081209725514919815868566059009875535652121716843221308425782617229096016880473830701488716788789655173953717920034175172400432548612795239375897441606772189701772109397015523788435319348651759538663346084619084688075398263479955401872585573852607123032651425280839024130534579957312098816424274304117942598205603157634397516237500343661491957337493045537557342865424751141425021076249348624837971037629061284730812864522003940206288881665427706063649638452354664514080900153286850654253605121085232706195320564295446475942640076583695745300171007570933777156779974729628792678732080544700535733426441460687028249148120575104029945840028239250331358832465348511664011677844332511089484420428712659191108073554922563268478278353172408086426660342880996857385951592096613881544086617472529389711413232725371546510261847943044321344550422548171167987037385515670184426205209462638180039222371758483813641398692588198029613855564616420601325690383846672061942796695577810056176626829537853794199892167360349882076574206131446200169556892138727652330046748214158405391019611917871208132764434272617984703266016640033887916437167024447677533669050154871035812474200181842952907425847103631964301650390026751160059068042156265806482353383995292787332308560440597458119500202317529770514338307709276690700629566674963759464251004389459154488451152160721572408621688447655358832010616240641534035912266029204644522084200296625809738291084813112873241351095386914331950642593266992062375582357340542031389806773908822106947331535925370794276620048197826386113500295399344691198237437768375255466322197922354925306995742539223216301268521865872738459135032091527553003631506380571439282227080572182049060398871929197286675277755135731199186812519940865867671661973817722249440229873862406229644649533550975553533564594036019169751342405939801726163971900911291940258886223560580187425278553185640967376652231973426015736257025940196973980651418946651010689425844839714910254856862143697120248963922717130844584471435706940006792738272424439152182922498761591927593389463638944960833128093348597085385961573065073867572443662732521541610956613751243708585114632225088075858682759362825031702616801005443559070186852686505879697212059950342711682532038198004588422347974847160805151604884079587796333388138865524032254307164175993994753826706244831347555837101038864320092908771042777022068830720182482239187918667849741240345653456565806173444235649813059373237704470875296777725187661343210386810159575508062395285666818432175166197113411568588942762525768400178857607682964189636846867582774317420280953659326626246399892871166733675972442972495244180860819829811923283734231450286674105469231157692983792652285388145550441207040943376583744983250202247590371548046251624092221165629876060366077561303328473292932827833454067315223624510821032544186429042037468264647108669399347802958674188888545778231628258477279733922444628344273173832895691676519240399672803702826189707122383924739530252610730225589805080193482106518890980240605570600087017213654430289477916488635823534043667727359393416447902162062134569287221407315458477553527814890411156216416488990031543239425737037684293698631350917534908225785045036467505753358112740897754986145307017924199104838057101586969957909629767449277508731666519583895947141373648457573337199386226615182211915566577521004469051122951009704291157764540009769489888598315831757164565325280779468562035556478365904083096032185959097334217835937802713154557165067597254305415900683176304058929139435682664713568131754725435397403948324443846176203405737933951394090927214533903969511964260643540381492739017259019997648289285783725620743887957188824860480276896987955467516786083655380411959904967786452998685279136364977871465762063165620649431450694738451011669848724841032483968271845040757510178557595547208782415932452805201471659392789237002254148009057319256611611101872974356799162204241747652311640726958097373101122639463179007099849006545155747197362085140431201442645557287742354210450368933581047779757898428216152236720105382781134413115342094912909329237493985534297611215446210146869913752536723419220791274840833524652207003399385002474087407373424034680765355367958376099631082952936729663219053453175150835633702292980090919881238278389844818164158992446810317750737499808470623923507647750831374047401497861176756405531009680243056838126490700752880614145172429980428735696606960649067808682078134173732118456471877976762365149047308231487016202962725530818174106398044027068668446539493868455267023884656364739147003302337843287309853297737955328739937246755484727054529214550004113228124572006136702455538308099536092312499851953214513173302724742268202547873084003866714084076340518861526462402209985707930136962866517166869997701271227346542888898566226857203145593962022041687988862034547547794857991675416874286006486304074720440324226878281769720291580316580802439500638231600695384453812609483989241888710544101820856546141433315597253450723058188397043235675121012812525124023538955149259681033488557573316984605694868243403583319941653141590684786135894225115108721156882050513779618857530815845769314800855669192388862190876123061143113210626484401979968024873275213112837262814263814716256758016765973183656292487337300007733538682045580575169866708554554739325091436690386996167891887274488492567535502584485342961712376467641868320979224870656650208113390836598648238241698407474959314470157568893996905940658445230426419016957353162402260337515206131000352122634281330682137109592221952990261873756440911215978999481151487921633735068790257764122551516630256093596229708717430049760901873193129543907842474769503494853192252122506110936342848834027260294358043618852472348629903363923771294417846786580935835627508654706070929935166523402397729747653443433202872403203730248339463540802376456922032582452497520260930508027139397568833498426118357891743130514421405845412067288031593420403439795057809189223946015040431227276345691977190730305543276028494479370418423875537936605917098065732671064201701324090673338630983513518183898132420464365534089786901435691974847818202622687466959769011115643882650566604857645642288124392656543932339837774397101591955921109863757188389115515242508735595951834288986341803752619992998145982792640495060761482776984527161753296713894843350124227738840806568634071487255269577361504288262909095924137932894691611391634440678291103881678578911698246041422456537902268976911711581015128285395217082608608797160626646244200052876366338967858630432813350553735947348440357195155674504963134584566327217579804956513165998966272704530353891123771345441827936752516621577540857887892773520965028151877151778117871274360915597334612223802941731440871838037114306183866246394291667444460993459480901798777588744642327227199043861610752460968711322183694821609922411105577808743641298592900308956252250397690193350216017582545270000551122736008914979840292182374621935357332954398587058050022152627480476414406595987777817280272894291335447886511418264379229791232702277887801899108436801103146206514495236770400111036776999420685899064858540408772133740854786705869662156788312611748592536463117065782270923016853426740963525773109134906224577185298074136300791423152553032913414077067684395405818042699194077750471666748880788802693694186506627053392072117191392127271759655513193891141434472127723564220963577455222407310716745857975451883103207059599333286742570055254678970019528583531123223690994240929273131245246770531653237963735732512711962705287839061491461980690691895434963584026640752228619286308813659860260237268589888514220271256809259730708042736333411254092940659233506600476153663447941573627095814901819076604246766503668994601992154509731010357723731832877218206077176202141702104491385608547921221172925468160321116033041195772422920974201302194729967784141693881111079816886085234926215365013790738308139024038255286094726558686907430547300729764513877474042914294998125192597475836948509968103038188765791087505705236135066400035000290390327556097909065974627023035614577436104862337239081446555783318165658622668508347468459320330445357386549048540797986056250210280643883110596092190149430437757621685486268851749219871410082378704101349377840451389302372394984205369072896423485045470242783117176342846690111746698001778416488594110896839278333633733843116560929718840001864075933802938863757288553329398643532406944836605642877449053948790484242677266916021090101155152606119829301606668450074005327058989010248782024044601486903946274844162285815448590684479805580852435635758255908779760382017761464023985864932218241814057864363666687796257388870931431162261691524812659169510645716158937315979819442755590174705219917421082382442444122224383213455574119811975576057261223062963642532439646235111842001396189167520868557837818620150552544412718060169182450765645418784388884302150328736013549226136223516064031425911592510638349884251820863323985114990751389654025192699464616127381717008510700313850322429338814350897568869896117742062379991675538600480537305482581474027503026390304505469378145259630580592042851469774659844842576057856621237672138947874744933745686320768501984457131303302462891374814523187816908355979001124632097245606413037125852101983127910662484924401623221822509695569780688426221866886782884124828896653744581878091524945705846213759166843915225292265603774465363183304170420960475208238538470115174313569213134845628784604765158890050625631324808730997615772267104946047973730486133764887111024347077972768915743294205936465077776348267122468101159944203586369251164645720971794842725988302781781966322152310389204645210433518669905382172681926914156013459740384878366485605427544918281049748432259242344923626285522504696553663397266352629439318731428043513858689935345051303888721388049829282999403435977514008563990508283373420986478883858682931625776007866631695796711749876656667848699286317640347400742336592041405001275553590108067392056305150669956790920002631422249843310829082368653159465063677100501300937348407430882768901164900849537626163937573109484597049664976163582963686884024063343744325955324393517848717259111570465710477031713713597137099943120319581994549271706710933267237849416750172118775258216899972799097979807580931771971358437024912250337463168437494761562250533400892244281287375648190559773621526425615667719348821609601343008475695774384645681703227841323482734863922440959147450757712682658792517590055297024815712884153445611967807761308161260438197772265985262417752567801903750505753044375737303281042904269334176140226515789885849199068487241938258139541456695524769584120027557924674571073412851139469518923729047395762924664702461210168822964324334217503861418103006451509472516172399558788401380344241357760433227846889073698542998042518763938819871884032844155765301086354324222670520255862347246686269608981281396795729070833862935674355520959314019724523545530865630724701849355507993274601072770471658164834853231425399646733688593374747141464852638121457033364888964458502564955538660348758321343655277770776217787477729711172547078188393697881468440539024032976515100851637953480488569242877817501299337448549635400402367620349421480904905548002242215280271940879298579963339792699150638282268739255110315124653597426434375251110405719936136140974132908761314634764325926319427474282451997492650273847365239558718839992657578556462451874648795083282859044333011446153705886361597537698958246517533655511494254613928175780337401473943539590681430549234020640499381355014850376760477848323608701771942121968378174201299428124938633549210273635349116716425848974134713501423470462383425593764169948107397266574706062988129884107863841352336660097616537676887161306279539745379147181717631334595635012530774701861160332121909475630542088619061940841045166560285335541946725613757880672770129220957299307055639208970219346820203621929221301709009100698184391937923173142222005455870137359867814214154475011390287000369243826283583737373217746941885197060096331100635093183620622698971749372364781508965512339488415106834644713350376457614865689518508958872816968225368938512879049647205551316538753554488755347354590282405696205211473472059966578156875950777423765238201564744151041244793184507640631967205652161378345588768624461242155750694218754067463921428923280151352615399477924041877090377864581863172047484811078381363635734668503522568804284493652044434824445314649555082518443060257288558670485195543933095459378666058323500746868206712151447615719549000276268744864211271614338461733236676711817882111681223958249127930607916169241430127901265814797328050410150207532747789945109690885549120965191270438311464888270858462693386009030013159307855306218084748112694828782447095994747766336807590462224094742042203610825773992666340270763099821558927422498040999302773065869662378423463551750732980055843990521273375412384619238559284348030702846772552373648379576563738148545834946275908627077101039225024656225456556187071354435755707883508482225310516587837796450023945907321315491278109977601850383260186300002586464970496680549765725052107604974819591441077343180057530925401572031913615402806151030412222167360183615009290572617391270818486148480046112805629536836441637281720854221954459210194115724901115657582435790824779446950090159594842947234821071453945449115077309488823567958712288783288801304131398937130640695020320726290516448558521369750325575395143324821393041276748510537700114792292043279646796061293055964165574462367836396412416694100843710339388819588747610111953468931285847048349366801492151541230130260783598260172900455653054731436882775978289876764841170953434406461936522507696935082940917528210069385127197476859567343131749941237192591426568831115682965430441157710899671654750768028425230350347499282215495849541202664161975640625350506341256988472911648991429956055680290540412454144690818590298457212108627167730785711152188244247502584722744325618863213641477697678795686180397666013881650652712607744508513712617179948473939717532118696806782813816668949879546284293807258433441754535444775199249398876966553302938046415511078645827209484947252197688695070583288059654103592157790968222518816251884898788111542218538440348662257859936847663896973123826323407314810455036870414411371806566528741592140780197826085818357311815436847147336965213186091811810243585093188532088974285542423796837963246608559440779541538504936483136220350196570859719713325852861484090460216386749626589997156047216066838314260467603814263273734526321078615761148539514426782805763583352538030251547278826448779454400018174882089258210730929972746782552654035672087683406097777854807057277755221243512877388431734523671104928440473017995364232229580075309746820690840120658804887004253702418442868830310565422949360380639955141159475253873637358583886948785035521500278204643263837181048859560115150157516888246794735346285338558254848133930934332601474153938588918247296857055232303140338027944603691272538316036231869599864869418268952666013457980046857734446808605985801413134288627057928513886101234606414155738693099387471292884208506059183864940420741971388265019979360767798500904938605515446525188657671702372215427678009198563246191582680132088761120064508934463639954601176295313748227456628699485008555954897492909938339435352760133124806213043260231976575508785482047647756428993312487909153300544382715033223245563736713147021439780870365753669716386994409753258098487059165299105441136722321207678291227289106072200480806434370873688515013673682286619601960461136422986412799065762706169101587682619663326077837949087496995845587269926150250207780873636729443141079460532369632501928332095085766956810906025544679169773535140072662855982776458040955116017448681141453405400223183903331738031051019959303663234591485651456476637588314508743067434322396965653863155220909533009197251993791433915864731355325303177316632115754828954408314892619408590431357057956461182611039236292852922575360882891286506316679918312615901324354386784722456568869057646349830507962363162477565557799865704317692634116751258477207073360489377560559166061029160650644374808599755687563124368609853314653146880257850842506222470831135124274272873363369938314554230289758788611265559801548930475218934351473037486779207019961162441898129532041064149742675903149955422428348064866159415662604583806823200970065737584687753186390604378183497015266665667446872864346548716408000817024514368879746624983918188790613862226449260617696311670061491600879067988880119719875280491314457925208525289146150963532732743036565874813618046381664298315309438518281552976100378109035919787717180034938625345358463438669332512881507508348040610260959810923339364473674771993934062862825409317829810209654333812221153167144292750290797700543394931597197825561114823682562432085078130433340663963484654253838729880276437771522182610837209323454440501557876373607003341073031775251523770132448124419188115361549568671946714334008011641604802951521631057533449074566197511465536610249150166731289132322537981106238693182110339856361469742824840220803334777742762171043184838264564539087234184743102091183133591084394860437144785067132447641587797439203378379442995877650156564304609067371630688849379688692981026894671377963123892201457061325449924910846422848197014764178166396266128555869756386412565439723534158070829567664160416357430316813324670645423670364163402036889853838419683982254972619818833586993506137284676341705513094315071841202192328676307050888537034250008507646532018244901578806502742108298598223423517846375298379642162249013516559883386605180681721341320001494051690175774426457318214470065419102708579117967822678023522351365037880129327042803702021801293952829633571015392040181328207020123127048299928778930090099164479868843665240141674593490321594879269778902451969253251382890611832218423304735362107208282591137543642304539508342136645394553957464515476367368475462451058271367334306400559427441206254332687490139832369838209099209615225832792832338409905996971491398232306221557864316625697830511062125512357081372393666386329515422916631543478612676303835519644687784475437337415519316841072475343634117004030894440551003581645014319141947193972907729147014667238974732302622663520121079074610381309673450177166616626532513080868290313696475843155027854186211291759603618108195404161092948230359517231802367044552252935009749676426700576869341293831005931629522742819459463704819104734360999921077391115994611651510730398856408542647418893120502694291804852377176760103532403519016153798352856833360483360497740406325861188602406499896720476777151311178149484327863024186277561725939552923714959346415408234878022936402875267051842228430170673270257322444200177222307850063145600267843798730074791891189714595792210697496455907380242030820688302900210351424102515114787727569714808648716487314711613879407233496265322607014317240972627002619402976479235501314803472975140759192751210209315442282958826909199558174017212142223629516004059156362029938753664999476118976173016601574799362513079186075579051809098203342574566947443754424006789170508335970243168615008192049933407694677428523313149803749447800746417242788570238889068821261837125514595297028941188040672107146687150772441461301649527395546552124047889849920624576497564834356153037160617970631382789404116874191619251344009672042406808218296895309693240228085202392725739143163585979461411441765781158839011835856090484956474081720039687261082727412414022998965697763562954612054239469969609859699791355384350686217816106768251099259115299451776991066191018475813701763615363183971023251680354316671592316806117916726285815924434613551826145149958627267307281247414390966666468422648101614823627352581543652862419957046717316420797201579889309373944350906979735168331866635853932617197145431522117231426822921685998076278478918919297710806876456488084004516415683484086040494164592731705267516727261194971006342178263548517476909354985680238427335887625256416114718855675638443466144508623634992165790867109076487531624079193378124831421224151287116397184502953948332007540781666743343732049316390462592163955821846198269469958413448812281092542934450301967764487483894688045010728941766008844162230418793506552436581089310238647542264646379499337113642469760223357807204640084968629678812270875964977784709084523771230438084516618067084426469093714372488786984763782620763520041652529833932100708659139978435576927865426513516082691707561498753626936749908966911229719899879897391066659731729677271081343568867603898182336945662282179758072881792042098769261149990425909353403849650352225094425289057406102676431146608950610971523374401407514237603429627687864099386745119012187283277903470585553537594962291676004734945638933781672991897660861628321363465724623050562643954866615280516043378223563052985782213560897034647479870635640267438507855130647242613172379041649035664369790820351716165245720222903466693819173730453659905629533630585261382040131625886647798318720118690463978749502071221540400593315391845110070571977205965024426803045353479671575549575611381816602635402529973552183558765053936015101496501009656352918211783106614666377152883072918531384769638539641485106091031498454161701651232664249731029245337074085132717889792107029258729789721593135681826015442544509573040798117501991832146205021191559808009689856869691725864411292395902823556857996445720834914866844917667288720620402617954374511319901205379446832110598054349502868390912373385101609505829575406078088534944882685458008086566243425733832552769404241675633394938066637769375849728377124415876975191923084645034981587293874421655504354234260760827608521809991304543381185841366557123869099518560548058050507597262273760507347388509847016988744362396800564432312503420042464529752754718191920221005567083526726614936101435953906839137655502309987853177086861297732071610244780321067943259777175355913848636717808127117900858076812574394071169729370716979064560136142622710164969355273982689163377902334745440786477763450741137595125646330742621114539488828149176610127851170894360484372164769941847123961269156494066310771444876404442134458258298572293980302787544447654560455186779765765149566111083940397888913516032464605548299406312772189840134352752091908687036310127785124503640881671239397225525943891694211354626640271177478435991592184019916596193981927359833087720249943474937930920427825583181050316000601532597485596426960135831424915353705096467857158670237414211151588375669160995545938853526573995490102756243631038953708650926047475207032177960959160657001721436956096271642104275920213473811370960650072238863444236590386855008358198925868451796605111478994199839069821681368879792305407301308049206993377921171927683098706260516065783366466691269418769921374060054138571344944277246641455710575014774124506254365174897686907353468600610427626045995657271152694059667927541913471273163621475813258619813756101100243395091088070775368359738223308028068589856982895655229450018743853669690799427366478115011249225578521002979018623276543318382421615594316911412305211149823574119277298867018389004312079745806942200925520229275939126479253341423969143328211048690547072490962059014746357248259786176111129210956199105923874547186227796956691582926003225226161121687850624315095457145934788854717608079121204716463473350869505815103732591878495182548029301887246006101819659124249721416274459011862925565512644130504613719885287235786692528684950275977689249038006221693728473300815136597173285401110462598289518408609526723937430398657657388320150756895975321954964684451720772956935742029804900821821082048566915840982639088724734282764252028561825044055184526575696783858015623742044528157493719362097794892401905116385155844436033550923936894636355270596691454162062772202810344651643946640456719653949060664957523456698510076463986208781171841788251280549383467412516941912088562779360174858775587432994978920760374677644514948052421836586297128236410368783891083371775469995892266554726159091443426130841235351438123829473658094648624676945716937163123053692619967078889334838781360645234950052566955626036333304146594307397294155408695495967351408689111605043364009245980038885154456409562741041081694113660488705127797696470768981363739989984282187181418403374285969156235574509070391311361631466228652651438015392072047401934050793860794372024073244087755594080017534212080640589474255300319471706509342586340213816290882178462886403155672862971505089520059943721430672691868398044097847151967064875298660857095787188384095816127962108513399888031044385049687622305369640989710506722171007838457648064859437686551299746558232195513458243209523289908945661905633394731405378647187190027265422221169291674499823922852993166878563873380036376661561962105063701471278571014534212952573768466294580157430379698977085475256188588278033548702838622938465592265173005656833920388217040738013210506130963207112061450345536234037906269076269315819326822744937502101532359680956018309722151474470080754885243676815296901172749565679143647535874021192700599539265097604751428451511761245283486903450882703219248598614775610361923190245984120954210573419315702743509066529537242648106380658214711128590330061997829726033491642269799921680117850051836458832375861326704643225061408350641478120909389837076618319798141126342469882076085584066687681003054755683053860053156456258439099659722746476990769571410842168908830100911019621828132349024164813377324801950591732260050749340040212220284424931824029289644078156646509576085980738068977429379384799493762049139574976910543771855610729614962321725008820453302796487020050517846353126054016316102106384958016938522355799254911667637393013503276852113594451640290735750343376653987901092275387676711524119265877028344359059426698801199673175052686837921894132892741988545552386200206435686402193515716561899434795861803736881760263722970096943109796775152080871788516052342199705586128375671937159723641769119972646453285498491818428536357119974040947074551324863228555448479432881785148880454160398219638803005579713729005343444630545960870446757577983739469486231822027600412237011479868468874371209604760239465454822965815001329647534540438061527361778851969790597667147836751395942115092486298990373658316552485836603993199421943885496313972885790846099788014371725250378872078757257014359550411971174840301549583042824306315744284311449144684225308624092434524129834032305624835010220600399699427024808056935211678676864933485512199176380516043212843010783844727689432539497062437255591468811136008019923448655335519581173993746105749654196786686828420617276297567130087906968205003432073986339350456877822601980911612882022078735081171706637115981896404177849563544865745710771422039326730784464227021114473497372412718741532351065292398674909624958662543867015953432159161442502481678834379467810112070157205091984240159193651645983619068393573347427604473362522914779320930863869060768113402836970893794399184499083304396775039900350276435065565382113877857869493496942252915906433523698599062598825442001518513518693719988280042067271799674612373699376746520365092636527352728266427545244814011141338838329491566348167201188864188362100144323142158874782951530614493527732547424579224075992555144419360306582534732433301767255479512016206564254726589518341137468823997889471695409173804728937790307637653047015716340877836564588523921466292635668206735003676865662794971717723081578662689443010543601374927999974040149955492385585408331830737226290481588342599321824384003352017377012023714274736608430666888079944077740059620745738946063944489856902443896987930550034247906224779365563136954789228578369975861444473677781725530254175544571102260014130070891414331552295647753513851921899243379778758888873564018961986323278652831369449011699752310008925504243251833316602904100052014594501565695262237860860377862966895363889899170279684577230489547963597157127023824537201084947086049583725189858230118820302300548699869758617318845467310894145187641370741406259722524797742587632675416272930243196824671844163484871478813272206276615969485263982619539242630640099841938695401436913025748850938504176158322034133425545023207889525164951370408733018721405474435923069849013205504580224543326541747196972970913235866663263182471865138240622760735734239206237251766323166248880409400198277905741653902001474910008771886991739945500720120774633744195124624880390324409327750985505476762448529783134120922036688994926995100165737784029074741590600385850728040122400901064959212563390474938366766975229151272588558925871348114275372884751998300012415218400399494986447844280579788060647302594155141354749449343355435220079868275517275568774866716107733793788451769026931387764157324365413140872879803282557717959096354115206363340289910004373972798397989798192378042704262131178831878096665413562928492866477341873996509588798081866112383716791069143096215854042993803002220855670169489350723492813866190957181362354241068396424663776115367654684773474123500449713180887741296686197058138829146479690970134412554350103615186810122406611779335413064345041748691935962146854809174672011990131026458550576941294641742376054875306629107521544688648623189571365746517410695107295690184473281427393255564574875994270838561494215567414825367899857467784056237285037531055519825704994255024347796704329026245053185579655605963276808499130516670885571931843354442922007700418577591292267690032263843229282430275635069528653561406167014631891960105407002845100088278478089286420774397718357815671932711780886236385937348076437731631547611143927287712800572555441443132338847396558747254880172925620250633206730631357303082969528302675461483904085864509471833536233084357640752929116191309611047985551942227279855685089237128298793011654241825568661319246692923532547841583031071434983305793667669037715578259213419184307349450141349942708929225823188760542302589585815141487994538982690910014596101431183646342267601350672749806381199998170894487471158724514120769949976786528530244208847283696067139726102113066987034362940022964792421938909519604732308373650718502723938931485947743287661757017291205351552595103514506580273863647058254269075900106403298997503222301434747650597155703711506224661591876589904879130452263151242155136230828987790198050842565173838361086931466154754067166835656438500160327690274863821402124762069106049304022014440450624866198858604383015814293499039287057746219186074029270487442473891626923194162519841687344955854064547555622955383129849445132581923841558105225022303983245718715220015297764492985917156037391311377100458679089553142206316869313003486667899504240094903971402687850488507484572646465070585260167595395999399864860761977444733643697775424877846038024938398470982257938522231032367754208301358384058485897821565742531310389553456359457256213184409385427924210191170679468377999544402136929670496131223811737109495693587298502676176107642572052676826295845871321106607812280886850408118328514066812506583582719702501116637566364826587366683206893839564823264271984391157085979842609561556077718594558596669307199899426752033541164393490396707609134965844927975727802107495634720134783845124277370205919218328944672462539746449808647216731288743197137082909939912582899353433633773822724377324824509864117749246499987263286249567734485686895352440271685886144140746999816692350003676241055997765762262220544762879648707289739703481131357850246128644409405077652769000854068048138772608306068571605972780451865960312603330538102445458620997954613617428101691054574965523530607969971725191423443099848726379408310833670700042423781463888082571889839281096076670664962605296131070364519974117804765341446010846484246227638547327322296270977453808378382656573849568809910394106389430315708250105591863260192983131208040660133765102836398954554729203230490011359616716647332760331727986803468967558368456410899703704839655075067966255056209110976746941597088832300624588685680218557816003566964957632435907167281150818523211536363013148442155528045826234406077386966528590356725049142227734957842347519040831547097951707698401399292236924169711221497862721933302556344450205205670021341509575641189343090865729543290979134761640022089096078181240041118811726789845484117711150326902998359215803392512430716514798642818156157602208282262449408936241287440761349960343272672375512475375210684851401907885372265924271049428866797339445547486511556570326185578996177075243779598136489394523288852983144362265548669494695633370945459203687241669670864783811881444982912151411518895687236012461771252357099310022981721460095683580413952226797607063409447394916411764424676181223851413963245992917178331605681514219973356829985565509729064600566230375257569754422316648491989397381342191252543308708365205557661896963616364891003171301459026169813960200932035998699665459479689708165018897190587794404085692891909500731901335188403242840162740726325751774625104180849884108801696955415024410934349402476737581648534705442948713844526277721246519934501876178226711872938024359983215178514028868417255120986821140152775921415092860015172435177527643175097014495626729475951693987830099820116528836339190315426153956915988890675810506972744637538532140858593234829889001810792545411766950546454115185965790650805584331576658283868445484100779799494951127877550940086297465387939873807212992150648904869149047804532585223327579178109505197595398183781616693631805880747249067290921777362633114064537482428447681308566874611622272932010020778906602993232657557042503653037890765755626214397623844483255326067027716994961012063681812436789665915576986508739421011223757878947599725929873435119486154346785353010280627457022606745353869805933571718408953790091434529028659821579976909081536890158869511628039903992205219189119589952394276145047643619527791282011879008693334574986518353743227950444420598274989116716091274370039795831944440336459761638431090335476676096149224106739778481809857868951330199883700111954327172405060793350355151660386765712872536795711353659930809671765348862839946733613573200575305605331836533302216761682372045415092426812179326729220693721735804443443332971601820736275508553949378627112297985205835138460698520010838075729583567089305828561747576477410453536783993678630093047164309759114492979597459032091441328529570148793221719946824598325380358700199223011343628032151890471553778330283726227637360616646338629933521775354178046977654594097033959998436694157757134261481874143376535974740177026164718258858630939009066071373904497572828989569511712066327880466618725292302382234389347057602199350989182614717035460709150067481852166324390220314782577156363571482838598735665706673702854287897310079064589849535274423972972423020543429861802992205327751369761691203495012686384896405881778101788710272531002909041369290447637860857123575302253578465870887278727930094026343127367275336297094041051345721396023372106989665269533299941889258926287530543113813270012974272697849817067923804143846703043787637435125778854141621136223628504073741785264231978630997607128856160309589715372355454061237768199572800104357335993668078780998593932291358831845042102903247898738996654375623038101194431264274589578338865931033020753897212497386221009965986374791483314672206237656456458962464355435160210744389115934387709067351733373785058274979975583530570921692275500759528965182612310931257864301077868738926568741035821054622199600366784428913935777336333978128933037155798808713376415231720472418835735666770337920972939268979396508050328074192998888367561029321663538230576752521372282611254147255700313819070139112727473216160915723580948800108113044234848115820867453780283552791124946079211365653415763282376161982410543748276243386912457544153467305862912349541110278501276390627361548603597728709627240187724989299080377257380539843552343776475012987093067783671600459761798105363609533370208216965763012816433834220782336386036520618488338722906345344644326620544160282565793267385758333041037906167981846910590201229353596486704018083202328892047664643984529803891612452174084606337414007315661572489661356294150890565051570802590800480794669838309307208056643098342070714687946088013622139991828027735729382643511583145277867707595881086072449820886368015353277907680432716134736943928510968389731885898222102930730569212952632235160763469053422927527402821174058990437067428324750250672212414563850546420080562975324667891430521458711157396415222155061207342197635714423988479467376415983702269774893654244836142135682536226783140465517459129225366909269623286837291034051439144235814317398928592259967328881947510568343983790250937940921021826319953108514967275358762345537257180804998944978485393953335056873690362679219297543538676308892925777029830518036850635634356071889509577460227519370935135027967376175785500496931785343523046885010931417838380112608002833255419575533560589733927536201335136602364536845973518375553375904685136194773981513084813403881522482589077123430380851941925593550603202690556596254757572840153575689013184726388836292204415094443833342646906705732868189106171254994923114196827516741102379005047383487290926596840247823348429636894080834854749967484797924759299783475226858695751755854196563060223855826324539905687227122245239543546307453073229055005604218090097837197415504875691149763268274128061450802441940528589115410083496958841157907725286119716828709487362519190901733916860448308361368487259947832227989854571012499425329213421619957117077521477102754535646290667214834806674585737632369722607342785889644469977251121315495169548970485512820376079846485311061571124521399359215988394574050982989065028481294633600014376106306042937011436761867730301330177120575211819082877706601955470876893787462081191789581663390166079814315711957741330339381327622948078969541186280737296806237381831168344465864529197349163929341790575368723833797653869451281117321910230816532251610594292234014260797349764867139093950755098610032461462334592380442353971628001712199750746737359133190793797469519355369907974198951533524479815064222686947668515702025945823982671749535908195053419111642100500271979542422616407164011352441291382531650549387887239125252566439801312047441233763878983890595659623375846366648899456751841775659057173708492609981033242847317477257334934784928806390414606614891783850796310054569496293262106621501926363414005719071066562439003971455955785153894428673931633405832945479153792454029376710487889187955914668380983291589766592898601201366619198872353224258456760089487288124107819277364094555311286666531892653877592434084874005435782747081348497713114164108378956979914429338634365371642697215175942487877823688754458887697147542337857238150413901125899055670835955691453766451345349134389046936980632188793130088398319068216447867704983989639491961473549168808508007150139984900721479601602819588660157664986205492680791667698398095232833163590786228326246874893909726861432543762689287602601374048194387867203933846882997293740644677591110775875476527863529315472882705109941894058386976243422825756378586829703085191370456961120599944501266165503254151854452874154322950555959627947332218119520643581162672925450359627208378443378174268772786512599335759641119620722130072445156019236984813910668722295817271364914774428034972569073547879949650415812588858310527887472448810615882114767059837399944992779153000446537283921417938915102642757821494596785793313023925234061745046327271196885333375465422609266194519783561632797572058522223440363586588307764347341693102150181373295330233393991689741328462724485189219069842276028553937312395560623590701016794516840367114066807665390892284042489608180653234555135710560668428658722352064145483223954695958534161926527769008161245104690767197047186602679733329838024311879938371098053561734918745541043366821900389717717227753580471238457326214745689428117268686293840974508319901036026332355662731416384629694844853174748946605613082327557400996900367331134659484173750537052072010119064116866787199278187772956393424661500082510877686927781900642240058406635514511470745654606303214946307433767267688546256016788023375889907210674185818768294893501448935767489391677266379355996740578867638570127868017934414631006757642152229623419612738199993793898176085698510226868533750148081395381950592787774696085196237198811845602654914994320778454415260782913268909121543847871557427421763745734438894649554858569607069932268627728296767775604441035072183390817646560063236829292663108465156347790624403524839433039431123850436561737032621178130296747225154253305714271133902263628933636873597386767981015013461077100640794320934512224121003825624622188774932883940025914891532929079398724275008020310141392412829290236417374087633681034805312603217953387335747991399212409571933184044379287045474117729028428789703353437840736739377210647628073919434060077201344429941947600609022234679608591222370996318007167738618263476891322253056696936034768747380631604780754289862131134263887448645879384070301663001028671607531298544712749802167632750854466375328518497576126391341844321184837290672103988346914711614361855581667847689495023598270334123107160420557188868259156565377683558663607541623295590790644499660563342468107921445479220410630158791365375324833796687431477912396305565867125007945355278824758530286295630000362770531648079458546019446897198766668514162946634815921953762540454150621727930465028877998122411149497742368893157696607090634559289839231796470662022527385810828545232095704167650321905610761186279545912875723880603706733461330389923886051368763008841857885390019079816190125056305621571198799877996498760178660548384581982925824277046930238488605993042446141216645792993143051265280321324385248581693169854545959611201203027613302519103522733709098506707998376219350244114238344284499820809912386659969889969134347461655774028002057392602170898587977207176757907825866643611307054975104967118098427876269269264149273022613643644058032187067348520455879417085403472754737805804091740570018942139945713620310202128296896631631794143146437084874430867504748706799181724311988573674725421802972979055133683327506888975123293946686003085085515169404594539283582285014671818661726461630287576509879877725527531829582706645278983854685224471911142027795901513354529956299290030627963008377790672398225350622648116709443637130728207537372726426757280513093439935019121497570474307390454581672639718122471949210619859041813343838033230695078280958673328389820035151853354707239607408451535158133335746227395222520465590576345206932245205488777568526087250271861572690051605504046324880066250538382044017652107008710917667135900610264889619550038891028437802574839119179343034321289772769673956528498486957247348461077641712740913285131178473974716286521422298025470960216148581052798322630083885003132389077355237864749521256912365073284337942683797225906262304040532994998063986091170943473118270672252758847722317610219330130811697607661566618613280618848075146969961233715799576984749806673551182528782671264555579371672382285691409347570143613373110200645471511875583692977809684620805356801483287333215600097770631948457579556690791576308891812432313110631351543880254474989761358188201713888254017231127647174949081077439369404440733513291943261302751953656152193832758014761052649780938943675128296915289536423652880283883346885248118800782456297956157749823813959771778878630960790864557014085193929221185999086196880137039668528223470577962671447331778979212398913937412239327962632916052854748621203531225866101572977355661842549117089353655295306375937009573039161070255153513497181987169475033681337381844326583643671606973040328326929834221377469516997120714727780896635205772098189983582504436846536417669331890791026822292591903966824531930333917884287176329809223007579492388096164334964232676010727760823736786247735884526920535152860344596956856792919678435088596082235083882772574720225219048890029898356755604689971026523538517175619804597330606756040002445261464247316570534826645245219752738340837162891113838043308527397523962332271715450004634971155508717298127588760355892808967368599131013775555039525377269826798938045013614013043228056477378287644486558400607902859489334427183896355197166126062251823782691626894487781676681402036360454988802405934006011237172722334399503178826141413384703416209456912374320218712088802138650573269011361035425486223011263746061120328574166214300584192118183953818026331050614508361583156816120910144115130559276698613188413606410284670848820959245465510240695035590837390988984725346251518186967971025465924875889246797231375034443327347597680140375556335550027820665190279932308761784626894133735939716364406215545944437063265305292733493696001276141184250127647418904981712415043141050595891040231891850800593532461498957663171682343789122682251962959387406579311157380634357146725269817870145178817384733726356362337859538241888040419666098980775706230396459669149858551005122769662881756994884135055505611554770340426664202243865787238759199578127862434981892644025371987713306329208805157024031570896372434347802105201250880767952081529430868915390544324931554745232473165918134218339363923903000294311423654683314535281004484539813293641712479266808324944969020608713084727431700114077243686536094707331830489260947955889740290704314986788298807573915776615851818848080609151142498196675506949533861359114520692537703268784941010082292210011118979156600639144664120547077119006316763905901341680431336759496681454229645904971552874077779929726381170450496917047360761431753644858713550640729973250482012333571776905136346707954090180857204732189065714649985060949832302139960987282765972213262628879649875063503532013520431186679335581949173531375727249237970616615138950083080179907136839553824449173499320770507209759325004950265256869348996912361184442199246822328881292769388889878449152205570758773075150265171072719438435710894637072047082207369688489478254523950402951153199159124408387595875660810945514787861231140842715101484993227611962906693239863797224945628200162369995133896052244252734882668935233357782911477293621029506862842270791490816219257595526942259958206988403678741151636243038092067322809235225670596311204042533355370868256938157729967778155169749158342025634965864154653700075779120381714864778499103926058639565456409722717183848890206911505173430501860517305794255753651171298856290200277697902047827767868960564572701863312083419533873724492144126760780960465566804163091336969433317328131809106233711153034196558138279407646579674494084766136245731943699578918224539761943717199320975516200054373943684480692680100772426650749712722562385858463344363491611324685450930414509155725356167991605561599634700264580244950554243613638430201284985297609567521985330346758888246524097502977026568663923870220832068905613757024015791633574854431290936772886845522995677730980340713024169589208781146655078106447461100979989089248732328293674509811315792815394381280981403244438011317208514763785568430833540947340355498372573584027287808149784897349692284958469488121995043502165745045250427228303012187072810361992652192467899092671776864362783909908070718706558705272852930404971110068344634130219023470108900483163901256122914446923015712346773225259263336581348333633866933679781019210962044133288934798787314858464190116409616805254691429929182181285813447932467775713499758353746519160504304725745257325500748440953601781795307330242172353079380449105059097697403582495243036100748979640591294132273180235409340793993506193654274476426462560727480721124837802672053424954270175828349997887295029947746810736976308850141749583513240728254205047993388450137575822065180733850484366124254538444141449722327611376395049724129918125578891993768754181677262643777589822029749065991882114774343514115189080973928939597112890202357218769743942953818267506153302513879631953816806708962642717276311922578193540762550431127281019354452365093109009512220772848721366367935164183221028239069951793064784710291302881824218751593262474006501616656544170024755796926620346826357844087155619589615196423243526959989047605519297978742616941476502045804021340182819000123350142839421959904753945003675931521123129702999750628554240208231630413183008062397324614623518435953886226036978358442934152888265852263864629992902679461659263403153847547662922591845132471329501846839936780691269592323524038112222346965046321258596614570547049806998291496052496205668424061672374747140317602585038022681164964708186534951001441389974580170903523478637371799489162571597331832115750028594048540256991908261696501034622160244711759618654473810406679582131959966181699175489916180256867447152955148810049354895473548565328799683724554661992068652684868376914502195579756272634604718551674381705638482897940454559439492377528687526571046091434385623030091650695466810565604266264115132034946003816097866407502221455084375152242214666066497134204553937022290102612212552266259700062877385787032053486198353689469924812225803711800265634067047846745176182043527002365995428344271740369537287326792336390882938879214884647154151064476408609908384572250290328897876488693556563527599353017608002166012862605284120030954047375455037834464707366201195213099842801069721424606385285685890920474609081186949561193607057364609815750782783074050286016709457777199890955561346112975881889569917910043566015228779614832569606263095955845027037060652858606379984748669195950682453133734961170480523577349097815643259515416642156739216355193501635255129266184693271276393489380228906153535157748015956697671791579891412444960990318429436132736579555896300470497844905451467426927166700026421789513217905390860288789042486670897944822635361937125074322673230929636348372556209019201718908667790540162734402428410571911536649810588050495432054197638398840496996085003904629515390562706087087517178771256560348268441674606516801315321267536318339454760877333102415959430610391986951321890001391162692876809762971442974153684541563394750616674046907964894219648097711441880209600947274823124073997906864168334364275021712473753231751090080930165268409607223153844308415702159818015203026480542909349603658032479508191981023519143327419314553795086298935601599582668003620016685446878643625714095936935745825701682312275206455881129771336946227642352819536028123788740005442308760734825527887425349583828292339260040333960164730080178147549220443991847483860139887111345173405708908887597442241085648235864467209862670443460321205086502221318905333633267370000748199920543654973098183964429869911184837817452039534115901678703419008984078518032939471368953344540439523779687454312123205816525458253766679805958274555484210531110538976176891328571592386021622370223620238282229913371090648469601011334649079366780790880760767687028348921348012847584709568694130743815881508442373631570351882017551213178895224185290615121215499905211532087798823940446529795417435498853891258094667980300840877032400076673315567214486121605605566870975750886092883346770451666378485532866011757709194962368268918016578108983234555791768822702577398302455087079355216703453757581221692706271064056624491747615733479830081220684384220352118915040833269889506057648604498711087948432074829140618794767735053130972096697014793712828729581338049786970559257551775815857097111283925910549905384581788817086536676659649623617811070257641014459658943581156810661997031836891985160217577348819726855715655750647934541614427815162950373746670301408703471344902640429881425248178832730782599154493688354506876436062641921581037494106224410245921823609939149690029185152992537660044566801045393803122426503894790781834740726395911910674479973417515320293317986680061969740305993860992114255400186485764701808510341678367511031420909449174149798250133541101005400352117966465472702574940221509131136660389618711031305978763208106989718475281188387995076896708066417507069019837503078044337348011142265057949741473988287071278371040548457288060975999228711259499624746804579799708597171887819439295160885594140973019327833335050618706830661778172195054045736490198775478446359752603211787119069016548617614710830825616838516186875076046837170895933714797944230873261646915833782134203130205585386012874697775799687847601726176158294752442664523131354657485114020601935850804720394820554230341014920548284792478296910260647117378244251052622679335248763508022626326652695919182451377760735209241403257774504892426049751175720405067198374246428004902687324601328055769237463196976470363014331105508777904669064866384361522468346952724403477332059990165759223226583325123922236995428090169419215503158296057815587457374953344740570456466020073283111909960950950556733830101128385232140762327459302182097474454187037959774970638076902505302074799502906450472190836260466709300132111759064373448908036558900994475833799171830141621916441376925565101523805459281532295701256591669501445463225542373099599979805490656294137953105935002995232717427926787267728982505369227017475801505176754323887768719171884064261556368692486601870434359010794959048532770123166348115941264739403242221398748780638307043997499034007562898509316971761548178305109182174478141839975113726808710172024885056424192543115795299805921870118524508152160017680543425322773260742794658770316454534777527684423731485165555502896683432674611610867708462612411372249958866205006660677557188519363056131427423999579849451881387190383042194381208704848115221862383988595266227052780252905856824437400908615174404521221450731498047953593933899565575710567876708246631023828935362843711581311364743628736504806192674429649233904035278372186972285794917310964548152284135711053248795498599539320526453539350391037275827488741276754281337126111415591247131854239128983284108101574510819173563929617044241813723279152136848691932757089772924192785725449287888245455116265945026663331288345837086662808103017487029336212429435712516197828762843187046281357435806371446273345845031799279092280703132052400260755871511496756523943369912366373981070857172885440518808084833063317411111330659936667925493455533679548167362663417494735805799457988687839066407899355701388044118494563824518660620844293996002889107112064949812010345565871160186066825672901548377844189325380519777209943840545230604854107184700662513393572916502953972030489038730058164321706071090371278901156082128387070712680177508840610016375020686804915469515870293331081111268743568622248958779526427185451303730779565641346449438483467725592612062296017298926917903915688482823763120437984730078228104148384905143005852832671286945940951672303193079746709946569436821857780602232719781286113065987394247389150486368767196177934770983443443396614547128193591680834891575400165289137851639985318374570296104768451733612799427755943412875698052351214337968343760835572985414236366040871992495185961608373354598208496213634701828932061265454079149902231846936230985673325719680233299037408212153507957335054943814850581010528205124586944775746206049000712247796045834448820628236873848162348999388847768397854749568341516075003490532373838013779210908352635229759744719306855802384463816835669529665557289723325955905195872360420017079279213332871575105902949292884127334489038336337528900705227242646184984439701273554160990710341861837548718732223115421981372981143345923070017433438806569879778894655250249929886910197562661478775938726193057966244754436027238484835823520673396157603247890149145343325716395385575415615244512667392960016459591854526498542757949054152411469001184889873006661857959478559727243450109035882129969991288864872312301378902362119952853498004755802986506351400761798979446005487222706875584424704671376999562966077640660644827296063538930163827638029130549804337989440864295393344981496002727749575473587122429524486065217198440044425454436749949860424465461167189992068875640762824696723306988027634495194403177480631207205741281189266068553810823866178276162573565106165232007321566543809837236668894640392356591606760220146569995547876401169905773340404783859388705001673885027822897001601316971650079481897311148220236169916446692861130493729964579784219316698582583787408695801186253937051526825390643092163495744811000308379629173715730978814618350696289713977531220679933551942640753443876601695583404631298230235481708557412522859009450945796313700322515909046933453646974237081833470827615772987317684282801291217018689231289225326315477508700433165880558896397284154412892941833761193007592877027530983004676812188668297222393741592900902370630538400504943369138669155500880692581393832373138906335366531382849507348026019681205667665235053866576797242703412824868353674837065731942565828332931583942852386828958227921514848649465489571661013073543372511061320048418019208123693989711876626647333393761105410147180714017154064870382642292156868148797571481920312790249064804025559863682125207681842042481487315236875019285533225325008072556337675164036313372440187661489407187202916507938192434129809245200085166192363077303592142408064166972410217142883940864301034110631664622121313603522612105034668779618750240551305425021127888418817974380049019241992171286486567224359238969178920046249879875906678284511166144396652598357114237611825602110980952054525157801048840337086632072098094219498568664388335629071654920556989256520817774656262814905197179213407761224221049740767079849540751566292654710114011473876271926363602467270382341450250661667776634147590668327817198519262801549075710452206770786290763821178467023109433869533593156760557533557627076070571344210492809256756487223273317486196524977250254333557082695956891075171566329680896599765746093345869543625944608445490292419539356129766502324084588097389070036200220939231332309340202371727610810482829646046528779189520401377909103152459447518252528865038361619207745880089728456437045339474699858661156824748890535598046774190984022100235116115096543430955234257157170215091415696328234354025399030337834177592403451496632214975290431307772991996584948234146986281329515537861329318977244986631590722374325914780936346851891657513347029900098400563848520444065398808427050072484341811294824104293291795559541576473656261154163105938675499364757843976978164360652482371544307122369462423572556582084258443695735393249039963029418590093911971700547069240842078311554583963558122063564900749353589489876713811002982607787116755257906726765400508493081594903853931940102782925986172821202084564065827261277162631893310389344155965180447724379421461895177973903692393452837154376404284391028383765203082056332928715725603367118531713435629524297872368518718292299746136145277680946329470751869986546703560076926330449108854792691744074392036377765040798774446300795000492034603594782421290346771978110649173969561964197205808414351372273544590872113113067363910170042819985328733619522949483331859825686746534050904990231804028323583747586361143077571588649572303191762180849527008269162339504764682032343654859363124767455509499971639930329162521236019149689021505085200919585468761376148678492825623698899698498004579807123858026052265571289586610221164099264903611849342232353584849884765343268941653514026650191686551906313109328473431624104921901241053406220447134229204332754669242748449123701196497550856207843818990595180023481742028811298931434076080747328826019932658687075863025067769263513406847720301303643861369914824467265611705090219414470657214909877058068567614596123337093163826333464870909683509104550631841299023834306280461654775466495407167303572574720819939204107350501927657440457830560282586812953783049332161885059120145397864788909895703338049547634264528657538262074708571778282720692727364745343462767138325668719001999608685900115887098696026104063677699717352374114305343009286719331964310587899891374211731496938799232005130853429110277841651021724888926331239620577675270142490492508768365972150709704179559734724143355550146543884378977385756102701879581224815644814008984545184757687677587368528692118384923396532086401593206609773997210398343623364553814687712665903509339367833786054988832919887071945407622694154458442617702709262994271602651738764309543126256729468074221680557346964835071187488412072152261972403513517752700557058336145374270996532974238940234895006392314379174063695645842992901390383425838042820371846920782588308410913514930550783376970390010320080085256218007963945639633902413581332466195219749421622307375003346904471042344837324971469249563294273718487992319228980213008076525297684155939030835106120491321732243610740080990889805439402220055425690055564141307963249257559341629307115961117525021402213104585317774490403036879182677145768180915711944761705686170426316522250643875669107147085163272983655177613641251971567535917512498287155909656096511843383766447821642479810631016215419657860841415869424311392490983371820369603236593008407198969420725121177903969168103011059957805470416818478499369547777412591224742072766802492045567356596269186204585716970538347739337633683937934830751091539410223877321094288369308361845943453747423502679275549211103366513991040683809295729553442546704001177584401872353443733094253704206484228404138161011461448514096586625708309094000674227195041639912517773203650244331315410488371835879783703315405548234681113524870232606307815761478525756494060574359743141953948032957048611738196813047975515761515660834000932694234576100110086754423044504539124711984724891874122112709841799360157132438945731267786272689789488902292302358292849471559680518407571051643626188157825550278099334201094515314350343534689316380303637309574791929407047876858265768492925154107733910618450189123281114416327405902427467432674994502866064964674790867658741499378406402425589943039024850844409102909053565980285450146270764394813222621106276280513920263402957137480999314018981570679330365054086484775703189934156949713140722456626345187841795167440552456505124801991604095300715261571200060158707527589622286095069073646310513144382651575570248212801080152126702796365655654740436720306569791333363533381343135172837692185610896964098864682124358776799183992103324680625583907554836924135437174465111982993492706840675378863414361082761410096263046446876180535879502875558114016867204621758017251060140919243085641493194895101034174947078775690328413712641475397166369601763282226035012105216020539812792893499978872273125741130931016151481349940961152248476776141423871321514629054515789687889738052020368195670914066331030525447903754321800936375746984484682958403488612767593575538150212286506743479422505146319123990256230731888991004289264344554502717765500063546309657746607725572952729940263179806403360619446931676659817648879726207702633065580546648381003391111271172466829216678002905575271440849226917693754784808003059681524662240646695430835034151652700722634278170350899722813764193278236569141732721238081471335394349790176546590235239792689616492957127352768208809662993638399496941657879953143725361071336332137698341242874402020329450189205974292633995733772437621812033958748078201396564967300431291487802414807557495484956448104746230428845722553977812406596041103006592879164763043441984206630588737270469719151516207747362398790099468021629974227091253896112632823139152039722316698752234456803310721934505608277938102621191650881441316063252493390918913687154944763147732646616627331768504467049655783362321706600154192297875433388388423390308432758324804611141928961157058786775698594069485369998890125796769062584406399589010411707067348142606586301609003307755890481572647141296915519724336456766155564279060728173366070953664061782829607345452129918505475397184675421587206262874475645309625769868105476353765718101719089551445656983843216835699817269849356953242711891208275477315486925149219712780575972477103153811787635192093244737044016196974203776138119115498199088230111720075694990076534372194766879134958872654974945594164930361108197879559688090007657453229979482194479944127072488988941466294119723925076357607825959994081971668197796111953730838581241208659164046098027497885497487252541604851176666216039024631709967407944471197170095225766115330102410788788295938423064970121899443806341293284107100895565521371306411756688151621523387783349756362846029407852959150494454427255849656997043401219917775293181639113365451363426437931182014890219759423893651368797574349926724098354578283884412223615107804268390872546913298483763259249312671299045082310924418449370979016608011033169067694584015653505968657613363748674820168634222786001333489206108062629159400357054163197099978942104568567149018629589815001569561657733360350017757405313467148948169987540749032156901032307075176890210346651402533316301937810504407658449569553160607332242660926230795856327231524453387172147146072058954406673349722881568121293713520202135747715992612701594159025521476910475924538983580411018624176391424882628799765744813585613866811781564946317742592146020808052353867738119853583784018868533084027513991491513182762532116938618722263494738342344214967365824823268353339467777747375530163488525103322702102694124369719417102305388732572053885008153730822348386650005370794912158658701582745385210504265945089585492360725875801250982679609687202194278105428593062531058659812667091853909233719670183598362645150755995203875235021003229924152643321717531966587553110819363368983421952789047229430463643006397986528597915385192487415537869085032335044047073670994747425419543429589625628782916448902906495907769115221301456389086476539801866471048476663163626509016464325702272262612216393504356415823644269812174380843413416367119016417326246871331910834508724602211720406630166028149930776070444582966801345944629127114187600724073564012826308281895312998614014915514156719833197650691046780635488236753959073854112160005117211635039707401191295848091609354706336318486905447205323667179297978981231250673122414869643618530866803198043452538179448459852185998432662084344469522058213575559918722715010993494565068476412012908020227728924848557561119707582629698511807497300705863070615470634905014175828218632670274675106033882142454585395709751933508977772000988913513122960818414928122492569933073520622812208397925354037842808839514314258823514660955608754395355041702202304023730001285877502273480007223920051497660184890270476157712789345669866200877523295028845407931326647996976811562098495729855966381198724120905337211548079612940925558704898922731377340662622180075148322435550149592239534351349327247576129207889850826437965750598820027350073939803253097080460468405725805715881407083297507244775824752890742239593120185698819536225941994463505498073319826591353002968867176825039700540631480841558169243734549075162869434232093592437806695532028352299993767564872301706015019619783694612326698956408654082319143809648719333229418956814553761686265095674696225437108659850982769249524198372895201888609942721788846527137227467020729553017936486897611561550518393212584991726042405599392517353440036251712961095197953647894566455791142156618439746264580829926946529436040204721648763803244219731064281119566514372797033509448639615483879115082906109314341845945401871884674374262334147636477159098187119894722506042375183642344175164320389023194856770960311314352841670561511476205713106228085837397970892267360110683978431606810442045413616437148989017858895892639840763291626483956895229179158018131519469068929062412984905268842095637347924083729060620674792666242458952846064103524088399817492993041432615799294346998747438252245919881059338274965164250989801818057431718854476421881804780603311331293827059633602491297351475334962026343579518938874865744349509165721057757011100506989905203810748605350717781629819647880100124564077986613440062858621124119666532267833818829132154309734388467160026213113232874118035892961797449681693679280150195481012551678335330364081904822821970843585788171153109720875110268315528448671770106538759643127769730347891753875267805629282065662553133788851069851628754997607956081224136710111704845749298852110627253059822287471909598842001043934225136068742867569516159993416586780896882281539822019154838542452221239989990536048115972054206544679898424625395697941362026151161564927841982036818058312601297365675214475527622881646023881811845600348201037215422577370907679950472575952217507568854431040307765252466005607378374307240090316065606528835391599820176691791229350214796383088426541684106520333943419151433519274914784279197771805663380799289603043911333707171957814853786903379817010034054270746426299538170858155304887048757977983613641790702680231518774553628936713821657950709598686965491868328636867872781415267093185978823354964719630305221652410812662727582772172932268194047047213533778510336424820773652353275271665758652854740390946879483215624444006137002995493879160396151797245954572416042727706987908248834318036890579725119576253177284955490693107030030327061259105693906707796271636786141132681612947751020280642958311757296762924680994570173866949729160357142940147452472847633449545823953357548487468945944550075252795247781580742896004941267966282240039027437852894470853132827270464347014405751230705064350004441478915605729520823144783251833277755735942949270084181617405056497299026918413589177879877192614868762312342838938799282274054818914638293979083326021132121298298373542150137425357999352266552407526043562384726114992510832653817526998319197757716013448207425014066589126859807408155717522370018764059633293003270663657431187278417178010760593767368864263651601067133782583918797986928440675505002652914001337267033666040942723247715013215607642660276337449711673910004653495200647061412648315476945359566174318706075199508707419189862748667562144231613565020374655459776871729186514311312694715674621079485490725601998830031141569094899668277323736489770405059389811129075284097686802733440545347185048610331039293924906490204246139538527315326842794010194537351844456429475091114322474148885084713668198916855676178859319652324118041405907883462456911784221379069148847405154560564988871649498926432470168195155219777746628934188491575499973557362358056053468432149378622134049431375432814961651546193633609889040975285676147282677026660055860664991179692774460341689218929856429753612547051538438597764931529295695333042865687107894171370998608524576476273586848161582591014573112500563309849735125893277504392011106348035556783692621169100813650663704182331713642844531289052061731056189399072198892984744529943083551757444145388063355755579083615458911365462933571004077682741099558028906637030814621458663351853223013603083615472065745015685986367707019496769851160450684663470698285829386313352640982670967799126639521895719894433465402612882856343830197091429500643673081324564144597578893738861425193156245024654518583414128322012529633632614549801448034517066379983411493847717145902694787373829727136553582139469101852438517783063999263714104733163640971086278397432081355847567917501733436917156536517348084112196110048922888930365640804275819142153930215081495197208379946595471908255386124865605961259682472111736558286934792317116068962905327882198582021387828656628549331315116400925044237894193552794070131930333618898990946738457130567352903756244763077593164862251820959185965618097334865125589862275213358515808567230155713153527448580751523899788927233570193923855874996191233446405273667322123366962374622604114499890144845592917390142754104456348570166700759123669845139763807845740286976716869111479241137160550723219275730432735186515408913785474387469140128786165751598062967384662651203441906239563016421681442811571707249958035214192683012734032147707493492975611995035433757898637099214416629325955875214445979713172022493804365096877999148159816974550742625129120861527159510349171847416140062162667054987052356340378652043641957023508374926584168903001163407906585068855014003007475916248570677849271891566483278076164636598010424638916113443782954781505723908795968569538566702431478538697631221805704984610543553558761697004481697539055844702296734277579225823266071302955920772868799919358025599703444927838541563429564196513324606849459075906713208815566662105768606127421520961778689068231830411098303258369357199818756948103354801903291149830851955399569415978413652716377276780234207039142185432073402068894320834544033219522326929868116193580304364089846002774872756102029700274365308713757562516034992083465135795761204193011298340214226761122815837140829908997465552144503009716753062933818623180420223031869180267667476508204619805444457045175259430301545581927902360330594794047468211373236766190169499818549538021508029420714983496625475196724561102912417685871327142707247198270893706916072627606872773729914700675834484360301888259417521345228437326642800873682468826663407552792437780381024988614722384329697345962615567882743688268090341630494158045184095172042663221462385339491306776418779373746092183169586979604412209343661959488047997899689826012508159456175231616351693734296234447819513313125533772204516091945145703401430963373782096473021861601436479767125121310917944337234986945122720296803382589552158690726286256705114309906285274215557448218671412323297569625893705499177530650666243113344197824061328180134868756898255202847507535291614430303970013581928913316042763837124257407738182772675688118753845908123811613684090893988001476207443206734847298397342208224796649787518717413247305773623119287023330955899743086019327730656328955825211775372247243861565508919314414406996693715418237474931073158796748068606108182407895106382061971670455421695334634130333782542568137383077082812279475314722406898484592456063558619875095342890967000727087355885272486604737272661137745080401508067615586368968402444031023297933200657181117086618211243147905758663842045909522585564454317692069279918622999443510323026029287979579606757595800007797400045735784356977104187963358757414712876442348168492961417819751801214608108846305740896498748089533310971308234635943474279592477487773411501162300522354130169781959791137303159403368627945227762100317219759093417003886422415388759226696624297594511264672386326922370004541435582988553545387335660799121187284273453280654479046738188667696430206301279544037303871532778128798420586536520397121404868393014613765795926939624750251426837219556362034844810547261815197619305219760752198198743296255223432447622767750793126244521818696833518597675182484882942377148770814559285536134846930441029280289554254424894860165405107986576963547792837816806580287324698735080006366056393509285594715077199674877975511374617804107638089397998017422289293538808003849209935853181479821053001859060507486623116345220925987336084452297162599743854177903251162538808209550140984872811472583400260458661741954765761052895975529664222866638382229456283794842166004199805866429287760749082282600207592536561458643687409947437397833378814770508027768804595258789318801363094487271279992028416011495691741603099960825178537601672236191906829818115823460155133812644749136827464985576244650926296417270056312351669616669458126710271577513588996688444594422110024680601313701745742155346051458161268043790000135477033619596418086033147809743598565901455597067154918253506025719385014643713784394672607611583204563594348191959541199855828588354400761127349080228073540761656581361606364409703796344930705882626332435900823167830813315541807572195601432127054798496147504134040720274803877261118457490810650453464566938267842190692865558808356039170354512317769551892291695649784748704538884451862778147000422990640899302355770115547265729092707478779713284341621965003582511890058505220423372221224772477194846499830991999583741326290944476524894120977339768216835891154889511423737967631351099685637725982128718583718598161925252273872194045089154751079393840287318607584061940046132890307132088368146635825984328122185760166007718109372677631876031481276774202281633293809419436160320212221072135581143574613300447536938490212126996398812441577239017394097889477808211344547279995788500143106826703269586579687987721099124689149580534684560495392358956997187017576430782281895787704087751992938157155889542334066447006585378367484458524445897337206004498487278840255234306166951387656089283605644844673010693719466724244226824644294612478019044226829937188877371274622307249971131715653864185229453624007314551297338211483012454397186049600327775328914479784115017275247943562180838980949015518363980191267261234986304106595404098614246294306396211643703138573540684465818353834799599881459353692884345984278872891733920393771348640641585367107244628144382539462505634517397325611151898700766532548813197438254621010052773916289570122530238618868676859920537913286273637582890582368376477826305693819265682946119173964913015690493816166744755692476373278793528177483916237358629788035191958364090773979746578844986076690928640784166233578285510182159010729833609421355170457096863701339989456552298616908998075061224248084051107303431633303287842707170774852314082471684367104889372847397664999961719694613690174861609729962704287466208229515370753342847290486074966218297689915705258362930172546756359667377148848102377017885768662741763024713478023451150623555895043437654824918702002651135655864241775666691540018048300453802519917695642779001375445167114261904406517404085162228338549464405100811677408099889777216182418346154956857437165721749899668902136728296971791676801638616384792747472623504242830105524180571914557706198134282464363059123558906673570257231021012605654173036415408457992665468994139439998547278390730241205489619081817756333639820518442831906685459230862039989468391875669676424143659250011539554071200425131637258873295815336973795314827952824298388825565295701276322881420762063306162316006184536505395196360865007827946450875494228322830226614234328668590077579974313722653430079808908405957149909372455240151629952001876382153948068292790973465047152554889195570322627065245433782445718108649729621185167526419709486713434645112314834036491383414834313227199881998387878797469456542567831987540442126069955528417992202123708903842016701172218547936858604640227167137395456357861600240512457639066620350757384460432364467323302305085118564846613040332399927997531420277396952909220950877482153170807331662347322692251328927448359547436012539525793546139917105162236198929359213243298861897269706687035633764401802118356205020147541810960209953338865727715582280889161254833006996102532772077493681119933835742543351863530408562017890671637310316308131909750518539205877288624653248061719419274057026609379215264935014671101437619280481637327245183391836592900656567385522925522515030515964189671228135387766190044463416349262064196658551761501698429786390834653748249988413089735185403418206473289971929123726972934509430919426354074340540211229816663072651531194941544830983862578871789547897806644476620976123127505365554844233271796590372588086084186619889344779834185426475166990976263497908169976844206205550707162817136459007646412915840853430019432169155291289343864096770536583591651287538289691123572844004719310705509883609487607744797488952369122416850513240895648314968729517548936295683791348994818893161080098148715002881343684029724774900822205871190897664946985709745694819939862988288035865937914191239010095226537501662349281953486588830116519128228885883829859889269083161768328358123076176491458768881203221073005974800386691730095071270774621664298150307455066596682223524905035203943696833457407738388895419857439082303147819710086251177938527531827539032090034420557511577475611037723191684830550661719987869743180616947787665482893634486074811514953950008504213766853366656165786979167217316907672682349100854961282816767776390395340925453779098727768692757760666639290128200486545976937421754392036716783783731928395426409369677802791227877716562090405165041437204599781432483320984589671230184225175629483712908293751160256564899760823732656262899102206118486052104075817547112798199211409434532211974216886458420878119528507502532992302530983748557152920242752604956531446690331173766337547036001327274403980327064963945383893009311041065761517136770978247852929957583194360125230878385444776354751199531222523607924649336135490731723191444280360984568709300037044879287027526550208618048574071199462966604440733022042583035999414894890046820539946786650188378534259363335213530727861586666322293994367961647236671095306655236896699243672391874669321993477528762160068991327629185747380964958479195832880953964234465359302129852198848015515593411086433258600146470602193777016421101175286703920230468733600942823559009516431643099686755991460005881715370693605589370172291917213202635733003784770240666925369504653610581819475881507803602152297070575013470786061103638583836480045895560129966911529387350392599548059941490641999427509017740957931476958413372000250143127576208481504975710902398140309185498574655426585527395385667141705911224383118771628406243153851721871167496534176330917361096237009972735287323563746350383312663805875662489820859098345008920421917056823652186651589887667186321049373595769220147857575156055710718440025922496709811222101998224423923268349733699394844058453485825876990049690003320468073748584356349508571752364239063807134159778140129118161856942736828389093901447275544823812155544878889258689190705114085811620031054616416859294793912177015453369098175696119828624787532048421618035234412321387937948344339745528768266950307334110655383299273692388278788318824152233762984928522503611614915111293950890948788208780334350407005456108123936625573132999679137128637978046007495411172093870139473054423105968106624564515972813287896095749574550825066234820010363424887849469144519180925622334204566645575607440621522692318393783438087491008771644345619261350303317554820882858333102164552986073929475313754364187905901363154145536652679673915066980424117604942898631479944443374154387422270281750893175011634155185175256149089612638370810404312419539186717733822508571605434084011497658726741868177690523846051681527115614996890130804895435771680026074412664553077128303253022795357164530900633896301299436113304395258676729975883796517307179538620617925301248605811546700085709783389765939179491133234546515255257289219959323697854642909687336972916973421615194582137574528112839169360047709197375845662220772748738669402856503145416391357051731347971856404805308535506765446252653464615067797224642152516606762826795491363052684122523689796227855139795223343303326522767794753853284999443101123237486787680825910716565897134608163515186999147665221481819508318474139139117751940413042884645397347542070134020755000452210596447153261467811768507391488432516659942140124172870214619581567482874115841710918378599641618998186357655465845691235572210179763208758060207203312488658522324092949739413796333797543309770625531415073390489232317778480163342608825938014824609604729084044311738957801650066507678621197858437737391277188476209892559323591946183825969631432886981823589530443739070182802037875281262086345032678470956032497904340229968151713418491201071674702068230186067393029916737934562919015248265557842100255101704327434032524514639032409919711485333224229720274362165756609547334540949386281585890436212140935543265142521933589624993363386294397313202697278349135789833780912845768599013899518248591708020592012566495376517372150046441645879751920441413874936029979425990654611466455330660518416981775990473981797544141518233493936968522035424381016686443285029742002444652856525096340215338638968307552660065589155561915753530513532186264050145050725355696700171985946536370378872212890304319418614214576345400968831394007888687266610616799986074452499129377144574259189439824911668795403407993452162379210717693864846274998038044278290102867744669385525197525181392613473095516615128821946795424414692001234864722348096662435926762368424451360934880255122388939347608203652776530376554138422425842465278782948820458243148619192481679650599440803066362872288107034042364458717094921655568504868560163546977614763981467988903793911504318743865249509870408203097256945606998385945279943323379485353040423701376765950789757393408180811771624950064161598571903206327360961659502860937640785738352374812060256096373685578519727293327712562760711487869748290662654004341065957606606815565917015809618275521168652471111838853236322027591252631415594439243972276945440357480050477082820109649219266598504460849051376535646967643900673889123015134262860448224807610315364105014192443619961965341887527659788764190717530011791200722517651782841497040444897067107704630145830216112100492846072286865176895490403435690097115482906511873025588341351296722416670400517786116048758151666341541983355286840098909484853430958270746640122830144218704515863795821067595191981394108671594962982792532450870153284645485858477060379843028796455478642063898111519071611990439885013821885133804842920456402243553434927605576912394944050086220582627914197046290757190929802190742547513943254019772134285815425867365757405862217920699351496055124130207992203634202845028800699865854368745175404040984782198990280058189352865709862083129887421520118640602881855887658384409011307028800327577357265249575422902135735985159202579414649324137439775962715946125933925174765644614702410738141915344184994172954488742982767216690905015693935968100225779379478353837491971215274685963238031446965042243236787584190595634981408096991385663522227087253506922990846598948585391269670492697481653489549667296662726861258226113770596614095718533234212989710692150176636946658962171972061762567668414354889341947193603701096396937551615531576801839067131695851935084142711825332185845388911153428367306111240212262905635801380452036068099056800666944538039427322568990896755876866109090485230628025754229115639201760218789509683416635886170627027534489250047595783637929456155233813055331685620355241490046519506972012557482960766984662099540611927111797835326925427351314226563949537899708842965057416483053828473168008905841983803565065023452915819413462065265162551735388578775759953285072488370358091591901072517774330484476062721796064343750590905722367185657582641383305330445362689631121646300221914950053334630067965639834095747662841971130298330665249576615662836204324340034514757993589966179831357409171840662689438269637287835356968559882629460995683441391034952615977259060834253008423393074106586150914223496797946656197297717767411821606537266761482909573116791550525262545447176927320915028946382761490247635399138611630066327161656354216180178294884682770671176294103222952791891864154076772054651506993331098927376868276514619048443789029534045124770697495312667061430455272947269753978997687683313613718748480652063790879915255892796057185019249246723227176815217566382750407201016126577499330685656232474773417024278504901411866079836772764503963273347867284840638892102558400694677788032593860515138475711325327581249166497457134093056652727758551467958378305816147541183141596094494600074459444688305192873441966382292327600193699244104389008982415028658409824907433365374603059802297425787324574486779925951166755739203970753832485014247670808337896843953048019053956177599479314514262690628918000520609515080964230079927191531954158326451843179704762891530691915043320064861769233698500289421794715004958670025393128072940451248858413738015619273346069864858896419574331963848183580252428824618613209031716766955835673046378795021162077563393589040775147992859516696710619150863512779530369921640076282472897747606953279258032125012627583551214335217179649439191514312358341209877084228414008479064589348673674679257249883774520148338712701110450664239941989120108968887777735187300747011158960002390259530557755213877000646086785064316150346422039679270361107538309450945686657269954847918128865062856025264603887917714730717211692012365281132867703369148163284498392978767039915102169882334059987166414840914674827740310273547962806868467610370222927106358440611977849774163084221972188655283399221314104241389409891524862856175482427564844162277929619221879678087997757671307707178349731367803735051584551424979899313390770015088410649073065637555740915865917793728439302396051334866223757649097271192909381752479712883199863903031406115322675450478793711792843891978070840247818765749334892920453422408414563541703514284086422205893573041083831822041733543064443180479638028054146266421962800267279014168389897364057774790947427240267808670850694880991699669810803514978443073465396698617564751927974299216955436596905561944741953541224579447973934763307223491051216590172096378028282571655945784928134528284901333429516131115077049985080219393175311492219344118069401113355198666814512873329263197727383487741366278323093236820092884239901596913639892537395567755770759203521529506939911736302420577033832504471466959715670161083768592660458000990517961451868017839599928484086467336999547152711209985017969388982694705583028956064320912243302268696799057387374599179529168247203119216954455330653362127831484336177085517283614583355540338649881974217526547685081829390118099036108204600364638825217794372340520999574890462721228123459340662785417453542962272690471025561616175553765602067912266108753157121936753555176658967698044280926004603249883041549086627949040078397224285892979507752722095769236524490135862561143574534910154838353680956835365810008182922045012719379265932352589564951709822742709542436854159342451165374688773234930177391320559324044808734522424175449723974977010156019173878721664074628236638435752517500500253662167693815709188448689302426530263830918852649630713660157223208787478221119132209846017217025899271271558254310198478551243244951379658174024150063292451386554226608892193980896194258572148310372201772453135363962817466459164515463670256326353754136789388240488407381991594934929503817016185225158948495582449800668621830514873926533349163687505888840916798852409874661584250689883383045876432982562593932324419353408363127599806138609669016356840878164921019360017729839168563349984540258269122107918705144316673324065377853750073871488893505755983457098230642367430961525118762175118379929046924021317366993899335065810799498055693758252810084031890585575940880921056330503872011921427894009632514399348386209932065256237236878965008379927308453490368268016616692394273474784574771695127036785570568754657297324415595098957864256247799122070040839251263935381112382463684784084004453062096808303211702609618797593600576476643864948897845117122273082660385521469873468624125372716113450573660836416347242867199064395073203943891012435315232031673962507435332778102957980685931692981036502224037830712022945581545902481099728904375042967211438404694064298066133804504157058498395062710587306144094621867304726201277197189658410788310048559310067221190580992468247865393120281195018214718307293038700567546558678735977682789552271683818645783291237166088969620324719156142778104472875333128528865169719330770157824357915970909536226565876451107794828406240858211581978512502622480698555163552795395097681243752133166669242013561480683539910061959198852567910171217495693481150824966515414817518699291776432655284480260229327079553415838971397835006488406579323578900638774988934720989391591919194910716984499050447196574187097695423204554491900383106189624589899635261998497518600385495422315974481351569421418417601236206899754375680845925910302377131264248726313037759502524726012277677652665248947815990344246388074483089519691130738704617047316012112524961977182868022478268196624817204180886888275740099511813947453103405923519263834601151122676164064756021361566928941371192656405999136592762178268660063663088567445729708680094363481261782962572758912700349858256985092894850803427344362685958768684315297180542756853435478264201560456366296835807583746871997470070009283164782459745998609890442796898103229754156962347754355931013777431598197711004356509066491364663938166114024236879113453124709907555003399868562405034113701354125352192863898830008960321763725590361390862305950706800119333458878182411008582720796892685814231108853473487671262693273965975092270428117151822272572042645531354472470850846476761050969651870025996372333161905012380581447915972183819418481016073302884996046171910897212576325772685616360380550992015751811714571442500090011454546906690736389183984577072159464933678405198457164610921987158905786735566974763758281898289795393135742212986964899520344670002656157698230289049608241928488828881824219178805669674580654134639817739537320020142746985466853961954216583724960756118244636505101277992161029670009593498017438563829614353395660226176947940068554807322596299882477238368376258617477309016408302900079304853633446266124256748428254179414266078994477050138468769030299762855593454599822639927480783714655337061843854038813009759940428255646460946099695561504038079217748369908434097740976966246160128049774460933706928245815051592788410323617077609569536833554840729790116539623433467652116937973243395158887238341024687859522406004757790903464934393510289126723591208044093731805734780899658872428005099765227570387762877263999378525112107859898167473365701982562163872484479304653232144331522773529629368987296229978069046904146224154387882569076039599890514900041707183790760167256864461258894417410423236367354402838982452781220413040554745341295736370278927847779671025207452093082871968041188737585273079003880553674532682326558543210797109011008631006637914615480426562009434014612193410966681309497615653558097013081179619232573023057860927308752043221095232608293375611457031261427685620791538980981525792663595688678899228580180792325312778343552554437306868870221727016831734634750210896413758041047813754394988547770640019827716325313320118907028608252097705989631736432771593777385529353443382645255727231419959560430716639836792815063632117427096535002068386221765611074928820883230784422502797046165716458684290760638600568290037533544989764598113863051858189012895678525788806399533877206407000209746112892103277479081866703943192627440642555621694891371390648640213137014826610630761832887364050276041064848630187064269501211149741485251414579838333910895759848275185397839847268221126793406142539858643207478678359375348948578867952561365567009801198068054066754179065522290323584237438474278610228564467070696932233914146955844761625342369596434098132196633306018182427076669788916857108311442272177754087961879914635677756912313072523921411327575066996408973608863483005502599454500362284525678569180012465184104550846190781561987431732608486011944608855632200067667758386549302470982338091189144142505020777697983793523313729943961752517698749261654021176606090241561754994660139992007420934138651727687864311513294456825825206309808318408293770035063605866584587097521870093590382492883827779744926551364482649197307395831209464851244345526250223056708426057187044504620641420953089254921768938111057120488555724403533530480485033594040546991713724772319611433448822065938185209249576547845573548593398846581269486491480003896763050560327996198788917784814942952881555329781544469816725177804919657849971618991991199313569815429795641674632987914638260739442370061918553137440038423051378289576644685280623275505551370400834028466609827391522755734877160844746097408564997276159432911664767152292468046099499427213060793060590725536906024552888823136709020544430944603364057878812873226684558632296942687635280791816270876700287744360980412264886068401663089610943332336163527680567745444036631235154624652733533689400952577853109687024008698683733295397372528908698551332997385345932693412210597498367920434309187817488305076129282341660159620721783817403890032598208381352533249996674651729210228665166755277180298203893934844861392140976675350705514992267877355507921523156957234131582706779454190836258584732203394665050467150670342313779852404096134172598511378251860081013707668331474751393371933272175209086363722918655011593111135646320662097984196844553214422927639561103040154827972180770006308268939314627043284469744065507124082152229284667606292826042796797503741952192521201047287276559442433156512921966770522970239396223674792124990998354276021945970386780444925990761498264031215267692028855391349762446302456144929546764638220494417724611923423989771271800444866534943053622232234816615876485012834761928966375698237841197252084132436822785711187508477335502625645099210019981386268335100805954698235907235757066413188959161275255224693934789252593289494815148818913262699588111744165630911169678252319232538541596414640214269674533875128480070297342429834616919001668922487811182533442081766834196454216349449144081472693887139606397168921127706739450092048777847507869530260357116158209813303889671877426680724667183521541803935464812952979495632204457439353485723039605418034741033229719227107033118120335107232243298666065568573393678683815918134136244328506469062069287284509503829488962594253708693403760295542915365085773438057906099871657863481307257981911414318633103601098210812999131396613149221702236436548151707611281956115155238882135383633677085131859476932949091823264036750048291176738331311741409914570175230089666107223601931590015335538866671262798005697205713918128538254664227202608689964105454699206229263196802180034674341548439974653192414919556218976795111521922259249529548894906180107014972023996278166110639175542658225306881635725591703713592302630201177576026598695304607371626003416206031047501775293394096635936958028347706828678150106100576833078909960394260529014778875346388901447209861317414708413288053372386340294648341403218133987506029124705548045312594263772605751733463323385910611513832224740677285945888561467396673631383365783470670381369978901534479817712787464546172174660678682183025444258356922783531214710533127858259403317730957856692711533091068982095954092634449790168694933559057620044725177713972665286189028593115318888180761118224658035518966349594047475506533342969376928670445682860275370305803232858928067709621530532661226643483226202396916410021738694005391053451896635131061791486428786947319197328379049077074236228944345650102132572767797260173870369612866325020302389391546516976351810571377508343805455978906033417424188145815105551964705822752364766744360725500882494131804030523258042355510824156641110723851677943429145959149786900337121652000435663571530689916333153320135607203693235706245513003492325992689153520665691676049399503962153378322689268223720745406765537981065036729513503293071651957058030751416694873561300591301910230964770946242757467690476008583716118432318505197107112573196062064347096143144653484021251306778963316210119239711578470170296273050664726678477490241743746703850362478333718612097334073331144424068531405466456015121451402841909667659081861355133352665545054692874007149712850887783084708844394642252164744994112430175855277329904831388505544972380303100156670818620486953432765100659602653136285391222648388733361086688719496032098482490836781589809497757404571298449479093314955031275827943627021542130738060331825316974930038652493740606240031698624034536710693535814056320779119872245838741116231362178031812086428263036116892059512536724241705266316740236881977063898313457095968039792154192689941628156748777205346519340556702904204092346153146154867104207966284636342130836244406458104102582530882384510131945329290100602047222359051643936903481760368397103895872067739570083863764847253638011279408214528487939985158732954623044810582592908318072553788333281391605592232189066264215470143224506917519955557184695481824335140299233813739085298801923551157793893235215644006352536301999244095286698853558130899362682717078911383547087346051120154816358616388536167073293004349649699941329411921941813363018168101752890632923209401618294205414625234822226832600714694684976572646815725568039260400332029632171967783122403317296005397783353704428131490403880621450951165310341140614992383932773445708546534695813051484575120791315917974336123224294595004676886825099695776656991460885515162497287414424329912541004823063496956761391668899910008318542100987144574990130980914816043957829176887880970548981800510165922409811929695297224633585852293139352587963330501884374899070837005249858067306131779542974332316817563225408970840908213575711237175869683247388145147162434503514700231642775528260314916787766252934466780867534060269742776002067522641021394609941054090104613095027805061905567034412094544953653576867232847141116048298876808587124662777208555374406085230920751503632462620478506914376384047241382904093806622872014676946395258909320837935059742620439461952905609818885955354343313728641426347794436576564746748746430836513837427147803508409428955467163079004156973145028719481856739477005823794940452721678320271883583161709393864918799079542901854707479607087897512796565046160737014421592857072694253366122462192132213939028921043195979893278074304856485015271829339234130793287346439707321346279995963379645947188473385553854546148787014860645779966470418939704423357622864307818369222439582458707790347901921821853319463235684285029058496605565153243840083297735494028549253078234348451754226552702000072671198453181913386125635333268989814731199445464403746842574710438890902624993370289310564059530353917380027388940992775028564181563219456079618422688700222310402774196101915870689368716135675839706279623467201312823768149726603317811523117596733293698928116939734554114038675889387498594734161539042320835856551708918956005948605539443991340418206677008979473119142590454321757346158426216421158260700200762253639838167724859051039199453172337151202759146773901788846972415709583255452634709226789276099949805375165199707107427888728190083228185714196575459522924014215494573328029454802995785647893335243703563547915524726974177342934484495263631984607649165729188567712428308826981510464327938852323503346694423716937888234088754908563334233695255323316074589623380793390403341492756218922195869771208664256861964940755961500175161723357137584893900904443710542986291520687571641756987703825048869079088428483016700349752222701265835803612913967908478708405484439495462349486190766445266201001909335367008869510835290891950896998525421047543955688788367657037546396744162670772410334057650623562501294562409494960582528548436934433223761126980708043671814061487576215750699833539288475283352968830231737394891985912517947751662155058478940081440716246069315318203147221031166200111156084374980772687305789095799794017500442114432042268632069448470133801510164045262938537997937972765398206014070465124383607284950738733253340960369307096666017643016160551727856576102011574898681338426793689069749378423181867254116329754909227111679410742788324673918295874795993950056062594086986254751463010886151909642537766915495104818965393713874192196284738516279314673646191309187765959827664416285317150167769643999553435674901706132281115247134973649747409481140969697209903294285018304105262412269117903862341654122128775940561191903466364416109883330762257238938955886343711577370388223154126248615019796019877032617407760685389340413221548218933949747217082903181689298079710088341553382375771236043085694285989520118740673796773683004692229436560559461499904940629541003907963027452815725642214292290970798096004110588618076478392558434532218730341497289674545545122171061551048427968457927365494195554207688861197108626665806054237854364025953251021781131223662048580333491515036516545292954524779431357161324122367876245060954028855087490280017045895545449213294481850020426890880115630748074821770726223212764920198230776247489198160449600640519960924308185964911425228998186670320693806271737398012459985469159025568708052050699685452606995588697333966538107931639835554081690356438462029603784744230954023101393311157161883078035245510166623275902119789539463746849859269521604347645419176239793043070856677162024504622186118043704717750446026351417527917364651450762434892250919003315171508704253375082835580948067106918276138049922968936264102156346710212664755914297320451690672931573084941954424647735634191788629666158141456685327845931898442802599292180287954161861028132821637988366649349636681399763125052574874672414898441283782025588813365279234382962082142152399992922353558023472366849041192813556630573946618732436101655118185622404387790943207502710947843044733540726426503788722025550065873212460364569004892266010724776933952894548834448683263006560742544004551525377382149329358348205649989154423457785421207981903867944401806916605603553654439099563648447110108977304856774319593931176752567685952978722926839286562214935258651008638379867220019033858558197522186933881153803861151401813454234457810043140938896078739315222639012244382912841322035776857522406498479486175843044666527621801499716848387408821147321271421132176657979178624075379822980690833188963743352743203529085875849063731205578922430927654592954889269816667713595949499566376017081881282842131535211355013825540629097714666872674632606148328287758343385763699852139015722819467497035396160857559339564245818436234524221061828271365325310830124842579900999998353501438028145187407927276007094839608803500001484849706488768554910770295539341078023128818451963533773318571558550195561594006267602798117603745040213380204981768232901054664321546558896995889445136491490622093596804889553821179231491636425727697013179261922096149007086605909069101964784459652811229183191359684651159853244971703618550746745095855131303125570278208589228193081076001877027271661752709756605726692431820610074086969890943436693630209522219568826449587684644896926062463400091097815021870198631168842428070280370883183114577822163264100210087165645399935038909462880483805720480818542229902551996535012161262991814844358956155148684317676700214001375889352983142650872957307394585610788131772460638574047827364107270137713691300661079457070424218137433783730622253091286094145103096334661626475094759769642194422620310859388891273084214250006865853295151095162516387738900066886194657355545935049580313364551034577733061602434145511615941788590511028922035351907478658086328029897592860157771076869954207611330165498864270644897817355782007045055409152723920214309800332840415424027028249334627143065451462362166483359727761203618042646849526885110691392877457320051718491996468621829484023390169400366521786073545563922192651296687316599705803713509113984994727736901046293809686559014611792217220933001747527234021939202318472647365974881245899430591285578083841521022994530997583614446045268180999863290013065706856700744158446802537961424468470137795129520210117718172055886584262770381247485221264425808217047390298162433456441657453284424819946660359411041508110306991454150693726252202041187136076343683785055994278713225386835284301385419567295300991211436976915641248841790218685820800340954454455902021066922564396548558523117793771168576762003515181950970713438313452390777167631040497130226351813197166782371932324539809087578254724961411880900394140056797473399163033018386946254636840683992797097080362801055957615195669067542030011356991168472701751010054296993646292506826636527851493300935260424195540238559084843800693331854461253920035498824397640461331658741442649824746313745234650543669256224226792599541874899041758422899237252135545175392010578017857101380872468677212235007632034115630472685037162248778077716514826065884083424547142114336379338634977349540352016667563090324303717760186776457039253325325486343218310505656975724166533133027288212603562988704954206036365319411755796389792931424779167725164045798909488100608325262769214433482570690019034098600634047378003005016390486895638175914815722988107468187689528471100275331257134239930332322282178034237379215029398103359268325392803452680756198822005393324400990718704195811522391453787758591671650778592277698224218691686933209801910035120949431067246751202468031649032748354355179276606327112796448864654378881667993891822111574730160810292020984437477147280371250875173119867575374706348899269860703174460982416753724138350173458886569135740092827573841089166977892447604815893096349061191213892598331320322580305950534108657875560612131137779034095921908996314102519018983918238915423152108929057261108389379418554807889244749901472362124481791805029164260551906675821264610577676733446611770628297375277688442296579696104242241857139098461505220007791036118983505007181984166230831117230223374030615967339529507842852735828888756064628735902512474218707686856368369945161884795760254602178727252488280829808670157594207129755185016752330930425875347506216967723614301500591555901175035854647896264803473817333137860913896869282729538985397058706480377458148588217085777076242696683729606267211659510996125734443148426620311651124038771953820028418690119893604164553261710394248606813645686584865406168251252249782844416182562696925812185828679381431594758735091482099449342245974973772926735988611575167024131775537467607471357031495426291204966503148369306918857022258336076625416441314045410033203718892604532154978009620860001379044235306394725969391541243455619627181023181030579519981786772411649396522185470608214333068325042092352252469119232441112476117488618287874584356828417438679034005792852777165125869769548151785558322767158297144325941929324494671161202925398983117067839884284694944458463924946750430451717911586206586123493867709618097126966264011603509454036073666514771737790056593206887934939855034420677320134321693305133215044293749217098940161810524771838121384580277417914893061966319127712645375227641527303171737435161243514061873691598267433280496745553999099331037305929962993882093206125963362525048293332437947470837523145522089038622678589179035827605952420904782927851481372916140795882473709311157352313565339600216497074487434398854738144926308795027650238292566313822456393229357767442781736302865070057357934215717920010991104706871700128400022303005424012842731987958616276723350774489496017255865245993101719475139640522381932945482813346912238476047500034594684002032974737051334146309079615258310823345202044840821753899589808425292766898769393775409445006105377525189892186847850702820165307110826172814026649028281204036386598967026715222390697859794827349415884954753104893833244417470309020088520719391276234249952307175123425052917862168735364464844351772498525285043088272823942789002569349399916122191005811513455767767570708503483314377242285361164219400308832912816635132954202544840905685625927578928783627725763937465949959958577234174941228668999083654162854733311359574243683314479843115419021349406564088500176439164925679308524246550166974814972887581830550994844929889071270624753253417456904110614537727341430203550372609226192420525241776329140620159897849242614783681379338466575959354659283213455753678671533471925613251071648018120652389284872138273251807826966020428284090402322427129317679580374423577985554486894327083525712843582547226746113098857321799081029514202359220471956778334575068570202738795818904174864239229782810542505329978039715199214829672153152040579597839214433888257087336035342039955747833694626565120519878129200789655432043435089686134263121012146379378827811974912463583995302192032194586191435929005603423278556410877433524973250509360590662940261402907885041744575097538737970321934421092566816844117725470730615736293883627395353932765074330331170336255907993312111910604762495756322196160560924551074658068849176012813727147662356632946366126314894233791855356800445203879687190280508997572794892608115514367007692920031680630883916260721648036293933591903239517971548235422050730877787051590934077200498634225742925417945862689808950814236264911510983536709583689807347291875891280857680123172203761746681544296670050084635186238246601007957681352411785358549944639756769218360313891790625966338681290132143223741871542895907887829246852976992460743648422507339807659831950222551064062271396755331935942530198088482552192666002580315872636057957320881946248760100440639953463655859682157451718330545376844004594120263735784083409637289590940363853217564592765601052792409717195057623935825817544612508827409973308175257341837844026804110758711214248252221074722397903271284732061507584572441446762601921035572010044760735610464579711875503095488583710924876916131850920483400407097896653181728388080665517013696675684657288390017422946811684442318478548915989153281242787228450834453271592628876342737148897731852914429180691194424840810701440993005629236903934230659287135635174627372592752358062565937629310393795882452680416174235463938563606961208352379584632855099814541308561706220105063329223315530581325133571393558911145473748092897153580327154264833210854030010313336575186081862365945333113840994959172008388366426284379778527653307626031722660286092595719228992565479729849812410014097048049661172488209955118768461556325150545997999145862317471600070977612184618445484558432071070363921068577606842647843508887030889369920665632126672517332335391042440836847382989710567943440375446963056416495917529417061669349639221560200666858089959065847382182115002340622840064936178892145648257608484725918407378957818324199470313761029023115904056413321977800513602884153786064234416733553946761317378486295594064071310322366683757791791018190175123481229870197894717878833992252026822546758066877494224181235441936351502873597651042264921298952227654178519982261534745266379174348106264824491898940200814181546028538887165935968303367688859485781995459329755829873764314782970669891264643339358752617920087579103325620350073524911715776903832613774498722862787231178976323511306554132557554332776346848614351957792652388032628102575320545581523592619506956132746392175219650447474968107680863244901437605140058384341868856102546031390795470341186518950304343757406526046969619025086909774223476169151559116135391165181677650973150376296730158515717149067392044092639534298542502466214716976622787569125738733572040127972591721446220589324649861220588962586454334277452542756886686164198308237228693026047160787517537695703116011675484263064917799093726661899475416020395674365113834191567259476692378180669185157675675858161314254122315383983556289452162806026289145613446286233036382866435936257321864402271717128096314994918695853225807703377929900903894706130339150118968481342306995297059722600596064935220129849231569786247345884454244344152546344899852043776613635645238852636850358589322769245506243660804906506830271079077766275974809576814713312615310130608505599921992271114405008318289740160967958024058961101986566068060489476214944005847595734914759982416293740568097348307671970755028502583671655475437385000979419250956256608180357188054169279809083376389029844716563008381525810815269920339501541612697386428381009825640922421208926672158373929325196822968061572075452277726817172572819997895262856408681821664418772320655840082655068163845513041206984980960640595423767500695478709575264600369040304680615313648325155802026132299152087543421075059696734806937325102558534601061756458901125854672740443734561313111125710642694829972825004689354536592974096828253445373069497094000644121459787550368540112144526183216403354338150426711065659885135519382867890181932152298868036519096555233302159713753191559380856647769730298658065548534109337327579110242024820112264354984657845108458967529072110540894517954895489731126312518288205095268285631467227207483167897566426556982443162388438664396790252311136846167095952663636947648939935257486976653840774196813238726600655558290408199787348939882782609756367892380854597063482239816672947906178244917388887478808697713025260314070290678381813673050093416089886324978462273136602939928216503914910199931635046024781450704851178687635963298693546761371478717388783899691346715323377147689007890503442665166976502754181773074051586016936416727374475357949777334759644962577460100904118486529056555696115102620184176721206204037359991963936584205456992403384192353236418778613821215760520235130475148834049638753292155210240118977750802337507046948723817327191083871410195150539487314352562616312212507642716965177321131269220931429445965750091144316713653746950244957364032645978029204076933948512937335865105334909265239851858593946425206984389812993748218826587448452275292398791684691960297147385451132505944211120206010965356216493155667569594504156417606630225270823753744246954588681015867856051934933122861079097968828799341070085177381819947005854734316596912168395789814113525186292141630606909088001315535259179779557576714640936934372560574662666823130450268751509911480951841663143016529537188327559019220674176219939966686252216355179850012263074169481330603185045419919966283174118532581542446964091092045541173934635049858444069706171188220194699435607570873465432260987635936663053577405594726514778277776170332488378485807682618111848892132595039253142683467754284498345851521334662557230598678829258536673948549993357556970623633448071262229559057214513509009634115264032623337540276990579133865334546501312047280733210604607694529427649847398751002275820618605545835723809843355044986604963363466250038770607167903281868125690553957490151357331960842544415150899455221732059147897101457147211628888453043152242923028444765978771979260166251101174281949073569065892809942794073377418258550314681960803379265245788954236081668733614189478249665198097617852895064170271579744146382372785073038405859568928431517682397323228200668614638498299256561957955324471104010679501887614974697794861015693928923429769374606046823982281514534976165691361757139797347060086306175703061065366496056150651169013562456257670207207774610782661610103359060339362714909370700346984660729754791939913216491402685629436870706352781259857866611137219102441003983161017814983510089773893627681442379829945804155751717557966903546253183093852609359493948517143771658082855144218445118954214169327899946955756505755949397719473496476716625963546327938839533619799844278407817023131316809255560875440830164237078543314053412482099386970907463955739116108056529509745670315144534568518033522697643159954573888906507973855431932115627973381496705434945874450790623586823508767058391670034914758324386044812287286006141782467282422509456935185266609443215937722131092871072031183702697604808882259264665109282230967789682543101397951235467688681752811294239052013653872758456039638091071242913510045070375015510527766137617019681899034667395683417417468396681173730759520470950549557217714326718360168093238649607177448375926283006576406930553845861098351604214289581037307599945032360463546083519641876210747136727619882827777807701904304518746678907726156219445540521037848262271326804573633077414289962709471081287144487638506517775387884666396150651502481864219520338688331452224137049682178940102603477856015907584082131751771216221430485724984876698722698413108189402335741350680988135132211578115366569270046151125073649414413789411798517323490855163244804217242061709130750295609320953126700606918007283977090312723018112271171470152808684685746419671790261207400213272006449250306039459296623383468775617757400131195245008991095152872102897688042891330406924427405507105990732559237328841676432773327754725376384567783928848380437343976497936653258834463469667915411368569632662251219726485133671440071145562128986295586419036722718363239100434730160289762656759014664545938793276869263427348281870295125887122615472597015170482538934817800516263963122693794328838083152097000048797100110218548140256693337467639184501958834720474623147327755573829959428062113446949850612880648592448003842341856390838641959972461184192467251242415178246878779810505738133108282812030593126462873959982062529003384959666903626993964247812055902259019412775325221277679162443156829509744622452932651795663397375087660496069819812570976279293898866040310598367994750419702790151888961778600897550819190255560210295680157076253777354083339279030354777543513245955318857404104920349088688274360717340836727295387135095821443887840616860851107342682389311986486219080202773357941350356633945284403345418798829116513647642073875963917200682842715015999534794872899408292173000979024631609168668421043204953457579660310097393262060386355393943025189882444798513716636944297908184874133686356482321608500576137001710243902143969391196289299559851651436464643733580131635211939802259065695571733388781635608857278932736942719787219329298931878084668978208652081073132556445870405695980726134945439168413183036266313548240455883299115842281879285971557050138656043999823406315858995908220656624864003495307743950212539986154954945857617620803842369180640979008491008653274920872340308180989061864218719940412689543310837351065509237190771203726614676348602505243951892592489602465607173900491252161493708655021679842896868459566387246493317114158004176572992657860970464975777013381912095205152446821910026704501644496461684667974231680036936001051562276965834418026064521058324904529811822887004226035338749307381995892662100213896359946050089751799226393693858026936008278671120855461209533282413698504653221831600986798115137807978937561593590455305517424536393376485352623756568608413513189158558440342167725929332160688081975236037191745251649186230610384359220769462696771565246534848476557653816884206956791166988059522326954714758644401899860467452546573571555621977785343514683693160850144663001394957294192320132428927081809778137982248991039901720194983227855515413407062222125100467447653344834223831796574516969342225406620495448743059008098282754269010387433241575341617894925004675204177140965499450047519634786580676619300794359105319956269977546291657097499789950241099490715330270903187602872873488688458543631773861252633831142446192607625016500164163384647764360482891540722721033197424959250274853046907734096983033936371601607352942986430672629841605328266984840450631544461166898740789513136819453918090023998634438231161564766876011972530642128998464817043785157477248854987509038832763633161399597055275122218482907626943900511326708846355855069675626153093668855607953833172967125226019492477748165283412707986229341475794071731676668030952713827166190949648952394608690834942540424136613434777947928348336802833827207453875102879726331863247454806438277830430237772053264718627161022039297123545018670560809548647489635120335974683547871677085851202905394345820936920847561666593624352587169726712573692078359598509719410104486292300859813373903955550401133704414306689485007735941456083896923060781875489227547476932383261017565023746225807396870603910020757301605951940562606273043842554960627160008296353326772943732525859513265515647376492334608968390035369957568027070720739552753094561550279751755604793803448634529048561121760719011983398422335568395557434676055287425986685436231572605242777000192121326828525338563088439340750972861328398283476710271243462839706835148952764341293446153693386775920236190838075917892747858560913257571659443609879534259771693498216026645255203046575896889936199672989947558644211348243157403076860887643933870021132579084881474431908127851137913039717343089233848717800293420019540350523029971021958208602599658809974239982000263875732988971955432718841131811701766054477009067797327323716246398489465820569063635334740615871774077889058751815071800558816954978580598978960277908695125855456234896277449846028793585096877578304959811967422147993325669815312620960696898161980628910798543166338812822753586692101372798593796021359408883122334626908902382933462162225465954215742286597619339373258738193977094839876717789757690253721770754615029970650372951181598532303930332460278072462405775538009062943446367868758391830000804595010861828002242135002063673784837483406166810898926302217166179739894564514395891309669088601500008602033528889679002742861698153396276825126926713397853473253698308099755079554547625506835925379171527756236118837414123251980670533365165109689834349483933487987620094879283127401543421321001921249424536359177421504203617475292777167544977179716025500104321547746761486193633462967744369391370381795517773538749312790962388449012132770395170683357707498733109262077642719602260456340089768262889142357012920725021491201321643874553124066082166579799174917041728015005474495363962725928639290892372640409161328468327561866834430861420793949597752574309033861113707599764068540134279097511377964478070626972390463517728156711720313797791904586386113179922280307833561538369947395826644286147592157899308848031200555567886764166594632542687221577592619332032665839723074206810543772783285499550656239275053422184140213687611102087376229283524513735479544881212962280565475385784525221838361794100910799248020059218060023884479053973591164079023995908087798449945678619030807624716502500566015848355224511867149003301243247728672109897318663580643370858785356043315838525894616636404352843590769254400541739948531593071224591667479017356559372105679567117709063022159163266034808204672496032236881878138069656707697424396224861947777948459764422442837226592371754665260236245077777868593398813037475873705764891093882141828346309976965156820556374901287874805637036952756447455927494183725736210702573115582650981999444518709500586012720982201082629135977202855132415989451821644703701391308949010883511808506123771783275198465455992831808190590732648557512803447133646804043471786905461187218164213057161900909385734829390844896841684542573949384822162834355190210306697400364316201989180309753478484990463583937149305096536103927255273324903105710540709163783000607887276916566892073757912140685971965754948406134553643122396831497384535713278278717784491547237403547645562157994194413187220540511989671545965799597418730658181945043748965506677700038924318333523653446253451378329814907615733753100239336284914937220352152840705100178790038377896526522747043560708691956099534716810082365573662387498092161650418775530670567046059698633036689350092295521620252211666447972067283297392583845594346909419798704534447094759717876775298353211553289071656786978757793695830680804333881882097202431770030390034552863333948636076641291701156395625931781099705534101549455679775342558083742061457731347202051564353141731868527516207992111454504547199205918771966683908492701743082206723671006610474817237507824845206508796963968235364001395388755876496887865014263873780638046106912689067602154735365427124310178096382494750784134830547157884633820691944089259397274313733897087220027251749255048685026681890839753746176926942760855144367843885758342600594010699090549389851541423220571305647863458029821981593334658308022035694470278260295824066556381832216266444496517358939546046099652386234564094180733330372831040502267692434115785492364962136384482431871933728602795723427242561688863638442786785812154660223918500560008790964110707762845843031575725948365763503185643856684469538566591812049664961335461851090629663062139157479157583714265904011846179812895354699096326308459874204901677900892076526720026292456090567960092695962722328334846759931724121822590390331062120415330533660658495343594603862002140522784828231275020035938590747580387518323945972518439574438574931521119532056766280811526417657092896863010132398220217735723828936545153424054582573646392907746150717960827174658865911496624383485400696429031733266694386834163633972667492090629225413266926670028928972774489156611808701009131945336008782730841150355326757837618054799154504069661712930945265785901892063222042241016445355844975564080301984132621444428472661378239288276292475220441824826278866516147908211829838605756319044903041577065932080585577877091349473431860010355971829320473331108472223055199771618016626158146788032137949985560203116380836552834337505453388480028918380181451533160498596549502331126380963865806018706230089205474325584376223082256072052024019967780873099994900307128681078573256100872421981449592922665376042935367063651641409151434982065201605595495187436898906455875919357819235990932575060281301056853191616645701619424579829759080965582912973834083519564923012789762117966806374550242301508585971983596763517973027476391435916823444200942175675836747754203705851066264629565584674870531021211006920928753480388660829364266788168499942934267602505813452906316139977539812159115353436894736980288079808981750552394163072684333236382467343256654100477540508307517495423935521260440447877368415492589803963082805047580673253742495800470165831565600472900672901409977125474677591542103861358870111241037499307765496904459469917200739858513583675316159808175126392934494080126481057034396627405241552906104710529406781447274481091042963431135509010808081253911980770128135815378846516731504099664649584818644417519975753413616746052471921600776446122196516388613687564102297706648461860306641383468768041497396153206529132434036915153041501545032780428952352705726082380661342578354077584127170593217944204075242598253822217098170013654842338426636113960675783118550421884825149327667690408986405189994303396511741762419009014804987933655899135886766012435699945564983025815049057024608346037126321927245736259300341779864725162122753539205038068670647512446894931390385911681617038618536922389630603911316179564597619786501141029268351547632089638558212903999829889037505873219543564959413319706876032748016601400198756715803869623322750061827792314893034193265487128314590818749133905226767038112654738735481781491986566062088298363704873892627607924756083246060416115075157400201945597037606318329370272448623248355404446320394285389379781250762050037039332107365341780507897132704417807636526541403864553441171826549590761355945777046434670475812910959526711341630544496010614427929463988512148885796902616453229587926194351302912169590699725178484855376467823139269140846130573643115695921157612397057907410647894387429722366542405341823577210922256156809140285646388801485450214673906188677609622490114140024204852024877239177279530802351071969320023367580663902154395510491226539002996687601646681328178499987985932916891775904616565313806144207154729967851452077726229839749203594111615925884490082773366361882710255435029527225715514133919083459692360004324734449992111296904165953015657207697084209136998245863997209796833335799874015815875368649158350705123293989615608615301110481555277986425053589477105226111624248295099641907621689330592978874958270224623648116090413710840017018820301855791935839608977758124701478076041571539338442114626615481092069283137055302342502614750960131522372678826271165340549499067640367175730675863137950833412915757187250573485343066863221453503127822002900952126330616251790696949310202366656045637443591001689091413484247289792807294263010293679951190962512447977221849960678535537731379288517357250347093070765927803417215424930582136202066024930927833365979185487404991854564004026906375288449787874180111175268810554393651803560430008548024121213473235670236983893869135021961587489265077854168736425407933041739512476042244456460699733386304573731693593793813707399210458240573820996054324140335734750300803846986214154087230211946998232446782326568827816987868819147692293052113455805488176913567722818695721118925412593383673384007972904689201812521697688754152519870705136918458621288838585492427518221282300330183576895680279074902555101124324514205631018375485508199810648103765832987550685703530932018519018380091026429102793286791085785495343248633690364223533675175978966944646434499720913069506531274622717287460728869953914791249157231690176407876512947244520040234441344635186815080445815514189765122612047860738212164461434918461565074917345656230228341693282613720895244479834058274761173481675626465568162318439961828477520183433796948684800492369279872835126941489336202666014759544508173765161341526373274019110555572828020526421088375358786684023732365680339031325736691160738600171792718757212331372384570431635165230858655843378613163953136378789252128816645597907405984247756513441447576685967472340271152478238788588185523401791230514159080348167654806521408025536290293866561668107238680818149533387085191065124666931298775140057208848596546663663304722131737334552833250321750489929524886723767387640873758741198249858705039471574998795392803303945227069158304684328641105319289640505770594290163970810431859971041250925103285683982962871425628973378082369471422839221275041590768317224740547584240797460196151059098259285221834715982397807772691290967949747763799025182517286271183994813544181995755631271300565883481168782434306118148308086103133296456457113394689619627899299288755281783456274048258859775797392873787745938013684299723811011376744047519199504029205225590544034475870413669153175791440556986136732184322627162362625914757597983138794410094211131504404297353579324376089628977254710918137016430280408384685552206691557274045642962393413748373238105710189480635848253214598743447029610401774949361252405838125989196931830683214232804551435568357803360134650418369281248368880847649308579122538498634774256128956783816579158759712834954532722196806279339257315160260035230095320757801157891424673315802867252771822199057266707564738870685242105893490887054049692474726825601158564850114452901222951376175535203227627463507894415898680458276542861813900692613820694665743182544905274357255799638705673790470153644368200149446595763297282567074220979258090336219718485784457087123790563726833405342754183135128091202109803793378922699677884538726624899689087621726659526011145392566470562351591446359866404753855812266064935399988480811986986368157624900310557438525794892613471799800397621416351625011813991389209570022585935594713033997500626669990769643281144890857399934643145860607372976008425009579795129510697572907643414866616326416102108626134422856486936687934373985688020295172238817428802245351734958794985178895998033223334767553012393117744618918643584610413536164252577978927260940034637264263218759708297318641146115392826835932568275429650932020935415484456334234858449850705331709229531585563312177579037895688633853968291996024413289206033639478177179171272368686666205155155749898717432492801709028199217099689797758538173450611689181399936185664505868098804545386984288345930929296178489876844597422869251230378441371506291603372799415885299733762576050984907967425956155110301212573517442800044553504476841746435167281974676660640486940451765117971172597966880892233345630221475220739797067410196832624925777778004604137171416886347699975035021299884456009102579599588816437085749457706324351164081272939247612814813723308275916421125262999174739179877219105419381225578431075651479850605354234815625484843221864687038056976000914496811566040272701995849475199062918432341477397549914390005144308678692412803773788292778268753780986941542289169708401485051254390269244466899199193557740858894966708404235408219866498034688506516882171504802049068480926029282723422732268025166743962169031511813504330095930060902554553373756898455804162976397277099946806619169035373474847581618965192083933158970610854536010962293434927843163610721805580312028877875719724439269274973142927476053787221142378155056014695720682924694996350043153896892094227415688780175078447236517621096199285067902315656849181094987438037624264344230811076762779681279628145988739588358295836952563909756305548534063523893101410520255169134400858558064696382634118290746203382012765537827104704795248620706724726144817813844090933841893022490642108334209810882935999369638219243814154654985344224385617846728781238077513519698250061275760676027616042021759432593414875337238053276471209795167655826812273564727291543201823394708119604164959802139202819878992473865122076285086456241217332384704642087240742896954318983377817228536067776174357108893074442232970000639338106081094010048435306118179567588507791803808593562572138660764248606275617767439207630752471697969415676645492412207062093602894579820537644886632015105972941392415451857192367747348216247270405651545585303323202282330877215546298047899407877245501391421079755918834153468938063343663136521946753434895709500204558235308865370889395571034869795641932235146597716985860641579809952416965015271830723527319081366551791791744257316029934112192462695409136109027139143417573384152607764399197007720189054338242037184471140375508368589160082633490178564177439215716880659899307540896039622368912261974897723531107939599195690379560230184604932326794319801446533611650260580456924071691182781878513861024202078259200175455876973010988052341473707827960330416294461778488484064428410559858469889032523359100315917069077334642061059498905738152126489880412340561745175417424205771697116541941851344344273133259151980389375867070773050253504517947574696612767362013330135773943796459567461315976168550802456545436681855891383470240935944577682489242654628202090609438460401611949951241694660626349062501966299294164358246546431491554816260300783248559846408935883436096790236385333283548112533248830420768902169316357886235814500241664768344966480821951852984623669602460737545473960504212235430292132532400925992664502807555683704826065380546780093125263592736121710210496956805410254019122280888685103127847582435186851152261911742405526827313257219343001130874793282827628112951615826274076634324244221293080151610563711777863975756600380147391150646044136785552215894832100595071571668681290315739117816034256521917451825147203363139246999679169122450924190431865844930217972006529202100453169201588533517446810300037947545331540387961542518529988653999056465198995180619993469530286967564888457362105707746167899983909103457145589492156656611118796284701603856790854205694525254988925043533678920940819615950068175286244728977204593477989542343939962711422725803126132906783503612267797112254917507727462228566196465259935609488621257321722632503983301387268002416274107364431240285130533074830887860467632045879735032397472296002797950450899635168073442875045130101919898263216827902754640143405815259585173733498153391549852453911469093734333528194521996964540163697633102460284161030583255648610656573513410329029060622922142791198972708076326129544763465191350429027557159542068954780615725437258476604532425946565113242129245994219807770257541040936038668881265534529407937175170489821299458348738910482231981151473784374765967963053700568288251649647154415206939637475101263626879237675573046767043588192238186302415440205116576119968543938651199422557107560252915507498414575502354568638170884720979995952561105306392478096567604963943288257083036072325021249298142257483747047633223701476702282147888862672686967388761978389054631821338410716359529630910405000128657193737222615972271364677592569397081980954714452509634927330955344973856564029513545070004039566810593455316340251895084311366184219306584278776368839864093385524853017513452580921562237136233559686401384314712345597805301362282839261044129536345090456634743939868800550699572208775007076549088358000935504475419203417286990851215525642454521138631419483718576172649069434659364809396511835575047398995503499889102774426836044804869945967680489207373473067158071756258809706083654995147444003009760501043719713900569441842395479441641142212895818790670156467492145791927716918009263410599249402508419791561926008551814503199235668670158449709976299628598964772583739284230486197766212191409907853042147509440553857574519421588716368221431600730853890985644880612265112602031157390153375215295000330077358005706930631990420606217112095207425502470797859693732721419649167178298461044404025987336005765680475379212538934960767642387991812539080161459254467510004418703740745036837121909048660623984421565513390226424842086166876419141901227335452983966243978072148955509651428718394510529684795015545417207081998047555724435959029232805633119842054829670858413818755233701490223991782773376773820471331046196950868717212375817925592324945338689567328970257001434778387277891955200445946638670782110469685827494522438164284972273085775921877368399810968621205356474375094783617191184456614919655894505693223334883472917374220150461734836254793941619365004102717664180300695037594967887200368994382746834719049432224861923583020347814091608659796201904133564824473473081611989984241315594706915805675551528513658247376859555980280836130249843847066128297827139860932870366925158700119396957802577989910379605684080862958563792764100346585496827179582316317608752312428111604393086797845656802596249539755567633476543958380438570985376410010393388952494759210310528832406687596193947486417886297236175263494938269817422347793989552974528429708702227499380643217096312645645173922911426106943472677216265500346811863206556603875355900058093963985322289238256459447175934486467466178005126574402034222254174937453820420824056921544340895249840681395440710930144200026561861570036952375684107472600637275988667518741583139552039042536391088816324723553421004472716937909986626971751474076839141999379702109006599603558681790089725218645885907611918819024047189179751785004471945810369855627607009477024981335297231127170726757556281008425618291338651720904862571999205467965638427318146520624426575287948942961689688489667104003020040459822814929126818946213147457190659489698598237005049214735251489186429128056920668679679119177695565278116082869574640718933527424059817599322192810753037576177416363143492071646404315804240065305183879102966121920388640466049369919185648549581565196522829267588184993508027039992246372801117901273904842421787460468844747921251843137280994004301710537146682471542264605228468605131524549109017238839845640422303609034580327460802651583956631563767956578668113839333878525052094559765100217289465861195744577692949175942083893650622701896099204719903464732616098670869334965166680053851978283826611512899973156888232747182740052740788528861757604843972715126186782479517504528376620835721727020510032461460058794977340135112161692548352473256958219660091138421912860736355310936956535499431279940213324508417153955196685259063573579469139896698703674230085724058130827454630163349826717565404235386080079695099013891570499590060061176230475121971241051386526139141873266030197227875359688302392340351560017748693626507530841188731490546745161296583368061928703657352178494994427650199769307519228827182735696021136515849122380313002113193991425358414302369456351657573955578318743043677352765084406509479768763503075116980554899685200084512481426287414757813260022862262425955501242486777595705283931349804771993347357823193995004285054928917243488601422441637247254568224605826461578476330724922286315674183743834023565636648773791110910791340613979062678830754121660406454734987608712958022978568670746168250066617252093285365249691623205749026543773390222386804876983294015127440491354593856368622141242023080833550425274753540239791453356079323459424601933622480978637254151666224029848079376565480888591238691059945468436863026262780914390718826735289495723216828976544456026739531081260210525087045003545038973007492841280310093606641871319710637062120254410419696404573820299665576617816468668206342487784539701962885062413164518767529016564150419939594877103312241959691734566123955301601776777675401350189263480976658896840708496227532372190465978445323130855592619505683818587836579315738294733180293016705919027173561955698905357886182467666257039565387306488490469901560403632715718715039475013402506858959848172591860860722139460178671971776933078970395631381435154947411172399928146474858785804942397772678006942495018635786355053265193825492581248319357870264774807651791938468664175216655777735454897138026527252769556646513994430749606229326502219961339708506667702074681754872920284774448839313782649933851562096117052151527735505893693563548442000677919799376153839133972044900296886329865979819184984029128770044723644869847257848757459412238885621864248373372595295858334006632681814598132609645384146531190688049113870280657419127001093066456616172744248318495582313926721078940784662772867245622084632162855138733479755125746707294789164499128363402986190474952156408829468099460492364217168002797918553023213587666060802316796109250285957674217923074497912592464178215092233975915993647675629703559934073730256716211531961327756827178023235339874256988136648584430218981699711770763523837503624953486185180711043188215658444324175174779174978593492338958116807872641541471891403077943015338115337124479855828350235154094707590258082709802491115007535378686240373354289972800425068186139478340807042130944480651988735169734254105190216150148851977021838278709189410253313747145177224683745921374331677831190001929657500187859863647274007851546330655909781225426585178735399818189050352947914996035772428694679661196118469159686690437934502750161402620327426481473255521528156924643329949096017077481160617046694516576059254593583272141347672638504810911285037259262212183708022322412298743221092518680842170161885999567643244241720154091422364907560552093996771493382121783027795093571462863569357592096007751254258106964682751917777769428182745711398613249208098733964521020301451690703485310393463027869719662550608833594633715792465268965388810873131895356201657614321515802597670657747749687289114697391898736325522083508810748528796714091041850922620771424905670800530261223998283922193881395344586091063570111154707658499967212561069795956557987764803886377306391925012456099892225652010935791253599556352311325634399261718971716395027766750558006515707379403932093674894278448800293756628912004727765106321216520178550929688170984325641310954977227681638612003327751868672688251220013001136700035629266295707416236011164900288456644135098814504280086843650221070464489127477912459933191534065850557386105250492863981464259838251274017235906096929638014256828099911730164267196114073413191669581169873422734767176643753904606350506428181558449076724392634380997600036499338204673331496626432894620943877479215191202297784921360877242530100281500916623123882228976434482979440932701375433492953040901547692592569690034777099881629170817341011504240146142681735176575769458084629181984447971011070986851003818464101116753564107431347908978787345605178125834505380075959487912522791505752588077919288278129175643934216051381520140902813970750235074557380444197131660296109486761200443429763417711546688618289653988401752084413956067875216032301423812629438641558313347429001314879491041076332248805251527030281625801543152207211942939059055269932272699847390318343388299338030391400841183176633303161154893307399509546796539008119071447392586987267768974479775592931993454034979007113621646960598195086247380302371009253969585929035544340540958933771148080515856434993260424074546212827660365131361535724740650420213802739809348999808410573731308907993607287594082461620138186381265811155131858890585932157699156810938812077910093778472948459508806791152442801685998894844140307960607332446785702967169510373327482422216203875858463962350757003454355049243880467258957692563720111641809564165520497986432862295151652042888617729033813614850605941684440238046409686651119602924997329308795600961307523253563120557310632785135407777432825117416537302147210703603143106883465180636343605623237879009754981510837342711591691500762433299432915327272409103025085820276441520002607353478728160171039932422802323870606979368369184145257637416030963766889616276318195875453880175826466676713194596477289992511068907460160888864114484119091730119474406010337095498247865265926655711894795821092187722937032783687197634490023917823651789743964127134740858768512321231687985130697923456569552744231333216292219056248827612887121613742014276712985464977696354193637935644966136451848708079967551664066930681023115844338218348997539346058703226170070489722830129644442502420667371194288034563772558681210936840229831533369792091561645183691097252281763413872959817387448603060631118741154584291735553536995971073020560628101441449133082420723498692318434459305731498697266546013099292428059865551824494218665219553954290145959036813642466916426367486915907588867174857971806329498113891766312487681286262275520683947290239187610728089619474038903516302893481468041309604807172156702537096891988717224814326964387623821121670194871130384733434908083489134867616052233000768265506565583809195453393216294189444253072933961720831107359434829532242862085784269985464277973127066250119508480550680575920582742989412381505945230409421213921563140520095933225515312058790115406237568632798733659734140830267874127820849759161958956721967578482793718021116589673195359959338788801233007433450333612066670607623835268112181784554251736847903003600414410841709900263619316061594587808817689027382012416450187851639504547918265650871297060255329767952144704627066480132260373594938791724330998360776895234016875751136566977157522161303749806786254439707245491899983641681586732339342919883861686810233327505145210241851912962079560070001801546418837843055268289292917380664033104065908051121451519128633201138612883381589154330435831039748649259882381791140956385738030950929052732303345730014095554960169618944808342538703115137601955747037357397960404372127949464577006081682889326346108815444464735688898935624297072358856380941883279603721053806981363279974054763945308520326320174055397576492162305629542037904460691697548330618949037225451215031691043691012576004556455983496387862990421416584664753155258044660058421756082568958696032126014322035798404020465107437509580715847241550191248501651114163319799159908575647263856423071034718026352474207638230165875777975849336622176062642430291179485201157648535370267905176563673924271562339497566090397617733830253375963266332535203828151349275755558513652371854243627705955766826434555288508492594651888530976404287762816722114596070629762325634429469967474894326406585657581592883167086870884109442348007981473556585783050387081334781072191704246255570041538335759532382327698643132067392504527460826582706232641620715977172907451971879219028874492388014837811223125143117193929931752093141106304114572134752881567350548688055422911779036948923366521379623765005820354216091528760675975719601472012669628668004937157860982784224290749530332760957966591734402192571337848611359953010761559592245334740161737860202670093696201886600171215568690719195281324249623715888152653852574247327237617452871106057999769116884665582586020335646832106424331254978491039252958165401068947701848105253267807669935371481477062447553108591788045578720607291954201724663374265073951257965874163930852728154474703067571357806103384130577601852166387041369802720452118257430206147693676773879078314613525797304566351755955748090704007311545956548975487187363052191429212280967260774326694913000230146428350386084275227662349342909521066471745779685294913408969503413957018675696773893530189857751399543529844206357168570559111975394868136790921385522614225184766332405175738290701433413601471936180923500671051989683884978164060373263627580850815181519522173729858283659545207687904848575509140840999936800674582603660838807240692515301987340389584363712683478842551483842614445660899378806854357288037103727607227135412634365605312533758940521520353349211557922880018626257426912119216453228722508029402413141163035384894469772577299168940009286978428817239958065575252786558034909490236626472055810838840731970336318067647848239249993843308851517867746988297435298765117449945542894504511859766683448594035726292841966240689495788545616908407266487505948290142924356521271500360091848840385237170380211767236058371159763569285934813363397354328877008192304393618296705676295443136998019590430184161802966460235029752663855772714634520451390416786487592456056559830892064701698456962812217744792579067411710103518967392869375705645765304212725981467280938964780446413255366073899063724152525399954120288240070321798185560945387002710114565556305490071058077270468273955636581679433186887417547150153454286887315238407750187401268585685854977030031600833402100252409153310491211844864959402676923495975599473986404069431307431073804724930132682034428634313265983000872918735417626845815854225924978653386779297899680689118915225474102833577147147716416569286866188051432028902944924575370675549085728660723388062245432688482226849170318959267290286536126789020441015232387014549348686780795412363011863209649603905777629394267063370717374072240660667805717504672053466737093596372326189231308604208872555097318215341004462521110723483715075431844400620540835446544247528382211534187248624386516159159761799793177492486029274463475471426974833296380694730562906647386460773939154565782310257985838088095569591482662926513194270020092402944678554780176089138031824838834140744634267514374152372811844782511854739947373947819401493072552365827720290818503130184114817014773081797329307568847320171257256655952263541060882355654334930172338929620108194195048027144800154720538549577339744782058329505639907188008453972639928140795267057738703967559326070685370578092967423393518893036926111523574433305225685914205295423735084946714363619897277665898408320087935220897655492398612285975694315746673755300531723718489992126068200521092412079610522591778970435479209709856787199750623719293503391211133488720164734455987880310224811722255677598761899550953586832963389374273174808270838574348347645223319925047198659416581170625046278145461289106356245681666455247774708016352614453776629603166604588828283166599203720583918133051923551334207281144371892027282666313033974792823548975166080206600426642599955325868240457451215065290520939664782208643702633266635104787901639393020887374061933843620903651506474204810095493100008446093748347549161039336872657511236096724321883460387568525359278894734035742175335591185791886446227998220085429122984523844493050241504244140094533144810724810822232505266959772639895432637312826031051318258162624644376905589681771615396331193184377727738894218261849766638611870209760140083716600569059891740191280397861036177223044178678221117623245770528889072628688233299208477059622764359314200760656567503950511838191642124634557211337902510222126662864452074591064354739274068196887352747967932371605390422102295608327219506427933450398986152716582654664235987777865618859758586198475447289844040952686091394890282972514226002594598665392269090980127329715780046846814898070918883540316904302554140147753716827589957583164063976186232827805722537234719174643333092986532300953855169499311713930681949737003934592598092685475971271329712526885351024960908856604257227271475765915421672848081817059573150119665728295223135939484432330046108758063518119999224852665636720260114560615894207901530671841267186316995594342352129305942431852233480096571068790725229538617017136495065643600568550417441253426984067923236291544994154721479131732382110672999802957376052664279964292227639804334258379002216786487756249384295699740651933333257675820317166725068416209069946105480856988720602558560128859859332840741923260596292561389542116185082878545847588432242712865484801839361518339807603924019673921981093015128893550585717156031748272788006342254368399300844945600873874069798524165952982671325961575707410371190484019500979589117331018334010568221364263514577853062861129800672428355402765357797894621619790321012062038558508231183687445826523789741340426147021469435215988235518940013032142940371582777200061396432057978962784119399843356316504108640433286599401512244936712201386421747240381513107245265683857963606562699937876112771196778332152988888241585409051589514021479681655786062807160861101141845062366948075845378547249583579017984581986788019474997002853138339501884904651735842702253589599288735477141087374609724578613953086778494317404461087450886816147576953893516721728515500717306544981478668112077104518112854048826720205786573930356180874239892064319821036233851906454107011805210033895611366296085125623700623613022589633252256506044002798030244911967083027130882533457297779550675583220458448970979415679323312650390129995999697621948071510421084936036774704790968489464407157467011648610218551075432866081940483485068994213686594278873859827568708837438543753919963975859524864966799303280376203203785627975560752430587320179425803893159397857495058180115025066021067090076807904594258875756704768255896761638601765203773824065735112671886796645592714372213119245216252530137279419197146763206149724244758738036197911711662442061788352211754482838708149097185544931972821154101826453401923290456920953596868394368801480356013049796634876846699058275761017016193141262017670330843475803794800478744989745374558762615614402341454416475736406272947750982532899442785219330573960397934221376434916083170178664339529326686039937090836241113309067337906410549715389540977266879055044263058752129475785992595437941189223038580459739332295782952391851872594892171495058639567694173377416598597501963138804405919817996461778171435132899002543936166482505994186196264197773845589687754548722615975180090109059071659048660247130490661381886049067198602688327555544938824968480494825811225777070449258288618199202005256054003512080485802116637917944181594371995267353976269828200490536309992589272321639618771051086596915980236322800950697036150930443658163457547125002765996479372840270575753934614863245649447341350888395141944782051100727155595081765868163937244470707283113312926452564539374230699149871762033002107203874232184704743625175827931548161765093318648959616714429109161827066112778094227412788486787444607661088562597152867609820992553014798424197254672455532256106534440932156535705113029688023232948560799521284340754286501149392458987546989081880224558630387963069273291453660679099339761487905925102338163456045851538923667588907227814839114506770882106851840361830424788559802148329769128001451118394000895218629164434554891956376522354211699258737173470048516921763426858965607791778440302531434679336590115345555415117075750971213820331106836308561541538720592851623846025920751573184097597953164348480756673036000956028269862196280931401313239452449789800395495097546464771868418929338704697369856003720917814069876086676910313396387777525333639005332235557569894321722806148374202727350174578167485530114833002889158723218067204890079758812848980734393801543462307712937934964067258581816954820790351425925585860446885746471447418724237898326084708408029427143703701200052122163215560899584411814560866713057343437410699324631332076627560923019696659649655424333466766071516302293491814949811196848872880124233516987876635725165719577274349618344373267236670886771140704257922075005964400124502581827351525919097466531068080687886556739336091484838587454026206990290014747820248304977306784968197049278423157353388459325862505832414956579011336229531183188673918174463119354543605436313995817362281644784350897161179239723548641424247777835704136587178178706061040025494439220573571921782699078060699936017984871534236181841312576699560121308118928069316788617575320790184285409683985864150494185906201905023184134666996988239791210613840045669905345326205244458054053625577233600756004851044226614294858191576791789710054057785538707319876446432319325037323446935191880949427195953360541775502846207737656973120642148887983705511147754646832710880541132802100410373746143524709735052194337543630375795866715534463030651436130624957971032293452685915702246784249885596972041662036783336490049974811751554563888851972609818421606026069060966636349654496456563024314400816136387423347624543459090138095596342194527989546770369941324848499559344006854089826484203741718953392076493296173926922812215003515219029458956837629978550844397380807778368630728944875448997119978243398074402412628020944246558087217515091263277569959042224815677239536100316192089359354156810433196197020581955094307705041742361152767126910263011742723835901009093201748824677358588974045206279371836983351713287615249833148045669396503621663012567170879200052814536988877708817712713230588603864846312807138755920852367207396223023174908586319154024449950935262997969463534224035177170419808374476461030977921542324217108266548160144171178539255362797674314790212597484252072204201429577277679944555289431910972728252629540176231438620784489327984722246858626466235620913396926082012981257191166761879847025126605489507073631012522795586140937200004383124295855522323517922098848934685142063953054003707553721186086928956164350257409537401920653020594717429766363119689550511990610610476896146663939786320574160165730267749638246710013818557787369840781267732311456734649006462913749787216620227732897972122588705118388071722059701111184500247379635533579618605920298447833414048596769210054636395255593406722875956544099618432512263111902971701927169315194771846216081020958183397023529510397691715962633410072483915574758867611667069640865020128451866824955933959318974237029312406412453917601391545736028226376962722106434731524992732027652243419548852710468078170845644561051454416668554469498012733195186247490836390848029345905721751466213404774426496367207959196172850822349733490777577732682239715368838090054993700414783284232727693899613077727630719359153790094336200772196864086019366532846091522821608899859917108640059327320747353498125142311099133175289631613511845346144461037779986278228915181908095109814730753512779450656351695025485223824822712126191514641463034454262378087377985716139296040362410951281635927387831586254722896109679350396555072032380459988554157890704501596737659996281722289435407809276756889343725306093063374539838894068229751120497951077835539604750063573482886835416583565952900023155094874620901652594880402184374560268916062605570470461306427634335625646323642110229019195170617956633283875421360283145928399157736115471904950069334898644420517468041496803596411699808861064326208206365132234795835835415341476450120235682249735148005843685394342783992913947672925965872032162566905178674177515404513939162522331552901083696197673303952562393997934071246749011702449728202921559659528673591460499027172566842549061453121895363227139301429111586597501994350360435396154512525596292682382683707580823666040060353716770444150547180900281321759991658158326074103103896691357945029727861107189260420321950455154973442094416789629921966937376738723596301189515955535422375326376283443824540844382362041204437485401556409117397501737457020555064564727206550798642471674947912702856663886060654713140316103954160988103213683720176170234232536015685443530274579446056584995419740249895224613593525892942165573771698927639657273831358708841399363374759660909234135921364180246851513920964038320746840484771073283996724243049136253802802704660917626812836947750299211454726438883639031978860111790153542519659721000702803267225296946313003050215760767065041671527656305794130378371105967495455139895771509731885507621447867305864767770147953908905133070572193520813220871214301772606817775138416698296124852034141596719054423786423805507373765097185500235186650905496807856563211012893055806921014689476426695818785652802156817371835884623357599721176290278388348103625438010285931290173020952755821459612477803347137064571373192806113843680227799346882146833803910074607028776027280707640862410245347766492651561596298035480782586004502548050968409000587332594727987967375097250346137373413078571445176918960037446489799724732623686509244747290324903480995913191479389674319249395016374501726734725610917842279610340161494702400102894341756295936166189504427779472139228852207662254736660694795528279721696585940745878740848341035223312541938746014899009190015927465199740910987627970381307097507718860266738705393775054117884227366360146559111829320687606172172786678034697254804564490425686941973356911249121731894843495781200746008847997726174239018890242545002666545955842839733415753372635663737165014271527968145117271781451740685844904486694483221767387008788593207666692767592617205823181199441957273583203837678017381290227445345105183378877039227483949596050339628556265743898719980482008179668912163073518784666117680916230768068884834943903574908377121917250378366564387350885159549065930907657634777396396783596357784582354502892907968336759674703373037802876598354491373965338327760182920714682013726259101991975009260138617860541226870157551758873208631541126476201020170232070571386150146162429460614982306092377049711703709656649077166720051464594091441617634405593139694011334017798452098849952124442437928067197055420364442320259735293268055421913686351369792812021508854417819943676141281923227527329441201208652503452537904937868973901902075948109159155364640464666259461651269827539011249346017083850102758999374143327900910990769672927224918263313760726321796227937402715555618229028339311777800794261390984056618685158901948906174306014151435430902505139520200754763709302670076833111769870528462064985700796445205274322430441671162556482199388479444054999824416910087164113026515113078842036210310568283581207000710687515548989404132430076248105610484250617556760847755148287485854571427309866084391690074981455779100153513624847917247128492195562221213732837168279589479704065427537368476902573992247296506917738696058695669585126463881913686555715157019537028689318254140638611516568729077955638772680669860367357332442381166499866114244665774773280085186166664836997172937940342667042429058064494527919081489441719711032335696857832778614427710310683290882721474349067566235624135643339856766694717377788044909600131637307822347148984838622438322538454759593742103314501996180721303706304750519617834402824387338114915601864933191562696531847359679768926837121473955453321973789985658388895635136274192166089811644053118860625698405571306739378972834473222754679140068132878483543870502370901423936934972035633553692934778450703408664362010389905561860964434575728845390764573846401760349785054484057959348143093949653195158537426978460102889199349391233997260290021330520849843185523243391436818202979162115007882040630352938850587643148507452045065069846820078147558043029438828887606811490453668900161414805481414729784382836537347407608514530200607569292936807791885477271611045489581742479034452583494049916005923348005814936959709582737033887034937404137399059987901452168273179247302812590673228537011857138260877811239729653345047162294270219457398224807684857859201326747320411160805038320202509857888965208720204741001690577013469663887769449597021815702395221243786346548768693580656258633977352226477658483338948688833063719415947308010989204698129185412392582891864414901209129871243173259408416699194310036605962318971063349225046259090101685434936857519908166901741609358362863446035625292791803707508024498098119290334861008967054180483228177279280172148600388053455652996589971495550732486216481617592645409588499026933219849982389383784340047174202043620524231229506699946236232742586316359092584054972213813825165945296679432056099094410063604151647370824011084332833221383201463962539897501105344102143654482684962014439946560311994721824052488765408789382077438031618639308692767029145476624116890566922810125523844378702247275871367395586796565329233634591393214560289221763813693403963526813026415944253919845453131322304484996199465880971482671577350934539209069165296463475864914185619956893811625436650849299424222472727052157273781039767602768735878985663728427117190622371992184305654074855557428521964326591020801984616469567177602276544025726335942750323588992185282091926161260092217180005920154422061864434688893692768843224223438801942551933110377575225231295865051876820037535307539021579467801496719912676971508791457229873842807074673796968321999225027416376485686961209850558198170369700089474457161587486919875690800660862588818216901374799713980507988129069645464976445025356019682447786619229345782941845593623922935251549294422148021857576770058552803893474779883842525785935755445376918229771348104637447513962134199420671828627776541892891679493987187129529661395392984586710880253844980512920308502914418973313571746033756921248578594430595016079088903197658417455272883391578860257555520295333941134685213570379645947085407964664923911280444650359111441741424409024912299001052146266121883010874799436722482131962443261998217360115236759834870581574810888556119697646487537676678679532221419945463254295035919008286745165106211212155531343069417549860249763689493847838821725731965927670652501293555500733782223590471370094507759967595853701346892155175382064045174593798262498162173365922618879131897408794690624530394535307768886795661877939296097150399790999265385275160082579888020019809889797196575414937425741716720170069830952298653834183624229158888805720508096919635722942461903092107168979064446510405538002890228580447957055431234955946718703454830701818625490034550495767111216494789567290956190791012027628418673372739669447824900737384091287441220923065693889726445633292774964855588414124894579289191741007700423788949351089768624127125033659935638146919848317615100757239043411402310510078245822438101558084393065099799024913016181361934775345813126353093634230905296286026411803931943276462758103517668817255154826729391271444633791888935019873263864864843638752848307152574728654648453633729713465868786835729450326372566327172565260284294042162350771166387296446125708114123948626825734047528491772693630745775452515954833802013577190644469213389529561734373509933838939227079973228635887871332335554556786962578155787226805850084691603223151323903122213053180048023815624276315515846512008496961526612852210236272852779562149877449017803002633068046410074281595191473223036929376348520994772736874220911511906051020760994215145045176646612060827692778207273700399842975124463399534871016969322046448528828631656506266329477360125297594924093981083706085546506753584530413132060615344277349409015873391209683452198086769203249471876435382035431787190417496569167331565487418946948849137559499546093643473918420719158645834709137658964495544339254850109021518511813617798072204643873499437277669007722542421532068662658547279203967989512241861548459751917095267099314386851127693459381600879950449438022544467896916850557440948073417663519724470999678407435090415455526700597466442950696180530866629050422723845795135056933832361531529537220671977139256755238910969797953956843632328462220604971700646451254508847981106429625284469096449364930598501475594501034811111803637035415683054350657778996338747777682344649221427499284183783094955087411522105515055625659883590170718764382193992342361232383870659485027397748439236637289848025082426135947386147608372189326877803909217947479520963344779960437647652045832315388257483333311497899496816836179212991237255128147357445822531117802710880112019401034251812780637921707533126018514783212627082390880177859672515700808856267943096520090003422923722251328024560638735924807208797179940404367276757035647694024507902597152652821049267497435474634951214436924776811560994255180946394803350286141162992309882681475553834195339435751162877225236362423250958139636604219745057615234169496006362185562786310925565151919994801005026428700434435675555565242906753917019265167372976524316372964896292456289954270786100858564985281061143323772880933097352913276725502765073106832232584360345552309020781153267355183139740645185770418102778717541996240645693398152130221957810992639216344977276356891278424643945356916948223049526203043608211744232388265077676023244379325791688257486681530420183641883352296715179980668731075289466195918628557634728946204589279638006930421099868811515088442170433806943920892462460706908317779055872949200098369507790252181872415573211379741115773639329627592099458624701845023970114685015297674443857451432018341267622298648683488628639087074040306168162654875041580171022628672892501214482544047920009798420110694505555327766520227353049663463684219930162456744614309433350865476316000507875216104832719683306382479650470144426788783504183278336518655448226984866310135891992222054677086840675516584241801785706681556871994037617550349691727602861690817725758685201718687262138258367986121337227635854770942916088435757377807999289431277204287459023193836756260562700106531300679747189589926847515908677076520811430562387083078164715552519870298384260206659648224856144361628532009223628308396552100026853257026077031632100184153266846299384164543146443127500359703587322173091656746192018023734680479667107473953129677097684932172396765212613519362572015039662916126802764244418313313430407426705772168964149643784539077778790587641097951567983501632400518474722362805768819955786937221070620261236504488726573162298191646962379218021789481746311251274317024914712408803115448105911518933574772481183479026126951960203183335694551405667049176579942524056468480292761312010043106490458529169786677119784586540890892415674783938706122633616788840305366943109078036420100569344643984983889206685266862750231201702592043435479129768310657190480870093918932797332021109397130260317057806277600679955815547301504499322917280693148932238385991254339330974807209068424675964225172237838759758617849757715696821431350020849300204416057024110264916636073470427338221219281508647928079217926593409557182349650231285897432204319527171843790123289604942744054765113529872542859973100324458659798489751845021903679014541220825500976934103245447486591039198648679969350782907249166192621626878801077388667207479128910594142674305373097900969104878145448172005104960203406027156392523504763035629016343775922221171207731162078241147598688114415863214064970106745982983163792310659113107545429665297406785363998134335629315019441321651151100053451402678957312981075996617255452354667921364277249150219228778129773158894647767952309781508847848613858618136916099376042676331012606637409774144034508347725068992515477614595206612377230673911034713035418499921444633144487466364090666346276706220145436860859876130513329223781278231404066361654279016897883045222579096621283306463472515024299072520565215145954687966452028080268866222278733237865266554487966996739103044922942100444003642181039125836300103759210479363375968952217796861035719447311475981651071053513826562782792812028128893143027658395706113786517086198640214043473679253088242942580651238671681217717305970624155157404537610064364403982192737798306682464916115891545043788942050523190609798991690736040733272933397871412460168953522121803115958892619907407663411098802418541232625067381288244086316471549164191825311780956634802474699442947869101318736679304630951563989831634502660589661692051778374527610687648157786409384506341808319811773756596341127572693723057857826174987623746808141935722657280229341056357788755513106647419322352604354284918952217164051859573097661206718611441012728897359962366050007133169204894764452898482389929246013222429512766123354910918098413400997370362473564587842641510029138215519903402990483296788859600174168528748980084342262215574315311683437439793198411518959030442581011968217095944404345380404058330997755917482222631828195403001510906681691478746204870000266812398558000433536600354655771907244915130212665706215265512718079340894376793823133118660556427933756209219324448845992049488782553326466659534359215109061201530690222207433358415715392094184694044610751343528280966147353972861270804628155423842067186640750298475765217695731478987398911860509352296132054246801400156089868971837991055137876271418835676838581041024682970208446090847285239155588687755383698818151553677144605711401301997344537144241053912002241653573508773271266655202079933504563779798571229108648359844277712286391959590192643447007365396483916423506334367764742767424792153974348193308756235445282573354350326438477612039332526534819445437418051109535096238158172623965706853405485408113611770312091645931169686013353445237881911847392674424498862301271870959134568844136426611026731378501813773659124700143489609360829845203406884322505712079604312636345754914620806183653422565383048150406836932870659931654694886974579923111963457502896679875850328441683497685402667154329646762482254285877569604979695162998811097501113027100322919558474747838408913764089275287768102767671895356279148833874088481724199450955851906389242545787799002356647895929529918885124925489128561126463872366220350233192606343180956005732443822216128370326409623173769340844314667531090337145430663862630551097112490273604846434404930488090920605475062839067711467304422711173933858361396679313150933230508680260832264771660828400810278616497448831854229263776776558539299246407152621284889835313165569181866284716352302768546006113067866706484847950543322206844167842636631567833023950418498828234633596422966088514980902113675445469268934605399309973629754057213227113542345278573201905588722411736344909676061682664872310840151413820278191016200477529209350489375014810698203767034810092324246651019274168437999355827432271376362416970047920507033064226889945312829023967184585185902127618722986555733751995890927746431857158833989704588265885974086216613233165095686785020355696176366370692013462317658862609669880975852768665187810272861145039282268884743466523605685683459186743946318940284850639815970785598583773645494433501666928225363367360422653377701218167792544840122573914898296433520403567640501976656222514569324154558559279534031736279291174868737422009266001126328761242185203489229627976368726238833012112701703166284102278240202095951784811375895134551549433901957466971668493908067394948005549908142914303132692151996991879665735014900083335504154760881201970537845738741870625181235631042310831023143496056155733317862624552072161038106295844605359814031470782362968378739790301629034151063964067426634332607898685596302495218193340375461548647129786258192005248824344597250883265219881783352465006557965547567692217773139257497107741298986118471156503298826302926931229525815354985689107941246535606825959169298174617698137381050667574056474548034185980555061661499820946752259696855428961773115835048558375776942945857140404996650322476407669489644115637963611408713611520597941622973879335794282972972846133972916521298169843581680689699631582027903020141860261924233135927274947469954521645242702507060612431978541556192483784744987521523643179566889715808761007077947869507972646740812432686629887118208292817650316863064666655102329143389213916450440332661359303742811716191472796554898926875726432706942726402739954434217738548027820197087170794029682867272254330569499009087849353966459582703641549255830259263582799270167428950643935295762319813741485814834856908048940270032258618892158257108701398005192496430885657210483242670882023803379869594306209096587473697564699910782183812165675728645803275581838339853814978740148975516141547617489820345890915507209368268582853289311141985230554306661189534461233204347524137508455869437433467659991794778516137187998190507495344186840249970420948548121349389406077720129009451439696315012475940881273064210119660274330139101937388982102028009530197311227120613746427022314900725319371042066356858296514076565155356101792156213913922648666432556548806879543090265630732206740429481059129664343420843854314814525843154570830406601722730972654117386143230036064214942028164341270529471546343856765689266025163076906748455713663941663355338883307312988031126217605696099383112955037222276307617313635293744527820717356624101251804477757451975667879964619917111577866037613169092459017407769348937163499990074500692157708081500938735273717737122619939268386565386352680189135789133803349845037857259109010424488091828002734025016752863786284313345643335201977233737904343264500431655876491584462538437671953402251481543837298154284389174719928903637701814535268803042051605151210772420270461234946109902150690464038872215129334433580708892324835122948033047259958943001303218330837251385700133039738382288141780016813126126307298254935498348624828825410055304667621430371130989831745423086448340765663098149656719568246536225408724112765903500670988588543263965102936526121286872546047449779977657124291579093006213281582447696444396049906559885090938811323653096308983572297291103250635076455923854547628741820479450701152956415165991867932490805402259548171603550412364159285795506236567635324524391446500324767388433849599426002066411126528907343737718569319079343456201316595473204599472271399771816356345805674088646192166693952077551173984176878551416354014416897273665918452957428022850200906462893276820903349777431521707986565323138663372741197201535056416497885875978911108327675298386296164874206833381390153071673690465492924582187486850814154561645222398701929864733743623744424658594010897621095526846695462894934920475815350835382167057190530355527653642533738129851751378491227964124796160609339978844579217842489880567031054209344352160837324510849333393958049757647476413269225229444644306646904950475408720718611673024772974778076623841046942126466069706198806478823113387133086043677723896547547252847153317773408258322056339658273331141314839306865987082841811559504998494336276203714289483386937403712547237363369531000013584249986196768805892780510492248141157688122340549235977710052814955073598628412839260320898044906978927833765320513345511768615954353490330275353506684620225648368318064366257969473553307584656448731943974347002428555323396186409458613018870954801298861302268186622798946523173743630848386419249031872344459405962002556565393718532752999388596836402420605389806177402417342604455842428725582178710059312263980903543251102894510963100484603050433093031605435731754217289673279580587291808469458375656967159104368624002872866767917188895641253191124682520681060642815240715530941019525782247107796111285035912078211546129424873839179752743019274639193544652998296839863874488712187705223946403523315562525081815294307404659207544528469134514447381699602538656639027261352091121051136082285421434137398244086867280870370241671688876843848730021131481643180726810836634211286976934516418724215010386426578965566221273514272868899017116124460055463387401625456415909546801207359397075910736924925786944442276174111449682143335935872767204393162741104408398145097346854155288033461728242120312736246490725004742985654168035753858597814762027219074315121904216092093422241020247811449514517911202592663196423819670541344523127339157892539279162209346847887189763498035069039937646050418234729075804735800596832097520181564055776380963985034901848582586803677733359952459946052629544341110919382827251626348654577168255900759856949974837444783092373973266360162642234675267777358075723690792856860050161861682829806710500980122136886193306111037239594244487090186015459806149510952979121744893069710474137477466605581246388212277950443787889590233281240218918730707965645927459737962313854900178234667242143297709689569552554403384541685690149435903818469077192660640483877914817772987708378798179955528503781251181419882123121403984241143263956359266489910957824340151857206832395139717682796793758807748345691388834640893690912584347836386720683536624137791782210601127643021970408945464193684733345742862645960398124633966040876593099035209030449199985655595205542636659383439247061544398102122402138341102193788409327991202319325715300336624362894111028673418858413805039311768482209633086671577450474281527036119232546620168816612984565558879619892326275176111403173435742521591102167226189710338897979235494130250560910878634994373056083936089028624741483819804402314400264063264452756195506212982256587522869962113501794142891614714327025076414243815307905784356597060121607821112624076908060233196601337880694584331954752607649031903212337535347363923346255380093584039300757443192634037935826860576917600441997706700068922106640737126620637393441166830182919689885306738295276857628990807956210194026084741532261132503839144631913118807807036873639506337901505422778045592342706385285471813070672279587781508092504597004168135585546837209060439847076384494968936591357108228832094853002363832953667198122336496338440407512029090153684591535108154567766971887741774719027205123812526150066484966644326999047029041172271239547752746969038687974752341147634032785862605477741083073195773446819670274119611419424942993983512406897448637600496878896778800377961591894723504878339716668276303256455050964866916799808955761904928826444192155758661780902115234770843168059205973172406104093933447094247038836881545466313745880991914073861431600066006096333246943924757092955295584216229538226606053658640653874293130061630337855409960947329081578021293720386810504317977541893813193302680039228383913943346710232143856955857676829003687413737238693068780457044684843299347195488283807670393109807757944957289158081078037022573843015091325275819655142499969460996040882618044782321434681563234476552001034858663125149572374607434335283173110660169889633582825136780796143169789993650515841356565039877977786574612630899670890824712335104609508068127793997066638226781180858773894483223995246531798150729729179191743062620871368099203879502678267201990062998543699695844346877828691424252318527247636051487567222955288512860144741471888534538846736264382237526057397550965905231328865130252161978006657410965760707786194652693956774243478229398743157965507672967132944841100887356924682014808788373495404631877985937433205974152675329981186763527221145042472815181868583591421223309590162030216916077191523530399709969340213770801104807976450497767453830877643525524053705530686628948309697020081597122384565511121785754180095693314089438712733805079724230963424493456826234650860651054731814531929990777528532185828452386053278373128445597389824371518002870532392630979729157290544809886899816918083869140503902407136055061618237705783656874457334161629729933904966228771700008849732198077682299995009093676366064859813818651140589378518383806781218181233248677752649188560172799591486003881713454635621937590208419194899844932566805124906575131388627056834850775594252993943752780732710404353164339683346901199036126088936603353733198866288298359949337159534888651902990378455359045189448147286004932507333789118194141174814335837132476061097153174200446526331560607598817310147281419781325602632674597704453886776776401731571043755335453417205531866396030054425945007423742835641289966572363392643546553644430862137142656706355606928864329478579973979787390189524529268412046515939687593366493192098901439280136608115071097850051619471105630234328946335086508736691004013174016382487110350610472384350696406539361022433796464108303138425603503327468119757034004811322163702441515505578387542581319488319417549693774589650698667242694041781882014854297817668841298525363680843173972420988434959436810816438394198967877068101226325679497757840223442873688221982199651705421433917760198264352795419491866956733266997846490062032806633285958567373225177559229332523334659437413332410447822706987111274102979179085126655032162938182223242920515312258220294772171718647104683860375736053707487869827048155494851915498925410532203486506939733873102662097964362092194724218594406193881763246373610253397121034736524138704336689735284008580203922457265455124516930213684879543330610383884816285460921261014570360099063130750865389596237026559288486738064340713303874194601172043413208582154088607774209232802201931722111286010470761153773479583830584701447513253652382628543137727065950778400908321569447407705885587334793675968746518849792020207674181859352925702431048200429131266009378597040920615634875067353220511464311841814725199144343728687374722097440320608898970800069330591515853859470161810468030088478007530524407273730985732828502802623806830386389472682239745905480950899061357469647918250109690228428813722436578288624035469075094971625516902795653431542003504751187079373477716708106296272627310747912421208162407337575161505330697432728550325406793974207965255187933065037332023051818650366177349460382311135211951970567405170339308616210554554553147750669644913135039226623658699005714849114353973132559666063829086330738420973381914644285889897319890842678537511789284906780960218492410880713697632801378166618267349299913272608865640827997100186367671461740452509874672403838692385445235222800387322243489555463469545826710437020687605380562461484768660745268273852541223087983918524518670778517170492196088232826520771161428378386384894301311772820439519570465370134533070908562454047793007190966282293795820706681811943083614264326633759148100470097416117274793037000705390880128832131564009786440865756489408029773665358088561153627922479935839118089421733189481190845799804040834406243246713117262895772774097374005859411274270394244872614967405250125020669334740296029534134163737727812863297811032227376209574983664352626127105515791799272471193465980729003160657966450903194013194542964549926464040903578770461453917228856404686233043818255774564786577035629975411006263529279979336358231658297790604099608832968739920431561010184135931654922551727200105174290106473558205129584997401566262157661842821978933148722900934234508244743390846544453318034485058766324484390424527016468775791266882687478454487727618202717840729392739158174971784961810447118316521357805628249601301203292100562045773187694678856971553773998330851330866045358611099688157287735613985252367220305000892006437622682501584120224054908423581252185016922432345789421765106466529172313764691423384487173439542512515555133084801992220151604470641818665253186500849797608549214872077130160793765513510499044493515743718635174922702988725953793749069130282909156460507452898428966430617295401510220034460243338438108250165753859581542299821875773579081757533210007598491531148695773583910954191617670933530273966095580284387879062336125413612200019954418079927512245280527318651905368300935546984874888392787233388243700867432497831862009854760612270804637958495216360964820585075980432991709578652402049507011937549491281465641976961843983049437976291890703459523994157022834227461289685605751056744682337374657439179149388754439230669817942575559301244292658810036062384903693675859056647157326295232251875353941627400105473727890650281281717542519784130933774633892907679838006178648976633110671098643619593067843655228633487292781885320077548945683887480572641442046039753717672987547328485205247192015119107264747200390334810146936865475711686627622035299473518848099322780907696733363578127077701396639079004088913018657776869353991309143076926724432937838963348883025024128215430181320285610982808563067135733430857519241378961617675394904854566338007327332371885381898236035861691478728062266183983980716912545088023411964451201748517795011439672803406197482399471320629484059595626119968464790972127393123613427367402588868441841517527775563055862155663270649144335137715492363954496553513441516503263130445896576710938426297240875753952095262717173754103137720474385384320717731458936708030673571469079544242587522287362001967740362873813304277674368929961880338982554875457232513620889777401823935022490838255489015515572351844385796665512570785740470156870141491628752505567794439047342755259105962368201741588920773351155189648720331978006330474571890879858526205814245685181748052045353416989445879549881218160538771673928399033705852003237339687448116235505645067188874131790939485143348704394744316727367695274516603975701518020616298620934150121078722265816866564121397997777698697045160668321915752449671432401078835916571537093309827899412155371988886872909454690996741149873484290963031497839620877458358669812154994350505875755628957235254520778393369885223182091466947753605303019545135893271774458489923790672237280844506598903180411309107842534782797478919134103138515109970649357949255293105293759184095646516396300766367743014787711747633518287480669990868317820014386099451315316540668344592340889643569019653516138060343553774185871262405299642291211671022245619339989895428697324555795633250954118460943417639418968810338795177675199799192976924787366515819912790365117494726697716601494638032281300052947959178916047786595700786811400631327862752526602445189891881714036828861635713477376439540845185680784287000244580729685750583181908614788162158308733017579226095744977509527623003602802651153508839522412983768469452328157622058920324319191248193045319408930251764548454080972780708650543330266858490707311030515534450241458612558724835651276121587271901908498038468022067392282491351207571562020884329255367625385755864357152019642136866599531722010594845023207554229928264804414345870901539140797171346439113387569146962725404196911349763896469593771758983724516041911886182421652496202092795653127537444399919309369426477953845540851218140693523543210345174026798880315358165967431902960194499351427767624541755492355007617972987308140208072212262842668379222923560434014447243033025319864368255251564048128167820781199046972754343805593213402312967343699546586054244217375770815369244860502912648724370710919690502118643364655547998037713653129237424987510553393429804284305958639291581030699776475975012742585309828645913948671960412256997657068996181228682492096982087111989249858014897703159743124767426352940937990585746091197477639192055013067776846569451834152702146120070849692073281796821773707248129310537667840086168452662224728093334104496876725116103045834541354207414788777171502178225598034418752315348335529275056219092469153809877144060428494625289270917252201266522683128855056911978226234365279898997859828318360608097140045463494052029399384321827402733513082754553410270503678475210179539853315752018009235282677593652131507287714334856410303896973837950452425329808532937276519107687232670890129857897160727156962655167431912027330452508531837984903068257459961215958766684604197237919753794326286685016295288246696477750143162555039711445973664740599935484381256026955660644563106167011492674358844418452006204179387716019203611264910762580498497881694741657548691685955254167061680485035530326310584737754128139048960452308241423954685594854519303681125821115330681385032624660394854981590758466965100657218823825146456174023517278499811440457263096318794420761272768069956966575971720928282183088287882831383074261788451725958398176775915650353922605673892272691610949099975528832038056631881644352752770681375729860996469645406255544950182970935542250441751926240948624394475231338448575745711778372464395112836943499892610693496037730551953079338639241605602840015517405557603730018849475269518229833651182475998335338185813413865703333268936417492367973055085140305204449409013785934401614947839749898052263064106748450431215533933998618146828333302110495757280558166916076871498696794018639344114788000313743778268493339530554915713510790113925452288104593993248028256124910871239216187595620482596482853889092468523948380740676092326730759484741396484100767935456465988904792198829652338593386534124376823204619552485100035685869967930088466905296587425083501547004413023054764928789177438632231662084974335795663043649999726811027743057763456178091111194606962239248934396260242078393763081938386323482072751853916103315915459845979962882107321269215428202195555638462797635360567508826415737647560456361543351421544244420610348336842829311086081887141871708233990059371560795800326790067262297315733928815222256316855786894785464507218992829521599347266237623981776433119667432298582781698563417957113685699881993923989799665681871430578343302600784614980371469098673361157555791376612169487937213369906714502925074154394602934216669270762800823302127787001694951447909306113406698986535082863369374182652148598088765053063875435107927947559031890231640785538723283581377240264272516724987314120534823749951287216485541259174420366808191261885166340160671727137706213570906677831318552360069105626100806912967610439235690474291084614728168200073547670133616042256775240497509267180979834689887709789512970858183404802672147187435280893087645957946193679235011916250229974509435266911104663519066350642421264711292622607269661062645645859382277600902076203409037283115899642648003495342494794517878090667283477516193383362945534723304387686280640778269467386418935925058879000319340557314013847279010437076395746635940491630887824367657120752200442518672781202749199826784746265491428093196680904193600220849088950670561231511993374720740222376278959576449078377816356789825049139462538353432522168828092827033431576294080432056291594376421615870822719202606626005655457096789176793107272577111973732849011423175092463153227483489468734174720391547413837058237384320456115030128982447415451006423765869911465983099422415155534210403656931598199502729038789900890019049276459350191248323219903385586422730281477179193316867425929108174441452640241154399316074273198524313144887599451530158283657761683005786641961638989526786728944892267401378701941513931803164782379177151324288622998291479204630957445473607887747241257070345273179549641792140559403270077823737667661033867553042479916668042728200006812473226725997175156039723422716045693987374583400488365798719217782414139041258309770312877581403163435030388136554237793565142697611848830158732906291883860843516178607685174692609727518861307705856220959353093042206727025990751918132505087308265531249988257899826485858720884107472170083675578865427566841842933042045354960522848883475984597694121366537658235621914283698113595676919115277256991610009622101298207319239571434497752545504469854316980720571808051376754262473652913766305029438011912879037903735928542561939372868183133151003916072669271786637813624585720182388234915876714961444868097530152067582714423017317356711452410772082885786545121644733613279898024805785599450572085801579468861123724873609964094415838379872292051865782999280541115297081512960238656147199691324815265922812201798975385089719823613592029111791942333892811261738877713962894832849239911273408897950549513597036148402230464128493069605394091628496754513759176035619381823355638000466596073643757552601309856551251432642694567723384694789220902963064204559768765017660227395346571232246795886078290752920299018937249289294514673565783233235700323647541888127009939672237315607752229319266392307582176038608861287595335228082474161724018189468236774152197707389292472395619482919093869154147557364821012971403046759624762827102555203867819324759477241041515529874174229881114433751245758317929492954064858291754567682366065988714733329902261347651840738569214952440167788731870126598228114727098564720000761917708155326830589318586136138489587833804788570131541780902201468330479327984002607573984620135577001671557597074869544512329971156818554423607645529482411073196008473468031551293209479631709358598672908644422204319945825027402568618252796011062673684002689554635456825283524362437876179598516746857076663604788442380974755694828662852749993568867188405621541926122226744546934783860960240290756514186261137074937675308912573756603767543726371342330332320135791731648599450731621867657432415347311124820724086788033856553333999971805973490086598501012400642050581945877833331822210330499985977883756680099515432885636308945202810400960030052020000580625584496679956901304303900143792425377367867698036303037835241556005768891818959000184025268613640569177022222654336486639243037908446411165874990846655394716061938074393852432652856821116643828748276057432756198690392823482733002264886370518146492531343452081519236249238944184379379655276212704726520374334257842608270034531449460233383282866242004444383052988932336128857797516450813736018176041526612922027149490987033762381580653523638789702122073705221911514563931473831378758170486677141605210387068919462251864019402641245686900455658677765993578423268738359810237044292749045975719934584569803211701738367171831862717322135264271455347458382874185364593419643833102637487914545900095415189369737835811466103981215759474227727586254519734696085805673143737141416983467516280600377226844261589958996895088080955413944691850294320998831526543453993352442894252019459494463822521107677032903264882336059768027581142107970741109193564459566264962539637666129888993738655244285182769855174371108707131833954937873429696123475047421054827182083276022239316156519631767692448916222339724928306074524991259230684958215074431723487674607991066565161490159054151554797322241800077616451457130682653343060312303245366135988125910680531004050192690046707255542638200720826865878603177184212637589267928307629276530731403772522520540959746152412393107559302347813476783849013709163791271789149590356969305332654618014988259389353053994849441448674128188505282615741041684909858308582679594454716734772743675173284415993790116149493907555399753388835655485298254997054100018812833909613464837438662722640787972946290790599617723319986700203839710207935566051669463228314152832049336370209225515778756830608108951326740737097984487706284568574270937469566851582249440425934370397074107554184101023735865513024606811696337840315997361978825132064459353042047128594242491272821055595162844128691618715277120442784597526670852695161261022164770698575288513124621538739690179146298703991791278926228876131764175751285626286291002977972910222522633068742065789094229595571429439502874664743635972660303971428225555478545005953737822011805912346762607104535387898681514768843082751441355655304649371418631327026265533674232767859564172677803858776050810204647783239059853026321613647235351879382705353799722753812101258339163480246785594008298024945794251272742259307839252003602756632013227851572189171818878504181057301078358177378177014001398490956237842401619358288846336407300386703172613325642277550567339560898916403925970845192075911971510124130185382443612163464782098111892314133683710018463957488643881088561623339230808554585819134200558297053896784813929201455828233055966729427117772707608518156228185419671500297671900000290716965198819299696300938646534546857148309346075885702633143826633976064107994623118745251727074065712289564251250358564753767627367148202682645993411357262214303179852250140901063266939994723885850481387399162109587144130241916855849334846005057033175395494712145008890931243182731956267629571684840147424229287277911571628625175752878075805538624157654282917043160057908693156685825335479272019327651970473922743099307078402765219381856121763907881225678314269127812286513267024531378204754470068649845951719722744813316802745236300660865625738987713111779604744649914057580789019145081758924917183607227312497169529875342951205388544349502676699629599609703390954278722612418295739886134565060741722684756315019540581793355022756494839686335547748924883841358674454275636110380057706571109655525490266499312357724222041681733662160765846494080591336942505309502297618335465176388144001624327059869912527896231193995147832871729241036787452066895728848499144505349862565847594423150088611398832404789252574585078541947852765844641901620283671371009132004249256253909670867763931961324349404874546481049324409226119049073234874786167471634739629472440328326551069322888473335376518890365393653029248506765256124453797540654203707952643494329427699577545036424157202807021729360703432650643546162848198826826468806474219118862860201243043308487885275468985537735818592896274951456500683905185338762975039541226619575895140167995409844262039607959272532611914239660463461023913654394155778223768138633053368195840786794184657429211481014324407429065547164901561008372059657002652440556811466775196197926726030183020144446554633363592695495513518181219375513074874367774300973430780668210596444550190629471107923443127490419127359891052609652326229348876028129360321698609807932705811803763087075214842359511336406339210038670316068467508307733465228107529575928445249240715186816134934435946117997352257110673046037664641973335097950087852943802474229341640526701201496613250554143767508873473530094328101029197463822526008651084458904744921712604733349969376033712529509029451985401832813297930209672307245789888107044735820556506660359700268020035038990730491131467910373182376809492126207055418693049994996806643038897901405195898456844371066557474584805112001207707638834777379540569694832251424227580630514906417353001056658029724494127260479118098433119796095640073073266943883581521726942065295032348535471774769250988795089871337983024935766119903098872963830169635096381787701881048373039049868979986569833770655152413717730369071759140603148194810219954515790924467812843926998739466491967302171808156504879897031299769281142493038103524084871833647133117534855570769596104194888171294153643485389818145917134501876855848650806829246334094564286893908276485188873764634280348460744326129343886731257984922674943784400889969991651025551557164020192535172908692213176926930892215732572925756024689329681225187330081975432737005584833478870312868069209851389148633778625125478905840107643341107980114848550100091341726849716540692053438193494722005810415357225455869377677490174271667397930500958766763921255225571583706102947516871442697516434535250610788298464536661350839884660931504290665875143995900225088034840201162308334311029035297532122854742747656477059688838672305852725098077213564748939777195978278046384334679894566513627159581210668705337568820617283987594242989853934698746539772273790958947840810949768687472184899789147474826125107756912037508848470974710354013565803740726106517213743587165908311124637580183137134831136041894078519611344884216000723279598868904047805009567977531060975910692766447248442192832126041945489663300628018374812360819280703005356018876706523563346402397262387666705906009608328800465028431996498665304516635746791660287379974806698022671763492328410229694844312703425277502644410507317040928428247074840633396935318980479941170022213100676297219593742989270850484782433963550751396303119255860367663873188141006426204868665568586801632317014037641881919332682167858820900715745099874132896203711933027954726187319329407638013121412992390257496647993843560907629724874225606790852849784901626169662883337396228582729107798409068159179745070389856257975812687094717872323926055679421250133005110264693704146563923404184682642376363960600932158875852646095670977875635248940274789808177001669004179493124774178025688202895066202523609314875049751392358374209836674415552743392661895029348242126352958787364129932243330641051469244073872897371340087995097532871456393409552033542701217634832864407985401544854858398001465239311399401555147438900170089649820888330062897008021028914902277274939503916699498219004612178797951447557266017332470965353826578729311664122788789889276135719961005636810614387012093699446663422692619187520880534870340640408416503502963962206470064721467923509989531147060975504819058861628326268203936999571531268826625347161883266189856063762246876749714360641097542594652591830534844202402959513351710064883929840882392918207579667179895023658032973341238243023716145310012693152315890769788204506125502798317986545523503305991291758621568959185305830532797403102867644300073653769071068456082339680437368371799778354706558843813841107011322258560312098048774864440781086485593516447522932249149179362541992450379027579927030622441237435651668984998358598297115378425748722910181634203735146848714979506679622350377799533738935620424193422944326673749419230663319492637502606984910143023779522275501007082666706802261486189162324867812197785829727798182956063670372386339133335404429746480143979060272438936303234589428654024817734820882950202893782365331720867139717508815700131688879014227563156010805699685238344461113472701940697417415716129470490679323877943626497934356176348812911633186080398535336817394811690048350445713502252798640438293948141064786357200736584749236466733225932411082458729248180775139449006154528661565703022001870563316889794403300905580779800767981194436708805940193506043538648934506758655127566608466528690530396434369465036158413274974258107292798620760846767628322926993174248212776024765246454080850958894972751299152172542433544127389656721880450094111038222179826289935875050584700588993064527898461647809615521437458430156527478331763389639026127750048104207146558900117525921681813874338541872880119670683907595730671223146662819823781505161841831387504045492628015480909638426729861210787196682892407640449479613795201698134838438840158657998086020403793342125757495455984039228134530300171216293410465054834571695120149144808441453105584503115790320145266805016623349746122276983866716436761924815384073540409572839114531337585160820591263285989712957351313785776712086874026867750544076229836461058232985936410152956610246180580233262378042619295391765790103210353233279703287799777047415456113654572764020437222490818680545976274697414299642164995319550002929830019735071325003074902124852025872690692354823021260910521049934572888421571108539966555125738832225789247203011258984971662611774234295763631891871023299868567169323794397957303570318955168947318892843593161024520497600044995206788186026885343547403715949073730357348671577218545719212518859635170925167529648505956724145007187561902953127708344186855808304148929967367008330285931636845406357582014031932269547463730408342272839046931393958607909722334016584452803413142038680413010957321735440116889901507288189737511195052556322912631611139887265256857050320146753176048574874507726479922318826542108524507107525311600014500535243694356396860768198724350151929945148211872007479839405448384481292989944242677519093536410996277177870179188090785321955467761039158717004936800990577893044460144330212784085575640675591768784208116291912960480070474380565391568817262999094825461200973717215078584138019492491839183120577550220998618759577876941603328075803946013478982742895833280151306015949219598508087596570224255726552328916498651506338256836595003332168552057889217693943739650092951770634500476570208997839451856861130786242054103799394335310387319974433055423823236286777752201001713201994252835428382087624379683762389052938741668404854186174962467276224321535442138216996255160573517873576007350894108280458701063899674186094139002891365821473165560557976398872097851412671619615760825736639009595920912475375533299328796689349614625218958305392433565281747856294463722083205338771388695554394317507860810681365761649224419837513207408339902810962670007888018018597994677066632718462993651216715946447523775086397069976292039206476647279038255274262301901660742624214771264303599094312521648746014692722273461183398087383317314224097738702393367039398878575497069362557806705181759823809884510560997701056524209278403908404559835668393825964627356136535414387894434415795698320794123172068273406544186118514291278803882457923992367681463774819910548128663594137559837881955056326590352750437986973606071898148718003858073570804038641868966984109521174946758001414275577363311624944232425292450411592023202395820763078426129805613588801690869529485529459593568472502753768666675731705326373156616459245479668328294381298093265935550685230769228133803696979608270884494024680366362834254692649213446402402323785230542429274255049574415361035856248611331335839250717131442214232827587293273111934100556055353360766228813057373652016286212506069141746453177547397753599015181086891297082002439007273473509558901855526265949091057684600718392857611910952352449934783581388207879254365337541517993642455544631782840186027265864820870834852730424273801026204388480621549055266961647306784379014858077568964682195261317387680586300424487180572892002924326716333737980086725060657860250655900975512598510131200627892779410480124242625950869412208100601541809544727139700408798069055430368259854269362666058630955119181807331302667644410295948797190983148000630831939335905761546533226413702985565694734301781277363769879043539663763330046152912461318104964245287983579663477169405418085887942884176375686011537062102569398000412516730553020063562970436189469021914785156346559852705853995009840750061032425590786379125588663804297933852459926713258157212452010595841407780814763285143033552227224999106035276188089413867888964985736479481397634621919091457799625234980228904857109803006391305870787411117204319282337021498408287352603607704022105106163928819964832377999224120982762548012148867286066476456884232475837803720362315575816043074356449979685450643468349310003683887508301651481047582163851557151388728900652888149157266879198371689727700656831885987848621309888298681824866330585052248635141677950691321646974119069682084276728525849541619303843111562194208839373824877219726487800164374732284859381913089256920263887892872136826083335856233496043342718133597877337792744448914483287360571287372307318443916719895336554474796702167431209661374453732797446297741777752970155880041647979785795109710213112944374077413910928188418296571274268896859292641253968876738536519471362605644022025955858861362064800477765391035011091613596340469963278746021831840656345568591643131104959634055430667992781049853038738199346468161617915551399296046553959386369618919254513244195617912900354301625761853714299802987301876654388133988179534954610270170074697150209990514040258228752316873079873819133022006239850288068087755920988186479397870790911871156710141104734365975307759682941308084598899937624739123771307954422878767541065504754053783907632725864296577276357768864009209801480117386694824225328399430493489984193292480379745250421978734181311003917783009153835808603266368052817642025783741648101693940769482012524449249190322702515737138527573609342806402441415410806150327867220783037857300684023184859751464089010185917318248089213040727758012405763969018973655529587580465164792119756031425486976959738743572984662667632358889738724770718235238665763291634338364481430358007247501490447085446439287477293485981001160678051481199421984453213915809809276114515712146442545944256550802088041881512366953637855088347431726887431914852865160878929470612611159772220959835773943829806023035370750925088347284888553857122557823958123631423225951733394928794114329021336200305940170438539664682137468327818877151027063269841986238571182949179717977834843791112096728760893587962894600349216512812705405238281657629464185490321947921231702542571374675556142664438185722980705786364848712611867212339833935669139623854919460960028087512888286190605040518903045575399967540859534775920985833570061874771134509222875885997694989605392569013532783546444922372091021195228373256061950190281487748174082985715297484226187981185048500849033386278440105578361323183831536946615919974763197641305997728089074567243249860423203597242829376717120860599765660188577778025427142489529380963407624661915166423793018864864126304179632926091402535773381024745255864120509404405227619087161437669676985182287235481606352858503484752325136944166857443129865396730882475057639417768424836193788439888889729035724571073504963413453447206755943722685367491965470341857708238850049136914688289377819798551943790164314441193655961241613079045237106486051118692160588799922150957667114588932768989453086630671774832393201258155412806807140669439137015314461417993698579403139489340754392418158150712219699513601183341469688887130809089774995233349744692114471956312678842762640108589313033825659774345030074255044102232043317951807233954345413990684976288632107526459066870248326137450389542341741533072944232705969967984807306779711304165557196937592272136911040252033334849161971679248037508032151019503753197214960685827977146829115174639560799268887232810701336764140281465980223342425935240085671119969878975868250979931297816041162461485567801697338814636345464844406524268737627584842344784943787030510535232594087557896317535579637431355864698261842434197827171992041766871847931646510521052548337554699384638956646152823654843088294131035836759259269264466708172609004092700298812856404658338234839977496588465490410410658096146203436173404449405726213066277824899349278647912300063452859385844725846732655898323424050313770202494644359013366490441029964051433869617859462680101563382284700818846369341366391865515346313846063773209879251914892607904153956348111546102450219191081855251034820983947113709114506337357046693770061363371609385054509653772023993290076635847173612367123034202593716678797332032323602207717832868188681863859534994963396671537751515099912505022079024452456841213824563311317429454837250500608860946653246314015928204612926687904139749150439264134891220731119611109723613760758881189960328187792196575963601599033630719546048395578237963434685042280119333110007265235643203510992881339247701962161079802129074220667228876461896250341174038041631501390440111052912736165284709323402553819525484906658434191989823630112121076900604805867305655208403039007564115905284875436748996046484011752535390078181696013397635072776049657580592204427397517292720829016901957328238914212321244974337520656642779366073646447398874541152338850435823414569183009408598229683983777698036233731499137720050626055925776182015078305595525838108966236877457564366541447071035172117996079183463361085334512287506958976045938933469785369009578616153571804560660448398740019767239663061515664921499840053252202909183460223890982674813177469745354145433271744800341488270056649325515005570840716576058882305460246756777643558920828090047839706666932841001070474739785307315324364980315557722004730772875547136606948234380426535308850600292615926099705199590651059604188187580010955092429144749259991298480588006888313212178260421445543068518726465193057296687004539341275958175117042857347595329105522973367314714588961986269047295753354973669491964131836792314158049379720991148942385288384562813648234945619225706022320049539809875068802252082592003306172988178127327206023894129512651510939798771949382367883411455518408682979588173287218607884701304965626436844834864325752027996947271672722443508817161684359352022114134336530490464791676079324894747954622014206214812495207406440795612666142542647440129568237522640237518005718002648634436624179586641655442161816656370702811620329871377288357613323284130924361934078172739359090048934293596906457543580025239347498006888491368476242701362742305818890541806199420912470582486073404665249807507645786313528064848380917108619524297948485453905374510439136268841578974039070745185378900227978958977796356269906001706402075667834841945473042198098231837788707124556183555088466404467254417548140947023813951495522910607520355021758772132872675100012140348970259038686688127126192792827589392531540504410103789672212100256823094183399213972155122060156982282346409688330397227921373792545214469841166618265779200291110971482324174925006541857599990271931742428041552583546810838015121224557623437835909423250177233011181894428099689783072905735279972117375712085066752028829965036807908511936216605517066761707491800575116672077496810642521807952759721047102508047509370790214160317043581460205856961974229007401534159933436419255826838632923698157375256192467418487650099155387095170483121361185276093374307538062240810631712384484263827865279029472994100468538642730047594304804097132847108216828038184703263661690525778230524351631587188851842323152257112964837574436713550113494986562254818654872382583940151225794053702650052485987507066343892922411646081634582875113725493338484228900756949607944554087181691374701596158528595401149566335047729595434149615321192225767262263043284176542224371494118671256752174289027929862314641163132549779651450917345145856485364232009581145549912721977895832616148146334224157045429576462376530287107388579632010290671261406941847795888813064082865687604895311561475200883431759832319884534151875893342709672237953187853326821953279468792343896486802138479350352719851782041002038318933504368749006729235751180444637826013557169049148271811604289158575139258989209777418894075088716217286308770022937299517417654180687736393378008977246594523783082123355944145063342249392231152730706329035563951285411152653713291559911247438373074057483822520393303109165544254971253451293332473936702753994780958241897233008861922683226471720915879473545500202550028375635008648076005162766656404162666215909243258887820860559340514680203284602018850123912347418898373023850354592576210542149102730382649047335073115553335760254532644442125002863129053615193664196541023747025628524642147747833505570862103063632748707238958421473590464909108002270375779353281758598699185839170673595311599160179367902815838433176913228161258665912944351542210650936861720785013715528691264067375038913550423169634001910867001605108385478209412804272564680546211380442372477412622847729297344391671418775397450903407180764604638607362129197851855586425279469606442077806060618616330102478242954862332362173283122216463584846803230504035038066187574430373954048907813884050364825103503980104003041018155271366512129325918577979476210824511940523840637939070004912604814379957240197357892383817597633878807381167421887258434459272858654077833570724602570298122405916120772510087979675539721223811207091619262348781543922721847642377036081451101073246463690361768929595903933045316486329429978688615542593948865971126383223141969210002538455300580819943685029585466539646808944987907786675455377584149063913463575933082969227379788419436394546350156882423284087968143655201046354849839470725783235125925310528146435423299366821565339857536572328441192754869986299612396242621243683129683842248164950968030507616487981602045729499626546752042978776817011097789636473673803123259280459401572282981099413656482530550774312328280273671381618872031881132588158571278814548660317858700180854074686297738891537511546538396985809213098204495248220959394887293202074555814670115635878732665758122380394645733492506578278612409071179699832036037285712130736814252420748846991766144526370672110280376696314726097526167111830140933227747938967553836325585203917396098723751024011797405127793797321315420882924725829682753036237524169098494053755853760455933467989644820655214851693982837210545225438295181207272743431190221696381856869439632457808941783081719911734807956742374744208441112288915555636617875088870838806703508253030738096210898109613209309131072913188363141975075214751235197886802770969748187964245337415349534753955696196142878021463773644012630509227514872295194959892131331200491668127037835003776426848216573047341721080121499734515921379578317611843676224991474920860601744049204230764220565210758055982677093573571812631183637324132988512965546405083887166054015529347060085663959465362049544617587646203295648369783050127523870936895778130044120628960905500196660483786405110865410922962227070710905014334175807197173251386117305152611578777286951949073846131352978418874108311214784535727189631270314867597928620643769381256953764646048571068707144683004588729938890557484467563452606505547320184610223344362128512358102992683118199814216715109760750487684591403943295958031172276714369485115912741905152175515448309361687130808080269263411345741364449217996732714537208159488671114299859126643749659155187508394401713710187546174403263500799081980545470708305587699630345150087857046094193585003882999700933809587085003295437498766005695128102881533239205774716440793368572840863255986777342117785000225452363594687716146819337926884609739421241522371248430883935441761264083957561655938589381641960766129403389442095384215438626828506363031851185279400858638899606093176858563319739578430209927671909533850184103219102744230266702936914711189807272081200754352853336839857942608137276940433183533105779666010240615221051790934507751250773862190052765664302262003672345518405363377638199312036454189350594773285849240449811694289875156450950656820396648414059966054303941993488848967713963502411078898041563947001559951245984961620234287476416301214529937199237594728841727497979802956293466764702572412568527911781945190749452662972895512824077029852360600628162693158429199465052352673721004691573730073693430793338824672328576301199210614685924576769939518376059471638291881085785104277275128919033932524825428508697744006929559633159350397091596695191878420213694084574232652490978683341740177721046172956889579765607518177300361208063062877827679375474385100815453804868107894550913370753433986934704100435756905045489691725671866547603637516031950511165412061905673712577949369494006681604101445025280959298546537486880044888990940111008577939865599129054911138386858209225227885783759060172266972226594222124155967586184330693161341364222890362586560232670750227283486522912163757085424894978326192940103411348806625952042848382636866772360638316299950990415369379409177540018684215718177097689452964405485768990116140105194002774079455895494287241067947311547834000944791441376193963040139600700861707746171759961441189760493113216505188118542054729268843889300485977838764174520327822374796641357356424548943721029183574591226270999976844998902352729297628813316704289862836357954470851217129973838622513990416327506228443510877640571785930707547206906450367492809866815036882698193094944769351798513481258506613580511832953343376922033185351166919018529800674076890748773082166039604109654727333571664353072374802827992225828752355477727795532522556461272169756789576197610461373524002030408547947548982276860780584708587505969218228717678943529952999152918679663917829610388751459061622103354226652735012363566747177548742728034816746395753428928004450052695913026699659667395557292437025623853761026590785326175091872388891774933614975165298365990295120769353087383040265717405132509198254021605923028597446164358357051238211360049503402268922779271842186958572779079668983294601903521018084811636390917512353551097251913021819936414923163854481392821566334802879148074274165359734737225681576769852635128947742281704073919747382456188406258144058448316973948816366831958361985181850014705635667011071265172438567376692703868782618985471001751718364384504712816630823545744547338236904984750382768608605068766564652257888009048121667384365739589537975384451411683400195710538069375642095595873778927600108991986281659493564931053531885049682939644660233479267222040510361915181199791250185199476014955612951610955587149257435958157914093675963713597014021330788022336011682932723381003012391918769144298548812659512150189088067118726441082903179951646502343935024883416783357808538657552815531513745559643317722843275116931686004262705762985829673485169398436975141505171803367937712959181295410354288280877381482206907094935942584273963679940237977471699064999736959980231295764915935154146594912564221453075091245153749788926651771581383608582274758570406077426688588861724303197024243783040501880118483589994137954578491465082402494800448954909178046161263536207398634379545000385096614005376787738228794343873652754264793138852967410198847302941727568160552224664514774601118696285896743127494713915885701341638549711920701954471967489190007399016711409662269500578189635143811753672138304455116655438775845327128986846293755188218046657448025698232497578845363931069964281752816578540277623339836141974994591549520671041299126265956108061117626179348555371755962327811421902234620357628017959441935875776404781587000399401155757493130036416168704999774776283273485232812135901221917729626546486986293437850865168360675405899535895712955147771541303362291198843977115997650298889513342311355890055889236653298605418066239832942471142784291843521288232524819440553755426992295589748794462675043485450054903584761819350421431297516928783519023925121261809999891550165151880582790478254299671674168899886829809168272440607463138677809084056006083444533766796088176132681429372225241336941607667253214520008620453258978307532484300755558382994668566086821475786043759404837337717533369197423540059137527488397988887618134142972577128981501503207971973744954982691064537016352838224020067790395686577233389052338062470869468675781437549211938889155346350525004658165131577100515531811649470673893244244214807942933404854865251381035889009838306170869196318037687578225728107997721550291357483528391613408553091994705023176669020527463381355741743130266413152414842517422247418532970534056752233365484633409404520110288268278652678255596127087801494770232923107292918335975392026856716272263225453229657884593965790445816411986984040945644359679907190056506244069395366470570090463314720397245153184913393042238849253160069459303792626768402815962834426692979565193973972364682143856293271938290681243885132779013042349619496970422390381017162301954938753560844520280329183077611009284761500732697853829919627907745171584172675176488882952763793936348790352576078729029624408456719057991905731051640492501990360466840137106807364881250742557706738142968645404434653286553415039185597214129512322541699692456306562428092516016170345492947497537826644797387990108279039785732430874299954375318691015058415757947330574996683482714182632633850216396457635597121196941017027672939151230891959173419603570983703148376022602141854608884643685671751915688096150079298972700315860125734758636486530959138288865156497444636538460228642921116405448374743275472831720552751064482693091000595141482513075699880183906259175596655265362500876670888358742014355346822099811253224208998982653326993468747550420065638573277852263227916992651029103320798290103468565862011217872590471700966940523537674935079969879073182479442788243120439295742997998259065014495922507803947245869963670975505228205858926616984794306202763596063114877379194072222642598207297991679771768473321517298013194498777724672121835008110706240888991617209531555729494807081260602251646503403586465919940191834967284364470315011719381264868881493639204259899118298523141717107247556232058632526671389742870120912082592007949496061866903200534336444449949089472724931515929221025645441468961710239384630639852383701121533387931599315014042480273273616165226670150028089642337267041230910120278993257347782007607971255545936133440764106274477742409894762828115823894302246786276664932637893759350411959287755375537719564407786408867481711270733694560532448778733416001744840408922700554349623128613601494958055393599341281687339037313413919618358361841436020892242813667703865321949397563542001080384197014605990597200554296484187631168570514713936992854447093566667998754838397817073949389708347584121114883518565891345402529535496960006121685496961582776926185604837368464910234621111777335122606846597018267844924355131623183935487520664464791508308534269460528167735121216403526026691078252553654832297133144604186815182461403228477137865677557783331946110108601456334067911943005629904813174167068202114618134107506191551051305638405791994724647325879433622340518191443482184689471328736265806701426937803281704737334101358875348990144636259624554041506941107278319373195068027773765061235566954720636277292503121257723650621260415748072705256404230313973066147554209595403041846392483790163948528067383460149746443343809750862333359725048898741786766704268742193489800347520101088379102984695897135437114667565314687459330667301201144944048920919839480093061007244580186463628295063902971667190274276291853869898045226274443642827949101699262610938596898761313137842589459467117942538725372314984739459409467274678395429452492902110318702667016667641643343645398168764025796712067802664444070282125632830002755829826162347893179439983767826992490283009561257611476178482891509557551484167456217495188954280273079002134786415289941916724738946719146366560387810918442633031424783333401842759231386095330315045054701777027775067558602926235129948445968040514570143111079435661088901186271688716125354515698830994402609333268189863094853148970318598703090092602046492565357314335528849065919740856089679265130931711545968795637713864896505092459534233337637874792934957732616352525606927779060648500028692397344793735597394666073966924077442007742225625872766624112306494844127772067437220934546338223751378894944798424737954974032364437289559607063848285904515118838356338157054350914022501994981566535743671002305204675200746808956640571407356238513132697554105910546775980993597192649382694305422143976684155213706699425365577542956283831699687677528252173103639687008165337111272676167567211205497154051460407286614898951343256521476584964094077567330997800115045051245227806932408697869777870391730763608535508171857526737154171711305952238687790866464526317092509897247826778409105291478160304931679751026878407576833008854352937743803881051262645082291281291804236817941959660264443284971990523715174427339374654393809949270306662937051510190225619787790845413257774920298721212272153766382450912776871900936886223060275561386167920143861277006813337559129114813388466377547939790605912037682972938061762553576563777625124843896468599076340896114879533008988499403071104486537063725716543727528598895309854249795642778469440924365034505367294476472590059370999262385219578742527950840394667971363164281685316931310248921352154948693735627316448438889588580520392768808197965268958656297933161278058474514309570013720503347885616308933052056157911864445923989054590770332591668256250342260424477032191077145264005917102038853016101101123055627382039785666792801585642059547254610112558554849369963813504200991598391842614061800603923550976516175165143100562351403270310386164685249728003288861006962852811567494236458482049164638253483504189965780114721831244725513776479153574478963284802161169145753587217902122328131430172418289115947445344470353491821250019618682144774015233840552304948242598294671891870607541014806332297787421453971006926875272693839904960851053838827587141808891416769698456714620672490603493507696560127425818335814695472052472056789526917547023454455335276323523482672988545429565355023569564360320532021655582480559763769387789529358062459376449354805395750471253655957942629790494830070691094730898159486018374897413855590800912948261679473135757000600106273145566219914223177774808223169109112569487402643496862072089950704865056625104814368213678950193420825150758516345345148356737497808824289983401404177857655137976946699000715109335950897005522447576862301112455442397380977730774393435075322777265883137378193052440691256770621460438297285713703535023800620051303894919567142797008254886257328096371085130598161430542990074255431195452136538005096699060719857642333287266663388245735158385154402685011472686964217683445707133546754627773561202674555718534469354956639934143344170507868870313776031742405709746768580997685488366955456946055234803748750917968650164767022338884496872595776629545372988223758837193110685619544651125385143431123251977816407566441251416204947621333682748362074001557417156479682868713331336476561457242152229039773914364532323641706505900654243875761602420976004685120322808928779673830102364935859501402415859901192014227594118291356942805159754002887924315665269739444832435071368986054562336839491229746634286824727604341959963761871744079952274751556987147999455117360925397160639479896070542582416209189012446056331748511780325851005562593093595133085614409385578207482029597250048097614630905542164510163827268033020635545372510697427627629250316715908400048161114594826092813040157553188504027383491438128576709837175690907121369278576411590794124312097547132224179221198581008715292305936008667337446630903832147264011065389391976522832874682672950760069599341070997267726435324884013528877707508745699810912812405064965343582774119616084973056081512838538770805202074671038918831978603263323083722957551657507900338236418149762033840131020075486783470165151722382172549533038464158539707928829705844101714343276271637287175503541437542493185031600702402971139544347065892026205396625892952156288616343944637298286134962559197155876604317115033410661230707715001313715972018541954870658266779358068529246745349783400211566459065961048453727707074389335181298852484943514499622579443708200044632568240121756223598512531733224068336419924066775953574017072865148631466516667807529762357970100850179318699395596034730102086839623847824035825403957770734492161096563046818108928023213697398020131300187099262750848318965703407250287147178347116062102812263578859874945815189616586956513347840687121889945181283531388600584441164722932728595753986563275696527536825471960313677187613125387994217392840675985471689915480188624687421163031438567554626246126938525099095690364499846724419254860559317349036512022641689475463120025316650838259080758545827864547493261452590542564015914308827339960432580236717427907078359299538164478737686028118717853644166437489560893322477854015554528505497776942206950388183522247494621552728359905324803644340464570235252560841541481929405444906503557868069391878575081663229911726422819633331811290117539935953132759147507576112708473377773258641772823847543835391381685283211700589722579079071265060468970385639152542154023424707007009034804483499024721931943356215559466471008808359285337136326972563677918359836086137128354624332057510593688470472488306902668504981353832787434763267413720066532795146456646603193645452148809479830680046353583128976110236491428755682238468960019379652793213838866994794058572094426646775597350769589349888841266781701925330827282835332061923376869625110042487030089687974655301721585933479045802961909818252865811333897744228022200214504097744359028267777208914506421255442761029539628753276579197492769504642972059530621361681246696271996846230401795888787519865151862946187589139082244016675211278354309989583000026964090123830735897304122659293815346139274119448477222478978803164208065906720051143727001933268580112793983382330264697555776789004033321097350365343256952833329739713406656327617639765056274979389867986041717725750873153937237916739673339366412476807290309725743710301589157075685643328744304239207879397406138769549926666229985367668149754392603114855983358239106134496939919216354584674809186130594886983751372007758253745240404225956046677419535304119268417621368127452401411383797412158948643271986930819093250511537232482151664547250590678051114303979766975161776903304687295148800994424691905675381448614233888877696914061906121701326735608881211840382167292855122863784266671352991973859170705497350297914522518067488213696857188698894228058250382998535455757517208817120648802779171586443513425647473709983037128839758908076413224732795165498256692317029314172380758968720252010258307722941090872845816055737101290808183519513567858727664463177544003416284613623934465624960586733844624337108788849021566509273809223096821649022749919240630073691790024403211150272267222291899669396479424168464781527325392967395293930660218110557917799612718131946639174569835867564645245359699989903335285715659898442629787198869990708226913589683515748481027325957541764574981045570595278118725744371663265611753547492407338448525691933074073603293090941148968685382525565898051368483117647092890113441300471814216095740852489464603976366432919133753291050284185911571094128286621173027866294269392004807401294594953342451657369088532964526772255003627331823861460985987481214373856283054812167629213184747994278590765742052151611827003008016385611348009821219643390630677054697530766938216513225148886686969758539379016495191829179396475425927364454315879012262489439663365076159114797469618796661383047605269028203457025375686871034635210770716585015689146971633965085181898194445659077241591129416783002065024550363534647156450649590343520158038992917134415498949057547177788230486801252976239729016476001665737039466135566703380099900081802420537332645798884536286761994328039765819250749305356016015880516581240181322766926110499473748782245004888077190657904709523734443534230685811223082600180679028081521039283421726822018561630259986156001198831874507628407106963670015357739302163959942241516323279752094493418701676772440124092878800305269925095361457790374319388972729327897662709621374057418031622672957778898885573231716401757264282685382548047312470339596256884073513791811630475326742399586781481077832264150653861398361969459680509160442090789341417945389106109432352199923340011158636213694644692167009741884532141547482757659851368526506077170225356850000747361270259291372474965066695968378594580361314330871790241530381935375632723158616913882419307068886961765417497271095435125824053874477545277974341715425574582990602047228049187585376687773243018804021040859545501590581459768362968993082003730814480441590126717131341444287678964370347214873158028666945262503784230260300080072526372898495252163594023093985437939309742983153377986444367029104778272720124410007672982262325872073133948783522211223259447071593109648933231048807429774158851319450476486275714421567344469731934669701878305513639379592740155196154068127602292359961659950675847130294873905959619739595352011890043250389447581148734874957823648644672597076621104419138967777305626592540321262500978429331365090199528980143024224634844055908616361724652252277919531076027937473857231568789136943320113044178657416174694350137821254898223673459896944900507565675328735226741557198810463155110353469130927645189714004202420786384183369927119858070705668750251120031729230508348018934177631635035243311519533778074665235069585634427625050030296027662670830866638361569110295159483272098423148441439740427024394899044387899121373828682274091375823237831996653645963210618043621441323218213336634800586526882359711578393553353683097864124466377191450248056257445986067086697118440799077517040524114028882818698872024732069926783580479476255280760764226234427810715396062750819935828073314843980071988759215549822685720536453886145432864128898893363766314781919511040573350004844997348285331096895180841864685098610153320041849372361320919969079756305754396936885695034283015167935995920525637910329140856004342026340531022513735855542350155066976529595391082256433835824625247674374737854018592409742674304944752486113742887194481086041460286736466090776512737899379423154436959093917178618736886299368207141062411419387188784003061249687209005235025616609173528382520378304041995794888840233721718431667597838585581733239242286549421641655242634046844358562895537788308869577634028784156755330985514585157508919168527113270560669475057370955053209064025122125978050163143115375732157101992874784659336986524528791887775132394956943545652142232401264392197742013984225977294294665605370777129907393040605295532110764413508397289407694423379089800748079286899055357222603219259508036787288197712003681517752592425114898917646362946342001781274093833997612925304314473027678064073734625078723469386532552222889115978562580271348589829474745153125494214613194404215759919997421514116999171819193369751302424363347917776935905584975718848332925599849720196826596230417509201184130760299478927848914655192053258591226775108599220235845798915156507853691264199430505508962180873766312214181968205204633060379173857699046477341613693804021387390268744776809714389316151718198282982267440958995992133286883236199270996386597893739779399569753895886502735204843312928187480954352861061540304747383742041711209296379363204354219051647101923428538708404138068669315987855120193006476188821594155254559636465243333505937683359939075255484522042841532968582292542541935404462202728399356399258650440776104201354360509026561285440932108542629474232098360341739444684467652997119205257798309181944656193803485011284529194341347829332908583558044323611957193503368489664483132064171634431256303114381003126459095544104882852196135121147693812563169068288124713394192830181380634549251666530710905109595324360101463895707812367525984602642494669960448457056467004791050292478021032785186251662212197086768913653873404423817259495895696497113469897022492199553784803350982382283248903184793484076697127779816036840738041744389773592556588247793430791045401450902078835852037194070149331655028114902527355049476628547714078858458968882520859088345920420722348252480630488166976847732618857928015860543754626153273372028016279721679364501043613789724541397871324032604953282770499997262784486188124071598239103586209815065935876593137261656965712563868191927604269282977787906353042569601706264894971305881523260202219279175907652171424628977446983131746591458331950740838754624348000613397132171826183286158005047477462763578677912148391533605518478581925085169096703090988760682609634118649040102665992172717520773456004720508595774592427728438518986488600220237347430258146411800260196556471902509122449965052388681925891886162827472497996511042551504934570079322058378383908677729562769899432014782700719667077844008269923496136472379042733995347715327334237582995128666849414318555667397902200149516049374797340242870153081104414245371839643964965795815846884457850696892796382035631620585725312826877349326797167135111948205599228907722503694912331769079545871048807189819110443466158437333191268761402335851241483246637980702304256659720176844464813943607224115606935937314376235067853582316668940380765486279616762734382835307570815978677545014470084906082276737311336064810615371537592273795189048429394382411230031705919822640507076177175883237118797962387801496945211907436596763920657148224549229134348825775351742426576672119429982637387930339844378848731330198439242328733443494020531866596191186109643865804793223304672734532799720573732113929098825159646650117731195282728915172426151809360004965368859186744714060406526887417901382292576569628280000528565591933594732436455179411824917800891705038828213089388102095852805723771608449274665781451713489774551465111334012908231581383831841058665542078811234301713000648899236434750564310075912308064862444701605513380216335620632319688883833832918961944653504195131815353169005676718275540406275711677353959225234731128443650461519859600433415967799732794469081463140704556223917535510788555133663250701992443178188108184264814983221987304035128720534818821535476183630515341721966343148031936773701153928318040595831672690956621027978912972905511435662947506007755227987396883147665155742353257946294703370027165472451222155309839134786988512557686247094674534764779370968835326248906875843728694802226628710961974542969827130462056028148594615134738994330105913928592890693273535046245174730153239848212011220822201864701145736709198788043282085576766358416232588233131315523671250017279042424200305775063296069031620433575847938616680532997578544066357121365005828718596249210017075195819816615370738709381987126661072865247226468192167664562708817515565327962993100175142179036494866805170586388586419625156574219402338371250791084924415477408270112474245244555040412201196546596961534065790634232807576710835878726437632037689110572951978637751489679077164541661331533167951161752000710125896132004747682654098089363436166213218088863039686563158322257010951511765232121372897752627435286003404148001563295366987806963422259431573850146635358690494922692468393958261733985978344708016602093775071146935406722265018986554335799070859869537318171999557816437707541040099469847023841051890205759974156498282173349889681935630174009309103479328220030193660327232380968455771054383795630254617675778322736642304064410655707018977316343768084978468891420749498535075812623194028185676815609370782898693286322719061343151306026420835374384962917122982378395759728466838692797526009544216536792556207295709869718235832032876433627574266597670687779801177994132655529819691636445285429351418978110796427029723907485163533440615690093498623422670380791948511662342559785893228369469069864518474475424846601895861192387795049511263439748996537481619193067023485138689473340169179019798772464772049637997284055171812116011947206644444429144061387284224055469424653742875850135336669350981340246440506455072543484808811030657198338106870225908661617583655267966475822905223651933563335850486957640717668356336459483040006118035663295378975972772534660427939731039599586456189251432641782105442354216340355285182717638049005684330036812300771141722750974125093891272692537897746581189593406599410680711774002111501248981093560572749003568607312813982194563824933861495141637873055929444536747665690493258317019616274872066953815217192060532481080512410647143113355318557297653769637062914865101260334561118906674264172729127977504771483387838149491610589827927019907516900407903981463727801636319339585009979891794784775037980620981419699444612824534214279144862097530377055586804240096474577152952800806602034491437100478027795944292953731877981334473772102361372409208540503429624752784159083232190643000854404086647762215200919174773956791940280473533713539990283852015561339873267869333441852868737778826064535931220060577802041720711443799087301971340255231955763135773039760297600562320673661981997056823735624438530561965721651915295955826796479806042528629445793471765011244799187765664168698759636730398467270515787169334188207620306058001030494417781054800968375773073713158416123666286173805438623999084680418226449664172259614234498409521365872300823108754775788883748658382777331237906159315366269350292511929497888594271315866810652467165277519728233712626763482241613137281927066946083201882523976777204749697748897898498437175429454864055617374674414625442869290392783651446394323718590466732482704176240279820387222784944338037663865253793364653569015620582008643018223814988860411824973706538508851230037478249031556133089308190866610472300621466273659961584423526023777607563669526514127726226276400006884691948456928204390245341404540461895808906364466075169489252137919924335471830326510687143764172778042706176448473193550387045597888222502224115177681865420765551981120632040585948120252772796048875608009077292401265612214800438487859190018122729006149211732713261342413257726711184283569641568493744844644096741646351937195520428574034744152446881461164953577418944638375221585122025823245116460363148645685048498692491233009463544237830676205670604935753321712002220020885680200939173760225921422085394032229875623393549126333605786457710184459646657504027151235956403196806285367442953132651720249953302622904312482857207814849090779064347487432162536067834472116413428496241823284039590021150620118814090604053472906686644696530883136356377881393879331349263024663207438287758813010708630488771943648430976944016372322567335289487725629008924699590514535120717348008413087222575905996101463976265607155945140017477776780179162903927738941763178278541692398878374427272008376350796357736064930981798484772392128744024058569836816037027923234512071767476189151554600211503286075024276801799935207608098495178590475586031263180842038008705406270145919654262364549622853287391931265740889297509138809632556711809106554338634343913714293798576550937133274451145394044164588381029243214722439882871245516930845456348963049921917542524768508770189410122666954933059330446095446149691140713302778870738315290532273623980085243709947200559802417237534385527676293893646198145821662695821088227022958861425575368326878135103666235928924141389739690654025280515827974811000436309561436684504852214783386208042565960563076455182062925627122159214913683563962430919527687713367413858548535201646164467122379483548640169773869163105555988384420702054320520139664800890944436971268913438170632120622034159327616084766462589002911703197906501359217195879983453439557365397518856006340913029927539466925922128301948679101216979017928627394097793741470307170136335078447015600065095954180223798581984079956049926913162323915496168680746250641757450190280788432898744623624189678604919499520232265621453901233712306465536068489604332045902686077103217306856087566352958676326051167551490206847935658797600656910647774341515757047417708614631398812633097114855219185330160783431096310274314976657676325961325222820685558834517144187652354686382523402240260807513473421984241377638055977794946494972723185766418909829516437983513938790775773510831276351672007954331212097223939417181771336406717387158600113980074110849015078358261941522793057730187177374587303543626371319898249965938397662765148238502220444715974131949768852519051584287034944282699779941209077818955543368152275451108425610722046817851839182135646514258178085503556850439810962995207108984236092362256286937549348990613362720967428024631724934487780142972301379272774487720280598390988651160407882079117805123688246723435713194087051442848008746551243449054351530091549718677314741385646895837629343602614299157349567950087553898806029629756063040295908914899798833374065256946627916142348532506944848946348859589466981856108965500614309888855479225545101936004951250371168936351045911765155965161543475318211708536731454292631108129207520085326961534846855020786680448142373410257555612070685069720749352904132383121775670604587515680306419755924648533948388862964966603760733381663485287948983190046511407422448220501598900441158108331197064619362908140192017956860320411531685487256393224947142763788239106638373779809454216286622099049708496359583048155052523803051561335940835857895751003554958454729487663220757737835878701266074696474149376653070163884602668840997837554333373448395249663414903070792916682294437418372657193248209574799396971959709446953370567508066625044667092032227978479576172532385936228376806796836494417472681286620483477909124498575965423126423494423793848020219846960086999298675219067515001598054283889672645631213007508036817353978508781800938291764331593935744678070723342790351100032651489541131258668488616984690596540203510523185065217424232381112040295886035719712107057288530514879099944521655044686807120151847553234735414295364019459453595607556387942497373828625753147913150820148155452418332801541531255554101876944597331741718206065167311129300543501019339498884762937687793063764016404790751036211459256624026823962375955227581699562738587141951708200269637133569938406274755476299044950597971374720847894514620850306358717830525180134852180802875594955781735820082529778069125293222310539809839315451590505268629776240354110882486392447907437860136924614455923906589418042251376319321849767690900749692117649212821856020299786492608886608429075113527739934631732537461364409186103528099257129223707267594202222630125407245701078973469941753448627957534711319746851835751424554961921644781653965924611046693475397104071585115323398389570233451437460212517041092463349938273713432661688224366534988290257939323627889157874385622247120837716505572818285345518058309649801558713646891816018033904889025272084691713246668522609824768442141528660042563468505583551000518711919281446048359295857761282904885446656850856036974162797903272815624770632112792848222370032831830224354884525038013794753642730610378188118044148815138687648543267969605346190671766187951313226214056115620256351693921233592997070021077650955565921140910479882577035446877598436398972250652517081564547159306197818993140525115937864223415966567000285121509130531558342604853247391628662564085318699741332658394768404141368830995262787197694203743069902800878176657018673553438145622898139775799009509981333693129601491232069387558975655290757495487690584230662257823007342948655608502835433091899068600608724912405067885017838863922963855755564974103012709488499660000859165124705959413927279964538067550359237280354947002658725739734046372681094291687311186590541584052514995939615544714232217304926565416919497885879476546997927438413539988268380979947860120297019475163474468841485142714373614503064940865890350425483368740240160917552007821382327075812786068146433790865996204327984075539643211940321274288317331404024333766444578443054568264054937917803121381238366350855394553233871848909452847456978235544822551752352171013028185997758122112549039972763289395094113264025027548697168267097219977389948313830537793601536380135528627699521536211085699538025080418128555219003646653056808125770751734112258277395850526018179848096325862405891090495905440140969448081429637918923252063586378014812663740077279867394680401108365918539063730480025983626138874934727064575903011102157257144194470302396802799324644375852489137930377304466820765697214246331559215036191661706726159811108559919885354292749148440527808247138662808477772893285782196281557700886756537171552823163943316278283395838977520111533811028019346041992390767205084888302730406837136497380577839580455743850062612455682531838255244461972402014145045420258614237631807597164903382384230523313884858946601070834152323406904650015205382713446278473101321070905777376459710354294922677986871419433062247457709908478506200221418095155208781778389526928274680995590513924138374701052182572985789733904700721027342957862101096237802217448248865192587068853605749028333229796160771319957308691666816620561257517129247419634498223045820316885224872091488149523922204702819390774761376726630660602827832425856066593076519738961596042264175551353924068971273820523263312445669758207514005685889446124170913386000288322702551114877923598686728667534973166811482301380689076660139893471997248660093224181531502478318440279599660118604169732928334832908851647575673008653369053224335220128251177568154647761322634241217464034617105772286536558689694480301570477342669290613254976889973729888809109161616089236991303755029781069599452917679903105955887504036024261265664288646639448045153664517447612397229778291156976927957685893278835198257910510263491222476910012889131692177807978596390335804526846862752017846282201775028858150662782100995352204689678406061337710907695629515979859922561646685362177043840612385012717074433977196062535969117923551001961526909045770235584516415266399382113343590069570453232232280409668756706193944355335676844433622717563933803590393915295400120386044990645962677862225460276888526721839767244780989356995421897010184692478699236091558596923811149750994826248591363591223904177243517884426125611606122665156506569339087408381013405829767808237486154072304764383676303016635631347738327961186724431027224788987528733497567361179050934541428665797014556831834496500375509299435801287507548257900187664894442143091481667480761356406968700617863212735371863592218741842674570232102856192407313396104361835502684159191382928819619410381631562580087330801149163225995048294096592431464739819056196128239296916429350761638437352440004411198282460651525991824288071719637195246493178842270284697358137435624466250957569167274658896003717946640708613103567506177172929116736135234192296825599951555596184638267574477515318335161151622654622505711477142142277524323305924873415847888346889228031260599648317005509546199330517600885168449235638566773147889152861042288816563761745477069880838174801933350629908057709230106627666299975595347237281076148275874025838588645049761647410483375830794879128630930941598230381296887639355620717160573845193967923255749954691872839961527355795022270997264918606237512377349862573836816503313188157613714135481577865078524102510958191243664778364836928446166670190955392310482838158641425976088023250062611213103997286183303264952312408768597977323870502373099094034831679660858658342943750496192080830966215764010031942953289019517516146671802301325650671304541463994174268239781825238195484699934754380536375551001880918914139107831212122331168168093075217912613319244399465240551443406832375550059389985515697658627797194173911996797787537582618697204016103338997458047295516952179370702274384759275978279285447054203791554013516759892807451586370887040261348398939000595207838828550540593133980679290794840132572124851360610273331239103815389548836035975919220700235478389037283030363478586524341387674328691522954423403332954840556132274388553375780171404861391370577524499750324328256179991940994600736870591146357771638799349725808287383876670036115676585792983301472183668474591190769959407900812195432976288235850016390131622237721117411155382337040232882940283510917895926707512628807135879964565880199795580122143749567854846737056718496214239776498871743443097930977665214630776464503333762246249471898049695413556398347531198478910224813193780575750837367434433943606963536902720707713790064384318777914164156411636040592774344823144504189959331918685366047418611175242913825878070547130238274237601465721829277474533378664930813960706640428175712534377063576237153788640800883714030730876433060458950543243125036987771862370290747823830158672619470035899257231027872797584005700420547604123875425764564571462197020259108212702506748876025084512743558928343154746568501546882337582003216664362738187820783926854394274716708550052994093363157076637934025318421168532103910995599173630290849939143826867533275677877015068790945079607459923825474381499395270311989147839977012610263910538461358770887468540643050735267195410290257267270973834207137036937417462704142409650093005896831886401787388945626271345222044263165931606593193896658478852099041815259581949530221779647511925501405636106999272343200110717404930999992792643328397933776243996212859822994074451377506524295146206027908391163648902935471866888476821815867935595406854475000994370223836195619416561720563197149789505048874259812674433168151152364828954916843992634297899903687107741393725506889654958825018864271826868917625235568776988155188639670726323182126186869582933779823060616483193320967569291464712637480708654900819034028544767051882097876453210591842055545918128415535008703639277044759314164332233880463126255848815119331300246948563583644406479799864629457841577283980776448298234956761477505099797836498119905675673690917565254847549265863736645338167128234880822663257642322778984988174975391725710061913750180297170932132221346134293049533353251957719828259390899230965896420671657455614044317361120199171324121031926531613987824830591764595919111205988938568238945349435944307444963197177880004351832438003158424995401052102008174264008034991353365055757803778730815563192002886819194276673995035154969811154549843027931340804706649704963813725581825325466329590694650785996350468994382948972265660033037163249697857732610303989423715211077025657095400694735250257821108142627222173101814948063715689113117264784168504370788196998405416224329904070887911133074255892685858236536317328584774597868554635685746154682336856687034313928127729668567086186831495170160323918091497170011663448565821534230201305441971238660788982472842017471897012407780802557632514610443119006507755457078685134175534802815246221671887319197775428454936323794193885981822798168272897676664494386654860395878987152539432277166421714422308357403453265927294923462052261853156987080534874841889549606710145721840756263787222882583183570098367507325738898350519973462387697107807110325050756894220688233137545152420291638239076630040221058466702404768797813989047325312773389974990694607683776572578087233640088773034482233719264726576354531400152778948240916308828681677809324527842510985388351695734308464989301428437534739829457582439472221817488067755163943463358202629934530797232324527295541795212196805294077788956262330080313575772993306392406163265684810618744110885448790082958387949236348150599902931185873004055948059175215564944843988423619830866198196057786913411551940563376014354434806384770509795876989778687909689589423838377943695824694029996480410124116347515839644956496097124402885564820676950069643210849473986303056812209286816411980526391934689080305305557193123163826149168797195216374725823037492703052026322972217081104060728452808856760962706335827275849080908820936395422565734985732289744032840501668680053816653173548961756250183673511548198843111049282579123313456314504467018585249064225767834153659367285388076733521438712243811938013704774705436784732438752511521223126630350713885969116094758391751736513665806733229294377398552987253039427958277929391994898802520428902195065982411813106181521635060557577131556380621698834580354343170171548759377810565150565202467034434425266113795855250682055271943415405095050894906471538707659810654410144022307537404516250543565025301180168403878546740410287648737211334240160794862280779890110158647165291624963502307470777331466766997301851978717533905188034916463902012632664063539064179098996676334933624934687852171955957239263942874734568326243648741518181604364593253726278103938251524116507854379663888949317452981821812083292951654908050042951999323888507635064060423889411479233797281288894163205466885268800627315697681734307413983623155876877517024401421689065796090915004897487679580715384215285849864159609663431046205526342713109743245739779219976198804999941555014599444027523674407429197406573215289771441379372964265411440763606004004268713942576674241120909006025851834230629187972806358593187994039043186428369033203937656633013023955783540112861485390634688272161721146695476415946298377276279134998511632611364386577878286252553258515227314858998422898950356013263168227104668857256683063128820598652904722359539210844004303651739119736724885534809681916989844665833401706129850863585139396715642589961255691659436138939276513369605097069321963305155540435314319292405901054051756667330953704367820946463901579063933608485584125644818627220165565256124750597747274609630970270807547748889355338938215657042178292728335173090399370597209274321074049078646284773589276872937215148210275897603237816211384165636917561226426083317369428440296371137921166941952943541153454795008512162362509963848251741215084388738275807431842137002560034267888751570458060975204512981912599517585035077058508981120856413590966567115258182788140815017968634894390227877126079820383196185877103785779876460305552753285336538273942193344549722939635183568526309405951129472367453308737449491349725684783459194338933379985481317726854903998017923016392199511801640008636350548270708499346591783278564263419926394716714569407495763869240290529889868392201017158185759804626032413008066570528547970661146819163743264692166895349187448747789598316317823463611929860168781546235921253063333675304284445667313052565086425896172042173069426705326927037257979743020139433405130837779013499481112555088894736443037772245619075477934286551529117527520946603814626230838863716095368858971019844003827696396098877295059561436305489021835943494965416137991479711794826092602740429067465934824783702616539686123655720567930330991830715908166647950812553482782335171581188479839378416976431256494319517554286111722219347258127855879099141388863435365375112805951748362056986434305968078688907438440510908667695958685244239711511611811586464135533678978655731369418885026108699240049098332678785025132260798990989518012346816333783949360854742938748896728988136090445393608676978468252543154441724967817726604532119359540958577061342394870461436196943016438375846146047015872697060189111799282669360466949131277377927443123930088145371686543780633073632878353504167170703045660001410032750261757061088404974006595779524721956862585144179696776930683950753668242058879414989200564925699713051030853033049560313647956087894323961785050628939573966901985348709721278266724866749686764696271850956452177027390669711867715141046326561602054700693347541600511597626494923212903266210172407523990167893202851742959484529898576669400976009429090544031796374935073709453985616278530397826862886851162203614075881235911235184064580173207412297227515007878738939123994613126585088670863979924451389817954672072796184422189204598883543948429694658759010721499954751769931848094266672152691454878216644477365394326044029256280992105126162394508639753631261840419700451531657183934535767298531605490427462461526798363377735033991668741949294216110231455482715571558595085472609333202740495156265631633107177112247927954501602792125301536946293067955132225074697456479655642599070763979382954548933118377899277976838476018537356097700685546471109009193877964568771328125780286521430780214832606765963652126369685556066102445835503183479490052409932691164321740047560309890820937372083565834439072761721192722419330358362507490647410340998854890231580894121651716350180164466371427746511180114429610704379244783664059198321126658595482517960012470302144738814630917719070695765416401258153959041265063792152852225660943106836963843073357158113711577955478629922368445666025443975422801986557150579724676721448791279590912933585249267163923129373430954354532582149548715923513735747742933131204730045748395870191638708396885882158646199630995759947049453981713236241240735640457383140498108170442632895154567862830632667329741577465154558009776665700036977704428440282968042865828688339471280382208793015481399791546144909784490394556088372478526972457525920002921457336893308611640205271786655683913254156061758799039295437021275086448214497295600978927758765004208915278185117730610579218363211529542161255391696370320615904421770132131802352660443602471562433432520455325209864440320317884685280501983865666068662025254228379628654660028386877101399325760559848880597121082786211352387552391203963104210935134081285765445633918466108315446543074042969271078565890057801404388575515281290068891712200112533324589420809406796024440452645850844776290868500351746180636134603417226278364555192291446132025485511105720045679373019268074567686392344631383898607312122659543306740613757315136819698473840203292120357435163058108731799643105975040407079555118084141203783265895893774403473004124143038100517064604560727390305000237693609753257205485393962731663176839305435410149596596104177311208647037234657419737494064950938250254224935297961684977942336438158195186042424406991852845711609184212143120510217053230004111473555490160523124428429289605162872096747568756915834456361796374162032730344236377429340624014444076209952623764993356930973484803067750259632098817608253623780234683494596916121075516361994412634683391915549035149007920806834862527947745021062515555587652346280734887289587926584048408272251257925789083932159123207144434146155559426398670903444714142000487257753430937576432525107637945412543963061689369792279262567385695121834680240860078258435320227043092080489217960064265338839587017147493403334293152250038801723850418959120714752335890505187673437010099453082129756468985811241614150169308866691921624542210194105489721873642363822793186528435959760227841310422519532998562463829790835188077725936804220447772942774354283583191115200137138187589322493272098828232523938123287230600173749529038800735427923258710887495333510637507109035764739543320345693227961317172928510932394156207693196683714463352948961755600020344907902964789118314461397478156835847107409917506068628966267120390681795484015794676314891426227567550367759798345053318715301206197603878971550903238714278187308469527167256022551494774770061561183461882076154871062960976499189925179094596885806202301319211136650736717184699975102680622377307654684223620248695869496224157620271290545381681902877787705190322507473012711485764849465599707927687609430953923634941538499934030560545585815673499659348608253616459554082094564877798471101543908244276706035439964918021590363989988953901656137837070457260316079323364576506199971969536566402345932409067511519709465609709139041568705672106224816491104864098362213086325027901548569125003966479011567558930445840240028969903461023479178241096160413707136160218004843177009913428227830487784217073841226486110391231664578194459441873373534936063501353436878675530148232075799613860060107486242001739716724928556322711063453352318071628508266408306289820769449437833487461194876401159984951631961441697394710650172556122287316125885965069763915710148373209652765486519219120684637033987164771830568558390855687721699639881859690529825932138204521473198151214438236423249896243424175870068509094913097448625856143384469152149423311897526460713698052779819419771278419123964167659044274056632583212324085105064937792037976548981131885389372260159193364143323559800921183741740082033912910070088134670718918761616644585654037128768339131190934184944162195419015741561535554943405025561114047176569270910573875946639504101409863435148442662844764229018026466191693691319459152432298340708937358660173553562855392395611209058836503436746130354963833820597571303848458194537018178599261812253139078582095054457144670568801154163982100334963579678786458037084020636504302334359175962453455509630919950012966370059603501595471652498450000109708790348097401499150946378214521738725958337315644064238017811634898130857429646758098074096013206192921830136332588505864673954505060299112991932792322542360412303797367642980451320833973199320375896778043253219574713918621639297303935235807619023824236453136122301867506503715438615266305999946257048383539080328991298190049568909583118534055118446613043529925755677411660627959418181790939344541586386534660095038486745873633964828688439090298405041020222519926965403263623711223716738219260213951247405310214083805539883937847067205591836300232183021630270136663969552861998271138028007877215776877302791360630564223392618432844535193382232043867130140499797354825294314326417379859940291091070772306430204466085762522824397512615503680996726543898571321167569684382698391852862546982902153432486280607608951587136860607294574378775512559079463160499019835083087217408943291328004387732871016189347578678126085721654939468625192342633895548843074418119478843067950337989951708497820561541768853497803301129948850855481428896174638594887180509517734661788146479836137409078087457194183229645662979746124938224430879597193023169389673699135900062028067549082073607398726785973817006547055532158130046982295769809606065697553297052199696333444530392753388212337756084490185001935566630905933735976805202854617128359688616451896053206941038903482044342730501727454677693487307371371497551723194232953230017706892023150627073129965611363766480074684524790552662361697112655824946674485766264061296924813563877700034755707268875554845577547466098394341503110511983689927833094070294964552961415651840206422357366876119235052571188050325825577498176924321725257272534908306322546803428826260224375429411439475476742695195270565249602632732686791256109374471730626173148480828056075714680876526704733439637465349326181094020513441838947931140271694217160350116110276757641619276785582342847252910287046061114239851497652516508833039704039804798722346799696279378683193046058109326830692629417200759781956429871183801070328979040106404141042274400511695682707228659614988438306570740513285830173499328175808670514561075385175287710896930898320273747174260148243471577252238747868766756881235527328940711848214332334624639626031669657536469026205679259905559028209460453147330469275063534003028720253942175950011412402972376454867295661133084282419780298148890230564471758973909879736476147237719081052924239446915043019771190518915308590863294200567416072385151586947586452616623441453883677976532701233280899195511626458159323235785478103312479238897993160139261631516419148900815957771620052334094869255700690003252384063561026555065621011855588197633648836140972508603540417807498687173147186944354565718844069308985721054105421302569058281482352504554893806805877250120340983710971306223919049823220768060263520594920314263936352426919170550338481050822448224869946362884875590963966090483382651140060841145390576892249435749394734151650723566433036457054353583837046891882505708748041968324817640287437963346260052094858837845641171715944178200757510933446472078954840802778923167442115229598398327408165752873342192895783292128437005283368163652202575191051648116315648707665884575209827902923410459298632388008160995204736484070914407798082413013525052603529956919832570682715171962240158113777178136976881462510534054698358191134621072540760929050080715608254877515553545330129336081840278892891431961715026601596941856803057734622256998544705792216355327892106928102358641989258938368251543495345561087122197966992316720199925250617386944529224233648688147574999646405050509717675391596061918784997273051746191955625647457692153821869682223166145322351572261215855178244561888045680067648732048408440630491674837605417063445965888766632958461477596646494712275698603930581657971152303847256464863163206344032367379944808988130529356834914039257460926247674599372343355632700540422887325642532334665928064970861161404379714793799203996492596446655501945807905451386169353983210173956718222474770435041018530536935855544246837096152296383552350996094761392465410522527698802475786241446057593785634816373546287573728954888326418542582468068463172300921996242708143559624023024796177011366373794976697652213970056178805638119082648261750321506295263115140007483428118414722792690101573405713982850868722732517645085519526009046958344859139986736298307097412216579435171244285266924384727468802112898775202818779514126976760001162592805015230282745818319718881326369486840174388962069495250937355604786161548798725080565074497726917799491193652551432108652960672373311989206962370887219112365902293175606408861958553520967241166980958381985833055478651104958062938466331796786054627971789578234323048097581072257906337154339779803976329690402230052678095797728124504598440627353068576546917451498638591416592772175649355735104378768954112838594977438211837071039568515154376729689323249413578757932442834471354522852396118627396967845440208106965771544072188083556440119260278077411264987288573403580269713949245033015306092264330657112399965966840761165508099868869515794929571583524716872270611960458821649146278281780648597824825745172179063599936374857155402777489167626314443217430866686708862116965687051026942336082756900135342703652043164110605148375142249434311213866820330649479995326370678676490610215197983537079819557996072756279276137127393275592409851125514515969344097425864709875132503055255121185608695751060796752313336943436884431280517968223734025444700888603994057388863656827777676260172646405852963038382942797995952067022301469000040870028984958078570253502130338276088147037890214425664682035914006833522506342837339988077276552024778565385692895171970569980189082974039954455690121807944031538978964262145572522242673556781369150441537646625153556641957634323614638934406035052300226325259673184594789673947561976065092439305804063270074402520799900113982672454207722338128416567900644335692961591869968957215400706564177736823911996107795035983163565271047793815494299663051062832291970242827203776068254248194008579046474469240690663069231427507502472150985858636976336563649261328830613558354346375336065078258487376430806761567470704232617820023177918736223157758229781539088406569857768833006561206331338788348271026763804625183960756526948640300406230940806066765459480352529955068283475755529766081555964204931622048267654643426808647033812764320554819290121131326423236049512029347903434871349463008562437192339794688085511984154549100300303953452078627300392066485907658094772582043108208851925586122362940729495984466123473703945177209687672277729007387681439865806387925670701735682433049172261754638113112461742534753092638832239118585332160165127237129231602186023305192033140912028539749088150459608675863431970176401031140644700089377804544344971835861426892948855751416364008177076018993717686911572536161256394911350125935311526514015038586859947328111713883956349866219458811224962766344277989867949699821002967567724104859457884406483267443857280360059070002363478283010672225096059718831833472693410921434222438134302984690426344317149634105037046988546597915770526277064808429450359034358454946463156529584536910734050136768595883749375966635144509839438274246255352925897494089630683941920324752759833335160787535411501466044965791675810822179641540124015744556749065214116338771145838141504040782029297363531607663241344828483938926370716761837321701682248526555820364445906558357505386636383227056049306366705577762797306533361930143553534639431169449970124330178143187822774451982127554922858177702656377049387953486055229918462858367875526812453808868732434550838203052933651441743879673789227981035063718428530692081977553320126874727015105049206210100780942173895943729284970159498588252161302977072930585504294337978595205911479543352031998114191870911370611426224327630972098969407128309186504198370261732013366926902442006044048410675127638384161199082004723772243607005682018116916926525534359473144642112771452841310548564704172547289295978549404930855437936791655123351413063824749059045569451365033107779574630562474885546712067732670044946397839161173872002265150688846144775353811944545288620864553309437056789384265782752211197341898563108539204339631931909202589241439608542165981382361692036061466854720118819312049105266955214485168129638487330979176445969088183795863061857595256148237548282576435886703843349502993252647406030373649167910861526501848691804329456909803527191342412529389638809107754439698577968182882339258358224277097922408818748365876092617829593352009424420365234392380229691229423744785390383111928088902299662943614015169879641316579091894815808197380050741166115035288571717731701793273397662513986745894744635363441954618466237237370689788889367586102433297429815798452833130142951701693544991230372124812278331181479430279909353119926282311632550138577002450386165538741872612836599631151075321893707292809308449322106043198058585206526640848517293004243099398295248900588949605160175508323831525847034436207767321909849641588510664024171000876945116043063299344011254327725905727870891791754240627440267929653591755942657009447877828317873296411581416393861330163222015912542500012950096128230366164850174704294300578461747830417886321324826065033699991444080777542230119048346475875472179344488294848241908507744399800483185457034189628115925671899934746553935899209479347644211708485682000355331282164305751929569226541283994526377110200446537559608826263800954666097344964360617587645414518997572947808011831152212919531389748709061968603836475502331609702612312506096463976734384495008219735592235226667606511112420437092384091184275006499220558463621677062634430523225448396066154905419662354662129307225371325722599798073632318987279328549318249200645428420815791343264755694190449887107868440984684299576275707454736694795357595403778758778177677545929132871830432478654650342098630320937583483671229840157775082585313449730107564854562009707779271154459274183050987045951964102038959466507079881614598617522337704494790073058919828486363223913872243134941002279971379894976039706100120464610950597366576642156527685092245601154738904383670719576507485879460381412622605475866132891898724361628372053138439220365898625130912229578493985035053684800789839292684062881048654770167098001346235744759383259083330904081230921035332634434709178739477586693573622015653688967828273387848978408320978286979510678871670353397549631825666959289567573477680185350433348732613680410378245610715165907084692849108610300825314406049137217805656845940293830373273888661652237558388420905490185727502873670121737277704387526823783265008166250168178940133138540530617505472895036506867302724157827513109367449611566211745966974084881764385108054313316224676536174659797703703985176188256260014757625565330705878355529225348169162344500916710280522457224864159018425059596437141221794410548351075638738308988433181031770294003107488858405447495064279080735492602740411671364312047887792963474999084668301058312099603312448325335412766904151453927229358728013962037988025473463334588320859827508015711352664041072977524804410237858077595774132056496777684079892363528939286749910208268689635822498888245367708201422507779849592480045245639576281504003232477553344928811987771878174198243755585600748974210838370417598983363458821739714568159386042775589722359371959378176683257408706190097401640140980088810563001854508899496354567386934931932587005876146114995496936392583534649624886796246758630986957381676689068289579526786206775032676484808759878443316273965092099031694333977183885580756143659179905115411435221967139529471113880784031382474970424243121052985461639737093021035966577061079240893140919389558502495624423762203975793968302979991599011335221010930328713418692201800168721078626465617228640576200096946416566561150372606438756095812947874975367389894177458631842768631727024171972346106922720505060749249655282164787451194536827378581997422932419975138770684114509286467477887851499144148851603413445565366230324960937639146683289110601331386717940062243011116283879522964036493186958253363032624805504933748268287140291695469027461743269916964757932836507727999513844058582429324590681023074742132247718483132735527966083980736178531281904901670805025717237964254463342266830011693611155483426448357968856806678719729611579363302471280050634682611760286493600427441279246303416568062352281540400764813914094263507289561715592614392798021052897806108450208039966264982026530956611905560478569601975874840649435867815640060482936969084034921212338568328434312141575485072412734794555757114931385137658203504759874277904577896274114286469180474281675941208081697816117981052906192923300529674276958205633262680783039568798967086070163471433916013857514134541103345826491368767460761247617885205738138936901870377784415133235698748762629921040073400475715051401417699573750620469921867363159826823930369114242929778195280918018859285557133381765139460395625308192489586745151482721313714782332575673099042159150761910670779092513848734475883683149664192555267965271058548970485093564587839697825342736305419360062336138025737838399502663793352429087860172484083741381907067974626553793757840811864567302326678453935219486390044245828064416360428906418554911201372593325520814617036454099584102288847995513911840027295817140331344169846952748595459363939316285179059917321821264401267986625048479494240083944686167336874076207616468875775874251413297658533172702552167566781629593410619071742013060773143738992641571964022238750303089900265773735270549180685739874363706300868375158122446576013470420122436230118508730911849589589715402167443565680634293044626774901141987896141415172749128367209380010795652617762893550704743584022874245000164694527322397873292906014220508149196358634147190635938142941180794394041669414381604126478967017185182609461077931561312122891833366110814407871821670580160356153496309397059121316628459614586273693681525418627480306932434506081206360228469462405367728950741553443916085507866594742956380853501180505252359726760893813714708497383254545352725023830549252627372623171486647584641704415304233187377462608711197444626276699359625109069985219896715866817844923581177909264154897474598069049071811416420333759127669387427657219870790584444913073410604816638775244227384626253303366411326227534768377801656484471908147767619070727454358215454726020532937107777223196072566954950566279195965804698032533379385525106465684036213339876115725940520069291456560338453664066427365001501373500336090188791449850022838463463631207661692370555293356497837905074049768801242104483775916432678341017194106091645829390411846379280101865580821053331672722293518981364597945475801572254009592758120122750748392262811247636081592196356782530150594137206214577914162729491548122976067909243264967578822494911183839159577112121862304348810443545721539018377815455898860889568754386261677675444870315060198426006512491758385159647897023824447749664970936493151997610881576052617517311724545971320552266567077030394090301274642108951043101914706223528907337884590131998342076791023033935848496297751608165735566896723393507221224376383735488548140589122826697316509697424304879705592563140917773451703604556173789514267645626107532796153964766120401588922973332404226146081847566562355571690863709936999665690837007840884213099180385548137719897151044887066412502040845815720268034068606348368077042296686001898648673794964119835106386428654874374634162832964300620129155408116332503929413431604610789914510760957271315755685644298935669518127241754456370358606664231612644908308289418327458734918159264976902187774076716535188434242177403773322496724692950804692913864220315623068421907400606403891669057877015565724637540907516710464559096056507758555683614735963858341882403183896822081365326558955419128381981399307119753408853971113746449666126140174599560240055131654522765484911497714245640702958279384578885447117719736154502536383460582385954273093798744597713907350593805894768182084275489615524628716186205988508161608426894423023480143369067138967583454412062496214429836154992696272401100693662811560721807290527891012923193418516784776449905697982708532686420511170897115994992284214247290382974052207952323782373716146890794508111324583026040237704317334302767804560644435841249061557235911287196461419912400140407516838485412456501027317316681070562636584963331002234473448970861189661942722673569988627730351717078059457976847683269813364985804332790826698840859252456891398150739471829992524311782073530360240766217563821236564758118831341376957901140736732590056451565756676658034954895156397117935121892100368024226858742178508767955432458300616646428333990309490539310484171489346222518805839214583121988338719772667547553681914423388752523521191791416539938357683620607108835536142109196881693140263248859135045018748942150232506966005006212612456737509103542864021813044408203950997603564259190695840781695266436051386976862265850553187037431056936495879758389530064081782595292814752551337426621646067825954679719867047018040592144066300997160674040832415928794279566900965621648233580207336965509325810253710447702867183552657753634380142344870896090701448257832397796609372646742430947002833456449633572788410005743286762805057672680571227094644185134313114951665097483332329094685340335201006981559973704454061657124693804789526107261443973494902290175653363913183101126985252871696072581630885486866859518054777853811788669927799932540243293325061793087477262188221707289985616690873207681509239569643045148783320987605698998081417805366359271014772955143416737663742639836361166446309257291231786591660511983015863292516078824918660276062540222740244407121585829600085254542098573507843231640050304788740196974485771193350339448194668075323285712312125546924708994895614019113991420550010693369791523027596962704070057093025499340410990292917954514636249212113010620965362148994513779302612801468304849852923139163295990628696663789670423051828297932588024238275473836913152778744254436440931728393118248204129298924087219334791419026889758726067321714674077550320911591391915606734987422105412670321687035456499176452252980182906686895436202531307776503167732289438040753189023252586574110482547586269440533229205359455729705563416742849427833974320853972294416535958792966591731677499083739634467225400752057236685172577677467639982920853180129560331087095708965484906206892341259998013521889066590975230817154984987734361510055245175719992844401789141075794543089237405348171058910598252975283071374869582958810815682583696331926266380342693716243459297162205591772033134742362670887702308149484636942109702576183270736689347277909618173294386916498845369211129164931292375570464729677216898045366256030556131369130660542065420031439682860786719323406180182643971116604962717780825989703514563356935130095018828328652049303994431203486753214552076008012595019180383945749773202943450463865467705882075539721890646339931585306595619898771657575376898813387979921046996125943990550676909531521955432862159998242357676528918220807451534449700473422285287498934395982716212403787975413558523020587354719358209040585388249859078954267194379694531138364222323315412375877827325684793287694587702666975395750432540406815083946476982458679169045783604285709140883043468934303673934885309363443985714721669723789244200596365070863978836137712949014461437544596288878958889964690451114906028068723486613167596906116209195860980711216184729493453335447778793395981661499143587036881292201248666678859135460382618383987907482379910906167545851181092740204852775491721604609136095150774046870571947005517272866727304920878007364410594451391343582121109821835197059708165136665841091862958689638645424249832394530201484126068435762411202044167684685007593342862118320926496499339550398827881365664799154149487359322080244160757218725053899842057957105513250382936087613808142831216979499644420112652747978165866762847461496743695289867739445462909656685633115374528750092622103700924443392516613667866134751100984545085536965233825202224654719192418907144315410382892231441497117785531646503450729901704708936709384706005984847595730893289804040227831587892686916025850126260680041689918591412832126650552501607034026385308135255740580358378262966476362392601382907863239327445002089043722509619714728451282036341386524193421557545934486021446656751163858531345463627724204168381406953577555862672496958804412775834351226828336538003927828437657087179439075406452772132268181619501950691587666935742183092283188844908336475737194147242536996512624605278720243552417978599659407744682911202508100873761976751001867315404976787293166824798509722608389379613717353028493433827105381288125727601370918581916525098818400473199431752658747358481512797603509831724357619828678187291903981542078266649673333788838640158364199346054059532424741587324925966118969990878120360389146810020892898819739039760217237509764377603101906080051248042267169468446183331516474503369780316975471861103440062654559239983477039660420030909288629604780484827701987239300412738692110662463913925878479725891739334288808591391189346654567271927807609629282238820589713393933804154466693252455643620493084578564442246767640176784502980459615183523093011994728584749763535964814788184215907866678059459428695711201544555422933238885183153769884334538866186750355901554408095742797933742485139725670347680504637307781014399098768136373831974855840251314043360646215160793942485860416786444786740296689763947809201556494574879729035221778230767844796633534628388368645394024284492251255273254742546012312646583683151197208659173353674742802438238854386867854383945728973690862678497612906364576624879746565459999684521135433350221383835511317108092764770641935039887588229287144802702888178268203583496277874311159737491526523992304873788060115071529233420487343805048804206061142194767686795411757681853433908705961820974930838704603358013421235666105464879559322667972962525593212373732742261409041777662928766441527610184535345064546786808985107427487672206808831868467229872721862780816863034202737893417565910750372919328143118594341470577140515431475993537745930109509116680882139795170862373388434731806302562395801075027063009717211074868610692875605890834325546719491689157076955207709182392097284875938859237582975773226059375352633558287629248408563595835789529277031174534682161260570001522130727127281250200844218262399375718361139048834751171798076447188717493484732752555067028903275507312891456339383248977785076403461724975707149492253986486013604811178185163079848333624653753101068273390486562042622203839069772900031123259229739625115002235347350841070149561060921270195746476141474538512048885723740704471601470924067687471038852285541047794820796795973851392155411000047382634886397464582109681501853671524722807163500599336379923198834401594488925171862627697419969148643107800473882169795760244270376500444611489267114089859300186361980635875109526546949713500148019176591275469768957919196435660751357900175782311134384717490336610797835654998403364925133352949821428343009321289342437812546067251490047017669166288781663744853724889073736642497520891514319286275806717650562637827506712125787717153167780581962757105473033533725141286306516416187499904195033238811413207964352421789911064562728514194192027202219077962170169321696085974175927761918375545117831679186331864721053339037313283098506927693253733294322318728240968106428378675083268308705469305168404396923234317682532216303696808529890220355329742375574093212523758893615083405359659904646633802579911169387746764546128499151831507761537294087717700091553344367024006799255274977016087335411208707072478471356792136610061053680920863951389157055554434771724355763687165673770212392360229563069020214950804276103915188480972402898963511852902292065062756223236171858312836846098505966911176706807552853746189773615451692263695097637025467331890879590849709456543261124694897930472993185529972267753022456354532343113304410535135804188303513550232232104535024421926792219892709548200442260345100411653909942911867849206570198257537870841765199837668129528844169640446732674476846071239097490029243746824024790954791162091459915843082544954055277163614302924062778294327658716911022437770194015322487590306373798156721343674582034007848179324026170693081808308013611205475182738240408416053659963836068133460496075758915907851461755636878459348728006519367093737398563436793199215943315301750690191951958440935849399828442025572131007189033293082537774178599458036831835816496692002596296664126803762086630881798021225158931855377695809056564914026666778460717029716675178089146234924250754085555176721832298881444150544771295979144259556972910744410341139275327794103752717053349460207341480221862022197134698288945144777103739878531243034426319730025458614410074552185751622966409981035923056778951030778801650581920661234477395901632287372838671234564027510070206647896601110117255802062163510938536446612794052211435358312317840791996419558051921719972080331306166031870035508051518636842493749259713932671327300719480263156936624715407344791248261763476025701028109526682437296442366058021669533315705465025383281175496936571470063750383199513008192769635966914713985528248214965284552737244730482963742170203201722962487707943012901334124893729496396979124557969933314642773649358190918183461841523393731171792479262964305056243850063206249593436017975396937112557857548951376855171766070606890889880635912925491893427779989597264510099020060882485061530143646105448695051205548773009752549165752868194431223001616172125755285627310749756766490404756826613718678000659871257189157212107017382141497821785890825153493272253531090362367102231791978976521033633234110858917027087969263090613185873838349211174527567894069665435751928286602357910475603500102714659629798052597329987577292160206809813393143251635217508462266057567708012051727462806477757835670808673682427030384677503015815462384001309187890200735849232907333050831516881233753888021323178746136607086867098753255823598883834947308667904882136929864147119568692872312642329925164501486577508679379024931275857426450482602599785572179950982208809227667915111545216419849099708924053135480347849065010821233319498741738983155835171865235712654133607016998777934666091997377223862738550289144474337843873678946623115803483958603684875765221270939427621722586285295479320781693577836785972082758647721183913501891791467796684390049253223275338147584109993924820270996044725362401251699950384547772643985311377804155282393077787434576140565213859618501430157246881743144323152298470330783366564097361603345741357245770915779242785222599466157037595274950236245291216618013605240990112253922982314213666324621973988801564298730563071341048560383677181868262302736858177978527853409066098304492779252457050170880637544319253572767126338053944196413411438101455445103724603813222306577163746440891241916239459171627384882862463813020470895652171144279617093917758096766476275936511036645790557710536492500731221743315609794644774898279974158987781712733527955531889752487621309635341032020104109807799584789036546629603986215887815202082104958946903309416792445495481736933718232290746931675435570256258346298617976616024725139559856393200629772544550978094382063163917774647646814356948108940674345794489933976721250639739395489489232565260928323524200384147773422162885940377001616259676453183203409971829986588974893909700964800508633649001822192715376987889416371289314170444300962637004475879669987917488002222396396732733639656649151231956723889017846984642929941335613972869230474718188984635588179313465194733525592888320953712238301121406659220534595831334948524334338736233673015239817010699404088674455598758469530274537007027565203556594935497562323435432728571608452593090641456188610942937563607552686178383913891164402565297953855400250341590362331076343202404493817389815395755913495352817605320154724951004330147475312459341752587244323563526811901068442246031559828276607886817343779061777193683689294680936836786863956375784215909439762077156964353039852880561554603911931983413328945973675534041254479389196300547516492540615084740293816620263871907573602856634499032207783613874385871006740288286308382643188667662783135823910967254351722264477836497136609796629614880451132031972801826696606140413281848825341809932531888567113344619712070491305070922910438081888102346611078685368190299155614268585043854787654201622472181288996509137725482726814366674360172521734831000353342550343740248077238747589112645657601152379088885355153191908548854504856280565821887905146104882710621374913998977689814418603925089020397757254059280511186342579980247533887499000900768506823086255685808315700787813971081939309576957863949278470164481546409182744951213018934577382131735396342893650444177421949903398741537367530708298856953720980951275753488256840306249797528775725507831215727468998030908451287009749429881411711951097259684873347588978824743262630893358136988223629265659819122674651366414889506782007780538882559467990608522055899769246667408542587932325858985737924601427026368001384856950846399128171089791791473601059361253989261682293991627536688187275709969187283981016385057872462775550321069009618246912181311335865044889999280651072677139304575235884333913762312992912230109221983520872050706299377921861323538200917361782056901951759728077509128824812219599623297057576626080022368886885815656497714953347935825697587730948719747095357485567670298770898190694837112354140731272937287837009388564515873817808065338471540957032490201879412546824632733111837580877149301151427312780954712201528394987988576814179987907851432527081456272966436838281384217871417940976367871656364456402323930232927841956158408371295451655083257278677917186330151020433937054655327398560033756703971475126824195256178320935853932004832968755248179734688248501057169274206681984946270033494623794726322047146128484754076099782571225960506917170089874096802735674413055619166445197794339775173233727081900780797413128275610259427978021824792510291964160629150983983912097233368830485810524158495331770504324710908952287417138822787956300080402681442538305961660473403833121663757321742617491257831627784647385764680054077762420837842919236423004124813869311371362406167141057470206935832873232614933142690279413523572438815229449948715932538672199708835105366459004826382244875278599536363044978022105077255771665443584136111664219998391928626833872576232307722276581044052565485083453985585646567608073494167167857496041378782925063050124353305154050545260981703584416026264011989714135731454739617914155427332862366040248270494027700362327778060669073521425845726625981309678744134746544243912460309845111802990686466992520200930524824310497478494864458254135365273307574980641735307443853691813298234525843122667281697905522338328970814902791697036324238438384078423328971332970175747115649739907910180606644934980792783679569452527082664968269634888763003749753978028683931482253785681010044376596315665157905549715055862300706868519915259218967961228974567944374712042528674708937986449641084177588621858814361663910277156358680184903272554403958459844090565478775706467011373693182895112334348376935997061731088372605021011615787531643810863702012282792664831186892124345960190403778821306050103285055487533042860653054887147639024472947798258974358654964206043110173732214980602421668944307530698227089172282204615188462827168921075860853932837305432141050792480619933360771348603233702831275481279405027400111937107597013919564736928210666261886504026687935496586644967679754194523160378772569654651430361663919096042889708903893430085510462524272779660270588200877792542366273968146730278731234114175835035196119752270004185482155440302293178559734759699511324325347292759770831744741392081416961160681246357918103520659115532735588416101508503649496741598075277911252880382711830584929534791603428991699971268228632588741276771583436044612306879385294577167627280282533913387053598983285437390691298380871713720908173903816365737946079631524350208677479145833441357701168942647352624740264465807520638772192543878870782266547903454677243728744667899416096076733943486994667979594988690765319268438559247215256741298240839454585438509977713163571365830943445883738324501360624563122165803802876627240195817206490706603240998546489013927140188125392603824102605093996001173506696904480481771701355284811626022153699297877606634652381232142077869209807006012395858575834598006192515897794712974768214486850138284237521652933199382372036169184627293529340145465238188573246690596341721529418947218338008639811893667140062982253246090688339906785174403089688892612064336635216645514139506485518571682739732171037387265102456933330286840776812233989560467532948385219466867905204105298781800117174803889667863940911276425270133903740221261771183220723583208229050550374644115934841970279685034933067756638132196480842571830261647608290364854183598576953696478556979773540707115379148237043150496366770393489069382417604120656146673984162232983445339302383033539166586975908031521871179767727020557184555801836780661364060516703289316886006210578806011154819059974501881954772069991788929257263272845587619538146784224889237410149900038055174865049617553909575328413259992479118869116838628772859220084728431019600498962532477924947463480223453788143544103140237564191222334668344570146176738217882400549864986169801440779786045589507698109815251310454355917415450867352641114837611670233185107448565296474137421742353014138504174943480223459303589005380973627518157961225984345381558001491818576970542121742864278131934751334687551823081509341699602522352003131730519756567171178928980758688918443996299740814779245631596861631715465184607738501870042985427092701901114426926723006567611910529170561328927019832275413130526263935753199360830042949597983017866408589815957163587453324161553144046903953190159640496969210193757482803847379230418221301993443624279256309925463795486449557477160405256997945014937619209208026167491054773874065369796163089758095909902018915388586816148691053840135083052465529896885385804899149586322190289625494104806209183895387424429263141046369061522474625826285562629814726350150994882659665537277497233923487169705606736298825649096740776237336361024232962186512781174826771260429356703043168992937021037432618833923627888743766523869200651940321221544242110183019812436784857344830331120662055351690492724573656789378616876232642870133483926974486098424735728255752664578081222400733687774425741003867844035829847197239314903776351557475863409949079462128808755557093013778380283464294510056013412598675591530012907288662180578166734678010735290778077098074466913163149089872142380492950473271889194550485428317383358315012017891184895083304427222639715998426362525231152533686780990779324833279221743517336504340888491996856447037012532349889640653139843709060951788967217226873086586232711910246173737693031702983085370802237793910664567076846861937458503859054431954096294533079523853101904592385967032658040668120197015996971076284089431701415430484940980522516255652611335191763227218705033216813954025909305218884185425133601275832483126922790690317244012610268632893624006878329628097561533334859854695802059571906718201328476700074319583056385064623177811163987524789694161900300456816663800027634899435705422230577278100396311137021162996141251549999321793894880340621672061936433396231700874015369674226725153891915579681307148200536065597498445700690750135360222468007265206467483574229265422289152927934582447747394549678224446281599613558052574157488609996277908089733233942934235092384380707789716946244886268578541953557580746671949941059792408773755992180253239498364523139761442000825144419224454723410864659868211694632423526398163852040794508357707843639122489694048778354621618252429050528803531999604808986358795414250840184051512839224725927335907576540711546513839177622629918130747648051580120297077889197828989426847433712912346166913850004965146227259352512282919899606480417378882127628318630660383888831574642582337274294155055850158768062475318931982908360702719819591256415118701560724186876130794507102465599756956335152827772463618096949853273168708255200323770550662199682843899349023144805551961521277235253765182945910660936879197204421420185675047925771628911929758936872673300103445119028785662453369954108385019975561078604294800958093621718685207944472792151587820738923895013551778384271120830490045648021087453531072845266006913230033479755277344280579749838130817820149680996030517549844918924123675230073933854362724459691334548552251269725321485134395799572925787784646375989946163621412532517600092487394510960320418319309315608929593216059769760693034957655571105746164290869901224636618039921168789972684657962066302143057178931071718108776126048702515418895017847642777895741817309979155349082221435015731717653285934898803190512645096266184527108166849035269976949029159012874915143457731069871372393289132770478649369495419409219672692550597942810489134644212673667697192736889684483136551778641239336954552259784777240968533158589436065031322606783063156999989206899841325420231569374409392326935848874987070778129808510727216124535881029206428137484324696457373436803195699519740530439348352635238455159277171128763270555856649548934841467401717213888960769505053300177808019305451138241486649008834278153541539148584600448651195020399018692630761274933962185501936411303292286364512834902737174239387922170109134100356723964382811466405346901928605806886669964314928418799209610354329742783214478090039482358624537275629117581653226441128964813482813995965253810410249033295491566080483253992248462143930984486179152052256542586241649862502431550971252092223736881629294666874228862048322735420583227711321896797159788615212661233881108767121578392464169909066925666843970929524646448484549322374813278184315024884794082641966889824867926210833424899508122728293979545407749409460964737378618206369503381161215669220368258766495719624384325714827220857646739380359474486111995185378120470152597629390977277084653372747669257943120554170943449330284517482242473110972368047198366751285706857128013685819688853395520656849226937264498496249597553616521550641764451018235931739845255223374503443155094508129672858283516729366974095930685631457700555272960294781512838417051089860764806111850715250784890410133217847900370233959059973127797541408488167152731086696169379905207688937870528489839287568437025293576831107645216109695915856352805189680822203466590993656054283488758185391630607692827920817521928109961096185034280942945012220335764292653905345085186134616558380567805664984899675465076318876658178395761960835246920904773402471474669072063194607260470340682152070968253791758174326984133337397566848193522943451672036155785682654124396738204658591396501636618808828829535745264418160019129915969663034464329781553756409177724666981646566937915593296403942181647634821928183105524926539652631321448670737750668892295018413946592128731501275122734382961662777670213050518142057363446454545379998676358185144528316187962898366350861424404535762875806073373872627811518744830250973431694615580466709357034756048929473640343165991844205741076139309891331747095291638309506875610683378485401693619557061444860506699438031474443806008640805598425843687718262584175543143961244804010488236192326286017395524814952327246525376301154646388874990918895187593015422840001403448235186166300693464362088988599408981916888123482845020297747835934132148024527996851842835250503897720133495409842429177270919293854886897009511147767878836055361274981704107694547983306078511975238961376710846742587316316014069930040240041727878363717444089572175044842579916008856905717244581145971893403692852623536277953642621610504212693520578056419183591887609999571435846400064990927496560902920147532958234442783329821451547069394739568689839511538535253928413963592169718391562537678181266629706252589633092320102322577663376723772724734356151645422579249552349180170580859083562721925528435966432076426577204649524804754420865779632843083673648714112195795199181607764059116501772952093848573873906074403936360898022084146222486536918619904237574958060836021778751001452451079718062972819050575327925944604364910815529196067968592741337100616730369699723801517122793707918886207068377200406600717390335065036178530009895961049811975242957765191827814206788816880182305082397218578319952240868549255140048077584530993370142611839764011398518852538319986839557148686210523237614083700905252661233269824441992548062505814253635492317839308292896719131758488934765123885463922986587923102319353464268489728364637702095433611194672918900410223779159342048631645509215183110378029161404615127363220506156273224532393922388341160475168507817844322382953603289992548999164806091012536036064744261955871530518002714885405661373552311452341038076037326658622475662053773996077928653760736619840492336886193463464045494563816319309018338246650282738225819112255240286178041140580948504783349349775959283734963118858541810369594060545921550862468044212123866129996185885437118274148347835514919452484534739898499734169081325550647765357942043871962464367136619896562995069932313637104261441537444335390396868940460213562665957339798773838402169078257132895292084616263992293232068114151031596384782723619598017023606782344362315723942613724894082864109035467236330125258074130779058809835181741187757749738182210040422640217148811749056876021590686807922482137071422470807388980154589867327878370263095979538391519164922086689517389414650322345967677119404416008450312910066195653310518811133594383441009906528933676795718380958056005699143318350160281143119170579006509638459129877830726219969894215433646274360808515927415164733403706033773610363109267629737757904637431509026144902522906811633133730890924516950229211327145083553993681561123632613544049384043679009171496648945005382759331625437508967967592892451948790329203438779946307809286449295708079722331041455086031757200207032224771591093421699784751090712379364818476654799817816528871493009912901551385495712078817229418721529349891581881691821751717014906646507218924775855818410055525743867028625732432834831289994796177015242314544899862239304393848677822563718324637794223423228619212151583029515876528353581125405364050619357145886624216279279185279367982403810246297378469799938721161520528340127482091231812175246758181371955188364864126867734174625357884834512336100205130076192433859989584266686139301027199504494761153464800202100207961327466991615087355557527681455918782560255714098851286228672710743753889549681741391272332141976501432457367317441081958683215381648850173527382800428171963912783945693249938002831313706914582365590474435122447485247391091417156941002778035353373178282991228773398325299181775037008179520914044922665043703661990462202113196778136895983495390491590263851672855541517182049459899076080367497861907169712776788583524649409445240667197488365784086618147763295370999582760872279691392176168361462103937783378112599706826813361118262773322978522727796063940823022262539053663740764093423620653092056513802092260515853831302237511726527573155559944276998482809791390248921159006854054256305319816030173278703033817299394030157610646764219120800994313974878086189197178891422350258429163088982560613408078372551057706289509656656409993124370540183573946422847550290869950744185120360722342517123018439171170247169768217258972787740095072448040945041610946181683646330084479920913158108795307691278071043987862611444539130897519476078267153892630605566195970344471439403367412010035702603078656893144176930601575484704045616600994045743245315337124558273191630285803587126016730067392736637211890566690916761543503784228944191389048642851201175612157666489267415869774112172927605926140333970270858984576078312177606729791855610941975479460082888945992876764124591184774971777130225339283782307552299755567279905334522119806027598472918038743707030831563874373138679216409780978598162679628022072340475155301964841306305399850192067365917637026824779687071457434484938069996186935676822781136604090035311331632127809052980580700799793872654319519003609410675894566881567417004418519628684777989479056419953622840355976968100616202358788025307651342455435983683948255863952707971941030913675558691064209738283178198797292943641029735409298043267017586888743481690940154014169527305629122144892924427075747541539043925766117046556271599600948659973147285679364794660899583050804222468480870171557626662593627697558196233132228243625065701692236078847077971612145623651559516870654187080229829861418742243507643667351596499075958668055824865592137055528901850485377258761966480004129060856145766915326996286921567283045206524145768910833095814145231497291500855678545318485095395842795889413582865278677794637111990128980266174043970701043066898175768168681558864220730927893425087260494219560829339431135829641935969356439997092793341764206347906699523187481308364309743163895641462813428489595707396180368512767189508120320795247755831859115606156067517268026041722905069516975749651714332345318123704420986991071068519149567614639532326170435245023730425626117774691528024877000135607934280968870440949222678581472227249235899980577966038630068630814837805818210576526105948179072219791983067347221265880501294177791263589052435076933306692328358991782552590145109821947057818106375617231880320267090444139756749882706171068494641437498272526890169849212095215923493505312397680615756315900579624351129757060248484531757126645309144834200952764374605127547481246131397423400830970720852070612076331716580634117638004385482119700445460631237058366599639978529288872031062936394266713399031294940008171706704856400041874969951265567660801582506195775566734131455850009550021810148661226377040629028771809329622783030774362572353660865168005486908926023295678557095212504342419880241528046574586882614970242989736660327954122287618861920262989156516205531904994660994892586965020057732420015752224219805549388181758200746230883039897082367769697254447891438131535859669444493264118060796959437437110298092117677265119602803867320642251835711305300508288584637737436217012700822962882046564656799973592971928417956380017086801903448011968714819451750321537274855750393764846010278520495245030861317061212259422382880000894139640130685088915101966564865134625014264474167191439810948441230723912780771970881620524944647933253692782412705238919774808843376154363917575630185089104844825591617227090627955122723064866117904792518136537469143288220610526185852763142451235115473158709674143402728554687520740161106854146415779435120355559750452598467846026707579034805525302890880598893411883988780558809653732467533259474861386160941453335049739056223604116390021617423619180462898013285506472720370368302925499172462391916376459019033565193879886164142225304679001394855743575790667862818745802765322514434135326617668542303798627314231520899606972696419256480306789967993100687804347056139066462869662474096137205307701924690367001086557852916243384483551577048213848904125911844879285599867675874375013307024601537350623114644062740195704261656416689897655102491886392335200116224056714628160546460162215447594579525424858753201744300621870277854109729261939153443314525344852939055618087047258054638111935573749065258610208404905207305769161883906545446015297542125825980037454560081983629388143257118352472274579953303451784817765131020372505555267086838040740409550801485215698958967568003007338264931458871454400999331979504379627496600137336008579626187407656908927001199709975754207890607671070592344696188729387227594200175080474811624662298697397545070174776548335617256326106674929097763731042069677448126387638495176376087461008622002589071698641874254092970180890011961369717696671293522065420330600084850623783596418128932853883995051076171763667199920768063628540863571301206826791419462570777002066230672906160201794440232658507449138414485324190036592730057461724424050262504404163374217079111520647880858159401746283872987305467274852730579879651679711735656404493582009683259367162989446098484517463214805285376902548004141480760178328954016329762541922865734039113115318798356881313612239444983181084881196739769188167489237732848658289360548755535036747473373472209009492688634312998652932495404005001977567488664512455836990486952360551713560301588958164500829425025063874472654057706959469742937489539227817051653794547750331494694836528445371676752245108637045241445773285719542201120299243350851601079848209445267138375968988259298166316474862795312724008526494296775885616898535420396728928043358983464329987795419392583958981525415134190579351710772033389075435510057505155182415030285055909665655379130811456630846081936480395265198005510163142751300754376209228316296026346308232901750003245019181898153756980618150233988981005855396849347932867316401576719239148745357001977231838049288547828115750287392533567765322332530004099031810277993613744961634816393423081407132316793175374178464673219486126325506122791975604759929759140458881919883770848190375304486685507968502052611848375589592284318198960073386687384442082649708948831410442070830718238886685792223093213798714241113112187280156545751312431954901527533054097194685268531629785696148639176224355659576697380897255736061942336938095856179664860941970142728731162613689195453289102067911563241564838970808342246831749464208518691801591183809122824676565004541692026334589591391689673772304860480095108088783686402200318634075649019326009980881639228646092222144418673190374073288022681056405008389943014626408155986003287000770172739877980657912474919551267450965915715419446306023696630227543363368601862055236419671364255025191879146561597244267016618102004212783728955745097984794437134915941972193119581014102768399683586015495623192954641445319334145020599789915245064820836290539450636703240214145526112932954489124982151032743823119480160459656400402309175716722812635705854345723551722949956895045355765860757398191179912685980954675607915034882547972115946598898909048822677117289670780308530300002328276885765880760313527958472902784125869355259902345466965779423200467413109233437926179839009968345887257430010349429836170199598199527405152220947554959897805223888142080672760069287693855384072101373248916300993891152810532797772200417899336265515532175787963321692840808918173573865935871221716363834695969968560656286066986332913645776001871754784103299763083910705637337003075163365654844125069316071779469321874014269690741118676358380433412437026818606051960948728925661862348729088034212198843901952604954885618058751936712516160234819324099123114954368513556130873084748392609667259922016219781110704695720327953313376313890917874809305420202818467112673527908006515392806580579294223856176753302131752389819929701147217656560315240867143693817354458586170617850043315363607204894672929211702704944661721948041953931106532289642799781917020268914463185458237505141754114623606531375767324156650401016298606645083490791930651989483698467979139119968660086297285017936807237562429347400541744138879927030823833557491515930946591682612843161213099849654738234991677669356316001260726171708202953009545870262772481431842414830346810011153540361167037667883653399944879684082575819551870308677684870110528443631885881247143466519809919014678743451922975497129718291584997991027673105125846625959824511154099276514760590367974027537090575194241109493329835575878248891362829076302171980855179801347768746118956834995785089061763114100239200673367741221537670654667914893204664981625602516544395821754323582364044052284659619210247121385440695253328530210459723067917231173348937047275085599947857789014296767675684985387433657722466069651530945091083211947703363075849306963806619768602170521748688730434882729497634189597917260949069725316656015356698965063018430854913397235173098708922271179254507137668302966389051612129078191408759636380915569681959281989643858863989388670393336258317641939169923795963369564662507721978104170421157230419595584392610187033624307536179507238808242339621193496091196779279547268671638006086620360988964393439361672626657067614177910867502451045748503182507496042997607651979433633991780438678288175529536008306558585872041461368445736916350983155974277876878697828139130798679630826847852256746533024407860744330358563557704961563952123353576306051506477274859455440765842243979086703449571779297757634105695896144269512721060038596715573526555550733187444005880245872224640113479130131627115878708332258997518555943506566744509821330406343923835681520269899811596929912665054983743197711245352466853679714792571781372056571414194255212077203972977519768158188750497923332991988557317589243948837179781087859247272536406290798987216461864771988166142537631619931622997886895755826685300037427334993393431877261009632543120132587860271626788072936423112888532935449582669128861717244800456460369394959102362831968372150678506427623524875224210903491841240852958064477596364947279633201084205203597547053187416598619582025188718365269259086550144901875848829429554687494408639483062571928952394059049774120145020609291449981345479497015221453532597218583567430059996074733020373315715346608888853104936053808294335005672174678326073348557283117696784905013565615619303095459402760999384588194280847291836043144299214278360841323429867445816605208366408045790284337177905029191439645569524935758799913203548873088139853070446491929281185626436906910199586555435785005095512804651993515919333923500514119696949727256064304607727754932278291257971938946774428126620612285614209785391552100464396754396593932615590174251573395403504650678907605037013040751358407690630561493743222999611220416946519286692710863703928511147501321195496302843083691601904133408631557627001665182167386549710440889970976692199044670561679546011387451369919825861623508669579089803673576077045177563699192666610080485278609493351217284316852198486996356347118211895355029237027151001497775715609977902699062503293119778258431706394323807912593914146741315548550085367521565637285803621514606153135770059209560660500243651986415767460408742266311199158505865103073740714885014316478849836321971474250503898638454088165252032788756313381459547664719771839867715415991272989145964888563974866615456364120499253178471406870655870239333615978820981795303427952528502596688805411166811694217910822021760720110965636783781773090219205028677602368007561261755153037533760183560926250436013826948628333528925776204319966490230576533946353651523958409637583988750770741509524507000024504015640765781036951347971888818992345680838190730334966295270316977620419039871002096626427591063314014762970520277639681743156871540261253766067183626049486321696745912193550391542056805465366858991096010834978617441630861770815116436242552479560640775144917955993587307160800522974573452468688097462955589522283069948610093433975724540618381902945850601109062487512942723543600603762995426558964272797263954268649665117075724062752002137644509346945820468394683807845902121971907828126800561407231187244106656450196295915290549669198569468677018313573738586742456226809032024673843059192178909414686823498548889830189336303767136290463165768704509354870021910841239066407168743200156366851388758100010003250441076695536386814773111069522470638547516335942559801100205628151803846695100894023370065698058921207647003925320184398472932325373852828604506379151710715027050814597602200070357841872987594048009170333605937203054544516136286959190405654436105157005137274015874909638074796646545372854686061872475944829124644718135436001562239218557031029984067004443889353129383627410639993429551779813298740609115062027954068316859533570431459878749424510304725010585003861011031344174090250860862710054732355759130372796999387781549996154530656713434799344691194641517262695911112782046181227730171575715544483402574245358021590482437581150501503622033754093425484252944102605995897661264049176641925687714581514274445525297396094405051020957144059489109640925145810074693078877542907172371999679455104593782974964673014572889241602624268108658945804120257603352013604702829636922643267372375648829544155009819160759540817611786084259894830498465353535088471205703186745445552328629625254685498092552444286827079909860997285785774764089863278262837975723706273430042630209761504914877026067746091364290412228573196813975043883427049276381372773072737110295273546658520180795758514873991085522537530730346940687940920967028095049153601243105201188220492528833233746427783009747721415376331886568153619803135678374764588050990687308287594450179995217735412079222693812063007859717010940063818224308887972578609210354211558459335364283680343293085177543219462220933289039379837317568753373633334231218538497536673568737609554489458880266308084107599606751378077744752733538701366285270891435217029712556713911565471282072039274050178328859555684095557955803043108484270433832964251581308356618063635188629277661163510264471015529256164624123205349560949367668330464188443534883010215688531006023522230933825958465439404831302575562723785322591935175131288331522763385180509313158752354972137700062936300885587242779680201890295392759526391916725369398169331577344543894667787561257392545389172786041277895202311654264010102122620554177673225050267141697111246666699681648525567942315688938970340690809850185649341070725425348692412272331620800778422849034422339126283583543340745513265668682485010195757126446964511815273513028928611793632923516557727526550288742599856313424704584427968718077899470282312404217029989331679474089919714575001442666729143770980228885060372849505806534874782024213477637057012235175265978157572697613493437461851458016927208428756629410962107636359685192492385368651051314561157880752489505402409858648183182091966892372753232535247459890226304183943972620900141426145378715597334288586116532021538466267957911506001151919655823802760221511375619045565781405037208401310409479548217196549918666039089584259957659170259530827098180312983323531647040823407909237447558231356541324049580784068579071875998690425788583486136894064972191757419484691248812171423781649026094663690547441288622072741412154060198679864988375718891812378269445812795898259259753602607563727232808370447178217942892986497121552216179832832897935176945104422193479366645358328899735109266556091078422082664659178189285036323840328069126795941953548826306101845151362978134189598135841541900616735005195460098163787265449018102137540251549502962397099442747846856036842904896229758911629371993003265291603173573976534113723868572851706603151582840031540071363762879071864808214563542835916980066478041360382515169157081216036063776730809401940005544154072767307514474545229799781398556037981874976314614148429610365027153084774919939128111294219371270250915215330241995025480778965944609620426523385091913070050761740677206778112114382563677234294291463356366034839180469539897865513698586748071279996091423249420128195480913437404148368417258243793070713374843497625919135783793921760630796990618894156107612530813369375077858271707835679413812275853402430373191215026344851028291550938466740941411882235869365446713631999071480946637385557559505718802294029479812435444814312370723568682351040270793806452109187843949947091678223538258944801742734357997505528840756025015257333719271237609459618316616582176849494443160707682941318925336711746597718549379462687303111993162449237414389479024301406689715181524804313450174818421684490109804542801859992332948349510932305359054128633382438633358255517228184860350646602812483254596031738788310982912375537381543982996767211487600228318319363097854234045591759056478149665503587835899865436900143987898854030459267429980563359063799506726543143740293148575175428648794943897220236258323265681158537075195662795434472517413329558453121448565376320523403675191760609011832600963476040392399944239595276782164749547297299474146942682190248019330485619830903392387759332219906689924974051871137164922593689627199466162062428264638699481497960633392559516236935400430793642642758075538515497519229517225822600499936317679561947543478811202125540177291800627894727905507088036760890391304993726124232957376522658235867778005665961623616140435854181484104603836462563769254191575893309952764664782509161571483887517158832053286207864259133264640877530941966969333644861884735043429988002021957607009810352415468793863424010091037730985706062380572505790412247877991396250128174493622583257404045677168012050480720524260679666607590068057278100206849519118319356773209835966165028669135586009284966839097757949462694053717676143784298249542302039439251341482081598176145429126404806976598347895419729582268399493016388203035401046635158287442735233528102147897377735442072193915736776711107167450260133731384303619735379307207610807182540598680565811833409694883201234634123757354389043191115788777436739545696270248574111151253063730991760566558264838798229129521958286651662364404831915278045602678252356777188002233525792609472848540962826455611928612087597598582385607180217576002454272895259204728207935234025431949107891786830484786439994925222732301974762599792225511999748907842789460766302482426195508935624876985235955504139851845299991839974421501917819741354564154037628335616935152165245131303483879501730628460179491243010331670640885059810884919099490887646628279015345967184370975868336994592439341696327206815797138837847529128567744085430285000627814374823313308018928683218731884249957189032384509923655970570869308814928794241202515833431704069010093937784556578278108471685830389965995148873107693409356041185762607173332133763367937364261187270856427373854588629435988121820552777347755597323538662236861903068929945663522242761310155855759197500992023981285892141226226459269300194226464977668216758993649070600853033886348374670287201660028358391118264286816228214817708424893274442701650956995394317049497163604976468943988174088796167057636598136191879297064336130605489183655411924883196890609889287071278302803471160659826228224628710605596277935629940132125489722704396110263495786082795376232513623331693351717608573252892718871299836853509033195251757787955866219336458972592046063996032246593885186523964941088186217725963139742582266281911909237257269993996854983731276298671742345656668025834383360797752825266608156968103489093102804711559338819950707220257365107882792237625168296168269685326537216698270791218229485010333203252699585527689246235594756041821202407898311399848468294639671009620751440288945337167567565810952008111970278409326397597410541287815738706879469735994270941317366495646030420894065972034893960369657118199970559413254351986557082239171704439293345943873076954862839898364145876888560557807978900227720089115568863482065500741136842693637632221540901584098944568987613073529734533908887455367286461627782147194547524712995050861506257927740858398507939958428228110722779371853941384931217937469201919898345810963435480892299245783622506648140260602672396074584015235054899243096769567873989124837600310911857080440869587759849633974370392189119014954381543536216666513280790394693024430131145608662206418595997202715774067317229729406155316209038354876323783692889447873794832515002694536297843806477820765456412834092938131478663394842955303521289575061994393180205252424375443033582185383717511335486499573244746893236982366065746980280727496678516865036723947519089842171733648184119135296938619092088816055785297987151289014681741363304377807077881599050395565338742649136200699610179207805617468872970814096551981062721580575577338563446127807720439423786958386600142555994796881385791717435963913834746237143303279538030049651143811742720170706249817091040790622649574919975656640081050724198657764997620676526022828148718477171307851991361466709158332298936005969636960036938082710068427265638942763499162123487962872189127604439722820638080398592937122108191322248120694245636518806882862543240222839708845819450226965122153202662816555799902420698353302886266782133316790135482491376560967912244743242658557034131285343669275116291259647331952900435135250748269087500816320319007891901701189710247762819381092639219337746524032789932871468371639797104001557390624345450861831727139494434782413863603033733583368386554708101525874608654263986513051990518750029910142278985373123097437784061806228298233180764798712440922074412582109517514005035611998045576817188841838663417855167486539984525556920867014105941040716700239913967681216844473426207888555579501530390150680626642288661493317271760059827535795223625776487755098973207340017496857692234395621688626327878120070562220379265888775174413883582730132785935108565662890547484906638288047196902867788517746988871962651954718938208284092919885249356358976665412463666423716081776308507348960259200341856851724472506219791908459101622555639178583094674274371724983713666156949427333411043263899218876676100592800360720322279702221437491515770678356557054397846302294671281521926975983165515962849343487338122043992791228097083530235796677816995975768094857168472572822581085809498668223874902610723951941818629535490216468706993133906606467201515929070297276133466112191852540022112371197222134138651424964770939631605520391429128792789034818360896075192985001420569763834950882965499828576928089040648989440468038194919554408106856644892819576837009814066569532222665346039157111144006096069722834035616812030584607601957523435050983139659637801472287551852063706407918930078435375340170238699612687502436810442179441077506358096299214997128428554610483666628442632998900548110459121503221307357530780071511346194772394473497261629770879845143208207663038482463114541763766965408402191240017984387878670119052440805440035464059490899553564598440304451626325676752235397664129017344133108790132351348698495850192772979414171171345063903848782281158222101481716889431841279613847388486254222361783154321341813540443390413292410412852857252404450728910054532957334810041540477596417101585237581931928105846855234054787750456194236103128514749331332953374889086704616734331622262448309198072657082782809747115033186855022751950831294702515713326662402426129295414427333907752359549319461936116246915716774711453768609361985273172951076979936901898456594451892811337198153027813851952254483040237809026849298491745236045167311905356024918543613105344892739101839980829858340687349762682096774506829476578555953745058721243867745390176850005641425821750019906832162712211652019580290236469819801759543945962755550962231118600102806341816733498043692349053898691700830862465462253298225419092642380615414047066385020098192313330386993482734752341414694662359914074057446922413283615899732242581015993679928302757915538997842397939070483104353645991176220856257782463654919812011203515970422694973198599358727376807028532912202636911268486398248982212282368701275301582882840301196088473820276206926503239786657940639958828680225286685668054058001624770880981733884528822180842585017480184118444673138852010099464661655619894682264051274302616589372101893209738595740568831164660855368928327550353512305507984856285313676224449662897564377619598209626208074038160259501694489775193453146327721221410801923123653263702027812924353767094850103066132779475573380528156294284745939677693544766440220449102306382678156230147972988985573442492519352831291265679577679670439882917448567519963699204870354238018949222704911333252173492527650589930655024209863488007582497324871048953150222008616364854693069980238158928280029480731229708632443631732708154934535778619323033863828471245744911271880111320682087617478630528782524205190520504553383817233660851359183520672388531634637898923213818853435793523888689925147980252949583481062324666986422179957992750017471067220565976830537682096110774862078885505087554254438433823605847121212292263197024302655145757369695175696237144055556824180906053717508822011106917470993766728693187259130903562780748765947508511427001379952064106015745694385290023385014691133785332282484958154325284706709361603854215693611282612294034716797292092719765931402915053148364266484674844929955716119930053684406170500723134367911429035926306833723267520845493167708197943845204603158274723985019481250120655640310115434588350569638035613678414053199670283472592828022541241333601406152317396577311888815147553175403622457304924056333707159930184936278441094855464426184570562009273539926177233417070149619158505200888150032077274514579069660625169068934762034009488262408610665129426401552618654122411904994666813598657952705424080488187095410362696690549997020173480201876258437182303312198672573675960782840875038093821680043487299784709702123729702619289125754491810179816110177242001121581648351039075436139476058148865487036187359581220588135509230695850616915186278977785680084712929461727932957500760406654660771451270478657156105620094538507713646814039936833299008106102366719753444588377362641927440568394455014285907950709529581874359376693321639042627792549925120756555335003396144832449873405118401613664488259632787072546570785920354015794456956567079768441956832482632297546292258454818524044313097700430757106103976190411279409132608988863852947995187876444236432174470520904465663704316414769853889129557538230828530813433062308469037442505128306404397497320753197678922216915926849777259040747555631974855172248739097523206975888028636264972522951414193311189504598045874356624278743031046572089207885658235930493304443937784452283946293061607467995017266800048680519177615506761314653267586160209280123609023951872309063311849061750771713219102766380950811356081461466210991433145193414247074474655438836725490815907230976290167805560094621504548089440624409628229500580664136852615300703825545977511308701639548400095837717772516106332187659140944866132828502357324214865812867326050416351136212306493399696200259338383329362031604646676472837971567264383661289201349057880300264874860022954341921424107458006716478999372820509037919817205190288308974651067663738581267468753712160461586035277989898295925669482148035808787205874471018063076536549319875341933333119674478396675028505307565158387750789367255659356672066041563913666502226263737562197651437939835882038196944105778556897461916873092689450343415266773201396120618490502223932445571636358936792526131329213385599416209145466289313394318200520180929165790569964714692062597145320998441290888498423680995605876627418828544236651094006290824505702357123244962108869930360347708990952380762476841447913429089375155843893128507236220942726312727748088518720464406403898990193402053086010763044046008482435520849345672926332311638851486671446318007083190676386198620970731808817431154835968222792259354389321024901478259559907834518963961940897233644499967073757945981591076623242987150478791052169433598661430954591239945918954554071097793507508284000060814109011472059428436823534464977643188373254640655454293515644772086611714948847052874833192681554895500638741397158041290120657422773692463459884453006280344084401871537565156516910954140913040193245307442513832230446899963508618168735454540344756085509141864391969328790407446544976371493753194850514820846239492231733799916448197582195258179383284858200335201088273296412327301920496050254433923590781264843852477271815993942771805937980636550574359565126630603965988953077137008829021432680302604529054013322900112842689761103448527987742641325292415664054762169323627105693009051612608093469666418123152853071187941334652784686024453749213506408109896126858332928076414601202382785732471402493770685452630294796625381104460899374371464064771485933645393071050501913861331353572534004839615618944991381666860685913157170086505995417678858000592714977621039397981019713354606091887396846872528211551505683541955879985843681678575097523257256668972190583246744482621277419861041789836392633824246719687582038015686332850195806132790393905421908474639132612225485828925890046757517478134680215061468038635763940169037693129674642632671831816876337247278675190158712603290511673428525820273559291647823690627063250141195905721612162858893656556617458186268042032800852786144673067318680653300583816625247668494691550250529029418892227207792879859951667914285938358293246535967271711810715107890272742490793917863598816039501365211322321702604998519181013266604022997509789326491374152517953498221535552327048891109689985426898456640757016810201610297422150071881918992050639075031762275997583397349089993773220207956451426914005305918234721038445364708752198174238890736170700509421479225528904033472657490194537355277761357149744516502699505733061287419797677114602368727954892069640471457086809661997470962558599894840036005172190249213805897176753890412004948443142877908719147523083908640710146936863463356949281807735347487757983802692722953770394716689594946403225147239404533524526922093412803074574193483608401506917229470861049895261411319349349842450244717517302544141668742267173654677148998292307689927284096975227110194469289572263138873576591127120636582251457847339036916567459316883634170433191616199735710883183614049057321986031287420314970849446723677306956466427432937406709106427482784987561591135833323329274121345070723299015789367821937762462565412425515748537855871410912411956771952453300995137066534140830827954495065507660856120640844502715172114112562591115288080404754843734442737550781096558946924468087506211240610250980811423291701719563367373677212560688809037540191628250630773933038903369928019930224600362294616429372043952200365231943769654000755606928422612762143446623722321759874019622224477437569867599336424483535296978633538869049281375913079660040327131456723964262434918807952130224340955968018755866394010280301666581498216352615340389734742690400820150852337178217253665188732950746642016130797242984719421179442279382692889772769258092460844702935781551240971023884290655497301335437518092202658599146689712413759924458394922645762311260391672191037892999864785011040483368768452675764095998331765517821357460142863994936913358560092747117252773616155755634849891488867578067404919847875905830465373639247799269135012733219655050252570821516356363116455571319033342532748346004197522731221390087112871618382131530372308513970902691069623644149883130039100590832508061552713901939322943239023101145591645627205695844116308680873669037378480485240178082542826726111755117094675106703230498395788439458719545836544662133964450212719598503469698701503907376363653128261459929503967865213209630407768410842477910916047502109683869793754047588607991117461580232422770021522650528187009196415030941086647897059784843608670228882075503656298496906337491864600438298966587374108173392229172587320051450262234044387618947558211174475390813624678307397121111288038156110210655993075666060023352188810920558702722832709036711830553922697167637243264490697276490897007881927810020222731693937314769907071997596956181161254981694526465309499366773439295030528469666100313265051969405874075856712502381545145779537888504402612812044407595060304426245151119646678631594079881227462645885971500620824811840654846251054474171643479824283130074415422522723491026845359615053103264933066347013295384640683904047080755156310076672399123149458604761022882923351484047608933645361657941627929619300382230379747635762863287167070218386193600154295609824936724077101060802463523964604270590725962218350273911615844599400891780851779639071618948826150431454912740047260642498142729841091307940435634749201717979266272519039152565460587768037008083379688923701644455589004431892588592993727308966177003266969197890021354335631605778556726593577797349538940070126323891787588284009855459293623090724905601815352370391872099539964823569808071007065999401272747750883217158179983942532252977817838382249575750731030188717529004505823147649592960963317876480146255927274063176036990446518282596589683431573601084898044403464961737729962130152820520019798557811981013433165628373960840766074928768945683793031503222901120831341058947785804717971587198229526005080028233224336111068415401237485208814253359603758324587978606632619921261034148682125181044660626497676228638663095912778249620434978705187623306941800130341288966605309450355869954895360327171365428406712233303548223997589925993250966210617348005644574262661775802732594842826078736515287220109195415399846582976447876195866467798601366168734277132587507058518503770893973306736012995022160734665736395312240879802661273651232693610675893715269042951875214615880643645073298240634863804104205541198055591457319136648229631213121201033934466009825389128881368980117628636368575840970420554900620823122455372313502720134443234700082086700030460092776236724609300581092616117336177838450634475036382238444940360278537253703457318374384043704680231233576259831547248994808697981000822763060746035327399210994337679160931485967886808083512061121799644463853905209637115778987336253937662885513121729156452242946437404979166414263799557206561827469053995751880692709051590336673181533277646811385227682990034187821866943290667781057648960366318424112266559758204435650461501260476257081102586254746724826188305480526450266999432832834539378868294081057279956290813846231218289904595295018821881087255026270272961634257962572567080544906575151666489869651249620772036058730850214114144608830692998779634642106718110240171925088447760968313305812690935731945737002275061258326361143903330382552050955035105856260295949000389393351125321954388304721257929768344370219226934170303851060634411861034705391990999874947165017235274035291960314783633630042577926802853473372921881674022313825556333369471731137772669551785408101157335299070974134840325076438796024231264879372887184778642260371170323437821356510674619397101724263086226009246506941237847604033608157856724807990217749819922125162946021650772729377354933237605540732341089744816044409413184632713193140445119034634864475498136068459200801789513468031792757537226788090318909725508481147984836200602770662628028098119416675740888126950451571399749230901130115598999915868925911071655171389547551523290594445045477562369990655411544993189232379714784028959697732168818534529615129296286312109723653871467111204041330846628752133685580707840064464115779002418982574181792386095631413163121786561394920436970868308056788693799373343291414941405047206966136997335823172364243408372662195855352344386226542848098528010402364026054407196930880186953225532777547474654250444931899477129331403602526620090890719422381758115689400653428673996164960774399181618664671906423811121084764326531644557846857393507077718898338070923945833258245665445946277626500427044662678834429503852989474787239405509176106626960918906003622035097754062217561971373676016193461365773464730790631918952675756608102529546082380791369399370070958153871370214731988565324584483285155678548408366523282557779776775550578342962686273327537810414695992525757388305376115953709280291859217448405874763973181914436701185288617311914912152877582432558765555716524954261560363831326504052672293291278239600906818257193842566184210996885622689522003928373689949916664102986441953235722331198555345275842692902914486127561185614961128430168518065348414199343464556776357037022021577840244548902606235114739952896606390439267752690021949767773620484979933782909671234992971677758921048696421964082505718974176105303185745324220004884415333559136249966378975816217816167693565147389345403412627571238357117666331377535339379500650868996152235876200101151515822296769804794398012897097517722127706916094664248870937750468324570058539749654544408897479171188554080535840473452388516305676766638890139462106234671092530147835677634971032628939852554893700782387921197250279626938691692890544869675029042204281082770067967836492963521106897075715304510286916935677896847922970591719856425562650351893139605808038735980290669486747440354013557453464868043531721313328859441404949796941320288029950206144851895557796683688810936140600150124263040976994621284248779189855791550688217234443314138373431334605129211402930126703223972031076267921668048706403678966833140372474064346192983502445926083452628311993031183328771836401617877841288927629144229669758273995090704277319861617696069686541824652220072409946124738405443996252713434525299790818261551260501761100914913008268114578001923111668807818153327305804621178037368249471762550011691236704345075568745160090020311293527519489591990190700538821160208739109364269667330927446678724043202465767630375951057945675682937355674953696186630020304740410727027660496201529600571908961155970121995282812306224103155977801484606351330912043675724031873924009955347699228797927295796291591585070655298950036102069140426974282244557835557190649973231832562688138591368788322437001492092687120580516108099160070399862447598547897561824147274095702655303864078701056215146780792272361406637055958779886528572619946891553187930026189038602646366871289999891939770813104205458026800298121463373441737381736673105778183715403162142985006011106933729505668324608235885804583788224549287388127344870543264318957852472658271578487055759186835528194242907654595699881560754874257666310383557786719609114240366743682739360318028952970255829035046145217190862055369975835881918840457704165227335394834179427695563221499289979790831141940299123456101813411317775305454694245285192630457535011523886139961543457051703949561263446009485597579711688239646947371241982569573548869226222538920795003743436843093521339562682201250120301808911029519897094890447487794672624691630902058649886316179312060231555961170505969057399645881038111569674482067051760092852912844048775015587242339326971468006862525184434268516353998725010623056868022534284083074249425666229528149660563267076449102406060144887518822620671518896120929819250202230142126536097912487015088498979553206697891930440861957839016949168517300636352032715940678994906248594540664129277593074568553943361996301205019964508909007171290043693125641986094562039485605732257363075434207906831837588055427111919949157050761270939253067118966914448137933858510938679260164457575610827619598833112974550676957927038542118320410613955446507285631515525739259632418146355010242954248649159034787211429977521831939797976392725114264264924172169550225397843350222701096790709367812053585707564736362017057263401775090865498548237981613939161526961291283551955528998863514842566513997322672908296066216730444905761344540792296800047838631245433786249899931943144494096794023472215499989353019288025471883657288893220470179013022582328769922987833163589688800021515873852409248957459043334354178947280911938379405645484726608498444900227043465129432225133997104242649103549570821739297774926668708880503587846007456954819810399866286313749752057394076371985659337997378712895606967713448496138426444031250640684059244814074826019995666640126577339763591740645549016469828546844815596921725007268256753700703338535776321130837925978393874975111414890501030760623518686355261500352523018223003548117219238091685182410620799254813323295590343939471763167416861196905654600505802612501117155410094490374965503713760737524610863497632649028152200312654864250084691228261638928530561832269370494061000291579424209384328353098304470834278052559695030902752340698101411009686005223438848227281483763600931424259988080379874840944404785998711665218403663373066616293631977236934249507126641977954488529759680752156835797772160371860496067241747950639296906487895359245063817567482351443223668094004141411558263677750061581643160875636649212497702665928519858688981231563547243903417070440634555921192636487131344770539001255571289050979882149413311785974982117698512667877255907670210028835864578943099864865908274628729196101102940563818235257557468665848791432984938233285196775389764810587605525959424712843364413281729299689068017530624093062470578488812156247485066802893158783194756469380422038411460507175958521072413294319487174653783000761312630332916383957364360659910352833138046642654321472823060190819602762609610987829559155083011228392015514678096746902921892954506962336590025959068619952465250304122499656900281682854204611393657138672081615627889769004007553593160593536274517769742449971957113239377737425023053543657171210224664327951031245525637040165027216372806168873421802557544140946468791633333484317596239889977306929441998595725899128415194006634405798380084286353092901024904711842953157530387161349857519113817645452265430249614314552156442911636159266254965946172985475430684491417546964586740028742233288994531515081690814402102858132466655458473547838313283586650182464686815704427409247112500666243543064351915410923982666514595379467831988811328148749040430525559803880157646891824125743820793390753061878587353334399242157623499978505172986231880369253947645212707827897869397663399130995528429306079763595195733111047537693693847730911469743503684680633915879921435067071438190599094861705668748841565209234203739187377089166327620538935853195221309724972423418711597991043773718225464695760791686439408560035387161512827626573086002511722556250695938493053970668460090799827547765871462207765524855755493246494677538838041418717285528362473780772864871040148686437838781714066774074281473756682387873039783727792518674071181707576831223654957313266557418397248552495555267361572559530781306937696263378123535986880150892773543872140629770006502839906257035263413715269307210369487083275357541918220969035192559155449263381975240025965983169116344450257667203357442288006593324681090807540026240068909205328735302485072359720673240484122411112240000582606571671463480263108948001446091567599012044675672915725354133922620935933304402940745048234783934281750050845195459730614693253680306840810253567528655596781234066834286908166782275214270038186233638469465028107346547904808585409429307692340810840250625033867476211830051691088688756433017632538629740384528589798055133476834031479879868035854158769201726613926516202331069301530736628456537863035454179482077631175165359490588862265059270543636544043513232677535793312028330233379688859245914076914290489947147114777210026832126554409597416141900085152680326022730041578512077755358508320305635805956409254212286554019425907777775875964040322303527289664702831744476122549985183689559317916246682778253505024948701321285349148324526396589813479068966236787562073619368438048340914366267069614607263220480434812218435555069192871068942939433333977866137449003183943302789061290015257429374838810563571388549776583219739833244025277348886512055962587943982893674129290307567286886482264085472415555156858440675381417450454803873349162010645232740932875829657315989972548716183968410309305406621351767848351254776465765596873395014807356222987624130773325729335219726906465176215880790404067295522018068819253601055620801379604275740475443712676851651116734358928940925694955989702944306080247992351841395115271932206343708006826142635517917481087326304973195088819383787724700322487282153706619337959452245958695234943822482741683489265053535722600590080207622387620456172833084563324243543605120812615167947515688579807207831733957845544653451896873417604785777631995628035102571017933249266544568868314106829880010073001878092171030010810003137076086093097559266294247598060715457002843728839122916292103113534539800058103596510149559055070533203979933500381127084665282739016465386213992922233387979566680285297504737633338495348851171879665876738439631856407098551153823853213153425647557124992701334147280308967517050740457235716325742894332942800585071864962745371077579006427600053213370630895704654924047732180987260756460595676081664477821579589537438751805848880705140101101721719615255153044638267839364123007107446773983350004645091252162677669332834951476029360522396471848960170772525972671125211042634905221261895974751901952475158049870336999866643998627905490157872489356469228351582786581702178502666889003172545930870367248000334206693765915897948994720393058512460342718031561779630882596627906196602627498135451970746686829426591668395899788848188866268381202804473194345329223128887208978036891274641902946431451077948629401944349051782056018929563173997676806567955286813119925712890809369743050036071060258631844310433309438481202480871137965714033304803566434217538439459264349853989158252365835540623140415775473108729723284975595784321941609542135387222416480280403662031169964146993289637395995654932053499608769514320198965135469171728582799177792708435123808557454018972509562740957677354254124681096915960571883930145720070761611339172036121787154143022546315441784302119070329525338923581259778614843373312784304435707917171807767255773617776717551065863052422757016071425287608601967067428840558117472871960116254445427564591375691455817445679851967239340818530891464727872893127233334339907066590366234161508885909219310962613164142277496988199654460418819962353743501061828778558798495175305965837280165203865938053922455243009561113567541258379956543673482610697239279464326554477389134363136089002966469672306964023190643520000841826851947322196781236151887261697800355194814331876436012496538546729468287790043647402844172694063380422792490443483238874301865601470777333805433794301344404563191847415419058977165809332445655948072913833767583929581635290678010304612455506768963551818283745946563420649595276824886438664030672130370287128307763751178618013317416373468069213805789265954785104603720377333258749406071020291922349937109334234075250727307075243151147896644802658210587419565822017448933312305444432967952595038821793233789969068608389595409278918210189300047371775750090706739194240044050079163154537875765721975251850706941169007023746558254995502679460635695437936738157527303310196151659433899586261963080231343239201238156469834125932226632226069048930492732516737982493317509560436237916808945554671025856214159168443141240543542672505680524172393121683826921740397556351076299867959090355666672954940796406054812064522734018598900233078288213903709323118493332908158298092418311836344993851449346514944295416763856636091543692613367559298362267144363821463498356534315587130465452760240551422395087053498720261335884481581896908474457982736925979925435845904317572468466592570211143543742434292151231514542705706380378486049034054522904923240550761940147884871305222194283768434187026489966052033357018334312189255495668230592981747498004436106799859068851431334112309658952045944262101791582320876928677627316098305387840771262300721460964148262815437976682795006064590395700126621670678205799281226932752107825551795026355772403837996266694886743258572910137224802211204613199861569567513590531342035075127361422765637335452816279243865922660699007503852244822142819723685218872874038806023150839522895470718668484819534616330588845592144392917219447008048100193087441080361684863564264010240846672966733580403778214981655426244280989244967664391565614214980419568071656049147051164433138076934671929462030111382721502259908213531018147726266735473151096009981269282618369401912832073327498782043995014002645784605532868928847915611002566224730680137429435188334328709797976046328545790849219761703124193526789098224636757355621016266523351045355913190860289600601791300844493706936241243770276738976775906996707252124820363561684944442529478983532408130136549289313763653396570328706521045699043688269299020445458160966995196410885364569979070983603856375297625969738845502144358308576079552994254315213472688647712047365970341419876838418858873481693322223010092348277944299309635873365001136279938308340338906522362434251543281351478523925669823829133103745946290813682324516988609999995557507308100156884015876259035025141210415432547576946057084808152357188047640661531477155992770871376647160005831787265372413168671118053328693256125903098012603647024383763922318487176207260481114537164216091445302730443394223659080807397370334300715677203236175787887242574549262870762188785568430834944065090935714213567914702578448768597910263261069200724442485318993161991932042113944878086035833045689218003334826929360703139855218729096971026148332968758128657930063673921579507506641079444644910777508701306974535860902510430213472942217158655605861755196595821027874157880350009667909900039398569058309401658897689304525130160542832110257144337165185411782214188913145505353214971958482650426636330019108948598058057589744706352641316611129797930717509659640291032408227558779314153730201285877974034644701895601600895529424844057173985540869417882654834258601249987608679050417167152368817934882349128726839565768790479334673291869037198287442232480949781040554698205674975493412066901928161926738478769966851790699087258179377439312521408004024994247540892444109387532196031309189030241259886301615011947086400636767877315877952883400949369565422243229100404573579032085731222690703779056918138429818256537788093638012242870717781843611158860523849585526698934856846478545244715384703312618534023106110996015765248817243042054557525481713928420093637966308527826147407644940063377784161965770387449311853703258818418089714277795636033985284734392735825874585078461826434193873692837983678688847620855784331604551464092588649200653015481102549057256790393852452273259772468329983233799374933992946351914829819762486817851656197800713448085638113664142224546338561621567573489339103873434140835757247540802908693889582307505095519956627389907987370506813578724638884563594319076894037218132493160342964319615304050887211140862050696539331473690246290016871663584123444625059184268475429710266101370770607836963868105149959573721231167464853329160398581164181807109191238411524924117166138133976106457289949335793264674048940154913973736794310532172753372416178470467825593700728002235492563804473499517266096084745260338737458060946298208718206917387546830480191305764307099840945952941538018478297124857641950562550318807164511802709563023990385892616554607088076992804157985787250040506775761071402332991182357575867817527611812588527657137406759394339261940183703875345148698984605366078944907273402206705008742353439727113695967515160974669763562676915409462866889122217212243086925937851534496847144633814751801503948624830363842905527263494397991712604506381617135043870527540098513522104417203551954338719548618150513102770759374394088630218530349101760335708539854290607948808270430604193516628017771742319771849957291847847088826551270860826967862828620897862021889993486775983046459590067902948051019777089226356502224147530460978560695476932176267320750710485421132775244027083046656511338502796080598846311829318199228658841064560001571691568217008349845619092039724573717469849248920020989847949152256793118038023765289219272116634335961024828269401696216763516686042188060561625248347843974315866986164231509865362549277237026435429984872665976607251070364440694028145565181414780592213505840177554146726382752303235615033386373239213332906760701302357581304748655016264585044438656343898105526681349081548503469060424275611641358764505351348515657840659384624049863619500845395507287533026395219467159528360352400732973620060618550098228172767290006995741532469787424740561827416810588738644610507471204214729017498438066080938511505506655020756957785212093990806335844145369136986384564213238841108343640865670943577555173668317265277627218510497014891560026175294674774800678386457577300256360907754535697645434758250064973614957426051620622907722373041304871827412421225779645019764866537149349461017367903937753866284379658073159640742979971819138617711975425923218389025897823817007213531719220047635886505876329430297089838873853477050254140030365774200731691054568313258761626550535935522776713946534298783226702766785132010934497255654638497504121334453749086689592275672960012640185806869802858228659476137504851865077335462266063713224616283999120062515922883770342412539651469759635115023130721358538832165209048821588182862128627385631938287374475420700233098014874933458071240459888809007563651610292945335020067994709397401838372749166218787634519115786525707557472666402845785654360838214953880394298337644142627433352799613355986013405127008904304598041159714870953320747318072086217721181338621948317450249582478885836660617540663589433631442809859054081901395890836409826004440498212593607130857865598742066404205050338347768897806474933638109151197790539308539305081477079410680992612948053570154968294522313232985309802583868879821911775448037452826248933538948051337301543291299046332040962267130484306838391154174675787910717368671061536732976564912658833390298800105325255057993107725617500447640718536916051857835202084909731628451480333501822676115744639639373901645172290477125314339902557594693220770701770752846291855723956917117546843132750252765380777470851615440868325353405112647356109141080299743605124128315977615346049781098687352618944400227551577602542567241675842090727997944230620389161349760761302297130918303699954163886364517535323948516990835182691040693974516659724079543768510972005433993681841452014813605967915318212016337716203205815974413851576493444659849431248922988611608851144836745493674399350964781627212501629760173541216273934847764285278516951447236953247084148218400871653746306571722062495525863606005453822664870381140474003821344349471588791408220731515425625209179115581196466408367865344492956054260370523901207199055518122508379729177175142942061906387472032352572024734418081813924393720344352189880232414217764234813888676390977036543108327932722940563947001289289579093108267512526054157165710226417757017957484997535195198407844570966250819856724030613888689582541537695740632101427506443436084509830139619996739931758784992855025159844563060955684920385915691029587956156770949693131998484878112108802130282568582971375490594956026084758719145308842761870200991821720180149630653539018873002265602656342218667223399672934114617115160023009762345874726410625793317853727491648404836580197931196476472199973494101871668682361653266280098621321704230824331529961397977682905725853643428309642951670888082509026907692310939190411084008126209872755474638918371384910662455717816364503994680664110862225710264647344943643073173935459911821749124307403013378429106161474494053402326589106244098603735374324670148929654513351055801604954530283457964194610231148033095031807175008377252599162786597587024542001330355119947934869503486653616628870372054681986800291034107848718641337794675149444466653243647236391883108759129277178226689422763208814910357038575574021596408326763601758830294633951232261053968474098834137676297962559707897036306659843073271262980439126853676034200804757833569808140802600586833853476574470622150453038609531157747822261735886474408090731971973627656208812776079968783766046630649445988874558685368585034372449469220915432031297062766309778162257733616458627837025203882768825180497879885587731875851825959382201501966748808248094101791026105070256497769386906076042971927375704771831306348050681991777792375313347117098435752194470793550048971171749202661265331782741226732237456244498515132113972444491492316945463418028282054754387367334492370479555142852159862776116835790075258915956712499051620728816569785814978089201192704328445389925251917346547780658910186191856559201770700837406910863835126653315264044776417904212631278317409001812925284357648722955055405017946710376497279842125311016877581450116837022999570526420921470606470236243494073478310366714314502611555160401495367209374843307682216186797219705639935823738542530350011702629885331900134473476047117503627028006412252460793504268927817874965783506043181090138612480926904801207362542631783405188232860241011771535584397288970577716252252608297281597530333057728002429265722787707864511391793371568961905448411260822776540336439706082526847708376514514468141699408539352245791107837759777858971724023489074478966945949265172849395374934177031563182376930514502577371668025666580905534416635199627134542512701701805266755243109820282890259385345636284438665254226805593396597306649814343774213099751908848401732263379278935681943748446564902011611747135370180676085493277876373695402733158270208955718097176793452213256526373441574421317885728125408786327034668259142676075372489963854079880987431203510286891504576091851113672608735751715379347469917133061071315935048875632893676844793351512506694465342595918339318504914038783555187582508172328359593287902720831715048340460700674984348301244461162018562435099717138846156544825946886271108255379442775196405429644665119398077519962547702027754485169011769489958033612045494699990835645136080446120307619253442862145023839171770150707048221178387264605831555051102172317385356366602017944652857040432624718926162801326271167955701653092142394438739065895824888060824002417396549231124296544661946314652485499673352827984197326523929714387045284221487179880721107189240841423667604300168780242605453494296946260353296837722319563164142546437155391827660003644612366640441915313781851202534511112500766153954078415260433643819357076613210429851720935364135789762398205238243702668728506874521020091758287716580204011803739721386561251889010814627836380028461288959387318884589808072660249530236838012125714750014719085829650534454664056193482906989784989208367847076589204161973481290917084192548711570417320763598073391169161175024822869875697057118027578745179102498381042479482201718942922729834248920244139193933690317820596489919829135551644791904563267758148609509208014849605544368374523142212354231842385906120507398299818795095159614085388448135990522563643988714896872813156616700262309212377372138026172084092866555151711139651053356167011345487854833153628516200874548118158503950757385654586972416244808158594810874091803016583700171461879756963608692753196656789450703987085272819059120764458773858850498625528656837315077487207499278124043894931243953495174822204850351223647418875768583369042214412205161995304206708663933884838480352191215168189412847946582538905594699747831145638459985390961167399902789312275269103859130886729794087256699059454315569819539804227954310967537372202493390551453085872283832496597222029682401057787660555184426940723899451754555390697324616215790465774037515244534869098553628510225001331984513545709199538247646737294594389799582213375383288244184929040151557829096044273525916512888234772156590324004083163631415137258491405414628811937282982667219477752858704417549004037964503197435160018688001753384578407505203861644186621433212245344073170522489752860923639942382476342524083016312827255484759922860098017115628250191553466959681013138217733213635132696465283775698556534112057734384382479090719865596585539059649783964296440163017894260450967020899507848801601421011240796246747138044552342860768588291294111942011838927510013156031479727484399430772751500332410984826179510154165250826495916069066205563414654653007176378416923364382367045556156374299345918804494067987532876937601330829566277407500225222518072823982743228574154800878359135208679293742820872501500264184461497772184197816831265509976475203328657391270105944852714104074203520283464367359674608357709227094612620952612502322536098887725728103847370102854279113830078140255393904520718992734989429069860056980370217003404764048933511273842285731093549899999853236909637977079054160854466650672168751448382895716624164924090556769513169859915394588126334425351429922933297061619346633486978568965991881150013736353075610203598965487314814090415814407845757466295862905401519125500622061976075654811540251401511723274278060252869539729821529322663560319359572119365369723058964867796132160069650228277864533703996493003300694900578389520773266186802488580193953404606843306178247111299328546207926071768186667002246358037299632485297317014108278187038606972236371020623987019061617952283965983861556297498927269053625312325863490620629190231320844650021633236663183650199274947268750337299778387265432353521489674238376903711658794288729924718002143516581912325344603865425409876452290199981377956671961725299126779869836131143503158314432852794703907357295734008453160094811093406171106568723187572401615880865208480680599886819995715412659962709602649646453068286082565269131687539452167919784635862771185716064030175722481669454748772944840094487372114319774429542049783961107799834001254332493156343766413119478071497276449807374711304997467910346345871974689902686136198774043452351539184413502586548614923933503377905453035309560082124624816246523842444790203051344688927743625282036743721044400138234410889748457532530227166059517380385055969426603170732365262144827044220148446969040287256240327859303336208773674643155397746577369402158000817383956513433360327433726442881726698153169495556560025816535066882890858974672338133499022223235181888692215155478496183228414420708688920726039095780734532527636499816130052789089889656309435420643985715795804234942221502331378973766215323600097108990338433603496292340703904814415716913489610214288265428266595579968849143153463076673189399361307636000124969267390557758768355918627955330497919038106917705907014876750138657913868879607806535644996939554835709530983672163687076959675454916484731819542730640311307474911361353879850714292765867542213991613281198530291415183169206226588434952665685277611678304179249304088486648864796334954660554333430478466129564953043668754272443803357708531185618981029443893795648673892095756295361342448474309891648386995522615460742761354023552963877749132189613499659960379469387813126366594424418796897052080641619678113899155243191079065922697809247144423224887709207035191935328737330014708001936358447111630892489883231511260556052229664206179204289033290448439315943614272205096074950931243896977876058599424151086654255705165539152757193430315932046418267881583908215221412553647011409347239478634156017926864985533227797761007142018183501405437065931377497340717965920181741839757629145641302550656114487787144199012760273980095839696105426344630455016317909632297184858901594756051638483703937267716220460500133039748669694572754134126142877440036456394000332719309131305061751978651413598741822720798651518699085167820989072989484932875891183165895429263263946876432194289347702824413308936481509343330309919165042505102882608919506111757958899597009575186353554301205193591585686707586945389590088075506325658609222130678547279375043653539486124497194934255723213366306022650874836505090332936430914404279647449357861472863676061867753372348436422406475197711713106112767089491920583429980713884024838653326582284080301838881611123743692155587837490455845842414967860565666658902460755191683873821913358234954438213568356088816436092062371621761860152303453710847714656231312225623418756943589364634924386493728616517827502432543342001472150053664293023185748145885457394723658863113145586496517524448037393526446487109559742999250323675312425382340787458537740467735179686678237280408722144431503585532452418366778948258382157166885230682926370531374922726352739830811184792516552469771596123825267777384087373244364044488214741772145655673084610201133425002997752476715558350836266515463608209064346245301520925734633546144215253768334143201239850361809483403392295005815870660293840719969657790934422687387262661144787204637575869374217437254336745488927423924487361978615830423562318403442423851627489146921739722980506749049758986360860413525440638661360018424606863293065216996165666640317116224407840399927412327407027150293122818599100334183943993203352288171558533305797160667126739504943791866997480902994068576521093257486320325588255801784026593745201125843746231422873887398885200408073495135971586236834480511765851245282125702428007704800922178966095702751714779815431652509259259664538411530714980500707487753983768867375960364443224942449556378796537235834900076936619793528631441467093596346430752180459942047614307332066722580995315652353147653641561236815870863143975026735854246949671625730251620827981631133927641212776247373601816985928283814837942275124047689099148538293798503190345086924547793165247225564900727774018334154747689848067957297862241772907496277326350544729980876926689938770342188610309353131383244237338762666474848961929072182307224074532682372095076029488869542977826831720292019671760495109415229008561228618011942137623899673891636807968148099565061121944314466617840285559232829967285883522093374212944713546025371890060732531526595962184920137789432043943003154186531416194038049056697214428249681836898756060255021884251223238609337612140743854572634348294207971263488141966976001265647373740737457936686354534288871287481755298832493510752590379574466366075224612096011094410943764938317978702686423366792528309671556400341020507088950644059061011421915914082013443207500912893384375077851948802935814835911709528007152424320557650869287096117449715547843649931543371340521535602783929072243355281142209870191120315296718438001786056641612636010433011988822028387757434385521196649070620846243903998195240755548884591254018611270602708215841270850969990187808961019592468948783530316447568571941803039664650612036435354692483708336283365507616231017400761164366651092802689429554856550580075851893900533862462386480090595802463188777619487436955754068906693807525365312409495344537986192108127251119007938176974958792438860098776025304521289037381437829952431479538910113223207895811077125096248605271164099537056007277158268942874310796892354985576243076125636319043732543392540759733217742710989384348989405798273756642852328525306176527875076363832514804053901795521367356365948454081747095142339180027108611527530252146870957082216111092586208718340179818297915181086236169384088917418671708829596468438125988118492613350229267999073939700721747718026832146220783001043945725700315401276800824109118731845457702743815956680229804249959971793606046718929436075839756335127603329629851086075924221525335397563657726013042845453818496600300439870786035725085037455264002779800791351625860283855972869431719465369401160254609706430307907306771730936705573547472108031189250953074598711890770816792558395127183189196643412255770353764114953158657157274766347412138317166024359470171328705734934862878538720054419030318979412421846791574619385837272825661930661713776766680525819620154863657527263757934453580488837819604602656080341573053858896444099255618725974599809779866777239595345596582484997503081436701989405276315631543195544644582857509096213098671375333334740609011027587084875540410045897703933626392120726292091559895196816244873038152285271101321950160977454804060992414688033588727918817580615224259523102735719524629114759050936380080681119403601563081055231520426266071120942731764334029791068400575531175890917016138320501219191244274151587789334726450121064962308266715966793042729682027431395036112061328142301508135811404645556994907747502815140739579500046716601981559700711975146636386726901026226063597551790743691358772285276466802843390099010458579713254968908355024164832674387519348304913258328330815147910338019980358385455648444407461722702780158338148811904106824049446715956519899912988471276087023199501743215553182785317592519627813142542987870853226460601975195606062341077812208933262501866371722352010327643416021756046679727230861754724461906594541704386979590571291927769455641994063724860168617611380661104377059072335132899535550670797191232490980540954750784745069245054488925113337155050758454310761013591244320514642485079124271225172457936946894734548594986349113809167388067110674065417530201984792787257430026188830010352396259253935122382949682956286684200999310998436376000558252394691455894629803388345679183497978322656785000971967634621913378916239875992656255800969521163807922525862896073314057512955525748873792708677807212974810179031655954141993192149810839901584435043523595489158014635424602171897303247698394890225941908325667366400865664478433737596745919311466963146207117931835917548557359699847210952058042876286857986646076184097433649844254416881682408208213121713598785383685128207397246863222857494250362830172368632639118708077205521116783043409975117819523267269781299344275265152774502215220502925725361063328732352989229956907977038821736531514537598294297177204811991147254080348072842417849790047759035795924565929468079817838409874556920004477895788757764304393460371228957335482096733000591899196578669685490246575079157820250042460226620876322910502369593418129671423532269419021924626480924051536957710662319495965291115010000370338151113252535544147864687038853087890479390484972236654259571678255934373098528979037727594032693342057440499186836832773906022455287054878432212478758754719101429130050942562667212029525131957577235292077908668226912082060257085177442482879808939794950109320331032174089318774545902427952203636892590103049749919162034773524272586524732410356124897563145588207810525024781449493943450032012791518575008963262621371415542680354015071332339497448694711212102117729290265786192410951667495819780596760045430340996681272563922267417555067070907721176858114020581755614485170452194391314243654502530117644662272006770875309255725726257693901269773314207169333800386332565631448894851373140382065418967278606583666398011415290276157587781310221195677840464675500724357608667693013408230785504921543946245342918056209180862565218886366194406642068949268544660277880827103436241069762869508970177182948035158190808297667934507755826956177014830970693345726745064454400426234089127830314889481922438219973595975659614977009378891278852708975600293293709896578068401500763658768300659935440252443463824858519247841000825738942098794935444367591389792517915061710647974188400309813476029433896728495897279395632220650170922301533011654741365222632513033182111829103750504743429043938800356920702921758640385239227037295686905590723125438301200031892923190476942447540171626339669290514154133971140530467599796323545397515163725435394125320372005540224904167121515542701407900908488255549559268896764505919389690627871355387518985201807783811718597083091098661300801922585369218255626466559435708512702806231878830647879609737290511737715082008556879454452954546833453236245300460819573637439260024029361337444627196145701829236782621936444841200214215913946521270505126557944725399615086574851399114111895485161661217010218171641641187515860165631057631756792166809174619677699888489705896803735142115201897306922597381315506203286592951960414549551589499339423901925551957350883367169528074704335549556987516831048675754215075081975468359637781665452241885840710231066243261205492840020861302725104699192116484396779891341279387128853718693176884182290146959992716963960418503698600989208846372136585759093302558052860247791966982171000673956384975838242654540748206731977153643886163680566330889321749469026201621340720055252786376115747901074483016789008374861112617225234765977891530659893529094979424089135780788248387567264262123133151429871174602940018603392067481351604777529353819084151489191853251101387323529116949272783413460677522128288060918271572359199402478291820944991473672078054195900281192293914989904255140315830640482439917128163163818907181606406645775023061783016498488711255897310283585809786526603486325147959359916151014204865918114986242431436361287550611829823509206898236925413762247593138696149461812817962051374396798667326506642724510081163926245163385974610976868466230762311393651939871597576286655689670067031986077943075074966457539156868682200267992657705681286302050097602627582402141409140561956368545412045803768036180438777897449837234167802514918421653953480445900239157600671153441366378783564770807964955140704833921020673313907552830131447593871156336843583989787185494404037410509968383486256428335095390697525207014336626500104115132025860699039066891964823639098298422035333021402170470309688084413791084392971136518879085907281722620116780317322833724855950124140524180773702317456406409287769423481009242324375455074854870530274091400296644166813510420315148503551973728324543065564686928029624435045520963969756158528102913350528146199606331383770114669023344597621572348968390016829058485743668141048170786102324751637588806542795763000082170702761633245529510829694779476347490588275262739101999813125306946876517700103508509012771462764781429853137633653551670695287824305779839297484884312274591231480050774903361163253532855266577930056156438791388693795924259824563999077942949596347883332645600281351736001746693159214247308732144021231890327990102779372567340334381211319329777035901398339865141543464957899141641161173984203724274012406615252650208413927911488991525525151454306103549981046106740301145265558646858815075389448826660644836920140757624987551516963294183819154294941551321743435070262504217067339253981016381694363304104343604211265805095981983071285231231675997892842632664548395439852067229686125867852648050365827906929503215708934802711472908617351150565593618273191183693872904361079285257802507130975206059581101166206793160878326171883416233366090059472144121073847710739998963302590867618380555673004626608341449012707192779700359794702442473507436683392869666631720862256813643030578338001306931934919991500922116971650409780397000965705506180469956686377194974080696355537870261476620988503398776546304977120206764686544211855061913641412493459753634798018030181231872950754184617324119915046782759293187602887167784296074522602428053954098271512305958123083972924945543162021771177600495909676137028290570392926715406217130320046645489535447111566184034651587364608807029448676306339290020374259157461374960160638754881991207301059789449714570836551927466650672498945055996187340333782638852659446685730399524510740445915627540393105263980200173043553904369093222418060695038707715394463936772349833114531142704952939955911952669852058285299958894323921791135787022461178313900178932460819579464596182362116756943919786205773356788973124081444923131593603001464173820453152720609161215837878903340391442704587827533625321313198550015861030598265973294725522407265476174268379920856323846712331210891950206555875906973132613205222278508300526825708601673999373498257297247257138693232116051568906402615403403668250427360000805923806863886658746489049795929700531871569782290375505392053380648483294535475610791344429106289495734110237046564847594554566180837275508144139816304629489659249394552992163735117377702721519650557288419919578803899066831039680844302082589878147238999635749282775219502594733181281744021776020576422433075723953780460170666752003278589270662238033846819534844271813772419013237296598054940538054249785005553964331660895964575018245376500229162303368627766765245454508970148381597617909584282463919639377533223657700710885428235446562630612973632727603829072577578747602990614525338968515385848048322089972676934932812226414388465957456865711205303610325528033361054182706961079255736614569738983761578072430466566354877024146248238592148559601572728966445284995346565915590259365982459291853149970150893481980356851176043318862651407590613839406556966531441121857214339680421369353250803631659571233861844356036464191210420418078070785992605374505916100198109953551324661811909785369941194788146205349739145821830217365948082097218980280188509021474655602196138881897211625928117850643367295772933698164251204888207914313504161916788882566674542180616263773558008955268418170565022438195016705551680475960679874027745852694289474697330514103577394266384002009273391442388396844730932776963456050800050987577310338720742211609789446796949801965525845470211056189505940604300891779197747258423847134081552886918199071117103861887382012076397840933952849344590276884969129224419162541380056237210395093096216590673731202171812301614089117528980315998835819812503457138827117376839817065189585927690598848069172169378343739212742405837681766086310757596634998100718547634908869955698457568148118890001552980468281437214253254670907994124016287100141889407431993830481093712813593964017132197043564430349240853514174497172307306671655372077101145142213452266249252755263724396109663217904591971623477203503587424557993866890697394938841982635128841473769592145480281087746428277642411273020934484634513559850572671525692694301717738020722580959922055923731094799861658710321294259768500826571058295436367656135570780549493163466862267868502830352777923982876678022806579260684774147243932211823524538548469286794359567574474445070932537460391516289658969679419392121202388074252042854292607876388309173784583334077376827178826639741197621702239666614599527057077914977111241622474983629244202831616715794004885702204422387248922832900367757281580948412147016769230133092426285714659695664545490717071607490528331950655950740223123475262934052051814517889413656202439616643281463164549885391168486112069720523808161748721463249593676356235617428953232939066176917558945683403713499397186961364129873768914456043578712449771874546565329231599792814255762478907811199869868732223152548641494487694704867842708302507038226549194823228494259353921758982098948701819578362901281443142639471127446378343397573518583782525088952758507953782028889333793326749746157656453307873379001711171225033559523206706738051552519778145116594281351773461925009190805267653952121130739626922099968010420722438381382979147775582877645881742023398008162365966977943908087336719787604855594247784458437154192582938583457531791150971923347401157823728616619369146639988628929186717933981535302871851126570355939746218229537689779751535889380768519755408394704712272876842402612282899134185182996139072492923340441284320476325340972917136353842719399399897469099200122291487805941751648545715348604539952340398343544802612078994654934251205332782865658786995000004453494582248526858631250517602113230349511212675234210286129637124596359538194323641334258006664050155236811921328906806754655375143359272652399747264892973183124709021156022868279732216640975201678993079134424961695307223629624364536684676153046797764132652441824064717693857742676568329091916759440099149404811371520436585961516228209744742336801837456832074821035283445607255795206592247460008033164089463689026394559592954975706796963028649518569983992232001616703832234166609453877868665287622109109490544692317857728020011450304922085424435576183119081079350895257543378890577340746911089327105508291833780606260236600319511570187148228232378332635794529141660126085033656626124280309278312596921967696760409667764975955469810400658464084616612804254216185727644060675935323468727097741442644296160837304336229559254572813981940082144951106104369111194497565106382461712917001978584733243073617295822911312914457886747896123998001230131792230904711564611731457539977432942399533095629171478174287936641771104289335098275502622999155462595218055141523220308725658872539941772884199457773038593375167532954718493187272590048325972669260278756825054774671346529125929572837000869194917965247330862498210396012429637009179261887455282818660218271363631829030120292044546293559229156669192506549306533272787666728171698093370436841522694216821814279054882760865423832684857370484064880761525594434314097824894484310453323281587235748244473118204954700114272960686030145212053717964621852446813697627085580423165590578338640188417320953190189745542430156672739457695014526168100447350102108098530036162976171623141970340603791429573265729188999618253168831762393094398737432510333916943251113774763665569695741141286327279436500774925660615290985582517681000544955264749512847883351921473536841063758524319400611599024067438922569358048717199609268434044639843599779141790377158673394250366559227049771343474047883258882770409257738897617611556496159431913424117229939055182389327588692989000430865378542493688108457293202402250324034869692459825298091647740581845135969811866434353714830130934240147836660996094253613453348780181995679612616329919551837798266509598703902037695346190319232736055723408792965099383385849694232623787530611412767928255860372366438217686602213115723941612645131087367014966969298401670058415378080298625992534446860814854570606563361312098812982999582360980799352502067489455447838740700998294541509637514904679257370035891469657169017779019115357296094657195392760583848045766508560266303863017263517335576490552410346881836122999664130861390722288770108553842725867143187742907772370500966028992064188952199586535355973006061584039158812663496230417919756653172574272926220890451017889005297097782825771082455396848439786520647086010288518639613809198466282651197024010337219406424611089142368407726679088727385265383387015601274069206610023318275520246882858293960081671665720174765241614158174305027000103424826154612282405529769148236313833171266788886321042008684087675173704394761893286991980693522401429286715803240526878743183521694467937548048414562468647779485140130577277307028613856343108664006362639042881063971073405515250185234859873141119340787446875523962855569317698508324261346552757860237232222765015670751612426916597800109181514320810089639048508288811397917675591021680909246934639369600596029496914428392396454985303801925839692799609414908715291376398367252349089145391266028563025700970309170194506664199750489301064955924823113290039710592393456240951266328497323904645595162692108302771883761314744055149958229548186941116100341221696178627960155284595783406643400383976000050635476706399716698869177814297500432259761165368348028062146626625722720445210025516767402635122913790091101867149704983960993629024191056204348344597697357447074328199475946098233035647555300512360965414221166330858963976218840189229918110333636069119869445952072101785822750470538854148297702647953081645684283395854318628708698263905944347365849439761388692747894993822821153216186710784898310852424020638931714983650596015936644706506242884799622912949854678870273494401728718510206643505675954053995842081000546683538756439174980100880767255636745947131108089503079415798573501185767434418719334588720355824304647333938723973683718587723558108787073109759481132244289426045604831214811322608613737457630401951043229623523724423130187288937786301370710919833427094487995177493319362653653495684284153492749027170594643202359939447621935459326638115085519263639423972917024623636116555048104419025228874101578069762284675717635863096615114840702830671685386698809965150093143774294864853432063094918404094289095230841611388425457089110255202853502146471762804783106227040563451140000440908679557716394008658144767728777289306972591729107355839299708470056090590538992893795265271810449568442736678572153701161299824438665825358725093273309870901623235354011561788375627115388699689389013952116044347171408258945882874032929677401065482402589420964295243661788115563829155353769021982446461296759472621100366718342765670685915425185147735787371679944443214871247400735518053241073437331595136110841517629457825830553688368211939766263850302449316570926310692160713727516006627948920306387282641913743494247062404774725381450284632153058571376948402131424511950847681564770840393744977063308333010269461977138509277888655169744779105639498805855752739513993820700231240165379674180292236507978095488159090243822518679088293906892022912992917055898375938010634462811789423205955217545091067843098264592606555567536394749061905380921263726277543901442028771201757281619978102692559839426871512407849663849500198527101194472734105896342717165476341718437659043316862806106905975267236053118317020545195222914548847201286183281696632500995335867808983707161927708436040587170073592053958251619616121386920020685596448193799091500425578873747105918839215927225511865404478403731748749717083774332645029730621061693244165497308557669965143503128063671265527270144291727851980341829246689443971925714594857304522246846730887344153127997486236916565316796431420942130747991411182941629452291604637996822244088038226478227483408419157739099908792163587218673218939185146641233895577453807562118719938247880493394360535214165578052589604270157049393941098872458393628772722674514954359626724028190100539679988613750968034225068749296190237419597728679989424130739741422024353461552542207127778372855161161735213375381348134890255784708111550832404267746661622899981958285934444736653970650272697022213360023185163347662607427560803326597178996371923111328966359294164305126486115701303553356122894343177129580684048692227911459162718043498132885139489774309948279963636808688893285983981364407934072997440262380781642074036720716560607378758397938035520915469431557274962969292625417916550934475927698755021925438272652222420611284986642397921296327814688887929656452198007433618064422270728019252556087258151411461442155368826207563745906818156790284333813960335853852141100286494368455102326571659029655751156567003920833646879925922174240717384312163577344187688688806801639419766074206377299585894986409149014914395129912884563332447902625735455457316245985035227084015965666002858980406953695196801065696940726630246601800182298682591298404300135418318004097217719805555384579325900125111337513701286821439880630750044187849938601686795544960668888333986373146605566919632742411608644687440786347741396282304300002574450604899883925081999047990553307777786901342939693505227011788867201700990345490379942820275755753425351766868771817079243207746595696321160377699099410650985034836137274756106538963080479657737984129343355455067344293802179005234519910538550289456978935710809534729594018240459181817733241641471392713692319985145304655584558138376232134167604995773849766914560354479456839772856039354159793649238501056336360106654744940179975938143943024215669848939375005534541115259724881301376937207900744376140015339781665602813285853138060914297024863881673420605119906411419508691503312090068948784062669492533389828870102268777842770177184660896603237209856930467737496090089328939207307174438381146517615527904687486817254746503822490590289980815458607289240176330316220689328332628079567947076279268297914932987455180818787095860015513271450653537408135698914781361306087249651722431903209065826436295897085203219732468840904121873812255107358836059490924627345270510676774962279285065766370402474015764919512121391433662932661865808901974880433579986196441106067290274053844794585482696850507015415422298022094339349122660201984252452076985340631121261676751574467237955286554006735067988008876549172171614969292115732999411535361084421774096284865603047845217548290993919179595291669870993376907471361156315703263063042876965328399029008134360257535230464099683316402908867081864439655469835507194657059856875819672198282981144054219715698633808851464462365370357353954909126531404881682375275022674462299914785339625122506563715821862655462877058757242361264331767282105883328055684520136037151976672482042313580487270779589217609353062782198063990676636639880824625154434095919328933168826543006334587310316942591390181848937679071348945828290752232649019639944231975452858325110369494628139434096115181087781724670416924918555175115000861405570733731566526184309118885153005490403296158576015187232965103853267169472473878344480502413174465231946446960178489093546153761755197843298676147784198108643410136920721092973707313539595258994592440930243637005431574825763361457236862967271619435646705424855359829975206634682833424861492807292955324517293187189621929686384135595745152945413761790803042288102293465799909082236373994455404429834809850583662358956271135712631180772008006210892985499048377300205743056340428525087645969890124460877318085691492720148428676034370327735968962296490596820237934438582806664037264616808428444353540364496696553530945144598608361500816875106840957918564659387050878411987850219127885040921786509840862790601071926961391683250636894790804770008621748646129288046244814323805675702810280639897647446681774873249856166448543998235175264193701919946271401647869063237966010583491098368948533769341258954871916817649559024926928456895544070777345603672880222018445787034830018530812825457924750243655539275608382510663222941622631872408736462316627876495795129105587152562191274693141616764371101294167383593224113869156890124371996901490848936127624331325590995733334408385323868691763354510615068531852101531454455583189021952255633764684173022689886035609411961969002721988287123082648144653767756643859694013076534678764315442372665927452652906330749811989379281251176710414265203113181001294291819325309240887393688013277890224791716896293493523866564565086542421147609874580340370251620627670199898085415589523306420339777230085507818395649008008976945614056135466346980451835616675132091418834953780475702031618418845074861820910759922050565146084003167029611162175475975978689415397425878065519852116624839887923064315801563244454482271893174495112959042007779047998741040495264304740681908761412752869389511890811099517709944758178959472886308594024619091374322740068143306663726683194456752701311789281538050902665295434053617382810372605108460631573308393679348908087722655543686402205849986845594035070478138827623597723877972253354068176058642131243737862205324848092953576594723287951603037878879030568603534704504996024487763841678749917817855030576462196660163008963598022420773037198755889559968517058280014013068036632775061463058637233459711532157841178933708360698522710164451561241172841784319258953623654335688073834345902980809265738008818104875923720572946615586016048355726929846249521267625866866198000124691670844277118941335472123593346249704137391216858058168245334292384549445508717880343323690700373446227351500243780684377355802385468638507299104773373434198897411817613981268716851040884096261610914817073207763823645036115014736458041312272937898092175813575895890987983732123889175680501484455515883145752081872914926778835118432087083763077231936545061033959971544202480725899338156628235827992654601559359471118820832481411693288753616256379075389204924959333493020744204360723762606904007467365044495610739851011874501614008993247885081601120002179143214099459190528414531491106568782936626001532021474167816496998072934997658195050726384233599507808970831902485240831998776541592293013763374875142608392057740345223108810184686323128389730477408963363345615416349458074853115811037194373370109017539626775840660517433290616405887627847641607229993349909336376779218159880524661310272798141593902779888166009711367855823419483130220114833215554691214854655643637511583111214499741894673125458911728523208525478405212537314531583861296265527060789365888845051150589806056200695616485168122978226710974820065872173379987524876082124515580488488269203044047428885028584777264408870761301664491493301785772105612554130195349039513942315059278075301351872350736684958157312220084939283103586910706129759594245223136892144717697750241878340516498612089571758707469508883712235657228489631504153830823200168678960551617989862844355990616619723710137131178415624906144472558002839757681998080897825870239708734637027668175954194351469473854340399516020367194711728066269205046143280224702227011834458395609301959005606098521837981170778037853876816516715459463595928435798709303453318305196269612540217398678981743454204748045831318525619656405724529095138821921290073292907203860590957833060951954143914008853271814365825854050244309060615280757366930383781510128955941748478786213693907265883323815830028155724486904587343026987985769116516093226422173155675841111350203114848610905320473976336107299503753949875166767644788258254392301747158330686485479394242147398661775193216339891254232409726117178180087599991633942142016673360108352230949368932796404102323176113572490843252363295567651282110837828467038986863806617605631588296018332604940552920144881339359064353666321469959890130336712903978479271225520006324168444180717772820747951265676823115503585069446340144178216999036759909634733969935542039721846965171712911674964588702552450415662995173997921220256598302445935345018509051364051516844865025814212453158306823207414598814919127917605192298630748967166969196368967052241210553863764822967327744495376795360156023833457789326141856525632123959303787757232192942084729893599499833595891994452626708648335888193456046349451033005395319113594957921990115021044051502358956075699625901587382071153374012255090625381815823758697010425899628069262983007265069287885723606745110108871018920860290265622231892383608320566742116993264866629706047503932956541159807311242554437429157464425472202407247604994212448074111724077854374486942198223114007060388213171423354455945724012691811023811336489587659240957221141816665898153327176728898650638626763493779548588797056844435306523793537897817434789428900478097304917945629609390372678979313474205597643698396082438036521782650859731325831884702107910086321999933518159573596743131549618654717848319259191339444088244386540598879290059882088229445502010766020430681917744869669223574753222714453958665462800233545300787809811653274982699583633235210541541290898149081619869407506049679683127540548601294011754942765649374003842988089743135168554787507179648444751682122486821606202112128635231936190317383089182969340377869427489460392814107319830065540548140444910786645015076878340332020005048631750101615886544494629606992888147963502221709717279863419323548567892013494082797951921810721280779679466537569075184020785069424867601457578416678911297999418434950634897921155368905331914637282762980525806815628768645537329009917404882359613509469092858917567952487013752581067070521430720388536430601369522469145247958488532889495054476401290955479326070377332411626702442925849722260616453139817399123163442539609424764998458330456367224142843798671089274487996457188935386036453452857173288717959859798110315318038136663651084674652813895196470360878220640291227526088497660925915517120317673908333638981474680376934877460450271031725338137221853048627973410277275432660960727546309303492228583827212513156961536175906533897606129871582754733991513823301241910339140933181985267627905202555024984598734131925259620591462422203159483905002077690597993016231205410535143124694454185563466659715724492280213564069231900923737938086650766968461167786062275851463228783598541076879459467402617167341810693736719688163446203614216420923135788574869969490403399349671359234366325488873280150894357045868182312914979303824249407706088235843857603803932455123848385868851460121299439952923332673982989211155993523463815340926890974198726121507308748266767603835229839659799341739261981515215533573708038781727396585633240405939476314376959843781488156568502502980221183765831250997462118247635099630758194986547026125200578886721871902215887073432405421874107682011164967808455681491527865266999147016304431718197889457943772663050904310255346195862861636854650342791721962189294021975002691272426116099901726373938937024533225503426214874220791787325478572338359182699391541926901532849731747847750839447318972169348643099272098578000685430742198700270710437463424303680366262363704198677176928832702939776193641406053533565353939451458033830135633118949832914571339343374449778939236755441891749982163987113258014186526634565737431279936600595302160607680486278628265159492993834777850786700600181336531800553635370545735543597738732510493729427342189570026439095421102818471645698876885874831844952858585861503445803209187597337756143175168106628964366732658888258132310219160796803492092653557914164919574724253912865384671588327614314812364719738445907791591569252224741714558521411109762734968499457569486988962946260815689428949866152632060080285103480841084926882340141597194013451390338589676376245775916216899051778563227101168019867853526448171657032512405231419963554251287523814600409476817962882130959008760044076497326025784841688794611426901002315447050126946894913743859447813447136508428704528520598277890962689185228317515909592748879905567969008495126870929473463138400137516814695543043589605734574472897367792686187314805928285842161589707841502346150145256040705330577951820924338924182636500100715746050077678858828400288450103500669434835007440394084689494679581871947063195006498613605058675052778557539828446026519994166837916545532396078259471823109431421634913468841467223572713990838778235661815622473796220394793223077939603957365889021273846015381309254753304231998114801419119830042707076360508531513099275893057619709279078504824104802188974923751342829573609571403245597196034968245601694557578700856735977703953508541044228970774274482325560177931764370773476935742845374174143554620742814674546089439843444435886303216344519852473660546184281873824775707152070394864044690541682949734417683580137211016906554970754830012621902449554914823692715686349790767796194129761541526449317852259243805155973201464176117699475888614216851481826932881231752490579929648606086440407600525081481191292649483278888852793512132130880859160751707104997176103475579570337394815936867326737108695180125311691835346587223319048883891432760630299308486690255213978896110915629047940840518204166383261596868309696229518016866281212925784042582748169181884285091430742408105448388825987876406773423891092385282392723465386841227877643949416062746029414920049873472208811966397822519011711979693087097859727482401551228281128092396632337684783969014218840411404277880940877707213486450629624470449131981242738660164967281572512410926543709718214515418294607673048495622230066121854966801728696710056964672393816540725883445372390147287520027298839411261591100634205648348699233432113099371758169195999695417004391628683426388634148927481393503330415090246828814704201530053392433629419840161173084454738840598104284153942162407287067515513571089698587078142186590697076490165265945687728141944412283949180222027718730394412141763120515842412013090321911025817346951848286733645195016631847012069867326261596466377865068561235716811396777114039499198118813243631230734266923750603512656795640553896418355767553147050823527954145930537115500361493056352393842879360874496664371182517643408687648098636444734589767523871538952853115886184381943071248434013298561471713029032738322887382463239395444881890096827524069354282644641345711876838902962256976665194413455019922340021078308789790998532228995309580691767579100455433853510434560186895568502906574790645993355379772336329395586329309087383440760464624335109461495498385708235681930665318890396318962144339743060126379103899224728201358287967796025339012170351204176196292233812623977368915225199573415620167516498296528275808093709125168755754845453128323132726816026923575240303470402140403706422651220976648194758075108822284947592359537063839857898422052255736907894850312069761240466882440023470521092104147279714342037529881756674115500990176059938301481220546553117909389694725245394589397611357955866409325660737567204761204967145526937291459516902839038686954766955762507252067467925441210578732140919915774379914374957450022613974505077419792340923770931610764246286776271716377336694338214233257035212995143252843208265341233965357012630577662647040680954172842962686984250152750524909155811172708430938482686701221185151561832307553898939437236216317747804364366700683476001376535711274206019808859044568359409189842866546402670352199606222611775175130461864851924636631226260029781386266780657456830783894172865412406109947254561019037365050719894165510014673603558485586909741539988220605351359581359638746021560286184813582957922311901528003086378806252232300262850393370780362524730576240846817199412348738064929635988961173150281172290349990673191864510720778389804607918754485103524634236058462936344993215234734790669948349676903637676910449507153382505083806507118479461970827437832116576143512291879407416294218514921904655049776373978759776262452032154321802311728708702813608421698809704712553687690747685496530417620314716728723249016137840891600554391288571833177185256589121284591134221729788442900743173329647425625224660971635774188387237925175457427764925330439590964514454405028944558759970499003949000937662241576221894247365767687846688088425876809777581686513103061990316780358956541174516199095960988089728299841968443321668572959753522084250386664909324667402658955721026668586661284288628104151543120048869705818769253246214191148513713981706412171877487767822430703039396975369134827411054514309085664785595885839648951363724215294741111070443664673957280495850540215570761764077288265960696147606767681385690851952587673927963994041613128402769834292444068268058786499259885729090462649141731373756030025971214663045363093470508423301992679279654908431497471113841855634785632095308977911731268962358838226112199374262889105616282047159375489405490005179302840225492351017687288422465645032211716598985028944217805344496560042708337858295831261360648731778851801882186902549997825749732626754123906044727360771633368898527608121333131385036847281433186502051106092371920459305570855292615026203032146391219000747339582587370810824357782879662202102784300665236243496311575892638028010463307761170561205761699278006800366598390668583733140494044877506862582993112010453711532294376400703305670942212931444905702646053816654386436649017473886224001892981553953493839425202752619387105160898218483685756960605595614288624082034180151299317252612956207128740738711328852812391042938050746865706036965765658005602471561670522844073629373234646111179253801291188180668232605809684698704952017860066043464368417464989175601045067986334208486222535903632060456324818877823185908546980842647234227899717282712507083775316853792964791647713927534780309720927393339030056015237717275104271768226801263191379983638175129525349439485799361754521117742470402545825609847112891477445602997535266847795908736252232988192525090061330671125515120622448847864671435991003675876697997708182519292395337432917097491353218316516252735403515489964360672619365594867600244390153028850317880592880472801812702153872030298884479646273055601425546678883235471649059308529335703637324880304722022735062811368584194158843282318573249547354520779865361470470363656783042532992817385506095414703534292267164165122661082686820757186977926753013585083689397025821969612707930683221650856814160956668969298522745249664305228788551360060991084032063570996234256083912248703848628021011696049173283984123110674761070130495364775934976205161740240020986273268378897483408959418567286620077330653646063044300451155500542759355995357980250770791045075723581786742283796108532834464334480697726538754996575536606769940473281497734316261487138189399957001277021637103601615758931646212704619409478448293719203017279996902941216163649544258342827414963826977869257172935307894808193040054351134404526270639133144737875139936840347745537427982503103170460914853671253161003882589173331952790809172750604784347787996612233276739817065048497291434993008577124392723006339644421614687805468905171229210625131439864704905273667396397077794412873162377925758015926585025371250983740237969332313575376721104307233172261038840862007833281402202693924330385829213751683276578495150858733140011647010329438229886092811079447384300825074862602575802588405321163083457177862463078638544577839521494008924358643611912056576329354100464240921747039493790485807293044728367839686770543176665664637066132891403498474567418813787106592121506438403842564188644632314318258766935275930273987843047911224981675179634753639027965570491389670103916986048700991851939357195239479441588513497883862908355894349305550251725502331648455493524767430629162092475931509954994058922591488673208681440259414234939129936628013090527922123954635339855609151255227427101811523277532116847451578105678202053530535164972137736479248624509644713785530208092502681635480500698797174815150006674682024280155806947074752543715128250345634705225553449529421972223859063988026942794271147535254898802934443679069351629649165125272586986913032056681564115749180012239436881970887796432168186290191791704992598024245594688251684606470843298317801153270107802388024733583482069672361830153184015844920721886939167318970152763310083233094073203343082616487623189504432568707708469849321429629084573091293718113963898332042586517677148996132486938995575579231349665290546665601037507426884307718246946210633495253750596301101084390811688462859247662997618160245974136289876282603799052107342604708871300154500910820062227676701299611469340274693469697282551499910220634393155778709137589471993103713739949371798910363718943659336219773514911101897146067645923759350499131539963427509470907149698225532083773270305795932461363458243613260080982720191936136110269125626518736822292234670785708694050740329096520178924278433750350421599191688892169613867127424615257418154651455072860943735582184246214852568093643495160491358752832480919277885035297954176509786539836397053082334452734303427104598805655369545411932784516835823958643700293992247737224097033377100924142821612712789530132256723029708224257191581663049528493244732153084491854621663325378092426366868248545255053418007607144412938909935136719353104270461270589548466394947942543331954967745105264696698268586701679795773551431706156777073587059541439400387391036017425492091763337498506631420300341727149483116262644435573198906230561148050210241082424766764093115454670531514060834355104227160303379811397115243002558107241123094893235805273175936700924696929657359847767957079841826937099446669592456696673837708300712658451913892947671881723286572753442938276484729912947746175981386347720886014700050824923201516199445003134421196883441794433722625146823840172556824820677817724054505077639195469633429589960176722159472102293559176838032358247279731790321039178261162974283715609898903611946453486945751243095707170144025453819567047003633210252092301374032515138481623603673334591040240940235435991831721759483338121008422214628052872538405469212452035845902374384701811790633268452582928654252565164451112060177598918574551922938270865910056220653882822502436372030890338820690225125986430201020021613534922149258584939251033197320368320005587001362454134639404735332365257531983522031867982061317249795130676319513978998378092773872261642786407936980923163589752917647569367308178400238609257129303054564991239462171059770829936223248003341920472525736982444876646407573899405050480100882974446177373678992555167522472490423909858961839298365058875721171118348256463188471584339853073891301074113511913489468654227120631894782477181767952749970336706730938221438586506978012814723581823369784298649698375487554058028008606778634581553226284161199610627362936106745801345049058068314657273064710854368363929319483206328796397322065927779070978125665962652026290617349031247673521115004297634686324465163655052408625467943275170523107440672369733018314941366346231301843023879210524747982448884901157738919309003525130083561348139847023132645373450164033888010361868204447189450647273010257053008591748655859886001255475835690548392547586663460282643328518803910632737456091710857331470354482085515700275843327260912448256198619873651801515709710217276899209460622456768588632300987329128385570217614967095322922604808738317808110132786136903964438326260128907389754913423048119735124177927644362995086278836593525521800465218767757957495886105212547581334317607558307173491901211448090696973287466215784541207366626417831308845837119881546647265634451804302701261633153230304573556595729277371004286408104235387041875689258851694528457324299656013573473253669933284306044463469507934033506400779974326873853176007750732733768773163571650959151542224849144204276875923856815446049036135570095548698886759495199959512356077830099534336935483238836515169190595638169033689936274413366515810812317340085132040833082277997341821057116461693877308710070974995034870089030057636087019797552658717846064159880918220740849531242110867658034350093148892479342683416666108838882038931327042829508791371348217704849284319880328535682374506686716294470926416401716080451425057968593636546260425656913004240747881139772863942375204179360966481008424440364741938722193725616234129177765253050176927271744332760150883008781119060819378273011942988695967584285965453268389549787719415219666542448367792487192025027988013584563003177258656688936312763752174975757067788818269734365625358881100350947113849399687874240863912396579965442720464224734387502589010259418478929552659453742247827001841575455055944555489912634807874558566648398446733152130151632515574855732827148991060657515365639937772667136993259824867154003344007896956236266655841931650801907397508349837007142519157499422274138437451408995527505954922985010570826809684810788136724949311873871128931011867912142921147222188750173753656112626516899266320082284306999127208896750428941466600537775864586780020066499445266392081998208822534701135956218224090501945466564513845144430159406119899449074006590132432651082880533565694827922329313577612440343864872077988630482853116943277170232383508186255204795811734067005111645307605499471758004750931249839997525209959515344646996924252999887988968434809314608332168520962150031126374964979860347055660980777997144678007691915549067358416953851445096431925644878693913134407586392448556530941263208690386341991555229794139985325803900721994488315756402316026271263962583644249608186092846197795667255827508142858356582213625634546602682025475982616629982138227175734924629638543859285870724548529478658391111017891340665416404174852699056461427840577857171274065566644538419928253077709010228816629526793564960814183469377693091357623626744294130173730477325475429855024079992784539001313194741324184129287151149759140459372448082754024593503290886758982401996372167997153005489884420309111458622971412313969713510468902249131067474631903999174408943002877315042467653524381035766052902802143973629079172184976346371667732882658883930679630121539400840434021406140578550869378791796661872553882882591441472273006555223941762692336910240826803648523516349520488705458900511176133642522676228596461639902398101882423882941660634420554627427802617054377611011427325496842197215344022692306665344823684029434202583226547802391035813075416055100157680098458804358314062636726051013336479858087683207311228378331624101289117852507628969078007152570345602118267231747244325028930142717654714505798112140770385876785832414248678432963539136438509269206111693439392069007116470609691278765063172077255019650742229639107875009420370245751467624499760202792200420013123800766754428859189446928860268908605561176838728844711083959943684406018973833382350991862917289309190730104407008460042189211462367059990426949582692811926954939839685224199133252128724354920089060028239875310475899385890139949374234597665056675393489353249497045332674601765185931998975158475394518677299498166951383582738536359135158302861186030718993785873577397543319524696010909903538748561095079325431719149821924573321559258122408773025232501921618964442345462534953215610734219941432054543239239897515908063236477517458226317515209995021975608672444692704781651608373200812757166612038843025546393322388516353577823276608794022178089269732705156959842401993950495379975492683625409067714809130791718482988658123997429300920086022922371359945849498863437450437106832432414359222439412113192083200713783910029285372814248280755396406627710037546618647699442846839136069886057274318023653165307158077182856835875529812278994657679496599235200065339074514895731526315212519416913912319570272348837193608878021581816423144845677146341481771960552665868590173594757447098481223693788749114065040972403535779679607861563771718099543007520264368563188621142968112182690783704694649059203983294004274430527628917427838912312019748155056838198128270542514512934343185852974815862305656918976512051279586389984440893525530920464875425805248837146001372187006451100582977012659662369664118615943520301640001899862870128384431583865952827361765974196851475832186100348128778341338694642303469775212738353859316251575543972399720593955561223268863275847803640587444036668311467504082939043919219522021532144402139514927777544693885064827602743301217639888514560586485661473632287204063731732507637483229488453529797092444713932351191411499330110466858652259022772111357203479865355571193384510980287614897052033450451559703490071796686234313397456957062581834924492121614526189066114574069681392786120049365063691640906859615651689191222993891387922759931318983259912876067320865890470557594843602057083884137950742707964399297733192311763388834982227406060609186687795040269358022385024069334829523786809099064924883143959603153485333674991887907220735791050398641873550199937845141899769581062168588132832771338277923150029160378576836413289270345175943274061382479253704639572855507397360996468906373075469379220384635664124965207018964625211845298123175085914270127077686087171988987084802902711761357476510463311348220783028897696182222964794095245280639170203256910850660753823566041613001814468524338139572557595228572500686459620926940192554865483411355518237238617382767432004664448127160267744824220834354613668766384919320596633825139852620014767845147967480550554790395157379438469020285555650180076149390847732575101619880480514796691182263692645376930237804260664862079606331600733369183944288934359390128701903974637065770049101176134031321333049050077581858129598671738840739060808372935591145909676461810837314395376783724155347227359973203211064865128884471054522366456236322455135800708637916739593476620798746567427475754514248299676370707846451767684784464479787395176531787173323598909426097793381819818687387469195864810062705147098223285932240731111891134149181075099473052199809638197660776486663358725881222178006401908875770716439780859254984378070061254676546454992277375976479417986322747994657379177271546362032539467432895317914723617902308959527279560731012175349060327905549718990525913943830884294920659538789042965225186981040995436513661510937367205895057541271124848850054472246181629785368275042205066573983465598986786383188545324732959662468071925445567183091686498324029074210643137062110400328262504546221745830666314786722293668693652070015897548759519086243513059253415908654740626356776202156607942340787894115171013354226115543136583869897513745972209008851632657760066850210880645073036900759766351689417606938800723772514121183119077037533470978730551599170807795704525658182025344098597333544704586415369055335053340866553479591401037445717001299325475650994303701466290247688949884316772596908969642824014333535331125646302878461536648480320466765832439867801042725951555971452321649194893686084080979749837082582775925735317691939583350344047209905023411759347482683311376602506518201370316154237522527746135193526228833530299106675487973573032325797603552567503723852787094441141558376523240706430530032910478871524097514250147240162447425775862106474357951624729558162239302957612525349433881633897198943402233281854789005987861310942040173151184126629461529306643629760529710120140502915697898278036980555145232816968721953995984507607206173224412692614637696791639255626686889739065660475793860872889067302601502341025159034744646547622687967382049254257036322815272272786910366634065537140558711552559340978012373813375437665472510834479307195029301525290209907405844612305856856929830746451557484622606122444862720028612475385443775287047428330232264981325725292864821965024675622523622315609623383244092152168724080038604448435853694620883702979155080326597121158833097969966863271398978977306230374127292956141410526796216018661947626281834153758595089879789396399266843261446223833659339088366248742971149596034476672356367951055929255849621860332854726497823983318810566128385537138870145900960719785469402172605428137284972404212387905992773408195822221561372862399930091861522802122896672700472307116258876469625665191907924391085988515275695865055676023058202354968196991883479496945949443627466489489578376098754258236488699064459694948503757354814424037149757396500694755343760309867363107684737118219511770200980294644314680793619329759487944855219636305194834284385390502135869948142127181326462736729209207358344834724697108837833720112751423470377880665529248045996870972139760524379994396149470740339206207281655441191848262877935869286599901653024933500337437558633074743721378462674993144443610334846505396076677344003749771022508129344635707225899550617281678929996028138219876549213723554114091173839715183186821861091982529589051891573603244130100967114445514966619144982297068423375393848945834612382470411775067417914815259941115674638427443301561498844881679206115817840695285981453062048345297339468097967949052172759530859732328191460284700406300320843718488274462600529748624508988614323588301489589719964269253196804044665874489902174222419612544570178958737886154530063453083626863591707809473035831636776565544976664893744289367189617340850543124421806761177587309671207605890143482108021354019313558086608444088854403873281387907126554082420547252796795991419806101392428927777428644295972429912119627434305225302233524592830824982557928961924620600764188207649285850268637092995574201717039443895583360672036926762135736101123687547979258205295643532201848761804746660877424936452963016414420001718562328985681146797323704045837996706508696294916408028363237294053941231670408836423065467564824796663109674505495810274198633451513221383646011634182861485022740670427848749511396809424006018328760293961681938281510195948437668790744837965777582180246236018671547022577242662818022805285739687219557990091779103817941291856179469702183565856535300642917368408018372743460753698841979718014698246520623659322475170637916367879180903050542598850397655270389217614656176464299974239715107382248427525713900617714985481171484675872554267281769157176013467366388690133502995738786670984668941153417523953984517522110371582588219340777946962423292695171054827511119023080706405690405819740112789051912507581381188329337124846151301473728959826946005338894458382749548905112841292937084523042882295467435378889319279422184565709538941932558288400611650766667100676228688426895121846046692511315862177650636820500816129762333681095188949539509550653450554246127381196750437010082794115967309264385088896214133748777143158287731898564600480245607217330661232829551146342455833691334057482747250906698777940362099322529492184643918809517190556566237226395364305877465007618751998133880101273777608613390920672292867118789824038229252338455901799756840688447560625704874673629795625492334835970166400002846454616468714523284848181340416553383481727128562086867338566549950119133418453972148898319826868862977869018938394412864874588349579224208041420113598231067724319367338126411511880253507873687028926650597131833109959307420971716479569422850721901298722902685064631964907587500000146010440928384618108073113871974241484750097997405765375766725328483971101856266619059552142694625293996734776670348434572827927105685511729978001870353947675915850169942579640036536264286497064314722119618171361090558393234245357963311596798917378500738870214151045356061333802994479426624122748567737606614584390797779533046527155984842875882616699760813253997840693486233081386137670729193314158291435664629113374155704446622750634394735936098782392212025621955304789300967187811627194656648996238538489553308830268511634871475744460978954468847606919461093245326880277961288991423491298816743334702241210471866760368191582456017546435368291310474299525188657805825940168861343666941967078015066546882702562791870598895715816636904783643271607239204801785555245588196254761100762109953959213447048765264686412044183464235065015075850278398199358466447101422442969815533352188721915392828005026059434832572076696390887085099610057159695491699333303722099568088741909232950329419084249384500810687252808901446171952127209694607850959602482587274332021551873312161734385461465540427577098030230902131967327473804274616410715353229521283130013775903224536349355276504307663815825435757992642724673374944998159847384277168047445514134367906102937873002487114446655630796776953255300023831273429340706862117195112588698214363681939969523109014164069495100347902726669157214853129310867235357878645062598919102366091261564586105611382699067600581532228023168095654942684164714633037899103225909963866515085367154170361241359074355886049158076666755062995288480125356898681643545898441732065684757129781127427157768348369196007991159334282018840960966668024453394800456282020720032723987660055412439280829502720953637597787619590547611394100389490024262031710051979061252732963992866055824180526246282577735069249253098478674741088218705695920652592362450905854669788585105810202825550652195907505866930750336331266041245873253467056856887882340322944847361745564710313300785110891004001944496732341169605049352436371889153528298837855245261872552412680416228578157939057814424875276443093451349619710607852312449495457764489584203365498943734507490252588572258473061491865019690960320232494818070876421358095362862173125134382614194225426205654162042048310006948492652773871119137309490238684087717595029089402445941712509515256884365573711441933346291883759814194196558254854901554332161098562901971610919135654766207290878709299302794133186550462572385275150082898311990775595834331451061282908116081477319448763799504277322100406605049184425319823908554555741476420770605262491163933582374550867159021339158161095487321339320565711732982046713593086040275867284050073426449897488615715118087721371218226565642532273917626081359096527776376846167935003483975790072854977711637667588352192708486244483006374257405494811313023795879594295614309588397593566290102308251352135273513206885254974367438295765267583692981393469963774655468342728756640960544733303756745529446838099592094830350880420103172458752161724677323399712663695683196757126277661724961141865980712821775823837500735718715036196577060913369832404167912685453423845320149387638292825043302130051415265725007060551002864965247247932139275421860873715121844571276002999014290689060673583519333610174626992984970032917642678762677473914239658389946252534210437481457626935725439110329102724390277669417092897671511635402036458880265538250558508288240533025401535220132322934986217676064000999313810441582392767882974619429068440747244263994122376536269218026662173078202160829095480864537204051975644493855362656339297087933606816538596458996729079454720350763984467326958137834394968570566257887608402162054279451182861772513159590741135082998917030205532140495488775261063594394199473575982840736761113112710953835843547072888152309769809633582644793080764619371379540675004231415000411572834359877747319184719083983665718995718869111222878923965354464906144430881527832379703207046491993215597382642507002850633152858362913100628622386223052521925313356252095657520625937759728147122088372735266674878432764251263054890436327310104404430413820512439413305741713415049039897943386815368333098467084825478097513280304592812837155837669869216928153299507562436058656465643633919647095943737609461788512580536135863195765565677391281654208016023211350414755996777615587317224471404867752321745019763416470641808530795483671720791731112051815283749743801651546051386493521825642440263289069829340563106462922019358017499046118334013535390275870626700275636665420559110059209290304739787200135797389670004059726270625584609285900270423492234585331581387751683080362655942631847949927232545194712454570651566792847328548681964064673895520544671338954555244598452073214809252737738043629796930448303484442702564621546212107113909427986641356972581274622659207538053006629489584999371550661192760344190399690523635454930669517263838190046893071789165365804464306795453758469017653559186508873257278761780920414938074090792779318894646838166734322766792445568316200272105048699251218411059557672581082681442686226238291083561558536405499962167831519672044876044702972726087745200363403582493189314285957448479786585786443258798299012559544686906061451998740958387603060955847408423358777504670396633869080754037680782290045517766057586824771388367076202341349878814049704314762075029246128619192251807267393782299259959824133252197392897870861819621625770639360665850678584203600171126217063981728150619313914733959470914397510173312256274731510660678754568934406847636720508842418702401667871029048715521685968508135225055358645949350879998603833730525543366005672274183852430122331049304856626998821901134510227645153290350251933331016966881384571206878186221660507919583227873118136909745306211247757782640612215735497365039448914952746701348614741952908493981186088788908597734269563081045549842655348091813759182891044392913841621128363676363317818652738154120043814221416940976473705637204913547785476421914758408354076100130084411872472055659870798738349411732104331335362302871370075218882322106873698916654811079849393302433603576117167726298821481732354560663625937579040703949884969855520076249860505690820919311724040495968801161682418620140590446346550397102181799161300249237481733044808856905628588793775591420364841237408283974883059512842059609898389354494672413077601182137425029437234628328217775865544171272233992881335180477542538193583724994809857769663263705439889879741854575944951011702386861879914163029006930865570906697467886039694368476664407261941653814966921181777591786690087739740818502683944130946164805648859353177785307768982886356743165518761188770138559393882935336886247276799322783133751102096885217046119497690573359585038081448265106681220100338065201080258936010080002267616321948496362974556387132086469556915737565763809741663640362593506284834693524628529780456835279567887659469535380382181427198452806566279829266761401902343801611343276197836850993113486281721367881474834493573814065892138143116538697349865230990506652973873557810925621266519186337912807306680455040689236147631474809296363313375332084341383674953812258678913973806519611189839715733815765688096524773814262207391366148225198839897236178496265863110955205435967882452773917544708362816041318380568718996581628647183764024686145894562739756764664639379923246751285720983794307282295992825336163953655592561056081759828979803944415923656384494450449099121799456937202144232477580036798782351284982365279639577285541028456345827235658212244256546652422392383365929510512305970835196431930258370597891585448522280722626316598105688518539283461752851754408038710805748504216041070442174008267554237757924862679826525426342445335770392310119406923345954449936940662561844272942014734128454629506288687407980868657911312112842888045581135815011756199185533952559331763456114553454102308941723469521678035965585785424311131114349421418547595475089590282814957972155339786423209552670291073732832907563117229817360982363030603901543781927583906169556101722455230169807164168085695834283643548256298412829447194990410234662839506337450744843746347406265929972338846399248102323710911359359457216753248030734262924475486842094135614523294674217691832588142644318607807702502582715633235925484150585323235486857100518777258666314404054150073103485556462079650209172999815396705636175581478621765530466734399861498290131249746853605029475435418867574533652619340402153404524124058895769539195908328184762692110046538742925646298581644434802287327760037084055304073272190913146859028276005235233392868318486615663849865361777383945767142327221899769342358551856459016488483233120884904359240501530881130768314235704167946394983613025454265394431231201820847007104980563935948622516689810093732054098891720416374241236771625854847001130365180155372989700562214635962015854083288686668420421758015239980647764731719596454954009113749861602253322150750354386991775299245167748972034282518775852615500722219547033873644657258049220933779088311630709538627800881859167259561135969383997001992682938982483878241481793240966671897160627131825872687284356129462820824576845666419822915330050162214528071662300690134414869732143123769838984100623747637573500623531418595055598107506159911298250092541749312203523002577828658224006390197413580816930813452854765995162389824467806723329511673293766115582994103622436159285254282127791022718615170823131018294086426241706404534352825630714900155465558220220992097532474069783996732363153007500548705636770114893995751505734881318052208601822228983727870246850379622740889425431453513766034670954125391260358131898458771948156984024309201596334461262318993016683626395185819552151576582897968842382898401666927418176644876943605377152307427153792656874918547472389819153190497075961266441447996150984152945975170173060489357177681164861932878657506695889808824343663198669316030384822641862748638101932830903678678342655954304706445607258890230438644359281357895150321419481372106757793132011194602909466344370939655752762629792833711850751975467695500795834312548088849345418333097035075191512642253716373024072736066108407022959613564157764798507198838018720262932209829851568346930791679727981333387039450556546830779902987700788589477425764521971063803645754776522813479942819317119690654300870329363279099049395136651717976862957786211224689525226346105700935280632753301938005362707879566652153714729567147775174730725673638499385633613093566686532125484764568837211523213881137194887810720704774393201800885608012622275065518540664856741782689947160034268217500959495880482856867561147658147394195468392582531478580699041672191716801284157477900039031377876557837593533188391031533954717754379639112941789973019677301138652824264628171325937966638895363656855215395921171591965335460279262862828163183092267308952485157041147969236311368337788957674716224102058954226413916097150919769501876053688027933871360636294996419470826466163557889643064467463068939059569608188506345797371653976668951139099363227552642461773700499252793480430517804778754701607029539919163164101383758353714593950538546158878315505512312126514302344971623344562224781010132439929846433306325280898492271302974516743193915149578565498542443092383839150950086271293118710130715037963518046088912953013453445086393096723076250727640281593651293806477786373543859892110511647810899667257860850115061860709225888603298241827481846067723065905273277596904874886209289928654302556484228494298481182289254171984264949980963115815008919148654563613312245075522712281430634442391004869466531447801808180816248146232925888692817215834525193149931546567528850507384832876979593913877012033472111192356251325778577474737216350230338288504820667345544198674341666267746746952697541840798169804894026563852800041134768841101405902064357171739622050466893335749000546915573694998430666759402616189289638188755121124270849334208027262352274903687826709924099030041280665812668870145401156969054386298152258284868699562664099310786429191702688184690241514525581879082241106073683975398331917276100220864632451360524689924117522291190013247636875093294499521011331956988615511257566812246469239364863868283473362150454337162531269761054941979106335711613180678673247101535646588372159464468220663765518484295104563669843634320296583480401584150405996844286974670014984713154759189090570277130211095790121522120994312997569267215519279278164656502153950212329436184218986822333983281015132703081858145154521294067882143044186870815326983623499006763885355770448520155972952583383459757616073814882043116967263388252086676717879411832201328708622363817313523363109353748274266389363812314630090530135000466831829179330815466170081319780554527277426992379509481644109120471386005414191875162088428812631996381377300996871862619945874434885420507139745335981936861051404926895409002553203751400206200894596938521633537712697516347119961540544200203249450161396576215430327044998286653342346395708384892125385837415839291366254182088018727494139141162250726011357000922846084817409492428485605949179289534219736511076911913266658217666127911560167268737402768929162578845734434314813119179940934153148459154863236929569907299244209646765503819600468313133703772200088505879938531131136316133689977187773202437554213714717012205301877985181171104235770521767584182532066809878350580001675002900619129383349981114806223052260446321793575478107764429355849154184818749373717639956854357065735508953926092100941202758323103920159568879081304984935623294410836819279118521248156057027726336004175217932277529294752044510372158829018316607314273110137929975413395191202666863191332304791063318385649684767955906547654862244780655048988533578764693469581441833375250587397076023030211397157378718022077382889287642728716662912107963155679762398303055024612455925347094364213420420657694490821990967164240156255041686999184523542040356124075732049825674736422132749374348735649631089734301769498134778518290371712760095835701740743351118962577366178004361366695812674502444167881099700165918563194012649430171259761854721572342668768595582728596994837593011840896444159705462514276742386272514998424621806612415983246198609307430900256913443930741217071261171029188590786115379356819432984861098287745611709995653554996569788553005233321124084695735896001488066210659152780375906221290065358570119379182618719723974836645213316406863108873941688799025951489983131465140674235095425448226524363995014339037631411173852236453514562196984634368033555201782365313494950742279154454388154067802013339422808014224025443238771937874310779467626424152004911023613865008000598367205826691869207142787188307081670208691417061477812504786443739526106502676847682938649532088030321352675728866825192930326155707197820232551571052020272046137766973008324549133879535358767839728000186096450995850368691839338806362130641798745100488967704500557907588372257864662995376120391357954840692976633957698698694796692728601482544553074407030461979898781279283069303198384292945371304668733424551967899023083109153673897717180117148264859510921432318997047348504420831354847144601538914027071175107653999024254505086040973844548328646679763092126339238753944672613759790541178579593965303596234477152808614265274566257956792254790755562704131607481870916509755390935499539438537490769037696037613233386897333723409840063265761973243419457813231842137580470483236692949032381972359925096500089110825881267557170076003762626266207203476666924414381748937409136060569091222688018652448539570192905241518689265362284978721150391725776815818517519874131429849286936123572719711334666339247772745348051064001993632793304185158573179067973904515181558959405351656999145316729092510044083488412773047956822341612023508782851650233703996417821907687813898015707875981846752322485977196684942075365624436493641438445349030243770379767805374110016634636587824394666547094053894267216808289024202611908521024718890161919670698576773398807190656588196479366276519802057636549935143938901537289207077338741536957577238151920328607231056924010043325728630922468538847857514614583678831370481141516505935722359501883168070776306571312413637468071736434946144811347701547044366323921182394612702776274263506904445245765515121820718419838309496999909899424446303348868317198314040530873765147861993518701004491346192090105733415311935964324709180862121856394421276741250075895897806437946408458312253521359269846427667145621297018764260838461577347036769621264468204654888489471114799866354085822997464434960726358639081857681870212376156978132970998035112982771604477123139985242558782346802311004783148919667235840652942840993705148028787535678971140720030260286277938129695271269692065672181658878444541452058566167510348726068186830754956198200118787957047964900716455214079250127382989036142385293506890412097584566528533029163117941074333226529332490489523298858135746449687526006752860470833902984765380310482910459819251425064531172761290505440563517501723697303813166298303372607896760566931671931243118010213156177722399048863544889160708478971615174705058279785755458493370430655612869292939668315964701243224867017202169447570155597416122565347420290358635246681097428484301898509663508139259838686037966981881965711534793444537970542245389042957077853789846479730499312656706668068917699024082287260758586943034977743475525738310406136505984713003542006363459788907416242667388017736763441158354116177949991042703565020170956621247401204596209887092597981977079102738366155119247165327765982049538803436439636518699903827698558256514906806153935234413414826568270935239153046766459513764909753424366496994390373313813254366638189228084483432203589019994255435502739441249055464489287282929249638276813084840950145035826113397258099892483263904961689062993829807836289443883722742483758970774504158268246757463985926639065168708667664832276639448982865259888801610555168360977886132393741892310079367136262583714093950160481164488592420525377292715910697596963976077702858114834727724622670061267427551925236161417452664117146133711789775533919859735771689185377877021877552558229969527269688937936627917823054308770287818463884866177048085261759219926580328047094395827134506495908373802549762455709858695293105619257280923133496237178602145002537380601161810647810912758003259895445738330170200649240367083808962488954771552171258151908779440368958838595626475306271495384927219275645264629213442202573257043993244679805011446606340625518532479102386475438076820288576328635952752815394269952839283167223587605689275481188296205341492375903592495208996969719851440205536606335455352270077507894774277080785276866434668231492127941970554483515207444151776938550713223884223396235452054024348875785583194405171777419492534521288070685427094977487772213221209869903774260310315060190346139093494249644075302194492890991797473696021838073769381095276926695932040722512699820110716911760433453452875004037512865261676616566992124603187472168963158815393555440099272762240403440726505928081416990533532862858377076031399373663371094628927880121955665394384441297265410890779010443486824744300803236749206659275894153432645790227153574718111531003084647651442611371545126989597551754372424385348303107721568680736606092896941903239927441668418366241431828801429250091652319003601606701216338138518494639024051432638272238327816519448828302255977260090076288788650023763389545327230265997638985208807767955260640586128302524433115409181922579897246261171107982908004428374095097632031249345538542811065415551032717415348891845493343330794582864876061929648014199706598632334449978657247061197753603141389396678089387381044342042313337198622622407536978374321302122011811927342251850357135241573088334708133021869522496335507890470920592201277445167948112191924507277831070855971733533406787045951735120690708134808860436519290358129297417221562353035406442610558592576237690430580602275709729196827399655240701593249452124175465690660290017015502212571655620083224462980769408259349612178604947209788321067964352691601954259790019107523904984668297986114277460784580502400643024796090881364189097828203522156771856023377973548988840141959587300893877398501168698541556257834835327383790684474474448293845660548507589414023193533172059458631519089799410040591970654327358879046624462817790352533472675823562944287005297547286881822199371437266124453962941060066142251444424317326788593029682400245611673629266370396262029785564611740835317072051726437681446510845516868902318350272687710918120302889479693719491942941609661406503861824372558297096930338021233265528456300429496823566774455879829512400143748411737742545183853316875710517174989928148544844371715681334214567643606295212936378458778560885099370669086939244439572744414133104545699201098114603232562654746703117988522856019775981362074527623536966389385184135768282569025628645615819745969755466104300300367069552854803879674859209011758175576750109766439713263803594248151495294445240340517075927031926567601757826160893899993765897772174519608494691999505806252893070161658365304955429878568434016696327616468706125009303414804959543228571462398791373117210236125234178099436184022377095693363918634257698690389563892199306692198492795187968449374906771259150670411868715259046591919496618022907069980542133891488791352590896297285996806587909149568911390848142507074024085467849198204550522319885559771264246881618115366855440750680113331590733395211588998326391989200033359223307933827266164322032419082905947229426333708286272972286679735794030128525654453042593527178492497624582341904007773943095357240394975761834029308128356653083745049309891798887245166173873331501700712115742383081284165848258488923630751234198419042139509041829789261963138067866875791168985713214496037127982284388240629807158461269237155001696440128627117811123241518561833878528608137472325590837796242804325046486224056989455170151190729135561815245855884811521041817196700586319559582570597146064636249349635627667798655687260958386442703548609880771746418571591303122405142133400035089751752977205652710392612042771383878410605671697481349614091032240889509913356557114609134068836003119508813337176499115183664949850037031434759705314505035212919577580658475771268933045009737292439177311014633848256499088023228601135715976676634480249210107859311034897742403238870081632794315588255020262383177534196229458658063915135598816168845148403468398168542730271833258660055814552185444226426786052596475750102321955004205758972971989887500286290187951820659184408171672702186967721222308972257898077422047175487536485265288385874883748090738616336578699070891813130752745929557004486173950898640701894988899177470434972727363773315722592329449596574955912504707884986060639335263044493459705459499027552572573222638488348347827870991835201447767325305948006700083923560273652443025739463528264860863683067472063841902902756422911672434104656962552492962095415446898323138259857966060096241153776450199961997333950200412372837776240535100532132797490430199174279669940555403304333973400133331304188545851998733615451221133255154466030108867481492894827331385245545561605280146847046736356777411853896389083273232695144060502018706399621743947644598689255856429835619490507724038967079792339637350681406829139449719158278166805934633118463059386296467289405367416226951617204976760999255679319357655408822241860272953157429144245725065748702803855548035575246850458800415182220689831743207269087952699408425917707627213060026389484109136475683058521503793211610352306333286123134900643207564598213851531498068443611880546207034615242457625272526459032259518939793972035865268686674153178894785034035981087026958376965785656773701442339751650563224433477355515652239662408366401420638026578053642763456121787842164309873017502346266228836265316301485941986441697929371577910278546146435138701087179693128466092382339115379636386304706546822293107159528229536584132735955629772308280492685086352447644039847332795991205042161856058922748705931996674152529214916443195932859061986426049108644325671058541606234627464770796886394195244871563975291284044417488510002628896727104355022593127810173063874147611815478450612349895120265150530840199101239694184457305104016564398521355370134730482276180757290894492640885577321685894953354386202876694158254811194518277241564891069978406995322162328966025687091795081413487859737192743679261608902321736384447031645151327743097303385891800156916120317665670958922620382025211560212863253424910531505569231407616011667638546991904507769384542806046065896734705088974327534126695158155493244765652617899435354595415569590255797819731514286615529642830975438140367809411034776116005645206232844076493868963824736641656489608321750995012806388141980552461845621692445758220875006478888020900842769520098525592225569058027801669305399865324050216741435098436761574168213029659300448782213832242516078694541119121341678032037472004156421550201086508813631559744909029295200092344716538989491122720424739789256565570836228076112965712371544378698280982954952330745441473895620556624904000286822300713145597352596762807239489050674812875160396355138946276420380666150634067685041263048416196813462533807101612145099300913744792309044275096336881862002217735990329695755605502600463909213693711149194447233063837857407611245793854606046294569586914735125918333974746484096288267981789775186225667908768916566788284888886739340053755952306371752670232192519501014446152333944413743702411423166348481585920296429389784153882841120366796060658463628532506392365172073858846829339436260307939188317330105126345289517141223658027009470355308819775915628469800438861200607891037463227940683114201512301671487009494982907778176081769279840234409562666931353086775688783026593956401234627994317241665113514786896551695679341876598036921493283357908341827120906548056645038632055110553850947587366836828812679498190954278848622011828148412096225475616879023977815111741577020775473964949333246906661210012291252504965531868717431581160958121717482757000712723258824279251841648153557865359158657766200563223071321456480972799240795513641654714851903055072492019133904242191251405286240199358300131773141775786802584638906704407428898845358461258456898359133377620090976279052058075668782914208387153050271361940019679162788648423301309675832419079497396127585281065215598321083590262562153351458541203397134828785938732999084527539619612387718062731545415911754419229160959358181022808396033478242442362304895729001489422633339826032144867331323740007032951683212133535946463412113157464486358314934417491020436407289074891213346734979123058637650732450629286040427101062988529441277254900206278810784283612378582473127317858779881278959017290369745752158692986754922210366034103285743284076729823085248427091824433907499090496341873112949033630948699264866431026394612617711247769678876622110591673795807669282725394507779876502765210929448044355397488417756280996493657871488616077414806368941765878713485938264417637775940304281881581099758700634707506723423827993365004900349642944976632889042091418204819397023975921316291677835892779467059742223849488600601143312976046158150708065258242175099054162514362243626620566841678783779085156245977205891898089709495186523525523480068235055604898338615135362377788787594677808955077904184704778760832253266736985439066830268158627627615529958954830242994134519055450650362261754898083979400485614930563943997350240044119591821368362870873397923866162398048979538969377654626756497646174620889188331332559243547876259467402934109134391872672429035076279124566780776962398872068469010780429509636877041798346722264299718937122933410887493360142230221005714350135782482807720701327274570401810576880234374131720835084630623166960232755590212287502215079765928099545968705977680024493711669096242888463938735705533455584055302190378943439859221811156730413556494429449143068918971751040661920059016122845076885145539462083820389007028328234420328424718107734164170222897326669048317886026506378738002147494331935933171310255431778761013319093825124618971692222034103362315042070726677727581416173905840992070377580564115285369728911915680205661764015817382122989089278396487026596695935840736893985959423402701926379682757321719785916811240397750847242344135992145547445353413488549565838756976094751331366408518017655384159073967902326523391007241528350471880239574949250899497062558370465463313655512205425753428085786403193195908212423361876604777593690783646951257957055010584213057023347953561076571231428458354060133516696712244764222010026948328570477106090407201676643712706677653422978515427827341835949639673817103761072654699901146381043256400277891226640996639071158538727088982599555872918575441410290121016147509758566678782317106584987781142180816203144168106183214307564954912159511904330056589096414455581194978874133413545180512363550354588684969069944125247203007567825391627764438574579145050542869976197728645385013394493956066362386320343890950493647292687917209194503210663090576573144226860859287018119427008282210372096817690540988739274223744435667199160461255139606953403717288151018810457248377113899076539974814425494938851089121006566181487406804193886632602782390339401316484758617667614141702359685801172946025956228232415901545590945515641332612188086155711216445228769503925145816698061546703112320470998339227440658496654970403727261158408480755499512826138782834157894370788624310759408830836006971684525572894024075178740705289222967946770802555868890790116504982339767935087572483679740164932429057955968978280302428120715582137631932481319359701204014094612287414168782543933123948214767534764020181281572337134733138999454029680066162451330329439855389399895479125318215958942516983605196863853214792095012412157084206735443563456115639292510087493032187292106413295520843346893467063116329319991004159015421611181890103935192284358173045210281757613484091614066687017743550756372153913689417677883472739191313635354133199766334165272336318197018369368192302433112415411517282657097334038259188195445377784715845746338513139257094606164076052613263014049672066083285236312516020264186094622591029948946481794949587307836020381087369272341440775272411477541182317294652442925265830282148553025966961829087926672288955561414350550303976290419917212399095758476527036616187118874594408268080641226780494489557037255743406091920922165169250019918831857575712606872774000595646702813842109893272659209998182536843581572523576145392258918432579124428778061970239211104038169500249533069190256911821673148810716544259570618236762813588480201346723095649788671815484289037746394381124851960482323596607650034612928209373513343703865081042695784378164122266367594387969549315400820650264284771961167343700079818276177424316530898579585142929688162308329797349769772496893503041241226314389211930397736605742709187071795337716983035862482245492284949947788566901043638511355482211613593830101452853602391640994594305797031470369034768399561911219208920648490085434783356028395037887496723927039092040073940507227524550212525648040496035063702885548875757900987267171320729776039606646779851784094404978093903650607678551317901522592906403251670959670710549865904070881111172999799728259762697567406126310409702422316184190716663411929863251494440504479269859104633747044807865936047382734563424347962206244173240443698503173357746113916777235576079045220237195600633623974539514216146267465555226106661711348499333067575317701288517784761045205254051970580677181261273315634865262812442081136510394460131303853891677663360930341567266495505938090129126897535393096065618332156996730091814763478571754906482768608328086616675385109832308870996663676218558947976569780847589940669332317018057301696341585199111935656221989782065662864084684921410961825508846661875330946490066849301486900872662384944960706037716881130932758134918975552333450652673352522961117236656398502633993436696459485141424455849112655889743889372945968724934444639342465927480774397870368931179253258238242383913532888919936113160467285262224161375605574070506454188766569552172581161548262180235107430067514538944121122987751055127895091207499849313818805937105218468950147132812123086681002511254577600905661036252294181145105083707433689794221397404075389731218458802672891618741978644584536936892212208606930805722708746743875215477366572951153181012362910701270178187843452834679745954663578526083494441535889263354871279427729054783706729874330770611357326872804119135837718198407839977919145862666586007588754039754741413163716450489154484322345582421823338299913283291278874593477687419424473880789890553502558547112753314760230903239214081732673423080019694491642217830838279579958404726326425176676859827139237209238666654653201648118730194885368246121097721964853217190913089862573284856674969838573406623439648853387637000988682526117124521351610096382455186584766821190625310072299880293377728094302710297918409258868433600825048797830802487021792442565505411043997684653924124741549935030204679824945209993245515435925756577957379340252651906673882303203208143882921683157083003653697267432665179034795774729223499809393874141836768899924285445898407811301289843295363785187744945121886092424770507548412099764186582895717577518472252236096878688201982238239594899544778055065591021521798031713688696450750054883605338271241185053570537998703516005422969040268781699740694529900480033773990805515999946573674599904877992828924274894518911828515052353540063179807117124357964100807715745916668234097744737371961419891743212330574476710006302861156512851908322488750388137450412003172244303336676727319167625583520108712704422876629313724231491527344587572852759832649247071718097037449025881231332004070379039284400802194934987331098648172033377446380496396111593579807096614173199057417253146666322337337586886807654244631709220429335474681988093327105596368679902461148497678627821175626910778380098233970370604768012308052565995590098869417982700380035458085137017789299689907037311891031397789652350205746536840753947753291781214333738705349341863556748653146469339010930249120132525794336580523781969909036172372737070358749981226351304653938067303954985050746751413483478500280300500326642113587235249638182812858157067122483780152777260791125418350053479873869548978670105519684039412926363843229339085143928131656678129520066029317190844074433795465301477358008016417856854041469131106657388577061743170286685074474828780487136889593719482606259730644760632751463152389744280343580797067540458989343788653360267609883004446493737645490060842266438806295574518460342600393391488266388299745945545099885135002742722720738438344389644728600363282231476377129632655407039811459435271540572433359623582725422405387450668985680593324287172568691722778847793942785687824032155085047826402459577443375015594963717110260774468911314120179762644063135129951360181193261679063436770259377272447872825081354791270652762972383766892021706937289382840352771920185267864000101107553648183544491843558891229244994291652940412755426229932912397562443858679997448713052006684493296358555633851910997369586075880895062560430722047525582227241530954392900843507912518382780634086959976283791843317263775142354335191885976746265410026043339096424950333905972167154767461442477132277312127015832972491696719683351880572532536270729590679597999443058840973455595051220939815422845125355830154765936145893214131204934235715579150362097027529280181687938743087584938437980980917277535419658600088632681712970463625073535079262702362942176033910898569464131519998859197148652128790254781895286902381010094475553482405859119279376958284033535433164783987559229090649524831629691621552480048097992312324802184025105424275476943431379529921609908495044416100295406221687271904807168263134524533477876849823738893156226408598960539943887424151245563994330909092443816327237872085254641270956055015549800491273624186533600655772769281364691976113365890841657483406646366499854993529580127394338635041603717112145397028015078807554654955497968894105197227983016939292431667379017293163768387597523672730006829902749227450890148389119303959164602506305141226300092340411533404303038664463132211817027429351271733611514002993791046746372396153989034033825151279839072807599381001019789075837247374934224587884226132364865765036521381704536403171659041898420901880735635540363344756347092153238329645904269086012988146865699564064333786378383838078475828944099772592930357902939197436422687162635887732974525228749990069680232806172418510029736198195228316109078518353557105318860436541446947012943456442051776265720256290924103778859702172822229369878810473477660267351190908727930368043778051959468694930156255938621546106814137763390004640578280858432630352638219988413836977668486123784652791556810418234755443874923127736320777319750954697336416353781791484240323424198503969441673322769533587070015652787921466873206674838485077215906542592474932007865709134854215675395554184341307011508808067972521338760364270956050511099020957890336034801791791640790294391009576179262318880554006042903413435876877938768840478171994671045324342830637212572307640470163827286156559113813479620903240764352192696457900847971169452489951960527094448962573891154373430929366019892939744412420428639078056594144909157282702584895838854527851151581977572632032332461719843580488199054916174584005527270828805727299419846436077562078770670149705011381076705952382001384749024923127817002237283483211904642682882298263524971503395342871436805751575318836200012155219002381280785007396806470613616996801559611929161909445778073413064164958384692371635311800646831935212864019790414990217175638731583568630264656665357218392079448255592353773380726937872191630715973246133611409764945997155083602718776021142718609532984511662321243227045414262199295820797482938936846675290551897666189075902128728915801954710633121499556843770615016184198099052465805202342325959838592340746059327304380787313870010200053831371403621380872757361177091511619766014094936927489986920251676378244162857812437076250993598832362019402805004833447942993499105727735957603817937432584052569429689510061477206975581106441874124984914622648203873762273809348084970197876072799314030224575614222633879436857757909193800596062130351116330865627715552479244324140720982296381792044635973866797989287064970140560259327656021896674764325193678018397734355887569364616058302230749358517481129499341181443849800782625373672294600363107528900112194193939797555114717186606956459701338331164358558507402798380651956524955563342391395330487863396366825227744048839007050072841931498282663424798242316767204192404603178006349920794972750618669924867834675968988001020754460398005562564069374471628847446166546734220385187881481910934542668525160562644103579547752975645821564990793634928709540132282605297606428031657239421830253256261372421673001131142932233394910000365738761957338681898187962541405763302972239232391496486849508185364658334987242596962047837683422545284921854960455768899485153253199916501234486786272777074882558324552455766113384209987005705449106497973807156461295657232240571023398463401910730159709938920386175927112632936962608742661155864872249261217725417091865374869287878715088890967126888197133323866831824924846891038598181166850993593538782159504314312929753065496071182847125409419328713181234002616909613055623273131001550673372426303410244604804262994285007589604333675339607998893024895639189361835709808283364007915764782650388530934633800815310205899330765541319927659107882095856650927562509309637580916616759289955403275610108994755181233476564402443937453833512670992274675964295434546565358803759449276251793631969570752134360980856701875157430034661431377930474150572333502442669016123736752325115208088151702267129854030592837164042712444622368141647804483712509854664745345165624160817593933709908065204473390550962854797757531876485702433417115784144398952655788082178785555016853886277550067412344426127656893209988555497199030329083361529200051261943940132049769602888881814122624417760520320000931468140930331078124500815343491966655115067872501351527191728388696071791680728207675148681187227004108218828682719616829710689186712761810964363859196251256076342411850365484375370316679903262073145890579166630157141435517824754542007913474990718879839151825383232601887650796187573816286094232571210642089920940882238912110588346916426435986545652224696656070662538894117972256598640033868246502862960644736906113845496604343830798918551780799478247952188915634486572948061140465468649987148972567904388668358322705273627105356693396008851251880748961508816012522481512025490426560491569186662486863900143248231938203912660570573328289664764101845277537419491351644924915195261152112185275207232989242424601316600341781084337674762432291095964903416901175276423824505837091506563410193258843367507026120965929375801311362283485432720814034185636946885190823640739197506865749140034472285157736029204211173285251483261796742976843821638335233867939438888491015838272486431544962185439834848926481205452360186340569627676573587406274922905676769721071558662466862782921277933170553359049079217302244366918972700015706655024230937278030767744616387523731365611760853347785023441521957694430112005108126530038715683323508354171504976965520798437129502522371109387482043425024857674144063092173887905299690411870425334522064603407806377575568324932063582196948181655396140791461554866975779932441536497462300613630428773896800571364267747730725874850032042244564409778331406922383333908042310297393662798096972307031975836341980212412407089690436142338599282300509701861839841025274553177228515762791129540352441103692272931827956442667984751082543410213110975955789122309453126443176808677566041560944723796163468770605325921321802409822152007292323994735631327940983444666367566439783293567504745546021313614264389560320960982594979528466147316362045564477022892330391480935174244226354903738285870278648927558728680693477663478721142883645999727510394336966676693459459740794039445220701194321364183964174984296934195313158837317104995911962938141866615143747543316944826814201690667001702639795284465913067680945492683149837762807762243978828663637058459818472849327393898035564835654233370733408079302416250215915346361078999254417862310291466175792643768740912060315089507970827310019934236225378954745706644953590847348844469836345653132713604809515848637271360838489674306455009169709502742926975453752736753020855174019908455295014116843319245055316834193087146301792345201094401907593750107160287759891619174732002332240590119231494687037178710644362682992408320037980626744641215532165933159572503123300284820006938626685613154049847057004225570329619465040030889546761349812251819801680000984913076851712323279160319078658985375283774169384573928275406262206515123565528491324283363015372131533540406748888095675945270244689391019202275371360028620211874605099488821037263111318830710920103767754595064800278480324312304752780965704391078504072607114396879448590510069237368378561495788456419924444321595210169491246436157305807715309031840223578491292089025261255146478444119000919298300455530816453127380705852466340294669966774709336528798054844709338667617241016615223835768239549205548511837763990470981872407156217690944965976301028255175001149517129709879505219016729668364778571802310215659138639971161765008818356222039767215775608411291806697219528689448046111018833867542957372198926391037855968284671301920234585977489924913775390097756019224910128730765627687337503695419353411204031781934707240881649390800906430050297241788971196445424136784673808845009813564924509082378183128381661297610730371940562284176351832290130506162876559792116847053138914188785442590800025493403672824894876605498224608815793573855158848857097394053121577069789589532696883225232794327868553568964872236820282043794636807227996255355666160732864142913294898985642657267733894744033716629549407555844460682450072831687727956039532393795901371094286305869964505373552536270836997335056159255591528387374117451909055525652383008522952286796968770479286969945235310439314773141772221978443609884749133120577634797292137909166752422403744715848044615595513634276718787772994773501677512412674100672728277686871245091167196898005435865886482604875030012038276784770919689365451520380398744513537012514030867879211035134939271183508494736181825709394558263594805974458033433004026605590772766612942272570584394878197984954212967069753012664260501932939341435155965620389414342283106772658815412486642228911202799963676907184100258932900648686029013215686419281530979763021968139284873235805316135587882086623675405575922955279028332581805939955111235518721103984384530757467436991057999068355053636767157499460880775191696943652979387737578737444984307026484488034932349406907869815208484359456343736533698552309717012626150329928570527475855404955666763748730898995939568205772887656500517806371043346419686564912055222497251351494782264024273356101911007290800426833773232458836171223895278995115296330416749426076109315751021306513968632890734248256274526837795081423179028163674406041368023878331063351784213548010596474637997193425248362874299483170016880812280566872562914920579809202550886684721697548939294774579917260010393364887152882400685864169226486837919771287090712710413452208477012375074078949958280194181862472154119941262602985789044107485308815471275771807540498548193347926006135003729031846522590115079574191682606617478336294285505828029423141109596764658825116597566242595304876898306280482464035897111164528907684663196427327421286452957501144720086339168231266392169234161210743191793160818804542959623857464607738611775056412947936812114051518939936167133194552086107492449296514794409091441987677254816527631362216027363655280307575480947373743460822536382551918967790654747689368046876517853947349412555946854992606102773753360123715686506479224915931268878447048601561105152991938592582599654746095107258597058408591159174005571566275917404804859142126011761941869126352783834049509428092505672066223530092176089315967053906214876587231619046437357996868412382036693553858755157625568826258579331231555438995443936845743629465539291586675678801834859698945364041380482560308438852032006423903197837211766116158086806970891070198918648832917842591888622662899059721213051008420634786353117613552118771710812685102996270580233826670455326980496230407917147393340570421065546939170754314301520310047079310441088141051219008196163868530108870468608875614365368877164465446133107776012827424859177622966371285035122847982705497388405552278972681967284860356523047969721966496894493555565780509111863560195599612605948278046298943845266253207529581333119549438523812185033591774880632667927552088776283006984256671341933919514674626576810036560531270041683172332028654125562014007556555266279245405285552422624051344099941681406521076175150438238403419276585556971521030362862071854051366471134583167075506605818601811147648614474063441854692925247405848256735131031096063848748718879920688349162020492033636890956470812858208855390198075877158221841300070687480006181385805344544624715019579713933024773403172367212519760626317398252932085344983062394189129634310606030439996454466107367738982851208750248595987777292583496478666200570776228707775594113323558514834941531400351954288929161440614628209352824164878144432237531950736375888274659601302888143611364625599192307764792669406503584557618023371532537568387613349917817435400693671527692357895973548649872738726969263699924109710627884907843271349476184347120160689372164486541797056394143874485701253876915667567338259003126592529319025263255123514672307927703693209275573243417990601657600954384624619959560853525802882874667787421138354069038526231451749931146536333916356316499180520114912996004386237504942318857911646798526866366257151500321930455218703956479998950503467238829806388388583987977207209457402699969167404287217341744946906211648945647496703902070060777266375040968783302428114683817707024127866132922854868233995987107938214670219360963293098982940650136574496904451749796685291048040780222343563670691427641030992894053763701383851035016977667800790298046145592457104335527773178830524963857655150698614524058583725318400819707070952697923288821542778446664025130086900307813796382567713700876208670902597807939277236514712789927457495422392998384922642654883764268464136889399626512280140492865979810415718091290025067687643506429372420803285984160124698346437901033144159982160962242908050352204848316868493482257738895918143726168026427305937445111306992997537290273273920009814086954632911697002980666173234924558373277151890065300063773108281532839021379742864310512844365629066487147322463181018363537970233006232735544060832221998564900136067095569504255472116170607070748740794839806942765236137462272994539813184886218797244239468060435326790443452669948119187877326968549563210445052511730227204610868135014085981877838317851653110825668460299245203370775001111858769217183645620648596441567617718780676928688896332440390780479174364907967781762140017284197917595328224994142464354869985457942389836190655137149166615125100832976372595952106230794772865464117528434227422543168874714742609009436260849238570336290801605184882001712906520115921405660652108789108940928434732499525871016864941619399354447384106551395598324821953823707320663660240653455273327683304786554762446247755023274091148146773432063927977949912263746958729310268226878690230673993276417191960327677466879426251848866173812734762110389332150400561846330275556006247486604658592341995889887591001956363281902436073048046605886919922401034544674738791358072891509066252567881931207167418642142727540634449800080144918019375246278859674404067278207489541577460392671027160549058482335758917693375925169190484234645256673112437541535165266081568222007603703330013459690466493949342995796455721998442740466517479033375846191644620733386703809305714766265231752166877396020681831942096335667158933231889384655794666583458572380105052799467988888901923460745285383472555821485648070984199184577092613406543314123058062098107014664015651713858963429097029915134859220613991567805909982797175854370527846667688086984732744220107524184866228231602746517323209679559395751992185488793470760993367139793413272029344334120949751141162310845067590566258876015175568191340942382391009388574089681110467803376930016498862283546887956976064604514008560994755522253428059258615285464400344374575060751859893276137469849433510310560012271783729637558217293174228208614712174167201559395058225748369238179074245306818479445005494299953565936947113510134869766131888866004884723128125383066389080078266320316580908065435411088252867581681870110605149794252947865063369660411135394337127452607917203794150876430698089511184286655453155301190724370583979248696852414791931424474743421150835222765399759198628728747087601773253553873818819324693334081261859398065853722224823549207970066340481133898645210822328574695393265156531963068630538657364722400552840789693572647093494503070084853718370072817239047800497958243013186389055465405157494047956808861407765249947536922986078525857945900414719275090766301384570141208808963188200598952579076842168591867182678059725450097818967002509214655050823314522956580138911716774449843575589227869374635304332503372279457273854918534659019894448865056643624717767556021654985749644138542427033590801578383293856380324720580949531911395017582489414363734249348386289320842060532352150859720620850839699849050519181783186316046065181307517610346800471650863007908251252647273816070847696143807847658631926233209510921405970938358535869814076590478313316448628740687603986807583169786959691351808980058222555868723662628165627012456296460747472320274535009844945774367326368426904372189704007328646769590771375506476812213241565209290381091845232242126057360025083916377925629714217572348217252877105864379470758162662879159109515099493373572157077455029327300682107798379766818758973269963328574835230960073931794066263500515518126429250942901989313610181318394070663085665128676456689695935746005640348659435918031126245314009700409706009460929266292499125624194580337550269304888219895561355190396835838811514021476888045702153861229744495016027357841620529446257132887516058003838539532762898771878374864749487023863123945170553977239140460821533040231534120943733572592899182262725365665103593288044012572775820860602168462855975546219627157090154587409567934911397667185764418452256525506828496619326367279052208968990624615788463742822113170603706179190326695622921338725287097120445970663276252964877216172392278872789654131306257218609347266296019623099114070725665514642067275102693434814125978835300793224915775447293637747899003755959278772535329106952707036157806603822792327284528997523158685747187364061235158173767690234927679604844600726044248807729498201045973437035132887150300198454641905810800224679849100723047643342325285971076336859928317871030604028243496854150185328520930380680563873174133350275030494251751803872774431554824264596451747020332533798439770316817563631700072581133567038030343499933276572763272794412823847167882992007992058731411395434023461079087649310828901190021156778296877451423200724372029208444722627266199575935718166619720807980926775774151935068969742119311310513496068689010221350862151520294412012386317564524825806675084601671477966729414285824350777936680912072006826247632848934556069009989012583903316358268795038424736361815560746680014528933163797286075042411044210509036942412769729289448053346728025527879162324046538836882051424415340698177738982434854170297765555005835174086139738927702643216210870732898522227486616053162421097162603058830147920216774049381239420875467033317094170273632144393005582330942978284384514571873608215998992212290109298756238166335918087942036934520160662955181260688490424454003710154870194521402585319530001712392419088386149723351025624098268016317600888418190128960897849434633988500235436832462335170136935421169158382479167969979883942123033517849912867369727938745533460781112723424789651315335611846646286094275006717266507651322795946535123305088641611636690949666439872358917834249639322646569006636424918559828376348640192661808066077208000568333908512862752589480016464531348208760543307601423656146382793285082336227574253001788885103268436713493613859174577901410321837312658762714942644911726805581905967760440707174699575490916364553863491582983373403649322483778999037975717206546242064403162176990428405629983942946207338082799894262041784723996234428026411831241690198414225199936131606827133811711124388562841078751199652705427141886488106126608415359321864584021841741894771793568842985576921454782125160600246237866352335388952942961135763176918885289748849992915410936078219857219767444327701234479945510931145971075986681328470893967162415254641613556651133328154965874774335432305495998978331548225464840990183640611474768014422466301825729668799593910855997014008313620653849127133575066653755583680234395433215412105308941752228102335121730735004668698146283632494018321438224076490495282437825223683457479404024897315214330609789182150099247181281462117348907603810914100499997933045046387894696069021513920012982439483253161206712492844033528753146381798560907151636129427124330704958421757205053592812213413415917589591901964834757005920125330396850235605361084143798206444445956248505320666257225474594921131611002392540265166939314153000355749899732629263780039225273486026556985416302245106080252378041933492767096666312110442429275000011324715999150059451722850577061210415394262709023556150267645817783141657869526827787661244654174464177847209212446270561431638393944364146857835493776061605284694128433341586512485661549901060877021273339846982749656735020500434470183706678947720377389224820544073805071389629771350361727231188669825980958440920578913491233539213089531126976524578740124234430787572423619632510609214602497738827613676855314208439569828153104235902875840459681603702593452879564967799677597062400271931935944097523635618907539917137309765115475602526078986980954954934483822089028909158083737346675295592682453352619521810693925173986680443412878700525430190620165447469490543362071780165208257824383699576400427805074223306691645635751993616626518226554168699595204366491233140706978883917523136209432379343362208234194506397806830674191299519884218549382735301499515159830318914093582954729107818203319476272201123197669130368526922145635368626862128512098525452678305043541580584669019568652111727428288737933021736397253557596589241706810012309689157432720196610385084725745332605618345682580156248433296040811085916340728364915670033621778937339484695091442137590895903013109202620530103012271032531347768745219223536510659777750572110376735907832126142807906618531100125934920804302991307459523206634719580057259708775619208132437058506736691431733231265351107478146276855502176885662787109683095271382031514288029566109727646421491246666866924066026793353309807700624200778936167630431217490364087472985450807865975918002936921035079868665622096535384898251706140134497941098299327998339308652945289866592793447885120674729232757662878062273452388253685171557826037949663032966031724157903472636380906512021780980074308716054136263742866379561626935543376615448410786083735766865036640822644062747681048256185633378737515161153341577739259145260993657257924856978822529747897390986331651637800388195193407564524275293171541104677183639506215977699198069655735826484237120300099729523821139373318492658728822430723074358389550959414157506333269784131992461998841273872712372425982746979030156206888939382068218260575298070111463045638354287104680375534086664017739462087996382153568655000541719612959963569302506347281276340106817744919191054433963471392366475095421586606584261872085548479960673580577625602893370129205221545010191092860214641654718802797992375471519046800026970763301342118765002106181847307358924224588124633856617864516963302887548034732612171037920531054100886952446203811068048058755882787667215487193825584573146762552404608027312197572384529912150751848507761746036529033883723168211048286001775781740061391383370657961160820716336486932728287128864167439538080205209582289972599858861232542410541686405715906733532540393876873777696077057933188852788405648163644037874741118795619522491190701258274398304233545696928939845217790577651296337020705680047956007208540004737412425359284388863292805512191717194077598443439327286805024474252331039107073401196440572274945487607046058976966120610633865882270583460698882829777581014828030370868849481768879921359584363273077466478572829650199468239778134973178948090390853172564610590018343594156010328692848718310125024285213710562121848563772480572864027583331382429615762705609238858236199483311360021871709765089383553691885094995022747504211739056051420029456028927179842152691471711762968275088863400049401996718182168221085967126526299213155585502168182678243354587292226846082959054164238823293375743723965286543934537074498476450995562843267010997363143365496698858935587330272379635807560099198997570810094157537566264361729442019165308448633886761005979720817586782003240446456733537260978750339665266229739313084947573398837666772890163579681477754479200669413922521877696038803626277895327972352161083871482233894471882592014314945504649501849226060171660765766681259835452867052482486010699624127147258379269648453284292088691486700516998122486467339507392948171678112186592339741802881450987605866772081134137289607999571591312960883952216290873893862445718439831442803637963294491513371245960686040513621217251093508812011395245839974222673970244026213663662246895924430722938546664202646664860239270379527080823962380928679668969124852433166836237032195219235487471078077358075157100628137045494575849702578317743843947872222160689874001873337745963414370439791096115640714786150444579032661725485972099711843462570353474398040883207969718297845865520038270422660795314483987302889840614071532075108113148654064903320535541524856781827034534362558742069479398713453589786589067928410488254404053209718347969993157989001009041580774316628845203664506437099867052903252776034049952840465739027979867228501729010104892449628745735551988487524511807373956496520327796626360628431525533765327423353024684206639986393870919813513557948454962893811498117088915379947089605386757596978052869611352287567799710836240151597585876505169448886005022113753001575114773448400865207441742472422988142204707191141008121804675118336082129735061690990046487654941063463839779743846729583691960486057551243084102668325810178536524684636152131381983554322343697057573005402766096280997869798854181920821628060887014649264577515807903803460712513687166049286014485542183198628374274879362935374856139242452594551737482476990846521366706540943832865070806009528023703390091705763948088850849873203632568572460630069380943758583305121922156538195657467528566879855984646828804033196797435516457216408948386157624738709047771024290180195683555932341373209600379910105493635876028314399394882775437634059605660431035560728610802512325322133525223278532443147822183914215255842790901251969164543295273019169469091482640223649242885498694067678151289786470977239407274425684763493132850990119934276399114282253633978178121834725619073412527296506619819930839673103797624173898278425094958293055024364405440227451088458789617812715163419581957609304074197666459689423995094993562845376729370775046462697249049938117605875568262915731863770029968956107009353929236231672567852910915002660681058124220614906641486601721187020627651403439959980654239944271881187133105853808692314163994299290647678138254149972283573348540568343665827597579692620628500307022942723397031418951270789481400761144343418168729968064204781589131074558887992881960633594807440670959198662950797012779662728269012553766732766736811381886240588487907735347390788318491447862406123021924397910231676043146252270721344198099811842629190462636434665785083511908745799493152715281352546179873324881486077899760173449945785374925576654975071100290263312990654705733419115235133441092775715187853140779660712361677476890639752471673702072910314882819968096220184163661419617942275801420617569155509054936474197665170133980716165082789888960657877713345316042621511513114527316793397482333914266413769121356081060577052952776538172389956617709938895120728008906815671345994201555981825417437283455751947735357692759821682231982879692238088888925675819972321368581013375266366388188973205336773891624134678661434316833519501783776010687004121313932193791742363633758452960279437456302763280639214226402956499595966903304851026322983568761237417926244094619314359145117397277067842597184588752812549831072537066603227650108526490521691774148128807451511102878275523690689644596873237208567919942938984698225258939263401849505784725304869240511402913241086279493087935539250014427320567423433957141183540771887851936141441810118397372735429371687684974321206390918886143790486783304273667573418120671470992209814404568972791124854657555218649648646230047567908455901700186017895984855006615089411813633100107432652868376886010929445160519502487230209602985363601176099182659035100709665525548950085824051985585527303473505821192167520492813844346427814563845534034659672556462571765317028381619827156146236229705130394327188553869796884269705747674301102437276207001601384228381858675132475816317674657668317370168583678966782279767290400511882686388832836344588714169016629992562306735040434587728939031552884912395963406705698377234403958069319079944905017431779268522967440990502720230956760079004470167543914562680750879832749235378187313816780677613762305226116024503416735240000354549980993852368313626398656675713621813672639194864197190537992590012782263232260949321353502839313027119526878467157184362074258812902283222025290220943241641284108000104106025143291372377447445898602353673063744278442031239142141753109908686494359474256057367641861108727395141789703077945894145932613155502539710974191601591819656648626503668517586287995991764599175124136236297219072726954302657864055949413727912043480320072381554794771013432814123682704977529866019292412314685292850843511155238278730052468453449371684001681948730111473061182000388469052008976668602752935277898396788640116359656408123902401048743419778572489774299928045304135246688729509198599922816351352093530729630107081825503314165414731527552067676683090924845636586336587638085937510752678809589724293905224566605977456696971465153987179637217389739804801495249774809454918107313373693178523300307183474797505318580161582231800601575904582190055902484407113199347290359968411863770672014902337348567411292542509148549213317502250315640696261225476724946284201928671779191667122580249441316513148497426522646158882002917834052170829121707829873165503487498542778240594176454382288483564129055951654316144968612160626402524232457469068359476800298878145941020461045226415410421601766290349101332416136112419958650969309684178611060114837536641207719101967675066273889730349917945460871200620797771293686110881714968297339058503051792609897738431002862624068619139678370052662789095548408226489416326701365411408993761417519410989022956779703233062183618287176942030151553870492672090152729438474446568227396092426308643272932495897157592162161887783858020798540127057783569603306608833031844503635717858693724186807133028232527376526569698482246710957788248187769359551682639654730385771298929242348853082140080544157137957146080541075435272061047779460616795113038487839892565410331078028501298147873568804968805595458566580679067344360434367323421524897872222402578874932271444782750043518934417482939995833388363902286893909922456498307576935530528118363949996044190670150903598771779623979445643932749132752492261315193052033502541621215013920120761702357734905516072573137190158962059805216563018181013573234916311217864282660505575119177300002049313278877601951426456439250662950682136951509067654438812509691254414830862071714885762732907739654844032256780681713475207356819861412583490040094716731552194955840534681301631997522874198765870326241884471787768371900192958877652692477362091502943655262678454480689413090239449870021555372727639288330664637589366852408901657665418183762723454424493574823439716233364233031422568559948274055522071161163926254748413084545545992927859448213139151637728528717990262043968685146779386584385895564980448678988397234447376675646398195146599060792631668451917436876527599258986997042839371577521376970636488741618160899161620472076959263374373325792027299530915523237349141000225868613926902844471036801983964234116516509225794043325787924326340047960783123652354584953382746660577328506293824682242317239818998082556096707314538238387739187380808608472428125170307189677612113240894409931803694022339913735212940570681522431971115667510039598508347795634441620751256406218084465041078999252894186820319908674856861603813057569533709050857726468241193721910531041425937442645099649331941584854869756911753023466839927015572507474091464740301617632500911770483727677498765427657353878133031867748728791212844124797179325953895462363060430076385870562734729729638760502660846328575149145388372196487042553979694687149935872634653208875711065388839626753107007166859808051324534660762724607393453028106674354524566510631264128702431503040628121297912935156836498213670096681114437399492069529248397464790154870188659008645602359573797353016491846772348348413752425279822396425505257280168755633935361698937668857333782289980807733222869118780799595298899949199909894248777973469357494026440426380292546458390253551582645290228215790280108718125918684829895044174175730371939129628123780694245336125525584959750009046135104694632944265783188526959684905019007462808392731511614955252616629191141905015162786599185970756246420212614170159569785436282900573700885989970227442674291231960084526788623678058475197795400387653764900995709576441041280854571884081133869980778900177038182234943788007400176993161162440227636972174316051035350541152049571901227706577276657646373076891166822730519357168579369969541195693968036462138197461279021946240524032059638874158541111415283582281181967031704229438013878187743284282439732754158824898687924826693557585354745087517711502450002049699351940695537181708526409019714972550806535270344015769096399266936525088882705651281776188372223719266414245290147163836247273312573540720187371252251911510289624665322453632288360377136781345648452480814560847089002585341601426862388985677888337450132067914327079225884695447943400417844683428981891953234303074270363875710823436923735934540948410220894900373698437246911163213379359586125227381530809642776114753032742574419563006721330835251839539800052812422039574335271432069604142325233938233996926218514606938058717349697893349809334706311684220824707484035854300326945094739636418918152617448443992441430101267902631894377791305207071503949194324016859298664666281799664683494876816955194518304422273049468108548852806009160822994101094161131552194160324260796985435901301854125483495708613618410174715333124534758502785907436239397043012745983016028078133698059213837457417475554284629719922074269721618315980003507921246778017202179355111450711967779632310392746643935114151681655460447129423143825483577830271069631063904161019487352587098438140176782415379212770179803819144407344514713644260208913799306783068342703233280779313205336607173260608397504546509168076617912036491059540833987941599377411199838870621355311952498970577008398593878476605817555218495125337525573810255606434898028116673196849166375833305791712649323637082523182089363273199058029523075900618701782084788285166581255551922346923950881371845766024146818294215632631077798118887843253749026873520051516912887882892861159597210947022318702357696602583903079219401517598486414215431867711888357387043231624739273249233199678331665193829809422744789693486526989237491901301367764263003753484241768801838062480811723159310098072661000679882543901368461622709985378997063191854700396483825783541148561315216717324441862293802462179413793049407127681214027726458063966715135302427036159022897621675219178544079484536035532369097505515289417634745570241742642740602698536193571324053048666792430186266696322706954053162701136055692683273106674107587011679057217856033157347863790801951328733516075888411746676258572035982243542954651849211736434870648469076463143315218584876472086157808877270572648148087907251005034858798652874163597544338972399164928389496492213709668038683255358658320715522093258710286323415780489320380102934436674209689177024055825728788697953111902488878635441409603775390709493017147007085489036910297398906630019135208855765410335436012036537448776750767213783409849566043751407820003741769591433281452263730192980553274957798780607304916901333219060286507890874223162907962778994418384533936279480093247675771490699045619020301862745640705648019645486339534456288482916791537285000629790739832446773034691993363845191672309150672335079699785777584633881315338547932956395703423256409414677050826372479569751670313240252157804884529721846531188477331771521623364438199799172884984334847500005540660494859764856871417098980238544214491483977736021228197056800054427248358807639578432329903424470942010601782227167626856656270814683054972215225417224177533576093403280109853471408774253426316594516396249207975440655252434439146686660723421333445918545676405258752631484007081174069992028783465674278310305671319269305770296780398397128669689152423476361842668383565387535759992872622391438658085218210924551797807346745231482121083823776646426292389351936811953993206402971786017605890157029630033993328334482509937221762437336212694286735949980990234532007193569570106546233461269236097090932321629393748950269775958935781723192415266161392990792481901777309387343340528049416036264543103915314251116250111673446015793716428909115125854864771537955303927127555586501262884654843082333472175474055297674747181569864905970105995237306495971824241878072713680494137180479325078642667605172722913958566023946997804649660876199271318503823191098029150317490646889851871279243246303709016883883368384800746570259942060438482132449394451697980932657489933165630684036156480004213205549069605667487403665197244677845142328175336729483253030425025168597863029947149540523875643702214603208870389817057403693769049686634374567009532593371921862050609284035592155076939726282052187827291420083748588800153374392261163374833904238513460133654716670478334888215773631222838988903414659160151329571934293138796666949581142211481270299657740245185385042825270497545257946716159745045556649548487529953667050771807813067402224295552699184668736284041045890604374596123444241912475608385505788878539964366439443679868758754943756225437966186179438972704322431197907095201384041817027397850916309552234339095114987069176697966544131818821005952847403416640825746932455730384300870095393796076066125920685184354408592559882142820575108863260401222916962094867113776033395676024595487994954996009499421645560410491127375584021846146258820083727732400322054140932919290581006300215766466279883211278055385822468978080674211804441151959332583929322066952975812971338167074551822977081435687432427482884800156651651209542986087708746149256604649996525760713008628243691798169473386613918001117617138046310544147046504887298145066239481903181756931538998258018559940305580382406942698114171436352516629313174854571047636493391959366058432355470720078646797650429095352553941425559763133298810264408166438761307166008510662123913013730074433036143950848465543812544985692887183302868647153618834476573973280510963881982540793119918701469939900459087879842383593980671167852494974226939971209429523342871929944756327219903676460370853627351611084023879737283801905834388773054663132168921409499905908294524446744950245616908726466063226658971541841961033785832367100844512776827358529492421271459225150177385701888311291218856207354410144876952683589797676378705312054476133928948919055046483484965801888016149539827760552890724846581306279899298786723020427507736132408710379056284461254667799600016198188602875259337231068286406455270192137301168859277918895210864362446292286593965960764855361839141891155746326565298889128808512048753605242707750511050545498060921466442358128351331324469375804053919993858533757354723632970050688089919387747479895833553093482882427524292428490099306819980284026023406637886257637441434241929690230500880091638727901000136346905482902578154149160118117755251606945103995476620659381555660013506392736053627402753913280802837369189885613747333139960044992137518980340757831770984329845603459598154845968982721736551525872198387665955016364309476365131723144189176756961262905745099407847976867577622891276940171187232043934793906323583284172930076902049816191506278340829688175870795448980554840888920443286958013100719186664891942895547001852493955726943754282360870321684755627640696205325858486028246728133886818452168088028567010126931239693388852588073796658865525274814391134391987008153231096038283743646402014046926990810968445083209771267283784462392771072698459063867085258126230467433668360933999600576273921251068225063121454763521359901190660158646629662730720910100314109634488049619787974297619647230222542376737679888671619235767965147148862054895906777830724900538677802700309412940614570695592157180790497908630670359291733206813958547974006345651526091714980459016719183543156838696215855200772180225324131025949335990158827097470893311954909730099277838969180131117994080915016607803951891642838104431538417668255897938283998729825202267313983324546386477507733154519590951146607606359910837549358746398713832422137594594887761525429299803987895253279228385297879464663435855978217937586699129126143217130910462436227913254224634558202698020209231813853167153568488949918660655733712323901849456455257362721568802568698358912233494982370104429992600677245935221275932703672427848409801424628242495627302889281552695211056578027734289551727493190018025582371027781908596428442893782944103907677939319086649632205238361419524121431246244593834718185986205102945277045108571305631257368458586652784406374616942455384158798654107290005472051542405692675948482009931239003501042615789316741730218133496861100110387295748778822099461531366062876296282501201984884935671990691255477251434373985848634722825162872551039722130845850555834006723780143317201477487153622132502784614272198732762968050574736315406635426711683006350862733213369774706882408323122008274645055038976481657560955675465749713486865090454596460078634911965003404308837491241624058412401934353964301135367474878180572451730772555486325574972155923590006426928864355616125419439654284384543373441139919179185886426153342876713890301268904841531895112205361345859377805161573746257415917713760648301902880448317235146891046791283846782289068346653385928589024887039702946836529884726847924490632253224562593271933837644852493320094193295094039896569170335567091858346317980262294173064873509540657475579387118625665817437263956130509903062272753668731805635439772514648247168885547847600204879521056003731769587503051902148867306045191344021114760197787116846492524880568024069555963840826723566796206162140989674738118157399648779386057000225094898791193680914543855358100483874489808213000509361439667046153064261299650738014124983696904654608931411453459667522359160540455348279212634842844960399379596918076004947228778704459273623154698798865249454849433163684904080646702521818541451310365252274006854967974475573760097509617209531278357245918014045531553954530833179987209821930690420894782222140310635940326480157755495455544130178883281122708683034899673970616393617136691451750059388243888320485292286615300215846335037381876567000512526609278260845375728605679641395486619883415732787001683784737662428478491601775375934021656044777198365482267176845805203251756470536858657119147315754229655282435977795642158275893485873131241022164915302433567358550569680286459389458730325144349686720350900537688119985395313990673152611018572566664739906458592495357840469344405687355112583137403039046935145907354069940560036143727247268278947763933550975738863775474679430413905193854935616951343615106076729703688499887330683311922608211732929407105408034317679911335647734948280758186088477138217491446330617046024794610621974414476551110229407535996322994820545678485396934368266804893030280631754241235414619807326191437593248511024254192695420997612151110577446589937432796294581628920216640085883743606092414611967937250054616561086008010466513885347999806878389671132110604420364450105201126870483779812516714425181575934139933978111462849912657469352242021274078465051779325729126422191165027653614483423587298020404846092929842956717002534737519345069281946233613736052532125195835832617828195258966749080871277504110169682575437716199164154499989636282745404034788171721057863505069498729037007227980981438059612718647350667710650836462494382924014457961057748005371528444938984546704611464935663371842646994056770114482732844518649996114349214445422869623142030850025959292672298233563257277338456319490020858056467258762028132108295503625461669618147894045206494502576700748315239190478905715081626495791423541764102165700359137750061249203436532287805199236946651263018975344704333351747944330410736429046253067735865108323146882560733997626030426897900364487380249056267326148579192169031286285521109802678249192702520142145879737362423752928873832092029791358385611968354822210063130421469555969068597355231996725876847589030386222293960204438217370448274905367301693079631937699874104213365260355698163760278830861054184772517481093426377249829371619897996787274472777516330636092064031766835351125438803181018288767895721477002300835262473609011712247621780756745197505851604084023936295578729286183620922005886331257658403708792280939240330424490027871134350196622164457945607359416990068317654948776883205973335601044465985387223491803104479554925436507181012643398532652982923605162299750868979164527182965642866391999164876028416884162617645807456497691448198366777084731192575733055423278040095523870970103876243537887259858889591326276997186908492027849055811927719151377586579809139502841847302054214252040132154537297361466324533255582814550473955374995905788674352215170574984647050261033933506235643605507077740517467262571243847242910449230759130132784563594319548036044062422636345937407699466294089914271527143260709550677057009981229245178149561310081749510267577616601807026600583804547990142323059776483889456774808062093448335707852743561375020153913878252693858043272562339605212207668193151953113086452881324943126370513522244276871982634205183283197369474100129043607584397867106127126579664225055604193421849406259834709422361989019621028178216709691983785153715721951718373669179014926506977905118194659201528490213164772233222408928509315183486336735235629610379947409378604089962959429684232492671268350974712264481539643530115312460557294537533155407614134086719597401698992580939555548268051505426412257401996537064549594047548250689660075327921036545348396894135264560214024387555449620806412866513851341910053735081233287801754428504943022455031009276895431222072835650000357308830357095014645519379620798902833671820883555354366128658118795211385384486549966124183202632274679724533631284462476082762930647558618460817582187067958191207383502739801905815093099556432274615877135016564392981818689825938412251333524348719753439188266268693843592097898034750426223338976728727284622374395814859625576711675464368684715025780090395459587683748876033245945474729347734521478584702785797510751828137315140211470638911255033115177340828902464585667628493710327138975254833730159157770542679881443909532093394293799909803938682654186638755180021655544902737506231916978577633228729851740407211762833761967839995905756586593883577725357091420589769285318795629396013107457630105118178777621791269716292722170855700577831972521350474137323411669508446334405766542974252312473262396108741454092844140920998248995876271831626197772986204789218352977931270696473886374050679064102793881071094714638374711573438609636139134429107161440594252522245213243596309427855337052198049947776874001627812185855561674242331943240716598177934254413174783259193728918786273950982919918823191576693889234712369955933516100384026813353748745862535863370843546581006541934546424970378718977227370453289723953457645948170612508746626245685700985005970923909359927444145149875542021635537827767190087342634634722884001029610128579338056201610321098883494744293017726585200928748495527883156543192990520089742416485452905640757069776141329373952591784970183596433930294308268670858798018069265613551707876866108701594084227570378250316212897215743167914859428797070356447398500921906142851098673268333372981797283635447288055183168572445054763985661690235105060838879689136495210969167389334359526916669533155458382279173641256807288889220841368083080863063246986394136699226554958746113358395018080014660630484602589921265250989646925294062969909140345120907229846777206443586343588252273099861238557768591751292379720082977292721228729108591183386439141145824436536750239060537015518956174446995605552588047738192035227481138692861460045447643226908882388894486080791751768931048441421506828841248253035985178289149899225440364307388959701105232315773467806019037742412089111544159387243904295138034032191708266070016931950753080656364377158784350005831543542674311983267238111044368379695420972101891115020020970553341251413881854523552378821855891891474429699544237628042109943987928331291318562234087303758852041973688714686676211097621518564997674332939303790224068933042438258116880351647195669302585898762411052093094512033283623787524027792313352216737817569546602328130590277688924711308607506304846697889204827173211213702781109699057520552928464858347695809837825402712743453928019768626970289083011168074274132906070076182329629904023815668702517613873625687569675681151883768587081623186831535848393721272414123476590258271045236056202421107131355015501174081462678087157271900861814077833186917009605976457746879141035761773759135302050298396220019448053475757964229961914163245882300722916143872530585252639922945352336633855918861632971466545132620905574355379317219525272933389370508922159136330954622601904168872189104274064266315908042478142074443803970245947301239895126031616452164718190869594429605900590087616527235040753351116784518304764055907872058736983301079506817004592379034535139122755813689286823061529641784927508517333756215826897378059089549547343434444965966731123166371648518952718903714314462027858446420075267651993596352788799934533916536968042980309694342168356753323005487144907539223090429059408671609886406829018807854822059325714252816075909975168282285664635996380561598511193635103493668037520124100257255438259470775377459923935680548831220967428405130949517511593308939722546648065727497052396319810672854907173872816059531442707473787042516987566336356818610653907525385779971144966570514778744706447561267276006087388108034100106598770548739379454431223394855139325895141861190845198906314696920872330095502318453707374730140830425109890935560766060361654928328176531728525637020180047796866889524146329416687002794466984710954444442131328053205046554340740093129183977021403868061763798303998423842789471962394209071328030364508307572730237867127364012538554352554637582377651070856035250709674801076895006583876219673361615554494540597707998420595519718213883995261929978082773964865391892876377034545756018338988751520958310540301921802292560343470659935210098246349669517840846154630994476323294006915794451410959715530346499281582483360902856533293104611409457788946364130180508883927841990590313051950335219231034632389263177079372831155822694951276973696542270739094610894984245397857149622241010664502196552958880814464813396020738198661263261408423230499634552818491576462501413953813036274241732909220394254065241284871862785700675933359352939085398240070859723837241185581060670161517341191923952500076849674412593357106426087795417620052542411760331268175871434816355405739442099266372007298340861034886325871810558066925108379625233713811666401378816022409366360565172646577923666844024315669473960855467137526038700976713176028239529499519698243521499604058935288997719350658741663409416201706275950792061093170277732678288117035514311050240134987385220839387750022345136341690188511968891115100723529924891725481912176810904961092325448324198389509982444638445106100646559356713965205265198972097829543804201876869131101777556799206890887637993239214810955190147799807153680054037292837890008521236797625992776447809239600927561641077038876469261702435376442877043764601187533191362493440046875956076491134673144840792882725243414365081959071959836823810954386828242761036206469891695905981665478913382706788047836938066952775381259484602489181067107907605934822778296837287084449568141342493889655085045714579564335400545768835318888257646996918495764312555762911034673978711735209805911748255614886356086872848669880957199911745796348628518308264776893443589220107580649124119776949347183832480806649836822726477846966970972237104967442338971277332388980351930162270947552433075792828630416445612570484257488287184200751782570570456219194877061242037671041088716160102819262470020683248543536843099191142690628982366798650682099747311351849096051561410827710532072708664498396847613519979743234841288809910461586378468940551013513593960635624249647569995437894580629865176331206583290336938122751305764976782861872132676278076689357331659658084255317660317337893922074444402022271449261207595578642171545465495780619366183007284812757758478681331568013316799098652095649590174436736807193219709646423085028690878676756427286584439719986726112920297936063958212593592162798072224505004880108632248504622368479391389284060762519365691069972370660198389537306776983883357814514000100796784747247003694917467515155650198030648055474502246878338935555966296161912976857824856344995281252864099457489013314708215522413403273417094240460820165517344572977755373861290623223574621121951691702834015397888631906979331466454640195034359143505293858300228345431203089206199012215480533616104248908749253276702781175716591051693367866219201197248985099841445605593470782624712882508407654718942237011661315509570273116992444202706211530873481331318745192308076868260013958075184472090784600641483152934294776338202566753420190268169376016401843577518137093798982251036137316562638520249538512323050493029940388690264024624640583019541412261082623710552194206103895581783710458336049729583882211581983179422270489698897690628976245691964759501667447037935306040536729238187772223940242852216774638829726549537210683075444824200456005459865966087037368218987551751302929214590763964033242107055313222596648832643819727789034257321436337399162941199800064776529746811931684479218697743074679940447225564975196234920733724035162920044463001694046644384926252861965032026522800675715373915455594268497663143552862547884487853887855168985573218280692693246618666593899330849888837176928649711160722317105669776039283079011882826194518341204854501535312244800183723885814637411256209568479762025889981636960501523989697157466591355130739192455820147194382760582516188042701806120075078727543233794618444558064459591764202509194102188657135396127383070803158387895615543880144941196213798014610845333864860815688935346627265927870852362502191676050887901570547639156134025471836116948716957097445911059850780172800403426092112512756835585432829637023025755018717274004691796523782213705857354150401680169915243916162879466800614316699000310400547039026641586335126538647676984175437563647752554246576133992461575520021497887113727745218268879841756918301280140211117461260047876097865407520326578804102375702928459970315603441668655399510601902640525717085837824553833474652471531801888928957692813506962594731360369838196720222368994805930586424922176394316414569837929144437920155585836062011481080390806556831998066534685277156427361602936988019716520434601752123092492312469270430664068461195265054443901438379737233812892845515438550273907259618761918681331289644875149220444010222138293322763340426447655956085107427680175909823631387774870584567351385129747829756008205552580234482861959037496501437036195342522026260141103018148659625252923524775554880160365664112479432743086606494347448019862151076270080715272382957453589005324510275573882826830240857953460331303852671070306796300765960517985398668077384219856923139841181236138146617584320262248858005723811168632055707768080752118632805859310123323509591611911983206430862488945161070435213387273632180579620766956685745157745695682143491062866557799247093961184525693716923971868679622107959392801780539305533115756950248996801180590597008744692050757852936236333980339747889863127359840916808132657065777806146029796847238180107102402940204759939804939396395996957064923180983341477251441167317746799057230605914432653572617133799126731521261773745906232667764621930157724338852977782382702743405836271479796756804417974130779952449794500299848824715438054385043132078903588041711918813260643337805516422968473635135976003373740810493160376152430145595201039126868137302050309806316668103888770081654990413605483240495524853066142617498837713740874944127748226877664078104528668571821436485931105142391072594884208039492522602706983663288909586995197637118727037187712303581494644524549681282699722901636244222360789737168068448010690345616906793135176790154642687487304269089376852816177625656475491302371558063932793559669778475140106331124036095919071344873103990954571620340745881091780166102348796376443448648856965804344707901058974979684265608202862592098811600876834284482353507341583456498473246103283554995738278715006022865620746688957281828644953840797095572411717997516321147336491054171197604687454897469937086145341326033579928552047623484391142036309087416897964115339769937478622835117505618428397103008134114039671138571945529778710460434612904455846497443472738730677349979534864760821182098778827868753595946235017411907842939134066458016833403370203096551044269233765681721910882974354485796457982001245267800125464538331424925244662185876454652362872696058760363357572497878771524431509144321883166860733731288340007977659205733693198554991842708394861450001348664982449526490132113435866136213248541174486821712987140927038368635249994556203645041479404225211933225957956584396144763807680788088772676150456966383425102250218951544415652152646341392367486211461992766194543718096768092540160283474983433431982528600939620226645613965668727012676480113778497434443646853330390691828973019817889400004885400656879657991618260266688377208660294342618068334373591920570126299831301568763028895574647300724559313996354567723315891981752350302777102171009981721486553884698218482722880869643238239811683703750671514476427271857204305722812572602803391635584412791389204967403837641409060055974600034928206289548477077572317251288278057347267855664800058217806078891021922067139432977276442677971029618360762832261417968005937934162290050074114784616171762042857872715198536879976296483238831178448975899637472294227889388638849618581068663062248443922040175582643717285982485427183522331842757910831429450851498374754080593385848632701863481364688289521945659338342341213143345075057995937550053630305297103724066478007902142863913850117604387489936799365571674894299093470064146526914162912019390563732884545351705044650819926142102885789494662171138143183349360942575624657653270956752174103106587787418265957650277921543462830230102203589369944233548785861460453579130708510584432347975778775635226820608603068479111215102417958841219182096968308555721245070941970979437576173501247033561062877059187920851548764532430590276393629694919541808804040153149199265246422193128915085234389197358426829739539395460016302767061573979250522246082119043361421692292750183691757446899780998043443131071617606847733537247428372122664473220457755375041808802197053065418125797959635350035262684048004296534015403762186640413346525091715310209743774074875655420003811957049140805962014670447632049280575624021919597439726725150071501364419244745272170471491775363118112658066151093265441340466804820912593585391242825595323066075623597655786419079006396496659241567038152478876521189381189238091562374641185463936900473243845735668402816220030853459448451994780939799993839164933399107712881107599435514499426481931912063681349410865961940678602981999531578942757288618166314053228305335034293327145678759388029708032118133964026203110803934919804156438972662149905535614200144075614224528134555135093753107461595937554285204156554798687322942419758029007349964325840569827105952842378189516066831310681451490151101974962542072977621929558017273835535021139539276895141273040684117742950067973193912114506694324003735713123329770371862832066003340491369265464065365920538919904381816180068575943190944626045294782077305159466985249826422661673755176947857884838499646139645278716578315764685496754610223486265865723600185864064872375196187294792452910144597712351353962998214436439736019918748851110360233031140043330251880197780212140332142222232973678277853106786055891480845763627436579994154760699657225578877480612551298108659126943516954620923256396874073500447293535204593670726182182861314437634658922150430617364531377165634297097381449955822502783838674998211721758600430823798432100864308828150410782616970764158909991500447832348497492710577620358131455780732865812927780828953803388272599967341365483611775406668521392090828506973706980495645662938536290872659448654716947363306164109769206865206500348810847564756978336056308448240490977825222820559683939373141386808750639941341880523551992965236426736602576639719500565224709738254551495329086626776527328728769139926235900525868435746148946252972534534359851564960663311487690079820984283834566349761107922161991377808532394953575942104778045018037366992533249940640986244204819472101054580812525733148279830748542360748966476114120077683145458301030651321287280323183260462184634371523002075319991595844528031340860065913692291810614755563502535411268532004750003733712108004008578817049397539214710264119651469410471207420151256617292185750746225483004797722288688095474447927123842940891940146354268597533725921336759903411540497436893188778121437892824069442546495182378732833632751551395650679519911828682546546980755089561687364732832557280046982537979556323515174101153554010260479378797606925728065969108162029098485729843407832183393391079040751940959502941637299965154704635110632589957515698514179189485791523021433033217910181951690292693209053143135431255061673122080186041729658172917392116314576810820123045488678961327250960388998953283029232479182560610798232008535248806527259564327453593776054811462464281684206863695513748779507429609028529413418873771917574665927243081117754397904406379929411423700541639248402628770209119727530545325348790805981993368235485508920538470708766453135168184270959052436526775152087652030529472404693788263391413642520107189786869824854338344989026100851338360497130722949307419585906326645100109739743732106234956621962689728624316052239032701014265712906918013189146638515203654501876253858804668075415504112288266873245079409524411982972375991212514816598101833896033673367885343440072525494267916779329925607873531789847185373538281134069599426622151023246821617959031982184261127027917855293411133428592854908327093561889181745793465320586867687014888085518502779436755655922148945285198703909983854796759212143950159584638436311814079500808217268923814395535387301209926581277864384112970904362229350084042862945331266251355085616943959104711297714342647547176968451219712991354709819973532179505427491066122625611357706466881431715774523799939598223978490733693999418273748291307281693755342270622028831213805071737440098690348473918267113062247805483692763762176073118589943584829330211999355143695361536923469512717077944627203759473838052095357853094031071500323254058954264285963520568523804305856813897579835298026307297974060662881530154482347442582647601257663557440171962002383504018951359335232196268514915074333067535457518155634845039174201928184068516174202236025036027176327176574335736466649615020330503868046110718130050712974683587796763009577411682152732363689868021287599616392645881766107509557281259859749945824558458928631134416572610366112731234488303743075536892880733180627243984225507095320834066339417071651651104796593638666376920384488649965984336051247845858170016043754635734072232049604155376628801000680160178541622240484372696800281865924044229559409478607524170284004812602339098480793523795256941715370658022055732660966961633507999551040170953887859578734141842874813207309314123046371430768336660233408806965706445831680237089506704670849977089818430466980209745082184469860665979904092456489669608692660922495747294147902731365341176061014350433496110979498996085289586382750698782257460939719530494433077900991999261195921541985037487550009131936236609370895356419186122676298962627575018267276635783970282668768058817343770291282338806953169121194341252707548024569773802216751797894434280924160341997718903679499346665287878616533894150138466684031488537806779246157999132820298853993150398115310684780548879925572639570948675971333706009873698578044033339317334771483106771159298990564098057806372078688223209366182347294553759080720927578299320534405528346501842659679761751363514516516237920952426817417428463026512470661171652287968602515181126700387809713689414301392398164049854305308333032699259774651615969415009691475063702979149030925267236543075279970000342258062591135913778727278632596151466628581109484838702445848055857339353341416052030287769391383103581402211456211018471293534006543120186183813461328856260403558890126937639003033459285863954038934884882511317719742986181614015148857277610715024883454945116617781402944934946796420447285713818090543583287110649177308585889362301263861102696651167647369476254671592053373435443860466547200726306999410898499009003024310190376623218075497951142936082354540103051530937332627682743681425054598637132406119462767920545851048896702055784492105784421920504660438051688789233784339983162049099727325570472950135193446440681054134722307610177970564164843746307764269523570706971705073723311552909390551273910144718299924332943949588645734209936343677935095578394966368774043293035018855380507555368900453831000580282728832397279390997226055259051995446936969451450907918871879146304394919670037937526442378170950118393066885520952825287263166286533945187460206307533009225344850089219393071916667041397726429312072320519168057394535047639444023407912456237840842538600424997093629208614318796736562174976752694487292506559255083890019923178315674140372749062070833749540467845552358098669986319672422756554234074659271282179760873522911849250405575472596354954589742152815839308827109548485363637496961686976332111144927477524520080594733184166433609625310730772756007918494217568854692825040862399238339902203374317475035855111790558129441843084043332574501960057224032014424425600303928691952601847749280221303136005502229851007435147238225742949536224865963856000739238610203703673705749134083585699992273656799668582678530848760558366293632099591023901599480364569199708851418714194133006864783428711378257666027222769324670216575480549885808151821583384744657152018887932036900069867325180595136342339913810450702143585196773391236788655372366546336711931229241337969906608421178913943879768990355895924006700785451623947995665805132076605883784949658382665096567290168051547327483830347218931787951200712735361051750505396987497926564720725552831906967268652797998552807594146922413461683771854593005287885712393298763282358358674292502823694054999655148271535125891857316311878932363279487555410718201226997522456551070199776596472029528931720711402973568567298638752357132793259871378446845225540421544801246048956517977597523695867737164783810444309217216057322270418284871624724169066184658524256141804640052247308048865867186146051275331122925650279884458643360221161922857442660853949954102557636499254579488878603523872585970054990417310900974239575938969983636691951294306370078398262425836375656901718863980612478392261454368372624732479414229149718837303406612248695433332734568369678407820503333061371605836781165488214148085113526280399434411932322675897005476466185417037670570043417574257921346595842206707057312524215199130534060839109779517628156328091975593501002131760030586321248394587782607353088129501736982142057205924555576814808600562533260409168393573154959567858414987348463611970298137715213515099405566849337232696365267657389525811918675752089467708562331278776347788955940260912646126149362054983189570457637589956280294017563329045352088550055053574055814362704933829267570760459700245768287670587773402088810025111296430588708349398845528303933706144442821660433516101561409394824540969324474465285934398823243952496500807898056694599080456436784469205190265651928380512907508178745559315949152006569081061500422435350572393581029000520659054593484914529882222699886027424236383324395875769413991103774661462185872617091392121701945550281726264603277685580207850906846599979054399556992342832981350092314066188121571500035956445447985775538239166713394164540971343911406117922039758713199375589939167809588373591606533533780143411070641270855037938589099529437292194328500588853831347584707383628464796887234727617423298563713480024442512341657871206253668499100991149201760575899561612907492337420557968800257157861008198831732855657355114524529758854935886314036345343449893067975195596525417352531635151986510679684890326089067657888626119251306464701754901363496486575769501488534555011326887995772989208532827866658004520765420170398781489338298824435506972739216966598680945713606020822278855709269316550173974288036918282001016624265307930066482308999249435308917971261313877687351456492468649982202202439174625529042745461829125187026861247148374625472397395320809143492960952397499332048739194185481012621235824683602138940660213783945588612914502758183898455514604871874229996493580823392383080270257365123861772712064558080740610136843280899811230469523407824295348406690348281158144277926701694086972374026831877392175410457444838186167648053995916559506802352682775662117146494408320978187254047244319702794972693101495631989363751469540449698331831632973663896417670380397306663100575048816011236542230147098340604617950088517586978059499421621713229445343166631194620460398574564393251263764053771018728459066411930026704443506897041185180634800963587745126453498315106183470338585381028788260171811307871376429742659696236986062342352047838923056819511768610672553384734581457080943769560750946724423042255067798297402867141682351505910284690122634414158368155076062721272718749723972054039625600791193546367233442520784683800761531153038153034490055399733171788149867982559012567320029116756810412070018196458680029273526664999557011690823329507192501534556987026392768312761716795594529114336511410269387823113871246783488695654271097752666577420130261061557264123207750191340137008048079857013973680470151621658067269316730629918030832967199698563261810045424004931185316316295591714074622995496297627920907228874756694939863774103953013496400598887876512664172557715388345631741581109264009041533460342723860430543149438078741406512253050618297826132205446792962277136862897080775625118379274614384983848292484144368267601368386354448547835162307051631296723299820842056625590807010992340750513019541104998240942969082913107632664032053588139823750788733350733158057388652916050032530092313884560395147092430401885001364402055735404104545724092905469358878328181949178345076018520370348943176355899236161028511201055444292985613967053761648408993220183391249277927427019674074754406192977002991551759476095731736714496572432599234884647617683181595415083547818364526135987212339740306498370386100232223684514033146310032094258952079791960405627947218897663327896282846252543598170486075829333372897839715890023123329587133846463224105587084264465656390032513746501252625859653366531520498120467580323954239407229699329133637463309973940398431169288878730275909292269922105101500985580636785353738136077059161681536134982773369625098186950913422393800428428130939881093854158524154058249593948677469041524198649260666816455744004149415532096229286277416979851136944667078922601876955726250842830659494251971970852418498538374907464299200478482193780469557018409499119428186138581825769027606109672487557171327933035613703860657105219577035738613067302129206296044799391056768985288414542256579698440140608495188660724857398316680576115396643454204223506776663814479997800095718824382684234033073082882038208201592108220742310357808806640315341650487315493857166774381076705143189350413065778510560733711536535672488278859926887657657028980455092575937777721942604402377779448547883137673625393225531645433996992231104630118818644636651729191984460063474154808626487393965040514458910629720809868649823042374844153732414148037600635203461272077665175941122913762768996807517932036778368918859232523852964437162426915964535583523592391078359129505299246858154609789387118927694173601432521089757264346791460690986239210729355169322266226231274575775516992568302030913478078231589021753641758248395168088620883797561003886990226198686134092848737646350912549359477661122279019405571997224753714463497963993134662515639275470360313566423718166887096057005555519159357744060673762300630613529335520820604646931766535179765604020339911614943558029225080080349971346289149481714810934748090376771957014409981652806500710616520848247728114830903489089310126522576723804569638216475119475223456842781798280426987300384783467653576428942073139875161351375570285385165317181844755813700571343571658267155105524947833225397624625055241200892000476874504314686156018255212147223925152814203386807011013562091731236732782122201914121252899139533071652631042903257567260335608450442448122391623205014468897971043384720688506921225500400637483242509202802782477648358748580926917242600367505645766327570867133989195336465826601589919859056993877649126950013716706857765428393029598870111676021232143189996145380687260558085550982564141215713208228887289576433884526676779597181695790512448390822242736902440058850398533011404376941625052965075848800977532056029394052740987513047117558548768063590406404389520681043579903790547947257444875382051756117068493427114280042517946579158961067533741831514344965959272458418206574193011093674539705986785669499415710849768392710905263577839193964887906485854219192112839952373475472465127706163960660032634893131033491475552689791747704504532421304012986976469700009998326827010488221992875508705046971911943140335357787451675330966350937838155222069842249328262297109136509190616236739999390590217708132740236048200107390540233076496853967669899009432694160262298464357952685352503227699454975973898318395894346709782022401334606847555602785281636809210999855209494309789687632364757441784575460126423849625553224724226100845051475479538336722209038622907994613746843870915878374106743314806558946715526139586092056401761950976882491529541400168538250698549871380687271329312879437153424096446692682938710164759835357287634348848211484251858755465581391290290297039686327474685842632976125569844040414641135407566494202817931169760953674916682036774133741995622816421780686672477294294790391201085528410786919348944062540166489126817390199875432911727883484105548396583786226594288621802388649004253557989354008735905653149556830434117011123992661246306707483010633418007707871650881509900980628697451296578302838423703342898274281474611903893287745309434121708856839694795099322967419226391821036326002862245721201009957051161250639587345996566994332355034725621112113309995004679220272912772243892582977781300615590732557647901409008997838282108176814036267930439847600565174726067973958827870797667114643356177159280258785798439738638545091945344983115039715817875372828179648607300631415761009376322858250075809148777080267450101652262216965953439675679524680468081191371039342764148253771355799846438018365354193211084585730283657552731348002977311622900330936697650187778898512956765301631203215365706582206374337387632214584224360205198615508109175034758745322972031674200793426954309545082346100743569654777706589715786960079538711089588931527737864989549935498248963111741958624952502276057712910592532693684191320568324862139250833220866988421992018960650317907728512616233759905799570887178693199493082922082210202991795387910400232107986172178068459092747474751772266278737384891152721148131235127536022530072738678952855480763716100787296924190517807540179992579384093775670458659017729749348569146395104143500094695516678159302845165957970607326422594604356647791565125430561855559954415523097784357396234836335228327037853394326252359950996653955776932895018140778478998938125737705759082969714854970579643717854922514908958365684367604360661938871583154738694882790684111964638015508969663766937574167618845482821176733482281380713467170684102755559952449356872435171952111011475369903319310936099421022090298494195595772514825866281380063799728083625496770289679143398824936426421484559005922013828888841193715570075167213971681930339784965534373578541428971093439127462410829863406933178437451874335828260170034088450498247974531240874803322338791983571029162751661535087966863782942586051736405030388232995233307632259064098314667654828909037500296496457041389957451646679511828615991541733361409502636996471559769155280977054527131574135879120057209440484632484426027616455144616559748006459972090729551165555299050160051727721980721038512278446468498197820048038976398751013392257982923278527513772578815273191107514254281392440296956324884059899373404937709780805289742720536823087418869207713981698903063098728551476655593225552341785171454228211320249380351234188985960469685734137297963763358471301146248343843792918874896164149824858677693433761580278944309663549677396451444874246654531541082558073314459431949072327252872039342497581285567056563684485427282212516774144499286022646482091453346416432462345974627848851893096865802345374194315727912515668831128893176522015011760277360236191705486517303584497533253843600505241035710510409961373613046571706486815530894677682146564148307314859999633248707812638300575707347701854482809412958372231422313256680416512763458287734348027714014093056257727624748714884115875762775538456174036242676497768411960275934374391043011524768675232863542794614337632465889834489681853582006630785971622879758737500852463014658734004360961955223143885375703233943678698854421306427997478461313207284017110111489983905649553085752300343857720362165301632223508199176940945797842106070289631659522718312256333107685453329025161015596738464921878788467512930708468502268367201495129165424395074916595751647502303867382439670272872084763627893588470373132902789659330959040280712476589953120873558818296067594608170482957124146280780685825740813107680985992622389967071088870231312846782158963030718550959964265570635712993932817172007528477521331920446964649116166084145197924147571825134807048794697058041919062825265748346252788062941114902053876462352260027805036976556967665535744738897267104114123123887955757534918567119989997784578570508532009552183778187443583380830615058180208973736141658476449040924914698890062854063171999061146597608384160640923943742855292294628136862871395853477066281957433976424705690335744201079153315191533842139310405471707336840110027732386993360586921978942112430208742833333930901801668208598657307551470986897346285280961300743615713913449096441564911292235983259389327087293254405570804148768306713022912511201730990198293698304213628144108868717954746087592698574738938160668363200068008364727880162405360963266283203038561258640818343447050982620648981956586200134294346741575081513092722690701519958988474874954866601766981882693456205291948554830750975021603181098005464090942101578665865608451267307298297300432769646030248684600913612353248869080140987175243613869717618085212437448438625084368472227301325799052362141000314646285634754851420208721695316901273784020602618781663938085899141675512741746271483070404172421862075248496684597606145672134162255850861183159028930637732162701610718843678688100148738944899852382889734141629787462426317292052618199960373881206818472442866293345028732936332563823796415577841994724113735906971191017824704392081277307014689942854760128969727855644016218377373633794899211302898690601032488701569171272558182933375693387644758361657867137205193505272823672294771576087066881698042802265873191357349179837397731289417420383051387451229273320485195225669916454355517399725284371343569461529653960559331723707542917258322623182254134564603768680009480397428541914680424218957885527548269750177064097110533206781617038536843421492049886515853193056939265525274481945985672446277164664629238481930777367062866232471551089483393334734434140342844732873516121753606299365893789265692882967946911566169526857596073246802963317998535956924232754391312793455426881098491307547864822602227765999716316708793513562324873035054678733350375805354664773055860235992689146035685153301832764186100771502361207155689915973722660213768117236535202265714988372117428382946175355684157021448810088333432152993206499787527232733174648340188441178767946813309895935450550456671502964568055221771795194705288560388040372914503741528213517362070865779675384052005985281584640308551887423080097738201550461079338704263890265516285466481505383779727228860394750175820800328693981722207949200651477283754182753065898778983475961292462919840468813175275892154867709425991182486038532630973301481236727294028626872221114163936310332751184186870075341552434411229261755266192454187295646412232813779132362110057623538591046282670833187766865400687467511067895421267786049466532401536805024042746525861582402603594651018281753830011907484882437292824489026827738987306530704975309413705040675806934531237745512589801501347188806685491904259296881287426225853155600292313234872391940266780532207146296639303303087439637200664382437709050578602014860857046691469115800226985869226981840156018739168910796656432548444587311372690792061058484528805390874536957657630280228708221792266622877990357268755766982488256947623689954013392770448583514914704500393974149692020691991606806418646357204337520043456011652833928801732387969921873888885483002977345734266597598896299552883051505814277717880684837806629348961358931731716301402987184946711643691119942815068298623002677340254426699391554323877493307888757700270600420178592505617496629391315141492912004228974560742699001061797842037284346655497225214054129358579610314597294512889130428258854818965372046246987155766588778277947146794908951844435223083741649720413241685396734753166306479538351994167586342066524920120243690759683546192302627090114659972539187409428516749547374145746609861571575025744738091813241483568640067539990201331413550726694929032184863268942975297095787522800500510789115679339156101911864759778629988590246532815737704140428443132091221097365317551411323232529124544122107182729345178726670869582288138856101812749687919286391616093638811288736098203089663558142281114195213193203678627431761556277351446354623339562217232501031023136912176987185145605623633346270745903834004388097195453345045197679165224423364735021413683143947287471630375717135136335796191583103679334915764486348839084259335989137534998510345296134625954998265293678573897769658938096866657153901572761664893097791496827072944083053663197556937467890036184865013749111219671474454610520150905538674820889947392097884237199624906814045312963591588533906944989566565374020856835647409783077717043599148239350180942755189253949770054080588981015808603659805079304219403463038766381754255884213714569810374008540436675071260524618193504459674684232028137421111730132168059626202552149405865239789740941484445790948769337757883249849499726438011595004579124040028149279850862178737474391267193946174569300303964918948288231726575752533085315302644229519272691668273237451113830214408256883191546383119554963858910101308541662175903474518014985068718391651299100206704598378777932199551916210887612277513103145547611035548166402394734409021851268283515286336715912881926324951974420010348101199845790663559530713283945443119024662026321168036175994043195579122274438977324910092927530017276384563768716583250746185921586601364100055510800580241066819241758478856541849949368220851297183196675756511359641284700012597424607122065566133346218750864040787695571941228772607903639224364402954713749392121162113027851028610114199162183142259872471798463260542674600580134983902813051378565012789967958115007772929452068810103532402505254347979423030369820303131801199427199211156092164283575181952455924841406100392679628227037082451965131733912474749507649022604081282810372810597593391593154129395869752416150844728389204867120166177324611636420243518275747637909533224268502413634048923493758492774994067388902553574732869032059159443151210412343740812625454498702938660720476539727040217612954571579920408210754288306697303710641137726697508889323272461209251646498685230696065347209894410325213051441055219074102940774870626614110577594766382423196056095682447414332296079594402745694399589056612287585885915808477349630696187889323442545872359479906474639319696140585555796547359289470706509543651332183526480234562407425278225463956151549136936556423693567734011840045154915388974518400225242794871846212826789145928751571634423204767709370669486865862116925887982879317259657706715795649789039843768931599495340356127957251620177451975777497059325107133989862885239493757871949264942177298234797871699666087793594608792326475141139583315856060910202330025446320222059828088786594059168952063656541817635729075536496919071652761627206526323450350156802825601534353716671033241255718358220117220014016342266554028445563212901711786249713753713428905298007196468325768933035233126234688928757874461840298894693000204557043951999290262083400791431470847110695600568912831767387419088832052293827042860771344717375327823783806426250528047842739368299494113447680244536551444331878690483675095392215016439704809175195456570953128774266462104689204215128292158903564168744205614229180663856699270561084889749849239210250132224566972822708790305499169677483030928143980486018292145398304726980539939895006435349895082346124387584112249912926726667095152752779762607188813112468909424012961456841938761790373572491242629072437322646616396990571796865514280594372425780295953637690227062325988000710698014152546994383649152610153319008442823127980526784411072556537652405774160916320965321063486621883795688248058914084322781483271917098882946870081722673615604408978617681896010392399949472833966968381056986546815645488067914243178479089755506499492599365553189193565741669034180188613060298222089874682011656025243116283429561219905661416047768577010452731959834122587896723417170767282916253996232990289271004993440666611003711985512961428361120673453027485149184484016793869351227940809933702315396808686558543141642445909332679927630463371811599145224159794955007158984562077636157184267054115953184063060598031571998098400250134368639072324104628790085803158478330935230181041720799258584574640873379403399262292178837167271878387997092696726346372606443141264599580846987931820605054635875405267351187031561183547764603148716474998763943789244976680360539799963343940360052579888159183132356692683131378615826404802377802462066146683267805698677989863472567284432428534621412854278162157424142542812288261394220225182045022436953967896727371624504342530802271293807700293400432867047734595353594574784814206323396221859775215103403588449010214297787615278603278214508932825871052785692892256598861695348627596657977397475087371854365334103632188853247775229841560147894299524758557703367591248359242625335912398772019825424324432349321361095381662993770031596384792462060786808747504775565178980935354783687014860817476001429536241134661801522630767178906279540989603006842525965692345868931502946675307771803655543322545871362637303971861155931975440520503462966476151683090525545801519000341776389523036859232485546963273555870207151874659033159507732131209204277202206949685930300130325016678042060870822384861457101343474810045346657234977000636436962203985996207083205323086815543286651914796947010426618198296102025339961967995568859159072740521310975980065390785110290123611972142330753885196218592680974240266064942389268153931986072029105482184029180718335644304553353769488715509124328058746598664358604051576878408843719723601105537915200837111383748805026095118955223122315668556968683139775769179864985058839296010031399192491486153193982925318414049101624641586709317703185720575546500582656851176591812764068019019307309872484830821129219651212716413066679740882967491201103010708068507238420518769230338538154063727867612336093209910455604279603833169360418830399440005868464673794439521637992649899073816827818603995249227343101882168865315997233942943380014447753172739902748854552646046438704080336599342018179520616551094750796468745081346155074835295051435081423261177518662123872200883316950278353005097524294027276574338149439301188949086336989790080584626334653935690074799222245960920384156372416311289015500166301339956404801805082850938296134375392768445896063300292155320240421717240142252934041326725552282702638078333526094570592993515676532150536743372440866867948468613965746208782388321903200271191202883507343605136556580363830296599160547619451962032125237173538519635923060372327752530381533149852634628859690067004973213945144762577856257997161870192440823739173910620563493278824595613092065049561830710415793330128982673636145270351279230672377947363580661182963721458227698859981457124942176057949116412474004763611624866634888510795697834546153112561086754087140077264188385209525457252327068159102594890251591799066857031945638360347532742517174235632072187118735982536163352888737436518369425975596840294352318282669803968490530039448487525358984249577578350282253278646002182315444253816441877334721855112820847750831108435659934379652362449724687318528115107046968308227869637535363763481069835573791322943724847121219730948078255267333173381761318487470250687166811192478789101083694855573445491371134900098391724925607985001336019056911847453726352497929212865165906221492823817596937188662769254482685643221212299392399230645332846813802707425353386241331329019598935043350586340274042740311166454041849796656430804565331039305463413606661990517471612705298010513616148761556975421211315293405193777902278978215027608500028970363833457121344104625841607323257195093851260532903631161574223059897714874905818823071382667481234829343079520219493777132511232433505748289220479985704623036399958487735113266910619310559493772140481720011071816204286382899215352742708042102655494367245161855927335654362021419732527633725857953388482428664867918495925135365093759890547126053007141306113757599270739905767603491905066663628747119376628723817546267974285670173584269293248909291371102161310889177026677002326219756813697153033105529956635190039158998580873170355482628008337352982577136148382989829240127705379311251039382069942423422349368891798756541362948737590389005743643382102395351904886040462059230363696125017857140217880155615172472841155615308555127939010865027012376731345504976055796791883257248600889818200115152845369669368710872279709575062801075470989739023548602524897809217206627340369359914142887083524788468303384797876962903303318150044095810994918327702874190862429410356877709831696024358371813648084075862697840086614523434039529281263978557680486500854158681817053377883842991225816773315036197924539706147509153076671752832166007579565384781320937976198539707563330200036623639581447963168827048977332079720580597259561506391230574050271576535891917674960830373919206217914525351271203912525808668424360609700515801194881109839089896517425069040229866690160307085927065219784551250038099300474072486525918876843119553302635372385258435105341441250726573765184475827307003347608421139226261338751476507492799430494784885984952858612821988374442087135941286604804912390987019671734029638503876385420866275866042882530800309234719886796730666319265557158100702283643154866106067584472261200796508061530124619602048802331271802022570225431344350845619213937167542084900802632619791468223696910227299159918038125788396061113646751151720327551041635636914030923648518813041304643088872620754942113010678382839211144911712034456541352643710545961816516812984872539077520993095397313822673878770547654054077984526476668618241240326557739799176424589992825738492426466298560653035512011036639935980226683151282280657915344158279632790259925727806370423156976327416650160037871897135447361641914701661607576602485078126947836212927675860907314227176291682700382759619490149654615624793221184522337661425118491595579977701449791115496418505190955327937153058147344345621215918655123890343960963249337700281070007734721538687526506946242580994548433679777641531799487995846722653431375420367899485434911936007943583838118011258716169901950367853847180520794406439210499802424195738832394427289465030719354482184602219530931362914578025665863842589604285307438101817419644524421049261916967578652887354634113757799670912479372210942222274021397925720313083833937497663944603191335399146366342295378226294496129806840185913083318402362994181534993151188272082906180060805916293052451261784365598691050630993622998948128777184086459971895658356778101417330038674583723154273757987241618621716306626448438305981289868744545628022585738506767742085981154954664759408433428542033881354398011553107318768733622137846532629420858425438677009658236041321450187635509020962643133440008083736576657807767942237440463505923829236732893231023855739922153479801166166616604891045588642651634399690759489801840306816233303677785320474848808903666779052148460465999733210392000522406323887193023229789562948609248634530146733021592480873302119284433294668517471917328036585777854916896059354958614368641568594637040265541618266170905229774035562660408001277256557921390850048292702359725826584396936911454145194039533630113884958175564429205038110954658427773413708502440233829452878800482945314678997146268889375937167187848432489933642530380332993338396204669433305007231655625734133511920374768896595501066693966386111463340125174376328457176129293848384648852418525052978272658907006336121906853763215696891922540690916585362968525802495355180677486821963346971343748114611990737717311562313331796125697598845356882611538931150735579556032768914385395221677674648498616328267587333223823920518844933268565851925918003738506066236967100979888378947097072688432570698513434372927774023812010886315389510462464153144076067462985668876369652751375961990413898510644379538522864983936814631413228687600899324218665902046149775563020151765080504782162836412259002924375201260369890314263782202017054860711310552966548282170180454550147291650357846949729024126240221615884483127991758247702149780563317983261519777903230911143828351907977632451234600526267782024099816793173815942727935052841698519891565208167117029567937576660070803852418825496082639576260876068718260943852222397777057284060068372615726853676491853451029891333894621315723130046645292049341968539103960771553644104308106758975101638893645416406902487993409191039257688692617956376068097644473855762933084012946314657120037898453683915728416080454284891971004332018302069109789503896231523452452627491420066379385479425042065492904966123507199001403182216844091600710967116621201352042431586472948491359516718429095738514972207807087488584211298039629967139617272391924332534521129270167541504819052785040354498051774967694469236152360926273999093120614168057847153284926001345713968920341402590255392683324837579425685749509078756643685073504887917242652968807782056156954994241408732571130365954352835834306383941123744106661106772330937396627129034912397175903237559502859765639534465657023910564840999712874899229561343335836990257675848707267750321245604693202528582289809295235630958936000391463102436310594861289678129194889999316453787461214660998411132362229040184601885430225834071771961285262610629755009989162215390428297064391025900398806316621833369678823483762444330587438504291983876911591541370684568664006627513430806118083183304188381794517051960028793135842814454807275004885777922296405052617866190214615688252070600169764586440974709268770394786629020712299496306076848897934798121553476631660669177303806040837966208490117895062268453711787944422855227168416948276292077534764092701630055198059615402516503527596818131290370240275609157538416985599932657909696831240039791427521054271887233444095557820386325895873305336215320987410623322380331119045459013193954466726290378031921311819567584348220662448780620458344193532137718932568768152046900328217953763557259079472078836512486004976661963935770241279419351197709965322404539322730241778821691195504908140173696862717290133346530417915429205975048076165001572105037491414586088775729514825588077287694935642194580600077767997959677091299634999438778962400733367701669443721516612131196522468055755864419353547430397399297923174773007693450371377811358089133858244916387730409269818494064984139132227772769963996653657074184994636385266778836740071506468002448957105122420567450130596552360931815551747915921497027683078756481621897263642238561114204363124946842182082343505049261788429165042114383237187772698703752272838030255384411826758307207923371311759492665053645735503239485764909490928863008113380907231522584023487489163877225499530726327857600550021776550955706914703197869738461892082996063377165760158612029901706653529593444969632887110258654012289275397019997816724497309212426358838222963834922052224477097413851891839667880259388295934979883590120129757564213591510931882014160094584741460808575808796858251930318449234041929366210902867097814637699996256026402047066438455580068266617819560778126490304518698757229558749892890655783924024628239114933023081492878604656420801615682108885604408092455377661421281410404800693870462886654961336610656711684412605642281446314310945403422281402907225169650472917882502094239731371904226033931556248813852489747191926775531715904843353743898551155357401402557928243468039498935033375886405131228294260598546002626285245311093641473665239464822568509651724617440747263034028361794396662552073746539116930699509799066977054348168125963229857769107860489949489418906637771329737941509809629194820963968250627906830696642165607449931453887819190452934826224229288683176855601973609012695775764616264103257387364378575696649738913710478902243365121113501447363991567632235017167795315595977297661026701521891105735276572809578692811519748413668957093884874099811535311124456003543642958363221440024326622900341741278427138316758725466225602916104087322324158926614032394886631916825022807681046475402667744693629687762840087058070586932136367956240155968451803069599915112031920477457047822856287078165067575118207316719965149832502067922208895330452523324487337781805886308661165067894009131703099341651860138395836496562500296985101370770966171629631448487774027080193170933795090683774574225335261870617246460712420024453214348596405639043141406098979437564112112330317704326914482267441331106168068941961865868919203597622923311206075626794298647961941610606801260309276242953105812098917456858592194149882294057134490844652895085779837550290729618092381528670509760099532338773780013172819840050156244757117275415330987999984156139388112188057026609393133045158028467874701614218366586735325344884314389317402829800711503304551031492467286198580381232322645070964171829643856796352144296563445989571353871002514641311222599754713102765657284803753580777661021472661900595803484954115819820572007359126473534647455301200836512867765157359095137019753535716719071670899316055876201760271611277608236885938179757612222549720311616408674657205083372317576875904886129921566815930611378859871682114169169828817421159946825956954184472353467505623781505890473057610990491821392135323381341562868866974874040148614310182385438889023176789962958408970815616455404303908308574558640723434280422563421816467083864269758387892542061953194424180730391547782809062004669122333819660401577570743565956037992090598287352741865451135514831103954109905701313878982200087897595590351311576700262847742638580096806112571094943660801419794418556247202171388339537084662616522018411324116391706437352524824408184461659609807362964432896103492475518285860056798453131231551406594243318147919607976673601140398927275376467320694331250240147503170015324618702235817636455963905637408437252977073107219242904875508984131000814121796520385511061432790186949387554583312276763223166077743988343182686435177596018358732500941375004761901166498117223287815252272054177827256268010407230995042219203931689818732025925930265835335207956888082928442048616702445856001404677254206082816956132842748350593240462728266812076388792569639009762519377977263683650813940008211800194460725384750459896798520337421962767914892249555472058268433381597335153625652543535809690679741717139200009241364844493968225452961236755105873916325661579824971838636350490052215724560796473509427319963318510623347324770205634807901140762297009542852417835810797795934011317031226617363341413392555345189188011417996452124557166834044281940216438924612557935146650437470707426001176001679049680649516562203056645155307947529518279850027878206269591909834514117006439903042843176967774346988781543159189606504020839043139592114235444162225638238980295148546446498556299663198563198365790516960342480900801274025066813814424335798315932147311028282977692278889869002697946438340233511057034131089614084197039585848608062796674557499735888773791973632759504608409811688931603379094698386980150676771132000067873764843610921369563100391870485577732970843881399844959465001169813428963224203319948683917476727389167385833125956810069399369903510719842888006682633975529984858154770475644676188080318602519603160246319943399357432865420762162407850776774318852591363620780771892602293011879017294238401642616422934214841918524970908125422635142679952946733377481288916446837300057994123347111519804371889776888759452580745416074550474970885760088399652241904875022149378647177659246579761111800459670135277165277964612665507864722443074900116756362945356438835834862746333000945543472193913231029460786540388685027798202033278553981225104469728749372924605907322803137117309453069861131355763254698580464155127790652304710653399985378629149308262669026508594315978259839786703879700398617667616086526933049230583630682169139306492298311874055879861582944211140598447402074184789998729435639431478954042347787351441851073818900516593343642347581040846898836054839883203645128858851141170919336938780701568122928366594163770508956572368989110173571600600132092641438852869505218580159278603985742093941729373291070417087650247464347048030264565053099731592958066332387932099304101362845243537894685155560093166265677935702548898831065537095611251972464299716784869801267452653879989779952319591857541246091454794024907482751254881602431848016993871213704316014084369208837385547562445332388549717477980448118035296262778309665868918072163609840571929737074807516373895964080944163506450386485857805734953915157836155021592557116896387389153948188417617936842506893424642313432589990782614793449877300671710796786359537229932063046890127441069246280487087803781841480943346647230324223424667374228118243639478359942677909678134749986392038821411049028025672715386036819418481187878257717320271219846450788890254300375878596907050629584171769237327867853675835601514796726078434657088739762108341661246968663024076668726948230271646236263915746524478957663527911835948280509696903019755003321270794012044402026687655161135092716452781301296457053605075718382308877246207560831424316950217578549764542230320678276893448888298157033458587247417550162709157123920338738231720943511115938777906435699382624066737293312276084813627644177163752760454964214450285496382882156231148558550898728846337099620456092724287190375862719569446278283427935751671005383473620278492025427287885352896759359179144577672967604477832364409751434149219638766848735787914608723918944027478843685962048633457918481222037112757706113175758748032911247898910344624974399093920393298123380314625740033802629732762347385058773175775879725736163971728924832935482796767383147491593102668994639985989486997248498477244233170926100167723273409683673035305068588863524744503541269218918129932097420480199477758713568514158414116127554057904074276433580487423820218617180258326659680531340421578127339223827614677867565669465934165839837856831433978240181425063165193938662637166687561316966470101735251737900261888137206800181808131374100705734161712217115142415167187157985829903346239379307420393410998101417894494088665673639802444022284482647078999300774971754672944748722196064778250352161689467006435841082311015298880116077343047048349578962955009600931065202126142330688771658558540753628100078627562307960974793530897427527319952377645404237109767730671958779369669150605032466332800332001739670811232032738157379875489863057078170849822322118290022342524558918540495111395915026147838576043027539119436327066135152786648196458438124108236306941540198680886866272701394758701603207063430006437958012008820221162994424887309168548552084527671904968219817374408137149008876589334746551738735455404521060125040686388136708251134997657959073580243770711111906163700620205493153523196126524149749310493395965295009485200962035648852141508510673733766200249735645647060010646363997080674482699126193855138628604588126563010466010502607297639132089958229697694198727050873118214205411131608905750856281858300813238076891157760953474403609110875302315471142543573619962491715747453538288616793868438474663064210764787864310248989411236013162837052865144330051817413922165651770208792078688766757785249723224530876023263812386505861011909306673311363953133782994053547385301156253011902460534126706628257733323257677129903472381545691343736551905772046949975771022704616581909838025742631975836700241760345012939765441705523756321379396405064696254517241970326261153888870842780898133416636526272932453967642088432143893915401821986544469216616290715600512554475024076311775038521795861888680774895512115566036073718013445559072183655954027159715814809268647318434934870286167508164258465440208510743526271554176979158359213132928918958784852322523619651536926272131251952147892607271551618402667701246470853470055071871314079722034540972071376753505883368479177646096916648212319666765590113258790120964020972673681408783205387081588691406742067357578941001796320070883063243284486788884142245971318520630953644901155308202857876049952234689121189487240165524080964215492608157676585924622502530249825190464097076937701033384723810411113243538987150007649636224135967587003452604528204731148696499037511247760122225832402149879297739419506381207293613881817377385426453325553483239113184818920888598803045605154668162966817020546778241417289619226076234042585140797881348043607320102372819713999323633698284223006636175514733985154890106511961707419795844680215319680602449302298947329675787136713058696886962116438000809317184783873856384764504582191510573720970978684281894949474574245952232203201415578911806324458544066540023298050431382434148885544299675496823733873503911690934636940125481078562227767412773272079685827042905591779963779813716880092466719860000969301540179228839851561425141319914632744979076746730624760035028364981496188929152695964835626829178080204338564646598843015948329403415902510851426704800683127296022072986836404724391641989835606672777846619332942702537007015032912185605660335321641057327783969508702621595735231884108784130813721238562228537374259501155586045526995895102192891435902199397954519776209847517125850355553694898430857976519867662769386546227513663640808158929510012479481414128433105408578608769325225185490522172623026605226961089678231615836297102282311149424909988211366300478947674048005728658031211769537775824522233463411452341903933438836684800153009333920763219631420340514406384680901281347028946695407365256539872311232985674554483571482077805286911289568228071972895524058342776520339189134150700929159252965841800074515113514503940205718936903978296018361452916657322033725534173957642898978728561081915564078487957216990108540472990683261841736275787312542193451616663526402049683261104021901490380484042123682907441935064883773056044281029748353118752615544278699364525162591327330341514216717912009231058166361459731661119639931525464537767612343096002262174913250184404379573476871471052434366995908033920823700965043602806001867933539325393934533154278810251254317627872524673422244935179920889256988505599664554216623770943875974561544333734957999369090521003381890707579138997831750050674182883798029010136749467362637988007012127060929591291308023810292294944491237745352792749095483138800969563255298018071691003137423607374471760773496016877221474406875168692306511208300312999239576814474963748000094415536802216801866641744512132353867902264057279092491543469194780806495840532561686570196034972330875613814290651261991718664948660970683481928452057629800628168314829659169750036447829127533498046124457322653005795713738109982662765708105698247017555946482389168941252079077489833794579972010261635275628593017668934988719265363200207439932480988013861292700966402400127849502900486641408436955925365842251957679944311876762543791160505891278125348975272838079687248581765548633573878296621833602380004206851257168158669822188180147536384923700670990337846591295382693306585357503534265157068782875041119941864867314191746811916723411221794702597535175553160863671560149768666628876709297813204831242858085516119132805795484196911215626836593757986902114260334845687253998077997293536821259795782342208975052388391634747729580165592361383222869438754162131021988677088735241398125354780800491959494980891761278452696944978758302102122212224539117986017111617614050360924291680496539411410861163898961790488535647406143245687298540579298950032639285735879716067630806045849755853387213399604820543942580565397258472554578463109956493064702682205171718785854545758783756523403370425462784677884709440218699034737740016003771836450986513337671631492949439042376060987693806278946353930090934039859474976309326466336979968328570210006956680571937698163838363020157371285467427894396113331088472256718240972010960346108802518231672333639660092697892002157258160904041904981701616125139212884303746008091442888766629071736571659808513378068531008222912382420780074288418465130620901723948821660284846087010450591372954690656767342890901708483688107972261481789381195782748158062919327635826602968934868611171100683376579062115242104904540645218182265023706844619440893062796189019331819432273333387800129838953046981805178512135611136575566947457681272606353546055054680192305385036770492346153100589508291596565746880182492986689297647572937564477604414861364042040521542861410766783462300259766990818079748887682806010372064639564468574221874196319368351472581675247163915241107495442925296839855086015752967442926675753956143786578626734453652233149745942555962789226543214232456951700121714885493354712525789832445206619199265456053917340668604714021223091130156621743838029936086798236940086815642514674128475290031389485239654074759363150233960653868148644592762116324686800206938279370082701679673362115833728235524579088669338297347287307516608489788138576013144075776487962091488972914611378625876356987711396994730916565480959763842377799072112346851862810978665377752826125022256954995039557638300465708439352857315025652580528144501436317563397169933058127490157247108601678736826193590584026627705326095287899464983382175712217735493368004451125088987122981464930126217879545945192734341941712619567416419565305500109993451727894759657740188266414311232327171247334396912444150825534605631006189862302642103561088240932565696047331323202520779417796096165342738653568866845040567523323912658558726391837969801475879648763990846614373906872581172798949325621526078196692142145397774201843168472175079769022280782431568001267507645074692788369713309879930372912688684098845146612559184341894909015163205689903035323038165565253325870102714001786073470426727849481957392790832099506718565062021622268758848835323043641704802334025137630387707220604151265225725174010982358814446304779789035251262040469137315567939166240313450215505101985764344163193011562397521605556456038693115175874953892280993408478699707316566119404197650183974582717269475926026465330524197317047546675142750406937282981486684474731721059662038176230653365828595935690835170312531867693146701576883047568020341445735942447336499900881880670008716035528509231696525378687060859393774759467289083571530024008752957764824313520599536622324910540726205338926934460005003588500060158083700514621652850989965522961263648932110426667118937418270955713706794322228332067513480068748551901059908099725990229058340139277704730467970669455693979138120822344156372536126205786465590474492360150972410691222308875169281307786946048469685072735944979971055338733624158037363049344256132408368295648030911041423667326144338091679513613887899991396745759592050253177495929525119511649095451182748058848202940650759058909378671548042340939280904660551013523939900014684998809712808772720869146571178267607336233868618976784337256973495319957265232617950254623046153870478894177915523997033445863229361788411820689504199119825609177369798287253876369472410402287488457934445794309604730866961619467745276728551831208856288986674961088464289103560590714434110537556149460992436773418715043318099407373600459111138548244943128182009147162703339479784385891853787144007949685269081639127421115899046942424620879552184210071526796061980911178320408195299496938047402230275219592393263375872479818943222735973172001096832615361429784339144168054203368194437862772088005171494688449117291380413415471369495339686275034475821451603040769376453249625954752891769395758439456754052406651171099612533113982677393968617859419846664929078823702898394866470048605990440585114787805627649642392014308608532995772236805559111848630149507769834900648214524991423358693889608287316747088316428156943088266134783236720425236554878999116769092348201255199032086884272470187785710681799376477171962545764085487645233334191488001598351588276789337544451320806625949626357567107659927438144289977653464738658014857355263234142290510351899455036636235927714676727735214330636356965262257239864025537647364864023791235350833013599289969205710584423598198643413042960352342539122465349911263816912089370539112851810059687477477787132188722768702368110227959995848310785137099435551437748742005650495817594741243438211993435960093040244495995722096312422206536104201514772472461208672602316366171029225022002473066033958890501723027084807401915313495689389465596802466423606425033082500623720093255025829047417666882088063862705726078989545786980479935806530485605722691825472623397442089466696391036339690094380715117297646747497270783592073166634103856146458365799764431459732581613501326620539445125230137617770211813543042824840411998711172602017770111991299436696242771046255385213957378113991219983837858029200860596438313872906701563875100321152218195104597214229778805419018499729832438191935219443998299121465515368623337027914803699143629355656944295783840554206416444847268265445096307685976313874986212816790414884466788735943919625715156683637217640196592797113463755816111501130382569402728013639791654812923814627867179235130733088667573789129176470173536585487348480326019944518077459880461607678463173342718989880281908061679272134490415800927474204714981674221597580024677903699837671043246856942637766080573333990861656538710392987729803975225266908616494514664518632243178420956049030708632926280644476693444069595008286408667053019918187383327831623752841730942207127164398213763479734308270557349496813367961896994676399831240986193878776729650948458452516062102120701699555146408163962840746719807063055236435025528928941425450862489284791983543206327188958141504886282860070588190073073889712981776668891835023026627948526174805992661675222656786991134519223696695517064089143296062360039545474117339754979327270035687944737748483412220628283199573812303145181508357599671003520528295032857751957617441862549676804937655083872863571584971455823964205532051351784367494179393906960985139948445563337242516196678864258435613662997072208101824923283821122685199730284170704131055067895291234071965293514675411396972160285117004696672537127177385212009170732742970559986207456055351923496214782530174567848687387469299334422910822120739017383523410243827976791209316931845158343997525773945236004003406941994950949740622880174606223607754605423492525313147656074752288348761783855299610718473308304583456617668824508014733108718886365780559483162861989255226094405396156071065895542574015601759978880925374289349380813209356893918655505949080754625940286850429015245121886258593261288099363674555855766071858164385877952956081307294767176582469592165063371974174750576114042888147682560434649251163870887895477437430656259927613936767581712950565651635931976503223663971757181290976350631501890573580285735924439560180242392233848555096809104367886406967763896921653254808518030106146816817703387910808246348583907141836762477490034164739847544276359490423717598542219614032317611903681320711482754246630795216246876480159121562530347370481099750934193725557320265736535102393316563242330355610270715467956526534659695047193128206406711192550589588570629553668008948734923380967050813925419060650691201920836609546676751573726187438990821244228443593007147741022633404906304881839135614138677113948181307095855761534702727692821380598431761166573145773877832107214458375050266841426601651291676139129567748787534689250662398215811721556279488123613444493575498349366410911570526653543153254050360084515016605369714988637755107667511110776774527448644140525211682915988871695622202752476685162974235110733998621372414756456696504605130761465134956915828217471840433852361970314713029601974611973427283307063133838179848488690307301236890480621888402397858697099368623353439244414427383023777805728363612711074547667999781020643424182364822963706411312194351868392709244671519871569305356811888313702320281298989053484064890085017818793746932957485342927934323951244920269822819910601591182191517098009508387823650281349708736470337278902833188551607221925196587322395543785591638933246074932143946256391207160741758065748746591008737051392034194438183302612510728480535299922628230597186828611727000731120639351981947211504422719813115742307219321048831773659072693425078234134655130820083725515455957194787088746788363645910296876002757174754697310340869363342942777561594515610770003285869936933523487879251152795859403494776337119079679691813559848165299817699815961178706139075012618757378650942250768398374583824306316533837740810448746484546085206664970543190144103917005850169783744044686477060403671443577234889656746204928254958268354362744062047091973177046121682129693747809380755787061295880349144372824437307900742278261281229984141159695268138876300995725960692315406156529926147735103658059320364258156154649577847123248359236363374578628612554801705135672336085235302599393262088642315688164641032741312361000749002192762663132608501536508732715902029671746851049915215504231218381795166918380155707279083150793744614050650836916809428246740740111870008736414714296919426502130116773667037921850111273036079484275292355766426330711712001821054169089682528782027371177564284385756124318372786879169147831953421911354160308223906394125286499992909489020560630096656732137672560066234544686105834677971833483644142772369723625431298405938887882192623167474611538366195621443741042035129726513213373337507177512545413501893358862883067814582411933007990209972932752417374943419387915929210700245701990375652796214764235865327091082581439889110433592500806524434646283944061740539273719637147198506975261276899619924435355384402394054068302866596680665740567881358979498763812092665688219418126745297553972078890545479273615539983460747734082898885326032393306275290798379869123048082705053526548116362753246264720964213842815078299237326800729861035269948013299538217695045063636334528347519052615828711349048215193545751341936828643144352837268105963518744844175469695401833704351395214724568542597539913272883328934076050104084265557955755484434505703264283276317983822873837602926556796190817851294243803691155007555121464170093451230814171860391319138658343496420010869836237211578474561031895648838420136811836804197150088821314794494020236568029011304645262438594152863656733184890487136941949547167767548934533464156131201237072205005088955295438301907384620473252896533994685075516894284216246051647026736402118709441899069867165842873614449799513218169039429811105931075943037056193809058314892157885851985429058229578498157263599921175653866993014946999240428774339814032285700739804420286588105503059307257721882135300307028554542163640922492955626322061505483746935286139710278705223394176380396599241967240766960113844241972128423646326618900967344682822407948668430238150645254955031852253529871457071395467522796661603004146055128468406532916229241254074982090218404205024917983834576960416500904913743286036087443116831929015549587310931910975568939904092775774325333184029852702569866414486690875494671660496364643383678114469560287056521599167410588540603546641616476074184241912724307110591455645503145582598549177662398744188100816891428161590283990958943677910202514567168352197883020746987200776916975936393495073710474355343565927523543585346936530324367034651972681234523379270141512284841372522807501566681908978876152161498863037949473965828584834148987525007200274346850872931346742215398831065814597956312211675009100765808756586400087496317579023787832189568554316172896137102344394251556050693441423532066749886133292143005775214018286407724936574552773125258830674505817637858111715600799265069478170106743260601541213948074001105937994070423403415255065100833186067733484642074643414441190821872105396028260308146316927892204997920283424992197327665073692852295532522535919992151844779750022576017719927378468190869440284786226685581252947953911928834378610675352071057040557069610655772156819557227813023888668776534986696999916056797249270195137504157498187696982690710112207479778098148385880022896183869802906311449852664299883707477757841273172192395837477539331272423423155413179847745956280808873282149788335633597627786513468465532903830604607932266551420281038278048484920281350660551020445063330586280388983574887652469356342914090062648721317004071206705055155076249547799203246346281264695492573872618353021956393838116202731987988252091776278819636963279304451115377359552413032121557480887887709117284597570221047875886903733698780733860630023853169567338273395191985038989622798215154799787568973689396476542321652532858758592166023736806526248907641529231741723062134740115113777167270724563825576610968574477799022017358657300907337026531352839866347438433159474458366570672346290274921358962082069480650043913233200609524588295447295051807058274502171634823953020885560035997576499102268535341507351352287357605332287069891988211142733715782636793879784772052634089012307706615163641025315012608322175566046819573604543399834574879663867019188453868158479623669949854664332678975167371714289818486251067078981245606257782196963025164530219996159047684825577269717876814652660691371329048217665359447652521713760327755796361972646567889745779661245238670901756933524766066952359948363979922631152048022974902299064349817168078095816071693671974636086606970017706875731292719334427504510032169804097215841390662486483379413509382421516932457712952588088446833354761118935481762394416484863416472650200521460706783588604429267686760122961266099621831925715494220567711156944841543154943402205044497129939625356681481326885574772062731775401028926889667968688609048422411818805714961725224881550451505584938577736421336394193169984901827923777077905975548043550031157731661121940250834299009441824372864039553264688723003146245398796425092261121282597712412476438946985052758574186487087740374609552892827059075614382046334715392728322094935122385830776101389632081205475826200844915301316887337631547199097501801238194654916281467967778135098870625400943773514025239657723080596695686208102092793346111873216827267050288958736337409239225276903421601658906147892000310786106682157933507916448662248348330977841169309022226024975538372728734022138164709244374198863656142095910389005476664483724720853684701557686249229426341733710972198464378449457849428377361277924135147671229909988492112534638437944691403483282737039039234002057183143275773982296126306163749663879399169795822526952130515845491153951214874677170325799314230816699616139602973366995462239387915091541055961493107554838566977317140411637909035226717904607874885791052066978891255707956998511518066657901223647248597714832218009110247838883066505485514143172744895356361045777722976057896061962679919292753854513120016283874225528910043202099043731934744058282855191588291105872895628439847525001847072602648162405818058600947437383535680619914619783224369609978001233064654867206301931212681526849621519022357938851782273696457045867520901516378926097775135917590763474486770412905869556689658370193335632229177078825989472365187277982194161359098145868151447645446381944821878297968773594887966499984438555156676629075788496071818866150606222040996558582347791932688322126681572045644041993960969144949342457000423122371357439239921068776106329523503245396047967404958466368469594933724980919151465985857686336642350008829654287412785366886455143410302932609902141761833049788262066947818530842434266920369060413376194131705346132818534554771669906996160800394307248557918337759087365416455863537431935163319972721675082675254556178296443819458211998991632394401628498763054323755898172743071075589756170448251826195146926524959158963430638673156511686994877806293875887175149338216662081279987694946463351029448480662142088436928212107038575141251629306738713796750780424183184114187987071347836253305133704624080655566063054440494712299430831432419311594412287001784141449927394258139340103436854768819293876085155756271101062968823040381285044178765842989454545421939040111548831559161652011669908854242988827224379570019155802463770377129114297104273549099223958066413328514915664158104805400759535677398621400374129948573355719204376476805017957338023804398290397876993323458175992947362233829172879302405740431273093233778903520406921003990064191484396258348047305815646444378354541897690579361508301396482922496999789781892624560941481751117163165002711660532316933964324240515367934433989166818728718547007283076155357219768209818159456733359104254006227291283134945735851266156686350646874697921895505751795930251311484290040139920651226316674593693172038247498806607073388457565445078975929195912890527766926903689111148932285153325058195154940917045935232936062386650575429710375460003587446837985435406867416998887773983038165276055051903813860266279304847954448316492904831248587074255145735778255604069864654284951314782454330330731636431064890777568367706404453247953224384838456706278078650841719843268719534997577745425363371191267818823079150804539676347195893752442683987473286520683631728743600050805523220894021514077796201391293064310267930458906091157325358832938704580012425110695315396882931569889758477146857078733036086095329693784762269374723517823010400342866851253559539012411156570068134739969916703974294825208942027931385855007607736954954733428221188767361212187528949611393438483265917874639535853917464186364154880149441301272986330500829701777330320645669667159354104568799222741295415926462432001466801172664552423593944658616844637541100986308751491175413770449375956224063293035157227060766831174158941261036922886245276877979087397380565814502841872733244290511195986398492854078381793661693285388327295368177184716556613562216882961030861441405807808689038089313537764853259537817342054905262526918814469592723002606242774695267427301549667309982684407109146699817980515998156185637945725769081500785250586959119958822946024553248407448173567397683839880474700560049156812442159171010797438785693181843782422172952296326733804494081611769409474732209719831398487053364709928552714623697153605337241330305738747337021446699220157827982407168758301124064287886725584882007931775518107390922133597192672663699256707916436003609240354124043092655789186565565102032204392274235065273480611347222452101494459950264978772693512375806814059421332583402139882059115560811307515521703883475014284672109564358832285676846641493840570907215838594240318318653107681470377067986429532382100982661395786464734901984848524292360369310002734866052338039666232372871971318646323510171234568316859295025676583336615591225637424585212749364111393592449825080877024245558917975823574929411954766573640300760030149104146709444084491312328764059170125448687483483542180949812101152333712710764979335963528171055276420483286527831598218455056594422543829133808685741126111404711678392107617911517535040599919356776146533093089640170956493603837148083822261906852594452026628334869805113279151891741548750770626062007719929203290703583935396854354898880535517146994702460970021774104083797530586994623096143178790427361589585521510147101362677683727960337439439182444048954939676968258137601378187828555926220425723934656967748850730964276450980807955754927594301094443060974620517380481840421515023157970075894600796034800508584215175359756074756663913719754972654966541400868541905511189909003861992005881843910241264701668345136216812704573565664107841502599405408087293083257950906468588948424244229156700761679543377567380765088540352641635325561546877942760499926137419752739841694909821256312280750385998485015189759687646753836887245571422447571005147760896022973216618390156393593472346011480249045074574484122483455317464678477255244697032562923699978070899967845258526593462078970620011105010925739796379905508440619383149733487590304304037226177849006519638130951313438849719400689747163667920880043633498310351556131100160061247503108173893561709410495401220802173640059708843811648036513018861365891218283533960668898043707690240268233078563037474903186661351519605126469165413031731628199069740487936414158071331747885873394123059270226422364259467146502526585725572424230526408248973271129951813443630940885956918524988683098822934158461098823221989029044012776396345750513309373923717251324652727589121750075509819040183922618173799149731570758742770239546728425532149638755553924828131831271609060580926249737546263684192519982172988851267165405875336149770990868044888388214190124561491001016593795065465197123818675168777703701662664471224441873263063765958363880289686171737976003876042932376472395810259956951970011237803757159021353738381952817550143886572684118006085723276442326409002416695561005626215751729848628748044156678784317136148780145004987702892870525864314164454287701986594988739188961251188168995009777236284697104808893382139900663487077430269805011654562096486663729021563304587826336010606007598007702071263337152464797454114161439135601495228283288665085530067810824730344897641823889719880389313118912659148535266954300107767636989494942929022411409194138322349087044866978045029724755022979750399135417285640778024398511581413833787229673134450446610764510940436919355891656029294645133545606993226299059882525384400438096649120340681256135347846946749156505117597940831100493918355108956973535642020755993229315524793386731324091918398503792202154832826589112983520894979697717270806323589025251042628817021332375422741603546887694858489645263277470654672483671272892916291767957810153808097757561331634832373470934808457850764983429700541158764715199859928035736809633726102626702944701639807201148436324840911796966294040369209610548384688833741042171436278717880039872267003855469895559049846845390494062759295407098194519624554202410769020454783463965910970027352062404466453040634391813819631992098989232545930518496324572376756744673367620166810004055298960411360489613534998796299533510845265489681258893565097572200217636661890349803514147918830709280006373754516673519893727892057413096916059720432230048732183799763876231699791345551310872913538997773310600272240881054366361470270773373011460691128827691527889249349038749965565113812672519679599837321551978412124324848186198806504202376519833041010603405990122363590958420025065736131372446171508664726491804435378815876435110205564024366548927310309570308475888084986952371741706993905885606946854094572438290731386555689124561027754174953593840327760105949242766717245218560558648818207015779577376239061746032206331921017974260071678403658019844152957845414894605108849406182491646546964133626703764587528926677633628250073640256757440561861782816550194053271246854563658866175898948005695608856829213592699617092564673682535759250931856793849487903648562440801117639068369309590245204539489118885733851429961482296774856250734441963676275403987776151201630122592478723421222890572702545874330059033509013957737919103109690358039306101626253494652999068647416620607747947292363341998179987404538557148306815536470749314670209561838550454875479523622517953130950417148540467264310810609171821856630392286978825079000154271720789670074395033650073450283398916838081586834555245612802168408191612814123479044559330222241916678441711316920139945175772395339381712522017577639703573826795095162830539415259078707007228693427498297377636413815392604894218465060328211253508885412551542178014205875289685964695608022264441494039264881963944700249093009089596261004842937102453395943432389777963358530506790941162274763481477971233590420329930823470589609230772254322517459269105054747132351365405905515888487485122446055958201757300232651701004989669887240824649634936546328324590861280326477815673419462315430879335775812523458924646885518374879950154979082822501912943595074004427732943573004439350477957484285534879172412782842232405946999462988624918953357040020662670205619809995463049285219057931832179346630115292625967806843372079773280978981409789075724162340005333338412100691075447435202632830961687387372142239715178329892661063454976013302833510924456603121435645802394863414849599422721311039015498170116475884289565511561752903882856330322457816748226020208010785868094952597175769390846808613530939769505821186457030565664282595176222660237141652358234582018649311589485282462310166011472820756489096113811196076139939200245447625657697672399205136752374292373428389703781724453795421519189045135536089496065567186021322542443415805049151052573186392001495221577931058204883279851324061378950767514117931673019549882060634258763507409765923734791896841767154303617812794134602444262071580952654288961158370693142283844050998475501954282565178340671159724537643069914491583333547840177621344552284662114696300433740312897490196818721862387738427333736220482923112612467634836529948670437389457666331799966853677784509240351264829665918364539936431069041132017265376290919047113151416979842602184066313772690032163784906492795181471956850743642500850596661498634745370144611363662307281542773619785473455923784548782319929292762914382879294342603154346314792649819475565546471885268128478029832261735098166671897736121382586274042001877167404319689967468427706054142097901324715826138631293962955180307565549048570476570750456954265013553740806351708090425986055161361033690108190878899775053869743318672894006263955375186867765308658435606686798200158451377137603651240582016658675322443878627994293837311066153450955777359235431046811050838265596317862847132759327846027491089976477033371241680024473252256485976203633267406236449578718459158153263895455063322160781125791713946433965871798591795778351348436751655490838467310724278045423344477434338883860186031040510251365421126751541617383296587717592742775223243506348246873680635765636886254810185127893388381402243186840172441965685592377506565203392597918703158169903649345499079342489560635637236048974328464520522908861864634489672573713217188243813558870431897606449794433802634335485935047722671958714890450107230675768628463542155304961583953802765028659430827743641782442499157510484899364962247077917029241455882978873805792921333594502460093879181957418662153973913603681939373035433887364184310620179878351887433502930214091903256991066333712915514193079155861223616738537161894223721615540951362999360935858167470044180166382841131814903454954405592642958926607067875581111239320813449410871455792377375426788665686301615285705164881870588334967224661525711455999650438776640668545869973083522661323742405475005425629214548759479426371881868225772046898199790418585443177936334734910981554023636746851170267686217330353749279809239381239632404910179112881909272560586702726535820698862639681473312076347508283356615310076366870180802383124365723427913999558935020912121251237576725930543400327503526552946948001785368396556532236309856152826895554979854643440863804122388451532844004655630960071973787880470209453896066637469747337411852381678187397058957118540217329046964496686796690802198050211034104925004846197853968713576454087515252882873431738904362815469730387131073128457410093487502654367986002842473991823103202633586272511190472760759006631279784260780488591028263584092820178026028732244218534102788615918108135125845149313511187815335031689260386588488047982026950315455143098815460348571255272048509752608524751150733041436333517460639708373630381281137528178897976037732819105568967755629975248654906774154456402593854184690327614337963865988556531845285206106986301348674072053549019176505347395105083994393322464697082128071707566208495734761598979408549244129900600671759805812289460474479969542133177730753092960237096078727193423478976688609311331482264910040439860866747279783837027498933648249531159297439263634989811824592440734705982075278596830744677941332361838248851915198377850152999329364310621194347409008226322774065807342962941605301187120533928355916211614446307059823250828826293470108994169436668486570649273056996868322714909225284699167429939152254108443979234856636919757774337115758249526226467663216863658541728349205138104451109769335232829690437715363353951866856203450239470852337225739323413726814896013856987689511994142464114725348604584996783377922342436354890130829544135885802314754523864173177149480139085307783726484793145805670907185043799108037138614474436567284513111701693895494920068475078113528215962281596238883653687387195172918265750440156544245095936645757896704636526222123988195259797390611666817252138472702605445891367209685071972208979554930957143293874371838108682196837616024017187475592744974125459664986038423145998407493675693836273785307812136398179819831504972250590965943296847659583396132871868396499709312989571008693507823458579701103794131317765821113389953683128312170596820978850054762382273168731414490872304759485952673683750142698982366817457976899500242828882881020254454695277898493405782821385651130483109686805707622077389534904217730236856886915289012435407678262047633696375938862265316867543688228071787550275775176554359933041511975971474751508602228113021500644031965727603836705714632289592115671485587117262066821092295262376683583160282459983429267109686959974712882306164226547762193195333581951186096973886680001452004647374386612554399219389236276863370006109757878894637003320664341371545011124737576074336849487399231084064114421103916639128666203174095118212961745068359385513088475372337800353056349478236247392375267307954105676895831317176311500208774866234204704811372904307560472644481921722719972035641408767647945969702562965728618021466190425563743729580917280594313559630897797578663612968726761249712578718120077824474952381381338477979334887258701428897910437587545569677509466202355224579914934835943133145253004851051684502601219792320351964260589782265410739022811892650482829138791102570819599212688921244735996576566722797078276587609017325789071719407705424810347683350076125273645629096304717264016685825516869161277820889246925568285260387299963151998557765546100085465606017607111034514151824053155935390060091940015632665499392546304085843588907271484292428804042602374739128161551396317551986252864592219481760142862939564021856425278481344142684097947473494227841872939017803037191402837448938669773529372374011844988135596048700641725539567833306503682444500064053205062021990345215015488410042142293855450947011816613987061774728859092064383558643824444924576001946948692890044457617367295184034789157665744360164222390450870031420270970312123472453058186889541791427176792778578265259792693251011659805052064192270620593339767896914768175905324549730227593671057108383099416968365128479812948167222112316538992589580832182602665672689607951135179836432296759229148995991888847366255473917409365273765702661291797517077651042593585196174638255460219977251807639000804994036074539963914118613669979056175484127388636479669004607451272098326186313286645708464528227700484807757269762306574879241423209394674308110003884133103644933387133241818135110955548308456549228719621036114687629913318051070405109005939664841722466363216323412504909475306592101221375216033019848649785439893380915676105631762950645001642620656431115332024801488141422452402601079428558544223735490640708331877673959989415701618361168001570945160890242203540404842474651648623158312739843072384827050192038363117865569672238266536133478936796455077124118130551931509100890515132734825916618521605915098965271135245302550519757919273156138931548003886694155968143815420521214618840746208212641067835743036815863669591900163005706923042361248627606596452940852819240477291542229331197982219667370137350288646685480022580949713396823846323784024641298852461266365986147409014925265283142447464175549573355537223770573099805270848080142963518753155633678608311146345177555191719521705097948076864457323045471398180219154003603293068824462408584390916264637489697488309315255378017258522728360149965424309249188640013386864130200425420120510269468158898179893285643305519732719094987006565748080346057824217721511744483025952848375396403817667111448825982239988250504725259096871666201408654284190044731156158584691862995494822182502361153012596016283558273724715378398551952259572565805478064957531400877965351850455193419557205785712045372313747838084442683025786533696125478758974495947315827055743312123660785383539551972960072712293785641760097029749628422309108668045096389819299063305161797004422875586229595886700283422835591175727701849287909674903667817548573390746271856545793752091358334132989747089946914771368133949670512107627803679918458443611544366961393931437934472176927282887931981927632129168095112685477361405301324048049378780720953010889619306747588282406446315164742209524563536807627044967352830170598797143559237459265378172339497170876093237070097405564889231257246302750716253515462026563241071422634409985135552861558602254542273190229726957356694558647949659029019076821425020144716782388239607643013266572662080004801312080010210101820242705349694808563316349354731892753168817084645517470890646309492256758149041400846205019789111047507726402514113773521287987430592618514602424704095114078996326543568909672547712618235684937579656795083173219943328440906358591399654971053732237628274332317901495141288716756505381204245325375373468849039310805251574789576428401426889611952678347777175006345746262664702784486797928463078857828243493863210734692918854434050592974541812762703635680048350722475931696960933842508651852931170261961254759267335101782021330726202199874410629876130015095536637081551346022858057995300447094188374387844940433811303095906229419013135373638597292501865875857025441178560397350165145929746860617792532636913423052984535700132668372475923534618129925588378128622933247901011991945193598236582060996001101924050839823497168602012313494534429939921831088661006933094475201351975787509432990275095436742327197992834999837886693616906830802920413906564672153892329527680570046552945961874433545034287265121297599273506003854733371210193012537370539404063636662574500273647633892617520508624800370911103895110548773435888863871409841212452754757589497718324451878384717383978520852180829029538794951978938858876832861059463787157326520951992240098081726062222358625217570163355889942130091492255773118628350509578542823995369204768960722393747276359743528080843997269854175802096913351985087404836249379813131174742189346919684010719429659757262360631263705507225455668969770663291984023008529898070484658138934609873262604020128059187949003852855233209747813515583511967245129669047648150133898257962646677281015769324437313609722266049088071511227448980236601921277970279637851556905350123284805888172580544046149124359418798193960135863176673740007084206238176179645045943353233152036230318025903492536157146100736408495666542411546779244554873002892631494538499983829923718228307482562085627558615235953003421507265819722821333833266730909749527612808905264032300088366520785262953303308413109706843371006476040535067643124359031337733585706060616330150539406660174823938690183838835385259270780326723880998791879105952596417026762171466871638353212971270596213377828728290917006691221640997550209445331952041252511908857164253608538891139670450120650321535570269767855604028161060284124791792636262981575857084277514954741179072234993853485239758341654080006696918416407520667788867881045704814065947886932328185350229830892766260149616583648818158246517172719362610290596745849745408478670135061250726828282139859968424950148207335705384928298030570718909469965535304607347108854391052819356265043776657464317970649530363702381626633029270214017792173146490338720799590923785847408348936022170109470949907184782636187408958522304153153599166454889966810831610280454807114569770246676119343378994707983442447937380272774502275728430019178774853426381992452661070664384842102200941704442728695208991705213339225278148650801031765663726372206937943588061952757860650381821509140259700438961396561197538511738544444077974543061513073670324700629313993497961769226383700883916057468726061063578055147561448780227716894545397880784355737270140766813496322210157827288547862911039156449498069143355635250433255533176858042427042061146570495212351739566644290086993157217383517886821329499431597322248710177095980731748064902521300597001725168093019647271311746353360203092071370607736700893214659987870834705588730164159970838495136601488325051991742525990594864173595947685067719490519361035035214544400089329793708101747001282257449709950289331410495698622905258846395279920067920149063279852526113359717189334453709596792274561525713729073421941359618063066992733881377453188087304892279867076295043762423658439872276479552786125607320030055846022592007048254381574321418708849633800320491311119820212448753930156230924679537322983210161140423744177001016457635564724005690770835127856505179604399544515303652230838602794279058656383750803365099042734712790981460656485271017786248825685047545607696135161962442154420940164882584197085109073498615154668130653135309417738829421279220403913385048343337409464060979746682771934959223238858212400328767772871746352796643722345589324814499849437688942462010991307777679415328249489404509628951121737358481066555281110353700997455009074327251336130477215386521394309495143030174351195519550497544964954766192103174984810825773524190006451848499259916616785527327255591008369061627599037641284014101075414964809175778725449766888328053555227747060080208021996854248608316287064019169217049446068082210690587885035932900682267059569376151474685218811166483950095900164332335733785710398849853909356683624765819900332861459486915644554332801336975643562596779166759337077893835966246462665275379679030654277707298198615606372515626649329923382883500262037739280055943417854059610201659958724573690460652321180958362792113197470677856699352389684731340940473285592191479303698744685754289097929501453741797024230225016707583075663840779387029625780774492392172222142579780328152577962874347315877928366193095619172116395703942644200310659389186654243901822812464345498739744179680259902629813443358325644784411779180589322353240104856765694795807512708423156902543991031158789059682741526582015190117843007476393800847546003258778529164471583092940747857152719424295828520559484917430330098346467476240365272561402539759858266254016675969238607641740083085948267724476442294428105060049530070739212857371628631792789506996546791112126589414772143021213706179567841574184560768636463437039729717483420168962962015223649285664875556868367334891612551610307586809818979495465636059795273601640268929116668453751481294555716153641332878974263799360130141194708746311553979102695048008235342957208042235479779281834161409865708610874583961853067477515506058486389407759344316690029692057141536371109102270205071509746833221831844773471048700205508302889543530664810510945188202202110410449196752292644638675269607628186940725395462681173584050963398718638219390177886645864747449341224079622696725436210889454855338686536304741740735458265844928910755667220204656678968547709497268705125887958289852872449407623884915315497536704015014775041751905850493838646044567925891533754758404816430066029460467183646513647897153656676970898879743593443520579306157462290168650155820667522998198086760528852907946935140471830798350852262452041119971107524173496755933790837392474225946515173788932128388289155929515785937363603335429913059021065790248230371161541280551995861691277746696665985936386666912003939690494295201543835394953864753890467087465261765911908841185804688802218877619609909830099397402728796805387079318165086895076254995720793851362223143751513370589331428594980956774557992563680548052163318685375890318618488701938121896379614395030500353667726999120254640965697734695309706304959593976463878609071377994982202591441349201753040152056026128492746560974206920376474335797802705616540729908874142981271001275098288845931499188497742810068169115148251497644723219630998174005983549384471035782507349287538031933809212351316366126963330055431856848340567829342575693210851126822471835661220619707253475181893569079363644055418937441387201540932577630116389908388756097254848917772386304757768504167016252111781503235879006415133619302367857350273020241827960979130658766466140552318918281415253560882609297310313157138747781138052944028029386971112855408221677065947540649662381434920524990254745224826429698076887233326467425477747345289056701915647441902799692117046407278829434295875550086253297342555858129502140269968615211275082316287576244971703827030637197860424297258905405420239261187052839989665413837363111536429187213448211933675043698152239852232526410239673479636301003331776541891659704921234771681050586532671697734411652875005587669205564713252960822573254905987411650169690257795019569544271158481336302911753004451635797931006492000916935574999233050551393514331041124374457823384053254820242306971105444896194764670107980286798907215739610381402318405463864990624511252302631483914925189793779634322835802258906065048669916125924069630778775021353372762387631691531431088223696566512649658633484301728388039138329222877708256740710816758848457267976486076897562015476024968911552164016229181747818446145030769981552304758393968625248828716961237388347903763595478645771495124036587663808818619470056705662540249314529006756802366459943547001540493401491524357260897970277379062574637129755904263272207120326476140124863996763660200460466975415789094840157035226620677707671718862672260451241725692113116298136327135325979198429985013801444438039617638745037755651662251906072811133250493806779862574044466553457939008119333167321276452196924964007524936008719061540679574822427044318711429576536674073850149042405864444167980032542018533827017749704883686808595902536031630731273453732207985400683018183804161844261810402829737190836153659939477172094695685828427181652526661520813729927918565987049881478015987394288868301769578575692595675133478812695369810474722617253638300860671149955464524580676478777318241363319755257766996931131367446244967409110444298702013115946058422593448445858390784280801565533196360542956375052767404562240702883804098149111519882352069668374062795829846633520040899260948418255585490118969924514003137759998535113255659413761895583855855851672314310596465137998603367254984171701755488885126080568145207200441433310192467054588382285684602336993919152984606109305331957099587356761271943236496049409775814374630622831942892456272821680734480818425410969192718181359270342936789986602300806547550833139443320711031420142423588984953730493122399059086912958641118050957853108798077020759788657806080082047471892468884979157220181918175792479236547082498195704086033761903461005223318212878920153364518436614272265701579968588667066245589393463396834111619279845706436378512797522995866714127414279953550085025441563996200444385523949777525335684298285883838888665131544352697303385055758922960200125392315513733468011631197568586482330392232351116241245015381158967454182146158029845559377260736301759147255392611607131274938991950025960619836152516794574433450125293627136282914028416566241121424676529809205086072399909464104645117556296181938609444864748179259054464327519413220163077004145325224722442709173543076870945122783654847818541745847165069132379232613506944903090839721272344215300051172569496758169085023672311922603264152268595719426561349114957404433201107711782195141867859615487892933327722404494317422191672539391865017508393149822714588208917845060762913839746978530802095859488643801829648318628840048442593446767028022140093679065880509682336330066017144347633331611879549484543188641554993412923513816278877290771618141702486137930709717200149514236415403087672099342809919221465184153724270276940502576156564122776136288824854180682257712402452298326333963656994520029574356968684101625467743692571481171100409499314751826459413593218162789066543731577575747741515682631876668547477793747403743955347312857828733962174532195174349561358983048185484744173640446552927306752205272731090720625868589587719501651025128730923363397132083046654059090155236051216136148577911193709126777711531297950916253972607112067421214285967792218883520840692890477770688518083459965557448498568607993943577462838000765286690909204411362450721610989240735680412401134662002877375657387458917022931301535027419398702641323999053276141245115558311351212932579509002659244949926873824150780674803708207922917096791399210830642428045026241815510935656004394961871837944041959860146238031878934684639546561634164045123630817164238556715255934037599854633395056533598361976501924617039541436478070621805935431253867478212137533278442863048245906668820933806329149573772774035052150583605645901566232731370110868881027929503857729583338301496338087828617977736164665824644168411366034664822763911764439839910645907748432227923704672762626664028923142895383543099102102697510583342659600057747784188505732984492863105314681663462261286316559352713343844418715687744879844496225014614960747747452300308534688613572941901425429938740528105110932425575586358354667622154005384615229965162137023191553471072518492367741457224344948513017147824161936954796741668634499509761801752277815051990833693993336630929329559579814031176698574263675658355075876219144002629241050811452092484420505451936331186570409330135924422660414226190290850846980760200530862520952710105034943240104012609304017439134574156832223845309897516180786575433307591572443546873778641899128617298229056410966946294680889025965244153200949379000088168608684217573587186042461614250888203816872930134529142894232533691880766870754555861380807999091200966142969243739774788167091793419225302021722710182645383356478995757831216019397125080123840230494781465747695041630472401543687832925636933416632752970068625468968011182698063092343169568133375691109547845781580381638277686828252437466971732081223674488091650760541734853324121998747529524697537833642687245420823591721923954014737178761684448013163302393602431152059071317437312431463846703263350078522119565265734014170628604210067627431344687267537449677311396178622819909742474369604878062577011924906575877906413245526074023498753019999247591887734755694481951564900984918449903478058640932981980819796382280018468080844103965080403480697178826776416341802993363525745112466798633331567510908636303154849806914474731592050744253612919036566782901343625323792311993694913271607646282491049713750049721884144411324597714171641913500942605556039661434406765396967893994096728078923798204414358608346039174073501506786573824275461961681048358783526167650911587245793261473385980959011355397155747126351815389827681954409512063118717830299975708641830430006904971953524763890908791716078519174062315470214439717914637245064935832824609810493192446365963067423868767459859445928192509166893207819263748624603028559277066402447184347390269466151490253783264354106963200026406693693745862253247146444307678647085233519854606579136824746723108350663680949282309634922699705987443856170605742542976598550165960527184453714716159116374810838991507479782212456636539521608257856595786788823957665126492844206360609486097066975010676237477099173728016604438607724098945847620105053982716266855445273133100037891470915066856185465686027522901874531316718432785239034576736139507969435108276183261439940793691217069926563444960068017244447979232069050931815556144661703881367222793461267616181896862311152209476996452416044439033646459041312439293830127064818589149462176833584191328979969416129720615331461378561101168347021166994413519818295252214223850198224042361255492021447178171039879567719271573391577660480248317318620445341619142880145284025483104641877536035966076832422230098739450945216256565597997903536851192046896749210708006026591045552586851044230981499510846981519785663339250760610763295238740193078478181015492697499310542399699235188582131012749911667815087694765419043071279085296035346288013560569191438043885893970722911565771333135158418942090360347482724176150667623068444290032409354317987022497775626818300132116108041332484686071725985333879070232483922938757510269771294075899535129575723635248629779076556009366339330013520159621459311205925691559270155607574050658610873730083363677902630570391961476572482369324738231824042246258985621993469159691602940938213111221778186726549076917169355630655130274066707792216063354481470004097741398038009561913023929009838470973350604012643853865881574061367263411211205246154443931622790003659609726662659948384060120969728221318354629433484961334497776775265468768682218304683577709498955936779681066860824757692974020860886807548889963105780685380945059212526841006226505688712369903089291754267891699278230255048549299587971775651633611441301394142523778455428205770716332841301284647119774250927296752121447667493893856557550085231986339323545653414073552297102938856618564011539027844908478521242191133807808363973717016277632353693680008466989663986635429775860390954398842308553236988817602222346968911120258748776414201847748526804295935158317525113447212339331582237678244621675725429383811411801045980801497504501625866440786615039510424607816291033122765751305244627726731851084699693522583230465493231668002839887216665497986915649740099325763495723069182808913281455029898311049362263182074383800049577972577339747640766228099709388842564193398396147900887506139845338418573054694409577733948075510718942930936195270409922555936027433459921517125373900182931348865143301812190985703548947020272338251141470171805512665172723605465980045313163598709856526175394191704824604163760651151504173147788499041311631701676775551297195034610402704974076536102046525326966147804252036496323482921026800282552348255037705480785974544854860390648431261628280010894441546284752308942585868103696033629732359507176072142504261800694315162444999135168121703986880179775018946922297195333583718736554218092441327003632216036223082164013096716427852913586966841909676455321129565862634208543609532629107019612052997843330939691553382917146017394341530048664172012531634744958787279075205379579827918339361065223935616375560638845356637437589259835313610608612598632576883532996673775778375875724628290703495537091435508176309689068945122097211956102302534710655815398479407282915207383697497045808811659317775232790134655163347987104082323369895045329028373224556320961272500950257444509752001404736160929736516700554635218537236797852738718146785157676050954344903373682507725148963280329172360340220569825081248404561723279737509109369501946247422313647106301503433224915508649078862407226502112853895913092257368172490194605775517291801231359475743651563210069134520541164687171802500153439148016029779631748479488583604790361468333526760964050177324974078621673704877206118623974092312831197042604451686788074615968154225216637463477470906271014336692093092693638414269010480433276199632236195798348670581073774578296544811697786415251415648408869841056685702158176004458775361217549035317274265894334197170750046179464869215880133395267557686375422473318996373028146239782689774791942150766537653922191127828192100174503355577743866583948739074492293737907567781681186345421039097900471788983881866711258767362093574499058481323129950154186483236958239536834670002496228921602340636281135590693993656371853835661083278159116444460379315627987352950693992128821032177593755880655491560794283278791939872308722963090553812813912986378131372179358934042738615860247373018614794803383603537525726516839473797338721868268545054762194129417549447398718375465909303836393765728232071716968970496351379011370840155843930187689615216693996496605677926482106145460677959638073027727078681302354028292336740313588375149896910041702390748904275781709342761712486291265447109336608676231592560359423096759373600964173355001687399682462286829399761487202485974026758904340130854656292509315220362037213257100984121662212747708171821786927131751708476095068215489961660393835063196258591006856894574819984317558855996794066916337165087988055393325244797345217692723969635657613784637670425643905364410582185509032150551916746171127865467882202367960424087354180611601158566467005720797907440105322312032747787980240518875019804418340403946465745701442242018041981969631182644569642212455937568372346465289274664507777785340870521861184386515567194921957049919974826944998682328297727620200050177378693936450173937761630612845487217315540937723883910637286234590411038681085360733403794864151102510127118921474307920352387390020625601927296227339202335220108593971269949476340546226776208076089670962821620609326920747825378380409022708905461753897377781209414963536122939485198203050196806730755591772741964780956880569469017841663221460730258146979507115203526621131618913855718810736068138401259092455712294280210875828415104701977892762119767554981921935033748857766007472498743421502749408131719270070709767411823862133564997693130667581312452547977201242010683036023318699850910750522160050192006130196392133674294088344582247608479005287426492465782788071191888769386588123996849911104128302628628307450797124989006244131763832016889553436926780524148988209519769541123861448861576086640869215993054782810129777353996910617605891443717269501397755819489185729786638735602747281390892164186891334192829550991611464688641403018983644053105180788550338133477035416408445394223702387537613011569589321440158710818750655722227824093279044409172743099310194535469411129186992117859046963765922562041235187515681291887714828280242145893191244412562770542351657823354996486871167378026112527485949748845754434365155770945696077765882645348419438116608237269086590661981539496028587712319907951809335984047975605551458774738494556772810422994791782439080938699759678178091040042477912745332604572038403046491185852198385297057820020378322043902250430163166147395529480025443425669353399403560614521148981349659793661079889549005392754136461428628390577268873424980286923413839484902741868477250652460134551444839745028937114877363248074626894324533656999159306447579886855522698407751704560321373806298264991527118490389102862801673816600446631858743315677904360866889048385009651186235201558896951259884672294163563771955817887500438745074605804802997567966163704794580204809023744800948244755978573357731693169105740866382556207080328410388834564901501754338059830368966178448783948492816150941086263307770808609187769029142485673350049050950607214524905337963099604061737820716201682183291838429241688018302351464889092315658231836768241066513907403758256481777296681315227718384406762021594908878447663255826288968820705305895110800363645370792732420909761523736483276569316855874093437111090048871132083149592978227277861098614470257430001539322291239343682274164194688622001959344488086300116357259795142615658719331364103259617903008735737353473339631564812481630240640984780478221093750045525037579967544980007570093502963845276193215454394611281671965309631738069500724180430359887680375359417571805313125220328527282826913282450449404629203584096391481956538241409812375055653254940048993285026511183341092354139766190865282056377276725999666099606387089737023893807920354210467785885507626878484722523827123516421016655760492862953897834036677108505171145405446912708963846227940852851297603881362262894131374315108815801550294854166864069035498204058812293639697956383580353802829528087488878430490280415731542802986857788750238915897105366293101859702931756663609166067975746609611257568844873318280464179512117542322103179475895675662228255593333342836346547002195124641198045163338765859749063880370936940720125137024560751479248968749900925703660356938894681473547907142009255508502224616662243562986938331373718374701605501768929233561683042619624744405290045810508536418949516458160240117303329415421494782440338507248499265648045424688620214919871413094847902140319320182767974976083060688442749249246922494344622233442637829841618373361978795505731156926284983873994623179038433230673184378848366475291760724805220189385387668011481722986285091120562972020534690743609386430779924038451093413441848011151100216253863182582600316115026398765749462207153513389484949831065934326315695652264973144974481889736114741371838217554364002944644254605205720220171395040215142609629073513491547145750397328733565783829726493043157949161064680868926762940867086510562001361951282385938036058006894935204192757300775162713574600500330510479167683210818732681382625253686087868317739187617321914077111514120681680161557674167536947976542870637035357236134317362593375088382523866722914847144359554386436163976210747928481469328805821667921125423964291629553513747849719234043113910567510288117329231238961480796149846564432057897536101041469570729315447614268734494519319526898594789657415701370158037227365385443482020953439026632846613061644549338452591535800532971749481178463944330565445250493363410557941959942016060660590017701601819604382621497487059335250390564049581576216370307055889055936539968160420955246870166426888905518275860111029165005427153860502242346116325094519882485798589925190584727749600574579272856874098352209887482700613123721437304795156423910340987469702285045087823818408632329498850090985970510776003880490387089181504172271730159493637315190427440966674614937550420183413136710883509716384675663399194088090469645428527713061018837546709905188899816965361201919790118131566499244207144201752920754041724917687533265707081823932528564964654829533344869154975128898023186429919800135996575838116218950934907332788073782106845529961692353921305648231187013914675246185949760123715478904470239929090881905640044204995962331193653099683519139878274747367561959442677415353902389020458963464173024241289333860647446962393802282794192332704929744908772983491114128525091084585212700713874778262509481397630795105680351382556705498488015131896919794322421936301048027911115018883623033160448653736839210432795593000694642530073331216586197476062081688136608766281830172986147977476332824681635232687563596826982153249032643846719501565835029767354750275492053066512680089209154160911089465858256300603927018633868678692050505431233546805560519575231911402341629404799100688283762927371423895330009343131674966463841495579881819953651656176398870931082423555232874193915462810162723569277259021928823523591201050157075024977056562197807001342553551403641667275522388791950391748176625830829605347170941267840940163708895896530169372065014575032659038573515226963318455405844349632956163601122479989824612246393467156773921104415950387449661610838371505027551692472301772154439595112790994218763441036419481760273223300643830282376864750765057144776051673474552432571496224477722287941288616598937095717729353698760954775155548718559111378529944941746934927930166330231776470189104916471580288580042281745659766398870260557161693052624781603818407903267889106732398215556956698530351637547708401974281465659794922969860655857084294352261266032721709728160610684015859255994696465384542277829117161604021940765702873957215727042950996142070237494976023200012796518946876675459239298075858443214470339536000959682948246847266038487326204454919544678281374917630879763755713021585590824396090799128339427527414180606963596004697781594221007579859354590508075169970577390648685851103255113787075208111784548510414492979721255154727131277372881392863232221636270238498403823536284034396362539934819789322841686611387575129077308167951044355305690605556816999044680460179388770921884216926527752628249245179190415129891536523423769135625766302567781207473027097900580802951351941115348338694286731724846317730449692512119758257223955486711939557707318704864024142667360195042645219350874664593744850958459848851200868346687553004030277638012847397577950924418431763699870860243804731146115230276587477314285955482952737160934633547868546688796113614085160550919690694964372609447651042455736229464676203437503091956638198981258169486660717496440463866048341773315410533337731702665199239940352912330794065695277153538319478129634865321267396654498696837175259162062178164791021711533129876094158472540371986186126003048144204368660121471566826183408080810631785487140890052706873115848594656745813972640351260392863683275129909283025069342000537641220157434352021592491328765489131619548293902776359082537292837394243807852683102117784163606469366995235602749145788885259653946967303240095853027140506428358635979860269427840339667176054207931569571253212861564664232230649624065407544405790742118686449797455993818707057330180170198320763399545611638742664748407204434742188564111504020532778493988666939214544850017242103161712862809359225317028642697378069854674283917296413671834277622333313149973790014980848960175990068798493168619914186419108673277672032719031578505049524080087071249802352091846695055416036677472457227972278480981006746350105281240768913184426042511893716699476810085106669450660132833406013408797337952807324173932090383276457704710028461982170526568677544415896395165254342232016743785494072934436127492722759711456474187799858097228523448290576060460548718172886889070030415422647238434207446935265620866852011268824349464324709529746258266013842224483035097334956038805679809798849017076019329475566708136908104722197179167541981627398868437476740228283092633272610592130623569366693419205801247510093605193798661458501856386975361954440964235041779539336017592391932393266179237779318409214290090972085635793743424813068642496048140036573770996411328790366645997517450884207709639984150679965106102870058793666818625442604839456081411445565277093938687058520920015135741033501854606947958290663459487871690219800668801943821788765299869209985903301078469262928038654798927777242124940258199594879687187943816510214514030788752205514189435134176376596041034408726757477806802631744757656196092081215143321172281444228148805553148980344465468173714467635798109204147162766883843854743304531131787638843879114086441068204794052947561196233613165100475072490569803532202630378881724505103006056333783119884212528907361707920593441211505116072984280581002424612573407264995950220447310618950801187327737461284412087466213384869634754335334903232009822957183238402534032676002992932941815948396262327423115423636877320516856615408850039320131547614599090468062099578962888537306846453488584504440230865251936438224735073087211683568589588407327748051898759397911002450624633412889587321529845013587451420657898259209321725706749436109837257198149973646346177694089492569051939085650260634989634609079593432645104928248581449999821501848384375161604485591512893264754022300730593573512429204168379610267018490015198720849793566845954208234192806905273098398642285767556332525576217891942856433676072551313762410597195182196119501423293565335681968448925234282710881245595495263023078952275813151844257209588550390636318554182188431145036727874005754079194134584529154134366062677748293126795714132501119434572227053961009200851918886733301679217216031786071844192748968337009819937154754147419108366656201561968870078671503242507072369445816927045657063078528766135806092773245489618388864740696152641223266577430834466926572458915684096632175268915954032356111153753166424607193576973690828664037480936061589674545392250432132155829464252923497906500158377989635623396065430871540511785664321407861981398408846750487668241985238873776884012399082136952163286151417111282129534997996192794900659425299589525938141840811646448409724885826212764302987304132604377611379428854748609705139555643579317703075788763638710628464998447601882017055175388390898453942366539945218305757551062404695639539629755908392048601642547252241106779124778330071038258913131438630865943860576770322673662998770386913648653501043679530217317216546808115380988036268634317035124078662525759884764700139175586485807973478089971699285814181620871999213633635455516018598240708960781919287721109225153101236308415211422689906364261086372908519549239708287085275681384257824976582151113154756695571273000157756228899947464170883954447453914578152969532737335679856653666381304445472199939094884239172457323509155345934531204252919066038984544149939415129509811601304359841697387657954846862352235397232456962911582161845440817349666296030528334762701265398515685990627416252970158925661156289767315806603327743295495991015370861221519171894820870501688977353237344476960317222508752606632206914051955223507373177437013646684224233834421678838178990520049227996669229110949899359180878437741384516135226256329495615966074765932775826535340526107560125493682824054833810906143202920464677377007841999406737019895033371278046372096907299064482379389441006576113895076586134536991183973164845031206187928638950826661391836546324714354112772560473150487384996608342530453111642360462843926183439991055683178292500261167437073410157871979906756231272977381703053132652238865545142827773344278574833052665810338267556613404504623552041293635608772280275670901941322182454399967412547124837861583085013429144860715165599026890338344766489383471467796546555048619273981270768410395205571420368854916108566677912192994485555789972321640260654977393857465146214225972102608148543169773575356651266187034709008336398803226521446133056776370541565985527589386973419058819234504557095582698599053727131061538828939060004286183207062908144758178246985300078382394676710731486525452698984847165839751309476098506929601418666387197080957641364238794966971143379169532666176120827849861566590861758342140366826846096004269811104516543834199949949282850653868629554396553537870153151383181402587249564090860583319118694038019570823986617574768741659295243123083382369369431668181512111157288619460097294276885966711669616922167330845168442172183251034586316251677992392095059064767241083496527629140107881322594254827723252698441256825257695985600774271956457605059422578454834009955238564315005234739948514616671716097836669955230773128021969595489326735582883102075365152597540310996118908352366530775766214538964955425255512084678512689289899547331776036654299238497338354175052006610665380435079922137156618106776636936510800969015624252020360968018006303850983842404465735189437226683404664969300643367809674701995219306561691365212547277258636956891942217194739403378548336841560093276805524276848260346053434513378665604150832353564212127092069843271403950232486553399709478257902711574079730770890867742408367240320714305830229678435841090454941870874223157511711324468504584158094434654466384485647771086290533827154066983724411947676141788837610113243814112696696255216862333895405427433172775248676851040221915126480883871538713557137084054686282109776093186875254692164870069529819559610599411157366263317096642796480641972447054689221811574296447631785645789522304164038439760521670818725823653905092272076951643220335627369588396733663541912663204014306322160429429807130634550013013483914910136560495937711568788038939703973427522886483652463491444534747774123680375144575959530053135438503815898624461853493665622088283974841736104709603356667448014927270411514623565556254640955087897614243036329766366363855581791197792659619455769100510832711327623849855333032246518207587039103605219865888753440866200861749780835784004093099793332467252327694884110590201834352423981318154958572979150436541143476214332030289570820881162294812868215802027355028397656369845307787396426167280805725249484069371120195772135546087466883711696803477012575283575891502864461228199112520461163833261609707093488312560279034867653788491870739208962492919010556080979942851785132469579919115917804793212000327220047519714900682269391913569555801921990872357115781647883317730974522010477573788668036334326184799878479010703114903502533611147562974869532654577100119576034115040190157142089276858426820047830859846775180935781018573863833635987305249557040777543818975779687997322293161201144419283680989960331142437592970999305830007956870798825923448713412826868409056992019432879803236171186039291674501979270042198865893810736423124352193407546318625071324626133571249493435718783928208660085156333797095315061656187339881803538324559121656396752023133639923164045501735934628041050658388356443675843513606855629563261159181716496159321107793430348681160354375751983177591977540042334611602841005874869991657133477868469681450234505275435174185845135675792519423365603645257889113910514840260845619989129752553649809259740261838121525438549894711153258423346935574262226927336562360703886933055769338999941150758157606953984763380030782123013165752907755455309737897231909508995246781300770669648365587181896002879782843670396123235458144643366357358534398916814554895504533131417905883358588001091276200250452974172434774976151925118815310883125282907345127446724790351701140018991717335277602451077676166838296775277169850010482153193082006469545237212819081636064132656198561820596863474363841056930749330053854132225181108681876117681649010373665774118592313263738809076588188195094583496127764686032684413554854875433223145034702803339550582796069059123349877072671877534301546549503280499119914888469029274002151169638120387285028263397651883138186703215534323951395739335073445196811835357523396190136547541749672332769159634062235799204983989399699955234097141130829996976738925834912324801459385821475509711279906329941636761012346534506897459416341736424151931659235791835690179760698282475903890292510961224346668133558551141881114561973577905795045220379612686359944967157805440597189748057801520613551975794586426140198139192492195792325634205820512633202891558613767452086899074316896261665601170890751053323006383938634855411257472508771452473890461009633153466995796983494473911126168115740159915004553245694622174276495663978373721613753779040079815386405771629665431989918643999483984334875725435841957174888452836523454138257049259814944006348425720716721674748243782720261641880310626455014270889918373139901512882286640909942552445759461161477751774944127273988369082011534992568707915705441827166527580877166959603101253076867187572108387808197685025671257066460009227547020089298896654707223121222781232840319999074068352832395380651115278661038840048798781709407096155786391100869798585955955408615999140752562133580314469364098944066050013405736425569972672303505424307592396204696445163001686544320825059850179180392296542216519438325038780201538445636971251152365289456827229327886389711916575758769927977191357656831963058564417054337525948683693253528602454750595101832270866124624072456212420158190246770975151522108329185529816921080329192631820377526489894128091483930000469227222970281910448554674943949207127598419251961426174020241376535132037502485443317913951660248964636855813925491900431920636300683062373231860768701299417253053668936178886632133650613439374994488525111326054243077425669845798139886771364238300991131366555858654145791915395336492839104293338044953826353654887213913892547507833881376669082375921011672843873448836129724341414046910611023055725099193951251791653692545853593793911858949196851940994548227366139842751306537090282304343909352935460302190184546957365188289513506189610521678521926158116264011316859741560694705974187770219894968400471431525427686358065806174341361385764268542709614361106230243878898269344247630818761850631677286426050304245354237065686145676465605679570223189783333257859742427746188205949256115351230366739695381196728746171181579988336997613559321508030462847067917809836796859097630078000954316237958603922440377300084858012444444915439116615802047261816335491292066187657392270644999716624881404218871032876330580444396226117311634470863700858895229936366912845383243886345667539761444289720621682988248727254624682527099446778959639260361194540670340129250602079277444964511744423854059786387386374621517339844417048508629410881541626490927333060532157776003698187818189627701833257367610390468694389637129653321343625458136041945999535530799054476474893355026982469913852841089396189576896493921642208151159005398740668528955234005313385420146243746671634026414987558137135542620186470592587594736477372289880019136034097204956424196071762330895579848485050890569489318625776345115868169364219851232798351040557709576961135313011899092979651586388033505619942256279470249692092300610302782482537482478194302887328425249572922613157941202279386670227359377632347481442611945943875540859864796512772946382652530327969804997634749173126612288266518637877684452695265785733438672731717475821382467047235213645578660129657061752193359180588402970271798410440994343024925950840302701682060191441328465019990982664891724682116448266737809163524466836748502686105062826562987658416846992146680573095608534074565837930874695958617744171795729667198889788270009553042938399615957794060056132242543444981415698542537708875316950092210126656040854750478994849498205880661824299823488261434258601137548731129130769901076604454671713509211994568195717807772021286180979592660843433095979910973049322873572630909719191317209849779125689314848916716106244662033109087074859626069981666073693103729840251953271532436955667688823790000430064164396623094603826439723129157298695121358471346248109291134433513935438557411654303027891704322109969957484987959281537228052473019387293529000756358207316289986665096867244970573625197282205492207601588400018546552308757114870484901309347290636215848620028748171820125214438903361458325350248533662395844567478235693971908359882124978045017725361412192663075675301909795744664485835881745917207001471809444127337660204969531508059456494928614414387141878075541560167297593943277392744290404917117742612269675304840447904226263363362886812133801129847334963121130797914566903978602740560123766134892819788650375089954438477483859074882076490461921485202021287850250233995459306249500605374869994419065289117022476578212437779832282816460757492371331018771402363861839652635307640371798713525523726207076847531840746213750483078084485113068070426237213987887628828135649322900827908460923365036777374969666425341262282752148498946891799779783176586095933216659067897098769962314804074592749388317392112215814325918803933016624117196104577534341285406751813272210992413855479213454469577221887428794403152970852293955148373204550627109033898551488926648869493135094068527699469988814438782344531309450426665836436942085030951325899276891079361350942274951585360871991683853420056305151439925381997035194395996281215259880942712466069409500655826646543358031405578223381950628101954554566892425891434408461836479400219382818251181428990643847189263094685361520642342373172847805237733160079591734829352462854127226376953925411472622378938297730122289543926351877825236438144800808900119097201778776937500740109785670439482997107081050305484737266882491194865474162843559929477725865185909652048095923107047940456293924419484022333665712398056062089671027281920018211090752910652115852232441065285574389094104137046843761445548936714760808898698682040162472531969271443380736199081673557461083106390723581985451155021837941694301504981798668956006224286310256826493499700118640951899194046110080001587190387423458786881457966858964678333613594707687395726237354065251915252045921514038872769872595786878898432660840552993410210667808037783399224591692425135856393043878863624238097856584051063934741510907216627502596948410674250321607187519171880140639640561847012471382609110152548497407423181292979106488919665059035961144187996586509880945057670974021975257306585752523135815233420366670160486615142066419465760721264009115953424179895904145609840582610195443313743350092055417965156689028682402609143527163143350130834875732059555610444336939922624532861211165335469795623149082879325298943678803009792036134181283641196123311816557016083001954755712205886839802553402356518329521665499092433057747489548509338174131610865754440084771326492141847690689509105710863847660525978907606767025956534023436186528773149797148624006921482151006542150670574790159096182668588138860850606356356380388361838636791541958769617989574172176131455298616933550763577812239011031569076014578395593907811258501544654920918464530353056439833898789271209130525547571734457981105466940513913965492881301770882940580311272316090332610885922354711560042976768228209117654486785479084104421694654375890249865890236722459865674989916866716962909301767381535057125832189010869708482414721232029851115784135180171204467081209569024523503014840837838436833957901596397992123269792176459721011311950762008615255483251938571512306808818570957277394544396409428548447935301474946279449226243989180283083107521214037316005210885921035388356945746023008613899646911535253131508888637232940306632126913525683612106217494201411269706076085235127228047308669195970058631198444981120121628005163843899216148920036742169845013183367177419880864180572267378606920659072882881255034083114746509610307498203225794476762788648169918328220246462813949386472116228351500266584703040013307873195233748256900551366925680497765028080379648094104376751437136853963643581091847350580903887913342985342806023000520178673526681255284652593584867922151480590385748944134568799004951531979104681110704616947412864491513472003725372343133925524809672003023204115970474846153026263424465125148352760336381339679061258221838495729505264546438532997791632249433267937244059915071446683455852032636116120365173292156840937466770435028004897415439048337738969688587484280934729171439551287398599166315578251543792285940824980250458119661997590753092891887368328203480278834423298576414214884223003261041899307745552850331465062334655887682569230300013979033876680207452387171256578328603627859782729078042738374496370226769029863790040482522167753545543478331163902735780314982964963717705084640258403158332789446073646418284375407486299989639953224312494215248770118998431163966142712069840785333133372695546588466968946684122047851990708416167889219272402742327479080782744593382092194010150193915970995438010821145487192875749194618161414413831272475205776457631455969927692881233247164848871905593717095189876572783491705039045033119875883156511100157135756904884254217526258655899153310822003715271908381244342749387827816532018483093425355436309974173197058437850535853458511396103369139157242049663677427647110874673517060232384433538019793457398273023408651737201250953165645099004366380153971218882163978406994149222213958376573413333618905488331271187017280152973433440715342893570752686801772487752634107905446602661613544592728428218862915083424558550029815753408867502850857447812919836653057105825968909599505615769402860293972534980673140805016751784147067750684075961447599825419529007509734641672969853074982310548064723848009306255006382618712647533869804965287903543698665760880198996878655271325843405755691161366471167568195046244062753912273368785219252624629502213375888584953611485453930997094033658071237161193746727781010652365324140983509103637177558900787751276746092326137483533717337140132982220002229965449903373822047315388734151478445527163138463445221073080571785421864781740684097443654553233921737872288099523081203720839634173886274551061304166664236810527995163981328819106141999073328628742579447021886953608862429972894381039393458857975767200029400253741905663449911605205627701788378685158260061421789326806272143435454802534261894815562180317180679118449430300469532458888801376345291629815182335659733047021008918445089783424077831191208017297551088698734203225645011004416301117435678892954053695217779773929401650504644546754572585903421810650722201133090769718416052657043141745309414909517162970291560693106793014085799054767390768646478429927407126746527017484418893424934882367188743516289547438447858055435393580847528295586959145941362405048194510757780275225333969667445439386503182324034557867054491318204500872165730783669654736290360010420681209933416081691204775632302154937884303476314055424969818707783171542426732776103235199147657529544360926057251376920181806505655347874051798429673806350730371504347383296655554965889039569720630666848733873159174342069022009568954191701207245267349202017451157864504992883840058003018456876028855574871157275967576749049419532908742839250263262208895726143961821129864054573741997917458100485362866593234611148531701936431487984044033584253360731654525487266813689084634197439274083955548935505633961866085895967831399379769201665516005488738725160724689127501203052921132701421505204738629462540432749303773999214027544529655396703814957966467891093616718499920425378877183093337573396106224079273853535739732331163528081911906392554901875789348114882053678404611428423215182976547338608492222317919960552929984246907254749921074973970270535364294371519194319766267976082606421541999383150520036798012320507575408931972566021572548646384199924709636304059170802088071652962975383885484418909053257440698795013563622313118906975659275215507177500784700075424470929215714402834234086974733637864844075956006262818185252926639478474424906483664796450411266248900835018027463355403241860385245277973157843418696222673423946256727362054466920251084127391943854650999310000139806814060250066028625185138501880889880353263346363976028058718691859731045390327979232398378370149074904493293674746217402421825616422293797481510350366681234400026784389641805167956193412890814248889833227367600959236988557047963081646524711269257244709906654638785136487410797436945730276220365456382883782440810577053616177911660915322482897770739383444499100881753066768634867596655785315883057574290219196739901561690180038230988623070529237205503580475831860928594076538333273133241193858255096484321165853825689252384201368987661997710797458023682598999221418269187366406067011360737747324694833714737654811189519313135349196829082949402644912313046444855650592436000452618504397858257181165417943203458670470278421530215573764595444570996562432554907902428771817029260861767019297103303588402897232470918555116108217646215097835990533817836623651334094478531553561630386022081935421510655746228075130330429650701432876193997469471855850302677779278931296029471870607882247419492580293729587021364612802463178583632341194181105342352759083943766602345400285462486212682213595328945247483365945822814228955732251976061961226616662961871891806839397312416404572631735661265802818424270383840028884331192580199010593094677299638449030139142137596974242971172966772270318302518280536923867074785999569245743436625224161266906670296339585213741392901882899606475246845819731583922342757317669108611258735129415977600759306274659069463116149986493821708787884113336748103043253549795271287846576588298262431958809418723737168147525103127199870079124245369411564417763736077210778670924152327077902230895830705088770020083396133064640563784268395438894669367500005006753193090118922480421011683255521713972277740394112425014079173098660440923389395963355845510363380527583225965228506480841060926024577800499757194082367423653897367939871206678284556340614614865226141514888421413343809931099205241834970147533627060643918458106117277888606222881126535881463185079420776304806832769783994583987093987617587224213958737660511328855083468287192307977400762460031385089307784717612231117134124471258428127397229564837422408174147122726745880179734171118591314976084973582823756295153101196941860097420455635742472427059378964530301995403570327950458332302321960081627722910233392268596370663707083478576948948122125066999128230319045227963179421327738098908892683844742378844169324583265017787839877280946860437437681958662509375458952562118236338621652983423075467531374386619791401886323738996252042743232859838338919108638567354328988639665196039292502090930322018932318430694862281252648830995931684176740006354520397124006119877122285769908740515574885429244187801008078291495576201704157152547832425816371958115600442362044189479855137018559199979655027380913089157498687530284960989002491057933825776677557307349427102683848000000720358099411754507751646075319175250608348982616800190052145220197550209272572229849538948703375777070887584469463970772997474883520949617584537635981556722568800494372428635410587060748451683580889446263929639591305641918904476397113894525093146847874563645560952979229580624125870073636486753630280096882448343135055810161879297300775007627399612881525112449559265582533112775461783872104216633588963581145981430429266035940087943367082817578563339953785259992087644819423891510047498190396467901209336100053013695838933925841845803343867178581759430447088236614470401266242498319945928490439170846778869984606268824012547863956329387607161864356304184394195287223007580133185369565745682120362056638424423966828856167888917802948427815658445208229633508181434791155146267797463814301001224532318677716814516163099522955119594817283971366445601009854013772008446056417712350189135140611223045363469644757872860624832987549513381917979524259887378630841376859092031102690240232992790910015773771676307890030916687280666081960981672323777763461830457424333656592322514231401517244673884428261583168903021732965650144910998598530811744549798636876607272999962749111381505174148850523087003281914421447883105915754639927057018527425866995960038494265346607931503576485568938333229538520705013908959015942229492438847309987053445631008119858936945640728044689440743023446174569933543380199103199943727125982330586428096760108104563237813939907709079467663314573499692193859626485207806156177729463292046275858887377416369545053123293669602511634936333814832155347951910972644810810901316613793098808302604969460447416410147661723648116114582193097446217718126022599052788230396768116217376875431952396766776456458884322644802016478017445895852911458440039952931166037241028653994207939881156635104038257291330573282936980544291614905424375418550151559844274898348118775067414486768509140128299775121512178640506846775180589055885493019957741572518066353785670895329658664684439956637494158295461701471218492117492180277385990385328692145838452175598221709193083217920194248280666932159797263066177899515766175879836078052508598898300886982705367543026742429836164154331495166733949797565045813770410989796492021582930003434675934923492516206784070647969197368391849484768885444825397149533460029178018387791167101647029213131093015585078209977395165895492949113018566011086708548945423182275036430125215633711721547393002750930011589639614265597717652761409566430846964579138212810489523439123338431850497565860131131919521668875133091249862662224808117900466654026994207448279891966586529648934134662323518294634950482447816102832140712716626790779023554357135516816059728969096085998864392305471113470246843327760344995518879085582652750765998675436925125438013932093640112980914355911590020076209340437701268109549345445687221211755266550777885973522732080085155603553818882983341057104840034654932228706334600670885714440054818054899065365031004172100797484082731669673880561239867030779211301980370397138781710311705618974027843791456751262265571586471361132097145783971337668431640927448527895642034910288690689808419024175153928163580918776762013172697479799142660060737330395582858296930560022874372436381977732890731078514159179386652272979356551479941136313184788110781757350344880007073279159288187839101568799493686085273499741318711936800576249516511540982573102992149384655071754351973815565395011554527260728802672994639229243595027031421286368299919635127697468539068361263709535173892386905366151457938153207123937961307238360645084119404838127254917470658133914131180410343374105666417362774906649505879027339613450914527372092213620344390647114205847493452967799836534583288146778100243592399189261915380847309420577775793572360319518441960309886268846153836327283054347540343390052531682522069394652703385510154507898487444824089060852479037254698937570630407111493275874328899655768054769097033265273779717362450772196799785453900267089178935489196783420094713271398001223917762773637767809139973663840801969252242852267900026434868589589631914796622208017689726237957626280848321359387132649745170209651685937846386522598838760389788074672983977547515624004389350190021959062997480335940034500207539412484953571670232353221222642034207609319032013138275020101934745782283730580836259886547263206274431771416257206199132218242996267173860083347057405021154280408995649893155701655951583858179961878989457670657060533278571703795327593114297446504122349392526090841191998625357167380352408192600461060749554164458270561608598287710388736781322991048607572274631527137993761778384508551354734926153204836144165804910522159715611055520918538389680299274941107069921199525762657927032160707897161761199525251712437432133388837979394469849708428816057456628736146072282210266236035577093356915028935954158222502352431234853872122854474236159107767310165120375323759607975727835846278775466370446925050391730872609409775695952961299723850395385205748978969603936904223882284551103966043373371853385241549230110600652421433466169950352983876710987780880476291247878214587958374399518828251529580999501108204654993315610746473824046207416572856166756959477607403403563819255298133016466120074674410306833676837491646396319789692713840764033554938424067251018155889325736938513305019227140076916848367139095663203652424608444536270941499355329672121791372606097424694745276741443860055133477932259681546245392991417350984774675484063891823874160354812236464268379946256931472071798878507698027179583421715784458216035378862537971287946824709701514302936038681650672300551875444068905323990359118410436016919410261976396698483666549125334885906251743283396914782555634687661145694732095325956377695900946150904458276704079673555864136262918744897667163995675173744711445044303871494108559617444253191208960690342717060285520177329817909199557502974742949173222278441070785365724003695721344815996138920172473690447809847883104628063982197006166234700977493884863587820044815897566689761895289182424429475702662450717214071668433532414445348293448982485229355757940375167091228141759328931356693974878375122999583360509546536445764367628649232716145342492585395082189810840090604184161338478882462834102532068700530456221138195538169498808256199195678118165547984581273910148320249657946846498884475284520981705519724197508378616368528486080616762136386735731234864480174348032381408298154847679632725475919779073505373084027557862383235041233724466736968038211969349579604315433036994864365722715318544941985752238432641462568052049502098591001579992394683938882270870396548757230567023956753955625639054085275314126891141912585016484943342245181429564039482995477025641668058254559787933535330323593630245289183947396646282544278880692756401312161607162373739180068402784908220409781716890767503201038818322650826547580077595729100306814464616294781133716944383942446198561267224916294275670935898109242649526419185361642160348894999743893930651879445011137500737733088409978261542572472665741026777151219707317569627618468614627166450750759406584021517982174188239416393125654337017502098926863299563686962472007537974460364472833740108018287111727819385001583477679670325325440586503485506750800899544278038229470647337210690925802587936227739500791728211595058101746921241181999521299700484506315717269585583639814926431853974778082260950251376921509358480776790035906344096649076435104743573364450377600745141731635485332647751962549966867977711930227824786533569767348443796877505217018242654062819342409209822465669815664880390401901829198430779621510911703566254052682986949164566963889402498262266826287069604609586753703471949427788256731172468797720038590054729287550479923533560647988165505569047665233649562545961027211707914377766049058028267243051718563610824930692639099263541446564102923707940475976345776926379619158981509315035844284835280614255606572364744534077370027372733559816362942421476017318906577398291104227502737999962703779754354812037556338195428857435074258659669566681676703576501968373914299020835262817965336383028038609132689911479542528274677058644060814395496775141245707030861926450458527453761006464057830706576413518529939333205639929102332773645962773734074504081602353190348116010834117932879023098796358429566242641824745470379506834365474982471464238097913432010009922386442059616891247516260361688142063265583352923414837432697229305156651040304664000643678116323519542754215164147289369234863865910386631442869057519628477816369614731902636881181002877175046679681871375353374154225583759184426239895392292654160695113408064812516162842000774081400068275618204496159084817442253756521892812851582185297117873248329038171434762315036609205978272190031283197168630811291524322836877060281906520138461027080943738312500440822954525822817083128138803548447979587035648299027466463972197558435436334800004266010015925405111578343006004381316380054000226022170674855555764667481466393055539242277795507819737689718588258190347398794126227104489157055501182735748795500208189645199518569513769474077478948483161336873031290988462261601103447128354417303130593259366493146248845247410889531773696657001518538476550137671062120971422169182976460428957225386037174810466538272046947675155842978579800614361560313757487747753856956639134336955534581913402084416186291418246651730636381419475286889539658968819792314410077722440219796414575759062636797656321452438042097093319404403361155317294577113421284402685275157519628717960535054159545300324836048722279861758919626638929009788361018940571618756353157216300904226278039572822734855287153818345451126546389202049554759490559118766066899792754819913375940359055706769910678434150203020984238234010053544848033640398929775075906801350510982921111193071908367561053797868628793205230108856651992143546121862436332237688101824279584191341822316643462414061445374722852303558124893651632996751053586318319385432611723685301597944093524022636799340165707302388660578077034482028599462149416819931306705736286409013105235642232058128312728357385467025787480986777685197593452456786281167132797359083992198872317374442772027509377966964814187694585129264607930393561641355228354442970386361123261393029635596834526387786240288057360983003786066220747607618152243327029339872651151357183748838482117371577225536477990075918746178374078989209094851898535039623318388975749116445794192912950232507758984202282970260842983444461143462265442974538884148979996094679415296535398663227012871595844817077992997489725903395296276889809714320244631273309694051485227926637654750913053325322358170341268682113788671989904479704454583517708967660875118419687940759288608970619573058843388372039119581802634751639068281293098798028355670339140146923934374457296040640668241600861573752716167793272112226972590291263236735254982630544822433825492981980745346382626283710758237217972813863811926894048414894237372024957741143574338503224324979319079829379263930095060287195386342368966340385228160397434574921243872116151855971561113769281764302395586221737601592309062309927406235143905435814490114192767462944547973798177916904158067439081885749485609907615081946582440702356343030720068390105663772016086004867812853067309077928692201465847355297586759541009450332109316826849678791085899448141690915971174664859764227520416594104966979010282077912517067758212458676169616115457335997756961031022932193598286374202976508891649059465864460515859877937362698292358442927745895872760321795896596291756785794415095511699059589155063228599369122540586175206018668701030871723440811972304082649866783511921352874813114160855983904223924719451023202749464291956041782163640485427240247288362942691518142594972676208830785004057097255259067596052958933025842064787350057855022062453820095765644198193255826405912059541859961504018786359013142017891076142318293330321643109861510775330028747412795893724790227562747664896317427397925354588034111248705700356975894344688886410158878929622586162725775804484622946681970830675569329414676169062241545598214621743242167097193925656995059795318274276830103006484564950185800078519759007623518186036786416152689198494001033903192351185017443451690942938065760040635082282703075049819125880533954360439056525146054300438831729044913675582679447632356487620502657603131702504161928721680935233737506988178977817818473735921245687310378869780549965816219127374311756012055292265332559532622683766236449913356592860756178081275573716940386342860852336514928079124098740543285947426875689215028986104388023144717099297289006451360769400000041027219440364049522421815499668717277486475638982760123106432811466539868957305084114886223523805169054026150930026172106326344999625682029901870832008279172493667029792767096849615038723865483066516095345074810391324788829822607301530885917985001712730740343294036427203280913032924683436851306862461065758160691838541288763150383036200277249095217254696254433229876365974339465745879381674894565523015057285523160897426520264468942608355902146513181956845219862686521751593084031372008439191268185831617426975372174982449617885813672773233267276074950704644124312587505895091454742429589968529925147549625835916601793527075236659212018061441662425915571374307285516494853755061240199833083579307200364720459271572854565545953273983519353708241503545828112663125894975527339449806140525554422526682292738664971984521712859467353342813706208096271206157115223863861023461632681102193303212128739783404252911102791043199878494898879901507229988101394903307261071011830100051362131963191875605292509200207940200239653921458878236313643787994802018031549397809985722643296530653545377380668489173463715245744260855247832075274494564276912030154354152537812813289215100897285967047540860982061556307188190391801896965304196106636917654986237249151530749271963969909592567180513797732827974401038371412574295175923684020004652208923774673053963095520147371585450428087758568559859938181328522882537720048882233841858477118674711805266100943217997338032825949549002506588565386001785975293801621784253243481142633413326826440088401300604379684724810139974088848532891788902606664880287709297729802005118690130779345968382978784841772186636833890281969626725063228315416520296639161134137790471862896434410555859821228649928962514041037655440585230994155180698758820174775166303302469502952744225113822077465193460386925896362794965665080909617769647569088622346983959087367185826936859583666667632808379889901013901459478260192369204613273826062538273816800129287285038112920911113464815012425054489633890464315663770324663923923876654204841341151643192868292329749032832684016369161879508537077567944692437776742787557497190522763621707167476748708789675589267354038979203418241818325600609289837863957820381732503112936379708271093741255996545061078232689257791260726129133887960825078645657652196887969723740670682399285723068513304992560651765000043388941609936313649213446218767622040890017803675651764009446929310115563122954816494337030564645254615839860719704521865228312758345642547446655032699325894315820261947151430556258715349022579273708315022850756212573341723898215377917474366960599132102714228373880119017445599782069152879414371874700312843466912092075224186473633533363765492697252298837259194749173316072619209707017713172120240512284254889207980001521625130453102386148718230486542391137617314951507913318222625687226517840260559416354652087924328622838686878355497276103584595949790936935464932366534840180184112566929079866409551017626139384095065099912527337557684953175403239616508035368102793965307864568399139976406245028554586911767949404379840799513124800619156889792981170361131020045213747954663403100282163365880884231683730558778447999533219307836308123877036616513931531171082452381423484861695007643450958066839002503450726866844706923477827316588818561031729036767150154429557741789836518898669501141229363443399118851455646705252259219860986376160414302744515979205837651360804688305914692147383094555171811756524949608725267583965236760831986934606850556035549185188849657375676057729665930102254483239177644068491813447107173533970751505733608497119697862135206316979166740445823487969861575707592277785713775333463727564345989274786660396523029624520329764207144398682520103590378317904201712565878347006443612991431796274813177094867668984496729499529074514539690695719339860957953271727897017407123337866028116437495636002881886182664069859482282334273985785304582799699234974792607811294752090017353434643747575441953749155511477895168669540188904765600520130611103544447634777828597151276202758253505017008960717384992903245426277242636926352315604502833259021446593774946251962548302965539936763914453727902489085963540923042319976574452736147254547154549888707504741162403841893611823729876782891910407825871160296138057353703850225448746250470315573062641400396045066309553871941515246668458125693071121949663205357737703052235108421858348746045127785630093694111868452425452074979179992995289720511850349936811087984648836460979385435441525792306088306040438639170627849722919644333525308247849929724185331035743032746074143612155458469329567151749952024501842326387898093112187371858623328197767295102210640937535996149687075902428026087626577041655061333790722581667818903380988143623576367182366981945428217595935997256087957803495872744056488862198407698719504045913869666042417567070819141190637890534453299144448556260526124767925340409040069753974273622125865415848466555675494843810391565816802252348681584761350681878849005371345379366944033241656408329725391598414295398060642719508254810224602683105695116913097425020836750970553908674373346022811565700116583205243803896345975376063796426159630582369578883971386501980258478264265991805762917204568961054479067846262172818991164346775382830746350178911405305415521601583768955317525916364737952612051241821693424297880091160122429334372364973369161536242235418287845060690384215900563124241391824418365097665662898596265307107810904514477793972125227901645672942059168456588394204742112739917283884135521066630645723471904598400741944388534399568157031465338518632817083320898063254078848876870329567168510355914059542692386413715997663038308307325118346509672713640261301485109241813980087838960708219728774064120929438309200820038282825382443645125921614031349054170962796092845899969841505885247766476071109149831602383394220376163694738100099306145623023340344956291191878051467946153158774833386772535818475968236215772550357039997392959502784237129924667065263396552108193567687618173936675880241962698087555249439338672691240225213096778377565300606941358316432380763622470201962259181816637274526080727748439919813603795072694601732653231929939977608369843440002367348201682932451420164266833650461254037538367662535263103614601594896620327690658973296267615309282039242503464526558883207367846344702227739272185851218634350742077432459993285357953728741855867555606953914246751874302469349432080081052502245092363927674484841728525770783511267481499713647849263536218370474927475636224645193205628819715048607816229596759702737807287476252938153860464488417410844485111892582184408461188206510876085113409711158104977177571269358490659893050129352810795638289366393143879575228433555609472553284180751404181381496213708125962431211235511954941201209853884038105650283220240639354096348067088723669107953293366118378063060347540621422061963179868026436639693440575742414781546251376207246134178740397425427887017554886266792630164493147627238310680653229272793787747703200750358413549386127403051968984920226021222809198580093950880682100432447985382221936285676357969315787736836896386925487493506217153470244678967047752579378476680657037250543992586501152820885242135277065724754006200416832566812615720620019544217479921775377609534730921393177762088504284336022303431205031475858530874104586244470187702209069602424692179853476790089244481724949066841469094505764084854109927711713897046034516303910644956966832131894583895213284098692802840311081632897895176661996664184820180683717278434783225780721721714019412230803858887522701040058556440190475403723379100976358894578571524197848227800103672374231883606930625249478659547978691667362876328941258692045667423026967787081041381077826417550602149919829345618587784604019802529070385921824949258517512227397141638722751526033319923697984482588606199160624091309966762830846516744646102883352505227177505525297905202698227717699304438529396332150959487950930213563453587610386306523662342297782542771287372856821817785678090037642521207118169044752007652112318274336366406941976421637918355757204208344177332061453247835104418101392676867970287236993644289079625326782951537362835450557450431923630015116187149977167644150109072781473344130253976778327179257678691476106657790142239158898920707449817780360566709729128903411504042371937995970863498053096645859696808579551540497042625745178403889069600999407206155015684970675047540575187017536391386523187392787277934322364579472602366570868167819378730851237112527437665629314826636561069496601797357074882544612338507196279773013963873469594436376738125693876044111304315583995409026729530231299537242862222834175247126905908010317209565553689343515582824724911933098342705189199346634610906125075865489600559444964651367988311980883276915235305443364827195013203600246394275952515790282710938557674778223022497407250193218850382917653033513732219360289885941392132221515243669778530525202233682483671739323444855046032592942976977413651222149572129106460750131721754911388716028964843840704279001909273628524277270939159812575900530742449769704019220689869846248063940057855202135801577986300818873230269635681184554231658196475302114814672038197961904877098608248876088300050549009458562075626210359992811550421452507507154938870437775366288326880251224257781917583264123489675598096158506821712443922148714388847186622190971979172532763883438876294192900150381700196874534187768837687636544920620761330940507167393177552581303544032401688235860337638578286004794985922606696395033621958075983593416797587694757984484085854160025982363731484719025051455335067345478496498842191708275953662930840991714269254766388042197072575445346230695572857030044850588025890810677727818174028400193398797687293291586240410676952665792338081308856587363966748652096637155285955597141941921397012667529572172174256651625828092238349567609979373504567786686007355979211771852069031250485184170708559440794278731665919256528093705130625481786005503885726953185596083696067413527303926289338048296614842803552374795706918068688242243857766974450421067323883472491101917425521760802062793816816381493656576858705220201808550270354625493190092768199804473165939838019394854767644944756125094927896804387774310771728467926392915425744769257816447006712176607971838070552179641316190550026261488521832269159866321929371200161243661823949460870305976487505852391929310391037273775850474495768704031190903099951892741263562500453538431621211494628219418161765737963049618955205127383316210504816869079802756782147762620706593757876635195549040470004026596532344872156091946870836410478754470297789816778361848627601028893369262504799841230587988386217219031962112423166619896166365471073790135546030981103006134013131186695158988942007702080534411306525438777096914752079643490074266029324237722335502288781059898107943858314908350094922997827922602485114882801612788686259577433105247666404088880165169057541628162409594233154568273439739250646195548914850082347161703163232069316154038534562133188448918258927255084519578750560820605585516125545716877917558185350501729911157496508995834143964934190816836365662451491400607282427659844741314169835619346268384995937764846138713331504528523334677153830847929973982268752155878854748039466113035294976940173897620110822460486830623389764739095145391119502041594278437703256321555092552566143364032481624807122934447807246032547519230135142811677281359405080593305024116667923078649251187406307018532713215637775725361024932496229283961662638151761549175289657294805303919015257235789675844542380328461304301144609950546148365350041491898344738019946875453097610246581702356558626538498505248737862119228824968385010547817317046908528245167018270384516653498635256552898177829435032630766416446466532036139773074731205549119607126118035871861806614369909041857286815825324379537804207948048321150903360622402950302139730343963946489937441526485064847309149887485381306259274921443091450496004905503299525448189653187567098454045589751509501440746749651382585477105826869371861491736498649944988061685573500812478481497230234642309580597861157936065261535026445443341266333338393497844799177919024591721412527594051209763071356085386040290672165516783931488575877768112047276366070458283897155225997367759011927116696139505385087209849773142261253015469616541275239113948259072392049274798990364199912364645926169985847213174664188121946311237744272941818412132526897231625305001223255400945000353997141609405710986434179443236812056646507311452622895754249374877632632998325611290225605772398509540092494920791842936694083877278269806861656272164124416357965353073430797391714756207161341923904639324046230850360568666917880261659609427889413475368268805632588772982259862308118051424235323893261741806912400624582070083378275167059886393156274193049901892600274480546508513286384258845127004666144858321123589683570782579744421510034772784020769827008357901011316366348221632365596224645089376534362322032571485004307893607278843638577921396408092893489695774149546160834517722127767076130457733213596143173752099513324021029542799144059618645733227838706084477969616379048445272838954789043808980685508154286044566983434571516056775530854864446733911478206395314680064000813165492890677042346966406820561158737840262982313417402225400293119311903502041170181074971062076676971682359123328818097671909547101099994385655441835478418224182389788351361514655089606990962293872779215639212156945844149721644809857658980960989834712168756647211874810887797866214469885274841126424514937189654963796400625340826505098333789256083317684744690925994033025343242053934972330108688755801991377680683088988941904795865426368413916995845465830580786918357990766449251933423840322035542818323663348024379704553314021962255288274357806744801485586776325084539795246597558323593818762838740915649050001904802584205495045216930841345322954587178977728329346436371560886400250037151128160833062509981044982090356018948961781675805957197915149366389957170832163821242790832197051816325855732235678027043401174718431347284381666345721398741648089578185968078595701767657378081674455416122549647969595340881401804815515245722343849893066527383615603609540526897770687013739624531354548724603339197569923541984195118508997454924437323735831790384828824221839397205774545319436787076500330888052073292123330572641381644044562120203179605584884067419848374424003162719446851057898593340682386899424459314831194554863469948233958847228351847446091525775906232125202449052311458890001886388730554686898384343637818974369066790659347429466263235082342977301092165202072063995392695415978087713420689615353120540713318916623687608046549341976249170827341205352312712468941871283793375027487545135655705746734934686917402908318742875176385152440939971619195217051818651010853528188571885434803336719369266224224845220303239402402407948831080198635633560972923494060446219439711023741309823795007310986445350307143875241378022375650556420344644813818434564755101699298846573443213601006012530831064954166309811278359202676765413940513250335439008934940547188275386973629668357173371256806609812658262724156119294598338637748303342006725260711192799738146333468430906726449203318760022330509182561072240892307451290649953928477285797902580508644021049311041358505561374108554748044773241859897309726352407254476120838719424488284565602663170610170401444637419183260054833786593434283144177705198718136011682337278586624665676469890972614273621639618838925890123729202291211844410353368931851340755916064351707714026568197497156863379516642543461609536686236315439656268826942309730164495188226431707237695603573138920711494210283247965969703660559442816073648368469557513106436392974710971014813271044067598226905380646220398247871001967018600214749026325692846201606055808266818863252121159589569881319708407899639846058945210004599601541353153743665098152786814464213928417269272534930677342232122133515641114925541570996063806484228156361417540046153265043084970884702183804436938823048503922273883422453569215243251289812218924355289146360507657193835252856897365863931706468117696862804784262408882286878406542526293282502790007268079826556098587821079855328897535900320215155348009333848973767066613178791102879994827213021694139857333570093425756524039431040331783715091145307615515866670167931148221126631725026543102533709065695397889011771439625249740061209909219567162545574470582696254010010657322388371013404900180278484783167317544719360246085082902941415862397910664299306288836712805482818815556605803829254566157737549439102608815835980222365618345524792977245324933917945678571110319715963845178261374684835333452810530109932017752615728832013686379679860756265225181456543903946521969727923498474322072701388735318009635306131609549929234854588098060298926252316898561661122433834506888476497325977170985983955306756560414263862639734340473421136844766543350917371053958634454015749075494876633808337937981512686560346709084872074276002759963115311086970456854714318134519150836973506030732136512650356713302548802550253369950533806583245032690537103533502196664312377716638208827680329775665458514543156051667532571980665686053229868525431037768811484763217908393424429291281085610048537148151977962369514409670766134498826355393379578492472124049099554935798137449687694359105161459072055550576734777597409718078617788073653990804457767086303976930385655846964780778873903629727214720219944396038171831614982824163579405176441158249531837621301137327044344500030740558523440215259189336005785319922818827581866721003936958681536282211604427890455397349742260862269299808079530587835507090035998148240611524384466288235113169913003547371026110256337532548813096007025430451707449962946135347457483466641753089958123051628351037667840000849392866497220301072613196580850932564411528183928265021324234515563144960689901312676926841039868152919353535740050329041643405868391953972223886276074665728407709266796104604464712244950236332104026874644106904603161307975586651838451968978623454739858895022111419587270828206736366395961273771520489022371363766291311831748929024735416388847256110012618833370260810865559380808288067239924748331428860814604774631795990355503387645642842437777017426952106791993184833146998882719669931501104760459906070914066672221856324493232576565143068848688993428798513335576509618059475232590899555192249229714466106381233003107696299587694745275407020126814235337738153983521028473673203877547011709917093278507242333630966656123634368930243436683937887406645206525661116850534685392334397551528583196841844919598411912250271338499914004394941999817760787508791030409006022375822021818875539988271144626545306998433709972572696275750012398320903131583336876563071647353184856228981758215602792968500331533530653246201145731722660529089325620345303961552568466823598725865422714192585360274818823585733990430894989419025745365486280881841513211026851448692035352561780203953866335829960606237253815930853543552308152321694910083178730732717384709375207357755151567748049321873634858865723653131811164093441742247361740273077995104350907240750006342020914175161999116797513977962885984988375105343676293359386494327801318105680585458160167756958569856153685069815890336245583577887323941795832563849596762809545669347721267603614660368593585662034184950880930528790115772183803470045069829606483599531900153372717078554276607939309242243942127014995091529818811187568541242777340084564426339033990648464048436049322199024680204800914821805136472416692549621303956165458160286492676455156081991790704004635236555872093082877533709406253548203766480809954608822952270782225492188128289310310853691743795987888282342238359593785927955328925374025327534913462107618825903988646641877246485132031742683897738673508627466389419034148755763524946111949766068043031720802463707069499392006338808635563571585834566451435981638537872350321121760556573759144854291205949542934042786128230292969300136150623280303032638922093162333860693194239011317452890979584984199599174411777263616979141828517304024061100137415737183576467170174151636974571766071501526039789971545552063540411035564077575351217478721602118621701840681627622143775990456442848241162540848773479420314961411615042799226796845419661459436686874250383830479971894627869686293087888500096742333064136043672840502118785923945968941099471203796038993912830755780504681386199087060098089925576893226146233291434558852303938112114024597450381476434606217309306272178301897175438657370377400256864901877777958752289048528892676141288974583095213175703567415079757680141012544646976277673420764958825077242164250717770202155006952522002210987643001137611643900889642088446323171487566748300776565499291057697454868584722278606294344010238631288729379064262120641191422133674164674509986557826555291751225747005995656701574857737906890308212145132393789139167080963130620500083377408516015641209736058572034509067290977462957407324088838183600682282767530428449339388349993619293113010037703156657015191763122967950973221348287379561527605183244933600887767694138767785365485227245095498362800263166487702052603808224566450056050076098313632856435142814326978255542857027144056610004139970487056345500173277315402508958598330010875678813778368177384757712025825273265759403174141185537934531816462798209035150560221037612528225700143758947701021272521247105574501265199107438879627460898842085659358172843369993674707731943115088509284854343664371118166644933666730478244029682086141706103113899133864966733494592138973450051414402247038143631853680382379986287032523591000661600271932927818064793619013856988010260062792849232121656021159791432730990918721900333237066275415140185941433225483269450521435345079640980939133400447780742800184027824657482754970020032013755156563482557369740004505583468697060538678043741105257338149604593126126204409593171776062707580207553607662108945514014200579304228024162488069994981447346146610254561420797319296270858285071821037886562260992559183684528581100950169671552717806823728382742701860821530101988469886786453605654188973580918426376921712661407787016088373180969284366291407598079703122692504405042719261696975238337968639813404324783639963811736821258043635690053864015776459740092589851623198697004044203027530893159394190948948847270439852980578518976628661962971484326553169641192621794739743665592216646324207132166144697971042464188547342956390942853036896639137831879878527816989176680210817960100592201857589990371975670657720734987418269558637173650966077777643022518804990296859655979793685225587167591399937369601850215582814772361563849718161226755864907408131094005578544026160455115199801494958668030349069113541535668586289836321277118775650546572031449301090623435837711779565905406502971239558347443801556510593512924651694985269563133770687195168860967370117096185938158580389937697287944352996857419601216965397861245106811706408615074077737804420134440914686622270877645340207472171732317037419156512147316667000820890795980758984511136309996673192339083732196822168052635957357319195061774614537364190260740041136197913430944625281638853401839457743150959181753470986500131886183038778647947962146518304123703046397743648198505722615746450853896243679996267097060945527317870122396821776154669416781303103500546150300983705111677811075613885837948113933484699357632705456279090796055383414635217579866442091584882225405472233861101086830443817182117864628792338503243310308733018063206125949928303846765280434378808283912765345613537588893381048312549629602343508006285544499838583585746502021069696302709147171501436519120581880060805442721972791441292696933318213095121060605826475038033473829839146498886771305653170084424567359785570824946017818521301408166177935433374015016573001160541636772549052272239128277264573384734747756229740822195293342604934704668951096844534662907603902523336964745603970936394785508395050992550174285707609927673141754233956392684950099692020670719986385940545813902201995159313602808054453259673771269972029915653554612976623061968469589593757275031357444172338713865731742326651470063691768026966315416588669690498049367975896906900902437054055508810102632197930023874140922155980609163827850727452935748858606705590728843261094491636525568972336791826928850790851243326388791747556699607445814082347393595245362332325479160263597450644216027682519896063460205072474800491722972191696009543108164372531587412217542238564140606156176051780730110645987157026396477919303960304358909525540180003026340442278253865639902606732761962767188241487212301524283815254906616203772508141588010308125407787536152900475785470461091347657531604779814250618270671233962564753783124901906392713901344860744510569236202454731814311742081063354535975842518046286901622624359950872369795983023351879941186739456601921950767114749753913908118055264613944963730163068328350016771745786048004085812693365351904403528713049157428784960827946374487855784293087893973409342819700691653624338422059643765981159169137471222283212435940350176929962715503846603982296063163515592231783938281248127439242241799332108206860137258162380282592215905043663594440713295323790884023809955649474129228408977236170970372925930797781049540036673675924315881013787421230331624583186677548847648380089251304048464741076974187100287891645082877910244338604659902429966798928156695493672941705605713628967069192338900882698764439356984305853706742747879532868111404337544261224887581943421437245953262612324152492263132372091249513139979400400053475763660705621316796147266416783205614737433273183287907787728361041296744653004776249976028653398424255998089672327482244749643830016025844936877832877648969315539239217339336257811065553729827241490306425547799321780703902344327739315677040948482925437576133563095953349951909127424313334543361633296686356214722069547333756876318074015309877853390811081931554068270803000674530777751236008808478292174557828309608004208172051998962584691435162225177531037072060406258408181736271797000247833846811856701756922904216966579184084067483884981270658644242713875419990494630998542947519636818823620138843339854130393159519694690964623770348854996803101426537074104433289967189036614873085784887972572526410273162466097550569956488204303969994433923271281355793203389988880718093931622494981987238316259347023033400583112331275781843026437446392715271814905175911785661046263287460564541829525026459524839651850044393293161669245259244075189912589563373039901453341395094394604133008855330022187420775627136295800164859564346827972870772092737749069796134983412323773854617610382848015551615928645183354820428234385786502604976341499990233080608747622224688958843932506292537427263722776694185611193339085032390058571961914126370206808433198696588157732614244896405870063390854543029368909818165820698872379039604466155478238859385612596995255168462595583856455098082635509795002829318976253576442406156332804539138725018210907619367260365229517630875329021349759750641452307491590711607883741405428805606944563808732171563397638323184738817864802343452404174367651880141761224924008235374028153510505156209344680349366673486661091709430879359874750387827387354868140692733037144853122955062475410810214988476074485254012026191737024729585953184043593255176859084718286840978225075234513436143636384026525929517201922173287812691172844308887600789564256261916784455089518738811937499231548270899710087178880731422879122934261690919532441877673397318471089279213443455048269807311584123573976126258719043605595822974564530136362494674658324787901627136680774548920590813211545863768455267759163630812035812466100150007991468375068417753748266287484322165824946300341307744219534392542841189577754813019298473114726085977050981905608484107571601495371647021616365851033655915004297899355900673967264125379374069696394471641971455381336941826092115795406557928991309598565756632964032141638312779787786070506952902433907517378780891417536037772945286569904402673433017356252552082525288876819414559592551301788876794260887051963495248022372303826137917773687957458029302448103277138634609835440229227058973586020079903196247987572167140687052688428755210960338518008017305190634320137429960237686570097644648175340158268891549966965710054807537189705285653918284031862402767673550704668667076371295179397510007290813628564961612197707243089533868724042058589159450059526783450542782590338653811671715701239109722503062254703290211341055718802081207762401720057310096466619841589361209078409173149100456491815987325380873793657871753109559115067609418930341230876313830349760957531527154354540910984958252956731789404013667657715459980643497074944049635052547853476139949191143240838932076421317179977257141304082597775937692861931671643738242213433442914189656669199780695104252278967675475207442282272877337336111203262445541856600754979979075984696063340333555414165658769384547452195418633174374536158288881411259636744617641091935095766131786416603041652712270244791488691466102476869429157712244309966306351657495563610613829505894020983063984810745279457799483292299883606532723135763006672850591729226345401993453024881011811039248834382285419837630839956396304111032079691365242505702126522502327808428380687517571268115419450618995585000157877675526979380646405834572203069027861548555612161579713412889331429009722850334028302371519457449266526267005048961203369135722151485468591925483374669104084202258526088189658935593722657264100820560840073130911440325161648413946655545314694297702903213611425858497931841772733035376069870748481793669794102990507201234154302479772970880813739514806159089676977394184948890500059082968993780275471864490798637238239305617361245617463544251124127269612969283882013404856217698019867866761984125335322773656836323966757281346743413113158873743502393528792079009810280668107610060519309645090036441005782884147393563578773657984327721069553142401891860640902770480170929310728151548293652181916690038095282929423852637213665471798149344990857802772759913154680480785524640019760095879714397087474348203664165419593755204365064393727693946983598659005079543974174683416644251182120270599518460905151655502205460699426988785733173935226881394012248494237212986270963723644284707901879924696045121870636344596605975520108384645288867314727006951675636630488198469055557383194216853981115938869785357787181551266464903418503038157197170534578424922515863389430425997957944478562840523402151664552652191619745178096938587631727088514189102541254314359757543491899979410749892326840503576010781381429826981180220081533268179997588251018443740301954044665289614148596224459850875627198662772251584340658399144385175649262492952758335761812445957020487347483252936159447869346863105234137217228761111166226960949225925349810379691278330313108775765068839194612910855829601647539076996861855310358884593633261683578227994601058198659423368308757431214426237648113097792892737511306468940200958597781871825451983321835189973003538310024744695853324603086866076768624920400377613413063382261516517368480272882368158984242949878692715456388977029466425468835562901029331971157395253956573986154251833831760911266366836000318399211980376077652434910165247252770675062476052550534421257408461015041702683613913658249191103578978507661807342656309250920306475591189179736728370691926900071725423274346925775402560943114696381942401629496558773526675228039527539386932025592684934505717675864813524865441814164865579930564745543007784623777744325728700769457200435225970849340983288359280234313393711604188358951222709000077412402391434595925566882255736753145109006667357371477039304760333163177664553354821563188346174505139624173950404839955080209222395246769728746301344376417317439549617805452951466143903035509197186345442793422081431490510129166171033603446967162943062454774528518493699275578121304449537384146254308968399434244763526370795130724563151053378588344572385668985658645326677875066618715127255794609435558959996424391900446026868638841946607002730095954516570687795814452536572201935417601252256121079401213979196801396991615032443893939015733075229560481913053029495368003392643810296932768035075876258720533361606405734101768762742881632937561352310317523295573349073683300954393131669174563015558236822503997449874421581902703429026810998755270262337164496196623863688457959484641918131568580262058924946122191387495787037774413479912852298905998290759523311150600188795800851688145990456132507919479662315419045506785085773918928456305745110488320221978806511628612207273517897896315099555937998409853606055842990738558124377033320609972256143764458679897110251253382182727176848232928270828614011941542021099698772718988545302095145833593882678851846378611669717321693388885210381329054993603055061653565809296172663420821729895076685929384214412330884080042572379530834676520698689462109882805564338808707377226201641579447353682797917753600707011935321979659071914706745547498506751039461563109687371671774755433109516564615087123516740298436378943127143775282461288874581169093015948511576515923053020293321680739921029045475082801540454127495510805019820310481583149517264873822351757772889825947433630740773969316349375661014725681414788611851536983124635750035779848057776563169410551965808571491068860590694254792529646590655046723270830905301533769516433143491362897932168394209358236426808652225612647140370337159151411059631461527820986170078615177496321149444777702789982350260127508482040640737758724064454475790562817515555971822822921373664668596923274961480108271786433063807361303329264182796265879170027857283004222670299084795017615736634495159240879991307668694588769084383510433851553178685589357970172398583019310145364735907034715013519661531175372005440872408064289487008073875698023909860590755057630605173905893907253783075584849941393274863858524085530434729377277438626979877359054668657252768044120860320857583498449253516813384730696140659964492469578360515577926892254355518531341522382457063855460401441062855567213703296451109131991354214722626804122636565002980938908027555960594152384393753007877152805145949139965171463731759671309656364418244450054361235578827312930153807605641994367952219279617535178195706186450196451965116953637371125733704700085002823164408691361534788158515849509703625044743768252002640107091979606257073923258699504797602682430710254318377998537070511257855441609529109967560531032045791351318239098296319611882597241297744430274939501692839565798924520492295297979678723315089553073503373577590814165605229914929735133176863787787079057749820162534981900683204281536802080911966636152569751225541398856780445358056498523178396330811150265268586087231906063508016032117260263711955755862145006072612120396072896829628053169512847389449603700488772960109554535921023749765903705361016218836401621527257197905717080706127613521667460923021518491473236644036624027379559201484843244706726515668675652745544821781183373969856949569191307490715715374251733551884183958851384096284211325707841222857936217701044609770320048363279682697753314565002348965264219934823192612425270329397121254284516522317911549064323634930094025064663883488868194261672132834638824425061658522382034938186231972982703098612108433841378048570135135276269177267355949434566550316313547873142027396449222577742422789841451743167856499484448249333712846397629605988447537213594272347442683153716887281288349670336409985337245978254572164501760167074441491153134226679472115231452549932045990368173416789368179655904049800007101300612048371814860431519002465733189533992848999601607299111615093487829092681748162584352864222981371837980281386856550560529936934588831154161549595390211228676044201680496278009506786239024268014261517050724464607107179814530354076361198722037607535270790712044940981979402715618007893210993331470302907520267266362690184974094219526893248566742725251541511318189409004631369055578734601165537971926989962957632830688430425953091353924490210103007143855676370453656094843928641264096113808369007729327910954974240970034615396760050547230867325560287505514667629249497969873690311301337447348442593387972174708459845079020783741718935130905605366378212099410517285356011283225079010143504333156531868216704561592076560104425660348680438923226437676285838610014305105485688042543340820236431733493411225214101354717362860648131213954313981620040964469726154560396919784359189199314125267354768777860201393611559706915867975875930067748617235954229569718578881274475136457125867155579813320616874229716493297691124756446492320931309056844718025258584569444100394985539729100783288940481704044304832431917073137190031121064260548849304787437771827825106817358218112252310511519323140199579484975411916005252273021364506367092288228964821830403412188179328387271700707358480990698750072151828426638031257557781317716903217435693865222536232245146080885400469669664422008000755066983852532699863936619945565508179991327187331679521827726988906157903705270619000574502458273910411646367933170184105247391969967712459189374528903483389953054265654125432876562471509036862936399171462001250828730390028698510963696427306915278639855055379271203726364686281903978753578639745984855342846562950926612249090769382963983747995523536462492531950410163774226902393705813239183968291095116817215592074933336277179135218783816094083248027633912559915234084374606179463923754990708934370995335960329274472888431958182534620168025234742311818040708998094171384217064431415140437528155985749185981592203603780321436046072902326944002256091659841630254774152872756233892826990438823939430843697420577086030131975252695448787814361504105794363658572066559478072913448287657526373934355482875919607918899900245218854206190056100207487882471315448956864041204645809832351417627885283772255415562800999879895460937861958924295789338791378521844571439391325010746295633074135142128916869326366398356466493930419002095278267535370806280944245216302580855513751301774912359850183320103432680468348518653083494200069475116496477968723802227599945256683333467277418861433252558463580560344778864298854618884433575972490545880363397610305043368617507850510048701091151481031284193202122909694694197256158860182348393406209155337620945210383545551242251810570889434838542672632192505306340342335975321651985169152317322496610336421405219216212718186871918531093427668140718754066012978507448772750565282226538204934339007823648104139397015655017094889696209014419249311185015772683669244682301955494763614510946597177187642269620641148222386558725935262465638980947317300594585026747109055571907206723639220869248181271713723471076479011856742318642148548828253174117461580051660956706385749718707285881832205910654981443363427489024126786291958862764692517299879379332304703273853116319579924629214447411842686431706288468495716890819364729755826638487145199721260362300953410477857667621189925377112618947933887648389301244366809548103083387359435886875465324637217245827504059534821165812478845776392635935091708588448976086228853928115827694709997619760778095516705787480127245965726480403182813209411921676088629398269037217571537300090545119120788305634735661508219038210935685843437684309117868880901475570786284048616311588126282085262195693695426645287846596891976601822030900859450650821967061029925220808632904572062616932967569389334555211433102291543822689217494031803662671503770160680829267211654977910396092166472972644182753119796094748454509240663313982598473217192583452840304287790609166097069518264386222022261546879480595601153305278216871836995763500421488233486568873856386044229900731918598203345686359824955400555271515521641553761770331326959133504581250687136455329138862630393845820713388843208770749410180384361082843478497204916954878221129059777628326806839523802662426894741331961499690723284794104433147770557880583508549990553017166772641916896094711595209012148945470720695086404354509355208822180786480066597387506648753280371366103407419003848918608276968432968550576191973828892904818445048790705368985192672960776542748059903603093944271681715023377380788120842663502001211512663420213903106603965439580562400309938330670946422185561967303250895936452459985834761410050852854326281056522757641736490035648994466312159829213354680919930101690624164437634515075119843011387817948341356474448278283507722507084998259173413346315119633343491497664990431135960215441859815089025721104125357361174461284684573711663469276553877854197601492312753156912916753457489437178377886794373008841990778111688075149934877367262731523052859273864765724175225034389718646170108978954710712948414357938679139037326447872071953745472717661217919142399877728537116876863975500087089479579839576476149186040405924688069619467668465109131771648578150631276814795639573536277062436087541255084207822762876368039144599691645828384288330735803229721229553025455174582823190977773805280756867349233356556635034342829851161595050189185983060925975316378068188193956473580913514534800740850095035800007927543111482104275563929231454874894362157191428922487106000832091244831028694067808466211408890951279826754701321235955696516282624879501739783321035602196336431491342708316189515387107775341684081529365139689202874522842493451389911722544758893369570354608246651050320395524633884105781330091363738862790582011811186221006355947389931957716047088885239100182404309122377800089384785747031956890878199303766535509997274533787084157036269260669346630147035007660893429125865404691198278529324860316712039509231756184558231960102603445806475032305548754295999561234032542017020330480411256705291700327190159254396453991695206627683310607986515599199155141304169599359340145421505689198824113456189240612296106293761733129814644764390174360315719288588647938744538270762961634481865030148668474333283013936131035692764849257933056694394609798006527091736402931088341254794274104497761477143639893104793325276903980182427648682207088553310165961966343146644022357114191665751177524269516901687662038448324221244174415764428215441879696686991528048267624761694087885879471214324225588273971079330819719309624412987447184278109117162115677073373781228273394821988801660916680137471113849990611111925571054884443953447179711266927095301053049833501909956059881837123978620329921996008937503825296582682151988205327573299499285405223132429887115898692091941889117184867702865750531774184546717056555124001925652808609977964588073250319921629193993610542617733011597379134516082762825763450230652710540379040729187367722693292829131022655592634694180439808786170901367123905418471841555774398323056760025108547823601674180021425420041433343940836594655651149782297005538314175568235581336486428086087491958003834581140265953897370310412140046259770479211022986722718820697330246604532637589146488314115954890223782418611863660020701410395955925732502691594649729069686937491396597843985988176321150900918586558431263310124540753591148575649383311236523164858082709712586968330619327041673147954464312934025833853782581904413930340035418282322112295755322142435532433061306758688346201926620092007389978197332104469979381430020644773878244197044558432188221584061411597834040914241001100291426552231542665164327983737129985269055060919153480152683558984541035486807811888260401871892753089436206255077533663756240640232995725346942806155505835813115070812699491609016735875061810601558728210300205415786148201729074506470169015318687744890537393536887203768953757906524203050313661023355838488511611745505885019486170082609946370991011436050049703230268870221339473988616502321062411786764894350500307038052290902240355670835985958517708254556822339175580559171997676089219603177068194571109963262585078439511242638085473686030895774973002794732424168600939915379015230650411842592802167489602616111517152710840298714172670770927470861952400987912704880550395589334363948106621119929905124092074351095273582214063188293210031160344920431192977983715288146902935346064008026638321742801304696532564786730049305280194984451549096544438303466995051483324382636831034606820567795949063207559722874503850679338887271590399466241467468345145097099763914287028621343443137541975821864793456976202103025359188818216283491640922359530166540483713311222357992963815708483050790743562511179978600530819133522170431869853215502902869576570717388041885236932954070294966876203479546676341453911293638562371964753915680729522040186258916142056525564092894886742265160838806478815303613160068525088582276604977508756821835946315138590038601535311551726566135811355317337990590532630052830753779464573854458754960309427682562038435620867361756661326531311689852286726186081380472861274618093887926002684142960607887523177805329596440535714713394890213873474369693761412178287564191798264601105628351339755718719105668834804033299829427677803907349996644887949303639862879029304878298704413205498761913926249558437057308379824341028271667440240926817645972461058157298842702800504844598697591958036677568353414398910493736691577085027931741170955722286144575802913827746652011614779762909596342252481712099024685538177703979726999754572974497155859550961537883494639692165743431411652795533522042288542427611966854439991090623559285299799572840448063953480918047616717211096903204690647165081015139051676078228333348408627423202734095427980005842891838723011548427106196943735439339365785936137792417789097311184011167997816447770355996230833122144545928198374505773299289622051265008265244692123691590587411169951786849983180889956982505553280714181847214109248823111569758151109451735328584951275878370344939873851614421630707367115359703823862173995041407809267872599241100784836327946912167257297674768725026091987156993285793380812233719040778292798846784667461438683604329073557778104475917246645031578169531384745511905067404286453413478740463465297181830749431887414960959955872337474376719173065234981658789576355035157939273416067581007954969505521375027300442448595122391380634365970305413148448635761186007189106433693962229931576076269084870143497774282083442578301850269583214879015086688012941362967935142213988523754226746828597863206512124682951844575066749979050939015808891063181173656568432739263167224428298195498282270877255659190035514340482130823282033178358923622971653552179674873651344036832206789558187975177568869506450146610244191532043250422220393979565451166300976769908902906494278802524627830028070016376419799977404425989216685434897889365025715190003898613910793346341611579608208341424897132455037370676104856167560350412293019652038792593169129616957566943713600362543044386436514393694192936846712299970727396892834675311416199689336022615739448389765600707235306197335427761889654107715793924418555604112378939750207949026268339968319797478265201936626407749829007196355868974305861060093999873566875433341909169428826948084257331243483188092577834974643504024029380441759898706695499445744039164617158775958345854957585501470493656472898262575272925095059143312334778777191447552322805149757787240848881129030193330526719656100136590107401032862480870966084956093349737044127209924719837184105878760459142701185825132463504297980023710825273735348333562626109874450001285369918084760299032226706158126849027467931816661736113925636142117521291475858314221118236952881233018267709173786431793031401104460343773654727697172517336667868548606379643206873021277834178336189801885819827182222372379407836485189538428290341964498547644036865225375482562247069617966099025240461281090548504456634642717067741593365675223200480433737063973553972673524324316845865180210018570330020141737699930107287008568062489038375860773391914667368406114186217705132549254479458389257431170774196733337736740931435212977352549901984703313638004058486484176735797060842343723151653558357679443194997622291429007600766375503266539713947195792390862813654844545037998840085722040365286768835592864120376543674164820688040490700365759384358840271692602934836821724469229526885008974407215866723281915156033782126984552980880500101003606407173963950862956255088174627059488645231002523167262209424983566537919774355175960128704382843376356639497641479521598338456541420409938203570033950462233827682687932923659381986412972125722004154183787163689543446944041708332167341544834413379978147131812039243808849331270256009516323822468907910010000131229200870898358195675764178822997612939984928061131200153786918288483272033744805740934038857453644364043536840248208536656726606776886754145653169759390390853120874700492896595976779702136309901322797218640013058597714884477520462039993965644731828835938097509775350880682551168166356824892232132758578491145366720563831548527541039584773669432000811216394234063102901997864659694502902409867364157038323014850434669797216278554752349498021902315213781058939807721613900042055857971991816860380545742582606940684690933895227011205588275162670665350783687411545034960624459564929050365753098469371527695749757298642584405728082990494744040650365538179301071530466242125316025465843976274471185409842553447352053993953473401694310621474896949023295789385009884495229675283068473445125503207558435108530789828378608908887969733082151247747007489758539308093036458727091822014617139449265851718155029265181696647501983629536011137106664992221778040433305442303366842664192133487118822736098562438612763052277109456290638376786836439195821352020317117663804678149941870488414429629792164484725773182277890895604695812767048197149365680300043309330067020368654000739427611014115519449165810841403312724925708497476249417403323233760643225186582253901076863437861233063198665049540479056433095100848311012283987226823015398141170619281152123227977692847803203174622489710508966902133255031164319019281024704660438834945774823561475238802658187414827731647307807146265370794476775194522440832913826534548892149076405250590689313183109377659004665855979614363502834614396685736609649165016545125878725823318156924303291352582519233978962202077100615810402239109092462707743663365492754258195448977593096933873788644680519280269414010260728625226494914828889926268966015596272128125468875784122018107799911537684252733707965951232264412295035011941242216507102182708346731546021805353702220994776310085651776145532988768627096220134435446098783179857809612618862736039630808835793679353364991111292343773933748636279630080424749197602462326185053977975020230873098470598610011866037616417877019777397386642105210603164169699309045039531851195561652442371854353422392756682697849992826557487822599575679630637996279434874373065198092482163936064826143363617063746677864668796730768368994307261774421663997388069099355663935890459541980196938058919378996067594096434284694975669297067227102662612897718342966375408371165909461138380422598499656194640399205485632603919241134849260116154738901996374468254568998042893815091984430354470587678501390498612539537008345306475399568727961499092155517023981518138764078424714146821408379590329524032224116851082969089224480253231278151667420464751930320568028915258533415227803746570882476339083461093711426337726591686130082762204316663655922115131011063604482859504502678406806868081034846844438047604787183673855287717438842785938065123910545831032304219346050168683294178460178406578310619296517909060703606954162108441894970309617008317280983721820362953360169953862449353636808288998768149902386027577059659561767232145970089471853844537187223514127817314908347515472217457665965381547199828393096930724073062809911146594207416380789372989412370907808656338467405619002541367235783608288283073103979961511842976046490573880926274998720716224936196494704109984128554573324764762314164719787722332124054180074855081245804911251388427425944736646990956223029319594664174631297363136358053775844856730294234972250212210651775028474524119340013858650325768138769781731522975884236365232185423774068620312363317267936667284906696007902196722753961183529192860239047531547147307357942914965213110761225926073564141508196261858425658311997006075793703692943953126373224219578500850167075103871437888780283154039283865521678302579524537347165072784243769831575391065997978232381413198910841876010506126301362151273679412838982467310025560903992168797873665393539400628562277730088248632150158592914417303921378100017617081878041661675013924931420435280493443569159863149341652678522833367218913559117438422595751171833129098643373018721008545347975246720391725761763125302195219335494622258430828872777849919841273560400497789048588685623102810651324525615052505674194105976129668084589810937622929535755996675273948783919687293425385913630932604864833286685426794126866315852506981086379829954129405953758127266569950694903517676766391425169846358559367003599004482225683505032435602275992235043172332362380243810842120684332266447255034035929307822821993909650720455014177426288923377401234338841381117399740758265270197750272241782609082887725800542518750926708123717708880048651499475588927595477384158341547670936056866788064290088932084937431923449311682954625265185515299129602868923026631354025899436127230243088787798069399908225983734684944100844808964053790779075789658497974450875793264348094756382584155858101489466606242059374784360039746932661053838763849765783416202533195670131003352899907652448280283275350685405683666630731212869651389002425345200825135371857210447316453125035680828673462922755575333520726791702485705977175671810536171370939564368992116263562435306029614714727548487868365862615017478866795129500971223357616103841956407052677453977843154830134460080852796628968078448160102755549671625912889800807840173464649580561703232225649471735723327224751836353697650026108242076032572345746965912786596878337747762731471132276425144886188903631978230313695260816024177999952947547070111816348315791408351080324677254975340827178075036884811184270524534190041755562169649146519325572985859672234728316029339208669903755615980474214907551920407804866989133850466823323473892377876434012797474127622878203595476246657523475061330509492159968893535287348615598820278095700547751602023978771445462977347312715554765726474921259674478117351655926720068516763145523273281891052339408016203599958919053411538949610177464772995643949251582663282706324798234262845992016762090480397706660837227060358838816730637744079959407864872650261129736713733702302929781609000681531066217140583321216350084011167164504345322663894864909649370876195431168236738882475879508953250280894229118041650270687114887562556529147267235786320345465496627930010495426522474138395233168323187806230399072121337829466533759393883439808465349854819147632974822355993640270681726553926036248940908345163856230416351284845428716476092173616059937227258612556044296987274157017694305006496566289346132259963904633007661372235101100343652413317988277643667936032003730061652201638859261177722545517838872321061759899846450518834253667635096204849495657092744445102064861935813741915621798262390773076834432232987068686587300424805206848984037094939390172401473297411696650848024803764784167295842488551756388490754946631327635355986102150761178287157917963729353353478351208548562981295713208322856412872395948309729525577335421204807977151345717907854541889938839852415149358542354447323199227639920914966154534638926071173063451257064366683135741001562128477710769764850512770947105026615746271956053961531198893502075395665619487038566128176162762434538755812297097090867305484300858482633513723385691121068260176000017008575199273197728774583894533274518448407367540974661964814101489167052770230996848663765863876456905416131096862228832526129348804485786446054151329848256933911054268086606750673236075317855938436728925160176510000568877474227262756469098408331502592026947528781661023081838484221399604180022778619585040919481331322716630340535916207301455782688494075554628710460466525443965525292694410430336700455274975933372723604089713994084342163051094166806319134790974137059138195830711191184686598696585347730861565918581497031806325619961277914745373874589481335066657702813950102858087202016996539586829857500927308013944406313608996151271554776656037344242373806287315360941421801309127120617636548966944139536082067299680189648169299811235068523935066554175021291627609920629573190086803362327086145147903334540218196017253104510904503338101913724640025320869980118870575249205177129068457667638788414900382702181778048467731236377404034314446707262473569895758789978904724482192662464564430097400804744399613225100628110007769240186346049068235841539086898540504034947458063589099538621094155478261082022949571414499938022377424406077367238908744075148497876676831935094158140650623806403497092262712633691708982944317713663164310021301621538015927697858597461202231288508453402982637256722611175207293555506501327926098351492539507645404501193201917552144852677825830522946435414924465397667600973898705587288547230854839888164559782876203287610642943252860955842786888283252119330370367241293119726773624704991591090772696256908573682282156904033433804360320595377292643862623199377277761986569837480722737623896790682621084210164607210314797027272023751222949854076097015494238153096847942821664913598358907618189305836684844834917800575589334702089922354024847236462589890031304963829191788548706516586621315916865703208552490172621506486662597288193880995131525029152427614294087927296301465215087924142013542206177436369928286337430151736827701669540508511639155170844800522662532871188651016463892828014988595769055084815354457194956800366303604411263114075901162647957857461433088151517476520167067908654419101329081449948283278780604314591988097101386688486194710185020839689820303068416779688579904491463227181809436653536136327786676034624833358479457653349552338891290000517931833966288229556179714429287874028568596770259474743225704406956557667227279878466262514397245343075686696001977800575728426324323196151799493273175055051800370439585553065815870201751293730046383281764105417712992833235972318159767747887219873782264255523039923626179072478270871083571912429977370910496683461511978811847060398188744683779906433774937693454749509751090451061106127578282169165118685256719734973764762927724035008444091711423449763863109977426498650298310309468424568582945053406526558148995889099705791807284866223451972397225806438265208297468720854358454946975742718587411028100124462937026822561053377421827520205274238931657319062688329303751145280571177173859793671214057955121285115054368957349147542348131948460365251582657030720721997786357702480146447616192648787879194343900979043111375700324216120722766655372405806536355124696878827313283789780763784970719991732814508013482702134581649429274618604855823824386110839352092922261533097518274668441801820316751650605975002502575831818673103027649092025374667621017614174462779886076850830177547556126309432248553749137592470589440134275182829485537531530964783774869012936168478459980174504887650495608767674425825558464365957211736189610425709481305927811179378183152865087751810459936673198180471360209412800917097861263459554216090974788916542437327695672966900203120567981397603020585995769056922833912373682878914993427889535811314947892655715871329808974379733971291146306543088605684890454678018693927836535592971095521752708851722189987581812676806022853230420835156762965121457680492420185364608616764928954002677248737615325171372166619188720862353059710546576576195086106103723961448432593377258481600151387336634938915653426640819386989396118570717002500714203472450213287218679240321772227149496150874560273121240132597550764851729034271133116694459407682163475997321690910988822875438402329531735921650581625144474373325363929375927769304361106571503440193415600582191063390939220111678656920073946322168738639816873713948905296345976354670633074060504221759815743134175507011520785597640417890678205308289155211265139681049592062826862381236114244068432427825519749800718577299692301548967185572614732626863795428278428407880920401933478803334633810405619900057776202155616637715099243954164329557571495648373115572118864533665351796377637085004340737847327366161935415441185496827864907684404710273084758943854310563951827671665349069684937645122633445826662052796610212729816119625265486343657320377651569763157476481014904451277822949137980058070744249295429745287033347426871165603393744352006597121141399949309899014982641007488661504510569251169134803360279068503389170158333525921479827374874866303734638902870781917237144469371785434244782795422246383091153282196279083491370556227873954919303552280025014376608671198464240825574309452080859418980980074223869436759551042535091242504987941081428862930010617390484960007305060019805707604960427952703096808782895184099545845243036467250247664009088955376206055890491881023535378659171655935096499310090668344407372491446261840183895154723556063800466138093593977770391018301580201865272651058496679904388363124015204791321298487640511374091243717075053062187058056800859641542775121829432894708183465849662229522221860035401971154584815116741881946628430120667120431714878269252721310628510302172746083237187862688941905836483578109064974350125026602989617140665280628688313028763490049884410726724019668324951486056878033022403431740353606343532883678736275381769505428536548238073874019932332295667310650431791615222127452186401577104384602068480815869955648465986698380820635482327284664405768506170317360682871151659241990953276114146330190843697442907602917403253344014005056132835441289698705098303767045030356545795002903343801652726159019946508686170962702252295159014950978249584528052303189242036406092386638248739961374281496679298707835968960967081731967558083552457670198372376613395693135140812431769031594100266150188038992550907991259076502139757102622943304855218707611271314062731461678591936544350267104131360292195761885840509936579579337085823936525102375744142029658482282881568302696582089660534724185963492350074340800457379829153901539482506004057206409266670208288061631821670293436011460369491892477612379802058242902598834904498361761022725697893993738708030653448924300193304542062153747741513951721443504009719876794924587859901580099579657097262206533377704894733302363171009590534406695055446255073702976115787615889639931249228382521273789365134706244535056562244041506529136021133701388794999694579213466362249632436939143783042572300539426770079104855595311728596639071626678002499911582567216448603712510721175201948872471154158590373984896374359174750953919925113735896849558108810196794428386587700406705761893311971628225035641979192809782921341905998861199580851952472576584124034634552607468886261517896240912258540226740682958787512012364186031776802501211012342348431215660011830725988315901407349739864411300925977557116350704406290745884747080160920837347429324533653723217584671745720974459722799264355447637179861116607190693466798280457355973103973889138246335133552206776031083209593512708598663869849668163129521901260212098540324214231785690302349901659244600795186169854819924323379569153147838036166439136562551644378819289368671234314095721792945433275094163926620834906442852999309445359166009619639678138744766230732291774354398397372152064886546495675599925734289715996252766891531600467389726051128881369245999162441214078293151810875962168919659934780463727849071422822535028162500341205907947162097691270565581071071875829580169834132589855492779318365141865899063251354341855585575245768664884943019080973883334180327190034525921037622570707098929144567983297217304254876382217235016411592663887584039580362639284979559525781236062453128780042432166890686029923975480728535868998108165906715384158710905768233036049480698927811839922564328255787777899565950507417842024372666165012653520411323481342217057268890046736660215771850570150220597788599407671522089171381946090828644260346079697123725152580236354820129778861438543513476420385409122176235591201035776300399953659218240929224719682405488567968267034939146410811587822405708037414112513715888257263951548614829884723434670153488108220346816629695924180312544545188653288372972518745132757533046734402593555968772803271781553326705185648794316565598877561598006454120844153848588633316153460318224854058257503513976497218740595942978351217882808427550001992296257464768277628267992442809200673801467384003488803750206896291158613899515735941631717495930742708573321497055795242911210208635332937972536243833718463358616531754326169376314200504261918513696418187576906431850022004131490123564124656958691653410560729109280017120083053100581318333559733518216384510711495102830485253441296406250350817587899447066086529506850527185619948423565614370555300250360089088807861478426739412893128940052978663400237043689697776397144601248618100076211791372830344411639712450135931037641011020671387405814587742933732873186881086531961248473100159540809504195802260559943712967515672014413629315922477243293183594550745543564700386563083659823862035757471306197042226473621521393837413214072737109936410025076381029083915901231856550989337039333378047130738464389730831177689830184820722481191749303051865930210015305355979518714212348501981660253380017108423455807125213503782501835539993378071609943072005815870308131167406992988330499013207862265780209172071132798471114831179399612688074057764930354660727944378872946053808293655998796826635717450630548862371237619713005486542882732919618285484655606117045885856158931922516928576562770589436361690338937080978322969171829358108714451881774597861996033338737566004489779543498869377314317467936073278618129792081747922345274761197059537247315631975512151040408532460679055259092170929389965648734896077268484606186631919396216828989182315535314903860393430930411948913401283036932905012121501262195621253973122052776480481016249836922438217024810280580002835338793954055978219954571163713190389414941800913863540101646016760260756370333072310950041674211307096988066345667638580707120173634531338041057601751512824807728151792814557213600613211119968675189129949961374020135401927224319907268973151773961837005558808909421624091803625387283496652981910879596769885494377790105416677913971565113114402849522383897748847644855100580835613982160873237443942319023263643044205039649302601082318442160773152029709953438068957665073852783957635088763350013141061440827396775604758118309761227667523272032161409335435054118211790838929795186181283768683394285213889636305222421996771251046993257790628808326410338454584426810200654931037799624150646448012461659089640893707395009937976985116889820904174589268245916568122319254597707011915785575776030594174511189188474455249686001286168814569126857309335520484347656913361013801168603465281496125629094699545258565142477875855151544256922673330687952800151498432077638710195853283777278474715060978286006713434280370795785644400234121320172001476950697850126105419397856298189711127155468726744247370723332084543226418863541527338937658913000102894085619589646438215042211508096047011961571925093866703346907186934382279374942598230230578510670844848526302035449685564781973040502019865589217617718431711806091806139443936971588847782121444582682563593906747733714980673596776647403633442447959736066173416039631115001684164261108793527261251901731451713821290518025211376912370246001838884321784168366199699702857088214327563266510199143098012832676004999369143516245761562367050502562990280030024148822109688836514226933583763501182899447080761849648687597565491639768049972706987535635764759881580229709405748190460959828408054020692589760320026721880868718825163952445018230208272626700894977742335887867737890955870380204058670581994542366681621893392871670482606305625357608319552751500616925622699203227936504651048267478282411990964515195314534240749368553578072570940111596062561133136001612655970283002277996034670228263691585359272420391884917397787009752763866643218464263542073790038355175888507664279583099124919859259360472751536363450296944334278673776884466435104308848769265085259065751948778605780244369006023821097783777971033438625399683797610090264570241220577451708084553343778131798018483447878588107870465198418118707338259229870399280652713573795823688497643331734308484180551292620813865407770512169707675421959381811396180429935092469313159765356590995873107932541949895768739820966414876311517612981148739706893317632601217857865255915564736983801898322687181453979030278120133197116638486065666571655443334949866281109239359889924680053419230905153874512602369497944000574769688813844604677117752355739326716009156976923548397936636837087068312105839222559585318386044046456404789944226711852459742980045339872720963617815016670229713627152445185778151858620776769077633969038459556017365789453732297862927912799655257515311329491678971051743750900953692108168841699716608418505633905244773863728012316399800490559618420179064194344525954580846173662872661879465685774469767013660634942904828531769386491897371320185353518830571589062097214994342830086316778972748704623506288889769029752026377598077307330350262409473323704420254597570474072505513204886213110318098991530529377809413655644891123657496547389372657697049199053895375005006591402045559503653525476156689701552211654301973392458822634894934724668162159414107279216107866541793799790850939931400998680303034134462212839927145189274206284769417246994550562413386674421387135909868962391928088474913054310192463176954847282742820476527253586446782446391882802921127356803382197054408985824372280400385221240379807955397808851135491177067468377273293732167004073213467252815927330470745165449075799698074795440906333128986617887943570086152971302443076058617763443789297116241255670933984662909911894378365597868872690548694239974295227004425890579442549603356617403042992494003223837103998798615793271690901909213450435430465891480223881504542212063409458297783097573073793256381522156167452647917860222358075291538479728103620223094839246150019857114610255915849099513616084667073686184511456420468178658432062833553832882795661009303543688375735992667287912629581543352245303631625313850876312162342697423800193324293404704303707864506381772396415667377171454837351917800696143127511367705074813826494086995808713334825388590283322846554889623743635800141076933230988325160032926056688112249996170034722308087520887081470773295021530963450885048056645698271805401995923424344385613500454006659496496823283437062033612161905207746593948673938580100118494738408722158539709563153758417095685107868938207898102458913040146992136392001785572374022714827890360880792748516178729477712835927104997995110018353556794122832527818069959361916215323333161792527163784594536279768957930359006675374790539354503233116002914628901710430034038867462695355962426811403279270734920414726772326622700869901591031538112439280943791713585232321156276924715957449393847123700506462732794026199640764356355983605871490217129539703715439725815917535077527515549920840527930979365592485091593135740858632846475852839747279736310539448532962528934746511498800842362104819381900383982228171250883645687748660806690593368024574335648222229291028600119772341502962387381146040387867651766599104418834857154304468310257141096172604217194855932828135020569729009998345377961615653905126336744792946849540017214524821065108458204285778623220986230047825494415854772936184408029595548865834479179382594878483453621598252515405367526048683089285194694049489488378082626128443981346248707535461091248860021271278731845107841874016344811993925163718258922677345316915071395000995700781743623194234761378644292622676946670897697335008771780053074936170664559766509124250958330874721274191539137424904194044668183914387611951031327737791834244145543293801394815611379593931183756684926387285793207241560266706607647044036938141128824585103834905879102821320564171762865188317706736346391193177737398284265508315903791365866547274223752109442342218656979996915589227902064284122758151095282995900219058959879001580593724384223961379451723362745276506970659282469594705049413389903970754547501107286333503840093136248765297243305402629253697616397784858748860467413303238786490647544655618923065275258660977137685132613439527766855811552679319732432436557139010180416819628411847429283460369870671996112620884092581817883608658199942703321077601974649187419728395042150353427751986429273231994305677890275287544866739505919287227681286185859152088029471965761337301969287208511244624566877987614398054345541029793005171673136170681430254541196726822372968848131035190308135882748735597736309961327062468489788029115945858124867762197170351811375438840209217928860765087791670774690681957515913501724735797473223930150846958653315933002728603996415815830268201708975305454323353864840651085679389781499031117944463920268791239814040960144713616225012631249984790544165822153002846124965759690746197944464660499880817100941105500914915893258856547304866490075565194121305729788386989171303014804656767595947511647275363283233497866141583616858911852056600019801883738767691749186449160746594245595430156788068529397181500297980311952402332127351023668544262031636092577485028951551816778216515407713712914610881689313729022044583093340826820290568956430495023310655667335100420911555640813219616149260605549303455508881399529761449953371421960160274194723323900642064213035377366336476557403621568457226037191325199681919078916166672489277896459414374612643687661323692797509439444722766816834497304160582852112500331297019466615792678598111339357176985111335783888599319778971828550671086175499530761231285072724510211394865632916093419411708898863610836388172329745868970941887259943481462686481745324951937049110388894702645538527735575820876202081290246753375854213803891597346765501449316710346545351311487072936629889994803359483262391682334403626930600732892386429555125295575126482506155140961044681312897836124363469138186081453241680920094106205590005680195005065089638969865155098615273331424740668424195973612547532358545565683395205082323177408160385662278717635650292223952119694464925160862120587688340578228494693799604464153434422148202313977077209692268595608212766279147552415131054828338439423121962001968985100153292811379632559885425306858201060669760953195982593632668753077303698882424269351611293968600957810769686416471091195413491088030524971084210351190695292123042907656941158820856384197375347202798354500430268246078964898950728977543228115537987595468361963026436841988328629664642314707113830257717857669818052897288264161424979267038640044757427631028664440899028397400949802793918615163302645782324301105656706622775747289873812041459487465183976838337083883720450666923833547248528671913670314386006887685323476777490543571873349895643455526426140581922439286405878630442211870386968471621154187376564731865627641264485341641593750315707961387298975945874294964153462991792034641731445517680456900082358854553738361578392596366020861368290669557184837927248534270538559951443481957008331463153036451953006419020804165787738838741802650509296089293509570110383655896631254149858863097241346446972669299043488686111404414431994669596826418606951645572150813222336360554522629568535246341500480465106503658741377799408616266374640924065808129814104269380717052676487134679465517497199804860573671764808981938387801398464821486912803246772274526547508038604759330985013377378827315004364910236269758780148071920041540086868517351880167570438733054935808455420659205560755774038166131042444180940758763260752631656850599983866261909394570307102426341230157871205480395659114849107580538544317055562066977991333763541643977012801120904489536583794412636422578895294430145216449613256971090932529427397655291887006740300120908434260213332471144727397233624724042341103269381691906053916994258833819964294669968610992216414661153960457983036436995704415850402402309777973573112233714525618861088711441320244463673075804960104987032970297830498354433345227684985884402956183081173101363551797816938129795756345330717382557557500759563312739971335250782367814687038286647474744294087039096172236097454740706534838323529012046302350332891005328403084526959167837235074477659305875477224022741094322685280915229344315376225659919737706317905629935773173725736235437912897119390045228126088627804730409178254672092588921448005349875198263813036816924995421647537455317378855601897743019408635708149360155689159028931636951571959041904519363141536329117967634588100112520878430298063651457438000991568509802982050411832181862345571496025726873037393649801402641792881450921539353405002509082135041066495018879743603704863680209359585641176935523113125471975037337380591431534274076362525385079148840439557953235168037849560821250300951429530386407666187000757285454086782808043866023361078634532154004108909450775944111781586170412752275944934563747578632029444657748936290428968676409878730261434460643369721457920947186427948613718749360369281820142609464225325065317452844214448386553221907874343704496200903658980321708939812373109546479273818559981747393967744614723961646605620073973872729271571763475932460356047054310640782984323117153521908577865146153109852723458206126338845269455684115285158040731728400285788511807238093616602460447821029452094648876295931079935106138460062563337992092935243923454254201562654631408465285559547757902932141325252206503791225118954366552740361774672256575356637513205198505294381798665821416862004240833937966805612724655464496872268049585115333447781617118539252595879090297040336219589695454259247706480784640084399086796941095196705480903100518282912690050067888564355578233642944262402722754657283223476086023571336522013742130845688331527365589318721631821799044744855891042406476726972183073606093479067845742558706034807995767723572016330977995891853362655544503268040478952007810716810842692040065275360020218645943691883181574136105567580322806088612966061837551912066137141513038968782436351938726473473278830297630623141375656640126320677478448790516124223397297132601856867452964777188400277503758254844335016223575961382468016116679001213623447548167799602719049217224819307370871018215020707202678285232085480261606253551081940213990433911776522549015945400823228516243923170344623298393750093116429686540036517140109848441843709046779083745546163601975756689725974071316481900607536644731793435283288935590044167774718486409875524692022133747903849788879403618551407776282749728673224451097219834555171961670432643852609586375628712723689956024409867932303727574368199609399653042499308069724804250803103583409036304953030243763580941388430851010767412707489410884685062473798766996182349759048139789931130784040634074413960187543580808184078086934286299728339376966968138350266383992129400010909083035486379869929184255776372198174867089301734170875241186722277663164722565955609117972868860565754658461784276553217495746696395258362003666135345030700552855598256684322362484647003395315596906304353271328684724887665727821600752123666186890548541424399772240501579693916628682280965247642139957488971187084502885303296084547554016084726479924778959696519613222793471113319195268292213139409714990848698546557934120883502433692170605841581948309663771570339273225677327125588160291261399623352069637360453666315204155692225014492081514766915888246414043153443774244582023009096349827093011744236411818121283062612752491205396537531892329580173280758996303270002735906139600944402783421785288797081133579919688684842185527002201953924429496259235619840540235031546937647655346015491969032888760827175075408531387274899336212544130151885932348349429112864493796172400961674419639669018410027554899635312418547260592324677878987670994794189610209984526055590285601593380885012422337369422795447428206111805502146328433612580876969669772965865362364827808808613529760313338920603351069367517358263772468039354202218365097730250017106416432508628150027437774872673366917435602459287534324025355288688234971720628879826237054793240029590098981936722069607421581911300052654284271428045686431922983774163309643559795457076060387116201588885144032603911278336609381193110676240720032216491256946186262158722906553264487293411951612885553394891575450753779438673698673692682297041986303296794702633724622958579887871915058927286888594697366497015735401520804313660956200687148912433815991142976479271388358070449044314838604356041341648772826625146818569809485585487503501415292092590763255927154865216314618339443753865138044378818243768231442931826735127976317110211245103849832676099715386232791486116503441489884381544220985082281694649521452581635434509144006489304261968042414213013744745742497171800499459877213934779351493772909681244663072566381585527885301593138553225228770384774685527765324028969239941234205303769425408379337367468544790723803186334172540002630268413327832056157024580442325712910281618931381434421648607129945229096105380906231097237679738618491414425440110624169714295573940848062009912779141451767973447517092368194756336164481453592312917733389868990008276822039833029929318812788607285090981167611085389977208801527928318993629574728836945065246680396564663279013711611070633568131104126510409027681558928108711671888880305680970991906031720036107435085658516384712818241819295672349274955681442771253653001460739828003047651664657406600611783989744679213369050776519405352797612235127757944212031739818851521593943874956808984292039400613404544869072731974005158220713496723040630838450416996992772021009000845229219258318095679580714520319160598710840012336663630985186345479673049373354672287177134971233737128584545112832018711186533743179712377994562629803987039590754060642241725811351338018437373437938959457991245150944529408515965560501915117699839827352999829011617052133977194171533460605119265164811993062133679502464645014285054760729662636161740761797757400618819560560615391088727562643779491669497857835383628869906716333480178083342087949623175227318767622663615074378737794433323444619775022064472874940289527689219890384495560981010650036718124770784131599958683325564405648232730437245362630225626321226045845631716768303461280474802683349722359640123372930392816763885784232137052811972501855459534846483092174085688123844109654059055585024743885252142134520046003684996924641097207551551707624435592480714358678274627420283266935877539675225842062753706657511022812486574084752899482937920870869054622867909111025629561457219425028967963545810773891624288570031460496756794154646962158333520222864488944259145163432047453938473104793283859912959952011612573525969106855534737398767457288215953128960005917796716911844829524664228153129816558698848313065061022511816873862022318343132058104034761461050542365342319099459956437310448013112338046726632962838593177446045658484544177175651230076828991143500055480627722266871627270049001254498117487494049422619039619957643524726684492039232810420678251245191880545265923254201272215574200244859911464936428482067355976135883211085319831847648978470701527405437186179480682035831888410408459452713771146555832081287883936523241988136285393539382884315634859822323289573991669679163154470327893692625198270412252329167436716244446427892866998598899209416061013751527047321986190818997132062514479649281764437864357743073244305347687019945137010910905924752385238587841988700954575329735633928026301545517235808586926507894969042745554371652395421273225432706957970000137353612030638544007758813633663569228208094216363416745592048721223389623657026514295140051494492707648007955800663677026134578899533650984865136160422857500036982991268101654867548126846307456684383644633728926897930834152715831163428093628882461921494479826930589396720325333243777182609587014721871068995032513528719890346490492741446087286184105408000428359131120155349381641117328842273364796952705642853550606082337743424100550177592407070192908092339017393618507499572010646716197586355650293036039927506200868017258956073696275333485161753708149267165713579068886478410806309950414487722212695217623038965889539696973898568668021317658662481883983139702129738209363052579344276381394903578464046312366456213545464122444384464784279245178428971018087961530745035522823303289903496438776539032671951710536993272624614752417331181265429789230007755319183931816458742471799334175861698477485334145038748345039605151348610575606394929760279598722864053278939765294158424412173156693720179571018624793658189708362088889958414412254473216296365812578204279526850149645923095071284588449016698043324655235270628805057844274671485116686231791866635264050894683970914831427874886834047717397079719510636061934347537893753990112982132547692807039809575209663468839907833835377843520624753855843200982856310824981853262792316235792278516088500231574207043202864376515226217084039057852624771043039813986189643490658741923679980683548377712068388751717232038631389691525484619287243182044371059070873624017659488058855938253582010159722008230482803146711231716079651155649815229427128518656287938435077007597374828487510834991023197584857653734456084943311829641865363456699442063017552978109622409291226710405391780247440832693371260097920339155427961194443565847985500687312387795862676230356054834290557355884019440496826082956209582403849621556364151386600210950014163802846481557349742766014840936613959218282717438028818627153541991324633144582113247064277166415811357058890733266339699921611318575703694993111967320081175439092369443517925654089846989066032312239126030196548696641183650357620312665286306137582231545304746093757239574811166111429139377242471994903505023477815459486590484388938316384614634888419781455308348726517035226842594348262584661586958871877616469554634332537194826172364023369138190616737584590673930475505770537559309705685155778801297753460877803020094775836767453242979816722795140137112504176094202707325597335485186913485988363923599479880189699267477281199698501566318387983948986662918229514554044849372341661133894654787256788044646599327648878550216101133326078253113003011770693198527067274960351414714148441837446161026206293821872553349111938097433007336167099575231355953879126905972941260268722551111912755290428097259426189623962149825349607341693892058000985357598132032479023828858638208592475082120445679486251830474135912827164152592337086444061096114542910847019696550596066098471760611104901243497798142053866008666848939717935312317508506879006733115396747420656908722195055337092753902056691509121355159662030212494307872635372989846801983317543651971615502813139869052699002218775212524563013532538794559642672405230607926313809688623302064002871258632840586254439427103517257051312570419089650740743915583663160043593755749658850153007648075604232635710125010570231783292866361132686426669163831060879832827939902000639587056436029105197742871412884851377848688951003455658568807656801810361431772275898409529174203935114702895985845002792585409280074596358033223026385424189337150942816786914275230530975170028838135743112190883379730962286610434186043119184173290132265730491896475053944748068765499308690834508179325787979133444962874613934425665164769450187895469215032803549183900691857287829186311561809039679682994390671259018859661751277693529470435394044219534286881235319355028054897649524935304391408980410170871989064241873830795369152651557211430445278298717729272247806129540527926172708774266372618777205355495526694938284196336761883461684618367460989140669642689063774422387197582169962058816866613376437854489799697528846063082421173531624018684009635837312118979858577439720988176300560651451781248137904716368188603800849718026183616985395344936315486015895351938118702655118844545681877174621220252069459159162005562151648332707833158993727445781442704502630317683996457065110637811227789203441161885923882185571368231567523132166605835873671309081923737115581289517767447251120998256381299222140102523976302392983734561110417373547720796153240461464209448007684815155360198126346904707520606876861917218220012206359409418356908914639146267659829507589463235689194121549507021118827911174455973530800728666374655608576519575152679221155472856105162155077968463215458020887890902030426660571301486806078307887009318388709700672595284213879602464199634819978440651539629633201768855661684346020236295764787528994211984967216919594230584799669310433135658454769667545805834675589502081689187303421621411973868590210299263319907165290970754610027035024729781195295960889642516383121140460203167735604702680918674428640345384137507364145177336978589101370401026117869738971989372684883574444790774336689053541536234984252517250380909624864302137826290972457203080101322343392464734432757729758983152942742122186997738528284061518239027787850922042110462383175233458665237252209882397614420880076881866792545395526575670470894411126522213573572693643163637440865700303407623803910002854569565434800157848512241639272836553211445488600580827592118217161390700941933040869930005880069026215446142927074243546431002163477354803608581339702769677704998411446546284665095312491826793770433488740410315559517989016333940676858756787459160100573684798172261837179238878048079614321846861445256734191162301912021338874700394289726232136580747560461973081423401427587678608094163176864560183959840639016677919962385312383869440515593642757678785095026729462598684886818967394901945392138520224361809561183347340004702906534126064950483621803057030150450270750074406944262174045327501007414047558286561625322549290341771987453034162330946143455921333540262389348100858334256042703547696729321831117693902599351142758857112049959641290507204441049903760824310625720943457138927070839132011654567557410643300100017682235369033604355089718995782919432837583230657652610113068704633366700531223662999440662224187797362850396305118127175823076220058580269615893067372376086347831583838194900312917501407711566270873640897401315496725493750753041459715657683575308960907335999726837398168358891768233346825081413250211830576700353583348155571303340018240264580821325547834778295933899289197504977537840481322644016703609386810404477518270935722397465198060158192897142931130723454936009290069256210080332178132246172849697943053156315140271686745137314346722980697409422716434473252122142201309762167704115124318388799271796658637997605931260733601009714138859679053520402738498548259563939846970021651268822271934396388346276892946280585955697318378879744267640223501526583283411370678298869332954052562221162826301026218180260316532629033321268759069111990201784788797504328590818757116829376641240259440353441283376137858962852171623105986716340310627290389276843896405020700975836640003668638370738219881077459861126363451190121120896729296635666780019107908080944697741564523513135191957756931440166407466180877124525994402712446307998850103025332872498967360441105902710504606807665021118761001495015306894324115673842160094510778706051505164682321766097293832602335984909172148125263815740565348327364767859304878856396379256474609733204681306751053617987871897307054586609852596242849518925238578409521657660969005643344521752063156836822583350659131659326575678397968913395028720091483971029911333151139159908845378971353401122804627047085521399719157829297237893863501532403547053563748392703616271251674267024165321090488907244706342765217389354958452913614663008865389461882968655166920345381523818304071862089532499633091898391392889859432188729948235481411621809993868488085183211222614582258884220095348773333989489965593760956665670701965120738319497726114663516299498374275726931697727714377806696077757517704327823650756424069443444115964916993918460310026012109522276302929190188800945720853811566616103422037146287330754882962216164711167304893407752507292353987763163297975563600368706587468109341185821229557003308475726260981192730643193046007230510319672958092397911907103480234885029236745030752589819204169866741352397799717176780800248015465679950022583118887484718188003506345987386854329596874925966649169166998423093700886154870608863617406773598579068838851564162238923659019897515813728838702074230063699997625619623669102302589249688656365219262131756301938902144679951710357630842185629422970467607309301035855772718031320459934296308356137269260209284420411524801789134577173227565588153874965308300576656579999638855786959877948873124825671072403337650374679853186201038885729029999401940968682965069086648766317857320299769102923235838930466374015419726171532393615343718745662766860055780222060488982558038412195969849375848076057326445625097449826210574934046684252256341840853732299512660492274800769117372792628344650631261513236373695331690931829186319876232808920865641086874140358850408678574691647464582047846121091969988274200422419926148976467566880717868054186682589931186027083883124425985044101030370227056876378496650631694166705834712708069422897229590946133179004504751172920473040078216660665780702273423393672763321196396668137862186749218170237030075598671418794003769206463159279605423301396831517209373413969670577943510420456613594658841001917685213216830684240279018806515441185824742403598926676690464475400040394671238803409551228095047995449155597819644063833687568581173726489615894208954996991267457111672619789941828387228081798268816074747430736337486993420411651433632072257759917815609953076249094442922622968465019341100194550443561121123625482817343510041923912936054726769155720226113602609742385130242641750154264564054713936866611248969189260686645794162163753249685063710890407639139847098108960433425896853754588686271111254705694151891977522199130585424321547240517190807093280122266340979222766129887863305457157702434973256971863055936549089330551034029983271275411508146260068771904576189455144720030067798296569095498182414868080456624296757126543605947517296278645987880418246433319257340457776126196794838186696486220150952625629628717804395757792641823193525737285499066495353001440245857833771799444129546729661837127091638580974486824503857489500791024428488964580883407569018089078299687895498580965632892102893252152355758734057679189915433211149313701171637577430476189364191980161778255380396732355254378083854009734534803792949342141666373434529847379162836539222239062464508199614213223992954480685338475676736588454529238206829905250589083457553725000977915014957832296876946538466405861859474215476985290865434292406397029557468276687016440733474883116868368496159968997636902451552400643973221497754789778275805588888627802385770423065663746535658718542716294125936243166678109095854854713060259017281024515038721602431585966631786994112921629808885283900084780502070967095389783196568682319657718649149711297854296536411747434675792041578636742775262698344339626984591631475800412097771140080119557351715575676382209338209933495086982651740123347121408692989779321032742427505816893139398167383264304524655798644419723376395826416029235571756696543160562330028594593591380947293494117151788331564303806812502921793639172033099530222109756810997328859145683660153586559468515228803791802248883268317753689975393528790293522057781571854655564406990352953674583014335427764505991118854247133168235974139553083000142907743783649853461277703567881213506854168605591861888480540762770827973167366913411840729375714158727556627014662315155636977918054389169717943912237153714470035019525474654366404156454055933638963517237376041001275421696467450301861971202561594397999841238086111044571785528725732055296341172624455259446674849793639890017356035420218272431897141253447503168454259892843077105691337578748380324722089294201050753606220657660432522977254856648866400209926065436463068624602802723047632461428484466621606654112246208592334670037892664742474081981770162595130201602027166436861235989422825281718445049937739378365603322633117819578737506710458497826700924710185427989563201759088622580712130874464323147473310057279567900179326892181390272650697218753661058679049004767658500346513679502161781659987523986630405361974670781475268295038058214007029685566424008429500280972375109238981730866535537294782972191355345620560101741794658627076079284375257321408194519834885438019921823139662100373224135849069870813203140250348324986317446708149472862725776618696786174759690860994560525871450900981149056426329749109084797324319755983191041004377498437550752448621475488312323358161546739286975634490231165487961139769318066135099553403661364365707495012369216701502098454251100044680921919898786409070293232378277960247396374197812251688225368160427925605141323427610601345663144285122857371300548261300516353727538919758288005400759055902498500892634393296904970339176148016621846685972387357193564745447634495399349030477345000269295351992242743083549091252560490911494514674106965507511823314882357685287847018090606272219601934833488587918256203876972910653468026749221820838371602560320560418694065074380383246651302541976808404153443095298768073241809834048090514635636254428369763271664023646357374855119565786589270975199111104734767457815202270634744615585545918665184045962375133007100857750986833854993266580808630441947216834800779020590841096295314297451647094978524164213514977919124229674301664622978673301006896342857817094414588674593255498217573044756703137845226420091551990143729736002518673651086280407626942887005931558138425352889278325170785462176649847833738688970524603265531706211855167091938654930425614515532173239805446565053608216964346314058459185945427966276920624583261506960030761414797711766002976997935722583327224242807048057992763583762091735796935581389749009578285390396911260163620091756742620103435976373726247191339792619983709384851147786190196379603949734072172599984259850616660221537262276721737212319371069248536438629601870975181726654172453646965096702047057595917293124026830331582423558180078206587792685519326799041490065334525443979591522709165340667468629841146116871524758963843188417692711873696307665023241432793012135096948387851341037878779742446404919963685930037900460737732518780570841433167981853783866421525713344380620067284385826950360687566401922926668829923287254231231506358841453722963429908153114089696727847492430785007858113339689972804829269980220633606934567571375974708485029929299931399702461889669935280833671676188013807339052429506385301699790770783486728744308148611346226922995866875506397006783897070368710772672225808338496679963539532929092393678754310893083862079343971170838919242411123926480903722508237407553183631516822681158216035848514372785525264874078323364020844273486390136147253114626870355371006540397296879710507380447279184565806548654398720757757136074905818634179846412862512639810440718756176410464428198549411494647978982839559298300145061344652139652075469301366614357282941941878213231352698798724300394745705258242364285405627501710602006815061761000055414807458184883272954126281696627689545253887670720749999685036805000265507630371189448567358851960124577874900216268752992517318960773451577651971932440729549971812468389426069082803494786859229016876079428666252679792808121591762603595628931031209518750498214869723188339248795622667487716811727822380359337583088450604702452761539898625036548768116760899898134275725393494770953322574348118922143691497048679619612423355751444123311935011980879828262748194308430174463373611478545140689610476751293102560224085477553751017686143382702202276662895109872883510561360316279666517078197133719125259136375746890649986898270761686105027302519023433852952198867829229168242216007674221252325558769608389284723459437963308702418816782027957420505527010218501468455077084590057542548157552072915885347482235461737471834537912292720418455979634193553765038734703916674793608399418885770605554394969303998827463447068864095102015799033906159113542900938928341197083814250963246799465958175858178071916726223460557324272551313031226691573308970544673096783556746417829228728237341415355879316413502580157003988852515245649385117161033236901425794072121859625991634439967204764841196810139417898205012802229878654217231712088741388903046820843927671754754374371102635515560129523969448057703939149805814258341143431307884529912722814068246200723289773145463430336822740035602734313887317956912990635082321407074891715955051599825213396332466409625482203969677946470061043776687830479728530675794388206369035388020696752654082206304053786058068523324723601399532203644081270349495945858429254737664955126020498240600688444143688195794946120608310934807055630629809181373623249846215010909085757523847916444998417350335392670296439374861193380293653626582700203637186990645107503373072502740000425884270093052421061541300136391300906884799337909937255367456970053002890147923852118866747000935644503179512009828506072625177298032173942190546593550298997730805726296752737325692604459488018800892783829063055275862711806983141644232230613528939635566692624195390720490978681339130674822848448426291841080149692205300030696640957619226461113990460971175651869199857672787486571107532694403218036330274555594789157870337383253758967455286015780604652492614619787741548833806444058561848599246577359738737325444346165057841109603938389748184097727276185303338301744155744645682130999770064281332898387387862831699282361367151397653554915468044892181006720225864599722870329279545989699100399648725121726481325637902695608191191002392490213611526242209102027506143552390997231951199699254686132610122448528718054220823145881970657666182960475400294464027453751847858406257893694400476973136753105332239738347897373185724149050567568115514193063061824865441215390739701316715880542358286670437531529488253843809312789584028928378703704592734848989504690975185714303965370247943312279213618816912232640786560827291104062323191732415507435146216199252801116483171208877900373196379532664311996485727440043075307169587141827104829449164561804713547123414405450934219303742368862488441070105591074325964202571834733730677073980065131994021214035764277664716053475158713696612067336457192194167812915481799404011042394512270955905792020349544980168330484776166585960991909864932781360428159957985918874695362371071480911400958238611020324929254966258995015922816294092130639532629279728241262080648575862977179796443332249416571578639851198221055621632282903398422582914398960202821962992509039314400191390667280456712990372227020027408169975574450709123930428047765962594342493032090975214154620777845448598469344854930651809287219993872606274972885982891810639360704227388327279280011912292216172896206308978853603746629351757366480902664346912485362718303417145232775552973957685044325961471428689888039435971364503062333336612947259573674988723239723931134770115464022765414200326218097238108207245480156213877403407844260209948295103664855041730710968145855150521812262801578304893672605932715126578707647892848047224161047161105948622540237290759975388633817752367830529003403437463788961803696954243910531064246746390398142746343369611713277352231699157648569953169228234089729072171857536904271195153116933385522106757384038561352488103749661807523259571615029503745160569462261895013243300989388302529971951534847845115172196058481914575936461773307126213006440840098347396149065390668354500116534551539929370981018984761473683241984716813450437974178062409730725627061177528659346510394842742394792211930123726609770154888005105998351303907149165850020405509996098667882621373406329270131384042235182612694420007146163222681996666235657177262660655845534983919099114220313238504455629690874316809835281980012963448170282268957927188848790462797604615281505046905780638274083379821709381373135214757618562624888472222052376549769577707148919172796844865440050670207279026842660660417130231895403244666601369476484832939429278438079807153875412522344493632558657007487083005097933830909598421520683644017196327899442953891556770770400890406322740928379373787018432248051470912338660356750970409157040980110893804649517659425273470928363418249833261789933011424364955290760354530618990842437078237876269141001253213715525226074383766733117206257891468548597405858660409252599385333642559439800871867801120086114990408183645233960203731166997192645006154002957347752174995147229752979567786806159763177862063083723415176550134553238738010701387674951269943389543682443810550626613758919025037050414422064573782336862919124278652309379407303574348886295446967629415421897755926441236436259021837720848180287346821830890364877760752326554281342217658813918003741813533459956943602995100600751885488009944261123515305108870081478245629511125153082118133340909340637662216343328623006187098236565125720819188444967627138728229417620489553446251559507618065382965945620808826333870878123586383671562262722053687754433624636868364365507983883349707967444485495014515413896370980936582869025687492571189719764512667539872430839382915686186642730931289950873920364129012164150102388287020269204431532145787479796098848305487181247205152621974430150157741533873116320721310076430187854540699412765161466305224289745625106172384436717047010277536215840761221533662313777356621813223654612563497451971622927642894983308137437514042532080960544112381838243342659233599566859351365526914029888891877893891578151289258533124644879003385545761692723325135602871672486459210317134073820380164064625866594570990555056520930896640372319055427521183082943920732279491205205131794774571528506049342962357665410375020450997061219343978752196693118434359753401396961018597061506494465040325209603909611250231868509486316131993126685029064403910613123416720024873116142995466707689947126582010655254261614605529770193959677627614628054463275228513362224826407163455458412165790522251144036655464332836001067024363748113450315535799150022604205919341164631507648371540961002009740341040259896451468388824337636523767577594135624392144504421044717297040113191907959934747537172969905200254322781912470146002205096482373087181547632202633124539488863871786790267825178124581195582822348208641017338101591860216256125812759447628251978261895716718551281538260519923993140824812819089058384501570172999515079420324407280350948389037130256777478990271384873510737589357080973363837631643835439474890849640746368501420357067045440139913590074640637317493717382962962840743198526949893775063666603536289893494545542058031585563987200735775334677282565289720164170554253255909054224127075159782523310227479357671139302089600679558915954065062121091404597944084565395968664184889677058215950006580763681003861982802752857029727230405668778220315156901594639451508310350219315851775589100002670124787080462794686987636705086349947789762352526758680402009973109368741455491622256075774258949063061845849501281071601521980345130769794505948277213100700431066599056236066887392208771983616070742253840879709126777360968610883009222380288376421290511324201579562831016153130242694052191891283857402156597145129580938294591180911783224748372295026270711664453900016630857723425934467894038992207220983228234064803184659836976812246495412363059514062485576304908326744376406277788948337063039291124623403054721380867162402009716972002085868824385184096332275574879860265774704896856878897481620134100799112428938593070837039756320764256266302360010726842268987365777471435958603352573710838325367226813942543434628838081420330919977711297606422704035241202235292622909615074867404079899560183840519556799186839774831467250138588178716908114373378973929799153745364002411212675119421673332085211420159863755773000978339777930937376257657722450091179133977952715542122954497356590109597758727652795289962089694305562769683810809595002651598566409980616609497235295577471594056142346166951446961596171833022842543242778538222411805501093745169246693360673863954420653283453672251653043710696689526312041213557250098000728100432964563384957259448813988789671245934501226838129615351652382892126824169275531050891822657656868399519180053671246806031723345991998615854033434047088315358729317360088697154505228138612691005981088970803562040287273493368422674360181858439997463135432061558258165688055247749173721930451444531019955273214812253054186250552165489311258481256302091040267439032720101188163618534088470840812958409394223703953527914456663939720099157299924960968785060933697339718951569120787005331325000198817785399001695105256133521657760942784887645634921812944221077945924545917036448476718874998757672465767711169686424034877824885426767115669907223366631956195754345291033841075338477771578508924545023455839434874881347950438301586155477841878711339021407911347910059543268533075389311164683895057168069956350964449745285435393091573486061625298982180314673881357486244037105850198912802522679164331350720276350736930382739751992356151044130908233197045090638773148510876041353613087145806748040507406668704792923863716410608516930649654574550632387860083133944117252321351482479786107263879133512284875953281894014584501881624182342782770905623198671300562597994191280351928344540701178167905822685499105345952829152044271039195260492770216795562071452112324134243097999840597559609052791585052763172393122726797821400562776019763560947558658538619295690703447339806172475586351866669235988002338306383287795292492183100617781913979901745006657031772590485548318509528104707329063919003089710800885465028850178792135424636707164618579278280012113718022665277258636350288110069596304987289745766236363318982316862137063196064908723492064418584557934336786228281540161933745108000376744238121180048685846124572583131044597581090925105449233370117830432816543555550931533519605268905989610178667338296530157037698805717591854260539829341815347242188816967060821613566002560254435323424572506656087840505077857945015264193693701869335171941659705104161275592180237618181512198358187231858670502105724142714883626112139871210329846764293622409008585136039793806514344440163367368265044867058697779545601742433505017035959888771824140964202860097703586641204810835863282969310761876650381052707426961890996496811369571682491860486816664001315075630776627497215821826281302058970563335946968694810898531906260789343527868770828356695656236945475639700982006788379987247298410408475253870815721545433571463275251323500520737494515066673258065070161506011043166174489757867208229577809831590208054608330944377874375418663387400017315166410433633635198731906080804685529655700989245899746414637480063228452988135672759000982629529696882759870631792300287659069700638720415503006247541439639399772783394186255171214004679576552098270292580877507012534517567382403819969496826910753230748700805439946621813521202585932605113164665500632002023518554141654502194218631367063702866056674155695471951530363714632228792799568576602395031612220599855645838571598275602729055807138643810293684140156238751995522362486434177916948561395590646787251225799629613093444467195421727438810149380089450201505970821934513668337041462187158159311888607015612944217341006954550803931948048941805601782771025963624444002320966593577447437441555931470192169625226929692905507256928968764721047677051125129980250624653311756245201354543700829736650949107755309566600781573338328951716379830529969453974658572322253543483007354844898267327291236435846073831279635847337321763011517771834230923973274357238508083269673948509972965808227149347501593124550367465702056602509782155127635334366304584729469261783701262514455981789161441129494680699601344377124136962013919060203408601800742908482558504990684198795787820944315058364185092185125788984961739653376737161741689861355447782953096016809226333365312592592424479226874163888539594648411510179072078003961512011909111437417669200784246741520139618275911296736640185152567451485152916101704714370265224235374385525393891780919579512233175750712102047082949617531430846615735546703407591686547661159450129104207127842101397168375569657406312741155525789262484901628569922798282597159140210775095937770761803754590681919319371868873634293752868337911574174026511606178411594835718538290195903358268454571933238883921008317451281425202555944548836873267723170454232809191750006290146558917096847499768958756999462481511478621413379598213627545071015420014572016323177688121507672830439381539118425571524671374893011822799097774683741935883882443398469139322561124417808439858571310828893608436492480851286690224851502372397313704120356094518249022694163253257004910836790046239465384212212351143098390499316873651690532924826492545236731361807034436425845882124639642359186046436732965416701010769526125218296713667122121225042469603250876997672152998083657017114984719952517545830566343610734025408928069205236348222116755039933563224899690204756406901272823890702531726335673966127146290192634084005751964890949823252483865408244544548899469122521846791741919976041667940267316706847664326766606340844841756302343509642290920103715681141398032752526608528492245572352231308604234149564689875770834601487171617078071184765450367030608386305312684047502729505114330189321090389760797517366364312946852202790015099693124484572937313018535660990685011373805291824018719774773043026909977888286480927635584304682164328996199798668133462825267643184281971715714526110539764825850486980659173270866564521858658950884544068982502176102944036849636412667839349994546013690706896787419569196460617340135906171581778873975154622486460437839541747871067125681294169937369882744542363257044136688191436497758889728550046668500860461039777607374176265506711204919925197440405038744139449416016057631755475615959879838220407598374369712735923270176371427804089035361917788840413879203463064379201979566955980723267305175890065918959536449328563612645261484925271279803801513196253078615764772061995373014949879647142489505914489359484146325924611405384486659737808151491826435950546181456469421662115082640695163231544583221762748556119097840725878313512045502512709439736199966419528852935119357821402888670877428010705922736475352062013637814745297243292637728631309325872370541382021418721120392296904018989354367804431467638678326172412689264529824960941169833519990642491031283078771942859392615657275858887350961863371729928923386776809990953690916307129073322978222889299463238041955322182860455312421437091671576415282781089867007673700607163984157404774435507867874080554915796306107354359553561447062335132714001101457844743489768440092406082615291080834777343019629359521642349072629205318286346539043569754407039558077436671474040957010562584340859975628734781752326461871210089492456247395992831163768379118893166636826249785470857708208811784471016916074994226217190801567965603384689684448882521373835879719322031388925182947545329654325885974940686762326685104019553528337778316035883298783167457158554520038131534615708760248002888983441443832744026689455803474587999953647227876009784269477578368515546168307463323931441272008326849745423758897405150115653903541394299264145595898887773254018326233836650847076550767840183621500761337222168006558824792651978145894135351421272580930472872028661768868776401829214117788977340987041901361523945217931781665287305992267287176457089784483215336006426317128920634228600863407059379958908421958096263271244248388234817394856456200688021127703989040467535565603645126921179324398244649577109403235757898844087356736452112024381852414441321335139641309384827717164672023717130930317190841301165342705886812197884038566676488778569560245109452568824051673949247987891993289741316728840443957011809830854552090779867153753885881105928697318118009205813019833003536705469611004209412841171114912238154602677094398815744490388452061357901810718350669323935834234294955215439616222436712745989807094613195986819110247224332775042372049774741522599657857820532070365699006216289339796400689001641037789190025697843968361557045573634763535929329752511123732507375281756039365461187222360669699603498478471412715211955427378306202745261433620762872287436754844605910124544512800443909205316047688959995650228451012408142936720967363405949111741334518124649785587921181005512315197141397826511850998833975478955038198726815985640192511907698117823892424731358309541778407888198190943812222703407853692737387885965112673223594902717945909840851075172175767282442766287438057452650042884020016141838043516647217804312125691514997594442045725037975160816132787793114826002653724363506145412657380494219397225759187566093909731125290882336823996246129542946529377178534434569823681389003579563186590898785409989982846245924006257036509816616520522843949302440240651369384369879637156558103301622275058908366394128727029566517999491581902837625030828977696774276117491267366864944198583009564744415415129984317402085895138450085677445516386319160021988682487214396856539174808112678325453005284766824973288931750219097564823527565821778878032809415870343665367794434674534551326887350443448027946607413707745206431699196382598071787548819483020209590073579073520027334209690166157648351096884877227211091686649411608764829843509060135489759179028874418661481172696345666708167436611446418281872742493468401454584990920269580374164651420180400961300559414387718753338912370234934722409344130965882239564399276388541826129826332646078735762555791193316715719309824612867549475156434702958903869842063071931157218165806437174012081043135825777437568333118199782659983373966425801908646713571167686554647424055447979064894519550967291372071161323219780947016268621195800955962589205068640524990433610611862263676823341612761801468263248813520621678311506047919732688973796437139903083975940285125823055156218474752473879579929475529167537799039069035588447277325084309768591345286674215684694819528266664454619392649300291656490875490959225370782217470272698479827973248550735691472332601683437294268029324266550012794435012285528577050244998867595544658104924719133893487199530878092447578526460714975442946808091103372662357236940431975585968376102784303047551023880549051810524982167661551096418154893883050767369984006387670567177959968468020139095917833089660106080969743757943393199291954197540046922213510062002342429566425992111358274990226701851547220182354738809664491572068935324083997883612392149084491849442034871034488319090815119928473232749180227527471945283085372457171067519304460509372367763274539032572216995184541676252071724926135438012546983709938398261561140125407791376627768360975196964671923186168728661235780716350694851294148676528414595579670403124632542672272949613651303130437030723482660443355894041098936993473713835148037071264272463600331218512063378600694539324557049072776356487765619616189649386786774268193182395524734709622887858475796075793410749696802364767640817174714896564190789371789118625911608047673837919077029442874576344287474136994015658962887688694808997382920375676593632718520401319169836352049743266663721159701469611609680022409898890168215293375811274520191145733873049137685878000641646455610947966918527953740902806994789559161953480930886227190701641313146557167686224822001860904999737480598647631782009622127437106854252859759392664674398859194352767647901524405832488095633683464985096078977197086892587573125837674560011346917217631645582311028229936433778938378031515971719961094438084501840294173368938114564684617988993659556773720678387145539530569602161894182703480249917942887311397830816026925863555618302012629044765544528062239196749270413601742056855832789349828594883106091940022932253914580334861898032304914010290440589049881760139716923066511239426145087366071385222647134622641235552259859807012745290758462897553570616598829362473116438514671348348031935645338857018136031718264712173264060636137831724773430582843436505928473742561563959510425615101250279428993967215827035299457139074450753646177633247669007604186897697298756561049181979318288741006202668382109751454948705111918193653208985252762444545255471539536702797027150102171265063605894878705965751383559049438503187434760045769483061162707306878543629329431727754566457967708782150269768386463232341781863550774139726417902951149874368544185212761612400843075559172422317877547843232884787589797388042865232920684468734659306137168961447205315493303605473122377845836592699031045214901238982255777271254164776454693667216880052904778055366468440277874369350548913543009849860907055773020467117053012902426519930174929052955448738937796970852071263125564435867928559660601201521476788458393204656362221276731566065615752798194148597143747413354545917653276972156240568797497256892464811579325460544838997371966033527900760211960333171450402785968399174996522496061850095001181309335476152418627498829257064734996312287769722594517135184489762956189309653845408803465869052193411434765414665972555293091065722315960593279557775042263392626328036161313449470088108289259189207588253930953295391452003700619335608529153689650770660889998099063507088502292448026621247429992841367200992850837157177388404146860193357012826232202638384783540597589143906120888848630537533538221092100344795406401076520114290591396639931229697437880820119084192996242549684351069571924501663523292924409237259092875027535561068326517099670180059116979745076885670916773191927748989272085491296229466833356635593015407722701116924190851657049636484100485803516976564498686156470509744054859217770854644276367035769920963027124050789819430451544692445429755645870118376290424759786416944738763027107930814165619116216843701718802288874879495588338944964653815577813072737850209838916521385946214055419392479618914438883924649199792864656353341150862775384744511027808821362799944918351026527941808255709389383929712368874221836634344620453163710626215917727343954937185902398449949751819784737088248272912889370101484094905234759084795233385029484311833386413649325653718213264326301356425338957298590058978249381616892129526000058445842542246515833282443014361172147302728329790402730640323519722949156036051739920324941069301871707360731788030138308883911044876460179817359778823440362856066381275657571865611666539067648357213232339876870772408773880159920904488110835711771733226112956193175372608956030415659751937532636936566088838653714411104921525030856684691614135244387383677092234911756395967084347892180122323218041812439581561655393349390193013944548926415009042922243575741070068802789717455934226272700293758068819830454025673322173782431502043529584025458025998499531058879535171773374314815757618158978710241671369136884866330589088889958079187025023034400677045602135987351381322096608025800002680943794668304752589969794547069979435823308984662813455407879719988136461763171535530837199461839919821599231103510612880850200732780889010845597411671843172537845671374862307570167586646389208450047804605250998367936964082171960961638438572841831584777903106126075872520267264572664122435139694050019312884149556838635065711335024962350183063697523952767114880274803742210665272076569850972624956074871656483420398597764811588924523440888398205889248348638247710448870991791217419624112727429720762814960670357910579882392376827251187019449717849361391030284935902222541831380668587537890362151422475832651184793873881717873225736354055158086951735372018116895925818932793218984702165786868127534270683724443550123209431378747861934232221252685503404341668989793023007431990153973500523317392404433919174927099691241726875658573800403390748277672889246269426556759904220156619230722993327982586360615002913710573762046787671142876062211532376643608717120206983884161276019295273491768666603287047042787874703445338175498862459051066603455627702349649257063866142454250282904146942755786123778442643359991951653748508739234575003271758853583036295894071935498121386806683562029865396222505931802554523453588363372396859166301807513701318678935206966727659154839887159727848044571647095981560190171502727183843017935225570431839626709127009180709662522079997908245505186970638359980618381388586148234324684316215940831523722048884991401092630043446894391910756085481567888263227393988412743694885497517238038472321836506391541973796263117286328231620559930125215137149884274043242348939226054427696571344257724286481608339404745346546897461501557343693538302249468966019660361172072312284366607993513507480713261477810830090567377195182582464499833164774993407728717490946224814099813693989270171646503082169898109507395504896923088369170220380584255825845884430309286136864751689805000196833414802565659545897253075305108837399077681738696151230083124385413088026967118162115198892468653796504753249433043187462405115202884231375731518099415233465254392987547413768377739408346922065727164592704429223686541540623233623990544135056229717151775765762610351227050829848209805563985504870503319092653644684710861518567786184155767401572276541919973112646350034418057203467958874414055794151524333995072496270673277294233066547622049449878904427201251084192637951838362405925451966409302311919245529624835151526308914775121511563516287279509431288084812552623956119617382354234517952454577191184970048793475067573268923386163680977170736788443383577709907358344359845809896178811728893723510349646013046238409797233672745840133736646997602329497522862939326214842243244415102892560752652391169553154014427884068520608845551015970822718000910878994198709585638266427220695862362546922525798019489907572410418408907939440091695310593665749636944970832970252301472318390325962946074359913004466094361737946681594157148930636701837792899341171088946229939549373965718637379218297681836364956274478374019288512188622511089925979156574310605459665189363046978599998714899420452199415267794011848816712565055143971690593898938967779153772027606060910572145515577954430453302120852882342769924338256232709304800573190801526218475062217750949528719021020386117603080830401358184675134081454214895265685123198071119605166487220426450221606271532684248086362747911582672681084191878020546042493101385395907020344886845644902293142789893796898955355844664622107956871387645536292963567890429282606627056153898573747098746836980580211892500452382201053885154136092103024858056228567972241621491842165412131906905990695395727638539297059882274192762775241904917158081835007580093787130896241466444559561119440649542312210805525263618817027622922877305972694746863844098320275628996172035651194509778017824969393538621910125497020141264291100452654469217488575287719600131654061978943169432062128838660061815894766634067436293560400358304710886862765730543754637501852215355573329887943575546837638835114978435110839355843100426351647213584692421679559350615260486102643402760044190616434834571200319103946837249239282642254057893283100667999164510869986239188631820503448009555245917286636895761826470705553523045744775595561212257708266850319530233046932644777210907652298650394277148252141297099976365441794572294704934764982465640692251098775344496378403894520003250227900036889990462708966567792046114773993442795574090502826022405425833049535007532716217046017421997018136930658501500834668166028252131676989110391156709693920089145509471117281452757245850115206230396467838008384087616677242870979943080046313994339464905112957240552578025117835231483285585523347027896518548194963586676120782866853406777366156002280685560970473693089103656514793712592449470260902637642029365030030847390974464592655899239008150524389066871853353771876981974736990905327199487431339187999567979830541980190027232796496635020272404694491242735967661610850238682982320955297737260630101488770797693613860072537470375155881863711703721273340175304763700236796955359689808497588677581465144588254856675272478879523297215624789599079617819374060186159304779253197215725517606772808439981516131206491767972623235441325772522696009151180538662241521509384111942308844935200467310211432712838414108056662697718202551261774786817164571159236394000209533978813519105635266278448872089763353619786494457738272807732441638320438206911331828624979080277435293241740207561512627120062874191400393792997318327140868714308461374686087501815308821955116941246680641226485773515218324892473162908504079765876170172525645399239042841356469253316255840304356314630661392794305232145779713854739792504017208734531716502573673297573763375855560156222947339720734966777269395555669380799485040386762173112296559524603928789772131415969522751628309180870169192411273646878837714431341039830815342959191512856473858829462577361512782337435789992724842523182683851873429804438155000628064088530701273069399709711615355311675758658851423898246335307421675848586518623449996999555025255505199436505149821544695938328699866245764255646986631454302208842495966196541425634548082081482206073941980925205244550888414142637467078538830425393774494255567033257658489833752302768868449810720161465894653906114173192548591884447219363593775511153109704584806129001157225434152238063013130237035490348435355224646558621768405828928312294131751594643658216598587926138414571527816857197690573146216183375434124643304402923290689798480421380462010872540132597810942980275241201262765681609794701163361410258581023917245078355392862440176357674611742285323204416701980216380507298643210498957509552591120358414310158528741505938934659237734973933088714598397684387653482430822141192895114352138247138960339336989407509374231317772766245805234915874457810297964289759717788477838083880656950024394078796312702015482689854972027224045731868530470812142770237220577268191251807440271455873937371343474009065304611385284400886461436103499849234135775188041335513261372768180801552782625176662205733637467647637003665318486523317105937051802112537267643284981021167569160108218499252662623182714585815012579801542217993596073319116385096474220274165550972486091243697182974071711525714993482692439309008879783535456296372324353326426691203754590993246050536951723396938686462815618688907254293818778920329883504883699895957985526519834726044039774108149152283707913443955712159795181131228541481651851258227915945394489088024552914305695294742546394635432886686645406106196556018543065744341443193975630791480986999764719394685577269262942871634054329594115518957748952815111203132447764797612730371841342533840719493027512222689428093170741176764085163232956622820541086223682374494405513165165380479150830525697414838768289555839703505598770780436654011471635322871334695092031519625788009088684168057154268813470484049719850657251116265294936743036430324096235892196352094572507312945815918221163406074180102448336830991735194690342128557632188589685184160983195643585904094540131310170512482692105493060313954203101583988132547248483171873472929463422961686425329812389345187806779214177611370872657005031658474937126375546744680365666500895397618627943806249195516275765906345615779021393119142815611236655340432966192720541166926473650501289973032692104805172894621756577278395897128151518389930626324482547726339253190045507505549280131228068390183800790261956624279537121238946382031479778252503236895933620254419467818276623341273095429687336606602464223772900137417761251149046444081430739693053200047432160705069293143699284615512700615164333906242614890358508217813787636064520628208048826493847618204318144833453693919260293657347371482250007274431861983299617892444102438944680326971093775167458382797598165564056721509710958762632154517365088647700789909527832368256753642762081967144587404920182207289962697731678674659135019144156267777473456254936120455008474454901411525867804617241460556519932199411756300089629951027248136584326347615747230920575619668368534357983448656931516422021481326336577217831228767773776280867198641049559099878314305073546846651159248464282238941834345155119341743088152144758107554913587155891282635954834830157770732362252367630113887781728354963227256032687287939653417862121666145313157258901788662034937684539692697558664091234969192932904134452582481555524964006421289352471685751602796681277054432650260404875526057495546738099157166956702807288763453616674259854375035213205581376806213343037666745752216565198648224423444097831881012974440351182084598873430224540046906253882404479608979863019145397093534956253617038047773818969068554552754820695455381374214902828140077632215223986348273516286777107083703193168152626762920514133753400503104285768799327990271286670216494791006540579969652910492368716473425521435337523516627056970213973157169188653746538912776576049501912901605225176699702758793429526465673892031602951298574770642339894524709041723745946397989724699343363854607238222553185122934882738361421370688970894976171706177164482212042537641250572596930292355255370664282418138563933297283202973659802440200625953120729764554992874662600862767675210447173383633777236574231729815688617075945655455419415665697660289823468444323178079148374525593199781644283656330996975091312199266362463481644658205806032690573252687877066430435771964783513352785840734416540488644802543715047365000073081930510235068874938527357072973211068022149748052222887876374068919645595261531596308730236426784467481123541142741357143739379846821681623898323091173907230084548217851488863932630359106223385577287848198621036900973406318572591658171964515581542336508605001483853367537060234051984225584186686583109147832519802196462167034924853597436771632457151148371064644888843597108068250758322927606907198776307119992937396073947053786398552862072759492142463554151683662984408374785864956904950191637481076172363512745924282362918929181502822272632346604030135648750615200711973540731602686683955175464411639412873524473045021805350604177756723761610501319404332459765971690582795903447133035092987683441349914697196376312515577796131956006333658030720862119903275861534680698534236424594407222372270908046161267370053352033921806779887273806925735055425904527159510384458794706704457303646169054230232626034871910307276798048787752367961800660557912430802143817161698395465319140345193275034436666961774768276847030744681470500455880677108222158014180418911550204077958747256100027978240823000746264351799060589203239359183366963791744343523581815635259231094459992573223392762856155696829480459796725253100864477353510645525964253653958354850905078952524695828235111806823825840978822220182067261159092540443766593349724617536031608969971301227463277781181258624140346383727251698931673842906131873913883423788564345211135960404879908253038863166550385345792296743810137880482772405854988999935475602025423317987422448912476167643002131971202604866886241641851382214423290503330101266050012024891708022827324553797297625764577959895234832553475469541156196388920740795238205187388702467933148209061783277057532808598352320467837470792558834331415110298936151571397474299686068758115068367801144268558706187436274545657100375148391857670861972594473742323827334530317327727940839715154510010637521069603385808261279600976738868167086254496264367767935397288847099164923477584501774941539386060807606470751905474898435457474317637459198198080988348709133352885362475421923259213732497477060591236042244255321075133849910869158579880922036798355578757796077353951847394526604536378743117685699995686099632329597934881127952521760618004476025396656185044131378375480527184671107207152609490817560545757426598871199528759106116459868417496655587499156701556543280509798691599187390930392789544943221749711929180154986045547945563545696741424376194951243350493958039812495564623666441588297900100645353575888964347131359140844085471455668835714244179443577701200899417186679413080296024231016708721301460668886163147894068081385241844031033858210929313289738748644532983099631428646093557822641412724629731821424878532139908498017927058772452631912163703589047570280734971130712717481599454298283488720733546645328234658459502451785160456880083715021694214057047645211623972449137364534020051113396178891119818082547734593906266670074484233744338609385756175105028672553367656548012047992547463355135302362099734710750987484849559426008471122834138599306561228008610555029059547868591919060901180172404888660617416097447209230058480713273664820966053677766231689433705401000016225582615115038702785195803540016114769824204796291115221013121277485038509204062884087935838185453699385026610437562275346352726439168800806448790227926820540945542162304775983271588550711295150728541732208078210872712153433931986060785328109364022040944473034414486356600059078126895899325607374957362897367968353000094259424629509442762146945685250902390600512504006000872060538909627657113386532910734330988477202869503765120838944392734968641972356002007374479273118234931369918565352510218055943631814390347848961842640831234314479144788836177513399016048920495478261808026661461982999038082089130197058828337745464809258523282200895476355702496498758316005842245141736688298837892127547956842012700535613920213099596513433832438930105558920514345474489155190010716434201530913964077503410522066965808854632164940298992323520198148844390983030501018447629133697908094577483504746929449837804423043504411980998273030787390573565387108207128409761919073552639559925956116669842923019021912417839545047717657727967296976960045718928462003786642735726354537081862483662996979091344409872124808994962433244450468070946312473685259708141674279745418095027527158507985890013491903313912996882029443947943168122017524803038447885665749860364012080872247649350355894521424089182421467749345033031973120057030431059822725466575308594449248358015598527469272360555652100337817378410637396200429289528644895535521295397806979239435127744235273278392183763863730681816615717034818450760506758348581552215334799164910434235264762579186446866075486389823484592331687456993389843002941542246076541959977678380039674892193548036904992729022963940095602940019854840982584120117584401899669649315367072306754714332495928051657732225641897015304870294913148626920699466976049416017192211551631593628066864114631648142123084670153737641983754933069672064354424446686967843975785427710710735408562738606980282896503581944282241347656831160842679035473976059245606121009642907298789735090934400925197891152043616173218623956272667287361412441428040226264744396369103422011073033515074696939234495355285928376870858079520831753737748837287259639781935872655045797559019608500758647460689065114486974180944454942742022305525842395466837519960901736485461868542814940297695744299892467685406670895159885879745792138604523414575817821870055706042277509988974268149363439345565576075814683728207178510647680282135548583212864807952648587685654457170739690452048327901462313068603497017675130351696310480821723313732421322945546591543432022097378392116695932102355973287962835426657010845878400022810165798837877809758137993578262599149803234647683225662111505171913288453640962897951519482611646695559408421972852769086421584891092507298954653594286038324456762562550394316785219363409993190020714950181952703051147462878224447406777690595811123438623318551433592951552819851665554633854791121505921649274480683150767015230394806475513469089199980181140452476272090734749611658102924718523721178712744537176089702827839535253726506597824958563671402139331082357730301928830422458607589539734069867939074304697366898773027775019525868678899326990398247439807631595875403081502311139423873824949987343216666842792426236160494595092250542309578251976516014989723119442904133133650689679660936719812988308887707600675681846909239957810663975003192286912716084287937659663387617101769558600116010655653661890157635307914249407481242526967871817512979256034578916484169275403377582814532541588179519213324625483856615711699283807684703114794610681011236844919550330625754430708622955024151295665339971441356410565547351818774376091661516367025844132372577251788401842265872672501805831495796210845692509265099642661780716250031616849629634582492015976990250976135466720364055615692550563771988007346520638534197994454512579103974332318802051335599152775591256586285894665200416744063958406885891792292919533284469603119307280344408696506743313110189693828388689422279522982695591324464075263478781007747267289155470856737195701776252195875902712045418235345294031043502282493288214020211528066071252947524539623706953076444487225791545631112038287226312728661901506811659838034102155486461726847369821718037167712751466189555389361424035557114792255192692106359799111403834542814999982710115589798432924980312270432251228039863718565053273344327380992796998688706236429804832162197671118465481826848089273040517525440722828537223916129465823376784046685226226353799372468212940384976141154559996042850373022188730409563362029984967181682028798078603563296170183835879352954011109529731182155026464329543152153129225015193411959806060455059751807754137655538743365631264873337343958153356787902110373115586841433658737488164960767629846254646805502867191325962971599521381840267170358249461280788893717540637360361185661718144689245680816042748078410851407388875969646494565991315024644974190076950151023385744334552834659644514738006481408855815010725417243571953839317733464206385841947198788395761295166920304330406640056973558470267301065483630138524033967629437896296565435020142026550467964481110188684738809171388064791212892104562779579598821660870704164648260310787286747434792881603168169951194516435246708939589450396447101151287948410917764904522527399101527440882398598994936890284590801754552483081246388527829358907042051524800619014031152573864351419177770577364102077159154191862318661383586925437272620735841480339526268195300174353722746554495066704411571578585494224433960072744517434148199095264491343767727084077136718763687076542320368580766207008045330480839867753713419080964676131676691608189891837394515346717028040657087127604496216939435113065043941886560841063115282895778697361804014278393901652107463467277976919135804426022732594864303860400046201917467894402850889805383600769340037759130055145176050619064245667304424913647899667129326404460775489240219991198561432190881264674882450059468835511173661530519508171417666529359148959687998931270988529124362628745888039002752045136777086267569467513530175291540598574238215643420921298668104042607686484694525944857067878909657828420207515595658795854197322869103026225312892799546515079854793106332704045538199290241946652314743594477922244454406665589563036313996955540216428329441504080700993026015967437354910878966835694465104525046325969666031443256445919260496445759313714260454937481066004647924365840710132335650028317312339710419541452088751004064963986635543154654052570742341471038009395172174756641459711719857582007335642839953076971279878776601169834509085693787066693169710928170367135500711978149592981445348960911423901870630575188182737312555425389084276660938432909359146206221575792688777236811886146337828016441870980819064051913067765788762264838002499060290037594075684234813922200120327270581493425277961395000699981263474014045475012815332978441185891140002739322695360958538748688487262167447158986962243789533363165657923669490930570833702011392685844379687109911244792216014222763399613661159927673416801688051183256132361540787081372970982106256895795465018147021363969061544220737667471856331306325035884983415822002419997278730728618656966240547909749886954814683118045896369816723793817350654884529485501201867468075490032065538368509755061149967269693619524686610216018983187190967676444703316666294530989934223988190223291097417903915018464109900161868917822434788717266835274668482456620514338385579290544673422067105849674847439693100255203271294406920811419063965029293579264819634555648767486771473569120244718831327406622358924036729370770594809097670220071847416797539318581671606793928378088263095601712071764651388146204258435737689119328069377524262177255222431535168623324536064341395911766475273189553168706163253878521794100388448535398244661000657399342687095531615939193850596024031251036711727460293529688954664342203798214547386612742486126744470571482937667232719616842089092366379130880635458648164483893362847671038708044836017321635540724832909699113198519417472944725594615888125985216799896120227580358449163724114250655064432573896283844961441846161682361223595726980426757700284957688287654365834417571191502110431577252779174129991095905299221258702701430379435666062899734418473728325648603142693642130627593843589167836135788442665998208006249985109355894858749582406372020542949597080939605205898337589214229785404660601419489522249159082603878534061359420921742878995715674366756598978213373880099750445513290950408530881435394540533395382202665356122000115491275437191000906713454056334622838680250455350110952291398463827280711852588396757671291805194325601847646891385401114962823690588123841592587310380538778867899747545929253545572345382835461688074709986914495419638023880000510267171205196438972305777418483870928795795341396990494231458055849128225443898422695946133470153471043261003127493556798913657774609634762306080665920997873615007410318482947229682054009173614517584299346792284429115321316458201411163442617954824383090611499747865904325403990186843450426613051661397689874041205753399257733437258264749117543175638721653479063147946407867460071045139300146884649269763355776272691877453594171916205974644989048577937691978914449164551259645834072148087351303118149242628930903918946384322405894454427957326775977918156723003060551517286177624808707915378881075466856692465690760319291851654472528867022448131951484234956644853655033881953767125469325892021282593483965538882576305210724416481915055424961213943703210098299460619835102439468879590361742586003398031951621386308154555913889644711477764561563192202773974036762752013189759818001442179295624107713791452784036778727229410341610868439238832083316247725584073166223751649121713600058521319975543449487097803973426798390196142172816474175063740301147156307580248805903428244247413202457702941790957650868949515329488783918854289186054135532631035807630812222585879553151489726909107818750627243246607189429969902121648076360009889666606921126305090652735845107634939953241629915376867953200504646113535755902594865390106424685756404275253827663344092282245742190826539272656404996286948381468506961004535918581056702552282841447750893130847250149863491056469538812562652198192309424633233803007124558970435449343627946343783930210499842672357168684260006973108051319021200951104443373574006198081775879863043973320398106052002369105365672809557926546363569935039568288150118432224992617044253763794597364152157489809584797572513833535740421329106430596124318867955210278630606385963081630636680482418095964313647599670085753365644341184374096123700329074331322077925821730148736396206218027887041878796452206917258141876897058285460571788842253811897341981578826606477804876929753277047928397799608764296797411015380508007422495650144827832651681706786477367974657748511360554070340183319895425851638787940915972493436797761384185284832556952990681317510485755759153973027608551415199136585422730426231909659279036179255428193136871614449441175313607170107675561072427009618049570937743280799823435780947067886238253089950889024349615602155056503837692575031127120643092299016683394065333222215484956839739869256706657324016528529408765977459130976578727292460603851041532699441813935064688987632905567923830381576459310945453943085707897863787067296202689209612058531193547326154364420072317039864626197202867160985670190123622836807769586735482906230598798126491126839208483489283898648945932416569922579372822882237214486858044898664528085725365255967655100396078732346090019415347082383743754196603278821463594321906680675831909361560884626537280856961760451698973727674528739035834542694822132072974172454103204250457390865907067615689870734591778722835130123763045751726093453114694168693498618961804959671521581383970999516039718368458659799553370976482139309408165511840497209294316321658646146283569741876144969056597778131651683441163926221370842232827191790464929726157673285161570976744082071434564936393244783690231065190001647722002478478450155452007736953491139358669734423952525529165260747910239114313485823094075751905242617031340311023654284420562598556653221107899561699880145508543484717528544215415369819964309110239009549438764048511064758906354841553025050579374041312970856737163222267477765338786098999597457349761765894853651620579487984226812645387537294313104426002753879616735931675762423257216913914344927017754041823545872170959260038519740467853050925155977202001474448024986037302987075067048781615791327819697127197788693659261082737011205297789707217497848306833185243494943628591125699846488891168317016831919814906642206418498455909524821695338799683649663559074468692422834288099921895119779225489388740192167732870479432913369713391958000430346708202374467802758973396134702222935038542504033853603128754865032897075234371009045477671805190785933427417944562794491101463460513053599399687306910168455609105716403253783587888897971146165423918432922189486891926714840170641640037858433674464711139349624774493134136725953279342719287871972119630124055935417670011113244426660353213527490271785199504550231977895621027053284389899206721609060474325081512275951210076286433169892540515068438931589125312770961410720039772857996259924375318778234040317467699644878528206521251670826625204595117097678814382229046501815350446678645837103283482682374927634938191513515974690219484001733583496450608951478741092617413740829208471845384598150447432687620863279657121220540470972149084003267223073540388468250866110781473036449446961164830031477419039294036316886264535050282760641769449665863720649581775575397081704564916995261522796056382511233115083582162206347116057787781353995840367825492641497013741104726970079344706412293256505174316624250136647516625149918143373654976865629041009503690942510673957648430073175063904514425737407042632755684669579794075209481368866592131276550341424837967860676211616358629964256252528323919180691564887064393640645766979123012081735012553084873736652192324520134854587060206797524498686304338858739199945179985680030839534998352794515877835986480892698587732301620155202686040199917076698274645122795016730957896702328965432870275745835164599209432451789674719101979864539765141137580935828098410618825656208315840108519363379487939114195480159128730265484878721042625161760259782007323198964034434697531441516544733248728240706640098490557709508090950087918143708632110840597329353514071128429371040181154192926970919002453712286277818463998312865697562120102607673109501512945412325929395294401699190393459066658517139149723500649576433744372748549509893703576039286312922711985892908580609325861616987381352529434064133549444826421562182517472112950559477906333618415642187457102128384797504351106444538159461608536503968763882087941138197672955627984464212712288389811738052769978201743435676631953710417553965469447504796824113650468834370225338452801986259696385630858981917177704549283220218313040535281803945359186167720427302767495592884216169287361677617614219200722736938603082597427053334940002044945268721411487577153284221717529324410996701988523303411556831449479620656623939441707813502878426457112684884489433568369721574475164680370449513958132970251912015306668461823246572004686805590636879365381442429383596273599533372118396200601569057675244511252310482674055357795544407043774173035069304744793180684748264566614431299502830189281863784220916326810794717579994504667380755240549002461702183342990545120567742375657923954095713686469125857745353671841449798741995365048863833671565202372479534558209055714412847791786597696589416843119063588285070503625614312038304711850365522853433515673945985277672578215334953707053686693696952598586055245688627015210582399193222334551698325652584602125292343896651639488787733423745233957688397489840954316313008057858218389350945383526228430129273886199565748695147976768682789376633652910407835706589574405502336251093322862066103944961640389071427126080901291566325263555619254072433488968398023272213667885683657397636845357942605665432721494917874875658441524700862563653024955404525716255400777643365709273984920200003128364236233227680369632345093540711674560825802901667726537276828949579955187148373392398102021889929968849685492907216617281379190219172912828595356190711907880973505735251238596938297953103271915346810045915362767818422057371060403267139770138633806614806553093518841428127384384107734147919378655141898837013547199927868520503388406710269935934482808373892015136705262276584352196250953608188252541355478914175489152817670318964653041976322056584464409755281041678159795583889315379853658420384463728328560809397351520275286294172419347466930211471406108996422019856253533555477138498673769066500984376694403123480387617779798725036853133931849805947039724131079427808124060145218513306014415767730377711693502768375677390642795659082129952693155980250404512227651291589775496886716713072375021088653614748158696164845212620462460169554071639676756427251266117954966513822303320172440110645994524301474965386021825136796649769424903644259169887577034820136364748640837309853791170332636683314737273673137717004724845372674424907959560652066963150995671770375460586912418550274923997533913905810797507929439935667993061434345133270490667769818584967743998642554697963726236261001847183368096513386865778515583258554301247369104646412160859565116136592364427707663650532752762550969143412868808981215103414983350853702410002313212226269689133449412294506393368202662777439986582837342304511177902144697286818240553695373669652410216621849844832323203512705887965819257611122094178584619778068932106607704522603725903008736539915037273739936859032489788887213225555949623003576488282458386986262913238656658174386519192348324743751714376849482541361649014410131650869815432176820385620394224469005885925454426610950522508084584168280795319330145046926183753062974821030100134622385236753028638377464075812257201642804493660369990528807816200838936791367404160931559499697143685684350297435687295821738890770872778513393664252538059495005813803946574637924229170267675636328419609995955394986567077389967218888558544394353082965582036304075567887922964586763971125415692314905667650183701404197277932791946399649977193312715689301037824950070845851446370952924946035864942854621965339004430573379593812861447152601863208336648530818552519731257639940600476525261908715086443550900514262317280079628885854206362561695802225743235150238430642644239601204922744708359230262761482590175048104654267475753576177003877901176525492934752853822283889232963260462386589233160934158323884226228600970326929643032919496443043444770457214107530753543126178250704352420704027952998610189088348484601765650616155736594073660015369766353708021294465001272327127859463645398232998492574144518570035198174737620655067981693661792605291147325015446945340498681711682928683277354530401757128843188192209788851839731246027804237622258935729870188447792720619399456571281122431298694241573890838725263722534296726069378397721877978006239524287130104889912732266394726004215978057533864974529576623156547394877961687509218861784677115851454673086425719379170184412965213779037073367136535665653709565677812190283332957485545456019133197400660577621629034751038254547951785917119490260974459418869298064698636888280109302790578413824465223533205386556467656002319740470125248499863931483551733959808769544689189585102542345005217587855556469498662023052993840528577829580163026995701893300589458860269328020445763822277993599087115883007724650691125155438414636501661744302540896318280547476686453116665794157883145006240297052684668261295340913701125086534861109396640589554932024580933614113369281746958085497222304868501126387923112043464585259111372798110931619964679880272366213256948824604345441700326501622162076309796192583824893794556377663487382196478324886075935943147323916073884621610313809650384708516849724085054989356874591744854979064933833379326094188008375842214198841101199189837378893411457887314587397269721171305219606199720217707226759394015781380253519965878001427263408711542094984613642635383258195555964352545832500272995976055889593752135598390319184267813271553241079404483813638927404781370631622790706295767911122416451721753779217936169796451415401146420118672433437770922692836322588021719716840279517048508720023605179307396710698938491040390785164506752961159037791409066031092347090661889087502004639750633211691492045000826344253464039721739521660916729654114960520228367077740712320374886899657706958390201029542882008204374579306186277066991648699435646896078693069017068330505131963589622265478138824012318860156071153266986372037213577749365870620056848527344378247817168355598724755876432620800303502058318814194067810355184439202400311536703342272998579501486735559360199599119817913754851671951518595498756482005422772974711322845056182001838903424654798470684093569959809706728301239312946874919112093246330192369680775910947391082364068373314936409936923290404278489408952094621996133623508490168319131084245623124350565281978512487158101515921932319657922944607048931524806560068476612699397316862832103502939337377975701930548988836287100248429579480932299697687467784894043678371448920666078235623367033720081061359575440249415521677310585925508786089755853422257966737780125435205943009589797376404105169027100121187086986112056283102669541183596595271495599317303559551783185121558191857456581545892710897040830704538213554803950762775980147801318447437689220477751708693925899526649232695202369611600785168228836444011202166719663670653954709612906000181257899448821478979242681072766411466922550607542328278504563794677474667891540849208534462136531063674802883495415890174870237266113721527346630455884825971773921492121364045047390432287717750862691679370133773702554191841709762184606985694098363371160652183601549132694577548171127392715220565937328898317787827180900691970029960203628825502065893309613197918471146989456536349002625785135349687323990748770335050202219008142949172391842775389327269150144371686126304553331623618555602585742782487754018835141398221545066408180769836756212456894051768597229128505219896420990618417328771756445627274029341013435458104426946872801285405715370057491408581259087339500608744226627609655990604007878013006129846356778683786470961452051608347984362262520762086375602937295812947650285492826556132485429565216551549023387967314422562575589262887672244857056689282541230343377603222171779795571684783882428775102876607905534203320816717183513209080900717114467343790993240539324678495474505865365832576858800160930783742757773817271637158239932827919310613561034747298155539424492535548483232625803610288556908056861540675103873316479033404809303444350331749194634693646302218415562389464564574766542285228083968659701546340923556914209598333497472062355069782362493223331092842490119957615382887086765826078308469399048224726742152994216009593689538237032963784851240635469159824301497744723604170830863004816375288986037222137083892988420179874652532555503882612368523347608757348527931093616143807236565612759597678377258836553244326983346231948390170272298896275863510874166489044380114524259115071726336795496671112205234203802026406720332431417046342919942410524110519921831268792442134287810787156783727298574671217929145367024155166998406619178654364905198226131025107870903159539789145741393755541000884202199873883384834309566312086617003873996559931636602208877986394042590195661361503097866109889719583480649696686406064374500998370927996209677372954956447780722832082474273503250923766535305937141610192034712552197183467187351882775890635377503233535148119070145553438944827078438898782509450256408587019539932388678678250832711203034385309493110466640257826957714982610536459950773222002427214376234013284804772287267646130981438627100613057550860158402058488538378221904457223753925397773421535909169895449763892311757049340275927385664946045219166540077882971253074443858396896097322534905901738494369649502503321687665410007109049156562488446767297299108911235453870325678396909671402591025585630899677857573501894606638698719443890818334509178161897765737752729074246970999248217510158419692426631043481790235635779389537884522128486158785989056146849201436699003667556156557980211230576977353394661125378012426161326579618735586292271165526639143676557946505030822761286465242126813783792729891787593206381702916351118540745131173869301496759113562215568944019860873910108600227697443580135485679963789434513809483953870638559983176976647185611309468452676468547880299517085288391414312990287502897962414184457436432640511485140465854038009335882657288284445162610318519539458186752815824338848968517699316142619488479334629123331039558917411132687814938638824199193452907319572960636612633134441352173097716599576720400141196313041016490017079299807940535673207618774250798284133344469149778484979194921632744693289668263383919353431407065367881058736657736525106697929024824277718997760854964952555231255157624647546729583452376023918444489870845809363669457019761099260469234755800297472501364851605939844046579142452335725954362774201160390276925245124642833218815708297622533002593914285737560922962163935523797620144659856479536212650094370046214736231466316719539199340009864459313502230863166327029509533492529995048303219057393776669007153367045793278683078081574560150181144815720054537419801193166381583711813381146626811006443000433943674497944212035398523338793310807958159896975404150107640595045967210124203184729614289565466341639502402039946225732233824406274261507615064042575995246580276043460257256727371789703883906523429292457345093014812561575122380763461881825715690026809182157886873194422149550403249817058681321620306753176437372191961688694460116708194678281575139091455108971600834979850729220942959063247160519726262028007267464849301226323296133897742449370951552493080827973969951759991610420510503783910471982714369548946713007978805689728046838240124566048571950354842022526032236897238147923364904169041209695800551078139642593672304075031289216163433387847127097104049724486616698042168377383539033371735680405464884352763298834302955067124621969505384084521700383959950740241971648821163448463101998607715943178724633253478526997843321171263390097250617214891300814312487636766417267281505467894748756349969636111290504177542210690098742789363418438135245730202382606200086553285181713172535759716199466895446370746664939782992570723319318357688767820248744883856974878212771059793717349196454535147748541228812732522706520265566771376319231671837491534713502420417080142014973807883101834997552693159698276294007377372571254447307130092176202108900133938980654705581913206614611019155491644787358558285585410497626172714902615249875871498096093670589616237276567131050620501314353991013233488597777587855700266273285621403860303956823539950132708509676109307434191981860966607520212250476892593842413840847640522778799854216971956399084745181314625631152122744058070557204516141415691166215191555345342827601922538034861423328155473744753173941001221801295812732886060554932803571722433815667958080757235347738708871474364232619601139994636750239529103779689559886303016477154030687914039996952387374657222222429141963211706113273311895916194197602697949836536903952828317879415756422440983906987825066536486182154947465495763556257236968811587954989134455618220020452366514277377293160912009682373914518866161470543839466353337126968602213251660534120434118072328956604991328322564072480766780976818975939773384859354921284134191701776705485657376786014218706846074094716967293665331185563303585546319343972430731298992409803193466536561173886395976452096484820890059444618370222672694080288694733484063551069696227755606376304581744820907005825512387870384801302693478294577508746616592538996146819398335905062990731114707710805639606233814582183151817403776403532339021834636053840420343203376342505962618054789770338197676652710463344104153591620262382026007553047948892360613313205743369807973054188045825709017233355839297610263380723482562787282072531522284301191924166213621244808882868274683247075775344163144586943256268887889219605324439178351142847169528670458548920247904381975856383362024267372823092820313934299581446035387144785384548610759094167314782938608386707031375491611079175666424162587961940795191235887976076786381567850829960824744786648002172596827142174576202677820286365322872323203931878632567359071562099763999761682791032969968565916045539124658904646565587558824367344542393522021647031270447148319845553237495911701659198156571270942409607046918789181571927733940627158617854150612157860153813804134775903506762926145530853962880350486905889558297636069885852853775579081288186119283593956639864993654198886764596411458942644876884572702908990609826201711551233377658869314858275179248912785739870850294389286397146230643340793862248823650409945794988320487762072026684109379652689019162736036830435248913878684468903883845380019003769108477462623860630727634533519081516957003346800305395375032711296370859702210848423557600414351553932825176155542952548239129423082039636453840313744361402193632896308264510538178974437673949817025944551313268169201231014799561960507232091314650917771673158042211151637904333804013475621858493009369695367649386333585117587377090935888413972755278007102694756372783293117158761257534534141618292622167804468556149081423573660175866778480302824562536086220446622507591904273145843566729894024354617499441131280710011167818414883197051879491887476134042384356039815439367577464655196717629381590862873791789866590354550467080874138665335139485649381941927402755817369246191847466717269000404827974562703328680998665112960575741224893368586023106622812092118545098783825144868479545346348759582720383917802154038695332044358411132938098031586183842163500677247628017714723066168673287710252983366837557504117336360629575766974015582168762981578667119658291626913764931910165527900942250119306529262035533015474344930155849724389274910642306806488253425502706701839656458284950944636004818661936011758833837417337145770125151182697784331472467465451501249449702609149631034683315589278152594932059943014796150795618013948857218928022447743116030793748593584694677356149104071723341519161325815505167031328573104392563893915860212825403580554889216925030868014468563168034362094110304630769919375272139405359787890361166102626065581563494000218926282139953908290122907761726289911401672787974632434925582643494624952175985947407099811234173886087520624845038760830023809622882161639269056412690593369416195146376301660486692826192775010436772337591276214081487277687594316217187462091070215624053177934752470479466610059679798001968172985939384498386906207972414469488185545582425948869981974454528731971105384669508117332485878088331714222526960960297462726180263312417311732553830257553178659317036251352026409617969455647756205423706322203910048041984899670141365583795961227909408107612216191100870035688386051609467438764492917413440105455512311193158136025235502801645963648829754208685294217455302618336080770540431960975061420367599154068460392416685500139029929142156660653989113061460541096444172388739321164025023609103636770411649853933031929862987728175392931649341924718159074257470239045564958635956192601301761095186154898877053198069375410537300160604621561527236122986661616461165145798874722562072406611787924442175600941351104407552061643305536535394507844997831198610950753098421692917626592817112951153257309857174239511449648638552992702991830749565793404264034374976624781011189163840069574347449098125402252971291997036776371191993151919765684840934973743264114891872190340581446453424589166011578215262158624705493515254030584224594302474157810587364858679547078007523821649919818185181309426644266707854276504492602285459468158414337611470362530753991503977976216627200372338007106176685906610610704123712271632867613246095822721203882278917448770631409941914679709492354353068713000468879781524349842758279967116315679488657197029106680138592254831638829838127319416866161215839716186544331762083157548340634958581743573183971580038007602954432577551115612775946247686758174358991027621119975655474693711239020937780756383489533425743573660855250430146254814963873689443443215880867061870216041497171377135366035179867119412479974438950322151083292397048557608594722359304862790050056027680912686558006825494615051545598454530326642096860665594473750610777225958292590779805642393235361018245437429416272245503644489882727143381021053201505707199926870764894737985793348845955052902662525222040104363947681382667065870057421890082946519842365212737141636137510642098272240976920324643010799432748052337829187525923577992144951033660298002023231812982813529828391495367120794909308943346251748349312575527122595605854089108975246739432036950785194761764474827382166811173652255613504770426468670407451241130296656754491291489889682867117930057931517374178131100068038088111146981286030015635060699680329636316630243351503302974401276691993587635930187917364999509128138413845752626105272652647719645042792937740373053051875769979416572344079145598413987119728988287859826047574040108592940993608552597704686422154658921274323757969940434220789781589502906824647648224492113128147366444579742927051110295526952437054558487559371233246082923815324107184919462968743691897663141845868222398575505416608089254317619382278092603787297042058729237437810073765464904927751049486676385069858294778325561493708161855836321040361052352033324445972730729011884561089037952981675715093130089375671655291142297307183538062324108904678228364378080367472483076473476857680464392864695667242459424866161793053082148376718630166883395408473286732913795859321805251007821190230651053918267283325213560743664154659647348566795627740479435250389465250909598564883551162306814830883617756571408137776480571205396707224952614263730476320857512947650058695151294938235755722799921966125209041447142541343026846924961405942640005444985795498799897570259143686401689306503812640410703067346364053064807749474052443394308167451144392405001650461339305291807963290611804612486200766086250037590213015721425318465593376641366644892834685631612406028069432248790987608375289205916096011090408950230198868404060907341965146013722370130160178387867678921974184455577459534445772236142760925860080571782741712228457245942279223810763354942926911713388255064035886250174536745127244426637246296019435152600452688147395889945842345736709298060427827048080501331079672777552467694428200267803665504404332488434058363988434421852318436855786956465733171491558954403572208681847780330208792512032522520411153377956061878212261859469120344902062207347249504762192141030933109567726850291814671832303105535051864246773582170291017812684028468266634559757029176023023036892799740666106241362212070562536807062032598838083084976977187773673662278307202787956044154396414799578488661221429915458109980312360042109680558092867990071650899530752392760703806471631459995983482852425728304510145247615730931638748460609197097445982176053146950773609239260549798485836957645663941077301774273324739711725442509574507989419986036738251860759109837858629400584597238134081541331960396823474315242340125789438660526196382541437355675008801704293060452372997820617467249221822227410703422263951938393897987774391716360995089147585276966400881383828416473836468851400268048344882045194203077714060229451218344437546190177888766758473929278713854185932575693493933539798940634923385061040371144168376671591084775492977307494035592249561463311700025323652717815276273374403205139553629656342174480764163829275249965398316467168730550420258092607133364841536608365703346679764439866356858935129092078456342395898183702065327774077431455917998429026959551366625168866373949800323214090612223228283143430763965285502714248424797961239832243833996123775486307834890670679108850149872326749858878979148729592100859319845699199789953281296668106282604044166338305982765981695481838350346052398230159568966792850675730571085301655776293087184773953779432192970356169272433163713670195807655220430685859375255939538950844930438867272200350232674697339317016009645613787685308821122979003323481653442998361078161415749048018507541512629228274607879553537985983525202428306669606462388187237258492093042249768117826863154225167727533148133960357758024402963097144721237786253322806309315636607515013710269299350973185066494812200019132680341997926684870118178475045816163091942838793532047350992770481678726493286109410916304473661106982434324014031087124162951366630857547891013566909345879023247463821950570322924696497400617225980137641161586758877075023154104119065526788118183734020307570599108916491883565190572706702986414384829399222170243213242213215532220142742358785115268799503364794931673228072402633239790636491385258818052506874633011194842659831194946683662471866474722083347409364564268903849434664046326325981443815931109187576909955406900448823380065831778041392609630381963597253955784341446944184379405607409250098548389818178870752124088770986048212853442538155733149567507039886138345860503419205790269984173365391971066402967775147117555480842478759681075639432699573989612876097104633447618163341641832947176869609500632065029153307687213821675823612563841741079636801042001266131386354501674232085642248066666201794831862471397958637787609387838898583566263444820292640769256904126064607921713489600351677324195467745187968701102856044036554644919916584977802761598255087135168790752728187768492082344371452395895943643967836472410954652704609735048337481503230684065547980548101135206010164698560029112718546325825490858704998082597088232769589369037914042458801859031089561896627580811289507891654253628705005993795988108024613449714706962597917410584074504647938895799772106409457627937872925447112759151193657188043728291540774549424848121539731810784068196592071859728597893039329915093159115984092158199938185739929501119199911320057152369646503346815557009266955070040701004326857045196145457234731749179401087317954661883492347964857339760430596391053292126048658186900545660117445440615467806299930256509026641772120831125270732622402871311735858420813917173888624611233618657058107715023119110016584049165284568790685013662574282861005128467454297946464112306660167071942617411763377174099153793830714433446079896169396495371986751356059548445716589338670110171859383697417669192224467265752623842466843630916909978269425935982019555709597320775841840965769854834163121251917968767778126689887238778570943166830222962527953262521674956953972254987221770479594317890620716401679416740390057922427125993019365802156584942444745516065779852827367836632104030613147494349905232331737041395901780671083441697558632133830752140372656013126712103991310021603261242315738943520758431507654191964950983712213523087577533214014347674136099301352405767443207968744287392022801057278121102089965988517219118231036823013519927175546554537441632540965599011580347256321534158195493699958899086401976544837005014488849065094767843263245570221383872266489903393347646186466861713488980643201824634291670571730792852561558683073262138790123015809912065579244594246216550163298789526250025904108913759505269739370333031529276376652290961228911480210354206353611018939265292377801496250622783909908576167612480439265347366383990302842471403755314668947893721925861425240701561606150335730375525077662161704051876684678864207543174500269586993612057002937649715228640887624211783888906838877178272475575137870598059414619042627682080645534483853966823585734438336582427300519761339111827727520850280161327744079563934911472415811013256034062371831099104657873515594983787108686577064984611916658729112296474654506427863763347142341684739785288725495814397979501155587536715877248932357983181734405181786099864266222067707818876922582073226655553415109143869816242173059131471661580119881644764412317474877283133882943582711343876924187046657886404156471243920776362002596532686684416698536447509223272308833948656127345754620826502988357398996525784734283248713241571082167650073025012158254644087428110781835058677337493226329841261980174647792674191770797025728685335753764267242695729595247682435906485337164347213789257244992984408606854733736649188684145157847808619584992567880682767928614826378775767270608164080173319703041557786888480714580663041437009291495487989938149938819687977585124383864993974563418389444102617358368767193131301181321085455653024522622155751906314135176361691139015460961828372158945677002150766466168446978928426126602965886260673725515727523969227561633537208902159911795094030691797544752694594190021244924937840614504981172515439894349132747306217648253218560936350303507158855882703159732681624079248285981994395225186348460814145897844238388966220197834440670626838872774467219579684112683587897354049810101384718248853926483744982560313922155956504440446512331844231865078561509905656345065207046501641252193559039326819561681139441801971267729375147027412368462891057416720578195769782469073906655989947607767549270380063598030367645542119397686664472685813690686951226093571125584857895158256380031004716248428566602303804272895687501907898132296062680305392478688672002268894506139572560739428319719237618342667872036114631172835008752770173684554465851500822236954905673830939136375565468045394353683132297851059777118888424599723631233505167031640642825224036566649393851143504976084189966537736012221613233481589246742102711439932471868611424991911933063072505058888195628085115790451158681862208078832537760809533531668428826312769847018887731932943476460479656240467123673918313363444248562266459406840963337646387575101601901184747960644437585961868798069361669078060261764095715172623703975536236343731572547275273834773480163884742650419757608751798326409904509334594929860932158287494101698820502287333366692063515793207333875147781554757692935518526844241010552396327870483728638158713425400948297583210060000809302102507228257099089251291362747762404468132602034819428654677433909161307763662261135883082712970718871789243156713521641029217454808102061266872401999644957375635876840541560156718328297959039803158494225120410326947686074662223827084617577191224545877289394278196316784238168028998929413409608563702455571402532975336389764930796702951099590467752613315120149107246164289676254660246267814932787830793740806868171945443191985009096543607914697868840203629547984861024479029891627133480644718772738754424923118715141215591506020519317127179901368396841007626102086605979149307600841701680064563016068865489511839321105311582800593089783487843825772739449309933969382371860554262094474249706620209566339190170095217787939895484510969919437399495792870861304769807712596158961310478924320214990130179577805651513806045817685185790739841993684573322789251550256772270034188656865119107296919056198989319833892125621543851299393344526616137459024590262327524944036658379017444649829856891601561035230165525482237105553040566205598109821325938405131464100938521062922701929636183481818063793313487162795052318590228138274332448898317019540651972563432276719458868538799726501566186668050859195030280437612147618675883167968373356791546358627474497502994960387772112758137592278176013177003160992840194033941844285800562657200543365034769170412448502600167627026387688509798638635362507387221064999810553351569325800754911221466529200017501448554444282576516890536231352274678664595925294251217458231364777774770294386673378823045701318612141347239052531617583265862922045395249295428952741637237813086180581675240071267372776468630310779775976665433725786752252724966498918415575493368658391552734068571825020998833539483235379649324421394428296844362163947133883045550072412674293200760845487270975159440265668782693718378565085795267011695555929240899137695094842128557431845988472739877993438012390981976622454119822625042535286356025636783408059675634981852594919334921686800497238614581202472405569881874953211564864970182635747555381747927693558167167445459171211595425959602761090420570529992045820354417151111956495606333054680188015223390050794494903854358238606498991097732269471524977058054851543729478223345073851461914799123421486482436526967961289521845848307714434966351218705985667921719242284269305186068212684726611618209953438279815734888630247953538955248924853021200382596444108968553197425776579531843267333185523407756794597132061568121612592457726209426449002001685949870235295093798089112734355329545787625298306069162746292854855285417259847231312340263893594603279896129926256882856693373592327852300470029799012769212700945846126995279222829340430402295959029140366373488587202960281576785567369795710839377733718465812593876329760934262400238545345948828930283352710168343022489067263596945180584536017437940561268549427376071449431562624839986152998811552682840825530497783863718617433497847020091055128706836177244765444433646271459511100215465524278960202410977685450062015805238954501936283137213577995588873803608038821608001822233482923967602060700202961820481632079201973955721160083595991962353902547908723588032482230903966978200568646542461999084051222122292661286690720595432988960792796780635234634994815323721311018711259336748649227984712735220132367588088300707497536925019770070826604173117089493869197431389240616098894666327624564580317855119214778083911890719038648205137276733037328457739489678994706748801575114667852889573927315605920299489930362865212020334930670049618227533960749023612029688630714341378077170461412908811668006350709483793226970872824181144132242677529623243089236083324762706597906280132126086051430858485178098563470578756409922268184471932718999055214026716575723347696054271017844200064140791838820340449284263401700952802255698639299650053078563544626507664271439517812936113247735849171118629201860636270439511155830038558907159508223334623116048445118927177389505980095122725682262721588525364484251745050720690847592969025796188117398373132379050153858495277181662657443624311577616734462055453551061851050452746964994121444942350661164857411495982652786661852942065140994676937956544988502524342985414562145685888095217816524886940016404340428860272442833156284020569196644111657492656066612437821692303314429178801344493086250948861596463245803519421840135059341411597498341417593799746870158221463099428652071106970126426580992989861716783932725893245944398104652704718435838923900339391316201419580162180768170239328696265002882344508252882277448016999073996514252664900640447105756472703633889068806336892835995379741466553788568792386181035099260489944904106240906892761754565140345034963170107307798865256294806658076264508673360048395028416964250829931292954343844876846264941441021654870530715061462140222338456982432111281313872140339143660459611425961364917033949586944776722266346511017230714541083213638848659707361300121985872734173619699053541160141579799033951418583031883988507754295079541578553393542926169592451297284030843163284429798901368934525546424289177520842411190534920498701350956764662202480449629694030356307345054442383006381386090680286113033514014718328308783964571191674420365506576124489669199758385544776851902982600609556088809999796842140482655483690129137173901384132114186173045017091731929946185197601696239319442730604072447847522977683944792830169030959767577220980200995996043863871822216677356087883752651897443054482623377773086585783633254720219573201677842606886998027183132195953807083907375018272761137043865641846557581163425210831066038785709500509230995464741465157552983989733200253268715860022767965850674210836593504213237028278846784837995282074549615380367693298818459051210183508595400738565312290787360136605083936368386064809023747377434309558016439151651997838765253689314211954062259240249334847316630206498644445920080351213321122298356580292594523975217372040902401021067247355158343650516087940405082107605947521790797207354891346056281647801105158184672660998677835066651415375415476801326498456080537536649447341666960904447939404973508782124749731641999064635749844194062621817126810418077784680395779009353111562170206603964706779944726920136835796780808968596422012529766812151792917184737587906804311495814951400939729995292807954214109870364636645346952138256797438806037402952164771755872626774729328300906755317586479550542400089170145087598709487259955260007530713462215399795635570784901678837498160736498719461813387896183210265872041119188429287655992935653003971318609038484843832360677707972564401722887143354314980239700860708786638615466471467628096737055480738015359614959298173000568405802454239617247677268840031895275759942013304408099014885854608640719957282070316361810595150304463837521948735472705409137416960128232662436560918376036172860763730080268026399441253332610044059819428557903996891990052955476037936700623182103429602808140732047416375798086979118771894637085243345303229395749762833414023704784636716077865864075971194953138407084373735556795225843459519041326243686305326209900888538303412794108332665500525097088107986490876628645757771879262883652252087100633809835460431589169735521233679846554748456662040351323324123729279118904408699811141793651125009790417875072350729110771882048716724179774274354259994801180787352856972473815724071805771432142704866317010883077357244370842260066934120193030621365394098838507323533604148912298632381298365539039762658318468520593745319010543014395486017347254188514437392992825633170207318769520852148175873800104047959803211208934803029539339040031488813560535826445661844099575164647423616061651606153945776447591452516092252841625810409077601070615748423344850117829870260527572089129088464175994786533679873642679380681645735264604331927013105049429718208375459399227611089085986569567172858232455455440414351514199752574005670613064683167402107852575934121839393794546881727145669077579800302942951872127464102658587840298604057622526897803028385885567102779621297066862132829230831966904033240848567972494471130096273902612783531619489911790754592327213044175376435232717863469042531131149693994305837710273168721720186882218012770158512691043554290121908826893554744336796238357570357319224810218736016192354430229980749908954152187069054731113324726021041395165473514619410793553943864219479229432311762289481836428156711334429261075889246705485939378960730693576440061255611872893405404075026917744000430412585154919802622045202992818507919803562434381441460862349339429966356616519453420604822991587674480215960992724052980633910289065246619056806290908053354321464482690056345145825666990036594136329087291452014008076515554305268946931180045881756988117910289594792878394452818319453524705315023806732237454020628057372091128456257329485859349396637272614542062671578064454609416888350161925785500098841982817459583641404695691312379698993384645827480765041360604404441037934930092920533571861699430304262148327153190371631477301349390818333775067270887289153442587244644016451676566836880275010562718026946516619193564428873876256409928028782867422417036283549068682319438517834745480426808019150796540322271181945606572932818033800690851690309075679477482308014459550868718726717994503151183883227312248389847462719180945398694276787291587921283718950526778059531893877175568236188127132838078411209369994584770868800766166236412361522118264659577206598245588600997111290849414143429262094627240340327364028928567441000068354802912816482528035000104992666421842952141728471207677019647454652771791933891709265897363272544304919020565742745679308579942218191760286315559663322854059951139172548830407070520144132523033318338071071209701440334557015831417978468379044372634694898474801682190606969057353871189046519868668069628474819538259992183028612317607747037140337368328817868736049082482511395556581681936365222109320964667269784727937196849436728171802460616568056320828442789058715920061320766604291806144849838488428415105043828620182663939243937183945636405533983978739385603213680914483807254988295975446053046746525435758373935985790131179597223406448570473693027386615826346041906339043696700646018652065253438027215848518753546532100636950451446322403695753467704268632899552663876503286077737797391704059446621307662793487233642339571736777263589513147322231291049512795028334627965637389909160844955956113413240037365477929132017501381662680618713348167222376878185891359219918433708335144516346441798257818223969599276331628118812082822983105886882623875049378353433819038073380832550975964053199074132140175886511002447722968121837293547943361955370560527194353087414290500364064772516275565946076049064014305577774514287282951149307078329856585449263178972543203923354374303232913218771708486154798219151863336990572315290852561747806172807605299913003712730381664409953341167241626931360069018086526521353504246044576212894156779475202244799865941960292388152364953835839342059470588313617357280487275730179927278328430258654323518945480798761461490141470121725252836865182468304741687816080754504673038128423076361311073717142200054565052565098147304358701769627132429495674440398562694731458162411304314696706355898168280471529856896704080669972718466454612035951064639482797452916005215605766131489317188823370020474456945947614690161798515691193745764764866287017896317855703167926772581069065336105986840628983619196036085248473900516570295448380712903725827394803930217439180497382611115622411191426384101609906462162138404429241351992865385935193123890218100888881154298117895779803722904839936271342013441902689714952011371530488122682301015744308759057441726691047011117148414733497104838188154590942462469256164668991492163962802371537562928635094219085267824702422918379530783968612625003437646516416030880625814964919014267350045019128891823872977756703156904514270951008140362340433550549086877553863448043997078094243554952186692600871594224983483828377706937561058812373146273150053788208804198993313395629542429864426928286913006062678321120284688479072832081763211971495170668458827774564509108197637482312074543854972995090183776589755094563566473145778674645698322660275711646518171043723193432166897691935882988615166175969382933332858953493128421788226687009452625838165591860466273857858034005629466705952396492342057313642113274726481282850819266073444286430481331952494941346780979534924703837769120836354565696666249807610494210168685506407479320477596384615254207071178312512916484179600004148503999272530071968873754371935559492491810746457723990192840147467114548081125917223503908572901313395431064387157350393077874333173382270036491627524707039267197476687147930675029718942524497126755226945279358080722697436080423829323943491418163046351626460041186516473096368394659558332273800950547761813134236556747245678466225699887329563878848704007821724765915837124400838662171288290390010599977321124753710891820387246410342682567073680273547008680816706222816102843392772964922337931533002848203139985594116464711780861646623239153268924838137633757165331775684482594961794780012267128684369614984273843933834641449508733713460560671305105511261531663530484901296731495182621063658065613186349270883083945813412655815679241308466409329560696865974851190302355312562298300595206806130628410969990584566668032699725526095971143699767776730292447783910884910072754663282871066781569542467164194061175822841771834999698183771556264039620182896999969433660067172274434330791476774448400985008050964872250472018754656424393030512931663026182888515407051094167126234017155732713099871411046929236522121236800824724236275793628381451822752517060760042124634180129656712760959502099507062491074925997730904810684604461455046680268418790043604738381238706838799038654280179189221941122166277112508647130848665780076531929640720700909883988387472622806340801344826519512984746741137267968962602605164726867570667081886728789091997464009643470563079691319845412994665682856010537435607008672626382743688410385509316739773966857424459474990815831800622688446269705397688150538207679154206730560160812202631548296795714243611856146439231585125498014822349983111295232047311903698154912189379661845659892031406999407756543489802574264506032749047069999238416442654055851147441735160697319771386568876514927962838133157916101329488531159827982360140951218602983144604778292139033295776277164589032651062556775446118179459489480687837535688161830854615485487143014520374095278725817172121295404067520595420514157336464900271062798941905073109294874659809604928362579829871385925595272152695951496980132001260324308942841714781713946792978802058979362061349378165808259564026201811993901443001151181795259241392186541470663568270356438924207137211840120897826910439237571917503728286157133627334767483648220537226324407239576946034469683648289278378206036360973225515660996106907931242501031762107179517417839889792751720946185237909569173614425345750800600044920719937155118964669737501815812020886475653998974597335510150296457059286039585388142689904494567290751120805207722060546614346424051673526461882938023863497067912353968603526203226187454806065495333251930943313759492941938288635441370664339899322085240600085907247266531394324266966157453679579678826823983287203769043838169584324569934648081735286734288763477257382345810283656160625028699633309399799028679735552653186078397516252972989757289633026108923894926605226652120512103819640360599174608115304675531046419595519022015497283353511317078447676639082461839391911992309160071599355696019404883416116164766166344207768874429717939684955379026520488949584038697937057023329100020104627473474269605616259268185762657144301051046909934793245513841265129923346819181942593914657659722117782647202380434876116946050325713592294995425873935385436477265107650257920746419308918099736368725194058885632975581247877277615486775655954962332965333217664048436705279299447726082615596876367420519018086453241481438074941484611807771508348105359833844592913389304594360519705698435833530512017584434447203393050148340238705571473089718887820733426317457218547489307826071384302587638006736145030865000673045673642336286098498704140118899887507908735158721632667820607392921341444059350348611774437462455398814526061220630483429027576650090013906465867626693059332220531054239341024881016431245319958812501738582828472411480713529070892161313787633565036683033690284696835332758725828797288390296201327286987030811892159085993108062435786204600680991167912454561122842680038511295073015490875266481045787298174583204682943655875019859732065048876253350848511577949419573667149505553885605591057896716378825401070969155225215480100301189787164553955556501373615147824340418456727283100346725700305013600985923035272567307036598342959138627983011607706854169277261971729035339628232366218389530171440309923154166447420155693176833059383757926632982581944121537926058574602189638676711279320258905361628865295648937049166935997551676707813579512306081987062710214986278555536801877260765396732106983948138585902402485529701533542372764447669739173691617116169959129413269208268364559677070366250954484678892513474457450923855201420363288443654858761071891077294039599626854782770872403071448796267805980731118106840976206602018447350620088067073976886212043167594454966778677291094698513675319733106398824539717680257459251755397076875276663010538124535515770501594881015350935611047049029672764085938802193367313367070379703918918281881362025918450279052475346486940163558612617683651783347919781479169434334471942149371432173536182779257826041125235675513015831770439320308501345289777423703086142669630138503790466399930229120734625071963940674547647839670695541245619969157238188013624568097709223728126903040702197714918551072000284347051714870095432681512803037947384148827839999804695093049416311012269067916418967161962726577022231290133603728676989466544394522008116116899599606671795354872393271543140344309868573918298026938629765794664001791712419853608904348923652632160808034416768606291499491110511660208220989819104025015328938073324037605420730994161660197465205993121274161960814521334052279908608795288399272517327071979820738605959947485521941104859433257880500591155435666062846608064455184314254120481552579230788103303130040460539846311079215103541547143540816864535652619798526625699365037904251277057095935512365966053553936718324498367301301368126918797255961226298583913006049560486321052923495387998372108207681046530815992205535376591256800547545909709221992314361708738836797111549263010914505416171714171594605636398745482011451153577396180544205764993674271543230492646722281541253015596549205110103616248984251551369909696864761695175964360276336572145932847945967436075921414828877743493776217131738258542158348625436392287369468981801127340611793671898496368238936826014082271738668981277901593898117684955865202818894094637309669959692614622120781876725172069664306226767699270011839033446980155645529012781831542922290835448826043752954065842522344955520064858362253217896640780200243908364497864865010961287005522037457612952293954473853798428009590570564748029302737054399428797594417842532996925241183425929758827478906730207218197226761139586317519853814298560349718502643387444225493869673711308624747037453848019573751604053568406355472552608027923413653787263456912012531805885382289936487281138225470067926748147856143115724607930715470629043553930531763524534776962221784569822943199008970226423634179032035716110202994752135173563884466039483710641324342352877451604339684534886712173228430091741465796871177896778093777308881207815849455099234273219040299285206243371563434756777164199575818124373107806157347833337253908952007443113743772431205289859993973627734930830452934760351867192276454049882373151936097888995242664075343171066262201026830266664766326942216486967655111510105759328502683335665415009012343530790857575748752789831785800762328567150964244577300289277616285723002709349922789926699593771505901299908783257696699654051719855627414052562055470990029787342199242689487085853613185654914270073803706004432143284252773232259770954937623833006270966956300668070867354019224684174069041570103415791732065888387073559662973899116675578965957349567454548929045729062234888294559316111241000545236907730274665430753034406958203955275088842664014123617654008824303403711890525183256759414457595905180545692901930805770362162776813627660396097192115159300891359685538133893584134387460029059374417936645570412930272946849511037870024078972236313325495049550571014127018263679515727547759376211954360272957070628533628067470650404025705724641693898308155030566618000091661785906003808933002331809104064071248709347602480285230290996120001091276727275489017847165750922655966802959620528922486849155745309483009590369395056478102624628295774929862050510672525802415538807786163074011452588864439386211873530460582158944832928894018285764861943071448825095158124449312226004085324030274517820356180074107377307318875141057153977918129912005955970082995246002162017506864000452398258263529631103706947833593293652373439509765677090028116799999506516562832749711924814217471229026200702354505647004537297074368688191789474755522954017229355910453126015919859558856556310260273264705578059300302882952369731875582377962559422314594916399432708361066941510043352298645714132264793470152081993798537208489800945133260384272621816602095046595034280011594852652538818923491143106460098316496758327732122573202528690106050639892947246010463627327798564914113123616707244891948497866563192677581979590368324417268082744156522601781615654303007929505456465218297199582984979700262032166437336420891892490538998069493493071935294623668684326097928673181934644056564274072559546210206978427654110426152785026746351426630306191557591009216817920738087976553334222772022163208280859977074055054000973278392500771522353814958343513499744674033664107970154846333343729049374812727657296402127886579403269411091890055789743233693059679804802716289516866616892584867356269640700650855986231055685711635720849398081916544003179271668159434306821278740887622505062253173435086744713091443161403493822531948360561489697483859829258933383621188881231331146058707173227007785780090727160297531026519505320609639385675214558659449807959742651199377742723935063578153664153956969108829969793269256020479611457948652607760706179133284709291078491866900687875821253943444756106852932127863326737225789638197416077064596306917745032920336171991293090495757352421380200549947462377246950723695951133528796544586945623343175620435435773468822143826054055670340591512213525538695095011983674537133035351111927189317633188326950611243280677725942513237771374560110996189580154906216065065264932247658235983074764083737655943159626181455252562254992045136941999383164550434791196545315352396064974100590995252911528667332753396213999310391816405169013483117906373216706905647656267758575699927717587265825072509073873751719263245573005443038838462045107368168742452411795214091189988087300753902741581804120695397461796455881906496960884060376022900624604242841667043339018994804231411175345573652570676762400873306131993612106640097004190598065610513066883716909763523407061734928361740632292826858961120977158922579809175301796172482872521121114600813384798018113101161778629679466980566777222661674687145991278274378143464867220664727859385186104254099033656871807748033588057371171315828697131077314171284352793922018700872697249750887868494684515374219933433655599614357367650384399802016801716290291550238186270995564056478254680523826727800786482482344143804780497176022308257082571519165560268965609617422571361288259641329388678026167546690771781143325287239557514928039165704701532899641824946169851949843902719332262388183301039938962053091971541092655266819524043219645544260741265425372759816346196142923177400391346970945190356573099181823925549826161055054789132782758819374781266291500375680393547633029084632803470473137314818104638766957605621106062393389545715594688552152342356514736742731160545894833171955766062509810787412241564923875889773394530336583575278171439630300486045547219124563914538198978420369380197937481885971140337388980350005238377289824712887757236757887818596245675852614488964392214509939782032616601581008644022629044954699202128448385900679562278972163485169524628110797460244001530132255213573498552243456227819947452823637404869360232291305034078744040307187408231266195044132348290704711425501592943672086789120177910117763120787908857687406679648723304774057365922040174093355494407070231597345037135681086940975077419880783995428046880521780886627645250310779138854918485144567346460906595763483329798696607952646958547703132489620162530090481471662538525901540300425684420332840191912539173344054440119294158925250736398089805460326030086914870670301000264189114494604825375302576725727593675590684271832594266319108414941414605319110816152130141977316659982724419426780117694889703771188607676802060664626571808800037366973354272365748265335589321308577433969896139960719702297433960225473121481166439451095382576407936313804729201102538715171535349041402859190620954459950376864741923119519470454220202707199308072430291342214651604255079812559869757033298136093525187687771277336214396579089091389462101194811882569145036241111550056722958846424017908147355974014667264349788419163994457330980731546126195202195867970351829873542492949771250138520041325573100550344832196028850813408820463683611037498129124214114781865939566937160187492371883752316449856093480326683408220952279922813793223818141168351095698551974537086035880074949316915819392785562452477711149128210629689645467950106415397260094389806915302644078347115066708699346876957201527286137718937010660427757012922948680631346064090867565426788317762332110814281936356590775566342377850387591920874634158565277014531619441273721164095881394259660926630941263389826717492642670598057673386211769271926016250634569357507924374075732616195736517130229432992269630606646290814681252154779165346131038653585493372401719109527425124078319669759345282436152192712760628248906666799667310319002251482369266367180386107377189565185944838369266976001763114330321752239275202644057905223703037336854932704619487719291392103608191980756106988260884389286650089060938397004615965763383577604445098466294257696550297054374466122774536802149544662939119648360663901814197529698927885817454677637814219108103424253466177945189698325495921122434623023103436670136140592999193796788925499877847464253166011646562169860504860935238268122146616609289624701595379337792755088455754936524748157056676208362863802670742580121023013798655960618945252039299198320245245277036592886636459650441850873427227443875730683180261393847320984084950995961808389896119040200113345783492302904798696376286477735413665469819009711060487518081449122208310651723527584357864168757462087094057132467648198753872198859589797392863087168085136452000197836571563809482886871289496656262647392308983265609612585747752768303245226691124102929143688026759871968155574882224865087672835986760658990003480591001799860027620038769698291037002515120262982184763197774038311213200288192594791844593768418718116146599696296154459883833965640240566778312839784769241284056098551522786222719529050205734058672712065875764045635334603319258321025165433178373398777379067436618611331432290680914742322728801893337971903936725584693375262951449199128091569800628918244717249208466348211212382446639473379670026784438648653931138863027583651755401965299535668990794477731253342054790161225402731753976585446154787737581277060689819358999093451481337897616826198314824241329079172319082523827294244454320858666418503464493109603380482417257756741754641439853297235723441765161501742865987106610313743756131173915260866116262383104515409313727930629761509768594860243171326403631868478645965863229424741845198814263880316627169100673094169156841606564860045856883888826117009953770419527319373111235037476248374769472716875351497264481036528772076640551592025491824323225172280904455770823664331762521658985046100871954284328754448479219339380286492712986613044017070126083144300590240851853913318576926741931384273464511084495717681402931691622959578030429418100822307745383345967936807400994391120018699120599786203138308138056424683154345561037785954906495746426357579451665723005127189674592748006139885702995667002292625037119648405930663275647977991166795127700195273118867449383919708357162869221168356359224316152359323069601382830035392617481362949400526117977010353892980436710029221582711987930863443117413063994628786977183048193496948314570949327381472170434914334233065335779505836669959150467521215688911849566193391487460448789764543097737783747547918776268528610474051168069291728741829808932408416641059128167220011083270903952176766134464783862405220960768607857770824792209358891928734909307159369238394746693603974892524818645212122228527456092895490055760304501237217407729211685385111348841265296326593788748081882432912836272172980424980702774876941466306935976697730532825891243125986513512527980582092035922677192574195310684667911449331818968894533858344557211959771957393964417414734045951284537157902242856800578552133921793033424069029688399331285670412855782284586151091202008431515425775287767633250668221241638584090038181786003916379692871425810367008876798341180521834824654057036470172342251940453308146709456795630436678213990277753107466426483352128186804948367971545083872680504361874928335345624973452379472779071716510880660965134510468098393242797862838675382736565850183791093942029898436168638699226092480357995104503416660008705955279053804920087141361529672562998286250201807827255678287390673774286899101607489965432687142244593906594940430845787289902261361565129051005242417309542121281347397278063974096752842611083116968096744612446688950389536291715279986301495471638521726709202686042569732988964204858403619600773761880648901670938253770913975356678075917085299016969373495616839783374325249021330152854226494434570728652975882882341182989319960541785698630981658485134537605999980659213813672452549265984769511420309122877239004785114698319219287339954715242989081843012390443023508469135325395196598305755382554774242176429591870317400727790461589141064696430101028046661000924280452338293543573420670394241500617386529262141357614827504627068560300260009399077233759587873604225673581924314152684906277401321568630451357341496004493926819574061768612410464120768802242121089980293872054276379598728899633547635951019558109903358020882569425632739023465911621416504454404842312793544122469499193439071082649073310353364184822751096250036737601311982689369266207301381679457176843027427732201600463075391677069134802861642601460617412547522556913478866675362941440784144884820246911979071052165645753609250879440477660998838209018843673789608894702080036572964477666269944533370162307921001629618535564133864710473841222742402095918550733125167125437483781837837072225656581517185480315682489094463054357143456691239011864439372231216524838113598725443415136598018333133912491463266041398896475958887600453092776319591185019647103913292533756837890631027829395329407255314645286311939509517644919437886517840622319439763998770970899827742221715127618231778857460206973247863362873724891555338204240806294115360987745089700359693604200612327612798649846218268208486648519243710078603807982278141097895932845043503729938122931301574389190230223917453586629449435364792299016095998545460081829897997465804050305854046894624250559199524025201849742695155050661376912096062135470789055601396949516341268381816910795942449858767334351428007811774347126999342591829346005289991225466272620761512518450445939159686770646739957155466199569501326986901939170901645032744345979558701568028098604477251700108084553670472571966926158586420241344168504148045382178644546791664413185824735939596051087269585595360981205051861549706759292901784258004696573272347894322499169996627601422016118431153699147360619517550361490388633471030330802846376233733104605838218711402321838622252608382580905447228464974195115534844910800406082475790541703476654252913670679797893969429660762978356128848061093522513465482085299426116410460269842358881820495774721709451875447849290116944511105397014200074319611964604922586947658346998624978135773937364370103403664769035957464725255924764455460118003080438463936712372783833706868446208528472574712869979864494118242389448284794942460817055557955969029436040134495386546622649152460007910348270699587186478791798697816973636634916289765050082891353604409607655396160195215210541555931761913172884853922465540512831174261118766985423737770173852013198535323552934826875072257534420618954421243626806197127050196163347967166638664101838068217172479035782518415967695794145883590758703490122916850951213079345177672925904961169215351498029577889681081819169437873126962727376909479134434342175462746167295442584225203376584345690028754052383974682576509107043019546001279864728330615783600211063990056642312656272804364207371722210330150813634959720868734349436925172008439863668961411398402098592249423538753023653701240763138537101098634039802744410068103510350223053570092706494459559828895107191421912310787609430641132011122362699016147854976245593084943128722820070697480264820240173413852131056141535383487467506316785575334053866185644729964440235380396556040494841048615606463173260349584983681443105202342620924153903325748675045467596244551602369781748818369750262604029167120228275364587275856317063011464679892824925280855993290208232813877446232526779322027936917325057986895103754924266781456837455553428490424201915929000331453878281683573247362663721919175615696592798032783780094108206796933946307361004343272147525636441599758064320831129245512811384770688923008913489078332089692982058649341121412095572020584955932769590208885226170250913019063848072423930618118985491676407789436499754118000793109404791232479187897446742523168021739370441680331733044688501297779980782277178163496949173763575526636331866783529865826743753764977452680668464069920560149711502754429370235595150720833290473848689660701414468989239243439497925887916327976747858224388187995484254452748944865975710711895405824784376846859079426532336972796727122887945067031194373507798876630530071199249531712224225698010681910601405117221114242202442133096898968704156085517502708294835345030686194229924053718841461110427928822216111181517292869209089557327843151572071176574020212325876988705961244173051427543958479061716288332946151820852655535833440404431181201374966248231141919198034836652584994188197019286187840372476349291482824927819904134469186461460234172416971646334521755425932700955647829508701453141681642441597020230014059228731747062318071298364148806086501448945585464542567856236988741991953322214001468906060973469013644426409636603254826791451826761814868750660992873390791375894451837662203546869776701339711783638642719845487669448375166308880794092090842522668255964920061362362015763105545204538147392419347328360012938064070737106355465141040989845236176546541717146655646516980570154965200598375170250528298520142624596283366192995694086882076010311039427495726622463589276575535532266138413223486819198531012914280714047114288849000196957494412290163158594397494883023857781478054210245958546131250089704089267373670265683460513835463562373100055986803669157722426715416335727693791602927113712291181603804522655512607491043771675373849948998438315476495439134848987658015318674997374122552497606741895210624400199297482954110559630579329558575899485012502912137040839101323813575625762789430235201492110641491857933305326664670902190911875273390725029183797931650637267677233422996947241737269562054680456915633059565222112951287330286536409902889765393372881081854863407246722467284943076280910998832943553990659986645200953771853568757069361005213723018799044556285518740164780451814806092949924759471331630819560505520257291947222735569888997713604862909556553192835901337031436349690810634586656213000576971356102688618638611951811691080359088585988099791928337365282924215966361835034441378655450587344089447633048002119515922258601416679637747046854352726117302362973859461273828108864877495920720246014513928706358179068958877084339306207769871515576020235376433935396150576647788123166146562347007536744512538717071969252982669915918046480652688091007311497592416143243472146720096520379375246324580411287921700294983849033612768709520916411118265563867291755074913349227668104621437965830685024052373341855836613502119465273789537556308181105635706917692900035570385940482403217126491959803935762341179494385751553429914937568197106466378252126453248087602192795710802577139730637006030448863430755656326824819099159985795010855214871736208163795984939083348700758346712192341102998392188215020394759041846278634845711794769571470688215344136473708902031997165469097988215604246041739076828207379625507626115134107053214293139217014292184215604066118683338352741231380284756134749240344814106323166436144417088618631501454820503685257026000702845439487266807398947147772306640844090139023410523350160663707109721523175720449395436255611855353683192518773815546680028621600457717798919926126172595356494676157472049282009897815658196395709635402399469210566968862676755788511269401502768359953759159524921151745495690503964663918246523536614984605657703253561767748117254533722786024114122649448648359155194061824960997969364616751598286978084573514441597488818944071548482107352660496101439929461997283721775856532646582865697630698516790271185028800267585523126539045763175863815209661942556805867409419123062131250998440816732085089803180797719415618066392117895070470658012529640686792547272316015683230187148538476609680429297071852146113906671463939727605270783002614056524744013377924412710781255824308551240767315658774952462236606845134476430934222786475111805473700612436355375840108273722032748997128848599287545791081196181632094483496409815937523735162258903478560861964464239616003078305407743587042302234139456439003601120266703510633670498297689216854753384589293469362963569301654193549309975062811138829589103359845568978048540080144854165714713013335670342156000055418387799477111389295942462824026970440357199357272847083809443437527989627084724215843958836464767683887741231169810318007672159049605288155713281545170753432957724031053631400819332738247439468329495303894299609222689599289390610397646306356708851367623622673697166758221728588928055418662579976320199614438378543040361728630345548991756852517187445548130165729387822558248467021280245708252748466034284760834301144133043878587164628783663757299169360855590171160541227985734331567774788798837938590573703421031897750119883239592712982403947976225597723637673725763523645958879160431127053177732620627921147402104874968340409606455624154796025423033174352462517644390500707827468495033991630437357806979385663211136364889254059766353931969610301823923804503664791783988177516860044691805175985106222124949372235395187830624441544824252843361114488481031916597686854938653298622430755891854957540624533290463163689560400790100126756250847871834120725533647486082453495401152248764168293338051868633595025630192072247743694415056415631642864942759484867998795102307711729338573782978094389234803674025352950214702785652212242356240181635700942380014359469447620019138792237059078799928956516065624261145874919655712279491039686569820230974079926127734254586485566669966217118183889598872296448572160717531719261561531383752348893696994551729356174738770157869923788941008851107731932866355453236694766463075704909019740460649027959587730308872859399230620459298800159096431676696378142592951354578639936092117589727828658261411517379003777522613161083158696959360943615432397302560033242349777525006358413293484735910446584464890108761182893922010795630341273572631462840643452131137194218986060794981632992808800908817291175157599452470837513987937373340544152730429564747436213089786612558777339419957111045905600798421137469913009344232878579433661689719080023561497852819184636137563856332802922272262031078008465000193921882284985522039680690535272053712360423863744296001433149423876069936975430314572305260268031000932796498150298284356867254436008117256820951688191641953827359792962663262501395555137514772658996729766192076147794246983145157321743569596669099141664852886417821411578138948622848573924342875787168150389846677249061292141630950330023208418593439387914487143395485589880116646107552431710310941825834862938381929487810684288380363496537758048933538484029146622362321291518508078083462171531104032079430723366486742949237969640979337075459414402853634395865012804018234030215316657356357972537830411196089166397322850984430842689517953765309247062643273482455094648297138757045360557706536419802393047688518235367631122146028187077515966051633913059140617534844377916603121923402182739761151903198769529462940605140486549937553260547024206159269066087566664412413542239893141813645171761327215897269970306174652033311574192801388013958859541998043512879590642805331086477657028604763682177106486004570728677390317309412288306832373014777010332914951712157698481755744523519476852448150779851511941467276101126054179151539197878714847524739426016427531019286916871549059047153660969030894511176932890672391002229541416160543408966830849984018352161481249574191136561002163385764929833136220225372430667252879548924664335917688757431537262658800905763934387407051641375382338628173299540037540009649953781426193934418027957663669815020172513334726006953060517467780073305521479853728587204879686702107470067379333360920625987830337973376553920305248542786345268896925399541652123415407527816847632728756222630520829183363908050365937913874073818245913124824509241168004177761279294065825509588099974293400055856671178971151506484830124113637851662735117412879168387818051762879847581496977956871591042621920851150953355289466902658779502076296189397522360023179701419599259717125119563501851995531433712814235079572737332551295707163256796397074054939201994301636841901423444443099655561306715837285551766231802148231567341618798215865064485739731942838183492891696931478612179083099733391716870956737229631250508819275279024787802619924034157192491397466206109577699092979354799785775639519315261631474077423416785263488337887149327615092642353093646242179522279654628329736482760288466566177178215185462935551954220291132955802657122947603103540623949961149652339170289080229808212422619639572857209201489542944949686637884438033204527328464059967350270463449456192533502258867947774677571916790082308266299780113073284852023987814305977660055010895055434828407196189703949469848833047450122658933587401601339030266546969202587137253036208685880638950836945877194545330378517978249278161952684473355379490675178351052024164367737771092527584578877578790109235057361677007356524788616996977782685945584764231442125894019930749423803886743012550603465613056692264256623513004101562388697073076084456054374239015865668131761212592428000591326124882328455561651452747343967163917800767767918465471917632984723696124307275237022809681273730773375600583301127433144545055499339098902574045602208681006846336360557510148183471780400226201477322497246308949380709019959693350329030853928355848928548522576213296614864613195927870722380154439163771697112821161770932445539426686813489666988291761731572652273624324494425861521333599737422332068319142168803234980041559139798113835092993850639242609881597043638949597045521401281280472254507220967997994081312172725580222546488482890168588625593702938575206879958726341406511149077887127126483966930092044479403932421599504162432138478471646737324705541532897274396127771648568589445196283210327154594832546522809354403499285253726079838570278149810214175387974000982542208701608610583357004876260815471200134097845428322870966058197369205152506752874113513941131845209502085761932140122943661145521093850141970770452380788740616964962168295847573487100013964500425244552216250991143893263118020448864320333437500347428248092285870510231653601870747293946497169547769206501853773633981642894303648387147896417617640568160189292990298561085820367592432776386710727824646974034993097461497543751409409996225190432500237270845106363719945675800579350211776149538485322523018465065624261573976024224264525083245462143793542054285090868027574363067326857762692891398128705214904327285036203935110826549565016961023047059075108522905018772907492574081214093324543650308830276146197164964706574465799935277202802865907972867669741410508715181614669206545142688313677066437026838559184675242998858198082600401473004878630779051949024207019581483133554406745145710663366520636873214791345711183201770519491011461859997077071941152026169163027557549645554708396722738338553152115669011686123768139506623337722134163387962477660634790183115740217781808143458473412171783459242567792678440028952322562350872875051060168657438070798054965652124331201351287332534445635467696602489192733584737338960594376645473808292059931901336784765557407021994415415380760518198641817775545357995090114431505682994758785193404769316001608406174874300605352896412884280827225775504927917885545916770063436158571266801126580557073330209816129833377907061986534469502225123041808832118704174390943045955343449765646381588868968360265633865629995266613717574436771426710048678167184242429235072214975419431492387199262504794910992671412015733155565774392525896828306181592267756487778886236643271188008901925757308780720659982865379726647155794289696087676882746605899600297808024172281808379766475686563096041324020481596649385344272116684838201445309584789852710399264607662169970646030709631461989692649256250885911115914906230578842484187014202253863774833205472777167081850218642104304511511144028819223922756764261988170182379830983863835957715280927360747177714641239037597155141404453262493450667588915771128602363950474904597819320413897759787635355492762812407135512246504590653986715043272509163497102070625093163716737819031351500547420893536062712506307828035112943790674685723769310453617755156714224142449914763116200592399705140842918261141829684995369095614656343117599786273863430126927623207093149724302564252300624932669652708045069889835587216056727344930545302205169067105616863448302627268765640847882763610778267509042057549732550740320667312000261482290560608502741784701462229791543313556075649008090496157057828177793895943858134592384822043299684909758586331177372201388508879767784882013696751624320318645631061196776852410197448266907478827495809450502337057466103657083247932160083241703666492700117282567886699957907517836255353809733213742608175414098360128172373518811637541733016255380136767714418380623652449401723400105722232305252868974480798054160299756103975258516196325886601286031024688521708786979192900917954344253250786069845653824223089375586192946362433444645121121712648789363537180408233067974718890343785807556872368549906607084317887760690428069112168843700473755896285831450235899800044213750768474084640708741692301218226720987173232838896102198761590945044545230700972551757215457622305929008734017361341276343700218248301454575186703088941806213458534060684257955205442070623904040785022602499786370685371815677668418913432316930085156270992625512284212943252398669389063763616634631167031060204423920460907436195708709436469361414455248382153605047542386488929377984457913284832668096814110652929193479617435439033186776801897690233125003777989887926040838114046202381756371513146634481951967539389656587035499540345580677360449595586733711055908487586080306203955575256339137722422254093793331957446988863932827253635571717986027062117523574164869189680731740686827395266235574803178913913098256323012741910334192868516537939383170959851130905793623891617761434378027857610547951591819919124915211641565887420711874304873662594847366506465098226464109398653367958651583620601574813642996230713546341983190544602292141063494673242774604864194818358365307799378486421335382746813043956302978945025320866294808304416055414889756241320560589548102036751167801797785202886709960528514771774110222092471304393262880278898361148249446601577086586313132078542631399673304899492667558655376979528726742596010915547886669279841932701944799965692613398198108782385658937966576938076724600626951673409529028505918836152488310600180964022559682294901276006750671681846399906953206852754886710079759082721814244744314953667594527270036561420856469985696652436066487510090208019295908049366844806036806110646595770304693086435306345512662917549502533604101516761416909390638595100558371370344726386928359668768171396790936367668685260232017187244435907327748477283922372869680413474384464726257064065498856018909246571117431130825437674787270867058000672791481886253923796715162939981736654307526240224097292065909441580788382766020639072486836229837758455146490121233117609388211874632221255504535006843153467030045456230868645791682342776010421993941144531800002505142743639461464280506954723835581145873544446556237651401745202592216918644608794975936787682447256688625413321444381815616688640414223088377653846432260369503987113467576263765677118375891848841443377567524960572645791859439544152780904542166617913432513174910075959284766150661766608349790453672891227126653581493493853361528287070778080139035941259479450683678099789053141466455154371262876714969667514276364445649727650427327115514754351973637224119780067167626049729627578882525288726574631304928333992651264606942481813572230554047916238308221229327452701097361886393981653734041932931333705512110153532630356757570381982788206437155927569768761468660430735938212280541375135225205349919200204953586847954113647474187946972996710155425984516104095634831606962181484713569267228337108822756953302960544285301733871719854852328505773768721868761680394539304437893308995312911718897310008927765409877377446988691339002138130312519862920878102198706843557796847078093767627845013084291388628465723778824167641865950608466868839222198009341082151848982048247652429095725291714346905995698208972144755278133522278690070559755154029281080713678668980244911688951300479229237007057571896860922945436904719302359089020967883670497518039854272969965942904052880590361864611476512589511250292665195388827523923985303344869544364077244500760553115606099733743145905342115454103847724511735745982244933263583436127644550290130986996789042836269762540879519235309075877869264547073219638789405017879409723617786222992813165347330674958786452935008208335183300664733375458203649825110867923009422433318073482045316282756742934096103147156104250992964530982421598226027841520931992026559460850801299609117077806441855597047462793701754216244751608914830032493996920958779966317574425258135820363477211782696442495603383810781244601633999502146409020086832289559453733704066525097387257841693367033253392168831475192597995982628183660978759311485194151481956957023162110478028186585794981109028037522160615959501498771451057848611109362223922135414785819198956332245947824046760235282687812089783124188078539768825646091392813611330961248541063037190356205538715824552782568749504346418802770728880505230758155900314620140061511897845055039125753886137042166024124253829572830816134159399460756286658316773172402027557392173859067255940856358786110835094054643990441871465467496107702211726923067955681646870597971493791526332853538610627893847594956061345971691785391084934564407746034493414260592820240607165045332568014506042377565810186108568539989287416314706227003875938474679175041908284208611300650890807514380416755944228354473371157183546369597624316149860488394283479827892215114624911896554336099725496595242749447376774526567618235886135362999078329585024983207663883621866530533643759406687583447098659380019204790192087880042032294017411175396250444994065358483687213167188337629500350965508600912941000612657765617747281177496554598626487719555359220533951987318677282210763241824504301313230670106365255825880023557240913857379501660206180855328233918841353120695182092042775145601811121697723491710110264129643584228611873862387987246487977916148941932504280201472908405768427160669931533425996171576236022532642519526732637979626480017358903454784235055022101952527648614034119500399799544571982550939757063560547489758315065853279513199867701331670602521310219230338013335592589770880476939835329484526652001827197901777684191410390009502807108402703107204953215098137856802789718154145544214057944994745843757008995108440038395597916818860927069612936411746457376310096584260293235408069379195684817558119544617443079591565961360786091799026943662424792866466612237799283059155480155602579703260771171924470091266719713255461774639046626390530118311899479331377651573058313168604698820742898148101443255014865379221047382816574640265139439641554253137810023959414710053501663284638434814131206477372076817187966486500581783715148148154475632749047035375487361000323400194361927232331362269407899422776307801871247126828011634963115390828133863744891222275633849538315740863049213072020558112723491347168457236649491173850647648180462475548411449871962504026775251116369126652860341830040800050311801053039270346426573481231082651076028493826676459382778945367431311999856455966737693834516917515033805981478246764280034446566611883520837488427987633848606110174190957571441583444039407623779003347704894026507645879067630775244618941138534546551870699983470254245927810050281307868872012507789033673694194578810657086325586122612627224242733026261702377828145514785310766207495803120620281017303868722890564619070016190796217450178988295904902408160587625249447592881628332719200922116246253167368303208127839443414697660129275307967567738480770239060455664761024408888540579454270946300542198350718855657967866883978660120070347578276545828664779713106529452105152103021360864034335491240738713916918445404004825684507368166514248668963313315273957626321828245957378663571938234566511739006220101057023280334743600285166809836052085147917355823587278142758852496916396637577059823216007495544680316571817882419509621711484032063561791263536661317006104324950786285497677650721836239725930563822586340008444799754926045910173834230435850912422943120352942827604788752463114619569165622118707506854547375559647091605960390444298119081134022694602349745273326301994698713623389846728492674513342705430491890056960532349679188396966019977150284241661131271674484811870828307083244994669407771613840320643253882087869640838483743940004514451494116423020001750088848670055947134326529489678899302522719558542703682052727982720994784199896405662524578316098372240453132292565878823519385873746572600187050879215512392731033451100268277586363099514268132642660418159589269333294338014225291526987184805015705218008205427032588132053195930128230428163387917161491830250219328053172185775791298918143753830735919957685032017231402571600872424816861193455178204282553215449984425317570590374042330832014412240059823969056876813434460774964730461157093310648818929625910719022736498168259505713226913841298760755942208849063373059846984752097855390011391447226687648567241224942750175092218660408209198919277765487905325690797835278331982298817353867611463432493626591297204087789674423988146055292230185211402664119314591368553111837327328607877195575186572357757102761322070018176668943659496349952255906645056312473532002461930049427979477128662881993640681832212452010515799555646033397055174629287804792702537525662946950539002897180767738089757520177067006501337070863825954768162554135066714606592795784955356754213421983485664667954905448664392237741411313252819388238898970754995898787532423258874559653116324879440468383500762284230758469938221720031623553438898807252370332819945781347245307736121684373542802626913302431940068564317954590211665442818287314347693389135492140619596365690823712865973326769904043013785917841733532944997931647398790806845058909528581353794574921515831617263168449758814034621853203375509833792090974364004599202564855433280585454451345702363056501115734031480393896448487909033288925247496705176231778073868587496856760054212767374308177510063964016564907540499113207605373536510782275463971373174761111965866878671327750264975491731500020723325537456621154161951981874753775338438421807970270513157568982733385556383352337676154601308616372798986247249112338784167472403296937618767511305186075270532131352785162146397863092725799510879981913239329293222164157887168941966319800569301882392453223221543944071243148487603741477228495794137068239232191468360929565086829542068649693749234252242007872273891513029689261528482481893137650372931944701679537759269390419038388318434516874783378126721086896003211854732125621011495949297831117092098547962767153974316390871309599284257526108224414311096313361714262904267333248598158214021564571993858508644181303677110848008027786653811210027079288279158493207956354133796546723371071238557152428314623500607810535199700610569965361914120463688854409289600102200345167432573812549368805651986376075973461552697842284905944341212911037176914497277113301544562538791110124896202803362516755245240612905751587694265987334953492414791684161813152369458240632626228713685781012137004878534495720364182861633073286571401895598962850946975140273522392704453633510157090407634043717188318427504524504991860186720097558647804547797229906588631359750340032684240756849990803609638408452389530063705998820273341281232919203026339260681860226083728190805865986303795083451063674266619605334690547132835725613122911173241871175822879734706690522592738027251008917134475353214738027791149058414115249711835886603930075690831729966591314977611142667923309204436632469603441911923285409368005856397071975497102723066572586654699445375432393811446149883308891935842983925720893779268329258017365097166376663385822368526912970347279375216662280054073028213299971095017228928233617623794009750009019965990430992501171478939124376401434268690762195244677330384381363669850335988642345389453494954908405379353010699526317497568604056904373549357230134375646415325016135728797522253091253432777381765049544986666255458075939449659411641600625663737912065178420264637563715392874954351182403761848147906848744080130913057617156300317733059212045564050180577705407044377824532814912000225576614409825183217505435834460765199459426470251251294369741427831178791939171999330133611743842217884780629517648608502198663974366871057354198048406997956988854038968266600478657294197996789772983070339293741163077503584904647279285893044001694190987160831755093192335095682361572167912028569749907416155802292569305273755874741039423168699077683677211192185874671876110187146703889589409414350876068083318874036414730000600010512309669408980270614579200914371729941244980653908567224313212509462858337187321283824404414597251644682779199984271099197190899594965822049312863609815572952879019723397490606045301763573037745036664020793551815469748140265431432676822483813886888287780747755875234111128239656304607752835208581251324115405363478488777571922144772081198175873348264253536332976844691681223096028408537386970652180560714343249198933315859631615111802241020042695033465051380927125530461477190025766411218475000822426596628279361957541435185558634841570484087337348261313599997331135045191798104852960122071719202852020664680344662885291737275401444218364633495308405176573756289272567511286682298773743286079087132794103989940852638056278535132709082441790718101918530474161231785230918380639203307297751259847501177724685811859137832334792856802141438185190533932257954731633105874668847604872798242310145816329592582534863133187247484650106174898995709299787272859915061355833939974199432051264505544555292067053633026148297320298682316902051966177009042169370332134882130015330903739694786468761022929645586832657920013836019076355956551544482509770996316235392831666219165407885463596160685012032255984333713735314657200975433982719732733987785582579345551185333504620933033741562866410858438400248563141323884828255735633278698941365773419425842295373278224575944113140053728756849857631216449627858583711317005887966730292121296501234769026925575962809992863183637831900882307125311283782627452745383521113756633439114107274497987003290917980904746794687156827122801272596644376910370343984616402314195892640816853571521758005460345277713370695109800326049356132604266368495870619624595095140814689394954948072888818410557080986408908703217032368424659984332293545250212426076563350010222734701322281950553920569209707293777887329990841032385498515519215370562968169867243014761324205618468924149093962253861288120315500326418095081350509000702575558737034252678226011605262401783401572136499780630464190562998385211435981828405155522133950362343837762167375517844738808011702378930172492999054461682399363054955208629945120700466223309559838099878742916841802882056585870638141638634628395121426374842938089868259824081553378070786007782514830107730195962578881630799925524376038265632405483518607596564202734441515105796464376822003279714980869256264081542417381532998425497123614845188582713256368646961377824263383533731507009017813003627777103380463527293051903767279559541576421252978176102256571960113019451959822092880717188730293897799939561958075900853719644671825267404596532421409573328773589965730570582628828971132735759784082008237446533658488578750747718642670519465619794303069245469271611537639392107505468366456953791814870807564685443414132838795472328244824587916957132058766671627459070817462846263737500189534078452285349038544176132027120705797891618249033292993718957860020396067898501629053679912431986797487059799557964144451635896635670637916753826157639812900778264762174806884372344087228314498302678914936136256247958380906735339389090977976995143726510032439930188417612544454199807485743209745824649303170733318529345181785592384407186421788323021232993923382189792210238454992198645128831728229799717465924008988712863029674919557531907799459672380487645101696375507220336871255510234636149698252286670742971609113343585505995598443846811502898600901173053944715085406381489418634045803322935085478639133046319838821749864112926047062504965884817197748238912065116695436649957830610032321404193736552462963672363437615410934359402255493699106621653739587492101641388188341672926304301292125138165779088879805122752117740711127009002129133405809710732481250392587997997902652016564191761708649108740525754931312758302771345487776009339029890625081482028348612939846910915406303798388884080880974296633854018042356311521015216128589369818859669397777493110304337992134434925405587506115485644148494567633298719568989227110154230518116811709337381730715971679573120512266832836648638125933194000289642936845621504229612815478482040220194968807232620100873740662033537171002413497275370817104255787401077613126285756541612415460272108451641629375095613068198375847058785097829755117653061509505932640625376894099390115958549029235353789483014352326912353159288666294341721100781640490860070358655273915068168706458766401380283097241611135745843052754040916941776190760484890635306457003113170234402455283800156091905455893596191254556046917685077303008232227230600534268178928288771299700226441596547418221865582772877654461326815309973022956082714477922669740421062900074657816732550844846796755730413727093866098008923140439607307942043548374868668110065579548240800910460202927924821966995357554923225281009381173229351777577106371072958716179865995468049902495261534322302866829638528199801785613856271149859057820146678417630168852504378006944676108582159115597073996803822581057070500580692539698731212978580775563750619992512319289574607784608550216081955329579819683756588917837084503632723001756205333532381901335301641664470057422043119698059705634950685654720767829772534161457617366059660247480463247867117479894589829268802704120086061852746631132481843498409737627707276005631890067577842852816691093966951424095152133571728693589084524176587347525924756150519128931382252904271132598670010139528685103651057635251305243856034700008271202222280103629885143510003557851471918770259024955495904480382288081151400109338156675668309757572540903424886198590719675369687261132418203874580427846557509963476102653321644951927516980328675856808396309387582153713795128062459241108911553160505677263578208259704452445912016751915594540899171750661236100778875727803658115511944427407831805416232532213109097821997857952915112951018602978514180920758221287364051689002659489879445478088443186353727627195725433331929127986134780527349434905470819405419929298992065134211494854089647025582505447031127963405925170456006034734324762383484297946292324304091654348701111563891818357175835631274022545420215993294568775406828238570608037114474583455077584351684930193385960415433361894372980161920963436143140088360463564405563403125863929933853901198279287560096943943246226188451674389429509282792301484769459786355013813978801609154559699045412967044501614070392237148143836713507383905631819802169675060100260668611444385967343889918440214733142471380699869817171417195885170725716779593155982673055708884570669045948265490611131141852292695555288172924874437470252445992664262738932153180813253813219295752265684019127478834713308062609483823032786136686419807374925414969140697610115847590188686010223052881836346611619908080466191045262672182265472854214334677928296355709817471240390893499465616017127870418798947557696085676321026262404647914566648158470652139446071954604511110114049882572930628174250418089070955928106516234439695793434273560908809713650740590243568902487362512275843481369839970920278237907451312413454821448629090328643434729553508902853804998261586809788060039097272532608350545090144815384441255990017627416958433464647971909436682862308357638723117455095150053919743789429109368062032787081578823491688207606219477510177217022736923799236107133755897940094114825884869632429012451092737628146545780032884763714069724341029493616190933201629771293236656984811957916898215786054530415187100600432283526596756330527310858495763944671697365532361522431002075181533147881146386664455165578280565035669885020487593291465226482983230627776114142668312110372117487815311761797274073700996487027901014552715696678735958686016245873494222685823548901598617998899391637334445711342301319255076450926861995766868716154023014431325135405300194781151877359072187635986121447348946501521253194949790809034440188108483086394090811274668516847844343966922399788080245890864580499570178766268663531516503706814971844429678444080083882519068335921419159511188709703303881564983798774702628495046453857227483822391129414972605145654094702882079114745829950906422173299583233485801713999812215811447589812213890699312004632768030571832079214841880851365072612044249850055759705542235335472578707031007495392106463608918123726743129787763444575916533153579834594138617366268437600687922668360165468997146646834017091006228179389097556308315202166047998442813234945944814141179672940554570118804530811094872307514021613402656723495613894872241801276999584769061887242403056665333658903120334838327051035057354064329671357656617331011934185263236458730180295169081859135442820934527767813453155479984244523823364057337575756130459898131081014658952007055891991775024944706519630015658697227008493031935367855744095694714156312638994018002930196253207783204280164346807392201182487680975710375014461482685172791010338012457900424343689853142602461099992846241907805134536522442214251976372724120236279231303334145084667134088833497437471167889067307449052697587506231160557626435230019543634145185732033264983849305806519518964168609047886510583873789095575287973121935526429332556583563015200182350844986047522728881675495411365507668851063532825726922584732470254027497618572173468668689655459143302916440538796500886645577450380296666819139553797552909864184011623961185102399664849815157779949520367019579603035312812436110083853023442379046524514678667261539552441649445884848825464800826746952634603138687400733620357103655751833977793048334154954076447925791226443778867031063432350385043970518923590417840982807287859836908927177076064286041507753971004949603588360882676844594211850009054292505973270494686259404442552186483495538713543775714480400392411929241820035244651763830732921761726247829765597002821268038537912889213639029246080087546441427292426324948529976190035747503472873332268910996844341298590467265405708829007693748281783602205690396703044073835165863483845029872640097153197825714009369719126082968809362365369172418705645275305459330240726283724985020889509058636253898997639628053265217227206577800745799313201252925827018087439916688425207963165481557147010198992414194068181101954370501607365768022019292974162681066360923033080405793149604695955437580720216949985912489685760301380620908537817258745178522947927912841603768881395514286068750789608067289764378897746529230764464089175343531107829358252074149302411874858066618237663238316165828611735238112912615498548193586031233889527288308272962681368749676777547473378328284664796858037610554873617316557850412852675410688164909334184333979588446495006341845131348157849562882927330094442779743343853431151608291161837027678145976612446567978658917585757701301601005402908536702088853438881359595572471307310553316495975474160600527193980602442761468410254675100613507930502852883174957581296954603557660234784971121849438370562224907545794657020702675287309365396127659663427605298113954644353356905203604240431750977825482719004543103292391670095797660159688601291659757970972562619809944408310076851087564045243558525135754709770046153192547031265071775703909949308845622606385022800576860397817555980101480508151678863941219870965731760039832389191644142934130682994675279082534983976001303118689995796115531495825867776233655016215948042876182163683508266271312973797879241577620115173162015719440176862975162762267937607448604311583951268305206802894780577521056557635776845452222080483250053899767400109245566497568615319027072650539100560566870447243201825072536394070500057010428783688166220968899481683148193635430627360520647689360048883622183043753140685860391798196125506735529455776368976669069967195535755794040910076658155077950873397445823598937529125765462492111016566234540139246406705379791736885283982683097250947305711514793003938853322563128615363653071828138540823253550763272104721088194960396095320853134872457232854116990857746178476991455206238555088975360784108277096949861086884133528331860943063032471754774355592844991419989285443708431895317504173070545735780200521271019675517643811523246316251791531596669637124445728978900131610828137637878621318240572889516813252116219374812158478400613133026167620442526360675455117662581470282951910542185491863283515903379844943441030807444639915315890634106149138254221025623545248301996766583151089725419010420772690300993754229558298352971232476928101408393471524031476329892547984463907216037723849956618259001068083000547182254206736317288346066174312452832030991548989803614038295612499201747132875739236962397936274201198097147840043743132510546252667095202611339021143831715276813097000189406550426315750852381045024665723318298187580824099799633036306973073902864977243499693639152951097044464093497639199311206803971318047179461161249605292150856931743145949245544436885913074814872953216702498928964105498000648835001633524017884017583723454912351157092594292720599053108044279141878850550322089384439294505170735367344374185264659261137671964849390493587677157151157872412885358788883040288277866204773866735396335452319219376101262639809889400423988735655261808299101315413715485143852392335256897296699280491938380785417736455968240984129306540871517116340998294960905111117426949877296386094040437255830370333259502571450812775778114304033293252084187008621500563761704374153707429910484881570894045716673616073464618885580063540377449665028739137218408481969835435970055627455596257183699444142151819495232642976145576320413473836546843092207653145766610488610404499440691246884402094804562271595636886095015352431397254561432466981532288570466528313428502029720678585944935802410360623432539476762220066759343401279818838673197954370420596200071595200014101389363774639851528318187108049710407663682818270319377027105674518890882324838697002276769056828534127993486737823734047022172829486223351583715821692764019609029260859868055650308863824525197311491948584519802063618726329244045106237447870292427857615580733049661836258961019519705281308497677172795917130896160544612042236202806998311352581344268743933935304536698797440370132537881980342003429314461441985751804215802899705184312887485675036499157027044908565289777092586736019912758559350932750375701570335894309877785664834605910899731868526601258225289923084431218182389979981585546053752321997670107874502488230440864757094391280858416954416032846616699358902708770020809755665123658797835603572821152355278109829295727529575772303247591454808970829663132811117151385759683560099928748826440805022252067082777518203664722558283257844153091208507932666974356788417708805641708682550138737579516153023773475743981080281249068638746192431699981387543107275752326561340500620723810719049224516197459905176100902311723575039156417322322790569847345564103018846754320167009608056686190432724729987752329629054120167187491215378428491761131802910362586263314588159591740820953680700519870347245098898930408118166044118579107848111608675216468394518089546601453462101197592233659323944969404589302989617756820604424568446235414953395563820591964219635402880982212071616947366104676010999664218205130957547518827975248443406012165076517384899686083682861477610748068745455077949001600188237088576573226988440691407348177894433255310416718241296258093444775535773185134907014953106598045585606719032691369031666774351113496624314609691677126368549490126826548851132060267916318866928846519839208753964285524987334957934328400725797859184844595999285882232095359441188554059550207031382507489063809675548994596360879102905435575730044666658266261909877389456142370918131345003632707043610413802744844512431451293297825141600608651859142201856746348675583984336037843339456786540970119321915119441587817072289059492328760259099849582217523487005975565402978320753177609938242333700915260756153937092985117078592904576434233847687353478415780694456637733010988310108113684328093054790098871454637039581248125005778110841049890002322077085653485321213788255595307463554689593167640909006530212559501224745911245527858575745229804164088744246880678240323849014313298631700786307510092773338612024744977345477466185135686686170734216546109123536668446480730327406441649552152151736564730454765270033664050945427342049204876631744503809246899679762085362705434970450299311733077757142119145168516367910957615302507763313461527524601874418506144471739396696884550917246275068746697821090758879984127660940035621740833572004281871670736620071107584190032812526138976553159640160907357626453301406273898059511488921303010679796054415635325850884778642724072667663402945698906751179252301578213264031591946352220477592297031527532681286054032020292842668258223635510053174219428763527089707348723763017314019006151891239599965287149794930173320298347315528949781350418722738753775239085435668268388124862827526987506675494105484558672211645351648371867260665873828747888131284843202240574440312603440115273312610204441259858527769059807858140885747529337352444176233634655044449360188646315213262840654763664131507430361009642427447698007343440311742586055890073963295103931346461126679485958902690248630571222608869578364114569372488066314816928381899434466435939681747289768915214117122653887967657741688418642035335800802814788129940800062513323768842347081386202579569155887434816949018229059475157708993249917421708668070214463323185803984586902511009369310290160784853443309442055998393791165104355133666487340385900963855945093708824097365697877093187271834497853745078726557797682229069237088613111615848593746628163460441871784108423626871204360273819576233162255266696995915037758776681633939972582987453473850497273688064219327242937048682991044899688412434952993742353348905438564857526342483872645115618646575611712541722172368167243249546835494592090538130115790663892046731182773958100844009933723730807207060637534556615428894981438440212248348229467188848413551113392140300839852088505999935893560067692471861266001098151580088850795546742337007897257509240475378099597300311439524015714437052592462986953240343753209654878561798914226382907261595624406779992140267567263132611080926772300098521382392197200526583033196402017619615825629305134064598424377618263322235452970433938594970103857059721651231621584621363279151689884364794372204562178065412824529958820529920297594301301770247876239249145919581393993689261016678579761442303346648514247776028894849583436421513964059811494724078631480682168421636356608031897132355043376937053401070245288920199092649446232972322350212962287443681717537338125575050076498345199526154743752297253680985320268950335075794944342849020478582447708507138452753839054777251476715390765545782072868743490610122405867515098600758815710659250002554343780825625941636456172891285332043735823147228907381093725383834060765422310823496877539833454462885710393268757843061921171529582579136221416112724966945394143199875244838314953757431255649242509928592548444014784854614764260366045650461500204840478909249994051429827076290376618345320815074583722007407129634857860310463278399115494211421211136731861249439683006239923974869905901296871149479540545174773714881075289144871927236321336477452883657489850194981194626138918189736132090987817074963702737918328069272066288097529190240792166237770393344322568935167104643410241382160924465680476780485244706607739999242331246370232686905470669766697155474923146338627109482761967627898186696644558316991297007805823848078090193894994410984473136002892697354262557117549548479628992687604893826538551613966669287383321611188396260546217769417514248891535910986521251651197211566695778792619327509569657589726816664682604964553224396156170879755169100084644804607963696057649304814688329937108743753424366608003666595360653804788727706903238906622054225360959954682517758903936892866315888044663370331912880213523864035247129738960423853830462324341328127294712958994464482397120098148908005850498855079255166596948125977420685762489136181249526464608587916419306536131639539335702371377508222424890508551168127639317250746210265508414599155226595150561127895724461923913698645025438943655521855071009251504380661883818872525112499497964401016441442739145923473133135626454003814054860772885881042420754536974815979451398479753894059229580191257536086818322743045590129987935000572311015965839272121911987578883390772588096060037943237198704551616148429688307336086556326806245619504658882289916900096799127639464156802146415332272076773965838753341311315123293186547430434023263127168294324585620846244981698683551001281513628198159583028951637912676081396125015494371620022603858420186473396569120283266062291386759457914492906532077847409003498712275596703959899842508279569368178149134666454626561093814421934570452551420320643615011168380615817714980409353481415901755883226076141310730798539399628360926989857468096521625667016616497551541564805198049011339327254005477648831143827307015423249241818159947405819984785991384981809680188543097929464414958572429001808112302729037016044735154645192324054330650512988666448394129114127340691524573162375062926736345733112518580178140802588945694486692748687151859576326526898946226413288713657146788980560060445338057370331010114344195069197091000443423525027789328875282447577905409567256052195618213941551618477480676595184780484913911712239199525719581599389128019752538535927454636158799942555280225883115836461762651237812051486398944736388025216022227550748591161504807135120123243363747182688191456652282375192128515635671778363514511433420348889746561106126023868327553192183237112110220097681515999506502915614049514246584703837354109374693926209724016204102268381271093122635443862962540982278939696605426640186743070144417794663912939573119487578388842780788350267976522346301542728827938329255779540091216586884996814056017686326380308007084686199780482811677843305001621798416408396832270030747998994454764275633338658969347070051222119933424778999016016525372363910384731979576492521918404721668010166731758511384976631656799588498273058203149740069908987140378119209809039728777661030852637866236594594465222612465221896784102756240012102432052428158215319815422925428746772694200610474965383165709262429747847327754696647078937959457962372211258403537015674394462180396687819367516780360663708045594527909637023528554460226447276710462842621192946363084482540508724971569216466796650085045633873582546467268841867510806515859216267622786977393159261938189981052495600464278120655443285548740495098605213836753005438917939988332276596555849522206825656990613547924610478542143969770275658194585198483164330030806522749431511023851137643393043284347959992258043045630957671415916182266691456570282017754113187502701893031734029661135042916159021583939745230083600704718022109505527443609451564852312205787118530140659051043998839581710662299225429207182452640095026097754821932816624447549171562262976220657986634222334487156256719903360419376495858199352822169144537170717218984833988339428859733145958719030040155786814447019543740268625299362363154646724976092902821821339105797852715971982258777330768260545995122861327187137625377927947906761221670981695644122765953100677881887038183067507334912030318695038741930165712862787795145661373435295666919989281448662535870724442172664720541163334150904725546716449938471204684128355169294433061667959119498329085242997664187568436281771763856224250637147900077798185450648100960376644467548363371928558582150067445781984199187997120186846913205543555867638308026786839590056379464860072091467563103062792363105009702467553698591666399506678914904126683352003431297326943421033828162769975919359680735917775626822806155439382589367638809717948367286884539440031508121093650299436453645823770330057901646670820218670166827991752406162420480662018509953916619000581200922665401201546000871248124451372600373121217666250366152925606140901570690426266125068339662144797990529690944512410769103888787545189704737564415043301869812485836297313028428676561186180062706904879746036913302369751113666834953594155011398138656832392104154608883356713949489523038834107483718496670395844526015487189602434552360748469738577985636167876550512659765685889933867763258973986730815916799247072863088179021668485328976422694621397167298675250610218661103948407721583069495369402310187256571696105973420911228017505729555534926399889715860336836239027298537921857987595902719892782943929528376224841134348303938463334384898655785141065800162766067505173586068476072951699664124857263206357171143404938407040655810660595278548000592897940157242677734690449421544311380933006846974086532121210738456210102002652878318064854206406731779818850889133380381235731137129970029491076564105855219671490360470676609245438012375484216208018301480851842982935613251700169135922358488948631825152433403958848041326298314732372123516218935849570553049633454341771283475064133722738042469028505206129342177333680418682466114656397993383816719798720194348820562261534628058210355828632521355446031559921584283040738658523242539239057174870095138050033683982927487684417424630377831032629963864242076124096146395285053986290179320912997202478903474649242187238091550620304479157766871034681138864324663395044288427603046921302416317285160885256336718678154987828096942368778919211735082048849999357215093705143701246262621560045467746912995543694019229496270684151829801348695973553818824264219358212759684830133569735169869153131071186753120507065191927958293619377891313759827050804098081194329689988295537385937857011752193334222113604163446430856399093621520320612729166142784431282412472567512218552014792067475824924333296847897861460382135069862382841121327181604001143193744146244694885185668583834529545601283682326046987741604651716755960622765482291874465031301453500503719180590523433255885546238854669030841692848817605147402859326392098580156755173884536428842085748091105469965226794466716367767990216075481953546164262788203693522416414341212426543153316372297704596245070115240113248547626394798665084628383154351171947557782224070239190380402001856725078111957635427987188572200913483033522801524663603642863779921755090955912589515988457592040260289997116398547225040720707297216699179112392817715598543779155268228407447191102955292503411301112808846164994998207080474869891137165572270335086267685898857422698517032135846543096399470872340772812677748242729158793373205056729804759461289228210167315745833696278041638821631976350025028814880899328859588129021956105775244158476750587803916929774552326826732084173591574016771591881473433516304374804706014361525276055189582134942951729062589499950057993019460616568984655120049541991089716275455194470486276720622078366616100677414148610763811584054822490865503997465653083509284254760622796242318488876826479564001543428208887536932103572532835260118309236112656193709794384921573838163019297108346491552347303880081919815086172070923520228954691621445485825907285673996611497746300331084356724856192329942862634607386623955598046001173356752666607557004572576082534981384527936117211333178277971508506697329739598601136075188067209596049694629150704529582073991348107871608662189541501353588337390885732273471847486485588017292809080614465300417071691893466714332276822860610487729250601686545576265360694067618763213278423036004218728568322491375280196407736358979328619434040123927538966733481546803905871879684387295860991161743928801423856202865667489798442942718209227134526622899083296503420087924830904829889986549196753519833374895276051680627521609532510511096712279346978605693425694814828070244620827028664983111141410366829046536407744826284926075517590021222440550701069740463543396014532824797660420024768146863720364241238297971624751666129958129311306248622305648223178161231642668007346701413811776745236214140406074343408628257918986209645149704199273196242428564987298164409744690404691353335220573584590916440411573620740422553582473346198738092058846129259719097679782653931864093072082354330251868084386097668587380527243901903733115382837738577127430586202795927888236545917737687784444747363845151290543366031396876931495208539373678115175733983272774279182636907902696724686124668870184985913315115761328700513034783680139768021946059965913413682544733991408907569641816834499689132402892714627375242966218560492590192274181334939130495620321974858420381770978967288138190403297386568535189422127314972334700137577432999111247487929540657954526322278448846657306664448725515423279385746471632822980004101831185156904177598619466074994453726419819631394333604702267451685946570429018655734801784078282613495588567684162162947775117506008739664503932138217121691354769859878624404194436878560879343356099566117597478003285955889489859314386291166026431758321458902655099264289388700966592301468752631168427540994793238313424528216520564055093029518874958799870918866555418870129975578326517041484836686886345322874921469274300924147164921694914793596264294476453794229999350421395295279853004319147151925657986754748244342368878458686967442466716535756474584183940628066798933670424789345651859686156646286432566505003645853065795804921612931040495988982212929387038740821772167656546987050622808468276980125498273535260676157824743725456588117687247373289471557434333865157762820940212838821694315238596085031843417964444093455521715559640645197953328598013345169645700306036938337796513994536641690231286475430354087372943938446448643019736770347846617946055311127937564228192125143497209881624532947627366802051122434856844132488382977107855440046887844462303388785544561710390973209670811895404647760797186131588594381269319554225566274010425720996104875743125635677230752440381820137630581460071451735217699192731751762024391439841468777571882585234787784957383014056605768999293010378784301964335149226825027978993811367930095628238089829789178363301067924470343090279039264211128423192415165017587206311341147719776634588114667772066908807251622313837092159440681732714949815454189051817602669902619631539915884972721199428108305135193735618413515558620754911246991262786253075158723940269821840479414966280512505373084613750834855486333594584783532345075735326291416798471799826556432553049180169514353488616888136979153768298152134085467469498850348999241872404976730956551880762435162763428454960611094288954950826231186652331622502150064082734304555571990625825715247435996162119127636879423838096283038126056609857509809778352366589972260030842125213255235273493521080403718444351364873100001172525126493145663103114245258680786946744572362099209616470901877654664658674192306249247291658131100018046626213559515476133641442963561979554109284971670932496212591305261087460520250204017617534500521749395316668727634784150941310892600716165426059568061497209120414376912297492505011847779293664667797945413711728907219094788001750686605221645133787616379257011084165315899884624773014349863687461084541661554724535012725737395993317440368704955843547632846375275919249128342989901361007850194410249824466265515520140655966377492762035170502913203299803645699971812227185969161744910996098462373705720465984358836677844022703138730376079802784582942578576669532945351247482020771304774093225393338316381217681872235594146273769709097198710577407440833054555370232992191256971287555784816964793655324404090316272039940310987761558189519092472355386249241819301338485877180212936067061829235001257865734976052857933256880033499452072390248213160389615834964476438369573518287984553500875503873510324127151248769994552046360159274841454534045682539307606404578477191043065822889945887760932711998544103882142329057804899834158311531090959565157972543975306556716944350079499035811568866491557707667286296359681991584263630391157901029725927692119450028519372116539686470922593250617433053635243326898889054702862245274144465143700138707952003751690914804454928103454334827276624632110729940597555584645582243005188301659254172987049864227225142897826955114904208815746245245644670373136518986008057628701196345191460348244173577395391095739490307075288906885372056532784833069298852209954888582414516823234956708907102307084680852973497508261841168733446755858668632641964118070961361902927072253087455190025135005930900143490032750656272303305855146384973789518052243289277743615262079739314320581770020916121197446818869998672210598073655792913081020709648001147170931134961150005184849246795585806537335340744251584246338382926417233936048390571339559165562023247517866093165201987508685382338806233103045464573500410141814061551710681383731790054052900770410603654451606418475340134533717379625240230270389358935334353796400559882106012210148752346298212085441289566115238993300298770190351070823098184611347067158461246728757090480621597899505119603262357413079127481890350441886585639355207458379131172510751708002023176128318852146397660394788806036377209496852763676541074448267418519991540102938737723434004843687637058067406187421281753070536822895133914992059539058417384607795100134823143933880757296279491904321017553341346016773779660920109896955198035739162671189667561577090207234528129715657687441899016787750093006690657562827164964158958974994630932301015030411776857761252330856239525535298020034494355966360132630711120064632086518159083063436442757200572451571640023994119314400760351293468328805157579740721806383614061469191806410997089207574505284902204377593128352707056320266418878302856214786693070629043275265834365163285213384564947820497978414393424329195331173022960237476638786271978710129085588730762114240781806972925961714441742265628343568502134228030627347436763880696795075524578453693069254682685831787696933521681369215517653109510889904619273518617314048198368837339681471785211822442412865716330123893700659878054470019271602754672411326917852809280303652830018870253079497017514215582575199230315300575399468083524575654979703515155954301752916701910720792339847658618378322540694994428684378718606113896212026412040844188138528250559419836898594736471534645468594406515694715800826383189175149197958844271473017488358517800806602597857385638667688992714156229321593001504811595445893412126266733102577760784077707699073987840010224773768720786782717835980939911047974287426310552837645192453685039077403091895014399507775141400052385819521531705680598567199439422141030908662336931028663703778036512012068652390133416981970890641136702757384443465999184583953193673434579167253572858622571447847834187983026839308170720696313850682390266774486895203156345132997723475974058177156575503871060927352093787024846898685366875912108231998061232470806598333500367751822433135213145649916006934346536985932621328872290076307515255255750066764611454776817257154873883074958879491345021818002230079159802842191379105833954775831487891982548919696866227626229892799184663391549225853583099333151864588758962438971251432628900924989459840900145068053937502792516310996060967033978822615216259301685216185376641342477292087560901222292400561903958209892017182784204593101746755477958781963484927737617554168241390645612804875185239708513508832286266119275209484201579844618539013058935435251680918581581036802653816419510368258764435553244076225443130832300739726206864073028249157583019364795880052605039624641451139250571617617869155028829023291626000987856685132712672728106641897643571624169733451745387185712727746319743401903533050528538725062638644599674489194976268360567097591416937966942276179730326922932688942839700910833218992285782567874042558080502432227787640713159191535948100523534262683715984845462499884786475895336195339593794548059172195434447796065125604244695613434104456901547625627421697120377127612380132167341366455512448121266620569514962411078125174689401050944193256862134120142756165223695165874246625667766848301061730565635539864362983928803653617052114040795469077269457215185254660719772142011876775607231258004484371183610502849354088603847149777741833774097713604064112352035802993883844531547487681749616464362465251365424469753517937515623142149090274235930692253531095426739868002590325169161467928114473875694408720133702498847219815868886832767669249772261264562614429597959834586497447136516490274483201315234250865332646602029576013227699061024418011673467610146108114456848651865945036236300439397722933847794398731730843620857148741516653531438884724420837652427025246165774138089363241736274924297567756894651953789076105019664759151876354656552037088547568098093195689317911099967574026900520885362731949138338534335868094917310896305209013017395747461528673516891834161631521625144717066836071676216581886191987832258444044249357126692441510420047749648334385178381465853992853972266775764656141492638963502431417115198039601854303229380389312819852259765226887025850369234345809586881046958885340441705345081177371182562808026319671226026425668572696768309119607414392357270762939481743397274358245964594091138848228883842970739059883105628697114076525695175879504550009995305832268907195330844177424730346012905253794717950893856286323353472925341585923426901179437493633965930243087757128831417240177703017436576104940927461746471820193326915105781868253865571494911068847843992943804602713527445058558863501891055882570361769510184442343882918572422169928530145565969051279409539015598942134559442856529965022157500295920654447969499579836868400309176853580369536554217405193411475304107006055387822582558704692949871515155033092493401378494246329524568207350204577941093604386529279992536277668591838501976139222174160275984232181339711018514558002892501223303531580524090686765823352824671513091310257628153105951598922187021825250444637174599956308070307519212120723376256154649347636413284623092780459398259680645244353044200555487426890333362302432910903819793006671651858765197900758320848399987590862730404483849886754621664362835759975988997923486491681782922766543347359696831465442598028730465595914722027335441822756222774680955901275040629158539712636889420392677224828476176792341907752040963778774821956592905008970199018202103597545479073858355083930996819847923040716771620556487331350489849963471339126862844015672942051700397247588802771735120839533533865262964799753250705482479188116852108789422663091485340280015245828623906324208779365268416170502663658360213482066760313561232633357347897624225224946744201784215858022604331537498649191193034634696194102587025607679002136912322053410002544009384998919108999087420984696465611520903258766198298333067760157855409277127491583463671189223586547068440892850021105550162448533647053096923033301630066337914821921133069116206742902437741163160326452558561696073112165060990071969373221772852834018455071076789555321327304687173240992141258107392284276065472522732741479526822352560996701978874698525777155759728670910778091840290211998321186686527028927139359387858266741065764381321672543129383845967022840745179602182482147913362333834612375651319977462517795893039108660153851271947585221014446508296400111648926882431418547401778184577520458161204746789137898450642937292387142187632774755462271465963498676414732050670345975466844743618541543072968718734270454131459921366274966605191082946772369473833660108573691761005808923223415615593849123933494088296358502124099547336023106553163352721100940753541120156293382476410102330119068982160228221715386457765190335173320791581437287541819071099069675821481000289639840054530979668037358934381821716977719283931003188078340894870778568597215406912403646239629987817727310687745297492818108056072032915361097902762597988530955920419829857149612508360120180734836304600161808176583742474816823979920982716560881750212773172369420070085503102940851965899420385302894804898303038559587545651027135992813697743647819845888773721958846394980712939810883000745460237014796780296537044999544087729016483646797354472007985324252557508036130747969413309762524396289796787327069100055661952083869523258478050374521789250606677411395683520167393717201075381165251485697410038398326403111965656219007715318689510047207312059301779750098494109757633460278713907487901788661237608006469615012148202440260728834836317254478622736300677208828694221301057844253833201302531888278183174189304714940912565512738312642899048471460060065147208172177444669448724696994605910882246360081517459579867450555496955254343862809020292550760896828593167477958108290287526896651169067873632196914365078070799135269721390379146496280671544905506458604452515125526783382778679589176043648145789969149509556368838566620554836832004282394284186061338312473672474542658858247394834876269247884383027458513187778334035278985425426314474683607574566355073189139736426416875644756670973346398084304870303980816624796148647788252683462224400187681894971253990172905058458770129949022781102287510056116699595260647336293215744855614787504609752158306104965227270450645460775072316705614648604924189227991522800199513801221090694532516263233220864314673016494998399471206337276298673477547892137921872161244539308032026763279559992470476153485382698746413268298992652421755316917628805531416088813798823651391777619207170588000075819808108886453807791230509119518591731262995856987794363069493720650571486705284222227696209226993686098270735099312423611932191339452139830484798636712477960352616068031177007668511952284880851586231041426542127041952435770145617995037437200977800951894014466553823183147613879132766194186402423077177543247208780387969332751714014698495406025135134844767283748571851317368492092572658211969841096909650863769881757751051053913765526089266953722758461204913385462595706971981882651423720440883420068291289175086744290155864396400577328520931079043882804391675458343406655922220225427578577581218605815440614685253319441695454394076128405223804497189416847969916781889706494282511455249564585955939270399180380532696919072999634067220081737357773014278555751514961586736720372080799731553295651578967095489599780697087764865055522259997610028662410475116772213947569996877770709259974485088775996425696878824587563012071813713735091571836192752591860484929813582661361311112777926976351553114707792453731675678177852328265678341068725789814061423203164176678928990002427320727412780457956134627319116515003162292064843006134805387591830141557547054453983078315077713093952117431239899177718197233041518435372089689222179363459692013428170073512618468184752415769563731337551765777719400799748354912335079452684440370089832983729753182490038705927790304295986624604983629826275149102871184646186382476033057146257034024711813363880258293261427635042369030668156285843688526316299146853643941897450207356652082747751177436309958840134466721184342907999608183545129042353383456610021366984684951252041016772977878216764709594084611565701299803529033875340818046836759405183068555590156324687497302626032926588823472767771860422660329840621754858366532061820706860429170997547379513798024280084804173353665095955500586044137498303674374539573940231718108145041099869430163738960026039875823532529521155569599973428790054027146952618194214286696425714210924494416787381341050829277416474717460102915407863162726070598171755802505430724477814692528927507582754560833188587497839859478708626437918544323350699149544934654046679296599474084463108646745279601975417336727144565448188892529840117151647763921035322878852937165413287860541791663642771355959792609642778259527919969615528143477942203829692481883020506927927156671465121413784700991045965629989946052040430171407826969930084816725121810023532076990820911176858119501352975493298371976662507889371681532030401458036006689314296267771615311229206805714369376057867571701003354274176564918824446681596055773177930076566788603589441229493450930816211128936425438785572344482616766677377088139422643310360278909972522623360543986505235850579345097901087771826266324552441832807457087810974454447420224045233621642339903683989938257626167503564554894289438718592949968867957546520298661153191557697162669656008787127591126921947531674369744257253785854568848815749295416272428045764774926610007533974970965802525917515119964309280429025975435241482688452077700558586155836960797452355643483471075336930003203100609168119108982664629705820358073344728556315012060232400799329429140163379182917293943982877485047481565921240278755259076238143173411702777821173500472345067758900666817097742729052233162760514561538271101147042823902180355650287383737135015472365459250020735108301360165569563096253103161116631133959934820594966175243219850140748318190117520238518858578340017915981302030843360842365589194122382323724113474251804712149448499613137580037446830015284333784263305998558373996652592793747398212732323850756315623779169484991630289387013237855198405490028862453548385070060593544173312638449604976164746447319798687120316845321920388368625674171856170228727470041981430227948170844347836243438428309147880550193038498561207786742818519599075550862648330479646619966719955253725944730720958947328014657965656579067165847629149053493145664306336535532770368410724578668162298837430638324579978608856811741543989543819079628316539070733826602146075280375478676555374662938748792165845307443548871740259499338869563936000529612663833341449528658520474041376127937810778470889356650872841176418738076566633152878193651368025467106511169026938802286269639827630157448811313972609233245936392159125597455175440375554296918033978600173086852379306603387572333055113339611656832230059560487930408363181165370235539060599181283133295992158493786957136946486013702001586605214436682599782077095533434212732677607063699328328744204787236838548407144332140489390768311741177147092027313090696980803949165381738653060987491223276749213686664464433764900898158045809457591730466162618490647548833116039443414356403290963874240712035263628943974507817987863958690056013452040139548117829179633669085359741612676319478728565281899798296426636451963124941891459192399698521378394173370417873501952114606101636671886239069602092373262632015203211420053052154887722923580834502501887070883664014710208431513383073132557284799958575898877986138633555233053393163424841302968651210394028972898511243827176461589967901248885195101440744707555501701657033563600838398387763204478925194131350903466990953121143121904491814373607358777709717881145355645572846441253226546659091277768189325146787259661446214216379431016881141006104394130304837825609455345260160573532146232180263737759582258163911593637184502950497922552331555993638533808415038747202902761432609455541383580678882192571569465412290241945819351498851064159047179678383606112553316542031065880067696778998003882661365980599042099601647613396450539562575904223287929408846857630330015046130663897193650275771376428858534363072779636504393294614608514656115779608768324889131728827776654253105719683197661781313319547078982229133885006819479239768621877874330599292085877733998829689162460825102536821629268197050000334510286144256597569578255949757223829706427681271492462094690166148198899663512620896849533018242450396502455970281078856851020745159392948221443321887158125264988416546625298397711320736266759559471998312660118133292950094025463553269898982522549787569010250960802415751570439077426848421569129104615512533219192542066132008861455905953397350589891404593374106284260579787126021492134858521310924873700534031982755529911565825286897431611093384850719175410336174684155107025226587230379677351970564203315356778661979557800685589991938628115023891863491777129415138497411327060437162422232216241213693187866503198438281524985380652989652711029297682957776243834322643850098343055212691685812558708200730567432906745286842270884643878681159806855786971111984791772555519687442568118978467241399454686601542353016691199422738659133570620462191353801324007389917658139332170331775152936888830309534798496299297292742184058302111921504935708599700120531480328477555385930372858584242256631579679804061039688431231553192641853253811017792192400394185556794880072311894811994068150225225921115352910568602578405914140891058237244597315083688590602303323338287135306610752923061612655089220068296529971356202520017029103030730018602326187544890207095360584664667635787910824591903355029576082074497264299752626574934574069957981894472372139275111433887408641704917491466468532534636194281179242667419393932666056529933582825532243763302879474061883904728438394935040864469010786009511672298521977792363692495447399010693544806568973885378485424556672166007936227281459523822510111120559543800558167060014677238659093930541665991994840869720351641591349227094290940493417544050110328740731361449368363630579548935931097114356962130254197518648218686633795214487693452050997813924710905965804585976282666073160551447150513241112487419317995329519078381362914087280967004289704356938737448753362846722686051408043941868104617993586572481913804641378029252129529967183118362102289048516707461303280189502176510532568316227228865832750830363868981003331875973644261145714694507394073666515991703128907202720147399949051548996051237857511855060017556577062662249723388458775094074590377593816842727301230434817639107168301148397504134307989674243303867266193033923993535687532949202075450048552954297598486147954251513110948774607913921883998035563042680874830892282717284947739806942971218964152100313099126012810055715841928645955786772332984587748288413582362516416810032166264459609890539293747546396213857296273150383301673034200532284296399986736237554405355324970419996917865770717648820721344444119734092646423507229676087897297943415794284462297025607521580780032000143059008709167563243044925623998265398268969365810626554461746845875868704284085688821200638093388035576848734227034641487145544870621375053139844571192549789512105463544706381254962370469283283957520327064100850051428244326177090774554857614374517017771453728100984164205782347330860390693395527549440883364541180179175248208741905197158690161999951828332015456342498709069156607687359669946693561410530024208407950869140901102198011457678441156744792929307990443579932542544727534772840637298238934428945312795346711399323293388641280629274410774906042136245358496901394093503236870896774755276698060979656502608053497896614976404670698573074023927637197691940922495851260011952956181839244562856652381282662440596626058351533118730874897124898734632229618158057968122765916154195275415211910117561480570214518767777592444742605566060908590353381084657229533495187048821050916293931509759609181809971448659724963233712493232699769816211678012509453467468570355588438445757454825008282258132398374318028731602270751405908132917932681161428279307102239508102173281112401460703918709402676764443892564551132195398149936301026661368534787086325759942651138086469334647428481534632335324060465855732966452695295564785362684861281909762883773927817019298475942481154845820656516503982179458476941351407977430565041119003689292101351521940620132844145596834080911229117133202165445366540784226439911201828552044883285324776949147710288461658822735808374897338401772356973812387915911985943664836198147060353742165377872569974551063798051435852906848360526741907301464212238699600661546462093140624956980315688995154572795144432218442488681739779101295216109052223166521523938882931180823413458554532674796607688012534208198886774693269123523475655991586670573170340059617774941539163645524143399665163326727061422978705794329777563950266153697195344540366444323821294512821157547181088172078253951458865371887980462246671790282472008239504118930567607618228694332605306084304959076238910187765805531404797608875078629896129612240994935918182410696893060366296595934538716932638475107004437870129842353695186645928905165306165271154610160132212060018784910510492077608350744331158975378892573435359579791947336820662762639156709734853573189717574973719428895503179809438039012323229929856036082910748484912921592167834095375735660007038182099523401667016691446627338835235208994964678896305287571009231282972433651531380775342022460150032491696584995839418635131205909856788962689877761155050154974270967610363471195512288634671157203089928404994463311938107599363905808337977453110846950112199173929021824328759786823335080491249277976858244103513951777029965847617226539094085856605166877568015073402893719153543580521436889156247284287100208506133126866635848980735636372147802639057632237514652828103266960036135074395126710607793526422796476844711178794941501772629057648515236142386240031337242206638159454153853166119785759515358995539979052551995559645839731283539755963835884817535788677476644428248927276320027423518310759543563181779776183912666269385853328286076500594061626192934942030116693947779136537188219413948738706434409289680771933893727847084428402056330947512299662249161493036678114608938154350065574005875866455647427424527726734711016751415695902277136817703772502079827494413858630855773462023855798284542995813299189034716697259495456319929255911761162623644167274094656602684599493515740759256783505237314996136214210768321556532296681064277934834339478100475877223673344531288609357502443415661391434186916665554889950954350142775992280995198724455905374416378324253345158353973203342807653119652872094366823224520058561219730273114985620101999333495133058794704131957040583407123441563911079582832615634579862131988164715778791337437693743738526017588070291368383487947197110111112513655861152252650446765808348278605130954920298591040321111036444283571327573809824196365254938423941621901741067178334950292392046462304496149060226582726049069259267901841522830937043746492553009570703320324106290570487780587351326097910942600273458834010500397777172558894232342240003306844080886574081432402888495490263464796221523270232328407382178426613857079517505047573838582540439990721492338889791429461197957271265944130315984971442732001751254917795196273963337219933281414794203350382445637058658996534090649831782387986006417806076203194240992962562555765551970940524079558547706841605631706767349441911601819523947586311591868481122304120198256183771920868568485278603873130530387010236465142960714143027808487657532753423998163150190966662083971933506243912660767541552701050925441767777577703939789783737030984188340008522684378617535028774000474990372170875086849354131213067700029620988905553514758867698722942734646909257942016274206722869038635017053230185440285443181829509078315729366400527077908665307183923890881735504984862579898720604618794838254073260591422465987573660247850979432812114409641477070722607241211565885667385151158459266580467533884834728160303716293566558941898354325846885050621793713600609750175382647229711331248718030904010784132174303285644551039038695641316036511006883473408092103650878044574526363971751471955687261766274686357059030111192807447402702649599529351301831574383736497743058223295522522564082575537643112911210000086772705734283640450310225286434219984620564476027658827449638651217480555708571745106729236917923429504454599938349747791175466029325962386833409898216456408621431705087714932787623591627330138903326433740569029595030689884453758859976272742398903189536948371388286513794552092116359689208699477132589817278776310903182294012773225737243607703942645773349700666072355657837120330360523520188827939926790232500208606894996358852360338478018086266522272535565847617880191368288648048814420222805695502981040335766884980479790250858088704548498139464851349230316929914440325123117004610802777068922175510086507783940140397574347830220242311871602139090638111142757818190559129245656438797241410765286681835402058038932181262485406160146951866157591580616938738018221994504464101016144754622138431215501087231218937047624046683089275937239987625633120572054190258516378759536537856356549366437233037689361478658465275854492034271067599822166293176529470379233730688989437087731411199906601699011878641786236266802591105110717178065168051159100690796651413506162069945203500146812321437238047576518728288731626168029801105451470573924812695231532788299251612572666277950254937848993685173659679283227409732692051190103804897269235776053387942835109379490758688231444749640471567163581225157329391690662649929785425995516107547179702573603201270982907540071141578893722969158401216880483694734934197390282654749313203246197580439074218936527496489097443567353417858526395917801625737009237649561551303157677971309162074871299958962837727052880354195925916168695204077600928248782538017864900604709558460773091746410725622781026630257590938532429611291658643434688414753920587292324048320865032574670247263369468938667019847808927100239968553751176319558444188077815225634521979753308087444497748031816725881643829102134509130223185463562636021346182777887973064884104435109770367519195374687897646033463207922890125611123454126959114665104789910112200627904362805044788158225233705043474960213247498064634319215865412553574838055277901799993501617984139095392146084500866324035460908726403039129039942165394983808355432627791773106107257217159993479970126071248190946032864787531094557698182091477909521221726614963473347104740780031919557194069549551180398185486307192299732153020308706782436495719623586898710534887193714032691484182787116596169389984561315105066349337593335445855159449737338080874263253802637856105699096214480632227172576943783076235573044535387821689154467060545388384962488984386918173111090937961509164559970105863800036430198017316267871923932518347304681536790931589807367166311018255943423401854400235719421132855549655366680505139765209901301244505810511839860361328677196436863668064170411936094373288193308380174241556428302161479647351723055075225810865752869381582368380905516146173815400993391250073724077258242930151403190481169516556231014010280691637293051654628750036196445082981754373409674198541791169750115537414699976806134920793888871174429227780017941328813088694495981720289773047414265049827099272069731907174670448871640622228225937509877361223754389842018136574707263500708047605897268377117153195842898022174541010420336022840511509435349122665349371156349234474830487965969678725502612112559330061832124561565553946038069869891667648526264834769496638748377870837653589656493782569136181731254467270618487278790192835214353142936701085130173063429911593886943713421637528564766698515453414111245919297600766857671424676736827245421268764482719506824571845914232727665011967351941582927616791883253533663396269408842790604054739524992132634255502711398976073588824347537404305093139278767400292799988441077650510197434053608388557363442790661775698308322339643753425991461857525333438843233002249014556925819769242930830713361084669107640551543011575037494798444862911013273274823305373862073427054969297615667085864055453786076018234567143258231077248443526534392491549273059929946408280636754389899919135349324177589112153434157100693441992426123414677036125936127808943290794306016964253663699887781712984850438083661954155529845360512468790433776083690642315770679215702542601220680228868376484734747671280095754519650093256260947546003348435204046237805179921872977280760102617626831466833148864061902223705193758564151662719238439957007521060380794733043827725735685436441219435186468801775682929838572669009306173855406790480303463950584755854813176851795975491941470158702309149932062828217135228195527934449067630601096289334434901915382340177628709553496144164290927613743038938708008038327070355526798577903132694193634193812989083304004610619018322072616709342847301798937970188682994640378832235146344102387608351131182034858214397260166470480454576705291123459623069197747977250025574285557611777144885908237988571118943995539733593684878948821091807901824197554555212364472844187484763779743177144396042219242728339605135946084359067234167007503291115052850485334685599935185845068475049981538802138143519389939985246857314045300396060733058229119641758295092993328448834023283530069730616407631523895608455020166204294448096297867391679720695460299615104221043011053404430008888928220545873169607426140145905826570532345330617616025699561769220729900151150687519803863289303852158222539897007503341104007116991727509152341271445785692771214632014901041746869968703146151496615072869101293689468670366622966512917939732324356856413044268632662732774973889833073693115554131972357729701417111211319903532673974215017986088236470912659445312303069714948281546904419968377968583111086539759901772985270854679380433828576488509937460965654648233223303026534090175513150436393328261822781981624863114871347352417342028706472877482853016450799926944103596005385427859614797651424607234166332559779809787591042388363545237791573065517710581002262723911729613488940713092308100081119335326199465344529576910639059643525481102349549467647948364019785921418213902286277250179415310548101754080668742328844476650412319365307197689258792381910771870308351499388397345315751072766959454158911187966588447608550516989793338126308004920220783253154503269157281404832586517000888315411178282790550771282670946810251937210676052898769243889046368135446167058188974164047050021087218696142817353875568684555075359120531782049346100310590568647218278977400820785220502653821279082960049602344099696358290299572400066370893653432934951139039835938814277987860218129169550795045205020461266830086427973189974880757299365996817623912660530626598199541931063734009524336114921740604199992612280791422120962281687801887596443942112036364268435767808978747730593824017001339938973449881294768294749574896784510408857803196132949172619415047820630201287853979464316541663872404492924647651584411145913230234362725073666504776076281821560012428532569950961314712417624375501355632471612010469693353286219428379729766921695482577321510151555874714959285468985337650891316357186348373496861951755114536899008679808404824673874220932139633482269828247712883175150942132442071169910339749665966869542430134474763160627400988173647254165623063407965318011488286343394523164226424081341314312172384343832340680799139498677879657416899703877487943139497600160968319602047238078331654810775514183681610898831999355281661590175849236699574236454981114193538801688384739080917263100520468029866942020961391584885491581514501851493815180850553448333394194575728672081143322943261825144567244308883639824690132728618743355108306731733954616895304068246393242975288434100278242166854736105968862943496956191714354940751962700258658016338356227871726485153112258089445229907343035654212981888194689824570274207748097445564643617235577911108068301469078230534066507601064299638185973569137693398756642400159662481679904922135714519657660743353297973744211978844479173673727088250259961829708607589101847641408964093862141792191211888951638013727222970811115073222641099643222062509208862344431025091708916572255432438162636511641339654621488470526005092109210783810163551852913186921519767048481451217920042747218046127564922863452036353999631696033972712607890353440518311591427527141149260110562281132123712695103610768162155554553553996594425310109436896812443541545275291205586481132277192744587488256720240828237024956722122688526601388972238228612055177069120168724228884709245891306657743304111346587721547185593221998150595290122758873755325502807833013439299618726847799294099871207705627328637778817373154387255397134171829592950731927699504766313166380862068770087415000274215146842120844316959869123023598383417652058171809525904657665962902324809975392733778870525895465042416644435885770667881565765934185764565766102346306072323327296379266833719722442708305727258192898437659354014602518983717856605781203080271276475805731618727571433154516051408001057660030211178452070732579587612587835768177665049232988435261802059616552010339281143056119318279738944912263367503528716122267075432052533371969517223149140553697053113635961284726308888607066788954221596775149173696903596738188091421718699652406816409109650937429671760215117948023666273470050092502374372627114440829428703414264832167715777566373607878141700880688376795825092854940927491673349267558178814308635959281585350104879709605888855601077420320450770007936172058436009580619828500441561542752219097966454041206432486759021088160109157887523437279567089729111212375459900685701562287784329544541372641850710983662521073407083083147812946371744094545376819519450153761960214110249341249596890077712842890347685862361939135987673967963877202147230665210067684458711257167798066602913157226321223631260217924038455772630855509151824779791494983716643336807778695023868727432013016987654559411527162002450189174135819513853278544157334080178617466208860156336402993656290167491875927304150995014043474503454980913404279908146865275566852482930173908933345983950894292018021544578441140447074423041186642745488282709391967460100261478750515448991096255699114115599325923246275976267090826178962673608419926108097358609160794969045031024587752672116118374011588705351812716213801023223765158330689629366881521544073120508172674786293476072055023349536680458239386687224331782671252634919769823122025875967606977907925174290990161198109548986220320846994987808558069463399299927099382084373498869497430182674084163875530894888629032495671592575378273287937683509190337906001682589421871367545192806896967651035608913904741959732212079507303013672283231911546446477109694847098735789238277862830761249655625413059424622081141874529122940196717806221747142834499176724571188082174155515331600614544685787263473925164095156457363881107966862664122470292247228009070342716804404369360824780248869087730363436504499886655924050603552662361887935643268946572833417901707090975201932159357600586201205586613615526985075352470692759594334917220904403976018796356233419519059484818105855754151135693651587992689239659099920080183938342198974681738437799017690593234405101830017095998679486510518641739689497629738042690469141977989925940958230994544052811533602515150017980869023683569589964606400652257835915501034625737729794131275460886982908043844192346001213232522490960035572837576844577095818072810480793383448086476678086271079940477920037064785952229741018779528395234810503709486478228698412449313989088569380986060997828009269643748118460884186915495785593028859319196874283410801075220288270241096083440252223785731980338743959273381707966067405165206658643675560583436812921531493280424761942481405984581415963892813148271921341183937607997469479606400847785959056646851477830608537758857256646851883818313520121870061077734751630330457851041723232013458777029584923030417807257496218404794244137675299474125022636921549039998667022269900692684344594523984528345377169124584407295103662965529719693678988167489432749401932569501822659163539185243264185346552364289234515897374712055089145941864912996009961769397203813570622943456099717075479785288219324493732379579632206782637995821222617351090469404646571518175087983107054774911294535983938337046021590230233124547473528099912784116086613526724494601862108233618671756239046016611236708669793773959040251774039833701205434302620487353372842761103709815903719643678999474468989853240497522024836331757119694988101202032037518128325971368817992528232688219697789941324094382469986477656212206832425453068821737800099660666743154275241869722015849550605402662343293479152329343147368469732025856774680118112746340380179510256879609862282122843547733887401242184683433606577801432087580120617493693338015442787962084344596298587923719890505444601260920539420692786454261546591091933875946829406163281726517010186324563885359692228996103704349001230365319956961791927502653970600910298888110963706909957369086758942627798155224781062514334804870851745694395523995148788483054946776293810686176225433767986742999811799261111736019594760605120583375070771645331374814947245080424381901223149543858492420192771334346477327330065285371240561343881654607042149394998690180247509839830785804354060353537629493416956745062828857609764575106212409060317616478387832066222617168000849578707949778438666465862684247959770050432181006221762520539389522451070042703061048807614319051043092238165102364453451813747028883300338411845041062746374200851819992983393445768302092559784566601861845399412129578763913022647318832612669667471263481856652096719844532693239726555702396566350494328182790075308268246481091963589946943755359766507892260975271759501260212690388767847793542232255272017868312449695390537761771332385403000740834444354689909735250329153774052052738770513419161776700273543190844671211566003124862522624092130624356081164359761923990133289198498673914672389706353922910704300594666100634813921799278100865624976372357381986978897914928604951392268739660629887789286824581263297729534493565723539168753560397730761009462110351662457721745275675849700967985553161590786252205576801022169274291817284071844313859604294170049418052177809818086117144610316369770392384537999164047068478799195840035655805185621440936302158192676704588874546203745411658508460831020532267660380193341494430433187587751548002368217113739377453565865791241070586442556863923282432109854898199683793690774669870280903373260106593610192833361026919496376176734583833027935395493148862082118320319427848750196389990717083578923283302347710350203680991297411977579358578286760980532416134287562626313796716899468518169148554616164617260194186179138020321353918500567743551829590060090159876023019951138262280056435928101746978096047562126016904401208645824328193753212718176020700593715501022894705714658514475236418919508751759854928678212007910324414823877032504889451879969338652312196953981065763709600380252653722579717370936833476066024876347579820579558002277051262423914706761546564911174391645176804149506447898828151093005775074589043870798721823331391456535492615357142593791418867542953018387401854098249750973443197155857558220596725667337515951594171038710247084184976866410598837449101338035974862530047492133819035227828581063170000949666329319262976421025365329234925767606393690828542659691628472598424214353556831276310076802567157472656203623547943192894306109821568820014506743667886305650267576715710254177064097405090613255448594571367729819770552730307965201707001784445337156181565410994743921299416387770424808531943570533989244979007841617981482078727300170581308425485170807296998797943906067836024199500762796717940083093357739206910399649047126858158360569094218457999181780771508873392338389076000791019506797483790762059652315809734567266459874348229308242328856409970909543543843124144558673160101773414288038524392858050515747200134461282984268948771827727451848558784023397484609911338882832060060767594934856088290883983802184349082540702897755571833372363409891961643993166053820926163424413661098956329626726808610920537827844922088850633285321376527866599772430220346697811641011425587375276354010347641286878660242879607997505204992730456188832253030278114400242089872762630977661224920403611335297662542132541777050442442553693056381734818578339807708882453585140523850857672560333735194792029215085992907863564176900928194715286809183021395520059172739106885361379048083587143428017875404836648513273828866269268365306909761241667364096292501267402409822249139445023556004778839512244522846472014720015250987126286538026744270904117326290426258585728314662991145827266593602250744300864009109057179940278549211691904043711181618160157533178413405665864456203266288640022338129436302907357348518462994771592624687738305639622935042977006688697456882791999784216913911261871205853125952448796281751289069095922874089082895600853909315883090019328416983885214807726473510110016300670764555531588825947025240618448281340722320818824956993315218843987789475503858481929568812346161389699835819841373803232945662010940536467345658916821281668260477079263449986051908967259798643630638914900580034651840823603649085619135035529630756420118203404585736295342310141634531921962799841067426434852616026298571639534889741008507863717255406302817052075419423845832538287596859722491977815738258261967202256675933584709970446306037149557966651331344334788843380225572889375993817675991796836710830251844964015741533956217183262073466932887541439545731509879202572560805426388292681887312396757822353648634902963412495817963020712779875061559946506157100434344373548883653816369654811245593648018108635568388059768839937146073371736845899809432769808198326495542644775332822560448377239045986599301411159821822408700849684057293818501368255666969520609024384903269595215717746436936492661563749551581956005922711131246162631542112796905966393278137191632227607743829072270645031101659609862728307875847391897694168296891845161417683071884844008097019822260028615624000158360640176464397939602495205922132883027404109768245822740427513002369660658575018452284465498681906077621996115120444214564009238453079283835757744612175647114837545777288134031098935726493329914839159943780589655056218474911028845765993616129871698880395540161784387963596579051213555497044484837284663981579701812740743991856126662430584630776365834171584102451275813901250335512691227753644148044387652040841792705405745449476360071696575566584822765421022118233495912576777083266292657075077644139878025865964671228235917712886993094719548599045982967371768270569115677702676005923558874477199100601830415435528242895652250643267240805973200542389959597830374172576011783248137151779563754934182024440240056762279811365867461908549942533123849453360952688450389623151456817822453361958199363388832378116588383875220117968136671317498332318076297663664526698323857022827763412793888148073906955124308378406862040988262764933666919910645247475032572462405948864150834112229167303859290015526001698509381949847229781113787036075812648886379758209987420403233587877497934096807374920299713758899957276928468338853370911390418047773351622936148182093162089921042124880531850285433103908285582891438397338538897816361253159374146592082729392138511298875576806272811009610937719479707949118870976250753353728304703032102398245493332208173673639298554587087501019688206395336581413120040617934380003595113715041979991397313454077721090160028466295333215357203749703394790967752934717174268957930015309684063011659997113110103675764393952824123669598383722892101776730926869570855184594233777270500555161464961242595528033392146432283716322777293047184185031681646001316403482114128001476331385024681553356351235663040456773553952654656195985476428809994990189143915856635201216371748590087056504327062935112447201277919727680179322695102780773868671222801632906092696607690637863434536589035960078913292485588207547623387547538212114422324862814953186164013860059998595741368672761995373140850462304874306823003407755202747825377654795056345159273307945560294190742043175301116862631084453395081035457862825833439111656504560121723433892768641400961969692596598488642435793857054642838135016185795347119443682464375082233956304359651376809921207530720666952331556776650204458548812326906442566446787447879678488686254106072324276539313450781925268315836286932954400466327782167365083745266213482749576465162325482265802940278592052105130169179498421658737703501600711152969448583275067675027433971421610383876824081321692194177432225785094721486799350520625213639847689492751105881401904614809809112507273462496720364746931368052732744131087601821950029778262420713516573291777961278396605300497241201514247631770382918600981311794821697043059980005657152634513444563186057264298370145497889710061519738962343880099828871739114973423742779392411369482409665470850515652794008090853189424925862893939270130060701236070355194969378466371305536585627786446351056390039741043422741648467208139503476156393357283798476236261194230819385898052650006218602363169171902871615946537956686004506325415589478841140255005715591937902696770436263302743369705991324066033221986069094884758548830584343418693621675892723736479105475224101702790236977873233393198257435226145336571076661442036315023686871771728072136293859059571261407696323061848472372128876082478077643347812120368490385797649455044188773277759531399599393383624392843012419336768140643203661760349450543144385273154121275492054703375082017001584819004968128114728050766020089984813011036501445872713801104731235892663194607668382232800590748207483979692923077793955554760730175464923009213292291060465907271891281996162388761932886020594189042960917528129671704514281662582635714687749212772707870497873311687168977164809686396180208069061806161440794479108614406558950014923323458471335708555863986651518480218999442942226837944097261230917434114586240143066975469886598731664811339367506106033596423716003362745066906798645250815825037453774599737877698287111206140360164168468760311278362618002278977724189462151170574868871300274397391380383826927922135685990176038966521446578979436353527136736194674676627416911461322164961527095876091276756371534593139134326218179136152979092318052955432959975414815315849235622579850731997557361877685294523083351640786864060888400922339060275535859993960926524688468162741000285412008913806602248545885836851647585553687449666888849469686526210874222535621872027293211638371963417054514508534098019841029298157375898678606399824724150651240779979532508974601790570833657285680369441983949692113357835935392522230113101460879118084059834620932996424130378937540352546175945778334989324801602942595153128354344055749544234625384495630678763916923988514585097478508156794654754446020753621315848824819443693702522637347365814626446413465869870181883934854011677483832886822180928247448498846195202776805406117738681872859697221708367815917379857874890567321820079819530630595040533574651353875503879158971754859236413990507291044483504446171029189869597867739941659013933033745028675622418436632832636149062293454259437775436364391256752322202490304265049838777423615290787602179317498125877774241709988173365111131860766087697569242893586568204031539194337755080074276865381278834746869834099301160675346382046527911163110214369803998680615617785604909495573834631410113518660483003859750563829729244334583075317575949378536685709196120680386583123753949738149156565475294256027153354442245683233483391317258544481936310532853936304086862679414780268739717384325537668925207510776378863363663877983751339170645876627263366370497388987373906740173886515895944304234154177528553381386440495840683529579701112300261255144361551506067403195913252590803121811931328899968087332171602845055779642728082605239995060839962368939600336310602814004963379566651669413983398623057474220400193545448295547330481691514632808392529254350991907196845265475334310092194618741981590089498354982316853648587178324877576142375910785501761860629398534396459281208229821721553065031977305590245348810230690348935711991297101813482578898154327411407390450635183066610941550491161368006105144937821968837012602201382642631825506705211447248323609478604662942252790389346935924824773750338860294956635710373747284593084672441322746170576401550952348142458721631409492197839449990014852068261108459714307165975400608352147444158815568356466058697156250270463699768636022083315784610349962927140153180557224194257867540465156144277001214902003756831748103587017964119752246772948020715926528641082531609379040011042940924562806526714969984875226929608331695842269152307032721290133573099405488795346515638786875448724107413720407319178351837811122923063194016216521831160354290134238282501488990909670179529939357050239134203034559685098559065295942187390303193358085802652514047407316365444008123856707358968232795537227584471646811304438269341576554371470715435771878703988569709991065096853655377858546186283644935506069668540898241638472760579556076824389210445122921228119361416017914712163033681349241872617764425904360704404391033219674847236903728319359368733448363979183366712224729149241594033503297454450898254309384875411739348120310617226579507805184227127258115079339766896761924542427447359596993624619077388441960581918243783702022095820337222627324869691193846156163628956777935573202305758476056126458171417433716511255131723212476646271853236095160466828406657238733837509501156893963613922258422199412754790525703865689153534610014052707539555450148236765842513168467737708546971110550470188313065407902124315960191588516743778802017942028632774167827913201716145354389692368227453177669549061533127049830119038252028817481739955583275207910946504896570732575540834131184327405297778495516016832911357703789388028505148223568339451727081754002180694849629191986597627796381524878993626606475872266758164989546545306597320463916407358318742760146078564008544324676846237714461137293075996753965759394037332287772736519187635695351832052306279747981856210658430957084440338855034197651138572848263052696369063256832017677467342675526459311767522107994439928436867903623252308598162262524846464936002349283832219734926242278457684136613321062696686871912651334491464771263969293082921496270861574877161606841841551737484029997325391389848000146652904414235364807667258174602298460871807718483101435517493433278000775699582702184475342994321035059503584134083240665815478819200091370139880520633997974065305238286542120734516029594677047191283942293847175965836959228946866306160459419106530757029654634019926756536343170934439800307926233663631540734164500040524148394085670722330345438496363603284704404370050923413835060188935191989361942511718723295351320188675676506964319529966468806917723194240641644603331160530787359507386917386310570511140459994629873006841568344895330092186610344917166053309092604267202530828195029716319333169528278304397175220607045057995722103909755894216719978628928684974814952676029770066617609071717496647880064064568731018048300980105734604996937440795875189402422634780207718626186169941659943780137429315342061657110934516121622886131173803911272030837303889002479696966763537292376188175338807581562705319000080613133385646558303826288905536138501726222485038617044601509183539233889250549870730355686273059016370231708383317259325560683415662931402205010135781193603573056692747839419660348370201964298268098984938600039179836358382925333142932256012490482170858927401524774471233059876511947842162144665506879483814063360098736148533522175101966382575855314767466170890585848052811930835731120449081903043946018861407018192969181096566311870636720157162627236045218812079902046813441593498067363264541997126992317293465188581287575301764870344520627084853866394413947845107838320901388891986776296969168743082678845507612900592660844640268970203104992245025629463263905395126323536782104345496654058429413398954172463209961688616761463225874163828878636837639273176814686857773232180575114444755769187370567868433784645375986558944988668903807298725385022798357475774416448973302056577554739734685331843526236834775561412738052912713688859986423383986890032047812019359120056169764266471296068157138166348396249103105972753359240425986594746207652517961454774852483204141427747703980550896010893188074370964398026561077404229065250399873601055230299088404728837946895069028909735649866572228521769093249828681021451829527533647057737434468588997733852040967952110895000754236034885041513865041114266004782750397334333813185211746294136304186219315327873864828576257024202105708670895555391257187712796185186638834468394612830056785861184664930892799458160262162577651996849067817985613118399436950025397755036601346759284628714957836350984508943758689148179582664831704494624018444101320474895712183940022837759358641989450125454310805559193205548222012946737045082768976110951664444550914096911818631474591151305565323998216154097769241695910429512586780177146182721315312263010593564300860756673096176143794001411265198391888547428027031195676740613898643290139450341611660040723107350276447748651154826932394588973555867978447817139486980583308074482099139728134658550281595878999294957545946132186143921355526106874073804281868793970024059431743874359222568429143982163185410758690076987049493444396856386907074545295826824704596392087840894910229924815681510408356859843795331142151983910625765296780343119462075972321572202225751241637278149087459977705349463827981593744124939065558475236109738515366568149085086344982514156543678382901504350236299859136028243910866611345781797908707366213941497423352712463832494130383876348298806215617764046596409707176328932428067280325203130986118155930736423227534319698171336596707048968510308630456699331606462965182921938570126430048341230173312973087182469409119076324992773648408268298996894974084179295497284398417408100810671041014337101559662206569954500643944896447161959635725805782139204874638645092590412702780992430479220791871311779328002107757676165692765150128295351645805221109409601027811814250144123722365282181401511543146349839133744034946390920941837226355209179423885907807290921248180787389344214690585634063616466214819095921259100045217411304060022678084937430167216513048112101844931180720536669716181377422460927167549322253733880953817658622213106453229877364064160287549047741928587609435546867904702785845416017598751605690829524276706750378691112688829531108666174868960775307044872764447584814127665629049225673476430944205503712154460517227407909713772157913035155546498121884304104299459017831609348131842840392167334734720494516503784810521076887757639441048673097283956737209049446043776183925355583491453446738901064763806526460349402010332666979384404929875157446851248116105243951024502662674773862322251594135049818852519832400117456411228266485404853647701859028548043131407042925249412186562149804479803604763829002738487729059607073183705111738738228135120362728850228058847595711293328938389854078284172398763871203021436911622798797053454874868689014918024341602516189203533299849300572158347851011730433534561639630571074670231127370249071844383693672770271877087023044002520394712815546374662642073727695775273651931040174822916130155944450313286111908067616924907992899748747512991051769584965841318366701401987577059513520893212603452537131435723519021797408529566010246281172681727228784246501617611261707918992596051744535430787464137759183382152728281285324307538216104599524035595267463692854122348800211968592521620893368877789085497318760649820580172982060328556174123524883086174662481993140135773107422794477179672723134622533578347064098689137719917541377008636841168820317693653183820477598255540470144322734264860933602092231830251142082132892691199416434958978202394523575065477254836692274834350031635317311146292416583374101501435685745119471764455882107064897632063560840575485721002465561721922587892460837831211525959364286199471147563956467163079759802389689344267858093200457855128759130249083103125021455292336327690879773657866477651802463980101918584110426658501102201480670992671979012037675861801590808145331683362366327149992381561882629658200289805613669462563078445685550261064746162006867897770962728870644423705456089086298297738400430560776695332347754747909693173656162178877267951382003152315895198393038285770300996300964439816397367997813263040734366711026169323719690041958036091244154923684744069675813640773847365350320583310403145018988632760842346817766200627692596340772562492928908084713942827874458319309454936095940125357734551102533892393895370726369964747841189560872314613671958619548144377018609913766522447280552767061464844505780193597406698466167570560582085734868793913036774405715769132197269188335943790324527792558479059279821214544788161201585048092770943487033861237249409288881280741678753780957323914206835629670425646006731349836112679385376371471293360504665472190363955582097091577958528461161247713070462032366254804746216535073743512775341530897063624545132656992437184317274270462806402969761447225868254052249810338811402511923577255908806278437657028237384982324303854970346171382011060804227745443966455554466471429156522571780472213169506989789333514972855167750130767560110251243804055993115447025016405306607211768231131304282593621274569289777842283558840505687777782279075955854635231161731600868972249913535950394930989156839791954916748951056465031764619157552274692914284386596967713199202438356628615789811847812233829498551823050211701272376334826917020010085862721620861962399541696350191064920955463367902931054726599309119875800654139896560422968685895886267251590454531043580577956393488928579859901200029910949036382203579416582667249266591610371050203155945089627763748994628592766425786632390411962026819294734380606602444374183003069852760742738476505584228901113284134811123797584154430882872840168264116038218532331050493126926916833069907313662774903933613091074636774942225485877945920552374427387050058467472217480994021512530520120924119359460943738193190919555306529966820009446754838144905466889056692443030451871166903285634910047564793806548942545601943259359255834859640498705870281280880768800952233888182068742290741684091918285765379289902147867286919938279741094252312113842923454763341487013943096938016127478093413977909824383498056464745890791858767621454736561534517525781815099765899855796063852240505352283477304062625135708338322056639324896267739364672202465724778791563496817318558037616444281460277590067798453294339292114962686879416250955841079505855374856812540845327399476369804655234501010249672985803908455672796468380263023012576731609404197260150751330210205073186293502939926281539485520542457254822844637737013809334562118965251917992506746226911371675800206865003476953794132964123174444109579802284965126396558942043697247386908392750238475157113619720393263249349805175744992461366632036287598004572042711177677039463646465630438368297595699639608087455659538567747757845499656209530229120466951298122443740302923600776140391719911098251051718284252327034146316009966221480567467415774265086662916998747809590924907444853755672077028062809123159188147975615326552366314915574029320205269352407348165754134800333951943680209688277103294144208186526745413561910995617580368784027552139200698462637501790181202946352791905740314123724568463155325044046649910022683609880465668767228391569350678900777960960949524071233718622303004538197428622114902972187338932968345618252181041673486365946947855818681592086203099586816313338399718873485110526586914292528711869219891268230829382067421527493047361415847179465046078412005886022606384247021988826654145870765887558830041990395927475804951228486068133503689232838705129732927737625904079215215783466671353761261058467389582066792310630367507748984689549029959194587075498226266788111548679495873933888941702180566995425608063671711588937831920563544182410572882121784933723877121010833959315000134562837428750561156925986489359052187427126185109746870076282303992545467753628200296550131310475934038957619034561707240282182141007161525244110569625515533535698040357584420582437619434869975159344562638789726377676191842410871697947018098907528930872370248649139761501757561607444859455974904260496801484137985052192833155047564333433260609716633976477210087574295748919148378135115610660962692225514324668198913512047425443849084615558617606233307694847728597895203000100884312947990246753714597640076709548365609501203595564377013208413595307904060719967384606944745557183917340944546969193611388084187778264786620778525820019475172205618827073283930675101711711892599270833206094923481934566085296018692929919443954532481136912098117958060357450856735695465696162288455739980354144924244480042730910984244507015653340042121555975683984507687328424655693031200913202978253023640613018369836027194418485426870735688585726865174125517346984542938150378008893102126699288987774792073418312036536419931224776701815890783326567708729429997974346820368620974391569188774115318962140862131772526968614878064271104180141818763721657217468123332342443381885046705730170612440914816163381038509093561720508344756205291940085857405932938672405151381937356791489269454397947660913137876082921631864463606916729285843316209261977424546159497675331448714805903103497557293204339534296648559929769115566053642399440625472256982990669243560996913105633637714828814276086815357104686894384261332537762078273901924476883264031422973723427675700358254944558541924940301207771100629249338597756807590547477132710864950985999009879078586997553790896495430750363248407001576814226214094664656667867401511178894109041141937542353106601156096165126365127354246546272694245840005282260223727672457248113049279898099538430560156119430247674218954123996902965463124823439233847993911141044167746485664807468083034996540324592149094417180874370834370432463755270147987481333126209107360691066083408622899592097409610929104166874832712530122260264819920119482205589205637122615014365255989439629785923002593528979161111524025162234716169700750677887552449958470773368632839494824031601132359489853175219563415335039215888985129402946228243059030192059132126663180964706391502683531976628389409332462213520044308431223137565963806978594110109714697489571920681454163948622472189155008116920830705750693090839809086766235916239621231308314829226553508453322078545860915793465660640290571100780239292090029881930902165401184500546399937947617402771138796982718065415079695212061415267325008350925222572079583529128700773112217276449580283693269047164456393563947974398520858050333048471004378815637037546545620189305028719213503433513286581846264160969929188398287051156154435220856853208440326184762875387462051612284259755608149382198247061654971167459929326661027818768912872776734203342888466721104402642970196279769384641372752841164076217436822637869254192545344710305944817121224041952369435428694665735056243949086744467262079475105931847273989201107332852526085832527695681972923451979146422341493657049957566203403063140607554207705355713252817186415724177212260106024192705535520566440314785719203419114335397069067579915943391721398759684261516491751073256375122972059769412481274654388447823083385448726829673835515008900265916523059653665470693658212619180204625033472694478793504209402404221328936815411724065169130491128441303636508950921268758128995267932911772160525574926680384094251865199530504438706214047747408659461300262380241632707160965744279436695896084125299506910798813636487658912648544321440468348921047907032993058990067449628954748653589079660789946680847913273834334203264354396704590588798703522409271684150217149761324753051582835608081366555389090029067506888232269286323088078106183091660937560322599934670914298540257708117695259737499663343306171306484512564378899584204764072753526288853309962639797026798110391353595323591107402765625022271942830077920006629868419186234051057976357251946183925683330127122329386142302281351914614711412181175752064498143470776308331768959507046761484150138595368696298396239308427103536652290042340195994784282910686494399572694970809355103742580869443354192091957451649971366881176374484456909238771367444899783135893396469204662977794827620836242453793702373017872708615987353083720626830535467278510566705366713849774506790769225857258616329843262749485181657616474692920096374892140040151889920154738092626714225179359554528757079835984403410962989352783250920088989289581723943566884115557094462274439384766354806611903792815260199725701799493479949027547114897318915369824931602196429033688083593829107834909269818154911093139699311494783328653406921085925442608733333239491405114277915573551049046341199320297786672470110964810395702083923005171739151333328131320646752783046798036305806030460229579233375435662451135523715031418621239250303154109856880169758264297747111611550411780977199908888031016593497158907771688962184607150336655363082860749048996698378668998374402492529873610421115721202224632532133054408642814095868416871962311179166411803281976370498598563826501786315052402278492966515621774715489313144618402858424792279637729866359098337441192784706816229818746605690148163171319893095507967619448729184017465366715253011851657166728691136067725670349232536272085653135710606669846771023735047893501747683725916131100743596180430079532291617845794714764280170138081688423706589424061530172300049214082245423202923196183504660016635751276181461318369756029650554144564430048156029274380309450945088363182841359544445462277853000767741788766074457314995806042432914739980961891779021084957476940308776022188146530072115627634261691932799078235285386821524673337478354590431321796069090602931994148311703282082111677361192953600367812271546767846807901852830587552257639829109920404085830539155813333759386576401483597734450209290213419540013789263110308845569159127387224957131116990657675497149234090026576571353253038366638717353658005288420976964083267746161237271674759104253203381701316106703533973516413328458006203057272649626020593488472435290777188354930359154204106889646147747364531204541081558856691527915374977296959639987676527764173145117742152219198313074864127207582302377515574902698091044113774886019207516626368132875390764252184197312166918187952273892904503467716719574563807393158899933619911749488921664492058726338147604490650178610052039525059825856977457156083790565448145959126405398394144114466918261333162187180132784198352476031861867685400246877109419023538126581611098099694676708116215756505619676995280880070392125810032005148367258460276349883477181101259016124959203261170715059754470508474041895293446474990291578947485084351196024356781679854210477998713903495723872562169163065710355390455422200022525143481285274747393476838069311156434199742967747809650220416448586925364822843219413294292248839368237294796288026674314850776320265160996967860735916344511669840203745970282587688688509752160313843198498856844636480984294929542432406067712335616128140066620891985038412081415888799323507952747410392758793943446356254103481791095374967994910737603694664683315511958277880874583328927608877087085372938626681715756317139593373405457189338121323073892848697767412938152716564280898349526463126666760386600381638010549556901307700958640724272530988318841255139977947682455400022909350375641515695099832008039718750410558352837327299850952058728051707132529891016890097247794184428359951890193499856210626809050588090040518356556892864075970953099465532861803234773221516868876271351712701109108820082240486981182275075598250295203688684822353948901941952929865709796977419769224996079388397340553996466106717092672662182172056640486425854701352614262125892469530248526782041230007170308059653360770657861434604842524898963987192248500091534681058039859741264243316060071247135685593121595194859720524508172218314479185937656062129360962405634210554804160388718042668775941442108178083784829253088842394590124732437087281397652887719882175785082512749388899299334625442959712209394644431826753851204185604277310660328943078680307899450767918965250835108272681718810378767907981707007593576060090870905694767211599104320450476920021408781973058951849067781758183389223706928921829446236922986492319695802386164750100061009361554600592870812510099583400974880904019772003660442968592400975009775883936250917134720656053286728363032931094697407202412535356123116117446634271648941032594373835669324450995685482042987633321116907822357620274942090469127768609688022598517378631754385389456126473676941441060007181798669619375215833854206395168014036103453835983496486813757316599457328943531103885165735387338644515564702564744671998013910308733234386179499053274024670992849874681326152063235666199615100143340869534592673181682483998628106609466296846201605850342135913802850501545701212452794915754078766530888360769865038729174277075249498732530572761034772964134139113075788067101398702795886014109492042984582490029664814193509103562947414741719278439085224517777485788376406842799110668993896239667475001810223161586687630868757616194791130983000059381851432567254537497165955095053593683935150745372524178224915601330968338401633947424818376525468634259012142046202711877021639590990846086644292144600236488167093907266740585433445931683522697175290229791000109570928858376349529436657224480770670546567007149037826636130799435501434227427245889023743512551917125542805554303770972727291293857205674299452908796584029892764079548576453203263238286131408611783812415156893636278834642809738109917608571508990355253487662958124637018758041235460538313664072939206123807829141925512171453372485323966656338822649843284445272567864881034317401988087961192621411108558485802045092491154950110205665512705091006838135152824526835205966150358839230296728820792509300489458703522198908755224306097003894786657828025469722949031593326874919334503182063590633996411014437842152325182093872081615720925189454901334103485827464099541431299326226676472701583545728224758004476356195955698490104102743869237840762097031359873752238381593806720200330459232833841454242194038170003268751629929728857531279969336110020592992886397508993269220248973403320078692528074704986785426374765505574400497986008198879550156103225082679361986786277862366056078663763084814268004194903443924085386224367300507493644796637592065097743314326537768179883666100263878504680370684003692411960364548619334055743987435149622812675464645492049682422230139389973985600882001727430828218389411104322693413820983373414205033036498907433734407514269379315741782876833691543996469166799533370179977408284236096694652902838241608422046483331448314211480840073146883916696057727696085002678903835916650924281292080332614632116600822647261697883698877350355712270379162855675424818371182148164136015365463400850201644719309143916234031826185663073753101448615490931480711979030573752385001310750069594070371663051664560175467822481953818319524612825312161101557368557833374545676960575996875698581856290653027978208763914296146281644129740824918961548882084788219809762246655866646707204206217691277979217979463330833658713756914946615269830754696542357570075398220829745583078322394566267967336768804935993202054634239363018951436531410931790357204428660993498490843302126194838620074440030008497835872059890504563996420610025498468116929042331004394435989574504063375915873290492946910316207550390227548104482332182096203082064199011515889530274816754978545422314090882235570194630109847345570315944634024974057490611456943619122557803969273596146713762350143550951590681486821104041877843410342819612957544701108161949566200127498061139724917686440023998624295519553955001390908172673137447856137390647406059799173984997560919850897339217844199460736182895015430077848783760688396720043167061552160262909617395573123742929229660710232671953388237354966979609608077210002794633862134878522187043432986140380843370810108510741323362430310368316674040257933841354871554978591235312223018544499404038022473606070918732292495519782958760755414372856327310756971176691013494625752830463939928715670902570273024367846147673639207001478243021308794819254445229626331116912804000103649613176095162334236053890202483246821973753205578667237985419436508468132938940755450480121930959162328428871010800682601320833346685248564300865984380245423152873126407235667692208812936730432371524877395288977157075804704975567478956819121397111877813280868709049113726628570782173958266598665542127480013701203981182412124097631247501435519903014426990335668440610916658152144299123218852496143432141564027078829583094218309224096091691883787338568599529761419213399252645105326876642412580029704667864276128974424627647536666996305260443816827331935761239778327064441156604988646554165952963351289091391536889270368203497238359516553920850109783084855977496719865119332451874542496416927591746892944280200691119060075053776695645358536934625316130210019279576146623680740648277453534241725772932205330438211194469689396304108877138050349752211058893072340219626051787144269413404077077508290004756900708371824974126051116297788825604727674071591482999908128227653728606694581906580045442594527375925218153416039476257008297119259290126754196664734479883235985500234919467057513212586386151821337575523001952494451497464975060402031897197888743729734943834183850408326778014565351021309378146253823964622042474764083607686462104476907515102361858861105447469496464389605697094610854025552703181299161338672865390434197453447656251525784851481036851214152921332247370127310455031561327422111039481674776977893502863218866381284812291064966461602921433575405564196689896136240194043737975830418718663258559021819479394890907853274930840407358623601675130637365019212045389183734888336815305423241483138595545593791498744339889538295085394879661584855242796004458575174226524442222472414367302561545541171374442474209885557108935175914822782907462974440436152484640424869986699245912167366281594727050228165526584772688479252373288808711658215318484408198839421295749852258794767395277177220461269025240863113317820334519820242266301479599138436133420607229779148726286752486941738906949048395284968809305468379272121364216299492827452230316028151212915109713601935486782595248925841115421979097111444170802088959256785631572805432144821964185701197244154607217427091964853329916853425691602960298590016589042958612631820012130189686510682205507807859280214241058989926763837490654676675487684985916847827628505993829009854211216095603386426503955492776601710661535115012288875431865102826914281741105815778698909765905529623789519728745906308561626256887908656470441297557617935089856695971676871816015089832213116516410230200291270025579950384932442807956955074372925354132282976242361435914324452654222935090607188711223532342149575327325396336522884846203642345787104059268345635470353498089415218212659942039904147106946913095281272809549293940783055518173647317340336862281181199534471661817376227540661705177449603695883209929475597955120398321786388545878463657665340501852581571482775452604120945703770251755811707154292438414539806645373439468974951363726739526441483386567878593685893147488489354997406887133402610040876744418714206560159143608003778289449717715554255739771739326563865213498643068715002280476178989004345919105111410615555515816091909602248943178693764928434038733607989378387695890714338708290544381557239578103743534673680355984467949599129524725898158128587904322700087481052960333357642808931603833749581367515357089619135961278592510370847743238351949427747628508303847699613628257602872889433459383903547722169935901862925268493740616104342370127882770137603051519917718762115210374756551509126044145502797750591592097499537153045189396327786983578751227978419441408581771526408218056469488654508296371094534054281477555022766327160782477401299976484745198778524556776261201900506478037884495738374168866422351419095464191468970930897614314183764404332991651380987289890029564603510087521331575064748827514726405721263716369403965436961286080883630931459866415932959844620887984095562879168882760750595541172997657902599415631928012872017024779032665154446781577253150329868298971758849747085424941829898317189033378527617285375764424561116613452986296940142332274965057564588528701480495457847315425197139789690169255010774151590937674461047233498589214854587016327932280470703485412660210099769814911381903167272730121105958390974927899846949440778211706651906444487641271090134180881218227656763790549485226189407457272490422831741177726646176597925534101643004849476946475974747359112979587302316228981852934977435348757206317090445849663503585206519586585839577969669090839725605360797007912903584692971737002126556665020668221487362394362195511565474525049557879379031479361918029504396575808540757769277305731819427332506540466616318132088854239981108708714948490932113054155040225200491834719121002547798320440938115507570968142223792265919343625062535598931026355091250456946595082170614907950962707429498065470592723236817157585531191039002210940136108662699172136210333890848034196904982976173171803086709346664683059044428617374654791899312311806220263668399878024870951472593350820277292321924056286108231898785685139836685403692550826828349083996859866596548786234879909910258447523495365560421888092252703050140483861272850167232175220479164941763841722129680366348317580845064515691632564211347636235122752720230645257872164032905886661472587938812337441806660023560456752330304026165663563771632769604828264711401075255229364876207265921760128804721932672463848484485697795210623650589907916666116139054320483113262066102661401879726685570557953839601290001732136412027045407828815986699875055705517248072724860357548766333302942476784310112133864527516247604870814931058862951999547155318362002263407372251667037039675900852133286370249207449290761599492170496519370539389762374028834049539776071773151827216006559494351291898466781576196459924097425865755457872649011301064914596549360995146689826876540288426304161267639196859537705788613003739902547405332555566207478804743512060539519663420732215172554683634172006384470678745197051685655065938503592534112106447832422084630583852139802515291580669326249212256937689707329844359107058537497021334410102439738210108431363383605757231625285785661290211527678022008716055923802422830163101397047442207508009555214152681506979571924419352234100197967294346090007564380770113015041037523034914721961598628460804236969034145254635557328643525880127985234095972169914911115201757570810722775327114533119418780451001036256942928028116088425142418951031502811060637517822218159611389878083127926851732493971437223858427535968842831821224229974678635535294218163948789528405312447278127094800387617803149888754815520787305467598231854893824456831186409420201900832279546391402402520943060013997408992148481732346393010025094291356284812761358854227631444561156883234602424085402696356242117151098471960087695439809902925011811933402512118790199262788829567219200646611109166837133714175183916501232592399770063692543614832625102714295334750590130457712867308750669848890838511358514291648179508530661673878457450954385615763892856038680511310971312642863533439646283274308046291679089946658944569620636744939314556670538528799258763523016535138643433606657330802907866375859168689859073640989698540136521885257382512269183804809795772875075631732537475052444798768425753335304857099333081938361212518586775499989138515084004842062589172633969643939035897658563280679349330466013102776132146478256263365102408419292905416545722160536458450611719408911684533997606575355657064351659944509919416179316979768884421413378048666284214994872712589175065400948755355125249439406154245665976206648989983333993686577695201173050372924565736925190588039496278427159464494080767800371692883041501033147647320265542593549414721918932312741644522282388692509514604785123292649553448604465945013330167308902534482386280999127782674845964599717532337964195945005316802349269164043958016121863990285515165542566058468675133923735523513378843421462077206168268922328933950590940792089941426549425603956349749350021721383062837863231307977932300199350067120340528732929983119088976155602388709759444723677816503436131430665906807873748368614069816881812691074727960957743436277012654837853197120176381236750873913476633468156709776854858584738020179222723798404800919021234656083493910993453501812714207374278279210405403215261948522392022962853078920863340726482248079320005682285842618058362778474766392987896599330914052571001786556929858995780155881171201519278447819775701377803855804470078701590817151154374528579737828254916201274701526820949173970047672990264339834688390292181405087003158342239140040426206382806834168573955452590709172183142839124051503087374673879553075162287249531124257960127619309487388901243916707573672581654915125971472526664875941454356653196810641787383638874116911356418985320374470620164322061819846236928917968616481197024021831752403733269985025123405461697475131529055653170635904155406358098889140178979979142612626878210761523172150205578481406397425825816835977566362213515183824730008852227102204620016800616158154192489023609320231760498399944352623193536191747974978484159177125858633336189434123041040624786722203731416823743273637009298419766860110158412554019219361266685210502027657740673261761565377063456186504990468906150874895330431580693149225047711908475611798074057283626319881960203580880799741894188804253003599885368925161116891938920328682544059500137669051722030364006093756386472110317999586663180231667601194570750961913730972645381727617818843260685475652822191382571699415854399568795175722511074415258126103794613074620200372810868225624115340247371911665394251974025677726495365454404122150206221463559178304771902653238696320544558910563483480346875375443534606448945446483497806278478892012276292373354028715683664393044669608664571353156915353202468569167759576109171986829354222109395066839328209846058540499040377194008317365550697456591108982418718936164526914127123938432147207971882127895594994810786706532791044514520801931504081640995970760828066823805288523201476247777480068502589058070474023083058380132970036425799007718280767264191498177664183972511005779248634230141021112366506286232704277609874211876444176618989243984278369427565977219902874771178071049577344261383364466909891832310378557681429471118347600007395380436442256030179272927073799937604062011429866000601953510998045368825822416030608390770695232474807936640026815068890491229146053448167186641454883832114774881889147508776143465387123919941733192621820574820504867074160115469962105088473029196234525284239697553956532789628642688682582537132447321561831511460338620199736576824854022643644650041711924004671776623760368913741554433308618064798941023579067019692877387192293792042270949114908132582621682782810183760542283154436987122414004774566133978086865042847439525464360512595812659311827915622830057752315094508395123488673564228912916817974260688617436333245752900986069939803764483232775704940839964572787203159759756610207051933237380322729684391669701726153624988250670176904004233380543373437952529666755875053913071396229424264519665589426617262518390797852377616152465296590507022492450191388012841752417285721686740337169756270950505146735961378546888376789051850467987150263170342027970751063069482933433023651274196674901399687198004117315957351316820608051752555782297798628965534122988469188126338305417987430481913610025487759861316569752067432701896230171185079602298759600535815748754880376915582328170835827917160745270126852970568380223020726138496725512526224170806793362362587804850402319205434034188436890431308081925655112870360014412302019076486302211921845276982401622315066276759942367818810615967275350692324047656047963074692421498311554423125734933580952803462858192832846029900189050067729421238734109723304353649178442098253790574428676471799249209495362802554622728112413805441087836121399018274192490925142758641657070042899971861942984848935321910276810035283598192351495146711744393952266956181951413093680875124323192836124351110309136950264233379709424512789007589419136091519615237974743588495224354525560719929254572219747570258238099713536877327717315520273111575598408644812380388378707947733334485434630274189315100866254940996195533893706895130597252006372653988806669558198297243948999839444590894487579164324265897589717283586556081986417617938994267827861320210562037502710420909915822360968440744273288887187529564053721839770362982395143327703750415066023622797873752340079734843478438527305109161946952380632893893446241156213757787413359197123396833100049889807321653804570981680157871256804706878803238552351007365748641313831336996819185591939468306812455889934302408299709894774462228801765396459125200593652816627412319173206377083278855184839663560884743465030219799459248574831099270226872067404432000218807205027259905036834170476677341741999917245208720648986321764270030487372813362064608059043112193202951169231102224978621146590406545229059027882797933472447330037015900273169195951810326326819946164420629868246080735659005143173843726165257408512894267255171814938309218089659966599473757854588643518224669538227085797287513945466741610566794918397353945619626799773921987938286686584890100579140583025173686125107789435073647694336995622059393842726829501845840072719305182166680878330266977953020004535518392404072068846294410146102047744620422375189690634914884948909981007081927592354262326333515864853117828080367156262587730606898919281018226098686310650606194837032519791317491553097725470106924868332653790695434132363533332614857228583039489342402578877662513173686903674857701154611228677678872863471854693669104174156018294680536167285599602640895206138721575589590931908802088266561974228123547979617320902925860122044367438990940338120230811526017908966620211201006549125953723000410780176561429155575845053426037731180124546088038330450024259255162710462325771393769327270695492036526881398129680996514235397201238127566624988695790534136476883105784817496881594977317301804311933304316686119393515444143750490515338848403650564906278243716348440619983559274416786107286855132312026239419262685621625753323586526847754025019711313370346357018221581361507475062003416554073260797842729770106217447923513950796581164406163804133110434817333854422882190061479473400077513155125149399213427051486083180284487510042455730170323598000959258782008349990494144335821461489880611418734443576076540412933995493042952880925256812934085970310661600038000751795823125045061823310070635684098369808547631929654211478473840524484125471473678551425851046710626860137065306970406896842296138268803491039381034529920693007050603293140934425160818701876471880342869746515778054917393251275308322570310776870577809786384465330322848254223374897313647717646453350247257651282579461582542756012647000938718977903497566542594754445798050650941166800756727131875630382903455931347557924080187671635111685894745254472652228623544030514530462220821913286080396222599961515830935356907927497614140951309660257565700764937313144781054536472793785102393398828571957826142803360497227054903885676103162190919777169724140342790533937915688452608251128120073433706845074408215261747925090774301119532225298629114667400530702043164557462123113000388339995324089503977360074601520793661341293137654279794655953867409231906489145163580633698676269488406782822004582191098323022101894041258863599931293373929094050165009489099117372730552604649839094834555377291729291774866334899501476826782837394822190684942975152790485117429554392767606255588194266655239210632985564919309122756267458817865761523504797430805954625498815872390355276493340737665157370237293200364096169248070006025885151801676146668893286489364002263436170266262063851554104055436323259980915018805158987431589443703693348007616108034917841045260773005874626189800350054863128546623879417501629488308197881624802909822907267127411699976070258749740930111193081120079695821703081841170336238323880050051489294245700935811307596835315142628372371196289950054493066395311726607902473037465700311782470201640795371899367415461263162385735249165493514630835692829519675537386529492651575045209937733002562666287606465123746321764122644288553239898114284254850414833798349722361289302231157583254119786203173756811132413873375216939659386063572171542071480412447186165526401987552264157791294190225442655142668554938896550582008851036052763404440546739604057587364041385930012763762149960761114559288088416399768543311425543331941450154278583062438155950675005773361902745488627910499218739930310464798567618359473887864602657234609144682814471239804447587974616196210669987749920335941891529495771754676516417457101185534099958368152727737302366050164812698456959843889591950140863579667925414054248501594462858277014658913519019473209464001512174256889593462564902080399916058563653063746426161322789544778139582448761851466351986432083241260192397050742422738223742736401251042721794259871851849896782089299564278368407508525006270563135543229475512726567126461319745064486658261804614393789019043387808752932394104631146503248856100471973307686688706082125869266976238927783533889467214865533110681027731361905349295872589695265184783951657964878103274645868677567997635695235526596841873289689026745878955273119246544456792162578060873601547883001470652399970027074880715311322618887310565323371098588136840662923176236219686598645164119564450347560718190591381239941066145074471993521877509947488181819989873134909830711577147949513292516027954487293309489025091285894156957918802552865832032264318289229582590301716923225296145251297795166163526427253344195743475167838541908122725960027959913920661651305265623281315909680503608478334770728162497248603785686125598161513337450532354964778181434498050802948535330060650175390184426126522227880828824035228312676859092333545423208027828372999758868833182925476822993887745614844776370583000895579176457069069727756399593255766253335548438828571305477974336259021334266927162696365624811635076173314928257786693004325683951934329419028039584678082292183902964516648643930113496663800003578721205968975650024685309052796902506333884153783390992220784762074991129569758614168596614010689240737420820388401517257916886700111817757757677065032638976996765162496330796002010055065649304967343888784194956009617400312036087325517240156831065477036197096003383429218125519525757465845028100876646807443919509836420344199517040260737408127982138728126847396878847177435564780637926898924561457048513825666925124822192799274588437245584115341751061108440935508347085432914888823000542059795833697203519700998092287568237474825257707587424369658173820539590112992584442133346676671318188304373065511988629314382559744755698274686000593317187136100150308899770431374467886166587584039485857966345863257809627220354232616630691756322068334579635591144543097603949616604342198843422078150932194681120314742313228016893180069837275051529876598740363785401781022867683906247849778987763168318110229786754133318774421780315081265436100884362595854295383400033546935868838777558144528887766769469028744283776613088631919140188752264795890583094258082693834315340636466203788411009248024674799546402621663005353828772837382094663663515521354004789302501703653006176188279852321883811197080506055402613142178186794828594458068882215376089755942067241922929703450988919633008732426585194962500171526634466179461925682350685203496492869723891779266897003231251759569373779805861969059990259077178894983749016726145199426854759965372419280825720229657808717067356975465784370775266100074607081124843374128389343931321987190756681030384367639570591513140236114967135917234220835337248941445813543204160827002772734387157002114666041038639246627498702645584796034578881886642927273359177448442606945994798339698094317692882074538974916783524458812503058715294723801316052665100468575056067538335460280372711562843769410511116405744094288646343002821603685827873787672275456017197578501246577865636019484598356056394749086091074716496653712943486136405519401330981328159985333637276478027743678648111864738749570094987469053460204433562838514675925068666648371668904374250642056385815466407689372463410103100949806911793787270032115882346731164920770543204278070525156437211386070285463096642658955355109744083542774468758799368022784869060724310552804407039518669785377718506159448493581918009909594412484788807031839164443266339513277188473456266827996420194548489665699061545805384805734317673597514750754407876569924674729526076906544208013623943229667770534038518639060566823244073571032795509557461455486326638976226357801266633389104187827988842703787440081648558621354619393950255250639234456303971221729456404335530759833545568744659862855846207257653524542318123534517626503232389596829650400968435605715890251200427075834837214941868552089011635171885903365686574987606511135859664793966776652716813597383841080717438639244294637979051447739620906318095204919002024749608458515977174053207549585785486583113280732084454156294907868888405423216064313691116566561683962340621165943630757390319720787951232536723379849991198796779276691686738146209328982861480537247413008329912818845553438837362420799301743983083762740810486335454887179918269791466967796257759170364013978413524391925926412209530445851032897570858487346852633907848794684272723220346362312486162252673474877082745341185552227391503060060200705768149039010023230049012043244747907827723823589186465442409024094338652559157772200130318536170752483303800064449549424395416119709248297412109747774401319109584476923399507150883045942287460958380256617941870954359190921477915123104102596792081296355565108553132330139946597210625641540013312023934581773759724639967644068431570426576422470230581705047950412738831677396092594989485170345087434575998641804845864432246088611825139599252268826164890743816427833684625054974736931888544004858958303634928173464123687850146501058360539353162143391966405487319404440035431836715128151640603596576954977231464078181995483259109348753144239425064852118236649649384164774882181550781274242568708892487067650257903211124183647842698912007838782283352952012105862292350825612136899084201341726056066336643400019066271351256874830760681341103664644166551818385381924397548584500497649887944144235599771733008517801095512223226041562377396689656296032655827749494169978549128092672378906200027403135314828491660219337981437167911735842373878118085917348133127824363376683408390567434677627839502024035398121526093335715085774952540210660749151441716134355553275457897538197607991076262417783783178377041919199767635755977550996393594095013595048407092867396564003063135139341472898813230325920399002780455402535001275970084001434089073179228640658886127243431380373952805523828839803815757795956417072827410623148466781999388475091813378352354076892249266770993169434073067516730080610007045149929282326790220126564030265893867738611674738045001252362035495268872117952989149796687295673090165559804270300248772361193501454044432747353019234165581798537781507985529667993936186021074748443487302764717623371151664475345021325458736745371425019762327785472703732438782122949291972787813850364926228459883313783970551523854607029774218625626141327733195879050546327715082450758370737065124430566168904174715477086262043091827893919076557454032073822439292165921781933066496571305271658092646332574595149303269901159100104402787243360413954899589618334913945698937414268295662718247631838707148714005822207959315610135640127098173601803188392989154698811575403560081003899401515452156677878824877890071720519677648106435030447442040081122270304959049215302405056474891818473537058461053382387567402369106307804003777798819829304425639159337817968149481728775590233556878885306869814263538917155009894199050496603218293985516215540118229598366667154761453653027349880385808653802788053947889731779123483313181262300262739065540811200541143715326510341584642483085044965716360127588810158572934832750466603558955811745668950522482200961066559068636936984570419817355299221951595341238631317370156678130272244690567220195311076455789805644576972186598399026863837947341602708424207422681123219496362016855248980379899544225287576883808083403969959177379203280078080823061590338057492172396753457203334597715275219644855486099109794300661741917617048981208640487346232728356565513703882326944715860448167220694269651591198348628686305155270045412581467238020760508731083322547956716346775358956858877427649544888934361264722654906597755444644300572682114561474227291326525424872718464949603368707036336241410164532594290868929507432676673873855691558562863802405948565994046220092154764750013128213112615433748581686600250379177719621296882076385195504482457924012399006183187536144593781775133745870279569937364341299899864161579811107390739227773681141297361172101304417246680920458771609981684628301181501931747733483634705956833245966779697385620133524494879779351288764619617695961288563596242592226179038249202597110624628429321636007044673286117126865926193704178931226154767546157270052536944866409368513145676988202206251156180614900526541655586287004966860494120171269554422347154920546241580556441590430645762068423057859756629207560612142784109081985269917103514841701179163081788544102502119325534873209446434646647071512267813908250704262101973599979464097961222450240756881003044113316225236243464221063083922279904489787200041922174594085909240052269890852353489616447602807460060398441927617610678832960426947982880709574725898948871389247930990989298188763863148565443895612222735028203600472502808291192528108176311512030435200260489456388214379041759146895427028057064860424222085664897372052500006374884405711581895647703373522952782086284611800493136810183574895618295961639595409401809811889371848462531126365559765144286423174291763261152124801194962867806116851045710285958055821823974244980050121514181570331351849185414543377088429741572010195827057422729201987475721197133396628562508660180587301930016642654659114768994471567908656017679524433917082968729272999994231088487003349401334066726674267454739072925342042931946021596601200188062725298756578749231241402719171663634759582124364071131726054020012214542541852681815902966931628974437198670118197079887705887999940422028497939270749905193714062121217480376549116086175984076592939356382202881535220677085398044057936896999679960768353010141988822836203531005273097918361628958156900014352690979679522152986533660345876902176602027621487399644982960343115430366165204293023832194289922405246142335167962348275914562087255416198637028884470752780768187715236505476870259680446657593011067178844510965615406886865002825256906893474686177495217914163232709019655502285297915456259762428006503091997534543899581171610458366664091594060698642594794679092358579722706303484703363362110971768106890587370735754791793072292679967926820098956720801644052905601942291298704420727878248340086500924682611581239962116081555536437741794505507756577712211573283937295121365425517580885524809164866938897943116206052729653820477059002687525787094491519745033030855176568224707561773532843025734503973891131279328909952733210009439737377249153005579806352670405193794733660999489007473373221000834485799270368755813044926613324889676988546090351082640407602309180391088802811646629149776372221183455253249799089666397742267652564675715614679735288757688500999271527939195418584888442262671339189575951308745051882667058448693517422855552567322702224486061348084866800207914132537831106327713651760618599655764986845439933107182454877503632659849278942886304729533167285472220164071609481657049313349373583985085318471655720524432120151037868868358846531027107967456856752920408444561942413881440719125267400744758620019164360596547974980919691045761794037276573794406273994781154717353493294948673828759266408541269570949866628003832286348685622465040229856864661949844251753009782134289596044008860254817632420407775994146237904494508578388563424783942299658489882358169780740037109662911502314295874914405681732049655181790935230354967641869092838564286472095082703642367188208144938829384131344627436230638494840233624402490925000127687120338483318103874304660647508780315223470222668299258167306594849846054068685137125173567711750213108898756387837125289260562558044222786519753099957785983565779047806291135106588326321492285486890068074116657555087037467709692764575451934834967090699128238472575551842866906182891782920421177778547168322739875498257510691626887739195091719237214266016456430814494206589099305838722105933397679332586770399636215734809453661406840086893943663252360786310544242620019576465969758509326978783785972620106541171019823643719327813115642754413659941929830084982337849604431453495730616174792753230016254309265647067559787329946383382191666684228542960799439537056402782980775880528782682779363363315540702070970716777205205061862315570730360620404528729655075558458134671706337941911274718457562705381588198223581742056434892090623973537087086514113372128131285026487390591620272496019591045775241644747554411119313340667169822393336291819246623559866638054394608886426656539978135952853360788334468425850195480478476551724380493632912839934538101189707212674397134243698205601117118250626567845713548014059237555686673668500090080360589159978506938327657719585702365620879361250861638994546264464226780587542317660686004436322339161495178949595789828813986442168862861744202051737453256137155022177970160373805662279160308124179307241123490939083249237432116112290465910811122463637243279803971066661834678807673324040008447652046373058725095323426759785605981760511123270529630844714602821498608252253385724671926826075878386294972048690856637010385161276115163406410029153759281189824084814148583596132961757218569214075096177344475495755057842964064786883682153804661934165239562547872962524839587301906543804492475954621699098875678131907892949055140326716861052803709274142572457960681382171693452259100062679357542881677872645849962834269146895247927796913340391120355185063432985459434427898769631746627389653557269778454847226832615687811309860649979132477910494754659592405351938535207570803571044528816205064097015294126514837280123262158458941028339533140022757750364081626627757537148408650270806749276234650785614330181903140765686397177453922690956053096944442634898253033017640603926230929540174981868597783272266326161688036070381071584001313017532528856945513918361623851099528898635399480736554184594514374476264146950670913692541825571269803853204925879538564119536704496239847296577309627174138969394837446738658432638813924832843265435394752226685081262161839844646594298322015919228644190640761715530424192642400941807871115005751299056844309460436566429386888302165269492621918194464188631118445950918169825327177534085564630305535565123633925290839973106879867929988390607284470010680787922248264560293835402060438321832965959623351369910415459658639320827820190833635981866419141761809603159929093930777020639802712141321892319024290935026234177744383682982646462025092379400044258896251086077081724573786390243240982597596413051175023254208404959146282432162037768590105157685798893082957905377082192824475440021110033641566947195045088391204052540247210931247449437365027447106182403137642790331148993868476892123052290730243993489779802349493563480741198551731413525656851244942793254161231016424388122422463125323586381053178804451969309148691972027463527956724508141650323116473341307586458494695769258134303383678456657299910581092519689275911782341774416272970588873572690065639872956525670292177942889726129166346463448261336596924656309162978164746368693615293844476808943827678004399526848529842001342659698341260444036573183320863103327524624399049141339848156563813591050072548604866741817119696819335883492211501710687243150268527623895667414507990450718699574463746388913860175747070295049899426940665702555112048830953723730494273998152129411970281683619319358154867059351290291820913407906433511150490789008776697964775122045956156386584726773940346383926864609999196746288517177649285611706694183749328258727034124223629806263224566001004824137219730587884913063780559457568431634168444380976804838644723560568116182058621662536341191766649457736148707256131278072803227662889408743833431876961437381728311378001697352946276609631580415492743303914398218949068893099158912367872407073230119851911549391908929664104458848637115150092788570905389871017263984192827929015523992253029964208844511943605611749040013494838197867653754191303601363409301918937459651784127930361251063962457376231661266602568961916504621927472546627706927904958541472603336066795712026243159686860443810193320516438319547051257641129651281113504230629856000278161502102046192113430786688542304416586815262134786940716100339966785658698226724054427862305894693134613973985259561961068410951373556455866079824502124972425099390074721905248751815865863427141415324044529776832317951998340924438502280342671741991109097322373121835486118693545038513022961017972579473250937602604753597122206394645987087663821804006124173640814427150747017585834500302783462708900618256921779379472468616310087138575870683367981492293006595305969247407454203102836794782554613710512396136701823996313732016340885760902009174380392115625499680610599782812096639131498920104756373976374009063760844666776459087747569972648796068409114523135083124860947707895039284287060644040149458658973442208839943188037474022744826377157678995981578929387376771725300393665607583819337681852841693215509401393382747918548761485433474988984048305288896493890315455667948508587750251984122950597001264719426390443545978496722465599830072744349165557512180165266243389323932932489208443917929479074010470115182502447710004338234817770390612224123152941949639288411816258942540387811510113310172415421847442045711619925538484833335799002664456041937027432513935391179297411195127330954128292326798542237321799378293516385004737703988772735616465216725024330215099852565291965024139933434901957187885305900253369176515867799829365789849186322803581841596236690231968218154815349165535081585278642410990061576769728292078680021406099984785755814856936649926280739016840964752926077660336939144777614298558235733682814817820677479413002275578047810356306265560398095620303298108446424792801487941157379929833390398261141460948762916058035539617534526981342508965652028527045070943917529469421454640233341537708021410791557498128738388232330295188524622379115677878266142149106884374770139304025518759198826047579360877208583068309075260527122797548741712838791219893326185872879827093474863997274765448044458690140548184336106164559711712125956664793601003241063909860259891971478230945408054615094433772017572099202657573635036578970661107259328860406356028651782454391245634869360408770331339584834576024375010961314421011763466495662355317356126284834097020357715519839884320300297037419765495253389971192562246281453640528145402942815182228037169436934585743983208448757631486664880822848224002198029885152760912852579188597963585334977729008105121258812294139484614987442560995422150339105398100217135838959977251197869733185414836381721577418559508593455558477678170627616027524340150162172596940118473098358408490628116936744388625723942185170621700599107274153206255931497776566533159051155898909722023823075910059140571334507733156165933077278038071220801367980241674354534051340670921672123303066063317469004848649369833204863958853508228676534174882112200855012586161222314715012199241007596097631592275525827131598764639167791995223768654150741050290140677991681471195327236682344433188445022835777644463942468030124242904318547805546274100854800365587503654053637995979871991893029552386410089823636342622572232507537573650918396423288492245524658245884785980947854308415783284410688706023951616232691397136525494876672619903054368207760686329201350569735949603532821283727005488654105500622358081990372729511674489777671408553272722909851445317230412751385909365419349325680036110899281266182398220597618220967835653710705249358323663622507395674047924339028244353215757387557005190987996073485515000346493878704768364956180972502182772833538854249208809900036711910855901370652430656401458604255256661954845905501615044210561100721966539970993630866600935594288853497556320194890567171345598164180435062396372110029080552454548704835500718138924769010803687482720500502876941681296723557532593642767011728315387846845767232285661499229555843284951571569995284047339293097789910109585679675967366794185821594228299701382891844355310975340323033718288335153972263914427216425461340083974128383672263215848836782546253137558666184797362190005530610807076017268409768345513883719148417600614708500234434754094036277165903416183642215283275801544434030133800672163339041752831834105583551603173567367310305996753918112568965001036799629138287179033844748090038120312659993302573343854400035256465261964655779147197388649458231729328543134065537110218861434823539626689247260563700400672072184271287367261018532102444967925752886216737078417556555773311934345759015786994972067052552010550580886852806935748926689579447675171195201139424866844080214271761614979381107596216323673570696752341639578219399745268213368528531148376285861833267714717794438436160561362987434677445539927341009655615816029475211056015573458403071252794723282987263308188373747407275729630511795492369356856254338318759742915393379344424862829228054455705698418246716847051758225636207523818352200642596680012505836143772409725722002050542115051042767240123433192877601659659992344937329119913067028373220364536921888639786056916004283008174921483359196207566204818359097189804812230926180556025618404684492069676754505614401828261243234177381551585370929756577085098677738819905272039336044459258313452911383858644298537381519581892952567708660942500776404832795173233692863298412027153190364628148167070549905487336387864592394147395822456404247671526909157446563407332161087674038998356569806112080116668577740842403827760108659756429853919220325698564376739917899297521990972582323138715769633226678329406155316728662595172766220589185154583122743984044048808334324630229709486934271002817992836461905237139041779743931280655638743093724658755500386342348631845980370009845627114460704024669247354555896936186774176613456771291398010699432570453032396860538912814010593515462360074163208370301694417630104315388599053047523543587016801538145016790057503146199577945667769418630853197282785527923418009103103630708942693521285682012382057027962082124478943561958654199853257398572534107453846704502192795103737751926345480777514528942086607748200755220375546619666855324746765629886524619789531684760841666899655219999283393667982336154879857797368648557907031169198956813762122150797966051868935630974279528745892991046911587150960116132200259491413399658001585357535986420420989398783639353375696969061164729163900021172186671986015358453817403218424848022314721088465867736492749210369907701863376457481488326886457139682491627804725946058338454964595942179990948097811253825642307149997432439943630908270345236849992152003460914992907365324559244393304706375314588121101744844570545219063436270289325049447470506363421307253821349926715007338250910435872225308334443434866018791032154204695859467706351924930286424731427944466244560219586980968816230783185912459029958438279100255549251492389054810988616943440345605193491476340121326201432327630376686118998661551219714183666393504561634676676065713189813208223149119241797872979880992180773893864648557301387427089942932866985461078685801916314676542687932105584859472887870585785385831453009988810573242538099731656062804241463468031091114972889341959773738523584900769478358349879923295974571935906406575309266923533550817286076351729778656431917904718141253992030621878061972681436355655779539975422164763201347977669750495955296733759494827282881059109728996381392995688469690452364396669554930161343493124867044105079840601996581379099429649100500849480878098532942121272086663342999879359808032464997898117158978417625691741638873806927430739286573099735901766701262640781613805889731991096457489456238130500926594537504067063654956482268378176434215240417726647350913929191898709193733426545139617151566997959672371401231237626570273640818706382950030921999559206151231031269405532931930937891724365193916301441131218617105654440133861809403595670620794607662346035599664558326061744377522795031971470809703228427406288634457092118913398630266385982146134385617577555329900197499749516306461294619159973374057499249689995236556864712404546371427882219932784978793734737629988128067948043761974525576708373375258305268983075475584691026058338528528284842883513765750774926287852788380323535170022070673243746932098633613685137925492518511389924764722307247379405603035694185251617141831132676025093760291042342684865095068970928009063329900275017198590215858192854179222912060122509099193630812709971228786701560379514532979727798988501787097685860725667169142363117766939204850494759688257345541339732318607199667962710859364078270516913445611005928797941964750581548411466973040124813979484003252507012370460774021787230344825589618977332134941147177781024647621323948076233268289962927424485600597136062997166027151761878869465442197538136807949326610584655939924251275529350414980082327266554920531525686068456948665676289441389563685156860122911647311325674072197590652936367068483759116237167861336097615483382698887301774785255685223143675066633466057758600969714832696350141818979556564975447149039693277400511555872984437745814537661056288176322623503812432733817609427494412983774199331982165209076617427204601368349525944995572824210893355447298340171454607951346219988699887370602808978947031801357251883960391377399050701135313740716938162976982613548446184000669289770120306288116430094271346951505342048092450270271928488615834702740123945606721626025458682157272142638183085016334519412307304946292546388843414254836145078163391249616997576574637494286005714269930197968646363138068962533050810505086518005819357734951196666071923485510586856624769936607874608725799012013932864864279696062325818696491332464033018834208249894248331530284657168485649507671110928620839854882708641442894083536847950425765454369164167429443438320533696215322770204192869364267974647333459899781613552197200337888053967222854462222381367463007322997798256657162679721712636503389279933174553299140542375740183101477772332343600776450558654946671330806370478700752868997446619128264984880138563825167639632930375810818665520380503019587265999055945804603320178653240998377409536745734007886021526285959425957192181669100908165230006956024788960628565301977083570116367486776460544019233450861891237911054391851209668409045347061827556670076883586393821198880639087543941012436473626722637122225459680408307634443033696792369094518122837598351609023027761150637443781730816466711398063609286856483375914714500292320771217625824600403447431964392903122281890420162013452152504244629476647264216101338251126289500717013032751624816705378812696082965036740798802862667711308827458387339307374632713499962669224779995685592947807336801293962772028026399393367052212483386907688542302568277528149466388579110873369229735215785541492998439291541674049171656596178716132928800052984710677824018626600077896384095976985226135536148381981347270720760732766821422246013031989478273223081395134602618414858464982755126174904554722781091038865790782039825962818787831516784762663332689619666652910019337121036886340867049466044462078210764706227258433246563839208802392914940033128656420753485025758684601343518652418733661246909654128337712143739947911492832761102790435294697929123355682529555885574963227330083825467298567948761031868977110168128755818232255553290020782175905536590369742615238354023413856162447979890633273050712762764879754270116646831204117979435963711640417813366258731865869128947022257337466190923978708298036363962624791755745816640006999362849627271009720321252603033985211017537105323440628868141863513663226526655281142142738454354168661681722006679276969246445420101183663556418051249336562257131112736351094536539222603788968556480088118624819229380836039277842981945761428159112190019558040941634196617311098146521581789433620630697471907441734415642382536031534337508813295840235039810004516537092362532451151813722148627650303008728521179173690298343433873811945434607538302301620486851742660786920094266026785733796720023985142446631233899144364304147995086257342013982134105482757600736137331911028279686437299621842297225866670244670979608497581539350105449706285194390682729088246249342816826082751605851128129470301670199907901949974669350058568389303921230470660651708288637790038938991056911260618578294178028191079116223020855846784711995194486064488049901415448908149823459766756609671655485841276230510337432934087441513299146430033969902021130920787936812756996681775724188242400227870597778370928463210329021328874821315409038870538906351932009449079819518626556866381556469181503692455405014872932279105283824630039786625966889705903216293870885773633971310959735002283025322189377200324555280442147451975304758840454330921940637276904972428116142582908229220315929313563665143942910323521574766407247548028141278389684540992291742872263972173106353561068128555364360609502302820488103733630616413142889790980131939692290475880916575874540401018125714677934289409423922724425208804270519237336124010003409039920103097826677034023557407538503734299674549652098989433483896369501704591052650607359291190427008215195408636409734049839258061683679470787066338837978046140721115713569610199398463198160058701603577077321812395818287543739337370825132910633030423886276338650581841135588640736224543411242338252539000154379743625939482469995430071842777833288753174568965497515591809326626588712867224278656195228164519176964181726854352181257915566521944411509522182580727382950079156347504691613026224970869580392305268345324287767208660125774476063826007371622465126237470389606908029529897182603904026819925964308088932061393969228460690457211364476982955949234057273613687457813463284315616456450641876457640324386389268320930888883434103313573441576937541773847234688631873419348223170243450136427676796031776471303534452209659629814269358981163907637752460267303251025078337985737322242766903520261856708026090146232422899822252675340149479106771216977598218498909717440624896011491442169924255793225169860148014259783944849388440877402833305020162488135645250649441019090046435348794059803297208621288114119783326399120467745665346325412808618236208342996030252995382568699719315394158456667142613183447224678941522908542399415669201057854524362801250311649316318193672221580105755502579447611119229541223967312704885929095393765417201009125255260945213108207677214838862554646725927246300845143359353095569606398736688265528871773994057514124197783027959107436257665196971076395515633397942147291107591275407506154890023302876744822945821684085435236122261743037168826038596074846644140612737072523100671883717019057301801681543877957897691533242977383980370949434387756103096980742371046204027864474640057768965673372877656815122802441065337478532194309993739240488129613853456534587538784056534479251754526329531602991938964021129215671586843962118270358139697414798750853467935206007288762310940658810881281029540332782195742382617766509495362510940909923725386256858376646611556980729464733504172033734666133308760810303698135284867794632725734325572044559241751898306478194647195866639362648812394101057078400730035730029437950392985084164357562526503265166854233662174555608806016251077905124140534558110076930122121159856375157717700998388569709411831670226422899530971211684635497132530145692891425600302266262865301483178116036500572484635684122724266698222947698398346369356966604895791202811650865537177852644353852199572675183579883434029070976343959266574072753827021374428334821688720359717642998769409528464889988131611251882036224619897407886144819294112559718255259197903111847726882269309425079471442181012483518039625193736809454684544221026226099084630732288206934393958855905507223920871875286406226208365474513607561342075452275920724241531229961705045308015770826564365988599389740704485517267351575607808226453210971386968804490217138454697342934892870022650061435741320949880317408675369657346887383624324787818569670136186927574870202253998786907815095546147504881385062650474164747391497902874439112366806153526283999633006042852901552137982430194562248525030385818067026931210207668118510312619185701208285024175911951130689975009351821445670204260633255779139209228477241561198740839754245819799050685816727843784054887768123203932981339129371893959045272724934902043665041751679204478122798329071637079304364047985159291222668327445365640284242426801335138058481340157475097114458840793223994132702893502368815882562892678929115924451019441184933347596656228411041346213057243576536087294066877081050325284797710702506021615295020837457709337632657159226177917884672972406061687756951606407676135344720542783803619630711203542554915785955984421856908657929405723118555299373781233544373703565268732246558306790126062034737669221092396053271165065121102578470073226558585337993906708099587208840992743886005329861518465643423642424320497857776710473698626920257527383596378613482889376325375197661314812119839438432051038759451363531512003949084573177953694274102795455474370955618070388325546184120580591319924093029370831425414257554306751018745215084606783344708710781423656612941145384479355778872425306044650772421214065804109671379262420076835443486983986107166965734151697155948268411234594071279496123279834514268881493781608498400716236556457440081791781076063769983029333183841914627203287321762765236969058997610579516529016744871542519012199481677259741028027977653847792330943657771730445701975508987619272934946395903223354324649511291631568408900262298142987673187111490343562410527845679603679870453203274641858487456982105303219929749341637951277799113057468967527889244767510622831922607802898034169639714325920745724922353170725551853567528333309293989354340064208581190758635725225654615415466220833789325524084334416935640341357300026562386704351704388544596764767443870726590361380415426440430259072442150434201966400700828804781395332888215563039379671782327582439505258043052048750021649503200560615637515838597658518137937342403570468410669491091143451298668118642076753494645697817113082384061237992974461038157206613781496160859674657939457406632289025263263572882537552852097676473249722526099162776277579173750860000638249374402257314659331769722037034839979035032740135271765479543778589419945789314143071222364050217832164199866838339192561322657581305191738453000971310554874135147989002014611092208536403730719638424101916649443193221343561595902266462179084000236642818113253909691467322459822622688778945711625278131466104504188543286503490533012132664809213897739946697601281207827848359678878246610131932243727501580375808898993591073951577910393472296752114088661909965404399426322400620819953312012780812978024974940946514669948770724354694682078783485314053771059320652603996699972632407049518676831316950224421575191139919237867044558032488496489394153595835032099080386173960029600987600213000318536430136663815930710425606082621332036759863945218466045772578951964029173705760428751386765277556331630783095446564743321258246534947277060777900380402018026811608536876898175954165198400317950841381879511676476101328790968761279838299343387060990965298815064032681862627857750638539238350858754060575255224328124811822863763676128874225473534786695935459249172164543641385820852507500453705017294580374919563987706806528163503474773272271247189746866689392976071950403327744085966067221602258969835165598923081709314845047308281871193303466723619978989336757955635831461749953687355064742365597564328416297074778213407876333369675903345541557004214198819482789137706397608305868090259966549384035528446587211827601609579298083379011126832895049505431540076964964450123050976196015638964049526695292982385286591629541233392399088110743241019330086121338837640589311960464663788430770735208988066426433880421908945462926885398409017916941117376588138563557329281323803973931877868432461088134646077987164398382253666152064352118652605529857221138090709839544076126153800612270286154760348023522653292374107380296772508876915690478380541649474712126815081910908087578754708035188394740237160979056972835634790885300891455643986155455596215861981249451593021699207724580853820402679424481009663509856377676588277773309979075057362738956009442846273300059448632470556164053516972074443030611524171879031053593487888077512549105429248501681243180534107411409793801059983839754997975126013720323736012391741624013466991985830596308755646045216710586500855624671147081351757216598658363852622609054653661475517646024941792136708500249932518432081852337313974588219186634829683257206249206331952888133769384766230623409412662564248472433509802978260684828516567961135401097768626729194163877615826444161907275309591453242459510148519254735625876575712078608247527260088876605812209720660939554621670949409157239168669612983651441977170948649403690255734105514554586735003941453656976639890580695874267279322982550478712267951624160054939087499976210674324227393082720818784529139085756055220895829534149539275813890346470917353778335451017437497694274178249727763092668942359114207809389743820883000920127106907675105160953212421296786562306138270320169837968609273748750220176364892586353973180139632927842272432342159729669373762107083599099941679268118840328441864773806255312775028670095583317881371043437534232650137352209187793167037788630264308062064211225972745609045528345718265413807488634622225766884288546262913413051806529648670622707440855595365030624122756170090799344572342916878877514680233770750235756566376049614987838983029600635015734414757236171247440743674387065573745607776303696302583796142135671391387518418752187784674322833713539766241161616399970462372655855032352097047267327306206994759272527986757645964345026666866962721908955647067283759115622506302335918797775018992184183365327468642286452287283858329115677555677142050221072005665254742130889137408999358945162917508832543737166405896128256711536619350557320002715120315382722741699143674240528911270264516731734590807963994682539974056764731254113311444297004366532076338674058213943105762052210171372986861960638003816001654947010076573899181355176530909381105701156972749265168247679184818587649383122385023434189178981341422434743417598607268767847972473073076983271595354204789255841245113839082313432594478989701956334797965859069534439916315924996622865718049089813442682847839320663877004171690826354344013087234535584563642562881550609635260698953040511407688550526671559590846074923008028464698264305815950080838438065136279744747954814145203229240327732211055869996916371256830806937086356771336295782894012307397007136729712644074356086724331705602942680016173730624811368933123133852849938475809923889933280934629366437291546055724623509756570182955480936179796444868767304381047154754807598452740228056368543928552862755635285437942919060417926127444440526898870857726284599980788629542009314718567731189762115923596895322159386730956252930116938569450140327558915596572653440817676736305632716756744082909766189754424756832165994126849199517126137926893265872457369962456725626953065995114213506659067537820032579145240170080680218553249588945889539610248062959670797418031640307491684423567951010052429612581924671653134127115946866124145941955974852067119094119738015117316931745185198277722569070694998108573353713526880398160766403564717798157899877624787443387627379669390589626427451165218281632621169171225494434629546036981429295744793964375458198023377090634954599865814473031914872074305175909758984065776726490129887151524300365816755270583907794236670170787217364541192445110281261998951566274781558344063238708821464628665004010599451443636072625162053323307771041888974875739947965222020749615635119491904236635694322032767808694910743108638953377180381169420156055695248747367294467120631251586294119070662440787645417922900496080387740605146102913857103880397379870820814631523302571088844315387950602613572532052002897113555947553540625761021508947592193321110854992045190057905694230718700768208482851877039661955950250696468623253282488330886826717289052319372774638091726865342111614240178329992364802514722752990422894986957296788400873759349461015079085522135964842247203302203641331665431269893473747448911637537595455602270417041540927950854982320638645530169296176837166027812431961703129326792887570020666280913486822773867502061990385992097940867834321523258914709105677553409107780794310819207917178871084366648312928637463557170707874038032532466474565484416126341446730675194536131111326598927504645936987717381923269129798816798788077997810803753634292742522293762951029837422316631956395351317282775815979134785028745089670816093975166879703331666480290670126118927462526778653353834285196389602679584671454627446322440898816880116249473382704041179643526408371470232556376585438692022412478216546749605447185224893929770005800908874446061163077243483242611644734679002763538082654895962107958043620663502195434557265260095144550953184460845396959516168664135404690855824815093558555590156756558027232344723310558681669697455651918124047720784398988171087175525665250841342481624095513162840819959976776210615703254426833191231902535047861927495483091049910764743708346086362524896614201454020147642570253659581833454855604187911317100361983976636156014358603908687651642058526632779627260604505904167911583534948506270648876983467687348702846651768658593959133855009100808151226971060593648221331234137070325891268754887676939289327414805146656324400482311522438268771529941237459066551633285405083222009213481722839906904757600763579445868332748327614117707055442708111528359849947638710360679562390126589288936132623945423464217040415363743728273869933757901851148658922940176141056190999333122280296630532911849562488844987225059331346778423914723079745822379003243737485999709248935079284507591361240747427887774353248434183968388627083418460899280282055636838473184222050274164443850976227023239103723016111470427911322089062906397971614437721921475472313647689040287819746098764264354576137793892432784982359139067286940058879732574766409003851525202201827565620706092473136297705920581329447113850560660206519334149004733587309752531638625374873028645259428963542319480568735049555898229387321824416683085107941811166749272878771286450855308844024689211906280761723814903166268275072415740244439405792316491827124574324646247346531076531039995551863378912361046528647371141903209548821227057372750166299729912743399222267540546641654562969807478744991837670222797549154189802492681809643300235885294101936701993080262217989211744032494009883859211284955552782296228235671822839697971397138297847595611893163725338944636462350514132863228365181756865021385738726884150507184137740288093411417271467819060255334636406756862499577721728233067030416888619456100538391053117199626495730035105421687561452266340512904917721882388995677287601473810165792971885207699778836133334815660016061749942724439438618588902238811140356842889313178440327889010023198644451308108418995815980845363783914948827482254053367302798322922270919605207998107002717273172606356764804383810814079170204655657143794016161120787778159531413057943412846321062604920411138799260896212647561563734459263794540413289647269894083138802063842842091482659539951814633535267235038203790696121860267556378835818217091108615222380072176609696412862734778462972602156187391704373924068537383032812211325118507765348837960008101839122853030636461679860996821752094711827112349826620911659374256180614791185542588342548032312291076634190614746400529141896640703525782041733771952881879041917494554600046560036645999960474926140942284998571103170248737682852550246191837503300485349668705846779669002889738883035070089719914837043558384948263288413538529187915394166786325273759200511927160381893045444022052519523016284630842030263002290845494035737512628210459358355497109292428913457667911969095934125404272041938721786403261420471209077336817341733960470956396384402706044524714037127416273935484870003713592750341691638345025155251138310725257166012490810957196172678063753628911715405276858191292970175951916685033750256787259652371513007062755196718509265660112704829453032066433392019059180453982543129933172485801813057521633684311069552991067839521965356863479844991319087424826758179170465759001629985170424507461135828118972858119741728927580420944887691819171648117038666277432001780840173398129666602570898476300828547182237932364727683966730534971113272642575337726927842366926430108117832422346164587779891654470923681918276944427229678755924876037399682120573901035991919894992556795218607777097754020632074233118419591246733067438511597553123002531599199085444961058543269521908322252341670593465930076804519025524108534603838884712651039085773431926169692717252036173193608634031715077802327092930256925119436190610416087107322424687988725932525939656374666635023609435106577610856054405520686712899304326307080135440887443490205555790585389765319759717103259433989836467287626540609057240908805882200702872255519816835229419858759214009705631119685986149163286644537674866972338599090269528063632151468426523148101285236200924217529197017482844515526004502385123748932327831362975462025022678291842077337762368505971653897413616253102422793340176622801446414334068923555498294351657172953274566878220465320896896595215405652167036216907984003904924949966225008386607566413385457937311800489776973103916642185173277944215961615732494195337364669226257450449325523018178203586609341168661799023652881917407292022750168633749580391555906287315303371501106601889600173317291861453510148618985224745036361788208295125618621776505706189909755282275602727168553493685906610752654182716373028021507098438861460424088444574423415451254280634959688381507629802595345023925594243884954360022187847689091773580542784244058446219430568127685578570016008239988663552055944395043319519247160102348486522417882783908923509784802704545978349285834745129773588405813940161571471089977613895169065278116703645737060479081006343221818110943061267567845505457556582496555341526698096587652269516814844587147812617568499151478769628124126556921792626234205590910330049564361536113394087136769163666247992717750486696088221183931471228503406975924941802461717620334417659084734991023418827388997833852620188326031087057168127020912089298249400375081942211434651563972762871733283497137682199605726053877264529293967514314182967332902448684490704462561002021263335990263643716378937474256517910304161785357561631557230823048739886697099216077561306751126665504494855773845194238314421815350302244439581010970559831796329786072438554742268007642915822522368807744810200748735871757411697430261106427251109890043861385664359663965888414155501182026205002582263144378979739845998371238246838495532608562562593698825140492218211621545895189762111274953108623804429775808479955235984021148633462733516056749471722191789124076541716263172372840007297191893394761033443020894331612250832092047490825008602166910115706888318523314443402069797302116880294441828126987219330814096522005068884574927889788741379782995114469319217014552723285683124012419967818560116300934694574489906404252840028071435210541623224340700229383167048878861798707177236659387632232132925924444364158650244072736641247820363456350159141774041432224594105842511281330547673298454276735738008992545219891948632052599572367171549450166682665031044809480907516535148535152813275043974496744923760835203291143752613708679674479822360618587117386585468954781630055835659751491673983979055778957405197307338407131428441813981669096072970735747417878232031278722476529380740563973161198017637907486267318959592023620868308186178286414005132998052600727660770474414054404363604199934561808188259751788212343768449478923167292460455614930107949724720280573011572420036906416079104658780832211539314806764235201411244956085006963661553775523748323135989705831236501662392695440902287085957629201466878132459686576910819786331820877806899580634885254678137415946194008874970349901499041616452489008704144139660579775703750860034648256423532186164464896668362750566210858339242941925172119577196979297518348553769973019315352036937076689805005285531440905265845308441406562119825058657472603583139054222545198391856184975024446440372284029162420069169831447247730224859212180295546985719100648258156654717793976792952420166191895962711655202102495943370439328321240771612711106393036406543654027201197664086219240865416754634096435492559965059049287671076672957097602080687791466320608720803500781782390632276160966694233629186123094943876136311711705138439643347934988785843226137419569426031223868351190030860766915796176538204188686624314368368428964966499378805506202730939008211156828294963775483070533365363111721181553473708286905305152834331274512561276628645073223948462776878514034269252021254202698595480226636005018426316306715798451171866093165421286945637729901557267801698057315790489425979714724567544825475997663695265179709965117393396160059104928932232911138697743150319527133060016913598696771341220458773049172667410751972553432740989134621182710710456096357053614727482266494496265578602623695676454758068144952212564796405795213764551871508165869395042567067472116370783571054277859774451408781817025334736214341508499848074837514988186605247601934121816936202929724060914809255507548098768885389437291487623845166004233156842889908024205491509688117114045710380852959691222216815893105211738189156862160662049706194136776402742029165336514314128600680423002195851481547660616903504666255732702022135741560448208090820701144674112561327772826684056875729696600446944546430783074432699967368239254069001012409971032002001755520669111171039922191627234233681258289045708250703753801476386711932873713251287943074463622358232442246505857603644114333667529490204018754181154422611670914425467585222752574057749147384005820739764765673027083097470684867594405939649180433491340992053933923157257883284953295293921157344098963684373428432747162335079667963782364204044043025360013395196025676658846544084258298448763097067439788191435002938330942173464480372512955565880057856748482561622606926626682507611235876087633606872335991775859531206722220295405047364821388158641041432844024443325229240803140175665559006420084650524988713784025193060297775029159557031352100558479279257398162831389550810308640727922607176753439981109820317632482104938275594453846579497269797754669896185193833880265343138830843683597793723081197472258733103371780713219413086800213132611208397682017958934609777719845841557034113830903808804695179602940773484794031830689835445331215050908437002162907722446435841361705879907906751629613546729756251492891761992650455793078685866928713885855699842330606888629297882543916131409694615883208091347142096728551986116986341283880197501767084987681653250671874429559573212337155676720746374035855248698960130533592991145712844377874396136904893526233458654088574991900902687251924748511605933416606484521824920939584309674437058638010325364726388343370848683752912598292944961709400513260991975558783730872699176374409553338144559526485558582217601810248004728450696403188817152419659484952011633659316400910225042177457272304712607594112286666162964277312837970383560316114078067696502200156355069019393157802704512640643694993362383980553316802132396159659771587373627381447544189919049094925546147272862332281632778432084516931915549217310314396788852888062415150250744292575660757503035870710848109826521491881527791028928882934286410540201542451148078779464436309837107403808989197195427836635714412606445342393482026628995010369174106751331696255539002698261829983790788645142019418476015298431547675021769027753008516944013566704090663005453522832231637702832199127274610498172455191112402774405489739571273582255815130034206063187468334081623548107270602318710180798720876939184958278223721495037969221974098061299354180808143241080682850304060242477078776208207439052595587205847217007005151096683281738873047335219239399418524134777569475600305906844412173589085224315544384081884641437771934103145114452654698081021669313896979560979392932446005197372679975474774561479985266418178053063356124678999484226227164038387218824207790361665496360220718556846105810446698676757628825522293400295485065593954964637315466688697858808055088627242784215087445080196885073002357577009218402130681627402596521142795657484664569107940678309319661072931519477615853850418941955141558483425441263040798586106505441210326905229469382675487926649512779608351551647534948487470869495029115416382777636594955192969251932651967015291870635613307844549516927381988701918352482109821647891250204082096042434189707606302984536020932711720383536198092616861036582595362344839308826955976123718814106113123064627788257529955276300825232324013412897563359049223873621709953476860991380917335780047982107806786689189454557769297702996245186679118372036833474603969590723826687932932337939452486189713067232291842587085960709712019874216869577353878209675723737452370645930621198994163199059576448938050795460968013406270621582835554906500033012392059623987607892867071317478237435197858958444586135860086246265564721185507158133063956676898973373349349767001642015772936452630058180067978353736247125983733527767773422332912755153253905399675363987680227437969136547777837732589906722951647155858922600622567734935012623193177882345576449015053872337128122686391628535059766347843762792408192894807906585946061413127431076201531863344480267605831359276889233072964006215950489305983498022835114944294225944666730295718340358395302227041987148092515890660138035049091723522697139411165282923304791045278662868232780635127424440739316313019825845880818729849167715849051115278821901697683268672568068793693061468238814085040435336793259370648849640491763602940188419780683972911197382401963212831146557368071836896752726942637945828371086946934380047664991359497759956942639014628375533150860165538525484376265549673001114647092355025163913420076963751172227529433798562424067403266872548840514111424152678066446556442100952026046948400992566223014043648992791526073513859791452369213351763394359000905336531626058197266314720405338821387185742752434105766477817362456066551210466206227236562275130110046646973679949704752764461726067038810999364000495460294337803669360798953254434207451709580300515908230164369304915326369480331600693799466995478521203126353726076330672743830989689543371075705206725197268295860388758518631794097061187850050427916835293691152417789082771125718766849679946744003510526639674369632507736402712990946177446484112201216024505509787962994585147395042535568283115528134211699853365881246524666876315204039131320703608188212323887494936558340657000630325301561494819585120698495612936437410123222072503278363387406271921163407519687199889942567659939004126657478717857963352900749420029770278227381653191746534080590476068375027273305902792694782366400714171310285110151967691571839382271938204943279262284575545035506269090359905832860886876950695809119007871546445081935588992406142884217407872826300310371853611996045528034056494610984263832133679059847708690350338278215389790612239028825144134673421239757340714684427008123337791183706686606670630381199030427068698975704571036322635570951187957467554026754507913530927195102231347215325382135391684050532727841514951209726712778757745877255277322010813726259508382624455689134525071674320500846794342964201695206464302717910108911705552916035085480383124128498435479903507247575220928666274483504643307777128660895238950884306905808677277974559875800154642790461673036979450685785719349741945456385682464456424931214307805282922551509475970988046575339934471941082962714773227631366587377889086006418131605314739650941070843801285122759566727646885953898218805556447700343400094825745190953167812654151722239208095912750366392387099307988888924477717083319661720771985956867710695608068822444200595611844495456605334609570369534368946598203615402997780336220315410170424752601404217756824704059336994668739789503320580695328269905882630986894009100261605902369886009422147637614416383780300843323284752376215518240736505510901093940803210734181464747950208785500716134014295385503958096857707584871240470066320514390683743337908074249115767692888795312170133809616992359124389797561000104928577550570726619643060920792102924554284959413932134003952501815442271188210429135482425354870504740087141007615307720293890443057776218940991615409594514605586867977047368736219822877326715277836923564778890938883520681547803532286743370955957853820383288305347399025075570065334794062964659247587348074404749139698586968803751242015188532953335213092548185993936867491588222605137644886867173316254568375747481323558487282722751410169058877028558304704109189130620996607435609199674081027687877833972093744419069711116663064635578218782456056698433810016042216797886675645072083742986841903293323763853119752931322881355065888750615848717034892245084827371486023731630285216092348466061385170764338389907718040827075897957157869513866875781021960200189258301325668840204316388946031336373540325173900997396975167296777749309354876713240795604194139002957812861172296199179540806449404729988732143419434928629707901493493169905316551558319756213070546640467004876127212928032317998607899677787519996083165121118433751424401129277737159918045576333671100924479795816688505829344493180332662954888182989982540385754503034038066347569649767597435259282736539707881742641518757328701186180993675928601729889891095727457811553536211800270947073565445983585269203488546726534366707350797576529718098166025607661424357601257639996665631810635067730233775361221602968480595413078360252081184587407516438216600628371428101385966861894543797284088426765797407937964063005796815900810375439861949928450564481788786410716720045185095335192876992182940461250793655197980171085996671657152574800127657225896538306529841084223832399255365013561993216722359997323208024804371582695964834672006139900350021890799228735152874454971465411494764105132378977029123488222212635537686792658031995719321595340472168413748448505923204962806143987021279090128499156760224824075080362646297409580578921020224849804949012861244704769528746667079821563143254174573320330536941771446216365488079643069662742941372441683440301116736250523802285418159589485307059847820001310685584363793959051669820905926129005363135097205681340882905513139165829648204216708065335869641931540941962790409202712310650472298884850624037820725357811921882654045544110783674299205531885782910383329579162191665956259848397842518294109394450682977093521739733081505973975599164890875796389080144800396082589138270549540813280915650334176350154697430755794810753328793746588644156007133697000783634203879425856717606211765191535857370434516460638400442505035643376058513937729344392631224653730128643480002834375855737348677024504938352240371880997490244245994553840986933046457854290347324085982218898029973484241536980405960284872614362175033313018976957461947628494435029136523851619592267020916106507330716301812554376293100185938267308721729492411257198365810857606677590247467066441465367494992935052263779955283108845310693788849462094691658339144635050578773338287319111047523793096310610213232386957726257781731396875721310055213904679582926018119889436657372809807433824012390428745538641604129014266341465048062738917463329064847148308286983011915285744652387167268606443349236612353494459697827677250966478770085300906556741588537680544466630810564917496319380895568701731873244968666662826377010833750500378644584821079117507828330731459783168000769474114982195323807890313359663788918825165799918733141247629968831067588929137152573588328194178736033189206344448647732277938744813643426261785871486381944342862824691076293299818611343792392833301377662148596669228016812278315522444889852418766097120789909539219162478641588054678657554028183727918978401190992155633692895109177678792158675275506925357736911441943646340953879461063666457913587437482330329370330024326737674649610246863009322217944474591645255516689611810360793856557736463228752484507253761261133754198708378361970929312921315757919170697269925036236528196335473119269298078692377151130811598935778263447480621007505968487219221101472515073918899896829917484120522730876037420868788195562125221916276957874672533291131180190361120209172734122922813835959139415475407160352384582498339013375577393625732682466975506312873345970826823292156950195836798105034596881048581400470544520323474515295688370371619090038740396890509736148279559772662231003488602663078533414743362359121523640183656928684278844352577736216061503572333775368898621425297231927886027845103040770537925980678492155943888337809187564001111234040285823150162181735360075383432167872768776983662559244677355155521361338392271560908029863376788706411009519241141437284090679450631787520918787181385423750625912603236836426838290869276882513561667802494102646261832617738429404316079290116094142631795045492581208796881409199276279494214207598783370487506223273325164474044090125166542658830409367519506900591854131536128425581289889725203700795175628603234008726640569595513075721561838720441557766779205921608518368116713913555415323690035956108856413498743494132961789925097175668653583170261261401209281769171253645527010902483941360916871265213200902012725213707039197673499487347249988385153707150472153746795958660388616584411836472838037343876768143750062438527279029199280470989403607999660769244469190529568295728369685710742820485324098599677380686749911063125703250302419402118422716505737643955046560252270980957659253159529030723434219877391767142971101374223459579779784360940537583692192198716220910477250362750098183000299043014490307946661064927863964815127164279101119531266531603405918310622200917644435768133216679055048298455527498878524512344903268650870810379630985080447692494730560426692443765798967714040811968668813524783801956326703159792140571193908164546501850279539480870253855531900454136277771883775269992100256408549650771086011348571302355144819260904787934863799532605682633424141673491628299845588944861890899167937340862233145150450224736966040143288590219868421077266846665298416819683257336733802182832881667047174244531257115438074307226090810375717517081114407480225096335455962219199885185971857491383954796424470493679227362129585374735473842660103409612452262543600232829942392531698890888395760507931841978527322634336621934936793951655365022596735064031235569224307209027715523898388007381270656443092925664418878685096982134046315874729973582395271629187087413331058353262992889042480529899699356374165713116870781343667870854062066308718140217506774653158326728754147031970156153530589802903083888798903011483354681142273365171504847874858770189711375773483904777486049979842282979171535589747654013146328298117632621425848445643086244796810771166317008528204589462224354132616687575970435044362741054835870883185783141082364003799963227048073209941414431795471670134442281395286823120496505079230602352468797973636189880603927156168661688117364242478450380959022768504261985618638325476476984170994461044414537944190511678361883223364178211981046368917688124297740790067700593764690893228239473961983782901185071041676025204990769102494811144367022691023202729342180071426287524054675522819657575281034791932275063294627547483203558450646246441290215885719807244038489533876797256860655998547066534612843910065902150989679493815148033823668663333399798450673096263418467787408210005874158287686274199779228492304796559785895837512182832850161558968027802228987412944070825106979217903307925718813821405755417413645643965215620072231091746113371723122312610029581016831989781598865656042373152589038876422905396452025423277806134767513811379914140897856316205253572736033703824571974269913467668467026788054079705584562033713335089347540283064892346421472457908265534140399020665115000615039218005416791383108818071466131981492116028849231216921687274252158208937252477286979935845314373787957526242911210531637478402136644318782309194241111406482057994717327451635138068842661846201280781830015498290526261386618892727324187209357162772152093388302738219895405823478824325248836097813914685947882516111407918183757376912212847136269828386007625079538904219223003292639904497571768362559636149862206462069807685209393211135408210304271327027320915680048263291473688649736250876575603045720555611831834825059552107316685236653519062343586556002349006162818004170508537355496069146439096807377395113123236848888157587148894317189710184477173527574261791963272487068864964865309062988002223498588257216194769434204471047671079025329509683062569797516359821990459901306158908505743318383002983824577538308165185510816959437013810230781743272769403911545579094925295638542880207713594202759017662627365734277043521615652532995637432016910684192853075505982593275524762518564700041313425972384677687987927056547769253290780292519879451253138636951859292033874515515952135258621088606652587621010186407369926920249696669631032145455453315675469572469708781016235730247184505251682654101147258441383234013771884690525624201321915920082930320959491920827666712442974470807318935055024210951773200316886856562036549081833218580850477288297215079088311405641553899183349744117400891922957028809622752961447612056709571646266970960042826577384918691481476215631991258668062295392204886523579583874170050086229409088920804627178036418933250745322457575684028384010308770456638816300285092711113810078384078738031250732244432854855964464506729921178177977540703758940107341611656438775218702511599927247756161762148959506332413875050887693462046155478980679852185813943880256193873638686646059170206356318663858398727495308874214460612957542751720203916061727744848695312978753160797951165016536656801645837543377164797670964706361970441551240157326024940271802964113686855069223501388582136836940277296983737794620165101085659418663256720818755976269127437022310603826815165174687476158125599465703356505585928067260018264507347803245125893246167152076856348187897115923377250117603784543402363756387577465629636983589845860304234355073238089928916916386512675278516053261958663858682171858748711615254389900564390617413089264407360547434902967393856761926896436843594581438379698278365666021546102736982209875637527599531995552360690046473750865555041085360796873642494080899594200618400889969851764914985525216074200525902895533600416526074127114124678115165072735250163861797785700459744178197333218201955280014431662977451131170016464945987480238247368991713013652178598100618321076371310511063841435106280042292003941785914079711636060407709060345771046956784501855992374196300864584429446021310250467208093670372902509988827489234248037132471842335179881652625606244678561005487138027312267161136084901434418695842575974627805491644027878265131487336530738824344339848322802970647783648970415435918877486936944620934210713992620581083710878369726909491196924631330447339021875286599072508070788007069969067126642289402986727254307115229954861911116697711036931864630958204907969003456793083282850477227987692568964771236703842221884341332357991705296295568305315561113386689208744322580580851357161500703023487084432275136403624888921643508511274612269452875108624155922973702054436567258923462661096998796709729425997054467711894102293240581174819614107956395534235355289696075176447435711096200896255426738312501058997598370651859484550642793889636589164385353811652639810348938534148883886858859101663784110387688962246849813361826627614449349223511885707583897915497776743772141659880159709735568614341475073598032390529943969832880959493561217295823516920008260855848884624982289445986620865155348146958005116880002534114362095429618243205900334400522160593601387419769282513627791776391150534835298283462110150715413360961153576547841718622392697251513457106010473400868501348868211289268140014616745973978835217876531787343824061710749369298086459910896927374232686556051054011875413212470775880974295195124291245302464733656350172682098993797928654300923606599860119805718192998837658637686036489766139830742417231813123636194766493376044283533391758033505071169856118151641561037717805898907629643310200949732210038478586189264436278570245784157719254687364998356261842354205166516070638514082419472614948875282347100468103833658670293181498170865125711017598058426762152724895142290302857061071793294270382362520141483153434644103887758511611513632397417499365138705774950080554556945968003839194153723246365674495255784299746373918568946990255013207610936192662544699138596441214386457363349109238535778882473134028041820768864963236472448902643098036750334327733826773003772899068068719881829516041660795357373614771054276800123903147758981440808048974422897876348435628964649639154902304273760971645291556351666098180729933890184236856231625243780539944041162824160906031538105013539597841894190537398155672040791177127661356605180219312574025410155222281936652079719809806537744668760586212391432989829912065150885619492146575912912038230606652485206614780044846581573693051733266697361212269054362939947260330405727046770755333313133490885610039944474568853422917058742538930341867695094983474891849867744406097676477610049685845237395497872875533952599423867508643297979043921012679308542458626665414136125316152038034388693314889376906109211279697713992798864460658878336088743931282921282982936297157655088433334243216221945862773152924625690660675928766540221461488378514471172438750134739310271190877143981089572577124759968425121087159649216561769388422814801334929816498075003858330995456498259639574811372937555036586567937256960784227776457284357727284116482832472597727232279651569653289508808394531216969385503572087707555644543990164118266124527170310465951352834256408245279266623997041053854183800982073389410688887842357264477236073068377332538148538455195397417865391703361574980373447340011441179260804027282581413145197351046514052529995146733969904185215525799816971070855852469635206231978714680769816984922411378533938113479642966279510637536968237936600573543168230239680543172111152932366892318328856300165474061099874129611175282278352684606548390867238416928952419508923404862952521038983372327912967878594310429619285541416717964191383485410201005993795670917020571997142296719594560424264738149249817091432546304820038710387095800343639088034447183405415590618380595332782781365330530561338494740450824918352248133628861075941114846627718167308738685770869276483675319803175876056150408936397287415489111133703767223013858104595448194125001518807396720223889163902008338086807781511334523880749337822124315992068339375682082139776779915004482059441118171074792119947491923648766836825016635408514138527173461279307616433480955783000166458476861069062550958484211630125438717928545820150815174326457834143467467003635076086347546848682657603087988501402131853561369344529221698606184773855009219049629370961508917677395431971947570569894746090584751116128717648176995677792786278118324942417992932634905318132034965961948128980111772475987662463454835461285646919081589241747835492163383895539541538386940821565459470275976278966072724200009252081698270731161434222241338131206547837518098513799323580156636069821941900001973028619070086817062560118012567626086105715862997770957218423161818866688207826932666408336258725769293022694398007056731264303677436144351430030847341533452663378210779601898660128670968958419676682978769022355934298695601981686824185642318055869055647181533918705224059179890474277828842743487033318923278529698110929404027765760981128903309065804484730551371788047932376601191992859706515140250446023189996409941332197576106208764386523148269870376755225940958266774200532195915370712359226518880705947252731902231226731171478552326464045701892045115864119789343897140705534637149722077763526208602054487452963380176453261516529880975285837597220288803716479509763384413481368438933101601390182378052263536875644908623250983285879902879703556038246080690808301927469755747510061085768569438303869562180802664792082961022933355846253312015448685195884219193656327832531391956396584283195187053855990869508157942627755814153806098869013746646774289210958760830098271553395464308330669975616770280927798708985007235359314845957614632172842076526974228133074425696316303549146192331840443050898912929067708715252448055357263250894958231738673976185958422374472529035988715722704946698276029853693008887958616439210054324097132371819407195970858559784140850430460650039086008863873832521955254403842881515790190294531997143612333338320529513742152517570622513288230172895218501867537369080788785016201354155895470785907960552512498987498515970016362376900630190115652441401165350532527409161663220823264011979561447164453626419663711171031229357247213961232487739563329686392968453693115232993638825288795602364969122650834474127814290640623972363458198898680713824105315896781044900750361925231334983615799382961040309086120785114820881177762729293652052918182765119986264990023764388672279891740307839118133484621371289588612509804445696438462560282352804011573465773769588543656372973925442104456399175298596777606614938426448813954085786131526890723509273933799062341576131938247773879607022072744888902035798441768613941098642615932834990679303523074014756857578548442614713997622096720601441865788154546122865157103917157055014675459617529098903262237496555353566062313164584145189945625388462806963648067814728436467738591539130383108158374641596362951366323192707876556374551082062213018089560185821634680056431626458053764951538984969005661506486513273189004873381604893679927337531618422441096392730781463696346400334120509296178013251417333886889689124225268550972502559939676874268199919283866400918374973361883928636538964532192662796868049400234194133896510419978594228083777683953356082747615544867703376440189949386472312291561915219816089821546720596711738108487713198531251661392781577356699017811338758602693230148214142698117420997773531647332221603353018988778952682794679868368083959191519369562588483150106963211531821701622790698773111138193721406162679284152050547460624854664635487460161466095964358468270294391292281677062383423978793383288207413632147609334474967507481046855248757472038161268119742837751693640707916748387480680070485767161536528565531705390516926073743583920667199198082019236271671520264657849416872263648041140074659047881027793108623899185975507634535310819565919658279967346794779794325588662114121210877316877058807557630024763856064029291222132886038712152983536042627449696580141377362650838116180506950080709725598223878485631996609196410706295002103499994701552723938614971938028965831468279935366454497025175100320340117491508891516946384359791694628205412621029836534967248208341329297225853454631151846873802446341665349803058120919505234889342055476710774114865455369193941260831066529028398573768863932280501349871132097108083717306559127529201068053832241034704686784805921604653818770211596936670050919558280623263473748021423112880238408842752277242693580332194419794867439133936384320218545793562925669211028357713754889778603193018177610042255261668863932839677491195624771839648195977093783906081007600391482185347371046857577139359347136316151193096769064545518650415562148292235588253446044436905383153248714484535710397488578164525754540424758924028961178050828148010930785106633017625422088937010986971602080749658497248068222611132385147225373793864369683804163143562698087432662576505890277610312913204684067282378350381805907818403646510337864316594909783438824898512108900686128616055554175132131069134747688211448195083144716960484413243582664493384047838752381975614100561445486031425790474364285176439705853558859089394126865721149030160083484791248424364631242662040490968883354779911989058567750686211201492253720136097486321121729192403906553778914082765782091391572158309026543128917537001732945490757567841995702361673006684540584193734574786481709435900975641722849426494702552879550067456510451974919804231069129936669575225515657563619795378950142631185303116053834268878585173504426763811503861371012533628387020592631956181898332401742657004641862942880198005470605039930009296209401173191977871300594447289112733679624007256334372611305239755866712300936494269614995597790701727258191332055387418900931957681247119225724458736267415153364134713764765579860369348308922798789284203976568926381491750342554277736842354797621459961307446372568209351505561694007738432665565557724713085137833050069993871372120634614730441752518890735579429132673547361829117221738571764957224876068515001504118334996499673733613558137440305831197144623989823172642912990413030856497374040240820835835376834425197416107263071402802665667156764237478419970760629222413711063942831579976664950294568817318421304315109654972310676176585001404421425642195603163230617636676911602026924994134081052588723114249189316978545838334098945822043959361031792027517700225606640450138267628995419107857847572529346991008709072096393237473124899858452177278259796588713552842866594022690828059653843893823704767235441865031373734305874186583547215020280831174782648475935123868879805427159639370292997409196827920864448847824361093113608338678425430754023527316621196367494843970313881350558657317354701866568447693730720119183176878942204021027980771376017867608659967356227792875476875369826830418085376729389102476896948439103782357395776469422212237317051521522954601810778271049600441969793090900554231459069335945219082934820507068920169131203142008422484181394758709183978917327070909802221082478924094639800889554004196457739283107762202844278500591483208487217849278605821854409061253944976945727096968719617189341901824614995011676908656936668820751015905764489164234583469339460402910277667636915461565084191900000225738080638016911168647515132630523313252359902963116514663338153348438248395555697085499770368392365686963768766576093157561914865121299014912160141037993401844947063541336093616589791422631877705789282014538801510333592429425812921039437768428345964723531928077784384765492643182130078873483626574761939881299522958820452994871666283334173930445886264867278575971018910868280502920648726599028242408642156478572426073349040410378385922667010344682194514682872399081747426238486415781666481817427430922465293703112773678206855154526780838665377681221230370461273035548714056897970443588098232858086671027902767221839474972532149565599076012052758165378122503194579884050972374474926893987845344558796792795778584700296332185595058655199999511183553934007668469114010760125456854576585437776583870432359556166678818309695332936275850168470933353067016170388344425553401584514651610485635475555644047823662927093303920662463281589470166270439816006052051741344055284652653252780812928088325787217750922519045598712479238469205924704778825949234504593542843805698095473611916886110747978692959530511571536986904009271055865990084907912942260292483627655244762302686072315448761229680045200828839296111854443904173757152432471273402144245108315420041829224690695624192255032138820124223357396994185328892352871755140437472244091164107013920132726443201962500168536461218880668580342362783740498317465532287119005666642812992917075320731925729254234219997677470882151279828719930368954982771446116472904397153815821067548320494893166801538477553883820482062135599636457546632109749166839582495209113684481125111603695233438196108177912540425189797495929762751749804380525428198590267470083979507546854804482101686180473005826830196176306465024712069995758171514341880515942706424582497315985177586378597914157379547657008734314701490125521869188476497360039210763193755840962643196254537359912833628139195630086559172585685681015907567840528013103016725937401562278015581879741025293522897712799540150646201611880292061669356136892657179336986832564417636471836988818870481956742518371356201512152231412080319037491408640477660095797605046356763001510416639351928042269488288772156742560888899882001097989997915667855722881221665868975426599920849729281837995256573636451496362822594437131855532705472094436106258459153615072416834368715055528796555246569308027784719679352326142294115378170848790400374637446005731672280174765663371276060485567376075813669585077344570891231229413132972677773522268886211871294929103289240919507830413341364934567638725132503318554290537182389278267860337542506604753388245142528378330952887104290849935309003905782433534949958561847833531394807262506759111098125757021365740275556068523485361901232375882925496722656324722563559855776399887262102518319642725939024730467528919835689549334436205260174624434664041803255832857626258002296821358847770468372603115922936631331424146964947659337412436984539302634668882392407030268164786970031601112373527367287712220133594370960051940123115415178012946549022193121435794983966084393877560387216293426041046576901621518841640262631270659004490214244645739021667183105943460411464047514689858705709648137849091271470514459204006328904685952992377669108752821825766554950864133066649276765396388811886346332247191389657161508436900005060966234211370513643251892017793966600517967590664842756011752444399746328907900534827160208694771561829780949218100105621059258673280192152814697572821294566202122584329802374661127641324249290671376071194671395149797531900092598347069249097258470378693418601695718124000151459752349403160771671901551324751737399001422608751696320737649701818817091810002407411392984725927085859660430773117144875913005731922575381423809976526841788497440021315008726432637671159922825469323972633135277198375070740704273066697554343171881122490789930391439239374418585593061565652629899124005763914013326470343998476711813272408314401707526462479201106737787822894326030825164913608474817438235055506634415955264030624958623939975868064971148734799350567256569375348046190321375821045021609076818655854278272210632600883647044858210123875888825592483258402090633008349622872264525529730822903540376962399468325742883810338245884425890093629236953492501915175269132087217271078887782913977279980791550402066735746460114028247427971866756731488330842728445196096307515190665038495722968901135429809178479203200594225299231886392911999844797385654042603346866474680387144598007398458894390108912894860274459391123504100660917074084343248611330413887905499237228749432568732656700294823431729539581944321031307654466200744788961191702554946949504096607236346856870698356823687785238413404026437078285403972361412708753612767798959866115037602434352307154920714920280274154828731802916650837846624848523974989509431352482723143659654088401906248863154172989923202299651445173711566157370072712243432439306840987872955357881713473315515895883387812676211620947851387550065881594422251080192286947798343072623371570032034334711050082805361893799670571973292331003859670577947276960191999783802389013343112681471012783144418670260281879566430458865569919456809898093500232867794450911799719117541896627904434648121273879809696751104543779901844977424057027551812340838481494718957221815716810831957993457594563434379808101234238497750000861765750950876920634262644709006873568547633429652699727027464973357570057523310992795345027506682052095712138045287658307723178322254067798507400833095040055196922914733663760529698701198447085422216915869097353065850486427769911408122821814871417943580167602678963503100788656011429667446796711746883406011068538615809781884971394980331420689982279185865154275809486325319594812977213150093677827526115014080486105084962746148346555545002521636789933987113397615429294161945657156118212215584865205258797543867564633058237279514731699778667337726684180741486933755305223796722430055358978131212288250934192357409036269828437950112556512987233657812715152704955526692325659827775890326196104007417581126653434590055955082729748754918718128135137672493676798593269159651343135177928961691853808102895648247541951544768309427404986980759260388829116260123894550245681882416802811058227739569008675687935624080922770354910556665732852326174129144746895113884092621314872128165087322728008006590142401354664565112989926715206176981759388757364204892181031562738507824374057841073544487817868097019618822399870479270766211729562713424949685631074539051505771960985389657499050465614268237256667600576160088044188193634778030668876298156291809466206889439429913150780301278636989992270421160584176651107808602643453687278675922289545122425014473365019226946242362565016949185305158125390476035399710246455430798026580810129626740883539611963977076159774217916785139980507816398631492493910803894043265474316881793547952200169987969191822296161473543822133418687899596671097524930972985947182386205303091074816451685932984255009219697276340919682153886738343658644445995622642580877278377039783439483829657438651134986677187788782421171626351355536112777876143080978625802947750943406984671694270804886705665998316814217349875241466986559144332419371452358934668830897825911919641000782672350614129841731824972984763880123280640975464880821738208474957497377093090973158061911711314896386991422776596218769163535678642103199098883795200532411145954732714368365056837304840855258568431138216719015497358871357560105168575018162431566724321509245046933263064687322841411514611075487099271709878924099852933597170582001353432717750541281620013342475599946220645755053446211533386753433272918950887877549982747842254347634080522962703788781408357488555328563795612301267214018607874700640979511085930218746935258035252776749622286109107866053869985838054449604194267032417099755926164009485472102965664838315786832044576306016005768630582940234730277686298639731997392219149698058279080534376678490952367674100578463330124365384813022710451551405358271024616233981301198598916841501761751266692971781157740551453958072029329469235300645103948077923457100440918476954792461074551600843562530160776512274862752016526517467285019455043617779541361174967676412221374601262169806170173068657038860356314794166823054726072683378196565974578987136317293864931535370009429666837923767383621154180828214749826811378196042097676732644064285026810470542543051483877862861306133546902768633246401023264756520405106240496520195357675244854738790953401780602062177419005515016510311253052400693773609297734040186735819534757674235870876872161627881880388475375287114484327668007473149120890838215292386291322097849497009768827424888303834501040030602257549931067387735862403755350558856629462871336798183410697037647576788218865643578552068510447188697693934962078338022779364417786552185434580487315677416801138004968688422261787630683688063052217054616909954244568498957770870194215456672694578853614422378071124350497018434470824000747978571679459992604209136203698610176231002643947109489377912041474639890458383249722162632840263307844296456437642057565679968535317916442830418262453394832049407518534198664787405483623903385718069570699628374593318469784429463182628226923535749728445772816629180206358130852200417528466746911834287683965164323187796828544696206474461969622065630076233942488662899706638327023455753936968964524160301714968463155853096784911032954892004414184544112346943168289447349219609650376072473924905677086304678323857498533603755648347004749254653542032003647831883564565909174444250614872596659979544937491911079826266593920385201089028387620794172915739649230373850807641711377089579411611886192147960481112951432427480218174055719806994487871751102319427077508054372627816543551958207542380956216734479536736376432132570101373576274393413315477436348016539518198406565913398150856478265540540429182315168478057816363806367755949032830025128894765135520591621392634223602022550811978689770681845806376009522296660240066659639894429297833337147310586267727041856159526913259295814437209852679242068269804468795323467025430087839747396224546491402629912314707991044979353996887395038516912053162430255999935079443640554245087900407718923807260793269395367115324954356093412913007125716716136537671594124731954473597785793638020104069811997642732671580716922119226856100357097091838777774708691090103490726837817132773260571472864657413365449557181420114426864247269628108477361207088706723536596679625095553614517455342644325364353457404381006253510967873889889605722166338742148480363526351549699360109697718472881070916062184544532268260795335710218421086869646563281220564808397412281322320914794229337233577394866329924825059970368652605799809590845535752705123463140809236304176932954179593916242454911834095474520298368550579114575132354373147936853770151517062493009427523397010872722051565992824682502646625749844273817206970965849182196542702302743318390702292960617986427548153697592937209144346408627103034031414640272471701884477691004176637198840675541894354730372414894471788490743010210008317640348425315593367668761328414460622332322696245838379039758892877375869694975560090833717276388174590312253849964803513160346470507151534856153457590178018301870926729663663398736784898506977678862325825258731333324683613861519027319751385963826433841786571795748134107868168710535195084503730339144351542048112825859775954336176093216247579477108884718472446106231238873288809237244875813399039098482216289080827317301856732486381970961880405435335744222897817845372956505623420572809259330394826753778846035055948721888460848464798671980989024272217464272672135631661562624292551755839932200840271089344652030705178436124344180681326055238333933808737993160006548629091223365134903328389812059149100687278462499259525597647927521720417092333715383926182675834892598445095525477533445803255009733339960429368400008525420358736418326530708830977384941525950990792561167295648956941640986547350044081196942689604601175853915603955279142931147484490858740594284266723620778107241644003909211210039962554361361909154150497454124996132658913446537437059076819170879348887493590030865418276773128265158383880953631910558142642962429185677395932075011448357909028825999266451746340367308329372889631470450926093526474054451240524261192297458679359568592436959380778282076025927001592336486138761017190434752338422330613777109707001586352794075322038095068061254186907733012082396760650543135884548122552163997402330062006660308070756117714787608720014084524079298766505748085656410919842526800018064164544707706017402028770437743808555749826412746698303573135673088012414022016739777322501090680326996176830522277603671157526047612933588436781324460531850351869772918787648972623030422497969302378207098925276245434091444865429400276197867476855443757670140011178834501039951977935814195044823608624428586244445131654029796328401528155709788266068614050528337659736745833848748974221063409754331196748971668149087758640669177691053344852174460290120277278243300692125950142257922121994704459765654892351842465786158273376588273129577041178205765358012038510364011395076751078756043376623566074213064735434970063667091350351929366634887840434878569010203298320018788178533232507316761899820185356700659232489340156785756116000198438611075696307020997307493486016541110067491317062699138989268583433650034023395614473117560856825649981413799682330948816930860280302400166554564065181679098629672838949944322235139989866267333170537694463527304497605015927924451071989885755795019008641305628987380340083033636989033995716912700262365828779579868866891817087773764627225167909476288412481440236918679988830375375258757786664176479043954776111456802213466133083363612089390997873170612072911379051189115588870608575489817190605357439562768614292993020075433836782863703462605310226331852010801344853001330863279194045599532293883789473547972140863633749960382084296747225959952859020849867227722156213904041521122304417592293385870033291880347613029961842983586051870927754781357092765144528440260319053984366402386300000625689577608476453154323676305853514129739259908808644486727266226820571974765485469104422847957773297907380610266203210341135824674273904248745824327452802685835633336391059116747365592503089808045544333663518267047867433608828919386703262222870268531067463978055256034550050383925758621818100730927967502831955381578400624497772908434165830745007885049934842825854307024042449893771474511451934414776226629698560154383424080357690477995928682370600430096442613686207038890300152987945306250880933849889107307658929367709493315918407471628586468510878351521793634799006764131779272815619223301565757119106760334369029568056934636789823580276258104755069528678561007396345506385427912017299783406785552791551261959114303913679257021419780294834181075006109325887838684431132944135522079374935290734790874485092518654583319163737323921283474848796764999589693229161177080829009899499953129527865791422033396355502201055261114104029127509169291842094498046861268793377663182235119238764749435345472362993143728282645974266558774020199552385485190942605509839338787899246212719268256979540740873282359038346202246092857396957046018899512398715828672285446257940134882713642990214010288011198799207374142771746588446892767294153875873028932872973585887782232090488711244706333639153723516688154988091343442136234241189521645235675900405655986671211720716349682321685298637361644140789580129537576901498541243782658089463324545861385927785213011922478912145414164961236095503754572560135869115823866945628637486577865151059309673827119275827763482874216778362624397458213627844154068262356611954668143040325185251432615732930096592085131984326875367577447796914247176812783436550172827659292044265239864716132361697167231006207625367217719505578233135907642011383333515655907635649549053570527549001070491236739697041137559105122515521931150354146380414082822618568300404417022125885153537126817492669046897848143831862830637721884785090052245853339350098766656977809818118737740807373728384363189491701098122378992591709681997690984938781703529585408861870463471390772387714558575710765868820592768956039304416137327953495460189106289875254178758261067877425733622880729068251486513842064252505215975759900432875298356286965215986089827165030457813866639171791552274260358989338060633065248138514865094054032553059949497968349752599979655823063869112974133219001682525388309573157013789591466764036528186738539209375001438335898016177594825858817238896837636420748298843709769715461528243485292277926060049926502998936008390711251347446193958873310131998456349452364433608927692262832544626720723352279747792070455104563680729223093423482966129925359613879307669683108765373464729350858891613261215397197916408733528277839997773592566594731057377796411304665930313273324800531237808525254581914224592292050742917011670827964271360286976992726347473125620033879014583334772527678350743968183825429920863465576543222501814062153676386573432449296932934043421285967822829207225492393753782347018998993917257902033213726209857669119310840490037982897867878559653770485798066624265041427162206995517534490495279257410841754559735682457818739014647800229129793522785889398841743089792705004175924755068674488724324142399771209560149414329193208627204715688361892122215729259577585536079704282823876956963765551588762566242270966858771238769680915696701623844611700521085402071827832827739089914896706817226822564864724936936780575584535179693676362072568343424658477506906779903568509097233421866377824501758456665807139706872620548615208608119233811392951901246148300811154620866303532421912896896774314044259165261950643804999690419797506988736643364269940401682273463960170287631427333869241129547357788318861746968555808312884608273049499780458636426798645881676785458071832085382229582264794466431728367605206239539770610043214482715678377712452563277203852770472872334749588207118294285398211723987489354464466433721390336556772492839902732421793959638562950731296393634070567950974724798586303420707792503694209877566780523296134015867369587066781764895618660565795591761979001364307501055625483012015886250209017122333935026686365817212833013335425866748642728655615218164177543038566149987135021291828555016096821165567112145513155794587224224256685864697928943834093640222346410739298428858637078336211198786761914682851731691400284976030957017009354947712019029153081146291173902714463906647079399497387814734578300966803103393068208549984267521897565654311146920640754643079568892841633743722600629196360167440694553140399977252651448373803645779749393252162845138963619716794213580754123018079604121724168054287029201319989805669885667067687891617831878174803922348640677607759334116315648219334018532420347737578549071352118396870038928128973435401878339202045915442471406926139458198666976732095967224313185019195925749060283287580071185952472841923799922104084709893008983160730632796652216075442620851585515497554421819698224946025346054310886914185231567431301015421349822320170273512169229684006521600661926169270221021271547625362275907030367248929817101793818064617703374690397828981635904229311798396669658062819546558010323691212202239244189521114758038807275059320758838624397365356599404773014373293634583997776363869280968474149472670271679797806980075686955843648959357378832708346104830973396408469398326725351970448305174623907419357268866938716718564395253288077057677904663257464912746543812615758072732294406681766173877750222175845990884877946261720273837792524297161752440071177037628864757032287324310795275299475047916632042330045556280179288657537332150778026432225143593817317777806968392690670249649827301202840521074577430713249670588419743537311577846142679404930455895675828071029824564916353996960989502941073081675063099700156446774915782893156153587432886743328396011084555262087640174081887032825569777149758252529299558089502044301827668468520074240412999475748253158113261846818479100068312761769997068065026318583084809026908684616730466944492846495682703531089195739320719533404051040013253874226582461962746550393005003304441402636140814016573715337738100877312289998786366309960370243728285832463590361288467563370178632045420445214660644608516611833730744504163780578597784978174751460222750168060677108414810659582802743403115329674819919465277401644205373692830197987230325122386290130428219401429830679587934768078312347784281764262329191928501376712597770984978503798794836838696496808653803832183832234440542009077709105574234480937019533353680561639348261316624839345640336650320310135151098105199638672451539054814024302159769423882257505984672317820473394254189380883907138172755745509517790238658492131793877135167358042531898380240451280683794129222352338815046698408393088806682806030448371129998935747335864515006553593340711020117159124679017816671448114788419501048641717320427017114713877819588373311529680390410114902071903284808214659447482461093573945433066850591019811661412739662472813158755273471653741391530948187465780595640459547157216353583714946018755105287231331855319024159872267568027287270181942798055705152775179435010169336829195665934703920455602411819965271483233654373150017561957042059585337903286982605505566743828684435205122740204037218419184266500685097290140396877867146368559944879256065586118198228386659831159416344801010633369680720210704688873479258147475855120357850027513850472987492255243114233372131060165528623411467981396481822823489433004237412635787201504696548880089231774433593961850371570502119995416302666212097622205952837153102625078112030931669844355001830254269170733697919467398880677736652545856440748457563389160552837121119240741581935408661987480133908900409613265908840043744280270635861563661049110468075060609514539745709839426519423196120626711692818930224831574642632669812599272725537143929276646385328280230267441540294086127070606977990686515682906411741477744867842738734206867732645818012564978502576059557417885869888836016748674767077346044161783523937250129524555812202991690947591978862423124049473926398993755611091460935978723245600561284445057171534191661248328408712085029672645297873005708705058529406768307579106013543617369055193976903425675685653333999689244566866513888771424741355443744652453779889599951337364532022213073506870364506851285542100525440605278847157175242446083954565259014874152508504452281596411202139441694005827832295237104036484802618641612752331283313377755926542418405107607635035815281269187694748185389824053279699627909582887773612602827406159561757139423892242952961049675821598665612154450030750819479357336031260345985244455503855511767825657684568435440473122726384519125058174786642293495160272395307703709220275848922120667779010123806190607745577082374375957942628681674217953055860723413256469636180917618092378697445092714267936813123694908515887518798690101504172506485676035051074721862982009665144818380272843205651366056295904130287913072670766920243998410527303957618049769112030594796739258319149136354815206041611189678679315797342115440376653112335116355105880345931374083686530168117033481893063753540804893118665885982325195262069967457629393790925108865744613535360874625145270274952568711375187862634721030065464149411994183419184392146880923186892147449080112828267824005696990596959228456535752646781622361526031558109109693234542081665876081312901514571619766866911120321586967369040654379529753501043733936530837406412502108848896803384289614426189495124201500528572377554671296436726892542414952324596631501855538257745796288737412014694888477037821816010481769909023061544605784820956451899168689969439377233858870440903412384244252333110631066307045783714015147757649424636514605156150084390503185806999235213001733614190612918861772782176198341779810299908809652014023672091453535142009544085039246952784259401133895750530840660099923245607177938055898470144375534333820456994144610997137516558304205593229072724485824145931829349703545309658926447538321158790185658280525184898292644272468400771418792768230301361798490371196637672941251792391742483394642977652405499708112574288359636052746771647175975943347927678155620537819320652234246058700034239329528529444028633198409528793344703740375268556001830251781008343480858383573504808767034758635574846071784362917402911131106318174430166525894101979385118799111915471205944460268044023112982070543676465362383046540358439664274083287447357037228917235430975901608962213090838173076192073918471742646787355670217958832465711131841344819727823792337864250161373320373019625091893749639886389414248647591278182068861636497973702595561614819621551449303789752883943022338008896551891247699040148701847941739279319379198995134795553625987045138835609076709745757478191328006975307133197280594588720975137480447628907903902873052777211432914476327680387812193871032469560507681774933362952806320556372532917458163393891476602927814146963969243491883101778056122656183247854474827204280332056203280084009907074426847625959449753268485813004674970943814991126119844872470595158665062325657351792141220181052811631146707316701341682521903676662090164279126572450904700738091189369400618268829729648542620743514446324359235225101476216979840683702308836836688558191698190416307581409591264201155416227466999383004835800840783025315815149335065926845062845119638727126456669984011607884227048923661743453395571717611513961634647890699329335214936230947459972765073575420945147521995265455709838050789445511196095918662720554763276497204344524304850753836925858597835132892124552614238067760919863892965902302409921139132138266820138175044917017461619885296852467440569664348362652858529669842267541388436269611111355914895029791287290804803140349420095355478585807606775432639989977030715885164966262308407236252019140892897802986626720876989024092655668795906004495681771479809731136509142161324063240503012562547510533598149812322114779678693414745677827316765955974743188040736817616113112901797011593746536723095219307761231494359944241994691903521813850696852437099230671351836562713136220508783500625246704989054386963507646864306931833085293003769040923656710970077069828537275804794393151178865242293731125993275446504873047210306821390852439661137401249838800681441149230413860006258713008704004185374169430985656141087955863987200977028219245379354884377146810438931166619113376353665295869687272692653455089847808404296195808940645023847788926787548483257771377211415350677084448915537969191631079578531459539593133227453978002247635350500163247337610886438611563424772831780253525942856786219216586093850427785518977111380555415102464270838127564219814912647977090083953846200845972229556821031705209135595643550056073455166651473905219106478317711261778596235781266893297277143733282596924676655884927940477842842056438070781229157109730929669347353100027328602307903623155026007327306529821016168589834932577523327269326034810752546480977985487562184980550340998088079030489226978928251434071881385160255123288506975375811499454742473318016653559868367435098746440853718374371745863417281425135415170643718684641022431441799570569534110937221579359638295176318355936403777891249418503391646721298159113520431723178929350443902405957153237491553372815025192463410230398444349526798824578912959111903422696841517976948369535001428053930185475204001879323269597349932312082539449124976206373504121378356633184788678320917391739404870012967534692843202629634404058853160720669799114196458704923714221577101540249671329984517397707526167504773118491037207245794591219981894621015185819089226098200714613053760521112102585214382206935205989009961454332977936975989873929635777628428313753833440805823439047177194437033181760810441386302653909714998261973551313985729962971819463505262911155199836803148803467784765458878737590340187126477295625861742102738207016269589605699428963094631167718288978570259215848356070938017135571828687074664529983288344200785664470010196253035988942590692095151885700792601542236678520052777389099274135880718910103719805003374932802285423249487795681450850853215060788905509937100159870914988005327734208940828571369433669283282027656236482195583777582449174176960430924239828275656041412830765139225689254131250951499469921202675604562741932874533372610361986570873700131823880293586788295677672643253164034586531537477680637504773954452536124751583889966119934082239938434548545634129473830003692683190026004890370124823446486928895058368525911117862134070641305675777068307296881417211559625219265831598124976339669579707054220833165038223300087966024338196867012510956320390868402363560045283685429509914184129857319998826690892874396008413324905408358490215606279835087644277603061449897871301662020066722639679082113492510654922056927821551885937566349621233305214991528049283847838905157393680195813847120262482271134374392009742203732748972669498447531729933042704562683919845223994371361213579268205072412997247052825973276673700905749306493274360258472033374427625096846290202657853708357224650527334207253383090032127457664867051129730816588596187776315332498886628670538160938054203335756080353654640135011491834755111281900145463390216674598592666404959935490237833820262626051016706193390304873000360458772880471537821206453878378814322094309669911483268790840552047911971370461918939946278008810980515548388219934884533914747615624541138649899946035248742187365997091979792182493878175136219587474809648174888827478268022552293337789981170615089992047595487377445324689510307289010144568004995017327868765477528883958594068324591200018390916019669930863757168220595208410654031232739554703973956945500793933142152054241498954284800933907382637327403621828866990454566281986178121866804547291755193716917445359032013679186225823244367591556602159350524501970765313010682393064525013241424040886187719444134549745871860039363573649181403314612221738355237797225811257529997564077673618312993793045854874575670023242119489070938359143016130603138125619590032428618934104645617627594931899837506624596455223636467895706006421083089157315287430586752821825285201932898444844975923256782290216592487603501661906423047526758453838751601048867721572912801481631925618978738639298059766777519232565554393509708467769159521946978469300142986894189449265792166907010056940454454571298326383244807567655083094718142737938243767897162466374523638590187409062649904000174541459872716957644188084006921932633916690395690403338084519417041235024867691512537182171959899902394051703426301123413395016687202740863673284151775185769982967371248987070448154109954106853796427981986970357205873873612311925491223672010624452644842938988880820383951299011025844406621986096745502249817236275988716961698221893347283207997675022973255835047622352948471962597210702453332903195511942393642979498973717162442399419350306326705034820868630726261214987890935263047016521693208813277907866484025298956281219324230502531901489488489784191938957114632905380410643153430128115941073106454298634475709583580654186226448673154894655475053035814384596151822195427593931589057876011521710819991083655261685438516351255550064085487889989695793082692677978830260797340012868525810487286671679645068299139998744285991891836738759417762287516175010929041911156790152633702301919844974749643746923056456435627842052025075924234764749961307013349933754704338000300258108734546794898199538757371040884365442261447285423479732073142858468976813923450800266271600738669352578114604022756053760866897822251950182560266623944361643381105115019845504516479033544725759318159550785625253933492172332018715905986712926866036683967224059631570018874972964576385047740798648198935471057449530376542868016126122718025966579763307583710138733115182698722078652874693553750108607813201018390185563544331675040531498210822733228753088907887104025210489556796115353784981770282341583852507702117490721389195425742689558796320721442567335535370851847979318511239331885018771646132470800791216393608639124005100960966675298974629074217513633051282240287510575061262488259316171688526782111443419939353510613096192850741460681876254234920586175444125613218183843404735170214685365931376531145606475631395570316808791126271922536295154051885169293783881440524129684080040496883547854062664242103510741705222807243164745273465478109573798266595937261672322005063726353681272196254940877309699437878984564285079603053138480440469913826015739266647325665573217612673437442852517734895593728787452092780533157846249251375872620355288209691494412317491519986507432994612178615760697380191026431261122221851517844459126438034567089226444947455905743970410463714457852387282690407380457975972876302069754121574116188709975704691174183581094575105882018843381352310632804631697480008482263249653278575967245882441738208373707241107853120498189008020903388271047726732712187865309591827791970377409068694793745065585235472357502791457423241201656933395867839365659757067814029535787981497007092555919082003502283552263902459701398535367479904079007509026590367224443956153594246073981133309209891869366783832797638881658823823486434457370768376187599737878229606993816666834215095845098775858523770295861720350027739842105540876906764780274948762413784054724286187502652892902690547230749846101707495980312115995495568221250110165178138792410870378476032016669692522443598793150691174670540573912128680571235285329040089878332796687077643023893347453049508637313565608540272528428365222324037998516819056269399445316173642794691706411701847923634461846436037145295222196916934909595902748988050153838810923517482567064398358399983959126790253293135070319572212391233052203389193966525024276706721638735039950776451060903352563584353051263449586713973541160086039495335130646002753155503584358617209465595866817823401923991543825225368659683753673229567092013661571812153478142932777651034510917051498088451994490542446190621507457358597767376564616329805743853104132176739739833262635271481723490809817762611723903511626387768355569092783575614439906159508323021741169535983181802199267133521726554125263727171938786828929324545088175503601123199534474736976439955349645831661746780470518749426857458748013543635574280950826196998475242040028638149712380857685802084798845192534776577286804680586480161025728833207294412740971247731370912854089488071903200422327548309656775694394645961272796398554579169824798156837217682278194388305454403137784246350097337861409086111444393316868884302115246602765638841974866515836552496425543578855756842395059888712864262690325385671731682928420930759147202126166662702209285766983236176826013556850588369535687187426029403349117391827161613460739834885323793620325116250159395529682664684551539775127563038972430151406574799613824741481672382231649519817728014618423338918316811629013377673675390026851426023772643569996045243084321686117416751130257567718048910438447191196173519215003080093841639331913414904258829736747598180237173270264789622246650081444279411363950437390765499514060601016579832741976655328617135279854416302596007565581159124550815761136378530512957047517065015039059501577621045942915302463976797911426917866206269387297367526752888718486438283129398839722426067973307023302458845711848893625592388390883442078552944361208141758247525534357512551311614405637724929795482211771256994604235325100313124147817614843504139382108764387242218502938056939987320917039352972227823103194303626031435342294703701969783929833315196485571304549037816577408881202281118634108410907892340959872368185717860953727529231362581048409824973326614004751339799064672464774934831186786756913860005082064788034334887828331532432846899601099835440075527743632040063013923649102292030604346524810589476332921489048189326623953048247290204489203973085734499478838499988713352499254205697461411523349063325935859050617192903642298046487304476437783176038675114145079595491252240410642341655033711216076352708444774687890413024266984896741225053142878328543590228991262955134381804627794737100416928807224817473764139386053408552954025883885808941781729547648385210116272196569700880660943352530121485705368191731970111965354777968988980843224161002948796843697337505440277295621300059222040305762575569900253925818235830294069894739205826744979937346738393207671724014147458386158411226412273576889484573201605512443155904141099196161789645295422136186186031997095299506369911686598484953356487235986096706183603789396472961105733755090136372881842967437373839098401823346300827354654756191977174010024855135084771750486680559524064318909569762956277391043719463864166077318117015913944714180125475354465670615125162539233644769698678436429765524514305782108496636738788313314780813249616362078867710989257752616050675781972379506467162030615633337001284472489344588635689533286933876797767673274449341643600413988876350754894335387963199614104646862052170996303398897164599543324647692881425819795724276277855932385375571443125365580138911905278604001244982770020620680216385177913277461125620493030108095574596632162342784278745444832013059990130995058485167843782693516978542229756632518136101917326196043865606397303426221484439703210851131807891738423694345065473824363098863242528430039064030697463915801870784667056322821016710373320443619392523402191956095785645911228676246648120393084529561906146065966017241840382694813465284188039294769684091399351136332994143068040815541886132695221468203457593756098881649432849074152229998206600485408959341087951957939077222837334004381006799734720108103102357495143775147749217672925554407966962109891871367640701627717309435631144929011550769611417639719969844840801004389578889955566760990370559197794546135611976053366340786459501081552534897255022958753052560061941508448146888594053488130934493940518705415312534800143033755244587494177945968760625825257677437819624358753573631263635091143799883513636839863100838384824086288448106154384327566617542117284176136179628634879925221101909011406011593604863905024254588963911522033255181718926039470561997813858510804649872491847296534595427382749444204016825572184655178522986010712969252418523341729660204712211400451277553106857298965915141758242097591469479096677124032374119573477113865560932374724541331719770138471307984014972893842703263390128197998040828114694332650060247435885771496104623392428087846234516999721067655176489982157753803755515014795157498961249021677604846847812657728679503056595663878313786197147973392027481277197126011551495438797929260371869050074787803205424060835012086014473101243764628233832534039242072593345816004074537356916556070082077520615923710866723931304913579707843311881839884243109443286307018042699343003897784010681974389332444250603975140163720611776845351081490813345658325382775309736650601381116115572314526865620150036528914859970777641399114308517164518772642633640646704943437791971580772594248904456167879797686882148212125836478637619269283930719807218086304113685918835875115066719187412409018326996293936401741543883702923848040455761902949326598180551558169549767389747239596626187584917026689125088746748722303753246070747466541495472873541160528454267351974799933511025106729021909207856447626671098107499934284570927580345410895887585533154922088988264180780665008897287541971369935313926620804502892122062025040766168209721661271356662304666258618408727230244441618240968016092200585316840043929920448070072431353229720313783045604200336032059056740694489457451173919045133634823596616543447587164711932911895701014399198094866034603057167346680714972177808541058076649734159822986671890583001509922704452916593345280785625932429152360276589589613256599347404279339641677938926497955038784143863729799877983596352724690390859279010292233476683054614909193268463587285582165843181610812208263489453629604653985393730741590991323324175958194944193827916930560806488731105081389251532077717717339759066091143437561634875931399090317867629260408084494855428219378468240991047148666986950718854798406058275530769312811315851744780777483966214168981382584680722261027312756914452834332062776416477200676330710535346676560559043584080476311406532999274182230662066420992423535441702434567586058712388003432214394687967260664108428899584882600348554055097640034911013297267925902711543612678030396529263162458800640692908684157349479780251408883300378330278092071221244284747256180338089985550300315501175658988980494882121669789600305106988019662809349167545423870858663680907728949784182488434522616152689076546074487741801250145800279939110025917675691682543918434991667252934505128433399635881544191417713917979732790218672390291236041061505625311764790632326186725053247571964644759654416895782569218058713434677519019487156829218228625832749320427785140023367273902135280494384768891104274951540664349608544088373563591800034015485942959914005765180746876021511934684208259414954220701388101938015140077104883624211755487815794942304618700926300858557001068556565805562085006156813476019364533648807940932555549757297420826205864915468448455401163805564696179069601390445486746271176506927062953721913481515630454656621204636211608657239022704331972488422325886688616245636886544026534177265958017856691461771430518905278755824823166398947976232942114922652385191797688796707257884197758890413441992532933392682899533925489284690742201470350177268555786462432115056138073163467994680272188014235051863002873339745673399991647076039520018846691259849342541865761617668686073483304333332965810956742276628896208631709814168147317305372368319685513234393887710761115385409345386123350503301231113673748230412694191562967770036200637231194871134029462657870634507215604448055678619239221853260917907228315360008317898961339332965682643303547651129914580423107725835084010577064876813060651129346621246534429561686229584826339580265339562327618981800029860259680579707726037846010263834602798933307607303427245147756537513438065775647684035228393600157771612022214118780738051221518084444668918008269397399252752924914131969379781681397426357036149854666963211522052950398777174388329890283476430007691114583217770075998318779935040415104685651204994583883171603766695466738507046792158147560597370791621697248221258350322170585467883646280111942795795185283897417035107001377455156680275626319113920417153542384889244151564613557847389365647543112393173147647746351806826735907101217588367767926989812636570702641364935246874564252166054761243903255246062698231976085701846546528319679520700639444806550862116220754637495188158038218189050413528455865924552586513675076709531682063185782690739885076048556654631513408942090770465446743186744846976310957767693042681502133690705047504309532579695613677817438063286549371488006893663870888623797184308947231632476509751014814538325739627257738830183120026539677127965196942468184570827544738040521759145344971099054719503175591593681766224448072078439009136406359380445437953535999490213645868694096816713767918177767021257641407396501785317202662880218887714222892407490059255532627358861403977415268123985522570998921373009869180852035612969995616988762211083251242191027141254357554184262813556493269452338815995365080023795481964707541891419677602753107495486021249743416203263738156306634351475400018231418625005813318400633291258768308031404823274580275168271015528181416649722481469801617113424882350988726038784101055907932456108075810431020813374821314355179776129223029549072771415945439887152955002931363004757907179091729569789565090805803679511326752566547469292502335623572362144971556805800164027514078954008502104190265128740181649930647000275398211314774917339500109808668843725332810635196422508682199037696492399874092826445637840205519718405613559699426624754458991197577479566559737874431543650408003904259677334874607179548326232440651880082799033434584215236303320286128639446711105121109522517435150049063358074086034023012515981270167728432090127673906462112694705004357528881248546212247655766632777695199651057399784826164832911482875639496137482046130873148030440437942854549008617302755917402926301275739658818754025499295248979560935275631060391515874535994746983909165166794146538714990017856240562723697832614988060003904551385902446198561587425271892240477605086707039139359717805434933457036236594043343266853619888602850652372864311359947366668119083974625808568867002639896541665811027277702045203095730940120419904750947031940440215176933855716703249608683392248736109399760680879176915409581798023576025803750324471335308446627221586570087621063341683912092964617049846784526092034225031348306970114861064404411012019185798794419503972606743400352064096314890308817364471325343069347086017635129920439161160080973202676733663536252872185996138715420870128906656252153994873772808937242593547566432388332395984003894718304468322542732516545783046157555356701850904697233302984730684746867388659245838613075768525865393458095892667584105618134180976240532488855236137502536787628568236699523383230128625169377354308283892606876454986767373403832118014164826157543849496456512041190429206309155932184365270773757330914006121477114453027056357627864279267121821446014208480081596910516362663491009041636760565562979434005729274596204251551511420819145677129401786118757273969012621718672437948920397868026388572368529441846403104971970470624110555397737212608376562917450460763422944838871991754257217085811665165725427419593651398795616856285660645123801502120046906048753679590396840295297429942325177116580163895545344678399961937389776541638868159985414392330902774656806768782061594865698262225407979826941567900876738007524889549143522842721161216790594139901906675405535115261553924987029927839937023618065863824346856196470908935818995820739991274925745415780574873974333977664495959899042017429681877200984000767748473529873096519167232189580270821031004877985750915791327502414816640023245418797083112050440728911164393721430912317630561453894048553378082670354274013703354748952648205784187457835989403583570684004227531723344649486640574696746604462287084403806392136146507088463529304394773727571402047509152113407391550093129972850285744691510785981919378941573990120867315756562940282126105058336559411401658579849602064623971631093681192554190504335620837708703230739926002529308064803689997753961031318051417323796231124958514787904705817005972006639854580008789706052656014786730174174014924200576094996523755155562760348097186564350111511660688628983524054348955378792453640847408728738914989833739237496103017637487371609300983984656507094746870881371860890014476683852206327952467436982052326456617256278638995313863697464773445998276129604346608520821060485194849595259731880021236061362242530556163718299995975751982702710400336452331520016338581394912713004373862789113291836768627410716858253423692912680534593585902030801122949272668541248412214908138673037579933970923696681345155232999735548973988785803128729173605524383247397536034829409786006911216801929718911369206656460154105445691218674930658619731553779457047641658528023312698683885346137217591543688509610344096208737935752699073568808824375139114905781046046701675183006467975427869368610262781626499674613903755018287212999591045032003617211589340391116813594028741156905300099156615465906663259774380823063481913059281705185975855014071078406543164928056334898290231051513807151847884010638752993126896102891012637630954211150013988441513899377295203308284574161836944471948844885790468964428276946990291941407193690659027289065635329787589728897235682103526753876424423624297536668033475875176348288457058524079545799700640128512062480534315407921320116724336351005309356396728960795241168009828475220402265311752437923814972455920401730839797199762755964343088316055397390176756458227192679470842122292836541713026614039926981348304299331796059846587077967101510934055714616826155352111311667479036236257401156608813126553547339067825427115895626699779670947678065472093346283448924773416132237741673359716649884180261907223115580271970993167884339228158299710568779659765946455491723050378383710676546595105996903284182367174069252401095543729727697723869440185932110239887442171260967966913423379484231693729490281926095333557427744147427811230161529966098140030615348860266155548851481878435325299750972237911856202887935189774042868609370725967785700627439324029600120330602772438359461615879895919933135497902171383724391180813406394202057607969611824277144329430622168345308613450914668816205960731596903783924242542148985034336356764250394515503739949018215290337269642060130906920845479189076260250670109659441829961481626358078600733625205087465872748543710094422589162819737604553064559314410401569523454496792296856719895078438695398023993775765925796383270315623697125141279644815555748857577963167126895306155222277862084748411444426344426534525229307893827832551483161968224848327382509469396814350292338689807459819328166802707378948922110549011818908079834423031020219243193057953435557682339980070182915161766486457851940826212258813014979323472800260930873148271968721897051812973426352625355715570366712449148525043090073027396922904524664915547024617562158262320673180306978109108162899994019822788149469313771295216870607630787275977191085578774026629891277441470961616741847841929718045367126293976123449176864487135363914308743253091161559470278587365824075230307529332085043050572646349248612909669013616621858413183608600825538517198826298613763380599862356726351362762716836994243754979526816644952971054452247355502753366802554721520008015786245357682222054954400862874761167781482935736780956324841272245550396905944837783377420502164476982034214308321441803280192593404117130299044887303192305376104008699968269307570460085365607323455832558831929318804797604912366126507626020006101311549657305440968473645092058297599008955402595003471401694615194588734492803300617692618581755435366525923044293008627108539125893044062092380236865507399075186740546010197797076512178811898836333086805236281614618189264275090294134975737896342361068577978063816956590901297615653978806225242618922121270512131211916445136918655040159909972236357856451830274100418704124363802487291049799670990189520848332457564979148529524167842162982428944219191088487919201533715048706378357827287147065065368065316079639616733318484468418898709969565802258010049747144947477385430366242232515499014711643734948561693430833106651056488949838804611870627434613828782001026969403409531408231487414915537325224477540196098618484863429540515453838046697800037204686473608314577600622206535337420590597134015042094752466495209454285725395124243702529365805848831692756680721632123565468150854184982486084898670688619096717812925340913522732030508418515797778323195238727903547228882966280892798623528893368067492164209334943133608103063384444794223227613909993638236828973571132925008999283620328070325395536202542234863926588358525399100620595345645052842507723303586177026624510987836681210528406080515503528068641733249963212108665310681852397323552138588812632479837172680627044116238180548253125128879026694390422566013884387619565043751731609112609830301509920638546709727928520556246171197842353155695760734609222761146935771043132883151015710420205314866140187639056703492867944944764127018147070972449493785886631253216922961498897206171113420709078077452033445585905610195040896340926894615791975230547938164100302315568241179708756140012113660635961322913420301511862486753900409216525593318223794446267179915495052405255013250623032971472163404193950482004615664158733264690478027758718399116058051049986209981802465967888442202981633375486128106502374194589500736936023818150895346052235892674467096169402968180556112143996435699498638237128083794578079420757882273722376323048934890287118142112103888410610273026861183109031662954151141984550417517855241607095900057097169615917657124649917025250477526653722100920356357613186337755711464755640337934205571184266715317724276545991170745942560285406687625413354528942068706638210748755491902798427935526217737101569651481685160547741105044056604146593020424460805075413333061986981417568341161242791442146437315059658562941269086239483233157898885590318497404184993731669058157858346778949840479271953754142704178309573820535553495275957122686861389308700813117770726636937195495013592211087260904505322284639679047448277376805698350566638134241049109910573261256108617901727290001037444130591926998149780346740002785991585644019813199115103735947285573448063568378819750875924105290789124948344856566553094708837501216821916008642832298457465776689632243877262502145978923215166204297179337336251546673707602629000135372170428574463300077005693726282366369084175989626305467276478892146681075430454139842804853873822764881442935583340756340851228032425800886031111490637259212126772334409094231384482834876351914414971386753799533637926500507595058486305466220562617586294273129020205115889650692237198387936290241139066896261313139645047920636032399677439531655651475894297277902232134717943888300131670346794900954111554660062312928882987603913862191207916005947428635554291945019294361682019544886229538534243137068723224663655132112076396327979541753146708957731131581453676028164284752140840230830339901312375959364660529716830991660125759733976749606763346236122509696361756147334308675499654780034277316283713539926783707642938379855631943521138628782308107780969949402377841969559754617913639172854896204110105785263653000352942973091528972323310357819364782416594466442059089235973199069095592426195342163302002496816156492821408125777410336142311294776462529399253626709416814076300139858499204330763580002447780167086361000837941125912034728924966555518908892359964105054317313091899412693797026337782620159105815413259389774786045431956798975175428424204376350696130531150450114280644884940384966198338400988865751233483779742233208712726805055483720917431450613264092293674291923362866563375313826275346507361583900630855482956839066520253082229330695269098899110017873475672456577488798529907181781215494064571277046798105495947816848691926820441163440340982544605300659799046811085523315594736270510166525478993183146591962398197702577983072742215402592007785528808817151674104319848825358212857178443523727067575408333166206577909825402861545381636805487081700976866028044746267430112699219010121935554556911506089694872364392219117842664676782428866998234253719394472719823062528592539344288693119413168058933022256096169741849946614056070716510846511786190935443877064954663019207083256608616046913799188819630229714467488265307041158379053596555423383149365567267248505298390766262561457483889154954465508088860164114531524803385062691853174820071829019249631703773157118651255517127372953286605742737671891837068233816847295185649084718728140973131718582647961208160689727205042379867886114919889551886252514460328269138780058071790652885890376849887423254249613492812580832421039468794716256664484390688488106752168889582016504736257476667036627459585714340929521191661250047952875164294882790133869173777060937154608450130034284573311536559019130723250753927883738096367664279598588709823395293306091405224364683666919408196898034407489356800976479475449519858294364905270295296441337899758939031816440051188449472824931383045068630534119444138325070252410127280512513880284794237800468914477725457417634954771225842504449431623890931663787253957442996088354301641192055653438572708373618118315710696616534466139300937477195989426090979371927177440407373813571899410560026271586815589644471422922134306897367135684006420089115005515824777218918300652316445426813247562884002201313560886209756914187725066190752148508309047948869955303266627979832667376067100097632695808148630864863703993016102844500688375600460150229103788310366361341031114208468450711767855503291222500120629400648123099152683051682838674408315922750951659687502467346469003796712821218543328372704036466693723483972631280344170216643739137213458625923678248493711302350672709645856583791279799002527385538930073731880725914455146745337424913834864509155216201309915100828284625179896311350188133569521796574213071057080638527144465526442280928935935796503902962370121422297403819757620933381199007127523305159833560166990900730897381905506293482945020743702224107674335771630324580602449929399629336147547575553075963962905050306887794082633234940253356512601857416500895002514586806437162490962541426320849631336873455428994593551717755906510474926376808818413152420756490982674489106099579556049583343651298347243411372349423010919861654850630999686950535887962935822562451297101996203642698521013442658728007342442617661663669825954148967860040512854521466481727074959802142637783056321595086575267496580549437298003435684361639938495573301737062956112589512928315550113021836084300148409433268128533103564828901007917656270689393097091016704147979667195666469191324084845623075426812123783966757219584843704758378989060866827548324760257748872876718004092269923408722186808224671133306849857109837158988148638978878815402421344844743479411010584838515938196852980392843825417933185013347687421836880838974211219688989533027556063105119958794935621965319893658297235561688462156971637364967187797145490434313334635331365088635585926824300304811300945096007271019552094718234853666436121470449665825433011319903333192434437718505710252867794903455136939475642272720180885647159082698501887425596671917385433254137053494122554064025689130864371052140688155683741854292294795604474668835454929203663568413048194855652766030496899948387677051737580299254314211835253637091069066623924310928383601949393313380601292834840819930176751685615750282678228604913930099840024985717507137641631967004946155901697113553682767796891792741133784630141944337716147182006834631651296943967590418692888986891499661005045174370144978899186625983366878144903973464442866363699042642070120198701666609438620083883480381767354914166693976493481527323331216817364918845099293551898907524550008879471382035387111198100864724893383283867420602572902395025080340761644887648811893544766636520503307377781898371596150925515398075851650442950892315582645039952040907341684798382940345314185623859740646007533025484188438878772152018395857113812038588553114341476965305454910664972054220015696389675715515825611731397543902142075392539021205457095888084616645427251249353315942732003041654162999469244054271755305856824762932971256456507861541085245789729381037012311801087598309932099437614466443745738213115001475221594873981389860157166099018201507436042066936243400286670175851133351543483656784291950044436271747587582302824392699113474101118854021417443229641018132732855769663638574728496932253048766088344323186931470076707771337310524075035064677002930715217795809482231965906146152681976848998329833321588757166314145525425415766774924146427489253219750700200669805587560407255976411430213624283570682403632911103879130016180681226244953157648054440923325647104795492180687664521602816468644627308137094913206088464838675000631576532969484782909938778669580589977946911371761209373555111598969061536348045282822226785516597982753292480714114218988160566074879888430916985783326702356231757566368435330983794776083410237327472544565232065327979138323309774785780661483019782354041012179409926046902650336380521157369490581991767604021635529043151254820092114344472047444490856080715069920432535328755491612867601336757237997755180875879051247452295833287048828974605358560238425058257382797466937594210190044250839050350475842647371246185286521778661386248907249956178328099228578406056482123813049430556516414741973903400455986001409560943601806259139808445449880681478401962453661742361927379061703951740287242183220598924744387339111821216528562570079620051877363270219393148889336782873922521221418355831270175841493906265853549436623216120839687902564233843858837902720064047809503351597496516822024697792497075328346659249855177325618990821405389383857205866647292189039411233661267586940146220942028679878583376415944010852294455801524438626201116519726956136323710357085270142556734910099684326071665389101897891779570472369466682700763196815195719476217003356223970997984789299687246490476036065177899167196020607739136781050435841690638401180928550338939851409026446843496010255494818433713371702244910583970943169958273218717436193463976736640361610468961335356707163628968017262803451363357194919164273497238468648645959356342147793681264018350328380489742121938621565610909679652563816944370061868861604499960928966009805344604699155237570834131586062526762775728024537534004823227189031248825956052902335889699472725353175106876972471194972565965411417752979679602832743865653205069646343402737686769242838917648394412929656027888264968349375719475873874875020471816277278881482527060693854688423480995649413584511340078184057521971423055750567182632317649487883213228178735888577477861213122278148660835344545213943614555547832793660535930723330944040915228363798031876885385520753448798618093259704992359238270230912672694517291702037968000068650547784792214612920760792201511542994739870321526173237150602956416154357056756124476747844607694956236524729352355066683805810155703435640830153426422681682980485380794978181413545673611279349208580788170730397733574831886221400986354956575540274780163388398983502669772091152513960916930713718509453884879674367513717908454714382228297727515158024284717784256691568242501688561856178770633350822199043418927191079741197197612748595343526210654905681023938597540069331616720108807542363898319241985013241015923213784974912009230547309031598634717581026355042240027485444640257416761295618290402854142586014456832427154890189450616412110924549816209490847768969762896243558050532950029735329748512840625293049923853872518918520500646458504846964641942201042764277014149791927999446331440343269602358028501347965168850342833085722204730275804469077001270674252293779776505555074301529631024721635371746395380781692394680073038567850514546892024456794503946340831095999414347159873733474589536851548830524972008506872706055927238859377518543884641789546091658946642328586091677070739850050934734029558741728033886945315610518065667062562331120387047648828907807525185067618852814463038783561739492395337631815218825244914449051232907048222512199158146670029444785054668854925760946912229365609476525634914461448338686732551456879447205645521292589503411844360601430642842506402289137842322805592151174501070429841780010503993553645041211580155855591461704538345137711333961757423732580654805433702176706382487566804488164880906197985291095149347270935904061590793500240636803985309794845009675385400343668234494422690932653719062232033238724004912718417755729885685421543514588807516638170545381479960551696789794487583576217052922078270062584267035032074476990266540711702883853657766282664791732364255002120568068397963739874111448061809042979813984104391492635018090950416149659917263652132613683504943108292024905404251848722010244939200213144768829365192224437584291202554906712173952864341088246034442832722672176141895602454956708849690418328865539391960443670869674948929054267658820870486953144443511561296500149663839606483973049188948225783450799473913298385998744999376673596481828237334456458946356058369732121978228325920568936683082092730173837127448254083251984929839177177494738408178724160842533550609913690203172094056897742679124513822391913672691274151162782272094720935305108919181768964180774560683144735296312897961582225245248127602471512770405875845247107822388594979618155364160203378109644366024693570057008607460766394371314113302138990390110622183969769962865951389372046663441104735240039470342233277208558224647323594979048705739260518105024628823182234392224840638516956489388590603270740270801364860997437588660093616555148831186693405729846574018391074852854319877227318570448800298968095457432885420738530033402541340575126374808460197984084707975072433085461076513914190112455668793817163302615863872614614175880435250833108861097638622350987332470451365032107324944257324239709044485340625273419669418420497569018504405690222232523586838029657048797252091332108827509033137588352119644503541385625256778891964633752534123222070194042486791668613293653353010488954559604047722280021106105875249381422590567845745312236570110761688983005951004320611465418266836068671147237285478312215034489227972160116696531779534483474691874606976744741138828496935715074059012431916576492952887517048170835097455726267594833382617522598904899926593890027758568573391329359203132357937188558842288634484023868939600142207979673997615934969418918451603863912814091060606424551984325560876001415053127893815421733025847647505430661901907105125709855083461336050100835101403803546256568101967874575557690638672967770485500299205749757098040146603598356918693325287789194082045468521841050051397972845858920752051559808681196264973652566564912658875949132042057419223448749188130473251033823431885267026243409483190440857451674462962875460462395752706370044043390247534743232849910751015999254041810276834898697893026281615346113752889440803564266923219298003645920752498282437692789038469805635054274888310419962382057673351930099150507267238124757208849258062272555236863871936933063176968091779437541637529913075216012969623994093679992985321764322498390128605260267846382522408689288292217916349871653823314501463176826532249648762049036473409210430295813591370877968862844405390054362649586667335445320342906253880379800343550275765192623019842798615719806255052960138406257149096950930976695485190225091166820250947553790789973713352980907799863816336136783614234687379038226843811855109500136216388278664488656331805448397184202892396685714143093548983587949688421498756506163810120957940982360908217508994018169208376487949509378985522743281972206904908396160845931764472646126535568351419860046564659912080414167856251910249729942791431056041803554342150562888664310510879393556976768159399838740722782646262373273796348323381586621798310134367531777500177843447565136871345150552042013572253852687166842018843649104013797378441694316550517989719554885068141922561696794246603258491921351620349180960008067329959183717838099486333944677670561541427035639491265239725250622931694574623155804427389368511817190804923160343507175500128230216067874465383337605240597832120301443633231321066221912433661215213688160388610962967242174893816392691579324322793950974915927875190377832623540230386093419931919354896609518055922247960410184138688103511984795982272684183630687711353983689640798688602772996359971699955363481379884410497538557734630809302047291210083265688516297318917008386862070699258694084359104738189254687547266647869522711441096044658163203515358304270122932309996198463942982360766175624416169177419675418360306130593507955382605094576090617732047245275000579165025710563354459302443858721899813484827113949522288959519093859072141528136707662488855295836199281684709477881591377506311734045238030197538580620593217929184076209865958908933358869872501756341158378311956661478995300419865428723858811381465635228271948761032383704281005459813317673217515798911068726995617656331452562164294745577338009567409168577725687078884792208616446936122677191668425135481865716762682967966249190466908791746350861749547072461227436308299835282831417442426791358865334272479237964540983025971541252201969742338199547664772219705405320198757918694670639722921388497137754198638831168044187525770544749169517028530426592728086345112956667774400562281209825185676655842387555273690012930171274139184702794037652712829658609578077333922420760863019543102556957790756719744914995742916481558539482758931768573287933001206147791605145254411364037402077023758306911066004513469285876323455101018160406693803518195865149973851544933651435242299501450293164565137139377828192638524601723548320579248344410118410588102622998460847660726929204925369965034766192684212750183658175605906495465231827848617132119169234544928021855351795223062848481582870184056538643369816311216935938272427812984480608131450085282951315585154619911258183159920274124266156234372976886765911838673634717214915041984860426764042267714756154532563761784620525730468067657636689115829917911684720413723908655133879609876698586740287306173476054285141421222794669589581556804249150017097811841032465344675123427089170193420814754819212223198447243838100760578999502641477223612884961681707753418583136528970310443560737599275775478205774608050912939001806947265476879884906304435993802568132335109701231918588995440251947490599928513348004245942182686502757009785124698702543363123257409199306480616314699141542071627633395669988998312185114029577251184207870285911560038376673357315612302642225247252725111129690974351993816542380434489965323385109180577209269931891887174666586761598275524102441739038844419966030802744184176236687614317862054991544339536908706108482442764920396933986586981519268250743893297209372399522818617413007719991283900987270718448275767615434390153656476433752250017701837583238373441767145385112862114843535658396756203362633539110189317165837117561418118800518873559437763882355999570044093594155520976759813572076461877010760098368095326902786310500669540531180395866003492767471168863415149426981069108859486048063051982503928986956630129738266061695956158202734829480500795250941432313907151134773552220374310992774204521322884388358427926579307164468538539362282225794405506823818975196790694443098088859654971456126923342146635615582202816018462891402563198389946819131549323807888696010700287988873475866458398369925827660915176095830145818585259607296308152149710024524300746544168931271333574057074182397526290036759395889250239831175797575476000719711414785711752276384542409823672553323384638789703438745131558348890105905539156501116902926174157167238753268835368904214047756443862543025071406667470343766173920865887647572401484933949654649813555279022251629500512450239891622437574517372184744874873584043807208986588131223661506875131811902538408141901436015168651132970545568418534351289295458718412214665261075467111058585248708183388467407634327772203404973689902537586832895797574454859506764069538568371209299103114344638267701790520014038448762657033605194086285727194884264561362704649828610321193537895809347739194510051537388054588166086149241018941219788056144500260404862160127158821798037931515579103158455709990768086560371849838357781349191418320722527266904623440037617219578034766835503547146819970610938136832074074971324748165278263989911678934098865717669574479801208956153860715239485832261519079417292140846619680361178159293497909540939411336049993950492780974458225629838460122354980867211343383479869741444822483312483355815812354107087756963158914221409206557209401532368400131017847073349897240195271046963512262837251138803016760162017410044063260001954622781870728045994183252084869382271994221635234570099687309384837221406118382919292783733178191807031736089936270300629363199978648881816406821294951636266408232449545163873635289239989082361589928424821927208376639995280294431415739527424161674302407501882792007679397695045212622180324021692272840337814510978312801197792737909099369064696183552918105020544583715532083912298084334216037712122775476437865068202111847680111530404096930513578786607629687252092162641570671687569100573699831313037200251165391990827587722685779722926913675492073426312263809768651184207557952827802945667519798662884313664662407407531458665880499322006552675038992637063676396658195929504044811347731504414885003141937654685215667976904907266402765401784586452929767218850078156214451105206658327060626871396634743745911394464058104303853773000450598758874211359533415085904588888772073913429989236317262493163485330788396396232506760821065101863854596667179321315003528994757806094576709701622550182016363899485473348693004039619402961890793871025371592209054853935813189423767986857388244896219551598898842976557504695128529949627919606623852450190395117601514129882732556665060105676331894594975771644527337065580327464310512347588448367953549861420884746488129658698026055220721370973005178920013076516548192578345515859067406939419131149368949779167861828566565978545465838062445156757093285381988085085521662727712235564372646834877121218039316785043455145422173016986401951353922937648539976446727894730690326717584251988648234861346101114275066849399936598776724555512705047298226175288593325472732803658276212933724473128506136371269972700316713982825658217354411661264083696160945673716652084511254880918650894550377037385697986662784496493054261866891623278355505864671121136923838251512267764439825866517917831938431548097088940001362176856033986067991501484525747858987329632327166716036048688158451017745836513941060089087141169693664695144753373201704332689505909744247306741253876519083024996114247956061675043774063568259628541127089192559836950619794862677838879358637350258328961538206231673268366074373050426067430073333177678347364302294042742117984480011175262799942084646020416028970701455820400546162767304197290927073694747945257704681534646067569386803080734590219169068979171211157272624241397449837191817673234520391355383067438363797578880159565697494122264198673510319493964163333893024204576149100605930107418062634720461486093091638725717278749731903945448652877767611956415754455126341678363172753611211171638147612803243426428942775840867585322984868582382453883143610606883615658682253566628403707809043373131971497628314590190288003115484776154512493760889030717875864631691976306893263203691112018532628591659399569578237248524633629258672223614143211625316029255606567341584563349548552701044203464701056542180443041788156421338470787843789093648395542587216411949127220763412674228239171993192079689102948341161291802017183378971978969032190140030488801630071101349250234435622496233503223088118736445684318640766772591104104922263989526026308024302867816163568667669482481025487721781136582108909609529530741171064087784416902627324585092661892699362403203378512843920819973574659621060623288835655275670408237202571004142824875618711050355328787908682142650339387635342188178372182872288334037354167265088990826789792019450797347575164573984096969424059901658941995618626389544000133645042149204216631211569967132760013139928892943406107595095747500939795430358271815547610829493862958305216861963828728125264844817814548507984894739802889309960859031718846953133381558910832283501181763516168965901167912723689382105951259295767305786659859130901722841415521559652770436969639044780459590835304471658972762297454533156822787961716812300042818021172308860451028767031694314422677394009159466014195915355138211362690078606656877108301831034158451058730214372446150378696794948114751706541106394204409889667268677921525924969696687828745051046209538693069811196408284825086234089502296817159995478392393838020724040959637443752352923996532439403336359949251819378159026882842394652538534096721498539491399097427150993201217803147581049452450924495863033645011736641236600067083076519181286274456527116991009696376537635202733739943517117956978692868815596624674665822143837797695094828150319921404545963205306642570541641750022410051118726947820243237583145428494446816744004249926934280613298102199837858496592457077252865634380418800188641507237487123663622998285104892353637773300120925744697601789480601683628720371977775290151722467834410745827558524625837717697961371181436636978019364045564638280139187572697127098879497912576418695815396411053265268798416623290814324932807452706121979623339968491374858678900191315778011947037655890419067827067146895091865638192068873288261272918288149381463177580168085033616437715609838978975439421977448144214731995110621297072865124028133663628132147804114859817743157355318777834404623939206088490861234813984108483153138639329218896919274267041286500891201527837955108966295792012451312323187508584972930521876477155679209110713930018351731657102059288555044014019844036296058960877352118477820573029823472400024206653975696529257896553588862284466922671032027529853767316905068261003941832009302393632585196293661164694560768757665724471989034134311928224573679223709664378408020260291677374140621358382986396252123008915839269138808011342557212475302279757821623873771517798024305447321496581152086928613034651799759879089015046601689217372526852812406818714000905460187521401908798164481303572374257614848260555420589203571990586316006441776875173589699825611143995979818140241710139051227255572439999081113359999436118835097698813820644592009493363003555851589578438879230986365366600799850360712514346495077459201127321527296827837825954428480625893497651219617405675184690281001261405670452000893713813159093356842523859150952860091771361161155501561378352356108422204983343261634274111999541723519101352026753162026188820782647335489472376511874598213568393630251002439850990471710838640642145241527512174219371580384823689482075857283720692712953031063633542068828641853523791794114167586927448276181698170011231733912771840724447999905897820283492086925472949384093479743538261398025788942822317251920481700590512693113674450016922812486670941770437926823147184612282427319896771341964932874934326560020314520673437526874920583570881386822125039706164603168974088907570131348664161093609284855991583544282828140467963806279571605495831923722452680881937243852196563011743623981334643599779812220838069680422983478503160491566904984564506067966960121571577103404951855068142877501547398536064987245411751383916476964215790185333328024770638039698298229865350099586485026333441498677462655362255730375756272238587792029697100959920526963390985213814602101100416469100426065018032730867979001029781838412494307036418539521862854591086480146032060802412237610849821274944119411201496222519079250047253643135805022043713017427960554936313156260815777766262834733984711455135759482682875486380721271000432396874687982484266808317132592074615249704859797893603679311043125160656483728356771808726714733279487911212268442800526402734060170673212022765607466527642859797060619254398936892908015627900207085494655711914527971935973231472355525357853871170623138307368107285708363795636349459479148185771599912150326916577481864933800894052561673990159354576171750409580156017186125460420001890957734318503837304220825090697176783833231685467686997866604042171845889853702860120979308846122117094497556180777160072107292002945121104202033616670861514774183461274673418981647893810354062122022981774807057160241347933622044725214135879148999055795458205164457597286147215601448739965127909899909251036843496357815302163871151954918130926954434537494510865653467544995024551475265273434367876507692100971102817771266650072382830428117522225502143278842689638146653807461332387097668529325771229498750800984881668859200214935857459707607741964019639757882461657088144035837513799582487624554335621035754084290752230318597187328457031982811624713803166636813914578583452512436034588979616182913811366840895410758296724966606004138496898459196010607001572522806260978429990514531394582306065404155371670870523328576074594079961852406538483121631753764893402400690292684622606572447251362821587413110097544010222115119651833161290882477829140260701166090953818930533320700138331040199339583799939503886791653180739470586629060889752932090453443020468216794739636428621181862372279363585362751688298990143530900472822271277510058524576783502482095324534618002586505015551510506807776922522878301442850912470593333800016271944742001260739207625632799427307755742081847721641028503398881113676790810322233538662950088568823225481180377386544670972758351273633949286161356696271242213711449896951354880192739121495778411011510872090653686370929266009226176532124708231907820554170551589040811169407113507676641150233124326770262041484359147481003447001378338965769849324519546338346516082509362192782835466582333719264873884367687050326411627674606265889244168169471577281216742804877734708647592851458651163252575296450390544924526080705897892780466693319257316348796645559356714009774702959554696522609916825803715472263720364736740924901974172678217816847011430374330292234566082074880401092949161083141614836480556698123579638695385460886583572966822084380175730759368785629935232481182601902690340364751434338557737457338103726369298588269939700198095698477836378186754955324582402943663216158323196331879516366538082135713822418756632614061455120322661793937463236237362152355272324081855829913923533670637034270973417399813757594564322559836493963745731726960009359572516569976577846670941045263458062549609853330361592483545155874058160021659845074901529234017168314249968338156013908930369677738594938748376487968642617870671465739155771945930660494176758223595475449939184595000321215640707389358326215425307938720407613026341080888242863515932745211883399370740298846768914105866312042919363812347934263571664805052190658173364187886869920366121269789663099001855591174880986948113114253795111120142449841116951952618112918840688429717961519654459934904382571541431974227635929211844096522056827140972723126707177918775798057549356633866628188081067003757779650033617887189458405930946638371362221594447113622904926597366593762958229664411033402132646023706949427956275166305941812228387193713808144772041225974898807849935142648239702435536552769548242111585167331872148287476666326636991463640218411675474996884027060472674175918275482360942186796447453009252132876773850423355306627517606341133364419776999849343722393015668886431656958281784276148865032404773008738353098581985529807840676783608345166540396621171123386221428522359366158641407146180587944901584627782202467704777169303093050177593814699549947218975814396698253971777289224697725508756764726874324575514873162645912100530146807750072683645264124819913547377045901439023134476000751856441784985524500314598618013367570158037238564094033616140246413828698620844129724267983196402780615327564166856333772283207183231511740652769202441756451235726139838878526766753090342062709941526585975637864047138574992683731292443556806008280326765729523993745271196588251350306494017589912388265750799184241868408984920745793341759642707068822757128158022601478773212402083936723082341647356805682991832149823111648327835264699388617214190704644513776142309384091609158085059791883951600798344927700359325097489301867442220440389202549750526117884429736317347772094752651079336218987993156613880250383341215918292904424344954600583193046062145074929636871434576428623040242937825881687780976749162144033252258215485060856237774415721319107955384835388665352806498182007966608870652513696288071020474620283707237819659363758637733255908868983179142487836887060904656430976159566836042336115641690965856709161478573214456714237943128351959995101959089346002605307472683781451652868283532010052875467089872812244030338599098237118244980964607604308787962620796446844858031377832511514970686514072263391937292596235088144219368534901484334903213179883722316148649972889989801179380250641666709713035658633218621271053227417937872673094895792396693745476670633755936275670731968823984813185037898487364873650982719294345982180706427890520111860510882649428034941503395525331205305252805287292882537775191058080642882723887520297922193700699890667006193916793263762092370937689809852959219656995722784393206845026910777429543345117313993466438039133177296607092265475585096923830870701254336525910762852739026326083035863802726143887766295410591594520702003403947053164519082907380169686500152675849604784847681695324829138093901739509517507972968069007887701717407781667676416324919256727414536309068382058627125594966107592149834550474731026695765666142372026264020541954699591235174143683955054483377723614455248017013951113007089162178506259587618361641155469149637729342702372844973574767013521252985222010663033745525473898213158255150905593774976487246249797712302348875287250881601835602940178886587048273459116310788363922233427974835869792709019822468069224014468857515230054694425167485342998587059909952134663082642344926107680075495878716541796533142023698909008059924574700286333472094571167076444017677861341928438815731776076383907937189217833109692868766968251711735443136778944676213592843079205878585917589372010611149143154792789960536461015879453748129313458137590713097580280248568377807922970645403965124625666553820405939674651799535458589788748565436995355125107267534245892159539950105232125672198026780044947809941215847480578656109324594584403512574612939362419492237617548069624572420198932101734877165909010115731824179963895781926269121043976377881165699530245977273526137791873774776532936683251189437336595912797112990498978511653558107647174381714031109307278468723510848493734541377322241867952931526683071377719167652010254097459070269580706224129207272538183341857137806587123050611982101862692740558002548693386955012896627864913582653465615441975954458819370420012535648410088747415741725892786683507080546488705777731433496217982901341019216232793036512592601464122747323952138853953477689196229733666799285961341870341509210989018644772419623081667674567184269948480788370827170309150639524015822328114309588793905910369956592757287897663344828933363922959857570840625140740436422454181746511370580365250527447659971480676117485541169818962025953003967961922273213582329985390531878504048261890403021420357666801030730502635901687006274753946395045161371724580050546729474090839741130950621536568155644074732600162802884417036949388055412441551924473544595215851018741040409670592371762276286728743429594517819834312415093218482441621967548452750822201601431348360477454485823801640689451959138573564713687181019157111200187085642196682980118716686876662836934063608217350381783836601885793546040736120917605162516718241495716091674809644006102893519441967778011550918095427454022376591585285681148829591853123631025675145159744911538173907197551302701979651833282490689744372448710173395294586417373213396908438831195357037207445807609204308971236058922571159396033758438708680126439865723503743257169166780011167408055159864074923908258183495205699000379097577472094741835908724872191323392664842851017294462788963136576331288069471760193705762263178739130792667269879711963248831410998286919479532425483811404944322659276465707307415927528629923518958985443336324999035125157650464163151574211861643274043761508438572817625826118314310809552604398685847273547123354797350551187813728764497358875563200535510060818793177244113412770435269299252916858005267807247429612004734234221275412523866837997886818981000350965968723024530566024899620391537509127175425551628875947412017134743265031143194312772068696658196942010535516283787024627167248937347851572646644151163846335225979351643452220680406538327880703356186706298052001003200202259398786696809474698631813561174388597577739764802123152484431891571365676591876113054483331071372333404040631450912413752190233505866056097111162700895233698524777837468678278962496818668802966507768886368683178708765032984628652150389510130176718939974929356865220372638401251071526808079710305542555059830966771555786215457653353699874455049425458961293170596490772205294732373701160141302104456702992383333430066369574246303463160273019656594675358398028970227302158697881956455854379356741403028949360398298980722321613791960588694444628831631880000102993072151774261163893242613278292705120228203637435750653908324592968336761778718410082191951731853770645786224294329408979870854418987778531982850810628867665620790884154882817731288507115799601925537493240160001497661324170437604710437311815675264116767795873080740071051522890836214868433882871476393873789231870241643554106705191997319526759808800175792935275916023158486643244746491224926732371706015466419297777967230800930104259592463972885481158284596281255272025063613044898298456643990719074694283917328961966641286620794433973275752106759523842977298313521705306364598276595139458131310041894461211297655702368842961659605739013097793930585613141892870797673674958190679768175330755271308518934168188985327001977865282169364606713081898849744054672707306359413811970084455546529054802106484696658369247630378469578277038606221128082417332483736583971913401433882348316895466238592838033285071833735835244972680124757351168801382566374220863654414105484791322602356307880628941787744640422648703659850500429195452058423924210873850453588952388925192907860747781046171648197134463663229461238222166515712584403941081438126036205622133514058107786250749959328170677071427670737443812236656221751852241616236686424525178867312239076827150002997409926719605622153034549737433302796723014374760939794226297386018469479211083819169257435768078392035273346662907098040867360104214333632086003173183581920141990998043744499400795885383428574577601980083482461139429105504716551596196600767734035904306414641860327184019525039445856810239692891568950079539361891222002890279646455475053836842699308831388432052676883021658469173281186918341258115494224169763810142422772690633204552993076668886309347818232490380623456660565409214905690689873327952236744997867888977396691636087103311945216939865513071263303323887482016481200991659308663497706625315924074068391398046618586342476814140640644484636711939568393561167756140158673149004179221161648972261138407718010775005333964550613633956978214737814373480186908542237625752986794851353892721858651372207094094815197873626579133865608740237739094676100211100272915614880268552015598794505039342242964816688845067062687700103070427766721754789378359809499481653918134175467174125253118613383072902216296389008096724019555178028146471499757384051683545323702120802723805443091985447925957772174825159999147864977303013075125459567865090766078767836300241410028326708965830456892081006740377453152543371927651607183025982290481949005242493223317566526756470503282478841292449181584292641266209161857020904646135131254237257122769861110054267375114633189564411579422726433078780688310755597978213226649296002559692916344778079574178256216969471861500111819158286638319590321060835400185802135491011985847943982815325186465042820517143121841895485864106683955546135937005066902361668411855446022558005899112271913398623835773220418312760750814021853137126763536855171838177135137823948979097159974264576724893279114261227858581792823939913545361645383576659247303945185033065349302068207054551903555732508698218119674790039603799478694394981119023393591993865246396215674131709243673405955902015278367798870676010863634455102373842411294299749854713620484563201588568333895740046769434330203383467235541364827156105654345606404824347512813746303386284917899612899975857865667193327982691161116919462736651014522990198521326925851357062499801855037113105282914938785436290249929052475322982528445274920696433432142868347274491178147480576839217187423167634941855292284598156374937305942503042364819426856000512035685400058510056686431292974693591619085084436155289924094022130063397594313794667078811838214716673091702822953701119347622958706094198083064091112957481762515651030972618637397402641752820257473757222877371177489260085219246608035349953390694776850089946730275306101913211967307156508438066738712930368366064441619371120917340366979062178020740054230315030297059067105912601874979666994297572259062998812527098797658172224783380607538838561623695687126577416302447795413382694581968879884802786610282823018887652365369893083053004147978466012638442826359634055675613650050890900965101136168351581881404096020860588916747058996923870897271574583988740348213025366003361782028951791058827974212784480907823304839039636798066000668785759287973588148269920898721970441676589870990759909785076659557337696890076088538933625338014760482712410505246998279424651492257872023441813905904963961715414448541227213946494969518043830037164014610142616495523385797682027413089474670623607715178832106000525715643120902892223634208012649401879996452277238224253369537335701597547566627234409980564919877084843218053164289955137659041690647992431251519796222634082843352997865535681475496837327649409749150564910144600044118864554715609214055534566058604358701224247398732485454501816080143637913549399780656514836610637894194934436740365006322375243507270390703101803935347216316739371139321966168156844989206002254027818300703102680148099310535540146817360321321740726231449247339927691416388125627360063189992463422267240102748292390869105010389316112854337130607050717850015770736035242034623292021886870719705676081021189793602781206598755207183949519646882178867711928069255356062498231211771368220379153988061134470892702445249509242462807236256641769580726256152585851364111543096145284967779965515203112370452361856625746905917969814193895676955837357051989916609490796306275311410918036524507854252240986181205954920900803638869232201158264065930339539183527490345247668251374597092754093626548135497401673285467411606120640014610917417664873948164514381231343561535304951859221055714585992977141633483184691022537494220516843010506501612913907563243917455028031723605398924713489139516162399879457413247650161519417482410216943831116201728955783904373539740671125099652787570653487722557713348594020855204105499393896397938618267570640034936866921822560422678615579292544284877454947877161172629567207964357693501195657290690745236029207706437592614141863926611815820259879163373820479329972403931534797025386939369252616768665805503194163755609839990559790198025689014066377664378899189638077458078907270643756491620587564935289766043544672417029547346669108153788787956674615819508759650543455899013544118809150845040612556175509072163939410852704506732200483347838861924810077610863361029313319633351012179149843193983153225897828368247030429171392048916157652620960975594719316152561822629962757309817228341039222426213253111188151114089370552965880425558369011046821455900833590100963268431145303942647207261458254373846498308706470013002083005989536181342044268201416228631353581261154650446491431656161131699345099862918149895462921310072461656238531060867214609978730091300820845887617245986377246413051035729764491271676421234294199315324693224933955018772645526079107479027862842787041139630068284005428697692144991423771897942522026341090067921727821880224040838938857391266504505178406873266413644704613961123737486117819840388433557250748910727035149993935923122137148609703612284481388359384357765404971920718898052497834318233293553613264994748688016813044028859749147965870673961803210300428997760034519272126439370629118994786062354895283552473126827073041667992921517528368524371568614717324979810712580493824576124228596917165170338194957936016103781502632678686230962602451974293520696553079098926997645962808979326178853518392497437986134518151611083135124183890102853021738928489823205537446889224318254161094640726685654804730618788446173123369833250012413282943746698890137145806485195681723049664495368572841280494199772639997541488768431945829834678971143432756160293203033621875844942967074601009228555350715273546198262765712288740468829489283799433557928627270377673113010952540497575005269043279801765735915054444935509155825644964265573782248196372076668761083404050852389382841414450366485184956665698387058330990855114774074728141285263769249030813053838532778458220867617686017179008914387153188372013880411181781282645413107292050147477275005862201844540477488075019650413504051870071192672049509952109068418629323287451573998620518061021577879304421784373406054736391151898480173618115569175972253113334206735125047360884769631251271549140072893683154810325655116514854922497483112654606898877522794482936705112018028478312728035715844550106513427578778357343802635517342532341517703282849404142368255267186096495216948655684159350079351706876299658077644860020519146898991760124071127197997481372110996172229192689470974813119968847051058226014341738649739269542954742253175067727658677394238085126593283416828751390292124137780982670489302964897507603371736520342203914439233808933646478392795975761821916477657993459860966674111755860560281368067105262520973729650391014481107499055100503341767167068787675037791354952532293488376908961900278844258257421799984086795058261126673754161550141365537109991691773664568413014245639937164260082311372154876835474288666227525305212695037741238438021376086216737187649597394041880086177796119481516970145998535186564144895695163666834604824692795843999953537564558447037363393367544144829338869009059186069434649001192054567095274996599018955610119037355058038907118873009389550599439978062088908933835304710895113804947204873250119506090892396192881553099104076325472372662731450981302878203456807602159197886820248845154004285530932514688884508397630570760729573575149575955037703209120981385170592358103866919349534800232630188653365881224780495335479914160641191147772779763383036713577367121182786353980610149564126478955956329607023471882475142030288681415505472137995592212790659815144130102904022134748689770120341580989696528705363036952236152142257782997750751576034756219085264875547451656200177874040787054404073917250147772204290270817705926153863749376279287207361661180104383283970179457239612102207238057418351074740351856760436213346596140315193707459848911304595883362899345168112623360612247761946777708457695427664668921244090529686759123590886920583057569126977283915989563935387036750324394535461852451070209374280598050361274026617519796377521975091100389038638076834212758543745862582755868517422242102292978124938735248503953847774303925209642805439412054752777521155350023552164261012427161719388484558705627662320556562771765410197741638119912825484401313255552866776996539761714247503783002799013970458752487496971086146250038980022322959366682025203330444094345593719859477806973151800088879747818629334914566952443251860919798449352668126958736975103212253124862663830165873527502893502988524559338194184935185961852367068866777651246351841175372262302841497659343633743297579892974024627158057346493603678929776874968736789701321596383907009459191706640113758371961410225803089882208052923720362820188238617082805854627292980089851386749612485168614859536704803111368166574928225203123726411641783484069700739464055388426517958712198178652526604812186737025722389012224268613619408035917088622800789488433168182071635892664553853998930382094669346475942654145778504700843363799047072522643151758431139845495702005832257199914775641793800837481360718617239116846173043805441953079360201353442100768378169014768766239781511409712275686650603414469184279862970137620193935963920312305469405648048675093099915341813648825644559118963843375008905794674146976956208628497922256963747755463835517028680595167559146061426524228915636056368076592919093079820505720908246768722404135698290530528565457094162158802652380061543196820122380012869172584011194970690088714526616948117955807247098524826252547224213930143318305769027861831014493197571662043885123795072692047661686058535786336356299054775342208885098273404824888243194243408751811444454457157888439199358836080789841564892877767442728599516852438176882951792803034520349695819991732615398841115179515944267340355192630548752463514837810127810499992835058753312374639938429355434354316798015152168454831987590410780445429008567524502674651801447413269900332570978595792570916979380046161901510000883298414395116783710416960836155911511217317669058784702412137011192909729335394565292082860614328024788118218603146913660927299827130602296992286301322288663497431564716059322504922546399144987999216432465536798730476836418803261326509387552740180153733186610301441565343485505156535281912785460558711407742130529885082815670322642406842657596980909010307683288956972028239807715305804101969776800344628244912687206271507583776252493106179849821790616617111554592950220230834970836147661141419886270958350863362732227253649567466090515720305188339414630577039363611530513761535943837190049399167546324860860276843028316470019683077383386887406365329885197334537264785352715475709104524915875638442471462788181388100641657832302007524966562980149765415245996574158076234121635424549148237378605313517821417710185381118380673461684443294256113052729127782862327006342280422105009269514898874337441465295133697082153544143702845408799914519319234178163499598591361771398853762194296084213980566950626922308125702240893619090521783898832418897118071581301847424089473749117640820479838690472229371713158908267873595641734619974188519688332040250677851184054021766826783054747933713295656450113557770676679684103763893556064266077747431873358616035006226885636848233468956699985063598110863114815324330856146706878089187010627964452591006739838801253791124418343512473375395568346740505342912559967735792447906092450665037290087349410457872013404358983460046698548011793628149001469394136886204536175554043750005890961453558865286847152888777837064363903089461409102479693978120708257970578383552922820076784744346725057390611497833717640010549405460834926996456701039215383241263073797642937066874499239439981224978307355506629995809660382127681309481288940563261357125919977128136963378677240802358392137635243390915519196592542781131858597058020592532793778167785940977070293701676316579003632763996481105184995582481682641320118034949381683841855133298489070842377456557235933525231339285126468335771254911692655184813635756565597915283384745627418615753495731167247741097697603648458475011408829260436490775630830537027473889616273046497106098171663857062312979603835963368917184891372239445540267181716222279415407860858959429455550726510990387146872711309817932383950369096491908465331153322423652912046302538811984138594734327082155500435404848502141968532317072031424894427676665996125452523666255835174385677941421951543520205850275257219823270258953319362686741484779815759494219187756624609425668048067720105812984988714783347224943025991779622105258095708554121307715643755238439721528223879022194829318395847796404411003861298554849680170469871448953051144040340649072580028880638873732340475900788256080356135413789400003878271884980863929844681514058720505009413729798679188041867740963871007144325657979519595257865402718568112490918560217600104116456515583642843176764259380631127285046407563827048538266025355680381432502994219326085155290538901701502825267546335214207336390194800836130036783646491053852397550372038933524060832664307050092209793482988365499483076491067060513381028103508977009434653337497170609627869304386825245047651447974430018792358432637408332151049457717596488205826369630374185623995658116601635068797459723267214389267639855714108030649186081443667564073786664716382770545237977939329439673269370731004658723561903275819033057073999107732914444947990082570706300485788575365189158955570080039725930855314242100598401934278772554199897660502957675091382519174613797064330468968262215183138913301700626349344245692868648947295790786236800020280029497263563867628415474956593746749503662794066833244872984708006937915103524730659615762113745783114953088268671831945454258529688161163187725950033240646752793422536195652045370073667692972805650368667498681176228739944360876897356497298499712100636898839636459167240693879466282169451667060051975921059421604961133800132796263872920994775674083241059692470457364724192115390799185496301169747192396277499200791440239038288957867021148040314530254580153637666602055804991607800240013041428032902623150364495314092358637492948454678438444753665900098223158985153368401610952072529484492013829341570350667416459748577106286858544197215913735725607483321598292443488898147066263728521275334387704393752369936059697595342680936557319039475258827096012271013469161800891932834717826720888107087690457586830973689097086727950344491635169255790996665565824506781991031776164347561210317616820753255655636909395228578768577573833720534442634942603632432644967034170720005545760771597807370818310331210802268319032985604888957707395586396390140106092030459310438569592586359595012949049529085899836771611240092162935145372929224127212849318969402366741530807766973433467242602576335017162669704795006396374556527708560254261273786729575210536953613880354361353743196052152444671572840369457906502652202810864500471612581321240917928730430235908893500069228223363137960199531802196123792167185050102552638671605584690864596896541873253703081564885362825645076681327340335174086119632480335846503262877846472100273984297546163831703315102728879940171035866224408598001470883010352006800520124925908031726950839351324312433365279775658670636575213877077342547145049025520062321030510825193624994739944362138937641329063709024479434115488159649018300907744405412890777674311506218775585761421312863791864444849570409457713364325056918813775098119448042816058814465256537141946763621837740310836648291682093571554734455072274358007396146085390433433127080092979287188727265191646098087249401684310555192284876049050300208241195850964327222965913239991059477551628519407214033749783139985219157608389180936838049111748865753012569562123971724329290734531906357086714746059984858613856472453195808292451951853207467924811788194931937510583774176137200564144339945005213555135237950100820622560490083478750757436318391127919203669459827726256760400815680417144465168205756775822092698199882127178452574542148994804035978567194757156386563550876883335248009643241539553946025416931134622757889597461933169327325830860459957036454246625704042230352354793438608870268070451470408057979292232892281601607550504736491433650286706242563580549368599285270033324526247641215462614613014470769161588010914363517421995232673506585838260640458426046133625158622304123592703203549095145241871381282166982373025945719801146656752896031218678713121015056224679398176890582804859160607682060681402539901440187409400436853737527108779630914438653946611710561897061632235367549641902143172457987821200137108576690242749186184356682835281196885920913547825513483077389933285371704091460307302915878186311886959151734181539890457828089023110063778719632072765147654558745359797151768237875290078085448023528849434363519730676764730316463103485305025297037247398761784831545900792102454148121170575871170403350605051216536834651725244390906237907885814943940801945981443397474805132873408892336063150872438723220773371659152705889593443073433185269718760954647992197702427686800189885990677994683078561940116425880615662920144124395166838757361249121244502805120301324724396389950434590675542054133360583898715369313102041603129829264577927619894974099022712744209124784986480982604336592973448791512242908074179704431796950339903962522802998571072282052900401865774086936746395327721080871067658144781015111956688230427443035052661721136227779848958256439238981144839892638587242973185120213527663915965457550141137107183996610465863694996990734026028971248116067846299892763527949645294340104764222441788579084440341474433839829569212473208117373433810284874028387637359545237729453210826292686515663755509870924956369599214393761750102706238260095788923065456390130443043158517626598419247250524665114833814302217942424853606123192893995044066571690554482738832299702998503246721059420664779436523883211735743231790414219874011308332110525848470635731107926412553008355473792473092341028344496858381367976131882457461971680399506951674120123070486986069510508085708128121252911493479013079146869502446574361462541527164456040287100149109375095742211254675812540369168376793709416170822338817930827779403336832690652466219439282423118447509949811925634997173778361459080479212874122253334324661800550506670848476089858012077734602126519630220396756641607910663430822479249518224964594032177329775006421362578456845612987067205346282800361541995645936069313038825175686017036728254721589104085259800296021363494712354040967078739039690112886117427772240854330256287502913919105733363616465914164112243319763202669765597012995780200512353686652133358477126622566518779116553679299027664774906334253088815796563718961419056398621863465342726577770922990768083056468179133491107712561724374237796996513057329101944716680587765675061779038073946605595256162885846732271350803447717587082733411945835938755576185380142474535662507231629984606016690822756482581701572821517589580881445458113722420864074815596842009313572746498753549329076217499071627858094382362024623865977165390153215700487560865454457871192856499638325139044528750441711433236749291707249845069782366798696344866522892556801269827101100012078506160987497828746519164782297952896334564653401219841549976949194910764786093244098390288538152790633616717415792346854543815432965565193065314827055093042321590172573379337018838833048612275510741779075760874041057346489675226015523450349380180864036766375202013174584606678183522690314803843320798396076263841262497006812157081103559919346079468127557232068874891048691243280550851556213629966135676332083025610591339703850440551877041459190364675642806711807642889006482467229297217532121990610230783651955643493729650632021089734792572008001853669888906163628131393812246614506711060035982861765107928653372100643006651281424663686526688826531228332064567843963687503558150016670173059776274358271124536451287811545375517781135571482905451409944419852228252763960609013558430471842363669757391564992081403931224028424274899112289607982877709405877898703027198582193843406120676502603745120499159642641308087767012906564651642634956887174948865596460500255362676973561469557462230723238829603934860014932264117028778965609935752996924830976534147077483384905656403115691717442170244018657849799203196845167534359086804365482191920851546939336780766561864272197194016159407780662071628022933341086068336172754160416853627351366784122015425679814640813103005351364185255269292344375725013857037001540356869086726610675592289070680000347575105304397442094446247083349703036200367544177101724941371992032025634171794454961486975897986195891362045907587356798513795455218481503260942417641487502583918982209865465383706003402391655503494052114879191898714654698652322907367171569602334662933078097795348926107727568010654647314807058223098760792694138835431706233945735912326900342204733274266647376071686828493318152076010542031813886515518057289072624287799896209776878571475500023658735046480351990342204289342767755902805782981782816155733733313460477913933339576040271765201913575166258462663856405995903553036111356516781010185032935933249404428550190222654281123379141583845097577226182746844164714732595355140687637340154571769978766733131277636059053496800629422730283234439478766701670808055305755151416995604787257071103521170848286290421599018719904838262231303395431667193845629802382464396738803669699929287599526604142052230520749425512650839599813433839493926911291257063881507324811038038172463596745614227584680879403555588098609459834861258341984473741929978997102202683988486705722703517425420931181164375926871819857629315502271921648412586320823810516112797718983950380499926730945129234765327864077900359838381060647869967424223376394112383614188203288947054831754904650607168614436142260743712239604712771062523436455105490052074837160904783276968104731543956702611926530982699582894094201208326747863288913343178258667054292084304603557019944000784564830828089745781340125085143312823571792034152247857290290885685003172996459670812854816601174628391121431918383177824378171236280505469906289445871397340524448083717013689563409317686781813825150678149528691279684874058130320100789920964707230816512907061536235909084444105466710257872485814362203606723162267686708308177674760952682537532676040149005087057296665091119355247460855066634347085684193645841764109588972949510100275361304034282936511265240991825739060609381818833309514195119761165184837942799419246746732476893395061758002644745107193428245389392874720294892375263361564074989005587020539412253938493873201685191643478294089599150263389302440313810208355634051215358064464865420700763375846655518020547947816916208678432637170376571723200417640242495719662150751982262775939938436699793300457372138446799468930462350919073662901559885408711364271698939332425826814259775881671327703992728639534432157887132182883454716163007513995263318346998137749650542683220912472522166867590724799412657351818672586432390591516428728510520160463068255401663193450411320926990844207452297270191460257398312809276195289441904012622173873046777885702271682939472359101395191184846000320426882132122871322197336510983303163377761148950930929912839415401631410364539882961163487205661611746801027323999353882855918318703903105252672019881509843311530560098142324686405510998423515695162126634605260833161730871571365039155449980822476766974141943364203780048350437730391053018694223373373359617214934499507714551181133629238432258257757667089574815212823934752849667538536012923705449172570660203968072249529644641756703081229800697306096079316822873389235077697965275794410698741135942998720445807853972792972463047926967979432724942428406011922706978206871531690658715205582917636682919482297206316113643216390420398221689546397506719446511926467826013154922760214089117255103456251357448400244632014057788918807676086586366928483774630786453872958161091264806858393115015666691818553133557176620326337966721921443642606828976054126482786646388866301959042626994082353205582236010523717060664244291891115892212937953960977257123888712796958215123081460729748598739567559864939158224186273021999776599864159026990639082814316624262213977344185424902954956017396473661495313233895007985210200860826585373460271275485069568463880509878910543653665164912913385683015143476094361504946407447012501430345171316644520811667384492693276259692564879729500244252896482585899081288675988344249400816501423300657294569569783377986908523131291875999990535417095696358655689540088947064563912275556282266647638619399058162370422897258255222209376054122468635538414062679620524193837078823386231972500424910126980481547429990397853033012448147066322048423949075952990849022152074166295615043034100588282764281574104449517807478238005764678224378424886777472546572533673798307564388522169281395459149590832476448103533877191825771730125849712739932809776689864948765026927702004077982012126246055207068041869924347225278485246969390370909893636324896605002795973014017594020493978544461603928966065275503813751536270335517290294932557968274193165613554563598401948531666126393565994858477414854652525828162658508226045368902787418177926339003017755545725496131721906975535244569996836529990360522921219111021770949810351692962807466256614121241043451183268463305885411056027891455952057917911591679531101372480094761126489297656560518161007696396340655966387731345020890700699444086092719146454488223028378393586030526563557711891379856105673143928199518219084221346700808796822987746579991689222285694958514147632931894542730714973773620385245687737283554897603629133560888820022950229082839090785411725474680460438058209524833572492982042516934444943692758724272198481015187598194232478819319846584963456293693020403624730894370152829051347112250559583820893575626306810059639989933964419931960000269258068089741472414617610755879107262455253003710737037010897427871717626325022504461300951695617151838219521748331608253832317843242790148361661195706875931781142521201284127788757482057461016193441597423032949920635418638366707725246765605356166537230190007019154312220414867163047056546139454487958545668759229375994702991752672740342794617337562381511432404656181399380971415525417744603224963605130773576746722950459569444478982294145737657998494028286785723710157548630896852027595604612573352981095216068538592921717662745221667507440760432634284159937661865752845635759048403835103240595876978494754396120207391179418287135524070909952027246540660485292589728820994826602956395392865589443412125961165200715718089966129450380441045427292024433079518471143090245351403523845374492476544025114260772906360779576987427858898844038962510031021726363259767775738244338102368610006374649671941682087989977050736701748426922503441966862707590174009953922252697338832246477672362366268079834347764052974080183538968711684434965679688518184167693993361361302421339459339952297914795279497531546293557175568029366099490194576327746064905491184573353206674747078037692569969033569391092567026493277666585806197318258480612501394445648708796768364021976599278133516833064025936904103783664873144595589316089833046263870448547269875386297460402472457706847875692249954765415153030328738767655685457285547514826243403612595335181376328814537141871545991019009203337050196410056599993440764330763168573183092512860252238798824017328123470091323138022476059329968860933190800453611384030467328849084368349023014802450232165457137233530903906064600366665161181150393224168834467575210121919078145051990793986094342704485614983864083866635309374092181860239388351981483108980816304434743114671029177931036029943257131718532626578522455574420646264306265778634235589154950751530968880990049786087980156378995319374095118220425917769885595580011969848976771520047952143271356306551612366198162758889052132208486266177208227337660219185874186671222225402423114138159229854386202585856109910891460444689002176129754108425145703164977003447229369935115152218949707370151802103239663684232152107268878773528752619076068475520060798115653341173164631765390654661200252488188902750726155075630175509638232167318694351376533838833753817241163480812871206377162012995020015596616924849248335124304039571682834543378578492236326028235214034518608206094888408666739796589143822067430061331794456570449332487132000771715141503640017652284809568955174547533284047102800437239741155158987715798277560726679021838874775489643328183830050948585140998723225808480529769264548554956802599517871024477335286469115201905518517343885640958668043985485499735549221789413695819074250836986735493689177768198427016867647924879429355424570097507823331491102273794184536471611211727673190074408066820206422972892705863855996733251883631355077496777380107370332985609733985800443042816869246521152433805753700415648327112908010957162796352566965074068317482830789462661180853666334700763111933976914690658632133882303359071026590379773785162502969399256683746110742311713218584738849034248575071032826062366266274053781298484527635472278721051919650911246117661044380249469235153061166657436194407266206538696732714990803520873776608338245393562081649968387794542401645290350410563702221579506255651382415051823381135651458919778920827179800375830588176608284189529579001941362200102943919798480807697119136469321757444639109128442837320557321644104955715618893164229282306146870266555432463578194385665599582355603219556618357327200837019929643544934195263983482713315067278864199774188682481956731678695521107888349173024286026087674069090170607073438537434137324871535582676158056211989227644517750029541091680374670105625885681871496621546191743331870736353089975122694036574814392980842224574092849665166030091065005227313016307921766903955275748196912848932520541345228406342328037716816771746791303614202290876153114517440939566029810489355077478225636796969214784546977359059377356230963783408306715179442520200072649101861789001557606221115818565314840695571523178508380844816852974857252007624697246136944651671198255781340733831726823634283617111929462725952877294326667883008768947502410461593010372122520467328682090619145167267132379430505062864117198349761784630136173677088656731505231846272480562607900540851253618411095215017243615452517544190889764638017195791413511251154218019386580591295213322491228993336356096146079267003863245622474365013674462413442728564270881197477780154108561346925460010133979196578226737422401184819611083874747817178465944849583313754606326380650125319959574299397384664761208218575559086568223118969808809203357118282482621171983420482053310627861874333990386275733136911395857385881808585342791951927582084456283711772293241721307840705232745373837298846667743321888917389108851990020802983749626313048688595285115230001364504683870262014489796314018432189238474308557892137183249138782887830544715877300488875671002648207254747455817480426373601729472392017419345429631895159236386971279574485609708229087587540068805028634075762187548608747623211071279159717448529468247094637979797936763302105940930524785607753693455752195175820722564269480343511410604310455010001087232194556315069156943658605184240207340092279574091623074677345099355749226430232360819797319585200448059373186555854595778190773116533284698349127350786275728847735019483571217936319321718660444339560246167036008271618916262668789990135638848204079872959044366880619316656799649844548276745920610006811250489196412349286722486859739045600768162772371727967875740871999133655865555296493813131361799366761863919823569927604550489144984945494499032750575727984145288227053348862449143987735896501443879434173402619380461974427560867595868736366343987763270271312337381897669960824313858891942886653892354924030581941722276802127806486717918715890279269973160495928844573130008029272583277056865967360302763076774615902106059975437117913654220201034426798616766719115112385970163992167389208986974436455748533179983606085539701922950363322680858699391657497086240022104596034327512052170234303417923891206604005154718033295961578777047457361454489056122281803694964918140879590090706241240632415478418718423940191365241596374455332087390169933897784204547920229235820893455121663817066137677061730748057745886654109989950847027880520082244888860253351123787391886207234689910788979673000660623290916535497221208288991305836571413536014231860096795064855628641626869031907128073536378371032758883553335107242238562529721711798898169300926047337990795978958454859141369854904907352472465190505376310814660533795811870362569643137957431129678225517395172216960307259899633155437212221037416800185337802053668678885369636296993451832533662722291198603115416976334683593104980985922193558344176571137827524824099104165309470582564968933205383925045876062067219439108443382701877624774729301566009187567008730991220528477250413839983870132112862437980221910694239578112775384433934009144704642956138683660956718286569649438122596228503533451117486281465816611083091174961412711836214968798514468870657138915722298441972640674353041671087685850692985750933769602127253058670438425895509807616274914899104415565517965831111213985916446500393962119620872814663581974243124527569492242600194921778564435954997983117798338494522077986153010117319035691772362723307535884622216948471727366932517731515719181769054493126074469265892744101121795843715297569438197814327020671798958190541344702205726493220983353363518774535324393931465562342428251138550727536838256280782262948968213146060250956021211542196978458865567044278543843868014960883515467472634468257100890567938382710584370937694837476043480678016832401091603873744955657502927362171014914965474274129957364318887801411985975281799127893070876364650411015612096875844872766565670523715010202163570882077654588682308168469899787636176590334194753301579340549016665224546853997018781507665374946913250399852580962132540506480667228159738513657814620121541681073977389899934234743456346075859537152523210483339342683238920256280091793278640651631732032370399335886067150033127906890133935968393387885865737349175726623944268224070373626494214664381328623752192256368578390593317657559821574445155202140318326041670467774836830735710519191949886410488622013969645555236302882381705649740056308965319445520161608835489778386558590828601656082358979912273369999463496985085189788384390515123273108321136923442841092245637332223027421754266168384132263916070117021286362880431885120673814927438900145462267137253858472076027367237638884951993964597356613354702943943578577243390650726151247585570332725392781279918135400717590255413931121497368596400411094431768581637999830673019014103408500206824041038323019724206056132397659978525337206181250183065523748330887649362545102748137580949535006807522978121299283246142481254040447682881685484600231389081835583652480811515816392241399210111557493467270409164850591581377577713777799260745175099688236926901920394104410039284384178788891000916036457950796549109326809354949268768807324032402195243525415418334425703514160294973640689495310629749007230223441762486083073138432800659212445175785706742062242530113983496513734055820357120798973377352428251137877495601152713425819869320838413623661018788030592195618463270488532703373513576080145925012596256843818893468006504931657509003465034194815699538232317625622254906202844677529349815756428657903168831765217142292975250613100407499626634019109408329218501786994438932510631641608703648681094026343975459004878896217659476736572912575229741341692655562157988077121420423683477718834531070184847448523940794550754156449234231837136691624961700081765442373881107563851525066252743509154115159867512143243262296130691636957436704411175417051076472831995370493002563661255309768661745164117027212103277615967630293898588890983633480749188903713741041588210425747698677216281788164742431697087830879864162435336801921924573908766486953381877635104967061152640336198940503959663216375544722004619632826994152649470355208388740810832468866833427110749769711130777121568464634768720860243758899232354418966189885369774053174023832204396028474700360292559746376770983129309435291627694273465830594065782359687837733696113175122867663653865900368143296749457936000940394945926933086824860503678173998827767379810883971904566754817748236923416663966327376742613916245987147404684380270245764263077280053124281963834867911906322627751491931270090139254954345666303491779924410382240891102178091747933939370999290167746518005641190111479132040887671126546488937472089142746849817670276558849254385174633583341950561110984353847437702585225774256069940616005585919951008703978303763314041355752515080161455200003157522609864475920356944616754130981603396080251403055156395809433924456876435255180698029567657974030826251444612340915996802852685745104061546198341321654259341916974049520179769337482027907471984444577424313797502748400040254108722568901151280110295477477039926988483132618839481930931221675142706390655107186306275431214010229901852852987088079327325472995258128086548915190656683819174460399024830126569363434046184255482931780484980100364349709009471966990753358397663966970131387369697724898592304812398206180734615085389323586701621330708126943263809496134643324425968816604426763126865596675473183274834706187307111072506365567312435351141380089167438571741846116567789965455238749215890788433260899491780737251505344522507593561464807995118486194843924473143475979157999717025340390352367731198939418351892602117052701982413117218549069033745320881756901528924660801176429368622845158146802536796407606503211060169953584035301461610542879720072002751899525665474714357361386498690718435183057794000825191483376697774463353110409828955571503576620116354227917649093802172792465369499366568889085813580025614252531836369004882729738180167525106953809680004907611888386788717402900036408777592064812317430919129360187241313356236322899865497805812028208324562403812075932503561366729896893219862015852742616300022967798675885754540647270863166501887916997376889965824614454140055343146766005221217279043112926114475462182455082135280116874703372031957723701988990932382859678574998540472196257650520762340470160742296606862367908974005517157687590401808333787914221413561990952218108350931067041451855708840101193401052269414552392358581450459878573136694192904804932086990458470912421861918533411391132842501630813938567410147725951986914908405385747083326991096990887501447690204917261248110465073669118809055433530829729428600771423904107122728600472601463412289540044950224693965496320015268761902821764855707489548759757599566637619019570115134980368162484769427332582224344892647836872306348022614955654966609818457697296312205642647870304789506786041149017330429306355560748193684290938588344918990317598091908105629445855884725160316695627711357370276711823809408464439384165149164451908221985451043054069762919524053726409920708429316742285671761355269415958976137973367863087853650600887426128783148098853940552351270088611491357445573990320839602546441342432594684802938506418789251748017707740523449373400253745484842076971668856651683259074405706213144791786826649688385535769394250373011980437896958986913483028790004249158634463266996842069414720629464928307119534139379000846777633730493590125453818723072996115596093194858041263592271669531802690613016607158182567226746179599807671916129172322037930228413309442849370514854794400751412568164016430329049304455432961788376617328071750117684993063646813283286207892170924524376506303805733869686595166825484914201975731081177585893756890699534092303717813291314632023012951956817594426302574681835300523532617384965906996365339066074802830117942795276331313358205798590933931450390851432442506602852889443566790622940240144056214897459453134660011618012775365160095313916324868259578333598222815647828004906155550730036935876046192147703672675439184881495449268590323859634566296739041950371680514748565441903618551647626637454937908352035360773948872312702728535934235467064420168349221743896651667614592693782048182534326614381512234417292020437906042017489356479664026429123210947446175790772173553513801144112484751276742737191944834344287663663645717598624811788295223043527800988066815814934373598093435697162252319342758912542097087882917318868218628171538918640476549612850811818641161157457255518967746363026346708253769367825353661908734507968368330727958033020668073220795179821931140781084362355413268535741184594686780819402769217278814112446374530621184286036609421569695048639175351339827081931766571599011609674237489429832813511908782513864553248714465594521028449081629244442557598653187759495237076736867600652096268734517143335963786464696488746074218733194638456106334861934087916733895725721476973109295665772041077831486455774705445133963994785431856971226273850177452206372094863867129590046274085475695759835576050924376590275559834363171565254244245505058257820174829336883225341581206226907172276314426104782129255688694424065139241879867787235242449891151811705108091844084651637289093331680843823930648383138778854022190391573992783406313906254232994905216759807175733409068552030214698644519019747684230879967315015635149705543131771111783941946181119709285118733374522682122359926200215820440308308356354571968313093773696320772493609138975096165911295880164506781375029183884043195695062561145757201983595458848049087418711856353566790089623583971801227068907984934921224396133471299216044908953297154178068096440421384890306209992617431536010119769683974624704314134587324087404239960072956818134051277443856922686145862168701988570558159096322843740205103916850233370240579837314347952910667705779996278280515437801332620595563555401096451099970538278749564031521576915433570893009753230205179236102790281971745890376593857728263775333899433631738975569290487011953432319866313914190970667620822428321870579894812221821899063817065015133287711685207480117418248867616633432941574655668710279655940410883010419540063614384038273023028546478625472962655109136319458483146160235208705109381732163001229471940654876754267013732846761177620308127985512338842753552395963361763484501516529002869093254591330591182741188856509244214520343457406557605889772061281447918694165363018975883146811739094324221640081284209573559216757446506176396736736404422367177672394696250523064105736799523550622357396250369149771882192036505366702987808438220053371250656614559642506040602052970528574455381267477670593260900540346266666291172592822759418769916747952041708167956984912064359646806850057574079902712821907478406830219864752312358465249766452506578404839325310360866457384055903816079240499357393757080803514761674256162333625035488741346922072731077439808216429657060438308498548767411928758181880205424281324482885951370382353238955864395778031983511471990252549869564165185894873092746280092813095206212358610141060908225073208986201440503223786693931076085545089529063942081920225302802627716083400908813939028982272001708509356924747327029488782642561144120483371889072095745648979897387046801872843392622002636271872345452212025549976592198038405808962135901175447161345669001803146285128915038677745550694450819890772506435653689305492574427502646985006198505447405466924512230545419298861442757611628512687548277595722782509870931477110275244878997365271899343085152062921821870234749176647225449752355631134273676012295496661467951885262455326188021644398447238546893971136532283445628170720999578091021116563762222651666615235232845105847813237437019217853979259691489289041970835109807637395113514397028378241620386838277851578077509914466180019146961171994496981751608118779403897355134659809681424380266104363622831694498214293880210435792912871039976440932147623294174568577211668334450106865018235047987671792196953539261838095306664467360439326234797319676668130645946411235505923402426762932128899865282589648251807583381152023189354385506917325642479911383956976893903992836993843201880292842657645261452553785315108991276622218043478684665604180161951356897781477993011966896732488685422462444753024397561606722555277670588290313967306209787255200453140500342060613248469406950420521444302074308219191569789817889651626320531501392736767225800855972842547494641253865621474383208016371324217819923474058307997091661443709229030496811482169474197684099070794852637889225256880285104007432091631942784431183210596036461632906511825860357414945462938911660940700011127345472120139242614025549281102017589177868320661094083261935699324654638713744458118213880097973226726590176961277994353418495954582520963190348710715874334514287719578065061850700386708462207055285548528525010688461591097979825837800303912358042410712278962468527956690526658826963627872332795036242875834942665937959995074204008182480096478648766604194566473546578641362860808282760922889503698428416624162683811294094580343440346502504327183082257291523115785536402469102720201710654183282955480902132500238487783344438837679015048678578317194181558468112750337257572044719686345976036592452269444873546164012239429974831880247465713924675305135549258505098197946152462317586961979903050260091015601050710495026031421082739960539660956619550625289494244062626622315600143731065291453140388669694334804353982564810269869970539949806610557450217873710222540848534851523622171850438250420082630581105445476777100868942912312295068009653977779730705767621663216350106586616918711922446054785816383453963720071615787272461192307686841704599329959433552693102513746854237254871955834394033687818652788773182167353462086042034366703525234043860016084842400724207157161115849697828683328431659563506096734962593043407177420562987349780422331437775810977535692739792970731151168081992878943078334237180475387765262247950350076488605306608846452083945152169141483697158051501521332147694483025516137098357388272850467786775298052258169026613429608726993940938435241025536273093956032499816211085023717131954416376779085968402095501034775383135404421369994649405929884693819937419534345342945586660642677091358918734475029472177956961910789478888637517384816665276328685163091612275629050224352571840692965444269462572406846975271329982813297788853937770899951332166714932756213877436406599258313545988515636698664007865404456828859775344886166052213031944484464296525862395702797137124277728472620277724292308148615372903902301968738724784481545625645034809864870045539510759286577127297128169914762057215035452882396966477809254577202176214940649385171789303981036539252010645050342979013171271170109209919832559393884403549642880630561088127447991102789658573430298196821848978650509050002973831839942558885291560522472096466559727055948441900188121955738867758576813403503826624757973030155480538216606763081536686788248650859109061443335911084374055890358548521178392605377768877852201389853195413291964336290063837522131860649127287536543447690219716133893005163625513945880602089701641739377681919494940952417519846982147378176696763392865678883258497588304296071248130016707718880313973038053073725479715975570339715593231167313935091852641476015861132092060735828598711394668303469571756301606909957642736617124058434373687257670753064498226701641861202428167348632487609479947551997341221412876086599344640007902347292557599542114783244670470290211016277926255301182422743804591889586837908658822941319611135984796814709186652319784773429966565310955451829411305659613832405949915997058304249049195160910067921084120088113179916659452994361858007594143190920914536068661927907061900183926593414624431922225877848192539705401189164050204150557805247240514271328362025538786524966356546625572615519694199349762961792441473728915608100506375553785497877496487306291297501372942257225156648668527561170266150161488121829495747253274205196557270036574105497541654592397401700641058416164697982669799558823543061871972384170268739237763803137034430264767044233787425577920608514836668687860039878277265489942894218474740793665787475886431767596666084757022486394881757247082564986611516794338119650168599426155544778930944376234739795325344770889683737472507892358207210567174052601135430875002653433393519714040616360848796762273498283259166082947673028577202416403123903175179854205189702276335122311555833092122904753948274571730906549167969320717986604708822836078629923131199333901920331106067012658850257185845459084043502703065648214553242572900732058181707119465003857561822147142874794596204044798482634970859887172273569321053500779074032345601929849484732551682842022732804034625513512367898136908462798535681268815076914902566357291041934626497950258042008446690002749255307469218399208399395479471999885164501779699325726608545864444573276075045449416181083508906258659854534858686733886832441819717737132873447713058888173101091677293354369916966746895825945259771616558418313160473612613708316977139520402314339853498521643093489670439624221952098938077924923473043354865672598484895741629108723998521166340488159013823891656580457044543818342630464442003287334851668386881440002296617866553044312968372635845548471482176799551173783836338424500215207370851270796279491038576200270520307378597700044502985950835402163925142073232857593685544746814686192810804323062851980344603353451876978026243864829860845912671783417074265301449952908748062481784337966378387149540702526791650055092817267149816230013000911560772146487455024496422225086941859287491652403520645171565194850273693594480137628027223038015803599953492748315159684204744097425016589233787385477991907612153743301189317591605246268231611364260829422554491520144814687978152079113981423362224053413691766626063040961343149331702668047638053736667869299787845805420020943870972139602494469177595011260596914964760003462826890471629898791750547168066561923602037620249069925991312704172130648439268688766415422487215387929638271814143465213311216871961518115711838178319385916059434415317342391492353677762940801962479127630176374974254540309197590084600548306291836865256799992523231257248666689569524744547989001827926779722039020908490104180876559312611581666837923093941525633874932943110249734191399708086852274152381364355289517015380671999340216564919335174295282968780218992394343337449240849918531783981970754883195173084818197876014584519310340954856205059382196361572262291308480822339725527240520390412536090470903414397004858273225988405777134658661279717883923091780482361920005840654097801704615496044798458914822728782238935929321887367463564112922060715891334493981913159011397582229008759677774160382059961508801318312060676344415225316597767143831278828262959471919901935973114726470913140402024610530745343324369993056632345236129760722406993820444665172313162619683740134544348020735918453202726171588840075868220537928831533465247921917084611619749896416976615759289432069161709860459796834670470412799257982770648733075661627464653020449717651040859981802701462065566628504559475126957557076037465253630655500362134127664200197974204713273501767522928937472916149702210110266255448193255246085325012344061930053578556804039070855530218390619394270202498092346866146391227861254680698488425436274543752813850294440752032858936217225872901081413303607716892975460851401608685660852264723332094238505723206723930869865533602816254018346622184414832260782762512844530834615113345890955453598361364317130418256460436013935161179179904973345981532127295636950453412874533038605507706556282824088422962375442392257237775239062329690489522745622078691390807801706782665057256541194090830413210075819086753435700181869366874333683060760144899198037368309505902252001760928843458127152689984043159966280348700490187708800441915746214846730285809331262783938204415271580027767478410404617579013348409729993288376993664648438536121488403456345251890271078432238307286804662986039486856348135877560639956824362338209925820040569028276415121983446529330514353836683602152771856771249443118034879815548607049622288736217679624789762455764504682124298043579528786321077172071305623503036110407015897538673484668094564217472144113349032912043022888462898648743255772154465316917271216415182429573366685487201001303337312929813148846281303147234074240915961678728018463068490502908886240826086617026594428089834662189449679390128524685179267404886036497611359176693430818576170131088231381007827796423258493093919316759280528383724053399721784331941795072439542837332621087781618093567880803985355789039564965474190153432379373566627650306140033981802099054553619401574645271947193451175117740176549445852916290813453692115508531265181338638302208796840818681629408253472788814874154344594856960552110950198745895877895346015418767204172585043912020179755905828389071893448634992499371039474725042502086689551383224779240236964555872430420548625582972402402955598828740542656829926287145823160589590830701986305265822854937490129594896959586075883333129869105237923836894254523976139150870814005757507157903872034529735763730800861706071522802260887784187990571443440308728628394159573272528459267708802015431082357464182586251359523670127712518655159155524174947121749895234855725510342130590547765680096708481498233159072297038955284062506028231748064710922448914833960570229278731738782622448404102665852663479604048540956865175973493857372400612392840287040816720015413059634999765661845934876398424419721707647160182705384001304138681952339445700548728622579631525485262268778199761223347853283818068029156965319639564093595034249952422036908464485449448767913091095690662050770492036186093329570322124497211359810906011429148924612863640502250233269215207652874991251901901415379719167608939167513427455786977880688226973957531060375429285609222254329364507519105594482579903465796245143047533418673050224600996845566828792046121986637058450644266883664381254492669577143070468506874923156685209649760972052295710218698430478518954748404800219754883391699840546152952825854325854908650754381917179323501180860856126230804166508147627256032422991443058194463453929685268675311753910248465388559717630793541100510474521607176895958039941457606863408450039540534934770539233603823397757188426724251701039388057408386621938520587141536091386477795544231066298730782327613561146843350751436984770611282173391321788333784458481637613176816074093410166943824607451323650252481906221129813024955437822073224060433588133441302736999382153564694623270674663479627799559097477661968951316252609175722878129339183190868255979640220815589103459509441141955772770063609604879703408798832892701492644788000067215941536359218551087995309792796232253105638806993363171659470052174244812450959021005540905322882379437636152000250012571757824984928398118702306494375848595983869551769120249801855413984027852368409527545105079998210694085672128273222521225371201837327693229047369881855850174870070028813606358774344037927115582706985077357948947759574268723009133923208984629075286734584827705328315836349254352536902235078117506331182411638484248915458034752503916461671490449719537063172150129803091609282833324515677062578706779682486580833140361535681742539353066507861491746918715706105808631698692274137980889919499384498360830762992866592197079655788602157190849987692869185574325264456520143271550554692506291377024353356240463355753171087077897229449226600385226422886172914027023730168372019831537716039151220672088673721634101178098710866610271609196784809108088538699321715718532431181846809122690657201192874565187901102066466033965949933358250732404977266948015974840454441799701198709002228486293332596696766924785314877377148505326530763502688174821268397851265707940826720065838528627072810080854512843852275793084802775796501500564860983266223789503357751240628282555693127629386654754102801288262257157315468045388024357247109781396426588298983919008253200948564070113026926721146501694320256828254205630125022366224305106966397691586062312076105494956062832619029066170665732497644531331786574862753293214214000162474314273899969960739275004403616403070391763432247829744535369639236711098602267233341792622454580784149764024837574236408455249189150944736549166656967225274324127363214467369987746722590520595799870811164762236138575564431155761193968228251540385682883527110268139446684379755691997608519779076156565870692221894809254741705238627785144188961964840465080339235720499934169081127433128456636819892631905917280952707104392137240379092737242628492884418907054172844780157306113949194595130639866534664875639951645521555529296944023444302649180455582466145710420739660924637184594186873303177893591376209827582859311894987383821923776517044411493127985400043850429093814035030989173637540976099874819242012890356771683129752675321940918174977884656706361765682351561187299247313888325744235768896476518681649359911899652915733785397013929022247929729568967250845681957276516587972232736901071852061838667551491776631906332336846452710099918551845756719310566766429509786393483106513320213695385476102846780129614440800845736558440993824523325107133076132617044304746727227801291904834939235588457785967569081292076964865636142820802540349667230323209167907492427059382762661281085206392757179040786542497459609247240015947000363964972302722294468447762725995670244846093564152718620270810582138293849021511195941634517770810606333692977565468784847237440286002673599663986513222270580440472771447470104433750044945440571732160205766540181239558526157139210852695056708809580506076326698447219727669374039871768912659989850464450227370397324410543789959782335604713316448077767616184104655279605701665616029996852209386226047996648799756844947062459686865054336564771114068170447739098804456776822532203027317646121376416675362527844573372031999540670714672270258491307942676783631229302290439114365125421268904137735849126375804675766961960013085988797841435209409245568892168109693621807859971952548126634800240740822084005141510854962262475990234287760710464396477323177817402356631020832200423829340834796028585815428940273048211901423388860211981929030329057378796253446302616892970336413053069198829708194445871487643412775390496478725215237034251954175127433880855326048047051247351894360914580200567562282010618461874222789617357729175250465546388188830692453960135505197779741834325911628881752579400341847610261591602649532862237287497919506394269615330824881402978298098193561318521236384960286558566587642148307394631440056355257255988756571251885684260226275854341138512800109669552248725605876114137956928657995690087735852501136174966778570861427978392960603075020581120297057443999864066385446380456459183386664152055485686273155268011750740453775692429848482491786035887950945394677898638625857420357335342632913679924949993807726618264265612294107318299862523356209408016034154341537994365307779410689516464927320990682387850670767432466064803693050137338205862932620499557885986692537252941216295387558844697351056435969237748832950529612653683060255949133554096270151211064466223800618549321591335827551115219719764285679306285116739251037792015341830263248752204547220127608732197266131230574369238594602405143244901053782856192222852966943708384924147330891677296867789840976406986404463128283532505102521061726421408584337339592845088538671407266915263932531641283087798422687889447853678261929948172811038427804875844317632200132134471870242942076075176269520050135691326946440548880624293450531524903078570686205257470174877114328185880391743450188907692641619913026543024353839906239853366298803685083989924150672720596655141424563630893920781625660484583943274401588726816995514149745632095002545521553270068771318348928309008468187139776163671709284455315259324722180242144355613869346369508920422625880921563950473124438532451033506995320285056259539286200835670704275049717151179351031990177130259025436570506887539170346147285144418074227135342634483447376340075008720988302309041817961285712788478605851836085998511360196017944389489732309190523260446547890958439042933069333479212506662502503738524563689366743228859508186443715703448261381964891189733068135968128824251640259471313961073770551343132400713052755061836638131295991802584297198955349252090679592491950126757434094174028900492871969012806509575703518246510648903825356447882463577982738221964932409274140247799395559838503701517272032459722385347265562328785319351797939171172161450857019632855187891287640150612102119732764593024236838724182528733743055948379153090674680602184944656236755137093616691820799639242334392393462381599555523909609980213325204643821452043147920099200848511890219514266674861178036591909329412383161088226798027556397765276961470045965163337940173453494664998307723137409953374165040052241948302064777609792345663719434464384967166948956283724474106880240922236726537272682172615564837919726491357410547188190050545071757679874627429621614614230020789364350361717761733328230499692692127421343683470085668756147351979289949524009992245330357649590430971456586487506115598514246338876365532355524255198808317937624215439963146719876444404024819000567086828403714718346310636297934339860939386607314052286771172266408556747258191051466043297322987330908090961612116788019300316287941073614441793988442301187229137498438840845660320902785690827856679633179981348484122262033900868986594364248994883115848114748034983590603732315610989802502103730949588656832337952178126353309909276023317899511359603812669147799857463040363584404186727482040127883594309495844562932901841892657310335072906668315067899455285609743535787486755602524376295074054039034870719369522060632784141223124052892016592355977972258732071063088787631749855637761481577670409051584931145861848784992289602654938078607246933750070476916924901045616146873100620621494942889267853556714670193747657648637748403415889706687224288377876694672626307363703212225317662391798642660244761035199560272579984864663196777178839436005940074777143301994972262123725558216222823094046012394202478149697402413471247498620687494025970258008698679392345635262482563318922258072514731104983706693952206323909317557427007127297122018370972220228644137413457695819492000104235200971646801955736397486175368733194108156849516461286999783133132291224099801302836024537421448704203509197430162214992003915753965935361147286213300862427414890372501959234137467357414174789642467200997310444467412213783072007885250210732994645084807160947766082164294385799554697003833156976138698688656781921564065310024678559776583994503658111512964336736141685513408559126340187208410449051786604927025605762032663184896172721016277646662717391356776491032296928763795878650083164871479471504644313690632503506853794998799427465632781391688056433800573351990856217826894707633188839100725074909134806517421429313307447892230099242546624887074476781266550194477231131852316509663912395878840719267235993588907520066662822020420867396750809646496515529461213894224378185371252341358745424622596049145488934056676686723001593204411095054563352510191325458962636621132560264094631181716053733938696286583061315966302311257167655339550275984862103369238022170326028901917383694978371862294724493737337194713999761313967564665821420795565994569662614271714680920546987571183160363408711331548358952989527110347280714139534396470857798798545134492549867325704151908889885458092106954173799226897962227002239894011407912801965239211421554846913586364830847828792929117893595030189145841081185542633386751149220202510866887413077392031844630644960755550185481740004620060240193986953050269323256891557821299631744551306363935144673823839474658791252309058913173300034374625020813058397415477369385433508508181230066157940983172507689774981423479084765732807377209920636251963952850851570972558762856016415992570776845405601592365915002364004700650610896338678158115433262449090456587892182707673022977101115986488598812048909557775360813036113557060487205345287133267653995380360668002628037489634720050828969372672460102052187928418687709172148193323137137038329946805019198025925992339843705527735823860360148671091691458750050150552170791157189814252251499824628610993280239911515546700462796263585511978245498588944522309402401346310022020087733968840225464593341962289825336046432759332314896390441346159249622558477040537873772197976390483295984692465387214541523757307245586930923241997293083374077233603476152215247773090195703047430469433218010966915519347816458995007407176683979811454078656979210575839022399325057526487332222915069380234071820983786153092382624788531741751792388063449083252984333417082335025733749167538945842792895834240150256185827138324232087551778294365691877855389947935894211704105552088951898414052689872205163125063252144470441588144226453673748501138342321729616676694330749709551293632480062758051077802228585760681632710836998399507531563157791751228997847233753016006527344791464890008307618472512584848969411948565849577237946389604475265693509561431834546530976936452969533871910215236496984337749262012228566225020266742869458739562984277138566977673327699476760167488999876982985040410368102119588068777610437259162781999452472710801013552069483787905917379667798374434734675127865432846477125051204293426922949388724886661660642458601203183203382231479500842772326969041213413266590785757536179875372410349629493428282964763892116185212605287383449745121265311745810056934820546599115089620072694930656341352336348371479983655878632487046676079025811558788536340699984221666051604431082163677331827439206059319405350187048916486268013752519750755263092082395177043552311997451036105326973091707382435887454102883089080124124105107037274162784681207778928699259741394321234283829706139981207697495599744787073918762840999745983873338202133015842680179978646079612813294281973305743654749746335892722350734325015845507191684735726538943672051886877694461486976187363419051636112866041887694156463826116533718887887844418807950420877072325253136990586887811680075826345612525164512212056155361814587380615453085742025513937005527731743312674797136436403963209270784487841699173255246054086624734296564188802969137405285049036240849072861006267920702283872649151171112267996689701032357364021991653770967569060718098460140820931365322043233410766822936483576013883322453579609840948931426086338622157090105036334425132339801023673972430022937798074093580868940991957777056743268182872842680374452594732567263441193633543098583291477126297122527016487016095282794376288833701368946787150794273564706215212131887200316122198536706319440431322450317261917490777682555889977503679837077615653308852725230096044322715076152588819279719723514986675566610298117128119448694734586848385173887858681811627570118707474149633531777649176864200288073597998199283380348579460333644522874874956714342170885901616220955967040493099361544069935714337468855222975904203611362251375355230020656043240550555374979129403723460682533298104709124226859829620627312153149517676033327260835525414801580550588896759783305247855009962089163499512657429351801249990631340528080728098042742935439301972382461627924967853048694303126423277278043381973295611999261348223397319719683032214019269131289408949112922288290017628701649887921430566820182024973170012872198363710428537402814510753153200838558472360151823573984833745989440365202058286130657139477813365007255174089167715437311204615481461643156085308111784596366564159188399764236981330746911970773222095641236870845637996696473724518564790235454197105274273774915437760832641714585113498541071624017316800002454932450753171752846213087043112226911174374573617422184931654589448561416354251821767240191454502528160505907184583554431688827396947969250466483174518177457257064672222920820755291549284234655329011498877815213803045788420486172761709147983049140352341984926629756185759760768269624837566785421835932907225623964123564677105433112514190384126907646886587409775853902765195178388992205905577674212975245305281817174360531958275208096166098228757240270062140033662980705890521297414494769676294321733176565857019076565310208169750133636055119607730513271409175923971393406600563352370625879393596487846324405975607001352114970522235807066602323157528591509946831277068421275036901621510653478794567501152678534871005066777024054862785160514950270350400259767360025232451836083499115957864293771325208335604985685156168600469195143694329307446237186503520398999565810443460552530285567799735885728456953273527435023945451721555511336466608090570146303187379109583962819164186309450073754699086947083473309771074305578019306240324019422153359757363005359331942423367201614735703466372177618976694670714104398792669178987448644025183305441113530493508358752785302327543711635044469659163250775671890571445881534362632002841953822922674885963275274472445573691605099921466853875227648880393081105627782567460400211330948597875477655979647346146459291918722402174590162072899342906373781941420800402791327866903403296713999066033103389091365924013737076582711332467051967450217253960866534377715368522464017330956759241324695017443956216074373756894862243017154824718535138657853463205020357226980007047275443802092085921772362519778349215447524421057929571660834584680989951168441178376466078225901935194191796634970296861773802250248480502278256137121421417148622462521534112780737899383999024455064070543337773234137297247516075189466858648225792124531510262469686821194490010023489930356517077500153383371645940711714762691418279989823170766920242208856814282803805251792019714639033909000037162884788160274473721592064204853209081043878439948937849027304694662067526444515818787229286172109785690643046103715590785878629155090736872649152765397498350158847032636015914254581868679611197573897862946710346215024334454362313444277351352675029807905239629678577656068796085661951162637962133573866925516370029648771320226194121631265452778996508697982922923669419189423070229368516373411761547245692489164944123714670991783179287661781672689278137890815481298430078167498357503538886541395708953043583228339299586261578928604269622272928741784727727453358070233634583355444071404352409319790687933439661850613399438790968468015553786127792111295030210031374658485729505471423833834841048774417055958991154317370615104368313612930433198817275772322998941779081014985602646079410775203791802181128646464297537578570309459947972976672891854132964863173192620606397889263502263075396398329929428297979814798923418390458818198762510744580256023262432327888776869128393166776289866444224979007188832708415769776298170735784612986552090279446447006564409442475260800961961479979161301504741174945567108098590665797720802007798523386131228455106218279578543757237555508114624098977170642969791512834581570165740641392741809436813949309965803057062013772292141801234319913545400805582076442085904597955057090431024906707991728253676235798952065267870300053235130313447024484236981926343777434925896200687815313296298199149709566019576736646147269016684803008781137349614531958544632733054066793945507298537259622079080039823533034396217273707035287829939463654744433613171399901941981492475086464267419593385715406271146298587161319815164465745798528733429145261663538559773022464642855643844015319920464176610811412246380279121793682763164206536486101757208125052006173975025215023325825869084488575287811932327002884664594955494918330897810560718504832128747471904108936333400267664310380549039814131268375343077765213015331164861605074789812612498418736175971547414614276655663362437220079002481824305073094104014917433165215110989944902800660120478152183028020423739219673280649244157250234747134430779753576130951260470256950240973690801629510734708706328319612427318277595896779866774748630126467488526217207168877954855793362927171256946427485591446772394648566100359131034233231652308076740530826674429938411307920714654996223078129425563037964685062927476560564706813113468477241480160976908208111810584358191997294740877482755774919747113456474984137283496770483644216902042847138228423465904328829111650893005198835403024463589956400873902918565247551339114910692009890421864200081190239921287517569650252164901852501315858413967665400486465225395580062336620136401948014436693509844693347329920241588677458026425776885815675830399776059907852338701627857554590700536657219721463281664966484515693029298926385154229013910317547790258073219493988086918939562059529859689247479934640196915123467996523726991334220057902620710590783979707399291165591682619917671928169498639098431894210524500830130733395840063373305502351481915903945735278563855969486796016579072231935104110707851735731399651939605269053492910827736256852055095341532481133929743673143129403865165213855434919333923886469082655762574296163823203207821234833452269590277930031909152717721666735994136398980700394659063700561043399086941948649710486750017319267913828146138767753587799805872956469025130960769478543747297313814899397673430026974847445117704569311998203994142719596886513750471467898891378162897498876479635967864738833127001446294649352732140675638123483223414379842285535120352913455925812010295138789379504890899931554231591452161049289773207246176829187448638462611158369027984348097656561797114298946200862277760501550268967438575219735508518949511920286815837910565991888662667178049940731789007943753081132759309319078727130056625522438493979683905674974505987000468782509442598468311688710816149618906853780180622983054823286850255432491185866875228962077645171364717488114525267219744298920233730680254235907203248855515233214186531588337845526094934993425112514717467927869507299224491296067272274660334848604927500670217923638141325681261248937264961625862457493335649415175282053163470562471479885260078370489857059479923270497758371880488354393852029939776505063092262810784069731886179605180318382439563037531844409807812176727635704969349494039146349752635086348946208380283593467772598143827478769868373799056861548067016842022673660595193356234064583273154956369399047104510477314474407240002098617477310127497936264514360893555059275663952186354531711914568622492115642455246502545633494670672972610100967552134733948787838305638096149363585128463964733815131132201422471308017653918742494335311250924756937651384141475677545677095717119665442580915105343960507154678361980479999178089493555916905538891803366251324059480384423717569053729410747569889940769288249723427531465335791844089640841698098515056249888469611733999046475813940802291111126444273071474374025023060292066391183770078722361924746609482454572867974082616863613035806212869700350776773627901192546982877767775189079184805856673048447882419821360310559069814874430537350210487752358918979251807808798969024481506833546299235452139613126144826421471428009280719708544543350085375833895357937707148641176782029263841462978772683714987762544415641039655261647966814430153158110408270553373136917044333017850000241996992988360763359981479540371100495714201378905495698970197799900549602491698573880249166923886246045036268358878451569511896353866710935129143057739783325880995483317051571406063025997447525605903327642455520495410286632142915343142923813734155625872538172900766271599547133309586133817375356012855608018192637070511633926276749318776356780950078222395373276803874688543736150039341088753825899171061524590709256107883827120291419150003543604333298774982613916010477318145695053179822377378363302490698963362529018802904062288651296425071492865847136414939656983382078632216464004096929053751112919676605738593922734338984264289675915925662724921305814809631298121157008515735000505953562712562607761127432338571632618084533391989916838020837860204317417316179678108889466111061420188792725452824512501033136784215132316574756758006007722947073449159064355922042035315093722908692731884318725824271549401515674777371364717531167145371805807432414674041039109173137406036011251135792850332573442958705603276689743142227045369243822098903177647273571791771635794073851890045273427580067366851568940729849384156611190514497008243774004230144806666595912939552579372425079742540494305577768611290319055362663095094661470976241126750738204157800720017199092880508798357267503360491518169575870366581944094143576336698893713494998928561312437286287547394443714380667709532932581993635704710369034127857935711869622467484995814561040364486739312868510588670433955816379348640496664438840166731683918417076535971760915469424891640848976556004146376942179173943628361074990395360969492275812398522658376334777120989599582529501280218586491570350998003430783403569115559296066331688406618451619757346899390848110765095231388369994032698002131639934897223599531148306677838836759555829505128452880270215340882136064577338961397983104313158328525753315047857797855027520872451642463767815251180133641344702212368091995084552294975605282098386455333263828504906123526732143021849225209088471921633650826292448713287768785855993677866903772162070909975885524794019675980893190046115936025295793719061469297291328543311563879751617611251260861104074967975337973167505527501085499309216369474382746917393310974158850472714147151858113537796583043818545790970132845519889442833136770327159536532221760840476636319495186816411683030331261198825858198758546152224204401380853128862008815397952233104468767541790487760452406637631245450705213647131585572857210040076240493001749696182686002302755838735073549288009467492779336710275628890359458841405288783360229213977413531577345799780763156745060452865895729587960317315284635487534196855328218406762125002774634470339919121833138453655716894579122747713021684413585195542446083559018380922205442679240797576642391548443112266689497404840528422711279847662573820753737608346889087215860026484829690370095635315165683497782029754156628375352850718247305721169456004439819654381469536425128644996945476546646926083041522686970540834115550444118819031626395478920726287646973372948180944412936915001124117364090712704892995756288386191860277789784858570092651766535924974277332224303461348803141996755577917466141051108938084293414118082741318796918233176049426519491173006857226392013083062106634705363746621723146349162292805147391261986658962458069080146950491689639805500400944283163407959280189927067169091722716912989922715239026232056029656230046180575257791319335430308070156470146196102545954461670987148690542735302846220899973144132428032231167894678695268564061826858102356870471494595593461380249007570205690099906951445126356563173432606415882874522321801528805096040294894689774817648631070239590201379769276331508432870861814262085312558408713836595746159433789267064444685331626781404896201279961993038521554916078930429032166764270629624582391242217617776925830229856481804138468348995827549808726672325682417505865815552820876636860248520072878526121805836927832181167705147035763777329717174409325231629075688004789904550439810205758887336735499001397131120155457529320429649498293979511836492424222108593204389888075189007985389721606185350396080756696318414857725653411595677908675706615601439392744823991582939295316863177261915818972212299682892573788345621339907102888694751790089035901409508781841399448140607931273191241747858911566342510696332424366909352849000709305433174575475267821123036468028592794502258944073720846161779387317114761177521997455057246247430891143343552245845809270187264334604707556958436164049571080995476445729218239594066644768204694669948908684566015642453280098035878540434876868706677701606505580253400387644447665375606340037436885113447991324630752905767524804885255421262659052797041375066332946187440885351877581991215335561070141716725805770798382461777198995528149767258129726615435198620112788710146175902771083581392461615032942489681822372986494826948831023395634432842099725273120978095454876774549175059657030892768571664608799770896679996803385614656278293341171465748097687735018272282614213357582842750216802579366051742108971146145529803325509478006479693951083307046921664767242128386605718726577150268938680893464201999654441546997811008272286919833600132557205470902560035298676707171973517369768251728184382421629896240111661220356642316623068150651834699178190955210470068522945285534099169128090640285916709340045111571702728709573476930873658384404460073034873108764153264681298975336400061123082230951411973780796267453335342314380959979077228610186205730691349428408543284267493576991903053266644017003889012281203632246612141481069217886535926536408520337917341225996961547456142981760322361303015164522241514464522537019144414569413670853544986723401763748375465063564548768221066288347356019840341043480121912373435204859008726258158942770673772271441387384333750317677009617061940463636869169771063744326341532290189729235230449995511889641111480648019115349375522546793111233101962090532095245940699523315132712810428973595497065570575896691976104580478481699935193441018140165480333786452301053247080579884812946826191574016409168434155859964638531513319989219113757842480690195804570266249361556305228630433165154708225287638784207261651104777648390803460947703042114081017181361598106982970825147233610086359503052090943056544627841732357997789701539738355432069591002993346155516109255736167791924565040091710328047155246377104213389138859442190732994249764518672579935330585253156891864207606747319783864322748213133843721832860097752046527295165616040943159983612170440251964461351007716795954872196781617290411144915395744306900868266012686468878772871199089148872471482518909719265685575289606941862403107240121543046874842429546841279956743232817333731483800422114859536840381259324745061507496464564003938742792176499861280843498407135115308076932120088235946369013472911489541432496701196951885579775127770967710076446049286916708811441834823613528982197757195830870196910050663647318140754590751181016809868672163145120424610258919179964342885940759491480459601004010590053036700729749273921029138039975477030732122794171287317672745360109665258930508899726211022747037475946203977563756801781423251446920955280312328512429604984258883499420341587329401001781036450476940338012666712579334633448109799367841705632071167153879170548836877730449427431235708760464897521545112438726688785586705871999519086628366869280218501395120085488804009562141280741343583304321686278470866417417822356319467671718952203078273487649207273831075298998979943720657181085127490957142687880189838700898212724363969658286223265166032227278214135796121260240180303131831216507523510944571489533984874958106967785009287498108514813096778610909009085113907084586948354133179434789286233469308220289303537302286732625889927140973587704102737563738758278918078523628904963278527854378315611589978848275111780995803364588030920019415409244713495440177237307224046430594550727182622118139492796829900998389670733129478562058931144272004011120751606218766920131324484654400494306912573072645743563824432227674915122203696643146771624226832080357973627851844489876169759999974316754970453551551185612537632015748621997042338568702563137049403360439737284621980929764144872872821903736522958155753926767397750852823340244810867174537418722858578255710313677089366714427099117460102414139687635374976759953596566005573256088597221726611040830552027905375359781988191047921977790251012717273309025434012987126359145097838705893689568229103666486503705675871579881983493863218303711328980845926630202484164478452511789774748551912351547242877735030063356841996130900511625000745122420633719350157304528602273923297373979759965565782376361097985685330564535631718538665804692784499426748587882116199298491082115834870888210075322497793300982051594476213630639933148956850879488624564171978537108355457755070851315618902777717872319322879640528432693898813763500284422510332437389773807044018547300711062094812657319561496390923372198988530871869719032409711964052661539745666009669633582547563847610901837388644211342521816969383736860386769461264113844949307490741413067658750543496119945220639019347528766066001192025179590971493862122386457563670879884957109017097338701574598311819848463360643634432989929613536113081216586409632765579254085894383918316162487872629626476059393584886473078339866559285670087276151026667867370381090611212056923742598756252535292695980111438572497608717628905314258737862025282257998440360876811867190654431266003120834579344160505118380669649639132262477274069932931105655569832163051275419511131625139346364083426788262593699303593621173146803735240958634199682507177454523386906857404949690843763675623192666196624079767534868891774741311027073272665790523487363604010754418385578624601360034768615746810766875455055458478642906456317020473906917033170921530900093843021346498232228935725034566349764171646457007420337059737478325622679504158787909241948193848606517760708389949617965511691810635464436841335165150401378174914186734601198436364546091380016661946722653157280978241658042632610118274069572664636407703317407347573848649464738205442432398601763233890161341650100860223457775753912420713617284817060790349724185016314879606300535488043727993895835351599177657669239986279731082728692943436731005354625152926514480267330067804719301572290862308941154938781655689929338084230303078319111557765663579883059544904036264590232087169502652733701292391441459466978750104263224364643707907279771350430196135093808457295692524638056127660670748264376121741647444145471052216675424745963976980601475689215759426627795251563455560690376434536331308458484552902083162034913473703163504822210168914749577479388349415807896546685058669569835455146911746614778762247158836335170872343379952850271009959250563424972660179111065747259117279908687964775867363998534376034931991493223937876907134221656033797098731923365232944918460208416095408486718614682534303412997075566064768481681541763726508155823431200305975603065013974168924546764931903000179041699998209569096491311286598010663777200447647143831924064330461730558938245733046117875402515153071516702124378091172093593794810445416958735287266175892300663089929865533872114907781868987777682170427222623074987302558337019658938145043460183415641467924990989897993008652073697397044751308314561952560700146439517207490002143485897797906474816881404692835976510279800685653087352513812922720930354260062135143571496448551055778759250836289519683521560771094626892051219950453376535516033932936596805049743766484561041121951824049551620091630198089811911711889845299509462222634162076112359081204673032561130654174469067518146243879864971031060730694468386048828804645669714054323954762496941285819254740994695946524597074731106529285907224549702372619695189749721803195831935822878941574478524213544005315066036355380716652236641891876378094512478772259682926498586449605956548542457886840080605873373770836863154538627592081693882826021387211048597353867236855624761865135532955396897026563783031733820457916168467224491325104996739937248399961368288301727453954998815038346411857225872708894271013371369980786297674997696635845198644853961487887101251567618643925109217940934815998733336624789732066816046259583932181364844689833585154510904334396010482719679348653648005334229754215154514852509633613768524176936695324481680617624012796689648002333311526606022127577492865882868286817867357893679792704822077607211994545909373121246190407180245253371777608155851040555553590391854190755392333367417576566295883861918755851894382020284039009545046769872464454665234991517763092754319569483633484541059350624413174802197063731308445023444464914276724706063927133956677465192734502599765346686167069383905539705547082935721823873394228903379232063640281775183150586860234914175548659068528710582200745245435803178239963533930568381547027341734206340210452006667061627462943127907037306941193831947804473958863747289508206409388354437852072861825730145099489256288629831993841487510794949667274805201521255969489840180399859388331624704639827516512277102767916461145182143234295296160370210336207987038534297033657982900644350214392854560151792985907404559070494963290723953311595713965152903407756467687698834199495319414127999213499811748657674221868767448436818948677251444777345421748093906611221653079916878353114432657585476218765073911368216564301976793649202456963720275657855486142791843861475688756017533270562925279805071840856639502429719769796465259361390071955364063627541700568193414821009235490851119457736425669620819380207519759565209885765985521989783480544544281549363552492643431109848851889243855842337023109035780630720195296709930939057056023840412131771154871812863907310220157880730051012401639750377064302979344819835172895230866088933754654961530169673161675095852985153222222548885923327773020538893948470392876310814535929151631766959129173351434046678826845696728877554114956379300867092407256284340994010871672220611878296036307390175149853452444741630204987917354084906538556974751677349878258348668357646368721824853684481601082824560936436164048283835278566844755114378272773409695838974976028768891015509737019987286866981074755753320332458795266772809830978038261683073529523258303115093811693066716760095615872271080169491559461605194325014872160944820817764419477761274464303744994181671487136298502277889717154181552758849842671725788609756891074326016631711382208674477446352764049084993870987550367731206352085133277717305946340462633416671414939826947664542554409298432632875024198553234742774647495998218294038193517572242523653651443415286785483096374108959209525471746249855388111780937499356700239554721534569715074198616114239169854289116180318705078477948245615996318438196115044567890765735474049766498950867864337376346692084676963473928868166471582226710731792586105871512597383820729977790459524159898718365226472501996037191405115835526608031225564522800804004056295004330239429953587191836381902731389098499854322594134622380895749737392420959588558921511717565551629279926842894219587649778359040330982510128382406545485197145600224679365333886762397751256190551083696889948416430550124830954105968086230909315220879304631426645359427645356712461835846705314571817163938642590704553431320618148854857088969581354472878109154592141403867616646860084190526246846834180180414337020534899137893036716844445753971278995423334711554853125461280968283112739152018396402043522095589156174555446072504510471862969969538736885166038891325577783970305174280112246739240687009591974759034828972410943046086595191618385349071922566769372784634021395146988961232691744418846143645173249685677690131252597752169115815358713390710175857527728751329821009430110810040625573722809427493620170099092156543301837771201638060551954336857248376799974872611433919044366723127562809354301039218531941415157465472579445587262052292004479893186755986597051016244536462012059953485494604668597727842925707891928297035637892139780422147846830166914193800788253010715511874685114629522806344008383906428247897005760199981773254485570508179658926520686826827593106439900210769651112424608765909254712694872185910010340495223453839708234929993530048504693663064480337935882513368573652997465555480795257599811506730878172752296532884364023417721275094335820392080532756791075948087385651307343085246310431788857822429543131881090807097756600092997796817750712156045448408008861433792018087723198891291362172228114247729086129376191250537324673538302883521426546767192370318524718892559843108910969786435070457948485923293750919332227898417214335451898730755597553946851177246719943508023250881309889857258623785087365781393814093062373502886220801060688939482581454470488535083969546022861536637101687092574955916751364710174387469936997080937579873378016791659169270272014416306943395750920519506202256185367503219502999922623756919390757281229357454606833341392218380059437185381402889065983800552609166799767342734927308371262226340090836905189192046507775440045953159767235708735771267515158940050568476347305250320101232307604818274960715031257511567763118830078162012031603231228329605751866138402778065927689177061670447008579994080100924364785654051652924881310350492714858546345946465296772648283183889338854204920070831161026260898859336822579750788693672430772019801799087368496348824396966281087355572220397699606679751250183658515766891351749303337822266057662120265809230040067131390973507405259273693016425827068741750209537058902583310708476869778364121682059176725101039430142220250564752831559393307745757430118851909030934843317761247084873656614679627024631179481063705989662496014363160273904669926792501341257859224802541965940304064198026118840658247237226683350179568675925644832814817303912665110400688866830673807474749135665542988938593358964093833531487691382052077961036088278024714983002190014654879865402380719772158485118822711198955621618696988065761514918429208061998638219462313559552403544825031745530306932451074887834795946188345422552875781326207074116479689003307460496532801942989810885852153811381749501410564008873102441788994533973751729468609419580889246430346912126681359606412370904296097078617030329895263158852133323947160311611061991922590115104680528065418545133347930967642776688387638485464706129536493407525977125975843856111181870685771792625616495922317217524941087365253513203932308874544676037447407849000918570623286676803742664689101313628572332318591924687955825172612006120940382326096741028864259199859793087303868523775008092602458860316500628653664642209155661923322591491349243731685297594243712925437450439185697044069014064092779409007565670098381594774806431293463945217481386545013895281325732649279893940899776990188229468048097652661267439706842592697789792730377491128607373700011713455472781982585732395618615890534914907706904551218993486215353895967626848962385997471992833705197463425046506909409439873545839695626964827891920826735762699485351462775974985764902763188956416262584371000607117338473548325315029548815464274517696368831939481097323453622231363729309552393252874222936534917559864799199320259091857198788309077020366881904934309986681394365779161492597868504738453693080406094790873225954270621073990464679372046436358645701087632267312482647332651719496699238950373879755820843752725287598163641850138219115624286849394661828934857656449380028101152196654117438545808818194051112134374952147352791931734098507967821811789387759305602963081908254335116823004246436637684101058484130213675772498026365373406925537570794539763378076408596127366988017873241392929856015088595578206327403412970974781447315996909750806659671301683995349536906574714566121356172498521817982606445438550627888608219483583811178354548390947582070127041543163641597508948980895003126159778731058794385493572409150633915801155353850350599240070662954621238325237708335869543679309444495347650497305295079801648926696597394490996024467209489847507966043056246524025449203409555619615086428213959146666491981665230085107456237329622957816056400909050588280609415523415026336522675714158074412048639365210129771915047901686820537131690820160842982571423582562990521763882170542894752027077140488721443093554878056101597697671016034692022911731932958411214901253993879827765996110379393101609968823055362745604758090213394645244478317662366151641888677332031318290771960057686520010235835754368550278950714750183184791863097001788244459006143118179421863489686163652301950262731336551914270694289211142552219626115344233088766179086566059968539655984851849096010793826582989977419101944918863908113792835926763273065614563819201240477535700627697623047405863820360483442262686858264454849211380631619477651275651179852015593888718039068481458881016220546782117718100358861325603124925644492708052704806032610236315120956407588360702802483704495844770150491123923015361994763000954490136199162740904899706866587282811403898332705887539825585738891391857760939176860341258573290924332806086544435974148359715113469175962107433554518513775009237789988668217510094804042105900610800674630261374111935245957327298509599145514274277002729351055444700554024726309725702932130953115949143838369099240461074710785386487043703161811583411783948689723931884337281117831696979212131134490238925005817939926772224236153302310412148409805835347488752042988928256410071465719234971666319263146897820101357253301441464065077550620943291269247834264016699973128448896525054812724119067252308840651304976644887560748847628034558393941929470471932802244866035357572255179799193452715385481421943878670311540551071986721608226074079521505320170100044367483448133541053796538867743396931084393247709349254885322134114857927908413776306097118360274379408580080887025976188146965756732359138481819222404921350490049674282048579683555230432353168716396595888583932870508598870688533888846605337011958834905690730818416118785493358236232772918384907295550163825506525866104646800569729905822438699270794746929583631986504434915761425645858652621425096632491669525976504330402234186973354312531573266269736730170048292167728653769022083416473799683071723604435078997571321243393163917346401956873537057672327469975804231625411532067361200558964868913023554479441912947043074285364557451575206409376870713266064316686577943543780607839654835341257192370509030258362189697227672882257153761346930525331729976754781264996115441958836687028446531137264213054290256351772247975322364411193318162319372177871530312558191431926566609341166633387905643663389351753432581486914533777454842155862666744756632680064154502554267315786551116577275630770618573618639202608944308542019827796007675142000269469065231332660015441250593818587800052160271248223378450437427281282628579844878386549111511603782814573920014069189493165511684282012767165769096305610027118421241233068811374524930481362744332153790856670053642766221150113207176000741773491016087285641947323286697972841141642834680636343083912714326235474340631719703795659683717800385286897981282987817064939607160873648681227898961541659883899935269375980337436304569191728141098044320742612047096114930253302097875865454485605125023456446982499869988474808901154909579303032858929203721872326602641561294832282248248502379224618756302183723269827619559312085490319469701057372441122126744305453484347961732840316636318089296567271957723214312901274513313157720007778274302871354411721951324838322818109856834489339529194762740349111737664916631092479024273259675219447941540274122914975919874884515857934097453195879426127242886864841296649709357573807283795849686079771119623203118802369370928024498204560029806553992370260514963195480703390475557331888404083429217442462819804876724346917776711343619320617350163627285911830747072750503053289712947170842690553653050496118648322826189434853788009943749402376521741798651119839228152528860557315458232356588987917218508498278979670697142498289041181256201329448517183063011412129944006297074628314393352304899596160873508071124657559880662263527288517662577296131327644764059161335589535715418527289024211465380015903288664732284051020612479902883919850077283240239783629626948217908355908679958851246316377841458486556992856445990378312481321801484638690093750249384903660232346012389077581755059657580172534912227487649471634719185818796433285845784516480333633623023227547502790974239274885297193928339726489155769430123382569968096723206433992189566225714128692839505374499581476935329959144347975932550383451680525346643558847001539971215578822372577168696852950092524109575421346480219643692197483035607406327632650741889269176484580520873270245766161850222317070086279019685063841316037832330853486103305083809984073378237215614225985468139294388322614054635380581343637828638915014360698813337583975057429601811373801180549795348798153227923973285170376994406095977797122917131757325212691012207589983432381563111924046012889314783282740965927645137929761168681587015459842701968832806154535157777053123391028862834973796052375697868147278549791277412040355511963356119342137261390539031503724499496500396410613653821214207562831582239308018949461730785162803217390812523650101477102760117421577603641829141973032382358848084361650933199021506162821956408834882327510439848711280571353620327134676925149659297956898052484870059677748916209780173189186583232356203692926676304779279874124710224776938578040116477298615318316275973028827678976315908532740969456867002649734894566599562939593726549410955566378109494444084974450912593612863977464312529222447800233991400315921626562842999785319205071508047554072285048817030713546451016820686267792548597331192794753437254070545824801817874997458364138261602808467506730940912313852945938362354280283933798354707129407346417867123102877265755752480447077591123582106650476765916845995697197613531638627492462578888867138260784748836047204477194373315546718909122845544513723110114583254087957680572220689510270043462144541128981821588205381425439401230282686430904462139658239489834571072294701014267927715113087911080807751054702766092336101697934926353326722611279276400132329426222018658942031437977037734857678416993613489249632709637047994498510242509881737128286105176122237986017982709173319664931076702721996718213055490441991339389209686559760507385291919816648994451760019795318045112268852243695828329883952593908189435460613997077630701051763929863485637419816739413730762577960257977369446648170509553741057196086453235102902328532840282454475221411931629906474527682033238378958083446891449587663998799823585275539264167575392695430957901330163960713071694376779130693329521534324551052989141391391456509843352742673364167922362465888238971653604593499624854360119800644711716152252828353171101417584358082916258201174494946556665967834185557073680929964438838135980586590457312293793927442295974944071909172111678899884711457934434551291024384450430730072979803206190265955192460531605305856684101885956841434491051334325195535598037167221285458274389833737777959775774406878398140777043839604192689906948045399033730026333351088946593311873917370332077597320197774161267211885249905067216336038504182456749570709511516187925154353556903041434689740778737372520734336916452064571388457764657125494543424564782679010250646309672847014799227822105981350972499922374538069473613819581561872139314865226577200193231946718029694786043378076549838011432334693675092846166653851163819388542828829710812810883066407670241805885748219670412619981753452592917962139769919034959403689090891300384008755973514150207077942542950615542331535809864031644396854944683168221044222331234666259506978973383394029213351761701912971022664272214425373792245253357077520158857139363316891409710485250848360493517195833595783231775860595539996990763752175394219946009371095790554119660146473579229451919899771380135167227147068936031227531084007694124720795337188662081785148700401964318317992209315080149163642328981137000050639700352405797547086354095759018951642194429806583979159089087388896056773142621830929850957997863567306623326817303574091643053182687970580622395581864125860714718787950214885000211187283560453197738916516796129397051135886502875000769920815124973204727865237202393268970183235880219502162727591389249923429717549161651952939399237202547673609502715773331244711341880037934793942594165746221674023762531462217979383351316500070264316059214030591740017577016085990145933844203620184014322814705144013362012891175313750672845322635791153067944998222058274149578810092514000410366765182998297082349270498732441624055491463162640182091126766337509479467401655246132271417499883982456752301841236398763754867019795611412579162306765588632496246778827034708141919175347297267166612060474749541049038714040124071805442868718432074049439692199507687400468265539390807508884628663636635577113082351086556543450357641076322842674220832458922409118427019298085912744151024267685801986735016167930914008933781174360533129137301764351147033818449715327527366679846524977758919136177768737669130725840020535457019519120968370750380547767966357377694316998196989275810970970111315779540342137449296830182816703569103589040912890109628550592485365867980646508834521170750073315450529040999471095964073918986195355533618217716312856068494977807845984354006298317623300375397520436523351056509947874253804514595933194961430357413977764000295452382244715788422377904395942657782096586502450114740994062632681026603920487932203193439592553054990800064637108243496887622275888707475700991687986224032942113944187435525596959617145424252024383384807046597298373123515209256240231012657323593770318083711027424191944300441210782571257483270962753731649717179711950041574464270769500706788468474321850824122776615307535699343043810387799545204456547441565431124391772369070528919050298397713278361768791378170812265593555914871332884464941289961937498104703429613554042387455613817474281542473557594540960727563133774200096145816146347716045710481827979575415947866002002713437644508080682851162758889637921415627586730993410250741381558499586580289272351151635226003713246415034593479178677757939571246952603542003803684617613807310896926447805870414177085443355573709287820282839135118913852089761084071235094270048056503828622213439766148060545008084432094671121165358891974141512829673027483784403058892486010400365513808432830750195547006541009952278749103322457650806031196693567262753251482144732549865750350770888012495294237984802883907640649908077051987972392398635304625529428965768521413907318305032533100163046536782769546042985882224741175141987964007610255639682737418755580621664890443254210739380938008387392579535096294671038902695259927660588719533661841331388077262484970002017136430560817951306678606094963904322362896616416506025984174209617134583469338673382345487209435794619644086342404915050712330219172705498123172901911019369777134822239262397634204277890319562447045837883387608290803063957439331516413697903424393767318340559825653828577239593804953784422004126551228613617315124315468454670668014797105268053437023177542461888336175870903739801040406027586154664612738772704528782837447485942935812127193741524411198720628951792688727499552542776689452741510467460147275121816206499593836950960264740659906697334646340906541183579243283503096758626977919571166308936820999441635500635704250658847539496773735019038469804605338019688707932504545891960152212503717611103978335871908875690657685855655006527240738636643174461243188651614027251525311419826589036873940185185402160506435295669293042190998746908434447774529255607650526650675466360144710069888591519752779878837085329613126892745413562701974442321443483762208660729805948630158772913968539751523641239864548320358645771070867143089996060776435956039888642330809519175842210916374789762111059563449105972843551559749793619692223636549568299542200493451571969388713531285890387559891655534249255463956812966028384862682430367500789848096276924832740756473942473230535788836510258642289194930759475692336392337448472216895453829815248402478226474827401123651328421432963203352970403474360623904476272018192135150053302449297093878179604889993896524408301896510273943406502478734977589693666984659684877134959711429794385548925512361855335895834865412950961655980079226313922968920079425930619657639910139934209846153466011138559665016824329614675578586706307273356826871598262029038930423113510476782053835874538143043173922297594094155870031929145003353619232667621893779301513402211970459547544840685959312753773554259307608525318398034229117909676271464137089729270319079479461802434574805694437971498336180965508712015798832336921345255253056216924039546668059255375127663382742427513460568555833849916982658113162635085223757807765147331710447289140251385332888408481015921634207071377294296228040869190485856091413128428010281066581208923041632777144814256294227872394528491856106305279205676869142788243443784756701091173562945812654814168425666283969097962707293129711895112239671097821049739583598007415275300161813649824387168586201612332469463199329508981760190477528093529030788014461749738532614335120550357783809345916352163999963245331313469657701824526208234440627896074293741915050360503358027406950812649718927924630701939819065590897005124227377670250435163205744054793189924455851468526792299892739200016595604034887622167795205812095339744722313856674714649914204717616456422753202217022633805366770050614680722914186939561054348730875829281455472552764859114597655319154208489639822251666292279750872316581160746250516581722146117068418499591672965237899233198068992139099791903073849995221151102371391358029808078638965166456168458714978633079990853807684506714578242318311519815682664291428033061101332206432188449231148101418822162855678108347952695614076974920953697736469127733007876255312873112449999652179196619053706490608305100836768310536700315561982228291375796073170146220257426841117401804923551882151714055061192051757521861605639068693510146541087260770407218886799574532308430348595291871695887221414349792723159830896736916199113104331898786161029131368206431542725334123182654513963032108695637578890274774730153063584122246785340008391685346425590492560110622206447738875550139438083548605749867401016283972724625400167240333378837386391306712764469074021201510964621125077659735796700928121307360197533077061365081703695510996253440960981483625727106512258198520675116061527372942592669954092465189855041939310716882505320669664582304397698897377187443325291763928404767398394918552472374740159101187295581837981781930877534150632969862852445821609308538468591459643896436603833898491282474751266904689257077513284732512620577251216705162988982689223781258263887532272525300301270450142263029516026123827790049180835415407547391381600924249855809019972739474133015011803462955111191432585792406333673580103531226650332579865331212803386428994314463732574945949988951684493735108445495658180687978812080872032697240337395989834861684371277424240989269743493172930709965015899970328559748051355264918967303618658624874197222423320572162433999348811663079835964854742106719705330245828653824927330989386267447297443519500024808439072976994473491446192550436432941745095793546422767531367998030034178385878867025070170110373603933178777875642268150817306454117736444107652613882035946240945553403212341335133265725177890740262750494491165340856347674169212239530723114795313262509951414408763227318826818380442431083407540662246915344109733070352107456630061485474104143083129854986365207508604490255196343372504037502854705155407165311625238537185473259253218392171516687926731528168222009299622530332256544496210942654658737348975518951948641354331280990174804152003491391875160128496252575957593063023600092149414956286521554962273359155333471672068313601373188492684845157230845475815282311369935949978827695804284134642881785537311446028934077975520250708777257139694454996709616974957588132051219522848238269294650808931185694100987832669130749151193935025311815831073856288721233283207604561046213141104501183175455641525396033778090520970461459377709952214258118253140773478736454302958433166475622886200953900291715826827373749418086521113562628232297477559399408446913912083641871323672551225890173783108122174670844928535421195711608498407154928019096986529419667770607653208646839908053093406854310799248367574377089460900334012680009926468154477996729848004934133282317698856898067943244687090257493101770624587312638521976313377238106399450009510568872462994489899929506823114095170061037499892128230880054586582637580819845733221646379097979625928635282586683164519746212701585815560631834844875559699543999586255572166346065249862409907153028063786564120696171979411745182755773313704146638326806888945287368302254871543554918297804195023985627008241613028991210511684059062556644612033964675788844573422136692044100676887162994263450314402687678206475748651996989077149451544570652473881072701980055761474661416362339778859447897646866544652573139193449830064473809944779523589424696642265865651549632035847265757587584141176479533203350436710440354423619361296800369979289579658070792382713106042681850007252109069388200362093549073198140192250601072769153728181187955164763361100831395972220087112478458596092301769459262751013956459976698073530677274150356604884196849526835160358372065707236488741422547193321059322348905154546281741006050257587583808487313010904906502675407247137474487684184409577419103372585493424418445721606856433778160859353617598238935799150860857162749784021093509307868788269390006000455977047417932449831851610842914499459117624094834848056224661732597257211959170615822588569853055806539052899419601090794588348610418796268485242625292608176208701812279034532578581874143130891910519714721798122392085567613205294400201797393674218389221158510700812730337780043124694873226412786863694873995825668626192226559754874436269931662340099415134878459411773390371266954286911916755984378711612630061870459048570410076841123162810072456136495116938635673102184582685514036530361974889208919330674587649629890549991059584949261090626325596334304084365492557994599211494372344222248282815255708606137853903911399472299055708882372552281382514548314928087744872826495773763233344037944197723505369223372377743928870168453017682912461340517009721314333496189377529349094390444357416547912988881300062963850530480343296746788385581948859651766880444001121959112076593168932145603833928729261755669500209020972420975678495684321990572806138647197972058069534707677993799998707215409024516434245521277172760794898856021760338643969126820833557912627961634154112563249537598267051459756028857139041909145914429180358251668088745413010137108316322507986600340159884323217104044744235349789333618887485185056922714427058309506240846821137821956746239750050724601576031939842692523817578387344540676099682869074581497470883017655995223639432596584172541662775012036490041518764119283521285417130523201327510557060171501657037904706504168769520194784036723011334256177353538613552995791493445676238823891240418428507228518475298313780012237537707926932685379098648094315830401827884299676111351614704690797679216482905830508858679192410527860864193974923912318674986172756317385587660112063634477909916970563259555761475362989560324758242081724991581052694007477917254632347185642104398926094473234563497474036826801661582547011829755391098452809724610774616780361915429214707258474273034569412096408727620442294142619599353205752951761801749495942935207423934126999582351028635061883800372258806371434355676723624022083388682089225248352110609974503111139138438265461395288079498207733482626826984057326807017110764916303116078698549900683537909559858690338971822589967657426675705597610027263897529042247592930510430015622490253873454716644718702528897378678878200844241851799893645923023250380036350726917479079558191095122818842256504114338575070235650867022669343675217795491986292608129473194529101869326532900814067133970497808809395599177286098743284337073148071183460986586703885017423664672070126179200573465402357578847961238821903286078063770327661322363819448227948469209435439192132895543039074361464656420545767006666187416588172809314005651958149796192042907786448803596683920678511961533592266122735363876128466736304473030061926383584025276104789241310323253495124829829914770400080133782050494098532555021496932582245732520248944449707473463670366232580865166414620460124467553179255533750321591039711733924027612333400202996917138437902561794935264165379813555719649022083117108077851244924578967750268850383986810937514252644866913474478768963824851681270260544392869303810807724315027708939402198617148748800296005462614654469895689197995774681026261580538666416138063906466814503118908993233669254175172925562473411897288949730774039644349500090071195903777773631577843379120102160609501619343888325135970448595068332668045498187820949713764541564775136219054295990045568300759225452777081366841854741496738667104680072959328725477748021033707209410275559474736347467854225162151834301076112051826582070296946341992218293551332729999122212418172768783473763226046358795230347377242885142178435192497205977419373284956939631204228044395740470861678525795906911578150302791265081162085643040381071594955565390599777769314932442196138051449766284378809637027385717216145997563575722599101966018363058352440111670313806166720202218487932007786793129645731624983420310343213452738284060700433181027408659944948222346074299074027869159315902263665207941349457557251672772093155142940881973793683545753241087792701622780576949984098398802799690214819859046731120758250649497132179546849890904715161704227336039501378433762808775949022142866397614644592420763910469821917415413500545862544627872885565058754230985059056569495175683106165189505198035837809817248545881927793230267459519049385350969404186968198756913639735369866853194121726839109244133314654458859087772031996432915710757547017076417104254837235655985869505449205255308398235127093898955072257582942047640299460400175953088605196849337295940217193020014987145039038596961446573868715249978436822388817499455071883380552750425632504318648670844526973880656909349160322571051925689083234386437086103407022538557960228511925009481712971749951181118993721918678389154359118397241348286047273331418888016258664163701539290433937109478195477681041008981613566511810920745867427069439684593489238860900528076575862912118586354277883686905036686546834659140003433524186415951138070427109687169083528401361638365509036754380402910640173365531877094584130697161445920136540610060339818474274480784885267534368518042208486815334310207453666107325032371879447877190574907100181831161861696024168065472882885668092708103380353968334261773609358975597697077790647364135475780824411492117535950748628870759501949715931438648117566215530565602439131040683799809880751384639389491908100432947398787983230609906449794950327369550999529675397510254991395404677736966352628764835786246043197764227148387391036867225359444569708944734362204448924161067113544090185545803097380391076762065310383176846832892415159160095045945096057586356538709764124548922591607571046544680286557598100742627347474131317262338827485501482658338579616380208196609670583514851341877263403607928703818088793657951055843535238534053183659707228907969298276290755122349901185428227307992744423269827472414085542596090064178720924397874028683884914957282335245682795250269133894011981581192808525191227755853181986434658609618814339530249178978962832263093610482606599954672869451617106862185594160604615379936098294738264233736977728062715546778894193374327669360674230874094266617387318369092457004157103127244293290080623212336428183470390360530369474835912674844489701825523022446349425163017388999405579688580241024435200553880051800715663762320394637765030583292890813798155685689748625929087429787517155558232989516306874057539249859049444209956996483916859101195293188121387002693791236878621101669304217877135589962559701814849962598314907200021142824512592560721363473004279535022435989058454281431562620167533424628481053027211995757271991883344811302338462971573178990494860843725476910854201828171754286491715714263420483369627314997198122290880919281462349985903204403053064922012748131543747978406842431704542836188854454034593916294202926501902627570964914957290256881732133008396737478029843445059283152684776576318775306505088090851275071979628894271196400011434061558092900107306821764177239737407065809209570353877832254061633856374342973137769345982792060553765142991615814496277143682063521593688838838298050757847258550311466436575510203027230545497517123177821045518459779524494079252629032533935579500349029302905787273991063704368107484956435572013049234808761688880028758914726535614640456850227173727066975745890448589643598869138415272636103922913930984692404649475633899625381338842277115594537786070239724811101907940751564730919614882894629752064227156880110334845303865311951885188014363157909026251429815721394950475692509243899146739377139025858240931669033812699554484509348533516928469938024950495669565095215317321589761224620878303087737505733030042497522557593108440033387845475445137136069370056192400036633270364366808712668700165147075442774291067341831559169796745285943505208213820345290605673598932372745290243527226512202813964866737459266948214106496105162694545155303695733936729747914597352710262680072705863858998746800881827079053672132562802847519898622470002578614516862741480077981995238832418876567366146807878838980806042947112362402798585437304929994255638146193256609960588887616262812152884006883718503490144942852535484660259864412468480437885397387469788397168606986051876528697612475905996229551132216291982095610203025235308929464324074532971588103744211702746629255805623012775169276908492666982763955522695636341459443450821167580502205283805566813979099969017386746658049525219495138126630339541861268816881351274854141359990014735866066842241714141588089447378932409183412702555685977552523648408346549768704358208305542540324493127517663519321225697358966175129270026932618150126081817264134030849064208061971481399241585488485873392964460675189054727603164899280816171808018020590844114896958428175140579548355978036227101718951959086098759443923610792752937062768673960749114561102932065482828925007579928919993723583082839561664043420321156808145239113866666781347714393087533980567497738404151856282584239728049328880148047821229547726782856839044165179695408939256321212399142363115333811283018560749772127764060417209233017270797398977897994939104800623769607182638695979333675648213713623035598335764784850581102762562576665273823801197230388778964286713887709828967300161000969614155401817020995691451827009173661255349173784139127259484753026264198035339584345502551927281590912267493355961234035884834723016595873573555280552480497186497341815321664007615304882608058505766536433835230078842066103029216980388291830087452824889797198305043305668723897258917631199596061927256739996418003100534453042614517577810793067536181721321396838552542169582495836677182850827417267650005309469514770667170554050814429117908282110799291650708958910563925463278336908492333520096994427821470487283506478565562780032199532722199138167006065198303690586325176435250375896205368749854673361141155567475907191869049300440411131731967889254305106474856337873883516157638036450941541155465018478191992980775111615171315495063549085137599758143328570751601443097222163434538472483860525251738770400843074750003452186098760897172094217799904179294354028326436691343809975223998994591763248718695467679068779326586131223650369785108569332912455917172445878957452411462951604628450100990110025151022870679139553036349388738708106608330845999741192719089014873733425786880139971973948537763348958217410233613518926156886682167853942203672302750071658981863793434072049960717280572128677121878553832128288702987991942745392730284437996045481745247549728315471360595581735695111079672979110415461404950637812032027795062089162720238684392868265024238123820458217684025212313551282594461259644238744220874757485160935140600741282816484095047494347498174286046549130321355635529364026749580210567176103395556342397154499391864663906436527581655430149120101731582956697553771628927915401169694688842545946797097128729750290173397732066994648791333391663847709723495484049215096644960454253851067407552713021826302653622295851301350475605858437381851394100588006714746525210490411075505334827281502386514995562456297505590207450798152115446829182991281380126415901122178200227954809611278567859394644667558557999753369256668445644951031974639446905922284777235437905281653801151177410603445178848037172256574521053672437484727091198106920719213518135127791983113001117008903018901079229724526317318449562113377151753418795940710099672868221101311077114439502625100233521897462304635267130523707148876627331107396703510050167803297539564164878335159280589605936559336538091926561139263553832686134759473127366029865645456302158222863692948544065395124231632817815581766794302920751028077271555789954574352571353328678098903718804209696090333716991547694719563761860284729172132742197809030987536153381656953755021505517096303372504033388321790946892893863937248585493993593745369114076416151521378959550944527582364778891436408699387481200090818389249526874413524488942826022679799725953239526335244496646820049749855204878942301917826183592730250205069842669798891269054700345389524604914852029915947501285953508717095000504253970415683492504533741549783004798558694630783114659439534354235173399530325693386090324424723804064102520672813102859282793076768322430676233003883736632059227189097067485415023802724370823390146387113196492964274432446169914694156922752768062528419931145234463841522031061272791036594944971537596164654101427567171461640857651133004160127811403793555403012903859920190500996820960408614326620476858385490596198341949729415966577766145301201602559628966675759383303180260145604007458079461257123148712161905347167022624764008457377812706392310043927014659615607830167411645823700950425131203168804344895472370433609673514342854581631792649962110628137256274276110863188020553097351171788319311505023169049117054158589369594175012508557504420154857424260755226730503500904847403558678063114722264312634840925187504382090242981388879620326137191431588536878199066883420896471168573533732574834604926033096434051568803413091788613210620111892911538038789505015072237555540108918316370646485189855683734970323619553482553659247525193616802972010709979271763207543071853695909495208290851448349133275354294757456982604037720509810617242768495491919609131897515108564890233653661528905442163519352961361805851998617766496940216142722900748590090012828193485258603544250115894682941618256587946753385796891619235695782327254712079501415236772831363527242785130888564983258204414370000738952478587143477506178235315485503981458021612384491901890564509951664940905285791512554717895518936088449985790354439396361096093162375798185820593468906450521782425802901372940199985606162979767522636958729600165819693336261702146778464255469265516558734039755603250269784527117107334894596277498550017120240122367890001359882121037912280597317049865346574334370826973187459730709642642278295989380167661231624068882001549475138183603661499453746274448621625175773109041637193144040987640557140409483493456897782560910209018953703646176027214980097330970282337691210842520320567455045190225785538946339243364190456466634958305249326146414330704409236349236844761068516755166205613114014517506843076751437057398023841426470148715836437822907282083771982739952120559247904103616121794297042522529191279090615334904889848706935709020733496357432181063441137633988705810005108379145146281244228141578006417990493607738896513339336133373775622765224426503618747107413544137365459279842107739693976535293021761197661677494771754192612216286726117405499986855620093296476315011775113399318207354551006538124835249127843438947148672712591684796588620429119666973256197297411010723531071253189687579306423923731411437802236462791862747957069577594566797135947610433152026654550166284649583937774215155811644601264934990332260204174605192874386864321746554496414532662208883245322735895662152524603896880995102120118133716057324321765158213624023228923918820421922726289112904945139394001936452768654584094338841899457391719793290599482174637196404684823456424888465929183481574818305478870670396039835829352521180038809270217548877900870712711497305496655762687961708435998729138049685654574479647427465350605139231684747385219297381306745919834023544399782108746374269623918565751504179450237956634039919708954766781769703142222229141458446133413129078818587057782914835501719967032912474942566523832315379348915803460886847862304043088318402061010673773581059021635927584071958514848612768589398815341896087231142916344834437538909518932223086625813380645894633046459287830380341834970633701876552326010909223359228224838687134606355445529301518064710575864189513031726763450301798919444261157768096412309590984851581440685540812524540529366230236448778908304665332658030689648989607851201456337856818422350416114360070090393438684318289701656486896061688143048198539274799042604157462903247121563899292489649804512537011605569239616930454443109209603597391767928801756651112917879543704618909760488976284330857829446350745555992542410969160263699997429334991136346599994631791192753295604359783262905924221018432603270492700625161660561713552222000565554271164966008318492949814514559909646874957392012480921016521371243671171466740299605221347640005430856916887326266147832037131577446942907517314909283640235056250764565365332796702530918642337894867315351752046932837630732553660008966878637579072450665405601166548497476697847712850293228952028935779290441031464009858664485298617217291559022214003403889688411528116385931977091124142663937850495209111531161953381408489873668155448573158638493799886687986819969539593165884611955779648720783630055782311313881312222128088516088086892034206112658922787304764019047272292969943875994427875419987331110147574482715603406070599368246962308816206718653814586504154671132863831478703314222964992976871856973471209696192459967201211253639653117047957550277331488896757890159184536369597040721673629393889754329636464432931164502196198558647628661055435167986736460635948753413397972446696684441264249421913954860526221229480311255667396660117629976427269335588014065545534156557686303223709763247369223094505699802819545361178357996933054129982289726948889961627476336213836875250562914767156183763976562630071434318507609286406263258732880818033597488863599063074205390410935686048872032442201917449843321385846118946692161407663996084571181411897018169653538045879899494818598074958221658158732088780591110351202375543260633115592694592509215820440521021496366982143470276196465502969608100165971751331529140200206415969046021833098563964973547125783343577281249508796835060042539270721944429533613396458195281101897279951061941104087122749705243090515979111684937837970207522947691657700970254495825005613316671208951637046395228830907464390875675560943669934600993789005474806814480908287716928009434413895597217528659775801518609252102465572771840774420595854015337632529793141352658851128560180517886002455252560429613194091001456964723546433952142684547002244011420834755551792008618612110483747859021094768314142658960419911671833022422591848065619409458219607258863934268272794638352465333395043726393745610315660746991076939551226934377538364564305100614066127303782713885744453199241033125624268383485504347235112428062938567105527582988591665592430080572130758499203784264467501312377814696078145259388991171938190278565368778203922656073733283815514737652101306777470483655639722596970644172536421901396355946701945325123248055980766337283285074763230819957344298701746394955289140236424902198503490977392890926695663699730831830822320389327464411132140555162274018957629513939095673946947284577232424082775123872927581585306116223784156819287624049120414583846819991134615072409122979355220542672498560322058859860370719543913612470551088830987500840444977296257940772851150834434800051906084145199068668926304921264142197749941845813604371993501575850405930134828606168404788645592025170771977038941073007849962598932924865252317945192744511177839916275575964005023334812329288291394997209135389563740463638939776801466574850366537144967786532265215505397536670606632182783545258810385557969467473493351169418111371055810670212926782188318012284105070932251823335367127625259431634934965806570464744826998707424150824281057659740375084423482120721510029897505535434244970197579342044580882307990426011305410484553550141730570874262818596808549158248350126067281991740679893698454115915086241256046523130755593407027848065159750773650116977368011998886368971954396727643493610936276895271044903686762302020749188620060887574186028367202284607667136610753721018706769037228624572036006334924038330368008105185913015691766996713555790183949092503042807448901193110692909617521515981281304045901750281685419074369104713323298228912088855809071541620198198457212833152532892547419359252596986158781227733612736748304670030339083200033023818777526386529617339854608896860431452705502179631446289627388411825648987212351336109235037005774562744898398881774765930325983837822472535168813243996603176833353394327198542933323425733092723788147569182886571015895027166028583338566238144693968336025110464501373205142522673678741341422305471836116674462904840769661597422628752174026120819972592628687373661135767082566534915746228249004972145742269674479049693863914533539554173251738252466880135060482974065281438328463633597497401747057979088304713822586924552643483711055244381059340044160238575391129479517553238168045234395858772428537515217506390844670459943532623552236628404179544178427112216452569253166466108382681854694175738593832421990257686251922647819843350716606610747434781997215821741961716333192393408851873496463094465009069328690786863284083627942531255702293776598996884382263505105832989211735123366559695573971889333308141274377344177641465865445977421182589751481167120078086502924667204427246995800108313140936938629655402471490225393744404009383627878061141537270503934330910705975370046855995740815630070572296913158631359888965347685305039436977921232403570478972345616179809229032101881370498176490303474694363123839994264564088549694079298643698527060250373687620133927882141085111973196325580282563883568238690039565161048912133728420958503147299154226818675954705999299294720907798589405197536284678357883441462775305426718814424369673158262402833261961178979888139430643827874697530589819797283697335086566528443291624165386082408053017193449521897577103601091767643082036894207832087909742385506696843892777486026637917158446789490313421454735045566844604096940843118781393917079822522725805719183653930339036331541008956410392574819422342263283719978864067976176711225008938167381536923313486451221504688095010232968437899718918369250575184724141375379241134124668725500701315022152833220955457557558097688981696650932137830897272754415490636512697518601602729723756007902967629495822515127900540433543848427080376170693327887680992471858396845079904991230651172094918841760826001114610136947374085840771171752736677057900050875193331982346911151638013049416888093794983547459595441889721567115983631903502582712860701072724805849632340508216292776171223749792094495056305253545934640844125851641558504512752967556545874541068093636643865123636474479870681369304288566532680935525055943111742039548953752662414959134940117969544842186446041413715524500954045599048115995566744613113191075020339039973051646382886161144247860548642004828101480772392599510892553104441558402474747849937874396628682201038942768071671843189915295447172022567892515865130800601489607387842010231388153781251187938127932206098140392733958948299371214703711347674437188843687057725029069249273085410599405591888539911533508714491935490331368643932754538553968769273804194548558919555098599224431456182880696439006653420946241487664121633606313452616129546518606953083275505589323089865842254303109128239083140339373244326945836530936446156045544503635359895019820961672612224950311733064511153714906633461865482315174037627180410663429792494868358521178569842696207421537191700225563393660315974077897701289625192703403934917308536007280112640869832204390909940833911845094343973893465191331063442355251867293367225002131883318342970563820732164654339272776906461636210651714090782998204820696660213055374086541190364528554742070277986332552333693162681297734904671546358387422233858826270096451481626644310634436563489129647887017046558936800602234782746224046710671445367912993275258548475764007513553933725492164459968745401376712807586235839568302380529089127762458779152919015165538706433078717230928106003317555762655734807386270477018852597488787316081371480846238012042345367684964680215409504003687515474089065253000910789872762904168433672686526371618481999068847119370989404566667353067895258287818873926300516668240812774454530102815998257922774139661349298626561377062044141710445021165863059581450979506634731450718638696331663663749482336969505143568737841301269918570282830634522053673451128374202622805335316213621602498918109661758821866267574423920802200481902999387394653175097891350827866576304992697093001925447677946485586153454346349162768764532399397731688425030405727615720418302027625549956674226620387397678695515897483943918645891157619337089377698362890035887740698928174294700673883988722591737108889461845271037510540513823769064032686549795852711160710510175221817151016638625624222657032613764578060122059687621358152875437091235932906339080171308041492259006604131400613973682464176370756195703677305438137938454141953547126856884831585936164777640347843172734536445080672603646821290522104251317118075804367327231366392643775232194802053527061493239799744593650566076290686536879676533435940968616441148524284554367127650894494207701371529131377553052497737477149294398959453057880599707089957180749309168426767368276708185942261225200452055269512575122941497054735043836697880346229687061496536927280693324161554683392248254424913855678059045340861851751142337344914819522759855539204098715785286630277661594682414762108770298612592772311388207693908764371418203055646864278542328174681897488098962174832389407867875044805485402424228862667197309555854155591780498662774902865550327415178638007929328466356580062930685381529567106671865106913759072398680829511471458522838501959946169139764645307614099663458368318538944854497709144175997483687639264890460027271221075331727594744564255398869218142783188318594205769258955642931944794706980948461421786501989417745502441049396154998557189736965690808716848551213683142983163939213404903122977349041965386433526221138492940250709106750297475141323472722056106262095045285431317673447948335638971985873078998768490068582678300781546423291745276815167224882889249725513539890929079852494901971151788224760764899957932954193502899807400216287598614163838980178475941668656778741788415633630481527380602280599980204643155801202197225299789569229391842730920246946019731673608506605788737210115449018557256099368078244173932992829964885475857502926863678863572809603427843490713373460384444685980025340241052928730115948455439609680175178654310684317473598659261653553726967303071342697439446473948205887515393081452172434151109031179444630358466433613451409766956108759484440846905360580498834375785153655687373887137149597239562647732962125380090642195719740136153970444576840772170574487522979944422617551404157978899746890630029959888752040883052167971623114571057644912892574212427103527999351969094206017305194308521258088820368312826975716726317716928034230035339773622566682125604117569888936132124665572696820577628810550021552634980118596784673261664899314986055559681033007525410998770804546401007418280353633279299181440779095898353524403626021431784454050529510559574550606121138231976602782902819034175049282063756015993100629562943837819572380083963456405833897516247214203330254615843556352792186603490378848788198005548255142848322129964096630564012219855496200203665109112411112041600409394602099733452995678440539163262571422523254946454089614546239052749572676992187246588911082362158435108994870218292136054451872304684575265304464987655618202895057644948531283625247287512281358415774289910580114632958855857885731314714364609405516159588357168339970665773723278692067176181786496970337580515499063742606690840101456548774238214913969276842735514539725302104298122133528097720868291365055518025571524894882712188615988201403771919373029068559961496791252724966966026227701452724200872318344855502584782614870201447754153319113281759110399543823887550976144375294194140172262750755629121942451287016532807555589070773347340195462271918915762409990701483668926036525021302507143765928219903801275617391409688679388267229858476020117111343338115767791624697356846853736788306500952360923526398065395421902775739423955035568063089630670061924055891815638058203873549722879802169907593487710540127979626385446908987028019486892408133226260308805084535745062239520543316168881835279118072821249312021692262630601174794709133753972203741906930900168035623199898352224861516197600217300776297704668058526308181288244761626096297486820171594116462764962783433322915969915283382341632319870297118607482128761315460742527231476036049259725000124135506660143418564268349764159042546731416659252017165637542079827036418270667662439729058711205727443614757101798760116360184080513780293795902319519308816006947770807585437806620802831879081985635595362747472307065725029432479675487056337753828665283500194877563451084337316175439909353955249786306795510957876268486733275669142049916741103095665928670972725006152479411774699759084828541620722390316176547985452347685585183668544066834512764551324685440595668957927202362223140299235862334794382275147198307278565589271962628064089699863450675736162738009914647285347158802826820854556721603601793496526981083981008729767168401846387424880203009532200123566993020782146167950238439976657861391704044263032481313844594114349714966953233219291652485354876213061107764588955015496608948650886124194559654002870885852675656036531494143601379187300353957653670696284298578002882949496152792323517985847701604762024070052268527913367671809393222315749880289654763313282501178749202878008387927825760686084781188381723369248181081651221368858182355914084771493100225249477107553263124077670183098418189331465422040352342761516782159170729530488398356879872716553100710557852753174444833053715648555177995766325639042666206939228074045857032113295782619803248476544661580669363513548644484362136946090944011483257393923737619157376873057941542032417305184208701517654440129785718659069038792484136069739386364261755762235794404789616383812723221995425267018044245225790222304590928828866749392323309633046108089627977539053267331575943851171916202296088854423367423808185509469754399100614382408382227080946480355550449921042009255991504551877916307355899547861280848728321518362846084050949017684789107263459590381969253700583735237404664612210678047023614860310924719479607766830697699521789650085998267437079564244338667296638589596710633601708013227428750080015640725441209478325579742171634634606521601051723199690697599136628924315997950605849272030034712015764495674848578007875460106355917184289893697132307121723476569994993186994649519185467786193777748232248394930304569904180833896487079342237948070722246014874021962463879757502983750329290763421717992113924573386120028676109065492858892850769699509459766585809779120300531664370005846062885009058566554313061914438345905412453306690143527513876458908887600758518920006307222259380487574893022507510447765846814957375525869205302914904629289066691191906479501142599945389127859922922730951417658483039726846863920704874425775708402303337369554692693320288562570353030198409457568308665512168597192700131712003520307947753502209832345533131655571808781945874880004001274077559217653654771843712579716669026537576392395250693726516698997685648403255039671024118546439762591986708169474375177093029867982554906785140766062197743471832260156073291178858432342119735038208211053045181181844194055390603858491551665963038501664362999181116362464620433811430978885197879046838772705834204061665049966532059701494237692720591138756014127925130877282299703421694308074565557961729507364827256717208547498395077310950882572848672311994483444287238640995765962207573473557653462400322312754762026906661941684730929797893270879674311495216863057435385432144439053076772440954014967851904048778942427702311790771196502112778479872108428595943707626754812431076342508585947525144849455254218464590499921863629163990174868594893208597298369510107806450134357848945091908391156005516540911822858202959805775253751175764821950329402704958338368142211566057627148602793268605998901096016703842548157364541243303209359860003539366057195090170574647894320394960685563262297566102073172797373067635727353483684931161003541711902766728760755909624701213303637948862158082401083995981062196414287457954617166383431070994049392873346203864248628232222714369371053381526466603033337574445500477944447434172277610790571528796035691915503322737743417591653530868092292267647394365294596025484932242204557759101226047338409999345067326265799853507627788101642389929205371886403306243150169880810805791657835130567757270491170973184278749084118423957266634318182175542922954857220238224727789119684251835759644912404025927763250443992793071567597726532163641094895110019981454937531814033351408041706469088236609809388254631385279002709068188750166657163191090998473466641151043855409069840286472124416189836881663213791584966578666200822267589822240870520823155663877739913736690016338103024774213203706127842422950163051625889273979621433993990657464147113586026318229221110369675662015087872897690093611248118442508799911694203259311682106632821101965406324275278500938848681925917432793764272212916193625510167876480889621854453972352221580577738027857362081883672980956121304536255342933927380515770948678056888820520627131549554458162654997023590495762035994703977573592762784188535327598009555312318043386407313969075014689803129702103499996778232358875010441750857762314052653596930273264867405412620394599443839117074306723650787701174166931246895021658530052119607118061026964122731195959584216204442872716384512283909509202233763033583846565761221063446716355076129697962280028088676317361825049449239921290816050879570408975988959803634297169561410621470640473244845962222711226762021064382175203460363514317100059621738370175083789941311796469784475476304142325106117942774685013618079694691356363578073097610051461227130111721665486386908274913606118831287788084708029911099950446239982528138800461177147032228018461897038189381648795699972819275003355769271239355813374348755898320389178168929677063347677269826381779991876680000798278397980154617212161529385625834732700252987096758056190979683979772090959531220930158828669630802434207146520305967612711131533112667289414031502833787894399393436794250237381535929944203739990016313452435370771216951877805388700617535964587020521280205622332187194066272770564531529406904712690011806415162211195364398984735374662569816924590518458371735101637852979279660232721250659299523061502502560473616268977484175009580648137400540374900640446326785366755974981442482579385732760316011446573893816804228532325923147724013793426572116177970941378160767940200149306968869988546395905031070920727646261349681991331333826268554525000421214183028162073034797821155598303081130004160254723042223231797046756690904401956589872737319094992889632306695925372673171256626832730879093210347636597227046820420060928007159035016431293767655888040882654211707471472065195967383141725268466747152217236609018604493961905365973765879956255754435425643201196583407412489403235530276379329872994698593194027246039049219471529555253177701270688514023124915358314912615340970691213735218876208047210125919011968327783608571254718534513835909289797311964152462350029087306113230751631477961425466668855830975900603561613659634978738051481887964573681572168705912641794412329785984305000463572983230357000542131841213384171613977771667470684448843434136335651821208052560321155471443195638975463724451036410421236173447406708565492900791786972657535304271682837008448843308464267779971269834504291950519619310737678987752362060758524427685902770665252993414396011483064531015247598752221660123664621262355556454072467134954125724298617906692380839995173362573032452937435156890852756438597616829749960286121565379636586762372405173103172949473511607279639853411731270584951874914774454321490847875187964623854179134577537198663673035971252624420419212743807184064286824864457718068702985310324809899816275056589855758069455938089699268228227351640185529986626170600658904440511226920589784996736769922074572449971093116669086055128316979616180249236389063699184775871035693726546132770703943271300538368131548044601004888249055401775917189944243426392757159476254252192105047927018231073302092111911194741483570341715766007470093590350682382538001167716990382599020051236032539928329420081836403123165036262858974682391678118673905380958353505829742773070706807398987707939098225813634132425300014361262599347982978278103143479709665799883382949514283538209676238855310142987498993783169444957748852554246368177077082659519646105686182729644496999139171595882263832661249085896659557852854424651515723067125241518291803186421309832662834167804007979963320703164091212100587456790211195131738513603312793457089360316581893263861263021976653998680801908990185981152451239803729341967958249832278703732973815736310990301569218088259390193618226600215985902857092721208650968716459535164827597003719949204989308754832861129682823971840236653792308747397396405699379704003834466762313103431172944116054953452584952558463504053839418191026557664334381992980626616423535318019546602995675511872306925895423397936767663505274350522516591110462208888441918736115646244655193491376341630376715117645811626187545630674343645545013428884444427083844940826310385369138028390075360135708011464758594594138259972460145177523488746905731492066511912714559673891708840749606286744024461290830765922881574668234127924519763456882270759483577451483017957641781903126045683681123655966456618565130502771068334609580413387915719301384235193215404293365850636025316207762715025136450846840599614828193126431129095878415362637505105112440298376407457553622998794948616750739965342706610625509762080048268380769448447498437892132330389111865680537673163598655890669489605894907568075046292661705087657440988006067261656487000267301563864503724862438060607320631671523600332565588731585581022963552994046922521748714095054765525673531753849489553266688829869371384158626594271495869351218703340204771966694082381790010442877405036492697970678539757952346668964085516062613999597198365691713579953038138422615454865459549763436326015960934399847411309209395735243867022186789717692779383128501254202947169405746937683118818532676968641458543109565450232976800130966638753878501991382327909110058453895738485731125811395544484203312163850437878484224787056486733283215843492946492160611946634146027833342708022642022467014838457071353146269830964801233323704653397314924741824411309061534699671032497072736827991679229844310647896341951555970069567538420878280137735040134536221814125181550045972252697415953227067904862987150996816905365332050615847968694666099808468178561585350157168532258649358815760122830987742358762989195281030519335431055471769469251568036473982023270416957692400062758942386883145914969389660941690127326565857822499576823859017509612496577646063809103176210063540435929301240844298010656597594254812864887568602778641192858088849367361651423817026272488476964243609410134438211496604590474259093973172279442187810947901982178417571563960834624384842595445859013896747201486866243400781087211172302106149045399269239720986914072349074064082526307349379928034857014143271275510814589098379158092624730858209547393928785575547985910835912068163408402505556684215297489706869983991319734011085819816303347112385943803839621846709796752151127742295466505702995056075549948914691198183036135682134441224949250798449750307108179688792652451032904551666707145696621522433760842610192448304223265821862686415672752027212077147182746267815390164541520900930427033118830619281789883075488330612862434012943247693221938473591859770988070594703882607819783937064974193132377743138938394469986869610391804463312330145368250844728418090558876640122031637872168764439464066577585817557523884752000244647153240470698018936457990664662684416106932806892040189242367166832065394724283735519951641728826946534789241139467245141174968754779361843734495445182555487421634130905212354050517723345167536972306423209224168126394628770962138573622857818441639668304773826569921581257674451143381118682045949769195671514798812180963111723711744793355534413233702455589872408657540912954204265876137168338196718967637755763584602168751681516175823724199919523119815726040753475231410884450544404647301134859854057693121366006915783472579021468711315425860309869181023944578226584587470045777364935409441821375603999779118371083884074357331546185370061909732380407485157393355819125530972867124325217740106876839547840946148014983462673101693985710242226491463321577444625280536992903524604635152028038720038950200285039214007410206799021448601023318223561485823854188532296065981805671847122517534105769215569181619108460064368690380645501451413324964199200881733087770869664487874675312311495200171560340102008675201911748267577675927446448102654955231559926952826589418141837166195407278353037659473838548456138572397733094447921221822338995673053072874811072746405198805013035061511494019974993494204810614874423560590500417913739438743852817804482849007683340815557194180261493119479631440304231608682232852779405037568272479553595646821002665141092856281259908890762977569341221058349554011990642110535028553892828097339706234270828139735557521506326052101646631918353307265328517655278637887029654111932643684079877476698530486938418289421372110028589984300712225704012026271448286915827245413603858342012369462079496949201557147508704460314844797528845850831091989884127328877164918412092879673407385243216119504588120014909992661926315805960267994612574330760995722154468862734367844113515608595533542747259154594744599486806078126393701605609891347387483005147263234670221172540814167301887015660032191756606287983495723340054633482069693363940259270003896449688636417071260286363241997584037452640667859894790326465415599085367180218778137213373597006626903877427957038539757483382480098885381294962532823926937372433995944857088343513433365419385784840529271252714919605788169200976251851064758786612211165142028506914617976766547306370113245285047346480040366946398420391154307856908892856529143888485753998103761067035130947053499506399279955776657218706060169451970796652292154030732853752419376588117085274109468456560798903568988553093573910766727569826854670034009039023332502197704608586050345059653686286150759759111368640161008180385454397466503883653036450629300536639074130778817081320668055379390802905534259399760156515875184958435034351424936093797245863490192796060283317498227953262455419465574640257124257034620449654410181777569795867870248518472458391128322022458200183434015774188653233216090781404209670163937376787036672363006548152529884624200632996570987112321787386908509216777985735540086820531958848357271447511129510386914224509234940986766702033026369646656732535649841066897352063635502255378765870719370761399314486760648246658195069731402722722787043345575777818089681956791232903630882050198928945106399207998040698227942062288643173600903642295875287735544748563710410088117419784812905444265032935078237618283318620851939838935454223668307873342670939261820948199996167011572098739298680474748107642091436969903471791957226522352558916834106340168644098965830844156306920282922381966516353777788619169502036858463167809608080748680641525169309684572902364352760661832238008158698439229260569587922492471141742106701443884148397954462768332415557120023349373185050963934021622373330845362381954405332196198287922329938989348500529072976517575068881703105229191046590931463301733238996924865996846469024440694553250370783903988345529415678223546366707185968944588360150568086690126710017872012365262122391408006235933698788650949756155639734143292302557912459809167191551130790106880472624681199742195061973257371099555553837591872005026595754716386455020922340998148171285645834167676111664238788239128836671767735541384676935650292112946369906803909411426686651899788016167471954802559262317580626340740164409071344835941509989921707748940124211906396770266504224781761309984905664029980060805101588496780770641377748895945641408782939167416013140144558939824031771967485295611194320434507715706983951667901573862904804131533401984512228813095929101942315733526644624344735779509130589531708575162718772345397203172351185609954359518056450785405419751800872781619872201536560676437552189325299727715148883141524836013498612525523516760647064374346380573137662851932203518309890484913208048518065287990425707499904337042787808931617583112751480320006395410509629817417406382883187553411655432534017242231132941079599788916484729217743364108402002906342440124918994490235738453724667269168330234904594113107775553113819893305172383228091032835899905652486623235478022360913874810203443632906380921855402613922755929405245141637802267510917099774434812027740349424739977913568228619631719182191446393665001884239060175872296785529998285721508660181013299595435594087830104417410148409797903293972761641706680828056268576844953095251169611705576586160283108893470112088165176057807767020460640792623461176422695877866251638459206243825646630703503987703152105253135990563190107843085698015200663625308274795737534821911266741502024750002784474457190619174490208609157244309477591968138628338652986042865612340479719616808709811196287945040750116897625320167749898796264432073889219133576433215616397370399650276096574151880874024995345671057231123761976007992171818686447997165193205417165882785368687235068475501467011773473936801361408088411230542408566013192432817293289137858980009763851275516393215321135227610612682886275296858604317210270917093272952413730897672556657123390078364164337411946880339643475205934904911241642196486703598724469963941407029664556792090972023330172123327265190563762077107610517079130883428853753556885830413360572552833884192772821866268630607319144373464208193829986473642663941852436241251888467819731139291117931374628241093226290330469844803966201153468781136827534605750692715378259908610594852773657048189743800818940743765932684064087674789171819095572466529035171495446883848927796957068139300991500532484458867654254684284353477169784863474621243073027890593416595712616253168080441123884293637740548502159027216277864490185763660556293566492599963240071317023995133230516881799452253616205918909358868943179867948983083016793233484924587664068500924263519944404592189442026574837490368758802760175673557232923961886655587030292525974953313701450543566860551952937436120918133316270684997735890145395956943716835117509838660149728286859309192141003168605136205508140459621233580619697657449903839968305343975314711923228923628373940117016182774809923960997781362211748305055644980429074766648564163525355582367530347219078414437870733436750620179816373874136362520681622053763447466928877504360389360519983891407858538604103067166844360609991522995370085766927542259773287929665174172469216275609958267993201560502130405074403387915306503389931824371004981837469853177019208620733983677268576425598118990861897393455742777055545283346333133305680354557221918649016251498485588100044380884310491689008711352828020047418120016726630582869468427508330721180798161292283279286244411583243141781698945982292592261739318688714581899669454749233301373273209617812108986557022362599515257275434530756635382083265127236059830773258439473504594945035828404555143633058484754240385346043524356843048607909757722717370224165043743526088396995860632163905156879149785700710050582907402137016685108270438102764473838701450890503475945570325574527568981174266013402229725556113783072956193548080566108172022057918201695942367474831683686687398985780193692292531222531460587976886210144415970005596760390987116882374481983107519615011670296502108040678689685231757987743964598995436898629371195310949206880254384475830893290237256908953094775978275868059858157640043451416789378187766056661716952159887821666109203153607685593562392445516974018265726533988604125818692882118831872524551623665284611241946244639313518185931846720300127663188726607333872174326048260945089587430895493184933310479526881397972659171280013319379464002519045638339197104705202655405156149727924745885711103256733391307242896408390658593892235263745296288681813664561213930363448134741792844365968280451538358080048265431386400028344424673820742991495657570801825059418127834425859926678371911640982939254057727294079501382811230944073823446652855980916441740932450094657057109957505846386684488088002418821023597688833049735396883399652035172236270138521971544514150301541320644082273861323064711453541504871471076832866073441633578785551255508661734607599542535832027975707584323308202093988358269523857345757460393198678513373190746042622219308031500552831041761332301598589899669797633028256959843043683341989687783262337536010446333049223668322961482468746781076209189003594835031905087278553470179193808382228409771533218972364213817904429555761179883736370541725723729983151474653520196358835715377630801461687909093752827478109377420299075742090547518671152764734429427011660806895925992390295904736365661228740329162974405083751141906563575465906985833211445861199519820856073945376525260822573665595943694875929595002210895869464084029633324408269500222662686526694225620562301956333390642466903862059790127824808746501766354460053506156661162458209783444383511648450562589477023141472978283712934204320493814704613696173569322474330064022789225471518843241112229524284829478685051765118128653150320900050685254155782455357645414790700883861521414002403155103902895747384649865421744429373740190541386434153848018502913405073132966733858847273643952740254874738495364689425631221085639647680090344395791343398250229912731941359641199122129570559413855725549660693061872748286763433628002468905460727547769667382701471931097149149048605922279843031992823449359853529262412869916865898055533830650888179037377284066124525276750799800050231014455592568857458052170332387474269566787912335308341522000601344586616879660861208400526973252724141571153022115059598922032303355342273488677273301867946640996215310942994231458768076618671119535232648687685460069359583191971293194849413423244386404442949454790287993631666960389344552576969437772327262997474416744073985797792149950489214838575277415553737784956409251862294001334146565956254111748016763420214522283915116200813529819837536695562463599122366626268411418680270831019047453555781298006324521118614195723976803106077283565544515871608694320045455966135877160526565902842453843701626046273821359465819841939806785656452474668553274990089332209378832994863175692380553339859456969610231549173335526624226306257621546145554658173245971327108406949382134894223306781560661257503321936104689855581938059980109298570230297987563157498920079103751189392204890306663943108587889403660422946862685811346764908391681613396773055199127399390652359561960217999163432673071066129164168614213881973128650025814165268772371917802862237255005626236513511982109822266109407140955535626103653966382155335397357704934481153923877168096481790316137656207922758063029882759810709122151523005004732465735857816423125296474368947030506942754453948759079620376655392493042764448429917648701454982510655400798845002007804951548054724649403847153654083072855739565439367962748669680916730069564040241572061948394001997936127763972583821894598772109809061096879192632989929488128351140128147099717127939206049453187163948739784409970841431075979794886908412535664668050435698698923221381368817116529533172504453873132489293945730419279148512969181357895001286422972211119115432067452147195054705871888220391061315880455549565121799822427525175467365200954098634102143395760248267875752900722028401592014643533258843830859691001880259566325710214789506266280602459319545072770942085604459725288998796052279468546569692489041981733482922489957568432487233396361904260722909134634966190862524063359065300759780485751406245366573430736858125311568834869711414197512567169849601116504067069479787168621439334797257614287744191129320484237607959775080821802699114019525198551149254562026600128858317571338870558788228559606466907409703218941080384527390227393544833503054694371603388350712628896601899593865247081624787209777577039473869701000918365904540167276266190456404712712510672758429317977004402352291790576846098489916702449634563784434588341579252836272736119701043344942929874086050722341251220194061339770392409304693567167341629757534059331367193781791304659120704915418900732480281706233085002493132781886789984375353683166104229898800101720315677481807498800226321965684101184384284103243866742779881129094736182469057184359189977568760201227173854027773446913071619555438714904860413000331149600885295015110418748959830709148790128880135987293813535771794489879786840900170079260012725591225733827882649804225742024781724205089544523907493898714301825033300526973640271087786703713425422550439016891571614779337784627076928043191194309250199624928057119011413222597367947640758386475189073035154337059434054667525774798428948163545321324999711467660563890936751541040489122979816242471652803954439103584725154422186173362068066241934799457972925201230740719228737064620402595245281562940036251104514724863745997587822570283459954578327771404860364108345115429132894941950352679168519821691623484382278648951550052619806010944829449207145411402436062224111390135271831683474445969456687065778815018686111640938559087510324956834720611402728716488953818802819594461718523856939212843976727945611271136324608094473345833476349688015274473841278919625039809865772514164889257470810715562487782431254666174999399877709774300759354829133207610340156332175759709241271123400196480028850609239000219888255110199043691478149953768315867714555322610486520892715778383703728122666570920012323342747857647894554633057432971412745167966238509952624932952351872408596933371573937898021097623300025999962412878749670313949495097957475152901458761618253716952308185655651641710590432340809669564255034090638279831752648203541060987062005728020089147730276767708035818892944449354453417402358852944590864830947348535539340283558892234532523208111619669290754172350540617081390913073067228683936865828445807451908315989543079589376774107390907109602350682409717415430749491936366691631535855324493171121191948485277178227131940668216928403090455375634514649184304987034807327501586116327298227972785776666622568603206790754640335431792584803524345482505930452340569096832909938735747303371416597182670629702812842245511225567847194734047035366812514600380277524366002200669148578704683245395273529231711106448590308212856225454061583340783276629170873106318430479310676894973218550439150846210572594600440619872566879016744524721970282913559358264109023601261954274440145952920600205456934312834156888243015711366925106933067450910961260700437828592766355746330104679546871066459033895314352631571304153412274550098152611246215447817993545797224209063513993859272063952009924132849990882086354173107572558082301357052126536140929089390798111202284180404442031916554835374317483197826950547279958334390883901761187499958781806403056793138432681735426512051522080762455275482373484904567648008051299674288618111496765589418228588667857897950667042501367645586953354969822068628981798721905269518442817059336594241139996977286750509909778427601556460868498754407374457695970588937075249315924797359941983775469808651250463494764312885228246812610496584000103448620698947175934627713063806977177252670195630066851164829365173094658335739065490689066649968001671491438850934330502355320949960249958122158395981392878202844652758993524937273201012769528538005324918617480325243673697961660607484577524566520525785592905644761111719733310949650038934405442275157255579868495991301838366112941997218751675064771256369410052429706098195377936055076384581058752703800600679223293834224961709921705799245692470308297873524124144280500954665489841812520959909718243382249946929503683910311336265379619976176478052513778807763337877284272375856575136772550321016499050246101093202191756487088191025483666633484646393494579442126104476743548108257191826011693763350468336884924338440549540940587635649813563572548925545318614760966974432158387895259832413832358667083999736837172351031957914365772471489230924832095898403501385202245404967274303560511462789002878920789305150394610998858643682375847929468436339054339428047401419626291832491253427568339332895097226817777171826275849830927175428412399612114197523630672769498539994749130259866131506632158549624485659366727019906660701580225078672756902449947439225478046177115674221851114472126872655264046696025246867976406481987360822459358488049209542048187600689643441368689632455563165050593186056965488315747699494529902077534336514863471416103155319114506216100841095660253956877556875799136214694024217186341830984834895587503609988057442819618159982533219620790048102081019777568336637022970577282143985613558087702717801549919949393003587092327507014307103041552488547871115373410459436342669760183951927903600467372248027087548313168806573887710724731374701448524572989992466448359670734838576971139685582328336281016675065261390975221357000953080570154475904671358108850715786962722396519274625070778843698481640752397110776441588243903373379325440601372461196044897370897446985607068854790875046436341553372525038412487749642166610232758583446812094687471565140210983334902599290677719793458770295265770742926479200848172923374819651768428967098778376835608137931030961834497665497986791668721179120156873486823282183846808655658050142453602790552513087870600966224944736339290589571986403340333084670213091534348433856966455600929337304244039926748727154149331912492248897449037540203536350720827458552744734670825834322364710027697138521303478175871285451779590811471227670798556722922153547199058915876812643213406206078714264251561355780023972060217776395026418569412498538620082519217954630838626100715580032315357315484757497127061842314622913376705474143498162534682196758125376090958346285832965727288302312672984906248906554009718075610075045384520150444709108028407760817399766983247912322602935862900573611124300204576937872806019790752723732648527210706652270463494590594004636098660861649569276504912272837331952568664332760197221133876997709242947385442377509714601531231734522548312371789606892296775349340804210024469483236844497181666095373046400823771996761005153923747126856226628134621753137941220488871647859365201734501884619935887116697428322286923249861180371258094522680142010656317922743210865264125885872906748842177425628716858451132453897235602519209529794460811205002628850604276770190865394650309772607772868284551737732551509911205221121692192482601487593135148681911954547466069523031735929326503090432490557222246056717460023395218152657918423207818153199133162550106081775454981148564388612899455211828519705499097174332043972541655797499796259863860620377252355562436508593026886899665292881997065106249068989942035355882553650722754487451882668117919157574026507145005237906029226999094635794522783247933151590628293013910400579609973400111380062603706622341597560835258677775457477675598460101566225245289690218465849542205767327455401099568191507408139894083421224716956916537856862633915532536028138053769114510745595755076966598128540587826519013091106551087880498136305893130425172656207173395664642601445482264751333509982870026239114386296117285846216487477601482406015099980791338230197251384079041391445521646611264622937695785588870602883668126235375866111614244878291435087302098170761316314444597195482658841628082720668839899174101155531246926313680213172381968406048488075861313891836190945749878528479310265519318292922833156607371266758913779655719820407817687954520222464098783605845479764863397287435671408460666748232495152759003475322321516425837552155703880720802139207243269594035542308516952218160130539542400120034945198059603608314197202070044824803132641481417267214302437911586841611470979029232147364994831549314398834744699002361846460769737067309632289957314710324971830405625445677469429389680790115348872834441565988926109215048458299727442435834106057976215014485313932847769451497552378078626613826871474938664868488270264617900957296230181519888256541292723959886146143752310093657860426145903985315004417003625029791082371652472021759445311615443324334090557569844324174795570733275214568604257693237588666056391772057418920629594214589774428653632065019540886595507691969612747444015310540649257976256893479381864794903751587382930876942024430919217572521466507452745222487953379675009706166559810818854238086682659509014420531500107124456012543209544348259245213189702992934223869130676825111092387489753311749444358354565420506506905245832365874811868620410611688079946569439367010098024928390795823911841458617534608347614673055907975233925597013756856504920464627727700122493335402545716062862898990188289066876630590204290793969492507819895092523069018003666082208524092153778758933525036990670459582329080366094947358052303602604067375688817991029328139921095524232737209921774613816424284887685179771796846371998940356136092832217599059885729244543925866699088169043051811321974912402980542282973543268329764031856859977206977810532562358696790137842411084036913263231944722973893141752712876303061609994214243369214783017582684623947800553863431478954633055098753258574231665145646028546277307291851489047046168015827047838323650164246066186576659152944797025572946396890340927491666965935494015187638408256160076568104418205234699357936660552080630629623406277930336473751228042050568600046508089918720335247985863086728958445545134079336941698001212803147547864872207394464872706080301305661273978515332953164208709229619441157121997378405393899272457589115591837319690952284880247084770966215319362810305629524129112417419664642987427462579611805334170656676930887736554041130125962217536809072985267042645613177187952899973934189989752013207134960972163490262590711164402268236859188571841099610943991910825169065933652918289701937747745986794866726435619296834693154442464407980630223038679427571895976023922679826170211290490606901952277677484288776972169389937280496609352890727815720502198756352291722797270246930980111786332424512342266978960455581859401185382486942437574717980614981938835871296049156658311607525831501753060175556809237261481513996533617290340814382249858181245208929981590299710652929735268737249406331353470228598320688239136542389095680521022823771073976403835539332845277695164948247813677685206798540106791698140933997849560635494810871927912047376257415483988031889092155592516370550469297017446651631308314422935403180077273654975434673822917552578840299440932940388883967903520808142381219852553647585892832640115941621746037706793202341670142705169372617801518468657206651391144368232513725542867110701785836157631948564743877223846338573535017525790388909404081911380751207826147672540517088500315615824500319771377215695737395991834714453303521457835048427218254794802070524960463356584602040389426545380222770799838160091333838836875533419223218296480618590047014860223456822769886013882170443360047172085962466019571512478319906259527879060255365688414216383549122163749009490064516106767610054494075978004664690360330963671119382508417656422545760658023710394017753293768343460013120976911617467869104871606176100529385675165898465090497895617864162680667775703422114742344146028461242480711246152340934949113319207256884761071923464014671095946736122046860990010231790531537062416597751415989355587321509961960912913666287330293523607778372434112461226048074698922129426932241451167563244221775311675516948520387674989478641912751888203728643564534433895487984503665600171591535933406870643962132011587962783760804949455561104348699193104289050566669966124979631889332196486787253072850582633802303429410806883219332764003625619445399153996775610062023452810778627308324412730287263629493391332388489591917485675607975590106158174420731019343775510825124438827092968110823129857358729433856283358390853853236011293391938686633418682286264213932746832283607315850069242471419788287658124555997096791832233472354965787263444024337068069280535649393324763011956812941308102396188083572130446760419789975200123370557056096319062238828584180264387934428449901461544725454328386032436081954063043731943642181989668092675050119131684724179656903280267954161355912290194417460863654513013604183660448827739621042225627841343309833212315145860192698887339722589936581086539651710261622308301374611770259985841013883937272528433898195609625402116351483407097312792486145917970898813275132076322937682700881849943224381817556924520019862512485790357051328140871142286623952034224291842247868882263225387678228310264510808182659821592106890376341535091491400145026643484783217947552192739720168776725695721791638617196987618052365619049096086753048401122682634853690917098033883538332501612578136502142315302511880206504634924113915770777808954583801503886213005244039054299876140400082875230711396790244999869315064348138804057081991554815224669330357950802921303764767787452192045532204760671500827849295233117978945480810281077013363845354225278348605452285932234896830154600562140506032873949694972192804044322570732376001674826022618509465386182942487944384387156963786600457434997518548387940117616902106481478768008583224001731689182842628097633798999239581456297744318501306558922286303906641380035414400350755727073996349250128218182449632283045816031989408663946305145787775725450407808052209110183944539045882653281767773595214500137634187653719250821401009783206076035646680872180234920820758470784557301495370933229628834674821485442906469307255010528394305147522199649874607529519315763630298696785042632216147504074495668692194844193956977040621178310460354200554131014776370496478036960020718612134094402113399222035112026484858467252219611372769042898528108034560888069912190639041544110986616529589885332558575626613545922562833477307375333635168524779454818290138887226569315751521683949083251030778973733683934057521885641756399913910110639846360354127192698213280821921865358079038998833119064042477740327251874006355282231575719169540438077675680956372255137605474661175163908267789727012245924785119787168868915662474630241475434236022307031117788504573379255566165210570884979960709883707703239350272613668597804684458004472842653030434534872178253075863912463173517858273715988492277748296734609242501616193172539726215706100942131227132760016840944542165823838001964512596622203448898638130744982256866638502619434081961974869998085091396090022581717906390197922527976574071656078428719910271189054181334908914079314768064883809976468912785367583946711678102609312078389594366950977684949534346616297168674223936626763616808148787198718271920043435892753394803168827794388130126163707955142399800983109416897337537834029351626018846888042207877636104188386317594649662234942736932325023373521879083736793677244825202573636040947359380583868075838468969746883482533055719806946099019523242509713903584162044618396303374915039855489436643328126168714255376115606785131091208877996885309901442727512222987440549959590209776592094304357724800321248363737819439567696043969957122158317647583866415809857322165956082604197603913282614462558579147769499125891838839532300819437945681671117469329026991100639679785573495373413324967566585058758002705430734102655614287548522579304577359571261191610858651718672445544055094257716820822309285126772617485796172307466800814315257853811540209259020135621336892476644436472892017352692874469046400539830351284297503992171709141248797156230034895146373169066755108096331555848436382851536500266569859776441437053662758449654878921663462621474710530213376506448723949252994291832751821481233910901641607077578122378037712721120292309495210128552190001652121120347804826366923336239547834556315614789788597379834805263565263812350819167907677026029218898103605869448203075159424361962395681963643598885503487691403912674977200716952177233977411061916624534702568934314274792812617939872888563439194090940667832791804322801267628108670299076129468835754237989828186819613916019752169519141277700723609789191084607783123880205867723471188723610012316353319417506656265143782401704127990479594090779081447930653844804158372480121780065075685124763967121452396998552625201534368247349598977337726109861758646548639314543577081529396652689862513254484028610490771543003024411482285114043870248251107169349250635086960913831360895837847141490228279958569108985645904776451968606235228586714390848434809629950453737451301192830986014967669853682527171869751642716452989320578586623213153139817629836714490529465353170605898855440138592518521791281517995001533659015087744152358283401090545576501849203151704349473816114145070753869373794385169907352423690688366673363279494850758272077582999571718585302421165292207514347427507812466653498288925186811111308592953027558733231111558087561765513604321680026015514534298821014736457445822925701347812675209910537821510122242941132116522097876027264783059510622903789220211135679970902322412498275048695173626201155020858515372541338223246439053847016141047852513858388041413089064643645539490600193216573179122411381162233368400262303178007623391150425585861933998113252456850373463242736757997254584421480507248558983560430212997806863031482973481652643412301053134719448953285248280132177843820147539270595224312808245052672624046745542798832588417126996549543999024142014976066905291271244235292590403522198484704473531140080403307927296482391093236371328749114483418590091023263492034076168659521789188970583639439263147943475956083372868032410307840700000030291113055337337940530886272955896751808045446038818157184607476030478242844850086040433879935501959858542459172708291782529637129549884654834793470316356697063431537135560187348351335436599953071026998876115572665076833684151472763858581717998444349621336975823056884138962264077982504187478371005233333955152581692685424199575141801694775302333803976154238032375253349048423648661467317238641064430628725517212978696543896009822624192528730617454856228933176448791213829457635840832510108122559145841328245389331684837279416844837178138055248192456585103947982290700788785849116737927435610717979740909956799428531733884130814308758573744271499450294471884725217441796559604181515943068266881321123553272290893929980778345039029211775513031948067649729505141679413728986594990792685119298666052751172047640881249835961318279173033654818390469722061766428515648411547401997975588338136375963399733377769870471902913592399968512765573882456146186417680389276249828455125117973293234497088829339112380179177319483974225874218714901495493399887072692697434149219226412484312827593186781454923818311386827285203376062058208111515741184859681424751894844315041546667812862630632031942335679317471780673846168047598475933982181771479503419032743998797460880675970724616947467025629377837722119747767032860555189148393079564563160185436420257824036234053467259398008064498477555623863681825977779030752166153937529921221696292913517563939131626216157837772509921977967364515526965011148351589880175479836892725897685840408557934970521466134847582366128535804447966014359731686512962024043890281314740578801971916436947693726785790704503582805166274975396628520699173964441258254669109904101609804442694378822180499839551855914502962970373280010387183675510301013989341984597513872910554265901993729981971113618029116920702451006849443529198743061029482832610392961074145051057201958263174809849863973706501566815572990345007204779996731188134894233581978302360136637215217528877366026923354922144381096918811104263872046477360140245045609660139686477545395081323720147613829037116617864293177909056232659945668131118843809417268703942230574578260138962699532401311769192580932397365993151701924128418407342556077573187150621159647055818165175713523286880616071027379208189241214392044494999473237235879313094623512552518756618545518944397558017933700191060045187846746967301790784553354908870480685103458270281137932775867087655643961615163718138337229621996444430193692222907173797623058929940102541089166685681853459003013993886254281437804402914956559239464444480105656024562098991093588905584879505494367531381824166576375208469239802535584560245723135606823357417579326713983269164429775029636275412185454437929209316183672508890224353798165713083561301626090040972661443490603691710094124937741035928297593589354320248654875179928622093777530124757630985876396182645920959485507092281061871850780969721973005965927192135981548921754595884922992591036468759475165934281171158365911630836345997278579437460993319505542055538745053732559244998124579272017254275968474861333104994793710511845010496634544035104190869368311085719323689965319057396226990613758654561880765767802312362066198151116575022253909233810550052880069947497881791967365299570414647595799828999915060400439578388719901755792494388504280050275701951108111609572412615731475519572385304076838822319135145515687099471748287327224088839608541167356892758004228063657530978707445544451811592228506209502037382589412707860111370366285346726511920777182917190099032950094185504809002303242417578652267589306430301276192362394134699908620969457619006720726894342545527103780740769279777713545913205340580118256761368816051802907061540350034507899595240290861657286124021817515449292412011964600639364677534037188943423920221429872508491191537346653214099125230960182757947641574496636437718120297071529615560367810268609396325306731543851913084796799249212313394952479772001460451106197132944295778509458337318900283150738010724807698682873847028470276071787234301506253447132392897581175833588207567800324406699723241973867166386365099688933868056456065627019677847787894796121868807987983792964167266515858687194656809059542612477182602087454960486517575952097167191544815642927013297501126288300440768978366409018727384558853815120089967157920103646898598745869158313080477428973375446580814430537869274019832733583984345113305460965570875593647196549210069919978298654749990152408796753017687558755494309762213833569182557871900449057341844292211763744805733422461446803739868315204940108493643147135168874641634561960740075024325155089054484822097999480819955271144978559018201339447676791479711804705944746846829201872111726406120820365672979719465259813994787639640269169375178777881695054479966933052602195065125728679033456072982114519921789501522847588355820124172101973902057991735777903103016994155174410613543075260855694229027370369093278606015034368445713106315506618653514507756858813705358503674382216432340323024132063234881225954805062184584382546049778924918825847828331585063549256916466100438969105340420826280512271192300337951645152591302579323530012000546680513610784573518699471603710698759449421220149703623869581195704907830148909375442062389296556012948408745159588656799856308531991187643252169944747249360945102232898651764825328708443507124042432119394613350082116480017636864266746211540989617404557591213358374239494425246287557053356637759389483345633147711039129074283663594813077685898007478171124603233446221824885393434894747800369075353383056342344446720012408403772140548635505910048032091096584882944615288825804438347978528368708136085524820247689673819459043905048839810009559618419971458900950883744772046352237190110100798207388172529303602988044922472975264209476175139789439833265262556490304857577297068020091986941463977631723751678058980691494959982427304534757956016034267082523272905469251517036594402213068788090516092080188818200968261294751092627362190200353973992923500537022119259249932465225614733545503634497450357682661452989322532666767705681798336880814529212127090298430706186194598150787528200046070597128067668455461342038160107042999062238070215906183072296245558594085677180009454317302763542160092375912958280276888402935727218153558913958804705377265559587040494183257624210267989555383899336408310146557596856218792711745812575653194467204983778332909752602849040204471395143918302303998007557165431573036744603586250226624416357604193950301100812807878122549745197041582498579391866784543467268798412930809928631004575640638926725257940070588160487953032366458648646054038027035778037989646016420563165884901777348532505552544692791802323254114850015399708660014848036981109053064978957955290732839698472895414482533343182012565279809070340582530711857499126385804335337782611004907553267129704538499078552882811698784844944941360654277401186561127775653656161187323029695193381270884546761980599294137387377918626084375088635464900277456046506384304490030840043136721737117008819586737437184880676227451312741525084118574768599596800284655506699740553682185105956995689587219156604277393327133847196698853674041041649036827556293012664763860512463037338924412791951203458955045407604994476537104976428603359910252560697804720358236162080895304224676589062133265417620619877791765403433636676353626592221174459103870003311127517953597711921842024255415121165431558589395588817914462039546287345932104739808852135192699014831623671512608388434041636696832034646702935853608265480866039855675780469352250244924990424581677525011132275863595247246713852232139230244721811271786837814306618711771307437352225598874646364896005916828368976121231451754786343348389929317746029011555463925219124408581108975273775050330847592885766898144371028318941148034320143444218903737767500828733504942553028734998105766299823389317968249592813297061786475574194609019684605123431502833795068639965114250374096516463120731982628038121736466306875932884348737797586254022500323480438287273006881878297809091137374304396042221399641479007556051907792237140249424796972309410653169194940080950487170689155189656510744115118646047104970039188754282625422410635285578945232493738703101329773859098540753550548518374023785179254679048169462342184176750527753635088037956932860838323891933706735165472148887073492439866542688211632379150270657004763132239035442429826237812693938248892644558929144670733859197784620050403826974442029734765586165915833231785621384561085329797948763049450220359340926546036074362396806815208735456595985330264347787017861871097034966302948320616609488180395688713591668031291997450321268400882020713255718081059584092975074585372804199307522832762715916084263244695051840335288375769148068189085392636744456000983596599320524948386361394528990984681288921845814927404109765621042945827579814055012248795661482643991179276309657844628986327274499247059654295723358731284948108874317871291256535859773564350184977743602326267123000301322708768947765923701912213665256019404365905621054873773781459363085701747188205986806626780194914754441557854455336080748879858941574704275481963557858216496850977257168339932623111693452408850588436521001256129898348459751986539212375203653203568275756927451561878368469823506624183843331894246743105053419907477122177514865363497035065604609764669515670990758517707061718035150195462827972224753910905154123358894184138068075127995150696968923626814798244874804627404939199937577693665270978858297469785529085643953468501410963717796637140231693622874143304424888144045166296834330772155030821391263080168264732438149209085135855862398643232975938209767603854674317004009046928383983380122099016021512970405524179945617288715280430325707644769547623330027342240435609683038964172230810932822169066888815771881575134027265449313276529637654540458520594012189619181589257150732824016333269185469008040767882037562904406869275316610504021269916398171380869699605681734327327149698587545631404938617914191937003920907582464491785499477891212421675047437038407786124498978038413755315592504227938054854868457437515401108385198926074726424465418242685116373088068759645831160369542554059500164600394471743387088221182122648408029073834912396331146796860796859880882763573712008726343343413943316624858334781516633864926295323447436311045211772946429505347589936222683275379182813362179614668983974921465397111299209712169031203816564687042591082696177355892020400256238151019358549166740791779258797426692398264259045941115817930036462982745780893036907738310492335830555164881146814851545966665115152005474935778292975139425037067736401521699381637609005474412300350833178879868286601880680115029725335326195747679419001032393508910248374568558668978914411016712674194510934562531761783095893078887249579981312719715093417236016927894069007530622102937745484787072682614279896048156669807551911207429587812674338683501732653422394018869962691908985569324752859425490209409975058863114461421460060162325644376881903471140425390469645439184285811173325230000481288704007681773609227658864343910450863883518061734929210117991971984634356887517379137715688469979457568393998325647070507713637257383516707389764635429361534202570026446075257988552584566701226667389069029657667094179343557910151855855211018364471139867897646878288844841681706612032366087919852386413242901923833274318282526622070891226248697700155929372474402835472204647527108306082987721560725392450740549776967849381824161358359342861419474008585657040361947394435301905700118017256721834055571451932822527242015500114412008316782089685631363729734165480394811302982761051017244951672671933786843196508221462342846480244833720292013371321327435176248851305931694228216253411789240396115242056738517439018866185168208525746332429719689832755404096479172023149630677891740893908145991833750841815292358313869774522297947696278287584223120626517308239492110040369902583274651278112604462519866220850018160187064414114335251597840846945883300252525245777252542787996462465874823383185003395876558302697815902174003188367051603850526711114581959101152403508498997331306331926183110722948037763025581913265872840836264480700451592059210070954936825514521023909662516205109764662007762969949935085118505006390790306206450890840016714765329893044024239481129404701289456394022991436023838785471877722548859401597174984581807230630461235612047091729091789591570097498241546196369872191347743204798807122329733787057445665532741868637610827252924240899045819566628758473950346912250205121531251205971184709762475802120352813664300281099997614201517253283507700103895531813322232869079840071357461834692093647717943138149492638340507844935430630344256823475240885450175203130602368556370295553919692925864303478833567123344885919366895347281229906206198371390428184964329937414618515552134039503095301969268312359599291388135051972910044355249648231702800611821023661857115061029421515111561943135849061238968344130568878438505463571423296296851675321751649954940782863637135876908329346666196196052407510918596440944095908943224248128598929163399347130042607400051833554833413665531098699574363719182907999515606798393232022451939260692482569873597216810237086355188760217482462103641744105846772003911786224450197990732342674207884462999803889054566341171017582665788755007682493606028468525885512112665461776886557291753477964192762588344466045217671002506957326100315409821678225019577281473347808359175009846825219313396378011927711388017206999242242763813921604032989528321042332253908653869159935968937858701796615810094603450621957795592420343666373717589252942459634988782073177479381688937693076852873958965052725221873426886724557887670512107141655045670179065750573246330740796183269735816358675261983627176374554643181690285229467158996834999982992783805658934760861082172206171945262233427716057133393957041562329122205731042822611282667743509055595989760709831832017005854066107561734886858064383767296689349558683493383952053307938883674691888682900115749034596481408800995819958685240420767825691744948525968116728838847247326618380734049620345716169540061943001238289189966771775251911436051567472670979440357129621405635133254702130132949124147354537550560257412965920841737273962616592729636910120733551046446790663170786220094729764984453479218110480039176702948050312623452157531438904412954102003719416471191437097935541357404678107158571991541248826036221109245487304643258883448172603191442921301501534734881380679567356516251081696053120396854024108348223975270428016315909765315679800716731845816096433957448604650257335936606097267823472410718010643757179636576234549367894854280776093350503225741029224353103934256341421021303070480158589324619488022110052765816528633908455349188825475160193688241923969424428389265640364568967990946247194765005838172152456778157164859122514772016829101425863737807035728006456167974677293421596723681961405840006352534092172723568903325054123529059280297008236293677930175843159088294156283047089851469136802772838152077650660145124621248292194146266221572051004369234845010846655686525138069684761533285104729149696503253171834420560395704919036159553340112939197949922562925463177418607779447724655319606201032187162857515774792553511667334228715511210434238017462734034105178684509052256541839025332405642196867927368238296610607834075834260555538359329145428327917916539053359817838388672005444634124506383121980108589197280970222683112541813694638936897362116719716220704971225099328804480088095434713682138422901771963410325613303924158929199476829436648117911390380964461411713310469604937238321737325116155050702883784514694280229860114525934561514303811466547512759129292449200830924368017502435298317182195483661364736692231176552366900311804882685126588310129392950193740169221393500540416202079450462375686969835699610728587971960404182024179262586867241257756295608314861073288327106157599593095352471806985867075637062533555592684942112076149727715157745258461182688112656742177004926529546588069773168364332812234882609007168019616273456923963553098403814497358205997395044240973042803451677854989850718318213246993374296936572021315524906233675070847383979555840401981454707895003512965951889060458364532237062080944112132280686197476595698314046156566804174854689121123983014561504990302631762814153796243031666191885366875603817736815164880932535098533425537633272849440880205211701342193829603452471427102885651423934285193927918099056667839450844349474829226510815968532066711542541368114213583551611778805241435416349919457549738247277214955016929414914061232770949509057266729584769550998854966750924192680525503279775793530814452905545202510135371622180921898943248817067116220137775730777640769030253881360687927650489088576845557595657576725870428216618365258039107015290212860937927031403330404276438781717803523864313786850502252006928187174843184408273828484378550814996570834568291893126697071873363142453797003890579242556776229889932564816718656354572149869421646039291427131463271888159311113201957662268080333478506865130944394040151151354432469651019148428009619003462152389004235216112279764482911447594650732644822866324136380721778334181415135531601401759040774649796083795369283121488875989544002349531120019704176100255705224436395672240568988477151628345881367079626862691700908277057220508999945731018984214345723672004380916388861972629500080371004869826983290973650041863666693977362912868014848500919730922286724929555735579183394630032275291882032778358648781689828193853214374368519907910418894703040016990295480788322425907046807001219574898164801745035154170956221858769490581667919885192366339332336987147729050806650131502723556970284026949391262820549498682664495599544948998684841349669313247231684095910787697107371423234919242437019288192290660710343878808972405572319587390899586619773572742013305824027155985629453504246867930870175419375705024449479542634067714108162692173043461901363636699751949269820894625189256926895522257079760772191615270209856303099252262997080218647607698601402445418011356237881059927962943383871184464865640154890643985392915231772488897826938051881245655291666882934410294346559704758675388627118032492863175594149459460731346333095257871951706984836112642110895621273519172238614639975176207655113180099944913992795842095355535199016110861592060653339857347920183496884260241392977543897775967696353701108028654700029627072160886785518818200182849240014052238324040526096377242709718344535318193005960931984920964132089107519438709183719940827320772563126912175783540013664456753692130445319274827024613718780860459417003403740714585019301527033457368294938180431797590292049441252970871077178969226308046563620651739474041816281298111763736328960902597733212546926557726610696064879741130907215192528532326153946292981351945447397270286903537869190381813046493759895900376068570807900047301064428532672943111273118351193260970402713336156394574720733339285855701057664204013220791133108230971084420665332963429148417279549036118063998927521582174002928316671554780318460636762637959422784153712567728118583018251855805937781022622295148267454618371438977221512877201730842118548567647254813402338961930509491398627236800939350374970683088470115810046412590704633166208560288518978138989215947153749896172348087775212056968061507153202733584682743569934298878426651911084864164933433321453415827388455512369199806136049889838857108729975486259047030291069714724722517360995571427797569293797160703898142750514659696601103315399245470998640213554439187163298704094355339132056666461565098775682202775789996284606137831107126793284656734618205230018049124790637931851156257200154246222051592999543581122056860278623961090159337732416214567566784489743740949475184577692015478698958076998389049001323690542165781168672258279241007727519521630676340422178665682755209216473702493306242294300342364673241797980264298777363200340069893758218751766078510994498202257482726571757722736698110848675263161611017956836013659582361200836754122028451770793134198463898201597998323631496814455003770966133597238169068130764480228012041173986505113953183842881467332878132823583741089197773293409713089555265533546806287210088229894554519860291424694625671761776814242639449085311625869183125684676152083421611309550237827420660746430896653422930108271842323658834003831531445528823632079327746572527124097434990421811702179049265623590407489099761821804085054498635897678652962081427242211326369008316803616114194594911004506300053505517362540716562002841757504774568719584929035235437334272280329675225013793011348830369126350205418729472415028796281949382902012506577871621267111198469965318071080027384731612778818923321034352883847921826292310957242837475024083348557970764198335941886762308630455209840119392432908070228264288890776551763422834597464367269418599148555706920906179912242752563504025972812823678990849370706348900362588819227600763692704795082798242245977218796469347299624510764376498134057962567238282193523945490046362668522114900748853686463502890076598494515354350419726393759968225625831481116879163445499537829380883055028471436608849887428360039016349473811803162775913348784664873996531665024804217446157667224517585221156141115217605177304076671033679464117702319817450897840444521148034695238535771570511829896893322281578002320494358966108415685813314834714334415411292988238147292118948195932831254978485911092522503774911386885847035064296662984345961298458552167963657539512796271498367762856334644682055856058471121274905998921791556981113407099199582038458148282868127810554565345300437641581366023945068534035892595766402106753928406630175679707780427213599803111619782225464491324816259613875005431518252839828820135142149208601394674575108920413554385964539679138238440747597656069670383435489700990667699685145925781656968827577718508492222137750852957528265369596233926145343918865576972334763001654516564778610291821459653268293702567082435411323062452876621375414627294060887724554565092105983210837728912771604029947192748918105510696364800678944630709591416941937089534189377080440977175630822095532809478082267566464679034906733004340008538890780046411743896921377962687910752728618425751791596097212925033230170000963342079645288631824982801980791819893500999813270897113795270581216817585452238344376718743372344885734039242743350713562936621982821923343006401490644578401230942691655582883671915393069457107105710257325710941445266327839814732800196442788491169074327676689097720445699683307302268848165696441542704471627345677538452350161310561169974336890256160082733266094085426341033392747416003115701525572072721977239797262818145104626114546938638661844286675793716769581469906600378403210434721745144009485160195533976719210102088837984084296009828552533303232718535545121289189628367264877927401967668274389683148080101964409431870511382249994614579607149793033209210171565469150314527668655799815019752813440480800585838419265586735189223169447784897209541103836137075483377297722125462884400568994723578366851843871506858714652503876316404643235990066258445596261262548504021471293197720811002884604566438245230310586489897799453816439158090614438666575150594712988659644891517945887936553843877292809030145620960358025253152013263109132168387945487740567504336787173412853098417432943517094215339757596353855366148709312083258466390365569324378296298127325002409400499667467082608524426631511780646304290025108203475875519248038801022326042678642855553921685967074444356711207298291415622236954404089531682267638586544151928182735391540875858944524313116373082028943849448575376833716483468974372658073015165726848694293079408524627466371144130530596225870108670557517237742113093907410067336180120591470590242529517419998801471739653973916568136096736295406600716101732103981140312596761212265326536413991253711466280253108045796647119206465570724058217702435468470814766135689916695704567879407647090735113996550019840202962092860532960222222357138991406312127346123781246255495681886786804660216851668833375003596793043353031456644648704304193437728155073180486291968464835001263738727263980056715041293460266552438722450621464737388539065870751999245482128572587973864230237926790751496055365694890597385413740379141923977714636196557784039352578144101846421329941490809310465704059669323473717267535663078690758544759720316354394879804896050419218724818140020308656598199747293822416061344561568306070108610542184169243207192293155236062267745189872488064538559015057330791915532559386974726531433606757326599152846686856145092428940600652999828014036957223510544602637923793815838542877591345978920496693307276186185361556047118878158712514680811455932848253443462184318335509883913712318543520370714039262633674768920077776681147886919595389046108463307667088409291178958665601406952883915402196661413189489604207564821864947974272149774692882591628646248935068390682572264013375753967275620119430958665391778110226623612946775006903232180416748000317496397438651142723328465250831003181648484287929587931785173032613176639352806038571441657313709600993756718802648799390136038322456432176775526814754942646767011062176622302503743329807721116629724868934594565048295382903599991096460831170598508507552342851078408650048294040669754864754569006201524625708795295643774419465343288938415892406204011697965712880369499473473691918247930469852890401155340435858373827575198813244735386167078511638888597859898949623592801823993520000430103038199102996835937865493376946457937849864925197923540750246109421233431411661565443280604976646370909657841022992401153415571578991182049284741166767537592199393703647603094011189608805345192060977139594660184822038477700617295333813167478179250064814311430094967204623279042406410148369979444234078748405462095303801587185512287010127947660095235551462424155654363691681393880660796573622158344434837550332617646691878352632320253526595953300590332446793642224152430313192161624873267116562802754055317001945429972078469814858732924839211855167856247261028028862890063499331758278926997683080417525124548840693134962529717510804050361077600080030184865739712572788592854398407608860099093715933078808783283205530469114091795319135955818855657774034416589827022873769111407858621507405646793449985249716688154012080485020020944172165481931677131396017908719786809771369137405788979853396044820747652633323212818533175390140825482898202457338081198278975532870918994596546723434407943439694899214859359423701009739000215464236959273846344572376416101184865691638124815652975860397375620969476233285516581390573528870114524809535382925587998081198631377240362934622650193847204175920780606753772059214127028259244677304380995715582552354155899918348204640938170032981326910690883244069666461076680877113780991653130534273683339380195034260029834235147409008162027745345503004130280070126346471128625042364001545064565475253166397432981526827032477023936455489596139390525795411912896921524157133173022236829874013096167160585132726583527755423140622317365257502866337961524578259046510785495843638443008363137651648803283432291820643540494525612015482743017567070585670777514516869471724487634416886617573129257913901585242607554228695685421694750588362478832872577350006491869280101471185960265380195184369689383317880578343604523328419338547046069878143837856429245029371543353843436885024968285896388282271859099112831105500851929628849378624022647430220402464003802666329983509028942252921330223187046512159801122034682998180669958176216059787981603205980972466202855053023404592561018089475880431697948478672969539480940810638499427026107915745026163197993741146119372790909063444476886190103776522923698330227757953504304584250798215610208907310701804302150348613599065131440610979989503223769924598761052567994959144834790710867392981502567688840422263546505991127596447252536152172101516983376815749108041137198639782644233961299334636112976571911176365566905760299126196563659078691915882202232795825353716085347868268232574829126855457193674596459349133541757938533295498928552898598680859231000616175064013181922554617494544602913084634502828996637777886378887089498568410158811773365182020887082706007596869733626159284907835949978743629498670511965489025517045622730950198101596567601139036327869605944217155851125239512214451725773520011634419614808688731828968355618114894306407114625480193300670870514371344060184699315649622680479629709535112163155237238114172070919106339224050244196518904930821829548809823464371952705652299147014020883198724235156919653465125792432063608881785803211799838880782528269757479196234644800898617871993329856882724768573769986308671481693524285838731814882313117401829569158129786773996535101037849015934609294568375796105621245062229349061381073256550788396424075105459618044557372583555852000437547255131203883027237079035597672632043902975383710171257642566525337070286354507698304359148465457879257646151049036520661613657441646446482211420433171565460641538058219662251051456720696992462017492847709514655025593277819696219534244525099199316285358775797325930193456542152064507036067871103439102106933674729216867016853928889306478492445054483241666805465107259590316766189548696988867435051749039708554428197536049176051251697500204482613735783082423597818733383383849042600239653118157615896505874308860735532373122216920119867847741195610699685803097323018776557478656947470550728415845504175876363242488578312616853891163585810013823087995614107752541529534246280087255549312369758148047721755251386584017994759288261703028686764596083120002795634705762950136532252549026438472591298945068464883969140886675981267058076733844874090024109825557122530115381369607757922527589575903279782282255907286164060755706143855383544770236193720667500620651620556458722794354649705823817515426481129474791683456649729783105062831639058277808029320940413834065547414622948232156239428767932538212566307498416525635338011200526284819233289960752395154991661624140337772878646646697554016672193562638103798154521362719510117090024797165420490674392888037547415408086779698226615186723356128489381794040183015623435048991475590574369408154777404352094585588894716969055949513975795583984942094149858657945361488753302124719490143128394465310672438556071116931637004875692939839704944287121700795411335786886394643840853192116059652413536865529783536969505572458455847978830255095040996927294796634894165204697103032905101204043253999457274824522983766357331395201929844119589597873295708952591998805173787386266936939608481077091468263567363264196784203313263010411988024515698228505398764594025037239374660780062384591500510168208125230912306410576484517784077793298645461063655274974334956324543638752715853996063259974607485121147644949756111258791419308056640507115146531986797074302386635649021338752612087221207584081011866305154748017949525611527175559585430124453860837225633689018926659209496935269306189237692990368478055946814845430794893319786504278279675378665575518575540421187795698922799912970522317535928868774278567304415434622684245136366597645323119906316959826965833901721961867123365185979092984937569084238466524594974480445007545618736149677218868879095583951157166499102878609939223243982519605477053250029159335907486390671619877867621452201912951139010278873065109733835565605541127026231248094185099693192668292275646640475560717057921114000863720017304673946033370788446141927589712637537113493293744719045547913914149903088603020216235648825271878176499507083505731067148796444625919787093006424706229543546864791847912680255364475131905082759659613283808090600576720088145366070650740975011029111470258102869046860677127453582599213374986198868977585186444844569325144199464583004159890879962326402110206532304337737777842450453614147559011244056905603053817356024153398213781520640069859284126448388912212227777117463573407147500320283640104105808010429581742062356991249013711248477535648311541331765554405183641184789488590799658353918897263918911490182454366988657358117543431415640114771145968182020628329816863560623109856706073443557229895502367212295801319379153164118841073150758903627518706959993880933465361548606813040679077865498680656805775510973268252646323516969025515527781733453047359011567622506937448720671338387411775737271700934133270487257062115670320278870874386366694603229757676412524080883053889621506502218355392187798532014406532533949103042456724187451945378675146364599487053816899155509773220956203279156277493200162953332857085528668193982727966200160428034130370847801419021447967450431383730728048454784874525451040400294214335527353246242425128558323833233546115713664459562344049310198001000256176330865064241046697949244670582752686135061416335176012735816048614690012033981197755268501477139684163633658623090005801100250861880385409467636762018128345809788519728584447977685397621899159208058387796412561066250617614533950632068007495515619215314420077588369354333366524202069952694874610760590987892209430826167984181643936436127119476312161808835719621772527999748875838706148549101123295283473109857129092468934266193959540548437981751947891112666935221973489938136811504381436849795501602858011735810523762669128657951971643949183412020169377070800128733922294365136802671608142675626627639179570770702511650881164693550181470196243403813498211053157294750006502892376145247438904702476074899822492583071376195407489273101446067100090786188429228454917579879483898050376526363523574117337772970253868192960449510640016783766459926740838676070757906196092122047439276693726992263962191381919506229676190828830706362208202866693906775679553320700354080120159547500281939354505314612969138634223854832200060538292171096885476810972317854682007782169943152654246350962225863616802153422948621101971045638094126449633744408054262962373744302366892166704959187016642200855698508526273159068267640491555879788033679331248263069859400911050568894290424854605136238395522563021106797291812734417556045074058839326520329447295083575810133521086391382752044446575813920546095652829192290128710003044000915576075032627844959294051778023261589858424821456294117430637768239958509569312320097365475850224471677737288760374941561238029114585969408251124331186401874023035311453857146741872537053218800058406744539150530322926485758610381629003499440946456189740812838961012135264546677936553967768637947571766452603359480701113733357527931028800422711260761296167260042283930150411867308939648047251998674183787003294458225827320634469555921320616200675331457707401720818793988776254574390600300827467906793903197405864092444856118140149897285421388032432868695881772925386656173117492730757394443534668561836669567332917748771014039590127072957196514074051249708489819348604203979252723571014039566027990859608131034964248200377775230185627755844981151753608215509537100765214047111716628205814717485507776644115117714822688430306265176788986519280508532451276796498835360379511702356959871437208704193598239876126369093805061575496372608760510753617080368400824097363855841117505524676169654130469251797796739607806180719911262644820876981272906436442205004852795775939467535904151074303092504145580105300004628624182348590705906386608824287665627276789027366831215923478316128722676614023118070627691773037339307214194035260306548245177020321612738864010536617963170055118305655327447105425796906667169104753063690178537875716768388171261171857946679754841995692583043878181043012225697826925465611730215133974884585415086499520524822925905098998438432038576147788224535442244273527049727298882485874411493493205115895883005661904078922370992836221112631193909374455065761311183938623641771065014931738983772590760267613708441969775849645772412174607178795032835467574909064069963936582189014998683428954190932612693250592586409927999197765568520147615004009594228491907848064632066017389644686520230280979055355661264581708305040767788846079633968203707288481671772617832415371294401476571200366080304875689455352170593075761101025255196873198020100036238545909397226049694750665250740774568310017615448780294359032593399795357949790993552482761046287339654316645311948843936246018610649271211123770727963214578231328646566969522291287788378397375587249358013679529833112400297758432405034226826212568715420358034698271668315906393587798794294949477774879139863389502983969998945700080943289002194228319500307395397984491705402299416652206162092927491830875711055356541709800495330535991586509509368204077158312348379731599824013025988224118787576596863826419414109315269542656780503896784997504036596281333333445087874519151927954314398732167898049026117293740959810661377474798811455257645468378763968990733989600079889317614908354748071203729485907830319130927793336584198606632648986169399388468219491258567041502949879107234735192761749903329675914076560772231123925215251301860199267049161653055682309961613952108733743088371281078326500396373549552745155211797315212258112700272359810560608434936230799835749356479484847539762271654548189665530096383560552370251947124035748068113152455032736578771106139482849930752461638985245768486975856241007334682058033207417115236545033023971238273225502525509981354439195431691341750480600410338376994011328731766795958265899938001078067773356095705326735229002837678336286683003208376025871260485594131571863371944338918498767391930247452341304624378873863798861812139139509860909401107687858881280120308016459031377056621085657085144644240876895841855875041050763640480077506149595798177903243828678908164253380614267228129562483953337339473917348779434676197253875419988161088352240059529590242577632157890525710395897669416574390749987059177811810626660596773576474620623071489900845251165885492530510492211519494139429875374218265224026606394427010005513765822846014798392558870938058088027985493624334911740531792430916634694489411550336554521117475868793171349293685278556415610547905055970078827685507181530510290475157822374451251250794429586983062315915051402157880810549895198221830494416802266957208253232728284898381291258409852554675726195449849214728486341019723108568631764284820355436223192126963828734218266875515092982124651328383224768423274455995248359697968766867653396531330275577448683606089601109885729871302700219798315044720819348432307184020350583118965350021844988311444731165495053649874717164175348676838288905892422714570313795352750385081589762489323790121600795907501589569833038380300053512497948265125198178739421429160179428021680337873329121875855380985962383465824725000933602489286153351085112355842554189373211626546818726569287898340573337484596311744002052455705757986490622481927693513516797627800108339609886263901135948815032570736168111910132354299405351036672479056594966640921283277880871795533507578185235945628823914490200837102512509637471155729057758724270526228309754570862694316250589848433019430124107636725861813516749945124229053340586397674833505642396659198719583654436565559012189523770829366566657674127841551708281348914222346987511121144146623557258214303566140756369753436261081352219094874944991672154782014614433022132630497092335888910872882400176548074386097993951183388154280206890591745855422415356463059822456431969167532690345494650575410422115187504788415512227406588959683145869469422101638388765735230242185306981656048474123503605208162815480227365649673455302298636986415656299280712281272320285087072996820802592368068113491137618597308672401364363969547131626869898814810508173322109241485387145929837432826054389803822498724990162738808892040504163815084213447254970512723467364760320897756678748485186794903935915733340467789931621369688465047006947506853996971680979837876848542290750613139865245429961102982537451553229750834346059507276139172899904300880962762198465413400900300999730866836709690379813015093504064595888228189976430596792900932381119497104007004300525823089744640266332265686528139983841829402300654141059973779386537924951483158159832923542544530348386456162753376996213823939747223946822850502033646103068340730964122797646888136180241153154685916651605232276267198456882679238814657720617323829474908733027890830193680386726324356880370577750615306229053940113439662330441963892539024769911657936902647318696819202772465072371809871129367808225390520208287808809236982609819691226658238546841507457757137787370953674104366682286604947814532574899353965570662023699262924143380277264429558690909015189697788662523670100638352237184640623256665087144617231328542981887144307046614980629435776053413636438859750159732044505750556902991294749457437121433813132540091278007143575553458136457002067539667518666493707236222501502146748005519908670249862439284323116637151469225663597519378394301251121339274631129211694264291983691342924066445115988880550713581447288186107868483426248402435104560372554544497801638458519443832200427276467572935283271767097266727885708147726002979050726408668989910988741283024676296191550315860627243614356940580333236012804982593969284525935956115759977155419070783795868091450250196453143736961804306890434580023155294873070862901654529692059955300933241554198271449494772835263017331443639966730122698207645017863677605027244886861275464585888907643311877253884184505582309381028227044230690094334252314795005763266543155707248764974891087736082136972970528522419690853069895275835219881865772852816130268685706140506557703295525316754111369781343696373725553091685576584993840472702867402974626012182392747702034908656568602574748711342314249270749637365932467006269937727767453724358320181992555085233685123385088669878891176756506014889932067566781163172485432871406329129581941262559030120387861449600534957051840965058133700685164775507994735722918746483927123538192518051229984196076987989188489764747275665784114634438594445664234113696112444844300534618601469413564279452146674172680273143108162730084587455639491592390433826010715200087194968172288336938571413895772703477556196144385159261863934064005718050665468640895458825305716083802364335850189341535629216420511696360964394451759948128897735491455896517311910094236490206370849882245062359462958576713234169606125065449589885891542652840332293116357245400935645163089943566843895456231751101889623012096626597102600692721714281745595522845834149380734800380846308989053564717187783005358227434473637230616296979173871372988562975788682656482979523866203994595186572002034439999694575092110912781605500554398802455557683568070542705114070925721986685065427633125231658428570383900042316796379115001074665072940019827464724741655056625850785676332007560992333258362245561554376193002623073086818137758942523519493065937715427854043793177243878028585776539880446435741923868454569270582596304836028474968575767058982869749455679545355187553262056387058550237416590427667067676471369205748687830233781441961761161051272082901342334480343668414086898725800334876318055898462116420106346695644762908274297982641558206008345409960421848707722100310083782751809739456743717829835756222541848589067057931351770844066834286072315342092519299652872674127439248941299776194210024968043077535611832029196822045500167699868053635307471649703193324582096069035563817508944326717934767642799661850362908083031243603828540568743531178097424489561066533604445990213829081561693923643916131347406963810275017041479276606076308325548111233323194097615368622215994463273738697138752452625636964175774329587957299512888433695536809920773805971460636924673035717253471249821999170003477782168402531748549760690771534396372419931596561151624454551763612533576416954081862863682599412467739320897437713655288981902290479416063957196434275912998816962453403835910693578885265585035686497292243954425767846189840687527984026896184071593128088594317991713132749689981579678391176618921107152476971446562168869555678477203816947851519254389846310611855821673406002150251937950433009029009813619489154025118558314808353096907955046377217868027574002609523523597175978153429357079967678278012334520495759445188037029615740760957738401413383517276830428628341701705436721551394994770246232424444214683825540024893118290622209480467128337791295580478193781483837810983070514156084493635708448072135542669250560335951009657882430622875076740592132139731015899478461247506109786921646520197674763086025140398242703852802100273769675214823060587951761528988599008154098461217496768395411682101898095283016478441443497713657214129026205431673358263155386706066034330731932185520726910267284216477547821889540899269052178422547956018125147419813899836484056156399339654851260675487727728639626066899751177517433291158105411727338120633087601403226435651369100307556393178731565225748066062898705111354779607161156680189932024089175943457068710342171657889665960624866811021773784100666113204326215531122906895458779425698071502788370016621704217333549701967470104460398479367616918533947376704458803275310290339056693263516498847913990486427204797364358232901581870608049919318016096642610503332880800299822515140373490655440478568374234406733904990492544640654477933309887166726444585142204442647443307158540489772540446845165451821797430243190214315398877895549162084534218544582929776952341695566304471911144583171625904007681509390212109700674769941334508020702823400529309556513339386118570078310966685319712471996217204950046559662696490630721662475114795739590911058931634681442528820954002345561915141350457382491010575708346197738365216901440806152450118746488006244706103697929801578868386132211864858713281968043115912314560440611407342657541869496278059128313361095614664057522362663962828520901070716791380373617347795380982101780331630892962276310886923600565418335786788471116263678346661619079026431079896649025178487536338629307044751244388486165216198347783072259480727226940981517086551457518261695708039212032103023194105442171548978433032314223858180264665880213142555985624357936211594226626864653078755724122121770712999813831474491149540114624536284943775064563692860326405326246388701840973087598079001213700599431363844272583791243802336574592578207696937147943114088816085731495750955951700239409651801362326613840511890086181665219192812160137278801255423311999339168390574230043429572186955286869812886820865673952778860657236085002913697704982025058527452993230893757697923488393936606434856506817415737747486523048688264654608709690501226604768427924784214028223696178041966050612975023448979308710068826562783529339729849646987343033282905571418266253566328439996119108132011980307406091929429334738044699230542899810949607393477908759749216533992935542385696794757007114019616096961310689307373440174768082753594440466989986566578504423427066368367452791493371009349647457008301146711643551865183633658249588798632186669776770579592474123529127494285392779009067714875630502487380273986426403955826081011360787051869289942388938380456682866167714262284591174578204271097598677766333411206160630630473120187963108192242842503675851492693355299500311635992803125245379878235587644600844011330411109835547919211755394936117369055805382580394673403382772609561254766757518205142363126166254789131801463943221705960178002806293069506601209312719922527981979515051817516470753740804446257467979747811951683941442743423668886639871956432869205871883339888184787198854662426861258248552254209631574623847287785049831469276080311675062410500696775503762820124863330605408247973488839213712778911995039758831186544785254870602561510717060990256350667417265205017519823795904929833575440307070360583681897742778069241242778916126598233954365795748655764063479907718189013603162435040901679308109843439420700940667387824442170519955927926306476557575721371525721680356936415638282384574622494684191602400821875956748341697152664075444937876809398712964716426936731481825612749732285613725838204242644858580784618102259551136298568956376017571072305064138265411564119318775401614549848859988491103633952492245717219291980025296838097565367744881328280876106957219958921220264382373141625455896276876750830049605611198535705037997268950117183457713878544492540907872140412002071730204171682262850792352183025414536916630691725424923472167599323907716864803726943176039879298217094736267313127310669273447689332108726570439313237235859203752328490986498145093368399995949862442979227476543065002512823776476094013852495207268626098643383214490665716104476542670845235481668678008303928572581650312336497600878858276763504709526756151195176675695875146777515752787634010967054344708032351763470138033601240671889192729531420772528401159656278563236124271620643684485982229941666546867121167742531184298632617262676038024285181125747229567551259246506030028475469772964714956345880670989306662875443184004247150020416211443964865741663163371994833747446829156780858115680708917700943792279482480428278834425899769153404858593406121087691045187463055212338697043047917060525630633996604971420710692166502440845258930133521040138537189256441588841326377195170813085935096052053589335698849103875209256345623496723921597619572095363313146245459640757742538870627256775461141261517018681434755417204035680598573921634264369236448466797114058377567921223430448087084946082359120541314602046263987145000257065090717818531873770808673792015908291877193666644537572938135494078040987961790038849505413403481246377066485783335580462908597184524044279611947376230503466577015462405484075042496353701836913230503313400962880107129247598914480709502209566607729794958149001073101438993544354423443195492422935996733744143213494373807098336208402151989757246744982645380620242295856331953947625546296553466813918388490189755688869653190350431565782754325069282506261215669701997097052360368896954492740939953299563245109550924682124541054426179192970536028626277723261244152182308145989083565588342307343426559098693230910156033044581392590883062364882773703451241712100610731509553322574820637584170825662267832782210357031578196333616468481197138510679761688476580961005750737377970705275338131097985817134489174724873017090493212566799204216194752297092503582430032890247892490280271674369176905247259207442518884382298655056582312598445016225037158709674099553782057217891190916211287012410997344076685237560971116372782569220222092972474695441919145382669297046214372677148114391161419460781259406634686996881342624742600172601573885436706178647931453209421027673431569854078266629265871694758690421648156818764516198880866133573758110179234199309678073928613284747402637975941502328895456676548354920068454167676813026262627048154568184252801056293481216645644745437346905925462022153674733990964864466963070156734302381424577312933854615784188491331737586628711851362334108446819771409516839895567352530220784240667592571906467692698246605123630073779008510236038029928629854361782297412875235816800264097589177875808680427282153947179855909146373801013953726482792801940955971693959799505986950949741613015754327012550395167381511095705809735458568623499883233257811724461973623326470149799639592087389559815752377298196145425976066634129274209129440160150795144432993209708084696986641294758685966238972551780160399649156769086591523730376499497966630000292482352319688430353017877524005620123964260507041617290741235042343640609206821862312257855953053678498037514061490318706468716452459349906142157538422425489019986653009921859116291874247054169154415190447595216717878415738201223548834228140090586076761897300199221289454224954298783285112316294280510007380939176207659893072749946097538961049658091765536048710114570745398868198833390155069954479324204258249338682887843914413895455993825641411739165089590983540146172179486759051855715857057295403756154351317121656867872662874836060112912141608123161942548445582630749338200080878252010621123679045053315853982846018171462444568529970128806318970894707078204369846878007831955357800929792119110603633709839670087071068936127670266631025308850118085081225195093255746443730741123358976839059419693747865661132220039647132113472281645594585917545564567378017818599432992408007760139145518161309393635935142120379326985564564168578223145421625288535307459010101748158914995226818452528315646053452288556160274770603070653339473174668409620478974422009822086784216827736834748255620208974087647252219819049943738363138239634506254530416525354279090637279581335010709740290959334564180370197803672304668133796736357951619972348939304333924004913838947856772117197403294276177666441525074974623164437209994480905461783426086549201477665025160728870184137472642001864816404560731939780304850477998920779510623806073646390645349189672170053508157484672392773366228765952321078519217855998825257234332406694154503203055123359886409508303935949515313785996888963243586645355343850701546203212564257834812615059540541214876124381487131823516784282153086154926890672206781020602381707011799266168115523044993525494729329876210563207440197811333767152921634235790575507631416139670992146075480437863572898811861406960515172053435589975507434876206172225200287114086593535097167774009049412400514603164697055914343087292284234223653488946890474356113338999625177073997655492481563079205063657023940800340169965869351780408679000347920534748411890724318980239199719824242298254887219608753331661621969402448547225408314505830537330261021098103231763516355547590527052313309635745165677278629069020425897511567297197935035043356155057715081808483960937697491098919053679474858397423393276821810621848223384573664975587005686366003254489492601137331399621907001998429015707982342064816182113354394569011258612900828891707175955107181567220412160806013078581909523549278126752471032274433794477920276047858477093819589558551081559633271336619988305137507073148012978100064986474369860321193080330915099128557992137607565720023690877874674971838777233595744368958861755974214064007592742882289505539893947350335172226607722972843766061367958472716696989775153338571107410939381774277311653796835675004225348918035151719334299803032012308269617059876306257088272907322458179340624862411676272586236903486074623524765368966639379326885450785423289802742594441745809998959962990991034190227895809312235101501941408492750571201214843443793665006341808684019146350592677653908320602414849674860696331999016294071429423587052992753155998381227607674215976418537857144892307722272428806727611338987030464180256714037966511475728587473485016148917453721401846463302867966389025168442040986589073409165764542751257157861505834956937889533854583832475283433379316109103694240258285075278037376144401018220411772505821390492936934486609785886376039529450465997524066177953790288391562624195927542909205821501763888325151814003896687495599801269160441359490864988362130188372400539294759670305546668831132165457094057651590108710858662088204469866655625091042524836218848830877272556480813434168309689973317922508322003969479764454363466538583810391024185375758847363356903843073685203088141190641550315774093535666311284234840079536910677131900502850349777019342191781276578879456591684343203973527888348935041738700080079560109808418956658293718322583267375142617419819469847736491512734543422315404909442734720936827377352895679673658271433533257376231056980066785342857491518317069360434390503295344069799498324491178708041812524227223335643348181374314866248742371762698265720841488519334209174541522170237004142538072228576594990145612395499346722437362212387625626714878921209829637562502598959208058642422464190500452806074302472804811559711182930319574296632776111521802267086823880385596792698466757948858567243520936458616296280571021638956843853644395474269765682647506958301907481888075200888268020829445213468670167522608759199498026243911390447218760582748722936658026696350293630892198138055643959583125570261412689192302112899754109712128698421259924926290192871961437693388231175845289606210610687677518272765121284030789769648301612848612245054446944495064348059707304285412455385404639563580631828051637568047223961409643629552050781877915630259104898387947438079240243043002122892752934684449304201410091297274890909044280678410337597491118339256784327987031195503089341247226379910461908647569926861827187377672298108812126422542580586153829929787637362546681172888573305321279043240411646507208191508216571457447477143830597174475908534473538781172675888080418173995635765716083309989551931923797342933832235182066203670686868436997644739238556187412346734167963612745663251824548402743516995440905237847679025325088038361121482001950650353292881756278654186398095593583452396467317878525282856702605371685106463827076388352095814910270877756288145319815419652088010658512781427916159788329224828799333953773779414488179099329652455023066994606038636180290589122121306270674862288591629178768853596832620685004073840954961556284079989357890919826798455337355089722119719629997618855937833813043148983862777563702045025615877902330561110100400917934673646828394828260665085164043564075013532759866895127658861940181800565352756227052914160687816400432336646272267109866769160227884403680753574103086456273926499450007799533042112031427427612159314257521044619094390834492212426722154091589722562260950260141069095649576140926569944520004351255109247302421152165646626416609872330876032592117818927159425393851871231864637147492501098292314123637335412585696437694203988912782468329531157280014780294687882963886464049188604417070047727833397082451979290534083720299850317180041853942618332821392029290897123610490628930000137970853222041386381607173939103285744139372874387987235850507701822583602231496509838535222709837280354958620219621681604534633372911340403740842875486543655858223297459295955905130069068267666930290633189656493841738296472415900681158000863611269853913273281017666381781708350697440377460736867122002737630413873062347813850216378155996149157088050609888477622299569839453121527709093219431071673695219512073586679980370025183876789531758369283229287302639100672565911269770829653303582222570013692492714537034941381858048618560807638807933291875302044493472964251443020786946241181462985985004230045015518718050743320172521730647988878706198397951376470769144020515907766990401695854387196499790299997151419964470324353210746526484799107574855183589154128283042252524909789358920599390163398279860056555665810733388403618416426946950202732392312560471869067415660844876567958048549057671292092702674788203258401461845163990005535921469580177770204340745139507479089558382673411782883803168650790654165550410041756120472132562322225984105270067721393292840404836942672094010814504438558367408101886927110914534498968019128351614103198344017409709390241202471396845745021867773141313585235224830182070228869038387097002033352437437312291084549380966194033014174570836399476229480274091563347520502018572666908745143748169038758422307445058486410538395279296637919364353713564745029987549519820549664005765597490225112455869391650205652042580994713202061344631322111952288291542655285073029497859755966930546795756686804584751144223643811925049186189361452499866520515972916566717314964512373782244563285690213529021186737105277460254487296740921145541578233003783130940958743383954920158709467878626845640066843153251778063700484639936381273506076860298384090436010766181104363710224466146635130305305730904578211531781991333544956653093614002498656873167937967308086629988661428857181456552246756436162198187237172079763217412777441876695486129724683070612545467315103659188994299827163748449911581486106550060717568770851236349374537638264347273144401806110828722111424218116918713184447909854559383360498680711908558545826152683355987235627129639468988549137099834870211888133629354572291226495277234647062237065911580452895968627259450467108635097439070978372749877334674501437738060424841883552781283308796574932786577670532369490771997028903405947343360028059368853689450817169846787943468783638705928201527509406097050839076050577650506684644209049436334992029066380153495093059428299401732691284043468781823307991070957867011401979122229879870442261437821591548896895424058866240641877068629475735614664606745726903366688147125842243138724700991550446371222109483444204603007823481549761752244696989801691934752474480875056859429390649097711549991443910973772545368456560525375385941902061948836554728500514220178086251460627271957511971268829833819477280756267127788005609302633357960411546780784358546723938291417575246842403589999243151395317335189950921325648530347932717865943422737987243022674533082628698378148976786261692591365891964522805000288291955442586867510208625666914798503279225477742663871349456153222981399191896989904020773932026667359609822787012657252814918367865979713835656856537136887901477187081083381511098954297837790466705437184000495044387542018680939115704672724522988773077268462262700482845153213935344006224481992938114129399817982235191352060867781705221166823009671295006590477846604601586972714724961071012875390636482805068109882666703272208960376221542811061831422749453982196229460603993318406367473458606175562113195918833904611455084731900155113940376822177932188143657176656762391906212012785124479308436529992760816658665211869403846159293516838901802632910145606616242667139046519369952828828456628547761698218659182515800519919755125930880565244167249857101038351945338020784902260883102856737489695454395966187923761820083389822233661986947629791726942060437686125866966513532557886817472373603945667250066858123362970781495804423655419185669906506140378361187925335004434018353782127686656672253879123146163553793088175447245111988095586541157282093192845394454204812437591344828954294349339281018943166537203050177908839507239343202385768624940100089751405747717405890641293911420447280817315058767447569303103748830431430471885410049857203193060436040377027382866147612915777175185182056355882333937443890499411241677520316569588453410057661001786965240335843035381755127526862021172517015494700366916196944296729341722588919199627382646558791022706694008889567815059269134835084526409230118992949832086210944665465462632425794103873290748832378996411697936336777000663327538994119319313347192121306062762770348337527182172177528092009016750721118991883649959345578921968708321514535676548174597869326566950530224873828461929638311088781654820026978883444896520769944356567212036735220022169547385701432337921457241488307741022606804611963255658407880077058491322253002365930840046653200367114300128851692836400036600624505304996014772190261459765843994361671127874689667252587312030389366422085882468084548476646112517957514637027376559036138858277480815545403588455930373732297314711998327326137594245081160321725409461812340407541264187810058688236557039410749029102845333604590399181490659996752707574563359932046656519829866593726462430336777795364800405954008129405730095282294400375749426158764446632939113120637274812978374866339835191684014435126972853124504909129488232964055529431209544179294450107611309257855609203105880541718638996704992931465044111065220395738167617032943158156137252829705327663496983277905417337436230020505155913878619267863153743653918237630521737054112637953073284070844792189978414597027235065147207512412774993463838880860182572934927115180355185531574317748891966000527161623087083991699965817004253237168325965055983238022728084270893880690380441228380922097823757456881650629858061508661966803935655572906671233448236548020577855823194893762149389737421153471984464375712377194959057430287015894079510322607310134463165990876195034216439355024777081571609179301576420484743654106776928666386767924962577653703519253724302427677306650346846298652539607731146531991782288357082935955690147832597810822249097882632338403943544245981028647832260607259017500711924456958025642696270105856865771954994937445281035433647035746232168435973668832039193231450541177866694453599523722875658899558237153627786805957379963995482575973466013459482147629678764341945219356089650512200507165071254110074318792246045143391819988471433310028221485020598548945141428118413427711502033299309438768766812406945899782980425941100648494589179125767997982330666335918419307805931516290978890048521220819932082691228871447536563567496190186433955005994713893947569906865555494662761633677203007135676237099802331203484106235521926777005582085483672369977391997828370061848672554168611473836669723142958101039112008185400139696655373309732682275260470937837629043097557007783996052498725334393700748511704034513448600093620562291614230069333753044135292588170033407620868020626879281754066839379532313753368348191522803653978607163116624962806597620324384477085491359988493709315125744207302170739184357827551155175213622114546835106643488784616207352106709399614992615269616078223909540677946088113290230584125872227248455287187041325679527675672154620833267382783777173477944565919190463991746351830854797750422121938379327513765978590712181730887321474053980068347841417518213841082903370289910526943012878264919640980211129447127336003918563114981698260866857313739987567909835069469450332114575879790265927469270190440188737074200403033686513168433246405336064139448814484364766559391757041859066251048128236487103810732151268579736565394400317480328428664703543533321733364701147507993084617441579533388217093352745302292381815327797674971828770261344497482682015912544254924070660503999530602966849828322501303707277183128256225275394889287041723805132774084295466213401876746199530103104401562353060747440980149560258554256708393786295275639278159175873505702671261352983323460725843878064560632438086843187290488451086225447557281132599434463628576968445998619350413296648144857202391007436314020276296338395962922457109652595422180861346248036537843857516090890193791643127894664872900007831911521546804853147551034102907400451981885271536946902047158604066772328484480046093789415868119917559940992896767221900755648999792808198706498842357909814274184288465559123606036139147730526797274012715722813114569697552863608823478660433086804247127952442309497918089339827812368505950891308444768380570319992624166144697106648650430290518903631174249426860057164790356677882830056293730077614985753003568504840749200151528915337496806821252879043511626426549644209378133952294729989979843064866859994244041844286139042839661816405143117009729934101226954422670885838173195930299028145454975100262647709876693190660358036362822373032562738161157698877734630724007968692224265392150081098848105611399704968604216049560265707126126912230382688866330032938353964754854740007866207127813404417616025142692321263616139085045567481247110169344892413061435554911971007584000194524017516761801972436524363301085204656287439797556689069637053753201574635428617090805630072282129491055249256872252059909731683090098309381454108010573568967935352322099712937179952415464147626532036618961444501481708136511314357021952252242420473136560929693204506071957105707863402699774586890423508730692472940637051465674931815188521136250039874784333830812936791511993619526122933321728614041826000015486097164075576907514144928543025690394484119873432208160521325715730223203456664787106778596524803143222318585767330741107139638487697333406344411384591595607785082148017155156168180981624815346937126608962746476950878441183351427921663133763578779896015537990686830116871525867822911342291944806634133115502594123454292680382495229541732115246928769941708999850143735735926785074488631956326710635066719621220802272662259042289910585825540324585780693258163272691520295567411481975067268488131766068420513870749729780191794786341594477717734240792854385619544694155543745162386234218455990841863922164216326574962138122960667879543931671928738827856058470708098637089043337916557084645287204393218634462664659291708446526840408840648906864712826934609140312208012380457722014429823948453023158999712036501405645666967865891530910547898112939066879625509794437838985530571490233103974867771219067826208795729826665702649081575979314501850745911231179013714240042295922940150927561439157945161577663591699064143849790649311750445481544953534447593983254666622157232318092478717884374950122003066133061103651540549612435404086983413395971057031524125741815038542514078318353272122592953215337615707482906070869369155167686454254757101542751035193198591025713947930601546843395796940616369707255247736187775415232798449164089473871172868673484815598198581651006933734436707425001016610603536925257968969178778800036463852045480888144323926227704021777902648985770730559769225765204703765105876592690425234743193892359272877499440204847236141541032918558902200960296941537360358566077368677732793299031155111036814905159357177439141207657399141553896334257560149839523321780672191805699631799668106615548845955836519148427734286862536791565824140942261410258796296339145747932639041701992709937693676428051469234325902449049032854533408155042651946761265902974401290596355382246852750429151036845409420685960661456420753065285295947892978335175030635840635593572311562050127053858902514265993657006985612003617830154011914203025001507259774663785204165524919849395007817211113278052912253971908967526949917098800368515336442440250160012112132769379732329434937868647333920485802517145823717202314619137084113431407030634298386480300879268367396342880284026452129875455841873893042769848388573792806342688134197319690958562511563569511150910340326922555394026968528994009942248132935748770782708349956094254221812612084831282123438880105734651803338351721286860445148628250401940333473385901658158778204220358150086196766192681490954777736281782864825420664251740811053469987298337747495125519411611948863387104359321157465353878752553427305094328017062890728377513991232406248303637194353566747146059637804480900618324546801713041855512392057031700859421922791554048426968036914882169668379650551187041661946150107263453689757520321200369106569253637021203195679719469901993938369230288430254524916709991266308406054429229440308253402423707793213534401655836680958429496215922537781397480773042844306217025855233406139258904464268393231861453488658215937886971758539349554556060280805311187863448237278559958715233843807385639929277758937974785404892185321236605963026219042334269258140276333189177216496397208200660918498115974873670625282046158852998720996527828451625675195999962585744409912730971631242333009866568968881095478594806412968468351257343942376235847163331983583922761744728265392508555028510220697254229268554904689442232340807050938833097705491721130928262601370062079682321686312099968810912803072987720308786894435027715382831402579445963069063341075984930069341164664019571306417873031362783182929837156745711480520737018951373056349156248659970810095045598276551008385743254739273418529019334806499616276379524630444465704303381281108786699856874769707359755021813843334852455506258747498564058615733978488608673432577630730111466806253251704050136246242056203899845302867350372461033395509166800269498036862767090908479599163792244800552634983855265177576742397743642740701369632806669711461771227282593236523215438687104291759766635611367167399156930481007750359952840585119179591238220568778287148386765125814293322775501105012205572840194748009674620075651164509919570598248091345258760174987852223073644974056371079589032643265203286765312161983080169762129469838073607999603242288776747007088838601136101072969404387247169086956544921666913496326556329295929732472959772090446950672944225114606150770492418605382110487134895893747811884575026429447274539510149452099509926537852634811440700443464793460896847919264970540899073776486848579392471366150138908697891810899210608251061380367707533264404351222976550934371208681030968494274455639532834955835813708936351010292335002639549556905356006271345225847008461004617759539477377836858403520324007625726878378313710296512672552504376336436805817764536321230967685781598187248175934450976059898135394284966561340872849037888632582289585758476539404135590658365786500290185789516055989440943554985202412552138767759659381531450726178790091682731567059583136926935974688135529657830499019778773715902490534848378657288654769899847492699073911259506484356352054809742831375991148568649905143968777456334647437448937588248149495392101748388364418863922126462315902014672236457720370055238330426158716463418130566129824142078559151673341058450251331256856027361019597566341768059606164624442106104963049199463115193855872958734909971904522381257893965915599371714107635632412050674720260012263122824138382024828673436792424208834108241904949301047809396633066561204659166642679603337389893299893828011098499139285714818879766463419664029312522862270638220723704775422008242194183841645669155598551930553580900194643327359550455171022792879051738100971220945461168957068666491815675945998810298094268772970225327117322236483023520095761672798407893382605501682535677614204075988930611627438433726377655326519829037715054932473747402061529200219236084199279279100141440492477829054003038249867009876975304058925369742008703114445175739923855535701790138551588237272536374010448751833399138933858006114219923676320770837022211606745634174099893109798831384989635862369787926754770810475756569717733379481003878186236770640555258955114715748914352091881084680754728689677442860661593968854202770051498656933192255091493007866552683029731230614176711738203095747871647831074579623053434994023914367328579301845961824062324955272437874798486037272348863413151904634786654433673778760744706657083907885531158511966235565983950058575790975188805541570469362634202194229563890948907528825722845939039853351983633697983149885501956771022607889757527801701390436782891888723907660124292984499268399631351700355422214303155808474121133554190864594973371948039678366584332740113739285448992238565933475210753249204239542798564279234397703731417644537570734726710803099435643826303857975837712875629662105780774842034485813665546256371525872087873130806387606439955072144855624666454582944030025403760215260275919543284395066320005209860772550949017794436719033513691176676893742037918132555310784714979998974147764811234449353760423824933437573605440058378425838762718590817598582511308540732911496061033727603055163469130851013591565511404370683548645467053989078711127731573896641801193676057063455755879741743843569881513410384022754704368322755990729803841417088886776329759023467443672218974943823544511511535264589899274355494785859819031733702917040272053136676122890655681309997186977249008954294278454565722576019150780981034918227283912290982382165197118601233702881045989617792970449204641372235602780821166498142774602330675396906394949789697492346253278643545382242607262901728894743003922490064528289750799698684491329207272672824911117791835255249577037562895833327470797503870356352885167164233088795775827380549101413742825121201656620564751743685725866946295308747321377458333918373780921904346242469672109010496448136095888106628487197872322475251156522114816135938253264559538225071223276578228479124937604942945166478715421484340108920663311365848367037641377604478698764412363409805630393771021584349558738478554370037803122589791572918841812886973666354813109941238740590733990367764535951623930933589465012554914724142800986244602057174034222741292010797142820634437255473270269008874277788567884976313022011280818977700745332833967839516784229093930976835669250812574055793024829416282477103724811962436971071779349141729316899878736283955307302552317254697924904767105933954759233173899766021737273514782062368243340672402301207339173876040275476741698304504113713019874577988368204986925751087779024953707656683127294533543880510394677132067174752243294412700641015638877833802651645122037835815060441738908402223101058446788591089911267623418947869855676109054569950491355743559334640073562370920751077935312894006410990094580918022031669450232776108463892631379331233603216955287867111068175854737963765003004636057192415765539302701749525057214474535940235265145940280119635759019707237079651044887569505046810144048474621403118861242675989095386166499511592016633105098776497873833035469509333718820403002881244162112324123916523595667027831931090067359293170852616473995925918261857124417684883832049981174080451256674851437067200335767397983445921282941847156938561691813745806293706517889325354600405592876682376860888381342007804854869125605188631824909578695222106884152821630969158333277265139789251337146692413103975593689680288762797128804943607540335047307318242574681988105864976085837537693079349967667255788816211541186934843080834439388486637933587831974785956520141243146090693214548599024584484059442424873275773094751916247742977307001440305928735658131941131473688435270589984700315900153083522300387078951971260714947959117389233224473851217235488944794872939175131356825174183586639505838365864198241492704667043205086701869244870231824334280404612382224863034597376551967615871385847362956227906496117834088117371979054004963639439451499573320132447165579621052648764358465854587323341165257387908645933077082034877893666517780511866642135936604757500491371767340453538293110154143659401554394211847550003729444456826732009217822711652248348681105906856792782562708283022494446801102385741156077186499873238561426355189142799907309399557366725067327362232350251198665693035768941415440431863014311304850642395206477199043773275173909726129106767736877828589256720328238506174065042319509998124344118514935043516581088298151490540644724654876744888791030116017366851240785038725616227195664440771174399519152535169819069589703677137015966917031150372977774538320000303312635516419882611317920450238975832019818245878702322489352711019606497135191654103792220154770718041092112950899601925469635098748884367745819522789689532905585209360104284256869962458087186445057617565126336239907021748707308016870715746788634465289391335781580523975437877139052085056123892955321848442429081576798153762326114301901402053769302592169878025119650078634932164972325665968179156827895623940952772961394222377205561152607563384628488663540848017273874475151785649989100175383974895899496103854070821451366308466100962381146972908822001837554980679557548799816366404294167005543011654934994839090215873280856806285469424318027747130565158384110340748752031112398732535771027633454251515400060645471193984823278494504828587653953759140811563639501016623090786714408356801172244339773819927709909672278989489353857425557029537049633541880224380665172677434378055261466693928342982838832172282840598405517465372736425734129111154892490027482887546107677267585280885855655373556705300299165498645611385610022078992807850313627679706758946330992613069613301542724920238676472338466448825620314557279623561148054231201123754563607932520029328459547349525496630926758082743990272990185833355077669015358404990335642627018253318531806144119806893259487099205596225232571458970510861767742789557251504760991778816146748293784098787507256819044901775825129673274329625480359827092360846986346242060131302049604902203890973657680022656744373439084189318873186602924005953701541868655495100644692241973156033862438843995743509962117830225022524034632137954731620586372884719672766442310540960184217793321027050755873627480614868750644780658383061708862871682077385762220615243528396155641784829550777230245444184471743101444993433314800083392489055397993972152650062753895610215850603565707524235634645447338738151020177453313425194330294983074855980793014905565233044096307366679103621513523686813562940542404689776020969276991797553726651599102994715389421462310806469973819685127443529906904370655597795521375586586124875511004342871087047051138169502877859070094139265463952151446177756430294209385372105866732573398464776254821445906937505226419781042585784491346795887356806219511952175544611292896770259948870983629284776843582105613711764609112627800548116359817255226385500256516629057509933557654290846675637208334899911104496595819616994602411145829083565609367391260808801987903751681828060349777671839441752951737227100522573404931522169306048463922318879677931958445786918157782814297228063504243716237250553371748183621745409538031219087676293914022277139422002669608708303216682317433321721788508528603876208794849861899159589503302584524455311208448570669709351184278104996388255076219608605135284269650671574637651923115349437453890409155470933907959161737037974752333407208538893790042725829020337193694479915281349790393460092760680815294937034578247094082535204818505202836098722644801994360420883707273259657116201778650571773970102850814039873670572470164462220985224986516156625600559303826653043887026321475617419701734935257408444410662044408660372341637325714295766524131508772389537909231168708797950151564516615020022536988827702446532183859773997571004598204713854348193934833790940396872343129409377382917965628470361406070420139050124119713855111235613548752582875056429276323953084229207872444338983069221703290325054521973189863980827417930885552858123661327571961448923320085622268144272144006290610083698620723361101095300417463094288603670808007278148166772749735059378666624081407183209821870574942506190442953667590573652305884076036779423371149462418679493822929444645244315760019978940495555018898542749908898034247151839135938124984368883864958138559412482131746882607232496396787417261756259220077229424700648633163796030633302077760689558831805998060711633707070390156854480298226958097803730626625723277350079420144181860939412762834801207440856384106769863367022532383812523843764058313330898770777518382536647620535289341158182630513743065608153791539250187723349431604377628575713477382390490758233654757812119384053741921293387476729433264328485393910180913043434620315495161269345669232313974869184144036231340992600373162168944245914381756773238383307715311657976459405528564714802747073948394219886623123925069454411833841088581928232202206506533108735540124164432772651337386324534682391352621856906163278143113848676111574864337266570083169720070279685442423143316186319532770057198129177304788139622844848306548820400118766950837607702733467445712565252785070378438962782440376925909623420140646046291507270280902721526655477371440716328482110431211313579295841061127863783087397222251379738170008357532660095235637995698160692970375848826816220761583467000884737212519109537631654466258839699649212855167308858312305014790093912298876651747723706209683830550649148750265282386066729237207779931337330577004160462297325700018684846766453912016234604785849489489403823281879228530827039259199927865341015851899068395611882782604934591885199128291945724521698702734920727235593083318646725312854583521691694180531050415126132321892574666665985470192799988901797960523583332109996268040384117657001854620072128841377359265499080658747348994872055415117780350834759730990731243705911025434275510871978100084779443743683228477494329746089582269177257576943818490831947395923237035520873971863998926405574693441730597416865740620465990231187196501609336713174558440922371077544863790273621356399206860437507946249708940902189890738236129006533131495959507050841958656181971301543583517852074400093673332854913073693970300248200580313974172785891729231628213431932584968925005638915105219610976130150484848444383954839590551631876947961056583898613833547784490330286640777426852151652656625608903629563490568807857243326146108415177107099664359373365054687807301228916841585113898996037543622652080480823214985758038409124923543481186353648532101250917775706529532057203162766195301746151497387257418860513575763170907474045138970144196169436797855970795100894116423135913976193062289842042261568059595865562337721933813597886262219873793135679622077330181707380643349887084680457502662234487881340424577401358586838325319651525223746316699425482664017448166609062172799747735341953819008270126760559613641016431851134369804743913249751137658036675637331720138621926329396313151287760443440307460362162545191119591531430402301792412245934496997370191107552988630985418127474895824165991486286218176475148123199079433043594829315307220241392304556134017594247219251381558739540632899236741428903229779255947305197128494564501458940442969115485375721785032765104329373329843583732328084226229948675921888014866359234469581597723769618231457337523589663930152559005518359404527438637860176963063691425075568790328642334130608496644901487064893397910286478722604300520579887843541109081503563096399111261085043934651160299413399875453763251502491744876219256643808053030712655839994555737467684147672610542580028119670756762463360579174904219334120277933106313646997641963184126086911908464275488646608480597314933709671706083774403644887109556535162681347778379148890169129219025003904546867425456769879733864334564418619367407937937291641407029835834563421637777731716296362958138023243060627762044401812628546887655404291362458602149557882514038193608483229381357099679444960381198964881756362479041871656854189111412579541651789942358238710685190456970987562101050824137153477302303419970229164407403869666323500722251791053452975973177074083043961504621861124062166156372214020352196156048368836614284660089500183224096249587072329051404661656128054922420477604768086610080449590201341619336463494445940468677136256004722774440997442178578531203658598645317412103467366066540976401111829083244682834590329379931691479048134450148111691284260478685630051584786156632893560994880237649132383562498380820563744690127342586445501620130153764523630380592783704837448475413615405541826373480356737206318685495003198812561013296200038694711399034322161003730730104913501488990933500217132771657188536483291318278188559329838013820757979031466003883352223163499737371018185539124808515431779650471280712641758325331927532272826431266379994547842101494586244529907055958431369827350145809380617966581078583218454392734417481233088014070961120406751131803101847784491158767652311833996426259926856372877747182307993493453722848675499785709355693441568225358036529027967887710709168120654735856228342365901930602020065785919647103989072028092952065696757041630026954007705338451396144249175470029628389534316103963594341668907725791802655973291568748633302615199023177368772602332636706180954345523552741361927201720230616498119718697284105530068439800404050502819227656659347728793084431647709802907698027094775891641954649211892339388695684675683544658369176868787142299526698402363792309848367186946247446267822076320580877406747317379948128813134925362641105837656786078381636153920602132462720744141972040112316364637712931320335904281369443327922380883640480675391071644122138303024985505778648502070422560123629813256063470862524006407182414360227384894441451397926257723581112670068366833109342502248439155193731510887292069819990963814845158363149367987505430869016498796431366389156216572742953014840847992130534166929504938872403764029434084033902373216680748900982403437550486643292646603639045035508338866557553387980951315030834385957498106251365039512081979946781090363142320456162043211309700617839227756770268157069638116983602942701495001889451097673041584192760933929481272743337051382806601110921906149614266539807296608148551504265591461473668154417736951325928478344780169397960955936952360573708827726834849012959161980321540356444512602084790883254260635080307892268937199987307217477791498360500689945827644905967153535524527121499689678041843642090696967229522793840572577895530848069308479511831534373849321880468011439416081457864356209872102179980566913030069874636361493093241531574448836429309946801904807393164434017184923051935832697796379998132339504950062405346857217543889518015649156808406899775829249563156848310694281559364041622472040353267131398108811008802770783264610057039663853388513098246723983545145826377293326007579909947760570236513979802575904256529470465438600360475234924418982467872274726247482888816554228752585942347776831340879273280763396588745457113270268267112314356361765922094067328534104450532274259865848412806201897658908680504905877160582894905882409980231514255792740429722440512815827440544889733727300587050429218674539370625623724093314963396907721451119124159739990285377707814991386693995782807800929254180898178984342787819424254913291547581270722481848581555371229736870950848017876855878339564089061891329162594605675604762415694767062184867055536846590157903092920923877101449783435572931609478137147556721909615145381261095323513215938280588517809147277637951774466688517691670372488404250611919270171327173846918235386107172682630271026006076933758952105262222896747774349953483690734891328982043508558612002899414804137480240714228389360568575271117014366180750815811270868476703013149226767624904075127420883632499129397943015776240157695720152949742072563977618186833896704948307504513740369787507622079195494901958726467359824423753945556278806095996085345057691516942000684854170873602283192882978196645187526853058056945367063590172023344703713365056042295179892408080979664251988457811066682241543889555331750749232292454494844737882468570982792967556540812263410029491883125179431652737619210156022595069973310760385691501533010545663335967177431099617166381666095100618726503350431288339005831074838417000746907984128824118356319981584868289914027268921061347357978009489547112270143938436137943214253112041723350916224102873115933753704398868916494791921569353919879521207410842572792047298329950116535299065695564195437490991691869805556771922998571356364814818992579300990701671090341353150251574009541489196945303073512890943953043929638336721067352291622255515515472317400876805594590121176490509372892714912591386853759342305438116226561461490971455359051665712694182134358583986042665178321555478183151251628769628843851886850015442294155658425978603589590844951435007662713205073619820789944304172864684931529232772777707268973831589921876510487183625106102203580904796945094934199416723474916804609677594744728461237615575720392216475309588057180733611507574059800874298006281470242253768881153852807034500499026178555828233956427639842156804444307130742737337802557814599620068429512363756749795384192419630605857238302720872547085934729438397153624536817623736731867240839414118937327409451390001348892360963281104221851250063984315207194899153203952483004272600208835005739246986469303091334799226873949208776508257447641629734135464740142828276392544859490927613180805772756857710366225411748975974793856337963753830852143247434349880986864142848033844520438923683496199565660901526993714130217553493226034583786849789717547252110951743359893057519975345655333410328961427586102414893423926867733478788152907901013292763230994083601212890274796301249421698830021903596581314348170290883640872645418588586305230651817235144557344475691194328963843456607456798962103353228670531621024038199958093247599441750035703947503486759794326218558589879011248335853229215139377805610812676883576868050583775419255554840160732356115440038968598494830527255672471991755439664505848413367620617121605900969579414343437681749303771363384703123251391518552195111408559775007032969474941285336901403507744722315954568142944625465338943699322896992511985415192951034926374880681170672481922375174531417115927604627183477688646537497494951828616120363191939017086425385184193198445183875566646131519935881304722771094771128359128983101438586768151785033136885113680020620561607425560183644169068363968722354463545808972112447569366592809334950227597361822296697344559743350398144846417002130647198296996507626485798464316659155743291614619622922876687840871666757337745253375516431264879926117589918227190895889491004840388392100794108695987414873440500805234537915084900848509940277288989046645205236274495463905554043710293005459210097953261622548768375967568752735519256575492743052724536405593969057378314872077110675286522895949517935851436406570724156671365248159596761631245429318044467911741570076316950653155186352142402038602054274348914812336041897499136488667630306069732179034765822300263732151172977683993771208581933521459562422998311513437724682077252025263860733375410726661864699201491534714962795971984938992460678229076487874887485913244546448035625806009396537381686308497410813791341088659836669651306576465565426847136275372365346668947639765950343507471914759580958564702743981784224786265982789134418957348959737298225258241751715393876518732909183957334908136628146972056997969810928680824732515429660766448327517866656421232006406313907603842237389101280437727507380099846599561788586563214053182824638396675088578875225166913704074324197365336154586438965465678163166282550591354525740342997618982612574119372141678950887681524187912258582273055704471568283747308206546536937811064560222456193128895006629499583202931775590367049500434962893633715136229518411237513705018827713749117053988373782129487373630375717372627072706274962843210107428591644548182210901865653494544456634239188775175905280427411272450569765329450526782674453940070049077156468626158853595393775465332017618156353570929711677470389060799444163183731083214875841925223680068383373837019342056965218051933607004613956667737216361502694856739698666373280418175916463095741557427492029167362949084513782378948743106922383346957684445004464151958058633136590735625910141369983433057893742579407098694185767224701857465636716563710197563202080026475408185023174070822184919192081876322308939262844972677098166019671685527345074992197308119172197104836798276021519341299843514548938909569648329995589579018500412504682031063716599773116152955612689574545656710109856463942299239873551015051059803854486787863276319911273439788614714100876010743628656879679882497412306608647082444247206161266596879512917575323244406273332925561910319796931263690337443668012982775944043236474308761516446764345552014562660803539798511690161927189652309374279955385665257555121329954877740241250940990327146622371302229249971139849779442493617432463141418598510772867177662065887468403980662520813205024582001365744540046253606650453519344656120494747609907366178266055547754089722100450616649659972877632964864786964368978673234647943881757874535395888687127435270185519464180042809466797505185705064383308148739214617741653820200476389942648436709451968370010292455325553908512757180088890491725693698154106287918887885206380062901282230787627766331089576950489240146580017476912099568582738014680737559315609696378377968355216597636988732861252175285969104189831684249473765663834693857023749197593106456582541157448500558791695625798548225755384774081869889762149110199381264262663065936237338711390009888258284492397280846315139530617542559051806340514745484105540070094634472051849343685932037763250594181567458864822110826602835007828519833074928958642719017628255120315503979359614265462771234613630725739470981678069529030206685910316883859902257067775193750328285913080285515071062214180207239668025888304549602758945326795009595818969005679894684236529104646571404745534483236497526945689178533953551727454827909888020798205090000087322917459579910377109543046687839989697749710824073937968688826046174438151529928913412683011125155446767240616052512910740479316699225109572266933388811830111783497913857913318849989794679521245023962031771483566586109900125731319672703939476819292681731846644118014302825715851453705802095670520526580128323658959435779241966985231418733078771353397671082196326282803961064896591523752475626412490770869156715090882471955400010781540328156296516508062573405159663252525197679144081422758173947939510455708716385965322912189494864978744687440583775497430324692482605929244071357354559910764637256478918783197599186591442142062583539449179689987775303103343193486292077545711806846441790445081128145230240670841808333901220710645567434936534383812989344818048040208522057915043301276941397376166524639514482437062830552440666152216590475630540756337888057789013145481207189196348774807869764774631264103371987948941701265072804303922662844026470061569527080901904625530562975251663020756213632087618003471998155372467526892606915095341271623364962637666148343517487731110664874804530973154168300925711456387528252598307707696350847219498426500807235571302910322749691528204335114360803032338170189412747096064186145952785150463952322240572058840210366287857570961140664254724227977186576446209682592863551137257552262157156131513787608445105803586288503882031190662077695132421653712797131679807008210783590083048876119331249567451226771334330205930694193875562990613919363057867388692128440978219894532978121244713567179534954646716152268509938707319664832406020744890478845768708188990654395563160405688932239093508804253136785804098410391215221897648221787381705491565664294046428606902332943920643980570638099763066674087967954360190181062800839781538576660315684596896173327520888275003470221764458854141573201756395303650381861142350916014615093328424249911991068939849168021356414066348744127541095062204662121723483350440819823497297480703334860941136353481365977587739616152556984758827933712972656474958234085463874156634066878633056143612392456452764309652619432109746381033904261863891947608353459041647583577640327545283766446578931517635793194162412826295085386853540960915913811565553613687424772810478175873400879755039300231168202077113482818394299792571530003781964017340973527972014841637153921711877453713858621636943609836059804618162103733927453638646836263969795927547632824766117811702750052768195155292449412654676205054477104070245686070592721877866340614738793769390007850750113585438813717752952487636830674213602228236381155853418485056769238404998285896088823852611840097613508818147637542477225764033989431487477957072200346498992914994038807903564740777241827623693445992100777265741127536569530107044496623749329074310461559513236226954045910621212571177338334413307949328816479032830298599942277373724614842760563544637819313456975562507066068430062476761719536286066133334982534466771564234566787123343139356996320878614997856808637633109645980004947547252627385719000614564486087058419219683433833495267929504689637660592325869003257733870849348858379451986125756386517647957649267471132146704985726323072488480813854163359828006375814702932229144790410882974157128216027805485208866024602316970136509914555028956402957614887513857663435245055813785345661230895929614868361446532356963105001661273019185873922840721073192272709389004026089069409929636438829547781100059368189178868573169767644154524603828393113877933929319543042818493844390933651600117892280308314029630660872403532490975066114147669663879427810825017964854899956078943635366744782554914836759327729340330616881147161356182309480819356708940574076152774094889202108679035406383321483589416982863781362080715935440784108403021084630632068920678922515648673946684880610151397074489780603502744522457945125984686558214566316549427557449703918827812960903137376771780148619462187094944615367636839440698608737976911574700652720731859963889601659409226051245097565653704880517159111300310144139314584119292609397696144696459823377643545856333997343668220435084817389678081948370726685984288571983896727535401026263468014158654767028522731945825474080998678664524530569168310299970075788667414284282995436025197389911397380350170378768646991087410915270422295228293242180819703177336202525032769316684185804698297000000524673602076754214720345116753936275284200385890023098292630842610335594113719479688565213883611665888491137681278137475270072376865568122671811722145607653640986573033134780289677588829061556002765907851003980913445232795298749765546777010999252670581952630070231790051166162827219229104896245926486873315212416842407325269144662187254234221888198391703069198500115634184715946091111282673155952466699643928770363328652993913538185421705480559332401860620499890771939781300834838351349679965240208073120473385180554056319746564606943304273927793111618398995165604025233470633185022994639223042667368277066101148105084381084759989533502459127278900671487423216025761224612153269749343194783747696945663218046452831669898415244737912915597652332017992874393273591349385631803073185291334244001773913086172092225684490890359473608874744649839278655373139959739259965510018088360734736065436704669476193188943275216123959462564639982726561041144800294752306088991822939905806518695927401978055881711501996121203160584456520275612550511850432822660723417415390510395467551305634113142969476703036347538430418154980727002669935010903461329186592764543773094401642612627431776577703486394581852969985336638123318004778503378977720033917222485417246436394185611200803609482644714338771471036232415395850248368402879091332373866212907392322715002066053353060737784877826331172678369972419820893518966363914649310830645809342722355931678091966801209410298235089389409145129514958663103385354497932624480724869489508759687869985641433197886589532424566409485375847995922497734569477917755570570275021677743401512687289607074237886599157647635815598613820831645404525263727826203195281729162780629607921137453522846644709619637008015397434291871404581242554363589719808407659114576542219778799523000459506812423330579043750461787052904795037458542216424459501161100482759777023519339228975694539704839332752774347033370534100385852326154722147640715602339272177722844652464939167416241203625280118014313816086049887158976678768635317478352421110202033759739207987457780569321268765477212768415388311327921963796689219879215350753043751915279719230974566813816472144043841313854031298504289270060881336207437583247477711246971832636334701346743780837614211552570667382837031496683000712551657699925612732110069018768153154261211130591757187164711626812671991444264364898628828223466157018913385096957853075250197294404137776585788068439631880071009780917540256956732818230409319634459786390659970077055832562038702387188277505216831198551752792600123975607818708910375655807305209131096417595563165430181662021086802892537740200060623591924721777942382314099277271844083855135945070460870570842787949192495175061368726378582770548331854066235924951603671543219887376746818884020502620809320237443855923333799370780306344023405936921303374115593537045606388504409217125751463774476118473683905285603924860432768333676681896505069823094852732178570122398312375322904704366145690748989024512908884951548777736691797881859224248743293950662917512937919076030897612602710022451661128262541789514316726419845589211593278990119277827859830333916319237974421915289857831342054276553224179522809186735285045499734958712938116910696298502545299284887067412685366351560149464499179632008100331381096317942099262335515199480744382105550373468493863577246498822428623085302298158355957396176815704965884444911695157435285163187114040648683835878479786591218420424246673921490515373986002904010606434147390767580512659275332040872786176779593268947151862515103839331305231716994191452694863734733559769773688063556289410305458790268297632435617919849897029156060312436661823080231394096540577293747669507690481823865163882508355271543055331138408953159593333368490147732500242467644581973806570289978350388092470486991438697098339461174846151070976802482660464355464119231301823032462887723949640575388661542072449474734164033803272310241539259788429554449638575716487719503789851439354938627566299391535136253948655638597311553751636728321747771276507612550525866589908244912536912915682554457513046354139615288450527327980027524082557357479248864549854389720725595251230831540585795442306679215715905340028871797363030884278564103645718482748748673360434279337461536695029195759721015032643226482295090968581204068955440631061083133575453392563836625182092483071532939890341768613713798225556653218430364675974238924260269336589581800284787249355213715942545165014851963211509778463347993582869682077397332697973610637900260174830760767422675053899419146232248534100798266392383445589802383746773582346077494161070397719204365248025532444855673874528046410459436898036104462818724077183749171454486074094730790722154531646937434338019245674267790207810229540707672403167769963332285741697255803197682636947295723028057134520210055031739224602197005526786073761875132433831198268510883553154554685207894556493118591184372770679646975991383999614823180543590832990583847647560244006414627203144074691352624410254075141427122889738134739370528469742821276780513436169622493152084010057123308763386045213575053201532484057545086341931740079932846420476341383554636637147141939857688936474801115281879939007959848372944974682142704854728247215456658275423292931933661508029415884911996531756263951612743655309745088859635877939829939213400761758565962771850668522726395235823418412686120569165153865392322364729371492456548442814417443090903719559389598384506911541849161329782911924528709395400638133240853092175983986399166726121500102376958622513115535391891430105665549477239101139552127700152501733995364761810049796472651761107907046512848413112572910103232007638946314856015869134863000985092013451593211586954157479847569082223908695818141581377107628397213951661146266070926939486019651680731290788593810428240320991166915510813049447650603395892686173446776910774193879902135774197976313137412341999235090441957990658804899040499004152036912962157011862321617692018318851016964250723886999598177151267518573677531163068767790888813354056406703225045696782012935601252429615752598723999956720845204371022311812163523927135020264256275818799052006944467717814131844422529140351074425432927615740064826790907622865259103220138725277771717222656675395706280692730696342885072486966838387543280018884968136130897735418381688640030414651419384139022214851258312995761719578809368711263629026169979413054624929360798864128347510422850137246247745170659727832577569454405688174296790626223259334604838215698949295009644744887459881259402704381399506906862373634489550129884954222436813987847221898961592824203086807859898599504601467104176586973428680583956316005821481268635004205764389806683564106059018956029190276415024211775183565691166599715678264905467368772730113693115412534200966442866822073325091581347679407754029582351812904394960834993510887991442528322059873973150767577670794501713573859650214482911681793900292940297506757488641984329337566595148936622427864017668157574457008715190936451426572710617199740435777568749810706261544789261146211136964663093556660212603727240739866233969120078705784338160647189519062553009461014588642505702856795388008268631594889993501125964494817849860246879156032315436864450528769476506361132737981484226173790824209259418871685102801718791615849216773609056012662320728773647729065685372859115739786843896992909921669162049161009106919887437331153076570545656074703940385209729391814487845954350124992362776686966286148761659440497340014904381384638047954266055666164293391324804050669573860306275847927403980535963767010967326041740126679265147319275311026662908146751559283932963812704522710306429939449133949577843266659659120407778805056641434321697422242579306031892831948103577548566842416164503681740455476605775778157755200003744253980836907091107569092619687378201372361072631517596544822447038229025583525677968951790194108559276975638778749315021046675401180092546998040800373657091725286801866995767080745101444300048413772370258279985472821018757445823071394126482326371251388133347170714322312385643267640338700879434467187545421211065914270072181258101482907294551765900825956608160162575312569570776185171979751994598935445619780321021376278863742897040767619616999825368994191301988109826704061583372550988441978610394088118372507809914121178652275391416136686563833713219115228243968496214752050553196943715322717932294643535875018862440786519395332021145442011941598851367447595259970044759321854230542937217716353902312629568018863442599044414611334222361870655798594992607132934220546362938813914120775738703446660679109729481657626162184806958202567382018846412830330348486976188574740424497132801857994691016442015324410345809552466458528157826960066316545241113180672430263528945816019097691174862379151479380474487466306192869027632980315348862806917387166666674151956150572402908399293090017967845749159286515040107083205396692428452938228963569824977093974651660308826936369479482018036721851076633331157057102581793853940546592967863512193391264248384299329148131697352740954464133188985348006707256357632464509000048945899808815523990089404095981714992071389078091888087553913051638248858943793888124572212479812301918501147263932608889407053401871012020729518814820808231161772413586414881353177192810160681159060876894135262213778430732411741441524253749422951550769287380092206360701068506015914387554187493597330282379808498122992240691128698020312246001025477456915434322784860580508559380636845288532192937025092798035328412895260884515674113783818797208787659654456155653752013239069070263240424770175291687058859523794230764833095749697445068595095873470454993768130594074855182844541085808144126745664519163082353398977603373784610098745505001686761711414339833452551359654521781944923889963422129682330755016776408862338381102960589392224420873266923264654403470063789342686017115898801335628454485692463033157006013004661437735783839204113482862210609708837492918807489844514422797858260450656751226098798720510302194833691360535220653211439035227497212561701503315538756220995306084090893120269881290379725919933060998037239592359867995127879898668196337366096172763793923177887760660880388238493998114664979725804637052640369351265452851668004646458737755891056021684665137083477239953235740410082346926745914444139309887684927444536740529151279515103591504874308709707317869568725411243636197826520441341021834624723386785474916868685795589942562518356957287781371518107686800214899122481545949392295499227207312962500315599087932273043898749851470341848160635985489997807238502938175532394900360451357823650220249843417210140620866250636676346002169608084745359226128403733830272066601519084742627870440213331498987615969031322171494989003975678970354411940255261109467961089049707500598320414937180702991298081418364053165051767399489317055836983083988715115773537144961507924891348672369980906971299061968248361242211801789210540508300253163462544220968444372800577981441174032988209073141495715556465727953037156511652184018456803790585037902219188500567370290484783461596423115083579276360299213588806425683646920706884662387780601254178404459502302395255609775735626382962678615289268672664835030870992221067140449214358070114178602747082772783193455161411819262332634750592802759388626509643641407047195763957781811271859957411098198164732508609132886702885597724820685753054024370938301590738817439382869212211920564874821920438092845450718411694694875864092482359596817888750491149180747575598261241555081107512455489556960403394115772931057143370878927874855691751912678660035335229619740605815022404572856682270009684951787866705214517229041444626026479949699076524753179440205592483879108045497286088841411154589875400948154163411272577531771059684826794439410050023873275583105756357654914059704241346886654793624616074025465054504451954015314017159507917834135504674118319572166679130929264915114138298843160245131133847072967335640629915266071968900971183553406933815153999858401565794335482198058987718977620329835487478768723052838768336110030015791401869667418817673914588101988718747380004406097814359674882703376933939775733298436899954915085808859645564060813358734014292870417392852957653335237341033908918023362047959489947205787320431025562950510321092702845914255137443944943550250979325084543248815419829925296018175870699231498960652603057508551514682561364562827700323178683156956736679591490655141551793984915310294614976824915937571598992886995171016103470753762913713886914794289550084210323083761390954772415923788991036515567686969771827286322614512310646153963825836699567094589797801462755358652174613550536227539850629401531900844064178005435225466660029452108230954558062166477817937337626045850014968804477694789703167124190945574129225630500646759711911633066343502364539793381167234843965442003851015018639417631861603596149179747261892815010927663182723791824584895950955869848035532138755683468978016463222593199107937373309430665419702298050895749562453663792598603490950743601488912703018497207743117232000246998796794543855770830358782696114584688718559235251794403394435040268970445590983586684785985535088391731909981868765271719753082033218720374646872018944368429843594733283294195140258062897753231056000857379362732667566988901538629355135701456114461222923998255730890696612539170989705710056087762478192459305544130941988194520682478142011094536691174198010877287234532032930862356897428006768373174857241343098402372707504967129238320984657644068491892812157440650044361219978365867085500225312417803332307993007137273143051283578722061892093072392597456049321132323722612814158124817974374743861922685206242496365183057525100426614070632630983819555800298679503044514383268207147469914940494056759457202355332623525303537479595058423507095774137483935003429138816164768790372422781212293685638017189706024618015057841667093157534654267037665630317978646147449193724508199921290527129863020965164293328153433376380402290648643372300853180887788824792141963179976700371950232432082543532961124213396340980770072868604200685439683073156379194444065456663617689208070821489296379132271308157955977903029497680320144490733646887222991139696325911459392795030204087601318107897448473354466490437885863620463006002415103431183768606179644533035892731256268572585448751471668630394153098931328064655574034101261370924179096621396787804697453403501381666500623064583380963687740958675970332912375751034441797285033981483172469497626333886726986751562255385787223154951118879566743823483495484667130365634975514766794977014867794023809177528507594733718193537983732795524255820523679246897724619335470746526544329979352446522301442531622732187274660919390313045279217654209176927443243812529647350458266161134385836974194953723318099896216642084225248726051416200524255348386127111173208398873003622315432405031577800012751864738160533519438116665300520589512037633431132531707724040821029902193966515881764447693194361311388890668279939772893754437069300854143639783832456758226015628276927470426064324513591455181326225207348625721522874796594350942683654565594365721911331615901933560125207087330450041029197677497954035767330805528622563576129045331499429235754840329603563504537921791281994772303352152506156859367263769633717631368649805905140479699895123191114460113238289120317155806120775562788061188530011230297526409451606160327367746100799943729171818577458703275432251832791469587588568084342721028325405662961819591785433971505407911035042948197524190266411348138859574471762222970069392807111498727749853960932132289886980061532518214947182905075947535905489411616117396944175923831466850599889169222534447158448664186363758932394646293282250615687849359133540599411113466426173037791859892484397181203715110165631096184371430593575973392828800153569157424331610499951163812532097638252151598760133494145347968555823670938305428268872396914883883912786299121289897014183900616114245265815379242641746765534894417949363401269089480233051572711013617801304865389614353155193700867947011835757951754482061226520149487689811553096693774620260546339188397264531949433358255844263174502431505415429011661778678945618843018663989604472267209137196001630995900767385254730091320011744768853176311705079860700188218865039448048156510725420543174678433064081358716231442003147833134125066952146114457757776517622969614673220116554587099134652663441764697142642865721453024223220896794446575211485642582711724015474377305863094650450954387784981731612265135826546612980406741201757647867345260174826712247306371069436291132030977465233779007645515519086004069582474564667590184078893078701195054888442211178634457607934391105094395445127908895836497391690277583270913510679050341207441998063339489202954668926514290151980895651265250852429910627466835664660644098744981141170630786613569509505680160891211987716869255154175955362254207101952831606146641259256497681391908237888326159584722365826101862526136824523228887755177808333523043891255918500558261925031002787718914510761375648757359513648885277473701308215254383325656627998134715170828429244484574260518926295258182531471664279505107369442321596091625875587954268420567003610576700938327755420082317940379022498620741375796206648152197861010171985662985761251440182916365644764571877335789769513038754454861182193011032258619421802718380834899137601836439883968416180622374040458044902852355364616611760379286863197959622857440045619595928399074631356010938548743223446800410535486539563454630305687864190674874103953880398343889134753933622046158764601532115368906568144601637934735977911465819254446094349649664114551048131409697156058691551004587826462041348740546221550065900227647920620116239497544930008425456575345798749745989994555877147435732440958118843315365482281424197041120638416984050927628013637570502421358357332214279050615804743340452905980001879888597009711800503251026051395601509741306666272799018518990135863003916203784112923107382698447254072151944983379457120550197612401082070671167391960761887339502459363549220116524070033811079258243744312803146305932239835661140230175888790386684235443278207117337703986985532008810796090378151592737736938017246381814855685556421423665168860783739172563087711124255717321982682974648213177546055294340276261562973440307252415996540108782441611223076686163741423079788818317850063823977583601907388971996637401177022471218258520129142857926027831859179818323833487610099150760773120538138032247913049944788501865709663047106056243061219970368354349254065048207640135481391232288572687883204498759138446271739767905722340701264378670249551009045850931828259758349635247719720072444636385571188155898894142718939897983379373634918677152304575781587127443846965873956769685455477052376672107910602324101092765365323305302367552868857003125888905577791275227870855217459660088112486834841451754290546334240976121659505195726241573498912281882600194298424718468603321853103811491481494541303611513351170785242111772229380512997213912385718807902035220512612331737306780830064405170428162170400093614320402866819708003097791248026318327503692124430007026138295162759450005285925501766132949994683712953202686726881177844606649421625841886991199592972558924821003390148102978915680113250852852042275401961201600053632772884065606896429138821452715283502598703672469965465908055019982368061998961472640456335001632334900605945346236089046298513495440249580312250633990021042162348345215163662366376130707415365435571339671570596673594491421551778689620309231576569465108799048630568494477026014744139222575531538427415386000167796889656751828718046843287724109098313697529783112200936050147613512029049503506332444243300753323736614448670398973361387157556781354140625161584516488415068944803008693097333106459600761964883391098189926957366879793211088934894826664135062789811113525086911232936186349631366888442519611081383027562449304227753657152685474090209110236744620875656723116160649521084945236608578297027145736578373855248605890641401484836536894272260177916803651670888640175799781992191767324749665121020953719306327188011406081080830236375147315069705620667785822456747323954112891408912547915463406486317690636114679992359278421093812251568176935814073433314205291553236205409772313153755444888167427809161560283710607603082588157131337050329926004537204347587025419627492058522511663213637896110202678216079678364723838314021215329818150305979858026125001645696319140124863834803998316455461025756160937295846856843321854229292994293759268109367602549111565585675626035840981421895263385162976441890041931548054621296968566750387338386300340750375073058442666270975877343549740629601406630656333390684542231099534677443538899134100030253154280753581733512556858490635324838731107865651939313747591006252722642243569512175569485002837564721950281171936945302641340412596288827245268794326177336945579357896795045463685297137328796353285660656926160425923474914210869002667024621067581075250291539583933302061762438626387957009446094354148796249926032803308860324259925833250594830771285632464833401866805695213521280734554200705562700101683629405662442271045930457979662988609936746651042863078982204565936633812276503078647765995264377891280909930752989786996503608677871988112343666035897445775767904698864810525878277623824664019815404453182409851818531310366256310887991367823708937109432994598622501715596009863626743972555405562483237156530898759734014420488708726950716642794234190574839194633987596597458039560762841006947944083068624944349992975327892149970783764329032163591209134518448330226774923720383548533808231654037169973213382617051477110475744655184446653569031911251675863311109367725789118532000954039913238996944900949769532810260526216989645139093292427972821688628901725803314318941627290535256519236991727877672485448519365032020150000984215744665170363013975249533245628472373749124724196121925891058351909455498577757531722092146827544426713287727012703924967527340976867500779201990555048542474237550760606641580442462699409490624834121064715129849278424893474119439859413123401888775066561236957702308197638903835532770886982033823206836830076524910463348202860643859161722905110037834953417468473813036061290109011724253508407983078475443239226047298143083294245838886469860883616382335656543137901953488190558865742200417334367150652431865210214569080875472622493609246750884895177815400574596309708081862148731383867873240877657590420885403806808680650971408370809713992027072897278846819746176714181123895704456176985665501508924800368138507963818995195164368212144558584315148149626676589470605843116525098737940562853558672599690459042357338656152775471503965775701967540862323393953198430821345310065122146710961714471005819669028374245927663912774431107963225188956670644546384861853885284410656695196645593764870502692703583489802690293925129991741021213169304114869697195356814595592757994363330110473568636285911186630817359728860664830787766888787679049057887820097808491170686900365187606824982487451445566404499948879897433276999639722692451664816612506146114460883663471448286976309644179319298724225221387258294404164702712811746613942324327887873024371744328091235867382906388469404633754837437565407668842898540265593748389611364238936399467502889571675422860724080226381047417066333774266316272192609671640895656379751131852268650845707013256719997430963803959769408477093733159782090286940517218362301993697808546469401003287858484752823744835991275358849145220702930057969196920823341013391489062621467078867987383397807241552372295454466463610720299492412568945000023250521143861964373110938243309585533935394046872499214706242037223410168236225490904759418310686871554581228314715670827850838562597286661927134418010648578858072202785500365220555618531302548079537424502933508909907676232247888345990954273491190624936601258160396764972210832207087282816983229774702211181566828169819585166177345393358570712834025298263348469273512469284719543681174729494848678163912158944933534150791440188345043245416832791857895961516620333335275311542559759883303563299324434152759221672107511648681472437490978070042331648444116911090162104680171531375817416624670042993072119249374829406867636614243531247979611396338544500826376974403197136688695919453952495379602397492397812489786692038543516687954011971860297442593665545333442346635337035059267241035591757133419626492045298548516403319605373958961456334457409948057657355708157646722100994856469017843382216266270409511076622258706106960188031248834068539805741378852026714146575363755425303477225356578264575551385151307715930457194398430882312776455256081573519699716057954973637117294034540636528517259541372186531229913733705411896982794650639601739591005438316319772058578035593360296745436642706813719221424009704882009958677126574052615351698001789981519822082436291041804227826116064048115702855534059400530532117196104577606995930592321483112516988744116374048545759646714170577951540902859039287804748552107627971399528859080897936465432409784134302960618342538159715281259602993272108843353703399964455886611038102146256898137740302385152854526696767647648925727225325344086185619445931601877124105263856421611228562027118286853057489752610374295378297251652084950675025664248361435677462266087545090670086141401511359023274702100366405561532451781621724531796671831443815416651876404236150058199576144090497957014236195459680592392183109270114145187841012996536837061446974423325674028076354296033140155253045892669746757782107575246366166746891052164121583440033011814860283687164934083534565377689075547264847131564327093904243760500688900638656616819027350073740035691217472668832451032511448048804213453917501702511563115083994087576158957424396572852424418358031723051022727489540459183201717227017894043664354527790418038943926866000785887404993526898177872345563212853708168538477467537615472557294431379263803790844921164633251314805057848391543643104253495738486305392333552789252290241046908057831916124691576309089469844964420360054581338118150340474692444219155276571513594325056804109492816738805046255687928687278319290539891190631666090746845484421030437039151129492316403680913647696815458006375940892292120162053673988026486214936324648932939782957196512508765213914390193997760543006847675348801041047620939136441990751054443993647248222538386960520089704062861929220470266817304501910632163762749690885848706074074354461965168768488483993662341314095181097516899574851337263393361884485407078616718359160978617427302313855704324951482662805624033403102742535926524594731814703290883562708595231997178652078291411553343263209914429239343045651617078002649514151974142440378622733750386690541689667817855655816895451190263201738661348298620250691824712594733498775257184761919582024613282530807705682081093352353480323858145145868987201463648486858023699152978416390137212507203041815620978426311705619163947452819694290197567974296201424050642514413644643825938691499366441497798085317703922437079654738633552656456837966220212520410378962365079773358557591998274546187935383465825966133595695344984317953513900538410227253362033468156961724698188116766040586889230109258172643705434363416027113998482136361064478551401358257610448061377871953918335542980641159974165926253765368450828076102155512529334061447897888204089167669985780548559185811628713907074323391957110596224792671577692988362455025489690029003657470516644918449575566989793179773840617697248779948044198191067201043187593745601566203663037222508207014549913007025169275128558125377926790508018215487170793353706274682825652967907078568449828589169381610806085031148484501220407545641057981949804530400709981316961457868266962578797325711896201780325602060716870075058661323016365537203525592244545541800924810544604103435531619967932156991686793056186183386134438763444369018977921001537611188858964318644148573969858810795433610310358884086665259311836091157529661931848040529707742188621525385481532568195389865236564934458678858035423090743107150032676237097421181542005404914746292437736119112648404633964151491057368036732957100795384162707156441296796019186250398812186136164273615987634719225382539397947505803285130000079300765777494641926279101688540842911802714938779131618335478041627304036165134292916207824555697196297656115174056529809964411596586837281930604097381270605044140342272278543928313917464746774841675863692603637493678527078658620159680345672444737681799258329232807142734508355165398382134473367195647195822958762727428233343266722777444015636499302250756458555386474624542897284712025774724817140688523741033015379983290295594106293654039796693799965241500723892739577602175177381533907322645427035496883782315275623974898760179069653620371974907422039917003168310511361954085525136697966917063489335386619210523797970749738414382913551503245391822884076337022661964594796873467351257038179095458164230724492645424642234544649267336377957629824218455340856906267013524049097920789569012854078682431204903712894937653046316555131090250412981874722384155659058712879619857182304764514790262972043143548568927202795750622532692668459899000905731692514570225676258156764196691323309766944192530527102913768412250726130590274142859338170432852438916431548992487112753338002039233456715321446159782593343784239392406670777370684953979902323544356328344792754716827294491325325129081970615747660752265247893069980928248496454576462223388741095502073108629092468592014350955760941598013805104654274514292557816798945439523606912463382850282669833463992569438087899458264330324428936727484332712838161478636400551533909204505384876387022649094374910559054786490344253084875987206868056612969654191060838017403176567266316206561210137260540752223910205311269706615087095153853865489772468439240132797303487927860112322409914522373315768091285260963594899747741271110458330171068365734169815114483798729339914077675447686230418263635083251396001130372362124019304409240502324499863428317426025861368207012373119290990829565699751083501195116169992580244046600850334357027106446406909256830176733523921799326447090751083800057969711485822913744233448263759380256287287505241776717034802232525885284473762378946755346000079552780528916037451319076312393221912394191044600617396105849224421942736205784524382302440248202618611484152256973474385669474641941942839003980243182198032488972456950906980009360096160524280284518083270633053655419850214794522666934020876469627508383035452826923888607642649792917919519021547463003423075674206251367519940091366214258194215686563891821502454183607327598190659447109089357387969531581939183177305510163928227291838509618689713067633939860363537473346211522262481421080750306928579283150068419474020150606061715126627579994063029858345163281680822459427365049620184602490070328457137430911247221054195736224527763892185733914702714244520999845301230402875653900273689474444860278795556598790117170765877347709244129518028840811260339271176449655289108640642271339891641913657183212280777430842306866359409947672914729357935518718232792059153147488183988223482300870846374894285360235184910519173400679195210712055148744595714902690334404204462896715605400243704689617746085357997495959160612044892436558474867028465403619231250333411936959584360025516266767344268212424216282944265342299217582587268961855958388777823706452147746618340742451052162763427364616296696161979939408337130934232612499703389535387313262189654219586359542332866545491545046494776063790485162262516046627866334985377933654283743457064694525421891250388152871253036061060377261739208280534920111785628461074253092003254487765085858257031369373434556502935097317334113678443818818029131022622857860631921496651100698245501442935104397155676892674832977224449999031588498871254883339356812849375299934363093444918825244546657269438897647158273901058042963862580013210450354484948260904905712192022511248102201023996560013930313637985026075846095519364545865210539182562746897910226411231704423958561265693468619901782169737160361336210245166505403454651048681156757697936702933185086952004925242094325906874366510191054719445674211822193588596100920312935092167640877982235812101152124804596979700061936162915083885110734941251223396735000129551296220607171605424107330457013675844456213543287884959869600645745159898640033461763776708299074378325917656699114129486481644737310821137394533114926914038395867099689395124198858595058023525760729360197875305247871388122588539612377719907695197823191352023532449603124701649325270309730944583458127297557941997529105424101289038377159329972690721547521528605898856109582563788460318954691711753266093381226107136023783853180451359536516174159737204452464872329213573579617030107477849090021893380243858195682775338446922148840132592541932212958404999126287484012020102296973258788023880322076309257717720264525721771823151049301407015586354428955019866751331218659266208195923350025734958928827998053511441751366917944245347343313941788334586355089118951665076695999828812609481229911543646134982342514342046436014816292600913297250668082045507288139704021306964395799315570637370981875874997260900128321610151760147393811662466533299356848115878160484333565445256109395451321963453993751263300314837193834136380069664725235901501769497891758580023444522776305864186247674555437855646011217155902855529587924649730464140718879934138511341766061665244137209201470785726449200954023509222022136111579879547842037367066224734204051605786349759307210531361640187744901465465592313866451873372845489003317316530151254920160797898902367353094855907069657818739572837732624045004520394862685916282659034442593828500861422535399549084287100095631225430503672560899819391091792626248624991834012327583564757960804005629543764581841534902387969416132840509318115570296031425087034430384085513453702425948045669441525777498864168821509208923414462383264065425147212686464677015413875766084074351197302616355419115365463885523490974456538795803053402721431464016376368746521314695803385982961256678839133664700329677049073956360204945391035818712296193174271544786687378584108660971461634540682754339813806838963219892761925282145695421650097575800204431120648171736507379554305495362945142443402286041563647939850289440951472640088223541793094044368982275777925777899966484739914013633391293552308723056451787223531745229583499028490250007335405948632260182460426928045396041907906599747794238756737563980457300010936252176277992552387229544619716981825366301782007492543640821480245557911047222660082333331894038179284409982830920589139416799877334574271935272052700054287407258275501114464974536432219646547477704978442268878901593524259051954011091801985851446129817716614894988952049378651845164545280120292268244226628939401831057052154996113092144159677254520577479242833394815549971930520070688465950250175140877928916518445077820840844798366519958928011915232610950088050717971592876190638213258357085227791932803984737583900701502523619084843780495223730727326681492992221168721375842746483932211248604045071008506552736417125133367329098139221818417003473076565134108455475782130514874379537328083411478303659342866925880616462079664214474813147200950541779130488885272312644097072707348883111004159482591046868149013319933229503908411644809723456696378401171461260068929973775260572671529996200222094742653531474079851758675575254002937248194851589135556601721781388597528829101426886660051987363744830655252328545106927872043383385744472567259893521282160341010799260656258409510331937629581944805158217059773227854699739566628718451199542978687589680253639597318925969572230376051988303434121402315940864389521184949442515675283008535621337075773544704218936897221971731815180703860354085609619713493719395306789903829341567548128021379742190021582246626305849896238072963867597034864794445977842817019183110076377897843443734603933187244141393702291985556533282904836745064315440799436245651000971441314819314400957776787887016323570863874678494574284120801229960368738635812553112870959351528152261605698210448760798453144352659591020089194400689375144966710043000983551088103592830004421612217764603229990115842788700862360917043189083208614053794027385284906742129572909518494476886428065066669547299596826404355659902970548813880426879029355427570552638459241182942589671096985811340660755468169821658462157755707903179166552219473002026041039092485299576402111114845893049499354042414592194196543894011943166406647705687164079527734592404480595835469506653898061350911070668021117958853663356584108010475603867475277104671573572464669211400346055293087772868841149547792827516849841962942303233108338597527557088643623510942106483342808679941196752362527844643297503795846406633086571122212716070187653211450907164180701032386253455021800081495217313233152656622572979255412616872733099301481712063880884722640822036257086295189729469977032841320028399067755977603229003589164387880068535939117189457884119387278680688986208427519245311287469341276738580630106354772942728024278862196728649259476344225713605959245095856630663771350509860304513483871807226027776409439978494046446064757364747053791830743037681149287883003514764838152501640883420808427401352358400895501003125776413766466052155519836871758872830627725273847941189805420194180558478953445568726122376844153846812479638168898774239291347583412182356912764910017005026371198663019828271479783353390987798970003921362475083749215910008460346104015377172443031511638916684126576118968968842593814954340796595950363162270739982491028371619438573682206556289996328985062652595786280668711487083482300074157074408749020012843453513188425990674820010093884383025219517735546736409877463037428566432409820598021737728533009429121005158797999268449015522081445221794017252271711129177729361061656396061660397968745060096972062836080895560647771350944619139176402757408252645334863743939078741466714214458651689124841513418445152885571277451172924433173886025454180918847811515208556786738773663626509310361155275783634717810239406655251635272974222731217284312318397454592353161246206042341502627049367705132711044253009302629442972223372259373385118176531628514337638808693256788631709279491908037986008526162713757482895914508399933319668183304280109808905686924117164538567129427367825043228529489456201772761842911715429553407990537795891353388277293691935974444029862879898612462744426980180151487634985707496125173734779019143068092182468603705156651103266085934724335934934291375872518452307914153255008273540313089737378506839185911972813894092231911460342225583736297306788457055308998681523294782328634960729766408289935961311454255130884507700272523444416726602482334987033702559133828177817812919559144430342364484697925376531281712063406419414273247622576517417834918822173696531783195124856983771916250271460606935204663564557519439971981181324188325866144013423469696740454869442059834464617796494394574375106305368546361439015944645548757385097673972441400724536900955798561022494486600398134500612978117322398150254514202327846633901137518411712394738679473890609679174800110880756231171886879521934908445754231311567178228129423618304600806103486107393418786737295793492442296986000059104894779694682195079074240337499061672834460901500074284257930256284274146407665540788617502911156748854939479492032697817832529874088852564328696607756469194331187677014292176244389609204405050413183671099353453045163839447639321551058521479437924830830667961603272570199046531802085496314656561047077385921939527786836475998276022048779768517670420301746577830102925467923457596772085296984886669370486608842085131317497066997496437591230520736298636515865832283203514914540366718478790588813702403435063176304143139940066727489010751824517856828420546653070915509787365297300848806417323708204933787484769813354822354119770512021656289315192179920084140351922655189564726561656442280226514451998596883301275331246498639930979145651202574522852422131444513681031224453849064918549967359137634497217254184550388801112052283653520244465485636190320693499038549167699323950393923824742509390728760798326818201849651328994442604382787612176999910220583587300359741913587572520147179974347870775372687208144534429604929258443211680705377416486703981732519145595289478943917222891190662769617803876546685320466314771598472666628882253983168788886972953416613737825337212382337649532854852559543413189855014352813613154309933688221845467906472492465060226913363414117803081855203998733453524749629443581513212616371094327203704277894954875483273239269928693320651477210501288478065150659533512441550043739415577437203685673585901167508088155965773667889728900474674462115913071426754831925964700174424758488128658741715107122287579086149680361888076618634771243035213859243203431041249173728588657643063269601690009945901439795808019321547743145364041590661802167999808392860367696450538026409102316426484533147594237268818210842494487767677980703947713411708037855484803338779155236166840750757635418053230926681958637848777379047710983148623514779898568838517071901463621215629527882918198007074937172132181043345482486990423211711047484329626186254939039200219373838603975212371016432376514998825430759535777414951209094481775723358195604915372331696086209366040280484655214594105337326403272420548022773161998556975018953829307363283631990985077488837805425984985234667489914328490417765013927102611879899698970195020831341100316602500459931653354347804789215202294255151958996640038192208823498829638141219696574018227531107863776715374939347133545840533510515199838902898216705921144220654595197956282776356445054580483361335016860479799220515207924481540260167900997427575204471466343822678708874764849870598604626721688661066111175621183906917905574785084482199628176779874688652004326005128936443914236220622901838578760522848151544551311551161348133629840350006034829800188521778383695766992336531864392227885397988547108142345564973907531819171683369077441395518131028392565699760001367368861715296094849068047372721950494766804443609644425204593935922438619960935308774779976504020029168110006430006467200442584999905425497909820869484279474754392870284053526920313113728667756700786932017838633147189487165959693222781170123342761149851262810906151933049919511977417785209995407903751302254846850579374296377357008601678580461999519102506939520478249233803624228282666498015265071603284751938852465612735375124449654433683615732134181544010660389262019693233734312867427495434692063588969738113647189446903554781551027713690864926639040991649902078600315098936034705168157512441457416272102479990694193732731815245679393514650942456220265304168492544079614149006986431504709887749096588080876199347836583018206485167756298319604453271217840549865455317851376073671778618330036069555831685861705635501676867424103611661319397982407458990839161358322800120469843423583195631058216813366242763092501431377203650810080711565377077025848040392117819310088515705694526219492971188884192900360567004447125576078096838353064351459705661817604831332423863215279635189839822577262102483012996114426057277711709337441879831635441665683634219399117962705745545010577022563191779227824996406186255642173584989516958013778451518600530914214508338944348334737444272310800884906158161970664049632970148013233900852198040386510330286724893023928661830812703247208476759258707589877150332987257153053337434622621027309065207540918012471926025477262531118078850819329932908973551039900264740879096074517644346794529908081416050280572830098543248472636023742248470160747743144612152855447307664341942046262590317554483792930556494206444739039706882131076183206329788804662734351967560086264736703966621246571209138635641197850205638222822373867337768435022423099515365395846536139545865427398247851740865596443489448558391115439527104341151052967735195417871920886199420116688400824443491180321130032148857944777187938661999117832845477586237854238771820252325189449491723219264165866378611075235234335626775552885679951892554768502817233648217775025722113421750240970556994886283098796289008803633449437564306796663986792801227597008835900229822534870022224034546298213610011364609492208441300802880738603629036958827395964767703068606309802758504241157052414911631023492220829086845850094725266515525878558494230190443034586158229310145489539426939070762699300074998965401455474882636890014357967777270706751686535314132172197249665074555959526165576281856795187036001962466244717676088582356221498965350297165030408478610080116533850870128738406070956849809476158154470692616597401134197793234487942098191981312571722308262307899273328305355923065400134607376654652522347296985262619595997860833201546890016981894670081843986368044222128875586027927102912296516795987492502867053377447969474432567865822837736604863684817219558344090412064811486666597953235762285466075833357577164523502610138987388478018547865106696910969956477020898937017621480487470801349903302990662785670700768639383076369256232129515202973731188904300279138815823955529019589055356636952548419496801095070637689159425268808330337998892276009227221143061445343780339264818752708403755453681589215593017742719804726929817010107058212854528157591533672334975356567439817458314582460503771902709203332234541343065849787088199376621479840471676899314498448755460081485964457670427699892409817242247488513653451046441764955910248789605258223923311027450099662926121665587406632959883204263466118248645286432225876517403090164319621515459824658170118616909919071668417108370166696145635629283847087552527195037233079258064309123136118808678746454307449625607859689625478227820837284645313534673799315096122157030213588642014875095976351580254824969974982158791743538971411651841461706470606159682390944585500358811030122848679350190569230674703560742602246900261858025995970077548431953540565706927198450953169023613438245024637068483541420694089460572329471084583839337584802071101768630582760480825927223409254262004577216603696942677497630669646501179167563680749621138209915185511358697225728889879031817116915070548517248859544934814381373220112659232720673834367832775387368932910460224581103159307830502239082535548657546399023345831175448508448672827040144515454065680119066373169533134476036821815888247604815783989875266787720698094542613890495511559248161115764361290960347802601706104251428626777893190987806440063409337189637984022110857913216202209511976918430167619098283849779976590783217137852823316414655176512471817704738575791974449950420214536058926650591248412091637741694232495427812274421493361492915508721528827689814633947893781177953994410128671480111528630200286197785047938004044903225481975304945502956528036190167161786805573783091151803055952241963865722466052464007606437094111145507657860440085958689511739248647926248885041406291053273239362095047411426135095436118812350094532137200297075909560997794925634677378184919754212504262320953799020037752241332353401569835136389489931750427038805512598517987933396514455375466478253653536828488000084980274950638889796819055141889731720078536160975752997710187127752987749729175936873982944089679497541639865356345719187063870902239112946964715771760207983610792827924056332038737152386501212632122938928994863109552624756125159748250545028881392395557694951286675036288687028388120796866755117298961158522013716537180590191455226384282513797023998320311839101391469544202667812885250736629933267890571894689825094828002661780575244587557600933679811348662195353085083181196034804992253579350954231931439371630950293545225169108965102309043910040901729471618808639787021994168569014173653807330579410380072765934706044250475589383216046997897546163092911868207344042054134478455144593161441841839520791653537527902751937723399805343453288018380584756087515958933020079639167683553175193002739245812830475612374915110151791630110799406912134997916571201757514554312307457516413939272611817001881652522872061053818234353689596241457385024088622934104224745832274880823714361016919060215129071606573109142606264978726832822868336748802735793065774302002894560911587265051007196679361893411706173755623026370080623812091065840425122870149955744491790085454807342916768094807875594157674685240293100893111580576914737698786709268549196848671142690920326937507623292192446244773697712673628054913187931640713450093635568208925866798283126382522540291349280199974247605022871976941019506268425075187754406951231627956842843891574455682855636320993111860129440250484032041751844196313969535223937620827631504687245036591407669785079187813227097424583567982552632719972947535555791566970138636545237173494602276276942299756267665088584428652653406754437628495204629196763294583297552304721371684595661030015036746931024566004915981372851435765488543540925139377737916488900748043565182088079669681775635492118519652377579000613178226712755197549152245223273998523997833730755755851656808882194141513894620952150563770449469166601881854319859604354636919067171513036267016532238983033971145372208957158205755364812388045890048801555375733344436944520675325908127420521127271601431219334079201990462218846248961301182088495144317892302485596753284583219783366897798121619385765179918917828954379122791348689140851476379239036976446785128693356742296576724212268488621871192420133462184456115292172491127244005486343688738802492326977386446712145608917565814777285963116973297561000852769519922276634049629071406893016626587659913566343827821354565580175524618533906856690593231030006213861196821165148219607169900898671644415931064328777821652885182354369395724672014145835834966351078125917354065231013046937330626178924066501106911604135274808768611913288441529094154717062441499765404506887131123141855553192023125600484433339764759983047905126757496764609483042577516089118928400248388476139919675797640257702011606320793815831133792221272876484251647251145330180300066269980508709058018536752803226105974849051869851690390107788106978661428421593830631178913827066700854075995277853207513162472577365119189306257994662516503958663003760483816240113150979025547657567610373275511369192120971392354988823317659557611543018444135324863658427476348728004186151191266767559041988316812340061370061020891966197027637138450797356914820131067980123696765529672639498854533049238093963061070494668305557008730961643824887592082481249809018377624897325366397729940057926510957342750715613530373129636176325933613066414515513742393683259837279385545302982286244063866381153041811859046825131581709703804414057923936994888607966370549676981375861333627070710579163316917539304376034188111935624421061891163961784807703734277751879044066325732459346329693340762462072973785338123655260277845857281612385729059940184278696806762258436999199997316396142492336536667301817554576205630641704766363142140320186054440480201239454044912483176441386954908103235476148574371723050127508559126075947752275351888285228173068383649707126436346565819242893109832917341272407390737994538523680048602400064227908961624242041559805921508457852253990859833445024062932290501939167696594357815865977573856652845416155133465400203835685506287650221553348785177877590897914552518841022245671443853348181430363950822425747056228730020449022845771907027138791130031573238318541138489625835866123036161849364860090044044244400813773822721345691769314236720111522754054645872529147146531687452520115486411005743234018604256337660994039514476739139616967430305475811008943287709900194074612802271164787932412233470565998863526512752616487927368784064602172193785349934875299365914224788445769249356604037634582804123169962195638386487715213904740676623813942135503241707510317420909917764887871011173667232917511162798164171452202370954888474403208712182527767399124250226980515604951808058677667568738931007408219257574436527238137280950880197255172804696438039200910662891150862502333492590847138837987869051064873660517437079282098000299335908182296204269478371023329280662911777044440646262491296013913632977108663753997518160191982421493962144462797490415230096269704826801012355959634468006524597546173014717236783052292872676504909617810650817592683708739992452625159205024686305634769082753097225279430312303822275083264484122961547388373399031390329796822975457227239753904577999512515915160441309647507254463409713135607412797511447184986311907832024962941270101044797630577940073095044586630988152905303357935089248493450781890367666475478194465063711692373042679672017900492836799790922022302196874229407736528753105313212367707125175993733001864781239535295453909689933245152588737797587712976982192219023626134852951697239680124590719111655980777165866318402256592858488057661449017039209938780827214172988254582213374344149888830408575462350783176316369455840528787733605069956778324798186578009438607778397577624358072893002523395645999785247251410733852940868048267224113554925811438042212142137486997916033947485230582991138243338515046334012048197485136892843463886020436130926884363090184739475087591070219015958872372922625937013605643182460537599634907967382128108362150985511219981138145472200594083195251556276682719267891352166806168844030543765591976620590747792779938682201540669110032017433026238807082047139861386418084284308564714066472094947473595537094754064521670213274361436236804687767081238680065602148461956918451203363427667349911305163699625563921871726784619359706686345007740837754364634379729458914388273138647467260989542505553253242395716472747875407102384828101135421576549719000702324062466967673954940748760867072322446892724566099124753787077326294580940003927320954797488398309117279777570433470956599839724785223826010102872370633279906855748301781643760815863611653125126940087611692945329160280567500525646480045730343441926599180630651266940060969035893004234917157020928708840664090486747056658564989618869161971644575652283633877461976036746500371812099537339281527306412483044799913573090666545500987295158977270011342853027847113823003419630514583407671726172562439833878405011801145765851515314805800566179716641268024380065509631103636852931745734816008234957696383140080669860793475254603848407905990569381296098912970408310393948828056161050648974289207796438304689659114885992757244292767107962583457705467732353953675436840979048144613304532882748976222495755092623977837583754998703295335108253618843819134377842327207176327365698945849403059662401937709832844142856758154799225045145175307347448999744670158760361778496336134664033910975940058798835968773269900854817375865439910016982976657887995734750110026946527980855484967252141041900064284309352693514131792743751097752404963442314740489972605049944381029579638062917195988721687739040833605275077698809169696479460100437198174483904413565847426824136945577416431598693377794806919454367424857695294759006204539710845131077123600141208901817677087804561528456350071994840550061126338740797174780180297504011216998254722916949984519047522554594129415979512611254994167195086614655824471202326570779481420997909610317679319920579277093516480792040880046017492752208643077673911215864697532973500778689785205370031221401443601544519191871608668123971306878150710350604546078051922912073082259691773337779611019022369547179665999595789610598528893030306394287229230593070495009992537531200516174293204820399864259052784883968959822975406499091643835833565904976394469738415907573035443163729170718667712361097011036919886501809704944214764318476031333668576715536451323096871594402754073627005400273997952598747056636490077968874253989498999693647624441382204496224236555148646411647805019035616694346058185478969882860741176080703914917590018901072807459495700399915676757781299944012235874061207537309738626988220434385443330104884357142359681929612757404642453964311214263957461828657736117001227800817481114102487008243402010610557615112955031697350161366300825304287510406147111551601537681476496443164295132529511457820911108993533033780911576876651851102492106771525483341341421165209343986914896034310948838894022021802120119942008279951020518461363073572874539662854857114960100248468373287798758706624812615827908287803509424067296430932882181933468025829473640236767858558463755519379090528413008659610061492753783514963952501031066372635866103110336475494364006461515594061126035502240664476139385454020437450012878527351607096184735889465109068063920065756458301393857394827354140812289085334483927979525013123819070585429815601684785976935304263140208974511919519708500965528301322239702643111559259355584501329540051712511535064715321239877939417653478791431409678318236699126127481927807340774605249969371647733716423693090484267317943411592213764001311869524845561130028708341939478043320166037211585246766914226543167299007278005873707565113266620425282313302191459687191663163267283702357720221120728202405930192392786798294767490874508523876740412864397906289442084327022585655912048570246933778873100428796396138048448094738878699596444775763711353277048757900963270719833064083139899148361955096580184771228527268055212994036972739288377222446400720727684997855323668211037399522418885227203737800211775085871488968900598811524673029958503245215860803653447547441097126604231457360734839411550436793560249671569921351411028038627007364345243074996930312222044791985257375471663731160352180052747199662749198316742199241865657100047719888665267894880255247985379869639408998875189414511201977287561768497212612246314401789944628716538369136511709219654846281821845844126982512672707384374732941673708897583836116645885642338301017947831129878959978098279769420192228892550377893816275527745496633030105575363400365324487336760587392918147455153670406537126801818638218522275513673916875859933485610147256230184149552187386467109884592920842164680169433981979605320719106298861143235795304970760316843952165048123488977333512627738804603333416591172360031927191949319680081291591873910960432169300307513809699797740451093570378075265515558179419214744279005549338228693677177938068896520710461232106827403532293670196775188239012116467733806532274204921582578410033744698298676275129651805050947882167858143570489040992885405063802031121762809474703372698240788166370569934994399695400060468828478074135775254008076932235882455464023348024336628408760268793379742592776380630350035405078281386823996458821625628831582071799744519701763868796603340305548002782934498043002502866297181685548889843149003732899780631337058613146528711829051651795890291284302184603563010068010273105453861525963533309490691184402367651014019042119859215159167963523170575882754873157999311535625611034052032826274593994387814751679278555121292669588355374241843730329775717743191571492867741806229934707823500792117864638397808162647750492613633267071803405562458953306571389283347202044567281739793318200975894766628463990375025913448083776438669448336444203209756889150522949733317423504347122635591542030718225755867315191966740078391047257412615917305245700120463105334747056355986072205222019213161928281349296898650326681998842485628496462748178910329324861275683101770359628430150737832644419790441819506578576165414590895288690597090021470673343262428257273264350608780324884676958211530783869635959826031004030283516426311571773100382817997824314985829478982156371309350610458402883529065684459894852873435825443907755551517330550485221245142001854933301497553495467786030932951961025283286954390984434976085526673448890204276417742481500279680443755875755846447307643814932537013375274625098632420834753703753564845201218997319394775258093829656836841064035230397064582013172380272200742076726368068428034831639550942868700380717285952927866313120861003324567901458992136168107255471440324866316610986264806485725907832690855038975915207621793794830889855988651721378996997885604662845164284373888650098713912484594519234482550795858259964292988664291251507829949614645067419928066526730812176093668230250124714463551112008477337605367210619106227049544894762428172219516059174776607092540386255548657522120664782748039576351160384379973032251755729086668216481083020993321789303961821829234725375199140431564558336600609014063985604168590708022490696038529909670301093499681541632626657727474745704260601946099143135860713527032796500966497928369700020400618206309946136188206712909779190460562634997638461461277658860340325849860606435544504583601917223346069525490967664496708915864735023994203999131199573717253081784942407601701343192810166219768368501339362467136511840834683378727700675184478104324711561995053276185561230649031989536283575218682407370892831631055841100725486179090636819789599318423253158691234181172229312412580896907337726688432115043014845378252559839408192912905763759388740364192538762818063900719179939886610638659854076997816038843171095692081590752274673010066485750087897616706885951145809043898405146305150060400784099392628602717804674308966046111222279391982220693946590813152607267382737663734870740641095705096127272653999460453302997047873410149559194272277109441291927314271521883386989412130083803052469729137622118273984259709257115113803218903576281095422572354247133870061709050249294964267480685997036279065482912526408640660641748078092113904259009932099646754361185161891991139556104077668468006303705675085775595723882361676533177516204239116973287599853369575369111051975457848936232389379154115583703028766268778355300429431474980547166644494401879869584545553602579466785657002923828993754647890420353792677202064269014618821489988485535121655850294948468740308028297042874575521345167370133130223710382248443068491077351768042794134290638889515803798463381145700172944438626200856781481304587746641230419910626570350581707954998234869761800688671799453467014309183946614892337234615426474619269735272734896725928765669566508854473693738025638517333707574105413860951925228585430862962949180108571217144821520145275527411926778076341241741259088135341429424049150675891451080142010519657349330074962279771392472270231673919167043467481960879671558619494189971937248481273465680303233557922703500202705634564573678292390376501740310655823607717248252194545508446282897030922449401059036875371581203808822402168506682787395389227940751968328236041143801586135371951954452356436832738511910886779668267640786409525986387815015383780778614323563614152866648963096382859787807618501792773875789645041218492680173361971214691914047137710123027219648029195767656577026103944754242326636105069246934365136645258321336053687696091733276835493251390064393318175069096949839264920089659595625545167468628112585305481366405200359614848418408134449721757596220252577869591758686389691785169825987790724403882015195677084747493933675493507232420008009611562396148852942152700204361684430197616514790920494644042622851114415612843998629364972630871665854839040073119233045750474483663473064603437073056764058021823966968503842383549064128451736684090441970925752175660484437531930007072258186343471626406147868886222606705313280729560807398983119257568862498584187648975664733703979462993950628946197652978540607919518500912354313678573841479225662256073022794191964010453388692750919130021298670680877705463944604954511940353191527466686074724780256301572643113246339780196329837235934710369680473466066755732651938243800661002146295982827991826985506029349965780071521436013117914210251902040255746716583830333920335564778034755488818446435937405402413449175350426521883874713892361673343094653387037168684469251727691729119925455044715516345699142394917173665819889036533472704726824060336594866668011640729755604918633402249713709479475597355544002537776979965611538732468973109132604079504045103063379191019043980589871819558745615302397021426197748184260343921373939892154011745354753227468034557114833691465038369840505342219959794776910897467746772432765473133018067386144530923879317147923730709092501576927069412350348660619667388068491651957558663900298411176249176499794822276463323386709024738592449682767762591074338590824370909189311046723437291212786315911739846623940650733876571187583337053924060234986682276505654308497631313252502443487439537174776617072157035247150613780813415987532974407847152396119229010774264037333943900335112290866699976161054789243272460522051090605306683954715521319516941127030480289416605332295631979242593290069284704430427504469056880555461363551007569301191307994482069875269568561068571736266965487385551076914138916869568061581276456438047139277855144999947118442336272697614302289126993994549615043987135641700034157461431375924626910842494714012339803133923071732876832040851503592262204309839182118694006282411134437236500468769703121997871300787787579205360536026049839489392117842932532894869752958333173256134383625576351159404786019331170856012967321883173092072139528931155721760253642858038773830843080171187901502521847313516276330395405403137170195575458063095416718541635849220808893700430923489700397607105000152155975423662403804719301041320914358143829258720775827387781975294918463897928899758240179139030661916891938603261068244511848937536303329122209796157081385153214081529480481892957674296823142596815820721530846516048912678639524457720865073675309664533332998641734177996503863614344463665297497737862005160085619330917833393183247386410777239843340315174151161016135021131443425126975399525065076521817073975655119749822150144403020637233877820920107951377263795104349684781981483474509745740981887537081158399994802244069559048156706451857094195811484944473757953825086205760939498788795004857469431861507981561568529148473502087713231499385528867588906827440164388110098019051997827281586999674493429792309220942573382082786570330314452438911584275885540881066899252602960329171748170509822075676969043122834835302978295304868205391302883296484516761562086047936417373833098613983911988896653333105166315199344913833891581257038581771502010819874777255916095810024817405725960067090365263639567340160099263258431811153772617138397368930173405712561103251133704825717278520505303356405967872359184924020951586771337193183775768934865526464538757642525584329875991286648034536518709785462240044645808610515483842045387471296690923132698548148860730939036149435856987298377936278682368280344227438929575759587767485655298396724507375087394802139686506514901208878633429171820996095394471375547106092806621294341211360316416272043826772373276010802255371049458506275126883616549823742680026117930019065174277708650146675349888645901288587926726941762080403213014609921384895685760851574649677600416895351141602540149181250524545219895361335097660319892745037887461179917361184331775241774824440335050864891793688857133307725721784167367599126534929075128461387281272690089642165408261615872603301831549181424721674945346215722933326609815911404112629684154850023003234577680697880425885556318768947848937902271249100317890043955372975297979101402698234442208561708909701020607903332488437524891783867000883871729293074924640654423065689462233957776766527968984191758600113885451359170740768845718062475754469344342355818973265635208870329471946465402348196188067825022082976620773743667921849154694585749825878833833342809809788773583397724329769647649053909483812124051878520978125197979741913184927537137336587999548044942205083800175657871724140177841714281661549993029472155847255361505718242556328326797570870505222026319996010695904351383209286386716102081296500045436961177186166753406098742997375783192095673032473256586453600727616129555824380230439566342305815173912170837088515730125800200592162806566504742617138576493558642361439226568528018157670206605215673393266625103546577264058498122221978014698266552734863470726671062657696034697428306015402661966432592347776317233430740484424040484204359827095465248812126836570951427930329201263805542828392490496940730380202925412879993054202683534007191046230486218827796183628452798976957963050230234853811465531864085553486436287874664339838417846990235739813271686229746924786624853552579883582073278266622317958818415095041850412243644145388108059350891066634540045346075675668137210980953811599240389753981997963588190554850414588811274765414377259629457219433121679441816033441029212834009000310415863098061107414600368968144767757567726598963782607120578915585076434437622497996025127099763325987847890687409222668957461275453671979173977464348767010326075252837619774565033692361874321612620366609299621783611323486534324542776861396176060953223295675185459428079339100107493321887740920147821744635349974429833919834822209016130104925682751594465534781154910711551939880412145765011175331471040460374239794274663314076895396824234286902687284730748697358551216077974742409303334928066926774013748193752325298426728762597560628536724825925264195348351952409271665026569784706202412960084792294031097351348981233780251880612615215556211685333680684309744163739495542002402093913271035439516084183948002470005284464910891579015459392791556056798718164281918359835703447689555661789759159076584823582590283036727954887137971463268825934653366635569213741453485864779885091159302858289965965668815046074779253104060566627035456973343765572739249622368922922789545597858646444096873323947767241724374761648241033786327357710307032740456149252524402760445885268060818584795912880261125891324043719158329432992828570551804276452979571409532104731722511313086162484350446203003499105712225273438650942429247539304652118562766609661765503173448965397145620175676916635545602763491020076927681612182463015046946013301428728435217972587336737044024313472200657623220887518808719722774561813876743241168827016680089008327454834035122734414117903613897301039836030639651502593904304886443885081881460591777861255197857665480318648526330283771193557515987840478621959815859385707457820237646822243945970140868979596574103918349332845117642831246783039698985130497190276721212567311037049961205331445603338657767437909127499255794544295266755783431270376674840180031285878998836205146851691758643320635960033454528998062711416916192000573503756082640036140306042775072066665812072393128116476238863682324186750266082307800042556466623031697035420247613466953173909557335307638519371894533844601368263097859221314221330141329206420320604212991749706588101967505591196075288709373515763226974296493117343146456800489948817045981943013231379822788266784558111938402299633089826381624691426942990671301187902839039656008538721723495637718931100735457095754328745758601262910969584798810593578971154404570838122249167107875084303625122302153329741494037118151955675533176478821216053169565909428525121999679112980504271965630016110153491819745031828476545823504344449017109688122076232004341574082794767127799994144378076634144000198961742620189667477702847412993424424095286757642938428860095790681930950670932329128854280444050191294826517479315386744257832660869152779591203334472224641921936547274015616215009409388441724080705055134169843616721942669335589921114726806226462142388182302063553450991138833983193531795102702531881556821220036418356858385997902232306090937294172892121342961913343816431415842887906811642633418498428604761726332973055947058988979268943005913058249784217948480066138267271854729371159661623352305039770326255167208671826764316817402935533892934038021142415064999683850563341380538041259171243874270993633363676225007151522997390550312789198655960337184824760777050988287688179369555849888413169757834501699406957764046106180350683673332586331502288529906160466674297571397376756846224415560934091135621861125355615537574095328994777547928318229179707075915529733411286453182183007825945129934904824387521986479788001213937823791204320143887292336517286000242116502940153990509553010710044395105442734817089813496240162050189526684866632024712393461748786446884891248549775931304630632447979717546711186034822268400079779076758303826507267404190094547442051447887743854272153225828109772440334964654272241107829079139824767275291331537056494962042703711222313827398231428251797258224286211711187571478681556912038255544090381133622224175306088209992022999245441328962219128317075344929085189722001046785027566944966107412585370520274624932833888195059159889948848072896760369903588718716695199893454607191925897834713169048070999975169037604434865504484956696899663428174352664231742989559116350097859905469952893765298982101777263429436179948318691361659255342448282177349086713347478365342441208100385678111304688098161940988661319794528385358294454220040138388578162369379077475107101658602024187091324280203049380035411594724595839242364525086213320519122379351615994025422580685180459486171355552480370741343713013824197388084883903698652049427063067124812089653251723217655603801155092391656935101682877688379127459705971378056691517813576661586740401909437888391781097930816223244635751813000686364933351162637003029921136958698822500206422266978576635201329198369994127501225118773106484868405080203076789121073537966678319243879956590571013024454330238301726435818520699982711906728927398174182792445112001970883200933508956043326526389541903439197541590795372981868415707044328096670935482664518105597744304480303531468562295045686064020926117545904341446838271482759813927102976256510952458953729191008464304431053182120875303993458013565481866120509052172450887328256879639857485685357187092553810450396979135625601998972210500183353188292703995599584247268636027978056766396999339143595403866993674966995053375276718705390026554346478540765536000965936978338511874171981964765446314614074560243980115785114203891632633928128489299840424265238932384595305951166470373632688483261690831122255986971764652479221865201743710827963887903338434062052302178181164487766563453066093102346481984296682831966371583237674280445907282452728789544036853368394614085944660799563439434893344032726021484488952193152874819930977559300764455024423944423831938729897681923008917677236144403291214414481612281425422711528822446122705030230708529980422369843903031859559844693187437931619067386843575080529038515407204053959177540022363881852946242785478629245095056753915930962342726774448906913392156238323114432173787605816169948070807227823483184532463158512788143428022552507422422674222354877311986493299941076151165570292567746866458799702212497578548246790952781924148355911365755750765033107523070045990551956531759935730508243074888684621969721283865229396530664919736964215659615090967952260792407665669124352164761235969395119916461349318405297661210935623393286806865439580090374291050450280559351535234977469084959304604163989946027304856451793593296814720306440410634838971077267866490321395471066960233171416972520957696113363023070070319623720721122373786048601329121601131758292328063347538278063620890628602626799594459213623951716535756548860833005881681409516922050472512986775241060147995930232856877921948374922172110559190226701238879848748957581798668962638045770368148984325475100612291912167306701185955870639127795939834203965972072844902375838839208495856096145085205622677341020105701671697820889392437509482589980554884945165286561553127738220975109658615950050391160164682870469438164087073236644986004423585051004539139447754958081939187627864396932839077947551503766634592891571092321115466905192691868290532016343070279332359336931735828482027747492191417683209525016251173519947084603784953094747484792346303464666315231330925320873921293650979495025977016060943942765111838786486460229725532475688544932285605064019644390861790788745183811728419234385004657548552850155504112767332878903929480561948238755808846274403496954083252620429141916450888003912303653817694046800878842493764125922418042410998889223554760881421335220226765532136122607468933234076704171156544411059992852691321553079425359685390241248610815487078981224504778030555091662212808044204472127320309494965287643098404139750255784351457558315852368023516540187847459919645339785379918049005814006126019045727449128240276820486620944551316597724233417600983479655510286924405202729075073948214637202411991659148664961953815823201850902963938558777660558324619485108210858350117469831369737083443156598440510493405410317246485479359632161295487057077512637668234628923094109433972502661254677181397641479249010608794337628053607502840741239000174253131908953134114595548405169976125659782482391378391688178514186600490962612093033016779312682964784798497361079577549099075076128912439928157363568855204555681598551597631459955791017889756687406736335674695613040213219771357342819624743374708618842062540384875545727701334178367648501386691901376930148842186747163529017485269511846812838146657008804562662175280894205968585975494329083839871076978476533328117370958279362948170004169991951921515205596393270408278319628664421664281520857858411000795403831010942129106465535095397737651354860660989367334881885936167147562641917871179636493241492648093940530233509085917875208107951449421042571338115197144843414012447710881844505360221793587561471355886509538922713449849421265259181729051086117141712832327516265854235167468291307281091433707814031546910418727218746646688240719390300602327659394695423634530527129672985942195200147316806253840080767961043253749556939724436413654905638941702416075106203102717326057505054811518278380452421080093687595970812858974965359739413100035522338339774311463903383236097541576429917524541180172063645401732108553535496817313097714477525373648147952382903628116324053536108178799492482936913776822457140515929553404991171984854344734556718131478422331103551910367048266513621573966442189132752810187395730875914791267654451571836038415811646666763393161453256151692103948174561846657907176952891347875164433231130124413534448057841999015219105064149469081670341358550046479752655669240973932972725711512075119986253336427327266829572961168953895611867441884721223395870974771934230871098322534415761251348315928990621083025881057296080028408604859523319403499718639339153328864009029719875024079726171527046645702125201802811654706385782042753816648150509383817047679864530873023805033900513531742627403373517336280963504311412268190494841547672627106748034316637424098702919818375074555720118460883238935956224692569619605781117119917352237000082873425638938028291239649750644589089101428613415820216482785659130852805631086310859614840601149790458472541771666980162251700971850606516632017775450350744322922554091816825271501003466263167764940787852382716556718189852413308041271093322773102125063786052774610821694657059990381515762486159310733727070125300030071433501855330850709728017088945976088219837606490498660324137272848735422750422102358274839852816104680276979054589609184809433685238719904371709739595073537159793769218049791969853938709060520124585155456322657145650998118451615848281482641964781614477324841152593522653309743373564324722749102655757774623146714872639108354267732313674117620508024705314681047618731276420225185434586132719908705868903269601286641675179807654469278653344043490958299026108804195400987715517986219161463609832130555631688323647795790323120330879108044715603834963540960272403452113756101530543699397021435827584564354291511285986068496599550816924796773678597669357482329171742306289524145830384560959118898107298912316907838365635674172688981592617232218804727739517328916332280779130218783018199419202621437173712212072746656430176220214332978488278898268304247856279661042078875898667029578217632472903087526840021901127550821471943976933687262680301293274891429487954995695518431326133001716481882719411654394950309827613564557078732740839819261841768825557559174259149963117296352861231256614842205020014403454919515264993386383136361929301163216922655186316734903058992171991596100032707129491053341678161297325437974909275791248543620626136312281419994923873513838062677335597269393030213976654641365215699910002620928337362755209038104785296214150693693228232300209885562015325624300770209976045085384614319596033130294102280050271531851189229324305340361476849243266647270724326766934125884785378914765341625029735458606192372811861994616288293600061202499766509773747480782792088324265036452604312652975424955672482372374158012095889152260125699892940476329395675774188797395590944509856310071367291133566218677164260403800363530293449546634872481442261560736375891979533938986887025358525011682118369895037010440525749724539672871595955949133146367715537648392664522262213744882093028931882844118936504866476735721549474331556090891718998081643957712452739691227890409970993483378660779000031799279660117921053509386412185621325165234780430872460261291179263012020235159462488126009012567028191801061252538795068236011665251773040964989033202082346708510388516945072372210848536328709600083893013147463649608331038710919422471326890071134353757164240442592216644618070335497045866027863928129380495089716667854924552308015658982085184317412689879559683346955142733794518347467419502597544102913426822648187089731947814179866097793887090718714700149547715266782351340906825343178806492757537235233449890277617981386382557361871079164309541087975821978767815140239058420842669352023730746834168441324101206702966847072728820971895403936262511048193327164115556626482911623414899615572035290318760891665358170057785312374128131388472989854165623688773928861735648992105481461167295374715950645405664256792907738652423037240221770542829483614198439891022436491411739926286375865398999525606142657305488334160963505803558659898862500646466427064105356431519791829126685601011692822956649101217700165907857799488693624947447033487391237096774238446549217591578325071199698384528890899321993270221547098927311656786545080785502844936139859005666672909592434484516292696373670694375791259121262394514061469170032944811079443115319116488618140873386222702259830196888958191466646511597042000550591189893018899647987227562677321624639414641732389833863712565334675218732596042005029173259293921205771496210544112627782792986883160148012221315006230460880400315040945766799236749430759666502807925364507820988734037568974379544758106953380215791983678879235352536431816998211220259598228136267666969252793410349795226562864380855100775090181615024788060107227838324843064905636848376342903001844216624066223729366084773030222530182281955568254912844783116292455723650630185653863347178522753384316023713805469410360649795381493276629050413487640623129843989575693859204559543728927527606570332338129463387495266491135842147030911036001142426549331367474580397245512711984712313422219138872047589826520389082023078778179560861659637866932103250271437385737828090583411043693355849574251783709235359287261096692206457020375031790305496156501367641665654403744791688469357699618372631087337978544040756508654669373854734165746814947113946189968469727930661600976055136817705485977188654519058794820680034181200564198658468568979198254443566970400796562931047344494255570132073703064717514939415517320310641870320693258828090926020172821739512421129856248521177237485375501233560478705058447184533874878570759249952694764010759992546042085072998418140628176531093778755424649482224808260859335190574904153895799621736576080916106817489793018342523765995797857591730528539131804356363110657188630422442490697553452666859031176853752816989392342657124800181868508155349096392325576348628893470715919303496427013166086081840294561870269161761393386829453171160712674551027313724290012468883211294474159737778688772558771941462510209578990116142113951606359427837930746814558700690743018351741770930973923237779458988106872814473484874812112187421112867970607941460696410105400662242344089078736619265654377700727454485483434416612297669963788799001732201893717832197969456813683690465586367809238458648766390063138580414555859693860777280214439418727641049004003501552677136870833807761234152786674660002047715500575396349353517539081844977900845209789145094848221345679924880085693765868815100781846224517208528824930149280780137111541909311834294315959061840476855870983515559973088711770911818590525848889619439526031363260081968232809388270870545205652681431698542524435026363793816101954914838453084554803469808413396973242939011425741246911454398922274657553283640795561595028319842817904191805592288557908216522298473555235065943945501919253844261857355786107642797635733069800490225983901835757733179582101208199288284467848391016789271683970219335815988323078271462988618941322689096939956532429993669342765029602927655231099819027918965734169799005283408375606110903112210329244325119280138960462784414212704453339881533723806287041323337588905988081391238377243136357540167929513943381491892918157794590155921624561658940553344284157639002618164340176254261113985330822607990478851813484271071325267591144630710204672671045648910935268889692839514759462390183547027456328500452954018224513279963118524054006898822398393292856803056367317824567267804631776705112391642798207400002309783581046460854851191040461754713966581504002251744949338447440565059695931649040917067091181302125754134278371668445414397804663365198285256517699321497746072487571943380370032001449432634896042359580620326867737615851051914477417164975307689424596540254590564978718117308767045922491166421961623104529651135941742436346898491333838854748588195912247866366927772603698538622324053463838863426685617665858497635652539067186647935158937652373277851139828112361848409501072578224049249174083999875262917779996123621278932324109491349993689239106921912519473544433958811194184119899539797295784293410451841884085900694489491661931605305665387714983954167885424081584088706904775296395389024257975831927639096475197024464779412505757653717704004950986029089679264846290983696706452339894685099346333783738141117739223866417336829444811819873023221944777464452812856386544722915513633319129347823361600282831976986528907342045991542282850765504497695426893358808383116774280078795150307749406739693845262466687284733795848983738947094865003014465230735694559981972065539349476341888751124663315285098171030981713518266535293819305273884540518837311429055905991454764318626939806282421966250506980505918084430903154076706272933876464150120827824911118629842881650222256346610538218544856409552787885625464551644905716419831253025275572377973957016478085182776423007295011217171987200394404236352052665429005184501437113297783867730632090829264261545243963837170985751098503303443614369971378238025620123083864273322828898526553245075898603752902636346499398157618866030592777542386458871562624597921338357983747062407020216286504427300968383904412683734307916418374169594669991115675631643476832474320513977542008925029523247570356339045728774543502503674080164708943105275535708870394826947447657922043977592395613657328846855421313759588462802202837030368533457603022659998328356378878026769682221333249230589889613627456087109849616509153816759456697605701137121970230273900079992652220647825061370504934033742597687577974862549425902412485806099963151034052503662687415950571169587914674656527974196476470718150657185307070490609516289125163096068655367645990836779025688311289805280859129179116546233919563896491282797980937900115616536662880164970705146595477033235468161691822715117600961215807229389588666566205138350523464659775882445150450630498073791797138129411739948175524417223694429381802158538230199769283609454892391773554007893630207062423484292255187750086632645183312984247105514353237652465271215424832380793548102929740126073990431767779094950810626995910711713461410390591167399797240644358386273247327024311981855789864828208137629808181056800077756929344592724858909957173682078367087271122886674734680754030093328813551040758530783162005406209222492574896947271576214186621745582752010652149963188043593676245120231297050949422680179433903123670842586954503642328901805432047305559592328377418770563302318921845770862743882285585590921020118523814729009519144909885492389816399690064938126322797450346819604301613980097999148357624194215281992399091401288014664155387173645406467486578344912768436599066342072521801091392445424271829362325078189966878432427482619683078346662845976286653753361454430984593277000838611401338249483634483058156108469567574025611578668840492330334467786666579943566112161335039281960179938067359145790874345420720099843688366688990651277055059674907724795543246804178747132786955557437950092564000137385918488840993388118051447510353627025040767419076201510545905565038645028168062157096925482940046698960645363594526355596716752327293160179710722338598241596444575468516833009828090457469946326326108905227424950899025571322810220167764459901918984185985080635701840032491682222296341539814007133190250885591061645722783144292443149661981788624603679715163929363833510909094539083037752948553968564596671341739859017329073518236464326408737497420342593771399875947821200256070459399155354874740465474205278492565151343044011994317215622427569776153714083718617303067892336849274216178203930987583928014698163601769225060587675477222791161402316883908898470150848960123153311335097326677367537829083687277634003628351210551817741302710335294098758142268077997615919118199416613625284029790384103045230175941866857118485050159568713119897872522054649596479281749261416360255635031741812059017795994643401379666706397226179612702874479067925596603555102208543042112928643341197919360352667208212671749298583002185249703925082920629905278682589987030649267163749827023135333387872671485516927721689047254149711732784214969356650212581053140050718723191024828175857087799643245908190929783421406759356692547360799319613188706253319516877204138620543268769341004804809989698436185583007025867637891986847298902196763865891361001820415218495730094824095392344912082121391591138386532208155564832191807457801226903097440088108391884881788188260371928926549724311522519276950393310043471507868390369219301594990575920909249523658715826908587752901516855388864591589258837304707972538050068553875795068354193175899429527340896736672898099482871269361507891271874671364878675051682904122680069858512206669312436699299395386618455770915639975911874698767114519684321488056353530223673132542873470318703937209743536639518627245840378769810408205259995194392483897068857304359841671472345731683681029534718309665151765721574763638442794626529120139806101461991196701776470301806948540926548694384438291395733777682533824351355838718238798677693896250902115292638092540696544580023185141589293958537962483679466146495160435399237674645503296459750170261412832270642676162978003481763604473432422120099673079792434549272380425491221961265838853545429817594725686269130115208485334795744012554922661672839577090570448617818367695220595246864552934675565335483374149951939795058016490496342656522013416809490833000450333373959721022546737636640974484729579745236890131929913815613199075142381043415896151634833799101479774677455220764366545898451966740770252145240061944833765070059433410865233028723616972192154890260064326075505015109652901293251325502381000767912914932066967279203634822326107066128745041259524080470906447469036589827772962047359345211856918400822120233546571994026723261288292528472396236264367343698791298981045285928661340510845849947203744528445965297073835412983436295334423836250209209939473333395701259542428563691952637213421579138435455410878832660631494147932814081769321476809125282540833394187633046985426115428933116618236668290256729119593061128308669070616358573131885362698486815305429176127201660891559029839090072514609306112856439067620154898862857065762311032224929580005385596286949265583200462653801011998802708251238017540741955027893027618664119907366516523731303390097801696612761948960246071764549022594196878605023879943683773520975283364662449772708563820750903258676394442320968925621768692040061541769707480131799450426903202773557745622225717746606094543173438031700220953886914218796124564617239910335986494300701822197770428597670366307804992163358846440703282783729236715078823502721766262664514520253014521165438535689904264880864782821907542212503490118995280367896533305595419742393251259857632332259215188241274571511212558323876633432036427865742406836137613424038442981972838544313113359276822286713737302792475932952009024884295133197229889938745944724932001580852803473128830294499760512451687318742107023978835167644183319739932668342712970415135596370629179831659008337621461927852128201537786627365793955008211406362766173330552154993046894555066534266399651223344999431144972036682106341055595709283521606425030974408757545831000752550614904904671937609010529438936842071693775430621730447091725749949517600839728615635453853613776287906015150210228737007524590133063823428791209473109106617585550256524077534159442282221784508136323095377430144111841041261190621108180147127747499939355962801664781316893976968524628725212813364001780130338564543642966157941164727751113850163546803896981768202744396792979704663885759368079344469323748150451658837326788490412843392420986368383810291995373852362505686582875397938251689371472192291268134500866539936295586167382887988080181587785831685887265772864119256856031704997091293267468299795695377944675070445761841635077313052570843613570492378931590774840440906331111666669530039702597069136664249615050399800504699503673445300324153188893473363444828206612999971608934424269603095844795212134112989200810082714676803125516074395711522514467672526519743925394901380680005569846681319845583622337842551495768911335060223920236550440548006325020583318173716582959894731088373362104034852546665881181044853833912134083470985440748663662632466529930309296438266911288163005511362706889074884967427062507407894609230624211697620254361686080073902180678199400595918820891150637384346118586445036539602175335278389441562126261725121424953650204781508100838417900883504428810280336869923632275613095779534598761891634998475706578394334905050475406141407908919203849586507641715236382976387551553862191708369561304985066435210682655400360808008602889375814312699311319329672522473907445095520475881614725046850035091110690424382351365138807030773647149153891082703995416044479992960394718783876902532755215265199506420781864440638532454950771063690727217757020118525559001408226820905788142488361990311065176120049403676381086994882289300195127246386865120705745914963622101843379521786529931823909289756796309018353535761914183712983086730183541240483012422734143700007640163075342353906622283766937611516472240576510134399671818025236214746810771052163100624144993480480975660118130376765183903237569792631430182588655565482532232879763012985430969487920768453636107321103411583685598123269730803205241990995020604935489928292104495475869722464356933369215096933251207707789889331356552023508923106192820201817299793718179943087971528842656974977985250853314645849837275813348060798424746242421559902375561272643921545978760915747172252902603815305496680881442270118371587655883707930035405040222140552381451194161899885834523577662937339110919235742588705614052586504604627811814703829997300622841394413561830858638235711696865812841748897091376261326733848506531517146941613301453735205515417906426751285418226582794090285367080913519857071106427824408133006081423641768833523284529369086340107911692677105649679363310504428928409454251257267604592388585983082739654237004629789484854955698031487372808534333413932323719344592959929903981404925420712233219151454380355170146224908771840035667293137647523185165783953557927436858965308169845183333312142892942699410708194969076010081083152753996260699763722518867300776937658359215123533523255021341919034386102708527440934221228470551138437415632160579214837804355586671057702851276949593518469401292842362620564374207408025882494183624582770365283745889254639688255306352737611277991231140115960741689053006241055805457601630610846710845689319076559095010304382979297677407050221518920631565552752098906978394482326079203242202779196535420803566141959529880075589897773583735372831635996579711284017306685161102199074412139883198723252658104705091805380139746301236689808320833538796620327511744747678079070910677217449384657415596940180565848674156342931781485268093380207909419843452483041837012183249370563057454108228120769994149094612895181770174280309516495963394931420560114104480163096917667279033116206307973184102840719003973439971733694978593063905680413328880635364529142063019776038367927132164366031658343109752740882809881586095284035223562240464294567214515488224632548022204495289037443752656677251873130261500156567220390291733732776694206034336680575866399725403927002909510590461032629240385438888620136963199287121814450456123725654229492338126288628176985823171234851692719588476601104851076694555131238020880358175672374430387418796030739792083126506734292234765812938911030833774182785854432847232032846784553840023850800245595718549117215252718758233090216206256257705902726183979492369679509644326880515283024388071386937184403976636575535261570490656993010926452803281475962662830666367398490674889813456334010788130048275175426184905776946945296717442229937086451756366420346211680232783755756792981657094125982927102115689514439331776977313438450197132193986648229485719794138616049788656508150568328255436459982116014927348723423842837391546292750700151013403808526308335230475023256355146260912731772658846367695563114170903976786162157473213823910526960520937284648624490446713365499908487075723352381105182126853660000029245100349935310491451017268247123951015651823649406413118302619181856842342419980772358552590359652419023392476205801369676976823511164970022364810075240103353955464170842103751932697912421888748217931243961441704742790554272420076245898479547500379622526320873626764231364846808317596018259989790505174643767504105885328352390933247517255092809168931237879447353895546550477494293923484302703668510443049814084670632107721999472990091933812497353021837369393404562823569907914114135634206063572508842162417232837564289919726420273538482913392188489546617087052692812814856619620363346665070099936344989915171695004339303688369850853621125525473143395612390779235609161816620216086445941546453930741275693161156882060142004439753673730103217376719411635203799480764788665815711021767802045688878576432557597357644121552740393043225231904174556709468262690198389479151439582449264408055928999227354217853997910850087078644717928588019824440297107985947258713860395972981548093568492357247351140748634429853970402937308866764374521901145613200969622026086580243197303591133813087721989320341987624430864311348106809158670785643400854345749141735990780895156233029710384800140820220351987766222890457811082156053395610922893817330616996637321472784994131788495906805425963291695855590791925248032081869666980995496416783604471624069021815887119576761590766532923936287821927815626651785223251811136235626056144719828676999947105253092880565211269008244880291312846091148750934550342284958856892730985725689446273198822932029499975039736453030365692293468021357383633256957034317327025766890908514460541349520087577337363670686972109372302972851264688688898304053928341290921585640547676286829784301814132743142928504030103750863194626125495312075982590220314307500641465823493479227454548768724191812524159456353128799611728384136219184342554580281345420732400659562095542008418690259094106477069666073279109342389179522332270264434093918659067666671799927636964373000799599539736411104958142605883531787686596236402868137294200802375312602343956798985991679103204250482918253864094732906065502945203359101447716221382351760988207578368056756774981407213682418484362406759439039602094050976397786122108692959323471552043658362916442442118507851071865142944794894911477851022765686892162798404857726535499985524861706148588343864226710758067981647581490523751322229042558974270537697835949265189349161573986825252424863138007711241905209730623240661794677069740840292235237029062649387383449838905391750697597078377105624968252128424744690426943239898514896027506805051263850955488093338291036708460912287083246043028373580647309327140868571129143293745830163926033751482493036450589537182138123192890478932098978239491724306619335869447108212578697109970571822731752323131655179316825620522292016043496310363922769280864916926549962644535955575314756430936117531514463196083722068562338047225190519634342785161324964230632372360188137296336917870324948573471725410710031834346694916486811653585859254039847114168864853868154199080036534519608940644630048922204752053394917861546637006115541847989871062536355207651588790529925660125764991685887288577785918624799714349268971298053972036933965124813910626677627134478599849450662140214974421092651347583302964752385464814969252425446905989031332738011864090638555025918575750039501020696280168727279096012261881306935640001044242667024591067901564254648835954438027783795868585824256221352730768008941249040109690636650188903855825178103391208007008276954258606367663905766074562341116208985304522211574639254500841700123768000604541400028361378805268340554370112223816015152081588991473325551301561422367175602519815219580364200103879798217839382897122029074733904293364424294478869630561412747805717266512177963348146330061882907928462664389171890724105115948433280175960582104001189769432417736738199843008445010053248451573551511912926099101600160977251790520603294598875529526169814627283626146969702499771229163499474427245809707660443275106874492379168659936080009625437036986992309264594351451747412665326649276542253142216960923276774588673651686339162700705509938545136474515591365952704561409170422677267038826773988229826645615268617409042485188089980157145504037906605818604703409754775901956686814423688782657506516932813259309487340135709747945568560077301815269497441957154157395945322061381157720436635213777630295411772321565750264202088118102453642526855176428232054047419609833524100665931274431638761952987641033696516957876972482899451539528900942571514481576612663336155200856286522438975347383127219105998629980366549592565255733507583509711469931541500689229325876144760452987839269711615036093706899639828098578190868245075619357752784750784463739141488031412201908655777040461594115374168605605121289384068905486449329038468971424498437982721771376714524075045235499417987731710020333153449781367120758984317414021042454080551603579442396119443003018372917892464414908660790453646133266351295233364028571314844517860160527819254866689082794417569096132912655036830717723696736985105947849311538196492576102723709545665618287087901293212036544965214920859824996521456079681621516323687128300574454424233251461199760218453161681053270945382134426858271068216704703709356865516121794384868961935151090575140046857164551304794811502500092621460967400647533972077422303252898644643239464771183557169390516594161631207972044705953476155203746580256406172891577843032920216469050520290438916091758411416893013880545815451364220911783787309696291001916856501476845694861689942185029512288615713188351401252191778277902565072990499362263783962565082991224714366261063261069707681182625362538688323889266158635622655289029047239691874419016001397172419423326633131102739229720701926238071858717340384987174545409057449918040162300952345576976492033500234610567249287324124883916216071847412890628558476542500584611407773512758661295197278503396123385854790072821983326955419795504644320025263477410669766333401232659641401411244447599672576695795743056625714192764555643997609376056724502176575013092794960996599135550612352726552805944660258473053086925744534854313664016518471034675609688035077107319333558373750029009725311884284979760861775910381890939645743466157563663859092043370074163937246291507388325234621310417825000726417866975941981478051141197737744653370273449692943031777349643833445359745036598218185621830242691109280821283886724057422774957526152862797321592948266429206497301191763725760681757063415629562259485703919685412380073404745008559662838254047686371720755496334815862329718809958225926579261058801433710258432762509561593351193502047047306628886810489784329267248594744237419919925344865963153636740288373876229851633373808179748291327938045093126121046727139025193507954090678012564566149437292296758471032579553344822864740888066454868302376382448770431255149843210924214877541610355259501941505339141393640335522913737708276823560991099320098864325135141189004216718136012524531940499730636529909823626955789589772798275539842233083306793821485179293875928812862828984974713892137760907501591994584180559371257901421511628859795339746841429940371933984643804434993192334142690104409974163403581934496827841407932126686580041664027400414426597515557727525181975591336751764263123268332536073989791223802783546896174677133157329574449549901307794280299768306976705103669637001874153911155134358039461989515628305139486582889899117297239601431503213045195270776667325702717562731327688413576427186402080629853757739319554264009553289006599891346750063644107713647369819423963636297408076662005134350475089869306423951474608254427597193462443664329431211925562433102432516284056649548645119000716777066191223420332909625965843938915475716830148661531569258131424364705540505845826292328489641353842979258365849784170872050333369019590384214221979000783881328807802446259471038753482922294961515024004571601465679738002444789884831026061819980841900411563160341540481328460696509406091137147194968234265401244014184215414978893791426687800933349262230527793510762599431862347561721770955279509828568342699232658805330698542413334256336579003212958327721998650929327860045969761759866082014360269535553978295145487536618370131476480777148947280106275226274253504256094651175954879861032945979548275960812915547796141948394358393633980509628655360411012082066294884884413342485993072330401748966078719383219732572757260914267112903467490353217542266546995996473912838539946945362649970166276651483457719654486082539698451100021963802238964106971280762560026340529547625959460240394511708252323254174082564561371390058031623752351995611907778444916946428188498553731275536717023783020418109762809025702234803589949877343962587175605268954058594483604563826944908444703055419734702189524553069459753343280804539679893894886836120209564648761816442313920418925871978655561979799326626137302093056492873545109010192573863260569107716354528964066693024819680268586012999163606440305297617503694614973017411216087916612060188130780452650622253849444585713236855690940712959000394523589216225563467149341838876882329449436862552763733050136132601713788438211581517102018869377273673744661956602671242325908882745747998336526390271135312549657783023250991818849470539991833375983380662107217719914939439820057213686538763078209630104518843399011257777512918958461093849165352792892917008129214765778912598936494151847210828602767979747151828641843322440616516161940749241425619623003433112333122621127957559198765014646034346294465554960507052548003138427451149887191653965796603756258040721103531595914076418808284303434192606823836629301849808049267599485167988020055096838451681591733247644865819369659622617403109946786474731750766130319644958153065235755187037349894102933567882575331290801067406689051687632986821855721404048644843470785197385299376623628040741970536018889174598858737261493946098026663611677565395444193771570870722461390655613022127436417014745504862957016513741965247905949623951712415473506770101386720638271640646173983757288454976254432184363384763138724477433264081912196874928534129800785702192130627134954897401493068833535397517355531123560387310951420909403988570267137934288982568748823118885063995077229566912971933762460939459704198997436271003099933107845237187247982884745678060210383685059288664554730012630230899186551035598544995690354387289931059067312317815110168058847263471126240963692950713059829532782573407855666283843033623825953004104104040191266142548002909246087600815181056337367528019079657132006990984381319032180801702370793570361249427549982810243213971748203976918016118301711487779334773222514184424251356454465808493681154407860713566688481290903507639100384096726709966040009134345634893176642008116753960981770524919907756541457855294019906803652189339534594245796670507863685143976608996678980763881034335265443232726174690770570864023805288693140323610110397243815529863989611594189720216569528130966696249121321025731934390072141219809396754796786737086899233524746507296539408563823271897359221311758980111112869075383318080974961220718854497027713904665640134135292096703021706729493462275583669929813516265801560658422215690028132366780525041548479043883735320030415704329063809413880577072256161265951646577897609801864385472361206846613843484207981681387388034866420768549572915300657256431761232348310840065322152212844408862362863910711130796631805566295321629425305153764894833115579161083153997875265719166594086205200588665231725914057870483388556013775497371923731408153268673312437441369813768563899216301917174375424564898035948025623486291328039507352126478465944974973168456832443485609273883232235593491462997215927528277320171157505417544894669971100272628468542841024202093623833422696401898687455069705316006682726885228025994763623242335406213297289886536840434175539898584531251173187941744757202971999053722665360625054894380865137771345638503280571060467746076291348459772581503620051383131393218161563583047448607604355387049986590184071191625736831940420364036929703776441125982446782370336271621538301390998647289691899148936743054114594466750640963851858091414038635797608258068396238578672451297797939718715182560604435247338744815935083426394543486940482270453837840676851382136119367724164471434362142448614227299095785191589855710939510287672825028703271737942364727579800412459953476482638422017609599917243738758535243827685099865325184783594058413564816726979906684970553265685301133588943435090029762381656147820035594106159102371547545190390531046289002277432529300930984923788299746352242890366367421123965418313509922557276628559195881146481703465814514306903649363728448977778784996632095472157615048586492609447002851913263130701674323335261666704974842532616354945205629180993078425445885910624266590054416408922972840036506608333094749724957407982173558503938054749991441848764560621052217536214757566530966745301954642122518553033641435142713382735703937617957787620583277998795559077149102572967155067201324672092555072314269287790396752328817162273264153046498117015213543553038093152688256653173785153633722037746700898215535488082086086452560763557936226498098303122449143575733388249290463373827946246215570814044201856753818905026225997069833163074494108812232098693153440086419550871281751352643631872852746281924149865333021847839053789967808168162405272701190773297353170170295690335497238897294247316253210309924414199120265275830342613098556475288212368891853665454132419938289589402607327689166905675525755494342974907683710365384638652823086367841365608004794906062812604370567070239734597078689541510692842541385791438988109034022021131975654819726175740260585218499997884683931260174272005052444980376754301886009067254997733561488919518044270485546444217495398129531993507735237783909108626756416519457024585650422934930726215865726608674801825573561378342448414784856127275857012555107153515266073815462458782784976697929716593661307866837917676473315261631967734193948592532534493210113986936424949647141142979557953438074333544714212224182347293371635162553727273896412606710192414867409532978170532599089094963826166924105206291169312954773512585092401372360105047535518336857381320382848449233604456292150969736251839324363372948947726547518825318029910970287632061149851869608861467369052027833234323533866995158280359477819698590185638633247147223153815395721941762712542300069740633730937428747632480494331544095306335535806463294101410260836703665725263354537604634542688337202289923461943673814348365168743344832575196057392111506803203719259013485804992241816143372012219542056021408416452586196627518680583734591752793525933374725893149875915976549950330718331397163804080926433685497065818123242611538373925159110881868182862512072561119063703194829534689477384069474169566751495179971774278266068207939423478710347637037200673434452716060857965755266963014807708909600188108664995681437538049622833730766589701566769500759620448975574543466949830098604099273937569277538095831211113993733257724173513567217070238547423028977427105683467508904849198615413169528658647359904490875044224113335359034595957390502017138882084669694459606873258043521525712591843302398298074710133593115372996076525249171045447065303898161136724619982010120490310903150622006595616720618589157653272460239312144208522707492797434748022245048782188761360923407303393733689377542958932002186522492147117276375982207284563605546158891097926493106906603643097460758495284507014774949614213341730916105058789586720828117182570224200780792186191878695333810296506688688450637198764994016495614040121503901757300046985347802096127225750722731117143689233320527378650116089674007173259395045088048115667966812007345513400279996592936977550798338862946894453151867671451596155325029437798309148671185961565426309965600685390288164436443865431201290278511474380697173145983360043367919430991869433108724293264095172032574304128146721299540611256212366058439255209385229015344875685422249643080878931507911507134001744084038992372498367698562224525714659062962153570036171765235260319113599758838666857211642217736862739614768556051347551618537662578013472890642319122703356505349782792312064991686143441145536462499404526148602375496149376824917990799944357095189050761399739744454412643331275658150147106810879436828829336782874901257688488687487515694499883050390359492649957616669982603484826385161162095149987419624474009169259141931137871939578536915853491889687017166659190531188228099085842247445499924019057285856814453842291906419793882763695895506034278099087710602360936381198144668557933862519482280819192798150034321740691005083701490194809752578897365981788957674498933531127217395900980515812248254415056026832603091688799146721232716298896279106329801674992218502994736600459489750570170944525246341793686927943767208546487134150316662299976544713877947588602111597669965668566695410621040389282648026339630807538996024329894389371552203918768040710308421060086453143847366105107590448048409702910200972120900492690512084514119677257408869491392360090566093261602876439057474159191191512051155107713905458487615465551848504579422466686745107595495493771341468114179376657187743265014899997835237464933809596463839397103068119112978873562356827891698317760387643787834031546898777473809940281920980374496159920090033677497486245970893893731613708578748590943330325707399174354402726559869516738758802992302345875881007415456309733912507121621935617489895480921105282794859781595618212355835139216826688089689516461613505661280868613516715536329614152748093669794520616297830587206358048693162807884041088123734360360117092220795896007662031911095223336342164789817862589223533460333874301727049544576462541840622190536410600394072285437733318594732606523008282845589977563878643906230020973892772857359107693120934862688408949456594681443200595950275103143943540208806156310372427784434669197521023994759652185470830932284986562208316370154537367811909800793790238537861715049743601980442939663310226988790921656715317427958592021997012465691385668342416830621708086220762867471959676207731268690276650927419156033093976843182494388735788923173911474222348626283691722179905014294570207018442207561110466864760643511945965652098940661780479131540940688080300138903651016260249442879856316204493092991987364860356733836828298337969440563018227077559420856253163415593541038782901482474318094624657813989148798566938426988787612027040213372033673435283100871706211439319189088353201846706119521676089831706041886027135174488862930779174040079734902493517137920748228006443002671510545195128392206356943668634364817462256398092750767986365220971196945785278705316694248036399890292699882173566696875096169335719885646248388124648695948236821525025854475486053461861371032150266958173523380502010354177341179654914727318530721819470970399926968409240257990938082605241613085928335318095857388773820303588833789324677006441064235790636025110390251513885866655541662623873992692117432004642070497604551157656328285141802273068222785224413873418313476342002981659821009201082480679862974443740413075476592918773939138780453291029072567081517384666549335435720735125584425497736521018995742481590671798248831247593846302274064096932752650023718075009113583435945923097962662346538503204770717143611330534939569295293809606781852378186636001245775814182169625971883026534886323361209180974420889701578901414261590883412858474235462366286668909105696229735631103995939637567231974126996972257981268548060432548445504046575146546310526410361583658410759276896122493502435252227736762599562899320027780603998621875197816573945526989276661071128673176503616742918948707036669289952715409697588149068628815145390711931356943405866505558021591602717009049436527013743490108923461610445237178052302362827433305591086387670013967844330306802486750095237772898568793271501887624124921130959768104859052336522806745707217042968206203487330193235559117973878443981826394772894001904017402007196207501129923283995719351481352553568042247978078757808832470998356884385741243199536489637358268672672304674621654294620043482059062818900942168414627170920302028983553449693541791685479136873419648205443633438907231385956194145780891685832766767083737653171328188452047515533080475197554489524905085620985949823702642409126517858561548286470676217741107939063866293265642051121149332734180503735113318335086951625969985915265453878353202860164985223596162433712982431932304438144411298088224423793871292329612781468562540542034250691836533977883976243463843824158795942810489340037134784017316553895448002327283009526561101585950337042763778733095080571377264143256900548967378621008792398610296146170730567386277923999869933254354570658747289296676451106340758110309360569971731547527001439606355309167449997028804409033824814954583293911955827284990018681222757930608273080060988216641428693905389320591054486062353902075938040016218932297578980942223499245346102692154597821221554767364520844986995308081372140073843330284259845664428249447664820810323648115759810463662678569438065070754161157958336738705843595315783453478523343659342516679150246225245793198292219643776333794530930894344768615101278510410038280208332156014905062989427920189336119804364523044217988303923089132584913754697967189477100598992285012711933935164352078700331187926359945016315530762104852443604926511734204295081782233745348325666322697194291590980934418738131342227806075000336881276641297701979232107099550349520683935717476221035519082410619212513508397483688378647395172051825468554980998366848901414262834630232509684265115613195414142886712956896718930997230197446103940867972403983169133549897519553177058285503036222320018821142374093914234570714183717215889823370674185853720614396790871509676736669144326149872717684880868635465615232907182598498171701497519933299047749021546736425472325448103190173603629225249602356969398510738866805321657112218430383528969621727058002089793025718082024957745998495552829456114123378683027748533447377410416153930582164704026854647528166362395865789398289341391625419102858433189114412242775882820411758916368170795848063405819519373236391290637422142999866993346363346945999649061864584557438308567075198576165807865915191765337121867632125305890880948309607539310842246100239755390200760313974021954248253052324548232939092161199492811425537447800958388619363137932358462886244831100857880990729552470526203942023333709600768221911143424385057609981573898801262065602123532436383276643606146919242172386648836995073410237044945036789998604809816968551268591697014256699065180627521478066452867114334639339897504010589049953445558517304544999500956681657681694717181787871506690610723119963114616413477576624461154853287663642036043030926305839627300906305473508229675673048980708408809826513566375605947123650077539712042930953484587915008174525102480885867487089944807894299086864385698345381842752130723929248964663219255998314864185138616962456194139253644838526857957966168210582220996007188829240144548116477610942872724835474702968212809863368445376037014794119831599607125523101437774547415299767020125750530074163890437170053574238040698537032101312039726889939474838246945609718601344369152591294582266139408620566829548344848603048856006682937524632427474406691818145652047471647629620542035156859441706264375881092996109303169382378017938101680504765794961785297179375850142330070313645110810235640473033360425034389330834831581469835453451639676071694488932479468215164620366409763379465506592065220453772580068649051772306617580984413427629516617708830321054810370733882868972282884850592098989317756581160481289189047082180237231279895553018331847607433406708078776363012662442121159100649612815157786101728370373123718719468090189689369290726077336836349785632342173815543414061760491384264724413217506281302143611734503542626350345094371389954782463847198699375304591359033651000286494335523681707613538835880539275406938907346555633423949193619012419069703023421837243631073418927846502977906235808548590302489779076461250292678979055865124835278063258470176756989836988028896247820256751560638092140818888357286714573102064664177171882958223708157821929101562748259481787934226080111660276968538798993236662568654921460708085245090581708197991008300598249823317241747749112348411094332224360661408691657417894989723288691693585638581462914021451610777878695150912118104108833089916796649211692823358506419838368778381245914868580352790599018811175171509353313394537237009720674358683600558184334266111895104360654175518202120243229608858386551326107164595616166548547200612332757776951233440673713482675530625198305629800101237194733050996297301270144432460253428929468150755511332067199396356725895815645891945360077392775257100967707506976749733176191210607581256584499928418420386707963596955526239613958476108415989881114166885423588972052661436575727488989109103995169123731764445531272614836614283847541919217256014302519254619069864768355917485413685125954477852781268851418855138107733704343423716907710608902562903434489759933493475382991834264254153458013916584115111161360253229125957271389236084906744004737511979633763998320064016854201485728215322848421585330429610680881152117650344050766707861076033687327868231336318201635728024516533634999873140417705114167049179789753327367033305481614718903787700640763720229017991043870397413927265531927533210603039725998809543766803722407304658867515999836817707886945180276307670161495868512974352961526172989514703755579245863914274143139511905234913867779966216463964973914005874688026268292117691196819094981575849185731117092628694103703857075122059994659334673191864155787925510252590751274878239952224709328307296233231366833750621687604092125855121956392847982272978851898272815836620662825237907891591788381784543206519326024752667239596125894864197217490795579452204127485288303667724600653835240758516410866004729264622513184077252481267527172519514832093719002290684216790989100660158249597035961381998207124884296488488424968186265470647192926915791074305953403495217143033080180057164964451849205670223017578069904782495255781499954170078074090363414337540285687174890883739902050570696013448194373954597647797645170051280889056679304407571598233149268073263524342637031709872694918003505657004848987574583543602363823211535455269176946286187238878956907891548652430213100643690418708636563168092780776162587566556417837601573498556015678254352062292826939523174442459203401879167036705960116518231031887042643937553343578712115479339924041886985867481337199595465842159054514887629544078363811149211516517703027645797369251961598852388718055877538661914993811540591608216862601026208034030770538032135932435938969866044252188266795368011154798569265323659509604381995417919804379257729229673919134090720590734834481534692606807326820161814677904688514488181147131846748023215981584159673598497369811964936106142104104431390942450964127391696845033656467995208277073141933742299508884851058175757499624246112537602562469905621818403775748387292892720937917587392531477407025365083581326375489649709812724137149546077487090832091753257525920326235606461548660163392828919118936630226734811176075273828675345430581621510279647185711234130115648078137500765452324978234413858022767258010140820979950120502446148260776096159199334142200828141180256160435894114407125037286242656434887955839441968888595393789602299024057655266827164611055141650228633991301674418225295391144064925762483758575326304119881361845321571379958404000352246702733991397289943233410525176889993533491727830380259129750071834903779110337299446596056780536950350251812910414868790995716896288388958988202594320717150337917083556002410574012356487075466486928267734805167777426672084019208362986129064658014090550214770527716754483001022490045337110573117668874455797581033275405750128762315447479509126085019861888949623895669834461912048112731343340899898991661756091191753573594630823875723860232527071357478759441647543045943877274736556960322022176812780562223487662832053729713688879084402656673548162840723345840219000665143246859814100916508338359044387746131452142455507648715582468397377354594365688736899628875859746112445163165133235124803206031369534203194736321740732713424107379962455327893879508018153227541172384990705577711534271160455094369133966161475182394063712938836098528090592539559361615613600045153167057994214080264891833846228430167529158213508459277968754260706558146768393856304368260525540391469316939803522217141010479084543869780748723000384980007659231887134927062050209425380500939437096383911109823332378621294064004581383168738692137103321397057103227838745472029824825382058808721111922185884736743632951182138275213669212048457884832630832245634735767109234193922090406328684080635411946867063656785791231247317582359798294209291990138068100350283049059394928509492901764352071311373243904398205726698043429093546988025584397135632113451569323441310720120870796811821297246337625073658411338508354939770167377527056715063392082690903443633382832767055669208102414623372521234299900961516223943488452159821714050755381998117648524854122393671162306978029315616406031513008729136793402130317081454876967222815927178524334551125160308694677818769245662932209396749696966574425521001698834112199190807619860503020989968232195727548723113923160815936540726047418298348694798369443501916823096875554757295442316223157159379048490079063654205307108911440015677085169935719254463835738352289219436527073526857482807504406224918189830675602884728337280825395521870429393827810695901492575317073575348639027689655168147619211363369028729271852591214650574035178352250149538353775271944048544681954912109578288785174260243192536650005927473761677638165930187418188236841048954127032409713107494528132548916677166854030408735047761529319367150836087071651125576928260983504024355600562111810894209015727746605448424545750933378501508222586888784648885998258099042573916504525890823179720332432247963068109954414031034877534209452158512005904745388812153983048832800589715947705004939112719152717051568173593524845188623718823981551615439796936131529717620463798701756818150676495987438433831536444672091205805325986875188508320954137109461769852019673898870660579370771308406555826254435442759779142988242137883284103878786529034860014750227538939410646980576696066706583275071271871982977768910355821175739442379595191091868324682511167869626074918745457931845096051388556897991015602506078203441902024389472734901270963689123725805273803956168547893229208002079632326249649105753093658209633076450452065247739399839086796579341456319363444685040002798655349287189407060591400963137199278071825736557074130163054153472744302232309230735642407595608529432788600698891968650845872611608692786686030757913060960466571043190031261458179912779573515215378517538612829979384421797655301674074946359787710308711430505265822507046439118775111407683640263228321507245271624968762539409221628971234575163852755362876551147224720628234291569447293372269232298358952181814085326949840861424203388941153125575817583398950770561107855840436350316703396181824857636875925962589283680647022921964644332776973072816333828564965155844104715725929605967167488631673750696883719306876202771118113285794409615695348633201902929470392680212876106907913860874919844499648419567675707029446689955537877858311926179897909875865873137957417824205382200613403636644674294553299837402442800799859465016706250170422773859137350633918193226865229047284780888320961320345471005223350125710756042446048507522035272039188462840463826333451822931718742350380520571885421938531749165280710989189709827872388561173839337327342939270914893159197660763489385055713101076449554049128833190228669373326856915892971808250914151706200822535242128883832483553830756702559661086061283525161869038697820020655819631315282885869050968345553784553728025875797636446828455914332088363005770028844295963920116199326510537168088787603076924774735518812250616759554419306761332762183375217037468156680580762015728373119525586170731226536976229482139767341137298394446245376506878852155429397505674013242621359894068716337067585476466090145857458408131631910772133439847734151590569552225479975020898946745878491524363783677923904277761591854109804968907021918144424540428008225310663536369451469209639328694393718602440249058608578439523973478910210179911827674940596956087840260349906120359173139182321314248988424334644483193060671884817478131526043905140773608827022922297536672426555975416327029032687695400831849739612801945338989954333557489690750131027588918031386738551381379084276251528767986373529425772008215223448035781180574814461098990435705486862561996951323145619974239983047432282332734399534513844948701521858807953657308682230842024679733588135026697781463871021640557537801453840765097104127477673371192546947803092393092668286624728420059541970466305314691232462703665752489979790617958883522568869321241552646481902339780442378405470675789744387343797991642489166016083508633875657222761227325297901155461568476149987614753888849393864887577831079478173756711610457952952904598023123079555233033058600614961926183671820732496736046399082351808804067273236364424129377149824088654107031541690009020842727585887901852194069866582923567418256527708185059714479641488867507604619034838744620442103113016213761266761875414548964930176396101419058771861980730469812956180531537934400281365624344388013870263318286907608519687667851176866265499061124918796892766455244994860847538064923573297214250363575966435308977773445291875497659691883051990601632560494564283250056987415918618500154194286190756911944914998379172652834970196697785523539537641336735754423054782894564667482780167385710165709700201678628796979458706536375893127017937605932359769451955735297995801377483736956305353279165224645379012334326141315062579603292752778538766823284037172693239391166898763007929555978338060306744036524763994360871650515005043340951041229932121216062277781422592604717126657922408451772226528695005208133944649926049637106264251757569835208770232909581444824630084941068052630814529070224062923257554120624807894062508312776334523229828518385088944594779055054968022974145132940378183669986672046481258913360580305308383990153729514448184665765823272599215437948737008788455506476689284427792051372927192321010673738664236942687154253408068721486277940853085269831483221165303485710690558931031412743598118527489035487054062975161305231727160438080215023642539700594448535325071552629255935252960541527161710468840062132047657765911575813310198358118399008624404382003492971985657751457710989874271502755295821499139665803174840604354509609279720953834735262055650042621482000840111824493812477437742855782637234103755174019782657474001078695352167460212862013546481597016584870338387847287575704845883631433777929126257711347261862884966927880973174356402326682466425081125175044848885041482253895419445844697933839121350102915045515023323296665675275898426344975056184066226737173709287416487233244174964811180007352471248872031677086010994647721289209039995604404852190050378158227204760230735372289001122995326585489098036312213260171249478866464395446907734017380818605963422969655115418923112422343999941579906321156385805864333348864195857732179055791213364031919000022030827816249251018816839342032027760229640647039221027177690357377413984343508199101004882608144667715089076921558620956267221330362986651339534724144240306206811223893697230357684757976368478477998529524675366383983906063406818946063092464138807779388870512387846103690789334990579984456010246676887450019646491150360528067606789857643551229842396474517232435278153304166312592942631785571367404213771154649408712857346814480713399518845157098755562346567518924475510951547077544418642945521666856317496297368234677683690728146183067763655919117330813956977254159522096770864087888953080774996797651949244750557512750072802604525468872594753757290745970822626573884416654030828807368834662176574719070847235874318240192461318530382161680127279454575711806487867449154721894533499822625137756445737278522742395168542140230115549171827686889432663749632756642995213698345566801257457921194979886746961244019875407958380295558366371322992376631326181463354412129418933366035028184991895518178759748890698662480702635915937850263338600876668839765180935017853418824288704605207389105617724041692530123382946780737853304358578043991025971613006116846616494944822189797670435272841237365688975970989954262246039999044822874821966992825752390119698145072285171590031316210529148798683144817098534739906156349664189574727897932052956375319106043887294550065378812964840205806749875110987453866826813449968546903636788465445642542437613258372354732110558329619752956753369310425795867779111351983391748103195185470499438705013942897826223894108577614317042559345908639603487719742198576416520725531820439810462806333485519716316758169010758171029272119025655492121942684497110714978885933578836730821130688526708556256459554200464105909894846965585837969774153708263050102063356978749454423960831542194944795228045060084206439936293842881941401170041924483127305417736238832975423026435515582869499496265585688264281527644994489108376263285764701382339127645898856826798849542038884622336937952718962444541318568430561411526518813443061640980554995346837037703449939524837402309252951520084222822200251702859208131746856396063221815110967725013365540574802130921503405376521535310659439913108249448101478524747994936488391571783604915819856139236224476019171212381076602293926030671880560740080271098167777526217023970913898633324350000969935785297848425042223284839521038140232188230379831936277204345169227310260676459289677359445992857384038498243633051718996511694002147068289523884982015732581614740576965737953093364635331319241949734622631740436716452321048452120402093532417565014089784775876311219494688490432990630088120107526563807133606869992553277910850426737504351474887091325422142874464719655718581461130160252911808433898353395823635837451076385165985773180362577812882040144469455749436026550857430662280282718774693587777283190785484551047552717610727150279121424885573471440812569299078556766731143602052635835954046590670895913364281633981410016599729032105005259001491427317662748111000033938992122132845687026823323163186444488036990559501496355200434529820344050792020302088374169472289675448905605901403588649889661645011229292972050711459212560933271739526224543280030508514509902285043727190308183799398149425669479369006948123503988196621334350258632342607553897046514533612973369565988088972758097449756153106906856248146892289625143853974310100214072600496221843007418590083732760574172227196678836219655806366549181229274165763817747641792023982684194758932561857513762716412338271383201087449427084510745135252455275360065214417673074974539417520590422690041408005754866354572375772700255602038701931929959502078234041991180488495501820798931875240818120534830772740541968845568131207148474473965083311252843419534601277529092121811685024508776320422973824613580193800966297866243212230228472396190297311514546355367374556310310691433264076627509288853065959349573562631233110505692737238480751969603572866956539180344203531554158113399999129496488879708051257939331934246070816970119404605856532086673498520256786754105412587328270927838094804583712623253490079176071347609573687665108457231137511351439047056820830675693781497454210088091300510395093754800353551477594569376015597317060422256180655844861615778058182521278459356674104497426115907377993724701247768425402880615329975139342783961748244016275257394781812514525593945463306842051124330440348244874701771438780327426853454846559489077201168815772575971778076192440005865770483948524710814105793412118759891084260074161502127401998684866104773467610191952762379228692478063282505223213038518030439727808810691202450271292122329815928930565966492062288686189271006257366444801231588016860799580863995966096670975632160536649016512462473690262694357369666184156380385416897834744047365070829133257942065502175047776953257648282378857783168725398624049355459201727648189633659885145073989832046025801327258128602086302629189218101922030408085891374207198615536915777813342547324073265457991098228113831960407601478348930554452282830085437097630970146495564383506237509200315284465780065986358261177895547552356231087709234020551743022879217969266184562052443065661019593680244658955076813329462499090115911121222826680874672771177540722269734158035008344700002055666275949235176685255406484536180339791284942044485722704444964795058287332649491717396749801579995852010365037397185768100861653515344035050087501746863004345615997726963909097362605040044151289099324201093724455274549107391969552952894743979538904912711749225757349805540739360969746367714681546499112719674929181603604307872659672505441889632984119570065020527086265266641300849724409673245790479604709236047182387629028553636318980375316185444806354253546496240863424798818883010109827115541443468998331444213939464917712553761783155160987618694162546459570090712412764772463877691154892955194908350424883326700300770050348834165482560714207102837170111643644523706999169642631710446406203429924773590051968630580047478440867346638128118967748556823070232769712865039439971640064044051192307806913345011169691827155959646862710131495080730787106013253918298082013173032374154649528261061721771887544167618425049210237828480237133283454818137449907380284596126195802030327091430785365357994359671115995071613056545879053430164451255729897067920845204158635118388117661250652546211023610916635761049318280271374302264557648700826128616109659175011308117167453128220301275488458899254816413826204020174926919237633681288710910853672233211863051602483840272767372193691517929744316139770935359294221779232229611079866747077441501869743111219802069701900229450457814980947598495979466744014281697628617528658054625612136612797741173514258199668335020771796968390470002103810635370684768097914396066885677892686639961885260895222063880673036894704327583008121928687079194162315863488267361211447040689684195462686296831722446872615020726431533925644720988497428595072757573554047151400322250945635851595287624318326215165782820524738199436383645469537536066379008558672248397363939767448049295243530358226941054711784965048387727010127094346574689933257832143467636626664708806597467667111552897503691305540763756348052810684263226477862365450312758681664393946347921515853775311875537497618628663297760077276861839195565176049471861381713620693085613525914009559267020983202864564398254066688509576799166319791784615261845800830222677934658919418090963353815834254450735865091519750469222415107885085869604466367980756988726423171104590202150241710951666157752199210330067657960672749372022202192377809996051628238271848228824250921961453273199433601357484559584275721971167730279013449251496169172819189012855777148936185353345886747126872518790417880156209022454640479724663255544366498375422488643897276455795275451281949034455661924489607499212245255671242409629203343205736002725326963075070506467410440365143751820729732098352625383053821667750256809036463533547133543829885052492424171542935795975624572855232525631267233035860395666628404403116999673098750400975935660733605036686338932185006416496114544204562986122937437383544198769767094614179833217795427681916173876652203508816738362191827154642815371076804897613986865066475493881045257113908374274136435991261166389312184865931054263772254179563906291712387214621925375626765066331729459696731097783471118880337112779315960162836980517419877241000906682577187468538673169208428127293530661395162271641292809701034992648592075598209464315253541853334322748741134395330849857110191768772950918921613673164068469305655678184305793340210179473313291658200942974982471166062601856650043675779573015258310797700641445327892671240792654341730048751809377031530877836899884173920658081988113726769408670608891197995238902886657176705474215710336855416242807642098518736192619744172246828723512142979177124260022093907274306906637730821695397399933411752149028988145947310501016964196124178589973972112099216278026387488988785193858578859928824980922425714892345492126182435683891686138839040691998024471584317438992275771450647357374892617082635563083832720647795890873599744820680174094407737570057425128050925437107388872685392841815433421151361839014467455696091261425565586856159936321535861796222613709985579795766381456165106664099940726267800691583674971156587508893364620278208010632633130679496644746655821093908064622931424158130603095991400647662945804462959810859072088076589579071992192403396030777928043665192742710034196820993981933580681349791646075732474154995130208049066698831559891509294702268217871400979093419576392581167880044943715139650507083763089577253870465593506702467734796248753863861095687701326139888584842727905538514617483334601186125252238450869582878958951621603840570255524930129805449529477994082589936862009386971450173723530839898011885561247540423929058581900167395591979622586567035688654263353155773092207258408012390288478584673581393979576363197093269116116913524348111596806031867514473439205779857964824653985696424913464699247229477168193165073398539583576243896850889085348355717139714788102576883242705005590066337943159569097207176641950024358664421324544128256524106123262742508761599208743522682896883481413111245984832540325874986326029806933849064430961310119878012941740617738608646757315461560492262032783084620721723648016038606897740260673509908297218361743959249958229752555622996568022633914880403384251623232363075658319532939550163703119795019323513696879036145273873344822571243650420335361785334487663417279381835580853311486139189516345024543769322699684679234957002769796340930334186455225279851830304343238823840233252821058349022288695807651558182073205505916954077161986207181795571226194888276896143499338763394566778931640734352287176573200105351170346254403492013346317537944649979698126396223834109164581453353177350888155072175357537345493455409667131615270230268805274519418794766300598649823294571921326298006567609055658210789981117758940242653271547298035473139423487617827180753719490244304480984695450267271410306786736549411055646393712872386856804372497408943335156761687588686955825417977945108726902274313136702267243424001060336073676922237914894516587893208568087268380288994468490373245247000206187560686974474661620665927468183368051596227173030008971430317548900957385097285648289295764278643468109664939680442869188444619094554247012420438775974965623508464850425647076810040480702243834818101302460640100944128056036476378052203299987386779602225919523700456467686795993574418225939328464303289844919108163341814392142331531168274985625487345714878306288355415298397258552883971345842039713079531500258224812809282508911149194988010068542528531580170907423415531992628146844912477604842303405872600640530640279914030455465855684578742977166330898884981398252739399430311788226677327340788153799556668618338651708505837058582443208307404713848841268616570702700350867143739141614928429391722508273609642169333378880099164742254102214115381261820337973453016004363098870467388693300713534568321092319596326516565241858729001292282389605689721757176780982257848604276151552607095220504770808214612655129315427625823871496516442650018987783214003138397874313434593928410512252624722209346773871345094841181052241037462161239133996351012195642606080253975942843610053594324218942822013518084030363017798435512262757045419666384235493678743668202491199560614675261079086919768756824717306113242735980926079280120518260560442170078170404516944125193682377241214895004167134510492587017498947896036165062699237708455156158169583110261247585656048685888463931639686763085280290615477808860768066890848824430792942240759436785210394044716362749144348939520262524182939889765517008255683248751364624229556460534039125770225383624551258274161249053965247846770220980116505774601755238598313296131357928419642039209188845935397288866594775648365953537188036388844880874677874058788387791598997787194835994490569609016799038729281578371162533946076594277551944605864682454656914602284875117959435897312389889849585409393007861362409666311158237341838199429214377564188770182505371298838642587042922393058291596208606298743978690811743383070036642156532396408262687087884616561667990812145750179199517348183055175158302766031105108171000660192204031873725085683042670954752078343955415187248375670942531227335494369805739513455658755109397526696982502025735730717570554040114664302713804028344713764597897351550387655696083240470817461800771544536101217269557952028724095269079954308982413216947148857978626576965217889786551413663034862580179274606520376712090855083404788899631630695542694077255176376740661309653420707760190900527309090368575866031899638425704779036826219501944217175076783068347017812822714947096797808398290414611451004310450020862769455101770736827524985659140307333538382691417169943309761095600869847366957098650811365705613834971865766135305451294555315454531837542642493068105623951719858012290595467756199588590043410413467632122878159752997794386835794638631223070713656347692416092583470061279223589618992947208019345025128174836428280026875741238776922445437422557885445683235358136130899720144230342529865804066170227958796035755205735104607773649958863504044443881654381037460082039886022734931182078776195653619285841301495130481704510776003704118532987031136869265632716141728892040706309769628203833139488876875908765653142920791665890873983956817269199714351822229016266762090741591807379172939791231542136102203242526082072392039873165538386276229968869673051636449324426019183790756602499587846942192977442346627484530171958487325077747301917321281361989270787219059970243116892820411992205238563842873079746388333854375819253907998629107483959503355819567615153165392204746968343849874282028636574163109605734279685944127935108154845733336247133464638972233238008717568972380349722415081168973893290635390136201363765625378563234242167783221875911277639703344724159817789784238452182996812072962470154758108158539139893306975756307551394760818835886175105792752109918280665494079207530954363238441631719652220029169783428702304868297149079630065626100250428673315740810360082568031484805220317230171371867806686250181114985691970303468626428938198513948468854594928561687653305368704320494498027370715436216726734068446041696152663140108331128546131656802269461855789005243881774599984943413595490090079974347360905524855464027151205069510150209902769763590629709238117869788750543175905981391248121876760539925827826532269621759446515527656995496122334122595544191766133878524796540568837610739186679196578519697737522771705387112439971290932693267406316738096847276060902989247976086675284518966353990504765534657680714540599677198213313989438645649264985600922068313455062874788690859618425638477278179464119545328897046219682372265977276295549806596080045298866574174432131307405505385785937415949493698135958995922746736218210688186331504564506116664834801907425616502025983087012899169035318674818855006121591986743896508368303149115485710367181847823438682440472720817687526904533026147824481268339747811854791719101286556390119442860828876836443713823831801448962989188900481804744504984327782702347362808859894478492655550450097098738630726739749311699276338940513089896556214855239754382841639578186810602271772343142188432941153767136446291101604117919079735462399014770257449352176744455466750875801308415618397915918091285977234755374473910755520640426832044321068114004456260611837338082006371599433034492230057488588060522566159960423681468826821997315134099101779149786746414805291148602417942334312934605203829834525311976371530249314051361023502622857243919669034791897372438653946067808781748365733083496323625333126134696563142123014856339171726038348312561100652891774399817940231502988414737206137616285476008741869310000463107445159487724131681729431912128213182888222206778406500357942233396390784181086765635690919939834297048956543165517144560456900951986158801660673048838642284513156620080606078454341014997793491304780075186320404759524351994255667757827373610291392816012091735014723418864617664600887731066963501229086833298388804379593552487717382349069154490739758144600163001486885189663121462992063821962739456829769092111798823083291844515833307213651169661615372877604088209638234639281883386221196069753415758100387286821252798997271607187542107624289236875138971347483865246755097350766002506581831052968647427054676561685500263430655472564444632764053954314676508995560406205991014296190410353223585065847677794681226768852465785728251532009507231099556148095339049730249453368378925159638256305931858078697862358754302287190773704289177877607851027391402912583095751273278372775398315077975128760811834718881711682633709138403485017196926271960909770192945849986370599218768067282394412622734451875533761890663634687048368479568562943596104211916418036340144211126744007960120869033959132677425288508454362778631688126820545052221178257994429816811417927561909041096268445081085933866651288288153366983689275155354819163171645155146544670051477644368805489722334185008554398883776182471377298448518734221074516417267681564848795284888918244978866342030872699064603889127504309349701438971476906780585502336180317782571635258989343306045884166003848608525957559180827092162508827605811001185827351465201579349032091327437617565241909490314855615277609018953804204823813774271016168358346902974745484297078890375823084366202591354490654735792201278457139502658996908147301232715217599946581014607156665123797176345596015500842619269484556220987959165588372510699968655537122327939155934317922061654322252672888929561539778278069896489295641820981142798825747748147121442860310437388091405491014474276891911196670169287434871848644295045411358167306935783846327871538752588988322761636635033388266296032394085442677178238325188246985963076983510395665067707394831843948849859840750793284901541620899371395112357133160198733824890452180165454927717212461592105180739899846198611962124606007995009987806002964473632637328699804215919130008540945233591944777526654466151767050801466521331896012579137408213475016496704121300022909366356840940950943049839608821652154271661195588004910689942000226456244113551248788633486607257629526832009138899293175857531416524035435781668576606041886874939215161803529386986127106192730439294658996034737123627004862736359532277615836290143939860220179101279760667251859863650518101710683983404012897121162023296193453457707257527078342348429031248296796972197422887600764998738344938850981352145659774627861414918875330698733782568585840590236017008862760048974270176041537131618298013747568491955839518647830064536228720201420026813338729100767926407983154958068025016472363696051713363922384617695823572271352060783033234450673794062207826243891545982018576602072387586538701363294414090976200563401788995540492739118742981305420073574868802101580296977773598665535407327296319683397157359815891626502323179974464798996071342680661955503205235556531357318665255997359957024158075813199305716731906030294740412280763658099477885831843796272164413478031975937218329322918927977743730598966149099954329968167537840789861877975983048234518501923511169126704240483558118672290541683739789417019957746808001861769177697404512992651546261412851364889912071609571987152740165284894139035076771123072824373900143060939142297775722192115828518117360190193588108592264868033994296471801322118647068575748374383279150657277616500689693915262808583583027882306655899613674466075116790067414752228907633485856370941698120195244953544752269276773302622718404496449962506207466875818288242989406882311290870344332817782209884879770292374380260342648720670103424371747133703048237819333819116907496324318832934927898473494626196282766089361221258111051163867818334264215407945436803386748800264271440096127535292544156850066697830925305640361911831093626676972291893205673611964700697668955856528518303368429806088126811325282680990310866121018824557712754870476069951184375437319361099668650144546582318282168941816839950477861689490004961958039217655231452399357770119581380014049207814844449752727572332357994179979885085614802509540108350232256639871628471863366539800159210481752986441934138021841140968613990681055499445814475417249622064577670128116366089126625664238347549126130878665723326093038979328883606988487428889925113989412043818540449291217531424525932479372734845621842048242409241786532422933537225433188103919709955042238697337707950274489958286576878296820772746159481171263335188167889252848988890352576047302758756480199159640026175971803746912315310714857838849391651820684492385105187579809235553329872888978965544790234924070713601215406543062355768889753401553051288891890501855084744181130694710349893764721932129500278322843513709460286048801495814895459146066839007064157612668172498656430390781475893114479763041112244540230386065179958845128569648461689616817226154002245121325547602405689008699468834844292237849897793047086358722364721119839435379530637393498382036643612254064662428485749040708335845217925738149053877466951962906936443809817953587567390302128654322125472086374930657365929669505389779477289482365710993325560249406680974582480105195169235434087979312484518690926541725495296776065552396183044900809491486048452690323718137230480753594790228742553478338926155724374450375143601371649325761585152611214845881126360251601290539695311011051680218660184439479457028266277308558114662273976832314192905162312513275422231879210578938464676105964452739100135945555896917848037223710771354450204614807241239873213302721552848605604418848042022553617562394715850319201195011746831063956462270628272724387893976802442754510266192415382750128681980812377358556763898564895705915395866058220949298105638194743061154364626531064378374477428955013426126053798373729946974620819592655456706739827161785549106785832736762792798749452950897095302162141518998342789393087117285702317285866856811413929493554035420401595229592809573789914352533189003308063540132793847443368955738947107423827410240354711344042146587039833431065496506514582303955668668486401315555447256793270337443846894268017262496713681949026070348201346274113973828931407392593619269023883539282033584342327778255420553570185418987243968012701366856213596523716648474698251625680497258861595635189839813405256837636861659003049614638459815697980188647388532424267229088525169446448338393033698345772676744852551792684543879045787434570333217333527611509641112968302773486534100418616665797061393944069597088716918454857366557492524669781523604724306595571159629830675541016924093996342860947371071031569357604263880331460356078676310571310806435699640720638840600812502805633148973362075855863484142368303301292635104107582515608265853548736955981634314059756082184354752134158051780814031032395599978448005195409287235832514080457841654434760335886357055223919352577621512356602907402322039183334716616730869741167116895876220461834797462709857610213649187319362293973529869693059952753021025885469986923161263722192047560688713088473432263695945463647539421168114819930509662101718060963489975197637181212586689150422698644068430651233704880370939231646384380598713722541035754451242398765129884038753547232664949223500590001476421826255339067034459101234221319386056162420760662033861703995590744197570439310159191465314270659448596401202496460646497237404349413482111087179354289635230066096872272221792426249881638219338566420938624472805754470426385866467291553991559648445365200514048913114302322926285253988130765487150770135444336464151616916782254642033872748666035268252276236333297226987540543890401206974005178775076554809467358544123952441410417152112885939314918355253501790892211789452855386482718758764830255409001028173166093054281757273340389891759268428961702370705335936486279395750532179828273810261139567736555754573891017360885746232608686893705632062124770250479236416304451650929376359225608614695302213324363829329279704161613392727779442159097782856171705736384392753793172645287949371878430457628377811679236562928029214696507897161488664014023342838255761965456972100218918613230169891495426844044973030085776534736932837207705304689207500128406140485022688834391315747338949880653471583837143240715934438144073402061704479184146888499649111698903940097541087555446585788244931310827899803122977822252319872565404081811405551307079026973707699278997465402433106341359867990104826291128205323874258359903570489497990516198375425610201987414250137209424821517504784509655864537153673711110478728155756925797905723739138419069463690047230933866605092769348316648799999690676712668258311639021684276601705932224170768981455680997306590803410331441034523330420970475290752953697495597669666799290121629678603377368639897828785373541747337406217454248054868796483349654111784455825767869882254331461773708110336600245177862558052545912188043536984239813802410898985825872847312907049355989346749009388609483937669350299845476809212171362908056891313914570803162047036977532969916330278644350851476847178032156189548404037073130389812980248179048562233239470821474881979800546378081342792476893340358177272359349898123151061714710923807062000581993762237915976238143547996275641929757475762540601801901029231546448995098062031007410712062090566077828286762110546324383126396625494719211846231284800112744315538813831609195155776452165811389848795887485416720438414643524354328492338856483682596083972638915514332119253377945928771406403281977366563906876202754717459717887293098141449253225086037737798239682909308579606747982720697009463789140481371138372642442658844327946194078448332884235571038565107785096118693857542839817568976460119565210905770690044330951636478378906821058856388985812267143971233059105231266647905077683699373502447529026908724085653007113683328991489536492629630001234714534888724549436954206402098515742091046345937243564231093971166152388780468417718393392570325421729717182717279653730143659514978660652769267922541261173299195847471702405071538803706636265355859383201238007053756468314884810545984122066621881839337834099694078389459866605725386438415708114202690154351061686550907988495051741943730550953894395625099424862428531256178627271826793605894472265946238361807685317368495036477653152428980307856147916115031841934094021481052860829502392371178686301116748731262445017254482394271278457097602047809256912741705411378389280836836569053864262289211507400601090049451641208663183978571297337091885187815982829767869701475354580213102096468914905777529343103268270997251331493061761665098507911406629420745510855526470072624848948142335909752343531128845936353554395743028981913882692606079668694867045515779101561855937112085888680588769153745362628600454371002351339618572274027034091319929002488731910890612827881341792532615888669501560280002800231502917786618149455101008717963233217619608435547416179539514954957714542150306058292318975483975842760617781127022834847941077674062541005479282139162214977745003753119055406988277709158487423814242801015853854862046818481212194492547351614903165392404426726207401523806754145476751655824812837947540505404981221396053529141837763197187109024832274960217383785972741785288990526947030576465823711658998647167633006179579943471952498667236619047345199742736253682073385142648821420525239321877172720226786093180866823844915339642440501756834693511135234988494599865417189186919135428756914387933858525214903056009535640098830202991507471414575713654832772176779041857730031089604552807620371136927565072860389254019718573439929049317329786009485574842512385330435062785433671141978948877213340309804009180933359812606697832611437645533763887694548876152413273524365936044487941827834355509245427957211106734318472071915246386039041490879381713547133270710699139639191032296113301391213065856881895586723576517051527640268929563367236644788511618899557043031496613966835416316310052587906523319257430553373078808950971918591787677176079588081517484071603996635737132171271036419493213662907403984389791995307389997714990574511301074598995434296824264607749387231916031255224175740756693493910265119527958809921908776424815456091364213348208614141096262336055153851058936436581165370836052865839942685484262943836910706036107107906712933562069463275706693693960626775884541954667090392953851999676107687123570487841068834421301888196625608461914139190446986115652308137933866653380300955019373257518011447279459383367913786129589580168334855128597182391439510273457897096277867046431931751237244268673206556230654417372213978322832272471548097405305970997024701057683706713664622171068914627654815317700997069535102322454829787046800259462853029818252812656532759348594238428466749067261792632537859740246283098649489992455770868442380190313827444050292916682296592705684961237805552645261092237793771568760452681219065510727736373047577722796821602200453856726133880746549476645985184692327964007780562926821397061627906130128242883749519903904746723780223533181092489544298957731776609374442979926145718854741479522968106922753284523532259049966584400304342291774797809483002700006577840851254456069895091893611117404836225251283682111802915373933929867087869403324806675131317203720774899880796349818813262872493340625403534379637562295855871317384147236555871835678243517813314347589233753185525148719953455196563928371178289842176056158266267771251444171859884352909677096663754023153988521724272731811135914681479045761011940323865084429622902638373078028357330429128961164125327426561327107969608869554794737723084239925675279774003051717927732041920151671098697016067796752693362017316402679130209863466898299218095116529723435109858996647057716075140784015174034803677681135030429501195500887649609498659679595972666279489093714486395138023817826676966323543231103629413369778917045134763631330426476528097281792647952169982606548615232163209839790886749953729999292925258070273978204038802716933761620443563873032368141572025848022841057006549259581503502687313024602564708118346816941972374253593753278466522688315865723400175791383996055875972630374894279740744012021851949577731481611454378569769729756349697882898898422035850315971962117047229084847460406126734005390228361861953561757765902299684447501584536245156155660216539618285839142337676717772279492624950109867883006474249058885780420019133183340981889286273029458242733400644351653232221331473787346555236240762315936795496053319078121607078753703237718438960791334682484658214914568120382482276967224329397290401139925167862451111918427718190902955056208002785185169735981150202731652267301533782700816626211355412394239936108037185205284125767039367229655843031757362098393142032877235402871244615581772985334883032800225897932474312568462371886173394129036617354823278983840387909769734850978629669853220719011764539608875147923184706280503185424804667722978511033483516711732095499703702497685144966052903105730446661188172580119896964497703149821020567281864689366981854042497315825500145012277111998676378043904176168283156679159301777041015395005297424802243256301377056728449886704655443644574559136746733636884534706545455780728001864934074519744717055886907446158523973833707672669215363858050797646634987043914950885923343300385282546598586763309466278790507485394128617748466178021278644553996346152155761778080375692052121560036656175005090912007222649401175710886075565291145337928437538680118098224190186515011563647526246600322343284273420856888276989822466607427006514000445555438261845507404757219789765830327503062501144985773082759690926045905502478710673119387191854071825640708143319766231648625747848469150598331618923583664873482697877273057437749212584693332108190800159195944660896781521768874369570082492251421578684584145030838795645372910019462759360440379431696806517464701727743734998357832164563248295057121258575733873094448031789787601409222925500049365376936223872864808138453619158594657502268258554799555747586488672832101276980070509158275783514120273374150753117721557611277821242868664129375497939440905693392270273766263676144949989134192561533065079468923116162777483508478444901223186982415314626494357902963702500654239374744882932874679919343208945096052658914394197615140869284316937340365750263618375396782258736555360000353659893185266424332998423480592476957834911854870036671945654025855099976692591001839732121509389414176676319661194052686153925718520151149022838964820465696130016202718222048702756381107887960501945225114286953405482318251423830833740495735307929260561132756632834356948787816575490171920062679609914517272243365263945601552221677106638069931535356993187563503399153723736757160309092894193002215683347853055449911398014851967030828522818989046627210323552282183633125799779621312831463622657678800974922585265053810903553396570075442620193181264008031580149042320055922813739641643926728100569167098629000079829648252774038214904911217361112750013940029048114299042936389684936790092477246492657505785292757562457407992675739791450490488068660522123200039084368165690377384889882477208162856283067523983324291096615824728205982979996832054721924286639093966929886347350526100298550436841663447191306853364567051222093047832829354164916190153388163071656146411182062136435690182977014552940319053801595296950606376564417928356321996881079386062575628854695198131996890313459269918665380190890378808065472359176813429881123502662005148765615606978681517021128410012459345582999386424341528722547296443556902431772729593799149079082354116716675784724036095028214150256757530083424532727976540951421692882485155752396892990079427784866271392654662090017969410444598604417822090733554863118902742459485128527377188919296032530249922015970949432233744485308762819264978669111279790053703366757330014841304987391196017102371065966466655535224178294298404874845729238318778591761287126166635195277970605115900805041964287183013848064863666136410086795245831901172843827839739363011354898923216996541701933798512452416130971379427913419404177089775961482503240587116764607788900394183933309199610885866023442407636241921851920396154564429173851943356101281289080541518248062216834162148142963864863725469029146241958216398716607665734384587564587491153233807017268532223278062700525309282884258859024990167002485525398609631227311522789917079876476502057729542856087599672228771300915860299772925333514786440391784679423160282426788934916643534857858606381552283956488344338716865071263383264551567467747981662731743522809790024229648976537949700939003079857141556837709582956581890230671218893815170870934542649167339981491073223076292537756833742807908382084622895228995434528022563050633949898593714549735651169046395765005949023975289543064412279825584659417655982379557235423320486558639103521364145143192731872707101047702649793554130035829739231104976475540942138186385368093940908567748838333512750403315357877966324127797769396968884137139370527929099937898819003552452507388126056750101299265940570654490314050929153159422338517664536251510380947202434942479978389409403582941444442597523096155703250678722246826127543897944001383661599098120905066033789759833335250790609239485200365612176216660172098305160665347590130605659553026202219850015677725717947159630144163505152141035154523699618281360018130342416502506502849964359244326291428562136235469911096372341986021120967020705294765248937880899443793594416573154794066392906030198738099131058709102196137626687273009845080431894680927022794376975614469458969559166878809649187849460338464253819535845997818358361633482875345275944170991855623927769592148262478713972278289005559491852711203412153760323830643959674069823797222693757218530608983635909653334288459194023739803389252951992538857977041884616459214656327160111761988492291273796829518647898847630005585357915356174645668509631115038047909582290422205031661704871723576947579391598444542023019417590356629795850606190396552457501812266765470045588071602173655626483300944016129005277009519224513390525491764156723605635538659277966626266586715388193558411074088319815007020971410242584113283213637691381192834532245984763895602978078979100189088044148169511608077152365864588131777067205496806711100032196688877218520929555439035245864554528101915712550043409085292596491979362983405540484707396112308718331471174848808705594512260275122944248721567831417755435003248574092728979969689524951518658252336571454599162221077442404709490496603550137342102936921521750055647952536900778926492874371050036163934327382503680475016004902793016930918475201636351505925543796350086929374037006997767864143182807117442825302289926619758163152762699514480663127445962235368872598881371713376022951845446731711600716285184701170817130961167124682595386097024959192341939788493561395442259767232321479133491682114665157861657090070076205791634711095313852502644492148277639517908595896198915885451189687079677151526267357120738824054809159793301483881687272497667012799264652531168538845066535509888887727934193803281585819575216541207361497903404951217006748681988126826788326132125619537049288371639960312035132924556684948598451230816507109923312213180778579094627814852644283827097594141460618790167564611268016585960777380996662820563594571983104213113455455837772607203404668106013096318777327398061309084850578193700403215237238890766517126054994434280166344965297270536559313264719141861996030307858025510026944613693415159748344299385050452807700379430336463404987493336802343350347054660822793862577871649695076822509583164604154953281025681733601138834890136758112364109664970258419974236583680687316801497329415465937674381574976839576376307257458087990005905074116808883203273263154862271055485408849205461993277143717136432620118346846422057354490125737837353122577578285969239814433900925217519094779895711984466772992830232960788655828823662527069957480131609819120996685203899197920824408927358265954260848436030193100652458160474937726881119195296106151393376831096931359746716307511000900069641398369039439805858217160023585179213149681936470043940085786363468652683347572741873940324077762267389801341901360417688599763673061042467334821596370838900462909652709171717566361673903364859774745577649194642451546877651071901846015187637794748021035983608201132155981979647292658596876195939337678719092128290086256883360409706223116605845749448817716301033655672677210827911099080513598157458072146997148323533980663109297751234852561618562591444531617109103044668623267539270175870356589234965554924511818325017428014150689160879603937455163508857678856403466192133258263221612288622114120142889496731312743198680671215855951386065001247523125798557398437403485292939416956683893750228916439224053692097551471182836220421329701195118056810299710992913326024466656616657316654725731795322109438690029362186443797233281805375505144848051240413582380878434041228808280779122856175247598214549434038285190141354575675997486729601918141714447192283576833334454757765259746635592955385399092213354876894593964526516916805835651671716185931299644473993853880939768180216141680795224452547270869522365522863272215762274833393512951294406954065678039420378899941014285211983308471828312527301902531118467635028566145530447147207038496988741861740158222505603253551024053803542296931324342728065913595867454622206939813299750403455972288513697911028876517842852450857017529904445496559128274005999384361775161667086953414681652766876801554116860203957891441495358635834733356666637716926913496490795778589027177890950250846772348399081850761818915954779106138787885308640206035406385366986064532655190201083457493795216084217095334942592536105332520859907163626150720186598269255147999573493243395990943939439973424673027304935821427167989843255466572574773972771030714878221163992683383077113866165616643931673444807041441704231089947178752649684147486111656468980435085242050363139470412331789062217219535776190242656664522150118899579964904331678486265202060344318342160753079272578152410432984959026162812262356572054796230115450784177774052553913502282777325617508985984403352374237920858086823118038265114607689911755461861093257760331422074934290965448973105626085841698467586009730560900851825882241275262441490927129455202376334044181180139849368513871464857912420309081405945919481788748604341010594081062256336757142772226450875691685407264026778198661504802954736706413974156359581442759940727793098011802981813828544869765385916126699233970101283069369305956409433168233352096207090270100176934303325553407913935356823587666928479280230768126697370101312041636330656936254041359181404608661888691293325610871263286808601171498545011902819317300855595510989716047295495388033178984966274405593046793086859966587191639749323863329041303020705088097963172425914284958340089843529211721327966645047375125105392760820956916548840153571225361532007982732640668447985728199499938809226128026356417333794572991472126265296689165587028885083943157488184439317749311203832161946215438790848756383280475724573163589110972900314811647848210780434949774369866001654811290096178971551799588894242896096586544220383895258564021423322211502536294265424437930227822487397204432361916504427656467752877532362783844350021258260255931099576071720188461230870399366669756631868682444016126481293967621835978453275428027451945750657181121278984603194212521067888656061606294160910416425306116757684892471049190029970622637651387225627495985307043812256407800271392972962221301659024059906166648407735726058658184547774238770579429928837722694337621217897571307296412809482894216178685577930084122223736503930996061157830308280369871457506780340055464545259219647101804387102911997890744514834851186851308659040674317359222358894001568953269405088231659449289568780033978031464853963800343333581005897295059957031890895169333088053804578403488405062974899936986671016986130326683220048710708038773863949534533655268936092850818600482802788206485882008108518726791786677413070449507583794178902890511764584543172867677312248571208374070600456454625700627360881373353699834547733951078821077852004120399326677248471950553767890017127539551710389597818229779956562404095911395751434411014647949512478269068884136065478688480636310553993919501524270770753105875748330088110614623742475696137237042355151488147818192497637152410573334435201168982331929052010687982992485251070250646061575601691431787290725653289403850692278499461618733297303964008524575126361603005672379003134697477871525787402464844415248731340103461380404261269040154242725543316536850472597178524423416633082534718696273751760489166956038492672885536013867875268463037227774502465361797045392089301605631440815052183035103317607774798491520994383555857197403543237358377194015869880218942265670654054474726880963758674576586469696576841026598674514421953456999230281436364287671061540831706264424168800778486393035762517496337830009771681558735226830243991197753117934466196386441241918056120465543973090257017012859886470852283431356465916304985295191919208295900451960753928200855631085140636122858381015786770787571762862702916363475365216595833524672358487410238684655654853648203988115911551018898893137345122430139706380821124474297714155519797382550236557782543560386932498103762995874664621486706262362057013671706612797428115226172202690394973356060456991148588241755061847375835236465414104496578349343947967514781367519554319149121116905449742979762195403906313878295206503156513834373164129301121176895532017424402895037135236005928419528927929224594473632102691781340996307657382833921109093610611506048901753034366254879836620435634002338505335368369227809379733403809511099025220767295974425503960116246151892527141005036149229466346076458129938411409651393553939598193003903345281152794841713222783348941586984954135554429148073327174347850066308741085563711740585751262026517778022895821895991637143334173588941544871436714067561156629734405190679631291368349152469820778918388541497729745346512467891961765918634859764210077110613609705875262282028687220458942442321554192947336856822736728519911687747338820677008311521905553960269998910251081039602791302152071058884846854077848094280875955790357432376234923205283783793646973845339358465138901628436904328668939744576192115350782079577486900223476317596290237826803020043537504168428765708678904498438973389570667790598628811139416792608636797889832455587402563015568626733004837950085576394807602588899364105840637672610157580711812676332266876370003109722979118225421214573998853587052603548068314556847141913012720828645775224681053200181939753132660393197421327828264848660468939368332359172247311852431941482089663660490866469175570348269610139577496054958537712349502792014200795987116082551625847340593495363983167479675832468806264981364131693059436810130144375812540730283025486084315500633793205164271796501908053265677375094442294520652258822064660257878676127453520518093872838512037639117481849720042215893090175143246559764260157802083967668271057372354975840238380582566315096085803039387411583891988883298561223861143754832392575380314878100932253092353612700852033160717627460941176209033773634632270680473073949405791239563149096168591755207227730155182615902496729785130231469501957988078773815668350974630451579196080016591701449510425773888117977348844387786963280908849839960646233092992681020418375928439300440965607660473885124746130545825685811153339749646755807387893623766846891437591821243908924666259219411292705232257542279108619240716925039370381975938812170577352292331280741343303008301399235162458091719361566302396593980580495311548657286624320118081757782047008622018595115627061083026971091187353202627818075118242744300907992214584676368100152002399328823485401700460882270994513624608617526329540307660139720448291905716290620821073815550722011270542942140496968173523321703342410873135741897780010111812867848205323618014021697473942334498807392248727148230231432547322288017790753690311195355236879175827312171590105998434257973575618654301882283947152351816106713739905223494252831415131671451677899725728318867837237821252822223130407979800388706942552030940192504095205969478338151857818599158112182348824537719649489818571416996087756888898753325084752089851286085209182128009562015173375648537298296005416796403889893401331638472752446223283963322618845715642746725237657015818627021324173286103040996537220120509381149153392881827056263975582692621187678333264922435023477065398597292094712905101044862661389956620244691982104176127165357539595763111660768130720124625128161296981239109923721846966069973048842942969355350618050480827623846137188292051361717947672570140498444278806905783085902378046458624351569728277789403470543323221966895770420504550522989033661728253873366298483545200485232686330930105942577272576738192612522453166622718329814958341369063222308794404230416914344250075418910247473049599850862846453829032562293774248479674154387182623284125037587382726106725129758260394679559031685570446776425434567970542569079148398071869433675560163392872664289211809105494033817722639028259481798648531848256107445903151651455990989420494051232905124170779350266778526165149474538160632737533068359822526068515383172603259205712579424904907058275395521953355780875680109801721344388854596790144789947702072180379985479875438398863889339856056847032000195424907679640658840987697843619711190371269118856914965407212557593635466204749948615417411567615481092404137341933906167321631297848600398809205793399386773083552471974935169537678070241798187386422313240188772157893225525539032724628584489676110436395568220304898298769098607635146704961351522692817346348346661055550014026933611071507790462598095767575239529710332364341339548152450205810545530217868341062706167440582305274848774400497655227018659275270743449008655648873453045982004846221538390861414706657308968507873882299990204564441473435674277484161170940648512109073426932679948548377146454819800115807751372502472371390608617254802473580521775747758753253780368503649851446139900949239652362140300263063318297083206334953983999467017953071395422069293573938480850726252589696218709303962650302280675398364213570267143555697049336714127289624544309383916236789404975758341192452812794560098936827797921191566079625250625773271166835676599766414529621531233124122244971183743545110946241178452688504948240105920809681979982405600058907478564466979871904221843368529264322319703737647512832800731407448923523000549714722253010794922080998194854759471273037945398242912345827120256993638997814033109164191424611091471151942323900303520426034711288338830081111955063860446305723177977727384363156495230089264090008302202918219300850880867591942621026526506138303188499037035499916573460207179879007517049386307445428199331561232471434434666043370126576284762202251981569699487315377007874905537466327636934467196808271389858110490400288270675164803986849279908084916279338421016076432345763282821837246294988719047132014441815414484302336651675517720645731348925822910755094212115747204132215685472195226522804335941667706709831342695806045523700028591259349108301743427301221910808047887805805907181299990423748393705024225432999261039332650012736503588382030204483413754127420186330983121652940532658988159378088020469027481074285141068669788331220197916014054324029951027193495707812203057190476188012288935518862247079011001314905248192583029834665037732824551874242845165282528915401735752221555728845150867341912458831395536015109301674902186552817085808578289805167647675450049724073473909916475517073229357976361164681177939371420379434077503552816119251261218881664312622570122030894113626510631870728875833274829893733914054946207565450452551447295235328930205293191860857104610606786627971861409215375478397096400388645833138276949313698201163634622641848088739342193196740655109315346117373673805828956982703018104726658095031963690043008078772726045400634637528212667835770885174247549204564255629911904547423190953361651069919508854822750446489984954137441420432951582697732988776008981199020981635535674205788344027822369114838937014044906773673247123340703885138604626904186924203321054088629735473735458062834247171502758704960369198761831108091569191716970723120814536279684855492252228079198188249734643155208124823679089795433290818577428781010564987111087020987536725674176980107065248608656382167462493163066122355191725344333887171194477963776754450990615668953701829375327129776329696168884104653965240339435609639511727242301204371353061503715062478934864283068413248234198198410945822146020652369521730072664185067270633750225043161602719372153927613530603043697912562988755341654962192107750762944595757754439239275741942541848925910156186524135692540422297324738268785636872517690526415397579222943357105919251813331335856046307401862813543667642165988983042843925957423989083096553916844713270369373611271266690126798737287409140780491866074500834711380131592703659248840481022355873359793182349135630042025903389753991828709438031742165670475496447416271371624738444789452786767720210291300491009995701616265444133229040025196201535209218069430525548250978482849765325474810012472863308679302066177207318857273973106811126664540066923635100431322627735709011881729755004240063708700850070748711332479089796201993544471507694674769453331806014651865126134091630587802300571658053727085051774276755858762068102107320690487186926251340369275692068635863040877952932984709177660593518948817764114081298642116066234395689739809824344662625813293363280535965542154379983783587519775967423786581955377709234729241058307268303534535325788749517173221456229278870041497481975048707720114638714941105777792817197453939876973822640571779372623868760272391174753832331426117502236168751096684644695874968859771109016838491073896800148318007351667645701997513978834447368716088583927135724366445166707343407270539295588562227996174122010256419485211712575961606761927851562849022938494404808201988983906574340236546693105320019281287568824003348158374000549860788216345684020200072653953831697765068135838465430329791689603968087404259426461313733631023558608841503765451350703789154667507657873803849873327697366233133639510850732483190701965300037564827472300486345577371549980822783885098657883739617499122322014765450914456552740721984460932357205325944934823017644713531665777935340460756782078067296421698076041408470273754844409138096253568685511505812040458854374448365207116444991248592246102136684515513695653768023143997761348131498845035599824263824292944780649471626897531076733238045819160737956691749759867153667340775016476417608226811079410132407434122002525780478543691540864445727068497870487756952775675636195471637568683562299659250526350485474811752018655864395086425522377132395462462298722397289202614847124543212718373440092847240762995664210514125703834592002069224072077607883581914616833446674914324206439404675344369102575148815681304359890487746551267260286579219684371606110522622146061784832168204772590742544987973513951455361706590126307740906666691489992837354796127861957038439896883062032225424378224289870887384687036664781970925384449932643517817773859928314484122608344527723563817877116770195379522471606427764829416256150585145591140998643785902084504210071475449113056022255700703037204562241891880771179863303046227581342785045261465680894912361913619529249426565898980804254129727797139226988896770560301135589811210611428115980011348185899803123155167979247930958475898213036109411781766662226370832773486177668977887846886593444669888558962260284184803864846431372758035288509083718202926852576260978461308836448252143064127713783303614659671862232581360674331224873718724285946760856733536144609123280210226595364539052250780956087956935743650121342386746026127130852289031711758484880543423685387276565552240025974449898945280776211302925656103367985373402525551744003907559040769824754238367578507063972741810368130945020377024049123011410507114789545149697366681099642284028365011191203402604088623600368488704125456186410921805038835235504058460562407398913857074051637876937154023263891215043316301951031604839774001657812452019356122236979043565668050417837028887436720580033080401495227725762069466484980896445921544816132136746740266578672064613898762412468609338601359272422902884518079848137763221261933034555041717518191043225419969450074472524227618099761460714761655002539810526157229157919064409796289552894178735628555502854657167729131353974541068010375076582468420061966147609110968669298908773888598801693937397100847410329230840471152003341924360876909451043332943153749647205426822199021391475258447300575627702852745748127408311727088126753257660864647553633534128215810738932625781715754142366492060976913817430730822413524627283425511011512030452047922237112747945827575424769061108479864752964014135837898991090035067454840270130979776576129832690090127646496917408993507721015306296071115332920602693976713504017118339066885945171007411092218370267521177572615069968749390558286941834702447640271928892026275914988863603109949650651489696347011361964691507386945254577602550184467320950094057856720648628220300132166478390100629831243621567579074621361770492003198459869033328738618305240171066591309597230687160302264353842347976115481657866487918497782568490793861819450209429320965325857383770759300168858176053041498685349967263232442097218155594353786544668550469412684464908098971153545143055684912591765620406605550228119581831455232362864907661431182213759453950843377257741462941292787729634343971812072597751710454688172716540583943779334561925476438192325900602399278618392066099586088444730658773199109702877262713844775079059236750540399674576857687485855490848031103239546086777014205921399758971386750668853466734173057609448805926874785530522036957498200144872581691437944393030091292082723371837737427655898515142186884656169445970202412519991247034122286938208246470448396364872857022282420247458757094826514778253026696745297544827953857539980966549400305875769160403610794932086202858035628524814060065735800021995720641471574087493212347290021503616623631263544359532465603401740766559088255110235863675401285442136505995686479109710899823746276708093577790978063812877620570090687784689143999468815130546730200027237586513504251734285168443173727862472090534345821319901866440177683815438685222978726134321210144089721712595401326909603269976046374147376230099081880117365404611428958662378914737372704397604703088418827868734881301546114004928124547858120085474883169588626752125677123743976381828706764924943279384456865364161935738682499207299621275054248998094012356302791608894183179858543923461584185279794838549053219116736833257075597659558717583646969982060210680709399304258685633893185979776253699222095879178287666494681532115042919935332990946115233571834331526634684509446492047529454884206368835835815724210625024075040434614580628113333960659812059623755496487824961891293244580278398025366880042311893433548650979399082691825917158341530098728597922459750462564414982284619337984107511453968521229770350182914521251737464030107365788663941284445238717267799535739568428426236588844243353514260973504977213428332598599323608193479963655493364952674921032142391281626725917060697965155599240719558727632890621249659203198611389954460307692664597777109351800917708093216187075183676250441663050112835608189639943113707058879698236423981189030657920128502007932362023604661689102237290918627317083032016875442928569816208829946495090771632282135313779389397727700390797416398979982698927193889490814944598160037348044611032536899196475054149637695177721088607207849485648354423838210351711335161845198375659578706093164111945073013629284314594730255040178612458157549736170777843014911977362203415602374132319713896566119361560116069990380723100859454798814040317295808628639960798749751159654366205829521412215022337291117328842063176997619158469693720432194139621789647898464827104211305218821986924937970803377813946019453331279499767867157366441038615344898673280297370063733686259094763283134830474803827690948460268059317566931278403468642800810638731916911294183440241514930285492316704481889454740592933157321314000056101070707477587737791320136031293777003469852462028992812656751775362759569158646837576062632051527774256402503690886558460663460177741000857818560303836344064424718852604712247329374902474825540613685079342860778719000728657926790465260242559177518717266330634036919322285465692829661262038075164076733094539800600593239517293948614833936118229091700772766295068050881596122141482621039885108028315224044549400807665678842618274665674900208101007578735520741018599666840203100247353771288096958769934070325822440365102842979671654598863586249728565957713067940867081928335872226801710807095343167002536793799980102453335589477950523092102791224023623989501184920371107473706416821331463190148960188438423131496587616955781010711932184746686018942213813031151667944993450133242812120195271294252409939852719298446202922620610311877782731752962079306046948314899412543654503866524382020801479044187389341387011472387865543616384314289434691140276061544299425755843162078697046771034541477348296111255939183112590076742688980074056129591362841500858151018863157100144774450879812937168897222506723213699882103635232005657597718094251547616780787517157126276207307049815410201978406895726411445896549951530956935113172991994397268749039090680132181115225100835073828515840813753611779967804334298984714158953616291040719175351654486634077416086719383004137773152821411646491414406475733098293658780258788401760304879130789672881938200576228071537406019962770797389017294922060088569538319186134073185278012025855421141108516786749090700154362705349929040216660421996179052209486780162507190579835376741383089602818353731766803095843334136928481260419991621924727084111168557757956364926497988242416576649577540239021987197384119090927112851768903477367019333144590567827126845233469871998196173939942220691007347478533546245925337759624545673795540925368318843854735468941261175951436890018304988647735932005343358704597685399439282210082165153644154063053900817423005986831757480290490250160093583012770049961565127153415794670211533765162627711426058693573232246337814137339916335507526986723548693671942745569740466802202816397525558551301676746027623085415272690475240727265122249720582537622100114250616656337943732924553487154359126442558744481386411692292496494184551064309254961605985961696632932850396387796128287195464338232788223504678133065035542535455052925470351305982340057388208599190072803149262637731349344093603390689844758510624655795485061864138455306040734479498981975588649128104020263443928654456734046451237284734787632361460784453970030380200520632169132428176908598015919528454064807072186417929719577649601981898720000330823610232878962481041281169632361181573563746277883273211914112778285727688187712916090179787865388740150649426586176538848981814749917552780345492155385258926993033003755886301265136639072024617511935018430061866646301909152755108174729024054132356263017974895939798241969771871415575765580935629406613676938057108419441833573092099269234841057664679659209485831719556499688065547655435037860946442441181322301263041450008840214230549123285288702684384096218618024108436289719968793018240172336377352957135828938146598802337813383025201910713203591681069233004589612593662657459306105093305426635791316195414279383867315225414497660781433830558872557494593014944513248696931351295294512826422021941465517519103109586872079186306193262424607269917895025757992773561634822337484621091624288908191742666693049923179947764176627280366454847244873632555716632832466145588893167689878306274747837204580126274718101557789176205255617281210188190060146215924876825542414569456000799285616782289855394529672647872566790918228834412836224350364366111696460434927947316125726548350370935049658372864397542237169763824615810082665479060037266728834174320493382076501710481603326377436988260224153933026555232034441514682622384301152659577655197273284337711763031844836525384490957765330402674633126448598621747156253034327988260968200065640717687573468457537147373547318065646578446504561724264891668471230130931620110258775765018289090373455671939406890048822811510055791729632423158318244914654310467665135391583992282494996664325657838733755398700968476260729539624434608401555810976648460519896291866892153023020701953437268165149960973827569330981441364194490349526837858983932429453359507991271539898266195520483810516600257617306527289130690766629939851656093214495225623583466156509535978233574490589024007056264671487045109607276126843890059678720275445312551500331103114579465042394336789033616874603312372069373374175310414574990883830949457811577643835048349442454349793256992706576648478270955068628683607328486941221602683051274829937020550663874704043766733157624075997143421577889333413944667451166997556627151384223652295437811863107247671389654816223974274937789601438582712519911677370039558816391725756312060265782119392089017446030064002497158258600029516712531746899488443994033514206065111768920622234868213443223884017817636942246935930699183046027489869110325232705435439751403436566290085857353953886034674533695674475652182790756019140907522887883530524329582254075126555331687463914525262919091164862505586971552312025974135065760198668660649915363543758876141559707687958103505132498186007423709424717142583896577562393713588223109015805958481301408077065398689299019106890260593711461063705472986249752673339250933527874844865547249949846105760501088478972597284406791067204648007536251346055763149108343616613330021793581725547847423130660732742358976263365476122866421533233166771227634931121245971985298395627015441959709796979360678817613023806809210514690218253780562673625768353270716379094722602815707375180769720078642206446763420433746571678713257422504075785277841946144199688714438118789117604142114416865461942860705303602412870966118927828055666227970574484275522101676527372613939955959505225119785244870102625743696629731999571026952812809525697643940315551083026924956633131987226919660397579512180267366869472842846898882992890497187725208182815465511827446146432955269706995247358225735439469650478339219238543994298425826460040906836710208791322392533011694777085950042259470139393372639323278164607259927025054982910189603280398969268892203435297414435643683177044488625876263880691605575282033317109763947813055832010198739763088112616710460534805253682084478482060258726183668129797964546796152582409479629509841548094908550577217034383373472320177226607039299028068059188689023989507121514254039308362466284904265493265961212532652246431142047868544291889472222809049730369271679866369215227406203306941706371570940830507350632149766442131753337984282484893463305552763439979654368828360473506864269092237393827660586055530354288712175651645534006124793908133711798717889196033486046618055255121308888892631211698468986134885010037865457354337416682560571641649941081467260167005101034548613389753926573226211197539802911513995128627975982987935535986737366378992001795052207901571334053403240156237393636015605683161050428340393943829245247661359951394606211929542318242919372732193377704384573547190696379361238037144161630369591300441767450698008479146628776917174691690992526345988975528630904827656153874234241849359612802302420315099642543800583800438351512987131201745248872858760717388591588591673231157626267402465850887169064109833676704313148914147918266231897580587808375239697195853764544432348410851506490006443425535113377778220097024276139730862239424720102088831028783759723778172743730562820506712080644411340139707493183199436309731723414212656370530275557202412633803703364872757044425661070299801842264857237040430170190036130865653705418436800951767874391385097417530483533567459484376531757504190506920483763479181780535882003473733493568741346836893940857383902677328963383393692205346601959474850103404518653110568410719883790800748742750877637233053312261510094866776338894578924718770454065520570197035720300661288065101643237834471253996681101521003916070548965683773466428124162640398487921382218541156319388965382719163919325638051160269437210131018039595066801601780240014563697429331896070703582006740533427592889102741562506383428100797949108592718109046082281806756339962947759457916010774912877056317866855931666080252243601158501905137357583337728503122282241105935850729308063500759646129295837652770803190010095922332880079717874417647509705495572141446530461038606408428947564060027780062707049373000039564371872650919692321935489494438402068216193355980885411399356028580254347856802910504749807884227170582506481502167324962000131276194016771981138973552529419915855950451788516982417390164751438204378700164720470247099073924524023576265094430731393303695600853300731339829837275082328048529548684923279763726465098774345909620791814304040092291129393290983930562932448487601276712021452404219867134512729158233420901667534077853692988909439392162825638695692112090770603594570561318116127074471035254441883553890107626561735256086480867736362820527862654347765515017404217674740651413954373351160120508330553769961060854919852919688117323132918061106103494782012225710767890331230863329028204265933026094259650434540460047501056029145799137091337974788414884270695261643221954969673505819436334163185128110143814573651382034389685335025549233183699186145352937533108504844281234547466824708070628481143234547899343601003553091415445923400430469798492846789897890595478391424292573873052980691532538826740399688573594270402139047595802480663405393610077404556592441779152150599277139180862984207194057759123066897987158808110487413499565323965165282812617252057831640577572822344532512064137767728865677369630262579011785379500866315967266440930236834152126247310318790824710205459095091131333522630919538970851842971730808009002265536444543311292679715056877589517970101427944029534820953638772239792726469811229582398695396193414606322627415755961438031547317054871751857133383156290110666301283264819373694249072658470417063616041394887783526236768406923442150977884655845548576215636994151426043483720218354852256716443566843119180850507211827752022027533097737201816994252286309014766886410746313312256518914323690980624654502605519882191712194630684209528740515496609409561637859372641968421184590357089285151467837955487092528894863947343630883993464628259732049159470461244926452928484221596346107399531595145005335624422390732657250465280771102384150341123973429872625622130880189768320915356121219208826791695459428066021840178448157859418297311755397498169691019008603840948078961630782028676911824524979985072474406824960463502216331843752907047893809815602549874333158698404831418294139390787184765783478441286795302460773717998130981650877900625990744928188185950511536825140835468149010204019513038513985187921004306893746507294717339090145643526723678761527884054106378268303608290910959736490718102824343780345746663050640953486811261261130681718453197771051102346546983305701258879065696073711222095973071486999235515583662144261108225813364317580427617925559889281820463415553192627998766066347252892929779767823367402331167705927134878990802814559565919441534101019911108160346584036066195084432841448935495603870217767760269446933821521130331952093717281194790127674774029314508132476479928903811766984288829390492695529164445125811981409389863884971187673911548268768906243254305428670901700189193902308835719649614025713541671378680823369341475112650956227293226738150729543275747156577490771355199284410781655139826471242646267997024769600770401304977234876887026585715534168160199186664621948599839094015463846786615588727864653271628419746117474817497967916873922509853229610900517987552689728273969993108127786538670878075807473032688516801689250156909962380341832687141392533523246488880833482149210758337443648347369867332380160697744720062168087997559495161003216483081395940743270608520763612549661030216486021507696302503003023060799190679228603002703623860024315795627219321895195449331497363142874118411846217540984038409665254883327066848768976595732001906229385899698517319371764321905665250287925515752101265464925191730494652384625732733335541617328645653171540823652384802866409413613885740351005181111323887825579247649668513394534018673863032957819897273670822180982979966267884585557694980485505768177867898612288516024418128743560871085955667034577436061483179269167707805307521771437098987166116830615090002393186070664643204465087060844887381890754512934081551185466225418831951956989037315134698489461538321723361207648539419882890713905749726882696709336387535946180659253806040390627589469800135092139922815199289557814283003098258014629706556862867431023255966061147905001658109100389795849365417239382801776673953143723877228502828802002769654283063203986499496910680825746331555871678934596146183060934501196589943093827571604540181372074870021618654668269255668576261387623137043697639265511614044393939154439108909772439903054086014487110998443124534250617858272212165069933742222215937131896967019172450351167180601020401104139939589397131121356583206115714826300029088162508048771173973781716697705842343773963075197838296099527794387026756479544213237257435427581165656614695153387612411921780276149087742995753821352588292350485568328374486555213185968535640429057126119883585980392444024462087049176696858842678797527235737911740356196738352974132398497611688716024137680980645894128929984667710837765857355558244351400303911927693767470519295571265079826102624906420088933469977871348121960924530303479041371549134472571883531827048064665871300435446314297190914134218327803173127920419626128380173751522427226684783297241764547054766349974389747281879791900573821883957819069413376056383396195825543392394422411295215225898546411296284534920574607517041868412794292154365672246582552082534585336128737195940372273186115829209963070616067645884250319573585647139983723810547722458108395068634730215484355643544345339653199788676538401365679684329103549525045521945501267797530221565954378002549897145402650635456607164582779116152626406526208950719948986944157837876808468218409045563446788745222744537273258451825914554338366276974771970426709555895526360239499705133393635286421831973729868389700626157312317576422668671893813821033556480926900478863077248775605443649594054583092562815908992769109973633531966029058840817074598609328347101228957051417575333391441876328786379387448221574306096540318410975585279206135259033927416943398998948245903437396857339835280334498871454831706729831578511386029568662778714890620313726846657244275586025238815357607148272876594895449821114492168578149995538761355152671507243134538555265219680525476832361340747213730758619187680926203843888411639007460720649832718207674680073290800721818653593472342295771131431405028479362661367626812026803292693390766564704874571136904182967689056411966054427622080116648878165832282780863381529120557109360419123788864114201940147979625924974196656794112474847198068937831408389301170798262940840533117539942663702961307120806496641256549519450685689350430308534211515899428425512289393858857959556617383761732191871217109072161262350970592207571523143978187826497856853458088937288968518861366291326914223041347104415552102639825176552033109416890220861484082459550547281069476558922727099914626964721657427105706289235067719582369737108521260362412772965425024507968099357586239009571680741547833863100288908518127163876158728238887815945607313194952591214675416252207664460030705803999315752311687436688374979347577010445408750795802864847813340155528098505179913374569777380728002932421541050278294570349191596509690158871283007979067572867102686136946797683555798565677023127930981614477218062464511004466111990589687811899963493383731114290916122361240304269453210418554722357841854421326749390236531808288840277123197947061890970756003037495716763856522906622907717171606069988738369338686726240260310706202341728355037951185398967890782594027996209101635009981119616746336435294439033311877076345704643726161695600542006508444865901566065978597935314356488334382536605583584864733533893001782981212462038109086904049785177926592393499716580323310790357342869557000174854533419846563388957502868643440498167959874219353676327525589145867922755179300927696924338887052260535834652674367476097315460943345799357796984917702827867327454874092441812957061431348606110728641213207100733421947894936237919966441062878540512144370519949244620260701393953757347085640791950022124050633002093063028286730096990833514671294220719483071962238437617007930170411125074443363053565769336566838203973096199546342707482659318578417749407984456245735412428547935213680807935448549674993315203514003142984343580998935632241549485162519955129290689448525753936596444717500992549084086960011608904590702968179165605404138644444851862583257031960711239021160849608982476472927125219271431912005587098838260548564799762837470795399302414933024782139779014683095781097206055597992516014442056562059449873868459196025091051689889046967876569790763567082130709161572452990522651641439689866601183423583353570439706116979029281485558915035321904858707431114622112315654072103463896679025958318460416550803910674318459445822634971904161415033955790684732636450037602534213475545513200371874843506724865097066987974709013699244082232788783787594962695651993164024965380510628747469288341232773824549029503469932846704824700666782021207087308463699142856942441716781529645725250467205679028744605206701444661878786133602630147259499437982127374542423885700639167655066395261533376223259152246879128217871574632609453884722229196990978541080779452316090172914286124089883292536593866172269101041283044248018998480400864787516748370215458560805241978151257363281742705996951720669093325761818387300126636139477674683676773851402298617300479679422504307064735488063632052373762813436789653310420057412350077604791500837218664825103132934065193227932238235173071767619105851296115711471645070414978233847603020283826748890332095259428259187317920619502891435066457497687590443223750080150494352758162535882028993796790738975404621669012803029691025824357320598041373284663406776068679185420571184324103902305615420918557462092616653037983921762086545862676992421650216301298938506575949264703938131242830079477946190200698321539163462073660808108637104888790218560173136784032220350491270302384775360464500972179518883180748438728646656219858832833916245307271351277946853039234855343628988580059355559238060071589648916949457950489506945300672366211564167953324387098655056568065533064056677730317157871970036635040226927701701201971538761865200093567512414735760148301027121071677747944608795183316145628125302914328432803233414682700438281568567728007252434972427724946797519779350848133080266241384154573837110277839548603317984238710708660607092512686413494671112003593831877434625399372878923601380362096843068687631119829764522594283345913523963763983558592552322383490476751337598601370881067517288411849246716399150574753038134194210594168142151885012580590831803346922669702732677205346939704894588529744320986638010680805549361232630474847639606177545962985434976890228696877238694295042239799264934842848786335541683485742009980415484428394312808757933093473769701681908649377331973691883349894301539547608408927333223823561200790460952756188250503978433626351982354747960488222368533867972982756400102179391162563442938014387490222755366256427388179412173157583950630112257935476727257221957652500755837433966002277090723627883357832222253920187487139343646747287962060528637594707944390305509672448205316941170092912848407465922077021891163003193525625795363966552881052994495457527453718083762188467294402220581150176731459729834011671169672513891305278515665748283403158852818080640289396239912437821959730046103192235742068491692597974857199728723227546580359861573737700097673278276191352205237796859157716116917602039689079898461668583036572347171491915361461531212769183903839854710245904357519174169920366779746916222863735829461742725888678336366211500738580917744926924330624630844403609392554946977728358747834132660131085701068844466358431027045545086574424543922066045248389902596850782723069562483645931093019105848633763276187722155967119082708931895705493411302866386792143390777143779870747194542344057748323692919368942468731625952690872835705831505008309085830773187424098838567802613788256222869382927800065201064366814175452928229100054281646623343544514123792700151218655138759472667014101251570197641836436124529840383586568759724987395715860865569424915562644745887045697256620742067361653482090132570523405734773862206958846050755734580941388544111501838720837037391968199140112033285160887157485031346632968751234869132143107118458705934363862625053455855483495157090221000377029767565918241018602220298068370005281741031170151205256696105632984004874584392045576942748364025041932703129597435814151144423494974436963810476309202478818404053995511170878967544381674091409319013292499868805467233285759957016829987573124055996469497526857653405332601039778161877703027207470335199947475835840199346202327923885050999397774534443475016359144721888076372921017459568269477084904303050755916044339903687142716183217844350707365885008903873813768849449292628292136766849527387623599830047415175995093198577289972575518769772800844978481991040892027653729409095899983049280850397159233311445014076489267807971564469055510858949103186012611183559840043139510815003952528948264961392594061265977188122380912299478156771521375253823968450581683931893287881540782164484102345571585949359245521920200461627382807301338667481318253719472322311487709797838280507649788387560981075873041898109582127175139824071174115725379511652572237690874113012110527574919387840457387653283189970675859208409623670494427401756239912247033129217856902081891069650918341249473562427291015395355068764408447650145178359947459800720067295309587210105380837207326105298801117642651830723886703540916239535884816928851959025332080695965107583170763517167935477734679967932205195868528492305402875355308653492361927531355723211194059527396995982082330087272965820840624516825869319400487345856205038243463352459649260667490024617176953131493718756256205409801523291468028619337988794962868688755298600916253355539782882896741384469947642890745983333836114196694766946658097794243436789209322676265459877110369414570014523359161484441899737548148491491249335970686630651854415045713654447807297473877774141172717255400331642411498564289380825259795168939084478726840565654951773418179812138992318021779545292963768194212448624596503041016120245931451145205543461573326478315741960818936409047710357596172462702611628493147788850593455405378711525101848577233334395755712445706723191783761613708328489898846701299146653876969177583483889775969868759053014028621319367409656759874258536919500561663638355232044677405306028931383646635083611669372324254388663472847036488787074041864023420370435967297464932235773921710264620587575471294598594610422112916337441969944244376686597610113777650893718413324560247754085923019111105510237809613066635375665893460999470327158385736062240074931035934757632304040450146421459478932200576895211804920484655185492267022918800095627265854651654826978946234592778893606595257219673355526041279386723260629547104777532959606887854723878469600700007856349245383206233505902465166845300959979241617486019586549293785003917952458939579700386219779022731952671571252909172299254526764519106506776789740549691076927391174018704775344468467721750709187058434800718854733820405594964140970634635308174501390896664219012666790905287965737659727337416583329296445306481322939487919663851250879974469938695624199154462920314845795874872582412586829073977792809032513365793606207977637419664566916964516875138171808524960476138078579295496273245040087020636381005395297593674539713838043795838683078957008703898302154598879243216249638678424572478367348988751535831272823806881637180496377709287170282539999563477683191393376024925722907222019955458976619423274305325119736680203584990249812988408984512829814125224976625169791228847538392945689250291468095910212823333413378968021241658939166338121966913518464352084151379220805979934823820050250981818378966661572466558278716471396336538583877237431384275443577749301163425530847638884247275336298266252995657581557002367931604409858083196089534624408004907520872233635616451351572206279493012465007738599766899302456339974896524318702038004230338105325320477340958801181258063801393792522673980307860958419295978707068287771288236605813437514761790596314147413035189946408482673437318221863579021148191099074314756095703103004012836628034345679031650483992492815983443360985444100595196943744526170551987231282243348852584796649832987595434820349023193647328807694068214647096428470174363729822385706515810946207163926002133164795567308240203328399761988089966241297615899233485830134049914692018637488369594647442427159493092534497001704154321396843534871900781544704927601700914392142374654696289243934677040146437733015507066314320164070136290221723864590786435247458577720414722922359689099065454568931938636573342349684193236690112920212285341101573015749757602065892627684212308152408324766537924074021027579084271311509371846280682351855900317650993766812100058210014331559470747455518997857189364518444360436528226753335801983932892270824824519230059869954105227450421001532749254767792556543547594769945410761523674440580944073749315873643570128778887488814604343478283051415011240079502132973249475615029832471498864488967184581036064545167632448383633320070652440758042040721007682511768603996529714334371258685964012058366122066127891941917803178983060916077797055087720530283162783100494797219563561266755579700609572551951192476489615079941122761822450004923527736866845789574975360416477339996140499474841424048906765852112712727899522002663863454998467151442372317992460065939263570538173322843530203300952540237162271301223339321458208917291918385891266736391965856880387341241641472447901978552391229546019576032908501875162919379986194914892278536417713735740253468997318126639973779534279182239901203473364001327832603870439953211671094237920406389318875060083139266833252705767904062881573695450212649990645730337762899715230935747574737396872130905388692789414901875622948386953849988781850713992770510979314131427739955393276397662264960035998837263058461032820483848514024440387152609182395693696282307462756145668112712826284792178009557705477029589493295936864340058378354106511185436237556261039062622571948223124515401893139842875413879748255958135487368021427863782907841522395501304645751262962686407239988965397025300975445376785422406448851493900913609734692604353700693586548128888416412093586572852455763532077673553843891132122690873314745367847900491516805309776820647558927054820281192095202112809157153686657710897901378440758301160316773208920513472007335493118932263412713229295467063185439644847373307764292148130619064247402677456352813598536546162330338067631879654946663407565325479070342499932435045622373983421946512374113589462095040703140939132349550079693145571468004816743341193707889149220628294101652531323750255551887717050122990931167450073523312001639928998489009853144735826380726634780143522693631512908124866833909181809734594658964555966726702992178817525089940261055695858415835300134385335112777560840086454289775652354745278418463529984467194462917129287378318159733785505368342516589615535479903318883243232820972443792009497147947974356253143609321145899802508883109419059850935513889891668000387047176057592474041987085652269063549190433889495502706215330753555184333183339570760552688753477436125301245026070251925431803998530221006116345808695217199170116910731868618567021159705122309516604184593395124790286013209930007223617086707424632875951753323734375520102138355289425561421275889187390909679457593062133923702932614490132455702936216792975234343225707986232343832053662826882576626287050335306129317975875393287908021841174558898543385510790309669550001637098526114719272944435509844257836396321944970128651971758228653801844744914508309590547684144769514703943550968881798010729057951514494389121658757934217940413777894403773095528528960457932517293035186067707782518210619763946516776146237320935681997331007191836431059897873467886575283523824527025853106343191878531134162131331437185304478176688281179736454979929898992394894379050081566182512436548016769870857609509478028773198257999161523065850097828252557729677899954411211025518844923450971154425137883287997193327932317067706535959841481901239022905404638060151705928728209130924055329158152108860921079163678000178527952451955103956569496006252159219430099334410885055827282470534770356563689905631982449316492733409884803075944825500300512928366960964000793491318527317883515234788295027179375776981584811878905988430902604664453184213629825658836866680925689033340582733375649409280851726041568995749944557316375974631102237809287579655882749291213450661652939181540268540637649356991108647336130152582250225832239567503598757705255774323850034641298759276999552222735656433649653183119310757270034183593303335974944047913326081626478420314962104782724335586293193692377582494605695615197701955899021092682489634208925026825872242661734925552552164974206574652226028146358012821407969890211960626146234609055893759797003518263013663820684030046306061823541482922429840909128817394058183889504529367459493771140785368911774879317190819495824089538511445984784945148477339229207861963407616658371295107085354359601552882651656964429927281129999153652657210943204023461570961769768900860523651059122431934206131526828433708023026012490600855018950374079280761751230782465948733136208185006166076999876281763968478173667724236240572674436037971313586864968681958844712050735202085645963454798419503970536178209915861956462570226164122640655905267717577980541630470678433683796595673880718761782572368378215849140526057754113173298926510853865920502867786829668980097553053251100488638850326874199161778568578130850794316452210557130048604760118333061680904404735749865931026721808640819969357501121876108530453809634925603896429039001565471972403603218131131749565854187776823945550963095215392505178667777128096923450997642625550295294873796864880846666572748890077281376480661714702821394651771593157478441221992747745310373172428873465976020980461427887591076190211650481633726816961043658782848383719807344761788384330391197628644213715844179422227279342595019761236816380187844242902052211013870450679119942836736047703216969688241074933541959234464701570789996376667365769091984496590785126530744505330673471775981140261288534699397434547510395498670932910010068331192025446090986524020894953748078045039687097883486150030424302858015557127601555866863697899711718158407202748599088116329051304249248401072854453519979624399037879738742909965427347815518312156852517459155193200900668812001233787375665078962261338551727193763185326310739384860437425087590038810818079609326800237869397253418299364060515742122527732438625732688942206947461438908854914429015082812637254534508440197795425150652775676671188880388402786121642181765816601371987573339898325971855628312612436065357619872736220159425630037657314169631321345724330446001280925160860097474784751982484122870597035768633841416596949928521675660746483349280200798831759807427524581641367806181822137554720598705311883951755347211378015649316726346346657022047291586995273927905904072305817429901349244086796988056499138106914960498397541793586474376232909119510129992875996515293482237986609439835799326057419376049045863109852005452717183100851130440838702479058599587233310104016433429601836671160153133718024751583973407075225143647041165292041899631827973486910570452007489186185137434412514889064651243044077903370352413728325649813028714305387110313810084071036247670081966251711528772744873057479828436184915684674893037145008103646832682441794153521686851423417896599473456998456114531193530229632496863385189847547099491747364299787003911817976578377122371825068465577493951360017761027421960224728505556809648283108976483706231789115068605276816187263468028662362330793798349458441223031185675538321234007472110114817493890280704217212826161168135513140017407089313767018938387836286388536881463697615063240439446274855818346988704916301683518314756312120162673376914143032860676186631598341796503187882787973112880958721160667319139289733374774552645720026087922862185594359922002887617076035243287210425253564145918999649836090966840424012253538286082669533542894945714288249970648047477836126028835988157339625120202514948040364065920101884743470399682993921019116117044210096968563917543672588870337461380431869302183416790129688696768132971671664624659338748230099057187361423658058909557424486633441524505673582736425396680160590367993200651612334976746012073991561223309296292338548861312764916833614479670679988251207460508278970889246341107648807823496731428535027707763495419940244506446835679553309365962856703764331641250662092495407575533209177708590993132422967464308626539114648138683914445182368084957620988354391863704169516899184934215528929218704282936156889081787600491956962831174450731148070305266816420857937258232480583392937972426219288119378237834233421023933029032076187351953778434573787846430489843259436864153726298876316820311134874779873859258193178213690747179012547466713416058904267167161862323283099569356928327121348715172947095454476113629965180650058286866198528999359125786791754790341799290890286085998081648161334457015703229126860285898054955036895259118755622395848402694866857544696640882136265204482112637626086654585288575349274873301989138412403843402681571061793851915809013502453532210044578654199795182137325227064116259064506282469723479982482354075536897938497582341706777252062699668420283336057815860556768919139070087854661245747746000776451372676801622833319100974041810374363379267504788960126547757795402964576654763030840776439490907723133911548132180301553926072629290365443722333546869427872186039361281670388305293500988254721900965307155401896695653157028048977882585436006933205385801304102156413381406179530538257509895701346741745713787836000222109242877317176648047948513107501499868411010220611875774391278237198469146036136860025969620217991284849538972694376990778260711194140775391690816795552578636253131415028970786598156382742413485317388489575129615687300619112017266312927447134489079218916971557247377324396677281345429972335265644254548582633221489157262474056123981356726117485365589187731354549137415726345988059164666747944655363084601241828660242136105541986783285759954827794527458781777829242628358229302957526615251083403350500690533201045189653375187172826222378346340066143732724948154457319622127455845615247158190839436656843312674210189757613728162645487286472830351011270343813671618130608673774361358327484005757884810936284529635262695870524538807119234754503441497970508487687353918240516441643261446724517673310439873329187148690289394143701111037061848179800799994309210342417976311076539766412005618946639346113695040127246593208205316333932311576272172628768398701713244082804374065652918106760119138268476210471672489136865151762259738082286542220076760632502079383037209751680050819102601388030772614192114276342647248953009420909502449761112634663193159128146586972678992129787265020285152013670420833973145835581772646607941508994882026387091391138353664237322204135027677005241765070971828522981015507178004407730332742370183335651044612177642770686583408550758263369058076928608558147229458999535963329617238803578065687602511711933604810005539576892339754746088677599703527094072019655542479944556338140741736613026308376058253458705789182727566374543556803283021963989636909880515710347129678141436650826744871198101508679767712889242974506636657619110627952238828553669706059823538231491075639048878801078560781034532057907141739478678195901156960123771775418447244759989635242358431428599438188899517240006578542742390652618076957351921929645218178312318716037162533732475658629493999160543935498967114092444575786745479940837776886174749293634540619931993266003414223756886299392836497206257822256596152660013004838720049698100458754370816684664032978771657061613692548830565420223556142283671591942560853083540251881847393025815257656677292892095263351493524171544072320764001500217109049849343713754657963941623698428358689340900173636936314527326707673709170902557450151342546228033343312759961968529145042238833881644411061460671000511099604054478934985082823661054806873411107744971842241739356551650014151370255073634578831984491326642740067406071778762637560724101366630228283729811251010569232957321723647677663037512529772756341763451415805435066103327169863125154440213739941855437258724227904689878752636284091857321242381171957788963457890245034024996856289337664111513248625389938354726808116299662537086631816786083177230798092765597735005436592327374760324856947001747931186014792962695981677322953691484475163442944670030427770222278119866454649367482467333778128390485893802097379005884506735474115161572175291584251329281060871976326326136149321098516741997361764058951324572935746887426464079540089728126638857674869363659916414940676520127850136735683753718407219973154325043872851511675219009303043018941578077234132894409884055151829998191482666103649457219361727403964495389445886285336190645729801802578892918672185438301241484976511219019660651398788070478710162617249899514583600102856884766747088958982108820850880714130371385629527084945246007998122897502619133127800505714318788478536817479443373395798547949633832556039767634733463084536285261468583334016446571850643171116547557872951519288837722569400272283762128487043381247224869246022879021863594572077961077073889690960431211995575174947875775417151969464080022397051952429897762316082412943624451202978084165290621918732220325243191099577891500268925532427460103284334225769059518896997631050830023650887720071242162153291551873825069859937677433886392502700369144948137818387785331796905369906372160152768124699842524057103919221129277031886478223466325257320984788402696786757873595250901077271857639932177666716862230771928696172621707393176782217126650718572964066275246867091830526924015525328764524258673808863908629696505056050480339840804546374679345808226006928561529045087696500121803199135066898331404485810430423543373559276848203534517607314582340071643936157352516930970531555898677831269685595765510234774703218948736450528171539103100174273380896440793096998968769486252414176997585562064603599692138386124381658237993852586589667747616343296941676662108104276820380037586223698958886412009826127013272036712086070909472072615261364447059273972738322608147305020444473890604378650480851836886621056093455692559292011896842446004510722611252540505121191010544990452703796561125579364553013022272663575419947916107030905979070683737418667601556483411731342553770090310692444386040320400317151448600351063619685340936602207803317848541285510299770766587040028288624592354366628996726959116614446979569839319523398984071689368405153226955936382890387769760753482431083525049679008077675664790404139127110030880003836406984078632354549170397225173147571571730255395774646758189547590587359316436351721624601979316426616576678021085607483313704937625889175535299572116425561760308933867287155631028907327646992216220479861949051017265981116134856459297480057640112707309239067615703962650110670431759238434457319766891561357421446510696951662122818872980885014290556603898224261517103263164035839812229383230016461851781566638316897961668326605442959648559526609158555837042784693816643265403575831712108810422836003642455783440291219724937368563634476622134693546579663945224133660724174780194192963818296378296461385940582048359928136435719228992178754443987441946576262597966396593213654757588177120712577799435477099473974724790442132852881812651653442477015117049133811697655194492250455526683452382399626063372509675979485915011580504553291384957976708013146885316822799688481088794699992768006945729773498604693022265920370913375032671600721861952074342644247090239686018672596548675835014036414541691363519445433439244476793075414658581226234179099203507638504106696790263181727221693794237964903608060998735490146071564238986534176888135661188246173838042494291484956273308603133629667574834118341497247429362231319336431325145380312809759463873791793958974411048649684675512720571478014659767663237459661892707496883120840666406147009098406933478408543523235070210261982557265251890387030340534768972767658961861809189508905196862835604757331347181084316580201258209121484420814046694365300921642035112335940936544224475915197590459362801216662564130443118587576130404649333487860062564802480108142530952815476449829040933070409354594953652101727349801211709642703649163116900598164421133086001606042305156344686172539544458725065494089739906929289583755940032570115901373719322546475400040778781918136270957935462389597250540848816795881781778611896113500371553234030414201558124029049535161600592369241754475661991648621374413970430793629383548101560132881275466148610967464592051954766563830710518160870910426695627413486796729705790948380442857559787741887011611990156020778689545773652082477731779863650855539436953320314134745521229844776660717830856224840652293072901247883704851929980698084343223500110383306957365832583993165003134204948615928302807839060263020587100100723295032122024632270774514563203304907575241327484316659506208248809108795786402646950566965511691237626743260481147742271736413399327500946307016039933907541625427204447193681554737448230899652707665025777294109315379116692533536327820845052948455299713309447101582727245192537984255385016021460529863678118238685936763755649305088312200147462954698602733627240721269229707977878848742123341976901035304254104761882798746341779671363477773639075497683797651947626589342520342987613389456106783155550941543605425509607489947071081990568780469091104062410137135787848379825030477132188479409274284666894175690002973451929098417784621138326982376643007241778060153451975199054192662967733196967503425512760866286732109962570836046563877296482691565277751883268898609345980921485704582293786057877008607355672492084031698966170893766851035516380511722587053947918474198031544606804957888293036518963003144904671186943372534191720081428609507067250787334459375631648299524066706085168402899834333346325478173029008472133586349193457404196572717123801347843519687982519442961669125482305774116270930067315879298096671934902571729348009748844239040790201667667350787778895806535346986671784253289483511390363886772071372505413968363480285443950502398705151796320829138319570264274342058005691105238985769321217492724157642089063057111421099315865662254863939259827454514944225732148409543924506885009591531584573153443764747160964101327551931455147280490246736726674632318512956169149440373994925111589160338491987811016676565147248296743283394791189003564491889726785882061959125827507328439706711488094786417905943697051763444594148139265266472780735941770184025302325844769741391691418985235587507167578898385551920856942763747084240470495933597041399491237959602881153546906340886268221282336328220242607631904315533330981349654605870482789526582264017534678971944737175304731257258868230249525613400575511118791590532630326154056450557017937961888731834885903128221226586317766444587082129026628535640721035607929524761452117048501620243340587612957423916961280365328045993417402110107526897476044862563543282072456684511800698877530953953775559758771568988579809224223432761617244606265861952152996212282927483852588148214975056453213740579780426108154078900368809650570213749865814595703954654106686449631830810076008762934646346364682537775700997385626510121695581564460290477190650972284222073645934013917739885593728351344717864540752406938526160976975987442638901123816655526556712147123361688223639051368816596900016886144442215615985102382523427242011416947329319643625727045165242089595966062903610427920713820525291193636576175952483114281401492226388379965067358335084181128243520797330314304603654141371972711926250366615855253525019707365381335757053047367191134844073636351603190476983701194099754397976644799025328673864766038419190945893829357664647736329898139259479912003887364168092729063592290726807615607212870175654231954078990957758249358784913431208642598828739457043390158584702452406977413147359566362320450342717238210456433462746719717556897872357960277860528928645253733927340432658668083588037916835629869411698179215959127605489830596154071750219736932095843078744102422317603181074297526315170121805778803830349250268334645484386161533370996165107799363967586049295832747073949136835108493680094974050239708108957162834629007595979844214630355155751206453336053229859977174337355250878501101272956797633454087647885041611936216353565280496234077904411165534130791814025299975597380362460928871668277290211595459383994657312776763440315504413790066261595990033555189895790656324614719801945108299313454299133077082486049005557087053087989003102866153341503260586671400241182607780881606359921003482495973050469433133549331489225625244738822647255420005511847369696167441133423178875046498872045206101488691381040741541792615943668187425654510085112976928026977066097119806182955846617958735799835092424975291139930574437332082446361799513815661328254191682941562540508286579899790655980704714401602391832630443216092970924390722721901649684519253627168246880725410667686696337164424952401477810449733092153590482987966787200534888978094520801665974186520133180264992588736016913634168235837688050202922840296067429987359223780443203974718144664353951038075227443022478028963824785153820890846961491231012900993380752244141373647187130878005303373619998003321042472589225123442223394903397587054782917876084091073392992126417184645709707658158566162857101015083932444557971430555237905975122036037050792535259576115731893577202787181735960791334203365364032417784943047412816747151818614000776977250481015174804313286354079698486955092072508685950857705250314390950189065911181996475578795319748923649131907915281105325805219270428466124847644003492494160596035576753006662079454669257365932611742981778958244662760465657504924442422369150775360348181039139657824704205412850439398405800891791419361585926644030137119109324444749025221667534638950597797106698683880568697162629940498392157605102475693074566657783565104561225011904429251372469423384913814914441994819185313900568747485347631269353210031768097560934473584757169783160349970390276819773213551983156479914832805916520418032097726464883257296607104676290601998292128325463309556143058067394394280881785173211480125689592724647236243676039641520516637788993929738387786820476975733394385955737351395527052198840557048269072897577389248043322477180020274288599825420685842012138668191410877670450378753115612741536209283658476929000976156982674367182295996645794038236338004350667942393323494131854270740686704817289577679627859772838507877636183314269421470078859715642302919382318181382381827499746292902072198922636158904547581752638294013264574287208946894830306680298273072910253680972301292725302595948045300386481641704064569871956127418968984005817032122165573699327833834169148434513744942650190638387342445546783527102302693770836448360841545319884360195480974061570860492059481270384032546346366447975855084181371387290300680705212285317713080778945501438868535484840509113375625048384080970074427562323883804242865984821120884199634046167829498777561131432433783438863915582727275306971258436948884784787409268255868889936735294739415651047452109243991776823066727410846928659552874498933782493527110924126972810622676126890314298910961541252966499975535688234595549501210291867335975466425324600616683296788704827468982429868560573295426280975865027759570151362431182689845577556066319089157996885166261450604784139319023511451636410130820893029577593972056620987490352453546412350338234008979996846906830314663359839280033044224397695105980006647949885559623660135578834175790177041024198256208078475025188979656116479731259888708195111590903362357135521696457077077210111097321124091620836053436180260537379939728957967033893365333478869613888451126604661637154062782031276955787327635798910962143715473262793929940219785729264189211827163403569984256901393951383706411036259267670469943689436645921974984698309921623220375708479038431820972944806673880657392290101720599513425928942517937130195652796189721702295755696183048255096166679965086155668302744072579506905268002431612161806386186347218678762434993504913843618784617342743051341970285133547096826319462398282139500243929913226067666985822007145684785774151536511481927553436463470534585650569433421599935213929805076022824065900093226398099322785692609524311171043619237434975160786816139023019329136847841139722073648466352607062627026365582432793440326511728637256145603420590870302002645870824357458347128560212395947114603684130487328484869266274436478646510607846944276113207941298401527366301668857842621802336379736943866961840026275484782596549724321308571794973295876800321141651907437070821613668553061698805722290821900346241760334262599264515568245106817207838506702363507156752796978031431600185582159100994973825932115775586526633233285853699497145876272766148009882063313818030560409050901182293791756864018448498180705542140409010643735540327464967774664194417831758817416350543996200001611536373107668385749892967829671184723442522699727250215106551307285044950135908897603432185551251968399593712332428064551252636301798555705310997757078023057369936280547468877692728985422986313862094419703736074025043430348010858527323047775853589498331582859841066524497684959469440100789817321186849808886452093559152984415314398334532433275396751609661585615780450631262244232889197398140318471165640699542171419172535729018381926696123404899309481160485974616614110918417979751154855405828768162289370495112591374661008048543714081985754269965593754395639099024261972071478481357057194971398008772928724992979150524717474598937901729020165913223631712437714183500719321849369435016210468565964528985561187135665450285965013092042624056935184094106473727567841446548542040923589724137276040838509858166161096667188775084832972590299318012592544948057407108562219128428776860018875581454329864332013331823904417338995914497007582324595112514903703061832503137707061340944094199417366811687787886239091692054935241864509964948988560747832251497224927692811479089815329746613635884997163400887070946821243383213601467103703307384700313809203534019585492565838811259894379477626262662996530515499629762260649213587875837313199591716342721125017680398418349247336212532488944459457935544344143508166693391238523069485579857588787140191855528169803064503093323976940727632255946184442119966503096318788297956850943634545152614449795810788384206695674082070043727875737474436638573931834253321246092970323385021443225959499504016202622731939841937814407449374767155618059436015320082789781002896591049011269737155503161831483706635551030069018166674992061444159338750948048926790000691823642509705843167907257509577352435537734049659826495892455803907921171353280818756167637603594808621793517368816781888581807760839087844955621227401175503407735882902211233807584208534698236184518885173702646122949970244141359836046661473935184280427477801112267735636182897423378480622285002857416772833058216989210413453916070108671723667093749484682897962768327250213308518663698443398425887377083728411526329528182619012013237124288714212958826561605498903825507041258208747473776244063649315356772414764142529737014068990815452315618016101460308353660663282709753797224378875941737623160483099471049108347026179854036639123062268765206143338680111697728531992123252555713559352048039583197418123342422856976865945708138671255477784772365413253773549961770102282212565335300790862879150682149275791018072635666709737275642979628438861613043838109034585873697787351492901419696249676972679661643331642090353030235331317232039309663794621610212374910317428052231135502601561371407940127471470281175761479090472774327680704804987763088704196153759017444874681148751954126035968876290223855680726875405744271696473272864992887747967584913100314023421324130034348376161894267760416868277514663190326054581910297551381221124854878981027128861423193888212102478086665347254581189701472784033246102439170932331699152350626209977615365080396150918779188768714481462505462481656467923558873452437739416426362907045648262483607174443762836271969934946685983765416786674267342290454394843338694170490928260692059749312401785854909138505313259376243104818393084486421578736263821533703690361249665086868585629934115693558454472114782308303156185298514114754275120218298670191464036564945955050825870834211025121800447722055778406064707846648069713093696761152535433326677780907669725231508650753683746949832593043717633671223469471678561469381202190708222464388348406038673747604290766110156855808872696004373812330829690536769272994620128750171204976353311904035333640815630424983441556762151551072038689220477510097467468191790933361761864400323140994079651493978805192344509060686999839477205339148561435890826017496099193976040367502873216746575401106042629652422005573437508090409563762383244053582003565816547212183088719039297791380558057184243673654689781023451483731210061420013799534646003362994168493889419483203478705751061891268539080064868801367629774279262437770501365854169854616152212962426122754826531369877893991785992586762162943887162930698194365991881652709581857112098198048830395875482997337490710749950947509774770281186075806119818605150199441535054238812948559775193833916667797747841582705773434901793117981766385822108425381805048213152240840109134377301674135742172849326493732731659866530390696296982173772575735517034826548419004857952626396877620057421150883153772633845459468540589043314328465443930036248166282499322396302409911637252965370168976121593787220750067464848237337420739130466320025339456074000764622498442538292491770761823569775325621781345815183178968302130224211024998432731547016968970953932411321930585653145421844059329657045607346264082692120420264065542141832653634760259991180184866934550383612064023682025012540590315647187157863191453649300158864234434179374503428824581775214098549834418656943261243242839376120085652908635156442361418011142551789544193504840599418697964492635429215749423536559174337477499342594633972201000841565924238556955981335295246251290275688644866712779844608784911401817141210209072436232310604433335253727777805695068242322066450628480948283064819265934349379168145302838912553247177971184047099341700939465340465455685365594530286580636658246502809859483310860865027549769491110781847201055322687958623967090158537222598113463684480209028582541954931798710799051084985772216071672254654865248341634332955470804899870399294317539693692927241857226837599711294750723377182185605280607765267836303077389270899012425606878856951645927518511957918423686363707350220825750591061070150662694653158806776579779915107752776507010303708671294064374811358844892505764549265928495869837458331489270222684834033170363469140804369973689992119634812733872368254266363103300373230338694658549250479426232094672735538596392023125563476597269592707776582065715415448536329577376559102088574454336513525847655559816917469877965689050510259250477659747290061256462361383087484185932420807013636202157151914105341683063916946431847233623650792721692751296136829667441831210715416950294563228079035013020963568024409599977471119859325153169045327973725727504862041826303192323142652016001673397363346879699222103550336753768570493672046639529193820695531501730635407891543225810605740112440385930773130065410446817843790964713978423455580726363661113173439114299886065638077235227975436592373349120479492379649699908242610190688505804492420883668164678563865439330316959424643659037505126230553558615936807852275883969597754409247499514652651511171112897916134187515412979145275099450731887456960604169958779298373429181065564608499019692489125093361805025529857690510431221023785592049239315891581071691880357651415028177245688952724947184495190211145370782830309155534594513158086597679097056648007557631291452378329342979263007280112053956286974185009981528033715461388654275742089291425565014599115278822892085654773499723679659060489284696091857248320489283112476394747075254362524968643928360382588791109898387078805148291870358552433874614851107809220523908531853215190508001261510963034089724303882803952353618410586777945935254897324072689590690917696772919756913822300716460195469381089032696557191349076443815029367934433337037644975586697215804582873011840725574238790556149296966087807395913172386878154273020719788611612557838533941032753766197352656747258098617302572013249655744240573929994334985090157961719090258507371300827844494403454345483069793410914083959588584254574660738826203470284154034793894567673945750396554007359398633434082504452399274345572663807303146882352790880963051496455113920461288595183187713902437178483934049387265167519122338947865478256899520962086196307656627317783044162148440181271274927954433010670666145028722734752011743237608201739080707584527545301770816580132709198434175878776560929701502220878457668709861066364255868667576743055575870207470133865002567951179497718301884227278431074290292814884427931760236036376549533226983523732903344212513553392361900692113726468850470205319546172317074440464697791507564669252273507514560704647393059967580767205629407119711344347437372665220770333208701031199266959494236059342659174313083782400295290781514733191464520995284269490161586883158738194851508365315756510536087751372011867483893997024411086922710444420517308672023036683535520070683188173304949115374248579697179835437509097014784831476935628235348204207833007582430058242602930639650270700588545007961727619740323990887342649674115646640863990565161304606192539824000513403702326795490479343881196256700451268932628038774613565863576750988704164006022172337506443588746405121823585821418306111794344178404639354547765726961256003204943777725746328177364267229059901897298252794447714658747771897788144248340473848280995580170307982306308617733607002441619237792990583308363860308534336058365922236024155198115729214245359815261417517845730918428358756365484009295286286868570975422671348071640448560534770754044175445142297601375114464191386516585151137409974960750929686682186420738223070127769888752016667386960650915560767279036262199410588565609149146939278740331568475935613062329383933963004973361754666174306083289816951490266260728022720989149557280193721582604020787664441827917515910760424469573945795544056309901413153777096006362117864343954527802494896610847439823114462834654169018968763926233587335949723053183248052922744751387711731118746739701332248045060173780952254232785066338373085397082092980035132930980456873834139498823867705339134477790647275166462309618390220466445043249965833900882827954057655602653615624549321900177612226015421482805319901599770213434882604636593831555829494324428853618803577620064218868245849200284417599384163195772701062932010181432034650468265201476908435435557369384259179923024838038684026821476759432057834120239228215236696362214516444627487643490615379451528825162257489016130604826169277798944830510980133574428855357569054654502998481810522432737651942302220020508050212675903120921773793883330628063004101018524200665724142169369033961923612230623690459458739363937337908095331968292286873930547926270271236630557413232659267850842842875750756750072955367555289117828312720982676281960501824382416718362738789934764271979206765717941088372492781835722719047121983442875919289058340547868795034134132007770873816293687857237070312916791405098526201009151054745778170523729053861501909142675652832353684040745648263723139417010291066428971384537765301413059470154122595460124515454982317819882329513894193684103447124773081726814799808063478694979411013919878362543883455555423791058904014883299228703398171014826783164033258943429478313437100315090832022170555990131792938066356094356013478614891833874528360639579310630133042923074655387418270153133711949627452546950461447255530322806804664481052813364287757379339831858273100797885806419335269452919823859536454628291737511100824158531902219821902094896251345094389502952884919157526168107240049753258404368558967968788447880546020911012781107426073967246795790532467579481247084548363551645941415241150311494030954511900673629557699379405716380623887719125310931166426301476749976765444850947571016757672689865152028186037866541886232552532237647790401333115386427075959347827038094981833708279855606977321996834376830707118344588730679044051821097725460049430762607060810672900459042605228681745593577362277797212597845791571194517604650060160276805111155658257428614813337618360365867902715342284762568411086056883971427647706870039196319328568817941850560591572016090870707466572693305305230472226413082174980167472289879147645175067501887610581914956680259545196596607112292602919881458466618983942291494813396111719036335697097996895152522727752140647241535404894957066140008502068473424523170425629789562919256009963894167474622837061817817353327433875589224972639251595259921430730257242735080573855975595309321162163961702017603508397376261063245121829958880498941282881793566441431299880432936348985891716420408400053655483497456205533249445480224545254004442327684558155506989736989262335017027556913700880199322597543948574671732323001348608183456489837512676469372779740617103126243425060566864260308330933515159161841837529483936837129945256714267128648810905213327589548033196988443968336551406727184699193224048796709907500995058128840390607909285617569217664330615172903525843444531436664063812455688467033805891596929936665111072740051358739164337013440507547035465398519816919508257016933718849699762548417747346903106983465085499223586092551317887452418818160444079144919707692949180980149000807800833381496181343128576451003646798511822550673845801653299244182412821574603881509982137962708710816244715553248271637731899684571621408441860564908435177329536093254941243058418613246289889532276189191993111393732643291353416309651706021816291293651107589406698764418760027238876651908804782262374189536495248973117085019616407781588538312972937567832309945009410431886438078533115148838986152554955917631687597972772508408424142177627760994376701811986845210360693331657757372710177688949758710652737501612912101766105410373242537780562564467286611403714317161932945639314215155359412892041505823749139095140192550032383749174886579181821339958424614708123889022928313409568896717282774686630778894519659780420849620851873837685471053774707276332423410025385104952828015316558077477249243872134292727437956526398687482773700791895113413589935426645298738064798487015469453400384749785050996445297927801298357799291466315862629712188394958712641773958828448699018210542786032238746466426545639761283383438360829664939614020833588942373295462375230744365333017509103867189384622581689123001928756377509658361245177131170083029503210323954950233245518933316872989134519796991585616288671192511386628106136275077904587517775888317199561693901463891279274448892090420367649881525074347865730716941697290942909200104033031875005753489011728561075169667660133894943502717329356838165595000363308045099333449859410059609770864137064296683550913049602203474019458333336648214846130137657267474454958179603467584639162018075367130493705808402997806533893743619085890718879783078011840598590056470133472590073187486673297423985100591696932227168577624507240558433777162555042329767517476412762277748461333953369773701374289753315724793814830962631212339820198782225232518402431543441962653244199263187836878496244667253039290989448336568664621585657384134295766341591165902862110853433958030502482613142240996125499354277807444136354516532017328042713439368884439318838385142450720311831643993297240576325262619447881746793326854792518866145206571669688014073020913186327770897764943214668300654450379572874833628108385477007876203016361984471943101601932476461449685435184871440573355730398949211387435178010974938165333379422009118177415185338482590256458489430805164096543432317790702828850105005073827855670879291645631165013033266522783790178497266720948412595316127248136238185163003017952768087149395438470063771615473965923367707100426306771484207651338478902628917847828167929553356825103224725593249593495479938837563874085645358912291748528447405246625169818526619556300193283402360488713244651236671196262149102626558767594075982687369276463181553327146752271471981635187865492188616814537261935338097898301939441710679411764960793105283346858905331760304011787451716289624198088802340530721888128391914973963168486451272272699564597835257378701140998090086681933968158321271858093876253963543355119590109513026983647752280941374384171602503650755570617481515144384627076031227574061941798460650423844295447951982998988392380941447402185472134916859064502908782897029617905352176220049183161858663629363635398312549421402846565442602121288059601168735006690530614807687617184877849644235061834976920715661632636784205064001799934656502034592795037899793904130265139996457806487500552200577397437230934565079442188624628285111590037874774931588502307406785373279192779634065500730834943817632642356064251761577413324445065474429490483594841720872102895095209071919915040505161251274731581420748517653459984727495074878174414073946578379032833427286933053511904375415900259682190911225754096698244217560834801137369042752127236600333002745543081566287296447438997866680551758136504851707808427962396507994185230998827257331794589083773714834184992953558953450773305678318227840218106843810168268794622868155291778783170718535764365372078599547150423208007824594776946326427109363567443264741725791762159446717595005472014592369519678749655355272586206975602038486399276976130614698249351068054486428175600365509135089275036409535839611892798069501968573680919171622174686105377532292890470877660181281115806153471989786679147993887042966684390369024473009750774192150106741932170877388063071375078010791166413938946076419549121789026190000230305156490442184713659894288797741452886061558574568788053748257318658782715357798117524989020192750973972889851932730503770547759665045269104758087180312443947652601571046735882354573264765796655373431134996394726560597501723858070124544079698370354136661187470986868649487922040447313317481951412862845820281495705943043637634694768874383040375326491798484321481314491936336300092008661059677399330069405157756633133760144562138728397868494356848365621115651974475249883567220304088928219467687605380738514999516454479740815357874774599427680961824278899047706342797798275697337807129204700349669691375883087312756848174148036168653121304659755289160889904941636670170552919330560153710725012769517643214406753640921096972975881630715865782342509568088754353005597333462100590784808967401124054483351175301056859897102932519800522456141496613496440668641189754226261579020838771987993249002360320929679640213956354405957522821571218764642860849946775343967351936026223214686335162414914755270099324680469271882499388654490980069511972113695434472522561195871784440310203100725015250432824216131150846664552469525595012328098967283421931556559266155161734364825425230917092313234043960486645355424666890929985708263651900051699549329575741021080882858517535107184398782509612788667010672294771250187137541265144124199377537202285898823532115455661618835599796229616553673322649430903257866803215271117151883844882620485435252393649892147432272785672757630569301433151203831988893988346142976132453652042474027762097184612569157248926474911852004764615957992462874802094100646622920729536748840681805128550472248093589651031211119003005065884127647625481117012725486702457550404863166816894081858507359533419466172680679969467964527611683194790272510428852698962768418201961939813482754692078562721401401791603607451906809673199252469188564158155445735193825777440043041154932661874637535911756319730607765661605371768428137411677163820187276017244093734571977330168826574755737899099714688469400552817340088607693121111667748322889642997844587657162534597114148076876285073141876299561933320921172178659247591644174326124358520250196552083202085220331884164084068073228372207924560847633403062340865060720155168391712329548009470187746356333649737941699784826109972545626459564742953312714818043821323279057108876247566361923052974885787074972078880904267241156628318418808599976887008100448081671002476373639412223482668786873894837558821940610321331424275958986741144828942769019465796119191898272470294735839954311707939849588819922300824271138210016247180290412057677962582089137993271826657708642515260098009424133806019753422528813468003422644326850092980295881921841437991211239187188810310444181791844790167356552347219309137158780447711933855913572661453578736619308548178286975381027174242134808308463185503519077626114948171503369873952869743877122198806122465883151491524268881967198548100888983804208853482313863273823492345040814479400889241915372917900873250691036817923660186049370156434201357883072093969810482028599436809673930835720494401108295082885012393475537123777959973447002884126270702953232887117573655461564504125457986731395193802431616089550998176958350316796139113786083269439386449541997777388242447753110897176357319051659333520061787528625596475375131596773180900897394370002781969650687322589465367597951815625974645033400168038809736949213102619328330514746136767395062674715123690163500023239270312336208240604010439539306462951670145865498664183842537870810900116877794365265598678836843670555900333411745709579007030828539188397737310079113262939706449971376070090031192804493591687321187673993771375902691444404747156978104961052818340712247736951063413188515602937398031695957587432484891892810003489544622653502785776106775824681887855072700790244702911239030397318199077575819480825963258310871297486671940620121266771058862409127506300289044906377731633361327058781870334462231510542031962973194424374295109613888799888924024245588142277009457460832333644535512332799379357013780327479060707862693004420992206642000625975698455929074179909197991352644248766718204741035080540040246291281506025159399491207202028318047827404536367107898504234348182276171209714409090677321838719913053598348068656167848546746104037702450082198615045124494689386214136034184197398860344329716075607397758835009573924852780315522191921249800198325650683891000215620360396342321955900613987864395366211805588619960260837295308594285702232630580740863677435595700049068395139439029990801929223905590097217456477834705740251912721419452303848714286353519944339815028760574803613814334885906195949334740654640130381084782938542550570878873877452509392761380366153981321563126936748122092320791581543597839699597450231661428895887532891090671394607773846980261510939228583831151508925980380603649781446449561941804193175558295170643208110362661412274591356329247499643841580498785093005794838459505792871992619779075485700080917616147098918207499598352540233058612302950428377815193212607098747574755776025689327930822802761980495568845798290730626909092044445240929145513755873174985732320260459213286104931694424379716680702837349107756370031252804967181663176519874497352108883662059611627498623010126660812709162565091069562375627377838525064739676815016542855016180160687774439110102001674430230640892094660386171000153528396560076996995159783387392133848674205252961834567440518721078453839364901622787473216769808994310286614170086614292925139956688438854331998690172127342600897170594775211922705725379183414307283581050343295342323711643443448059887017892111624358092771310873546059213662074093315502593368551702095985959862365891880097782274513067607634411087234514623215913376514152120877363468655939543204638463366619503608857235887216832047000698012785827921788735285751303272824745465244595437720980634912229395391925570914393512879514278696765416941038088296339931535022971474148238668783995716603671799597236602460463090480045233054079532766305372580534820347169737894602142603502451011296726156339144562036283744012369826052999154874995509814044244563723541006857140132648265593488312878781698687467757568919006593763610828802670007836000843561906506930275868292974166431110494842112013645748785503238611877785243724219821683446948510841124412832181155825580348166038060195954961231016247731458482222972746433889512404183187962407992952115531064712802435746173328687321148500550825544837711641920211802654849475385748500482760141621838839839269363555318913676880547672487809473036131197266578629011297009046582337800145711115532028565573699252571464025926322085617382317926587189858797178509270720118595742696457496450134781425629570927357306707638817363669077979799556077659095683106075940514111252046662897086426131055128790797886701881658907222890078311945181154533151564607437556622109047093627375376376385970513532051571420945568185410750646910922730407076154134530425353378229937283376208601899505762815808308623332181676357209444667422598502117206892114969580191719402010485290717213075168215757718321952987760471865664401221886305735999793131459569952595004784205173016595742369683690132833838178862360160185561783950364627969477984732965177746304790236995444058552969265169004416733669753179275615236846409389399129763373218974946381101422176033644992076279431061631634660481786446085516276006610000203964664092168470833055497053686737730295596501311829785459096473713051272861216771470263308773547071319969010863122117880844075836373335008100194350621481264242780970359513704350295962909935400041565278243380866114206359561995098496749094088430293688258822858319995612880726452852235399079767661681609185912523463376496839048233942706676044833917549600300496092087018083495057563066376756088470011277589290938622607502097554659707051098856542687828199515884046071078520004492864467625792306826466298470884443949070310021251308679334163771311026254804673713814238581927350564545894327548381066780932565428242512260517663182222899378328100354255354942421084395348792969092979393496848706854408116897285080281929581487747976373598837225005488113409268799976963141337680269973482703086895562005626929409113874408685829040951101453038704231244984963409928435973679092163278909740483715052507483526441165349817886422866097736627228296483646778813369134132018300258821148501751439722919744706811718861417605194438090864487387010223326605092288517123424970245843261661319480195722469849434865907989389939624760503247959074128366473556688267275598496198978324524866400652800334638311898186840431858106829437189842860583765656432127064411151356818136821727569150611521581266982512311190674601981282999012103271681473746427317357717489118652501402984241852823454448814795381205415295336742966479921958963948962480252380513505085253856348272879063642669285542647897397566705272677613870825102569362657400394627182178329601640562477241983786809635962032512637966511371905343920474330565043190369592440253083153076234310749573854796701499682270473480933434146276787677359664539013228134414996300100685165434701289204200821330601469387117408828517346965003678797170129772446518421065855265424256456783395763158308796698271419223449310075728138308445303692916643515746587999765635848282149304960671945075605226504904608489095038382732433774426494967271122139878400075474344849585150058630467855854495298904982337090747398188228834752058476406091558693217464790311819448626804793980379211943330491462508353879579739396592683923060558744778369705327918872674462928791595302639185166264326139240326927220954475302028537505788846635386002789691705574257255787175022645226341536009586326782798850021426168470742993471278200474091148609388214085475756886745952207361859655984582188580195577378848583332110773230037437031838107736160940471381010007170999272403014830821635238718726734484821986842696213107624418014624524925015788132849674747036480649892364796819216405239458013763532384475772070630939199427200733583891051716059289694022472896054465598815418935608634388292351143751903298491942485773050396271790352754351740736739443340884525703417181997132811834113080958040713300805817311469679468299262185811483969643004714147634530501764581935078504553880714101601768578161026624485385467352030140204508331950865148977250926784788373037015734749405001176803585529047661394573066080667974966550884881560955433532010818296748242551988737576227617987939297025348778422211688060794322934344178221351098369465833065059980624922570377116895950955364260876876002544586494444184556695754908711812385612526713976198723223139647925157803502507528063695640580915936694595928830688950043699151174359915088497141529927268276637102114187425703075079271739737852871530489979107549741998528307581081274941911758967036560489753862428467516318480571336899561205326192209963930223683240860245072948012384569723676139835277514043316101274590942400682181026326688160441851427952461973049367778937098887885607169697957529645783728239723676940604505975609231479257319855133715142835552581395806007773971095393269275198866079311858699640427382691747495323245814755088505329083984922922256050171162755446582510223826811238279043734414364791711098697190446577756929129914397721958084642767186807836833591375800897998899887161162173428786852829111669982257361537792444912336231956295023247498770435403074738020488774557603788597019967389620207500601938664952808876818469235965160538482681781687220670353196383725234327344648506578138208344244571074693152695710464260841270932826270216366340867369866415276247009996705249464923013981125720818499528141647718985360195022733558745064196876459908852543632074440350907192279329192875608003442349601687480833356574865580056045167367259008320040727516023751113780762648865407601347799059277189480260562093384568766386044342933757913214080761904181191426807356481977840978425731705952671773081869682859457232678464471872567458771799928374966602933442232738540445151025727790162275256880547357713674574012460012235833887766056992130115214627401420421650400813687520842198339645837853337369067413364795951988487944957508418551994871625558840088527951397127258089202050934816257385730524001280207959697702237808422699158681245150887227287509275496301027387164264987456027205420079586727543158463422699496368172252710323318255464661606871715022110926669149082472081489578596262480861634136419988104470357637459175843519980435828226638864935193337756702830853801815501726587712320975750161645270142464002717676466254625243173901404594880075547397952873887055912412142621124247252310251747535910957081940140862841435058089395894531253387417556675823889904053412820303389758688018146868100224983344986381726110851165586766769340055920967026743695002726447389049589179704713059526252040025718008692777834889616301477783935619340040557997504583372174698780034842170687313224844463527972875963951888611250893689981278644020551913450677058369134746415844443123681556550039054638828751094282673413653178831786894679957410031357935860927209890641140841320441623715709372143203658617086314325319161928135098405990800564410648158098026301530776685052794921221049974512442732629530108781021210176272379664789620838400433834922863286267480788074532035268800286497800583170666587776260434821213184033577946692681198121978181897629966425899170435942619473779088316994464367363249849986852741249407096274453676681769324605913085454502059952539892608156697260681954223426777287167824288168124302620055376768488846729969747468603439805606605944948585710589557607864934532151825676893790867933022541286443060720374071547111322576231991966284615956321703989813171446325273583358084487090192945945505458523325032373077090605591289655610134817254990566419924826186025464474243637213725816016403911848571958954908292798312324235802023609017445391148948256820442434371398756056417632500667174429410054378920170727807852378174480861079080254787298890898270738244760928791301104478432511610888613584931310491165221077554487835257750719560855261100562913103882193534109968111486256586843515247613512942088462286620956418175760329431829640873045691802212817487662446008725826367918165792889211224876646632377544497174939892241753645300058888881521296212268455585961062350969136122846204706725798999609031018844492059514265560226454955567960233431638572491790224889757733974364476778024256665700246021514102003851508257001432295518476842882878937025720554094199255804195708939246769747784794698728123193602652005051913743377159300306562210945006951840984233590217196287878150977547423339041193423159169311983820070082016327009500147530769592943392144206772964810424112815785423271704330895912917264519821320802691205612760190913490566082371916135814121943644736664770491008285304671762599863241711211454765091702100623269024444444955967444525398081895847111613860483597396640730913230200127818787527942585209379812517075297843296403682997682429777757294653395452817133041885554382499513338827624497266038805076218862227931332817155601118879858914940187046895970981366494197651697294995493760436029174656387427482360425997498071531932550768443408262099458372612987867972158436967282322455437119717997427185758970345023719608507800609629748597609344222457384404165148430624784273659339864188173751331240581205723994157835243386074651095861155912872694049327548153596453643614643562188222169890129699810269278311073891997219299420205511551520515645089150442778721870783931427930990090636576953542910146550257585159697761513726587495953101776252743709248226239167917684374685904542978985698329149996208058602295329109740002676153123697761857734979554246480280148188468630800385809083729197773183840982198413756042357085094014221587342956444909720216091170222648078072142488084085120964538848894322804622451820755461097719279635894737665356760821973754356958538445538997829063406807128887815644468089328986444158125420442589701709367238068266082724070894856596436467176607975759368235604928503506600291108647878908147234786752918371717283583655667122652294053064069633979179502846568321898323376755786863735330023639843172087978313424775981655827786287150020193232332469949106051524379434065556119276691844119939861213195750540006642081102353726900338554322436825083123769360562364737929223146803148595137797982592603333212562652497742480488478232994945136351328658477104423570730118220109523079173541003886590729369336112062299936814372060579498558023270722060668686615151371664644920023600261778441400903691429209537407353306670370088324397160931662720598303416967986556704270613393136554350364809794346052754802762624224458200677360935128886103766160471128388097711076108755428126686367202546217558247104283637578068691398202773195329838807709432772602448160878552746649408512283161407513228578267130948263568784015875450277711367056883192564731322881334491449982172886793956242704249520858602680898845251161925286791875556196163907545214016098120533439877905296773582945594081175040737391990145436252487924578294647507814731349851853604361335841497217310325829801255935208979920501936130970233276635363559680838074470542246258770791335511051958804157402875189736548854194255306140558957548185482811084494358121683437427395760208157747316368772309430049398164337514863737330880469707584411489129194252155376902469525704554247411350337413447878664007884863770211588074981150674032734826693563569131546713489620570485538518077378533761876930764172093214656890648986304897378174113655304498372160318594126278955946938475931154219409789884602379326501647432584154926675121242032845715568210984693561624668796005059126710089554658987588873183118298213342977832469825880254565624040516287726754059321848193032588416512571959404863382273103432364722359570211689586113334321201483042947953791311307518490814847135860788641707596542422728058176039595305280033803039592373032634251835385564513200424868089469194397163276761297339606293407892310033253935153094080506965345555728845200432826765286145620354584294433269841859020664390628577836429650914201746339319507120215507930483055959706477339734625382382353151401003816666954019438190957150899534248043105637976283993663994989250709805066251530934581065845904206765531536357510482353814215692103260099891046806167846961546036771797685346575666177781608168097464259623584412098368451457264374961779728726925846528195483816858108185493992076935762585924912945029015237858404855790013638106064311908168748519347410509661295669644813878585691505341989113060959340778511997091559630121833937254420079864938167270015740033521343364418107310337886959894984292199385069898751264119945093762708019970719178041420624835728525825888184894137389304744822060696972414302824500427712167776694344358868911157617902351176897755618279187388795210919084752029358295928590679639247140420892318239207206417523396695933869546563871700556983528796540218349514663566973054576660526026915410597274757241494113846430217299466072675372742674565798647211058368933134791796312793517842061174004821283924504801885686654838717788046330765145589826703624844776597774194664329668288470251815986083895675085519526950832300997618221372278954653806376702639419438769443635663884452806598963089172842012660986983357145418941463309543896232357566442620013138190050849235757646329964961326415752653652389062294394785859816872255946303898853819979273224476281785027438705457784073134376018942017610389217833509917860806669762635031644796324460725787461051255244854893045283132639276154774848690120383041013247945205907760110620957037044334560470672151967255679844588146686376263354649204048227000206213501624668921395050527821382783662030765717179875773754732712787909204814134448722980193688360625234634689523890183197331006355166425264598449322372059646313896152928301440960588299946663701387602437805752319654924124243583382160119864425366375959045676395043169966094603422027467059551209142629467693645104739138564901542060760223937228255362437595299051105717274471459107187999651943208351952981290356422867222988174675275158347984191764997079945946947339229149392722397225851103619824448018150489549355522029760674774513896699654978591824860277338496129472505521226780678897694727343153342958659832093019257726826610614942291958164303681216644703688746069949200145792865353729831801581156820685208170574306103857401603323860930196222915881156761305409853812330580451220382871574280754396029290883973533595762287569686317654883078215614719293529472993172713109840877474270080319660486841202232418285997931318460799262052584600319318549483457652695237722053299432195438366656276316383382762683463744462272650854904581158425280996918966960036118863960129927263507374740639778999380895317864909455747676762385831740743914822813219085801014034034134324533208547607049896980329648476532759277768804150412186984790946741070545308580567143775217277796427230693541483064976491748771498789671993191871076081313705926587402840350882725949937952949959666535187196846988170209979321136708038745953732429837547110714808485128805336241908732551863552770894580038883745290633121399537209315515559567492864916361932623867864673169891147867856796154552549566257304935490747251650102378628519808164378328456662082391213496073803503678010104197958036772738051009040575583358773629359030751939872952163631999589181445823341747150883254956708448163134198164769643263148920467708289773570715197517008171996230428589655029239613600547106892141245823398333830489696463395053585885963031009006423013273024603256502557147096068300050658418592626433820600863124563624887880614288965460702757199898013260484316176010151632242622243438266105447091773368917680554568947017265590674819498237967379322614737146028836059929062881782956032872476664925323414653884628318396376388829019333807332109226428749618945755138008348119341133314185860697644381057473545319452153769463391760204884337487650649153666201884598768641971057046697680450520803147221824732930815005124704751902256081804463518145615231383664702545402313406469667941281095311610570175573005085690216431242819648634688854887827636899831912295969975606122293359982444620438259342713150099319141894957022837359727921083835700467032811368104703203482674366156986071644956290566284034702885246767451008818012517521003542660391325490162967500629437872524770719024774255550512818265054923802139389944813475587591198149602645029535147418511055129447786916764021632487367091009917050787152962364592423928880325511917173244259627615462361015848713702978967086156585286758884910069782456082804426093723150753650466358555514843244495480842677818960344698059037268010661798438843656952392505587928717704733608146648613294211713225807717159440744708291735388065798285375004976184721860644067697933527354719380942100578799826046610473114299782031392230784118795481294242883552381608874955738545135547066216234629216620543351279676492876451816651913302810393147763238941899558613280898721721094585288252634344812687648786193160135774637131816648795739630495348105861801139934373308089251649085871278437411862683296980113987632784430467094049957580579896862908060429526691781945697980284719807486070805654617645453322931378830332554042560019358577442774550224882511048315901517751224057310431010583861851538817478280432565198652624537804512248054596325042389043731905113614113014859332419133606356526226804945676896893198475573417317526333341446645384667583721382681401800484306010181194160444553516055032472619292633558531228865663437681663403669786269539840572399849257184038522009982079712918946302826374747940870079666434847724170544962059726880550947001976694445926152265665005420472475710391281091830688245092545667627263604681627482718814356353139126481083759166865258384489921746750414926236794015752307419475900884081159916557862343589145222538560670420206324463328438882745443252316445356588833339497396808428834425482465901908593946928999694524022730490593820670501769358796731099078045505060001300099221918136738820860995913705135153326407301256394738803610879905337361727944275923491240794585400775001187130206762483630566105143030682903869315258057090739259016330733176900336722234580492648367512661343894368988817731459782384489317847090466626753038741473508566047832437937744187935767795533562156256471548463818915253447185398915631985439163060755751893343341191069950205099598266040080556139719193059291679360642448049826024730339856550687178708608201725994619767815713986489867577182310194967778515171653108523947002538921466018130780098121341060939760942335674480385270478613529029358217276784301709522873723756748128912856445945813568307506727222952279699347033119756545710099385715116409250542731729638366272230956032172718287271033719343907572843616592802927921701246040581107292236255630006535968998101835910610594859354196621427887375419768695958082189967846897726262459193600824210797873244074650463422281481814820144665397047219909590903235763505650662710053916137003929044265210472775219763408294753689388195963117411758619279966316015679729755409395478791850833066655298327362350895107793799797863255979376453267264099271339827365803802364066122653272944036966239191530142876809701931308400188872210203996267424083780060492026211906768902913478754098287997438383717296665236448582134783899469807693799886453257167079583006489502500840865593744548078778551718200717575703064484220419254952673747716960575036476951251457283089226934630344768814826897647381945224357577661129115464194066511963260981496801899932085599422566535726380243435265663092450227018592123217646973936510839548148106521904592572254419011811639465573362253203494029886159564714521892167565398492819530730039659433678636822193441638755839180678686612374513969256493094327330198220139942371694346924559888942481996538288201848104360302640910413566391788065200081072146405808465782730810324821400105830654946161564711298454055883535789851099396595524518618556085556303572342617815945199432307380298811798018160044243613376279006045300230306172597084353451083057808159757040476801649742167551893608419680525555705022844785528293561363439112632429729616349917543553667675347198059346651266593867180644011443124252506982942648480069641197116705536255373058906952659730696146797379383543275717780857362390855764169645146539694563214417548297108037773729770447342258900509529498417226888128078677714079999024003347972049306929453079641937478837604593881978027646694159975725452418200995128916472419665737084884627839143589261295735706455170773457470425746618984490574264452822090927373616868266618721324617295095546087250214835078022179875583170155969988154204717678106781141799771777812391701113047698113612906497230705067602293975337186270142299806230350796573781307683848697177316770194946443717560739416987069563139923334769453101754125525334456993246592694116049334866999236028284152351206307324168386973157699554616738129279673001453792888750627567706285523824494626825669227948680411920229200945305079806040868557352807361044884777544985964337616544483764995448558449176572285815617567785668225092186749182963499960797457125684128294132617935297424518645860630332611105092891611923735379126865690520292918878404258437635097588377538614133304899629341202901706641570630353181734082593303465592437616902370791900107248223650207200431076452000585701554392023803957726740511223657620389057251596120751429007065227665884367950612955978554858339735275206896458965657885174105259244344357167008370733338264610127420347226449006838770157373571981980082327517781447898577584206673482314239176670861088596593570512901170904569151586702103722388799621392919602876462898099164131492884380069974551647063790329598692355682561182433653939699801157805998055034630574209995169112222583315630340329881387797850797580197474331616156870601442310571087411059335818936153969932636874612874188134126842170672189213565690306253934362980539768105140981390900006455621932775430272438110111725382847436053306976422686657513474156747642779868890482880520243608621281992000629960982248740664125164051272028336285591082423822550620261147955838120889582802639634229984907578205575822093891468166098859743940510027020302765168702800830947536167747840618631827612123598523214904174879172599445692431065887603937675790168427771532573217316928783893703719597717755048476303618685110527543022379803673636728539989573168270434286748485764447035537232048806712167941151239463827750495738881565572699731099443967148486567536350951043564053540494278200716898129053834247635382958694204700071543879470850835159621127219328712601419424643594872447688668984965291154392969666954408727829555454431915955730851702627712398180305067024292678117636075230536366807589410882095475174606449602872612510198669562671784464968623009219125473624694103836407358174174825178681871303986020436118272824869191724060270904138546371256913241790305981928673188551706637661458211108819225666776582288288403451182437696651142409537855239081136637671283911853943861834689048431782674686261259255935066146994474360132234345583224336922440697902301060218468249815577059290466328208710501247771412771807150612479337675576091911296672891743142542994952359592006480954241388652744370087560467969118298925146573659748937982943692785827921678365199305614847675536643476976788456597197456612947836706459467797468800560314988479461772796778772254357667770469377622661384159233449123290762530894811581127386236718041811109188358054861262938080386417146949648202266240876293626306648602141435562811064469703906123911109795106589959336747325336135193260151723709581526247580205691809765811389552402751469680169301838562571283857244414809431303145323217095197351933025987933922238861187095100132726444331530783810218278228477516052787702439799550211451369614992216347201325706590241102076360660950868747188897069747783607214193192002273206800012129777119691836662437932114165007885522954144622623329427755771064424129511217838245592352081153549460935175676366109729726940161518777953300895028045090462901003921013621119920699777769355818579709521387478896498330405949483692567968361450634787784548604258162298393895179515652557877186634138731931975236710396686927996275230439424639705014434466587222155097082831996855931756713069556638509950535516829463504641872997600786297908639278676719909368344652352129348288687896012289541907644850224545358136330494362903387295164242415489446019690626751303172250581267557455062053303892418216482365355513279530519976856669130395553855849916538279282145793943164354878411827485205547586315929263971617457219611785827135744267567212340240222746840394891289576207487596904555889051177286815012228163193845400367154759689104674016945553321561325105981570578888698378575553214518694713411839292358902264048046521511233129318324349651543236539611833249912245429050423238244743675029119763802281965910807708193423534008744566029911033495355888109923381489082207448282224375529961937166907460775685751650805458621475851296188103957047063524163075298673352969079231185083948088133763301657795120780564631752332667230685955938318797502122301250436374231179041850382471697482641987876505209307808706022452995695979957195389786301191178771101153994484841552646025332189734398612690061771304898844242564763269199471033432964051806915670027183661979452244547699799550897320844876759897488350836527734804875539919364405191387359050825023203952431593003007416147152439136337817977958794555754784628844897993006984331925303840931172252430738868862947368908051300678230111878283234176236088007245081390362398174523548142058118318624650020735338564972346123296800130207327770562374694635050852271901888047745817930058356121338496058207702547932974067351290862333207193532519008161534147163576551074416899208694710107619776718400855689878969310432363550373665187360021276723240106703077185612302524771741621032565624561480786313461482327316386297006704319480586565603029245863520391606486011167554072207265478090531926838999612474238410844960117219931029206768620890514290773316150743240068367507320952835319778500292457323179470050439415681515719039299233963625652731332656829311885666926662718056931906142326972637046848489699933915981423988333143128090168435467921841192724164652534302384162643177907339197187908085339023750347346502842526672036922826513322112204647357989414683112833772061472733258985893007396520476364427844200890253639573817162255336328714219313868783692859597968144856969909309644704390522217283699315271703601172324925338233712994114038138910844040762277300851411117317660086367119310672563431436636444962781220399335023347411477887558629398363603101389504770344803458924153586871392415164005555636075649631383672811117929828616893914617198872605639592531049520304365524516359971603864193297293575578135262781126151552245428779206780737453801227835846282735245563164203538889110854872961266976102909376641692008849201899016459323106647376744899155248509464036965573386287564269713282190733757737538896766538939863334256371036799710237649117215158045258389329677511770115465680250166428250081194130085016845278317693206590749555125028676559092611664274861583927415139682421463459761410692484694812901468679911354649511689143712261621877603099822660459149417974359421123623786640986112950835628311916110242253559477017536822879722539385206202458768280972755268975988735722510855026418293634414195205928331648766415809500352222367565274913838962139870692838390528217453271289837526512369821226928079974005489494931721407476514442735988683851638141346239507236476530208635694498978806981780270684784156398037171444913650566032742180662214563403734923527172573144775494906190022558862655110518841598441739071308187222064388915095269351935537824981331601930909835950371269363299967811439525562157764520692980238581002357217797388702075756466302150809713130092342661734833073605958675145335789207128826206938321560357153478508091851371710846218025484573315396687714780825267438569646897343140554808325616538357142741802963814775294653709016900803444110930763603858160961473054925328171171962422899340108119793800118478153635731242899857468437961935582298182681838366094117730034128378766551202691900544699652338736392934522797865832186129760778184980566387605785405087703764965661328969150858036076758750080740307356357489678548631057759933363024440090528750218220704453950880395328118545531994759222387921567598955166738604138950120879227218770953473002023424079725542650625248083796890756768282333116115301634935963409456195681356485675772554514660250414154121210103900886428258454783103846354668472765866099052160171495630426649543819553822611594718656059028070221812308836587784179972518490285836895020577194300559236165464014553032910896673729206473142634304975503091648457965586335147395176323837709635262592769384556998777263739151665891706865978001972459062696450872653636903998173191282688303866536692083118586204011562133137992197645844167963145830623523679399703277349501111717827615336649789701488112313962205108312723107799759515981538679594522302243947599048928724726446588647360350325999184982166625257806680598367072936618410751753366090551946334622549509853081964047800303167365472468839978499342834638536499471565146598204248034122590507827361589780692708989557546887507324626453471344282441737795643105457087055914565229601440178299693768665777439917625707151770579775379553603276845268558886858283271489664237718888297043813814732858679069440025918890875115532725774662322013357502227237269838975328031051692589621707571037781941211769986535103194036259178546925300126192223089603166732084094660458867631206408511834873133561155626538260476281325456405407205186646040710600336786868242427980176857585290101485354618499575185317497270626699193501506150643249760651117105863321578015161886846365595116477677528326718456493059492536584393048953453308176517796911260663280418745584958612227209248239524744523761557305848188426920351285837340027988996473855106804100272838969964481705447788844494147985880460774119094439547533881274515761928739134774161420137408855351209678794713688228549204202385462751385797677315695846719407320412519260385576033498640162557535395669056025990431459672690575259453343113178401212229388942886371823438196363202271583706279084600435170389849685876218885903155315673905821028689147258562713207398485702088032050421781186787226650713780149382193889058352235668269100449446721716579228010525962044557961626384200761445146870518352263604918062191115889081421677352420875954392586977713899491945761395980750913748117666919299989155520110143833176772573576416714656801147741133677994220524045860263553408364440590788782404252690391918181494084051940442569189135435746341136102366722535941908051402892866903731830743884347157931700639418552758683085894487410519047849367636187157866789953796052026646216868501681368896676077535732523434613145413541026670075587048867391770943552972348707983312390236131985645392182969573454148179967355016231294390806555058245067077860421277169086062251804743957583054030229136489869203107790177196882486302518291170803391085160153689503418365615472317605077147934431143711905175465131113921704104999008352098859887331951220297759124487185618966397010527816364590574389170306677881010200500491288901043709267270354009937209819216658936063071637585181714125452353576763626531131020271044712931384566204490838820610285403791606248527710143630176832939046694557338699568096219814713684188466686694543746162713878324785944917680756888631569272232921523139758119258341070205114057508719563719207562796421467121047263438779501595004447320072252134343157952904908158484252359909484699322670664523388073586881304835112972539051849519780333945385078270468399797330691027157734821214560861122137346649189321288885892425754487159075542568995898796922049716747788718481684667236516708423285806445981662139075313201822516811259313769772141000663509160642465126291007558793815103561432352959129677939000547083309692845420801213702358848838310175035332590017662655635754207672195187102682566936925382100678623577470292527407656835474564686101394656232017778150021415913138251426030030235552860585137638039187092053506696054192202775435575061421331736726655397102682868997924598172358576844831553925529588126390391965283894537390312114997105250525750913968082359629780332761643721571133256862459132049363534118613235645092664280725540585359076184368072714742700949890173383063016276213153683619574594298679292283910223788698180663612652592794458106452663381070351441918610633431151957493082449936596837182199521927998057335718002271327220955342379293954093048012573478638629234522099785790216307124512474920328377730552189957539725893194001053994541990362236223664705683792350778558506325463345999763454380368513560196877677778958883200746948922554331135406606595760304143147378122481254403199152446050664959429884861887387043530111471717976365178464346482315192052140859135771337248442528524937262523119683348220557326794412186889309665175429964111426213492624892486965438740629068727290700978542875709892113238998149371460957237497145239177888890838863351854178457954650204687684284735156372105445309418031330969289650376066895974740529748190686398858658860124131529908591805232115781579688487290586925281895698328538823596388242313987052016691005091958769690651785689844420114500175545007716066826565288977073504823856522297642009357775757700608175325540496433234697380216069426176319493136286394565808907132257503238345474952622605120623206203423148600582260254241068455730894009471859946395140912219120982448116126565378401310671606553253669678941542580726461288240661610121912686046986326122040045723232209581597886311072722350109635045764190787226924502989466467657211992178289504042965696825507327459374589222302536978091453935177807659953636780183883364005608612786165560085544153605443531585074682595765604478387722832692155389450023706623569991746029427792383833061918465891181142857915033777366236418704336318630394111753390086340409152226791355277867023798655511933804545308957172372013624569256705724128188608046432476893663878245832101274392337997153868251012831118139054572009622302879795961519899622232474393655803460102432898190812728805167448996014188689986426257630461578527455156306631284972565025161512518694235940819782495533879188164634028941559983884342872602852279570714211548807566270411213702344947245591159503906574143231914345451178804571830807701884310331968788017471318243489715393035556040203156607800249204491326925905807802166066266248743608243523252235433111217656779870510234870572852190922378711373952764168045905254979515669448347634755548687011419994340052010270449338954629235353923042237194387625311620630573075592712577392266525888980509391128978088060448230502072917527955503994536229575999810419121457698041581814041548028054017804068040024533138984058408186852708732066869414263110412387169785516417821409359572648831505519294245991176927237930413799601383628262114884505405633680558485343209748288883373144889735240938485247413373095863835233323987318234526771382567182788881030603222568491415679805360473100202308628923779383712466733856343813696177245505821020830616174557112450127117719244874650606682733585194589029124688023649213512624912535744805564472739178866067129146887037190855138034877901568303843356543573602694945910299624646142847664383004242485147318496084229963052136709871574348524915371888729333408462358469525090347368763448945931112477958772724783631079886355520040347962882735775644991287811830755597720390243008882216733554626020086381141135751516028473224584285464957114975319360864826662221151266007553920663575523613145827208140571350215562814729874699870179017967424532136405819980962490997344191103764071404920675217702544698887865893494747895901415133841203563657067146974175286206470428421061984196894412530902962087262038939563498317549773427240638856911308102425057790934651385075746347534394484766026296149254931823746286693018098050010065516217716870936738619050211485494899983027105947003523958954463355992636903628810848386121162033420596223581519898903492948627818439429699988899942211857806974280074090048482575329387459126504450437447733655838059318507718655130136790847193339193255832237684351025499972639055523327504148273697292324006207753805400298184165161007077548485702402166159575002911071126809303000763697974173740843643749626369981510916089906129871957196930101872314926148771841921554688330569682625542813271338812243341710160307724147869796460399385725711420437543346566817475668730801144990595625623937117606031661850602167389395118920525959246411595810313862915271675313920090864519341344860353762701722662131183513696385688281653817339548252738419593117158281183724058604947156060642708674980878872131141382243598842608628440107887814548171765496818308465204531741282615752999909920667319228396719363242620215346827799844273118633347616807018354232567098770953712845109641703725031218380317653101600189062841596709627798002071506643839821106239499680969312684352771095483382360177808824426166830053964668187311888131657929941585045940005288559829825180165605683790214049196080628465220107556527187178853922647813073627205912365808400475008144874054086612205370706150886669243913828475632700548332718419397705680226998584810826112984655550845295182481534660016545694281199469907443184805561394164341297001771766425051276210114623361647285712973345327968786573236352189445408113126881016017479770076418357445116853019789287114370755683561361675430787191759681548944339734913461618590782838382847918200318211952694071351900383075172474271718136856425690114909618934005722588858463580320251711200831483316872265773037994093022302343179521614050111840962256143573515561556365955789778311822232484953617338460421124778912044096616375719422178897900332870518505612581884505349888971448038940256839280426935056819068521077139023723744835693331504438180196056630271957565942148621647457202365543926530704363890582536399645774104833442512474487476927288771093819499535829687641583712165114394736761095361322009901083966838787815394479692373531858776244322118045710514688729126488054076329549124125183933812466672259819905926835988080361947946586548361425307671935690378606822969899675953120781333598760464173721600284063486552374932538089755643505379432485346745221321187274640352620477781642196209116268063681519186405826799118557164855343735836037184414799469491198798363958735886377236462251455313115226291591631380767303548532254822741468342842328571237042083418295786118865821016844053521954133669441912266835864324662195641225290145610091003264164812755689844197769310201701221634388856073893833447917819463385566124665327306537153353612912247011000995490553850101866956893800502036540319395241233749575111149665529223902983922452469141302770177286335385210751701616308708083754541754409461005196633320513903987086381208633123802417244873529242275868043023767620868818579725946482240087821800171778710267379676209630297656383210975599205301194728356175063086612854195444467503256921742941323074225637806348320878163430108050576072365225662378654428509689977522076751943458117054629580677641813058300189272685458263044915680542916494669376047223764628413047718319530044539776204891232000197051724834978709828159688311730949936575954451576936984226982917782394443369694268602307054592396586667667674048538979322536864241339550631864370781447191454051751065607454438087632053679434565596215579845161432855094964130370038106618260790159769514844173874991249152119282940720869744810056435062674390598872667388575313225642671437110920894104967736369257402046897140918840993219757082349757027468626958151713292177749393256052441028004427662565520768966528242495418944126729493152900219209174577921980777445871324902269605891799350490414708357614881884665081528047207543352662083561302769941752437699577732274377775934940186795506043768715822352461153098998216049555810846312313381005469428485994848757189083024559129115189707431055746345567335610038446052030417109964051514649105579638741312991464596091061628606554791637290515268747467519699382702308950735577295889260482663548889449308414866627690986936152852728998067115932260832503256368557332441678730732087036386718587867468081077887925469501750076910026629658803784074626703671667333455715140352490624642523954348586189950486929659353093321915724689507113379653328699109699218369646934309229523345345061126257030777762741994206710693136599600072751864491205879573058721242874225968981990812202764247500014077046647221029444948626643911597225902712173906527953391856100058652260367647940400223523806457561325910645190988931773966392692388276609030028525507174999561875753240701996271231395706139997989429394761152962417075136419536292626809572912237116340072051151266412336576335978648489488624490673532974611939278931754224353191251016464469907141529611158522009116951266163269648247565525783918097952639533176086041057893466201071265499235882015723810665587471622300204950838391111146867374095285994180434580637870784604002284870854278122660369813881994018662266142094982956283918185573569602932636730828212846141409675528411952053731845787817460083528851956222914348225287811317031449508751697465158296298642605920757208399257397280859083194404531036012131558886344062527650621163515880666662324839779388764597779792343476915701926109744378820006615919640308155063659622562077580932783844477830486300074481760081343852411452111306506016529692913639251436402090046833458453304718295806101582981420911198417588189287746878321408295794229277282606306920989963863016821270307830737494301834772451896625971346868761619708320845774103720146189357248858131076713681460555411149855460894312661187817540946764671804940486952931023164175124546790122738534085026833605308350786341694916419278606137837813138987476372229297377109935975614883821775937404624504399795848427342742768879926673030892210245959405888207169064314165261983181741057071865947935049277127624897322665009354537562758875403508530967851347431936486330238882508557285120339637194987910749381186818078451426363922290744113479586066767926964874702179078768610383348608938196833981034223611740428954830198744772147150593015273526993311522768612561041576716136462901261329099774000546604004336239287789243013514920140486691284570879776291090495615012946012046387623918042800618090315834024002012673317449023344599131036215560300514391562514925560089385723343550207260060851013851040037364798059679016340125614587220858439837549424977290862399570432232627317777347642036242248081819462978350474609930866020792414441601764997645893547411169360585317636526351415761359292373959485754891348146876544105506892247544038094994273637133178198572258802776839011474946875623908819546707602733443942446924176750550193350175373538004827276117854454757238405355304984328075237259331202000319176220781468697095188187230456120123381772823311997046496500969770630461386926111968051050185788361631527879466195852713522506961038293604807085478472256801976879212963670549215666364806556668766884644679385053239747063912757594693457516314534902459518084516797334740083662926534618428383855318785300805780340280870047677805839428956686444416871505498938550349985334501714271076450351776053229902651587961185463581173135404677745569680593942062937703569319669324905246524963245721563114189656494288374944794684036299217221206137247511561587776011465688734828094912549610409714679543629817353250542745556649778019064786698857105287596005746577311355560955030446565067954743848725094137278914039057338115667838353234920600501398574442366317264909267996877453235074064639500131132921669598477620178206058620087127852190066696204756536335371824433948437756693782763790099052740222130032553916460543196267930038292743613732452940669431429188214920640402690244892852043078563385948931852254460650154042685000246183513735384389262348675674073926352000794196077908020207527320410253588543148270753891553282847128635133825141715405798973767899529266843462237963739864580452421171503531257087824944473903449890795534001846813145991049863616532666207029210069806300192926118672799979371172409784794996950835117723750252486546918061240708456662756610623827106870977382202270996182373632150582907957651026327269446351528784150853199825229956795807732311484249104477578520543578752978468477807902509662511816781147971647581057338452482533592263056070227404762168554324251118228591358888354681059793467820492028079464765244267028722868128125190098586313302069165821344291562062373168463975968368582509578174399972873551703646110150602708858476774533205521812958349413318765293147610679563860300809503042139553497521823821861918820852132600778256912442358123968592995022378326582596928020137618811062147543919666044639667619908196127769656519976369895803436701940432366131002412314815343917383346790002383674972785162441782314595823370694971526127624333669872546049940680562204140716171205358112487168218044559641805064545942491306770555218740928901317561955966070959357299460969671071925531955017970350470506605674339247982102195207937242868654552571510296190273225652834516277469485456800836763845353419148990457878140565244297145777465378753978429815983155982251687001625266778195914954706642004150592413342357068651556547142266725760799309371062675823287608037218331583662750230569609186815258586689552805868431437406971535785423774177917818688301970420939794894258448841884994688988447148448472503559276080309734590126778523346986051214542595058725249043306338041728711151565016640648910860068314222826855431120420865571665798591111156974710566071980426169879951196292839511042317793141879384745386422504319488405476121195378938262737929015499920999491506400969765542418816830835044074214938717130304510105434828817455960362473237758506826947639263969261060463023208031201263515226766931961355930897765869516992125398265177301449083991500374952934297192734480652411131308729931536233187808500660776063521155376963390270425233211759036185175244348910940832647576598751821878716920469548720755157276934821410793558493398509684136749273386054125375849587561800261919111726109408737247331629533701413830935196551955435022756506996065691482466658688911004486696819435720319505535905313600516819520893001960357338862512679414050262068004383490932345903752747475773173122864088602003991007469168010699178795388596505698902747166677996247920196842709024646165745681967416730718464315654590122346676026357334353619875693709641657074938883671575621417652561821564660438007608270713389698430762597955982017616082286460736025634801733962820422432891482524384556372055613274105296208481126385793151414082912307715990528982262582468759064547085937793490222386859212882080186839902222554706254816412063741982222328324630286185450796668593850155281656533188236788429369054628639095614326954555909191784020830363502870825045599350290947180372805258285901517866611606628483174382045745500565420349030118825669567151656883482849924483042501537472300594543131322658600487419295323893791575748877220269948399173504907823403142318265662436016096998990951327946335772649263525100885875414806549900192261319648918365148913322257556943898354644556767014735847282955864958849296629986928720680896284612318118510777300531222095500911584599935192913286354873461542533783066315010351495672836389200272163224074636599575258467318062621646596374352819915825593730103561932034391291126337047965932765397801092984681726765321823225791935036767103851366165095202060910973321903541677130356438952174834356923178242633785377292479554749796818529573858825981517392692229976092410599162462489318229537300653534832368940786314553020816636369349954655769683341049537883048392149729366266149529957712891972118683251811897453518931842046527548510447321515145634674178308728868344053005486282660566726137943188174872879535220065662837369312876980808496719296830511270595255079207382457546143347607406058613299658779703100224036259504936310626917176242786632166960953226415106627400831165366502178217025869981616785420254092923914924037847673692005468554084622776123415250799497595664509180567537088370718176221011310592766015541617189296843685624381864516074733460820940223032202844908275385967374319474368342853720820979458594897572081717318203782921019039842974090226379613346979645594962539653491186474487725116964738262482664510308360383484529539186459567876662919640949713465746566161649974406202173466428328736163750546913436622115668637050669255944605564011047933703095602784221281365471232504609451845557588269794021017021430729219272213244221849745235797548300093592418188033286776001063318081029119663579067516923709725487810498345614648602614553392898421845255199019426141708954000961363952378463787623836697494319981170073590092374683466068895612053498693722235450602654530571324003586711818532853553229302623167104890714751726832777209297176090824850823799547979178478880758422399053433417820963426179499188427518050133306600858913127207886237254171593524840570370060171891444727670602564925698760347510961193322943913534663397819163364403448824954461834913185262528977146262490890737579039050675359440234499448004309073367966503254283116021561316157722060300456062608264119703713408424970673887514911019895437128372462853726680658817582862319170204385537854038845858960863767259118733253235587866697544490958350105578690960928561649017964549784355012711619548219108612425592220377231439626957430556057140452991810927992844031744778029228974034681201334135683240836161529921083928498920068977441474257982753627127512146726740520591862520311283712356609706683622839062234087533729652907863493590335290451763913257085794087581589354221076552760060953411467581063017054902141355600552826972322245937621807389679471395854958916203318505103438464271903682380088767714078823195428305324479235358785209772364956351086948485790046891726700417317514551115731026859519276139669116912823983959311483299219052809427599706033377124694715741114344281012665457117300665795163638838531574353244313903720105156148313704160122590859687732733984791957417871084548584734023380329781756386773080543408100646890928107995464584401826457630368177722638619587372249336538244133280614341198826658203060650563405795096374129176495515327302416883698311821605435393922941659704482737943645401094529751627781117816259398486401970460620261419444475878774345422384538034375082504449885747760552049002067844917807153857817286489958217760078992821220451357894965346097611834779126243129886786426994904103481911822925762179686239414639937821551578787714114866212618763470445800656580630485337745300139306098371362537566633255147686759547472237425953748125495216443486618969123581841253503854679784817467500710719727887579647320786060080425099968662957000887591676564037027010528629453362121722135594208272051984765513266328832984344097067169918510960682299466261055538537222509443760699769405640573399231218509157364739176178045894246061821710616685971333649237491317177423942838015695369205302519090170922376378423204224617836581568654161571797308934295071612336359634773321442587822339945490541124086162912917858214209855009224788111243861130649721142332885435171715898350812548152088717017919820870264951764094497179467405840612620623123181380478594366373013159335398973270155964992484150227490562888684524063449004187671860713394384813681593703048400473126653354599826201307481318469246995691991905879856434815733437536830913159597150053053168079464947801894181386983532347226963014431943450076604741276409128723436783063141473421764271524911538044597311639068751465058302621382296299388797232626126776147590284205913267854870555635535629596554365695917647883493995505059025674985691385239259847636496984868203308398630673050052125756500901567370908818518147643042571011851140783408253144038206523272553243149027373088499047227999170553911641781294591721708158936126531223579029015129190825575396841526403337650789857627530332853754023004249635144542205543427460578352636155772525048478759198957174306861571242189051338386624298006537120257696071555449139444246389677869269902606241977322343088496626448894186537205995767006300185974388995175982784164542280619608025160964178361960545853209426328164794013814447424674571457667632145550577392556762887189887965807350553804081187861107578459564023348549237597105856284318708151219789929981721782964142212577342931249940352248784930169593226970094179144058454286251818561812585489851536127392534131034685957277645177396304835137977613146605779206374581159786852124153548056235418666398383556161131778765349296251203974773420554369721558558351138923211512199693755910241217081235713719439821046536938485707397208922208888829227670253844477260578919032820838220749981561880831887912370582674403675621052432591373035274850866671064476727918651343671905308129581168853404475884093113247705254577879410858055095541197102629964478587755001870524568432081994546996179093958652579141042805785588969434906856192795892246724357276948033106821705302511187856946716992758746310706279922934441157134955549310831618021371607637216811079246403763314549618143156839788260870110912700131637681143413455992340889389729463980658556431191825755328090499527069915502710149294610162477311644535392377636544382130743362304750669925051838260361181939101253013755900119525509930572121002918712381097758532985585191978793541447160220210686171216841980647206020054674157085136123375772363135315458940414459187008445416169733431362360813775406768625829193111138148870298925749060226616210829716934898314604492893968997596311528210697242892241486439227713747489766470989221287293997913980954737132839872425830622880503472898101814724005930446179564533191566280331812470418631164135369194332766556188799602483303082016276182584514271590435077768110158966861445566479634095954003511627814872394436886981243126278931555253935627623526886825547265950614274922124839940829606724822060838421837777045597203849609887694267499223102174045360338719728813138966351501718201583878886690364202382335790280144498717426238044077884320812177272998108825806666288779542471181410878988785017129245752926843623883078582822054065572264398304203110983722458480247212632839485260368460605231416442684986321102552646010446011458972351566513635606634581203740992138443344974871556312169239315036359016946490969905397418930332350346312608997610794166103139586695793484852577263886097933059008836866740067742938663427981366391468481175218075762942468854311759745965116502098375449449906887780355737532549924592729327418900716514384285121752802437980714619520770330741113338635831269764105485109825000107396867099137832901259592570627235716588536304696245318389703359326041775622015254295600534043623596100325044332699553416095111790824341916898169517568427960321929467428358729695857465119351871247651822493302134982844755793197642816161038621943098267587445189443397716123879055279629274320835354183444682947551955230727395918365002943466595190343599228605724966393330759587365573802632885233722745449340748491104803041743173078095961030777994955865514192121678960893963892846153439770321094905954277219425788983339037339943706953967303548960218782777809285400333011385319168089808134622907556642695167484477024553496030933839732079867905671048339441000762808816074457818201386180014071605072116130463374933513107516634251561595133827268404518479063061629375997162049126135996421406090421556240879146519733652425078276648969515066631297518083589274748600400075021343524161514742673788075870732371748891544159780306674240114531708946005255844889215486919556473966696607653700117817821131558062703778900811515327132714526942362005714434569171089511224134761261458296653526790818230147092828661655683646662359896890835608043414025476067771880074165436247977170416476611152678105267827888801070574880608331150744169415385149948651747872307875337228534902780331549181525217554474322188668519123587415450366018707249804226282533747078057727466222151660552434768124171888810346422671969377425108802288957748352818176083656513071024513917285935129895462602513484374591981669023382593292520913113155482547950641141902694971641826937517989990847263616486480656654286967849190557219954015378073488707084538376104930211221055473541153427922996099698826230058851328201680622368393309940894452694305365451122471691233281105861923611904847692386172365374368255275031247602836902813854495397432761568179928290233552322972116738775897567024366965789469715262600009700309092538411745923390477657181420819016752010350850540116713604450777516345385802097360441806602298143018911625090022216882935378315767466220670727411139052837133952309627541330030502611163574813173298137722684528705935860344181384188534075466643963084470142436172674151452442354265288938360078911385708808978879228447643548677116426604947912840520720990203337885852755880779132103564067968266494506665334893435831416021289396760243882642755501492034065972544801620638321577131892938227536017648509044912611035946678921054768837604624666370407409641998205603123611063676784820967674690115067817474809725851323738225516713462470015528647763267982304305881468921218366595041568488059885759620938825208477198037640285162230289617386616369051550714385272844839438296608529331341807678271489496207311850496749982507724185940962929249608717632066359635672008719605989939874050874061535335665375804278288716379450900994623542582758657701284150847849545553784562685134432927015843469599313245589577062597018131261939972431309809731297894718108588455827363067857138721863335567630523727219263547026201957017000121977781326619730411804445817051500401847819185280101282899054120568162896439332864178023663541553686379089955587528939359900951845616561945673739775134362784552041972207540717174995591690196011224507180055277122195912634551513782376879607958951385029529822842031927247889661195267844161975369626144514028742955753792077606844731719538097261230652436542190679912749908268511087317883567823801896546552659092075623337745636194256458574664734019960444150032750102448844976755982619666434905677024074370009033833573438535232918480125822327354968140145449588068432652741623793253269894387363722563543659229933700234028043881116927275354018507363223375973496237770368508362862026738359211018421711426077095212191885554906919669431489516734413957587547568896537858088453925498873444382357248307217835110598334521039552463757152219842185106486920851688187493929340688311715659439719857315401495014978623466926019234949380358234244536468356649173867937993310263239738110084945765530597989979001072520549066195319139886905981524758443754091417150249028009519114650356556447022045007987210241307797404900653094027355483894620491522819686405978139906137041432825047126365217304537623680784620287871658885719515389280736043808793408002204094797557669779338716262239207890412783398292711974389539087699428148417070902773711846658708326090715853193523421022626626664314654558913358571174636202283439183865288281430642135374477549949426149549854278960342524863429822238664863656514990853374183117315072492155798682666313202043756849448358244369974887590936547131142971694723712449708090233682958302361294306911757670266209310258525794982524273968298054466806919565000449006449264066227015221079675201861044130944168249919616686374013462761013721554679878483965691540677768831046355996121341752105446880486512951243625215598818866984784651028372969896141631961051367032759087561341960660227746546362305475513784971233839442883084157372244185205473954588542968124776212119197274331756418805842475660720766486445417723530773574306977712502684807525486123285324763897476322040464917149321250701296906158508785928982986600113134802664062048177328614732899501633274086300911914388735670275047439059363563502112055477819384614524987495007519753679468744098400395286231576027935167018951430262985630534430921263757664388168523636130983175852135374926734992047586022583640586308764106765213475332427707515347396979526001105898934639622078659526490417213649840575507399135228514615877197204985414254920422901784019836380513111795169514398098610816415050270500998635781326893419091068575590282160600179689836487006211370900107029711553788814068372379323994337221669322974251682939504746991750761057163261643652689315781090344415683617720230936338356530256408568534816149973454053999677177593528328119626953189565835867641594698216670077895225727153909527845826938662227067822346154424384470741075945191972229873771555517137305169882564593488567802845604236858786973160273186891202941952619192449590041937971958586618530157298937047562858083679451155912434636200608476804188241077108039766724842535000930499215207646556478697973401497182670629369011853182702428587923456585726580510675286765071682925939661446644554977871049153251449179196898458794910548036586710198889099504535437198699878174506402051966987808309887152945253826651593428528240944258632083231142237016309184541859200294280850504321292041736871809763538291468988269784840294409701224084669798644320827267913888260700860397475072243919916470153775758898131954341614814509110529623492446901990779811414025410714851466336950650719885343738878624800578750829240306339585432548890163478283951211218469565614782491340098450347643460323045429265592289019076703276228245796992733848636343606480783550442085006470005651271524384412268047889446229374203418196525164020824803128644087948198683093534736397057342796953230923296963425397197233803139609808404455294808059680739327570085426954367573798275198085123213128060428661745928488337661004460110002070025357419969094707620693853785941226582741358190008756897007160707924228776565309792925977607285355431159411999659811008820243064836516690407450962243725051382155630762579656612966317551900506683787174646173166098360994492576698705896957589369409927060341720320074582325092833400970652166288736199899482139543007257291991667448644325898504808261302683425489697164323306473297395431467812412198920362536058463176473774235618057537600348448473298255365461255765681465813698556794469017831706138388491646534501356130834631160559347924720201845460627883942771279986823751628019178678021052336214766968682171864804176194898355587809895328815206554646916251925554157341241775987816604808676575060700765975128008744442542452106172025007497459273647241325709990864076733456543866625824879473206892752131059405547356341224251643723245443893666197601712032341890968569559162373367411943323715374655196993283752103710567502291787600540233905970689223042798136618364154268772404829670746434547014210180734991921442036888247437301192310594454018860509058913510255519569079378175629288371255478550123805556827960067366992915170947291245275052507924137018947440420291022422280410442688542515012831872776611791883158231445921791327693952205394232666337535221246784881060100184136655627257816531625562102272177481380069454668410816536578974407207910767055594122182389962515262710034578335660977063540614652878305584249344210569942977726780434841816326109955467426157485528924521375320839227797928999701382114982930810108813864049250003571715919941971605682442370807631000759787607876662082591715150674449000988897061982069164159301173134904488397104808286808182956003933292165664317294359873700663804186681400314035244302406784130849897897141025854984727977538453160235270855249364880026800846564161925097202629553703415008021340691047602512973560150570794813037432714965778956754327215442953101148906520171385673498291757349821908580285886780100053116318955096582747536090980871054646799781577745368964660836473972497345895174402791107511508454708885131991518362514318328285987600097707298257754102765991221865700151314791809783339692888130350557721780891226358756745478657901661108173565640528667720714663761762848851745442284849505511306428034471403587195477672769398759367321250104078237386192257675621233708486886501159089282054003987456906866118450881522178738049096117268252514070441954324061430873216811352907892751416474379041251518614528477068976092843037490597836986907013406848165852227299813902388907512304144203756004181614137495188659609480173386704708950210557831350794578120246065365242505182126259257519822084925534542391364121964667832301006809741789585123710075434097315140310648247968001602813864154251736957508290927233632456143040927427620140164056371932242644775166649170936995151038807219245434722060760087321181015496544795567917892386897841250819794953835450732304302332473755563923970124284068480599622455355640617632223628458823178540057515737078538973964575618093094621562856694291680577609396313459624691063211435098989154099401296918677272064283944760328152024749330304082007952534562197306694713777645578083823973485541238001113385724093725875681350362795208492320448687365420453361620795215327562399702637847791093396150501601819055222102440265788410406767559603286727063609874410484623913184708351108573560033459564104071622530766685223166935858924741714213463661955057880731704575159330390717566160091508592530970422319661158218136777091910905678612737790697247404610902343205398913241082157374085657246878342240232385789983795906309676347899342702768338364288258347304813728629705390758432390725288790193110385452289991965108810156228557571985144316260512008012805561888134848658771706118797484988754244130803175636294983498798388374047640239373288805775964449660631503252705077548355679250255603089552138124162912346502656756221110152021496540849799829144813853497838803697251393157929320489122878017380669194435914331647760170041872255902977900196574138970712922799997592252374369161673940138359207185211878613150702274666493246025172101183393830930543126060286856097743583754550804430092721045118146413580547052111073071314455558066333796728571874893734022590905212640002067088882872078477395531807276543883595629073656382242940067713463927718369491809260434297392049878045027087216995525418976662759121745515932442376698379076088460289429762043292230456088213966303480755012402608888544980469464455432689313463312453970487725556269800141905716890631512032870091008679981084920808700309400587724030180638565620886800921832118468753398815511399729689934157961688661598838726218586183703857684745500487921805134065891371445002523013338736930467134350382758869563903173588939483583905181946086786128720223586483170246695013549983035363326081913490464976109801111093912823330559611708968088089346041135498916165759818246886228709463733257568681912651954002744885316706387524424180787296045731571896817855161371002610860932370895073886446830713737836757332199300671892715362787012534936301308036330665632833647308253325958285691351708590989158178020211949389961448024390733842916692841978011617878962903288711848705342415231463361873390416500286034166750542910728305765863545699635220445745748692317140133774157372392141492265950960053424189407276365040963227017005108549464674123832951280633749756464260877841082774586896646505756148834735666223652219789619894713939587552636141481341634952946703476343467541090760315760954603440865875883732940530828064888279018745646926142326536772088677282217717528564765754425801952151021800482801810092556541393997446339074026107906697880866693711702559706604534171001609929111648591500134934196243113219543277680755165357004469051360871638945685699238358572738467793569831918341386213769841911488686446846145597943322904087328740238779256995881083058781742243962372468033466385831106413939237220005755277258434099309734387268797227262476504482094565834090581305913814642205879366128205824346600528412677369836027959750597486895350640007659092821163703203423213723425347323779056074664504470191168471614152388928405378353075514097075618476567392666512541215552981401285935445722651024077657282491289793301203676270556550607818335262144426142336962470854274920960921148448680507946557081560856763748258366027243243339322987758273582514956300233870273285833412474955455486537834827548809771312710302025985198401360069491098742989741100151226079767731133888557583179482729740254529363379281766747540885395616436473398966137032890493739903831294302148385603420829482949319687146543910799689394538253108016217483328383786662187872147353159012732482906517644940036784339641301086019602782061503138117728346740243248455562123827012837773234511045330693344395481384144538940899784857523251862691933536369981102504365472342461277599626140481275197615246318156217889580098205234191283399223835140763951174643428152836047122537667266464596098504773087157721582782263999621122722925853394690800385908112608032286020281144929601223038437830062793018497898368064597020415431326055176991623442601242311902123242785630190994825309113348912784291049402921368792778272449607086102738446580034276310533930463006609721299719966385489642444039836093050484217972386238074325782227420330817172424489698993180734700161424823932278986211394617628297901451184612139034277225414670003787364605457863988099035103006595493563064362094356377420335466375325157604682655999240361246190851700336959583035194704683582719776048473952012799084090733490872815054337119831657706068415477553215639802751647548118189197882297372471755820348727648676841808771874909436916171475046507921861876645494791569366620562541960037655877909074918414303625669995642932708143767793541760059257005400722866590402793428717914674238268650025383733017240157729294418052227401991949248650167541482609555283237317592446716824135968687983340999913029795582134320478648667112999726715900102840376487974840796434113113245810318678017229454761179647588771784852928316452893120713192279814685542896818267672768745960843333061875987977113024728151283608031577802115322258736791208062647467316657490706116225826421283872667339161717631294212338237579735525068567623642431607247749470707890842469022820626965363483161044532022062069862782309457167685382631241519825063618208535780087009976362654271592071342570722080333981020839639100442408779230190961907232628003668854057499020383112466207998540616126555439046062273777594527594463727914998346173229397883859802314553302315849693588468251538250404070488122385941715791174381714148241156546214091254250640767048992104005692391094701033862046162669935182868323652659521316471595384867394876576940626889287139020908418065322171327311768468872322627736991784615730145716573789106991547921967398053012991421734789274509690647374796721825648953384227803257918250161468152635263056811548221713991268198751899412036603046644643993980071596696910531724560473427244848619340252464382486026857785384337374991104646131364598952070815009355804914755747577598945313472563473431467866415406895341152609538589456956513017957337804460838327997533788246155516108026498006792191943369377641605132711958798056531993660064610912847408472432741063870151150476919637387525013727385520931659807930087537109896069089596633565639731994155776319763651564307923883285064056316364560454431430547626105004988968571493428181624730724455519300172646797215555684659896031678388173575430344262173483429007213552975359791385996629443244566859221383193632154706260973009086388774335569859046823968126398951133803558961690561906227709325113595669534241386157069249529875626647267490727860102238983461023272045729016337691082068759812276915667369954426266411944034531024772652802055991111773665160598110259655865857781182764383353666601708373661289258159844051330060503018326724426791381855539177097738760953911543735239942106431955493670184790617509229568258481538625262572397466572971713229297339570833607889097925700259105147769866775897793441794112444375881408188693207385816726530619101445981128901633043519830651568743572853398585247264717871662494164540368735543657865886427542490170917096202836943042664085230362650240800670853541985383007461127723891034665795886444627851937688155025855434800028445264604826372990428760151067756721176309421058456947353668295666048174145083908038703663182897707301322400755041865362246855573594986364242214243574587679308117538582087626186297976888476933572433123207437794400965046582809338071719046929839435241917217167789901141499353778980744912896568294065898264695453187423850426727699434155158609371996456225194207338574937122954866501839658272208419409836594178140557208094490571633178198803107009026465942314991971744764849064394954416818439843239711021409663745344444153006572484221080901771068585266797097419846429198854610462133459486267630533811920483074653479606640280615319181250075543817469311979763247530120370827111886269007568717400017772992069213530824696743134374579022626068484919380376008372190021713655932136400892819626714079705589441172523000076425899749803231899388890161620302747765943411299124462692887265697247558114952699547393799775535539282096909694496113878140529537005282643724750607519925652349501324295584594719845233751270443866013742157957571666261379777669808706935111738591611093350779578101719111069340985675825218587839382481719859368641411697227478151448235932315050824311123994284457193432852215292686676887438389574804112930290411180428278328206804060936167844588347850885872786286182875198766600168074513318842796063373088325751505439044160611039154008150624250031807397307345288796338925104875322425574560829261068121876411157091463786982222814182618013564432093157018655833142801706544159700750432863833356183560518879881381038809345653543485810063676024970115032176449010059373526425108718925809238609008277647822510360404551877743550713619526633525688959054293888240118119936663996956553358240136620781189755405695265613396684126201655741167274377645788301715167500142980713958728432853745775235312880623375362527080726196827186943895962778819101546304559348322447777076324760931128790973802357875541039199375176485545238202707467154405832976684284786186983859021078717843383482787468627374478118252549756785085500177289006472497399453412663433030365787869485279653620064296863255953443557814487942310086813559566534781808358238051989206757150695451826354960920978363729427086817968680646976481889458656663682394319795867781838941530353996371610646702507895921704284706399762308611576743549866653072947531580144452583966278216323112244103013205282926407546090456549813567543399616934121738934585806168968702158401327977576270254105545191359299202291396273732525927621108211143761573509879410316206262234789866011349680196954705948703105009505036752898013658440698235929371843586001596122140642226169059376733969235378073271745586164940918433852895594600918894670637871916326336032654079817275538229843963954086060386670837760235051533148658861847564017287801918820209947402925937774899114931579487764077347949433604124241004149959047437235386071760515217679003490563406812416251669069833835353246733978031239616742267343328489065729109618096433066230751987333257558662522779076710212183543469693151707856776262703117927785422463457981145362795876136252581558318001688576654572602070967456989345259333117438342237595519451435909973127111971022240639298924448913847209767668118621073201067639309236233990512857804438779509503488270390979275922034997026871824050337653495260062012300758100389036053013125154053482035280869037094180147934566569026735983921085736985128219238347133256073209156336294701980116310115561798935334397081114265951577165042785242423556040063774921397852478027801296486035360762663280407257023195220497372512104498860247202260505196052522217790700485350693594082952362123005827866083393467449611652326719363693713060711737178338967765787649435847867343359395144810537834986771233058596050068652835256971820828519529904128019822176213861488529716935826258574680825807073389656140255730107889204310070524632467573186990168330884685242753245832578985883781370461526064989624682392467002767939778582189507292218973653134465908122051545397334469234489309459865249645206107053772530825854827258925900285649573031019763486697089023516908966391565211173128352329651532378310739585286662716317994244312114733549382772748052939115635063825448353413040824423297084898407656383361339516685035521673138833962775744237171317448198913762451286786009573870645436811607123488054544135334185973734507928325539118007071677108998771360342985905021365676533724752012357644810040638902370934394338921285283679426685011145845771775889020415633206992872217123576323248480330153764328532972194341728030118659592357181420991856117752441766159777798986065929925743742933586194941310192595242697347744898709127164533042747090558839693454314324867108142496338944084649102524770804289287777500005538395561622673037527307724029485521503114395423394715181352466702860464470280699772630334364644265704066505760564133638657361259059487686971563485619035405969277082914058855373734194971326946586534384747475558242263127291511838095981667407489569495584516834319852300906185877484397335942283973434705675863345044989857271874321979069652159387143916174182501371079821487861668716804345092598694046102254220375404286683045331100951880703831100111521109082376523931563723402354847112133623947958018128574814279936698460535037667337524998429037096576411079068154439977971014538811654734980848342345412655103225818110232546817642997718649279417415562583245582632823414736161094745444217017621306500800790855426878701899649540132866623585369263016831337932753452193691237521496039908110528764885848976093069091298959008976427796660466678827627021074170316888377367568028793043848758636498976134999421598773068971375180254882872914060085926177284766228539820016590124219414637574126168134455932069762480321085046997449947319659815071650372902114472911971134408592474651292451298306051265284432803076378280681082651685077715956145837637005875697548595011264297039456763491164533781727910518119847200762765633837466273760331724996907269860030989535736028856525983593591821070883755920384504908167773870930594632103392713034126448072256922540350590528207732943005601617968291295520041831111972774541685505602581360386048420355068883518940390976767774002439017968756577721401721399171665617912683710063083030763872779439426500426315352699364924563237553394073411378399360380291472564485874683753580570798735706156281302720157380126509538338723560231260234930651035263297259829716014494590268612512418671544690372624692960397396511876304205947558096071226889745852043484693477020800893334409256760451798181644990314400664230545256111777509200081410364210405546653517833933540682252058298303304908626412012850790677237927969904343795036308657683899713929476471822641627349962224743669056524421553368479209771030962414491208624867023786101678460102413238722082070656642548636120224506615759477607790894913981762725010466324084259711467220717037253100288635637279006088053064112800145522985582523515928200609390206999171576431153376523908057603293940449832871590396353137898559591384626002624998959994235482031262463380790856344335067522079280547573267172305854601994827831227765489208482046997080886172136299715947705190594666956555673133945398942335926202547120804279658249559393362937144629275896940382943326699650573723652744358971904602604776975880080301312533699129868361912806976649430993397296356450541573052093437285320236911916358689285050532540617564792201504448971985634557725916742406042828398288430196511219636210264894053084772757511953816149770949119877494148523517090955761138637913832441415250817600750357436710692633608289271296928492550463639050639471632415945349443516766845519434804109574852851293856246916029356166084675389386588561393275447801450439925982601643243963117119873515781552963009788060797708784760699047147712156632523352075323360198879988492550794978826345641139789545131276847229250170950317387012250464583824287776219861073439932728919600267488415787168205525993834714179879479522022461963883800678526927989647818113788305007229816510679414808232940887467086294966503041651538698795828022342067958070316235550996575178534207856435344772651905692451046789719923664602031719287466967347175314027612410101492355707260779182952576216346620529979837684898337213479644866634962572757454965832193442746588794848025780917706838581309321613453434615017791660840848578105479643993532106814828844009171145273504125584874046233192812416469205054082074702486241674940416384608318627935240908812072383621172894690960859597699448669406491430296358232301295474621824291114315486415084393924395912955541746668114011779364403753828692350114319948591404591495356535873643326507412042131222783731480677519948642729895568614972821287536939683458200727646891468855117926401157310175025378178179071671015760764050412616563001294172147353828098006036634773766550328209204755026991318815386474440549626913735101311895877825685848737378005475759822188697370346964826937281179398587757011460296921243494167808708886604579017088024196541135147718119417885137749334108958704206032024414300450394697639798300000810181885596613411765922025047895125676065588882406443793141967958773745209202497646969562940630570719854284855601069970668192087788345969571489710683375508275741203017315497438309704558401855807941630848239821947143768010976143331914979242444594733731176948898873365681285701674111110495433150228217761519933228006491427292718429961381564337905700886738273719030068196071288240533885649173868969422157765665331375420544659106207117711643561887284307713980091217113018020549823019056053145095070264691756709152565314169347578074252289720756639461079668013832552765514806688928406173535672153854322147076574785651766609064763573013125002502874548936350987565449189584445572343371288256834715547979758558104619627051766675520922075114150506617543878217099187945186116893355300771937249508661859083246296903641072297495306829495981971516819698268293647901977679181948649995767122494319496336396180403999620033572470084698829433373401488079211972169983929214175009688262984149922434559402237471090561731309966378636910048634864974360173492787505298094317825581158898728351318731198591703620780223838382883479629408106805615717081769965642567803069050340699722738251458940209097499306821364576436255796966882672699265260975005789160271988545363210863528017938666092716422049000346605947819451430267306692142964735091922432090427074968588135060679322856426874632702500688897842156039427343435742941401671058745698754976300920996841390177587786048245466045122081426956915579206033041619641182525240671454118285402744772011327215031408189049925936972038974420826006294542738724785987711512054825250437156650842454383219863928148228425915242025956207939934401057122354998309108844592961245254066882689410334256077052298155813958149964965335495049065005866253811055453569733471814686133768655041716092198969464899405788604632348938975557220064259899348329292987380366233386926479820242899856432209758866651074583773950902260012185283753837373936631066590138724508098295972370410973352359760458461483852049490113463106535782650902356805803772868672397796217210850074968637651216911484647594811898830896409611661834178390543065816629310700890774030816698911631716622201033998446046776946864828093521431800381416690785276052469626899335354227717099369521499527473432940217861684577904888141121279903689021164693215348113182914706922596088271497857624016084330703853598697287399658667237318532281452838998224033128686783663877576104029399345030555702855844198995107875952759153672389741731708039947104632826667685402705235863785517961899530083668431324321911695711336922977097585453123808872563540466885871314902293186375944751295305474121028698406747625449994225428239791843983353614122203072089968398594794007278109339114224464967896948310508359812780594858036428046826007493878587236513789003813919100095019292628096868611524338060408853287970174091225467063141221934833841888372922006220975824276119550162940312165477345218124434838173737799875174229242118929153480578617865048365879642423062569597210622196119063168211499762825369203700771009398852073739545508601264589893887606253596834483601536231102659836153822075837054996805947892909597036079043462945962254967805023853830076340361982011873544090639844616399663587069557029687026258141991505995680454082419923627515108109572394159705651199638473690431197013372141192833058682737008058647557675956174161424839083960875300483211563159652927648688661719498521498529325561394534800632238489609177784015735194302099693453004511008936664962323065044974233926118989712783548387780699785609838266003389769117718131889846824082121576902286026248738929422347323765146225691085077627498036602387699873157186488024237103856646436200994471541435634317471270413857713237042131648570427525155891782559974916810119151912580368509389818329680249615107319632078498667617683045035211487978722524678558717226788287458246836337078043777814566369198665463576191598264777176935034340666034648012173119782834936258332099043524963483720855540147800261377457607281961842649530038431055198828350509077720042786038940075539184170333344946313487813586326614488573609327227950177317275095014919314545978970902598973804877971597278895222106498833382931182417939614716583608697364759322796765339927638031343331565831771748937737457954989934813763651636438717836911397437223436223544687413734060507449978214770018630051315933307465314207702948981870855166298280102792152216512818053254501388986404772216116063425148510290833917174651744947612875661558561446065296579880028461281299151492781629225258109398523678857351125710873950754059272840020948100606753336865737136800523306957457656237616735108785873950774943690167869048805051031665735729910633476771118436333363295350704814748891486436854179488067122252819450814411475137896529056769582022470823263695524705001771764477027253778386751379982791599699065579308507310541806608633655588729163770920634440235096631903163417541654675911480618819591547708450063279075348100240859615340495280744876453108383476728759819935097374806151117547437887026249522684611222245189945595242968933954617802585986454336824281131959735654753302014401020785237135615438033978781986648280943112740095086350170989433342139506529879064165620707654548460024083496547212987207618973830649232591193250729531272876295448602904479147210494338660733465433827077332262062042224029165574718590881015348590061541319834788420883690609461395800000652511084186117927579106969414162703321840567163778865002502562713354197252462871014516907067827795015424742402702498954935295435989596439415539323988061198751943735119896541241454164010284172976775725922975891573501625758172080590130368241475755217169654525289954415528637654051366781683000001335279862839706976065175399690622106631501317284345126656414803900826163451552145933119399706957212916070778601110480791889106747873168997392222138620137318901484913887155871312625063589246449624793503299072039293095078695589286760272208171761747589120677242458831441887067226560815061247606585785153846964252145838257301495774572298964581607682852500524574242130046208314091399213074304353965472319837421288345348096290258731746482269509348617065552270711474441939055213089343532758874810541944697449426734200958471321524046310414544442966432344046814008187356104705946487272170365692653715782847606026666166937362500342300943683918358081656198138706818249744372858164137531021188432244125029680273709849834643275894140380475572280779329595981955326760281791380001144713943450052696373753958079309501077172840163165163981489113705126213863354669503542286203639303532536851787872956721509178390888319265221540384139719876073646447271842300960845357450609194814951700446696194064517400453925683911547702879066197730577740366653035005539805919107429048947714891071829794026246947668211511488944407600638831998645318934328135775163511405724745842696953741063915993766839159522248448914206410578255443434086608396200257743533919096155313093291629757881755233203155208737754033676362006919826562574877475103458610730392721627735819655520168361869427330100300631103218808882511084689937033054386410543756224733650821746991067814902329099270219194706559419154576679821478736888751587082189838382182776570425721296551130771696910379174184005215691634131681271647308665452757722462862867841866295269262615849752272206118695082373787419192198146303463069025594904379701675232955131500948529391175495143462549966162996785309777309591774158458563357801399507032232390909182134367059702799350098723832620698407489157893367847686130716458925120445629578500772462658693662190139247082370414340706632009011681001019656226194347746196624674549573137440381777081739347436815860444950930860624008841877936542245022403798549961190221326841433172532919313670515967912826009677660447632414994375462461013588954991353741926966054140569510352111379606889294219555147238553870609822436721950190195966204365433794233978950639690945899466063062118553916115279930682894524481604107571290404399220702128145328100060032499237927849809390281678358452564196692592096480859911115644342002526519395461111653973655385713928252658860918241577893061599228616617814070548316796419140855543719279329057996775058938192448489593819164038665567190781403923175774048360415663006895698571974440423271335978027536699811661244301267489196474605314653076877460417696392704467338724636390977859456264775651231322078692138396227958849323253648310647666856020624386202173324779960222761912531244903097563926225312779991659559258006447400897248952940420649157101190644160635394974845786552386714377216397799069339341761002879154591585867240162278470882671360094247435755654592617936393307982251779626653356587274279857503013828284636537778564566187540351679079055983457276546135281800557555821381150015488813233058505225877527573668529327869944569307590145117352339623055324275635754900313315438548654186163252416662050798698157186148413366536670002979079614018979600151101679157027865904906066244885142827185958256826470304071139612137286135218669718275655803609143624964986972573150770717606218062803108467060901233803710669487099863479468609426648427156999732845867714930722697382292562763610949224408028491075271416717333756804474750109576209341049945858758678003334187265240232497822217486310994487862975363737630306753892305734122601265333472172162775387978985757933614369759531012673055667758471282247378243956606851059152152862804706073821141623405668436995848293028399612744899577516802155814102330247048223826891725993149503147304842474591740998227476876457491367504269697481284966923799867799660968058439330103987969062953233033161724020460159728758205724012991114785365527758300355328650618566147770854904884771659072216425536313476314688274804474601788579622983959809454041634749581111502516001557239092346959846375789401476560457429421984336711252687337659344741036760181308312117940760073109675011672598429605540856240536289464064194327050756358620137965279955788202048311743843530824049891353624626040732356786049154005519511813764419790559283930149051589104417557975118916540597688424089684836947417083088234516683547856352749360264353767977835182272100249547411034100988157646507069849001141770340859150485002729946556064888485163612158386588576312592659163844894163182777704290968584292748864174168008021487258936233957514550962710910662956205066951230800183623857528929864254018873899300495426099381445980864305707550212668785936480889261757871028117010146634781671459241395001167227423910956529067816474744294519764722212998235564833693212647168230887542421011355682868602757523483737739784286219239771769827771002426104393403003836599409512147634063802068297493436026331061884446002824279652226824054076047523701605116784529164087182044478112933491989190985824555068949151370727460804826646109668405920271152925656973545474468252114812019314333051203528535307809718263106412890628494619582531026936365721176386245321789313450887155880559300396576989705098928395508013069952338973665378095798845040667394023254098065886199831936844725293088961954365128852796449147630456381094729616096747540848695091774814776653269191961072124763806274023677257279160421577912365820679024912517991188871816874544841033487516698733630286729871885144488553837059425791790715811313989627405021762882141243468360200435836927640161385122618482628542895736122311125701398795181602200129303259143999475225127099664292714398594959544463097360413283268698282114013953876021056289031499462286269347110368136315331608014350564541621903949256681547085554114687365904448669478064000298044557035161884626672287394081143271303074183457690402918818041000197303795071367304202707248602503786883528927836401977585105026154894979507967390465716256347548409666580892871533109641120097761645160875499492041407546281213588047143297193517916972706885929955830497455164650188244127688031346351002108766984417719679841360820448798866841150355659433148644261551414569689750030874596326507783717671349309235137936034533635447097604210971349413005267978843422855900325658909664555657095502767103565307101745570523135296639300109401573877982929746197783496021944061555337006732819596494823051491933732283737471201797168830935325711267798804970500902102495931792222742791168655184384956237636949738055217756886154137426584433337069431944671140532658832520133960593415290328090858255001970229408469359748577702475648360927951442289490312241969018771179578852324441436686114373686584563174161938687072992734710134742801855244088838324711732375683931870748434785855783625343789659126848835145333145073147075868475054699392155263900208529504571878221832707388653106571855923801474690335510854564752709602989963478845942953952237448747821150361605687920789808966903699628595970980363010432626868588239974288543621866980574479730012609400012293460495806225255092861821664486684675522458699163815525574217805969808586030584720429762735202277196338841047100541932429239758312074078792707787012710282040349711277457380866876679303251927520668564625537496866783374579943154846607458256798494653348918683355769549134706532127115748754794048948664875843528547361250547648333193021190682378196648914957170350291461923885686710236303532892648899410545448102974224481202977253435461777544619854853300991210665174715514830834395291864612241760674104383763212362234114649487846203265617302508075287321993800855478112367325458443101585397119720359383193616246867835248798072356838235376004462007230605709046448851518781216403651580464286047274771544453050310411760220542380231298007454382264828050657506291114127108519140665832774253183718192080177713914306614911013654674567502829599907324203283508116808259783223411899262326831576870112442534682199547505619694538230478635946594138275321548206674486611108668421371593063710073686450883750344828409780429679221835498771326627037381924922659037330444596682078295573704079181311261573184534204157880899559856217092390632848978844317056831712798181322341997139182631987833348233830252552530042608227259480285922308608520892421520189035904917673954907042327474550232841030451772107280937283029399044816730577670564794918668394532527393292138686161922629828873507880958323287151985430499127609527497399756573961315752775195425633489825309242127331218810354934456936178921396281835921706181623793852373412202126182192770276254852046787865394067365397454853025598332404855605854285954715568215479766207680833652841939200855842551644918249737728018191469799051215745309496388611656741994819299661612468380661439305577529056658110936158354914236652967428650634521951204154363664720308035143341265038582504425998107134216916130609243193799288477307354100268972897355578470855363147960574897430651629738994457524836029289725142594622381684299154069629966411071614811012840895248500774915215427948382689343084574173290403276671781398066138266854951612435890706443939047860890080078194297253209984923702302773343597096873656871958186910021768124421444778015016383438832047871356555815564863109107607330405956435887711764409211756770173959271997459927557459111534478093300218155566172837434509139106060186994809045064889045882110586033381887461781884017663103764435744629290833800546904030893984107894079676003130953038752612808770719939460802613497715512561635273679445810752989313478005179270649904396242609909694742985896655425464297972362628988503049249891801239925992404063104027804025491696082688930638033128431276469784066362325757761927724400462697384682037883474670493731390724043824657815908747524616569167048564365361498084906333608210468454090506184610908183444877595484853968194010438351249490971267571261321144073974173992412319244573877436752628586067913607264558197321505066386659837928296264551883988674351269012764872897393681559225654930668039968617266423297198352023256300650901136417396333719025391652090587851075111252364782784061537987693265884798982488208136398585394777102156472736843227542835188088381191735326669069736464595241121049043418785158421524695920898520753783820019448424851623198128348333405595815400956205699836170251128578146985736187745507570915877669920904980374141482825590872254726289791216777691295695191878855571874763499183502130439721087133847288541993680922485778936223654912834289204534680129800564358554126135047849099466146307890613769345271869538962235717948523602809631284281735532560297562965950533072536964283044995000762667115497143151275530930775747283065906466534808802276996733972822008271228624819613499654936393982469446865351131873528686286660752377928759189903360216684085496753027629332191695369148404553666848870854219156680224962032972575042658650330775793932706910848028369586857679844891766688002040977257666759894351336085989989999138312139836471632215394971773488362053734167786661387466126872683544734655725173843686853631710656497749254145366292985374596052311438551988162501511189713650795437172761157852930072477201554467128818064105572893163568095566899725461110152168194716995190164428243268436435923412894812604143605146868207507807296588938799912096323194074541521598651046629509639418932745441421151333495036441825635125308926238410613976051532326725714352823698483325505711931898478400522615454989115154064933457131558502830512316701978573221757284898043825116050181544782088991463459269242046498511079209369200907898296799784460010795495777513543344166280930641542480390119153749320205972313715545915387575270533669412717107403293250181152499320666776802494704008363404045909528513108091465479332351707054585575864812011127166236135543158839259083598892637862710913490435641600476981549416407135427621294507467823242166922096692537716876389105631451280867986166450127890995732480938207689173192637557257098583909112112658444260393406426823424617625327121520310425795645425654409316043969481236170284138085792245850087671014924772370144275001738144412844324160699203150217919640953481972064858348405781339155929795295679287948445617220312806067553044469740690392575759472026402678322085726325201017671677164989566550452845197368683382865298580628629094164576700465556717675083866979150375517207899245475836588895761139691719301589010461316829502116544465241230547520810833560321393764083132797680809454212178278802406638093434674183751014658564107601446630857812291369493170153516277373371110546221715955044900227480658403959620704047751262713579549487068900999751234268284366252643382969161186116661815393119897477198205850741171886325771669930892408780879481824054007186751546466144654905756882570993632926109136101443402463030702529618159506980486436167325296953417673460668989854269570508859200969395241933523339776264851481090190965663966214424645279926946595498258265792208716634318257023888203912470434380671007468338890338634643267445858832266787302473510190030453973699054614692979450568766239392779520301268327417363569493923924809532195515440848021303020736661195723412038788591543201965142787038793163095514926412796698945163092635281200378261213695722148643033249655534214523724720607965848991323590118286297804092485232956914752104643535847272425910503767870597145544808509100849511911303022836852742855597263085440244153403395232141675818356211914964857232460586641973731641612853966742461211713334008403154691526126726943180955379620750219405281267218290164985638748875257501838837063180676065081827426252039204600100107610545721514880134432610338595063145995384181144136962501616812144470205844498094926339014694674270176758856517316802091409393261646946424595028659853288732961766772963075556896715780283743249481013217855629837863768551136650179620172568161372757866547771952647436160949814219834775920544800619132931859009721460703661679206691076751785367806271113327605811659682776011707099362158785993762319910679412277490452344713364133614420440914435033860183817911322379268387715326784986360885190480138758327445358352699800125432029826292093508820368640027931108871358326337999679534668311894934688333045484710430861938555313414593809654028105337087162440128523637722098954649816560926437020611163608293370273999122912079678009684117258633314404711037306107801412736291572602201166067427382562113206961752907901691701199925689089426673982674408996645878907735906856486009724280206281578954033663465480772899018981160488221527119912424865456648351259579892805143374832051250489232981952429530846352460118255875519894876826346413670990848371242088185950181668465600892428153138401634397555918864298079429301120312439832492440102298340199306662068940861166945346380851425552308465435346410522398221452917440966208857770898339219750078765887264514781299341373610842563001775805041478005584655326897417254250629443074228059113016060337101230508946975412849485025779689760042259590081737661421867567096392466722390633655636936530606511720816597733633141220431986232611477270409199099634329752497972182068147837926230924538191819110706388857159409148007597816180318551856922023835897423570720140107272696113430845519320994161730408913654564067951946684762739105440952356307787535240776086054759148777006063573199828821152604108438248226665991439487085976950292133330314599075870146746123061835642527226873686736803223387596771573041030637478050166195991217947802776179949423858938413058603080049121280696957008225906354361230881899136373712641650628721494349567432287543879712277008595558010076144952639440866930309735174627195055905019577134834135119547279125369344684608745439285038582430681759773056795810421619072569845445572106669207035402570103660919856038905797940010302845699139500531216191285609472883495016195539424902848680185897647064808015723701950342582633965164219341775780180643157531413296552664615723538027286893760256477375307763766434045232361293488664614770641728000631020609742222987676148399693050369917938568856159888158225790469345002790518718733098214703611711101124294887765702642397240054859152795583018187793365410852217615940628340875045222522982052975464313092034487067926450448769215210129099055260283435494280989906237037235205614383818100292676393027558654482598622783195703551507230382159395511570790597285900907444016709325348209797316324703024455774029641394083045754194583412269152559360849802860727695761492900988292797466474399028625351559636797872156432281185979648884301412532950282699648699347867781826668896103881933974562702199291863624047978225830907667453238577783383153557330900696808286435722111419207373610462236282170431142785959974903322803300079934499441398025174776029349406864750286926266701720651682504214703707514602296538177298799368655208039055461214029564293199801609801633668087569130407229923753639179062131357619790295602637779646387162082985960451204072073033480838553597414024996493028953241381774436620911563905466080950078400520945771849828200428378538266616752934202789003153168085200004522149174766058085801003407574159574698012285959617075317341813097511074571297425821746995206897447714153238167795922400138645523775042086378835758718049944181850467515250861687170431985984005055781836394054839536366310421249800485633803006455242984804378146989454966948719630876576857884272794864523768531718512656011184007788670511695111813505022639765411224983946938181353851790688818280753225022535680673012429538797983241789894604532448818363534082773984792817225489479139805914763819416464612798061674412396227625007965890667399073959793376671299856458849527894925006979517150711156985424903219312513783947166346882157285644988441474956107811748419294639912109476902916022195294961818990900270303769223432188591346174488991865905351516354904482365782813939916249251792401140459296518717178550946911408919597483982812988928470279358820027212841994811613016554719526989941063307225534443073019205983702892624301344759675992465707312267274090929460193339303230888671327026104792543216180158683215478314947024176792169554012606587638635790720841125494908967846231912980472357607516375639945869179547113055749622538916141493887224611103941843315792330726298652678158650433294947110878350870521665725428723022319235578959927695841284428796637506956487246814558903596247119609385077090072812239566621365188877974734337287012158736409093190866826723731832146573168978282688905082637184795225746988767333685966975453411704649851450416548648670976164663071368034628126396003016537824317592575162801363004783031138056584993817969061250971352518443270606063344602929069542879071499020701455108417166264844574028250962401740862426219688174662220066217363656392177733205544942358538199040420546524149725288698144559938332812645801511574577412194657790511447327284190825686739504672158594743214661079757186896797055709660356107127652368455989701104781275911024827676843028451644209677053600179155093069333182788648249818720961889920558915891221288098815758967708768616949678300862794771754231136199327608078382217353863019929464681102372534331444331515051227078766037224497893455007564748123381206926380153832358450097362874378998959603627393566965790350881083261522075407173424896874075120160999608372578795072975603721162536503040205795654950382569982524614039454255243832685922168991552600430407578564674116716375165130099337013332106029862086115358493497269394448449374284160310197902363987763318659620906072236012880595166723074235414936687260015091378670856614861389734002429724445331328595845745392365288859184626842234777025181699411018609036036291741188245808794942788316480839122488157058358803509154524700056696682284252079120971167436481818403783727405408633733737432667767373770604759277698747805028130666692378075023505480209022330243311976684148460464911839943011860686979618044004732356607387741924597146119132408587808765217301024533937025772329222213218805417010467741314283229355264173114460329739162893445898647727265929474588329973049935083606378414909770938937737440141424969310175597241265453578666153217290901453012826513938973720190903985438555176574392251457012009496795141921962528027861536704834468303309837665137622769703267603758335245524346429351457339682138832740399355161046382668325465843600254033109925930386973039473331380303048230601562321897109334718101414291664409168674206862186641107946360315899524383069516088995256434296435340926630225140980931604586688042993233585909458130896821244275124884145731653403461942835192317000475397395348624298674632479690210987714600619313198021167607318391420067113398204733662769475207008766337632207550751564228779160534502397051660483290499491011592855731960470787147994100152092378721029458939012005585030899166780931438824529240524102184268148870923364476641411844400984215817726639131749739949114937626739210997710779987472356324866229517435298727877840407705998976060141681860790481388969724963639751990708363464718097820762904377933157069664977196363912521595852007003023833105035296483792618488641113047654978531007248656781628316193577658755246334321747842840357028632813837635827171771286842020024407562634771455926119807645087526711207298825107460771603542302148472759705488728325021105496923916868736335517895562597148835870794642253494356845768612036983147047858346106460908827396819426430322930181659163513856356692562027132666243891601867463313938627095047147138649295150022849788502207455769201734806176795655331210640607314120035598544233891077271180042559904851689011226025269702710780019073429186386753716393237080377355762450501188615842975965341684586245254987152931088763839290770796474665672593071646737091837265600731552231323094116992685212058446075192649528969401010210575078416427078673809643523249230246956426884400517930062828079326162944551870728349510897842554572856268149420154384623522843736054512368335423076825448951871128602365598350258731009862517582699000672663243783706455172553670446254240863232307883019692375513399495698535182680386563512809429924070422369027589236454723314146447159464489775007841460490251408789038525425589680764450070285820528039085332657399754306865005274492186771072655102527538880294636395936846196580280003742378067117994381349903618503082174495630077446400024165387473408635872504832197773451339680555858074704833550999438887148947996271957748397212308497017789431754796133579049025354670513543680944268237914739954784237833741695030603506354365034336039859178104010726940161917599594551213244146664874130416360273683051375492514171446239268289100769973358743204080331576327736529537306749277653099779517345378129934490044816532818833302395651856436862305368102436596324657349256179233218863588547402293718002317209828719953719706419610123108040203471814958492371383715803413328662725187269675485554309617985137136791787988368513427780191960886529827548324701241408988724260951058534820970311162790346354142897283909153364570534981041325674977365378559241167210828236566916241717298810967001906059266135009867387367479542156307761600534209405925397602918406184992718324985496806835726576262534160135777403913402367354973919519116600828280918232343354470149043246641504265624277708655928324560190247352368035612006157959749845828396051862152435371989557171623302232450939368668238606085710271271406328964871754828523108963448404429402704062759111545197317944249232583629172041995416363059082594108407987503309221037504594905358134380508137214060563935489184520201209272885330765113632700259785176669860317334099740663543627948298985106263601649123111861868247262281575756649279747973035236498534899613638100957365922432308767058782245031310281008734067358774273400777958590327079579743102302358597353047370517823756096352359327991378761876232593361010687129457588629025333686749423922681399175807989441088839731411664773363921179939882881660381969635473390854070199421959512203384246962001076076348257618746529422421913899019243259111956589511999119101206199319356579037780826583217032766248012567140543583969250829488181505234436623105190231067603418833674199122155871308581965994274224222036434781564844321132540190288743629640688927862046202076532653985779647622895464203896163023887676845092536172369889392076190511821522475534301050492700917800860813724098005248826034537077281224248862283555730820336899053139997260233398812861241850473544372092739307501987364597394509290502028975198078801607135282089346890980762314836396129940907706958958850510360050462260494283770649464908023710202598634024068410223148211866928546036602598660858118512402177645176806183195484450916583679060655529990634648630696701508109151473756641337207337577803933676258804104714129454646015881582350907612221455290619716392042275047344345084279295636151304994210834217551069516001013947348982216434254282345268954740923068151748022331302257283077351973619386402769203879754784232633530824286499396068794237498364174234197339637542337910928053775214656079704282740063621576139930921553461646753182174372622769061129427964297983939498699448754844702527477132644206477768892613342608968641239984649217750511280758261020427722362713822088027099485557778423474761192067097146846351216582633586894574761099609005551964628762225187008815016601936772495354961725903858134743739142109278548573513271034016636607154000575754748716823373721164285567446188248466829484736716245025528081986598634017707293410011386308592249629298981725290334085763845511558310168435572205247422076529210053169436367758469220740663079571034482202461820696706686393084495382820655537622127744186886986657965434619034556311097495846363158785769609194168914514033832985003835132923288375263819670755364294019228803804486311171505103644043577631822351972060256142338364491412887682357035747903155634168162880103076957884437799222348759049806047488010743946241403340932521687264382414907811174166549976701059916225383599359606972104746995461642183742879381436146123665804838440650841670447793880869397288226263845503604504524579626072861074530655838792537373185379794697656001981321585680395562561395997387783321066515664510175551327433452592117276739001421377699130206608679508566314673046143414827910673739720607831735873166454812181707366464152523229206962574017934077615198500896103016379587944987924707565911945928451894447880793100179701558262562031779780000225824887510113267786481461962722295442712359909330266048531774975936822795515356370812144850811662223945726286031105099171139349782060013911370433535884938466953061961446150736694866073875438233168584062402257859600579868702518215558615964362177964913637190030101781448783233422582612432116604299021916047992039409691875096915394590091075251509678189789257393253260112671709427816454669241867067142415258900061869469494186302577176959461455065337987618995216599710353461369967917873256561319462068488620404112418238610233384450615226213850986096328084277438009677976527144394182498708145094175973008514218574165789035613612263462174184124150008226335471251275737267025542356062747707890923251089506739095820134494690337324341062667226942015841870730931996933734302845242267439767518988301775847149539574311665815173605467662755169538304712253827016376827901919418513923281097691884224545785177249329160022932641274515959487663490270278865893620351003356464880808459231232938630175908278088696780986391364417081283504796305939968833056410709354515535155945783072664363305585238287567851946442694329308469314485733779498219485880635472495539096782199083547390454581859074075143204245040005160540536295379193705611760060807651234600109520509036637706588817341786158228047217912509677767470348332470810960757637636873111060778020953873166555434105082902276487155118934432284336655976559229634105636863094964448102181042096600440538975139802032301291030063847935053646258973927758060870061328246685729948811328005759857882312374511712895711386211926721399289770502162069304265878505867236689863801572067027758139334740378031390946422687911354986181357995511428524817040179344773083732550332360791149737641941760022702243149672696946557278942329908705968344094316459566371922910850398179446933394285028675228454459598693473217890777492253969269228793398629064519632601006792610078645158717560504754755601009522117451177832138400936062246922413390574604463880830544912456480428876731263142961904607212714456912582402329922998132731776183555400985682643343352932028925888766077081745505732201227051592163330461689953561455610361879477617083425051696411435269662440816651332105663134678200399867992608704667627665669195093302812522737014244545851061672269910140019356522894432590181642470071702674645248930513647098177928932504774536900356115091254398781858103740599090516180457461591229335513397852536087711558982757022068595022530720692832155450757018925679254194236185844910480413655327669960457216892624933698814264529231403904671675547809886666885579097179965825586554795415211892226738866880674144902337573817045395746800699773151608881697896485694627863517829996981874999988552195958311654798051845389311386185723529438931855521280150483463503280723339050965823289790595356586530449848755099072279246248273481447894910795654444913815065221000600868559767268391669720986736076911721358417075216050759660150114493990908596225821062895403025936927504694965834941456395870261975515654912074037110930975784416634207131915022415827997501117292453128613822359812047539514340417538740366779214168741174200954433129715266755949872148903455594470150733677736175030513559862481517691617603460057186505282853840824907680126705367366845482503651688700328394357881608376655492345060407586948920733023879393408748529372179011272484914549329888808413879813326951680662011984941098959913553463374832339668157567140808994364707761210678278234104938543136001975747449493746249982587090275907854604498467902617280344682602085672516636395207125064684753933899156102222331513425325337228576161109434769544396211235779406665473426461932726260090913680528187844012446737614947698210615135348214878103133123932521787521247175850466766750235569675430439944259210337260333727319709723766077599374038000153705088542308855290158663745202349834007884696969145154853785119270640176509807341448307935755645852683530908971710775104353803307083803571859368559705979008287535429060950646612540333609093707571925959317323846812733643622582333725771543651186131242830464910390927813734432413357543443739802327514167294521900363246429072057533723885640214293931029664625267666197148572570430686340523815479335430027910532470697857807489285451369873158243735294020045951577330347094253022928929650430996529370904079179010587982981215481405281754913497484646360698213015638272161136701089720198473357042863880412931935531370118903343919054786386989461076469023083955545150838240518841059738900419979762055488012466723382378059563862196811607454284014209594399166739108897099532693037143309747431465609288332170726406408882900828819134555232920916158725205773989265749385997431681771762235587766700918423434192901423273262583290602729813388234804502717262693030424850179732812626522181811350730951315294539664041227085544664610351996769814621628081613284959322758671845605861874906480188158475269760343857509774972210588691813142479989036994666480880915159296829093527741243806095542168929858588460841842241568035648246813020565685245636618122820163223049470027142887247306898630782676603513426764983555175363636571723161823960967546419401356233228816119926046071529209311698069721478090160079380615123672215376288586289062288535629779799943927502873019530035216199753950529160309927959885492067205554341698703652255348715017644278424467932533716438212195018878114961685186835576128542491899355358626738338825976897510765660504578510108191035323469676193091894788400612776230843579426850941848231483004458421502982962791185307059453629554787580844327407519574280584624205059849922426493678196837501682092178995941700145890752242048833287728262147759509678113218820930176704200521951215738010628963952019693455959502562045793921866660776968080555977591552545728157746697566882271195089833034475863688178090851436297025424699049251590837227709576385627930646974284741545288159378708424685543488839075444766961941681673372575500927205888338856340734415790308108359685602860145424777397236353994919806499364106145104448181646633276847321142739019285360103877925542879014425784926098735571305470643759901008329814593588890082814226647982394839944658818154303785143671199204601858546876334071596585174450613447719929879495083117269447864899993969085881133397978911436600202469971219733163006423006732972327070519202823309022653927134572747097305054831211599898147248780735559618751029545320805498669561294754163226877093759273146253683206526048721843266187620433833826502992342010327704452860300522037751750641471057993421384438083383494065611031669736301066093026538612102541369620891713830151028994781698369715925056325003785872765866581393288149940343742602859582070674520777981787255013439470125270203517123289683899064287618023548828400537937014836916099151487189015843965962163364325422854053165970902150376967135266964569149218338664174894208083852885735352727082414589401299435066938658284544478104095139094444950713297684586464222696131024041661342174992092041433107431401230325293649853416181074797234587771199074314382119575118949668588679215416694270180776994523247235870081821856298049336151900151972384046229692846015374927229712803695170154558789975530560907435403318880858569367953661663339868555471835438735640663901885064474313352138043268858707596148740144402947840068495334382417410228458990828855300422803721956475331988497415653168551818930053060687402654810361710436584983885998084527500525705348570483754025445719630017630346155517313585071229881686328527184425037110045050592461360244930648053713422936144034384266178182509850160055253338548303152774986371496970835747262853433898139034681232390851581924897688260921336193400640462007917823725070404191454948683154134537565663246886628206521378909361846063121712226902091365224880903880431702057430087169943856985860068977769519363200679608292512193964377985962113808097197696694708830639723377428236008045548535999556781032678117110505837856006443449838920050082441220723142549716843494603360388355363410982531630516007227730326940131260767641357394319854369874133409479852583344693063511274185862432869467498083854755938511394334508029237639149370342276035896814876070743484481192424395618793036162270137918210969125527724624625997726796938251671947302365947542603431196309794466713491976191265957610894335101879414780742546498094195343230090712710489899279180373298035613259812139066428161932573223161221298735393336466212791358325393139918090118832379406076341163690006860829876801371989252804997503379660096113234445730444632765290475889188607391965602286475115378332298609934323428452774476355889447149607985775079626442807284156603001930710042225352863051667287316932644884101733683046757169846684812257966006351306647681211462587829660533745814328015528831998243895109071296854474789599792077833308751405895879304289039161422100366570870289588072842549983114311523767087727619733629538813389230632564169905791629761843227558706412815628986401518349601627441646417822701024955790641518724253770582209573680263543699537828518501661432105139643625559124089632699550412389290948014216513037931011424752804017813819084111398689146948770512860656203764285767368337531635254906411929205964371875130327500156331604901812284823167816015133742051902884124159331979503906354357717593179588837335037089791172147152261698965471438771443728416654097458758712612774657478315559840593734609042957599234529664236775681071998867736606317026840762491526695695304432618424517411674380789879634041532786690312507451195904147134240364062401608317570401429099741349191580536207767187755999142974467223922761074953830774132594000205376350732566669429810189454694450473144615083384760504723786591774060282723743858452883209076088215822928222542445488965182754778685685656982532788920410222426078806457586607720589012383105550778899588642311651600661497460671930887106631731657991283549661227269953578292810342721389628626028786024144001548189991201794908577136673116020291305055316342101602837515927146588471170011770137140430298831934516959090364769395897303530341257667580390836468715760290462320758210581778529290986594701203243760845622440064714668301353743690731228664822296119611879679885227124938419654123268675146114437721271795351691991723428215075308682120535510495997177093909592331907686845698204697794828700876398948030380403523449501375764770972026400647165020166967368894485172470580413184078493895410301588643398495738988860448097557431195713279068659966426226193397260576482111621903196087526990906773482925157782924749817539966742388905837413741709168330301950732489310353191849323498335805428979659407319795461159238177798804417517238973601000220332914526530646907672324259756747039712060559849442421705462363606095039838594672137511526948374861668182154954494591131083362225882238120425287442842010230695868269471669440433046826320857241249506616813950329967589376975985978853579856972888022288206834388499388125360235738055926658143627644562555079363461440287232985237265221496159124773756569814967013190220961196402442044483983184327220232316148868747328919872137328410419951245068063602743185736846995403251744257285185525243947014240154656490357919841395946671622903966718512479943123065518195308920025008549184482978839523057898019272142019724713938143151234435991400969416833514696919406299308458064712525125031887269670189701396003278009929581902767884763174922747961713248951179852522931427443076441065687710536961560156664406979045296237832932386044596440861056185039673845528729862593438186927899904871243146869603628435328340438100035214298878412780215602672442821523288144521072242992661072515985510044180706654456156559787162854320852980027809580538607775852529992084543780289160372039887449871117676538925244331838517896948175311607203083058913279955701736535638566471843276126662103327087456919597834194615883971778995643622765651423621599621000366407753645470013583419579121768877691287911134272362534191934500718622938559141342993737915482530900160260623122983028473926295788095074291105668214134966941213837111810238210355532192429692567358496094970760541561886393317434431967910272303711480990512264583351286458262804865784929008604351088291755978082416232151712303894869196729648183047733282116185719394610431388350002641019082187878931115542922972061085876302796236889381592900574173854774001608486208083875168746698333089992654946361873359521246983824674300316609314629615467455825085859577173597122825163802454220091169498846923094749425659752980872442923155409079819280347869616187990999266392737739967833741176523017102923556766156703415515432003444184570619381390660881711388043244463345559882210737941096686315110728468028631701240606518415286178889199718406789030691378096636195944820512117501624318136469023454712217372046339265853832089210679716341499072056221227861545844557453679727400610420922626326666862258899553564035291797540087051725963918408276252071479773583777074338753936000826884953296421860441618427048393476581408145200530187397948308761381283981815619071592971198978121827693570510040076266289362239760309724845012969454403904162583338930677728678403331557242568807088097020479337579536121546402731258646721169014397210290189604915773533341666628190865354978324144134865421596511050815043512376369317454503674348311168104166091615078069696420076512502093686369669998834343605095070725442763596270043528052552653393930878782875241979010154189670536939892395569714094561116325633184364413853324946643624862597406688069582908794162622593447479706822920089797741773673986316859325996523112343120975631524927464357270224487103029905196789615416400696932886750183771392177291713626060823681746401309243190823512142008256537131772573493215527204542691698272992946101373760611570559515338594001622222196518517140778056473700068848263777299062457433017556703922543630241160305072849421121066774675883215928997593742232483583780310730675550696144646566996198614608721724196253379418909018503302086823990227234265970809069622222504496382411493614535790763719910961589699029560061827752681853094910834682277843565584293993725678142926955027163421504478967117496351415872177375668189644653699011213878628010397034058096221667070078405312840841547888043884752427894889429500776709723748165953026061924789485829172157862664111345699757414662031048721491599002100337262515633391389215153975425890290346187468617699502936347141333468454582465083129576467641866022542063046436178300526364304071536435813843902349477924258335944149837928389155258656585521331301095807819304057023201288347019239220949003730277634233131100569538294346941437212257695243156391111580961800382098257499032831574831428114254503075762192306611405309150304485279749711886442559356974186787272123255155261591267186698190477760041406605880655681199113873689832097532465134339515112493642751793374984356054693411331953596393765224970727304978308798808260730784855533633463864955762543737153729120209560459419400647717666462275636045818348327441584903270625248068939752613766536898381587344649669679362482335524425999532863103957669518040250542910876214788459577675524808419935279430291678862129291718835901671949399985976209598957362020966476975849821779155901030791754979074246127558293040131041616241502593341826531019491469395345514491149656514065367737486218165908383831928420246557994901781884913471996189293001350829811436492672756028220871852136940381184873328466784820173847583868392120808419471891664241096203039177784537176112698701605818706060424140455617222236091366467776338979444086903272392192524408151813779600171247925453225372695734575844162710983806812375100799165218583277553664434001451626048994020777129242089461301583757240466876550958722025090035460481639601027606185708561894754848054638599578772369624023273125464453514589151071507644950043043368556703275478679655723314220020698582973568595156405948671754186346099470662827707902737164494833951341336227196005001803244396768227990861595522256329853665897978288254123436201757012286370921265900862487412317301210885680951555038409913892345750429662509193768826149810307528661512640957643376149369259131369839292709076451827628802280000431700979229917191826571885057409836170687536655788760034065933448696571306837987013969705767372869962775980730925939182498080706109065315543458069896186327884021877337646036168938525612571574114992416171661329603398030070314150690278078498681706111555612773394895720636083331686709269243425775578419361461731010795289600960539836494120258409263999402681058252012212285327636591923019632328884691812326940009647319986208464352276000149868861129624002068707296931855474566747479960800972468703664940459082112720130567287988641344952184659268555219627977458304890718765247855705305963993035856552058314923090520798953498782250827704073792835155291965507931054314887025504679114098958919112415252399513711481429207482695596125616630787988440314080738410273973101309990675599974674150833198168030383819596922724741546480859463043264936139836948973500413186780269854721852709247943538191734613928082403702057456037651742075649067639445654564130123799937554820010279948247235315497598857624360924876072481079612221552436196390313519754725917929038469479635696030381786146770599574538332018600505493895575725330120723382321928873000981314232912015990714127144881704349645844820916968931151595314047275157281999059125293835605077007180586078421635314789241005241142971533655948078030351026189474958025575240856494626767575876494077723433105116708594521250767355428837700823241652150715995094622460478572587114493584608509632978211301436339342609486339784757723046863495158111631722944422709757616355584191499535947402609234908785283911616374117347222372304562424460558124085981603470553215790322186690533335185834581869548462242226988915374678712875602912483561164613546363332559855979928588084159422648199196972527749501915502385613355232506219265992232075987733207896412123471251401646275982516269219568593065978134992232769943542046086690032490267335020904851148524952123952844198779668182431518780998537744486293377805146085778092974511951836472500542028143762323550883607189098735314479436746984520615593011287203254820233577451207489196513746243212204517725052836431610602763348564742124134368133068862372841389196562745661991648543770273520882870445172554326770744480149886154223494440418808634595184716214261708862023964530394808988493176732387345609795551245779729793459676189083210782685214396977327245049458504359230646963165162897750099263334384738979566597514911829487909367993952086209305811276502270739883971975616870088115490112365797271205382462833748720238496378867432044871315614085116015076519251676149913630939496289621019704098783943272395454507846646683888236187102411677247631039327966626576714859127927081596872439852185315648208803369171448164634482312674140241136125999189926980970565424404649842605759824023305235622337793374184484567920096633722081532488657124299678197102085692720040013489566266838739300243606123775989594740980648329105793068456631519922151075579211188154027118036664998943347675420446922395358419422712581867355517379432389707487211737948427527549414518670621585219594329658815022208053912141319841847263383245642930941734690632276607472398551862461067741689115661946741270046465257081818183680343961189161274611123794178790820214339004396895553510102532485512984502156351051402477138519882040648681631160162322986561526886010178844708553519814138205584338546788222173690600357101310655595206332460648303251891220360474463451365327283823787502232699905645942172561606424920847281968149424501049483787306532286960091955465056197704840372360889475569935775290123254052034460622055692462163321980997073390536088528897493544359898047095569619755980910785199630640549993239992878651162199099915465577364106390964798685599466380532622104424071519143804205409454168855445972990913578675047962560968623281659537211368738319316934283456890318756427799061419154249167352956302223915621234735261202290968355242203008102026023256993146407584437097531447491499087712055668234953923346169376874846653269099994870297283467314122100604424433265495552223650164612216652236414929952370194490334056010727352144833657902792944063290553853362957889127336532413455884835843522281884126958499066519915903371184229286644670303853138246868441564541157439102470691589293302732723452764502834434095061308478637897917760032814054898437357169905587594114477840614973135084918839339153397112497872628942670267698726628045169574932905764736704829364348197936871248906664682229336005866865178782370562469806382644938317349864956329096539566081264585966948865731213185782370612284514278619597921105524843965832427406989855645227507061695111885220820361460142491948357242329014386413802315049937615355368143729699721510962252317543091351996902459681186996398923047951489798268185079917966404244279865323363690946511898324332657867278179240993111539054643042023904860715271952665475515954916122975203453295058408300229493628069213022980714874716388343582434235123376414359954125780468653004084751289857656012394741657897386221582419537888885339724677304172576815576266187653720779712062506656593282014904277800216833642273841522531029468616291872333765111215246687025568114967741114358641968579870780129759833815937829241825237787515126540996831858325888611825616870758340770897839783209714277359850300097042369893595716765121988879177689938062894054988484384859401435515213550995285986944541710579397865876074042214294140330144371270207955405971321596434131314238851938474025134152070208289088422780751248246365641098485662242830958286778150189642695459219823291910913913673584896549318677707131584051262395638910970316907796851175475798959576423722600799817859668198444729751400006365429632686607472153009332835498854061495372287523240041739526906867927134157876259870561843838129104729464757362289928793532085455322906485637925010221573160937319112196752515166156997745347902113113044972720630923302337119222973442176104411952452282257596205711125757311639776491694037538196549375393477731767745064650355751635008360264455119508459532063681147362524486853619963467319130409483365676222415317051804604515680216684036893883700366793970674500519063984460961814174127443062344527121064274415722649851420972677074122695409843119422006769900297902712042190146622661461291216633909456004464451071998540967093019637083081078758288476527886560819185331517307642827839919067931382259041509216524134144149415080918419785688451398697245165798602144378456350223626677866966824387792356507718976613615552089089436088925060548099905400116373257449119812352826140997093350492814760162782169410873686801368548492133542499328670977295535425679075877439918332154944197244857004844324210525917459587966878305156511843255328815986321613532431276728445116886974737009245802265691922485674125376935591744507505650305848870850946530554209513401878757647976073366981548717289907083649671119559777845237646623902710369679247663357514931374831576581752373259346496364051390700192144253529238687709489423011676155146294631564136724435247465851842590410883293209757606232195231879356329090011403650845218115463189034164528926378182352665854464769475307696793180275721285714599593730496176952038272172637878576975256724414105440791506082120752078220092481139924482692937963124117881186353499371998757801252215570055529491402173613811663381739864066331217445682830527490515551348781833388750544914926770307646310768603443076963226241987602772471184608700792329965052235328085925071672258303839631134865379379788534147646497890736637913181139376780059247817421519100548120296400015743996480311012942821061749053676745440535486680453798472016867563760949837805907854956117378318327406838323714688536227892511003482453405645188816841599349711376370429333530722612316900325480511589042920662525872093164840864599853396387649366270766785191292440499108522663006238419983410292089809049614486369237881849068397808012951172177065799215300238821006755424650219678121033558359325468613731926685739991016759055162433994008850600245252043116244875103126653448723708545326499343311903638851787667217053867955804728976217417934690123935783705915849859143868087437817863010074144160347683150289830418312004249487357040358876532741972400802929422915072644802460404889170360406417638051336263485138322887565657042695841775656019220646887390191378365986992062812192670655627327774230376414834437382614634820244403931657464677665582564577781560838521060603386490036829745401973916385601716264122959380471055317901546994943145527237494387643639205560665252658223259998167740392458039439942662325306028383671773629208481308328908045525650402717805074580965013782658452239543261043417115800137921785271797172878111443948820142252945438635596814188975753826403294638780464829978800958075140392495688087821358929949042856533582793260770858791802584687793929769040231128418973702749182192880442070848445790642499651585550794073798124051777436386998128521902435052124548700343106632860177420164417359261266502589766047908402124145766351137896452382145680322913051753165708535193992821605291006845174509553167884342475591386710001017584687657271130970805639270073295560693608562562214116856918555023648452826743943451481611470469417233538726350712936499737311235177182203092596095606680495724757235450801344887993887507306638870656709016587729948625585509556583290857676773315424599433454495201019331341039812176849277520220421424566749730955524186822619981526653446275112244570536864080601844280054377754779266816885429684890674170438381196713647194086195740809703041804017939582241752753505217980646384966365185381244957213875621364053805320299088493702578884542017141158019372621710859466530235782386010667617406647819641969464052026223384198980248594402934845448291319113850090618221080029692274073428253115192453785171550925278721907757329507288688460369130365342777336818975448189277121147515890658055250702653758174595406194390023942219852049882884681973231187830297677057224627498704782787068658111931800455033894195116106617046885378091660705087177925307397056620326962052160619579374906742282686975402881728925965769506158573021441635729950306983373924357287243098194293296715189178470643005628328697594196322148168974850835905976790674784550809849794239585598402409589097548352034711870811660213067063531294829922392961780189874982133449949921630992728876437067602221696519418053319498203551143481156612412825238508950210520183194545211843857768753992486058960489894446912182600568211406199504818985371474250403410095639163012312660839095326202229371651841226285069883441782652589875113131351416487307757984637641895402079609820367383624421911416557625533225267698829954963567106727959407469156749524931257135165300857180637063250215952347528548590990532661642179135890234936678992768282334619510592030455757254939289070157140883623695184338860444091756985840667918773512560941425422324777840170336488835956224765852776942096824427655024392812479217861858438631154360406031058722473327617951788288231944156151916123034273980116319313802144466869191868220430692664478961389350777975347390474217405833763819149089618709680660245651497137675325811130145325462412602324827412878631888942653612677116257224426881691746576787350536812027800823439966020526878626258609541939466735992411507752381213016509952229563852305670568658057567131827763152988358413548682277233471633371809678261101170997772432404889057569615228121161310907329647395475760851845053027824524782402644947705036931582757999262498973940844371757509761386399942251038961848699373360975163270899914574733458514985922296821116114671118260312742229556105745600649118666175387742891344051642950247972952926056937924423810603771500067186327911918183140458263951720267027255775613876212079712086032979909784087717950686835077392643202353146132902003065882787134786100742214378524411822299576168880835874279069459050234602322383911125398719261889786253469803466234968582349132337380279396612209922579232215989435972779963294866939455710255127581108260714562473340302730342249359951960007953649668298014238417735937702376383609744587689825938488049413884020475529821932072674303568779402553492419723427043827584172220829450284129850268147547705663820283925487316558324660700878747174577845429363012118898186798454299959688136168562008195481126769483499844990052600021661287738061446528001186648281189820586793425777601235890261463852830477602712006474011512997408919379509057786617452409349347846182779026794854232693789527345864532798181625271629754583630603628765818187671691930820289085021022286915810203463990759341980497246889505423691749206877363990037547944216535832085251289246707459608222844106512823308872730020923755052955793776613669438535067619715303211469147571820813936434242050432423810964262711428144856861030951226289624191185779744641672715680889693247668098071511759031706924464321780553630029529399211680314940135076803693184575306335967572002577328835243656671406066471550879054185056723501246183122779372587307735970332046302200932820841951301247212869421559524907270697298670854613447234815271099449775108312954110476886256697754020863813440812654016244864189338041128602288800316615047226555449007053837002576318904889192482027300755238278865672733655163286772058850094871465006424435046272233196849518460433100128055945629253771442423993213447335451339804976682765143323365490783662061630453399282570566032685301166251179678100375750034016234357484366657280649826995641834738593136500424265476285661546960774243320745404526281674071668966005819180997520538822410737824169841356745289358740368403300913475161736011271046463604250366420081930977394422119711763333771501598976740056362629967904333338287073141479477737794423054565498644611244457102132744635548656335693323941723973275042430110481474698368599258431727935274701830845681144176319421775933370619068505477036248427812283252450066102779175693066168193930240615784178693072078873651680290730165404294872096099795194997720047833896767799768201605940141711522002102797234931536432717505874434357996330016560859063971013140337328249406163810814532771129519597878334245793811072444768468390121824926451434574621329217634519560915245182138499305339616864361915352152083839060875431983060300821639383700919421028368474817115118388165645253425926004272494353589313634437205819576811272777563971050101860571216597659775237166538170080575919153144542972737351380961075557897833373383725212989541343912415639885191893827242812341668459660737239620801706133895691317722170815212540216612531953264855660843919620492116331141592133255916675890581953228771226830193442579989452070370535585631592020498207272984786076217962661698960739863659835823380060363802805422226271545205983612782431351737663383012050649766906046820243892011237479123747454576489843529632836250290501330776853797400745652548741178411338259388118043903787298258627273955052552361690040769995234376473075095930727645772011027499910159970710017155123492709207879738642714738547448313759525321641088770550911046768539184788940143373469182834820921144517855918267398922996355383593004150287887982181074091907950032679017815757676161720115148108243021187347833345493466895832757089855126189626722080412360174123487044984178959810478760994471008808669326541837971876340305335767347474376178548185111975946183158942944016651015118432657837113277688294562346662631701849116917477918684242024047158906153317074202994519202304368471611302046872547137051021661465164423495147688524816779157286253792216613623176366705503535643890114102512358181009775858892928197790479583081630221160415320470784393208831599537507211787551590008894410125117414662554427749374365515625124364050249994978009923557069309120947615918821301417524271150730764940992095703508884827356574172185422474412791309717217080642017494390846525786794209985772145747168801472193797049048941550229699257329684753101557674406378200667455422614221174698557000884278637955433175954815697379131548504384364444760177157788886043685250961443532550630392924507160876195409878825954616062772696111320353039169370854480131332348872945705388015479396235767421793035897404671030857863291696913564046040928336912490474049146594838664517813712542005969090592948429919474017211140416297718839677385900757740464209308840733899511114735085695960355258503534666019991722743718656561507315738016445924624648349686772234149445633141024331749884216478568293545920622933648916559509842027808675732094059341167054851707328363983294164463700189230281139557378474652967203497656251721207401806426410454619320772844371777550178893561782973782082751609520721880016985014922847282946720113420367114312786958347359939348077440503827361867186502815834140916972089049403722467582870749387401916778866896690351766427655998813949394226907931666909921149474169347229015451972159623983643773373088910539170544297206936885448040089562133106603760742098314750744959373970631841770131080832499047526012508592534797245159007512576755392578658988185981579381766572451759891330589992310036603588387963317804893620173125936503023466775218465487735248366993016272710850194782849563722310017105166132333118274275047959821063257131496766614155410154225769387502405609030745473319895140525873483464701178425677311478112424314884221177777458464616559052361005935991745513534140825749960867477128353243636764161619800411458796707854516636503948280143210352680615812306412483101521209791906108544499611915296892389196910160054093720104983285912135229089152001179532118724915947257137257056913022868511469607583301307485945890288226701744805109796831339054126854383862493611442961212192017837299441032284393946173842223345370870374448878646031155532218228698783852369474606860476213597251099710874551310408046598082233698546178892571448946629911137651186419581426950767788662631485575873153496571294063636338190653410381267219844566313469583565923572492684428018685004789537080121626193379203120059346963313667895184889455643081547483517110506096118311551718206880911313316017189604886144542900043275400810374333496674852391274751864486013744283834594686391488439204783270858311680786394529108956682704231146132314241987278005816049422774928176240854328204280117993942075330426675598798318219300598904678897629668262567460569365523624733369851971614579337140908225464975372687468816478119459100085306841753088308081355774762752714948099768084094170576678912232800200060381293046016094843443458583441557416250754477711046719936751053459611597156430271454780020176867801633756303256171137646410502053275815067796189396800149813594523007074112301796996354776880185195632659092035293826284209648611043765027109948655511114412735549463780415520884189957480289390571209999023203565098690909190980260572914891774160115377887816352116564441538808008974470910702331085529406054428404669158519549186660480603588421461183269784506888984144168708318132099510036219551988232929166291715509997145588464807009817833340993276884392191767062222724353695744935778389577968943215685527295217172215452065940088525444285896831220687233640019715172292061837582401374945866675665334233812318114089785592685938543728789536058015679685781177729202232558608779201369237230183431171041625576224669329954021103630181437662893512564819933141905566614974750845271042533742335548144700007626631836120312077238185596698737788156820775423368872002182210735320309786967759542966374939628143108732756843057476620112522730235561600434468676952448854279783886417253889131640310579995723136400519397303712982778686579248148528657038003887652322461208872367520818772993815060879297928385591916188820013841144413675818518589804077706458515548727019860657402863401976561925143171583301577231041322812407867973734360090708710137391038204916000560111722548937567703454919868434082622614580095341231101285671278143370577848165905056618658335173722172499371765008779221770195034297060263798528728865919184660738061357430313790604536316161263516108912340030121810988934020353861590365255076437314848299668356476961329553608728009947583309233370651684626812392540708983783949702181065740398120757540446562460500810125851428516873332023933898453723077765140604651130980080123639087817062441414924586483676034196441372845614954607432091761223741472299104684400313771869202619331374581611014162670235871427854527613838396481439642567238836611046398604659210387429420085613613894377180086850229849442457703730084635816307572366730173119682612035511154269609476044918989339437368195294310331224301624672915029587194362979553672884591040733598037555807608921477590578699214718098235293667936728251803134304635256621104067700384960694007980149422069123943795961623118204125615455208789637406974738674394319783517230650168222074078031185009725523682041263529435252227371305019348194583626711764729298916111347874904938440666450178241102425611861896674316580520255075774707470983972023087401037686516072061759742069507087476549191195983366036570990394776511019552883202104959450471937487021688360517761825438623502319882774233863035996278278107917175505524097674662963445841704448151981557124466482572000565373016520649790650278820437088394010856626579607899767003868371822058748447050029643881514740931199649851362036416002444387541899742835655035142566908010224098271988325438650183492297963100853860821170724073234155101160981752592054460265157505094342634160342290849899036664921628961436218323457286910119796225150103535167557624159465246525864117290865328180824803884424510017249072232914941655041126625315366740011253843774404633289366143513834733284847571428170081739073293350228774490377138511189031845169199938865135901191352005211701161211957970119066998683605241864024261873211796205657306412569159282542314044426339926844429907206609117987085820627691869945227525529533951364030944660524685736304704292954500962778599714275275532542530482451609883788116886164535484611966931701133371559609658192626128301688099162285208752851892634345901983062676717647577711028554179847323857202360420194536166875751093515540501464065744009541881254901510453411862974001704672176860977182749430323305025237688522578739245207238513758392084612099222797524045058609924567075874442139180769827500103610388372711337942551646246851217889834374850485149899665306578790286575700967130924518618368393745804815119456492846370911819060709494530602571155346373358904886251524176330356132370280334522051319822279956518612229088676189937993873450453973807883883019215804078323310064112496325769530981301859554898253231985647088898107359132844038511336287502667524471660955519295626648067410419755966312850414136794221723988154088379962708724006802143200156565063697667962965864990693443027623805601255563411542223005689365027713883782544001869784983878545695562592627800210570576814580238243078589946841169126782226428580239161593317254230077936683322209937618287792502913433373146225654256411518422167059432445766914635703424323233469971353970813827627677811893548727950214708739050117052016843126729485881319483983146886712449214209476546829113744227108622273351143224143519278640177570450098445966479924694281955448069314685619078448468347887161283525792955977289215701319816058738903697666342817761253729792692885613367040264028130758315880724409557931708241719024303772682528446869931989196180854414678757730108993078607422178450105815020902315691372637363845096482742471566644862905531236573778907868731556225230851534735170384448339617768655054964845113228292808142920816980948803374984097396533565979972077241654222406774916971004861706847887343479389409873875880875983763983037243337053574622034330990887336749256438005540782728382189259491659377155803231292353593247941324330468238424263913417189862347943482620185892023896721379904257664160278217177042825422543193624870178378142853783744986822425472395166670915783101847500375941226910132753736384222870247035406660367520540418577438147928563298594244358199556773350146991421622189908892100751371539098807296253257030160573417623700882754025269979459928301900172041771075266414474213456747671347116409564287808946166344435337684593101236738402817372058692576030157927944626186372780868909569012068980846839638261882355415481365576145145480281397664244205334428424345308725306319567745316736035269946023679138251244144761862252283638773859067381961195620191031516807106204633658432008944872431814463212223480940992130619958144806551706451584601674315005028552627157452104191252636857974784550501452614897724988927095236947419869167780731947728942212893632864188653196920858243843852673642400311882519832459723225678105517725833161284092362564846454902311127444577705634377809544379983976564716357860019782504815651615848449927206439210039054790656134553062849368136606974096726623729400908418094348934648837617126295694106366247742323225143462856855155611924148236068126380670592361305424913564394410734337036993448876764066397666830668148069680932971344447195930749425996239575698296626751241704333092500400132646358045393923527756994988937395960185304693250251799911969876391877390095386356103763138969144435471091680199670823877600184790385486339837316159052187020384737510598640190366730832841264748400082969144002931844920241369235843172262998539006749499922411619700601580974862117334560108308731195199178590704419414220239239672433394132410222832694699116559420374211604020940717894096458054646676319406426733828205886575419687625479305998470997764962295525297007625051608267993293662359468767856721654988904603595972530179383402992158426499305271910239570171775222808342328287832308779465018126542124238471047268100554356492708732524145122303979915336663766679138593172088070210746998445467775719654474501581395146066854424457264964596009506203740627221928146365709692260012661454508631375129852822084340204277217746377686056108933851311684998826310315635512285282867693280337688892743448332554137540381171575112880747441687725552223202820876113257106838511939281366612209807320236362972955342168240417125384131844119045586400384377112284142692238640711852311004541182319308909689301845557294345948890175908233626457371210454646210324236341613218322693511858586337566518055926570009708150098088788965360881882412949629425001604387651963392394050765445083621865680849708548242926565666472918256396040614357396956658247230461177741813235317544620354966064045409973989331671483939070202154539019217659181518466152137525299430063202675073853578884619356333856593736919724104474315634509735005920751662377489780183032052428690812635707952404014450688086624967537794503239781606968258463000752253290887393795372476270401675841370680817299895676806533477923992099115009664968990748278732313577915915218000569014889271150792367943541712812500515765468542172490088141045529902568122157444395432878902467025197982470199830024305433159945044974379795707592600446009900675589245751942512596274722943853971797211104928736228264347236990356820800204665922687334800703783080761431615530362629824058554014705829271296230357498832377279620298470763700396667512914993949927366147468032778630850619063143134328233084076285398902692813788958826859057379341980611788375928408045244816374520063203195413188854612276604162040448364607210197483922137804564158461420135415776172362850083611368125380377109055863670785674793407801757825859640488899584319295501855589088307628421462476824098824565358476752878173840277868939494079544491734425107741962537733875875850606546131853450327772847072414722800803984361116902232937511657920157725666580016718736558033293291177211803262521899593996134083893909080963874291258500913117342973965718604378495136151563853308654100495377791368610075454542327185739428559873932043420013533030052536631505838372106207410648130405080968264732732195398129557781967826080520223088177089819078145436501435199255155780694352701471514872058348460357544780810066871701883226381600478530738228037300351478451402417670877472313426654189307122283649335909842734973943591473422740983633327731256955827487098276194058282614270209043621043675426100304586329838522891908369143920747219247579928396955460847980012710428232051426356051365602548795206636706371637401265139356094563691993476426411784004784290429049752967986802652396222950551704255232154918854395869419378260371626372926226634674539967644425887466341194099744336693230832400199269692742246808840325144207241182652943860399512734893232109548369663919034200361140492412436591979079678117191617627828815158419082453502023141553612721435174832564365343716274093091089905979170470083141744340134569404814747147126608204702412655913406668806725758356191313859250244370699398228807998835572394054657343338197514302873109923477036090120685564915546249707984200730202131618075394801311578168717034515697220148084387210098163429470852833933766111020614910000351564912086776786805111932305618493320764861175572692762733206923745115453584118794949925453318009365137284396267953861221295623935717274539971888976878314134320097723889009047191467335265760385441811171298042820348775896934008478403522255860813094189213518452835122075116477962594762520386343403863486701465842816357324074851787947057416380084358544771209368882471268161373845968268732680301454035677514518921999761634215621094975089991757117786321536180507733726650297372758484844892258319597307636697595587288688900713514216487576569577999436479960579244848094251210729453001585983387021340697660306190954794027341696424094180139015049959638814172577666659858413512892868607556265711421798220663856191732911111721071650537275336255983549266881944906898747003046994975773807108893398227568942994748266319178741524163476997022288300261238913328343234528929416984896852665190679140355365679857938508526664998480790331998794402436285359387358977600897209154211596963619464211907349488598956004710719942534362568350147065551465789272746135182694392599507686820022349389115202895327103707713991675115918300584603059299174518573542701117422304155327954148991521931061393714417459855792676429266630362839813239505399514804161659012057255679771837069325321677267814782339729394908890740273044213154144739721712270144150168185722400349424423129966572485119287424011214459008997495151846537020210884075785257234156573415041034672348224776614387234387740017447477834261166158868249702106160500693190679522198214838468055495126076050136415248140004729051260939846189152657839905817097734604091621930170952066526695513361378709117529201579399219906365689662741236337838725638045860062773305199085904443316053426624007694534425584437390959053456529801328668502405535975165980020967945341024492709789341509525406481053504405026199681003643084590909968709579684553281222908501938985074314231550083232801138986034601391426618547435692072570004463031352575074398421528770941512043618614110957838855351110507504630677661336835240417702462526268167756413077110333607681009341434998981052076853015241560266591263000384919994419360571956454343571954844578185349835888853082661386626012381676328922138004451069565275008580748851991245083947939088325519460667471357401942088771901155959496548941934330656094600871562058261948316999190898583722390809707632810328359480348121651060136816778851330769469556784618921653895850798374871280586302640497430181767995202318869331819532843005104011631319612877011097993632845220632753734661853830407269761641611958382874624545445968104446466349887781063863182303851634570595321507818512190221332339594696117008629283144888194512730850437911176876135488012489427524232442414356240637766776427986106993652257457370007099497145337501269338652512559143403261924501314422035109601348492978569421259410597723968472489372016310070577666121363557542485808186735140564844645097940783778782539256813199838607193585019668974301995994217576951858084293799891668634768979777327208014856257048634413690952674783722852564810640733638254210816864596239317847980072047484609134199531366970988117978483763184811103077266817409757488893011557199817663278603616459964743720908718466528279578572905581233032822430848017253997782966757830354342758112389851167550320819577486196698323026425617826452290926583538793592232392453039479019334004900751383030677869279641156414514529834145299244817093509366856327495990161476608686452014949071562109297277518214957552669786197947191154518699900734533105408159557870371453410362768494736239440514368718478430002340198182705683886014164185287891544121908196588754933874835027511329835740741235336801847021321286663180775523952394370180621456506446918246341245979212099591320853381453559074877266902678114433616835471844775996483928737162203353179363141930642131491032356828296258029976015786577967409023140034472876018141724170084939978122790558420620549117283677213868795419743735887594543561256405820888647489459462441556092036888080184945499157481835741515331606052508350513363588639761745263769745994148568265173480142564856205418256103915808521028581492343525991763907963444257911202274220756850334342407816039903215488020905522942316258438784263021315790421328599880259441949640889806723311758281138277679779678921603730995156228778014742696955661819922514668973609322069207121991687651507809048751443940368018866630923859936658432649021624749949652024045285329607979491619739364114795959481135328614062507409870867955657682094356182718744725359640513381008341175082816439997156846851799099299850923042997470536629387826734350254237655304616016062757857551496796472543810451245880672714399449045802253961187790562463467120959249802436204889096071468573956459684667895318902335263843364328674932760595382766062202579714763059495304630669694862827714068232646024043819007403769002438627138647915551369261498422480215915378328598886268622591531482967023820521692364450797065479587455381339505855554305292497185670882927317695051181644228906047727939872892489308259399364658236567148861051295856082829458713790015494910721397326080185225000193948372496531816670346144341556395216195279374195284230688068984923994008829242485860950375307098089610843979266081784664768828293971590239779830610886844894515738650849402503330245681784972106461603341130123727669765111272663015487230433704585121333855947476960690251258192636449744452509048959640183658933501683308671608722990166542823410892183471043107344653322919308560123366427933829996829267707422992156500377157900676836750661383289243567880840337977577876340324293636715219775433757818406119048636309232643466101583155802953505551116692815505560600539987244543228840944582241713032554297104572152815350027315301684023992835310378561076686052954668143260241075076856432098576805709551619976493649290686473165499893498815066953242284645814247536965475516414740649518948012688117916875403201618751855948372818232808834080891015613813757727630626933644398247859235986146147636776265521571873967542583686640916051893171254080030833613020621134728514017522592861718170123906216787127096506726192567367335450914475973571742424987190097520443697852794387796687608681716194984345408218809136908110794883201370699792142158858825654174428508737907521378599292548408268688286551835020533786135129734533290546353329879065728269921405067811430982447989613140147470079999156190375567650830088740592600375748765901474360942724782448275924920382037391134779089745957807408201551681280542973577790196382243614464103708265817080894372011760457477229296746270766387392087922332489199226903142832288126729016576119906801573543485711321928379424722089649041917681983481234843441131286681773478778562781949349389003281480491156538152312810003856153721966997070494915637587067189110500284865362970429897526024494983933262948997902261726875661732913433521871481277041509720250006185329820434155095990786473537744541480483851629037897164181370254031529351753242877797464365339964011694236937514712327046816211312080344554371629509068108126513094019420692774091496570937882670153862082041035504113058321626532354858640309453367626860185767590803711617010449982129847354862846984838758861257288720906115204826467029930963602020718203035912990121086135268898968984927043368490512721861669997009039763669843452821360724339631741733295281088259335252641341561193741593986002280515780604544700406688543578922068298758213883803142100174034165445499497245339848941659513312349001630776183988893091163130292336168477660598185164017806270230116437088457395020644517535759170807670701843683958310150792397085923286474472686587092267645527319164906224133903894075493280552830749578504472854864892778781235732072431561795007839510167574655260692635821703748038070149555670653029430040761985429572839488149785611530125866399655999146603429809306776828720096760001593597884419334134603104282396532942231047560490793991141022049080560177522596389996359763643398119438434377231880733927872703193616438256781273391479856837254332667877288850850206403184426895478412923199907399174878010608663561676618358976100868491727733106478907999606789037302918542941658637559110276070261400357969383600356144800193734398957101418011299150633625814468691969017833334322220787102087628787864725937871888054132156319524655632681296926514541232565045693137534198520657375440714488436865127790699718798103795652137489457809587767878468783319919815250121900888778523893423165433023854030654290613248402230351868626017617356800943108941987628991707050819655009770449741573286008746752998390962921030433740495644515673994802876182947436600814381156723070465294833550460411160126349651004927956345145880651086358129250564814135347290639527775786252574964993544266255495240782070544600770780215994198133641022034672450006624559419221180683373262999395700202866735257334113584533364773990090776132530264008026860807778758939875643318743556754765294160390315880532673443611735894446954216683261307939191710483487537353486943128942779115558939341456492362748219781254930892812617703583282936642941764681168655768049505517138928008611442221795100176680275672878429180528679814721351655389501532216205021351367911038953934086321516163465395054078580001711331156843896264430226583415415929702077760551507167940317673083113410318086700926972401378110448749563128484676748796708000025220492732230580077036935852266032984555212429997868736515824969291843953640071660498261010943187202606882602763445776602773582453726464342625790341161753025024762188249316405757775811917530368959446643217311147949060918380955681800974019806498203522247539944552647422401078543213518457145284386690376740484914189077784154377611093304004257960911976524240446358696549476135504698040602629630359081977747813136532437574109016080387277933959400499225010904789725965468787834937080574459459064905568148405581009617238927365957786767821737891470894726735738616590239349411805892648834641013271462622789787165446303756609159404337798810986864974112150030493208744137732333368928838681118472299967182020357617150237788600468845647252879501838228768739239618757320581431055375645813778503906321746606903975186482311408229719130642370371880550417097341298192098850903943154677431533766913675147485672059811139048413087933969699113473865968991734655315472446876987047968569539009792094050613530939918903396078583459288888674212136766722656232442231679399147449014848956059435173238725298879678293123806592192913198716275143355652658248686056704595953475929793853958723257296842294364312092223504037670999242776316298148609394597033552270214228028725429325810036565838659006384363413276765785379944985914557640820255136409609507642107950902792929640741246645322359792057456158372203078033997418861211956357120726396794634687428170245865209167686126425253376717811385852737279244818215730365692548660596165467783811923971623426430725786982525259572288131419492141071657727626834360858821515339446972961483307248916582008791750101027294425402637132605967358523079398483283307675814408496030623012999580572311807931912717480579339101883595728615956389244833763144430196332815116749454743893705739188382650934005052454452151713331886324506470092409514960612380773452362406203983238293626149709182712807082485810522939601232890017540764327291727299617174325085484298573444451134590569128550653029264421250269162237435328723859889878203747705025168810137484918718481609709846784393224374634474215920983354117509125940697380170646726565499895664899672759118139701801870554018987040239703300419724897902184471048522833203510889614422912782205547605904124555571836316782764667314874637128040257700911477574105497533141614359062055267354928692258399073867987947939762200118141997965956291921088896194280163213772801909292081810635748804691549444903611189090564774093989167233702415206937316062217865594296964947132066248872783086198583277679004962647673521013238541230858181173004636659455628759116852006048070796273551352644415484851878872352105862419090958686607633753898212899006544589138216988074325742925144292191820353833325597497518969066936050354055202731053077272319440386961259802187524176279797532145164704200234176014719543551412362116420963385692302887764291744396692077929965768486227206611463944307324159483454306211010505246685089492580547878873290740245460638531015041971067419189813698237333440375312467708756208404051888212386455739337869917365306582686608690586774277542047039907769847739849722020343547317982665375448699742000175384404167072515576613487389704668586807851636952460148820023441338449187093282226729821103041842180046626682442086963613402056786246948863441686996324870384069891299745050158225821819730123454673010916817737038670293838962395001557697450206024820059117324546193911901362338454471139113528487585909894246773088169719387227175844122800871538401640031590473320087738948248687688971976372761094909797248505055501682219030372308606665753668771579244897012004430958045837978985021563543730274431442108951200157517104505475134322017186125347534736739081372961761832584743821140462334075408287985014923987452736291280200802543208449645950524535448428081067775466847971211210180270852596583709726642869821045824701820815121158573544570368796985948321876711164122640152921062171767587894074893344729658670122946957468127945290493617814465668279862118082179180904562104797692120751992233371688512003481156342831212623846675745583982637685489585053600386400730470910288707906667918787109222157416263451932830804444811876982657454750333296547749740825101162558639045454409831403727578335939348856840304129102560556105280467009041905080815529475499433835932513639367367500201686334222357590909751050061022713014391460112296668484554492528479195413036997044718695530508907751891424828531096695956839865129453277767364104842475809608460153610259529635989399574289660484344434230497287064417078495044132850021560014967733612302765143547791966596375759424843853330435439332358840660378147010843415016066992914530405356927192601087164336222592710722269055402052341569393829612310232789116268419375902323982039001217044359679538630509716246778524009816174329074515630179927378598655879490629424073184257503927906377431399912770598624819176264879907223021309787762818479871673778936002204457233979275390374009232378351682725438520281803459471325492362630036931502369532665526777553007277025467842760202463405090867780006721502282913821136941397884302512788539628276910943233031116609255191885249632463999107643023178345103512338931829578332086680187608576166335469160353190067826961181457507025508838657752753491929257485123804711723976680705218336322464670843023599237949159972690084912218491104701210182129480942583365142510603094533369066703270534022243126745039371864645400242971401385749294204608425162143943678067397151619057869549570243313703668617879827907350751652417060284203552046964528867773043261184712861578803217034536006275611838983446861211046150713869930402666304442454450852547018362858691874318530751587870861550001938756146126680364006421845934420403815826324419558416117895365828494791265530301767172913346905227227386566304424505629760023256094079120197938815535995848071418706432836924597778003796437258969150997686459957368001947521041966420164974333725536285432043562964268803640517108909971221580666529532997697834646498884097196764180069871834221541316557719943548882522669360349931998512295295435025763867485051118861030950106112476621966585557121552488055388288934410414485243490408488118837074060836270881248685358363009840675626994623193681422812845924992550671600523056716548446147080837711476563512260540767491905298683357913711295046293848650632397813615217723111683501744484596088746616192131822987165751963851176089254251108051176348365005002379954045596888767797137062217736236915427076522326448768183640344123706563542950120503273048517607560511061871088707474063745940582070847790816940540983999600926145432715953351329375060205877563454232312257620097010901063071579610186176360641957864691624799081289785006493522310657406112143185599095901909610758114235873310518922990391368639932520892350392666486479857097014436937044967562205884358815988023997664142897425196536000074649446267877252210496484347077103124930167433449813859045741090779550256278985960876476747106101656057059466163093466457874591193014633016768224100717074391493278839513703679443074342315863862140626679091153115608490723013504009156895003834620204139892431346325234436043149398260275123959342536515772541538042072597104167021057232662315747290199606722091061100088934994149536501146246274719997661806381601734033052620737329026737262388654042521595499078499655867029650291552412792542738590425456407772757133549377847020342096994029443736722162397664980482262240224479418455636589390691755032045647247248830242544067914586765715576278115003812493146723723682794947357263909914835064738298774305726695131227725890240923114846107600538954109657183219041762967626734375076117858652400654118949226465001182277159285112402742582776281986846554273311856105750676767709431827152797552114869060225356090060609057635898732979263305605341349039295252225727418915065335818696711390854056476222449683986019216951321478142462827780206328439112482900608311531515390239451057082578488540198370283136508213738355088557304909018423224686049192003913344301528054326564865222435723813373702262652813408597111723475172806501296177347357161765001657478976746109285701871775497900462888554949516736157143729273606644846351080475188668663290933764394152489550269715739561938294839420977139630244495012232046224987425751954744588171023163276768008607996880507527917252698150006340363946439743736779478330100112404492304406925769926809815364501692428685365562007596490255376005445188722209009239157713199593775585936951330163248092057428625836765393336979610423434817273087474269880428739201489934975770653288817413289630159816296261230249927344772956485797892942143003357063662690515853197461321932445541198082570273399274185673892104349073751576280528417707824417526629064592723665978694812430206218797046099042241712378174414821568494424074642042012772896890592858791158592572122497315111481615666793927370380553918960850919280617431064607009764357466848067631210861613871482937066098059118299939615515681082657545176208447548098581413745343032527742322547653571181058704948487738934725525177044384501030486906694636757481163211849042464411551876521048833657655071206326983256704868233489340741490888071239311414934082507317400030163359152672197796640371535043495402108454602859902055210603773870594622620821593200972018315714115031753324426735904340246081162070032293260743162497509397296748718077974392298522364526267635302224456197462881524719942171611936817303507320301720042750505474745046686641877833464176358221527661939383741579319097203164120767826271990383454633096704925467138638737394209548896837990373055932369689470857865794879926982620172151245851969093691946888420986685009289769127966561015705630401121771080079571230051003328374307613175997643161837175522588175435064380284390738951048654306385907044878697697828799273480600596610794986279320609766745976628265202318550702255417242239399381354425191036600665854360277567175402895202497280793682348599386872642454509168588661924062106338023233963136056423113917605935043524000022332595710601164833177489329352818141869201573443649513427027829495052312372563161425083443920277137627415017908491824853381757046926842228336794093399898581457775157776925879733172421251711300835039328477928242732108031186771013231247414801401957544741631237497552014452416576257138337925902203473697200401628403945855319508568476519940630930523662195111647214095628317043018509589558547967481733135387021638747441197016837414695302961822849683934904989008939270885898318717668764105073264805941740224716992285134410940688504509919545555037567593128979205303254195010676935813857325468385322969879225572303920984698518627432932426173277597538760676877927192747057958359414623520545791448898821689791203729436748505729617094246241387311698469138135260405907961936216795655728541447004511203018722838735565287030825289212886681978700318936839276459516771139776903482738588789224686624876631242683654316534847129987672321607280313633701528135655682945257903810857475048259179399879773925519855326078184476486549141861675400222538382926517339356037255379788436942840481117356192033514608722540555431458026377219848546240615046862857461598760000056713324315402303633764681101887163800475834104924369626600748082005825345774092868430785941724455642078631734294920506618341710638272363673755400999014987570933366111648507918754020603610110678915428346664617163586297114916946139175723955112279380229840125054852125426027901173247599362498601328918427994496675385115558013870520397225245193464169701618016636518953206319923740484194006208481927499471012161717987642630016579261065181132808051693953321521202754788056600841719776623318505867163291124849043439173433045505461388225424701927297836911624967041115461343538154969706529814628718154047002181381873606877422940116947233269433199209204777132675180275720790560164198581898188199794768385744843353874091715987835291041444635279660033012722038851811975745774649555069257968724227584896269942940692195241167871309365710941901120400765412928494987957577534189654216826180337749076758390283835964575453365287071755837092683878801326697869720714082920244724305119163290489243272061991045881876529538432661646829262721784386271085205396830639690676639995151504528091544952004716528807911906892519800947930437900115416787647933892228420188969533404867889963420822535716007293281008721603755594723219703179710718579120123153774323983795014773327833512029520718825275291040120243124917420707624822611441372179323522656650819248907656473194227243348941768460401583202352284321778550950554997735806147691983722906740442637273178139784155220801839543681286196878367420177653571625892976506611693723130491897134258159430712477832998774854062469589872180763158377736825071782944864097009410653762241284948087966892639107569096953970948003939383056043473613540498544999531787200901875884959948280051924785121176018144740532466468896684585259931176913324943568324572159154811107712784622235178538809899074466237033505794767462113084619731972634649447754048539879037700039319032530777981960451042740002972653785239664928664077478618684743188710652826415561105302630825529809249743303284869853841504845456804035347484507405007293623841582082104023679475163462045957628698317205737669093808104271817014234755321209760046142705463535055753333373823963863486350278291227659969540997781556976753534811668142571567417075752678704667931435043382095666676806218089918207793567218860506220558792883755963979791814274658188023705446800640629488458316096584013711497971376959922564526566092026893793660441681657875413063189676828434681674312950762515334408872415543844826431984267552160524971183332865215894656790348006542213237933804640150152716587070565595214195390364835274919467222193663005167596202641021249865369562320723854341667425134440682425276001134012449685077242859903227892323924699088632270585639310689443129035060570699004459105880115269772222856377341078600629871480578775816649792987925063994546109625018225061973388870886860263551354222140023145500972590995457738891394221520882108606662386054320650568740263210755505149792647425826225064597875344920400987598782258656934252834426076489057654026973430323987515448252706138915606594659345541129906286792025682432629840644934736862874649513053930527496981001197282513917079303613496357014197747309770776639480872543657474463967632513815202617497013130738005805961017261440551281389887236422215987280454234908073465897345957822708740493868255180141408474513360229340689325914154913956268411622909901349562748161582060995566098632866624006220707842027013401945188473378395944313489571977512942261983127830213616773161861111250614259592969608087455277238727769993524668573654302325580492230933232472513502607157289426871650793688274509394415288166234001586825460973306540622464475151600582656410585983685093278853718555586082266711016493858204710157670897849040925889439629117950744391974474140887267837867710433531522364135002077753033942853173338071856990132483923626574558097466851362869237507444449334911390375400307408452445368248812743204540440714283223492883764738461934516096735553934083991776543874499761201604577463950960075217244506288303319014598552738212959838358185608346303599304258232765538407570634658587189853972643584859876502920448772687082250506063721488081850867615875209336130594791410146143189054753051180796311416719754567419889986731259292222733192825181898494149650440596207523407824356279778456128800472865504727513069175117653597796559741770190807267717109288874079273255028609350146354055719603637616388376916975450285913048875879223381907409822638148769465556080580190367353461865475591965206947007385826563055692939149157678441433295019237958916442251197450787815264493171172700250586952952558068514040734770039817520776447434533489936370100029041499063986174851860155944816672513038861575194144128264613299271503324001425012495586033973724098247305037980681312238345430760149729063121573400469352649715710217087204788423868132123188202007719020415041909737608318569436244984929201577434123752775778641308210687205763508666009030807407765186515068267576897526673641431730886917117011250269204433347267645477103761954709649280238352368763114439788558084987284548428243954080641328134292724557974708854883844247920636766785800661732791535578807202988891911917682720919288409241560703578228548959241490412523780692223760534706470273958234119531551573203825641501352935334617963419808427227088685280794307504989661256653549026366223049377992914959734476747934052743748721189971989473431081936135019216973023065743044048559930894013193457022809139436043413721863318179809717000763738824694620320304300979093323116569316586801749656497157024757964451822592721989239657848772233523693464283082169827962429791655975672069032682984030628367030022368157127071692698253944026688868945493771809573676357179036126893516465724872270027448412510512095141332392670876451557539989525774417654407723902758979379632821331232083588862403969837315819160496658602059449365546470368455910360658644687891100187006078347011325162250597872314379050492571211303881117156679652998522751871596204455598272777868634242683727771603673365958801448552011594917694798563541414967854745552726553302082478586614763196681747053659839931358199054815905446830535546499496364826581342342009727193573084070222681072193346533891835304431514736245979259327708138770384896329093736001356751478050173584249151938765666850393372652342011288325868144756442026303567567504717496682545721616075417718798224834313159080004292560246896061360862984031057728346121165377332295001095116466554623155183874442679509328938611875507870930454329176333991683746460233240421253704604970496517175621801335363780569952128522756387071091185589894007626914515477530425975672055614292489169954972299370813989887317624103356573805122718032449225051823486335721247406578639922652674897603561642223699729406085780101960164468745870653562181078072634030261082754786254386640459055145333062290695348689756730510539750416925237078927890551352266162236774011302875979102022076657646279504557117227909531739948972552385540743420929564725351601038899155696166908983954714265932256424600381312816761200179399545824078063137262690683074850656996178672723939879682542165991752446950196308446975270367028871540282675399491941107568561834475442868836697478607046934921548718322178439009245112028490176566439502301603353341346443180754855257847896793841479374400701198692055221870431987036671605422290874947013957117438870070657052233685840099506782308448549858685171791675356400525326788335509686252301152888106911108496073824506891552107736647328506764895429833926979704231056895960209563444670310182969613700985530903972550186049438630181332582800311245645020113855292699753146568546475183217778945784635008323729238855938945137092961325049404074839357166025819026869717223351034330360483250869171598551842941396148898584160439277136969372376797044211674157245085145869831727704187528692293933498699623082401639158287581086094696052724193034335583844459161000935353970749997727299214457347064960949130191114401945987941024849709540427537888232463900093975338366779613589695560176591450210529202029550578921182087550463612002768793780310243215230866143522604728340106840848984072180939437813592261946528968388076652232072462386552107210779453089066567127567729278598614634450730686248905422365868253159916939058911989530836442948216471802951682685122534297892979069733675897188693714179230283338207399088005685607893856524361098034138844238992294052690275148603179138259186303762936146536099914227147644688904590203359469150999855247808013602633686424483680622611401297661512572817223574021078742627510782466945205722105786285183238795010726755660503571411976320655170509381750844409834326531200825079845457763474612302342778072052439945536841466967392554535142001282790708525530197797413050670389613353048320723993674794932162830436109800015093722062972569485938028542579990210866525389600625001468773414884612082967904954469701655690671962632280693465708244119266931466161431147374578999589252847847248307815405383211376952859529553151988079229237695473947146086888790037062211510118270921668218755014598076780563084742048663506177428730188185251839302913707786359147808492762047459352888788111684772190135855855963587280238076565147886727569297509450264351714682735045884411075144264641231392794538141623754956836404734709682927377838488805374847405086097255196689760017261370076251356269177136702852617364050330414220907290603367582501669367466287775320147759630224763621689813403253495452140805625560181533344231899915484415697266708671213554803805666847263274315870157925273534698407619172820437428423285231748231729206151294951155161747607896231384690214985100208177093823584120013015960446447688524656449676806669431417483699217874857740844758775723621082060277578122576946097978034840422171684471827436815347421408222748104571024344611597591689881739976970307908167670100611769812468990751627669632125452570666543253131144221742357651326006801726863267939746110847549531038029209258064263938716997704483068833873989868583691188827658205651432629170452988048074665715536276651685109207963367719812997118401929599386329765147994474473886222352106138632880538122031289746999260262162516677082660687533776195686934179053038427386514213181731387472176412784617016846779853210486454673082367524472246170508663080881280328345520235015392668697048458749513424518071997196954365719538044059459120278367818662419949682839443155641097117035640088225626681284837656970548582069242228882185497084571116162683757203392146770793904291331964974001125426493575016986612901534742253203169685618158017862840867464237132238015543937775000154820577579956767379260259726669429735183151317796357881124829497261676956613045996642408406965327575030488955335956249581123749289534493690779216003935361673932672198397745359766236149771764326934617354133442136578829167062690724348790943608551395642767414732188226656678926633832936044027167285191497282378282432244898696854646196988299567427341503039540686351994775301985605148096544763044081712963293752941183816440793961421000783863048170378386453892530515136114099922252046515631378976249806233373581465578179046583425405383431357213406694871064854657446327428903882601764349016592957915670921704600363184838466484356142458860512360832272416791626877026996241491783555388028759311333715085797380171323392216885564517689840593450416993488511206635433533264060465499816388399477781180893551688003210374679311405255984441534283969426904949931816044606946497864605565954127180241037731898977732245646959196054129098954466409305865986822604272721497354444638609755120138231179458234206712784234204592512649207151982696216399332604614441928373405817396724420366908324002201356254242357102042174339733742394154244850281844806707338551921688810961094743550115263486456011297410353106593256297767010438057296269629773495617586197157098585875215612419840876156493838296599624217049709080157394837942314163033808783780239574726863624530787608990060206693206974263786603342794837918175273087534181825213537568133602916299187807463241805810300798831605239472116610171761437039900424134028488957644362273967561539165958611873949776530018711937252933427261376427109629529053973464854548660128831421915193146610255625769054062380477867848331450078943520426480094386192831246772909109870344697131012304296387850090607608391493727273411933522283968144560944343394131360716541759836103336016367004325303040013774554043445465800764372229712471949017782216715664594755394010878224780849671951546876652652558772463916868409780647802434604932771347176170269401667768859450198823155529079192734846358766364004906903922342488915819364402662280178193077929867630611190697335188375226428496485654578401705707127803276768574948251743237108679616337910015541158522105060423969670507910283524919594699949577440791300845434286449692013912642169618061368935894191248102799038756760809685395172516705566368684268914936155756036428815432313368908218765287065213113971186377794660612957463973672841755288626712549428515884370658695896804187916001538806990141960455418868211902318985127217674645327006713825007237133601186636761908098497651340964460679083573935818246930618800153674504963812904517354495464888100242661007330278889170880291849178618411251521036002870511145315238434864946608067383816466296902912546324753434619278673375441147308537022494467672634321557672493008885732858628293259368552475695457971321440979354407826612596194656435780587044476677478810400386032441509459653088193546608835400954572102186865724577258018506262292457264009906981268154118434896864037561114898668808460404944870108372572146955705123582680268141855252091722789595782657603024004313264613793576629377435432510033158910048949911351582652638821814217410619406541266663401188753106891815054130334141012176990405782764660097055025446145462072657015117653971454036509615783663399604984734658429296886259818786930172196417361239446449292491443373754712403365581358090152328357534366001179267947005368432803724414581068936651466136823694840761851407247006515641637207394025747877078601896078410541003637982520989864526502066510156297380136344897406794602083615591706821194289417089900608189949359872594218236875497280338451211198920410536550681806759313277622296088815355456594255563913009747942641284786808345237339712707886712942599065776925223350155148678574613061059391239584730798301195251000903265350511060121445373363608280613039273414409816219939573066134768144301983829471393097932369504855187192250726146220844478055372573880348587904175399505774457885321475743696643471674465441287189801721823672666916863265457614327563335665591644826096577413726732537512613057396586236005204031359728222470156207312664054344442666545434390381195211780754703131950512884352901231578691955580389557161834643978563201491254119547307845316448150759311193629493690985497333919100867588642092580262108753822468818325651092726042538511275660248114706240352702647854168058872327864244785226883269986868525272949574932853833284034524978696863254084088371008112939275166833175500246700978138970665308346664772281650401320027861528028903692063849833724447599768719395174733174230238755354105192384683443072411508621729402359717849379161759175304358341490316128991642564375038702911719697382467904735339268756068000446597559377922062060938844881223581390111037166761472719403125155997514034034357978579328018005181810861206035359183632672174199146501664989542940455466159389312456618853257838538249613122920644602049190085069693536829142441391291090248530769293734897429581646859909119285286799016364609087353566888912881621042950057010672907188566628240651929054832671795755631113933450271174284270664798241115040184258461211685046889037048706274114935662729806216725725820647684154843446958258311689792943745063144266846892715693273049272115952380484139238567004807308675051663327113228217206134008405650736454553428006834951808689149924949038236363686682386483047330438579811017361462081857057929704584778336653035361319733936730926076768836739704948014864743563619372804259847128805950164821398096106302918654459026174660176386378771230264125663258934164290689095857477675390813135142609286354709212486633117575654954434033213431469058825871842088812801809140123998448278598711262645267934476869029680902078956704642025980200363002049656875221154532847201189127472026869895761888564490852995907758472892148334346834419785778136955857730336803475404865815535590082181843531554913081297857495023861800527585898119960051357993991223281933733768785381172591546907529247855019382521473210459843326106219041522781707467034082590177905530441328443379011114652856910301850088864572049897849814691217458809047684011748741647997091532924584334519251333044379972301612350888492878768367421487292449060331381510752930974973327128012948171163120632362704959939590134593732854521689906335328846668469644372505020820183079387098671557954741258844258084523537433047992523771833308787949094391536114449220054345674134375108696296015366722692038993441728242012649988372896640320620863808974714677195795090786153553550440222120998442488361261945788545183558698886600650237619188152307341393475370786258266664741949990194513342422060613571648329960569873343255878030950887861517236197292325041263807448299538785359849953823225529978563933092628467929659904940185012716338328391141829384769776395460554095786362823535044017914124043600412013459752978511412340564010296413007575480416107849020517438297926244850470095512463803601712567318717979275709522683510578097800869274900340598293172283616840891204984766902902075817248003931914581511846981220026218457221179030574723643665600532041309386281029709212915629974929074585406174197433572720403505596600225035143564180564179718740997006376191214071202072610914333238310948096575145776262899157165927190676537230642725475977114665288588867946664620745321511554553442601065941042444254976402084999254906973847242573734357702622286749657259935074802421729816822740161923943163514370820283558029457513907106430527930438183751458772268995325702860948760611141292278644362902760191175424252096190549065585259031100352528527673742080761841849264461405711754591247365313430871835526293930641363827404353281085760496363254421134921138888465407289104738654733144790764987891548680520641683200038775628424462123689807609208186166325822071175117007324398937710033326298652566115938571807771891834584261014539124369715461575884215055506979425980140261635833531979085594764686356025368123026243772327473340307352290206306078144523813410935380517370918113752093825623222332339701117289958881249432620432449181136887541406503673394694143930073071324091767501261435663913421166243203413510268479824101491656312206230489486595208768322019349719660443064047091121003521665382679340733955042641366991158354171310614092080301107619378183192435814047265513839176333506833321912850669028747285573243436048441442719877174235836516863075144343734089097340484921789361996666466348221664075290975825667763457671433101180531050354843605737920830193677990389241449542293778247167088532964676447116928348095720119655819855282180498416589835927754591584922780768505446606306714550715168423827336544261299423509081378021075217942810605136593418980365498743202572330722534150268788113978201806902149098137028694076075348987953530390069911532587946880612295231152044393138644409529938525384168792893894568583967050396079098512290129921617238744173150370811913254229209502052442151594150368298497323808069731673263811320290172174372320400888861304640178632153056788497914294818790161141987162215476949019417003678540357433337879674876156129997836282004943826370130642922463851453364079578188560388449094078390155727170224490768129919487333054219155232202114539403302516439510038640485873426164620315999566146563474111038347347010554277650323946240556612547805032599601087565226511463130610585600951612892686066980765824226640740808648464738010130759892121955089075333026250133867957466585983816723741807048425209348450896511056836964669024019838371860457552831253183428872812785373014850840530196770305337207144798122523639615429297799617243038639657498838849607323154998787478343828297380686848373020008627395012185401625397516842585693003622375179724334299896149250785550651815533898628380244338760524512901538548104512197726634260428997887461759917534027217146111774176613880973295224881846068066825271264122195402819829759090858437496642406483224610997154610773193770222421277660375312810597013725707860427254204218266239369546614318258819980087106870619440338808459265304185603526304666654448251099237747973747705143109989204011917792256054321390124253575423549806955408943427666737148943942163221633397784313848025073637732808555313026564235934581235934877552391490575332684761486102018362190640253613973419302468687492761702615375420865173456939209672758244326698133872684558507814523003679778087365826569010630710166302896807006196685386509834054870337748371980822653371135919577412801229139314276437083893706748807943805851309158609792053066320464497841550996006560393175383348074480901619614883340867514584018884745154334483905722881629895600764676618650949272714498161771931557965294900670138175401082694244833416477767784087748423402317090861193892128326822619250999225472877598462461875004170608830180290453311548229523828944872749697871187858275413732143805025057136528821946815999561596883696999559019517537734482072895115538198075813191558353423352441401910200178116669091686309154753802980732368890762746629297313701706950117110707708688712266981046789637005645863990800110601963875616185087626404160403072156935718794811099251487373851447240718882936109547457865125141242380350907335793479500303692946407774918325010590330429718627820430167824138574565201718253090953453999042087957412926794468126240321216203956814538876876552748444888211197468044380087707678392379327783419371707708208642723457984498051794160325951630499126114657023557419821731968692895004021417653843047948393600740340696361712043866844396841578280800292338401310004443500861780309166512962409713473504735849634749076806953755787424259541547947107642217051189193871578743750313621297815957237851643138444754326887541151031205371225711551284008332372108785125931699812068446468112585018093645496436565300555851421503867645280320003282150515136406487188323119291449919408060607140329272847770269867520288456825711947771558475053404674953748175930766064091231986013284824042547011900392650448901952277246777545650656589374896640355724361806878257681217987726186065505142401256947101030057947943475456536724371422496762641788481458843639771587943523562406796496735445600611119290552194081716916988897525422461124811412722870573992800420951717231867296200007279552409405438545717938619782003468727861545978403678266098997822529603527361409788418540958761702152106496703412962044347042969711979409493802599703581818255759085824032897941263070711710908805589623977178600589425824745909192109256518424244144436792035677801140007521000478025781151447594151117022508317013068391714903996568845336278084014889441983916710197709948236884323151148648762612207789911808774012856329684502415140038033858076092655202489955318009402052091797223607071924513682025723621234155984394718296588693986915014761339736306929851964429258039280940346560449636401705042907443692427293081387186651166621393409026373746352188290111940591217516812630074067931202121105761172184788725861137674766878006699372822714067543893750819689443094011871638234285813481350961472312356838195945074310677936910835642230972916318451941455121361435617613958089454516093348190535748845764800968965207338225888338815152042730523915417895186360484809863375070465560984109300029502718928117230080701834036120729253280878524219531710094942106736763510041013566009322969384310900955940381527235745543156208864359765922498151893161773923161220063380733734739783128455141957897021016739744902582509170289026701321772036890509104411658857764099582965965230328605067474208383319279060217627586233148314919096483585620209914147082375926802834042475753407669055363542028809951981853918535039160228020183301147090198310399067337430968121815808831015598928380790376720957410675661496575221859730657984933398192138117026398236389477285210246949806161596934336047622534031213014772054300510367898817350867570382036318186771257744717832196055958141756516624638230713816165150031503618054318191668785028506063324545042553799766212290404396320289619867734489589979430658678466998847807725323667061804046096837704389314844406376912529505319843535458704555612260300427870963865148798578302436781350193706130720857286648109460620755173010138432689933418240693286668825589188046880146982928834057177047394977298386011390690274044593917400043687949608915611050853182774176444384939714584409579435866237097533366665062479061158993810409882739028587844603752293822513904071239982880950354386560126385664283442705808396275582987661269575530630072711308484644528522927039023062411910046836011888511006440277519860262130609833938840236344674321616292492941160859643764448023353427532523058346507020179034647229973646270173808163883839418309181741208279788137632025711067160752181297916388613394538642582089524299227780023456981258831204867933091262429569882022103542306720797521224943433962885862302140055802481305209571798317698236904751600552193100969820960918954262019883477850864588081345859044249730886182861226147006573336805744960982931563062174082803673147262032956718958583840917793710128959208523669328006355715173358909113305768807178638965652467047390657990270545699161156075999949637523600838571903351077661859874600723854106441774160859078190222297077104384096915006966779321025811682611980053655964715324258526331671610041691786115778629664396695856600611841692461792168405770920290583630706074419234512852909490904219318707453626826889669389807959523156912832518381966456756966906661398510328484674117549867687628284161736830091638505160876058947807002399252346322890998070989390159379749125515550713970608202375725270394110476895017470864944475287417058559996012635606317697880853172107334758657283658321850332481667956513090283050320249142092978856113207652050581332395982291351374453507161317646744346230074652746534777921378965881181941250051229726766067530613681106267986111271010608004042703631763090244111050946206494278361073333002100999684577244249869217750829194305328046284548440536768399908194615903598730291297328441024331571267272030497381230289935476062528297840629075032776093037510617748637827641922242343854540232512538831678999065588342403853827036914785670903275387194166040827401045994276120075390096702875030460772439580225933417695896710253791928597137020356425972890546315893561252927479173603035210384306114200300526927614300622783186398687258773517880083661909823040886451980331824797671060614881890078564253240539018415705455380760831829212390020856390031066915188841613736960928304528544624301287669820986325506350459459461165577631084125937884105606360175216856510397572111831654670378450008884136715756684014336780165129595219131777338237773815709406043863522306101824800100976451490345201159169499899555387145223671456967519854213489016136286526329392152070006141556513529250987118171882678508375074641928415787936512577637618648876930410387165909601427650090123334761171388538534288668784213468750366963977007007545138878909018782554890436660119845289612021779906774596201106505202759065109814218299233288344719457059336337630852859587321063733938415093415665972359858828259418952280912979624733834262565428775859301639486375339398605419955494951238667303036435890752102054963381175901415742068446886651375138392100945781942264054203304123251467465349251500722353142080260309636215351969640403883875543773879880285857199885678887602371234263011664407538874454524378061686826248857589822087320227998670648542305474552398646462939833337250780829769609797295747874360013768119832592727762007967611055530787062311833550514386005186498266160100520448480152797842176846017602278911114606743776468312646717856365903190776754847343526437511139759238578689388104076820853219235591850349316297115802776459512426413678361078308577210000167668515930686690374082312016215618583050929815445053534760832296572534853585434640397529123155882135282909576897376425386175866318621074463976915448882132968982845874680741781145408226169564203894563003303506013590270735934472633300023147632193777238632661025700809584399415908900837111650204820035393342091213723528420338041323404066750632480795679964171956467268916563972169704243015585885189511107685714392125569300328929427301840553787073683620822716415399357829177832094082191804042662259602299983762893600880418609009758957024778760295621858394420886858178095962818843976649048800034248806142383222243440076552956471551847085333787309550635891748729632654296142622468354215970779549333744341456673808429999376394658469859740627764718851286848151285937974671088054790618126989340100787613728376035042756171070724279930245783284998465574073949766019954528429201534573004800904737560571374166035056209440890897112140792146192165767937060937384816598244670938234095075563669067007150832731196686302722634560261434045696285082003619155937256921244859885906218193754693198146397489353819062279445453629349342606501246189347092667411514886403342274386754677473899824265670346992845799631785758426983236382344021860202642648238427494547387372392723723306094293044309032359407503047349201736927883032718446594355067951273081825624117252285702104757736009253519431152319054782629620091928607822911953631943938019080727961231741425641092441513989549252683090066693382441465996693469512541210144090960575505031460005373743062420728298133550370966755762843035622068180804217907209968413071258556711341468383033260534161761975138159571560065730158900858018547033510321127721169260331192513588275467286614374020628645193288289364085299440476075463379118817837215277293993729199853891975556023414372888786298074228600315239475655306417238835636172242934215838989668282527292504925646018088914034840236352633842573550197820376140223710208938645892027189993984886659013521580514450025918763709508977635167807810613340161180522007873175865943841005755765075850841246260631131487231613561303138688372264185504042631100956538841186560695576614174107759486456962128432638530020832877536275473158557493051279463373794062468677083967625195526773939033167774638690527501780407134520627321720380363416061282196714569763183146334433372711335187751757264795271383941942799635374479724207430375893887178460755562065850377474532422774382971436388475860471252400500901131120278543195062550909783957430457457642755280275333579395359939310068569938699918951734052241287116942835967238919964197060236150745309249741028595224658551126942165796823331553451831353636758804212803401906867701498294696329098041722226563370292582243809935913557030464475481486918033785275380976667606374153083648126964573652201092946899031831000191362556294051401579464057670614749552470204408138513549823399598894676828705670045631044529923257924546380604686851019005132455970109251555455935457297411984609860969328870330151052512743318581510991994380590517007744857231393013327722852600459248908159536850677108967549841817215784003013980797513154684063103222398111912045457098294857397086508943669417960570021423296217075831610476584045069876082334397118520087231687109808816137473094907860680426533779861890306845409809604726630709657474353154463897001953307823040182967266726485784177042381202012279810393523855469055698304032472056383141514471690271147943134834473302443320088917352253415012344143345714753436177445713794452443201674146405499423038172206596560427686703722149455385480887877894949362265170753897267890522417782835018700035812174823594216125088743897280360013253956842610142528123816550486207602396184944482944701162700243419949684034209464681087303843729317902898631035960417922589545853227256197784323839937388040152085052861675387773890487380497560220986017392522906213435773053675044967200798227611817070930110251765554711163603339416099727466074633093955038874842205602503958574705247322162131567368212151253418053063977294168341877342163644982580113962489053838291003655132062114662548710889767730859210804566164474776669098074006127352929607926879060608071042577363702666485480397710592246238568733652268827229606970528920357191674965649010078911229021546518291778527000521250114148912810306515543565527298826249201538223621959641673010006502420914418927521013903621989338034380230074120138720970146322733317347813468283765669957892037735321406538454460920142655620992731636821313542223489431665543062370464041817372844299320251761250524446181355165665105668746103549879898447393355001549818429627798816000554036940832626816205998581230355911186349034420364145994572610180805712268043432616312010115364108219863987014536961604953799055960324999384295723725679598042444321504183819396679937041026128279578233698723551200818133433417377462055110932310204199425804426293558421650943250988732711630909384637236700781747714202849979788110249974109014436160393243956274713429145435002905405916225189197955142203418271947731735130516938548524522364260848783657573182084290902758789813729548722834010336770764466183156145674145018981243101963515090669617329189053867270259692623336331911949579592244235276275690067884995082518451724835120099505099422232887423832342156732741619031793228502598977396012906231510093396685563401252338234934273500800563260090772626319595530884486286288304850046012575786590041268149148428234938107566342592718922556454938320484299404469342460143349139043653475895424375407943665158881845470529082468137125826376567904643727705411722705921027263398033011067720285750759954346714254724105271281498881039062374874286181236833704950836446684984542663759200095673254304129114849240072211176904089912240790504485096133648292511733776807944979770682209405306969518316107553662781433837224187539073840460046704658153393364664936691340945441870477489761938911779257117231351918206159908168987990207483388233884239829829481886258385756548945124845389048048155089985951015094846599244627629848114581932891681522062632544214817321955745065720657708503257567400680469887852777124944851831883446424228985896985787866173622065401245376027257953395283636518777194925359387391190328879551201305273859872537284572556159374314135349448054936121375286166557761876729371467922800442589266122057585164426191266129431697068039956818295171414700150760490158810281590724374135729138666572091383485434058882516009254336928024225708531798964690055208352922004005422217342374398706970236007565242944414654058488741098279580561858924180078364578467763062311234814944985656744659555022845460433833315995704821535114830608164340280634517687412001169828334445659355795955870575549856763661963942669206017999657874614148393550818544703465988635463870248653246850961010190796599744501055033380231695516037226455970927837036328929343746061881193488133132075300878016833631506744651053998560203368616693609068602591703602089112389166289588363489611674730415835454932400645031925041484841336075135705918883623469554908212607584525602306607721924489521967234330701989109489860420664258248353995305697474916935786719397159831605367496730097184784200330257995731236941719013142564647351792916417405300053763471201129158953054297597712006253011389183481090471271171249513436606117558678918137338801844699831795685873825283546636704791425761226159153919377629601387161361032138354158379027020785857051386858583596470829868755708076439982674077529881281046909870075649503743519739669843734968290130663920150519809745107963612443632535468581233969670641603158420103017563143356445044619534589837211229255208385445330445925715172117233140129906529095938133959400035413466168906434664583455981398860282395294787640840387760531098129745615928396473500525766111195996154420881830974015492257874690775446070845542117755719548132751469211199450177327889784950444005842900425765879275762032414440256737110394442108108238433509227689085073403446409703992142219096607325745859784926628697050102482864379191268365906717233329642380474628974407320212826385086528158643149503267993654796512639549780342594819500026302884572134525806062994596238562553148806492828552721696509303461651808197169567255022665309411904658517567691672241764727865424014848935915721834111240849487459129422691565087001388443668223560695182480316201115694753823906517866148009456717065030124736020650475640516328771104761257610717849249159989753024510758996850472146250927612679115207754246809158620680508282490733753517799620425556137582481366706235791621330300460874835724977534755000666200201076706900761644373455787549350955184310006686624212835217495858488553579554685156202455370111680968195585131818661491281924029472235294169733521758493709639321119718662561265385882674192493810108521112139013593149791840669449939927302881127883670908187276339159140476389889312995777212837369825815357818953929588079684259660230493606168605952259623570829268272126575774314959247677926000916427916999607053915585379046385395974388229579967518128731324660401293475391638731572467420543655873583017608351393212332040800285113222269579604819163010512891116049589222563427733520279801365498418155321845965518796992994761367754138752252756968661343803497680509585891711545321488409720099593789123255989136224619860207652891366556357600962909936219524340683741967493236173694015329320723709350478223078056578068819492414379208163830194897604253580878561089827890425540307588341559281682715314797444861086318966354323164823453593505335578324829584467118949524020037361397218848705286587728545328934914914718596339221344048135893078917860542526690391406491287597646152055622423436555286120576071609301016072576896450393076328873908635000736814830669705573418985710544749361673959412924890073186870597177326431837184184321884986355552128227270007855700879920915709770873181311447111241573541193948429579538381298174237304838535936127189843182614004314760858588487786627226861241687804358855738994207652429476040952405852806012338230760940778212918655615198831736292235996967793611291416258814082221344684636105419556848366937727900704286403199776621792893760520987395918097489144583109367431252759273468081041629993110636472889516755911759815523653016722274500038140110459743625219889053787913679799680581073545540756525897709366594475729975022357505010047774630819132915721483397793558542612865253844603544708160603812520421179057040000768834420454525927109239626460496976547874957038036803437380892773683582393927527745976293904339438799080575022653139336222943263160015533209569788473422160455836970777410618067640627236788469747791047721710724340755563148073142617046018176700730035186046087102550811727306018762984678444849166807218300910404526969383470489001034975721714064920128081534906827417544267664165305524081399201881216660666136569509939800655949651103501559839146452613522590826104966639361809417363147819373506466031997313569946187188154287887595525234738390582519040403208432692891454546068400371862845945355875626616836285120287478053359952203892250901720782218902433393404514449363412733319616093507584271219369401621351676054159364133178697876408743640769854124896373291574258488489705942318843507773749118936394206397826133584103285180639661561937525685660539959456642453640881599695215062750882129894071072351002996655442634112535858180071082907404741459153531824132481317965929511726455792312698657679500826398928337960749731262174110636588545831325901493023505044523447937299302949662742351493955046320390471800734575606876150493636643679012071521621546696995641733196986197262516781114272903090951348541687596076526343406175201933644038066529280133985902580662205961582674651499414952935749421608110904142560091710300024341203946443341579711501203071888282270485449187794989209105948511111432714295686301658606813999214594053023441887789988768754239816815968444987202743556623420542429355131891530295317753163268463692315646677595202057150042022217355785027472060422301052904474811445265902522923276204968729127228530470886956922702852678614944958947696624140464276072442603999892168441042790619607477957066011028647923392976009304143018184074065764232572070829669099399528529591564325173968507273540506219278314360834952867611056862220126609788477121727946956591793956881291575098321615933041576614754379658868505172270876610180544884446040014695742900214659685418378430890127071560724734988239953132883126119423611352877129187344387039634019719533906354945334586643322673704606127433460212666051888806808073731743356211824961619054490436698778125885027039297999746235990299939106225142331907749018488394328652522065465436483858901498597575790045282109049028944186693947841668599244703077121418040249171595231299501852361263625230395536994451632113604910592552070831324435209416098088251363397526456196031171216471490854114759987422780433541320741025711245203666344399152892621145214307224060253570914040598010998936456000906054610852032081065676557469922432842392422752289493952586666663304219807947616370962547858852114037705721600081502846891331722168191373530357397467308216337030212203456927518403659190606515764719888653529652456589133153566927024307989934986291522118375719099720666766442403093152487195932788362857125996743957189257645313027061485795616406884406572083535999046982009804416674671739552210476580820685268979919101917905641532395752897453115796784555101307775816789870264823840728486098805876124024494949761251350693758818480639417585931715753714355336283075161568968388042789674447538585260185303606294596432221255802972976461583450603904938890201516655624507147583588218406084058402810526845961945270457050781050266903885645530677973577415726786958499196456418457661481769757387477843566581899960389105370327216146077616413380820079059187705113157531912153753004293515255498444004747466189629341087429968434165646617280134288309078277365518415073726913309839768746919566027236663310519837436430501168175743661324978806597360338629107719404751382153171919064155738309706586184515624722581552616300206081958839468935627436535450570332944963420475285727930477249638071204787674548905765279871283301524279945218714802568000253367963855873274731526167153024187870381807872739529164772947780888722968823560894577545219416506166355743087901100852083588420000921563744094855599029651429304361661582853880527941009215433725747224806450109678566220238868588773636078481215077728090859386673877933963651284065838246133538824728019049908539103083775708258399228436846502563501855347723818617457888682529220117062819618701340983348691521584216228171907916888757951241038282867739798956591381702259685080179328940592665937507257988636257534674922481484741692027456261658349753552441539604973662042365748048111673117956303617156547494398659702380033931297051796062495033709435911295066748074878634780030612959825913194968373437424518839751394735450487530264555372702927842133726173559604204044380695924682591903849243370036963079444149981013921379866983427195069908826042476521629939967443547957522908923815981473092902582842907616779258462279633708932907229271087590873418695628012007909561792953061906091824982864108825673576067390314818830465238506644256413943639797934915054421384180398833968723096108624437516478064542337076631646667221867364419476785677992217967806910445455770031644159922884421787518794880528872319933070080592581669644058946246448978940005492650038396124984393770338535090692686758035054060159010462268633915633126631364118057574649343796614964672970084800122320358001727195534999340461038780465324299869692057255724208377566245803792194697920046646394655767322094967438915814097565561846545398287565151175690715634643278987286574363075333896281827248883764337690405356658709656398111609319805274693703779580425069084245109378278891742263934912527312676527697427155891849565654970020131396462426674431224796436315125385500477755044220875117628513778056666659287426179782530275273548530807807085755154430996545357039237957242915045734064841115172748153730805082681660774645699404925704002763391570020436953280225610959403720463336291823346948996780589631301594171193663890685229574682181641650635418555720687774240145189137724856651224966173336725422459471004837165910183261262348584721212352849876402063790491055294973524680169971606171214806741416672308907983669818119045591650527323923189524444031887581001698300208554423818411431956513384857925004848298259050209972168978923171975629705108084737463120846371046702362837221633345406389179334797822870337935694845396754662781674711251697991023985553095390158779765378295400865635656104315797739165193736717518123526357640798592214165327600071517648250351171001719284174523192403597603037217757387086265280945107044156721692873789245038921009218642026651342748322280921095513024047588147942110233232552415505100074432403478349374866446814600918346103273802669206318379123791577403470166277280745663121735572774294522915492795455037299788688738373191436623709010435524086923073121778791500423568043590523924625523364230571496159546466174302796316636729265113785956220593433080429844548776653307105368395544451803658803373232206576696215963734499594279298340047060939021824346620243962599683536150500982562545857999075637065206192509582593299837717815439068116831924027594441777760924394383861094639650998496778691325061699513620062103209844814764392178310263257540349518777385616825547356590938969798797886767633326083091994428407301953789858863255338054183233615592014937817172215160368755149667420596176332922036494386539876005137073939707283849540799656627012106036548030186205329901524425210188219309588974770658660401505371022944966037844238594101111621771961859305185867050846423764552674736725089196010232992409639573930984671792445291403364219886188683308382973464153609056809916290182881505739512116610479095408252255829398136237729739205444808435843629737457201050626456997375456543772744520929698875226028077771759107459569626348509031475259307164763032911852678247771009054612422581764538868811950060705874941760171391958266465412455315514437687512566198488083579863923651497691815968227170717497118687632758001992725638200759809220813151111022693983146203800842849464869470858104145270248583971225790705773942134557784549954024980058416496087218871733840920963047308304114756173448266529929959960175349395922752101939765816860434619005607969695694517160558567208961876646479864324035771065345967697894644379298865076662704368154745528792995309399165427470800303126868555592722512860106746926396358697729921241102852100939088972878885175518264942946868378890617441025811092184479012140003469567626310465362320688120115834256274754803434622475713250615264498530998968724993905026718974518309811652669112015875530676542851319169853308907896726564030190159100986797348702367611128652896445695615379264739098263786801219362403744125590790660199467627067950493529388292312458366173628845464904999387924539113467917432800783433115294717159000872329512657129927528657108479758000920659657232875393203764001615770010078208690737376311966557552883831080675286912377882835046437474859390121481432485150367878806485970328389149197534963552673790404163848665609984892864125235621717028278193329372401781623625497443139321867498350964870383771728770812282221416420047668561962519800100506549336770126116585137013468762923518001254104157120359615720722458298141268099094875485151879752175141283630419598881843799680245821013743652426843301322803461673456641053100594102980667332198684675687245410193780293113012548581659661449487243918879990282935494509253268871245799155098077440388254461520187536458999273897897925601394824378823029153788368980125007348914993448122178714045098118713207967944435386494032056381938107056019073770845673769156996149735437973571912229955561191843914959035178690703771401707025109069358052149058127689115828634919575497560218353348211026671295013811466728309754554133022743355126912582618537406838206034519570134872290243125976222406085647827267735783301560333331159176806789565882945842813350972384775217893946898702836457912886297959456679607082601428204097554011558794051065695840033994214321764046462828784032385269439879712584682180851027754928480901108882501939952328631306578673034548151242423532802940749615683202803699218319143445821545723342109784904398810489705813066989739016682203281734577802809359004724280694768396576451984935597179664671293924826518941201832882356883458123972197859981997521563436820301592383111067965346444812225109143694808210202112961719268363953208307445312101655709389959665654164566096112464189694537043961246847626392025306846778245501504694748358968537676284531119401748311640627499850578336770353240376061395720734175492918677092542554649826595920302464098871943385645274252158402948916171603887345471504419435796525406417461743263214971298959527238366003502243813168987914382917709001055811200847196448311275380777537485888893552263978731558443703673221696456162164282692644292478298519909380691641210302328486629571942026637642881850068946376352762298376767641137373969222716684510100725347096859500386734086014739806393046809383619591617042648211089612991911371494517627169128615665459081821500422564313896621656440537902454999318241517849369078602477247041047660584406713946460882094888620272259472611186573172604774756895543396717615337793224566540485344447552429463360790030162895197983599129231599802069639510462820193110136636387799630223112650755649741585194517532868631208928805043173564348993176745429268154632174407556895843169758056673327468178268222300486346463522006168114704143220495865385562285320082320888407353085649066544402807085690651070924486279315573556490166612846289397858416707550875525058106518291983832064767837096487030602915971233731878117003853936087049699371388877749501732618278958936666377520638184417617781827652835085468480698714032636205462611043516830195708130511677745157457237810913614336530603667098811065207186968563254618104025866672279442146682533903484231141284952599737290002537743133347722818112992890117860956349528810132314554476570162026408724438603741286162496219346329988800592505838728313251683852653282347093567504886098649069424200141892881859628777313743448970875305641771394866912241524707185743507892479377616220915729692990950322086736930098790131595516219205018317309041235248545914576889832300465679581237413225880560584421737112980648666090305154681852744866498107159200673653448735813703348145924848832210048095509073740267763145271500227123181055925477328813241717936576495852246517097713520877999515323440925599819672576801385119125524583403960799571417101943915915826620754720915694806824657963905253823789163210255499965911550321573189825876860187997010118808834023641422628747766760433320664925417912224885769579013936522931420697742067273541654157479975481391025531583047729709536793832505194854076295312146575344388119439138498579108464240793821805596865617975797160165411970092265010698795246579510642754099549284646458132072306837511407455245398059148817765255517842966963799346014586868776002019512871060454797638587388074625982955685089636909760236958863052799262980027730133055702762452280620032669140505072374267034668764690772668587635479100560622269929624457667263295041723928357192486628199849936692382617292374592539126375630369179951223220498914000128310786300375667096066165285798099046856667072745549917789738264391973381340246740350327216549220072564110645953382166529635269156969447549464220455861413418567790700318696021028131566697745773953295198773775340793242910556698988551613244310256417985599120528595181729111984877320064788128580681957842013538868633657321478569309878292616002042051429510059330026704437378284353917200190583480426936558709933305547419616335551145446501476562502429974071068660429860484114939365583997550741881596781593161823174261840314046265245121531097822011285856758171944526843383770341748171537521376553978612421988172743038005734873246992285079694727672233349598166268857701614794240860582238282276452895383907437686922673951549921515696010662726130992161368782544283060446329713037790886556918345122409202160578892755246494389104727815557716662787309343311270700801107010317282628568606349944676057716017647671267934799040856117998522564766131113951443265933344722237304183428181111707569296609559635496966284226342184816684615688672415652247499800950738387349163653156573225006706834764924726908555555008128550936140666276140442682478557167454859032960206682823457247187467438898371102654874986881210055503633570909267096628392883910294507499617467003367262937199616110739572094120826620467462499111305017477851216861588019012709069586052255976449413828670357165781271192709598978384173841614232202622754820691033248455205100156779064039965101776305657035840630409149893029157476841194628908211936668575516788857549956391359454693009723107026798642681332987385259400551965140133117582778641815148895359262878976607425750829999508791217664149933636924993627661536777279487174328630851113206442642991355120617991242059285685810383377229047784077861561749660994759223381270363309473524800965061829774282060857753819933216864387110815358240181782956047354340807292456889154700198254851792021529408752204225479830064509567438175571015643245894254660366332858343497836992091738606910009004900638521107266313145637270139407509912210687461631495200568119679424776584369685430353037927021511012582477808980045922174465872235264928923435779072915816838143914685626460453478318146990404711874467393090696719561590611478353438622341589406523115328838546214007679098182749083691166447075334993838251663988429389967816036648647451202903147673598382644457502141967785237494939996558828614908094572883719228367041637190143796196570658006195266358429771106445908073655521813853393709504754620391718381358011226696016760264492500475480478370751848261872483575261790235033750196553072457190674173091132185372183338092039478582651476581246664363194122397693424792254247584886072780649750534196718796281423459839495043719907263782245921035000819349992105951804437723634571292120987764696393339373715355972468165710280122120634910713403731150812864827670579852515039618417819672367452766102662807756905716258428329479761929652677171295795023733486764197395188338857135585072801860210835510624052801111212662375534519546375096085792944142332974271016105589613008660931238713522564935925951510343728381392913197369445385865116040981145549732191784052934201961071882583916203891390387224373863599332042886873634327832272104349715842595498943662470901805418645058266608439689394943601558751789034510185049971812876117679445123436981418038668286313970335632433491157810036105898604604107279293685051394902039797103989237035808539243505134591252826391304940551528339082933691424444118570964087175827537624577907452467193938055099657440724938102955472385597760794725154792498665454288265251313863662545467126003999266474943307930814708003203600944916940241989977173368548000231611158869477260002142016287397696532859230607399680906516786033958747451072428455600000850551104392097285717110380012743359615828081522357245061061532790437228964831185621184736475900695566322865630895503308945396909541439445217287971740162021085114388216830804885557181460809228312495737000088092617213321790222819853155692259916591561684196897752358852902609497108633427286408276157561126488103857068785878777905620884361082123643623797808193129237964674124139098740366766287775899741625253392824047762887247908423180906182040461492428948775049926491995157179998223455472112089598648059486134479613023796405245313738712608890047975443845764854813059791481500037321688998520590790969925193468542717939954506646055958497311633510540560548758674028261499098027978687741380761263478414824839866301810768719090871518633695026596145263140787316082828164606792676147096670424842024798874839401208522291599507924214745803980611919403099322000982502297658363821270079007695811641191456410455587996933589891561482830826954649346280658545035070296122923007141524865406679161120223246730361208423870837999492408106808241204879912811711732026439840451205924280282105538766893124928499666778797400310351845890519288168127858363660075048253262749623828307607446548453705599851519847448215735496523255026708736087968725287469897970739307659537208541602815944323260928335350451622380130428417560071580335663242752874520586464112756284527090788671816925864638967467276424116512186772959027407159056556994123443136040577108325076859960659905787472841648067260126062774750517772466827165453860497921435831132698292390053794482800966676973502380523410698728414928759894196722693385193608638058207675467192619908489614202776080791632061886588814780817667621538467589352168108789035296237437448319746211711821250804577528897023726921097666710970039413855511731024490972245194669750526547343187721973704385744989639892838159917155881148156389405884494991117791948653578561375313233934931101644827673326273457864851829879131248591908487607587027121538128542337577516814023851418038412438830007645733335047042791578701187428869310984392751241286255977399057688199716718395069478051616810874578758860439045309344721933104936855898171910479426398896568050865405027385107001078138395789255607478211508961984941850637764020763037048598330687502537749453216868426902791615468875394500380774022468002877006308892866280563366083799303428525100609071964584389955345513879406475411965287256613179532094669947086715741848724679602883664172465715094547597339435882978098662091030227383507066052733146881296619766218405035024490973714399947038463416535296388479988278745857608695579622033299742862681268475738536237792321312857063394007787881212784329856774859167327351384173603257500873385624210115166954595432152098990637093188299549146191215488526328988988544130397651510977849207414136537089990006261214703519818272638209752962287556537146638972536239226808575190602995519861366246783444683405149013571639105157186390419260154097023911603671952612576948989577255033478255435511232828010040077389968673483083562985345695649171768168358103544627769596751742342976290670276731099869048440415101126457491951335064691454555642717693406890821855230266116484987822632841684481428150275231768788892181399962479271121155522458464479513329230538251536968586465027974826041804143018644688865065376912028252541763236428161326454569952046366331489404945299796882075489031942982344882463746679706001422591182745558998808305113851216600450846367457543941023758596909035087037011360103946386758172442240499447759460669086127167492193395952047792537863292121720179157613438704337059175601050047504763462618729716051400370921548308199363274863227217110522976063648806285656527655487797789231646833299527448783503626622038000446424987620381055674308867248088902313985445193767888941603139779840987019708850634777043965269301019279866781953176796585780531996957287256666549447336563439076020109091980127904604273784517332236149358099245192007235051858978827841044477640849941293352219885664450652918031915717900445435387050285736306364796848321954946614283059022087476664988559392731356008163429351161830875349610648072254252300111899797431246282825923343139207701296452750706046639886978651770342857157615770394936848890451019911469398086564767599326378682299997160144418028429463312761315576132405873590731246888884861586690497417155677705665977960572987681318249502954568192488836906005965828783736318472828198649244490103838687239635190101500562164905943705151015007261425497557658475941644769167012398633392200666260268444036771498177684635018449698143235275164097626456658356507419025764992589824243864808699461110624153510376007671314735505943124876357676980743546333453177674934649032346833233003606062788722365063432763673729971676811942870163434170030259387455465444274801196427994019695475437743950133477322553388803819320416720620793735882437249847842093924194877002527446474632447327073091513277450250075916156195431517541487341812578582450820666092520277621768713232280884842426628822254968300492255796182789973962175411374265022030865448466671093430114818275144894176331656198399297173076638634294646365883428959210871385518599359297311751079812539420133309928077826292118018890983824499660481391952927672524800944366893878637800415695244548921964357297552080578464358229654744612337486547629724080924667052643678918229769528756954874514700589937927615407790994964990954164280254801942207471093981481059434308488846024303383794571331984839688124317721600523535677879353912884720930510739103952653898678747923507182781733139288239769579086442478737006382776793738276237245106601664725508369008899868250668384493880199550770945546472566624098782561543545716149673503376101842585451348810926096680741097732349446187907033110018220892271796830784182567881611773149152487280620338582371573810140555335072675671947672165499377765758045006150559963017219300795568843613828016815925317455147129819032358206293938027861341720649273894729728455546051221946141647707395314608619919194663559336406007640967613806502022734228116419843642784175628028856179111520329647181903869730709530966923352315839884170190784959022367297439851133255390157705139561479228917242213602662464708126147873301242092381382650700527196187637885519970630519002130999042647727464137959500701886422956129518278522503382635609215308952567989639294341281391048002499171885835630756582976596783284367073731393788847329725681403451945470835426649634756770918965768309384883033148685942146413463586596426429306509044611767426847589599936668684867331837474076543256632137478397859496647795781805514152801217355228120498213905724615819967160237157892357927436181452475086017747490046726066460916284454764642201353905907896267229635259344200712542669140600493539224861998034118501610759486408312732921583743376105876721987459269684432719094597990191920923289582721301762854453935772107605189057151775766665693337619273649539109877355542284558417588053579292889541818389718378046391261801889187368576775621131968547380731973826153388190310522367587185504685661820179487488884882408429907005981383341966686342246756347614360619981339408557165331118887903120585970222810941917595378788273027087543490813462572918779495378203128738419893657224119319620368844095683766017147613723934127448306592720484483805157053252346855260714264475520233496045814735561998348634868841574804915829551788804647055647796017146714532425824567558905884359506086025411828543252410037453503268202700812827222496823838364642366755622687208140570978001231290617922771640003262552317883242973154255681344898481174272332366053923192928530399225187562669876582620680044677125320273681168979082464782704256447581812564215418201672367573014849974770617396835213808264557280414666299557753912374208358685830767901237400428539388005408555804077930682248313234693205131969952354647019401363704562470066897069368030047622467459365389412845118710336968202752256650035466425308672425454039138154242864039249312707729287762900578874958874516279014653082950292672899490088973989534970244084481951685888124671385892671590936953961523764553708566191721472542520473890810855522245856208101966590547211116580105540098556293469669854730102840308876457793915708369631579266258495251958538254633185359330857053891137258964694726391855844437505032741853816411854140074652681408210109506070464450403941920379334998859090219451259810939518169723280156122192498762859252794226570714932683577971572326218032711645960564850996279155820720139497140733002289459434817190191434941112579830239352464528886831148030795964135330720070299048875680011693612335952479693757281920136756261301133795423898759948003242207694210794836577247770145754161569241396197697688780912076732465421294564362589436585041389286225970962544473963912121779028577374914755527670470044652506853479302372241370630819990790429947472996244235135844819541981251156097966967738574737205618616247839179509735711846124729704609198655489148560287785092462648050945953185858976017231381591537926221209964647476664549881348793250952248922682866170444657556791920515284864634688754640477930984423999523197409041179629014540194843482262065247460142138819444552755898277933455745238599380243505717162512785790259504536424751173780343048861188889004835821184727937293176367560330309759397587888438162554141108255775413483314186818903743188678283851819564095317205769861283011027175968122818350343504117314634288021013054196731438666435975623072200944121977440420842587648867618127124657174914600951157948354185131523215815377883473360675892016045406429784413922841088246285106372451325238283739172501289264542182672098327700804834908482124746768921957687213683745854847159033169974026030426479563804141099038396724192956018890385410530658831900438316162189817243559447218776426384264054302830040989902805328199374318524122412937064583388888145998231529354269556949985368820330557911469580713566942419551329885167012796538555146974441073026415253074240928519440396429308358572254005352577571556083006895601431349997187834507637318086972641929371474364911376808016866681214052868465785657922172762781577149738093438278580360103929461210117417981477182864913986172522764333208160949778839799041346875653701934156652077615289354097190971361560471588808452962404510311233762736162834586773243412443574648602316620277547556964939456445923937655298805860439062091612061379746666773965424663721509020231520558356468956620532959270050454227423504098717487928621283157417512948045906213930723526117100042400435454850376942707253546100083076463937443104605345957271675253755768046812945423821183868205800526477391960594964782200597791457652688376574338999606146631089914809027084401922681737273303189969147545641037814630591740490385255946916123534079405115787913963013160341804169084356912855834237443911602224200331602587994171808720922272833479033486465211344421325136695519342348226990862213147684822598325943237440652536076224334024361147322407737129666738374304000956773709154409978213380759270073455983378236921342338780538640807779049319166833605846374365477494817613985335963528050810751213737782727496493397226760642545814287312410934100839845664849072341084467766419641662505429057379034954265345380698906306740476138460631866463706143793194997053359805175709305763597511804195564837622585982231622454573566546474911133258349592213161752215472155586371359573717348764962866643407150854322833020804544241926223523896992550834062502025349101180079626884041019229994536481378083966699663317214278422727916190283470464442943954480951490377119296800134936659348422446147773820797980684502816620286828460991317085117713295697308429782205328086763702495084658471106173252253010741089496049779025288306937871863930842251237974748162220394342288513509641768719171727443673995033095211294681318430203761857974749464478565264755611344057330911043357817855850500211415721987861115590287631719117079665837972267246927645120347760210985864874042234628610999686212296364213243279646459325076509416305318526336422601670147433828701305892233163955342835069890826387566845663083308114275207188262283602406740838725884687735381032837506745686289628553575765288272063328899813295060847765746232031590707251500816716150107841751348838730701590741909598317637820308049583595731375730391359995298511249598008228694092430530106541364349894954909047389365998307026982385435203189492688914539678363175533854161555963248772978421847228536770212974908748304226690985500108208232030419411163213108368681832032621887488060374591681759575486890971692241412209590867915085651496057142801397813034959325293717058881999295123944745398284936038647784126064466779455596944518251033426564439816350906120460238864806651497428182854231378340429747402783470992520745154508145001777963762597746555109799936492539458928896642635911290282104872800911118439167776195711947822339253133222481443634828422900329797220095702040207346399148981777043357918329397345164903222732166837193378689175245156722197047377662409117496327840429287002231925249756842844158885441668415552913360037475794520521954562400119117579759470978812362121800289974681037018607410608876223496643230962384911885669746515318361736882757985391718200692323708709022773413713092330901630487647010126133528329167207998973018788264191194807198316390973231605377011714199051765784792658321894384867933841427827188611158641569006488676534818253305316264441033954340909725793441769282054138978427396952500479906591773091078664883147338377929636031192748601862966405211181518137707347536878396288228012193272902168407713558790853419109336930334326184084374206008819757141342925758320527938139166323524657437326236700029476715836124611830246460358900093349707189037144168348492754774524346830804672783691375191698806387568881560526543506705270374063185510816076994979465713607692517886923005853795967820592739169914823610805158032718160494328667478220144695138531436492937962615237475507904855239149074796119793988585149489645702481982355427581892236604000436601873448339281784338488370249841780133008778178387221253770659962544191845171425394958789308032966832877719400077934117996960820302639682959557019684371198035127126685019123323429057530840967138045276157627525137381552743146269125395977370520279229337654325493267254665136442878887868591179895060991164588107416920001685717470462339006974869214281680813385320831619415493379014287968243486964166228945648489937477220303465425478801346835227977270552618889466344098358472738516296600576684386908331603357921462024484076186904350274970210835129770868897480977573050917698867761304476426057277089872078867937884555614451028259930476996731984506174240986945218731573239539874017859306471792705853970808230864565792214945161640158183857543552207750953479979847899219583945753448448845466109337341696668037696988345491068709737795191314219927967808083738629477847617249020211938530431473815588329967338514605957539155662920561726825648939486778480197558267566247672352799448027951910361898626045031682002042227617727878673350267232791721749821123665418324990349922001091261449167632479501183739236673734460506121313249001046981017605347176407870276032804302176339259251476358129737300358643771738503566222299486938034647116399766644569949382744128815757866276815021584221464705740942452831595928455825271160813407121357585431884552602771437263810007151443372282436558022702939070971705408050840348362693946094245228523562944083778123754493747286654197458082919076245401832379724339900404017447429839315478747701808380415697723077867548064293782643544854963027095875390509936183399912820665893377479406156827055786334969466432239259608203576742000488053703866152063109217881375480885405879324740260997297186045969260738320623212574377119745990626215627174281594214364355921523930855424557261729454509404713496972401600274380099616251363768848734205701465398027610326728958905606247308726303511846231974955204721112969613176903144646526025619269381203769432383481448526503498850793219007569596667701571902007316001319151085857265938714821961457882229190243082727354390461029129370963596114889017620678279495476631952221972860541247436130312544614037223498301688014892735305013852083620613827295954929269370112593171502506963860550270648109991364190949587183025661695448665068812180156944527443334546088169781830462526435025068544408240285982805154272958748134336120263146692199871946768755754928662251362715699004219577891315341466409610989029772478572744420978779517576833993775678666107933242960223925794226500385259709425858908448505117641488662335396312017475783710961751617362218854561779833177216141152724460648487315061023372162150552609661809413613783659121682078626864997655023900106231380558133222418829227893965260368192499129865676870453232881869816980029036027285469814172440606154503774269108077025713840828689068858276487262035886284859399124643206956118309171007421503695320436634858159307896764123468511932003256849630984260435216964245822661124687125284736881402714590919021248600771874405115121721023035440954895691799040225546147620902282498524855394270409596791889026967978088963954139718160915908399223913201170540022279173793948865656328686312431680616033871938314882776056939901476338277154251744728005432059271469403176215866515792273262993887355530310049126073754600660635679092365865145801322398577411217408314413065291264806732270870566087933552123242654878202166551132741784034471636031283487183424412998124115258151971942163540258916060639963016041923912891368645178390426670265107222985409442187049198055518551036982585065116840960792517838815119123324218320149015053702933247890689001875209801503498793327546328965578885544782777380678871764206410966986459195818588504666656633453362263542888909215485970282680953223129159679017626468131256434393355881999029323551969874238243133050279263242300013724405224171868692999093698729854738914129966222419711430706921386886493603078153968466224810895569028169456595694601112359959479046768477129659989986062271867676576456920235056779346513950202154679761597402396555641145161009982838313105314271586014436719389468245301875403538616423908758414552724148469172914983011415400056292732818062364730170197161063824341307305434011507511633016806934545152941027408959349108309869233418205332611162528835225766890293846848214211731556738267011772995567132697379679053853583682548162559777557502540539697567723084307718364871605857850956096454508022105512130287135229381082496625311596448249746457946141397172942494850468857428483749326779539803450327200763693669259010095888405612782243312942237096469015593145846800061066053030828146266469055301069998518821514582456148689599803359955985824671983939807893344981937380103503180687975719073473324688087299876055767659557032769736341399368114615228940721105809684205179865613219752912197562541952616553117266769174561349899958916578331037621942008778091159262380015231941345736445545967948594832606674588740800042716767222207901828978335758295727960910913054508669322526290244197455165889942268927678736070538208891635043760991430218236813858932431684874803497365275612135829787375773946111869934249387049571718348116815980723575617443896280275624380191609575511818302311033436795169963150414478674890879665154003057806522412592653695860412580994748889529612176138031062726742633179247258103427613732188487979211550005874241556306811030315490728670032462115572486990110059578442368533028873533777433861512960035282401047954771604465201300694341202609777764347690838562501826474643208302454518789140353026542423411085907225541201753391731913511839133725787285567818586814997316354584069925949571987985180762648694055605032393546942408989246292663098850988324961014394940148788549154327480897330675552062687492322296715784834360155915205705540408405295976089101735424689453327753910443200954895980826705048666281385291202228477622477867461575064928166579398767816188831337285901320544497358688403124788082683990435221878793248346981925617638839898839747347834274891368584400224898821550269041920265184554702217067229713417862873429317036773607062417615722146334616397295047817269165779511027282428910564460686085219885586756409005607475619454963348092525105091590418092480508290532948053217175295188185230091529252879866075800852804477987994668797861803182735334236021794760807370784128013786277437345432597359223285382635876105025788169143881506261543012678866286410971698563854173010255338393986791517704164858988567087411670204975192983319978411938851852326528684846755584890322689754969048529545673862086367326449077990416261714687531338249237873993521706871203015228231262833080558273504972392404600144715860337088207980519582916708576173628756144296988912506186768705637890593895059424890890156564462309517036103088545717695274992589198207550947078292623620665558738327849214463190333355699206878911952559305436784978559492863293345338769712815479956232404685719576988320902784437646004304825334863291804758533524603078164581591945426468525970540654682792347505974167360901869847450548316122235739383967592466528642580850874516405251942096032941511789960487653934736897430114119392653719509003441766430332915827091772050418654781267914151289782883562358579715551049018648551945740275135686460281595249692398868319995262504453094707370307753659025786269820822560592269235187300789445419063414298697407362375852969010529045631376298667734813823160779235375622136850432232402318229987349260693414902894532359140394755986613065286162058960361653868736705231826243497251543855208575977812654536047542562216085423979956236009693210510143331648314815304621166521858377979078947110398031803544961776917338997163884145777741974631729930741528887426124211418056171208348455867403508544707045260612544951801317597360005515851078519396845490496275477659347667065379843652148755025939271530073257444003502686872049062514431937028314894569511850706222762630746887743003072701123233366381102053672393924015342039259784661630247328760077041050875188561351421070828155737898765072485899723275011940017538426213995956710105093965074909033588438703362321382969387667855498656143496994598853393420502936235872256577894352070005004261660680164301404508328935247989755868338494787851143380304427514559660077719509440339630630287748994571823860489990649218606718251365023023870933604233871948901005626725158545166810916747408324873467001216077890122996590440830929724848407595845749320244242206534859813291591781452596702889146080632357954257932656053852713828818889707424569406584569828539342449008338605631074672335359844828142713226545980639135756698934973956769767029386862028498081260835420607377540564282386292273674272781560780765939973924778498311943129228164134139454579046485018881981178246814262677567179316980798162720765800137129670556187569550710694338541013955495484688141088943943078983350983338108546465579849783618349098620509435470247091962536748983381290636598714568637856304577775415382830637910141754405991816178950599194606667437891214206586865451127215770665801863439322031443160902930500168459767613390575234594525926110292520636659288213037789275934558420922648162099282137076623515141814826897850184912441099816968017599277742193516809839948554869988185950769743668029478226312335860058724304218459873969514064868225780554242878340233145052521715096797039140743089794423698596276456586883420555455206402979528314170866529633882488356922183289729265828417695628115302607376593081579412016527050907752969432636424233068674506292237145406905607012762251244264610152824433683398391446111101015658434880311811612645144818954851773914269463063659360468161535621907229331795857626876067818855481369701459043870490992994203258296451737807995882060298356522158821983617254042162350515190790669367421391174722894084987749577785515948385067756986594029010252474016714331289899767419592408329886250273801756926168583661455537793462985112620836798920277757790110334524246566896260934472392474106675172973114842561121307245959370832610079681896217439963943390668734026793428428891921387125349434888992371061782140064209063607032351686221421557766897780357281011453430305082427785347978109359522535929919727557763902478628796436868331469696740201420104134549831330943317322110013087436618925829746964193899251223327090489283508715885351968912143844709866727321658252659603205547412501717590909300700984417609689608669406745395934367476869122810838381095756991590749994366928243280394066583009872000062376734647190130229684565287076313546903791890159839495618124975947364737710630686326405453397790971948083806154107958904747783892813077931892674955695536885259727214044388638329620340142888071521764531049299600762005342008352362877468919167828071163352516965969963247531149682340287685714999099862891834649861251031508367870087621208488754438153114119616435543562788834834026775107392597383602436804795194062701399097466190179799283521109314468051077253423531517263992396815032307644999740449019988440110269645819047045030801492668764122226663048574198604726954932289734124037420031754590041954155585516716127667898525847626926988379725496372492293510255751913509469768314360729266929081820585043082249000278773420324218440875891625141549059322613901979901902889021406797832306528269322167435836505246517958110585332717698127337016898083601900422271764865462627297598721905527427538011578998604186414730471085293361750306698152117021751337060581631892035648056603232884121240221759039157225273311971765646844849736681441887133150940544711563417972850773103760547246620849484741684917823906671457219466457461585893857574748161367412640827645212270820897761288179825722176149394055344157051920586486498428217467279318354316606963720256505483611513151979492348401321093926677539366617715933966622000810203844313196604597124639668414621714345512815537278271894002405335830623546965342542066711516832540588040127819299963316410013173645057531925316863479087917667133734565544377247605805378753834384404561085556213257996074024667514934432853915157708023278078095771543885981538705772977615129388844647113825868475747824258544355902377444064012137877789251533688548238432949098060039418186638238466299598590697420148806616595593489895872176930695815344211257951477084354265934614455646236621274367156782604996701996349441756236113784213971554338070363915875107450804584157926415385261971858678586827700135701764223453604606474631858856786958550946734010098423749153612609997860336984961766895893778556437474674586564001532816041730634121798978038327054953705123635541832534825436220472560628786413579131416994087840519788280344548344936868871958826272459820171990128262369319143546823050646320092480074306402913432287362376357241959664625757470547391530913180862270873587176129927349238260470745323427777859622863063440289592588431706259778067845218837721171950357932401687585814366250365486867316664956681159359875767318787262521776265032052738967644218121899989823213303976726458958330099216591308639367864967887700244317597913626167367478935470403394682763254578764796301555335881144248427707262962619299608047806223130046102625604091073734856413061259692661734381141339822365797838629012227084995188176562619302342916722532422014768413075360768313838342628977655069213856029777160353580542074731786563491918899077280620270824815267845497784220554972173753622180119277847712597015402302884851741085089670925922619285651918596490004152603870610620716675982202295137313861353044573642831798887742826459445118892466380508161327272382441914202638771192371195483948640567545052892916773664379126289854373679184299505447286572531669990264304438606386655775207352092992042570309367607120543818783301396677488702922900726156825923525002225600710254658589334255810455703527091374861394664827522901826367438109033094900526862485217689931721874742651368724939024525998806643347921374175510616781109197863941512172996902444990428502146291686528102466517886288175307251265112851870244194180947579412645174089390876950352112457121893816989158858560640009550491698129294749090236615474309628171712531228617108984255296285151795949683178687292660509480877813441458534507639380069356362484434995333777858405046550003198135105967043515359044355144199831089779096813469438230381918991147328987512457165534067147128157439549133979391734760559013378266831711829274866145871650686001674155489153693529879570173321514062546293459434467453385846833693251575798589991127423402077140726149271402370043602605016163188122174558509418107852254396293491287733537276766973924676565132220185391079077547528141453953192935302131589867508906686861015034886482894464631622170555060460551602767887623651119637603318882548476887073937083002763698346393603568789170531745788634184925501061437371811264108244741592123438483075734701641537887394010943686403905612066946530427682420224430741083710333731425720629195327821816808250644554223727756935477670648300444639587545537148156184273478027953741617965549395097337104909210676868488394042673812333319341690375342995170925107013741982140049740510837990925921952734116879360008341919387294686652574241517316756543786189525800683471804164308292275160163978749346055951115108768827268447526709372474598888813128266805434792664572386162165845084758498763610627515682003687183043504637421901470953840881713193588117380846395564836209097599881855698644632259794722860682401823110310796104868254418315369119894789545035204357079699806795888673184885634340445932365052878697807001232927400953841725075680463095635651484931794149037724446379851712105471481557839812295069018351352853306104029764428386247737058278435271613626705221003478051965542310043066009286786968231995122291354567443614383133094528089583406613086676400303755545331332806810292353219180452582339864511219944384962031555491680771891111379730099871727015344527102945116632793030490747276031371923841209622830295079973063090673241044899137172584549778013219693657868337198292803482237768300215312266999019193858206982149481702634705927061458310714764526869217771593114986062839741719030343486383991993042327374667100287883283970883492375035459511632334233070119307226475508337940032493017812769270813197582065415941921502998332647968571426390505216303833267114168547599045823223685663199574450212426031229120307960111714337853245415839397329789531971750920666568135960621936768687840376645476745609269119535495524424215722308025149083968640064409089065004927365199363012198082313187432560782596836057446193442159968328830444574620831717529778285166722274096103775393516540090241353389575504612810512145756242407255006935586099169464276664383462384849977437347410227952970090365128874825440617531329549212179847594124300006349452988467683066030364093678246525236035767221685231734467718297494512531058809988778961210936573139983922654515144543725916464757384957724864107360681121618178431695839295812975484884847932845043594051298877942048891107303198664863339782179599388461842469010384628586343178644151372302029839943611417550478344646184163367462581214622819569142419147820043819418488332416221478109434189166228576410297324365543546839128383071129321215313223564365881721523262875024629449481707629093638849744541831330603163893322054028530794623940443559513401145799346124825174728402253032871964124812175806822082133647464632986516659527541542863740848197453915416438248851779108585166249670706320354079125592597340686444645284603113780868327520037682589511281483139480393239073369869864462949455653668088273545855033335681949094440752765626782220014955906830123807909535880961133731964658812915241115567315998262981034219837533899964203066492527452896661355241232582340764345224608238223524161878370003784083759403172528137632924425114181215837496905254010220454220968794951913122122484946316232692954623430227100466527640558618956840828433173513255373023704413461342489798720272591432579050523257142461901578723240868282170922221228775900432003773266540503425083981272828439977844396441659921641345671970961383496316312132180222934766901471801473230322327071400353178527213166788953087387008068391285704881914253566428028435404272877224369774481228296198256264020822650367437602610715553164911727425939344126852672456073709904275762192711585364521094745908613047772728428226502861433737996727820288847600829669716855761184752740748491445868515965708464316030676919842892633400634219869223498112177921513043462169871279922898968086907712146779006851569318014948098278509675935467739856827390726176989186064673890445455717249498739109871501750045800198751316890002610422203814182663442564967225778114548220124816532034839869867291015002314946533888372082911352543825618382904970868776899209233262893736301676528565230687570450055446567244969425685402353256649216382423861306521543815315116472631913700264644020974486046998126956751550486005881435324217794156262375173953968319439786763806564505077578830264649618834718885260996905336782831497052753074018489692691374231524021936979433665319624030776848252567084819362096446030712445717269375236493125463096870000511471961803296589380891305383440978042810488300818639937865034308990052504531919555709797592188853118827467386363246505307354994675934143882407227420353336992646168887338228918633858251488359986964852555513034987471970980336471334081748970061131891940954437466737024139739903109384346674567298810306970892250250248027530398565404119006369625303843349117636626132323514687913500582457945251595040656214958952013556717418688621168729810824093825563018569614612637154050185475913256726973525889364021839908410869080867787738460862414663751387514703916110771826652337540087500059012420196053816246938847738877275814172847972679293940509663699104640899168717452432373607298241127786874308361561650996980683152731132355933218239979869646866055723190146842888901770896581877653692742506178349020782838919361039172433541802753358252386912392654088810908355841337011696174022448385299350619151290903224939013738545858335304683033976793322072139741711106687316380492480607361950313975032890325426483012684409107657265938007658417360876587988806456504109861325897778715793389328750579450041374082879430312840985114022219032768500080038607945354033642038593795136708353094632439964955128162956230985542308687484732906730332802377093647546006800785631379670243740297071528905343181555248241964497962307040507553729747682601901836468586798561888262082683529304429771547788131144471351968334188308229227973689085076999315620655547818848534328835293005116354195675584391596935550497364444851528291514537458026792773289200946692763674094608990476044213235846032244077956390010430980723788961085903878625481793298900684020107135098486670525938860526012297258003358995727660813101254097669072574125278412409286240308361171899981275211676999693942973793762894489837109460480603736322048453315089636773582486545746159537878428630599601359454217700263933762622832351166694263896378513564602267715579992841658264823558064263952786009909107555962611262801538762423111538857063320405820218504296283301401220345329593181205701893113826432160556283991459631989345392878346739361327705652539977063285057005524023193154205132162799041361307796592121294148077492601412195479975274674898457056454875354591462118903641558789452825524562444537435399381814267429732826058965075146213077525834540423206137576563916190293083783964410996392191007950309566136628550351026659916098202136812171895136765858128460232746385852674200212513576431219602314842628037082809258698966653247969230802991794678552096285161337895986790848840333745980153463884771866763126998550389576056063458512076888470640843669215205855693066639025559286007632314567315459256012861710524259560211689939470932204220331833954345586814167464415311843690745494214453266720609628517626650375738384813669878394301429934976177887511459801446333407531597671304674937391726981963264846238099432240372118985777058792364102145561216945654116216324028593829175967918736457664630859325259394847516679034085525788165003694235860271389908248654379275011384868087885353430323097124585173782189743124179906287266112944395519291520574648519227465821684085682098837107017674828790827568231142655692133592697769133928915233680201835641519280280114473138484072480056181121125760368869758052608343863822125084336721529371466883387087432819774045679918583177035623295553890146912612355262915027167753313617132893672052081686221686825888598144104865712802190347173328940551140449682879812970537860262534576810939946958099495632576384518446284631901513140228353425433959380528410640267751190524625696732562453547108250102080962459214823712760154388465316223319375067073204224671238954953841980054821697882428851881975312659745339892871516151048535802049297723853841338910934237565094559499344284752566891954333608200645704346534491741808216622403875325782070967841781323426956875537738412537512808554807969266742048389368259717461295389477001766392990405469749953822519943098891890129021877665553384475381833183199357267254969152783966549033926639870454899843838552882298018023776300837693651862999260327046480115176056192438240230760493770581041251491509557050251419570017010784288180816995326871027167419654995521105164232329867610702493498697673146634207160772729788996017587779037547471480559611897422147890186466545854839435361565418039804720210974020330062463718195794299613990792332572462487866617796758502351645434868301223057719777442251556158333884889700232477710078288030655279366297811603633648858534891723317925041734692411522997784605300009464578916969517480373076784476734779687089340051504922497567564187357948104267429703515888270483503399325381659847440423541144602950832838956327171172173571610945891484410334254175029755509067175164236852306117125916074649034584585816653791134628986884525637437572761745907059540516021682586266210700660696884986720631847634008717998329962546375206237952452692305536628940925300396058461411016572585691472217677840034559232919187501427965811131521252619646292634054485885144183608906829639584609804823052121892269762931768836647630079698088349486274608925862568121123754954543341283520893752735920888354062864107702675147022057556554132262929609348538955095245587839112596270553526377453547849028121632017609937766991030985915389359475475680463587611442747771344579645651106225146128180308347567209084916573664296017908436303433445325752120740433472579798333143842682141868266269043130068152444553246890256832455724389988913486566370482892544794758730726481474658766165234516545049037332598345579658354440692874394701304422715210517222204695288749871308435427110339276538191454741126379902243038309194911914300790861225207992271768962693285357394958616071234851931182200946722207094870052537912101982205462308022959226011096302584145296178808157559903790145042687137716828334768844178448162446011646811940201790691797236979750218416617441650716814360843791031550515955118725736133192406334802181367567973161233896393472523468122566844776144056473389825838010159764011343794054798759570134079866082241470812863302086635756168107537027353691421013243683173206295720647894716821455281068428639840584068203409692437703321331627473235307074082723029041047117120409208074248127471586992326566092058661654590548800464625653938700183712696346042847028498844596626890847214862742995527013542549019115267586495513629155591759496518552798189174589709279387288808977479595007907259147090532750135950985558939200559646070484690071554980349383002888035180743305846933997917679870164145375272643126626416056530210546274768534419927270101569192998547484038674598620804392709683743797745170342556296277589814048730023720345702572746378048186224643302232398538979053818012445429352690049368926678422729233494486624677055564993180482554089120415867872457803434551084543961103651256864311040833738645623252763015570187236053414213282941832161693317074459044920915261100876662063496397553406504365868155030539691257111724832778045676536512686907660040892133331117821792474353772450019415385987558142047365005560083509340244570606656183902607445708222523708344721324096036025849991248449947584754625901975213479309908058594653866660196772554330009944256410160093982984984569069128492687761419110471107136679336609070809607445412844816599284937412970515716884088760934784535983857386538766242975691264567807270088195915219660990108233148747248069489276503028315920027689163610937196093610632907165794488484556635261766514544535640556911095396573068583501557902444382532343494883841622848959177081101046816290981190539889686261284515298762089456366915010826773700909903657769172800105118874223966234283742214758155150039258106719751571114163289961217496069183021487399038656013604051699774926961741980502081084959881767438747368206230597369173146938513795597464018633588892758436365248632922703284643291008699565949123054439947026680003478835149919693990116196716698118905064052040184789384079288128358470115825892533919243862932353279633871076992752679168700189683682303826168540441899366849928502984515251542126929420640406896300357765067361942876109716582900995749191658878039556220889791973181867501821113696514821271704171766929230246062617696450316483939073209299551478322501936848588494315010331512336077506114325234235200293296350785118784827779882955999305403535358215626443875375767873048171954328894929455496875324766160748869423474099781684746776324197879281060439962889886455984566072717632582206215110341858793838722911474136845499499942081860333716394553363274545414253657825019176871442018119284135917481600918227644797979999962339194751640342190951103714508351388785128062576335182164939683074992883345331768379285156120318996952585259144647746481900690853207896391287316632503340366477778074801138967142859645558405073985132306945819708617333926626041181006140356763028008205865752958278049474019476381468166477880945552911541891708986613193924589858515758017788349315109517905984132671050744645116635669449555901054590128385612686725654572512769818040281605757557859485448919449917506951353474701450127499151893396126350733199584188926146245811778539702663711997563662057927458508766864666595828360378124214602677834282476299845888202884815466413238540501393810273363239861189748843344383516930417905014358992633051042680228302586281906316818760914063942010351312865232178841144008114976839528515986933071862606175903297852135620694068778156194543182870910254798738490087685988116240128175670121417026245140800025130455067212840185148047544054349784802909923613496650586346111784427652280948771253524331138313598056982352448993336223584747929618250428383915158968740180880695973816267301283046268233380450335898402054728845472826629582847618491234784572785927665899579461592774014316468027415438041824808559088614747286096662025603455809475925089461509530402485191317624617295109614530838802451220156508542662904539096779519027153652153380150136213302574143233494094775572920016044546320083147094606514606710210308515381564944979313276460170663912513291753142055769430697841174252672253103614308677371618304198905225243825898315218849344065359404797484680964492966663796716318460604807310778913164295518031019862013857625494578468338187247903043037622353136255396769992647374005668172516784379171696212929937100034800259499254686237367090745131276631374102577531908720278673849794573792434512553382137618419472789882063250348592905585938318828837386840956169064247763693156089221418303948345965141614631283131994141570789599469176400760036450608769854257820340413979026684095088127920607919833518057576131211652233503551359505646227180903140140631839102595605952062595026275644559490698451817578529411442878355871758709729499281709020886076215254735760566620233689127268385591025039938352784571071956640857258883679460729760960557058117080297214078916765867849595157850421673656989284489947159600991579423360146052108144222222429972072102271940848806894690275294787327793738608186413336528861465436524447830414175235149471314112086877694749033796618161555648905870936065958579656693618450526557056049380823064422282317319810542483907620694220870995173561658854128220658652592991779630418469322388026606982295412764964334970703304708634765021853534623217899729394840821147286787352918812444781723321200700079624722574851059520116265148107993330620166824089182321272656623373869482375904069047987382777160952558678494393318255921275992185680823849080357064754105053384023719063511562306937176837212567067832175745283008565820324305957547097417131055444138742354497219339006898892011301263397426003919879593809894513658880170796250965221923193219798992674338689669343685160905676214216808340998352487533588127805480664328001350329903112520415895898578458775125426403329159624966910080466304629251321437188474912285745558017112948567574495513122275536682103323064861038698252323216930359047299135903160800674749763087673565485823824680611936721029645620312291353225544132445346668162305352000145384044287544701615145178355714343202258579005116376561387473550851282040502700699665777453682035494915157845236950294836799905362188059189313814945794990108538719016492109264580314980259625244088665974242083125582759743940581050351426553015769996789598424053933580058697443074749161517709252383911990615858477396892735370852594829586471923714772251701926767883405188409031105164860656202505274794896331288540346989672611661665435811414913409656528382428437619279325371906555396566878380477873444381205483954116009135826434889622478404603123465890530948462761079789969465087468949534393289658582528845801068350938354110074035579602352854294398664427091633638491045478395849929590934619450707618638135501342434865940543489740343989884462216771537628866711606380444139718927144313736699945962135023031028316583603219331306125084148917057981423961100882507775822841873803685593082442358790765092156555093498931044020182993254044057421446903819983185464243644584622198920897730775691869272041322931905718877782052897175705898605372917743004587722506927685634385010008166569102140009832650924260742293758599499873281103045529489433397994322300470907464176351333838759826702686606170966028608017429301279036681455597365230792013412025427349313840797991247069520416380846572294582454614577170448843244001977787845541025237124166630339266191073268631053793425351217462335315766571570805545817938239310602849789906014998786429206479448133902884693301847026634538959157338244124652477719260648330158406031990054521172858145346761683325364172421280436466466794810533111356595674594276753444086154498429656277879023788850789332000315047309925475603338910169171890177519083346538218908165322898407551176120506701064451935921938546838636960745171214616650160504840185681759491835880305288898770299105516855115978417833952280224412335465961721952781557369426106006031775142116083600621635496345260201089628349765746016162474559294006248575798783399786649282100188795055093373616286327208166526173073381116511944238079699656091886517284237341229507605611444912078508457790069612471121026814326079867101129673020908409471907244833935772963879583902402957424308171954943551133653525737346150543043061811436428161533679061958498560157482366808252813258997809875368058727268720398130384231619031826204525638974317810042845536975372950172848381459902605140828433457290544271316062424048517775647615465949817686222040068041119921690760950445496199681713336543633312729194567001125539545825029366036167524728891831829879568681468684318249588811949860066574756243941501858125998596490586493351418668048898452486582869217903307988106294235610052392054460534989492763770878575811221905965631321603769087492082784247459860863674102159827338140509693514208677321592504012753743729967104149595046699040241843130362854996802718485939216726579688277809876572634516032299165256869906476906863093481358132403700686727381098629136606880343865247956985222451086337260573958344285077033412039686151943232278987487921240867805773718094294038098197143790141146739028458177327871168065022036462122622396813759075194471280189746338243937509301373231999062859838973365055400367652078084618291932533669785998941815507762510259997835571851096677787463953873068316690705951963270025600228346725371183824170993767221279831288899710753632057752473851852829004516649934963739724036419247499528306765443863057471284862727790950800329900092192614338486221848734620422809459905912658931662909543686403151724633907341826059670791368177407175522135675814070906788623421505021865509168487335049963125822599696684302503840444992023018406204511733077795025522857030560052850810526144790312782285230931995543446876725969227513945168416723225409847954563303650000206965347204353329693462029895856999209077433621463515323082826420756193351878913324519399102355126920223339940482280160980920227536068018451358922840247032540692168683647792283030898360167114064053800240373478931735521216872885611170248801178399396799816156387424602498379074371898120391093939972232622694970212880917184900746581308049695987227883887222990740953180415228854051333864842048997695644005446762453184513712102304138774988674662728572142319592636837321262541920712808340957815389392878294779564750873359079710549309848449141705706542543784601321044029914467451843064732201098548116866853746219392181341241414816797618848985334582505411171531974857458774373194903174224550182297908204666524458774035458991006799688117920307424400427838855578099972026285249913754632828563984535086146021860978766848250024249326812308717107371161396142067188784474506457049695594589179978311271917744837488875681006710199616940292664979918439064440267918852158141186397063513047351693356137866230275542470789079495191085764735571711155502146648092257152574078703772769184494525280130225751752181853052801185104530305725471540304476828647440450306240136269680673335407173263846332164334599519024839021164059675833096329885270653546252574521511544701116863419254135365394104390212607715266416221789104067916533689447974910596996488121746175082264074918680799892781902296009920392313818879828685908052341056720853811074287502064217310731203590509130922673295432480436933380026628403313742772963088927586758542280178613450248814672850312327416443040453607568847928592453641211742163776333120698334529547912273540023631761114422140753174916078479636349004832976343185574061918416257323565953579409664447041850073119315853269726793097906577716986813787400029192775769765732936514343706279306738238987245908767433341725778527710719155192521715119948895242223548473181444058126641152239405681085194429497358538338250972039601773507208056515595425553536052717248928997989827222594547483205681843145849899617285923979468054112915691822558571832580869041672833729981200058732882090949033889996899450723250139696529374304363944693560485524080787599206695483005457440462451551635869508688373490272881509574015920839318980837358605386266118774807006573314084369716691696732476259390505628682066973385863907281318102749431880210587806855280184736697492729369709493414901453312162138843316814021353855197251563478673258844596698116823796931955414257758255251070339220669617671124268928656428942337157722408732940048091226904652138922778766737545396516666797727762659815669479368106849443680789881528988936843762864575731942376792805272569189935425874817796864343105491193056168969430407195128650848626561490666967451178897978491042305056434011937391629289538997982907797649411578690005689430220624971668943753532563248790847523058196091140276180937266827250847139330605398332017032144841268108114712430890996432957561007012579409533572996408810232197113804342085505831705245009113007944731704963040262801072752318523007789504595076642973456179254612656581260192518246279809959828206281903737402206267952337766304285925816421538512679783924409545869271106664196819008981911982245852980792746594201458546823062534277897000325513852827965656618050454302036802782731014378420228374815082143023682083795374545078707264305714607472820234491096657625755407489687228370404721383887327953794760994921404152308799909967079092528043428021383246414983087874660890582491242779513730986679547959031658456908945986952935220303660814817414616485242009345306122415382099213699165004383969212177685695503444963471601600642527492161152373996451713470430006692716527827788994903605933490275293238697471285470718446036444559626261638685642007504357637977255182792216253535785137900651204708178091263437689457533600667627168652791377244433035946069297214257854445341551213891752853759660004615614617493352051277749756190409323064422112364349354478821544788787085340015486335756173501867686475857546599625806978238488715786925987814534625310733891903479020558258573504262479852390761691218196907983748477023979481312920821815742428851057601849523067272904028105176494091114021897020587233513122068100329105969780641802203717227587678949309693653526239704645133675686064241545053681514411105056651070477930850586415390615285755665896913055539445962742286985428705101335586020316201626752776634018853118137704199386173296018278695313793504444387850271644773660577196013815795043422534853228655002988316019677631735209634747145661177091792266093834766067319190209206953532105201122863364413668548484679189987836505249884213759715899013482953508464390961099055886122092929601778007739714509443621500907871023121755086555539326926214169423822067759622643711336206611534135666122106334164355199996634862804761174249614195920025456271358118592841955853353265079636753568514429337391516280565001554471505122665146513263147450339253815748146294783858165456939889302136277189886199227200867473097150129643432813301353681573158976771698524411675047631074762419495696996023942498525921610449521563073471215069620068596077396160572739851049972229506359801354100340063173731151011835478457203112572723093596487780295593581904724317355385994233789686025705518928011258461664612878948629556172536307447108064208478239414568541867400538370096521383960874986261378601669546501455587097592937889361276550199447061923838871250962167259907751930847664030931356505944304219675542333357763820643608331282513568381635215679649609739968139014753191527398136647929518649489385464222294929064779917974108264995264357008212044205131704795779258889062371633987894760354964094511522733059959044657620468512928784383460250151774012804631840070907887831367233012018385490563306248058604616654637270923009753654055381893326839945619294289891857036258419174449569035079594846655792754976250561861507718414968227946459669135484742400320812589617770249519239712118787760088808923541377692041784932495582211623468957829253410989251413472707629239782723181229144736843075341319807192237542708690154813800644102814130529527364795047911846563424994451379184519097790063084073836712011661869394985187244985855238684515497089785864525069261512029252263988565814196577462240942530018868545579457814244405807685179068674420386136432588083677627845819129694816652019990313223137228872961875471722037458585666362708075644824795949726867817063842755877025500861864613544382158191441917663830401550765051629378699209375476917723232618673391881621126780380519918772417284481234208484982225350362582353889641570562299549681976837988734909425684666212962983664866544332916563579158656546266847806991511649730057613431213929696036595672825921267225955694086101532297660101264637594258779850372672095083983865619922647513444018289141213276548741748039511104825089714064786796770657345222453044955370279955389433313449416359234246915344242181271911084875323287609213256794082569447359791451630106443284093240944691226056069530134171020082863471209430295361197564328303019218825197987848409433877773085207898004452410918932173272368882173399406872254478483186039150511821508936692699663140151298759972571825253036674534893461409450522408919053219993946196119984049179290664783006032745007067361923694641791819614436546009898048262077281877992519198619865060457537729235846431421448930139008743652394985559078616138703336317441594058749262857310529496018271116254585181275383759227895014594637229002161182097797665061447343109417158707307378190107763149904480641958307000129235979313044348826099848181193638832707615168676576990389135048435571620957976676147709665130417881446600159955222143176505353793608195789735547160777195381552808471371766227838144426757039370133869964663483416949554054561613123632406381957008874838816862270035149948565305155156389295394521992257582768664969312663923237640089308429498313791321093649379380354730625868987507007055630787362570801647849644946280211057159750082707509662765516370448386463848356421045512626012813289080310237406230380045740208850515167844677568478025364925214650715721647844719605903566017007844109076286493801259783000130175142206990745481986635089473217949982245663768452726435093477708949740612167804825166184415822888919629467835104885470334459584898419362573459354740780140194144479107672345870683120159887566508918855605784569647457455893538242234475119943301578435552679714542976342575195810600038505964680361684262502541589972066709548307952215676386947511390076539647001781058826111316857691274704034601491440867351875535226644533709969407063188735508283411731504637543836538328154901298520871543577188131474577470291328877283817853843400797985482645454018984974501698185561673413798579700634119271284921093746252151728490640125840874572965355037616856533602698635695845199567982748306442443666499815936380098259501089894808982788485615743574754392831702428734508967595873193728753116372365713424689987726279393628229142808491491596329493035466861893751288442134104995755703846471904120466956858184840513598462639767319434483712158965556136590201777423588529648193759373170143121078794177748366463275165528374344072263479157126090214842906024154186419382375294261525395891568307102219326281194068596121362705181433819178796160346492560758409417640472809249250843410425505588148694870392777376802974275028163537693270594708937606807198851871993859295659935317131046023837988551779953793783494791644387405696354361876997834181139434763183591088098634624110212869682012776556457791345667924328169721277736774725662916372430643771946260607619995595523795769776494463692345448266624852359439941997374584993119735729887913222961866095779349248340950247233834086071744935844219397265322105835398280973692522550855216079115038679271391834152771797342149967061677531510915233128829810622180608220011549739910151719397086649463403906109460506726297109574586828460939690977199534240730605605000398086649423317889665220788763705217021885864942349228420194534591359634507764525353733034563183043302455621572851524141931977636129745791711283428476301898165427462807761341199955798527743533136128383050720297234852031089111914387528064533490417060410703897338699157558163605756479686055803524322970655567473605230432706830147223997768107853082915119370463840678976322782392839938995023319353024809059688765964397307110024480726150856152479041072655645975877205907157806528483182361794721801064886615659078474379683103117784172674833828187295058775870342755078385360874182773540552655927544368460980831717275965762869098965862846650995780293949904479640704786270748125606080874736850447239919218545717718036694503743832245674697105789863306761419386866241939846139025179425191226090834724418145134935258318156445305476190653823648095116178057551483007932360585824346772218730861084895934642622763690185418659560882819835594649961691441086387315200908360812663795817119416651682890886296499059213950293197810395777116434752788639529422185675381144775773498995984987426592915159013636335417465040143303955529484724560723870704192572359441755702693064463958185742840037058948853432548802840852718956915120486188658350542235412266786541904109889953695467434588161214442826355548213561433004858188748982362625795220880486563854726951523655912815779591023430244224777364508671382047391099812060473272570640071559882673657145074905442065518205042320776639074906254341804538878206624200539012296549523375107877465865058199644202715052320727766823093580591756467515865475696054152589693352932558549664622215689885161059404534297727959216047674922494455116029546381438201024445970738717705528162865926823307267966862545011098606805049783051159897831630500403572803375592734305349059935422602144090737077657531623697561867262631456811571007453834101025469628368564243165656474200829837330534418197722739003572368598427054847525841659600913741960496792536899518858072180552980509499292497860183492212396224075437578985074508187035846585569322699387432937079239448310387041423728321555028458358571966529199652359307646864014939854826570670259236185312147543259412713079560578841719691743856136161006211486085185846856796251001768260860783338585352197234635694145894934900523418443683422166398698314431989281701202135546628805175528411979223788855351914133147887529635533678584635235303627093902267531434242003821187677330748141483395009973287723965926217416629682615479892243339067676780899511221797182832895163257014076866463730148083500855431561109137452660100242194554205227673928864274401042829979261378108215262820335588799325131027100320439420466470498587246700297565354668697712173760968405039630887621813825222744831042999395534510057126827497873981545395382411887785248738747175542189087849581500391162842962964471424109601511442776897558875815340517123931821960280044751507303597458474692957218856882070024883689467089651516437851168598502252066736968827267087812848629553454778773780839630645029923446848916800545533360825164269133292403167940583308693475620909483415861847628200165988777634109692609629184731388855077331480809611548905033232326602573895540043522498117828250748521321125210427736030727439364130969566019956822469063996827706753946342694455134448528657310376372951575823812169119276127781188282992192495741040528031182784950234608207493449833608554502360465286676942763837475819064196444479292855432219048626701499931911189868582951185471930459679671412246584690282260977578209991383542858587070001976525342860978119302870810209385224704079693952802348034546908396253947971207582857352562575721551899403412851311683747943140347634765503803410280193096029592744664553402180974296308572518713857842444645340201396673110859420522209454284192573966898350481671498458855027228095984277549320227108280352577877518066741933566887682567772201112843972967391941372066208662637191944022135399551934555368763715305697005056623553132963841972402391804106466561673611870972163088830308837564520340334260897884178063786348774133039239960496486410347227511808871549074064827459917068862442625771279567632496126899549787754829685234317932446839288547758516869403136127449049956327305218790543617423058854435372492614552650316015539084453917180544135233583584405384624931316424324735560714267828095656801722858482206033753273196222778002052852436694260278523852759395032836997604380217723912826246877656046398641711362405236225401586090246198995518972443487561928035755338412302216639588529370019037397046669277281475498088996150024497416092310637218401736893326292434048709066825554194986756647292715562898143808018431896038614362967084777338833338637609761864604620233194830530596083232980793691967895824358007602161754608663108164186788421373285874901003947588160564177005429844721295392782758528320537596214951819956331166808610269069764649596945904370503661236514990605307975626741847185302775055882102623543208072108934693045201021161882681695785918657366704813737208964257619517300606510299056185447505005179196053885256672527249872795715438443991873882290549559055712865817671224300645609524238807876241915723044569902719225525853176171573364122859790946366986305823233526389321199513849461083447555545727727876590280135668744032986459668415591534473239286437400329752604985215542697554840326336349275275892237337401052215852104104511079420686678780178588721032123902645243265887900016025244586538084272751421534996688586226919563614450666590281646907899341307273366802071387757370527620674475442180776914047732571740523247110720030463400865831480481051295038342159736167030903186132045692145250620215772867365071986505933676626500068667650421613716892076907799684066873251366658370474741584273927585242122710760392274221051562295924230045735725102425261562267357023442975218913809734063401698442285134926497043904617626277837032213829689026450449086288305401253603849672965136494271076051523270810395994688076668070989072101064683623222189970893017100895165078084748938884159563631714546948614248077594974271468234059402305811161625162658659005928570819914095727849559304715154269441411322474186997322056070774049852508773557628544486036682803500411581161238294824668017993519598955223717809043292813819757327085072126842749849018737848424699850795960681570371870245208667984076538762576751497167799739714676876327036312062276282175065216020115780481851404390867507956751298628356827205754248895261037654885248966433289894917629124173848156327963965725671164563883876736421608694242189065057914860714817602479395293647669474968428927038360525288168321788556082243094172646664413882160480811265091656274500017201900858406417582894623692436667560699313179907144931413830195220093697461296251745833205916585820551438858821257346911944134627556159418860358662575658693058387129969198904510119434726377582941232198827387908464258624461430393328412354880570507641082057245239330564099247342831790159375486441723040794577591172111347554872250507616844612263693975408116325999365047196642688265455290591126412279088153835005577484840980171013178511075692276200208202087170089208371009056956151063291052306321776421471254064956037758753203837494178886182316838254155343739964108711803928070656944390331135657452106244653007850503782972685941983414921279279662389259971159281269177712673642161363458418902993939500980510641034386059295612333449297133112501226035339128576691599334261245401597456352969192655599349398981686061149700753320025277549089476062323563141042288445787362108605568253146531434340020542236426877016488201182699516807709967149857445506119937543673112043831115951013196405617894495386044430980626891056548720638893180318806040701859689077872006322950244581299790731145705398830930198087636008226310445692940202782063414871074462751382059664726886857619778219196784246587705627411333927240494803292520739764465880870428637110160693147704478288925960097249743459931309163930380451604879231410026002883939753814538129249696691459426130942066464338960222295331144644596884340809256903107296571574065787702179856487937173137434006584428840956627993239013481134266458160164446043335859284911583538625617795821360763629153492159771913178368917764793155130797923048889745927924978309084468860253910879272851038718107771093559130142360694240848423216661604193710847233677743841173222449368569073557043308291192493547368239394006967008969174455947787218644369822288679231320635613610579201384629119770863255259597710142997101695825474651891526976625308437628696877756715993899397310549758875974114513671288601806150961979163899239501499307706730126743464969650981520403179906367291508339240945391927291946714187831649535073224281633476721244123799296924963688965291661339543607520381102024249560269316717748201024941470412302128310976161629374244873495813024534571929273146360541134856760455102098259102931299684186751273490546462969293070823235839572365861335429760268291432830217442764673935634370755053939820281397583578585713368928552802585208438249759244970849953094940179876790765954536103873340282749815409467775997263470709917842465229989259752109812891708807815616988501783477138696656907050282466473344758488671139921271421301058424811297144647321766299956758699394725887879601425532485182513891033694547188544548250134425158364892452395718433442000329648611471753826298663181377843514495818993058397982089698155823824550503102797947346664535518326686738938958422115172962836016697802398942012938649866978886397914894840287986065268531146852706855011432508558597097988892301347490787490947214987667673674754861014151947266661241139079717450981327953331055956038358250231681553547075932726519958478411876011751371684873571217548456567486632800362533720134893947500175954765920163331962544126161964626259876713722579215657293407014621358995502739757983772567419588029679653194163403259214646067926745516728468518179426593640436029821740600134174537032551543844899746945859588547733416488321766089095670700600333367709904566343874380885996034510990174073901947373475366386583115924870239843835770647415124301517209253699357559142470457896960069014710740782235544561796875497029289529665408555564071193289048877136060256919309002609723603209192540919862029259422976242960512208427859428612975977274790403683868434021803354282709241600633455085889605426232970079085461579828188052938799595475332132709083304761417362691563672216528178258112287611122247428305626252682797673885100386457698503580542994142144687362102044887253232171149463708311723612793173374645659072790091228359540496979986226176287588547599601057097962146337963088059648919237655102209109176241252902061627077658177102854302722166562779404313630085036553131169283917902218905873986943227082762553994711304535246123844574082186724758727623190243195836128257660985892675770693066666730709977042326883022027435264364702437232599796595366962716938203927510180537462947545288479430016194383718774987581510470272801758971077861681720317748366860078452562227127932553408017721267061395931136804029866804163036142576743225399148815058705722989661809261299320884716584044506980615991591866997554127743962745155578965944403244502749627397419943175267838995953926597595745862996381571801340832334648015797902934660563352358059943038661204503897602965024707976773934237199329593561713658315310350565186251652906334614127073603146298549681601007702953989122867337481725745817161962336195858168211541053054873137724148853607868218911793965495195829660611433993568665061907604304309082174194772598119648185598654480352681400151015584583060787354171575271818287350784819579797130556754587144902633803536622142832565301127493134611152897448734242848837327577263114309710164868807444338723408085942269280048357295118286232976386989238874624119490813120875698047727192010762508029639866160403958828522807301107014072587067418095105275694599558136880618140955364745900998853566104754926552710305893380818629062826023050500773942748135836423834263902885813474788741919478274087726612617739903130458545687026175695861601268338048793095177305049245543115088972585413323508193007973061485149054888859694870646038022309176192051107036274486452935109627139904560275732620263946562452988375098514226649335771903062820858702866371415014956813332750254410305259311700015469678949397398050578388313176859604880762508344001301287065209770324212047884209145487756492037843075147027250252605831521700271920167189208432799061925099512543507405648651914906912396037189577465150265818863055055906920130324822404250614390625073105402837192200515908336508433740302821159154035996356555918495954727571172477228558998902375237206487518938946618335451507787686324186023702827396276563382988924063117948928719550834225776600539670102102077753415016615041564542339291949165444511419521937993643748645214615206843791913467232182909698421804577272543423153080553099022205172442336539690919939070074029105291132820101974721684264301256690347045989556017755947176797497715123134829157926608364062958678559931630455026549231787552197812176110993350064799098943203315030571727010891960620313473399860210387720140822394860772349139960395874865492146517839055512175189580237820529445775276346339753780034596473382016433468762807820280141446649438933757277945188731750491714652233652104397194772908800298610549081125811127804781718228788884924150230711231251941042578065511637116764627932655121195628501677679625181900332755563989467508675788367698653898985686473427101594930876155298942368282043389790180722815218666421485626664103753158389567504302392201686873812465470699347150504927991768666193434131884482571103927122650912093866852792366089719274768520533345458913425088881540254387273974091563653004620110706916131327981178595690756033335075659545561343089333329514788920297704184935922438574731795587827099798165111674080437202934835587617058392353613212485166821068993209203251967342635276479255933581678171107159416147382730423615576827620998727421000424329013086712845836696563928589115907660083122820356148201887229518475691329407152651044735938026818383825629606428747924735892431493749210079773111240502082031375063410898320695771477065385853913423941182988268961956714347478995719192698802908091684422544360619096771246428707248679733853009161107130233769583368640354532631506435141361237012765525410046355898682912160744354162236743998789703822370148392424545627723992829081870801823852392630452607351326192453777932998456667393941255539486374220341846491029904456470791282079863545678795467609683319759181712372988975463499163047539677433362962205165952366449590561393429331262926061893464112791937972705895881459646389912373537168759919142552772100940314631476878593602143127108648421635626013772265617557192543788775504737179024566676249575110402646901009607302990416908822604066329349292935743195452336815014345337911312752330678691655176687701695161141761294187779330882819905280344430861197423043956848729858586546694308495899336179765734858430181480329439798033091000436722768414344238864445901797274983433471470783576353437461501751630171552139734693632178167845853139140095615868572185141344299985027349927744999563890595365213610444451878420084396064564221413308432408646592722648973906601436980133579873974040835334512568711933646750975861691112056753216632136155663391564689084854632782197285530999579358283397413616665028650925989292165497646258372358356455414886532088049142059311131204708068472075820035063729704720670469720774210518198907609097422947844625778239244004389904810947860098579448224543414202434563289941267349114670889854883197005050644279356524279386300018891843283373221077762139383639253873237675617044816011158741543345406028320230148615569618523033337716919985744838946890600170373901538957090301592551060792727762219607086076241142513515892664206269139887859959870566194622425908385400535799785259282099607650416860636872663791052339280139056862102456315059105027603012569398591671085017333433201676416251927638677663174633847189193721273605403227135025135654713492538251311561149248706070474668389262703017502370407696061812789775802885805693765564765270174229431556389743235296389057616879174314298703138048626353489501752580929549728329766546548195471225569593760018628258174809319922340219991510536614728014503508375864790193146171073510676008496506231219696849301765084543537391162105593710671348717589337278198950527343854684708412214805200278613041866350421938992943461317267685931408249108145586251393872864625062143626960615770466086087576299317269306272300687490445784083924151517754648637991610056349079972307333598622882670983142410712678147085973610856055980159544187607246710169661129999811895298893970284047822724077562182307717760057919447673060501814809569241361745730576480994489026654601437338469330074725208373579795755789639852941586244043208070231721199372446306489291383286792798353747740721666983729095382555436336035362800638355611178066911762263059317132605982691629391095385207670327690444016362207776140653000499502457095027937079875135967645986557485968737650285387394935357236660995788111303103754086960037217343548919312361427137863233321774251410724918283903205802985610266838175863428281183470142258211450348170796029057726960561698465626844081129457960915656692025719583731943981603229120123612821457434723024669549161438570948241028543051848638709772622199297765136953829734538228039558900887618089505446836463392748771129056026958450855724013788183050975656408284373081717897460090852111077808383051113842569754186033668769189312021028967442553637001177918069811477445166201372109426282022053132710488850076081445918040743687465526751440718145362718310399329096331284261844034621116358971588368609635774251769225849475194231840233539305453498455813086876265664989205443777650667684304254226287108940672167137423881248913267454750756287823690360091827508353661107640495508469575533168972167230456695180375478549470609064169567887838724638105258750287154842927491334132790034390949601733214956373064902652035523535285115910021144294424104851509279104025297483767271608635720500931937080166917792303116594507083216314660095302578084094685527298339038328301853265952484239007186370643582070552146793697114607869997079894449394171028344783174390722257176989085574619274628623498983393024573608149284753761999530936684181284797432038710505302310733552577415782318985413206764142071824259725495344136970737722853765262325472895622167662669331391566068199295004643546422262831117960659174564884368767805796997111349310703402553436611843759059260233008941666135731905816078599988316260282181390844198734393074674055388392733024901108004884586080691165232535862705242840382968888659824391372310110095103602251217139701663956618236086255397405505402066219212448973769506129288409621948454341402007941390722838488468920516417889934844540025702313664914739487281809109390651365880319653207007285238857162025602906488029803695840665338546690029015462198088864296425228946010262374895724897090500282075878168837625701007410594099682867087503845634199559372191553924976608353296910940232406228761460112265176170303496287917620041387317112024381807628185108905002842346459037837706763045273045814834693015392424198257401968560848085137392388256347782889431122244122870182091629597280123848585329396799177762382147190976694605787971887841473977245348733062908383756099405173015875691460005618125651752547115965690931155995750037027550284735033417111625038733707165403227772315845762803344238664901440331859617965707283177288258473611549079440291291471787461478268637063713846183443088677612062822090078876806661474591462548277482866226045220993581622060047012539171183989325213845695194015624646431270243101238632293089592313774091434392096845948592842635200769966163961007345479916915870681412249832396223090773027665626559969494250946406381740874110643658594421178603940172643887386121455203275481499559989726748481242516494502813303449014918762257234568989393463257229086998673249027616855576077711611576433613691627383836075687136984396364892937138554257273494659103332772564126972735039536434770472053289942756192454179292874235595619338175195600098844535196662188739303962317576931957169637259935524778117149057619563512942680819970946285656347778422933091853120292504268975608868164641966177432583770707661623433374793985413166950620165634127102120428641561239358874298809206004282313764007664612401525519603098797751761028961242278096756891108001931533975360852895963074231409356246116550671434163607533016772339819161767408073454461022555337589517563555176500568564992176280247917086983366110443694285654811286595376781649275017586165638117964147832718721096148905017721213798707770105323180975928634644046074298943079580727002159974370434207249917845165665830961848526666727663180487084355368459337151123474381998596086538836308320363229294091940725550142682069636264119014809804543073104225230020466667783374497002336148444453812156007769304429533445096423988471598901506176917759472172274920416762048071749712713551638286293627604567417739469593489762448465673579234851322283014217284500582198004454598202094980930971306044956603241089273321696803892903645581863307319997706138990653150281426510316643068674142840057195772961806119585616710987772106944152559439893390585964636703285419363176013017447857330454373946324652039981130955569153849754948418225464592214472689103774355024904222413833010776590142435182394469080794237290501419794615922610387637082798844630189144992193454056323627008013366524617878725070769083843426380109031439263627850825626777554714993237344725522056552332675171151559287625496085748675971902326541392717182492086737765640129847416423507328268343200619316948843235209360603497882614784436630658532442833201734931799568617906399207004686444883940991221825808779497467717707052032125787614506138032415403620810890163671986693601714709872557878173886127554768171108986577277931480440099899414569074711377614333996531967177738092101930273951564154399719659267624393012447002547352567933091815455433642287566994726254681572005818217586232611824373408548958368576646351848475079465064305194456167703218262570216573597521935298314881073596103205623350196525088910630640891015244908089207693083387635317649313546587511179923281892927844336136727013335942600394329531912423634636122342241148777061407869128714405318130018304477497914797688827463121097344797636772406775478703241333753574895513282366558445351274717482907851285012066200401182289873448706389523687780121728653867035847997327250770052349822385375027216492661436140554760349234626175323124139792643027954630513987786939624020489054039720537675798811456091321881672056140850924967932532923636866787779343988023857302869852310790961014877796912328450910196625946367494915201713982816263973097782013911086044372401588746007579277119486288775288814715857404307043827729286538596883322006688663206079538652538882558980600457839011628461430605086084747075597364647401044238483047142959137685715479160018773715988628171042195889730662576705488390101157936071505546646192344898136297296942242799834538425574135655953113457245247011596739160640263978430133576958458593595372005471325314615246556031051460200986820939824128273073449019402699437222068629386995063451515198504114869437985097275868734898601452250887584431114388157370511933756418002673656758723029188495274100855146608340608151732843836879230370405626104948076923102820963776201107587092646249780565162416669276533141362068925189514968717399829281730518919688224075320778507614067616889947494769147748934963726220148356553888715926405170828737503010963955268897794795259332655118963057447065579273982632692934782989330968021438349701590862381070884859791719083110870009170206015457706401522739864207724042533117132603277627410435722915951989795859080018424441733041830322151235803579101253603873746463228003091950117494837928420028786007679071095706267085285295522182251169805620371247486889871713389078568952460449706113315431107150128629504455987187073717206572889615705228058138362053395776852318285457269093814197833873607891578485508427497195322706125946175457863233118610600839452256068797208044567189512114695314146634827884080051360174153798279117789700060301479382558235558052086133026097260967613517010032545005037680217946184152028561632333538616786062161902134431861915711175290683105302556081121255841418390986843956419578679834001678823638256854522306670975654415472238280013469861555552445318176404299090680378963997676479219699657956607534196814759282822406673522534944728894840119716711306958434700568151463058877133376072281822335407960997631539504202730802042842368864206397605484912865334328554755489638756902414452225692999609125544975141400840383331190901992674794342751192720867991542916011201307725476847408613198288752763403493446895383106799100480207281847858492115496764313157211699238951519271487532509403434068251327011090969119503152231139444304448749271244562702803791899773836676974409064076509848911422027053904798911499513899369345910492488239818479199284060834068947731066702839110111727770634771875726365975546404436192995111351412666884361088544493833481341406079746563970113593620774519932384730454624453878507442467384923825856997651280712100388754169568690111406134082743120142450391865908226762789804173401360920281329637384109395523300508319642523679675691549057938761618930307017233375232806386931389965115479627092717097952328961675889970401944824112808751048251975645209523137210746333760599909396582515586414865224296761642849116139871990086530016931161240778049057975127729354189616289475676354839801178216930656849446714753781254918274767067297056616857070702756796790570306219782044906172158493680711915244602836371487188430832985551420121487788111445798782157133799735743810932682505788491514879526471792000773218935276138408936613893177172540090080490704020304134424983489245215186604047179694378920981487003835312225576856674396379176669071701416109110427379198200380136687828424952829845297642489522014165345406522423360108728472987385460699178326241740704288068182945738367371525183141343588007184292334615112566341163032476748854734781744665746408327262603680290151091447911338278632704221835277956939466350286331282771778600813637163964420214523221551932947532681713469140409311724925234402165295944003238116813961265901065851275473504345503108884080306360937321048690536411611398526573654927409975803061649341816346098103605602585790807340212629591973944897296192145881632700892646703029246187472979649024756980157148530397505864783287246086028037504865803567545611864253042871420723443383390239666352151412674448592475391192950997620509087529790970014801259452014244223574814544880294722939393587933865227202410215053820568510622884247281342013885997445496622730286233285843418900299359629236758855532735320371199641068696885351533470508352846102564771346443028253204157644125794002805457430006302102696377820632318313070627896150400016647831962449200397358904813405485129276153447752911427502767397435242078069070527630692245180951327763296192532184909900531954176606499680481433831014584113898430978469720622202613874362532810062607436584868864991815026973563146550810615960636985553873233341176204809198821524204745843175939206224035333914548884140490821281496120756763647590309262933881865039484515510774676009092510356091475383722667362766718930973996868933259732608230932550186086673383590792609407228616172333816168673949479892496390488048310985693827820834943013879647059529777486744733912681936824829024353292344869473456429145194937069068783318463757189713586109371633284050016227947335102269284110104497412627336216420697179383113438446124864694711535811402031047526869369353553727607070049306567544580392747786847045632311608703058419280243745989954041329284712664246989442116548717375667389717871923225110423894315535382869248015205923946936452707699741021214296826012010387446245912012318304984328192243867193138497720059070638072080783450565540746080664005827491887154729772854926143292728344912620252854006924226492977294949314243282239091030360350134156810797142547892007039444142067855736566378413422434210746000676198105722861580338147638026668788154589982922788407683695433372142804001460149908472511419634615073428967851538073547998228936769356321849350571680474097180226794108145960464643296188918385764151877046448840522046215280959433986144429458001565951081496290620813795468442054294642796577648198909106220707091720602290254076738772899166409357487871202502128772104168423992186371301855320230962210684742718942987356196212086270588160314918409307552997677130036178628802826717231009130285044130265655912292922612505062660126624189452070123993420277937490085420749130987744897150920590205932575535215039637201464561448063280938104013055231417962857289982898990343203841129676336565512469468663078632787817921469579860865973378757521622109396812543332597536043449863392116755871802783236710273573851767373195458455388731354586958501857224846590153305467744991438448482398737784235147629051369792034803313578588650718627246091031434640724480510941837179913773142367344049450919554736069022205649506023424116706022723355395649307060751400529822881485829420068274313115251566989530260157410242575263006543869998247952914056436397621221515998235414284465279560866349855341678748705036784920027751719997937405202875031019200754247061430509665199481356586396598882089003999764407555583248273761330089286063199320360522274307863642759401201693346132880942095139907004295095011001583185958237384735224927526279105287049424039489196502896470490369608261484966201959275564070958313607396024306873999752846264847981733039719533765069095156120884622762957411100892817530456810969746588194669856517704052928590878504877522105958572047486463083913912438922736496728962216187923221903846266710660260693719524892474847500310260394922775630510352725987868070972386210218801580095783607751540600857103585106096911562910751492375933985304669774976800576388585139302383902905600658914822841876073483218698941121570474916007094915866082765553750995392820137737057920329586501716560538831764452356831613133633297931489888051056159917709369152202348069169804873322233784528572829344754956821963553966481628450192872069492870520024498835186940706692180383662118829996880214347285261207191687964482914947260368672789761259405931558753196912774122231157579854182756243771351026958377616864938049620230908074758304089788159590482017332136031784381274841859149524201511523472688180960320959379631442020916572368012133289099272894542136773820135298321342429565861054103448735860397992896177183208856289441252379147454093657434752301975003918270065298797649696119451266280923163051486075078256229001982690620629314727489302879371143605647674882058537954314955723805840825668187373493487036370746039338350687517619258710651888128157239711483876789680353420534482892813419665679570126528253328094455577709933749934990453928277784155061477830041113221438033756303823602722715397128985430463259330361769804669971686828852879055202013570474243791728810628478520370906860478038846484659806476030308269998813209107515983928473152840369734656949772794657019060072491130627566505969398614720182688173976447627042177027617312047896534667383102909622300181538218081040705792800444619468608723604508400281660783377856294102210990726059663127077202385897749796809496822683321888082792971425045549741516520732971022200121427826228867125925879722757390520561281627844543692523212355984149863333217126687881730359505174737443024502878508970282522903143407999825818636074409617177059088103847885010528011286857618538860401734481200488637700811630490581019046208955793566493082392485729823368101473267258997782579623283529157473188718691251962360289900603334159473508737649276151030356216319004743753477815604959815620146915085317288217709541365490243008907783147859924165485128786191393742667691120904236259206049278109156985713046374093343384594354542035227479731977466019783469805931386796209119189001417895239530317756853743946622527738434692582333695072533734360958536095329323261961336355740287178643836713117350745675257555497002163171909118162342933490892741556983828895877325144881908763122259086033816895202259684921324807596694748799648063960374075181756345448611967163430122704964955661604632448007439251043428487917233980559716651580962896868953408425743216733540242749852736435469246679462613568744826102732366811552292878659535659227317439352863734998754996412588589847064441655601146416723710818626222414272607880435510363697859570496891337423517158949028930428438931668878790771124745449150141621933796072498802559185689816121218393358359068754781547811457747101108513984736548264772186289059145943409952933220458200902569301990751637650137518353367325638044604862505909694975238808486263812184163395145509519595671746226296613121862462607588975305582854616565356113585264286747171682850358535084025683020149250878376603244572078122495460260570193328289270304451874348477125209836753106334759378796636175034065495371828068774148208556636227632375817765602286339823805870101367446449495549924087254714293744805669302604016850261097713923158268454101728742731392111127147111163614463177470367975754970945492956410441750857350576309603382404708148050055019108620800854390861091841687971008013846742492767178608385044834583087296237587774409223200927708684626477447495755786310357019642573348974878716873377092811656814602971830843814845431339456754776599461336081352606629527174434504739224617128073291148831905918007785738018557300267386009643813595367760847597050560112174833668002970871146242308347359758960251028469132694860993051357437974308310224680813396204527855238720039616506257687432727629254590659891174220849853858865015292860073449288340549104832900430443974460856146640010543285149713696994738106464663993011520876795143505430944641845165920733615773338607781964413775288828149190712938615223417849273753427138315033923313206313880615668158343153038459555174133587168350788628336419217267943379861245473311854483935283107293955790750066520356236921907903419089858255884431994801437832829144184773489051699902648630445165522895711506577336826549401886761879118289585061123102872238562311976926142098529734138267974688546499074208387351448001299334738634837682989834336549005776772802605786684192549351046523754696403560871677934603185340830810158378982966077237873709858853341085972767946160896171676393030581850288549279273377111106907199687171650800117656987223025679136537067363262959925730762284087768552714511840512194955541245142044614413509485835858337778567292986524271154305309204279035608429801464614411910288520665107237137034999648075863383233399328138046460920012341437095328202626170669246658864452702409199610742196375264588071960295164490574088439578455321702854590760002688914674772679904084644103698698665778040736768502466313200948007557115272778111126618156772358181092460687481002701941982039882616464262204896264151452033940383187317995821532951759530274241717092705977226451894516689012005007817717555455906354284730242583164630687883748276116435080902495533136744177701575336707477124987429840753128483406158621700337438400125362275250893357392742571188974497579817057091427710212425323972907593673907790244647454825968948901368807047375207421393518348630832802767965753494607083273119841671538650997249324479018119292530288701978927470044570900276279501861011680973072642674070028089972734849691069387620445838102936105826062291823725285642522102615361468593894335971733378724252823185610362073402481479928691641574069358547841621501703793448609745668983338454747863615083356525748548962686549634090392398551761638507253346184948963256511223103971057418899740233117702160321508894173366572384343265725477225615987555793350531199836323432395131574978109071820190084534344771734801655617099856378039710515303177334775771300969600317375518481622867482723642439581152217352639107945659942327913401400857078877827677171322015461016165119206454544691853882895663833384029796071396120858177513534076533853444579705755175325313082354784837905474395106705210393639265559786064415446608098671530601298998241343188132104477014640852176313665910618402954969277032271195721923063445178369478333661691544606315134708139102620477152275486505852307707655373193727710942925096799784520641274619535762085014691958631874878746732990973860276046716927788851251450559398635532247861222362494120394495154726737966731010486403580532626748939977797104101323055024107382303482490650068585572828975578579371180018955582447424706749850147797958275122229763952600209556457672346748157051550511947732170714490871878675933829159916930666261048826881016728531503715348389258551732698796860621780045760807264119758254879671677332603790277307563850163493767927362842980604710730749092241909261984818843207393872783639460268277503779379129310566036078028285662480589959450990420450537245405718998247658655830858239684031903808319919891400225567157754450603708543543319554259159699265383586494131414140245779778304380558912355087807513413417298476317954304334127926780783294394733289025247138626020231282861747535351121701278302756042098099403663822864825216906658739824871208698218548232946929772293499144242681594022788842775231870525097212443612681733384580224807368317448571826776539094401650221964706476353253362337317749949610031953199193904156667043637795071014670512473965072682649112576136908443503753130677647181054970693184647088426265131005446834499892823904550929169242565263336964771265924074051706887859274895984252129544668058554383327656437370466697971340253603626596171289286969016724076473397966437825473053503359795532534179922248495543238242491601448155929902173094745143411500426027547807367336500046657202411146045718294455908874441093263417735664954880712761356549440844561668215801055374330424431375416578090551862265434907304584066818957419229429093352194036539649213001198533996002276011706821643725165742571296598130723243684172408723274760352640891317045132332361775206014243357070363352078387056186811705874233916875917869863672154747979125660116075423522897712767545133859818736175166130141849510682540632404485390817563977528624365938045749460960304908032727349780321622725835442181910213926857236003561777590923101308675883462448651995059241041765865019504455997322319534673244796395886962127028192179227496774836537978473040376924473272033347418022964582817739754114730784204702870253426117956774411781873940551552747873554804258258291463688341376723797585184269494523840185544332085305068668628246706861798965936100251068463682490065582629267665028066609698092881054519796170847734650690556240562155984084182825807927585478393204748714038695438539128683660126363058841678104981183197096695218529424632177700193763608158675998340736064276913963264048789263575997620422952262789342707412697607760620966291233012355050655379721008364721205193560944838522137540307558377177626611566999093533274939278852036165150368475933356140366037922268487730495036556445221190353160833891949349988085349083808553052306371277143826792211606128827118182465890035046051990815961040963023304523299603059600222776338188217083994467893226094249192489095140143080766113114701926280736849655793337307036874414087415814996751908546851130121608790598371807686198938969555545527870302212330188445472811809788597330247888932962917117509085517745962238640646711223714601357305513875782304818435428907225816701352807435158770833124704942701947115175797460154658977944100801538330524726730995596496640747915116927973550297869760775792945282119145965744061648109850834985582512940543688579086901984134036851802409183446390238359960886661897653942146154187045864269183979076293365475069181120292196010462697734547537116302134579898146717969203770772866572699425105428326949324210129750620150570478960945221842681930626768544535899566106570476301087865921650085588971170100092102541266936044202911740915619833889833879874603118578854436792688994787679802501342877300235296917435496743749598177077454076656703460767108170343951528006860394876062679705654046977665526637603714355297500476043374322055262340477539835544428067785655669044598685510897497491378459728638379385583833702120099915198080481454785000740150114309121778685800745438171436332267942449844637315859111676722375695684945745450783002692584800005451324893588677385387902211061567080194995071534087637449145442582327163872151512414166090281978303862228871858583251419896923313595525747145648817030285459937343745369738591265099754560093855469535533793246422195156454624041126658534186150828704705786330829568962016896439185333842974108161581446170147338195460735511727390969753517909711750665796231476605655847189653511301094179027982393592318534231470669998444728272562294227877314522523503385561887873006005689197854798338692785867874019041680448860685292558269829319581034283902021630867628850087152703929874826752118092185857572620644749573736641578442968209994538474166619585800725801526103173247722405818184254757697117703961034251373051871870536802239470895964278328545890914813063589679177292579500696356452063745934128592921617875233901542973071130032962697471193659290597524906216119330277889725077924672979535519467925478304648522084587113392594379016570319372911239328592997314120922962387454806465902633320544523975139292556894604093323464072652724825764170046516634942259621054082054787928270640067955814569804149279051290760395601405276488903187969605464322280271779225886697403963435689691798343520573337904269086542108657480290637152401030734352105281190100065563862972091428922380499477438261222410212133392826407560553680611277163951764878993737612080912715425157692433945324191827252880289704920435088205942183622565651318927490501655300437850517027360372963644138886567636514254596465684684808595456959030317899004321026445816363248549107732893069459170640699858249891507444101180272820134756497412733531173262351126648278104511623795469764481948529043029065646847521810171372363089498042183343826104161014463299438092741827922726406788237888788983000313725977415142955284826187824795659081421689670753834547770164863598603131816815311312597680045852989482526345766972426978627550603605094148102183614384550789196817667333741011760391447827356150906372727940835411630064312067362042264210960831393028110431168293055542849430754874714263981185496569020538080849725536011197717627650969062860761564830917744461581706025118662318627703938895426677990182919902397749021936325786034547161718814287523192189437732837515553406920177736250266806438927944574063065273304577427587906786433832747992888034030605907652372080307763046634009898005752323461446451600268655645349495169964721812294054313881372325120799165297607403869427750334146280917418697976282794979683336585526806352671878020203544749768533616452066995581329434797876049913810338378374011480162523144818593454408047872263581768956305525146450195173058144328995555182327656014636618729853710506714961173564550366011539601920537592247293750726871422856822204875383931957971288529433860574048207579585511217153193887743856250193720666611296673643354907865860865237183183921562582895963657888269439344425422264679279092715465315271376854118020504301893401691404997591549361209038584707509443033118233302753136838351998925151445900689043802581436962225826615191199239048729893844649293508943424300998648882487664907402353287286664056800483835755886009270965148347653737918611218799717728376147063500571625012526031813114128390490735770757377173509196056589722150163227922336245861760615884147129509920025972250058184946971778718821073657066378733277940620866387753261048982879440187571398279825871463492575299811090312912139455866362892474358793687237849077068563601345681144638678918591924516403149850357890756791849841317179728217534241880784238878868844147643471253742107551159536280697994407411796871017350251107795582850700950792723674177930895527384964059394415866079827907949800915207306642996450206467674827482487617628218258374842819674270791118477451564605722593840973103298262378863700229734697391699886379457056320976216350303274474277497100271842791692862558722836324087976616012378959974181042910636799817822268705322601732352589643985243281323560243844922850661038415943465726450972139809479031940567590373886171919540416570334552033815900715384524920287910231202272327047215014538836965215833543307001307554026563102904414485385064796879111599212677333712314582435204261538073017843744378211211583548709136701406658408036813951758111475295716634006205859079127298635537634362231396379120471184372655792937551949401874349636218972577295887569880771083459072535652913893861243691353495945079015352873683477723601313866901125542101494831203890509918994104747141895666151531145394061526054756473529467421638231689368060129433258463633018676098009528475015590926864673342518723335788883945080960202339607112667573445916854673135055919943104687898887553745656510492421351268349274539649748120279966488040912861150168998524949144898113062558879042403180247958902155434033488821638159858935757585614096154700148938075080908861465105345431725176260665719277891607290669806397818773388455785727094152196774990446051623109812496564861332966811991754490567850851769590050611411624815083987185181410095631537877503370795581048178260096567421651750680386125960003080690152683235122508506979724483957622020174929969749074549898936505584788559284807903557532317538486349433726414247032878877253447722221297016000533072481590555832927098987500932469997363082035310470044095958834271930756336772329311879600458161168181029422291461384106779559351738459170794141037916415288755883381961468904539217531921960688248919219119903541275969528784950092389609213628891630461416611783861355889999174698508157336537644031594360623504073607316497764587708842971227210701086126678718314703237818261276887585511934843965753351432282355026996111909138650937698347994012469071906151462547109874210382351018271740294827130881360482314755581492077815721191662586564342905612639578064526029736555635172350906291331205850203997860502259420999480827096450693665264418280106649124862312557589654976596676968534095660854413231521236698541573090332512317491191440289836270347134284877499625922747080016134736296820001010562183812019612557429292742687639091589338889559657896414835111547730443028605459795976625637837642669099940788957269663116416238870740146558558473038021663867599114911950419835039133198975884102638023036841926775747131077414066758310437271073613502843142629360750653330170320120004973535367621022657838394183430430099053716314659324071050087773077262259146912196087818552683740589657109987019576625578929295580215457196518797780294451381442999873554815530410569793964645564519082539360144578596158623130846451852646877754564828341613985385665836608983643771838546605925609217130255182157394993989360262521235589984656716280714481221483556973447219912759765694738410896542421564762416358761310124297376011716188931794550565883543224738453003918719260717475905277841038990945032400082927480098521024395762819731558013468985421945679430687611198079211087813364909493200745600976513543364890585303715568669816517470583765138036376682821938479019165248324914508898852848587290588099645905528789700816082803531262494081051009455191080063568576207359975354069110233302205980343049995997272270985105185019637650684779898158525546231540613562568039899430729475368174811450213100958948092543534045391589356142131227929102288399806327729462704571450010428202278154583973023089921618518778442669940005320239939872850336429636563891499324946588970993602872612442220156171614113103210111666100999269696192391053427335685648271510076160958029405654057151277571015772964913258556722595207695664166404866935468521109226150765274154168605634999556366149462416246964034202108724331281220158101719591587512959471282584356611763230246607407442720512838818206568607325683456086284448539176599721778611198484971580536051167040829036973426772777130234935757810248239218020790980341620139248232730935781481457253838604839634123506809406788240147560891220081174878613539599372203823054223439705002881750147093940844790931311294063167106847396390852210906326488716578990438154927589048500058144013196978045138062209445979199327036224865012361133380570647295681139171023661775063195411395347058128175193225571510428099311991530277125227623480190448249484828850072551668946069820715954302345052118468655371909728227299621405022541107219611044282445205806537760134383390658483268930955879810415654764727422642984573284162230076229096463897049903017198500177057768791543640434103621080935257232403367681585218874121781603627951304767081621449743147188962215607376352742082861973240079530115843859573830645692861868330010926883532309661154159214716109785739348491835996978548799971235046043038103449065115215009704085528479906334477927659856380805284534773333211198043839668878545531536288576878762002047784446238535367135497115684177042851668986217069415866109293766406216116688371152923772543401952176765087426585732123849790465518288573623438646129936761755179430581026588211381491555136796355082302851681074394265643706752332882976820121775967398456991229236621850401072108877104422770143103849566333400762706938576432880547348919499534857949628924915989561974911615162890730085467663576950819732673548990721948970018622607485011038343654137623042644325073516112383834931739938937272286120194414075763527449697846088640082091599265654884422666258190845563824280653914176884705219100003652323845774743171703896454238634907139131881915036094552507320650114881638360501110465525571188194577227700517552137149218943496612244537773269191285133159744227249480775336837304652046435323635673916554290087786834245368942318179245876661321529416490043233617436323055491475937012954420574229480800367113109883016791038307685760482763949637449782457617889582075434201990361640964168143978849412345741435731572570145377351906903010993424353461778705592127091405538179252842191414478845464494158809065115300119104811583685885175801369405357272212138798032521186846257783565234011227139458691465987763039662120631528751779132620478672082156593089170928597917264557507084628180933988972808633082557047524179188340291328115409044578074392309338248003522515877413898839869531765283823963868343304105076373150753861743102746782817087129548112094317432581591013199477092564731389765693206629238827059570787473728387627765265124290241613497523481342354924860363979290074213633587761758504053808838154489635440204269782942457773583443598638111845744626850431745473129484516914920136733727669958127551132629622556267730906955760075720385763633935640408796590023387924302563492894758799781250009366646496283486168502510171870203277892380925929250557466516025020896070057082427228463510693401048415717253398502362022733589549147804575732060636851779835923433369419153046008466398870201611562673246627101389669793496619168148573571499490477240647820930730421270527775759779430426353458192426998117431796920297300111456011202999360079850064087910910815096545708569392815706023403510369006910160423324006257945682608004974762025484499648823543500983850520406221773944502885676008974390044428299220653264646410562145029482260903274857319749110337407501926998009100254399142092777253337616760231653494867024898141486152854174311804843997024426276060402207724324080851841805215749950690859567383793690834716261986355420832990544096363963155830608714170044507310375938310687297729058998266916348207748363113903852701212827526915830593962624730981670681519087900013358191664087874450676078900292899818187338428837409589133707856227221590178370867059876406992903406072945013788778608489213033762751646211890756160812860632530602956553706638445595689847545029619731434764463371090262997860795636313262826294369504114524814392778465643471692548047335251156979521262178300892706572101548322120479897865393647517188532722094726250010728296187490910122917683284246058561350047312595250765351546860456338632224152258447867012253726351442221467347893681095587252582250092743519928781347462330700279423421412641753809628991248006606721385377439958897030027573665459340723918625787299784390401257416808263484159622351604485238504185077307013708387203589479471784087145552310895478057810134169043177075099583261841766346721328177795786879836000202061764713254646250730913173234072985927101023033373817172395504110153287930800411077565111870740931170979356608840696021573390601919831783220087887733310664332332820100349639360972734887162712303806620980832721877803758778138126459161023031866753092268168251513473929633930362673593580293950021787092716911731483014157231143132002432464715903603244321958582277671647038333695593992626610335506767934517328747823380209727400814640639609432014322664100140261889686419108269108131108525840333095235605191625492801972370938104297768063507859267566009595702695386600959302292438056282649286931734331499730950016352770190342506252864838035511515132667766289738788101750990835203011908608184013935367617699266422910315431008459881282420719318515952683520059192305625643502843204058048529075887965669924929565452070334341488040780940277829561976551863963936159307132275189290299856752122189746779243284123147635006286880991933005117302216286174115828579405954497668997562177589118229709936104899521438569009434220057021571251087033806695977458917791177908333264326563577484915295344262198410509718685511892840949854300608074994979210281483364749791708558131257212065663848522401962427205828164703682667705467954071588964623366682045398591239115277918891860395761152018734926976935498769809205310773691680244887030038022772081658181000077903272312708021317698587199174494112421155895432019294928992355504893889318351710953163686331390755184819108928791387004469503315785257591728650048755710178227040470276160956197392789783200117930799111739350830518794393322624958591914820281775024454176378109675943203810452534828400541077854713169239150346234536109285229701779215017921442818211795065890557708472599111815893747840812289888065741374569482420582669187119970817431958510093954105429461168550883739868401996581784150007022164163656990892004086924331335257499966926946483147150327388279235637121560982155051721867536481388860568916603582925396030300273426812361642284451085263547239841055894260474205074138466730307239483204317866622111861804347971152285535074351103793779917367759021376054436977166966470483789221267038455037575677716398547054260163153555326584855611289905714580355398725541134100347807391818130548251116065656871594321271021053275324831135187814173613471683730690186909381218730513730864687075277415355557074690218700641168063128216295776606461579839059298409110530079601627712858828111302194879681267775960118938666156231253230735511506392389391372559179917673936055915385056378742802358721037009315442287635506890695014728220666158445689411264829874899673437419217938866430288189588852175873493896777577134715202336379189899676747323020547507596497176353236348049090916931146451588201650811168025764082239203766827683997809283054528121156693204025555345818491760323158862035703063201765046036385300815032269092858007296113393146401841877310607886190288304230752247070677698660834886730295043890685124502565419702770127452475924839294193725907919954791348133731657319912847517298717360083277634723777981354956484448245613197616088264467413037963604309721455494653486052859808200589740435903302492809627245408224856254618593280928740845049141595920071703337138963515955694433299491399445186110125398011843471268606586799209494225153885717128738836852649188812868950227540547779794898744380262695714321213583109695536759362411295482206179955464033533860210497900351933498383537456990593395238950551876478553284307368171483263732640351230325186055784574151499717425521452648586722841403984286564838924821393722264695886413896280038285133541255363473914808177060056895089814588970195454251773993996912506826464911036530853815369922165136932821799796759073562532058483895193691947456705969133050537453786384167168859008012297691653693799927541139778998836119092022783820346758551659287656880905215504652323685951302156436161780675022943499494471433439480034371782552604654686486135447158196606683672524463536988769056011223471882676862369299828306224349175488116091628100590894013889453247860322776219017697949007639301578003828959221453992340440086709085393783269079148055076973681893974836176732699300833408423162113361127575428259586287248127452437334006118947252342416918779124318475021499308043793701279929261948221801396965712555247279497316326243018102621860380872344269000400113204889515388707148654733880850672747617353809721661899189269957462370399621650451505511876723398530275249001089775694535645292472029879937895020220725509814652256886843139976590644060675531293716769529193464360060639881310552478567490116959736597749632886888717619318534524060529079908815685432803307163718712727458346965667773319295388250006403622116506283303572165033633774510845802554123721278914735257154530790981749975464227931058555059106868377658874178321413153945080701070934488632422405510257097727820591864088685135490217534290502827658156802240004802978131214273561756001712547659744322542529154469468159558545995900884920761568132721846791256117769123461664612347127771851111827540153315688240389224642093274017687701509104122984246108408967909248812886176918069813568812406222385117759260643499811210438453634318567968420791200976580879296820141149042011258568515444015884852028988426067858166290690237461054170532100387533770113552440431602934075267708229041577960157726222082167852695625628097564980207883022261882717426591072590881845539481052987669384290196526416273335370620953417885243814276489317626823183256653322535947643102695895632812927948966940914189257335524479661195304412198706298440397801040258592969243667172548757518128807797998496902215346453037712931898098141824866271034737041980286989310567539272004836571321046302712288863084143171075232381347844217748723652710136807104363029674781775773207759029077883209728128355695234514472841322133856586003799261127746696325267681483850471303265138319994258281580412359315588312011725305448059364503145136012951853518428431172793390212003971345492525946470257523499382232975087061467469866617429672192943368609354304654716321568504108848478181270309482993447608358430370583787878336475776515698253148821064330741394645254729999506952014201616575778957131934741269272564847806908086652300096544186030914812203560380737175499768320143518366392361248976066692900239698129098544738620243301090022371684728652873347433597664991550553165330648722118215975726854324201359191466963281240185173830289287217381872611968846229360953877576183586461089422603345308122553800296080914916972660812791805144869180255807247908202544236438944920451099992464916297389689865799054612412437763083567490497242884338613697967833419441876574943791435445777312789905915572053128484902653863331930937983900827634023564911769173452490380164188132872718779243285431859054870195383710530044648076239058131498040458655406745146489321051138117878341578166951768424660665437917587307583022804459590064329085650380279385116930151279964076456008104715915717183555653338750103780049425036249669398443314847376560884865406363215208280239279293778420876944495374774406941101567226614055939615830300618517544315188394623759217452487713567392951339334112892991801680337897936556629697561136885333694362152005790918207480424121204270361819874123106172509702636449814572898921938297629460366190272084534524397000953770544029219003093516317808219297605956433516526325603579662901097386870996610544797325859570530414130858231655161433592855247680828105526353528686511904767790168618220182581127423216521008587738935231562148042530634750052744533470305762476610374358710708470490099814090959972063682154154610020906797291037451564143701926917725698569896142211498573645640889001037672132526483424407905992261197290131907521351703919919582365248815874041220613585494584953015892033490328931272997907904857102816337895015839060948579570598700930698953613227346987247383126185529992786149063954174919563929803936623999158231715949393579617251125118844900016810738092420205811705989661234323488400020220683886926912865589404007585866504524582031622178602756816736897188629153374366154599169097384818254280809689093414487377044717246687951746159040096364625713010020182011498015652557306016917803039837873281555323294550303896620233630681790684646551015825158291107415192981188891189525023156662632754725495002324108780999999937221365049330868331883624747817733477334036749044072242075466642459330965227355074738685993160457871160688511644896629340426776186195505640523346014748257125094987576985452246160330029477000907356492145518207003232641432321105789630502949732981457114053217941032034252061598906287973364670966550907873870654075681034214629601561783367658662042639311857332971219521627769819082066794115019354806348051038197333949678684767364426028077623861843841092018287378047738996905754322142222787708777266437239095919767691778752996549078276965094253137673277170668921090415519765541815325599470205016096776779670646099028476545924599416148805351552602472866885301394270891583129878002797376988694062373419027745731564405434358935300164857501753609994725795877961923861658538592655101100101108317070311578461173184518977998559691290976909362005127718790980915592279428082703869747664400696284898956156440377789378365200848203815846251804128461644148605817327559275413503618335692823243083834655032284520166327257290801574873157194426222158357127616657656128409928286795649149348959411084159609609291429775115213078312088593656930731864725780337369577489442539001721373822291752435487278046548251293413339705153079939020665115372244173023922702002761309246547660198955532366325264988236937083329399425024211165646259677927155246633838797471004520850026827213767781213182716845597614818116418012294233689362701752648971938755680223958636166815220703269812670799438656789299314795892594973288520082292614843737553752221257188100340883676847912886194598788013603615246839995497502050170188083388574611115069918607179760919349032674006580240121421477526408737683101771972163380291831494204827767571277521713984599775099124195011359437979185158188436692761506868220678761844799068041348052405425021320747276921030390055757016202837026367251229522748945795895897022510614959938837662428320624786678348351512409507334386864154598248371194734371518557182704468313597191320297020476440815754924450595832069999984789203073355510391773041378130134686361886790584097353311087494752666748793062377526818317628801595507921783932307969469045988745477156398244262973951718175724431341255046331262677834642269794343098474246268696907497096048751389518394193546999241624101552751867071610942479097553065102951182474726601855028527438555500545475920066011362652145404890985456743568709177704629819149079008819641033485299203437711603825975639394420520703681943690130803251710304726420418019797035754399064550497116979794145683564944926747515893316363640283054679288321927866738491733360062558327094031558874028930083451824598275971714283886312773218342942891656957542203406838611572594721798847444985155797386998108032985340864714327640925244386766911974308147235994328070076633609763134418217844933270459495783360555978397777625367038502613109287695076571723286828792834064269204911170801618333129437345472607728633067337075862804878066838451769557677250379639751647851767898542495496552272778704131204890916970606683784615089923349750647148656468495375409924244489088091617263142146836096205533076363789634161554435777052897150721545082104538382152307521075828506429112603104869129857073781556679410010222262652284927988369019011573208735484671467269408902813675094321396870985932582486630342973171098954991834481766597805335651355397025395888368289009212803315790458286431744179409368600094406568580861873445168984539610650725008795125610937406265880279587318892664461733954205752596751945225102647183847538436247766406266400671114970560995181313677137726162282601612481774935381345881105409844981168494785683976913072960654290758668913437937105657453085691228287036397145324056811095430193711778026332749416692193724416559409278929472996221398513109022631436640706067321101678015541878690131292048177539845353930484983272824246014364306847042076232771330155127567186343479797064250760075506130141419309155354222786742878852707044127746164822825226364507027577471883253494685543446700438770861591955322384833452482998293896011788616836379514016473303125169381611724697335614889349637574057671418517449370419768161436065943518761930969666351293747948773709143661149976966629240524247889470030018341774975903897893804087471567408174633975815066204749451986844247444062573092542170160990302309600884578892762369281951929504963165588704776974255138971818304160894821500506561159129289017473616059746792155641819740926621741668090949728795549680630320853777385444042087463009351735332535749571156956107773106196703159528792587733200963658039124853835028651511688341673913245436581961995234604846420936172323732456860528509217048887024775059915998961268461186709727885793766936001998472467564911005008355491870091919387078936603826035239454651476251633435803294715397410256142730806335114576467909869392189225828731730942106865890203653646523909166484210571043518610990040802448681549765852674685666660397472935451703035838888673314101307085053539372661695458480886753325156113924678115566523096588703440167999058741183727332969471393950014817409557905933908365224352743061814449242148498020252003949682158562155757137022473042008745461495155047468381295556029355155314961370070441025592744475871114429480714285066509691567555893448821028659770087547415750095263774053214213908296595725529317081559884326008113770536580742526265308682203272294185633005774148471547392888610372653013029039178507773926612187081627518118925428128374649895359933732141091898150457697737964386306471177833620989638175260969736317205920334106950005941729100662826719565892173033032373614759327236673118617714569607956035184790647352097067221010286472672104773638807276889950638330744564360662325040298067300287139972511977567990741889982546736563647813557099794770143762766827106750744516817642158332149608583066739560231122135191301395119100789314651869280624583565936064925601310521288088679172216057807487600055765665575076886731162334084341995138355603215652124943887843836452416003839219501616434332142102551730844235516345837672388096565628891061820334350729127591986956885427131040447806285442474755369383970045865551081065328608415189078947265503440162506782814316190342153148640166188087619977039822075241767270803369464965205594539569838671213902291323197334793758864939848527890604687397183189891547735858901011622693378529292931132677828417058783441843583531703993432331586459293428609612400411079193345750186370449989345925999640796362934717983114448136006227395453520735822543184384784456146642911521386935724713719957620724114956149794865170810339071894740011923837507541337388609148190125467245504408379499009664508216647515574198269941722223204848913915498554705278837390842169745217350148682488333571827936782623464938189182563777422248414856424471284630369416259490184085782245875907367227756089476570545923698070069795010979080446828073566295088424194099035533388101999359866118052251425099809839189785479221018577522914109058871258094216219890634136247792979529511421764304634002025326201975384313940369862787336595470002223297751545518881291525678510833061258862451376780953603464526973921780329563959955488748199639950327291076873655039306521169064704021377523226095114299021483666838156890366558615363324483586479004982719660670919321608951200241005419416663415980713703231020716089818445420287809095112461579409110544015306729263891397063853926195278095349859414827313472556852688614603790422690023131630367315271300933262317920598370440158133847224365684445767357694250938753864907939495309460810127316747843180092232391562397620713920220235213309907515492519932234194012199540965971625518993722761061286284096480479737392473895717574527336975763693942638368553246123446160371553052770395846492999182813851107968362515180762168211861172641020473049660538103164094496939941131397549846978766662771705972114603000396670237863694607597364910086472853903126339216177165397596841971219378929249344760673703341496864494484881380228858192650060955676193366647504258122792216348323044306084278009621198971211474467808858996315838989340538811752009076867421720017866890787711220047860979692896844544799896497298308358142225813274345609199329348805322367122505528148296437055655418656607260484308181115906749773848846410429227475578632990594884120425541888847227932680459798829039799679411201394930487726441582131633329356487269684824802666120611403768390766034059640536547567700746700077556071087999324744702007399843960310023065843679681922546210564465977425339661400353467267121281579194521328754962486852567407464710880316720753169483408299085855890116031516685801872391863875294160675207657191046414892638465685090838898470583492938863408363644658334935273944295301069745386702387328564541340342670015393575215645674173821190007027110212159576755085701146245297098368285026056347858238571466635202744429782824220882442057151687251110038760468781419382330819402216485413531053008636970144166649946871045125847576543226935892312039983786827660244688299717325789445375267892033201016296472764764135224250647743694846988794677871448602488199687340356424676893493285113419909751198386544059509904533880699933146123193029221497596218540124337573903879273914648682484891181628822084926218761919035486767647172639372484443290884955689569819054219917548352818663006303521954827184110431126466489894371957800593898610834773797682914836574270298751721716296881371878373736992447427806703370070058307489111218211903414332411701654202068622041685207120679479500997919799893647054728212055572305555491414812422702093487942270259996154330389965035449570394382883111029762086282137299889523668475571583906124083141425931309169392411642494935567382754336674436140680429219475636395509234034818121370124588711931994719643382831099510301194266225614032404820310456025469982381076396328777608568638083035285509383384343155412109447373803078540990833593127452469354839368660071790324436816978759674941991544100900013052482619776324742419669739213871858492257402759291668623202230220487533414142755350099849119006550056642997029411143090621084509437304224554077574890540576333310044014660548655790372095224184806010498943330567685633138821245177543890875137457265481368956033066801601334597353988025626530439377214124320829743006609648660769000129272137434440436997988440893047902515183062575791961300661656743973603178539217322025203639152465523934904723990171316368811757408429538786998840746259759653766328481703938995661786763871757524380907090262496801217899834174156201790043403813853378218384600214489108550755361945397089798396867263174561282640531878582649914985890942631864733006294206828337424779845978081841019197448435846704454846356771862957750560864804870345337316753934360342349100943880792885512494553777104306304771350176956181359863697767215617118604255640641673877289318148544906373533278363269426757830456447349410996978937995332642812539540775415238388462006282641661412313314415273533371789538527209121872975892439550572657892030236735862052087623950236647652763914155181058696427728564840680768562397686744759522854467996782106097408062607320464398057384358128367297142054392736268225806926301163191177489181244560011824778019595240675388091830792981791330447639451582600154006117633420739642865597217587075855767474710451618924407142383201295762513474692901851186507289237775939083957617665366728348197047833352621726821441281001543838539062813279951260985992246370331161825421293554194649102866226103941492580111289154983695548481344609761528967579794781274994379557138248730805793343352352288424586771339781727031246159991122298918147384731234005911660307488769261564933790767053381870437410067775270031105844395707180697899252180583662312461787189766854970453083941909285196387311707218157324753381498691777802794109248865493563370559000102360564882727818311467499520289386763494825073835005135955100595075858418768666985155825670703255243564002363327620800990385178433943225365186856429807845739546703116479788821473605799296980159691826783789065498401825149724982385405255127275162043821535582046544536145882221059158196555083634041221267496355950084381930229138923545528167438962544316864974755651215062051297461988128615653379471846825680361074764485843489261711145777772750943381092130932392106374883539025360376638813586268415010300736852866488711445712174624259149194812508185168669734853238757038026637367846133057898689697857979001775680174678195587138059483884721910226133094059519940804277903327674716306794708604592837021177117324264456417379831123524851492542162089869299607384921595884809763730619505302863839934222626853613474126150087704378832556530434899113925863878672601307778748928573863681370632242800092332327622608590985611046038788755574639537217968135898609697015296093351899328166487181796795352870407487261256805330917333474286231343697527249676311345256342422525903245685544412216419108612092159781739594778941345901186090997576964396704531755526770683699582361589728865194497814918587123376650401385228425794088314952900262367313522116705019537569636128205134934818511169513138831662851206773473709627726769945285236653155135623686774881247665402273130089069115269372004626130525723051282525122252965347102902442649255392731147775779865952333939396556832078093554302732338324894966005921814161702983745683127596562399031267065949624419798067415897666639771856563223973691518450787098840739622803533887552554387177108906190241419384297515618035032795277389381717068684386497917421890536390787939344226745972440378760807223912121544910114024882940504620689612725810309504157997440372427325332062925767137584966511143532862267090396884234996854957148810888701250309580668226018257903511539888797427699870377875055346147818164693964512367458325416529814589730717059219186286713089727645381357400088711553384837884718557006044140533023691822542345282180371414015687289582259718064028992769562707459915502598110902977225341310407249764716249485432326703205476580187095565602869711040839536520490265138462345487633983253229542538097085200402910995055505320423635314677705194455600555097636550156813219417761256915648307382128843334424700327549096662963303802478348593582141074468163392315534574358294988383385826247728897098379496251795459374635942326061246856107416637069063732433011824175701778391086358149292842275951800102414509540617474696145135260873236316847666829046106732370681608474555586323425799927397410273812627136586429823741101225842778985826930258440727317183263733826820181193092696015517837991927108178626517046798270484842513495983479380626729261080866329879432811548163829049387371104906488514662896198959826379791660320034763676083593746934395150435526628134438015774176163900942327363013323850417081800899261975702660815304998792053780667371419983322735027048134172940401641265229416952873149583836797849981364473028167921285211955801381303244640195184738538506870679181040238886384203562546095207130903330870316869827084058898540468306761820142172737599136652053802449130436232580476799498884962847857777122207440800013140397534879946784769378935793236594403877095194430083973554099677192412796198412082210515979190643613395420407534139401084896810849380488314383871223440463240385189988250836489827491122650405690163450499139921028172495811071666633108543602724015525327696032654729953470899848424875715329206406974217293770992357677195561375188186446806972003926744749852876019399037494095810775220166087479744063171390678891108440519504056111240271807044497847631528877739103800516733092737702422916632928449685077195036720766731503314591576094394111192157747984186306904816338926461572808390429023738144421772955746567835550087198416342367710052097476658515792263475480174410618896904168438872924030339124001753115052654422233514095708249846706103787393337651538591544915322630434552596662019687989825682645434789057219597601623687646964771515414983664861820389474243624046990046928802938381175082077620585238924853895668102742817525714786545559195780444499559707354726343590883947105365951089865255161218453355294002293245666698637824395101005626070166049076117351850003645928349076667916320639510173741781443703614776777353009412161077766259849353395282741720216782704380062641194380218441754084295520978260014817167660918127241624614850853621752332173228718579497127322934729911161938537397493072416311357199140433615819458108124063000927890444672700374600632373229936871717684829716687235495567890397929435906537585740800594101580063060650698589918724070825531008659779807240957097596925806619688291364137352407222908457056879915256650001295220895296920046563737886421079674758604357189487464352511503229380467322788686471905240328407281426660595109655027934694503043399337941695030622805352640614223686017252199400425857409537768707934027545734079503051096191218517008231033951497855661661752538938911387097233771593294579403469954511651459468417736068747555102774558278544248697481542970415514673328640440035176498909472012059093607972077304782200614654755850918402787134311829380142295316461717054321127533123315952359622264673825872307519011824500562914488700839058062924139540307810933974521201793482836229577319799398686845628959832463516739064210737874371614275838212664719382285901839961523849743785491533313654249458917776301945019613022326246113616114775041054328879871801708249867081156691884902010352264387138311153229690919694854790571414629141154223162377616168850448688170586578571254778902088258668869850631027347949185094796803200832000427086235508747771458955420979882460012962941484347237664290352506057807199588544610850079058774761497379403470035921296428061559350071955321011318441921387809325542088221527667520783745323246610483007569088271344494523827838910126884136095177804423395660685518922508997379888327324415568860839161893266546117083742442368958353707109088265583182130081803933745484628507194428410845327502037187352789365177190541362381538565709378209096916450991098109064978950144437011161326146898427654561759632587249343569846033114852737313076258861043804864614254539591123286076747067684715607097517908621923478540472172051632784529802405036051406295408440290589902719708196190656277797937810872805137050616257610815329872145871724357950589370315510719643069315184637309118652096986402499164394674060098479786947088553846912007585381075027358550128674177700398844107786040407355286672143829701545533438839243387608343393979600408536370005767271612101631770479095920926380085976880876836735840186141000652758548478306815765098582354515787325367943321831036817541307410153892156315505881432703149368230322173245757665505588902244833932961565432157904690542303802536961706135465918588029181087891087517467673491687559766030068899717890767079499817427411501361753921340142296229279205240436875016938926322573426435538695225265637941601002090937467439767653758089967635276915513491964906109772313551137289502285176283360983123112966174298897540632077198965511554040228492146096913590378486403876237236986184927996533360288979230440881574464758808253108188456151872094961598314203700059846000406584591303634707805235020057521091114974620203790503063246358939502249128016736161285558767856377731513194523492090380746257537483879902089245549550881435473049836803658775409974210752784509523573200430351276783017614755836982289663358471450601034708112472068359047062677716121401969452452246380976363649195463562294311611243170107270568836354621649074834161807122958370274248613673992124288539918399205398716286367462498656447641438457817331867398240063254942047757753618498665582332677773431535910722192736827741275273658457414550031702935788147930183981337891856699998793543535280894662074486391825787335678709589054346385300108315890086998072234840271697493689378885968915122431118580469963530239419656985234647443130442917078694232450942712842997722794154809678220699399192823627323015971541203294599422330072421314393376690227469667487270763516360488180004135363377632413222096051316233323379574973017058985945749109499582702044583724066586076609396941854163972227940386809770939700364541818006652742967806333991166748681251545350799316370724869624211739742164003319584391780029978213662306666285009331126872135603418731233712001659741820011765892971547991380751518588090334306278388749114405601847410129275981780141367740759083425140129885420801085805457358032215018713455508812208400355877049455220491017876928519392596456812008761279816942008574731681318338778603352094839564840290227085053947054505721559090937525594096255717977051515963853093260856875336133807111932758668557382110546931619551570169628892473800371301871750685721208205246665106945052465972301466317784063487224680667769977074723038073912186076035745185442816283588668570367553709066588905290272319621621577683056838190241628966780032323852710851946907705151300497844842530933209290416618498373683825149904146412377937359813541694862106468456372603508082932055129565872450513880449368108560587838577556440602940623065459307725105390865938500380204659248018351807444073577635197561720038109348740760862096391344619308759446969548379702089921271242223306762518813562239961490233482584480633539930673154629241102951527012400359821986755956954247756239497015430793727566334081627488435015117358520314825225490403393096703186849380155578361090601801247129307026899592606451702709943074672801403143423605799476419040362460280430909613931127255753681237057870328286262429171499797735124612833006590275406406383518573159055587878605611457411063947193106271637669208037652565613176762154513151095981281110318329213934877336822747027315842981541354264054204751660138480508733317485192853959408721136873036215330992730921255689073194664814809385631715424687045318626108691985510118618303018064951583612441776366411225632013166853213824894311440268667631587238254342802778595282736143748913369160697236034628724404081327957846057625705842203384142378759188650215787253196282929937104326092122783057862130926452609671452457662693370674247838142794390645508599375440621954935585588332146237797828612390158530152803855465729188978324272973802558391800461876111067722772670984742627686949435922301536840297177042010910761205707283315473864773705795244103221207747368218660019270528175989707439377449397023465542197065096626750527127185061250141592789788304108284708709659890111571566830591157430805063973249729698769612386974542438079625885358193078583735926069070498802264524480268050980103591689386443366738641437178944272797489221675506221561353702503026940095514334916649038265138923977779468158310277982719759626302209892852056113996458176836968425501068865135086340974041668468075025120146182029697672585688336550533115319030136519396917229031783707148393027230517386888947023186176490708254955154430851459495107661237725091047506554449943220284264164522143085107133812689452438217275503839178996269501990692182485841938543555862747546262459574893886636878029582059388781361529018676339836009883587438512563424413445041299824371464795143920236602627638523772542107493804782491485373696360888923494449246229813005123928406218537993142308664560848731527713298907087896545732844247497983520741265717952935133784587349700192871425966351202927910136317722047404819016207547935073705156923839569430304340532536498446837394386780293111418890527451045597958625734048698214219419130870496843440882013470838113568004741920290653852782095607530205092574441509929595291884269590893323375455172285426569935401526821927481194851978427070879847569766747278532026247555189908009337645583369894951992030451884517978693602021981047377783460570873763936040946182818276157468238943372076462904690355750716784677575136762467238669467187427461977595638593083280945337766044851176233296423272731454770864285932210541244863585251856700107780839595636233019214896329018745385817578824600311334125138521317545472496606479801995214853628163289852402924315803791991738694441883908245947108222444321077493589389738627088389016989929349310962887267959358987583287430926379567496491464327694166121564688008894595958359196695031850308484010367126364955011367427909462244248435742810894711822775201829807850011465121302538843945878503312394726482134152408513623188702146993810985798955604667005759819691346785163073413584300958969934858826031296810183328251274019480008809388398777059125995549438520978231329063397155416207112891763363649454622542018598550367994755905014770453512508214037175383434924564712288843231918873926654928008004061311795100859048827323416889152086212017336879455552301891776696463048609245438004405077754219288073761851752385630393674666109613856389747082497947057676198453967853437445588137395412914367543995562846177312380777196374268068643922057148735050524855758330516027194718737539625955356201161509358838359376117095125833882937183327839682732553087436704513024406596936683719407881976770196746573828276391889460055888775716225147207560968445384219210544007804340698122722825562127411073485077139985231418691637699294906669574061959381018378068048423587609048977178257612485852156059450508072089310934531033093976039712461654051594699995473425731781330361298636604035393967435095021033055010556975283656704095217955777022013889103400994320865083406897435299371334244803943813193837790731228705877262656921259693202591954233567087403992117668013882464521900251017279487718097444732834340363794223728462726582292556803576334169703247964107958972756133492858424274492923601072661705533415410213909955786613344055532560910677617177471848722813500789811205188155652685450276213813134033630183150717674790740953243810614103349995711987693961939897450356092903407119643670124274221649307272275135673853758247890507426611841859332809808628603815444937996659703544018662808997539507801722084952583621811802381984728679680763136060807611184749972798447961039513316141985622637538479120236912530183324594023047344660194759124732517522936641558614832524063571137864265802897827604467030366336877654833597895091939955054575548182286693892019882252852454766922859769165104846857275444704511446265968919192401313637831163037715565905890626273569318159202276871243628740658634281512255454137787881367358228258027711269040659462039699812060946253900047042918306047841109507386246916967216955990507714033577739104320911996517603868252469306230620627912542547620786073090062989407207465105252563393253883812786506950317461250712359799899713246921073244432920037315743866209270024397946344173853764118529767970533644619804462336640624619505683883802525874514553527015976587700618424006567672191953152384203140517107841622840482103879691246583838990729040778118281001167871121495570653612528230064815531341243400231403616410664110782998502798790021487182984006427577477193583127910842644365803906216254786603217710145328243110089256540407684332728992191607035081106313308664475412601527117081694476138947228590586348713715689544193486290283497630186765418502202654524740030746685333265969565417641317436941298657500447006642973742072377654056231758035333335659908127140960517652720586905157116794927820919553251451584668665300398208064116730420005513015220550382888378717053945909157237340792631317123869791492401893418906096995197382133540935199019936825969853156817289950967589215095368075010628078980807401708718226857083088376214855870055819773341816120363336478878632898555056443154868685312477870601397616708998463768199592964665203577723046187524762646210320348112061343968661081493767685985285221708366547616525470143353641312933209173988367061448545826047977301535341178199733013510538673385289310694515454014265622105415996029566452415673852866126130834448899946641388511636397712516010360045915539477455175863292310135299052263698023484167182257630722219723129283570452671129729585853110297260317682654505521335351923113034073948389429378448327261406517999687262443141556103225629333812302551905663041706296232252618467615202828306999062545228041025713961631058384131675651773649497175764464942992574302230443373233906447394949485652583862518433750092848873254766044534400124580220956852347280588798827912058260143902607096505284044178752306927390820656363699327174648892165900659007224493070631669133967559188185589211624543597551051282902006135834870433630007332386729035080570121120246752213594428136864382644226242643043233817665489164189788145473660151658141281243238948745259139852919991754668238070580330469902350747881429057837502602064158535631826548205385644636474126085553676313720212033282568052478780860758214455894913513829547036594386097125288703832966043129304032991637095587310476328176448968796537292668033321664424118228630387995289152276657028869570737757984202831188721351813952290280441906705379668635884297267530733270348739275023956708368747762303801654352465880133437576165516413258528292295692961406014141254959397755888098495228480272679733331733339592209169510411990013638225372571625598948486546789285677479631304959291980732757334702751787632946924809091722758443305118650918306586522655030814178742944948209704558921508772023438463979161918833209233163279313554649280629947520185087293167517564128569133559892653558646341332001394437265773870364927528673633791109288094762374169988171305886425779372801727046028141412639599662248422020168609617441809164544095913664581068165642151661198905722511018672482684653440189753524535535977373138362195304503746876784331106005533140848044553963981213057878743019742618227252614450540642259860154121270035716871780341566968755767739995784741176659702301861127555640714241762679752396056266566625447485469703907699370612207069598526934300928616374444566210809869408306935819683021990250847233430202928980156976999468683691897549120727713738986739424335663957987488975716059020760295281725744506291976937963239162840940296588287227647702866596232131109261516602148599735459385890667576071503477010287798267719869841030077490577907280839680967469088078236260694850963780778809121866448715221417548196182845391757611927997519368103186363497490623688918183309384760202546877475138354190645148248043035148392423354600527890741660377423322923120417017368691394566796539152590335528836520493843663027930391184283122454438288687372543672516415697279334040594911798554949836944414288253992226532021320441130645214148440178960627472940353063581346178289316101313716636619950749086534901295317687587836171824159411764872921175581188478682758801844357282829154700034277240398104100372543716785965577945538606857883860795329883043811323422374550145940214934491065507239529928281341171357433712410085099462740268739724401912914213911118966794049985916398758195810139691023860320497109572891743717182740915050676318781869542518112814344812028407679105387132229744852922693185760443294096280414384947679258822214333227029524688362476049474264919823440764690545940197821116261819088334606042325598326887124046308576439863809579959301898046673348485106974851902457725737752920319578542948255178829086897920304306597644394321525144988398000947537464455225100205589737237231933818938196366133949738944915670028920182852717845436034866316838936973928684202762373513224942847991503852468524087329696903764743631952846763662997228494143187291286777147992423305522383054034044471924888509801767453326332201977790670919525760734085506866038418658632348687794736443912427385928658704287240793204779858788602247839279074695850995844280414042118896711271172600718407116935769203374476331102522931204918317003543090943557919229024330389528951946411726094217414571790223448972124159008762108942399336437278544558675475798723511951076429513437836424686962741715624109808478809455699703870305543746223377800836558484494539378601974739704858415310408692467245390587634384478434026112108196788140105155931579001313618705532135939704861191886020314075949980785450153512776788108063927026139637588027803083720748703945355412011559019307329122246866244666543491222561725857600738729245571180255741470890624886131373305819307966551763267125580664115156486735570741683959338304710160292245959852276371717693531091954678646408027826832451874616958732897607777755371925825442979943534398644418945721903220545222955389765493587553651368814076903949734819370475717046687888885404577607506375998607239271963738656423160596798369740830296984349545857982407704996952166231790976095390584160622629493315479323518855606565499286426335499230389465782869904195717785820551765615310462455868538578940117894078546093874657278733021549416380590002978320556271546091356500942537173015457984506457907298658515106192716919947992189371916216418352273648922322185767799695178324921262684158584797318132372099968765207862056963171861866144563395000164901948602191060051823712289253886319059616651582774528416251131192361123034390251617331584169099036079217275427531729916620012943448432366428487515863414389268120984335688991886173212156260622856707842855708962558717301670347204247263819894996615348846245540481972971517168498302807958562988728773587255861387873860278245207624042129608611872280561363727575078104735026348353391370703828145963942885793937999488412365334665701472506835549645293729834161266834600066985292746436366236624869019885623613950040380460531533134869978834821244857105980142966045115303852630946429411094561271228095748011560381964324430157062484981347176526488444846640415413354746360997564102069815485433182196328163102378706721673372054547115872342672499017986567571199970442738304308089010720608425375512401280865793134321793624402409201074903890822015546474919793229161078061020473722957499607495222480751251717338199754226936308342441659319539789190774358127931950247347518156243774576363235118889045578006667308197664384773366491671474971066285664414221636160362681961364769880460203049923412573761213625497689190820179998924392111726818181132457088194422081295189569992158893200246997717963780743858787017629195985040505427479476300570935006228409319708250583468946908671516516625236934724307630967345817661490296887219732991914439473774234220954135973575672454518061906991165020961845015553853344702371120031193241737226220526159561823038256615311607728648795250374902758775792473353222842305211463006007117328007531956163847159322579138469569015044550902751613369524023476421393617557784879408470973133467559760158446566780869538022178764724647865507417113626556342157943004454492918749438686981357174789747079601894594300604800201477582214335714348201228765519497056631293402666612906239285907693986949358518918582873170291050834878879856296498291158654678685685303478104976727496410009901735914362465446715855193577494255981221959784833589934625888247105199393382959662826242028717700743152795207704370181952792294424779755423582234178780932928385729323294244855118356490314251590844628217121215455568693108267522776502271702150026134059933519023798315243356653921689414942764826523935154836872268720011749973700165135790915324056262579238997052586052207379091495592358751628707972352500491345813880037074790608030422740805834323774677920155374353724621497557477423889505354808322666610723499765870319815318852620478155241318457379235949807410627952713134237560353142671936380872954976459179860004620242409007873501542660511091056456428113659699808108738322917134399525865882032385612586241013215154322443818737893416106283829448053533143386316917925994607211057751507950398507951817024577920096470285187419442495544000118376029257108240615886062564661739973252939996518382478369542497411456805859858427799721083116732939831031194660821597361083863335689551727612295521469198769441658168774477615036635723610310994184519620465351581391668059675715459053890547225276806612543630582867536776471539159502569628550358405103558204495124186507236932365778533368840684629601899171808892691310697397003906386238051962812172803288639123916129154911918100277740497688147931918687502812859782424163632169267239370564638842360553712803784028500731165462712929683668628809105681669859744831617769080326147794014954401927283864615375926678138156407825603180345687801221743026027327011983849797553707885770946814831670856372078376611120811656996479047780349472479806352567513137056339385902137565662098569968424468188058779300811932368012851536308327345944412689256629159300243524226567920796659622866538866595816036274663934927010729503569040750901521801695512822097105712207097539790568232031893549177693640443510098866585529683807691538337255816538661788318968531026955124231796257767243877960032867816960150280918365082954317577524622445388418453409200088455663370549441051973821701749088316707428527745333171475441731123625169277091650894386434669417612063144631177873360193041009114077351502289929044249051002370665082404072004971937919466096481564040052345466159758292915609634707247067536340519578033693569008184563306885912467828277969045024868244281959130393700487996010816664152405904705012896167360818803828646354422370300102159037177369321122240541995415265095256880098508504769137498874719101926631802268243910364336958143110770502693943145011172840593313706048548819470930060956365078828026906255952963653483761859223323831107109820509714545174546938484287370925394053403341188785062519118040122678293546186044973176069348814969635270299744866843029885119743610896129008443741225454871052300924734395318321536803845124868845442969819804859216509241194890474053319179368116060080454148986986158536963720614865115834259157245429940462771078341985591836729448484609112461970294171553611607099112678891333051586686455179282277046746598698126304542705154327339842458497754688468974805379647138005189363035767128404290089249399329684727605966314354020274301152011087325380394611449026761308954833275174513003031932693491677961451796144496825820303563854162436598761287655728160883755812239108204629604116228119260082758587904242992038835706355165705720771697777887310001609131196159171497336016536301885130607742465365968985244803575771266400636768190140568696098677672558398802655805270945800375933140577549793335636054980590456788791269979131577408259955633137363290613258665729401993484887585710444868265126965344278550909614260948771994146178285805154357862705397272262861776368515552753870204173950963740328327157424073921147264448867691261470778381989191377235165209146135909187534915872429509002642299465399760963944540802908371349540965535345831738733498539150197412272535010408536924463762004081568953601781653024531316254055989082070495995749783005373633103560841281668768524083593288519125851042726459913814164989727282465592598212564484778165555335578374246896524508484165654764886748557034959869247707220855052254977507846418448929012143571250016743705291757744369432755464113396334423727969371037248289018801613934336485665339060447816786667295042682574165974819954079200694964260904903019170587895694880205267630516029317316687983609671077050625840146024105683117330157430707546762427441628690166789766167675249896252690047306821034214942494425587176118635390521791382013289843667605757873392249311193744495619140943194276658098621591437579398374835567849507333157788660437416013297481861155463956030419024140500463740420231374318245332885398961336196100804001982569215509092839186813662675713105037902739161805810370797619406404540931510516245449860916047359400578854106848100825448804016622593177135503457087115817605515408273285914314699877099431891825499443046986864335805565117666344560780686709977245252379383761643771073520728117595891411417769383083869767455654524421397562900679786144410628965435905488251438892066978035303284407518802617367378732754018806552577546755388572606359238492508077444446333282963314462064858514335421715777026353566300004042447209425819905103291676134522551903277644210988057671364473972914510273510148004258240890012930436311118867274276541768579057740974152031517007842922216395464723774331414576437199770235286985617392351778830890363226033957236751227482093367121333521305457360412893847281145014348530457503516676211387680187314930303755957186219947119601679794958076915673770653559836517891702044188928057899352383170802243229187943433480342820634662492074094465964262969947833987571629153340174418620848163103399947455168574206066734463552238847450842395623040221063321064321025981844554140918695714708964018175379360884158259601622211209710385038579388678563381952669504561812619116930123390700089914984413764483423676355393584121551076049595771010019118346611552330196548937779410834434833025096362627540216469252151019388053887699183799245508335764990211878812509348487170306447015041244208198639082117328662388669253417186023717475305157009942909425379645718050879664772128329900039318076193738396357860569385264843541664710751526142425745037252166038347500288428004338791041846374574435373151490870373083261912476475247798443036307009903554331710955199248062852324443971057108752946166890080384395795359532258443844926243800322663632590694522477858818442401312239106069250821788017912060741957608739688638818344599464260889946480519275626154466680817795258494709477709744835281752764866155105906692606546517276185820747032297509228218672886461306663259568965605087696768406895495788885976117629056732829085387956536898674926702010047763259922531987496692695270216560429050712162304461206402655394432918950674338407624960025973155881765524719658354927336373128399157257291160211218518825719965064023232121960746705698436460257877348331285448777584485299638411677773095714070144866197323091060770157736486716894880554984203448324717013670539911459234897989315388004837860319739887661551985019282897716768662111422103275436389061430126588524336606412518164947881468655000274401182145739183439133707087651897016865307252767757582184970394435192708414180702453228755413745232864403956226303175328523473801140832356089964820537305950462035982850141023396709349680360758278713000951886178779456897378882214160623563865920384718280623083955185831743100637243400571118402389489779974406619729410257455804586902697185949168334505000907523770232828944669750101385733673924454242957139918526923239652397163934287987296338059376087183648128451942600882306495179055387411966790098305082051404315106325470395794147276741149520944003203473845484493921320439233410172153007761598291869780997259307087170026596913937195339632677094733754924154176100872925361948935172445043976081476156583664553530538881192696962394388750360196870978379230294045620702512974389804514910835962581131074191177280626465315551653291431464280344262426100774194609144128503355717456939313687310502359229713561741186101203223954842279106965386134086264157044604449868477191735447313519442349650462540742959803929561760133794182130177121151181101253926888826305134842271216671742379842432547762868445002486368848639041036748044815507795458319713031268199785632433126040694461307272751199305167753852164236145778753702436120801276449773335548942947714403466873233202465933722936226082448258774278385056295217632559126366168979275920270970759374511854881575689797353586411252820739994765643234973686118234594006657345878387329825005179469294186221331644454802474781723857364078748177510529370646160712572845159601657054791241050875262563707617583825465102022667938161181014920808699404597678268101786684085970621654699143451325847650035714074999395144660956501254904650475633207932847271964933316031053627697904213017995087376526509392784304027010646711121681631253736462889786279217644432328643480980974617137367208395657931073584853947033115680558061757825065989862831167975317746880142259159735684065980782629102991315167224056655951752916496160660330537791895543884301792141952464181001827177161770850528607935962825226012458701686370991382818042796131481925111771659387078142828103046401577891506843661258245906262356951498690940757318670818463370252334790836837422905017663870396568191899024664639781203070229781182769939832117526124052774906455196781752556134139492505667651493577084318020614018435372401020784195585106677526795797444722191607916153976499404283264674454163341208011788151544558354865541762790360035465621032702495611048670576921925612384818481114072799575875346185715629025602539488225538096121664173938973022184783583273136456199037891764452558280664359056760087622812268162268307214677381126669419892363402033000620863172877299034999532798644676498255789676833842298002065962136026059668583026929725536422344826221002200963112036341841418127530868585880090177116351018521646610776369591323843309797663444902501307207720343446615002298720829319174322746889679097559459454732460419402282386047480864597358289262483928588218643732673342318541583947423452774408618344388509020574451476458553970349551716803227218796923426765537636328862329038840494998488044583710311108924731402433130804038757959541264236398233209698500352135977805051288772452644763602234438192830436704326756223988125064191309866475839885265215200288456177136563476176992409450469398463990491746112142108777229773250633946133957862891402093223748237140469421102473100895664797680031962371519050602582925864558141770999336973818821406957174159111931182611567184830280393314533457644202007455132065575068082475304074233688367073125029293144555036061117271163309548724797499865435788501365850905930584747443583650598505830298731217960815472286559940259163498430099679961233082864440414782908769837962449335288393159431882475343144135647969486795458809215720125019937446927045755288905090689605179517556681317032428634747906886092259169706125317179710813096213825847364028205344160358265374063710122364203790811748342188954484824280941831092382168137340317416776186484525019535197908619243665808688948632362059192450660469679900968255580503389897956283908479858345258635668736189025472892017851436964842478157743983443217068736920333723510805977129594903085738990024786293850864417274782064993970624155462146061672917674460403365576531889794938545049235675070315539756477509306534900255628620345809707525375492985633373498973494217545057882858630865510733250411297359258725192165495774039261455112283099342390560258900505914025316008847774165918908647023432830185729997677747537019481011091468580833096930458848697069330306636162332068534013718007683713777093664752231701643509266604342022163927420037430660546830237078024532853081291697860186101691524660685037457505967980660425682276108947766755098827462394765158796702084218095884027254272466564196991796711955335349655502575953292280438494235734926221013269823818851118231515942221238012716381460433505628592157445640708615616374350817824080744552133282282757583360189080068860685424648694018739998114179972376277105135286161686776537952815726387583789132666295591919127137968349960643150788574651794972962331950073120032436274824814593499535514879019461120357345999431089176029907137501035528943091987395571536681546593336121663910302734722769187732548885900103521054340909601330730546757344764867363229755100904880656496681838441241114024643167166114200370348324863432353092165815604798099065445390663112706614269080107554440597170320157068128657746551344024963095084005189083179770595682322813838530003333265224079964296835525271350494400738056062792600253746735131371835288595701870759173410765273262567169085153367526857600007807267856322344440909988307988136780781925301564173410513149509790638895486255225106494068569348785953416707901189470395040198483400138132203186049899788018932294490003863784795075549345057606882389128042350915139224842945402779842462210089938569891478101728096445346857378911926850759860976987456169479899612071852255185164940341880720272434648618408621206037355641340884867082623454740270527437401540506493956114173719508072802574614372309115774651256871288731813604678067767844453235451146795065607777441562406942298595832814287619618321275989859689747832590464478802062605818995444937792009790258357901272552716006191260007182249528957569841942599115998764408530737889074216573154614581750501123409566548770610632922881386195784671355651100705633919956350794503036497588645025617792373122563165612452308953442967482304729773089428695006249656645835838396882275496168566042470727252732618186189754057249223408433651130548797329286550697679962415929786212967417397886023781663604596551153055548003486241652214721630001884861898146607667581224879184977959489572343508741560134042982561318442296547706632924167573208005889494711556475019348294214835334401495470366777598421733167318321905508526309830010097953936523273578608957032815623996552648234600929212656352966928454890550660525842174032522915381010355701211275210267359700635172594704510835598553105835029037573879881530841275840719375763771423018087879912922106310984829243902724392161532207879237672421618817453038540584454612521705586065330039037285793265068767912195067289647374766393594136462130875605975768536526068144465506719540565647712770537975559693196850169583966088581599970464129526841300218683829251429950437276994774010595988106302797098230116864180811233263600059087588067220576112829016769298808192950180736140961778868683302964258368467989834349089142752835183232664253564566948382104484400571856493098280678101542210027487320894146873300394617708636885662370093691062191902583592039564776728188561471553791026111869133173720583348109502914436778246847835804964458396261241252631634063488820092146551113934326094445542132692346895602919977285329122384430618295678440178869084118675142275267295470790559191273571986580952060715398258097462361810640530315543363726506667926512126408162753782026758191149938786505476638864411632250208453873613830758792937050415282176128863480648161183027713049658842559313632804220844120032878131168541149881484259503447771282884422289142410994993246974163072176680390896425289941461686086436089626504541171722983009527877736708271125421990559460193240735627872466198200298211795118860867261919239303493228298069972884257220336758221045218744560540126775987283310256675140798052000683937447214501249398359651456403876161419063260758562121676333680758752824287447094234083139410778622962648522089701773768232157848017578372065495015729283797051118151165805746205425628950359025271822000981803182521691494671594047106175487281246271844697779804622472369534251781602179631753491593044693654587372172439680226356559706371227102879897222475827314359931015054434262687717703718461320605246388251154287590881904896159154194225265115297106885323891124002266849767391616378090168154076486804370907679264003177553869512786304745827146458135406076421570880536290077616827918992388008796374532519834057432474992755730294986544356001903510364488965802207744977154111311154371152163784241242501671873016429108278120111516315410443305781681414405904062839727101564558979080087501414389539754445893941020064427793439590950646214326620065707685357844011334911510668410649985391016664660066625388344239892651895184260027619085238152196985478544313019122215793667150565461219280671100097490158260903014401849890083799054298024698567432625276180554544461506609609132140577963433097165385521095820298406962113842704493848752349540656833505330309080812571886337946000258214393725266576377698296624954170245958823687520239478404240816397817365682406811772979159700054678746105162010986657650180465324093723705981368483240682540369246339592820582262626384824267380878885404668638877003641582337976596092665473334088309646086040366397642315506729595241178879172194045210259432854117146578538253152118889088655240764370973707101092295661383397036790166755629269696601288331071166335832543673167952151954386475299234024247520892436777590973782984736357742274045702195470977572407024071597939905262266280856660110476478188350012674269278417690708745910121001789135814158724900458982540348566156351343652486289047919235425867687682001011257309815617336501560021704914184910233509864416216315788420357764460886503401559678821543899429608313817491468358108970444161078077560674965580794179012510153720115709093900108239655340565383152976818589786955064966694897483452126908647315431462158773117204550516878343781601098263710150684291326650043857088238615925347958775925521201759829154386114030217363607982785817167891897285134273468204797519963093856493283126478709043799916242947756801326410195440321543486902808279476409645205467963497482386317208126650861042532872837242416046531177776752877433088668624411584447255333459217931969540248507015562549440991401044992841119348719587457856865161472234730774790566611613517483403204252894118976275150914528438304231629086177703776408369559688058075711542168222477597714651551946129929843576944357895265421456173140354987390116582014316052230162325819091954390547660900350024344724040887354136602091347177106816421183082951532419614569184423812599304784788239173786448704656227329268660561790536855963502475246858671117574392778423262016600647282298344841143317200435448587036371274019593471596881715762016177200669463668078544078445018720290739030356556340324868292156571078210239565605157366144279983842124521695074511265181513291051267344343930161467978785214296082507393773029079120694335548694891550318784031670520428113442250839600653877344286806228933177737144549035405215917806876602902605679686899054390508304382372279914925045626583416576658204801632520988919409100469646116788810069020503182483131210576022909625242396574071212141510836184892661032695659475457655198415798475463567314822875192197188891382574432566811877413622373794798088765574551809797222206041619374989802122176217438824058459341830120084414203350143319764674760608417923847791592497520640226814297046945367112371807437229435688075049105664592164800440508929771981472917770009725086369945768791409309191407230459580645692036968927808577829261229386233118310728147857890341964074489393584519162035326308811186228336088439957921013215616925203079915668131781094311057326303076154786081473509698251461901042249416360059224484070060032418597177247310160294591066052264497552324155724075091270284567795357029395157650474789607966800332077637978119814862145709734091982850012691130754139640300134363191939858104376786164801386358015771514814640932049854322870699352033487216348165554068730419963267325468062676396233142972394288253489991614136895690365876845699825846495729238422547733283319129036867802475853946371771547386839904064332615055021663045727992503643283155828793297303789762242196980038164980813692819720528469615201772366494382854826925471282978244444190533046201492572864855729373483179775130585781910764994395793258633487079248962552214434566834011038743451764783809556317207740567156767559934257793721841812326264630817406732699732047408089378909366331932735947471016208885277023551831053086745637841700479151723915569994107977896403290223178447259115930659694593168215619760247065175399165773559258786298910517979920658643400814880126122514624203218827088392924423606014224551078348948487622374856909572477102712615875818218439375464341396684255154985958573719122461861811769728813935078945036833371004173301160557881240187556830865639831808511352000948769130059398455866388017230024546354109477600073775602664780631309712309586124811284698730725318693499653610164414786332268082132029078505443017066935475773497108209428312324313822573075881884793838629735487684459547440724723945515339116131645607271584788924203921885230704935747119322332117592073508022446132744460009657517904328069248639557553435042005090278785416326746655650059635628933252899772046679198050881434191902117949115620106229405835489444465135335026886386219341332852401253615417851194793662586303056148796286333542579642970954808994089497223177801436302574136968832510782609656267116830557173648623193423156840068625462820964553776695150036323785618988365385725012099314499603006993110030586415673153175202994770179360505183935387625156907456436698939823537261842378355438520451079255569174608768159168481593560023474915710032156194134908958046634402709614518669772726221242946097552627119919342979458939997214742322141345392529585679885361556806402526711915600047555058049085420429675507234414563166950839244571923092297891873958442762821799705777594505740492407939478124966324124324633355153119640876161025078236480027029393393807653975539940482467316711052944020445821042567838327338049567593326843504974399663341631744856342191890581104370005803871355426379855368453944198260553115181114519153261612521397518626044166660790745365918358175871033196271423855238962260991445806474711330717247400653197750174127619653421854947659114945680938474457241573413690420316813907612405549166037027555374377611505787070910040689459882508930110235243862186634476811043491276920114702200655160031044358785490693232734597823169179837853271745874708275619086597189532516062734485280767629277627667982784146412568836776424916070182631504516429592638415102579484665855179080276246830277155589226945668370869184423686932777554623383911883421379190119451407583315653896130256508682276032773039009583119671354595944583346780100164198586234388231912418532517654511793148005218886343863568665026942756062111337835868488516110073743828301914243804117715790507201304470381131326985551257449270891561675576115503145251351987697551977394766909239550121255835639134930501505985448860539079911346431655536934873840568841636454269620793227128554777443920026369105527926833769223954109523454188098982493004999837171695475371863356989359890277679321004017580543550112874880146318892325876113354624271959044340722190089394619870350947646682834946237272452447748132462378314671033979137705703472481951330866007308449279136577375859819337992941966399569287769370114458971320072682936215796862455929316759587434853297255784692038246688408203896035089525958779181798594919124864388396792550385075175579371983911306525520874819455318671409641402736495221521344111276078301950588807598648758371328200937247455914392225111449072977601973493107975623858726660387880543247066130461566392049839759715733372553868367648717421494946172834632242073567621315845529159564890803210211413289218205378687328852130429642927619565768597813018428724896390321524453134849669229329881349294668486851230137289812728843794958962549837175814225571350998169526036042653221092700148079234377051875845026481790055614312093229438431348581531379363868859321513132722473855318393588739995248222718384514701953873172543014445568852085558279323741647304566077158090136013275107691412910517187383217871010494782489784689726329041144417624770611279623715807483743214362035243984429000916485960941905460157089533222144218655580256350657714927883469353932412803488771714931299868895877428274107477792308820312935016984469530984896894767884049846866686596240713381923125287185867868983865412910999212023188316653939299539614850983700148660308218422548606816946167523125335911908249533260748493113046687447595039857244586821135168706747944681687891707765535607009219976267811052588147727059942039169177717763931936957525165115944884034004259217720967014675981951611591176972379207785557989554132886283612413890932818400877704040653411967513976186206995001290510617109597208857458632884588015812908203673374172509562366436940007296694138020305813691259333133473159893736553411955873794951305755980728292142165886120677842643799281600922669586725286095531765394536619779187601070624172331610266028016233366153089028197072779650332274366490819313252129138644460253615817512138485541562875966456051910468966820208374980876195352916588458408541651221561281690256929754861229962356247226196720182144595574291666818619472209957988780572708558828052400714408046575384889562050506349714786100408584338571653098103581197387172378419259500891887125289083250865632309433615714440666828372773028751488214443860826977179397846512047376718646587372706509638605301382684497827893401422740826544568476888272908945851162797317329038802148436781882352612090770905953879483028946837530302390173886365834421374946093696346883684987640172548387044399216091708992847821770687845208779623164972072856918863032954405745045188884573090209909258310681747552021428392174369675253613508473044689173089425049919628674059813800869557897709381358717326222799954555997085287284196927448181165447611598236874849625985564919806860371896182423663664603835741958132201938612578012549396202985680222837212797327064060489850376800807043095132069958759492530347458166631514255500261865913232136515492212438019126806499196332190859743431058964918302469785997945933452842598361062749597878981337674145865976281367539681165916505008338114635665988143307180853121398673655811755913397204345430727940412062529577629588480351298226057649252803113742797021351169679391370671738642685376545322344202364234325535800077059291085152307739421781715995085105814712143265653636508868455975537578122374017599641543300506748648184198083422357269398718535464932419104170862927698334182761790996112215652987040032649991238276549624201652018226993765426890729982333865915805124965597886381735839737653240105963011795424062283139158568316567910408140575093477099825213333452043771050885992030044212822790382916861805765815757211534047114671890816747771128865636450702150033565179771615546206806755347448347581189817805861060896613606236150875319895346633109620959377620341709783882083547128558621097632431734829086118106146790701384719570378290896353381789308127815887164846251040923078856989180757055079827022060019183556199514198816226234043122227671468033376533862039514008674934243213078427798054693377713324478546052342939223189365243565754303434456010456955326662590134596993494968264472055612209628967219796953472324029098927782120107204922569824840312213132255344715622191465232770304548620346589431196355148117007051215647654802967279967226383791663872242498738714001141012816771102559549766594552405055036145636924091563562300930559091852992318865773618006774238059322246183717677137414418756401590034082933649574318912000530236226893374391602617156125823879700500980226478565893717217601246474024125149126888529900983324715030777766955231312210937866226681019092646750105624409351249747347635086172239815312474010205330427253858483316665721450765577881749505125068197736745263634423102448817008165720844132694884942558820421799079343648818574173407239677579672352618272210329468849194873000346990445132222102720301866393220076315888422754588447212376108152429448484606689578366214592367116156476949832351609819808480039364308479800063061645744761794138387053454989587910456777630427937668155692344232557043385617192910489513124281610385680050706880300199780305976653156739408825080283049084644158809500082649037734478731956104658017172914439869027113277826186867491635036181377664678544108186313348670460862606452433119900216796457355284617695482526540909262739381063266208728226909787032718464398664720370572429642086960681873471227815498113830690441896779149543578775477091702250456788702387409901949198260910304338675568973384951621671315031712151806358944219857497705551453059736684074134211942528626025059712810928236323363828627170736035854213045039750317026879885259226047540279609964321766701864908389472251098279593394926653442992617440445396954464928417779435847589530265242280873168121387276703078464571134756545208447481488140720766796234911240914213666155564103528234230958988180766574179967492744027400524921064839492803027266285907631996852085135079118106137922109977960553478970590825048076730728714480857206702439308384724284230673453980961793422984662121841350639356617396542663310340804637772689038940072311357888046540170407959479641292597798027436520749064268691959875350511988791437047236683887989079746039452001550069569274388033601622653422746992789001857871152551855705333199499175302539177209248318004228971578836329049583776546498503828776878161460853040154484312604241742401091176937520648380825032846897382999841235390307327187912049909843294741610696487382574006846297434867629648915637661470138150975223606191726039863511287756639657504607355603786204163471065835142153596298382872496383234895182115161690541458005948948172933998261090322067849067038861209227836770724011999506817524004487229237588105459389700871537186600902829104900807467578517172657594573717402402948961225453136552933670388480909169747681731895799498505575586675261584334237120207329923416840507860936130195277387562782909137080952530117125088627090624281876006972012907337788938152968581552225000633688721267727330533571626479403956546212422677804481782062136486994726083576466703028907689196658785695566849219979520375060765505621610756837526960312183710011013783620588797870479043282430806609853618223098138807347953667620785545091714901295295074123620609126072463886997367092681010041754834509604151404349419616853105678263527198483077534868135765201249034550524546368229518121746119061858779120263790396941800102699671051685676703194082592560222230230005125042223487568164835417276625322213233742644397586499446889762809446851031745927356294036427911648526643229186486753865140172280658270646150697748827011359737491118283415839910386873664744141831729554453374084306260612472182913393486104574862383802879247357742043201009826995578470536624794346178687841823303514501670290984292081775538839231687968413302990647241098437006520881661445876341849079518444314074492709898730091271081632895695299235336025668254589567340694582426966670812281824605390333900583502664107181877420824278390727269688513303875449339323553156544635870675595357476267395866840436732078039641902002604316705094119535972650376007610460176959082489107702236717990314518156550717218122730909193518695658585815123358219244739723518053838916569079700999714283191180833274501148533747155223049403542916279424505384558051831425757762842500369825860783685824885976528045584305391877886246226549753792954713240162020703079533766697573867195497761550016443174601616160237966658280494417113352087656239614542600642279834543265205581942437208181229358011078933860498650582356664871125782450813672086459768793954096993812033810341666885160200818117402161593128153845853452841759009207205346966696596237610657889444720609308855757975837734987989154271356455316197245687540251141095764900373159014275661247072144679946747567024803783504504442435080576040434305961857301987973537746480077663611089921157370878905083813453208925365661436691760616569357441572244782642335280489304189290762820737204510050716657020425689770836987606946853404613569483862785446915047163760560394309730003494575029972006479144076493569519429250054388858345438833357491002181572089357322128320144626254499827841833957587335995637870923481576457488630354556894969514947461724288298842691038199164313954563342069131687902115251841436399369562873215893645216240532300909364328888918642696983252977548382954992122792859431009689784269574622807868455914171919970794858947594442012933762854325119262035366209100194244230585782466252766235086269856627686604368854924147232430513510933262300816852954903305436951251822500917196089194296254240860819928402215811301265830239294981923351636114392526309813494224436834647062709715207208287058231169675677371740782861317275691042240413105875690337796764986466920943122536192644246595999512454189712775474703588811224965967852264652349317421985223255306189046198864628965226977704318794694021757799284950559700565957158244639221701350707364421061959785340495128051889620764206520253893623272709288740381133508614486356863307386521037440446876855025327319403180106155658417314229670597820081154648449900673979939518811428275984923766093336676941527897418570527833317021168578604972729369825372973284863742991089372924066991353195574647890912950148733778041981536947879186037668446743597047688620957360638586825845934576192740853868869290558476808359663037959150351608765706104608332885739288928909046374005081741739746716419103506895928496783581043997462018206555419022122041384862903145085507924043974975831831704850563524250401469702382726207819647430478476593823244480156215600234712930187479249994750564339908258068441277440546612731771986072379530844957575494784854101926774733147195761918242315882188472446080997641476160703102438429061019233704575440801847667845493604268315793820895030980212688041319556769834608906820917533461948015874397207962052590880761787461225379679616975489522744839887509989825867863495600054221407966384959710500232992572933746884894377131900935818524455799637746118527788464759055891275007332969001126121089524018717068203325676670238564715923199805786194940996698309769681943347039794419725214489920099152267219043299007233682310853341315417675622629535292233761092659427623339859814187777913494901311143615248946849112214117439424193549722699309874668970934424991574223530395704387327662298656765825850362046477038848439503526839011266100914984140062671367848101271413767809349873243506371323844515286581771498931285317848807867995966168920627869357011237342866762722673680465975953647595081259425839524791005108074331810774688201475651801583935260247726265603639070818567911973880553915560704911873060502370367342498508325612610483106466036285403990993029451111354129302267382808127247534625475438481668135574654824978010060281819546134224772897695169422783093184633759312527894219629483256288663472674845011283526612912816149247262824496547670233818379249913108955703813277612341885389708690098597483097098099888871040183769197437932527844553606799025263990089598626833535319584015569520380982446532914135047706332235663389352378550310926662717256914455034148868182167163828445283525440607462026909432128987667367372938931722309904292218308509096098883604928619097270192002165959522945121839438323526114882183155344663593364094002159534511424450275991062988789952867821775939343549621022210869566476731916635659771020817577592033182113564402026363540495977013564121234922171738378672941630850094334109573127837788889208973654156206891086028066436810592959907184676297615641088755302791699289183674829646067551459819762191990056374855504317740151921717883879544445878482574629991033059409393437470280607792012138051140971317682146042095010051373844111408946705670008478603239807380779614920026762721584730476717364515924941224604432429228366736424769860835690321365863787836366964538741908121134987000043695303002852010283979150912210383992818272186642131531504806327851189665632078835281113357832505084281643929614409154483037930213134364936966549951550092767417358431554995519897304070433949222214681900227091594577919305991721397123910657845043271385674231052027045686878080803751283905740986389080139644443276964556062120156936199291792506209430593772381337988231287705897195230747009041922934209671538638810588850031454517335001452613457543691467455839000627318519125850639845331935486898042368712533537006207662478640709456866984918731055823478798402989373618864436285420914370742265092666218892467528085298113094061358578486944624541838294733059334385732909785019398269423905969742530991286965024315171857259201230663262841315690907706948805276580902837543570609430137065357269219842843958715394761987677025802541076803407438452538052057034893337630690509222106582481438689381376118578753936706082238328095252122212529828256494147425517040485779286552065640683720759445559888387581579469077677976155740805008651560273027682773731137037773610520186650773605983090990485594791476803887952289088406727057196880671059350672199774500946359204164849774848558761789595905119397757228749179643116340568394881937240693662848100403575631397902791679507877315394811540106052503126041789001036844677671562908485164056146202845210177163459006653502331983744770297657800144638332290512459220646425393460439653539145026872045912467483223161920626544919902595424249145901360302461496544222086708879870054874370225409670782477370746022330174987555925421452938819010151353693569674291662807571708809643055543966574792000882444104156449184698287050590425887478148761294572901489511073644305288373680805216802038525921981775350124633460668097075414369161758420253381996365550857264239305967092129720782110256075714859883198405226381955470839036278725764207356257115674244310089758913122697375301357185800026666650168118392947865866686349840277353651194753890884017571698201429972445638322666639247793585738575523554054110326476709528261994735125486635454198617137391702651875265446789504203755663807776663721858958619732672733342984535146753064916564200599747535602064485215819711700977326900178908320500488179725955058055427468739539184068646826306126268346528854178403131951300222448084549131901614130375868436921287396463576794060344051422887124780644497882396364947624760294801081101744956842634349344893027570005989828138006777344427450022951744336545042173571371771130246304824127761217793089569913486358159233329256138528259177787701332977893328320442681202590886181260083028167254836810959726627181725019185697652947222976407874829311675566060012767170420650925405747862222736012299517785166062749490212532301924574731929502710053598155151733726105743717264957525564532304097433140731190529728018628500174957351108024579434784593651764302961097622195511898129131554951223623830556951163620150095386268389867669467029073354750263591294594946719933685664907967155369386544668392504739138019146076172232032511091086250060045206011753633498440721586624071661553314340928016130049017813179363230443677655900531943313926815650020224951278469922167563138414339694499119509215072160502119360472132498270936782116222534333907504879238321929854421964210298019144040592625285837663343959361060010909507520573389739803930918468589113712355993644493716460065002616115869466084954200413009529336266224758475145264384462683933747571385258557009552727354234587105236939389413064535240296632894072743147631006939714222021480570049496742564213743235925115250125402137663450048933569121481225848301624389760944782662633275554065990656187527970521885778511837691829878284574364585343780932575848506108576300501144651859466687711914269163957582079582234604812026477132015237459437330393728116848599508176728338990636411573754363019904893334950209880243274984678955396138813998535082272597783498260802580231806354480995640353550999351223986735937447248393988964530634888571036658760537232138254031290785243065084242203451293935392424608332826490736599392003222177557668725860748093473672381871726590498177879466170577949173112829210355296304803613254954199951223264842287573140795260640238126150961544089495473518854672647543412376047441853469293303841405359189325896558617639956065472089076853227161571428998325792276943112205336141864053131802481254275416259170696056850596351934038578344270659245438993192423162266000257840708435085872418325526665884538556821520532016227882704347587461432371358107359496152102393367636476943081994221878628051916070897145496561839913038516896848569422092915780342427820389211315951728364766691793954797245304931863662075272336832599914717413718320316648951050258664459593707681116773548951526611701632363276451462949667081615663994179638930650013838985043802144946428363424795930242358250060515019549450564457098942822148644733161615053143858661030830103697515295736121657067547502783349032925732258183255613877187793304677093080127314145770259838300457284375211918924411853517277881540335580298222747154680976031133377488191386210410616840652143952492006744552973229738808730152219285893519246682464962675163549769638021372721648883117938009202793516923340464967601512315856794403030231887706846695801773343175670984139478237726148191764408043194552058346367028778506923949834554452411218223371046664012532890039723187871148308148479911383105691965880515729950075391142809849980575756435442726286752596659686896582167946626704406013201121554857009653538186457580082266056222943393189909885024940358971978422860533320480290285171745560641483206533617538666535486517014364072075827525107106174136602673361373901259743552703185089257981880065538286175687702481580311343035132184884900087098619767329700457369550431978975698782937286884890277034779691482371381601634993392024649499559821870488735968051279616369366051425865974564381649862655350633232102289628801017338303202958839044525851493628163701595597544650444806392743727742307582770215606141434760924369290418484213689703664989195027004741520461455227060578547617139442893084703459157344568047840308423251909357608157089138734859538137991489397369022343629026550745408546088052221017162267934513201653416270515244187580945805278979476226649866573776015524509995587313771470416246977733771254436291066161340900720976726582276844353126796989444746590670857590402545606651839553761205502235977149690637264152936233907710853108130066642316666594445563141882628496180697200409629652482537329062949066025610680650330740355589005240548481402548570933618572911720762918109241251354381907129429793575193997669645020690759109669625207622684318622534382921748139837004656455047452874870124134808465724565041083656200064302161834089065520292873724574914033118974850403184811975561486265245357836493325634257271867664578559826762000695024998863369759177477582420630865665922578489389206832041895959830715313468660944294692459505763554143135260869830830103006607649930103057171778939646421507516239598651505563859332935179734785203730196911392851582171393431428984700072232280754345242759231046046607537205147255025269671601641515340755250848718580094480070874472253420108378007137941251554015379674034516653822468779295852768848987295398789664373954840170911362414492512932840592763293050239275662308804889806601535569909214716860607508969873844932442920055902058391285913434726603317180440253536932220643783907473305285479388677389626516545167021082635917025916081293820750272032661741511035120836288248840846476633789869924113819782947809500170093612866899607630626877227903129888999390183565256162956988458483917149195386609057882672589638809025717186428743909400236044180434790119337395535632633640935288348471294648718391479735831629204182139064148509001575781358565932026096188827007516279613618008493869363492418232831311352594715052060113929867040221376674410475530921419086919640554495444650072736605666365825993047837997694978828817376238796857445778322216058450544195061868978652633209218423021779261580441056333843905132264353361024749240454153116652716119079716680587191522983524627159109164032241501519555285106704657132487286424093754756824564582508429482559837127312121106063505483851790422048796409389990037052984862564380178518415329327982098868171090773654571876567818379936721479481675502639591268184329947533996486348211651546702313932126064157332068710772768652083391809460997071512658830300781925608781287408739918508635722675776672849607068107258686121310958096399333827648274770037714863053030320526066925641927569849231219900109122374109863307626557309619295821773519646183187564165793808529020185789601501634101257161884117324965911648317621848842543218466790880843751092664311609610791451477642104040176568697800271713835974337181021776434708924911845835544920301883176770564165028058145347282112175075329218490534198390079513416099177541353580356000232571155579453728492852202332975047630530499418393286371592118249942834431008546506874582172296004712443271407983352118144503835096105008788696419379178366819531908424361413637772044765433726412427864116475050984229878988528604966315911256086104171100671416131042514060432309773727941959133606345448720451552584126926016728758736891273438403834670963105585514568569920521998909406175698974898978059036575513809180442095775263343685417293613569954892524346197515596908616221289963667201380550095309752871812563814541877349851533566327411112127622135130831653437292825004226897859135097052361890672571770653500351011211633865719892187603400796679571237983029494562825645478216763042604320730951512661068651653612618827117119741594342188992206517440020485264674320283310438289946813882262467224844455435322769014700947324495590312600423913008472642120395056027738032684286523710280666792470481750978418962862881454675902836416282418676729085270596412276178647254259206906406119226363318009499913719549920369818157127412606074332219343248096079336949271352454503948217819288773790118652101507662450745756289021589976354899226622917925548111399086676942825630998472455656548900259100809179501005032880792356599699424315482474031208283090888974330324651791457764622945655353187758806432284194233477242578581005046452336588321663492885436822892250779785891063202315650162117433855028868392252857805929107793876968710453247757828615938075273044542031377512369683569418977855181799421936011299779172626537293460918783818007896563872222494247706306040090769062409135889948326929981478880886749803452218348121020549941741307894947409673059626150598337891754787899619142747832525584745378557917161544825155107735148282123462798144607726024535518898486064230718616220042777756497212869399288058679731881454015429442639859602254088228583948873018378925530443436602204446212993868495311239539731141517704617302294639203649928579191176231528104020422148918307686547690344724569952231565058792419952038583793852369749134291712151806137330224706873322245564340797595268705067695533400441708793996269483186537123032695643951932857189174465211298056411909146577795869227427048797730107198047614354273959650467210063406852994713581729712382923732821860145611242637089052602264775258926729833784283217430506845971093820754845640830771576410874909567927478356077692869701785385305573447043192998680526191709697644062903380806426248827471988863448789334648186690296517622339843493829200724608679081634493977226447294849829927443456152865568756479080666774413018786978297717133179671044821245390809103250361717282604807133462617761834600001018261617981955122494973981665165659078723356185746837571419227000768988230009757161974433277544020289678360066712289552217471102368855707122866697145195056475035711670863637228120326761214114054441711192156162914939217592715663991175473523598162124812684757683036643326508240329125433615498124532326487920805062718148283477054465446762760472879012334611396308040600830605452588211204140637473892318593415267223405417035431999179728806036192882564816111364472915059382411407674079839273329292188974765656573769377694522554034398719804489390257342814737147766464001099254574851853632185087031995641113762570114996513090730558020931831688229235005808275523747441835349899020866243931290216718142162941070246265404627035883711102213023853847466420729260931277685577412042473953040622516740927017518519240504495609311323716484295559955410172719161147347113631790677440243895273535791932551119331193051634681801204295246954479567871888454981415099388432442177071515679766485496294433580486494205790654030421035078997193748847857304303466987557141715734072128836611264789870714745494404474288521503401389869401487728829063668532286834471074363431262957955640683864507393315120880893796702117233616609628946837971012850559709740965000014914108277079330775250881334685765218340712330318693366329874400990993872127489595801285228192440801341840392072980755470927319953356531264532622010420671306495002791625334185170969002860367749555373826934041228997539709410061915375190734234607343070834464787653927421254461255084156894066699408001968519740271225403252734929109794279395861740130318784690709159370323974619350497673474480992868898525136893811434873064366186118905633867838677716718288197128945690382155598895879491563398604914658781545569769669754610642643801269787801873369617879542605213895340872683675252058152249654113560145215051639660063863096661663239332857402915421658134296703200961167204392512877505236827232512529118431217568066373428527569198521432143128448600500977065538697279391200384379762759265789139144818438560211410473984436570935539162125277179157826730033370254154931270820174393449168702350073885565781037625228601191208217167441133785385365674100420912481193631253214453351093248260376909547402947719458413276581725481699554887234715651617863970321783898173154923650355637285285625465303170633202603811925701084382805000280721933029630933471706580370461905496337711186661169293362699476661427899832829007378578799711343841032595800128197071259985549177247119985884181139395875430877133131238728577474487326364882063611197314257021771715773429874396420694322518228682574355348440616201212690687105936890643269695061382352324451897658385075221837924370695807912291116071612763823370680536454074384947989386972002625090533651164500787126731513821961596930094789998532376626688186730689019439665423319118039480099595243387098852761062602680744801304194918014720714400574416432728897255201510906831151520939641841720207386983163547877035038836907399952061415278911633980716672549376161403020264976878353357500690073166425405143797194031367372668372964662284325938224751738790330957587138593320729500033871556936935441139110156432430173561246170399043448889901883222480578226193573101606724003115769242525989992775567486194102589584598441686370224785650491831435078538712791764567696275827051831973421815030685929946965921106945617487168106139097673884562855872521221516607462809132053840284281031603395034576653822416033457575135230389334807005227966074102096127962535497519360020755762162330726455252987940332167346228201874899809370705305847470562395243548753779473620441320618930184558530133251125937865044559521353783954221511036070847481472730948400841258829198515042639610587106213635362059447017095087487601922709222594195443510261848166989598944151155373850382605413128785385312884174889784335979381210333821317015068651762487171154991917991854232720563593310092184921585554153257070152670758025583538727632984688490260391168547303556571529350553954136229795742015033174979378294532075570033585989892182635920020811718269095616262052769748173469033492149501983258927171479799812084722601832928200720814007033082344583656122097558041826602748575547999956464105790593860785122111438430095634360848281572282987990454146805546514377666776500493879370403652895934445576214353662141432623891885690640721234809355074604287904082188774351575714295193703824694413625330723929481892969288265005773124420126564010041423054939069052346024545820595284092651779758403767057850703373495487598228080545748925885004774077447418643953107240025181516656130560746653911939627862486593109276620113308443244410500296300721140803703424994200052690591995038185598087582144859340599562541978697344942602694092105494684857213685150930775982286545863641219593444871830826384285289473479075427318130547983792813512597007244762817700175429931318478842150831336483883875345916038744599516571114155558627461737715284400338444154010603867243523675238887393926840387000114083436211047387349363796008966670714636743528941744428472537975694859997300387112331424196412136710506176056914543929503694432989527970180788528516903773352193682039441980170942250945819998986916503624714269536511730549328093061650513567668377317948016822593184182867716198476586157129451902250331826078567105368155073226570741377548972220629390578191048448414879148584864753057902756046931267530076381176618970956848727088537677498587379088706761513903232319357791439876609269145767446087867209307964911450113789848161705581906413740225629571324055036540323498401664839506908923193077295740867014878641203878101558616253484285038811409406707398155290526407196571034807467649637338579111552793371057116270298298965007358436870883909269949564915696452882500520062661412985880991875350115293271372641719509303662642463108993500066682418962899183189480095568250451276574122055689390530570469093069679123163269892497175174474766897740501310671165615626695237021831309632169329138586094587096522236151950812909226999893969025214986977979037565206667194811824667269231902065360146389624583973727455592072279932139277841792026455958747768555859163076971330729236513820459838868651287644232912790015187014420965070516831115042006994667088983682538343447617912779377459222266441338571276985008248577888259888054373089703685183623389076086741938889286122404758457592881049033229775114346395974862899583606210767062806784437216151929229412726488110583581943607805941375710758835587109701270381773676519122618154059964018270637707725954969401859977473950494366577093668835021046154611753849863159302661654400476870930847115939041876849042546013860154575938129344406868661886359163034482020669333102267097203942072952588583652703915467584886994153930620785236618430448969703358715761303993489118107154692946759485754533245525344273077931744729115585827881766116728342333976299303732908048442129672930686058601583091074352172711122573269752279750747004524159776752633037418703574068105056778988217471111531288325080678739844959187771294904532424559662884095797299512221619425020045104782381594029836964541671854341679701684099510014088321463932311607074157256901493401443463131697416959092007090420178458672554013567432593246226801884356537837737657324351559521470615179768366604376061433807287801600677678284946464083940996624874061819337194883381490917430848242889413293521211293280373497753236794347591804929931320148917193728539221892574607538359962161397193908931909667911217769439384815283518222557231238539992322787716163538900503887165307864207697046710645684030549696293519402808288796055267391828175112292690675016273869823997054210783743494099029236839092407395886979350904757219633530525854657432322104751977647304850422387655181994815605091391721447295908949037898744370589070208751340777106289172891412728236189915613111650082672899374760865380093376152708126898722064309082570319350165208840844378010598001829508465970125342324805138758634372362150373526630246282941395732440176764827137613512468030099237068362799470102672000997236886598530990519380023438167341580724461860492238427527141323097703190260263171243212706582233652840310892376684497859824048610211841435655627916940188363070193875051740901277602455114341801127347706549689638692012444263000365110925779707302449843753280941525450833798659598423684542871657244020873293973086108181065202551205943894704553343252365991036875439845036867114519718213131022693879670512342541456405183750790705341288094987986908269120494033205983950376006576880478286323437518891897701897873915787835249501845281076164079916930392177290784527302796196077751921177679224417331510352651521522528350017486878178397621258621083920676346975713143939981956459251025064750072787905220642241249399148712013010312333648940805848289254398472638546018639388907199309025004653029485044255054126848678518028848847355621308320438868057224362213572137649920640362927877027943070845235555927182770749278050592936396511673601103584470277985775822030929632625342319969286305700584014508537892175363802881137174950133805770282293488516948685666764063784014959762359201751501405176064518387734033891476335113628628833597027145099291944013629291835488105467542564965740155758455994146657139445085897905779295692966244095443363265409206210220352870305452231092773324990523879965399643749700376596882283589487062471474067867779290508442757062385928257628397884001868376809417159218001883951308421050362249271983466783037885246132994654253912020607339041777974606932190724483596038721790877828361733059336020975682259080080830706702118585476994627379633594205793820551112813578107179397259313676704431219672087388848161623491396547629647421232495744483410129926978361291582271420811716845696780158774273431827079154723837579839170281814577072963937033015035288288463687536427676268929083175292552930709522346451734849046009948203530252526227183893206067304682791046162015054285838400638685490753780355186341292028477528385605147310274388084531806934381007224284822733037379312492332266104683388257403470924356230103689010389258158389981273183493878858729015238773683428664043565322754008797348284524902948674870316050400645502778965858209854420008395628258298742784424137166464782475138810045793535358757590987241246478288367956973818061441633410140865478532097811124755729559279645449599005510154513964011200718912141329593322056818124735421165114396177230517526312161866303139442282952181565380855352039807461740029899896097190616815291581783220445740843383003779553958014127570969977328986785844128606683027016343757628169346082228599805087032275226894390489624585782246934986561543131172811159209402186291767433347884480646577444397126177923001931145495062316495376508538224754164814712272215660069195745440403808276996263142817348521340286668874209355828628227926969698881724422235184264082626670998630488765125000262558778829704807350210303735646820076403842866621368749337071763107669924129046286124282116341449129526336848596953975139441674750907107781176642976305947056691248154418360468373553440182533171032408612032755732873431802404730813400828336651453570150760404161426936180822291766105496259949606947586412639498159228443858717132123646364251648992869765849187163665704415812397940978132204632670304434320182814509931956365239477319916893741619150072519123052203667944707796210752799119347495550758645438879859180589748161907051736199241705919791445051185733497017586706294395301710487421880724673705744538096610278458380729399642099012974236215873427790575924641577068986184524656635292091049500283633187126056270901365559505578227703939346050731473509468684437434606684981791931845004429539551891062887876110350995455165114160485246161922846143434484564630312343689489871827554622701517972641394066320209272879231003419939016672418933483413084443721208246707791495121336942618939035568483297088450794893365906670075184783952180165006773323795875666545656555636658162883193122888313515898757356886149593028039800616653753530165425181846858072331781473774979268868895489629954530120435220627136205567165493664265653442656170272858274126028982131976728607300839778592152652892945622865996574892359983092623233595345049671507552902737062222815275550202728865141555170858557965922727312033970598137705748061554116107708671864328655958717605564619455669126071662408860862817133472818256094363117337173183402021402285413696976169095259571224437327259351809788354571567483326496387482801624263423874401236925811487670197530596746309635333768255500472691152131154046613623067995207831147707088772660210752197466169581479095741458829404052496729726646513577897973312102885846294153901495454260665932675227125147108228153481676743780611780809833077480304374951911890387557760830278969799501404397994622319700272641666980530777141613662827484476550779397112225429366618998199844641337603562713991456480324390206713292261699193751447871517978931771429278651129099589333919239146508366848994782582989713158598344267282675746294664208882763127808359003478024704348059407314592672746234556124226263944377684649543664664545760767994207729851982096713934116638925566631705164240250863385714474648681594709358483264053151981824471900572307488985043644046676856677106249737786038321587337502663449894353641067616867586044613566370224721697075782580045761118803056955434567755287852539101834054094747369167404426261051497591957984020637408690735654198293543646967494069519860982216689861039586330924730666460610239456155854555977641492475726981429579940004935886003232409911472471944567884547718920813171995723029552827002526922046237041001282818042044029834447985546539865250591072536797037787251545283726028838806616401531091724353502819132622140667562731360625959984209262023090109895103205832685108185167194801561480885894792720174277493052159541499131256517465704493525398334357191106929198655198884898147351610855750049914415387838193426607126698441501590425188234178561772196197501634281969875485704372680054538766455650361623990310909931940341321298292782824938929378704391395527399846051261057971503703508330620406616442291993579570043865773825095619926052539845936144290917684189112236858541004161531397180527915658510273026197840857719102994080048545310908932307591304475392358253803906556317977435783701947006457243008910865145614223480291529277249091296472594011824183130802801873296460238373071643860968346451889804351775034990421095832843097188672453888936896882844629210480784869857568188712822170248712754688683262122111301245668374848175631479836014824413520370137858466408058823554648859363066657474641074706074140457793694035650572787418293339825779944041471267478638211865544613440660637031397990348902739357926184890328003803538127279427588526248252228243392310868105816724085603089767355725675061570766291363061284081897964701846895065406014681021144887411079175695212118206103424705751846200391334058405500745026549323131820524696854878200165712979900648398185900545926014052465156025235781504057930707015559129822143968342718885855552782538523828736077068889320461878456822867707859453643211971556456053229226652423092802094979096011991409578873793752456046015881846836094637460719015941051220845356190134664167576997727627998257776817198249723838991759368103518274909306709280764353434634507984208897005254371926624336421359544377028102138161813632759787927496338992677263539238426130248677693407036051241559922216956580086259897786451320459192391218299988429087039074730581662179577968385958270027734391284448185949821676776471610036184419810080418015361850491455479597402977902422170093179674407593820347590752981649891716590785271196900878512768430098753643399076272893722758467027748023630209532637568140592798032259558929025142768570105026070367062602703046078753698323382770942960404311222743679034624051323492055622174954515394250923071469735336830093472131689569579632360916041107641265591810181933233186022716125539613084147264544029473215443100737393912701424846799652541574505911948108223030172547101369631811384966881363378054334751495362695427550024106775199005003292327880593709578566158402671728757272792360133756230770086679020187586398016556807182872177533325647394792559943217780224858474002892675297291264587435671020151238493698769297099381861862091619797638013973106171808505908437005602038029209274586349881199873710922811186370571449285434700360470845703552015401328580134467071021884042153881217973249116852256342752817609902905059070712180553519145035987114910996330198574736852081014952955754309057015634262447107575166282622015621103427244392877335465434108799877292827714111213792487567879013094189242785644595599423422029463142217467850155003821665352424925333251945813460593071120966519437673808062543833319322474302161203143270348219674737415995094390200249508877665294283511899041523972330894362944512673890997625990365395182148393908774500367572880192198235096673338826640764672764027374721903760670722809128441003779414469337367883752363040655377734427677868641892041148952054678085203731534763902470143657242485371719630987148791588690317937206323763600965195499646724760014638797316933223450246735313705845908685431623594897194677544338516796418688830691922166777399973346418356083456977897898022079792002590670183066205740203689574927374578780365600318429590042584062674841918636652922589784042862972943006429048626408916438842378837217192511784278490111030086081594075817190118554518853655308375816000643887738298603973722559855385737996239150262339111408381770909313857110944986790981169325200860599975498663582677817733998410130764946057175728108169831530361987467246158052136563311663482956656029650481112236223746269520730208597459391477287454612245564640201644478721084170859721545288261225972569468936793685489583119840099207565060076765177319920867742792288171428193069683124093709284316915615696291408972673122694578102315380310535507498027474759346959992931923737322557006755176495604708079662147538632010153149028918455835377537637839419138763015177671790722074771308847633084985436465883926475893011014226342111499422843882059532316020748893521504649331757361470573897354885377835836375440867074702702536927420701522622269259100980867682863882036246726132033161034668615412977534620073049647355683601687959300094828352075499666746037497458078205645735239783617219857283244729187010865299888755478847090754878138923954148907977497872935569560880013571866954741917187269257024948261614458192120451340531061629967608559293757070186638422652273355497250124703255158604150868579065129966021338727043289876920555206511374429016169242017655821234850671371811179995688205174178300967742070933349755346214678503789677299757687654392924254727362444817342314430474204545129924543946285227135342127276697936135623056075919387755792379479512588095403902753736463153472918465372728947544691853488021661892203936273236887087330163429231431619656760362500475242836476949403758295909129841419504895963748795225694621485803213695978600088724897310320087610539406652213769884498291633322465025518345947597060439340897441123378543006288003412795022001263637663700636999280655624025527801922305203744786058885085583204537324776120530129920643482150499676570823950142807495882058229584442321571080466563177990185770139712271122157093189865678272429955831433467497435977034261382203452668685796600442345236760974395233392106304555906278159569445476107610475776398300335497933896144612121898017367930547883123469507457393533895510866121687204673736007823255263766901285351796551615305172784863932758286880246985825821667501582487472041450432135718627954431352755629136451015501025095265736309566432351038260123367781385506272399295662191815057978657967476600254271083359742482340463765731526794213180753998295368907323267276676881048241251854228022829752608975934210435577848451507981405464335987615181011747411885513620586486479373276634566992641661017498998479903627691553138050840274603368180560549543413395398904753857228149700417654695732131118132912953560884274343646791074088938653250894984668181446407863680031136496685250302520454437741350078944105430865868888589567073722037784306591346778527388441834545584325860389921627560209973595235706956869631866916478635036102571508748631014696217799910382853399914217203252335296394772770593243833183233346346029745516087915277280460483151888945126387606549217884396058887321980037228551254003913452063828063788342929102865900390130462603798586529620689843010465342631831264687347843222664272524628894349592416438496636457610858009586718404462812082363947900866380250970792903519964063931204434559945087366098530709840524225418969908212834246609292181478190123799373302496398880723033075495128878329024509836518674807189879195086847464622355776976913139429481218411240561245078190193094186384012082189085900323288362001812809220118456020177629374624073809594213107821745472553584511311972705297978378262113020655954547991451337454680785242831172432941866007969659102124914474062405620115213079492467429833537046156524421101431742675155405117631605052298651008730989083670463233850978131578386330496995155667802409614372835102886489854214710242257464807376299872666302841670920161139989608672953988366289060753820993695026487211755542893690813388781214333320895180256883095855526263457189745655273192689441281915145785269587780561789353823843615534548493576934030133477218534897845917626963837334384021922965634518464773222168714182149050018865854123329743648324386941581062203433460658184265913065485489704908540981377379079392549160637971464730707297886289122021997917027326547004251184948285804312675977304867856975614962694917993171663147335219339090492072276791493878533988870606395337283241562223003153365206749802266076619246226081481937139556931001307790375300955876633007329370308517562164879959969907773045485251241636821424158946013287418803385201554313075706348220657356173775350956649256929198657909493514729274678036359098727939011488069999993159196086302575035016204047196906362712722833174860958564595519037944047669963699795887290609750567056051110184251107221289583763497323096639576208713191409058094894606577678366566085114406820495722816737721337839350029609411263108705651038794753568364094950601416388889691525998184676824982729075942197067782799193005712113833268055979664264428156897365769774644452484364079948502650575758003928626851631333450435640899546130043927218734225621273047004572826647007435697930387253803469394738658346988351455969939072093267167025706165760251316637054802616382392910036723930014213116219909779487494911393418873084337377302069160706844109361275431374999309895338590574959258642807956306078332983327568223189864578978651451440937581790299797502888919474637698943731576613418688125466666523935762671012560479098306175862097695665937440980910201314798552521931590466557640891239743613834523779178880250314324451730548556778126231778835794889741881732021502772111373352929558101148019914134848958212541974734152731959811142783176039977861230888351631223535803041533002409515280335140713906440620566389570633219435297179520993015997282345593798279682198734499269768366236073348720220682584559923038315544330654007855760941399033038924915608630894727326826489869252708214202932453023252875953625015744005558524034698570554826154092104468364580214275404274090658287571546703237016470065945718043441367690757689876078692044375813696938727968769249431261571303986436779106793934673497815874716278373500509176638125711518241250077721737973191181034930297125876567717820814184063215799146325905422739827539062159017573968535783555726762591465296501082216164849498212909665607299332682155625869448791531067524529786838746224396378039555344190279684574076941978088738972516027375564851765564417915783780604911167725862334583413731455625459206746965001915805397465421296987226697661643355059598992437625645881936847536858730531476074388162281610307525078793750499853802348436125141019998439684505204657837406621096752096107434214519507335624646471803672496470809520005118359979542341926631555299529142372287831541843868361793389552322622129064412006977987022441071806513774291355424840742412021020318668822443339078466623096788484499699746248340292083007537594796590938132541986645433273642638331551895859906069174080354935949818238850813433075157216306333124249964141101515659699516628816589493793410516194881101686939627509089440289757416266142562455087752071950699122084585405385385801903616232583209346395008754310564612374042493169908063593744102432433738574263022686817483753419769397880973931996001906482484572890869650862420491324560492054119707465924556179780241210108983969779096895436443178097406594697515248803985059001564716086112497227018550572887950364209861309227371210879992082140497399160417447176967452657041351627488994275561314504642307652781883894270390322157540408118338028140833993903658030434875060705945540753787645715494131062134535501074495812254310565561578814329719125765081937313740122405511017492471467467599378224631863719037056670501344732701352020959916887913010702418696452705048197685015071540521038566564540113726518063032035396876718028444948011699772353172176530248042879394923338333095335821297064060852786946796914108447574117164026066554228309532994540436593614725836413775139053235192919685918629950262982316562865845956011220625035499654065004735361661609821501780778580328844258722129454643214244791581248129622551472006067008968530126706817520559577144332978225120724450865092338317044257504225321547553533088764788450388219686321601530178739972471510693227308602600845705290881520973947799690804388852119130011214795608478412856499994167969136322675149980130504443893240429944129855582964927968997604432199659699422872532970053660494966479469522157113282056340025146319264741939201638759847480727862759438422560073166133405430472238743005194172163610677143935066958584001399557675044736723490369252495021825125321403352428031957484442715266204501415911716638326993762681158660461890880350039996446873559368413089889185187676944261969411257666014841141144729592432599031259010190349504902806279165843565872756602252478947884547249316369303098261596664662675952873380588240328076952541462852402301319196617071077981713956516474728820069488490376192648027449521890482300331056788701789325130973513424304574331576496521486895155958205464112143888971663572857078634167819494922414918541597631500081233244002243560238644774834182848582368844202115652040699125307616177606146959326356381701062673638032907519286138131656036711996540707678723614458072692730693490624508476456136603223875929214138978908391203459483874371429261726235861377851066960074065238153209660328843630903435009634285829366462661215404219137465574617484474666257978955193312392517277303256466156184526272584436530837541371114935146917967209590623256445619431075478605352747878050736136701187190618194098697552330809970628100714754015977613021620138554661923693440099359877592693866561838631842204971977978023715775190736534712881527387546416682899442510024086363201114523157025198441307881611899075675714871883001811678895187126581409165198749808742292526245192037953864045548178902454005652297122509842555373603612209098596732950713988721203249266888849299997820168462712017262189074299138540627300861532236830400135383047858741335502897157889067665834679734540673637181729203804784594981507104061644353951838281169530821514431670159532337546451452830811474049412561292265054215964003133665326439317125164354520734190401746239309249735083682780197394636389931195232888993677720723607153355100129538720624546389748026194410826958726280297947510953061604626116545778399405450158461167641028167227205392061037347878736849927036645841134087538151745578756151215608464369379274093907692832680819895866938745487247760856880472568636962400408181403728569788506706804890949162584218098090605845661589585996469596505798841317122786804353709616349738573100092800507863744557349773247597242641295166229485227956845296439052327303036081733536577238479225508496676115444632437012185443320355041864078739431500740535186531325279889059538100250361599935668146959236405399547364226734947638016891375146011317966249715666840042754196106986223288736868406705564879321791091747649770009230119154004192381257348557144581227800307608290773341748927835042444429264506237950214112328992508937276771498446507140526382724440010765264974690575984183968574748748039848224705924034262874312162462685498860955774494362784291606645546096267271347841413697764807253023416198292265941302108780089646144363318373819793773952615329899194887996994535590628577448734909700521321849702374899136384742822728741999044867310345432909122265210089496798774691798292692495631220155578952147789727613498290560813205370853854181916882105056699676359713221410341116805939531156183222863476996460659549102352873751989485894845270313280579214304893602812355687491888598396098929563065773637964856744047414489436119638709632489852242681512392550797979161434578439682579812532594145625539300316941634019352118959874391327399552643542030810693780226091092393909230159051232176301139231641480468989895023375095770067245566617991569153567785618144607246577630848563424749053305896554056137214375611945229684849093315427131950364128299558832651964089444226161093224145413314323227658347296238439825696710319861759236944136803297357170012676210112966771279597933890934948424445872124614622729189641362911969598427921032865409122150986768731036945870063942480157461173890559234221851621215535768285030595030293620336246825198153261463919124142720996275403198197984458877095865859656949969196243530692057894960966203657434425735980963489362949069389780006760045302103824839838134110093433772900667150332273485879015669845407553445577070505415972806658259304525447023730626934947930579507464336330641313210530068556704410864739748193170545417174328098567764294921380820810025561546077698231358282527136823790893147696514750589841903424243103562189685264567791151733540332988376375034242677582658593872079349835130420172916629481004557490525355908657032928548722504258740551566433396446625867838416752846307143382855984922261537101356103086882074358014852265742291382863805844772204348549728987577806506318660752002236056989660938168810512634526510338168091529493807295779843271434136108498963259483193646237297982662966678173294045446761327901682718258748413882570450522518526452352520509922519830049587034280890896576106565757667553323885704564523580905002782081930769443699196306032779072556197076017315084597872208633225361778545345783961758051414061478658893421888672099059441612425895829105043430287121648170190625137144689481568753361904826359815676806960687649442209824419667352201899706458223736573967097078570290659208749672466633338924858812859923780781325994213146899628494409481841224882395337466648494495558743321183879578906108755556427154350039822034950379665345401179252503977698467433282721698760158699215138136507421229374030312625520886602543521266199607360147281936229708174196730719541926589757847655592035812735800554895241836073681042055378839612868509401390321762780964631559432755976976719277267133117476590339139492159452312319285882579346134205250213800583285819984062851467752355356980594220760942658761308131583956458858714997247706514062186901194265624299128145951064815380750637334604070588918201895398095507166297650648104544732148131124247646095334358916077902272637840938298401385725331043593219966575477212068105689167047270335695396651717039739181012944140487290002597914740422944011702346576813405208176914209748450022032730920387277066786304640845762738779213892576313833403946745407171482860156495170439588005735100647765927027379023644830702156591147199670315400043615067094112073080273407028564771308416315503114743959598594555575318936843042019113300256852727139123066967619031150998067548509978732043446581044245482829084403232569655653168980384451509879247753113177518715897393754895520405871759978626700710112510196228310574503772573668935390487920395854882228369907861228733145914506529979827603358386212142270384665766318950817854481767581122393894712057236143581686980860461563903859404250908063656850434041174525060500081753687520408773342942766639732798783529197676447786817435328624393475063475991748300155084546107312338102384541738715989318000080612770204672142458245759923961344170326975913360825589504810036974475101881987560113348892924514621955750384365220403666011673595996598994379974957739763975784852361753818021237251747158817045164271272269958317563398269048767178077044805737436816725702513014121406963205380816698052205175648787073954497570384354328667792383964534648343791170824113793432395914604880234619317347386517819313490835546262451356017725781143203472772539155811855809589344688194622897242655291926979430517158487960716975930429997626898807387536947759053711908730748140502214153923482876632101193814664450546365082807766575852295615500086904428004422858939776239304032668474296311021746214712374150560801903990201514927783413776296351935095097075120638015327871122551860126014146558567162474284183753404989345907028983063774284843928758652467411830378257592109668727219192169584734391887166921619694065580425102959482903475927306356546689496054183661679966937140408639030551518297634526874272603016273808855059849539833702797585377179871238531824149869777237991955089352012376080099685718497507042471886827729532673836001307355788665043999170948714602952420621639292784435684940928136486056956736950449711612569099180082483073062162860165973429505519149862923351247180744050487418687208819228014704216825979984552660799067130110938255796153459617750536414318862223021101442287454636376275134174502478177296193957558965996758111347097121645349617841822792197301217206239848214835296470085737145399049130578003735000350038796041286015323103373398862033593585563520137674861075530711016904032423181414234787857590071367962551783118916539650878700514627873171383571546449977047108925540045100279176635888604899596044612997286112458207575159960761945826568655453288270270105469070270527609889622936162601228015008597288950254502544824499391917155775333211067586744398372588598336207222486138304331758884981808148754327469377384769131970158827111859569264038253116551097081711051392609833406541711848016245065488927720088609646718178560958794786315949272681893586583029619268592782697595039234648895610193455299383877203576207557040641741856918106047442745153110073428986720625070820505565915707747972838159908270317937855693188821320071411909884891394046754342072330847507457409075143631312825589974134562695856929131167012257700162400689772265098581715283604433465377534877534302832866661155300496695213997040946611655061014014298775937851765203090704751579097790043544476223076238773263472711950941810779482745871334153598019692541305888103172928830188364505310053934885165572793222390138437688312901596884721030431207399054691218153103413734861952707193280919468558154903237201433296791048551514004072461497545980823093344357963519623832581044559061860762205574958810456456460620077033069009667682943016836440101139224918184982544086460112848317940750314328770095434517110906944335382314424983011500555274840555677452861066710550822505058638245377020741181035457840144588787213740065986987850914392175645170580016562036283178263487190110735543903760962087391459519057321400076828879271542765828166793187643388670353374421481506162269578532521634249742448631993975873976365206568939249016080851097604072934446781802387323470952946069809613363098410125996933829745007587196532767243810335981409697801536821203555024786459132529155982789409809676620778498277631485381120459333765552221491064707561828903802044738368671249860278034368495460477513446064639724944945113595731535704655163326680992982046647871267658574679057977980773006577070096051837211132594960216083840211621699652744320686276994799595274706231183873765695760190764537922026980560731247875744531598724968275482490278391669755044363464878510517961911690945789360051809802999792149092956251063783915941829322774792246394191806185449304210319949293608960927713094525788080144425537549134611578667197683111338797739029900794363911991526135607483562812708173025215796189728125782146775272043413720319367623874213065650243262157293651145571217482086330537201880815500032435933450349304447314131977588083289412913246973236032520066119837262193027509325556155740328953085177258853208105113021967779496306207006084421323552722555917724365617618727031126490034205710725619023840693400884979408058638399970133354418412705476876047627790080894482546467417123744444880869550958163580779928270320996654818438844438442163127064107822755052378558230727425726988334488240373322571985065074081121334246907850474007870544047142348437773023954575777724620365848394632697951072273823680529238678552492145658645361485913006605498870225150189932036970129318120714371908431617231275713306154358811272641582321095586063828959718494746595921769385723467482626581852096864161330487048562752949122238338512519839862326655120388177976334035424519231546572255270292480316152801833930517366382850590756498730956287183931612209784982487351910166899429508570200390258737215704936404334784042970000770512377294286421004822124015437831523786610743033973919724310740982051045927462553373354568163049718833703263146356282124923603792391212172003119699835623249282391669565869364213844153037725236136898646072485164601627046201193683423849115406186013643059671471732638181313159003936466485095541651157504468948019342633155527659415228766551599553274037924764585380627991703370652002228261248988401833953518318674688655479931491715219943067189037728481303227243875794648843943154118394728472392034580300245691139542666008637852771600769688746786881702770014550398741542377084401282577204502346449850839786289293242630073806349671134774687915693134712119603765614876369307637081814736446048875574095977057393038748237528982898553852096383617073577014269262792432064420920524741322052457044012376480880483159569914665805343122699821775777497428416857038377527175578119787860960548020093538567370150787026927510871940783675772316430212390729302966380978298456012715928377592295262339066441613257722911820656782592307513884899951851800408976136766143622995221796909963932718891778214620206732362890041610689845978367677601519475460759116157286915606735444741527627820268206458195722202470628867745750136530472383979320987853106111400729625306662958340987683690923485765961391864867611394225403135444710219919648094792595428403868600305371932144841763426492547138126874321624941781213135079968616267538990371346979749065578196041994555116128411632590706019417895441224676583117349502812312372765244630013499674403420017770180572219812386228689933578379541194913072015748320622083020805434399079498673585950421801594762157962697412393539056861874506572638240975744253425194490414326694415490034271033189398576766007581916516030044850410382816562551699310048219484072256691894988354467370185982689668203199080644106635619827977759569267977420070355267857909109842999685666394312372233593782724941894121418089214618671753181008083871299607856098553841082221249209309611985084496069609394696322522585892738540091916049644170836725552481789104710274098870786174024740803336413939804763356187784467432894307402173786919294810009107255145820516078984898975716339337996334012692747094018353387347486030044343802808307502118017337056498941902519541687482681726939940932218286561918331188089211164540510977914189200363707266370596266092162599820204072141159525909587397696613440269267842431695296313343168826391264910926404079309912071855584554289403269658392726475772626136016641455627126689557241117377209222840157429409050870188411739602177285006489021038440858303576737851682871198898110272916887459700999814536270623813890314438208024671695106742450313960782258844496134520154599939789182114292397075776059285010224583933491786762250908149388540633086431254222987686774242140215105561003671533821736951791550425202638478437036979115237392551786437739733075463548263144054319364676125147904305379813181015448465883854264380349533424787806937672981877608155080934191232052180576445733091753128076288210517081242418211120994465957712744597546720524881908972275023914018731493834671262914131789790177487110203976209038056101872792543049860166176319169994183379670964314632005226556261131704164762940951031995961417304031448844016180452184165050288456520972298215492612751916056760409799367145251624678308357737982423034369031641777280616567047780603164352154174425196112077051709031545473466625052513247130651729035798222533840754495904162129279337776238502948754187136676140817036559898435199861107763524050187979426655663653982694113445449197611514388005480255376051299773766749965715551009564254454724306774580370578000507658803643171220891514939113869645264659075613044120302004157944239015398729252456714104369930796908273046095284982804709157393760770032501691553848770970616221289629997869714479662485528318209940450339371640144295394923937446519803725178427506703761577052831212009581879995593674766128843814888798559760122693402955429033193904315733476683886351318121783826823100279234823745785648288439307237087064553578865754567490980242676439871884916904995286422431708848875156447437793601330469418478478619779931223986358116298486376119176787320051445419565951928136535608315169992533440128908069850804874913996089443492830360182415211361332751723693386015698099505755207022221306015803980357560943536687160155401007118301644699949863013353963468851257431665708127304649499443312958158995453363581350216109551112391313641904542570929906918711573662183666284387560923857392851465788405489714978017038052784546379296731772130956926243364808053577742927504016068958731472583103409073296071130746490422381358913942606217444189087537140982351707115495959667583859811042844118526755972520259043371797834667258055741126330839742566700856619258453557161294110221814849846284448490382723155342638798547688198686937028622803520666531080875470116880063135373657454610731077480833475683234817927787008725329334330951696812640376302444910730103454568428832710292530417811220016901637685024450026499969898986339445691783349936185868757598581599358587522758493414027031653728236614386034511024856082212280910189930472657563154331307269561643436345175317575348605952628835404990204571873184082189973109012788805135191809907636549152319865375765623950775027068174799820832599316696632458353084856659932432633725766395179884597463812954593605503719729698177698091634360600903855248935248155043600674862811186740045277141022314463462863056650408090239649482532615257635994861164350892215489376047068860904953854065353066388539140388006068170885467251051674269480253573287922207728768493560847446838883112557537025390552736385426227992144600157739109568954824067319889935569200875545044526842266675266926819456637490569899300780822832676396042692143245398254824398223439411022652791708423612186808708041593687496589190135232173586506872421869881274075950148398849105648297162103268258882191508097276179008309046146308332657638718061253974007774330303840260955977035698935579231005527627637001837334027782737206233193336937536426424031904679690069179273319630775756494066692938567153172800340008810450654914662640110557375502289583886207660449322888600341284355831302440888451864358102845982997054171571856749832814246354671312004941888765640297220511331363095892396960086796564241212890018137941175609820818499359814869030735238502789522199688164978516111016824439068082063654106111177541575696787049209338934020367352024222959307151478076837136358561686343761230890338037863704954827330380278859659981666666013276557558446261705307611069173455188538650901347447009930149139043009890777099614815230798173958394293798962860291907245099290971784276672593254192211543999688932887107831444977817695777797216609764262476914432075564893787169431778519781821906387640264134239251238586866045929514211408024157955314253616561004657826896882697338068270522545258386170604710725762805454835592296269616388601662212864428036924151758885495228638904638423535830275637294687592678551026398245702675235189640490230032349155826803101728324235106935519562594771075639808362121183272486004661090158959890487120036509838700366791219214080959412047782114196987646142578063347743128430777477204052970218657086084897718855227122570563540774725081442390542359931953194439900851737378218740919172221135188884857030977697549334635742357072781692679692415874270808331180237975255584275430915720414975514686275377814574021738295993032298772522279083478023256152126863362123515475332299448435474381864080988189791820531258226135883143475405871108339860488006771504724479453471784403312439472381399366848287540187712851418124700012755257629734103729564566737246418257521713684810221901503901043739151536804073911202477836356579142944891561326063064375993626226888957932058195733272535796420156084756851059354676242174311495172721999232509171614989879799796752381165131367446573778675888724737150954211559853303726065890452263252541000014666000090297174144712122433644474011095738120783078630855031959887040913957226577420034452620423033743295304761560687167906994512172798165298538280423418324608361238488432161754563048749417542624778031485761998081684717483690457874258614230445698791384527574460250484638867159741086671465014642087211832538857095070870037893390320201980378707396844588991606317163712180944702193812936873960692447265504157102151638041875880573549919303579019242023352268077455490570443122529580044093177228226410374151951575594994265248566217543726796686331384579410048716938115931520070291282496092421670205470055922083192859813422660955861335741884535581744121985401674330615165685863342055306660883460125828328196358476193635906517155584416002170681342258436571758336982130554106368134523356924064409606964406310826285026978058470493025869218918938761907665127031127504430805375642239169308678612170231902463621167249081512663324657212945195376868088752503948582870702734180435771036086770875587861270542696901622042963955359672473767537326786256644703732447958647032411329700639808907723659145754085788988322500372838538268372041665019360954267855746712957599469285398053682204873324680535249320152550336657287018869864132563133001023206409623796819529500640874654163195822400598912602828207797817381178810696085999531769488969691600914358434724848069480473433375858051024080733044821776139854747695005133009265785872187151707961955441295991174917171602693552836117298636676858435654437377661765934199050422730262721442995157961418482890013010167828539417749184032074476818536535261891470543236655140210891154527950595428873455626048665824526568900241333999553855077344303243200434625842629030070840753411590556415303526138452759562221109642657016495122574691315318606236786334942338483131694017738959992364496121021419988557263503192441624357147865615139943080483371072569851145911429067398772311940985550406636515625394866739550272053483614447521958436487172025626091089417534110968010324148025478769390188671036191671284463093661861069134398889385025710856199977098551592544165057031607397869485966301020951521880809063775323337503666205617213595053063187963754018073600089821709022037191628083831972011928156548012486100301498061205137502967732488131805868174553940056876346807510364400687106326484834007549841984305017182881533449883206698545195238925307849044567429240429619344548478952986193836386362299717525854650084724255058438931099200854139534352854928965863872297859410942535594863479357081433314493291233044836085895701066421803169918704717107618286275115649315119146012923910283392822731026865300785833314690698594584771142582615319956856977923108513611855996904908852843070461564676906905323853001170672961552254747339984957629320889046904546960410441486254768291483714472594921941745040613072156918988476586559556986904346507547347886428752716717852692803275779080288861372494948058581203645169993489337441878543964123434899046038456645641394836343439055969432369135883915570947536820925872254820595392248078277282765321023647248803491120311195890075376167856121933632295824327751753037871976190930453425086192362464435545480699670905067954512187370246903981583395136967233542405116187652161243587145300441401816822993972201631541242209856390491016698994226479540755295151959963437605777943362488005724166333977122177890542573752861832823628874191346507725160924418724495715489505212447035070309699461830451343461229377695980651209897754450898985239036512880653349181392565005439519079242921371563068977874525661452390514639322038898221359781249705187138211959363565428125545421266848047827834250100872119323262172252044848092323255924670593341112307253364691331194516606664728623006338186623847885831124858481972287760862658008224601741207550233542140326441301729554383160758689128622326817340872219347367096325149042458621863061689551249219087970906525343343715625179634374813060093077032036207741739386654816808667065932276173667921551725727168222912166693052142252913409751060915753614755647899340791970343906776118258073305435227057082394527248985981913487931834801986604050788665748067335812626075814191603577271372683369452469259627715020123241669760121076291153646670349334222712031609634527978912581364969885864999479294519217146410068449472021356755526893372408466388265679443150178653221103989717010929716500108511290047824441865682105286154012964887246356761886660505266664869791460178428735858048374748622387819326500866395327885630342318676527145509560230167148086043573235279432275605045731339790416582558206219229692161879832777481336619042906210612001719310435003244213120694284335572304319769604988572156892939345985299331871517035340390072932930637274398666296778060420076886888063988463219536847669753702082104015156748933598870387222355712042003331222551560841677513056917010373500649464066979134863179485236793444029345834940711272788079417509886835079239184235979260008784071322452273314275261834461418070355899212359133848125266911287700528518823892419216607145961104466924519777651756729373333038165262068106725625335381613140689599345533561193868038611010713123223550537127687940943203542311184181025270439557002467022728164755994796194219835725791419118952098414617046622606837964836628527813058237638017275542141302719824600137427383056507130878044727408280446782185416105516321584100677069767192325623851983213047269794660518474422644608641150403930931393005776143319975243890484245158871100169369693162531048736194517170931884740915097562880729850556528093878774086599578668617360359988717734042333590150274270716488583490714555501297683733299192631033807108201621127869365127834734658788722503997207471753118818328440698100777226116117662169558846718916511878922503100838440596052702713113041211422532753685531795923145235311627008989699624553051703125975978714709156715994741171869486290782609334950839090112259567966493089153852516965411579257380302949146934932645224877630980604984806652648780571630543851625029470616842086407520538464549369684593488655068424212416355623852662705110910325772970897479747195766711440806931300930852418094790142881725665790950729144312655901670711827221207158870260944175730006005477513770594405826555903963598556167510720782771792772850485016836479679207573648745135944787588066722886251825150679265730323282419576469447862140499131161946507121897743051541758727873842015831603217201964159345157847917674473252206874285703259706048034314273603551994362040319521012375581049981272069374098422586064468846429265935815479753192096085789827521101152123316306748563197419001858539116520217064671359891670397885151193764560232642386318749345312655536867883910933821239714707908619293882051927037292581705999665113405382229567979634807493984347491183196811463070321816799745228749334889039629226952634529513608837433275629222708698381236678705777360266798066003008373077222383006266895408386095380357133255828206600735355765316311043571935514301324855581993326329988371152658398163512749456790511457995656274149090864845382182229357549378338527784630876442513208689543577096620640276346183518330323425767292697228073870473961490236011940917355811771492501397155988272693739344214231674762974659561075165761810618380472690701102848427753431935701926067275809366739999353251616042050271112800633505462780468031494751456121647651780090322447097597265431302323627825964931872691791692663755706469132951975704062685785599351612519065184059759875447591291581720375509614717245434394551652641834368019351934685658498144652031579182811199332169228285303136918036081810505902723647128823632905194103076248997518004646483825470171568185653163253373139462132114207097599007045532465159657179632669910450784885457279813099689961719320220320785383952676754989286571715646021694993175969311883743981927740570478023086973640272768146516660342599074626855117564423496286771928026752264936365210506815580085849085617567519249730951141816723565417803208929941897340816162176079377710100204914417260621025719686048906278021000923216936866175323304094699175197613607848469605175460283868349978209449834796188421613798416283225040134027570828709936532725958914794159052166235758069905517145513682341150214886263295221499588494009889083803833199674645810908348631178888188088816478909169254026989452339018161984503949976922935061492173624469529996661493128917009283863779434624344080654388665804300463807313478058747070666955025206338076529485775288905117041337161310714538702641253550255655239450640173690259561811044545715172200381199458813005744802453351483100201564219499592589826406811381716322512458471788116715880065264689558590943069263294303380375169637817207588920247600612981679520691107912590990534889861931096463108854333358835922973859308759580913254751419458426300015963799411602074776514521393449139240670512923372569189190082175843970239152738007861708879744925031028648930256565666013644933895779141616384253581008328543687484836392017813717474623317469561105439805983281831316585828007049992227531036204170799770206546546255934337905202649557826136265619916158084754585289320764792223763052208709187198115708649427355300875460071316162405760470716405758375768749892828176365339398747947493381938523278954829073489100202719486976876416580340279369609021059049464843573986885714183256844004451343634228598718041586421462813183039550312420895050572609687728413379077042622939744931524128305640847870898004916928368536999625816628229098187501380490230861258182243633054568354321567164275195812341268884455910139483741708610083976096445729206193516861646577284401705512742308240540375216504459826672467721885809490690846060411714203692957510924333484396139958759203639995963706318196216828085645918973374768885526213071951622508497370860265628751926401930800975502554066195839704783706736463732233664865573059364715407521924751546459972454508768958364278742641767311403733749950948544174687235015835706630149016192871735413901877954969637877478166329327522642809206187231273056749146661246254812367294369700864442921687224782730544214733508542396501565646412617827860775953753039418896608442679225949884819267630348442052882882514945363721198156932983050066180417685554701646429935561553331635721734721953617035681596701922344627788401887991503268156343916314792224747396956083843909218490800400603315043057677729174192923660698008317278619689673513009535837500433809735356508615372490104998825793894814553559554578359300501049774249579313277790865497131263749774630636274872390189834741934457034732854732375333034529247785181917057423963752529934452609141887058530002685137334310923392162672314353649344274209076908344812776955415784781657609112134526220757465061990316365967851150954471981420483252291072643105568527442254701044729199150317934057802065272970929267698236913073802467374422013809910208413238390687067937158281191116251401755246045339536120462652598397580692644366298513823821034737276212653424554692890763946999566789914098614355305988735386553836937542495977929706755363201769926789609466367918247232794545546467436026028801905339512118543956560705848591805825321819999033348373182516373426342593217896144840558509540115106166159442628583014636326641485760115285329296126273967718608317953766169984903409443115204653171408251314193822892719022691172043510390515705226336507540236414333127839103775337653503139959989994460177458756088345066260801699790191890706057541183367075315619120456602105577374016116094478611642529143634137259685271727715972453466272896931437642279477132650550327814363842424874088301131850383669817731279774204576229697193246105797951055517759277565185746202281663872806210851480798291221408856822252465712389531366607769853768787222706865990026938179293058081532541679335918597861491957701486161230562365400112491684516057523658064278882017379887604220804873390591988774419800844913580507797637168225055378337343298187032766007971697072380974245566152860930798852676071938114454571592621248122258541690753663512038000831081140679269422371769330844631688137814429378498391626730321419187518075913912412706808522883130111395692951712964054337349968591154102546931908222714878040958362161421016347094949053546833418620525846859892427858132850833203387808128597097036250934442916828482159133202637327447370099855547678313940131175699276012299426534464684840313917879098600914793129463156046885377491155872186173543643871782015531800031579624980732023298207393985585727963216128538000498754249924584884397590857063780438920424369065211367715910018720386729415648397127657824697070996207018631690997190199801767588038239655554669714020031641466275852775101550088834178057255286031341464943537430808927296543304252324896184498707246378924903947283814026044448280545265068855963160257715265032027844759255463302070791801136539095028479444923399225852896607148593521977580734341551385331738006709144102977308834230273149383318650910971400771008530824813155039988052505986569228079722406578480533360816168833938687900482942601468364492938013464983389540477526105741948478412628754820905481673843741158192260384967060972565600434102012468323993487100006719105871136169768428932829409628690415148467260652658862550424443237645150056820252514935007192021112192692176351626015806039825530156710794668577775849358126164679825039339266752472344535960255766384003847704047786400528441363603563241551805100361047114951071008839958332596894805106999199115325163095597683548846459403000256337367077712914042723129112181694008032718639150185991535769713520363544492908580320867960083693088040742548034849523075604892239135242392995353536494752661889313774952690085397370122643317357089069872627792040414900048641236686288040716143801999240983155781241100840461615862683661027987499874843480436627164780744951881752013713277109267749893988291122718466580356175497444382874502155829176200100877888219881511943478684702694341799347192647195407972251923485065113060464648145842206093141126305202359645244404190579884464468673834551771713178200217810889008499821703748384316642760834811920224355682645505673548123615023581848340731502371863676300168167833502404870443496343373689969601053282644555157513253692413258432813098727539188572919119310681663309484464180051311628605711090998767404272621778252697861373474052673222710903972615404967965693258362314221953569840131062870998110108983229692070542475997797117179994053595221473325147135519313609849824380695496712835772368992555988950967859823104728554921497338762685816040676082370116026244340016621453092223296784794237617676165014507604279711185146189204413974915821899723722650340836091294615551637620705481890839957860616671015412806348762614099656391093182625433143521917600324792184117060045534146857933964945773526908612449584104280852102821491187251688602194214272870456892051357865410668007718364792563677006577953201562805455555742001700842591985169013241842058700282239821943710399642235992623476018765693080674397182937361801035064511667920866604899308689777697873694294133945218056220945441285473247043512618642502271180019042053565186218416060392021632692224803552147526252256477162405289387109178135924447744599849324092791885743651773631294750595635404613386544553258027290207360813194234124426141386637635396506224152857624667435228170232625283073326570129111071727242793565622315797406464706829848846489440757618465780645116273551366023722747340340598603875614223136161382080533493541056005384403936124787194683853458908705970018594587405432668705337195145888088090333642710474564008866309773055155687972404927654310151416696993528568729862267806135934531904586902585836357274309025987113908978811812466100939825728137235143212121755778634601467756624556533701147902217524403324563327336910456406631755825837226558834577290242386496845591816463072132188289407028679396879657463475942078030474270302120666155230358282128159943616106455330156121191359197469720973367296226961689183853234015624751892122878900595504811953777556931289965666581127258571795228714661523743451490854774896092670753478134413749589028885178623792430171544883525607035587135791240784719690201986857569621608233613046580871448477621995191412152913481407931995817950706893608150647360146037079059617964341017386940762399559694689764574124290531258053172813994809172350562036142589127971112594936042748933969117846285074151245344521836181064662575114750145387881763166405946769172064529905044793311068578010841943630644718976135690400992251537589438824611202249777934939685207641459103538541903733453429193163841125585482585135405199510969259357611474682009036010117404664414020664365164566442965671220151787660179125907503316510153235074145380460619175721759248185512638178893324257992092939065083352635886134089271270086601901501696773654294681796301434379994060469412237303966994815531842763084106028045135767520537506606292258219719991660216454023803157037534218903384105617743570497958695526027486442430109288664863995611173843008876422307754265014837672100372815768829923735046041304973791295414455408555305022824329204281098062366895493963222925203747031036008029770055033738650420885857515291309796662988553294188828854790644949230841516975103384290940485350781249450794863372666167530346872354605790875284686571279406239001382907136888530364393314477090239020104569660991387130021171220920709475074447129495012208271546911811988805762894752796301459450273986745972835109480934184179033303853936789804603860654196510072972569593340489091637180045148269755675959238705010700027617277452503601860297215499343782053827010556843435828849238386167896901876261916303774847354433038222607586881034963793273286933505368270885298529326902899187603889701803897791550618092165594039726650809827347177807145754529311463943886520317098888344835196843514496273709141741598511856463909072327649062001793375623667185383010000582364678597490497888563459678861209555520819916073430858939175091160484856041284056479520310652177884041652954018648182033597346458652580127703669283061131351756775565475180142432291945688350753939024650222172820677202984276015558568237841559371398505276228325728425463960631189439029281960246971180660458376209351768926991489745184872104509482766020421681441829955493084450025212414744694208932579541704917045321159469150867626879021314315819372678523268600360445388319813113837553721807354550830707396726712218205304893365917517778384329912830528492167259381758364964745531105058738313463509048799051039555687137965066562228457317905082137340632179810273861477198148056406620525625175857995017377044061761565069670787236662673516669623382132154070788578278309148967028383753597943203764386350327243838651948007009238796334684115757924506185101926579971680500989116436731890801558292943600756526649301221480590151287754231090389674536080146435110694804514831300651616392827935034927751631044318634509058178005602078417375226481266760214695124257672121933452829320630878785287962414957798946562247001498668966785939044600428437590918986478960789976415657164692445657242739588601492188140220996209784790389170462744690760153096832104873217321080167436331154135310184490678576748542651220694855501604342416316339930841244942408452070900871096903931123919946328156682819545305460973535366223792906873251067516314788785594483102965301522666741332063759181085388341782981027351036395678686888409461860857827733631705169368257389394884986180052677887490842078352192700793382658547145841506101497319851560926781284537785997762948139890108928492239495756859984647183487308776321435823863482454018099742546145704782892613730344000625710117204348025012094136195282580955148886914931672405836021910447501983289679519411676724059510500196469999582422460357424952118985959250138817270822988640883797638317684307910762610961325564827839498285368520238815440158355385299945223235409993430625387469009519500351798784245650091178697449254400346493609124376768703003628771139251295589452290929359785316453593905123347635205269211363636871201846921112451878692835477357423116157670011640752096317680096756476660228582372084766904417152246215636469371866056601657114245453048834235380868248733790613339837627119991458388154892042647299503239867223451953594720725231157952341250882387165079782342194923029495187275741290697839242673632053545339815993927507812138457680473289406071053885266588958328324240086821893186794666272757989369455664698739910545294748194987591903006918874190708221349268398155266569752257409111285665507799238542982421948285006698423392145462182901313402472549092033395425019464279046166977352919678879313727769871536901875559056783865125235814947411399377134707294974597981466684211638786368244074657223118365856882527114180698755180986357075094414413796318684205719611954046929933020131935847616581021378911365648440429340109967065766580139278662225926768581509727853575311378380099262321732868024233879992818662460625543596778212502391940933003221788281403102764375353905133176566445104935345570769996184815719758095318629319545136878759710504659198707595325660250063156679178098644383688565170260132844878214312776682992133663195797146753808648665082512578288014307853776224648330388569417542142176368230612079141013243164364365987236806413200461414314969496149496781905893108016708060695407560545602500469746432389735166509086647552788117488897135074931567749288954256728065323201474063116637866268651258289062081175062342063410523309623900128544741835642888747826024957610361350912978327721138689882397783124895975007206058336620873093321264498913079350616959595945218435959000942071016302086690327952085189259083645626529556117602257540714092316131149515708112861592446065725519053277651609776306438091886921592818914056851689300119241312234504649129505797112563621741382530293444846788066686726465687911872297884407908157734219315192252588902453355760874793954287423084702260768089222986235755055644156976003872944538236470191475066196287273957716846431061926424366399558062356209874138372609728210342512207812532070650998395702204748795440384898380991555484854960021870895445580436016837284705863059726255076133170985740283492702578140347747856870585276223526140409806845939643024029130144794685128835957892867473084489250947288915601104471085485751959284936516325152004586394923682784190151911186977050098108499209130047597518122618879616558044476047299664071487273117417985756097442695589526181122510625479306965294243061046745092402390712151162695746299524218802508426162576918023813194617593234189092530596469870627230408923626029521759829645176500384407929498708313037449068848784684023732119178753863958018295061042514653487119035321863423994890283447327505679896701321657650149757829513464988584642415789298890282587027073820047118260888557527721421027741383697403052925512140487744360727873545541838814406308263734814117175709865053398104235474264823307164520270381007930689713418022336907046491176467051283342804999352926493537497806327082089075338548519198603302615607414313503970678144833660084052569195142195988496833982741263404027423306664211119823205831317005016682374572979221216578630812227573017249602836119457602552682901039725637884879193833218329299978905228199451844044503683605797088809661910328367511307608037282873592689180003087021699084356603343992421994971247312635601574430060121625359479517908071633488224694796237520824563260109686985040695342196194064663790220033632642933095170793549314042910003742884288194881588152020734719888991404334486637543613079597357502163785884492157993228287594985020725813474483832662647039025091090137684488824524271094068725602869913796107849803934370571510349135450557591775361842224244589744201306289269400535952557643797200661251172302951800267150017019720322065009407588805044667369509507843396009377879742938701040750160215281459908258990007744132481789296714757586104047560585341253382778929794332302159773081061211218157666672750632789757133716741677331942606202328370731050893772518035517102644635645516904282382060425485638835484790553950391432776115622294904344980254348130829294001690680063515618035839121081523791511650760799650170706113340088400926328039752561409296345435797733788072039215285101496130336994400251936045456897694555224613331612811031451973601560138299878810818583436679689418389212643420494032149450760069219749622388578850486282384846789383843034875091742273541363143769156057422360814303109904625338833933512960108417489513221511770187408028030802220229251375251997656612660476998926427878792211951302012538997219154241089463955597879072035846401980244761488099017082041687258349852663677256320169977182170278453306547214397189113086032800309307671842750527689353364650922950248001470421511886868380368588599832652893733964387357773927586069246142919099502425938744044386416925515198552400414638367092187845100205806510810252966115791406940463349220761689098868982066089108491381219923422611655944416078513156395692342261087285122299824089804772500733962040401141382133464449558385655133657329893922185958887905696158496269692360898801774343369772807110657878854151650961118463096890395488145400256968673202270888536085461977743599693166885318710751901797775698454501229978078344698825529467135612800538425831956589044157638804492913402179666248409180119042644510676859147863088140577755524464321766308160094542518668689692490684914949552763961472154152232257715492312044141574781217265161579489134215274819912958385704332995231991174168947752662562238216172350058924622340616283647174851317424337603698848719371024225538749445220318306370687330778140083922224273833036579687612985536764472662282437541265649244550025918903670114085497980588679945460300965017449858719496456309605426177633179439712980628933113772861121551539261543745273591004355663521025776143049461267922112411191570789124010308464795678032620268073970324321795299799502440361473518003183342085627057149347372205138924209746565371865632041623720472548049516316314604476415496182713546956080957405633462061424261643505492644841061930419129642528080483026420798158749953995974358708450338928525691280328889760523471498069522828615717184994041963575830382139728934579619913534974259514362879656616204599237568865166288414917626046597439506911525695580845218239607624874992879320912255689391536986005792268210776849136761105932512443441123539350437899256385055362195991284084354857167896906419106074586712571566040107585710868664865018520910485352669128314498397668199433657709794429379959578388467964923010174951972227268053750213659684384797772794963992660184950564609956883657237186557382526562758160355344719262413818801302038137379471499928102705151350126125360783004492060689633350458008915262878633202482999627846034452531639877535947732277417476678913474482680049959179761977058524929958019114764537614476196298034818438797007094120553425559525039076705411026339024367892822007369130414849383266425758035188689578652819959439757746999391209656058310149973244698241522485763382189153534962908633312049077782986724147358702349993089548760485390662768522696448428143943361661343543203497748351097612596942770055526702319527943350674764007160200036079867930153668553114169408901215833242632639602842449572735814461403333185592441483208409334415651313842966827744238470931430790796792119942493589134492629831180570662957108868167864460362620354572028242188147362900226749188210779501226930302030053530764210668046823870391111774220274143994034277273990941505203982804345638481975442612768023305437105559036160760200361128756622023189220103766622498362427773554895597125102080040165464915849936794006189597302756127337268411448136235750159421896358431677068425204695251770256873928917785042373610149893804603767045860333083794025244572133602724509893460511645755805575841375327748819093783955173815787558018937198571489999513728762497574153111522634673140307327481037563615559132631507014518456099448831994498829875141624493115753920787760738972267034564035228926068997833926068504628194027876111722595506466813604532641876200106697682120253959327215258313459178091368530740371673026488967551927523112335970286586571734540216635383211905392433641348790425056425666667276270155348103653854742224157819581695894189920889335298773620520337913785359899652587552746509689985996030442401858613208291922297086959589809078431154270418642913147619579029205457811964828005762983329683602855007361967056472298463137950057369963598128120444556754903101585228584675195580472142069993938587711901128771857045533526620364013066316589623111755479129167884785987660595828057634363235213873610733359379378907483206773268905891817600122774239797056552176965770706882955820150468842720573033663750189005173315247153721408372990673898600939084420258973590335221694190791726324133057674146646231381145044955071058327511004709921942094486851300072721907789776449670980435808350807854001725691511259148642412319732965804814743391039541213382404227915882977342659376919942198531578329319741993081371933046339219100876825650586099893887385539027318014512130751448869800089746662326422957329862702719690409859605274558339982211039202643427210559182041138924304554916090598387955077076673515131644327348669509609056133001003640063251306912266923500899108848042609693787094324299123612566205457864857589929080478989372291424204185194258415606728658262518072367313715035466491498305129208928154420070948116835856204829053737303475881566674877313122435914156662657704859177494830011314952115888961009898249904334483526300427890545615303737045824624250277439125621001065496571739650456834864485016149276979999615494391748085436350711039560978885982305125180761270749668405765647330326135739047119268727798521434455253135022109692097240116321202320633381920871130530042897961806090075225992728418783022912241513599124992609748819685870516765049489158151038088538633870440869836578072827285952934152249513596529183418960589934077899937175875883388262758335744724425950614958869912230491333923104896770893877757853709702530940675032501552263905293221389554558654622142182994494427610121996739253826583076809351145346369384401075579255339158606522129793943169689648729425347059584398794608467245556349330388068472139194790782102521397665921551194144443586176781724984084616812199824347805711113820578093641909015722769697257442247068753181016967637709463540839971088182075869752631520982347644673913817006642294242229775270999013400767254733949836256720683140153489456924059624426221935435641720124754598647129718080758635251037830761503874945482071675231125575867774791563773238513991807834262569427080664513526024346045353445093465146193532562680565277335560462415741937579543300609750690046795615371062396838915872762900930502958015540013025835945282116889705208791808736437580715292844625086006186032394414490862368381718689747413241054559631749938293246748576268145571127877798529820632770533753616577382826401696356011304491777282971579247156362686522833753486332009206251969790063205028348428552309413784781023757032461064490269706789653036658908022800640689260696290948606417706835647083361916628645991679903279619815960882144109219437423321609387099049485087527897668763539529044976308927511496002370555033852777801378454179949234234366582220385272352291140979821865375462509412930782574396072028564838984155248200647743444670085476782313460954400849360183614783727787373664100350597028978522460908274659834408330900996360085856725721402430775670705226758384773721830024930752671221684002716514746413715480316659552969387536183711244503723786510866225189560846963138553484862977841140850169953207598585617174097628117899874018915906856335571216410310040220312409981592160247801887869370832599727514630000212659726518557252884907304518097614017902790839570709059637881412343532790420238416209149549155290130758149459316362755676774099628683386919738346486530581799792217734795828167230055279471910639268193612137338435898079524331546647914829055955238635953651338665084154988969740773462123598258183739269468070524097432355589970461460293339464421196162485779487240353841584052977820233589084956060353646191588830834945909964065158361398566354999168357187512123140538874249264729158670864254846363508401169666146924663522467262697117175668296769950862510054989451151038482111094570598616405051656889679973779822761883503148031173832168284041700927404325953105145534909198806274254544704422853209413456448696691521063827457131255591192096751477187038662728483264638454523098457791176460797441884694372635555875605089191168608922692328783861925419978803892372343032115105704930200127495870847632927505139227562567653540956290674644062379921184383680005873279018129069849887961765740309256542066218272459073051747519676763971338370908074835152249905049990622207437877150744832782831848996645880151679761628962306918561025616190004823563516585665661362593253253755849908073943583172457380979956895985843680508724358476205108060263835395482724294253964338834532802894975235392147187816818121519233793391449245235982751903581520835411765521426861687588715741259890246439846362776971346644725316244930266543497528292512476286334360298017181287641365514125090982331416436531452762361433500425209999769623191650801314972981984830187965751722870284325341060676594843744674997123481494861021473910108955291854707021262679025819272132096547912358647205380291316176729339181219394047976342874896775867412620012201000685921554508975296677382415429825855314308168681499288331358658213972672201305030979932571911684426320822489037944306171632519583692727188650669438996477651749430188853251715591341521044782313677842501127083231216073086585570495810412083654671660643834513953194641835263072992367980453695354866256027272059917580084569648280746409306886581381447378775558799169947908191687231794050636390318821421978173217964956101493710297786059771203555958402059574339506158897519222028834410780922179400697547653809360533396879776248193153541743574602113436606824353723503553904960991031931751791844375826061192714085008484832047845146724886365569152812863057059082767235539049857665178266716103896597315329640757602238834410361382142940712143044368708225041276226663712089022516801893517123187200596138032226692492471818843735815273212773568422246957554440667427005991174446954153512926405268657419937120088205846627693216510012545134955476497702962148724778743610449717169716739981168783086082704056622761094060268977774665766337539826176782835106301804084228293321451683145328097407643713478846999936885917341830957504744763410634930027442790615260935571914321559829221758701176956737675546968953769577416830744740136740003175263203792049824629874738954574032044571352082326733107458891356606367905414402860964487263591885415815689841827865402311898163600845991364215183606570520392213248273625357411654794664770562004422229608818514347337662008121065028950544640105214155729389579505358687906864038296059156011768752978716342219093128236405732617410245880988408783105978347753806241753882718623082623981570215654128685890052333728611394463486679571013008560646600535962416015537986816157652979128884607856969765727410009840863718013314431536934841002804485799978614177372430975495909564050847971795646951013301439218752794996478131356340959368909772652064455143156847291517531770004475090135588339899317087988429119641440952421084908518524211020421641964021635214136527626522327791448490328195887483998970333629780272504715013952279627935549767326363519694812369056219094896868165136717754953410981465405987675841408204770108911985546761664993125799927364140621818809637982206133008907232908846115906435628795385314798155712912919251285516805923761113471799159180564159455150971519779807976547296716048801310943843239373341371019363641575654082689195440157133911623087734416962715589520116821640179918060225758209971476179125516619724589079971675585558379711934292328367673512993864448184536193394958024273568336601741158425122098195209432011927999851493896903666277010049919654596334348728970433982997359694171135434472469764590247234172025641378396600329359521775306575836638859343641269525005073246815880291910335571962847481238879623454505399043382222956510624996781060577276806716402146375277723175073986408879032365461451198118852456723024244347251821694736822593439484374389430765982885333842816299903343644669128314913033585689272708813832991795733764318382528455635358797892380092971731642049356888423429347343015473921379463134923307719130003226633751097016086487995805631865198245270579717730574413235966309845763018624347973683732562735314102060237899239602827658242328487884068058380661800272282295741853665709540536577193643085711489279256533882394105775527278452412272989025707573341139045252521041943776526652641665349133104269515744911544749355998275760504409872767467601346772009886469158275375179392447567319514651760089735526879300296474077185713417058233196051002250604984761799528842206647855499266504227973894640453692061304706125602316846389357633114060698217740907301137162350727551094776161249251905708352063304563471896627145279768799750903197378919155921286192237350396207942114212719632140900316006626681370433973765213337659398148735753297462006175567470110852823496627297240924511556581033195528436152622608621916804426727867769453199355634732205820246818723360385244059240932034964528944320612503896412492019406464408959248869242962689914692712970902928593631944420069550897107960913558732612832532871791482793318116527073797722028230689769008483722243788347719997386894643426601922874661323224789548210602973334765098881727205504029841496422657332863571928719367349818743637002818101414260605825431822813744151762087545153098431874197536888890124503438569523271967433651697712222829833690593225381124317750148244978969262235812719817149235945668058884247514559566919479684149409318666132905380874724705658416911941881279928760134884955059065400298179670304062679566919745795491095592059347818694061982929674350629235673355365360032795602192817286012422949997844712414991797649553977841403196867922824523059002457749052154748583015706092063694576758586746820391066965588703655829454909838296153337236824710897473351851706558493875581317966396561935880025530384928411321963206205833138894997242195805691499608785721594053427098097943848202596025373822011206319592768386984850549180272736122028762485715462753327820011580718607200658948665899766624738834763770940588195745637753670844305073848493635951341285939074099780983496442709123108179523592257983920701660355800018360312338075894557068939081491649093574203905063506234766474830217287701122945314320435388710619735491002704690953393381306883196179387628984131078360622778984724250680234463773129176455960644916379333266079419002903607564065982430231370073944750251419564899619079591307749296627241881662894093478214867115195124243930612890881186369687861545687943329634487242811794487671830948546972089250594729304873078379834801207772668302698305446470351710662930162946549058309116070073896296558084062735780836037290385852432711766494103361147326818516377380833083659565772065908438669815597808856401405521800298845696080195405960531079272453892402935571737536095382036982567102439839889756979723594566340729765690834254760415548576249921675974966856457193623374107242223304884536750950211933235655556738238623515718286766826649186655634730012488438349616654261939365163520526594623830476061526148549159221030942015342403710435198205443391629643390942355728581268855529585630535687123998493808428017388830716277527305966038378924635642956305751985844226244662454305672843146477140930450864612124231866373600921691766038431457089128169825990942142493962790597072263959682969148208758494128106737098173755107104420823951180127857560260118203149299917629153762308662830961781743076987706216958791598056862202019228197976263592779805066006948224792085528448941597417858880126088442116121912818709961853476932024659104647788536750962554781597346114002827594373226733928275132938805880134371278289841299887594843789747571495671261971165792713233292549280860225367652257570343994450430032381956077024297472550040678430007669766289039219197395783996886698850899784750366510135056502994096831499615734568864867614091091175871020354206540717206135729459336790937304812929682709408249736712490866199648575163179864607575596483667454597689900301201545055528632295901893685630640174125418453736285401798927514022866135758442230152455383340659228825215800982168303175663133066119730937165464895160078207454291240051705820640392609346418704270245780183108562169709509865120209922925700771446135138180306639026077498175624570657560830903407964798109087513054450424901087729640491179766277536264508870181573312981328451350508609262406258846767040863841064360450511130210305281190283540350959813738719941191930804383332896822021716433348341088091404352332820467825035162177194553429230404588701087641084232499644613080270028115410920810957766358293245720209510725053735064237448790119761016244601038015907322612416275623974411575210074906444733560234702662015461679699468607673878874882272251060532799175977333891546994352723212691928522377011443803524252596480036686139430591014343452513354064251073776853369759733909702598002873634286359578316420073416365157174769283737154496818661311901446726758388549900989379114196242243941016191756055600098891102755038344525976634267443087535629778907725939987037740196477718001972786639921175150068187426067154884910796356418110701008361450494327056237845622882633384431733269551412696293869635696303519256844395716992449262031140350117796998494718770574056024742633308237422028748014883266211857320840430227473743924626947061100910218199128511277364572351099154244181866938640510099211712719771994694369095399748332471626782190572722916739458752553137923640065879182511811072943190971934009242615112458867534132238225601681266402611796513148693405048198101481600983930405196817983864498512746453749093101359048864435611091525988729347423204211080119411783528984550628416025448871383135816334633307457424763296675579956603806612072673992012264771205746530964702413573583503478600993191328970441890214230750258260931115512650594343159474821818918901871026122987437691094892998700757170939114748167392152162910057216549293555388841831257568684930270653161990463980936741402198596149531799959064481420323014655404653585895318899240461280809628605104056269052397571100067142900155337667300544070506238141442019407349127928090153108348724419404140281621981910620462661665740543105059833861298878507042944782168984110053750567976481303142353023729240859480607301606532131927321084911648847412534955693721219604823674012493809984221332796052832418898907118402945897552448356035499199269974634311236910756215716463360656066935516167476644517246710901782052420656497893208349067112070071807263569634753830799806617867952467683955532403121010955852316401684814730712779663652778008942160443182415797241745543202373037450128524828875066652831432729469634180721234511050686467939454649560580867772300137409613527449403730437537892370031389451500595729273992850235641116891392668023895233316812133057242531582396692275020151487377319647597870087560270779135364422418755383345175959290630641066394257752489423365601407337271694226218158345784802871234345737186697674169767665521027521574617198292121447191964744050924114293954791173399060065155085262441694115956579980326670068725656481259278333543090536879763410691445324898848858431111872998459317836301021651040940106003649342439993071510732055341959932513577724277874974626045098240105118642738947646427541461028309655382208752105565363391198780417031401903906815435555117852276471147083105735212144654988792959699646963873699256096469134051500751916837231267346524847285550762401496528625741396993639721487883892662002454797858305260023240864698920314230971183015869657106496275315532452492789300115873810026618754117067766292308779175853310782762429458011057077233516726318727961695325352239096397418579242702248895415232693037386052991716198989485193200364465944497074153063754521164177952303864615078860894874141096075184975236527987239049087120084039519165031842501088569641589944408162382102583313129392215608902785883183515069733758146638118171667812055259300297090680762534945539906369807726029168647109028448578333650843631711909262993390526562872965365524235588415051336107814091069062719253264417475776363589834081750261804800339466511824326028651509000472941120343060655844818434127740541603382882816139083654936257004072312161990125334371205458351417562653498617280489217428449104704620828396977528742701863191714626678851529578770591911627679447441039211100942365141581716275724438649863492632179850948204691653998852258443787410939620508196128540202748518390622500156711195519109949416636854203978430295886920885953131987837660243209796631904579503410534232274880517848588293431234133772051447884705045746282774996033709460398408565225619591994497230999284555286942396438890119961247394002016473553486089087115006644339120897709982788062193297758592383958227344139439820009578043426411652974631345162491162077849561053663017660598777504685893727007087129545057404670567420823464903242105892183614479656899341910380880969540808643745116967093189001495012483454686655814862409515336209092053920434485786212271365030974937817176210594799291842262677187255948346466485943163403019152659720538795930019422707457193547343987484554194042325908948806811085526585664298300603246280078455349774849332326127445072432945011461266779461743092308305725642474831974806841321944872814196085452979216456378982963084870899786454408924318378630432980937830233698442782790347541679664893447614109029261894788743611382813607360048311970272280077915119858475610196248356937730123099107888525513653885526461854381797539018095089056608152932182816555219981382249661905961310808434000803756660635568443438614957403257859226102946597992020378839096793626358995734657570044705613198121648835459128413935903794976620185279591604505715184352898666387033021374372888184693021845814000376394429387494138179512049273326405342947427588112220479242284515997303551459051861799735628699151121520214089421826317418350783410166238992942370328368369562301295274171193280435680398570050266288664066791439956157383083693400053564658093735154440706871891317931290389352257997753763000481525715740824807001329967742647259932488921860263273052374530502969148466553983186965931682833229839535943740397151138764415894213431871801185590495247234718307432994021233186380305286696393669813832861633610874368247373052505761215278828879566583138303781732541412507293912286798511625290743019498329280376802627220646733004233823414988791794432811528852428298914625082319177157226224535354502359128165914626034224885066454514177170250610232976933581470647335526726549781661610783929983937823862534131234520355796035263972764101028844286886396084058361864724620096345659824573554677535923806193498963774499703201969102531724684523469218040043519875036902468288462744185928333549230081747402594375554089400139414125084414537524636731894347349819303054670057170598816768081352191201641004863076336087717141984387115444266033583632422777657996389006646603931651384889616365693617296395340105357609769340408720199622327413537800671507178688833941421201569919769645693364652968899226199638682559446071572738404680857538957152033858371314811148689707004271577672705097480542708487196549042339905824129102309767131800237268629049657341966678658666023833076242188914854771699121640242147883159978008143265141176765572471307397629134838287632005486543091979265237901332476840297595250194803746162962827958783542680613683136209814773896567129708787940981819976846381858693269500570633034653318541696969573171445223200919594320452898976042553598099533498822849764072327148549542148515805946482587283094186255881894749724923266189495003166282374466121197920229802500741941510106516651866559072424587830606958012983955611061803718149229967486219536071108737928175662856055008707112822944706786491930603580778659469384572497856841648202150590814190233748216096639016917281938392557484885464758084683821088172745489206081508587557532750859328858536236861726967832419069707568122181125638235994109828985672255417381070538937589756770922491297427764512201659546947869734287172244246538556264281462865046586931735092248563025397882670574789826706200103755816120966424626953650058200537748961596416235443484963618767933152756910725076504425607840314787037711954568685798164734671463896274640144657851306109720331785155555606204940311837310997738454390499150071334165652176581937968074495153981388576369075820678099952468407870243146949280919039986164431478925898151953926291150106287976284702757756656791811733037024919802574080934655541166072239122965862133981460172587972260877512084271725009345663532816854028990779054934808958115510864949650086638324094876479781603976945334006011966986008158621142066595805144419809666633462158605768375140181786789753462833391973322085639961421981627314674519582424732556503006320131712623102269692759045672534987495836222618128858281944066143533785453516452447301475835679319904169561567153006078142730165855417023867305469735528886185185194620284598748703789456021744089786119164733875016072121755972926570599839742844807369236215743778151958676823006221056628060793843419400086423841337427913043906089344665999751985382663841835753622293429708110872928606573465358620841817747903176133337728214367186732454359794670487152660526729312880134911692298703239148568791665264707607640311448069817085903842108097789856389921479190500016492215863871752714009514532522456846234724169950112183698501220120164356927511218998689555605587281906413153062583591945780126649601825960952698470209026191474694622344201647863859948681973799444277883305889548628900381149183453462040127061278657824314107862143399707913511247752102042827761001092694281278959114949252254373614631684075434748197163371006250856300641606867201430978318484996238430583746703339730009302049854553416340700186275328508781487630541683311047009276601804808095447775759651629594191514352829278078104384447373557914388905637277936244784641606003732424141790625079801430556764009462248522646643470039531281056449137331146454028232578768314408198958501357279755299842667345326820625936627137377111823011747691461523129832991703804259744772911457339082745247534225546511980787991661008748160243051417999671177416658098327380545409208040703198038717142720162339157755802318588301680034585338519363881236322032067132761965151404117222281230796965360568284708256020556771296185486635095197374861277137099992261701030878361933378445326009493624875396564263022804991640939107780262096543162659068760268499359175917052376679872749802042479786701154545138943284854358933498430946141447937382901710966975836827882504214226464751664214684293883545610305826696397465752011718246978192667823871428923559932536580180529663307214875108881913153857935302598265387772489568969133914005429602357784910912857330561633156674252968603661974694511439811921334082630844535473287986186761824134383816672255282999128728727185058635248982654445880016903499139423456002724332241503322138561435140080328406021516097242799400810937988572389042417382915744046433465477035585783564139011331780631839721785324130786745940229933805543694286057002394566123952513170320256048263006500179264772537129789452766130786078461430549723583942668673337892745973226433189813953434987687884998716505231540271101881583866722771817656875981548044617210593684118628616523268134639103927258607476586773483617283495669588459529533601157758538569212143551455015038877294969844169064515995341372813217112485141789824644343552928717936034357509174595022476619407504224091179671473840824542642871653315142996599121186553594619314159495403311898096580476070130916911451673054519796020358188751736092509184900922135263144263373910022289180502907780069648842650085774037918820913518358401725488317564000875793929693209390211938469164768213133032234202517058402149139639560074116301814157268680292311095338974594506251062070828999287032878412756139745978687684433581726298683643896537604015577836012125483394180179362791298441451377419805250659326535761470574754096579407711883435794930495615543090200410420049267936149041505668108441451009223026589900268379294621327893199934505448764944234792868282413102675538610182928578420412549306135106368083292371048616139080885117628336746182105573112050339609956787310983451576973477401306467869133197246195537117642966689169622785636716921238583397011176821585039692305048154596891795703856260879767154990182513830534778953167111938176597760480864734632847825407006937078413628562669360647136924654005465984696827907966269651914801804947795720014631231219659160048090788176745979338879246867558013771516662563437457057170699415373460925007288221152170698417504512551922873363658128030660969655822022178479489468849185939521066727984974535658603707987696970659183045162501136973013498564509515969327749468547056122304915686583667759109809879847279787849844580927645066122120648825985599409625614659035025418441567844793150718086866416218215526188880594782481449867853517562442697772143639673916168308802468378459842306175640535552713951542145942733115035497215093259840445600280595120534896012476363654711864286460538504716590745109892164498670092333280565062567891778544924466749114317559091207901576624160498155319512543875196606641155429857081062301202978327140565029299600731934477146140640006701570552681886580664221449221056817938378553029575623409602084740580674659196788044067788392110252206862492485147302785021958426585599448313195016887889835745021498787416925054332401439288709349355398563591046193838641366363737059870535674113989075427268586850238173271919757865057050616862759923691196125645302736646282930909580076753639017073651096923850094961523203226956267129535950649937572707488472185772241430669409410015546656147433046757062106983428267202615226171371970519839946165974686579065657202754628331500608950176373107929000927511564695100971224072567319268422029085655509631803611449355022864511989920654771356926797431537694685115831349059994264166039527694356324988132626809820981637351882820735004633401182170206317882889330484737416374658974240408384748550489050921686213357450941857825414522765748200576496884370729611052539832947652016283567990332282071614925362239504091682970776790983822087202619947485362263212702066273359103997346764788285913681701215825845196905049904882605614076593117635592581134369319935204517382716034822665621052271653648554394895039605550879219601698662933798630349360664728263268746822995799795648220571354039917526068904985537876834674505092490543102992437943940222740323798483511725520528028522822367189293292177312011010746709482231055716510912636139051217990254212524371222273260313761330146499031458856038081560884654502264380544147140902583979526775683108679843508296532160276327730580249595157651409714428427221856609365595412142201929301394608458628943292450365830781850382164715432993088827318987199869582817151691228417977595351424934752136592937443550687997308954748400052761740600654096024683098785223159462844609279371798589407705857677513477287808648774088750259349606546211745405345158381806720912250383817129739115745020006268742687565164236116950822555246921085945019723197061547674468879949088183973838197853799260142164879576247271567022526669653722989325370531658442938620985226695061454570808113476544685898503249019759086575982247767929364562351074595760968437900882941045825534210833663785998986966920380246660387449868365146780559299967875071100126137114685916614382866975308699067951895875687115105375155341980873524324324127785130559603070718624197025729604257087364929805922037604560768380014158758147489365689597721494814509243671790385062958995202830830613613919748487788994208667338173849630067186450115509058783826671389943391261083743962294283749516649127209046240931744655762157370270091415412273541521279610296477630954641849285760365109570463505980883291877471266632379679318328797994985890010884767575840800750180550024389215211238260398070978586559276925149272305203520745621592759628113522753665876436208424850289555117959689707636921312224263651178086811818189595220763275946621955445076791003954975215558674216062258790567961219496240933035551594497533464425605206824869203938148850916660832392006227890526795704069073530288323286766932472181825498884611591861524114642893972777726155244956221072782338704719800220674514576463150316435877370679820214101575630581793645824196874690307361324607093435956804060867099197744395824488530240160179170831781344921471139872841870207306946513336783076602495042749694113701226217150729446082643469042001959613688245615043224696374573637766982591599013486540558635865725173622593684331542406801550930192111880841750520164140723896780571022746667403987241135594013798600823936507439665682140002417746413115637275696672120521542387765017375535938984177101066432878452569878130730922168327526411643064146512784160885081557766438185318875933523310556177312251325106435444546903361130786125849607153753595101017616754835310127087366695864641468945042217593913543055191856905514151896970223957612544710792821847171951887499174805139999728326004388246080562116175849663828654278888648818710268808864387204413445461503579664205616744823522664049174842576142607855597279652265018127083965267977666212432031372363251997701103707719652948020244011697872684874387196447387944188195640705947229706171725965401827968480938467535797502847012188731779844808478549189659352439093491615516661381909614835725003007675779830354081362495939852173824436696409088146610157184308284455846844482424662567086911878290901278494116082897880664777270734632516950485229936612972020922219883198168127505014972320255739228062243877406245810540008834875684306035945040735989252428323241705541607810723883481150238556764088105157862872962051721096706515454165431666695814290851461177968072735554326024292744904358143694140174783530249276754676981105903345559480106322751384579269305317110892541278878129107701123433478704778392023344703152302243605117117831945999784144674051751995888352999801743061306803213228911822845749553008771179171347638423072306407612735219433945944593551618006411633737853726114106742097164586210587172191149443057024104982094216284541832039429844783102615800013445751905462254523423066086196466052152637050506568156728666197883425053850684305690192461351098560628280906756803020096040796059077721745593146520386966365928517519117729420976643334304394366567512883920059153077701961541399893617938514825408473298585854589387607039940741532657779197292568110228322290674537640275435758193240742451382720196185975791192044734143683920970654961436727555079904171643619805498798707777889699620564541690440366304317567153693590767842151499245168364295880099757783221406370313657716702451208180760087519521900342794219577485954971481187008056296143056568937276743918524210837171342794611894120867832325262180610714259591774524664589981174865934305282180529740663195694355476009878476117403388683289314385107643973828319643298542603744101706376872121603068502017230900681685144447292966761236250810392981697511204216686540942306636718708108402384070011970932199638007311373886915289401052838908975137776947614784485952721602044913998542250833249331010053314441563202351626969702995821748170580799178544727458456534052418814678349982902765990777578785693803158115345974946538375999119086916787733330838211485646724214346535431994768004031758413238270676430056688530220721252763110522345925624322904488996434542313480676927555872571176777942990868159967347382213217377920956256961780974420216780821858689089445197251577612447082423876923977091267746223066025338261694266042646884555063918593254352715824283354067048458333025134898259246197025108646581604164558057917174519717664383234040775231405862165749273467271954590188681418771134170707139428422205866043441232028563244439662191757063775903759044359273256741294682782152366569969574616549842549597545901958666456840615492285324893775460551417214709346669879251428611247626277335444581475389216840953989067898119724859099093726408547328819722861710418505110260575525190694143636625399013723626119169329846805654655826672012199677116030292559367030631323185971760575609947593837454398080119445771735751075542311585081859970860008588046753912011600686830024312794178027253673478103756783708398096723135013178744549338103231860232658383746724100872925922724022119868048429610524783506630264995727224778549564312948569348313118880131675202282068728018153500963549329827146505565982828398473818634174820622973672612999913111337484285996453739356629983096619630424412669567399685202558942911467911685497379526412607501663865102595480085273548408756327590855746519043651340486754681153246088887139559388626766985507428308632669041219411069887583025128011350159476739794687464846296365067455018438148194221776837413234207239886935234430874620517106249951731353275806963718280639818072251318825729974310896643530837397534969215954066429122091847855734473794605436406688516082895441569211607306816169941046522448137310120699716606959732670444381586220220582303444156972577481832261140322729910367359992972105836795603341517155311835758723094089527653592784281755546733380197541055283984822824921258182768871308312671161690174549139706544655412082528707720238241245164426746407171882159691099877875498470744610526022896871274620243670294049764446082825537999966564745229930576848361167966858232111069112031851238921551755039996170792447715037926686070991049402897939021759394420352852597985720697389064322849646653488106807395225801987474284826493292820146945296665271703690636850372543010511232119620586328391365059459271441161944550522829518476307015253638171551220013725658260998118429680859558598045373347908479998304394522567605012736387195293855478458931118977896286446012767943622375127582590265938781301915388730128906926012427552635590930434630249569077446761583657356467839582409101946017731415644386843092299517722795120596685888415615634381535334752615864786499985125233707061027648080431658586911168428488626075526256945794684695451148195264645903596522078185733016101726270345283762101785140025706703920811733419704079427646905168946613804466203804511327787000004005238663407242650721773483268793452892367597216049435418068977744194387233794613364919880463803448144940669668782040257395242760266728245011907663538871524313301760027138285697947825539051270279571692071156761891052826537818016470822715049845712199078262897910992075226164662655454033555221140680838538864319907218342931581308180579448784212667852866655230807818183969148386254761110614271629660421191406101873332342666803591910309862651297429586113328673395606869914211546931361860229261478618474000780815682704543468542220846849977031971350481167124010724234106503994726112520107215197398519897148836821627504406245727125662322493478807798533689054833019620027321068590491777494372310254076439613983504580716646858082827476444199447775265200622938498576968745173578368030438296800544695568733617304650645892416655726594958899259414129349215954491822231432950102429616785790592234377237710330567732107840533239412994759937087562511501263475952383500842002763126121199547923085980284496826794643557677690536672709240071744800069940288471305204315756606142228096585008717477401057693293248133101867429235833664130463130849641715250835496867258977147373683885128239322299313461229101539580218018084623029091600865315188448417404280525908658187995288494992973659276816433036824771529997887463906199430612241245722598981520272006330976002280664664560782007516857464958841423504984391044351155920281908883631650398979914595751446690049030717011641385325410741468787227664017164242130637102545016748126486970615452952975439058354739007469065208893515202015895724919472537332597817553341524835333615857016840452070098860925331686590039684756779767654630256721091672119187182912963462901937620808474437545727308375043985332291146738723010451690626209107290705142301296985228702234385484961009900897678506941041163689639134880685285414743796101562073755859473565814261471953928719542854333579776435504454691098116285975726153273781691486115510969020196945694246621271300016174743394194070703976907980791140941786676914437639994499637379162776868581843040174600400746000476552183160644810172966323700455195450767161915855304383756505139780692918969798408116073185008613448350670845756525651131513749597350304214252247129164126135662424276528601948491377936836282124011553640902723942864946771487166116082369550430968157632529405375207541756130499519899866782117108778742856760471230839583145419442887199562159638835465190347722152657399658289908351873409390933214840967052097593334563456465457100581157037051534794190121759849869755774293491945952645999086950889389777253245926391712797339892730879357504284233290845257639699600991693334045815264837770715242327858553082711599354288632116832780427312844040405362283315642552320239191139563109780388760260531188783162573095422920254039060293814009245279766489379493718262530737519794567829916174170820397254622108225136576183938788808589893695441401121196457252770695650010469835448678245316024831516494118663131663413262356930979329598512464574686758248829822124018161007592304193319209932026384422137501235495724462071331612144203465586191857139112148937371717714900079021504813793033693640805193549614593475264567678770372773619992970099886044863446322658850247951792826190091765165642049660922567325680522364234300781789866202826130915746570600155973028327317694978247653937609631674708273815559511603745345071303739753692406554051475782402550400288058329478474248560015316678238897242391981178589668437581127385680042349829537869086085435776389847638468125480147680984614085281854233982060626533555480652893564497167993542170266896222014337509319941988929105864935828400352163288462505851640402621376952925094392368918341187335410766387809201130208750002913563766021227205321035187899128098158056549777370502555582992890998779997219022577207816949581569031310935887097052512845587394036010002456670536629358614551900907647951826052244269989169236592258492770823135603384123526761009602380279783345022867837748469836604671427530713815728958877301966557244913772906329737923433137456179742096001342839474038696463580661691511556066553769502948101343680655188810048863550698572109805511533231309329280627585514036167310433755217829283865632135945484337466810883929434005057132815930943445276080919793259401187585825245225835817732834781283706073016816780601278434539252029846357365522109579781378088171308468745800701300212634730462658604356290490576106539061970368646786474283612788195116085898938849266371423972221962669636060359824211206112825947768711290361445323350645026711882433220291674863662656402130461152019452600264205381273857421424748991083845203173033740473478923571115817850396461451787373034151878486088835686330321805629030920046517244398022094428370697709966192531196199676204227720172422786857340293299218422052585911526970549115101993765407963527440271860884136192750639891206275509041931289972579106930482242315832807198239410579095441437889588964927529735270201096746194044694881229035477885518569056892296687961789770872107691922297826806543773936422311227293729394834031901069008479892232333696878376786232388154964773023182039907151647864752255040673963141836763431796964786752659322839537903230541103308820239320051927930367907456494566872899102025769702036586777834810200257627364305882543422621156432841089387027525997526187045282077786264124080286025088098495872606700240586843353355742620536499954443473679106367119814855388142039390903801442924474438183248713231921918134369568731975990168497775785422298338655280284253347895422676906797286821067415033564758351626387994065594618369374119500886104549788855362520909401633159786988533080523091966516345942445320967504643176288342280211983197267443847208603426098278202274994380957507280710658661152670233784283617322989909149078703097216873958152561738876021929565352861259337581871570415002105267732711650520346643287406775355519023793475741019084888103748605328027637405237870174346254754793260290319607631321936166329131848298834040654185592713336896784007819437230880037711372974986847879877914569081168947065439836522659280747536429777107119659081343013608919033746334151519838028101499635306278568025851698009188264723766433709290241601639348208651278341904985183914841013328242642759062684916716457076497816724638588759807281996759271400741892519211574320684632039755667033494547115502120418562744250820894271291998870986881646311866324778231732076783940251545068656467506794313198396100472414947239810440296447526123717960358680602517747441481161438865580898299128008726847477525354176785372526845773257730165116537245610150059572473231455035312642836447412105532532281305052910747357276688573347998355228702228717447302778774358987726547943740743965216644312404138398018708121242999486152226309949078831906284860991731782426107571717487163357058898910168876047808484087726376837662437804714602505705191320092978396503439297687450226409863058006395582480070914441236350640267203981732617572406138351747747761665848426705738612957960523455456415064291704902404126332748007712295308305801943475934009389721689809201246423030909194971083457298388404506836155623492584552424834143722531260932177684376975878248679727521810803560154135673240964714989466950813326871366667702646309101422766442771209779257012314927982456439304365717900709293336158599750098993233584957147134889214195804941515155510482216962862875689204150948778045646629729298747823643525722240617604252364761466213903171567760115733217957127986585534990733826234009958728167172083988570348773557559096613127189886439692343777536457734334058284550484875919028200485353266764693552876920786150226459913949248393961406035674297615615325910210723001994558294421156143429284475245824410432977847091030838359176806245664457007557750933316990700897671814203362793029652711752752715754471643111361922215568735112868828777733276759762526285377235405715105859711550909497530666828034241988692861733658822662244988715953764136854543386482755698489412144605484922500525183661574011065124555864052209052566429821452679130993791477987117768830242526771709757071716811876980738390602264980459403072158051608129427005366185889200408789534535365999662214330102135654406304914695815344837209951272895027920042297683952920321861190226699523736382628184057353123274374373483957058399294231345764783499129662446127465867217115159903243276519304103691558962988544779846983798383206740155634785647203904798741795819401761796153180479985926116780958632236552961422552658428956440826164488761206145811802314261913172922638523012398495270870423796818740518277593995563224325821456838075710963077138739950159538766195518080864680230497924156621073862394090487665896835071412360405473773990720469322868719965125116997678184813495321353562968546064180687906870013416294768136925639963493132262702053051920236859840180805755466935953626828258078391960589345566351159810086164463654227057125523879228649374503984850727053758167466555214461266382374515021339175877021753599842253558932748758277284087127904919272751285913908219147336010123637063158317984830528091160027821238334151682080101590484699660189652881886270557020936325285120994170185483844897404386066677473344845184326095556353322396688526757788283978658117421354409108997912137554194099674653692945532143908914057839491789874863141346825972753252179369220812240580214486832083268620629341048950769560437081705544802820288095837583899829513588898260507715734583420373133662117003707857359714023920173797664978346505389917264085177785631183958961311339587292664206304228555797391530189847483621747282965808709445923811393148766953741182547887360090666122717621193791361014023495594987441328327920105910790521372652970436302123811647041404066487803221718378470885113504410957475942693458401640848177895316718682136397700847808336316723405146900269953632159935999774007387628618942178411389104854489575263973934936599026738968891125331018718905227099044874695517888560970769843716861720221490877702746125630944406198136523066071086934353802641538408164851675617816633778460107694461585856127130842466417553536572031608794633053066426524862848385824983059469779082993957708699082933853566793514980262371684906759979054602912581711244609205040799886715232426503401447495774556048041248042480332040256907054637240075066610289092755410960337814392954517324333227313186809230777183847629321205110965022241541591228343763047734275408470768181709979605726341076798143353129161327119888997453420247438592704452052444666603158626793351999985593986478619922351179313300247749498716918973774890287448702919086302515016756355369441695029979634413220884664608006208888058322806390642580358438491851005776376499714675932311765146774384469215937529283204212573531187763274165123471180036093222511432347813292539537378514704772866714657150471419069623939747236901193336144907062774825730846544203934095406643674137848371460891915876038044450934503343026833907365721923744417725284257854492001706040951394586371536904003352041870433286995527692267530023844754553956737290103803559419405824872085723279811668506439631110255831785401154588487501142598185894216487942483845213813832868402639127784191382088049744698278926745226075836506906071365988739042539862910375546437486280832835595078009153414848803453281151108392356711669514672861697958717057595368131987250369875271010552861609088477272776422266141702483457602546238553446967959429748806947262716825483347170124587045390118228874108079911073994936761446073812773730424652552371522328591343118157643326504393446484503948838332300740631552320581378490204527698253840330041807116192924617418855873824509545739916002697242571590929764325481475796060854967601017296139290908537802084522934454257864916253063082714799528917475440542400685106528122127731051135123606145568935987752387559308465962494826143140956962825662503949155416713245761408979035504839452526493877647711886972478332219306246981189395051535500112486896389034137773869586111730756686344455353642505145939675822924033157210991314518958301340301828518215454791841339424208190408531646237253169311027983147831305439122822412483899578776745866899697932618061228216144753302964430480801897389374380134661942129609052969025884780153999959964759631616817426690144284638566894761251732956928099441445963748956714266779443486945866275288357449949717172579719307309613610369997046793178754729983633654047690638592009388698274147619048009702029549289273712469610398659191478432639717346294881989362751123700591401904974867927509180919894980730407472152963950108406237924944686283105206406854805701938870756389483382509059378767126553222253284891339649568695912602034833852700515546835782301714872916625350039422841711105278308184307139955817804243360105536613207129925485885993639886987317189977132240831738733802744426399968077281414009439929893036349350920572743705533157749295377443435856866999842591760965409313925447099773322991382453593009566808767193474661479229570539747706496152857946572260751971046503900945142364895321068135973287335414169001761844220059802460873117481776913458702783638238859042752723585026945941667954754172107024657022688468888646983804223120406479156705891289772779495344839354179230722953476801872313474701773598934326026196801621398143489039873988302002197199876995706839623157996510641046376064090435739930830882113615642036852212202580909641012876514150494970019946995286864633085062940173540142315468134768942118175901558265351703121904593198787033400937900932627035923903191874448325103602679611561281197771303002551214058324569621961593457712515773886868394763763168126190680794406811012852487598162878743059425604251956256769769196593153233262354626129093735139621894847866743183119013780463344582974449331518033879324474461546640582600233931839036090565678851696624189623454036615022583958754516916335201571452660268424288184383677302821577956954155869381290513881206052450382592432388557016974778758165759035865837875611599381549373291529885402038562085102426797541569863320502020435481608385659651088060751629541281763252781912426595078206287408752663725855056920328995051116316147321727023667073450401672052134309495606066417089689679080891899245490217809026763233602047635033512573708519132875254780525401379166979981684802743078846859301155425718518734922125663130231449912577034619100752703068295362580301743734525570420580270095537108449688780133157651883468046199807188297381269916002342959292199899511482546826469529067003606230701369146907475778745516141419519145366095339176492297629932989742741703709821932823389871145646784126342841573420254883250273580855765416376784598617051097431909154297509138583675986767818440048305894873275091719243347587091084271527160582132578571747997008286331680352918720803263091513722116193423986764739610937429846266108756075653872402849459140573418101501362014404409097335130527976489740846141258995167316164872187024551905403904035299584799435901118442333330545279020259969262556077933746696913024185084736913182887724691151786667815644485117022233042889971171007952282690737570923446090322726401227160651815178808895825933108565731471060585245411141169051376500560409964700792000375372884494185986765928172448166347639304740116715820741479088022691046946990482857986132849850291356967075397940955839950365383733253305001685541030971483204160714909341336635561635621996044275057415329360117131626523001009099130774994986259724501733983934217176553739039274768261398221085614506391993498909077549992616584778467728017122109848395382413142496760742673137740243095989940713960069051034176564319440357744562604957244673572332368292213616216056736030954974126074975978156951087507435226827296846044789643402285605219376284915944659221522816900031891234302090532168012266997850533487740246996105500703665622624668085038463157945505610473857589078961001946671640525781834126107427840319193490072287015112702361998706053881428963689047130141998303615590397839530861891864114071141188844801895761570177131238290426744946774949322898159714690392951467148761722561511333921840539523963458671951500437648471877099169744264055995062646132642238158339337094548612278808436164488239945290660073255072118250134305990806702470969542649104269923046153686872966432402353503695400645148091122861026882786247899938516983772628478639181908442879982608901392224140383112990829760280050411767495020811655442231311747824186872178651353888082932776858002503582594125080656442216694864313798152250535340812726885710038969976444602000305679939870395614861759918052065661696365819182047286303456198252737873649541006248313957536598703101752180404168056628404819149538836886042404940515177586416947831026940786502842596680473828883469193711150450517219617889637960249624482138196200902896898837952273780794839599586064411789373804601880742880310212579900361415618620312418045229054140443475985339052825509882696934375844307594849460025571111098253838164850545178387122547184888081248973047741611577456256470148180291713040115831967485263143392600427436946082982507583839174343200390189333786373821050075211063701618712707523487098015915464315447661283331964343234182959018295957336942382537560792161204176817740520233883941619517047556135389475140316454600887189417007883523805726260813361983452774581768776975356315247968616813793425516323204049586298539091599385574810047634228292091820526901385543645702429320723639595614641374616652006325013534589662543294660338240323193391544558548425318283077870897696533491394386360456090104592185154441833742546516818606796626869033781086600532957400759783573600935520462690512215817516505822573223269495955467700449969476334006245205454105482490230959372854810074630808754419749889773670954398865364838187877979958471104995924143246395386209844718693119001992936829018406308596059657108151768045312298452956629509612578587952008292370975611476926956794221749859594337514388493743717406713388518495819435058443813508324187304349026518135206518388258490550969103346006468647767528274610834239563102478556352545088409009252988969496531634213557729168646241822233990244204013045695021268297272960242138301083588483595008206457466772530779134672069944139339418154088516037938460142102814523343125804365548532252729342585601423632167124877954717116481269688044144929796688394248089850789233003737535074682169834025138767055423464654756369034766977663881729033154097047895953929032017078383530929117810846830109608246611116792598613409336326474208406858940387096081084914471846141159927390983982490034221452449134894386762249592623942131875211370888368839995091181004774146162146040670934144566332431646556271881274537986016047714930492410366324967231514906576152244032925937125441189440941787206149183106392874851993590441289164256316846803273891293008109910890422446247945886523024889952187910099100102692587551766034770282515646965161573761137257276003775707727297374804355055459672627173136883725529169381193280618282678733023764987238675951405564169180887538069054611893363865640342366155257593834189038715665058155030541066716755224705036360289002651339740349555453750441381579445215355271047203611934612024307410819965660713556820288174302720377362069510203958108539890429610663286104305742283171931878685633263027775089296431845199461752466812595296103560463770230037950872597230393153373763863998841211066651794539692826696512400441314385299197714959864590958146331133920911777828204512501868560612121645259962400877092440848176671078270414451206703711092463939110275478645468681685637637658768840598052160955424612805149909316894492817075000640498669304133245888563009323170779558060717936301504261931545367209643858463289346875335824563434102945796151161570134948622645415381722830933503658660770368340734175210677693539270531611890577411449894805573031990479150130925614879796295129303131623779776495807712671115648147098226809963545209771124113139228248134883477666527979710970076897516277527737425753884409519946439418476038176941759793100187716545614778109960961540742175770991934621261300721294324910535381536761762902548486685483740583858262878963462112026929157742794460105007038190596412075748375783687113112954081556217726767668839530192965069189111470650535754064538457996261235065536108128700108679295011753431486147545894761113432175266122740900226328327992265736704990696097896137141132492282004334498294411528056845126507171054380596928230713107941497769323829785162984608467107732161306284982035405238167433212381819459585648116090881908633769237298301409295773367028194356887562519797278746793713279183000862690871346059177527824121470208055872046638953943598299452234276783498889488580840727368456155686548746896517765027242028669706942005407615557895500022237119338791505971507757997009278084729247944242365062571638622733909176583442931402146864809991758131018792886756819455702705944361961721020529631199793047272934421874968163087929582476162142401843388665561972479730454526696998600687851599419301096701104172842623362029114353519528266259754030560628792393113607945024405747575117998123949266573911254711566718826676284552578805524950392392279984348314116107861094471320479958295067260465427517352883687737665657992101286552835430139461653647217793168333601901796725125141786068020039077270850261886518673683712274163386929008937328235520217238750454186555555282985337741804253267609451310373257215407836226028128278518916056798368769590098210936295821264633907950696931515581916283283266800906827980799062428792194444868135014807661871472521647773301567928283335886088089289953809759776243839927253671849558110337081976880527906663017741368027385908488206742669068321074031016785474168275306156858109513136292392817378925122249747254279104059662380153934498219823088829474733323126265616859140101442656242418410304580495303514277283085419418256535287643418006043352815412819457270287894399693238563025206762789892209059709972518069200317221051411669486670650166936552028589317502310726452049336708665193184274594761865741437113110983877102562479721572740816972297679482486116340515387611635327748677098467806405961745191851114844868395230350311553084917036333916712771276875565679180629059082988794667396661231603988072101578059279328863696410096157212328626091323594748952859277059988837762778685130923154119975083976192110683204431207453169319863602956155783521565111268263462617549946549927496580113106927051863755889436555954977692076223091110018744352928914197525700854547605467314245779229404523245410120131452248482229125658786639936522057648490619790156263877045831042660112142408122017123747638418757144544170216492713244562267116567169294849379670195032781068568680175878025384166820425434737579100572884348622257785165981579044212126504883900370056087342944610993625312661275896680407567228209775140724138630471817744474126139067678270773881442191660622075459823778485032856256399416140426639739832929415298309381696929115716659811964267779649527812918419665612506528937377122248744479752692868277906258194497010056020477441644538493039595962726778587436251661383220672593733288022681629346376689246582432412450216724729208580118886219804601691380939884654503224278106193882225307577669459846712035006629468923328061175460686400412982101091199076780243103206623108020110169385645737186207109518930119067147143179882485398702354104796722487441561028174376019629228984096307416899075938487532245546070529378911232880226351461393406999181614542462260298435005926430175896184558905218523317705636873483292099753474969738619689755415142560637205481340913970957108271400578358911907868707156289037634772964149415312478132259084470525136398834068126244731464090730783692637340748031824073804138446182816713836826769768848983866953513857661215640352957497629765509510363562503647872859865273733877803442562992086839703413735621782495945668491075459357163640914478019673261603473341219448592044210269573709785869126010957717894580881427800702710183266444101856719220873060753811432649426623873625682911541010726703263366642963653425955300557467745096569560934036497148262561706235299688167123200573405508783455133151107011385648467913520053843100039948195585743646726335887593294721046661854922927174386766530763193006112496891803793470362787923500410473674550865629794167584701986093446840525395587127482611099619650231117667637704452769129234911152879820641973461262253767172267626174585105733784131996753557290808563296039972005232678550095812521050582373326993820880817421823730584489323674389263983152748301944669839728236836319446382094481223268252452397184231946051175500369802263480634111747449874874184424397019500993615838820496359145462765790146208765503014536773218538321390407662341130674329617409073825259587172189476445575358643729052499773292794103219605772390851382749292544075209585796645335349558595269803112848032723028331098428317461768223821617862127772850106890831716620586646461896384702317784297977096930298282846579873980358135255499990131810107352083487766998695509439348860553314635724967783591541770276306909456413642031346763422163672030850564003762341547404199120885034192060844362248453374736589308942371022411187041488959868723048515493280166860559705158902409693535854064208741886527301018139313168442522553436439358537912127770958507362246772014753370963997221656064190783485774773085254021772921092773376313133039198583969012879645392706477564787592829043657336769542392450814687226119834615990635437698531423109502642673757438055128462784586177049808547134538396250540258267313986622901202489558825443205016139416661694860266579516411508331144303563981453789359820022297990981744287239677157618108911490876673227564109843575222813098403257791810611355711270660784637914291213641718100275773780525866889886600888802667085071489200407799415255364314683430602781156902390213208443795225803646555809811220130403215738133599067716448805408216436202843019612014967435682727000535933002986288876099237079151631680723108969431474854260159802479863603729828620921316903506306216003624102205742640377389597846009122202047974216395174229386543244477716154013053939148931970429053469886684865319924215061554982110877320357099273326007232425063221009834697460820779109317220712625882891489222405487747812315002787108619485987369823660822657496887098656745059283948475845038365737367753165053798985927557290439676770765301359860904370367939341154456254912685124967922637464113626631641687846503106184477936710591582584636428104515324743602518158705119526280010255799695990050039249034035516208286309897638247556644507764626357859717451428267137287714141646258663601267540736371282892269970102620910495800759186973704563954199754497617993881642808159052928457607499640923822866290117009389427511525816667155066794264972220131877743844827963513622991125436394927771186016462491959171868909138147739302819857936466801661181107032921377967519070373123683573915243813963928653291774838765393916322098473175626361411529811128556755656672685205722598585463337641830884144562641639338007340972571362563566252854469730386087355070916749254804549602239180306274526951546273772856443137919483223316683269082982633038118174453294647780569219888401256411539028406177169720838506098443708264868920818338212374146993853335565359749267808009914120772655847328302143534875216768692191954582972968791524320056811196678805239062779306736106922025320238299523276677111434644986987338342860106930277261284258071382774484218117020589748364934739525648147531742902947674986045400789223607845114126365925920891302174449982563032684342209542940133168460397454289314550013574159236213277408380501195211663731617117441888481443578489969098984867888305421146265821331102570168408716989187055894959032522483085866893873422651631541161475431759714747803476118197929929923384698040575025636852900732645469029581892789384878905382465165807806330549408980375904834092573706828555262215601260588962400775112768857001827779195369379282856661281277652447749222904932242160271027568962790498385046440410635244060960169835644504090726529294116048038719051809382716224206852737112140803848234513094560687460073444568286793137531521951931523249856862828714194594450507624255496592801438450920785544603712907085278956447188996147999473078146023092645205671561027548222951830104520030586395445509412441315557995757773931264131106641530113615825678706622858933570140176259641608435286290039572015195628371131763570315474321113392774771577735686803481979389610465510955110835318947500436031932916637874982584300342179121449789932531245889105741236061533006436331937273326972013350928256544930370123140046991211419991400233846616197478896567974831753679775771476583091832906554273962171744958435926067388753200187810687608308867048983617332601628869374870754538037112153578811373345565312417143982363852277953214267492770847465558304802183217340424926475736169397602014565691371026068073357992718507763130500652183180870354568616057579868624289509246530038453986697976170502152253170408108252213659184649130852085330268140198962726253405893913760598349141602842956473718434419780653695417616467297100750651214000935756515772021383203947360478323101694268335171711841835238978898455695000103355840014378521658504359941789972320113125858939763023037731939394386143779285463425524242658640520767581467933640588954200264344548946817074984992258531211096580679905956490723679340484040341095900682402422967435370946125284338250924255050522920772936070693911818913755759012159360848212746065812943303173319567701733997352935257646776747336393778898332098718078120597745703143371434758250642297427725766397515728741786780147734592053675151156664509431399494304150812742065869847160251217363530394669041459489352103035353142684470836926781342667903034475000274541178939512158517313015860294497200859244571446770992798037346835441308117720633926542995172025918413463575614038183635406280996040406945256369680726451212284419548894465897302485432490091119029619667012458127430512789212272331031993399219466804074185825824510233650357552148969882352312141736437963791473053625381396838454029645219640117964582099692594548825110218252370252822537169324399537765343902567234983725603923724310800842722680547729849784413451494867600007995037817065219850691865844620716821617399010849974357108455938612254081350112557864240681201304606464195144892407769581870328316164968879520559609686465223861727544311625745641818497916339945025301837890687801703729960384467890078377291789066057561999149773853503198941246751463308124152874197398674241684125713702213135311281952171373020577842446201690696374116468037576870378753057025660182817068885594722821542822087540491760502829076520254075997600040399514730938289736353956493803502347538030674801641984929876633499293984223114794134646674866105990674800380329630110169785648627900035557122094926980734669509029226978394946709375208658689343769337607612811877257356444592554321658122017056073618630285952461968348061398289488224701719386296993408859487394469093271616162142615310192237668177015407950927883505431985643259956431763083768363607855609216474168405164227966032230899468104771671011414488734318245471412782611310733861698282236714414228008091782482407437016913351670033005173870382145731781293250207195119877769464278045789407216716458114279843909307941453178194704893295162256841911814812879523014348919859983851293274645752661048225725570575945031161142673938530184799260910624950958471622853288209261607870007537665943770332063107474699506488178398000272850257346548275955117131134903101041283651535651137404568271532114978379389265248311013745331230500650702954674235557974322951378891839049626049422485974636888046007512295801981211266078419054918787805219339324875773825769377621176888566436622629669991198220229462714404197312684529552830044818662995604564847634460422574768037767615827027444595796014643317733551907418830510840698356155283238646014109799842321070285034556759110158209900341378842325112391045207852921176662007717359212508107379630408555885656234190533188970488381618153222451659215279913577481056798557557455469350523985062027318147469326614078751170121023201508613519576254343483218998013650358301864389346056806666000869569936594428978661268897313404605050783679539252363023182736633028406249752514827626744536736518508454381695187809735206410067118963708488952260579876892286254208353111286612111066677149193994093574063569087745419300997707215074928550453462169981973276490955468903915146807328302302576092871843512962618191936161866318877233078828058141214190732975514059374113407886872579385764021854063752703587983385653384701124771986142569516629042961270917478246595379962059287141931704018706206928483493600588198376915201715695394088900458334315371623880964698113734980752548053890763305374151275517354277122355221112011567417015315218014230786960791635542190934644473365412442735222884664817173287128900399381065388255038742897537345161621745537387592419629089108603922451495777397421636190719733825581320591742792967759790733686953693800889072109576132046736161124179143549898537230642440480083200628286773415772479023717327212795258935769613191446729428203880204873150027572066051785802519511690644329571114980329751926070397933775163275266653026941020031124063339118280510358848865945091015196672379718865678003211294864356405190687028741393880512181885897298054947628883141421273231035234230686153577669433551946701624405688009974819746057766606102210610691227605962595763580091339560383533275469260904943596564129433274253275181126244481269997961671085913822587580855608336119845414525560302596092356775847064336826862091695433655613658604949903221865032369672517295965305508314095505973029040204787647032218580515409528834758390526841228684694299154416671881873898852022201671483897538365510860193389878037931245631886005799167696841222271795435484293275819601978576201198575926550021496113685276640237931426015158962592828178282128770529677429737685647862611692947462735616943033465616949855447152705770247836361665038131787539785400999295933446644032402807318251048602222299847626285566952780157807538931479837118964468592502295410036507456038519099226742227767752956986899305067683168091818496885991165299620642198042172230095792012394259251029788539271088189245915213246459768378352263269504752737465312718374796552248396616348526185461466567771045715233475216994429785635897489443460727715113072179367592652610880287695760257922765237391870415839730836095280999895282746181066379194804264495841344887297006159204757377854231423905605765933172661830231155172128412340507573994596385809284393035747554699817707762361807523900570673227769857504353340130515910974502095374544923334904320338927688915196643634126200849391260272850337899524745896743921953551574813865894299853184046164475459316114958397594606493963952055307232291951839522073531013008943337202116559127677926421965758045057588921462948742585512830058244128374207596246288710557618503701248214155517511769516945231986462634907008533660433216824386824619255203494470185579014054398132765978993109328961071111063926686776935284403705912046581002705161370919262010364196902997406318959765375188617331365374380848786281941017374409257064924833868298763896390822805968747879993967402279933796031327383670371945253463630676492588593042583011515587633267013025121932171181155449208537887134772919607909156100725083650347661382934012796246358424876417758368396146562621437698174001918714165433751772717651719121316319211745751156479668696078264630916744346905261274084165470375020607622185027435825870690793479968340409468180705684942197661594255204232949891323127958049851385646966966683048634494719827262525981049680358132438235935576225142213277123103837872545515774381971138504605683715146210276280265800885282359486680520362506491242692542009769745587273370370542708232388022445451490144145374430363689291165980852158727407287135386448916322418523346847368586261848732742992425857746996248380225765959657045497677780816939528609577392994221942331647168486345068252791482520388032964655526418856005905695121898671686272783080751383291537158553688981275262783922743377519739597497137795855263684683665907834474514247074049593786110344053432368423205254244797748910527722901444947902052931411165554472320851000871385146228530799036886680301862942973882640553930155006040026566401085320310457479255796584996105123703186434375478837248902361600636281054748380384735923772029251552926727590909055601208971626659918574413297096744602114859376130550024148117579409754395381629402382959883488643792169664256530593026130719888438378285723752239022285888764821080994360609446861479115597646553717039884450690043814663152031477563934078779369047658262297313718668999404515059723699213798251826231252605215731788623063511485070049210454482074922030675021355436315739728211671478107211654546047803213349192493221243802746680810556307282040258767814261941606076694790631138667297568983285151713086216555208717040998552826120567885059979011906187476381630901841300209327743686884970645490776528388139586463312898859845525768010598631731371653661774887906821100219741482748099025656571508404413846388870396452670136051973852234027274414206601468918100961600648576847071930542208878880087237384390480910610254455681164207021521328758355613826121167290110439516613238614471580012917035225732271366171129044216942327825906599305100498356751831756387411389676517849780686189856094274313682284733997821344873738819913545952787185408932151596684975262934321752673680368157227001286673937047668486161268513592311124762321102676699735960504217197997768663638697019615632024060187062349594816685246944247476651209328691136669141144902652201512881986127150649426248995851549394107638049613029849526982778581351631263453127360624276986490674542196441929047209303054681406781926126603883360938293005754078768675210443494455917632962911410014692028675580665527566307532991719155138606319606827810336968054232351077667960300227715915017920965067055557641121828325219634438182986743953629917988984063590997264266242034552555625591158563552865404138424840015595082337750156072868735091538504333719147855045620848353379853558403175150599027704723675776051664606135709005052843357830916546546607308537452597409498606189001305624489333466309731333337871137843928029004106650700363987157102481560391265411534463147549672254029576475918878323553894062520246330727390627429174087962261404755303323484269312645532335417790946667700680302250703840622887671102898512145349753080136198808577098149741368873937880543099157190927311524543888783752126870742833908407057078607747473974881212874917396668901304286425689306911445112540251084786767357332164153965897827369257151492759252400160510111186928739309186626975560209094940175942395511890476819547129663724205247127040423986126692342746671621167275817036933477744125754071170498541059353253267494945219975630182367904698698433374328563555521655833715519659729845090266276269614992068464190285493055499420840644333118614245448987896873154637397573106767621565173110277831013130574767037658571877119718713890422365174459628553619787626522364140827089871338650138214445879376819461773928031077091720276197668076921676374177318603861255485901547459375914904662604339316472824482876834726899072025679338289143709244371665799136845253597096015917898246565597535073970697304050174515221394780603667915211556177325406809658540809953809469678211011984636214427777784099488532223798329888960747746238686191738550585903601698218037422489259116852865085896803845182470505839747954641509109391475725437598741374170838934207590105904956079478563139498624048766513518566645781686244015515318216878397209585402945375806153029723281139388428203038521585094136987981124073615194787201898447852409947283154186250634399019723395000881888471202799402350712955753350123338414476654766446496961557209136417507824351634001507045473638999311466401427177729207916894490003566936728176531709891171442079873179764491313983890101299043708883021348918020400148174966702234947745667117322114637759650418913148240758709060989453876248880700750961816357205875389492265733419286195865177645807558430593352394290037910049470137240136041089655422125533015724654887318185531730738910414800847924498118071267340354970540859851211216820741344068026728643939441569786610830079484636614204885584049262662230533160910733712363701542154892293842411735292804883412049450445880089165942407631493404356726277133921152993486295201124143271476962802599232536301535247710094098556481567574660090972918078427668953248617337052696506862988171351817407264950524437672805656806540866342627147354716229595890969515426128108094352405719624554437623158509933100110273343674031744659266219742207823642092659018460424917343255373470352181405123043709960353081140895711701799550815206545683842227108265525461466671647848933497983530020926853759168657404002514042356077850144366121219761994755720793676694677497761251040734966420977026029214317816443786829558004082969583862131850681888577933101551747594053445369965686509163459716283732317449371100814039182169610440345308540384199242373991262442006297218596471256310738447375903720311172936119837177685943547344561912028806942410302936554855133438182376149540498717835361928859755652661436405289137420737463017565145618696877680597399400296313552380845086339879918405807992079042454161033021609561748221745084202650702213259580133381485506458688303548624580280367344609728292757708953877197106516196131428054495006144890238139075913036611193235085616325423558770521515134580447661012673628491191960702943637060164745092507855795166997644595774121379440866081004391406397451391995226381741025306703903764952983758456519210297325825765799776445149519005081365704107044531658563409824076224873811876449653575934728455696279318374161738920439348372002656945468251863203560269656215292706058273721621640286055457332941473728454246362376772815187817558227580905606891695551311235220819914761414277652214051339891131335570425219598844482260763312916884629206603451575782282049034499735734403563369848498781893525307561046240065744071104308709537286040296091631435587826464901923595862069129365603573052525898490607507280696922497649817706292647736221586135150825801587161622542163641346693916154944574989066578153506489599237984786647357935100657860983598336765243523477840456981885866624444026624067029438445242931477528619184621100984408366733232005812267525148214812506425472417617655231536897270191960137896637084935831281998944094205869714201146646884902099379290605269615911204848868815708792801569038329705064993229254305436895897938226866564541349387739222867634703217410727346556622247635996339051310854296616605836460729442460728156047632363900547393237764486942587984683495368664006735612283110526269200605574619003326527214220543969184743791066740849456939467011515333271816799699916616695188183163703037236916586236422908057035437105525376324641266837449245405143717239182141571987364022019080567954858130757466504378209092383806337622993604561627511651906537580418127353005168273438807778763949615116058687650563499874126608556434929270943328494577175183564464759490601876761994362451516168312686450630481160046696589866695341183056938270067948347611958473171829073588606741900909324466009015341469193873013373367191742964276283758747621377498021170691835742646429643579660459092523664367863903168841497650562337522614148260493834127417080982361337819807563514480496697278701621258391276714766552141800127401420783602146523518935928020992066484562654542597128358138360256969629516685457752236620728795552086460693274810267668454228301108609216481262106203940492740104043646353290493192038379851271183991129012305581327516535226077778317744738150219011402767813540866221285353900882295363404569688841181221338896244216716784943559951011623193884788713297790755203686424560563406749934728298109312684275069992687661658346318345694887101780285783247540356532411924980187346245007836501846834724967329062070836565281219380878320329166005899323563652784464427629111270506232273979125539155393801789006060299851095408836964575987309152461491364218001016604747085891397217303255787970212273147626980165937141793009598869540052427340500215705734476495750738098070926781868309314702092894900456058366511158083650369720977102101389290960021413521035200805879793277652691231518195546243540350911763170836195592221886370707082719262667860261187449736900486143896011021657712664281426385564196555136746618554305680646852952760850332937509813465876024559143173490446830371092746862589430270195849669101595345042166820877393747915306286725559083399784649510170312131517124089871060106372852143459170594099230723232441813418541718514784044475537075892561107173526113955664706053125824207964785939267758268971768476679104016992429974418700887790587101880649997217436124571900544533448492744898175949347254191499394958358743462994407844695207886745275090671255262764036014116302899203160602338013129012135106899535431251374563579626323486077208742307682351058865367723768636920544096044272968310116383865360596896371729297882203705588246989761621977528900417588438866835651163885850576524132367801033793246598131563671120890530826024129935706574426022033335462702652789719326830781543817246076896473802355472062035121436183646726209919593630949145584445188088391607067074883772332605616810161617460194904031204984323523844292145760707940641940880467346216177782309067216049057550246568888178126063181498270825636601778904817041569253738677192000626148279636875845018879188598390063457354068755727962579673311977127383075910397866444794953929069477765543796254272554833030606019529001997931772475515968939235896547035714843623873884755790896111937882609273515002268936333575362083590125497287629320319563250513269877110675410960950745909610314878525977601328251045767498671299633767944005886690844628070856200440792086532620541137449581896327257670242774480896609877941152992928618995232025100128100447941560063884521119903611717648047415957447272852640495527998934812307101769649658195418565072685136810404000013645924803925127475888968034867274642277319217739167426250372814076185903354447028212745964302169895737827026575648747571438009763466736803992988626172684118867886375315393019563095627587885864901246920112536158209532248909185040082896763665179601501857284047961803449256814320739112639542330851341893073789563132371513855109785635757842674240070034958006704284893608047186373989232278508088598896284360116475356612358513453097014418162108861221669358825506539150713939113479127392472503067604019502704213935231559378246447477398951971404667849260214343745772699993467311311991822576950898157416494144008662161453153680766738871442602117664304365523265981653388579149237526898215423430453012534732387131442229727033565735825181834779060111171360316539820834221100242462253442118547182907454682482305778360374902220771405371823497234639206642295797405763188912574452510807572824831280684141749932048832783847870218577015221854892968516711237528999540440827537317470744620461973568199257568233392133364261722546027938403413924072844966884443824172049845421320906391816111729037265045021987871179494436999538435444285947080272260481707895933385481446921229889522284649587583473382068608532139979671941764639356491293170489251388175279164410092753378377354396324526398224101736804647857283114379091389998186264181100444558168340439513733819398215915282174096755906247888657989849033784125404804811292125242210154223988559570196059450152023858628512236905489565012388245705017198315150851161371511704294203507106986635158142285028961204647525453249580673110832816640285746434343997821279892548334672849908405305226986564947255340296147273439707839818741109768668353667605095429548794137683627530831520933501529903697913486712115726321398443148457485817832885091694283621610215424045744330307434832095922588418889104132141231908930375889284514238001159438180625410065650384774794875442232345585094015055078377538905670979546325916303544919169585088641271348933751990814054981097420767396481376905729350552450896899274971610060179147924373155814638027113880995992682428724472594801906066850496015435658617011987171302108188024016120917380061955344838182243027846489871222207808192009892477885774859599815589836392000304780279754789109773023767992036415253149995942783259765163491991477300686938655841101827396382196084890194202983319576111695557157826061388501792593767270745053286009309604791110393157586204397642875290976387428408688276541148592796564457229221228441078163982642100168930392641770736707602025339502243743841956725229382377951466357425183958789406173481474004286611659890704449802586424636875908338643031576318353837938456623609537657978909245013905161324446911244945960646700310620649633953116935351068601460577504752612805524222153241107897188121775234114154176400081820698014192840520388401432073571814264720323830039358946247780508855396463774489106269047960616889512145697188539038520867467341543822908879627381981315945564818500668552939273991506927280103304263487416269151050158432346783338722694067698293104627863275294294823908316850960423412630898956757991211308445944253789682669182604445761692634090334981484787840407588942565868003762108138669948507603795799424851240407194718393204144701060797247105617764802377258326511151639476117701387115511600571346155765679847177090584365575298761420996223652555248495988458470554687608064450123323753369511640605530668326646583739421032815711102489803726195730266741729531944576539372828787692225355485755400237587293885453284374344976709255280051005920047313125419487351177326200263436901323838404361944113337780637656564760115579257393100408004987081758723941345624672038971347767764330237346874378338026760330488565367856893947210617419309398251506548720870025172161233625481081376110594205936535740596095075821699434969426241292459121731948011838393801172996822176934353496768963040098493680817038698085761145725569830538439093735662597692018022040112509989998540051976680183823771035677697700631541226532177772190864380336383670701680464221663700195730332886124574951972993568748069485721279504925192672842671870242834669679340046629531456684657137655928960007905037945721467513880646678032824950138306605265358872256976911831301159696429304611262611704121878876177504729428540188065037401623532307839019686701614756684321881008124749229806881447230977542471053972899816736563015292619762574178468325224123081523002341347735498225807628639882741886459143121124101842427100326387551315297238634765502408220296972714660892898397016722744814236448181436827664133003624479268577275553503896058501194636398052178197530449039428860778403711092443557099166580342923107932876092183087645621139941052644565024713475023302651741016088797757567514425919932695180366820139689960921491663203516769418441523703017638855295500851847603978998301273013385993930377108460171058762861509533279300118753896545064373656488001531645140968400240341610835035980068881251344316487029482646712414564392477704257624931410539683932979774835408846606539237534010077134087225738511467533961957466385338429823587087726334833050470773667085886620492024764143357718782891121489273760218760406770483220337970976936381060965228245383130998256196385431799642837424308576850750138492212276046425653269791452717912504792500651055671125555735216573021110131248252699683836020015114341176954622654880881957811386205947194664601057961797806214217705436264623840381025120505679572218747952785993421519460164705410184750250719841109498516522510460562745684608080225058091627121770997222173903506744238708915189971990422689177275964447389102149653021665185347127338546173893745815771875537787230049578763705409095794910047121856018975254319981276384918399358808137427074034048415002149921431925719700901909914159656244027940589806171139353653386450993352032960388138298676414442322172041532785641944079983762170237670933159297028585935493709924626809897110649737288435130694643956936977557118276201545229932352162551044573468229467286763829658867571355312273460587670502496881439648518754313881585558353549698112724530255748493604334187819605858660901098007916562859272069021286600618241723504233359104757962925956419748817821333470281218360776715141155486829024835415969050884378586759656699623933187362916667227307876682804208077988666278658154293057921187095326861023258727744878199853551943086194614257078947000332533968434469002881219246252891057432397414432981242943555208691838077863478346180239067568771272930127250757116385301368603234233461466878614038134455844925150736828665442228449276235896536640222993980698087206685352109240897415338865897521589019906255441610189676560726898511469941416697750149028990380764271357405444816897861933149227824208251120923042474552453613125902333881605530936762437270239316558734965438093362666097266523160530001323550075530946965477051325386023199327168231724280264252678266996876806374850672008578094992245930260333440260367595832232006923500771634019254900690777369536936211835548071997248030641963842493732854292676106420044310031542968351779831035849560008457428289168495263868152301793106696973832173172873862790693020734025298768210294123494891380999304177764747528185289202549956344206949084465770920087332077535306893320562219775275968423989999581540028638588005493056172610044748669964874599573664474505000793615290368144771461098446497252997709046358729752205793830129885494216433942326958884760682613429805162916674112927804055732802003733364407651124954436191496246665613565014544836847551244669134240891090048246751329273210640346868409001317468350314036300176470084916421436771738771257668223420541841450931520176166857447014750965762188627030048894159169348700758851344905351220712473373139295971448889515590701631343574820994099563536121205983976029021471947015911723274702573499950152952900657523514034926489499910756782245315649467823676936496741098884111805717443918590053773920682806754013116948605384364633922823326797566319160670606955126807289182968035036670884292362388146422666018367844271953639188758674788563328746485014149244953432893585846849777768868676991351493071262841236954574681548800402008395935925113738729199800171870385383439144468701318750838954173848810887466302707967925525693395595445436405411968761159983745861302465055007735347472775302399628600112063253102163646433726447915313477289893291211422619567202934628792939121846928423123636607229935264953028033654712875401024925296333659887361995504624352865357213754637475475702144081210563232761320533085344560706211329491897278241255343024394249238476530800550942817321538508182133325552806618640504905424618500384241123134836219316426823883072232206235909562673930796747620651628256051559185011476517787302845333021448119299158660435384270681885809068988549320478718100618584550194190370694204693467742588603909961675939976528265486776525901305138987569617213135626942108831415109471467085266402554588830865455991960674619225838919337821266110282448671433166858157843555673753615166914027998173311426553902623550879696078030914827126690498999574611146451659044390782040270944822434103233031294229839370868512419662461841878679554454193329898131533839667762425291738390493504618380145219193484654058442752367341650898642495394222494803385634418442699033522618668998238753908352508889502673285585502629770999641924747972605345665797424224428807056259892630027356545640742650184962288668000873565997619468821864661797722023531875623089751765867366381118705316694392296644045978572139699124374569367713253295484900102263020504933607014350859710387739712951786217158097692963926680565844860215165739918376163049004881044668882618604288847295789705817041344540364184679287884855975963610476957623106876789566363706925936350753958034278921380495839309709908683337876203151929805124822005795358727441087192355140710166647139710809557955790984900675306888192395408045119588666603232681422624727491553254423132728884815226776186849140864337396026088828080062484905828171476019565808792751692134799002211785104971065583304036097220996101013459247364129711194519549672993065908849342397973219428577590584112219906614844028280499758506879956171274529156690930599160752338501902834732913369258439900906285023186792776889715990022105651317743560766016081511664111126059958893468925422280299678294177638633950591342291856176466996015675253378341914632274792544525409092426786128665470404163912034641229555972896381481975676496099363137471693830703993209406665472443029037028556044478623329035480412255909412007681622142363316467166069681723553060094665561861083847907248866522166514212563552348556620097646260463448548743527244759204990292671548652895564136614734712006603378151444260032376608953366491041837248222500442292501032661229086553757497684324086092645905274199931836626360131547760391886122356799795793444804798884559530586747020148308805789373382046645994476241418833915928473186183301190398907657080639974630033684590196540547347497090620045341909124306436379426550440378949616404520600539505196393168033517867799380825269266797050374610197252096647599766184685468197015359866895336029334630876151872574490297448819209281182466873295581054699389781090385950578150822719830248199313348099265120088515632618713344993391706787449100325936514668556506296846697410835353715843134091652677931063773808521021856671905932499938571401730929132858739260312911924030966465702675698033891109481680529541284238462494579493539252561850020680438253044657634102234478781104517402781597360106553469541185680559145731655145525041099262734483594320963913771537167386876043368702429521646846510471343906983906490096245786377616482970493434385027858610681265066586817938447106828146813447510736068074955803786430376657508746601813629029958844551706430098636224378637484052116920394091953467118294383294492083597839387494566776236672169084961292289087404430357288499101680098966099195841008424961703004165170060514059516399728594703679363207637850320072447206136173282302690793441704822626790720827967440725857212673518430136462088634753148087447978757137859994988734978396051624117237029281172169622291786372774560977507393085006643661055126979087636834999356795806796430422741073573739760056756340716559263355398937733067435664682721073548573348464839704440777744711902866533431598243667407134640087661102170953918692696414233799833600912788084500238731658154263146019163266347448781372151376604195150073567298156891170365740722346393761865143575801467597675760155335075267178880046994549572105614986972207138227761938097154293862439190421402724724363707277622725375925450854180903304078253679267646887613670817965280580611509884349857229298366444431991369575707301471745424673777323041057483426106187091864192135553403739087795864030954579003815011471653853125243339102827003593919726763126491342837281337922657477651128679937701148530171992449660910881845329051366150456014210161422256473164630069161479399300630615861112616519195000719486969481544504677327934862331578976535659741866583580357227635896308629730218807895909020207087745427234217937135113135667665897028110084261995103795331915752908412192343620749730393162984072545298577009527675252325861813094469904859660698184489909744061131079231971171026803727932832214750258104012254674214304397274397065601639510276429094680284672704328091606243779335207579009566438783137722267619529650826531618853831492924984318735796350107224068500415042017314322812310856358407600979367304542894677232600150485607555958693734488789848366172422594918021672825945654261307433762987542753997252168302679984462318296368795798520774509016337844978099309600367163972407164542789262308089564654744907555308539756190524528814502058538703928090868013036054421663854923684961625443359587853494944473390349044324831386683936212139410575397609459104152997429273197859270610818933943258602964056398262690511117432115791804725612733057596620838024665673739592173098670332339858440278317007990421357780131000372904324685388908242411847391483025097383461916851745061019194173807842916324666555764733845808420465682742306199214166127045369909917412236605416253022068686220357004998515043411757748516861983243391063272425539370616718570329229041907803306929222964638187230738290443806653046569598370072909597773835073423990208935602518425789286239146305249529638175243691854262707535873442942595257964604577455883581891453213303861145971045253856121452656797792611022878119627030526240732033078877291662178312426485211419999040444720030432632222729252037905744427381395845605349562366588852936613750478301509013295824402392452214262748322033589303228602660000761150370208489193904881109482697891638712363980371181059858064082068083490720992166026894292166205558549650156187466981429526150846278743062782786119137157197498837836705440130152701777131850244485534962055855884533446391103437598180019241674177225981495353805468298187688260321760275618872286238683929399819024489432030440421724660399324530939828002399922856855478777611682529564954505679785783651643760924779927180672754890636467020490142528245215006042215541746679318861780048894099370598923711943261734161788613780811058664009512417463761004126667163616205652759158024766877672543330698247490413814422891970019166249108865622873495985522656819544402563890187817430440863231197131058645575629616489588509634614415605330614616544654996849375773974293833945554658914886929821172619799036815950027508333263791302884906193720962693513117219333793898264978901222936914637608918968891936538734879170158368294398129991814997082635627804352370027137940835489200216243329130615945637573829186276946529881016270538240085244010284700548066473650742852317943755466773641560109840092107373037127529939478187910273467777911359932307209585689297896950677101311430628931776215472725938518814079307076971241248931748631792692262119768571175374555897479042017763786522289660366036518524702615736601445319550844884698563195026671178726316659787389598503723126405851519627477438546810086638683715098695282610891731235874293216184795314582990381510594444473433292571341041268624134568451280922119266925365693333464641668763558757811894250368554835432228523606617245693448877518637934799491937941962543482247192995464282239281260078435854967814383271758190088498329919171621029621579985463380000774754484661999946231296873539619567955382872010595931562310869936010463786476648027076732294010415946120402514473477071882301527142710263665917891137641446302267845124164040473763361310403866485046472738804707273610958042393867158685741411156592499302919349296118404703074167268341082525227516014718435856896978082104177774542678985073966406832687470655894794826197432113450430798629881719314568000627786548808435234919270251210541022252426549777047574623393543335943550866150676185938811579401472829405778249876705841869279330481534204864865999753694916474192533379478667323403400272425142685889939740145345101870208353331525200382705774676263102549118192163290582774927120788103778465839499597150668347258383610564817908007867336564666489364366548427392385891416504474330867204198513949627166708301549219436416487276248580963939392920242704371388410913144342122361490679316074839898748238192032588829265995334723255439521855885630839657248044963605046215093524333947073126853757081955216903185116348165226581063019812674913073933652236478358230426043563561663729471666311296744493993909636788511714215670852958128099795737397650500402059266417583166990737815498277409081457590776125491953969528279117810409417494262746732247618393270052936693826078238734612824986657230949080552211940602832382976734520921861951440016200599264057550533145984199313350184346155811475985883469453073902768327390688889181035967065650421218799012596268894792899271992186212812224486772091319522698034432883175632762556106143156905863012545430259789484022439416523223338812308843100342734159549358350023121766439025745338631686391123457088086573551375431225553925163566136770262905201651495673497243949575706797082051707732607471927663947531467860535245679574470114693594853615110100952689422283348127443010800635216065947525834184025185123260907830741321618218139141146227237729669084735604589627393805960508238929725085091573133734711012734453374342967942280012265729287042201309475190281904601172159567945870226333160689909017113756962399802953421180640432173496786323229892125530696889282423653494154907341871132157150326641302869422982302824530757409009722430742864034657880645868232308977179357988737621551574863102067105413349424453111211395052560552488728492929449920135469227617300747910746349407134353385642501794156258259335619883274364299396940960986567605620951646513411158105892026113218463929918891277212809894973939746564826563386185292912510548252334041556895258180165083683131851010666204735196868816223746939716354013789102121439617017575353139227219740463020308030680054587627485163401089619190018090515457966270943953281137212541320607371763837675896856581633046093286500396055891379286659865540922948766139874696402811661935781859866048337369900559248782729593198500182261193897737296963411932311742168715486001409071974814627692221976827363589719145377716365729217534211581105745214620294391747133193959353532712706463468112053079769818636089631356084245105966743053574206324750221680713518937799272704604095813507929079242091220627243605773946558886771450916039649213406776397905440695705065261202339083384151743472287559657076468075046680278876968321491845554636177854478004340549459353498417517151696343071265415778541740546226555063839107749200277624073654976274358391338211607100032827487559233466121722543580317227892356197525237933174464125261966349790586222839298341630377733128236299150284910888003975321203102761492914349693017867081079718503059217363235036423912991094776576228456036502181466952968882787010185676128178078915600402071692904688501464628859568807375747038474107973792391690067307828939073550523373940692998581627145366046269770975900576251080630057304330039443231870875019397696922613743821079162062476195604936787429548796630336290116503923638367415252268476853941588965798203084369720391118933265874129178273770112112252769665402734474883329146544391700159089730886516033594875342308700323703373663495848067306101552401023382424022735119269303981236341901576979179388284081684539979485494544621603907253321578718712973191282456708517104848629661694637136699393931913806379995388742719277149939422732809286341722862654941281627267620197610706060998817217783112842606562552913246843251907062607740623721952357443562914529300087862304693918982597561299994684459122321985694861665238395417265133457128192961720663770920272523702818415454020053880630649546303406585098417394489194040723012017281059141404354744050942177908195017229030323237053640272711231798794810352627612400703958677340379675076361147382523937249180938767923547733222654531081914789775950572409807933404404232997529567074373006747075265219849059707986880933449600439364387308688348068201044173999046327074255323198791468128220596397334798047630399534465550255685409591097850963412157322166357183999519223716383516600174525248367167569767252437003095081955087360951870193106101782921586697904261934403565273341894228036486526317078544580261650461407820247481718446290047991938666230144758016511038010765890813295313561504346639456259627048961579848754074610847799558436180886170153037074902784470529610054547746134404369080762614793163981897046433345332144491880648291348438324896681157568955529205129877893804086822799057099521225537383411000754289484493042976446505331853904831664317303264495693934226463760575935549501372731194254463690219130582649073117350750365083832965836453834947103658923371235069236147076335755242179540544435371468324166040858802090570168554738587005809518250422172178186885723562119617913900712473939371249770029426334319292389721258235584118564024448961466417687828980341025174647866175764454901704621459831455463273086720280610401951691205687302166849243257548713791165020895270251856463568079735908588649100361276306638221780362899019669669163533816886061446095316843897763457717190027154481507262810553386854123696255312579021150221192704945759936184094770211805484018956282464670691560799632851822805674815938153343056469883511136687219142831706650989805096964769923365851643994262664226061557843851194643621955800658305810283320579007376271631026583435180700689914146646401686231016799210733783021561983889582479814925333484676369717449083484405187456490267709996514527960224355328240868147620020323228185056685694376905239123560014390182952672725767380400325455280270843383833418029692114873743627555596403523027395815778774788372773628800853373760263063600499733283500365894796490266520606936000397411546042488968647559932364891269520386941702452820741767954231114933396114642211079497215531711294615946155701086308622379311234153264142944219328211193405561693170322564603867166225611631919811806912827308766466333917595047203272885627895019280612869321717032672217341350322013483469054983873011246129119878787158428190371772469524040164215560506095788028266670299348302682578213962248896385227682572120138219946933381691951518891289758853343546066006161286308167176575232962106297009644249471811021467856359656556935790928434149088461055379089235539537638847489532578879890272212938288831941147478494946555865638777921967008090013405609612308018193614706081993862520792467042821911034236222094565354292963599422689112303532985571775272686474718055501777798042050684470790676605502708239911721856141643774958562881594587015308449879612525498512230619625757005386597848796202128555422990471566142691602897865070476832696454084436913622510814548847950990763569313336792265973328954655285795501039745396188037999569763376006892236160519365774885666854839217380064693045881277545939805409824279172548011467236850253470217995543495638527003243212323731993892418054332168148667860016261779712172239741428598075232615212395409066120154572469132368855872274270940102436282301081821893603631826225374061398565214464624051239510092055861294327031208868593963387756350607589176688941766936523589531932254977383431559872831915847048508951798105907072302815349710062710919696654113133996202585226751893100049267924150226678067602838948667838278411438181956893393717520871476045808874528270254847543065747811132127291013955130346386304473951506321475318940879514246794082967300452685694803794332946902178066727858535282219905313734320123674921355321494727064071113482016892353697575619909941368448392987709217836930231096558945992325632941972319814448569873770614603674409504420278701933439391702799178361073346282441666006338028573589171927823611965027095907405321502635392775821693677049097800435396734050598437625068420151743060732885454836428534372663606742455528319571996292081503667848589035513998722304960288546008015669226796175254433053180169809842984980067113238478910738011507188422967125098289814929941276429888986358861576898740396624971593817130637073313426287200498649026446901881060623024245113190901095743029743336677699433842182818809979865358221519541548946272547036394856871322560915782687514856187098474550606580651837452186528503557708932479429344531000133697067475525550333480260961457522291582094978690803911251937014191461265398170441307306855316519950484455734574955801826369761666118941063619306582665584927298457050631668891117732342529500717212813191778843992710269993722564811491048252941490073111377585624292229062517912948024310716888375270799139302255948114236993897213574261211388301038515322780816889847913950833613980034963263128825832689286161010004641997620797869901793963124864141866199918736060208289291181218420529621661346744207808858444513167041524951351716297123319273902749215120388713663444708124554040876599275593300164432566678643534775284273438143987092176345765841556572856403836207929926211176694043558528072306528341091808986057067453183371003474354551132697583138905787360565956840865160219952168802271200541933744493733196686339848300070765333786396682500557625046533236733227774457205970919955985024944893817269976816712531231311913554291030153980975158621837865255897044819776001222509137910727018062121652486389950782974401515610197521077293957015156650329820390876729032039903394989443219480815297662289986091262135415754825853484060787569133302396227792611665052659635368080768567537017328482239065268332762255371625430335527276922620422946548880806436528563849004726252486680220653095817099001069387526074812332155170834720580343597818551262953729549683457254023651862377449179628753996204009874046513919819758293100007658437387532972058043897664362968174975160998867930917566968249646304730666200102903827448741708923485927858903780288367091901382411440093980310735652781431004377224746046372165814413025813270733073672251703657910293493877725273139093746595360895976739927591207323166307058964942459747625347780449015255435658888661175815534900489191299690984760659657552911399019906483881015836615163869655831224926951255549133012161999863633862622631974401405233038682713672478422418159401998373080261134349590024441011786064448999620358619270013378712418384270157608357103261037980273365278655655219412359514829639126103347016029732157391132938545040950651631023659841168073618764476022020269302185777205407010832629237347971689034490106561485568769745942791480541824790434278867447995058742214306294443680903226576959117727720109360591313823790665457317017191592773574730497178810617004076311051742449205013230856997209173703650307046418574190473152452801889628229702207191000608587973257301427086824641212070275632872177525158870857963356545026484420706986518127778825105879975255553590523264259086679122213425534574230964590813954292659203539730856675573410410010074820477724686151318345766812365968532091497196390207607526820816970636025214590262504706733341618117409537007017249633613337860589206047095614879142353762182855290675431288427463795097355741823891092005329855211950009800031952894112028432107912856158992871252558584856703669681709475239437293542933831729991088702438398822069705647768885435216685821430897570589054178757644106558434801685176296320687954326404664894357247240499470891231626638044361631933758151927590604396163529988820998547523378257026307437368591617076517004023207586104068975299408299788177506924853411605319759449132243151765604364374594734290508508495943893429310134346958836495505646575845818024685354858270427590552442370369232533322399756175234749610895687135668962087787035106083614527399631783945697761203258068090699118918883786739844701352970886316318840315797336815204584404018086365973707581765284353971997555878076835925903467344762576342798927868319951946804517855298482757998763694240703122383414303535265988811776486023965657022933688327280310087296182402974069282513307641049030173961071138526873696849001488919809599661309154154457622218568100596913917028647466190609383530997957656910916264514340086678859655132052959078642255210483932830150060597803609963458528434956300795085952278872170123233571696251369678999701388543820774653286121239165446929633318219870960955286458978366964414404287843032272230957561559548687752216854210304860128144288370673112998272904615275605078467552014411587381262310148733389027222306200896834281289784750175723992785630233207643650029917182025286424474827191371468677172120549852854594092353014788389618282315207246135804219974236032077297779656116877258381605323603048986416058317973606934330079125187615773863415273582408564864987793256129536627052136409261891263773112673335420395200376685640301963862480978612900495645517709037489366700476584987732474187259587842875849352183810798975116585993488018002800178331572917005499117902544347820131401675020187245351471656204096433629593873018893511478384671957623859767443852256109427313279502423277372399176377107152476659027404212490808807266644637278075589290944949625965499288391380752434437224134123997614513441197676877469102068770145487164070197503833391289240774429527703816043419666996690038593882893821746531507098811746513399780877169444317208419348390465423659471011975132317545655288804654205193327456770815892727521684004764552353061433285401749234711426312344027113353076948393304386405473688487566432251596277816547134506099229392131512026563399112433332410034241348903295579241369286866806101710682415921236001124572908996648108563619755815030770740718108118992676091717528524822108967765457429623186900019725252439712261696107404914690147129508402598330503303052932176570067724853559190195526056657629378437848864728056980554069215513792342879856621857993109351623696559551188590364711770326294211434399807288082634152832030594404446368674214922801153473189137520730865874439222675108884204083074800131757870494041692341966869378964072531251495159681942433777232803659442621385230114000737629834614956207561517284044234932334348407687851214799096803697036233301335414402613398906491284446802850063708386033806389387474859536912101577688267314630340618056853703195768655099760085706098414061492396971666860678532844556299736528015967674309268790028854592548735148966004381144522155324744707968957560523985363418745251326071497433655795692594594873114474063731808466725094555100192252535375309878612139463057325845457585900456238156714346361251089682005870718516890693752531012241924907070219686173860678362674525483082013967009369820815271014036837379301438287610625607494924705857404451179195646950026291335992673355946838767737048792255790808590156857109022295471407658401879447508581051766933101443440819633794288154766850691741014170054573525008438476427703595028407652729857155449379194898065349846462219089079801661748172441461913346240923003969520232984335619619039396031282130106743329956656127052228368826547837341798079356349216762567535419889797997561053188530501181359116200888292348983589409621329949548119323605213251985093477786687490797465024688851474568803722506250751229189444270505185550436738225073067623535526924201374974017284278654153083989659242397062138934941762562637906277668841589671102264237722755882969573053163889687249043036709419680583165722723784303687688980148162767111741118504317680049886305346443673331843273941128207770628046820578728548430510911689222393508948737308860557173698006794796527489604627647447084768029742612739679456788565129552557933995674028144058115182124181117908677025056376225351102324112166615959332318012867491761945915946561702026717378233790196267050346704157909356791052900200155377172068983818993785985628737168858309944248001173833113286692490833973150890770844883185461532230225951044819013629444802702572369557464479136949273894502941909379652992222185885306225995560997269250342972209613169407349152359562228280164899978261469471415855176282774597775649528721833933004824878488129980722503513459403828527941933895370080341086408443503500555509351556752912344296968973451268868127445231747345993514906404107318850990015289458254880641260328014886173521364120013669743052942093022438949342181310138367988716220880890501812577918322758078907462550110825816501905060795698421028610285733452026855466964468632856511952611265932605886837597905165932366519051504719528098036007225497607620420199778836861077152476997739156146897251119261290655939553577439925786566596954872381198145762676880767356883123178655547710853605631411734177296964793523077695426491276328706336826742163043032084899990048982958552466141303344774170771169026108150940651882496398077135172476670134016689503535715615515727816931556775766743894066503020208191832715635294729144254760043167399571653400058044099285205548111662258675289483078324404044380129028542061985342219013494440391337990715135780461077718708848865890792731571912921570179581475068579471987711956890280470531763116743818585861317411365871301294407441996347098236800412993280162158255429398332138672996509707813751734601870804039809390072018504918546780723656664255692228993529771583476301889840473557146927060705539557680711324474053778819345417161821137441139315049809017633945969598190503969804708197092877149540326053439731461189367002055413903773026812743235065580124448045935446256470290834321114175344820403752117047312150018779425088926214449911190307255990156565572586966165392593876207248200050574161452862778685998817687208560968991663684726148305507022794440488720709492592982695618672234773472834697426701604198936575665386118369371658254703066118656591249858304340876689775175718534389146707028587504893323092936023508694670053129487057543162111494440493798282631360840860660635630040538877815838211335023192550647230716625271456553919300190153192440453223033262009338521629772643677206230921499131614610676160467309765577986662711598084598354135529318145013088175818174300605542173134234359716676152089285607998938672759569354480902592476066917551352316468845318122741218645725269126138596985244746254350198106792980679047893268626442838448700961432912867220267788603347319453438933687627016614547846050863702827090947322302110932268778286628387168529538250784445070483887249558697280958599703127727064105553172434227186938046354790906808811493075713459706511969979767839462607142197526013498862520939016430149745174682351169345924005888502970959954228049602243607908958012193205039784796869501443805940481334465845268924949961293707309398489881112616814013365535645619456231782925669939850419711293062587017919945632889743389150597608768259496902983147112125243004198864420929384756266003279342801054654661260801640532167568366574736206967525756989191860264648581824913046864399907240604431169188884469288132214748620105081512308068966294887369079634148756053938146551685786888202524516877499897696601378977961550815919626344705792047583173702361693561172027158188803244917414455050338024013532463980819222594568698085714846502830815556406432765180330766275355004480861295017283240231360433539474125313425046337659765355020944521307267584863589337134890043762127846659966545808431945690612912055594220832081149592418606523613015802913097133607312893199626418042283715041387405022602851405491911425560127703068792024691450281592501162818414014979548174345112437113397977175672819667486781619143967946967880278450433919885566564424342270062230048994663469283019566027130687752261064056921195419110260601745500957492446797525864444881982602166638386156067364303097137346579249172583660170667711727524966777429877767663083287755621718049987816900435585235031266785527193832906878530533873049839153097360152260215531370127451598660647215355698650805239427489196302974629855241903161918191500807531835690860560417411043309295550149298034096850861543773707837058433533294544206224715190038555217337893821959322707422982088109403802262147227234510956014083511495520289214531098400800437322784474918757348059249364806488281860612213182595255120552381058561056398160687854983939217982010484843664452815902375011875785937718846779892969462435133314098405468523660328387081453807128266283727390647885526753296604613694183098301685420460130177860330891388695953741983554568595712254115986969153124820118165352161735543247318369077441820419637795276884676385183644149682599985014482001341305370114071991572223180577078640427884815542603175171380587215253456068387276575925455615354049263362341804916268284406736808227591293736340282835019091558604473865359339208288057096898458872234001597747153788781373662508261275777339200638796867659334975687377288511081708374250956420355422926524837424388435159017826211237133502838611989483233283207949758688745344737893802266467910944434467227347437860906501694339825013607829159756528762259238269735257765042692980926463634461344979595470536343860465640522993244999602004931268935582232514585618932358640987495783217377003706558664787352843187215496428571879207214927070222352307407542814049450977805661018215777002028707559941641851009541308964224539596056074156725974418772212313739454036138266407262896256776286838285028551814004715022958178535397077096132145676307831136176261413452563913413132221567996958105183149329703578071603517912795374096848371300820423952751175535188014247481446234842694682235124430968529488662140078273967367084563223538438069304585589363334356137781305371223568502578678801216357857311859883380656665956421360940718494326564000180313039185304093557290198805150535914735684834391332798998192902028926408814461191494756835370890128832220874658195353734643474558642513757722204139313901966049122597892233347867529395389108675284305149570802216480316668934058519724371889276344944656649700033427144292939724456453696841693466863156415606722850739676255086306350169744613395676446935242193401408009657546682668604103745277234358260295704290498754050378347951955501183694637704835908309452369703655907234255926116155122790212239156392670665388239534332680293533974925068902606515849314713177055738392551456919297701216549504014416380445020426836335162240637597445630557500617999381434483230747068981822721281553475654455203794314443490244180492063904235871270925900556057185723222554949613806841008944579015976043578931804641833741885429806741437329749200443662603396885811657362313260460897971158141778809451115623059157298012551607258438055737346346746925861332934900281252703467444061156716190896787191593714885922596063765395650202243300102402959954261016944866155467467490682085728693247896499007765137618594693764605500725615871248394993793544749987080419786853816487887021231960526709123181823792639133244878532517601130367309390323581245703606879435417794551524523916318402472761402561450899057622294703998476130533942848331016072439620780223949682523583033924395822518870602685123617133426473322206702936969172863727609560004974166242387032095784889675736798657090344624688776453156045098166345643683592905677746529629239713013600594448666277378754130909026793368924955523804956591501440309943002609527050644517338321850198307247913478616791251648199939973042201204446130745863913781404697208251389895567724566041872139659923902181288793496501961061675624638113306890781238409534445046059817485387755825342803952228176609130444902627379795989992703329558880005059131803071819211716733155241878125834531976735996388801448857501228598877358613460702666118591009946924370182751336200453240414945341687797652395225420357150377874834996012692957249457817595998172496027945960822246976749279433442928963376909594755452736792945747378030709968916532616305939612929740085543081818114815992649982567259390799269810973417968884753112098416669752625329116567164348586819476328037167991635840464514327685363005788307967616143288763292539817603347627835289566937936554211381016262232438421908766223582264330200516248604069602151155120925762945540180450522885752301254258456433717023314368662511862652834162493083765289412144814657774503117987859550475682124104815340551891947042589647388393677089856209803377990290325730021830557876012326876041890706968981210555763872365980337586819269726625349376579765760071923468927963367907571356696261979722587248023161816660175987451396443341717366663576750873857931639094168758779032743112323416178111497820838267702174288024686262221090835789904495657230398169742448091935829594584065707426865308605631092014877429767272746545883651771737023007879130400383142208496293972526766249023954323798558650201472564461084727560536996090633340190417361423322500247664234291529210494662852222360400085411158261195661892546400680352354349986524958885327099936859999356261362130714090954889584289044061299305271678474628979125715360674340296638352114191899912863870662726896082782130540582026908590408519009937125384628820077469488789316338784400559676389913407116596360564767742401060337082731987118079290572209010083576023392824400592049905498843774718190390175349060641155887339969075968951482988416530126497395509013797004910618195054541343124649328929310369649006520011420311404869669484147995335301917719658503870699814950360973302789732945707514284566831420899426834931732092645424423313724829868793699018225438445189826415855902892461763135428921793187640894206873023474794044891175988676462265798913945983084563030588003008026202381583574051886894121591403565905048409373378102335611530085840039933525050133165177335330919414672352208750109546172322497025539007222931609108368871662209138934757791953468842546635844415563641735596609622637883003623906367781263489206388333403967479070764255829603513500304972190154957930497539090905315606473569803962672604757265982773531112700454060006186845441905065688721667499625610433891123493244424844360277498768554566741627353763390801269844347695333408761475499361614612777589580689472878992671635175293442612749801191927257940340386766368399679486248917326655065210809812378463733400709450644821340613460059530980596595186138923203795859707525591005363344993635532325574723360482334841898421873475271365532320309846613946775091173013032480013431824624140653554649875574113703533725702185791574389811879292306251228950413968325330090136242720708951545737524967258310604872010544078303307958100153373002569561672203284863763838795133518061041567019237522741421305764540299672755255945144523834379178399181207648335518545700470308949788756514618792332118322546678600564763860059177397729242613317377929550264853401917778219374639275487361087064793474449977401599431318376626876593660780534762289053267358510869682568820029462047816691609376646314241479951331920379416602307359635953972011026150930302288139874392407398721323496465221910663484370440425362066656953578062193071728964404583290390621402820056668136919791290686646875341647665524882451426662018508642297325494317703674782929334950648378735500197539321805725091010157369428338709903083938865115913061005373087104864795206282635101160798557406442185894612141042023797645297003377638502521993064800459673627843729739414582483579093793720288817121960530385826533287098410073488077918331299801818744434160203665850485365044178181591755811931600203556413338588992048107888586882233585977115091657444783994775355240201148112062244419511670679605583853456264913959650982289035166830772136275507184737102837013371755344859561047349697578485174656681740398894722513541475881487599101669850490877769119882372935444129446751655687441589475759002947922609339507549567662166309935717749652955241579207668192288197221132968266187245321307393454768554042710800730319378325518089639210219906549742696344768878693383015355988419019416300806969218354525255069379327251014142103909672898193102933461513110508197263063388362532255283748914830810660928279715716492185720066150444793884354878083721848199271452909282692458460188757502754444396527759294811670433800703684620593795413726647635881724368261090067612398683782039961159923089751087490402153041289728493196836461436690631554638701220719157091492591857276794076517499990161112342003869289435320523738898647600287924827866048290487265552208110377309926930514476776783774808328824571217309089639982618315453309717583024708497913744176408090122855471853393246977509995536586410131470505109491826772321660597754300518883974639313207757310879206141231851813552987184010931150885222617056240364545972314032440140177195675608162429624014888398251089730812702654824762824794097274859750292898752208313991894376852791332648509515827704413315895546951321424484325057201105445382747767231359782099592219365244492552114609322181692692358282993517399904015199373242330900255209794144359017398872658286329193969920717731060682490014059957417718223189856368038050839996154945850183243689461383275970566665246686957926696967087066139433575117868106351853844261761115502983728670216613847722707748059534494876609921252637279560247049755549138122789957492828616164778820833751278220399325889710910918248378295791621375011429789433565128391154734272377098383292058704672543236364872429803191141686914651929685230627985349084869435948752694053050267881282570137392047466277690339347601536915345203436294973065944930692354342928372732257083634596780896511531588445643676735885885984912589079224147774162877051426968666687981695963502851405818890703115797875063061511419480098019834703693235503891520235662892033592625236600252545202393296224695472516466617805357807810294229025569268740202297435859003383990418220325191915143724678499195830871578737523996186116408847050093408544764901460301947363278678851248306747752823583514176065592216453732312809202617201350111050797077138099492946329767118259329131555084677443908995432963635985480016819050954543855451874356628908626969787286539631091008279028043606736730652140778183209046586967583089675615266849788530256205171003728911045001652055998377634181513583137250779653443124112756885133767166238833870893839212153881255408928855646762074517604804004783909382704175588253585067621266294907020957488862348063883768264547224005054041775709470940484872604867927717651925116663685874014396603342115141605132223494725435664099497477342798149775328575073458619134215623642823013418660481497294367271670016994243065341941833058545490876855834336191401422383553448771961598121972759821336175343013818244936771069269176477125721609207126797286632912525034826999482179592534707986756302896590245892207360903181413480342839057417930365857223693489029656814565352328348069131820108598820216166446023257767556226900463286508882091096005546718505447144205608921239375715399466122846456749156685690330305654848901217878836916396963894030312585087603474443307282525150275431511858306455386891580695717394381731235942977189999533831310710704197977695877724375036282718672980006503668629955874812842579913581921483640880492021592655585253650478049533646440867327142047096595442827663949526272373270269194900606107608063960360735771238995780380754106011623601278863904605554347494480654901380943124128033398376143666335266460270583073098333994816484489723676789321958496285477955722006288162014578555206437491887352330048228546047628674592115659553789622490098506327898396988504161926311546178132989871641130982344737705930276110673544206575126790836062928214427576488264813081447073393834531252722250899416699095626927907345788647517893032608644159607154165063664918485081768909153519252899615217481893033490543158327835530178164396457670835707251475219799461178850279816429530697057136939679002343797589815585547048375809002004934673940108294743489109649554335971858598414165884955420498717639815695272490197117293744970567664825680370777069833599006052290353932460273715612946969381915189097955660413769517895516361199686495410899253618242033945136259307961664761084509106211330438186919337087015379461257094589688631368331852070651474957646373969954846624713031860466112881465145191500935217381148429198521563329819853463042899420240180584708508482028336837298165903529921752915834826393924928714805485345523976350270170064756420382797632195469638866617214799278273992050437337737954251946416296557947373164949127644898026311550195791172524395374830415787866571266551530532844537011263069892651388010979911539605835168605179781697387873131301019228493305288807031817265164301124025194877016480041082545277243754327656314220547713505633529704941937948371983526078046438818513431481767084417142465154823206777305455804802414259085927574277545751227228730142975914860319250498026651677880292333736290142554370187664971265069818505632839288533641194266095535727534646503857714079537030160450163774368207918891481215722299092702425723500758107544727529991953613724129893648438458859140808200230184858372204746376252890382252054625764012720508058314646293557144559783507419165845744946920975785430368900095049038156572148115527371852052961262347232553609902167776897908054878926579637456846598136848170778321605716656057234436693211108361401170858718812814568691196062838060418955678637999486800988735573249556108008515732391241293937450708786633895449459180102797571822894713538220615110748826457367264957089686377871552702577764001458615148758411625450109943530964493959871562018075417301903863478328762105350071635943694542864329162497001622860074014620984174395430448220417750513688775426948517695880989490968638296467818398015521638771009904405829078508334031286486401444780471919615961545763543697380717051845051352728459096920490870062015094151266678697326817425243586634069352929916011526476766836092429626084814644474179384515848573714849430806342533529744267426857485455117102234908425326922932689887307248263925889579516834743175856423939639690213695575158027351624334536441780333303901268653447685215053790267902143130625229501347319214287584829861592554634261080655053877078773095474852141808090695955423578110963210567739423603310528268254039388032057583310442705474347291901270019475910265962919290150992291208389917397041349706378751062147005333238173225313084133583550972697297267089409200524754293866554848006657024751585273667648985603874808323144262706928691102475934626338163239822883251025215851855743585905912080710306353812496384091755662402187238265259167610638151829883202189216297970066311980480786411610339671577855380196151165620982280139597723514404107550653796553238338754147754223770748023813186962165018954444386797369386249094304502080082699406247648228452266437746044374709688799055675242141798109185335473860021501151498574211430053027821878193546849215255044862202396397349572804671648949243145325194421043523876267726352539203364310111890288812339335279784701505485554864974769203121415521350628104133969259588357360088958055144440227305556293446909160395739642907468558754838782744784676953303066301723903970587239358145244975415307840944637088629523543663488313733511484517815875787653384455432619063433561452177773495510664429353919405335786617895288011956709614510028922481697315270800567104006418028573511025595012552561966804811758324873957375434071979192205854777369079205184865974928252695790916041894674809571066499953106635761788906255351703617828206136426939989761979555870594532983526865198798283898345202065912770364528180657846997296340430879342921771153901378901439696274172586968036568866135468703385615425869355286439192271884335624975490356751574612320416393534228412921614191712408754162093700232479468646808516283528553261970809392860730496937194190908416816180111171973412529292329348554630036078275987225993180459467038687466895062740157720079440808088595159126094532798736389765043426503561043320385887489314132947807489011263753980770252969206489653304960556913005105368449799087185900817185687925187006013494267463964802326096274552089044396226125585768082728183705263298486398298088578845719490033718877408516711891971151954036330851003463675113505964273126332012240440379179670115526885980616758864362189390166521904297645691310580637620245403999893926759363448504774298694889815343950118299947255547442001678462228894150540710712071707645114959914209663179799047626294677167972955069367055390761579541468211748972409612250990443410485678194592956259083952332928451742173696318687725759862663561196909428311437353980647846491048947057881597437353173385741245132807631038642964002103786264200173475728612471916138613590074500497626687742301337554181681213471693428302682374485035259036812530576020416404143376158007922821364953412369450313707605857826939822617195121068932019121814287371254039449751873229412688938844920554583246752102554276878441069283851346468209247439440162811054252793868703510936259995324059761636440647764025684831843880823206236734282228814101103440645950945846913725557588288282506075994501043589567639717452281816324601763384279621947292129812235973057857138262792347095605673316639014487486392240491287375455162329138665645448782524057706905572561166144903697429089328183173097237263093126149191124784962460794779110361120311756763268693304918981342332065602434132932107192900055956723261004053626936673446309165371037683368284809837716418444774420917352535868869374227182088040087869044186097091036975586150306430362939724341312257730251105837988481215352912822364798984438229982328082099104753798171001374282674158126952097819951218574292516433544961349093731109335672915454555759358887340734059123410768819908791079311838669024813007015272122389159224000065684720238655129612532359105356375128488450545949883842319087418305199184153387203564483002249028107626653591742854711150736786166528073894006022166622953644026779556644710478512869692063359009125405268895026753807491163824715618686975451732277370825609273400228067596339181471382606606046014513238903999096226639112434391340754539047050161111702010903826971978335006586048874676753445545253820451508607998528899243536502294433048590155878699276693267429019749395247806179436088363852760690639993777227668038652691161362507729141110360741094118341565737501877881885877687018744906061264552272422868282063896536633696942097199827466427260964922592307417800352021518172151358972439805899621487532474739920755800925134712106798712839377828960861445401254038691367561214990809725353579340703918358473331678268690894715209689324515002784874279515177575861300985451321589344943641012449813819743019988649353562896077363258918483174239849904866472033588413482395413666131515141932461397050115967468564210322919552630048478516763499470671476027329207720176447873405846314886867830800440611207323407231021461577961400684892500158817856425010682123332612868893713629338952232812045726546359603983533832219882077020480516868089662187875743083637906032084967171517987473796553104814032672442941331860341193451648261035775156288277848827793204346168153915276661227588483016722128405519808763377448584202749346638292754193649872843120461497319008216840599852395213216966266990425333330810191818332499415056268138171109452923968285950306216697797524026452741402577517052923758286648874560963305887747144060645126364625149697537434971548361359473134002166986404840513527364242136520714356598710944138843248007635621565780588852165600931928527033092649958303162571736366577253444116407094796369100365982783158777716778088706795651527594226628395387019472315863012455835012179629060599459424193276854629346807339186115589341807754779398540571993390057238404288015574884617695905109658833465165135401342516960181415328063216056381196042902766477823423590277094169897600646835637787592123702924350190263960264573079971986295850683898213411478056340403612253107070306647707633892325410008966002980018899243052830810301172027253818580923926861672740268254342768205036731387497968805266758919447588199611710773938898297882748576333816453501284866741218714658493552305435907713104864320550726515613811662448650316040209750138941179238636051131360509860153655226560107084940093151343566747897875278549328793223258238357437216735852791043433781859604046570576298732657768612751980119358657758255085366776330470327792788026778278351938244867534529054010407321948942969374830411553644638808286683946342226601616182858316753400952607923376942994115529577176548760873341088905929715971265546427827032612212454218097254921870041507972216766320453097066099362104041060095998333899928226428115991468034479527211319671569651535065706415935970202901256790183610151834015436512643269694269671915527690242396121908889002495059540092958728117186262507659766376027361875034635739895794121418634290746524977511703014133039263096894646304578353640429923312120734504354271605877279103946151286673657640859544885633049237418381834027308536178812102735752218786493140066181660905108778575131718527774715803512812998679597412445782942261969795925167042150987480860881783797872887043555805672078852918495321587641097552600056842821417210390986025733882359296118965846669632503650921674605321441334054735947486709805538074184307994748598284442732224817827840197511803112594208747934830236939794710086421643741757254530973558506508927858156043450862756661281656289458023965196637257827456888185713383062043238025184596187267008774168183627391095605641019619513525837998176622811873379874518270375023851136608458097619054059256040495081394927466278018905828834224407761668987526750670084187962239669021063691475922763510599644632892523410141153013626058462935401426483315679095094792090938281278732719908275874343471179078805705424900476127590596236433938791661808234637477600924953555700858396902411606865648136108176170665627106589081113797248142534351796847655149661867616701567767544292420581841964966394859604367498728809692823581705415672446411282944197012668933734927427898079359010390159070624219835507043851037344530742268112307465180278778864272608723716171042390909657886320546091273807016097726490196215838360631562118774755278117440352169190440670648947392173735923715527931965099182457110892789398371891000575137656098834207065204431583655171023068071010051450450909015398050343521364236383988695864084070535358518743406474243764518630124338222717209622469546492522557943730827083049119653378919806604124039190607190932713247013905914231717786380530569950485221094306811486045966306089155047615136566307067637145898213166627369527023628356290467980217771170059318548777608477725319677981416149334204920923831639186475389180191459356765478377457038665906305651360275532089955241737910201844921794203002717719237138116324202799847098127893862969563478161244154861973760309543059615279345472639573361028568314585756343664472768581478668021529851481413270502810806574592818339779386663066415919451672816409089604223855953926289834632229258937016863998803532112747171607396481126562309591211853228486212073521853366023997818324748142782821830160912706154893555513067343806180262922391713832388739621482301039156669298790202818931094159931179844745646428898717504058295090718522035818972086754878084137071220612257869553977916435397488203201189095059401276660065676467962648380607877540115734060085912760625664180016805422737165852798001466127120139723273228913666462231574024561343158942712289645189697376063625386766857270036127055612944618021129421516579330337383169667273192277306291587531268927601315126557300297869255826952874546933983123526810308479343343751099287716439122600237217046764995211943399195187868402913026170064110969945837802084932833319238201798561285889084270626135963062519611891419357652829435882498219440848063151863701288186972607105788923591620871774164778283243397003441309369688855151777201944149366296437863655478993895874490092085805048276261724397299190489414336294419849933150700002377033017879976421162831143012235869600949235225959946030061339939776325078094822938836465242192600715301149814336627553340669614307788740580920460339518214207133086919822098584335515475344180143982480084846993125044914085878880995995613756285482420815117046277746741149190824537132146298901427390923638113503232439788355058451548577775393141580619596004442152301419257914301398085671950618837164078163694858742320546864535910741311217812305494155535905044873917460905495809759582402227185373865823108936906614269441617646064114458552182558135409716933599774887118315246280590535964781013157361384080781916952395640511460275010530688912227846771598551939897181226098845530375315616461400730801323700202345469928261392958009455617362637409119355940759022741029541888017657031427923126949229638122871098280915973071549297722865111899280189019928781298124554432243089098868171708049159241055123930940136436990133497806566944690587321711874874424746766773584925496128941232750888684812753316348850786566105127267561880845887701301283208968369515657306841294979370624678941642142405092318346231502576476761261311863079893848796274043255517583758508140274920771791752739399465946186371971169883888249284741280127121536959215500040029456397112111660946338130312374829860099263327292496062179039921528617936206890230607386512623794066776013074970941576015316907305701699427844252510675853980451361704132356241829708191736468684887723974549161174762194663184782639389788686543273637306134765930427987347905171622771183812807752087116484964016326689968726484104690629656558102570229692648656152043323060183861320600800686614276575976039316178121346931682528842764377330769516141055543956984504530251515917235040468954724888954018501310918914750422004768357781256228910813549580194025413456379666697125213751161297545493007395317613906912377949551503611600410201204446162419107736391880449107944018136991715493154379220946063844593648573958053581082695692226154959469222114269633578024602293638389027919332306591949007473359649518681737410368690902478650806638458865517924577249227922332991390517572504693324864857846039591424012798812347016165085967997932241792578428686120035418784905267554114530796306640424115537153457140708921772969776649918583857092765643874691572259451556808161770720682138759033965389753489776070317356741679346870598324732277659364826007816581931197132572291377360209778560664096135260799404108618859045143621575778374345583119415256502325381983965515886583873020007357680640039414154189558918387658384027607954482680128478083178595213543881996976407954415974810504228896296327732761873492955008203289679061987339401401310320718473115494637854245080538157819188430800943719357925806000889439618826860687538218045227902273821126434671667913300441673919958445432671710487837822208408277980417838863868062130355479333318439638057815227954422483504563673813570212132588959185583687112558288960348195156729910223833143274738043962553136147856491113004637369360332246131616870431739483131187996630962441540300943049927470463270944088518233318783383220671128804137642626643524410036922771336402129925487008066497363318817283665337753535818804395018508812607138130339462220048152249548154218004490098020212447719562888198824109215294906656105876687114249780944301672808379827167156922386984204605418492898485451917236247665315844084802205315778919706450536326716275727341100981634226097338551599664695454679392204169710221542944063305460071208768981007143220551661743960740278370761453500687775160886589942737121493614016530956535449905581615156576908858687423979275612838466962494360648424413360169415728960199878514795927462092081297569865680280971272465384121039935687281976137596733015221711007930459623729152059073729158178896241635997152432951452345530904435630059331295252242910294067642753804757357185546637032886450724336157870274378002678989317222903346562808652727175117413550409047854118610407707954704721877707929597575926842230399010064969475893499572377420061732160251642406043191328214985476633578194301079740054055625100611856329647246721202339370759631022516357149197770806822633172059929459802000588093073639134233903101013881640452405741189659951499778895333012154005267038064959384990751558240855692752911700224859051277124330617799202933567388807902654861271933759901306269249417236361129530567190208049612869746760269244606428241895539509141071109788092682779896461591037481131123606847523536425499526682006213906253531901716810887478754644952069799089913527265528443912450995117816880695019108820060442914260468528773891667673893866502350508028429615789728942389196501188637740803896835611598017374248519073058074480471773555499213931426203050559614583834576596980787088458150322830842213226245874175946360570988109091663449717954745793605748040445676096990540169434190781754157081492193042073572072329463822808344009845155154641436022403123795537812180848783380084312686158611794710112791686940725536903847169874841498606269049519407240987604587625219486945640114475342897202253990147373110620783953850299036424020954832851525333225002202499170341289541225521832863896767518338128188055722409930537527084695871995174027197143873526807745671729404654628358552242522092015547091977157108805245708684730900814296708853558719823607624077097191027292666098138150642067593903242700746892709327890522626941825504035367142157468559778688952120935237758520609261192517321355386942497264888581375481057694579830065986280067842730432942331955175495330332587263856556266283388533666205610542703218374422766544725491659355775641115792383883944367451240241120658257557493163853439198345283258385458644658744473523410934349147233826112468303307848256654111632626242382358735877471288702818607859833524728510635320823037567069376962872616793374873339580188826949207586454417726452926881069267456301408361328701701086174119281717435037572345703269825716380051741385601552111081040747783663372688126707900685122607286259020938090447224170796672258377348185019014532049329977775956127811804189240616468944526591032809026174788883775721871056701745755781531935726605890002359027359494225994775488770421197055466741077340976333001582176172592702940474815144826417476416605755170214921530664909487420300286087626852252331689044237610508642512211752707947486163493823963848390216153969014382514971250311931645448770629191574996878791697688507860616924666238840944488562744237271283163895612854744953389433156556731784712268794761236591205364379504257532053069931001180326563495335087481496052601168366328727149299157712531558542890668351216137367836197618532902654847421136590842842107521860055389031121319095068712294345059097229737206307230571293907381472829064714049012291897664844415863092127564041447356034124293561197727510645612833049727575132042757936599567201164051162652775518285514312353831505039612965442827061238503584864955531804056772325543893349130036395105839347660476103284418313518180391847991363334181753334221139338155265430358831828983282451565027045110198809794787137802805997223997025202603558386426951042471437862735182401836321334899490252612714927799694773622113326645380868025341192599266259612524032192789014602301500723521565056858494917914293237319632002918042128370537435852592248499296112133487542175323943764952097860731705804622016027825627863929587621908692723416962849211095456392439691974610008527046270498590702884770347189867496477415511082684154097932492505574108005952798252045926743607997243757202331857780123150233318387384098488578661774873290168753152225345878221860057623878534507769779580330293871296823917794120884233619717344422337326242295034412018284112176053780338241289490741186268347869150630696817008257548983775401889923025123317237856363715590364928667531560984350219418393707230898309955478062749660218602831881349865446562969329615712123917053343658860950950216186303374471755723352716177194047280354654095753793542370819804866930583906533933675559058309776365993263501495813307285906834225909536375381958426874364182881344712407736837409766904461651868790939817260269373994049958834612693551213200716915258475497572391453499582432720971555517808799083261560475220743459180521653726968970318897737511860123666649519974244120402014373398827283590566029028930034513363531272027564494472031880485542799324466384158522241024379154549865803497256956774560497990544338375566162796834287086120804824941908537946001665932459174682394491869182133363637823042745373317047409399316820071713541003607348954407471879323460437683916746136502241081311195198069087348570254916974785176138765045481732323081894191980220719102770288793116564143737438517406812821018161450369496049970735035713568456858437274139905128286365625064535928292971594927054432396586129907231213907411259862661112220497591585974652174755092329398432131491142595758731587890115785603376959673578328615765302356284754630353735139284303190545718223184159990963808598349370059748557964928200509041828166866686373737264018020221268877420187882627141342869133993611735031749105553403551999085186369100808309866955337558492946386914065378991082163486680576276122875081254029790104723298133210875059417911915854521282176297468138011205857257325007399546091492428185756577133047841930595155968632471739123694816267992793229420560714580609202338077321166914620092930486047461026609779827606927896865335180976251317910215488115992876225678798620055858271111552563905759036035209920116681294973051960312561198068427796094972708802465567683776554106889406360989547131555393508147918275940964509087744183908354925318898527502116925027969122622617174718124638091721130981075716159645247188084287550166378850391322987011771993510361458872026708407229769889147439657912005626738429833018652707901135444691634732671075102838279042471976966710357616121266122046401109464589625937081125425375007316691045075658505220694391174178418925519832081127906311731321991330571744741579479732487275235019516335658132347371957194364226580001151099748831502924560453701269930166646434875970393156781521617321959059840750893318593134198588999888254740850464029838159330323293943892841054298833339251165616908268630621719113357416553677104805660057612953204397977336944714047030805430612109626815747556570851495628352270120411071102345986092524939183759066014957454787090579375622369766735233400422828044068137535362127383792599219505963323503018555442917960383738003316194670747995243741778169423028682905001910470306970563022586931682707516028372468531749654157942707489553311059935726097861631737167872292535519180065875164787828490647662590394852804744768913670678632962602856398501981585859924919063381234244567908552637016353641537206666375560086453009822435154412984086695308714294003366922491181401338167485997974027594995964084861841133344003137942023569398222060097952752041849013847455624102193676429769622494666081099405573619774214770660346911288147733566738134940154952818853464194096427932033267610875548610603584466063060931903341449564070758738222567237138355538894469775530724229356378766407649140206262701812658250289004656198955447976031453751509165347695578371011785094853990626693832783847627923588860809925159861859010404308503215370025800912293520424004116247988093990440734669093210129175166636134019073835684842821741120703013476774793945708936705843196668913265242938022869276061429934939154158798971803221034963470575677831734710744816485394565527070725340858737158593820429301001164543375698156783893129244320286524144614827439146625673675553394277446703047424001176224074961138140862166744727573439197106538225517809937307225698761380717997602881190263092934998040433281086766002789068106749290718661433439213753090606517282647973250404996124356958910933980827874605881150371489159181444238531546019087067719500476827260218603099552192787195803655383472549636118027131908971587137493391373632922869295147668823950942758647582154527832347429117852588764541091855770297427313836652680992334183320924196891418693498486505123585639331596542754770396951881062096776436516076906548861777351478074988989517184550767686634383321997197629351438239944412837942028224075904119560238268084108340894339866646776211260825556268393820482621456177721997202487251441056376353924695603118412886798140930427549238005664314222513865736417202147744921605158557393993249951862467111575113218294218614376619710799777623572753117316197258072933062087491713977049927138967783520724851386365872835114015778521475370379988311362429944861766515664735105574105248263978128082130603158377100769759291397036904545891319766309243398096014436208425772376380416673561971049621737621734480165730751198029162576808240438912090765360131636694784945137020456136760161117014148419060518135045215546435443320641157614886449018999048561603182197157819976231954311920102161722454549190956071114938598433626262036649575224102188273333814559399729984529110120931696359937114551501692122846416039907140704938875827268043124827408423460366922772942388672595983718596949755532960728107819094675809125057786603080854994775652173938501013902411043019813464771299259375719901018887621879430821271309336028189115669955715892407543327963322586580910446448261362455596109198431036186702461937286099375010824821113155900423671297613504072364042215083539784907454309961590929756793605603963308662978274036954310596415008444462627381257849762328025696472350862694032655836179770490324749075530664313405526338240829549484947206919645212067135588298797749165664273844643744714561141579373530421280439107045861423423581065448748974905292870166947794790442322276545933976523136294632313328510629301291243979633462708105718615542293335582598803964229868869082807202486986943856015209617470478107008898657060252921304555105780028975058776998307461914627525398473413475626927629251345639099668187967704137360005377136695609179769580609579527831549314435851409984791920644394380639067240917106712571479018645598773646440960056498346544785202774341919118847199706390681794777712511892224733565380134660845159161060328780237425792364508211500925304627908433573656404338033866723975006426026917544633538486300896032848849584041830569170203160530398398839803048237014305271440671488264411033956138016627009327109793040639303606951636827541619426734466525267561178236411700582113783994232802584199455587325534332317240641665670284289381926731337131482912897861482415030341629423736963526580375990501235209517197341571752361835769211623378229550501526734326532109187319502274981935958651760707802324087671764318217020791286072865162636391446455126978350161143694818277871025041623301235762711007382957617946273437777763942100128700104445635505464119146671255558988206607942143716706639652147424811631965177358815298032053662119299964039218078477228485701366249195058326123536472540540791729312980274389929689281230832715033910184665715300577414678233686282393475824411004428538212026151052088602301828670765337908038055869035253963159618137580414815048878971458811023354625304131816396044084685036144753482201722353804371186807277896737877210824334918083727977063139660980996224935492975706811001131596254129184798341837931383604053843770183860218895170693754545392767230195255579738820421280058134485593458206711013296462257877249333414309292496634956084019285831897975785912016630547466518763631402709505603803546097447108803859529750264306165991354739942906244668830012175157428181082950471079421553452677490259844701595232689970532115966033101197408792862598474124844321058334154188207717547069511091860234931206761789806724059947765076690893043927354978470054987233665620178076494264262768299452597044420504296934588064065700321770504403674408099168027222921069532430820103456281009980232532194594903429907178222953888759612147574303046642106161399348778119897798465989739469018612564918283011657047507722477173115568795702554863687747023575063398955712435252878914880393369887279313682575225045122318114587976873053391590373464572254042347892310910410600930880291235678920636696784484044134159221508710441771333487431698073624259863658278091054521696528540154062159907854001412689936606633741573318758672843722192834998174230624127085777056721462878293248558448194684061549149956791755183108838235174430078228222867339058594423728912573478673487338606317993122009857838201644342035997972114282124577304440968844244392873134854810078797703268096445330940356267290587246820346435777538298210364248561384332170973941510369148105641927332010574410646144527288720394344894768857731504335139271461177412054270969228505908911841446555415329746561524132782138711828695254560223293969315345603342017771428608232537061315742947915441952076624017606465301510484292605099188210250947226601093225686488816996152114558307869041229582781001829990554983165914804166472915060720768104322442143615974779044664210966875351195589141321961347854746916482111365296605709573047621308498364270687236701219800069781917716896544242992652785978515826259493876993491524507283577935492333310057069413735928813121492170019691179369297518997322327004776080720481060814615817396623597322130767642826969243420452205043462058422777883258133635094344848713536512550643389042479912358326043737148402860755411046165681529530851220431740664295046714711156313872566192165970814802986339080621164843796884204945347765579058170975536039884300427844199682392398857642677608585082729958649287915324592781901165450183718960593722047854004147114139195162078303336731920342134982219759236748730420957579121119502433068883581900327134167444740666045358627743045571146815080315098979569695309733640898583698501464125249986595099167428016649645197205306045686025666010692931882260251801127304510929878834034797302599767518502421592002611946819048397965764806680707107764205773653385913754156737902253385336180738436889994002870965042023707768320950125271463100533997787264616875579742965497506959267554062399842405141105989390208352844162464806456938348169874147607136487421722412573207440864410668397743175886912627861884657836530896238454907404480047463927333779863223829435212730129752973634615569672228018300926945685130909676316553833375421181899537432785310324741339902800067957724336036767438941377782626967419578516146612030866882526549614900366977661355524618613730947658668718811610630602594758495538124479707258198543338304105650742757333182087853042736724522743183484633968208810115865076986268947103179972693241189178747101398613546152794568707262526536696075378224177580131966861076194838905439348181920740265508396326352525731211636062115071273378606031412819631557053758400280908011934884943108619104225464848942425070384713894292136000086005868996776928271569520020298322329658246000973192325643296139400558259374814220410310107117045072701065770590839968344406980682600954530325255342719914402434039335046746017943442705604539827415779680878761021581028783978608970010426551991893395560172660812492446126136265687587555013308857057318917191556584329634823028750550384537728231609089674923994546191412076856559982372984267067102739857441562746852564211326990612180716404193463680812024009400168695087166298374803541763888301786316587801406389674194700805206611641269255152125075821353950983558810435437866610349299168412348594129758668085091946305110118968461229752853507667176787043681895210356924605295737309441183308974746024297830042796469004965582815963717040437679669343009179451801711828690848372087173776505020836674609458282809090891217210233714063580197216115484437122857205337982512092749219088531366136933586159752732473084243140997715610111220129670087007975817204152100006962163754179523808577439290856430031376378127586628704329960503509142153252885619840292422338528073150110069409478771535995638420897506714073303852694467312784023120300151503084269742525183664206545914154580301478728085910085467464929562335594580591013007762875766460209306994363795410472921346873090546246991999898492475581161875516997684719079476641168440616503790662583466835554428788873289894759351901609452854610301042804017334251560008078354689014620252985736098331613337716825590356125153196983824832466348951541353186923400052500429928075502453605690913397326451509154753576102538781753023344437058007317341482313603661988014971111195052562323910196952190907324599706452451553998844538728939928191510495860836040937365062138303464517355030114469617845659384275513123565577831248087876072170971768011534920654969837628822310387536771938352018876336130364247768570919198660507660146076463695156537322699959033774912598741484315823844123262199981609143043651524427822795954083176712865688396855737164989357789648453441886603677606877612607440742600522293214345189447833367784274606579673788930455140166740915051455615867330515270173690889375330158845020005733727873334896115832166846701439750959447519752267965851141851025354536652575630299020411490508562123873578200990521251042243402612955259364439500001111012041873070370625287450990423448523303280071064768657954098088194561476942795103221856616883341731292295620980568475317720243200118632758693343301506205809678162043123474736247095768795238604875793197393583561207122051686458365673064920714254333081699688428613249884321098677594987670414147367753541199869559790325778430236147654468247030648542569510485275637431976715371511531574685279910462236338675581944395245876104693192145084840354878523575577654931898980816658292608734118660245117281060785514708280461925733006562003565961017370731034864526615949506896552200418988025324821185559731807369166936565359932501633807772185138751010322740933943467533326834705320996275067430416811790732052262039391710023226000906769514625292987828279589800651050234117868710656360432217667894485291697977170400841797612745024815446820516865844224163578152714087722286176860023037833310700197907583788089760820229558274454035550872636355778437852333066191283941840040185076914494102790401294902743557955542881145179458549391577354106338263029217978997589240685165503011094455630361755800875020535117985012055115993880924005784100597266293809446007263590074343247350418752208884018826691282304357202688251373310867873041902530782128584006628764475871951706043606291650457797762560678209301921517626156975358356849665895687626487955639717756783159283040089199227644364124164666110018204997931150742077885106933608690470655330669529046578706865951792081829254040754091508233936631067705177807818929741909867136464335952667385309960825772815314406352100442469531177454590584108332349016815288499691161332265523831677479624972639670567599431775057984545323846205575097282292432341155702275464286633049900466004658113292348846369374492522837537849457734316602554723558648897986598712868084140750918042023506199119127684636348924803824732629518364375225446319435976572519733334614919083586697379683437799348227630763007537517082822369743435248100516156198245310799837989065640539200433297799141450259110668711134344656922191668805019767859879916744084680780306769243530464758691455422384225883370511461452640367214901796898208459236229460094563580725565313905115280136450018664194293854516752286380813385365571461883445783963682273421785918335441233010654313776840746913693865204840111378490630565849922598405389646905616983242927785975604469935973737109868265807092840486091508164739641982233087790604998556203141709989120630211930876180690080495678265036795493522900502616984875433904193364256191510873239025830332524869101371882958917375287020159202884104774975400821917841756450664025068407353948665885047131389201057107428314409876143107938600095654740683263250588637611380677682015343027661819796195273280664464658274049944609584417034965364611846424409116582209789234199834621783584336973020450812582387665327534713651216618111178894589932565342580698230768444552458722188218532597722230138142515154069278731915408996726403742992837786194871849895609040969508273360911025612259168770537367114705045474141512557305378883629246920107937710703676842249329980363044138719520458514337983327828496902328595146602578085696165557050516709855017320269869631327494869217422711130471237612955594317422169718192864639337875290815076602714275973272991990960743579752461165237684420087357811968191298740267858373389849507919427880383442777971323828866019606104099974194564512998186459982495358991617198165267554105849649993731810617573696021967881675117791107044865245771017462300386378533576938248236942187673291768364068126840880680414087691857386322683058670545578303829127011355666604877804158036171410082405095484089841353590096857534137646458890092490180809397005953670877236074346794361696189945457679295205385182067716279859794097505000432917892709077795579529001269439186777865144803976618314013876860432338797506773780714676919360997489797879727224018300334850052753737862409545002458838116722861140788477133420204675118858134457780912499883283237464995174105876982712866744370335573955200382019660762944944174684745885565664313217353884873588883334040034673526059438101054715494292565194652439318885438439998046104096621751548067734588942128036901151894134286158265526612475998111770902495445744354361180290851498755392420105189130616743251767014400066259799149188492900917651123701127614252400509353505567016917796833615196595787570966212849243509066179889755215301747983164252722794548692040855012861025922571728953850433099420771191520694624961847159138861623889122179834023439202392894736366262029783538644904229556743759941823521202293619848462068228677057142596082427119815564129500410525414697585570724224407508917075655329160102899569762364986168059760031424513541814638494588229470988027520071771408917287751926344466797439478731054824126461942257291046318157062184160622857333741080892515462369268458539619465341303974159293041479852959106118382133903341180703297844853107253786999163629924592155009043821604147871069330361196407877720309700472812842870105840887011568454934427853213846015557889252478739754117444162590696918784559816438246921181138478378561857891310047131976611799018861848805189164953062573057292567309870916084930351698110192747155813544227664559870744048753359056846625479521840803191382045300614274100962721915397150770620432421270193785345272846327038066321770366185330136477050885499638188640991113301045084598128428966572804453811656471144470564886942123273695719033775276452115059052431947853878363807016146192940366736354009028437421942550016616065299572948781828424067139956061640065422889151629036773343800972506605321168099116828660163568693451442319599031224213577407121792520706998967532945088101513025326271413497444568792600465381360002325660317044125797905628192769121295347097743272393200196757675308106607216375715247643204905966502177977559743856295684982320261489480692696809107657823551977342281107273036013400331594638865498620546886378433061786994250491493704980368262257451112175557735696170070900010844560440089749059447651533227034589540485018611750991902231805467277921822399970543083361763513573708759517111246779321514036730934224788123118832152059626990928098890959393614922438759548712839611299405143842987901193454809221779695020868437815654783498469412005100361547297037155846701386300236148126937556599417711181233061768785660390253532842211408953703425012234378376946505734824757791300940497917508157145832590554407863571543889162914541430135884644697593261905111882736830864750884740555148752802776738545221318337209269473477908100148526710224537663402857986197892503480324463396646545703547214847691367672424831211026310885897458401523262388024981963612649439993076397909331971036857664048737892851179638793129717419190764685401210888849000359234041303024720434127187991244651318515834933364423414777022617661972519118775209553981879545848282538522404854535239416807529632241298039441611561409728675540510456016389598443486708409747821944045936848007014460994274779659054702638724260845680259233989923675304768376886022184344110467526561617937963178100910192970794108830564683652882632685892268634534395116039337104727993334421162595848477189789973232379314598619028143184045144412058272659930340370510223141713092831128683554430418926276894479953306485063059406010142318027212314099094334779961182591601394760315685165370002004882112704789888821665734365851694137837956805414942402514325565420617391022027613612275556978018173189980592914505468959384304050665746490819105355691346903498144111652069585519910324218835497258878861588124215999083793793307041172255293639729918104487849059371120642332475851753214817886461688853781380879039475153048572531009958540268140318282766462862887423661280806622909250959062015973936670325007389145320291335557674698651589729317979109475407957681002304453634763294409750594399859065715313817038921455256508592445693093607739289480264955430642192399987925497904916750084760545525837558877325937138854877645379442514815981432478098615544643915013490824858244961330790321887169943549323599387604932836829570083148210297706010473710245505653394362174762293022994017343317272512274145258460504497500427864454007812353298101864584794539291946366288763981292858491081399372013055149067516240254410470501021929568358279243800254132994387252463216076402258399608245786632331126826572655385795754698052546566579062689292937275186874015711311948769094791891726317544928663529833249950629545604255226485106429653512727427995045662090424514202642024311181216080687852068983720643297359191107561932127286717264408836243346237914342401214734599450010639097627536982592029856137095248465859873486764549014674628618677344841332290761780602012205095511875080570986137867697061382672651390349219992772169686742094005375868181337080890420498701581449732050810038503773672853584512645063527106298212635041502884339094961075277574614140292140444795076308972095655667929474186838703558563155294738226658958924968347570940970373231702269909834610590030546578088793000626705105794286215175559388515586201390566507876061721279288258433854629211497073987584248834436846236899962646470502951859096602510852298503221538195405219955708684093133129686489379097258614735360733098943471642236648157782146558472618905680608440634898830359821347355905287447179194689224402590548221401148490719489295443109535483381724296658551489809077857761622583391184886728616451106525198466004706072075256082796246110371155725742931300892286151401603753093558198494117272642429358881096661497404413930324217449836444509778482417496608037176979468315344787373477841185945305325955637294083157919172584956421434574839197801786612130622730367041427065729388514567103487127846092390548032359364110981681106817702489120666807953667419114226274070629081402713649756484474111318731877842946137258987308998161159554899541280988298007133409401548901427259361387564114231671901221319814114283742622469977282001176768294518270684584653218812947146919980937286377845991712656190468651754204845870483221212840602871618844542186586065937451353299581588682957047122885299613612487274443371362030828387831491276356757760419301537357961819043667362093414390914578497411434850617939560272649261263135358697792915603805962394874110845359160998833305315644779312230097832790336000644955889918404182895372580476324114514555118765962130720052984505901185490095638733027536219670545722717382958003038743761213695298253796925372701593752256234811283577106666409395940821368073548204679554765841501312895295792854891046921837958342319627618134542711251262945001979507097446608681478750457943033612708469304768720233402519155753747546225652137938729009866422123248800984885484853233301755221307775979337839246748330055980748962794005931929833916924323881378600062037206202347264011772228524089053411444369967145886719450152427407644227606508205735705682751108173303952627688680567779464687764528970858023528297713835639441980649056897708976135654553969091831870620385160969943767236160742497117926254378896799033768569086478089314457460922265498797002825579192017426583959216905709186356251408447985483101092281766039505010652061659411791663297246701177129133328804350140871322423668548895227905066456674004766948701700337507675672410272379219243506961928005054759565771321721971886583733819043848820154725209716572755918152326309031002022908183168628942961685875689652775297000768072195356611143090800179830879971420787018326945854700566133767076649239848757615131933520024363037439546096598712648825736318503753757361814251543692489997835357543118808327381735849379651485492014664944357687237935370689733622598479561942214281201504963042021756912438999497386465171917191079238981620832860284914580379056797982638598379851458910908518091858073167347136119107527916596018064345102717773673712403653799753288032338173558839775944415015133400128838307953399271930105195237445389607440902882552462421065348104022554853439298313554603246937087500628212811567162437389756043334110352345742687264885488259453994178319691393083194704086028237285431633519311412071718937990550799322017293801862081612240728647575078718878435913585116112929462820323328556533669926378315380453713901672128644804588429119442457144412382537488512222288185241291365686449253003400167299724754828495020531587578080233119220928550357337715351903407580029816285983988329928621879044664748408399341065667682595220262454113080388560916002929485816608658911880897691476247984230803218523179932220832551594490956939322025045911194981205502602951555835792329207017208201712234045149981552720167806801212976706422534853541605285260007429033816388897164427244498126208075113115914631059092564517212436980409561453335026392344615714840881832332791178712227670881039790387996085234013918033797992515967109701343518374416179167828799455552585917243214355310406904845693549579704625281107967110029792319910404476135139418029841034861524828012820954237170866788360919812120509683642837927419109207895867429205619243706939410582876589120187219438192853676314916212873142130739854187350713818607067592552375099930590641847778534504581913483756018630386110601734843037489741781469113839685704090870272131483540842094767347884674779892415835130521158060866558046660502321331589186056906689617695619453296066843343195428921358503764284711306925548428214133774721443883118751898558408996205153388638663510799415689088990654987223297443338474809977878501719633782368684432133061651718376671303799360610931746515571296189717162698909257902946643665885325943893532173570933961809879685454650229598471622765654816274699425809722263005789637270320687517414738515198910505836375941155804917988497410827836680733478613110539934634603212495433953640710398308131431767222023385183973360912584656549414866610150754147148505814054632098359541494681108489540145017823273344619548265276768818808093397040097128453005436150246767061294054454926784134932451130239166282117554754195110187918315664364687301044460159081056816339194898741131312201436662377114207215234078817703095155396736417627949776820249743735840789127732407711417722356400893084449852523899926222497845531342352910332837709293774888832108096319053776803881512964992481112201817305886547568797098911243487842327636312066074054848618249196067609018397643289170529943992393436204434935908144396654506729166519642407877588236237134369195652480340151352782290760644756244974421513999884351860849550403728766569102377537494678810787958117890358522012382139347820305609484005312369305271112132904143709105364777256973082627579614725282275262848599046913444693832505161860122396881587551621232478113634165919005914644544199481113671219065053793371501110787845966566925841715014128438090738227309663409397092487917628752066996394598911630077877574258229109281957489499584859084930464859749521120531659119707369556024295382373375382568451630623400705187733834179642548907373250017210844279739776151636482855583783882227429984812737295227699403781469000487954442687196748787274008984905284594620013352059202256296067158515436966582857173097331737387560882512830383508814183631524733661402246470505638187576227985712611827748080594915162572792160871915820661492499078090524524221257292712134249488533384597085065883801988088237080491181067473277105990050062598053950355129728985166897710960725810394468382854107525726297668064938852973670190479847718349334187496042170823660434333887822233130827752479656965494136205796118830388349045981761190734282769603409330040407902161696515364616377588916045481380130596646899597508083055196028871598659627107915956984760222811371655470166410534369428789638711061616457240181256523448216075293900423767376860266136915661065920843997230501319929072370880363510576000641516138589925385217176635397399593505356548220292149131578481198075542122256723823375119860286513597273513373521794939460475813143878436370701902724454970981051191087126261327950894927317813549890125679160135956199219205883626877927148802188348239262726052862432649819258818759202582923828560083217772270233983133964243350402954214284471575620767820626770984263404670852939262149497997191174257410538302563826238289061500873709219277529645843389345003154836216442016811874552236187873939334048480373238198132380244113248283472916755586141663453844742296370502689669059827045236062918072778581151666793283802949684542384288560805485817627778262299032560777268359176322751558743738769209323700444895429999611186868478170269452689172422259568588636694082100721854819168913299351572712318598973960772335720762408301359167560881701696585629103111137964238095769832412690501182597685242967647466324886732857593162290939258640638419232369276226906916176863613675840433317870525833011524416702008101356079938805566151748836838284532277102359023518338136591175336356850501510869792008833756439299303729194062950932750756437851054230189359763977205393366722838766864537650130182873180593850999569687463258268851797838717765701093906112518565737694362604923496208812596074086478181175744710634595560437868810744758963056579352050668947507338885623185613690129266663318999307409072738142263191404568486420392515677283823974749328991674000497801105272356862020049726862123760621311950885009583057073020359566437658394412439610598735488982318594113287556807662247739148249810613712065123603308930241364707551028497779410707646753366277144517316862646857878005292337790361336114664933896328793909676977588019454861482900868496483608679630299633525805525107945539660504632415705236795295727357075229488439988049729060142072888485919900864303723242827349036781298475574514500727882949267075721619211879187943649300668485003515535173060463147753780947551748615094653718220898928089462739091177091425714980703305763451877674866989894902005845339622744310254779024698782141678054220853488023920709280362401076903985041913350070437033871916246057812373959532704826269678330539415772596265210397128847085635842997633397381052802260486204099988035204019222937497384984954783382980617351436466642093652011165650798688042952462633094722226075412295145630020177694127268590266323381075334515741230002054075799574290356199571033507014425734164888535912327563137251953327753784079856456098079114231138654724098018362780644214947645284380365325953657649319540699005661576132343850048270066644629192589273246977397401248615038536234912956936444481101938967722843796990426740136462000384229044298926749702459018331410257314350056386902074706688362403999133164597982210181342546772721928435964262517308551340374677008071557125499167343943625698984902449723852281193351766045770461186218095374988952185314143905790138308687917447694718495869485094738545148647089247289744385018411317404020999401425566949828542546049329979430740567662330828679358035004568092318640311429247818174375184840621691020314610990120223507098173197804367750074285188576625448111439091229413306433855463730557733835320426747963233046804653440681667533862903843249448601684217792292848049703246597381158776120288549437584673511130454412079561914150232346405101179921278118817138090903345119595420385747782872711820997678758997438543405948372076035255012522104710861174717944739885192288485397256619057195876195687571696391201408987054557549738328767841329656918195687167460086553155392578728408501785651956237929303576854961682635958757816046177676905187371361461462443510342346266763220112591148091830051515557574317354854616876684935133621426719654404618866005670578746034641455252411780408396455460742844623119201531179053419008660334233789559502850285583685984961788972137482162233255961131758522644984689447263737451764378828703253030663459386504958366231199799570383140107290779700581402700272759885411251517835747067106733414832669919326653263217132852137010393705394236243087672690816480275335594465904024158918020190921104466595314734750389742418186748582765103992437526101723707137511519511941939635302934041384692146288202248490077569061666723743471338370361808546866749679911959452319635496338955977508527222258944136649900195364414212426205027475044450920889119222430991711196204629789283906496768515476759993929108215489194508495841584351434172684223775111239576176380740404800079920657624141546814076392000988104883654125098042593360491484094657879717184607698993171743271739716206791690975928054178345971478647703610411078047500868039180046116333989449889197233184503182547211243808683161432154554779976789828631311796332164768910683962326362880027374968343041787336666259376903637484400514237710343521523527287488223524456612122085942959135825401309289387964542649912025213928440931112920617053948191759833016243454631201054755368553969742190296913057907937180175227282146512701145662202917608089391235299516770089463234837921706142443355572576268491101352055519010777063041896037620545300656339964040545116018094351222626782019809297187431895566403837855627009372533176928591533480039757073527805901271814059756596222593166135600741846686390242837776902864434586337360682627258126124470623488144791454285300549338837750662599359576174534493955064573124415879399236336584350090038544826011001231532305924581186887061442598466590060165578460997866548608820011792461479470871025377376442374334351177293857804525433103033109306650887061360468318947495524009144722511915081018689572015552326559261997547722621638877239301344526318997578481138373045136109922223170962380325407970255707167844336572532418221099613089719138591208456936648150804061581508264942071111773299106716216570818900611057483187769669847650492848595397289303909793028108148166851090018132947383337639623638494087298591312374556059634076544483051364633651449970658392578161437728948215259228701753869308042361638330934882829305093668874411579690906572836471193983984680421342122147523502796638235648383919211455486874909548112462584772363318448864784078713854386584678365304250610927341320741798973469920217498019397298351017854582892977838960929812546233384242643379495121997840436815310639050639215043729415860355269384305819074133402163422789061335758581165578895705798329781506946305720497247899668923263774369272291124895059734203270472375425385467399312039621971909585336523468069225069142845180836068882942592793803578373989521622763935699615537479010007100605864089091629223672085669390197904644758374616297173771776889429398809206749233015741887424742617480746905963419915798213955776526333158474753353248769748129538164459242431208723719090950819139369888581215964930701211589693350111845559432221507254686608026396431015230140277593407751013210740699966411881275031348869491882799021426175516119666871843102566609833858179487744717714659228250355090949565410996236270686719966458987463836213330600647093170468615698772292015036809811304290594557333211319542290277874613196959982692517702212692572319067976384611278284382963692332421775863637555265385107061755173852163614501227796926480019710486649565178857561188089436669909773330826534993720039788752597264889980403426796558313582959248570067256626664899322384628140400455283979701357992392541077240860337451379098139154162917529087890356302409902318075683314652710458894723276718609818131281233804536506575751262145497518567271378509329540685410320210394166732369156571847832938932890710352395595613598997034024397733242380735910178424901624130191196889583383588729055268414098714644783842756484253772748478142212298231717133665734228312973173770175108945740426036120128768128633835105157338107867670521145525499759880865070320316502182339389375517652002876536340417153259722083241477358552241688962073582712710438457985688613748991450153549058082351231173849311781997720281037596646863620446710713770138050763792871347614971666609428589513349257487448844809698264194040259338167838785395250198154452720041384275340029940985263044839985703726168649939966385561447248793137625604037810619136819812193717983009221353774469449234734669346783262080796561343705199720598464930875150642759914029794535130233366439649701130848653470372744468345273398426447489866159793101736544687182681684456792249047476623903229855976377037996730252858230467566465689051323218062413228453608367339909831225277118613600461252749700588418454857623694436209855171086309968317840000448567045935960585540439309145721840276857209753089877597897232242981503074749625035084979754848893127446352345212071560846190641764297422557253794836291267861072135412906367058384410470171857913707956289950399112720330162182246641400007995746131733274230729296827642933914107872363381774405277140025423071044756595410212434746633662131335045367974991828781454411668419290323870899998167001628263228227239803912560647301368231868205255575654402755586481124526946228610832732646731515469155416958323423699825262166046425045970842797814334654982463999910948356243371439882494492203768345877571471857238567287104871888582760609575162690997459113961404112714441502071733467965551835504715546262005973466811917330241437682405117820955610525059841701565388908692883624682713265428136332106183675773363488872568878416128038686332724277274664413935417093398808668211119588816554228459013041620070944933743618657197244488651487858922233655787673463582140737974437004240995792775383679860206742154846021309353565410331850947395291849463704516464261519222073089038091322553568553537068247540940449908589197940094607696497058332974565247653487884033460554055300918786154367484474861544596290031263984710909555929569065392226949541802474595400501554581790898250311461810804198319553892868046388721555410025667455029934289400931524065929043483933430112216657361429219007819539009233263843676373950263170398209945456036618470061876066666344930369314851219197963150738238702958992531271089914445866602748379435586541882051912670094710435931461395598790209113507933802920960479599779180779025483035551056226302318145843049146240496436008088632280460844017216437625193782321975503994293287507097958716130664878783243468569690232111248586200689626187205812734286693911288425627497519842769353634336876632023874664117265598792326672155031154548777643883379891580706630688811035482458229715951119687707549611998911576617892957465587157947510922664314378094469955550852494663768101914186858910594052324834641315929537439036185461258495528023546924262062126481187099896160921114202249800007968965108956160280539606455538989661894349937361203871376166494976650415282633334935260930274527222531983662653580119618761506853441786471953466249059102411080710591909830258894494730648100136421184780923482286781372247601013757880695335045060105902578897396246101293105293380026722579450166384935054811979018417501007321363696751041780829541524740627175439225256061960112198031227119128537426481979931152228270719023857728349753268753403729274510337162685162577452161881455305242487351073381040701847195335648851323361917117075541496903850202124304170796488431226617160503573391768538806357021073764307901002925568090959189476585442827727541101120556291538212247798717827152207884637442690691550603749237489060299279971283395780921408890343599072738204086072059232855819248253206963110297013401083386659345644387156837561524737380488423339068552179422545959296694889088788863545770626859496155100257952542961489056754823399405961519771701458280077626021475352514397171431668714985277752736402213490859496046139845453917356759440526641384466076911926613876077697866039017581434845442357298361632791277548384690094499109635992308888221697296855040864998554285518271662364943093418535832378698551866287541409429741606834193565268612891781925066403376187587138420393164260267838486180652959998436871423062052931990155115675368274700622794457452134281557793153109580371332470686547535692544482481661875680987059797715369420322542771691290791041265181456369196512496925533972077585241355311595328449931975765973181153462665631890651957751608094071215642245011133445111370289426327797711944562279352504387746403209838403295188578740648857150306861106639943650925956958734338255494428168658911429188658320355759213651248464028241317062258654141927064764156947765535841356170421867156143717096067557893609147838994037359093261188577352261690528920984295226080089562696625871101486041286276141768366787514263300539455633109848605533126980113208416075864264692856073857587130143780205731166652386349129380436352071463052612932896393011261738221024778093816002715910656975336538297137117361006062489743337226858833986858173233998244573400422092420830365030134653390007725204014950697163399790937854360982476819598163234118800960617498157866279580286057793528573332607532289595278431306745956115147207684894567245636296549321448381776408114984227619699487970766898274316850839866182714941767633190566805234902446831905961482788723526361824778671460285204635319563162420130687179558043330065075300221855453689485786884330795667877893843633517837487339413993320711155351624712569079027035727526569954752535348752950921748927347026662195087074226923014997686809630544070742140415021167681654682959761308671696376015681703648996606629657541308363377543006816036307939259889909515747603033836086790059130760734310182556111813696211974453669151776992520902795170216759503872352243041873152242300413618852014361321473156114310847714206780378809211483680853187970153075481183843495089818853522291855785648035811165832809457756637918216291531819380245255401378983035471827536584547742715081208204747277123859083776807559992193681849231675371493141154494653676715098105696531810632826868659768218879203960145799051986104603451341961815912073660715370571254625779948393465656323176955135526730901803361169210488839793794419093831930361570058960135410122114833582225780248816734655165228639935754004015966491997486270580826298360637594870014494067182860902927866414200146850210028236271765154960936989614943684031733300099166276958511210900724867479305584146369340903161249673057932985151002972282187440971579877064687106293449156921420432473087052424329671765581983266129355939630353656126142660467347748882068709559186437237001013843305242641528697691226577451482345546175803913021961441481047061237724234888079793875718868525525636180563560543363251119315234993108413883874100206130995361259542432911042151407502662606281013699671871939690288279397751778839175392398707406581618364676994066560764182314277344316647477161181858212289092779507705815688059241071541722532612959825025300717858018251812991981269936799165426937040308285175017625900544899733734515700395450415473024038793217835464236715741256328004012141758477387757335653131752549282637973047601843336447310258936852306665110131126680674755377740782117606941038685094390529981207087229547465145266822501113997077624522416872638059450551287662132362972051623536100675313806612948913368989643033708060743531053182741221168224438583230607265597540227817715088352576571717166074847495368569792716552046543469588509613951197715682697977283373702578755822568341974746027769320366340591238084058951881303925656286036697050499863649038496605333868906822495195124906496569859786499500716793682327141005949450709651290162732229663859611932030457755485974980152165678005082293492512488249767114011920036206209726129059537061397217920622998093092586380308882089419565247513186865826201341607272879009780327515013733533979724076607427344421984201836410193672019114947852355766306492280912649185441004744161732960874050318020574879335371929659157846557378127068240921477588106908296972725497456433573624207132261320416365682366732573637821805885939738254044511031629072360270254228301400283383622068591910321673640378867740589806739426178325390886485037426460850931504308790587105273894942486203448287502020384398959768104156833384230089688722500402691750516209085486874938573842141507381707622590498080091963436414897711399406089594023876642856155072718876667408004066762302885944260348748068312914335404303155536622271663805240878834415064828112215409062378162920968827498570228164943583726830656839511241574986619872025743892489903625405814453531115906414720921060872863523334473206828647131892611606398547198947819860477013911629570929174060544561875145784019729431860397978375328390190552455463024089399617096599101823109981989247992411721965053748308118806252087843001222357077411456619054651144002411773069634030349518150950736213934937437074688375150565359907242674942692855739637686432925248852298954153479344341429648470986192822247040500023826435518091579872726845857275339533699584289361803987300318616286332179182761106784210015024295533846948322005268516640985239128476880912868463768812311920318377528770044722434970682943656038139421142330838813382799964420075752109170984316186163147576122053313352399926619555075629176894091884185937647607442359925677078210573908349616059489295713076583553587491271831263436686607643822819760248215906776785917965098868283751790845887600406381889671679365545230346744485715617151554329449165075898167259042884854465924668811502125413000983395885289385357065706436896268027152868841239958161274131235527951513827509777547212036670771223526984201053413495374909203854221790177435891575280448204724156124887430540727111959883644729819319978089247164197383973249899987780514341110705311966315717100657752674389722976756072428011665741819316381762642428755114274716126896642001777596204386778941730979337264234862239592672946600090141397149632159702830410661842576772011576396509037753948990842570994279597714834511265722135345469148206754546287230796800852313767848198532031097100178287543866312730299939990609024660336303591027038231919089592148761525672252297562839959162211838860633799648176212055480779707333789775985762360288415258821834457025943933064296115608541328923483943141309773619683408643372486269996445046165856993607428787225628205170475872275064968117521607455761932365134094359952623770640769491263098484421454733319440625968489776586041499155009287628742546773511766895417711047383165999202523503193856638024869589157813130241641233529016326380450623090672305845521824717401544537310504684035448603211844102142202983917723079455812972081762577527622765370856293932073998638593348603781266059431801592408044928945768971972717412139537071326282738771677332746290884531193710343743453919473083400554950483225429638406701993107345474019568978267966269025208197782450008558239496108433647453791924558412336675635614086834788688407205299059729109876325657239831809351676915429002109306403598318013953602363655339342529181353198792375393432849665045596013563987716743417049955410431679007994685361702891586512645421213691850303677834638870240951915669617267987956516173515985995100655704503713819093930350249917219658247306499822301018474631939791065998718824974680231614261330997499011908146753788067878179229481021222693152105748779592089740978644768505834701151632009703275671366902769523339177104038524144001938255148188817435923446742369941838071407680147884051417055753565134101206692207813571160692273252771894493976667774076498078751483859191804431102861551286045267121754421223681463734663373361828348918402558080329470823546812161192844632153465855907167569128132125161031511275451295996372391092513247100035759937881766794752379636093862421677239839683966868068085950656957762963697790684870285181851094684891493303308548491720507611653114805256407151884249221979467539277927572033112014162869153856911016221209917029374447763225250020606899211876893125154598450267267319147189263109393311910209416863706708835578341338864198701667233698850860110105631816774038666204290859557451320989689818570107125278274097214483302872118811039495281209837188170790656724583478178265604542673385567986036690523158781847914138886531481684120677679519541169796604291773403238501332429863286593429107179815702388276866488825718998600165927673650033121652503690471277433763862396912165360024810602038418572408675213891615653359118253603839624494984998856564952625074806648289187345945279510489052816973587780631643851758795238205798137424579017746855016026657068043100110183000221360830608093139088643164800269684874235650783632031847608662175752198533492592912974724640616015457633244306633273590116436242990084723857533783102614712117607725672285222411214185333236104309157657918597254413327037210376677816720571550916059631022218084809540991218525613829981309563730355007978182651111861886802315696330532734084688715957201233207532378235048708559658319195288420410381424361245212803675303443740068911436693560432058283096953113236472454201400010507410408819279967613123181127134654240346945538655513325833908433101403498993262114464347092602450478620694082545053029688077741356199453316801674395684579384169558736189899612939115305661443671654429173088821227552609337302995327975020968108827754551170403566422596348352845533437855069245967383645736760457574762379105188734400050046798439624506597327500577925981260031998223825970421105266348699792677606552619213857846521356415747465807517051439028956138300639606252366612571965307210817773711220543200776208822335295742195365381271423766319787457692276631258972942424581842128346566516249445185597285637521054686435372832197271925123135107967239536650834036059609305528186350311004139323924703272108392679653977735727583864522194870557883089924526966812633434651876842026505193092990565375138635215184833435812249176617530273028641367896772732305098534840471358374956532363647416736858140318624761724758874660987710059164219286425693142316464987245101093895879792042491604553188920436762236610640224792640800576577235119794619356491257353377555985092508979828135534094373164115614491801990500159183879494786766597295785160169901627216510728819044200139674410529207052193273911368068087020612477019147872675549603668786077724046921822340674569324087200584723165104556246667440991016458592906873768844080132132515105977339780231340458734833581747238782014189269647711392035030954315064136283761990352901257527398407405788409771887462966310824557882003367250598547954232903345558625122869308861193449076792482987177115735238711323737174654371158945417724417287555456450805807388583059393565679498129967682535056193565639706435000272413211299386429807471450627194916076763036109048460895653237410973205659454991871065954045278529608064360343854523708895733628221630759925871379725161929008945593890758451202697637364684953935253564705579009597362160926140477112344551572082416381058801999157398537055835296863434868002703298688080575405825158840536902394028802664179933344757417849561141038377471034189723859421555241819568700467801546076755550253252288793986657619489271234453188126994130991297405552424691383819994249561443726301046101739529624958675210758752810537096802227854432369565391974630104133021384432936342560367910800436932482335969540876073073124797765567620288912008328695311835735061831737685998759129965200762855298284917088142836652048752542399453163108726463851144718665610741273381618221204527710418002430819267075069611658689012820786500069869016566078853913741715302250071678330119532426171600777771078770228056527074473405425834381348005497540539743513567383893260277231123607124455598932895212996232936174954289639019157101818675458193957364875332685419666884861927183225652561125613635973063917347058785101835642914852272489128429885604533821684332295551723697691380725954397782608098662042707578755721389095422338627252962656266228566276920844050695321314126023904237637729727031752181418471508972440278322736381924578051698713673695880751989010918243561214102027055293746717624362129558999161742360422150158468356836221907355793420140906354871764447657074103122847412378723362030025470425854795365591973567577887873883182046428198271656907523793117642386165940429914942728361137684074629869730382179220576892272115296486197979190503497364402962928090348233296152785372205906841334859978783301142744702154611449417110025777774981519864624444144124432104043078646317883167823174338225998759198920419351489242799287619332506210171705825043187599883028042838529648002744240789270027864209843144816247261737489460656070209659936874071294310822938772950399794096049565576596615404147914825068251178867413199239048431206576449187464691768934368580225096091134896095711632862884178799324197728773111588393251003272469939940355103334696864484385098500460184614220054195202575549116772428685955385905978275694896932734133230925339717173375949894716717692710310893160826697941822788929015704531781715972733912697216911395102040900153157839504542567097763988731738192019202730019572929192395079323532010472086669823405021106290037769687402479240855581515190366052729781696799114541673458535571367800052663955311064059937142275808800720071327562629102754116957073477942073607741419547233280773824407428990367472619977849971147147376730434268621699861605570743967118266125077114841659370710268844807304548347933391892302336186923605318504457207491544311905883439806522134014291391116301530604401679841428898273303442708331903327537233210858821701333730532043265527979191339544277042823430440190953249570870753721577855703461293825999336919358945230417755102602053149519245550446051385835716825636060185059575207363756334696397543779413009602226142984092293534375551234525166583945614984481294339911127424085684394050236614699350432215382256682625311273247098964107133117441642739429424727673368135057985447679746281196164350216975130212059991570749981423411631334531190256438749507859012398279831902031841005112640319076852149562238363004116297830863357712635110083795402814901685130314908142876654686873488394051059523794065376634487102375218975959771550055177410355126958174437768811088003038001696616682379171824041247506387647355244614593024029005776584154802773706935008021387366426806817191868615339630033855020440628117112793745966725432776710405412469683993337955027675953092267829165394400467989928665067889928290729573867259838515796176171649790027453724945398398755799026607763944924215387393773366823036156515289122024518711276536769031463076425237369228162074499908378404850624351812880668936253681748718639329804171952612517853821891534189872702461688925312879413146408244427343056186837738511630963753653058163444993889562964546815391770277114402810823867979037710106777446685104270235822450483048649152230468722713946341209197651935658696323634942566018231651842712609268847330685807399721506924627661551735129132292542951853512290454262460726456202955868120022947812628971065845782802484231737535815912252778307254172562616168732059602451560702107086630389024049799062538715673974586597687323548281857786919912968928165354522912751502739203710543219226178732421204785970664539469755154592667623309596661252098712651175672535852516137506446517630643667259282172189420091451144307400550972571812232649084834321298197956958055818704831453851497518174515085430895184081105190578747147136542686493176138621146313682862348399803463440681202461867757604995163812820954708899057697605223225989017153103224112794835400377285610224675988123776360680725514517078839127739533331707963723666118309213347579150448235300862926273717881785172055677781363434814748778695715667080585444085940272843410712023078345806608495300516463886053101698741380031368234306719385926153787620696415121663199251666501588597253430907406347006777789380144635992300011616840255274565439442798075893653111670783087558975112602269420190486947859737992443909477024153615642591760013755428263285002958802225846777092686311986121531183128215208452798994662034566056142160374900377009766966538955780505073091161118550481902593520128074929209915182866792228832505887406856227093430685171831806661812985214368614797876854204863510193241000460975554502224421857160809958252110478855282146425620892964934350996213847829620366630859898709047055481248434870340637018870705021124162369325162480162896665262763289936393743780430059398453776181771930796859596967865168505814738684414025343901280254076412554959654161371147944823959881163617790367889167054770208013735149342799193823192381958339387976427414694805787896883972329681268140444484763179160571436014014554335718755419296492481572110040371453679742736118058860525935583011769857950980449862294495365708217111074515461928086374486087340487454874319869502144236950403473579465157784058299545753887611398638486109934437286446794732436743428354046246412167940898063739511689711607099293776325871932040136996562960469897779408610820190625303908719635703588789741627414699678031678157903812670558183351503358536163308109780552181143788803986348917819326040844696851988635999125973369069526448948142775974141885656823126537455019799332215819547787380806956582291967384940884838915620049543268347335354620227581580398156753116224026435685367495816069639054158822512887338614677639593332209510239298785100398572168955572082286422485007596923305647223650467956819801004205878541719612636841157590794438564420514379540805695623694905097933203332815567989863630050442960949223787093594469552750568682278530469219183219473478977823520373768071358272794386647483231461701264031926200911235193299313107997091578333920023457100879040386421034356562466420640189065135742697760906138546648804520711233393170947282502651706564758107775558447674551169491362553145945142645020242129075530040128482075473728702929948908743581940027857578315808435063558825523518782729398601367413369872456668728742494100624566645445392348925073892369311745392014423735443262473626080061082333198135028554553291571839356340040951328240170994237707683895967393167734119744430130976861551297446892919118318894682207831413558308831212708819633877754698129559935658454145040319517872300870339349727739430591505323654119479740238465698197462316689924999515321706416696440451373849843049713950198985285896791080862291494970551201196179712515509866331685567014740826273284863155555307856665016713714574370575563754424523346870480984675462765318047720891490214752183603124550366013701846259522053738921530392105780065587543756329038999066107637800451088148660222595833447405053800505692074398248976717712381379622139437980199611676080312018239709668238561876373045071315514928442139794811452004068303753543190198021519551338928175157740075704380144923743895400573840999758092652197348236029336442692253102155391254300019874129213345418242201705235485046536018502746598403595161944429121924532758050634807744750578382331921862520270113957420262729085480627626251516658428362594529499613939000158696836313827337358171952746523001912452008159167950813693094693329968094542917045260098059284821172353145073042014104520819563636627583208775858908658357978049899792895748820350263304494355439668410320913554567655484228137306597939322792058577146166781620388827302522890819959998001121769734184888927719288836316814048302208132144171096480935659554597182580895785514287690632843770993983333194720005079580098094139470073562172360514852296660381167253407394959363746222020033332365552435137885252450059351541741093181950518667933662429504964975609869419817461092027133762690288602854020197110758743135793696745978658117966287412289165991916650949273795200162496437582848659416524247245999665430748610881949223981922672663483013467122455361756719857457017378357546974776128072976824718187725518337767608747947744707647237038891082148585008714005622323669654368348317735950759798039341037546340276966122489380113026064857147239029187833262663653071299646507796985939835576432227556935507444912788029888477977623394111895861159698349415877424261950116458662726772956926153662763295185773797961197462402797413401828046286603587811396611328609194411129990025308896561647408356592596872254940374871196998679928038186710381953118841038818956231718778669887939539321619911234049493576368777529915370775260064465929708415732478891563207570493635240307668994036819116823991761506726995251225001811480219211735458723072883417961425567386633722266028186831404832632767553395792765045450068693906497477036001086783474891195049086372541709611837004653634704272475527471968343296343756593796176915744770862735640416444299392419796326980221182923421974849363498278167180516856809848149827173470723076438713978754757675058596593319432854065652059039643759294705149206917364071937334672218692685834126844203102997488888657663510924596429139698484707019341623350906311617630753487188785533095806654140233015908542354252929341436849887475336092565877160969786225320125877910507237865965094312428623083896136642145107985630738276502357834100682754740750284505029421097897322410957889854567465381288582422053441412517770042161360755256162135878504025468770368298154178820202610338789395818500204321211363820217316485415433104116146313583415368771024568548273868887749685643230147557525936403426432755364597331151853170571711680814814732879767040165610491504687047564562585380078004472676157420287245895711230457711345327095424028027846669533446371213708436854095176952880931320492856168274946811686510759190887543334579345423020496438140842671354477051255415483156306128109974185665687346306260083678003324798216349416850017913448352630393260264947990008031883040296242303733142380778752244077457930995016888037968145130407889131516375262158594481316538180610517899779145400421624470913012612644420310798784971722507498511384641288737512069478977149988789154485670581816168758292495338860528439714179324582837291600331027002801791782052656322044138193000969586986167844203005377336648914100974346960314214527320615443273254740512389535431241742261183443831484897911103849746221112128827651023855991081609146940188633027945079919546655073527031907400162629068630203125020702862523659117671864054712178988311366186328602843461761709121500245338528536654421395837269483582788528593931902787247440855220178119269550081887830348747941279571410572781568997509350645321239592776230379049472938052915887801857951561393106100765658337150642104761469241813420626040852468138855940878969229237786424067442179167920603223465998584976163658637826848806403960090879911388188475622210503906471350224628103931046609428692267310741934622681195502400973316222439384885090194166692407347324390467747242820776074428431794179189028064454768532264316104254947549235719406429849068621961338371075130955645210653611407018091755134051872978272523560981593761986372551433233752176292798280308938757645883650390400967923040438459724587481325777263637961244586657752640410464368756571426394655059902281637608911050254074032976133240670796757796884996350835946749614353745586140944461857872182866972803459196380986175743936502344407263704760936039394841582811249672680875155364346553181139404112235658591538947527541691938426222322718270890723640876230784657077038872790089739549330002409896830355545062843528079108725866358816361324591585571787878556462889703377469642722307416071681720808261139860135478698541255708023563599557304811406406943156937803685560072340240357971477811855221164597677790307280237392314840146366184709750378652593667418217470769361365651553600621401032998532809513781500743160272349292524642743196139687748870045831458240422204876062963279433460382904305664068978597249900210241270403480689319881534171096370393688512318580490480649218605653108542648631102534179497782372117133121070913625778803176216266690153503285932080177985321067665783472940627638053135334346879579831490764158614609384626316074130083046942507695474356864115631225713343370591800105138177087654719651914464347911272212405657451671043866273152308673712675371950121370320266291211842730373803724790018879322965565346157070340088017954372990650726844511980878170992384747989284038923656100910768574165956769440234502486448576754076740894739126930101741597948783051058290162659604189564412326888752985826261374985981831137881012797951385452910010819481487661060757658091584232068546502161408868922073987447031785020634811299959151981013542996067920447339283691311186340356790338422035732617399047658581924016244027038272764287860190412015809213759737676823325468631046609071940652206141103439651351301778491263837517384675273191989230753964216587721884228495192219102321575009260386554191524214342814263652014932356161593648447827040741144829703689625803259050724369016148120808524672487065925979191809546361802867520376472558254448828892596197782819530158429381057510413795036699653026120701713358548056274489597718529167305386093626199969798590008786080977957190181619917966999106867331801523086917059358725816722662443675799696127326951437756576105335799987361260377480895333461549520129982754483395721904804279617838509905820366158877836207569715818736051800642567073501482676627211370689516570358040167261918326191303403998843593463109097589560212493779599007040577773057832429989989329346856057144855360597554619338345434890003383393077298499417666768010555259595426230318702831760656029479644555821115178014826052333427949577184748067026244075403361563742556724342126253153534332646391317667800053081015245208037359051518398127893204461413299062250152185366608054560697511702677811789261789682985346338000705015734983019085379415849678954843448301423420904217945062425958512984575995087980337524331209772202765101609419835103475608449465058532548749568951403947953375714315558914157172129498901605299767178644497702477594733851865425973120753048692651297104072906500595527426214034449794642916017073651958125618602217731968968099003973636329782117785240661216777157260785393005033868801147780438032577769501584768423976071674005727261638998084781086759108564687121649089636157353307658795304058802631832900934838424336362147471013358262246901005009403574128607377175592922291690595312995824421596615571626676309536069918472021477123226082571261434482897117556165568766761111429405151325069242925319320167028486726090891023129365640542830860149770627747579586884197465336381727975397092941596477608650332618817217571675485963839384143395591398916599867934063728420623655145076311647199567919761564677269220813256695403430081418053950417053049344810909203706139168436810403798893480952280548261273358480811729712428214990610948188465429185999833403178775707362990265828835957951640130971356593302936835885686262262269163501908712860539237710507003344454982996231176817468074118779782328742435383831651975265639569711214763192466304214590286993418910165477805684263987565177333591592816422828484125476170103735550048440287038699010875452970542230952274608089038794829979116497293409321191295635574256684911329831583621207065880216564701389534621329444594599278760538732239601907485316556271053862803161272416010574206154685896862818011755109304904619873989526982019366378209718025173814391074365997705286596327866528820464763970492042181116324345129083456193715806397533200890819921509084262470104613515387967852549578244152574773603514422799143954909007086714075431955084237258467336240873077885201055501477854043239162262357750692674655804324839378882163498984830163610987627506250357915685871384368233437417413453898574065601276482101149827726751937047663053345844573883546026690558608339602231792026279015501530727533330361023560757778258732841355690878419709606937833042080787948944417043183096915839238351294731617796149455440077625995149153398428342705136843550744394933643568424982480191289740334064797188535331093771293954038056665135599817191892360552433845472832728477011729237230367102397845377650169402240449168304648546634991943655441840167285580604577522449589414986543656565453148785897124240098228031348786157487604810423639395472454127182607791618866144730116036890795154612145296812602017049365354818347237516534573290866746127123418157156095219250603848715924477175973935955090609447341354035544041552803839597872244155495959916722354220929153251626146670837727534057011461810619617568727910372667201885884451850027824764113460276041561801949277513890844983650184017118152342910049579180147912295204428382631194515081394653026021959386738174689682357668526607299031254310172179732577447731193821883720172957335616797070587001313957870000532887871879067648079103379024397079496693389021335789468027940895877576348920232870474909359718455784507835547403218331361551780530069217950513457151305576876344585773771208100033966436514515160311878473955924994284246349823548506237444023612135009331411019079550006262726484534768270722166229079177279975696354991539643748801409995846819784658550162580689295153297983410754575980578018854892489957748456160224491960719088746278402196469808884166618471305953808304285620097123019208529184940373208558354369871875553785367292735598131124467192315098205566178099182352632845819276103965476933181737577165670670285834223964862942433371956166431820599190012560343429056407830273624738588625111620967053252460433572799835748036955109908996922071697185000078732865380729159428468114186872033643127221862288599033743195243943561130564356206321714459482822833169785269289213458508977956684198336169097957241727907558041741458426461688791654989038807338332757695599057861728408804752240995490223277791884168581543571049297524838927364118706605617347057678508347779791477881640555732802034021710474381103806277517121048985082859384157967178882787213185597376245097170373461274368929513494236782703141530590458814587743933019723235008603120840833636890257813739034742690657225787077521445769206411785697118168438903276514450545435951689478243641478925854586101674237433716161483623327889318930955354782505932403968299800128318464398372533937748256172677422888452577627268626825934141288802245809426345327475104386986285035396318657386469162055876867984928607059840986589883968333101985569253550574571832799298460964927181888109745491357726892242166237650412653555747406744349279870779541375137447043959681058979930836176459659492540691420928159762817764297955147342987272964214037260548259250997596198300196184658309161593608807963549496212488181877463595406669719612185486694905651651297835999728527755332064793011536243329961920712708323958463417188366062206313818369363289308898796215270370756808650506184785420017535481832313699149358354172399503852286310101275200449584592061676447416370732786517433958964996188550311981453729578621448414727365179825466899775201717872392723998927935721351802372544963829485560334096427364794767523507463726597350623594610906660521266445742173136375900478823053530037886744437286581784220316548028131868206320844442905024067378415980790228875162592610370261819916385600044082108033146489912673894923266603212569573281478700418794458951311817962411662653478022615112347065948310890885557083502967426878139609640708861950684403781041681842147770820600513519246742232733596261978227068183650979428317486164124004620457859670129356600650615866668312809173407501160670938005433643049035275626284815342721157623158476148013390606163485885598873823185038885337039184162449184641753519108001989192888445654246189857500010871010707105861301737965212356811480648084851727588471485204114234318463271307765408510217444574752557874609532691278832763290618174363407635743987495613007578244293753306520314091625489404320587059495128133887555410431790528514498317427417087211558914496138727636337784226829555970867397997433513389576585672130231230670900225118537431619784630356554221921530637085485628416755755543429324544235964878690881243370267903708827110265128598351807731686668445258750529806343330978908800276774307904300731344290761853756735624051194817873325151519548905435967163969845180725431378927222003084537418248931916901024065893799320723538017318658779677852944870154395865815718125489014728466721572269499473620398059439573345118661356940400682766849323480484029861709878544006015579709515078578613219797620223962317220819667697685562274716333714746418884657219709194067154410064617599577293743485401144452192868368573991823866295809921668056644279350810324006410390901623209462536205224311429961208575020195956933613553484128582795096535727645878654442029357041872010830233339428848708403551221569550152720015768597066749633939976495520387126283909301091736947562652228199330160385705480967086703932097302247908103980992809431658669376657889220680130562321517348114729462429272000202104068921136880046856403056403434695482053344926698083241560313290055884956899624206758193640801599309002893117314079917693535626463577919734141717887867443955068400588665111366064510383833260028875072812495186564856328402811250920419454317336513818509092346955247109456146433932058548506576698872847183783210839173417375305528873303780661799552637025916241055881034017720162690801784167332255823443441364575579933112155855387814500733517531018140247416452218900653591457327698004520738968047379840531873986645032158013817489313072820815309646997041955376505791905175211392725709143202226810157006628567271292212033460610425079548643156789843838909887681422083169153013714269020798909909391174046910824564405707367751372691187180035804470132313990061050511897201116489863651878045151508924284521140216234217598776792644152179326639331321202567476506364592478208417235749329448499812321781714926777226751009641770494948611514138781390256885558608461984185984373281359471734116852638911238702000018945945142064816861335470190056350999201118605402293517489814749063966318095919496959991308307536225372720370676320008185026335258034502230120358142752276552229653758523687767686046284695494658929167638965649367062719921721105697137304572445849249056966806751183723327079567676963283146294173359857076824920070288278779303301863626015560988941785555609786558784661999094267516733088982965017924737940234667184600455007299120552342167840675155481565560909052949686313349877529408538345688863491554166844334754019270804302888696781858778561500900487061646831095770417146069837922941226145468587478814358751724556950060634121405411111126059352735443826848852936124696378121873575126361517515301615322844973181010710881832627560693271417789946698317426913521370127651859175649521554417947273336724946333711688479786720861189019273849079706810798694862473231308137396775076017036080313544469316234762432086381782184373331808454276639107330900943988477253074586456633417495973513647459518362066153640347666434693421146714516544692978813543342899908296922767609951704030545402752803505679284281016608887287098677650264118888077376989190710002673198797201652476617953391725499635498157140363258401036060435881287643205959002235282146533902843482629452431922195318904681648600769553963853974016573000265656291553250489119448099522231265178273595719511281494195755318550288273358273261352735096532932829789888809709670609522289370461510230348693511277378163687719610918703186875610113850856531264137710946878604606620788988826226397452299784534736611891052043476683145884974450828974603945296820931549108192527556337938518390736111503331263141460226306395681231457026653047628077283544384458077159985921018701924386378959905434846130744224648890250276219945204396043284548907652699116388168918355573543741018774762059598395992913940240463311232533821913443763962264434558566344488412331134834668220747264158308660521131647959603170391594695444604412772757567020370806885963039755638192716653054353445726863906483572584695271413839779625579190802560919478704806580027244883927489988136746606903353410555082217633439476226298880816622788413838551593842278340530893371247731513773883318811765785241175038797532086925483537940937344559885211261224887094787549520627963458104266219146155760382441363735126047861783354654117760415728938304289116078082582919356747866716999378669853818893491174637774007042114967240740157053079346793953982922127496833470905127603563885853084276098943382583928923827582237754938798645780244455920899924753588637568489652965017969097379655887497725333261040951727884228858008695654448487619409454661820029691728080645841956753675267165435481395332794417164304150076751743696092091280838826883837402471060836153721885786707532139186907222883452411481030953909329395191528831126294246161665839374713432198262476814467870712904411308809553081366399970276342223655292517650975056720326434703942332294495588762115235167279481798177079622958020341003461567769097442216578190195626574806218505024520389829302837485247807395506348648886260827362214754799110653497872802705728208476707876886819586833810670756884214770514625919213364245367752609691910911829475142960742115255481464905132711231260361538591449627212162860740284786481104882945798204978951061680200414676098548500326841497844700381589193329956000042117774006164788087688488334013364561539448295228626229024117901725704186367453519590790015754815259348879458232852219302242700608996687858807312212583071910813301185603294436595642913668287005356484953330934983158734423539416088171940579528872382627364294003609625221755573188103113968984663189986193999988149079480502579058841382528351242238681328997839000242535161563597938513880744413744416662529260557729991165798929918837852909142412141765187517874065138503896974754559910519649073960061092482901711853339026104826235533252908525245000113206517684185724408717245100112665209413899643814154119543755721376597557265402889066677522900451511689297337058237667463070850500017212668196025627622089127114746498159496765283576753256514258412167804135779355473345182125461939169450095198815612182126593719124512270500887897417652143524755275545876224732936688351884562907912929497711403716657087556194175400295243135632725092751782528789387393704280789833288381262557063965030156982346720073206138275953693524389821635314892195541517232883496810183825259351906495321004701897278634949486809250700237450120793021377618712204831728580469557556137165804016725159929018905556852424955958177653669120636604192257123820973341313873512841560991450114753329951220737784915001765908159080400402668451251603689205758193748566774605878289268053493954400893853360725191359544666307982684942180147162930726262589376723584182431742536801506013936521387145080396820447743012799370359002421665283681755615493184294887165407327042553163223541624325228434043460987677384916947466714893293262158182071394054919198727183424158407658687681665177921343071593550992031647517866568304397675986457332711795614678323116322155917138919643920395189623931112167709085802439002424780008916157158403067284563997016542208182279514121318734052981613739239043203711749456726768827236486724521370286628639889214113958601641503686225672870347209073396710336219387920861751929882102355175700693515393928161539892586035449275833901565053735752790713236653698656829493505374774934545159047873764499086740521605538396383738378683951248646508841473652352210551579220034345332723125737406483679190189913031264663469095862320075002021313794257530723413780730850398228090034476827691135664253685465713256085115822855037682713415204159947593748001654698685553811540190201998599006088112361608771195209876483006820287939987749252525009294546489660281554941498385368499494054317050154375828208789585863486564577747332932886029205306693692934439970149750378215975869491315059435086005115412306549106852055062066050782869942330067625261492132819657604362225437951104796020666745496084372419524319502841578497472283372734337587337524993911446625661594174690408757022580438295597363439156651927646329922298067336015383202633813803403618623684651737875668452652421814229857020261997120157966652918106557936155038595686633944503594061810777553366663382050845260488720634281297977513204125675612134224191608778667894722832375636379088155884253188491765205541073200109411234923927759669837354831006240066508957923244413462744381781264277595841528455056423994890099709887966555310071522348955258554323605577452515894918501302579005214481805735343927134731797917435494601097738998037589172758451679035932678952490318887433449202860479032580639479169541827736008478971685390714478880726230623951813243770406805376613974380782651991758391097945922192866369707612724991520402703002477729792883450198901454758300343041408319672390639833225138728939777593785792949976820209241583991591488924048200518307688595808304965442247114340582880017184957843678943256033733493104620605290820860251861707251726653393690318490862389820100711607793058186834678841116391951845724378381682376195586989554324622171151743469844776879970045972345670766285079422149923700462069998531244911014449994306875035107555893262445221612780211535726096261550075814955527370183458176092668824984952939198331911305160245578689249058995430632003153924823870419980030189318376864690978635007230228821273282246748796407065338337327188919625572397037469288615521708216297769107384051484254262351698044856770354057673584354596587166798289752629090181778314137146333263692261993935629735715415148605652052571176924729640021115556817648472747438802066870315116084030020165880995001082376159639801310137147734044344607954933850706888717374117977607237077401302536716923346359971802365460856262309326300995582276725125194939250747553731563961251981844162211463222732044123860123090921932895754052779524499078546140767573869987923701177251089489945162910969146609922892078879928899783567448579529938666157725591487188604095462588801365710457461002874725867559838276797845913421735978266196784547970298109582135603904739813437182214871916254065138300597098493480503923658396992659722025717740149255646479361714649616610867251179306382136023494606441825008818010595394522018930072414991572654359060772077152173085202932787248402486973274936176723123191000561917143700356453930757031381419533095890821080004630687060155488028035973714093084094912601737445031650899353224868624306730124829923596470912014291347322206066498484584686140767134892138211844094032018689326534366786397318808578128195826452275353507911412348839207669978940751669361167301603059220368474122454256425099235376214734423116562113126389771880789528295848895040333112603928243914132894461695662347328396946978763399647486445146501248208851050351446182892018669250031724235755499749774442488108570687415329917234567768807083282797613222546385009979503258717749417246488728745473346963448285575152685721118654974251179046447235648363556359274879037233658893789290221254694012668169324483234639535733394359283381390854801027772641920190769888220874154934037304796744833085782898206257203199407892907678526994760071167095849740476848130779467861743554882551617064824742973632235624978065131625855065195789237711075655516412087464699490169968091400479110097294635999015109149220825583980004796390425635026615878173075661677011565815371402572967295081320271690368845827279666902001490597046637778566749961930923783285729184309798616433315280440732054153131435178741745913808621462675682880721637171278767146255477792242270789903481499510916240690935231858419976582668786307752838321575407866000372029034088556122834512618650482032720879689277005143679897398889427056441606524167899539998296212411390249712085035874330817610704901728280761288317386916962225629856255712617402595232385685589990589062473095852094385211009978077729058652509747507023127465897698976025296059575724184097378756702680375870436164039961206975031968779742350214207379838234237024650320797036359163155079807642457679062220206952872170315785010659018866722184800992454496327717622923585722722843491747564789513003551180153344229639191891022870061609736096376510146820446092160446089612102356035962711278508072010285614453129181658321710307685198044302557625067111850078117990800793359852820109122637915068231698778164232896377472340550017215282497095863989995382183401539147350423322737077242096597316467575588774306612592575174712171371364672361851916188983351614487525028892073712966471696946696718844233001005778494564899387363402123417659654309343206048639322115170323140045479815267442907681810581420388071096645797184728729144848238992922038559997047236418832348376290717941408416924195147815089970519300703421129000079148881564460133339319424710362851074607577559466005010335392072095726372319738855877372627790438356907082841530379171072364380740449229410231273799283076929016453912075710456312334883530809659364555621826539595597988418000195401625963552307083820160032045929151627808690376888226174924072076145887644348368896837763322783743964741337264002101141783315789043878254240404128828671159414290968169612585563791085548599407281590930103830967827636139842824233765298965030572076421275727841992229811890853654273486661397255159128097234903535465607018656268031651186410176289994554499916362964694367428086960231376772867063456871754904778257328912343063708729143368523447627398940144458669721463410065017030985497006062895975545921850185402357414820261619479334914446867067800817084266158370638048060913791351052653370892937926727185489145103920261964468845646065631448068617755541199684361661486855551017087277841311827957381868428484540500081225294943884502519573112633452275695137754510403461490222116287620930655330188317895219933698464356144861040289960762079386953634093472068499905532091735090251476288016777241756555773945960562961782055445499867363792197578846061832925252931056156759967520318076780924232200371607495383935730418213793984942943821308725655427551663964995259073336152721757177889867164330602671261108994545085789556994438537859701459428208323568923139392801860934082061895118851527758946637887425110396634186424170915409040795584817784079782988520370752145135667306691702401131480085630836177948887227713262467516263474964080769733626983056672325230939860804034850157673126434337947395380725543204680367861243112911577928195934330549755306838358401486146657700636460549854516286913299965642181707539855750104442634715127701014882267455760753886073825515838378101261019632607837078442904293120820705079219616125091085068422318881126678156524018736694267256839911261866544201585293398344673308746041862292442370471346937879232286975769238381565890793230607222505529364823035161992193374123892570608187475439340565460313571975543829934284621987539858749812258999200202347227466998027339442457823712926835930304203300818858907592755946934004619979650985474547218718669049143310440592229514959477954238199205699582983954490437149766120213564177357759197068219060341611297077660098590317492681334222702403475901103624879321247605733596336456031152521192896938539105191582226532450432723414528539967821524220754544032155593167791688802726410935354746170710485939092310565685364089177760544694321297013375489703497603908320714399792467724212823934752172287253430518670810053614228672151851401615487207559782135989077107954928386931498745661979624980006534855893315031285671413739494442504752392658414105665721927972783402561561077997967230360436758579882795863303945450869440299882720895717082032588803970749415512034708637742453129007706161679035758641022057511573017846608905914782264337681639266901649150866872120624579855140468106260746516506791343593789127513181458661917068417667416351748852630220064087945980664784728096592048067832652532699752152553985423990218596578882785827269223915477847602442556418130170249407113484053949233428682334348203515173780762996276658195454230454344862808292336787931443753131113008413111714623297319653197780873461298065324509338511737113449610972748127243833124212199542349874932581325277479450361293439118265647865221188553152469763649719007390037075849745854524132357254716025817624218636359208700294965681817408236101846378106476691321992920062773905602685403501011219553367552219432346822830986116159205571669763644425824112302333539253700598473562268664628051372496568084529707206050298757066520948487091917969485158096671981305987733936636134178019315775182390187704372057096349566868389445294559813047825988588052487806083320883517968755378446512167134211981929434553722760024906600717778398472643600087553448306406209626508451399128388115104657717866429914767228247556744408190220336607348381894758802478169249266096237803939170820186704570339107598523887365875894905847198176815937967752369780906194531176594767271948877215990688778166006301181431585197556973305427071886177158071780580182341858595553187936543344989067013253145291105793819402089099014979418610546144106729969524355402793832407060772620319620147927707283655090999490980296142235624680971964688318650648244904008176591822170325435418297871970812620881426585932899383640737530390808594370416765631092786634830966612863565543030556907757697244925388938467315022417637714053444360818738619807307001460747909306769581288349295651435071215740593078970666282371484258916733033270844762366421058243441275976862958668502122292499393013209339103906034852109110301535991147467403868820600772180964561495796884357375991170744529393330110901627521235436686511536604655816391612752145086761123571904762852238757545156709770824327366173846380900285701426655165689295120552060493383603724597356555346793552543454335582253402435765201045969300325830521678953733415044931654747048619791892853562654620572587009701553291981250838189253619932523639458849771553186132458074099446533274816103400020222156857946219373714286847767756391284124649175550854484561464378567278510240983498001480589831562630527398958022872930030701134216522861344839611178482503759176087803720006228119584316711420962962248826712350718874529604716144677289674492006393636333770981083444335948765251258770180760387234831791959286416980160143236292296345270384931411265880240519318251898389353433188201437521723301904534567380360570501394075916282538082002837014716985228753942458841870166072887033936573933370133925443438786313037248151924006198491535436074378920470750248142937289158139141698723811252469561768029121480816088846864780341859032153678158525693847073085751923662313572172631003680191774847971390446520283941685740631698953713003059994122837060934185579149215517440791474892198558695271148025212010744894741202896902386242320839369434216587174021083917826615127265405698654241285275027260931215788900591168676212221085019541982593115110459416476989948992095338012073853890346552576435655258520820335823291152790166484865056388130555052168976340167240383091693039599894515992286805509159173400825439192942085942440609541353654109900506085262593956655563472388739385573191438092498505760851348899069550619183997883185132141231820714514817610765077307299497250286886010394256993058312164901949502657012154728038306441056117772770601252965468078266286909834933444557702148504750604840370995027912908653172369863758966228016706589895359068735451360319993324164939107147634191950208661767064996020083978705636139580752362209365351370489076123918909480646554686300545535529819964663573380199767461794976101076579170534319351252175928531740378651357317262122860344467573310737935041313622145576457289275897815532377643360904613261808941102392549372982842918513695026822579616266627539824831738800109541709000903479891004617162493117743430222990317041925507543573150463482701693256119643636211469473588083654397771323981394310251938351295280938567797169907372665915497382789711509253603504220657547002873060363949585024002571715604613937129375594370521429107834302500815199921213594042921355655597686516977746035510463312447750063558822782071157462444445812926094066515759776046819553849793975861753424745819748493698081100703395024151306952111785095258590376521622167740370482320033830352176259638392376801294949824622916571443413811396294909332969205006704152262016973189346343647712861243790701420809048134752160354549026731207687599511347927885304084797967287801253550165158899866655046599419256543980709952190779294841237492913813388865330808650248878948063489144369148163867101679661750011715801866913453720655567973544450567555115638805929823198854357333952872640823353699800483161471335418893154822641148318421936165653297006427938183228824331351094502609927867005032998853017861833795159985657731526146763962064630779904363957256128230378048432588505022375952638181710761642169033366254011650881677395859915362113275099237026371245315034554433857846501646218342117168337466764825875925466384751504261953438179705375238644675864516344889660078075010094047497615807026968861280310042658428721726275119081411309203387067274176507469484176845236404916487148965871836356580186114414565859420299957689297637590684526280718454835394605610571439641836001198449038851528180347919733811902506898641832849621633375254149009652240506164658899272921003746474955993447454342328063051408049618480083138629257564849469551204591248057161979104668168352590302660015395908973616867835798699657941868970968002108812720556076450770496374778979716540489072887319868215734452084643705214332338565366612322731451749840709321916628843617491823991528377951697789246417403417231922181814741919090679819320427342559602323715907946518136860301141279850323924809732444830549331144209614431481986371510053841137302113703551330279743424645813921787482160265629051365707043707502306369305421012089857587563435988542111281201021846105640032865901934789095847894479961526470278304979294180263061927674749850284165656889118450022695607963592402500168169544059447804878483593934942764199356900792033554640085333846062981842051841991040270000434959368559509820499093427454115431272415549037668882332408271786725434639967680886215475087348031852775515501337185390234875551163756233065441044088094902715667308058086961300207109063675761206525595240733838288089425058665142052065366030695833820175679680558381257445266315245899252207579694663990939332521692825395728599715290102986560631180854797194287335073615075216669884100050025908978946170458063345063806241125972555021783517798400600721088424605102231760946530255539610004410595807183922981337642387988068061922529437512308982105765537598539782103310465499350531785531513936502002121878302806852843214775924853896140841866812580150798849455353562965786588990290068628878986490451812100656215548547610912066862085653325961135833665528569724734935367487942005129726354770420831007221724221802905655242201695815149733980250686760718117318172691068903839152865663199123353788111862544845983617205135169415357062856646126367670667997282229597402078233934727515621462580331806968539593774833551926534321805107076380009402102080701496577147353204029199419643581529636523900739308156902353511908603027460742271714277349038591729828013201141025492913585681217345922425129632380469762978875227531853324342295389066698443820621330704219418836116122211641936714467126398170227653211278897329624889867320605201095628796271361127366811615213668320670460781148908168777157337738414502118559316917824544138083625083235601299657268956171756809458802325425136015493275430990598662924989344868174704840531528835204568515232214088357316089105209439586906316533006240504628956955323324448784183940424276091398057626050414153394576932780152894450996256672841492632288759866059644369318701525983672590636395407252988533675378823948564361507371574601282643188145781202042668887461665157156931361231947299021570876484551140201447038317921090423715293646811555907858059303132132658737807607066236893672796874707219010994414539099647042108617607183147936780818581194843009361368514084443682384818050901329759910400778829419846383599276445935757973466468748922016881136146894372342678344022362702763653254245142006708257711033611592972085667503015422530583559421240597466488190050649225364752987994840769730166798776953245322006822625947821762221286635966376968008479010193968723579390181250127695192908743246481504959215860804761764035328472746361747654850577392439637803459583164666611135055232133575798693927880980649604050405913651495683911032399993040922098547500154936309232743704631069771655552163098072351498346401404473873029796879517180119128376384721030313720375623360793426224619002080907004460152282676062212963237803231294793899223452339351192819176479906377831646250341164785320232883901589105681515982332688094861438359988142070609458024651431887773218973075546165117203037081420285953770120461747444488154823001373473096556601004846225461652050160579375543605370680035860097643199225775939697559069823554776525273599847159443620788954755944198368749760666746069084158619735978891053941788910634813911714802920266462698622153326407480669643697830613130023329457118209681576745486662131456670425502390455175945484298735888537736388948303865887599245433304590908255342387873815583649828838890343711069422295155154413236842070055181081189542549800508451902399836093605611681604321201328175240980771422197071815170417112401746928159603630813127363598423499802914339790732668532760561736509001564841140218030135210108280339324444971987808337257751938884472530259925274215566888927356625328370588551365205540936762456512205517000355137433877152556514665204712911137722843639733392210730770359545702420190231685948221415879956508226362720943704330163812876166079089274448587710063555224045156304941645461774337017426844099030574962217292974081001841891495192689152295647055334172568343109679678436123299184005558516869669824539969547636196064768536126008773357921587436170869140646190874316019135613131523874947719145396888505006634451807272800816276338507551319225297156339495880151867775787481383634068970212281713594572884969718409285441754879890834326339963803384355592279398347992184602152803332530487684858052987634442379713444274084821177718171092754549018092497087295109470684143244884081592534398567671365842851829068705704908556918265566300047920074805365910738414942902571032187365610966812577969740357853714860024357185955150751799473602098313364903129565419415246715951746619531955528568851472004161835079348964330349511097132510398820820870316515028966955298990610991771650716838798580080761986967848061025924728831234539717735447905556949156840134443542106975085818649128423591251627961114098627194642347526846800803397520980277032754330361747638257632907133797824619191030798644050229771271670746531600080491621221626691251924324480073704047530837914805199135086343242857394973348422044373668390432056962860065636136743131692117709393210208376809369273433442544666020773388703599398779784568540571482972605340755172965031130887809101801010163689409540045620734548003050017868990597393389092401513009909717976821203869370238491348481486376844778023197054642827709247241341945286282749291804771943815713550099918871025192756151401447130074473435221539351689215152493717936012295537660291914772639229758690994984982210636591162772360712289898178237503566169086014304126131985592675815763691953987896398659457491139046470238240002531177792582436921994535413064648457402899830604874197542561535866334318346113924672538077571780828909285383464705694749120515234281503098604469327150496847420954874976944628552471643482941638838517014612330704227209310189275053688544874789543536482422358273322875718096441002718320357241572791985820072446634043915126761784201886230601146236089318541520380928118122610490384051924889948637927915035599486355379801219232986163973051264803393801606794523650323215463926806142300840080835546387179286026959985857736418992505506480168484489838378460739126204017260003413380338173903820172983262953159400520007247865009620574014372319121362773199455838424524801182960864645289487345043346744512708664341999081488454236949559169727660692665937610338701496718190523318988844085996743171028580354829314733590387417652934058171590378978011523518986256000772010270456400183480598697211222199583365104373426988757470123839792711810891307460636608236726657017152419959717012347949598721807612037059238122582055307382673594678889274680315976025699789984412441615950577357724490717643824949860852904383535625138421404100417804792709889474489915100613644086484062919906734129883431165391536629880327144123245474848400531314762757419504887696346158467254803297240531703366526217759291610625401614187330002441862496999500245713383089330226383248154567347124477331911032447784171875152510375564151694228002181955201454942617041002903178659342019126268319628421836675872609565504987645117981407777979343104885305157613205292671035474688046680407782708844458395068836215894072344189926883898971473596117855257180172736181646093577480781105612787897243769458983172680639004372119836805841527963143232606018114762913205963199726682250633538124888820148164626411817060611763034313811127378265978868565726425541001330588518893728085191825813551910955167628698593999516071719805032374001488979107926097578517562445807617930993345526079384702920926453204331018128449638885202199595267615631831249367521514341619152212690374973058502279717128597307075511108233773727548147990943079756830966442030060325777589724567399011700984235777738478262283048426521657209268504224860802539410274534074799741735772949677937696382025567073263466166219385764676312136016565689390929057059660597696026842648809606912186754395566453138405168250922635298501457212242190289209710963167817233053429383475249369410266218395224787746628179658322246408231926420890383545081889561219653254541977000251419696591387591426654699236037860332044506073211852601963263980051259250797325864976328764789872136524309118944090503027201570400820876671985965604904939533232835662100771684175813256485300367966148153670358917324388187848512864639902879333226437620196915178073845493716837086406164707710529754784473277199375286620581997068049302759290570094620298074412289950598043976379460233813741779528538205538575280549347386531319686891693195242214436377267583210304423939068180411672686858473365756801707654725899589666423436558480833353378354224562786590964804710413280974026966189143303057502718534906195286623356693651117988199462412810981882849903188011919006153238310108946728142466066185399399746229407443566718733183329432249309654976550386976755041284551916144993643948946936365569686303187355518430535658576240879180881198077912960513561288088448038760499500585785036031193502897840032642403276319911278543128352781587117612610753711970853390987354153909265440376079639688360730742347050021566979837657829067608240254692159832134307800148059292936609793191900979530165573472126177896241052108655032282098355812966744109069314543567485395428539570380207112969887928618452751248085440707099061812818978618161250027782857085938286033748300652234988259550926786623231335607907783057126665009414796457292371385481357711718871492702563065471205585212224671927751116841969371005962631616570365414298586158035275131616267896808244822065811326733326399498762008883099382841440388436276945171327450908127149503118016146111343485467253420193124435893137336070571876858922692121806195379519316537977612873245824483732446137574813805764554638362417051457016055829994504945136139470835010285605492838397162835759742447685672423321193950581892929649309873060711995472642651754813706327558082899052647337901814946886842927018832143271862098128314601352904714248318449621505332989561595460356332118298859338171035303314937982761852742869159962762894493222389325018964419560333930928901472972987757667081298048469369107273725532759795885255274029936823203334820762122217723722846317115442941842571909905963542639755774045053443665274332494952830485580380912904044593672621596080754074879579873753055664908592715339622863792391844412586789669628996293026104819258906654508383906161148843974795713658808062769659747494843822912307467312631752131677869023860305180177644646288800936779312287605349490130345186768448014597738437406893578796542823302419307412953153655497709808014034010880937649579508721517220793151648491296042224946205366065941041647387835623385201558848902145396988366417298586231291954771328626244311673674598391888599802452293340737778773594328146796429068714621205840759389497007357367871846905986031030063714862599652513409944520220965139842773190362476468199696128152615758061295836344985697683185535629655370249353423557261066002633440790872380949344195008827421013315843767459619034427832376208809434147359511869287212054448240282684253166150910643171930040456507057427457533084678442550246437554044081506473836074284752574375712051432908969281509302204342750802001743883094423705901130128630196461303939475917415983046745242535941646205115883377268916921562259464725440284866652098481696765435608608256562461568787964060472953180933340030372065473760058899012987270854908796524958149711611013606921237101427860762515600951806923334556256628869763244339665347695121302419520828416674043172377733899299414570751518515271866496892751865616847707703104616073328289016122169539408618156819233725634478628062158745784200713342112729194867384778104118208364967686065801971343808799794374146689829530708557571553781127609286326356209455173928258809326549758082320950970292434676078178461758159803220840496183175005591673115428416872419161031832061294895307872162988517950279274934031801121256819068286303919850086622897853673707250485828950758608431604267715010221595316398748761126637242608470255842451289539059885789103534982276098770819840099325618454964836715832378918729069941164283001641101644254805333982763730482203611959775357285285499414683727050025579226837047420742729618954353240181570190283432153523378997278968818000323672620902079511647951584865391338240773817091875832550028183758125845206851204757504115960436564192015181297973347605522220861772578099390585498570846793061377258547771173121183684245549857118137757966524029686930506838554713193390696639755818053538526522103351106650396212573442321074199598414963437525261914825931251432257526125098441377272974036293930620047668796196632300235969331318455991728722144091769720432162500491636301145105192972700747245786665947520280887217016748453633527210240299750035077677029457421366531724491046338030273653107109546327591223251070024242780242540791435604460660997948304211903103381793876779102139260699667188176639440590018018998846052578815477134211330410529114528347975965607058988761847990526651704195600503779253307721850996482838515992523595581239623698477045754206243054963410658330129082283917899545623629780673416392989360506712284924703901437264521758852578583913137510466105434035304323976247349488333756628794983664620538137895222250151183882856699264861399988315651856379016245800029582849217471155130605113295304664265569546433721601744450574317735104719349603902925142399077830613021158161288194237866689550887267293570540320391971115742485297900864025581341972991891758803318053022970167464229510645362616067424129452624010595621825237266940889933195678236915898432391642440531450514177964177636943591464068647842139868271879170865349838243195947361317868507657110647644245619517750625776951277398616291559410638910735395228567366149994989078675766056220415023360502132966560278606818111005311077203081251757532676476629337272987894758974707285684173345947989691719601969512252891826992727361498225539023869833467368377549081218487940925341662118728224108692622961590606433263975569866647168970801495431019251362867904654974601056734284432692834795550277302493085810823500733223679568588357081424358481054289252119140933491251102322156542997751442917063731086243600327729945471671470235563104518217403960675084889104787818707828258745213250104369777402953571931840769727407333079422409079437334806624641668087823391652690379152530017040700310979053085281789840316685718097427057015666003878271095738761179249975543934322348648500306085857428436198974488574384915249300967371726007010489498059797137485941871448811096523914475779785332283039778536236254695434181692052501789437103347281231852277241862559253571732142550011240547365945772872883323987808709916851800367054700711919702532641896755679402045949225887857751358305588696501184993445378896829305175473501603163469460814193963631525257602781368110021416825083565817374938876020459339628628574732832783123051558397925050742791356724282734675623440096330800103168392541399311228561169924431729163175301915150228560742976780561652170370288462064006082015885206771573735399485206208761146369623555795079523471102058516135204420554478836396504505311561851985449577456832907783371459142383334017656565987091677128776353047972002031558359712847792836664793004558550810447363292090943391519381249220823498065979770971229086336733341091573999651745383988178128668289755442879312831991207057303843818088221460632128269929184126804652731315948308029131922445637620176992552444695725053858350049838686244312829736791333485694350419065286024419342536972872737453619049562021034976819814725995861453658921060002883276087560915027738924916425105930288245865001391127361259885181494205313574679364240181611713512550733528102907040601621481942932577908391135879850833763137860636518008613194889049749922434111928066652322120669770828606527219399186550576500256359971755329992136467808174173257828084307949286584406999456263967745074248193702361409340723384245347462413308914066850154790976246049271487576651818272477435337093327330825368019808597205386737127092837281770763747116715246120513001403489752589054617771293695053874365469364233318528917763727289919061065020492164366732557609911855601045934561451521527292342923057894969206571069626107270743024762882091078201559413090084584303408572324763818672468690283065919574803539294138619660643456215513007847466530069395160081509152294004523756348012324299758470547701679291765489315838220746288938862581546819614899642828341012890098543397056225207793580922595060723246989973858647525586270805982948745021529555080311988572284708474717349801038809214110306947101715481575527059155380193995927864016159534878366374666669543774811566163218647098014200284777283506529840622817746225769768317604027218694578729864591590046815786252988915864346791132768725472419544814469295297404477516474543973826771763883292777636591250480459095979998010549630161695808176152712856438723193484196418044658828927290198674554781663140998226737285084917324690332399888349342286679645418708331839997885986488085164538043476033743985826508325356829542008782345144846331509498653608400179166151063270440001457482672780039906251758776531793584491536531149979226053485940465100415560490443273544476119782609040282405711630050033401366579694837313671993644984100079867460889114286727074306232690513455731227197830081130679237459048010682010914865795846669503376762919570837326314524134114945716236689684496029296601572448321071774360573698088508608790745715017188254144179515420806754545460594874606447360954628361992839327984645811166338573121371261715595346890183152297415896646908368090955608051168979419441206871255206812667959520564715640971382907566861562720106576950834805483234931245106222838135530778131864529455456544677752281544442404636508864716443517587665787635465871197881990721006763786640523774201837798031223199759312520101313691243626430297992257690721121854298974096470431635084565775493337685121067650888083586681718086570586986015037689107059331964965883898521868841889556415689740853181336024954929639141551291895204998306029540407013805529412966336468008303284511487673549355810396584027393781022379923204848195026980901106943312390862482803599489730445359138425776457674437173155109740941361540389653739708209712859232180697446192490304355907514530734786987060156571805980827475938343705153581759773584895356599687706537307240115705032440979708016552937161633760246317025298799805312924499005378545480204681353633346718501905871305254714407010233760732286059630194338119375111891285199038922413670858428494594372397092406426773603738304799739713628839859198745331443680475159195085712605780899971675106375710555635443477560190976919054358073392480201555058599855433543067070809375263364785502313392081483678606430087618509295157634544898259813324354814552140712392517456164217318695603224219703960285368710807592441869186503133141430994360078292249917518634748065416983185185391463717838323339696915727301437816363129001747464451621996546753764310843848646009483476437247283728552784879490378524275674230862826247276278505072537035409212675325666302686672618421423274190444065350220918880004608023174083426863884895100654282357884588713455327229127743719467590511189451011533192315363911275407786646659458068286440626008495742683895930570320105475480936234762055108838031574034529940104947674027007581704293715596748056805280666145259524334676156362280326715221830395298909533875639828396905630489044379438133375130578195805154891082283652919566663230300972860709969419687843038687787148474609627039591181189704591199194326650494222410744917636545147641992440555501663153935693972511923068818495613378411265342596974999355713855008788503226343915859414396506358975594172001248908478997624477544594506643720798443027633201616823684563177900984844108421797412457861446671793391431539106421106748952163717908193694157543129689429428876577745582348025919519896620480545499273565037067853524195016906833694620449335817858968035860259682400455501579457961575759265407415783156272191424768254180468429791821693041773316065652271880342522857489573971042135532191442708685267116797381817851346292154927731701694393579465590033464594144010080625311002196871485015560728114231464258186475934831095741434522732978069049520723514772858592695631046196260467587615799074352210678791797991539723896542774580497520862363696100889038734551782945065358753936130450423537831980308576918256843387076525783600542812379640166547858098126538363462694264172089708449275981696792542674921362118627062539774568075515024269303356433834174652004571749887234684439536105302251590304836458955361997139610618694371109264022152951308381020694455951919842797989925056398831666637125524808640936333066452125513504883355562324916261100338109986448655417971465686606786192409818319577765390736918689008267551278271848903052081423708753737053261419042425080552682746507020545973436097677845486604968669884076197755949915080367126398621583497450219424115734818994856452032550498218040909246097861573949567614666903023967288406151823801003208914323739956502373365916730759680293158645323120326961192909542559744511295642699572203308513996114038476497978920901953724802781966434489644304951002448636787332000610006912106195070515846205457347612754568949667707937241588101119304621439002777441593319185684993191090237251977373406681438858760038430351604578093227811370405247073804385586562293079663201069522036257282177167248450336072818430839172681125862877551531249785565808364649126375238901639059182248459758312761729967747629416145277328346846848506896733480108736019124247946045703636352192959501614453561946710163584597508124573032594799292804100353368973429554339317696179024461018983668437733593267085956359260348904596522847694437531921817899030664047919523803411359104192212544081440880437528974003506559102679087981997862865886035432889297967695502757066675528002530340081779459868537383824910307617942276396785564609312547647331772908164040729879717858363727297247190593244066825065713511454357061943846975945403922808130150399819336085229609154262199988362735735023283633707125999206828841890670364945769128838669314263015890041338586144387350187542665156837998550647772037647781807844482238877531888497025456705539025698116873900975213889499451124657454521565409990416808595065494876385410729869342049933562831495947104333261416056850387620429666430743891839229961758811292505997587587110854664528412963388727450958065301536737459254073481429660426261543957251611321782470880914268737887774188335817384263528649019730714192607871528842729920605308341672455743806885220118724854058724665213354668543276380355326701209651164308370401962827842889179630128046969074015666166570355281985932417209981618520414982778290479920182663332598166877051753482580735156892413515294883772513214984649772890868769025190379504581400136330924080373938051654781486898675261427347518010722936231636023134511009844096149054226147119727093238614151931263680039733561025721474605262985147964113401139422098271191864928791749339682446258438510849950530351753880638873189089040567307295800232737333398245297833036740347052500534182100959164710342335070815764382047618899135182103612272818507665083889111480776679077008007695861734556757790420346842612159137427745603931883039351765176902645042727681827714971614988797523946328428896969173820767797345691379771911869685630850026022734983258368437532240091290193773155299685255232699514403912448871214727573784463173144167361312238266515800158005060851875348681430780708128738851158324280735200398782069323763476326049473099142501520781398902070395821944333622721998172569099433601233880820760632901622168312237295005198403510912835291880088058523314750650914440033706762932366499248102835632043237888892363450385761556344955138966735939456590614725945904518538014296288842037593774027668873349537143893178867841351367873828086147192234511534690471829270742155870964056184417009771583768773108434318044636494632957338078088951291442493170291327225575504329663590772844805500775604366419382407534744202735693491657423667946576326654516981506576383565608805058136278663675759181652897128277380915319281809301485108916087485995156364952977896940917253157588085759933881678237954875794542491122392558188294579137574007165507385909888328844006643321069455063329004973735706494341724314933610288099530798107283224418396757793136702173563667146648431024965514880224364277186282728682924304340557271820739055668646133099335812973046171198620627443539157716118637372049979030141696008582654075095406605326461993887886042040996421228307471214246036001541027176014723339047910461471292041304374735448943131910776009841550151577688385335243434936925279657849059962900877327921124067483368238021152801440743252392397040889483632249280157817526433992565212859062887115697767689884587967345016586545443559450104116151281048156122942040954868556402594847133207391429243647958647420385946004043309090577026580255110922319222009474947133707874818192836230157968436995823544430944848754778887912222435006364835959278572834198826514887348416156965698378895936364225907929910384751731912943783004802800882048190504283967660403173199796891800403703329507931110980470202190794765955623774289412808819487509381760931644895598273192273697471721026694974775392566086485182147859994939456791688342467399981093781760181550348970813299391973085285562957634860017826226993766459146755618866500591387199816724073314790541573519049956252589242150191165233580667001844693183915305965801236103905368587336843561697091496980735599157227881589228497134094238487978089672288154199269851197321853587150088625374639325620479150266448634163809587822741679746116737929485434566765371502544635820229860388627238146361860146690717002029244990752555849236599641453135458239327936723290661441626917211479860368222230462573220528732982798824595125606554506455281698233269151692668427541640512492122516898519781639207879049394446665999268627842740227927249344042421276638901117205262654030883128316296018870480400345688391167869722255798059927741748909222314200363508689565361097605704429769423235759423506095790430378023954096840863248326536384537527179395604494594711792647516820019116648521359482584883730788826049654420970224821862488564930352461986617016981456222140541250774949307805301898292805079890466431614825815964856804088862596991522146804246847081064036059847468036031322196714682100339894258451284267415770200599860826299795258827210800580722433604465646016409775796968341875041950461335970411971356756025018933328559033823160682582804166547809368256727856242518882900014015397466425729931579176719464406402662762056333419952566269910770085676556184973032599772944389337371997112465522080456216514101131128401219058919849899189984776204803747470552270055036817790540360200280742206537724957481399173808443190279651794645463571660620653429037560538338551312409557419583478232547574795052574543082902902142875310084568219266476401049343993715950735300111480195994410849248362540149397316428307886143142871438688925135745157358460611498852332737553859118151098362888401537172405366160359737666976113963197616389583603582067568719198895536818502974647919122359990529414540958231502685914231780656256144611512926351325949995680657407694916426448342251173687985061637775541085572265376987301079598251918092111961431090527906381081510701862067977077820985755368455913465384674295050991607515007503491526414676904459530883922017130685323697636948630491874729994134012202442128571518961393608817793315601955531130329457969695488602736456230123981278461074336018994015590598518494175165997497390768434360519087441325588159707142320847916645028675739739370265686553369467312199403668334655721643733849546179455499684466416684071400777589269356883863388202178669857280516179759597025477988347100810261313368552331313025468627230740079423068009971816756625276042119837571936523749391621244295639485047694352847966221165932025911131062614386382916206942686136658340263637268381669293000651596366188749662937886040397944915691613989641307908117500900737365446966926261336914296017250268010176382765774394038828476732802053363141191447430777825722638902908129182285043109928463561417200991792315045172897074079091147518133319803890770018298090597206633593318587385303440469715413815644393523509201670213779788602670079508705015648930780788346379727889449376036573179938513353163568563175063785411151147694383215177834610266644676042396930185432287412571233292271153775055669184374517389197830919697131878478566505045094182160165857712131571035209343480779487043404093079990775311842776586955657247040707543806970768639399091757179572731674192477463328091212648664467534481551939418338911898192517431497063576114517598037498064444573607779404468480591231588286202464029402122803219419442272508395812043484879913060427219501845119276597608308922357191303788083136241333202095032836757859342812014281972416451846402732042928548417794312468489210525433873616515515235475699191908983438256748296400180140588833691263301879201028545539209272346525377343814447913056833664123333356412246849521540012476173011977234890578333051747673819049306336438580501279589876028286206427467031157506648506297081056155317379833584766591198323203444661380157148800146800654950836197121071778974193517795308049979535679398745827857546710715762834754196963935699793380596814232310737389544483793244434051017120266327976462735596295058222771621691060199330191506536404734365064197853125866795774640535848139443115465336611691443516921608504376588395158099832213485978942024470985511254871798655360436507719429113815717002024440107266317353113315589847766250233100067069604457549119178787206784431396165149309528617317989739416318239324750470047364637578556754264583359428256057081003638209979330310010645268288331363640170555457863596280032113511086945262841068827128478578005300573445154123750389765362781371036020049050544596631795027302913524148434370324379017394723571241463692957050710366150710832621759166945095395519519233288876405226441374739363861557622269355517798241957472651086464385182602969756164775300583679127161594459452606895894859638958803783769812524078869233292935834033225139149144558965730187209942979831013898829949367860013797359778880459684444831719646938702843986434497073968002280663621775956737948780537799504118749105924911117269840060207120868934186351828918642787246598952422587884408006217660747904347357987831401850107316978290588620261167606950521141521785088440209832508028441786140911416076079965670726693930402475628788684929894410262718988788099991308719287392338168496764989659914473592832832943730993283096613091378715707538342411656200252260051288460627658927508403979664386398457282270545423275289032327973532701995775441314038959983989022091854108893419566356047029848630807052208768661505722051124666577475151917307877324948650436060318415224006766729941566794171424406999706753802859971222336577903019161925272916887303305745462143524130846974247302349506837685087149900479965372257170441062565532754107356635317115040914928189915916929220679703862065302928034395423335624968821794142293937693934736532547178265627224180337151333704804182524548208638665281014133281313103553011248273151924096672657704126604328924433760156114576035174033285148488410542720507271404127214967223723989744664814718959447525996665422366219365782925983824538639212393730969221464549603386833963657767025740538792987909097865833976336378691044598728806901622756808092240606123101714327355891275321779226718886792997591887352477410795755016934274471536323869628970620820199640557779542999158440942640723740108312047931880501331999113489232405940810803661295782425058965464871508017048762017113925130230583750632380921547788074634761542178797813875864265360381341352519521653921821699670020908402298303354982585110118749401586005135808406117780114916716350851652633682781844389952218209813707619131717678196725774142113765167347739334290833782019432274846199900610747500404532760768583034983147167530315244791521512225391486620337740063332666758223098235586022525711452831791888854312392252666435040748442115389924832864547450836339395937705965652843468448399873361290482810685828770479044572378262859052589142975620802286386925093709101435004847537094307076697447345155106611080586493487831057516167001432991055639854594166509888533683588240144221900265948610093858809934226037413545829253489012488621573663827426291184429114428922685506041079386461676445349894151048364971862052301070254407539287508151674819524215645296133005852058814676411749726968143568331638769001157173969703918971093786518788271784829615216420732632041674291630585813415736086679765313523903181121277268535528300271311900420489311552946621554598339136421129884686233203034362654730547842507088603678698055298988767539284741139354630242372982565593160830097216474213703222421306047432399762497045705622755389559846524496050209268860985300092066551451575872537234645746157298438082756549954072395809962159538009054110210459127328646834364971063809217410403476762466452357342237242211684196260562363399437855617812498024000926402164434366649897603758848608984323407272215638512197985234014017096752129977815692204521109539010027372188942860652088670170392150383914102526766442574546877882493291164181349884464346385204345153559933152782618071293170342653006036192862323736701064152174592148271068455933494535164126373763138815943008282279233513642082560231894774470754514348375527075547791210420132361245694891940158276246508978661551589054214134738920560853629497171713617547224863791220964674647779798619035496287824321251892183408802308592995073463492394402709782851694414465457974264830749066402216708223213088620377878268377187453463044260021138022739278219371256599985766156058304965878678440879222512962473968472396876415566554902694843943605832647492627921954525954516449258226890235762367428745245227142995268902117683242621692296502835238827096043224368608004500684272028357068659457723110520190767578629623395707771298518801955185827871601474237840347614521259222999628716052195085677658303765416280282879745423307993081105385261955922381598999986763618532261032730751347311348208988680353136971471534732522300246858076488580870809053684813638684333436558379511497700067043694253449149886097048244399993110554266001445160525980247055326259500696533185033733767935723946354203213299300560012615132082630786990238101385775805698406860614149785130614254500584622135940711092031014392701887533850162105804246107867167359969577666798693516476292789751985064735394176201551783017137812611685804793928205149616946122361076325245703920368467735205482281052987965628685727154411048271965292137520054401204941043183617595611287806573830958326587942196386189374784107577346383617914663636169672927159539516812912158443451768579952054888005640353261966810569966046118261419211085271948964541273583581337758076223118479761084264757671857606288168662396974089110298838446016421924362267720594418268245313472240774352813574407093877415383325352935288599964590836516426995210148877285554561468951373241444005293184596260101327973075883615313634265622795161251112348392583229181037743666238407585414361778906666273515845589059808047883011326482317279000537690447225866450227397894308077127484780080548401280549041652049467065635730574183390874965269876114774499322357724474243991412315119111060011382315520879368655175806501364610136686080894236109707454049934638654274377501429206866888794125739829595264461791280002144089314968812040776099545377677433061540938928967398824866430763146013782606575024815797308304367120506085178330363718575733320871919896845766199721712363248155948868827433917594758842225424416670749893613694625614628920259428777883071489968680399354248443343184923281911521015307488162613378038386958585970943520750396929544773803597827528647408111094090568673092705427519294287703592520806253467453063267490492466857970147737337989939992222052507858258151873497489999731088423606288773808800397410960654081231595213902998693465449018314478134693972367809950887693024583533453155780835725511758276733233637193672505870920819022433798637138021760258681573902538356407673461064512025785884490938681038326472876245597742833367876630901152195934023533965822196785821769603048310793458072876195517114933662470658104035528597044692891995457208761718925730759540946420024749600515991765271583593241733745769439348396358213764484670338940013563014744091315197502597131690476777580370703652992568382898086484804302295383407996429522668413165427241347818530455017112978496607776044600613826850631326430087299261730804164839379794924374905491660467829563473538748687611956665574282014016887671693956794416660346222009364941755819587906492596994101605854688000831312835818858653432935780267819647522687147081497704634133578174349411728493282950398797146749191935389658051223364853299907994922062130110617288831187116449868862658255897447412135872033187542912717547388425084589679777691704262875520810444179856942590761086495676049082429708356901522192638048203746546812065610646196418270428100808742046287355922070399041610269627354252796094110146574609607566670735669635040462910452258708128348719592971964898526177073070533562262850243554944859771645853088383786846766436012307469563084776132006716246486877854543146581544408954900794273277223679784745082953123228458601394967543775814932415838574740474641820400397894708596227686037626120434898172094396445703745893636968347945509232321736513664131971927176236917485299956023852369194855758894833559421903652919315145675694605163695965666907749048677515200652388728005030586730496608728666293582839395960392115086411081146422121888401246678927567269085133017627144502167869936211604815297150800462354393165257081080885748814499309924699114338339698233782247257984371535834253760283524678860776904327407513709115685016912466644123875602973042191165073664418872225204372225923321652668108632362361405208318559323766792390906185858105963698955849312533214247062488613046036570790431395520976698573637147794378753893997801483153033502311094754098979074413038973766474797967893630401514201837779617470189239435055535587806362596395595861521099430000436204302752117830872745119618042117076173176421764701007925764343137378650265258647366051621468591535768343136385387622842952540794772550622151850057522645095834438523016539934212234411490751231473657648707290980889011302868234076889279290503487582703354533175688310458450434002277331548525332833908307288911746858033323134801903654275772294502870889113122133072297841726389725552937994671249811515891550293196200855275329657045136340355196957342210339768221373260837188250861745499734205201467354381068796818676272952871809423076859031946200547703363010579204113988473818689731249619839640816745884008890283839102883623358473436992264079059652304505748429667577319671998439587646941182523675723548801578275715313785632953802464951698634415485624831705828145029786392157198544162433335222284212260681919147490402070651664567699057240700213976838457207952065652212452886994147477707947127774957767055239827280024686254334738396310423381195445921790883092385169623016685514825774352140633140200568127154971235439730000192273240843044454044246748567550852775433999256891510532447665287361645280119228698750532786821472129500434748169964260701737477965944663462080208509222052116783838272060072110575517772845723553517904107626933961540621395424350498536065658156187563113385193057772101815479402085760730243644570367854148027876478311360644375422183455818585856622787621753956319911167355122469794675210960158644124454644953044462883067177709849041924096551423476269888209325538958360185645727882996783939160656686300671676951404111840446592256522547502721635731544274176416846791644881777316892432898769353383221003162514149692821409858113087097282588929949024366389256371035494451297256578213388022198639598172792842549219402944135723184870825072325080307797102575334729433154510067092746158179350634612461203955513188382092885391043242632281946892196921790978996537907474142961576038415937713388854247187924074549882301506106210575050655210581630644494580626159112821640300926296240357269662109170921723968081788948289477205811708663253724322180351135777520326694057666277161499984424141479563282465593735611687877375219813284749063141108337192489222162636872425574022652357086546729970358520876910544699856697606328274995667659810367079068129048163949696628246404434361243613947803405103234585721536513875951278616774682722668519555168662146400785647177982668969588612371674037345012785576415782568279595399147486162218224915744905269895355792012208960014064111116510542473927104644517316876136249961426692144323084625476038836618425891558029130796568814031517454682967565783143515687269794219870694923706526967600595753077884824334860645516794624091041479587112201092635000010327001185404657867726520682303608762225464163070232328969786378203210474298118704708616576372741214950942992263396918077196596749039676742387747951451738465758123162712499958803691581848917888052570140238737834278103853910923595769442147785572099184312789298905596739867988605569984913410949235973513295017590380189484139602523993318688751801369636943267597846355810430697190422974115191631194247748177429229346261447003108036675116816338193838895818136598999614528298972665351891646710748609013377233649682599357476871781127283627865759478296952500784579838923287546989951675499547232958074168877144770675266922228999008290572051916033269833883092064978113096084481473523721941781412954762908263009759197166364689766671737557040959699287900449022038335073647169771760602057358741601216109638247595888034085967986674292044133434255456345287652427929554368862331061100814215717575648516375411555937427508241777046929447814423057883612374704309258292526046767373761302852868317888186425549991534435208254403812634012672045121754757131941818705816604459814759254509885326213029113290181394587603293041737011409311505933784030283004506061544993833775128299018064457002685321882203002194391175275813618823539410585309187200660989953915960385194765364054517181196770948032928984888800728647507165523486232495639199472142509726678522007403304258784563746542046984672774163220798199753211842779894738220068839139602844655231924935362939385919504110948674058404257783797078450735448509974432428452428368104317898085808130310512755575317397121163794662386766939600545287323469514768050066173891373340518989497332432279734983946301646992997714459206778171668440452032622587603418118638264259041777282703442160918668501307999142580303633049327098679473360771289919853614179630240613905569166797359270268246719593661792580434420094611522325694992875904807107691268750909631707001600062090533672715207991236796919377631146848630859106358465674280028033717759926810381476202530187552927871057596874570334102104037500072841260708583197928834772285609008443411044761487259600535747815877212892615143917887173904599141485778582084681454822649743982384080730577186808050775350981206514251443438511672221222968662884953602066452076405838266055923301170686004008062450551721462840889121221284431345545791128668490657210138731435485592086533326950216541712849824910777599828303367084687628317595685716050567070578792352552358393387940638449741489181862882834785725324906044977482277492218115665027224334532547014311804613888890996740337361989433335078674562889820189828325331818983343631383019851207863363657460356032492250420569280487050434033210319859295986394438218761579479322142319361351097024807342569046680412446784076413457066178217135623065177779991738934006643679962750328169986714015467401924732172261296994769071410635576233534222607477937944863669494158969747476540566167354434992737698500553875391812306505436199070442947311989645644924531758915275621079823698758205588146704247434949619845681787208314418492555027010954388903701042473660402500281543931774800445253424334188525396534823515717264937050032207769358288381359597513344184576367191944700692870866387669920501330925364219052802652707894439863315271782461753018484388932022049894046212806279743081581857814427598981046872264028082944697199472258800705630339356818735765235403114997363139733623744213694169611893592006568639496119275324148435167502481798992166396389960318385679296041623027086060468085275747560850264746610064775694799540170599924651761427736725583190370140641599476637707535002036091710269389062765886635408499632728769425800192455285703926752124466595825430966726315017514504898062844144451994178221757786112647683753747088487439525307159559536811319501199616721012592945415915711912044034668723150454215931366023495421278107790116221537258235796730718366232549405920198841020175157170812110271671395741771263069744920172282782538902071300715489791291553355519290319634435998519102319987049921553408979590364542568788934869849422485646915088411227350728344168368281237041022478622337802502719741478878076149412091930533435193820617193976508244222217772254446403815055829848298272296781760599797016341069431811977890271218819729732252884827435360528851838339436703417002663078261803001967966626241232002103307420971037031015020258568864685399764894582820745382769437910630894415367369025918390251374210629796931085382464598095914508773344274012823264860721968303416013756672919102698752129149284689435561096761792196521661399894619807902551283851610428944468017016477942795938869787363070578608012749138424283448882218050338770916359290986421029587608453103390627452171087826880485021541919645220760959242917490471312192627549842220756351936687897745943347649413665111008750703664078082358147120001386039056455156415215352326496612664998127107957081332779560379829731281617669357182395498968419142416535130129333670474738583615826681688774543787071683726568054542268533048516523067675730385964405194789586281442718353713698702654397853336781897253750381572759696684130590808160905762417178027221666781793453976042605520030858859205932605928032915792654486698434528172917018890224594039625284841293426178365446333240963280860314901613638344512326272212556401551944309702105888633655510959102082799933653056167995928773548998847839311604835500062343585409084871595332401079641865646548225286037156861931203625005481881245220794049391886270919235646942555316536190454802352013066478259894048924617783351445300024782185752062076800750021163409116029786355115218017748766465002228157485705796227097733061773881676160823257751023058923245701113929596196759259672328537635322571339625278554020942676114716702442530593146174923866166211271097518354307028811291488533887184969041888832815117264027756437662306241903279829915093777953410165489281663185065095336444307612460804385479611645808890915207218247512584604379605020577356977623877202115268813829007047791504647429548443721271768932217364399242128676057527479425673942634882462802505955953881586499459576716910899787658063350347195816547158604063199765456548409305555241278959384131248077563254870471308756107782767432557551585531988170356759090709465945845108891926985551091122252331230794963329112729850988635746606612725934437530082300527603707313843155090423533569041380272656928389205720589771373565834339203441931638118249778271899586623039699583383838804645848745582222188397761096035279720912033220371281368404002164944407721478274316115543419776474372905487776281313653758305150137069640434433316526938752024367857501159752908907201330884530957958248888066707956291011018203383787185290450167461386742679255269657718008098665178983262101181005120960646147755615194793264362339236406434311387912437073973385781403030566092640054650643324313670817465464840979752433481786902861156287483778589830131136286114873878629696720670853277886538749694614940408956181153086296739639498962652399987262233333103946406231542247675565956011238828318297053232860742090650099497993392149013878914520010533906401325677985414359111985847518953218669159362841203470549390108667450131396853022236415983479736303091069397848241934023026801795616643267820854715837049175866615532310695988014699807530577548031562722139544102305345675533878470439810856344638834868581960549190062469742704795519076706138880242501959798942759751293183838493670882877067917715561798447244568202880601586355511215033053026651264580955821992176348498059081705666894551459488921872263097555429462638627525854443140306686132879515283716846295272495836267437349413629428829628255567421432363916791161972966784320945617167471395334402389273959269643010838985422213270435471090290168616165950642335268130453788030890598942429409065330113575310903105210429726121331044843289968940201403057884288477260351579215646480184886204301264927439242832775277572443558398325794333844580127463452961732834729092664255716649408039033940228551344340411816951989510721490676163558916383854959707729624913732699598859395687712150242582947725361726320052273498643295836147935436536408214239277192224522577751118723513852540324410065656334718532470486460973458107606260610336223964839933396672313212235275597333538837286979630477717900841032743525011953912474687892899115851940047924578144023048676426097539206442118084385298789917784785132590568017076223959685645086009321412123173677292336451082973823265781889311813585911051686671095695457350608819884267359347604812035210439662374315511300080907936315535773546219799567246546123351721711098229002970404710687046895698534616957893881224556546808468213161253639987891493361769637246891274090977663239730402196398625778614875945474631254336248892095637285629214532011071341898160109199659112794158770137730920285762754035090096464603028028846011600823396671938288525245610952564838768297321562176724137609182422221520176982439932812850908773868083458099677241902336796914206083468251602526771747972762524647926977436406064143326273749726001394780326236845707795424265809815766334592010942283938058919630583059488854376031848767826382834942988196312088656861812218091091347738624355802181686980973323366495394696298377598948254712735374801081417430853578329576614453488736315611935491188123742856765417423237176315977588985107510664274131807823502511133711190430600643052069188480466429652269704564465885862200527395140943640954720246327572104200070031738864528448696648329172699471405343260086584312608527965795881251713064002697722515882406678070676892901969647329157728136730003638878760673980475872837104881203590853199236394897739838926168381599108246773121461885813840440828443303000518650379595712639671758347542051537869909417874573661435537349476584258880426811079710933733557077038513074880956718812513479330821917430673029758489730756717259305811958055789444545794976878040189238385528078672677693547748733124234113947878522227791889470134216720675867167012714667678398269915059334252162743375520859299640806358639640780062183028757608167049167813185102739602482616158709372253817459024518991602917276567687927238119112625548312127696205326745231044416444089859983390993643373747383217934238965683616914520446384176320292292098955299615890225605082246828504662157993729930854107102124483819679846952674551856919270138784498952095600321100686875005971062395231386940338102518417046360926963477627131645848906782689122235717120363132542449424924549609351963450607045835357412318904947090748589383988640961170740130565633582205918698996766765146684627281765985861658086840966703260353742988511759492722237902781689315854411364534421080578303158706490729396500865310249559420534636192881599696236585766746242357729194569106779310972900822596705563772428435522183642590778123036726958598996788594560618424074250268922759288663957652379058480783902076515823115961906998501060539689099618263853705758348467632829725122351205116988282533271002876597487567657713171663238150448105551775289810845464257123294747532784516537903007860336126152479498748624818402638424567991927434386484278034114001350296060345424828861997401573738793707907712070516653552094613769096450262548530594613068187892200443684339446429149687118439273465228405267090289034914788075308555359352228077684347940636588446071498310278084712948008848424696085655335188972945016890516406137185929190708101503653044383351472396312142567649184486803704699114020011621397225930934870590475157333574086598640872674854232515816174933615596895209042715214657053637203491059400743096772282762427509347926889642158254476639834587556895480489928581962409779014858478503348287798068599456760096471104557029762304611452461030538503773215667784374863991686904466553846921778118456994512060077097805342302617735702729113350534300067123600207265756168063587270804689153359583998738495076608134738722895432529776962233882173196521071265934129582610149387448203986881179648502333738329385043516236512239379764141222293619713856998572328376845339237655414019804358400553819841865855671253706611970757807272480780191741324804194644060628631534001938008448705137967179170010720854820274571862219832616099699679076802349540952234399822602693954831423733436822618060909197314844415806958628810057504844360975194980246259806109352866206603512717077650887113273359769766869747647073559325909834778898025814990468872420272992415607602657473040500841920015253952999395421489627582565857808655286304539033327764037780849998145531066334248652357456371456545803545813568191928190566506122504835145695050606747883570772711831744590907926661936782706859150391859851910020563591118248889673276726585071532508296671611151212682331346851186677614150268446007184799564140201702887832158204221086674339510483364553287414576782344951738109548440820712082944126305352134568297274893957044016961997002957095943824677877692682240031649182234824508476899011606832956711020674090582263666391806497838128422814720788904968135539101225726678741879838287165960341480902890679345695396215578453017112609271857795148811945274547615342214671056475242497887893571967205416290160348427472408301311112139792606952895267784998967088793402334418832544979943427243888920254491522126105475923861422800557083337619051204357915971185551849007809443597210343124392234430402935369830536323710240141760148927420950662742795903354787897446686979352367747837256281336619536732284232391940812042297601124642977968135132360801915767292430186630377845566689599971060992099824706297768645756825104262002816283715400196455643266182401276957314583382039489496430690668515153542430969225224562309390612778344550143175150426014189841491536697004149230950913235296858578029396411110801293629565634284165953838876718525679824669060698200139094238461194798753056959912248762190779412225416301568127052409521622184530620208656612875956254152490077730314022217746354476708980897115806912033907087580548033912094104995816005869828141462365917191442670561248174820325089025807047713593274393797874229196831009275896162914188557702627597883018876344168841046293796917200941267951085653527388677334767099657236807290826537154408608663825134522362807355865223803337464645420983053889122057944026759646713023916728498131722029748904073238182791215251563809703641957447042907258862729420630322417514409900997497515778823863983935220426384055042990566984438208458111628993804308360492704665404996463323188469927501511366726640631663618160565745040727624762694233637847172471189156532644063777861297782174836787374081920004906056921187367305910596296716699418783801578299709164527484402795128135821483732526901640361691817578743056099309808434994267872384215120036079291530325690276564657736508250976535092341198651312435492547135450111824460913430237217135953546214401648578496512158597327153520290894208719326635162543747868396904676200478089325151079899832250984529109362951811277314180178702751614503953941617688696970711572717108024582712748709020246327553375577170696801068593136100034435676578904207896702367815511707018913924849807950877144577208379673688285206828022762526703211535760728935852968257580859710629152790072111284799883708077694931534987636150598940552999165880196273121526194383466624893427478290021018136039823842218387967259285839473660422176126678011364933140684512575307260947726826899598243428128203370305389395613775355648149001098873311639241178521029326101990765309916313641563503266473772634015347773551050392238657814746002503851387959012968891394907085266292101076817229567248990270631749088904758712131906918274370537189857883737193438406405961123054828211089593502113242976498038612594909258567410488319762074465416747219190988069057370691175861733599986048641536555358191885898908099757016450143468590145254415506183759437126066574394685236977120426066236337166457858438752860316622314061431317291190278292356245734886560642527295486524003186327779493295853112650857233950582522768239503436133175378810164277194940834800688933171949033202334483353551141157147115297009470991349378556613119816616276570827816721677458075533768587715427866447910055004700036034184863668471600685418710952177737704343133055899459579922347716523705125716005385745995865035341347443786339881913185800353623866470183931141110798365477140725044617798275192464243192367654156007948963194660912480152730904630578934596776171449462199356104826243804966415036607301827405566290550151324414109183788560892648242922241974600861121216222786010574849146628059154803897032194809694313351393029530275763476253807382035089163917114886923058415824039148172988392814862183691164979770516097067007911232520084161777070854663739559242959100930907185700270344187865218318363797460897625559424368422288292998825704309846736948960858156953150068028801279786331991822099327797332063657789146345279035181566889668971833219686631890956497058280975809037240293014355725611501984475411352881363112015989341298604430952196230660231331188607232178034833088735403433438823518732943726716308971656524737095784753195308923787262743228826262255672878911260568154805807422894725335929346427610037801366377096579945601195678994579314083700370669880325148318915299814751214074541013048646285991002125591562215577904016479437064221961820476849329617565409250935523128027252587153788967260531578587189748325522608036654717802781867081187768371814462513414730303159772335465373118805700368276352317710728713956800734600858186618424778831859089640561400032800350021353229113807757826975169725070532378533340749071495124892214112195682112838803513849081646083976205265366312231109952168807824641537336611454909996436729697213132525365600052881209081622834075393792044190233408427426121086396616763309025682201874088739498872280273275925787865297838674772357621145405354506213476660957232143416491544998602555680121258585653925663873256691432887228279076832761961784877679364598941295698142049562762713033143279306737214080494939652305649670844052066435594917666115975646673956786111139689115422115070666508579715884291193086464892704361868585481048304486663591445641219085794142625567093793737742442888857780744965625532850093190553052205744135931572443036376883195358000709459413590083796574725337939525836579572128445154148172197481082724171705505544251566950397705064876378999647305551298490751017828268943734821768767966581983999698659583979867914469832052455312595075562309205250889998129330803840471518681195510191559982143661011925604162339881355242832124762207976891451333718001905848677287074509844716468547602914552502714284783359310827886055225835954404246114986002703963677868642984108504489722295451317988270809186688609691954851382882526208172581593225559048451812063907583647439179827165128987393855034340169765132864170992200087089820193588902811195925050901655553537811482878599231547653636535844818411658996188767253467126877992787757888976314287792941404431081600529595310105967961529128975761183766292297758495311440102127665151116883699430623579659680155071183382169316216963878287031118975211595747710905350670901920685618643893431202474037027649622500842969202403198414027698809601504976485984888557956091989884223628626258881642173116602866699265590146866947584362950797865911129895878371298883339531706150413757637049847179057922539611547947338019874759652442226159750155473934988507191284434889981546483024803839916555344683920248773058162730318270276742054590245379921624762061631985659894821530246024107018554840310757637856634358912720586286572970578063009357674438193834453061702455612918969054023947403093732012088141463000770862961290394075697348579566890621822557843538514780128730170810857489187603961397493408137859407052165644447774424383027444034177511450291756828708494136955938369104249529080833504413009366905464954633512979432339848922102315072259237555333319671436023390721630862757651838108150197284130738128678618845893888127775428125014006903341517198544759683810815699170996273190414503044408166589463719769269558008391029350758666606529423317561973284398254174316827321007567308710153011833524631363305674049917479031195514595801773505913854641458636761223317088175376497239759486716650078605106418815595147158491183673219191124213102297539706382532779943892548551737377296273486925422123370419506286424054091055796307238045184509420227428998296330155424328528284788344269474024791743678290122334871160491285862399849639689260182942042256910139883165222944924605983898756624941242914322150072131116693091097295971823989492721837418519647789750738996236173376793903066892272591344312368090336989374861841727241704927854222237496261173734287804232122088911805601238747626370385761175184045017153055536206645574850293869454104021776179040877452005355976048776487123623280730275694734828998630120554515213244736327371843760661633212904982343848754461371600325314394712303412466615927377621803468942555816860839524308380944328301911102906566712516706948653197994794321366659346401800015017604838919944838670485638916036541735877026209683472579184604754664824401565356663041635403794159371467171900472377834029025268489287785989419230427599758687078114976072957313926302653442130424648525559306249940331279567599847644321150955274003807238532214681677771329016336356180640948499457944066270073048059490163255624526330927554385916659712929876277047787850954971433594120682708547402192786909897842534535425382175480961894417685409189984313563503279353642812075852203429852010887217048448886848915625590744292804921884933959460028525340920363442959384554067265913583520197191045028103018162232482173943133537646470010006565583940106181479866518154003649797390230994744674884963075472046099700400568569597779242039428968918177203083426126833579298743543731673215956189106043801375568968434474711398618582253162019227321248719048372507116981998495239750995241622822582065216268975080589508175510091691028469389633789050163305879002720885813401460162059867100778193595967456974890126929486383689548193058895294408198066468005874799941280634320041743508563225443908983748821537542873796685483950682945149328740975912973815892461997830814209120091106669802334442148721704593649675843053671214121735404828682641354925014208733420836451848626848799733695544111724601966835324166104690578904510094387435452264184223943100942402587232075529561735885561957688701742186531593151289664499985742388995920334338513424441461022845022308936469405514597343643903512690387946531016291322256250818632739165565851914013545969353340795594014224003941584508046725421911270179415774333562149118979457945904104931938320372282391677595939013429197753675084835574406993879388952409620792060209387523352416597110873735182061084076467666763661795223641909476673263030988263028923142512016327524242977545908620913193883621438472958096248320460464219382413453425113214858183858187237404221903796514723710307788563039917964965080262150666187960377512089690400958497463477700397766049460872840053488107727625799387054535392052742946725276458265383748097406429542043034794584233233337776411383333182980044142365146850358757856560950294387410137174997485813652078302320460116316678662350988030081330776809059745258846844029683580383105349563206395935672988714344508191201856989144197335480048688214103743590601462326256328580002841124630008846545990411827431968813384492581449659550262684437917474274052365633038768305401280685907351508174396636216729129441479913199739055817662116725471779476537212091297414508027183861735617211707019162039687898949993503015417951117731082133742303806020222658430787627664907611171467543580059088987553677896159203006583497210979794516412154944863828822983670306472645481921277265142095616415463720311274586260333245220541768419748007030660591631663355293431222430764596518477461288489956866877787060717773732525090905488171060393870677340340104005228564769741573616824317774111117551994052962489621223896149085405134882168597630367598011594311197755395317130927752203190297607164203963439049607070550257707160287308068374381850316594082803101311616970384845545037480092133269958735568643849007147806031484060355244573494691942902263345972560076388559442468038572736732925777359324078671301142301750745146117440606438460662737337071281207021007512637249517226959437838668418268979639487396758243184080132902081931299578403532729105597656539712460983409443071922653351926540726479468686712518792941198178164504391222249565617099219580246798104442009373508956756757815101872029221973708244046464802326043908300545076292980472992176711165939786742653207223283314681893287744730320332719532533245106328731976059313715148792275989830205538584431362207264522990642349741536328430962798561658183424499024920765074063992479683240817129292422415012018987906890944638122576591370129010948738672152896039862082673210253888330047733411952570781544768603663388469006667715464895366003407712089934225215326499394181123814903546110121445267923259712846103987509128460925886041374033715274981856096283681633485556131244515264564745577943304427036205171396736437343459503959933311768285706870505832883303641420483305970050747996510835891697359664941643772830731254315285203779884546309537368025065534600645319943738770099989666811916011742592963084258431507146601911361801082032687179171120847531203947355075422077811434962442619955441238452977063076932480111107500671059406050195076626397321841019970079718604817084365713556500060315178884454241437104716471155569957898644416172500737981343340058789637708449262641143819265180905707996467288406479340135441114447105901739698571691027872984310911897177934598012380853607437042976732152419460417773503253262934394481472142269795571743152164139387492918312890064192202164346071985341065743374084980425720030618470177696506267572557645933948984517592647040823338522776893029183708020023973908806216058962839206980762769212619245436710187929610819824263568624143341047813200882362883138878821802988612315471278362710017582893789950989470250917740001299260660174167902115739495398647980679348287350681570282240221613791575326546626343199684417037603889246089067252388682364308273027245859887071955647424017181926506319390825548888882509276950876990494240999840375055364026575097565941239956955164654925313600354972350579943232854030228066702320552359019724970360931233496762578785406087823135984658760154872070565487068879547022067947617487608531221953403129335567474198264189614280422509931148810467972350503990665402054818377471492523800951481721326217846980993326376334961534044300090040968492724481425556413408163154870663675188172000445883553661630325959227972664097506722435166616952236588104831489814211661946036700101455914880779641430232336761289526379734645011263544642078153032992758278583857085399927763235358996271497922151015489716758669260267021601349490382937238458980147856668102380462211943489692636321907939811198998910820066839572015168097164500835556577339245566786608922531483915085759555824256168338401985461781439575955976324304479363651848739308594079942149471515904510714935481383134401484083833974622145097144642712540110870502270824368187579065411209417217354459839017411873194923862432343866596357870294064481127508569878452787332559335634057984500666956263944128141752440761330806611217138375947140847545207613513685923931987453794952232024228172132574147404183716380847399331264806501652292812788582851205650172326569454862438427709230782008216030678415563248284016829604570084426407935068093852216757827366255768354248421674013927354899568159294977522017896683144055524863459235310741394526221481639073237116564927437555642508790530310134572393130518398505460725517164852764691466196838304404960696870192574344302107137035594523475111982663672265972208617682489190312191984289712423342921696379273610167582256154385699424345112528366004107266068194103171354512987024080537667657118527688914354914780318143931720619384095914107084520812651295930606392524533319782044172784017427527830873083099475022424563352575782181613687167974547528753233602713569767019525361870141043995586771620543761086969884582576170130395465134787527848428751848603794653358192937644716272160713925869262430312191176863004373283403927370615173500478224542886387671330637886851375906945607894947954160135151573731979894396748311992401258129325573450135815630396772754447260781911201943167830139117597166392253201418810103622310844876664494660589521416299785588180338739407837400918610882462141922703588859127390735632465598872139805539184903586277317875966133110047036877437290721591541364475772883474667779730225041830391505944081920677871136503609285932942643436711925984616449918420609457333583256538946064621807262636220058189843891384970791675039929737150375094545870174993078912264063869967011406851404857722587158578092564697943810431770216854592204384287292027848773589105973634442707910671756920794249877885601600949447872902774745987475562730304295627745740538173861231100749208985199076745730171946636937525210714460617467683366509962737510906951604146822952181264061274728984408036498794769576859379902394956665295825017005784577181094593110666958688128275824431328447021374987876572796719535117455011052439360718934125478456502176944237791779399977769836522291691880882808319132400026599949905984352348651024372097121502049073787646171049531373064858861820282488233897296437560820826175287120465466432545562270065386437555553425380397039959401010525453902912638046317065331366698820601865953215324805732288234885314637910259286021430887246011788192079649493898184894625939710266331130797212165461200716376794742114863642424206271494104182942118395250049198009220439795801084217365573411648658603067896086297685967879954419031903661769342117321110685891079834861384295745240376700790048521446499542243049054365528834318770599842163469177524936277601925621720543109933066235039751073615212869293170266385385710600324483619417491116686674161339398731377547057049134938583583042599601687059754410330849861907956926997612446305335690196071516986778066114251044965632592666880769271402719099727889800710227190140259671732959439745622006687958741417250211981220443643666240008256481578669985107207689837304198774446330685059819324142679317313936777306599246000522968510795487657669932400353779519555584581569716511325542982881173715816085727805858633514794316632108654607657489883395252622433531733933164721329687509067427621383526168419668886821507631626297700852592534995429184555375597854542922941862002987325687940602737861841272995086754713448106676054447162216717685293322028458390196196407157213720317534708763113103507908903489108475016336861644698023626526406950053636636268878476504048845842668800169264705146979120771269458043745891161292235371630903047904043694425185070425880144826867538530955331754048287952690257649934822112172044636663755228362355621103496903582935790540648513378615459122825070432401565497953134771596200981948868797363472408350062726886274062194222156929809050231017738535077678698775986845594463099657546266641752330096205024478519495256815932685981726001785725262116502172217629993592322085358747496764826458101553957945604385593057898207391970652904589615306677914403009886895873494270867040864272847669257554772769985138464035609295877924640803203832547521308729057081963936339069432933179897786980115658216690544696428604554516894205852035883824547489424142594687564168259092100589009687725592991387805095594013397888253952150640667375087670868919684503302408071335812287812781515127294855490809369298758668134011118976821765511926679516259785622942073510948876176073027650198558862050249011457734458549401924147863736724340544471273263049788262617197364555458484853353301815558658147764982073952052268170599301453917481839683743572467037139682323554839725889385261657519357134346321424018793847974858230897719375132664605037071378277196008112210227867277422210388742209350124774188892335729127623714790585847497753904512773183180232042431233630325283571981980400081708157279090618206922932498574165263606165350955787392113788043396115809468260614678388339714948459480388043764818025854196495678868102686787477696502401712374985643912726798717020531832871168465100791228271140404721454656021737368597305611455924468632086920660633586042722119044095255817983621856038864161637536790250796840575994339272902277334590008082245139942925544820970383188936335263361051919051176419495216672420676299376384577727322741238106961327755591263214489562539472056302138866125186887910592695526127490566035190661170739601160352977304840039486493743550601206110225585302431704513633609472873130914364422186255096578790354564017504319872385631515129785261562832427306728252970892472662086969409501984893592443026129872429708234241074254276628322532754675805449278595836215110683238835027390855242314770689024676513380914870237132661246622063612239603385578633120187080074057053556646433463018453968831003702964002829069695343688983690350006776385428366138057062436892707209204838535169291777192828411518861607039065624319396312619463075812776370850552587167089139926471674690388927680317757573102939478608626428194494197423011366480549727506346928388470305276543565044469490629908300039071564101518091741986762782813443134779472648843049294078447157845575523549783513411085331141880485851969148052089779452781246699061682518181897963667713305627050191138516157258838433860939461649884587662470083622233243615666730834840399714149207237417554437162221873788248037440820099764291209204800247501385924547116316197383521294468656289129158350566518707716468025977218656871609025632969734080303807675166944719790944240910336223246145599133616820742093295032675506663749121969381194729237334651377302858579922558932826667082409104575238343837296066963626411105833759077848040389119029546337868233509820910354173520893359155816080188260620348451451333505708525396639774991000404736825251533793872879026128542205881779059970469357959996459676252180237089904672707545771742686175936158867309145661974108788682952836123500719205463514612645606347573753166394081825401420071820194077539279157977542938267040222914440504949872185444689515574073946300291427763156042542548516777313033893244670150282741555605085657114525962563189707604610325141992733366799935852083761380438719799220072303212628331796182881667965099994199587252406543360634702632199033390850257051964996854430809576442599922599095061392895604343527783085321793433115353186555516636747070982225303683106579145098869137175207782641873321753324612579925845269914773723256299403827153292881707920295568107050131458549594316576123160942454676088538167523606568652201665461204529113632916789182493433966206786401855749716532227176712291636398577314284630888780601139573650162631380733107677984667292201701984996878684050855594171947684015703062724766179570947235671707660594655161820864277366600541846017617479816809442884403611707345650427974773827248310718010951389839452692871369772515939250400047346640278495614489935944104520258732246579444515322694052567040997772908184909726512743791404078254501416428667451483476121599513175602173217717552333500849976285640139302996619647785796759274370667102283907998205779788927918413638119057884094667993012566412572598457132495085670452584651466923145337522696185238826051129944337586352366557282769025587404712326555398214204764236823896716631933119753767038102833492299788340970475810774723126375635150013128677838306256316998829403499937223659934447887192046878123268744820982082280909146830949159002483601022215603276822820788032846501509558020745276801111962220381598026961405018787296905171117186198897186022290343695092969500130385122022513449858194855263509834272818444596559371594341613354691088227179657450916328797951023606873437174215972992620531073116593243821728308234022675424657839555413549197744276954110123764895923886856067033923143764027716762502619777017536888826048289645096903005768586747232189672688417671103754609333897987103598406114460723164337243644308342249831851813822062339481063868755049688365100090934811504659004596050333322434344997485162609247015103799867827766069112689836285361582111336619538891944353245554648489443071225318717936604043077526943972025049591795350402348169195539485735378682670715270574564157272341358400589434713554308673586447765435854824864683038336669897402816252898646051399913231056455753600028368583364568617039187676636247602445770252728361207033873039757925451571746518801302234125959305461674713240552728279206376233481432903867598392043640099572749825580240039072494595121465751491489578584676723830035085192914219476221133174706008218276359246646077999440880694370886579091113341336090541540063629049904952331442092519382063329838559750582469122863119354718867457217336610422278442195507639110362224978600986380602812035020199979708130760581973156340869224391917817484104395082920599305944555482932094661095913236462870364381322114850750183733698510804857523947655855858649249162170520718755894282749963541000041891430095682554195637165342610510798369857433255078481367929616569451966052988295334770666070156804205027780665836863436543632306011099533265914416369348667580688075780333856655813938096773129307266728957459328391141872143818343295156997573735619063508012854304855265742643614555538417983818504167648155827265440103691866175495826855758961438741762730889702698674042161096377153141046947282908897067920907139852355578973598456525909490445825091972605496411694445825074052416609773309753093047910705031676020506814552357660520960739334738099342698924808975446060132420778300527165779875395948362296445542778964347056740364417014393886006911054789363117511056771400524232653092560136750444253166437601691622610625863017619825094800311024375963915151517797547568782630403125334297344640237776028289802192622945345375588943448027888678795608820308134317731178099099077347958425256071505673298771466063904056979551632639103390267972754512881103234708128450285958322678477514855696681921329675856845872317184359064198848366963948125303993706842441848304193077596081756333850384382045396150592972181707466336244500742672332123363272102277506085136671722856958920784186981213019246287475806201183317062143660775192236426531225698346857646220870808107228344912261926556333271197586777963745905647289109866428529491530467532325885092019829054899995267092111286028841268083234451239693475882508010364386710765978295076559692356825898198842939967107310781489627280363233217121519771355089757972558094752416704038174859746509007316228287116875419808659267535065939661030603418774467501139216455572480390007252552036079120770953446458215190116514572043238272445224816813107614136425195933650837918602036076335008027456339839527950741622315807204549019224628740838222817377644955240607682211192498006521499718187389674918774493608085127307639699504085439083946565185930620296061771681373414666385210642179111015891142341042087578794915238877358480690531618227558515103995154901756618511756115360704058556400504330855722647901898226678978107551904136454232359072042071092554005030431146465239078795920884986548594641699862639485323309213378299172028020771266479352065969973876154109394677062518740910461069828442995954994941622499715396618046610197211925134795190678737669061570426705915767054804722648677126662715147685781150315200795807487849491371261653586010407642726430557801087399651371227695075502683108426987757157434730584194762664133883568184930426124951582296441643455688102099378755974178710788016267985439176098425433896162131063475966445411456124841531918369364515587575504033703643167944789608011080956737260243096783950076152439345896285833859424869399831395506120540398062033164237415065497723566864362713905730831572925378865395512692447555150699645174884527317010552503300711083738482092177481180118949634921623547423903037635764258552703543918279856965526022799782959147293855616880029261114322125024439819087599972356770961256863531014612212292186478306010596356390831195345698460208492959232627892285893336353200492374424546002600877001031471545514654260928029298171653681601498715396364034098590270684090165563451398968366353427232882869730981635606066714555952100716199434702611600908853510950916803713666626869023123937885322498087063172364014416717438976208884381385987308154860046258527202689891524290520644907638157437456584032849498069001188983788410507361514824649814932114521951243277869176922277830294847274835623279865502370370634531138143594102502324013149030747269979095793117749152625873407733348872867860381331671477835522784496851241306133443081593508989954121405103480890233448837773224891033358506076564101131446646946639920881895330828405920502581697664527568501246976102679567488082365258572500457948455277396473550237554867156801952064075636997407441018479988731884585477312111572978211235921429939697749158344488238850043462954406800549945971876806812172675357130765469384908634654289500040568670347040897708837025720962761387070099711923696530359744525171949749206576329778698577014101090897445354250666136762265348763900405569818935856706841933887572858903354018014074394634014318110637476885828733899219351299052962460077539634342115901181921492766699533300032684994005656462537894656635247854836983325197802955879722796401499300988590026139488520605155406743271010502534531539797433552936196099397818899784851645399924689964935497475830829354336394064889255790639379880638343846776671390198825519832675932863686367710653014411597818458924119311230136514320460321220001264353016102140099127067046396012265325253799602444352384742800566246850174033284357429661747387561169314176398727700002393507481847403687891971650945569706734776393674630546666502065886107831697578993175550873815806422897496249277052174503427456109647712230538972341290058843416936766188529600462127573969247566164858076128507237452571834000753676458832410303943977216225397163001808346473587434471359542552710494393724730891264132916104307131611653955051264743019288441241227854454398310023330329138709831410673308700789862607517217419531500187737791021894991929200171782373853007331678744372702392482659208328596148341659143106074098501543486292636298310759991021311355470656448512927961255336108264245980696443150241842599501953140332121344506427368287509701871728647195438667850399044782653931370932238991422251073483658994344688393606154899518509975121441262214293267228204605374406433515220535423865430983462725780560232050552416704280666461386569991446857375812387764918910393105996990285037377796503361785559954802812629719434176334004130273182997789961463948364607093139118216252560719999151328642166487615318420506751797944544872094854841385413401994837709960775500573871269320374572390727089850694378459534483823650544497575584392346599620113270457950794755471088103876521824369656219734206923535426537359808168286530104873559625186667535701455980333518918592211684403322666757655906539399548604881444930260602836828778346908036080900523655632829726416869104561070025504643631683988839913331250914710485055967531835552891727504791358621588919208613492404794701728451164494712811708161637741407036267843170301771262708958948542720128127747025048277943750452457954862832329464700984814695927500801515219866140126276298894792346474450973147661243950408667150514644722244214008361834182727440424081770968271177131217975751133529247415774123476970455890936936212875455497340926193425442240779000908890481006754111743918332579190140784885329182480276898531491770190562044626070840377037534558012951633691602308173296547922916162087342098481670288017267235565521232702684342089222954088463014600064667543749698550151512375523344278763572699268470492550645526758159250461275694761381806358619061869507147775443119149089660946024949958758684858534546041558146515258106487539628714552058069408392049383742097441725386252966941955536265908514754942946178550929259167607401381523267112715212508408582299793291415001636086191291846601127325986619801046742366161412068828064279605244422979941174340735403888524782237160391121596199479921466367171921258982700080697078505282208543294619446785593036268959294600294005332674822365525506826546806101060344826809961660455927003793399504557731336131701132138374771256481014026209153942098159458455884731483225461239352524512955432798644180030640670272324455138749534809085856852642530565328718321949918570276737684872232359987102779295277148085102845351019027742315640497780474109857705809005533769649590968515141795631050498110811466966231651849212702955790143104320595642532980474687616406842606772199385477682638065190324579781557651370918079223856628598824780052585128366575474222875907538940926191046149373672024172900125390458558263851290994426027286464980908162691936290918582048614525158701818647263831034414659058713194041782695232346721275194427018781911763949703039827994174559060645253326487339125371721461555743842096498605439519681538767687032571830176643878073638634556172775786484896669661221013338651070849274852964445140229121476715461846961099153366821537145916425762698768883451523951916435606878602120209113173010029456567081317618301156794939690891971342874133157201381034820239240205285657124867283462104165672391902075338894811063372918287232662780425580380348840056072868825698971163968177841444608457434572809108736334688916975545304454951780169188629214482511829929158285000517789102304303241575647170172274154239636668701024895845266028211669580900655210748841966974736550342258799698554704251997526793239346495673406087812532274506156097101799704749475337807054872388709853310508916924418319619404348240203316764382624082722688535956843570155573634550525791176014828061496411668215179641351021248475130603282881024424238228571079453165327891529249981677874449209309913917271790197965642175768169828716519665522716857840620934067781562203510079619929319294905708886121810856615809020476272967019511297592422808964180397315561113239348242658561047411808837527203960060870406429356275797018760130675874509808816822889129325279659456321164322489422093380544231569351484503165922068632369129094049071305921578512860899823138885866210033603466420022519904278688068950293238033780128944518630195292387010519434941036701281407106708983727089926143491416896626423404956410126224784877009826084785804833517103194472907172483792581857851717863921839713773772989103159586178902820311152990330310024876141304347928204819305925536183037626792602917114598828659628727281383272397144616893251539641246532398799257062138101852661385771558425467682379683706190606551088323947708193523748520738154802793655607880302489821598530101808417096594846524109042201867541915181363662850881523511534285733901464804367667672658409533449567749680853991095224967075528314032903391565455078503366703556056015967041521005903312338138099496938338472146642194602893221281258395407766110508433007119542368968117082318704770011950792460615411030932970812007118902567440339157615386766911223414894113514705679358316650278111910927814746770455822605399536684201073055183319915354457830910343810620558881915101090101959238262877349654018583960990607793688437601717611662669260712460343567597614535791303067130019131604308240650099628754474114480233547847366541137428733232737451186198546288936594167272088003561170716804339630830486655659159118999769062373655590957960409951459658435435164328120191594109527854681777860480435502268823178770609409167597866045667735459435368001863401539596750723291878214406351994099829867439074618326960559753277576839775808109436244688312421147802659262188252204279328672682615845467618178924287891965176813070562591428655842952286548026704851095820982260683867003636346077561022373613340047391980394866932168927732655639967574701782905897717057056528571516558277763747084798084925977245442713411054148592813182861935912004199111992680749491083681911634488237708332963190939171495855341156702787450142329369965650295751893386061606782327037515355758812781138600131628523463362892520360326091471366280147053435977198628175301651257704740418991706913430092061529080389699374585598762330149920301952417248943413390030324977942687626859158624038377011253382248970201734583261593228747364451101632297563071248007834593089426360362048524454420134056098500809050582444715899260454432361537655545809673120325989782699642621577978136541640490086832409723409862923416441781715976765051349221990078678349171219880096200706322487957004071389432058198183085819555852053758334590724711160606589938488465074544954846105893015830572246311964400080871467833640044987657151595111457276949938541298382138473024299416896857887551091353671833386761993471298052623031425596094277706284905957600414711157551666991580738372402044115706337779570598935743060084247875193705536675262161601854930591084361151346364024713719693119559497035370044001376746620254264474126929868169251387663749641937178543561047389019270031237489146722617196259783852199975875728659720741866612265277484117304555210198453422121477347245932675298002971956390220695541106474721732686869579515424965807786419698214903310898462416840991968983228351036232562470598542904715208560291833611942688777670624080785617265322073598718776515336601533988575546943616329158839041755923601593197687620600169545324003359158800666659904139921807617038193621551191789114718914409164147148336138483282321218596085291931746870426602668561994620275476835328598642629210158287604476699373374411522675830443751614092731463935689223946705990727205150439210648458526549412724774244029559081436789880644000329310819297480929600801497598211231283320914832425443534157863602018111060924040930132792038932530095233035879430187032397834580652348166090124668394177996286125722155777878894937300705233624625436677943979412275924418863546251125248527319436344246970013476574086236904212829716723182556109970927096940769830230643907817481465076911454404920943580734650465157152927398370019678618942211330452946907084600657748369097471956275955653944065493693060536094980167695525252591678187439856737516022980374009290119892562721930530722927697172924512076206885741380846456805322465085808782350947278709746044633732406058749237258984362436112681734172314168138950386531624415373633478961639570909626840756547204530375403205755202254432465519250456397264370873389073911340067924578441760855951178360693754618962897398995863600079334293043155214279120941757824330994034096249970043566229476546631340559792645566944840463589884797439489113166625932142341448902438562417480959317788238756833327347993627740667204578331373295530222817108765296524282635719015073753539525946360672250715614329618907857705102645416855710000237038503865533138732786834021945294291281085055549674160701723237586246039281729563178974395096068942449060863063625480354871812835847010128771374893058447617459642557709255402186302407816971630233140088023250310904103515161512669655157108694598331036455216608982261971974697492646275801059814955277185320050138361038093943081892666018663369283850189827210740606910475879216845384032481784052481205978279099199330504656687617645253172398545530586239304605168845790894797359370874911007267487894957988553468204577480840826168134109362320002803597650824176528741745698457590327639240992408154628828296163682457163300971388823513939242844854225860371142156031602271068423656015273588941103700032964632938924445715189563764397215523121335717835788793409822833091717085431723232353252072874447936011871382909810650406440311846897374608544966898638660174119113255456906041719502488781248395663791676545776877022825413180037862734990693439001569514003459978486630287327231338228091670649634345161714764116913356462002743224140191690830001555557016874413416089783656418267463620306865396284304192330291909302286094878840789899290458364047835541499383919604266502676000794316917317656806072383668172231418991248141021264165317305445587397797774382463724653096948542239966130301776113253480696763327064632288714067796001307088745919669934091474938518205563610436927147571335435497926283654302324066582314621424494757849635646549619429453859147979000123474662275602526492158718595269984980224905979487927214297840595366220351769341058814788694944200127452605247568424897212506447882276985801133898256124950762024732136505306985321053583278366530450558008766926126272055055614141347708426853494748958208449871996152267476022431528897951732334895895259121873397343119367982718484062430281008142942686707756235030417117372918097340532673714907326313771074501635850124800540060688746012987101338164816980186722696071030036100052023172710164210106200852668219592489909647254941295873960189060584420328668209247447897693148152425079942597234452216075235110599791290911977309521614748986516345408867974189444258546109605646809295592431346490120165957074899407372455736768153909209259082187437205085021005186878278513184158549748755906072485382911571277883065918527996004190605194603731327307070233256592790007207574010806101887482846580537590637682383191368970132719114277813276947273341323430390574049277688531077412602341733859897234624677521413634291102442017063090879296309997570201080624496995874120762144342600335247635668854477523442539306564468948340118971556625152232661830648812870902531749938643189907533573782919963346624531174865026564562052575491288394209853394847934540061297227707573473389889777330038786152636614409267808598738453915045587482776169235620904945029134252197211200838571187390084212245588952869516060218009303212156861869517280947834596119813873447581250623756023655657745038711234350758321359942789913098134744303586761490941289196522202171040443709978685825078205398958186758629772902794621069594792324656855345739831231954597871338057341895463615340559599172156308422086995317125519185375006564325441779280852611074005399123016409907196881134395432318233641173363651848882568975498738124151960502899783374142146739156721099882712198272385457087895457442589993916740135838009420629943519094087567729188584210820591792811913933206481303496627768141812770388861004004062976560523011786078196515836301541427933807948049330199250184946979289904110558596732620903010562411693880168291588353660888129065386519142384629387136504389297876754148769730379791994569357384140731653140354527114735911447801153571299347147185588449665988480851804404518015346888346815736470454093949979875005098658758191891544457263263277021861771623761886156069941950378892202692065068682412814778719565667582969647714318933020186037738686448175856605118997974865767958566494708053577991711687022764628322631753450201555565659067628920735479556975963253407225273669290038098383704048355115420779618459622179053605212735902911613598770855194817652402381590257259704467017517785037873242479243557360658980975804943043884685100551575613406086539606032006869808346998118454271636715874928911792130626920931848773597087102052121761361140650401302408427421127338163227193373287676276817787987402750700511662926696880492164156330368811029658485533114657713797202097435284950457198298538829162754315464113727272835699140343525265746559741866499365871214896785861027134964513052241317606781139358369707005278145924428889953123459082426911463141446179296000420063363674094219091488284036576523047105314931772472970554920635715200328586490923121723217373259492972546426084498757611585345100776334325347099535861128254602149794050182226866644703881614396726625713396402271108530431472932537815304754375970656117548327493430974755753575165537223824081067986242153355742179240731043616782811673113150282724337016116099192214520770310164583193115527848645882353074532305380157540781342590863591657147257356880832962341947514390358919117422825671047144405373853245910404098683920869061975881564905911941171666507692805900425764748622883345355239947294938989413828089707134150706014337644948860138254368362243541138942181427612646952457937087024912693005710405957067835096873448400578625534246475457770713130577105465793753619697033713030448709893011168364437539435125952051495228587007906729946323548132763006675485130232366536034864008766494779181877261740462583974760903339331682979968831090826638185909306496669467205242968121511361290844124444521249438873868226578166918062997743177186446959665795422850937181106441072461627829640022577341850697010863718065260101212921837779259401576266848637663062336227780796694470424647666492291013945700075586610992782919402654490761958765043461237943706755644099755286563323044851466634887483019060950309682397670012031048048610911424848865942048254021252501793999540666514253656152691701826106421100425110446320245824762837460846864753112126677628635701024078634060646530904307399386896811157505701392473322192251073873248364151039784403623448139644636978377692006722013444136462995552293089275863517756847404724680598625540992965250290002498378224877910506715779244506247452320140841768429011349111063660972348129572012388779318386544054575214374616629325525014210949213132433896180667203176032601418102541932050649963605155972493741637332556301895759102421674254869410362079452819122835374179538465206435896426371433625947265145944980472551131718558150337861687270340376150406375156831626485010289176163054437305553145098628507604212645185436275946301625830623431709868715919087696946090044842440665394175852518958123193714907788553704957168504896676151374811082407339297868182761237308536830980868371982360980353463586691167910526283868472419586072946864683371404010176028299317461473219771479051076043485147831281560756546337565579540408296521639996941621274684352118677070593351378681824997055924470222890575354457350755182554411271443641489198679826973176690109469749462837475035418369650597243215694479029929720356683928133055362922041223804121796673495787358604454141663069662357211471402531644691552062608690838518534710480731238038383224664990113401910947352994201125699934108408745304158395924180148875910849049715171643761836923998792301537450521160224897417539355526987077832020004409981321063252531858083187762240587281473888985427548066493571071310625508865389833201761719604479347984248635598606008536098271554872492007739271404889433646110891748323853108365200502009968185395766229938223992111496586040905057666385399436989201435222660624164751116127177113904387026561240072427116235049446665643903021951985075941055408976142519287708566167812466891223362972925559913641470419942251599398999705425498498017970796914515682822388972572726149371653578663279512020646934878954892004754557604509875308266643368705244025281964228371125083779245479133607852675093953541848256016009524966450152270352967496407481420662476570029265193731108253360283914374728424831894284412799586874886308997921716541052135847204296602343825223568194494198913859786847367485582844982355088410707330643109473865268075457408903440652782208712980268061431863151026103317679954119958760519062055723106680556434284267742299574401462965393009156932689244365950076881344435237993517026005453666959173335951953648496366187911057775269194094508792906823600168865977885746846267176654689478008747225602815685432414989144753607450722833893670827556228362033570810393211191698570216038187046031004607112841680439048806475838399628059672453534719608470475685478554937349736467958507985423956972668821345797395807171768411735190282429305987439962493824559757137242984550608697301557244989174986364547005314007818821480950049250426299081179935396186646115150098215143287125228187304129503487126459337711741907644037013732689065328819265074303758260302014080663649130821715984842097002876695002893465701956276557570496819869266618157922366402672217404992339197438658700491724987812359687602306601803662522777193317987812526192703065097328062708426114376153982894846450341724909910315807664584332544886191850486327744832967557795259601831974120672406095542457228806943840793990354081144520932132577055596352801852875982236615665222494599712830590897409462473806646708658734735787914991676725657304473815716242107653443613735227693106869089884847764719025416994641777566287073852005961997720474131127636597415839933246525811470471618517217346902056227761482919046399669367806888302922659960354748586182232110874186325492519552396837255150677854661873309000928852442033805976007014895613537110266782985237095309285478308216789937628211365760067818333782382760027716809569171531267483492463484903493969069121392390402770060593831888529833547526684537010510011589196086490634586770399163271641858150788536742815400005265996945743574094651967835264866343636979560371547223433457031054999442157661147094771478234797822345316780055770159084171485507461118917664640778246359350998529645990867181298369625360952849355818566870584983591235903699026487863464406648108842716975387824651654574495415315485269648198721700203031041111603178577197014657382532616105975445527610110503557460175185689442098044828961654926477304503978686661205800948479604182584027985145430446156889879652361213874543139390088042599529035325857842622272389589427225779524610071332697608388758317767251189157384986071256539115739560902316288759222158495838868181178440201911693936445284708888680574794837323408049126051599200378372270743594185807860944739646409725910297485626591984748750894288735860994967420353389595740049593562951074802371340998789407187051372063196518449700533231548776061512109553311019329345843795173885077024044261674898103048614887439390710994594733769828768831010787744668996622345299816870928426951081144786343946751915186985494532443779511070426109796834525982741128643959966706896445333055901916071699390814229402614128843186240532532368054544291622021940156863742949999799569979978857372355907639373094589225443282462014152420907707883934862398811975684757458046592202874628582511639349240935630119476430407994879381620188091901622419259825644672895136103413661503966577499406300960156254211434765704482572890234465533301235332274227308538092838874291784375827663578630987081626948776911593480069229194767930952605035531985427659975409275830429965157854572223770325860838058479965402167203874125552724479814118778737088392424742160695344507202098181697160244668314962614925587710925318282051749025937389864922297305795188969182388536675582375511912188627964253413054746203299737990590720704294608531668074032092741656910658048652082809445333806146246232642979507481701341487201027187996702014553898460149795556654971589580452062435164661892029337689244806014856582473659326503993438795241931567805860801222233697267377441414300246674249016287107992927857170122798604069336366238597505596944049170522925113619682315044164621389804811112925125483213455247600572913871190960659879115853336583954465164496125098865284022910716278976792806942307959352913447677628242123562905207410137203865217534166913785234837369414849654234284589997094472234116622035268616767012287725271725242688785717410314408529055850939438699213565459122616795425317694290843974387320742598576101473794610668271506675556367182264198019871227867660050232426686144236730331464967010952037871519683575612945319730100600609111746964279821837739746050662376162763223625811836758105600498131556980982038061502953410679899251670322094875748784357822686731237841779033368849597689843007689796102102885580663961105409996495791179708902149297200380152311564895557452824929666509702453799303325542820935651997554312916587315870347137254968533406172214075352625704345515280014971460567729981284159492712467414858142416605400365350596465349137305593140159664374087283741181515224820096001571474967044449294326536749676855994036067215847565934131980880244326936580785539739677282592294950802669574996657863415309282547924336475652468013677634501096126962721909314179092869409577024547762451330002152424795107944716699337872158497444233860669968641228252999361361578418690628188724727287382561446003910779018248781819898602355923523962020160303328323632116346146938281608958898453878734852591598925919538542635870318122116245759942794245631079383093330858818874859552738602274704829669339917342937554082050316852801220257314018697361497930354322201204524034764553967901404964493364776090558404162327635688739739108788962580604247108186004144522265633670274483266957977970818365590037478072138823255288408292781851277673840047949619248775515668055553041066229931565167729162538055818288083542749141804309359570934147610805989128644830534337715551558728615741732353109677979463582904659058770817771996676258497368903531374715150338978588249136300737381964227197627131652938105731503539971116699138149280334588108812912355069969694061488453844185405464523107653244283491146247338445782816341122958456967927302952059083159139463437872676923473616753708899763281909491560790734602688070253266251261762836462900641964186814852662262749301160787750347919152788266196202296957773585177146241063121942182186244954361083203655665038862492793725251194829511676345153712950283146383935032696355356565250562987154073105884000860676024206921911502002797379194978456859445624859139016416407121203831961506205552504304888688196681647538833372950495029729094725826636711311426331233835569549036679179520374217474703766685588342314538034610645339340260863007352264894381547484283146087917090912550508491350302986216945189103879975624239163104661884266981058123514445233159608984838813228038923608194809304773676545000473641503229928571870163868863713837575033657560415675147649558335323452578023212357653829227298615922535526700968705026258084331959637245788807812517520119336926439041435373319693242451701112521761600733804458910329135082320716592780890805696195369627400776899968791189012810778332979883835754792558166709615322625932658181288617961244385314489099641019914603896809460869515429324771671972777254160965924454657551071217751825781599967706346869511809492298618239499129151277210298005847213661332032349516937065113034584589531920928291485972597062562546768911530094867592694334184516950605309351717388313008797022409138771279927308410762176177387137417763088672141516969295404859195741552589460556699814810844002080330578541159836014256949700815428573890928268470406012617613879389412349833313918997377114437823267892906207835648419419297408416938203207147580560601305817229038965958751022539586744443543373682374015664229752961278513103923981169019819814121498408014539333915446084497561518937381466157120979016886583213237917020494712639478597947404944200959920127356184908803547831628314912171129419375964617219715132589873772533281793340300506011135775004903522577967313553916257284763921578509825287593493318096595533554411808967285343314411281495790471095171870234784542732757904028447149543799319896496105335730850894137458765615239594983794209736238138475705124601193987177207337490751326372726960028272019004249269260625247788866074029163634131170982900385747676745074961922709854717064613287410325729211438479009596597157327231954905358653079282945979159909432848836568432590809850758280123092057541421923200154769804398746927260777207446998236085387390787361514597041797694428661139258545009418093875389664474043252950828619206762785091153078997427310370506212261005219728380618466836690441184755795483685560640482720178118567842625556668023186191216658544012033744625953071300249215309640028684949657452902222524454580259714846358678271854203185840046143137840865422982214922505015956501693259237719154869042934541214914016215648217943329128407838583344106956359109125855852831788062931282397800208629242846322236858058647442726802683940270696422164241399055118786706782545986977516272926112548006739483259927922438447449699407241345220516679819979761366766198106719601392094375904456057732932620228497603228876287263152882731276162197503697595862010997312749235872086248068519749885659031672927162271808296815607429479807006671921680749714162375301765697622534513106578231512245385345236576096210520640849871540797306461110819348025877915435098076387239445568416441336881887969167135831427847609194216873237367690920590796104238858522037243151381254662526960016232872937546754741563655311734017819387618857148340489109311698880822953456400071784480547450400721096129038599728279882803922814826195032762794571176617859888665378313987911165775770378368535763427189755655620680547596371293820222623612487548215575242392782295346042303828554337850438979587175206984372146763358636725801688054901934210843044728941826553326289406656170718607027667383029479429488689385207948225437822505110800500723264933745681819595759219227238208620448033356703257125236420053059167577376855824769096098697511681052579804695474089738504486288967181874673230825665070510310647279796500554720059022567309324595784341604611913397464020497998393632668218354441916339985833849417176252908020524569313391881594096450058527125851030789890200664412759454458324760498339816659710426073276105046269227863729092673681564598668808218958767774921762218636453433224902063226173783068899797329819047210264687213989705625221182876858250886878716131575915260797375691033534356503967060069707206620483126092866847046000933167155042412770864014058382701736677084538923068911660397035785898459874443381611132462918015388062429375601724847414140034538477785158266646953666364014941255457757496393957127396836999246952838820076027381161196202057651004734828481588301652247346123202439443395482707175463890413843306337115844933626294931831897751324441131479847745390645162493371244729814396252555180266953797972173945135491940897154743756298720007239531508936715468968982947608345421000220905693991239934220973501015761272568764354564225736319983997293453236199555005366708646312464107901285508425611947586269354364029339932212817743783012839991753490351720461793638991891970889706178676965336777222228754700465412894810644604183588696431979857950624842247247137703073006389132115758535116046219174560826792938754796465275479566894529110564027106869854780985126333892474513553488722591806376497920101808890985763762103905114783943542629654898902571684802479155154281089170088793720172712593283134186986869230817585541398456837014457484488280455390048714359743628254609637733977930487369222854629890971429731269469148052231701162312773438885829910508181952547107683595849738374112805916585322624172511290403044944948806529249868749993592509381450645533039621483635075427673436004116470780247675702755029361764194314618265978394168234123334109952662589980653836619525298826466998070033950951996405268958457473336609477466729780370429899295350656070112578692777947463907252159809908313528748032042713028679781659387089657053344907918672561108116807974613955056696720317059715761073992519132821745439563678530408192613341661986178812651531161636412986385375158089403322542105438200420639253781453819759839593994935209455917340514054858862434265575080021688090809033452600081577101669154730806643983317705716441100701188726859937337762696704425090698763024100158505589121894251621638320907039761321435972659206004166186163168617732592135320128129529412178090771490612831675226454877300041001399093501495851768131801128771323204252983402991250756781681816738990353645257593907507599062317173330807702310604341975379205712833341805105722474853079635337803816137386214414772919696989534339773746252729347308047184651710001689259835792551878906692446656919589580828809483609723409248202059425919875448061727044192849696676195072086976108253930154428470151133142768010362072401406168128263978386517366955577011562652161905815787931749979127887103774313932673514363513207776005944744831464142399331856932687278602667808854777040435727894891204351999351948909746556972558469916770806882245588072978702244176399479561064960318427457948388442198869578389862554517597498700374223039608748564825492211587919863068782840109053621549077803539878768783740228777650081351485477149049070636994668600430773378761685284698824457346242433189745296264210170417741693772842132178316033984638417675320010741765670689057837052112190979872003274012447458763362037956130527242468459901792121311267828302808113708758118324518192098830093538984162812445539336386404157846510427663048210533124564512490845215264979613142868393607604592715871857833522434429953237233027621591388570930778936751290441157612683632254817087357377746557000783015743150191648055077613250223745760719853991640658087000509592778741662191657812177335930164038165919655795208917747692774870291761360548133713433757982230232872233947742092921404669064004397506719758386157649845717363121410507908250149724163465123729120712863087565294930253021684422527427886434380626574056682009509720942877623833580807550785142847397968475400004739832586448800068670389992195351380712796304047521447715744257962489297724824912260575888714165445249591093498709448000548577703700637823982407848028629826050494625600251874474529701855583068661521118253798789601091672594477414201506197169982940437670890310085268169083398014787580826232140947364708888012791621429789356636112741160259661680047490163688964242469495877878631436924692953581480791539217070260257870212190722318981734857500746297375979981688880007016564690575246732035793244444808054796971301590122624375525866877284058829652679908144112672177029721652481175779861273929159541669260144213642477880516328522836551714713607472345928374504307000562333031293253591049600277026631644343727067574777098917693313735360847156488295385785809784269292180900196983061653551948432657329595191485843270797609095019956063029742399014148200336152384745050764345194717579702173294922566951291523059437419617039575837766178307229082820418782424171557464136817915278790221131398840296791540222130668309171359072540472762561999844652875919937266434747292886541656918679060767308299205326094511784069216863865102797197321237845450332285644713736820395763093197902953003814050215136659258385975258105390958460517486578382164822010398561749923595265774504805244847079976773247005370704090295074657143878433933786768794631343878874929610351936398357774663716379982291293167085704377398460122773330310086373044272027715233897165762293774750254222949055827477357051484548750636945487969745083892249712042903848174209583217060811180766326995051762074710795627270317837976611432658836163318177587026623753210380622117851671857027466020748321876620368222495373822746637272249691348742441338931379990010371766936982146608311367493342725322364548772629491367209879570231833835163744118351602870735558603192892467599588505273223651897514204549155355554959314389503596633703838830605964482973977968603590970051911752571386654967854120151734076774635528546601254035563249056393358343605372963295525700620567759808877250474014206124158132954984590813273191600845271760110417147632072815243686335407174393887391676084369906100486692374684458189434438662752461832519407176864076095739568641291601612749962156397919974624105098507252048723484830810642297431952904175260683920544326122853849833246733215581626657094486518737736915671835892626437148672002483839193069336141629800869064956919802589944386741119122196969395213757022076033819733071656737965128929601041118160758505979655465344556622825853241760543931071847044534542066467334023937184957139606867484074692099603063404516966031762231941817514188932520308560046997542556666144634438159130154004774153976124028425770040399723573584201172425090627525383745867752105521476662814626082763036754390619881564628892860915700908405744747187630536339741587183971753759260367553071908195176359427320903445168031785836278832541345677899964404679118408214844287474609211124867321280716927178002118854732204707174601452031776143375594562135426314741157082375984641033893003073111837740150388185691180935825726156551272070103971724291456273891022802373735883819166128734143275778000692988883493266587341363041502794396530974281553931647099040635101840118294819777728288059031732715566359624739796839902839839952077544899233067239840958370500232550846305388132708886387405975379623054330302515454072503883052821863056077476734758101583151712972188858648551583205059589043799782954141550466781336077212742938874734371676033417351146322993746777272740750937577544314749384428725100284038555049386038794927996999217191493510681742202379507618732767230266715981329958182862058691258367674113311919439910433514458433824091345916474541080501277462250703203918309172596051617531467085185009578027559541997678753274219443448894021372697393033821932577243835588341751371161032672539088111375516523169581753688927944382867774448238005023402717657246388194697633269963627801416719265459363764474343116738084505137197989673945086586360192976005248318758429321769136695200914661887549009204020721435099929036204930497954005158978003895589150558243760566502288543394100013712877974875050895336330573498951294563606484088149838683709270812958544425163051933220564952339836692133903463622357979141615606751908336347709412511150467831337762980626951408511746254666137993050932224049194490407360879248482962964747559445179639872872505371990686660432263340755613413052628517947753297413115507413297076890345182707994422432693273903030692636425012279374554560676989548951128496484314287058642638431140675997694785546142757763926902924765360774398316286836572676021388330258049262988109132922761770700716574825198512689692374159299275178053309341163525937598996002296231616538766016524958121222935601738577303650017483355960665788487832450601821999326529151883058069098471009727415417487911021102272980173272400497321880968452470925013595758499188030882993704779937743575833569384996851591861333968107660579555552487381549963540757860712171394717839555585149075450376053262324105690850529137221977344667928243418251066167540491693183620958953751559580926548927142948208781241722759947722063084619259504876455488744120171834682727800116941308650300074597143023670415585396512122165869070837061000422519920717168603028500973517861665702180661068892094604841737569803819065299131159826905984515866050356309480787430947286949878951808842192932086523929245940156733165986402908626952024194129285204482515804788346878490893810886749076873199256689307672789908395847610644558022990087489762358718423491396840571143765333906208357833455233729392299547813564820773183627910309219069834791439355549028586684139433015435789285646665656379999426331017899866424628288568259548716453253400394441148419801976006554816392034247295584723950173579807665864681313542673608776554338511302845343476313291494349157408990714986853749548044165823438049204457928320882060839060595198637465582899517957896084728009906679455830024051608034994209246759515280739211521529603610204942082853343871158849582327388100187517132792786602168363147336747280988399775262725430351470051906407211176924541869340548745249139850626736888367476266059170978980412691732676992133706790022763583425151254869248612284045670478221957973341858776032279326498654451180420624605923390605668774566108731611584393108115360835849312800298495403669826899471915349362006350419706138576863450268321279853981640595053924853426501183899563826286426001428430394124346141291909423677462072840940011591046383733089000501737167921752494015674203559500044260792901823711499360009478331439612389359000442432688630798636997271795280777764311809813622607942497983213895879611517757408586432108584276490727010262989178657933805086589934594685428595847246701360770204618262148926333865509311053442238832163436037158242795539699063540309640775969224824069437200629792491955582938919229676730307929112366778998115338575451993224292075350213782940677178459215688293290390898974685477112936682324471946750267597356561325261483367934878724368036767050597937255113350654535304377621128298833815397343796079642664337039666739167222022151576923176745220833171067818801234566459080344614208749442972067743406858455200279617747755209837689351586199128253644958596186689723747963942404381878090097132047061469634891459950629126120387193927399501322633650046052220433086338973976890157188551027602260917846211734920278914522000408313630622020472098234866213082355666730286622340057128377392458520291092831247904314341815135641788673828821146437816511076308703380052028339083713802126669102588855970720531473648009881630514226486405788683830508640040627664700381965450758081920222367729018467601822971236779217809963439075195634437358388737703428990747152852770061269244285345921406009427376115676712267953715131685633160348427224844407080440825166982523905625851274415467915323234964558635431043604834841817717920482785304773625234151284985832773688662585041760628176568489940903216718819908538369215217316317033394175793118134812321205523999927389843088349437140169993578936199692732662356096314446448562688041730335851631710519279723643687320174181479186240315495051084940599948971337017156031622277255531253502589476277312032112274682204714348492288790510161462616488554423047362559784832000697226691433123388953711466744802462229473985025751811611961935321580350027411498087083811384377949133125780446837073912060091351952234063120574434773466619975806531901783535462891955635402835121736700999662443667174364330759349047962411100635286758168926754515479042724918770306667874697440472687059199740845421727287873242870989929467389918240661962275999956055055401737278056105591357712325657222224130123497499385357777889843362415989123455861924566102569492782363359232233516522524236656466058581064699911556892787903590777448745480773296990519168344820330841781098636413628740951952668584569843668972079504027903340669258631794702310158327641569893852075912028980328270849539431453229072634148530996697417601181023929495455477470930807809546113266715811125821869224081561971851147811984747808419045015882348117230624761921673788915366174386243202578223087684772516097870968306768456149497803697524881389713744581177915515180049792435111627414539869981903795335523055433516247479939208555405269052413401520135052805845056678721816876256805309741712685891994947675445317671034120206921356574628679800249652644072569719214957961920416374508543059287953108359653416431357737628442665737362497556341713891030427262915876920732202745339707253614721219861364287603857630588558370949431486421113779621406829435009550644613003496394314355814696211785084971712279012784624379918594084449498674528472749646648039524530659326996956077545223457878379173477354089086867850750902390660146047208836844858290665156509156276357690712311752397029892304976559812978164561385069908046581202297518779196992099229114173264734049356173476377749201297196041054335082199641065158195483374039909387104767197927327505010171458193481982696286702990676895320041658766339167497054933145559845750294464252712446998240636776067686334140495317160865432348251110734650043219579683423362371818494899424370045330246999206947900569474918946704375002716037427150999369900892054181061261727623405714239852248170674047145412866445860683793900595276940002460298937332975071064356566934294353179358620248096441806473874093661401842688025090391936076322123453212230652983456562466978804979584939238713255026470912127904626115499501967808738015161825747943027359287465690088882258172564122708936443526311251114183682880184655566394863370661570636219130894376266952488208937468382050774710610364025475708834849606576210575339907683066417826984533809234874627062109337097100936602855152828359653083451329913273160383384349961476128998128994596459394807565584208093814095069304834109833513811660579830128527618171395221148977930845127497278116976793445791509894793064391882654851553612651720753339268816092627644416876791624649341912872639083148310697914821600480738146927806329761441308088285377631601293719595298443142915599066811539755613017259602578097750755948888671934540931686177207413820039626781853278311396905133910749282303588098775072260803259531709676441692499072652844686785318360939307106492278269713098770983139051404949041074126710267034669593563331306393752877302911332103916275000328848782090369656576943022336867952756850917089669897312440365898900210490286778593401444733215454012807889904982006375224600987415084812403057390312502540371562528487404281465975551774288975756448405159341656311142382074473795869874678935182715441548494236209321181549039595591677488671160036802477080773491873922650661940263917809861502029147889799401384259048232905508896578202650523952260329696461241129949369622332091425966395040233557941923430303270710250062467147452615792606480964033352229514670243815254842908090263546774965360829412551660663625534072691117655625160594159690736463144548480441735689288638627646550626603127340850340590177763865808491036519350940501048253060602555074965763982412479178109608950457140974572169457955851111730929163434362161613912344351129183766113380764089357297890683492597065381429308920986163755695281420162902015936851512253018775284777424310037412024876266721466081475017653769207301844538953783280122107815465241370877432039073177370133987413395810588584201483174993695267051386661476841254315993197335816027116086455922487901246585800357529618830222397659503756477381470801802843146802034250426420471202462979129654465532846945728180922372864218310086609524758696850286013418472224974614724741410583883935012130041846386159683374221567758684049469292600626240209752837667092479512872768167152953982007180777838259973539815373946019127614164485093735343690218640064918300199904543154649210089801083085928261991949699026732343259676891467680998241166003348647299740193564000878729728415693792047865419724521134599810596353001637493986619320909226059742791454233045853856425195048167166484020317774334296513543772256588524499719381119433280626289162518811691591867806755163163814973424838880641684868025158531907329560525193387466228973646427646326261767638353614340072068587910004674898030316540585862807136955095684140891060240357280674746180072631532046667174092197034578833407724405304765078093733034623645379364937355142585184814375964352295843573810723630675620992328533795794297579328934598379008121197761051916745565258083362751935174265621082726415487115530715375410412511615176520956500328437466832210660233306776927763710320415679467473300861327495850629150537172485771955827578462096023823983581324384662801536256091028870681033940256016828249193605062120702412287655886372300753882931324947602445944381935523708051392939277578534004974933535548460624924455639675169745538494536313964979545462100897842578506481712993811273527105193305068934123468763511360025355674044415425543398477265688989496554314765575867540425519583301714642500236840282406551505227557858180070783282044712254192808812999696220618946680337153543423887683247606577916987626438220572500029210716863162655688797020129990613888598194130479976826090514927127034153183433856457986219015113952672441090028175871092320097416466168934709549240676557298372735292569761731153902893205895432021942449370901919460142224098085965947437319386039739608174887929742155322791953802793107675305451903929000668677716159039227945922312442300162031063310078521805134076385363789176536548695025341316340886721307562418759839224000358291449819262556130296015037721295181319546961595758918149220007687425069898336720976642827909966490873476017759165094331770862604355601769696572030631372881329599396542007068093415033624612790411676073894737041045070962217217981409692208239269861120241760997043966407044876083857150863589232320261145244972983381738555605013590960592387711691376546334562989790633170727489643852573881368771911407448376058607373746263938708194018697466725617003435038067638368325530698323486498030406729889174774691158188964199433351870573316593763268786187089628312216486620995570113197600700771808951269796174589345503224514202472785090252438236295642928279758535286719014005398795915318402833084040929453589235523969923883253295076189035631349848384315845297720982011869428515551748994689842332202149456476854464576341444206480109256066034708000829026952891643046146179468306789438699550788491733740188229233985292230915536379089170917032633573677902565242733648155323651988806371501818389215677797472105811151648358058353803509466397775145524034946195244111989545796818358210656164088902329832014774546897305654919500558775239758002283941578530033699038574497762859396876202691423937575944031187838658274779987987806425877791741684240663483190859905352849383545590734166716896067463226301635961632576847782660585842484752922010976731826764833171678967351975336229262664567149073922999648005917894920803866819991949423225655558503847561098497135925298378277912521154528992281364378186919314194140737406119457696722418551933281075969493664752309809530424677425747769703736139089295933541173454932191338815743133418169770402618499257810841682247244461994600335110753025642441999932317418982200380413755412857832370752760379154201764142716538154921215287291909496029043708002732062798270247109387076925107369310113521250792456366407818478357754067131584208258242836212342469274365652717861147649434269784643383128587550577369244175482091795067120417683229851907701150937662564513789578930483937020782749343767028922007746972094574573756826788811811850889020373321556537772095122267032361452269030589034790412024654960999501793915518271640434090645385959818878721679503560789962918316626728420987621199032448492183583421800301768906452280221698674506985973933000702623026763635036032241797470766310207931668418294921000922215527668922706446747734032229893401140727001972184633233218360203283218236590058376025950386961995797110627132023602194076372973815123297446953037036367207587953677326679566375629795004659890037740910036773282718768035302418701472401470396227197956788333203914227621546489971388675927666226415079145612808651167063725330085313881236200754199034265483343624528442349185612587189668861205604989052995929348895070457038442013611235930282888747310389958666789785918863599250424661077499305328505734365951179945202312728804360016910339605851945582690168963413032757111030880569871242173629055405464638711827150314994373205638986952562944920950005590876881485060552331550959831756764184506030256602084711477836160645362231057170848034213545520316474084814059408283742128919027078057402141157052948789902004566784570166026256942087709612759997881739611693968684040489993040407366395063856267158327360733570288821037274592664988320805182133460084657934751731535149465948836318226693184197630656628533224359780479687188559011867260567508838730716287193548620148482410843546877774803936244757958108693534675657340183482032649679273233093839009969412517473865179871735333691315894656363901884752267495522937904056999978224501749443498389619566631945987365166673430120892200918291301369965753919883428167534318531515518117363369706157770748484923694440786652846780810411873499192753783383778890234075823468124138671745000190528157943004963014904367222337253888679711165982875906916889048717181329787775095751807581523615149179375473413400237302462835597049837493181792201174211234327304132046944915393520274705503139211986933160987294464704214082611337914793373415207937751683284010937864702617946952124139937435535866012552387079363209609687994338749567419360813069046125480835808823064303115274668306298981134152273273703243516851337777053561867346296271176630914013578034288461245406088302829005649450582596773117873229915303610503664322718941096265288317872370783205005653624579223820626618307035374802211381372416015766486458093356999226785510255832593009708004419322033069383837537594151881071358123819683953952794023726691753785471670797540748968286198680371225593360005549438385586398075408425256117009872975592269549489117618422647306366333274939071457446673361830089905128154073686816848061931994752546053382354746360294952050833038863089144976183708316381240129371296729117669227482006933865316012995870335046151716538289955507846037711278360179773604770770761919366110908733022232237165494949987107997073443226198060304764123160852743746085872659211957121769800924020898205781708113622000936576645969658415775139221915553344303202785377181861716273866142004503069672841399393472594793808966118973635315543521622349157456417869748432381610436301893443551918673647615901667148076847380506951608548948644029858926361325067415954093295956461944051379195601330022437972636485910727130262262340845679393604342338643598669588087686753422887484259885473456123083617664189230201866261715237621022419354933662830904063957928459134808924391301580190543656918878113652845596163185325208787871657808823334818320100944660499302143209079266209631581762426287844647743381430131190185734496072793104818100869753481986911023754612632422601142067713344359370678733077391997634573909811228260995222853785298891408108830452229725537819058925001718940412720754117708310935404852447072203362884461333356875247942809797648308756036532833476018241242383564789071163163751489727022446064047809407921006185471675111244148047174349967407639156646137725242881079969499427637822726201280845303058933221195800773075155631320166476855764403279855183690691843881527804222994816420042691975647661673445705322274492898583181823963306167309451290631190351339368205035333881344615197499209559747191254402092372662473039112783782183028866223521718862880619110143012352782974786781171509239261212725777773156277939052321036910202271985139052670445483039926447909795854875020270353578140070781973935900890823440583509299812841562462263157856516158513637088619198491547669727225467887863014537201387048598715635101986908699771555716142314071464061197933720960444574571406869473100820076418167927268542370090569158287641507783402814686224128225382904048229492400397048831193739827652558971684578141807965437591025725437230948338008650646781905542574767908376440380463479144466682610070118428926616264898178260881021158762680144286225929816817744551814660570727428043518485481329749252621204432845215499014874339297725133014348500720035739560414123627276742448471853252324395643996994579993993511910322407793002661531128570167113830486582541255744833389373385125054273123303799944876911530082967817519669691102874134527819687949300446156221086222808417345484989797683775406125337853541515846698630559549815370999380046634146973715238803444260061156968529144576151033436136685925326320717010770242510787152094579626974063191121200819924517997440311560429365072380420012346219701434135475227170364805778592465069010882641913000436715248349543455287952929431591278574325262028376529837850533052876515797521057871097089767944473619051967520370235456418477386270671616844206625290030630649002789117502242125207229594958494634249687890289314687285298201367916228467316677691259116145759912818929510321824434642867930013406353973876983439271959567114415169725350869741690519125654472576585722956080153962445717468761189412502043456903679730804056066892685624444253804238948719390989871527700208054691065228337051321069618350767945774606316289228260653199874339246259462045727158226178164955171759383670337412883551256645648779127650189656730828181571278044553136814458743345078962531369036829397273721984181720723610463742647917960569316000184798987726787376543893481384489231523048440119199518870416541216592181681913023542209088081606928705008212648136814554322263834004963397877445581183271846666992673711999549181259971732733037070216361753339393153092310898444562651256412895764873644968139779605404778722740923968563229139180125921857351815816493051731739311900689307459061631188671977639804050873657402340302112641598174256454810234607884435639587159078916600643104539307148905951131216302777404411754052108319085708125887150775194268796637739940789063277368986426778830106452662027733065807623539640662172356224227942705347798095407575667786189998194969789393399231481373345110577330811934888614241564269243823194759284728432446024315810279367241164116659000893089760130939521517138531058907197414802682351172342087065951321905084003502387539144849410024167035600493019664918132994675192601251603352857398918006147654050448737810448025293394818555279406506540098874605947419924734405333164773402296507890735108946189519696411431290726661045823176369828483745584975183297184334533995895664858427788032672780387961977445781651730686840822885652051089014982095178702229104547489893484314043085051239039061916791364073677935743364038526991094785415419327371738677050977229717060740503769414354145770651641963754487977873152550973352842429897161018028671819503722768413077874487002893544743915466863526683322623359211377534486023794483332068329872829474446631560347110537495463705286871149418117489838359530974506209020596405841281712562762609544455535687972142310615745236647842914239030538299420613357207421983960661427320174502073564648513748071759927352442668361515237209512650803177540638425244401971055981569302040568297587255511231109952698233273911135631143100944293609485457038613720069755572824131000874848498569103849997075351365448695614007740409086635870677757697678585587227754284086435770289684890518357759582541478077168972649643595458641228467687228692888810059493490522722627361429175403479727558496016289307613084701952437523074156838396585329043745906761825193541250451998907113570058743683585146348217506133810609937664753783086928337283004111472223173525137160020408974826894063364556386386245804450724398763761382034709404569881912297076743331491598822309931928924069790978038663306763692310387431434901871380137874642047901814155098048184011499580489584840327493826760821304765109815756253362693008183767548026198470857603209947664333709919665988026070238601561052795819576332684526399127687174649828225437354871560596513270656151347258074546961581924902827364550383661785753468924953228525972975977528966574619138836444560269140770656320863694017300580161083510366991020359219838201645934914389542692649317204882894699000334536006497006358779166294015859885785905269886324328966785765865579227943896718677491758659920308301980345889760038117337761088158658530842128148782107222430708443752828036272109390272520047244824112028553512228953806476629197875212760332610463996596106248946414264304089338391741973544325410022186128068188336966668790579707623132260300181316976742956001057777726841825403216656316936964698253335478993831896754366974884182759898065429481014186908336491720798491355454908401454254372047904414566270589786929531593748549930691841435843878316393680729302186605651557809682430315280176276864611810087504604353712331680281181645508286286596353201153633776589937698985006337003313826605976860456128981048544781491589390732007637416192717607710211183586248063146037834314983803378192164690122679857631546032007984110661452220905749203868355484448577963028219577037421540176724798625908172245454548382860193392633672368256765694197572786781026186822468462367970036011778722500508985624958822968469048715071749568880490297228039440500640543920996204185794186735829324877651993658177220074673635728463185871982048654250369241316876478459214260746441378645001638454813758815083771050495718834156846786341271210844762265597560102125862435320388407192293621792571282660722551996540004489443373188222597613009232489961457610702841552694267055722162819474948020779462016433630318109415544162220597573434867035950343242811501195307062463947378833981711541090745745134802055094565256261495470588597945254738292171466778235421071484738945599449431011214987106050115257978329761567669012834810503891187514109398191878126360160195126981218715108955853796419830209520897557553535614452779900821039368332493466897047167295164120360951975928769244251357449517239847511941235527893652246158725029842475699687362529077099488193375495648217877227226294726157371495160304538726999050854043156056967389390932861278158669719048030037420101980442824961247272756719819494863146618773549670986977030541795147984447240130926607886163733696983042497368987182856231316405689918822002999664212933530558092992216066275563204164013366091322255553652156118932857552511851079644670405374062080366470995041136493285996130461721098004438835080895129883540187012186704736739421942768946166805779591313358197011845146132071671166869688129864088116690492975024184259080454689026076411366017548360180906002976520307214864517988896250993466794175443182965716783374503102353977452246259476437869961911739700350899134468782863995914835791553079967661262548974094972004599462518620284174871354756947832603405826225725641936052247687767022204310158166416118953428313800606364717439041281190053570640304737505712969512576359979131630414511864388181296140681612626311862442132825706419743302192382506986803181953793994201449617132065493627055765606813721571276573387001472915456267169204735514814195165417376521954118951064488524123195872724918907400895235683079355545836657445659373915944057230303086055433619302841703681702410161386317243124668943786001277447891476066700144449973197581521371655941984522824991875453184237145666462811099995979823447203586311455075599620992934332415543658814521162467953829581460041138490451635015080613778288439482789704722231926187832899960550137184775465554368628667340080355740659596583326895278593635610832215948816195092766711351945420168875889059719320165925494452475713594676797216388466244907590535809085688806659868485510289607343454824068288901888080479764430457713198258801445772050780973043773369809146737956687998221531272041130577177456191430239425715647418913493539461339484018320590326413862492708622295184140828294723858717396701621033682875918386021287579518763179520430960843756178092817558798455447366654087300627603136352116476467868073489169706213605723804964880671691175894464574660002053922480254895578835407432670636152694612436784245363433350443211830143408453138880678839627008461990137206351892481797115865788673495643591476020140307703236039520732725809909103320277630054153500618895364510688165123366914950384490867357060849107852638486849645905259664448201233782275849915833566421512528474992931617715099023826620659579301199147206795033327427331551920813690645326459133641721132200883635795316927774014299500267479158071373766497841865901259975380106022804317182331638606802145098887180904888530111100520894551378282813553844439518452904221384391298831158029107644967780357794120413915838092557585058850167584872098347931238723770316431743135554998781801106156005286116852836825112002596361767077654837283876513834289941382138443041323943089015125852410233492692668911105001472781581332086660247014494367574424418461317072965634609177816391233725811219073192750971220389847252771936417542528409014186631097791682349287014650721364928767852607362128413984410279014843612354385738129105997581434580361672344962171044807352072853648604530225566327917580981328562003484902408192245384642617165043002446418631948173233371670504771044413407822619150885959654908812918097535922014231621088366351726727305462076522945117908249062921846250303189308338931775927106718890949511259478504975701133757596476520877682719591382922313289625185564017853594105941196531634320764116007606881947530348936058758686794454990994500537938866625435490684856465630312715316666953385827244154236473235957560080795730138609396459569608243647964532508334991724138756759657359726787944264346389795490206473889755131075542084216354032028445890709437193477716305317012617714106235473243151003987191016626215763318919047057669161236397834767199880971657915914070615479364409549410338764867919275535771626935997502538554139440415183964195790181506211225232612667590959705359645413820011503884110423028757240493666097169408081353124258673600013699247932398651674754819486664051643024882991450762427426893911770615656287230487508679264363418031025400972981808078971071623871097796497003632882342805798737169480329374554814492178587799430099637530266760836314629294061580877380932981211598410700078227883742172100618177980157505853766889493053388173941542687531824212809347795525240520139082606216169621208773200988788407016140519408833945004530728509938477493160749348319812508673612264625293151274961964162048330567612575172697408891635468871604829160445601625903738308868390536940525344219751048948112089960297021806011729189219170196243567349690560470036890416729575602121283834301705101542376444998208835722714315965737609839739362969996606056749582722488419154739520802333963752520572909298915240173822458780890210684546244060036368962126783241017649897987488572719984486459799114813202955215134532757338928658248467644592632676030389096560148526761388079522572513429725453538026040412752110949913802560365601456897461190919904882573071947742209060238082302964659676607272504977637785144583090973541406072746395598986189069092281493062857763217973216885247979413142194106616140375575361333218986353518241522653753458581897324142190167008360219879393693565619334160983895882490899717674287476674926740904082266357570624723644995097004175097095431184062209944621293466349367729139143135520962815666209720469230068868853025802962272427563188217864543066495740691100992654675809609962687889772468563660966249602065519009321524250533464556792640974179642858918641507071806600895735800343643003068556047415692892236504882811848677210586728501858180996739492285501744726894895350789579855980959517366345693256632385446219622122018041116034634235985894320072590362674512705266999936804273768537507501198408641222524085098457404918347190978133116998934102287502540245996287995038822559981492282918999676565786203483909906367457627086738373868214640165385596533898276621668132583539483336756310596570954991040836751800164361847146166095291933771183044118176162377412383015814117374773536494723188849920782958238174905142663125323638960262810372535218945330947514803023425327982364414867650082127121344554650044228527056350943453268962324748173207834203012119911933831897712920071178285569098207492573085034234859167957086114285552587871151132935846454332931312765289613927626794575084011197692304261518436165073882700623868225888362078538763510374548600248918758879877204113867229464458042472166674286498076264627478565702630810361198265584534113570497903749138525912820438706792267379583242813163703059689876166900993331332193657427168361165762377702822534818013712870970230116528447256351062119527427465654426046547929784802392881289997722983400278207044115258369451044835335397465481929268324190163283189930263107281575510235163326994388925754644469823715923525999679141009863390051082487555696126955367404909834319988115619439090797235897122078452850729721586661471286723123560651076237550925196655700131252258452852792630104471186801934713740815390437376559545990920215794712612207657838065586532843771440388492224794377257124918656982177838019930057757728422973213882518481221557708531937195811085291207529994616305559414802786301148900316876845985780389458756074167014879304304128942177466605938825276467013034062402620438440994787807329227343858903391099403964473296332456572409542799514583322410340324753363221873578973395756223120243987141149522593363782155101794381035203900768855586218965227676901399262138071039718117559001178774025590920821191331634238236439728664443352157964424026763127256168290579876506822389512113325982582970558700165079837387930045678787797302274125056297195242016389076033603241413325614949810995206260753126743004197659088439273031521864627817576586837953242375263459573707462354913333097441844748653122259978226987038122113141594084965685483915689825700109034464831851265669897989746020131062174937275667778692891396365201595563500102701031664891421870941465611184127697494570703839031469669872684093665083502484681106146243308278355892784896832479619486637611388475556233821029748245956535140135396339625381366878235560237061119970568098712074827857906266905991628532607004195143703092770702392773913757679051409941872378920442936077401159194084644063525687968302053948701483236801174754563752807096641470176886423687952058305659716623868491869761633573751086104269078800851107721513067260725752172120994618163833113058380385239662087676836019813453123788297498109070504517856911952850525922630244664880095398948010109425775065269563231914888628111164706721107247846437563829019087266425039809318377547738018112193160480895962673724320577153860362397876749007126040421738328756811806549324242512504276676959417711377062908119610030870474350083847539713806241380506583485718123507616825989133483557346969056574010239583443818511004265851653159780772452544758178607895109532777848334506180164875299780175137360373435124153255317454551705996884499183973196914903621355971867741372724365426042581223747529350575653608330371070266633856187272299779978803818346105572086878197318983239337371872079991579227691681404550172620755392341637880970344225074620843489996099483266085820477941203724122293994009567767067142303861665495769426559260644036653832892076301407236779225636907982374846764266535868659077894737244950754798411352970479542047954209505167344044349114336971616048962161379712584076797865307097025303587509641632175740981226857868314917049878576264569049304319808960742725260232763500612697084509017795297000295046279210272404116853624723911770008605676985170897672007679063782744085438239293729608766677286696171986246222822455310143599159652473423255536311599257653182471182437329316992845152487615885757653977518583775566305616078228880203401515109374467150283624823516254290634201404725848959241548692964791534292810124359645315676845653615930789306677342068289522609605688906762110708543988793904285305574980929996040673465199972345584563336182922666823211416836110383453509544050963631966503329501494848115723348111975894310996110885755532264472005622364516751196494401212330712401780744194484702089223498692493496612745180115487872102616338096308030099616769619958947221095710190237608526957079064043858134484190036176055723563112869332956474805704491590278705706639082237943718581854448388320953732699453052737711673696093842074273743451550833334852709287902121607257064926775578143429242689552571733793464208113508741360004440697972286389443205913507515476296746463827332109699155087790619159318531457388093336131901778892567557921313610620446997219651600690896780961082588013754895732176524472552463997535343073321123451253840473571360789695238568967344986586721875206782764547961641497699967558275206040409117681016925162670867325558541224287175063842396266298266367721650407096528416781259119285755552340799200002395350820188382486905221784692318272842050881636671574360360914945535777719414198112521108392047391196649120273223635152278136740580403416400397907992083406937460363570630562800883598563309001437692875044623530073696913939845034581084485671320058735362307120821066630365977028377567806467199456512207350125115618601625754982950930987776504141568589815073562468687125994161153397633945955157536802998128023688524043713546454955994175780908144451575066725529338208077503033889901139456586897702962108189350039816598500817079321162688165714836378772212583451797553975732879633230379330651079977680740192492597532712027203559608230886742172013973749537493071456398506893083869984935186559150268992933272066838376910608328960673440329762679782629088273165258331818621342911602371331904090480785627155688076810636290913524338345989955542198048077374183788157508899187231258363691477739171519746859640311263128961068750935190368119495562779722563673269102305818432021976477856835163837469513411382857722348826632423894785844522951216431896260495032024701114318685835031272853910465130016027284404645081650019179597053228913309846691218771890057057020891105465833273520707354947785838776870441787755663854485278717985876992810901011781362703800142566681857248753373231034536450295595089971810405076974222771051283425777885705840008163438265507112601479040356981876221878504998976696015618804081611180043802879361981172009694681661936475204142057700490045378718598725865919610308314674115637435991670166414797735640310161647550575128540330604318621152537727353249359006250159986429213016851216311939924807541242833443442246673385817215603157555250971031762842157872527476102516021214709624691077366628167150418267676591637644632213538912151507421503263643570964514658681197785461507687277632716149516142332544767167741470786061523289749025812906624887148911712071240075912328564735002093579687784293477412027804032808360966908296593628478517674365728812251281941675395900443922401525485374028660703274003465541794939309368574388749646300898103530538367848457631062518178787716452564533685521274623479766929785722722602105510793116759876226210671872071279878145924879142409976827162731000514834513743624800582563535945134567889482093833866389326556483274167968776573264698424303139403704906076682917240963557680720781644731575005174120246766954277146421715352829020912361919139809765085454402490496932699009600538996732678117536170088684829663736310537341077863436008326525127475869575366269290987865696526187241034485271798136279187107646005833977665897749316560513815463948702238525576313946801090769119047681931220838617810424275237248740622083491712265391416304736738627404717086941274690197536479028093045990872104114075249585478838677360497846004653981710985898647256812503709371471318317889033487239273823178345417810121149064325727239243632079748256556505449206459160899855290463446902379931319147555601554150977175674624766707052988393295319331230854749203436675788078879597016857266138220187629357205128137646825113353483635235725919899214414650456448427779362075139441280418321277051165111273075895981882623725473498749941695764905676907989033229920827132684032508248880893893474507525094347932661175993369769743383800530285020417895710069377698993596177329003331151634287488156837656518262944515306292112369557086981277661910719588630766168268428166601259470950398015112096474667523693463779335685112071427067722477342752569583312055253293838421418356686973252323171446279675448268712458525142783473739585226938642117309609470850771493094404142160371691397718286951350789850356670059476952069088623715781508026712097384836457465610704637350970894389703670166926409618610668652810792643966664875120073755366326286466064434191547036058531632429886789396210236229729563036022754971410882699976122408227611948321347115330087834057476646571956218137988062174682946668681394963309755626622633317804786959578299512897943004224849276366921641517788006220341792136006214455465561470289549338612220391722388273594558349576970447769631011520699810437334277059487364841199396685982280558917830131198567457392196332917689918160182450254993428080090132843291682814080537071164264128467769920086141475564575337828355395321623300695204674507865943718078399165519462750815662269178831341507991202432155086135816695185694167561097139990672237357839749100466756579372530518246470773805020630773640918967695094053080655782468830962809884246646629118309289971971871731178185517926981576027969703800222516044046177141598569889202624281000625642706753040418502559352483724403658913022324718381788792255715944772735973482261596833316035679439392936611794274636629365907382523504138408183004048590360799718332492121276808478418666637321425845202051948780885925825867621708787063366060325775857342030795088558839073701442977562487516843360443130561461794119202186089656848760206079214526902763470856491739353552716950930954629630662736925479910765818473457348494640377918554135529146012751801939401434604423493100005223928404638243727927341875688452855891676872769826965143385920661951088402180328859283100965184348704301937611900935004294148296895758002476007135380423213395890233477853575514504117121023278252912129460947431518282865043205717457116385307951321078318182011380793411121187941220569062576815977862693221699072503306695291746042806312853232976351558475569973121632393053249038426058040188506513491842326746982778363194007277785747150054803110397677397863794957823103784088333104557486995363828543078090354272759166587449361867091709482826885096834980729641326452591873821605173606727884591985560936249508152178679579166704107266300557551322789354815643703875911850657169482839449655473167795594205417959658812059232728518241576171830033152915497180607893211268857935527201078341945716457372852101619128263417139596335152981507561505143145652859005603553903963484337533226293765027498513744054436565645846140718336200053049174097914211327647620470428980763817925975054882843875450948911641362026485527121598144540771933791582064701685058457632629186034212707734121207759017675784289897741467805663688438225047773366422352008277557639351228136114282091255202869779888839083223508038131706830269312796201738626729220897510211013433704073350196234455573292599092504570532375343569540525551439671096461067317091032373521955353714491366555549780015898593895488984967450799035170989569138928493145370652239250823699703873608320881992954107991288080666014339569852475661872160217316674062921810363245928115777788726559360342943652457606753852339296564896734927259727395410607517191512404877507975395069913097672862046299226527238142876717017924609689215529585199666720140880919550233215858517087494867400117736338188324616402212313599009745278234831515277243456247187490403545582530793133295972394043959887273957954183801281607119752426060022596935052132375617127376360358591746912445278222253057546553234496317988107635421574782501057189367939757929686407387374868429075172765975839630193559682743735662840707401294546012614010738209690128159339906648518803633017433902015285332051331193910474661519370421418157425699637168539925877516757809228087469592702029433926987624187621587838086307984677050416104940087425807829232928569576615065704314984127181260510396423676368840969964194466737814109756581085561355880219632778917386142289896575297740580837576620530967773408575328617447037523664146020327648981165528662662930991078803175960814695959594284440734458350449332978497428889583573359217306269589085129207874023784171822828972801037986576322226409709619770195377423512302897517018190432554858917808755295479661185780079201036037956700348921564281474878038376798709344139057446878428297123178792271147889420918975089066035417277076419650004193445825179821075195762510732690159908441089848028953741059003121650197821859527960272321517165344910944319547681123058217159550369793515927760497539782973339657123762081207994121830928517036834236953758237855837275899122964404185597590801186001876836966465437520697854064686129208112085156853990365446261828502787319838709019014682250735319343690413916804742148478666435356162526672492728879840414915262207366570969099364818041460967407394993979021944760474424453025089511739638831521868631138691838525819496913081239449502457369035503578250099273329057708369789076364336543494342005272602042072848901541931573360530800351233495808180297396841040226816742807285022646038681038189537595970839647570696450622771646944401917429480034316740312525741278883097363555302521943719482987516989199574786649927075583975723853716488875302559480499631138107889994518327424762163159599813405705179530021684409229394639105727163801590902175903116162820368961607833800085225536709454568898784749562370112423299894610885248339538416561302660545497621955957947341956752857345227774402500242095226470364556880718063898551432374493928391837214767581036577756563649048589772339204622305217724674901370318493111086988392002588342922983486420313267069719932142672236358766528347136660836861703004080965480139457275811369517181139629804734704072013741805859395129958436218179348258138128458226753604700469977161492953090221138501526586355888943017780332630273364132410016876866350749367946726352842043366501943568920873256785893767682622990802704604853847739356467383431280748109428489124422803282938391006194918064759134328614533107034941231315942729806827457306335403598134407740373527271784931362209694529426974032302638467455503899795235212460278809853968706789461384184675711886540334609494686020088157672341093035110822623188201722759221705667441323120931449379638366295825305069114651403222394821256916655453131539767973847316583846209867605742242019897012455738659557335353238674548232933964395844241090806994553002753744111044985382056997417620450566674982278966240930850152118172165734228647141435389099603688930272555559235627138695886769296274920595044994995575492761435939815707974677716291168009956751665194214563335209141522605163739875232137303809819007340825944635502112816734677613089704633307644018827975265733926443380354836494118306776871100598765448466488482523525881072637626296226979597178027284619201116475508367191873615312019756311612185409662448290818757760635126589537712088388629400415228571930797297096532326230304592644898140051050350596110487589360263847271042250847402283314570607949673466089395885884077420235866244889117286082672786255902883475084775597458492103207362789347003209768102541332163281173352230089795435509624586326428012684911657106210530713482777333063455101801316595936488178377606609983403323707268935228757645034394908466611091868310761714345245478550412122636578880331910195619060541763271970500053735621445119554591816051512375151351843991990134141645049180889531111123307669273464985324996973664595447144987433472274063721227841528194066167353563853782415266280138581761961832694169360355117692263693838910520166632783930394933660564105502117187138185777246127734818634711215461086197468650435950689351890796673116945761549437010467517178949205015848657088516229939607505685389848915889587040709143370284895687138673135363205836309976082306506835995360528972213266960798362219316182453693949166649520722317331243524964789903105752965425835258177471535628819630630247381961007837238607983156583282257073524428010697183706350517068109393925615974627914479539885652982171260420833760708870846517536461069590739036255571685851523793362731998418734910066389414516740394072781384274642392739822699572584507498366642940258631394653564148458685820581102222555091396783480711306430218264931928049155083221300780582638229900516907069051504605030808755880289307253801003885443291487663116450348640051233192820846331981435554071308458677620180730524952368283516912572651851345934661284779399799421287890113746126074574337428621262316950965675039939400500412601333399267042495548027757968117936634803494803133716115697819765544913241006958461238937000453975552668000926060059356747615713761313139806235215998271136862748475161268498921741053119614301372987331105905284665121994690785013919575334253193937320428611641314817036466235624791039698233078027229910743407221458922428872713307711882123263296570515110929260317661897829973933673090237906331708322544891689105512677956249776925310742259915507693484198660320146038654899919208870949253650253721611599964065622821731275229815415378762086057732661461896411890630536738615216256963370416193154298780758098806373453192362208683565262259748135779733677919907949300524084240988469232838295458677678072209879942470143066405533731492822502479660884015089707629536564423537912802737905942738205290598982336555969075744831428738145131290473808973827407379052278179335267715979686728389049331486227468159045347697213098970032754337964823076763508459624847220761345016121839139380135782279934635720687188623401685616031892877692866582953698513063268039269369037987077895475163955645127322035729813052371328687385217248582766114100836779757041303878783868831464764093347788069197585485626486251328754665659906679690483841980952314004422584663189751832204498638293674105397361017072131899267639803609187023699711601579920746699416106045414384540118674328067729755342515559858419850426472465518552155659541452882428777008941765227935285950926035466112246147475060243761231293074013489546440870239805155839543715692099457267580927959345509615369411015002974181320519633586609470744478284200054425130722680002579893434919646984340110638979686187998984864166054628510296700538070790985797545630590494409355467164944058308215235658577922316685236026845335524997394623958054573740047294351817669025025381527053255611068006118174716542764626771515235805712306089318882293588588417658858332243764793648368209169398824803550052404333532688772528066411958277369344088197661534214085169214366055164235630026292100005659761520584304331190820795588180078951825565802688935418042237801151088914538882257805618406038330653626360687073852678101543033485572354689155746047922744797879570048059923462096518694735681704840871987148885061491927600500061332028177945814503152902227556258289860028225471784520917595860094316403231675066959139707885341094336093443203278298576002488902606260169212676545884465797315985775860622935561952859950530847999317506043899075534959649148397415813219579295971625074680528053335929731416219464260891382764837353915568769739626727990571841082035671294822542898842795110269064119369423552160161956550299872739994380048305259047608847566025386343768725575673390338143222822386068875777560758422179579021299656743154730229971071731041212143158404582421778008189531115046966128350126316525211386525517761140107539374488646167352383675457500412736306280132364412270212034732588524974972969093031334387609005100311097766733531719285934578644063012853742492371564941387705014682075568094648464188100377948387860757495823221447172366295347863572240522028750205733884229545419197330547910986763283570231321070218881959011713314688255640728774425674450838024414588940899377969615694410324642479612994820027775085742381322297687963716546509395223313881473354145124023985755344687983150866478152415665670439397208592387359088438862768208555521903433113477406372912792261240720351301261365300280530235061560576699687932660885807667670530494821788352553798929340406817476355238149704873831728677050448920266986565281501368780391010230806453605981676563233510400949718850003682859553414736717408919790512893899224695253610831232225631930887448668829991382521471480483659390925874345253383473135699571141584684782780102092399654435948425217732133404340987609454642277414973094109000714593212537658904243171085457937300932863413306392236279532128949804683000116986534084960729212751083811970072928329313142329175057705101565963235324509122576225575948812602404052558228615740546500943056146814220434412272889990231572497381858143336258802069539907198180286304328841213031559336628780940466462051383458512749925534618727475439068649388509130742285772240918242101196101250876796479291602049073533050500075148397415896699432484069145443328478400346822769353075371277733679861936863379415027597296992781102289039529724169492036765338997088648613743800439281777620841028581152380588083408573563541610601738680342023315266355454186789215141009283801468499396453390074143441469432393072022777500328192778117659067331453267660465347229036903060560805236247979008577795949727700414520620073882543997974494497268937823544196388683241077201315583988725643468865650864462938382837525426523945221190293229333222200294268375612658966496370827088190720820241266081052211228588532611904376391143217221196586972547478504819826372475257823001919101866540223899901319308149777407970679417018479932774768696083301727150903083274692557348701681895983764365776821185291226102367034304519189883552335439560705458926641034799225140578217449435154751410229662383749815308320040582532988183849519094632359452468898038924333191907309674012555452505660297811714747913306096839830114653104003222657535662399133284685323833040734271630426309146001521288183676019266880130663354552862901087989150885263772022760568969082363504309285527015485632717451668658310777921557008914198307404050014384980126618877564079953689794249042147761218948392825635353690279959935156700974051965690490511759310316516809534428433552920408560130646136997270297692663913373770229191011470143684752962452236789645673456044443446248510476673256578931057984927722812640159119780533739836832136517054845912597567700497042356790923832605754927964354862177430238777079021891657277618375074961393160337844955986760079015525357326828720298281900327063728168194482730063826763279537979504581545821298161627495546680212266427928719505655708668497988473500209035771503737428887518278232945101483668818842884282656892360809220847389125680553353251271176844926767611479230445247052591905618467133679988167405975472099606038329659224634049157110054048787585736456163105634189041380498769507234961493058137946699238806411853665238073906498844379027665933265415049114481236243678680621895550987176258503227430809651689256044435998832214071154783633956262290915383490269472688637158191032421450319805933287536981935792021824700309897150642969406919960262084809490967670403160854107791692230240834147894308094580461494906278570812620115251820878683982467129745874598900448023111557917116917442775111746351416851858884636119366380424176468867442872079140077106990085252689971160397397204483212680015715332824413381837049840898345900279020735110047133479472116637214409907492266318155921101896807124452563842998857615792693535745275307397228466990925733180606595104655155630460114890487204551768042895688761508125167676512410456080339057474602617227278504716698047955612100524281766909862163182460704027637221180495276932819888850419737128324428208211820389654931634952784725968295924821553300238811994054071721170528181497950347650941189702842916170671659167457751542337978576278527820383800130585421411600447806150520636951000554129185837240530092366484927324277752339690167810236917387825477236649023218659671531512409835362676525758644348544737594565898043504555435249925859262438118796215903440491097638534045432291775172475788189749975143247580476517013795796231929842093715695280519490653064304896034462114071434628547049201328940198111197808646109369539367072206748494934337710166774545109522136947480814592419578119128385378928876116475894024971548923106547490084264093553473402998814932310300610818213764919304461326564057533064578224204551842491237796464829336967918867399793910667948119311128701656855473041882790071632080093362315141094718902090499337488862067676704377481605986713902002188318671873934933686460360668858722603627866486681733085661367903342201990667327224786200730173729018395131904603718700129075002460780099761300325529449882497192437242986006911375181127279686764918553050269296676335214333615213754124663100619387039710062007115461328405659529370034344443725326671422527556046851996364209159477682044072947774014895664652057415114777987934679911695656800023351227591670371385290030658369530334104293316581645298343814323753004197864152585722839826465100348611115719579944395410993966901245085713642336518121733633332191674637118584794322467427525532276953629559832779099952521635447131353221457550142411024948307610442245410549253131662194197538981555436412956180968707767703142398463254417706819785158460863252786208134532203856612106439896510486081491394698711585421962925375850545721140844189132875275594108235705830896925445948749705660891945869776949029526215786928213674473321686657459405017698833542453172894698120036423731970925033564384090792450596789089831197004566065523829622401437320463508268604723352042200197774097887431584827037984242870465751525146755634124491182045536586295852759020678318638025622657773538856482740513054278632510967358223141087711057698131701439881163808945259226367322382018653885102019418443085327556786805499986225776742871119753340285013315257161290744517584947851365208475917250222625234986989505938274891167082206721732887863745401971414580453353123579470105460040471777329592172733531599428669995820175700396565317227032187457019338032546142338451241383089792545044947073415192147769309399358922232600065239021106207254553384672188398314260833698264051021680062355060016581890872337451086733327201663164206482973401788169191155628689280192332533978974996357701982900664659734557062722307981532333655304781414791980794182143738529961547347218490864113422482131484140642858082510411604664637631580427302932482942899188973906232899248127163799440446449443149500033942505005338737803799424611905914518432535732338353632452347837869505918611806069398130841313752036957215755507947741575926358369290324795145285908129055884147730801744268074016045597209845366973491581480698543124886086173384045258301817960451223445725833266021980346109808146287725646053825022128148866022040638385948740190905981650882573915241008855234351987054700782539293889575248363938714025409747978461880376265455164022492884953863234011310426044187621639833080114693341024309562758740142089273386951181802676040713161945435634163438533567234679510564093615786993271422241702862850902350065105181318200011300067001459356529874676612028035432056567579762792822058623724706627111437072378136850936141786460026040117341479362164262418830084585000677271408235746059594695630187001641039786711487209200296877357171305882867732238235054056120753114145698351914241370762446771649930444634660328401959492007618085584722856229107398011838102054530717678905337687200494331434988985662802407766487961378826762336732913351740957803777628610823050522129803305170704048557843912093807168288304077518890380904735250135129690987635274644824673650164512156035707196298470630448449230028015066783880443712652733735155121350200127098327012975835454896705831923954263207923468997831495396777262265271440663739425444642888884619334457812511261634264917415648427159413319908183740634061779345446093157887182314099827352820303462503243957796349391374685177130506779395119691615282535957671469330149159664963450994191747530621511421637005619832343585945684084193797454542604794011966506723148761002166984192962717885661314248753605022485400771267522145725866421260653962881246884311671930150275948574042672970670183526312755877630811451008370627475242920806364079954456237793150084542346926063472064726684295733698839836869210818820138424084199048213861052087901314048977755849772431623157193486291754778332685449520649115266296577912289154645137317000278214946876425609652008318620343899832272831565901768900691407432407618571360460893936575745926186406116168364648241509332245625740470495020205085962924053700358210826671175946063070977298431633113342884514396492911185187184739177040534733485170034540915595664799099122438500293976810087789115147137007353739236193718463785178519003402102346800401466981680866772266768022688737499170490360953158974348171023263018694988754073489091301545746354714328407885398305334911355253897345258975893552521866468239186110433634739477166024976958838282003447525922325216293533739806892239235711420530010060465981953664981716725492134478468108834152636315897820998841845183916874475833715334749820518113234067448255279620333413699606796973453520842566244339554589483446644587228862464937115336102838145401678167296802669350170436136735356833938584315434561542409605748414258151628664669138107332117287374154989763937271027547223941500257564047709805452452618804650656306882705579031593357577799712522133893902476502975733014439938727829510331786568884751585925936825049902648498757723911368389511296631424225129039387661460070944517147291656786648981209571776491392017917140142126975798434596748679780506979687844861407610420814428047673958798478605078254256712288961000829296933183309251044705831837846363593573390934048478043633223806447322770204663246730169360497808179259725850187915614157541274887700574838687505816894336248762224292360039739886940726851658072061722385394406098190635013457734439222387701346894958651603744710729980922875030028261436656519769007324169079053501271100669927130733862495005453315544976880892815263711835608260557657004785587042804969602705571108576245042804678950298854763019001144660213097623300138198231230007917298094664928415894794487835958617093367411893338026542885450445513014597401611211681315631261428625374585680174370336322382931368595024633302997676020699831667620025791716950561963711718008892880697157719239313450904731337072184584849362165818968241421155759849553997618214033130777592482345240391089407501416646347490288522107786067419351217710101001548860864602808021147621229549602119071095459026733460658301598733030026356131753249319025768453533419711686686865754410568258583970654356687907430658005131180517528417110260052813314700676573027807327856922832857566708866660736500474009203803022638917011234818132844112757496227858806254135474104816033320128893019534454861136413325681097137424660636661176483295938530829225271405782905103300110657430450672218522945266708348658116796513939397957390210810569085137472709695288783229984580642760296046557577123782716852134495829762850969328904252321478492513206218968792200570407972397447878638225463539847112120769659962640016020066604668390687808966548136156734886305971651861470937983454803272488314489298743216895316472585574483062804017898668926179553262745411979935793783175605420747438659771560005278564020044471795703395445526204619839200977933523074485762051622294782115918976706105836308396431557307108652708160574658444227582890825491845874162856299054339914456035425956260008015387150077312121273538179130074950321024756450278456362733536048783249070441589444596567480149849898504383954570269738604078640818585450285033557426149496974108850605461143955986570325849199523778083084392917986956132103985350819969925979824835549347168950321605522365911810496432085577088688295097363578629020957450082143969980148220598614383604483109818908012244355791973987302360855810592028017582848684833904779052196233443200993197386215142532848733653401611933049139894425795651739478054085544960809716335510553910505625020200540841402254650406967290517508969991755004936694457620959441449586480820187744423459701038318157217636847483153833147683651760918190297283710193779444019515167715691822211972107948744528712071481200983754361765521540068416220086916429021308514691314071298169919136401776434714590035693473009494085505256660028687935070011298716302070866229905979481274520739639560070115099095722533227874885681326986292170096074427313387497583325652114722499707268807950553120773385219431526273798899472890531795141951827224885367406344168675404929634878817843686556782152469472369229016118213592911623332429327371884122204750736315828082638634803530203545441071693417864964619488373521236472492916347953222588475023745818430791735681799686807160892764871285228478851613633511153005948211913574418399572859663104815216229775988636835248178205586260045079641191636104932776658929816464112283270956233000698623510975553827123806373463265881061789421723848471537184404805061036041678573372583345375254557691572597405723470649971890964981796615003866427175778783285205790499767672017998390499370769756682842694633966735030712560426643877039074806696318394768064081472936460060841473222233387128012308614521967350506649770007860666833311132943206337754982676375348606108751839724996879162616268410665447445630921742488381351639514980622117571448188174526479542485354092251293859564641074242469148986200395323529755753263846828059199450874387294697677405973553653894701977524985905074876733164290967237599477235663371514628816355155527129099219660894692433811119339577794605373022339964306121411135359037198294498775470262632735885863955907308808427925507097795929361349285234218646117327065710556122401962173946891631568876334935313733696436548128515881474385473994519596055198648632925845014338668413404983958942783364248639135550812632902598612967174159070437679354656882105352582385031074304068566002141856641151684627539505774057114095552088665738243496173793293898446503418007772384603150232385780926226777807550456246389389266438397693556395878904556295684514182527615268753089812386003937365075263133661535933698242372979443643740764670860059989447143186029247413579610711595097487129946861086168801405169308225633687534578103363329686889239762296317978617283028687692917996763030709009368573034180957711305581774527887406030912642595256454241549686614958906622654463429081430450889255158772195446084933915652469386648073521172777826926222038775040832033349105591656339407240734342594548312111433540947617742007722555307063776679832476126177321318471901098073659233689995946948576503778346652157761841035923742706196271934054058309682165673308639943089864843717131543323208085599372019967341825160287780472612899432277064900434188392257561640071717819220158404178634109416396818539867855807048806559882532555806785926564768989437938145651939203782305159585941158446942246261628484666022957397685826846423321698668654223374278075265951848450886156560076361509691170861980746400202081416353943905384484908559961987989267089132266711440348062828883584266823549640589965974526767651080457032033618319147925828114808327676780420069784290002752262512812466342348112947528951312230416613842570752817039752913699383801723267143344976732821226875358036052300856318819311846014534287521205286186268514121557519774891117063658399957226433270544685283606647430938454739086024716150810243551871518393208676716667729516160670502699782168845281681936152692172373653934928108896344119091542891609961402686787029745526539777256382756240658146578133152310587781769210975895363465394723784776065283959589547686250108150013739429933974211658593562742823916237892555187591604376336034901300666291792408406094754037983517566350744335457459089844359710227891520257415265227383557095415179066316482708476658915488995618884620027687787855887836819956960282064944097265507887981206593427005885910613650399259069132031342566308080401896988912308804983697488491503360398423080482221699608350227470139774269200133586879435443855294665734851894422188275757427531641696996624725684616522321352289906565328390063344146793278430571770060568397981311962066904362659064649883333230580958338439301474602739589532058672232718969098530868909618433897693556026712272995342657784867654909085311427570771670481442265628195693195655665036723436794129668735126354702010920595614446414903434495991451059318970504860741265733102532561346937236193009321623819299746813527957644026427985213792710672197825316032127104928081091317762427438666751661464842214191148367313640146593903167200435538646024897545823539896197553020186811739324848964874849213327476854101791750842923330251377406738841100387416603057122832285855216356542614368101767844382655464638393627869656326920618647559922505472651363960102761591265456179057906777453765606559872155151544658915063826639964930919997291406802762957580862370256488266716122702343841281298711013575358997580682611587768924625732403860301006851844085677041323860174340084859027488149711974585682444849583302657073399333096857421752183902916827959655554928659114151495708200638715427404538080073277411590236332123017447666109107251886859834841807539401146796082675218801799937217821322066116380960180188378153887926065881935985123928677490025008817163453089258810109393515494880472903219271946488841334738499389144557227173421041914602705741339482922624506843722049920155425598927829741413695326485658998437216030992884408019331749682541560986872591162615464358816287074831953988913073562884961702580305711571368715740423527248534775536798414041098834805643576177302759802295865425745221642998155457233980098319346585808754185447325249418403561597764836682858863244347618296283549827918021537236336050790914705615235723523076249181339572054462731106945835959230372860770627019475322251620730104568908891855533957961275488811690093524496318435981646171243586583015393870402558352037114711872284609138660835098199826186303825566686699996999361051143100188978538088246008708821454139971139677700124340561691061787141717703265702346714424533747012706437238980681467266598112291840363027577672380090154030635613857039275237327092084961916093380291770864597857131017171966894983120208691112456056770177924395465270168634872256091427902022839485614253940859387731900122396633109901256099480180447470297553736003361517376879873568830795602888395126686213785274500799125611096157284188381916565435156086222788049405513743681186105050157444148944987141784367492864741621737067927116476005889394677574326845557456490247400299717281736206404272619511800839798974262980001348757144731627455919155444171512185425952977787850165545752177420570023660887216586438723385404074357548134037473684601369614071280991245786542922155126974233589729043830014141280017588213783728093262906800613179428301135217847895129343390595405211124106779878903704470662123188859727452097459416792350897247234866761067397330828298223696339714310562454595677340325672126259884246946253307861177871892812495532867182584158541794270259472531576534964173667414726390233100775312940852720519302862061616458460023998755531002326865218953474427172997327485794250009539806513291660202988306785130892006763912235724137812046696024269467889821908489409986837716322350674955231021098988397682893760756177091124378430068272369360958002896123074888139593143812490602128547411651659350530234850593967261238421147163522419758909699916176501773695619287038961725562758730964147891856572472636866932064249490462396271773289810677964047588107301114236213147850528925690575237329567646696015911564980396512907704280392528044955526061987024193608002015705955086268450148909305156228591473666061393528841698733360751859193235758076965032791861667801279590293593521565329844709326421704209646315082879619538198800657256931098707352964382570286285518712346521425565312411103694271563798453526144571698819124168886974153632112510791917662900073151064590346851947283552449875521520286599005259855062970884512302064760783519930958937892505543456231777490069650816678494906425998750396259756877308066349831152912481133094050608640655567701774923361844104534768780400520356793926381979342389695491715820832564419731542450458700832351149504266137195709050940954906303325629457385883525581072313549744202726297107959671927128563971263535283240384018560408922159397491443978955370148729610430521356106027579232879358868966768232364365271887722372361291516688675360676896244284670905109807249402979811201772494508693779930232080687041779347861411770042170694460268709590598293524636232013896710567918787850028669330847956601242787257558096548378013220967649093318545991552922939747136190529879629645818757441050224014436728360170739172813707044849779393502622132844701478104473644256701082379304003399613714725600534943643622625893017715009611811648735394545551420058837514299942878096276290598688431529271364935117477311661259963510495482227629803218054203822146201034598936160395685885838101497092074875073106489797148200016543843736723292118496697873371739594621069177166490771813081420207928540886557066870592398426377809538357767733792908603779179411656678876878886254863807895137882473748090764662492580377147155787320804918993932670482452437905821211620922306402397573173865473109621637746243083743053469793153205629807565160390253096706488827784023339721264185534329152361189784343659005944010586888768983894300641979133101698732834399967233532431979126269813927707112431750941892637750238238966009730557739658795251161567039316760454223830539085065247780600841391816204995514317672202233256817743035229455778711383278695314925173995275261868567033218263890880507177292678085017542842258377322047518054152244661033004034675354033681420357556200111131229835827540760675376002578571490806078915924491199367677534135960820629707210401088562987001267370714803334336467411957437625218094848740981079174111085235922651771346001857230715829532118107551180320073318894894269102245847936255666669309959963738066818271972535812526525621255604939524753106027829667754930274284289368280793531773571748436349958939079727811774314892671573507809628903886412205454903532450923712912280541886205901671725649457669045915276964677167366266157771912424715428254913666217468552027068539895511097580819695440198509667726766478467742124538794706589309565981444311340386625058180935813461260907298658202228846777056082459995756085392901939913436144464096612222539991777512034875326377093754693651192801053889225555712296852425003679587036907720615632685372921114541211625794038463155030974025872756956055584450596688816002211066130750451678169510931280919752318989306677923546305903987804882404439120299296019740408927622668700371019987227877303689935306042430547939600460803043169814342647588603705600284702350077434372016687446358128355538770031429397512622495937559509173540058829316333577145779325537404235558545638278147752121737499349806406001186532535868279303262645657574253359468113542752329295262024493384342847869869417567718863822968003545791278303084066568146214921530871424569521296855588023134127697550704343326724991038322584029094570507920955540092980299131840961050928654979031493266707158945747582737506797871804953137639873967789291728995109576775780090034037089418209710021369700818266715403527808798656630861972893428980876094547875538003562437717951386719191654379253184376180776529654744416537097204959964195780960330213009909504683651139809952411059997506744768796209031391132869531590363443897672400187825412847467167415641141524042769974805245466687629528608376284243485387504482635955411549828157603283953989491073549826239318550125886001185819716776452481936951181343366963800537254265297806707532320553833549987015780532835767009459280815647813605014568725572977124494229030390077416222773337234715828804172126411716713877506791409101242651397482914294955860151220833251038208160390989089163971441869599294665074151912024519405442453068144601891405281481619677152003756945250334793891676783428481242820994617013109442322497961367608612238654164002117477067061539331538613282565662019063275663390527291646294129465371131668712198565082749985041928919275655801138847278772255037991093908387866872638703083246821771649453780978894994815667306045070807558759314048019820610221649779319822049101124576271219092939527116492909703790725466604747666682274496994726847674907166707127620547030950991701226027680473985979018574219987788823267465617917976905569194306719298842887103965318123083753901964262896487978842172392440466798477648218026915524439404174135151567976873809666719362092759816385070749482358359205059024793280505430239251095180130439180978603773354206295093685263511805906704873840878544630304761016022809813010249632204114440168288169466309776658780878425049223281948316274662428010061195850225397054427898520685776321363269497678694730512930247854862914885174374754274156381635769754202180710125595302151330209064963674047591152712307824106284505388346575428012469110432378171412520406713006857334991046203649358422811693489271521426234579669698153859097876758679256356516031157903399930293723942539648391100692573931038471299272900123299073720502943551900102794346389645862737507711553921281581663875504339243402299102255242404953296035385960191619851093411226094213940999145626117846785226960002888251252533995188283133027467064186397493107052207562831981784555761836159882765834477887157514765096479833551432055807121624430597916842441593818978095381797803824999562170447366823235899721551122254739408069647918298991889378028108339801147022460327121183232315924442926455529986749617405252928475703155007010404599778715284162919637757834271882697468152140813224433247950712983690397572520488178673722911842928775576248465630757791399894600658866249851402748613216968701513978216288535593192815455846937099522902055344985348504675345389967573920763234078317549354716529446236892748738737258353116722460101378893296806523902259819781714034634815865625242981072071680022422306385596690933636014861081917269189614602515153166492208316256140451623595405972424752406338015963424239652667224151248214038959126851962350039202655149313274153209159788541927210304246506740403624404517933765093525740069610891280692459554243349026966893096998197257629665338705553192344121396801601674512713530822884997082065362821067564326630744766422104987617429005406620865355711027747964632073042545780170033585979781788368171737029693534658251237686499201185561313715861154625541206408958492247025878545288935782308621862680247964839760814558129973713233141036798724670135048551470949464036354965871300108695640568467256850671729547326531407920339162742483272812408485934313233485914240956750997750631115726415889125586039379237322064648224775924852803255479369013444972185803046934016692933509272932664882844945358872440521045110274785008186380302700566531280937166193000241887098166970280517956880736187021963810739580930749222312325838343589734703619529667677663343406462768571983485727391382904812048047467165174459741717462546649487277701056271828335134049654219578769196459674749474177063377453500697225397604301741999101722407302681792038359639257847796877682624962087523356445851332084010599841370295728326296927735498768246057535489685446268886061441939214326707893180060376651186909834051608354245884061785635842195911870716102650163885486684992021914339922899057899697404238484433061811322580247708997810783192051822845103832022665262137425899109308204528146717865406212986698828468701076174759126610506297642989030978829037297203755766317499303763016049066063195329388306636412217189492617203249630641745132331565705825350159593254604385004917837610424661218547744108050443177042158187924437323936766800616714013982720075805865837076418711539199473512849604526336870604100702201221516544530350962445451656179765851866865487161593063690941948136671790531597297731584190457860874695119952478748243697728580855179367001048701783894647620240888371204863086895019153736341313268705002546542626844823637815355611269687525316266547573728091085690499925165684027059654818557546222198310112892449028956715767840656773433240942008949104504419592574782925847801772341366971957819181028174465978266291588006181047795640174750181909959429158855437111019625418841570130450332752492177395464937579466580455779740447040912311639157672188350202485190925167556492187877535291612657069250359036667711098497856134927839694013674267027972116839530626383560408951797545407654323670626284319162359945760689657405746122472446305942928198065521887015401021225295867882637757697094939127355799960958373393071070897953839560118669737842257475949396925678145521977503492780066244527842221179439312998625482024373444703415581815284964038724438697806494524205998446353246177434546248477028015770914636437734412957747182065746086915901898726126844658593332487829771975357055573973457783737201836161492185939661858168617094811648362482114453850328963166207755860707815045489567740256080004400586435144987219824784785705884052005288968792052872353996240519176336927722438213989778851955185672263827299438701404160030515955624024260153066841418180362777013331912664851334661002619686199296036739519292679041174373790461651726594833256402273661307173118945131667702748773754692293754009728314991044452080607408912797605429202336830293293747003669002932747890033336285090471696703460819214610678970195862428258542208096345143578432922844870458849301173328067954887238354972312245452869647886801614696468998661906459406495089432475923213996265085076726392732076591444508155638603773897422118504124666380271522798650643959780077611225267969405975171236117281849276119901460031144708813866589511101868486243985107653069322279573570697411481906967080771399628463432261334290854513728127918237134025825954476507765837474039587788101062724967222638491027156791827278994525757133153915293742926505465567013724616027419131942770616839398838734418733460239596077431320472664893326265785206080341298268775097214967625751472447875982861633824392313111569505203108216035971201654410982713381757457969172531589148915337223554511600066398709168376596150365081643733025101621661820036113840552853754045259258553711199232940328607878967895465942221521524069046033695509303331710007618581569236313249283613830989874826012458708753731969572424886102673216151760315441447415198570549250600548959804442530494757699855619309958827650189597794207792692655068083804493835275173226655644429837906120051215636623824277199060482107804141844392993589666504559273274436166698297666641647197830912834437448546977967530735306642657438139761410013762132906248727290841305176062782935634137635400657203812973552397246219518608671879284310042021347688288025460517634080329663322712125776795724293651400821073620105770054224931459494358208664357332901193747012766998525490431587781391149268932891059838409188092912772569582088110350107630320478162283345932263249677560587437491425328007631119687014087013609124316145435674513272972253007478409053965079446302834022519500400840757495602421672251317251206764019022851943437219388948986293152527660301940553436741515020266175151031302379942892429518052203054000974488757040108465589517427746500632267478371532244143235104964561627578158842217513039501108934387394635229795224446315742135979117096361095692078982257594342183974265056194962756009091234474455829280192538594849308964902510946699265607666893637359160873617653045169969262546415689723273971095963741535509697534156731069194245353147589934573485908231313667480191981726279962413136522465114042307337984767578499726017704097260694684210274120356943325798924421307751183293738056577396276734011732991476340617342255163042979701714196112344374375787354602120706022837611846890649409697718540611344724880081934210599116082912016273202118733519105676474966067000349811276605500245834032929544864726180424201606969643013689876475691102394271971007276921938670135745224489568558788920715951316122466126786274114701700693259962224960557519307123341281788661863914942537940306079615649243855597744152125622339262161849155558975553829980194488355836901467974653304450170609618486736592157986036228917604881822460226329448211929319644781571962961631217900097816374366684749915236812122519520651193980567421021456757076697123756732271008656504890404506873070992692703092558193950455389072806847694282523901081390087370126800159261386257822213402043221548330050981150617695590545420587370505163499968610130252718280323777635687455538540567607151313676059801980116649771045913429057956261034810801053657531932856542455817851280061315087211437637029550456347843526294293387907741526768969269384503314458856252813569183030842861596834020934258386338263498281806366099975228391588884597234257583763565937805945912514564430551170887613209913024130944952562343701156579897915749970482908225418930462364161909843467895251213039462050281871949184500507812907089894250842737488854060108274344205038937180849432703626025579822475093251363877159628737709197219938749884207989862085211007005635800073531441660401684659385535435507827917632204294658487040981184501858981230447435983514550925689948683494613128703604897375453204248051085346842933716757432473110492607035110297826027715129757308709754030246429596038631529294804627837062849115508157981350218640428045951944904973093599251787509472319634123431377597264095335316747846888477637965346647324036711996056422130720091691194638053958828908557828921702442898902930669397056615637315831931646400936896438869254909722729406863935572204244022065740419713164694907302913835794398368548738462625312164502392572775570232139633296385095131664370192843001119984809927207967203708271232519538408163980683173392921774572396160784577271897113765877344340599473655109272752813531218491744015363515695304014110319265099099246086720875865067020272948174120643218193181779441333079911138500981530068339432790377971330447317451714082794227242418743140354077500210521910969524111100756944091636660392223321976574220387629789761204532281605290842242581461448438389879184517984882929988672666820070450569997366240501036561875484757024353520384224091909357831316294334798108298757593810381333340446727116764140827358122695182916267803015660346400614375066822655105640713446531267823417460857961334600315435388961611578122604296519407119261063628612711088381407671133360386813648311436867452228159628117409366087375162447552492270929929099578232427988579783597104611897616651919818702420383424645226019179695225174375222148049801708772131882351877592979110470867530441912358888339629349679519717999656289607745554480698008524774448749373902799011855991726066638577712326297409799049622692721099530438501289046268422120693263440534329554430677534190187771343235070395546993580192261700704584034602822738917575649004862565137170718691165063289551226603132001868461583545613667643701473968931390178691233010838902676197223313880913550363308884889514123141220175541990634660807905974520213488365224977744712551271714576034133826336347027396471414827522951270986064668501324419246492966288865267774276036302814562269663538468918978212061134503842335649563128585952152262287356717634918890261385684541873990803103452596078881431299099035808189160459954404098251894397094421917613220272274979835300058100353365506696386410864112453507682763101593183443242607731752004983442166078059397295013427840518320105941108872250051921556396398541502327156547625036328445339050109258395429267567715128662874916335023305742467253087310334183078609847160360215949640098210939010371977173379643503017240932665442449561480821709824245254787143969649444889568002918058766489301018405697845164472903466305497752586164148459943819723944933678936984094752463528726313621115749730800022506030500437380074108526726978397335292253783312123732755718559045450407135925982078089032121430575923669670367784836044892064051107605305074796203884281825007218885114310345407190429611615251716865392125824643106978518548349811715794002883973669286327633568514942793397927987587979268561952101112127063530496411390534373184942246335221318076860389438466920566112654825670871158317191049588105122531246770827523233356311817138363332361066673819507108680071381911371757432623735256507627624800491227801449446939249559481309906895962813989213737709185979606648026831251924631407971441374058247398522781418641801707627769465313986498460681796099351534077755010964770117266670795912024554638316663762582865712276900244908522217508802839463548811365295730989171200658211151582662184613784711868109904634512333173161513801166086262112601154276323303536503068321380983123298529457014265525832514166820483637510627459938453374521115041504982824749681269391463782522464442109040124738872482690231172818686163556286332671041099146839994682457441374983416489059233941838873575441064072583686137713580602819819965529251792053967210084370010489627061421101993939912088159910658773275936523011949044770828802097147581086349564853544826615650515962689780037089856401171532800870071778930034924030188294801938356055386443531908792868097054251574816140656109551387335367335235032515634022646592101941691253821381709627138604748087566331603207064702141934039896110258282845898950345753776903097059948492372928398152126244282941398844171162900324016076957965134495016258570388332355326743206621556427107304671724072242084567715962408609243867150108736882400179852600099105636491099584718349541523524353475527255915280998749712503643729269306817742654003904208536429325723929599940618448934735913840200651845982191893605761227589240282088796886721734723486553246823659132868353910199248841880765094281856653057141190956954598070767257274145240454710050800122463923746764748089178433296204348520391830772199473945163066082992874029919322506965071409777260698175930936381434661141034430801920498136131384769680022279569248541892707465018224036840583172093490480082801925236791014737383336959117628393340617660183431124923630882943011345312070899813474044510445998156767803124797846726972852115077877932706781764744323430254899530145206569458945453060671890959441691598135630319116562102146053340837998537137003133873390458947094356227217123899110892869032918120958176614527342114413236909760690006330486158356249014456602381748766159162144262321873181421337351464442466342669487472060336192704069345425590380841679655186768520280332683512046110569459205801196059241672096181189114284041122153414445890789641454164273299472835039029573838195059862186260317432695450958432225805310449461414264965048120184851704881055024750362172890476783985249328414610245707999559963432370453423309234116935789359899231758465347806324715012110377790071429534885105746078762057777361260295561585738555327553653687627053621840724780734340911206974593618968182397246735686039514260136014828954680958723253676009688457169740999561728859057539157612904192137810628529386363792471050717310252454666111069165431364833231976279229574703095119457984269963963639342174283712508256541828978156235398109181841200992534094385037487939707792881610122092243632369246514941281318605664721782290840724013857331679098140834808513097436198430280219769982020082025833699590014442622084063742416246942768268551924965944176862191554306764722288014496850551859187713037513755746298535989178177569488781373994567674715791836846752151798031752083281135341681801723024296844308690905254392583270750939297102159991717657364627517154989869710647569020904285659379522265626808820355182437084182628454706397580899727157827958824893027386123433356942181261120068605340509015611184041747680131803334840511594114936393084222087480899794906484155959470133248519202365849216056617329239287742974267193442511778643575641002529380021998643255645129674054177366931988619139801354303374217948890321322546516374462472006319132184811036514580464905706725023625837554865708209412401889866362501473936758061447387823411439222283067275740436319245496225245659314706964442872397447376542891209277979669443000291768367051918834333282691904967934312784193865850093917851118847300208907857435760898658126292243855396778905199111844337751922730344217908010333359208446061666289447800237945416080531349753095857956168096959762149867242868060447668313438550511520717172844625364874299364951358959153371001856824799735882128610635353167463004456791019376381820935831955288170876600463340217081444407667846492758435642654261671025095014405363188956015734377628962593539953594402000859372153144051044977431938142209205779574347764333881026806110004557798960496580779465590819363034359042614046674061150380986223956421755773186419508116695723095272894516243757978268212911345109427586385396393352077846559071506934034712631508174764676781075069056556668365639924759535356187991120963043730757894729897083166643092647331261258360769770128754751466984539252628016051357354774472927738803924511864214325504744556230997583947340585082725365846687814097070315269176493371499549972593485625429735300330225903304076605151711860176579536719047954387686340976774768871096081767370707135764811755500551123740833797048529337352794909320052219102844218914590671287701442688340042576805936453290599089941621168255922681389944256113099682346438468035944078656212844849625858942762550357337985177322562183234531749672706135208229780720060891776031800484180013232281615626666265153741174736627350619123473202683031445645540515795772191470661370868418099247874240524590792934979163066429336739601230427091540023372275709559571009736438923228012586912727716361026088551060547865712335257455241244492217928976775796179931404959219409647587840628332605070404140932390384888291416999719756426771418988835663097510208063076550318455548962442483984852136869432243185859012337553618269769063523096520434769762429459137678385616488987751513979492162269364830961098618816339765009883218759209351805491283268858242449248884518186196984846510819279139974453509421908474460616951476686048384979953552713612297798325481097834413623870798898069273527794596178076076237980372971295974882111707674641260898484492329889459127199414361119883011020708893046851918341792445186722476746081918328580812479163591813937161939805832405945829467720155729845926129086553879443177487870006195479529789855545450018322569018549106471247136283439798152311083424620440433390139143608400982207687383150815841395862016370398492925310748170795448769293533204306177623212301090057689300812668097275970893782144984230591470415391015531419346992067952070381657530828331051449034932377323970829157201032045040554410480719823965523705784921353518053200053958803188028555097642752021995821455492049726883513413542801545554521474618065193863903674059201521108177167747934063211665177648997020174963168978090048421804325333690004315707411788763555681622122364172753337539959630911588639808095142637125689097687342509598183115005856457182463728262896235193852420023752883411392060226079233686254030336619664228538019932281634056572278338229044595265437313234858374401811563973081597949351024935479629221570625199418484941122231908219970127125081364933934933333186226531425208253668335960789266929024646102848111279027509267586173161811344848834457655126730481330387202990793761046427528867451020201684861455087357052394267363596196721392721502838009829400780671020725995158056785580748384665654836108146277425419048483850828035812099708936821102098006725328698500070545403695968424357415860089800893399109420284022142523396212567527212051598494819133067260421551690512446013437115382570077098133088377365624763714160405856177511521963742700658655967047958809348693683717644722728610847541502701704447193256863802013488105485261003994802206320944768993549772895267545369321981790259770994384371325876396496690405584181855844853127342265345656175732139407370063999726219798779832244202930114000599964053659412023103423832279175793636214556012776556642070505434636602582413715645826972336231896563827272105311174903645935070706413689162518606390764150825686140045043629587265585262782664341258927318646463946193841534127011225231079852263860184405050586822313377960760814976273231640101250729101606097186501163715788641586825712398621953309797374718285192275368162902654214089153359648885212294033606276583143444011030225397283971411013990753120852567286453020458543028326338472907467443323983803837040382339747650926626228152249330913923407071004574032482609647797804446226520679971654593878066836846286377306708693931865828838789128525711590670576595199206368550312189868889068043030849335378063637853412236273829651074212967881890952280172507539998825114155757670141204710161838167328478292349084376702638013713251267679047974691449474493921060268839534554964961288722025445926705569107886097351416383717335200392345244424756833494879734867648663096949676918476029769538444487109697135597901884203162582789782440393552474599565633019113707330999978768624996921948359350355216260370624516773490435996745226950596258627880791708812548763618116421417027059122762990475561951687888792959791613429970485795587474033663096518223180070833077996241855547236832593500510882799407384188584093490900482416159363671911496594669678094077468354248582392638924520546577620124569786722252391385142608389960892023293962778047758226872074861019183429678915467792468453051678644234224071260927683106954106398640706327756235022939482825945848237837494619500121685387457584418305592439221027377447768326244211026355531973333247518575558233857191950292960901401626558092083383362589939192366467722573662428254120004822824014556901008707980339983260965598914274805839558601129743238442951701904825436995362683714070974088705113669247309345947994501165153824676820341601743503183065411835977545389571091167863745636332655916428479942152536671468874639963273628776872762810481380124335917811273268522298480323811155271949759407244868246262708284415920094983431590142304100873983072774509273473180998812522811053105452489152496744498756442408229351667442942771845801902759496723609768860675753280487230471744043907189584139128005433980768396122300079787410439651142269095662093127810069613736024712921263409737046075391484649490054563423968670222598765604007423571605616324042318110522951056469948619294366482172106448041313042714409964921166807168268657426644258683009323928459781473253758975282666619674893962607975414432285409584246395301754227670080117203177414390280401915773404914610277593529604744501384698702192160462752397099424729397733870143391185644203684578906612024269463250317599829818424050758952348999209906334376022543923293342264956028671855303534929747371540228077698841171901987358507282914170678163897893637773722661208037718090977405927028158710927042902463021146490605827184332589163792165576534539871424901120070326929121391518996882678256294124726681594752216293975379285650050099576901190207693471156657121968544681981708650372592591176353052488453432635451026933739883349160681600671215337886803353706346498118431981059639550419443431480464228728059600167251890420354239661592251301931025806576925030646565786285882316277097729081106533174679842599393733113101096486822480880166612772638025743216792874976276219203377146637055465659147609421949386748170157680723551357927441319791783320159807275258876653780988216714217350559091857918587100851660825574754879373654354362804342632812314487459882366125809210538312934246779068909203259665901507107403342649709304284866348236775523885835569027291273542079609814790155186285463901052287486612141859978295051520573389461661043103186841078719174709460945326756320029018387005600344008509872876993151459242281921609488069262763691631534833490751649985970911862472973565696414799006578917661642555883403159644771842777278792150492111212853792476337620989399962159231630053921582840230610064901198102418166157026417652236793121526164637021608831323734803174020219208528904713517174363691056812870555935785250362788722888936776975921489371933977428203298840468180955723253030000319071073556114065175395936777644139544229326655296275761283225300081363436816225226356201701562710203856435924932918694345004755638904448677817491000704215818117566741927361195855786326222137232617144438217453213694607466706164398724519260771945013097240489924032214611730119058999357839195591989445674093406932097603141017194292338318362480479387485783300406619739848585644482640990985838007764035650207518430960193561546786805670829949563784994626792552498022612540216286394165586357178194888074848496788801031659199990329899049480615875210010556529821897986985746460019991059417046033532546677548723852369062193805010945894166644507971406225255883692124876261347507489575145014323124237383992381134031038132909257083802299162466237739440013061847801035925164926491422721815684274696939457577037336478182600331495973788072639380636063380195062834074849395833144885530313353058895231772617291003113027545898604163157902402779571647533116210114969140773870883586722981498015427051741570722195794903277724548483345251993981637519934733924426057991034617365560713861536821946431402181652379257621742493656121276794992031632267519390929305494857102141219969725736971171626175388585340180279280336941452148584880183395211823395512874785293521669112686271930230714858513895558997944956176763023797949024406022010045772851330595714714068093829423440768280034286294208665174256996573687683857413363961311869437110377555040875517906500912107871207851877504300944224959333912577470664310264656623216880300808709123189047343252551155730730043797976841433605703949941539105869904415086267546788559386850685953104937678906740226636539005910586077192060332692582174149577948695255470061382974743735861288701618266630728764136591095619329482137321772583772612649432492985392063336171851074476310870676773815655790938324898180468607647905940794245416103599828349637793923902123279597906675778756454022510342239804041731121551717806150125372014478715640294666983801049540635057149548230469884578232775176018371526845757106691995596871141233744248630064342108368134720624569461895030840601340792527788548297088414912865783221235660359804190886427788470404171905263144456239634103832523914158824498263974355673821424220237753416079986842830131579443990769046199280102591061914518143723670766617623359298137794117001567467822791036739092024949832507554350370764323674167016978928302937244826766208473799718756638127415827683124060270665156235531341327402334651788240748803230465670431541952450616305053371681362000037173050169040721236350808578380937717115980871385274997975196906803202770343944544363792653311202921796278966049175155686054884168388262187171261084395707522384223694130907905430257315132609256659489524947187669269785935345188431019349152867172830840487452970605295747062476023576885915063158746532318321159523313939976690279856933922157868965915615008631674376019183623303281714322553241340989525660384657250298187526043443328046807035268482379901560378439627051419791219007816448601919545240764820090850273919324487503729631558648828760771793744023969666765065312342997508300982323263396213664826836890255248206853562247693122075225014614519258623026371197397189407908633664319162894716123297275664394052665330126371641193867821535495338527421765195557483426948605548749099670027406184090263541403117693799657059374143374395471137491490726135869669491094683082236027530365596851856128067112401592025634717748828786967865936859205441152844310358472755418822322656936945152470215087725845451342062123446743291822490870623881527000525404021463951369742206570357179548014549153567001339096032942023999973740405086324260205899242275869017552095052959198087554624666809384866661157290362864675558050099514632788265521455634955592927755447674303875760314323487634025797319483371068865870685499869525863862069293405761299552032172304764015581395375613370652543878166344785892581129919658062195154153937048137694436526025035066220628560007540176599896023174551003207630525641812350704144003471829990708263457393125280232774077174976445403675876139703744666252524315827137598006526909324811027513736477260276892434648297003974559857743261655530971162315329168774755137498025617818557885205494039797373147221961576616746796205152388287431518217118954953893956544164693251586061183251220685224638015092003242427820222560480470502116249771331630697931133269158956288781847128830056936453359401071355073658542046815573763663395845512246406675144133990812513533472616295155596494365063138705276701508851227428211257843742008411809228743275230349669506862200850302809938016217271665510724183459292659227155460084318243910240356778238281206825420305680886701414099636343891559341232165074911619682467059428678294224241110956115208876813200145455690666518563253178964003261968464711250707357173817018388290595683074347877675374232483922042669718088826273658897420438121725370018442364912817189570727352581316821708288530225242547308016980921485122443893080776589004023300590162228694577767387533529886095848449386883104032283772992882566044733730872714226231332828253618144421851606710043222470601106982722661625802558269364251658560286585505852244507221566225910608178006977533540445136724499523819682952277841455597595885424959319498347982471307351528940169177051266908633873750004863770171550579424826912559144421624333972731416989624919046842742001002060073835867411103432149396738792282975530230969462003834956404524026158198572437231946898612881285597437657997666468316435925028342328125652806580799858368824995665008748995695960826849885375404391041668754624759531857265922103108746157354876155507620451018221104776391397796629939993981739523870778187598887543339200423330766466659941082080393946532581433584667070177428892843298950743184396351853228399449308548974151872194834002125423859253338553563580008291406954249496204072211269100254030139541936397459646417171070306897310799424900936294881735167531907540360263240832410237566203680372866498633132774120450128676759828755842393451047321165453112857012063860139889842346822570108050743616543432041658953578559150173190718774293066739691399413112623146683169505430168222117027701597252479964444495107552735505260067745317076369928457668465388631550019686451349933077618936453215034668271257575454758284107268321897618485225458424093459359351635186294080175665261280607419983335200533312504299549400242697740396967055425951120162138379558097405186524525072542788985023053861871905879008503952071131356598995579387475552934672867362346514080417544342261689007478999836808124515135174983695162561128755380430496199158473548811840944180277063734482420461116269657577039765308441242430223570380794016591650454632370418890655112429702074162606918748801580551955522845640554368375719689890299022704428170131113337658479629489013307218834274639260185614123073249177713468916583316584260946133960240475101182043219848444172099795756789586768066285446600814840454299325183543280202860487789120659939109878150760993044888729080586436413756942824509407143592632304757924251575262053408092030928044279071084141773141222514659060206937173963269861544147146532310304407531842083792980875801965723121836034031326973357709035796590591589588812691667553684854659473679067527481650338858105832248141574433661380054336547191310905289160849267141794079697933151356958034399012247097596107072695519497160873087012282865488799459841933035935815439305599391922447367834485280710221355901632210988733948645799886341828454291070266114573061500603900421793656692406111874026747510046862833350875956375739392747325165586013738332629489538175344564337549845209375568436091067236600771935060978468264325936867292192885017362726811135836608323883921461303421188025110393527256978012590674824606976450588992364017980036432864086661088122984790197760918824157862202802778321089729283923194303663619029307811920111651586374643291254172872887928310726754179900961649157515073623756577738424794146040971102504137285452648979563823288952679887698305018861707434096926597712572881185091304725006252631334662093402050644206222360417383346441810716422842609869789577693592334140401196894127198778006119662686944855792510105200552815982968237489777243632229925756983398029953782196873914673810692795370551403181475152673417672036824774063629681397030757529288498471969430998893047600808233963592869268943151968531427122020337415240805521817536408198009215774724669697278548316898375505092536216739083855813721039004691701158182268334756600637074781852073571573675123924859109472162132319817310166801507366841214968119435804141260702398390721851753135045367204692495760515704662740470551944264415273580987797323042252899847048208700572097393841488443900853331256439801003406432240754145148075566955161226198259260016963894292366094561647043123945719131401343932678962455064933187424968649535714712729270337096317068392443724299349184457796899606554503229156168828773205019736421657679328028557113696212033255552170693951838274214922515334709701266754631868587251094098336747570331436714291377777295509629413417352863819263186234480310876839753024295840671074380786983828577414228713763778049673105158854584968188564606302179589206145801638488404277481520411957930878958553778036120886556971341684207563722609712065750317327679477296033725221775173820402723031569370434102274197088294981746343485770284438618417068114519326206201099560242228973355851654754375205969356906320615222180995504525791844450791586871821448780664134579691100520898444246023501143028601710679069721304116534433766558977724737029521606718579101957134965981546930811973067839575038106130606020463136233081605281819765011033332148452498242493517209669428893187298290428627356198406333324612712298999710420411905634097613002845009456658125771017157774933831632082653810214373639931339245014889285137653959564946519253011523597799441382279276003477483831846144934298959617933538686532321188685871862896894223255067320608615462484795388294091171814231387182827551107092184344220503564023927563063698254171012825124158643261986084118969681998894013008904915054860221304785500430612801165538736245393879945402658709881965689002333955196170850929454516039477520396438228188470643196681221355424858869178986462926268226538378415262949516980040507104859382877700762302468583024983502639841540470965128736687847649047284272558892213101458575603543886340638981689485390464074108087509704955174673930561735687042464486507778800238036336628509658847744398616880397634381974884275734226567687953930336758745098069197976184680420285091189571259345078554554130767799468247068750020432920866081821448533021007216647389686987116741004162944925172185236497619153700294993623079351381827489836259019497318291407472388081211289036364803111082814879714094470401860245356605971514623684480294836611248478969113804084342355011872636953947200369972947381246437007425068136870428339307234957706029907114600251817875645056540558659816677529844150896673704913824415336953373909424483995159357611954668013510781248015731709564675243752255034695851566640766833901473534871716063321080430499187576400285544083784240370893225082864767130093832220022717795112371005549290135577941721624969963053680684557866500079598281500016189538960002809321830678836207452338148010879783596170930092851069663743670335422297874449610085861449530895804311674540464735671254455030838575252786718757772301433155570913411342051075980553967258721960648300933314139441620660568717520880856233048873889678655351351517983888700234467348228357381040530993956384514158188350372438299155657573310522885901542202124511859464479779190067607255893629865512334889042679842383137134364911599286984081462508298670894210187295048624579331615369844005996120097721650391812627929415254565807779185001885807662982311589620474433863914321863070999603697575400044611304523483940273147155119222588405430435427252751634927334901121799574239005690701223204661902916776345392633362633448923270637986863682100495910139134183923812346706406147164876107880611093711302662854087483146870779180124908432197464862161616023740225334198968223597561029426161039696821127410953956443598289015617808103274208312633761303229953469462708140646830446474667632850223205210090051469996092234165748939081190776754669471605488149869497140670488875394595002407562378552862761715194205870490874077111021888903895649576547159704331511105716376589190344314498888608638718144881524055061580569904870401418679835101029114919555042828934711899534530401502734319210583117740910882727201514773286635770159793064788479084249330728966329338046132329154713649750952571753553471606428418008818118840174464315790876905172037535962968051929848721088597744033049290085852728974994064889600975873819834183902325070153472395152070705351806751188428305444508141306128834687786033192131336436349630306037762858004510013485402280664586555697638078512196110501991969272266484658234192727569278149166333958216621470683783992941075430214498594934212237763653992102795862344395531942776586758410209366334043864472170113275604819784474066019757641511244343871105753759711558696242705440747265747967395083430410075918486221983280531842196011082008493335567615491495878590498057097184856208868289867034912077363430701729420695069980869801743256223945019003374145601766316187503934765658674861013954738183925695700169616126954311890555139054533233923731871133451562354710480795332699203455800073190425845594763372929277935726113134813663192185461094105960982618794504054408789116871371858335873168845151806667290072280644361141105085946651318260657344187488467313423100240453509324908870132257376810650356207036602903404639283928634610067914658636973239924767737286604673278931544046228704100664318938483807522493558149355090410080005990828529666322069067260612713482730004350294671315065413664191346844597887834387268695802965250833678546005868896823766362820164109985498713905804037233192357377314727420527464847044960894034352903515878278348003713056234062302098165628909708631920297006991199321477764372821317885126823021265966545966595052374602551226543099498588984059542974814874573119918349925829415571800761310124502653942552668330649346798996578029881862211948694196560563194539285130865404017688461698485387807655652330772828219550164015512308542934447296316866776464845477565103784253459172088017788808462978347731183459035424563922472372046564635560455927980008825927115773965148172484431845308102004484569163992683270427772357565389691856324979431553303905169171218198017323876037252854903313507770029944230330254654401728837672391955214695869330719049666032631757241772143626317533961194155021999066296108747750301687694880801089394007537679364103131007782105413039072958852570406116642802333822478030833024226709089473632212217447069858762013758055010606396854151999038928999486343971457477185755164550808505689212813062847387926622213084819097547799813780863685551229650714537372490186675923283985349120142259582877416465594619320937842967075472189376711601350435360367016984029334302135378306495775455066505792227489810729241682719380465873277131325479216001475689478385557226582300604201697910427420774174489805901036706795511076797013375237565100849377298328664749075862188380608186188298292825666201932572647613395511272637618602965049728602714737486222389665618262944135556992436820540515445487712994561476215846212256554011644886134972631329292064890960834226558329620013456731265023910965141477227967487722814180578894690542844550030481176452951122069914652079532167143348871310516539080654560282031874766548612317459061745830655775920788797966411335446136744165413874232380683128083023671772251006798889606909480746744609004088823595958150611113894411637333367674575171172132152946578011431708310873656365267616271429501537592910626852060850612695591937518871101460721230943508069646990653221361396055178144056228986151466022541818694185208087975870387347477825435727136919295611334792177342519393771828060089953788961146023294600880675251795582215983710429401392008538199520919838259114788896362228956884504293957327456215774542110531801400390800195151528340403691640066613887109947286874366806926690294934197203273654146254425308674575672493358631391348194897715485976230592092213246257529610945994145779924643058109894142255679698914879129288968682912833090872141909178338688450796449262603839337711208620494982513252454160374655363045947327452043243871719475719958936352556273679444714727052765721385523743923717379884430108361561582679148369655691905206772913701424472273535658384824201669660951149776814441933346206404334504216099973746896158353192665618580696830767586916396421063535943918306215202591437045411734868094925268323633938452802210070179401596282678728735146106258581759306880515547759823925837333538034322403046327875912924205392310157433177442339138624729324437131870794582750550511567859539868871637185753380006407357123416978518275074032008830907061568908842830150440476703254346073653002965790462089207530593329788429416271303498597213002235900042644543899796300177220590629850063244693855828116082113529475525050881836611012578644471907304754805037455773040876919408173829561793843843696004667178132621060862227233471828226071005828437759150278522241090650600189015335406677348578773803080713477228052282053101331427482130425647984374874923304898715815572858892330611206196307800707491330008841602982775637861648077829426965055602791126993348539789336984682947703680012950462104714647487086672638367308050734658591246825881387245701454385946989992300703948734439859338540857557778421622526035900580758643495281755027322843408432281539795912406868086925856485038786690753836437801155210129579022823017677928741595426958132305220784879419736565806419659737232435773080343229224453097809712114554809361504216036539231877634644680157592239693240943830641844154249997828732422920587279618002572655806306925266648681280463290593290002093140579526038226289250812570490543003683615214491877241238988747617465379751802429232586961536034914843153653218501028718315826914956639150287126637577462336759363618020676496252118360059712518903216971942715405846233864349720158342099359246418012116984736656492572741153489295085928448584861058199783254093441590317783336902984143808848549215019103978390400251696839467468486151033122272200453577318572823207270952055804322672239798901263995791638206235680530333778864276842990615493568093072524612402947959944166931310440798466644684495840018904898450839140957997773433476488436831414803442890053656957399899154512354425385661768500674189399346600379532085523529054870214799735573159050537647432159089445383173040364793157948488340470606287743232316224638679714684077328432353059645068372687073545491857169406087327637021327950697770115639031385211875141680425793822035661426392710552178625594895629612697942924826436094155611402858619853101426592531128626194133636452751847179287975479600933354347255436650474379578545430618130362878838545637348011019614709630451098041940401961775419907227281791475559085649288887786489867393430810560230838532321000162147653911173958293176227774583922325907128199324456872272121439873113247825827521657431294525693433752578223352959751921322005783097567447624927230485211800256688584669094522560181497593330713275676100189921989913244538198599664636577103083116634646598518928672019128565177748946710083770489811454745710296945335183218828740980284986108829825273701242832143514927681663156894071687656118291785817430506060316028883152281894475104540863646201221371064300337953629188908926125263687657363550590194871554712965116888341815127273945178829754965491974013737046762491870442712262672553989789824870248215676332046712282871354126842627315247334313034863066565075381778622284391861752352454252283274211411549537083128111194884171228754585078252775576057181832130931961006612861323216688460335947743873968340400147338299409680900382261854035954842214056068581525559029135443537022086015605641010511746523089860929934806699986807814781137413938525113385468275995455580908560969616649452913468869975396083080667779311441880258247092858317151801983475822476930099294101659275410237590989500895575315867444251445398521914306196239632504973625895122306151571205227786555683677034462702771866107513664542129548280763290779633179316418535915505169437858344688815848625607205377198304675030963885148265798505773335326953187449418332977054452024606554814527257828946844099117714766971296721882559884874712063823618280247229741218436212180071067169453695829505175442818919612266424686060468296275971700693557557860061193087366068152678112300910479933440607171910932159483049727898616067931182554432933257069625597751150563301480296978549003738933658817708410603908198446366693400420062199486528360262748659383593482428044079417836857942905187544588656943940611860919367928707614610466605038786631098409356234637805957445153295627588004365194078987609801524702087683106408382599294624142599511050313565931179398495390902985378627531067216354869548654215132442952678999325892724151897716357358732928152376122433207685864324056650464068176462866148805502789204420774224604541699215427556284886022743457766092929335881744655409244615033203589996474179789756124132946017358247880105575951150799010668726751564207641583256200135967946210865919575406242378086839107344485446682243481875614648308654073489902094946190638901216814056551966996330992613863024763963848857705538176578259455903381047733537241673304690081543308298245038345874972181312124663691539398967868189762156792001027874388063785642697663915744277652968608509529797004252999090241501302705574894752949081549120047636208198560972375858857246483119792506223018111883093803371115986009930503977392170193701179625915860551943715083049693490305498187693021075638192738637181620338183932220021433485738909550519596222222963938332564677226234109087470927726809750618691622531360331539388646349410657104479848386957630251730701266690019724561851525118263357504976096176287912359430750728708158641170271889647721827988517727512844500118632974162777391991918498902483911886062895458747627701224920902263642848378489808828651383229962291777401863764257258789191249791709719631507816920894066162350646209995232999120262630771827001790724210041469857639228079698053916510722097198430286910850008230585574886190244876140375991183573200463696302765256474595608113587718786595652434115003069981410406232158832692300036068958239689401038202320226101018315185524388733510746271599266147274714664822934314985037417941396694564400714965538238540586481132584312121736178548976522431378063763327065358597914239910632138877499875180978208012825570646702744166631594174263823864492796238769093272812132323671521571412021592602167308447792575890109337291659578467432599812069338335912109288216148898681633226878905368863505154000853042081357613563678103492409774716409125470924478051180131327372571979551652563569348397273754878494526456818469132799611045621927057374278963346714955540082453055062024451250875345809777152747650077885776860384226537763338742374869692735495904895951731941286356751961188970753574902938162746197732340931082021096973052089799967026902036735822913790514526612800457007823032293513860589847553595370664125228047840050956829296644987096987096675969673451260874601479504246302694544560497696189113649823547946094412561557522631424391136533324729876733493265980752825225702355051643499582454916295848315228533242386653790273330076184661386298061707032185740454841064090564781492755680618016548422465771497574523685814713005784605744134416084672631234514876108449247575528254346411481401655813542872481666046706197316587417203789362338972231606784918574464609345231171286855756726434442952149704762011617621508432909856866040886250840733760262748653825787335974113282596180607428638756832923682609251307832723584799745353397440389996516647004893337414568928461550030955971222402743971767160195343676363820647853698009957447370862070611364684253987877004982254299736495982338542283069152647517835359375445615017369925394163804968249688744558226398240505986165453052557479079152032630055930303241784551962480058550940260496933485774395017209619600530955160419619286602067923855220396299120558395994520071167083849927480205810255498598353262477366491580592662968256891663704595321787916887121571855477698037240987312167328927028132939944433263423201612736501787593404206386374382391063517149659194916007373312018169652586142728236800654607686824689489911847494002291439294326130681356133888652771084969144507557479334286357035314551442857624944053003030732102185119237806841991551980211245331844711456078526159096110400711240553630485303270948046544502636849272581355039414499620531432511205114031289698075708662506510743937787078531394620934050619626089214036530577561986919741747781099730658848713534074644086488710931482033659294520372065642857859350513320466600640682862024198797575561168997774929013681659696617853012143355843694247310638163483565257385414971710266532097512347695674818278896131467089950478199424754968865286521219426231347574746680637937155633994024217922617312000366366541684101535877562418224785855054434472983733748727714705428515978005908789851470194234860575266381405118125259360014092797186140238439842223321937681956460098917732248682065490068213469313165216699667040061755542406544063403408966241118183848497923617830307062963116087316178682687055130128883632841113203228691212876409346684619013731837213128136215074831009184739862689372966478564565013741792756622869784949317252510638791946850631341418975963750977848692774774111611020943113438626156459097973852623424796789287438918794323994353228910614914869128141501497545817950298669310740253303441791469013474779261521727828277346300509820743452064805912728451210740480693226074149180425321050653044348305870442611160059495544242780573209061881693045087363009854647003889057388575553568485212831049178453001244308877996973559292546777274205364313501524474758072723278171552498190242051418241786776207375584692974860588998449769946281838396329164284641819368389462334624641012515692983345538929519591517727820460511087180739719446827041438525130865429997036981246794603081027427282697434265349687798112567463516462067079745744737255690560232522052682266813580542356482118161376321019728473310137938548083708765042868858466727703744580268909854159309217162923861530812435873540533334707860350777749893682574919387356321809919206302721094457780569812766901998228413669722597810311646464695010958014986452984836113417583554015913842400838681520815315487087201934707500304710567433104076317509127385717447972857806130339214232732828746453542518014082707513763210341142174088126582329228362246580509108250933032824658294177556242228593011410593879364211233790736519723895730329999156430002389291710679269503545436094886765863830825089905106320859811011538205789723311026237046910933171905035150259739424191181789925372357975022972548684925108556202011573713495870215612386837749822342874396056126165781987168355941697584583341129355224807931832554810112334343089131053643066090359387982779374822885726670658779959337977074093512828895908344417470197489039509853005510247375251998456415266624318206693202187731128467706212816814457302652683038521479841400059512708814214839020129321282355580282865876829569674841237371834277677283099145382065654253350595028110719090870565382938481281686470349661697579942432843748418355489482790230863260820226753154840682353088543617652580321644185326348673933122099295125457520136170289428367042593867773298263888741001838605356673741132050067912175564405484609630494227425582805607585858692636535637925965459578248183730091890202935820834192610538914171479405995757197809165412963562527644520807103492679714811095668130238137825563003623464381159144212181959334480405861295843086060763898957020685240173255359417106414718832593628414743345704487297184767541661951933271199989630720237724773972374128230148524905554757471133485246306492109208740820828631916435000761998600812669830739836922676878431373013388720082190397958940074950238304115747996446106808007652975763325877894189094873163446932232750015072554665178130469198875390274285002130793395051509100645513310103151358983515132717648572402436580004146413587216112689234305542833837442001844613809153496014656436666658347396942552420579681773030375442241018814217344770530301992445764912313968296548950919625249670709019994405096600525822066869609718841954268339603659427651871423078850852501524563366317834860455733857679091400679876102768768524623268832078919962905228146308776548782801298107656547410705874344069045050649712759199848877257373292472216702125152649516315128758259753717919154195882927340878817669018372884756391441926292842516330458959898185299372404964075699799526684993413272746040153485672430879275486428188318545257827252167657182059823393081750380187190503192682644352103524526816610195203099337328721888791607649097858703983627678003805108255542783585710424890701490595039860903668022528132823421690186853346590384878219299716640461874388511434606231755384550780033309140469300641872949765593804523969726306875621514856655171427382977809682608861330387391178725990934639626593141780846389508785356639736625501286023829889625198178969348229857421243687239932954660004889606748954717286319770698280675921883733866600261092044870874813630336721786002078595991008737570119160787451535336446292610294041246269625630383335786619459120111296414014016075114870506677394981031520046038730842633354401493327131859520051057650101166684287196255001181480617191798551884287015210240675044404629914533813276270149155836500705281617824018072153467382854352270291891403807486301073539911370827847473032203008386353878005318779364899387328874092478145854627330527277503274444108497922591961599530159298119711589450569141700217269657395657791813474547435084037115452862085957620590022896891614990948450081619804406615590102921706089233080727668126611753996452163972621156825632801618663184498391071777852656231301669999699358392321433442530749822200399317475840803548161231109721843803191051905215972560329264847886229700541270131674756540542092050770599402017941374164179664658408394138237735718161622718003243998522455779231510379070278856786881683772779090208239027313864636045042303604116497731431448018144494894176599946597245644462782975340168696808525087259623933968283236816442501081972923391233842503710410695172378311339093132104098918244122993192467457445418183933236344843741669347031307697712510661758227115894685763932380400029765262614466122882974714667358244830419139559643789395566536851824990475856564318280521947386354268210901241080427170383017511079254274667458230577191888924485309270964991499944960731017427833655092339355202827884423662643989631172220672420144849820817261813519376396509304107497479721538204730699222796979018913767170385314523027301409995954979896681422573182475596917656683601417864073074968300645933245692358146018792631710916963950460346489072472345709665242593406936233300592096629892702794786791864541374154857201330175318766856930646032941117275430029858013333912073623619007114012723486625397239657191527053120246490518028881237984240377309670656610379216128791689565037859788733342222356198612261627878936759899271493805060279982046123842956057141221639612170794651310798445162357097724713046092355713136259378287547273386167608545563679784730162083281445368208895044755221142302186083610335470891292433752912102579569813185981061240143901067012174989842402061956790650151894804946649166186307444688451728091831319431610207196630953410585162053190225255138599549669163017279763440579072587796646769965911711766725741482543531906728386519311717253115417737390208722744161635949732437173961077184937123105221947835613227645188194665658368558917725515849709854893365235316472111165001643338520988055571388736130932637636096886658729174495293449144286457436567779499290368030188469021313516898153371775907683832149913866324236474191864615948063036986714381832311826010929727523973978028873100343493297028419708895681594197365707413121442425217030943601992959711608813573655212001518034964776862344155920804774351432256271324266994086180478837789215928324814985525735403710838609158533707477003563005611299761512614920881830695586759232327490917854251839311464108830507369092265966453550057791870167801209532663486653686736432023163200777753594165557769270426544507171227217944051383390670571236519256345415583979960896721312810538642894630821638288462679955512165127355660747348507973352835737480766403858787211346338817809933195364073571639128005153145363462396048805972121988542701127609399491051060972130469374650277012344886632361685446529432417683748476955293460296315279965064830316480683487134585681174759154983098833827331900389484127110543224190085237029862074564896361015791136590020142540235207859137270651728269568478295648008272292530190878142210867404074460576344249443253979426488847346547750373511747759033621252201830738110150827935730427786162995178899154682016849406856511629600198313037017989742034996377809409436811200599544465033047769802655895167844111493466416075492939520917862766842956037198846328765632358147395306524342505689377817046779805463915651805844765043123075400901989394957095757782014603668536616055342849084086971131232796284687937316714968723121141988223819099483822445705534287890505018784351165375142564823596367780099869511283711246531374985206092242047895758094835730708681964560201124784985242979077577299261380769305812330922551537784530401600771846894542681126827334263981113689978725830806293592621989151884345412580391926804541028902588926816666514241015869624019778963881408472433767991035057546742368108394930417725970639957858139562632271884198171888088190049658147157513287056751688904512512883285826630069239308324371958288138391979737658079976819837888422743304922316551838358385361966190242323305043009584608858330383331215577649897548297042999680218270878683909605833767533495079405037380178498766166435367617877680399164172581177450235616002349824896409590974778503808915189558877043445603208345727744006775187790848146058944921402062160855052068077786824631995039752276004221109331556034116258560010190384492754153412798950386920911197321515650518810923643633552472997564319465476391805843938959772382323141500565110505139203042040230132041242208077151632371126117996371403753440432526935877829439857551380545032133061677957485779208819975163781847019214745149980413108423020882562881530046718610228000893699377150477646558733670949124364956822660457428182063919190734014470238292412023450051514584214784104551936336495205405644997787347899121519312881655974502836010334426823966256259978013609597452158071497849098904068100498636969594181950334890333910683399854157487512929427055948922421898188719890079667538374445790954797996244265283590919530927833667348851189886020237010806231271548139166680306383059375492460408499219151900220240657102888043101000821717968962253616616047424426154753405557988262326565686814443980858514207281468816205799260514700293557923273109629247413396205685829884842323498845824024884046789924786584216944417901374800241533296594622436829240970796356495359451722248487935515466277184107946876895889606436917846934233086572772020008543227226753372498007134876072834421131285531610144364092067860762215858224841280618087246115651305368147267311312980208601263714700934971467107314036856173358247843326899355225698016225285010996775719641198708960449463843277095592018030197502674711909008283106889583436604488514144167963259322660003748939298366215220877749856674430460959938262045439653752292310951432780850410431809019557529882862348019090186987964878490447983071383865480200892470500271570909306063068705889434706205783551604120214541639982257348761830284130767545723276711560260254141359796462461295209858926553036378501578684718520936503620911380431752606728705629235688041810344648875782604645478929068335028558425143021149116929407455596629566814283485256287013320157736694850606368125520062208834771702398882788414555279645956173800318121479285550382020777058529934900688442558935322851643154441763102445796956426698308776139259983379231092024868287665811437828318212627227329187620701342154769169323189359895674197266564033369140789801513080536615893622532549756834024879744390892516656592121394668364370354282837442499407377583519473948502166124163516260258230551069524987542167356803422037145257536316268130618598614671544749334341847912338178614133411455056084735172265188530259828970886110260553183890855944689700416156769597491282845085624122920296361927552659728852299304795770210640835494155153492905709272834479870292917968781351305269559751810365326833993363288367000976463768345225922239950692303429853227308897412501677116595717278435818429745030673355380191299780764898211179388260174659825683519893331573660004185862230920238384911458781358924658139430241775348855174931959324315089728958914820944928743934905973868852796197516056229082175009979284903458775067212721237923404727749909291871373140213984964984926168573862000088092292553806821812549761640712019744660794594874201746242419212049970129707826403066074058240216538566296084581875527277071579865225978335096210996609023451678429368765084146704506741300204186423246828875922381006281456771069409938926724832724587834890442581250515178506163619309936689241263820796513102856745552402569262756890822910874758610517350571908280262539363961848792255688023626970183246273668013807879381495411854689131063735527817271534112757015914168158370027912733332666459154358732910802077027795249531905826182296719685324176476544539614030739271165255464031056966746797461609728565696251301108902136385703810578202451785238998617324519215634522297378090196707793540197721669045218293552059433543505351303066529655760993163383763866598299299612977801165970010548080419535304936973580518032299191663851420339903179216393478236327357856215630123221614926816306418335253941788043338175086278980150467735153351020604638801026829709414158607185974554082975380927473555942991706538919692054767196879925194819949655231746990758647358369556091272583107221603092594641416895533745276293856849268494214092509941704732999960783367137848293130966695579204762340482486135957021674722876083183175039164449167591566984280133034607262091104391832624616646843402776203115305402833749920382081420635535312999940161635405262881021246155185359165340835691577686934447107323357731833413345238122520361014373516268199800044603983511894337557559355831973679134801813607303695510275946256798457280934379040607676904720298559962112472974592796100753683288048960599261844731358588297017365854013625652445401280840760926763597339119087718515769043924307162582674827948319102500680528539328112678250930096860200857935428359861850497752450605996745223857411883260128840668821123436483383346161372775456635206703984232384463176284315585742302457699352233491367298786897185414859015094411964282246020489801955211660013285245182317321618534967292866103410484869861649129188063483476373870116997987584289144969855671646017009440352026185726748023657413286919056845399410250705965456501661256506078723313372480332212603134562066645168856645578346848134792055576983739482706833943333208840663915588616234671436330039824189394094968374863634562381280236917219478796148547602863498722407322481479252175350406697057705811970883884938293259882364866610357914155957643195521079318108131315391664923015767261984909629421258469458401911020783186088174656670629371045397004125277031788211640408485024729237509848368775064937524916067863546117295595912354803856664222614938644630412177606005301790906643266479154503559933325963309541885872183868740664566957962809109273346981796165311472672563947241992783393490842678968734989128325561048757561359661499224969299110954982929592842006317137864157237649892387832181891351532216791584062418902920646462977144486731817521166051933901351777150124383283263629786806992413184666366816659804307389297786122821837425698105007993979689385750975607030227007464046609692115440238998093408865574715645276033172023275222774557464578146154281954258376487553156588416595339371152833999729895528642319696028472511117220722555536222386643109862407693393855744458369517488914984780943270153962459721038383850043200505911535462708527930157718906718797981691817384733220610998504489320702809970487061222367052250343720435972578166537519683535831160224626200745885574031242558312941143995819768755227582667066810407098599033288916405922887806515590896796134861811972011077649628270833634312612761430902190757287585259796982919503387099255860219111848325822982905665010819139516115089942417188308519334459889445548241645798181502388471713422025461216184798017142951151518118161508675095334497817276348139660102621856386581498697463804637404856423805778925088779423061061843972555135646184890157138467999916575575179417443903969306265168169482229795931456297775258858129393856586841708530444652920419838826792129797268359163667267139511327944984456181795768132320878310688328553138813661451675962461496783357938130731681079897724456420778110071019689781348625168105439141610128703409420387419747487140754817271259970671330751451840247953172507775497756190047471162255872273102851026697237773704356360423288013135953414638758020233736514971171001469139082511387412494873977543500126464983645079608623046137552225441978585197396085685621824816235327565849344484777267602083323548040092484639862242482447987440127667749025781296368758828832098986903966203851130749110292845478146215527853848505431478303561903509205157853897884489726606513417673452581348454425642882945029771503020699006783586601625151928113837268809527888448014628516639399779684708534672758607155996995748664878573250174260380222156512679657834318399287104264181991704698501353007478355361638724711172757467702997403878910602010955889316184986481698436468154543218081350143519140479127108746953675464770490285841649527269378854915445404214365305359738069946817282468228973332776359828803941500066844558061457814416819890240182992323361502071511821537499943381055900515786565403572286030364629503438331493511287015773980561885162793886543308547148990079666337091101276066331772938798408909336896052933320946270172679505091208576922625947403895039896001835613551798729955485016086094946864637667332457554661757107323696049575248682875677073311435177808245545369872596128360835179404873065959210486998988084167169170384452619155720620177145083693853468756200069759798869387166524793330904941951042185714658488436388654090155751691134740828964917946073789242107891914722021023349945109767940017253112653973175335498195986421009621612185601390926357947831661384648392827426882217224068030669818875871708522514043622431000645042813642017111687719529061245006347979244161009120742555255259627431283833183217306040744794900610512091364214200867276428504300704989530345203275022191861305100437001713843654906614441554964090164032372814961336837398330325049693086456268486522316740853849105853420990737218116794518668662427442261889682838018725614397317268377948453282008203433395591672372818432330545216711480393364254868399526463147201227775832529975243048092379947830129315952819023393215543714997418168735783354103734924453561688132082977639169405543823955430488772563177590838080968102147725013344069618593906764901042292627050269488043374496896075859983719770418939458907903443668164570782014607307848106549359128557513946642611825466557790052531931405842252738076495997104090856552810728788179474696460691652672618986952621584511093533819948132830941510175454776516916591340519014319903321662387527990039328241658037555289142040274898184498955675946959126977219667862550454772147841843876607088559946406168491281239232225434542452842090348456462568122933946759544844649136689799313330147154999177514386175237364716494325504271584814663447254635857940640452230288713687163487672085484587506889007180869262133445222572433495979214386241211499989354133189674722944528621444141472731620403411546208953141158605789615790200163986139424111547629905714043416995222030929673731709307467687677884892542337050911558187632607393353509189015936563404800079886370587404397714048372906355365902346085109934958054764688905094816381870094485768761121030650262258026048191444159214153897051488778227905977322381712205430885720010287105394740154860607347196790582390354830837292838968079272606157559914082543704760437261473577276374476134778986380931515699518356675641746829208507934935208157767743852364654531318183960557849965215055291990945371044221889663907908992044992226326096613345052374887589632271014960685391141238128489892182246582398184345245671693093409635503071793589971910534872258887942235729208755316597350748418795375832904183270833271615300799693747709296302650526493064629601281820002631732901499090891589135459812460328512936445369266803118326561515653076607330447163328107696440064513907154178776042235477188981902864963310359826085197138967308872752710194546212370425015699332633429644409903495788507323744986927799781313769515560275792485180315590427409027868530535925959467485416840852324817844576011635812626503469733174514217110754478585730417140744224985042529879649855959219870341958206425408344819520700135696559281144245014696423228168897604629186158568421827015936801210071821295061514781772560892289387854639977927863870614974440604664653883712310152113145709602440697816850658629442935415785427273238996472167866660060759235768421359417667872482871776578646792021006297518899146732210774494014900122903387915664652502717678858593679289079615838937544504082853638759631478723304141579832923475059368321557262039000338157396003421450134718072518171996511334170903288100542115125505484176226996261092836096603049814135251045379988532424675796757815210758308835974889482920165150429770716173770583038089010332937706636266656043905875093794252260856948061676331506408470165877539716088486190745277985881687150120399701437655828193826309990392026727799934561258851881901978294559152601386020601753071423053466869553655667521687196751124072919254692502839757847419129129574537713462661519565152865390218494626322702579991977641191454002256785387923797200671023598505740092088155188341688741935106916972311563854540574491624708740003425492213476663037761436282995234530513620511202485490713354386131710303661678378449783342553498328099308453285850156292886764496351725763099650258105965177620961209867058324798193141052383214877900399779964677088587218193428513944141131307496795331499903844338850283734889694982253986650619011379470953662373147713795417294677620219717751202182749570878977164478297210652236522679717594431284608766268500652512912345819983359331505789429270073985560075029964090138561582259203141765157873700803758477105901693872855892274606508349326754691910044734758968703781396545378094602732938051556911173408703806606612464734431447308983765758650349499389723900734552434947580749403547043027124168549223158622193107767569139421550483226004247555399208563445759992787114236347188356297401751529912476104871987574865144952597602801348485711797935404489009078269633745015906938737219537909794950151426736464384270212389828948126082710042123182064218010517132496117055890866760562234819368368543306818211286367631036399111886044309884584667217503032190148110854165536080633219978351650833883128227348078071003449354124551759386567482076499284990491658188524869639920874696847232407021850903776312234785893688098232903329451936242574205101748640415273105526101434062695666573420822902466156664992855345116494213507302516155955370515909744986075780931292501074391930657401131971194878483616728881018957595695636635178765314881011330527773882738827061936636884438926285295944394491803687080743049811370698494617930325465481659908600339388135345369950730755020914273534715345359144556408738705976101771887997125517595386919599339034881642286006025812688557902221896438940567309413896785844710082264195849476832173416483535118026667364570490518170816707565244786790790376157686731858255604544676874958429979087582256352267328169080698393134172590020039205928424141860434479549589311166871457195900660619349340972507492447389154349876824033759019554096233863994760422074728752142173822014477369456473557142782931816654065564911072291737509795217882767625286842673035138008490142863445339694995564964580995250129077205747876175999563963851945659884507808579456375186659305534767917781126285811033245420968340071840904522687594640997145322042293019605273396410291782629671601532433704280769937728170940011162354384959081738636657580637500055847694479217361918807423731058757809936028938258813078463386338770444044774763733101338276576327900012144355655013331748240575682542166030374537536043687788530518283049681755532237408289667487896200638335945410876610502409195859063442261941439240213253603028651345452372366552679556619982334979851662293750880233833535705100907207684290542389701380982292776663743926051928913705251483184878296403872485975936311442054411879965263742855045844701066737043175405809118894667639278900383271862746784962351952500522338960724397901488644441368460729072443439680490179770848363733430489524380493282765003380922521129571620357060449256021066031844379425840023273961946882126344726088900235127186033359046169253645457961786110064120119988289033263343301694179048269198948293886234261032040248886368959935083054441133121042207206146540139040108679679086700106913320367027537754299933535959560866492245081089071265039929934135337172850977266518229392557970755244440948133133013356051910946041731742883446391710193671616707336871043257172303005103706086682059303619487579435760227576664678400074836405621070848213807375153316745576502918230176711604222379198243743334525450982862237594995213231042384810950933048136919342713409836809222406762717498753314700602562202801059064385732949231709602184847132880332105266724586308521841558744137897501147146747495932150699084965866027373502736946319541024243905088292641729753781544848785042714120728264635336834180972882090165960270150168402067672996388066822101767214103003761003067763471688278193996825708664718288724850144682259103083076257952518614326097678418668848984349893260813506412026067248013606632928596954834886106624911054253486299996396499654529662303109753798957506058545566008211957428860481571278704356006161805665242940610011919980807073295185358684171688340522261938817791202017361638317885975577485162984653509901788626351603656232299190977179429301452174580790170274815354013884705260191016622374450874224584118759085399946370886973779321667694951946472935936788435195858256349490686907245685304664650008258360950337480817332966091618516474047634945486690049327101692759946997389456522700950663985473431937866913248967789453821943934510063200331569212441156790146112364280739468449523093276921211380373978792603801348949527333003471155149181150209687704388863654477725812930417287578786531408067634754398595078774104730243401458721031897447579718043342331577995833967985164765572289035336121321194235894457056075000610880029141601109283090463214874247152654549708631626558604767437009456182311116641174204304056687907163761677048764782069876266077652577993804894765613682209464868676446698021811994147456941554481757691573079247651717239140411774793752907349156221052053108933632202613527073888485367012780986287732542685811077066314250316507212572402419058314180172906350916591155435094615919848561533280440260163325212923558791528633755332786046152488796550266338338814871389675996020678605191502794568425538632617554790713895221662941569448530041821901557207742302671150806190477758127155479422795150520880205643926802889493786358267000281725695710342258308475347652400365381941783925572424886853442724490074260991100241535321540650932188775185678837865631752438630688042226204581794449257791950475282314016975367934603146445341523534527031568855575709269552156756158966359146659322450472022502740586636642906620361525336651329400194785161618695792185415566432893790662780388067227592761721829915866255674101147756915007614585273277003229223585788092512194158881858499390241839852167617149861985585216362799983459127727493756575323997487236885364338101728905335020111392094644233938977884473477128896150544421623754194040433669190712740334444981616747461982859519729455339710045079624722265095422154243205190952932708093802990577083615481211864548437622657212277614492306137059149461716770228789176151240177775907577208472075782541773628620237000938437496497626165177503248816591989754480713644375643616740385891496142982984061762580341099838264831271748388881778263465138990549316572303596954174933559096307387962155882840937880367927888869337152540753826610074112715048286731616825519737976999246518681936229201931026470822087890712392822319838544121932373181829217931293028282736682965459189073408876444556127585188787286434625770131298952624959618640471449295552445280971209086945694609074208295142443003701814209731232200857411193314489307785603808791120561813718916569255411451702604649059943837955962606928189694933561779240557288278347693540848785585033900333085055823320740791983259959871360448158021067513510021662707232114817308535875865644180812203786803971385250367809455243340005405701205553931199503357754787067795825819862118577809608450854104283159634534635914899224321903815693580634231998427652037802972727640908945292764520609217739214142581320931026025226720829157450694779656880497912288513328562315335287869357018980749288756217864491990824365644280416351028442202680497167438344744165442625122241962689110481396437942071188368260980987255671499626241300853752783516269103758008024503083162214742196955319493021806430296810094469803378083233100550929187187017464760290064686227189476619705209791521403669764115238002360774177153208284231199943360978127382691864397872034650362389715785538673793382271086266071447771316731224364924744923821480800292571620679938119475860070968647769703498508771359253626205333968657626968767561255436888207755857109540125518212118223483983543694740264927766964606620414533972482349731217835970682006217963473406962838683857891032436875201524828598732195658720357865822978149713498816220482650933953208359712231429476913966497370129513870127792492201393797168225451512792743155214195370236948030339718123644881332787205434929194405744297583501998291704255988902817405545153575066484763526884463705953247786619783794379261915574887656342308798534574004650417800238923493857128039770832007561894302001257070084521157389276411678569203082604166113180539976647960219654342593753743273020813826086470661817783102936267852990697925069260664599048713048978893680567551471631201263129032043372878248144810619701805622510744884913336232683997077273138162367342290566595702916327622450173167318844129647254715617578189161194145182908444550493083359436926934009417743482449581945655533984916391242676341570470865221754888555304950630197611417224412325901389268074876297576473807436074889459944508857831966786642484665275890587379109878994926643811506550275692637587981194709473404106205385685097672953817954537834822606126320189930258609519699472178841854531899971610616660005977399429738969601593846296093051945529155538391819945156663142202590630257907265434549836797337829685533185376463422604886543691607471884777814046620203368655830570650177559020745008100023860191096608538843949277119882628648832341710763646454915405399282837712381305280939252434503282906891482878771920897784904198652212006901156115394366743180290906055442559889616517470336026038078989361573399943205758634507436684521331505315179509494517135509967106787284657336034022058670373040207013108297376232332124964269286847383492928090938555913645785407630704567665771389345161430692097961451833698994714270601321761906682029240022119425683120877585263186940497710256312499392012740961980671857068030164619143230062106034704320980566785484796362677703716011235697700610243779916558611398598461126584557379306593788268497127092287157042003369272806318981732438494165305107817585799787741838549419871027533284896568193630984578953151274971432651646416803833646463708778643366815044501715001716886316611863862645825887582417176650747940999272711162937738399860648533746188073896791688789006696820887958062939826879262847472035814874414035055621715525914998613511547378550283269184148725917680965132777728838790271894807122810866220885846083341566307087588259857345331555639552905592834390144268345086915546430678212294198866412060261620838331612259349184186359172596040181764828908964532103987408257739348212680667003401499773871561569552853425275557644608246905262166863670741103736771687583519858106743583534979651930494248560469090892441264129149683206228506293472675949406900745466254640813324271258308321366704780250417611500491637503782781020155604101951287271179867762538252162359923220087202593387937790009264447087023513858291194827904469954187611285838206334310166368272659732460409499669883606699089077881653354910353454879241546892203271728551626733847201067896179226303103189323092568136418200745276442944548724375958827948095858518193281945084078357430655885118161107320133057595625819870740260153251372346392974043905738307962443192602286999720606321072180950295749535858382526168523365636541786893990009526555521217061197744459990697771831468846092782885151496141686202863028437692424303590358982450196501674810008920050620894805160300136775818419015545917613665121536928216959320989106766066795247140367681961183635781020441807760044751026519458811661250682583044946259924559229004745059328044676088194743417216403227056527648130710851584999758827090848957933416325037200854634224962071798293546665260512462544955780415670166928533706683402698803814243395537889910727711463438545885264300935148538490795044769513135357092921972753648379148851300277428209149383877910160928124525611862784538104591795041796019474056570526330442810069164604502226766587464580867879282241613039545336935406159538470864495993284694829698533424270288295697930511000806544910223282599138178905709441693734023413079795604401119245866159975628262209256127617405683827179514563711194969770068428428139089079675530534070328923114294431056336361251167874627631521353833691235116259998408467240485426538000392404608890957559646281476364248914918285991217935703483557935350359454520464191840313844740949786739315001993748524251027471669120807641617157273722476362110884118705085523203939006620230356235898906268770032463478366637571776536206072711982201735917172605362757145678088707501478634064064828515622565993992658523814839453441841707296088255379832930992191134173126605814682053373620358328844491547527125502202867470460581350132011679623073223237058737387275575518181511581686220401012637730796936340993039838275307783606941210852392462438335916288605735578138182082306953774148992052338468859454115941409740945369911711733316489550458649376668620794640976954124371541377186656223494087714820450703398651451287925159741294478359160198659912072986514377414890220531397232415898955238927941912246811524731385118555180179027826531742540486010364739943741353426028064254199682839396147795934718108879668046223470414724507364464723646638628790451066589407664499707969184526239372792867139188530545682411406099614352345127908529075868047883262875088854886036004211714475642065956069871572090639984124272964122527207189383132686508134248421025607235312589340247142814442313132700200874857923754458673021018388236986027840213190022228008403828107256553044229748538713669400683979245546060256399777851499062591306679333969456174323976741193449506235839573072435640003677281564966106245495121775574685377282950389874749572672359095568016326329895824488500222977331274719584605450464415111293396025110811785109115290620626584315969187633959459703607448971905852945788269435451975328985904166960143431007731927373845978052024277350706621198728260859788490471324160842546818280246194517143841837340365443399706076781174143603950217776883668098009915531065439328012084467880980492361402338631501235731642573993147031130276835513807865141969608950190494764390983034825575509270896024310518205385457545238575700493149225172032939681467172767633858473319575413091136279870812455843862844573599796465719081606756334510644189589783331751297905096848056057789477174010969669191350275217637563168644746084964513175931441044263481436676734595982762275009127606434415672687311104102146825500938005083634721456710977670122146403799152737311296855094072696940083010165090981104602471098312956172346391932268954784454396442620896138756954580442006846879008424088560233270110392313608978370354396609611355057961311648782352676603421150353562866842495489368678286160214847762892282698739853590932712387958071478098791380838828072634561960528106535408016929982857666742710042495430411094275023107111048869752431828285634479319878375353372816040969844011600012938738394727480395317823016024964442336686758944780516536188591397387959747891732911571536279454355566301720963614039365224383590051380798763240355514709361164839905339621722220856404008300086982755542231626450495824872528801743086728089170571813542173366209323491304954928587877526863481238153750325392601569008417204692578168671427981548269434057914512946707836630124996397091113029263925487814152212825759377679604419944060775205222219581918271283883184736790327208070285453563905507559661111271413512141996269270900190217878831967590221510046777223376281964477332546026411630172358638685490860921624234325515829460851626586866319944452291003617034515215950217974034058807327403743003507343712518192565379903539037677673782328118383722006461663210535595067301129631802650469030856757615570429242343379142979891038683968681388498999249401930480780847382183353392008491954939011049531894386094619326858421975905638647341367917240718118691181780947377743390378025422986464840360901236083959624823715174027290697132424178169200216040331901244436140109044317002440729791579598060444548684671330897400120292676723147829940924172729488532789624780561406166748097683395780995164965473903356036657585429118466297452157473202603186334653043168775658230052552404085636588672891396115039577561405474516720083871674862973407194809095576914594094855984613429782923387193574870568591435870622511603744266722077550439673118303715612786315132163200999393556907434727014166144105991611481594771455256932065201327008262588774672810941011534531047778271376059821254745171900811555730919385164408919942665089792676008970091825267290700144173616747116503540084590535003854738366600829310798494418613288900407066370418410934683245797356210041709467181416910217362178972347662227037717883382174191039240843788550044484817216664129586505190622240506753955818123403875231462315017976504195619046532956919116782712817313762774695851241950434626332999115758907690999852150148060231013094248633387935721884364590945849658847042617501797946593823960694202236123989736620125473493949895190776353646722108154264089491389036498287262566636828411047091643793650907276149341362266936620188917610131095900515937418701156276288752997153228834798097391946832113460602647292432026849552074691460620201471094734755507676280616611695430532260430592918095132070505352000372162069555533924659604533688626857839252015086384763018025422786317226427202715476318768935468867618598096725989463978630979880280371536515737860875951018875060169665957359799443251765190488098409103356269898510406826850864868064986879952090589587944351170410129087597500416463945784613468707404245996082127792022065973441216481576270510397391701005036976441994868497052543190010403620167653650506174241303308890283133622069867348109666080914929053513946690189518165050311698150209148676236680648704970768849566931027696879905265420694462051158692350394523383038717426026086812827940143194742409094966928554214671786735038053215175103801089439764504974603638764854828149413590623823620249098018542838826319066828361629665877953877599441256861756406454298625343761308650080501759814016669281231921254562658698347881481313523692635596962293597223541642634772033684225964504828317799820201338602460100819904383359218354996776774783389212141170088294586111265124848023746938178970529027896936922629510780668905617686868275168065283323355685952816439738580607807875494205393651222726217932135638004843829658117947443868375825837445887356930361121141698283509402354957027113254767522097150342943731921689739863800554054402075502515206819388154346723062258456988241753706888985306947438095635492859899431889487291250893166985226174767937254800628707734958677779392873780133230126552506853917302809430505326448721054830991035891331266754285944515454764277437971409732565873713827375516684269846015848570303018158401694084956057861676074499444678965587652337053941866446512464353147085220027196842101415751184077186990551330704870237205434937496109190589825060775748771443687806831103897999172046489485776469082918225849666303926281242549362354421461998270487903203174136116809082070279081130442748132321783078815122741607833952362247284703993780560663496720161193809630517911354780041144732278120862423672014948278747685434681322735491895298738274975332721670966039322163707488692544179991414904824409481016654068863387620244356367222181649790437807928628822101296530707392666915326792220182992926999255275026966853916039017407545713266589197546861049025414981360659785888355210332957440139359804855083348320820232229432820478817335098982393382580422038660588069221640553120068127886077151353493025028746248732339271906235444571714649233957507871966624592425175852909677073822868988365367077733189342915252385099227273032428738853306042716626446050503645884907717067657121661101143712806839481699523740075171246288023374195958218573816567405785994971060332568068096794627922169488320627146642355651668682997135115715990346719435546824602805247256457585934990170332884304531346493665793610319939139351175719637999412932499931064568848925534101762633390628503817050302114880366945916349378617029807363022385325288724789598967948767344681289421968069838300854895349956366721461865992851796888050214749202202957704502131235653566652933444470276294581562236933122241957522065720503950187660518770374619740121368463930121516238209199869613560737095275890255189442397912814601679172518173208282956481035218609056704417345872686435734709800823974605488474160102658536286018469479486743107786032979903112849800638093179246510202927476040327687350656212764360772900390268300557501499571428966845643186980790812542357847732916208768172138574584141716477733883318430331483209292054067778585695330291570411163277715774411285782358600552268039348400682106141767630647364157317982070087732349676129252448616614272571811165759245935559594060592358501788919312959650459350247406551994429394556216001402461618446987649048610776883824304778261472052006528167511298623987933632146864791160339815454586499471968401726619603443379264239518456333776463182750449858325131049130403490110771455184464237698421660389520101328000001328940147694631887484117946660264916671908049000620914718247685415107057124067599190501915850337152828949391872475436884537137499382799812458705521929652549835536158981139087003835709429999065812475114616255121852229213104661142213928296781642944803547783466821020645610481465330995052886637518024533223993303659250002838772024355751427639204956897694400966628643063806679043853974114016651529718497665420674564479514325509965952856537316310547763280070738799913094549402230363762062609473381328489559329734707695650126556639536417050668681115104362959972158949561341712878971476361665063337109933536442582016996923760296272511713372311835495669942774747655010304077180778722503039308179395815021090954759491759722754745108200286296263882719774417672419773289539808907089824980637500736282393211040444636071077512974307614396490416979137623884626080663360255970192346792659086278716290618110141946662274953471109204355498329154211573329871357626317057929625072609342956756773697719980515872632759837853370349223282855444186170554529973320308066331343219125268098714647922606040922884756504211172779131621906104160899848635108726333660385752504570056753652523131137516481828819456294798909615032060233900512025047741874893176584042372577661034593416336835582853600234141378008270299160524873365109256222109568690557975891773872392548053131393569926360073949309533984676513848916948736457428163548868326505986500062762692568860867100910968322107457315031603745403820408482700355822792462651255411591966902683473596063274250981150266739711917598523982425583727945732294247236578386404863437569918379394324973300955865845738808344241440883022916605689871191168656086720913304296563616447278741786642200699523719753960303012190060258170749536704205678745764175875478323809609737744630522130930593807727125198857053827262218555519929135491470066002534887303427367287513621514658689838088366465170852492255245683642239023056781935951376315282522140349838882267036105850406971800993337032790854004887998699405795536697891456193097403173919795131598410533664070985218308104885980824088741772549834826334314494201962881232212557133437478725406721158867271369921827441658863196913653159790865650621172736676978480842390761669023158727418350080628030731647581681387246771922914853824088579526320631988868914282312312391454065742728493431222231485365787407920534787743382932609450838117526243826058283399749106763509437404642390521349884257917824646871459261594592358294909712406758839471726938462082614634390675216629764884964369246766217297511757177498292613384397226412070511407017223659067651470845754740480624217816506528408095076386579518835386294504351641439790347864875165321481157466777742308045673426252836953241451190932157830612198957575482419874540009238271165149422305704575626868167054527838060906981898078350156810855105787140701902567640821486220578131812187713259812375728288592170591423536300153134973579004890364607255887751098140725281057578656872826437515993312053476665895392803933274352515132113915397341476435983727037590614280108789533510666825187931774788425162127594150739201026485992103377182324142778823533393447854994110706618340745089173766223506131350875855150491636009001043602037565622981746505666954476171688226309372817438339138371532734518738015934215248783716584062091065958145482339480773002876400846285950744452066968416920190155218550315503249155031527735004410594344709303951420650688823346852813466319056803910902455121566503403555660385414010845733740507221972041566266729923791126425960034323365755960983182292651840064471364910967752646150431189482103295263847133254338898605993836701482973149195373278883740382251287379334424931009328112926038676365880706358351618515252670348053153221330663640693931017226904688014443893406626667930664545314459406635357463808970822380354382371466341941991764605357926340987141159044708193579826274289712041584156776827433134265857104162001519518377065982833821457074761182398102493074604404130428352137442908172678136089179566350726676527584180122043202832456653928358817085711716595076628677139289263266855430448593985236331844296681285275084734183659470696253831296168372208619077419001089523678667382563894533234709950492507733010954845199397410933548648389119281547151422924643921773912820937459146287072578778074760699875238914578289976646319040839813359547633272932068690899516841452640184679353502996493630043632640957209730129325411694353581155747031388517860600228987575856198883241112060023888906885863091228247978287541476450150706290078105573629731482178325914568239269711899741314676096614219601378787678287842395373816073069239537303084846142447578353449089278087515475097076453612864152100008276441697598944050063540719890147462000667951269951296294775502667612457291995269050200941022824383941894779463609976992544868260287429091959449024543717595932641400729525273385774507285385996034379705818736478841203932774268381779647159370527045041969889183869375161818533487173202537664713077080782965320645117505526739738066309656033544952810868627420534847177329817751983849062930478431131924033388566656918929923869133851925470329210422251545020222210193467069277071403377770647857597775166316452270546508767708880146409103287388346167128020905226976572837090304218652849757854428480767688937543153940360297349518804717196833919950415960055205613849015419505619542236568357752320464186304720917919778596252502554637933226588900029966851172043537610577085316855389746823883805241530523528741795080198203609993901749261957658999940609954679684688144844795689385644284552635756683045598999160051748454899722400074008282371498473902259004802054258704456310673262826327628182292657903096711928411573696065182096158722416051338076226755255806220032318581628143783829591527004642912071245676173752844790940671795276877184373223553971633259256918738149178811890613640986263882087453095009153406180818010589506657085411111152716893203720719675070130742247584444765208497979823568667353269502630063460378873180253485025076827737642054181938073988313250181039695937933324669741943697445467217128999694547482148973953161201375484416302238389414959125873842066959474311296253093728039700578651421639542520780490168935306510743089874287003472720566681492901816345835026095227132895191911031097114370891851875764621209729223025644626189436804937616906265271221686011385526435218843125020485861280109224104131499147547542069298648021347852766964466715075862246525216663789167522734412671579803939416858294522131712745628423994659152741953893005975554605405408130396663325941443838423784160991724232508854366555846550952397184555619602957213495998253669915799168403686886343130506714798577748912250581607676803465273353865779902777770016335877414161955252937095354309301750177300983747793862373452770286008358506731370541674071076416421501996071020179568186967331626069604635422411292870507961514100934670420230605002437861442983127561700212992794307196755064940484717695984234977976035750007932156474628204145680901216236560187905834072189447048074794708521421009909609421212478241959438351940948689888033733433271756307056916253900169976302012134846907133651276400071583295002511777398358733196207261308436686123218683658828945831952456715290287858252628321797845617914415965073507359148893193108911607933257484680054103535913634023908555042048208751712790752532791977151154282450105762561244832366608553603431424558433882533444886205113665071497154322699222504745093515723796923804092734478619427736590723929166597094947526197950024725281552219697985961936073273068586014369153094505440465134078017892637194162684368057565353959287082395014265005312322993065929657729516527623479697664474637822684310236335464430358056984252660628250401712170486415915023693145016266245174791866597646558981892477583502109158766710176776285181997984157540775940858705849948955044254752785703896634588455128139905102833841401889516648727529988660013907769348620111119559096863227945062754034196970511439136956031941565385041050122344739573529233182010962543603310908708142411698325977088513473240785223869817309416862876194986816333186058626878918661149979754834764345566457198554720617966834406596011813344345711367160701057780598728416822571363037958770465225260954836567730199706909865671855610250492795974253595083991810293947823187300595626291638812639720017386162161943291136045790351473859559380142415078173629175601591870822984605186835452867858385259640872932849055432404132487969195185145241676151025046866003582895325219853841087317439287640179828869921330866667304232526445801414464820774286291175094108211519084936986188853512942621415487672100502603164568970090833814812832184876695908898088765982388686758008655557716161340421180374079208075852854767147333887818503552980624082824127562036106413908901088465857623382219804892258691195618877441385665196500609297629139016838184595608739292590418438194958254160486462961295756464501149420109807793807717756566242148940156070901071672888844228481437422932905075587871104837344801994998523626310404433972916695892469714686670876278849653713886952313495146088976343496470837259114292529642000466291166917878264812783781239546048102208798270845193303971418504642807570447780903720528238937812995739304946440694634849172586781008885349129002099775359951986166447511337704684329740302475455354736179921555311026234197215963863506258653116425570473248239972222656742378811078053111886820896774482986633016952833851279714968919373546580475156610148714439202910091146274866472007867160216688353271388942620256735307733219574026083849881804652477754911406195861096050214105521031909731571982903848883817303860458285664803249304952813425174179064522823191611127677875969197053785125460010106814827383653495201802065164364465321473523538728912362062430741394593861151616639330123361927645688496678369233057725325695018424664823917277230370069247549029125075676178538563588412060234849972459827692179455405626420650217096320499544032347783321213893019119299111097723966634008320286578288045255608816301468123740684824759683791104219238771645252563630813992903218248453915528436858678886213986794130693018368717293484853292666204946959809443109011324317206654979463831581477440552780817370923033198605668981193801610873369449575240984098934145065809960173604867518754828645766977265041715713752039846738206219644408258892282844332806434079743774293144075759305208857553274977203600353185561275873526175784515013444822467086858216248443450154198639563627502229913104675793578934308965957578981110438534545731321358824093317850592257141572759614237257571223996379044185448554392815989230581524700688028798019935582913706693683650585773903616234231394665018415420054144826347773867619053168641759976329777719313658618369928358575449713941847011490644728412200979276472501340600281629519260360926799953855253935945458313194927862926846162993727866057699021937267097256532412147237818049380577468358778958335901580242071416292030385162970439524737041572123855930376362058596414149873062803709076638654393727220722310831430830555256623377444466719658644535219063643007893822504863647511467781728218664002391462193827967331415107666339626103660219102380857246921667899218920272121741771234885185337693250463192044692149467357606893175233532758289002562741568353628690856196857270429132730375831097118131978535935196662228022822611765015427514012535847218466306066573083435253250268892528545322001269181140760313385505986266317882445490161608275072733463657174388313660246949898054441896627984404982819002891571236611433667665645138391081266704261060885439881802865120317968781418544146193829467794746699444994613737085899994351515006817704084121904750134777254648207026932234361083391438161011878146582720252200958940914177301889282978081700768500918824556400957636044422025829471331784161303704612824481115173957121757611958706378361216929589698555796160892955019856308431551176924299798900133729421472512439117297114319739444570245555292131305341505815813690846722291955607677154248568216061492230349398784773387494124534832887718677745042353674838000437139067436666818303408703037896676504470464836349612565276823452915936332075002807691485772909858646233575913964168899114633849332174578025468492117967542920876975330206003360735789368698447434037792236444273103329485053820502623675863159367326966256466635168946507997414125699359725177288184144963128516044082567084098679703987688657368491239379021525656746940170987620840714677242178297828079786772250637926892950353417413483616705559034243570521740119058204414306682859274133250990497981074836318294283578486573578156272305865853073862996251414024841238670254525275814165747375071258225451102071224483989615467980676971720884554517527896585978370518865476643701508531141897069444388119538266399071477802762175185957932231106845591384838163893768146733757469257736072751813769569363469802201295514555013735407359413530406836382916766536010470492357210100619490757490937435019815773607247342383485586821742230775221455429610499799153149738548966765855515827107243392503579096838173946188588308752268938268736318844051808847056694108530974542203864843835115210769632863443002092058907223793791765816510128663934497193437600701013950487371695859492934845018976557815940443767627366511996138135345875215807975167578899255958298766641398657524779039335675952295672627727155712750521062496468596169880499719423091046314122470733840827926690379502589306805577097726270753045212917892388538297756724297174194276979049880829322833473395381435713538066399731635492673668482566334566543014737127019762652990234484696573170032796857228153150080270053939137016853373410182533785285803798036902657281458104831290929873997379620479596632979451195810927931102935739104648856215206759130282239589940958611411139436985276665856627818027145720078538937667135278456290935085928682608432398428584490438956098443792044569554741356091689156830852555343036442529957780996317497779512033047052463223753830938939276962629639525167622472978073353274592413746513014817626462054842179323206944196144194245353517299545405012128757101331972411097915260466765190759406391248556979340430239695357434087761452263921434215881972548817125031414477719115312666141672545083330951057386436457727158985450463984431642445803875950783977279105946792092295545913917339848986895980361051087248152831237749495328452343110792690490929618322365641569454569697571990130759684552340306109278867311876454538927555369585044373877599360330580969808541911246450129597877307784496695635117599043607917106203111977340095445281461886973799810994718579171832623760897194407311962453658331223260912379727656766763269694039161129899351765299363034911052493605458496118028577603906575694248504470527599230845954034710479916448528471188405691499919537984090760225936053670681307193933190930011175073504243285206409113976428019893785081065122195833736874133099805583142902012291035699777094787379562312966999771158700473133030059073394807880535929966432816302903463236202207052850514586548395507198746248903611715072370936172132200537554789706358043812556680611380718830919442286814219690827081336512997119713215209667740162791585939786744877412870583183500981151868569898778509843489076732583150950567153167954302764254684687245631189403717458920114384804658467980630042514567657693738889014976429463158072030068202175696888282632945398344560781750628926709282006896368014230680246602401886267615748838476438884564042093528093945835214476935444523261943059360891006207551679211430324085314223669068509892838122897328411727708053352933601449580211573603208531589554821043723379288471938865046044281350682275272635871807269663424799046564655521558434596324188415594014285066530916305756282904751561801524668770652839466451224395523540969445129021244358963134219161038326877303742454932196759039406847091927061394163558704745665356580165343353362624536162627080288544688404918223608400764810649422956527668872018164119522297932677526650584897786427407494968991652649580978540808277887085989349572208103406666704622513042359709452171852415029834950902603511599683613712075491524370447975521553849708942073618266684180857475193124764723943650921918539189717941613026718610853271567436113249245891561084803583855007259235243649703469807254411364382289430659274029413117175776909930932444594114364128630242864076758098858627878610302365872521230852276321362818926688718825112414329174100271696436606007094751475816238591740750875238035085968290219110567573228260022261654642355792002028962578818695637190532786138093249898394333797381196543166006318122823494372374894443357887525672091105659396146788780188346066393105010520736594281134143340485691871451403873280252046354983054245314725239994331162887066298752378181087112715133795557070146885759978095952268358718108831111923812085145073229041041478669212305962854327074748713761619169134731720582914672075001047268840666818608631927956962686108531222753994856090818176704747178467536823522187151333519067019233201492060838532988601810218602603087802464109490500590854814454390205847287021046659095418702301240963803428157948270483712383940809997113719608084439247895217781372218622394758294316949781780056691104798449543444568023535336544546163699989154640054267020883811824637907122836154749335240269917194039074660384346604835344389531542643330663390030066986637858826414508942939356110261081842744265694561085302624027577725797821094590456445142233483376148839027030044021715287125908644195764039546205237797140027386918166569585087374217482676025247860810268415941466793554379815937459503423278130775224488477748177965029502595643251072356149706322507933265118197164067818482133342089393997910085964011079531032073548954347452937624623745805607984898099989797365880178111287713038275183969683494057672747262409752443258956865024463649447275007002257664505371134303383599037681939561928416835652600316675737943698800744502927365558822883713183231273456590005422398200944083724223958431648375694324145225395193090362471137654982846537793708779621363254768611493064048154179563267502647801024761975014361599794405816056713390119813778874777901495197079507646474975916208568137607414384647669722918732309715306707672830566796255847411262607491557929076936977455274365256519636107264441579019667241629193238550637679091598581355788172886880915885354907855176023001840637007354113210094275252307371072890172267342340043180306758105960065572788578400030661563078461225270731789191315958386932081967148878257086677967636387441806089399253241106293504500350262259350536526334634632621250650846273084236259822443969139577216473866028202352075602640621872047813375237658505365215908632771749985589473261902624315059962729571112022564255687801266663560001011615318539961505651297110253686398785707127197069834176684741594843010013775112392708415745531326161684076426587450599625937036527517460870516613271860743907766297092097151250072442882463631022497392086119451477138923443884487541269309664735534769100378877452894182743447903756929973368920144215450027549498002714714460124046079776985270760124567212367205437091956166432601970283931658019533018917200425232342847397186233463861371390775655930479488466774613028367259488203548969342019682805170660614772659185721894418306004935822861183671477927830650025835371205808868649793447985111458228586497056614834905343809232659239568616372500553143022444714664160122245366074063904158964964796741908462609721240524105015041790486222762353596703273105528609472295756392359122975202870009374446292100653983946300104544017210332349750681679806845065350860149184937165997624789034028613484863644427506831133624661916715149705012179684014408052923975161526775293415353126626592696458575536700617720760865847154564218341288409600618207101313049201652139715684160596726074805367255728674065855509567100464602308386951494237594851419700869013292687301492826676313242800683252010654089799789639532325444442460825785812743278033897986204680175808410443700027861845051792316626582532678785426481629672893601483069470488450596824760888445597318662754854720900964908512956582558525920959277455899531081013084564061436517590444891068436944722976373745664689798894488921212318146605129825265081264903994735568568954527254933233609812866428925150080344036614535572821143459578713106084441487915745898235868953170425359856632206337485828374897358744182648673271089056478993616796526185063381749246365819397492703199027039314976512737498888870561968181344396747926268847761587705261247965515741576651152287277608091891885613025097552407650546560595854930480831851771940050147458406818789174770667061640913932499894348611638158023094912409269410183334622024962681965556908248484471440913560673844011628752816068166716043985318314668042695279109440472869153389526673771907021836062304924327056919597541003959745250836657916057176128823522590064288103066293325284555314828280549525126677279852264918604447239356182848202756492548234977087060486543769981944898001507217629075434618654441700271454896325289270205736207454159475327262076576263675973872467841004767686034899367436232179531673670562798781868553118799782039236898198302519913495326547973341092533745104412010454250414392675462942410833382183660961281471760285833553846433869376599511507026765011917515277124239251851768196112164775970694469740680752312010294969463740029115099404629533409163078884179692825607532709333390230359147387906589812377443082477070210997899934291161190459229101451075526491016078633958460717208929729276120767693164446076903058527178309977345413333986582305889786454784340098065492400683418834443125833408219987693646869540735634196050501812649233936855218446239422260475779977361622119040614845025811893818730758725442770957327426350962515091695873628696174284581769464759697411587097630344519792295795323748338663968501060117385260480985046058911529783708245956113643126277938948750760169548466916377817104922883639994403359595769996558522372110669104818322017469791628553108315703485796376559996212096250921760746448715560104043731302134103842635371332587363360762548254823302869177488436021554804303300686621621785483375874172708149262301499778357730355562817150985628521738792344778824319741143197743659528775570419508373570411606682029982335188575778576005997606429773417402895923687686093031007864938028016363479415292471433988897253578294409440869228530589407620793235444688236482218544206597637437658648500117627290719886640306995256964368139986541094034392413334690474985792089828354097238503720765880464856905966035968175350780392986124608388739930423576567526297989187802259983010771057391408201523237184621498291627711726512565025093976546464550903310974831597445311869854151880341768244371444909863098595555272598355793721553686411628155985266867143740651630610937637223658081609880569664279240121877764007353435530854667490113850154902504352179600934311470469506431455825341396964254356148655446069133917739475859435656635460076392612071823957082812591252177581265512196863106265761182093265423209213882751363516638422864035917731802799876667481045197075694396789867848485612539054175016941576469510056128909251554991017061788695792141166201744140918282771187888470495312178742531211197050275383590073051214917135318842269763600281302941312769752356450345386924572487905604415432469068892816996418164723840746316709741252823462263179529853090823405081511060257638526755688432895963554637862043807852469865931442607714475770024768690510284803054647550387714133859733423694568295223644820280836305180061115702005092502775957759643927630065965054510093996538337506314188689358215338714772090630329463788128261683452446749871515036542800336059645951745584312969676130228084746287392887944629166231809700956814018756651578449030051598068036079412274061439181349277551089951378963722688198969400321856480619271768918896427075038419908920530983523982377384041171481334706865490800853204931071359435305945158801655916502609669865162584662841823681819666426304260823215949279072436413118220548834751351490348246879977739788066725481780496204580662552408967440924352861382342104962549628382867831454149289116436652103581055521310259443192856441739099433224049053422377063911415469217521021280240424644815693535027199739763906304231945563378421730067829093651644032144782084244074709620441735752536747333898147051161889269468505073337081681280504923626863249707619210265785267743531128946084323254762069277509549473152307082032081959554441271563487552888870636595241724351795806246777656228723463524359133727289806534115882198269207810901595670419462773444640730067417277703632210286449781281193362064942237938666683350859272261594083664980955286597010222685568507322655977519355375017792987588861591303095933498359631360273104616221467453974843905309089377020083568334673185695656145969095284149442411594194947495223553370429896573026923430147004153817110100276371269195433180409504671290244191490351403152739440269787112196521870398344893811592490650226523335398731424307691469147197598607022140172032367543829037866969552672425241541020583899833754594955395732722239509854617389683433411544030480738567841085980917510056205067165460103273122353014992408260115208723152099081057708611347574061781839018707140120373927620029827035707409795789622159508729230999885468072457993444531685208394733831713120329237716453763651893006504313617923361518908910330433922249692521806711826624803679715996878231499913746102135373578168976524363736750563083712168953473151790984745557546994578946356661179191999485273028432501364372873933653483509509049410319551540367282049922837110507569288438017459344724247878253182900143452232338923503280494892681190957427087795755969905057980407953383753351574703041063318650715890504166247347049011383753371848804257181191629876290981535820645518573326956728311219194223733252280102190999496738296437435765926100713928946799731991512533373498379877497835947407462219251871690189572977477943155578818541397749517781786098063975930344418445480264110356259067102847599875858864791295785392583956859871165163557640443547041442361255850396274079002935187097041927345448028453844905158378854777804679652798624355158860556327984991267809549859528275325692279324630237970288205396847021408418216724955446083377832447771755534689163555226687625305379257302554710327093488905509906268193812071930422957864796372481946688015032969762371426035529388792357829409189271789734982262718843262186514993564187756210299574089297790220693498743010805188755278752892410802821237715990668303300224270678155229695697878450593607986270604794322519966870449041367029043227232583705832697643248224076983378647836463628945015817233784287473241563028011952719858056432354210545569923583823134860378712569920560986150518105566485921521440109731146858148663590944478842264529762543332197411386587203885584784478315397004412124216588187032915127596980713633624430094032607284391601835625595553613410764041674331597848887684461398427474465881389398205411060773245574494243441724229893139464334718632637765396035331950896277911737849910448823202114404644083023206059845342937000107015504479076805190706322003636324108615675669543737124147077318323942042130901498709151313440057382087022352702560858323904811371444407354077904304595982042639115760261670454819098110741586052113740809893757593570460448903592443828027860763437250710341342595978968455698163345916604942496580557974420086717886651419902042333102539507744297693694295294096674701295769663286401333351079061423629924270232533908094935215991400703063435950607207128982450047493082155487932137774846575374847767775011996827594949063915855288497172777507150836134332682052566083608084540487358616601009435430414884952069755524723369507554728737114851636181060910880800012481606631162944243896776254591265775354479138295597127184933311633162913150057855780745783390086202546097156023701653278450414168540854415415609586889687192371187799939854758125419526252628351981964207106828383268352620739962169175454630585040767862864872319190641569754036964418276722369691516108654191750622116887485018911103682542408737671989113483980586824817630693326394478900734867924014958421466455520146632900229008274233335998374804275431090788059699536286394092347738015394650565044372157120663121934228829927100989916474593737706305237676958898668532357768805475141560356666178531995311751729459969540980246021055635074919440087645574046249835282448010403246363094490618620091830579979619525953848548404469964260199341011464770889630406463933462178879350039743665970139859631595129222468657217282736049199762499251748391987077690349390161797649354074590306652952876817232129793066890681844887532106827328293661293046432683248106709277897859814718962211059339633911855560384420783430319731756432505454069285299728412893722616017766249970947442190573856007953765371642866509444626629353967254447857825310183008238788638140467363876010341767704004101677664505276951115279161175258714949563707332605319892440269760208087662483538543033235863089238887308150067408889387458496110643442806850489087176653940655365418901296927961146951237102998765652127696138158945525300183893422349809720230655017473395314677573681175665543457873042297123588680516615643253470969583550853106542949413845639646916912865457025397386968715108615492272127084399813224886082457298355741945334600888056004181882308037856792766601912669743725000023879407009481545179546362147931161885073802971786556604530348473820122161375849712643988906546048375805342721360413354920626135721541410840257009021648177870782063485810203929473139096533599919251660100684571960104817103188541122406809692733683432143160419534259379016679677737524145396318008204410000017435069551309731109559578435341177727729973917112247911074186145033882935855228591740957893933089822050158229652549093111781613681850805127936663096599848894179448297088765191765647276742395206262967279349732206848741432105011809876479490595520050759426260400756980186624345700094404182638357715371731524035293831859290645662880442040646384242835485691727956785026163263666318572630234642404473641224831373982770523864422503750391366937650680693226504245707213604940865554461717329388636322059159495533956602093359302854755156057224804658698204609781944470290099839176707514111584362896473418293476515615415697766570422378497556829759733369058358370064415342304049690430115075447185450384343178957792029404508121405821934226654657563385784531375619054309795506498173074355524706861417022076205322539878165742419153708378770979016354026667248362913153266540503809061895090612241611178158594204163547483314572855246674277255657088705256681511431159200914011503202219070252531547616747503437069751384445253778675959524689269021132332511300368151756040929446443840724909058883170642566882338777239192260133955524309338362573548644305794646286548477452691468444392962737508392647317553260386548877565522876344683201977751242645108042793439532314826102038389077877174618368651245473766962166624886846269653977113552952777568482780419532709144355567256752761528134085401181682235096999844506394948755868041838385451233608617001928393274947401368422210724481514858338680724855152580806952752302107832686169252987015583364568049466362742502186334898642514679926597061485572536018067103137621862922354806386116155260043894825395805027263995978326525511289866531283051084721390614019636464682080177393395902463991850745481045748525516568591529810335571316310430629950603536588534292743569894172125394816739783564819448218494797045191257551036675035154772067632906283481959006622717448227361418306945267758426953618627882576188192447294428314308571545467750786214027214531723183207924736578640762552546553700443400018808146542965983879112097805696265864733851807209865532653228127467811064713674687142291445388627336474725130545914506680448207955168688121151539531515140155220321680045848729202255999003448515283284851475642905031112554455101300574628255098028349257879678002348847460487781493618370236938890831897816922950539984929126730026816425479858171321765364301257356491593274150280653506052488318768588635587445431696900936162729964532655108301486158394974282286772706528010021666306910646906221180519749851557757076854799491514101674988939147332804638142083252980509529353142645115837934681979857384959363028837151905812761984838528971309452076861434760903345356186739550513390175195854455448540267226815043634839065636391103054984253666338100096145245017578516324662122649816759208549508544509881711564778239188117178483544673111296075492473544446332068513080314666561607822741006264165742468610560744958564170469038141382266628795526650757572365943832962441183906980619764581758080906590559664197708810884975624333839849766437982655893457247389608100121821623333529241759915091162444357633048408571268159792990566679374862576114189817998115237598905530525653066809895488521936341703158739447459799626806953783357297558019364324529192225652735968251182158911478999779970106945977120527027004762287282794675009404830615054596782003439923807048999824614033829978216332567683854845619001383912986170746072093731224121166595334830377473553851530314675946799543888643097147446464931369026118171373173280673332354730762388721905054649251250012161810049805061962701212406552535463105868736028529050024708571167870431562726505579931989472777496495409996987155643545038710922624624607588968014315979017211510134801566637614754661375021557084415419344791201580158773117190404240665597260318620933145556238959277836543519911407311440731483145860169359810076971672598256566453926397116530326327225048535185764903093576560735237812220953224008151221629130960010033934478954565408906205574513912631845048811559526235712448812861857833886568965154431992330803501865084966676891334262391592724419800000215174395154727177287061364307697426728204921838580121935395884620553729754740302437054203079714500308194711972915581159027315202732668581008288653167268495244083510748140871609149204947426846808167639677958383855375539806716436310166217443516610395663059213521485261023565178572132326077351502517855304093147347160960577099155470274836972846481085120409740088957342608422018985099963783315410559711323096859505310941358092255101393803276677012991517965614259803163804223777269292067345915121479914672553762291162375519543741913401537130071290135140798550442201748421857108758823218031527295489739430106233527910616467018790872695423818430134247279173469717595641831899189551957117191656688243160954051511424927788240237874140152776014650803867821821390772030649911198701363222304628242684208155599744571663467831735159375060206682980709622233066472626148062846583703189459661411217328253718943168246283661562009456814795155460351408692452596299341906087290245011137576985105961301586835020244546657994453910975378645565031471833110591326119291844314868017342766125501868534523993536466551062674444445233786368424327140623977986033871615599779924238389389853253323497251614425580474807196188269076563937653863465912607839476075356074156176102737692164461660536933507776826291787047489243394099254353915669394301319346597533983822801392851931806393833609218710090350391937509251312051679854548083185864694364457410123770995095269055248930395145502342005899940505673360820654789495196183811178447439631813598366672557975382664791377252979768209747921150361495419260544664765046249413662164577425049062171140251192274411090224714065136619116912601568375803827136407848229743051234609062012699293461367287147472748194774959478448699379117118938013514397905772555859496291956110979941073415345403968600066299458238286402809126275235660603612962501075016705164782661873828206543222811155820939777750907292245345425940485593796413205258748097223826870884216580399856839533354654925616670215638115201413174808555626824291252287947593794330186940378583535813062099527947049883809015803036146046090501603123753612175358637939824081309597708639319561895609271163233174327680174274284989198884169189782348615113570926640644687653201470466753461991534853768293076372001225759459102089888188582329820899339836026635368722442247807985597842778868511015466755377921051005754173676110905812518772596885644021657537598574415680737607438287131392017808528168133197729696797088990620813373503941901068549553550081115556162910947817165326244673976361181156806910915195945417716825707745319262273284518694352487681374856502319669989341760915511947188579743053312182579580556389840613422473181914383326456413587381302531849865525416043268777286836974701834237385424124914345981346501252350387268796459049375020563681281633971138701857225120309284209082558754354294432747990924066783522159086768600426109449034623751206148571256681204412522942838662738839578984489333051238676053356432848587524643722297867688842995343159564603891317548710083062335670738494485218656612581095980612703468559523005381385367405371078739924152527795429733362036078604967290255967977647767071296508540387539747242775161770242980373584488651368094901423672248955505888978778435503524650669956616273506862502469354395219548430296884686679628324738033837854988802275592340648964692020930354790516159888261579074689086473765929503832062690521133333680354091546089621191108560175515509822764199699038239316980794975120326885700445385794710340697705844188844498404462924946863196707439455852960601355273416681624765331865946021976445981365546596501578944091687813489455425982551193099801366571002333186347225098362110841237274746649367529140679606410127343446368171544122328971220878637226800773457882571546718085860000822114080049337122555365811933629876090386232856379227925800255395143775606657689884195689695289085983696294007780750986881218973167202313260806325464652677963304337730124187812121486281143418685329768427688143995614200478012112154223370027851934743657590658275293276862151260990434546735335369386780434238349084439734920253315728331277257461549948329812321625303331504275823208114006965602405374253762567706404170393802740137913982265251778469380981964876340591266784251323654280002507398556821884974777920540883784506690176022191701788660184098619920512397965712201275279348781748682767144724598416572535830651235599876902723730748240204848352215405918034150046125814950065954206018714531390242437684187492585453429153389925290009516385578988989796155709481097290565257234011882474980404613060370796319600448961376682371155598889674146469590910935458197179788097913990542316176301787647026205674577144335273657673149173608336496176135622318083857998902896728284903692369856308913250719003903800050365777664324679851120659610799711669253823966518961354517932529938111443883477261741790228547412890746761086867972883471635102742098576584460391969287359163341025376342061342636072776793116859917662076945953186469347744150441118436832142800576736290814937611689077760273161853304850948072320404666094018975236923998649579907177086706484526974707862825807768210046207212346938800008639230978460761103286165561021798115376653192629712346419126209804469497730000134619069895283969397860089100548530663703707491916092556523656311322420366684601850451626974359537912252762961324146622081185584833262593153148302469731773553358492955589174796392932978877144589126233770390857875460475304188799125037741719515976537184244551148226568625578905443824848739962331026476426165008460332001154195850645294118070144645782467052009609459066727558886886566859545433005007133545737727398370601175896202047779290473499660294684399907763038284070323712470406986089080143377725582156006413988051141686487734888631380698835529542193593991305864997154445483456651793780015075360565853124935860066147302127597767877285796182323690909269024184059743735154642306095411747777393999475234485238780127774201659009115333117458016227315088852463115314663192724707780272791973865060328235598264348664542972739273821138175125704682182793718007804907180526157688116323064029692999622167807011513242310757438663050099772302170289741704836360107418624082355058363442807106014094946039932571640132704869964641573811358154474435354372875102799873396165505690067085579035542607024110718231872891440157093468242861911402305640085922821353211879736610334905574844031774983417285322316837516885479851330660047952374405750197645055540889063200150674888610696471703503651660861536191359616085844683631170628323074918153521938358354709488872377077169174320967733225810326569956235636179742222598220231661474838429079885621617978174388914488429860634522992643130418558884762659257849296032392664583908637430755404968461189918002587963778675841233749441726516786852462641368099081815386735850677585047780544574860631021889231974270213848968895204996069801161356787673415408173131480033189061348184677347915091278536022417710840184429868587852994327512646271583627527667536755957460858532828446176592965060027389671196527598714917456291476889817603170658897566949504458535108872840778077468449679535189191491767606399660142673719431565859277330017882674648968823469866819006536384049165143963042539957518767249368690376726991508955783854851331563988540607517902153816500849510988224540064616688826200728140471424129670941954747398796136473167400740765910978452939205854275062254698116321809855212560193181593565654677846529836087525372554407295176207742677166062368926547665757820613348049310466758299199399870253880958751561678020451242641626266884383149442231367723934505652211379577928558885995873938924113533281162984541852815816784434105007794794854574891716024273440984636805471126996559715828765302472353089790154820570133950260541325794596489961079752114947604523058623335622242517163778964556233837133982675358273390009896320785444898890687864747701706427035818252860416943201142936697949749093936362025266737948466916855912760123024535205698417249287945410996455720050392952410545366100692183064906468465773962781822872728687053424807801817413148181069140588484840093177437104824124031408851554400539464898392550653722184258090077302108340125794603036390979940113241199621869938258419130953370649123306416113095096619812580539661850775241095538268020201930186972115057981189600386319954265388355459596728817956867600576725656301306121465481959290764531991621974643726316265945681486321985932152006855434603692902488803650872115983302044728674849146271246115696434175510926658794795705962345632277312123084156898767492284141466539104573506606841181366099783361775431279828581964101790596154409796579363049425931470493332214452904998743720740976850454156734179645950648183438385197669972853079650936572338019922952536856951390802458258126196050207241432261722127293523985651401813288895548778651373009240662868624473075718252579058260570597561253688979372864369665192913429675337561929250207103676832420977983457719594154385318111842016295714365313771165397912442983157917666216876041909600181851575811897849381369748635361940275817526185831724189398226276140926108605774903741351824463187012088804494596824842017033032607400858164728256893879128909758392201051703463773609698330008668274943990518785001166673796809119706061587436118997570312017288682485194665578328803976384243293662590725422930361644190799210770098319216159340998014692077778322741151825957494483584980036494719841621464308212588352268442587628267602704872149616425994760738595478123016458629917398684411261638123407193092772758937077749920092793130025919170821498362911446228846942517425244474842901690521074874888176167064641217672139436798555589593535819145928825430415701756158156640000090513551343912931092286070143949310292442138422965460961882196638826243340663223508126157648239009001163516829153054087657210815070786320764670522579791879358327111288153307182014003604611138439069239241097577926416457331807911315892327126586532756892987890982797533573337220331856496374188036733280096765644996378391151738532749206509258141226885600421615070549925494697145618314416891844376477092694977406813478655585397141968047176515333859132137832843755845678282317475296566240678999199013012338980583111271887131012104576037203510992628906326247339957514638142421848396154422982796682557850667066943171953739609475724260957409120785320255207307259780547365571066560665053872456818552511760114821588696243438229593478637034203403844371460893809073624180901611962044177982648979677722026302224505388077595445474194840046096756017783646931343781937329364219248577896217591723522377132335251850936969474338973793857273010622906747966619041359024896904739344532508349656982323891788443975320389383548379237294829359542751345485329828858681143513403473551591371160345665763619891894249988955726755992707360972555710473374016490647302607358105294182637324884548975377299593305813391571203588426679675611894644416089392375627332455664120738866772048421525083790474123674001547176249859097370133761704063380507179805360033188061535059094210511238194653360192759706244096143254712362013860018726001536278085594905792308450786313486244966582793304484497373618165470816352838489547356243433269829070799365974293820960533377986013869703294550470513335674554948676463641977521396893162899853175192380953984884420335126037421785646630976629327034982295039977688853549373279737286812014704931965129159647559445283832282451206423582166762353605683566698339982323254432340619394806592278545624235822248500376686375413124985423695695821011990917613025634013282462402869955521185874521640719881043545410078120742977565956131751678248505876639693873146814374043859302104168252364186645428742157768892104108384286928360741963948367084067412597171172405970144959725894741351597928091545063990832735195098817905874050206938056514270554561507146897438632549776420754602096645715569927779875871929753238590261552756140449500613641620386316119097772411617782771449838424041453902680260776627505348121752134968903668927107830654269842085087110937551657438609758925449872695038763825121856727786104407915368540371272629668587083535703904695250960818406183501090106971913539811667778073708177883719904424878207562870980547728239955773612590952676896790232100930351740933812854901323374168672578404940382143925660388804812504230392342169260534112974360783206910023805476180412234698987024873765553511148664419045616242532249497182306992440323714215541243373904536286029976893184906436285718100129602132407266836355790145510989211484010666279086539290870978829341342316043855813281220792870977753855609590214719359129102237563898155643081100050247820870206966724130281476816345557688127952151701336915406155500857994810658559549036012522076778233833308151145918061369164662815185542896574905782715121676703449127384475394013913652529259121018666284679587040566922460233123997214220016295299474048972368880414613862230485210766112607245813025613504464438120256538721058892391637143350275772088279152012851814670484146262669408672031923489252456444965811396220063020306763109380556686202685590272003971337392184347385587202567788467629075359689172675351478291291435609661055858913152062340431367536517949190215679226964498705504306322955538683419434530084008974243817821314946472879430246823003007484478679222082353865240723964504767083502304566379479303937019789622816107436114681469806625854745681486360482438172641130628318702489196566495952800420266461997160192493669441852503596176585732528376955166323739760632634938953834192975171633379967080200723863130630303874812986961434768973189296153206723739207159450609196454452807973241829004818176322965225258101406090839543033283162512855837986516606672666412614933219885061344035021609920552755345635968307403272882676220559725785256845130023499672434216452246125438784510036842978753967282491241173943667854857116906255886866726082270409304738855012541267421373016592800548176561189844009115441370757950948039202018205013947406155041940600313723687557721616547818711526525416275868590769948769392765989288517260903940018504227706621691628130571364856685727212147857794677316366549740152928028537203195386124819864702811339149829990526226326172276888035128056313207027774041045363847305004538631413401428348647500555732484821488839927576152111987578582295344585966958244176245133105905187965689891635930774564027839282675984079547538281344133053555936775059862777131435834701726097194299762626123987164619080511083955909974356228643643163795253231908066580147946440479180692300355222794007599391788072239428946482054351703321760865475028113364418668275257161915143652386140570491533606003809332211927587917969490700784011979487024267200908233534934863893549157042930342900478148017168886362124214017958758110336175250571192100467462205335891147491152995887280425567808321884226113501164643031737978549710192784826268331078779349086357396169326640850281805784321498646317735352859632181742924851489626766540806161038573061250219683634256973662045857417823691678771570913828286073777077814336913123966029663909622000480648338520706112382394456494795609465519296788345373825049358580943672347016120703408499237159001898375003798067387816114913876951749126583590001047647371345076713103959759745520012243455774610959006211601389762648997075255996292191469733818238320554071169595761766667751290931980223205057701390290241265826892380154552790329254525427689850813339737888101539286415661027246310576237093004744270003958882811223932864783999058573288137117141894877145193175966316994592691000501434879490367865727001098924663393770975444021483009678550596839558516467629448158685951403502439561305079038183361706571007804508397397991801616784623240640867116884281564011620305507701214027737561254191704529134677527854949202873542331987868193403713042201030994775640141228177185654102949319697124145238240371236909936675348706792609082838087763392141760545739969294626238613197670952670236990099481649472855680012056211105010278962641002329679229259446409466558892496837713347985653966198993439826381140025610945708534300508330677051302435262501065040232051602785272817412766499125613194428113941744873124895804706174932195574615888241057778192405372052855943539068215198504956574115885223978566506807923116145196239084039600185695076063864722451515041940636198638024881996109876543856410750841299187620133084683628955130125801991922637234670784810470755446938397477880730201215584659393980251314409871409971950034929152385738001461478613980056504299787161112763894305406985863237736255553126710450918538220986266535874588963658241001333765703532928455907010549790561799939944156526293833479871225809290537603527484162432564522182497540305940159562411939621882684327440794591479248990339026945590371405234437072076926662296163098297371102745822050591076220440306383111695669110239114122043372300991472364473699627129674038341786620034970064746342300360904285859190942180253173565761967865392220204645327000913751404885174030398499097133825004363023637735702318833325361216161288832778330116042873815721055135641306134350179765154333734079675693208724166450352961481748719516626449305804175592487588187504649027025767171575788976219134019046354711275972967768625846732148561018383254002384325368247459551997153392127144015157684608687281646398682190416737862108601067223063794052417799453035584442308955065132213612563587307455389101512341223086024561354691715880362405589973757382588784386914342626138200472023680999555090913304676985281054297418485638365256343363183503443974309034034529458726810938264295563791094907977191377640603347009369765544115553211965377840719523635967714511318521040875535674388574143166565813075230246167534382295315783182731477188881796594946279348548460252395461058467329982779595238138585959361386446652064323062065263731058369846617980189914364500176982234838833268518520385825897858901700405291783195964358433385663161715352585407473894245806153750208084255349989402541597168206096271828774471889178986098078289302464140333552117917157667696230508745655085037598384749550060025910217622140308444969387556386528540428619310127959843941825370694670041141128586540948258883591495667404878015401156997949187487403546774275102797218733272684015413530093897525017743949681626948402412122315724290020132646604884131238469806831188521057046533840337629869767808894640624898841882960926856384170527373099594469193873316414532330542861461462911106451037207901607990864109447606294641518598353201853038839139213274958519626906000513075245914403639574337380206328848145902504900465437741090909628181107346274169887183034799033433605966485990787841966069387736511177305303655100918886616246537542225360332121191509507811304446729202926252567159955570246703232923701349119000400583692031284422490697839303179838515211572345898120409675440410053328459321927206808018788460047765235321994778047574473359486083972253770133323060634181213596697898434750698741892389305147614271299851236019233694195952367519721816158575316789945308551443972172248602116521006012563948042057322760022004027752866718344794366163171491218832881976758660329751368334167180088896426791279431703608159514698918451531435276607538285793341623086371833555000632681859247172230437354585250505361186208073461794695428980431998825078873827958992674688936114596504313236626087206380997766174540389076705740074692181692774091975914609188051896735665667372485470571846487075987684972025914239783707886581170395794720683849693548474817235344934361367584590095868982740526544093078794144860647298294833160653186412492252362352510388827714835593118379176967149443636465722409764080838028372297426275497208422457031608105990142481835575725295505920950110968601617414668902218613024603665371403840409115413065508408264844400902540715075394806388968970666561898213460094037257619813874870789366411795342920271178086503742262223452131576828124661204156652564302190696390592446492537031981851476786439458619169966508705041291691872335481058431053030270006162792105105035903143684047617515495641369231980430481353215375393470159995967869165052502374108648273871525907022826538231097518069213530895605177366029066181040266556805314368708705422003456535614110557695626427474296998430220116752737660651900330718408739676912332294704619190730585263845007838650152348855302407751702686624190229153333280766109041126361070382599052610313136011081973540545415655696463330303551775082469444060782425333982174089638533182581357996959244185604365732826025572922269573585900244514262223816253357574282221840404867780078137961685810068804858890289394839397550560617453896380101758680428039173170711020924175780533704044791096688808310372404400325908702410797507778340247232342428181389638712057908324652545566633583182861626909043235740837396314365420368107945069512038551399586398714233942397922783899188859380284188643735313289440226584604712602133343465598927639278033257628940757805493237789285023346967211148916702038094588280212484008446288663044883167290903888680131973207431560480475286701741340332349359750824222011149228021174234397747703792292490471720690350684606689238872314372158538557538645870695169741091777441638875543812871205893634972403376922411112149572047801477212959615946296300610640574626205999190726877847367976971941144274042713070868200814220805106774085623026985373029696827233846281915217470434564360733091789033066235182606285919589417475162034114575291703914374900996759829994278872884431724688233007577052429935323385963648159258949808573330562678978844539076655705563102896255069359243065529376346936461812811744411466368300567840798833076510425713094084308448774188759258815406402254058825769104128580559357518342736683705373179250900980124184453242894087977380322166865766361339284821390263124984776970517950498458004248406184745482236900140153408965612461179627023785167370696454846670617619890404822179134783727294134175064960215585669988799697728636853214207606246930604951178001900938675260583360105729041589571121939156017265063564934484999765328548336394091787166405024593323098325800343458714683887024704753760511288471994932758088874052939398323724122024452418619817245163672303953724856684851539952532394893725186958995791948928653305363183299692901243711470468968993237302645293959990965655987525653538518150991393188325073339764084904279627061556790181526943822195246488328735589168750338338251296935810499849038297946586838454316948128334620698913925889718790555427318118236783006922307540452207339673898182508074146108037309439654672602086681791251014780118470661664869602485825214503444973535614070964113181536937141159356725981670177714755187686202028546875746407629346360530891576042479949381452933114767251801810759322467295147427253025405625381728971282158590685621833017556529333356642451998087393760236355763657067479591595862503437700862423755708123885829737741434072861827209967152301982205814129674848852301858962420965526324530298291876333381847201020417468599687920878024029713269769859519952815497421591714556559208717383134158140645376976201323711072697885490911517204792686474955613791686338344770305818149121307257716052378487505169398583303349813302860684827142383159953150838284182435578745178156625062272036243419737601638600858269088384665925719067541149426234834131358868890487634901898985169400737379194522736253792743527919080053057865491299921192630767818273393862463255545031842604502652005619178884463945076818148896511615774718422973418096497690889274737965809716117184652439778871085494615594070811813087723978480002689802480130950342738963639712911896454114136495767734919392728023592236512419271172384019495232125039867131433121457619459279643636627448268142285023836360821665281061711480571602624300147438198000550602086291209199846040079715465903806701180086528022547766196119512180019045026488258006632050285514492774680438190593205579340170502802571528917150448118754310202435074576731075052029626462118064365441795761894049851630482974207070632806013394752368145614966584763749378726516377216537495717353635524450905337377193692616696969899064892598634300058861387100152185311429814805337952746442989252751468214264471778885795301611368150207862091924992195198654728322013856713958977943341673216933113709907509660232155912158919082823776224928521095982176923095747112825684648709778673611789311263274877700192532167696547747324857175164988224653651718417921704147512802418089820200836591598538449797890731929651039451232240638686251406557961335842232558347099950626171901594736680286536320760623387082332090014105815431028628195353035754401307853638660014498215627799593071656021267280048552950035296271710866641815020554488887177589406902265432913633823677645780629257174208584746768832807231033455679662998688374916044148357800040568776944617762194435823817857670342846745315577813892008255454392670588300633543288164508485317013083313541405057572388487153294674107629774996045724075467500275924903462032249887378783884602159191372491118328996405253767627098961450103128285606110637978138398749235000667224497865189645010176623189414664184105581112584327890028589259763449902930205505150769047428973405592332327582068352229185441254597944504628406907893155883839002267158236857095110878020412842271023644288314339240994865139078135672516981981868257717055569921380018878186557176582372711082193854167425325813340214074975349089400010942035944819781195235886651753964490714035005068724802453856519533074164632517973022009518745570161588982995149674876452928089920460214928457877099751470818471931822928451646783817960275271627838289454522451299856108092179058833264469992151160337112791193792575094276117310302778376442244376576173112481954815613757155622914705366113992412491839466111307418047384533268045942129784136792934197514033817537487192643207434885832928010325926552302810276350830388920722252438813111797370401856141573447487032117298883646005316717107406298881882929849477020973562181701238059662830507872485183554802397936246293523057145734935166970819622916576741172282877113230402354645039298631566983093411250468767323157543418847316036751335954365151322935023816341358381578820039861499050917972016632873473857712757634506752239413944675999202818990062793980368181258626430027762383064166467528652047456548960416013294081140468884402174588792499518854197625204222869277397922990815617727367807670530154169155235403059444890099231266799205963237771162178066899239326827055121767347174133326122471400500036222716851082622860382373753067411809838820450345254873634453188421355927165415441560937365763009732181752470329150296568266220159423854127636556030916475569727506522696236848957512377051870723421371478202131351747629789422146498721397233605045758627648154800816912594569517781366016824781633504937049648964853791222004235156109126847231607052424519409947052125701931094111047745821522615179128712209568911892701116881597528969339913641580360529349033412296662417663573653160209213624476625931223348595431857712642809418508214293009268354407871434951972627288017479262819777091555274521497644327649522025031476571617781276355700849772191785384150121153045307523967286688896797824061145214252680227225431479288014194709560702802935339535697555843241412062269017604927687373788395294929279042415366850749200653252995791002783861641381811949171582336681476725038259288555938946121854979507626122689599549320841573562125538802500726146669570710414978893848718803689466484384713090705007878287280154585448096799936231390019763212867921545565099796153352509703048113761696012119413247460866463692357323837370392704243315839027467322377678796909372273132590835160432082298977305392625407479800623505907992401440462734275272440820968221819903556452264556687958098438327617805441411032931342646257690437400244281920634097861674746931028786578328663283915476872845888308032667192720013016274622744253444380534620824743275284909786897746299155476736791165780789002730034149940306306609819194525192592144257361647289031536960271589086511015775774034504470139739237669833455647636085039670328990477360630166206428796050706653609812288199904457705085752525086864079298756875444752479457147041733882199635124506179041051862810279783286127866056678805443318684101466780887948574325997660939517889630855404939480680140228023691783600080935752485529518460123887608345462645692550357980449370358809814566833318626747521885267181209230692311428741520672124035445475886586583891223608434509247044102698035440874801578166566314452977452200370371824243358975351187442534817260884072332527376207263994198940760170607906774291881660578313297700682440862287980872652480723184189292138391626645398082290983966990241157084695145545061262398299200410066141757078796176962743155011065222105412777299226217325429653664321275884455000013746062283986733926604167334585390052846948592102260243735061470701820672379462574439146708015392585986210731881147829844037538300235539348288785493146193045493850592405235107266061111384233062107723500137665949477124615137997210254845596029399067357468759404223807247813300843043995421854553810748168328389200881901237860718279710698226479691180866999959132853107758523074944213988348186502981956374375201338914435120269358916464102342465227104567307799162774531901414726631103687678452025094420419498652386998027039842987594950353827027201435105001002202963534608969345826902058233384337969230911644569389325144437260982109667970468789118539727841074014657041392093464563147401316922070261085810895505834420640433958993302715354900359043650975394354323654412405384246761309914087619731997232246804962834495980408929687471656628922476610395118434395393281318985795356559206300929426099010107948529859614974454913622497716598028237845229748650979484538636572404513689732536951461566245515666638072587005884077400871830592660485987636182763307666657849415342376208300959277841379392527246461120911241822525008688654255659402486236339796706789006138100102216069622476756835345607585894681129429499164125816247207666044386433771646809689709671613768222532264117430847357617620283219755452193433236285632287634892946645199147187841137766979643560659968816562781836700871113356628282961274203988716477301420447060272234633830029111978502569502883701027382697325183813711956430731435462441191828187543520867185804635663966824175820714617613273844201463023561860373508336824831114062492567693985223922422245913469941278154057451278588840553024493291841847666609585320209007684386941946741434083889496498800221077663030126697545714966680535278315161926349612144394229731697147632243913408073852560136624585462157285014084623464606072585143726508550868126082675130609266794945990607270442119220055597841046211417064801200696724191500841350429065802166492381455933695244500013585757123944989460632860378352490960581365863367425897880805728370219404495627297102733346096473686417601096510962805904343197841215413149278740407116803487658047157712721200126422539984416417399822995467127121048739319596727489252764496794824244856529033336957815157969270203641485069206940508456418264334278157758723444602315187773698084142467425203304902516913163536874566080640908806659185968754232640554065695540397622984548356301634469532585722162579746571955558516207533221809315834522171376045553129390113580548550832894420351101893659200394710447141788642677015316443603942857283513390048702080572798347832811985000525110532354981527059072831104305137093846446990860861709098939592737415307583184059810892971656512873003029413274537332065943405012352612019083787485012437380722418007614588587343486073949228043335594933649217885722922743822003033702511223155422078167629126988568627151792731089335793729924482142938605130625427081691468531358084105605614222956632260008654189951829232988601286385138298973953123689522412318726308997662101098613573328633767676525665429566005498537779286213228518556319825711751429116875417738043675020323564814088786472055003684564671200130279434094965361554126841887122063539035861613018672579288017594326614330073643908912609573031637024583172327746083639686250917271936129465584838840840008471136882688918854358548952981486891878150800811788867177098471821861731669636017336664382307446191775030920574923254105623829611490902764708737390365010958790597472085192925028755626513759987725345820815918593505625032570673422685576542014218787768066725295558756700737393293577921156957578667774653252490750284388202644145784115542759869183618745328485025554716203709971430725261546679422093265011875245629425247543608345061716466274360412690384312490979327458379854883537336089583638088575545052321629508815882061502973812961809151201166762613825248763948020479007339364567257241574271064035903685380414501727388786940629299615552028647574432128208272902735787813269931643656019576136991975856735495896426259540547401326568072223141003150528450898974701281338284116769783705520198627185640366728591707184402285207420305886520817356047206884373656058309095029054747559593421541317954054913683658852392116987372281593504930567585691906825932438391138252877743442458795134010608920434476940938348801792252239451596310966121400058913725526919178519281286075100181879778107917270879773430352744483007843411269403141555637146435159866712433660839095851576083513881316051356486130771895183983840025564513059811810998127289450172199234745459404803443377823861751669034837648573573398842886619845197034334888824686252766642456271159267039415202016155370864502680224994847997485441128821257166826072310949020520904825147173422172016171316240265523937337777154317503801737342136411266303401996585587347535472259669011440873388444232263569923599901963025720120022657470412261099748681573311722385412593964803824510069634684334150568233389463818338391154753228560536915032947360890768949136682514141401981318573966756900212025474991113646444885825787798630213476922672341953998066561515196940855428095416162498635234719846421288754850550996466843347494818448580065953511760898054262562276828658511864779079527415148159356715277336393522627599463359699194265314020679899227549620555540501560747689295275509216696269962648272429103950492108523561765086781947526473702934326579580730324771264760836232049881421688456001784432404348895705094194579390216620471781230603200515654364696216064793088732322364225802920077372439366845102019109905031535762694266831640837236055814900105952399809187602838794434519428203501823027591139841599188455941163350763430199953368219545892235019176633525939623537072215936101974324282087766335302416567791080869872778078425281022002321068532351626434656264008696970062215931144603881941129745406682534277504149447694471770211551706901240588486371855230087313439828682520787731005071519122887643352893315935865300334831889567220241632774943101130127078472706639055533353857877783865174610394206733795419886404595160174933752456775824052444146546429567668944803497887543317916711202891255067273767177132278063543595361597622582306725461897046685573406690563337442563498430049020667747757595671523404364843051493139394872004797658437097082802255334098087643883046015977178286240256016080416392103045976732288409980352025066373151240618373327345853595270146435581079340736533872981257271852452962426728612484345696001171833930696843545427599914298196506844782158835289693013401376832083204492140671498085765505764606253605903807261319305939563511532223799624781959667043414921176517751361810835358833452662785869395478144841430315546019889180285058884214038193944706688706354985487726146887421529789327524474246766037687473711852392096108521837017368069012922482200711421478399203428988052026711550325584883642092139561387308143973737255898185679702578032777235722606592826737771516914840875489188673899603958047645525395391898069924959618920958075899028125724457715408901199308494123878330167550762557456634607215029918139070411413255599667744784306052210566488879000537345452730196292101598569462700564757973009449438825927359650723367038934346268785387604458426641791139360488425247414324962864743115132400737459657101358963783112352021084317122362084464265578847515436760132669180481895915323429114868871995433251123710663083278166627236113967950869429371582246724685685629038970299598155008676041559523532907839859310884493072803987519944785854495143270604588738353324143123390539728333626256080348905015917293236912064501037925316547396008589472969998905884340541031434960567070120579450039967004420681221663206603705830866361141233099350581809626500543517879222686416874939587317047167518592214355460018630202060910381765814328297255374687233234620479061861413540334723332543895192972084778890978353395430332364192779900363042333265148280819565417556471115855398524600459359123897956841970124892611847419685176728115482916589507722508331842963391918269851507317244715735487191808356543746866419417323682174399767602440475678967292141736509725559011642133547262086588729601984664176843460279964877308411638887036391449560625918706905656940673053601910452720045593444781107095361769896414784301492531685676329454784542155978694321658450231416190990236221877377401374108594799060589744262564643614988780506766047408339801525895474585599166795258809180458276903078907953900414267730212383399855276829626438100260282790714088870863084394581271789307936453185055647363167373792674782749165390133059364926287906810295808836787616100089674613790451994614428087524494252296689222080546436919748459677459973099208192176512699342710478419742428821660480229828128556437512632774783567030014059100541768907549251984548117532604331222459836567281262752013422896564198665049856428059103035566294931723687340440019232017528562034852743378038562840929334950241178335655309116925130828438824544708785144872629337582108092726811720741438351024243614517211301826363990425100614745270309039634030885860283839974584874566127972134744128257184042257153529859345429459351571729231428306141169304935710890650622761375181231658884601466050072986235433554239394690846215611786487454640085272567101540140789820670597558552325255210524321300268389322608767588701001263928002958686748780714533126371707338111847428256310594304104486282244776881822216211946006346801210805536416932092266233759358843662539887239149079610268720979749919347539823866718256104148919066010378825224824834560275843175385684560053889214645055166616776592452799505307789386330716208079930487842319047873421420570358257093098595828500257276274818530334852182481345400898205815215942295426985956920071689187606240707444456656168048223849034314595049412159254825378660296349270090550505653354030251541506711378186045092144789890527049570014250296461449563862068339462198075151274576284692331744004929444036498590623928689035042237382683621996933733655707580870503722906093040653520973285716702130146720891738558634791871547037272389055077411940756868107910498301481380851041113036353832498185356411760936140413924726154508128184963407428215798738099709521070562995974885483412090066697354605459999837496602559147594158712210324212259625833590344014251763110547645416224238073204759428343244014645893782491934751659088407505605466505446511974102428368983061672410706108391670990035843691855539630173016555571871076885259442560343724964302127140688007116653497709304833093741284860172534095162106891235636498976908038533647011806923969129006295994520775782906954945736375313960639942137462988256460540617100470404958229533503860853937273872613012530087629479550463715303763938204602108782726638126591001852049241146534128978661979886594993410404080230229083532473932371186565309630199693596290596660444542853497037446044081361301220759228462089484431243213461723580911064931883106182281228242017995883019170160668914711339194977983394342873876101097469197189600601359830473247557084105635386359233118107675741471519792543593692541752800053739604155897958673379492572420320869662725070587843123758741968544850256152457608717123374764815314401288997177121004146346519009358865682501479501119628656459367812274360892386480121265769157209876332803238392682316904172915537790090296329766071770005158743732804738658447237372690193861884422921528341045084556097025738149578422968142970778084110377528348485428579118286023760656708452324404700356482639493942695511800306564564770780334993176637570345661141028778470326374141673098491588152119209408958695480849909577285671401676226650313237274141253942341252984373081080614557445754765159079440158011928827396395353281386509095135403334386559911014604700115753149686975518999591529424256038951534134295057413096012454989903062285848977766813261348337037703537078658479203569703780125139539938522266226560808532009057121938950586650022850376694975967516305338237716653117943274547657612850686663666059230440085360228630318805634557857244478499138249241410607557569574040387115773194570990516952929239138154235233920209132787262144866089153402174699820821977405076958899460159274355729739811050318009573339500699537335708872177560096354996598572013801627147326581319992884926431610322726980567489204731681196785051952909533551133052727151969376181347412699721789282416172627004706116841651412467087303388178525757844291700387449351855659892116426107731938220883082007861825157069584571139990395505775089379444552324135555943704050186357538514792109388898792445569887046429126779448598874943035834216741873760551594856155437642716614783218250140957014412082263156630366128816340709879188617648833249542532847358698859863877367203369636901235170976213400658404578610512838666190640798508151265467510591556989874356702031321230389595430723865133015468838566086287826486843531745367558747076918050022137710050711032932534798574083374133351384933997782394892341341582264213655206299953431094272401763076487431398804168824193725763231755141450005004689064165580705200760700841148470850720796261770410534636203364924557609577987531276103344224253850667515839528097156824158439430511312709593342014410703812574138785911242142891627798089001300505524255072714705107050781472282192434744908771449504417236270163706415281916335425082630370856386823366033298165505773596695926412385645617134184616484815521068639934435681818706552216262362262911971394799315772208422408556154904445667843815111830302651315748904418894639591654065861697680146104295071129973233794038528851440292680569216554790223946720672200828101334137604561821986690000234030333092655627627596084198964035016653936312926254385381051004784103517475431663681392315478104387156915892609947543540975322648307990697273274179607449258178135513459370837162586723332646708811027432551064389175541866503626051910122953309287638159608131815510252380199865037628835250953046801532277492605873023325279920895997179847608038695646813299197287987141607257109510086455237052306635733140070981655812402688393666807936724176468204313054451572841663324970288315812247452632016595086818138106081655233576312468029517407163328880428024588852139387078729676545019253611619366714885288529217101158849450028161106632736064162920364798924035957516936342304126826723879445427391230298464763952922371540576442237488037646472248622811834387724992975178182146369368965342757154369792536424363265589075468587935456819914303003669934272439470926707332847407544558366359443252075691126343997356085699817742327063740893057472014035361247918666790319739540610923520369283439869739555150733506833270591489831945710397387398632141637132673577451735986419195812563328936613016176654869819643753487912342284605566920958016383959848601304061334049919484601936808443031203066461443353698012993444814775431861079178989897426174778130478563730084378594659915779108065654164568341321613087534382838618485805362093652821893931937901821164795959182121562517284694473072051510139463496913434252328109408398461713405317041754153320652247249819791043731857152207385775644838898294295437685401462262309489683553339771677155854606658349241615237165988637431395310920066142035559760517511139541195741230447711910288507972866650448946475036663547185597775080572764475372936625196609530403276723087594664408875251738498809523449926241900726063668248683630318295705343814148287896409364005270164312036487025820584522787259485391893709224906695698429654073014522025411471686710365772045604993008090497784858438042543991775021119318517441770828331453022651222151921809086156764810687888611926414812306661635813865572376307926484048263890086340166024004915938220425556055650621688839805600312297588590959172589585556296111789043326867448989874888125292483841892247715456977944669111185300477618624597493379259436529751863287111177517584828364149217385566390651769280373935064341398094106814698538609558592215682115078205661638183828751879205704588876029473120179657302747106690504386607541314848137994217872787040490101588123560535189140872692626329563920884951713211847934377984518306447868427332967490621085799324875014870316977366710525856085658818443095838194054482400050812036736594869345725868942621988332085100502200178333120611279562042373775402429207459098571589093608556334225901962976131066127805997891893953574469192469793599561312417049544028912055600718408956987233095260801075031290180358361799002764411737568406602497928207914854617527965737943288881582190385427456379346992681929397592315680365612654700902496499526136540309442590428107814893668533917874454287308558361277237092759092609075829053362843864960972725610056411947961670790466011687196257515832431493153142547025674338446361363764909865521811930583559907630924622274340191590289577614579361928472788502570489261924207361533128594449449876616031134835005507518549429884396479086539348988424059395317232976797988921677530645274018882948272695977445000104099369196314941602341394732814013151569862574492788933716425996424119907290020575567645951013827974116741193893345463442947724184473042424706442271785149093294037526208463360424531448277136004703298329114237703228684302444597354829900150362192243154271647427523157728801963595292160629275908071049165687920146553465771356514165981590387580403584029781418396711148328200072409857510895537166422545767054591048563640736840518815124964839003736206503390565946506174170798882261207610865699348709049477211829035516336376000891589569099776214703596199073621546180008074314115696925197905874624899101442835561327942608331470448350059484132854278869083412013465786912021885294868980108140211885016884721676129774978583494742149486043046249553154072846449342130760918655348282332865723398958560321181639040883410336846771967765359818582615413776022951754958983382398019298222062079272252816088413383830116240413321295059951484541453879645533833602570990005869141982878142779967955746647162033156379243042931008104266592982746170566609170700743798726724349941820965769931397317929634898325062896063582272615163585184714794074215719910112286563575015967140885973487547394939557058891558022867795824934395215607601392225732882605315745339312206459606527384064508376663046441312041402708115639379194614247198706337428451940880514372430543449880321915879049256228269014916598170153794946364221616091981828142905384602357765935535697286513643797533485707452924070790100717215088954279801268751077827983152182627796847930181055942546676058824241166257593876324397348130766392875364619848193846852651991036847363625920241847484755852559000841787333377589697972669929303316423132350723054428524435197150345220410157998803959778673579320961919725901660376052273317455052186331462348591326467848898267690963249379810615210483912134138408337820402562675039778903851061595531222428307641681418785430853186071353590422500654375381306429135422946210177173855472668329806252318285045662861086318133236589222644130703098063783598498483192415907952067425110006246950588028905269181870413460401387852935270114113261481938970743091830983710427428559917115665378426372853164548479649879893476651258081707412341724807245258763946186261208273126053375528133092956615227777853388121726655464086425402186425085724272548250549311122500250349951037204657874909878299029465602535699793084411204038796137838598693022866041915812179849342855406181968023943755193000006573646709431552890321209668904060505192347426483868455126238025593279953214025960607762075275563920929977671154221949216768105126545522500113428826138082290870158880257010787314029174105409374258641865834995815822235128186778175757792700115427418175233312264426512196216476562773305663550942006821913154837455422285551051139181301980241368988769727251984068589211817792309576777171722365789833640952373820524891024905506112054776078989001066248340632706624710719516706470708946419701565620149362524018752199069584208511035106804501899780580282118706327319427752770363155465942207898142494769999959969985244050181750155235040456831364858249249413915445544191006419502989778886031856163242110857554396023774168570943187683603985988166621464014061704234515080356831059192038325342503066830139513708196667576408377718994656350514017856208256611879139825045083971170765267980588397851076473180855609629079384711858994244189194692235266561861801902246534140192738893503059521833518777723622468462178193760498644813492664770882063200526149275569111297389299883245245120219885322478199444459323808453141426382549933540731717319805969225270391088051794908190719364791058862578432193231100511991621302787648943763004719589172551640599628870439620011764996872981026874070390568362594191782063842810903363535499481681034589234056592620970331768430094629696138157259580716657128274414495752424978331627836043038940773227031981040861966541669527776365668153179381070690773176000150951883389794136560877695077880491343728274363512120895130348497511788135436649623847285956076593341200066896975951044374132768866772058871773916010043268485294276501916792665378674461160666520795770060700303432290839353325528409977340188551643639569125422070265521993587456001044816813717943576042334079738527180879220102277408947346200456252574152892926796376970461930593070564676286025090158201567962057820522939581491579337906287297531983850388202293288023099910940186701040002688679977064523646644061533335991992839333077922020252269038713513621657492947583063894454310459246356822080435144491000162063884864231381930498264727314427658636798047690127799975037270631339550034257896550805732566034224645023682382561423570838337994119471583060178638883387637237309632789223732191302736165329978313917209933703264616624752926580399857796477468652507037493018174974784402121681430847829313097945637478620476517320759460039442002888327641575990896062167493997363395118844842774018400660023361403904373613537695662119993409856678017824895122555267325861932894985152861808232865857183398595668133204629769911270427924973230718090232283128586174777440718667764765957461220193798057479137140127360997360345432179676466435104458363908334112665158637067362141910657194093756378669667860380917408528693456845254806230181704137811385083869674304641337710450095742202540676981252905239722118289318277808951150869460687452709749245515612879972241025581738741954064826179672839313677670302928670302227106187025073259072165568733675877075518899573407267866656968754996171218248401230605571123767738611367710037041305442540093014436392212629977342529611248884176998321250600002474703771360219788648595872217820764775900320613620875458811342618775473114473199745659616320494885163205599913279047461011813836765678234305517266152188882538097605094149784932872125250765244219751557906965344468577965555645370342719710795191838643539344118098340919113999888216312880458007325456925039102501840036513429265277412334354093697573840107291885187517233429645939974817253903937859071641404306639159469456007061226723072192155059854540156880393447788631711626818889913356210883719411091411453442327125253882794684109400310581206627031488843421271108444821243808533760895161083011326963612229307871361093939258489516789582449536936493351065590662284949774233078276182119066998427569365946809088429753308155286168561239260539928315244547868147512575810298941404228608008460051698558588895956045996012506242975773775651772538076433655130503973403384539914760425114441224097905768659330613752168994228862791045128376887519504279234425552397032295778418999137721694388400575644136369224973346288137593052388953762902054942113655410324746769008390564269300989564087625374581173399588737386889355203068440719979435918395345317180147488500018061367447925998976272297783104524023564933008591600717128156078419736054650155321591719490987261299449144451575361278494574498194321188579244311228304444779478733167238352817563662029203183077979825546908011726345175388561562323537484365786578185335230361790928854590398625387967594916731375374320175887493380770863913551976646931754475380344120290656846005292056778170672524372004818612820142719957949125574039326330624866683686958235567010655419409599048869705012061156826185453299633953688728227279658709061427508236283802443961296697689329675458554881105773072682553804404909092347271779687379375080372053951581064004030169816712705238707597402941904933188352857038463153731999623054937752739950406783781608548170914021424645308424288150288657032829815142870440347010602425381502604971990463234405216821847041368380168597622343679035273650195124860225274382978804970292879885657794552519893374274811524035735036655495264743945981138943884485336318503405642155272712360520047460931386981954924566680457542337004206678088954475357335337118477799250516636883947149327143377727017580915992055193882586759651867258464288611508277563790048270195343878139858995622165571614051592415898416321226747364222840619589619054713023720594697211890227653677947766697249715203077991048284954017858818211282939033402011020961666284767352542213956489116356601066364219340678569203996638129233600761693620083682418585414626866958058109244800118753529325515985881902169942084469510368036533376798680879160019901788742223147378337682246170165764955191161624692752043607664633318429858745595900502683035294403793578064696238215530764438188085524885907463592628788398791742083079002120882304464338251034694547798707838012945226142869401865369917039399638333924075321019705660287669674176501076537105729672077329413632932009942883874563649340103609410670889046533189594635844382394797062088779890350787436015595995687940298520762050017165298798572798719864873504050516591728876953073516849109242391071572446863672984261254982867111395822567058648642286773875510447807387116230374486054553276795730151813592659361934475693436806749638729722515244587419850221602482346125512887708449931024094332185805312748102465168955718316755369286963732241341541552559289089150616506810563234433062239899551473252944941909544977645089691060173377336490090781897771380405372703795396222656084383101484290860679360541286716070891587823360575961393157002272983225700484641323986213870056815980608378691685989975163397899658316129153585812851812731710026957358392184325808328511171752753228612197644510290055111168619011102765508001246107479917272983600433858781730041127640545909181895955426386386734129906559548314654054088478814367778376666642005485410532830843794147817500534877946843088871744359951432707705608468243760396682043845745003702170401293634042485161925614875837451051666326948805393600787165483093917973918486646215785136169903408958367788578554785644771959409225714539669633545577531551788406239722448922045914143942400146339279472881062871533449898360193535472449351440020990594387488637826849901076096984700037222386864152496539323471022214375667682130584227065564908328447695015679356800773374891824533888969172534594094239017613638386660444820023761919962944797987089921664055550404889694383210273829021848327251097761322399104049670968028208091526736953307608788357815600191577610022601261286178998174850934349311978604010209067670409032389397285200826712744094176414858325067829240165360715286831754623230329840342659508114788388184557831488845082530470429314329044257783077171246358364588105192235128739073154639880538516074180019439596664995113303434012161666812855274887917669852585052682525244610098335477575192177284192526930404831002817479582353777754474622140360662193728012619703087543744688346597193670878668216156592944865300604380770570864750075910891556928563487953873535586640778685087930273348140179702831594869798419219300416460765690499505427336130157771236031162239179457863126685286957292464333623150561106592231743017643771051658206762924853127285502093418908557090144775103336953290471366798051774707810981228098882879083588943168749848718087885575021771953027084550473166248008419471756909375443615775657580389792293337292974451178124165899132414228807222026184777528437073516869987496627014931835905511557675421580664960982059990430525520678638051983780410990455019293073697077816641882444985209649944231495904625438085049630877655037332614466156842950431135898972900434298124707341870835045168185550888415303410732425694147783747412315360075397632123024415155274828174132688357124331924829230145393825041561963133107900129616562006764157741774449861473402840528575048922169805992423043081186848778386499543559461819060435041612476710604529973631971511245721776146880538553176818096664800563914993234476204758249474780276043867317826110145740572407237223702438627167410537070965953038696849835443310772635022678027829720589605885364670397321382698395202682679209460672041813336155637939278486756617795855661179217332607638000883342687743048982647109683171196191980800665393977634291931227320713988589722719242642899403070150079538620527467918288578463722319387842398929079043783160475581695547878959658923337542642196982367970680842109227652170607117574363680258127078881217788569814472189516671857190237313965238489347209309377968011835166057465110682478470707783435771734054358874893206733227927733853821303775831932825797163978780606987742821909764032953464018920668605448509063282878810506187881010524834759006541667185117383918693744390182554638095924247410927806075656189122191384547799943969011619608202794046980472770390693470139401520381059142979158297782434505754191056165921664886267531457999997394696141186807361635247967106303151988383137460718849302672046177812744758730630998249937676852831824284260983520678384008878077237771509500628068440198850903661528056049968213688765516898437033180847090469924827858460740016739505016482523586060661045242831357312089555459991868607460176579267323729221984964096846988233130817834964224552416539990681694256164960820447359596782341166150079625478970246066688298550669157722926446474336520085096283462601937770511726979717259699330103130884400775210822408719275663916882403628259343115830924823554332328100236462248935647120600412049811972037862518586488579121255515547101573583490796158436949207286201860871065482034527141811451026788447311711980896614009124189307842739174876468256137596835116488898970238066597688427752050612859504692840765486024349862340163746761913291341878074949987204956386516831968792543416069316881572245350403581760399622217821916365197919531838217590169911346805272844230521171373750808259950724685191714791611734432805647039068536168678265885374325035486428953576463430755739574037157875747028304197841082800382895479039407072500902209736525381686657201199818973098216245108893507644381850571381895531334948871198345279407402093653517635308945656621877344029869396603287793125421570519640653260989796380694290245453791730317508474856317796400366151020290114020848849120404812097686833323525342088618324808082051645526934260063679723443810689074535948983752137474448414152869316805133637129521044200738153229152675919929191377313689164827279160143666760363534767939373133978872335143611986058209729093039264428808290560373123213117788219097039700733130598134107953268302597523234996124373618799681392966356086877445871830025360113656310481570132154897500496630018194608629859959784843978797051982778246249719393407718588806019083040590688419186457330785937141577967608184040953400694178779262904861727074182111206775579948773346026998958785605278594899956158520841631259772847582825210921507546674022126536148743076014349035020939808272851779876774171074353026959949227273545356744112437482433585388262229008621438665950790696930625247493611566864925585715908028511169051653471484538198920439087048997973160550527236701337257332294837807514936595911752952063382281231184574912453007194663556414860185107550996661353676202039287313772211152799557642419805097862533781173037978984776883504491461674113400187910300171720646621719101116656298341416882147526938537491338268871921649523323627376576678280654855505173355696482900099009291858994497486457935105426065866893416899920791713138140386681376733409891696727392482414370651603927781112582186577247935833072560783291100221295431441649579354856248725497556962720538549869934584393203059356804321563053653691362589227693732388433933137949699209112677638410099583383486916864776047254181874084789457951396651109595237009127197184386145011305711546361908948835006158740275284283418794258258270148409051868583311572551819958207721399320844184599888473928308144447808443012096034740974403418590613036119439295908332088220942879001758201031863032140370144463113125764364943723107904941074406196433163509357316029551270384714327344389726078411855119056391979177848017934040354895991620048272244375848055498888868469479071894732454370662608843034246569436553363732745887191098680381720779781104989594336546858398988809829043706873622976740241790169751962422532736836468160795169752796616338379925104718001965285551915259549361350900650380187568775092516259339000102692543600786834901555206739009841197314611380457760485216718706319815811688728808891726073342669380561163131401933227373708501512682869335154410367575185584711082906259658155419333089868107326844775190038109895536945831651327317352127202302323283473564453978164570374911111695977509558778891746952424919691521732805504206725781587866745407878156140879613108412516156415787773568464533012583910818796667247179151596199177168635343398011421636088687445606696846201020255017097234698454111665431020749718924808732320164235618831207819911751945410242842994592674298359924173293359885964850045501629329907822510377715063126387000024484615537215209496667421455920614203507844491832120424720410837210561292485570967164362709067316908752380230303380355532882648731948521644306145748941025286456669102336028560751168897073815817878137754449571167088183689839448168987016835380614286000142231221861483287456857030651340391285700166018873288201501039326316032127159902978988385950566767828084729122200957773837735303920999069468941273363407424092679488000556768556307056837151146085262282024953750116379833143702435586456595869230053071295421319970992483841532148692748465638807696763371537379917599825796838258989904593186536232394275996131721903175826575975006421699050607052916146233990399878979296683680141381660712010611454605959004590045602256515044973119978018326904321111240671766647916686088307373054470501894573436382691611089909249317760596084893142556554567738708044052917419059522947191948067343116080492756783214006404998871729682074847859268834063659148869168328822756634661721364090619890247486580714949000044932861701040188816718380424918797689694596482923552255041614051356705810905546072459532125236795100087616010741926694647902513712881967352630048718829305911836334931553551715191085587477069385032636626329014451329947255589796262967721180650119733539088625884323304375276051550055730511321471999031572238451529398116747365728264851439387710940470468151882972505789538726857675715744513189359706654919028245278367916858282661777385275895283485111947489177620023621703510129430609336816932122773333141588489212778980619150656897379347697526474021279831129021261879657961185363287288945038847987836594394984803181381955508091901790339495221974323577353570385342152445864680866726103361408754532268069701741739072717580018985867008281512020897549525708943200767124748382561786616481858935624472576262768315522798871025751149966076494179754610923981164492231588113108979649287921736909009592077283607723425395649886967861563648845312242879589163266739999118583734242963823321473268597489641847250277312840800272629092360981506554001547203963120416974880280464436612508168080038815420581336041442247099909965878241033454234000521155410039092154779054158764032883591494198166510400848408776201714100150750536459215932003068177572054550526130980006701763032272128987749934183924959159952996162523011913304547304851692700906326733849884521688517271315760406823106252443280091382017357796229501554467583618747143477239752575180924520198700072217899261563839643353432467435022890307509323147718945989052448960318556337611392887652608760357757138058782631650888481381831974153677816427486203225822689182514401105801256471442269978382292687126887484196893566988265798360918543329998981379066840091234919403524810776932871309790093696797052262830839807457698222662232427999880841545073543462192945143947158887066033945633136882901125687638371248379028818223628410634546507554919146479884992807774189307517075463886583931287148869146597372997945850976645864378144655631069087964605197175311909705970476134645775379929608158211113295959558676132731719612081264804063173369254310808015500966744733406408336448137119102670860007047985489798869180584143730469498360618608886910268729018760692884482604398115146052958576789216135092749066983624266074245083852456157850524191772424966434038874895159515841624520076618664012046751431040223698667200435274756776286212208580217577049052250972658275812967865829075919232057396344479184698171295729978805529057940485444840525756544016624783110055239857778998045686203269779275676946227212285071992183737651998163606407917281080962899724366236381733042726290883920068665558349158321660056789565420616134275104084557634526921847618561977711525662561598600194139512067071320883140095286266064895838195602505731112271451784591259818584704241578305263180454676252990343382377830217851755136242446934985386467066457816543340502253641850912990469902850936781111467027458851286122909342950327983197557808620601541772362799100303006722892111936064772946964531841576415626767927613817592752224159903887362783415206742319049168912740837169330198713431203544307706919835603075516121148666633093820658112647506951579875819638005620404807606230848654313845590820431332967890350982406812573940125850631455484737622372658401106899430385350429894232275466492205429412610112114531906554959289687837725505024598094735958320470444147404741055685571104188326002948585475410962183903953672502339574486877416196923620539657326079214645803329235070512708350180344986805800544428030124985542609407122371683677852539559005171203013556064589569652319666258209756061304718355238095316315128639593073590090581382796526517964370830330633790752627191750666083225773238406910174520732999715767207029116484995896628677536026911915598834573664257150848996029908535509334560769711985449532390394447928103580657682702774594426926300397508408634770798788995403383400505297715658262866554117330588173925688645333187120434590030215315489756461065544272104395413371268493005161479511035739328906518145481962168029202145413542180357193807839022880154883604262456694601459966955987141643394636876707829173512843579761793179293270321644608362149516515176475238546838512680852926934778093529547605677831073089605195622265076305610507112981336007152897683281461196991516818093326456478433318867575315723366402462920466880185919107034814650182284445694893530716203300398742072217849529972113481257297355651306418999554789437636502212565804730912715379942010379950053766380391573071942669165079795250366087644092404499613321389858446952007289863651946753269134649765515171452401927653633195563419348845229003226932303500537025068787435669038804866192379672518175197576796241704642486429134522065373194438617385440662328566434870311680901162276503570319208325787612413521038618172637537405609667581256088653751938566920464521420908885194022248904130668379417481046220478444921559124341066187952989722754214828112829789715003922139441991119724478286912966968424247674728321606895243169034319140266440469644565523434157088583179612832711810099102279179374993607417654341583002736761073232914993630597782015548860092174249149371873471081050247195957022759885489128560399026931808250033650428966122574871466061506821478777769388481174182674635984670352118899916773802539476441815594649596178935386231293854316855773163713307931731755384356899813557625324920117175193508934810826258548658563156413873026973147060139642861555832477018300582731234846729409019813607286174340939033056525907825344529353359938272295102166395092508063126189723385733186794486049388944302719012563016855092278193141570736304641860350067296878069352533071091668254266286878365376984901259686549440264660453736333304254670139282515408427779900940812162979859555520988091592880056393013928791455284287735148601833929598912492026733873544891511703240530521096577567374617968712478689937578372130993717057501679748388932309017489713087262332317379042394429389585348502113228146193417367821132242666619159052022645149119505796430013776644404833371221415237935212249156064819393007094324179376425268359979397614205732057506253355668690481094778753158775687239152093931427288338578019987769244582474397021085016318731875902305465332770526341336891137284437499126373949176165218543531369577648417404296713077755864080479715481209525241503132506188046784240974877515730133125141421699714996755348145884324538858898892289642655263682228735420648891829558336292666769101588833132893994839328449970684970015329592998242642803591333791145036827969608526738852637525955388592901123206025011679671999251538962790182244682844552315830950429711585425011399547775802564831936571032828221134639103247061058250719965100996536483988411917387792086386864888536134740548894163115575143380774974464936550529860595096847483236893883696967135470225078178813703674187833825898399920514828987559746037868448296197181243219923332488898996293251951537691713690595661484229072177134006012401929628235243125310436998096217901350922691331425059961495649009712036421847913035112303848560432091360614008421965761656682501227414250514051204094523952705951226697481552922518130342600370827893835579698614368269721554080714698587809707225176244947465236107456339497514191272638138405711174906842913886345682620189926467109162212438612675610998698194635976855916856186707264600665376333091294506418653677680717110445901620939815771417441697874154656749669345798570577115049206087522555295076348999506568228225515094539720398713206294096813952116930134603051217596835804099782298289104025662774126867416993732730022128562986139078708963867646019421133131427663279970012471762099864779802373415786595138794322857982666354388406465544816868791954784784949462204990737155987789592037765962336472084670762996817185635335810719997962668339948294422851072048179793730797257039514587298610333542526605383320435915101904283641532679248443431650982813284791453701277240631760350894944755644614242476978700440787373863294961929686538230005970296124696536432992957566124131356731818762903781748911527044510937933618369320798151027075170229169610432952399782642318627532917452551046302358846636464622692212873893278784880714168319126573243586400968788174222650734890997961202805858072968164211832367411712910821420117826780036148251404194222651392427950234934170636894382983962973261994526113667310339912324361489984794144142230467640316417106898409691398418940921164499497960239571722558954195371218859180355378554274071473956982754051092497901469429602231356627932591645172978753814876749736318142562741519613133552861506789866286185617297027486196148552236804354133885138358152009258116338599983834700811799889870683341534342885996899190137800959696167262453832777962683024205853013128600546162574234937608235999960551806916040424358866750631747522159076136636589648635754990659531354236001728103822966288058098011467231398806740127503561213918722343642503426257098116702930776275264841244425992261727105114238919806134814783314408547468169309613063462935053664217601130683538314595616714898508544440319753613590119843241803523050497905501210523806894054605573763751706019120224340815014560469820053259344764038278059905874499836334570562716416341301687249573074064510016636228527383827936252108704219641755931349011761900258747372516561066538943655979475846900145765849252305078623425029143398761820809637201324593282115582260750966761184205107592068788938323897978124586168227435319852939395387849116769075223501397303486921976500636785879294285617819956211722383975056427812360268491642104287013461036746084562645128858425672371074823236286415972827822242902938277300834694265493321439226643485051445855840445628744869609941491629289791843944702911682434727636418447280081994469055649046596131982546053540885146861634067414788216149855268546805882621762569077441479550190378563123770171292474661564307545648072670414436812480641838764340060518456064176132757466294636856112362379182837239496555989057517058958948525120898591668565561766032228239535096948032193078763823697625772659476048516848072032836613999045422418067405206511148592382633643597274351544900336387936898578141725781588114223362397167908510507533947755435927958044655886602127005774693306229507672228089352678828645684511158826862483155757325058661890206492302227381743081236469524086969294050133676422810533965523864780665670315073594154057966165123801947871205716087546799598651587698633015888864743215270071069315602281979576451295824103912504510488566702362856015432716701086078077994032252308874022587509477999999661889234345974277171146135823715042770469847545688386917551968865687519733336976704691406390661273485042076501446324970428042867991275020015944226483950064390544526609622121616206615049389131739658015725403346088980414650195892782163092857631811612109426484899379009883195705457043813661028587612090313117423432983783039867694919868564934618995783684678014981061203354162574620223257731416669273224983613318708921785479968505493659700138779959342625077048553854775859913211381717296778971988206909711888069640154822875803567707250238073297922943360176187819474503243099772319957121817066476923488087112409649907848121929467542969718288920062613082392624676775278719602324325697103946103854160583117821754211787209855222953860319899870531739408176091604076498780679931094343917853956998993424548665668239454114642682268213406291433087496568438959461978094001664632207268537859416527030516191237859110472140876309057889551839292497596479105083395985921307733299102917099899659579589424355097726729013228222536528841677624124938406827425244839463122484991842568640142857345284560950190331502723220130573987986598105959584508812752184559386057780467561432631209899695344547191978620113246843133527158759746180866955764343128329683319183729702299393136579910451163969086158248483739570252294331130842029567504390705359290820503319889549548881245126271520507882100255808555328513796087034558612509229522102325160671633195297970422709296005917877641768202901408838739805773780838632027577079745664084395258134220243635718340399510718456631850931119703716537797939615000443878386748175805137879751430302436906682344058980918109456717429621324183990165191191572695126729283581799121502373936912097142335836313894053348690003397025520519802945087988223611266456903215627035576614472488496598895903185561348763980069593542798398826329489787441038274172313827344210921179477349882455385799508364953640952569197637879670736119863676314241206510448316206194722880981120387220178526675605544832002586374877862505688372866224039489089117194492335813642844267584406334295139516945889369932884668582639090711975316301834699394197185723651512763710308714693029261011062515025569989802713338831422215166279631147855414612733628901445845475050031201078845777330963088179228241720758990116626484171812100939649609519634328666534797205472412740813090335359393745641911803501690228892639284528527959638906981479825810111663544330723279034701246292639999061043750496315029360835594760920731479966886419486975571074389438573827305926000352836511474939558185125438728219510315279185134227551570104786358605755678365590626033480163306042746556067838185405637893772009375054096710539732498219372021657036857488635566010796917932104808830071418828588260468364157211864861384726095605322237396236256344671241903025992474111982595521453108953885746289712991405774689110256510539980718508724349621250050797798862651626310949656451725720167156131640708702703882516954324145477254613323354740282650961106811712055571868207142815920679315368479106200950136150265451491230483182545437311317883082626666569643147340080812155291584050488928673998830527784896326790238025342077260623787968318439870698212282602075282777353374105762467457928971929590655861745210063367880667371654966250790622405772591062358483870835867370155692568690864278049437761631275491072242057500231872060425908106206897122860830433741082454649684718496366053038579511720154056453603684476930114884280977807562551354651814962625119555185011957125592708409396755281865192270077703436188884121230062623463447334109737890975021627687470457809984379879601695302539965755954205051446312954173663351517028937223071938842535407597418900045285106230431727325184314581283618937065571295566207052092565159565462952858013103679567042564936492682084899458907048592990466494877791091875278770907197926627271730314647676563616761906721066250589762338459723077787400742435660797950454016465582320943877793061471222720870441009862794840741395057419355627767014816154835024864061676680448491279503443167804986045119379286141538201199977349821672942694227047333308927419587743785184281941620440705409246450553034845896142230343278800836550436391744056411257317708688642848390663509884834287596878255660785717963283723452190185115652036563186599400858167014496945313821872033784441428541423197654239063874506778299067638703136361832347789619779042870630854779806938709481859564516145683070192075378983704381662943816379868881167142720733721014206122028390838928460977366316622392013494445900201274989467359797837139677474361623589896177089961648128928456643297157328892443784954668928759769761973466034006784358236607317862982982155307387816308956287332115452443205373908267401451767932790496358800483344068813270395623877416472273242983915838905976311367747396953677093007166576937241311643606997928770439015637711802057577347581376483380480036614937277376696135889181398684850391079641064096857785328249942505333252515809271259783359947115173125645414498285140196823333040239582127077056053264326991874480051822927487958775714788520622567829440499459268453517728323375661987850379231612020100997403485402826740423539700631509483771870741661693854754270249656801844158184252584468077684470525116056600417019705684221206862555732991088248686949070307496749140635418665030437874849854404698178269276775764587678098912659926363257855726507692834334857352218387924852455118032214844419986216523164850968200673850330927434692768953203711771992100589383063204917013947844486423583730615605999104191359263509297881542931333445643523026087216862402751248027463903493263140504797722082649660879437577820897627901866346487916808024770470435327120439607955252432249939297960954954011276752005906811968430273149772306093519002405327151310830269755389927198835829229938907173047276475687621127809943485532727349708329249837296935430708860518947766822553318406907854514819052871367013417756682597712669581598109872977105656796773961739773500032942839210786437825920970842096523938395268588191978689519143208231607488180724150671671262019634873209593790676258941732138523553598094546609948136786482684823326814614460618143622025001320515825136973236563990290942667156553181954518176716624093672826634478142175431680161318284399973750318205395922469853229210938487937422374034570335521125602592235700762535924900780696229994660782160890196773282790685600641267210758350168673362231625071904776917568273667992907457125952240989987917342783695867163259246600987782567497935717879616638347278473371721258579465420437425741157206158203127877707110433089991757883219461466226179265242083357084726067388119454459215257781702615294468411228343624487084693197899060807572759815706063894031800011997778151398513677528257569312684463088571019033101140661603102079058755568977304024012041167312791685397923376698837314089695032572605494851286121897883044163888033631113801570260016946973005278740911412731684232598350451465533680839312314577682077660993739515276150232522620837106360830493724485775658300197708533250119206396094614769313180676097059905883649254220865083625469309294651224366744099386750907506304652818565149531204759316340018525128008134514740735930358189743062862701616337824905197960656038942032030303439284271612142690808505464432997477531141206240144368392140170374093937907081916919407181271092264106664096737541434011412380030608775333608207012091227884727177277242890043110646992606824670491392890576543789739488076111105159712595002503425657640555085280171529684760291174828556324508458498896570394551872360679355341805151197047176999943374753628354592799262231229449017541104258233173989989357496050113429179616683372316413746123386854360389307027340213444785975294530655722661816723550821835861017284419888776114194611616097266124891318264144147671976160872423437010266409244883253215294175465455461490867190889256834495504616616317938546669816890840580498253135040088253735796239952227183880186920993247845299875472413996902093792745604610310447893675070520530243450430331059741059318408155394189223388411720642416882231549962263562618402235151882618995606629336437893324058990034125575310528785291535837937600681120317876117717972662992142522926685404194820580387615369016226602926084117831928939984561767302603446792509513459188684540266156711855247854745187485802196783866385799361823871810791313352661533124472304443321688146195104543405046618752209106595333044177249915131670185903376059267112291205826617732896862630197068367681624402496851189055799338904207690110461312263369248225871328336144665832944830862900808812434236558531029425897587411002261095313689945392474975501633828618930288945410213847401832961753561417635352024755508988626647711699487552995324814756944818099040622410076730612424500113467441089265725517086493799181775018848774844232298662845615071882101189875481042335352161831609216194775558518709271978270355986863721393612255395549284225788161880640100782533744091756950365434109508829605463223850422729493837461794094606073988225647862867576812253608263475691659327386472442752909784813772031371668166530044643030461919318462156618720352596197595543338491970347950791027464253962461039015978905271044526228646804401689420938924523860821625081606808007155169983963242777076336745683431135136534076919674552073756837616142799218751134539655490470944957786621807544326818953523457280721554351333984207701824543510714740236916569844389645944554730436102110174451891422583666013775141411850508629946207215033816453070664705289517015469933564644983768843101245857018210434681854666201374565488982501375382907163730552737492134556793890905392560125209640258281481633220305129668495733802223031855511764196129453534213392987755907004557551286883961825097941160831193197689292402517035495871839600468440352101848077958993019543986067490784995245483409692021231589568556923257579860029218362515760774875606997057718882706156565547754350875780566589290927055732759154576341259490796033461956610318400170939333519733643948880536465823505058999412474993977412259628273745550120423107148678424703620879377388914775834155952235927733529522147273256166869149757421723076872007608471536084115922201815595675610997618878465719901553175806298312373643519160790651002763624499452831820027102579994819223472155487320999957215168408271372820116905434433405223678579135400520650242205827814316824691151506998431359892203629025827573998634429907623797920269304715128725989906108917481232530024290696132390583242046071175320252698725710071067684986608974816313653890464083947895008063697730583002728664868942766008774497530381242322276196017382054439342317889969209887068986390677678219309097368388950831788214462140287356595729088245036308893520794673402610540234287588551826168140290690042354542626107875923828446235066293340001785843306336997974099991189972999804191384053632477392935499165716139490806405142920062537084514669865997353485782221945491289505431263709279551531075522213624104275083503960219421886569188994950136834884575520276795868426536306031215653270378912118423886015922425394302365600537347254609522383272070371827092236489749954245461425329858066671505487029446900697512389047599420534781359899601752591435209961177526443716841236047904777685514005452295990898593758109595741926500463138476195965629353760304576919771177042760519299793975312809455272456248318985687050084875703185409099467654636594357682780598854491888148785880522485037354386235481130391003635425355017468266724281920718138495044059413536876825686326699462824232103722997107220931546512853305154622642372510251789273864278648998577936492664361081123758380332075793983828375752623484924662699456937169085034695875575669173087173093032902574490206080840533614792379525160734643088422103916704444461997161176105699828383330318779099864851047728795173214621398125804829822310106741087718830612198311315092097316472746466572491449698813939581924987529930080097518577975924495637901510001717240129704072647147168222597522269631005523526073092996865454904555894930293519530934880283261922506085718506640890926541342838918625975056557474453444266311045628867257595287475952621442831916770988367609744865867654623389128425637628089400912872812649783374130488583463599966109022460622201855413123048368493540369633502852137006962014408947911149395151295267712787025813705765847267088161736356359480173000237804072652180531922433582711985822929165106354882654031415564663693250269848045200583165923049532793656624567088242170937602778956798484802744256305691443268532536898717869989025814945992041114378764436301087628652061056154267188969579401360551967988708167366315518115848214306954273507573114611825150725108808500564864988330016806842172738433816772337700851380701332651066021911513686513642562004981951737012632786514086235934324438841188175436415163232672426574119029168654644717731887631518204977715359406537849454433301684721104029182027304023949860153572380728349474994878221815239964754959237705369307212516169883350945721328698539894714072333676881524063673072348699721103245343581093393619142717242324514600859985016724910190273096704444617625624363815476005872205716416602547666170915015888421721592354154660837969140370756445905319162567483133162528672717897426722639930323336144684865375958513583150594540212664460562160619248434953527677556574271694391733781978644298090805853811720509782699199851378779023810970322146571275436679220235593091208780167182842599182681196517569023033523618563756787277097513885967072919910676156838006306078458500074235949540953472687927128949344631583662357412176868573112934775790754986968208448947870047407807226563086087686882309492806342428456618880931123013540465567159360450261985317349266449446731494956500287667666319080206740344660668371008987744547592589699788165794227284882352782803136927214211855674318709717038550135906857838955523416339153872665816208342784622151443467380144831919713698879826055595348561971567496216802328317286648685970020044890702688298058553703331085819943159245209134044035151979648699102147179745068262081350113874505760634709628906012581139138967233158513156213842843734615818526339348938397705048992458528178800409319375423102297278069357585727939661415984534909052787721929922747767747956780196383307291630196471371581467276120495626781256262919713520534199825760826509077301096471309085954732336042921310723018712089354027470730006709876022746483663108908154743074168500759356059792649696288854506639449260745054296280874781543808354886449269224854308124976141838674648157794196002958834535795729356623795038866999978819714980522094440900287951767272378517858242150386650148602513683423613999054985715722420184926709349535983824243848866197709885272509804822335241291787771899091920792595081713201635455449822558937739772161358416534864922342770865719552227704582260426780726490553901590032168364064065773287944436895883446951250721280105153679908145123119378375208610947336648193157365297561672439741913278813673869605033348194455034222295146221552773664042914065379784131537994407488512589077529919096026146789870500078248120495270134198442252259795622885637253196712892325114088047080477051824164723290820477320157884527719215756187846481484917315125355949831091111871208629918309229150958688340446794223298402645702915766271422203483767924063546558018946103762191762567334711817590474676786057343363914526225816686368827423034882676410018005062296319073080231570056733811405681829913319258291860271091170777265650262391405741542642301636482640173188270837504672879201809010492792384970097056493432664983268033794033180546186884261262927975072682369646362433670491794607479056846150060240840514276227096728327638017219483501419779883720450068989002908409247706278450046562380960808115290114179567562554599260332769972848318091027145581553732862907718629768087393357214948764468975079372991277454206550823942399318319774523794535385052920315578029139819886888204937867751372984126284142359007031757050592299545818757403929968556446904587545521753049140202810649147300159516542971723868563494442304027790635539657832625906088913781911402634839818384907034119740815022304371164764441603354935021200957533517583015625670142160473835071991353753333436386166421560494279624402778743461097065655271488121386565686434950643884461667545665849703473334344616304265792638931658235194703397517781559441191051975712114549411363444265367295461538599794954167280795015036011140180272388654578321695257967553769837806451728091203535692680312625389439024070403914571875928439901421722672907611807594318308609752485661355456216639695052489393551393158553089656163162584152039653705746356098644933393823620079674831721857720865573851963566665630078852029137422163182693439438027620895773083619468663505380212763614485529065159894981459817230957226600516143975107971213254001827501935258110358497402525550795494996526952690272749443203183847299189620764469777139982858812398972195242728828488217657202389070176334490353533159650932441077604930073818004895078673089101790031317219018694778277126030029717988015187775246530693710440420226194712181759712210108830674419836304725299461931338204930363099875683432330116093044046479439084856633795252696791907261274907935450864760570051526701073026981719705502272999523540925836960936237819414774569960098843934187950772284406319352679109579479128705913967936507145530531915517287775533585073492830100337231226945168518983661723482270733824559251572265406341574846595181230208402222673124275204711280761257205513556190886837807256619024593231811477921194564501264781650265714952024004407257737509638312604495246202872638012691407636402500915201968785226252598625450650591318437965345131753112328943176704848251691025224239665896724366885878776780404059393161740998639593666066131703694516639771329026309450430747493023041779380888235294376201794018333157489343953052748022281840729085470357467913355731403987090063518143124066585138255961182869349122264166132067569813335258604366916446548598214801041760712038766054706346833152443007661928088388420734625159412379265248993029032261845994523821408309004164886126340320241077018699614778903535334249648377596646531355069992237767639136011865021574254266926089290240918226534339296221188520903814150064352831703894155186180734292991694540637031844134078289342130772874315002503116378190821432333940405253593874277812594295980784256078336486876110928319546511925901534685688502448715730777572643704582013779653124306260844246384430893588292517787945258412276414791069117680950458703781401567066746482795638706896714896005119010730818275847831099911756240094008409488299627809587600026297542301234716618178268976503127516485527516768700048079040727675464598398998014344263442423011685028090993794775698864853664892916564576087736525094906710648760770158268998614218947820352873728199444341243405186387409150964475229075448942812181615189461754575043569808727996284441317334262069548488473049731296941736363407364672647280174367680364752589599384216064179177594802104969996435134166001690154657627160230883819453569943215434250068342313955237372866048880676602835359272614970779547260432369081900493736275692174321759373599968618031092742266597045733202255569995883723759292189886578835883007247339756088916918560617444464874098987175041320920503890180971416749550812609448396294171986912769837490611770805725390024328781065850464482817324006376628404799902263117205088625525269148814051341633814611069842819658895997667356496969812550820524303754269112811224553003186531348265079006027961609802821989301356448229369344407435803084198793101734084844272984965848562030428304066237643457660373161326987590006640929124288861952532509647705857478829699954768937252112550110082177641180886277546531710269459808918797247622586383089005501887138875747008635503519747038338626600107658619198718893694985437953781457163096054302245059173754973815999748900025313327435174279177192671303380802402320852262258203591153122639494755665142971989951263600233058643316435580226219421416716292871136870683515326838295042100598080067718455118573157039069932459572601781743645555203547312717935637190760361308536910703854262044745155342229866222001163293765612553229695974265710792508870416039332754790878372372696662277742202072690203723473642488912013136786290498577127840247729678712171603782580986731084384084950926124930040001538339505028174060722632432830477867610996293774919755756137284743602153121699744546590042830021881873088266334320889636467016136837166522325433927681170707984295428786679721662777581382756175381540178495354165997093345489411373279434318896988757282648249543896855817338300424194046779814154448819190447648129463890480559409377831090611272312060045867177499135084719489312708572990492044394075388333435388346241415583840740998344842300975762724400751741318610907704288769090316903011920367439866118860782484811210684733102173007494544090876178319177150209760624508339025798504668134353730659205429234597365667674182506978126505503486849334990043530269207280934406323057793132721593588941937637394255567173906581915660618428489314150844991368047458184595804841330937336300118818688821029463638457630961127916340541720495851078721255500253795336240914217507511109545520425344873377227936517897892411769072661091602338408707417879114333327091083547774154806992012549254334451359820071418177708368024976338537260780775492676899601211733336961872207784266571066035079227838662715859107975974146273957745742611751570991672424852848817998540123235060397466618391594972829926279345665043561082063844303970148477947633601183841447580571049474117022788964886961413112829031718191907119844054677737434917673504611670632570760578149046512248404779820813332986104011724718734642971491814336105487283962071137337183830548146007792817411286625373954365635357663735057216634799350126383907108305529339261741622101794894633996382336694495434909021968007206838098372078987431826833036348694859417666764703813685101453606065836222452968949954116477026003191527728816792469137782418060952759582439090105830174558908473100204292497945052172843698807183891654188951665518970464864240313816432555882809418180639687341588163089314204210519966150671484264404003278688654266233404843874985761282769585302430739969980545613025582974272783332037878412724478827593886360096450774106901461728409465750021786154224698853121998557652019801644254855292422862177263896162582267441208634580484937789378055452671047401759160168214353663255921690319757646709763051344623741594310508146991247822724204512739615700278691654608381968412422692817766699489646872715857881531141446432787107423002886747146153299860404377863377035287663690099068279061420327534682514609679964561416197622257999261558306592537139143228073143325998632895143176131778417033550714621647818298370498456554835166537079093482380692321517729923695377395450030320694342597130408769638135125582181795288450311484416216131019126642101449267755560697982686427912205166736933519997548542194943880705308182401328976996503756175955551023348429708052118957553007112323235141378034032701131190773108099502824969140921798205297069556834454683076951466699792299664291258522902608031549668404126373203553244977527339665125089976105368279566828897412097205389561713438093499620271263442395741164477140972950973313328485815059660652239969396871307832984342162462442693510176096095475613071588303264392903160338927015845715404616370964946019665757976669491494799982775230154940528064221258278153210734593219951953971269700534108310718713872211666012012830964022243127210018182224074221068835882419240810226967792215111978297982672498192520412368139606659549012688097851394992367380448035231124927200901424759822611165976140856988004151925119569437301830884603478591050221790948943877965936638337249802164903938158070505310154938481247634086636800476366605639101610211765851457166120769742538131727844721596815411775308140205830733869492611124959393031692184331065280699958068267524326739452533063974614571638236853040232905512634294642793258559830129871215388402852813218828753171515084636878548792176350622529221319245920774913832982292675936911464348974869493429430133298787925062584004784094229944140187097411661038700792692141758640549907849518657075327905596024045683482631695899663912240989127254618399070277365050319395005619158984921349895306291268230648634595378890833477895361782648752427264980375607567951979135257530744526850185411183597855553046529457327883930444705083982179223957180566151350162389696088440886092059397393492461972185026264096691079525538614024818141492147384743759556465748679623308533274463645270092418824202732160539402575189600201286546970720084407694345342766631241353074243249314968770547580813027359408241188291325158813740336949876695501217771007126536126274087629963994456059798803547812285511465478029821643178801339929016984691988960020352300928546951778528966864626615756489867551354666959720078530620452029225417454108400211316528144786855316923411752536902967326427102171779468660981319166564377765093209273272131249444505662668187729230016210424685065405471479504995623624110724550185740166748564625514786947843680386473375533291114357745769614003570316194312759878089321538174935150793675803543123848940702003067911091039684715306525437517004306991860820184210536918845300395228859669327172176069222507951071486040429402753449089423092056742209114327591471908227494515377659850251512571191670091372291300957523859478383388025512249651525739664474826697906718696492238281860756758206098426137314142333111339672572345296421906142107370106595642652396577456752435749862843825995540780838477293566396157197807170888493842615800187993714772530652623398579798528461371105733145622574894162871650883365239826532028070942815194531426054226916025962424175367973194290491126730077984696042124131640731786518601468406089972748176134435367923267999514910813625211744952048844779594122684971630659510332204261897220789554134617698265233041118729588785202438581051653611030006201176297131386069236471133412995777815063898103451117246208529797797954395948264540086367423306679334978705195213924221691346042935950728147432338582997197893504712868861274693243119141640109590618374509575721961237700468045609687004307076273916570204243977763608303539012970177183321041770391708406172955627165068310722124061085188477921525400235971705761627363840126970919443226507274877409926046172739350315018797452638848974859378749408905881884854777483114843532980295893874719635006698236768957518867880033786228815836470404152366684402503991868154099257772208945889692528840585381434619368028229923902488323709662805779957749690167173346361270456214931977923422173149005227280212854888052443833676149505625948675648801524659061941993552607485583590588432593575760299953870567686173370444625734536987939232263663333476334970105373314432649136076231170772681641783020729687260280300678592534133983456782445475800523072609943424362572735030537501329370701450979497834520591723524734208076470313620488164136374791504002704856064425542281607880188228282292065335923357310107303513814863549806907545562446750212455386173504185648676183092167779931916370393133650998834998008643757821231805998625633039480590611701548866401053244332933803278422309919332337359666297612288385006187744289675213328350887340370654855795791145941228465652776231011056074880022791221123754325362542648976508585857840516564655186189622565123894682875039049574365668145697105555488615736055984668630495949217662836937388075316421053418291953644612067462973252847951041152082954810212277248766482860532237386974407122492958072080728779335606440660960345505058177342976533416013466425538099775876613174492510911230408772156951097307807689594602000319409304729899956652085841072499531543312838507516300123892689014708684742805197349755036546629558309288135989172473362829639548461930191155978306460070204071278013681836436278541649929660757300039737219492760752035455722444707200112120381973755118226534222336104571996852159966655271780336107937169555866583452220978130056438125010077354059060643082225622356067735552399735976278102728972582637315267260173424994195071494296350113343261732183961095988870953745437999790935104342008796336164768384017893348643744328664639104697423622849563505239093172172745443201085689052245393297324756658402044946042847226113783563273975665651817923227476036262974133643779305902087146189063748794721576706739039279990602236503328444090889395982513121444486655021376849877258344664946726680873142417622713000868975530471940890769547901376905457785595421085694879542368434680418633668647110119628345177019703991683042838582765961469596593723880932896282210869599200137003032511862980081484941218008872775904810484538571586600090248199345462235433557886477277409139079308467655135432119427827520266553016409278592738603766772139657601212399927295021405926967517938847902506878837845479381072230265977645976733616350397941836950440387012342762301738423409473489928686828952124313341967302390404863447137106514428694295748844415321300871390407907817275438605133682713830911614680798088762046172568123870928405208075150317493319302927241724819034653199541782923200829849605299534976150184352932682302802884789867054511125888598987118835851472534198939232949123828650366225032535423776883618366607379643166218126048940433442645914264632355555725277745977563626466285412550325631429418090089437586482529772894883289596412158548456601887269470968685601609693415621138000904610472606949295279314847809594737599264573623814723301975018416904298073470607336255372098545380485546137631710792696277998693382797603189703828041082137819985958742011027735954305484653986163326845558963667877033045076989703415260120378010766483336275780421742302662050371092638762140631430150828312506649861116165539202063023343302671484773582818936551817221466829944623532024140374431540430514682591784647980163355220119817087696198930438549303225096474354686529430483516329727877620559799386251748087442448883252025143481046225431687844869205769935980186899883438341156154296192889729841661537430278435768496006243334447000637356071042993234842835075520708052090750792971542015765485027091744658713335016806316054653114512568385095457705785330184528859193205985262465001200541017613351167434228809924001691714843406026930775787049823301997498736831228512236535739047959297601187763979035541145021994562900967800246827612373967954160135269485752494474022048018609284473145274642113145221862938252770704839774672714891118073837628657181969510822154932049156847415578597870744287067947244038738522403493780062672052104003012443187813620368471453090206446493154019473241872281842611821365988097971077485809918047436831644659540850811812699567336745090180919118103381089667834773416084233485187954693001561562609678461591956055133747999665191682481266598715643346903034402207526405260489672246787740734706582014118295419167423732494132302381407296302289663986142795532778639948450175355764513675644146826136241576191290411506087338031953192408727750034929382989200836171958243573809478761136337436377652286512218199295453461917352985708026380834053877453072688704802856842405701703524239806545425684789294547218089315502343044462253160938197673491932666932470651386519418156923174864121950533067604069612251589072252490382790824004705502759775936118301170447011400035935242780911522087177194466862460323523340956635487009674493998850381513870220807125914713675395799924851297902799305936654465090290299838171124625557086954120460598344395205760549306066029158729933870406366647781648137381569932317214659010961372377241217117094364376190284914131178203349291789618803040373725587901256636121379826823570172049851601070622761419143098704987843586145709063303485618652723758357105115121144717152096177694873802934971705023655609902077156512602440247825135558273535547650499146516077454771584642347818867915669059898482366904992061013836172855537878685523241051928280972356101258424405742896435727480600403649870060645337474038334948448846640494234566240435908291034307206829813123928849350423303588348059013218418943821567931493689569425308470742094412315742999433034557669757351602283707318354486007174390150872081352408559437926250086755446968286643754673994517179377368680528739442752979554433698987991218684587202829794383660001575892088631895437307908613432915195381018408035833856616160943422336520353106662484837760288336027245709907965010393580794684221664247113366048399800715281798204465402137642786071669017731481482514616720173596190555505184311742099054365084012626550972793163930426490855645740042656739327891169541167742817394897220090054380274815641420742132736391089497172994038880854891281655185263666510387006644696793191931020813384506638686643470635995098784594947464624211798827145667127772868168345766951683118552658794691043381777356834425668735685408538249769567452856804981578007427001114932695758292460293679121846308715833490386382435286037856538756128878685555511734429667521173334763173402931161740126489277494601188613646718025790690699125338388372975874232349266067991651385360278704486951766004127865785798481150877693183007308840300391735625504774897811132934074935392373818023269393785817548697604390437333504067494384828852532729940342701378327576847282696841786396924681871033400623666444645401619283416736078474925531000525586567427157991967945360993258820771335531316097281376672467462100726739805680567447457923078562719101736593601576617616772849449730743259267803425038501902715832036094782104659318349507937745105704448456566632832763420619061463765543073472956615196098976013870334709226634074598413003562276666254173928112344830345003464211644859915985053277518938586769049965773114846953573388634273942438479420075220856230970281310464061670707746313423112831189669430556566252025131518696198088869993894906555854048918107734592565349538021459829934566472919512732716737226674972588600566713231058506218401643207891212038790016884755694031910591298921843431306490280922662973887430077982830797473360750446259278100886846608850737192598712921143658244014552512179793529611624769224816846658045237100446047152706923747151095449698013556400162509189636450627798341577000245067156554623476043429983517699156634414557273364220147248931444358674434049938335137996258299706621417051445995512497368740894244855683995824672995542211251707808936738315166838741088435917909978618827967328360273875085415890297425446031232050265904879909499606961791881090633761524596400593618969507400310548661104803453014286352849793211303060914470417836614776754056523841312466044840464126303300109256329310555257588347796212673724044189315660345269408496089082179047224418358055042795403845317585506259759708009400340965247556549574767787228604949474070767765598374359382403423236554081745650569687169900050737361457551792210825085870866808484794168413207990021932913271690318639475649181345700686683032159380067521966233636107091275365799507880251400336660082804724245214131399251078808499136050432658389418184654784361692251786353082837522391172958950546795932788734069667510704840153088070953834251901557939181685296131859224363392238041751843504328668503313224268518771746542732863881514234971126867671752110716868608061325189406580979428083564949885408850020509759171545756148219346350243547553212874094240930273603855600286402677044209420673180550406353433799788812108765179459097390543098546078730706944654610456329608565982944888319961686184917550429100444069704369215617349886084890873317708493488711803777081825996026636130629531300965941783657962062887926979988131968625569494792687210313972714895774137325684068371576587356330897081313049524793809208054941365085212610726203205264067925826026305780296292452564091790880128759060279364319784580862945148253955897949436985484178601081417964541517398697331826847815124573367890889477115381857566715525423092155878681032811145231993806684509461254590593994489682176577371747550858715066324064244294244612628873092720641508780119613582163991760239143637726578822448024863378159327763074450162734878699756483896271054036228890016501017803717145996386909741077621315591403826291508270174310374671625778913349418690523492421149040864030405824395870968408590542698062004585036829905060044432695383319563514491821167952889473323185907069229745625468056361358813985611892726861383706733773004423588584459221823203128692741509991058383210780473284906823131040913104929480235469462748227165616899929535864068470953834655520917188064376395313540057778172249443736196628378312373291393611910282781841834937763187331796803198355444724564370305480862626389944712690229154724840634063653627911705989975961549516243209077718977143867004566060247238132804282400533603888738745935840546216099843695859866188793113244841914624946870941632176424390201782547009419631174634206930860021262298606306337623420275725771091243061877986323571417154465226126618337822359218682153615202166295327614098280315402179860494642620409532252375184047919234234599250850970456446182085222408845190234982505922560126169452100797061160392689295681324708909199548115754371342103318251965347519016623357008602865639750890211111340987949076000088122927236212308437244034458499517339620319474071574185924009168447607313165585187183375801004051512106491144749525053544196841232766768420844260372908626411322074804797839330183049829292197714015352495987370257030727410330736548899731862814412735584607364921800723372025160985526100080036167209141708580632561314931390311018627901468718324378955720556960049510525994548277739084755545197363884396958478199640481788775349903682486550438690077090083219318075091154434138756063873832227194722690806860758889646514869517521469342156387339760658497215680435403354446385002554351399150610281036398955046773407802482218214177393494153089564964741936756596607351134557337322389811564130139086750703784394272141102023967516470091896158058007685050415976522396484610989545765727166197901967255099793373624855085615438557474248605323582036983772305324915265148331950897277569472418689264914308826475850998975037193945263964227145703905053697961331770488256921012563351435552229100494961664286218245932825588936801950587304567546927999886704265709230705262664436686646347609115459407110682165545331435207597419210015879261001890602690473877995518309386855389406700346319036302375861684429257004964514708414134736854454255383959077239161792535251679608983669335769372176037940430198536807772771763414283250304015532567523708034911578914154058234880181887594439997314208433736708409490422749615808039267487199447703588456956064445784631509897155671075759806851176044870894681934414875644293366338183339978460023116428617527113428104365703722117694319612395515204090446600609702582790709525170206640424104790227175272882355676429269204316812802551001571952356549695293547945605392383591557913019407071930000444584207451321195940346607250584226243814793875883680469080850689623528811443446753670217214390816457203684686690418451488171968670942916181712475086578663630436555781448374086737664195929129927176705522083081385812933196196312510035158417110014569164642450797535584662495410170777563392418385035202938295202699423104194415272504429588761859057003263432665185014877561791842691406776703743715253844957797602389158050430436889669353770966904607650322331460681323141074740559830418187924660928644060947104033889932076232925381311680383068081528569608013825851306481693373616609255970951878023381766636784114878630297109119974738471161174183083156822488649574163204081102579261912810527608621659298650856734993741772393475022622179435870192742966884274371135730504397119440087198101639228076138972796012405856329524214221956991730135633084344324192357317706223980352293592083390531901254629331540787587846913310468732511244961506587274232561652705396080621101987996872245825616052036040428921838578101877258458739334360707682039090535304772121596408011065950807436578675811440367436530080282168981952639842578239324704847372662267936257573131801403872816205177639748479626296101072329853565871278201468551559369425859440764132217797182689710365076153373050427751737505918985483599704922708998282856235148740325924959350335479972879105042420331550196357307601216083109264203182859050797131294277391981170062284881413481979662365585308378005272367592624457023040893197064121598216158945765782623366232403843804775355990167536387482159507969305172504285121534045729405754489909178775281481133938587470651459694262190831306380169316080199805081150804553515572723532649811038280301948933204737156255928570040841566192964223439803409489477325666414687131640633100883176596348306928568010589545279678604784173770794836060475719329347595949818124769440154867602945262390285966131110000021768586791406937327293122356219434443859235296497228738475707099197837161366474639833207395764249136755781836964217467988008700275755252295413783223800279040376980748848957768340105817743460519230776413878845506432706365001047223452591613182325102883918872543068544358896789588112640396925520640807399211455934854312042004716055808224018569431967068306704753816531563028502748891432330723801646237794548591178821619455459854704947054541859674536316143213500713827309961913130957195469143047746949693987881210773193026041700308989336471540124921133167385597304216375038093058307988959959837683515200802042957340665150911461371848787036313656474693416598922001086949034443100025703950320628950341433250447586918083151864427770160740731178691639090849292948646392538278701004779215693996741186859746672992792341430983447415163009897823780095892804105906947201161461211856248902632159450984035550612553050457404380638330985820311821965184208047463832067423336979872712152780698125113179798651485485015421501287369259458102234327206101183161669324833932450309687517514515032560941567631438727592666829529750868847818121365549199275410140863497199045113843788173032575192604162349477264958664915451259033421713901948215789063934001920226690221536737585873575107264217968691625334456874855002244838256569128298604512926717064433075924812843460258138888911599042369569964641867609137276139705399054089431009787914518912760088263456397285323107291483024662894569533230499365164955290330804336928972558482773173669930168725977890309876567949910957090024280706021071463621184591794061926014493735712771992620190591690709157705341596648238370256200656914322207903428407045632294662618868503513567728275748989904800477538794694741781852304432361886240228783487979542039950710948904032366085929633129850469741348262793847949725628380123759845513914294983383981691968424356118253025028221516861305587804170202115805661652629887776711075163763192066486024504711335916059230990596602091841229399739581127083070602232038845808107866192551457403862492341590863770889909847637546913500324213865264446391642487947616784848019241115928578050838350737134494335907969072407725217041082302331209151445952668465581934181325510865186328077303491872675993040909722301604177752262805784914655784570887314545849538501894289807874539203940436864480721296679029096420325471092853279556594862025094902101213488652172488932245504921194397991994427779591174537449404024414221053671005092573342410305438585545486492359058641305853140771014271641837375451483368113597518899611144021054335557419080339402952624799387316654074510335357565853302970177834263780905177312332591401465948491649711311360242244247508654259928732103681797369695714658984262883578100404150944763733829141294629525538439009178806520102388274999211904716042515186500635355818032293246844199555697684750791230146907856373161612439091194906921553590021138345503718973545672079902353253056749599003545771559573960699570119982240697494089193154032776667031580066152923197783704256663440547739563652972508725396701732823927007964556040059588652016842254400595501559076560251354243167927554105625604347612300585270590218511762730021318527958954195991040885901405871164466909274326874553449255653751422630009887529810036198039847874400068168436738557890878865295978610768959990369757689738064243204841799169425948824937017832181028522684086092380290978490295058000602556586676066878270512430139116163958189090771054180684664226547238728092024795621036670778976303567103128573331790313999228130552556477314990763520246850958979608162684433070353859166292709603214938453554898779850655820106313354648441029837733984200184615801028029747607804070249530980089815666153831966207702052014896286562636689063316676011978219822970306991580975361897213548432958385539863108393784614283489790498627835744780904307187334233687055679854765237734389417303800411116026006717951994347516415692452475626926149389236365101612589933904866019255610387381126962860933514870410053138344931297792821286641849074750301631706169852612938889078555599713341598588956333024007708884558434517565820059791343580812490390282599714159762002622475885253471693543161114653505643006476517392740121032204095983481552368169319658121491537935765031325567760085416805916908874568191408210161070382295740314582121614244138946401437373002720266931293162076216657906842978513162913940351133685441307028278546320719106865390320535092181784095005485261402706821001395166533245312943722544748402893962381742922707527667735605142394712457953220558260681614264082024256593933273845170240696745595804317681343885750896267434434950603140655675706248454520563097201504252623788911500603220233942288053400470444233286704548930047549966782606637613687977825474912544738368362281183553378827260227028208787547912017032078217334560019820772860660437940176932077109420769285044806000349824069748891711814345591156172247806019036591994896256604253735232694006275662923456588279470300016875370051386187616771195715480561854655718722007777501435721555655357083162720480680713422766631452603618481038658561154341748351593446736147270866972607297504415686639327060843522103686572290267771823363454934474121047338703380561993970090327412639041486186757178747065837244822938548357812702256510426132325192564624357039159291726548738359402352194213487454630058353667464731169798269811039965038518280943888844411562274599986522553738007716833224114430017738038849791271001351559936955510056083630125235633072345087600704512982375664414835407230229685027786504415626488760829655120195242746261577164444507506051759581278440951012546299511679701596557532633795438821054079929019927734041337193205441916931043674541649353337142494090014485252379742037474320889397414797269964378164339959298193685423417353791025959768741401702525696972549045263645093819370202612388955080692877924566480443882208828785906780944382103839857523274328811835105131671780947367472506355851141685203478580429807213239408501021690023833920419400818241382165117483885850399560931826605683630503889341605260922893257773948257028562420600436953187338491993609779091638649091685569201566627113933209974597813384763569653115986412172420854481531157448930606230286730882386153041251666611944035451144119787496917228992495220596755200048620410378240533397949060918618172707812447841570188105724311732806201692331401536093742446440676531694978177614619644462876468157162245286928896752919790379046073568338464813663743929536986155877977244269702376214275410101561455585430330889937291905033331712611105742526946323461477151190677700752136496703587741155422784703056991000164120529266632932236988736236335460218118395036570213309559243502108975519392176372479247428971231438194214268249200994925634200210431622699586734048820669124563229943397418617258030382240326539658550121229390836675892854484972965461739678163084916060675959809345140678663283393080925368861889961352864829695351149213932432176603327524527192048406127415734293284826969982103483075212742354637401503402711495499514392475693632353192645420445743561793912903748025628062584738917724663752444074189386864589343687572418251075519109557053968167394747907073990280838096505459029309456203667408557784419029501654863080478786372494718138228119030074130165952126202447821757931559007519150107270214284424153202447764994300944745378820447765708278673585162201482443971669776514458144756109980174224096559792853672319649255890750529246344790894096081701899100474389725112838284315032967473719754496349939965374559591323649729735185128221952309678846177886501909069058002856982273177430654413647328100766785660637494350067060413528609855002913465818638491996935804873607436685315467006757844279672909673682996560134634532308726457435214153927575149224493658536859254338682457429175789640890882754113843478331656870504956695193316153567493211446449655857631753034528292075920606897382605160814930161165055829473835037778627819967815505387525472240944171411512354502208269480273005194997396082258041936451511435291563009043106340281361080075984504276841385567284324924669798825490232652392242700696976944669189538712265234974894625306495869395364486239981769550053643475473393526475271172471349599439023464112886315146834038899430786257224586264576778333293997838711161500071377044394343864356947338192369215722006410909018580438165894372454639241079778929595029274523878001901496932361142089163324655663692048309285297068395697550463615218974003349089140242400615633785830300997831755382630346198391687325857770439215835284020170646427224985055243198871023234370751001602359460668764637507411007893204447724213430348091604285050694041077090372419943296854587770826059759700513247935311703722355518278855873473276140947633478669358180577470877715326120217876234247658465044176518107597130390470450736449524512433785689268084040003121581225010772915387596583262498544987116228478178770975448766456009811471866387061536854113652578475794927464327470655606980234831217435769691735332722221652665180403672683750812127979654348182179004618660218343098558148361338527606677628535289132773215007035382534559742741669524903118844558448534029339767648681041099572892134250175705700277560631523624776594791425211607031963085763843742973645960878005616492191290537524948115864473233154971076377196823225799237548814371290511779829133742700563512437203088467769838019485840401722741019813298595379657413994634014532221362075147352304443622869391179002230151143937189794371084774522324263123026868036725776017708194389416184821376821949359196553776410909280670016341542209817119486079226196108488926760431933795288332419949938523380926414212989254894832745525432175778678676935630831885420123219479751457649591250959007311113689059346362685679834793995092713868465904000362703740564310613873933522635884084825660194804355237669264499819368228446647312068977570470577961967225727564181346901061829628061116719491975959513348272672911304009711730690674545487488017985263412045301754597633619417032323678418781656412106162985245240468035182367835368075810283456485694181566799379697456665293817352972962231531101204202153163289309828534113710989359199317550083956120261466416000327713089084643849167447839681596066402580439202904130153910833850920691316839839615288867963337776515458380055585506515472735702546466936468478781260394770405183946303354516122653529365445809839019218247921654923795332588928190626532802689360191684869761363261962390642060215620026449493525011864652409111235105253912451248100492790213831092182907251417878111665591998209439766161901141339765293995368607729268611255023848114245173224804507801594950813275390663636834082960117886418717764291021737595910719913596059811680701284818716781893536233586319278109036377086995780785746840358282507335405194492181120915159092446347567405508395775299834998050003575346997813482255593860934435361993439563660110501274663394428940695925759825032793683477409035751322139495089729001712022063479139063095076092366424618225396728208026725594244270204659809451036986703662083804145958722091955533252179017337203774493982313819995623129166785870245841848373613337952569414867119022129109334182068690766214152845281388095213108509746462581093874833328123119171563058159311872123995715795929981635168866772385520574147748596891090790811158502891565428252844874826752078603798839645317097215041177662800496698141715088249030490561432307219287848393727259609652574478992937768068355076401549766733840396212267077810069936290507192164571396459956583760005629541390349190316479479983950767411715506973538082385494818164151349730721450381403448572925537871511085173951346792135211102049267666956800836895710881374209337496624565040100612399609826218148383337360132533040523788659564691576538890170577969098473161240639843470136393493047119709527522889949138288132073882995587503997816297748609337899916547571750337439349512128203144623225763642220104147459809926899221297357713467636684959658626118271690246937554499774935716737858964877608763625491406596007301176498673772559319680243964682907986948711101169567072180129517019846211340663580510776714947240826951742196218408094322979288026617519922424733703003841583080606478495228594128300113486135863477825582507080985830420382769826212143526339994156903607038169161364074537173926156438537476653493842742114716966790420872812060377958479715755650396557053016165243615099828086917681129349570282411487472573116233547896271320160805934687545359463163685675136867843882574484783877720499004862494647266176567984894180061593060612656244423555295766412121858169727221556854293519166903953512572181466238770330222988500340257784400589922111330920566584269214362977175690477988278938473174226756920413092695433006136305998464336021815344651412279590481949780032836881597846892819171274136253991565085771252182972711140247328347088051274053856986245522032192904660808527467763577169672846712204133977855307430832308448600210480485862311064770397327943018235787038505727068727260384424381943950141296165235458382972917166155701235395725921826211788327089737766263155111142002621289731659357594455592333609092897996355105129023377007237178286999804720994957342303588325186228226886249858858873306708848350131781517658764726221491629573538268826649839184887645734609624715934028468330836197843311367075132572385186787340621716976043884344344626221556081600652462209420689937600328733238904799882818676587139253882445811396627615120864853094361746670124290941519247896916310960611237162784039384656183241176178403929067428654262654187053856457097674722116255548800846945668410780387247684823106202132991695396633584780216158241454084566469789865853567045540162585985646165649684346954090821291435286533828918831000655498490350845036081810949387378467296279593669148696028761920368821391186319644537393458218486561892491101147694620161737598174568978064873860891364538019436910821264724663057633291064566490057739311163312059541667301868518738499665662311866622860687883522866651999025402322106043918063071506794060788918454614264781688293274625530020024955730046872151748442235886291015107146069695724424312398610615478407871374426352531611471123505611556197480936796037198373553119061720181458909598406919091144540114255011402602020113844634254349069011735364192996743900357137550465793481988757935980272717697665821760030711629929347654428465306176925901834765422827578192426354363625145841043481158565552251267117847419066804621941690682203607878137809087518836797735935435688181579145640961277932814365522461332256175757003443606756455840864943187338024123057333120194527308193839446647125178301226089821650739518803180856134529255098441253111353055339328375687153036611645722446507601700092713976839286908453217514467125427626049353956452416900254142491831462011515675213126920631773205444301216734153393377567503095173911823825596642348165054447468427604657187885074174895517440438960885690503144508501393266118308456182457015355550133745177573988125969493558516440321161359631402898473393645985875031135118602608862184818377776978624889311169647250086190878035325327891463216642800545648292549602647750580690451194561837259401846769620026384028907886759076035102151367502738722773594532228114967013018740728304669914664213707356915311289218642073196263989642089419517558448085125760725787404494921054783752636585116183105571635879416233056942572350063488945117429108206512419074013312049429625325507857232886280039377028844966122426440292080146131936567837921710840577081611372060850271582112717507747028936577121050427413573820421500353704765104112092502139152987561117871909818469318666402443629207170132794424904711138550737340161891581525326108234470370052970989141039591929819626242089849611310530182553383508062229338684886212055160132997146322841439049598506384172948435673534686200214738916309473545793419992894175919168772277261015252730650200065706649519635717620972161036373874530810541863634880234650132606827446678444118218783391946279274449536076749556911590836658856194979091578348072585622219814873180836542178251736965284131314874820798224983410890101345181804340827713759808081939853307102134192410028037240191316070331207556102186974982264773054153461702014471301775994498887789193368790933642906632249286295502386041864923845925807382141835693482245783640940395188919690346863751306544044729618236061330725474487673302255828652728282713810074142084464315349124124264007391779771426600639664806501334019799783186316849393107325042915054955160112643913563588088797941852584047793168749585621518723542355434861995887265715490185255223968621679377082984783695707025483631423202252755037383586393494794962670502521087071223323053690131115587609735524389014089322443029810448466330278750028951901010501545946551223080769519849103732631975962447221836816667836771531041910791878453068948453435241375514723750526504691429973906771371953803106667255398693755903426317081209443271316361461253893809938227155604805528184615394717940946771593544365690424319543853724253452902840201916288004086957314617994060413978698960811896227083622523646638496520061211394925887141235059533635473564367045596760587212822249847527760612864801324748363279156829604919719981503773417376266186391035477205051263417143502485783456666754846543761268591492653808992479537031432370806127803088213530364074732442300548032677910134366764788767268567820039760203549591849497853402238552160942987784961000627899794473665460524899836501308969547060980922054928014743155185051364307348328666677846843161523676722519065747148679183908100255737726130227801131322804776288820771738385345844333087282070696901092283585759853478552734924380849040006073359336508272415025552589683579775214849156009709358157793467428280279124983668474712736056107104039196614779487025266349888771042289901844631181798929342687264641626734115129402030487105446357662029612032456313324533493729639407579229324180469957327488422791975450191418440260208677278376844438669167005161680299131489191339215242291670837316288440152907933020501346044518798513114242779800348394291594697760096440091184605195308809683372382032167267840762846729485299751752931786435690061378280890252285857697630778596652443971166459140882961629032441353820259662015560357936798398440114495577154121379830547710125008758215671109537215577832040611278123773193880190261068049121686023392719943628034242720068534648107920494765477872411932974850415935089260778039208834805210933370796326599307976415079949612946761920843613013216329421297978945329238417117812361305531826263341003273654714744874749162330018293687893474852956104430948750007102043990353462349115902657322214859895683278767147957562112594549732655250019895087297885630397444364017362377417383789121791964443914706460829357198472298358166950819275071201909631252815752856682152813589568903595705391774867669580876663484587396469777849431062632173969298397085857547178440393534007276176829961089506284308941373483899781871484291351425910697809991355853890404983850167117349940302387240811093621377063939806659980808276245217021102357745735713782075729548175363603242528920661349788989212343373139856124549514951286546509447131290074082105000105283131692450637961278512824087652866472523214213416429939474834356657057902628390662362544775240331108695521430692477999496756184981325894022208194360250444816909202050040429513961299847162719528393891982782065371462253024590998878724597791736578076047955385585123261909666902244015897884504583644833218050230973633956324133699910863359538228722113726877275329995635265583072681284382962253720847662551648614954307136431094262603180203384809495362818136886817340829117901406155562474466264832949427479891158572290154509658603128607154461078999774551385595389565231146533620256772636697730567615423641186858205303605828176588980620409302010059244970339899138773412450381178366831745721212149643123635353869396364913560564788606487828226675546468671990206368175020599267301588555005676618687247391754063792172012521299234476822147272248208321606767531459614596811966768523194767285542836077948726637011427426056511873083235053329137137112995046489908194725574085060402267742389944804644702179889567627558726210183150497114980790593014561976894469751034625228233542740641606781558392824043930029030596094630722826555516341299749863230890105588419536730549477316567141010139201442609747492591780577196982231210823601293095607873476256211503627356433942917416425219613568335890439906510297256391257808605647645361809664478604180694530072199404619928954208442486422037382810931404066866208806065569229938536568246712730616121484253985398887589672705406469665775762557143113068532429053519712485661821832781646011659738310214892459717882352136806874579299792130688463611343135268580137929884443187910133172798818078171013160395513088859827361239501970674123074089953284447360737599810639472571982728168669036348397801424692850969117488598298838699414377029563603608285121628841923335510345050400772220011500783587850057457058470158761851841275402989400415173047561051656745783638201886838704238440186054959616717805110389480264170988904827716837532559632039951811874318402494746952697195280461962757773685088787689756973705608267013649835932816675338223316488966892344977456940202348828540403353359591514238032494893943317002455759319446646188420506405672068272142619628801138696169305504687055839444743396658246419451718912148778584336045217047031675779130030955068768553356086133726696617602409834988232471399467197054162105177990749405841405824497805163096388967409429139096149268885784338178943299800325512318640875338833554527474940109248137209663138923180036935080068181772237036042347417105247843811195752545722846992631949391821197028200434864104066133321877118920735230807698503418884995253657673177683093794134214321962488095482683051133500906220526774994628735448093908870628142490523473231875203780600772744242007000243714115717389897922850693996146933497623618257439329401816320456675894403992870864225965072844061391866607241811090015485793488477673200441981860634955903478581052101978347827439187199964122172240660057084661067148250183340890963013717152339827217059976345209949394224481189270588277663472362595720439403616460617598770914639210012368462738401151013548149972990734605082583921781588916144599268634427428356284391988549734908535611550782087920991606166334789412281719681504439952935603091711187225772908663909612030226604627356710901234121709619262684804560232532162913519643326231908679032817112066706593322702669182382045780761085996713622173283941002575132095538162118906298507459463646149833534783887024152021951454932341743327396668237620475131169873445972984342215512733750608603223502089563069309939034571984283874793493354104479959134259790114407697388405105538654636705450371875323927149716575137445387422803594366439159410330182818870675518184698283158223904689445407938281875477090167477182831517347614403299744530399569440786236531058314405772100104004049148674107670029649152494978790413929342835754064168942278626949484175566860472253862574704490021069472630335048520531076298531718464680524703351934264414771759497540044206306768021242041607627707372269566057582497389701835800515523588200653492543006410677627029750320626803661787541001235251042414334273268378093530859079707616209281825282190986714051736111354750896455318314340208151554165846699009523989763047410940241091127144820732708921557867045537969240658120741133628786310804176135447036078184555192954468762253256291104541911211534833526067857616603059058260663468521252475988920141806495582827433998435959811552658791625793328937777266906482942453569721122752444603120845096309906923280318192578573954391587164472843203776017960032304195045900962863248737479041688241186667576400823464624802832562005238588080130707529506059471420772642308504681540092372849916128138579953126770513435842581523750491069785171153037500952804651632670534681204810228373530278309990710947831068031959829979697463250917074959063243941814939066171086027638511134577234063966438255181236876396280371540833356486921754930312429352917564920744504492347634518028315654096595260203079151217531710576445140268808787258221333221042620035807605814244228732807021155105681187075802398053392057324265258663288132803345638398833473160839510931683557725165864684482185781984915862904192098111936719984496665375672128018930114529527437835849143396469936339905537154149749251417739202398327671123173257509286364489112470187332340753497888035752061458818531481924530640513768960106549867401456073342988381500517637424465442245070382987487105188357580550369196239125748163962850389499632616247886945000091165387610477617543646185997710763632090326469685237149755341121779698352140755877725272423863254207785432084959507080335714626165622445823804421642058734541394542364773857468747361204988553925483275708572534240247409932449612916922109388981619538819261718313027115122395598545733994972937069272803536433187162495946916800959632254207687964484455377785199298890970512249436729842519364300257637667567013598004875824369224672343993891927581830699182848618915237304577355563600493312397452583762637794487758435852363993778226132512040154547071962743435925389356385831728380779930202173622388746895745875236639944230167851623678770580974860475253310392763434139498458310217284674023564760964717729623588059275750356500310953184804109289789105670586658359461506090150797110814491974894719679034914196166714540943239067494332427267558491059209747452360302332747235064574073541144967383877772166339613509068678845176199433534637239967925908337123038744657232696592189811700867908233857199852513041678874138277811767273662676319014993721853284580047968231359116471643393276500945385253825345711659472988859073634763039071177787066223596643451566794902060439182989999223428284026750429460094872946906405846973232004023279254100858902214088039726435621522672239265895476798631917092034172095455760733140835019823624749520215135676769129286933182965064118324931078438573033467299375534448642593583958109599048636923266321015125094355716609971180585876357670147432915631258548100333088123094849519195449646860435207480711468545717521010402579525944525842405420159520153787777474078918386593401572731413006182864650207932585775893415823474553563287331726039815451204714001058042853991178917791401732021097966880848393585385723023293358106096139738256235024325532197585055051879237898627675062055719728271393408168981046744208279724620064275827249373595206209501478163953467697865390160513109208851958323163346350106730139791436867899365128704818823743043687921551439202489372116635066535577748890252970261009094798358147302951772885044277551611526638093934036697923075168633530884535563326079061841325402258357796475638703518010387721138670609267818199580244085313205067752575586049558056039680030560089102425880157396516342374700184804675620490062656480973703105534188179266965547830512741792055721463506467769830548100190843279521674452981602979444618387489059752113254707358549801830630378491246701733311423391065274962671104618404633110792096693672638116107900371872098327041037744597932393338844563522121333807207925410156508236986025436696144774143315077958950841197760656070451386805673700301418569598358088679826160588055441733535673351179750717955071582315072201598197558064527814980889988818110893802300062958331443453540124260596532982484712831734289701577617674633878115872387796995241131991439241630629093635574779418600093199631217207890659521842514210961262502640505353838977810834652412854085974980816208665046784379781560982770228902385730469382807136327267694375329706917467650799408666044495277355989994837279253775870960473823565708018038972787595055352369961494861376846123014119453505010951698943908870004447683731763846934632823534524111246405440869418920148735844297215278369582185348442002213469108480716797110041731769966319437959640886405609052241230916613295320553087656042350573335209353613035494720597572431401388892043113609293152356374050806113390794384464913702416297464769918049790825820463369183840917674692864055266430682300486225177504047584544564568356871304939795631027638079638074544918953816443243816181194726564953441257299406156353599409160873565771325648858827147411504163667123115456662100708091690937452005128427061769949171857065514538140192999381672755413468927106869799595407155268567209953445786587723175402701022659071341708896579338712011406806728816982733622226735648001144777919376695231178863414712067164015733080746933735649567988758804284184524446142688300490919286712654495659720207095969900543701868949019512625485599561246298313730857380008959273456745517867476786265552986422429690116626770207649984235669121290981766781093638997647501346664815040916082237312754428525976066512490785940960654334976109242313629607427822696015527567066433111973902019092456240084704757301991884597154404269297133234057907047408114664712691849151769144218514028656283552154365322114522913628128697236330271208178793917231818871037355886443053608115801945998212558471045542156266516738369584687151761367209052455524303404307715981833048433576068467616202603506326499253714052726361306095745385477162437043819595360273987434168825249122182787618008039648689520543711516644805496569239799196726230469975520474242488308113614448424516643353700689842749504117614566146477429768019018143749758335083238504343760414489321650392112145511184064900670880519651917491546930115374439151540586782625038099538241755817346723714430383339848647720172554979881489349062566128653485048046178555451402100198424987940438820970679600335823831036183247306443867386364302664763932049076945632354206580659143393527248934387235904128359024417352816626309921919716027487194372534265672290017099939182032928151164588954306188362762603996674920601228984707789550314767744297432158853812939877912333773065116620411658983959414222833518007752436672185175056691519992947045864675531146141793059795415495378374479061711744906890464672155139400680645967088643777971738533823204841574033997331437352545191231152699604738676933812245582734917917620711254645261258378242929257807690004832665875758459457310528739779774644912169405688890109467553973663359755293661778639720812412076625416068658277402871385675320782558466586134442297253551141681698217522484498076911329674895173997125267639484637785833430332173108869562080350504057981126310049285773743586139481078160570369501981680898442392512198460289615981884780111213739756788161043907961888083909356224110449956896659460064621688485521080232920554339685153255735659148153037066628369146415759460765778826128603698939878753963533858266320577075555330336635731720173334511646340495778589406866162379933016110573278645010988951088414683067750479836097393331779591440337832402335421447664627075138857040637866295738513468950822663035231230711777389989281527503065333839133388631213534054180531022349493395900880246516719530057843662320533857142948362798340780577635655309574099945328094622768459650549485751647828376437947681142877524338682549463600561843345622802956461647330834904975250122785822415711624388684559366813891519484879528998200833893912506812149124332866140980698188948582103672380818506622683045773543811031302610593789689712120282857561640764513572580858257028821341188235046754942454145102514641238575478602255415094864562408732138490830657882877605830079287293454667310916207837057901649722995187985461435572653765962935096861322656894822971476020143609019295798224655001008261842174773838319139014958902355720590420235093642590122033438379501434602340601106451141095379923600301101721479051029557515964782798285434636408075991056400475862524459573425225467026521857591115150215814550163736073197488883107554141554078550626085549732507829878763774830054490217201066690972022999907311331659436153596587383317856526480395213816341837693599400633740964794481922005995690141873314764368216966621504929588299097806674365955396740238997208846289256393417573437180253898048277134915559967806177564620248126613099214619279063157030494162832944982728474005876643781647405317857743441900760910999108401794908466390442416859841883212197296524592673059114569769470880800109837165285631700655933069411155256783860966094008787361937809669875785867122139829335632018042247563042937195917729736377195464858138630827092413881109565741918411796855162148943752800250401668462856918797052489079309820791249068938041190252069759114963642473458128335910771645334241742537594777158882387474487714147660211764404567295030111305747134111950486430831242769755603804058356695207809369607126008694484646374334032288928321954101067558325831981391558994273796393323766397923855530821584407725241659702090470061183626120829908804692499329266213346085279546113984742024304609237495649745476692466582980758687092977402400291836543139050225066356886652221640915462450403492018956653287887009739293911416276862276810656495889612341896815266371017629645586789211917135152969048289497015528785598139639954201989343752340374714426563573050595737575463790958085934924619939443215999613456515490737857821086326327674818239924294747993815189905162201258038790963682745262640643512907182946454918970640591043545521758176018915855908474994180951180752209474692385927458345605492402288198749381099100615609306486706688137878260967800853335859883839959290972615911857056166932830693993219869592803624672191307520383433171988530975436706360402753389527887404271795090555365759560798007650634437579832394284067133589107243812765528507358595015164278483369573765748537835723495198801679875535312325237802298757800500560464828971149087772226573094668681877632610131332607091297885794495411128904511924610782689056527176602851289649709460419027393404722967123834402400421558325402338368056375854049788948385868191314442452312346478735187969903165259924150662225864506272271221482292510221137991214034399550424211039116641827874607071433455244797390300680904658870154275995949546462535713313361339636720233884409635439999180784415781101472892263465133789570253322706502319100668482397099324539488037566151565367516947017181514696886370898551244139784280023413590589117622414036618279778360960333825583469140839664714823129105178027187378876963925712302726032842466718431502897098696241820072435855717350157786069786255985628421649495839807046921766300012889231955073154740613561104829257383042074445579985614640584514005908689393401111653904880417778873560750159819925633721080969527826676449443002963284050632802503101316782160798590410990489405247663082945251454648072586013594878432683035414225072183784607908239808484014744358019053939378120099317015140041383304283500209232973115134625057529892768555958687816053834015749198638804338897393094482227389106450728324808175871158305878762986833403292113667441167492127681308925361373174329712080740643027115729766737446560250711261988715163597548789846235893294196515714165164084179186014843491921822692862215566099737060241115055164799980741600677065990151047287602558897272728081108410493184018706280968340203939356205947226261662265405808962604978095677835509645226683900490238481038133577774968511936304599665335010193735365628970366364834953447921451754643139153998864960318400579323473787583925593749904602998465816937407651463077103236170852596993935061882405627995075226120678383384655292994875901822226685465642648433251370098564041582561952854669027304582071627146860652240514058631928147119765272479872463674909282712947529398721618058494882399965473135720127543804424425749227477334877985532343959357449951967982606812731942644040967238878487397929497725323459340883182318640137981699003949273069152514298369828504822337764549169592923095564595204881857993747724142516444573203852926436579655544160354305629244417208632827719294445296968499040642377772669361893677098860722731155692725116492924584175846668622418563881229061121252480697644638484930980249283919610528602939135534838871388993739762541085335532767462745392449247984015166053509589833474647953017759938314259985923450536724929909360870581235992700988210184948530564057080037701225388748529717363337053322157037835772988002183115303365694909919331084584193319248773821411126037981608789411544510144098704077884584286607218226952112932908507746481769409006899087322347009159999639437578657887806593771514590336322961927634850915393761596739539056854003870901518634155498803102664039041956753338963090228060671788169496825654430985130525081170087816655647224164705291204701596848947734015697453887690547070680733836279111969756262057164705839798442811531157627714721031883125824798809180650543537718468560293628511541891161546115076530783613146393759247781732542111301577320197994865419477525496751502203121113252772262949586356811955802081416589636799034819856689966974258877892564780450108594716932302976575105651891881873373542020491457106821081665785609266881342684811753624322371398330898602916796360757052057204416258774495265242230326654293125367920552626273241955407445960741536310046875727949433214259792031930292978862488192576915546588357018910205431143721028158499989273217714412117550876979029246887397142244879373547066259228638891375541954061409140523610882243332624698934945701313156339420311190797393450444614197914418784482735015053388016256942693983281663589715420180868090362613537114511497870073543777032385873844180950197951439758324961242135608417033278909389233232904740487681872369545073491715333226288304539562842442986366571477394178773566316184500464797399445418979766014572740845203215746605728299825999870537379658663337473753888598537026715294188295360790027157153427017595351608797393652526600774144536579813065309367156054517462429510846658094216617612854656322723552953247331743586364662379115891358496016753975158599476012185174270216501807725695945105617739423883545683808921902891200048748756911270909061425267123476348823033211237117168524659901544806084180011554661517858272684750746917029210877651635692723642053112087926948652834518912177940495377465953234616461278674786806204730251322632715501626056134450334173861831609190883945965416893955957267039022558130432098770311937284859673992227228247966616837667628648030894653748751283706990342714012777359362101406613887666029069998893523163592120010942030586559544071839215222340686518088691139360804326497644958693666381270159222704194554738981477124325770772586661554585577222745452801563190235823857401441149521204153193167625512671349051276677088033490339475541921260107881650768680422392170381259172944048832023340947103697306241499730752359598869435320079056816826838909308924159763590127796085104660081877755746683528002748672337071513947336400691509463513645053534476403865296716391501440737189849141560123543059943709924227703266931458704999473561605739279431419656932718639559660553229074676263325606101665908419171246925210645427698384387964735947655989117581794660467883939514953284006426126068693755247933875993949892921699352728568949404609659316951838039804249249284659629276180569956395100079883056645462649309626243343315046176514738914373556638038573676215089581356696178217432449498977398824296166374992715975282578273109468380839462326306939346927428108503595824480968543005051532070556571989093822363653958466892146732078719168383464217449082204130668209147032958860706881743310360086540294793693320213267319436689846384778977256753930153682705243306354517988073095868901412274032273848104155965205588819543261520468590564865081930224295844598948493176421181579257189701573153350415008707779614323078109688445380437126219327583650904753107719399399612284313810663138482452742901827509430250969864344446313094291974888632889423712783397282815691284915444813150254982565622456834599367482795263275721726557239751800732224392526609859318093857687987333193331921370881321954060895499604093606955135415197763722536553781827154689937588491686122264378851463477303779365836024134572702431919288498231171622160923987082531014134363072918891608342326542765414019612391950460686838196345427297289781720941859555253868079606306895667982700942805537313764706247169622447403509753616187934873120615471347478815295343344309169592824762836431729360342133657483786560522365320575901063517698786137374266259639878085187756960746001124329839714135376369386251300439608302210972164383725104388306648049799050167856310960328565882546226472209634757037072122682469557613388802222754026634091564660737749581270357338662877075647787505451800200724234423690503406555689609640113559609724789640599342329302022963096001394560061032508912061290753908218598491964652504531634579651794112229167743626401879557850883304748961934339888822177803617233725166876658708812263221172696225247476701935014224104292758263517205154202104321001070297290468056878836417677710544735193861593244543114667576508385364698329194179976784176745206963140709238129920264434504630322120195144754496729052619121294132810294673335659363445555739275075321316279109558695037801299211663994893779586994039006528945027504350509854329208632662928531542208488514404046803396865258647040793534624797576495331882328450178275862389435027223831134214659762915838175826127305688653836712617124696936202054043030585988018213215065761476820752655609843857430023822836456938614833866447868232987559330591710678148745866903494543277984013590295858126155173386359965089218599271676513771100097417802060186654098078192972943496821813368793896982575647429414743219201492175476473695585258190676579337645392236167449000018764840575717728166842389535156619998251569813598461588989481447807390679477218383074053076441584932605542774555196076544431474007953972671469468598153709228146706599040292628052638043196042016501100266509127830259383680197733769165652563566897964891397238733803189414079170940956751240187797211308507653109780176887490053377912703490800228130823073861323217565387898492850985164411505889023244920916709948683666393565045167579528242107449163481265981563555688857733484442115744199002270914383918046023385564188733430853060753351422079117847905069865911014381434992130316898178458242713795534716872140014578971297110837009111834839484449107032568654504910587389237658411916440463371977052816304286125158307162959015992251944298128195015303418758612203055217206630136876417351099279942466585942195985679693576497615449237942258812376262469964974996936895390635448305800695008538062456988335634065756559141584632621940849072500214095946276774691748860059898274315752121912612156326599591108961909393002002833928651123487479717586444237900899479835859127406803657947671950964392095500048180668863640805776014653589082349371303692824428703635707932121312329670814239950659565607752742276382461040927939692119070314365477638496401301350505827916758567971116352489027507907060254127949698132279574897005282154079563517664915824159525922533461200516019832343641563973828179056131038748849216782680391619038348397291015674355028411864801189538080867902797205548066628456960486430328027683318213603730153574813197296030606700755704488305001251090400595667968169814629830041317294190438487276751200434552995666196920479305675818690005834720027652327916011625866996161406159239554285932370877691260474059851227290749130620860609396728060859660832696128548910714468429353373161707999292170755998814259878631129617682448486053460109254050228063876100292145588655581887152877836890982896813847341246846175710843043265853724997368397877934645961986908215199049081669714182574232263166260058304950406547164635237953084959613044278655053147094362944096217394511521943402239114183783184340560000202430108052821822435942955050129154984374358140708189935208799379735402484631575753680573169672449293819807965172093198615479649262919893246800369904924206429056880875421591286517379614004394907342919017173837990326103630506251330003682576603476202374535569428597545526919733361765422197655279277074102961460172050727388303882961690311219835800357278899630844854701172144202918445746287160708250684434637032161970860822359687685569938351979873467874214008574612986008349549911224878260233216619507872886210674583624178089425333639428237334769065028797998706859147720652823759592459434809433012593601256059761444701561509994844713711690431083340079058690317640678526111554286460474168494856727628039587141022889084582507286073130727828905945668833768533301071732184976518509018608347466583046453784889364487347645208854651106284442458121335923788683207218768211047593102916048179905162848625325917680343672602337319658082941188226041753745242366554243401679861320787793206744164205040911388712452570926852361548969943887773549518973297754118541219625213486399781823130617657104254991167703779291839664756185743698895984191413731727820339967449055535735154071721477479186918920795069952957007638817760389257704423043703145099725217709468470097652952918993820454627283291607104956259678834398120271553609615104170493858431364451847562194996862557226910721471901323097802580014502374268849604763288121698997418683032569508164389843033127716023971668773087220788054243670402481044719671819588290797562637011072482468192205428340869364612023154063074874486450108744698029856729550745100943984339834553836642291539546569899383464008259204846705388805638955297307530838750016245222545982503140262699024157300072662776677158195494796865977417616372709330031003768569009524792655086750329080083880366145124885401596897156474234129948626050232950546919333970852508622000504040001705596318715179234372015822709229145128627435338315632377149994338710661536487075183366889227591807202885666797724701668140528136042786414181068065579606162972504463844666989115409312350877765464230450559484335111949790315113723797652667178159438780790086745250844410845715031532156532249541657614741456922970727074201372863212454585342143520892953071162287916935662092667855708696298151425738954524411608059099746902611265820939750812894314890954696665256444820184355063259896970357827554262323845051202955418026924904332510666295221578094507937058551815716008141179605519859145034037086313880778430545353382029458646160653579932117505483648153659836571469123301846672042403329858009363501041920061908852423849935870444267233823674717578641130998778206468095599956491163088575027948930083664601944283079035483011434323982957506454587773726772333570314265661965165520355424240142038832256411456354824920747877366525892175360522024592153951120815546502242268551924954736261541077375225130652044607932686826223931378140187168966975606619011900248297681105290914719622127217969956939862926028171203615128299035295490867670469429506119825293678848002382534120860140022129575966688236560075996225199850264180680757584538697889607938560767443914794992281236613600382468480010924100724719385001258044572009489526899472094580166369813083922237437149917079958272480190308044861144375970701441309729070034127816013579166505042338735647415411438541038317042746843994770028832860478343076069569053027448738396944771508749221336896101037468174000560650886431493287583918400119061304384927981549513006750285453992598997293524670842090998006032154759068616453247932075400114816135286971538876796223588973397923854546241831509258683102038712982321449655936681333405075470168549179522761520308789223341901256077162027807386083045096121239667995231588012123786967169719163740863673131253158658440749168482841736073412241014266734631448917632772238525837501487178350176153957179792654354466824291991982886596164511758801051234485998075386266678831775784849203992289962057689013242528403146316588777141854028742983826831095238285387238935189111740244437967522101701049464460283477105526341824276595475906557959760139035314285565529235818952548483264509228355431067553162414747863883278302274929431803447446816926825570399146922410347114611535882586345987483001805663898750820177127708624685915142470209400073229854618046229624696443868171760494369450789594765420408582776786846173294094966049417104634290019945641223083939253740117820432309321857821689678438938333369065782365343566278526506232631696309515887885862340070918501453810496784579798193167838076377052150468174787039047532617335347956082281789599013442099157112513089151034637565190381929313343965055264809530592767974682409076262833235433097599502206869653711201822255551208571234986725359579320635573366602537868701981524201984458949634185598291516222388718326780022588590562031375438317128881348086789776097196295739777797923799374863200169392730180231315701422353343005079180180782238757363618400203972330404442104496924934895120601374763071603680727793186042539681828527454503520595376207199712599976133937533038423382369737700768582518643454348005321499462096777102848517118268628225992450415486160286910959692939732974407503199606149961733155011248878143716977553973479101276138308932311352089328226334708565858167626064624755709205371639057644350675873505959017211413916306625186480139116255259722514184603834469567707988403209767148627059761733676968431785513200343047883451247237335255709822884044427093465485149623373892125460431627158009515949602251937137316844184435312772038301622577347087168085576153489929944722537943867894854753435861499445583077727946981633513812233198244908994501210144174099700312810649838235048483752301573876068594138134315240616374721226552074889143877378161222075252490255611831169788184384513110903484027017568182830829843218946227893476212333227893081157779714528302184713235913139046027785031052983683683636045809401309663003486827740350704607964035415865920059309195634259846771394902758517832636616422200041547289123893298607733654298573500537745618037909805464054920249566285388960513166568256763066214076932632263395141438790721128141385308957146344070038272349373172066308820888135712218225590543547929942877943267170126589517543592274921119745577045455185380057121191888611673774489036818287780721846784206158579376298252438487612296870688558490496781352107977634739126584372865750569082683555846529555942563482728522005806405153529748236179855737365294982046478235152614063141152178201693217320181301746905554986234233419504219829939599938444265167252723505811120739804972390165119592797644097018071253420108650798228096957193647203267281800939007262382726484618308921653610843998095901940384708911613266682692377406220611250248088448605898548956310556340313383398091259568313172454105916444656320467433544567787606322817678119011003304197048661379407990858974480334033824532514634404405354012772860102832475657921229238253039956368309423820373796889221643102930808049661003638089351404549871950851646950602869948585468772834459564371646520218138419365733895054251321262561103353695414007499467545012240001055531906347289451533427631420486566264626008119280103533905718495543870216590277822763011252270219477663707681105017631834900771474819716856610675960007978898855781271915330801227016896353753800885409801652731034963030014865271336179483606616777015729094689450636964151213792724044974347615018091647142061830624691456645200548732681669941905222218478672445765918906819683337043677665320825231319338512715323210241119322995268906195603089567654678003794691773792484390033369899160640205678584046147115490068898954780357495005433361059320216865938184948314466824141031718382769974735067207464748382441748321339289838937127419692688952236134372255538598225264275295597668818228939269238045261813622563663360037147686934208508310470887731564613500074300835544882070488312628608981354226776575720597288014467999386572119585629477724045814553197836478925111333021949894004949696863904257595725479748795522757322040841879135020259685007456184564119510067167612380448235039603469149853237247452207619022469905029065416023811903768611147094144765494315861951874866193112943735013594848170173536744111670087226531509242879524119688117560068032308668278320908151092668536057592339561345518468391946300503795565954790536823223875261533743736759251590184375793649254651278128391941526692985505121086409851797604546410957978931589689016842641845224247432387030957733035058998353686970033950824746358337270540357748799162679441026044252667536698343975745250934985010264945917312414382827083234609213814319973713355703863518366557801507228149540729249690768272540343548529600154346849791495817963575299527771209557968195721115611106712395330225009418473645502153808916976177781066442968068753344209668310328654617935550891183549049905217980764429714709056358048574522011367534699725596430952338940758730461435165671358477199300131082660093982280767944840876325901411427462750468711728048393809532246638606981271005997410437174307652602565641505937972916108612135452297737175354143544026125230644671791315613073026942755584000225456470958343620504742788418941911390380373436967968716466029390685978844990623372038501059120713849660183544269096631337375635936943570493443501250834617985411188553695257751827161154592624440275306335720442702451586373012726493446790462034651233413329566509620448582660347592467230964212242344954022944737780538428030426376538592492616775399445697608262253307774364864789387870968047580816456033483705030775357303904298973707619215692733732699723837663942154857397946426887900232464443502407556747987428797262146675200229371875785726030098772831010215905119340885751030803757281769497343548930331537318281269805315484406288363911011977173430274546205134071543428490749560508031040811100979841994150404854181301865573913553586844335811584144634046986285664228016454494361213920669638007173914984187515988017088347174433266457420526091443077598174753896609594957933313909324504513682807838829461809032715584649770365514270936659343966941590511088611840872324048759406210704151253416960250975450221459765827155881013307384724553727147089924175108447374353506885410760283603715619898979227032265475254163770018109512336684140044281516026558864765718591788666740499803103472383926009776444301962854660417196993741580976028782605271209573902484369710412265553268783529234801258173886379962763136852433125886674410280574654916328318093500676643149483044579638457462409960616347075234774831821412419672900761538619443613266206361952629910659972120303144800384695186817773314059852003807850411372179580833122301860118837896208989036459701186041350603979501375910073604895747082215659334720546663339114766436861020970581905595796681213381965461048572258845260058500955243533343701812535128301739774138592220326705931034981336670161221604264593461030814842022746494955962747524683402052878247012983833773433437698898473147518812971922635732114684659825826797733194071826459803376553138766460685880774659299167705128076689198647114485372180588819891468509868176284716258655733773152189200181936814412847306687414423177491749483479928597211012005431197916721317975462978009372016589376913233474792212201643849039473908906942908557041727039226261606332607496205025190913097927695154819155792368438411224921524549245807827479469916423967803549444571905205942574580981117284942111626759876173105771523245851377466538759437227667866027560774104336838646722793980872165703925108681054049194860654414090738192787642017015495704515848819786627456966148855054813970632435784907315782915914355509569897012347133845649532672318350592685847775322762800545723148379592532131306942027843244964869641879723788888273763112997930181349454450372422056700130122550720407281890529124345465185513378425696015395136580664614070659828586863739592027719440280875337255331246909641105365707358765984727644810332699138962158280007474192573261129958268953946775195703317596281505262097937344315210237532350144001692128048824805773452958329909127827397518430703101958151758196661355345824346237681346769064910601271760856595226869578595246905747447011840618800319459431621067122193487481015013200993914220462870658065939835571054376474738319527380081955409384930805193409601915431811964088062435234735696731527881396038372465634707860961222270615732159262144878546072833989516996253023734376149516289555064075581337089561632443937766931933236198906209506803446267899832771169399813356733049152014396531699767271349076226739215655343555187712452710987732806050336923085021581569262757884413582897993317059074854364218779468497970945879369142929267240124110632548003710746578549967158813248359808390653731970767042773396771194480091424728790386200815841411155219276601120294768531479918418254581677421327187694868092012608870640629365853739507349918919782054782335199491572564775159535183677211449924969406977250494383280479697966981367419019819552373201897390539902022507212633382006443644351981840529340011875946218535200003330310460806376610516090043760802922889712426136840665215949166495721010848225872941904987021379870105287645617210623214690340599488337260272903863928426853649160375465360675354238892943785913228920377651338225036974602817470945332116413560371084324461172802906308046491990939401764925071707259786500768372743475901737884074825094154267363697820739471304096693137213233896126308873102258933546874739490222146274881306767635587967417599239040768326123130594253513487209091518280619811770927722564262417274686489510246703329022768948004820684357752077088471223409742636385431260739989714339990335811760365563257780124159059538999616029612520334087413122398589282229075688878187308189945571085940483513748993944977379735501057737135830477679139491920776991467836810801190766247156188579437990845548228768814032946731348738907113355109631739600831782678676610013455993618413809473662530366411816780118979108136879731218619602917914215958431645228951425063091869219362972243246679301627574952652947508847533306519872291562203469934669444789148431928444506683044924207359511397420040465700863493644110799400854755605080443330728029391654810377620834180484320933842928009592431163044941041500332724997310987184931643361439605567631455852252643109821075442235701336462646948725707710092355202507912189265681750111567203595570670966475611799719170262492543470923438174662967707687688167666729539230586414326686732087985630203406071529851709536842339167554565830426160254558078730309147986845676717150687127139808119162024988204467106766980353627965625992153225474445554263003428820489651471129377099061654001044103304808591992406522859564628788587825344186801941218894902518325772976452719300944107831942053160624739824704077626316435487078335930762922251117567727126936684639306169444730514207793890637641086831505338032336136738407284970041883824016280066971790598463054486342579244879828980274756098414080547212909322797830901015395394068863308333095597995557740761100170486775000328351706434384509725030738871292746157607483943597144363730161859308859224376272488828210158656827997899420306897064421531222760140601096453095416573328691872338899896700197588910619903824224570156162584383393763824181005435092444227018387339805360332083882589635850246778721207617611319016031347959786639024773101436589160385033215888974339918671957328619113676809597049865509054634555739404694658878520766255915545032985112920041610882541995426331515126289819824931013184086834201471875237545419142884708990944773658174268742233736985750722249473813854720977151276255646885842328928088132204822548992438522704764055400068375774470435747250746899962961604815224256454086106575960909411209009591526346531083936737565780940500299797115491146396867222787702220489048579310148695412051667772146897084669746234431381160462709702989365635548918346367836638112665380272105223543712820209334557041148427895843980586865748507743114554985572686864835681448439764982296425146691591206289254087759808912829926298113884482299663886923021600007344642724816040327192730769730276258637322592390311041880597978934276404988177359474483407526782035297281685773270966277647502877207404436616728314556780964938610487084126509901858971539488632627598120850151721105629274688462089818706918040803413701493419897434692367082636122563241951663658840584948384009655991809120840367229270799157828336645254670279838181666979338404369316259389291240604789327466084922407783587066991410475379104388300629305527747841171210353814820633683354355318542146059384654618607678759250319267378896651211624192032985778020623033129244038567006562453231017154706476648198964163948623048706680828479970323730336331031770702294302952864576420625366552446266428698784803165683556809014611511766050789940653526243289721011621598125200911452181461570864950319574449069895248957699517592526626632512082135208096235829225791044598460475474817124419821412946090801973677636249752718669200470715571655130701462090564209919687658222096141269792229964707705143367415774339327900442227880858943441323157897541803201905050758547768942896299212221542017647294001640262093089470902765699072101497721621997007045615067778870036081431309854451269179523561942783490461625908876116128479178686751889672771910109237995863483351388864661305506521020268700116847163556988299123767412425840717358974704104640124371025456327944916214969706935171621608204566967088315257042052945513951511738688113567858764949238758436911431610770966329228552353105793453833070424111428811360830975180195951822124255601802431034169955063465756363216369225158851528058991780777060068997210004615039369251252949221196791540505842906251523045506440403728764471162742936595039032895746401974689738098759931259088582928769216073037949257520329228317186066111674066264021488683193726012858371012402489432956028043052106522106398461561118671100381749013899304507265331895497463272274190145535445704472470902051362215637857646706468422257155175742542805304503898680203429877736328241463783139616812187737749147907607567324380128902990201274660489757142786389521704891078000270605296928564992404838533223939679729149001674748770888896451339023663470855621619981068963328468107882461215880641805095173872892637491065129741607864007920762119973393453176346371842866803567143060441865615500308694214297038192150947856300593894560753691402967564160719612564244619894760752974601404888557698074066754258993325870422165335102983024905976544546652867868394701692288859419655135909919908260066072134003720834004870457701841928193054355872708999936520948398511111208398828888317884245979731380971162259485448139977786452236061701654168981709903876958635852401460602414568642881514084718085926574070772394220704214700903274188136559540031158045556811848469824488980510159387338421611624380717662272681258959037807755705865794629853869562412393951140602048403594743128436497215901898409139863921162367009199132289645982437057702171173446923395217399656070842233356350128521087566297131517776116638066163460881794293897252965570390083610997437316224469654781270555488419176616559757934348109796964615778219965150042886758229286903492856511330827433629362805816654105712254166108074796274834117949895936598442629500992734697497473559906212809348393197410562403156921775564113182341468742202825590182223669937289886335272251974100190389067452113726606253934021043908705286567465268752514381147718387005933234839518815585839837514978282808846651042133445770316166798021174336464821243021406546506388345843354233605345175079756747644110504931481884683804512668705653828577070640834451878151018492078493985873691109687053906850570144096816577375973011118401381584163015112383625726512299463677731718849837172084107262366709292716464979749392181991675899389238608955556252672862646033607845576223727384738853950487323646819429999050827999533711380904584885313692279936686521884682710483223422111156108562428658379597539672578113483268519089632792908649288671131285155408083716760359755083173496048117831000509826745133815968421697771092652982311301044681878558872004715505006623033405892744402140960898792182403925706992100069130188798406232999859049824370030071166158387413595392317982350614047516619492256988532281469113912002662084216445761059717254864174789661819134225076827221310461899207231587066577402008873929554467190722193712874115895396500769057813665690556635711222957328676908015697090555542157400303537813102674105523378913449475407114555358326575254737196411175932697993282323374080266619036725196360746427965805599413873007836549308376003433158184658514087121540405407954570034903441955447850763503850913675647139895684978409662464033701664045817429543516096301940196518359176347113616437770384149921653755227200941393801020595271648222556175507056541644609312398372949513123415731045940863929471865589270720303184188046770012360194334281520789552943676956103452578592740990622897602234821253585637041110732124014629276406293767353432219112230814294828679151270975804379113181604189915692202035908479481771419238319928684764927763196718487773999228443552898759522712367264001300128043864999176908717170808285952414498041373825995472028397911987627675426119801295057852159945341991400431130888355650440420054097381180756779466754479890163769683930787765716595735745634611041941852186251531509707909572993641632473806388843911504297319694867321069408372114119483300220623095735528538751556914630131608459332666626407143542003736582147931952767011493228634912875037446582251208727343954222340758451679743152739346871428712499710802504544798263521816343505339317883090379197963921841538063523120569583581202516872397953995365132719760460120935889449920060278224093642303290656852296245090816614933401660355980753370201899345153929047833215540217486862570155755590715999211937324609341358237494771254124928792104149698526123624353578304796085810679284290391310756375998374876042266090987174194935159666123782815170139383027635920792421537533202239244350735474587736865487080748513565357696835031983930549588107176809157654900633513988566226985578634573507888594785102614231703844071893504996129457986383641731586815535589037103285008108303323089701705795213648316335576506068840765483676904825651607825314521080731472934721939657302846811340345748697167972720339475825902260132160866672325471786941297085643479649995532847382192717338484451884612120294931675154321941631101879325409505140742007115925676415896910905072807025068425276501297980758520073382922362889659708718904936622708665616226150257722104028502852590082995852355579002725417662657114707827741818870487398207499683557323181275000953453606268653054610400386306066394258193430576131546918033475432472656302135741892988341277761163025951116020926313372327691173127252810838197887400727473641548281609409940287494601721802840781569415819319124028244446401817642253853259124702157465904424676032625984069992669715859243863320959321147755325117183530489590763982705148104358056429020583293889355138950670957057927101983030029762161657247533205656338362242050876490207998979611665400103289262618649452606831575843731374904056569421201610299955692266754940385736626837836858150358495811403202343097386855198225799226913020302743361416046920787626602162135885464448027187653036443270492854016186574734529047000381377631445337834906690209490010962037180187234168370681664913500461504545206776304215848224581536030675017025320045974099346314146446529000882488697068711673298025619944078629032172996585459111148911052574342302030396083355339757812222469698117892818398322562119940263453100533951728383102037669450038790632704202696218077987331057775849295518204875261265054570276601931173551540430515320902894433825904568691229340574864731484975085910693916952946214797696119247264556649896867780536327053423500577219164791089350737907577869913239624351656325597113859175519885252679173635479908931025295647007924728577928448430224200405314530677701941454453252441756749811702874960976046130129107653519491818315029349970985041149210553130964143897793524153227395746298553236692195747355562652671858313466511282519477916433447987402083145704205562882650540354995660613484933647327218303236938143608218348336510562454416950475873780238683306799147882068511616779162323603490561684036364914369397161654535077387928681307793798590545625304231825339544495957128051913565168182135989633335270778605529896561687087893120080923067844921913655148121026780610190832144295955568766397731517934641783345128583846321397796396540387619212072098855025088911650618365439092287735631059505796123150291174922872534484872529692290149732387408661969154285401511852168322614856513221129871390877412365963562702887368860908398999374211464229580021164706508203757845602071562807619588511283479843942807519586683968299933877838469633504702660314438082106880041416862048427885644124799039362430247151100688306492494696886148058504211167628779967145286681551818679364693369368912229083393729892279891866835872501375971311149047527568102744162677097622879462387467872221696556042217525620581064472867072898705794256147099567768900386671803812097580741322092855674294750240449496797003062576457602510990598778910176884360475561509863941349229362717947559091304264680260440465568752304637205117296233459155099507997370898941525226086120911993692041284597049669666312747824146738748960375760368570512919707137981065046501978930894469129266243034588490489065463082213054473350762413546561721745572322286205852389817455387999158511423312102155641345358438008560215146518731897548389406432825040246139743913012323575595127681489311459445916893547222556289738288715724452878262364244491891775857714455905912588055447087763592521409945038370836916784771618675890270160729842405793129955454777999627795500747048404659322632238909137447375843333808095985489208767326355358908874347838005734912236786790110434210905464003877445752407434311161355907399549070968584144494021879247021719029591504256004067727419477138927440222387520712758191208514617871420891165906220744504114172801315972552840797381288739080023308840020940694124821965201171581056659672738392018649358223907523769029113839712172285155234507383428383074645785728583901896233123231962328080138339739995711378212942923696603424346838423449808977344784626067292527523627153075302617933977760401551669026537655405137678568354927831258127067498569291218019400314441795024854701116002142078820301806401208054364705713616350547881203755379021116594347973583828546256039118795401173021985137062603299515030073699636999358590578683832642719336627349551910625246205715295762262424841708353448285844504802662760552163171908490536490936771495517014185415383898586121003991279662587575525479310151626664829770125019013866923987805651687433645573287155769756058940720424644258071444163486584877783046525159300953326862999520794743406511512093393948343945766160908989407686225206805289762639167528239355945907741682154370148902060505208773879103126362781877753618870289582698097457438018783472260158035278859888412430634711944153428734985133832583909962413809812066368805582188571104934082157972569746883968544440407746620376938589199087595515600532267961313461760346331103545817375614966573789127117620535002967023239592703685902200117276734996516351741954179764224943934052412717761003536051176085455216730016329522295590095327662969215449413110997962237899140515481543080857812275833097678537624069448514799858404207881281416533855085161577657234870722041366537829251676719594366043817303484762012314791230272862870395105560964016498338357671696055184034429369575296596733615756858841326287531064047575673072284207991182645072542970406804544197638486561015740754567489855704503943144400732341099116552061527127162885618322928386073387708424232295872349777109986272308985338362723916215996153771733563327996285559235783220323914679509439937469923957127096510626636423008701092356526906492998041804441124694775680219902875983104986106848252317276404817704431554655336594505092150971850071239113588738242548020308294171712605983119236808986941827246546967469651544462812205819443510206773165799953909180870763118654179972617557032679027346164809431159663974921328073986313422699489868435761038846517425591231622611472699730971892255937824425344589015538853353536825329514176301319841827966784445900056965663254812843248852842581281293778848152557725593279005512590940249452012738553779475843160270479754921272799340156353585261291343507009711684348276399757486816647706466412523079707753429063440019510966846563525489318746225167443485425376303504748668913787967982320233306331910748989057509250920745153034259708078669237944381157865005493011791855000659384265821964349276658349169787263783852851451049997958314976089268766236878573148632021540449474480604342160418455543798673615675398102323514457134271651002152356504179125670870019432476148865182345280614482874441321727248194800091196050750591217659417148728191667274963566074048558604345439591778992682085023677564117484047398680151189665740313267740698328053105317366770355789333464001221991960277254462032768386831240116173227599910465724726756546967405412078320962968160918978911427388686318342073320791934957060659409152068778041915231539126614935219914921380617184643493118973614709056380088353912552023773941496878590396453098105042803923339123184981191962838679959870982334810811025440802924330477977780862144277472903662104791056602798767124044855441419429937414562564914947164761920552185950668479315829833314900397612809546576031060809985411905505756007638075711152012516489656267399205189625550316995344860858372059295008846337305218070914221136466448593779493856147234436763582623494958594491229235633250959727081216315277432099023690620942345715437684730141476547775537641455487085807672999312607991911173732161954928170384239168394185069559467181305448658132434816074514202188910482304884741121029082878073970234651814056344279572032129529028025619687034044189321732212334925202922349559646488679530897699200331717095945185806949732133464760703717397958305037610371839831355112302851453147972021866254006958129054472115271597768352904866249341844056486627002287675991553468986017806696607787404320206809801930373723515240996965046036622989086141524890313451690164366833339489041384541571847568667948670082768972709073118462840119938554576755701538761841057704907580641816567308169178115834947570798535800634372266045817685130748741490127802768652235225064077552270082936669011832956350770475803278742291638257256000400185139880613383222993611021006082001087751415181001613746799048523720953268827228077648435592366237805842370392116007034095498615273379203221392260025661200287337486309044245848130786100888798761923371996971051498749527360414376773060345596022443693580296713808252200636413894645324706518904849474530737613275730010306466569809645703557058952255994958793071185029320089662668599538518935112283807266968808407329925157269263956615481363257326021908828291922477351660987555638027425616864972792060473946459896600717860812767329307102701442313335125653768647344146213426069160578930818593892036472755328619841405150869749128928318938036997695542641137968729182243162294774359859099611353513316591081511151627652048200315566083984297733345074385997869955797862253577489567208417406785933465021199217905092799796136363757069993407576696584348756142626792798970536848061270569306605345140442578512323585812133911859941831521598763969679468872822793696591283678448699789481496744544166720177063137673226926438940298852306578536106740535457169878049254545737881519003021444539989940471685051775538567502612133516081997492633740840203052731090502947280861375484096362458733750709052520348841435555225154282063027625444301343231459722902078680449229270976655818297381378231543814103324664581119512659650951542106127404722645010194545778232404927961604247826606274688500507783297482987849158319330535769014458762770249229442362153673406410970881432294985966701952897187669477990309449416435138719735932128512083215928372412842709586589681084935422874180195240807944569182668136293734531637066656033338912450471732345206614286342851173286792473978451775503825644298065952882763932268121377638255561823005382482333790818607754733857265235736669038787070143261829928387787429315068434023193519218241020928225831864342016707296910914758254499556850503832811076904873963230527418243732314560276165074996374040615833995500328977178632848891938440274004605164524936307298839567574751045806066146702584894523149468396462582275175634908809790551592393485143303348382884341480897213822370588290675126821348394702370886044456346455491461920904262634006038425115749654674476988425618551637724873162868442609425997293382758517303272445142294203269208358007476963575049455138116036451400094543147593943798421463142478269558699720532890572774564214665097766648222979090895014058947665836724881277023854349623737563764778607182109489267617019613098755138431988782059696367879049220979378410049689511505012469609090236678532988347175432202948523553720825304813582444297900292804186599168708078033331791530988282665555307567956121745459290957016711866616907286427572223576362871296758861071866810424894787089631318894103741374694745838164374980299270321741676499617045005046490455024621895533833842868162924563194592821485231258436659710667725929155030867659408052114509122009682083136698473073650244861325925655477215207175760863378430496148583790268865283694379015670911066982349472547220960849252659868442993811068396186553606018917025539814208099290046079802905922088524337441402207742756951887280812550894437739050372819123447396816134999246003113260299030268686533150246224478586280304157191376821277138735356875112608324384730073341062148986416520803973620357056289504517621864144311819612848111210531122382335816937807603915753632999311090660300053446969508913311502802906969929008318349633269678356120379132263091462888967288882166060444218058851484174837408412222363841862177773879134749488897548477432544152462489717755961309365319316824421084900721245465917940477564796613080763442847832442778214375536922720831852365481151157634645966365075325390510094143028073031304306413369942436741132657267048406876845734006870147884013882310070817407207435906701175092215859087612396123061289442132481743795439892226950031704020247955559459952230044608198845301754954601516088333717160765055948624195723303194286831332156129814935644368119068703811070102322240319596620628629776122411931141470807256464137452094192721035451127082190427357552802573961821439662214289457942996403876638594993105062514826563096817509454532220457278373393251887501881463056068737234094044762686938340907689607942037073575115541087773485337582148982736860480926298072444303474901021139990213173031420597557452794969071338020406712312725460467178568292486035886300171067780778639499994073186155412444381237745537436667429928128889064087408665249724687924800014997706724178545949995638538038333703971044102778204666000756352213317120882271719183945687993825310665402741444443737716542900076853440515410032062858313947953826769712735969166103533347976499430979659453714435970530508718800008740405913815396845453503301846188991617720144569824827416805769073831327739917822715973507541949361061604691333217133785704202569829870334296031729888993707243725731665855874329484201032244369517826151345897769169750270257832723328416335278199610134687449102882422273737493958833044205970822531846831220879782896286831705410644858779922966379162783810654886379971490888889116984486032660935554874938203405691775174181264093657970563678759396290240887363457033170503176225843888084857158270838506949890136595171380362221444560672602519872576134896000628730832277511964598474562337071403083759245742049200332360269885251638525381836708062614635695622412352341083205303823233132432308385095979737730996674711695938280039904293754368676485079225804723350280650718589541076378296194320721968483885658858942052387836762248615510874110515601316589080142213525971809471501669628042593392535459380501452484025166020894729804722538721850566544714506691493727472350850632274796610057571019402675328560837831480879239164491528603972251183673039636540233575950690767312525003636027491542082288396006161355685075887779243975050556779147944094304931342118071805453959506832775485858547753740240926544948987057096533481947182839507349528552532200754785382625826454178860907600709840087484700506391339306582218060151810598837862616948241814977654580857409355988669643127955023015649411432689871944929780602115757035169374325346110641681775200984806402288474545176067700431966232318978583865226252310903826208416149864461718458769723704664507244938657344906539498599145373133489868475930405490638354106718245069121276361692355898421481164277056818782930354533299942471600062376545079558940762506831415266243630008510694233141331928363957091545601315957495989525080594917710348367953838760627375560588850570659076208981487744271118188107424874987260313047075849675008284949758160488236703702068037814240927062574784603341811587605095962915676745450328584516100981888742835902176768427191886389064710718742197522386955994691667629818518975126127408759889611196686463799281392522171550614091345163750022862948353132712404749632342012634125889615835197757168235754524578117175899943986473703977069664471986790614154938119492639002055930209234591910228092349242326832992651995684584364091407033229860014771499117554495820042238547160283921324246161055094370748252857704590945412837103256309141909962387305356276944280469634722833711433615122197373620476272229969496297221628641763357727791027555425028584603229785507008628406081463311924872054939108698599862391950482430504826576051131182280901307176677952760376798515636854620137356750850818392154975199829568727748928807451352641500518423906987125163855675145551126637148033849919494567209112304821282911966075310951884271074975771799483537045850814490069853766353311226515549659417245754389259220625822344596345587303072949365498332835110517799379163669882608531525969783457518929191299063468318389888879229095038389307858931220141765119008772258763588297020142880873783045492936818928957807388495241507427532765702159137680991877139277158436109698000985577106164323160356545715592407499251616992209768860018633745547589924987036017225655885022062008482662785051523122324780939973209167271449182179672429037113360822844630972406050897664276105621799675955664862917795428229089054644201414311898051454418163478650098068279464608504265001197641260717878764692285928901646848374844409491760635798196542994481421823942112303815537649420586438799765055678154706333357393758181603378265374634999801511282925406213839642547250298132905072095609149068929059683592826083765720879678161689327917555548288795441100253900327233299511975444509730491794159524126212680463000081130010365158037253445478547717387317839675954804780940844791475389814525875539613498366930403858580207626403773325525392974246028287498126030681069049147173235827764028752995024131162124731339260441298469538285082764858131761290442145023328631449782591518828659966834170765118886747035954068899305530180480460875577090514604635353747290687659361003108786768715871177688938137107829978770762813494399920100545289368141465888650959343192032418211438225831654272762705813123070475889088952124528637723213148328022620628396516218935642191794909866633810947879942206170436557847104463287325377145917256674990127326137975224888025380160275855077083989872887111190829201799558759051819831570672032114003961554452552142316625678671985322271140313106759067219283850103749032219252013652618004421968983263327555124212137552639775116906706713243509198144942597092673748603041731180932308322911133792815216369689385736257388570689366690980537072551157942286256924078640317418936194401688934406181453519397546231420498023154815205601289360502747805702486544332782119390202571084289682617377706457085982649827574078544450039154057013610197783173920525073853896946867381967785061608147763930551736017273579687843395427189094918242554921046991362482925185354541324630487660166757175861514389423356620230891786290563472569696635218423828002457113245450596632431124546067562917802509991332465307813832330137588370388707025986480331770938296627352743530313343222738913672534507248463739505478971533637920088300710652584172497234783751022413633785167380101282564189288788021281593084179981729249922356106057556218057407130899087619291063074823656633580226983793904770250214229586387499418168942676207910214818522801663903663204597334993090000798580867982083871275847239311160532853728328424947178967080434310261106807763984955053405977540451796743344961673685296746134167893010684431015878358662461889511137639630097878032368938184271380955775816760022752071471492731176930332593198621999382767388298038671832374345747497737666451635421333914170371183002631439711488757587402490835695955563711635479626334770754033167880963808134477948038395496042744303033510087138422116596888581159042010708003746181498539825479237094905289143930265399884833689743443829815767368403874717848437030144920020309196968364041736796755975261939698086508388475778512427531411846222154869162671538469337071248058598577626193753046060428867794440738464857565393810836444201828026578700058699800343523591648585946155242797183780459592223326688529448102138572397229097258292951293808365215044095196510893725354158471408695152669266559577902673400662695432300442168201947667101371114476258785012209845122939941296111950474796665239247208513351888142438073442064472149659232431789800980965521219611488295926509649558573625013154568190656380967092669653230574122503522950804647978371285678238024578693906650613333512714355791089951422594213108457360545565353839577539982026869254267912531485548452675424700177568492682350276112528654036910438370498143496058442186192536496174914480638743995153403693602349112535899543226329395392228952581816407655048241032403683030075164814760899429905311140491510390145285549223434753706881446549785170348998141859055227468108864573000786868796165160301311765657283824323177624724805703276049327800776541741646617974887982841749450811444403710030864171502669456537766424422355469023445679810176728991515162569672098153890733691575403124365402653462743507849557315979350879563450733573365240933466788948132070777571460529255011273575926855458658926510418631667667128526321823946316368249629562054575851651364987633698810514349664846555851069245583777856677634378821339225669860397885359977792651033252754076022449728183262005272763991716130122878773372481952577186850771660452018893808909793814071515647916619433980688408140934691482743438629309053103859269462382435261195126339014962559168154012435091156249779589534746467441438860201935120227075451760582534355033757204270621834115052878868291769292795226209400464438439078296624050255408438668921678759165594238656129280815175500484936844146906230573475707251009233268196125262283867492822761903778184964428638647373401828567200953536125756514823000245185435599125298655904797265800643517368473136363269215794702449202500704414769900437497582275840575370897862336107912274281511082925482448092058613851082342538005326982303552736843751335436858843590722039209928423611081801216951430100442573663676737746443859326174746663336664483939797363084844716336102762484126571015124797417602270668625081594487401492827882121546571679829086577081102367695925324933145970013902029382017222533116958120189519977685541868185269552630428552845156531159676103697572893305070167479553892482655291393899385935254405209007728141623295128543762945489907982158624305161517830372757238122037612861495572331965109509045396838004652874043339615326837991994904503288723179082220328747526531985861534643045005737534217215204417226568975243591359406937519704414432282835957442611026744970980421023463094914235445311139754938036555447507476609263390183719942256010182382035789435058547804987297700876074710671850267186304311223438289950319065699733928594241713331017966401297511550947903648091332291871282971510511820260105858029832904491371408720794090918689093683267517787669042087164857334998384809495489075519854474771194689415894450707314845806003292913273351455262475529993734546310708008706457288531805931726080355971556742871133243295110247245848570087129860440386884575426455510684633943632881242546554883711641848124245867601883526025827426854703940864206891365765954006772526952807900312330099147208497845893318606524331213163709497335327928352915490307785878229506362966026654639145060394366234349873244077925852885290632083538309722613808675680653562397139468495146422810081790396733498872722483666187732359995920051529305775539435335490942558971949715449250876526401865939621606781128803889273917487164887201821821291692368300569887695012158462634677721185550118146051685662466193300361955877094353762948707175535863622823460231551801277753136950024093911712721522760906342045159651102811276249803618258628464832547814424210714460303599188717357561377989980916381885238427288263514350707110700809167515405976870923096067688844090148973375478018615558896384419963913768491213174732571141689980285839124199898986523673599143388600003854769871078664262497243058846990866035575376068126667128225447722828397638021003738879385342457557000915246617497282824726500943953734079169176483462057831979807153405415147190999242178540218125754907066830856557420586126390391635436494446090971528599598474696722722465638473347006500432840449793580300154962624957235026279759982411525120497715953371699942721065530165096373000325506337820656486778489358397032734731339041453470692110804055089971551567039750677571749107750702694636759096106270200208759797759178196963294010293310397595079268455896674710235673288037937854042170341567268029525430938694513419750540033174341845820669374414315425836493970004567973939927214629507923918332775288154549971362079983702846428872782141056992542745088719472848399321104845022141504207125081962845488602709752004560673288619474024959220692333551773695393574442800428929261920377174666700285288681359954909205810865746165576811940489490259915315244176273437972088014973289202753090720107102633341054652772095806745733098124108234533716995947881406882518555983712474970669465582655308976379843107445641741196027901023113935844846685410529241597254173840233947840198257475755331817095195187168552842224322580947002082969966456766370083658781236551434831793516770690300337928621988657074696006475223557257577303214181919803678565030880044787239654663404225254936661669101742472965600771316077412002170452479884341713189884914218224768259842742604168917070814159042534922159102830260764078279108369816424326234431193612535660939344957223201640642686297038311965475432674360212922610268577103602290267715136920099259981544909253845313126036934447955180040805597672784892443397143559380066676466274936301297939562372720138964778906133195475743536727779133582248557402594563612679630796048383685087217435532632076130149775470762320171559285193195064743181238150685928344821503027816730368064404607547589065427285462333026342016135466375462817957869395787604318049492499483854477901939922342060802346226437233710440139989465114988041627493454028046653142253984649755672043378317876318496283062412929400693843172512957158186714144801969611009027951496541077697046250801263916487367936024936049494948105098447592688268529668903095914751796801152426661289918710488078482274485381468717652934176395702614942174393857907069084952588242285686807639112032681138585181483267871288600296677534024419457124125825346257701943317104786861757704151713943469841268576687754035774304335234101262761848834223064995793743715351029990200381596537688444516804629321372153948454743391178838709081837040766191097208124331388234660100561648837849879046265007683231966424770658202437366714903557446670713522126216668039040190331476426999349358451755222450452479235635529964922204574280556067231042461078883922596502885134491472017716172656248977309907026039431460887091596142252506915140210495798616908284567832444728969198330891007212584770845325966624249984392590191236839405952918251893228078515132908377429296953234056890519589762484388750331367072217519164046365464989724778764149692187265339245278347483655668255697685336264864893886389767808064004075716222994329676977636244283936135833394942427339206539762462700078250817681995033115919460830188258469046209119289127704660595311482135137565593046527417743369380226898930570826996483243817296756914328399586113666199016936182597899937349460199686487298691237426262995822263574677543320290860717881920200998877737183290417858414779502725917758975664346860274613666432874623840142719161307018431634669875526699628268492260478990415340928745742406312219946272124729454972553243441986505570579110197501302997863080315038905495171209206500240384094687003454017588853323214432193889113744036572447069874566427751391393155868566090879659963447448675001335197768389930823965207555091065121286363815266668148632528187463242296019456442945648904108767885958791250479303119827723134970961120490233400026738660072233102588321342450493925358271876289274962209678858902780445098472780167223194063061885430197860571883113679516816517863939124545685948299690114533524971095449503833004756183250471158950644940944769679819535797095957612998378691316430766081985358182749209645969693765402253526202757887494715814017947931019065897694085325471005300691541138415552230927848459738809369702833593607935643259357269849739461246568334915982551323603703660990806214744317680224898403218456682811065630318037337687258169490926108133211874966267545863600185675106804944417555891194569793999022077607093629705397652352235351437865600319177099503122129455945515370132376568730084134666680202323789728088218239647028726180944275386390647294354729801053599324037138896810108518304123338537704995179145496624998360522914658241666624721299437483156400977622709222268753852330326527921129184835397909765492562472926278505725321830409367555116817468435529057566820539561666992006640526177031895156920107193891121221062127457062635172005078377246761631908562457759960305504689282032998467571543045593298163079621908970986720897866938942467090328354871143610792641316388590791340970962065606641420436689985065097407314627456989218901479486211837412061940378752945114091846540899952025093298494117982327758616494286391905781743900593414466240774359808718155096198778789120197515089788065378544066793238708585550607803208602805176459485810299592165882247622787004841454130806083308430671696098882188550070091708709884824189561085662846575295243803451502643046545984495946039724808978978371075154074127176169400007245968704279702964220472450029543699059524627121646474707019802685152906586372496267287491033498492584667647181347655232290921574640645640497015434624054698837097306614250433380687806466378990897893814247512709293377386140870126742437086901524223468473515524768899317741402869868642660758650937154219288705361524622613269797749096525374661279060817993384163918336169926710980694156680727974524201629914149732110065872174830516324568592799124567878897804772287666069902564052700082905265247567009096535909269314550508063538840926694394318096913372713985758539196146029711956191215938579323588182343924347338609363154265326069307977552509400764959491898506056327226167601011882927913991783908168775606117052562339839841484052386043701143596736112565869513741831574210799735881125765329243399937338664003747508163836374776357013400396686468466649566878261568424360834996162554302119870009925883106005333102258182616010990618287293557089638013593338836035968113715855696493727700318941704044709263759440309476442177076032468086322898290375940430644595399851975647294836341994859855550564485918162334447417024524473703006522996883677723829560437093252038788380570552109028222744709691747037365664747710398930260997326236483448612622318696007836110516122783812391727002483535683699509435522333450110054198020579942652867226380203514903512207297699865826336323978567975648588670416163366934492554172238236580167336954883807516615398756924628405615347998380425884884885406987188963373284203007640546211186779516377924717539798862775563890541742476470809976319954152750173813489990966782147400333414794741355272758662263347371213626793654982695009469381164581050180578630760153604398712664914420718423270062671692510999325973300982338690625255660255158526038719537160028046747403915308086061914684159382755912986972405205877776195117241025746234989307359556544103318062421990879584281366151619999817456448521316285570999046382425446084845770202203051005694049619891308162810373018068789576028748997056351375962525561399914990885514728074095585540610926402036124542981237304809949118744644281192175612167783999859425889004128363309409319046252781488003547431193648134701797162990283167455182100976892423773098730213557048731889450988076217445322885640128262176393676060880216823930917190487783367098758917284399613630902955943410475837568896548886947717427228639889013589108890849211057467030819982910681639440736376017519563796411297134886355593461107373015844357589115792752686259017376097670795566523315475457542044579081207203765534138752864866190981202429063777465127939743491716896518399076098327421030437255232082299813673460820598774936327710886785753213772579439222297777204855688209175123259785050223086698486729244157267430785170502286872381002691733578559064990986487531310934776412516830153179452319922294881759129205898093205358717435747357813270617769777638766139703262207826869354769988398048874321585770669176330393316375849338230370436499505023670595805320109890463353384666293699734275332002516468044362048766605161509808914650700597711374125363825541808713266676159559743455947352562691877408118435601066656349167710590299733432485726072682039910648558208569966624997988087318492611301989398598791228091552766371036549463738765046610942565608349028449309036909202550104020761166819664990875593266935478120013283437999830151281833962144492239493869662338316231263107366201739284573684850754624637380952407827509841636496822812198108395044824316283524282260103054202252192598291252269612803283314010385575944335232496211330565356755792905144918526147133125357082759922852129872353184061493760124696624772341932051288214496469377552973081127333666575507590590229859417316714156901428276951852849491693587619611127899864253635736808224868683133479073503899414780688064801683314017371626971640241606384246660706309889741582787170923418780378732720167353540663440254472633584276799054636112428438959738713881184163755411201001731683122407537993205045994377131762243869418529086768759337238000493535979563396076866771375455263912656912923308324094061061380201506647710045330581407938324273496721368522838268473316281093360743231885709366826992053525297940961863641822618294103734728238883335361857520459872352441671422699550541396865455163805645139266476575814603341448466085206918515662478460873348953682233437372442586303473979774920631022529962149400510809793584149982564797501394140970775833693100929728754748359712542006498215255014907155043720363809040591392888675432462139573462964826935919313950636407919875649066287851025291877912594895196858054165979031731638016988977666217677983410684318545924152822433604491651034097337331015013031567137711951643982734061356745483337926535205226058298730242794552763003219581884182534862551453019709418769184197339001262669240807030954937833881826996210943840749974275524672812737805409572709558171977245721093783764028419297311943823402833209554560091110838089466961559411358018584660213597425541448274961122024240192993136803212953539209739532229555115654113220081989876606823786907658099044818525213797622807601201540516283070345480414136113022167449146311953912962222191220255825887491814240075079207698549873180397744553434421214619728154137963864283641598708214096988974643003651997283229660518834459137403542817758800972602473286579687414599038304101311226623669621643179011809368085473931116932785362325919788012545161058229925318343426576949015080617438484008217316145189387551290779290575646079703717590796232367666909346226333728173507607703511323675757210288249330201712069817727288084201442393938996436011029210062399410077996380522792890821419982985729685941076304111652075949017231321123564279538363464248697580944572838542351403571471483223793045688820983678566447060669680020599490048133176524256508107787835070951225588240620232499698631195133519615229741175452715800495546338403243372656576491091026173339833331708462063236995225793011070838529296978594695373630988912331107072369127828838238473614557645712425148546010952585308854096140360206296073498316314075574110955665340494673003787957693798300455115493647411151826683894869079027094729134622248756189576598992265357337187720219065868898091826107874051856699276566248469595679501433662318417856221712611451304397139565755652386785373306082438160129951904087727337282612667309354987098554348344422422202909686018234116746304562614710909294844497817001666646618555440730531075238623472807332062821190196160636847555023096919398712548042920786293805175959335649121297030919172403396548149712123411604862599967881997318663955773139836491331806669734698783858537981429424969825880255089566677826840599678301526989210032266496873364707610011963015093659535761660393147822530639729808801469802772579708346346533133810799352503070686196464422411168231790843887461154360408916884733150640525112396972809787312195919599730867140700839557408278127511948799549653670659639835280353821259245275294660616643814445316615602922198385190591679595856943302221515267596927435039205827806297700678569742355296260015088071827862167759998423550377455814049511362682388278070332133120533580473333107498474205779003078453829892601613700513528762620309669113392656546666095843456581002751005323864920398464094420764590037751928742849119158525889024792149021173563245187827679663052249901081579971442543246842678179096078533430868815202973758808532718119766351241472966112098284320560418577889486299548837467221349131741480259671155137614181935717176625818696628057831622203399648100435690617288874110047900916953091885448709621711104692925866166266270927465742870544064028377590016117516152957851008883791108629454034656659360905915720392583477014555092744550806046322299857253846385729072623230470573040752566895453832439638745288792808667761073221884736208125473212601828059795500300788102065067136216904262817651888723240348698021344849830896281080742115079443999371693450180500401670401120100401773915024938124159000016189470743237678588140670845029571047470478176780009943653776562886368409378965884693693447378064989071659751289189984209149355261859971799224450077221842763306971605259886646413586261015669151095190362504149224926109588399033716280258984630042364408313577365600932572044789004722892393063941923993911877787271116237790358894226411958932387559182680532468671665394464691101217237297041005673055198324207156591778264592246961928003074559784659836694418781457719397485567574458782270355572891393491009872401987045793925176072840381137062638732041925730786165157026977288761498694397790169494862785711723544857435249717604700921301000318709518630425492626643413962763367705282986277847257264517648186576571952174357725419470385526395752349858290068248192877172693422673710184085470329701145040980434768286470129138757074829768722742281309276704368638036237320866288979916533948486154268811174457749612291445398687603683790811856753125350833264848519891318209664185923101348211837878798877427828337739643837661938402797601790868247255277143456664598158165282096085582088807479696315513745817927123088556083212956403656308653091146006268622146279782935349813886741899030984627682765324026159130041915176950881788416740218978224238639776542608516887482653751636193139135094582157806676524084852236781122825064412531714178390312094871778125800986659964691998072415187707045426860821284999515545698254670179736729109913668166586772729662008611743777023971896162736987304564712861625438269697454985024071110462820832565617455996551810519087661524340431474119078491915435491115649427323378264984603496642575294521305235110666610645751874646368575642559917103062783985591682187657791250533206090334867337696068129769170800352311213324261444074160927553467284181883605002493170957980836416460965798861122843559661252990153562151216653298194614451454062050214939214034149396877913451348776248587788761424169788876400682268014759949553090165638017392800056186848620604569091622150884553954113529499898045479149041322670095543810249484572775053497282838904853235099943629792800000563334987124898994835505726916704928448954105659679128339180404382232637319623567677340195712305663401031024601844883281531269891201948439682052175071855225173133577064944842810739625215976098778876279625146639656142529810561750201734330679746815780138511682835523925445391378996685321427766860566453924897090735957216032644142109498671433130484338911372079002100037910390488972503756320252810347363158579800645603246889166432504199737637729792578337407734835183199071650352306341611245045105206549976815017188614232859024119433094258124951255277634750576533482539751319217846480480284110825516756868907870630108479670475820606946034724049973602786354222012055247922452106750678094388837247267234627600645207364607332297152548977811702225767166700723777761241964419026831433451508676814008841775077581513359138157842132803802101514481772345495041218000742289287444759177391123550173106635485486764105897192984754054502106555034085038197771897893491915687191210714323383718847238360151466400492686546276083954013811421809604718863193996847264322840352051852533177590273991331207302377051303816364828864686450144759594480947909053830634163292704167523777272010124654924661083775088613826076138952847421530915932908571872940089092086933568532429440355838767857310689485403360165967752997078141593723170497739635453379641361117862847631143711144950424919920881066366015592769883641182309067244742225264857781765326535328625049623652398485564988163019680819204092898179261360626274079652801910728730341044314868364517906029556917898558456454647121263667051099868315880606362673996849863781460086534317555115132150591867085268042753804487315711198573014913951935780984976812255154245986935675911686734148208190290201047840874565097660616480490376799886643957981083540302880238522106368153082126253519052078428066531499868439257241980617006573857196487190169698756799205264527446061003276998757050455452936116788256838976356432862648284027067850032247337388048808389683420437851670354446844508498560878384349503968849181783112262751748414368429878371975585457257366958911751480102232266829705834641189767833712396362084911424710992505921672613982840110269762434173661062410152460873698153569693716203918924009628387365503900581173879111755623623487993584027997971018770814238111314728449097710083462406472057051184191707109767659124243352262244129204984417141145260039931300045049214192678875926295279328936504755725315675949120817257713699709439171722441461401806440196769679343346681393524985067864369100268749638998201313009304108906322700096229386065911313537922602764939133367509868472273396834240507091390653537467952984337627392415199177650730424756893367172208461587939095394512469107278299441712558670434641409385298016512810879196621137058192395038238296530235389006330254255956670669235133461356334930628323072358469879624916914495143049403317998974825186091985610738023501429899113535017291049345857516138936800756368753885328778002157954234787207736452881166158353388256244504927885300646710906975956814504961587216943573748454715477929935471620304805467696636607535650020479788936596999227034266632918907518112015383560741238802764246995925268134286397315103030150292992367339656696831399695532827081044541246973958318956607573464333368190318509023142146761270418878731707027075075324254262698215195805706906126282631112478295201464758229574995531821607882099650352205848237339204020922305207947094048853465927632186614291890834998539009654945287124168804622991741280604469381282295336240721231627576608770418632600481635187949543029139864990015867373106277640483222600925995722792194347664568392845884881522394267648554340480895581530237785869704694909699821725157259668574673683881127125988420770436589392400245115755586377724162090853720149286351023631364962976043747086491334352989101041900907004224336572066402498600675469099030686518026492576411600335378070906841425686499237151246412507107776664061255878794775282405327549070075460163095052552904386720917360218263670166838878422706802817182368499199253292384861082110030245896146477309063284626810195237500759258819820090478680863369329418306910913386693595645835191509562599089852980910303584886833388232618850347081365943025744536719781665465410289340122865642310979618172465373083473405785228131987765908859707407976894462953833783066728131615308975575094274611241754996214434978315752312372002651699923896981844394531818655715727529922789153441704647581179136777321266566691943573423653536792378529222092925912986395921517704928489292830707886685791433707812894262697155201627225993358587903367833987564685444960828406934249804100820796847212490652388742826444063740106927400751456315796532663234587596990322565475931937379917585278946647472482210193661970104898072230927136649949417833509207516285382776577192236100144877628591867490198896581919818444793813816901309652485850934009248080498389687516913408436128469213210203976822851569998754952309504060486123186312174394329444521574190875093396538437091290019999232910254442838561231880906545491768064549064188171755861604939254244562479319715001660454739603811196991853074038468098123078526389644453408776483509744617935172534749413859076542161138538793114254130717413560281618743777931814640595634542035043821129676197809256308073455918098784286532094072125597868285387871807221530737395899706603024102652898774501947128481632989941372035713116318073109264776261292216042632885782688464299710510576513321329252948118919619502094351535175609123778530732612998616056554348852913048309731492025332130997680369438148621023299737714993080497953007650339823113797930094415931455901365605534949030548257290814229950555330867669773814710487671273761801503701148742339008237642358137858957784220941519855102578521099262166683912874242680570245672838643316190618609934094378362861018426367482831919274101647870965195354932189738997420040810733413204867822281949874959286404702402017560910757707802070319784034470556263186033482080123701785257003825468088975772168451663775236030281315786542385524863626801477853202006951303702875052300462117181185304221421545994436540733757266631919359585592201742165772658388079433084654474195564052940948877188380492436067610300197216553199602917220400334334490368277145974014831971462203487312040689104754466473667626435705994012037350294604276212410984345963054712307937961595007367720135413940893750089306632594164478550359931291365914397567197462436969979266213593186694234536833011340113126814949990543117563397797904020319044888862686859198323733989166798151633761654337093509839515252094808897759796733786102820208072625447745041876320204089291626319990453458479376237289529414068284414451758745045561129292866486041456614677649827505894218811445032476221524153848101026655450266451894300450215413979403667021067336733446579442983867792359883611636761447553520349719530364752801090056191202723807915377665606672711243944587829489739868665305454023968266947057182962560027199099350881258685196772738955383539448341878281914094783921746118288217671438617907444788061158867448850032234992698686763128199351458795913685885087353682032999472263782650649289401280313983417141123072550343325006336958960629831609499291825054065070471493235151361447411830561749633234831123773903649197030866584890950512351227810105137577243863210845818297679131706442313645918296445349029067216258964274692050412505417575294957894823489416168162578335121452081605326303415159911368613495133111910308585899922812314730880281103906701934190789399374499285721191401980226940518320842892510260999905087691729037779442918298077940259196636385028132062719623606598197994642874304936250173271961201260145123094022646227861569723679875852242111839999277034790699348885889678910078528414263606642501775802420254807611492423112209602214637401330476955027589357089931282425382273464645467176301344348743310050006769809963375867339922542084786624894610045775034639040392940206984276669916026014300090186514449910248577177481264026420284354737007283885344638595745269388898477112737038071799224037748503888436948022084078730114688080378850553652530971289432299880733712259573265507257248612242980125644344220879322702008597794679138657198130835688081945122923131692299219341626141435652989376917768231592020187295601106104945489658808330095302277699677916698251489546208549131639238112125314760631664054064665912377508569508060606901333152451197017941799714920757467426105146261302437237781348919294562519648810429540652558921195089940637647493114264206094859051767931119195542969321798701663975916585236624806173364461552047544158507393404545486293607243488169559997986064784144484322183122216666443852231338063485675771394772570585063835177462947120252897094777823136700646921196213816199416566274893732634227769517935407699179308959139957958952350795734070343019873369647652875905947517213902272576074560652832865890477432450229281996696510943521877497663703039880717572373809325422516076208894545507933362410295468167523378568647997781491192527516610735699720595376935930793548716431525592357725925704683963580905187046984265184025327831567414366492394144989446698154849666459482687364535341300266751434067080495755054491392816659430821157623498258179888919235433804373116276130001876381643603668912421756028852776435791881215777753569489328745747459205773166462527118582553139078388138655001533092493628566677885131555017473683911426356251409130435194328889918099343711252132484040255482558328477705688881060568347412003598538908151238320248319951668622725463182913058934204375754044581886494348380548142285163538874754468702511693058809371588317546870789167667221328910328629736666575809570975991868122048124729384314114251275290885225633542338450195729101184384237592282056268343571207232154308644561702851264681226116755533597661270533570886625346455999928069980654657251868762521816168868743781632321677210109936460229163679568454704602008366264314762002062927022738457933577208221629904750971054290680637359770668935685634182303503468228530383196378761454267056124284784976505556480177626668962032379814116848201389547337023294085837640711857799511113270903941167495853400254254886143131509364216355620850975574783366505307846295565990614439145924350586889581430357566286452185368459543660804263587441975696531401327476863543918360441231259506143497797033405711032901371635277743312895699495153905902194414119868858132617861943904897097152451675975323391245442065406315319610165248290868313905322443318503797738911693617451927255602220722331129899902419210659798739736486552552827519626671991210759421214993804120507799106094373495119113263106709186277308987739978521663328692198891564959896708367711564319879098280376359933137249754076746347026949847648116678597080099361940694193557929418354205060530794371308545134095051664155543153708613504791207404781204027062132257727835429011487152231588660441049080865558580632544089628564840268099793861257946585790406580334770232938185190713820177401509984582550490921088636213958865518466335744451559333964684458124908420673951838437101714985017658419711916610426857498040817938913795123224123895859217405660891291376043680961604985449351387773451423699768773960808534463150743994681610137378852651285340875503181842747225642107668990173617494623818647649802098146210789214228673068601604981903635225210108018739017732700760228156769134903499426962419016600533293651474249348853610785089552595057153323833939464272304189540519599175324340034007724372547456222221365259039971026125249791280756730137540827196782311639641718096325352523832659427388640464044449991952977748036618682979729868106149734534111561724300239531474484133141931778853447595251276942799371815207108171224136025887685537205053690472358546701686174548592171737142697045393209619627277730695205359391555532405967997853128800329116223688548619503490598727601229235518116664747641173188686263761969407807453266192720561500678900682491636672498209052517862786219057768993720982036688750984776264287983480291985716682568965635809432480879003473524000111687464517621021119802898389400313058727696266283504098882165591883760040374839620480227169160138750710494787586974803501645995863577039752225783212826978264624377723373843008800235498847485202529855426127869720994027372126391913369463484738454104585535241419864025830747078411891144876539627579955694213936589215957111522349959410438046443023965631398114254019060955411823651898175509339570478280095869144815441958923300775407213064679325972299090971008410892027186474608591736652725345113861134123209206876622734753548233048628707919609883041750750789225263999585892924294204077275905538635038150950451594950550901344788502424577296926467508457065932166036502263744268598655800438311111270053202158063510606443276679723564984997767384088372502902265162740751299400240225614283319831853586889228434722822590429026887006074277608234565059162426688817830522133311622360595586380689929495625023946056187016669244153245720261798802865240772006898349728108212598936155808329235130199718366870891584231582445338120226195138146794573073726330507217379684693724627208575616501726328023748846527891579094463635540291373582584612734580308380612651230186092474204471990450580293034640876601816015970299634279085263609197932229071856964335655816303573085518091532276835389794092451913312239976373439689981520477816230400681387401266697106105792372638405163457697476750463326269252185812645539636886089793163048196571141765999484652986718358625075222928417108543716912971446960426623721711786746137806825177826707717281375641274640360524274305254638139293083133513868636585470917057712218454932759452116006609674685081321958329562375360137719931297219105504896671253703247494319878963596546621518575344628878939158617087975510011181021706307667516867983805631851276572140372876727238275460940486162911408592225695350233572117367604294988036983529165929310431081274483924398017437020886411049992068273254819939248466698291630511156677251220603026942057582961518607548689814571484372623819283109710603489110936993306093555594242936638121658741840036425356607846135938001916678523372512743046646693678039574516451128824510502743408726426602153519957839600196511476621742627462994348777265694114993525448252492322209293972019512768071906809970273342973293434531910482089929426231784711673740684022639804994158039199859027472671044144047961421224910639403724071374242675449398289608483111240412209814158226197237330740852006540397331887295496972039218761398548119379673713401397178937797932198345983540838642625661955043889814759725050800666507766409691281368496245902407375271528902509110983136680166692164861528281698400649083507361074405167596663234118511232457967354458508164401311908031781791584908323501422539975972815482915520670421914150955294943581031339736995743175885256779122559881999967937976944448842479639893212087350303462796495977807618132744338275428387057493792807795700317914960790845656506630690352427197064936679087090263051129522536886904186606065409269899102936528680366366183456105207887949169965758322584707009548618504401677951203216610671262518720796431355057125552050604142307509978757187582883723394385466555850270241940776398545919156003195303019632199593079280620874573711840696792304258540706271613696226586068294243027597627210705854457671459107670689328112933520884362566796653255653573267342936371622108737380644118155927795298613583112906164979970649917757375183612135274226923874133048674472688521942337132337255696522054334632015052481036123273887031866498120263715949357940154667420036843067705445382081686441675530010705206836260033608594140897198152710843190565923408743409432975459492136823176363854015088032498083754941051283679009275392334152022380997960016557270323200041788558219382850188879669932077251472687433140330411088192029305676488748645593002736084031392969063391883549952187657199678903669968410882939151483858708709615683009525340641739819181134187927081449518077078820801016754604865670671206403015780275720140616516839000064915312206983208528224704048792699833275635280339673389622134232843480811250400419544511035494906002077916367822459029253360449039143683816498012215198091866618459173714181095972090470159297116790013199638034647700724458374930001969003201211898161073150099934567101799334923875015853668660472002094554712964771674344373702665384942737470613623612158384370822920919206219255692450668533246415286608164500004955131214737885253489003421343784583826799945274185174591507451755742430504349223365962065235452119220967672929820764419098669198941178093025093657617108581972036789663912580345094495408330819908211466733004425628374820546926009934178118048572621077317324291972605739033320358588001654782499027775689535504026275666370873712499866511355599335569496548157179724809501825022438987188842828809156622396986866899183265250797749831034781575454409266042534827457968944838736691413930116993290600343904341705321326276720394186187371861666991043764355841314345965524180920729415792322138164740678760364485508564681369822976293688519056919629382175578226389101028702153573761304146625621742923115564535096542681738450495582261570745829373680298977816768262237651203596145618942254063411559939176756693481828243918174075496487058253836293773669767721088797171483212174087753706208327939778701362529876287907675993226666711277484967531194296285066571799521268400619022584552194809038856134050585842502252195167683427306168238755381491135039109856053257953927726466465182746991924587369661277095666563271249492301824138527094920860469799077473665700704329899506565426461840804775753235548741366197163374300086898438501400768098470684027207140082522717332260690050134345133837996154931181862784369584394495399561230107204604056713900044882046194724444064913173862108960220636838616567620078210888015596149426008665851639561373232129615623756187893899608507229527964498810871446528093233727618496716409720200600442418268361173459638458091039444892317453305080882278616188497574511852371701526363804963706420993221670938344243224485226661887763134945646070036202323769371679946388774184195002561951704462556948301317119492065000041345962652013434311914014143435170348141974805847640527036312863963832588075428588912159397364726562588193631772159471681589195219786328097082473493941968548439839321388336461363888773895650409565735085948746966922793416681175707703885799273924791123628470438111595968009745597563749922018387556701078539040997056373926422888926038077891503093086623769124818870419683143387343645887835980319546760888624913604825718836666920175976006409270598864840561641485442606463825794513809507323965416312225805765091626891034584321453225792335807451919352746918016000896933052409097071061521234038783767248900735318669310722595504938879232350156901414835201250625474988748130536707150345419751730910942619196317505707753047926355043641738920926770598376294687282222564866257474200378593670598196954495324302562530619881711859443055902143023936829694983516569385269595862697220262987278180131721556747264275278442418200449419409625476425431290269502419895434100255706679438611668076354090753383079210358069941843386404233899883067656219357765763389833065703113569958500372408248089727517872261352217380916181286990649976126179602923167140414023873439619434757699940842694936384725474388936012431090700774093113350756643751355809031623811870423400550739231968875287324024815119570986668621865590540934705584433721455730997595510886847063153337673631564752704522919437485661685904338300577357882077880031686115516566496669512233582326088612378783216730160875687842128805007882237645022242717006422889767396686712825481195757372917814357617470881587010176317885009618933906007873921925746459077722229786423009015484366908026730482028150358399715742659019499916975480778378547944421123375135439707268321991200109791236046763797776470971021045509554514318535597031110735457899364000932530670089486839765110174446567956187090165176496450921185764662436288083480222857876656449290900075966247063787920608611792825198680201230245177571889395120214211692700152335545895974115113385858608291606985737113229226759821895355845929402618942947410392245799651367525033531295756437459869927114044503633433605535242370829117054687366554287815923802876799267932472157385413409171750777073356120001004114128767619874750612768158031139765033033246656166885934533973790315961954930132191204607293077888381580371273588971896842326447694254377837415114470871693363139469925914132516761082183644346619987824373489206567956408413053926650082329456667776277522565871028816403886239326682477691722427883626772312758286755667947134557273132379631374842927772343226804206305503936846749911549837840478498016162993510912334202031036701604990030859473054612834321589318054829579786440201306763736564304741886384320730361688249321942653339888075655719191291486934471690357696268887463720897704418748368041593800218641627825670537744559728898519485550090964825116132102411577146074984193824872767830643911526090441572177388994567390970252862014390126025367370943972908185360766438285918073728212118521120503402157216127135060220898958342231146782989993157167641165523019107197403709664333162361483985323040378713817405172225770219137208931406615234994061831008131954214172186425285109323085237207061117803056831408920381033257129849909765452424044999829573239397006839360970141922890249814827466905263724904178746610010645515929027323888162058872957326854645806731012663258665177440766410997124366028941604519470050889980609583960658888303476515332502388993580227735960608923375969086880833850702760346882491740347344444300002047117309043717709808765879262634532037296331730173374257189511009457387334764437552857202242762859831886370357126011711620749065595504408796438644868812567034854976201954671420173485816653996862206730758528278035257114181494705778608409328182245647358262098972409298787881452482085561936128710482154303478002117066185667034604073182305025197906725690851564950681927644640464276613915946176559289405339747421367340012862159981031887832320418863013976654043925469692056859643437438841873895179863567162885204888931106723791893803096393489867576163919139205005450017110114744621580519840843936198671279669735520649024423898534082232372479391429661794236139219643142567819279349642599546768728669596194666454604660447001920601021611589782074793981770043498358576153851474463819372486063608636272194206631314053869041270996082327504038193537432016129075521730412982171671926980246594968154720850472730035230092654129779110102777051814176090809412396976861122220563191331014969838260027927170691252160542257305309211087332139687098038482206981825555639595156525772752047858822191814961986775716030608141075158268925388906931187291257594042946399210827418665792183586085889432175850787513085024278721985486615699502135312692700796320677145635628307936941897249216531649616190809231575910038178977637202138413873797623319971781574150652442516439929501436360864973492860336954111696106398180981789498600339908294910689506522824074482890648716849282756942099797214808004463583910095878968426968283047574947609508604208250637002293048350449910973050731868542574250618557206253074901589695876562052830373373409374272768869473627159238207760897369289093412514007641642456568850629081300936949156301264663846356584781089067937462672090675658476674128367548649086169180863694339451065577621324207011207823480569848735309023802204412515240906381086686975492720071101326857683921014652364728755110741973049968748992368476472944440115097036004437959634672760799341673590235036246795708186418268278811436462696453078392054654264472130514204427241593203787823179069275896735419254619715252611547709259510824357726156205938009001209988396352920094120873084416622825615216461124767124763603479659337422206177954775578067621340104429008287248607309484257482322051403671734908202668527021011907314621557912987017631093160166051131962238097947168190985193148713486537995563151145112186991292251821919841956878496039504379531325191646117823693239907262430634578477038047510309708588748847667701930531168039856469242139110975553488552200819088812943417147318760735444345220643628703793072673426094308847848744053386304764187937192088703782764338822057720877030720828342645051813646671049683493639539848605842077153163806721224106886713150525944566799253611997796254577730554385588210905847035605559304681857756463854047805579853397564977295982062903345550526318030811377707406699054473974277085207983912787203350469051332036874802059082456146307095259954021260850868428131234534345900159491967042540181745793203468736602938924949653992536958394418782390816699263222425088219552520863830263574884912518945482322982638304434739219371248474286211186706486754015006099835387884042703745225340436385699719741956335224819365009892573839553423639461917655125260904607944314926963009280827227505544419962061801030601029729982988103717841133126536642734378767767060842193922324208407137996148855258140825439715048115631663196563135323384900845045019209976105864396544582191010952941237005138385279354069478624222569748327519918517820897645042896205175508138234876605400833733645909608839755611925951602943400475329757311356901137456091670887771743405680602657847232875437293222057999517120825855463371778079933822084159200141427725362999021573852902607692577490445800570516903528283415627284071058289597847486554781741095805056304721578576101580714495909742209691249169266204797156848660421997666384726019227705727851594724342844314824118222595519491001264958624442400862753223042342357803608377036942617095809695729963746548424301041605995006542048465536553957861973951883440945897335635673947083049007569427944026440052968569334831751924572700985989750522498905300125048216036407455238242235173557241168049467459418503518715582860936301891767856811322393788269961188446428013979817346530425906092035475695797210564270544793318267625793612993325981953393143400670402090349015878666914199106909682058439939962951210050893667319863065966719995749335764562374896449978228814007880229872441020676822215918634088463930268682514290442743940210237424811469293277734217478280042445535171282614328449801715106500605065293105727659471663416159009943836739508046438762367320256956737925370233028177605035556161481331263974600041774163881568778398198036330696839928890561682710197364017155476456502649066570248381362355833492852967657908972343301966354163676360742438736899392920546914778927386326388194224911056629963549822256721513464458157893918927870183431843113167792162820505453517045866111270865793638210533572537139885912255856942306131263251287211353155609124424976769763221058440992425860507792840943712636737054059435595342898136823737182821967641525980856449542209154809077080868120552359570258940031182889852450507924151728596047516638178356009979568624442207865025639998703185938672741709760804754089409103045885645513280357463597327236088371745701688117795035424764687673979589600560894858412135870379513050681184345106458744605564677271624576265621200586481976424162680348078151351370119480146005846951256573275100914093471286427242020369019691936105683335772761248389918433847013195438582983970403211729246787638899659827797923380241842572804824320356848832416493060914313287121365378066610867105622957341349565888066437076532465776898207294485458227469091796941981412050022640426534717510815407343619669340847597316747683203727523957190728196533061844318901588430009630359185224064449414713738053958750194300318957404210969547664226733130111244203898122011174504455157368994887722695144083779828636084122574400760485040664559690559205176672305632278922241919470103883586511532204410061541035908930035715895774662969069956951566195362415856084882680564728754523364911634117884463518403555356075194259839203173011949285918643211938943766038431082279468285528836020390296729560820929403716494494257311902207250260597037548206103198493287056979668050450540694360319510250947348943228389456866169761977456710042534274220034221427518056703994064878276620893813357086868763492158200935502568013066819236972308145991192869014779131276928315205501859850905604015497373809383000355396982777719146045159316515351796533082448985483355825976825272585009824357659938764605144941603249517946395538196680468687468012654091097708909079425267625840146012721677980325860102670434618020204409953209386278295660630600487033455377000144089875021448606521303007150449974486233954669738484622470858997713156879472066476883453743149141637759096025261165068811966932643757170036312914747063896427766228376879835807935912141766555684336156205821835585195886970175605356649483145842169414513857427310533759654379220325938197926824236904335472649170999899877877984717319568023798662788217756670513418293429713913446657674384650093042279262724687978746805345462704115783304259232244658456141080020237326946123392244429056764670923021095583512121063663014640949879634753683397781325104802897556013249613195033012807391343731493321117487713106266009126495052652799648616198537629199539875734824262869878068365546019544723671876917244545458105015076649752932745988133001040221893576975921294945763364472573669201669229976268017767689858986782679859041746417932166341415334813240955951233408503991813695044414375611599849673644430448991678800163031306013037394064155894750530546406883319848227939933629982811115479030375460203364941384289082627236879539247210014089396339851495774066912954820090804544373620051514696666268612798101878244033253569933431719439802949060215477429889388824003978367502283150684913762390136872888259971212236014013582365731727381457296701524011194518611996602027500894092999625657129719280461195567969731961800629543533452189420341793886568623747911148134577119773765303071965215915498406357303240070345662181358423430053455459839225561988339195620882920300523082676074946880163059739143690989994405965267922327318125589429474866384295870407452472989493265748008225523753429191271724371211052632074820511105301798413915609139950400705618876082781313554953945840014717704313088706747933815230107551737223379255397741510187042240901201299325542065471272723403872961629586116607343223334888291148477451090673167206530999813176041993078141162194690809684967761552101607710349169616071626453406278342073737087254601039065401967360886597715734420741523579700919855570677999521923916888772610355247974967805022650099097801000773175920367433294720161823029709251661724528557757801534493811937072685492604664281108697380897896943562341510361738882448762287613081747304613529867333278902055300484485256094356258739759665777022545974760894403759800173396193709520603106773833455344062252596112107509207285049978205211550584438358546554773721498559474412289784199505120381430359493185285836114373715484265469596908140073439889596896872179360102048462479453307292570914890940961447142607275260283386219475428766160575532518390655123847837391596913540194552696705628148024524704093019362924019329805607957447312370249580810717186663922190001076801556291983678210769519992427656941071015006020507835298424432939327147542552242147163667329524164528870843132018799933436632829820940316324098983452717643998818472381337934022891549144936053310848551468637913136035724033234610769289063187366904695565212165326117866111890032740146823034569803343260491404648872458101837168248836570221086778232023529898011577430737589095903164937627963275488707149484893992290717082355334965799103789997458868315316549093191465196556306528347621134782674440012071616439546905720194530977953899511039854124119129006640842879106037883083011040580220338941631427451082607945060964633162764059221873937529253782192610444515902342928086265507398593104544896933741970849475632906752981277741588230390602839499538908878352055545649521973677695871491141278321066910924998148256525856853334719048893169134515942457130530767518826335073990067711509793750764136640093687193971519540972502598359418114402064021880190970366163533325595720647689815146951203585686491781538869685846121976738579724419028586634845206943390316011945074615564532470285429774402176671883248503983599216501872297353362764252430198190578597671333582375582422021852089323334955818862479787264783905215445306180371686374303941982858154881221121131487178599822270403406780372306485663382644497275517347583844040672358996751201173915279160345743304167768536408002980188877572523503717970969006704505939483323488693679065094775998005828675422878711989324710584454675705750279507604517266390646832062544060992895544554260118154562907098697911442990353767064587241439433665138856119027811760612451072866448829139148798584729303304126570261149178522472193009310507523621737025357258546675672124859649040265695947659777616310596773548375771935508598901163270296717795451981865320417863161096594321842682795350425906059912967460985637736743138516763746487874978882282959479813152710093570428707163838146381509760858785470416696178460584545549147814781768484668673600665788288175949013409400434744553385728789285109785045587015067449845848182514611716071103938742458434356712046413577176826046030957580250643214643846947256923584523564964865216927507828984528512024835512694147439999430636687411023478911297078565312365035915114956421303664700212069848588451958757112596354695628901702068795690610423826030142259064823815844006240254246579602250376528152403079217267744154208473695662261355155204785103392493890701785023608742539707518751617499349025981378717571091401072207828699977786948316068807654948548150099716829715191832328627345010644131591667535254905913662903560616840559291794611221700647752165870745490478171140225557912996240468409037753477048876363903323292562384071386787295271134011387077135582925424239877924722810722293177864891058043327884704654994103326864529687341340827929318875081294805893710388164652019197782898723352382361620685836092316225621059236020164119062988768644352623367286692028829474707197502742769361231491131700402171873833654675937650896260795899038295244895745716877755269368873641110221742642004384666446431088428411682229007814772724169451941329044862763570777171219622347137360892200488451341512545150052919146230958593290211109880263982825610069045602621880927520023228230716943480035329027748145523163189395434177395634139689874164717321310142860293360903712671433683106001049994378392693797292175232041704089878156775328058559680130229962168933510253473329673314862533511965827785632547731080973306165221471013386798274591764272935985782491803387472451734830284487740493652372606373847324137231145870321572574804274449852867363535695334585997211470558892114059282885270628413168724699758325033626856648214273472153707232132714041404603673016320444592547608772235415372306301321472092012708417084129375305524284823198764359181816164757622976562055558090176533675900922926143019615241796881638579830184379281610394834766234418921435973320948509180175638367518258688851598533478990295027119340992389767804095648655774201558624373290411776031831146003203861324128897619689012326061749398999400917843176768159762256706294926650859375005624235452859212237757608435379417256763644437571034947424999090895950536068145930313599211413090546169223398013622721916198713919001534460729941730243510342746279559260980479828201683088953892118011528561001435166667190782625175079044693791839171992775864426365773005201604230635995202920560733126717345445654244725692119027222179156411638923121653238842025059903376343032325503143713476274247320818637754305380250898268199381170935449082537672083354634244589750316051072997528437736539656084340352260199829767088805751800703680005683640132206375578174199047411582612233537279898529172607590117062494536626686449258020649388557223577295801465510253700287411124337205332769536726516252883387271553187864483338215473501885448317858709571604113598530216720081992398978800754024853863636729243152300831095525238453830386759860144656370732049652286985465688469143462749696839760102036646693340103791605988834882376157280079320904608992758983264335921385016166837360331095760871937635906650476024480766190998111431674111694515358667417070167004505876586288523039015622501523581070941767684664161513521507002246107322700229704577035093940048165163918566176633102702252128239690879710463663875795160914568033876742489016625236462041855234365969242072629377819506342853071464478212328073208871267802552117683575826287576336695106480803081399083861286796228573441713894997359943599148177847293204408549543489845952274689433455956927648022989068693466045665336402145981054855491325418505153165740913204630591537967920216984044029742046736642835683197705752422329783462140662633338985149055854242053735840572190780265149077714939329688949485172319350971853746923979151575994219577018912360099026464519749366584981104126348779897156966163838049331143053605661106009169912724516492337119242690932502977517300450602225292958367029624830455227478919415769765554830986975222392857511125255220856008782161573960558822204266539501453510380869069306316243934446529201819676928683372725387560313841799947600269643089937776668730302068718225244463335994495666810186525597945970196988717013782427970079541094874802131481690077783745217889081381850898315409219281662980744231001597742922479601875924124330821203905580041663348406566960971400889317680983431286176844941868061993017847581130606340557392502031795947161857376200624637138503611067264300596344559968443124174171153369240692263743752613108266724714923913798032853598594002842938955381430871471523298335842139287630563970470691829647284773062982044763919285974954980184262347451453661946275633142729885630684060365695429351991063234210300458294203173721183492441846245869643075682408012142320736266568048306010161486221907031455970690811839955461298537801242595308780684612814285398600338185715596728426053084248597960493372752942262422616127536490735436987230367760662133982711308653903522039792886519411638538186198870448623134033298770494409612165996081585522051670711803360555183435831843940400154018453212845352000512625805320895530551919961561493323814053964618278202040506826032496737168397645875229826277518980516546835024867620243058949365832791731496211794037219870494480663890248807976288193692686631493343932949590727586328188944758786043130633103571535687690285638791730321083480536136750368990704617472631678510558583458617399632210861815075388374799026270117493763934977602720518580587702377539453009102509425987215169957221133848315943649516058288346758306095948423882516107790186333696170235809056291853033273659067851114326037363149040718284398046184863588010354565143271469983866532836560890887311896222717182589308871809578955076474767924329887855349498643016079480266528048067470816586371950936876453361451573430531128265494075601467926136416420226687800902649850993789632574323411142873727470294133804692365869448245579640238479293844424558129556569343091194262983639111699438000598249852339702034302530223723625272460436303325886162102781301797420994041116137411646823714026865554943381488887397372952022415695949031283105598876700902944841103536884585195331055453231247002629759560383315092491238660713977883461843262151613204084931170603352316405029827010264043127762271345024174969119357162534895699120365035507824768044036437189389253900626475643312163532779922774327901932211157154655003327110365810474965106979045025433805769989091934306520727347615379423284964920838698700657018459417088926484035150561687557443157663066009907287119476252082608871421617337153804385208458034821967502476648053632946746045113788191944866960838330977278271512087397856278590526150209062075703781060088227954711708304177747179741756345147054595184083714938693964077960062729122073136183315656028989940670101574079125895388399469616345310288722294885548740252076906612393556423016988263668042409341675084532541259489983063713842081757762544380920867494249029696188284251365101634894012251892337338745714484578437296796105945946154743421810499007381085586030269843104806283172104455265562447067923986421409824992248221055246153847184277342631265777323446280766559824977921384625028931584582268852152180990105345097592616680222202051713355405133527873076272022017500736944254225261960614755174323250649484803151379888854736220023961455976818933771545675096624858408043363508869324474611004328658545472345163587459582473443752438071544486762543673349991413907818348716226143552732891692029173721083457841705888328789824617141941929380857071495747174444760587045223328492658254749662313123552811142597588126664053845440830544735768519744564246319484890864902525460916769919855615741898753811232859874037748499338410785948850990735134962800600955676131040088195737016889975128368683286192968616863806800161635486289718874798445269022104323914607145144247315385689135915923675738558413723301509998382509910828591923222702164065262256726810922011137489328177924633843748491829634615584676735882456786378909194920923110482993952317583379000679269339201904956078260312295007175880991842194393832699919435115833832001339383968664822037948744799616027729110864532722004504084518789546822000206869377857849546876964598389971217374508320516067461143347479807616069428752637262887796261233149673837641467982324286013626550084119350094579829899731760210439118625113752731935853027882687474175603248272748505975818121764866761403218190168139427590223855452011394769668207121497837102326766318187254290922659721422483283898703840387456383890482391018249943420505563298569376638365794499893891205103677805988165735593922135305176324856804374983838961031182158741459915552064365684574613035073127012160517724459123318617048591940241392601908032092892740406641809346152735572603945279779306606140069176949785976049375261952228351328022350372796253299716431245443439991826231427378692821882769012008791288958655711731581235016716685144421990126634562367244812759011641136537637768314084536221911543743460677913582915226104353134058290487683390340896550688853166609659049031979490327363932580937692671622008448148798238791921201240581838615153111450229505881577518597918574050492989229316930788089566228919833315323473406952635076716767453745960675891922860471812304237533802514021924162640374362205125269388493794277049056729244326075500691639732355596532418526719388284601422297050361861600207615671519803272464625334731137365861450401714080831554011766244765907193591794138904574459519192034113684146417863202488585175874820852442051887067991309116140212589669940085592720417874301745339692476674756508451241621516148105367732752485791368627912062012206296243506033505921876109715260194581800147493127034622925454802073007400658729700101682958511619991243319481421462311651256806124871012863556802171805650479466660823538296560859676549166130762971572746333859609965228311226302971903146283563721439694912721942559207557620224028724915243651243388737921401973293934652756495645089440412848395002844340573748792013863385625402397389528685396420482598405525690526837286539984053118573514746514856255236850803570899334157312285243286308042912108122360510500948415261089456868293692937139537945686310081931746940929934704922781187899619254025111206894725099571473365210759302117415920114724534593094132248268366069699025749403184914539073203582525244063381835462979389233928526116371127791166048209611001159709478895117788227122992075572620057211882571044970553353910937476832831945404155442481140462010413953516160757144601988022949203620247549984528863023111099323551598134512372238776381080964355029298621097446839796692308946020775313357988074880299414425068939946364025767590769123152436281497146744476725325101281892050169393711132741860862910487949188964435511610939190247907569932251613939738400948043337331178377831415089802176407124141463676443867879534592975648047117488024629991806184399160112042610571418371689549799484203689022381934791110053130700212197991159857379810783410304294776520299916561018130754565746094530549770434605042410185885688695680129719097173154584145972818492419195856666571928448805875493481602300222614711514674780274226617055947010737173731225966820758492772556607593592260180809856249629873622985429744376514782538756739181700544287781369194351054023289886328667541995647686617328292367364287422776045336425672488767618789181026460301075561069008367796645014175248453848757875740531777515927870690729283913278235852755917165517953938594048950318696282231150411966516282126089923619799576956632930653740667105482736912789099465367714077749267029851154654540720123270009805829786119636098426277021213200959973722467101553649325561933288343134263937737492304866636244908553407600292668060932574078125058546655723460706984056970294315146996760439332871865184559961144824849212126067310656420331827579764850906994804164459334092408408555820577811814844508444602821590279716946694377865658053388672245048001736908913509846233840557392081650615397045769668295632470814496745720604366887552980139216806387784453223007292072529216787969976046240858691973194275194969457216157450959636486930187034333375109923218863951497904064340063574470433909650374052657542899217882598356034182208847613418688625068930368576635406835345223691199391244819858638768984978489078779580899239579633977115930829346817274788232190024113572625513520310478123054408665883635901654511294717544948493907859640271740490391232140490218446368204437778229657588295393497780296402876754048276109796242325584516459065895148723961349392504594868498385043740879983721714366100598602486257083177691479811692498323106104462381292968007983055293958166448153523230500458713035551988089212508879876040539836356273629056497178122410023544879397699992407232618088542641271620799234538858523602090915197510087285270256581821113704240241643517475731935366451637676858196681447125580531926556421165156479241511347871394174753387845722640024444587770697526496905863977492326513369198229374645691585849929089463404780421485531888668427691337402361042017802880958040997347233205905189786091191133563726738762687662264185734492315075508298262204845775617503994351706236188431156582801606360448428763895318781390474989021566977281837366398156699264915742055968544066659594602728409345994339039876678627871460867337239405830852491196428849069057414781027362886269552622549285475512036946034539340677462654261979597790408274902626490846611953898339450545851789915291698986741838894450293296080759308246460838643989587460282992954232238963430770743534597416895820441606340350092295124529476370080376739591201761066050815408434167647204079469682852976370474465925615554946717988336996464507123289192237482228880478135082921388278868912367533523037171919034799410808950886749695811414873104745704747473158921151242992466095386386782618338866812137401553636680133391224259651057879358945112176815378142168557555033302235059695275258160057746640718637742236801068738430640354691071896804728059478872222811508221042413167993910693201234003371388712032048669893536305097129810717037103935667072277740220203737380530736324656831871782401723772380228539129109852815436325831039723441171550489926696937404976351188394102451970901368296998479588392601712066898408387899557158852202144826501528907462965650576789267390840986893673049605210499998966290366968544284164786458850869502594320825870257869686629212418684152429372628517945688205365623767598330254224174644516090058005525757850574962202565184150158487193947241312185325890505595862433651849253725408609774967499316932664373746728258209177784928885633969268368252006075151091484432732695959477971449030587873596204012216811580935299249786607435652663103962262088441843347874767342555992249026540243121276557182000445591535706123019272370774964354556247175293690932870161087013163557698544194240184719899855383052846211637544994358623977627508520496553181341794491961741854389724213507577781454252707830673062711422329876989364149622765276787452332829428009227317994798049303562714372110424566451003709468253251731159696651522280868699813438911769314367217916997780033246499363582176751440125621327764706334609371043565741361766005057137771711356843220834891885625445715276738633014688943816082502627336539659955799233337184467001297107936642730216141130183948192753524147626644000909439878593703171112958515305335592842266511072520479782357049143722258898305359392586015525672164297872783663404644187133426891499351320094634434070764450315979111778968075234349208647909871902231300428337984158435975644340734734834965552520675137655799507588940624134890816175071378447135145591336336563719988805031853216360930115698097549228095608062489943413142958005006188979082850233259711352522109731266418798765394755403438025249466117304768975112952958141587421693236278444725007158376660928992528419436005632455786174722851392139499880363196809288132812600701029854830085156582553068189379936103778160547579267805169889014374129448556960824020539321896108604677650720689048034778241995855736269062140225440512671315106628335814690210656521563448798319051808674162908230460401519003436963314812943088241625447585660190105757559386602151147373244234997238354255626800200776819420756272488388135944576816327428161135069192459513382136092272663411766616222283488800028552377226570302953826509272376230339868801558694604718931852233297064294646031832615095938007840159287781131703345428870704492954978875825894409423508869477001152882878415419302649606133478435169143817331029972291953997305704499312482347512337126365973765278509309050597240521588638749072359483776700210153839994608522866376711690579857263853386673286403439113477946763586435073659466732289206978670466045160113381792056118746832304454699518794616289109391479024332528673296426253627727122953433737851428966505815616694266792653583533006554802835623992425694363494495257502366834719087103562649116890642598225048010800565461865338756492916635773489626621657514685261720610004954564732478287622141808715264207692648673025331042584969789516149016698744934175496888125578458828023360527043261680685458359708430073129397662570567581398155512947867706496506718987353955967675845065451735023083767940432917047072346245192080082981416236959862953195746226123449250929149720455710695773118364330098700291454819240540370967646923311416937383679174717737746537723912345019809801977289654279791355527484239013026935302444124648003573611311021227956898474671181949679607436422534773148841165647024679277336223815069708109714440312426472011515629725773944646597823800562877069329613956306323099739497601491680587074838097200024284771527090161113725186683690847428131226893209561114334319360707087125516963185620710245465152340140570845403067653377995836045055205171635385437291962522917777693961648315804011272346554961122778430756072342756526899511721669870097240741358319513176917595262657499019040430680965618370003147908774459117356322606609736802768707958539206981534023002937473237829310669310059700852887517065475157497782955809770069285220613588551743886951017417062390832511194895294392423940970464945610083671098472061625312905625481493969849087333317604436565793117432716445492472950799792679730921672114763221489528786044989404733017096256633219973109520898221825080122280192635096811109495202201228395761425647258483993566001096802891022640294798489268983528685301140576476294902611335136654807092616638236633452628907329630029236124642237285268063256038015140437389827039575363980689746879104774323705993873375889602520128706965680474018969240805082597876639239948194916536584346288629777791346460826940394939683478081556001119209773482908797076389420578132517356766071268403323816440407735751724526778737113540334142043953764371111575324939567753708001380702565450441044868093652567937868109974263154312184792435370604820747034046477725856604820980723745427949019416821521285324820990647572509447130896719476160686787516199521703137202987435129459657276792146591088837900783183933244663885426041451156955523480612685355847495470169584390649928148410808067782690210745904577158909149398247419605270898060236312231985388123468123443389321108849107708582612783660773271834168190085414182218242026387590167613708948536330994056463878894243986023450520658926864113504262925081194474669712269859930738369729193505474203735517982471293679244641902995093779584422827074042094388846213673189556641779613513570904415007886086111287227541805563991772890050320230401284692883720957358658491118408863718997675086689063907135358155286880363498237937089929067853507470275366963933570353488921927752964392335280177162344964968003323671459180494299701508102126564837890963146573044971632218128471424433794768854643905773988442725223859318640595379746696385758486836084502288402930354722893783027472166448727990933456733112374522848850044869735625643011238511149901307043815990487401264896804881988241196343622649667612644202410201590835937375404408015110287513976045659054087832558923805240943752424515636574005772809882382649108042167280172715068518870631757802643922884381784411789876094354899994835136228460857493600191399955140649070490162612419664734510557238123478219958158135862568200018372006284647364498890855934309839121347828883142302569502933386818857271624695773781921509305187168969687074805605125804713188761539871640636544095471514175967947857939831167219712175366396877587071260586570278294233580390051518397453515151805048916405101311103073905282877973838738467985239406552191279569237264619296234923795410378677965756828693035654776739234864575115806858667926395298176584657522747755317721375401882011479836654875343964919154114602867407950852293916814645147276144958840561599517025369850623576932632115222033659865886142636413351304180647536243833609937117554051304013443816017987170705982241551608414262699364380352244867127341210162637190106926510708745086016265970380005464346190829919560350678410840927469086940527165334330633468746920576054291414441468208094764900411916296979831117214662247597162669902039873141473892631429353396199351556710570259084128202879528081740382525936114149539662233700148824826906374490536143738684290825202883192899202249536113492740737979455681829339730108193748149781814838635890275688054839393404256681398860757958901277737439630125386348164782750158420372340558539885724813237931477624469273013810809856805700365482739735743286758144006490806111633288455511887176023392648786789301297833509303041462797138946785241871522237308354185232050885785183784051757723544781122498810397616551877470103406193803754321776623946270479490084935157141573863685807782277113180964163251336547543138467808914741280235632574077937654369713654904297852203629628110541728556476515590773418595874737485189911723805968218090445153360086101070978147076135179693476251363990465024357860946688882648441430772542876261862140473406600321392622976119922571913399492699460831570152960212051021770672265861385776616338196323145861850341408784900784072501179830339363707952701278351034978635512902726481305676698389546043256922251531551851521064049261191255317693699718503768149056616265071598129865304893977554822215388093096617889945879959388941789832773370171744208356472952932883468673530518217944591507782497811941540317254043420468984144231350811258750915958291047514911788661708928789801538839029234297660084938383656550530881273922571647374992078386689363686596748291052011545381612516994786220267678978371528262381645260517888739331748535879632856015295079380805693878784007706079852063249800086411323727723107408430653280289729983741477964147643618437691904881038423519883936691217961520098114526607484675395797483074282171699898326425585840516547302265544278678631375697866775029719339854960672303950734601085720335015580789121104539344715198565172189565499632463374045175223599966225834057486328197712094182295928562519389086700986393959438797419623840536450722988638330491891629972490804417475209895142794205154690817912229337004461773503638695033120437522588527976545773856257782511582984949730941860024246485162271780542364301088864357364453395431785968993833528081520436199481964180997025513451886612143162540307032289358138625601476376172133070250862501764041818513025722880366404125544331650631823158624215339664950880754129655864076739863027298297467915845907634770432851421351224061053150921065907758336698750178722058003094025459704126667877675510556327663856246356793081696100745000111935929725770245140574156187790936146143708401127684945048029754270644633800702858655102112967523861646311313716379697522460962698170850177234520714465633843090731807024976333904686257223304862783611583203679932170956522929920800757282722737547316467332921170797304914820540580198483073957673591198077625637780538552032348825582767420649154943090445150268381098799991297324259765693366358372867224566889931430153555121662374569554543522525342144881665555332708243733115817762847788141743566535344220359603338911190598608157987388148810080109839297559062729759172161898593511929120799832741937575937800039344814769820629089342573841161423415754173971826294163226017975452013543098126858438600023277576710493383446182254746779200639830377110000218077170383624407515108027411313160586218823664127590672079348677504984374597120154340862396619863480516832700902747561238892315108059815654781920456736015946160808895120330008404218895941686540122633809363092455230436449356570008009062762648977688399691100334593357646082965593792616636591647197575917224026550897974751134478343354797322242519365169989207828217362543639517364949888116858552480186911169914995800717285365766967302503703889355281080775102314722423814032253191788187132159611235057096194466428305547227587843188339830169837713399154866888243827818742452164449241798044835312157803936768801503488071823350238079202100244064220532047044573039082659758972987899340465973164964447217168139580959195000620854693855003914131540232026441174892911671598380252308506810133105273653406360030201397303401773619186465118862620714959116481597233401625856202409942437998193355615598392633346502227629102466387031261200582192164878847359720013931514039085789783255533870797637042799092837101404384114470021486523547624554086831276706496963575985100425488848615344043251415183073539698484361984015474885867111472485419665717505915683203104322511938651689724524920952121318655562330243105115709795425027065618304741702603076677061321580269293705484609903406891964625151142926001810529913362934256058946609390925834696487840671384254361025936989236026409713214390230009444699995591655144096286353015307674880751935200501589327758655094288358671026899234076251829224644342129060180711416962170550817846535615500098799433171692465810291546395497144698590348180504090983095841848159327047141727419672740306665882726011689147748879320890179660331380231856173367469739558248963125102876776586005354788887091899885186922140055832500293156562935982232279066361166668334118987009475134459745478273317772389033049537321712956709932206134726579130567170156332727221548064677109285810808873768376343041641215713478215018495679633257696280022134900753064399762396192149163629779756129909452782551272195633312187389196402199551619991295655203758927402972936296510227491134296778021949915601127685474482869524111557497125715608887781373057952657460662855099180779308156990142691886572096084495669630096975643690451897413763168377588501979146474973803156465343039378036831333575467940441348143940158251897809837926633784313951637540283436782822154532664498695797710680388375169375837957076777553172986186399189784522167219086812783276222521764953772808537210994098580913373050073095469589746710227760332786706000783179785164688031416772510216932844411970220842354107036832585311894779429754675818495057844231687576992609601722147711058057688965069354455680574337615888294043060878252253476911453961902966367370336872896238520980058941203120424435999677787582005605998458333195515394190836643511540043862635654232793114587133244174855459369832277209754986327000750570736743026363525170517249213517362225210292722312038472324454392286713175857481069582146822390524573985029247829095720266938447560825272003514003649427710459891649313578820419784345507920944465813198965045452658554334446869268000995607440003634307581833510142718413386665080383225175360456551431568191575879413355966356503817520866292298712268451786289282668163899236140512468062755966415853052435298100629242407846381399215289900402558425925268583495005423967981827241440167605978873375857913197483344013681946300534218475450845202552785082312977452352761048176773757927352286582524819760693629611594225536618467780992305461577292180256243237916983435372140472197571936416498028000367552837421105454780880074590459789933776865520176984782434591979147622525360602827877343029401835347247893840279673568804215279515845832181758486817604500838491447297177817755743492401495494423427729627909155786924152906212584828751852624241406414886467680567439291286954706507373241336456377394352607718063036059098917682132518726001948976436909613351443293857239278718504694599156327663608852926751577959438264175762929527756544764291066620232446341035018527119159530130402229944508686732999030635397870437746313190049125124316697130939402843587654370810959882151609070772975766447426520281930171784073945940143912655664396231262142864557598357060521518711264038934824435061868871031030525012722738925520692051073517406419825027736514949726782794302433946410568377325482515205637678322659939383764311611990620719038092534792603386008943874359798167638200023708564100267433062672873501335646834319504977131411177985199448269758263620348180775100362802594710489795124462519217100912535170849323275466158572671821526079713217403672798779334879095193320362385400672239621798520222007524339580302585892850125223112743798328018482932280698882299907142768002587485365027122106317864406506477382558885419501799972950640843469710545050367249002019089648458396219590162891320813521835025781593180610312808362344275097371127623287789409814042972192721793357245201353373109168955072318223697359781529138275002896436124427664826139944366572250114818009805920573671766019190445040349259406935307396950126567006768467221500548224894528299930023779332712678098852766459197910709250112088057505164819047673733914898682909844332894870662498945176900725016424071134557755040328994377466877876948652452697918249125626700266126540195527341126082041094643865226412904294802320746306914017399524914864436068694751785822199056983530215563489020586192277804390935540681932568366998643900323283453629633325228434247692650977445787111526700237518076927639204990183992457621686449794572175677732712598568181656228865995444068835305082786848562612653417577514239472312830575852533199967426195562417742436483890669561663645454695452796666544448553307246140281351572018141789355119482692493357630043675178788878058739026634348268980195792857991706283228190072558495306336897314707139732229179612577163429189476669580030106684057913684328752048674374766811805832953682847462617847591448346662706242752446760852574664706555817909175598332853599344025900013978431208274462763517465691695688731320939172863130461201828424693570671303830477867009020937583961245192005106994977091711211895199384001298398839758579738999391680946526379617688454619593615501704186435399604714647125147933672830030667699262382005763414260228573513669475742582748386104702963727266991491821822479870366263920914633124797140649026531367313784163252559230835064499840938339178894208094608857643974238307630539804492644680054079226429038453242794472135554648357080646183140080892290541692336972269258833109252874888541764807432131287783138343696197915937383577369157663103657777299974485555007007105212239324721160434787418538133070460344044429562861690272406904289925459383861392507966177705685803502161332443624240398005126843860052840761212265730237344142705817875211172786263422286439270764966547555761395657524576920039260192618721069153758263895721154220010218318157025964986707524241028665863097208995231478705360714876926554766754801241846464168710243379552195269435255635296979094092922615408965656094923721592281829103367962811385394754018246993975010996185411931370724456009992066289405267648708664233004722633529355106816788400289825945464472767426502442014291043792845671009290604591534865548191184895854454890924063735042521488254508477199963461246670720232746682083498334739249987199837915553469926369149459128948938793795083466459778226644967412756061778262343009906094446004788051996746040640046240511556271841394062027580967697035895013307377416307426608666686183316100536948663393828395927897053448825505009526806948103896635552883218353709873049854733308834673235803515240439868471331201764179466254563212755187132349612730754156659358330031182326140955508130718163603248103028832904469686624272226443587082876825150618810262674895114324717332374496490841238629221785792566777128301539663117140147056541917059339016373733812261260101485341961848651033434579865287010996259492310369172054935664017289507834589331158611733872629350237585884066620998595100937420014486560895632685381923045437631204782056583258602240790768306247803211374512683862074617196688187838029314963075370302978652650031013683021543098901316707689222369237496949537647567301313245559687073481891978169474053672362700883534873122270239492767528512780528645485921216361791104402776959725003583120999202927224994059309587965704416168545681666892839022531497282671880203060812551651599383923763485220284888412636822977484309673463050180032244415862558898934316838850990925734900155365432439682053408747277838724812340223627568638372261884489513122753156596729605216594539701095399989712497073885178653798233263021720241719704208684120545222923169587292597959729008042612676616010839511333486500970930920519257860756589332906990089978336177507930525448235150312309688688436046299990479351220957364914239963967049315906274138708187535736553368676782064273915080200535000379615681619603223952614166031615707854227619931078622063117094741330200809334311413343083884836342205552575839172915468465904607964982356399444680715031553104899447072176007356900494106905480635960411701146186687359065840366284840878007656062038745002514222711452999399239809996148247045483060771697090423359827263043434788407856147693809679188840818835835645589029032688586833432365551839569169625926323048667492404171618773142490867849702159954732922123667933370806837259085140606882183130264178606901035276174719315137586182925168973372162905309904767598923631269926574206980764946341487855204794606793111470765542203860148593630811983320813684696526135680781189884110483935487980853078689261248617412548283882086446495945258366948852489275726780284664192227370638680443171986650076910187316410212291662752553271712632036282567904680115121460496258063788267802858067133780304385571557554896165404976903079720125838650336683936732247064853093527604823500514033675222125180954958290003282368931717263083859213403280789825698455132462753414905893876332076274651912548362326219424412475350054060441920885045120621682666252175033538118877656675916757973097223174685395909356609313822187289608737305236152640434960081141826636825840720595223339394794931378008359201008286025100095940235044653851820869834217267695596561492292685762558916620490268804892946765943254721101717571544995451350124223895770345755486330440386699643044873279521947938868207187377419442587231396650956805957691921925639193886618581563981859474144566320978852259411583377726963958629128236943273305648407898542637398181921848088335334065007151964691573861673109386046220229783503413281833190567092322461914593157223672064268936904412083647114631530075921555221755005059082123201689759693229803538558029946116646419606620506225892381788291730004756206835991074111666820469490377183042215090172136441295212525889810286603964221371763850885163406445210179201190509910108318377972677438617186206656804779541942843147581386618296198316210658241708631471055609275724517018354357082649569624167593403986056447096897673221287284162416297547633683506800581266526861749004348823773444191164110248934637266912801859646299847668888311060018718634698883371629905824732040526260401746643421345717545524001034369448251886336689843808554141858093313085774612121204128615165448869193235391839874493318268885650039707796495344525482592609697952995918870044852363685317966010136294510980273691016539964751645450105547396328895192605061581023978864965693319739321041858926904565184918492544372636118734609816209762573496094219956495774240033852730864917098737793741148012558793163104401729160672693692895202004401532591863703957435222667615879624967673361130566528426416454913505454923996421347675062921215344391673211996794746870464696669406483325000839967375856514609358388293733840152683566556094574015979849439178865293737631736223733032238634052171027413927414984874265738069482330728241755657308104376236270140373415565912575814005828965021059512017901922771312824670396822992393466163402106338676932128915467324081605162921956455419596954346647156126930531574845890777569464489933371520363679250780800368067668982611766292647219842994214191098760369971029477784203185213161653478452499015894701051631938342255193632758301533100799328708417644586398970660769547790488965941573160435950006188017375496669202371905041556937068977261480551001170877106534224615066287326229255568042054291754215970458185027253039530343588086887742288284769730107400320303040216767316083493887085914387560364921809084264329464575306532225997380039402546502491801321594444214019115608624361926388311786194887683552147536959684963816134323023403900007608020064964931632376781623490365060011366178253781492108001125820500197444941009110757837598051249996830204461396369173594569573504516204914903319550790726023578017547368479805164634144648844175290689392761235369681776899809003716321934855813957981675159174140686027518450311410225860705475479029389985777939235920858125578813785115263476930730600258305941627797387812841012627501715146050233845265033377618845106543755898024883387753879989218743220100818333400000995003654196272717130251772176759093709641064127012877970065212978487867685541354030068152612273749850150739969018737065877508032009330769407841271383878701611576468864197097395510438706137977212263470958326114123378336126109149189050035954790756388736928903836240240542327284455815393890742486565653770956909785547819835592465631387663074079866791189242025204043848408470480327443060037378473919470284662036187187946198025449813507020581054237679606501840008020108667589044495608598398252304512661578842683815655682071776624550412263991204083718494317413232809601618222614292677236469820954089934972489295812185567526290168512343770804268464173831622537313041981113315956224263063313184073893355299521486550469693855868306453561192550353548482203267121770913276507840186640577392783689820695778380116406421401548347228415699860524815952071537170585834329652080951166024005015128018140350040027253985926915158935597813043395002637791448720860193040121746365636547176835262728517480151652171252825909003347221992834818465994080922618202502827616876960971791290891906165261538265285408086619948989065819460804020155410232737896723682781531713896104485913170015903466935544355839569218165055499543904527595913819219960208108146637451731247892458636413047694546251219806492831794305670023400438448581165282731780711843033241043499734038345494156618697502196828298509442142870851030351526542896393586767887711179439510025170374983612566614123403985543134223712502473920111253122595285243395823949397840056062041089755452157838081533081134045579709434322066921456314999065776799711659722244256791516440720003883258028332033456225175031604252864475300078292392400717981842088940805788922972304426301161797245975454261694055036089299205284320734135987843422663236388681873485419721495841431975738467721675893499915783776918815475719290322848476088178804101135601460321752536374993346475898864006970897594471494268461032293396519783077656521816003167764116266583800060328498585165217348882408086414734878960796049513643512626146275395877002504891775607580701568627069986540699633876288067787132186475068652853761061939063811055926468264245363473491056433512439028448487289097724985444671568457171018458542091417971881419527138601630802437498779068213029877784535557211946528361239093093794452380719990351144885553959933733031535054419512843756561495302724423189941590692843353400362823599662894098909518604210555247923947829556747855503333946372133904042031516964737767506960241744414947189465029455833539468781342060400573590728181453917189394664598693872390622944141768334004371956145043079557552871087928914838089035955988308127455761635659648992859021172085515626780648517042899568284458431287615227785362598436050327302164137221136472739095801329502044998255833497424712752719613418304776020226371711861915639730064235967115778682406867754773331240043467128016969625834477121096212063919477670861741395272766752795915768700555139533639968379239105530199406749536425098407814716926860433424775363317647255120191254387781658024074328622565376721875535539289741119277520851932014609312135383592140825951428206172639893397658025500579053215365888036682615462419510725649447551632155312579958616515614235900787653726415300413977461021398162497591030795273878552662143884376449075815932194168630287393228888833414369930188228219064419538510885554152222091124667439351212812406212403988959132489355707290656665563230980455780292214216614291592983236918220152435101072139334744094661713165985738573417831136922635400972469399808553871533529124428533746941772116546917318484810336852744516941050503667932379317377935686167215435323774631998977030941643711018538036778788872194419789547655970375113607949004774198481263304534084424415260926209996098614235406648829100291350657870273890698752474649922469377704857246796348413784632718759175033570116652508053248722301585822863662069717362827587112156002560048192941146561267696926419216715063245713025555760088483913925461354236013145518374225006262820366148067273011435569468781040865518418110520423574012541783597456483451109177525062008570872407192639873306461082757236519417476879549904295269379374877532276213315144551061006363665814228270288114951360076729581178852864119387435575898841513333060820215662029690007701652349510883144014931966226094874147988485292229889285505204264891557676337091321745870943765417484300232600032774997323156761219520723855389458311008332990791492341572824368008971713689002131968219574763169117356292924376284528370307976825201923078333741563907864895771174914459280999934657199206221570656877053005346527379201629214359225737125428269837155446965566367391646272034792592379608973805409185728230186356648197688853237306329433565333376931740547763320276270759524650333280811303419491857243164250440044212350307453574909064887799823980429874871134935213347343989603674867061758746654135859172845621210477894382005884468466389225339626321062271032923670573936826967040275790587606436660191045108822542542970547712385575602787040988338948682659763840590967348324208383208383277681340588060318833772045719253954018421181738552142704716310312886822889055081311069494322380851456772650877746928813254113809653806537587930539902797107896539124980752693237256878513465731728812184671795114967931380281076466987833255161361947864038573910182302822366370254277983250138217448851204756047078426700925989449635894181686655851136324276208888663562983978328362101589961226721011985599474312103626678638514626335223125169735952909213609419853809280619150066191994547063826407097208729582955792519161122748514119422647203752602998335065695469283740445130787235355869936074437916267768574414577909715412276095938465348598803438088597879206070949379229807916948538443073407218788563139636825582590328583950104293818714926202741679583658779618615497664332009257344117149913241331804888750168578732987395895107128201564784933548041995490817765304955351090361463842320577895275874112356072416947267861541590652999458150812544689717021168691312414391493993916412263773508226162783145574556701725108607808001725754895516911671691548248420665009325446461354463221841852462292618299683702001624770676109955458074657287503431189237169872585944365147443991990669367003929184572165432026481508602318043858179742009967463864977690328983662127624822853260230372793570754486842761830479762153135487638786309326927635808758572454924386099997948573964133412969856753892724631283549344987727594437792730329261990585378346563932715367310012353579639237324097916824139884239381180851035911120425875504890606200074447558392766523824675627977509992035251144308294548357225413733125376156144596384222870606806594645398315132405170609242683961754337550620437633567513826466773349493358870971823585809949305386754549608274127468844753806335688873566191222429926320394742095545908387242178943892181873537266076691877529655721558070990765027492922696575922294982306369940526600674846313708902299762303310693056718041359627225421728485908214436651919310571613447732582731447072040929448089928999837940494370793832740436374491556221768284375330097258784865687812483773579685890232701881395462477958651805497510627419332142855361504120776169603010889776452098362314819252569385056041262488638236185279971580562588183473096161839992908350335693308672566871112234018672654016187762449904228750239423822953892414095053193058415394106661631434549302881750831561601184328403024493070965622549974744994310518688959464809054244811735141210092697222549264073966128452621125267688561478604559935934903602572631203431465431818562307798111734683115823186805619262571387048150750623702005274459342272002023063850065400094180758162622710788730811757999455961459172544832952533303249007518804584121020967891331732512857965533268488221741089025034705143981917900891998382129100607523899741739239377256507145338804084333586587683650008342113628416253212921380912032709335788133728088155392753031992904602998069685925424001097196352721461834699330679028283214338021609506902118019590198819811063202120208897094831661721519102499877455395185027811095740997735616286534679123475260102854315189707552055735034340044918906845659584463260806721440010884926493461880040991999068715381500145860953059650352808644641390392425975744149892787305486601594858800109639675785671052411928339112508193656693171325336241168205191070478022715558205567310425460716712496947235577431212738503481440310198033947884099365458824523194721272426474605740868897036333151885798474910399658651765453201610597730705005857124196079965746144398643733573555107617373354226974286305066367356319328772085722579454048973929654372142063248709907102021808159666767905736180649598320339865464848834344678368524484976360319608224603720626596025889151939918194337771545104761507046130033546640309466927653635002704962204458838710766570155894632808517182742709403789098043607174413298931724721047204470370910011087492966099550898525873045964716477366067605621509305533389061780490964125485469253506720566974822627437636930159011019956008448187473979832729861496644257081739009547584471906518446965747655876928571672250507012872963192763826550651257371499774281651225304465490561804456288095096317361847227153538961552967203065324935011425097284278828825297953685881387061819530386080309934320099191176211671063305371388948220113842486073619202563922610583375499365988604960104691378647134216829010189254209977454198096080416442564212459523438048050105614863629634296170312925540636111816796175218343847039631654071710586913669301718031556830376888841895560099059416196042535456676560308128849091255784623649079598843624763839239405261466756129301141992574022818184355890555744289418247176777168689806623099155933584623722311700478318430263295685312252350932791730837318229322476668398738266988319432392279410832148091190193926310103586032749726481675953826155659633819722501279573108044517984958904315016745791349090540402460919674230938809984708817267375366142263611418082702756523208101320318452034449862051889567363500871836655845000141915093330783054878670708446451014261804242364839614611477961253285508463099548694995778659120015403688684362779955412891396386848264932433603392151988610496088565245304690775417908151686291208206078704574423801811070432315672041838255372391523844129903835110042953466796237937599249534996113779628112600737542808379288418075012870995266788393171298674379034765284647934514212990211363118454438702007805718735111226049190784942134827287601994924766078284391408805572806651334298148618013909235939560149582171829206933357450773975340335892405162672314641057458020571782152757686517598948123459449492329554153446423858462189282343618781638688914491529752490776366782336188397913590068563129027263965668761085758070763165336465273809946359425423053395609070332390127862610214900269160805756329333818520777142120152735645987578161412445953291968263710576749760437324879578212166599027460694363536252812848941157906303469305954832897388187749868324918545841229541815315938439369914153459381324449496877806128556606043773233640126668394165417268595654644964349436352730673857964126974324047415830346970195589562799701897827435736912299607729937846920025256400474648766495305025567989424578107922922864739838495446998439432002755304744391161655077301974117343202876395236745639534754452104120338641259427058974127039858655123393799942905575281402086329938272809760720982165246463531162761340533013023845637448695275406110149210068918964537910406067001674710658524081381678400665230367063363661056999038399788122740781432735596666904058194791737519510530710860318802532660804223405970331448257303107885744008104698397186333922802420606698384783702870354888397235163793933555135337739388572327966407740302954982014990055684733412521165156779360032153739392914018013778572408662489955460265458820485390680480704546903034158015500842154694307121669221070083582239028551935370768262028941431645521844985077931314558100457697406107609675828079238561901416939030213048380578039450580322438649101586740288293219499197995756579446206186808119562608323749990346711681182061540051693189235295825987619329748053621092057531861844618247623253530016986408136832275499787630842319950634547680768847517318080423341884018448489554538407204794950618931872657505440542148034167873727300139829259096315918625089415395471692030522900706848882920460649872172923035397460090493023864468949780887705319676293663691102220657985613878525387529961768484185456552986398967312528098986154739226583182241640515554069233347080872430582128931308474669695270371608136867155602083029416840656809531622546080273674464702938803543262721446120437872691393946931711069086632111804759475902231198529739499007380019878061951093117387595221971851750223351173938483163598081819951717336001597572502867194062108383920589467911420267361774379538798048649296225262216222364196371156889470532412750714692869919469413896959450860430499999018692532458889462585745557124255477831508236921746852366998612099792133094880442252399496306459519227702675846402680673386165543716477636174458643731328160527422272720986055355328428665719033322928371791652607514237061642252056430850163080982017206922553112106845014929029720090447047184337619022383850260562549179237912448627577327040309324014763461696679805955412346133152627253409335638224908664382739079023113161000523826103794607831218278389424481001661786081576761963900197328961155195306523893778555461617556644728475179378463802833687127973573624451312502007964357490583106335968264867715685003646327725419432806125375502111742296555044970671519294045520346150163179838724476889298925053281372075021364683370911091471718651372318403608515446153829086923818591602681487329909754868172160163482881553753986949481342562610872306007819143141698036548489745816575765137173642066737048843972212528141685008973088823103852113598756736184191585939491949707698100884331101500378124038274755143333109468027218582809759847980515992913824989339562078236988344320553419596921048290297726133310208883771523151440589111080626250536811252581904737815872193351860798991695627770426043755350410867191911395512295730003854068491612919023985941167881461100288291865702550949592565840111110245259702678357475639040996610741287125338876279392444416325779871819091330316540247214769551097936657802869975252725294524722009907611442868896933039576320159609389880152205571643855675822310078239848108160058816382429265621977661218692110791663753509301808105492494343963355547700961466272659715142667617054643994571168650202418955074821348697343614436203915816669817828837357452691782013647525393007791601093827699763259087721190872839644684223244300941397259187951652648192815192119112318578494808954994615135531620434949173175379078061187477202152697019483788619838357323849184587486271380038213488433430151496209880983599084336506870700858108346863381620379204120319853778426395997001292829554864685731756066300494636932598735943682361809383468601776167341424338553941676710906246915626602909596012371100573197436949386385816692110742905235636405801272337878368981992753231620130929211770871547292449497397334425578014918803161008200703448636307179008384564799511375628311624589856128536429885314872046332220703938476516608219891229696094151738357087203166887925151819947143397058860760847417771551332656142118256571164070751157114661194653290510970892072657553099888923947653667163760136377118864029367427359192637662724086249401265894598401137373224123578406915236007026956371979443525254918803824778734571328358450872121060156695150989424437330013068215999593044071252712621327955492941160121500190527002633615123555130061851802195197294821796754511609631806086333310990117648443514703749140464045835681292790003882315272374869569717981978027339970406767153617494232210365134215991213653831223422391077052481041049083740413460370175162315086945405135135669473224205514562854701455293099058083795458824956379019920318517546355802975617768505532519233966880808654175933126915618611470843318551467286442043665903901420742333869933224339681881531103762705673990881877390768582970724017604830043988064233878818216191895447476552811773726490611482788345281934077387150183047373262865675840850725171949064710812175149414726183644817805626060687610414085324871505180192951426364120968130088566361881784688616099000828250441107429877747115490965560216093943314920977609036407479244163920696429261331475748462309930485382263153578194988503291112479881406360788785263822239235376083032957418839597802779766958184040735408154166812125729502688332177482807751486412955846432020350770402290147906943739571070423279284884555120905506493045191752747632887650383781554898905176686808077583296483503422036471225703866498519129454311037034295096619293002285313848974948435659303884844704689728916593707601586977184933800264963169504706212402614690075307651689269558382901543562980544261624503227168680402428424492016268124689085509419177126313904587366799726828586935033696326174091300292854375909470807051707900846455440324836241792445018047100727469657240846759681490718943308540988228945495804061313466616979506083334305544993798797553588114435694345878882458171896292859341213745768374272172250222493289545062722464854087040635249239373724501033622133540300193080360922102123150192912904934856918921028552434391795651362128570075718968244490563523417551723389906727835126300555793908627204394984006550397648627605578398161583776050983321823137931946959977791298513221008600399717858154999346510587437448582124457788473756742386040788990109986162545352047093228628820873087604777424747226059042567165083535297594207349464300898389952235667090399734530192751825414721437429996275593048285678820195574092537048048101238407707366981651172837962361980543827372370317224333470026837854112954513597911794150874241448840687189553019569111015599925763207796130621716403961061710242257592275930948095908973290167077012359626725251626911939619891261956068426367536071797860532968560931179337482651391189252726080893608067166541681249247025334827798893059313175438095208326836809360655109156452361256266808835080094185743084636215061145560048438613215364427202589905471652922351946373883658712397109269120986672258653350484329183512268582570220539022982300486701534168910639372217246045537089756462380466807799915736391265552224765551925211249555701035734160255300975889910878701288487852595465682418127532518586091063491195904673487545480496047071949326594296687974347920771885135606268608471834631650310154129463953586567026910408896216688925043482150398697084273635814376953627141429794799296930888075401192668782564360131213375697333491245657814680199192694745311161952638262506503913632748281276732669024278353219314034505386794969188186760186838909480961433217080432202149105376042212815907434758933831552320826020209429640056271380957884323762854520181716776207801647365929768070997885637421799075403858401716204123324475620043666832541658412540065470432987752956931335085560683827938903964107648421661793833521806861168547408811035765623190712349365991242225885693329171592568506099516223806589232958927880300072722013811040683138801163728832480369160571566193235324787130637729270649096161955103552018944262332567659922771504514132720380892362476418708703707779369122841037228919734555012111441050087476329432406784647933692935136857892537939499030960285960968062549957217583556475623810231839588561578631653018023255385563807523160513903034329149509514504608618241483585317734921138609917892820029307389319886591927084639527808366906193808392558090460494369491825743421536150744889707803465846585973076347562252535807244067364178811282960363892338184974478306873350798635290051020041474368037843520409790710696640739761932649514076356586298056676881110208029206547817394821199374065264665924718799113491534504482557179106922569433520500258448872379516992258377092369618143737921838823656142287147020524122059235732018419975201326997778545209647383412357794461211726371294370701631573244711892953730986581388387438084159968664582892317646178804526659458448981559127053429638791234548919478886588143348431598814956378019333083329788669058221109340985856706548251458980253842960013207000872931663495925354274819200048785145262669959241693686000148280662975202231273228221513967058112283409646573123309314867200695349501276511188907924970053242403281473833201611130455908561671159293714147831658878866098877060203174931696235214694766844928140651678929347340391411534576307306929721323409259973889244510698822106045881448424580212886923920217588657065733838298248220504063047972783692737688466393125025612240896639707518506989630851464280333405897727466455901220477771665998271485182652122107721885776709573381428144403457395560519133130235849394513292248247249662304671736973505433533071001680900329709115087069895169540953229026125289211624862049633783135450134594330309299613003661992895142343412929187217041719036338620314148597107976382169654481617316218337445000437572654703388915157945537726981651396512279888250911388633920365689359431159676958827271691664464661794869845933422347980320748255933520679875241569108796121020013462713026807191507010668138806735481368638481600642378299775946946500869942302534626278353991241983271586049867206441682029145427987605982185877667827431553290419984921672048894630952818929663763607064783870637205530000239694378137498590025486505160298749832015132406764654892660760771929519366703139517035863714927201904003700024397534484056084891655079187866960128198763328104836063674802941598539075840447357872712401563397209136001132238909015385558409606420213703940752708427444675295239310973530533797744683952252483147693976224584175803310152452484421235833160917441376002391402026755599344373850932856738471406273768534846947226324815246513469842371873017334062598884675311085003096099149379145619673345778193713491868647699509842317758115727972462101135712953793790267161588257400078823787736207785256904285436275739459664510461851702461515687342984152397423820201433418812067794660229645939249924473982224575647090998167998163721136931320221607961423696129455781126188017062502544441270855380795313311044467809279986110391871212171251021605783723835125979071964395980555181872236842388252549759051287163688472181971057880614063795235096572661735216793973053561634977203699263066335412226583453043965931910875969325152418834753478068057560777689703757938948369491118714295383589824979087870232066295470206373105584821042616982764460524139186439123194858193717282261395416944672599658881996933407713691344035076945489949231953796617589044418568691385212734680180588388491419159398636441064831665355086418785169063415325241570455210555679539321945818348939793269909466783757827282453892231748603475433359257317105288012876050916792809455250938153493840132268629339390820914351301837017920626450194100518638512545098426822973067302826203715569370752643428907592797313750790810067247693116168364417675464548022032113304733151386179497881478008785769626351581769760099131730005774787767747395455554326092635628592945434606533489211418742639999895129075056932828175963392125967958858348924288809833925531455739135028973277834821320101605414565931377693136383498346067214092894834255488395762808665965038858237370330050103991314798003962074999305317225151684944090871316015078933601904374529861835119208073020179999778213293618617495754268227227070034465960901426207856926791196000987250933592100223141169517748589668342571772891079211667020784579966848759884171549373164902916428055767403733668433118687522389248809989458700298681724557204585395024208370397905808012327383802384555022138920744623658442201575461570187070576757369475764473293814352060411410448807751615749707953636283540367252821282577423667565662519488013707254949944907278836005604875608447201123127310150135579725596595828768250185581638766996295154321842641238060601720437892585936822138929366042354828853701478888412452110880925955850398434739050354399131353604867678233080991051030553992279668154238236072391249222183202453463931180873233628840058243783388330395826175564277558816781946861457886898714895889748773931824052245252649357641495909046990641386228877987112388039218895540948697993065211063740030970360713369184528972752133330783971323373379060527852552391130261544637684195072195049708443103059265961218928179267689832432664115632444172086880789967526760394024848676431243730213871631965134591592884269119426244881742024479807745187546936177255094621316148004230058227892984069581955827091049653966360360206073966548961485233210083143273036125034337294947625401994059228264137640505121285360625493916797775281646644304881550348010580608660763782712420724637594887839783900803823538720750513240164157322830357438505756944678814518303652729877842196363937986206083672700423015625162399994569237188601421421906001991424383004953583713524712236589753750000260186873821715372825495266984945718146102019467439366852192800018079116238376259552462504490494132609636968501921263161964682697828006539667702286238861507484458731095275821977691872062941370389709734223773718355633378373596033595066786071216436902878594486918082240215924977056294486566888228075366514121724802976524484570129999529452412466342916377895127970357271374821428350565954308645149009809221725616572484599403758043519688102868936399913764359854333250478871369218981524957426141710191840649355781345176362563556881794245693138537688304450973908881479164069460634060209693652194623962780256633920422141176660568336052990306379539342195411772755202262541262464390256096643121352167485621822314934595849013810262753261924109434110263276763371089778059162860407510469994727903483883481204219616091313645706030097428053026268135252849950018694323668978115993253189358048410668438360769777344648334790890976436819001010589201257902968923145661120421899764340291789360785947427348513536975496414919509713247419044375901443264693073588788340911302387447895408287025081381136941563432710049698739998687726319176170949021741406804663024276037367854323372928068997964861422130350852576668001583462140404356303468204960259089108026873015807974479334023228557674435664602668938788051201724089918675193921207045450958693007089270572835436568571568436451289640579213359628652109770232029762901368744144913317955612559783673362632129247366264976622323567803052011868876379076280304810405343206729787559733045067244168833538814311323321658186776481059049920501958467869896739100187672692812109206390343831294511477822846334806457772547460109322339521702721386035719526915790245260749709103319799992426715735704582316212573416604028916153627131774018370806070205727618351842527825381955354168784870004067872781073358192879544684179953578176077460170591616152361723702548513723391138754313857093534885491567629548019264237634058945848127820337220461656552716942970917051980378904547969382249171464170434595368961175766282391394278756609640967776219451903324447744456751760441808150389659403893176957232200488097193343148541437312275188239881728678906157205601829179342169273140335105504220461201539216279904194580960879520309394528220763907633605801176290207706979466663960790704662650585177090480423327498674741635170579820527237474175107809448821623400851033997129020444069141243998547176445171253048280532579688468890430862437614045349265457841983333457162149879682723629248643385439899255614875935043947176017124822733337517830371134206291632410608034450480144588446610357930460856908001508376550090103450278036798191505547118237676177643644610641473132917193530071894719159498542520637318847280150358504954667647969279013055195584346300429883099789672463481236591451096424795484707081342466960442787372422908739073159485311286409768624844912205650664827678762505929957432315390456923269814341661829581075213131931036947372954383905976736029771233562521768111792956474499243488763229723234967842244839866001842548519118585501019314375459671492964834899812078015337966520807606757539885247473151700936076994111126006360705541179671498671541233679640803993058964799407460331898327175567961793945178786986000693899977954007951841831182285954630103971410032327317828019153788972234594089737702760403418426895207719472590629801323337483521763603943595004870245662538225553788658193287723437683577667592303529938516759425720063988886311433895745119597188793725065481139854020328490782755075671281958455079758896772828105580281721111299544308374135433629263137327487259423009808613923401223524867184355386036444702113104311855656453761193337346942039642067600113488875672270322430762735834063079685547350499784345827673670477137418439758682991354314119645043675820012342690249743756208192072668501728055362779151404494285505675718148114092793287674731681671456084246874813001077992720496600870270121429692184955494064957689389831763784575563142478733397178045947685913317861675361056315102353609107788920343574288204777800611611529128009159586670101818351107984461051071038536348656561040667147794409563110123703566159544070834691736438519558316404315047724964044139825014517953580692663473183456015686261865082627246351109232869558985103944201522041670543260229227495387481367431360620310210599833822944700123561136711306655297674425566640918656117528557761968555541947384346601763079925448042899734466261819736521821207870292059069247960162737751944941875315991572078854873347381034448108606076701575153825202466085626365228890019489668911869285725406484062185574158564199927149205983059380948876698379597170882605450014738681079563129365006971411397116382485796779116930774091494111009193080353515326449342923237087434333786152656069787580631805613702248256745876917684947063622020138399348163739385300922807934208138758095221272348060149980846349471470401357746049221547191118881914722495603740980764624950434485683554602077292554965423950602408780388774400204060385911715962090492244910246149194093374199212763854580598064583852998544207502110901503739974168584406978694104118499628495769472952372283462723766212574445427395085365437034878239120734267898515761474482242581110533040377892648410125533466100546850815724491937766345236528947930851058299308264124683558227286160492733676310917766150551483321340593707338713518251004246254495457044505877878432720902832204751720290682586177146213157007714214506735396234579912759662239623840317156981424728787840679236979699351061310579767713982770354123239972786112384384829488955606608553695071663054353608966883987954312896792424730148709714151178778350671429960732931075103593064466509468725200235313126786639675164919133008735592490897702017032599481084336041182786097477010781026314312540975400136489589422474205428313515184062162412240839456471848069103392997793886492480334351950766541547230711170570778363716182803213623268573375511677085698555925284220882772006456205348330993613930215875442583563951176505800418027476464987281912287029739610035143080360699794541951670606866064686002069018068403858039965035228182474981358686272834514765081540068005139250364451435354407296344731066314034182659047112527979026779784495451699680429286362407050205631174161978414905450663982743121498200855626261191828603332894631567757913013132408312842992419601540981401226126535180244543621140940983016178789933367817252420902265880507550418417794776757893714571341028142149402858930352525983062362033887071806331571378832363314673167849459348323113916346147090672791454933998087223097837953569087367680169263310370452560215911718196259962596722289421418085150517487744658855035264907351510157472918136955597035247473001514777203337802440248722071647647370108398325357549243117003287885433024866333077689415113166514727186900338138679922514667768196117152553171288869486717003081278245712235182922396786781270998513893455424171163185545792203741914038116296584482802547571607827768536310538318445798899315473612570323873491497664694850246953207191768711198994216083460277979924663811140928737280145393273593766813160868811012468674580006725590895192230956295510399994014682839161291151771398941242423681191486255341333278663397177897169117903450680064692198317766012834775650388896605578349604671744098921861191983376082835605211399834026600699468794443609476056308549175099435932143685038966686408026791624622306535753958959907900525225852795356085605457670377263075151697330337718907107366284231786636830100800173897538519872720605623016137887038247033407612411781653843880163009771777902031551253501016292448946977937975601300664424050345048344121433812425998919703811657659421446683679029647750205922240091222423822719446852783878809661793573275811866884263870137848568104139442820439814070241836143734231722814024089910989749232879257703647810697240464668561464018546655187293426170541768101469464255789156706752155157237453615207769068297328342821986398584713901534086737144195544080372055378400357326406629323481864800304390822325807292937902330726363479516434799305865415417782949797759268877803473186322871381730543010891336793169272576264786155336850932185578985989718134263855588272449132663260983679201972160609207991584265133751253681197956369640313214030707161967704148162443337660532394819863433642536573065070617423291712583508788560623516562788812251814204486587100750944182430846182235089631357360658413616906652618874859794143263337111320601581053365237247596687731143376826137894072103643065713304371792609356408898525505395483103465820455481391580950318027494570306920894563718848443914127946689027775583483424987180119871908546775911674520573216481435605564941010146463573051166044098639278787892283494338420793734013740300420204376798222959790474241049559855025739396936923203235549576918257593037877129576788915533492638436157681728428758860211658477821838098728457370273218708755209216413428681865955617083047924755582975449589929101369322404260031607918860243053562118946259723920400361099640730893864519243635658152984434846368984394032731275686076643531487166798109732549260561836753121011909872545033226732914493332805292709578669279465198335942943419081757161137779848303879439947402808856775747306809654872182464741219687324834953028726182628903603069867035061438204777003491370399983802387117984738307031779266739960253319091355342838764960205459149407286628793149381032582868809270666784790067828401562769988976726145144108163928422022403918006441494788580024356917999363080515504617530533095735700344951777184528813728472883117092888566888083443054097798078087952092923957514813637807395448706111301047664787648388656116143075222929458768950184987991612678083720141225272578855591106471910467916221729028513048399381285571433067335867881231169243702042099477557490148341393688983465594171899169017209466191439450950520730106652673237734942961213384236148733474094305846965012334385573403352794710325103541020524960269223671894262510332928416619773453052337238319580635274642488117939319551325812413909180608538987030977339641007556866895491329266141743604180629593912591853678376025967324442278760622728051056644531048801698039738003457767672465974057948805261131692508068479472381735723337404538258527423125228727346137831379773468964655082751236907221960407933804259748136224966286124479598092991434464787507736990612123099492094166820811307150601587789870035036470608636168604113259037303808613099670818031214312895648526806328780186390394209755935808186643831683549817587605524363140527742380552198625760297561142592079458686922090777127194944897813045222167117291139867812534279379171725130873818462463319318856777130245638061580014916653465848242037640768225955153068199071411833613747070721775063922100793344320417607424154165697069298270868670483179473425971408210838253596175824725964109424964880444230304627323966506910110214205156473561376090974155502992253647338481904343116042432487944987800875639030245417782444025382725342959745761554131506830052615391335845248972613759917790909089016938261259249008696112354364830232520771929688289808983730797090121303648040516592516465727751082963210625809403499750921582318316330068317299450494271253828780396552808740610059821898306624560711938702325358745434753822684328891581988181887810610949831155638218454528898855728709013603755448415747402969259735716562771023959910343498435053260314736371164875461961581066633423277454940157900703393878264641903691101406398270437947382429901742330801806240091283557711880341367468287403578540386873365483525925474216844666408656365144320343254194593942196994756524840139595296654000295486456616448932933901790798415528439505920315652689274392956167102783223957046178349178088607131698351012647482302287360004078255271485065798922039000520615573599198648033081712148300479120643227114126878518491636584673195413876942246624983570281174797090292279171188055349723674640513265033655449477255087570725500630390184030605704957560167701269738201427364034503596451641593511744347468467574995451021413580111353528153952247476668851210591348374493566959458967661157485546395808749611310297999610172482558038742713226668929456052986307454748294482915500543131734858074436975034591937467652474480552751975924853212050792280820876810122525305667989780568313610080220913148960900147692712341113208597966019044971469492685545762861459275584867584166838949828083586820825445176623000135221970633118027507797381627408158187296371775425711041662508509595469225116342215543240777971683140606245979784482933836673342973682508077160541043749354550149328970286679664264875948769364651530864017197746945942153335062727696276116952628073638669844891613666572519406641574489970295144743923348405779535121957426485342749363381659880312510079122948069712084187604543819862562582127582593827257085108332776497743943397616848475048373660148948521425282860086398540410009431930333438480074408049172555949283229825914478083488866596896075299525226645483598463789318469710504120588848870170983462965111748191567847512868664459774193611290867396606592382812731163028734020370130923982984793024361156578855541000566817969919339374016387731067705863914298734460208684579047679854299639989463943617841807117978584947132326544199606911323193485276955777284494916808464276101385471130732580690499648417199451013451325764205037764400214277083250192139804196472502768910190086823447659405195729542440258772375894649427578690000873265868537670682057232021030297276788343575138549356470233705083063253849491181418340952556397250784468578096939496108966483813319900783115634448923678048431649939387388427969454034261579100137683583596648031623868419683397493985880418466319849069839758935032830974436687110920744303715155910483539880176652460032274126820004940906160449347221691240962164852679230253574558897180836133712111322697737968899979425783480414756172994082826885754930417530235660326217330273284016338502759105000371447901427857380500360202685239130872276677341424924240811568331335382714972494458738624861193849704107090885003418603468159736984650767936436158073101861339077935855654439925322843264529869023991602744846807117362923274712804127938083048887288644084841311871420897507563915399364078608345091619555496928971281008700032754985154816336957004219651995823187201207724543044476912006407890208597238117678524525022968779952531652164064458015415263049423495508961242522906013732464130213268106992488151438887715619929419908167906107488562580612192162155435857081787593249866500940597761153604527774348397893953568185824999452329112769435372647483322880294974350056917979983552507638293366044976908101091423516437711190772716344378772447665635140090629667992391360646093091435462503684206327856760792198446136268979301810216177341199431918002044254646554739259734106563037214803934634657862352456679156508309726276242896939801920968649041169797714694199844215801489143783512673033633851260199830641410388107428029463229618588617410474346071366701233557528986759775490579736290850635881606736574664924526723845093336752304627810042314778747439746466721415456446307217445821810219152374831593183541149399004796701258924780983156607878211249777570422047881728232792407775764288097305390552237326380203024801851471431295778056873694621402030802379594752922262634263997609229462985609888113966336106014709397385171522970240301859629533627223974693431353148914981097772699613313814925910196520753783066839728523943732431312408017222113822741210414758271422682089054241664181079504439704219911371537690018575865470750100846793270332168343085858210028457579822186707798985935036638849429656217716926651427924182280133459867539445078897870189570668846969535961285973395096855627839743311470930293616130141858570462598185383099392976568575177029788685598637423035342835426230257284757011432164288941988072773643115027284691833656236845352713150568469708207629933701537937986587506857947855816264739108605714674821019672597494727736122352417206687547458258702035844313462926090432309486048456678702129277718978286597134717866626427849958211530121740802546685192429439981115656933537459763103760950936940760367079668610392550651652000681138602415323181506628091771392937244773266783302511840687097897366632168032530089101880334327744511079477885745608624684786443021344695749001665850011180530759597690697674444328832253544613371210143922634150953040271346032636950760087977397941560848867463581211708423028128639217435325155321265105454328947684690131715491814831153141834538387697863803094566504107444137538812411222864066422351365071637764679453003218127155286675638355547954379065463228320819694043208443198599943072581328537691774366471976224609113772967235397354659445754441747082896031821850888238744512825703371652253008063456953962847223664024979964034802249616220806508968068676301431511211730112073071190052356254902658587672281710479051827252876181257197990480998688324094596655194734854222558700464916689400232606133474130349398756087954341746188188723874152806791592942214142202394119640990659788360854022000832578680259440490526096526785513145078683916919866323673505814148536118335739444102398906349214632775898012432776098329821997689242520825915820119659714491231913124069627368761542730957636347028123390242942649778890228581378779202465618070857957070779932322732163767109704914454836006806363505918600046235766592121811390418160274416512371660886078048906324375066475401758345416756069238674062189993629704194728890118885350174401332289343781246385594108598067066173596058904760288111646070544422248682448076334948583040257509731353348307279107428630043247164399998024876863055710574173649095440694038581592187134401534340945331476393454148772715865679710684698767968862390979653989875342194265799580205418179805792488083653886603167425507453253360407142065341563253461384787891964391874848234280147281255091111258181791990110182968939571928199783263352296954037038390330348256700707804296470519558530866754922856237073116300864278006837965109851196401091498337004300467482547399469637780604786067774116818512142063686407001468058158425822954520378221469416147350022068080058115428496427995405092074921575244026228707749354231770885233060147325469995969882363506609775996964004381805335860742464802181054461873573014740375491152876644142467212648112537873721209437488639428621318546936428618243983922893681339613213032790415192519306074513083123005758518691695580829588998578242791766979981237485116098763730337928563042886068601780630406630725230774128345763536777934833072639472964853948440395271471619978248484166697693361176383891616233378798110015417799236601264052447070539651179101224789054179537051564829060526197542117786761490660214342605770100445448565912267335313123233745249922975562010448947233591308573163212151989769218062615366143914253343069356782312446804137015689092259854302258371890829974470192823596497014959268400937271502516436991454086793555412196983251632633516523557021402888288386866952875208065735938077736062770473036156354997861672091541341623716480735800960893895452645630303057726155542571506759823725590173389056313872208412758365630014250101862805949687414009235865781200929162208584235333588030377996354008164320327618343588092632404594222901069532202618429403603869140344303555632112356707832427786776238159608283220020822886621270711493347255760194418782244968219850946832215379237348365047748139114774352722353988030313943427085685399433347279817120820037459543764299266994436842231026602551353541290438742711005480240565841632600489276040354585041106359792581487319303390325276612533521121500971729651077799085298764297213292611450879171319461334179645084753300161731785002248379072997096616968884498421866698962832383623366055987721086560107682771920277158412011907997040361633693789085123135855100442244928963103120912851312283999993604526980581021088114518834581424936353261560354396067917336278509619958547961457838081886611321528759978537110037896779608826114557313383622533809710780474728510751707770569551933215362191870069034159879467601401379915018448561425353993896351329224942179355510412638377110788982458892377090187160149052245449035743455972363379008249922099141031310438611177783403838534866727015140634941613529320585682601855122854651466029309831887556931060217490512118231267860356183701262168383366261422681476860080209814411858518195191335130068576012161722262348255598403382013296968473094406626150230309095014034057868532413207082579873727086348433558196967444784090730947357507289771629532939179085736068368972213545946674163447547812980409217992920934078398532339915899459747868490450030454872269273066956582741423241588854823161565326271636036450539685821104073694818618789609757716725906610608104576070396785837231962278377951998278127133161555034579121589196904833845616858290189934760346361327855991981243900029399026762664089247625790011986417210961113229529629818083002170320064641112766977884834106837080155342878322526877064763649915507369549052520579132111263167488472605378079873838088040612091407000148549872395837334733296458078598710837042249112101560828055853474155291020629039855924801455674021682210046696599813821997802986779890364639726154331506220039103459476463484232429708542867346289633221521111674504665294579631113989636701950475046559169385638639056865588282381617961228690299653925798084621460062800072651597642998640882061068039945516159113776074718131669191412984861535038993099140109126118320529098909245400717517551007762085149860218472373258897310590905517029244903131767977766052778174366109185517505739862146984289598704136905159725825881883177594372846129752911950857081436977362802672687323648994759869750023304971890947838005486537798239688638453661641155345733988371518890994191115163180242216319335886255553135076042696456212378161730746015619439961877476798724392209155820362188288638070243024952976948160377609446398138651365309359215791741822856152364632360300255462292792345320524099253054566064882352147414508784587747793666939590711882263200665760968665260538052743132323127492136973084520217429342932725447096144194783829441278606291991796832065111433423237517734987388333306306348179864757412128305310244672069439380163653989566160731389968342036282239451349298591283688855745162965651588460137014160021013631450352279139285587977257446950087039978538130332661035084585052908219600982088577974064808159677629651728456594344596247601132251468083785317621418089822676330865998132515422618157241784201111246448464869679955380617903770433390445278994884699248792204469507429325818352506637663014669079889353990082393335820851495954852963189155638148904556300360234752654295448570288423139791836179171098199703855737707857567347210351899802796410334414413223246440449633089344832563594605963685251595204639379199211355033501105684316451609498804847587952905938853908084376401811417888546188579256050386752925182808655545229804482152777482896585561659093240619623951670445449275638010190568783456263699298876328565186351456825589533831419013185016552933167839999991006942599297669939914249959896104151014515037750279180084005472530553399229774756788226861042622073127315246291403481262744213348848329638912415665226539279055365403800079950406000689394266896297252299552719454803904011836778230714383034859276198551728638726219094961994368565818047346421555984743645977745817098380398736002481643830093031488342288288783939911634113602274920157661018028734492824730506731050061340215618677501501898141539702260139880822044074527133154784676204008538742827678470012093810299664219760656772763623295816452506081042332322490385419001967495006127324860142228967896371905901283305614922688307283551822542844211231117183289473888129988646320306638725600536352108835796584074954524369732274771110629099071412100504871404457873011526565011149842939505562921669902316958446283591511362019738824090016462447507375124803713805592631934976889890682581500400454147196383834448986366068923229424985860263416729968941963699816098800412482464180295748249378919688972045012414530160173620006776029406682313016361007916753919043983243724833714948700609742547788712291708090153594421620313879134593892492328599362335164967781136765914769665614682346831841265889282569572406003679487266798588657131071476860668098042913280346763652436970631339131748518312012427507363069031720026057169800695384999971886607390278988945794980947780996199068477345873540834675293295221911189695158009242078581913779163353245521621915616208566872812921519400148874789717363368366500914092665065402527188141377275322649293601705326738241688105164456612284295323709712906798058456267666266594701947241526032335914997504687663649340814059142350597216835761095814595509088354113605040775544095088477735849591489399920329054878499131282332214586826521797537549024075578164054171203814258991679451296880962790454964439438093375832376737478824158818147811471408658528457602604840906898573003959486307163110387158786190942504181110837458625792477080998587596510079284367364869255858673656270342749868630439353444160316584675153889335465339624578573237737085315781818808578767556524429815258682392659071779089731439966291863019015078293106638554524570310612082091358842621174427503954264857358626523083894350748157802469564372394357470383460158925110403664494208638296216142086785050881804839252383904662631528241884188665496610880441274584408868160386281725596824956793581811268019256649059526197772237501917076832774029578413460309491453615757967791866622402696876253667852358708419915949574306952792702904114427763876086258226984140227725209298001437216188362795862891473750794873240239965459271194704418031368259671935653843095531038297344096412894391814120826857061478042562512629264320791156153346657999314971319317965736715557611326610978883655142216931867202718803140847523247112462169038299883616436573366013796835465413399624559083839001143867179716062820514180430276279077031452023287184111098393737518924189474038368614658207084181616772221331809987588365471822734661053468917571336445018330915310409249466442999947972860655677360948697730159887072901422941904936702816225071658372575270627585560041442605523288726831430028219250200219735419568794751721381459778407949497215275443582708743494322635636570859193047406015438372371488136391911573307259268142652628297359072066139395804270259128356001038402496227259263181005601925821677922364309447715057218631171289702022767775484761302329513021488019962549420736311507123959552235331597692573229621638125223593530164772693067408655277243664432378548502315470278893825578977356448191691888095023763272404362429654542411271544241558344834043137254881958350144555933376691941726541123700418398630282839857440978082779440843272955373580534700617458014959647860196441843017221803479921311636632747177505897251819356457020510261449903803013350508838054600139023231117592386168041964103358274092345420446593252579803801885148751794280443254380030805472248304239942569745113650558189055200730098907892503843614152603769802737376219791411733782760717530162570857476306346838015418487275669082183717742195068803734114563203567742410197797935877641835208376095967779967876581629511745813292472873451890491567842926330457742449026191048837768309076652863306241744530638546029252205983651874443544271915957886601611112859679402770509985010813682353396223655353478027759788537059467623051005786510090859474183338040125040934756327681617603418759203593885715440691693794703059774922925298783747170252929677908119065165444786003855485000932562524051436524883231101470833701133874338836490288802829671383258919942053164349083082114770197007203645605747493592659139116467943353376240415933857160568788652936177073235120846837846372098169673787236236093501109685307556909596144637672491061264026334749380272314261991850773281054943353848892888588265212748715020227366881844177653347013696442028204321577403426339525740977202036687669918651370292436563667047911123849844998785367393507476363325417653312515645560666417996598914215083827707037815487560791934566275008163655314054212606835851881166846137812576210857702381279110583996812273589954446877369944935762124473203090279069499052854647980406521318129750561395301718258832224735409112929904563722751603173696785846337272685186052040911035168023310465598504523882249057180574084177598874352903047003278355959910324852648435977941436547037774068675685895739998603182862570968895429400907090494531129331450838906429599120319690719849059659322547366691359956794359268762393625633891941223381838156373796827893700280173661840021360230844161188846973603510869094314977343329184853137500996049528073229060825409914320553206774761434326409323445796817162403869931968408618126813525644947706966610222177057065123901496275805386091724877625910207682008287951915984746323366774552624127802052356916214245135901431685170803103342565759282009564336138029757248017381525589294702604689012383391516912640604170295193120179899064332707970290488639313262756713540386220663968565974423670157928902111819769369259593421010468463867972845386802302920089632050077916425672441857766557747422314919935260147401485721894049083680448526530235904704875421865414051750722584453758159314423481918991468565195650357662759084023115272735408077113343363305122695966268643856834462786208877637625594986690353330400044090270454251796427242944158735194656338912162666188096100129000006767646744736548114796920536176927873948980738460489775615255463193522144867804100144101518320042529811311360813630129451291145605856659688157554387039690794432767496805513208752730999262464404836666873718467356367469287980654607186478193763204198532098950977360357514157722575558964053875689087413456892618155135556406152630755324385665673672438346641054587992323032843925881437764585574614322965956231566636970767714422963428259394497625894836122908743638779185119606215825216807201031022393163146814031583216522001842905733894743308558991020017574055002794670694241936524828139112692978314359400710621873590594919170194994814599606563064700783977968723903926783661485992852544213005189646574746461701975457401993499876154714077233170856518186261743787171713624885272567502513545597224071066050504116774069804429434700114153612568824869264907158317761834731088777899747452374044724186655848964856110654310948783812588510910189584254120184739745705562158701997564067822433417897556874711222947417271521741440732019269347178916877821310949578115039015989385606191638753341867638374014906530153966479771631789501107850785316288526110431554042704203454243139005276456814226849904665819543680869861198095414882291587599998598689916895390779898223996967949989966008041244173143693712538731145406645989979533231193737290432287025491889369277227481074070721174193859617635542747624267461212800558910035281205070131749224968685429839731514760365485866316267025233328097388580371107264238735095296528105246071503709135448913786171139179886656336805025735848401829604839173208673217105669826517061968009634419978543178695560441946218576946867065384182300950776345651361921893598058024481246130949688318236303235859341935476422848098262340896328511817826353635870033172808641300202634633670493847860136541180983743700613331079855962070725049643666898776661586663548233096599865031188233370383667375802580273642468993348671772682324633920121844840959240104048329615738356535196250936586473373244388023716032667000803404852963620815040986443135521675027202639534761183172558793213094427975072828613634772902373180037194925529454042389292934067429320577009668663175650824472997583419230808022541640687224076964470875696998095695283072376411510852256001941167470054500643607152753498057572282874923892447828887286783747313879716766610055073396136606633700331716604557770462385765905210141399015379588534788094871949629958725367461002642587182907377084136198082756270576065714430931820677654796371975212232122479400380529648036331410918772213161835337617053042202635463882990126911542622361311075818976085942529491312197333735536293733603574355271561976836923746592643153467822635230791741152846941148184831826963844828411330590087956625224706812657792027639763106828376172124940502545046282243887851595483086110715204250399224125098303311137645111359557268473309574530975532952621410644803267601744499955856518302931111472763781383584435527229203249943657340757078226494141075396121971454338634415920507924778358610945413649164618956577237993106586726976203442670796076916509307164242778518337634432512814023603147859425074974340866587077527246460444169504397961819033982143882185792277365088017586872824389118808125105884101971624810193009075346806168679696631791050433052275801486307256085819732703584357100157845555553236254248615480731789233377300660193932765915077571519396690861282221297413289869530862407395921612013522651963782896958975247320228799852714029058651653924330711349885908017564935977352378529583564421953404916183128080000475356163185215980472132917646085557224748273503925891526538135751793049850789951253447017056802690940547251786573994631214297028903238947517039849074949447653618303128966293504934086328850342907327795361117799990880569221362538662616383101638729108638818694771562296272516860155797326289356953136186414736573694965449250480898867175841676539196659165964493376622854791269536310793873036586581686392228318887591151935130078793548987679349575102577574223076226031514962167883884011779412086043426237018582618997122400877090864521556801566561129054599131107665492264127465621576077953757915631864677403576500384302389045115007023263630984861649830989313706022106991180722447801090000556474617169193721129881783096862672495627822697951587530180410664577728292998032711392990674866051002736587771347195569348572577291705913662138424648644186544809592971262064990013142517192966540012455540376481622607505465620179462946783789255959377025555472553785022893333089301739515300612016484971133272781803372171677388003679296269460777645257182030260454300484155532846900513361360652898699978033458281221524173228554175773193436991665108299790688841462361437836677264592675954020682387682886565063881140424086110067175094819431703017432415789252263141499335451689885608146056305724676817758873196506907833020325904513668039055960197479661630255850955714155247440468386597551755399223829974129150595565320684721353595605017770944223040742069189892230738642780467595737383510317803870372173800772694261066676804405516774357012621549492342765920896534040895376074720659058148638249656306318491884500463884507134606034627127370175618673458242932647684863832995306469454295685349758622700405509215568707181206905166201462342118995510841418307728737208942744714919071497790471005521721392915466092627657001902496872232893522911531661626595789302590669104181463168069563045946452943758104154148441031439843434490696000452692259883148860373497979429403259742089861204351462344800779881024421649557396935155603342882808457986784549445320519502662500111750851438518249895920020728030637353584227706267302730403778277881519514817675960668828443325310959850095929288038814872945641642601657884982245161266477666739938777921441350799723247158065593883913228638498475227538520620513807144356421010235350884010315474766682382785377372365321654634570767986149910971534731923666786556817224948124990924116548044679570399618287118719379335852689323226261984045683798496847579092978918160359370024923274346954601677230490833256922124219026404011951711114987128699304564775178456033956006884750362840939501088643569413153473718470271931150291524310178024387395150621256290410127596233657406925612690889801228846767080383078064116998527773453567578701442028031597268137711560998792044599346030738415239777840199273373903902965474758609110346252420719295718331738320433412064376407128177965673893476348104507083727191406995081680573404825707714769537913021111180841787547037575252423106527319347844540957048770197010301867343151627541214522457487845305109972094350513125996732496365804537101180338382764181010367949169818588558283720483554389240864025784466705856141276408724756574291988326265623320411541741305834695280239642952070022366597765167258716140651310100699793651501871868464430539439418791830442964372551822102181705803426322882621694352852159654959904574236625162014552035859925762583798103335106371561901169862014582620241902349961314257898371755309353758886397720691799267943783239583559319471503271081602182956870018646905304161829999965361466016442107787694117742688722649421595187476828487742537917785269819558446308098826608922762860961445062498489701962097789909668333058339907120579141025065018401284723749720764677271983786411091588184003944225931272792836389966773080687146370032291828716034135539598214770418941092327028452437063807363853060393067215769063119941899117506278818122524297337534853551670084716539878536702487996878234811489086591004164143020997496783615928305601266404991365177126867577453868880620955592052796720066220339014722674377280495836993073333106308006280201329477605361183148890712105763610295299135635262812398515601875702215382378054855798896470902433218907701947857063697392731657384940517206069956005916740348553442926676915477780725810133817491401848413234175823193002015815869654478577750517459903925781234991655322149213139857273628032162687957286487257801112612092887557291014709933413054530509751407152705042481331837119825800019388794709931644355859150309121352008996268453614938847007347803304708968934252978749347568469295908426607446655337626012626584320626510156606828127702910735017138918112609534058745128702232629607585839307392645205839589735962362455466368740568577826400991933773432247676759760566627129752219498238791120293904580488170748598021887732049663566225863371128130371738893925477472595646066648712194128845897457512396636081171499267483217796487762974020806492979223217935906524602706793114085847415488279804565591675002963004206967587339478093448877556371160162967617608529383568472130577477548451632446668921762574551451184641660921248611475424863501879142237647647293001518796795358255206013971837534613477652247549573188328543043151497749456624998006757166796723273150271330345214735814499721926391896776824078894169921025776606968753115250811435484615512598353190382290433008913409476906260290593845055219720869815163007279636275758635882948418367782858200118243019411880271914842417438095544119100967275248569914004991080946817372467160691797671295003676618685704958359485433173712830367095800020440875039242726164163718022086986158816165198523328621410278636628788312383755736272877626105278564275162865579288814952142842454095062698686794620505898232987152827961870782949611647799012249449621833238979152300456372518556056486835895912128192166278458254922169860344229955042523227188701211809306441729131202514109500329357206186122988594194135744724535777909555430125879713579810434246055907358857984602470024659301977981912041401234096511157274351765706118526967072839223257251481742707754505522773268792890643731176460248033832556401843074226076716855900358578909054257935193984675047789936174619889733819889639174377267476538731704033107759646932868746232129661062003753035363181361203230263700595452425995440868427475854999234024164357140564892878760801029898353449988418649435407917116529902972705752939032670716654066060570205568559138379427457063900674147225125336668768886411803302182735138924828258771823379396976776886722459594105694031624015550880906840984691256336928762644825516018113971761811580524247117294586806088395893964576351139725025903710760616652196596731430520039537866936372596851468265202848906571255198110344524960136712843839642136662827504282586921024390940725598550898402847679505101002869509481104727876169720796210687621907985504555610575607175198622622498407306262342942891686226616617252885707721822818237547986322890616501978292935027312162489971745939147253294535752371570104474272637150691491693870208360512931444886304541792602700931890209105377271795508629845731990629830261580368866714547174940301155049852107860587300774920598419143231677388405115457417624067566013371698570212228289659513502633687388736115520581097354588506418795751224759620924064570615193528232503266730935798348363525040933511925838811192503270635797799219798101882542902586819929437456152335781823433897933741692346706089045198558319408117645304163604163620650585409773069128890345875986554953986779182706133223597065247148446452414022382547799364082407681772660740718183675112075361886618168996823954873364798312018515301998607593823909651386630725021298813755940695588022996840479132867217725156850013431216254286452352079945206073698733469059138013500177624110222757743325367653109298571256733165816748341959911536694159727588446413923339662459027841047617982217455977347954148284846062710706154396367513198763695143877875403968369636452191907402995975382748402632463960215315062886455431141731254847217206681482492430427358963831035205630364530637773864931112364667815073356748848147942571858335363371119676370942443111234849482209485560741933132356184570201339591223375366716361892606606493130292817128048612975736369617896951719405563663124273562999967874269712713431747867777854925610653879257751440197717506482770242813052016366569273401961404589291231310286861778862760342267561167992672558004513496771498949696926310631760430791100643096796352493242893331735186066150563026403684691066377863925762964425139999687561997578958945085485452502274837739020491986470100749487562410811919062632600466024013069481937629225012882700258707867848975125420317455900773032078334715841882707308965211138743676434928562959335164904665934472287789264395422432842218264626322427931346672874000232023522957309974915494033863134285364022965369047676564296888742451228257023346301830429317547044358253566737664568938006018702334156397318928050126505845965509099453959476945663638640124243297558064798068366062733894156993048668562003826837471261247376561674298244658211451342017761748012149652289787118974161442411553316648213674563267291365779394382252956646052692723323930351195053998676184959963495925864217042984531734394450817482567080450435991701463670291432868944856059476377586828369991729619490344775126989129024670858933765499107304635528072224344879617696608265486616240953788114504702986237373434910818951756527738923157711702421467882905272978488706674649244678061022015817152380229666105816484140069215822932291013365928748703210535427091119616868378818613629000850116417738723618828128181854089058185637404398616565477079318206738971982688277694253485152111342550251458887231627815347354979446355178403770667201708804215377787574983547432913892309958153625069096607285495160770534919771826118146708800651940967509556288967958358423947121930651419171113725434055447244632836525947012003294321575171720119064783133278529950597150498256945942552756077700246940505752894909756718425131367192606658207850577038170968317727869355328411334945057575501047865110407230109521847438530471825911701755279069141654623965310345486591046648119200702863386016437304464054434243043967284274456075443580202794188093045255683206094585023722899798779689433367922549183208279567622835597656868451812972000461932478051970471175988135576970602500607078511017746363782441205931368561042539490846441865490685711928068698285205047451466971025453141809514230775390778473003208516534206996846746953674705193524891075710598143738860765961668405677126602889606223184402719989746043865022951248755913715922748844572286422432736033866804922178426867836936859355812001963720962854528769406726903288529246893668542244083184741950954413827268219461009779737669022087937685343369411868235256987371922001263440926241888210206430998399050081950543573239868053387416870294476732679989975380353912977266903841007784373604433768572678183314254383694602066544939340237793178696788531850452267408695835902176896002023879906784677055176262507630066119808674122078043835739420143763514649291888580957507531564604003132220666111601593774422970896336170338693338114753561285799481869813094896887068542672095580254325635564055086951684764017182518175703411048610573327062143463129712161326760704731604652324902391740691617246562910794340193519342749067977300395444797442711172702668253769877377912560372207996038096084055589510986847029913324888581391530915740405352957632383668030175067510983761173064842379635825850790845375691629288384806597778571363321594335737313948040817235169420407371784299026188075093659486431802794679228230868561463436730317746329986423214517970011644359467993138101217760847679100246270191658447405731661995322704427553226883647523273811660367547205837194969542921363714033208269262027113995682353136545659200885613459789244822884020573542497381498677749979824228832708805403809823886896993682787775789859670331572623389655573174799136406497295047096100699149427328533466756429764132410428805161969390825337864050647539351546193930457063655300240138659782370274876296026606689618113960103368446525039981417087514141938178467030093259191271657476981082514948383706564013797357957586916100044320935692651239722476114694219735273732409999214437200236934092220704736429339652312849585127991324341128470228255700844788568468590273831035199640255953295491528201124189186447666616339084874975050937628766755346307059071538581840515296084434744285548077004401769795155939606726573582382512470567320974527899622228780208957588250917749579994682452458760948995652870063076572610702439200677626548959743075052574893084130361490090465410308235478410944537203835943161687749450191332419281735453132712576427181395247282859911803528386958016472682379105271756080236417233913230321760134604410790951797038077291118913753682291209707306284601131272695379582277727278048584524964148827875289654569718354419660602642672445112767088121986840922271350273880664251494695409447299588148799452961883084766364806436447652696305829526398287795405950953617758806692408058143700384890875525561462153614746788251929740413453549205275764957689277831444062239946450461801033134968685988039372879953834941690547707129850775145698287549612111312536722407159958913107558364403734955937793948749184133092727175674125029992842588717794959151961117731869043348123461769701545707247977809737633869612081217970793481777732649627498588325344915765193498731246255289127455407238705215711481882382901701407283605501462958288939002026017042966621764330561635865710417235020356074792052343748611676109284951357989109362989364341532160319218773463344058794576727123207818469468584024845435494283763162995160539373639730125954027484734064638591625564384448827059584928165157087573360842412347567914911788290713621749457490616020390214729248279353075181001053873460192037405075168558536855267566615875946562543760631187796332239338209198008054532132893388616527646186291295393043697053396284692002687949300018220093786783581032147329977765911636359501400063979433635900374366616719582104953902090387124355986707505660248497599582481640098415856696337821776577728260756983539742912103433822941144508015704467942688713546931332834932519700502686891157382765549540176306298329535341825163937991053902964170505785580080204754815167996735889821917667979280931884927358934151522299555351994493513381855142064694859959346931169170181615655916301194658365229236329196188317516604232858767324239119277405964562394828005005147823260727513780578580612823069482766932420990152294103921858935513022743983583832099764139360771729871372721510579475314622334543269518561229395010425201455307706180577550809056549736187321553247373192882009869666861019407703594626861602350224191814986161728888609370980713746366864295241981665764364480394500436551653549700985582837909696287728623604470272836047774919533451197179475458274569677049781126812045422426228965698547235123666728772748747222914380405557791371835834719674436099703312709094670736440744327501741171617812120372328838280784421581339590479255251475479950358817493789618498440914853911373653534033515791239646049338158333521224385445950243570383239324068446207346565219355065468165984395787117549476826719256804141118025463312767928069735831259004501624725502223584674365403509303348429891269982411750468665829395013672152959323273598143473646440711560954901588396040015849924300675884273513396775337127003308054326813959865449632529510885373383483860548311443370673263969607954977809553879487816616132135929827953966680413088469457105545687488048224281598563409584002196369498552537273725972280462362258135824966727920757499255206127638394732906145372523876143035598780011722538477076986339674754984020988180292527601385767806074617750852320937337769905181159436602835441566365654916960654201177531695092656050288484117706990515098698811723213512457574740880525586260284289377685081184809975523020419635167467813261552862250060183317059947490552258595630246081274014449848364845103899441009708969595274808763525614140331264858197518043904963489046269030235169094745915064229627652281397467020679494241759867858725249414381210425467304898368781179273761901099174358805090348432768625537089170782611866707884196235585438944232683710499281928956663931932277403524584089122312557454134613878711042961291633066312899925138889336664410154857502656245264081188481615907521001954660190510022424724068385993463830285456096821273212247147253172656745768858832776304891333189001858488618535778722941076102704907744784411682196411056569842437842189649580315033494383933467572802053081889911328020833704933679010553604622676456843784718698670161437503009107913463774400890894949322262595760876783836487535848116792310007457804951038382563682926844655313413223140583830334281825946662367282573883974309201310344771935132164628841103385888755532147154530200128144988776872204616664074898005462132952857499122688886733622210586935680974696138134835703026338302549008149074942973810980079756562145042757941799268445055429948532581791969017846906229768965489235700223246513410812394395122847840997479407880479788658340347236245015177721177052254310574024864748723321729727339028872941976839768227789346321192926141081425092240616227672247712192228035908141806845122754957419063412133497523404535149346800241991127870254883062858822584243669405841750909203190376724051417812941794615757693324993025361927315301193665020672070870986108590728796460866210381183620815766439492704570000428818933596606090216436103284562902461941904434313216626539433858145673618591021636067305739790266498423684376376177551728965219073780630952741776284739843408689349702381947104737763133536168333071678140936398940895288776167696270227469906637210898425698477696821146605127842803566357924056739550466031682436651297332432267123838501950803290649793743213260902468507849859691797837744091443977674964487232775111219668447922143958498424803362178172785939826681092236577836118450580982228938524596917827642648661125354140008576614605387141433154679474220179922652267187201344505424058044676663412210703584141275432453183482017766197457197741223895954993077021673432973713010363869282894507699342442739042207714809741853372597836684815837362233795933545271464059235150212374080057756850711189790690779209448890403491497258643230276171251803014225280154427088482217944723192052777197059879187790020901068522953791761435663577883143615856115029687476138608430408284920365259709697425810926117225663053730036090370077062086878298321057219256144229981349528691573203655500175403525519752951790611194683376187584056500151060139958639480101585150288790404803503829053514389607407995033328864753772530208369178831183960878378703738360954174171179831266266688544607664096258687145907128175753092776548647297147623860816538366777388282386333053550566213697930976645699690180580177328057457136872491563453800759799425999416105487565326211913759750242627098757180535970110566617180446769194693433469212367244102696456472353324796339276220134185824904419266879413883316292531476453864293761092203852999470385295666188631030239955972009968647312981054351001345556862735239003581316675903663877132121993338250703670601272989495836102572087548438635308700070493721518183949952299840210539371489094408196958345729710580447049127838642254969092467631167678722845064861090056531899291589450155099892300346702617800643251231377670870349378967030342806226676088659680356501064553153197958259035662695641150482053702402630538712204905206476087479539814477590565023513068187231554504725641241675623915344857420266140725057675730219378881185680157108990549561928783771452866276865777385809958478439900037093911508536639655086670869142515189789131338418649689605815574518640838283056720865586381712755909178070798119274881272733217110313024005697219037745188846284472780861786208223824393526860087934995084827129431802592703034169345697788818909837515638532383672553754437076140204462100325897238558430773479213577992592003118674448835735133238614702182125899822073370879260401369331304902214476630294752269796964148191104680014547781048461642891926092239685355406973552533007309972026133744886752692807660029141520123487616136778904757828132973843318630783853892730420860966698651861394999014622850766532952359800201115971207570831992400013000206759628068645345906154206894453416649402835329380299101779527608724735334328003213164250694706276729410687159734647031236488540819976328944357833135513087481778613512928793941366288263530515629074584321463299955808016053741518605264282427986929063470577103707151812178398572804741083702423743270097266514601554393262483864363922536266003148945860192852188881564747888785462454423841225945627535170377702662366897904253550351407789466431456877865623868237750318301769605722159563242300153571232162098969994396042158990661956977361138896319202754461462251667546366305933861609288042003478607048746061962480637328110327052392316836037650526625249823355547532606180183129833840162817345402823024589675667236469300941391049284411843161545515874767845212990933225199274457215922050074549412067689077517940529395885810718509346673876664934591835830388574368374062158594590936633280303950941645388856293867275126834263148982545345047097321265069322581102177342970461914537260965333456919909328028012956927668555034259055681025839060744852226090782351656802308722882258873481993684569215792667441685486252934482618166436068903488773886278240660448460996351526718631563705561080019634689048650015357644729942418887909881674634313997479933522734220055181822130436350456895322174861772380756935425950979426579276498279457855880962132520628869343203653111556472181734762704537203921287375644746065166709652573663959940150320746329459301742645712604439242272455810784514699411364441949384133392061995292026753792695633261472346954676930801064342771246928367143614394111906281601166018042299397210672612165246033568748779052723918401439985459651632177929078437646005355004653947768273419867575567037015000653202367791054773816023993442827353821717448770837331232833047561562702346683466832041472105284736217181037733298384683032654125173652531257224692013573876774769080467302468805292934669644873765512392479990188675468797010161742428148828044798059531432925912261269263727361333707678850028107963528726799655956739491560534805240174080248659691448051031761297559173737992597168652077680834281157488005186540697128753365344057745608752023047007878459219336709483899008529503205808665351782071639688611782954289679613508175033783209140531469791084663984127226352913412028616016739627792827216781318002779924993520062738519630897655643871930504290929936681294572091579058258282064588634559350827548030725770309824991207029410897163910371726083224057803061567753284744184180676143134970623954644285939326686008139671201497468225589643472381615789449448871213955853781461379425984874178019882898403067419083235432987785749118650424094532832941519180230738614419266292999616821342824236494164505018129368516433247526041465858110733269062323771118851537562364745307498735091200935682251416657913308827065792798546131165493900241219668194081513394255480277910936247181118753965823037479331587148370510550808459948073405910308497970464336734716610602178532234788931027351549698440149132436552593112154924464766921093813911667996408284420714751553753954053567592894916340961871201272370165998609247431545387267919470836756628861559296485111997945586269399368479275389044243561095532097026618315770329187476043974418042673491215517020134796580268696709094762570728274792155127227410080163586818611784446741244513959570299237698939282225674986164431472359304529573813321502552505255252064360613494008965002552196528260595198720626948798171749896633017560470651745543804334010574131187927582599708385871400439101583509208342303332408722613487247680313535738376194935811534772695282581852769405981639840883827085453149129956003011824900437661911193405895003192484392111505062678156293260684582569789071830799597239689887242151727263868981147304494331852048084399132551353834349288823780757339901917250272144649294418878239928837494966822392781805929873595223950209387791488105957210623990301436212962459640943227025124684800547242085214538962107457305282129112823072154236635789470875014469293416955503032639089209161682012414838351440226117082822809234043975315594714350235632897667871617064416267330139062475269573467355213268655229966636394499691345135356605931540234352307626449616120203278594722934501805463846608214955201875441694161272865434929956083102885283886016193475368195194895904942687655271687281553770201498815532027196589615705648737063883756669287449999015622861833906794187241589285031455504957731146872081466424826380083233394924563527866912001912646403346471425559957619540128740629610651944379033688196552492993860353027235878655998960047528182289451089249398077348466622013447470158487139109978644294366959791516106180960864613626383597022042367182325917863683695116471399423652282259800583090532014224128973975420536003683743639765878315149909760725170442716738888296928568942153355666405076020899895329273982759875064637119507606370583467729558965563063579590000831824779180255995777594135947997978139437256744197185408658900305230126590936172118683768427240035736675737427048135162541015771628050723479669561515102097917696291641485354745998230682674209163817419641420737611260690198509943962134607028451348260686499314791342875049529363151365367860305387335624534491479278164050569032031238331865671823378512665585951355344197905405124826424474218145576344321288210113475207843688124025199968722384958333639751736149401065808395744707020005433751313252180041687200753887512272403613323253015208236509287337391265181365631158335365754756245894829204278593880971988442143167747839680020518514918255720311151892015749831652759169787780519627753449252326238549237180967575390639174935192262256721309531299901060478083371777850907121083031166054995163463196920240636004855200708152896324703851405949930587462462637569033586684567357240900033088779334384398216905838985580650595581458445373193747213752390879661867595104932239352448436270771576005359274847405746942235848008358977215553933921123521910083411337539217409482367379184238031939510581601903279931247351597274083360537863080040694043187239899067370073562178159966417809671326411039321141217652428156744677839446252683520871465819330021882659296444269569025060894739614439218513187639720413546693132997019646856273106434749684524772676796785768710759093606512906407858924334643224482278029013797612939215878027429900637707682272059917926024993512845655360559268114448584147965500078970080885981748595005887858853260724390514667139922490554781907362488986347338771391213397880151950693409258817965847387069350897425860733364543396275305515272041898998595368911575784208181783887206490774614531793413149553405621422995034632318918927664081797705591282852823765613085362592610780551406572537989829512510994551557933411441725421654589617964600921333720020435581738005044060684451836918070652985558707606610242672360423687540127480206724966451658155309532133208968046265348280004987031527869510854614866241686171764727657944841952307656375052167156346045061924230700806196030960164465534762194766239623861919522761136135791916030477429261940665951201050164796478912110830735264717047019501519663306236928492049394585544227586477177740643179227463091855984461051891571255693643434639823900111502504451205655294292257733437703192433227535916393168192783439915340066965837926511550697925601443388973923306232768468648700903135344855835135081076850677843486408328930619475244662441382328926194173043554429101819200954686856284816519360722181510915052645973921748817049357726502395628353450038457203453699720317595836180497261536213229393036306583155266781453691079379088173468318917278901419622048010374288662069795333226253055853641273766074424357332209640882649016346140059960152878073908054645738230368497565888055535719874172777388961652222952279181247126854134123261094911116961982318892441185266077079371223687660488040458589185766012826622535004703736388958464523095755000608180074561998534461967634393356742941077446152366479231627273339858594951863262078059144637838908042894347144705961028565775384402669034174794707150827525166514059643679125436685753932154138636747326234790890964222271408556033389502141614786430451463914014384073961768167412560080927350557511190370111252405152225844855074892383677056525388978829821823038683580096076223685292761489873330106717884251864812003450374025639478454059963061009971226334745960452084180349165699974414035093007809355791151722253104248014489050901988771131132832656230242463290242974215557408853205163203384771696527485590018957433764108705157665435638862180011878803037691963301829162943974557538962787576579696464993391563951437293269515862954444748518722022394692554052675885794399480836124327470974673122985843446633695437542944795908515372630974727087611135552866482041929120564401253494377366773199250339173423111166428089241258984242116031300783503031193288189893485466119012627330801286530339657873477642955105604329688310979516672918333368924145609936807617522768716671552493807881713223328268942302164857271037640696634733587709615192188236660647955816809091884564869276392640900924071148840321779000269524114282270070178600106731326953394160936882089148756148936800510878715114243022579798316909447861151551097287194756973765316539176478898593015881211264214752742704234592175602381334043055350967708255041236085173151831403545516667525034916471376532725926760371430008951721782128166206381602968781965594375382814185476558453501039626538631361339406608287527341779974598386533960337719717633321637191132362220626476478707517097625830029096504852712448473120645227331896532863460530097130824616765189168072333346534488887060816673124795069195787775280967025672667505083481811290563103002302237256816132313161090554602778548270491607644103654539087770459001684924242856100806447748748495867273924605761190851988804714915565319511453102722515659183225436683917490770469944794300862285195920252962262092133818901785000750322031734751419747216868548840271521627928891572449731774899437012995949799924223373695313642577285163104031921202469010368943910900682036999762814608761225492536085102011569720648705974368809192776302715591192752279166091247267065897653654960603770328085774369965632663658008631232050604814146774762609904983596329952708401910984882899233651415094830587112432625425620446806763431619540081351211048799355819468343513353350933778300794851259481986789853356452187625307566587798731993741206052844907997820508163729853467823026322539878498091047125269249603895687156675912023400325962733935075539908547907091394729831984096811481371250942048438740287978119142516003813050755427754260465435310253931667079323224976325794290082601804908260980681251646157247931634477589251932966670345434175479221865336929650917721777946606880842282919164906144595946766936044356487196088297767826151726247136866106919400828856898526810938107124007393691358613881045980416620403082306424230725953849956019513828236784481543698691063368638920281689514535133384016389916452203735263528388733041219238378486388154167573708226404611716627124576296271665429050320315271158243944402163825368918668206402686081381154661378853561412209552874512954216743656531059812283871288645177499475178309735454025438073087236475990002267868842290251795813109643761204144205600722886559962919819916723518313137141054838323235869789613409250886671913988354518544825444244762416619319043782487639442615676547869306176637491028499551434595755364655078534032204361799881257264713463562706773978472127145529137635596279521489392468485378091428755456514901784550369804180460431588800248585484221030921317533734238793074995975287497023257536782143909735243869823302484529000157861053472400014601266157077073802641823785494152344735661094707359995493025767742949807234619415456470854854454337008594351055310866867593658980848576793543744471782221806266375466519534599785066716191061906850001526365022071599925338902863344595259576474965674180177523455462678290201352770018633222152102914551541166155622397046924597234003982699372542210259158802720955675002783050590709847023633051039901123379478997504296048117013583037530368991666450074656994305846795293557528628864954005326601118019420571855616597041875252936197586796456206004282752970473766329166265276829069414547503246263259076640551403999058299813227963166678672835747858901093523078413013945332394451769317408110289488548093992791497280086639957711323004773396082932855744394195687116942329329774703633937672295506307177929366259967894020191478955607106650417939466559648242884694960800387261856531128412888110197915146129963546018372677867379858659777203484492652087518211603290878825889710916141806067277558737158846084545506645767002500764478268015034738419169174538158714235877776638525465616701937725100837190077183901093939301556839779407495500653083515272790185401962436867921514678532703482126542370541701133178687960550371662896542573467520763649861590724520631918325104915243409101663446212887578255405456514280252822093155964677069149023740068569034055488657709284137200720457589353094128585138411982766833409021370762105340362277468762828586041106717917649316337967544015706077195598342619955828416498636308514437384348707194665958584356707172300854892042726697605757371330925534175191651124081797016845085664765920985036871951182958079290756089826907763766385685270862558365743442982921644381566289908765622423136279803706252669234466803169173583256902760873833798229720930815283948029845369638425160406792076894173875682229690562306827122792444080818907660796742547683644304503464806403008022986749774633964130431175972477772116684176836572870286065177088272044183430734628617085369072687819565111074115439411136141636027934374254702045378935765877328360656269546844113126906692708401314906819878451127662038443247890850072414730026805118075126487481130727812833806707442339019523725353654998644966387375492325752785075607224468195957562760731079069045919207349594824464600605186890632594951188711070715977328403918392725326901291895958048637367960473536293421449660499402946591751859859041674334602735260935643568035729854677828610534810115550922825422915169180456201590174920813768154213401731899434057725342175124956887252247786331370515324118003076327057422963548211197652125610516442842909525447500194958901840954122488099096179736003065299045822301043040351694378441467136339857087865547800052345230613453839526054189185467044752216080002942948596784623196616941331377671448431278218361583319856564782612300419383231097876997750159845840297017842711302085917837398579673711089857175276916601863439263801130952669290584338210739059768830861401598888014094669496566881566769541613036602372559702745676118429565345483774339028186389596110556999040269840879350813276158012934020435289559098074200473426534367745786850862648183983899878309010238128519530654907949919128557847409883306314310895620606697978780011505180625820458574223232459992643705976277196698198271749745735256800559854078169971185772961029398287700355578711871722391980786218573967285161223077170676323497104159281686365668616560477514053422009193913880639928649945545787502426638832410829334441636960756348411750560837429675197092292759795690292775746220139056481072493846056436627097743901677787053667635406060657311989392359682328318264535432789981890961367693110091754189098842544965939768590177085390634999569812994647238608836746594082811248835052946117032431476986599480691681429384029731079601901619898890824254669606347517223808915212686610395039259588465854430780446383729906412951991852624863345454124337204083639048491410690823711095788675714686917730174197223701254603921754594306722381162228912767628112742864997587572646513201118194812021504498082026911036754702187814170472815508469354428004407764688738213628093446471846823710715177623642599258135539640129330698553747755338790999219731952076275233747056766520640844135043520246996914191619975820014909779716813703898530918508706817296117658452950598809103446743366065830817718006373856233800138105504528015764562878322268503653475906965914898043396199536420349575327462108291086420315082390879188529366318582716400899295109801670500022143509632830574111203502110001782546100550185560982889723304211267532691366603142688113088258164280609272066328429000667451270005701205642968714424657340638133071525445318397976303297867607322809877873015260779850573111902302219373936788441287748400159932583688224462265963106738399228245922148833118956405457264331100717159370578631387998718885305924116433341523373544460234566716861894518207984101022929475411646219899873612635121194841715031695822074180821935062250587158152164547095021177633011303228544950781111366214835228582161999378957412466748201955612295902760521863301954967755134334815483472104486961511359650399501083558437922087878579676521448952564585694894086424548845013732371621589395825463367103068291587634963556391370468754197643524124091620211242304410639424349116652908611441390341910269176851226833646387066493324991953347250398949568686754604626064727948446424099880895142324550463789242400415576381651337816819172197937679012862478612213649997085442927300858395007632802133108788286617484569214976328792602893686492419726769545523717782915435826794242461897374842804110016437136645804970424693333179196553261513792910628988967374104444611433684892340493740494298795733308046658841366852459617960532542154296327153069890107222742506785661157353876552531851793124817526219799452381165585088803332822034390896388682736924964528199401378328581643681240431154708855007249746477527644196337053294612239026715622057280992131799291124959242274482446929006319707111367519344756061961792533382236834916531183128607391918133300425288329016180004004966650696909055930784015238546804841915676055583955371617358725776088146319517416553080094511468903570583065460481352691187296558821205737957018391122366453844519202753828216083668071012730931178506606562578824960507128220715827934620581969843078861578903761008781981479641787114485572358926084307373093511037686254669964178910706581180468888036962444065281382587421472531619935837836347187123859889764171300375802499825018790813689178680122615598376348598522952768286619797179413764888682104751134301660763685140952203103521167767220752246529999555587296659881535153091173988677752223936411516838477749362195194117404642671586952608712462442018059358011710068256751197727713073674343835718338139744221779930066550984862812002204185917689113554998198504595633981908040305622201557836677659659226451457829485624332757789756459727678828611454940847225067895720547324119003148203284185113519961445391099834532480500367861783134478975279758095377160496085535348958002131032582482150852092479465583413430379081832911404313127882895838649752356055314950632932191236107963086679530202154450717855284194421738921031025853075461999366718126509798934651457214819752207468199137487907589243497594840911679759884830442998149032337272579299073317985617387449254861398926304522100084105686240260069751002266023674390302715293914579298815593481663741373135162041276779744873193331051245995166919325338594142529739515808218440241763123119765899465500359230081967386323927597457528999263602056461503337583603675294760540583954860236088941898670555838035371747749248717160285766660483410541190543562138776179073453926210845166446893847265067981625467119720295091230115020104572675912718852913472196825575812265476526739636410868452586999005399726610896012132916413136478373623824235932994400459956505850934394417018366051163352505528283948436497482792183034197259675038652580142472880349016115080213705425527101984586989238299042306864731210840184233047260552406319853457981781868074036887433118804275559020467025347467116597372389985845545625190033575013243571703022208805215368151171332546489110911857876228219676206781600591346946588526716619820441663691713175727784384940358870397346802020667281412436011605277987528278876993135659700771089935256078863576383504128815950663401628318500251185498600484313516345777368134027487045289720385025473390097410845514444814791977388599195456313638234991963413712943436125699817606852619477050992683764783251639872740237535315858081973999299914159157639800900067091909120889525075184251579216417984115195415188978019642251484188500871606494655610389072988310939129909613183693192168883216039337949763371404155340633680003236441088677186653983742980009254434648104292726974009451201034285100726205182294782271105905403286625565159058563783480330985166260385042653807205870785672813843604497416958137198629425594728052628894304913751907041996364263649190018204352453824951189840909589945591750720613210058595557636377722054197917910247445094466375713366988659176389038584424262504126726910246790324413326935705284546046673025211786990120538069098504720173183300072655185256106387036080537571066052168425903009630856028888013454641664360072267478397726479945751309152307004821335076615555855932188173680115473841510939046802762320616517143069338503115102035623451493218351310919694009871329862216168882411785801280116627478617019603557419377419025442560993285557563171666387404637574104056810452031802288543966676746424100887554478268235226314603750680605470797707743075607823496527690508889750969804705775864566315181588767536446224002187843679706152157567229615752419860762422825072842806398095084549661877415091529200077946499680434658184347510467432718829980795863618466223243326565372869058880213471232341486422888578660287674077670193029456422830103717649596817186936235845145441237637942055702027127875271444741316772259809680542268359366023264972817451094828965829168176275814075272392118389080525980728900743501933588182276165900912395096244207565945754143520340387263171005141523017587316605377334318793299421193922846542470308551898737030038169657290217562080671602853841522155871271248384668088522187577966930128208140296976728436648946416097985375008965609685633824528846164615954374271523975996672454508411455189040110023759857177865563402034819279263557487010149299713855266279699680188602339810349145636780016039942189328335840356935321038165406940958687794158397969591971792275614920618983239143146056508133430599679828791153916551901150597058909038290336286797211199745213165773396126255360416450252007441439633636301310010793444831118354085611673706888663412792569696929281714040861459178778046790723807839979466554364497406668274105111362610295742695718907312950293821862701837169690735829466430345151417611618736892629191353697862004584192171339713862661895999651648457771540501131675912984144965981931246645995731134004062686840880260376415761458157962057525514539123304823823647686341151259977236220472152064206493958477903048445478425772573046512153798534233087709225514365790640830714315721058690756299162342578985547980340762727115450971586756829956257158797563171429789658641373884153912622282553290850901401024076448633268352493447998158743103604650858265131464322583765233144868945745845475587486296770774874844620538235904275709159485409061813570521939408452281535096619219753144857812353097328070508762731169914813060265930632143045735543183321800677162783237294130276547572745017195909580857130681264176037516134030583826941323009967646392768460623629655668079443368039869378833146398450210748904663039745414197699938590966821429851330616167490982383279483090518255089146209041454466948690739026586299598506811191584595533385758902958877119050904107167745236238248914211288182899123995330166234968495098784837333756476939970734391163550257862103778648649105241265717946491031182449743540155801279552546289628741844627601246810823926826784094713104319450928221059387831025618046047821214569256974806364343222048048684463302758852450049389375021452060183647706142901227379815069075346723074984528639885753874128974229168060045385919005229914798287856597255106501230944770824814233973043441387380137454529300755207289922992787764584214470179172358337196462318975514509138759315829335610903450759687804189046342488407033116994314338350619071727636178772985294772746626824504265551485886698617060353688083327053107320943408005248721887985132044723964494239705615810645795379445959457495027887452191660018913304918259988693792248991927433074917843081006922290681673559848393071868354809237395208841642923795016535739439230086121118776470234248396541938496528901397840983967316798110858269460749655815979115918177038309141536862267144970453221550969053142872620117621823971285955767643672021702676546195372109197412385753951185844157404524139079210765892499974266295764956201601949805193760362298939997167433579487382036707570131470073397669666270537279817336897577899240910666902153908524553112275050266915407759170156035880851372550357662840298106813722720737862586375270788486222262790437561167389414300736328845262045100578340999012063970780721493604675496455336173577662721189839292478723455575050357292310333231228005461778080042967436824964736218031385824263329492841588828209225829151492599259342459298060936158266585031749335840860487878821978645717548214207939884120086700698491257815778549254200249335901497640486629139665922405892514602028519464977511227828426287083535754202166311928919619687214342231228348844310196758680775035951524981894814814876646772938658080187350987254814162123557285175438797047159950510825986465498108961645006428983025126507882851163611416077799745768257016088091387473063877088705120679798382749749864138091683246766279917210243654342945247398189169102721767867935186239079845477796386895384080834819443374947961456103609576696338592404698778871575951368367841391871807916350665471517581534761664968243015646053033577484521587361490317577347876761872804524674201773544248373403596645859122518573372054941513182440754508540751689784092401619565901349960982628844309307525093791893661064521846241358196139050430302559587192406376807266619056491760025053710056128208399133618230557158087561887758399665862646424738665605897845558412535519554700542935488626610756968817729686428796812410349894327447206201477766839686093530378218415050805191283666453972383491755326544171088291092946140507550549490792964375188093032731337359218539340721028171114476119323804645683644858937828296454990115637127541042211880027684155927266780517030504149364706319825905641842495627474122201707761701006412663406043913372898730054909505322537071857343820504901700745806789395627902782354729196825747533248495932394394655362599117989873037579289263346509143866783704116983880105772003583310670695511051320133735702875760158573353123282189335751918307476838744539137088402484424862571895918197109131944458175600352473849976128340399191891574787663065171869392282307604694583726954002907169373169293103809498786204538251526884143752871135955291005948137807900165818740132338672811764854675797659090105234431880731768665922715112445919016843975844145541184761787244121938705749221614373132888630737103404296527072821772372193875339789185696169022963116092044464716638912332166448863957216994775523212567835389594200866762106011853868132851332420162592779776825056029517048307774096140990071259773720846100901629029383698592790690172382237597387808731493067135107989692032984882526228857436508537134661940744001584938682546639159762096340875715651090977652769408954028341435917785349188448464602078783103469318577220327432133926372713369502797098948905774722671834193037200918503983138666841830664160530799220160467971726137334958332346953380581837682068273160534012049324442466570605408451463167761931769224022454241859190360988501375978903146522073069482408938661692667852228247901277543078663017151615932762831948714529082160573861178502433561386557128805325860917924404249590326315706341050692310518818379295478371283578084107045685138937507222834732848867558883308308224203627908695195625018462676716265364559773486838836990951788842441282866563384430350454126200842461322342165912655143732646396040636563240529246461273346923657355298951818057854889891148397132521894955382921411171841390615902954399309530683303479242355618970604730895846311336125901923666559341279516936987269902273290034656515679543060992477334259928758975698834426496202582517295039357392789653421009518614498773235725193368972615970097221598445646319700890628800855617042291937393479700061627687954689226859095237744776483206510493331782659241376391697603622183205367325647023421078300703372687176031312679473219243557729521987604310609075424912112855362771213263736704792280270242459511652205567534405120805995332372184983958983958115248805187568011409108838939324788840658223801847931292544613455326649135694848556912251467716636680969724358197610776797090054918530651782089514391471901383022473327441856968265790675574249788389275343332234586959582100683474733937252795240251421908114695801201642940713509238702330293169660648605725353100739030412538786395871240805680292026223654471779617577598882096740136768004281551185822862212270218829023583288147612266585933443135656580228369680723034714137961588190041989721185108836690708463304978896788616043843002399375467145316263045268783920355290556720219044728604566223413065847938853935975138732623105996198789990892751546836067169853224459680999109214026866357080712181438095904656841372706902461593713041851123463285911869460676667032659586203679594558119061965120742619218644065064575215666007351169389535806281593508329329304543377820413721753470762921953969603185878582653803088066080809743120667474606828959370664542498879033175207672024234419483111123130825972469710803581952460349644304668804871919336251943059201327368556431756355102752788375065349367527319174324667831068156490583006872871867258738748334620256034073385082907627452984893559329507512579324044237243628153901954344421808869784143524707308807364242148643187783388575355161882865721375956845194045785975208517097240871032868791084083200529009498018586685224364075912106349844670717110538559857333386736190695628840805558969638968643397490601934554348735128488043709889916716022792429812186563755196979536749781920285744696326480352136544717135771178417645983845712978202320499799876873918361680421928088006162246891033952324631434054292625289467454362558650862039022716945334871043684385672622567263605496942814399077314596129345756678266153275782903961619970813622104045260629270283824411809695721740329581572258191639606991925272829253559226311286776134345088018981494000710866499084852165023659403142673244245944658360100050833850591048242808524639304852778478426979030037555248343618164255069658737351598953881290783596843359268671215601389251547252562212062545034239103054033927141710421585630942743550787592001009705184892151668787226997695648411296568688497734892924551920271713358604138584420788284965872534519784723499568768747328654478941383626457641144844071994163771681599434370885840820691921058246882375133611268005288065222829503884136483951844314010282349813605873120878938866036047614824412996369139785515032408424598425825473688637724991292237063471557638905847637082663083727921733517895716973794153113078521787600876654079323278734652242147930609006396387204061305130217107643828280359976087481249722310071155441906970073352750499449939512214915630499444809061759291570130790794949936557194496103001626006446304961034773271823306352845060337232564874465816941967159778743427678747556207980650845976605737579070863078803535694404997952239428082154977607225130664932066533179332454956023166557650810591142406233462631852806939108480542390332074530192643814516601273647054404661623453318979947468180026070998809091068991965379294863085100092044518437009846945118158532111258354285801561113148395320665005572307273563776038696174620623085230891554061753725358620332577307833594034270501397755057194873501337311869070859012434274396658239272982891217531128080364989122896613021179848186729853240105573434570849181163043960915565111163851571582822783018926548886106014916429391978866511605108949847888658292448320827379477479975180888456855227282702563953444185056776444683936442848563740244689581550081000368270287909556722565791361843072858821024857430496153979256307806272760909516078554041087930182457229401833751755976487573027375126858248579877223827355441911938955251099479403070889300567072926678746291684781518358463452042897483167285854315463494768862862807105607016828419715903039895253604399216785693184445431182431472682657043343651082842947642873982790489392900842185749049981513256994349584061625464469844690245779940982940780610043467053279937281280042137219508946737569393300028616417953559588755313047611495602011928342128176876502643512903838284592462964740914634324347608627904335973598165867978608398582147477459896392961199287054662495396281313800990757045544377768713376478464489219383259864845433116668068305362492273880735766243333901164719809137467557141906668835247130158292647306429235843685371273751538326548028550186097258623629584204451904625440661861785604537029668261693994257565607901619544533606295977677161524309168341597084922866575607693667684701962496896270604598090795573913023826947879969957530235057255752346677607583262137974702013891659225338366661705102249621570694174336526260747591296137943370374640881411246970078236554162199700158910403777783102695879767259133451905261222491277897520896648230886241399860405937776793889721394095247846602505735531973283373931150104777144620751803053061227126390217532975707998694560283935247951474245632929383032979563948115390313096829833714069808184759974079482132373710683373841091784039167463313678427179833528839188164509529470130534399500386309922437939767445985086793723551746999302690339986474005769345296462394958747661274981727187361760444719453651710762672088721841848674109798698986865185743276927300296424976668460414045191696115662446073095346176138979687600690901043654847265317813704620399581396077987795103107460907508574061055486851709184254389245192290109060400617052094264341281723444971555359930139678657877043703967183326615012069557094443356199650493899936217146035917488923417295497986631940060389506534291079709194639457900916890545445989831587974558031268691811423401830046082426168795786690635467490157408516829291182794931943925616107071974108163033271735777107767006864043193992911873747509649357526741840764477525775952256729171570966882813559572835920378830118045551598937472435252511932141383473378046471874702033407461005398751599362664468951961654889249065548080119591196446450183660855430685214654982694320027682300683290181267040377478491134197557559052974732149900974178979112689104030369083171918329156516424033023143130447876760455594839571061851488056834743123470522850659617592548771494539271633137911475950795826276982377229230391023301095611973169020114406490085370708531563747876918459562826931853530727680465185032796334795368373876692332453266468376593074071813759061477014796045045931422747068709972910888661019417518270549821098189081661590173292243336458037767710522309825311485440410159784196135932237368232226756577378935637529255806794510517066402780017189584219761497001695338650254049228925781094613819191129194400947383974422732906941052637299487099857543974642999585797874343522591248690412545573689010752170462916303375859162515774051473257038380826994739728133365678485807197056816826907108971189983035775958605382271205689572485029261830534215817315619866081486733386541248921492746440609861230992234588558609787323642473071317848999813599714847991508602248701445087243054201089039685046241211691208719262909247405553848552390692580880745059955154205380395775483611229756673963693263925327284949044545899738536599640847352305628181189209970348523452243187862949346643191076613879822278967209066868104139483880497596514891587780795767578491820439407703335599226588158403036869372817555122240705066167172679846730790443475927041820740878854199712265544007687669348116528267669291667215683152800985757953005276437133414045792445636762626681019989016555255558442414365498350059502376708179835146810364489234662235054988053130153879479219049508198648802134345086566209072465421288656663671047669896752790762525559760926165206187629446055643772907829407660411975576948055344427966909162352223920841907545217492791107509172853142166719837880444588843990488181574027922960449523310184592781899580767408522982236432695339144055233846788051509665740604727344645618393293175230787444572298314854744807495260309578999171589854686136096172346209972071585462506085913826177206784097306522379774367629134687848222325301836566635138967194526770715577811336673358237359695531560687262393400214268971079741071516868462590788253008992662598546749843420232188359568681635927665629860316775938699751648707859271515654079359308441956099422352972731876669727056386807093629598808945589215994680820814572853879887296043703395207769088554828170272522549049000426256735448199529135636302798107822574765995352750010426361110232226635239546948476104559419777636787354701303011309312590105390808995523938813784389456476475742147510596516620700963300818398951382637169458471116706052591467495002702049777059768289128507168881655313097783676077998146161061531233715313356986019894345761153863841187048944137159191611334426913128238921346213317664109749022781299671036330191646156253474255021845309546630450815535360277241207574866947656470408784400802117047720377648786553700763170807061057202645590173725117379911509186022991471092755571620483383450487234267954690683689009232292756759794901255072767674440745694828034989842491298201953344618313030752619211690823836713959647858093620305186381955945080602471135253155212399210614274280708807098975523734360572532528207817925405137746531847606330423898644400788206140854025121809600325905215624374816564788906571869888653114691401594595477867701893730162678249785737983270576708841572585756248447259620779389004093293353382923327924039860567443799877259843240621490831618733847045934988380157498511466363690101432551848725735456954153380959807057529698561818839563922834902980330199063800104797679886327669717581624031211892581630264761192588972407880528317233057177854938261551489578826422274493583930232290237260385137444482472983077921892084514300197926308380114984657640860261556988569665083353710941724370114924918546224474238260574909749762438426978947319944884158268180687139717976459195871978004215015120732897535485086709778358911615441414577710114837756999680021226957092670601877774791545555959097297265187761128864241366589033444968939141261289641936966628648475480827603420455014559496200773185399636712593256091086765280677188934133004206190997582484337149736003449681021220857496726271887985742363873582410995965927062968132622318777890009314348235104016848081319137974654589042033463089734914224708355664314915945532865245224289824653197188977409196737722771993257370682515218455269581483518761891775596870881099929495688263647715213334839961813638205163650807194618838099431703322438523113621940386573663669258237771204087195802464292833765735307799082438046080778326406024354540908758128203096721549796864820461503227047362040268906460424743521191425834331343124018997710937207138497860508047836155065935027823131633315804158270353758727676441007167666515275553026838956136152187914901466969617846909325524391393985382567443791461153231576991752971117867799689712783239005525977843199064332849327787914263528999082118299387501454229426689708422479656015921657301934393085588206173085774395773292402113710522057051145857855434789676425160562786466490980158510862882983574627895443349167440196708672106333035318291755584333657624351042391020981669553472244928782302323716970819655355107953534890511479698713238939121774821974037369452921242696081769708316688882884969671034483308785725269339378658610687141027276301282072030796617263034380999274337877973033905594836835899395421668124160039083959811639445601206698544314483201995258873468182312866663781075677914082442031588619798492792343583510185325105916500736596184520153001347432123782448260164066296772596478471443661143677514865957231238693357261946252045202162111123908581463998358090115807300122587251606043808989840187788991789042452166225743195684290395385830931442240119244798467995679127948643507683528313021298150123058002566873572428424281415921552463109353634721639550438149361160892749137262784254143269896758411822854576760825588814116185063819028647730925328058533167109077697999744744084894787596868146470286962348852909266083917661912450385913488669206626346203185363518627929100209843261327334674752958237805373508471570656360249043705222925374655731846485787369934267747171806852366219405995517218666833852921538458861575082988632376254784821579537265831405551304810346379053479005899520590112480698456655669332837618570249101168846010498297140923757951646595699606730728801308672319219046101243992749821713152008306773458623890068908317440792551999810973203894240261994322973700883095221138241502120836357645612291651198209306958462055607579369007530657848661838429770465115507053384006301083254485120257774791091423342861516919215204677306437319001436051497988129708933228236365430659444235128248728924016157360847271685030633562453283785890772110455035271075725167096047073235392313850607547299832569167600371980424998748950769706001852388478170291962635391014647399746224596983924210535665516607952944109744068794833170392420733752691724680770622995034681272609015848109322582261780501677929550589869789904219742473011049653786118493727978135555080023108562888725978309388570613616028061467714334439958202164517693378961404732667763546738029367978396803143806825758188849633684230869609113832743698132351048361928133011852114310307524233352964926031341677906358983171064505913282163452037937905259566388700717474213984456998993534147455587391056805479223424984963977840789205405767110465517602019359319901359595191566052297651543499677101287982206919594995837693918812809635476023557897826961140547675651763913804362022484088539320014762862743682847517574411487999306907201029640227103728110209170677200335493969602818029382783979009838747282063297923977815010938505623278032107360073195588792919450794427836895279338285388597525671848448054340987774297327862668568885070389863125977099038773035187319146420581146269556874739589359466793435424947624982038228764467667080727486165069561049891556830032854589160003472113258524367695738785236580327997807605719869965576628718711415222265736991148726364693576275698422244522561747971622961003320913483093866196384028607970687524733773908463762079420999523276186834579035332185192998213492746803964142040966156500031848635566581806716870444272724385004836261230739555479297003528804569473912559928564516203858158657091607967919847146480074683740942037534726030506554698414688552316299423069108798978307036451068788333719436785715176371597956045939506945400649173276997991341320476364599957889712219008751312530535329719818078559473374920070942182690161149763714196131263112556563957095077167694487439555879350895915399686502780594705044626933978959091122365777127336710881240414841549288240462189613638418593134104281414964845487709162541042431342076508250460703467423715843430547416213349244347362461816083874712826362360611593637238666866411125727806994218166308345623200283245473478718538602916161841198922858180524546076698356556717391738760359177416531041599269189099223852432882264115551088101737127018197473907603971430508457069488254039918179127750934359029396716797901228832033240034209025667074375910094919618409625878974844003283602803255106837016428348062447193359350562053508460014280557704491645950635061765530853212445776785525659992362591405708052119063459968594325636195880540916349270179629819252298151693614286971227579127347243872661067388904162764126813032497588701827874913829385368198348847160572522847604336318476539420815524151475917231304477235895738069011169110832865582983334052520097615608490229111501590997163963681741092925811033346966074819388559698669530919325569721149575290746101873173628706223303015922276728476234546264812143379778463507279190666366237992348485516797051830570064312104872646386863224326682510444263620545083149680811016268893854182289593241326336853319551873228671454321599694328048893838167037529083557684515700263000822785698442745636840444221112499278169181002743532804352915090731616392256424239455069615944126997788510649785832143602602850452763493081205844585346880236469331674435783760535199675329365411228872919044257457398065113192371189495468223821265247259791337152471592165621090008033212075752349123939314376133274368576015746307316083740177821988369740849698942689728230855587288322626550582619070605354734816381560907670191682399785004294365767732900152342838307260565137825038944651333617468030269112499552915573341486328789434672185680124688935454919677400578604997016877238209397565191025115905757420494854071217781602135585488856469517184473904931135792025995621877026758804537821905161007329933028734035352025879563361177634377853617344917125983873303419573370271997420969645173774641204907693891278159106104777829983039707986154179186464486169115927167575920446073130523226785406078428331267755170663341657680150423326773389214364063073137358962810180634234744384032134729444574751299095293862951957937626408789653205227651569177881205795706212706049434682801785458007997179806532264215300813670765308750102459287402673348851967944140045120127337136765936512673751972759332495821557643730475960208201545314198110837555540093301064325010652272790548259168621718206743733669763293985435514454949814177111427909904978744702234975964765406625355199141508515872301438709179436967982086341574476409109626507991689066564036308150522387198886697238457112192745124851084203896122068288956921482054958846172525617984882423536650543820716920360924491894078216693314967499942895263419723902529002597802062524003447405773782784807185755959194673423634061723415437711311185324662050198754771342056202824071188591279144767668565357716100370565446026439029980082113087684912264538981489441158666106026127315349393754779834228182262977062678830883692968049234054576944664519505719055519925949516587688743880600762562226893320632801260905167857702051997659740122580699850962878302118330245835069487693476284517147468415138117694807327216888291624574901964280753336593588682050769898888967693700825802942446451062126753451627103656374437492881360852165243432610793398164509619730851830808169986658025589933399461803336193661195219017151876066412774750879829502369967494831598539860992754143069610344222785816703381834737055919551921133322523897364445651726304720992946134271701435716904849155994071963414438950170141580784117846500117229445711418500258220670352444994121124384332883147629849555036706926307189239349031558471254805672288784044372555917306414651278198834723581855535334196762451082190872866459471239730153072971031185348604987868271678176625910326874267339917084358020343684648077285847017395772920951731067099371708366242080133732952606811312945796007645155151005174038244817262233487748859082127589864169155500251089795149479551274592417526610941269785412094322627664659856889993976358150197409907698024928773431815158740009509424407574651191008061572282334834409387698346645871477890051533825217984473324446919808732438133785376159820233965815799616358660844422963166519763904707772994080195204752991859319397939658909400028562607566854118963109408158302458507193004272268611619744357919255892837007581282885483486623236702825118646361891270182101191715652924822182351281519745697359061761002465174633579448386003487345824279787433330150008861015647508882586128350153325521654018948776987857397751229439301100907004499078475133589382656351924717564762283794056253405128920133200027266667026879085840127898539079869347910525334645177566478826524669777710013659838055542981455112548582165191935007552673083041756728528140231363280958544413441787420429828351787365039418575235353363002682289090570694063489011716600039301756082399308388208118729269937451071335169520237294738685694516054483397790947217248190789673369534958353488923338792031298057047277612741193132647617166142616592701318211952153039079486155827288431117911526030861546096925884375005506461059409704516369620818265671303442586532612184169397483254690440569432355967308125245251452608771930866558846592428238538536954988013207338556219946948042022462333774771773480617408933566503934453046002116818614631308456037919045079467837873089558222997159689970435622467040303385176627226095277809549292018270617870304289593737904449561946093521133546850852622855822569431932627490881935216190306820155945246987393904928647056702033683764194564521632084931781333882424456823406549696341251328040155131562229245109178465664794801093442580576568892576196109752713751767213230419933890984688808937788578604007693764586060279366649726729070541042307726189834878834358179904292225313910415581911852359458461710132694888397508777126067103939786239906643376226031133588684803978884341924461365084932729852037875905493466573154691677858951906313251210619686908928202724029670197652275514065967302291354483470637243819208992290711894531486255538539308237771986997542784348533407500002833968406965948847694287105684989727972615264809839023791657492345032201710202923868087325314413294128801643647715207807254886716077069227174782038446795498029095600718156525695623260647632244375561775515034113022078932381824958000195115802850719569950633471518318703305736892861395974396742618956256524605060979508529995081237265594937899436241856292782065296105018685873580467474158220019732334117397708480451223777838213975953498555759540614790894043632447107719443024471110370229088384430009776360789368718570033005567931584533564974967488263370938221097209146918897621632518932830669070412285088305841149065069475905673648628950909604974443803792503177989931117204700193796745377382980451380123221678777836162346978201401578807597706552955187886482726798081732509761360551332505131561986014487694563029860738433119545372625136233259944940017670854763864078088212482118223009256463963834953559802864085482304904731824416691036107637894897321356930130879907386028847654181544505874401916561220357169505631775088826621114376460360528647526446004570980187470571738053898445561724405289593671647149345836387281613564875772703375705743336993993447400047238263789726954403426917485997496499797163418846732011064385232967865827947422805586564411971879700943370417194888914346132088482302941485826656121397409794197175626438476186127422718854408772331969386377600049495978910974919476605477932059951777603187661809333326700852355852688491604700631986109172112308327377067836473020971626281660525438954973777309063025524877055946068089625354383177186483996702198291270683032968905724273630353329585157708034800349852246303786669879216194422920762953598982391518701908022911691093360764570311621331204844758256553044554660480925849694152630045850879196166577538336262434201386364012473605413771443596091015509559423900249115890491099894463786610797801635505466883173107877035710122145153189931939697419764324044217393533652149356917863064614959036270238700888257500207486106219468195190116640949470680045306910062900556432737091098077492644413401542946718703141283398828303368257696813595932127508354888693277963617562118370928640989372583699497907012127679863580672244057758462652058774073666974789826757735477224439200734981447032102617192172376361796774578246420600719935544522554069860668910256417748636134895625464915364404553263641458874830495728692406955325268956309937751913529413024544178368269834715577282976310124537818920534219274810985466506057416564674755965730132970481363654129803337513960003992342490986002401625476415415407574658791436120923137457892578725032366995486843478576962524789232841879115859462883605077190640248157288042335801894441267175832998836728507784921193664140075168333065244764298118651668797270096387660465830706050260865780877581963693931816193366057390612846144759542274324343338728684025358539927922160278004131431137273278730519588553359239102601393195935939882559800706904144399815798532311631686805697185774883237986570118453166081091280454084272556472010214521053845433723566212219090004446955593435846428678544586047069827927268901787490991385808016208408711162863672655445978168282742456264830487809998734775463874106889890974694281906292528823027809875063206042584468396741487535302153393376194156832524884079232643988050938677505003578304857411062157493894765853632221258872366217291782021965470685796347883311951198376912083099365886485858958547339119634624538375502406329077597251595530784954548809698047132860620458906311981228541839980320328346692477868852721187992614211262400408958168857893374844821303726627476951363758179182631232246509861887386407433595174512863143025863484067283199181798351312882488124781010397134030163434849956397903147268516131389652769508633805883094662197781355710985903274015629822882813604431074003504507049520728092619108687589003362129736851269470324321806390396219166846592038826048417284874061671214734117356113627868178270951430774172601354212162827066181237243098104145943305174517017984761757213442839882836043825374671591181473228547957178347296823591929732980733184972705015750809404595193254854994618101972615208499247167130933740486751783634829038401477065299094651304848178840461730808973476388385038040094846794668868943490675298091413835480078362103958951847707406356981881841243434507799304889797753497359657354751516760494249577228317198836244341843577199210031912846418411801115386428909161706676752928426800441602285262404183211501255444190086191580500287872541551410072984004405910421885699586723917621881901646516354053707960972199299121651817893999498131740263481450838209045216994907653329776902464144551403032569624727128639719636866705810692762929297964035738759532872551765654906582732666782603041448623353280335106732503703005545230889096432982478935895755960644796812068920333284210677473058655915682815699746594032441003341701735830690719486973484424773623470639155263736834531109755828962660158723403189660000020872715813764237539584421193135398287552097854971963354492208353119209344126267395786507610815747162126998946916943724981374943233566555495027031889106911691114454450284570430088496759390969253324302855376989746370446562412131002057742107236820429025168252399163909145262660443859452178285972054685071243842829701691328237440848713713825957402526680816812508379319167309912825347469664508774121218674685412669657133295980089983704301945008444645397572650925068617346238042734037225271334097762139095219543462320905384512235468638452817507900181458021038732615212180835517322000068123447886488796868947041050436945971787575776118501576334253106295656766249552181183451674104827967177993936069438899282256800230633100680570065873013606296748964353868587777012498835439309109740059775644902389642895096561315859877543917985276151973391186270684260426635532967865560747143879052696012075646598333713142249959935529152713239624001837156712945174512097707991125707084288654916387065061249180014629320171551533276608154523460819144366109745353370529139495123936328449347979844679954737017670763004336300180922956053152590935546134439482222646069005625134717684213824503922708321833584702811497997042594012659894403136432113637994160001244049276934120622468882007658361473722796475547505886212265120708177303922516433303849799670181762739303688075333136154124705741850114498900923183324497545306183081363666645659375736880956610495402606839874607345055605290123118539103736200321991363922087643189124255406110279005885840659385571132277179129951056995238425179186999269894967159049657714294798578324468027242142366220226042978812036050521989029257297314502551953720817529829640639043197700694584968090113193052305445592899418875292851821596170257935353230050419664700647187630899486924887997873797618268815922442602849848311638675086337296663177690847437417434656971692316564395041364435046920947341789122341330987956691907188612652429961193178241163462796801825397374153438504162585480902782444973300884130192394962776065205074251842762029877043202953245221149212839278522404377525504996609650880842893551812053724555864627785437487729724290711737466439178497450648038468204756800487620848442672620684113706045431255801984065929079848425324899879041481648893093518715056929657701344024959983357178487806729309570468435257983360758355627311227330850358262679313563282468943864710463132130051300664363764357354263010129179029536037647510150829028138322943254699423206295813752403064977732297006551051155477272347257868184908597274631940963358001310752173098361234136179934701698409850878378392028118068742344562964101072380338587511029955766968179619368886138096484956950786806461665432668086710628996333608429542653211782460730619562066891810718243170752530297729658435869989749532056290438824184976340341722641650175969275783228233059008928791450181447494591369138675924049092283385437539215066246213570251592847718597291251690153204501686087245629276301389110220438988836741630289020315698603709458441836142258157578500347184013721472568052669187309616575925392453628848921105760895431273550345501917249681748390877243191780064164698878759538004119423764966965121891978855119441613087577005571147175407945527562085245946443992863948531230201673861260577708104123731092899270511183321427120437686725963635673111881371139751567077926894373938611493917923758561190756162248403980678606029918803495656355209021088881076637846033918664895607283671414110925139541667088896084062717861918170388830924256430020279820952993923197791241952527620477250846973909820578537751314149888134327305465556302522180587714441842587142627060594801265396641465756244475454331406303246730601041909182167805868601039075751408086338146286983533887487149276163228586958070415814910879166263128164030768548558279030567415094697431866363237771269998154079031521913116119032955264677231604620478479941072049325321807562649855974444584149639797789232126861218660686192678259132616681543819834354593689770725279766483469972308507237776039910557340028810441960037955479979375672157508091902890643139811432496955084997285880128754186495196247366721723352034018291752379963932323049090336673706950895646465262908304696672054940306139688001876893679476247679895452155367795198133563891031454871595490655413189930169129895396757990373189769961582852116944386336731531034350881107263118964582075010783224570145460940729914193783446513416578951374127783773549998011930701381390309966247743192705793514066623552328573141769620375852002780625042081899814743342014777418778868021203556586383176776972346180836349183792487001478277343528558364732136178833757175716358415941841661855315669838033757628722298316584525508270637843940619378932590875854725640801985111096448309727452247512615823109603218467382966936048868617206005317321270366863130266692224282605086565007415458424943904660637235753038139606697061905982422104808282746488090051289151934848903548398489806981456699386479477302264934431012762733528980727683999772208445684646132010760581211386271784426357919689123569385853205512386741068087274789575918842229220679971705371117778778872615973318496255633772079494010808817745276906132012289894209596868350065708709812394279003621889259286338234082295572191547155290259994305294372559179173762241338355636979486283690045746348402696789970591468576822608923197564950945619905412878408832177890310353838697312222684306384824589378838554013486672048668066533907260013987859120527665402221402035763771513347481615998209730108689526855157605103823694688375631721017951781606277963659934239841988463081934218395215464484820633547693668668956160547232979104665898601826148021557867991155198115650698660330281198751140387643869622157638626965706221385039412502333215330684307440712887126837457759067096134793654453086695888132867693026058524491061776134783801462240372049337104881819430462605993600186720347525499875118625721643954626389685643357571182691750636355260009644824665914534723530313243748243602175128187563903844850265312884515545805508222714615491977549430464875471040681535405734825065779390804763232899851931695271745808630507808545300879001765257316388447639411516172497359552863681694971915526338371063313191379885598988295935493417226026642868734574195568052241793465747905376056111475336007168657039763414913941941363388268865122534252090352177038109412936996980299370374930642342708950382386418971165256282430570985668935961246957703934155531762420194089813101571737735041229542798233371395795031646274169646777694946997697196657895321749508869144903437577035606469519678765858941220791594883909019749542238008895693048981438379938199958559937316420390653396215380973108276721789732003326518261140566228372411900361108259509867534740166375132196131594607824643231944019633572433094605101471179548122692967142108100568313446492782922106873026204625676887052100588674776730458642142564542776243822433993433662571944233282782953722490177451752383706643808249193293742840212892299917042186241949406157050227463894960445702742414869441977177496878808656595554039827757216549706997322679852769726422702271688890976999654390624633893573220834304533948978764467298990903030611870872158401890482737622470287034214793922454568419168459034898983927793677198288162661622175616380658544788247402149197010124309818494263554005797761130627317525113952214352460232137829467236193732394817602975020002971988402172746849314927119559665590244661158350161188431300446205553683678569146110215353724226690164226224843281764466706500289113555044689077957513570103328315047780504145250821717584402173787051712692456420401628086520517402383892245071882426569344744593452907571605535803060431333792767535440729190469946586722161450412026866892840798935688304016756632684266809266917191052010590833551647320158438574284184022154297354969584919673500607014304309341856821981790658040413950657866426634135621928300733555296702146720959606805839827711856787191287963198976609306223180057342175496023304216202126055906762826291130200341466811231583745448878046500165518448595450902999790125175047365339477106519428284790339945785440878338032513678168762056459403001580734205321181280796189793147844698516654787224931276794486816219662262839990499101170995610859567730405741751401395187789895805937470477577592515615760708955952653303360415903945836527078737058924756301642775693940205732947574814287705631974570619896978200598220802408348797557031553710664576753458151110506624337630070475949079729871056035175564262991352352814816520965171962970881481799251053578777262692514549848999233014557325609210529578424581481333065601393718151120324872164951365433259041133784541371757313042775338601921786758406860527390573869622696084039925474670589225253250474624519906983247749073184751845176862525539987006972305992899172139227378521779107515034854412587219457117604710782101873175007967641413496024029076460288229352286099363805075831337400861986924544171490729987272582485660714021587488900402930273913783553654045732551028559308082865847343281940130281084351607405773731075695668037562393198879581109741841313209830756480790076559327697857609418411226083821945475672029707848905894672811980647977998805312632639958046726277600081366831774517526947716150097600374775448683528147920016279029930902872744718390815371742342136482291935198604991420384570021088204841440368231423656711058188105298525614434773457259218880228678855627438534441187846037750164587440417477461013967290136400241717789945609006863527271275661687139983244499073341327230740685225559839348887553061224721930535390401351181206103439764658932290575467119739603327345353914895085835917731382018716756110457622611210353361342650602204586908517979389998869697652432061045818161471575817192978964372364884121498379080586638914486788973631605947366560073314815909972735354520018053497707552076636479766099931248298463088686739906520439112299973546503831709408618174212758083738143810998271270908870562794748325777487951694665131379420496338675127167454924491430729615989809141761825401537374007751164739458088776303868041157526483409562510251120933843275029569527111916067322485718301381400673192551108705445060807898403453967622850304223358028683396861701315543403278507918065751589904896161971461801976508477711049567848249645278287443772894605222827966227859533028496080811304216288865568209564098785774585678744381596348632403022518188051252299231462984187801511502459337499857355650071308028174579695919348733681438171702148510171081335685045473538850842153245316653942470811572278058059695196633760360668547912350533519224570751114418497727464093488362349406541110065429321711289846047619201297558232805169843210130227177027499313495894930663024933558128570616898246172725860967582850204072190254183484572579222561475847033143999482111380058403732085055528873751632955298831209746880747617256659159622085059994682586839467242889099814787322825811077954327783437792893510156978320542023653030054133193688701903327701642579509074694316922754962783614121437580924297203689479712087577770006746155689684592866726853739538158107575213087020015061172708499410730630010529646747367514895016791502778473311714173811855577621833342384513881496294588533582222717755427054198000002961014251224234345334114263741735737130549729545934501060431824102484233148236862899343152161000508160673836370269358366998411842634423848893497121530990116819311294393734913998078202257356121520620975603685240445067891694678921390383697950732452453657846443597879203619580547002169468134306663673742894523288268504111006822607349673477316967268065290974645694117783281879274281108752243254991213514547167768051469552228111455244748107009134055851813164973217953554775874698964689242302799045176166942144839839029705604900732467548775621391812226427236895798261401519634227136118793565780074543919801235487091236586749310415927767512808051277081095192630035787573273770587100729942949118094745572055010433651808442636864002664276827122786125380885632635302290779581951451494871187213840475954502373627110769449803116209404335165100179338695927520945886557828081104747543835689872871681324763121127411014694060146034972063444148624100122648741718067814454061981148511030637731068352962934176696335193190726768317569015876266018704331122490930603972587165441736265691357166551214999174418061480340829143485754090708420189932619385931881017832014469308669445018500357140099047282864991386748674371987022920234397753550107578799423938079369845271719542410677336081724905524977084705537910971651727704832183579166880127809099612785921669524917999082643625090319459170147754680664103760479094242595248964410481863323070547267147116888048634033042231509917227480974026465504692319646341193210466312165671112552124705509853082525094828401879148358876997923456204492200046716251695101071695401152767018971378372283845621889914083542283998701103497100182763500003897114228871125877228948326707853746955331267496268229474263418997070856621672770899280893400768132022776787301643855254565140809859875162538293769905181244344850963959107459089938665007805950536044270322069358804760120079460092694596021411636641580676739391003610812471501950574064708608827356752493961493290933145844285442007844640942960501430073610002827627130205824443450889592017189518280417770462667027843814971226214293094924739194471965891833999094568812699417591634163563170737124484081815058699826383410277137744068482004753485097694298791625357222372796659653824296173592753147108033125840066246694481213639720013654512099232938414699745378108325747587182246964610958082698961031622157060017392011351097815467332379757585402295861578704075909782149962951559485300569299494206651940013940041375011260828565109252479296956673696271680136288023854899387573654747411475737358807457461822897022613121519744450471893608371342567409403863835227633855155889915657548698112024808637293881819546552916786943239992578846744395649840961137276115928453081363372464645798440973956296201164471697518248987686250935057673556344447032199059483946865308789479371213230979061128642560338589443706189824534569673856915715261665566573880072465787178590912760065763722715911510435720920310852270753447284504282302133918861528845403838199029730128592460879328267697767684672835919666867999158563354929836883960002963049044372427008369319553762454563007911020462987170884954132740058163300047156709483845230752332754736787686646475393970781891928220890091613379505727528979372194743142131324792834286711251592742404394322683588273966321738500781942147580104892376960413425965152195916457015002802973029754020786597688527039798260886894275842622057343809056892511364302654593806540016586280708741781477754668344066098251884719143739359263554660520479860663009440098546743866804124100664096021078461824143459347961961287877361498273961142771733127724286176768061535823655624909934315040992287543136624979114628439747304087076272301624580975468190574772231059944829818314091136304829590087421842036241893459799405458128733436519350204564693515627838704823876553683306645380556139614140714692300685434970950866150708411658608884174318607526335764192755331045460875387657977421893407251452747481410326868462330361423183702499203865637850507663762092381717310827306072033266248880765320558986736510236578358129304138277511274753575332127247770823759296093180263054304994257367961708787828839421712332396321457821432895978557765385121225538926886580572807269376911040711630711601745491495561275647155878614513316216364533334084624359103828241958653119980608396424253416537085538934552418795584808858856597097615947879379937081463555403298127376941447549799307515356897943127942794861190490239754345227297336750983515870319988628928994212715813520692508254935973257086826284766690228798116135941340396469615042976099835741233439586700451823134626243811419468513496512270079093714983454517536929864082078536117100558213022242290831733351711409391110693619301997844636304762365571163154730126212090550338605666976026570676426785743817717094392032841449316830221443535377538361737025327377197653138085386140175799610810561408204213986912387733048416990996767075041579215401915341981496057866912807842163567334144622380296812645942467967615981575631646537937883172940326317958091858216654945765722436182177251612714693132089092654246392178556372747853662576889547914505974222730197879181401440509986510135900193807841072089799083406114485283533825743473809485406084149170174104651885596854543842727840783143125570968457507292019395662212439851280223415774943186867228184989310849156671033157226625047334369824534773553252341542357514699678765121705647741275110791562927160768661801951866003331781062799574504665038327026333881794394475806045653508499226918634502317768093741023581279817031673666771780519860622069794126937941029927979077445376212676445548935457651303473958930448506904826877321824316959203950585626009293257950971282251346709781038549682666174394107470882819459659997540368338681501237624680721255893789685860535310530150557546200197432963944135853734585662027998723781259273261184045997684268913391557467850391199274368569964979438503901190818013932440259217428978759036914653678080457461794294524979676523755860668318685454769297223159965770535302251252258716785170812032557669846948014000991921795305675361577640671720590759581578970847510172591446309714305992160261514265758369703466792205596772867647113369520786087706168281650253344910725595023100380854267386073036685012239701037965077560390880202714010540850687512350587433469476216456404576771728147781176340874479126693196087761572771719478751905667444251296804823843961854155149174393341813800839733738350624307992248269019986847971682010746290381371437211227434919576247340944813135066291299646418528406956301514384525786338218916005133855247181094272060348312043891993870896892045648649003280758945295692260736236526362056729890256543786523419784028930551721200922485538044944672490724167847791010724422496904789634671807905537849901990343424036768897016743067099066072030512234116837321702734345083572156913332645497693991933594298776089390355211691815257152419587021173761672845238009839736472305631897094388166855853042497366595580515159837959916765227441058010155458425822709478858023292835036304773797948451348389205738879027070294919226309532160905205072957937851397912763076618794679423711731087563689171583403029984732534190556056153818847123091347806357396755910608221282611990105956305850234012745924028304335585844521627936168540707173407794489644214104261296950486358311854229498846946366558430225670569162841212360107302541239350725612338601359944937676873838932723173200189063632719127745943106337298983418688814164677354121015981842263927414053189590378161340610632642590335263787772676148331742918334752882018514530153302540867438686931999670765673357999158110213333977077231725224259936098528251995435920231714457744122103468416513089261010318237615372244518601412120133787380926958759926581964344753434940925246585339139232659288487255201284252337871172930875354557685484615659577180914950246698623790553762643625055910145734924199751535858793738234434870059008505056035216493143999465018372309612254483960145571810318435168191680150610386718317867470013077810657501674796705389318007262648820034692729676242847126200748608885660024918422736469319196655603288795484562363005678903652767708904881566926940510054888085506814146949522220937452229576503495741397734663421898003410542567639299785800740021580559856530482291838842834139490841971159753963237701960441922797549312287118175786650162065351854215778411296984927693244700661205872088046311785797019243025552720951984242880453965625865321827157802015750853757270695014833048633113775576907154017237034187888481277445399443607387104805453243832815015149219948490969716359546798993429561914679691135619024642959565021148304352102643290890479570466731972587013243215557761737262098559586186680818426735174358706748402267508376266722361724762013295964105669571065083708695977739780510324435707798658171595460585464897712372859426793395061041333606773658726286618239822360791863281522526792289109512063713830166745341312161668453120342223550197967997970335381228920303353633388863998226297013656895271856239568824956673100087740773093698590139142420827032098011940088591583236632707918418871445703579241362243865054549618593773089504818246362752728964036641708909252776446361320896999178197719898478612453643139501492616928240981126714681140534952479306767776142443184194854020155190422391726312465890036464537905782105953506012453713169955906784847768788728674480773226375155521598940547936288743680567157432900665121182306257099400908080868704012177176826466627176425288059347711896090282388147701028397984860309840131951623492420541343025703253280272564113025672809737209816618107611160478707076427431939214778533229055640456030662614050283276346888306415057908081479275600890279112739575522007971181093547941829052421714337738799354311061287924461904942595579233920165480641664693352068871425702354057196003121985749856088448014907475499351326607205605402725913489350108210413633381585092163154442670716036353950438534551399236930993699831734709522392176951941910992479361031205375440749717334808562491288212208261420000258593120697003260430764656984547410308391143974612653474694775388139066390795428430564907413509489858362429188874786747133489840576423110246292057408100625795812364522504931224642158566560416419320470003491262847963290371467637780124664107257947240368206339900022751870784585657903223585416233435937120687843753243150488271089618285977268418208111693025858137496096077945587708602906840030389209792391405491115177956874827103702618463780496930505492633341272862307869103015807057358563306927034216747140395084081008001861531633280337008817809712833768177224637481654886222793752639002763854078996577186774710247859265972012312602851162016841428430400817776454150309491831819918874561910004265758580831160004369051759152766197115472015440087186589481797080938705351592924346672198221535325689635977075266658944117732285834572750342074348253320801093982789958652039055856453285826689010110327880440633565088362640819944351409241153405447969152483261543546298298122757353737595445021278425896440005340092157849065052896855815579845742623339805045958999333024803929583394374594074930934603809526310489243892041035402431582358368450404617575794852474406337363658690787801709394681169877240442367136148842511880545016373304471339612443919046212123328865012428084210676566605901237700700426743450892478250012985341273079259179920414854363271487298132843669497183328812404172241141004506839190422824892333992498106983212187854701901761239896480269633702711301698524162031256125136295232278122994854929536021431736199664560386361042381519961235587819058555119039812277752103478682077070674796969747958380381139830302835989255763053428072408497804636641424207030954801046208769038590832509530224564685815501206428178451537403752809960634050953016113872864423621043854951727292513020262151486459436714211956802710964676014485330227294355143464267712945422247732462908009274548157837418269798686964461715979804212941296429028639880001662576550557388676250055455518469207714526766339967052414974891164306611627265892021342190071165543922473039624486802859249581786562957887909576834924446139529827812822466461300057546468693045435500934588666621146664566480460790216987533584407595641255764728964873015205564423652926392856234142554194176361335768603948470530154699384283970060644960472168064806882201394439341210168749033988036832046625775334998883770181320341218342264217638512986027521723484700659906040249827252896716083453850460270110201336106975253345225570239850268714451457416144099904604382547361361321455553509997332379350406460773415985845387602485590794744479444573238768841750136794576277674958608720476346870847795011248852330436696759740882507587889879786702136052966241140055489437646972094159574385678899862834180746591106427790406216870947870066960197762857032114969172729000666321829230153126246264144000955073769388576861042156738180051510894262692021402118344576968241914758509956898488858916874717303619748604922921910910116967906893423173729031415549380742586077643747607571304655756883544245072711569818261177363019517378561645775596506158116297073904365794575849043228294401857497980051632418364211121601166550830820498164641614944644892709138938949514249229056093782072731642171310306919371492129527039718871373282723851069313519466399458575142107546226644292272560537513501561253645110254438990635743358860225568310279621672385568994009881147122164705872211719965972269774432739182057582243124858960721689777057618666194663654234346191614521830520369459929477209947420013979888618605489764361840780660237529950994946726812626188706294739453510638501757352294824585023757279330016612724450046974515573595200607151031067380002167788288170504700119707408455585938516729329277808395381170578643726200390980706112273983529251090957222768970105071767845265424890457373215156659394079151792736671314075498569106587910657165933319684327340558990772159254075957757664660473836244836097608603244725738276389167167670236189171985637644205824409399079385476834138819277980097709760861768761670660793487548663551988196734009619474599673336301046137330962307895631850159185428447519105310344804547454997413910376766039740624849067035223885589510181325953955308556936178905513120504968217359758557682362264137802957155891341216546397279781379835426379912300363746153553188393308356461216279192536213010240678264019443784515358315496720674855725178595177996205561922020151303033660828197982592772407977350276344621652774008133614896267922378855950376215525264306691676607849077798697389528866485130135781207528213579253973505874869753953622105260491389548600061233477521140929445498022330762050922431712444826615492159990826426726259898384672239695904417292840764164703535084334089770365599671629545243479026656484897199475826752899205268800331327627526844914239202164413304786513104083242257041544220578250335237399677504728017384172345403625680423816153649739255063632281815758516261558995237091121999141767954697674418512945413790187620974176645396963532343118122847047093209510262566139632147734741659015388614109483545366288854397284050574653271739817473056221865949047288191056243619014324083143962490659598505142792173591103295969993830315532458774675865859201114342630145849103058764070522643857069671061110932895417565670726233945070011005404879748066458542367348667268431858682955748031302224127824179339913870474348625449319356700803279753186401234858479298552082697871032279996568938864604637881377266119889380593802863106025165401491483194603740025789803641900787477949152693290129758218788515759838766497970260169502448948904409166073336853664151576745331619451821869754303947018538438614049031386178666689982205885737739024103390306435199127352509995584783207379030109014512679152859779461666331899073939830776175810704237473591548435497673319265339218977008122630187754987667665617764280891845315523633963388884998023990847946731547342952526256219695972507204319122389320729495489866280685290809297496226207944698926545736174118704530460187535110952725679838570153178477483355983252726039490486466506184030637764768083291771885519096799258915893663460355329647833203452344805879294076365528269781151930654413806611812951520121186748142337852587915477863884768239295843839630096367674707803953865551378661444844446229400224516721341634108818713954348305337481871211493056160745574226395142380047001569931560494957128390334146933506842765849314109868531198200920952799529598025970629024442015327661567787398870217845863200642591540114136387935407621549331993179422321219022029944691674191061859111621206083323605903961932098320115883088196063442576320412083963973078447639416353698946158280323220854871216740716811566261042685946279149010560758681152543275956044935125599614458050119823440613062782236771885490506912810185160082640552344206817544076690397133669873666533307588820081860173196430467294781414070781801923548066645347150474828762304733258740697843886636417532393620526653605678687649436136582078581336520111264644505724095582113763671736386002848219834870815257127382200045197312793055852782438810589453754253118771102094454191533589412240459602392962914339149323899800421214938187134923331466217596348143949924542385990818361375318925865326397187092342809340558725729643997973376330373765337416026713243193964810818410203009031654692999622282982973215971448482689315243597537175090517120113295085474310414480004715130288765965044766881129866868380080134626798801898056212236200700837615112458710258996277785905929119891516266571409030117776828253540331930474277051847484844386824482968045916709473848979310101485699037298268502638258164696154918043877747556408013301131828927792982076373679010292072679495311812083751898541901191363648851406369660612359816374556191946667209507133579308429832837757777795037137097577183161173089127772524508671906888965404259430281239126960160867591171549567576800546176480130000752385585686172780777776025833921665154402081511481136298878368590067927727467806816974224049360183516274268714318638162862585028755222208050521494012460049228972195250966457603888587406968896658487319066430700099449259076936891106142980883481280251651675906669087781030073813220864078076228780688333452721630019538637880098019255667295083668507568477152284620196164427419852134355717786666340360043283861079133132542357400386509431624892982885490687004834254384724822711169444190651141937144106373098481644561623817831306253826920853535731863048349706932617464073610935720954374243815097080171290814760655004316622281747590046228540179585363028013303264661510676998264821757773620854363313844682550870515590420439247732250744773371988937560744547973643056298137198224313929550240528463193277010635609983249118066536785172552357925789675968018195411811642632234752807538311749633012360752583464951468305922593617905413138518176970319194694316289919663054054186554993363431429937997803139472288610288443660630136578959500707104786330711868120789699389995740086715262305170447913968402229730220247644473936254882856867576638651115669822040319453804329786725190873521636669574660503356585861671885580734658575857122825095855832499437577827097736137052943388274033520055419468567932871547844272760445184574511074630116610475932688527083535307152885229455430467177376215135423302024754173717850909553233478049058512024886819894521021183825561228209295344300562854756089589773248960907351731377299130225807603508004001238759246329545042274824887203134547965929098894878397807556105429804328540716383388643430731132514519646968093317726790335397520833502706954239514308011347909170730060680796614811979084571165242994028298226680991488223001952262066731219404045838465948414671848728502666631545955322595129210101680534583287170488339061897124517554017550980019914011650471904471989505540575078414407131359102195526196177141509056949731109745481319841992079050565608747423425983914366940614145992782337268716871503703870909691322786905814442043428667805037632370478832077789399011250286407171786459891296332131121806848518458071344326543176715532908560793497604405406756326868065466257070111003429798944339230613686624054894064103656574550873416611871927396023645337453684035225735313801252631603485267172104652370216794073475791875936339260042137529135096230457934492069068334980928304843826854513260542430420903972075556381173231244340946515294674092983325557206921967041908602299928837016213946963699411838024022515055431698685080032279722193552579734266102520962184056742777320941053454248772273320799881762203066594409012834887399668756280054787168826577994595427334952578141429971481067795355910471818178981749768492520756517209868363808049592094199067154404563735048889626150322936862158400692096994213854490009083643587623171513448326694625072680332185323615878056103715454948216741933457858413484196720498101084071164318607837831882957849438673087880696846840090130204830992519912198967251963764868503495097118064672554360643738273694264959769936735411019607815930194672179655186840450439260957017760598629398434998172456316558949905353228778288964356397443141877937643233406864422826133218276548339209992637444378702128544286633754660861624969232861528595813045203205105868609847176468544011308650498978878159681196112077769116577752901918525165775613438001268092654302030976038873966630370124719469138137855896440131479630951446356600025392300495379722101374961482150184703841825216538283036973237040258051628375212278024256397696093351091562675700560642734145751469020113925757680404606174442311966164050025930337511776522996155658695155280083764645400625827523624558882150412681522700992747332237439507535528338583652596578360455876154601624241660048851525355264463855382990668370928209297710854176931601670436293583309493831231371363688498529489073344477943908732336366167038120660471978119023335986133832360332651126669600260835098562866163331568684379941984309288793498184856558369324184784917566575960798831157605294325810801900153421495870014434948976815967978774025445923880572529100066596501015948122025120125047205106068134998402333290965539295723891756217607235386718172678617308094635347085457813482419766334797494746649932599012373049608199320252604893322229583089294406244527429741015128555583787526363732551928207254107498665942256036300070064259668253816999104524796459246803083546294715995627365000091511822763164858348676700341510018513106588752803627536780485155249573764399530292591848985459299165147818256741299578191109712553309433167762908403467116098393221007514049385281968704026953898506685448474497872295430421429195799467709213448042292866829994584079802718837442368654805853518072674067271811170792252560863012090383921164033717235511214353081293762329937217348070119867447790908487761852291360912636480884836989911366718160399299998443264708378970639517175215124762725554117388766037676095065204115730339825309207642348070737028551634829735117044575094424874555167855841490671792234169123278244821091013894304220847500114228080690546483154304436436440977506807152188189070311036820813588968772378713163817175762519323978373240098557322774401385207248111809478150483222119387190345332120734434612013242695094082041218289529377549386146430594337756530960400425913055286473703632825773019225584796644146542464380767059033868771212527154971206198976117748151059912250597857746169286595324515556963270260472733451285113066858232424656034956518594034241672957478410452687376187218320825481490084570205507894962492205266813693552788828901360940527281532897047195061549051924598003632420265128661681282560286367195168649740618772917467114657447207951728823689748576842229572295886057752600365907692093014623431819034190610081022869010867561989769912547117477490691943484685544323470182097228414167976811757533226242541840396555778271351187935776338406400478074511229022400294824799612014182138062861850050809492059395474568355801373824282520273080351233836668233597525816316098721109350092644890157787462872513815279458759892339509390879759486919176802226136943714026441936546828566359359910729634319238879043964156638146335272174904830944104767268875106547143855146421961084876214621659447347461301523873016640532173947737932865465081415472579720787024373084721587986902868190236888753679480148878028303129578817118175714561789534798802260280175707381904267352490006162069692120709217266871621617598543828538748606213327351855519598246678276374883106304496316581637173814954187786813278224862392887297511720383111843685214804662979867432708068514556086721626215523709483455202171216585302405683350540694285886197851667358107481050961824274340472746329833654046717767383489360072143305843929859352554980294028646741840090612264496802888059926166556328524039084862394081887431772127291887876811382431065557002758897389872776304713810746875066312736691025516475366016001853447480823739551347472145250527260683092304790370858670593247288854722149075556596501904424664436343742225775446881013323274038940496505000939502181080800093235694147816507938521652939732118962273114425957155701805471070295590165608094189478839592317246974193713390812152157004912962993186988433776232311057291125444019470978726319603177810182381135175116579594147005286197750736285713342362221143884541876880572886460197586895158134210645368729508510155793454408405912315258903226717922307255081326790289652152835914603022989180199856244250762467202820661563944399168673816678527333404142395270905204915138189387298609417267408321818541382311436332046366390861592095551109226868576973991625445386099913284689713422099835110748151881407334569041508006757378676296815919728424358006337590728895087535451783670438242253063790006001422118435008547952443525384623972590277442527257588346651133702405390981628862537650793779534038929275526780656896166856348012980136545867536585158238980696329465341026074517928384661943433265309890926194032996421007636074769290543571596815585866049153292540655436476067960637314803806446256068856891803973028559796587371288167014789811216696925906998099764894453441151049500263716737943239740986857629207321568955419994774857851886016782904235430484676063428827631221369443237064855230041638041063885372205961611935898329272132763670253038233164870495188312524562597034000408359941922676761498552529832977163122478364112824933925834498016073241729205652344476875494974189708611187153241985414944615359627953120174465914488849874561817057803386693704186793603638660881441894965296581232746847028591093260081277602811818888037867572984439179485439635385458834795048452539725835893747988107837484934207197661765784198351828811136175815767398241699470987502954404929101943529150064619268147770254807137777564139671624881385976759544354874794018374073094216157002557911324104904796559859177266655640612305662122066789934856983843380995960851913399052415312373131965110266416125958739214343128175862399522445044475916241193035190350989090622523589982023674224027118103087295587793272335402719775206301039059554627795279101972145044020402163017088517133481687581130314405074569551877582156123926800178605654630536160261932848702684253546974749368456886397834312724072803726300194367924634712767326890454014401662827742516648957666927336156182202489950130569849406902862572482742686722325050091207499049505094479365635141821175135706216140720818886277823046196276177656471414120836916722726309356783810761018440866971108944827160900994388296382230525324397905946517775378678128166650516594451571841465427451518884996457477072299997613900402123353021272183433857471175181845460801853933892475382268840466731509760173578782481524266626052140297410006063025057773136032165350596820797451563895180321698790527360244139596306295404401407052753781857893973599542307595974088096923659691248117304420810373413117724931112567759091834310197404390119463242943990727190983042170854794338037601229501476040062471864715025202887048533078685054557882349457168242258603627302138791864706452743231615471245882917796690699738912980802463453819280312767732930949525446998512226688804480930092618479935114121371139187101028517889909029303905655148272784980911238927867034127800438989891951864155636137982117008540761648364499605386268548997975181989434548218828389131528446489717103843496391260583149128324294686190281457979168669554379580855805773065217371116864764053514108273749190161380925407954503191831373627857587334919493313607049915359332061891133034013775096303985448485134589111038118913943074343105308632289527191923033361214407634080954105663653998732782136408007488224344944615309522789759847749448871024476514061658215758724335943803119935367487882938392744527502268023766685032015431803949621145144939970503234721144861336951012844469818407429301582130261561538332410880997083805475674973883983767976967970403693412623259635468616693632551765229944049711744949772042480518341392186615934867945272121421889736347082396410550464039331620945507859262954277673162875790219466972364087836536703328661513691759288393422120990135748299622252324367814981623058217253620259336770278850919543644251730801927580960633581644764108118224758685862877837745581154537222107293788785773364855514568346111244611826734780440989429751071291655047225232785429101625131148626373577946078182103098460742843579028614927154171932292759908489061345153518060936359327067333638973468271631099469216724107284008804254489141310371669496809590007627550493347228897283065552286122993391626015835831003613352189971434163987242197432126714942174606556105917918010567115378406288917018404484572719434795455259349791934305257591965143658661307767348156403592709124657946662219628964282162497077100894122078912016897713617602681319452947566063217417510131433723487662789522213481653434583837011240478293739814495676718899127745265660645587706983081513348663754817309409800805973648729288761883393194333140802926999621394548482439291982717688708894959422437685661144968065194208648932184185036463795437022388824500814062818310510470865034226127366840762546141826824049431331225119101478507123900954313047324445720145391102426525718909202432578213218350711556338077866041939349701607581855696208751222746141428357881979121468863277808999188198341030006007573914311963389891532289793977516458019758814253313904990861668274823632159574766044652403766098686137905668834344601838705626368571523016378655887039630271541528344439762606633118599825179066230412999385045644788642348611373329590518906995586009694700166818591057573793340479691026311429250656332268840017314186684141133993522346473434430975580856855239132286605484617378667906469801802362681433882361087885832836072864552747102013239501064713870008155237003098438774194933216373193335756336263620008005063110170714454710017975692470958249166450811128727922065050035968516549632898803851210735793130849623866994534860835081739719997693508910619721678191561440194701264724557414250485064994278339312874308948452363972197375666052323923469011477240785035136109872295497735777393753849977366693804714436345606715838220476948999910039717689356937514917956347118701977380079483043688848568864691087668270026549005057941696161842841423757488238272355466617134771274681984339507665962990462168127205335582990462972743093035858137648624396031754740186580313324030526041281471472581204291834547214288469047733741622313777946737877513009937566369830561800269509902931559216675308128897805455357845959440954046880706728709671079369478585384470282852110711683508868592900697748187225729131632678799800599312795466372295137083889788467473699882723655671471399655189629937436420501840637114932544784836752332270419135730962774096851010572671617671559261490189733002314144323882381291153370765798049063868394715042958687909054732195601803523187623576311684514834457019444881229694167871978745570071471160757500978669906298713688886944189794362084548634097689291598779947793291456922975513561182183650450104605669565089324646778929983855798773061976072743139932037249484381662796719639688304211103501881337401504681613084635600018765658043416742285786739089520884314213013576480550761492605071844385634586760693199032195721393356770882384198510228458604652431699423953692551288819137909388848850884350920504446134859118377480187441196253739078132048067439396579643724451954339449552552111580875667768875913262514657942213009289521488345858916444499413604237709380152787224237414272417851088670302639616322251374035200709619142828871587765801874278296449687063164766595383439256996079346979694907919872960433105644303063444640498795898978067649369190959072150214225988571676971912177205167797810864969838633946943347646379316448750390526788259626287403699692068793196689749684401184293383350729856471425334177149916033718633178656005139444124694807088866776518311376210130346900480205437025323382382135736435788914433074561330493931779297113939792704159706133128838360443742815166952056031722732164711874800460142906375126737750593815279544341690869187716114773583020867649275535690913946395019392359163348530689319547252468102809165520944663410258257099509626732176829490158153883826669877991383764655601862586131764793895962692443093674143547780826379765384692852330433958585086561327864950776527478015207329744240698972935536568741590125634955865866839701482660519657790892558263125382577475800910408350345208234316376490933729471026910075301759589698428390590707826232774963466578296147780940700505675827681429385492413092135081995994051778369006013345413496368764238298902988121416271589586246368389894591339738874619850610686192398036233697585057468243985072293678853353453007646229465292058558666795355422423590329112880385643527886185443065596506900253208695612949218769357902651377478133025226470174597316726015831543653173380317434897405533250725734403085171519754622020907401147660593728963715434185112745044866348840568487842975277202231795576605254708973722140466380764149497101687841852244412259361846784735172432965677952285825481289413925468169234495119035553492577869023117500536019151563554334796744602094664530344599316600199226857995599695409900157721784109086520177346800972427830834540060519157347712522556503461409806181725160279737891766899269859561465239212082115349714650242962093779524338276034791064460311926838148632850909598916726773428683512928101698645222686692653242337975502468517692954316534492630098630973111667779966490070922788295146302484927514603524406328469356002743037091404613036793904057816031623540797772208081178901310096265230578218886945854910038324327715586956711593755552288432595540451956704494515144687124852730959768031097576518815059541508231047692180239797560712623725719592406323280999194634518335608831453057924367246723723895625424306295733970157396742053238383187796407940934745957291860493242604336171954675282107749058376864304887802907357873868226539122806103289046794906462153013943405196201827970650024036378359316262682936440744065914153863376058054739679635847224626282480227534585169783538827827343573285384972770044480959197531355751503004071415242325471921403038401738149925606476050228548419463679422931089595333445574628290598133341063115466750928604645670204656799328262066588141844204679026079548179605194459391499858905538007425861351399894149534849706490633098085398482190521741095363447692735092277696345515282455865776120044782416543545372128575993690322315230881377478101580715919977119770681078503608716274532945797888388449862934523418072493967204796324837870778792719608004700947144856020291064976139920996646778495098174941546585393937860301240176609200837009540544441236477260787511977621460405448850751140945193655202281013898162207101168641438343883309423265756089584224183712350467360948395175459723819554660628923025069626812260854452501949414609706065023193111350227600116483369498685979693144068181049956903801074048649966368262292819305379702336349779262155855066682238607538857605153312981833904276066879472108653150848899033169903881539045058343722330405572697616434162735883047774902911557901339075432930555950411055662189184592402657054724185486987858956766710711343467932567915286049344677624998005720226199770281536600699096346714638615327231359862945751929511313920125336238160077750301868412857856645892403885606270235056320554180934921816388887601177440192489677900125470314341158567727207873587770074550960886641836472588842380730029833784804012249891632625271276864625699989557384247656743966125519309404016153920903126559717889582969819699919766343616263880646373055856856833076177880514646501131806632936038360051432208954133433749567946605112145278184159098950615077549273189639887864713625554899685331868733861733791556894864469945729759967680876262938700516727122248591301993039525769278345421466638203576300470947892370213769361376339239145252498010350240064718310355523951368953620690106156716638616496938828498550269894118676732833723814582322968813301916211147365747270429788923215690132201914441816557346967486755502633287274610954872685354465174778112280093266750549591532137571378494344363387143864162890280620425031413445663827883164015795841797942576710879301164873573501086479842214632920975163084210610407122896578081768555739555884640747875203277778007727448685882199838837736210285074652462341810206767556494357180104895700722560385903883045551682807187925168223888482914230050960252498696502678898679327968598590176379713878746894184460348644326010095007580984380300620734379446862804417716487282827724869019800937048260467967213508709651664866275747691873895354714634737398442234393756412312514257584865202631484232147927117733041466004874919446485500921994237159234300050756210130384799358049184131611511803717950404391016000235357677531576638406060035350714223615071468155922995809580487748899689493113117422008081316296815430299748205226834714526603682243363585367950052993361761178125057371767156485852228642146042901628769499742086877843592271092179922374569157674223453154139488644565604310532924820625779628431149947162288995421524160327828432262742093234558111054247979028145566566652218181537812628667863131425730438383334768066466474613770671953133838568783545262452127357787602786737598875244854400960973300753080358337781101870986536206674688992383180993220965448374162518115681224528725786141357970564634780110895410387005009376844786273464951837927689081011385807519846934907441254803178568539857813177015334689119541514196358534706999351222979030939924814365310382108920052017006986345283995665759337718022005524044683684431662698366136113310987003868494298082478613970871769472049310972748000968427596212701920830071613475708062068598571139122392349489434654275981332757230062153451909190303692185588267222224260809408375128431454657118352198351525138188750475060235602164841182137233262259825880505147435339808756504989990310238091509969084940703526141846140923360148756067776183006870868712384458466309728147946862420815037377065150653498340383258725646409503625235523491283280255750020213004349379869156076514764666559543148493115052025069563659510737500235186063483350123149109627576713177680475465786014426693573685600825855381396933276014437443006162328667813672084654175032760978177700067677082612062965552031703829212172934941876701210874322391254175155185392349079852599057936446154769503092293653045858474784666822297691347574181722493101137497755168546968057642455711256255853537602820121165183729147070963782786704816150653287822333084554556942703852060377014942971599120753317165929713825711524657655059024095353655655201158735634692086871628049398024299471031200646137153826634301695392614451906745823150569013827891737726457653558093582662082075719558180528944637063005083637825813541207674395006053567334075726585929182802878815049405002557289052477268845691425522733101414283178264390235404088739115718783826383737229150748933088522633396432057070575335005260817654616796682745000686006156760396582610659842318012289885226962398207964163097128641755180360091710125343175402880346291334250045689044667347531694321812955924203422917242802231851536731386126043983191975771877501409845163581026088436802142036176815703739959241822549517592981610389474477217510062626611659657109010947166441119721827078785765832357520008306756919582762396805391662905773937353249164123716843104614429858358890059084847654817786030410051569482907592005363297534440463778455908971284150478096331215624509364207865076425340840354569364640548170563324428935974446847688169921072678433031946552385223270896418657253062111967812200179423067535286175069063014132458251665590000385346765807359982332803987515934393319400979586409019127218647109664483888327446490424115635389750007525144662754566673617342950692289709831473618661361404871430623435504525694936776492836582282048683657690941988524924268259063029176227267896238996090299752369732595543854438672488642228743164920455804828514361413223330171134530914954314923872985234989460624368628715606210523310762684329287015137154723602194841432494524982090347003324033375252464093292116817058258547453161743611108303071277788842390371933341652505056177130456388447577696171749949770606986143233733133400570107355498754066730099374956088531503787362709557274094795396488070794370127685223008918504811364957521681043855526863329578395395367582786066416570394977982756187964772048201391097353894101600939093375914700465147761824761985679123409973745221964809307401209876025318871348158989987303787349375623386765536337547862010227438479280313085316906758581215235526750365314471696981899393210300061307789483581546079936626964270128033072165642960699083883395817740740163060451736887444441542594003845387866998854985430344887215719834640230243768519116702011630317565558684712349370976960230135234383444483117070705311920479427997928486073804130753615889697576099674166012686319498673471332362421284841607939084415609252565537186612138338586732243514867584296891590699562076993262494939279397981270277766388606825270315582214099570715595407448943107278991746228383209866015994161716259369749512637641893041190668826544432507619159627967359766187491456127790991035820268205616928394249796734310054728859015064332230793094480973636309370493815782785243948165608805934057594015951353083364742500312325154658864370147565393633389783799192016470092463683168313098957033575831326265044511107502408795821405524045880997242272913961892780798858107325433167970963817031973556674696009864524468199802721438922230282486251235668828179798013404244975299096819935193448817219556311322976169303371029932249967072571985568535937623439978788807261898476788319015617118428555617373526378242368320350091351152836937555042574923968664179486254882923572515825919545679971722857570681886147739050062613746579214530993065037253786362773655706106168384529551999550154115586668426805791376401859718818974289094376210800671373485824326623873174773847504656301906763475989064417345890500370954555437137051251795418408473511959279137617581772350382490237917979598850086130740229153770174341701439137140842439139032279740980548457740975019037143211373180801154875496897690382616059277846685580127589374391786921458978612503866040597556683493614501754057761277107285710292220965679900212112619011238220680838517350345641903768918510442123947866873080248252746744922549352761829505478547462180190490982738741742703211262265804814969435897681043069164636318100539975485862438304696179657395078520299179427866986648263822367619182829924658121386295085025983112632243500184209806191953565668172143904865400805441277860921226816083904308298730751715625179518881775352297095408378114463612746023914281858346804483380639478820059976911944743936226432968944568852602495393331087359950767025009949548957335071918853336923984250281163792833011553113322714943928404323712397246007769330594998893689488597736374449660926907581384463252919872446207220779213424940086573634120532732928997733677870318940855831372551547720288710659414527094717501859528368378786493491630020419288757804079869035968551234305501127095641341928798580774288927915606778118388814851640804156542351172391899536076079695077118716057475077684053482895890723026199543437898336930045745320512860577613704670766436753330517551458181037453048591288239033954526939875902614122599192027075807211156416077174498250097192126850154714314749706701643884915002064666385888987448379008143223287954854568492431396757518967565255375457947084203783961998056207858409861594381357091597407306543193757619090562383195286291522940160022105621110043890977431230539547245953865981491814388418998451381634802716559198001814310226939122899482801729905657954602337646043245811458649595325117979362339533881560228418264580591724743406820225575301364983921713958246500433786452535285298469077977135095623310490696042964693347477859912150768537725760695066667150911842958601710072600798090662080185757107920023979821842755395552294614303955269056143391082705031154555096903770885959898349536123708941629326755210923931835183285057404888046660435075007494846619794342532383973462992750922330092440382716376558195318867187858594405222521518142248611172053629076364335662657566304251861530533550077874263575353056091741070551212575879673351020219218618272788396344582444492046299361976078744960778278418821124308015249938811462125435023147331184258312138002167640306671209003189310394952532120758800083220584115116404788932849315699269673787939268796904396958608701818093584842364021034177988139227334744902439736176950796625036225343814449615558701509860924450928997781988562397789958771099733742701981341984108329300030815411847705903423665385228961932441340261855580931464902458415419692014922331721149631227115800284444430030763311398549973896887978670217899828204329879953816669990595704755230285739565273925274831839406902509409164600804417207261343890780114191146888377584616267648598122930217833974794324298998571017559462746671664985094079141232719890569706974851225998291552548407849492267439246789099431503532072540925377439648097649238060454723164287027898592046520173032336242969997332754727709743312031692663690315758601503118307732869154996397870584983516990997140731404903894718567967085175437836520109481711999078381623665058258952548028325662950779782702619523891084342509806017417861056410299865262590020152083599086225710502713074317471510124076014518587411768596098702056027158831773300983963253209783277518693124026759354268492325929304748540991116240629962600212699728784251662452024146029940015530208186655650991131207007460260719076434876598893891084444797451111037867787200352767635767344733314098365588159079765880255658964038102517301771054637601798396400340259161349310536968283327046523560996189638077516824257654659401262237243895812989794185695873674081588183779191157477269380739309511227008501186800944259252679400063212550215376560569098456482016386814870198480407247005452881555246204047946919239427299167645153090157006628262104095576337327699729913208854120913086579962274004475905890598156476333267788192629305854667945874035160449064000717056967357874375114841780376928553739816206885560281548623601273025612855737446595336998614642748728275885849446228325242719805419418444074196595227151842866756144858053266257739047364061911740212051338279967112213984604645212661953939247014788668156196027097537975346991752597214273049004673245715708307874260829909627085860784979369763703043480389059033927395830094551171000405779927045270660407043170175085113867572276390954848646655682242190489898367802823055924668476385460815598192777590355405283677675485239034517139903376554909897945304174365285613242767780930251996827741882964249490397230389335828426218261470557237574656200776298336554645809043796888069150904540391957363421229148462810318688106735179696453098257757375347217804671062437049011961778597035860833211769137955689926745519684425654320312934571366865869045442661424530000096609909381106415600485657677314726919506917841868272200310804840273464799348310937049538319969899642474744739361764070559983730193936964681192744951105587646612235064417397616827726875855431015651946368686401484972149752268358729422658736275149145482284588910596441438638736759255582192654707984535437745681029420783804631622048706732520511765075746160941349866070327752369497921977973997047879177392047067320371590014153582114630505093400484325312734100573551083166960492269492856597379422462584373687654792053600967003541433975219003802144496541086330720637539865541252083702959011405200481320151687275099277287071271247631573229667367381517911345836015990737807931341502697793282276968070358541901054903302021767039548953294059994842406298011155631944745828394785813458777593434010202621317802592681544604198975035838720981128416933091430711983527790705390129424987631616183667949782138573232317857194675598742862763457058697521634561784580568959359921263449200648535745672572176455876733040173193823541198429295863944601888442290546994707981562830996869847965173572011579431245354105041827983895944275609333273801185239209968518329059215492477760787236683596770065109235174072453365103513731000507892645796880187087421803817475074457920058416084086727252295103716770166316680497236899296824126500643711860427198133351782076318980965025078082385520592696251374499151065189493950570068859283221317818473196371703677151500442489319762053147818467401405056266522156280243592137365217182274253843891080387249971146139346469571768926350900057886119849846386193240318921262432919211167202507779469218744029280553200766362348670986115044980034371639846542848981532013020151915100319285562851841187328129141128796017602703082941575157460690900087293757151245963911882989295132011432108804977002059146620331017507934255585152191138501463022345355873282392921234938712205418117841861763394586851862062241038166738356632488093963027644403843674309151379421616220321545701459567426997235431897027226942742720754494407460654765243966617963722924656303789779749763384350064958949108761118501472672123232375572761988423588963516597079094563118898328589770747796171971028732574264148654179311736575812989178478218046488037788383473659930527527235862249414097204728338436439121056226662383188896703100632143381887286927593101460864578847591051343471274967425972350045355742185589516501889872835821790021556299876580718912426094454886720591447152839026466229145219025413490202217187130414816423331006716499479609769126533268497401251840281812439160956970209095204550615274489008593270968495805699772949625492566222369573494276567117623241024272771127144621441353944361672666966734316610551174124119976234735806877272469515093378747640851642015118309117967114202851648870556903749683241697072134757757248711506589958726691640604528818815928710802507432447200985658702801565657948971049927223351071694969421253659804807675467254033982937492718773379086734039219578786220608526944215384905939418529660828327826192335398204126345818372938549528504897284899580899921873542719711573538519426551142374149468446671272206473140236141693293440926241884604301752896434388316008088511572923423044612336015850684734255944889628900810527307158683651628338322545750602750449732695695855364817317245434207874521334824314852296197921326934664442930382718385168987612734181331308488297209238488207982894458892763981859964856454302918724162946388142899610763742020520197319558302492782160882613358687054643085937306198736084257111205823760425189038098173850262157532335973179346388594232267480729673971374240482629375675951231256341690710237628111560716284126201470017244770354177158658477171689406094359767818408972864384787371188587201884657687349179893160095404562648557884409559737101310174989069336573632921343073005408567986139965705836240976448081354769829216950993889108505754764567353087432090955275597905859365021383350202435184150929822851985840030894385517248366446972817966929520456747560716845359681114071635656599192090714118638455804919319683359995772413274265229029448387793355394296670358343397908410896047170603834116506368743104588121955316806036816981284913708430761232465845938835095960817794789587992911287294836839775056170142681188229116612350960381092194686696269991587608522927847761812082994948565133234426806543070656935484565217193817551924120454063416791573524394995993181255358938780336789236471181745110882284820418749052994357345372262005497961240111155924270257783942112432386461010680818056600271471762004839964718016024327006270272419460238192291376590354694610727182314063606388417044857674577194928925043906534695074490211368341807515485693993118248564689052031968075412759411983653960145073493096657384819231484783815611878263781573678987113708342015964889864801377488106223578563174260890375143955059541615113698007888045917802866231461970201473252527278674731730448925921980238955452657485476617761203480332791880758172056312314796720847248030661962765720480816182682867942438298077950867077981070082011066667090343889553386099101827084697977389808194894120653024962783284139790021932332059564079841873694617339012143973821194693987362093916479240773891483814230013409553784791075766638805700367102850193305894240304423528304359649272502119868331183514248075696400804059644736951368939170625159031895790060687703270778301510073111394616730183423292001709448406286644899832470543352954148629961174370926097838110438952281400363125974001254514360671847277119382702505529943134491905996900787448207865037323821498272434980107973132957593766207608834719784784593180624759939949561766157206415989536297472804018844983710040528622941444248670599987395609157072156075303002009788755080968661846966628091097093455393925608294070464718201610663339221882016237338637033673978839214527627594068058443226231037061092769685689615488164188880678778758912382963897689072090855841761914293202115826831608119613756291211017664766597268798643461953407575262705274836040423682787972003700050599737769510204896258987689620953176709493313105801607061501896694455500850382501740211395344755556893322649970291831939288246889330134357241388900603311074602075699345018476870705476664838962362270617912519517614822720233491905710409950304939248301749736181109558675977542454031078008956989242755250503299570737206876464073927688173633795211317957695397555855861622984955681182519420833558049170667846080829669211850030293175962894931597987838620798499196476553073915333954317276210374056210595406833745433669069780873047443606341109956485835634133882171118297805863401511028283935065388204062506285442035529444528060248388527851562651915801554114187986938062704589321435333848150809347905037254468484973471174020506183579783073951403981578934147072882112537376749745035764147869501758053461785032803447765762310749405562483535749828127364453568938127130681922670655157428918251803574446085125786151859922885841469054046048939407241022101062252411467349860071513230004127253258626621753875765283702246527540575800124917450935618956056071797751760434360061542619974710871269349251358423453539452567571776148970240013669289790963855782895749717721487618126431556418294457384605730880512180925000243888295485428737025798491565165439505167699548015216622328755624115064326340975485457305876073934773899345123648830886215545226160915449170746130708606130311972455781073514328423295755579017685714992115210735162487006321395988927371174572375532081290082992520288769240519793748932920208000131974360431010700185212889839120194735171736515417422714219878278039079198673099821472649968126133865228047645835688139315752420612407732952308013977728244320276545775487991284844809767475419178787274350184854634926345818813350802408124383707711878697274507776756274938657123555044464527443712551029833740609446848730336406785538928233275049107458829734592141438584403415408602912544601750090217612528240834154752109368616148612467011841577747212485412852228420123076769575331117593596637485169668986402847050768450736687987617310147530856215706323886225354116676586932602580132668781197671800114670769089614057658241103965902474014138344706132437857089293563229148091096871196652764617938190722825058542867101023133352792070815900191143142263869424148110864712580397711737569966094076606814047488769214772356164094869053259093851824422135445865651602367097874307265633186294078542251800031534443192690524508482651840962685545905561172566777845003608131901477270128697819642656345095019240783371352827772206782051704983822076657279410643654292561121585907855501189045172881458451818065929631021486051194571794865911171505892063320434394002372957248578052681535598258855102802833189119796319494783516847159033312328802265346516181581418228030643799977348773231059012942573487787989690767370993365399792503235348566238204940640893631223803296869181830526692907217207661246037193555159806514517819993633221142474446827347265404094277717969031656145641791113304165005794674981002010406202921577346089649106383356255297099180980877998768391433278824933785593538645346321266429381237694677021772060766937410866198471594821491904949013515443979340080061347574511985048307129981963947686866934338776511623526131455197558081775555877766558947471937686392444997247991968241514512518322327375340494821807914504627974941762728198250629042829579092947833473896689747889076759161324124399325185943313559144705971944197153227802627115825799886575919600440591017099804422124937334309865152180489170181590090260286782671873164514458819844649290666845790454077283109732578161658540346368314604535339052214580429177486331215323631180548811961959063102264210508419286309118591187490062374485885210454810684249252478326602144704826962577121601907809836170582591854729029939993704702768404613492154692634910592810815047000309773945049594956379852688884984428942331488296100897199720165036257490954309979940796459447887132165891204931461804610004661804306736000820793911834067448584105838829090745549765535108932612325930483552785747578450606961285998410337723723446178324254389136681525760529428977183799605373726072794952970203384331893643402085602780135194884504034001762808941475451817273077076912499148360484613401503922956093510786741311495516677647144355590990402376294805344558854602610595581683937490352601648950557562489188640461628042221684900734468261540222524175619952692619574654031343018114418613076454229444005947522639056276558099119692150924012705976367195332743172382097275233165511764773516684139028098444382532264654753312589491133144548629318346588427809623676199041543829073748273821514179598073070026415194012700394591474757083174858074122130921273329833906521277752579742720590390898436725362057829404607056354820310918378883794089985432934142569725597418944370759937708972640095129729820005089153650817072262612826256777771321477085988249389826953135391930620219261065637573542666390052722372933236218460426126665710215457106154711805022661038171418892131821232946809879743807775604002860967724081639117088244853701871674175906681742921397350027314781630877290852385340973927188933543744621105612369685061348406644175698869971157807230206224881832780924715261131155144467932400647396005256786800623524382687003911536311276091847141588013499116613262208264573169286704635617931587195436124577165956813248609267669010735799024598884454247020854711716342376998819998848004000333546336268803178157544644598631022400208019987627743000071708961597923444109225478751149033806328698795321160868563572332052077852731237770112163056574593377839837704784857565347267212873546315783546453834588370211413653662955705192749934897713268029373289414796559308110268275073977791928607040003484578870764107914065311483373105715532981383778116573446239436663517950041420577142415763707719283218449379448375015708836525577863965952875798536145092009646179755941873283816516459363076191175508150636997816571374624792730708354549046020918288721752130128471135061486548922927044483642386714524902069796194663493493257897147689477342959359435816661753528836149489891814865145351033972984132119887821224536303938865066995809993238546558433833205125340944438411225190507699738539706308377481352670677365521498167072154986085275896955056751457786265436025274807639056070211190747215755004809415253341771368503692138477695139992789220542614013399701947412288507670659711418175490529366811550845349294113535113185977260025613547530636073415561820795052981091642981242759470139308614278527949228396407891502315891940850487464712404393850190928942004592932361606124427539380838254867925338464351387630131390429814951242235797443481996676459920220433963150914046144341969101879746483390000999479789433297140451100007485045186253538043054241361943152724462696658787039384287564584488023357253976863317415582171324012992503971694373305022406009651940682172032276544746061199493997490715619858373981915816764913288268507819328915091983435455338288143771019336496460131202389033463059924907780026486870015084553080105925339508759863710301149125536451898978123987856670985632870780958185232763440413039619263541690115516897170577598421065491934815199229591565372931795612603887537260086043620092960863142443848616442142263498509617894485766439768735916390640403811445053058068849677695962248327482378034280190344819849770495211824565666648552420186786872288207325490845047385087024585596274175303767700238714945262851367948652023865412986212019711794415121113792253130869770512069291377509125700046010372917993099141229099794473576685408194592204319183410534856946054731547137123690308649138822999748594620667064078576747057663587644391349971236992064616710423901128668594092070050752190292287638585070242973146700487361801227265598748506989239301678855325804999175020855171978793263180886022296850980886233139478891787478696982661497435868048994085495320144546772508855975052341359994158797939342909085348450709962034723483124168982623589958225840798934065954467143150258946950668228467797477450121346606971486583476879309925232264228675775485932746123133088729716431885197396876381052327484435692922649658092418788628784665986179610685773336051122335304384625074740302282229164667644825800456050592521760927116892440205909856836086608445865713152662505343470171437605237871617075042752216595067633955957203000248982342710108814363711131306311976591874057139437940297172102073906497549493240924887906559793265988458818223569780919275478581166478444365222989732878644589192629640200160982900051616360409037465563486859944192086974913688734891558522755015788710719657557354717582596782830578868522121529579892329759839235835045846488329133330828293275248076674538570006553677425406697446693693482712792554280861468066235172194139345196500948617794790599072459553319033724146911486999023520454034475537062820579555603129656060947137623506885811530539333011088681715928997948736808996945579686710284845756796135602443624526510311125192627160648699248289374490332072936100820596861865233002872919046856524946890459014467880177985006146704744286471497996473698302505000496985222172999813235983233617677739518258977015105415878872731692023613731158734016833116460772720254536173625729048183161483382787349196754048200774167032864140055478539220520830462250871626180500385906851028618095208466449598562055794152786531486025931835453752536395793882686359641128801735686147880315224742165123136171889763015958602638938379258443212152497807037620535223591611849764211253349989287637986633736454398054687059906834418605552257044830415049552009312403878060724673741358576296397892337446961690174710129910633110987769857808235494037427574965040799503008105220469356427517752869951530162557743794454679905172197345374399543323697259806857095312842453603870188019317982989255650376126581553838983582236090293008823620443820574488252799080579602329345366117476189425915865754784845766210583326239055916894827984624527925664537273509287039309074675253160934023454943286859427157462385863179112105978119406717987716270551098183540480290503781338732547947135516784598315989133017211927455436556872330886078325570158677119341215940741801610688989308163892933829407945501011329660609432189249124566115475247440711454141533751740387735639528353539271604354923082500893802846516237892132041823694693969782558599469569453363496528094354361011210930067241890846434605629601656779405952651313987119690682261173055983476773563463932732960582347331985756830011054781466908261222598847992314689022480767793562482461464306413223653751548537123914977195868190315047477474882983572717790407310394955984652686679079592703355014601670512294454460129883404926958999715507925935773520749431295594116569206689827239873107792870094919479034032874506682352775282987690937848669135895499289968051682477300263785238879153190352425658362277306326498430015940146158306227471869304588008753251827409754132946608002033607736669618365108075144986543017649751971147037720961606912266195483487236266088594136739991796104972986304501851714425284607059549262398705823246891788807158430517582284223317642881641180412915809431185744433178409883473409784124856135797165276308062516841510529515607859860816498117158603825771511223812223744668822977817081117957636939182459041072121061802688597379047333972322903761429560504507774997921662366531218538788857719505975848094810889972750686734948279306782681552634968553481083334839023204924379045275876899919633186251318987887120239498161555099222617607058568427642447161393213023746622424729470549359221957067846157625242267754962339515228934106202089102864792190560195946649078331094937118572100818666983900781098537148811848366948345547650832167354389777820562628405594203581257227837623780175330948913344747584161831985619531405964811184122825058762171994608465208402861022764736440731513303723090699387204863027935890081404509699329312738505848358099861901976217080851198689517716755832425452979254450372200777831333780176316950235245191600157159508296112508386755901944946769605447524745758571228575541671807695096742196291665835285224182810150773244676726139126240463264441176496639052576792845955741107534933548832874389840331142265634630304150759781669193026206929579136256181374061606273645038700615678344816952418769524123359552137390209013951115081022661857008042974857053932801750954160918895565363648662736241363181364070117078416646689443787271821664052006847582708600350742511609577494526989529750156095452829244700819479622072604505478355290118901890854355591783076950459758075816995290048385800410413098063356368091055649171827041646067188756706431360685589894780455722231918084177887240575301655790243028823329885480932597951824862131770011374233155049116030402995990421567631028620916645047158450127418023312315480146774481385896818848904205002732836177994239327251490662864591945224498187162020243809844964206885534435798345963661581488133855282438561997208893196787087462464198896915584665571417734250693416051840094295546223353283709326935625766413704930508417405741117417132520171590954445503259747398339752299944801727487059472829281938159850271006524475877315341649954649515164630386794885633502686118798711293313046563749103102461644013279342732184689291577462807496969398691772971497288386374958990491204183558965307639134821371841296672663227058959184992505047166852593412271702207148053541347844663769950749126951811674547294347893767823690592173723317340850630463157376230833080132577275184898073876946427760235403688374825509751318645572499097907316300700822352587259621928127661922080427902611833483310791176798408378576387374601597969251842933394142855846475168122562685401802545327886266725760686152704647557675265517608856646583198840362905768892710269357329196984262238902896721173631726675216248523191299076085411978163950465845868826850436684098859305916279900770199055733034662722201099673575962343617789185424094605163629496742818539714589364244010626204825932932436772018130019724746124779170272814530015721534917710183778338491421227310284885830865258714278843858779051422439438296753547220666483854840474884694197736701396248017420203304431926736954898556673043508965697889556672775754826933517370868194366552147545441440353877859237611764477204882279923149349582660094233429775948013121592672456218241602351737803916912512559724761338558912316848787884190653337362656885496202853199065014702064614717225330745771591053899123867553062739269321547914447411891524322428185298063120878872199681602638679370434623647498132470697610402199852355978980151113389626654202093733644170127569231035521519491293087030781188751165857488022105376870610342069834028357640319736392081170211814894613184597843877480110726916005712945149436811979614295126140583303228655686802932524676441992042340672243695292656450339617103112847376480294946875434013454556051647798432405599039443171661208402290934261590512382696289564376754114511014326874938542008761229632947244910652738225768757846475299053113391134148699924044068935851335036904572850245895377239785607412014373982630034262971004761588767370800038993278799449749825840275818005326849652529912057026276612800312468271100591141020299156629977166399999979118153770027720501446501914495515525383546736488433867861265635729437161881182798244992768979816997707306793088889980612633362218077305403714217533520726179885827524855186415151408379571450239627417335976426955502894083797140049651796201121749926746762309365502311907103566547456076277495572673290618505161224856594426884351788282663093327797261001928723865235887844007381931748894729534970755491769617761576655667340796849350753175944101510200263326789267327443147550674898940882784387856149208229071432789923736927475586671892552281596854518513572128099695029814834404459367687175579146854822947474947197454818292233548259845634564920276939476844050353418574847357484800237220984486905273586022298559990217390620549524883847017358366402815252728746668868673745441573749456847188850409693796097612383775270976682956415795092368441943532053049943469374097445316586286642681650871566363178943829274542550015575190630936389654521607277257458232125275374060008915744806180160854720018545024449903717067863393094174092907281185311802101457166784425700503924987623829896717415578164730812246283862926784530348971627879315797065397877731632860624596095346062052092927613965451570857532877215464903117335438651134161663565633560629194965602089452001574885345734158136409109488950170837571739136091347967411351462991635710453312005269846279101013994048601040975598101312500176309711132660467114985323476672223586377784666224408713466889303031395619262796706227479338370139675367089098054199525398623730712091920431193474567421404162735492766426507697174126912450562985159447211052810682708946520397769736065499088226669729224008144830327947109545173836828201993454363047547143884275202034484516617908261502426234971045636843272714986203788349185929226730461751657066433016775844663118506564971522697792382941385792039426252333061059935068572649232487407088167703489562138718826747635786711317940159692026335076180627619248306206700727507870731308867905940184363313184089983346362667049346368811583561656781201063713382461321358853507302418080842425088054602822401159932752663816474765907386746426709174782421291661041657117592688381837122368555929447177958476053722132772564164730121812705188349875155081802813630669214616680341065289661981311677009008889893694061479011793289932571827149401228484117855398035759622353991910202378231409385768922890243899453247291730991395264232158766309605449384584707933058740837701344968864310538414098603363306568955787495094764052268073530558784634336659358759738965147146175703591533087466877033929643338545051841795435774497259227443344985838766156639450648192905101855561660311073945392589747240516282965923509095495857429283792603605947121218564010445124226127812148372820634367837639086048019046445054833703865452612419098570225082633565963489175846591142081952460304721995520441318019141938635479672021895370538881277299862888977637958719334586912403768728915111558907008421347045787000934352015668040580033126037777639118623547762506086599626978803568432728560951138562733756481411970154460887702722671743797886258825761870734295540665065264651256802424205531718518844817001167973147489296211304523589837705413521651170494935422283784495408683161398650182245626531998706525837250588198044065390685403391923558070528384620973293209155449838657036433178939052560122725096401441944554176006096538506686886539292997402229676548949988081471585483283829925388362804417250557843777193583572816625761987455263388095131433432749923441030912719813439287703188835602784787648460976897138258324509382058429095455353590096368828272024819562344821484649338302720801067761263849557855857947841053051049640370158903325628228313946544113079451934750143621923463376186600880019878713236782552918069758798798464263871487953405620587639419101203488480961676907352592476418372659010059820960342830183568135376509405118349499695767042030041658855901973294848063655533201264702884765951766942098684498135253372502534128193704253567814055821092884484010963600124376505138216228700421969514866936396644991606180787010566251442149421248232445523118184638072867074822989987168580946839462186636646039295124627100042897773510540533733272213973061097169593593699089103490395876399949112903495071384570456818252010773874563735118962764434923762587816451263868195753808462773670589420790410956217978982828959553785372234775661853652822013808029862007232850652044875912583757328580558453307860534646046494706303876995894824743889909299568192549748034308888482129687802579843488487233914325589427562612128649941047253953614655423130241039339992878296487078358124106806694639068025197070088016305407549726141705072695268515919386609415506065015803653340373159706809468055596949686259137064314183436185491424204085227750602381400524788377239103582002540997123730653902725033521521135753673447804745366803548669959622535242755310505087833396068515123210889584716374352860983045156807033578363000346056907569640886377656359145631831915682742856068652631569824051071785030547143064846665268130815976414678684207348609133026270958567307580091034991001776090010092644255635795843677433715685135080622520369466301702018785261608568217376178594142321455602525252191079066862063951477422317846367533402368169936772680387904305682791598385180002322418080149198483465809553366515789090499326909425578322396972688673987702687460305233299486957794478249124248246842093276363235101359661805231827137894706168582477234099247405145757614935275078839658458973784791718428375031142924658421585125808838229844776676866964266174100131277634757948157028021408116174494423282221069701565298796651821088570469372650920774836165307629808479260506304567854905563864655812752362934533004744298537489390914656368443505129893280488061210215215815007106746646850018151437064560675537081151832899166417960477000564850682121349651425864759735423822742338478549732867281850313760764368885136695353171830541352583806480351467910204006307236254177627009944851668168174563760614705789448376079342630025385983661182220311075776202857760746759384256443144243397340171596679075930704381953172572443725867798835779047430133286370473345658411250469184094669317115261333566405211259704787448088957994258317272995489012500037078742523203915971923276822598383571212383120566525081706429681896122732146660137749093615525692864459880225428305623773270717381824575157720144500447992610112920555070323029203635047197974303058587276809382418577095711966886465579818777962659131713134898656909373118520969082121803143046300210786904798986016489760176209737663477588403241729060925801271504847226737356634222089403681049960774261138804660491806577874853176237597355332667985199924954542508448646617636505779440195865442772199440917169559646772300818026770737434890417328837760465455858723338629482255658810825833616496853782941766628480477938796992475446027823937379766270937122366523444199741393936250312807503940483097415681477663501016891878326871156917613948468438938408198756787275441051162710019818524937406879762477139971812559597982642382079444668489630806903951451695825280427176157669093617155607294711849032853840921960504712793895123407398896313811570939487514461522604047496163668567122978319625515353915326166896828844441496120643452882395347094743669150362376819309753625774037806138059236921818730267316123818017790551360149902171434410958978685452437549669232138270003105091742288800406496239861985346589563887675114243978388599260492337025063873454842211262875591084516760569951675815876083822915388685283875383430129630910193806048876177325915417628429957431061656344119080848360588604677504740124019897553083483666386479714097589621398939451358158908792864444488242533372211211561678976149483945369105187598944082737854758617974096748644683671469661888618864411754033822612665843424937635417245730199214386199810211847382838585448764228832673563114332827795257811148413069011021735850730218654824862322604106351506638097937731437432792932636340266208126563087178945689296345469530578840333536796394105384555747050224407654211039491585356132401347246782682038268162863360231376383120275365765510498109930107848927726753503866932140296503403235215586829778003357188581720281478894691218041104501037701118510786087378449889269496159742452078429135015884192012665014175865456566672132570960413733965632325249128736803550143645649462420220114654463190810664647999182148078759882981661939388811953066723156511512082779577714668979269106786188459859025353004212883499895426728102509543840940259621578750778654392382365705598696082675218897886345678823100976486286234535559018699029089654494429241938749875675825945111262616746837320049036380088572043906887908696671235863034308958252786240956211573246199715541261452090476417534381484550217716029379481423168481407614442243596260400824126257316843041952341585168423697364142766170727313550422546638143050821057277877426886255020707970729824364384708025122300133852705245435686446418972041267738633942210782808622997930533918639009398749160362453159309993291164533899546276872505562957111280735874798120975601241270803742415596213301904901372072434958271770759957694225850122385024899271817524961718676808349691837777577447739323145367483966955474595935764458470527062701835222929564400220293532818683643750477337314374567251570925950775735020143328731465992236494381818244049624392078883538213335339421002922327159768946928226182073395299369778758449120040411523305866302087320490947684216910614800885934934880067109974013993422997728030488386533700320583451455233204025841776975254413039427761076019020019311415120245035960818279238462229915056229751560625182892392734557918221049003827732092175200862944193929307112909290348924963246569002369100205647258526957325471538388024043828413584510511547720734862451677065899643769003738448873554778738784156669606576524366248769567719666118139137171371464781479327560183031823745752317367297400892491773719910573117661792423789038127934557595796403938645537670205040969985604939205658217199665025184702140683304465915931080347832315461880526340248334666968479903369444445114927534774702186861869842868747381152637507404594361936277725854896624168085018807340874065318503705476574134380697994193227556447165938046037578423534875483685696625613110050177550232530192374744495158228624788887315561125392333447429600653837181388445122150451042907704080215807256864359173549790399469100842076728066999215561805734480114000917743592464348274424925974918114091127247869359647291296280316421613446609146800646641788355249952433589777677608049519304313780241138096051642439402039924839406609969921346558170919791863915490317575250326413901125386960523429169770350081784539838206205097724361937527956008055527384122161341800591871887520284659781236942314565948221869196199217764043404542025100609584371980381808105943458772379736285196513226150697705483708982297185615279020827126997766774001196965418137905687818909215732935809789987365646202157352065831703809930337194154629396270233235993168527615706662134450802025751537528985676381059124912447846881516303857284220296608405377397516770945862535152668890525067934118965841134155639420604747331778330841147642045717098958129231245301310308403502235397928660571549868957496370620911731054937224141581562638870391591168942836144338890316413020687137959864417310544464372525135542903601749660761149553267117269492143232905543825652720024581528301676096000210480892461558182274472764032662715054759804350057475224043411868087984689395266999251264467682802733594201715651857798159528107078992639050923859260359743772245604633874758278274307829644257977418121653621144726866643269098750138601848745318041457164315248092970533036276268302571735161443575738108898208934658072433161045332616484119912901724197975046778695238673906831094891455886512755534474219867419727875372463139475319077123226037254004099855462851463286733145107417174081982593556017769788154467390998792351613776029136935050055722523295308533096003475890141092403499440229311555394272603258824759079297158247197102708934110873668471365187035639198525650568417925462408345730265595762875917887146414331212003840861322424689477585033224233577344602949667013757442737545158083953199142072944268116620835006310884639328709256925604328019799511986555755366976105079528187349712099578707740138229048187467578434437465889049335231324061331845054708970855940785723621174179930051634789272542957374418185245757814101749229957117927861506088914752828570819280642029899082141682452587857260437091473600732178897967910882316491481344757560312841319092517033087881583327227549229357637086470251690878371613170342822999432857721397457212260456223360988829738859062814440256420960402325557729976512528048540969249982367558902236164245262141398329021401806819449310382830147242357891196120137012112070727599192832513931041763849398597835561585144814042691012553288384433262868778957502159532038555944406615584203832392677603310534381062611682101614378203379291930208796380641457675849000825077258678760987087112300653752404367926573379992903823413958370959142612577031113143713509330023001006444210454882647030965023092044867858391299457286617431715840730394675131792419377417016987625616825871625117905614827755671924994641313726847037980901022548212012322331036244405567140412840846884910565155726266790799233947491365380866558090280629792778642218184678267317206174373507693408171539643527170872529900951662247354770765017886592802707768386898278822589717162631927315437805902068835287964700574206471553389885319074278530410996560323897707728627688429034089216739004546524570847549274839878466988658365054177091061349923007830413327548394788519839409656987320096973344092352574682060889166856696717285025407044309857176038160469507128839022932182545064008383013178933911588588591441453771382154776397811813160185643400433995242310902551737466020156146304047897535824561820374390815682620584098240774027610357082751486148890532126072512370539477100604773070845469729494720399822893789460245146630335237259266817676874802348351192672193720899751429631871612956045608775495299945922472393097858080728794234249253428748122907811233363706906256358846326846502514851557729766020689420015036299999788057711493588110351432482975842735250303331036334327910565646300041249043670105461143278573792015646427318485817392241223370200602848745693713515952917530353015782556776788433616115084044401452929573941163617193445385950715994603539695558007838849651547370483356850537885371805875185811658493241947825435274350114195255792175833829938474431657977161757626778734933387842080704699983353146096030986769656830625631492884080907309153477634973053459334926719748206358659717773766654220255695185251040345309267976639837064099209825208003004653906518154495393238587230404159725565741597722637469355518046143149918137844641935807116142617899668798324407835012315957838473468148495537673381189788639145049533873848152992878928486265478489982225727470823162634417019280781262970295597261785015370997251604952406176942021580405696800170245818654334678238411925414277517887936464610875817081501499968871587178776460685245351416167439802277241194398508391001054327888843131573586668481847089160147198922529255835981939208956767269959413321514966831386463087618101739064512648294155928392614553356706546631382574972393654578977779144650760144278151350383069152734849811833545112993321491937577096798108408592156401964373649155021669770554664388038548204661886313122252839396979416116513305192433495561775238210917862984495700096286125711822104692290231207862290744215571045217438616752080185802465761094738250249471752320719781524651679304445597756653958891310180963294846718176774156695785150268926963740819947320368347134117284589274597201967026149705821010648942924130573578995520183672241192695226488230273765212200524141366318508269201974855015380710957334859864854153422932947247271157523702568900650490012817109248348056654428747129731023412464970370551636610222977321397430788832974361572486686773938148256291325415872834864843096316347479677780176854052567993652860560741959442459460017339960340506456496499732456438341755923236958478716353575373228357246911633892096897675645084072429384582244361809353007384271955634570915537778580384792197792851951513973857097524350560428122747338825485406281368380033454916709589787996709659581192434865926167821751193425178623436186089169383257215869350308263176127172046731212484639816630603090381647356769748397356928689234094503186479187138300043476369968128565243771754025436066240143360381923069288215714680672495360758881790153743816446547757821926354120976890101825730219349360424030347793298361662969220030632016657309815736491398134219590882823506748468024180717700470865495392372741820152766205034810010510883597116028831348839361655418612322716141313329898207819512094534777889604758181989063560328568863376270909818485530702851379991926093032262967781119191987333682018036238546495921045340032512748221211608173106713635654526105573669304131185365683031954608256423532418409582219504652216500730983368890429507654968123010387304651538074406447220318675856648597290178697652690420472512150657265465434779677371662688966323924896942705983858839818641756711528468539458851869969197030056508909357427352972809462031071417645680217869478078665438235421727792133286007495946424505800264430801572944749593971355411608928199850131815401469790748972559920186472123937481150054476087742872536676981050348092986456651416649754357508689930285858409252095522976762797413402809374449200023874071216078677313859820673885419298499332435717707537129881510798164764505056094375091488089445851080640439524184712893522578167334884696510528006074553390799801981798918572553209413829338356791052010432242036302601470290137726197588269975749472605837112114171756577310323126826451773224624424992501347101201072100963080322183068546133857871185410206049445352555900558585295425762424519569671764292632430461949453958704558209149840129355489978730894586320130735745637454874925190440545420848948783337479948504522818866596814939867371651938130335569809052243444766112516574498303089441537644853233199820047529233966706898596715913839073276218727166165458659278803966677526756784722547082113482419845087116771077305158207518516566410930628766368476433308786061316108040530747083718735658486871876997324326451513489758904531979981911358512575276104267943014068471747571474308529523886766299100627749277016784845905322052511404204206925625969120717796358636072177786036551119157411266549011962861199966739113509566231166081266271210327361280355730858545459888255536565642107415938216854084289519677938355896409643564731463447484031614152204169021007640466800017525088797132011384985729468516492816913096521989353078357422289856152517833275814279427182252352803092507538278150924244014515176350985261354527646534723076105269985511797985048688978553863330205448946072750120437062301876031935836870443614017045506991116642562329048530503920950366264981338107190782922273629116126767456069829346749807462428359310706671792611489853849546938546017551053317401414139126614815569859083909001290572096237731926818842104156878010465302346852323305226210914418999284850591860223170405937411089738944969169279135354890038649885329670926948492401357154299833307553930366023545396023109040639548546834464664039928250008796612077899907077174276785035179508915469150910315124617083634241826688619406187104832171292326348958280877762781086538001780555578327188901777294515312261725781329835885420885479042987428975062567396359227808749767960144044261754303579269412515901910313681295645237677948892037561265686711507094479223970908385084791965236932071964292246295657171903389305759097866617326413139542336690665928222745559370212670110744778921767904399192443299840024996716945409487949898727159517504245461503725836291082897868545641997366366651700466169864809161699358668614766255226869860072857232076971647655249656462207472790600452875396949016036066728101317778138649843367232605485059011502376529925339231915882646854543283181619851314839487577947874407211011704942307458856623517166058762702675742790613829998022674119414200184624334670573955207320641399796666306805073824957850023181555608885349884202180210360907618747876049830709580626121823330169018856499722392143691629885343151963098916053895491339229428251401883369941970509604594675409258885637773798371638924388893969246217287331886074492742328398980150472736620022588815532514196966352427660022876233211621552555062577484734706459530118800428148311212983114988842621378369020968360010240786491354698719906680383437489640042141469429088993408751509811570528178889064977781364659451847962159793500283196084099975863685323202206004185992481443107766628989222523192347027567169294586963534990570865456936356897980739895786195911954047357334821699567071046964652471291595997543801538889818129389766610887897155442444797701706730032002225024583386706231400407145620930311469359203400102941314859744754434808450757586238293705379600876630782647450574875355188061745518654507724606711219224735982973189272848411573286074720242630289000132960508163968277640312724503924866483354620689666829823046289691583544923416330481201814526931617502764150861184237177807302093072646864436254108810174478412798111829802791256889792383128387255138197647485793753259086066114472739921506280266833757999321688574488136941267315607162441462385415791141775537193704452029334462547722503811121583079659969336496883814560857001973811859941264653760472495408501900932400658367904789569300604693641767291580911126284856330952643831401844912930186197491515583666075906465593444756037159102854163211721131708880214289831979589246480204574712611580263763432309115484360898545967683496761100640507786465260670380874433379508810166392523844091198567612974007697529588180567655988320587291113361627016859987923280062791589978685674913299254465923482600375871438861888908838966209536711810668191674964523142853767718466259195618424935605049014365735991372930232555204580415257825335969346789219038524644792571860592592473311435302040196499783611036818414844530868571880659931751011035306210424667241836057764738336169237497275074470163249670163467092071660272175417890610535276541712919969952433559482541674630734173959864150907296257383111470707481360407691396812880302698327138419422731631794492435837784774636517992737171084904628859945341077092498178043984944266436062220406099995084494142340876937285164313947691166323303842819046954691280281984701280765773925010214421678667775128941975895401240681566914463642507061213328229519081661068464875234580948471730277867803112496722388378092839445631036311261619271998861633813649799943387004543319062479209563430415268197497328015761904002354764222827455633527646141759123844764985518555623207840735666394726668599072485545013740458921623935248324118791679723806793023770889853516837993069427635811782515275830540873015414793049980817423207408199856479513178625895225303956015080332754218343833341727901078799453630452838816162546942989034493270689583725872385001489963371415559728036048036705116801973776395904085581868238748786412813720438043965677995546510639119662120925861180474672357606970316044945495587681587277734709183126395596014862662257241722329888260622075386644481645586217989889607589563941636498450457445722097510634535407712674142851630345954201793053757975697777399676411056321648164786594656629484003660538826972812341417094670046542871582974331787986141231996749779047720328594421865425049183846989704720431030728606572488336396732923172090225888093964915357953022522736002801933834875549355182604380001016121822174011116719304233612382266094109054514922567212975170007609285493297996881921588621771604059803090471635374638707477073651995748602474897799967919704177025018416846780407156254498979672887894422990466314660543401093941484314984716018735426091567138405558006007710397159662515772914784867229079939383565318147369548047766444423819807217419362705876578998809201053715540583543598958847953380132725899042313671918536136772721593798420176111946418745429171110042313375267597972865332514643112773570189882970746447145040576732320389817513563056253678219743250996795037424553538476536700843789933005044029222995127443758054611323291786327610736736369095332760290415522130383679875562422181715241651869390198694645556950284826974120803730189560371823133143678879959585810828844635671264635327820546412068938301677404791211542994626172020244246544620566632888657568259523077760393972380774958026589081174321924308567617214362856215622749124270379886877558242977304496612822247246727118921000430107988678608248262744886211805454958552707795800816773300452605555513231945017498888518972350808700351586327632599198868202194572315344460820514839055121102409297129131970470826814386123339211700526651824460111316925877658534874720437085089441645623152846829281987772642090591059340556092175950054734233146877058581575961736635092392357890260197572054895693291826139899140374287305389531455868745978440468430129334922640668790096871186744620045848019186236800077765407274206318355531023128043134410979705104959152614672739131682413116298109446276360697166948082412523402882869147879549368784223316456444278230243903979455544390663441193881227422434986939603396193123910380146457017426026965486654707912726202753307103278549987020528624322218628815866549607545102239750854920209084944927827013746504526658570163332981543977247065319637540394037864412451761113651581086278470417737026656442464053253693844133946855530136758480318350445313494090379551936109878063433699662429693269265746416502478662523097386008200078475241205319466362423425721467281447673138606750647026441125685986611447580748748673144269763612561377568821742465266513411630057574579874107327552035870643485703632845591912417960523595516056053543678025689679602563736126110821571298686807717119259495880015336145403164346149356116893026185982691551766345869440522691808968684878394848304881792742445636068543093197328275070105472691658550031247041366790677186527195297919633917782999788950210945831101757376119095085528342522501179808767169379490552318752997372280721733423972567416664008975332452497184019886397299797135962798444074686265959425520972418137122322575567645815344589376325704596645793824086359804694233485257778291644700145119753292062508957825484138167497114381213834350252927231789337420108332120850705786906187200856750634775302294325762627068979912174757787110423054875415388037349103982490945274792745430946765160510535199498332070702750829122482344652481478646004925559133754381895611013867495385749140854414788342623106772127761978920519849576897638138739111038208208181176806673375933566550911301439417013869197210324853580383651275311296641138643250748823768127444349599907242273629446132781248935139399687531816061291339683832116943230572788035515901514018825340786343864421936966749805124091215231037140338582448257604267488105500264106576027940114052904055087179673877077520893981534967074580690190770075593102291819969170615900333716681408515955562698697427016656071873625528635923032147021658503539080652666549865588107240669268298450250335297104392094595838920165693950320345066838799550709092290696009920137314200284780351184585130952875000937529085967338626009240404344866220629819292598084927641402098092043306944226865996914925564995538204784105488681802696349190146032511620624833033339823660088766849188421366462502332979645574789962099162588652074870643223895084797486568142445247456491083418946423791721294476270610694435095065341020533961048469726820871816575543620353277816231063749522280758018018388707282212046465386927272873458497550004857602972153942724407521203542766158477077988542290757484240084004240040946358770482193576253597834608180237135704392658663250401144420466299418988336012199251291671968659415203811356453000360571939532894403335865581282878360184325982177696863468139152818471634120978981922251584497074245960769688941411574560005484232903907791775517370183629591613945643070138200783315086178701937609685424713727898589859043250941590440769151158616042078536006444116058587846471479667143457348011781902919709225835782838358793275235848831455178710015408545349288772276861894235764478985735683871948280825518672911036017300905963079071510567331417676557528796625204154946755851691810878968614218699967592200684050893284793751824214809526632640472704878696322761059811380383637211933160493653852659531224769741839478049022511873920995272627522036149380141270139459061665537375123528437427499121068414621825239107557295806582715895412120446228385595660857448145611549784645421582699553414492805640854188049734627840877907826777640964403372572022729645380814804955728374490626848656003375146793436910014362537554188413414187268801160490528905052892140895453149671103002011675830546367039688063637599991749721666061481936946122273659128668176653141747658337660560449059388808766235841854201772299027445682138681108791774162384732811565978861140406684873144201318526365868534135068834606749372470595967287907884690012446347036301732153425632465904584732764363096849377588434351150917217786289677330725403107929215436174270412817170076094426878513936172717454135064195399337688552232549311982523449495871266323733553615261570793438780050034738246183672120924735890798497525197592238464605811635287514274052090725972159788075479341098465123091332957669870094196266148639439164587543633053613291042525354740494961142560810440826416360007340577223221947397087057793359850296137947059999021670304095393026541357778203783151079931307709957239768171182017444187094836919422961964287369389938913388012059217476136705842185815460312486177790412670249967469857001933899922532138055166512551148067230700246119511235027403301482599795325201157112290224104487623922313979852854040743108003519892300924129557881957063199678748926502786453442891197300732663917288085014046039991293056806393285221239857180498960446263984351029187479927961494531308604351395768154962214637966665337857722326051980361263057932227567367302290563694225239211047392695108010341412227357988508584112258427563786709624966861317843760086125858060201932414358122223159538262807812308407863084520721430654713208598240868728973354859230563298346723248196099506329856818236350419909559033819146881492517209682146837760367806856689828423236572461251296361593882282584391843946049368262165781604219686816828092246689020181902975439473147641267766707600771967048519042949375093987819826859512479442188684873815474719372404841746544827984309119760932844259849600883488258061039826097784503823298223461176839634279819483083429062979305457539102492455923835256606625428213534975569506235419682305921864129049139085020285032064119059870015531890969099030715840243203142870620331597918553123329968353718589253833254083787818751107510567579072294600118091397214995774348355563818802422642903404504883612858868965655618433605776175368747103966957184767047322994323070225715668763503989656510051925921534697517805570953330268488452527893312594500801928416457221494644323521978155126860814342624813839169557875250701894538106077456086767232736226713248249839295380432495119725508036570640863000339427921682129926269869688188373783726449037433746429459943314912724380223540666247212205384263410424537726116649092713285551947667141097884906817185334922676711203937225418588726901681427129715363938029126291423467872305276559720525041574054758372281440257897075281236104993102026775342828301286230737274743861162140429152321050141080181434959957534063077044211530754116345423431129506458775113025138398226587730440587636744133838390592373191365456906358023151256279143410814232167324286422792363237651996182704944464187920511261765645847768619016795701658163457210498214560950552889245026680501037205024166632688278497885497401741343961455965901905617139384545503525183807340639947786949592093635735761345774496413539153026589954964626117516710649596873996769156967974151129181895745463777049389044121681828879533274947944127501028659130732641241368221181154266355549368661762394693714381325947853706790525236846613122896217223717591999853285656028276834978460871100669423476949604651556148780496958931552606972293339416956786181159323628566462824886363514124632039990399905325228461130487255674575890016158490516511777723764180182099975975682346830871766956001367504669156935971918287833881788651863946927235249263068390870083849365753120572601986251429120188900645560504106354081745983564565461692503186323175023846197850836340119894035432813925549541261088475134549015627310512777652165579656867450534670892904724378686492217917669016520652552158194229931049006731073029881020567512195070877032454252022782618285666189623307455724893456275789791910166424390743647437826541638118138535593126310880553820385750778448339963522239320580186890385708876201999385761270251133441768489139342313339601216866888850623677813543365182213968059682634285280662193839570761381282725222078242444938536668809128017000784469931780915680792157640938651113037592414057036413270736759089186658944833607428513456574184267027649024401275260133533192327230015589250072636079474410612394650118371762900062487126128476289120149542505083950368690514640104555998629278744887642953538496546905541544528679171999720448334774475411010242181825516574103986871671376910640466132219165043052185544879341498417053122410986826357529709747027953563964591003485870143975728417860962561084344233745772918342295171741858641239579584638929287537929484490494360014032901911067458732630454718642632118333139076108019759265358717283916916776269476875404655588443671565131155047130387622522488197681876187487429211022739921274614068413586358592562185845313282155900415691494734750168131460670329409592700018000362110762961183431717775774435129105414290559074938935295250356754389939669410905696220178234410040260504238113543504767849556794686231419627125327060609499580831553356962762450488731975376214712419018238598670173765339946440383906841070917513293191308538347211947364844038052891670186038418174012850602616461738160703787094446831248252563204456931308551551222978376877147687220221770109382086454815682584828600097241197477200533918271719502299911364892767504176974778579460775178986697438825633073826416363154045479346302361517276823549679237741791991939763565798002652630516519351082398949209011857660639331240081836340316483602687152369830254698067298319878474604410163140476219902534945695658151938412149119839279770501146786063563488554148506664546725957998107993038718232455280808498480478549073013618575654454345621639498199270856159567035018214611097595934988232406435115123443089544180580452834438754940170579916322390006928513996044326684101265000410495152886667253772556952459325824252534620075005176115521775978258814585962901838649708268243574886424004204264663375131321727648317429838865921470883704513827866285001103251032278157642512833924570980592089738367456566340995572258080789783141819520400229295513320740573864789747673881742323444359503602807429851213983270892573601996920101642851184124221637112819458106938233477510491982978780666779671040961905403055502593547244795985159510207449126137807703492632985767719515103661227002200448842263241429888480080298580015694729604575702074831278256180806148207226996889390796120679620129327702555209203877759696390174849448368528902651658034768359830830485365230117306231206292815712223305841080663600853053533306797492683920236115492164817128740736981029658495661720162066602522239970828372178273289671899330673132071058107121065104427373840431918183599934143737938887456498826581675945691176177881865945548412489135229292581632895317232246217419911880807662115238044889350642289895495278921620126123617556510665395109160680398220727351682407194408590079491429123584520535718916364872623488378243621534858425324813588376578037694209139256513624080444601077506154540373309992114211364313193525970223291898865712024462402627572608680436188378305900929731527843539526074104402878185823195606095484317439946461408604871881438063083818079191024129413343513310975567749908528204413634437257612691904285730469910453459192983448845071118553419823084693476041034808757503870696074741757720250372116494490452684568795906598852714272832201157081534951551809098575310158243684039636825718102737618587563269555384446627739733860679496283002397900844862298900955173790074255643548555846177184399582150085274212636382611787948688984949567376396232821815210591959335025949274857897649046691429702728393904141543770641831323889890888663808746226972019928874067958724380842481954933453614529765450335094326758942002048617747072832968621238696368803155878745501799544925790411499480342365140707957147535197276673446641945278360050879829219225612121041931949088666731012619724681052503102250960450676454952718912880102537752904345161443464990398673731255411000479874145223942285588996761753234092869386324712287329417559957603000854027707519695998140347070406221878115914071986886566878229531990851333637745186874233525430957956838169522873709635534008155430602982673270537598590090786915572028854180168730592841807759043678866625690245159937398379670283977608909174939812195696902250403389129351362636685441998921963110837993218835767000606280521997701897342273242209536479279370330594360905133624027033632818559913197950589420411572385247787230493926856855887640584457330594522141654940312477029321849548608848216349399157024787669555805946542407568527579141218847465206825024758237941350333017954166986160975274902904135181970941938326249838503625770098323490451305436792218477485036449901026429044724765703639694784489321631222287882698345510442671929089475350160770043805359745284600221536210997489441263072628519878775466757970249679253685707092843976161664442485115582342560710470267897221618734401807753309101283515096829872370072229317574228424621307065395708046914650051521453465398553663762546563789186121485101700315192105860827687837546530992687256671886557861461113857179478582049040445163022619033367724188079574957919603794222415217314041305633587655450539128345530773736508673990900196565251344390316146165770049802572592865192056112088728571682868024197094461463879411165168985174441287890471764311126102462768481877507380214845601574755640778356677897401889292547617401093062852108826355098880997961420193906495347623305170245335412473869290312988216274366366355838857257939994865028526511375671281250932636532500340654753124450974737609890962126730881547351556189838143004291297045913209940648106069324535340952381976627006713203392896641986070090926886725476959786055001423138300470692183827139840778200060638972303948311217325374462385896386562317120436529762864105698674336234319410141114126371831641421082333914997902300305208553570006649178310240791800832300289692630514666875690012607681443889971123060626138144592486632351958680240414586711729866589138520423034371223671143648415372594410340435588808360536711659094577662671999311561324369726733415574174193453388419579082800680867188446900702341163240842391255315156147659756718734458914351730655211515418953446703364576634783640604629518037521609410670931961664203873487752833897099815663937003078762620114836535533340991333197146959782342731618285693195420982990254075686007298813919090287131215389805601755330763822510351115461669530880425315918178063744578817748274567252858825041375868220748562677244080984097471118239524560594247730366609997145169040117028830195172735823660866103036129641722716651394256936189742712120105224943980037677017437492085706350757108489594461236444971926830409340470832465256069240651868437768267385498906424351818247868686210841853341737286277071730075356529746330331949735822958567322495785088762748466829741709605477001664863001518734391611718925142301799640138118411806002358819616963298856074889455844042055031484103061658748052891739889965425311327600938740761142430928473839291785197586480698334398467381268839250184307496097777224558027863607128104272198149014104599097607998792511017047642013645845268657429611911232360183624505451266837928137436015035796760027191312127960155361294999926726091059727275465964508251805204800800211778843949191786899175940715853173718258134217655025051819894870028693527053642204644413744011487269318065012266957526814312980274007431623125970311167404544032093362167979600343676612433767271790387151396553949469062003636319084754825592094219342824938167230002257547522941665247137745105295130770221302016468679911158903447739642777585123039619728238688714138130455515584869750654806964059317005796875310443280598586679274171457347058085761478737983588053724161859842796526742303302259760092499412661384243774733238219550499963590972611961892044395840954621790547950758305545056300969379338613130960589774341910246004523592323371629581429694410042156618932350434924764686665656981897349413515546951683278302119668430126555520748108757591003541546182856463255661503040002365495266783091472245358343964928113384491587904659209288392116190254733099681070218769402020528381062059955904693213121751100345067844886638715207326702122396431815302656446884541227711846607196828811964328156795742934039633849095328615124152219057692582474316912443251411075597919372697672245335544404069086200657553911141502530158626116612005938155479990849519846494235937688320485426696028626564337425585791639603456640625946605481056301708392812483025999129160212455838652294468292619716352417097800656973175175793959832532866160735213585205592726757122908516341686053500267599721880047455985838811877816438856540294154148778089075531825199973731165839830127349419138439187208504172790266272825940625689375755954306864932754818733287775210595407093980104128591929697883844271355817858898210401973091690445596858767043271761665610525243284233879559494530970236313247076729496929957584422438156796108851171226902092667441874953452639444855862973496743653778411437582403637754729911121833787810923639727867697839068201121003546690175390082897985747060395032784806202672124708155361870983236994940563800435704723130737474006065740709849837012812446630832102066552706499197763303838442665066960132173697696678079884588963231203853234930925141375077857541943109412585465712041493112690237190733588619623696217630438084773337933747715407866525942946437983849909046068090690923015853594485252615441801204252918512404332924505574257090789419367351694340243830044308668866257567304424652422760105768490275484456012708032800010367427083009620415564979074926957620433517337362081804223216691984409016883882393845354316827403823790505966603586750504617192888037664998706020686464910211213383064640604441980575291412684376426742982623356401657361697182534110529975279947558119462821627617049271937952652254862537026214289811178416842717692545914108083202471354469015506452171649884245677769451855625720387815579708329066005505618184175324989893505925820346494446986112220281639208105895150351119650200489518791766833549597692885913175235458663529149484621750990959826579855749452736274226037509440675191383191810659182042004537950199154856685521157276849778618456764562481395466401457535167181840818425701361665104170570562387599818131226864143220006795764674632888319012331896409186525558896436129372423028160568758736663282813982425645820945360262969367395475982813879132219046761831603806865182573395055498717817819992493597581584266503172346664420484448561558498054579976078207359171089048598087181156687484256900951971011522410014444457825550796105093300779053096620950768036475318805279198776507256057128429936041188245366152669976171034730743984495221016241141611244705655582873101039080160313847379185526739859360318546160705553229799412465760640940243099022213765337799033749424470304575671080015728255866942820088926873066809835685620966670169828672332684941658411444467284910786579779970743102325808069341589067835451525441885633561937362620742181207569769326964458567436524856548268173376302849971023725162275821303674175177443908915031860169631945583793166537875014417511307284379532413894689382271415802735952484263449321121635836103880313285212014597134847135087684427283195936402024073538852384697732604584144802410133901455627501118302543770905983267701991824304443401126193340651565095564322606271232355817999999562524012521518782641295867741595974028270638908329761513164417983149717752696947842153644904802232766059868912740626855111258044917509698362653090131535723570984837691824140372224596541872141257247940837722025687926527988209669013754965705026985110493372376777151816665481554290437158769566967732772144851968194141263624395246186716212027978144754096009466002706001612133482286241816319703545025244008800650720143316912751102514982642286563746760178265498671913664534064793848144454090416517784160898115976981627830876563035827153378912177716547969429140428407797719253475029808744457625264265246025733094939447063441891346416335393411925819290060688664845945622362174766913717962683060646486227555238337390260148413293016473622090470453561531783617940690148614394854741592729168275750830749650788436813296811191942613836158509702396142267508723939553152156281251831126336705116173349097424794943895970700035687614142188711687133644274752314678187271158195326118971879924199020432844494313012711761875678348828298759652260882772030604159584244079184791106424491635443307258132943583488295831504283534295364398463284870221934273444375505997457349577226955888536248708513590159642016837645267682795001102504891089198616650217495124020585251777451375630966307811106869243015289748168579407856237288108936265835047832491873865642818332159044036242141165471889045496274078853193208219349724108921687716394291429788823245068492416484253368932992530242568857594236405252695289111479638938199028539152099878158645596018899913615656808087611870641045544141512273291268055225454243675680982488138821675296931141237529084234448711416093608057098070752509133692613678514523055594957604316057224522513934956291736371561730242130021966139638450563817717254308025324589099080761611976171640612418148802124840757743635580675957194052756017814436327527072060249242823253291354582265692799622612490011309144334651135669808438756009963496061455116822654647067194202522658950303369544061498878690646161923974140516994439356011811364805818383371376983377006816107559985724433190670589061248328757886800151740776393770922244690305497379393677364396008405814438844036545611218038261691738133060766023666680452054356849334771588529262536238698234639484653006908817720193688166162902307787093101418592551992006593617209796831379326105955164538483786576297121203389370530866850834334303940588787942531264290434222978722930505118724371522266148811356326648150117893810568326976294358966142494198309644750672734647882916945375976836339369633139792545982455328496479808000199171442365271001132820733501458845932916515954388001693620645036260925587454913251327152424979181533556274910318505476859371277812769666456565957279748465026460671697296337590796947107159313531152838762438587781077956835794849183121234817003793861466341087339366908826119131450446779989681645261610566969662816591861947800296406430581331352206047376191673049198626931891505625400270177706826835761329305142537047568794044964666680022843954336872129740190327457587909925670821432746098638955387948029838324973737107652713346596280202203279397097327969346135211108276492320577038989607241235715688578440863202764460705098101524471405265883496149215222830656391486081612068184903330100552460970800033342410593070810238305021941465365380840736693786279017951865831111027773498047138206175755216679088104182962094917466554189277347793913108373902392949726279521924018581445163407411746007974769616709814315221903375084722689277373552461430073711620122352301936398352560232318207102310749810733267632913092003212483029545160934203916946813475198874647944484139708403868179631854044565280455024681994737777568281643476883931503640539281268934995964444957363924296019663847856328647087050326924996432882564225282234452905927321718318388344026628894274699878608057948751329000633839033166436147226393587139745296935291191576394366975958162288170855117340068220909107116392608329785389796039671025754246056782471501088412017672447425235183760095183056425972710926343104828725929508103229685840999102805264397717652658284162561517980867342078353051310131719272403971707811113124378249420371626613418151332032474080749650731791244883574258458011892777273303794347495450187011246536328302757532856788015352138385448879470317605483292867824182411509410303139597970977839821041856565390784195677070979695554891878804789645605129429138217336909451123093398368125814973040805340908701131596300943879121353084651520813214596668310259142227022884965251426927105808932078666734127450806733839072961464870548550487643153316949410130641018048693834173908874758404157232020874539841712613011675387515624318170415349428133660616963311279613130687367076372373592920112339486750678695207754756610476579666538402297589533442363792643671011907028753113799833119377133559603386751825359207879631845064625618677820069158698907326661467045095561603022854454277750412695557279279224147754738711501678533226226262488893533641096430122405477301170328378046360511555010847621295835622020199273543002551899693706812848393971660227710697060561022833856847414785878881189094936252823584180421369248862522912754272150366869976499522142348027200812586648421240321797921702515789696656097560747114664226955784710556631861719351759828790635727954433136490554404960826396885020757522842153879668705156011907052884209888307066364188367225069276007319004466576561819926437686417394642896360112333374523760761949054473097252186730773336505290915989428999551121142063623336858326692657066905816358572955114026380534229836642900989242285035722821059098317009528012348181723877311247042932760335049564947863974863070006729874770575605499712636783296676571150464192753377532327183575469081244402746474124362273046686560577161907768629019922874069536026150692506847386139224105889640230591673321192797268143700065967698301577544716187014933352901618034760775628191501515836862698687542880760619219022277187862501048710979480285677181159117696091336224780632364548228906374247598400193634799904800946108601878349904106893094497373572220437615762529252603595786826378499710133069797373950161632439063048748239628807725205490395163014923400630843175210840232006791288927263805736407801784529143417237335598790565189062513456672506269709942073268182049388351841579687328991010443093106378224832795121310481835482179856044581769771420470297624786353155562502214531659276159635052679200867311352020577205078225370502388287151363060567577684504315928739892886063222217647962513690203911016007144523577825472288224613328422436168882059938869133567200411931975788046279845542360338458354975617128067333038185499614004303486573716169520110883697828760282989388297980335526705203198671360627527154186184036893729810517015065254842491191854002478785473571417573427637614922911551117680407062641794957997706416675479721790742166118787792708405713705039363835241753714492812170686767799115825650694528121823572105916091250978331632675228557406956021837974867274261899136586459288880846193869447293302111283579885601523646846900463486744351051618278074260954853556783448045477571225534314476658595662404115775413194975709383007972680152927807377006816026560023676477868335566788303138196342622005981457844783200872506914709050716681189887597022955833436411485823093832121204417456897023884985894885741933752908002849017762248077882011942024146584095000434153456813087881796956046249294388857810391865018575032984615155929176059510812514958086238513241021312454994159376220008198822715596443204607358832708730323322774379212173916992054013844059154624698858766020285994932523662494274280445955815109345314857784016269857209409506084481770613734276433885148254784551185465585386418735503861320391508697959317468541219522178711481373126276241667105743184718582406293968044545265024498017906797430281325489860117104889737694938503875349191033781780727985436207331058370483229102339707625328470587852841981876474021045326889327963943882097007859579824710892903715679550187275949376166617712586570681641457129972373763349803415373446070875672337045839701321526446060919330249166971455048910618736401390484087691694327517641424814957109307479770354630216860095521088959208015842959654050526065441396024880088071569248553626973545416893281658091572685144100008419865849068877338577234279373740148135905271523330666283478389124391781904530767669067056565364950660635596863901859133410220755012792880556444021037074409768740636325140680065195727748150623797353613928871199412137848428496013744117437269319067016020235413976809918693799116078260386019908968325059826754892435111915010811905484784367195664213675528012537679485949552828337746658959031602213235836411518143598410611952519035640266277834180396842306114971069289581102181754748721477263120071077457788982025567003276303969669577701317945136742008398555484234036682181269830932252708391176892813833424059963183560460138331485739529364463030661561157698551498078570984859809286957185149792141433778152698974353668620276931149417512559268920565348809119437584670705843064077514736526883310205663641374638201213178054700684899481798790693906241650700389501455606226688631394685957780513071383620342921380078618544345531914491898773374848498018231051286432802026394520997293340881646433652963891081653427854747900545014067741847042087965144146363537842419819847963694488659794996334957615891192600284379476813489062809585502926335519785541861448265661926155991143130916974516155072471733784617599762382360312158644700786837236654171505875416989815054437039781676612233779517595956545331624711976308093706188187002764847325077655669448861289437102443590578813408131281332491291433171372247307017121649855225569848985763802427326911297386223315385290241719668127844939225005709682276255345466534229831192350248393939204648146758411558821946968207551492374976338317190621666786599400879957243606314268323428082620724794092730560871725195054562530799289176598256209977683040028764058595276794878712845548583242743615358405153651246122361838370587418189958828760152602386967139517250762865486587768068470945582177289916997753575943175785171788134090097006870115675145765170721705861824497423146486239733679950641939187899987379171230435143145555256703510547115225727592805285111453590916933382113428258576161365803347691944007231697226643947895689572728284970583212669829055478761108452030198014282055806289771182771492358843796920198043850056146774898377253937459112981895924392919746231588794826000373697567049508086540785154569076771425953685810100915287377953520868358348526380289803250770709813027113332018684514613592582146018193975562788238637703489343461753579112909015039902574544462659375775539066414367791129742761953028094008529425947850077706479312125777850508570479633266871855630812259390017813591248430200246852061593848166133847852665984253598288188256546776158557218636082670089736214033804759728503244243038252472883968869104438537441411410176025314529697185906697388503150997748515605963839281379793612033376252989269045063884008705915350322401977438353720827385991713107715776533475340559562253526965482485611378274656989146618382311301390638588752369289745427239243358413580041863142199623291638545215923100305279713512756379475772506390161658514145056237033647446075458913692171737600551622799949433886142906225038214830015210164615534813778505660194030403455721150706291244144623499370942767757233124049658654647668581420959464055680128380225499292596095649951510727143007552871189859871466861949789797113850724574486817035101154829110330950653286119510977215502894460205685074255828259874136280133821102137551117010459164946991338651907887375612323510128452222917410709863127341576747557093235523783393504535928973617841886764387310979970287529123432874492604446721813926425957329636699575218681669132901126989717167989638871555786579310810893017192494379506124583849220067485491852744174697197418311003752070258600411160893008635294832473505894931739033308884413755708753540085704119033610111614728867119347680689661149300386265819101398545138987086411246299667365083226811676641132986115184904122448643568951833332749543180922964928730944128625173545078523834503113045270969724514373374782483795675930955962834978472276464920325148363827024200905227722952656916374695169714871724902285233041095025748311239087109343608763425650588678084115827296558004236640736955454691787898311245117205272085226511297834729558078966084536653643912002919198886171661731173255561557874663900265418218861291020258089204691955316222840268135915028692496554142111685327232956227076297213583793802375714848026107888781640406729608751697970464296490080563313987374962386989208593777341085312958962928648479879210014182850161539178741194480098804632552016243784306492476262752765505282355483077763757257239292145721929872345043373992372856103616157571823698178573046281517193712063005872259590501829368486520093823905603686679209820667307039271903754277249164237791902284268882805307759250029136970028069393056701068954159587472210229855386153261774354620953675431623999276516809457579421212235150517673489245098789673505764911177738384603348081253579145822355463377700597630371461124797198693568360517200401088488541393716990952870260100155475539220333460956958110719673044328014127575054441507925015911526508824572431660365308633393105977052937026332023764872588342551398344064636430676889309601549152014692371520194678097810639105265616013797404274951306894120313932972737938036394933169460349241411467237667677110087908037212831021718201079878912160279787791114339515809691750550271753343685482222799593760898868158592995711368092169814874373643181178414956443814502057121498944274982739515996747079806539155712233553151767203392412011506146622675860455433644920663872706622108794195839100008213175608245978851438489624996166373366635968231435624801689320947400309116705201483852298885123422656887492499398384233236657327996019150172378477915117657124279007641950124690489085428666785687597889131371137872867353371331878553922714057937214826587709419335261391683228032804884005137864194810971864358705066363972635277458279598949763256340359488978118654675902469994057068500481743789053469570840151475555539792130034025822968852653253363910564223104498737138504614156764954468419093438901313357031664522614773099813962479388838870968693953128514507388595660725933238647782936058454308180142198678269000396045177711259826640185311401802404411793874755306102133532853172007870130558313593477208536842823036078117605183772270417457418862150661372844427727202251795738779458768266993163017902549532208101253274320787207949504066620647979322186005716648772123922206390791264679455787679272721440920834838987444877816037279584153432150036078543114417449476439719608194062464218731184405458636403174914294674331746714612859465215709522729786473542283628067561593009652775078206758132329783840906704547432067459612902777392144044769618105499133054009780428917564837351215156637583802986919379737354407252884741385094736910079849493429263519163120657012554100887518331017062610380008083783107822923732928684447401398812657506375645058775863022094372138975689488924127604937609734818267400711767385492390370882397826055915905582089893004277401987135495586115102406451844714944994237951948601407317763603041059817037047326269724742974951781490585233117240791785267180719714110809268095935072859440232485332272070395095544201208344433025333099459590708369898107064109651950916581054821118278362175235693495789561760420583889705982980681668427260577193629996499042766847843707638167229259190342429423686669314213209567674138173790004103311627697532476426065852380042358377485972108424734854016237065321829329872888293450446480250227580898978362284378646791640616925304693859570395332168231468443803546638293518026312475421307267806350399051922783247609652282461451617104939868122320281908567600232652487735571235270043071310623877221566901138268971705640827089734309436368529922412614638387136536263978207376829258050232854426975476196062574989650755779528389251650092202343305739907907693319726680078082572368019933775082278234598475319418140792162757188651308476618304966213402126853724334550740033037566120255218196522076007056917665201365625940895610478573977204013246608181164008896085321362982565029307776982556054196867020285703290410174387262047499398994183050502335566991308322097215986134349180676999592233780534797729316244790187862281708803347346348409417896569738799780054914578822194027031909622690097379303567552049146494263169383713632219418058170323487475333598070944817499715021691155077281558761710627547111604385148549084579366000162443508761017492532031224156757242758508712742602155062223369954638353172391354654687443742628473551903288992334721643649367325849577250935945108412860276081077215366137164487653479646350538005085787824862124872801289447848393839324925739378069964868115343877750468658773725307211951301717575571642097561576259239459908764676605622814520938814807725169884248088643039395087763890860740550662666262401541859861515018375890624192115609100211278349449891541974870948228039310376618297628929527096395676234967365328038837997823739634611658579960885667721886156319908679693226982377593222513752937971718335371665476662184848865251043168303607936190920587929753820424617617434190289613244071064138314325675450440096049563108316493806773614333154062839553611555643365410865662231368350329244253799092935658972893015267354564427312983223176030408664217305553057324129572353683440178803441723773359532155273794196641269648291664341207592802883259269661930924696438671784338204682391827108839608900833634888445916523187419318004461419237507030386430153250593417082714614599562130443125570379238251962726539631710217815895276473825349482723739106442006902163206433361353578286597112240748332626998304717680368298828238403316967062259121630935251630805482483049248718115855854858598894792396732272755983713138822923420746477456061903379248046914402759712951652409333182938580314351267213223065490636758306424136069908847456416943686537259686075396297235071102314674573878890215827022188412839692218918254543801509306172429027199754136356232180122140073631419481846546061716456570000764325979972478404118036776012475057171382261645953204767297996452772442990943621537996391948289510807018414709495744538974441717981414762556005884101685454025878267315239080555547967077081352062552508966688350748162281929978541941206015381763963236618096390369263105087051506732441086477144093741392482853007708670155988183020797262348991340889136147544463000328314314101185849526036842099534728640292350958953860214527332121791053114220625682326227425180612523288525109865747761159922618625629175554795616144961296421898926618598150295519087249561000244375383483420627988527804864853211089125155082994858328709889242353073376624190031429206974148808558093253543251100914564471876096825317930582171452560906558936607363121416055007278540254745100027379156203171213560051061685813834412342891646635554974035972020912925595336806501046175198213254066882453397884018851348833421075186124301843326961393827095016646209893147734968139078730303308089389814636693796405428352929502289833118562348969368964225513045250173717386554772344781933632173442043489442659800943287097066672223497561105042431269516879491745454206840103014579037825532764376353394547175217931008979043128417178694159497384256517795791213607794473780950308820443520784364861341388436692708158262171234127766169391912652098865341343278403215228081164654775429007376683722556879227471576666661833264688560451603208404382090259302074184242233051760662296606597858905381200432544807096045331465106341715501009853709561160151382154127994713883400870829578083525163351571148992188133156463526635675394908409043361167811592658071025760321312521468396484694498687068649484073951050943572223053838533112924815429329690705501463342843018006939122007470744933671855871721424854868371906679922377904462034372295299957644206336115817076172056967621230882364789109544841784988098781419878582211247047509332859616301589387872240217768214690781379552362636057413350100077172860733576415661485853747401259888437524123127104664039187543268864000279281031979745525663036120302397389191407951798894051763795432477824841835627225898604013031364519120670367720220408522734292633931110848590534463384046906611788411563294462080849044428701587160736178386487403152759875999517342765556099048403219151095649371028101509571676376134622447711222881660167592444012781705815321086273473557424306963660733164689865270444298330478706460157625889261858297232006787839757028102850801328455797939377641725248490143784321661571607042256028861393436430077777025058655585104676497750113047349628646186592529705065028771650055579697011688557290494564512194786830194353191505900371649250563693015809880704902182507846419195166774242042196421000881523319318098206127092058597173337480150030541275369859570937953847141571848607639348917196704086032724037658303137803496913898113964432971820768389535758146041320650714391882513599439127117811114486364812152131488876473643770413778390885729443079977585464241313098455775124759587880460913295098436627610159054475295952602945449385697956325118270995547587688518801701585775837363468325476549912135521179045324259237741413390150660447833655114819396073205200052846149595194051030720735685090632020507668351363227895361954427477724356755123566690163623852552685819387312188688552164036929163695494362602464112941493383865534762261326232677295969221162293545591841209987927811549798462544336757393276682766319063551612188695328857647616013230110226167120623931163391432574189428521241446391194453160175056053178848919366466791859797086961764617585095427483028067413662186588565790851968639645997517781124776554704005046926005271905258677580480182454571951778056850391010413438304073366718084053268139733515883677257601395886514664890169925610840321059917553307699663113326592207163713806504779610291034977719571139348816967013459124684577124607537854652381333886318220232398759424365155653938832545133790571825654736840893284239339498939545108466504205891402374373446560109580385591581217372567368574313303267491099513703768159842887778611667002493831721421528228529134587675367008774139497444644498297991250883547529494881562943701736368274834477358459553959740941666309290962264045250303903278015755611027403059725257722454103671258907251441289074931320494756017839796468352716635983384913014582739956453350268403221807980103801400317258755720511978498718213077703210840319249432808536665711182357618146166929444577846111340268042136147132213409719225156878024128831398804004462951046574353567239171587694318853215852549895915156173195742311991107587259729416340800918083558074536593510336788715895924990429235092079908605965618460139367990233205267995535454605722621977613290075039821351657823515444870948143041342737955375021607669231514880697163619086026404495938233786017332085529462228888217585579826771909324732578236783405839056986700007079901777809116556585172854705816374545077401675428976675133594516245449922308146332500161832541840783260653735909251508654914475016750091422486797706404195514669412846535740305959058768562861096962013244189545402080600242177383732023247822157160199469012644520511090083117367169423288120566375533750224772912889402328044838052948851062797196481921219730787842341240941298884550732861420681624042249176611471244968430194138883651579617592244790925985589456212936594292547534281879676456793211129287382356068616836068070182690636824278444750784349672558371516476451681598646603491280944610782535427901956836319889859482864815419621960570071407686758829362134863709824006126091297267602978383124722436631028981838278896134077449763798235009886984169616659067847634959642653999314895756955287617519839938777578827041153932649926743863835885135828628838642305397409060899867177660109313025340209969710656049142675768053029051376132544672588363763527373261210512522323481488429132320093859359850099727523991080101786020941450164210016486739584149182081068423520445990378526414440383689840583132436375125241373979608926338155052471578924102596285134160653461508428927515227037960661729398585898202310320437670928006555332294379156469559854395995064583932607768938838438132291582282965659938959363962574446931365708664507153121298111158804340222131850870148153400793168322731806419521442383855458782309987695653290868507374214664277925827509261061408829935207795191154159515177564521444801620598647004053794381730382449916692258095909374324411109855108655019950439843373358224067535576475207278863927732374624978858068310063865409196231352393658558711207399480683942132000217805175403224665107681421118882802725984574253644957155774405910792571758674983661078687988481353871587118455968677713580978383002560856244798373636761922072669191127372886373253468522955339853130871002868440323723969678640431398813597077088569132006129489898564588852140494424987853397252607781766655092335368187803334397119110125378503665617163100241037532432793348412451227764127416668850761695221850875492725050042615339640593006618677180525204196141660558994622353121813884700635950739559927967570980979576424167905948161942215560322082872853711451914538647631709627436206848627142006700073486113803565620538144469198603792115734062903137353141640527397277494540011892810836696297940332531530287476559325512869761975916040910430205180708554027694955163756167126738832230531940757578172438569298081803709410910042083547728665865169711724423581115259665944259131604759878026747413090236387487509501616507894003743095410037231883469174553769015774180366390405834426486118606161462199421508695576780680824098138557317534073970657121808744644295474870455772608758585980000040386851487841223709566749560181699753485000177619191061184032207273724169009567727245455137579736426726684798589019370761888052230511246493208533621607558967361056684841458531465081927980350711387679331204891674126344438564715349210558353903566590776962581967859920864212086782717922192582765635604874189410857176427504594692067667396648175129983773963627157755717984000866561369108818699367944722705997223492941514061066816896654503337174807026964810301143578163319550461015451737172495526967674537463180006400000881639587111453118380289563132970732284490584286529452801920779391311591998517285234148250216977432559289601008550021929858494369011771618416019099507250516462380746600415343358426881816977088257658936304203948681618753711361686175783172425302392620050409753022422612836009740617318433715945007951874584737658107349598677479690426491399532098936064549795045131931366073168444507224629765996282446063847818626697101618047853046136801702362045358407437434132990124063648420205606803699999889300877546766746680543570252208895392213787686664577892762691196150377717749861560595878128479676942288574415916696467045561031214852852820020153458655012770679129840305156443781859296454770467747374561718088752355439583216572076480627030439765571654381282583381317647555478795878154137845536776249459736582370081028392144447575139765304377485742596921892532923373766126482272314549909738283156395055693043707962509421790494968274456863514332922714223537228099363296595429044682997087102327288443860851359266097885000257219475510775513694143106381282705050659557291841256743594488834788520780658990121073533593907751343011133665245088172303336849393237129282562954606866278492263860994894333058816803422414294488299023916722384323458997237193342712034337448155333271121408241239855679645007934344112065104516493483616146237582240604595973149743977294822359517056494521540213559954255627308034216729802905929815370748180609297722651942660905433750372281679455104558814094044365791566248958023010359912765745471315164425480711911449291371062599514424860627774678424220212770738031886005655344802070237822454234074689897726512652583188402310492539651737505396244372770878311024183512520832031531612549814960456589498268561559825761999432717932865393290085812392170991544603851283706544020267819453182699698319027558972221513566836658544617308463350158950072039432605768538501099865993385883613362502585365226976666569246155541151235424769647961610817499262499227630003015801438153994802366072362881224587419191946650557390312534383499837779700716678026171845965271638924042840208939730790394972014409926235567949880785202276624818522818069557188743089159943442006414142192241107127956055412488725130855956672770427283367091208473344228314695596348015811566187228345338374251851961796298885630851172112360260848233746349942532407402339307519834797729445578912564500066846180802771135649153694126388534242345479042919534295661936985642421555766044152308190005353654986031946300004224566249930882031248376305444975487997014801243719506944483264184997125283813228552064336137965209820289313343121088821670456106270858538679638473423898802526119500455253414004152414249053630519732644541989058570210464922221673453706284603259885435580960135941728070274703520242239948944047306696995303609881632745641975281949309566251178287559202462860100037665159367151484610578030943032019500336752785796645543590180842562834141921818525473349454493602691214440059878343484752909394704092927922523306172819572009176820342717101795841554879969729975809495631841729516976802097783256734331770494410810572367787493315663105679121718092134589905765782611697787526736178441980748721355287121383735560913467318749423710369659156335420334782236176811695950023435358711170545341297198144661187162095933671368597293792035716528326070431243647063153509932280309441648093504382383830904176165114778938393600738108703374586040454358639395332934812305532006845261662357683871690913930210433233410735569884921368970248782701163311454513947726589367764636069688976828980926274055890093276908814478563049743044295218175397582778169843371472901500969673100334876053009756803021341019444086614009477536223291026582002494436818026877454205508313643929597149001828937842899561045394269639596714943428672519675990400095312480057783729998070118197911898646201495681584947923389928840638204815614265565233028128190528707232863652763507534850229987832904959637783899937763715169771822827014784339391730651320882452905118257193017520178023988571951536771844612094319774581068878437086167954286423112952173235689647623366554446392829077683133193945632410174530403417042479803960242735535882420413675559520004343025844292572210725383090727920479506723110003157514733445257429382134786833083619223087246536676507264657835406705859367419102446318163167535150878697413058692968969023904296611073310075633862101096767158405124146797524962394684733874436252039130478840698008897007144471799098563396166398509791945783903606539467574072662703992664902957816598301826824332855960408056445620422856260831727385036171414431405153735735634582784395916809162649694225473710389864152025279638159862255334658903352649210845481533258596236324518404242783683468221862367785360460160187096095108564353330714110662931214653003144309961189743158560744037218452288598141388025006016385492488350888042409199462520282934522181228450504492154542052612945377887954441462494429200485000213235308217097543216245211451080807242448171323072276678496851300062491664586412229789471176836215669315218782743368014742067889967676511867068988219965412789676534237545293550733442432284182166877672884293285364383268365039996280899198378761348906562313105442228175273274874744395280856747625479316889229913046156271017333767465165494532115237564063579984406398312370530340920257784384397301069631570457354586853158876853530142107169981169707853891404629408840859638207190592615265165670149326664944720633114517957119269845119967624556863908027904682631068441642720092395403632694412731528609951049604160613510782736531015104744968012023866629968091702560398445050834166480376878083500218133358602381502738071453915470188061428770836184730965320900475282093751707861068717564270038711357577741687460599477323450123556137641849215765310959809593192686944485617828833446273065549727469553776987702027215253393441915730464197195092963224176142454326315903173165926205682186035492790001306271825906851197468285075145435201802061543279182361257811585216503193046584662400130709081444656969568921628636272307497898539028551819028074441656054685854325415938898141270780897145579163025356846853877567399744680383277455368036005176567579700797061678375007954423568787380122093649346727599126597449193883532894923964012312948312094032556105399517998441115421400280029573908850114014222576310247997683978760727606406306024949801988360050266075708685551854464578293881550489347300595914806718555725870072374945950907346444471129203435011760911685261265922305726317855461981903599436305027001192842620710138752071648467737591328639541295964822046610572946079666423654301301172405094229368229576542230985307587903763472107485890457334678927554366367470962835099044719408293748923198320881706154724152901862923880870528183041685987750217173786291209309531492736459875747224103703988197585436309780068159123530914745871072503676258001389780687948430854766956593951374361927142489611074702937158482356561634451724646001885536896298158335086824933473455087442813662725224146590448175133406189632963548054028912430571862829048390880876047265837333589777549326234987563637042478773942713856741671610718356836255720752982209053576236959440136097437427130713438919492614203946592686550865346610938835082893582327547325785233902207138525944739590629459496619719838950550125951130310966646758306248266137240081646690836810769930514367890080463995881982133079490094176737770000632249689752293098265900607019237434265394582892201790563618428083296605473171836962877125869615482588157454832794086365719000060456598585668143599231062407824822531709541488196996840187422480463135170784507552175613121384713837800230658266787231485640474856898575224864564858078808366985074019239987441893968540552913717867606641690933901022224622002839186571620970789328107510149536566140886101708378450083899738284363878830819285032311307578394335509931195280145442096143636714331129587119876848227195324446285857840295441054530570941100243115617017135374274975655622127041030139032961414219066671776311759288578276578980332890865094032738266852095035602007778498770685421673507647684143383275135541918130205732200575935225132483443492526642110509130911076095878862941912493388088527935388886668237297335249699197012325650344102071947396543220230242402345545810905538503959290639915012811901572426590009018819124944660210636286366124225874231752606771921623527165527263413220220761245638919062625909544394805828729257672717496991255304614990393603871269154656689758814608220351445617106312155396488317187089805537539910029321312157000521662677831926448945910261420594748280013058148859492729286397361798928595232792235164018665978243357620747526927831135108277643214930563456075370010382587449410753993641054362427989352826855057297717792956139561758846199847523753700840588401811954648617935149703561503788706245246920738406063550279729952606453562778700524064255096839177685575308319820551561933196023278960396526842570238346102206754482949978333864769326556635786454492258309088841520105839686033667618288161946239445292769869534861636397695794654018209615139192275074515158141626591123009112572980273216242993817281353135677849292146861486141672173274865742494609711119947255189283038261158927541142672548406626319635015937443995108971055943928120050346166441725253007816510727839048459028737376413273958251474465407545543047830881511820076310519374858774233895030830268925397356667167003684760898008658474148737782340995366540372459077525545285195554690489173349680767354248309516669126625240765617043638545002570119822051911111603860000321720919969079634904177907018534586847831637885955303225175120008617290607804392614838581811382995510231327482899070021041027769215165343310592464609745851329079102310224230499250184983377510263530516008745399800248186985067242042303709956826049536021920289487808276724861962520638313725534273114833479796176474364821090690943767119497235908829367431874676832966194652753911353943262013377087378748432446216840122428974796753741645856045789955237709453469656000570902256698314389538364024849261378508603815411147464117286885003727267904609711491457488233757192690493997072651991382294550845930787486724088245783167278658756774398844683370160675216888739883954921789852737666781764638371484070000629928429981848342608642227216094633898445893620618812321815251757212327456426975803271472474377762024263683078289950400456443643553354681608326958613223464437161889970012186320191791912693343877699200303549693006220392519648597026151379754903088650213439300415922690417386996174101308861574472877039110522156789504616971469751484527487154390310038470765870473631493362804953837859427189870630217958650342373058685489609679412829597490737726691573596227667120867238257352588860986472541659848756355239916778424105131867529386461247718483968971405551711514543507579722443659026881504285314380991472192201826335370575210368582394652377144005674033633637563336179406472496048006770673391326104442092061594742183030478308953813598588570955767508707637626028057519341991369570456227067490890259604460218452214924324781275245516484800191298486051138200318275546546360983667752347917666641098770301374841349608010758497462825441319550436865063496293907363425275695047635338647158868442656629397549030359272940447076833103978323748151922624824103633534547180439292633364063939776124821312193768724996304819979681670543674092343356560781531155815962521057051653555120159100171292712479111124477230489845798712554553089518082257566426144446645369851177813596715621712870714073429055231346307892130420770264607427812463872796101093540195104046123911802156418399105352660912934329081552343424457770180370577361823818892727428841583567772704294147215725831248836970174891629716037065366286371265939036093168905762471545086582302087341197985627946867194511211389495864847591625492875662766548782147951879729014117209241569147859166324944868238623789231358508664353548337351067009833550922380511739887081604641206696414245074441004317897733280562226701666904523633037742961748144303195725601438867469931657382352032162665058191758955621427208840429764269674291180589071614628807925653547500300194753146489608667284368249800695992214685541018739033928021242237583591095799720698843295688142498581101919966600536139413682873642271456982006490721256518271956728481296249275511367954428662862719861407717144062964137461754817241844865888996334182599901608654675833253758705089104149288058944301478119079275255674610744641248768464983752786801489193080742419396444234325320952337576469826827245658877550140581868209874120537686518439240763854149284706021582836492159618217007423948457410253428321217081263221646155513156576121950213413002771484124195485120198740833037357414387270932236878992322488992526283211457591698340612493422414012764123382119862927066694124594773481261113355156349155206692591474949566480644249500266852002248396795392392372260349292092461706204336966107980467838290640364814477299849479062927911677824836800447537518716151584549552802439365282352259929806271116011901696559861355160711171581925565288552217932817122437908016751920591685847291823034882849061156246025512024651938883552327668478676985863941868925373948493241393392503291370843368125719250979324533246964171603345054645621261734753592697157281758103562369332394110468933880217339436862954578684553980847956053079786750842504221704011496776124190306587241348211263774727843381148080190645276843770794729199030192941978370150506513653164349671805674490259251940552003738503034032568672521760811262449020149181716634271291783599466716809942417350763537517580073024981619412401667349529818980474311922578944491114685943374494570029732019230387725699672421235002663073276533628202546316819793758764690768543582322485835461672219698091576498907389785020658304862072385171550088274327712319954439837703647854116845605369077927650703924691556793865673270482595739796402197919376475472304325083828943837950012884201659397358808587855925848042963145537633293782821525438277701091777513463854663321799732483884561660648267881846681488348467661747241752127262245240725446778558051846232935591077315287982741336633360202893327616558648045199120387477842023655898205209854049318150245895555803108237659086007558157067831234394844012001419495703692614629939012854434368943339417890953716171546726605988802812461670721546563697428422688007814839294462849903875199403279614397865481275292184598472552263971630739657819125309066676329551435362533703155711223213592499590266446318315984021621929138943170919324793810579414778494115192386983317025409401877373723477946608442607304295976430071138999155940986432797978215273756466556592853983457442087927357683969707605200148324322398395971869620614677710593818049323051368710863233333088577168095936723993411629756197658248348433510982173595921302385456742807531778025909714158926433624318626703699810726281504222451787146538942403317312696567199174708696989085529761631675149117743774749747754210062881805133900298682625788959474265303434391222944251345113135789682807103890705131074822205432217941184867780010262983963669518025769829999195596159641462812130105686442063173665753223476781672234929470800223497726218487035073220808065775014509984145492884229587855223828852621649415535284016793685433359405545649794462142722087081054277817803377729989322195362652323227279019616096257751924548134273435184491904755733637055980420977290786647088023675407532068560937214647927557440161975884389270984122363928770929481235166355570106144660350703903490395977673482651834528975708456279568139394839211324980386631584125329496492600993918930602620694299213543520291163769068147485992113413913071278360022968882522145333806679144487756836063534311885953582514390062933834790305300202007662068080280104125815658247630696758468451417849533710068209820235169059828755834429803757742596535748924677654435459152248564247118743114899275855596938784761784055909561948122531409656152391268528292242311262361276613951049526975913971819011128033183253813259515872580756578629716922201631327063096710586993498036429238598025080532261022846837000002129063464333660213634182131928583687783520618027549070854895492875009427139234137154794892763780724139759222500485937196902518089206871369465841989494787768577872299706883546383031385835824793507532403734373956876529366239481074735093839491965696941020504498844614889521474446585821664507735227996939611553105001078667817927923672071903363945910293564771421302732213477016952533668549850831153101433959124896182819443111271998150965270147735062930821475219052018701565943957007924669974362024228783929002783424831743316424646030987883440747024879947515542035958793315871487829625346508525904815936072349440100175697592076531523035179187596380613287735673218311279494886224726620160142673005548347955932437278328225962425011980606545483172389788916743802285713351859857297163421266861234110136479047605274637342225360223382251731641702767868580153782716088975611386465831383866075429512976731635646423406891892369837318080921154097788358582645237001528680014703881129629421623243025238156114795167657358219643930241682051610799944431978825959274178534048871592759850335878519052049275817405988037804590433186487779072665406567875235017471310337403603693291205525588700814039236737202589600452658384273648907047185298396492482821786688537169747297206255272471932216542170706999973344852281820017885519699157203486071194467033469283770252342456498803301460031317484572855078931623953050481134526257548707210567303352914337852678887845321237903814436696611912455638194043743462282111031321763745950223900997766172005249230614970086730227354239958366112956622614868909882181663038769534739241201594195286508313564184588493314133224116934642151629371745264339221445943060213036338425850865915952760141251569694011565101236898371678988022698500681905885330866756882453065399755900237290284047099435708473166589741414818616896960088940400950098789727336257951027073611457326509987766533695834138730817993228668065875606115141790116460631383528124408584264084083820923243618306312311039900326948852629247142483363512570038022699553650339442660343244295989138940889818306409396218759431131375949844489405834520583692477305472605725508098331567234570673411564506225626744489731107894763751763892993692164029963234169584339702225360133303642161213456443134077860229324587951325585925731727920402372083588663556331062219499267122120422458691204128987539633839917486402869025223065999650014984717279986821870628602494051249305706498746589709212802637206161717109927487622311543877063105341983986149538565936436726375154229257880478151228680050430943414045119255786489278744911413946620517647013400698444016397047423899664488684124240057859031662498294160936261234028005470019251229248037482413550546618291730435567681272787140725049371752007574631483152584422955638749951141025150989376736111450197284417874525681986043324871454506287537723947920502897028351735075481998106790565051078091960771767465205024766433653827249302650994571017563654492202862514071385022166712713396472318973106794638669237319348110986221370062088879156246500305872977113673936051493095373038571807553155567029077613802374353058681009692412267282595395781665920948481070368493848797284086511991666058254910875979113941920472372224543095093581899006506722115802738962291555146156891210992309001541258018792810756871248829109163176293525143172705169424989462381628564326845794630430306638773237699406590145083880072866554105621874787410897863716063803298853936146165043067375764460373243079294424383577658778815598828923984030258950152870149572796012309133497737027252868853381225564892267746200281959235341114108879414287982613396820106764186693381311782556714088663527862532313839150103639503671364701173979320878486264755132412183920548067678600464104266934116379188647844139523226460081831666874262672357863945972980702098861059130285877501768860920191962842031082638508675193552898290244821939488648983189062224159229931053448468655623976505524859018075437436847696585296890400769547377338010691988431264332143102501678587491775303992949831115340102691531831375398719329863014582030486961180273811886699224089255128507073901039447343094565230559476798576327695091257140159179734744954654350235205251994109335855418660927067978198890319516529458423149118166020443895865147880462540007337350268431143907771422821021458157562736149334984694323648745703837567378907132628483984297422062756446005389007923719831842559455961600459297230106003678540426108730923714496382976485033614039183496499120814218985665322721170717265612993798196987763806329351576689444775525861456710027218444385476065344730975564590608627747019888545584650514716252928096466093887251236198554992598372693618271478021216441732734048327053525677675328188280245525217242645105044828058372705926851782819619532788129756762168774135666299288346928623598898475131863862709649975340160039114297024766253599355162846165491177305231446276578047025044493680935118254020431153068146454310014242471217490296838741444865736456431406712449910918798930304665636583903173811309929512805245695927058668867979401253900136419798604396453924576212780058293683258910181054283935894266663921055220249336775507287292631202610252300207746264668524915144546184365544436125877884595980831722694368521861604710976145378070736920162691453760931261738490965470050525401842539749465458255075069091748478296139618833360029079707598144526331261979211531465718124730535993032490477128157247428153158345117370330318906531795786763530803851547290593893909277148120197950349251212934312273771044432926074174494311665194234555465289502556572169599656968154846785036207914044813510934649863319797191835065779547435141838601003600819212777826375387955362120258681491056009201149154013006945321512406873500126136105259290755044740757570254679790728850490217817854874438520085457356751273913262818885614751271426433427953834609331242784115292502345631073396425260958455465247217623690470607809670140932142663787727440600480592581879523435219992297616784156944469262571701011732452393178966009684666631845013927322196610863935171257396182632717165009738473809193609046264033717931668689048728978700806812668907024998903999773176402953352053002334983373548625229779930333883626765323790755196758131103570420333386649368519026997363894390520560063627761352707745812693511492210623043301967642951374689774839104291660805624464384294017601928445768639259806818909299600541645006905198990744590349756386223745550632862555989457532165362840589773477883856592496915712128452869401156143648127771641641111194696328487423739097216753984934054738393911298167294517963357509920764165374768805947847445470834307477027148909165028161240657931359620803517488615293828686809086605531136530094787509402542476326673562049375139521257279493950373929906010674420581223552406010476819426655894023614925590673739242760350274055022482727733087369464704358894271482518812885566379579527365125470959550334289157814257465957771774560536604571273472361757921227718640783464173544127468412635188713686625193184689992345165000281293063417358104459718122550829596415933025606693387650121899750351744139295450174807887901020233278687514165541018682356083660703428815478157906649199598337133918011472142816238131061307568257792357062251366366327643088875417307483173764312440870484282880697104125672894915275052889381808005250419890578848216037121300970587092999623936248810181458911485137504343606541095736362364502022258013775828089854504529593721631269730005355218814726538671153110871550856629357483012318459881397259474646542305849966468812037679414396804292768838868424713207583491320871335318821598380924766246860102940091031932004006846194176735156407053476387514656630960092624147216164404217720987518575175630850462438677159750588564117793288600453551286035735668798210563067141228456834678970895630286884640051518606058658599608437895998718638216399359310378782940512939906264107768575494665293428835913582587392175504307656858666944973458608001999041189181284092998895732975810142279147373988090473063085762053220519201049291543121403894929916969423856029760777032292137004933505181264952199874156116481263290840254181172720216663805493164630761259342407050274468354722869108757671766934497597609180343154740725483127773461524399687456337272653959271410128297926937139789266868058297225720960001884658543798197727209911253184032553054950503104873488202694525218107240287438655168546701801250340924989955602156320114699898325306496784079846785417861392843547029734663682564107098339662180665192207498206122530040516196503770996747960389223142201424363679817623908085686831031574367301322587312016264330293586160210331289395668560698544869381006584725186543907022425647670255166845258008559060326564615648457133925654666496179109770528191384792029785386485990165076993144182208590052781363446682492296464361190843355362832797070051231357923370153307739694272352554581858371666425741868236448706942775356909908393278284305749062464494091191910365040554921657289226944872025741336929361778427254192356017422208033650189683977483710173818038189842554521072579136327970386857030942205665513229471263296089143020518098449090836412211701873989867899966383667605106909400037803862222857418174343394451209876851696913814523956885061399611402181884288093892379140951714946367355201364950741414874620963979043728091183478316651481113862359111641279297265753769629418908298665894036741902114004136752053734775321483574320606269055791670445981100434287292527617502783861339947483986420619227022910748419863282214814906841743714692164252914726079500959783857891598394346953636819177021988745418447416174897230751755872124931232377891873449490106521731107021336804966111684285379342166359837644110571952933250476196221609477418568844408963351635058548075383319291655810414484940384469924052371680745268611512406179949641330884676450373639189338509658422093833721640615200425925403078028677763380413780334134406985580907623578656221315238860063322700429240315673820766304762937645245637374725101662429348122352921535256946804414666634335743178576039014447428805526539516361716197478622607186905448358566139317502409382679509552905218936119875003435159232578376210523599362059687328230033106357898140100906337105231740042104444582149955622843620367782264161334592965999216966926162642433296069518984153535898170922316087819692124194835745536991019619326474022123311525941560650631750814700722119119206949662428761541620132521348353403857763051259221424463943849657178348478070150433852962741794952316920398033096947046973185767570040341102653084233599004926479992585004327377682387520847712304550589027390626103890902279197585548295522085986912641759875244172070753904246132948484950945555827247386709570260143037378392597946270960104655081513918933014965732654900189873151438955082473047227457692459075895324048239022170866173932101758816250710960954854817618195975460790628401744140106863917513191984015454693838984026011938385427755227989963688649931703489287087936018028770750176202571651024146461767931785650150477177221802941863522695518095413923154736616083260338903062970635496450905887491940158973328322055020296649251414211908616820209435014667133987414984525228873989991130493140241430772868561448869007423677268840155283111292101123429386757521049140193406301552777632774161876884471851723855195002103004802627239564171232955498902426044767438874450174666760303848868350754997115188122721974521438683421644168385656343380682388104870325281220448673359293711282420571730016378849259136424535705489119245129624266577767379158005979884627535178522179667980942875416838007242872260034118086125807044700735583298896431576112851906165529678143518816108807988406279905269131561408040038030803160720257773235414645930889194435228558887858876042546401585977376316043055726087660547808509111096045977060959053213793891173439863850183342772926630694529129071594853858593918067323224075138540273841118805372789013586752495980587992162663255998248560958464382936863865602949479167554823649941758637578411335526372818784669573334073741688990825175944995629858444402088523629044967170269346255636587063932862723605024219842767367749360416750186816828057100728766854667465981543285273695120949647222937675023798816176469351090285549737934453889174682955408914613058417496929859241004945761061259822917801632026254733876734992035051893342772044614826147470098576902623690338817783895932728743881349080473655264209103895771082788880027757658589239130256482344736886966142912125369447596695334182992405908659372918352075845875093319638668113141753692554762606375294941494005059533886021045017892826004079754815194673647068699987697879416601032570034519418237861211619952199017947787441105405858944271013822713034962203296286591217221180704353023634654467848997471528684381175165145043837377941688950043739267432604941294374808150667721600033224070460891138381977718990947087777758169842081059959357299817022343561997271698981431350210221668574839768200091577349395211801393350025087496682635082736880392898418765523501912028260431554428305537063815198643697740363878055893007384980358817441217352321018352439025542732707746101608167499019373858522964092902993543400772806337306201923255814601266161929577545031646433270574348142268301793901883629762012361741284922528767581180598339083712570015934934242378556505083623664994069232307276995413840593238106985704189714179603709724143352559586709711439426386037444142749037519489698100000679428315032023869743326611015060985555996358821074022607479439594401729360199349104290206125498278834547754403554802387057634735997896848903914486992807896615953033112577368181546065208697953467890444650452396641040169848545164767788378932564032742306947292183930103073093599281592584399432168487874160356856497881098711118694836743055577486161739862681803710733806870778064893970249823355543192238877088832219252435370774551715707899953738219248242854158494621160847610361455742464145103048872701491385265281921204081157944762170020479343483992947524456876604178072629368594445116495959513738288333393781821175557556073011789048189168663906012519147397771916337568966665694005637254858016738574196025178601091359895870214922441685723345918952252754670269078104454468417014515173752131433327040689648393605126493273192466310537937551940234715906493321018531786746508914482377126784146215116455493903075049535879915926966647347563433771121577504945227305260663955161242989589397106960576880550812640126974498304427598382126846493548143282443778097886510146135666711628972376537155413763882460700885009814627211744518169624998384420379264106023010576092688664097841333526209437017662493375561479090325282950160550658845691328958377920812746809014678315100555614917757963845039997960112646080952482448569294287060681562385122494574130994981079553266137826938687208500849651734867962831224502193293339376334431133981344429739672088082800348611798160775140484438794598575142639070340349836145826459489479794651530466846803353458585779744670056500955416261157202681513825738750852464330461949638656698978725093704598402181269257225214215589998743658462746449622094752320300620740534056807682056478082949649223328283410719954395582702336476356228779679745766337758717699271702434223121825913801039928944424872048687448225424257736231293144145493334330890083447417572200683085768646407776027296031895222671344645180045195895777497056401943401391022644081880396064657465601793312329969895308327418183282943720620273389203505627644944397471734867148015570610370078380343040667641171714571876938311558200605336526880736093236174740670479553829839808919012028852437392863911287397998476759533569446066798347308585676209057098647934557004931124840741920519738830588747807083828653780529443452492935976412800540549742682215854250412656339242713258047852893088603935078312664718998101915362484087227012306680328120695571350185099284637638621095373827848893554436750224513300164159885437209168020975618831659891715449080846063714224765907243853462130956554101227949199408065450759238083836836153795793809340445411467806178956027655340162633648925535298570683962862600394512663073646943267389025549451179732908727368700988898805749821004252058855200397889208328760860212751599794840757050477868899642545039078521770828450761776596532798824727935139273669755450359172226640955715624400253691131553423452851412809346045458272321714112253006022143125144260724994682232380940577427745011767795815368121013848178890665325882773837137161689071109657091199052289370492511903920655468587250319098960473829873674985851094465647844492109726403628649953304860960425508382585712275361181109778234604883176438526263898818071768691103537605251018822377062942894806178925009646661140658493667316223568119424123474179784827512453621398143872877722126286255342571014550960531543930305761544584569379355403505734979310933041357486521281705087566538602857770463315694251288172225503634427840624041668767094056640999893591080552683883321741899930082941100258255096181488294708161666125773583139921188822405915781810524060207227166735967160068933944608245042486414101951574122795622463065624314702102940740276442409154352324292369753561078318446594206568316921473362673276437614275933663585942153715456333374870378963205332189282634323613134598516214881764381620567308479206020574798335057471635557702998925789989026375210019215589664895963594801633478992941196898013586866359588449380711630951598487557657984395604721602694456450948547200619672126902022464214960980332899393456272757741893475982907567360267998452656103853104008989515814671549565082307864972941757695785555366987416525659638769491724919732594891344757923125958245233746958612372137002821829860737457865242875668849883072857400262712802728476310161362410373451136558771262928134761379180126687627105754177315267525540294199903613289096769962806435097630539050441509346450782296933229726864636023021632324673070719647980682852914287365024551945126514274313413567253336925368531009679609361761676303374837613160784055399257977970865481355661972461115828697569041670760120249800059385863053091533593053519154597164928554788317026236118026932379825398401314149626623418756278621845769809386781265641625307314608933026635294031636162557862132879949150625511731818787033120801396276761817806652228894514149784349025050719756530724779793719896519950534158094500540350997842997355762865514775457445450985266321155663445408101841358812310537159124764603773082358718988815314254357102590654393242785413625340145752272444354748054475764136562317139099994879311714567159963357954733528600848389553712706824932115990336232536246859949226264813101202309038707298661040477391244845287117848673457428629949781653058835198260430394370048038930181173662390751365877166877636275658836881694689842420095936051343418593369940408096479484638501350195920839274417239006796614885234072727074992185915165425897134780384190015160556002319400753509368612194595491320650203356422306139708380604566427714208006223149728285265576082737956028728513984524350409672977267429159165919019507246855160006509550557810337450558940548850467365668813268836893520491918834557054002024213598168445761639384069310596579445321216958993196822452532911521022862703531419614855762649606376616025098437726226432346321060682288189762967594820178248739483488432774090535361619225327834498613592174733292354931277893681276064909738746726132550380980826168720205451116115790313016725773631138867484417765205180884413293543342072495962221922971480109355540067823043465764705865192492020253802976179389167041771688316520887209564623503663501443651986316195748404646199525009801796200640120795604624625306520554212333310570937236392397662026629003631796549058703539734063373555191328635873481562955083775839772690188740779284332519118183531485386010566667989096799486658194781708605835465943900264384051260367100202603698324799867588460633476310096381947003213587059670047996462797264795766293708767688264174552776010397189054942158301587086653380247613316185055131670345017691676255688303579648859183190284115015954989380989677014568449122128390887249652595134846767327448924737246915021995443912508904186914065662751066703146804132171335693436967509084551761068877052264646523743877635960340323193374728381625396306550722796009293915207558987704986146907536899613482232105758802486779943485670750708786348743327672211411375034986400359263095327739115829564687562115968066335545037533385497917984453222978587207733975389966118800293093516936572340531163518992364770040092911509996080393047942613248867093861438255592336973942982131418894671394066473660326298727246797676034260740384189225538357254987303682770038504611805249857289262097313886520929229362933449131870184573479360374341610458628721657992185948301027158129369076611428178875562695837723024582518038659200533078255342115013645543143174347981499112572173172983613083514201391444945020142291341787805867119834149470208761471245180816684932614894075754615534206397958821283788656751481114261841992756634797067821453731548610268173261151374823777302831372194774717816765765306492385834409508664444154784001060065869717841996911606021792732115028654896894225729867784540271696563890804127610724472259657746123995535855978068933190050814555764579121098032954360267431858501371117957270639471142215432024613753975685088194181373080362256585877943850150164061480365030990881998531675061333768583455900026564909763904653865088719117426848146384700032556215868394706492617272457997521533425724365541122426539727810842142561313486829134200070633339505649962201187677443085018983402299085550717563321988814634519700113812760297260305411569414044452920911486725831059650786671804433955482813655110917400709954409203998321454425087690187672781980252738921844867871368313439541315894507880611571826388011465231420018423017782249864990758915696242778773154774348319182757038492229587256589508994821733373606525208029575297988707032120987989310012516897402018645842209296915047582453802800660907168061818237007610163952910401234444483162437688485255071278599230633780273712205349426453310374737963952770869961678756353897340457477075351948717853654479766139577401118527365999495656588312892515442487192295072327289482846095326443584772181289979575615545883398699906115623387701960789235242446413562538288403728424034126093104974602713280830739729018682523052037838111456882740611683785177048345738933311908082445699782978034512060453088368848590202342585165129629057504307875169461068695004077926008159322592498640372941250596298190406365836080849274220322662324877002957898577693244683516189207306639059275433428133877398529896035933353585512670478582859388687046258744468805395257658812328533082611398905860631151597353047327150267319642786389320492876197036355866517257222241110201378846507684116914418287136337341021430458569887463926262144358167439321370774767088988737974694378716352600447497228371471964646696967831873365240349485419713989443789884506824462486738086321360583279086403459528336784091396502050450682127258364955048073010728083968855121005497228429722126424578481832637129825060958005781122687092913109126267752301502872941988415538206474287462137870612234099072059299097250703055599754967418747184210021043169624045879793321053961802762141575282945885348074592122806457267698195574936042037988479688705823025905330954443689858245159693086084830568903935168299183001431520549844737762563688256779158913763892653059991830210468504065641619374328925327080432269448387577047236959582211571769636127881553156300825444067714951114899699668997963042119754272850751914345741680770882931316107321335204030522680989076118742814165942657706513605468780502344131903083454976405526459617030920003123397358235799117909949848497306881162676564726083767630915521313936129516926133853810637223355296815970479110032877276755676703114872489195023850582786663569009607495380254284001955875936965755347154692915932365700778325171842351308951238162194050959199919148072308318891746844919708656822070239221075276116704598056576053308688308352675564298700125242529319579056525033591459988055785530651588075374596087126402590413713570102120991276101424630808711291301425914018109733395276170839902740325951310701632843161591658625171646507394092762885458776104430173344834932200163129289978829896310108485062219348329840450174187651578252230428314912888764163012567940762472913690420258018612855010718387247705396684836582404048353452349517531389869655784128265267870379285425806139183538674107068484900366647775365797357996169123743766369433741358615163150939714307725010707857525697988653934999765803222574880692504526904557191762747672926455365646222040189185281351515658394362886932847846822251944135185325299794556945305968365816952587799420745874478844358299447057070964834079836668303489782630889821194292908463552994201017593104127803348393800150381982212291827174358050808400720263916617889217900081375796636215730460725877993594945974787436396901302051619079923260221532953092354709738121566793259157888828869295573362046337353755488699442472978764128698478100731112545436967698181391178225188734800169575629735155202280732379325677000356022208837996486137102924914863927307738133004107697027104774033759162180575687905563807119632396324716389823008352468609568469092581999133044616453038910665170565171190067892564681059068882764879598318969850906997175384721949296142077913082383083299771528484316109266868204119468041822011139684224003378885871759514155945818354594917613562013764198016953492841575463973777103159434715805740892089847582742014470534934995975341344896342374123577282770771249733830652079882541562509466600259763011860302456006415575397998752739898162862473818799172925990161767253224523639867391380169613454346043439071201624550717214557986069896782481299331014822904501960852231794860263146120370994125713150717979981760959042976746003951284051034244457216026240557571837058520630234682644369806109099517286918968374254730548210522907113227981439843757157921001793560477121013955512043683999047803930942228986362183599557258726159403679577579823193185155734632483797717535815385262385646795650728515500477165467685767712967391795217449422497465124444577445774404084385907748096202596137984279684656524642477711228760589507778302940394802052175749041063051666612641531395126025189872754838503691522085635843179932247276557144397487371090451890527884394963247876740530432372461280819811936259523161056656491495621350867760700542144063054363942276826394920385349150206121041444748810072596006040606228189809330607350493080456267533514799915798426563256626692645346398621849047007471373688118474858768738035682309066423056968803520603160843734125481125939098071694552575681207837827357433320175817315741669519843293675527709633509136195944446486553271373666665739940597191925347538583682670894458814757272210863778733865101817089910505860933038052598077910020597541790303800685781193725517619860470446998490992502813204508842262827435924896084712640604426175442525497669595644836089455310934962895797227849341746617210476467480498366718643520872228311142223834542418849456901570225355056561981288221340955622284623096889098611315863072326817454704513207404330828421730124011998795692086436751543891356623692465602191943096513566294064825847035063271538216286478235926020388850168135982891226242238421770092677233642638989633058553056650278337427095166271834228687399963163315502057983179734773965476155717541787191943106098500034285309995421158563027404727412864659913678904633779310133939215467545832133512714986461676862462709750238005592671300570005983851419069333200623404711514773036274487509085373141016128904939286220556716717896128550964647486979158222562079532813489815083612052149822065159157076849416983453666474204866809034577713602365246098976247645461798213696150902443332664568615581058855216111865882962786671246664926954987908071894038928766241614282321356306200233832136331387401683499654358827103545877209782814982863493916898770658770517108307658679268693468810685047700785060177050967467054421910808510808612139225389993453379298273206108611235892054544964809109685162187060489623348364846756877556682210928217989343208920528160406691882965134139650738604069693874128122053135987697824407569078954324958843131572659268418758152643615849912518514115241980523615034623673955357355234153547355924337569811102667070532735950359324947017400010658289635044080667847713861091521400999092659380184744997780032431559938614222218906527408788951659807508212720472531282741564438259297613054506785243152438643326616751805914530135827596956196445780920134618784939633937268938581095451154293249648052399196081343479617076493595486205718027698793442556957232713987459007730541726642955108437823147390700015382818822332484894699411665628799351072336767205048836364651357428695764169413716070941529289954354027895355535416830461029767728094424201567410044752709036743725137647930508793516473256705421999977792330013105747243476078619785242496024542135932900650730175106679124045057085069812859291254175589958367485474344247184820581124264991283685398561041526836385089264576310734615404844572745644056703630813035072561523129585915033273288876058043590911408278005492360492497193437984868573054412479398782257892881012174821428612976609145831289848175850872347596068373033539484731328660516700970100033700697129880491517516271428386147525400336256742102038052832340276753505244654107103086350105245126900611621241964506577928545712083877568124679068969526022672463724528010302082398370335117438501181197863349319052591848931258076633541411575860824165686707805417696331860483217484824441101818393097088433231526278399192186554021892508165206634312213079844973993434151946470028993988790908328846299930364935937876352520028894350537293493848502709671528192759975566668003775597973910305985369306027418008000544708346665832035009690135175096130970859063328376366040581951298245538350328498967005705849915480779562837612484214849371764576791995582402435810164505593668574103372741243574884112972028375504087899312688624616435443238312731163439509882676829292010008688833294915458841599225193578566833660994152077995794327183073914659940082302998785819995654799023956883125227732255436453829866396326274097933129799385902362136675132754294402104542315400635482237976774572512432595659155522665889584845562162667719947690536392829140260268287011796150303853542274062503706406466890666161800056429410775178813561062542444087452366374637192847786210465554479847651785704486641807743050813444917902072065865439752699398535034858467440465272130814626850810986314987339416928936872200249853229809310646947861674963354641336062150212007151002153783513580711025990311693824866268444046725842049660812518169166855039240550198523245839344008447109045575329083278959539326083648572630266827630934219085831316744162627997067710557848782969696114808862063660111298766371621239748270893528737356210204241348301916728755456542860601208239762140657490242871925838510333115398691466832737103445520735241249873864481777666206399294642085386031560089358318872779371562278695591632128416446180598130209868839975057579840927727231024933533943878920607919209577965783078678916625292627339293576365726372693124742631296469261900832290777359725951396459398997170262874261474763739790845876489563808106952328203434556217879504732206876491455345040363141716104914746981046016033496892348913819385331768189804981215523448619313759264777379206642870836317981106283921932814165497378202491150329846115846696602213523416243908678843970608988990417631364498288619668814245987690108897161362302892494273563620636785050023984266925750602600917053808364782687944918569001854361702970409454381911613038609371112557192287006114191514283311051836369151951276155541565356295423839945653005359929183794589263513500657390735004118645478106687835632136442457760595927837268360439668583953790321529158656815327232341496496486531067224894560242799217603185037637354799594442830770288918186811918493958720263152966580659704370071932496088793190586662197298831445742831133006081785782981820651388628580808557733813253088808437496462452268292974646383392085280503055742715506022373752764493253853405838289322949473413088670272324523884722179884466642813636308970415605477643977970123836447006162464350355266909962879904375709714024595704406418900990309220853143060897722852134916921298084368095517920127924728881674242306274437422694508671097747227855369239262860026370406540683079968432009865934868174535092465637928057316399901605257107272559257178384957292603743646861394092884240263399431924520306250712991480771885173413653646810410554126823457872919901700238258116883584767068915055150964603609155031609136453947523735168035636010202538500893973362338065653334685143767911365397353030857373237726388473151525760234968786740543647610863759271994806212372037035030445576853531862015738326260845033512161490493297615435167886593428992670837948245108893050960516613237377106524760833280461395953224268489033693388559409445735193508698105823344852336284106733888078907834813239580216837232189558602690925451059145112716522141030250156465222193633615061515625142385159219894147571701776356157851726683888719225862660069262070220171106576908893333809367926917846471645590932055856279791230420988196727152037555252021291994217144217647186530061674398164973127090579207527319688993576947511614795208599063281072590986399470869717928365332796285247879282786617527291921044745195313795985887819852783122896211452698356411930004016486282413392508800957734468681143168495803251715273467068205550932222710954759199821550146411477203332582495741309506213280787278757700874088586327489539842427799098460097181529755694626546144348582143298466559785487817827739299934245559045461307636704781559056112338120079060036148771657353445732550616479155567528418684663978936184422977038343674240434952930732495143121006314963398373486794437167649900347931500434462511992398065796016635638875089810932184972464143180900931295029486564170730922581517816120902831836287333065016417739155704061652986323391842020989780454247809374623952254341733328375290723112509235881232997515521416188186192984361255051899844295832992622818050995069324316630436824240346315027744662218548443047144788654706488465844480200620884011801222831493641086663117090796162022823745029793094650854764806450333509024696954381288828367407383144796313020986653889874128098511662589523472773509834813369551068106695162438495160495547066069476913480109448396841680447732707367679114716010775914774530803297661993456968701240685435835081960169647297241512957165560666230797895899798937421014967234451968756034571803685785804379713300808525661640547595404997739871366889009170106645171131561649009452524751900783865119099681921702831677779442379666532649192649496998130315518608257502651695827532654069608299747329368966262933371323280269748438157139657830195231562716867435734130937626534890862489913601227057681451801020779291736675798854410582622213978760665754400512349511618317171748614521787902889106251277575174087791453535478800558149928372679515900519729236598059572427563407343775474630740586207390654838857094389693775490325811869126703876813569472879319554952205553797195211987285881987910580651487853587400681547055639026814257684335820293915116132024147818906996877490437409337702615478851971547785795412510376409398560778794575515421704617342457719194129899557296874290032430548540742455430424500307681031185018509604453900470261095031682836102120168868131621332166847339703026519587189079557229587275859240821071089690663971567493052232884222046564315056837969183463366801878094428205684449329358343506484991609533921321014913132482117916247433459093023842941198697467125676235489294644250998056493842700303990912417458412312396577712089262921220719478565683280495209001655672094215285518089685201460283401331834542636901248963859271019139505466608809200300378629543011958699878452977941911219839313974330585557382599607581707331022419592028988801436483480867600940860355756053527686173855669376702846010469286990408941821107231746194838836554517643721654263010993231503067376822789233444523431927152591979290555299879232421345954972050215350298338821645689536595712438643484642526893048012528800526683325682630208217070257541081120867727488867197803596978576440818369795784856588215805466558718222682055477792876862257823161467303405209652619082713012489494646078909889919493039500432102855168508098616888416145376477016038800870372061257597054530777506251574487706171130670289924997817782773417264566380544330011669884069959345756271521045181473686838926134430451258345858451161576039566167469490221048916465227943112776759178975143021900851317673763946104136143253671162715270832283809417804630623632744564996621835812390024867018623358924494248436250309363784493492918127361859680293474426841580463242693111253016838498369390996754482360091654679772806065183453567947918929270060480925759090176670536712028517104137350767226144888631269581240461478315535127222509607214288784906929579771752769844904238807906801273616963512464810681478422151963854664530562395142559598601102685440215117407858194646538554681971489358858403169884217712518784394384470156793434512352860879943278249503975854102171884645040512637133101495156501690737752959417795797036203852362454941064036273516978361056840754983456994574136021655397401083794428583720398538556318463756108860626008911941632267250690559531395136548457802819498890967680791761823552566070617525970234689020256034425784920727441453956568047150319797309400289391229887979865121879984421427809643912237010161653840836012796953212892000276232390601216430245617567428777789529433159298662748427400654874813875313638608191902016642367562839388111901186479665066934060495229150837077731683265306236101199655494714434312503101399833241871494770278505278042556656038155429710835208897412078552428466660886079736742540453373831281342585368612200517028935509426833312939797409548406209722277145984018634548447036752280963880213521796197534381052553696628334173534043339549305463502867378101484734026151571688436630037860280306723623740651261204759476697104386685299094527265153271423424754121329024267885312216439185613315336507926821511797868730435036763864052209869692646370682733450227861009927424634218022396402974026504122683151405759632053295853953103963818331313592516041177536905118954341079765828677714242866797932974950445897362381482198015012072245665386217390062920164880522881387867761065088110175018892225543959969306991956866082054875498491667696701703020494032226045956847545903861653374283767355291073431141773857272508036639046938632155309641779676169556695208901600151602427700048655813437725673672667236574706048028594373025535697846425290309225694438053440667509355854452533481067088388267554979197926735675477376684322105325619863869340901063089940998366084104991550853184366521630869998120123585239069880102573567145035922925043489611529510189093361621473899338750145235176345634401841986126030809420632549981525180074181153293428683329379274604764396671342663506340028418970561962435535674606214756309572708703756220679125994753203318001565109699566778260773258665024670392928278354177465630341421487633842703254485244968574555862211845115752501991614788191684612295367729819040517371892848782395440262511847703037461474249168226859448888985163480427414331682558157238089279953447071133847697677463483624912101374653057239778243335643066833566558796700242455284243293287248474675016781213294840739690040874818308810260146715913808593929894248405883190141152379557811285500334382103792362425029406970801579838228528616813967266943235689447881949104052909309577530065920861663147820562174480723561772270454442505208827186791803465228026925281122697249303392524589507555619961366850251423236727735656431431061389133131653384984867801529259357947339934379722909952039347542404185739957998196248675474203601893497766698234707183087033974512903638243676015812762727636988149872870737477330648762191408552899394425293333992972719948799526700272464490051614836926293731762556089765697211178952847639157631768587741453163646670261592284577725222509870156110508598397877485482051912006035606355622128623975425825023126580991170188277434715950262754168478600103787079223928570317229841155583073854754644144823252597510640283811003807586730339683488101029013251396498680172386067417903111516718210722733826734010040620303259870311306354190758062417533826356175324679557585450571303356284733929785169791655705271885542546376495982957931139262170635833826818237714055392480033554786027290173889515623378300110216731893309253387427654290533735728252840780623265135324513171162049584264104821752819513428948226398611368617571105278827518666872966133262436135729901768900045096636132208752514570742290676424591732866410009952098114087524373315562024640327214046563734350578461025978779577306892948461816172895546857139880258354986833197764492932688042722402557569040847741719544812782627077946634765890023493813248530752278119982946610936597024574954514947485662445037790342806304750834383000741382767768066087721156709915189427288520259999360303872961221268096341749488366185480602938759660898360212437330413598920712920080686901983620690824450019631233892430599464510690575371262655498326745005267581360686250810233162116957449668284656154647496016029445791114325994046601732292554609239599585620718215181011859520978591538802146944445303154986899722383961547251831589715108461491162032400350724429453631044665957076801292778848092432004135220071519214256544861045718510520752832015267165498081351448141757660402562111242550786852580418236848632298591185034363970188086123027230464262679729177048902803213466910312276982046775492755260044053165190951157754954767730737037440012132130379379722757770295476955726619849916212505345657496328777285841474074510198284269669254566903516992914243465787004728658481712231508697369543900963768281923546611056780324976745066880773022052779507791912630572717007514591068201891899431715710592652015637073788676895347783898058854446578920366312434863244015560913955020834909822595926844182459182939014479632543863509558888052063832158435834989243583340260410998378650709436021430572980123773925790503093292038371559518392480967243989434363499104394170530868506496035901185284015476219023991717862185820666486509832615945153320057255491393655132488503753410700347990694429949501995032477878484495209752934874208973679621090036935776934989820794501148390372818664648964906949721066189563747427619614182604278900695423263461110483282799553926798964148236555109525907242101174364086019234360002926753177095621102786858616062475331004435679565300796637521295639229729950674688384720125576788138786460916376420158808616872620660501634762886194126717766588800998300600453627699510267933071219381599521700479187667611237929504533936496707662079182457374128384929193182247396850834541828896400864800834393842928618563719251364621650091589292291056540444410034799650421945175406624284635980586277001593216826194075801534915266313207521796273408300226610192176487247446296036777808430803174671203521517491438335933148928648565712749579255514026672346753923367506539831313380647715352665062885111861564963835884608838133057369732902819202881240809928184986559815896975347818960769279468116920949770803023638440749811956210696819285651857373686441785429679382189593508295992199572936714813105889708493448935361326291964305842023078876179263220667949092119283481900740486981327050309499579747788886837181447350141756670717755240289276202719080812825727373131834030691845667958614697339796043416383496279325922812007328680150449053207838163081519993596944324852064145775566587549565152188807654180000244886618422327255398159448114665555417381067707483705756436472422376862564090295138708443308314491307932271285345797990783675598137117277527318413213526929494219055692238755966786336817200276314188341786136016062388559661943589940729999581551323652374514594456163956313172327549096544537674853693708372653196960111066158916600094900265075901695896156910889978116544067792021020783558305265940599182904262507551965762855325244623774542679488670507820146770453084660320272847611777391719513401086290356473995920241274687564051152379665010192179338238430701959863646827031305607102035361488072339616139050753150507003472928890537282363792924337391503728391852072407594760202343784180371415828858604556544026001423705119732567823060516079393847242065934972945691967041717342279535864223316912262185672884159564842749320529799806785788716746805659575314823849668734991235860887860206767586509962549687601561925836534060304246125132864065282754269423931570235619403255018913645617258298190719041215307710254955544380504089838880049409562805092599789532843807750589570631476059234374328893013677098187320797088614779992025659880189937423926507780442180849724371371965820656598669275606376769888215063893696523133331919004358217633643796061336496685112566030733421079166488617121325010186551020411892614829238020914535372986218910914760271977064081744923325188721028392037899177087265070690169552912567437046331929398962275671680010034342752830750892458114229713769347337399799687645186769996211617221548931067923165688671234334613851802705438636300071129056579803711594615163697612098335201182538203382966401273468553977092882618200502182009150641407865921166832639284317869252279240010825902543683598804993221194349670301937290627360732471922292530369791686701381863487632255033528486114155354868695496781803258063762923242389283969534076006338287449902208202433384153895790223346663864207683753658535704168279337325430498702842504392058015922903140450481351485585454483658903080396310729045752301640729399374755423977948065814953812756011812720511239399979250455229626477528047860014338039172554047425338390854502391661607602079081876191030738487331586423175793163397090903389244425863922382992360759448813186612751635393290084691839960974010853034375908558165826349752022474806088308598045662941102709133748013288445939672080452915622640100955257638022033831379921943777904149916163684787952247583659659234698799090058314601321406299598016678083558204400422402672231919146054128724887135584408324131238688513456648957078981910403760722457552891389331416070577675865020341732946505011790452806820009140231094657976918017114504479665546393658502538454763458500733248694378139195489127787150188745624186356366310041844918553556013151223730495617801767445660243928870305682990305306998740787456228914359446554796698271769278078359240732952859427187518344926957003219509832059655777547537806436473691127175950048414956995723283516283371300105920060230435875729911451043604063850343412070036252626801913529995026168104182022064277153621700422075957969112989267229271438814062306209285600202581098494934040199921865048306469219022383746999026941369540559674203487427516926993395904581004923380717847052208362598351223363532946255196498311599725870445445674486602415058404493006574894974128482197630613849511105455463592973741578531978929905231363240516534057762129397456934082852543528814320087049085440498961222629928760925856044243103214542126798150893201019016714802133546997828121582021595756178766790105815618663628129414344580054216289475863659225278840914247535903674152107028367033607080538908402715467627384081966970423500874881643740088992983883942874472464591216060734073062139129553734140205733253942700754674680392108739864432523147514689359041550848996262733471508048637152591985141660428268615960060421133738534130578755444934424528275062690818840564851701332862792574574250894087782613805551558929689518934958962880459895331752893475141024897782903658766576539979449681306558280556769794720859742092564830433008755120825012188300314353222816370243935722629058921407205829708598645675533229474948401364299192837882853281249163259550762420202636783850816454635662654481096667527988826381999258291081242785421488248575991037494158126051835236393579745571071269348662283159610483513292884166849556067404622893212673307113766713895787789603527102560238899064456191428844364127286586775763377390512183233873531659353128410369299065649669352198009982983327703774140643415885086094652084047026874517170072983443604921021809269496407807484058319036490330716989828072147564142312379069334223313326492277302139712735521141109960398293676344921331552875325568417035253891131083525156342664945327828021519197804488981399996948647151948355930587045257544067100030393148569152770512416565072336571303793480715488448148322115078602322556024756738544232960795398343444140854110661412698855319367814897803415510115502946674828867582886673503743121947108460097884657186498610480224513846533270020849110160452899821276024969025437381991261430937503363449446758244042574652364275046164354273671064791910251375301660863153930283260557018762834695685486964105288459888041352551914213557319787587736346419111271078315926807491270236636024265099202037585160851836304667450413881348102528628330826221935435699180063714414568958592865207017467925013301209211013807696383134656954880835190513399194802103417310781623025885693791752279167163952930714541303990352544520670788192667351583960455573464861203804337405505760060600898020438766828697384656628106162167315134696593269279179987915113090331402164225791370971855358964320492511420183895589324939866354417874812992206539650988966066369268511378034260748143336986682354543703341114172388898849125336562627640304730995587756090514019368522598181703074769397531406284573348761961587976496668322880047611178669205485125067728766020928503599218748228795487351931663039624917304714799059715512861090960548893086071709013215716497388625394435342338113600731000470772227063568691151185890238409495250949783843285386006201685980352189297632794778574931330627693958156156131383871983493350519284229121433050720603355616080870896808322491117019169793827832456567412032017982603422641926421869224014799309176967962573401561043631428241367215092356032365966959288272917689815854215361038155612078357717586805622968679926848322845411060150344996392006349139012321445285221254976502850513874205615226776364376095936558962392583594667468349271781218377593494349063996202409767805075593833898435542166476717875743374256940656088444393561745629720237725451179416740079226762334445897533535137957599119890811895223002019608056045574850710599355129303404263224170619968640992964339186400234700891958861392201761922922718172181072648303791009872656334985511670697432593944872585207740276754090686291287047911671528934328058008341741038360287421932167358208387771911777401074536948590700035492605751166518305759842748107216726158669952257385985561863959429604203774789709902407899949452445002344233436517308216061100605811737914570887912062711384341286128205305010037743079502137306680449737170763723230602635002689130775077473232034930247095472041043270989845227102917908836974626175968138751527499155744125358684098031106100735866053966274671557315505103245658522873007847613170706037488021467045605560132478020738997392552352693853108767065112038668313750164002706501312825904867073191763133414689854845571575899196563288225276601129223838221621440019595926882344834241773346984672042739158866483282490273007941939083883616382767953238165436898009638603325292571433903316895887913003178639045554564207508386880795722766316055059556594367619609634675650368273943489784618048513538449805243611963266572350324452345742644188433304710290301184651899826779679072029029217502787499599992013394473063939235952555618902952230910147061768540223629823106671322579951354747521518196204553537389448763050620107214430968720216760421581031824242955931943344015768913096050062920057888085676592117156097545353418518833726846973341445827331044198616657355214637628226970446573228981752400437132718231582921675418548836645383029320821172428455790420156503930937467721231445375992929229147541851654110446362229170057726158466373133758339496089771156826490422550155052792727279676178122957236098206638836485945701957587925032802535449158109584918816477688984688261117396807198283041766831382403667417018332222998009106468150534300802000027114772118050356783991426367572350260395876117195819490325021963892388659706656831434000781473131904633891143156526438302943318452010916827704313891760145958756551191170513726322024922274269251849079596505191587216192455194242634086961733276198430974027269967935429302839982998854923955664269626575178402451040226193960938687225522364847925788540192831359166293057203358432285885853401492177617088132543902158189345422546311011652282035676260848029193132796400933916894223522165692829492622386130326153911230976260441513514463361324823164752333473175521924307684722726769069805228764752179916730104217035927971914469132748220929312707579010901201515040024921369172454013015138279906479893382841221909640533712088914803301458284619173144039543067306476805318784372799214979147165595497297134678127376982977675301041946487530425742113736675989525658068147688052476995737989633464163575721355765136487128109959287581361785243543618689199007609815529031435237198249646820245244039732033563484565337418623629012875780776755453970944071510512706834979642747452969733979947270335139464366247669685866198808440909464747102939287983741127281495910536079397002040647068694291671472329922679195339711649468541869181667280564541520990017756344956204805370186858586424600915504656625499067236808644246156718552280016030010381523789350690922195352990067278507484484676894911082848458874114469329548523747485893250508222421814247881565189662564671490587904686066172607099382873280573359082460760332443882760610958435819125599073191262000088549614104384617640072977690735213945987351048001859940223550218128069661269807135936438694269791666232658466607933289272506081919601638653022367304585773035039761762015091849000081156618046951508578653432863699824260432748317196728042193856345213193943212684601716255731882845424544698726027395635657037650643977340152692089047582992928834986896525502560278552882425604731500908316414204408179487534452264683665451741761787163472443591489843800849683426602265099060950460785332908443193154213124088954519115596879936346366733957702741649287946922306333901342934888730171345002802336483354638464413018763231946786567480282218110228691863847476484398155970220606111979352134570671747986320116711218522596824294622046568224614607452604880991420594853418690658869004792596038180023223996657481369744135658292527738249611888319689598735734075590697564061552307059597065122060235465778177528852317876485868239005843362331689271411671217345002551613843314503004551349184085142264784659744238863939201588168316943481971060734748171135335637957835752215109016229233882234646392751475905316597582035134667151352512993018270477912690299467049583643636205180189294587736423910262175240202408036250270082894293007844406331588358178425667535197341366696824274282152644483463307323624900442760089076211315104179453193377325676436787143037576423508410812808553509159537156124894282818033356398282588904056635997893512610145522684216191493203664961333838848120160025103610807137210985294640034784862368572314360701617942961898536985112161060420454737215120590230200494458521741561761804272973465243389999462867347485065547946647968212403748480912296496385765736278045684359896718169972614098114266748013253702111832918767940181895471159179620052260357341157446619491866479000040081316617633024500320605544505856422661284726634713270054178229392789125623543052529779454736084394361068769264892577814524953134511860030119847645342667895761972803145030893267258634367841555479531844413645057514603655231384777818417911029624945550070802241036217659121548187844122958019397390931419682970244761778399361713292167172082341316779730733233156817795650545250335803730454786721471859657799068922228224849564402446198141725703275063265380648094393038025385672130262290955181372510019384822812553369778123032771910604723637818505474082562799158173116815700678443701270852133545749580387174807010945822468899423575188479868861165666432737226257691329715702316892098703484936868530042156045846333870149567760856322322962429250428415038371805918327274311830863585563682293277786306817020374289245992142839995072359399262854504788340649964541248697299437626880321315409503822206738956287528803803817519051143768486371686220729887084752200698123907811149806542779166927799533316896676002479859974323570354031758076685878519030548156398454021732378436644054574051636423364989605891423565441535400188910669657511283064442559716518272457351569803153124979855764961422391091906514985986138346802308114782025091440523481392477868836217845488842562495400906685884696444353432184448410922029744946021101230203109398115773963362074430972038101257267488674879634846813363646300507256098618103319187920214142160513028903372160276852536610219685718465984280603019373471910899287463199974665819609028072177674806252587871659702224239341799499784572902543500792733667030875401561057750159596517424673593049486902642875102028988985689289698223778633379426038377041807609772233273204768503858645089810926516218609988824039004374543411889179099532557159499739537159104711943846268444445046388607526767362739682106925374210248526541991557498892485509059867576364647706035530203877453265845368878412799903539884167755922483828389555424948028454129076866398600420796837230839405605441064773469473157408951859155726269756684844147490592001517079387925577930790388552512363101892260710562171282813730311317638833627294960984268811341279535511307149317728549185827484417317162265652451475036448330544003078239231118554179990849832777031580025603062921981652442454418722851756328325434039112843179102309166294307521157011215869936974703727333612939627509769484841624751181781472580259898184076559014722271497951734479614298594196195421032398952826968309221907952257403198438536321742179180267034270452495283734594048807516720789487139222770468481168710401380667330234362600069373908534055222946439010762694058774376685942945413902823248796588281951900007790940168490432017515728331337949411613549182412065002375457222732059434523153007622953880561232552453704971362905129634493306136966007837672463706640415808478389924889780887326785393156130281155672573643986768576808371606888217806942485957094810259158568200217626900561248180592258129554542969467638811147663300099249257226767645557832327922341812799752223571961049714389588953986085452311551202236896136091080329593825353678430185775348920948747278555198704583936367338549683282228511923445359161880150264340530409744721464456474697134069565244948987985362024452091786683415280090999289625910522863517910054133945929134258972374937875402722478525820518581354258300373680476968961357039100333875810838600706111304565811703571053698524671891609770137093766045690380621737551542715176667817821547484183437962954362181547504268767016071577493421805079875590296899184920795991951798947364038542639749202794811799061129545763217216793044592496901770858394586626713359587227032161264792759190149010686475087538773530674505471757934018561882631986303735425448930513421924476512045374519834319551815023825274035466078957632135963044110825992062407887181347230630052240228917849921991791948318179755121670677618437852108049975420577810326180818297009771108173200629184930854585840064459949343995653206464158591271624612928680856308002316713988668445690601548037236015381658305866670300404987303285019172621325160081753658032650735941003173143547266815037585527481034770886855777959684344988409777075912857688129134792024492666565958095907343530349199649292993504258202143641368025037084621797573793199322595049344259387822288088261068396851779777440104275501428944014519385044966328922991603340990452771226739006770979060773855406584578903630014778929840708103399711585444994469794969611470919524991567912057017407469917894229727158734144100043079706607194205064872222533514517729843018909863984811905824488436856137637864708940748277440381929271886988277397487059607880505606967117668080208964869140856354674559886419389516303417437647090696567561763558681318359562028622909132384059323191012970908824204581207599537573807778574169611313989468834419890197062128659733254347584833620423780471652893927405900902544956494848624423746660543922171279288127240853642300669778922285649204562224122985655211082723444077658348559114273036986045465708671965554461864480332147557800907866236371308816550988562789894526503224731073224324090169842713756308372532156302285929742089181152664808236737935928638478900207871066783442302041315742348381412991714195071805842492970484592613366479210093804080551051713620730691364092708458241451076916874854233993459117977385090175269321913656441607935153197083070602369354656744968923065592605741835876461808235622727642729570493269296458063618399430277184384642174295525700741447080373150295025977321797655632793794867328090757776304631547717482519919913081526095370982367688780568856586969658155664390038101794501924396181068854814020648228588314927433155895144719263003248171110003543827257767424738119795374180797182737484932159150494805167507114771711979653743400252980502122592285958331180642875611319189434957231359242890342878024995607357487670727321335626928196901779335494747952822742234124047451978180092017890439993866974736769604259341274186793664817962103744289087346809908498730423713379391463134157375774760410260427868022904064845182604827340845680976057729755131559750437752522050927108395337770044838723212712739841600403106181635240229087095133412586837976863002785627443019950497696574496730086873710656378796193395456010159739896154022224924009772781713625212986335086122734826653943968996114868541806102771519966397230081746578663206319038849739682611675925579097205679644520337183237537995751050974432398727755383232204733061330871758944812127433261127709857821488358479767012278866547330009948651423159676331577632300832389079727525941442445844858446484281168332830301293723381645717565730522679931045893914084893729302379225230248028945009264225217991870657336815779423975958405388565861332108654591094079100633667453190340621395420074285692600684831821607420758234874578032996453521470078072862548057469327775527741954474663020184311037236081849434029608043053204897405272880536047212407460175023397301501670303963506810140828661946857724755854248960097395947052459911305193509397688535677446287463836409529562396615860886096169175938353260505887769191996100589356399439130968063070521052514637107911819183967354465266153835992475073892873067084696354011520865380930639906838268053177820618859040647220439309131448089679415156227382207817392878885374519622818868554632122758699510534942405173898551632963625935788039666559760050834629076578181304372778482449749666884054756719679638542636936603293235667951862030019714820261996576223283989876179334017173403689390898094397418042766214197679453495056050003242931782523574547708831884298608765137997564425322377424194772123843965414110053677451573774579940728561282784702129306564870450513227059732316870690193788346662878902665330552344278834381190765187300222757862844882021200707685946239592116876439226265096621414772329974049071336967918787009460858154304712718289131482743710944543152929709524811815642728685584397202930470194053313819884389758731509756278610866310428751382095257022633672634587219329185138560404299324771177389173249335528473048904381666401299040495623071106925917086441524474592877923221284851395868940682621691933495789650519594430544823327161784997725728117471618202319282051511413087138266164859869692151300119739740173867360299267317280058274083139255027740600802399685970004192926350450013934203560002808392862505332238881177830551981657842699953318931554691403011117696899954097411491872611811982421217447223083554709747762066671670035317163001394371767220563178184536564344363122666149997894834759056961772708267047125303322408683409632703783855414185435530126272142343026342879154678293380941216802316247622929012988599255592983420023496760839497195597049395046782611242659617940506217119148197831474297642401171664711727486861451543118334494958686872935064780289783386185306976979271298786150987610884770011205851740911152115811622377628216012792696274614698688161466883753038442935058095807511841072993046123241427975086893728894403154425363946117346704744138041572086026340586482636647618491531599576375446163364216665930831531274037824554112330763921560780752871972132014000784570016639367173520362267470642513475162668162125646174783773395124284933356464590885474777017747675042647770304042353922636062978176866313245505905221374624283556777889940777841848559256876013026617530179805861592011429577787605432348762634794566027639576073376511165020402289068520766684875274491453427905418348857248339481487607416277666019899260411357329312390055591072305188475497202698815764881271492029562053061623577196710009454839958795074294632124995941981839375463238196885652428991402257295105747537124749356059995491228918045779862537365187755487516024139347481779826025087001995039721764289356031975122882572133054204452655627649747883900121769862816177181332405361834655440949514617291994893184999476475359054954315170807906645943450368050258803631489409133195670610640927903317965589019152344132478917580790417263836748389623604010271805993012762023212554880220705328748884917913299749010470854242117097880424575711150256408218384162589297339087268794002550236597427239436953737367284771379793432150618004109124011387643068168176039247275351866338140595459383260961880330781487038746697865057669723655282599305422451013088483386142233441497678882719463841492222668209626642192344119375974305752465336590703355141970672100495713574962408923409993862645745396217656434453659012508800337141459701091153736685352969759970770560670058543058225303711300682786104481781577903245047375120965594525883888958865444810663204486621781861229007215083183929095544073119073933014166998396055565207184194681151025794861908308143239099194001806318520860976689236862560847799078262572555289778268662867365715353378499260410148494376141687898091672100540878593439162959725524437714891034586269606660640053673981669012427948243612228109762839375226123314552660836607604592834849954195703102529797705731981413336281122130948071886688674735101086084144516688841660214880991342562296519439756538715380632647380902295969949291386588073198389634937711110795014231228626103961727458423420888009542441903998424555896944104241571688990898656669058395449377324289080707070248721054175687939390219456082576556652860063378650561064038431685422394925980407295239101072978905383968802529850497467124633292103270270933230052465006245355464636096731473222776400959697897532273476220636595306920602143568777675851670975250502373334848151567548337781451765365658782622063787517839696859734513601808870029074472005441712378961327586203714218688019680648583345458427306702320656429274872630075813607154090560527933375301784879136200152761776122525380606224166603222233052078571171694772025423975433560282739803160878340923037843720293414956102557165649962267046287383615794522017467149015654742370786258354558427382986487727660824576686553033950311899107021531080651316204633663578414103839117089565411790561139510169156584547663887508802492524362163160456338470161915370128440051061156439040948525248584535939192531544348081610725155109982856198690683947196434734601464409672123125079543595697883224746262501782404209223818190562314665318782469301994351870104290254885945592390088820521960598406292263474214035279528315924318460031121826398831682914461814561106834954661480031831573717943807357309029966969618163965582056294484790995551163472613184232029193138274581599489377864911667398681060999469387206567529147774935272269715418964912322536780289920150777181863657416001454085005300381960247257601376060257883370979748728539571058248279322287405912182542493884306808274167994723438715865302835687916562193019519536172787940499019670083759541331853686948798931037927653176330265508122151834975501867654885031607999544994049575999641502275848146213462053387987614371042906096910075816250927503415027305239040699597867688397825373023568706738821680980896015372965119982388467920827830866863039842638134829359550977486261607208010968468886739440016193642928743206771760906547571979653677620910485919011079647310491027494333982270038938094830157153955725300801536843210874754450962847608026261795318285114968500123316131931788252890114527693144454932532488764267191349031198607788784399622815862221283190886114484081046289920784859850153897947910595847125715740080340743057306158960194327828965538036243009942734336532822897887362095200072957758955248248254562529992897476664503338976967121765754512015561482775905135350601838949536251616162808661953249361398786933873608199958244819379689651068284288379808988586232405004171820830288773319598345723029089518244013009799941245745697248845142809528559726518814572072550850597488049637792622480084276729869319338994021358584891758822315550246732411139886383385866718788183674542651271243277530156398388428613065872892660311879115922830839980232726799566775180597253869050151512686006425844556816087794597747645746427292436674105630402028670498080293428862528335266314667402988060102404270851275502902772524503415279272202778196280376675550289779979169335594344577031921259957103393084728847239727479254650247984644730929361803414024070092607328564382907414266381494056136465642984580901451583932549587369346038745132562310518844376925812868027067998156078189259537877962466165008608742098239684450974298770128352147408598459321141211672770484295168213101300169375614569489493677271197048879878708389771559208191360353619388802758971389871926115232375333672605479587947404879198272703193136159897455025387298754930757821517359803612558013424079327813673960029242263950195697269996078541008879745309212764452388570127313656157563735870531968435344988197589769173031886199851337879708967121284321292211191778682735388228095011220356379973022384329068415965417405133320199352842928823857333827055277201583969285229461729563779466566432832366037167717590809410921337212606816066256513518529298130007084276063455844433225290917852997959202445515342068517376530914960198521627598737916474594013445673941213402985364236694444503688138455844756180241306820459475391386997967200762662976318803311604096183289629650067658508592215948636465479668940177907165756947773884525657046627889641822100238922690390376076652517710825023404962000328049458458928308604641198371718740263349155925914596778509813257466254533002730297716187884234869140889716002770721419231400581303376972154214288410749752950601377771904917084803370520585434665123316843222517134580924842196247286743989880848364579981249141607628245713928994255278046392160786420634974875130925953509498705263648709883919005554290106079678750620347762112692686800583364771979938916501358038225344294542091956655582218873698240864426953169110761329184244798038894852680866023840092437973295662133809240903554184175570827814640030705829206675940543402304767561509440328615324557978465102667438323018791509318076073151978271026849810127766178124266704595661508024700433472793509167604583703231181064189393985838499386208368838568571831089551581333992056170503621245358871523517015278034981190528221478397514775195711452026791063554800577111621939903055547256479067866721372099577571375540285559538706245123669902676725632802518281317147343897084432547146110512456574014195689451692540029334640833979484663465760542153434883295866298630352602978176641103722982644388731606059448671484395985599069966806848968447641522173392986256876468177345259272673875330836244094858865125637028140774069560737235948905400389546265652301136962373116808791402617609000679613781135302540835110136605141300735659619767633608614209971809895836339867504686809031238160294429109410928326572865025557757103140849118301670607417696015348551982384998615255929441431057239489884079257663837199156989818556075431661435854487393028691664070960948609038695358579691873457213012714331895262826129708778438740603523652484292578919853307656370332990428610108778580101532516881502375256554998070950504690243579678949762163519552275930885478612576164039761183138359930174083442995246302311295958797673269715161730987106950582027383867893092390097997731346814193122588886586220194781251564503822360976415566092834070282483455059529319792581540284757208339956705106382513019243834485696745938159600255541602610024548672662253953598416765644010732119601955454977091752460370699708101654299244108455220845805179473262274489363089934711461273980764852928904937495402135430701383320351072253056284677367927409249894783041523195337661731726289141624445355173487917300614102588749250063418234800049116804200458320171950812731739578965669795985482982756581131974418563032379756444506750997412656739756666588431353311551613857961186030380172503602715301986561675529119168631054225944739396733662654412243680476202815941751334321116346856311648153081554166023592157274926455984515970606593299610878934649893701455243645370763506960121269375205417094744383737161346583011115094913339925347333640899183109939812629182359605549822205541643951188197929072342351103034818273737215166579899943068417324943502120462506439679464332508592702170629354981509009034751463363745268581210664859870517639127705175521323579478232281180889988190637736397552959850794327188987111118121589942444516434530876142791139861922431340605537353441181702829078146188243880022974039929744240183988802779781682817318706557583234862879128212984849173911743935286966257935207715692821167415310895388478666772678512140296712846712059583359714155271089095438019609996029205058088324298057172211650978130177960526743078823416066705887308492642499389474956221429762822087907251535856929042340811981463241159907839561737677676855873283492786272385660051519482458975864459889701276218022874558894564541468769235853916875427508650687573638507498825700959854878525713397121827583681733251644864365972095817264201945146898171908877348673475852707489386168855215544118019915014361769035356627656414889569173734247223913744452252727493764076261863967425339207810822762267066765087019317136884680218543763489204813665085374177042921279947344189061171198857623303865313362751236210246274348560278747992815351499732574230853541810203782205911437563878791109078044292319918188226197850766956141334936168773416340345089185048602899605664670658927437697714144727771428043284028324318119083897752716111123832948356845899574491684558290460485126071921443148271507465094383907708818978372076447027164991155157933555879733889248087123228839174116693029075404047822144571632644387814068532101794083958738708536033859792966352766204891661719532694313204562914281567643298692427087646833188571576461055331843579764965438513404950974488085158821834300908489651803687981664341619684276178777681165031397876443879021277323894212649534201896482273551584577758919272665125779895100960975253650598800895931512489497409374773747129152140506340634824941628247818118493051691853264635949785660569328474804879556672616710391775953763327140591568204509639393192227816928964584978240823280236798413166621976669759363809136504689101599888707740574595870232231599020798828530369462334246019611652289225761200430554946469124131029286330153487831820941234322430762786432509011888884565843995503664480035808721530590334013602128152003966085666989289835106197766892229891934096516663027505394413256445458443155107403325250252451656235365078916968293886283335099875798374572512465730493683316067440485278776624071104310742083422918561314346686781267851597590753621506153959463053379225541930553819039340438249007070048538217835201077870456492504010749605861517560363487912357845529834059448710084709491932153237403324718874180244435541930470781848992268149758444615547163207329936888267120007167775564934586017018766488787615293096348973220366853941539769775946830788070237828896194424760922396575122948255294203923730650293265425164350853264146758552199997441535561438882819686899593032228169227319718555950032806292303302060292738977555043863892252964018343837780010802590861786215258070195083333219045574279796374357888840560945567207982672095169044066983442497756870357250381457018502235023848624759811245637381816099106294312720962464885970100256354712745210302945325300795497161466753784881990242694225080067032640976681241960608497016721726709768436919801285647399898323394500255006672059656056620015160034893711625721405493633332519715768996382898181297002955202121516445830495136390286062573459189893480290135677957313491626445828511993026245081960493065256502557433513800531549018756811627453111942715456597267414609915147371274750639753423318589713296830582157397918027817257347025700164148696853189474624385750427109538565764095724182852916737209360288508618675686172798823808603431929780407687937230223373240651977505691791246107563366484343728853908271629556099353505237742192868905156153424608050770362429182004203991272925907189591072382313869684937715679423429386290810097879669824643837454585139092818847471401477594618868390964949964209800304180471783795714751880134656616051737729543286112866936796109388796771253764809098092137489885336166623200148585630235290277082021008826275471087580401106745696149799973774778067339616137214296497841750287298372906411055712021570433472189164640471872378484988491425214627743384621233840273887229249181526999053646153695115839199757528630358270706237026167080969107584662054600462700125386253922226969943379030534920399831093640003185884228670472124006901197256386624554680625017027558992154018600685639609309437337784482641920494569220422659653667210768692359701859647983215095182711915359808849413475737369803714018863216779221990841913782165273869410361115050041044000054859173389435179971778619845078885073334461850918007329039871016518208431238148563693800442602963474537906433276139830723080763553071831710937796418151333304025509935795875095045515514715373246272430885268447773693140118346908027989075859142636622167659221074182261661592434786746949086383190211983441049659592602833494035782771160403128184283965746783210823824924100603402264865825468441190767143690034243931311778746477258906791035512294219907321664272452918785063104084302383137054631111654088404621057877428905953866324739216137917029058019148311592834395807009701702034208133386988850350439680628509230835457432506445818857989329206742728161146218945776802069643228063256548168804034125575608780039626503300150971190667086195606263498184187378737690429734745746562409319646732324379834244215556950010334899797364854940582525604282209570488341685502156779784792151670003982157564850568575704869852819277374875836490613238472228581079492061936067804305263085083581359541411787640497502382823882591789154850122014394777602486111872348422007664077508328269710562590423118856637846445918288973029978080381264551605749912246447009569359088804078830625860431906578674620856402890267139895468785894280210931398776249420552884338980036392872937766285786751657396116873262738321414819696695139213235539062283052785026801196811806920831653236404129936448957726745310836791691305541916267852882973579562055180821342795340658588839206740984382701052574448061654942318472547242435704144204986952730652833061787544659442273414048721804843695404715236484396451566329618404321377126189373660551514610408136123572688942062871374509118013185575446607530996868122337120474103314986372228280561894891198341105719940690019475868887686580796355819333532516892059817792260258073703710514904524867796649114150224717836161130096546465215151294777927605594495636017273628754910266379181150235211745859405521107730451896412192624317033807402265558397713813944805127631894874540859127987027931427771252113878901635423407988038682176136632521537050246611123658693814605731716699247150718633314813577629568852596671099166613243666897685861233596956043886269424732203767445115698592175003313231996407792114867793228917299549927885118877031436852804798735800238842979843473199707861080635290233953152324828980617996944229542472028019459462521466740319239190097607011716926651768199725200801471650113854445227400759966340607545037183871364826242877398239262553780891041401801780274201208787039177215122583621369083304490037777108140158588220642994492311119331732380409573845186167874274179377284368550643935188848035676036852865123476080493589531718954130975380436303597605861738646741158617582203382497803676394080031272804823859811616235813163139970936692119365854049707643712709287211030594596034452455374651179243208168361632433470241575764120527286194049670791437430957398850551969763508950409314730112725161300513860938438461981000069243463919986076700937401963193960603664376295469825309287912639700829547550104246248912683665544508760957215199466385061763506683824356993300405592357847130101375167431479333175313866312003279617965964508559703723199901895935062880073471056822964181518471292401018850990261342382155225563170919444750816896878679616083283358002079408811204793113921317663437778354173568922887665560563608975227292210808215198094221032500112789079145438438762257872573595862804439899214308298294666354218610596563996107679928121256015382350132978567328379582564234813257665339105033075776931019573179125681455929826634051176540433907799297913923532143744976570555504513248583375760932283287926481953263220129092383900363586513200342180540586422964681160524024091605679665425816589430450202560586712647216747206046960980648362280956444514686713148169164001932733573190951673851527357482493776862983967383755369185707156164332978229021077126767993558179204172721813186452236609714241623039291791648594364842700898020028280030738753012294665482074395440178919000080931420403507086748402714369067766442696988804562802207915951515902809924081059166936615050647733795924841823584634677123907133185260241206527144333817523923773622907646615891989540708956503377074340482360467937963278721741234256752204754886349456290228236289697051380266602723538074474961369608077517364987241152395267921943016591301398769554267564758213301597109409337452557853191559487564714956523636579172197777402882141391868372230752813162126081220015446979613803818499767095283402397532908157893379609790918828080590621947850394950748939516677106598191429326963127278765886763064629947455148251338142223057145562899558984344186238588226704851080600513493027426687329072845792310696975916204594754419103028749662508875579455591602469489112077686244831072608978410643579462674761375153301948710310328855651907972826427623462806019496228038588533703458134994733304386525297515664564337299658376750561064853472247532834015732483343089656698873891896946322048864981507161167196105940959018313437718500525706525986322281115295455920659489701881113408821360920045257152156157297669378639420170584027568575082919323448249407906260721604372835042613231266511852692671340342812111432438710558831792261939212279713797427863279650383804697691841482465866266381693822950474346588012651134846605988317834277579548794197143444661809814905482138964659678775156265451827209027944448822778925517790124659348848990167274800239874846744146083630236343742539475608662178703181292214142362151506599189549853985925433934393635309205174361235348626648809131946362582355420544589974649733387386299982642866903990721838082256208355384853604061337360148323744372665826185283542583931259006434519186215682763810341842718141211603930577361794283102785654037508858205534584979913936156072004573790866416891872230566084534031285083008645221724726832778989178376967395366267996089150715037071322275391885279171141298705437376561242141963208716308329419891261905710835193787800855436944595551361360421890491436614844519686815047538516969742584549690890040403416484211825876770085137569310137599062121685094642215654422821074406583515686016141860807481146880597208974922550620842497662122224751405072500092335011174946284370568419850693282400844381328018337171415238281946279515917260903700421297572844900652099883074894683668246462017871275966243542590565787633246544085494608098225384888467477372835469486655109558446798600111793406681859097245642736352992020742839022513636328825966577391982663433064394925758763529778666145736168881773444184860771850979695780501574718730833190515162715290050305414654022365377477566716649816744850438252462687336153286918645699144607906073977416530568138089420281403880139737614333725059781180005833111239034361263774728710225637998270286571451513250021396051251936116354867517721031287954468957741775506571991837667691121224396474222566976451945232028578862757311398221733291884636739076552924853438460669585581064374532306782917865603238807795713497915836740412454287415802690238884899049914253959238019820488498007779404080343231431915724785220427785222624797282691185549876375082533484906512133151195176074525182165793320671804699802792897968317492056995013739736823685315200871977431424280720992007371750315004139810070297472170644794331035597006892889244958797027625808642204747538200737319179694953255917026730501268605682548957918164172963841439823758144837935864243454668472633368334914641181145567154244628434445795473480196708078198769874849929041950931888473578440417153229543814978792341743672995157157470090319247893871564493684164019450562389817956192163764610609981244437959059471933340257704416505429150002754459783129637697037497132103724066433707983050069266850135056457568866990275377489070617824342371370533037060870134441521932719057946414402833782060697156344720659991655653351849249224703108881200745024018330784303073673999911705166155173943815184644196278766147271174834232949985672617025999186184267066281452056595725915692412486919417532904811881061477375908922900754801662839868885947699718034032445980607999240827091997340347636727213106997394572416237191745471002469858603156687304898222147703289594555857570724436790283033691299737062370188050774617822046201681386638597779605179024488414411826094155001627612257666888480678500173133040300200607982686825362740850415948393753643632337579090219090697002529415537910900887954385108407890685016807151148877925418966354957657803856771602704109265221209734141799848933476087357928196950853286095269723405624355829342573813188236233064589781765979118396900527718601128966741583064940883713127824821782052057450631280662992372545675956972225337731253812380771650369832776722740953000054680581530240433020439971498129164666546219364801476296904426581845906739726407027090968567398428262400346505870458983391704799051076705000252609745179948849566767400326313330221484859322340776534434444175633534670491673191258113360159520279328394847687566389008804994045837075187781566927826528462301671881812069029704316039747108512993357998993085474899494588719279858037840683890584513189930534898554392401242206001646001220506371614552321906458539660225798222705829235460256771727251905293624526381193323619425533557050762609680011350528674211773558811378388564615615729126216427848645119681719995792069701317820326290602772804308376613953877976671640756212581417658082768125580771347760349340975351715214620945465589297999870892818168402024579782592199768419285666105354467698521181895068634479340007625209209946960067727355479678118222791477456889510416272139060841260932459257521894328094479986432024677247708984130970902560683769510291981341442455861116281620485433249280074250625066250405969680586102483691225859954578743855520336122254530889884283469806939926569158025228995718277952601227163397713631497394361864314813848172870121073350400662867068123779650271379529434428345525027445708432662813134433971037055649276574313381302786350929137289900573575626599562474364877049151280894516117287681320485122734937049383627688071208929172672407048286002434447000547012766647101198651179778868046626251764310942042817522933610289996773426176029499197365261075594221387976373698256441803609542215630867038820269344520090448385045091378767243541153542677815748870108015798493126613625017183546465193379886941861722262183352735268242562198141450331191375615930682410258360168719107579695346823819741162575651053319762656151274531738594074746817712969850625232970792645435257366194776683496750919462286428133887350544322483459570518843552157452373989985401320223745781082191622345796953931908131405929803244154577636717675404924261856105536051609851718387973758282100733536594760785366746154455278454790169261383616223129549038873624567624280266415407861778936868629320616591537404338194550349579964419485145478133400406436691302765372577354454497696348075553760965980091832599546396312312715380669475448360478165720282225066104295437291405782961555402144339976378459227552507647546542260809382394159563141065019056839742030395316004263125651437012110812513201360609776843436185528884080162446976336228416139270286334704591150125895199977221119323399486099067532481001344322678931475391581995120515670292208152206952363522825868945308801878126290831654193347304414337337846146826530095742008431813157596886940783349515575597765642942442856859966436808643034936833864774395404220039376136952854099431516018825009788956061742236247025133189050050872215928662290633999333333621604786275703729610701439079311499088952795291261918886878138288672875982989964677623760148833266807538297020566684123669009234967425199298751346645620221749834512538830556052918020124214265069521739013052099975401528570970951155300241655893376074825954817303025770398802842302494314913049844628388709140675297889053459118332028166767795432117018154594902648779679537307834725887264337987264985265615973608116096453656278366256125606699567539162150047896735926384270290385513964805812503545545592377426090926465577447202264742607575120236102036692661203956388599091417269778643248269332664704180995093747071405250195211970325487071294814368491889844773505244688913244808093831791514055993889344638995911734442317751559478227184480224579038311098438278884815464511477980345155574204080634631930695817078423562919913402520815821795022431540049064276655815722360853082443785020066332732637642206511652194240901576221323395081912480175746962283500842963267864350620423640855561975915630666423181733990999119563839115289189945971559293436275657723145286936317312183606825418968292232436156345561606100026119787309930401645219522886175750863272358950778532155214335478202975600784365639193686736798890306047993673267933548324302764116043038551852948561641258738783515689126192431139648778054955578076578401280509349118963490183122145292453933664486312505516345255819796975750089260469146670266714705214253674963647980978549050740331892734828940865198288385822940081031280021165571829069372087335135071095124977221184389708719314677149234952731813929872692903722719023105054797220136453060280915088394905255249907969133703188697677548425161290336393882369959067027404429441693748525933120970377301726288882894764258629176787772405996552021017786976559748676444901827992574783094321721774871136953690667669536340991443338532335380401889447113311457791738225817722461535641192809219112187827232452866580807095639771396825167031264120988463480530305025345266750939235150616812939544616247324138733154909224826802541858866509961576766013129563036984929567741806356651512040485150897579206024972041621457304118490883434194207971467039480442954213483047585649607530403681181447633337080562567007576177591029729740655900486550233232419448723235099549593334728631973563615960385318939860899236596165589510051001656259724041709954853958030291526966784482692742212675299120959169808228496032350498308504136953234165335041906076815708955053731597552969185636838852765876539545814107234009365087084770620194705871600366150313222782294026098305732860837625267578621930567541696010098874363638058334536082254141560041983828911606029877591013015022274640621479002185684165817684395036127178193148737846278722917901109911265619324904456888767064403057464014881215332700516247220790786100538354251794368927634330590276079184325592796422711531470755455094425728482369739802317527545697262862885365939629406650354505199177343163584264811855671987766176559780314298730158224253426247733940045497067249839925934122283521225781107190534215370421244262609543439410453250842951967405115907067105068242661560231326919115971914171283221692156023535048832524615505170204662400342269618892755523444392935896461377560056955729501559522709058042872476896424471908765308622109591301014571640458787601321451432260993175711719267493516235527700391459338609792996775419642182910470319186502151221175087720563853794360777076649624038540098857114571306902442103888434407082659653417685138534460905026093245750660480885777624791951870779473770790973662313349257846281181486639972729647610637337990676224111157458708035437732985796735324181789722322723350714672445996652405558137007426434372641541342738991180387614079003404084807495569645995939650886766137056067888280401067488261546957319481433576197150033656007497860450661811164821983584102494896579025688246902145227125331658233421796276091826980069372724110731387944266486468156364075948452126313868760442501015552405062749703341327186141747394596444039976728965127252938745624651545206365882817516072796886774452088376086586345692183708164985896522574136845721775124580506527920803956467343264126789176553882520562598671702954159012091095716286859526718285730565339280734470538562569076485858101955996920583479340089306438564107862622408369150209065394705711000806657158106581170037988820288925073079380339809389219844230951802837948386357939413005628911903449792928271350376764839715603098602000657064749899831549637333771655041766665884983624012531117926225407065204585650816752586239471708360341726878368217242015874274358939332386440670074140024978952972176574381092500091159564767024108080219604205504410878162294243783371027791061210894033185347754524939888917060902750230061643806354064400048504316213260116396453378712842544048349850340271740877094053882822392761708887060883936405164078098333776791525962531713911764817587210872948857687563548286916259869710859944856089842569918154456208235329366453161196330768709952819489097488230704248544260643438098180216799999226885558986966713161153324056795152129463343001003599365108920429155839053603448854239026252725060333830146697626272316811159717143379541580105576770506349714741660344355084092172742395664765789314599206273061208476652397124198339464977387320234659790056037600898674368226754167154593049958064622801903193657313820841377352856357121381158157762695317977393788658238633255096384198986391433018086126126017735641299071058792236642967388239091651112793550460545932894542359998452584764785207533637595283871529601452395104862228903454658200890600730106124771730167445613554063717581413378604300161557268755455431098793234074316010212312721324612693428641324872974268631266749059755950106375424404978098971322895496223806858568888925338367397991205362432417788838062798196730462391412507407205854215623466817528749920235605429195378927689461347687302357444123478225020126034947443826326539170109650372100009001610165190227564082210527546568667473201968325007869274806259926841794859284312501829351126308411068286454130345252728518393494263557072589848932048715065691869989646250257697838423845833454482159052248453895759726191774248400786428085903003928937427441948046300695896770765824343509850534708928124135091699644220688078989063178001590793381607864559002672113453491094581087978778927582736578786544015306669995002600605745648240436499109651990396644928242221437193736691628467547533550573541895034627950757424660386282074399002462874668710174896382646336429949543389902688789176017768858638635661979125174049495570834589580438672091081401664322691724854235620648302942935289980604869571159938725037127852070391739274060485204320005007303450416825110495804014335256349779170535204299510840812927808818842996402294481966330984744687584082114427403670935342223811463614434742216114176516114596777419651291956800720230941946855519692451734483680006717304915149801104989400448396521775310506662541305924023476848084471097280996960841610972141100801174500370889873116819755823690458955710137595098219742532823423825384227357361518696160106136081579411104952233575559243792292730498082179286575069248198827463342036216991439919488369370308130320420736251012453349401404265605419501111714209931373414002202021132755641910844291115891970688387958395200360642004112300887439207577418161127573232855598654397733902499619694765060819122506879071367474125318416182478990193193445291705502122768967128727222042113901555549107333932760507277846499637667540737740594111760564564699760330614085040021821959676337197370698700701315702914748651493454303036523365584428006771122989426966318408338014863462663410271338606007466310223890165666881832922446858559280916752529526801048688128265789344351195128451469585518755828771588652642058366511516644412811037418495872302749013632769785556082288157155699630111514731518681681779158362450770363065727345586531161270790694350772782279848405567325715407089320905431864871344381949981396494123156429068658180475959640128773157690854564767281346437822031319412118164397405225709194586788324384787337901076986587578668401026341323049783203437582140003628772948411809700355326866770580689589649646391351714306970536261263307461431214714858065322387102366289826209378682651416226002945239234532066750480499225842611984453949338649839335061571372705771412312304378398400131603312915324593802005644167247173369447661433400779220672150517199501951313137619933837306327344374584352772468997421905607833298621913259928648515938772359977629004233599157836734567025028748473943285127059907639409107766091276023794043302391674078571265592808392179628662252136688941734158475717136612944558031240425177633722416151263184844335804688346688636003275040760165550698184712681348357461703683147259952549624517238552652095136343011255779724236948085538670658338031329688784632666196613336835990236166898262240419381810551869417721144729351590761274251659486414241753131967676083173964417690625575187548055710828312458514809968663871463971827672183060814333393306338405319561746030703995542800768343472044615793460772610029930016448440565843163945431523605018714900748108021013006864262224674179437992235768761937736470306630576859112751683650452466829900758152038323055253430441950749462441519050878494269437059479075053154860429156099384905355900954499620190610414093411401696025393626826462534932012601948937954485832885591878694289453404245870977055069772051844136446606451699632147830017452369419671158781211775476782653569253351385844149183097758656745366151797418165854055526919796044472097862699486450733412560915795683570941108610796256329314544637811411026346759596516669506400945370969585181718962444390955166819327507902181920455258264573723004615735662107510914629316205104043585761260302203137371252710481440922581370251601133776905831470653876849857134094426321486559609648031582238047589729187480734685426699135408156938862104332399505142809233849833513207067006133214423001609025972545361035809830942089944179921875637142953789303480290729970527619210903310839845792370965118535999219512073926381011985807235881253407516705817055916918677904471782399690739825723945897760284954612624836260456547598011558341982206479193459177982906953646661320979249455399604845600694210297561091871195198389792760392027595068560867360776719653694924082457846778078736722599229917590276559259083822702295211519034435039243608628480512704948388640744625887283068184529174236438254166785310572658598360253606461662850519807511340392674188735075419563123151250852964982333474510909529201952817119478256329633194893962446050342981173333771810403803435206200353559368653493503587096554257293810406813522017942938781109852661132876764464851468926312033517595277631699153957552046531747918304245856439463642455129917460974954021363157381412457150535385372261242651441104699778755858384928542844056039758032962382818980663865580138368196317368273731563433309152540897340156455992821546644052028888785778001695008990428533353038587028604344979646166495951441203224230625424694947189071652208347153241061211984704373149045162493772690447354103617004061828284161047439075136400982229295473506206221045115371463794227692459080598928830424032128772217814614279201281069593701796979332904075511408251628777797315611652836363672297700946830273003241220557314022115304021893459243658736026680988727309446511156438428687947225269654450312185441144582567172372336998374444765391941693521168645975636826844374785342280531584642591853716778930382711499777590777767678151743554574560944254630070650177727681037194537917820043623888854775748897335694842852945992126117957124603054294026159861005833855636418393096777572954716920000355223853852614055189138929038964438581788812999158679693271803184451915072715801143036860128973102667003587437365732485175030906197129782543109274315005767246303281563253611043279068229890636839576798123432846607262846795444421502312134845740697708212378864233787154656566358215309769163522602758900737774862096440876788608106099790342435330682605178069171438327478189818532012742942655069395387638636118184109965268082839641616312796313343079944171131671810325737041392885245645410363785492853455187049329767364694545252094937516178078398245658372387484073337309971221530348264653930788257560585818932449029265649822951913087747440359770747503563636762365766524984963130512296205984298228899984235863509087030197509672767839825198662211530609635808910177528411545966320406687162998430672384734269097590005467295528618933266425520384670129734044123883433591135965335978317966249367948132454644209655396935743749477111753463230560416409187436675965487192155453465373994015731103391855965747279761389504757031009020464494835817718772436178118870529570475431264526140855177548927475078595880918470984917948562725829059419891376258045482191055849067193544893714325011482218333822131505193878102753866832904833514680698459836604303944616511350964237752945520522094906113321228225222465215600313583299782217330944798679584391619882490569297519824341324611649716391516860356492760684747685105834593957314361827791592517179823587945885235738538658728744834951062455149885530178669289193316130345057915922516244519672055829961862296167939592153539806348163045204069558943378879029843783972204138454547487466299173981558699399464365058747111306192824318285585321989977163369979993538813319132859581608771942057646548367574751727471800936688872465167581178405266060853513664247356856763107918687444552452347437520962993525267931629672551803397099036786632428485588698662580794326643441646643172944321838535684149223237343466349857020329485806973863213512568343524285102930975630845892140260807507510531659154592718132914088339334453922699005715249066986479062576282996394989980972845569111811804447931693439079130624120646740066764744741744714227838240281818341685954073788580374053527111497135688988452332360636094466080393639449771535168414791559980997531795009790141356448140246539792315648147698436660544878166188243189422703810917548588954989981758495263234396687627387395846973317897246750324369583930069909130657617194211058429374912101489767697308796785826829632430758849789032488074209657062496582666945575771450221772857275365452643518994976593113963075515034710425206709569357610381810206879510788973322983357841640636205792077715337385512846836751129569875122891296265182077387317784581736921031566763867729960792696941411142947043722567625116770437379980822797891372612597021951200974740762035589830146094079492065007525995975022500752352780630448610421196762358319511686474780071392866585061473784349204883743859436773102048821735551121543964147566747215050757001984679789188663681906900141956088810922948052732651390405521091406890390631051267599837488866013776303639327070602475350003059241268772208660987231322455712065781403121763219961096529122541255040565974202633063158300635392790732357321834156110062703561221464704182936326288537588770585665602241611695702733269068418673399554487131799844458472400504288447472314821222639355681213336127368287289694398254944392754701044403885169785209882710685244316667052694290398839771751011262520458427089962220291556778454228106384665366731834183156589215943678293584154666895274977691229064088088460663515818928920007913599072369753270744912592641029412538592564310637613570047099117108749213651448518920896601118770526230428292629801953233237410796498366483216572670180902864855233339966043880863877498372007903457762279079814008354764995935642943292022532360170200303457399619364091687023308228919793015433117538278574345707622313559870995016020558377048709093230494069802930385254765237185793500328632066258981524309430733023189557039579408467257436123141585283029968211336362165953224668867866457669763440960177306449007095511555182066847649102025915491434174027597147794087208835967255456963358346104999138701350715889870576527148900176059694180809546725245843826145694491412667777257024203386226693032497412400089539193224478732863114002790912716869849991850547773722828899662011201062071570937212232806494158096978556320781460436572163659843553077130344472844313095208438104709961271616596082227405281636510585398045485330068285387988586224107031387881896266205730583335034852879222769134340669079835723511837608847716008698334458352351825272359215798242885212838131599735410715830818310327230811892986741415143800124337442408075395681423505171835333927970480628905810177034029780913528389042218347175124148024490653023249526489914445453751919958416210225029463778085700330324253600617383101907814005463414687564810936176448939177358846827488237509633245961938258981990710527328113439797760073488380189346962498883771663350561621109010921504286744545505015787069794406649743412619272731268525063289905213026554625499072801056289719132485880710442784632148190856763705981934866278931599681502018150887442482617842876247946722650045091289986175803732260036701961038357038510294661790566734363700351337112729860603762179724604493975137253947766948949778033856605256785347206575618907342064295211073802570053634188874391403528554167683146531556634130199117140442921793850130044940866442513958825943866637209272195648780267324332645380420114090985064243285488408953746284741202708967688353739516003739387000600514818471552388122500457362775050587406436603706318289929235123802562774462089537303555443339741718689580819371494124226006039373788842006566507563883580226666717128410250760548898795489595936127433601940303877907060445535422979758028552829010709534643450011527260570358151441334786808757650204606135174365161005277420776831137696718154594003198101345055781247913683544962844974849263285790878934979403219834252311682985999520364017713938846303405875665315065111044186197648745613855686275060665160180230849977317832311815372612079530287517571869961679745409502128248129450016378134113957378027682888110159715330416524002547025758078359440842030798902107921264910350493364494786302919574254770536705212189104975798485707705541990556015724834255010561641045676764646191737061677113746441995421089408701108737733395901526297860596201584962718957748464653624865929815181365263200293644560249870722339604715285919906984927944530464030023576717393252925555104941500504602478444086861564374058673540480756940505229915522041843675300610436448165726275954011823106691638676347818902663958932135791768674861715791464801437511868660831335556555925108247735953336702567483547585782032318429164554783273448542240933256892718352753943472431134292397271396278262425399310364713510329594313513264200339603159591253483216456941410340517556851774786964246468275539465347530538323742465044700043439156169732916943819190419800286402365317708369718520379098744520454897273981450461442480253386494357988779142909940675113459423235112541802958564251358160491575199889048770976704743216616516828645585855398814360983528469077877366617955417944655218700549731187279524860141173099165031122229731669485003196700272549964137155047398887099926701701937744140490756344524020328896854465693772061981816873551644491853491639653534374639883262906421095606001923335171134859176738511324549573892565131605419222469322833923159545025761055190952069132368167635697655602315294397479689001001312150062412055629586708632647298431168996485218763604669591029779346143046223768559488908316310248904196321848287190533438635086465112817220237799004434617699414702248432998119317009605223910016921946869269918375648209979439215118657411200244745489443270950084180286037653197321811933017504061707033058846144752893367755275531952541257684392756899157827636851326742526354477414025081730073627702238625399948593926309558347025841943305742608293966354812775950366169266058009369137514615349213708914674956348635565911515424741849274036927660059656811998323034154873583476587625561513392292138299296945630592826224964905639077560547213701487307789095352759436931418807600596672561827731770352050591776544910916032295870581144065739724939251752746499844674372084544200594560483771231712107718419522295799499181119217495196249114092238143853269501957595639288210908965301048713408513344147842767847165617738791623754085600357460070864976896821352184949852529369128557974099225602811290173736651843264550768180345509660331390414678767594696912931007725450528672382280753719568152442248229069435001808845042203224372648298884445735917597003737500969898788601887828819872499423165249576878106018371741784114257467047872584225677529575461204827890175796753358700591954692403805988872603374990761386494037781139522221417383970634152412327391042160636440883714562469197120095849749536208987663294500313107733347781998972735001042773678968231850421418870289141732547998033522301399912457215382849456170763207407182698399339090416437714394366992288132605096772428027354596407684735441561497023479715627676176706059717965392198413145461079096724759651917922636509522203350453026221572452099764797700586810727572392874618195633500642406076898734284830798193233033420151865885906199284930236266594154021478434002121586421819253994799681073042884789639615570799642022531826479466041494258256539410471578108441002471860028342463321310698358593355957062774609772339190846879650368788652242060852575527238636220043259632822275264830551347144658401677602265424014761511880127863481994865659224640458258121238621352023392133107971839996991175473692302534994647643003535619712448566944384141179029603458896764920560901886639213338029380383811659098899801508077151950389438386571541353838048439763163797289876396489711327289917776004952169942954211628242228524404783366658979691024656094869381466834422181403705297641473460683210700222342787710490230284394620327276013848911851944960417787798046124813605498819888296092293248211554572440334989002568668712588755034425031037806759121543363172889197788851926224211646536348138621085277779599838206873845251414165058721746351851923920768298612711103984771417716045349746927199388538568423665984083737780945730293018152948793373116775212313138977726276093952958984360386227668526033052492244970501868647688761840201302730542399320761173079261241676586344894342675915683902129995540247096502689196371236896248142956956360754273566252389022720058787483560157889868377823686128809236550548539757730359020163940268515307690288132643650418403013675754538426261819858554185983220370389680372408941075717857553987494610978564197142026116691403680506815162428241620343029374537575086798893474779773853732025828737477516784634580884334009626584851013668024355212453887686289463794937756290979309570609532531086286562663374636120458464356905293330865986120606351612791107204368018597120286843954248415020424421580735428298628522610143465974882047823795540983125444838803067494367859674724052781873443238858730355495977075486429564255820251091613526249441321158474243581159436400668253851534030125009118508033814160688293851903681388419979954830274443291011051625046331175569117745292458728824738193861041530827494915253254665237835890658356417454654934932343364053732123286646805759284153561087297425268830834594003006278595760886650474429756314473512973158678268674286390359107906303610387727606534462051962823532560462146930330426585149586991757864499754849154353000203195357215686711595787688651872757936017128806815126788237703217364992102472479645491751963684257504501369992981511414303764979738358176272698162263062414023174685773692600425459300780308813344368145376463068645215377945558727453408047993691589040675761127389205109699471027279488023536870568060709075828415550686009249751563287132082015647630412202464605764154262140591431596011977060426552616701273758741068728554507355243968831544323466103246024869178291099552892691462558396352744181973373684070992350313728718283701532680450103888926682966186056242595600805799876130323500686976600465846027232427667105065790523405206918384512020942544385293669796011762155615866209792478093302899941340021426369387836488327654662273354607467736938922673524960228344709017182971606400610961431797508480680207499871835407776175061838906529355062041892638425898202158664696888231892724727252826618286653407013122397497624459325590910803830205838554038356710108616879461118765356529420220203125212998643976447494809559248636019786822416166180524065974595477694793970398912905097937882780101827782620114034110581398382678219398343859274650514603433732733229656696506552182252179965724165494529252496372686216428551776030117854190245025873407950351472496511173898616644726484716648684176390612888466331935219925699964476781256540063650309590259469982827066802728409449931727979877868515010050733557854336957268565526332228909885166499760303120075666029888273963846681235033056436044322791557505150475857228358768267002607130768760644201817634948296618776704320509775127111721194774271271889007663821532134316976880950143613918676363850265246794978024411015466020446814130688944466344755646121550578657621306783198892822993249469494493187226003990682517755049322449178849640371696915771015054058612065563745289640578232750436530560117078447604442236559763008936446595149883127929132546181223500187482817546753237738228782248782842171642718134837724421472456344705778166961035794131125009240653212478865967616853195854987732231594543013554469097576177448138346837621381323964148770390791629287400932813245336444227464486755960339930001373904819873622284063000021362547984797474719428010484442833361097559438757570465542992433464772427567455570812592972943745665195734548428357444603219270662178215409812048885251622414560616642204942221505441401202295389490118133066295065776889366203409887024514091868135524791554905842105103308611523008435524605287457628666299193328365177372475018850682338129240026323343564334865360433126563211275902776965526098570469077902460793683896657800415280477675570402149788016234118773618853032802553310166508439193523043126371099768587229469321924889938218061339729345767816135440780379763660895730857330790712825129694329997876229011411592112036310815301540142887995100780495578901445896022371913864612282184262549817157536352173517225134755245983313378406842457154444270206260749602531242975625318532230993748988450606079493425459752605276140013200339571039602196119288435794828543007126674567218360211884706188968938472186361562207259826098560528669486919946871903478493272503033223666130486730509904477311390048153572357590818274208404684984407882004071502495040139353521132394306966039174939401697539095818958979299674516883109003179995666493310223285600336555492776915380056682838294227161543200500394837351684749023997480767343201275659769520047463733700101815456698766374031873625425971432623044785525416646445298349308300192454839171072077785119499246860840010828799521145947731564885265102468241738769610499669037639101654692583113522808827330592436249858965785918897116202959967740688166712400988840955726666506572913050263089800766149693664063935658503675624779676106839925022473430514725024090244509199832872494397917200731427273922189256876304143889103873994974509573732342350335711167565560843664968767072510766999699627161285576722128779619111062969575636731091511963139212755009394201721890593177837859525479426267792559808306680102580651133519798810645743750076334035881075833726708510809081496504066707791261763685231817903317668770619089651738375393927747199582596321623427821608949172303297843566704200129843748773766353961646214280344007162174167361357611518753615453680495479606937716056922606294947135735051354235128836378896079670759407476456489998055306271818371732741346628806336473362526096713200783925183076713034357286592285416306845989279356639208468118090018195478761352118429832634703100546730056923806177056531810194641167549597164935181281727612051297004044600467288708808585766279386780009053520920900246118335158422238939609825513428452969959118622838983228786913340901249311210300666571185807315649456558022734732089260411663010915144989803466088581744528987510274215271276462928304774896054248456249949136763264825774164079538765440610776938946556748388514207780111984809247244420572625369052263122420335088635401787896147959038480050533936307629153315634541725737719379843566539803421521354485970390152665627276158327799443258446901488278040866699891041319038272799733788030262016200056084983710325896068849141051479029051832567894090846557637549879796555982417177437247810583075367605735511464234579269953097509967361830524939995547352661269017698800362639589283086647459284198747711256969746618677339340396213130126459384622807140541006221773944423564822618537589811568818031495890529814714188176625816148614403617215731262022601325691445963433972909010622252831603321735617545882332023846377962182024542073031604513567891358243207855054610474147045572974375945010118449926285921399638976780544165674447744341445579895382878268753399913641147917383224641006572235947313984294720284330175260954629805195781911495311872701769254489551305325838116678495125805977350188951931332420485199968814750466509170533006569790454145197690113306637769674934003548210114215467414983004158199619968512039775846570475548007929357370623239005962762122972040778523665097894314929942024802467822894488912364868947202729370465276756616663371007790110837871148095076927371787424306453296902384377929139898815916392413137479749877230736700300510573490245539095967967840463883551757453567569590664945143817264997641711468455989846686369983795994129384596545726940473918640015153973053090668725534063036526238226020013261105577101178047073156500181224259334101059494473713223838470966231615688848948680140704587771744430667809742189761034914553134633918237870750308395592063562037453185835349521760616789863284314780233564757087742152809029267954912295969133384906560090781833923287807549903359958196031912920631906315098276984696149632379885764752483133181474904255908413278453692617458752009261375610473483680551834242110499215782946574190763364326169362209553352237079629688709977390438935380759711627935497529990286611292278034677606015803793181897538241027338820078914324920952446675299914689131569874183865428553731566828603104769331713551831117338767709091641191015279204048056001646716846440284439383242394884217258440056405304850757006218519897218990479305374424111379621354026592476030478001431125813472511985665274892997091707159933034254914034159279255732801871831110919730409032667385479376220600510302132447188046120159207418492492244920771079422451993823257647009100735430632572184003840730787159003583763821207687797001611619158465128388503896291274058830016462242197387341841492040149553210734493603628885482843780401417542450551839466852081916526482227682808659676714107744992828138839910123137845430986212442792525449944584650115975843994261958550335607576353689902041190681486238436539639069187213130725928667834540305331343096379268304935342235928439481116708037206607187479975712446259070934049136343461845548458408922454747919135989184438911163431790082167967218658026181480378421039294748283114438276693965500098499876422515591359057730112663072535367850727709666716326051004878385195240355682566297464277186151325894477558630923561917216031303263934267224313107883064649892179961167584884033063131506565461903960931761036116320310439212193040750049517160781648089024629677035129784237856288859613346841291198341715931933532907266886916787583589840651227567305421157720606415110872211430676171817758937295933142603971901700845044828322503500315541503238482434175891629508632633430590845791137612533668954494500715083907507473044281176170981061080279102301320785536026148113588552675158540922197312986804817917266278245618714643888410106584056714634744640085214297838684300312155238966526395522325999854432982001068155882797399339794315518038692133146534192894518855510311576510837269901393883845052010956444901585635105259909597988106882139271731760303703460599410572916628273807932599397979255283729400123052865344052260775121655996480259752911105410028294499907756017063972418051873578943560904910847263954810797804585118514721702000653811229374844394468939814639415431365045887809670507338963807896545901689781905344752723991233477770965729598746442806273131597497427373778838130824912783401136350233172529002581630536576984998731438737771319694953233450548261383204593729559231555481517180582194788769702557619412292452772242260300650100073745229892882726462159210399772790751210332673092574822517224717485752587584743064731953877807264887818796218015060252208501837779722325099134509866328172450839633611695620925363369159961421088831715592382422713745840347096348707966501975366602988800634231537914425633297893773844739791510022688827350382500893113806007826796735211205946367272001621361141856967719174462305078692020973653746268343455699560683705396835847426309949246160485086104472546064277239414491301551259944185101355710083613624408541972893467420489250561052729016106159127813028693119748935766177732977689178958040999565999164199146260222053732504672661647138807070332768744887772624591268676196193023840817148834562842018660441648428564613291226974962050312788872516851420464445939376650779121433046214552802525793694303413351734952256595309373605757203647408132005131218994374416793972942021064668045838392823413284112850973540169107835509741707695779763270339493956151346297825954809933742565363105366869579346217219387687940913072090851146810529553485738147646767392151760841186025768524578189320038512630843592884484164144962629327651284716076853584818085627293365330883560243845910526541933176742233744240107707157399849144418649320572199665688556069107412140123514211958944530960194637984191483294913482759303053418217277718286655982927411663168566245902064962615386384308759678516861783891556881632680847191305035678535740599005296208474773414892112434638036701005622400547333985419398266889335320382392283512324770695893686976849551748474885648548670072988258592640786038390821722326808550414785740876967773677266232013358444081249437385566806120594170177541604015814404460370255918552873671774895250812256671899599742198759964189602286256359696628111312504382436846401053683089713600370953026050979505360951106152280055342766033209510126601153896799240111971692983069224042480472835287329744483507038493520977965817474421767275524642806497029112374999741254574798180106917837330153122348991779375164955149962675612001146027782431479113464238069276687432351095981801493747288028817153103394144381874329871124041615416825292711465246489787537615284290103647753772286038950570353313496640834705695661349008779296108166735090275302092988519598473346874478400647134669606487789660231370624308861179978854903558902091952215123227498886443135569540674499125955296523891877263231301692818141571080426870498884570541228841299304242394179801087532566462719010657916166496571871071618075311080284540687181997279623596771962695819866479222444833222397947834933179645440452262002679080456198200303411410927746857651869694930795849196323557551103839079589037035087321870396215392130927476998412706262048473452790426656344740942002367294997227864602668821495157677502600717437704308508126419764983588932536813863647471153657864639027035665818390911725423773255753166726294936501081644779302827008250497088532502370338859127314180057395006461211479306240476577907926593445364964447200574685630159829900237761891017474506613291218676934008642733657370115242513694967511968851777096116796340723793897007205465739954928913149685885581681070148376447712956897920773907844676998086925100053479583274482469557792358045010169466910518154969238174854257225211998899917088312487668575231677911020849518257561802912980848457681990367007663797941364986080435696219273495460172109394793401367079673730879975137345742373048083788714445173874848079476155773596835416041355957094071773807942584737970371490043470029386628476077305698331842722490833761582733855258316045858739489042824646981272025739250550930781333042058498295361979797105671056235421656339312218140684165369269513633078330165609191707719645472276861508276454092878452606260756061592244942566457527764548006504715580365694892351608518783944829643398455070690369382712957882430252157566150730532641994633071285536806221534144323396151645074422468967693578498917748471953045419064711837657071847059328131229102392445703859132258886274678685846517553011724813119845846739376088250577137898283919686670803592298613825227979244521977666814338695394653989429208755541631864572005986483779355201348475548059703905193697616991240176788091022287239292692454535441374017604160346394399662795540882018112031050547794851905643786808325321996331676443895001909525707171752352130075831340553714506106636669780741238231201063713544240954644122816302746506829896825439870111444414845867898227185480181089433126121246128157385474555594540444418353782178461127871975819638368893118791693297793434106585928130087268109528570197605255885894815216039342852582440912090623826257021111733525813345445233072134504434506140395890757141635459689134862201982925165660389086623210975851485575360694621402172504776067267446069030687131573208521799602545504113852260048028709076854606931668137736366705709299528348424047355030998543100201655621972831132460402955569231634658556593743555145726444541454783714716790997730587416770095296877679491413540649503763062578354932432616165394245753474886050014433870593109640109113423498129063545393694686719398738522161157449333565274665709169594258817239398802130120163708220413225900276094654571420412935645568712280736696093113249244998450560266657429432066944769681761121768363031553407117002494348366019686901182513571642702644144380922197779767956468353216006794269589543550116456863091505347250549336294269906621338358544988078667768306866289471432453926278029023096113961437993633211575397916741142074924524595539384081343142146223274193683516667639326001095074913639150651862900863695759368789352341012198132981418309949742457444403082369113328440789590765638363114844102448559058258157207000343494784041484250629726212939823700256350656404705755324649327443295360726810492810010653204140831484487680310158013867146605344883712268588260190359200780153647371269366982434048181878320261858408417624628251856649610010767766013699520170062150410541927848884723226560725696267536466121993587698801864040558259022215218335651024818843541624167909337792091865292670428748301350048506473638045827261160903056851800447954251958730843554962710264173665343026349269290025629266959839253888899843694790172190098808588999898188600250411794542636944796056714405949558636037078377893348891867268775457755255656765849967006027188427625148646078742490661796002914917798992075635721393804034441532730556895351125929766553521509855433313873760322326683220600975590309737030571852537796966567382986429001547330205244656855494167500325647483096483984931531205579870525919092696926806537638721969464861029898564586229758654737551111159106871351327417378556349389583236111893005258522769586314252089975506202999088972691825906270945404611083958189820831077314742508182485920780742132869465051565331735127101395586260797828952767384617057239496390962495124034387668828854621846237869528290492290611704939669951742053252168928662891330745141107293043658982060262732566307982489284263851649131029450551735730058232120457570030233183931099151587306690862208675602662946162932235081181600188378782567578675889660134612654781348391104983260219884409740126241080948232127878480704185929613247137789798722085188346935298749341144941294473164993376097854682392431958804562722457585771701193671439827554229507634534204187055175368747187522976810876827170812891100166784009151524116117157709730487591085184237001199280868537811768688747252525489324211393833599765416373146118424816645164144274271597452491875984841747684587729614376679834315593301593253765824998986069159586928224293588280744273034260540601676190308805310362006753516772082473474966535820821267389303718654098185948774645172608777069246679484136147928224029249867817903267584359976825044819418249450314056628215097864513691989411284185234702634212008109730235173356793750125702576815503681110563947082475695415762155235511876175749245078013474555650602977214601768447655788811914295800616122102920410163225103992664227851223701423646274233542066197137493548034543470425659649981242232533535925339211971700666399963542245055828170456793972571341864153191856141081302967209069177944764207788129695246225268457224460160492432894359769609410042020524749554193115037136906760976588707587347543497058347151031036250838013667413078842238607611578979278436348467886920076377355258986579178655848003878979776681269122116153188967670944644446660854423706091097730755695199736284574634073518929721474527329725614937903427401191357996762189132932312069682192237195423394472477507820348556368916126913190284660387680789570519396928339101809738556237696097111545415512499811384239225798485833006841253751114196264225104179973954368592603321244567129057436643546507819684051250374370295719407822493594073010666002587384497254312964491639216003651550006694831363253897932949323060515780825755763725550382360780949397963898691543209133348664387321096624804249927033173592763877251513253351604788798804932199358136213723780548141626233312646830935826055881757341212532695475075694027412215711348263845377196716813313249573879515846921668445938319947211580701845626917629866870856022132101555860972841504491962307982792323706083002414513996956371923306865561469462572587253851108780726824092462781633542993878939657674080025496963132400221622059139058403616165431614220722348716388244644221655899844985965353127954042676822596109451546715891854018009395718904883548269527006892779789245912430945450837870551642424123055333383357960424319038517285592636101059081454243509697493933927326823320471256279405279569508551230087377417487469246815100747849358053065820177560593210705413234122147246441158402831703228832345316420983189465707047724627659308791652158883493586411721201735876378711686631408906199972704217480701240928329023155294349564224340243924660336009195752452025918309281737154062680067304937517751985116274988231856052016331042326503371875992439536202726850090310850743752473947462064354622911518047564965071154091004600542618733938201430309484460841369114484606146741761370415218328105983008237439315548364189247726770207393832439241948063315074558802029670388514430253502094230383895715661713874543924677248000515740137554053640644357391302703271607827062375543665234374331465243251726430773341723206548435279934671414033863329648355161220830704130054111829276130968789508727876675047791591939383102915088541004878877371998565449370466365852854656826632215559119416745441518335434232645258026296548536824494633730774624472474850822171957103912612607000460419443938600309780231993753607609486166059860692416544270805369493186273102474492503158202954497955349748848223977292180083122663594996192065567504790616075181161144283714513602994445448511429589845629709140713187334258559359366562381322349223815859839714376388083494179643237720309749421480231230954239778904634400883254694158192428791743588292945854235962576025676165938843788455809123169900930172908068765312422203520613610051041044142899816892498113516198122345841002162386939471604004401130022005177761745549247502363211031454391926121101456743462019484427110448312690464784513247546114979849475258938694843707067988161328222365282960306536713860898610796061265041633235103275094965720997566701544861311693631694077495397436279597746416570924236595628511935555796926159498680082909314572864633809473718771903900587556558319306705050911473903322476397270320926384167901661757131525121174345736252963932876926404142622285226459174987288347988296145191489956191824979497919803578003413881986118132224796302716698761216428688839471932901581138161928517970391215798697691050175205422650210404473567361279016007912681271683477477205222905178743894423481050963505107617146723583143417796080333245905895549019947126526939767643027391676153815197996445986826128062927061963495492609500841802787041135257717722395677813349637731654896170619513713030840149429832726011330526358403306187932731206264948388510213847452450134740057650920790746916292371681219887361226987321617833202830541078543614568202555207690769778248422612716650238219288382432752222899975596379404547854482041106236943175616389699851870214793125841763776777690817805529463098819069362522357018256578762231891685089909074709882983930237692047554555112322877964880999896596518647424970909403221333021492171417556670678222077092873119771957987517335451068934474744670656308007596165832415390718173957675725565345779227599016283342931524871829721187831516066892104735067254828260096629581283726605853950785056794278249439987661226245975552981708573145971267118128919392436809158664450495580319347221972986525571818479626779974930635828261157818127048113655242568181502170495236588409772723601049979069817318873240287482355060233942814030081647178483557359114048386448249986333437724633805317999663158865865854409575364737390109010682792096401848364014163170123959776844485484602599103384943325899971368960931611406249727702986150501953975742703514420591876906877568681143660264029786044153995819904470006788228452642569604246041605200120849705653540496402634090405888851008881740249454989320542533663468273357112572715486059244082959170813344958565260420678577438770438989461042794121989715363314736268324448901020284388831518639098207528236673811029191031595792989328732457345025648316316492812832786875048469826422127619294305843465752675510017019594795524812818633673535308009661272213035357984952454398311943382066333832532137962062941276527477109394611070552765864990586690805533691544047044333809693524790838611993956339261655430787266965942204566379394907275965525669687512474629436533073376529512718332235349445198010110571401414940188347809507744726037778095530290612734531763716343798651264924465267393334714083311910009336071874684813399837477840153970636080321277451714147284335613950299338674073570492983002674440449717986065035585369051029849912565294723336108275507414205611971478976550704226483431015707618191022092601551140477574586890976933940149486074111108006106400221666464774423837422979174643939266109923414570876623846523515574116296924855976212112281470266731884114603455591015922889311686447165137603470416220149061344209643563341892133131391708628976517598591350277129110415638583996212326607483289344663516023371878237475599218960336110626540038259575260108636052989488905929105242666713765337330665178793503557490040020709784547637071920090474142908860150425564510718199703343399133503669200162309454807023736227120924119714129590808800786418604058318544187493501069486959422223337845600298214431019653320796582340817081566565729726945061710595603859100098960704773338614451489121518820886523770208073939752647351318027290344825928038309891214996970685686258576034585700082106476018731160675767671634207374622687642022241832802785982712243199643773556689566545873999258684212837649996588438486801400904464724419119467228438779078279483410208325369467223777094854389686237557382272923299209299485575541433440904724345284893428061616814235173219558692209332519624837065908619811555605483109918822761296194669811610823538811297286819393043460577135088252317271585783670431687157716897471807848392776812986322683045854555363340407747310840845337483037845698662622356790426054079408598931813462985866735441114008766090603675998466819133145999580005640717764436780167441063118668924881310213261036462952182059619315964522198247760327199954387152263326121268487433983768986490015098484871204300922946934551677504651392556856086057687147527136068617669879877545996111236114661627107333010592194173375368401826968543022432221682043356405070805727085042537038797719499361787463885880080420611314127956313595222944118771896660003951664574602451036029695656317754680024263887389379361270198022466047979655523151377324989283131955160761076632056368688862221485028812611322771795312437002116700496351433824772316034838196171938295324555141722370611042062456956915121004236598291654029415756190334733872939758227076976238678592059105909223907480677923151877292312009924584368399873785376437393893943762167011657525254894487244630391256555186706875713845326245923329356823516575123190436276835838157240358796884504188591150663339339662365569533977182189127998108521112136365288948423471832876778264708324151723052753514901986477887823288378730323542684678381509273579425020699736881156143472379775545293864933460929305148612182185487039266409707233853110232925180281845112804418841534360063182335595900857661425377889418002685067353743729802930216357208921627147834489499346471556230745551122170532995328476850612053573073035077418281831936192386580936152639285707131252020986551810109791356315062044317306898628725796312126434319268947508937436239851548066130531278761108671086585851906046030712753278928393527763468135842928177425502766001935662091154939699361881972124166740800562489862125790110860393658509008825156708380553785155886700230511976639220463371877303730226929035647581621334368651057410058744049616120440781126937533716484248365520996156918523325834156171806682675914401679961156578238825182509403611695720588480354837732364898666749833138734503453915974521436647020782981426002011206712335193630954780038899767823364089876962982317187107573191899029937329340499483091061813898948320229854564981276160447253527121994593340819021088306918749587253595519606220894291010213530424051931243807502414490111873513778889464084472578619924306587677959040940924460020082685542481431432887312368272418096564023436834868284633653953131160756236679726209857744289169986225706730192875985985913259349440660896067905432967691617484210927194496986688375228636283833203006062914133236157380111069409812366449428782729071151441896307915245795448053905438496855397325233921711907393802941253049113235498501441334995696874062403860537122038870881539525334544606058575381833556418647501002554344893926032582768841952160543464376348310891073547087912349088578175931095834927486803158887296641771524067546340822566379580330685783468226217096461582557396074210127526680909955602198802264349710333000060844691056372212939125991910040405053076328149335534982807243339888613554637824247436919658178339552225641151914825241406562384279663665376500416080807858499620480732612768613381310430281211549177723303581702291777473267817815895659836921062766526161368421277960829593345597952276261996888334768140953002122555177219708544670786978456909578215422564066542724912869516260781651445609376227924560868309060830569425265754910599706544792822664321464497673305772844581273811958790073795216852216507644834193491099209926554415384272203884588733696509038275692261324466908069966305261017855280779353886775446853652318453011556779437593591202931857356417824695605561479894041016741715230240022425083094877720389890796544135692015412769088238720835939830686171421774403678880682991461520710831538166278919922451822267394037234586721130867542875172612299295725557338178220687644821109911200733044899594274574312164733950072496983767197419079236092860116345690403077494644135440156012125109686098369557551239925307094481295556554810146599373792732556905152312499747510102514012719547181023433781205175823138764427128118863969807581292565163639998364275775420648996289681528254629413265368133895109545250642697004423309492183309189298800698111732951161573718082042274270774671584626036324573482509185188312726200061325133089078089583343389264103467470990452875797873271632811393307162608116634522805064534538983861982916029832844895172025510520468370791308843551819855194104311128429947103297519387397417231073155050939389197611804027579786808931227862501255794829836240114968308846593541033531150987143110156067575023359179495374111873712091474087143435004344393742657616952701996576338459229821614149332895228141096283955863422459223541687165477812024043508189012160941222051689436881953440567815411316017068542859464304042586151714832521715817253869840253754385346270722088806008429318447421379731489483127655710732464840244811996389217588235243775063079390140620723338874161976303908223990866474117370026513094163744059422774598322470260220481166316178773978169500811870632867145314806849198886651123802149215283754733430054516463781965773030635288523751242044650951433264180583561251421378183200423697771712982539349745075494000247562891153471062520680188506804855709213331777686090440724219884290537374992516005430363424670411098110111136706969302579197692260166691859174672063271712335296000042055617118129671416878293575638261012332998581253453403179402212419800199411051478133221317393363842472706807761281296154035718998479131295304463680751860335884190953468040103205703963806044476463524365410155033131681631604194310401384376232991922186649869416321958597848356864094445195454156012163217920116877582491362527390363181492642312608343688730656940892022644850926774175178528427225674146588897860542432326657087393083455698240668901565479942507093231552931160049377766438777058322367373353379103522453583299735941528211781273648693940086455709560630937995793375196879833775409391782016249652049650590046523726061024593758447629277652183071040859290320201802774840616588294648677780803061115408069843160079899205419503396842808029690133551981154036251101426497841485165029992802207986744537865426980913287375953168061646911299138370010146958511259248192019420235219808414359596903989995696051616268013199058508366541439395448862538474106531775446391287558539458724332368239232121959707318984126420630764328923727882567605903347032576564021126929233330613759299962642541844246544562580434960500070893323915744684381284037462322082548486244191450550058536787170068757561024303826647190397567852276335042507337272330121758183157285711849597538179302703739005524414966152657638541344682709686191005722609173827105014391073073587566196217467672979410545456866950616437295963444835925537704185716685205434151845003201384219934331068733280192050349297475989225272794874953985773200189121093214350081907273724910049484448289882304069998153003041063089403180088815114672308463827406902904845086706024361898654068071971249651203432809529258113784624055576712854276052076082512877590322321975453159973783656572455016169817917411313849102765433172674210590082348915974413459696624235022682008456982909356960953377285243600199927428437043694908465487600798711758864912102581383603225829056625437328051896095572764140699488491727602727646579774948626684954116346576538704335399840752754735293982187676109943574545720362018902958686272461960710245356371151819519452975178819494077387114134667014437862136920046765175832125430056218290659042393452112861938277697043454426589598222795729649571290250142779774270555754088851866524189347299809222298504839604228628542387951121241880551629163501288172770398197319250497462380477791193953442388585365849576459680099048031452229443957488440152380709102298260845191260916618556482913274996570904075076563567440567463530129566692257349031985142189192403919273454817537514104154195077352843445836402078209282816750387013498061862070897802776592263925812983259766044568219694448427121217855423022909620536843282065018915589791367545114158078316189665291002058037637210754811994709912771603355501227651226870864574721927610549123908860232058422463281005009441640455753894884990924638417673602582359945919547959287674517798258821986398226407900650000629565305096980375162112352044907556035000159701973311725325163234297372509614685652212017208375474992345780615597686208665162814991128006480002752561142918558621436118989640665555855571444231428680534700133902549743872593552838534879919066316083375187430110135923229130722526857596339666876527597142994501078743748649596771865581473052419174180094394855057007125333675420480293782459308579419348504805741096961518712943347805182673841941958914555226733915298122402509356530325911265966774618139200613289906166709722468081791860726695473414259207017463643618295443294605119340623584407808137873822674983995077969466262225796240931542059148902352920190140673699132419554008357069191209099738212535750557863748873257214837471322292359151468621154206952197325880565789399374203902286774638590492006062444269019284552034795854305701117505853866904212605393098692562804122788859832201699887116768860613956235636199419432839932035259866444010226265026504541004474475576253041059424586658752690781742630692691989136349613771364402326431128556582041305717958390481858576658761048447095287777592645581389795701094484404580383159087849457451975580029884369262380100561118803790705339558218220312931568151823581510623805264942408602582870110216289864945409953275543778216100385935950593169517895633633521955262874140024260199975790776197823090277712789206204019548353223108895558181554771592540533764634849144000487736545556922039208023477912270135232201366749474411224918031736277642268192219759861009868493326030172542568715670929640636278068627230316959445121030327609401045592970382205353788711960526264585781277564962454749529897124555438036360734344120107916634464817281775337336757034729971944994791795271907846373130066765010272075108562654866464005346081563966874862897497163328230055746292648699944593864985391508229668937736764503141268948562536974685357140139043205864542799892079429706964082171736054458701648149292238366180129605833660304231832935513303976297401954567234805366229152175829601354865367917266447305517925049842745844613632450106074062113145832499811760739344240050988218119417917568456887540190768840050575543269888711272665611253542077008107909690680761682661659196461784149738894678164241023386424206255412966154786761163413215608602923413816413410517348369601442810357871710962076018687928042100913820187882885403596456845929388798583926702949443230846788687492360485264875541329055703386397712613491745313412978534110118288660543686530976823051625072672739676370804546755649269295043910632253114212942129017576418538262307371103951662915215717684061864676395871149721852996589847831614933381786618662688801842272683143883192319782688278947313065851314993473661789272844983133072896232092879366472919698704844792467880199877886265668818058333080244196934959522933364031015414238933622336030457571484200040914944432341528563971874532281841533955864061040732579431468240697459141215277551054277362204031426695379122525910854694993607404521840535482013692034374521523985188027519752816854197994784887972864344896979923785752786478432636456479847132298962773764428180197575805530198116577085942894378041615010822205005418764146321404184625656183208409925004086081872588167012683906959672082437866005787073328302294219800909516330469991513666943734027558723949452264401443848535708099293317067180346646933613992300202611359833991781405253756099173381503054323960897142536097023070619113982765538546105009592728292364244434442069261507581998762960675782995006831224771819583766612571148655880111766629292521301063694617343681417161019844183516526884320027808526455044274860291600417286519329223758682361183410310696411840453160385221879017172548686503723169542678305257049900724010463840480077671789695092077594138279828471845922961173816627411048119964175022012557346978439729605988721551862542807489906178545500144446701802369868882239800316459913895234599254784928979517888594902251975996736442713807642150267495364269595921528723241864798118215692131643685892908395473943330572191070138601439814077916105620729118218047867514558704216428349770889735175411806546368039618792349343904670575258273811938939381444227217797288064381151468548409872138076665046876204131836634582639386524564703787658917046420051546826316474177606278054781267153463659755110507001378892592279064575769958742869247610303806567427140420427984728814301198768279869482533625497170924603783297190052240098033370060498502663495349396988026786403472906590888966012821020353489803643896755417160727239255286644854547468613984174641350822700068472232690801591402800971169669886972976028641884367617025638936093402283197654281435421587407551345271799406311995705293728287087364055294291082215705944276695519046145523912777215778365288591297574094032252621203477573536363005313745660175287573814544924801302868929934573236915520477807967635146009593973075283111962701053153452760093994177366162238212298938550294031284021480359427270037377572124885422785177841934257122367862440209675654654266283171035669567528481396706539347440859556936550956036745728675531340732294260849945788626419152464617800615572594210598537579331317572745578286838016350297415126157088483630001566755052255041206559687783980830165251652193666565763637780511180823630584229092611183096356431575400909974588672296001917906537564474964789487046527541521303333724776028802838706391658013774841070807107271012206111869049484514618285398740110290452638216920354128331281384842466282612800894386770891530824141291648359330799909841041137868766209563835699757465100456199943604989703046589695167682509292221891472874269079009944455986497995907568173384531508444979810061592028564552957043457665834756571493498211097591450665149659537769594799076200689317990517149037733365195434863324335677868954115033072111249472956388358225303003240265089097073262272791320492741212573037696929478105264072069329352441012486343470639750878157837218478414947657638183537431527926019694221900638828586240648321921588397709025368997190954502966964909350822541639440997957865667919114492678731954670968776205333990818245372553273546079863151415196216372826383897809721367929610578036432354580744917346187711854958638233663231759069068421046419084637710933725291867706685131871342764847020702628230763970723255461733071201160182500788824631529593481605222893717757421627814415541479506129466006674161183017694678420411410861641040515875101004326178316872915820850668461588201548851793344832774757764460941665243185816810241421673105094177862351063551895571897846087658770663641324332072577517639796390508162449283120324988609922548659433712766217903596277945772395903666819067856760259933019678924387387236841270636820030037744062214848312766592238916508858380991524023893790349663300803335615553865894628531877918313541001928185562066582643652418380975019916190054142934120730582026955250759828966008183837612267027934728207103259106971629939804931675227545873673127613194793172587518225186625741641136666606557335324178239512286638278973488482004506894274974589333801471871254859349442598047064921265593970025470555268122544695083907714723760393931983792097957319340342774073045186756813076843919739326355816300690903893130772811189106511225361888944626681995354833312609868977276580111704911152850906117111044068527327354492388144363701687579393135274401147599465549216125749329775435918978521102673931783273255940285078806553169735473258341844666551013609571137901310161854759588540955033224091459993715545119118860767255605116050950231916567194474115662687073775034124986512960459749311165231002285912852416142341905604636139991716067862659578258251355380165494600168840394771189488731003514841106068810878495499764407084906629384960735093090363274426314452382244613370108281496355446970088281926796253830680743359691375075585044693386590720282663603992708724443949651293017243265760287974838186417660792306825127323665471417358351621096624848343403476392792657354740014685796784563626839258991984147381302389074565088775351780276383450942529021928868090604534357069881522363744812553098719087477952330032145127574982666808771004164940628610262786241521282259042618105061575353638221968579435773759409592673094642579094674464493976124766375727656450091061308442305386590325782777433208309165982412320119462469411828894892115677273027093119044472735571328742984547917199096690329919236381752664778197478236006560751043716492924455840825538722791301304635571443852756707611417894834284998594067688456444105867351144811427618475377108013001916121320426493499586058844677588375726771757372430047733738569255391312493608333505661337441474103825915068112355523833436929912213266413473787599285183005166563958606034843789940824170923843583082130578854661149834531480483040145156803445286671820739507619767355570873275334772440222233789677884460717382043599188337712419434748892740557975435669731546623314384970820435150553046619152629321817194715576579896805618075585718261606865741783652597712608634552752774419588041375500040797874798642548177266101959238551499310894082052790563022444762392547626087284908590016224842976954213781502863550124249062144801297038322234216143923073415399160518966413547666336670884336250019014037008640718917179274835516071769520042213176852753088144422811101950760042212605226309092686718459046343065668825344309211680402326000298730864183134320266678840714183497930984224073432448193528257103277079706487819631200385592969438587740581701874283545376743200781120623223004081849346181520711746061010249866138247179265188107839538957568706640373622735171539852157835552618585149193463757874921918901477409747936344118107867957510490839921094462391756222473805303758988181815847204308003474752252757404788853301070043740559685040047696337892972755352861591375440824880596039633799277883975130804491488351077422380636766088722501858217696992259301806783727980258830976023920330119278425245907019449364653593350527393546907722824568531032922579507964676061705666660904482680428048251096541056203820360525900506978894490417857421270145398599338551766893203981002589415043354012927205711345032857189709646346798678388690517683984430959126363539295668484680109957017609219793431592826857880420617089645719134021797221527868559179720411576764858320898088909019439772105190263775429027878287891908370599371142188589163790526560601501177364196339941229604357585686528598351777030708639229976712117171405560686146705255246939334649063591987975271112788636569721462383813838157608383445425438247392268277542279575236078729118196470543732569162538446147255728045252479184926664946233863536799009698497337876492789090118747847266600553217216218521832538147186592305876710775090470440175327973606989758379447727636074016088722196823346336360156239794479942974730530828395190455584879031837012450567147461633224024768999160882430272748078691611160362844183882551551030206926546196818262096474449793240216304108683017711601272696818531783968459090003835678790657918844047808383833816027396182418287217401711051281636068264038743516275587263130493194235628048424510751138860150415511953081223739303988303029455005351127381710438253117675461783534762403044545883778588024422713548152506501688875084970216369606728510926884290042135695082185411504188654139255254319366339558606337108466713309226957206356246793067653620326956279806056486540559939366868536074624582217074003936957060399277556687506861489833898259295428078547950054636912646894581952143443101191008870680789665532712057138854827008994038235943654641672409273863412305577123992430118453253488294397758172626383231583924584145742946701145144436006669748261432535203802348267519553186195872007159661271697666317665886708194877101147664859979133253973633363734563458394219481851514193073510009288792827818021845131218951347595948066414322052060982121491380095769698826672295955227964603691208982079380729373344979533706598570757612677727166363109797746114895326159989295507472997693506916091327839250157535975544991724692818761842967955306161637842437080892978425464994445808101350207278148416499186738130026251010701273041038328306176131431298779919369447437465190344740816883173812104923156426277314416336778249504819230767394201148878238888282657080466222641513631844537944255496859529389069248421381689999815371961028830168208903710046799361919965071019999598708660318331896565786640174230608988515363086747152258930705893908200049405912212009646367537056614721352573417419425433876088147125223727265833057970516000691902641810541998274187870426225756933760769793058650900610947858563185741963075677700327756638276235988087545536090671361379568193729979032103860814515817769445365998185139308662038827857807146425343354697848658439086151558758582209933128388872214263397400595497994110840834612979842973495129346581063919135529091657779065959407842873035345212371639107601593982806463282961100607058272759433054941979046151246408657487925968230268805455661495267997303452293377733699903401576894997516050134734068720640207838413981782930972358449346731016623336887734290315162979723336933788293563226086921444733223398143286548466437916960167672523065491798864934013677729324736747117179682777089369977216713637607005278909785254333819113482940547191277231975906477602722369545835887405642340206604174801270678134478463417499962400848426399292388420247813941036138620542033516741755216268435056238197815077159000961084515307252859078810321372450178926374368784465240085563402467368482962931258423236519114911502794681376908572354961907322753375137165670679684174531046067254853453151004658702024435680379727303828994781669958857266407451970703417273022497564911963503944880265357801655596171619964781402033559443569316288683231935044766409702295257953894695420455508178615734956950730522535666390652292132336176550556037743631479029197391615918504899906504036109097644154587549838410965230502272038586939086735462234034066490259736361545751239387467971580848092524943389571683009843047484964286940685109417731202491634579589947497757654124471463570832162677230104945041112165734087512459471153423405284414977149580761682854131164844163215922510843007405638476010325955043337965833975481350274669535151558657162442783178448364409125555019153885913093191237735038067274797958136611074801934462478166754701208052648269996998486717090854647151635321397478915972074682079488637195490127889776446138218544165894900854307463760095901664354708914135176550756772925468158470865794074988843046357527138758555828710876350488719071174987709199014738389208256313144617155282224779553161383462235396438095163384393281906410915168169364590370728464890601861683076569109114947408055560821098087050349581089517436908586088907151133613642560775756323572793431132546896560043045140168079704863640955401516897645439238070312365418485829597084457394509063350983385211756769689273707008690513777587634245999034531548121703009575641370551845712663378215264455385804818370216231689675427109251254822418699857756546592481519599555045027764677245244713327172808990150332871531372464178685412281456297390208585696168663294402321161415558147927281700852294819468876732910519506575438370827974022063615114758114341916917868235112627328971070529017009272573110593662778402063633929852533464410430066750225653524535302957704195278750897769329808366361190226721282211873403750972804169052043824274338349709500724049087806624107085955318950909840440544882700584881575408774466488388054028035340961662184495662256106659017133029420517172004579395000497907233378498704007043614169252531955433224755860711258283809667630787793213190251642996678611122127448694103776257834748095676897749664160132664146602009961380461123187953189185254914332395373473667072663593637485559203909613602639149343008725787674439097967802985576964510825325598415633792479794402366738140299102872277416758532871995751422301368370200989888609740110739532803691418508191651963082361024478424337888907488441048987148265086093130369040441787562640326277623255518211029611818215944577175508242583254419401008041246694431633071149573938716425077295311883088876050927018804239685146549485258568626396661323655118988093693871297293123108294418415174132609207504031108083674696836956823434780012244241590954957591568764885171639477668909607690969178934920150097246659643287172297492321929844686847956679173027540501393973770187107661432245452600557403258189972866743149497398778499914474778591804373307292054214958934784310656745092412786747626035801099870838742166532483376205205279109322494640082292143790261702654701235107501143097993428922088332500025883401323018110585793011699471398046047470715518988069546221220681740667518935634301925447942335363255649070920931514507210638325668068476157927931508851307124267830841637950208235400117238304991754330381869963542034376192241473601194869608490431281072430025635385463277016340802491166160548865414858905500768715987978556658261190343423460729274756726674602116768225157261651654506992314300862575640655550833691331787661975089634239034018946779993694014000677157564718457871705641605397271907321128889137150998160163603672999680912647905265543184576943858330583878703161495359055195411285731061361854484214345702887460804239927432922893793636969355190374499975717470841288890061769198055221081563097092306796567759090312694612132013951025882316445551164674550497907603144935394709039026036569206389986973729600846158723247841199970536777627573408957662717302824629982392031480476739111025055309411629282176489396787801467722352263642795321224618586685002628292838941735409048699021985567193418938283170508030069035776104542998676477222330054592651485241746743792570518376151120712848353652412515011699070912680784578323323594642349021787945731846899339539235446239664606408944996734143687808011883604644739199121546005817738702242545109322536203606014785538594818202485637620240286145037986190446023418633407135173494835446629264340969539849416031422283769639582104645185992975294910774145283455164519091051003914121551936303759865999348922621405962982233471182100435644881001099969862553711324136115872494276119913891893938193267887859003774020495558076011823824161907902024631399804220563879822416746634521411095474937260421882340488691200020579124607093232675676055116232217128454502631480654181954749675810906757612002583396150170514078803393157849370273082621100016316208163808921116304311555655376932519586984798425843119654652520800183011448887147044392256359478301126595926486827079819125638129731585739220314674620011617395304427381881114886041284957846252229528085806195366935383830814473367889604661944433519260907729262990118837841672364462297989669923004447772447797883890126907538801781276902860063521603394666834876752368428099717807505871018525125799083347227751475662198086806892769098592879295771097922357253690185559533951651507572210021451792977446243858002354073505886092141434766902044816191772193355532537699597460204182366570935436724430514346448486929891104235304088700775850303805922623629062481244023923203341317566719851216960460190996667971584353963875289221970651760017680840198358898829316245524605678178047424773339416475478869297144727218100977415688545421185127499459059642857358122911461128876569118389253835989608548331845205391240041999628283080132330053368399293451283048020931937298172172992646765317290482066946502863541927631339842143238083091240594984004231178787042611850859659612805156238388725721581771508801728762777608185757651633596540456675375922664737076312770982367328663417149782901886777313216646825369789962791513370003132555145133192676828821857508240874568964125548313937094567141993016728510783806330640998425064057702351475010794881556186073251249295098152346587205145722374153814090037409389290911524718383476140842824014019222476641966180254745749844670280455687067119368150111096487079645355874479762902200951846247130362457832012322853743685718471508380589378690975346814708322033928423745672787524001338431907251508511582741280418599242087088058643329727173511685226989483296179326293413701927796921102618065773558749900100840593395763071264521299798988693982000874425545730682067869652033163836645041967960085218612999669889571073988597615539038585245041888036158847861738011341299004089450127547857733272095881508722992831826834690548171347692796378386825944708154819681850193426066440943430414864293424048714457038696451967330445912908137114362063959381650312292187985242808751111811492548918114526300199262538757808700271348141028345065473098853275304318931563303023442619945375852876576944313774658215514179454613187987098369304607126240605120754410668140928325461737433082520787863347078736611058108809451344815636413520203879712328431194933590397368607957839182532894407386019750852071286894205950964630080110025693184445003152221401770538804596766771802463853330038694990536391234858388531844685587346463512153049893703323027296736470956752354163598494688052235248613529899658603837556156806073807646762185082163292060340671809869975585614442492523067774078776629719756225516279555066120968365583621930861117052122615740499430935562168434901807339024727924593684540316986955448765244899301550218916535165252133483421095759713446569691286005367745993442254002554659907301913265506303943430205780279772790920968797041864536758417037997083929779886083180409686771472571982700270658928035574508733607927837970339326668471180786466927074461508693991805470396839935807423653621336215745274603958938741773859247644987848734808386619608358667911240403744355523213183497999851255815052855295448934785871488301324883854069450677830953408589288965130629944061271014978054374688813633591769996446192237346290873395640750782772199465888568805557425952990018701118907774266622585579591720544462736142475751641223399772084447534917898057944924133487531975473654636983898171771413864708200082598174522114067932499168346553945478856246478471901830209062686555908981309019780502774429075539435728510376616302381352909154355251396478068269983214635881302892641700093859614213153187827210135227339962004099729716914722200739024911470374980239107960721530436778478137229675402145140486147558114232776192174321625325964075022754689975963281943324724349175723672114595603114613509413453359418213305953200683277528701244108098393110377495798201466162763352857138042730333728615158441252440247214857809850491000651181987767849546180941728536508660919513286842670139766125637984285204869325387641791465590295897150779335498793418903091035301354384677844161312716042727060360917653855558377234528362784393830545475191999769967507478944536871042373688124471514871040890364733276738666604463096694750875073740168215181647585889452380044931124360543202535261718379373287757961870699200062981171807781826830391946584585257009605942223140463349396477377621320370989718573945795559889148290094844406021639600648079545544865597934842608547138655496123613242436330558767763548893327730267501089757671532115092304115161585028206487720910858030553019882059289645146383374141061955679886431305171040502793548892576868195682098575276930213868006210706393101248970117733647722691880108180980883539125163059143379303385597406117040864241527634298582034989189281922640334911550383415158658980670089749162212254508389376780014955088492193605281671014424925192059821120811228512565821372990903649480540779927823349006882397103964297009111690039647671734001182149463554809560332520272523259600762845471221890268138535567204038251783687705148568708719873189875654145798703135433380744390690149513066001716781261055232826698401663885163857827722467716077946543420718364685649366065866659610344458637283398468483117460100937694513434582609071206812508231013856728094791277361190213938481703006537388728260136792545559895150622447842877234084594368334954607561540548875401475633970238819972354934642304432164787010503743130083835907208336359695363193679471509551477459428609117357378669885372157600814740920691903172799422741329794414691517218093069209824271963417211955024603331600911605306166261717204414599342903023847875798155824444669279955571132784245940368778409119951224318945069066890197267338911965209602674406708313207512678513823776592208705111876338189036574269435078841178824499169478590522639167303851605464882177128630748771715325080252675480863250460468528374451795061976750017022338449508991812999596023435227521596681725021361063120307271263434687632513501173923449143135758021697022304952553782536536592928858068701916303756026882668800638781430822038444824288331239217205041192298818041267826138476137201117987855049306325842470488315914242927187496810638378284460033819099017023618304462506927509207720023592727648139370563456400632801774035946193144208332714526756463716953156047792252360119914115512949502683640058665236786873753388579503618042230535402415516549552092161519274408588157764557548914371518860659734666777269860151244630243479389078123365318095299184877266251351479015061736534773219378888625829508751399339859589032236836235484430908091774418058903832324516370728276446669293543315804832506062586435991335812409855931220205739224461218949581680193426017876792949187953340510802227788739434820834638877482392782722011016822251565984300149864241577041903939033900148046787631350200446777754578053103644401729950174541771555505738253733504489352793308115741843397673831996201649280378715221048115059915742165661988678476921195269440170311598494562653930056379544234704135468620860725681061964953183777374919982194457765511481063287799634747687805157347580488329410207171283712948479349779381539236519293295541135847509740808726225950675843523581840463951190357801749039230867438598325891833336238323695182950247995300704754166584084453976029367271679984762615963033000091862190060878993073059393657803463484083448111299650892610594756768933492890796226783529758542204804285278278131715439080602131161799424067999394484129988924054859318345868226838050046720270263202367558247839376596128684223273712675765853794077256286443110927227515412722447672570694350536024427986816186247491322644015736892700558370512965833508552290264373653493301954956006320623699289984501088513698468960049397906840528309547584657733608838443438365615725896293559305616424829713173662012846529169650736931123548245483978605760451301765527990974599291858835009635065462518928033545369743591711984922113595495822035830255069338461525381420650511395870567060053803659239892732269438442915622477753374728019299155769601569811757746895181332684207140281038864812325005612394425524881354492421544318061403159425672891897867211111085956611511318365774353696098872452637246610121505481019201126927497232874616097302944211435090239955087961025192973195102550332607464563783032706006074365982171835722141989712621013480721706955118405611940412226208957340154164943359447206034597367712554643567347657374940600170829948289635352214307396635299058311288404354654573417174278145913967030805642288840787843940313900997811518676545551683113705592257256606005682024728672546004088558446432102660542049790229999409247268361521449595945437940824966717817412232839152182087008171510489228070069842076543249212574769509674012460962742103663745098216521791312721142254646135281729796832272165986356498172470778299342833341970845259505208489883664077000606640122222081341856119313249622313217616353290689593582684739488384930387731099738084295349421674089408506801485069374720883682531740746431445686701933245458524477085078112646876314031475727919406221931345863514517607909020031514674534964960457127568021688736861358862687015360912395174427224615527271142044478360569903564597126769623698925301977212435075100958399044966981948543273667783846104413514625595116446089636008448562912187620495878446215936391965647437455883755601207077002528785211954835874889282809682544941641988554493008574692206422014745315130308353564638418739944732614612835510712503843708882722432156520393733915599984722835707653117017975154172636007367154039923416491543989657631368910690428131400210270807280105444080178545086352760069489363541608675074023958294373149319930570792605957728711137841791348776195230154116178334277590380590526617641004336135219682845465310563429725937021351808036294910593574655160983346760552254749875642180947722816237390428413347774555873346049409171588762609067840476760584078061169841169457755506266179482158764897461705285023048748143637934325078333461974720948712558393429448914741118371627190495372212556198517302932689729049298997317792095146352069484429763977122255160575438210216755169088570403602008079745625420121728517663022511011828030658635747616303088327109047025463280180318595053050337233074387538738406517945778483917344788478699324812679657341054324681378626916698495376236797146105700988071831358757889875797337343785200138033601407075389951875125535088799981370944864028330606774006739843781575286286203336812191419799746669634170365135045201097851170753332315398404283559736998916041610403418201465069453702938919601184197673473992588191293234540700419218120267611109334843969636311001633986933615045033908228346409492041951144502236654833631679676721943814765507255069109068960985153674873348759803748681077443876806089396415310629339468053237238752793658460837364097619762157116614767858449606051060137100472770656576831962567736405564269687890066317235576107976051148584345957826096109715622391961909751137163244574775337242873189018521927831461816386452966892746226838660072214993624072298428600048402200815076816218579258522576305414964343930262557630425394443024043556174600321415129763564515103921750877508998459424488569504714105293702311072621246188580673727553180332893784857616068166701980280007956547211297022363315769047558853009899290126440609089348212646666899720647931711619520135313290726941278175135706199576204597607691476948072292802733870476454432766539963439133124422239984047973037925107609162370367220761514426015870764985171496477819099472492277402213444213242393344599960688178862642432020728516361757319472213558805898610457551165225121770713239623014434105550665573852653903984877558422259388463560157768527178719571703402549993045702607750540051959289824061677850906294802648792825801168421768027137381117028437789627115580174108284301993978999476302356464477237179756193221830290399868213476969171827824431299178073091076492751189288362299369820559423265227150869763507354092810052817951853485945369048478939403870128311864536221470051912574068490693311233667579617163242226413010977168269979773474935107498648437228212017880059862532346743779188986554707160951203144105947725638992412429650484869098184192614866366885501665275036982865628561661560898962990502212749574281121769208708720433368438134530552736361725317343040573202475727517283716370756871154197340793979021515545655812886118816813860262290085531236005868188376703092313051808935471466960556306471287052979143248670251755632495678504061681054922431179925352872167505914478500985623836851453824096258428351605286168545155155471514121051679338840112361831535630201169741881432807213151474390883061037644770899754419548308601365219535999618906205063570318983026288267564792046731866848191107600441736583563463949959500016443872354872110040864825762800842596269557056369288867329302444061106450120942974997356249855293152929423257484906533238166203134662785591535551920735526596224291059566739669760314786585832354812814946893135163670660674098823107260000029978130799253027463284336654170428906241424489286932342966601330166302487676281178899716388798271941566448136517758324350149027874648737523417612172325906131227376314028167322818731781613147773251312748695838823253074490331634448091625964202406823678856466825705675083310242160949877938130232822885473784177504034452186764833355935295798069731150541784853797666271446443114641279750003291373254509748142844150603892984007098323017734362462279697986449855019500457025377482850384473404609279019727667930814172261597491899059521864072574591687552316039052627967575607346175056847376686463203218406847558222268079660368585177800521359158884890647766122461185704594904355675446424257625605930428249372976218461717229383499936888001567197906108491546458992396108246689280807300053048872808224508206334394229142897760455948265351158585688767153408725126132079036413228913257991244228785838037003005318493347290636835630392647025329005997399805819732422626111821319501153982397995532429252924997367162058858967798687674251654875293956752846285063602218857685267789793959307282337204040625118475537213247300190268998429621602202944410956204268881071267141850345266507283285261466155884544140596702776851275939856525756934756602539588125231571266079569290573246827487128297149194473480861973899590799077696724436978625157097809877473544098171806105728317064123322565602051986340244271592360034983814336608829139173795982443279762762670951900529402292396713319019905751451597224535539614360746706872754623570372672883145119545423956521053333323667169438047497780744691572886321533529137256043854401204504346588270527716864505853964346624605804756072977859599455768228805230300409813110270687293979725684462937555522400683178051089048615855094099150686951201330300513790873801986451523009504028298422720238201265506111657163570865218430115022599473858581568903317009961817897971730338814204331574040384603619335613886702819501345652350431367094972943040690509543051536969694242333965804898468454502484479269550039562869073345005922083139895667513473503287892933091567539909495817759915496825877023285283992298154043355935056609170965121013287570777287216939073392474456782567267359443086774058692803273423699685416789545680225674311708015372532006772161811455809167864152250756277006091100297373566231650522418446276967423932539623434330560214364524021844533171390470822332410859499356638847527043305330564520026116410499736261517118323580428743266335472907211030220097873050501175016704815128187278683125450753179409517228502445889618758941382274046147736155871504103184442744242066748598301765907505059859364426052721322464060729687731815864195105600584051555038665552780542083250128629271680710886300781252027694794355954785447774521919247540582462559715895106919937980058201737359931667798015552954194732639713642143725188749542254237250982029364458968142209431782837770361678268581785295654081197761308737326767168596670005373354636568889116983132285355019512503736136703194815603829020965698860579156129235745391222820454362009071959212038572539846966045330273133989955702920979098481739834789166100134788005224596529777058773397947248542806458820847631543365523036853316995325426337446281482950650717743359012812883615806859426542235770836537426845462234345734165023512091834466501982058484799134478839617512128208343635302276855704045505029357310108228050496283263222504956668193402222457204488852617350536167627025493981498345530975602091875049992339794893694822516569996778181353203480065913920712024077426094240815430168265539278176819290446198709163550153881404876027995180973879482462641606342206042601497163016614641354232092099687592279088585176900540158341028677859614758138420388717948003120450515514501823408482381604484712164386565272678895991922338910699493845146639553872218649718753676322642940435430683525903466587599584290484549467696736184776619836461466784273848817656148387535290996811620419702427028589919896416455910909715771383803962863444179577539721630597255669776787069002680305372250253161988147822886756444262274704201614060003808017000518535969436580983843894309559144815231817445052087153203787747807694756190335448618660868547382419262089322694321096332715543786126172310447814583721000800543915041504957260358808993514412395574141182386840769942976974331832983023395300175452819798132486535849026725887297096888181178971398169449266739078590916501703527176383070141039791980436872993441346292649980798132032776257526529504309698032074407851912203105549384770842421617642490874379943858913809166446394336442891708030693075680116824749029676061895115685806763101832875493335107798317626762866240957706067239620302249896226571490596050574939322852119870961258856937131686972101128885944277269428421496016103535942421868056723349798755072250331768428495424770151282489207230639869615118306465072030426744906065499055207109356766370150428272544506064217242303681836846725041262705668958522119697437341843494030677305179504647435675142700590194265282593462881918150312304806514199991904989957953775735276140389750638768492484323752732789843257352836520893364458962154459623884139772565708042184194671017848883160960054934923928758951320578924369739290157346826453638950566005645052442877503403523304170824395936628985294709685495155989175976800006614833773470300310410100404515243374603565905739214538918034142211393749799534390380002453824842121966600214484000596675049343891031827119110193359351639119409005347742920573328852509151486743867283474363107162179183748796171285582632251894366757721759651734490659017024308482051551048125682683757997047971225379720597398675391610842674051063769145206324215903223947078796914389899764149215914107270684977955641060759441103651558492060017513773083088169150744401015065382195945137098764407081103988165775145936525400349826359669964729031475704577826503036728500000416476537896260406476912073809734983556918042181455544387755593499655263504521845009776940945670759297353443307416878252077537365269513408792703675496304503902077065480390957701630866282780596606961618187798277616936228204794282668009050861872643959871662688649713079383165884222465842087760662399702974837338452934455155774155743677897626126470712420848160580970428073587048534002081772549818051946535104057390049703630310349721713056032839527967547236518444668156832577317759894601072966068734886326490482588071163903896696021134699215625697935532353332977547592171404964349696965569545517584801962003838010648604699830258468113929232233534874545056772076194701888569712379484840224812280421610191796097053129219736175420547771007018866441889195640583464374907384706640435003005773442655586456983063927595070299650039942636621716548251218897082236783543754287502408589862206341236183333756105035599731873639568070115442268129593541582866855166855933937101860767280655120071959381507144906653506488385066216568477913040522948837970997135220760620241377026113442524357684970354329704317635835684907012384451006062635722461104752028255964110872260491228786550308140660627278657965949724802644681552971147914680591059510658642504600954733335368379664360432877147470814516801046246558541121459066381258678318004306923065545022428838656423839414701177808049425787097496887234021220045226597304996918674254893370363845343325394617748838980096250438872998864458980415640894423879531044519263991681916288198272116031112944030926002864286498498247015571499493989437480640649803414381125964580210730042440262431057947906190220454238917195362905653306431224225727795096890997577784978172589599922034755482305540899412698300350680672619581938226437375534786550551064822903832935762516612986877117467390979866018362574683145583130628349114663531214421831295202214504341777261889823463496419882882729111807308142624955600523485427557966105506351458790748791432168730962990452396351730033031887145840477093393714873041051957725220528222392249555869570819945561576554450238634539504261487051761467662503017303888820305974729129484709522538483520580814912379433731604804966475688806662981866551573291131782644880829966951789536987499009133026283337088693843729029597247658094390112297358689691852416146079558163811528006670691318208066972131169438482300422783838388602293321025349352923713690247739021783506655237531401328356101391660697341987994344936443521220189711172888213209728168201041011516549757368212557048328714730149923041577294780608317005309239425363229562605853011355034844558958776384201721700749068992994016920005832844031660297014558078411546410521966967791661876409106530331807116817148262145184203401858542882936942035656717815604310995894484539848357129251216218402573517134837255494184934431296921264390304016742236624802968423005662858871953793944659213382809714719515668404875867505295717073795998355900384188835121366937457449439809812492378102005398851272704644867514306520862927912457965462879634960025516562670365431520876715833528523400742391906167348288996143850148123709825565068503972640968851560669341955750967561098384729826437119419845447949968736219699907911134620365025305480834542690608639776549969442160612638394015353868005068606996813558300709724303498543694630101458676968354726014864657901836677944255068383145842453381684881448429035131336117340719650137529217255209366453125691308007205999862998199630600540781976444494773989468033936175683145651015025310710371187475526946467478176356533134636887838270275189379811857417933294084326525821517340340456830810329862390220469717673358374718511131194004515212170437573150439430330314891149524480129544350512195667614668822038434398599091973960563847801458134051602232038965821731617564039611187850344781994438392394587295105852576476156458666619654134219811536990201060035770014137295956495145432188207488879998899623010275676802635920609675842958235403836187348417266907904183015226492204104634445495289750401473692237468336391182672096431934295028533899870283957160148036277482186011228664564802993669808853395894455377398923645109434162870672557506635850220927283702098641210123966930126916903122092629045932765645382109505722619255953591352126530107139057878863344049564186402679777554715550660873507929883825251256028063061790913763334820834790782154624123668211405232413569713321340342840361088183581669770620984764114000718210976266517775118682489105623028041627558086322810921175890543339778014108203076921119912760007008393999888491810172902836813853259271755142540245874176426723075599857166910287496622482049853634670372595892799139573091220896545734527141551582496455485967130977754414824651913046434302114070995757373550769513343149171216648475985534224286522776580030564034092385356144313433715556240735510862937673816264837054086417436621529036109387519996727101942413846060444450759452046420971018137236597602434748282171249530472253227259774856058798410274623256042189641998520449403555845850008674941770762591909117814427441655571070805059091776097433139923738570218374156744861440184657389393943120260734705947117892633080200574258763025119622351339775115724931362291943396735430939768912195229649893768907499794124912951695933616877177865264070169191381040149167530759962915759071941422850944267795995603095580313549884508590318203214545925547990603449124204322536727211273282392569242904954907946044242796009841913136640815888962991462833232140057484202798636292495358857435919426795723394053012160151030860140706826666204452875954214950948657510391911560124050397318231784828450668424755861051755464278411141630788828215622679718719417711631996957443232576796413574245698001262797757406674825893591594373167482302619785388685361660981309627614316918941151314343670754546321831141320965545607514550470722689908838343167147973021833150620762386159255382074360285698995888549511437262933943675131236288729064401058743132062404611137229828539715497091910137754051511445638494016908338568438553504465054414796805566916630563337755522202719751111954483031656550190829202980765142185312713934612438346965933627175411023118411934571804368342041220707541255805662363148647360881405879996925003602749255400724988886664955543846053475148900791148507913556617001271505074066579983651331125717433467093348013776497707077183174354734889762714074033871890539617647220089272072358201764650210969193546504154769260206937414020885261031327654667980918818136971798249401453267513298456827939357956727773517274451673005336063680697578263064107584941111513846205013567407574222264015215952073644159580403619378493825614023066909566677735638632396844654848283177965225513045544254715117425888671276889863415178371131347408653400099863777972377007567918010255398396238841546818497074636719686828752984948084369652981654975694547829279440980530043002822303333918526020541100039674876170768916691449068091045406540368961116202357830310806324829711869003869121405457133202958322861114013671333830140213281696737415284452639658670743303757414584956732688321890192579489978224310509681323882245603678605947146160218858150576101513071822179874886766614489486250264459807375601176394951215405732594185430990170640609597529325635735435555111131608789064575197446849260453211914879660033057506274491958495376415749441095085572580147020409802238707600655155191046830007880847339952929324706092357776378728146351779237960440949560595099332456123679036941376585073669528373567729837560916319416865176305521135920156152786802059685998292450490300323574011893118579959320598682952588221964544119784781930365021757977160926047379993696165499153121062918869977092386877443786798256236431277454922104675870637608023121125090783724951692316978921259040245506811296391980794545382669627103950428532654783248548866992428777674794236947205571245918192999843601164209826211168589697207206933387624744968172126389085234332434287449431866219800754818125476135761830898255487227585569454709104697731762493803635340174514924320001267936099827727853403426689572307572459217781530340637089305435556207681765997386252979241054452695875076865502921030016483730100838314542935280856694598547175003033884357247319378281429152362632175718604434637363436288122144721586782465087993868414013088534912601206264813157678140762462108634793017717485491974804865101710963407957620918897412372765269565478050545260606295358532343597249163330132522801616226409684522498877869626938121040419830071688850246618868109056041565460733643025662219435746298482768848366122953210621188651505863441853740676353933667896894073406908821299172302603781217428392121131052934696784215297564604311387778534548296464752054858639053464164369736588544407367857360862577880977019130156828192384745874208954930779206888375184606978853687172470420106769679510530010834604270135447250430388140827098928885455304391926658037092481312367432765420943151507679284323481443348734232017184670455169097028887854860854335742131920653123952290044873263465585011622665716719252052715589398168219932158617366396398627573962649996985854258584759710324400918680055389111068203012627437316499090988919974950087394311263100989579285571920716989297924156216287822699022308257611255139647373087586877718971172892047078126845154679292403303343978940863878002366797417661935257107630705865251893046798603133495747664710062330152695680476498644580293427518294294758291102198183590321366212626382326000898727983890270540100133324137646439467524401081181296995432666318111588974942669344805206199552802784185727812247604613512436723622862961940590671572116243981000710873061192154728674790583968626498402045125361957322495408658396778738301687817104921413439615096847028028366944680903707816182963298867742263777394190628350198552613575062258027936432534700931981881202582614917839813566581343820587694225856605424732771774779106212608036503409711313510942988312120654805245824790840192864379337906372832655158406751087502509514639224075459946718482881475289312767820956202154505307306509932855432222083936366087850892747119617289508730390533631908647203177265249573031901081271782145447335670810327047691279788413864323424039920158440610757688851661590572082304188024388304201577125101889367691125191891874244516865600367232986962096159138368329893443874255636467773783790556123612782192296472191635294271325380712803230471587678357032538151906238097652480709226724717336927950988740873086434405520250255462646848113734714118486615678953320275133742280701266484073768288431228261322986038650586474636349391069948802880731898812275710520954087328455080547214017371659353223131399719723867391457320571281915267893027421520822756494355377236442300768973922210734453980344718068438303751637445629541495229201272959712668946304570173301530622981966538264200183448907097645406612813028808760887657981724489660682287936447352124247324450796465716890718910000578438750028905311317978062428744547881913506320055513637356921224049512429026476214930199146089424784377992053859395302698609680522284133743769988826228802169645291953873827488499586635194045519654905674620850013836218886009621549886702447506701067834707935881800873719579345228392772784441622971583369767059703954094690717324184326894861026164550493127438387819889203138957501204757554952410741300302484210868040978053698271576136328612058212942949094291633483618460733169808231453004045674094173339893788717595731977857342874653104206367711752112931711027524058630302116494171935134024241792762692308768917470769067386052778919930945748401230794970958269571758938957812637566107928439291216081422939320066791645991352525274406447670745198469554249090687509001067412844998168825446117684640264106437398864389942779310585770682223289202484715328676365834305601027016695295564186859299813725000824965177453870130567188713900500880156704904929473374615140687952650960539284075496511437631578678773230334202182492877670592915536234051357751460592247995731415183093365320664768462889362064470521230838618424053395760518420122237125371173583067726876746638689891131195977957122420214816542370231406510932198399136774379131124548895227454598174188306070286873561541947520510269759986208239532689843335355186744738513384159146941771119838531422098943538987209616055553036097932364163359224870973569755749104524228324140928177751219077584681180046078209790306620782262569326008676606187824753189617545481806414907353182009583888305216537924081835372129094200330473363460064788696853861515788800006272562888423028678969156469742637213576732089781501456165941236677754204157114266442036897012021687121442749363321096916045240412155536284810605027688874268692694168766504261065260306599087618592609958853028761063611825323495652403110128851646173819290192804297670666894005949717834814885670578821307961856308760191303701384304062159553079214512255051279867212749978693160417321920641980924424111825934018293335867583492050684177197879331624160829398804503421662734252267022812653584401865005585587654070612511201799119188271692161949130375445022371226695323557609255492957918081292623262751761049349801485063036223667961337948220291320874740646018895570763209429147075858334891638556723584160991930872485183491446144440727315939282186735659011468581795054260086678791193008870226490351564173639573755696032354396366458034975461511101238204611412343617112853166811480809749019989187095474932814976597534127677628998276909985549049336871313138836501710715567730156588211679935853712518885821802164415290171204076872138955592984418924439880727538505585157284930937736353800238709326523534471994968636174319750048397184261673562035100890060689079196654446113329710764796156965187164230017729011692464230075695638320937050681901823590007142363832525439629309468420854407994719788831163349151711885036962058052478615083697803696127144314618176431082352302835870052523420671737571951382149154265960054934343619030395501685789245472953004494569408908615866460516354442415976643135719753945611576718031593019889110941428833590028503755016887043332751979039630776753016316822935391990505721742274457559756928164877648447721225047411989035114176103263643136225204927656275634410188398426959728317769776050643791372059272202526715648048701177910127006468188117409857906391206554174658207712256046512637314882761120291123374584851994415658257365873806438060444307742118975646675943549255989084061441840387403520986762142304387925802612431118176002681345611311865687988994319541766535803050754689872709065382677288267602607467171782454742630092825019680327087061331611601500894555637482269183673155877047539662548789788913080571324821939062057119224772583919332865757802336177046753657056946071234625994555585329008401727449681715603153522463323343951472759760049681738705362261946711171634987701670671564114549837259638962111828717930428483361120955895850393373410135715302432321171400446703168462076595154506832025861427493144647080737907625075208854782537590984059491569197398659507929268365686973224474439758564689535285244210559804375224007845913338373368065254458523670281634911757183629474471067733689833119747547961100429703011046108080110368523028511127011345745983319285155932437072945516597811043743328112877695646998932690615050850670085772985496002870753441040563316800262128880552793656075060085354856859218737499821950475789555535455774332361657084707751548981290983767017730222035550435023387408910066321109109414528377124136015386690561977278215229411873440982648561265189195931241000673077285172445619121336196646171121576402108066895233867162927949623969818507932373148749465513103534827048514334461561084954694614442080422479872053190066993086839732584085617156431849447180948506994477757483298638095160005782353441976115411407430203128514187163816571083222144061160676532537923319170088085983121558149697567773048460140177178718528486838408822180968060666916971049738552524526854274525949013566718465671766086770770848026732987566700999161654469662055636933927212054085265376322061843845464928573209695241330141467609612293312119577045054748960076344859224321872939974674640099875244581670451217498283800386598499548746551024891572262660457351876942827375537736389352203122152230743724585909030177458970776697303687556978295060489069389579470733929203499881676938206217117959371780531693506634585686170280413573436178408454479267221683352541705334513490737714713483156373964832350019549914299818529194234618860378256394399293166674923612959970829556584691926990870201498642283727538653227164214333572236541090750120615312105755471895746758868570292549411226458887759625770542762518609467614361253131462068163977078583150146492560084471491461722136338215364938591047673557542144616475770121313825882879190090558685948023238992539065535929427752107513429203896061198294225421537320525204085436921308254574977352692699780525575778231797627489884478559413956696945821671669419127289054039673878282814437008734592262693749492942904601318788891080864755107943046003584887776849979367705737726560304012457061365750059026126458038740137469816569807697066361310451720961458950615469554770123064902522311539915636705846775598153425275772222589342686476651397161125169647903087739405160565195211955611550961359499537924821936767357179448394620441258652338228674082976468975977942420594213394951061449760733847681339463303425867777148958104434901002924585954196083309039812831344440255787642281657036843134947425577697857617203019917965463370106537537084757111519238170723540599883971530275936320524009933611552355027092732633085122519507126590976729629839563591563192651720957300211605617704503879987518047329763575847833213366474012600064020248444191035091603107294071831580006788094615440971511879766420850222325174666608377715268672012030607933495532774466693556639128947118591295857385476791693643987399651183750536289837823969577769284078456927486076184255341243067203383979418788564186843291552703467612098155734834317927055881101553102489654530644434518777081329886019746998799690194644272137738624306797119628074812209601429772886385452940609614852482990592190005181772401414639979160381517931879787863140968041682832059631439340046226483362568100698059267244943900205242478808689962232278980598399224972734831042962271872568506122219248440468236126059015269610533592449056880655620302532274730488731163069106163899165345954766307938422438845166770997147563709005758913332842266688311206578404743753358869101747439141561406171060229053793969737053724604796317432265093682297058759939390773465476359442147806273253494725882414975552766975391627053494285722760036006073286783471101082801064184280786046599443627692360658253513466523518434110370926980774917918948618859498713937432394229176034904149453355843674160798230039965923934294660312011640007009122808471426222525315287706488425831269845404096167477879186307685991896018693778232220880288003807694092411314638584234904358767141084934186739787879381850740657955405166000131268499103955501781700738025363586519703622606586939113543996498891057910242212451945709273451707746233575095402116536754108183914568870055053730393882580029351487439701248450207400999198500371890678741287647879020989245372605949633351348231065302017718563306255650503643647559371124088398182821458628221071105722807190816280701641117172808567103499412789954270106754280052688385251718496044819435082414873583465521358812704872972968857016068909333401004157011598959340374238337174097698248364642606045550910636868396329724693973135827265619060400572921800091452645357100787492279442242745075209736192449838378616079718490726051127001416864070086611240378899110318016597478259459515996282068430759661893849622836399175255965882806223205976656174884394510718626133858130025855124665029322421665954295385437730559549320612987658560535378911972888497734750057683325581313788719909112664460569648242323452489105158008643805436224951183261085093606794351877264909978603278631480257724700822296825344235502352037244299899645710972099061156344552435259909330298228156997452888595221979080523379276541373145377296307200273107018957152724517620704770936005335205651384900723862883640482413370815359803641719674351161243637472341735607609836464550008597724294440802045765313557101097895786263187526466181055793047964020583270736331594887064557256226185176325835779681159441260402534032026842738162532365739631416427329369810393035821149216475663564118280329052114760783117080703347582158308153010795802908563101944841743875401311641595813503993946328023038971981927416526377929347283305171145519451900184277328963308744570365544612332142043696563500114483590489144001090644120252524389757895546404967177328456970067628775219927865998249135090702653381171963496805488694930104968637894559246483340712106729730184187008507200888770542851656511310999158776407515747498704042614555710362506036918588522456172016761195560066744587833655699201595212130747245618587753110656293159317906773678380159694143275860124203319822945068319906861352916874403519275157897094923686337161591149179897984314023309341446299029589205524198927123335302986534857449541604448145603523361207065781811252429058651924391324728693759027297942862654116453293297737094185425043270720161533157650643932661825331272889617218121852833179664834991093947221315086659830676512908405472392811665075665020392854197947883284687597764581119268348871309825928625554553617934813783322656500556531813229597087772779582384108530409410458697397198055994598186316578911168259731325786800146988731057777267385813173741132532778191911920957753933137668587666914904105764864105750909152922559518037235871091177088173587975858555787663548583706176116474583944002149998845017587960330865316261723385965265389423707217835762337961182826214246246063556844384153473443341053243173335593276257818248603071748934310147799312865413868489170652005988591467898829192158388109139555741631785969171182598240796592823637533269195263174574963502999879292601345857171434055959173608390843588876728455699629084427385622281945573140863116088326488651572346206799187606465720031776902668793235595852349856567506038033909020011241144241673378006918223331997380251022354289448081372031558398042808771605236069337094320855455562825734852367964280429643557697695912193664789790047937792863858524574443590834746023880083935246875240724835560249212011082332039567561617253665090620219708039962350390059716223733634703842778404100734689186845327870648829865798222480910326261874144780215501638272306205087189159665776566895894874772819893936249823332503321733023914063997471101605352254558812471118624385443892004189705467885883465239649685887684445617283550475373802266586765627963192877177439300202687574909060229029283507644958410406838333784687633579929781170179194427275135365535082045613491955108790588971294920429305075871924662341446982258027849206748413485619763109448275452795487316868260355831322056737067430361581653223286045789256956988562068710202608232393577435347009660400687732970751453268345598698430965574707003176753702084001280215078610833396481865588886952443002580695268209003020782391864582220001677079493665972556081583384107631160265676873772169979331188941114255633668706794567204966416950150414151018554086550916479897503836844557775512894454165690282938401407890018001360784316027782086037892066013980782886429359454599659678176718286943337789524927997629687602025668402061177012573944365740543910871639587773129461402691644261325030701368304654725410551100551597046994279743042681426202236450007265395500801496244240726946272693079733283915242738922753619608482712547495901802883572475046380516238430256606658381622939053695474923579057858980698779051349923761750460673392506487592504114954649500641149378512251443980069264241333332362333017942612174362036997475603656705870995605647784066490078010703777758780300584107997214246465269593935893243256804496351921367542143679247987700626806695688896785342302008220312976526926266254570986301895149496157390379933517672633928796707662297051157443177472487337787832224300690862420315111834595711899161003931718462591525359784645369368629098558249216924932434764487807969076225996933478525388701724394883802930794709794687063155971013860025751934374961487670147729066078686868962836568287292271973743185673077030676353344299672227178643107733565939684169690363868973874188748187036638987414307483939007855830973524230341023919040585575229093955908573582787617363526482946363805131849739604640013816713347030389586334144731185198455163176198006000242072324143025900784987444159957879351407720390215996193669274610444995269099706977505535839115480759059012903490590974986659540216800594909524098894314547530567927187660269881902812432890160017301944785130599034876570425396134771472644986471726462811461677130077608668141805248031971420653921980498473694817738672351448045739550418071775318627077670017408225198762132233950713644782609025852822818671101896885848966598971353152124375131604213793732322084606080333673664759057520256835966739623698543082748119457575048754306659242401221773900677680466238233798375874689647262334106201068732324750153618638701634939059423872204373045402073950066246682131948296726423910787378027099394055853204635615786446041478584751343845438748049399838011466152015415714582674173765299618233107805942768754556790379643900467391772272805926325588692418908104803746445647009302704115703927445022134831558396626422682026324550233837965860695975077903425385791851117661993969741100805699740363236104575034900419486170136158539460312849453671273561095079633662235898436136564954695687688639247444653349799679095566715622237435019003675029433134876176554107674780567230509079662206264917552776990542773154212574913050436529539448712017882901919172724413960973183734149899770388405815748138300480412953521899143667359674174698795615339328679903392020002128559694255404202875794760258316995807358872556901109328230184853318021239841770054769525140549646532758271224094560733474274875304911553053911264926625102514243431638954685929740370074711704957609759609242760171243643153978515549603285322437875614458389280792267041420936836118632538514205610091531459078319015129209968548177696798689361545014926717119846032007016860859743625189160413906584043787264040049808683314157916653335918475305326067781124475334539918348557431212456946775237588133678458934890120205321056226615360276599141473615460462518510022646502556267183804376924797314629270365915063732413345694440997975184886547364753881940135498769608812170766574305788821900722968518459316252592621060889029859937299945225052107920560426857941567079841256093252035247915907304198039671914855990844860301060018572182489179569017008926734170420530846192617494921130197786938122698062814432171261742375460101988405697283740892820348926436754270395515440199234288696664670327006513996452939714114495911275338508863214517925790784786474305778114988767359237111464607955900612358525237145270263317954194673111995700569051455764429260803636417534398075024931256104856948738231181151480938683851178105117619370777256314684292260717761829625766062500814537967525508041931143427835090337715525784789289953391152055727161281297100336445174876045706566851177045479551835279284357262295325843509743599708886344894206954974396712730051473579811627113280460934207228496853303655721791769296718855782603983636899872661846583325836411912930567167363463978530040327587322356605018276528069142179851881558116185923341023282669854873075639246857918383541663805631216469514916113696880447823424121619519311537610811917645331351950106289605856841873975290594512931108789058115791664338715280631007031886723427224802464383240832820645076252229365454616400272196894018400588441840678805935303165054962345468832867962248715228920056204584389258068558229625043990630496423319952755636474307838003090874316193238196485440930253385100947460111960767765976362970540125545296621107738537834554996285024610070942585062904993984277830508899314155112444187316779076227503325163748125248390460803498859710927241915013951774707876850024679898442443761484433832644052532460857663316521657303060201893153360499513237032873847034020019813238237251569786290509454094558991934037774980078351674226215540937504703317719146932477092970245104532894388186347910672392010618942287423209716633254724903845125301523317504570434442983234866799715848347453155484342774910085754847629542602027767648485817870077888595594554184223392738353666483975392431531179067393754256009774364096187763343800105950839519562673281448881799984709334913903689779256139507911160630964110924826561288151528433502392312047711473423197423296022000314654640832754037267513199459584026436765274015955383365205153721280793198679962146956470111582814794187812396271686542458877601875078442534770924561971221157043070865342200904424657006471833904013695726966870655946427088031000380723084518260280839117615396837450935978670516811787024728025857536024191321243054127580922977285156793658652563069969521025976661691826334753692013812811371283621046114252785266265783275734682634831768045101870002255638094194510513797113335506472591487500638160894540116661953848310399838256276307123681967928728214224177659637923787772397601186931466622200924598835849137842570509906164000648067369582776883562007587962530383987914457567324336425001787145600717124833380497889741916944592332897064171207387355821140815570367476031980433614539321687974849723459972848060157724308642230187118183537221091950535314578027819163072340189784616970396321125804007309581061280987914066383434893434649712354176165421518435610315039809406479032250201178772870167422508271056026072896708824126292218694148448100544328663732822737908936921680753823766555877947537622897923468087357425816128063292717471741943497976551485883058833251748030531543950155776332598729227376908685421374612502159557459278105939915464768239505448841527603918722540991282542338831771684707108083329309824799715339254408233158773255779597077098329886799517056315931741300901593595548568873295434877640981094648118092328037567891025546885089414695928482844560209623881834544697051848880702067550281308037362722048756049898843965704042308737704586797004439353749877529306230651758073024010395177232584050108802006360296581604172612792268238962248250764924796853492537190741771140990315283133000855849902653004291084985744691152999085670396214638183415929170733438098926197490769294412393134409705822305966836826749140136627030243404079323759986000267060927389195862953033842840069758871267970275478551923456497355198883617089399625510380707202009330629697365960329828383390819016891307346238811585902425771946208481220909676469166268530039053975368146255194850435768118996838507918606813665266604530886129026811753413234142923335299869942262779016137107864473560318813591816661684294405256250453606417229355066612156275652430400818298859396235260103927912089308852950941939671329873685826301067056687451689659191256765605467083942509782963045908054876232509385070212337849800087737305608629054599330374745027018838286501425558861674717915470557066069414419105864024758506494206193384893019008278738967355683344900826708183571771278911483759815582412344569984905115915598352153589514568513804105732168220427370801365370038964135963970199965924777440589070721573858614487427573510014358140709228612493858790337492903957758349884761878351099752376446916941389620002736728349018632168104586995893380709680645777832615475032154998985903590499676612502257566650534625161694781229069828220570721346018886797570357792933204642854747749623644045596626810083542273124203871789293451777888465005283313870289121321374065906960757683761093744071402325380262444484858368534871000529932564737813351600043196316664058234176268255327157497564667622713158375023513586722001939009213246411963864250056737529185549581968282676620137638671019433685104411269824063772337786363501933143822215281015846426812205541851971545481206946976050590347202620335534885388156197524555959171496803946334075306799683291019581770254840249347436796495670919130318374083458733969366251595427068483618738828388532220111272096401095914238640432375944160520652229206963329391250358906873761570389220103671766744569397930274518679492102933630165407668838360158717200640394516882499783902632687750095602769747831348345240577922146101336775973371559109657475360278282309039637834179544781816384742852695655720100732077477378855012751425454357368256952628415215666328469507242379563997732531152906526959103562183045665704164082142291586819911809709591087598100078445594584304219152695622605449332211020232135671276153785366986868021534124185340830152020269957400270875360756603555272613465175348279664450934242101421144812703009812403637174963754627800507727522030640533378980972131078461277259792085800687190486667478650691721941337877576926572382740244127117556245363925403202597148104946607051600733106895431643488591797868215144391300285854976215532282077263354128165028640001808932612064715288412159148379545095333231023970232039964101838081688084635618393836488081813815091783854341044416113916522423090691914033667701742001368690773681661919235475280386931505799960197071184866072224172275489737042263163519185132276660891910671968110233231117284082785387342900657932059726032427723289578475582892441698215091217506829481806272462994052062089855208071281430000192874899771703954430217789847625931423165699361508436679956394729047559520718328241313765027366566716214082113961962559135490082087446525792786110100155532750193017740830247887081819070629401355107013778386583184108965435452532748691281027857509728237974027630009066583592044611636078955974447446206726582127365234982990476143932490209731415625199195711510106159119307516346047212184532665944524681553496226109167617900080518756345297233121502104625497967177763093407309536380214738537158551964654146860567162411213985807312173054970362413149023827318632371667012245142220481596596082854720680284452774211692690718764618945868264177373192166175003762101763052524019097172995371563046756151236761680690784979887936493845689067161083718999513667620264131901066121551752989457669626996629801561364597705566747781843825315682791469899894564919256983458166687845757853287555961014640834960218110226276072603357659351870398192839057078913110026243204129499510843642959408991038224412737812985201853091790254751757491735020363874342465826404652829957222506958448151672206127624096253178765507540010652085164472133894322112357249656978071556660565336012316576689996443953171364547530223393787469139206557582308565220189889976790543935155897825570976834109026243656101068320280936060159533673715950605552148864271151964969540017724855255661205568019479298049122835279803088742980975227013658380099655727758159418367585421510941737504987977118665305995224319928568889767920900195513066771692656094915719820199932989096932761618861407419896855775789903806105361482490898682606327619291488518283873800247610709723186330202061421676468509884544305423998011788618399240879855386414112880489377010939193327977896430767218889209227851847033651644522985770282844758167022726072352167155533084535887571721244899065239036966080042905075291417559391101620593499474961288007587205871143520413745646300573897700162942108323835490693373606091972065343897263206393094882907417700952543425034102667611892630755083658831145326870608402411922187782206270711825098766453670044331510461773417375111331096147311370234076666118093560596677271407280678781459087784263406470095115282780944517093373761425165397633499211402978024307193761371193196092952019489600890665323889820264932138241745017125485794982069878249373063767494316563997972198143800807737942646759253165068749277256487318996587420312044946932945360790566256446147011537040371941729818365541418151850722176507079847625824878533919574950586478262702147189003419996648374435916590858676088038992520658484855240577670437448297617315450966076829102891495984405326698241201369920190658387532093288352820096605261637332830826129657836537790611703605279418643875849609078520045491669180408544326824948891267559629560814303639362105359627331484103129885252670391060786422410431069071889659147420381780427302549827902282621737314776237418308522260594027149139488954645651386609727788814032273194391216471165002732074144489871778899221958633206285377570440982338954096349283807525451167912038425971270256449183363033924551161816336207716963645132780917768223362240592798244503822167521605430428315290835897565268868748850363766511089612371138129157769501547664740273724506622767458646917860433237690857168238117583698061445590111298178906149934220318329145651384293746239142046717747026695278011256115711259974686129315427534556149995831002040828418035316564199130582912471074870113242535878817738008767837796239931885334429327414594439518182270496684107279966788494612086519696656244467407425101967130842983005789089378356358987888567507147477821745271659771922867293982962436870097374149190108864049089468625080950375753740006058855540547287825351742426792609750133630052122879033280344844273749452623844339239405182894775482338406050813698544528101081970311721064267190708215980584810397116838890266550190375198312312988942262511727980318615333886893508737334712558110248683990685309022828095557298271771490164305361843520905326083610089576073072272578240276680910611972782232376842480949723387806277655627339174288253766343951207449185875822270444770322719092774950799436335204165525173658339203844262789187540294083122509249202844947548700349632579800212759793219246074502280012337140343554789725796020566736152986434967287204589059615267215723535569733716774424881132006719048136843355095469529381178279732937106973028559196933588974727270925067193825196776392572309252961682787448331270184330896563584860056822277181754450593079420458713499134752741282369383620511105461799561276348457130793603142930088768790543413450240647380363182308800724450406563317208730682171147415731300167494681106508735573000473193866885437090527013957876048437081262000957601021602642279041656309002414466109861601712775008032219907454829972716395338087959533377487395353735129583038985307301465918515066500373974274784142509379027826069184865491918144911610211946876454578235995495168686597634846510653270742092643591413151437129470547056634883595347854441343049358686600363255029885947111285238411706630592171552004441024844542893185520800377865757271497218186090462248935922470837626942187803342945828623805905427293106204552285909889842758633392438159305388589947497740158024528981694470131213542991018753344748954140400495246808246110009960414548163667088322088983153608374649613683517948682383682082297785444477657934295823016554453782944374645417096492759614138031519822267929721555574202809583101151953728469259514926759301572778722302768182572556274615203041317518151343720468157119853963312696463291742810867454599730500890318227237828539319402514957634518365149990155785313442801757848866799929842339364124202518634311061995170625537725957298205033031737922588919585627636482113728334385608134849909914692711677109641215499781744595042965318148753591917766230733913809880840717143116077613910810588909799181312423807768289839477914552936766893331912127493338459834595678191504995502323628028756644545941714347283181678739135421986063875189930091383745982163842157198416306777055202232607633230206555742209068589787043600716822790645152773800846739280767761081757199596626394248930968019213436606912300122772133376562318262107572125147884555810342522676059952992816140876407644289862793918862760456406448964623322370267114768116638371648049641058880882062018620005304217759005614791103725511379715165311677326531961223969550928569288723653492095494373792882284209315620081627076884149184402175647674114762285198562586270747358811953389943231381671594849707437228414267933998987458172222844328740096786105181912363876982305807386957179791261918871970059666567111837742948453318067466071871719162969373837399383800722660121393971637042420156181788374463324320240398795997371630115451515281315368095175260076336302835152521656097202808244894283595120120337097463931728196165474122310449965175367904308990788066562738718236996858816320609776633061099121389459717682192937422696325664804527376734034568234447895812065240619613566386691021889843424227899098667109384183847167819874015446443009191099650434947034385423096006645624964327046110701986818208255245430782838412512158217177863156730929308565622173897808734840862010413076059364532405467724957923260377028006152777154845848321734754034309447891685847768319329356086255986768531308511158337436886979498822173152287239618384850538686795481874913956594268156243933936819777809606590092842024210388571604371078235163432481815286116367684552699611213892051749016939996482963135781821827252775531824489453018181864957761569382919785690049922318618146666599329487860193835241689038619449330589008519862196012086686741826188496293541228117276100832712413548250945413082839918226109951175731379466591992862409905379554788096635831541056495268282954846296422258104258145924139444924751457443685903146593534738006262041239722514038549141619078499881899216929146617032545985391099411727024901499968102316736103230637066821958709699352706087352724293428479303755244897730819274389493299840846388375230577028637030908401560935995849931635628823999970863809238094643706227805273169690136413135925252633616822567581357405573271181721366143256933846003672618133829272821215744367979516389117474266454306864237587973805028124274709283874167400308352003734083692691896868882047359057519284845819651456593177021588791466557894061640447200827416158919536471500201105846174040666385224310260015382283842150981549363219344245640611412285707973521552114722178883717088679084145915513198559516981266450146689123916297071525656562529231986602766337844968712621025681735340301043597791542354355480711175008578626696461722747204975358615940624573284182032313253593109140231599272762932340025632178711919005707232409097592547722422418550773760737911903505997834287714885124974260917289084526591459578263725006735070183694074495723060857412194834869614070379580257905023272139212199083865757952489591351681307360311001584510922182595589901114147360512378498803084341612539336387632076595064949044290090528720686622279175581793024445717911674602164689409196269905004327915321730910665045643555535582784220859244210680464878327066856857548468302497276583281774845731794049690280661182916505017854968487335511376502236959284768932680492293992240258509587968313096935622778263709965749142299986034139927677971250301094209092699985929773664134710007571621979470211287082354269009934925997702791546969812259910868125907334495315032108579978966202286774878969160722948190216654824101512435101725870579298538000452749323517491064079341340098798933220922475692238286400601839694341844155072067148812979552996018315072709579966172610687216949505103863628903235575415747615006437613004475449857945612134806261402426766294276211112122355785533975942165786252017630440001908463206672264035306575216927740569161160399278346945907375403433042320572157717360271317396413436550078406566763500532681368969332957552526634160202498086521408698508751830880106701152658235333401134355348886480690430468537507548871016714052619068714943940625204858287190813468428453151361501803214736965319720278843682231903937553533923736640895689513426819627903713063895806027062293599042599686551611292569869680777512134134827122184889232360157867957245107453223742374602099305924344541454592544453836647026220703789160085311017081387872098766305742018086801511542576952966897336739555522286250480890931248729934177020845295873604414627577546755936197535571838202043932081438859912931701503124661697749732248430172324842306396540377019415318869057941857109904758940143409305109387184355403836851005326046600650704903885142066440650173212640189544959434609572385411375636559964884707013375505963883281395963931932413590544422690698998479961644006381366722710336606383512840189050913673039695105730226861606922045781657027044060231847848766945806894469430131785684205509921154030220299444577901022304995963047799210214162745462397342630114110784638188672371212942117934153092173503483271328532587944211475704428937148887919334990421796781973057251566767246427349714129801786815208093079078105274685859550775534276569564741035893116506277312138000877193602500383477962731196056712366813188689567570869576261252339061291394997216769688908512975492255672653685154771386158232332230378499450247340487381353844581425933000621353467849994695138159410295957813066268626745862742753921008773618827583370977040189716611635033624774609600321239192663783002101935633193785463224526948513497050131192234556474577543399912211762695113882450707429264452904506472543298040806761835510321019661893454502894137608549004291979431588678369755378098067763806700195846346961868537900515954326315252152622549649010231897006767137062662631846696488517583126789593050702860018817540399359671810367404870968496121586601003348740264339668176548988135562298631562142827271002649675849784585458298482875278202392605524288409293263059268464834158847781169395153347015267647054136242054909268644473232807406409123972044278301971643326398068244008547127348789554287204366841756431107234762814238057836979687973991887906626567710476781523579966649987404780527848292134869576939672627385593288553526427304426807275598850487092858696952335882119664154571160884336965723347766543389992368706567538676617897899419017913837380725829297401597462980064532008737031486210110318291620639240877924882937257144968958331231357904309562133405671756250821324781034308345314394732026777935441102437998945602835081705143840275658215539384144728828585517182167753574647270068932267063841265526246314517469161305713678367452165834264357073136845474283874674291036144479766016350823379034037680068738166142325199342463507017251815157140526272543859452805767489744743199740700922391949723145003218354666615801725531801998928805952885938062740469448077867240823574828588918604489043544915440525473431681184448402643740230677709395462535236490487083729775447976343338955023199264342724347649012517460853589983346495762387327598222785501635775991986681915184343702570742807561385415603486062062608907979268554139965880340599381933084234116026630706969350322236383210030532523686237041050050197153486692773540220583154121920362933095310249820422482731853561026627297545637349706718935775795109043003855329403443300058917490072998322790841469407203221223303572405016393890466540831200810284256887497920324905627874099284515927522948365105432620372050963303991406795793212576904415562978965289871217539902461079526392352764631838915234084599163455599225473638185239499259808868391709551934161512235414616686343253053711483472502242937140801525189249694209260867843335177385955844908542992637688340102307404665016395518355546574697130215272668272636750560806292809696836194342679987440371703584154045830950750483975279683764186988959022789836220786115420351619862820889302156593425695107789224758419175115349233259690029364154830894519443255560269784796034111109471326393575354116337361246076735167555085860051099197119626636883989471451634204091288847336796504838192163207254847201499775982990039701122623362938467096095717435103458117249684956611138320937645738727070994528436259001998924326600533439798414065296828607311358028896744322751936227823359235000991193404654291231510924751040917248263570929887112874584656503172974825651790101393942674275856088009184179629132411832000907982723248087094003259090524021559104742923109816311057278664938391435840561605634621543091768825544625257838567165167072774098887352979968621960119345687667296029143075509650601675820381545864316308049323948706093420018601002097021791005694065693158802688445756108432219436265789826331564429889828818462567746028895367470393810647184815561896001379199910114137970649236652103849507704154518189256222580976577554526317860283502490661198283565308074577522873039258089585992668946705485498163166417977758223607330702850966054536182601270652296406020803999903633931052536449835726414886317824556299965201825072576781841378062715477707955520863807055594043227749726219545771351421028441879207001256868478809958087275571169131407013014844188420807196032136660548423141072947149250742235856290885069112688465533928239780266363352185210956964440955787032541878209564919571475960179114671531658279180895210403529021754707654925040388713151716744390500291767993393860177980890022843333426954528705475611602087059790173370327232496831525837201598614284548490667268911841115812407702345233732245488039561160486354790450915820342774945579633884644375512517075210434577720019715651420161455139018681580329831597484780410313392298094990887818115661228486346022031433173794070496507640780842615054307295038386461313870839718189077449569496473123828830122357616869965413620050910743209210143923654301434900985397969808805104683756927157917190135214052251869104152748880988987676555274744138923170028529767394082827101421927073851972882857026215494356713628463658588099782738512097694822905641740150003123205513276918578375603945583233573283839950487636571201743671659260101323846561251947325494636727415931799907979660681712990641026344484533649705593650933378399410212082195983151471310604988150805390668509569959448900247058209576953951486186065279231378131784003107532674265125034422629994074495086567295709225443730422546377868597490210247527087690464904223312344112557600221860170899496487012841309620546125819670417608944855618015265957938790185170004284129865621425220205877799829497795652113531307941942682082188990726539639223530497156029786784471527514485763055324904553456507869612773703593430662897843002933557067860855934923788044001018596043059056544729586381516060059542288209257596281591798844639765112444802018174791914458778210752856971798790393307399813041474140560607006943084843139529358802908905445911913112821876154233064268338859566868249157069585904170828150305767286831753981922085085091616170067337535303475150752152779858521875556709538908459443904000798329745894159841268666554706830565682346247851911835634011986672744883362820222045815418167695289552764850644363372400590153485899634958445080636027702280727855860222885300413011801368707237084067014077410070161215375062640547213617607917092398316893305701885171774986115147498954783116926190878269773019215985598472599275959028458670196561424523668313927651928515210455884621181228776134942511026914520595412360763656381249147112078497106794757439864537132577656951401769075963332717652300382141989032301219470443535170712154498448916991333402878086313535546132344213642289469765470033983498695685960169543040016909597014919167201223320286564121743275270804444633064646456523166449499544129056263970393380014395345702059823760675995005616964180158674679370311048282028130612363255691739159910011983479513781884681004198431425387150335296657915926971547637501347513163863604470391961311501627113001146946941268559318027398322962975024693946112309731738917328648878854575134118863386611254552075448277745532961404631252664960915885043550142044928668339153269798876309428705828976550815751824974342605345666292881422887584079032810824764365102795684119548797003660745298325597061644631345665558191138705900406574706736679200847301703684802956992865904582972219204136063870162333825587426002031618273171146182978436106044693280530604752360533639614310631810892220386391482983154884760705764537358720928592458216923569939542452180118209873653399977343377198029227550531416576243215256571154508737339331752693254066215898850571246093036504925468521147485756714976053979354778412219242446051465838974648347460719440294438213460470332072055070515873718776893553200341788622032435400439821067576819261002555003450916600324603493727638162439209844781611322489008513045113041020462632091340026979054536573339432835035549256608343247075414920189828924978831213816063155188288986329588538153093468773867385175999272658751156879816828279395775546819541425694447515285788062402116737584695303870250514372838396708399435984526058675508869036711225044713344618673111113479571018687186101957039104931861281597373432790504787911855181088072160567938872062742493893195055895580671379609472998640838406793651723304203927575743676377493423017214048815842489679417001322560293904066252492678271490265474545243300834454317474903770478215772654549457482759484398793417071113987016135122989560251654435015331923010590985070691955258003528953615309358367219883203133895559100120807141340528011667810218786718530415061927428517237955583139722898946452894761574541000689509186399909335407364918612808083070554818338465088188082782605314404656017578518012524093790419586665708013887294977292698916593220003714658480506708211592322623369376119307454575903451512777464349051253238123148445715487551268027504292028889759653147235427984760883972655774718952467757636626949882901160517974945370272621957216886967431687369123192611913602963120157651873009996920667983462522633330900365623714627402656362656868856300500913236378682739558106224564340063386326772036997980530507136317710677034182700394377511585688542199448517953878874039945933510591249998324352891998986896451922911421256405621452204472300437625863621370143402807990895158455433197204640511200587747584045469227807097803132961835240500208968835589298963459747793323418898679748345668572869625791035274670376289590842737465073577380263748765867003153613383821517172124923683064527835682267279967820250829860967627159708741781430153970626821761818567071527266703285497880457630179431505215090617790410690218987174113509938226990463399522924133786585669935411805567690541359797398816868563462703879860010596311258756704792897884868510688080397822360113925955290714292031192473255588287824994740985572697258456802814132155390006508155894031019752547319500031620744564130285190146552934504621070241047951041203040515969669198023721993203233221158244084168206552699434432718838936831394814315174615703095034199725031627005080058464860144124933958378295086188942001788950326738103992779574109428072803688218325558459075107107246821436349044373161779540072225524350810324421530775777965776208818601309310368101418279415779161019525059314408150409851750363807469228452704376933086916251485986938428727641070563207108578633242379361418093037235783937795863018991236992686066039940173301395698504507966489306003399888008682035938887517877141086466816163567135739083766383840673375988965328076405148583311459374187507164382025305258480406485270345723803667271912281724132628040486801637926698453246238678512116820902097871742158941505381013624382277614957408297523004003576779464083944171235782166065932180544209101729229196806945094610443135908630956252402633296309333250340262627903116971098351276456011330428361518661204082173948398116887217154577692736098437129591639080931191307681498389246728812691173599612348711213522398661438051054210623121190142565306195949813184136808856310118897624576716651254826008310928649355265958067976275832050821336287089692274192811245738227414607214634887755927106449587642655995422014978641745005087933215312919269027819713659246739017913218453231769348562915568639944332085738961590744483557508600877038553757786020423704043767061253585469694370830639399024596016717764751692899234325519415353078593795271840620114370523262959882276542979003109113343101905442510390611541899405853819248001701319341336258825167216651538060206192977031423405526446414409915307283559873230885048547373953205880223325335434383671557098669043851579658437436564889944666776456574553092556182795917058851494880418135928040490099686285748238654400948568477139195757267513998517755324689349447437466267213438730017622584112059785415821397026852431480628876574274683472632866212252509739414341510113144134831625135423014879543842764486097077436969892271617286536872878484759920158870270204349843962415486821987016661331677176792350058681497483847546167162934558078193070557824164984520499540682567826552295005624755594050471748279674272331398404854457715039440543289915178262142085564245485480992160592647117723992634944654416996589220638220014777966673692095904627730758360891540269166570179286549956343798980253805110438375945896961727363065711976004985328887289081859604519085893937608154324379305767669714493614898565288264412097417702709787774846909198001993345609688544320763230387534351352198021537949247260977065968692673274759864476846163245219457087439390264079296362766747836578626844263772487459753224980993659431631678427071311927400573407880961815634577383475816342029488794984048278561209853562975009672183404640247300040302936126347686658265228218008653002087198359776218986627989351313873333198965523292093716415309408357151874712685160042067673862674265160955050253597677458744246564843423707781271586625598682262137001206524530866708736971358770029301515413894893236983885816122560461954674682379408113336043246834065318356454303825219457832621806948621515982040574188887317999787972635101763073998382431535117932022904764084938970301945008086143877068647650648996091791946504082213546362875320073841732296677110633890849911243835639853418399290754442702868224400199268901511843205508075034656914614277202616804048640417174715815514285152940478375709913314109575614445350294173357995073427472645258736536356694120628965666226187601704413379975401226159674417857691104579867837225934545382893464024654823767693446447225974580999564136765041639481725946819688390056717832037785524342404837683150624060850329673047050777781596001510459921941348050194015457190880070872112991650866502515424098803369605939178434656860488173306775329401056156774030601843865396917801256123067746078691741781494416710250418619288389263791119680326779908992199798517887237797254959141263819274299596628649195968166911909662283260438792095393438423620548047532303761372807516822526037727705907500176487676306970438834264310722782017602116165267772047508300289580109757197961336738418825679974373415518112650993637999182617892099937245397261388555774440091882384718700626623249170951434675349743519589089301878808110027097115499912648888946657132751839845686547034995341185610693480058189823421705756129915803894667935757623809118674005273368767967241772621795976177354402053144856288686179848244405789006814633752383580043955720179400681476658435123085997955939275121953452306406925507935350639353595991856151589168682294642330874967244940089959422574953176268666008055355299528306150083862541674935656573661514838098378452844866929724116907861139941116929470832037269793678778108523610960556915112906651523174399156583025098129200308598596383295419503780795583358646834029436977485137669658160789805690780060157453049842909119102207834028500050802530153119220354559853334707849090727576534275337703883322986689376287370598176013831146160716333408534281614790621144028337128495087263675950206890042273294463160325163116696028204233656620803447620349664737494536746875250907224221174562625175139899921960491544013806858128479766777827840802758641506783281013645739695081234207503033112358337003744388941870947912123571867221369420055114830019461105075637777260111040398825882138035041240573274944083909092915903177939827792000436782844101926880832659835323647023939227891748807669879067061425675431044518819054601051264623816009263671002399320001039399899430891474906499458974314416735057039535356783739186297264842445340359817274248296308267647358650123747444017013716824925583901764458059571619325026185525478292278403375556998736750175062389278666425158796926583147664888955312106444555332298775465834151161430406048091426391414604493546014943710522531153408012677077137080600651186024164257542915172247534757251357024138583736579374157506032622430870379035360689239292288385158069854980288367849113241753192641219463615281211478064117556311053905635975453934890529086854481696329538295544901891952761474204649931199665637627000284613642621722471404015256446813425664006236340037080558644815472547029384327584082849398617873706026046840269210123625728734201840240076544447579284904550360444323845758470429507024774795924512886484983751630187813882216442311235331280732500791404460411584336004863304213305065246088440686815288654935164607448393660057460009427019155353553647865505133190415919583609123162066633673411306402528169286445368177177425811921438523553645879260847291410024446320597741755217787979878074286995207179217089890896115890428834174084104257510525641279435819339098438156064077959931451522708661554205075078298851491409126797924596215565964244426283880816202015023474544040099155239696165316623514505528343340402784346486283273638705837219616632306492163236940552855149617109084412295473846217745301202959683628332284689126706288795817090979502531006166424322654293252192458116710351830984399964015536535668804743892420167875296859537698527762969198774466341537449326030151030358875851249984674774639105456687054267013938191090286691082660310609861074452263547804273419083309690649498497542632112968405300558167073934656628732296964808570556748470598772726595556681663506309672202848153284912061626042698695422544679690418171322172506029811291212938254257723327067702252361600072679306979164371928695614355703552139657943392578472670684609355975206784139011049024576869678718795791908561248435275058601140866427943192610997333845307742516759759070270335111482218305096626402694510009646053900728607171914613361192278178094922885062708458322251749679497482494163124653230648956099700777067731504793493455696683864983617664354384988424756639323226690188605273664459627539694878087609988434772411902987919963746227383557062867231473532922848225141107255567298068741723709469200511414408262864688385342999814902091062212869678936414509008931438262291195898841338728637007307616131412006051868074314327506259436642024641560819812021961202214928818087750552768365578951916642738773443684517259696806567518929580920629415361800499969821662549033866118033161188719509752387224916236261472415756988189423056715556525187561783433942390927440291837243803338076486543276958800506333183861314253485375395913837648279804781645986449202885020864170900986479244013483283723896166759761586641840745474357254177844691748070810947553111175154237477021857263506037701600504432340618288285967697741276854498069324126840443875117942825460488202844755518236700488408372060886473875707551326364526943630670235992900740607998247120697866686440619162662411013461155746678716874184329231285459953381690069472901345556789416178111841736018178302324087467648096743651484431982407801237086261515223079883200780337655205685685694596597146405369099196204634904151525653230395567152410267376640746103181043595901349533843339019459788599186959327274473942048680826152081956011488655643669832729501617152126425677222323487506895579195277833230720467962722103646483237644937184215564218019511880433191970822866250701730306506100122886606376380536473582835597730406338568690342083514351617286300674711487699210180934338723820188465145379616185734902755086190924871967792979506414483295067058108841177513415842099149026022813570386643075583089385361359495903214774284018158626207346933413619979998689449212730134107164834640779300996577143013760493455349960343848456384080632549092941839582995971110267555286032310113482249143259670600448435347883331510782675723408452131637534695869175478874108676517217671390673151131653410003175046380728559099537748180609455127193724443935022814151070028749830960305825199382399879422122732625919980169796411715726304406410961119939729999349982775702671979208878457865232559885273326772066198063047345977448590037888799755778959231880399351423105085893454178332899590164466516484547717038094647578933341636909713651868034278792029520427758360061592395203491219138953083098108646048435009008915593320573959722534151632812423737683434741329518036719791561988248547511038695806983181223876450678740717823053101990706252929912480880590649096150063270578626334523233090426483221035326763196152751919746427798868416835897488651129591069237502863964255904596072864306472220372654970267072350472720995195555288162773978625918255437648739278682089885863925599447539224936906299306038352172517999125093064155751153236176853070696873088760485549166803826707364836951173116870081151081080453033844172867789882067933920575191498687700966643512334296473061810047049639106584308926084692343500720388791665117379776122752581611981000301341748690118987748789602304503541649743788414480497220037856304695448925865414437434743317725036996457967064366638996206216721683264303043909575950484989397274334046367140091921397541151002177713643816838578446508997651243396247567411741418869142085107792548227314880867345454589945538725666611250753059898412804498975951537630843910802770082693413001754591924847043698391883116712688466488059085104251082552299784969864754253927509657298707046303191425232230578852193255649946389796073172136329652080650623002821792966667067314962706588901074378100233790847347419777374499972148416142754389671170605070051937025850269612831412459088940274479638552064285207436961475247793622029413744437144277708640584300030717248202485655470802431917113175339672172729821003379419023375733501923723722905483245138706290312255968543211019916584017953933070603524235733140382828550819592168651529142820997766951108169848132679646720350445973436893691041723941649978196759603204194057786294254778978792638360446720255067939962386695259197435117169406426543781445960856412769216692704421006306189182261582088233932668262687352265947292462571119652008730093612036375162635141829355838345314594327931044236548022838892681376827879210378434388673984153677716522357859626503059883171353282758437773927838354897645201769712721349330891039303024073165694205310815213220864229269953339815951004097875426380014376332901797693061940450709982336490727899974568573616913099873982577782332465424378120813130173279704024518047010336896211991161266526315184476026889126996362623487420841473858992516522621653546555500702195684500017941035706401132306468047671218643199259233933900018115881985781211444466910433249911399324591031754192274207588347291231457336083819469408047305082567529416471668640175498402280864557543765864201111340515099785183767531049669350741150320521119360440403551776911199427669765928114354997865742683559132905628279323416351042646062300308906534644062373203441899333883987219757351226106166423454359596051832323517080612186528925806377888425804474801350106070347926843069289539752613810235819318256031286455601172296625758969140887514667356712078761545233516410605613617088328473065134327765683136063834753645408311887905758105564317740952629290166342207767647193720021578387619718798363823457170464193832362935567820542621352217116900148313566078138875900173845684491216331813930640124624708303140984335853105419788869388747382313488350244939037652251559497969063226869032639275525450530739279954893964855481215620509576074814786129797381003383678233695387734881782310496244936050835330797943425015891748703845406487036732886195783498674914379421684977540914372411831404165396209576174441059312824464247915022572750853015707178435163088539671432026529843351385624033058149523003252787139743848965264421077999726800295915992744880801376716156398241213183755150350263182222573108680107947936083843531760735613539393463007337920224852545848034015750496475127655415026464961271079002834481314091681844452886729782975564600208590449245493512195077587922634771848231002316495688705198446115498849740167528853445675271988952362721578478004556619990865739161655829226698290287920881439179093092365597760555726891909972718380182438576629656510833068913670253679264786333431256827719464519623910225095522306846315769154923074559376428145041967061568587055511594170247810786918308889347463004363198190596506665532073724009788347880074886401384209902621788361949648315345610860976335763304697193099537713107710838558826628641539964532480503666818945518538088937546959132407471601952712908875683935631064219123619325344396184509495500110894896856711033549675156671683295161147559899982187114700919917856826762220081159673691787951798535626831922618945265069948399526654062515135078591159203362295272698259204865249112932312161579675476565619973136999872398315244469589799815890790505705444143470115161678699489521795447067972782865098367694615157522993491407585907247173476438350695769357412869291733858509689041787347589157150717407515656888944201795801426318073593105718947876507515554530068008029816086994486233478997416356393846322386626391815340281750565568139477651607950258517495209553471416517133406567872297644415424702808431521385949531680955799909048251244869554761669969926992992093706782657183170595143475221068550197504979861870584975836547770465030730588962160967907618724453588130899090493497515833244514257692417376377430403022945650805495442531426752583629623208696190620050182370221081698711218064708159480904330756721913396080824756164575671174704528950825645008213894933684479157830045213857291481858309355688746143436995527687864647179997502467645063833405898667345907727955857934037632460369764168580035555309295571439284628217611999578635658224713245157840694343611692416410503973184687961430864059787621918400232813607502582645471745688044353465478859996628835379535824062136630338696305966772042980132795235795885339845283446066380669604302918802120634594986354334969635913603380563743909580729129763028249383512054978330697572560850788140240494957989179355128064805055416808467442014190801430897176259934078196067831720290598399254137904601709287802188575319437328293084552495640716608370004345463406609362683481735355077163359562093218198092231537628549028230527966654562629598357585869868942725838686383860253493350815427115861260938508801627953933246609090326851136057411246746350691916831444621520979590774273462830931998303962639129434049082986203150737893669403343993568568204590591293023470236785825065886159550117987626018125770528449457332956418964273275761227991757141886988183096562521083176976521753136410459764584542928792677325691280535402035764609999150279439330927291221685229204744233510534247380790684110200172045719155266397706525868079290144824038465803148762865086054620441552042374887693547879483338247280222931366085408189722216361298493258314687853370620277851574741205662484185472970129390149521522144962108651997741279146355918321651667009929000755475511554841681771598725652732936240840648035169428468762816425357370363337789505154577698650529756618503171586247957228697385636681393655914294378397447778834128312811524399833314058844451630078551948200895090464045953351284725547239170940179015961840207783613599415939027921461161387438166984572654540519621979285799101920960949397631595867521054730498851885045926670379954680667631698656781957890450016873170358675239474193622903365746531655074181022939975313583451220993641477524197509608799421785175601279913019520511897445378409869402982142741954188978554764669181530736624007689767858031000177154240094885889813135714355844449790358091604373199593565382980117461108423349801374621564732374239621113469528548010415661870643603520775992433917995840798002785256529538069912899231712622381143257541445352514064016999419485232318065977181699212360240450037405864724912998531512767059749469540752357748004085981894062210869697803901155206965520558555848578182379165391912083169245830433837179097332662916415185048760708978578982882523974161676618878577981015387967399895986307328417686523841376057702561883714844036527753703311098773807437980281156232810356522937036626754012565825940642589198362978410251773091505207024293366944400160459287606312457488530857883534724764555686692118721392557103974169120202068533306308628905288153124201475813080565438733487076263894503948355706643492423523667859986408696068301166345924233383558938453248804511513071456670228401049292237001242129313663329807615040624714062520993440166621531973815565760062992398299839720211696162869965582121499787207991440846023879354164691102993610085082593851674416546579730983019289998393567531722831420219374855064599373890745189837134501673007096594410716088130597023352237907175437726596672500528270008929958955150796739707728398724384787182638087035630524597991592443868929357963453963024611228215837957941288188820295780832578894212365060226621186912819112426364618110328207436075230487947896515851411563819525591664955141115464243966579286306878506094230713680817573490528845930713395155212665680699330111960488818152354620342701253817775892803541371186376970250217866474841057727091002395661187323485773600037448606692779314962126707788994546657410623607387067651315994650944694082277438208883993188678770068106807280135833612651446449989284840741446131657406451843827944834782425017266516161947256337214877232024022673374056650073376811981755362739419498068885954649137438075906475845930419405758310086087830270814308278825136944875286530311115192399488454073006402808502366013477312636962008534584242371624813328890305444154484870411338278509383470432888041572337308414697746536813431603669569116223914844504471903096783759462035326006749866829659856964598311411542973190469073153978693942751898651242383338021420584619421793934148423895971582537785559804847755789732993148137098384715816978337539141792634266451110895130057678753788956426119858188252944110099184780223516130533406713281732904449918497546037603633536903387864286995198300905722359140210360067766856303130264105279919559314668664541497458395570823801069351972109549160437003172277190729518370667020819761474723525954734920673672172956732392124693212118410491991683172952969819316922820977177490133449793633559135889101918836430377271238995035141490892984543506906774558720075484563193470867243657314578175357653684177379081188586550069934570966326371726640071259643288414116937250939978195937630618709680149711996307253809110007231478295147690991333441792806532746204159466250677393208096558477029185650565849302280834563389571481059079251205379675489349910732411842706127866037816267369112311718796367313141032501301966405569969646171689634904604428383999235758497380200016592699327205263709456899997067552048892861570691544279910092086233015274226955273255970677826369714740655929419171131294118641268342462433232838387153752622682370195088909861690021125425821485200248183160234377883759207057644103600306266159709009707064020151300045339317218227293216163562717637111987535907807844973632304750571703204349125854581196871051771911657453971193944095204692218459747275373137967680210423230921553621847442197771079039694675909324705323285956527804081871317119931581172599401503007033322671692309360423733587930974892507876777852977587766974397424734084373762377790150297169535459486853125113012063953460502053525446008363805775260425478651296952073566718853165656962704377111825230210814626127265171021649436213974417390866011437919756119791182898172573731356154595569142631208330549979464823080999306713075793795719774006036764570526514295102970475452107401399962294474364951581654623139248729647382166641808000649916422880268105450162738581720342567173889485825953781496911184588994709299336388771460623052463447311263617964292302349132489655910145919422503293856690073088804156629453980085228821556386347680859421209649982666814542913772782488871742036359929261318335320537383077679277624491500662559715038706340043840396176054262541675442494853201527052890470295259818386326028343321077823405122533800439374046202895601092840803359280384917016592246138437489304511943535849026176879748281530074144500380976692387624626399789548981538124751957157905422078551729367684110346295442816913198396907610931569995961152218665999078448004073871935590344634455629690559159673262902661947942027533484551637255444448489462219492388469810450602210765977374767994540561817710109013695880047686889996704049015960445932990935876569703303610939406079219535981639341582410833019049176681566535445457316844134647412749295008579274598993589276822583204046357105667666750661200245910879472584250969729120207613442595232995265297119115992250072459607491721218186273783851415934323691857978822483024156140285654799945252932532651529447321124432274383794874011818087322005151870134180230086644852363409532956561400038367198318637787174856492080798118417312474760331270069755761421585353216470904259353992725108251176604937339314657848023923853504107080616209154034315554300021021545761821486845287184704537087535504142967384587435064075134468894403314231090806482374281957902185118925448496311559317813792850101546692364486022894119582340125917352638638467203966831604918312979921623009242351523596961617926645201754624248275118357792613506266267790168673872964502971914881279140914846719859478779525839704350510614896428678014018510466074112560205254744365004390666982082470534753302552401586575651236615988790721136383315615677698469418488708052514395502325841146946414239659422706126893113644509438562096892909793071605299878213077579576890236243248027378523534290773017200029553162284422388768310869117994113024106980178069972862129520105354609311734285160286199620188321994667643381949866760353963194306287132584315118278861072127982814606932510903407849092592693998382590696872220472109440168817286354587838879445532611310470772169443114931882813527216433788376458075360261417782657293593521468049459963109765000779976607115602539382893326022914657598005188044821491720632532070739070109813553282059032910401489845779307956635314068652735112184644561060590883812637642260403798399449479279138317237677925502130663875327844591529460673244834805133685575703125466969304226776063777260755249690522332365903038805954248598840266082519065488284132946469002148801665019763443091433483190194005365925587388338989618390594966135137408610820167105615265679748810476695540749996193525651321460933748115763644179877825146256384700036206474459097044086850422645218109241047841985371551205272078954650069905715045970160366279456192033823115546297542070022656281242590798949195854018579716583003884299637652367985645647540818824237376414742525140750704160953356625686460182531024467718553077983868697101301979316145715170508914586881437512981687035358780015134603488180345763520170318753159249988513560239438687157752440822513938743186163109383083107850648782628254619693040269587351169704966517533688708552220977877197532423656828374534445512485183198331667266207598057625723225473091765049774823149266189184110412637260625306432776937129809758470757492164960490231948681228166365284097310516363466676773027141835290815632887136884990767548262882048320584177873567209651421037761338644479326350918006401043757893042227112882176557665339963342182656391971539506899542765080131261198046858637983745025780552449652209724330941556141434287536111454735037076124972200340322222527795139678772599655694594254977745518967744041675376904159361189214064887842549826987442505976497580596893745565910891830148871178015004935878640628139553855674763110254660535721270526760951923962717127820598132564234696983449385177484980547889545010751420334088882953748572351738519807904403441268497160095479860320464703641860692138480974508080185964236745674613066369405606261725067732141788882462843264725491632835703336562031436278453945288011819466298017589041806463295678202177274849763775392969365181791954732663338661038044117615480242527162491728684426133203114791668009328445206512312523122574640830961886531943460320572431087510439517478582161640408168349980690637742414486555184601282746017019158991979715008508979402941901468807291890599343868201493572472291731210267435971514349848065481643579456361260930018265946850707077417587810104562337272317411813430714242525352527193645997035911484724746014053043235139499598194206813919152866274281870947276790205034504592714888718852870183312182061015069222339459952054785124589715837373714973067600843616618689758240759853199923833428656470283367916778913656833417120797240796615810709073489249827176145884875637057954448784640987008691922087666586713992200426915420497280896347239439284433958966363117914746451063628009465896233015323682914289745573572020442559656430457167368928025997211347186473909282215983254843463433279923381791742214684728603014224930038651986157997894573825523588847386159874433553607393375699031982032425690707279308169753739038081282296084096636011733060651468653972334596123909985975569242402519436743222403865466136835435337811241449953339907096383985662321195481785316515898381084671547713218263143632863249024123449922500555934210242050987520821228833705159089081539972390823175258126296033283527959877906807363703383008605792113119803378371697850720171221764408415296630411257248986656375424093426309864657595154835256472707134489154900804317139903404540598699202741088606818252016526318846125957484123009222696210550287955394971824058856010857559325494470978765390120707843910063494010930341009296269408284386228129748075277773896144384339495161814676670669418376590674857250742082903032229504233526235314661690298221711265707137705245114823007265820344183322874257702948293494917999804811262620750705954758094673087860089819990769021110535474388897714577247585441494979483007403155782733597258909798837431393362418546974908576920117320249802945469941171710923270591742500503618517016714551865410649059584989304758729372369437650591200345828799374096782964709815292525743319405585005875255839699916861317693300702367998991787285248810835162786881126764563253911340640573883148895260296217036262416931143885224173359632189431385968191164645122639525821304656295269739408056779808551294231399977364308413458194466117313907245807962946450305740954685321336498591297777311196585485468106341617103110606136223912431917162379922081842987427298791523626358607378639271975930411129947771301812392567851003204957423627852232952881606476951726807777547529100523811578837002987858340461610828870687273246710234225231098233177779948424604207396764540180083935479888647207830913136786869672738123691134444035779893083666515625668616091009501095243538942986143301772096955404848182362532686381573948427564589404627637726903121366373387164022484093955634063580769827351509053740486093809626340055983128812525585348687637882541885600125872478556497003683316019715913035996126197632030980285298284066628520073102612872189774340324928627697857325605848077238380177557774080415591834044851381040128594475072777831763126075788448918563432825378856921604080556601365381133330062271490247694682105776305736630510682018148013231659757054344063258269200504837090919900285019146888085352932515685861881640683558030752333242341706781600511936604569315572952449010021879362049846954499319089907653695299693631313238237264046490154140590220358054989797520760704099811734732426088681614584307881760180836611222439885526379873494193385855805570253715129531172709899051240744207156862714211721152777078779507744195742765297557532280361982646936152489943915244535841142840475633850269563744466598297310891452336104057776911882829180156701449840450439243573636957993816609242272355855297157693718726343636957303983824015127336903876921387113270566312047190613898660060765079769687159777605580524403606506994924115373835160493735756908926058233572145531410807897515859445948791306801538491604659085389370597900591548602624412151860448892445090276510197909146188063433873462304322609778866352669944766098910083004784296249075561608600777693834607738885130524058661855015655807975304110591883729024106557408798825387167827780627165147726914578214021272787017146653751436888655473572405759969793715058253064163916618435052839931803480769372977671652456782123497349064871106139119395129535221254354608657187051997088407016265900824263063307657551724203178348142301405875763579253051542377610953763620627732672329151164779009615956281002985978086129335434111379448822827454834260937201913655675897883533891522033041018532168919339708385726247649087483167006738209556375389060389273120815778072927949976229635096420041679809083192134026948177095414539752659959278481196533113158022774251559033463479978519977633222917473421307030850037857098185251781112765012880328625912958768708101129439136239205575109563842847825829020249431049411434232397607258504306052136590121151763067410369943474663146209796138361839120866609692790863433365023312869111436261320480214876205867402497565386735827751914947549399407918103438947826880740434798611331906036616737385026371620663168012068034555756124606895211248963573590165709253647010745432216978087298225493728021089901132419555801601094106578496187612314597197499915363719345375028257985259715869201004587264875686084115756374890893688856447220046598198011035435754315212890232417407042339579719398960748761145866305268454270280884267309963940600411190858562623183247747458521650783659932838225133966318954519545394067522826271398496470000724014424345457597699769963208548369297586229028464128388606643829854718747715853670512171401445188814123743490655397750229250147279687586628501283510202616945780512434590698090396693091961885955346690238545839869865458267135732607322931235680358566232754421464475823875540808053447971411350745337131796159143576367703451835741139593109499802945597168038009425649573745804543327034248980022117934216340694305328666235123007299403732598939379225673338143683222452840451458986086245701736323883186651829433086304030411831220053468999495121477316420884159531830495840621711471021225623883155584194857734804225130982185154859055095879525981017208817533448227066462178288004947682647644744293174869339421097209758964938576732383095097840240527931741315444139285261804059233764733152372395461989446850371870972218154654984273861653542538857684186275907252914332816851860081670807537219777049818502586356654796741878677851791964525890663793919521730468462482273875489212594800233557162057939528779604795048524956230799479750028757168540234937746283236502091959033012600837320859961679585352050859339227737939940834198428086214372034744445012864167443428681896185950066520964152743477730277519687522946744531964360924374327047931184289224083528476139604065529883242468113353421786998594497101119070739909857666294995172427205011838436442185884720886972424725604757049934503964258285104707869634677008425655051746775520318446050224969100151257699202942904139602981728337757447692348807078827830280729932346281479305687401887551454659864811272407685010951556273312074707438050474085482693307653637509600776751329897008667455674894934858975268887557672687697132602944141354217778574031296168852118794075303682605099517705070289321917416961449146690442877252714115619547724557117599606928232734293398965006445338797121528540714241983220530587059945651306879701204699347290849664202345742406449958599081704153411284047203820669288161449820603042751623223901400794808171485474515506047281336515714230329106208450442698234755054302390741869102459728611478355171488183356365980927622607794613471977077990173630542759172459557741250429351413901664158544854273100686245496077166630483741586620868930242684757243882763808515340690121533887668576161093387822147355182443728449820769844007161719442596563437935448101042612197903108723949330152764382133248979790303451234923500690266655427399472817053761192279960158569848070509578749849400002461790700586959140950445878924082075284554239244967820822483706084131144298358194707975446459361942097288948064223506335184551364359957668153778800331471849787642691941494566976328099119985213520698646952238355010904952409748577719789871152267770681710907364273865586507633646546415770016448398034921137768820911243883205385069347098357378524944401879734652624552411872667842657053162548221976995054308697113606709523096334406632313064019390897543039333058330714032030992469282657233351802109914148404675055045675426131595154787180046092929705548818044637766652405953951537893388916991153098793499770794587218358190909964215194971860444198100421991247574426180891611926607050629562483618346292445848735917541644211831122186477036039627457572195859074070714604227917395408759063761811659428168558548227296548180416548638001784100569756435150117314213521649074942907598979925178716739112341040183204592598206151690852419469403949508810046452286652266608192575122941893864456148673777062359369315389135069795156146701120278829690179389944482533350918168055004706230669728444770622451735137767276700060327523790563138787481355968262084661307392197241727600431769334607378104185567538541443921021166798396741699818643541556269305542108351860148292264622539036872559520196900980075162295656216044906943764161578695892484974847721820900266188174067395349226970479506892267048421316051010764686472344549189212421042712309695556702395276248252602607654314981677332299948962765611489060867206005258957421910731548326331811650934368436421858755558046445415570632325001895189979854182363706481905285417537191356107272726852377215497127448978951418065947760355654096557799394501534600533473521842365944841012743654119493997638970092049552983960582711330937022708062754616055779074058911436843823969159248704257627714024025094748147289679282092920021624009593242283991296372288767229990896110355451820723282579885301368492013900630236558858401182573125179920176765591845755816449182570377250236070895426702911755549906428378108533042859593633291076077900986273856231326840761424171690572268036979977909805716042100525650757847800033478069857498035146997447300755042565548321967157409502004990137355585972019337484028913997294862993884697949304180457004598526903408504271857403498896738709326867615102778875272581804912951202267662523938887833277631758904825617663674249378663863201178530176579701015843284988991753455843877487993555183026035461472312438939511524131354466351711417852495552013983709028670852472950037791783695578423119253163166529410456749420104965542356998615126025153110823756128970522956006209192257436038147797773244097548843531174843075526763247927516298453069585548615031192107230112608412759140452863569323366957451629374741735225938932324291467307115020445080814813225731513369005757361774382756577021749589303479609806723687547928818633672224959021380775164366238498588183509678739701839569436232803467274535275947021963132003034193353888180909945847946677498407059618025283215547725214893024029047479645861747122222805710778221309892612689814568392353911878080371247411847761156188229070998811036680508284125110940545258884994106851512198260694869116632347823863170661983847071130761573118792915450758986701443287274533863916291803177847191469468250114463040159687047177355794129813285147938102453667296388736945214426477720201326365313349383697883603150937991513090426846438985720828998227582564065195013503242750476989146164309013483260628768609087083552033016493929155512447857229568889126369743524570595098893104611253776213648381083689288781583854151300815054530247146817511523203920043906394430351890796742088333035375880189548335284683723531994186415777490479972345171938268533631480912660153402335997745261249669965515034310724066196891723085376104351581086558244935454791338143651661221321729693522712321225258897641382992986563559642007877960614566740466630642148070244085142065512399609207482553593084228133783961402890774223827075411661660005326404547369382505460355725327849869384654790315621840629972904559598002343543077150059989491602753009602528509341906794019421960738446540830954585467117994447848803433345989481866484070140857310573033502546019562043465175510248367526599039527198130056637065923774207235029891606972645120951571175770079542736360073971901010349349715757783938854034167779072109472843484785076274754747389991784635271995104208863478584651704248038420694792608027734665524770781217802617312694711700044124435694102342940490838381533471314525775449172560389866276156030651029828518120749018048860359946627932262922815817882912029313276781196335952429396485200180687559210153690522588822415695767560678902225821499710111749421589587149985762919043103037787732897555783531321655214772244684679092685910850868951476480670171834766680135768686351583494470336202523397342137684891932942308847952317247913024846092875761314760177568451866450669554579338992778550656999971888152641397219197667052867741124307033229106972489918818336552266298962457836090108966968700790075775310810224663782222271502212961213467446364688547918217414554143693448054461827591514765416916177490862232884080411827986119064541488786429554709060187531295940955611186280621130675699821107617347827891540175713042752216206842255863388161159496851030584348234095951887292660612401692254646803563463223472910136217180853530604428174424528686797294782977383572072944370524316116733967195360699106307888665435673807581291962348437450984173252950552501661919722617412408064288126849711963456436279119140377213715577654576105486818969604594502267331867947686590232777094846358701196143885874472276947425536376016113325556203805590222708360792331857004906008327057525427777275140854830511741388053802821458258388159686290703865431943191564342555190335587618140603095432969584469285453372707060479631737374547174338236382532455301313867627776356813283407133745285475562594982592470692791229796375607482107049144504708955680420543196677752300639588572626586415899496676145690622008348281273031580891491102021157074411770058456919015926879886056677291240089901923768705806733791210893808005364414114265394495909754594262083737667461949713416092840695909293072299918676148499879969205929892050939436671722625567106880149603634267894979843074216212517276539380266676768119003898288912702260882139829046489879413156197293292606250399674558041387098725505183817755998369665588048587153046743716227520847656889932234677985202552486406108055610827749840831561866126733836761832934373865041306380917315407622993082398161630661946556375310851496365444152505933050284734495037218963622577549234835863992047631437024571125442298862357342958617139027090773816281195840563374507641442223470909379309520101972651717602530967574423816959104784982839381368098800835167459025445165320828956860317898615963988547188873252838808325437857039124126554801047225309916162850446861346195975762745073742570756410002924983395517487992297575368048198093884599067176053112880823922108743680371473727429649406751376917836238453582213744067550899369358921041313417308488530345667145673296281881196246382470132971991396781781556142724121661646840483109855323100821907602723090263173457493075382809659094375691128265036849768078992852319741138210541296837554911965281625868667519767309549999098717735869628448637225279659639768132129624875945132934974168698217481757705685110535207783826414966007102498053321373760234565312472586004615112569040818392706148234202892304741722408563845230037986931935830597366849397516281728757393730082311963871538290931119345318719285680929571984567843476188337687699450051600480185814959791383331586329342275977883438417555438692739008861543629881623396898583190069275940982397509827021595490875781379825320128651724714505687488136484398517924814402005788861265607747764334670597514334759687243899851045307667863864951644031723143964788502199353683438729443257865832955282425167982633654699282080718965333510125797467076971160638753269577567736640009539702822661724965640133648568964408160898878682482501472179280855988719404935606232934731806932832270831008101116638166220694733269039997220095922370125825134133692842378368488688481398689680916771852039217988730922503690623876133639502603841142961289780201961315516104371740035281199852028110419625973956992094452846586121870615345220656230414344979860443490175857564029548091674408969555626091711485111585849982519308669996732317970020990121307019783679813541808720049786683921497962918172982694698878569759175778440562579984560869107192715086192278547783327223846750041092911728141664028505200740329207399615236262564057943326356540773249823990824082556906000275680905005647223904319294680436781279564683713984058767499644903734226854630730476706991257817665475736775800499028316527476811835186450049849619078221862701053817906089329303664294338128317513286174294368022383699388966912952911138433676552600003429481860686226672521937383271750347904191166056945820508581865893320783302233114175959084682498789994545223692407995577135786265120433992202309053131139456260234270148111680234998545786686456235307406075688948097383195145848640126557193210094913300812472941163736930731377641647210998569678092459871640415103435761359003295819147919793726964782478683594758810212348782178455942582146185088709671302289438724222211992340797786687998431389984388728216177230413941896557302123745476830964917744847873616801104910424950424381981923402359564692283479169038165202475309419794257668291800770560686762565106769011481273536368151509312087878625769736742603166155372858507946553398845711446771497012632534451914097693455477730401542518226103596445755432730937520127926637527863137357953889220970939855864439897687795109097734070840287097590249714029907418024943582380244216399594150213266137642807080106559826308451310455807376587549728207985125683224968082751567002288784412414613879641773845341258749863302151161908878506466207425613106155124059755212644072751211160454764175868290805538996460739859054059242974012780044516926883309040292497134748541376020954330384145320484251085168572661292242425621069343101509335432640066526205222037036316808694081944410950761144723641004494441711454071405354686092639572590157706399653515729482987656711366720228666921181843104728578716338968867197413971743464342426200404472203206022820024988515471670028158524402378273258160504245751093456373776192237532474017974589481966187423122536767358055045349773411370029819432831150359783296299309313875382486169321709033999722490009707463493060065895426906073166186077880178306987607463514468476902833245620989315491973642841301795331379510290054145137304589587470891843856683820711859475314230793074572824345812107839048711013265923704967389696155600947439397354770951198884965540200066708242912253908574215994688193728186374415747776901979896463899866834141227907451596171190946282675818515238983432116536718350656322566678888493535946822937489904686737248692091130768566265882358810934061387399446918961910528571657183651220580680977490620894099015785049451824463631036854332388507682948316106402196162691919746818101982703204906996810175922021700535342555534174964406767213304355312659114795994770793107279917035117606227816651806242975509130537464596796942031023348379704357096211906769347024943876022212143389767289432467788938589188836569921979538458849476684031656932381241075406694883990026370919150785781692386527089917139001929636420957467803792195720133149531329989672715941378089318675875924534149617101235083010576319263915010093533098779515975156114508592907414226831485766064776898876910858025064768772402849582787075661660137070619756065738410808255823129603785344231352645193021466751773499582579882577555650814417661674622765294387473179749981932944953462686561094256655363300196920461389658028199287983761045912501507228017493352927859593260585989442566200313221993842158419864355329319949575822815872650167868732549375152022101360553718173786863439300191057839222277635171868152456136036768937696040297892773489408264100541377686840237866798391577849968922862730730478063227528778708963535203033833166446766807389412176850057497162664345322551704148202275469247669322967799738742393466564373410734162558641321840882816978439387577569042986417199029066415826184564865239564700112351338147197521824246246754911020087713605178443669291425851061824857708445870837134061820109127499471519552750526979474493161542524568150124613194557308529394690628034814386336404275222155645890909453921101401215372017193288254328145810753598434789392752176936348589141215268407439907501550416011082955882263440453038390527645652426945086564226433150786949633554854730064667780952360679939093236809831110366163748373123010743234007356160435616772805879734675315554910371524525603021950281603043658305251250519309291878893067488594265568006105137709096310008723974036657623394152912717138981281105735758893502773316090315225249999994060937420329882035444628983494115814179855928199997755083201650622859060746145140716243702194495244547185289584591632649575562745752248150622334574325890458482941817010574953313152119614992316651565455868834442161813560119785573104485183228463038960092106222121485855089479559456231572980786911164698592998272924693929627472793427735452205947113228682835073184200811589515054223048526924036441294067455415702671404427427381163603453320917724255041682733848639570878150015040600603735557799099953639025228885488464625087267749259725550284379260299627953601801289462820370627458310197459301872986879165614420207506273529759682377128769453615884292083273609322239427293317627469493324624252495644771239602355855285001164005380653323630635143121481159857723040115270046967868235389876416918764445262403155393081922135178944579413787390019294179292189070198243555445709624915356383074384564434948363795953453148493827773999960702547861358588785972823993702632682760833845180527675961626676229901441713554667879087729441405459813575468679947270464061646619940943151117276121878587780425242552962748395714490121832332539732914033981889962487995109969431155488200782837056383860787448313953142049652824532250005213294806696956111977189619170241612454458761421044037034114737443393124515573495965923565363285726575087940782361261907155172755239816270952241335192932332862398769729232088554390614254655991167050002900970955719161350407605035925786369459834162649577983490074021872406931552463510723114178397709729974724195753578405133651014780202370805614952092974269936602941529584969547684289607853972602611266449581325245173487617523210499187590585230473638300999325954360724027102132258485242372192313328670067755216504621780404082006690589880266640283097603488563680093938318312237146141687127897174794248447492115652011182051790218544793610015532385145228446795931987682983832909589686733072737715374423762266980889573908303140167348988728945002321144789678759446968303842132269038302667091403525719920143239828193548331557654909376246490517343851617209521452177203629678193483266058609480258186623945208680108122406577748204792293246443392131647500432064247219995556931159954221957303404369251764911828357599712354708126444651342576207613598058177513779818569334006875033305587017604388578369167076787332057019639211301544726373725871722144169921567459315779354986178385532492874365453751702352290913045306736061995405373316676609406187712766897208485297777433433184299307873054252376338930079201185698703294105411259148645397865414420543852536500677755538397241337384994228297593903763117707052254634422807710477656460104974330372854586018476345565128812097676509023087322425489675848543675325954529859082368326150725580522527047446421440832345619899473603719389585970888340337655765867786906476705912937664502228751405371755992535769509358258142644078004640816582336967939356994476895105028184388814166793437707990872132299200475449134627009182295664607315222306308790849822286561235563414777701878724197865433360015904970174409913387492981941086426972219840202686270912322166024671129643247217528121794760642868719013997013505781694390324156647494112472338545635375193336284701701643029776152275828844532513563934052271957772140349225760445532466636072878100838629374096539377051984372145376658055432561056656355574230638955192403468779102425272584030111335822147120517088484005130424533449017714810308910862815764165260023650621859970360965126077134186719788696419122612412654660595963011990645667551633477659587030149926521484028044744099215485510531242401757461635038222541859134269884872842654453532083519159001227939225856155050487891771934765205452968349135874899355436495806219815165110807619216958114362272048679176685399321314171145304146409561884317999792612320113976446169609336864007109240579676237321589289120419996979954062832622367501868514431205207489854117496120378832010652671395950133767302922732870841200956441120323106006960408319690356034163959202808041238651048682274596353887089946439043246645192535272948584604742542391612627391699625640309777318274839796831327217770257488350244429347201226092818709595314622969722828911181483810346224360014258079292427114001655393168496297982067098267281520537977176512801991091418337850478948163896915293542457306101029089122538825451755838686401572008317618676882755618864193638272014871958078541039188344624323747701844976389936708386784405572074482204953565126312273519510490270237756263310228878007086097857245752532297028525294013153328702128371073933679203522090597975141289315233609919346559465358685456036826556039488602844734823105008195163379170597803418988757677955037665428956981598097755121340221426990829247017985027673116867464269881113963877749908526777269904372328427523659618553296847694102953064428765891405474159399536925979582496901191087915875742178974524420740982371873427567704215903770582917624553225065644040203657680430474371462731865663920244610748620033646713890477219471488333431744391513517604877627537510976081994347623112673421306839116524264533181798016794886355498957813596504294265402590324090825310112420966278828886032940660033169205945057391305195361505910124381011146684381212540780967697725405906793919655102343624538443975148374250418810085429202157044010610139383633058315300675606645554790384820779419452612323082124418762623468525757706980828926218843894912148123305218102435168555951870820502336535751180139888240696589914343552326184234357730547042837478481924000222503388428046828766729689294894601255616030629480714420190489020206555729203866579098748592482841749452277691587449935410244299184601817061570950483908854685414652184852336221543380898462572611498787612243705303627360125278353842770237379261776430330386174933782760817927961901453108762713824109383997365348529131674281089639357247165445606018769715620042204273803519393867453450293406015741011007426744000769404284140078670675379219716013475922265582966642405887412418071511658721892464606140814980134983747214924404193176343831634859567101431194253446562436718979990160947467855796523925668387949751242698944658499707972583029467125692085214987007198781340138441189016962007318628817734964729540934411369032638378651480114754782910198202426111314516412373791952237133771215131980545412058338116216931121172039378993816374969499045683246028733002510583256988905833464575052516932621299814095776584573283269136780979012897791093275212565734794891334210498757740708827078183214925498860455969167600319849464848492445465647944909906298414039872816126062997175242099162432430479026425984976778054629123177404129289193742344413930849367263233755447707943894736481184283905539045110088092392696537607900615560139492328335050614476806842988004833337855779690628773569795880018302899497914916755073556283803732818442580786615758265911700834923187258851422238379203748840700765651076955092913350413990620295308070612179120322399616232607854559285124150373449500703976673126821310631548919887430484769272878526859834878066184699531193745022491442747526086153736984060745281629042760487111304961638691560877535555471908687330320506642306694888398923724394542294981981781022577302478645165243483886674495088833662050049312256791968836342393843268530050902862700190383364955927285898242799008478510896044562950599832441909076019270757961408916521601399102659370831225486199796026333862291194625580787383763490306045884942835524300807440133436517180456796084526124471263204886212083695580824364182693961280286576573594223805647724845842313853698081624017918104954417412996441090878964724345194738184956452508553927182906426008311030911846065413929064536675939158208516597183720203863344417364911349296390730096302632844846482038191188352882584876313498815460351794342237791446713543167533267592110758186237397915501899837976178650242112051541549278052338580866231620432754771253117867260287742358318911198709551268924731499794541043334314311293163082579813244275807714966933077014219830138078948183717332660440470585733251677412840421135273522029725566429638086353868797003633386886707705437517585214838990317177142437403419165467753038614040419396553017289869240509345823971244313576631515667384502488944178491556371308682970622518554446538839358753588598409828328268353823458036612978011643847171781892867274401224572861795407634010126128017543141508532454428753385122395794296709573085228517535233704559476416985061538995550213769238804996397503942085888616645791480493467546698611884573074651241443022717298397431761582431909378801434032938814499088167376459256315401300649578391724772258549169850256830000283814191353474736085174235874061761509236674590542386391322437036118632358870433495650191990314314801551444612975729603631302805232182566177443895673905563810572761581269888149373460690793121375058199896126250381786799814930126175213970546564010084865820188494711533804257567566951557453131071521884415396545795248395656627440008894240620702698966475476477479331872661041847782727866797214871212833420364296862353682707664103234335529119172298454033525800048777336439771415152912927539963202346478484892043621338596256832209648590889020993637282066901329098617071339162557977859391019628584733970171479150873275217433368143448036807163250127723419220962253455577174597618305172684506762283930141256947347818580336757020456126416319388751077311902802523141777779075690223853565695584269944947582567759911335665115958160333821243423569704944422378079712147576797138972097350602200663748197335840029340032528733734152204216294279282658983730305919346453507817204399865389227757029215152420658932253714593528200026318268248919523116037666773249479323852154600156147869255614799536999901405518866702570983038085027029432602889000225553067470951803762005072932978381377536950015775783233798472470255425228045398434517627131847912477607601454032465375384631198222571432362987798704593210256182219105528735330847213600519597930269736433483863434367755507479962325461119228890456750839537097191353052246554733854681938521574794523105056791081245913301212005831663919887290765538952438192212847571232904732717677602594822235272676145957457462039709763940421822222989136257484399838736068558769041790181093717010005672912605663437146883613573532649401457736046150519159714379271732644447221277131713401858629871599838660278200337531380550833040935026391873369705227854709006464173289388310219427984590385851390300421355402837855543197037458322421458590050212566963711717447346939486274783290519266912258016166721441621403322761399262733789161672232835454553289843753862625493728202797711807938896597974493416311470302780072959931313294204771684416617886584068722385938287239108586429465364018830274610886995743010852031655008081494572996157554530757497477098714655383309637761989487710124153869310512886064442073606693359546239308267827849130306047316519254043762153637725221331427942487251999958681100967552191716531084267866157919767272835657409707259401284423013236864889909130550715663389297674519419184742009863423845003294500771505592124264318107906330596771531713576781876617719920163594710691400568627011967396149805053433766003102346591448718259791532448187003475715853601054631225676306925535414098892629801750136385390482732108306815680550301349570020024231900850003733715101300386848595226118885158362356229330655099445252952231323620010937915398539015239840895059750711227098663773811545312521772016760393557248004005477689209813818591390071575555701618462677721699286121597327997494124341875332085768896615466488270001470643712154287292922839993505999786801299510606738901100329262316041895402207516863988356506159951704619783508054561444115648757163740644930643459463279551504007874358271732824887597447920380069568701390060312271981417088065643019738247265924928316106651118169324955472063008691191719326077588052074418313287198467951992494141887613997779805809024764485589025202957644982257948130531282354764372308853880406056622404766789450980092597712998180463499876824391267243348268809447048259297376985683340041870859350035763257436894155077873646716272315365783138009690015734826057537301863126016966097492222876107582051201522070967092627861474693125276372423060028893617097413022026072541286236042401388588137618895375380305520956350789925869908594159227348592193025818645585221506040956428770061129050372067894331454634386019566110024412789843097402887624352927633798332199223108438811589550988646000664691556085007167511005360092056391057745534503903834773440000527422633503891880115058136074260426050061732569287585787349684034386362699508395305543705261148162970333115980068903061216779737122172755622608769722390990732633986986717328071586443173043637516186648598176460722472959828192033164986540499015995497479596574005951242661826187751236377512023988698019701411518563837028694272097537588931902831255729882459965446333865716714597696766879575053494798001718728659672180361216152547958355774640338652127997401887105734750099930321145654932187411924728321929657540608292909507325796084917086337452195819007036872323505106612817245178054398190691358264563121616339617865061308550266736580481913732674682112757045390699652411755954168426321167164641936195515856629722089620568274071688668151839961706995845246099207258415389821520119677666661913750259833567627396004250132750799272744772546818666259698786302062499388583805386139516658743520621707735367721528216919042995581325615736866962503818977433921056366094201406173808645871211994257078680869788029006665729208866343122881639419757214657991538987697187855091948998838994896836742530255602031352025552716194090453210706433732828618549986620624831465896996280475575770967942976472850855122019137040983829179363170893832108208415591230301040837676470344284573878356167318510614381257912429465663697586092706761186796732617295323512692488501221845762189722429669053544819732325529789192212106981954962305816868581199170794810254379747024196950859826796706773503853693913015606427794296125633206251355405213598334636429561701679556779646319876252208423413246728156109253730054873959677421542492198330777962908556985708767350887731896553564353564350797155478597172888536254290972832159883577301509749283810973721295396025569648744602298233156544005405229330536277429730309548811283471779786338723269971579215768465439148966448158850266685406451653268156916745722673755893285975133171095665311956236935974260397069628406353797757999503088429450961224154801345912216096491370988580446132556119891299431991903551873765794164146252657789272099734945201677590471697699180760226213331074838010016607272386170827942888900021337517929068874446038496761300108983726090949350257882843971220233129803019001410482949363589876325053126714326562570927431128142756485674544429238952573832263535798160586683597024020704062671519348168411050223081522961582889804617889561084922305846784297244019253163908616651157751973706063132569588698047429803690587304944932553190655149226735004323726596278913795635154564480245957205504823778819813695453572461033144865083718734689331142738684173126791577017934830276712747580264257853608435555191082393132642170778468955049499553085057127860743351525077185457160979978349866144783411273201252849299517403984674797680918180227496338637299047625001945652802121322391094303970001558206403315849893100215375108107087397984725199505693222346912188529054805980308439188971858124209770912776960350553680360679155749487416123138765661952096250986432832998834508546937806924697046748792039855763740945807289685591959844626870434377951588712432667355017284243603409797842085532212211024231823287805270533224811227682546319461180562352477346977944582158795043079441668495746369337969010184017384960785485178512303785784619474749122862208717117240401404299787502242762886395081824997094506146457967469341170550725951224460000507103399198156074590270862405402327016728531267745848274641390344220991664312721346402749386953265392591664475103491350947632486220707848137751704071665190344591397397794466061534544766213847087387090752545366636977686916877158363971939794117867388353667126099848446524695410162424732228950539857558811495831797308502869875695333733674932887958085805050530169295674944315369335385036971092393329297001679223868436826682137687062177118440210891452783210167208349743711898554254169134348192150055497467057349109385429134548417704501816708146603800412824070993161531377147603696060904183740576327154597373754421385896950221075344281552091578943431878662736200396102063101292711286093185761418265547017155364641271038501174417260424690089137592150959247189177262886109494654828173223062925696325845806870822406353689778707437682344890967722592782618671665312553222606610386643076678187068600925606605841341578137008459042597967375708587240958937858591004372257090316004710871680811118260237894799819579469384213034264531340370753310354456235909693627922649705020172654926825808176976365928117424137786089902759508430788046938098320172239062116994928254697567006803513376819921264316502386498015385980341102888041446694523749021659684798451601284832870666260986313374201271558663246390100548646284532601699621624594934309184473373784438021842737662301510135137319111357132642579209580703724303705612508792033060968829469940969525217491714537190221787803261453166581804784771095556368092032528482872146695220635536828678305606413812372433583093747891063847656738099951054294709509563007371983408395529174262995838147883846010532188068666067034078373961711691480747140505042676847727865728033071227565214874806758703344271273650514716698382626413139611117478140732601443511276757249208172687402340771563404173399326688324786931383114555496431842381609821226587105035438002422878366352059334785978787176459599021302123256071030639930852549494540981506832367463044797891572557063590868212545954898436566422956688599731773075394641796420093913864542904390582627515281584937358266132670257804459650893748675762565547529867272868217180915432053856600114220294551520619096954761195918358228101604204003648198296310194772080743397215135692623657292169320798991048640517107075027867218179288442124566695910869249347253825108952356949922654957596506090263315401941702385061672500349825393750368987338545866783148845652828356465765357200526350946341786697977149032247978185552818199184850458118106769810397195678253933792354943011212334821560508115716712582019603854305395838436319108519319467781769566636910603874482073179695085346172455420484321153281433788794942659294919287471622939164960280956262309294670311241073472087692416115699396851216545786008494052820821586459008602723346355161928805081837851528615716146698708111051375154125242063384064572680352520556660301148133065324854789874104199895383688644194223146394438249819305155253355915935007327361368962105786838252494609299432763108354813930098432387766086361165662347140288971312731140169537432236729343140068683935497449672445318421958282026805149292278676671331586427864500972845853858461089483583123067886268820680645768134099042426119978144046247499703791675429057939736626582538140602006958928556670500993301094792741861087730449446781620928704851002817694090699813717230198389833554691789872302778951340651811785416779449930957964223556966875502165490977870947299574962836483610971578712142594283333815312343976244398361643846378615968882597014616884437581207067544037092120268598030389884347699255857597771745258711250460475160082070421476573777950329869570825486328292647136563045525426640481521684755386359164332369430492429241793360677143312350470937907690718866479386423100466275019913501327415247637063406323673128503722204016341266978041635378778176110146875955899518056266601374185651995841573236777708830818773356774784049879158776696963440689171371458715986243158764363676736414250000930924127695160708847396779028446942371215278812361022215694437825539538920402279757639995456942207665237636038938044337926104902290024811722908008235460728115846456180986508824382784053669648765706599179911934995287137555300028928156009899204298958147381516129656893198739168569145320816101530052778432672761028743283897475302483312217394075709188936251815863183924790453223730725746541113344447932232176872055947100665787924353800844334432365145536347617327390765228637243450444378672380580375546947071927404590095995144149933155399161727260628168301025262891540759634907407512515912542436773149559914520769886419832882378078035864627789540771494269262716048022704766738888606841903173523096906737866998783346427181331415170695285974292601123133841519431602016835882350486514842183018204451086076240460454018984262208551803168264613134380932685147624963562794333871407406916663253882184970026533949488809457297532411275571682166704386511876966424113912806113649107486041270392190269454887175766485243365784271509000701850283041048501630811153376261494094688871370367943166371670435430794813907994000222061494088048508482470419735049558396550372443377747427103765299421733476917905059701308846285198214271594838363318084139162478839079141779276815569002553489009836664717608122344682309979240285714770419855252832385688145976312430008480052448009524218422463105823923794058740149249273201286638382643157052712914012568143190808766010657310362023651381153684522883228815461996182395239686596834138533433255935618394046792164278084993723058514577434963890356523116884713981868590816259723790761903500160848058297344772003166267554306571589674897867573327465162393138647805887966983913587272119254017694003218199516612282425289532901333431431398001376271806572426916137653994693164948111881356790327174037104822915235676267551905058855679938708050311822102105064514267561209809737304618772343211443280836894806630197402093808541031470028215946651081516279190348672048563076371381834291813292046643978163828069708383444476342218712398808245359362999938981236387357789492157426528346782781790121396586637321110888026712371555762869556813865178994971944232848103472129938724232538570778865800193548843728704932654155249818828319931847403114615578303174959237860621615974190705209758425541915153389525374787040235895918795386836821863255102929472844278322454559371264684551123862592845579725275401118103817179210792831042445006831417002000706342317123920731469936674441546783044220378627905019093226741968049493303946309367628638962631687956222013349161080382794150112502243803605759300474885279684245007416611585326203282462052143744479401630170087368180567103152413248952958799316488780028648199554029758268456833813182767250008585615625395183181550530545825301577208636989740393731471324821756784892471846374691345349156322643470518931294993807383424469769357945374811053040608983085444128555529177656012401129560636156738552450604370255739934564328231758606522082747684130499869615196200956123026279069059711385619394877009974402413369941551385829296443238210789737091469073425016226559566295521250697045524004986051046949158884615925304185694188161027812103063720555261997223617217811383006082478041428846998929536581081755732448001641911212183066887757016277266430091191352819142139229167731773851659618602395566166397340820352065124492368553090793382319500531578773906302705376603032172608287377447259788517563082496241231292669972453030397974555162964456004508240426794384410019700446949830453065555937368073814060853870711504806846582677600753500468796759871947083588229806188375314948008022527173196594210025709001207915095430203506924999043873916615465495126137880108506910216839371529033654025878208405746773478733031529432634651382769727250030056026263906181699596563981338076865284313242816194164817809393939265366137814583791671404973443239264499342026058960580684920342417908633051892074267563404940901979015752824799788463278937319408184741855051816153566435914699008188363190710844888127518657197119827309810635025095916010625156417967615116530763775094717661325464809997810901490644432766994372842670587422086361678695593353341445348365400803428523247123457638197390543150359764726873877556339941151006909638556080515486082331821102889562496305041441924934227431621568888297077219028313499832998192012102026152690098763817686490710374705883966090768006196757131909198667085847270229836864624754574098042990708720797659690443693752535806506936404422829495712439372808671648599428919631367454543606248075459381923683858379143202815661557229527375381695747115445849420425444587684162156335215232526240733962660924604029361153650862355078417266995046579261688366007348632166656355343587932956628659134396094657158797971616095182841470217891778488639888291881968376822737885097035153605722755059820026692895616759522496742454327172696745595697486120893356846830554862207099319789732038740990208694553743227530778294877711421904038272362759744214179203526752084510221098484336561679014402858132879107593610957195553790048687407741067342740278609959085781805064993671985360106718193847458880318361752287542526158059367328242288276892522089164113805077718148181536787323422799892115186637160692667516352756528995305096837520082480787315888017900187625090306865132217702177580902119668542522645372867911688272801325157376295389929411930212395098368498461385869693957187747093910150193909623175425816294562585672837556949524244440310018319795123062021498874257219329596691693310226290261293034638764258840563165452073440866441605089949678239666244140895939161751341745793337245479153736835110269743486140252530209812653345113537200736714089361116113239002269686321975010857660560226249373513512058874621577293469186851787120591886467889289197885341126106606052206236077661570676733653828035733079588719821560156672439310455587289726302155085450773156936578347228328050362441281804709806477358663575052389334812569089256316968851580555217587069555350680960328346129085679853471586548990218711670016803984863648501731800490831072828302015231797253351496224878361831874779490906127890268075881508842462707897419944446391032738944507511719608938829670795582068714927915034551899490470593471614071709245498137182153001331506158219760364558338798602614889736728152534896747607330742929499851230441005228301408945911955750904746894771995572650168616591911135164259491790655834863638436691404586588032599188118339789595434005466541532025942861866611092971307692728250433870613550158454956802436084504039827100430256531866480563491118229168421633069975108425804132780794210743473659062721309579495242358020353155563420535240921302377473068174476055669909664230530277179783884895134097895934775871892578362005745571168904445961536844295124186727216526097112880060769504433801533443584335764682485247105286582562561250812957703190513538225338553503578976390667623068268230759240130143841929149446509614335679199681214775749063268321684964954194056290709570419945536664530301414818031314200509172498817775066982021618946614952429541353366957160859726392744977881924945780481919565387591007010671429545656488680675500768230162062955103887633324278762949221852936475581692498087674176090278877326789199167143195493425192728997374662910733250755204220851780749675875882167964734869450634488471627142416583779317394665854978675932189621671401006059198616664084680732512900429813924284071327524424365369837728744017362326455881951007729409444331546379338561883321996670893408015009467406559814793960247931212173709857617770816339227539519088178324850853210824266715038517239557002137687373375720857701940548249258030712395268520707193048916277771603797370640857759054292433206141559644463560878780979811289276161153478768977857483790089742706594739405081709696655352836921579348423867586475392930503757216908716200752996790205637029618099883158576263935239552860413894216156435535087495068440407383177073017288336233763416753310576821126126007686302881556890351832795785170924468941055580611548248689221123006634044784550519213653441908659912386791634306608723845238032298144266332497787052866709701910107904743056685261785773986081065708940601310505958643526999937126793922757682509785749390215701158901875074867997035036414893422139407855706535041042609202654955579631701417077868615986870692244565809547710449247405235303359669635273119233614088934103272175953999543415333351789288906998895288443408087173996226239179608823567814759054857487681435639281363310673827153329627879089670877533334566544067867339688668040448804309347944517621573040988027610293985898535744230621660697813088682127130631646458591511674501876730368904916243111359666638199340595352599459280053426587667570158498540207213059922579775472674452817741536029990832037040088062672413808499696672332924729444117010846596571178495792575112793439265451404175502499111006846105343688474260692711865458485849806952779313438990119380018633013660601175319871159606889997243392361072080959114181717036578455375540278851929854424814699179708933008449439360517748838607988292876993448749131707339593498478650041757380057071265081388174217327643115270964738384554084595829653994993235752732484695347593520161935891455039750537092197606105663938539076730215268718197461372723853721706075908596027044429849851717798817790789584811528234332574220186615783558595163379054339704898722335049603994998860961104722368621373180290137356050385721434271874483432942830078388014735927043482987237127492865947409045416106617621422337007694244824675926615848686980439003902071308489439224505207247975878678086412127213945329473639900530210430903962405771449319885828040847593913199606217800950912424101518045590031014203472790806514680499810250752558277905261100187119489492275094218507984820602072790569171494573274096576767805060515926052270477355716654958641480560104827744568779386440118911649126785375273143392116463142171706079618308760118459915078327126433844319018104979062910999618693499348708382867136509211463774651038089404058907359866104922045855546513103772581293436405441871008526145305922737051803585834613960329052943815703588036343654601983074010983130414353289192661980915258080013213099019775589287510879325787472850750924985844973166274472293891356704863344792641714881150809850695329474442634113626403205405871640534727372895306108298152802117118412432557387307922169361625800885805327277445315539233135249043358122251378853689695522532388998941886672086970432383998706176477413614442546786670604516889805590107839675025362375996058480061108536619438969735399492339097571184422022572604708012227147833987337476623896573771932877950494198139175374381050293682942433790472345615898654906815520046986989442811792476490678002500615266739251784008720798126637539288135111115692452798432950725938208912847357889620988504496860688821952327465085570420755444493177395031161826904393075199586825564226015686980761071748601351206664112489669420245500953698270903277051977334349862023292348559797476437622725754907948720719675532917457878662183277276855086869479496461443884838543309437049070239821183367070568225838698652293168976064262751885397285427404059107670120806390538626614645013012491705751721134182202394466090956745083180459438591910325584451876094520486342992898207616834947296802336503389027012475840768211780571864117282665013939630804989819052366668530759930124501910050556982717728729001490072978962002172168227239962307218859148166944495273754705947570834548838891401600384602483338938665786843143630397184037889230596204218629231433828500158674897629013492209114643957183789321010540141000874046351301272072976223577956906040037784345292032288160284488808571745010890426417929046094123177527650671804014356738856725581123882141399500535665036172406484915646445946472869943252662574253451506131603212658070979609034519624143986239925288688737443260651183905868401251468685672934288029620110283536330532121269678528749617998894927618623484633629254692703246384628111615926469511331207178488530065501954702976225443323184664280715290353978487283946046221119985398167950742116652378889020061015753857755440544008198176382347709277092009164511241334488831509478531928626467825954005848429213290518458617484924419193816914019595735159108214508072068455516562925893803600119818032032789667932449769241288502550398139464591893914889185720690755098335766992325476804800027584832691752463916609094755969389317614609615255208066676987960556051239119708405302175730112729849454923298425287170046493007788324618510221334737349518239495891479822220269423480136898827101251144010633398862295092583422516895532937485984903188783281426461587590934808215455701391291711448622132729944627703871866445100787599130478310505787876580529387099108755694581249914203980831769992754966242381787956591400705001368639914848803358727335419064192363598990989646674422262790014337265984975313031530128095644298252662140362369737265063602895815528322881426886605892470723997434130330633991038501350528113105477682254871568241241332476140040729754225825716384106624044248514244855745363024989568899490959048517988175476003312498028003409999809967771087924950251473849891598069005291710695146294580760596197187864901276480891427585748509864966445007532643703309621443072417233966620491260720916278358140148792255241363853988948885438954838246621853023628783928318312043327159668226937228734342193551892778748426599239066207419550154890400740580882540265548710704607844560118541335475005592573296900712278907129767241394692262637002896320587722841383085309289477033395012486943473656100334880711594290870764563026727346054686008404326299441927639989155497804291885521182169883784739135107775220459664817362619813468717079624669586125247247976097790782072917603021547232985050097155830493142513132176527948415647721145235244201179214792101758732245371038304772178346394211965839765086233976885494544657546002112648883432430914628719231368994024566195922127035574216537549658943015095972659103301994110331982162543311926698967707177379209581015328501842161211481462315685773160470313118262510779305108602661978437600452104771668338744813469074924420648175233561321358522511114498007299916472496037470647387628165763703766813748304114070792625122454010848803221639336201977543677236412374849706730280336040112587315350897948188280966593569290481050182991239764177624969566980596829368290406787317618511248694839994700645913472401345651942953249364715230264420001842621416717951192027581051901093486580096582867666233464620042440196641310981049554730083253415967652778177041494801071980345691349882189985499587296922691398667302808689868786656009038662236216353325923110321423281996870229585282450754011453805581866320619047411655626426231386551982532131266523499277938806354437367308627190456874612477337548487322671426713310867043744725414632744903099390702172630245062564445959714766248764701007999617392695106368761773606908423214597130163306623186120765209243196883204998096944419335401429236466568710201449337711175616552873304318322232870197993416971374377806762007507574683366912508571326751584405682325291942923466373027563997044711483257634718428171961356584240629795386966040384402270663933262359337119056044180998292485380784576660824882657968417205565366938724180592803374494004452883891204145049186321226605989180162912881175305187694363637969914247647294857809920295868747530004626807345278107776300027824617859398487131971607849720312939703898936331802971142053285737830024211289913110721095224156006599665273543472554117540333281802335281500646644935233107547501555810739098699783050936478736703745110936635627330573137144029753349598785832567291314810242059327269600663042544515521455281383498438709258487235532542054032786534553010439372927001174485379644139497255914453765443739185076286703658813884628428103845202131869665524780562531543086260437760508105223215757680665928155433520206545335213681671871972504381921673946153827407018602939528933553287500164462440014175953465903087233959771262852782167821574853123881708460335617917725924328797870560409908330121295013739395395763096664467083412606566240778192868227979913433873605949107651862860701212540105857725063895651430555272731672556917152585481933186379603583103387082746369005086117299165005094774040676966493202274878673656478049406069903469372125928563542007047252170793737242612485041711818151738908878600171851030988957901888478330444483301095793023103167408331283152706839532539798828264977707806241732948348798828524898413250986124663767852774381601121066817215229545352925516496289652520481355126890694517203081079690991673110868834478156920400458125239551176173663531825788606589531101320948390741449098495775309128488841759266405100847444307943397616320412495595050322108052211989610953618653418123555629822790798735563928507986513210176382965922259234539725698375365599042666713171403924954393797519273511374394729774844622201286411534672993811836994695313779934067031847350242783590441234753477378825674014497447270886842374588325824579868284613095066817358007558699897040912319030706149240217923484626097969043391592304925764284202275033790540592470217474188482199720658969902054691382426160541145624083001972390559823491485371509372947311093002985364341169738107586546315202344957873139418103513671992682299212616569120010039943864639094594126997188945586112219799834877314189548985306485915181615957274801382101296481283872036787024836986155139994451740776340421312819283934826199464123904118639179408047775559570961203035710557706672409834633954576641063074911918128648854007988117814260978706674426353083651360574354630711968982986683951634357060162091278998469141552008421857895937599863597443426399280320197466270494278997422800654061712659975281985650618268290826037581704001337970363648698789651013464849809220119950499687478562811851473743887050669749469110673062498080238891683735778189859763342591502176899946059631776934870486287587762496642606714328660596497033988466836172645282819148604897073265452510326183994097722080632534400561354273636868579442879014382709795819040142760443553403969829443106495992744890134760469944852640035690466775748672032332315190026837468993157010302158859816856448177284584727607109354952302933208827852746384220577216726296598662358514966596720309044067872679623118344729984038540568643317939015656332611343713519883414685218409811949626750971035211457920334930007952631076682853753855185679826335755037619197947901702048050367724574993021670868653680223610565573275778135603609156853649950977634828376750743094934794592294521123471060456733647595558462672683990884470986239763116770241560488313321630717860005214951688157692603656545001978854745447993504710516412647822065205955134840453076842954713881338928035345711877421346367429951071692040530040419013609959423678931493227030714415493564363756147339692993659080273069122213277312022134989376804375989890306045157080065006636281818471814964094808384583365092171875350951343934463397832621731267157270937608171354517067072079536738043784586003076456973551360152353286188466636597449791107443676331950012072064000281920132231025067268455965850625407416722518482423793029232175434700055363232215877678045200316562830245041359525238576958395190636071850258521330674560056136736319484959857271965915244294304341112055274516121711528031938058022173952476085393152766807654669713951182375842916789319050097715872262163017222291817020551205678846909795905541891845915787150997237353279614949772860381729220817026318802928152332868778704741217916712795220769366177983005943903366024502492131926597029380153347448498116561885104081926657399548405711923352255879318171887671598117330569883587798670778848198972867510708273119451401027970656960459234111401814901092617854486217392148936630350342096019465940193972451444159787865441710862969929177615021730332803451253380008480894452004544508256080892583975388409801133958007396267938414380174430980664505565853181178230248921980514161499306591617361975792139595650090928439536808713501666733071599531740914885912294888895719901579618976017092766807346986110949277582963024841690941135405292708522970757896676041071573446920724964149928956692456248682671389789241347880784843484319727044898491947169198470841881080215899430668760567796568691165094736666686943175679531313975236563968649475286295765772357771774951264639737572590856203537030416916700521576218742730295606836385094850745525601848496243219732491552500404685594763995045064034575979438658289650907999889195053961238633160081039329529039506113266028755073549681475974594650646211131992928634440396988647757027835947162228607285068879679355378046360450244729530332040898581757612953676430352062113059451652470660508745483739839711225480807780166778554306813336667461280276256995212766615399827789430508497821252591579017335575211758943530925798156977986323255001316352919221703532908608548968217953889264672648218361265700144568125682432680804229272554798154772629428595368370846033258963575601822993308925729786941187336369560371283158178011552416337406011272225871261653496138985651148010958477020254337376993388577024445873308783997124838800038452229356860094197535148743111606272414843678301505752007099170530978186271441025401626500870809076559368681418334162921546313072641268807956235648428904340270973939030731320805463842547126107410165589404351765916158461531458716002494301784215938914410934203910494892758652561411881531176674647949521583353745472314431801875016095883927137146809673820971044772068354925166553596172734339567822573376110429842674914539294323456460461907180813721897439825469436068491008667680877260012530324013226525375657169105984401430495960290071480881585797187018445741933436620256002589783483756055520340790678218695475539248220577303601740267359225510656071855677858655276082439427453078026567682430031001621853768204953975679872804874924869031977601161338224350692216266178263966494363668433337883807429421665875132998403055469641457726052776152205047087202228760301423509502881286973790372020064023110882276412758602465505826590032663252171893617940458240532802796263887163980836498523611357095375446224940228203970906189089576897962880806353112129161078889615056994533771604240367156096512778091579015165316937999468505143807165807833856236647782618808338049785984041695069447077019922096158584495532603454901136972364876799679815237481625240951836001664253635636868010890698450193581299207648749516498237181757575481836180192609399929852463601580453564363406841377115769930782518462882043935912613516193187686294591684283695897819129860397228400661276128578039278774551964622264804866522834694831638218044555891766270228168892700199963061174692625538861292473147189814124674925754583516329267353021125403861585397685383103970613215915130529367479172585020410292356848993729931769155657092588253202923090539792922579967667747658371004336149338324123670806282353565359497508712066874359240224718360482726491287619290388603761922450427203319556545981651979128532436950502860383576697836938178474470459692051154164158873383564562652075674951579438236136152546069320804107538662779088490527515518181024534578123461511535713347163010628365159945699671372965201651216649361541973602579197421936836968032024424498212625894485227287602427707092944228573023229039213605587858120207540361399706774231328462221991050600668176533573511410316700006529524776915067936424532768816905827733116616369173655729819778394904313182205127968333945834948711279261451714096039581126793898495319716582688857528652720057180322368305405498558902919118345729427323708623823448448087142766233293558013153856223028823020181648402843210282593965455497354209949717813799382074381693907071391587610792172777093287969877985796731428860172518659331484721468392121208000555780349812554389416022321460326589202343131289799005453086991216052859805655159003601832208003794136891786142309503760312944027551797906496702852653391067269231395742990345903872334521666487868223886999808653180519363153886671811145736791545334574286011804178617584808398536928826058528917289805066671127470508771158979027166046905331307792807234931446558619019105485908033587340408074281584861793537995391919267008450539971062270200713450688901065664995533743266206161354343649957257048487438792085616183877787935775840763016919667728005543926603350759897442064104640161230899684129279452261837111053200061918037983718902943185419845142890462449344395396506754917738023176537327067933500048752748654323476566632904901375873986746217225660271593148193338017556777063623557376035626928939926219157088710720135746278177954152062198232873040844845509632593254691720645513067542069422009026594432422909699629410111401223632245064104334304523881325325164189945503915843290126430577476632180525311591757644612953887362240751509117812794793084751887451323890852420387060514565462707486695658780428367992119425972570414461500081102116669634817268696049673329340764959609688916093127473338011256488390104890392163857351543754482754482201504616573333461622847869057302913473699173899678595477901823843242193670289268803171780775037886359210403041163929344806469885693030474671653925586825617831813274879077955063316130307242998664925263784412439118306273271666247451881455185265360508256996056554561351627894530580093359479870783793726061800292408673584907312954465579488340045150519874168645246415601082180730160168134686634041877791073327315700441069620613747090699515644690128930926963559287313865753184124971736431382046812409271861267924037328975764544854127553061788019441395584560998917912095624953142189219093191243858248018722063089599095777044114736120639754707873849654163596649599306310710534326106285428482195572629622017173914723205996198457241370565143987963990018499146879573436347067292595624734972317834122334865374905286142958854870905640932134214886230683656822506877678221135907374706130721963201380574000639852636031585976325798048150307123326270942590833218196991596422355991405036618135843587324370600759831130869114124074935435841445013358991866495687283234689998198468217427737830559458626612385330957645284815603263742989332943603963626552312568377945874506855924200553269637631359838253480962882054181714637587563520177262531347568838624646799861360521857789429409297862135170247367427887614178432413189984407834840385335845383582958245138251200189028948094631372646644113204042488769041295359547793570350062261303773838579239281316035112777569878181557811661412558385577480755223019527455635207572900790619407900399780225574756894378044865970143283206909729726741940739851571028178570013209923561398310306487005801758704217032385465988725129378085034951493002541335968638194965340279503524390142651136105250777500738001068557723296222782503150047474383810953308525071822064272973540060887625761635013240659108040311145493337474626963241465659237385274555076097583333538076065927602228479217667353474634138897684476921454344061476441053170146141678031588820404313834968869293230097372115065050780471855698435626884662695657988314942663625448424742614184012868222753283119685016413501456973675246034349925723922835856039244850161065757354008555734376116129768750405283581896943146261529350024222926099916913389404237036083089915049867735115451805203324050177531187741796719744858312580643026271022736264959744187148544801894176260608500138895570581781157519563703332924209372776001494561990676468498515929198878201520578337317972451207372829401072776043795546300469372046605956503930435826157284189228621453983223313892843370448774336343869823379885916358092223517381744463841025702092697224732272929660230436359864787411956788205417323345327809368307488745000898175870900335743343193572819224801115163401036835464940555928891286956356647533480845286657011439858213178850602305501049131401950350473807649761471550305575812784371389678460513798446802586226423843267729063101677970572341641197103907785508872743393565438050786293921280175088014197152414641167966213860715501328690364022241851351598027223882713488847026245193935047885670100008831522924193715345781734243397094327485359115911608274465559692315227126544557103645784956538034462757898624155674059007593646918985963451770631385907423952955136884566085469905576525102485709617143283286563554438420540142110283095516526226821394334083699388457919494942019306102666494375126387929238012614485859038336623194611044647734547941882998171307781344701076921494466046240578853753743163441465419268385785863125345999901965503596069085223185329643856618063556259533552700473996294011854168800309929734190842950457027493798424819364052148841206210877235481838595567631442039695740139950247318031732836515728746080756845277620925568572995828953575944143779001783152691707842613094636039998679230388740621641102350672300021172325348578202449943840580971728004487959932362013788935543003525877569094133763868484935358456491934570623873510006114560250207050498536206472396446144989678314573208497364279495262106780130412440719363234694053182791900004057231181130039691515055149601432377999474345678341803436827374763309907325895872809047232015199980414861066466158699941099644536060470944628991207115952773008238053375752059565009642990178642521443705546604318354172888911431541467966130318211510040096949926490745000516783811149062215679787582062687231044877269773625429680281530998888073553467072885783796951290949773094154193800602316002537456889028502989007462740257820404134534552676893903908668158550791449908361995298575252877137814888152420038328297699033921827888874214934284232666768462063096214334089423428617787542791000518242486994337232620335608728804194950089763805280401774308787269615987245711316159705150335685669579636133465964127347809672097759227163266760757988949573724974119870341902901568425344380549874153630591364404419223460013240705018716365331371239926845766414132213583764606488654259941650043293991831494196061416424346671323113685185933259842684760754720790926666273165860433444443951681220255512018301219104198891815215195617416558127045592260982455320787064621688619106953937844728561758479204051315195503484151439139844862285661595877093532175349234790147141608703559418676423357741372722622600544308314093610919321621943240587829725928284146380125683288941698584819912246725070410514918957693970287431074190121703561731211016117742369909941733314156423650593066312748181585483030421064300597265036100804139925383468318093026045384782748083172689086376685342520220608061211764221232467017700423256466838354470539461285899424703506827230480613065342295361975484760145779599051878115730298147659109425270597172699902365722083224621070748680945211367280934915043560369740102425348065710988588455126332925793620932664720880379299056615819201084523739277711403056353435637124140909443521817303438474599830662807677478256163900645362913998580751467528320286562718389644244103401840088870451525814746908016003858692161250090258800069660077336892813326811341984592536467466048697866027765728208174163638769095819252775356577927147702615967248350295604630425615543088589251677183374025885581731663169693547457785743195155873152762266350834630495911750490443654378901769401122493166104778836603514473763488283797355288689315410569969882275316174295032976437967809658507532204386190956134096853416181753560103625486960732122472698070321015909633061914456667183113409586776405695725392191658044590755328233175357915221588009146278284921469455735269640521234358818262682092323555376013590968473146186011026734188085404813888559525930058006159538957445845652438784833746751671613237414254419864177835921984286676738953136982517846812539555051310160430722354043147207213766722259716239908816558964342276813609269984940542627629149113716573359489664196463519146556757036522175349693559940031147670768803165057219652514808352046663516356559104739670266101673766961253232968082310965986865772024906227451452570392331884925382958775471006742596143159353444599393760838715653627530081660385682663471141514354015393615860942130267863997846414569179715382760388730274735268653881275630944299289518881649348701107492559618686728626852354297225155651042858401397781810098914858687472654729576765186007040445665717257385244645507367465270937208137479347517821989360177950488003196366522115179927910925563252308577372449591522870993154797574684031391695891727967048199810164181480129656219877892251983934378131603823379943124841433653122256851321872627065259358166133819205377313638241547141288794851485895633255389630258587386794940037130276370236984431010667728115170934632485989172486185180765154859554152270702027229672455554093936297537990904132005169836509737363138079425085068390207718185771038653625359156327609200119890359831681299869644652115917055639328122772068940588800353503767588144503272241147392698766358597946363096847042930386117508490899547025772840210005156914542729905488172940906967922251008884283657667069991866521285590414629767306469237654523449558138382530621989833230595398469115351013201098753961225278203207970992817777437114231949881931942065909195032602194256117926256070544787720838013330257255398024129394835411936085677653614121523907682082341187327658561154333482258908601177713422627946842733561166565910219580380834929185055627995299112561163128930298484632779459853230427912381563834637204635775725492605116128828483417293911542749402389138148181415369465891426026306674377481853479672142748528585361125008364108677311195238147062773299325333858658161359013222824072754703724590599335998229650761096096404838017849966028112618358366462123511674276430315515919572549785045481375101253273223154038763341051105172435284559642378167315049477952528726597037061433480188027271046490169383958167152193552187205998606807749060306693330164264207849875680619576072395665448592247461231570012884141463210803597425304823958310136305725602613984052661913254065913570318907898414441196676887892965494169696773979034549441212545875928928943562524584737622371559065706623533644893578095007037370827662956303143387408761987684861720142733345239288335727311244780589408739979795635700999521710241380812215835971234493240563956540566587390372847686436508393819736594197951239984886547747882873120593252873583872029158528148186079413271796061119639746179725568095602822720678347678177000658881161241464763051762837078571197752217520859203159325212169332641928295893165129598199969371636561097867004237672553258256861341928698239514768455940905804141561377810182764715539657998673166872418878081102924485547625279480688347834761491470870181333529026963667137903522468381146515876226477429824739130307329106100493034890341714826299025963313449283436896515356031197258970205331012832620242576736722600889451560534161315762188539074075597869847885283633667204539524555168383515120912127328762311395778051358497884910497291218447646724298650741483304725917937758493068578022143119674454804527773289694609710509320683005130674344895733475861057044827534038210976624254122286270735222092040128918441997809097245264595762911862703887734095876630753020165424955664854241342928142549412004254898360479197587933050483038116560123771602191902379914112694800931055412144571181659939988469620858798187033519612999363700649387269482831814284093749328766176140795299385693283966829555091144935420933241663061574710427697902334826063554150140014466154795502352679305787270368802478819636893903892371782547457822870010998910392213639141678977505311164261635618184182461236193324229633487889448696444230512723804129184745426459721255756764753436676689126650396296734239975333701401051116694628565903714817559301548718101029088788672187748369112149390617290033065329875834244253955685721428081045373185854578056879517579033724578022720969265312647597512204199202307388061193760152807671397100509959407413458031336680152313190087095203806750332409805178426922028877628684213109364764297785153000794739309470855005487244392749173747571393215543943321581620755581261253607201196721512417748380192134920305231302400357139082345605495705932746559357035238874616368957550742771496320147468328588861425264574363507883462733011007149742608347825645322455246840878190533390543676186675607884752535583438035493817698040283976915459319892862677849426319402621218899436965854395924493013734498095535461135925911002725048057124080806949655033855676740684735928323502147236064006132717301007213523849363609649492536882842662791667358602511523690333824464330671148384103227745357093565334732103412952427308223512778325999946790350932615672832636871590460667073021223487901186895664947986565013058269368634996100687511377101829199947201686381786957242435475433437842183965682043526376599685296576993302409776315447471463505472107949847101418431417782570091888909745378502618011301565638385666548711052566283112701448118696513202486687036528590552301417874210632664329643021920021144558997521112817952499510675086356436299504213525704853600266308771510136622492674347057192725637084714762977377254968659902552265867528533973110073311157767250776884753175185728346977287989587617622242302274022020664601739825506013412222980760969521666962776793443854330981483858849493614310851509690449998357979405159153637598614325370688612403637250028289082719525230441445220827279563815049376591465241774582024098649650869382722428032917873491155373026298157706509672291371413339932796428871107772202637241556552174459061195237196598262687898919848950421157853217569608276695460828301184275061585315972648532327814046446900485687931608328400259183353728825195870891229281599423391488595436590558984197786649065352832633448022191747644725695021774856175857513122944433355001691802649435985569813409077877291079734673280910678485917377569105205087608714588698259714371140756432272785969988092811886047358677284879697265861333311627500539829454038697851900757334445005660695125518264500314494691566781756758494121453691076324694750805934669209469737518422676727148936692899830871818495837350052684903909954971176992127664753769615255944313743679429108198439714983112647787626810279719876495017467514325985455891908019218028558150197577645361424748497164856948356563889093098756362223262090708868497330926638535382966305852567457071274850714645232798780710581671157519808817625549864839984029149719551734708427829768805655384675837397770009585470891742673330894562303295844459776961394993682845679030309838193756842541120313199149829235088969101755082373663107352977848717143287161078111561730610746190691195059865757605704752272936491019523062517510066161813838483034774446009230103818434672508221241680792737269735904576261862949677643497813593788605822818800632291119840796768410852811706442984642123152250903402723683918816839619047130526961614826068610170015880122962768625437542729093515437881626037009468666310869177414323954119011084783163779432874370922562773621959693453730426167836096414856898226175103374054003795838240376809334249677497273636087350373191856715499026004386971710752485324720105095974016950504736331557521214994295586278408165163417728783647100239164819197127197215179554838646114982252514613781100114899343402222474708746680245032202122694230513560695517431790457478151824276607801096154644933370321717756054204026801459274125995595292740288589976970740029720555574082409887347274956920763740260663368969961818036236460838503088141628806245146349284841493249697285509663829895002812347218992839149623602046253630503788860652264068129628546525017180318883891043030810145827660546501159905820738201579627051366592786438847350726761601017531089853515795782237505645426771803772867652491950473690260798597811375699720392567917943589307632361929265724530923412287252264421076657480573404317155496474062325682335269853123066825218753463204150249353536699952096559061336317098022392858716138922880657822702678680332961553747178535859675229170880786516214846551620904985460037664445754550336918586327476837044570292726997158842038734137108202767081415399769421271858532333421393679893897075616120621260502128577844363391648812933243565624041630116727902553678377540451381169736675477138178912385785152101815098257992267091880084731189754963624554292481715329059913357799058177522391656462271495288940737837803105112060493168593460706779482485176798502306775015836482828852308800600536143286386393496150195320388660388172247040575881648757994084719145685315166579045923819233650795854657697085714303215578578633854112681608026048598515631321154638829703394869999142139634629454088444396872146447524524504251973554475948165268948739943137886713387813418606753443762548653281890392662937976418594522347622013946266268084951857094108064349470963166582711989954976073294318808272848191620494685883283652433565838763308539956718494305634129822134176215825344806716915231323863840855578252644418698301624579695637111137778744420514615114723698534975114275769379356175181097622680879653816419572314714699940960697816204648477363801040594259697785012092930609394707405379505516014709761088317100968169677114023144827080164914756398302709701531302871362414543949679858863009182538668908286945343413845547359852660445811913618776844317365999671617290443474765284560424530227893158893687908631442566488119300209514484297628151844294861688766657952604741834732842717874250827296542797766384993760104015896275345599418427915492201073433583883619157390067299746282335098121076275118153150508263313683379916912893147192614061168736015063779816026909517745650768959508362039982639919841211644249206283862754154215671615545095088021329491338212535326929490802537123363274451777461676207197958974387091666351179034308695863239949749905624952246025899221530407671069587788032782804455057509419274480217852228931334281846856046712886295792108740467289505797931253705715180157029457589142526155444061915979198093235343675888897355080824540012176464505434370249191614393406499961755141289937203054641459022248704045435966428423654061333389913212979408398100203324145723209279103465853893381440718503728847581737404189135673697057486622768538587153413392149968824048138866825242778693632759295872310376669228836864951768354446333275205366801222745640958633067985660448007762043375874320220504063358809545948256840303822088712936647123752490581373724405752312362843446812563360595154871617229732892195481707290529808970271297260328050397171768034455439933032041659438898771253430265073945741551730265692002401573470643015431498040030687703605804951062765038839305303354527783025054119964659925484179825436380378076500177645316961691849135452646285690375375077415409827462939044883544397329210481904648788679307994959484856035177861392653723252703031412979917442030886544864255908397295802708763279549605505446188648322572703288742727877622886649934000837512584186225882441501465862045101236806017774208212951495851659720920755591757781667259331026288355990195670276523598558817487362830207876176299303022529606507735029782124956607573752056587375974671337370987127758081578412879650338351247352416256345277788640346237261823046231878236041962066945866220766545856892416447037938614237511261649347427034050902619388024541125986176682417230319620320043326680876505155324806217252325144976209432075872336002095274108865009660272455071856265925000178973814857553841056581885468814090120863861582408920320288834873310628957940588377336585127148608403395135740438044397369806699195900539572113970740651413845511080664229245952018895794981144175819340256306805958666938680031302064957375262269181764290308983724593280492586203029782373824646138443762287845599753975904691945994797293584325469635511325121789626654694677830569956950630434462546729015881415514762726608805277051550358657134461034872862344325150575606182565231680563346645085303104267531846776945168403842614829195768023587254215263988978449128999113603997316883762678492238886045751759185196227263618468619053072097666283388311371000963813015220392930571572998733598702898471301644467139834506922872253380757664837901329079935072583199178313551896060398014424308616022685005137608424883593934979623144282055202335433108135270220814887326649186629269647096999605527902762796253053873140816437280194280392433793277216160711238849951822846967013237689894011536808195594149482577807280218547098643304699251580169812549914837841789199206512515206198915815802521777986418415344413030535992468590460695058743618279537901824931153250764302642367806840167939216899417741728570903204991114801622291821809640257349086564037913112913373956669343752807025809373561319810381528902027681800414413739830336498623503016778185729681921015633344003407979841279123434363998547673186268406041350958764442120892470230554980160100634452485263160803742387764246816293710121800374058034378969095730649630453333578823651765967907643559968802970380256591218862121345390376637197375351349989794008694958715512367251748429473536540652519595597163814791130213391897157711457129810160366974721751047104861540232816929006113720614204465837710980093361909393933233310568961727065914382350035137779039452670795937083515472642995750851156232876182487506478167914876354743273334990326270936455154364630721812387753767663918381773055130446869032474113102841202789851016013270772397865073738081593719821737812714373327445129316974811828054362030393962056303013562030420874409003155686338250564745000247487129273868727298735848981472083732486700300696470547217639860533568161537511795831420541296964911863788740054155843844947243766326191896634162233605328383193321376628725747771272803887550365576086222759702772450052612984270848267087490156478203355355195601631299201997460762818574920324303529322960630783519399441922562399078165781672610559596327858069643572966520173129419888163917493495051245572402111861736439585720900102402930627983714979603916501096198148572127543090840999368467236574739927916948135929443222367235952349180528099937009980129562633236028555716264205450814331942569536432477199465159278985871889914380174086727133335993266580621052169226042288321790831111128416291842552846877799991087666902483311206072531762506868634390180055508143209493573986173886484473286968317447546575520169244434883504259649470686273494872246799264537953261710668552125158790120743612300874206612759313826927889444117913596706733306505675346052062917889853847454017669474817727746396456809083521277836718826635579303605118107750996326282804602885631482250101884455048978724371071391098149951700841579420839161398860725343073678027909848653750023955772431146499265184201815565696448292983516358830100516921802962251271656673487021028209329487743892761221234162165615179382690135671673986986400460087366837826085471927599600603778915683920739759989203459103061332418733193210036685041899997740313975841648162669510408657741941566550291186936410397496433422883368494273974096885961356527842099849884459824830192912613561059840654767666982821054738455845787080087110509467508575050555251861244458032612397356356189810287025150247602038210386613263221049252548406644413416524574665168791932519431482770290771810254656481964087274627214850656744832358580435153340912108793200842438208630429283303512772855223990933529265090196606246597220148316977214935537603536122929824808472012126039110763506727452545757832067392062428527994851561942318621795823336676657268352170776454448288268961252325497682361741719645350946807809185312817841702693439331893677956635521002157248343912170844822005795218289366887577653667301497024061950708103799733036219226454774882681219105397561496180827647211259403447290691358510200271242768790552304560237368698697115173108589862991142062406590439468156463834637896858129686478962376730749591489372727978396104939609479512194259692659372335248487304737719751228829002718501623074104784415029158930614761456278634176185992882121474052456410629980871371015274002165292265759922390590624454071234490268212605490948424788642788584174389093438192690618098356830348415256054327487702124831300190837646261247593092916506155780419560191680159389210216932796133816437290749721748056997321556433623445728146871110306262129546026399412555913935151365617104603430062598821211912560560625769213138379385732441065953594992707574495476496331392211740156417730717322074620839125770285694116308858751496251228148727543847450127057154866567454723155426859433955855381396393458601712936045143229567707154389200684419312066097985001614485674532098840286104310475367752061600757591971883449913300341827346775226057046567569802408847644554098164548656701175295038709619263890436616267409474261137670389116873847433402248952822642899731018845079850481903144192543764419288942347029914287829686568760798458019515215144724941409225504077417666821581296563993188520744181022080749753093832803262050371319712733678430432714505653910001740172484287417014593660226713999609206659508910517671177902091455038339796608111867453549607906927341955855987056472064199096080449082908671403150323047350904375212987382682113449099125890221482089986272427294677749254281842516226606151662775569249400595879138521048364842947888236885709291567200922228740093215565609404734546759277949426883914931972026559594712686248972104485842988050776474023091011801439193078191471539196549003022899710417059124360196500825441356769274521913290296548863677504493290600915350167766134737946426315567466546882073213235366905787795924232704869710814138556492806653538689039572092890877428103206775175392979613718843323984324289021034666958604500805956252999273663606408454930926827551800105231661238782842389278952981798738185336727545301504759622722130566706713427862683854211312675081669250921638892133053449452392054581908562616415812460972772222533233786447744102172861726402170154573891671474706011323463360313111258123621271180933087769462333430830325117696021672607768326483338390303977680763688313037436252228778396269078056668774280410756341113647866622175491821167574066686420028338452841628376356680996876172776205294465187604782811722737204516126848893578647557442958738531266288484221567816170146864100744216691845793543697039223075968353763519652063403798274054206465991215346994523572034152926474896015380203106844233006303500236396520036342503184037194956946763062819660483363698565691521607470993859419336972138537355129008133773999666890918607982790476954346556483876915774626642101190033502916393672355561087822643706530327586164287351886755795064292124757424516882542991191924905934142959246619909762981890339560755748510308472810459625294114866867457147633726916974342122831668357614771212601588329465532805167488453449689291758711498958231856080361566331680105268760239134527052803676979498920204088473471675751094100996263902841606781858853703660957785279312749002226857935581477078511146209917908701546565159462717713089022670723406264936191805130812973115371754827838327756844844838207585827073767958028121689266711792940029668171086559027690039746659423032604761248076791940969758121205533301346200306536837762096717482472458661524777398911268544381112385454393093038115268776741364390061247765065892408464635091069409466759220112392182268037483108668558718908870972569836129716409415337643243373832247930453719935026803238007443620369793238333382104638514755081318839241629140992949710145777296338409504730075555418213207907297860597984262528841210726083769993266179135973810311020396621974383613771311467412048507540464760482891744821268564875289782492241619081737809677582865880923830042356214659705083149358876417029497629513970459556590212501538428637454320878209714883357526246418548341557568639926051519305920014181677349704503117885735979319758145772839250108265412844968538325755621928332041382097184814468156709835074079872938228900960196615466939839721227532384127548089633916264200990431738166869421215633496703105992986766799029279388962138478287471414298635927612796384861631654838491236172665828297958501664931066224598405532798782442103173705006468289528957949610386662600702046019073223168778417770780965996053720695814449537534236165081615826167106186867498439373967267861097303489274522252296921320061763997586142737330392008404434583573102554509550046090332279724979719762988853896421609031539744285210945068509863211981336656091132215119154686825457949167910563056618784183192003926758588263601391882721914405320220440641989014361268874886959765678890915905699638888991474922886812861384708827022340493832649932097097848450480491007052714705291919880112881270908888363360098242035910089332986779682798998622247619374641944903070500872192787382215775621730930955059141164060002259675935545116323098652523066153300721798372592562854123369252977497597739105851801531896437538387647456086417592995064389178734914496855334658393245320927203885380550792518547521906041677647680987543940590345221930193626613347340660553241043804556992162733038100034729013348920063277536822005162487679914441431437224470224626759603553906058277280004496860059157026662158311256517692542105274364000657566640847139074940188778596235739076354975839979502736701440513871256589602871910943532733033247275132483435370784641463294494393840785995919709716068206737104152533838026447496724598419913627492484984687397179671968259618865443445597329044827877162740997521168864208374676630867015461771669996484395905739804816783370510871559600763939990142289680581898695927263807665635298263049710662624897749723990159925905685052383801260277837262555566806907795317069741287953373813551894670864792734435773935119204703097206639112715611760547008614439066791423503275484052613170451763459198810405897095653413098726466172415865914840953395242477670547655393559400858235219313899631150260252517873328357478363830699283576218767635495018374862280893007969926332167311638714984229690201653463492254510662743728378163767173214215510422032065171891126623345037790847820060656777892050174387934863034825859047776501512298325481048385198325822751242883950812743644762496360278938205951550462603232941995340599745186283350811183391752849768420545226522394488931543061192471015794005874242198170424836777601773528014203380387508558731887704201412444680746841706212362451471760634866728029068546003182801514648223350599987645086346118362046225451651432194170275750684127904653795683548184029938567615087453415423642313317375384839222699431221913877583743517274709624309803540481630832344819658818534843236159405918625038734656246531079287957052232772604379668013964689757669983163708927068393255637855669381356979963736662020530798688479914780627345611435373334286979649601728811028758714608680203424329897668781213428163629059918583968340902551207566049635346934506465566692447350607785451454863158088728448854154132558873872366775840144108150924459026828087302748491996111777941792786844699157335184771061557688565748593487187307615196464449688886933182002509080449550030637966055645577063773727236259222739284886742759747311591752236707126463068267688879699921904971240095759987390935045926142304707168161598968403305890995303768567711984214040312125307470216823780900328299291344959494866895555237381732251218329408504273447069142110177924485971513576778182289488457510813334436779061774322365277350636759605804803212387846512162801888701884365821107318928815860904628289876864625738549400336352541578953142497373025727542423557089669123589477978196664978514782151668543043794860232781910436642790333476414850915753210957810365710352272088934891290910903921684151283731939979234423111046174068319671048819922531882642935127287538669402180725305456764783065883714409193986690240598305998745835623247198609346606592225294692204377058504878108447979746665077839599039879577396597196576065622196707355677659007610754121805961119039559007812998287758584139623749748095047724043213991055173370207678759072608698110450774282784135639519811147730149808984165788741848294739263873042485235976400837131907929631584619366377176751559388510643250285684645757973967534407197384184157961077252578663785036308737394004071997814809511752675235592421071308488163425201051981812240084157698660490397472073445584750188580004420625256920516606511315769571692134104983195005765714720100046119204135533800035753488123665239558227321646850986746803487023411818009960240972795128030078318169395583139633283116702370607439546170310045260667716545472569016447807467053019383908832011746113783666700423475514247487976277430669225161620939235109985977394505216212803259280576800850221559860153024946607365787600181870792190472395248916622376962557685226267020838547642848801443751261796151346661495216130985288221547221327117328718141177302862880849372893652628218514646834163162800413776587640768271282328705263194315521685035388630948836197698956999442834516911591971256507747710484860321765394462487097077093945526718594900814554771159042756585942607798851033847641483874559791925659178745894249290893641651210061528147435779165468043767160849509859087528823978541022506378161306982199476331025100368370739399358596195494656764205690377553215178820595487726139368695974830902294910323194107118655095614236009989669006962112520093576773881250202538545542502898990724231971641417611269090708929136163759238372020610680121622535784264884016670526216921355698843043006511042913380926937828606377486792046050499960976087812495516351462615338219841319862902917950944650420310913334910531254509840193178172012807235270612829818574800245680272230313701207958075723941327971534047888226732855371671141246215583882174914881142061209726025874032513559620637877097340657616941927454798256219222598735791308532316207516136672390252067296002408521108859196171844507730139061155662161085135406732728831083683150293725641387729314114420239137563404555444759716628398833918024839956999247049968352475302415592187378150610787353443793629289900343403087623137902446983729753650104783452974659018899504186273014920512411540146196904436253360533448963864252306956711139573988458727714802713394356685138236607914417202665569745257552810416652391804939634253965137784163199365758838823565995944813747168839722947293672290562117127562784741514799223641706959479549185732436253180240027682377733707192947859554727399130420518774376805426711205250996700350287974297224018377194837331780812361052458532651789333924987940963252020265948917357685578769059203619165943656356248087538038960770305852295133221846007913508130489283732729642605202317365167712199280216290195063200468243915098331502539465091700315506726842458957289144770638049875130225643069051928316219031915940800403786368186741693256874188435227240157840440644509078514759866040793525636178732580145165059437106399615973142218635368129567903573431312163161741671905786530051299114997995842825341283044532471034242547897153380339019216768040633654960331592816750858468289853414317700734098831332368618394920989978174655254192222116618720403777548488709966957601275232039840546382282550058235043482433414401080744123075826283897964600090118317075107811912401040297964613533739462237694671303007099243355388231825457137770506011905482459806528863262826746300740971777536029461900271658961252707798678630888999919642602076633012298346173913705776952137934897494897481461628857938046287893503628132980586175070771228341570294653448609542804614996572893215792237881862438961640656574451247249139036776766161236423954683908141742709242443552586432584274453464073363393308701331701463772764397048275155093948738826415452672896668001770761911361510108531086309834621996896768247530680672600275489194914088234340033974432166445369412438771678492081627275513203699393330900426897308137426593189438550037978323533282589814062751155039257729966627386113829119274592562675557507873747404659601246947616506377098904239045385283918010611781070435856596353571552954018112319592159916023425933860299855498445679006962480833876104091974669222572310446563796579315739589796776210225047434377168085686203335587695126404294968765617167826252956995517472009409800509700269859883242625330073726871389930260362117579205547279178590342562562869589408949472679622838199409106054676843791059783436397580078398700841764080601543221118372168337322740053508911927469424007737953371663268397021050781528874812018024888244960377512517765657088781772272879119041661433586897159386627954245762879641400970917607733405432506267552728591492348110252469239506974464223577816352017227926211642529202886209572846868993111801054565655889355862193615983735574040192193419795668180528856914097575671225797295284406079359766294915561033933218431560444344332056132698951199869232231198101490857722124374830874195100851526411785680790791217416621329714150380787388576672797726083987161089851524044918923687674076854271644537006835498488396973401114456782515551511230699800139522066495813690775859367226606886960154018057515104080788623562781874550266965889595223922939256476716195708930434610379909894676549592309855238952266328692128387456282863945416488169410485811208407673999055614783116218961429488705789591707121320658834733458185700243583626418712021541173226963888154073257720799392840424442706811591084736947505255227146469790730268258645178165111658724380990056914775176435439372063659422050984744560342939205505527046362093810587272314746378186351235789587479299068438070118989178706771118987523808757321415805639967006578920125545421808548856677647649788641756253099785442145582771774672006578487255789914381386429222639391552614563466288993616994192247527320495705485483247163787039696013366744485586327705829270962219828879406349526478572678223757679026840796351884207880905389340412668237852725689212393412974350788929119056068402088496655086991564392929609279566346185745093012496215552286767580626434802141602735316050846816558036361365465383164199133622522459157020396474542737534272515601981759743903782512093485479912884894597927395565984836817708209374473151334938151500488070344528397512055696902312940336769711648009134952716851860299646628162873811240411605846700100537472325414405811130402563499030991414192128571766264216131412087391043615002751766887963332633410393288901847694033306000977024451870933469606786134086987159628598721833109994939114965013938964770075882897551263713605835487142982740867961844632350897232383649906264243730907980632802518644682249513612952882422533296522227869760669961530691502821371867658874441442757585395943823757685566276270157577222989244282727470587692276074971081024813337322052543640003404600539926640661923293380310802846371705922548218354700487808817194099711560244612174026912074480151259258125833728361933494627657155746028977368417921820090247763383495106546487300242840070354668325225450668354308218573927830498687205825598851429193784910047687966811497733359111969519625579261532177522359457723742906379392216257859353535493214575852641228415104988867388918606996909072316826036543218348809836263402645972919834709500334899685436602715217739168111052871787433755223695085730733816531284871212535739861188040627053771093015100093716117403418177010297487617279572387670497242735660259817882678940944969864198250714407493260038331492126025726059865078809085215814923158550148318654456066032630113818760955482445962892730159938918687478683761321911572979398706021831158085184899939565438719948702346497864774932008374571617962878297123340208274581017326023940844142950544898754908142409776780781532013944410038069913267738410829805955266894031889702617774532649459538023972353247264613709344251415239864217821361705962155791666712785563192220297933418629710705385372438503862840584253631649010544214696025235480869317965558733459774895979097638270968845707465637673758685389867552340815505186101962847539345355627098467251938601009160748327331261966227002127856088724739986508992376498233270626544958937320830816906871833604731874392592369153680142390055536327740065051690227318555164475635435960485549810209191550802760828570382521649158042348099101543426442133488928743666133058232702863802770115852980623527273676353091317608888099066058243280374726775427731572870475733679598165241541571168896681735183403061180616304595071088772235299165996770937114397084270830578925637865135007762712405987710430378443278346039694505435653359169003473845190075398998907805673835577320634672851988958997139158473630233249176419146538349248453124936279148182431827653624741891112748570593799807060525563322673667227718441134721886648313950437745782395440681663300975656243837457920544619354601097678096016638898789821488084153533944440138308790787382266811106440363015213322651372092905664875474284591250480731907087567004351282658538328327258122045067077091566021156727546626167406298744925897030761015155631650822248868832095404065792291994892850876275544215386139641927176624368710829814481539338348666157774325124773112119191957476186743529813719256886706115674260902454260806476376831354548439189645502292889888776828843119173428417147634825842896086524271611255259836557830642743108963896087961423582580841311705012045182620066802535038018791055304241467051356040794626914339148976243691123201045977663355755160827150918126489212601504526553830798164983471686750912293788221502619751381119755460982097394479279300883971105730465103720817017562344561109862912413034974548303822244756307028496198336042895902485787912127508520187685295436619463740021107724627166793014907435172314590913877557729874143154073532611573418029355440432734151300233518744084895746658299989251140349152199439816103711421602995584936446918564014137388038812609981019582456000222504607062208869041091902279424565416467133528842217971296702729732351224627109765552001138717289214880477618178201938706947655098596452751275793525373102881173657632763969348193122841440095278237474348474107287009114322313200938199810648050458372745446611539671444158580457656260722964091411807737467274271109527255390405895863031859217789642758479717384436388925464747120645228003440869966970685614874479256811084174064449002636351659880162708430878780289055870890949759402650654513405248395126031963102218667784224479590020078530760832673633819922442460388586151558715968311421280979764706229613651833093255499787524840466988801479245146573465953130111970962589263850276354843505757424823557340405308752981119154376485013121004462208333720136547152735955319468088484583210551349034277422052633211095811816404747457687502757506033933910022338021731228514910824503198079562311057518392824348717735208919757627361902979992701246149455546270712192362601016220827960373117327626017211545237470086259268159616741748439827886751185348210438830641122228501007424581266585061053303589781114051926464161755136260012819306273499167814760165372376001401997477715190453376380110822085243755683191156325089073570079470428856145030649783493254815891896666583441972974903655293210614834212424776241616853649892872683376126885068341027484442569115534613061085971429305843322421824787513418608458999098247705794162930316161185983316016855011101715812070341743588089739291024958225827744013836039990256812758840005986509391555761417162700202533283342841935458548301635825783911732241186274045604311061294473042481305623146206285225596033278063525184590123213832456045259459891284445457888324945831785955201469615561250655710932640609847906597991959200422062995498357721247721052136756202476610847141188377320088530354758810524542897959469710387107490648864899727713700990998871850331202123325516866796083653166435803388020166775678734284530678803688092856443051222377404097954713623406045896096030714912002053890376034115172513606771046617804331143133793981380006556511451074961631740317054066814722801963960971868246243491683163068801489524264567508753522790712784032529507148316444956637965686008194154647651734967074866666140208099060897238227809444125506177864935089389612471146796232202666095042009409070804853118939174791764234860382161443319421321686125009705127233587598842746437898631110711131601920982197944243718876965564143989695668428761574906202968460662484383345304779490918144815830739193899180764223772589952594095992186449851915181612219714140620909554325296442591989070642659026443916171663263728536695656410284729557802785029037926680283876133018760702610669145064256054817184776375395756406465944620649729319869352233693062677176788349432248999875729566559459989796838977475682310761326747014249171408212832821963491627290098491020399180734868074745813317998463397512413098924700917394999559007528933346517543795336554325697997530617208036007313349056980397844437975634337882588220016407247386360014206073562935928011282863839209497201360897998658910587896642176557065005038323195268389416122870933289852073276804518094274550563935400676689401880229728563825740958836710648050824210715198071581163578354847277456624424208992302406590824549372312793848156131573331744876836459604352398087395190337819767446352372299576656349303181644619687042322255964541556370394251256085563489759302536642056076339140226258298978109051488161323311181345972497354383946416094272577234400837988674876428699659304719837021455685737940070375584744804753849117833399954507759213874536669234565908272528852410148080074479414583059272484655125270122667718589101535991908560737030671512514219477605442499944042165854973780428775094214520852284154411097666704828850831433778464230657314546374160269199705588122582873556847829237062386910961033533238091003218622779351666869057702711935768908758499015314924373555550072681353846317435110055552228693535557992365351256328588921675413621691425988802551888031425146291440316971253427246506348554479013194204410028179244074536245823664369992681485807036444888833677343840102199083624099104211768906065682325148905809711403740988448463091957875183811919940685909914013465323020733634816581196006990535105719804967428134134883521953695767601016964137346635030022511390073819094564121125953017329094949049316232013195855704467255480905306286913130445551309109714877865727943972072343472978001808947485720922624382031236225723684682351557164781643729330403409184293941326203280162328729235079372620302571887587258876408934749995688604697123969358147690775078611349556736510237920101639147927286079125311326760189097601546036932103173101721950999039038866891251122292022677847632194752757331724260067294592119069158394321281220766542781688052959480224903647149783180711987492454059377455530082930226231461098973738117697463066943556861513656093743086297992996272278716921755111444158575443170182107469456050850613496967779033597216337579756009029673219596975616000860141400123983746623408896362947173155430315313080805982126656179291672759496815976070776798767826099011162828706945933036803725131983393698565410664019494524441015389370552654182986736620533586223625759059210070694819981928478001105545173107233592184748745751783063853231015584440375923854769783738470196399465141029819941903345417637895143457402437290742854153084045890993467058080586876041628291503235619285440377239096730566220706321233650562595785051974751370696961319561629457613821061019677284600104682302623877388373432782992327803698106729934886830699926611756444291998044962179264827884945172483970962346565919129775422791028666548462457122035228274551533951979475081396872398323477269518268138564537557006812249758545659436536499022995369585657866999614852730525759977447829359564457663237162113961806320212260563352751141794831202305489995335273387165268998303519598802460358941186778596463413909225806388939417779845686820601625482090487655082498473577676281601363686382066474559377431935003022927148900712271106534405026712154613205683321947662415978214832314479307115867574396453844078049681660040538576622480393128494133180722872227719902816908325783355277331561369688411373765644309999231671552302263552822333680612843769430820762696335795277181533022146550507441394908883086708608480349755897580850839865469970229127651960482296196408868885539379091520574921999545455411447500672286202788765853183448289281100958436888953850574802193695299273829931532109394575559407137164915285759772611521913784860876853165837535348868577722688319325693914154056286641943374129417501807724177352857136521973537414539510501992619731333635510717349244241504756359962604113361371009754278659076210227011423698544648426676551650697187656475353082295224967112854000679024490442975900403252274087618843054031204866975889414317218839225108815855134524826278949295249054467800502041230418613415032630922876485524151543571268985688318266079399073443102483797229549809095762870725169803847964515680940605926362109761313858105662686976863468771536919272194805101428211859244881584721557234226213306679206313864335900720740897077036753009599325531833220854358082748059648769068698825002446428180850091859713077927571917591005497530672990444529470990730371564368703796115460177671965496724090297194469883051688584762538344504004784259886833653216957860550846830937005642621389201589344494940865939862668505929247874361143263175790922672925721146126432810353793946337343294676088904843249027985832383595093127730125286343696242281970460040247611657896814703111439929002298780470094419274730925126979988963397100485201820155834902086974125892132493373620512695210849271381231847722371733313202941164138423177494079450210089879276384874435062928960770113436827206820514132923454672345731809639574071156525277874173117644670210718144667600442354660199786567182000414715219268013230415913036351597386031720966896461365487774001496394432625984693767095094041354284511702291369475806009583259214726122569004942929958380282504792654682921987886662535897398073859505554246027619599978937673608418660127211965801322837874510441069873206174395836533370845177756126382104602571923637892404410131516535179536391250217925282397018356194778058767478509767980668090512939605449789394919198805682656253825277963589158072332378997564488520525187482825278127730162871865311634576284242591347621526865463820355494055035475944898790805986782564455078610950811860476690834015963071553329429815183463525802755685704000879192528432038598438702429945815836774088447872686308076852930721956366765641398183075313775169644846564724373096575663963625588093700555316834230618332521774252155812496712636480468954870771981681053924088020612786768082274555525626680790649179862600275215343157386770418596368141470739014481739484988616107378726201332151419984158903387775331744131694377276329776207490387981240716679007242051803067086940724370849252289371260338401318454209115320695248939209173231213226465200255015295849013586608479356008081963120001517094355440416051723897479044514273937128332212232249461130877421528583160660600667720134097190706813429764729333336258269336903401545468785619007017867206807995918009316226317772199836585380082009904039136587194051731537111381132894962763236579178715968986521442698607468218987428187009891623439860653497128287896943942063710514689584444936991029926181685392891226569996183216369070949189545935459273533877086390138592002724624653805060292912644566022695027823241183563254371768676172172562445254664440356022922662132222591101944656034821695367634940687640876029730261002584107336680048928214220796315286640410991761546011971861601051429910280878126738210831545447933362381541996043214787457109581670415757754281902096849375311102373020716055581897390861956139240958567854144554281148342897359507048798137195077494642618329583052209951454379002906599839748457849862348947817895188113911692931723219712702463521873583068880027591654966911110565261910956393339737887681801651281860897127631675020734222002010128091569721813615618980490434209041590306547421051318544541399791214454948363324000139088879535395728945300074947617681620290849286240386546824118959087768008064833091381511551994611688557371438141345029383678494910838722293073082488931148684727005548187911541419553732062781360974537837751753541494090511534826655605958838553047230528712004746794161604326526120298103963370239597466307810558016996546254321342664021059885526556003758712774322683886174178208679379542130592264369624854645645602614765129717424871885764013010345662110124352494970309441155741460415670912596962427312644667552718885833621449889102342475402834243820371565080973875327199840015789097564972825064001879312079656088011063490702529865013748637060284916492074624136460597025237061242964038965328419424108912819540989323005652566934674159926011304748463240979586765389176045741718726726076874713890284227795322287806011277892622872031195444293805765649791881919459767215785818923431128617437101940391023110221848799168627778630593076399974569413021623869743504979910942880321421300268719974172205750108404187412319188551128903058184662572984917781741065413862402761728903155974851469288889235855099450919215430586390606727511971893064442916673455748282499622322550235144020084139501473898910282776109683695115309634854824270123447668129069440454070626123470837399447218250225868708595408488983383132681623826869546666610326884477778933044994667000745409009550896928021192861014160785815444501065302055844126684013048563134275703010967805083304494578777245378753779757538317115471103205134230756782166049267893965448621833284818734688992361687034629095292332444734580299191278511436388638328170571848609179615566294111562036604854743142176842857270338075796299675454084868987636384212360426165030486586603972142080563224119084602326711970470224938493402839029018016972774212964473789893775080130571169933265079604466889094962748582701744041065462960057479209032181521339341968773312812162852796275323595769160582151758634033469235121450048468683959190431767281996645657920410739936251990884277310268487005685498549940494910419317831848427806075802379150551421489057371563863267482108426195383979505727073800796522090914613373011754830435590394302742188003580224066613621092981353745556613205087791876065766637035097040584490871707167503100148489477684064431157526234904031940496720100725764235949851034754914271962363578939894800568998276052896882198660902163924240453782583566589378671163031789298216292163854510088796622572443469446187974201024335439301037756449474290953846020559285659487277337527529730419199904438591940971324879233960377390342685238875673260050280054589572305788410024926570241506802877083627083026881105414249472811592130638641200147004003140355400689917115251260458650069928700790787052903905924770997919964374463469246202704041228932862293489620228076396041032311106160244589522994169132753629005919971969041883672845083778330582303246289717102297954669493281448004966330523475669231117876065021074938908401771347043332210290071858532387274148679849148445755821938678466378324504982175877433695475394768181187470033665561420687534846410937206936663626245626506420136801400689800804761160290532548230538103947102206278851913500206581197507524106544423323683128346324002085715565746403171902464987964109014528467336152075428950774544142569271508211655974756245021745077619039789022528105228640153219197645054637175798394913333335423810629751508956723747406691541365365517462853137689014270975520360294587797550697998168431119403556417784837264115914072838041558503710329130187260325729616710035483630981864572246165112712663951193365195129506394214774744036222792579867508984383281608877504226426930681918548941217220090062554488256639160634589574712731061253890361680460868366743852345406644812968434128241108858288182977303295180564887979457693634631561181723460362647765984019828381434186977788280602549186561410202104446246004373094908529482664753728389670609527452650563452848784260632034459316715504689947145570053805305540763208588129019698713991031442099697316040452464021188567625926815732029785019241521789103362261870884349639425966013154136032566546639911446391290018546209736080431711163513227706826730912269418149492764391877440153786134039402105075238833777733522598332131171769525791381469840362762551498590888952712328198725015035676814789777528990938139599300069127302875070475952099262071432825639170392648203055846789040998828608598546280509929801272114289620719799700259403890816875658353582549303786700593055738529431622309329720052342898306888395720387027432433571275231143665140369609899972286822885392270617338175525604968018053275156270229473997770965239256506822691635912226235868184523800997506888296101351176890033443557914391024292104008990928233410460849417615758346886578089678644049957648005251501902715149754647333048106586543926951636406768016046832336576560228976484137278869797887374639065778912752998685977531600343818235632487927595180625056410453233422316941716319148326198696353035394076850230517942755009781792015938759833270247490976001446300229578124850356464981993593366742189417670674809878111338055261392011134011393336922342917630060259144088764920469351044367974543017076531640830714945429426170813752706103993814807582005557411690045318583236870793576471560226811896557074468803479587107020028090716878122397791911146328702042546001404979425951609049274759939362599380534390032040084562424634828707631423139597699385650897245566777622256926812027299078414663189886235494535918753523236167335148868615598659672024223020571062997258923670871223555849247846660407119243990080113947330331501894515035179019487161531477412878409560373949322513475787924048477809096750774768092175296805034676863227660237853172817694570765266800851107079495986082906243840966933094268569947440072682763239008524602359530942738723600573289081764376434320582145421839315723921695579408279531214460694176718494908830146580549494254991724223981323937429942603287553651999149285477253857395425830884962601930850403472755454389158289710478968349781074051019909134222027818927201574168906099378862701655878452433921211853009179035613805946028676627285652993127341182087101879545785110145222547125729238058089211637857542972263318911485509670241508662791867533066666660730628393258777472520554591730800368672598041695285273243523691886058424925358742836347812542180819184667695638071151304305488465124776351325152423409705086166387284710159274139510384835305572165796230736874839971251175388354112191890549859953341048498051340129926324763936683033193125000953891915451435554208323923512075735352580113681519274099253161270901387416915168102039699095383057330281473159207834603467473829646234723409543003481622626742842313649600666671132410182155028019530989905755189061087882645363386333127612158958662249952497017724604221741815496774314878365490949899706181461634069204476603896658599993965464576473517267143249076621894609787162800427006373879282626185722644212605648004085853220862847523005565526063056513872170493027148281134253247742889505289506433170289119802308336117191533770330706296236414672250209270214035415702902810997375084268105122043289085854907268296824177398067579085038954172510966889164835392136358303355159346223870520491030849821483190351550542162339838267017282676156983217641525947868080340969335923341548439569176577311606360276701522647982328467124833225029553545968511840795693565018998123540302854455702131834135688295334632530864676750957102327021064054111498613271084605590217236609066060313035705695565830782084344457097393046711119600749158290419827331762207972826680327770606061102959226301513858828052069340112709723689740824312587812811765991104866235432101205431412731639458105662607068416156588531056703129862018920489514703002140065787001829919764061065595111328677602996262349216216040609785169739510012304014346738711496296951108828444423176757766711185675945412078882189762457479462766318517439962031900893248982713400405907125147635225040915402891062848375579283173105996483739027437859327161236365476172237833039805579535141148671870344615000113211896655323945382244746427773605768645987908244966621318077303049448352237857349161805303176975318734286956927114410561522377509110088351405316469538393342370086332755597166142699314291571138404112620816835919222054113061528790792689730624365583034811715860458092285733620135701128885302253216828330979786798360988072377029310175110960292172245676005704855313296321159491146460665505585833928781940670412829389667432467138317328399887305649727737695256514198972510787191333833766996161843036672266539568342116188056301316722600694213290539830014806557872969965162275467721256744614319601628858773386766751372163899575202207381129738227984631150231471005632050622666875804511810237875015487310127143189079633497312059414943728548953944790676983805824486404329153020997415099923157499277418121871638239959203499635278504669561448154574089092564985261511758508066564866477596562704850438126965706944830303130890946643769212360000358192430765746954700809396656649248194456504315603468771275655670210748539234466741556498890124484189647013970812469903839793593004039508700878532019802158966181194494459999773190736418569478768369385766733596674279632690126661245164686256495993366446240318542757994709675340208420319130158674112263352649378432923449807363390529415183535596950800806131198574232932076742812275509916576665068218957427503351259245235541004348984998409575833060539071229364208712440721575880669735362084385885097113348824972430236107462327567360254787221013843898219385247958763228932795918587409848430745886248996305147598439228676535698048505490952775653942301337416123396365790397617750065140433853994727233417272018214620856278650819386507657716975731357672118882758664974453921267202774293201902755127984235016661686780999105913467094174237229959717314052638980509840706055468614978455191519949229017788566734415147399837808343904636737351470160970089646048601028997717755807383626790392530870159818271201584673114545951326647079323760323081330886906517323404075261830529884427454386514996246549598696085401621038445907061835647665598009245174432432892303797254816405680390403171926342493755263888831974793227185448230885371768683595608210483122416543732230508387091209590864794026161331640980124949431755531599121062650020096925316834992207852655607148630672442230485430647763336956554359072488731701228184101783516769757332994057466355766705068393104409242377945428465509631789445482613828217965760144586161291294630362733497733395711281936738592309185309452530290747879802831198468107527757767190714422852326247575782637537253225777219744028287828080447979916139376353144389318028231808950510110568627371808852710663066149138351599168852443649666223046627641478655083149198472822210872599191176181473994835346983635925307539154968522887791097980736255804689598423596079498131194500479691029479417200298160101932471988568742480643003185624344866749944743744862485160919919677073122733693256674302228068022027508631876298571424346137122573067580270934499746140838096366261133357920389162644271786570063630962679236136843817733746793945380633154031007895216781327759506276968060197330810406841846546591003550528065118925730513893162133211014999980129440664742182417008574428788732677373429892302582465352366369346876122811077756764091048474719885959067672285984796735176898292405224634197949425882627144228163246400793634708403777876019381439118897456236857997600611979033030887940905709681544321224893614530227032229656290995657199371049019466049441553973859615154987723190084018036139305405929788692315976866894469055856329008575596063719269977033019715259530993272531630262245943020696693081362712512782034047696439415528749342712214026693056245944666337710613435540764311426265073672136388112261723414370454667086986105181632552468936126895921316411239998227299405670425476568247095859564543427857795079523807145451289369882953317521926606458017838883279060998338276523910181172133458948110802112179936717739306850417916952218949072353356649146727139693704404997782499159552534531009297563926842869352546641769291518452191868310679635397281001928294859114703500127055056336798329042376783746362358508465377610749675464813158649260746528150220646128344601105955923214129956561658459228838140794517820206428506454344889920504464006710634525634499555846588609043123948924865266517559083863518837923710941280658058695851329884153282085720160344109401056656594812582907769102558286893903449616918439402975579954653467937529177553304133891457692150853438326865162500543475252684433129600926314244494348712338122321398796053516867761943633930726224393491562054610941997523955599267356400821557570857207303991286068061212130643077792766532917152442632083961693825417435713637676895132217677477922538821537993302671642950281914343445546178519485249479819496976283724204274648415674578730201964209931838096242924000402230688518581263182586827051463446981012584536938410907460585166711424572576926874170202137890097003701478396847059350927742184016250326634446736354463990306924215102526755931683684858710155994654655559952765567099540290693605851999387003217976030391986691304101536519980365499123219119644684061046046628172581948058667614341851159264826733151848312489644727982322993853200148763803050474889282139900806643624706974320873000621850481502043926362835699909629642747390373549419873324898732507547375136367617268061626243090869340484095561962752237054872820153640672325316559437094653466098295577799021991763201933822516398694035110811014162493154112336928453093947158478343408088270397470699834611363656103255670802233195959511654184546592517022315518683285565631487070979851011406796230680703958339208136716822793678602414545922079943453584916396784352048519902503901627004916766200556919859730192265013074746810829811311166632666744846830700888275644665725894568123355711117163721079771709477101366889209358288531510299028441666143161826491275891219260144771043854457188754771692684599373130267079013972031313372288402477424291566378630772771139242587771456214578059672314594293089803868103158681149906051104061671676569445258971613820382259988604409098898500998413455518024112754341633693721437210684141710386734095414379111798821509770911708380439738831803638169533989268311943137163220655273888776969282932312262721771276755604642554302176792942260566743503120955470392300330196919140550466863636276650212253469156624225622820659234907451256716423886718662050069281718735984014887198240917415082455530064516824942677998162254672804770698853239573219842362868702330219808574682700038494456660682253654534135352685633417167528489227021463366164834611750699503824221772567703846269801634753328563795837180146861748066911785688880617244015557255431383358662185491820280138147459246118036023799426043358444650225934253072674134431449579555409038282506957961788384792156038318436976548433277259125603370043790156214938201843017739997424411346280804067920075870037198331157544921178382495625275129030386158590435881727642372808720135321386851615638437564974184428110063569033764076402865176339468949893315978988416188610361091940298952717298317147489079660461843066456527410958804722578307801238444668237230712252496190900545445110632900748098217053923937221933139630163000041416839173215681981150295144608208970917494839478674478180961990143227508128753318712415007256686205151175153305720162541086402262039596888786978970053780833066615306164987216377362095636675231792462211668857677383761799130086838698830010056678710677156918467582431465393178558566216523384175436117219155833145808642071986598709453254643743860457051470169352074041418510170273320037838846382812223336221655351255112977189223911364554821432328726988933427675438141822076410951723129668984085883989910207567576486727743034585798035305780062620105390175938586174319871026698980743902523277747448076072648758662661742674026333277904130173376018949685637900149293747537094001756490075345694314340489603228041508683601140398541278410687185575934574901180806757749120677729508011935236038144031378073840440220220825694796989197135909606949974989777496510281554298349805845301400284890662403541025307980975781912338913313358209862792883449161299768976640042320002333223101336079150413622499367350873011444082888302032235707422045557313366266873138136271840726024603228481255291856109122075807504324743974316607845556924094295104693176239248826902070209296119028273486547413182012670967851614483371292272734749456393632074347941473440970870461709270049617928440624359112415852613615884952280229006657312576769827891361547798333358580673735292827881033698447541935714806419866768836800950198727822652749663851564197374732190316776854638596117533655453458000642983668460069934459747848010686951872887782714659575507354731213617055190005700065192844382280992560330505120715963474098016859166992463824046383069532773699760676355197629245659970743511265013449400010501336033517734925331078198975253523983004042273211258747954779452351450941610956186089947553149257436480748357231907281661098185531012305277031742212488297965813333282647902764202577903989542535038175251436030104049708325304415561098880064337411784516539293539753920270692726936798565740661604537400988542053408567354191894719909675416658800799033978467260608403445569636805473594071476048578688123979768932980383241848181229067010539632811008622956190270022522018354032296611789086700684539073325777320739152986919886752716749430345740235324320440507121237239226518468187687313587389750161457579799462561320951573605563545555147809832260680660173106800083715156184135956913286091383654935876822036487856105051325474961724565461591400905795206094955786898457644384233533088029817340252746433505361513432106135686298923261864369374834526888625091044941025662473874360481804160950176577473774152087418970329102768083283520640699064810922642758048189673067923423359631265338416704036706296719947760269758133097685407497448846562473940193965806161166894951348101334864693197739597924588503882933254654547997085985044814707073110228563199330843213800407179346282848149090003420804323246572028258428013850113402711108669219949668832134496215773803774310470580333871574079523100246887874146464787165123513997166701251070145273855991852793191824832271281080182787632808581062288397814372161692829362275008624897726306218885038344337849997158204301769170848940572179348600780976249072596897683887989420002103440661481852802240505485818728348781431997709239766331718718912159897728761527225718076837886571503142160288974863862392373550169439310460382997977609368704972484871162312958733963574660631573387139002221901070927024693729255134599788384955513033632092516862943509979685479692771290902197976655046502945272963798701443180141819935171973875381617213260721950415415461953451969597260568319954025148457127920130453387308537167557216973257341740449832412946353495809564123030064188258791725494905760064283354639063269728938960273253262453010655677051080277194814934864276875586368280127250156332515696583881896829424985806894456705843145790121769036430776027512735467912535459442744923475414511417058359256075558070434681523456471802969658244517406704774714279475051200094140504703648748004961382879073019693127020732527788554602594735268442923991270210724670377532136336448738257802120495816449257916342225460344421035287658316083763829257837724441970356303438200363281234385506022840534721062135989134763504079519751160999411407496726743536806178551005506192850595227027140083035428662674726081440180432307495817545802486203828248542624778709661857812802548742966635866630187932743779999073250426072843435657753473870877477222455440286646332649862041513531844717719101486522879898642577759984691869341279087586152764434111204222272768741046723020095582400104330014720803225871625173638481086613721875684969989629854036586734394341031764101795263336415319623077756002458021770526138956252111266717069218294936240938409997435681792954779619050398597177643549740228000495913496023924163678294940788296903437413636754698918149703618566943192471665869883268416183182358153844742951809573201145428735067663934724590569508468716155661736215755371898833604271250914955075368704394489321250973780955630201076130633819748663353747406886182510603734350663358982750258345593022099571257402435424812030737521521971603194292822683809956306767657822701239718649751808309612947910527011599716717720288792653465715803803513305911705053935460758633030845517646786918575767896341044762834139536526618199171421861201966486152196108711659122939234946164238272182966549612382379407208016219529414808771159878990422308556894575028346359533040546042884987534889689726093946611184126715961303448121237430524055089310984204290992653410472468213824125780126764504281286666572166035309374339368142614909392086934795438469921389029462730455676939013718377730223898475567271094903405289213374255069529752540182881618785120224448093213494929764407937987093965521189187310249005499917358577212728765054935970091057957038644026013733158696190512912177172620215951526443972496937905296004434554213724865231517576661558261275894090130633710341558812927731721430626390222298766516787254579197387912824669693285025579229298755294828816372977984519527839431516092449557515328629660353338544446674867074840903038135378055852316589735131688695039715508493421459325564681536356245832207174358300562404406806239211672885494490692349421546658140265283166757885157154070126099800908039295746256348122025265089560546531783064094590240124983479302274208172893661318112656517526323225605340322765976183271360024610182979929982560794127392972179930423269312591465900573129675684560036167944558935200598555782796403916247027162490553824772925478321490298055553660786799413068810265629906709827818230832807186874027497960524575187093839190230737790075285398578385286976805509185551919731783575998651883480946248151408138604493370229012949580485009605643262487554697033193925298678725172220512466516736322797883464434549896309620791820222321193451234382279447542483488176950647732765295818169222967873446456782172839981318802564275057667248626569563276632714079637166387343630318644648694555900709309013462698690856262743327717003722901789210296637860596730045564698494960950754158183942297154304837783192500897478820945279415084116637880490855482183192936898565534396769403733510987500322587825220041707621174206678162283553898927209317328775757633911668744124310048041397458801668689534653465878750393970236306638479099246376570263560963984030755652131560353758739811835174765482963466450572456715770210135515501574447398892948755654951209120763984208490289528927905972913507514985465479390272061131557309297311319802708167122661540615127965556869464256555359553766357465665702560006835857696725399390382081408904560374352706132277380865302486225831320036311828330729569299226003982672295866357682264261406482935749118853873350572248511482147216742727865623247305703458534258892509753210297538575954300097463740786509080424585078161096738096863503445633485009015050444441621278458302358308065313842822635543703050021040113652334320717529046626959794314685227586218304406664750091010865698784605276056046078163553705512185393832729474634229997191031175217332527190323513820783587594517804597367106820807113618921864263469099747622576498328745924947513203255691997510942203236143162239272078970803445937681429572942481593425779520071281142459015031710264901218003548007146122033359785302643095772520994023503896637419634327254857437597235528448337343203953806780114020512342078141175697105352366478875158777233862528571450284468240874764158124693224740264275511244963220884386608821555720593247315943511659204069708644710195631641449279359300804250845454954965959939072450012402947906079178514457924783552003316866199335696191759548130734918654854552769756225688322097053131579814759291681946810183058461429040412677493880663208849544995381617405618692544335810682813503317295681120265918483530961494620000607073142079555249069786933589869806434312220413352338029573391281933892356179588427889690572409974075410674367172748305713446167157405704494487917275126230754372515798711024170216980850376717099601491033825629174770410251735603068310246773806278951349212385797304161182264854018358587097059855813993249284070768858719241177539419782213925020502566357444390993183670016708384815373797820097185224579549939374672171227455969418630123828084925157076259778506313030958737426101367787832253612219958055591552483017152310993659114825566938084970870687529283771068350627317026492527825901334342304473731568511435968068560970177839111570463609230478933328852251356693549139662890402201902378158014090594950131474366208755370188237746615684505505756126624688910278860573901077914192495563890828498009993841557175761580137452405409497582938187096052795972526601979527234358821502875713952150806600225846307617665530377699810733585809825929223670102779948313929553726789894809089838568501882201154578060970272739564163476865162211902741439090748459014832577863088981967478194964519874919812145908862617037040066033531531691993544452461217599324251472033258673185187988271823813404551875125553274537821367847848106739569234094551768009127895334314600536430062440056941873565000992223432846923868281892008154862071704454088011064121287714485195348428546583404682564305004660461689370848153522159187463515917433637585121370481183649084041340334487891554966286200512270566296117916524239950344035158446438489426801034830624046662050147347000652006474352076012336159942258736913377170215011292255896667140538479437112982865620778553395968235464103682264054345504407264782045589659184583767530673229985138785527158130604243189018563892109303213931395374882810686070671426565511206042922902554975840170643033926610757302618267792239631474949688730598193978987274199934181386738347681942017460885311661136013087357401981958669586544033196787857444670837468495593245119785588574113512865820297074304362555902629035035189931771645797971912959585497593992147643691037519842113800792807504869350005115239106464242242016855468362862968851768130823782772399244030699045242611543343316577014044618715860805207160769252017592073898977454142094995592704113179203799658492859371836837742161472762703590376933704048764580895430650255256552277560155006713976741015418158246802135247440944756565503343824065669216413418686250118130939691580576313208756051805733236314010385575833201901307971583751245709757773699853505632518093137116923004742816857176125937307491364297966544955261479285930715171088826816314188623152523961351948760798707126877708629336473903107662363219292302062844073687572654430551336399362117445968688562030629616841634278352204249851570120904735893403383382638215712020360101577722115827450814198243780574772062840200169519864819725425455523697606074398026179641328514447798788971812872164859372271767911878563583168376719584116533718430678246500270473693118926071923570020373968029166595176953960988014806178251843308704423202967590317052263509743216864697685260161176099934932893964231720219775745547509112005224141066368368583323083302065300402036152887023137630290809985810024401725928570962819981643432948197753522740169395807709300861310041308700726724425448605541168185540514196512193518669745098449726630190669226550479926245134234135626043580471881151854999861821461030034747235116904113808585597948579234639619109173277750586863846952030347320088484761456972305677095772497297471329402863650674814709675738183627629961318645218336808219539496093780002257386878837233889416887036511194516387670925393197212048436263610547636963651443181516326708404786773948297860554243685008534823458769862291697351434112213462944129841971268941594049983314507760685176831187349819623226998970913768470189721792227300641846907740364491743064902315191317728609035049866742155347006050819167259145952965843032204469323185477103822247582060871228174517929751353005048104391779641328340551243191533397650794324278035636745939480535579619153518278841856047204872713155274525911927516081745469477249814749664600210764473936108560802114049320917524872953925360368950314689787659321020092153495698209415700078812140721631939019245895238931261318673641110147562517975872514587497316475393728589542055149764112892014094438904641728064046652745171782381369351784334750352307040773435396295932120814790652815359646528752780469086527578249901157818346460753088359026428028386299255878591306388163627732801771588131931987225455549521499014455820130121018385818690213909382971348394134986029291414441580491966349288543671245089293882051576147719928182774967524320113353127721824621316530964768885971177280235632990732014751982412101601632225186255882706796889115850627274486646691313843360229412523993023182469705990966521673331394837462577436452139046427262579388742231406877249306943471708938129674105606772579439598963107036913860824112226321790915471887276071098898818561951933925118288905937080839944346941635827299311304126998667161318653203486635700268835187486100254568270128399389029954717062452316482095209855862348702301751915173328687055669770206494208132465846536039089942623446273066096383181867067848457274837984659054755541860030382809087529691328733453208593965152276487991734498210707368972766397559274130100762382863354473464537292178770515015808847076781621299135310580425146102606575421036299144256793237315319610450472358663524200542464668527047869771640889190740209404541367440225290720308311939527664684637519583451125781077956126628799670537602144523345643142149324575424230110423789220428894468096282523797834036702111234778090971067979877668831147228124650466917395347971222336869617638122171999859275048699637402487631284396827994301210959819420937572814827584130951932495924802364313682553200487723265465812686601534035505115471715469206779802327459840841195892578690713556957007505088728770135265729859109737233881996724549440809705455330827606146943879505233067342857819989059040286663650567947439046608008922151389460411876332889435218326364740523186031387802117009181263667359192763062833547619516002954163922900891834591754113849857881687715659980472069786122451840864323689188264958466099964659883324413588265012862023345280468306842658203461803146695918058837611975717233354129739208178702917989300530265684403848595572326990972246388860360013297535894892326303867199027195266502793580828502909201272434206801701312860711460014268549511489681395454503689534602372737087410622543073885870126074595962831344774237990172213335818846744926367952674133676718328532571962846033703510565938902748215913101799032501764830660024062917326822531495556748707408991664041539781142968215223015364178229702570568079718818287270942304231599534762425070461008751846649463564071804871200208314549888680814481374399986340159933087493439530272990773659992684253314891541871679976243467126468653146881895626460658748645439783192770384170338190778915424233211456677372701063655642242052621497797097361131295718882526126318726808557575608470311006165927894648046764750020897193618063483565413769518422056311613820942463926008076728273506425343159649768047897656343686265495774247323242113593474334773933570161319117329362041560716902706372987380451723516754146380204932067186481878026357019408262444788712210393123414299143653547180015588340885638291160313909259139272526861425656991781438559477687912443710673858969480444996513996582144635541552864985494806117843166471014960933299279836115669042302871875616433059415542224979017559288587814599136926728712705759492867399684479417874671160771138541672502659835829907968360535423104809715376650081197043328387997687444506385694684581878229602778352866171404268514687722006918110830191137945108254849901191647027338932736626293367914006745122841487197754909031799578384555787510069394239308315736663112482192114924859004558989761975561532377698133320690889187815008296194220260136744669635691512457710104535031351077293210179614552054514864091983440385689306079045119540435351585069641599192463248667587087067802616272074660129787259919984047003942922799652518295190183248131163670155807574010150521781318473025428384587200188498838391275247117552693523025650705883463397400509561672681407129263365031062114164567043815709345394511422088154591492853022878865567788085361834351455535623009414864898222039034869983794122760064553470194945139212920274560514644130356417977358275448636156762719658319305475399970486717580028097826731440401289823481826502366762060468185308141785247467091638903715114197141984388538226576154203684758961743375147711829124649092531383476739704363404669631982320493935383207271844488572643397458540255319837428518051303937056924389957859393891308384096553804119040158578290648244435160827708609552246232137627479326237836907662888447257281807465872795539037282351478024726194524689406125560109470480102069380422431027139969084510606707497193407927664597356093103813621461545687881730244452797001861761700271922274256145653383341346292730332755618543105403302815852805300532867653132042258415995073115829568104161365969212350816226493243288800805251749614591043160132499336957941982546757529975671544544535424898784099712277292787231865708625104280217514405396357476745031338102122191267831982253305568106934448156812217411477103491921000042702387994135464839878662929667775852081668590867432201596935367070093114863837183827565138577252361747451109839218808718066179048425029244890916357907910024062746877366986500981810833489180346637818873565978891048949616435925635733084481914611465159956909563576908114760545592912051636735873969401981621323590256774125872642847640327919481204264867508013520957467195986018166655180579399023667443271870273683593153932593680001302217303806667065407789181702104189480301252638473049424770024247781195059513714015719918233358318111078498496276990114947284948387838632492385789046673520008549437168695418018840760724777926770692806036759667819213866351939640004956020755420979439043039794489790198499455908113221834206926714963747657560639466366426754385987997730185176649914688919611679239723506721260233813705552431468481265855355226592864237964152621477577905432957648318673117119550907884233757831753480249548787541770925415149327342374562942380849146690692316032675512119748689969388275807792133901902880391648317666378519328335619924026517546269813150940695151703773739727341120309395491897765173778990485745813108995508484052293599307481894727060433521516803160054827460581717184813864933259265852998016854583411384935095054910385343263448603173451492361990045217332415068302767870654895190700430599018060394378416603787871455856393343741800182713046570906846565310052587291158688166911749794657198633985388931624331450484588198318331838822692724417186824790701958354989072913835982580623634422403957729768340190364118202977051985422516566366776604028171475787120046878791424397592068102406172022369519729484967465496598859122220593332910131506739794106696267387831424727751653635813043783932989502319581064557947261168645501271166788773780400176437801508228683488547072804693940981781343522082553514620706031233576334082731729525279428096936049757799204079306240923252293997199444134178184969378328182191964264406743113868505320190015002031213658919895841853119117801279945605286899704372097041261425168672168447779647128030450863240790072307029704294164050098067237781787801532562513561916249425557509336201455265616619970730390830591058513648082290291825295448405191747050289525529627809359175852943994616351893067020349888651113472752598041514250633444963503023139402625818171923870597054241032480519869468896326015882553983549880970234985574192448160228500203056328261099247097854851142672398228580317980855831323006173739477744319009535128586884256298297453984205521737233000181007771738539364854871477263738783983614303954847552691170816842914219398110606983460893241228708133479450063576681192871118647874380094129111281825503206993943412106577149503306523911848200413720781371458964165196500191374701039477168771368837156794867761697424717845090330542566708925104710581238207920050198659640126538291833367440018231207759458990336293498164664656413635035742382547132289051542410257041877415070432251690613055024589688198873351710218442922092180502004423435360525561282959926564543621657700355763027707584417895082274592644623316232583136877835483425393742088044853375099709226258942855417237632466569025393297693648532580805707528169896095931953135517999690244534148515763571350608808230290782323900224037991584101414435879283818108480378241736675067797489591105367344278470215930734320405959802624916851704420364112157771155302355509412423230274716667244342621455476373152643929626739776879311954488325535545015453154726368887124007760586093319578366173906978493345208781621720161297444005484351096639836969245918463574334086673126163983725439378108755200735966471286099204685799492982959604374741536866450111849408715908245822225490043015094579077036957166536410643421968255091771839921028081834047360035488766178541641302740772612505721856179450597822737077242131018781164470190485704588523987126342401702887837463975525919718797168820387960614505446526004953105077679032908457476260488316391243365779780838105147470263195101115264361095937878840861363749559460119251480872939222950499844770369572254670433692610373093056435669634651004523434625195769886180124906200481711317001441660923599951141377446995072206724285480358113384417850079118431310093820517683712938637154866812005206273958860821412560882901846243694440751138247015819190888991605044854329829710140719747960327837876090430877250899631159752663559265167013494817146652046726240816931278481017807831762277203718304848531784404868316522829081673260050834255809711707256214250840342897751865588513372345874216457353782151872735708657045594826515177645574268669004247366662607682420682761259229555292219539671952160457929890293886290248469699888644664337187639319099958164954181101661041431510505083339885040958440861377284861576782883023961294307099508590235588274386141199314456589792397758778700498460660481430879751259508046655876738251526188297863298448692408658502378425079245715963187128081082123695016595451275865084556504829628655260092194372308772662224042202439962457051449727245877525830016470153307492315275253603256481104093201485601247892271144461283334596586364965994997949981066865967639228487456346441428781137294629241814016477875576100446429898077923202280955377605870404975662135732758614161167002119605348445321600866878934135916500120914648407708950964404968364063207882708928296689238421504611937830842422360331341377431009333538223798830952808097993307596650238249101507671740402907485392088332640487275363855357784202818690397668358102771665674362194244003963099485816539995710035848107318335430404196436955392960659269944008174335071433670466075767304578639387051559108827730217421567842794453815449187446457828977815592874848737123622833018518943180062613550155633715141864816594347693905972924872597548476972044548497473516304666546905837311376513339890282962885251239266184821210224279616807332327006353150708945834539572047598511630721836133168613471708000286453213501814803656347029426577345432046728273736006759105465130823156202940752355711039133187858672760475857129920277408891977663018026768787109857337289210538656747245282406083182191397524577637794592069603030159852095216288464453700883520405338938580930016087452831621690477900475614266479643777720736850582408930846997086990398867417452384167397032679372880771444795285402834709584442732353525377147363569794920055783776254597646661141358541551693014341258808007119276129221000840782780047367808764780079653762360792081074115921136037472309400368774042154802862048003866755752206340478359013106528584235232650061211631779777652707865612977178932029863116742106136422575686434169090345909970647546577397775562296254054728838161329076502833283448945174200626194372580564962151675464516999306540174938506903975694357533194702409115201612470116940787548039595399065326224159011328193717302701990813633293103367318274067657891735576703930955764124445827357404545025876740165507135317082775833241095117884075010720552295918287576982968638867109124049401837470111858034273539050939349729955147384432731183698348828129617881903413921252854234745294641968744968523640026128640478336633754414685178611753940580056621239141176714586406338642136208873765313871313828616862048333728131527380977946152997798364449713176221940141446421940864799456960812245590833793776725827550662141950966531177325127206976084059259931191428252619712571381422329149909942526239043645405936904425896346174172749671629982274489797141198638033390417085857164110183621889500361872644341319585741455639424145875836335846891409363821985074656653250526010998376751427038529253393065230567884947536099631611679854613337198144225235665036042474727193451296528121788143657682764154647135107393480326083595407785003053244655525273411312109149452138220237827071780729566219573771279404250826891142591199609636934734625683590078007991726137911726726269110881661224441568404407518429042154634646141890125684354134747573290688413405413082315978360110882480504666898825962062135593092476743275454574477026659841567398785966434735245399094986033295130652479751846253183764808356116344161675898024840433348388834246240614281678111941424449160176190639622111660420367261749688875610182394777032923256140646580300365327539982582280414263184588539063275234505686382734601981190138303769299167580078459878390757923736186402734961995944865425947544407680134424779873956278163628765847824454807808600602397509341060551687730074304934833284647896136766387416077525796429671462987235232153544497532922259930073646884887619911298322415979264001232459174937241655281354121476450341731553403848782686601660956386482671130996636505476924492503255502329948470309710128538302931555842729870443620272066950950020877667431641778821634276159766580934839395369158178924046350716429510994975678667637391943120524159141374485700085012040624605060347140695004850582424738170152041023764424917730773643942195525536327800443163442481876512413906579936113092115652847649309130538886108322177727775796230043354613975772511811828877655385519751489333483690964367558203113462834204369322051688345177813821730989012437745925031104525398021626783162904877353386159753773365674799834958467303948919049658147207526601470105542908028550723237378396694650622366619759976626518363689295606064925635279343006752470780866764804908791055725177124274540732381226367103635075080886706667338009899369457348852183597562497879318573883862303292303115404219251403744625802039799417739228418912764825356199366533770715515619866580951055912063001863087393567721186280239444600120015162208031277122436529899838708810588001229063910813152853879694404675996316423642038060139131753856985449031619274358165457720115315012217209254433965121964520267891590381401134236717912674756847171344875060261417544595249627888939516132942277386501800887447317062539533039479882009028681921427149615228808301278715912534494762147958774468451266483018790422224694705365844738777512815282428165870052771096719633298773807798785456689620219764371590595922245504021253971070635842279607400148750901266692791079966426286054476849257932111737077321270407801842600353513607183310512204059002081666450251936967476756977904583476788101977424807043943552906877275791569609803108427381827252622192770193028026388591509354831935125902698288305446012413151021600830760251534357692337841814084908012968649036429575679083311211890196442787256718351065596095636131316798181012489885556431244002182734698144811361370362650418600274266948144360762399479241656644265084817113098977008066221803784390763286832783610696491678475265386243684424159652077448964020193511020934308500603230420881516306061580996307747798637952683859981555660397547726450384240310389125228636189063935433179525749785446148056888482841608212641314516833315723553871894240516007124268203534356597784100286026769600894585724620314361037446476030732168186037010851566123093773515948358376901587485986290631448541019634766451829112965510889561193110551600171728061770402257593557940379318698398900485661114527116290315766748643615303580164515042907609162944736472554965941105551054362277538705751124207009585591097718682809489013885467113470635751176098769319076609152168020612079562958251483560084680087665098017792566620956464728901153655091999467561319512043584406415762767883933281830472527591228653435520300839464997945520886642614411370902355981339770965694113945440474791892777553548938401159479991202871662072610824495928739718770196467412063444289364903938385205205123619139522273782072257518398595728539846459758569070169708447464408924625673594904477192190690102227485486478112867183129722160584257539315973108979808798712044260051395952657995643142859514521615741851352684578523665482064299129225530835766429677570334667335279266032852591847492490969441682230962947696997495007319786185404666953615873434653715460776797299823098139298894412139682953765527027667768209545110978831525784987378877203165985211483674880086302538062285462696586944440745972139139131993103349056615041982915567514839282267557142931530460974904754729542833486152952009719632992667879616795475572197143054762617422467960072666266898967836381707138836282742480393245923803866633755947004332904325868684941286986678242108335737082586730059393512382849034213643465463671102411881922369110225121257947009061609203447030370738452358655393417482995564186952858413124488760094455445340821838295462541960267038625559561251017973724710670446368222133557006439970932024896421734191529499294640502978114890283430350226256818315884861768981002658569830759224509903963873190869960898242520971100490999531341044126215732905472697745264162347763820104883720528521536469086912730619835291225367089953094933670051302994480889707108006154988216057523874465931503352169579744191038072393553161836456793162687487001561524656088201900065245407190772192449630856298157630868754312505935364493303269293447805891920257343399064061794061131921274974283662649695572471631999785710750737437073865098904273013038788527237291615957229438045922860274215051754633087350615615158484773455075854823919406847194767256199501108237163037968435273566693211347494781381623419138478527799571770758869316557664676801643579374815597729170337124876662054369851227534549849656424280764569236290434667651683631019425531036971326406786059391672638954441030408487124084352834000059766797131259202502955034240362878621905469679353670569567128322635717820232510180431622246662293417409604210143876972568154454202849010026011568779462229289340600809374983473775228124094029307700245429018511714208979654951797028325717536316085887065120022765187531968604071255310939567155529236379465312950757595493578463916086806507084042295376740215535847744638447412970751861644872728831674069751958610862955878325653245767188353578723895318755977278689681706640646999102842673271604835418862868435088453919185657900453610151125631594875667210231604715523640185095904854722351845783613281389757329248943688162364616972678591083110095336798550296323539121681652224598228061254207981077713265297554869922500994730215743981437050533679970303951020360784798307432178402125087843721282844163117889763797453165052691772609801379789662959729073389435914076643692815696709005182193661323336801172093549323403747809695132012654474411307885726233882640760330062523532907974818515277708660468755768833536690619217825895813159132453089525514047699286332649066375210408523184393959262777543759764812577086931875254131185030758875509978394858915906074701523749134011857934099088642011074621204169913304376823165748557743638473166284216161178592511197898458790374231668550124880608431604155768428069245102224261959407280882341875139066277871444451266452005844890775391418922668262927784364361487719919084907900821789032248739382766713267924445287009572437288247100036884017911987853454784999343152218877056389045662999798217025806256025175301723356718020906987297383345151803110210891459653774264115462249545063448215653251921138207623519808164514098912168486854238623886719635315027157574454866661662971666581964218198154309201694275261396774535217185436581361955317826862132208415402649665320123721039831727294303201983263554815176854837988176969561981611355543464947931748804669806539613086200501482740388074304313259430313846670781148059727601616840728125220330752699822447173378902699722726977999812272421859504344933079713869110373485307199468611567402376362980736091778687084805847520413690561313800227765668098869997030664516206496560595788171600549594399130869700364418221171137024818890107572936053986910327993806248232039487126364921872863731706313323001171791974495761667343169493471511625030976357849826457751759315142373444482164499429825575487435356094736990293036815738638008104036044201185274036338899523798150762482070209956038179718327089613851071033895720436156130289271065395279796591306521511870993474968616984286645102273429834345867371757731196627343517882586584778743967389247445381824847165616629261876442843189578264422748179656160136613568597544722000096948287036851530650084626197086489579078598112163103320410083556218734677766992668745602630169093135872229691350042846813910041830784228836708410880074726662486041107014566587926335935590233506477738769031225690342910716610123964262891001882087549162607586313034636196832601480499813703115872402458874062037910616225637151369507658707608074119120892196865856642047933360507813868507301868275123311263052666981503170832233448500380883588894988997444893031994587064400870521153956161678366296906401834444702762929987784085412402056830416351570312250951362972483327088577171270322043445921153994444623961563071765278433872073210892793607595233323724807271627038004956630491523489012010099010810916640572033796325881825499878964082347836849093527826780427004964220645732295293302285815722352823851006787697238165388551053451511131324940662265776244779834980228498769953506871567627798451963390709020600103975056358607524587709651987880098600808970041807897536232467328299240743875379131056831677093270523281191231150029632066215910221165597093255734711290552364679003278240002874472199772652314128876596131364896914358356506819897897393779405876457103962922876647861517165612787519915791390240060254109205617177827267012892547679525874005007653219796607854002496142384747033319583055951940160612941937163119347071472887462023559748674456183945618127185998091701813366759371660418210512269359048564937579155889403805580093219088443360244671481535610401783358546342922690523108652893937411673098127843856894379992136131851026706126666719637751575030312321178701377979216949052463503302659402700188591376374646035245375480784161313240580641069776855079148065385152384778240600337728642862400335647914204039227992155120302477844879076216901575050527580541160515534748590971814265729059596964667765526192572426435906273317490036104769307455271961830759465599540045309253376959537187655320660707482041920477509626907523597683957049898066266154666166985130419514819596339762416586522529288117360279789212819210428039643486759471842961410330796970968628934427620448204791619047927105677397044420792208561158902253267162660900234478809169819234705390066430106977156150592366175713667549240816807230406869624058402801895654242822235445905618104066738479637733975221627854909635936178005115428105522517600140578240946019095829736483373124819738192825302528892039530656856950531497904030689020162018623375809954287260042416098856607776999090001157906594922574211153208007687144417101588246578013825683606341994309411854015803208368501317335228849411576940204134448090619650049338669457713122006197180526341333918011628074423671883919718607753170061816721951956214284386962646320457504079593743800447457444059327787575673300363006285679595442399467062844769729497934881815865237916865747310047890796036842018116112505404243515913938265408984533910454896982592205556078707189423654492046229827613089811801524018069109391857751551603997654956345318319497513237113848729764264840906587065824415538714774343690133514030622386462451440899411911720055407332091987868091153931296000582511738943956789650744880715082661166336280310433064497509556679780113162289287817261935258894650678396710874715489642243165297457102235687383684401938645971890273356459441130086488671075541462592862297217973148942428349988462196908313900406326947170709674249739714279169641148866292612461536798714569439830971165865209566473008593159665691826926130462086794714664492523583500639751970868974515743680878055288982944689701997659643744969060562746335047861279594603505674453061481739332006051776769771590822066619425779632551804577192048608438960312942300014051299611049379452927470117100408520721263893347869891648898666073765028824204088355502522303569006572895338233949455482404930644521953690991615744699341028175602703799600419344104026791004242014776685689525082454872352947699667306646120186209573440604751802008510368285920322009608692053134039009138804178132310070452994730636609392217043274044152384270084124276087960214972732767371041817218805671958824517629083946490447736709183201564395027344054806663967920761767227274604609504535287101415055666510861001187117298587513405714363742085850579958296539594611860299271387669019668819376071125587528732935994621892078570553768249634219948360324015703466030901749568575903173024348294670115869787804207620899363555805545804745741581680655730761543212847286742973569968146667916059927892450212748503465672040860192399366402069869364584612367036169415286767735526615188925599703980735223023079589407622034087493175649284384690486729862711341708590256238032348978028380852740066820141245942011843524670914649854826045949188338744464161770152230569816833502771274057389668040318326138920056278898153420127626936198441392106718512839820470388015837454306644421519911726881998862025279806327681428561194010412609955674374273067332236379444601135435050404679700833349918948963511800785247319769373281156551446366874382869439756569903671432775565865186152196622026807970259261242387228156476320991010785110506020215272366941632565320850539508914274115990065920706225325133142088526814606351358793702717449585130671687149667594535562951079118405139324204297600161478630077630597301092527381196786529535376478131250852400079761421131077229837940869134106990279981113649065329800034314894467171894575299570484537454484967602546150915569986247964562551024939308215071311686142461960687682694517262298342008052097927941767379002201720954295133884443336591719832854571659625690941920339538073709530285825658522297198850441890001128974114765442701684647355443998862846631468735451206465544315511997081751280938518110715527945103910276897901879890425482906638388565826823128509129665825952871743813395150649800611121374321340610561104537377490524699725328356117183501172146238804617359348094419429415879090538167209376025550395844822737919920281661531035185659387553037238492556598020218384404847493713705471521674496451647053780831494803993091759294270695690310770271308063103552612636292787376716111546717637864123496537552542996762216303378043966284390696504538757438193513416721453336196895885214160073294072767174188489182143772515223006917844483905055649960161379856490445799313745269795279228465525690977715048886971817883613080618755414304196942990655497215776983709494434080585450003301446609448619696081944107138313602893692376033469874551486601586228104172114801248195698232922895894676119263160966718003561055102332557892052973096651170361982236705952651891449840082727669386807749693161929555159323195381996961165912641758045315577245752791791034608859160392079722243661433722957707365371795800620700431265701636005070605225864299869097496135401139691831484119232934103791185988315977359109730085366400114443695438196139169102866366485770641001155053490431528289481620545482933833840231358506553023062084765102346579813890449955314214897231909401982838245821349746354471960063817624002361547125449767648583228251014118364702536877590883433290620964083619976600672907600668816914205648610454844954856379160685444874459091007480706353651671316463891581756202877755145676224823631992472101386379541258820889122271380232437723491563904783717021911327681237235995802085312945797915173676278106138555372116487691204147480170276756215955881153322455595383849478875562926629369319845300408748104412672859680637959636105938502883564245809671513200560483535467114634001457824108582157616643889499292612757971804212853425344253586866185783613799334356893263997272653760031817060346075770192424503157764536127110737719375556440731478018357286371816724182470514569460336123709506153414139043423431869979120090754584482806746296436150599067091507126992909288994393137414063191778662305739772440812749127906789343294257284320923132346791461618960186968144843197228036954690080231782819178794884134510419863796746933771257148062962706561043245189491626035099902639644030534930556965234910188164653439900687866946020829770332238397608593960935129066587032730623021416388088032158065028599575409989587207868656317400533988770678567284626932252414864202457772578404606922165180843370829548830531784865030610437345672960828147718592734642140596438605579921579628149619082233540047552999535638783931926828655370735850227238154219917408019683232304096040975450661417418485983644823485631981362714565265682036377387005651852793345185901311326334577213816020132873930838381019416042609844132893116225833836060939917711089171714850079734762237473829889105099558862447249764072728444488892769025156000065787088202200669056594507223372442528176722065414664207494364777972899725319245820945015894518675740111645819431514056346369843809488559125781405322442804282096355460907565404356189857329426436532224018482283217847223336311300871767609286592202389457903308661129231822516221796353330787054395498963075410152032810006663054577439609264791462544097190465602365660258426919622888176159012591399558280469195203839154438825022242627418571208170306479590000738956834742400055463626667919773791011006994300655009297335367123263258759775662156342029888967222501735340609456373493417301268740291649364690495723538522962830218281066491307306158567417903418418611783915399321344104197323389162014346275728460496411489003239028000090995571339544179754584743236430650687768913958154906224573307586184705562599910181686544564287931191141285907796868319937902028678776933333082120929862530048386340674495828501258937336197719981037708230655091077292213070750764785099049529350171598146747854830587748418908422713630026095512739629853677622611320981526117974190642889650845830491689557097071476225827023682091383691091016827640465475565148576594204775032772547346399693011818193529247511853380451712959925954641339998441441340160966413657249905316784944155715710057178255825109365183704528807679614661072648847361639419125694519623451236498190304942868718453370464937630505865700620768909199824493595557848730135255386829431137369533518335249879906239653503783143232708755253567930394894525285160204446800804428313055613751114323079228825902539556578226927075489638240542494530689036419093165446929539996277464080770950667175777791729420354047227718632662308437074689278640976997748327884453275230775569430577479403360131743689685304483036319088313316450705592061615414220598332618868818766288666623039954578682330029753740911014827330454612506663771788526490472100627219652541917433835772459614177418201070903294936471533721430143821144915924728851969815973055321155131168311522500539785060158529539310588886066487418582548568376811824766494600280611271133258934993631464881397669545448047058326737301763670481898738347947471833578080836140174150333178098103313849121983687698041738124572776663133706229274859115799277023620757747489499042717532278602814042310263890752812426183430457539970797691316583851951533854023160376358216072324030439920369159441229721588813781829490387580112303407950038911129729303961821249091606353376131249825915473684904926783331691085531230735856079295387061702006442689762016048270720207204610296066976249475384366517332525944846959814237700606210272942591672029393785565808203888341909790564740832921010419593488609948804687447590736112020624048024026396300778096230470040920006894688034687591651084364816055292087421371596831905207206019575733847737226678641517684786372243628340381237025581162294491247392803848093377399375388758011178624708965235534065708117027251927272551872044839225258802258068656807183486928456696342405806597116700806505511258841495593983006939553977171888825452589862682986854482151942699313328669272481134082899231135962231930576309945196166406807422059070873948475951347226092934587369678113186232302427924706821711485524882344456456132913933407176132085472754486387990958060556610396296600180450457864590542268695242373880966994243563445000023697661637894090995145569189396245767193401997978784854256287266001736004398422721767627265446037702618877546744798890259512031636121409848852799141828242683917336613739710067352871145088905803881912785130584807864228822087839626386394816370102032948353424150199442598701041264812420303124007332259339110870354915026635131128921267428842357848649750757939742280450474173604702609692811990998056452779504972352598108003122769311508799676951950111756441340177824560993021728498360168646948807853442959883586687609100924969457567857288036342594105563824428183528614730163564103091173719785566932310033302540739430139616796082656354307516227348914668921980893313907745140721110141360957272834673742716997074421431667688585600433945685721851655076970222081110101137480896925160123003860765075593613111118113689141763592213592825585480167015997858029276014358797568941405041516992080866492808301320514543355705286116836740304620084291858281410611758531832904472467267673558667195150106699103869809215469694601770016754324866408490523677624030913926516683218762901346220042757849768273554423655956844519946940938108746081539597879028959671762393768679303468071003275930154979517513938706255211457188012343291463588680460814704287113392263549198312080380773195049314382928939686157087964333517599121392787909970583046074902418808527815989291287887455012028826173149357462107375602702559879868079482997865300627300151607156761451121680967329267747426992691661991864844076888819961995931471723335982889750099485750317871312368628426332678529489217981177773989924058129197638316231090627181127445779944953291537329449956014869529948800436304850741952959475271841069681026333049229338749534428926317474038729045061086098882479190806728112239919050337570997054389230935501404561065123760769783466805215705392687230100641211041181730903184760973758098495813774866101415372838020564017751974406051330975863480102694887748811923442569449011492296186057470818801446141008947669465903238120162369491126142103641240052203554661933572359479044894588248560624238566651669525716728957290865692826452646461893716168160282835270234255757254273394024352890186335410241489880359901223279918423376169130632722908540976235169176146651230124527853312591636706551121908346831094469754891607868956935728116665101348802081385289256552179400914460774905522624683440828844179151958968042429972121624018248774381774257448367520060292102796592145484358995957094403487035464238690423344196903622326895484267189954626773515370973254201204518754867064775755755881782787174320759702683703011785649099561729780471797495428163901238290757515969301867149393821016799417625206478571335653982855278869530295217397575693558247867413562101920896592867488393531482716615062327992963873983971579154995506032298097603190441417065444287102941890085534161410866916694568626138227828651270274187814687220880012264074825771170442780356009492959979740613287299351954236943278018944870403227240304812795839532161581553507416350980144758649479679896834057221632390309170617885912528072714880358839516574322760022621929659780420046504186983903200324978426072489837432071721921153899975664268465784290534083616306458450176275071032862838481103531337307460572414493001341634849037506288615292037434066303807460767422201975400529621708645891347106521254690442093571487304514325865370561064123604187384045782278008705929137197822037461256686201132238931003424012113613253798382557606530477648158216206689329609424072959583527531221237386102214337371713903822062922281574672453323922865630404888590265061431817434891930887114156069144108099374743355436746925633310387850200669810642301263743749955645914256904926276170517248210895736378983637447223450297840312264367858888069172614451275195030830905587081764262214692570369970505113408771362585778413705341464456074651213943976111316262053137887142753299110369800645694328947997003485130595208005315015445587687762972521331244831995592233539298761325104292017811990738278590287413911215164830425348111310563293438050030820756481019611484243877267738449121068038918794778265809497708019669378780740513948303870661260620699133746577110172074516904961630541422727942547286564592633293121699201791220285930819669412880692295931416205787848281979225209784030027526147872244383711998441138476703705632790070412475624183299597263792015885025049600017902088874442589517737490749848967913609810193030617712035341663520814811588089639546528211153563039019399918108638730103696875771616253725112001171636125376740988972839547763086209989399582703639997557473999547168053962230002801602624480733797874674897573470767385190224299949219621978890961520154733397277170615079601459675129491552168451640521334452957148783878499678542731547071079493259213945146219129613698461926807930336574283542967783582143588245316705123262683319706155632187931384512959787608786217367528095221683945489895691119275911060372322134114428194670862716755684795778444242285692347392263117718916667234040671362146353025932233147820392304091344618912471963919343367506016871041451281821368828794679841381577335197394953228301009646267212101662529862246088241123344421119301255424198004689970858714259020746608645737381781543816061956512303488947049275669421036208675900483132834266890044628204034056742487943503138181982750404105060284471390022571785509105867461664797874901681157964481749937604451453533394324611612699669342053158673628244709885772684192619803905597483946810768224330934062186014713911354716283047227191672609107473744064091043407688402716664447217235221080200940731723430099592673635350934198218508699683472994546573817745356258527625796151797670643736635583025964601945992861868594120054626430639374851054543141993563242968144918981750671628640621225002949729667718021427789735518475346304812575542253114172133383235813628280147727842150891555484301944682440977075695317719195587087905862571817742721173828519780949217422582177261254629878599924578775629070859503490581753856100191056410242623973223946538932180715522473454430217936953398188177306487319755276125290418951275632193056551329797582320248746524333979076428507683899357327575827880778745458748443965029405483486132814229140805129976216890486437834400449925824296801262836275527875807439087764026746583549773592283637154093598386733174146285977578554659894784210659738066262384406546816174144897401375297494601640729524777221152471573182240627917780276808176927551609680953848198065971172072315702433238476614525780445957857557447315556576354622332775523683380361454240446450328338324263829328886312234686165725298410519354056175743858619973722434529065582222729633408356237431905091369925522441593418667970672998643676696658129828054252224788639921012156222923649802220328006474132473623550049233358034817468964228024710352746910178637434869521023366417659189181444340967815304334961694629097296045744909452224764202942227537526560816927626791660999618996968669568704130860838548051999722821141971426944378653011410647356686187805887501957151723522552953467395466568404465494842969067941098836073259039356518657560204568209053302514531177432128225955710393059994302827517708742194361567237555079392540498897142687911782417255431196311564095712852415087473522197441364909570400288156624439327946971927559833405444422004601530151368289400843353336783004764268876106358271105448936575344024265891403951632482215370167192426234371054374379031025361258986008350190667563276787407086422529024241602864574371353675905229060037651938835558749830250547386248911450312032097968441619320997628130621866256380273652017055772919248065313027514603903074007879412799585699125582347710275675507877683875483813325545594159070636366728735952875791738263162460739684804016270024696073772094230455216768642805365677054251126810136538113881354861450822174326243824978586563709589055026666087972168538899394704319790502596823135237619214772678701888015429780362474261260000186173257861520795615127853891482125457491640712526055114806645641980182780767803178345698275192723602227396098693738888192760853608306054666383017943161382491195679696196570304351380365862189166595141720569187644708509660054541218743866418619330929532686683361015638390183854423155039420811554040142317976752706530877056078509969591703001292570197381594234971124391776964695707230476046403149521230776980741346434437388678526530578519757406430124924221632817334923718624376668882722247485745447556335147517466772516699671264192262071965204001842562879163296801761576199730526558279941077510418070313943671565905256436943382028515596476708446960392793613715632188218581139122762698855619284520068248391647132677945837552594013659543469751825071971356009264843112006319187018280769621210307163408931292673943611117347574804030735748063732184965499354161756070405684953950137664182607331735176321945984229188114364335553974451734754314633114684523049155232915769075379898774645850935901961794133228824776950710866402247339248721942878268617580782647982683299308306175020315533570313654575331001372565194408327900069721998974557400106861708251220922143916603089167780151581649355667761408335288292155450048873820689471405857139967419276337876297090986700177534671159186905284527879650734435237975423078877924958783487759564716261705697691850983271729509451467961796501483278962775266486103378333146882122569161961625523656621503165488075526250331430169533760007032001713291943523717354970689541880189590137333863642983741046613586576711960409006172326195503540462790503751918110488497368145912675387230377850215968170355402689564310162847407886029720593440094080780097222209079754031333066939887242424654110284777333038880700946295302521272418897146519537883454419784450232508868940182522063124113480177580586440098571161184309930226574060797001156113994302102006176778193096637255510665512071869306983843357622840849468105203986591576989697506332806169424581007009381283766537032022051806297976257507560529365639878919462875978666707441520385840903108643136960487610889005561250983921082536541334296096072054133463257654225672878142892973521891792045705826696084575969116875761090665828846290862835087782998387376468607399945477507167415527361728218265961524268595396569771653927298815908630781852446833648579681114739938977447502635056689363319013012466515706599868601899517547870938827513784753461188417763009109435182636066979522222786406217343268541141376099227076726932236253278770499539819171476427942356278969231048275531880499529504061442269072778785764165747574705683121194260704121956902627951616277735892225855718608080405679894808329484594713412264523362445316614240283789631239416120931559095652212579893031991359998637220059629835847405253892673534894554018434192930999530404230654222853399300911795590452676490888523804314154352021260361252972006167919901412208384638398559520737875781134147503170604899630807667418342848219393472108077123358956649417809769626510301911443148372502586086717490348372555727459744505710893393597778947016802980194899149463360359379653357394899520026077296808274738429161763668235876980296484097410558474492197941748393737993904626242992129430417981776222534896930869174144392843393567596229577777456603735482303249550043941696558211596470431937695464465198929961060077644560399907380622714947073691371278377024290430445421105327989233720529771645556464307342070808806521838237105073374849768965704402829545244647099300793559443310911479674815181644121115193366113256657460740228073133591028069838025032647274681958088158114492343883134279111228781466258598233609689108552980947848597268852977970949470837747687559895146791536558929928403904609479481057656284813628331053669026587878786642621621832843218265768763306307652891095935450671199246173871911534959567731246120415277009854442335109072586206866401848023351391531240113037969475086605477928270758073108935785592248497931540371398546971874880564945896683547767392170912133436458073623270290639442348734342307665859243493868901039278017555503313025363470533119629804122985424328158755159433013043807673461242530913314097791973473477817350190264311959063088666687668580470647241162085410016951618461849035609886055248650395444339747627879820819804497804022703892841063802188981102039581245603321496364324206151866945511365937924692138523412753571522553158623510774958081979525974556376967913034825551077052180373916417636989185131039257558922935693994712808408359768105738268647266316387660087362243258035410962398034594484067687806077804661845536886522849601297203543274397094679793650670536979834825793241226092113370477740892954194608426331083356953214904658703443725411946031889454696684876613909086290458308103953674999859959211400728328001163337983771407441160307697533867379193132307223706275189692403117812075067071053433643704195704215835260882387431941832998181051895761502611205435381783831117137268106529526425543719594773156678648768366046916323540955625914145904347721116087274567720590963160522607384950460218032014831509066053448675031213782752491596664715571311315193574440980695001652628554302779332261558709155333308248930049358568645993799784289748553283648520218018061842992887787342137399624735562593409844081758866640909531342648161291355589082038139830266475412645025478183725292565458755036085360524030802410018632077931900653094059385403619536901988554879835943984512633640142977304165956000504155851450770231170775950821570465523605754700071818440527183051253618286207292926028290118672381783400203496796323770532528434713617665275046581031542667908725653513074152955531957266335074753970414300894988116772099910487760217618776109555937913636273821468388529982671508757396814075468553131110001806634992967401088785836888402410852309663735368913321155135994546710829196768913938189332507650247188571188764400567357173827877847274154467666408529685233379778942857679872889187086850035762303301003204250121024076091354692487822856549180361262808156097928466806538009565326046835618644480709685088188437097188433667712140949066305303692594746189782253434604225408427941013070851394197306886531778181614275707700094501252697223243335159272947928407685809908251321739029534565971760913686100272882486932577393184619541097214921336410532852804721836908656433140357875769058606339455971138751597346091315674267873695133593381752621548883415525247798049417615870125592658578402275104258675444224582125445255874850266851260895204534946798279741200145347324461099749389650974986259306124959571617145300969354423236497845558385006173330106307914928920747583289398724506551727943526230259521067464530698788112411131391402367207705089753012872670673312230848038219220600143236184255596664347550847425693912673915039360917011260060935073354370259431671802717730044508352673703272702990694747599375905402135532595845673657710738379271708443222144883890433833455118906204447371363001279908688799553261179581413197911752703228866998071336956603276096023149741009702897356692801971133563042858676653038937248531063471868139633835595156764318359889987807013174328598040033096488584017182813792667517302411916310839685284877828513558893866502694660927298587747866026809184859026694449214346058759732934034762174520105508680449831193631605127956375287428797456122597310867755000440674862463283576188278915533710101575682105580760112088197763914768998378963215325143064334959985857111723548088043077317028259047610956378164982145264158865236790468683053430251914426420166596729746657946654405905863281318365545636275804519402690906120504052614944892202556324788523391381439358990339490769891484699036251177165412049628420142219450449108410399737686778978400560529399009815410987642667885015711413083339106689017709434242642491166732014715204332528541246765195062518239119366594709167309161832146731728916901398944644072087676388719857477753994159749914632660147870716688659382775500541385972080774997675977840967818598105765794825321825295709775477383659529714148014023936239512056961441803139662522549785994688117380707260415165703772564143107464403271974259515338873232557334920486710213622723700184337396701280885387247988638142670636546402343818425940330882044427932269422032782080496423337086400728044146279513715518064910025260374713077460442022922453016380731975991555446337492786584350031896952494697533039130019187014475557723020173836998434071023732360528184379248578763884934329606472978788269035810599133742739184265369804338127078440354529627109292524356183459130773160293029343714615850026219260962356531917021156949643671441265244691007482932202813203216488441563449941404118875710755254979708954824081274917277287800009549508756764624934888750757090735845621783564652819740471705903546101904887981964704786009147473017606599510500047695092134177412217533344481203354579560439762430586483025633627945540599284839603518285614085208317472932406694999809829925550577113599914579459944449155490004475727311637507600065486831479412975629696405471883283101830179458040563996405176681798201042174030280468689110992531719499803599928787276450999110229246832138196233280410103503921765287348588002937162948207494967280549657561892696936982273041255061921739345197435887532129608439325316962479209897170245977666863983445209546908705491854015770545328553437600544808628365614312610165054268392803931962107309485950680957744747819886681944918893671995995170910725025495870046420917408193821759328351580336158849442695456211953240909274408162167019083055659245011253044144049718953715829771306795479348390201786199521148487313111547888768383248682337727983204652489599581325947589362286012926107851200377295903132569819909862552792261743061087212015764686197020768986149905390441699990483645562256822471129006417224448942811731101423214296137030003353975200783651936449006391527974312953294059215856541233097278616593179449711568160903700568568846885351743691158404345913499025015804167208039755683808591148097302885911698082275067546286767775971362267983418662866604385671183932096238883266820891654537188625051569199112676315833354932704102723082726768583281672658555019317410823582596027336261841883355949925749114138660559565437953109665124810931268942548582443826558424407434533649754716490893104870739942664718057884670929206228020127326592862854421512999268724456753775043488348869274865474218706093637644374246447166931116179843408781254800063934445190442553182168158993339904484953431056931045012548384579015350615792104146856269409757218929591084586384302205307671875377651814781417732839808907254546590447605523326565213281201549683853440765975995397694538343268743821987177835323692293812434453547517520082557728675081912155343515644144182389794351582824097281557136359871020657648538354250913310595177411665198525229984348389081423459893425689493514119390128322493069699815623168905776855567868005422045078842035434186018774440495564694610419133672746932542919745730387130921317629239200853032251703938103576656498922282739573786129669563867809907611117159518337341748407613395753488723174235250698983826657891215190297224119511357950482420797620893962206124897840646452990455200884864319050288298126305281002166508865163357478099040584050528831578805666894541435220219836857242209898931736837730170758358354748631318430835197722143046089701027116700147339415599175568211317209976923144042865274357007699403963953277874510540765759676230725542889941614879505165514417733671420357472608405093104840147669005290369668938330768621350666133249152974580784125394208390907762235152009624377123095132774469975153579103524662001329398626976179756096767080096634974997003145085282439053496828786512272348770075765254852767578027229233131722815264772537169814250614507192296515100126460044790519020449119356557040777908490344571452471830823322147439330926089343225315346525160469201394939623044901456090803618083043306973201985599933644770335757852795719140307587381239367981559808927228700902043631430079169362129995449967463287178587306202491204752832306928289292416916829897376137504853144314938907225327256603283776834312413872946378635294957850141958409652857373574068876833924845399923721211211683211923736752523254729740560564196542674176717159244569878929709967434926529991510797699819977023872761524009606199346620511734309170065963651573874054510851359086396868962910407652200396361291778133890512648025600125450988536636176187137858150940873230535705207148227735804785778614780436955887412164906136895079548045410335785023237014890085535283563741836887201755334137610169485352659084697174875260626498966439674660408210291334292079062334317835458774869686722539240689716668489001869473463856115335906470818408534046071328647578817855846433497074102643843318323589406922002654818533019507113528098212825655479453207375914914875335887082121093971364920735084461127973007770767792078993341213469065267577820245972226569196947693246598366985478575112654984786331037250238818904406247707726368468267544659407736901198271189719970267314371431872466264292287892497596758344958836577517496148850759791047847903175384433729689696895072317154549413614106705176173627012386450974929242046456979342518421903402826240037810243609656287801281822830581798213908726517530833614209584959636774375634278654250139509821081241280789773200963187535209596932460408095421583323591948876957413242163513436262249806579124068663335130859651423802936087943745381665614523625495551912575144726539608908065137007733419645898562619286037968626359166270361292125910906376833221489760212485698229260720534265134949078422515683334506610551733779911897518722414322763176862841631143911100770437942732768017916222987782389063540147289641772126961718279636075857854825047785969900226208626702529868196079448011446111381462867008037274907438810037183539020008563318931902187068293481975756120707025224266468371380431194783539297743677391690162244402321087416522143172008811744930059595298764862795835839290303039282605301389363457299870353517275095655887359187704761314876385577420043845190096796530905700320565166768421783367389435250499035920128110021728781021488294392644118451860258804646866329426875324541911490888821533859372137996309155412241919676965512777497348638083319480068587340341775404417700062651292051027152141388049838544284974806435614915665598529342634123449754112342574912720448802914089330413582897286327801498517632379443983788571929415283708644683216648844789208447740393780787000212175924046937699686011303066878573664597866849900834795762686558569369743394733686615625906094255419620579912614166804854244194308559201089347043285286828433864921707419661111662051708638002633951997133728297318472777160919622605640883517308461727565873512546081893945779712388185588917834848006779014759686496842296636178459806499230466700589172834851123263941057254863355781822233595085235769032608911314975357360991392722566258914310065469721429263033075108176643746051948423858239411743532849097000981367722584834506089435041744321811573622072849391482356140264263330968908942811583929510470962344835406143994141463985086766362648103200613254154839318130122379142531163928227866232312179465159008661468571744160795511735723761299768038856467617252202484950418334690702165994875428942233999377156012273449390099936324991036597962948293115744680125172577751648129904039837032201625745022450601398647597919277894254511325498572049519731432125546297239715228341316023319835993918768773676574880534696596967374484993645150957683778100823506218132067277394097497549468507626654683007712981529781771765972771361846619674175722066100766327127503802731085919761578536600923594720265381993649165723254760763290753063665789831550963652133825389581387542093152977115851471575626923195324254001412970034055502094809155570279794778083293581138647908437299281889410062076343750665626419770636782076388390599170427185961776120572291251140518829652266937394271995368884557146471215635697762732894311502833352061007121918019772856433972219028964726854400516891691865621500734473049144084675605011043909193316573995670109048813667121230432752908357215579762745469150767341857352504908492128678411118923890320590015022145145402624906338452481811213371878509118287103511627914147174308867979290632917810752304706177605232498890230300052359211499440296485316543198096876867430179971537933303630101221425948273403468114788346211484662958314745279198676750022047543969706688943226968181418234716726498862953901920825743340249850662132258467715942169813858454917888544813814906216521709831062699565988132380932312614326249853170747130773171969681432714534427450174425542278203034354112358617388994032874796250951692978294180607943808958167624301802812160264048907662878899075363868216079352060728898594543947294619873964083458008723053619871747323059652511832730441559018711756679544628575444191538475522891176321445306371252502508609729776059092195014371450376601408983623874217291349837527868257309537263532337383649381204760047230462807995230342222152096851077810533188050277454378669283687657471020929747266943248791505774360790919653063587175679342154102238023998255422846718203234393753810913286202294109430054043384885027855420462959083484964481758230161422935404360083564375850810380345539140173701627053927867904762616958599610595402385790680209027683945737808050848632272983432363910699983705756311474791719385263523773027611430626022955762619941771051979705605498266992043821414840479406793958268283236441451025583995026204150570935052876009995159481050712653747304693020781533319034275054914489880834665874924736605326555522793038097513321971212502849395093395379808428648666663991690300336337751968673210127159613135011009862112815702705780695464664212290941164888301998767630267489993111480041628025362642080870468877710564020731903585238114482184027599542345132622265575169829026050200833668057982692014835359170090367764109819067398023868857230315802254047922811853336646423783769425631734489132581886158559258723104114078432174673145767233597148962352571401976958354869708193364473009616033887070379740234633283028775632582531718217724524579133548065595365664849732201192400992536223278036521105909253209352645826882709883864130742763161786162110624667350927763938551849917300495695060649706684410122650713190349780033299828717374941591912718435715145190592218169815358013807889378824098840502042469634887400462340630143296228396906369014031371322806042106562309470212775174412743746545191744587859748514985153507728063193104285836192743805898059102997591991256657555834156779768444857272615198451861771546878241352644215387627539645221811020553102792937539236522037304426931018124734171629803686331459601347840767764525383275543878473628777749226241591010041153161749125742782789168819206029094335114185969222581250469107416801959514433666542989499079988885042161009127022567505193948103935073538070468040103782974865231158742095059101847325668591177341091988271603746313733583624483581316815314082219443869279964615111281847635225667966854681756850762391851826189158007879997446236800650402456248920684675332367034121968217463561028916262138061226368515705938516710150863600928611956110372658283294188354409559521594485357111865655959817482923441462214209138058965423685338953752714795405838392004403257217177300338152838430671315418493994017695566781949079922106776175414875819840048167948912451752808964016486275239179972183955605007986233631184271428460397763576664670747333576468523018173089630726296730649971264994947199648945225516452711340195018716421731560923347141397024678905513376802005142521038014034565888998531375569453833146320507595834090065135673753633087005465284019151897321128596435738910509478472888127085000719440692167174000792791313674751264793608402791498504398760295374599467064123497357154959344962924572175615540375195915258624133764094093032454475098947302056484394822003096149377344665133119818369110839449329669985693856963988606963489505408652130335154950533977912452192347884352952602841580511672645539436857884034891182521731301545637895618343986344726887244132500366493366035816062269930529091260548024428412655390287947070429978021988614509636576404263061666814342151673804262955826733511137640897020494527228301916425932514576123658603039242109689999969107623813200606195123818797250944186260861507062907499117142583609609361693301245931075516506160322807495507432917512073927720384157490895831383138606778952669163360480923126215588072717294421872863469562462225356425717415800482582982160840152102428937437056752878122385169041569802053210287775076067583878515701331389923570540876392748443029901387241963953635423660557287134827000354122726777092723268183959098585056020861045016876037390361220487325750587788531423436068847267280286090617100258360493254694091659807148588879055959820974181761346872876511846216649791586005795351958617723836697674779724587445227719223034752833345913802289904405061944337268336046533383219982119278299293764932987564460442640622300866322778347673685133913194777916464934809777247796829617888204821725355272204870022778473081176786452562882102423764540887407552611611484770255804364327416488621474778500899980602292181895342606248402216110851753917560519743159821180704156076736511333122119177575033225928931097222793214451789475627724288326091734648049310979361517230562863814618595145416322204714595988659425265509130361841323504262869491420288635772514738623597924376092757251562923331540962279670824500829206301228797352660377809618875407619728282302811013220993428626453216990696979785626192057469909708650292043894662571383790305532232052586948518164492885609456084519700237217159151962213103215577447444209143461468667508762971652393557839136507297256638441225437723634410934334654530135456062004290032303968696134359060415470468547678248305575799374739227703423266902198255236396253466942339848507214809181195955673129871465530548346956277583165659288330597268206336226071541119236996047084674233204154322788501887114668950214652659128299612534754624486535181795647102164215003144539740217429551578432455002806429998327104008217913526241335017473939600193641564723124403705560733031549018131266795878576972832683530767023704251428171086045423887931461867744831177472342850922850963425838807475657230580688956020816393765392632854586156122658630851434028461926138654843799703981947109357495042913585523202018137619554351720031384476288128623145195685186435474833487228469848740488529810340667853713128219102304070168270480874852432038568171012591849785250066631417611846298766390460476197452096560323507660547155395202722418816447556982629900947014119140668043598989941600523886574910111874530841804095834639392411476544820096404266536308287804285795969507791757532632520880023970337213575331304841984273908772893347882734063528317618492648260614983170950340755258467252131652115832440404024213927841657536327493766885203194521158065060788405017059272952754318454197875785021103754139680230214294661695948132956128027337556951323015844560793822261986690640993961081545025738284874881390539908445282602435991220639244480487767488534468069237037902309727738755264041247294968325297147753602440572458880768953163194209505581556026440430419589906978462391568147956236683294638025565607584372255091854741709450804606815584386257311993490847491407114691042816232634412670717419965621812839631308586211261351757413375209394535747772343548973630935358452979847128325035800440581215326341697688257844643391269039872706263825957027812949829868897730529620073775938392673864045970561154274497373928275427312302469896679461587651081840817447364760022716465009941275319352856029078893601444760752009504098603710615764337473076679009312306045342076507168495543580280355342079811397342476012560216863942733072886806790291172944307354475192646201522777948816772954576633641690356480344351961054873924320587206661375544233592657698393610691275724756543201414855690031075185232145259831968676452400141535324075745778759028803831804331629850899687196526598910579952636123385719178758824392705620332592074338005500201242681815679484212401369077281666502925057786215133491214333868483300464002501791994370565627439930290354966001404117234536395416209595932821059389396729895178002702458199323097598680166267478818216646929632126426251179718408296048076984044356400908265682614367452897491511834932228927669136819962333091897474991953976496594126213955585562667596614201188156313204723787716480419914272900268983158354598222680446390255735223723043443146530147115157005822966560683284407353918691753833412705866641774346030780951020566935299680372194968250284770287582249812048865673637988392208528233361134612870885635249861603449545360440767355600412922515398303259622759396502382840035723854521743917119289839719706992315863768402493188351777479136249483259765750259036925526343882252029221773842881435453513840872227096962483984708950597373241531438164955292526505430446647245193007822011137110927815999500952827423375298110169397509132575088319872689140753293997000107529308565747597168758785691854045711583026657943514897826512810163241825891582525234215142342229484715691281488220147005244808024110489601710756809642347892118718858767151521103798361357835033335474911261338818769967019433310743297304248776285131110478250784846851882767473633819786428828626385349249185408124006927175838729098366513581661918653548984129556303714890606458357537802003867605069228208728290155103020720754125700478319054494701621049305521336754545119310950620573428514129801128138155715315712214786800887672239422501633678956635849409995289978949262459257507442968057258394423251793182407537053019333807841547813169095941033327012663972175232524736368667275862669256745909811728837616968037182326746573015307457720132791916784993526645140481214888693447270510396356806541704687209314630905975169400737124122946264100176928685086118496659109025619946476567026127313614632067846766106967674957843346451011077001785251582020002227912246741757068633656098375034290089623344506781226703693493594461524228090383085438880043456061170551507452698165216964514164697672063240635044768931306067684358288815553473762582181674450844663492278540938397441251947664602754301410130169527088157209684329220587824958099587465733980757528004173205179892469238072542382730130665285321971193641732982607022875365197678610991746075138595141272318419035337006575220498284385526360079526459645230812468604731172339426744054944080649057596071471619744389939620301994200080561204697363699972051351147633185395777546541191923276428139571743345814466378337412920053350469283258935387353607265080682974471447524977089327915643260614548009994006094415596451592132995891345371718571397399076015253626854014705278734178170368009430317619133796424522045737769273566850699620145659586001479440547553806234042675851838002097378750509522091825658900772517069645867780483911231903109133835873805843336490805760751068770187590148900416632721732520701820906866501291829842599598694837507728354639308296160391680056364346968661071987825112557196401993728675262569810373396600519590139204940595420666332231995047262075928230751914253620912436044352445505834420131300935279278820699475301451739334901861684050468188665406026957947429678689470738833251445936750652787203200900695732998119813753953123337220842367100953057489929151008995787054695443851912953496950261997642843990163493374596171950017752615815059375131668314585134539325225347185976798832653637131227791723323066109360403134369206944184342921145288647416762714907135350608120367657592556861558634320056082452003846834669861919686465546503885245817390100261978054942142426772954694876616643576404962069944376116269617011446327343479956029456532947481067259812084936987900534231399776372484072927972646805142174834021409784820280251762428178320764435984215497179233225639428146597973643454821670365553676949842368965974496955734407653908973336374358785743841555821428384329631521317418595980154599834172070685855151078641198553320730011000425593340795813012704371280005917580659161948797300611334410365478448665114694988761520629447462783970308911015253425654112135064621775648661857614248563040784625648536986838760555249121559906017091409120077746549075765273678348126952566762707939048212493077458250967114814075915868054617779668179009513466713810328697678468147599812503092201434703298212136549629243116399449898698077104377486274289308026522491804334299229293058516858712240549389308606724887837873989309523802087570558086375013847493289268798441446327549185271165375331901790823986586408549197805698536520216772101566951916350298207822536923787521410012182132769311308882981744171364608042131392839648388056494413275974339450444160292137091450238772670121597285407801667156902992343088396721367488707786445967428522367951276273352620593439375680269692510606299875688147977030999529831680356132159975050340913238918477426309166378480921863419476129311817845594377815527006514561478017749693459789350981135962787409935986036775720567770193049204197258409682291306004043154282686814864769772532202014690150763018017120631856419163111230179988974932988312597347120368949600742077414343777899353722335827958818240013211111176894794939547588896604451873830132703125859514312840265173306724732028592597704444547468471368374139482570800878183961984666923042525312011546452768941478155575055038918532720081532832035560654466284566459384209889796463747765953349225897538858033136970166855847452353379199346088951850772822272694694266036962659917919563639017624489810393627579898814977790088886935416725020456134544283286765042773327708535772615786998450407567573283970083009909320330641328081023946386995008981973565998468568645682053828388501907964906115159704736074665918189179738017292202969450151237093204927550841306432167122157313674264692815095289520671198750525778091647455043000252359466704814918131800322464802753329880367216766039209943034593490771081334646076003127879850137458265754083948734701162331366420701947359124281933950017952420610020535948842416808743620968170715565561071268284145299844373166141604600023781679788804017193198732537400729784413784761998258563357966055444141114698313619315031601317502226629872156105932052108813883060468863025993207718926331191403690168344371535622282840110263812739236304024383119067796311546813751417533534151368415941397684599930893103007508730880619490541159482153482777889362133019285796574074614966968617837088969665762321161689766795371792092947268564557417327813867182715771238194596160759081253155416689669661108764699266529996331071580914306618421058058536379926751407017749220903214893893455956554031701939708243912868249396088025311923829476668875458788926539494291741424343296982246290171608036839470813181319676126377818695508395124333453752814017241744986352679137519373224204193022750233626139461402730969757872696787701379107290768106439240729318624087227302286891021281278021843305925540443047951405414487753523409781926573604978560520332512975286652713808050783338953515233664949557411587601931490571282554700570001820915989232294560499026592472605462196066777066963055515936112423403481644661249993186821598551445037318959238212749023153742909791640831865719380995440953945911985745007882684339311118057296396900739040123699400190496768318117076784017370169361723492870773304726188848446665285928396519634195856891867490266761749681200485740935805700649725859525933473920144205532206153048563107979991400984287442887332569480201471791474426610855811698304417257454949266373108657294824111148691255762710505475001580419598207079160152979606919694137001888651191423190326929453554898244964537787911511694475580590173374059929462850416691717329910877053920655999390247830504004771050247587709579326525504790770592874882086178932730445753576017116289221048440488706337060336660529852235773694156122514910296197441615821489787739013067688820047083913282230612741755862693818284345394033689780548182532861723251957848148763391497836565675106308880627356718897123270313402236997936407793481059518168119625373530809560085057166468243791377820318376532973851295215749024070781652554073382149903656113247003693630918295254401656673107624528219892938542033328936694709730779252706323386675479540831579427028178244024557699386750591964120573043557786877442416405636192660011549430187548869817174252779695177371911658157737373802176661704654685535655856241995764501603405310280500919571507070878655818931365470220544098583568910349759972912507381172229712570687651641664041294463308560670978933753955382883507801916197248008616306816136860958367320592484242007800860328822422702252287850193639259910197092432753885295252699389489509629024865698268651929082278559054644348491009977493961107921609020195226612544827158784716751088353099317686539581679713223968045206466908208279833405244295800854380890664696563824195617699711673387876964287159797497934306906891833003408592208662268469702405183812475123517021743766968479065901378625199568082035662447281457627726098540021522222391384346135767294260095639766182108252493222933198321852916510594615212293741304371349073329052726298005622149693325978043369575465608850567347077708985316105501185405187089044372713436454921173485904408311038938052701127055282687149031827684954112255988808566191501850592296921537306977409862802740712986275580635108271568803904415554199059093250240565653120160595904258964998338917202983277602125671879387407815133471655890182703599881368087105784540306300531660832896508677990788530518044706599976333671278289312549677331961724631095059055505715056802231474977348208963305107433782430846492209025048833270805518470374174858615057524694856490848367526161740718677165849238240227376631874651375308591051319022545062061056939935219764277975146111053598126641439210098287484427992875127417869910852058824201153514366191455932075401917006884773276619857729926238339364197219366128196792355255921498065439485639670156407584908634295533239790031623939281226291675638096268991744363339057668807015906585040714815613850414084978575381059573261256315245868412325003380500804474242565264678804891143943519153750674436309633044210295521556699008772061933975739388213766155973200783333975464143120762610756109413376804322532790638818016205425736357976390060052683783285950650511424866458883268141650101261582983218715244372410297305150228538059910804208459318057884125002161744522666978430679922182286139509897273688604653450106284912312422294710410561802940626730040964502110365864826129889975633961734206503263967369886268983919273701974393960158622920528645304212595321795563576886837126570203069044339905694204345110696260393577829635018262085434691739954348388275768476491693787063016316756970736276172949556412349538757809339572568941296418820925982627387333205258214560015963898503054149791618017874305850685808115709012565141813370694605310056563189722072545245109450350858845497586148940359547952397309052846706818776952342154048551117980706801232133119786342694094558196411438861397837813885634353351756277799158690608639689249722706478257949722421147847643318813284290100401436080993081495218953472849935348638641178804386240510849655986973060752973503379485142075736084924321166608904406310802299930249171442648997383289819931436313329518913180831828257020888087395416327926913546690274110294086287668748781758990921206782197136274305599469717333857958526607686908387368745305902101464426454922037899059244083240805071006801697297307219929931404685952684178599657352552891972365703417594373436036514437812475381445559092589686506407360118998575609187166853932560836792629634911731288691718090954232356281524130480965613205546694095378489421532914862090302949804565111882641863249214874384431052020133801996406033891132428764865567028617807668819718634026122656560321508051138171333064709177645735829604000249863194371348547801601778520453522054127323345075605364569932748646332063825308636544808859900041521255146596482812916334327020636767146265257287309139478683789463625513224512466848723636770514731703392826696305431880970205849627697152112500492336004418430302906085370066034843878238130657526452454672063738536733702824442310159361099597359264533384684713470350561372171660350978785742154403463673628555747203722949933557639771411166708005897608713955335194429230698222723008422321467359360135188590845896656580536427149524024609550769418167991693026156416139505616188469039959782945220427800537260754910151229543213962948067275007348107441341110864701277640219264340539187805439527802400735421370895128530992428142253584355151049182367843756026636324728575920776552671973090295221297113147474628319497396402696961027595158179154573227841318679666444579915827619500981269632480722801525074848378742028104895900181814778946232458260733253756557427869034669398230244533876882954736936795097170381114398827229016456169017386174005850432741706252010980168674256466170867312207545688386500579203560430617148786990182325512677772314701466381844792758099032388300391940512853958913114477794661692497063586170536572914978477866986087416052500613797489850300339301187589927021458977349760541622588515106334595128574602737093038324154163447250630096372308519354246316967338223767894229837531181842426662940288442635293112886307433639671332260912517673561188345153144101485455958336315776999323264057137738990168162910401497585156204544124795061062258818550917622446548690361672065418423354791998057499540794832316706975176197529225557079644114123611648885177175927813940971164235167708603688830379733327729690725448135339864855261227022688784473930776786457325374688054809085600953432867139204056459312487139922543116662158997069979248409009231163668447914331672963373668296738130298278548615070805286929568100611738839210356110111247261471530190828507350622145156798747546376797635490004321958508414131812125689412319495534103933565141332969110251134262184748818392806876462002474079083949178393623006789375684680964010838080044147022317433360998507608298432650030558621757292663185362090128850280184550302119047305175964194219959192287925232624046174841656395199163975078525438935010520539488037507987824116345412246099772286929784639473276121833058565491220139373549705205331973341338547556546867027155296700103999134982952679690396635903676419620097994586086256330482665557595485458472570256322091422822892961231171918808982037990258348807488795910629226177301882670433540624957068148247059193801294986024113384341965480029282516243255345749478733645110966608529585610564620258956876398101294467246421680564743659184646261879503065374038915745707420577953984370341351549388124172068623727792962633388082100528405636863982272766271878047746475534915515179289252760067815435189956832882885441601982228327034405591270222948655071498123765544585235384704547867463107857952619544046241933141303436935625920098210643393719484061650808479942842232563615936813783984903086973215388277489653251552050188676900707508920268840310210335659485910389372779766140662806077630011040642181245423467150961434748262824339359075392952059833888415359588252484210403359415043896193725337607251648968962424630243209873289839689223412799746605666522732989558408878802215114052651642257279685281383853374238301238009382529481097213769123077719746116667135770979360703606228651582664959317928606023007755465664790000773203402443109277352631144463790146998314540351237848878755804484507090100806187466741377314307408789630339790358612198369386862132786114619670617766367150453394223434855119757396515298452573468484913598418624339611446471392794037650817074195658914459699521254308112951756905803878546102549024586131986385338392999522530834740210220045201143044033746491777523411503848435442752751831853887913433587509217363677653217577508361654703267978448141785676294033468633951590889243438972821583954454323577621535100461053494277144341188642686681609854714599707161233132491172441918882085341627198950007408957141246966454195353745842489348390537166622294986421218104906978254479213855677904736993359137298271621150382733763111070442238678318748764089190975122348937574655716843373667887797527387680874376137100390689627592446124441856278518516755233289796792206024020290290863238074329321426752310185401140221617869739147619538295984254524611255166600464818504027432924016213454255918549797840827223311204931103606403863273137473355782235024912585230654046333149171040732088121769527657387885340125759290199016762251904887428640398722169254046974477359763869689174673271785137825682552201318743912668724888923018065288235426265322666964789352914091607377248406246813578877199207737706956393929563986281639824839168646764562756312079528898550483414778275919426663965223093256519507328888347467726608526493222298826544443009382194848418030575140920526329705598630535679183694016863813291309221557635757412965057191501135470507248693359303065461410562584447339634234451392408279145355894234400057789064029526651180313891086296271083548338023187947044308966589571588372852919521747931730355543643685170112268050459713215685212132942810220046495562453130953405842404969795452271854775908345461001749981664426841076877905099864461168548395628407033183587432528617031438116037006864422311270231005871869397114691815946561007867259104761187948306695947143340105253928603156102343547897758293642270935654940839570505384385991179197877638942128524749786593322960392749710112907791635497305956169389784164974940545594032860707799252449277010805734802279949917782922932642002230042532353526282927971088809818400338437878728702770496120448996152110199297965882454006036882973251204583337242269641626725362922653888385951540760156656070485022804262304917883041105050883237502971879199831147560125038511957848383673066867338007436978209586844817958050908719440566294546879084499017315329783355510895448747035195631125205248439960474846685107189511332238677204559247720588205043705571140280637277113588744999111744027119025311322286193522183834242882671228877127877802183942494047765989084455121474931726708915969622790716308455575237151367243882255838715201067466387532495857991884109508379895098170244454167718340024642712399363604419380983347505321381581279451534902888254248030344257813939536557048514873894671335356984965810251344821870602370715198711117519839776653684744320914425611547711085108898887192338367756925912234243369589251701988157133755853991502614592219140046988696451899256737811284890123847370204408521425947590927026503425899124486175063532610222888461144178015564936869368297288198881238223019719722992611679784371088718084386944138923951540275868104129472149442953420587615229141999960998042808404545636936871337814017509990902115126572064645142128368131583855245720641455685437826681362336647400486392671262406912631672922644068933771746694990639993342423992560564715092356981757599791883068464017320107854106447815702911235087126845661349883491606806409869601121159346195914335643341993726429762003954358557644563437729629410042884465296458760834312518429307645153002064401086068349677130908072952384988385963019924111079501841004766541581810850407365112568098367470761433023880766203650015969528331044264439923229771349470403947567576822962940617453465680193269879987234333800047693704933791947589404249788685906632388691496051530548769459285608053131317949149726160674832103583319664793632122507298871010607785710514069519543441578890151238376075252223036227730523747551707060268159211973570355881268013710832951109208524434923516288899846578101171066015644661498032523790961017047785576096492718040575953876485235543874427427212409718569766530936634235086125030548280635202534941506177568797354069677729544686632203202072523246235179350921399338041774487944252021448147700851862729595394687807449203852293028422761174101991382282951509505640590712166973638452187558440331771847832624008527219858202403022277582601496694807527446170490857587534649922322584620937530242546445540638071817883604714366687527895043080791309896713118215072794593084960535861071243338113661253597526754692958751132769685701370029407320654532047258883925962363178134764067048021744875909445999225775783704315683852803201722732814903247213053454028351811214311937100795097139529693008455501233107586107880586610052707269517412074311931446045058319265914316219818265373738568603268850370275704212369722790171142301086197230302988058219850438212159356399484207427617456276857997755252127218426450829372212239943855027292887727825633621040620470350461179011089851717421845081004329637268567875231694496182237380315836690166018019256659238140638899732900365503149973851516058690315968946658857200371321300407163540006718391810213846468271449412927852411811179265724546095912131719727519153492176422967027152856417279625701122608025209268943079791711757143698651990444833274631305041044851526230387192922689777098320557043069701345838537442772694274317265665676805588463656192978639647690934873047073427869456392701570997654256551457088840172485278806067503140256514519711895413102835323147073404194989110253491623391375040330163428229718006923990025150740612341954164156609433628303520292349918773546140055215594457141247681551228235274370323973591536167794305431982743257617648132835876438334084148016334779479047103612681894102813331525932130872140844782646326903943939341468448398215603197157291369786908101536641914687280591480838929515828870773783143945163078661849257090511951744188858870198484462821083764012959598930478970378387315572419331441942957847151012658545667816296771179486582227501359367322733530907860826976329740940087389592504883730463035082311134690136501271034672578456662260412225573106503834436285955615102834283991992078563671581293250778697356177666864722541963038240025576629015753136029774529814053808232007837660274659171376659464209209814303404427822714075480038603791354631980974213768767589787491280164851356985922903828880175353831292042348567463553090932470010098921539732539704698063297272063045798500272436620829725392460377966869056937578408663944417848435730428909798624231159251020688498742223617279928440760076267819246687548105850995583843199410486732728674426922631681611590591231073646335613676136944650175929388249659775870639880628391079888780633137224060844856536827975991438193914973014293587600377475957661865852263768565137797157037179183758991721644369650901229295827139985483194599436688720250196922344333742961279157994132542600968636181130099550696022907277870685557838045505421393673047085853778303504602889103719962476516350494867011477500408386378154190225900030775509489282593990657326464848094310859502815265455318995339972148135797761968171581017636855573074155898643421251169286095324474901626864558189170721492751069000238975786305547638571815910488626897997317689197545397615705275941936407202300124978302041713072459096621725825351745618171342491950446284891002999661821682832735937516036541044647713541561430718068379556620898021840932642837954701399224526313284052125352486861847579923351203454028706678288016380941810266159879815459429625070471413374280019995143215010205269207258506523971804043503073728362372309094657983356856383688265373177275523095467059872094119536421735945846073913819326550098209397040824119523116087670462908713673486624628622358049818217592061449127265504839462719320640560521337127218764991132705997585845238760759901168556893667260453762886030857812397237818221429681801872386334704452416478700865048363520188236500118687811828121119632945899970956924143145634884457658093598751646092095892373411149310342810649383808634220946078796680238328803176879019957708546900830174603968708772613581797098626064899249080646831343510611884825689721464764741963403774661342365873970702128279160177722908090477555524404956998608988846504742666630522116677052225788722752958596833106048968306250354179339406328537372188232026341299754972698926146024804934286938847562579733382071504811920266729202932273029751836199517634309577638163194606023504486828083092063311350512541326231167317383504338155966356679593717696171534510175557693413465123142984754164821961938535617543560843143105610596609053253168328753413534819472646240252773579032815822272141153630311728353395412475922484768081462038432429668374512957883005865328013580395488838679600753198781664057405568960814204439716621987539504108977993481967447271848597589911526973595305442656571249590489322801673191907247324526068319408199622255451099282789651699711192666771450508855581185460134202182552935726775129289526715798475087334040858897409568632480062665127065960313898378343031129249539197888219065002796950973809822976661427554694125861610893781970965014721411240630056881550723287392062602905172418153227647318069444514308662661963182929970264378205621176412228576950383061482280216684268188872555827204189675697591324749720101330009731291812166433133993088999362783745453783884649988497722392907024071491886939486004354241623643387443181660485276855039558929708677998011608037655190577227634032160929674847298584992982339893700005628380946417131852947427894381815085425224730729268970908192399396451678843267957093947828673715181255013294655142162225713013295706053472823119599910780558740127180318692487699706336455968419148738346553862648766441333983582593853769838603222495593283620676490667421018988205840208715887499169837000041636582272042220311927811622096889641651582875008067898495780422668110908166992601693356293511916830625714123932449130033564796555979091907189015824512373732602598547547187960394729800279793779448823753553183897084977211231114305533163701175857924730961608238196157187444170499543733876285042539514685715676681286237886426083030860176910602314073801173988215706487909585576327643258412344950622854682282781048853221555605463079930231549529290702662920198276412520355212799238354528881907827507588102603821223367768917105329456793348339504492734247738699332398813732911117567293568849536723913398241912195617064052328287394138516623368287268790999825093410823014932068775829433423270021211004090166694448397957961114766381075690879816685104218605470963056555251642077345116853860489144137117214855396359550655729367715345360027423619580189990781586812892394211663135359972652613357037604225224746358580741414203389604012832647923822728011457062256524664618999486396113777496027601941448990014953083114858555027892755321269288544685432331358479450831223362933182182611979577059225174170824487474268490410634621137250380868284417229293222562307811594068578865389296894451170227243460929617459025277063871337025848192480036986103044898671124357888927223693030578778469355509069626583153769630281669227067575567255623717970324924711581973428868444449354468265054774956013294611847993216289298440232431366593398453455721690013066892018143145042006384187277036703572368704265855314352880015021585260273066434036884346208218414674177345503279716425194944679273624870026722055526734003702102692446928833784608731733694947661028122486278970732211847539319999580053425892128062383888667111948984744978891886533942602323249264801475241002487379159343534075924912138809636102557521903206748201027632946241694861633559232444928367510260071286774944796675124248149548702312493288109411854510248725086697664568835752771645099694434631502384056007328827163051390425534739609207597031378198706532132533350927070910895742776403526234185403519792743926519784423720270873910310360332049319617146642007083008871217022677313029178256815200144077053553082116361597862364048185548562746394862765482921291033452169713425469477750433778629091960901322871595458339339868802934140877875923695238392901150752067832036893742788962504124314635750411925143350632457290825976241292139293885705934491873611452037221210769599550957550839179365770322810269269683365589030251980131268827112751991165874024213290512653763392098163437796647087188259787889057323390307668718098489757497505428965439525090206091198411972632810385457000160109181835634578310625597134475121606997655217667468744650472518179848824661482455989414813708465160347301722545544335011052022677099922246779332412376869710828126762511697455156454874961975423671889006217261791688481347869282492476510051562843800543259058342212719776705204035365300741591661199209964265399728810260297339169315776884989713226128641382005773051249144344881529304183220418240479931886993341558821765681070753124603576458573036970442255503636532520380786254643731839054140170344134137058740242463226577386824878237167874314736555382411674578154843481705914143023543909717994543830059168268450081347634685342470041168195818915349622926391276757313102811752211285478268508269630562037190825744153937609100834745597028937666558682930280465664395182240325870535494887344439274302580768035174453989664638794023941904457303655250216843558740865090957555374077227870395072151393900910106665705188678174576838193374540838436934619343632824582302148775708497058919538676357316100067352197943216995359434935887628433864193106220945707063175359537756920757490610318763804965129230474510262893358704858570115097446068397937525013887589982686501136317520518866580935180510410251588832810517788166589188650792585117772222430604830555310810183233524318370731644403844377296640947286096605802460105059282674729859097181958254581719191395134779653472581592252978645208805400721169772384165632897420218214014820674986747806790484683732009271712279256572066827711020332236990125357303962543320697777704743930738628172708615161831370651588177961042593716111708813902504494897230313462117101917118635930090559579414636249876389030572426685464405582542003742710838848222596248473722218134754420917521088631490248684124243023908394463566570433853218952955453190784808981548336493987364053520085672584133372765095645581932446635043370092088573991677304669016194012798903154680188846000183453634798274606063925489476844942761005467723402123856678245270635999308349548249209941977829112761326888175733051246374546394378209821010434773268650196737768321615106662472983934326928709971687052015485997017921641873123885980125658371821272882850820598502638664061641844272258191479526932320426360802695924277201779326892719252229016229323199392307175414053566056732897407513949585337121719652491219983011640575926737356598961944845226210485208235422281158817878944778469860133342994742090087418394479844794585857914024215447205594372885202983093775286215260901379833694868988023914506238988523246274889538962212966211420385002355403404607110276967961932938853651322112582959425782688850952377016547096623722582820743274161274070630404287331517275257423949321485119105437514069893543485911137345977933323751816213394158444858366184652173394981906305446001686150200948660504519966292503354999337375726949102938702787732615318579260605420464786236839025515404756633592248580837302836538042006847147112694911057425312956916959696049693721479818141727483984966674980353678516820828724769177646507643665332143792951823992701675444140711371657930581150092127513541307096096193012045879598205829230888660159374591871193241640528324788232177594653700516959029606255313720730992100858706690551802385121060790140479211751059280767197471267916155469488229801165789708371991335425526519312136614488634206190864292553064273240566268015377878229169881746249011902007398354151008550878312563495468641787575247598772101348868794634073506020109253499182777834740472332972062842408251197731387880599710484509825891786316807813906983708985975363634760985763512860020116446569485614489663773444748677941766757733175432852434204685563889027565482844285218450716127108684687859327310254501447450085479484021157914892763155875308013602007095749068313041766616592352162279585753788503159391260468134396265224577859257309497826924290983907734358628241661411543846211572389710126682678094968470717409046030651612148259152639227216799483887194487208232105209841858318051862525313319868983691060603814296152164701964803635598119124879318156453780539556599137321571500267974342321257191211003939660175955005584495566284920979537883459651557117298900737291211031168868604118003145587778062983722916260862136119902631365062979061972161953485778471387440720100859726929979601426052612924570631076947413637574990263473401471402191981779167676744220349011622810954444649593098190433323990302375090932818393105968468997158295575240011499399284069055282725542368217877842711018982200341939176998581130274752695259944372642182747712011062428077950209684267573098836327778991036596384598740593566608245976804251085435157573111647092508223337580595889433797073422853703019588703910768717192940904792374802310930637604758467959786693366953507171539274736749682352915383634524543542932503094517191554508049147575608083342644493209547782125254679005172807619026548195867628625348105260454978658795011131172653104901154937931324821824823262580372305234853186235029926571235575131229034998644672806146505127975360772696805606852038612893408364000330227091501248782260083764861644104320287870093527379093960754070568974291505846541018639789207096538371163058389756564747977020520713143993601023596796228543735169560335207799801812576325067981970633077208610733075214353966458180329731953876196921949906776432808092071309485646684761975385022785460096232666279882710385341172492979498327574297150572550547921778432424949964557639648723562019122330094356787338055969880071681342110782147856677121110007211405918311295348716916048840861233779556203289510242755028887703419025687177250188772024999161523981674553048482184989497924070226865186825165812613073148697244168346728975700816686009368662686943127200767250295222166218967110357616303976284654728228729537467640257365673545684116785952068965683931716109915681713460980546802504239156986591548146030565319115955779243466780852511197916297589399396771314363185518858566752251386060856364064839178452916714930652203233703147544702264259402984734349808255216566646280453251526862698102960256417021421274901850748728644430436233494562155357093036342312409450645988806513596146515528767699555854627762903794188844354899377270996611646737598506671261606398597014482365994957111144941734042059548109689873949729458146819674435130033127983614534112798212020491230968543522845734068463924980875356712815722362481133165649709005512041583064617091200799482272880522392659402990053289731217110112804021914564496869586919250747457673880915845423235662630737850462954222140263727935606590115543162256978611054332451231847342257208206308382156283414196514835206989676200926941742433156364115944668577495497904263169061237803739819371752589814300673763139747466171831194116890840910588126513568003000237424169425918333583680116446274435186483073183430918658698313018161305735012832490232160372560875302644000439746045838685967399053172350817559498246069565544008424749894629561665756309915352256446243561868731503602731205295754208376095617419081978637368101766622108780141082860654635350338095856428283364928270070617534769015075360177848626316660770985881506180807728129124208068909631878862743621022714216113442574521398941548880150913764047301723175914772435922615519179250876473817688368034674036036898259090952020962066914366467450482706278407375062816715752034140623305789503782316340347253539256876348081351570348333160204450776031034823362134979033332437535099448507888691540029598868782221141805810307276072024118706495575244064376114009813134227590998894707858633095783465065077010820317977145600099356873408064198010017772093352919178800388489322218238782041438546263770001166375403410463945369797173573959294752182662720595345375020495252424073828410428381291900254361648629753492018791934898771467899100540143029386979571036599289907209819642693305451256344598082777818280675965858119104932605006792404524022672797446568736881115612229688561280342302329805287905081544065863607733970218766132945715204482346914583111955382516411287945240309317001317578843112180296893406610081807495676749961945406186158334258990472643369959321810346902711814418173672301635474505562137299207984078302129301025782495008642222984838207308412163533610452335427976066976836564041262497475173311735938765277209473366253460704260940911982432906536023098966981965848135334972141546277139399240480513489053546332658718228166530737975590580641976549944480372286101946434609031955569803610740245170257004367259845489332787053779092200183697453729776516571583837137061473781418812098358496430756374995383174430090728528306235871989480434092617236217143627176647687563361245174112377371132026943678841103080560487825049599920663631484931775376749406103758013706850742729280789849378032573562209823811681322960651333689528066249597873822680001358205259752776171208930518177407173544253071609457110961719073030477701064906912084345810402412364803003112404198579602373125078487921140440343363169726680701161948558642866622989785917731841503703277686493095494503537914655478610360771355692006798756681164232698120598712498122946825689607397709106162776948844166752458489394403111183410922678799487422521980938875112966193109091261097332104828149203544897768905025385058331440310388619512902401358788516943751962667555622276032290928685615738582888035411073216480324861898968485705350435273355846559284997405413301077962616292192012833333481246301122630741056639902841650450710223491260206462523044209089199613654991534907716312615258140241909680898760685351614552326697668290348321301664845303111133438566507968885466027715461392537244946827907652124895440755466414805059991089443570495455795065008778730328502092225092326146027374810490313855237887426817418029184212095931836587432987461974226546333534280640996104948081778789156374553533272145984042309198538053472710001991197967386107233032277779741440779686113700215512607571354103864866811153302300042156369233184036773338588814239251879899039957789894051595604866312098060637379141910699580651594114404286881130827070149024890541317993049596399645639386795483156780833609768643273636381218490072779184306918125284176116468459208923731422264444379325951539459893820374895810709361357398198560050536472592823668727212753100005593954886382726061658565457815140968687780033334452670553567366852362795977017018882429297541714370116569272559094885378119755595964061257917374758147670334792992844582653776027753034790275803298048726972139596449903647838930525851173529487920401766088691192523867340520208623274569374240247685964281225218053989418486469149955397568135162010207968425495399362276952340981323883891568505533024403420421397404168295036201159119882704152716622792287725483171097954447897412828171277342512945796291283871408426682275863133537211652381800526910158053475503502213893384868584971458627311236082889947263813306686946669396226000487832290381992229306091667842251077003676936947595808676669985763417397857031182388329922323021647460101630770759248889697262718346208572203996111122044280142863511282966858577587392310518949846524112656441513569125673585272788245101402990927766452255419064311869353494787504385446695127091623041315092428305493976465469605991140844943088544394625387992187495554690640310518844483504333465549643586760514797179143361885767159863331745543015014990461600039324005472026242517782032626063136415139293829879733369459589424942481365005498844747538126685460710917035110885372685497981850817094581473498970761031241294370594703566413816544123643112054912948567206498225378146610272838953307924885448377804836951781761915342856831228608437643114845469827014955911183175777612615030419312264568452713883755368155198025786293919358574069375737471608070948466990477774723724515461520067601213476964058238329095185285826440467491406604402926783658516359103147951698452753870807153277325121831093672909712390686404383704477586377934100038778327387699145836784367319093428082769253290073480094945313245213273384163376328123532825934450890577509760271041144667244434992543439757699148638535208334816574819325559384786630075811381147586719112584621063121822943624185876300368887458138556905928869644183626899828902009256832367558551527958287323733369156582212560225823438057876883033746874386478462074383539759220485547209582257678516834598171786122600402838813881483232985954723921713196647214997793443644304866455642483057906841953794032350700530474550931333881867755310483118145760748566363146508144332223419847833354467052174362958742981010790278656092609727859374769091143742406544690187673931492707766234992945019531935888654709916827140781151053058182743956155191669487417090051162382835138874679494860478373618945928199863353214496436841384448947713837480040782502565376322792621748898441021049372659605103975994500034923062321381518854474149496163648850081867914440124704504262743997075077039339470794479085394646828607865960245758068830341338118963749164974822422326789628338171978543637741680921940414634162187301269165728757231303435937603976943895030702991602282952883599218591480739970084421017632410187831308314196275691205655824070952671815160775398295592858677380933196115169966498770227552476089651287933378030680318266582884445344327215580453662005123196099120828474294797394803654027565851053380388973903023341330096244234525960309632585762897435180064016456706005564518572775310393819082548700498464545879467562872954300875655937085294648349310994426889870749308431136740070526069496884811773877161074813922779944752569294082153304724022011183505196270322616392452505914536966394080688973834106295451504565407132384940707533757793366665927089545962644400931754584149109046092084155919070274867886862295077873558398344155139766362316577817540451511530992834541747530815215628109837246686774270278268130268196863746236816387861735312328703034752405586457956944714950718902350789737462484298459761941289507344569018263946602350332321326607103273391711157004374337712784798034738774945166434764169623393718533774493335045669584418550308869941006596760342663598985160636227389599301770805984096287821307700020728271747834174292551768596360070525907028826031555831169502766693239751851463248270665397500977620395986748488275683612713896842570060058438568677361427861783358171443156781552057189457199852921295181143634978021192105068745534461308400188479821572861543435491856296612857171116405631179270132494829297710147181783929266412482639681759022780245360434791148384237849243331548699609309019184015976369894231890476884952051199328311530034494591370271185581076735650956170520507539298564936705756474463763538219181066325557924363622802315244846696424938042730422193031594126142827421731094095381610010761848871763899578590305002414635592461164937884883707875094014562164318074582858759495377263133303618587306098080737098434456192208704803379783924985153143084398187679009160037023172369435817171417825052732895936244275440482434454794208729874488284556414394759623438026686741238492654618545629054136067714388913811552067859357747959471219167169537882590501748899040569492478532538252502975863542536831598914919883308379683169180030842693371378064425256444401844942142618457742537542732534755835469583361067089888543015732422431484367328194844166325480308569308458462180586029319072265759054211909622861449384333723649580078976265909882409545178409979426817592077346104192814358531027176945021581542505020463373367500376060777489171446154796748362428035328945345175719383870995311365899693412552865475932229910139944351158812505129505437949991069746407732819822421377121883088782451903092150642894185056208377552584850975163783653244537321362435504484593347684898133446325190687229151298305845291430920664881073966494289900786167899092060887015087758934330582283613043986902527250265971759876751368032040396396718765128753603912741634454997918280903406219435959082699490740804936300124836026944550189276316312441028945099795018435125479193806950081161640029148997468489244905436230492091741859441779595674013393846107469252246728574488411344270091492490178046895364285529283013097975453595728170604316921102235148220643030477606820687462734301951018691407047136014811528494527846081605316738586767827295105715283101009733482033037488949518098962531398110367870142480565135330230564060768251911686927491853930951536204080519317253646148141373854180332249812621407222065765892083834289756077497623921415610031256256669663427811674267654993857189623285312701273998113279848499837385583775645689961866579251302419957274711708960824544423287163248041358247704021171878908799979618844928995045935680705420778504502222153513211308379095885359968003117900370297302382246520591405926213894391036474621974119243456457115097591836408713101366053404890260731432591093919434748610232586972924243327145191416926713802851312532819141539712290086368118574905906071864016406051833661679970714028441964044792977222732876833310194052308457009796054017703186710359113989710998208329901228210901471421029962585243584391745654969819613286411653778354035345629950592653529334695078709319751199088430017100561093590205247301088798537994639524627350913655784183722401602414880682600285530889453951254787931715207163608310768176848544815836579834391326367249018789521021288297383115592948968428997329666562693572196844533171763286578762749334517087994971127942464487742884693172715430723565945673998415244347871983943357190759741425882602686186736383975672419693426494967164948154794701143909747343189227477607032156441078095561805459938721391234850400979706633977275272454622691383157269778885097403424432789948161050590131082184357682277493415494200830779007353087395384186559991920093274647633931778839003439802670918120076058895174937409520456456438640307719005728545014357222484021437245547870832396816689558369522299163024547710488155093010853394095205147149036137553064161879729270434410630764327925259457632173294518290234673926605657774316971188550820243284962179228721473871100326519927253403773682757175577538443535324679293438010886532902225339106785091799392170038829089869309767465712367103918178344485293680869637623628814678279132660861810883876339624457255472277451519319598995317926765636191343147808384916074187167466110695743371151874153424994712587772901295826270657381042089824984828836876044851049395122757167477035838104431805509531001050280723979769324688607570530297136367023169910793476848651640135189704091705768323123584149468676230789168536125555905416274216135077161546856464605495308908626188853484129500636091642651126948180445323275364433556964379136516932267179044768583570465204528688986014845300237977893690338883770431688896737392749926601974750924407847829198965192382381685534709665173001976392148190433125668358563589403367843047339996412076989718929988095620450336418082265663274905218008293224646718566254718600929087877567786011874439911058306409911465877086614603811961066949778850697139989693580779751473946568905108395679782117372310284294927129131069155268359392843000579266864658676982424174392105673822606432314821274995161041106846939838023926199860271567139231769947221840191393422766206696638756478656299539587624485175383259963029172297594714315203334672778924203390219121671127501149578128425554658885021374303124234753293446570634559379963834556993120391584438162764872639676769584426728029577308747741760763611915431694942908606889338796161390358132553936305251684398976520111996759013326219359358495819310847827922892658572000118100553033981380148239011114224563827816412583172918963772533044606361292899748136144125378181115108338985604187770012516750279300004819258553369893809975759227802476277421316377615806284176386917143328665019956922874346801892226865349069540623378082912793458773081505844437346831155588820790191407146104242061088650229570156879839140376997173999818809160108237465686394862062173646416404940920536863250881564893147779472847441586084287137548685531689795471887574916077836819858142129002001955942092881718114057103362745808555621778852131919821836937027692772320679785115220351363517344555127861706558437351567809891194510815650333019916098021092429566354797176285671455949917963002652299185178172886847852964207570637214118279188771959064946293599812560724781025390884520081378601278753462831260650513024402675325192679953293551841322284083496767612571758483544398543852623412824731445860777229917383908710485846923230261441270713704891200622562126067085047484938884817239396776702786847711277604356093795149151296217878793730070308476244923644738938755976153793873316719591320332419194645759995959278091992983398658280238541259587133867904646025643075188133067922034838205018475127352965295552603803720971940547116451423656618702787229152880024242283374416622144993444934394160698538892550556012941992678263909176123777557359882947971519417802428690704856108974652721550873767430823730246105313338388125877912497364677199857451983864232288887205798365245607039797309796645943881321882433177556093376751435854910903922429832622800216069899677567262116825925253086730532085912769123638194311448352673112622723812659847090237714230977672281442064031166795072728824716799533943006008761597554019218699117366191704031935968965008548459544602723748753371145687622989556550320494575540737406843996543791534349607840435795878538925259489832272384304663837946636200247700551568137602381064578629486968023480493564717055033065720097705819634382608537745285260329782953629437414358708102558782869632482421225226209678795008557407702028989519666804312003948224624984013483083215186530877396955037273345579269031736071393940981041313779132905850047195414623315701843109091255244043237939627297993250656212717894732806601818198507004143153041406409138267437656587047969216447955742722608064041250569575948176798972023948628111988538916849498341822788998695121439033137121569614307569150616681189697376881895166439774600447505576006101910994433829777317993983772666572906115420043474184968853868182497072940217666217763243019232443409526255476104114620414031326322039990567349293228685638162598434872114219983025205776577391097715089304865298324768875375820266018092559815863966707993801959038047473723946682891131899125846359179542626558871631383852211891725418822570739274371581351853929481329161416765822923372625937499428847272805477952523099601652347439416490358014828171301267781171772699491210934399824640153867932117672346133103124332591660541838962604051648282101213073286578844228149483953870469222847916271692371747234660945968880797260140859901197922880222203891922096689773200760746459063099071473707193040033614603146084214576394244128613427325529000643108454985657719651406343040179036770011882633034462966637395252486169640841135302050803927782603165889057178854800397641132737051196983511164401731704775195788376906794688575690941133187969553332165766429244746211420099775114975718970676813047789768340353193277020935540325456252650742257300199344045961439135070466220865535554494069701884463299326796024392302929227783963862365159619954340559073244469713947159569494674936450871631192839928673644670291687782504649863112245651783107854089943868752815290047198940357507905099522044979290469402163369626116713963802148269397068335294376128077602185924762246901803765826782923223794612104099732886228116646975190121477995457411693163497268388205947437867009999899932883370962816801404213604749842602552741808050529916859190787785637594209737667863828046494839803462262306388450852624895830313094746725284649216629251361927523558342782871493032182985818850949944863632936850994967758221132771412281181240798859546324617254659687117068264717700883805535886019716926796116629379423090842211914974279606474159221129142083753324734482354501733307361760210318819336183907554791578292506262629206154921028632999253190045132490032931141485236657916337116135732911427958033691401189672307014708775941024996800850044025205198784211598313448795857247903560601590359662048573715788410734383540058938899934807607636962731787371798576289964564383322287971817641590436979512347907892083292871095613649118275034268449147163113107760093039852233832271817273136747143480540324775717525896911921341283309646526629344984005778214522361436118472574611557567779020536894654626246271544071922258375418246472447710551271439095339061725985309890572848922183496212842912379424185555476469224960991271416039802644577566396407979538807022941832534797595073727860067963082106397287699124552092765684682661333467705396034609377939373729711342031971366001941844268565553620643480969092780770447299732404056408424944490683723639701925637840249174613371466219099279328213166632720596525039614168955725072118261288673642492742702944706683261067264200699991875399439501997579109876693086747029894199667818405602076960762396016473077351250378413610826878596929837280229635153083315818522150950637009551796323379549990411432522873216066390131248498847066632843334258974613386886212789549658039159840226075198834789033006437496019749503785582442036083169377712495280038732029046357508684219133867232705547751894551814085366071843148829144866011012790110743376535679071773989434224663454860676394476655428370789803385120716035618520567945932015021607390485040544827570365981311335280636361916708802813324058540827064152420541345894766124781622380208256969337757684919601386958182920932080888183717056790844858735987344567506261324127458699697905749658940665951073881593203084549124993672362634395843730512113921559109490136804949935123345574065874302299613237496505544785944083474664660784372736710634087625137644525072294310976580196417759288662956582889851565344163905258507018298267425368523162825703408001376445202202270058418889839084658589282662661803487524398193925998461013539903112864114561160188124556011998190643547974806404554271618633038669097617504648213418631393307123918995436851773569889968430430015441457315287947328640974461403116528537081638277107839203362219737631360741360978528447083622467898711534074535651802686350722859736446799723091828400034979006144371978956933803920485143566340036870520391360117872763067578373520250530300154098745812778564304092593076691227776508378426125804426415637648176964555138596185333349531072187633579901211239153531884212235017688312775917885500064840894062024127795827974382743345493890328012929714425999690233718973407941664630625741691637031467535742914715913086727393592170228256325433852363244089288112842772372382221476087381416625474835134161956672604039354491174057012592308778508096418595898065343728209981747026434460675566727310400161876747454942551809607587653046398472402522002839524260371318988159843732028170733993815440455769192258308061203138974489857823133944777134893681169750791562196831594333627837907895082993606616180858029443676686682193170879856223681280876772946331470794293214081589695926342397101997968930550220821966858268607902378387632263084283883254982318731169203961150382331279822150803338703001672570953789959710084027735106337095990708936421851395731181895523280908865353620598722997321035090364115377621435767352140466550756647737033005497507438224190640546007390893729970293730320668057966598237377251914816455126258007189626639743042759403789523493727861555166086391757972137796945827183976236054688688296721004574221741056188782783629284103676324509703228677125919305343768319942339999315236354660926548144925229639388565172775182051719494764290924871854802262267901979560405030055468267377693575247416717674952760299671524090416143662159061292671222453083298929784343790314198110496438270967004141823175271720677397356089456332331068388732884979554399815784711620236433905739215300107260465010898128055492224315140674510578229417328472863154126559372456571235515313040932577483909721539185599471946976485030353308432978523399118678490804492699971965125914302857425097028546034790905311197587687264898075715741426047512857368011787190700319776291949887789382297782164596100527014173012404127389720457866427123028805564255843593841862940903403682059221403419913427720408932502948119017230520773713885972144297501823838233561770395818579739972551672488996470319552172054638861632440549330242841571734194129757391816357387099702337239671969208501930732091865987295906810223212702366389447010733707414564198772985376432829905346809113801400239300147864023361417273466924035394873585661752835547033268107952574038427253391538090661053057425812730275043410065978727853083907561857595161013587836927080664246205811972191704123006777831758993215146573653099997204360622472850673543144011732117883878925269294685976516145472496574494554483259678899986241176250553890037137362443284634707533496906170645948893551214397344703366320921049628252574935252497073704897210752862753520317592818214398493906384574612137130464343385939350945845196149008182988687668714384886843458492984945516147142167027458010943393121485376044916154421434568803180240669475226914783025363838461056553738103202248542298412854057187410724030653991047682373253391602432713135054094665109698666053161671919308292865471837216303540240205520022882168396703755154819722870656311962770282560725745869311172472855703028895186775179242469962333616673295649222311564387028659510488644376890998997901678793888204170191779674532080581570074370848797282672164802941061256392786225798179527823618005285147188021085775703351861091087995155245296444241782324684563378292651397795143393300653378434860492524552060197051850976465046660868144156305748537513046655212748504747122070105750587279907084947788893389730852835461307719665362257922786086765687856911777596933062225163518631561886511114361037162997924218295892135278972136247703166411668764702787051864278160935039804260292103162945166699303768536154467911734049853193698045193660075222251942799718379020292916711501322148174460455832191970613435704632011719534324022703417052724423762782863404578817699017966251370008994962039268840906663297610440763666945208064181665277700266240937911406466951690583102869222864361495213366175115628155623846931807587288889995521128087081196799176044710626252569240715855175454926666191387267817840876312559489774499695156510925231266865003380071146028080699286494551353857874673636954071136301846899296650488122376166002189311410950459130708843023863710741102471345148717579972562343805555756014521250465682021750712903789578443940543011874274276220894303381665430568440909453884086358585172926866141344860511143030835942149514366866606118354498414139024853088678698158902857939364503838353743643316260643785300463425723584621238374726105457216601778751966960774750668116547323158825521021648208907416247952408757045829699814437765966995847259901503016853586260218606757351808822472038814267903960625076373582720356359079782566749058148375053460843406350673902315445015492561556756799479178622165732458477535215591646239005529123444452746705751649105573197186022157581413760605985196794057532802397408992709411207269246438368820279140437819706494482249316694907477069951046508138458514102483887846160059459816390265541607345260875106191179517488080178260765838979739763368387330309138945491653630786311795934792245358490043005473466747988999937657396523110334539375203506862255687749332380592949807140086590494767460198512249316864991700174342160106107397489550539501665717061164016855689199641174044667434051419240420577921392541126823294337333472597793509371526604830462284267414953219196385874467856752801458463548461897215981638683880167166836335789801211024811480406745773751520574952978852695084286756563184213791208077199098224606954297804407804725429692720514650477848467001223327399406867871373931738646186867408413607238363817639146024622994387451842951660435168212559004101277791905240425423192465526967513604440635980327661198987444377400498126243118523316420719610603648280444018118766971367248632222362104096397745447643736307681833185683225477539011941660100370065056873463581101695275997932551704245629377760734112064225008279280937655785255305405893838923831231552524514817675556389546968695952791162314055212198847967174243469656031738061838100854332096237219586724930915967950133798100103529017881268116311023440239398060389929398001249748048029476027402495650616050194549208725577023280272455320783056346210906370553569210221404355196559864157557069767553638717483407331337794876663944013659533431753723360211651938266139542464511075715339638428539867461446710364572243597236165410774527162019732325422371862651265756252323565048096674917027696599836948238175901693561470399693500316467947073054433519200346132546601200651862843535386005440994901960803381766498498155689103935706296474915069444696114109353584997966500724574153040137203529763426442272976873527966652555363101975669009028996491328931567463937239860708828993446571834206891590887587134625068959047644403655555763139645575907408077266692780766513059216280649088706100864091504422372951960680244623285676432502443238834421901853110493128468805698077553631753207560485540676597075738902056316553832809760218065049169715035254244203837301978530002377797253127889151249757004213686905058728663096293296075498570918972558428805245586551971485168549992329337719102303890757853717523213449836414056026348239162425227192166266467141564257461440296417416923705926551570719987382318168878733305096586233148642330253555535667216663738839932111887850105676792775077829967958624476802485302923711618949193180958519153515055545817321120860593035851644866306997944986525350627467668351363431993928763980447143452174858154689397101257263029084524544079696863870732073699577401350183735743990131349737475275123562045971844207809320404235168862777216556384001794339200507393835618329262560663738971499436860472357558549067686310122812487299490619077393970819298427424158610776313062178832528087583271384346425351424533455115192541639294439257131008342238983221823935679776679555246669265603843148635345611193161793092170757423688583895969244251637869952209447653893861028293609088698300546244179514627722292032423545622956380328142392190443611870546749685031115636130890224745492522479967865376690145093047515530293823733870251002701029882770552443563195157593217280369266282587799074289726248963124243554517028845875828994936586598332321682123033429868540314824026577955498967786013747184659334186153005535513248132835019093002289339964926472028043784576869729256412587458091055119371305073227936731206267303655612907039383125385574334371359555558404503872672036417268418336346848700603502245929703177998805446264249234516897983103803117186518823427388316781797809797891162646764226399519756628484578532299424053706504449506757043135032876007790073371822136161645168715704236411364058025471260156881572476164683883532962626477520903643413397285104288990362354825669201889734492558489246421567242888221985938170932338348394231772361578546126850553789183667715903045380101637518068872546797311334347866488122095339219059652838177001940249122288887171925273736001174520162571265009657906932815141369909462456907404906197880355001775823338689614585728115137168213012098181171360100031240786146448638316068101026848625626972345805531791482245710923346301674066870729137576478954215131308329615290099207214377387870627919348950272990998682983733647082859560779520597472672119308332869151590543913203592074254116458816844114692387471706311630620127313755836142025442018160019175049230493093605878329478664547224959015218516062971024810030321641310296374153640372843026898384808598407541644816159676993198638705619451326698433772177112766791533612188773060808335270211974198460783963702455259786903229428133259108393105810143321497886432850426964524549127518992803895305655541560180768617358174200675093948808240689681487595909003211879891486413755880622621524945314156678761946172116328634001554363938417406962326981789173884444898046763718094216501798137936640868061478639167265890547558438216409030501825042402304303190261792046144205640971714345645958490631912868222266664784998953337651685751185055243805397548305690828619965580612991714982711243115853848190393392852560133165654476635933908563586211966114981266884703201947974969880463211707571231693925039089186241097563333372455857068093974599872263064091993793780753373162600033906208479810477267013535812443191056958129617242270344194716658665274111794742977344706567244037913966366958356877511217956459423618508847229504863546474048760151442858003091595219544113893941800301467560803263328066187835454817968189464483590430990795925380928358205152610888570982060921027252252165374314719862079810973825130383590152241182314213017894946729765065743447065966639828883293759800202487168521524789059184862531520547907992328603499822815388471462711325930252482997569093463305056049443089522296870257575506015295435636254480578891640528354027405834362382413838397022175916282116938247334784333906776630356781145382605061715942574534362115955547169467452234760286190746098048581283496530886580277491916441723614609729443244441927164001664580711065162650000504466178876039841295717255437143123111060606240388838319695672913393166724659787085250374078014341411431650682377340074279412083702955997881397482919958741161892950822672249037350314903326185083399706697567807082958891812687858497115679829817415788548641945375600262427523095752457832369548874585175825163268705854791119336524970017726230397879943201407344316951909650965735019942681157272277182237413573027301574296475139642484811902030538966461417709241603813085737585442307481843834716194634785981871399442025594912949986867946326388015176809539470363854024155288729823843773104418456125192564188616344962298181960360911595407329005038570943452946938010440237573833299639720825924648768462714344151976522632990428201525488261968899914166424565359055389503554913509405877556218913230731829650583059494855099481999994459757459584999261531653323816761762458397900433699716684074793195980773562249406121107168982380029492823467451386752122298885957764651298759469234338368322105835436235659828206732555711368760378668448167524042004425980067797166298964129049925562337890723738047417538278030199191736746072565166110337407686092213434690714303795458358207597427918594445237819485921818078505959507231765328487753389772846878051685526129638222147342572603369671667991809019410757064919753377282811493288315685658643069476112653648465333428030346066841918914896564166732559608198459437703407261546252522870158167342901281735511722584733682472915015818001960304982329670047810857095512886549685238122202516354591263961335753738544608272590298051958812847739236588891470878963526186137919217098936103505376241853964748783912350501275526815041362505882617370265665982106127076456637739449270692333775694476569086623729633287877995919500601666210527444143192235015626769283442078847545780054694386771168060515328008845407168385383750179245331259043231519239001255064603620866949214915681465865351082914169706193604175815388190878851548301581409686304032144607997227875738037002611762991715947676800398562054996938453254365383579959263231907836468225761434538369879971657207996963054037358733485210968697382349480412417816701085708695050385143575378331742605293631025803317020594179643983151968036046703858785210906578145332571258065664774011366805538847525106371063389057655151782453039589266821302476237235736254631034699013827713543595623737279448461472799014659837576415485196074264601987785049295573280909221116693259410846290132062290962811283144388352677620952165680298191579778367328235655857576298383088665439753615567889455146778423221498675688830399186892037664521844869395889403296253364616591089705525325314010736342658445865717000264291312642320034304420732134779903314537465152936672415608133726754418680923849671997202824011959445880820805851030882282070477372363450396768670332793022870956317228513191227358821266630535169665049631050474121066432332055997228216889228915442048418055434822217695588496363507114690458020238088157076495493851801249924687685096594136859503117163220078955047792682419258445583716169693680768858073675420844901907703419490318316818644113579695647706961343888086494039909449355136104425707368768846902360237805144510157314608925867187026850192575204205449618087159882257861435633702979669715409755450417374897171196695101878883952537351812215689101243254364504485157296073236314851098064167748153352167740623750808953823882379014773272952816048428941664162434390697738940384744205215728921941552070880990794674699245595931432271979880555823863537980612289579985619669942749246383508872519402226359090962217225918661302958390866698072102091927951551725713119823706368784068439095409128836919544042441526450344655827683793132996799561172379770489239882637603720885600885053418891238031789433110095979063924146916262583765141126901091727835010253442768558374939605633366457300607250283507691829087455581000787370840624015421376017351705011004395467730281846677755041974394568580585141111503352332736593574014891100911173154137688438971606211960862123478466359160208574643981957706291473600239386505094594876871167905308756538556682176618876535830801795389232608241720188332775053095829207711295914954274073164074024076881187125438534813290699437176267385023492775713957693805085528849604293754519170128299396940293107064401619648379109790342615957218549574945855652961204633631979594248463501587063733461306693678933880227681479662838764444847048543271723136057104200272580464236916051833400872464994414619249176444173961058506725858175618209781659987859633926860635097013188671539571094897012911478433650184828270178811820021987599121768717599509934585775535970160326077865990660103566712661792550677358192845405673831689431865309337703679533995006563326837973981640008013489369445319390252589593153431965404610476414619566083514825003470888123857305198081401197610352076222404313061024860438507542360291985288168024918796728996651690579868071028793668714133952127302591862936599541275759092841326402087389788697381878151550428294796824731563431083072923510754482665437121261397600544105361509309552073160095705574258237632668846200883858434846420359619476160968190995880361619063965699816207712620157905070756962662905355273374628852971591835498480842971550943847319893569123008602125076937546884946333726521835287531433995296453751901641721250278145898724708701713824125698513239620546700717296590367381200308755569807732484215979180296158791910469945145604803468412601202132767925122801261231787403530223616178685497983471721921962008301039222343809867033775976423637226605330974433584279179052415302630288755988913529231371657921355584622549603846493461829783182938366694909199036945146407300356813256636535068400732568275928726320307841510766173804770330356700629556763504807360558004885686832061527428864874147780007460727480924972020130911433501183770119270455131904463009978634327393921320598294582945006428160928175074463104024752335880541336872438140800868654009954432532626521719362808194087858791647868904733796908899277267617699596884715439403834303899861177103755350623364004739926439462815847145746783922402903915012832522415254902905176864161053197260992364638789592256718860828313688898634159153592165261120837696542689168842326752915150421682992221241456798299635513517085813015421031211509175857248651590766976144671108234652793499933368556921430417156844833452094554990625986212447950986829669989088274025260288721770511133066042177021620842011272853074086941468024074643782404624515192752568400021012337940387503259997747758780879404121625711634124426984467073080106967229815322490066526296802585481272881543580470308867107264327874929056336365292611141755780388913349594352778657454991594439462361829597015303400461048849068855623182428337312938542911195456339980803664507420965188505003337673595382719536804535265848938107890178972014124190214641683611000093595887842372897854687913302802532795474827098523950035660485716619309010177907572440564490999841302294983137749143335343159921074438077632945639331187742664022385597039540330068075838318199607371887946893410538182186830671502728999675765210318823212710850273667815776202403820924549278719037427294463940647902550475533744562336984664493500251702068391410978960823505173216185112575799433023149100589845535797881159471346184112020598672634421191870250203721499573388570579610589912483469818623174569341857100362176783171654476257817511382345186618840268466628317959464173731771630978786941284875299914538426236330291126741539015094907168752828167380714197417899861152724796505372819814995380670747430127331634681045242758744974200969700136318127786463822569606339762932661075579461884507907137277142408113220423105043201482355467216964264709544557015087273368771968799551482964138926625800170180323667682384151263260863644816634114740442790753171374348686161195320157286207428343632705533198864607956500538875934904164805181999823948516447260710367274696638508734578834092549155588695256206881206639066840283453271800473751632298580271680195280336169071514293250983873253428709550900577451575619195159626843453614062252339661881038463043708895447968164300599952198313890382328940289322080957168945638121335676399451566137694382922661330340483398635753252082212288033366529718531630951978986934973177103855849194720573433557236737772940109236997983555404416287599879724354463624129499660615529415995405723022023478150504595317432966426442115774043190013638149863276426892936723457252412766177400256661872811890846276291316126710959459688097782457037272210237696991422178840235175102621662751135203530033465091678075695842863609832831962456272629542677971687707999730943869377748554070587951456681996287458920889166522171964269211113369682281645600868746309591496381114366689217831711320148649398459338174952650710317805917658539614613574465763607060516197917460857607380972754758126322598101392572577341617509889565735510080423578344323661727895145410120913370701938480500393398522290709353896895789099832877008129759786390733921777057934304485739962955757570052251120517292786016303126677764711943887759241157305018163600967860557948152104384822106728261576807085399425684576645196371676307860272666046410301852159318243811576199341175069736454528837909775653163837479968201166437954779891971575327320859945993824997713148577816021796110720591779520584504748444782298864262361393138051889361378594080698971161939473712606188949166631559528633324750327887868324766992445258370313149809281252388897340611167202353648431562564815422821533741545162750370049796204027254849622414851932406227003636650053220474930274626034571031826561575176010432949793307424780713217446602559672262460666029859746532991343619181033808004540093847100767094919705231075136250611371060774337638517366448487357684750391363392743699016642976392334472381822698537252246887817186676624182793633640354680432667177579621776089849276857881705510278381081854001308348714511460863589823591470482421101286765193868347347526537684108020988931297553631786301508187627521113264860684828754545171732238724618015482176249607872843423007350450268030688997184426675019489708241112095786014740093762929582535851107597842538490200278907876235348381943423901238631006991614532703338100882061302574565003459377072399699173754006459594217907616871871162676773900460359576502382644134126136377695165764447898916515521681861505833014300732062128403577149176322953399568987728933476816148774800559450476344230864131315501030351664164611880692349487601852490268573524148949666037533691851555860958479018754060280277480925084460325462167724144461426322735885081045214483998951459421652520538312830583951702716408024525278868639586106215079780858676171505585188645861394528954695962938650181760038403468533475585541172412257519697381602024429071959076004113765745811863439225662741661064322829122280861285084292890420669827114422241944413273117771325446475865664830931457856731532305560764041939368904609240699853469656244340871945302700368952406394416570671278518211011583467674439269565798787589071169595210726183372673533632903615625915212155388218642259395096284527460762002211470447434824866041290127052620687164556576898608757602209764949270856414135309230195275723717163460017759842346434721413051185953062681178783412805281613811008161496914069587910527585492613770466153027332154479874185949025334279320146022060735847893722835412753446845312565064817630696319973947234726835196539200446062193570934744431059787203294840570805315440497633401226826887344441499833492061501985157343389028276114028598911767682842050517480154583077487313889881638339742106175077054940045173491983213295476057974101280106079645025997453337244607754701231346713339204649604282938538091272409340712041395662136600500667007622835741604919896994892296150325905065420214947204533036809446431891146328078360567551771347353803678263758304790455955137486599041059660710206036299533880891080044643818136500666609167131174994714959372175656898344591557154199422101957146137374553509904638970500319258534978765535962671472910597468432100222958107832996872434596935892382517295387216767488486305712726777158826492346056061682867218811338333091014967276388842612941390071909221592937824675274476294942139472691238146961068837120608096939999809331641942078939273963092673240894000332254233839239745752108287971306674269083304851812970956965174859296483949165054875758950189495249979479491639837504847819628843532808370870730943923249487328660027906089660992861426141025087268644887102793490867183999141606315506702108163259950369558651751415338355762130721099846070759141375235154937988513582569173710114498830983035489582638064115766330825953085787431683285068110030764974803731185252670257300105707008461428656820268880751771805569497702558064969948857811519749299692566896878778538296323019124184065428864177900931017722689341812751188898460094068436779658228096483938831933020370152532439558873588196726999949433927202488750504305475469833960585465564532946345228592708490413252814966824286392565070168853148263402415210939189022235369007236999995049596606534894522715873394320957071202191259956761605687970952430600470382954429743473387093522891491416144542533917723104953754435136489600296899407726825519270571512401182508782764801671434769269434195423411664722244250314440410221338563121913565845031402700054956395727450661586539436448225867951770403948038362160941432169947541142686837898641867739882253297582584199565612317571459753582776947143002874115695405671437147688805930280336328424338703272554214174908167547466326393199853775990727469237594233549513637979775989352674428527692785489964664464579096244841777520399023264219883161405403675493467719305839941161151434568678638098307130227762606912145011367179594352699994601948802528774817165249066041210982419911843842160977848882549698950581124390102966780229515574004618376042932643833982814137247473462570802044525671091904857884235861026611907055390809109208877726748058687425850846958780934328094705424758543669851482877386769859214607728216363550112550319568581226408359125366504465993934842685188770110520834032141422354483264762526773793346295247047376780696203076689836315249807997407465811542026390487559680099115706573217643870165102908908331133637963829427617623123321123660622010090340225698251665643767809132637257238410820084980845618634837094545112932628024807153701741607054781684328949676241804189054315455279171099265582315445626836029164751682240847020792893073693499426574924968894406120096765384233087169270986929434101488528260437374685058238399904702475050344207656946975479115922927638243242926487092901690977056027615589908341039796328518782717438276114200112845380660989287890506206583934763940867092628605990208984347445117526511184370846437880324267910052240560996816762554153711550859037255648434239773593922475863436720139565465368502355130706441076328876482282980101750168934594673465522819294768634434327183630275455986361585458857240913451749349381367121614794475712892254837353439713453642489424757306666607059798047631937622045049390326292606218493484310018392280079655886802130164614679108795352638494339910727385065879359647993863274098884860310183340092474070311541481895077434808247883734370873876986644294513294749533198324440916649084140423565365771259546957842383139165172584272606279834794637248644505389168883857294754426293797671771956796444161650191240646094046391037441099515959893173599233763139524889236327469734602317987004385774639488383352677241818649656755541047850646127118094792136344804883844042700447921453971605333980804762131075374830600519942667514080593853240871472463858847061792103432737397172924638043314536534364628519989964016472701073045946866343800399732382584386308421815922714119453728215466358857202263460561873238430499605100604666425232090595268346943210917808167266667915315217284700434542116778773105705146496852376656558770506552877924498669204625083557936604956214222501997243820903932680342108562689764143614841513880267569314393332452039652264239643500341403297852257202022021749784135048611511936157107034378013673373025803415395853587891923816498553924634619597329570236568136983982952140751610569635519217511776199080553098938006615709123866279946299783135815944313211062391193815553234100141653165231534998662387123994605054295330235657480161716519432100673104639649187452932510588618854511443994596718226339957696988042968330729195219778012640338598241233569915852059387765073074048071615786659745748990750644595009724841296270401846223081846793321810580258243767871705566355084621646662341195509812078811511715203399684364470383685167487158698013784098463829257838450107862333499178123466627381191376441425231291595507728130221597741484136974269955237205450167781784094316806404795832726477809997324824774419668947820989066444927074539208931117825319923532591832812390682499886944948366291911820426042254925640254385487002659481057405706203164851529241353139950195770139192124643490024953904636645121793004036376514894616185956598799006858935918696556776486184996447950849864309840852650353308460404360392676524261781072946436137679700008199093005445121745157851515203316338509214015518537589239305328784830112601950972401136279631896859521544525489543853018866706099954737187374812976245674212995425034043020808998439114230056929287780599187051733517035984151605584368590126813061274742639299876335726428070815306748425395372077443663284344847314860707474915693622605612417224037567875448255032953030858221956914507254989726426188667088927143589469601900989648162573283905800765069568907439677073383028246733253090022021577724473632948062003425659911106700780875047802134392192251905102064785077693767004576607741843089968311722001198571335905859853145136426890754196323392296380580297586738863708611017568328380328428932601810220834817370598202303630624509875815611729334267390289825758975919802326811257456434756739245183232667680291171468206569319558880934047156348079719625106119193688119922603732336977199804702072872000647732332109968395781383275662923988535367673549485588176841259602352666886194965452338667603809196275747964309891366801979779503278461142153790714479901184362310365493476648379138696404382047901939646696881651401131818847095925956763298504411687048701482365144064563090302943937000492534702628088310954469068790833220542828141221357978333908405867691203908271190893169633127962071925356674131520162045533611172368847018378686173234553961682091852870113968172366712639751288609263900827815203239271457464081381875933099693100414451714042447829659197931688914259297283229887552795710434558859801729413623786528387954363370931558065290788353436256803114578162755528539717083916747250691135329635554373060581290150813545993450325072886474177309953203885458494029028687996222185119158677524357195513327612301921283106758179223245500460306620624425635437608155518072845963684325936419679607689607291578362218927760420997565987973763765873688075430050820651003175204157875928321132015939835363218321822357359381304215357739163284293785386962968697015270220495352197782590832051223960421304651026510096274271281104754214074978207411291330735420390549368377477600369023885003549176392667281157464361293063654262550421759263481351159150234943336342754160437941268737847529045887397132709197207879422073172520046331617976868580786456862573872086934589743114123355729048444003006408042287166024275419638146851055650281275345309007885655102845712201389310350468505509894041072932897317002719937738612382713409248344051821663751965696609465505449062805970048188771951660801461034421951992681879652261740498237457115631332658875178786844025136206551055404738346372552178758201714103521346961495466961774458151594110874661786065582855956073965224488614688409626781807303442716526954559899293059524022951089465112921143232478893131404815996548372874691810039098830637691196656247164130750037344779948262433972410840689742928684239992217473560425858235622171280009723729143224883849308938458016653477275967330979980853151566345388759575718755007338272291190686211069002736841797893751244774434030957145099691532581903011928491861399984871824085001913393858967161891690050462829882739110883300179436296694041041007706975842752810084269115040560572629985174885103902709863971419146570047081692383057419080188612558051457491486812837044241213894084448876158763241035697265860635782858003398967105610258149094287231530127476298569529911039319445974841695996293652710687714933948818729216577133477378329192057675584136068688164449226022430934602519850016722756341354111499155836535540378542277695599741543718862641103839886330900371669021610088400631364957812380420868956394348477897497149043736298293594028307080051181324190392385601033899770573436602605507339785335761863020858733507142867182948046742610470129786084482368993075751642919079083756291086884181985692509631987425724574400498889970689834880349277479046945153164653749329674241500947892731738906433659197420034405546106703104334819236764581475198947168187747683254004718348302181362396839829529066301441950400174959177614031323707535903728947445962734187891175162441944511792189182951602910460618949428703666909952260893018214778965088727321714872050720188998302909388194714386478859209202894241751977990742408323646974420128436570820962587667070645017858501296035650978231983782689883752717524249256501218765613148216764390415302300161952387786532233241836805330587343953037785920155536167021032441189807746436114196481753075123406076727632650136411611410349444237095321844214274366061802715459680486581193487666520181284433213717172645365297823713221319439196918052236920220838755372046858355151590647861664691383707447658585830606879423235247577081953939791948151779811754495009053180769157296718362459931805346702938675319363821087332696024099002556413547444350471678314131748173353006078326780926917312813271518246429516138657644882170901087772238298126027546436986081105519633596559871752462381736338100303203494726652400051353332432444460796150784212923614219523980461302715793135325996878877470914121158859711275229800501640520147872856217967181256149930829643929863164963893291895067356940137530098496767920291568928484682159673272502110732744116168983093432435314798794414349468261983295513845144837392619134901087236170118884665647405236951418437362608126873624967729142853085282556166745445126653576880073393735018263993228611677406565101754398587314153689872938761740769457790940597346425889258428597830215740055781557593173119360958179194414603835046103094105379157176559581531390623262354680399535562538220811019753121285558361519350838949113046676568094657074922886545349394594093160977524634560133868051324978450985280867166992232512073331880819349213417688177679317718806006082663520306577573813145391821123340552875725694113830393415702631504167104159162288395628180207832071519592124674320370210508624030627210922002629346476339649243128142455730930538228903949442070501501293818542541273642488530385213548250875714297711329769039335790682004491130289911479328395998067570239345169033383272084640072696391203388006642613084874198563794898848780468476213732644422869375099722010487400997354898090638764884208699683014905760163743933789911500849794763537756855305187655509800394608193821751634563921288193079309924173209337106963367089066778832382852731917019034664642574736052198927448034645797560563424553601557372412055820658497194873600146105222353151975522476396614717518925676425438238200281645160134288709073376599539439970878254361450496768670364331465216095116391642751543050992510446164601923494983940928167271821142163379144850486270705324027168971016950719082746550968127331870138751690626347564394000484031683186225551310737785583083313524919090117155252241220535794532055083465351491338656357579482863004349449264734661327730582453202484470130224140502260211559044366651614462276794526754100127056469256634455026025350285712674890136707820116531519649280671665213557492562607741366533771789363422637374485940361380492556707440413673854854606561368928774605148868494921759860609833713272198888987683853863950365406521993982202205367732269076332855737214290112103085030751657088033490587705930608136108489838033558147444084596084580956549990745706155467107625082092779841237565239272142184678105829233841803649280782267945910493612499423719357879721591564958953552282832040751359976064993092850652447886978052976298039343311985300046043560196971251126870322504571159283750048605200432699870126068398094511023108125952180642011510144074906861767000146286430603104108637682778164143009413051335414312742139639868454876788461929442368036367979109198790516610258237453144776182014152506224618034807376568719855653359066993707495536395953161593150627505487647613053533907645076634057317105963097960109125146695430381977195227486532697343065240321467295414877228142301531818218822141181334114971654993027880498016389589267537398435301411489305867073835656459487759946860727708206503528320453607951804805871684902418372420541211499900402836964924398387704633392125212680059821271423226882462753300243435576985537221792685613734175768374704728927109230175005552442368075450170987387497837604834676427359665439098845703236521264442248206030954628445896555811713394977050843777076407178704450023477896378013537538416040075822283350840594086729661608101340211403243839438728348336467854844905292128661003902232390535471058907682115562161157785706474738189144801902010743957464444624791090170143176681221354578480016961346677811094750786013669907608168391520728602601986724723896791038319944727426397131360648712205665807924542690976874367996715583756409015416641390787582352925093590472049202916982147236090725436825744940907193009401754046548393109832956737093587495347073513103325243701116247434989857424097802427815057021087661166718981376047854074548695888612430568023932271956053717529413796416282417057853196384850176156858624976262790413897629638155227563275870102644240577777999480067311452735553114946688775743715650794564753751883825305067854056739992598140876373502647540902038290612450571456917523531407710240860781821747087612926242843493481343684514252253611050773030336497387993756796353779711938407307567369877377006815171350242081789621858151993825510282752797612852903114527446754987349402183759287324230611503613346598656359555256639918212549107586365970276474714508803292098170290698515169364365377075326932643960501704091411892470161669752089889710406434052871435407476671201870538229279200776458474214330306870192973732853258349346933655783484077397778424076108072201014291336296442721788573498920805260654763411898509709416751357156868195363993258203033829740160292434560110180562449925648286788802349593069342391082615821971105216448980306678439334251247213376473305234574993897626033683723499500292755315222293012241047480082418140745597414348885130436059691298581483431918496524889868453810997828176505205511531362642054754540708871971024639646100739256611970942281699104967138703454848041245787851669282700453435643741311126566388240699774173963987433601091863402269149685822418295433639772167327493771104274538887521416935997379311477974497056301398069242055486051601242925077455280736870268330725732332227202865101346424415280497330001656879506531842685192899611930186523163451860555185360474414540561867646569284608996575184254803817958702685781368240690698328346469871722758556853963367161079626356286335981552118640248204711842480510968104447222954936026033793961829260178683060706988091710604701172759681438291633895802582550937633827404320843427928995434403087693624881412361164162549693180821435923327404164596979766402769264221985720917538908346547692288253702780390312107629684846883351799906503329682868975746205610583120419725237786737777664881879611039902331945288778644937041854960629343765178223773435901918774502731016870628218278000884705671828533714089826615730235990918484148151286390404545522274454809195917655981403885997588919537958568612442155650149826223216789575694531677951883704453678066963896877590955645860103885313443238205994944659237168347425698818537060100577361374847704649408176477752471046318342062165434580102507143576570174284644598974229229328226728160092764973758424901770295727966122391973799446224208482976471001942378752706997301172665892959670518659490814451275612956975359851075041249925923494454444971895060482685235515542423078384509398680487460715355948271214087836774315362354779092192899550265079421798715921447747771441519021005487673425452598118708347278183469655868387938431866716607810984930478107596621082032677854643828529842336539363604907814419107973774946606125689594722365320178541480213997414732439441223277565434946216993971989043598457321624780397659561772825284452048686840615321126664645587271655860404754796828663415591439220282277540188202564315786963000251256531053074966050240438277887429639708279526808023178648796186786238496421371766757126790693570362712448558010833930124898756604548804461986312380953750863995702256166229862602369802123481097188060638095010540041979826296282091724232754819891735676724329613871401540061245141016608283011571981195748073032365840865553222608716812360864326569979076177829481629767712040883981678826801827537688120451887677967111219685788484427213225120274640475616712197625673772166032707398973902236097728313530833286180239271110143402106784790140202372782901247838585797956374874075059558883530927933110833123460749707683000020697021712641832521922424907955958084946338070139183921983700372419040074384318038407860028246697879110561803894520115055084060656664506143665798377978398775494548085686475291765187183170467549280032810851733901244125542978814530915737795267703694971967774706789141204779386294416268032213760844593206785486422381563118856823102330468748135242995502247666232510153144271446363287854954327681685009917739636463318565641792105677675329138529190235296808654592077585885258386341468566841091353120404111161963597439867806153458775857987788164225182907186717796989423354626212203519755487364957520779174177215681758378509200936573594295642699705331077208420967996786301332730507866809095486647171355977532863006515347851961214895404040116471671639310149420126729295079032377803382210439435286193005137979621791591731540575619105654487648853945493485549016035592014335943681012701677650719010887523988716773597472545188311630437000275436334063634802685145106662327435596549242689949462615459891111632970447098337431926464632152339738653069403924521362812088843153907430035729537281897288804025142915691891646273762921306863987684912970832575400373709321546468518526893283823238972602870566139524373780174606738862616162796194610718477949379279621125880344122300297060413687398997640791184926722710512939233136471386299102964866906152824428744197136808202229452866748825647366013159641264586574121205075903774951230872288099115638050928618792598777267695217431332827799505528490456263159430599515638085186673041047329354060898157801915281553315203135353821299934338703792638781427581824276786895803175835787773706825482825426638687786907783282142181526737470456565084828391862153226078080681398908262301241617727455062292035055719947825620743919541588277490591072958124353108149673251465570650175331276265507027037621640687456580186753244759277960295941185618050301342117884614320305177321623827980431319720754390332695029394116279711377965719282002819253861480613006896579305797600222403762156928404002795276760503690595633106920329927022956011287092800028615502882846084053940944694340834731224570971414855742724672998784451709534545603814657716548856984425161734368064157143242701670750493108605292119761410332722694551306195001886529099390044724565437387669881207836970896820824657712603191103601017884924429307240582052857527555589996170951892790621198001761307638199702665258107783174793162450450486253433944799186503274564986184794855769603437661442058039692081902617626606256279164814120764646726900973933885442332560119189742239382781329035390719039095367009915065729233914741017141672359518629914047621865292984435250527101620126267631427826157485402638765129056855074679552504914557892880505089721084829950749882458861801397402930523605136953054533820336794287627472431414090610716233481918997330118703264403580419748015613658906093893686125581908883364919892270689327322391845960115502727056354136737971767901374729127540573952342261598059715178532250525808862288783161373337131701798073173963878375731100559074531404356079218746921308753179818414527626697426014762904780785664844173370110921303005605234429619927898034806387170519508463318919821735625661583980853911760618872643676746782813516216302985624687061969909635697554555238727236516240506050764932316121340490640336799635064156006137496687712605079209899827562984798712553574777696877290157564574050572682727546176814727716405711906517122719669773199139454483672350558679134182739578089859243054991757338817931944992200667452582202128536860368192081387247276962320296148937394576876952855079775173143882706706438468752200951403370016799291628685266519573662594147119047556208476043724557050592485398949534327477489034058266893472954048271763236336967547451965390367039938704074266657997899212820517210108032494201339840099481157049343374053104446190852455146908680114059029312607348915671584217130153037574544222480401603294900507685315861587494179863246933705348907148040969975632500969798935406913065372165164717507147031734382383895464880276126007745780631449142958421468172560517231406813091476857480216072786192089605820604564990706684433956219768335366026445564952026863563064088641013603262760855738600863450152284451538591421641764773091786399025595132800433515694535668875262413150742367561731130373783033357240582236997378308838998348067191788157670189983260205486433516820617144840261603092183070701451940468180852515668210283042954257743958941309667734307295767485919856962180225168148374659121742201683197199856752634241158138982762188080498256475772932527738488986108345110120405710666376231463134160348184810207138737151802984268641187596904705497204116855804372343436256267279617013931881803705547362501931414389210839533279186123268426940656548117295272486157940120408521566674855164093183026533520064914674175113025943510054755433939016196749407234457284116031814328017683303993828213185570428872922026151453625341588270511853087592459022812920181685523333559799935894543012227918348833249504465631083425839634130888610788384003151167445016085301694739075932401307208753031549778470321847456861025229040955952389667924440478842814073208214761674002545303016019328968728090871085643187272723822526322063841140816377805901858591159154185531631372927802900192911208120267729943983990154507058576187290302070164796024382063488944841471941860470007245180786212320505297611059538705349856345389093035971302906314329200272370178540304272815054940070351361032646589363127315740322752104249306732997367101879356368966939613286394885997449901623212716616686431694957499199695919080935107897871148012709385306647548850786313123964107349746991251499850275029258520137963797332356385443036441666567341022521628091912187802382960081130710976745959845646405664563670930057901520160787613430145422984673688419415674986709822510938285407950330407858453469723955393750430387885139983410101413279436742925408172751456411879258594336429768771778371393262046444633575722050954117890810711292507048534619782540763565397582491305579161315929983446015685715933800270245411890352640528339274717825329700605980681070858275176747028310413859756673220858553459849067672127824804942529181083219856199138017024228679849850201843743493250602918951455183024526082899565978931766150332924330351828742035995498604354985202979649690541116363162965095274559331075308409296133831432157024913639130007273256218827114146600873036177203715220312197219151084461168117836055515963146345716011395194881812427270865200079358953577420217637295696771220966359026704090305070914461455132499689286364612621397445735573092894394675674308840262335131559576554765812878104572866911762844939201933632515769069357582557486337023753808121831017698537797312584243800106463068918046639094884670388767348680665298986301653180248577285688688172754712599207133029108581638365746864431413252070878591119632847980303003869144862120713162038680637355652458539141596963896928912900468361442654722192652184860285984566813092495494672256122019493103574699855048466792242585715647582650979644068417367193525379008217432102589384004058756041124845437696868000937885494565113444558106018720097161879241143028922264673094820638966530452000254227831739235804942638207620411396804950048965617633382848640855015201104058040309272397785082411983033375133640575041060658119147867189370147974681258199838779765614460409994597960097934101508979040093960913560975092330731097824163420978606924447979238505394589482703124396367029631168396430823609277248216496221517855413912803618999810302515389704786000386591842171180872044807866291473251667667537899136438068189857661450923562428697949871145998440390456366050888654070092943194749220121033075960881399475998170752665457614098461499640125137689128658597230095482658973193316265640010093826903945333062129315006025795491586697166382343371969074442212297937765162268649364986912611829041465162954467628999753045037176415664496890367599867539309402009298709792224609380361846802228803891516441102883260558805737592124436725776829405550231294482692699542374031922656268892656107980710349451798787567010143771790946633465415660283599520309437397001169044345168257939385350488779963306639583835863787237004198807616562815636412211586399272815105180161096257265734611442506240236212496887575766865767327767613510748649180000254995530859421166607965957267150713741845366515787684302417364558730166912252342932486257677933564426824756130620538461722873956559417719646805735891322198840901909635040443987536782703556068146931372197731549657762423625390893018575302867188903188164453954563827901094374704195544602034002119063691562196098444374638316978480655584912950997639316521372820386935224154860606685494917116259807057754892972491250223976790211205151954215795679770154628942541135534658065064606208992274685998019721732425299757837368610083772584546240734990941402446629256273663047252528779694458792369392204088948118662644028163481846103571435049681554903000032137211092076185130312390902037886845957794843727784496086312442804285090664091267658515558474178114184117871400175247642485846757661295927460269731052005733955066604237492926591250103382869879479355213011519110863386925153608777410796577218330202049199563006389390753840217386798469957543277492189521658878344678081630868243533935232879353399505819054075650714683363217982314413993969122460123810182796228278475035168429890337727695219905429360158993700633428590509943330033288640901007130059103302037179753888332494408869187702026526954947429732028556163906629352262325092268683996867869632590954028943420299031139683539137070650145307705458061707044638104218634393507976421570942857076624207124549833554904348782321640017665912586289032878382271966749600835483865528437654715681992434096969272023407430947985509605068725472386480887815244197042690673928814752439746235725714367179874328604836392241084957085794319688745695569466278864197268536737408340732186619977384463233790649132353606748548890170639936616399641967204961442446056826252659197178241113982825049142073906841846838300940985130293515328687825337243813206800093357211259982696317272219430816460992620140928939198563633493865301124201272893667948460420949715400628840989830312944877389204284953878783201825661300507942629124498680399291754074142123846009819736744994785269191702543734934454180700810504749639698180035488957400197443621303173085927700367062878235970774057921593117413138714301458765466812344469395223063251008108392012277782127932094724066757417675084570438473269221433497410243070956552748112384647416546434177477236525722317097178162289297964932420459439117494375111014260096255918253374620258940743358463370277556796403025888920016643678759034784675726058345236717086928905113581048229123864723574382190109926009207982022018669021408105592385404858376918904420610086440887312597544504986706468590114684223835464995524572234816927467288460569612242885244421777344381651829983298927692020889553148739101701516221930163498800658641518309004192533041264150577331738052845835408549883702716469028917042503686139036850330926601413685055853676102747618879375442223021312227796428727679815274543735678723517696133471961214363501137319939525313883626970851692715580858992372881255399573558013820281889189022621455471011804764242622194101408163785276254804639904566948708745004070862416649795976569531832527863836676313637282377784938980934320108716285646979594816599321931526290598848687508850013211649413249031160610131991906103692332903245262440401805289547801392859931314334196447583445645327798059904667228666396472042580665205248833440386358235417963023737931805991141389280639766881163382061833902308387484881763563874960636418100256141753879550085069294001263168612420441803641321163781276374582029038481877961848888569737026759609099944245262174186583085894508041548549990123047861010621045641439247397256904353405028306198402213541219776205566564681367455824168925966985951974504233296639029339546096203010993803699665992326836610747399681126222168525610663650902585287222577741722802112343041807562933202159302606281908514434472494344493137625300952884871791945136539188614444368888994815463251603573661509029475437673661018918388733304413092848011472816053112935019973045674871564172626136441371536070774306817030166471820124417892414704860313067088731025373442701340224823177346289350230559555728177451857134006596364279640176800839432664287317661689027427087280976959218969942566458897309065745837695320202550936667440237287244264597537510081299059292988738336076866005629452936406876892384352199815218490471186553193571199761423901072120284557024495166367942728100424029769691498839290584658376672286635751089570133851191891122652052462342970414651047235180654343779395389491821739760649921056365593205792315464497861455846550160371600035107077919696506274669032422785959712967554617457035796465877201882377429587888336726428946873708186075196182582278975212708943708675107558429873559659233605933754896606284911269297473208444899958997986967656088868953402713839460758287657855357342452006132707879526736980244764633892787414527907881789469720216901999516250438531824426819589119616209880397153611500429382927533554797845246960964928977749849659633807247337725675619509912777232013260097268558904521466068904969624441870599838367163578169033925365400974850855288919350108523951676679736927853119933059837294721843536905580490192254088157542196727531006366798251917646403283757799017683409036082650962392859710030932505644167473992838402260508102952739292810623457066131540325025125533826247517882425609802365947175226914131020833269694513876835611297314307047723337057284954411605371975585198843841274749315228136771683311844373664094130075239574321638484977023572937600830883340194972876309702584048586765539286357699559457421235915765790684065716504401248238355705115623214696057963091339189946975228138037288368458008645499226157813493587843666015138802333846984912238825640848600012808725775622605857074835987366214568202252313872146627432173277428179014798070314307009053075280016597606354659285206867779541938009901629710635387573666586432135839252976078099406088439979192809573716654508795740320635234912071460331632220279512990441117517137907207512825100742247324502694119497364831992301825487969052986147547298240840560194836149089454558426514037618135154385044962855018067421978046454727884714311086773967674932160938627502213958578271031380462035955859266560897103197280318519069743187241815925144967657514638194347985681124086315930037960731892734651549729448646314188371097954952952415780964253549481838290506649751782561300568394050022311251815830655907566934951429726993910057895013156613510019101094694226726420776233802410924139139006191510642709622844658826680569328704383324514199613383865185040351984824222667764244384459401021036828975067870387834768639272720122092075046143861847603197722612351251758713494804111835838182499255755074673158756752774139782070148562003159170189826961712397918404252689919304167015959684782599758707800548121427067494442528986634694428085692467008068816698529128684526294527061661977214218871309398550643853202302646375376042526623592635894533341167609872783737655551366425186582546185125414095906202717350024910371167879692603657617005395473379328729250590600975499718391129279605076408514971660649231066305828288172223601457920274917963828460223984969515219275328843628114944580928370923633765997984710973847261002864118291334305761905104227192408241174802458243019264040684097371982815058713550725043010171987072194786981480930054653681186376264373360921086431039685782570271597929455534282950165123271795510812305437509984974479175058182909690970661230661759058467180687152031582358584005947207888280137802583664513510462188851872234673353555183780296477323327748723096808748142761708541210791566284936121078784487459041351369506648454925464436761136729217497803138385135892807629716298779369415871659468802298139743032506685336963938623299222139338855612575575368428098386390659307729666659303375974538009960547240911381738768460059272908090992288521905988043871025241343438066679507311383670757540840528039431434568998294539916128286276931567884545379815828862295919527456826574662533925982342077291603810764633926976451126905658946517753829521771316979007392039806673495249530690845606633634518896673608566138050279658658970626577440308389379247241179762901697040068296699156137310901240854030077925878488970796397675051025411284537261943041202717202907805722638321357028492762545803948673537403016770350099286824532291827724212263795236470333276035495378628760279624808988111740108757085927788437531501854941247628438609047836834796068961322686177533091149691399218118094359852959906983493913995591242930061770859142337475635314897119267797259685231984389642954914321813670582183826256266357927664685813485006288704365738515367434592863586932116505812650098060078019728512471910932483603026623457318677400084527905564240513597190078076328366918362414942876379426555619951493922759233743893201707538210582726927033170048868014069812260325932330038738085703429910421243676915394464752373200760851341919347982197337852957018255765893349295511434413980911611771151883091368285822890531771652315671893352308477692036811403664048479340567984527944955535953023587451895714537864391529027229542887102021819865394602001484826327561722833851404890636872018073377512478609417822269163500844500640294966130816226307324577080821096792763410408046735241856777058956489743982214881622866278906571504893529340831756162574637841336037080346285674595228689945210127918972373407403620683385702734596967660965675066636018791629120317521667303278249032735017868144127698907804484773101918972069129659913889827791935408405825087118419468812145776551002202346727086774946155545428857965792524204152745354959768290363807352886080492318200152612585897122296565131222057184793210924933271718087466436937609107233683969044231269372422706373211410809656091610894359485259397783208120026911165698258824292796690973020682362007778713788759766118985362123559300138072137257314309728297853946944372398808757588670816718125227496156771477948523272287181176844794910928628232204277958505824327321273509330761099382474527138783061890051010655209522516239619974763645728852109166128785744507417866124627868852958724962210286310925750720049129195129458416688072086757868141454477055448335600674255759198754819186403453411318883587232208156817271424614001211555723169532860465708975874801217810861339595937073553748397498363256416190727510656265191395479191161055967403832435732610388258099231844758696674686675135292808221074551965098112778537147952277526924534686067412762154361020511140276973898828745197018292400317947172265695226420541650641290659060611375197719288500746384530194231749069354171729891421603254212529286401351720607492414319971623429833220890446459480771813094917491123617322163572083133511218200587019440600787757613950663164308695734509678652356555826024137566051570346628279810155938371597885477420171605025968317766476542991603539869861862966647677695590341197028314030489716716092629667269209446869853165235575459965154744604649758275050591429706682211744431226028293916674326764298133031675045042598236569205650906586312463627442674108168396161749246729593195999235468552525880780498213691684114112995182813686727182577070106183716172173368027168942124808859695275072867530104526965437574106920163833445670748668746888713033529061729311444795236728990622061607533584258066610038650901126583878873369275025093783201077659631792899925107771969264961625683165973670905138306567519988201293714745296609953745709873085135818801501603114625380272673284507143241437540049442858797637174243359457308476118656904392061328635208515390627396174812139746093212160353084076170795385076426641767054070472476521561578395973407338940836640957767687581096007063025548060245427542735557398060373861583626893225874751352127438625808856023384050468661094508953284449686073095546387117989292547065903714823058867633368306912564874096007288176986609789945272343491967481814217975494486565438999854975184614777469182839169010874577658401914135270027554638106742635889187034455024960024243313377620451863853460036313568275673359932009067067659489597677739359520596661512661447253355412538479293224788178994615766080034523001322027034445452760027000227958871438096810365028610812869055481715297042476970878736643167950045335760497106869097846048840157454616684382036289033731997065072548891944661379871607432275975668928862016556913545429432300034793748081891130667156943566866857221147391924987719758851920457537836556001083168333305782372062749750193613126591693602659064288725362518469512892801312043989500057309228423899265294763165486099603700699062673350161620108989730091554959374817351008750826656136396844064522655927009649219382400420770094619591748095512641510237409764535095039643212621917963970249890207798666253424648921948830562069680573162668510564379284281000651185842146822231010692138969801727617676696193687111330602525357788835643102924777562253420960307530888069975685819659732431693959999193141018050549570709711990425768452864813996229890423610821683913944303370151876104807556465426539369358666587948694759675612843245802080857157909022559185867772823506813955886724602355711121506148694181523639035947881045685442411832238126672411849671474709352686847469104285573772184106790615605476978192298443422408923479374709806075363641121427833926415015557013974753659784149642421363290806901953883968448451636786137468474622288028266705639726621620724661069022155872471181127137485359264739465627938621275676220396437719785422861020302102055712595539985993314262333089369727698387866663355905137026574470986385829913143666024177293300011994057694654125306455142854026731438114163522365072697541082458276423551176716891792392656467182525473305592264903410551037878827164372536751226451483759684996278695261078179927272396247530094676602625030011047995905940987502513404666488688384349895400732839421064602836968793954388782690837998524605636221492452962365328490107422081806910168129452602014181864730270271596852530117778760687712471229114573047019215965797100950940943963905875031053881621260369056763319283846559625688499913057135464936800828198031440939688163633193106808351522367183096207995568886527719222121384551772249388866587952624790774786900632514050505135203835471566556011822428981811872355043931763129748740631189325227468974505309039963833811369669904842768682467226512962438637979786783367231564993919352615941709060204811898438251437104443605434430029373762975523981739339420367470396482047716825235794383639270097907372879463179859172856442358370854036484825456425334885352286216257197286111093808013699441004804695903477602720325372626519433765013020717192814427782766208464181966893270752146235260784472472395012705479015930753597641053156641244840623921309043453456521411644349859820894255566402502976169271779620630428507544572524302522083977378228567167475002052116183307091900720144386353692308393906405893070066751356502937946544234209862532554557354307470030152740164629401685466901302646506533596231067074064622489797419807075796746967592760691338356212358751718627138927768378617536149182061749339432192904837666687355941953081786795089396404749040694418137454473082265810442756886771998873176161392498505463353423349096365151732673389598612706681762932808032912181600962051165754817618006742234552191497424714941100661693057726088320957655415324445500402745476491394876541313520312001706234843397691735579086539719036037889571213682009731759027672308650965709420680142940636638530245929700759808799927522389950785879817462048769473157486832089517175421267002894230993331266353101512313701950366043925231149810747497711482580566462447772657673763372355101820509352711449161632128552363709365894621988866792160644715644218742207073453429289247488914083426936171220457201305209192839843692692099655075365766267303559377156784098456079176800554117702479007922780458264833768919184064130910487718071785876688517303631234092566064518302771144077202712194091988339614814574658811999222377756683068060098209436649866200111360454801741314649378122068923408790655544246724653655157775469847415423567244929952157508865813252297966394910573350743245357932251266331701838828199870294432960416732241926857731062490960378738283969212015373283361642203074349181599738578055782569400528279528860216995800505822978799710407237703592448893549920350327818763258474166278137873209134434485883012395126423196639266617103498091593008934509516616881766749318245192785114931488871857487005319616022401252127318843976362847427289845052472266098515980893222372679727074411467560866935832816723596384546720521567696537520653841890334885828728845302455699850938424279176695849025967609268065276345813553222561727296799835286647471240568815309954289594642408648277785675728135559701713456327020322787728977791876441611481337133210812778549168092703671471458471422737711984168480821862504269514374914563987588683558738191380009059252085775488468040570520523027216577652679893923905561802113203606470753056385488597433962348674701925992963834645204451207074367434503197083618892771997489451479822552833557710135316768368826057424774810735765185282635179624679663514030932236667674493468396228160419508685479524643154983056495108028214239585812720778749368453000036999926980023111225371357099902401841437207904553216982911191195560979955441263046715679436027808485462586001691523958160757021355303739418855648289668717219723720796590279061927716661870862486644560194255476542060502739671772360124846523996938787835316226984462880312904012755886288182243252125574554164414264792858119953684906881514436870910975954017888332833148839759216157313295613493281854529321752420443126170408162177938507281618221786208177418115037902921793379339148966634748759683404481996890827946523714122346844001432222699031737306402692176714909308468762322265725717029440424664607053649742594211338433070937063171269098101860832949180576121076296884359926191005231413228171360718123492172949981885480786824154328162210310083541416017756503595969632336424882850280655742146142587648366798130494422701966096686038831446664688678097772270162052948260451394580072614793221148511484273351864364995530608413629604862808687461959654068502287363531332873871982821748510962201172168934136274369164016708770082076937686616604158801596730433753508887848509808447331867050522390008208189778480898811319920421445429243449068118601604933838669356184067936578991887933245376396229801728211455238728701916660043301530631409000277413860597922289352370340883866067097305922232852657880325609046306806468645291244179175559166526457953859671274011733081256010907414172455201668396648157955528796435701851692634509489067122139918994687747642464426375358258337816623736586489560042590703764139908010977897442840875143853747418488839328264519560992141511583526426101426625529920458189236037315428642670994043527749040072807500563621912625880852271924919195179373327508796019223403823899025533845791092302898827177075583039416817252425819819173377598245111015206146591116759837868573465299555844317499622743091222480598693323380462209219422590169433077782123775337574834688132569601777548019001220356911299488907626925204285154205274224624972607728933119830503109246312840232130886082682366690265119048748023969093297442856792211710254222570266184042425815351731430007775534952353901500104010694079104112250864883114278548603880190359963342787869157902621849885711108553108627717033015661774065834552878804579536784419726977710446065515131215075637285225317646137942497470578072592614617200002889202096274337757691405668739975990630811317964127071511717800416245583375872960623836784840225139443636535508094669258147829916047929314463366770253488897169861056553629849450542694178178366031206276073201828399391675050082092455926139650134532814400450553317083725656452298914389499476954460338864556085365036037945887316369701054062404575060035784474808878586950352550170164912887402643229680743250914238351686031509960630884385509549475306490421641097044459161221066652945026227108782667464455956286650158789427630960796540727158065624493062641944380893352642670778574224889530044808822857516148924380990264754395835931376180332141824378724980971438098209938091527409529896612854560398512911093151733842581468305836985166040018220933879095044527120139324596687542555647822669452248320089085269153752617560331462631580671114896221389829866524558387152086039928321713381760164238622024293263280257127915906970542035718132391653430761997744650836266959802053963864558745898956753834305609674776661438533596234783447469956149303584748694514468637230608705621537378512369031695910626531458176079420545394140918834666150354270975867385668959335152659370703211981646512128071893117818546732926045370759115955684513352260012621822585412048341379355738025646140741330271934387400626315192054976410956055098251037002912308155039835795534772382364022101511258809609874711357884329564390352594135599318611158395731923751839555526161279712677150980610979228609694693476534317323361118603456915789499516631074510280406212413471896627798702378186017129239790446822159744808129456432297741765956199613576069517765745406712853437061119364566227329150436520887341089957076372168287715141003730638279512406018506138679201333940666653391774685694663901578077500464305519736006061052815330104607006015003077079942130519577269345855264889350641877600742388215074896467989393258766360663589726548396788756248776718825225595245343395932220347768816973806986218150599059311279100587124595756402999038474537015214020908131382139130563243156267111944297910100913005496102388707440381258642052387084731463671534575416003889021355264474746968073418498881077477934542566268565194381333942090435471159961423393994242101560597564472691236555287791199188699804090838306814886760227543458191205449256357352389112572911833029786082165118269018158619940942590799269576800203509619547300243496834637568966144171940092809686711076983875865691666423280085079105189509710848563000017092144757514257627755604031528894177635922702676920892218689594392514311998657553935966968582973238920203910493651993076016026554960387704780895914876576122987878213170011798013215376141814795531676805369483191019830560941841006177151457628672997901490750371560369571597238977335098495877944788289018478666429719092316526607810225648416942829626569656458410020577970732123671515182201438433218417203791145565024575091692293000742480490785636677565658888700128087063695259151958321191468552797516956897448280725964890912824826472142537815849684008925936642442755943397590800996162616802004376562449588830371468950439990566553836269153458044943110429807641611492971688456364995941473511965130812918197162440685161380176957828663814446709730469058171832442828444779267305055731144858597357904619418622957061515802412742329486855501066594253534159179451722937405263122159602976672593845507932954406775770466092466311037171073976673233316979513712892656838062512284984639691357662724359053298805849537486175941988253621270587323564981803342757351923615992964302645521531901013986887371413141004008503065789174892648454451211046864952324887721125888615385989736913730674264125704427742808381017199019912216766606983586939617304116636615489519819652521234372577640497867667450225947829860376558909428184901679704269392913177146941367836896530358699868051023024760822525961524400692115337986747860199117922193558780456814720269219801260973748921692488925548572237130397747620080528200264387877566764617695252251844762731938987659103625863951745452788175490941696305607225233707438603139008655586744991024328308106757588232166104326782027054156585324698510401684842952099949422704560288820636858093039823460317231999479005865946534328862852890396665195384985135733776615462275443950322953383679363331262270011763517177064777374697183487609530933181247540443166084399627702251361345495968508240440950945505889121446418053050440741275556769865135512374832101703841944214689128797261980845242883199127310182408087786792767884523085735813974333190288520175471609492462093693886070007571445309676989310721940530364546385423939908710182732032180431105136771784049465013672176256360568046268816076318811656370476382895298606712261131400077665601305581870078852191931900448384713561075033090523384686494017197646701397547028440419434821785480226505255322046803489309126968440747277209545358671615673805060452584302159132888909082798401260146127614896879333349283512399437883433010972584722660953498699937709265508077682200095883355181978351350406176837969582198468314552699136102657752386041433591525325594586100647126223347273161429319900797268639689631271159211578559036787080291745187803066653321380259952955410311498168368531990274769442855230926048852231842023225730484597060293643710514040828807078305394354968470751993941282876969100013692274922890928640748546663731631640365341036478895962541439369393723727967211439066881739542766625282065710178002080597326287928047531825219394864015016730786377174172913038110064666450671077218028336056772400580859363533878406019255174548324010214449799146097091871273341841495441685393688460471281840761876154817941533956675093398330072681572567497668677352152773080708057069539628221242426558135784666676048638272982043406760823880111600169401193990565297051578040095425236375466022642124907054633069194236342744407048591806396745996707757194269637718363233035826906884378018436776934543201782077076104975789398557134187038758523529949821072719538029988583546546795256349412586848434102676585874719750446444401531789781405817512872397088317386953440748093769617312254901227565417834775981863826909693706579842838916103612809616224852155370752646543491880884751350559436759796049345141167944908747306369291975355150125957567309915137322750893075553954039420253818059631972342304993937304297506267977021396428946752467081790795425746827147390430458934785044611456331964397788880679402054695450174823683935886333912145523609546568141187347539376758313821320220968254216981930266427239065687827839893249533044219551663913402256751475273277340394301005534642011368424974871608927000179601776213661476538401953126665711901335111445773854148317566997116786770390357913971563490985016779496322387301333117165471119041870834645118656213407540995391530792756404056950829547361735532185397724295208420380877528444594113212368468725033091776686363076026517496277942126157830271943676725948676182008212527095131081965247252783887264883658145222649233718193160419073846243385148742416161576714944186690033443830936349572113551812781680957618167380305852965467494334313650466907306651785163966619736108372416954110500506971927766723273456621158217739999702146180764593155319144985487989608679165525581325539044390226010760584709625424924699606673258173690625115686224725571255802983906181204873570794136609728600178127930718562627277086737143105142792297893941985589931160871956727254801639880553603240094139779924061412395234603164445147751701947306807375383801318750147327784471104171976801959754438688890106263239945110633029940145116331949233655046395753239304504342058570851090201294368542138394694357271719629206464567778044478815520035752278227842030178375509454580281668762565281317549038301985783084924697021447063572569507634735050143185286449754248123133730661033961618964606780090762592442983289835365052648588710242121441287254498410309369406104539201739268949502245207687216461235640791700971334794534522951683494550327805308048912975314551516365703543778495263579602176132240783825281975544556911961889319849927181314370548957387039721373785393646210138652947240727145266305515232200237654121865600523192931944296835047227854532332475210205685596513376857525295416739538607531279728375801077951677774533129453404968792634965460416761298373042977963633605355649752093702416231270098619936668859963837930067410271006109169929395048792462513798833774690607800160007579398335823096046671648115723712619672806288506115006978552541388531315891307687744014609422853042113887863268411260848287576506021189868802247823800401147053514490276367354599959162866913637186872017310176134624113640094512476142510639878141420003531959992234384807769266228249430107585050473544743121433737394435313552133923676231223739069158850221247876208963218785820699944598106952610514896207496761309208753092119833994159004170776097421783398060702336956026148778420925036039535300304612071782683761029794407605303016810839406169788461296203706284535489314944212863637517147418372410687186718862219822968449659986362306466372238543269296672956397615232189483608635715723200028937162639500998292536367074326487212204077370585574771079839258224671041885277043419354848549037103425019441072823598502727087896654354215260184156937703546102453051110578557428636499052579541614569180588743610016047193537667187274418729679608391388883041410867517570525619834788619438135678340117879226038808161753676210766247418670389133139405019923056700513967404469353935311202817113532770137519355353351561295791180006804593251749941205256424247114366516685404691494428747941452386875452182539268270548257231064210060703558671256557697074294499702092411821937601078844515754516384345423611061974694248971880670602577625099166555426159550328057541816291897004249441600986118517174566932710177698843634508047450506583526294988113760130251176116428997715747598417720383883205162208958964228823141132256969365924320431883902647964830796941078903457696833948745334818950646821175992485100475600535203832487204124288443434311509570491576113359331695738840784200606376831374989956800984321423675443746842883565853398397391264643140676636706031303570200586383127226522205782045513606566251059951503951224674677374759190587398275366044549550664613860074113313746186355476836461013450383090938346802756080523896996133504498540272190434163379989995457228776476639345493723754945768604253019954605987735560276857612381865887571706135766705209503064961005199796077029892443910150783179775945740210786970766509717443030397388983259888950237655345405963551147252246377434222742217458626002087420872435111527449612644470301249532943036063235055282206055377060397116936474363008232554045553987958855121480007671467802827631461312145040571614555770575714065229976163704871887203913340480874976866052172713472182807396050655130776470876689773083868837360025694902674292262548510621471793602264228655460527330995267267238853370398661305880745633750813523332229610978827740767941326586543074060914861722005010396044418581883323363463746642042514724215651530052269119718502346596250386001228011085535905316527958610532730613695676956762317132570180483856681863570816906801688890062874576653850870025540877130568383470180819069004052403720522991863107861433047369186642390747674778632054676556760765191816445176532544372260397913398452976807578070009661917138700180014703577100819829257114899867759473777524406993990158910604044303749121669346808669718644356520677828073225575696717910327962318855436213249404642919914776303215795655956229215496096499440019563202159298525110952383609330889987617011946778386954624401736170673439540550416995032863190713320209254389924077540205442827906925137249250718095420310510678933514088914531539634884646575403661087378220384163717261093881316715110092544936598539920799676192760138645325547151125445660448210013311989666809069513515465087186896430486017889244718546282335525481491642658841617715966135979350912646128310700686712626621639039797569032941421083320446022881831218862073068741604303214103511994644672841880958667700160571248828550954721784877056756506233211238718251190423922782439211463179996114845624127785963567668993302386713869040830765953361517000494073603837347134560782467254090777247280212999622401826390855310971212875372879270196062408213828436847740045337304213054814844562881794546225858119748205440646336094827670556292217428923596081305913292217514568567269934377565063069602343858191083504145632401476590137340175860877729038835585773119635922537429230943854381892414870527111142507665885305244557838253713254950151376833486401273704680084007498792074639583527651445824750955724737795039495916062511400212587716050354344864717095836706693950092546773416655327448141250471076760935177587258538151642444779084048946844494198657977146131271606936614156086620426429813341897457184420605608287976396873031223137079283137595732976023221607536568515057514387353991809816001277375953305666234929788057075474278659888200247893767791533944238502505081164612075302634260903220773869797314069967702167731019846795496011732072429245531508039723174155178814474851235955051754965920510425956682504107696689692779236320363050580251075556106245091579948681698503526180198326463941794913542693003626396281330632735748816351047931325125932029989991018316991912688419271346233294989042351776543494786090466495804057343809092972020821255579347660479331708765865985648152318966758416112185141554709741345602838571968642243397317724277915968689977365277137921548231783541478910580632632491127818974493300714376363832841054497533014420477133516496318032226605145893674847437844542977030044935621115554033921183105814076305502897065145035347477046703815561890570498838650041239527107905125580535711343675443020381488862335227852908019021312806506085166605511880328260774839641079999300547286274489374037697000566895627375912854110157178915950793130056166565506907393203494023770000334303539806279883611086263910046025769432216314378528143868333168312996698649083343861931781424178607722964242829280381074269003244741382081204673330147930977262270589509920522100749341684584047703395693040014565199561801925523060657388184998331609979008083007959084846144584315519492026830919612785245019670675798305284394640258923628035761668473529865536837249868574849288726698821644313294444117220866455287979318480565792791304656554523980141151140509594831711154863321844315877825871200511512647812261078943981384427297418256973381882022574657638135735218379891767148883680243384352190513358792375623829528224538062065185685932161883594306255175201188618995238580148049011682441383597477969627687169565180638377366066781038152324736974648945709562783254757625145941191287528169917600801752082518531769595468441883609031942686846808117526748294362618927153309745241267461765302297539123686298153087281838406484782552478127326887726938585468991872290124870435235332654772835751135489759952620565028925705669297872237553546944658628204811353453342647579820202687619067023238773618501234752236696595171056318431112367443405553918642429405204192576759471106246409362864554387942647222295803520770853463350380769276011693513162455452798172559153789916162765810575577111991549457459455660043169388143246213530455508235763298262440886220562381722929375171321166297409228929035525754878330480618149260196852223711061414902456424613961365614758365222766561625534380471457843793912220403904024760077033390339451005542150370383843896363295163325456480211795108723041493716887584886067562009602534836772475857358585717386767187244733749320995300557060090379831446732375136283986439142600227531135407818199456546865384207465083170837545193703029234466445104323153963899317730054337069295069913314846104889939721078054031324449653156155320270987354264927578119173570859297435294671586841505625058977446541366655125048667834307929216127739022494549576535994037677642149745880906392497390815690362350129949927937006207514407378836396523124714024470601647577912628450415506011213298358924727765453076003935199524862762302094192722518785299708237020630582215892711623550829664173035377782149557491785057534249357439244740195133680882968808115971970629472433570210714275537464255361680662822450401508361141715308466568519561332438322197705258358453372270552723686424694067150331316736001499803007366991226991519382842899770982451612697491330120271763004127213888813297849873190803618166303054224101029200544122320776054096321052408807349090189839701953399226666278088262771316807127357109099440148056674975261092983037086081499630714173937573488426852438269216515949169743287867115626069115772616309615205981059329366647676128390121853757370416931891038470850838430115163129589388862196394976903865766864570002741518960220965399188506965799830721209971220632742058687727950021740950323107543422540252891141660240817203664487047356102471841887300248756550298668673388294280848185510882831748249188247175857995447085639770254349979393582063371736513036965855868200944076143805894279210834290892191224284400401693424161528034288152709774695993702131754460842660404685177775997837434726632247847456251261370814845145805651649963962856471014944173922327778411399552437815791713608452826134188517745564044300327709473629070378919539988910163727880350334409013770116297079375586703527956933412687516229652709756586249216333272834635316987707153393772429456446556822444418358669920542139127306221455805582597716133681211268069890544933011302022142438231133169780787522315687408115683069338028568131838864430186879023081718191614909142148888260099431586841851298061472065722922435816832881240149025776874476559131120767115900459520422309226837913473202291231291309316780559961515503735149243463610579888903556516146304357916838265900214130604018104636477589031350309350588787568361218015790378361916667122629535794959586237314805168115603178878189561098887911656516286967199193594923336841429162208844471869585066502562346579930388509080027763425844487444023460877348125779464072940574656844639687330340416350210799175191962044278027858831577743339401612864414527913359883494565970053960946888352337479670697823989408498302335542273851977457441817035571847720566779165303918859943992074254143864760633733335153493099221466290575210640067355539941146834040849636812219837071184386007495859034708047969346642824545672150849631587236632955649662179697401574356293817432623364843957912890287298592044109467417951788429019651401541342814298573205872304306900687994298338434404851430016061137666845998463237620002087059150621254386355372881070461292159947161059948207274043382447461659613369632933879482382067854560248410035921694350197970572257075012783804719147586202467972245527349578382584653609457754562912807801339567014942426864346991437715295021341620535145004280436931902218483575954120489223427008465515996939214360166153733307834755572174279645934549019767272013445436007527983609084217510920924667188582944529858984800335710280632586559087979057526340900495075303628445028589440620136859998242159610614095650191086466342352181776818625369023267181184629647207334875964993917273206065393413120524963502234338246077867372088659881658765721622882700709004978103592139932830317238712786676934574917553982332146351682209771797833775737675921397472988795022360171103795221952268180170459128604375440327014643843683684030956321221670708323877109642039837112017754552458540202145011395616368529428651567496318260097605318834582972090826406243521981724956059798974179606757905666549770322536404487112736384178968315920138209279707599559675059721175652076783727846020449606386335472691538213445929358644865448190107470192001095025950975374419729036237874163023023316233381811332634780815945678482110329881751848407983807983169800981941658730637651139398245129409703970645371143860795315255188676588956779943883768105177476410812386275896531980515818925886821570913696641052121742301850808585519920263978708552405820403829096409104020697171417552110036944640470056343750729695337241628997549159371706008588364819681069281562355886497332475660000367085351453563718697242434528963723697275164311425742403729376497928937338575830011126913139192275130722040404905628807266529213439295234263934300833135626817932309472658840076922443989311671726596357884018857166924476601737288338273447774665223962183197366316878367285772364802359505751080485518108123052355505545663529482745330219872729739171661345506384323644280194117375794134009925669582049141058554803343671223120177687895876986777312361511126713078695707044645652953377290326945699656994264113960872501656713104964905672480546625113631558598276288259748865023121863436009824123853300306966802973476642549346642640081517440519243333238703449559578597603231026267360588730710328369298204495867783923550943449267357468445854830883258756682197938522384438582917610155483488672172601341491471097402269207415182828361835383346682555287700722864110713057311251295698535493756234616011599053651045786509011077736001097457190009377200896093680387651810370221241388461548744521045546093059952588531648068582681946310752979756435148139258762924704337432038847184705965483498203167530735302687840963423156427305710982581120734259435029334654883371412848632431166532015576916181824237969193030252702057956571157720132911472482882860438711536587793516738299152720883079146274695435435357727073319935483895622863945540693113765640319273798213652182405617979747263234125862837535835354542963135336160267399591560570527367083507689142551530810487834899452729781148263045618127216812396913788372765365161362973410231732971171033443212420346551381367959195063809299143398019558252959142539133221221950492087772171582020884611831015325691036861525795719091649487042954391127516800771635011740405670189229444980716028982244906849457002695556478324725930114857325605422017587134656753160222957462185494747071093763817715416338973461402721876955305487484869998627417990082782078421174827486413428480054550903347849443815329723606861915198118849635922468417179247384490602310124199304401930332481791123745917097973768219216933526072570995017990124233785807760925547196984318536453952091189177061231875304965018079107812352166143695173857939918464100071352222433227049508986820778966617189746026255658120929251671767912981593536377540626302755749836799399383198237596906260357089426225099381764412337721613696869916780272925556943383462255980400716524448222563291667355903119356375507954599603931659886219686973496872886064089003820564851645151161831884784263106703406013948872424769600839441984255108287951781496080058508436890021118224948284507688866414671787496186361495773560330695407588398100748696822276811670427462785439637828801513265300293265723657689530677765982111256279596465997869688203828618712102203554019906437733351405246160127601742530638901843424398803460341274435683733326059308110077547834436702066847166194027496874376980403862029390505906943156125387319920239952133025636493032396263836018445938914054000151041943357686107214239662607255456354704888604333694376536552182235233920177582526040409740068289178908303270408319303931322026632212324163626168946669411969287758070998632350520158013894150225728188482871622482136063817160758504699751527534788013234883884657718928036199189510365302711782037028479306424086075309576753693069358783707563090523392392970721052877700152291046044237240050235342287276140997600111702651644247489868935159337283787933989952754254517311874772937989434920408325258230718380383000616757222440328773847827095701504525644902098035497131208328659335273028709457146883561952885455285421500338117173432312996065687001654770752826912057023011062947042328868957922140817921148249446133549988243700966718346529358901086167110297486290596778115987635368359010022984478034461137620382645402123887910310383055507113866806722777163502193982432234935510090853033654636538477549916827433172753237898540501242820367933794338509983376879139382922147145664241510772157336892285508360458089285245942841828838172099498165154214143053434006479865710393558062177530861296560552566957073845391767117524178178979594747945662715066142950422616269980424994796768807499528554525033816910022200911230357412574067645985315363653585744154791655692154845052526910831422408207289209459929718254593811971940025394830197513375191140619800548189419383430107945974816625061502113269819943986105647457428105634759483803450135991153900643597985863086542942578281602597661952039357971030308480301994211877928402044213710138819490329691451687752993262324107851062625016789594216610834227018072531924454179463793060219230825707443091569556221253444755233048930220613007648093364540827450658955690775350109125433619516309694593319472050092237996510061767408593010662060677748279576862922900873309980672766169000586464856637929656639266016289093385105525276428933759135764375802075983496096514674739405891799560895694091175596949925418270392713149000718043349532016910198652517123441142338446867352879501018870016622488310227407567242883394395096129131552861134653079238612885378602579726286595456769457258727599763178536840528212256927062694329254695784487516395721077777964390264111602949789518128385710890400307282966992346256023495507644271365253027802919593372474632464507388273130405660186603718402163400752591660700595180274763520076233592850494012054745273227396846105709735877903512522135841265291266031329848770813482863131051131204418243769028319357439950467715631687715311364073447991183435632136767084731553910910613623095166358399551272228246445094780080432511984636502996606784953632939609814863320276216893422654523471571108078881358941158072179928903608806507909606572173726910966420084911819114460059481347197955349293210074138762542070188649328620828273795506239296635581501321410181416865215176195123334964098683928821793911635755711217857024596380952656270466942109432987402657691083375906702572889459120458803370632658033950964198020500506348895813591852052328242861284221385855702051353639625020558278493637500450873740811100905132187430934767661007427098932051999726814258962496785083460228327307532803355285223350892407535623613803337660995521580468071481026099294808305213943588183211458696958746017432699826178677678371299910189446167136479272085967736022466643422821335077710794096596341865046853930127996969864393666709043232909810892923174605511194056323489740400308099935878816113484516511710149137204640801760907746572289655285692133772033329300369308355472513506002995469317371511012052533792032200961870548146548104141332583146182498281580977340267867889832926754227396382320818765716766040203884137322181969656169742363665520754706378020492458060365016939899873954629944656868771188077866466858543174192483690688996949162864496716636543339715940135121840234721030664208659210966678979339057082043790776813312530815398096845293997049986637457381011824495874118133230773921126034079802112393885287899590930849796866448294870356160605704419258281167923365784493939378512991626134508007390377848169006091864918554380170856951175117413536562532060899412593163427389529254702337088202635039795982256618512889285296892553560745834509514541138698842137122679911854121294386056025412700582017728151189447342057299054721704636897628009429439223634443900709523487715033646238511190351169175477875026501360923443387067791773166347615949775692215719085398963673422625025661201284337890811814386952686011007931898637682234095087551963919248863939032623308950869258372203637217175275231786793782206790473258054575682966543411636571819726246833536127908319669660380432043930914404746661032447879983758591194945339234954397415277812851826294493432442031763756814175115010860457791638976207113594266923064287772682755437510087125446323919003206316787687048309690844373498463442236045023488110784177955024784989651955511670911060763839817004129548054424773221221136066979104067335485529415055223630895832813809041568819554845637977605302727409244103299930813847496501415567379444059005394214073854479854019711116666844004899303174192693990017146556139258633816931909790999908358958461582169399656051055483179444467296919931959590850117167342569679381824883416573118282675145093835109978653927932187523801818367759128041355410822719548009669737635140542812361938771559884630731849733804464208935243958875997565512016798833980480318767445917330126621463173059673271449279903242472859810103457426681063841766187735213768719385850962476755659118896300492729530168803840839418119032221232127152915533173220448539586590786353569079148785835069014229620464569423699657744713416930085319534311959259151832980359960072774949339693120852397490567092593288490620223530684124091346222113346998588190909979964183484285668191410329186399889496630084947955043573905587728651743179967696515304166309566996342325121563394740860810297768606199644661919128131481443767302988347277205635519320757796431116439895326971469235645152219409843363660464452352126234696945030929260101159908905387205345260325641836776136221828976161489524548830387652760641748979053138458664504096618862253152648478730860390870436341707801398351888206702096440760990112671335360677463658167019247212835466095646051113266078998764021388382521968835248259726262360984888680938011775054949577629441252159261357365696627852792016353371464918202372161784390101142861621717693663781245902444831531595495213647393515846183023539713493994586594318910393776577757473030793314298325163365282515171419832080510850245448890984563462367922939963420929718996346390077436949124878288019048649204262073520943310531915299968974350733344642877241220634804606009360202433263133379947447416569173732812032244541431362273114154534348898315965024314523709486008347908495082884040594097472293763142076920345514386008844921085263680247707221040104755723464669754415220089322745327347204764022958401048213321234014282387039758334366005737810230465497417577676895155291097847447560779653783326783247832453955506847805652108424053137372786342624015869049005313146985113578270160313786856828835399600215975958040638265370268981322292351252760452200203865057146218289643766410221574477517819189676395397445558648920999495147215354739798184886753148207714670385317165792119098062658116923116376557076459115906858772834945499800781167846883751787674017236825613878033486666859815771703919515807423024219466307393090891189809381320885423431870774632857652305822727531355492443295878988141944432366609233707747241051178464271842771052421658639613919316341813283717618078073638606679951699375972037990821020123814397710874464809114913800447822817918955556085260193042021709136755520976794714269351433518533088191304780871206595818905316419696090691138618630733455246684342523528040385174918934051441879142012589652707884526738390757168589888690187740024910463480383232240632085691626713021685350355875997284331066807785383953852655120151945824232138388128516935180299492107446874576006983694963695719806289912957605826900721201962000145763087275730904778570570534321577372522255788637087982579409081526177700011668916512149967212199989962539906003265033319321485879251624172462980525026403132349074998541255665153843855450575821827941598221362323558776266563720587765970683238533251690687285832423645467849110490932831947521832424981054752408665402580372150573631472216394778854818142023508029572921379309422037689180556908733147415698586990991558760894503844799567031474981771772605122227880544137418218565553929361592921140587286708832212919165676359793161041524676559310431723907287358350076392323480381850793572778948145485389111571105865924441984818050021345642687593018479188362680108042582907294360195086944386447950360500007496639996661810451791860505718061370861404783735663786906461478631837089394283234487787370161222414790759057150559085874558552873144042420443411102815196719489278664902371527971136518746255643546123445186644729321781207877019785096236975451189295565070288553219979403605675692760102611019044396299825270565768175411749704896066254883862500434112467940737491465139397183620246996852642147193411536358633502313832491289258406897202672898498556549460315761256397880621225139056331758939648398928682655779329816993686181889721943790171465025694240771252567250767885418859958489771946239312523595596128147504754946137853920767684919178627578291219615332731297580015121193135415969226079113935665229094830435741009830044490337563912747003454906437492165363612977013598767615604334228843227949194210365362641521050285956726448586060703104224332225621692149693461342369894935248351004725986630755309952291518960380107385388403070677575172718696796840913183835033741412842118843560278059086825634172634898929790743329256548276895826331596728419118305553389590633213837125487056409901320889568549202582785118998202498537764647062079273023944307750730637954365114172660848820917438340140546464544576256169471958450554274228329866909647503983045218488138605731668917281387982590142786848099156646315533896030266498857949900656559316316203241837496006571762887408993857892623655122511065378371938819010471353633926734181226599727381300463002660307980130958418854485181596603343510969857253471577314352922702598466847165539044285643928387623696921066484760549397853944586531178493467892531354999237405841432260375076429657994322478151036614376723052681642827147358305916817608868031943486704934095546582613386203045856243496781517807895582087673966094184080722651604120069260192203133403224024630202851798876770368920340315547792125829582535939647126814255506111864751804344375113540894362678592229372817756781877794946211211320287867806653037069323111860945145413900433454119141819945765794843059186515343416173528599944218450834456768049569793594099346787136714174262309796654588359887072430391920334284592617175363344828921883654756794128682141496920035064105224758552466164758835633728960381978129553401577556078191943705817008375001565482050817939068028227991328773675850243772697691688193342283028676192974714499054491714117492931186571706498653872137156293416603638709962981820744693778670725273700933568543218765833984543101339046049832576675513718489346775104669161420080613628795961354661856264542500368831791258013225552348865922448827194838716295831958169723282669634695213066682612176674850574439818719783724327102325366354705488376490449276960109878576165618037652279425700243651487963691308924539168977922509304028995039621382169753105382608178739088435201504262947813076841782523300435145803969996789815520589222486793861187339604729142139847716836418756119375434415220302704884502339055909359591431543549806513866442885884966647146279906863055801246235986253612786737480835711748058318366126728915272879047979884598521283069402761125356596066319199364653611766616196274380214882468606365266921875460586704085223355530121405190238266298779882411532058547868560674088627462768694651795034485822726228881122079903760029838000596114374564643553843564132296274460329306639469134588659796089639736206208282627207632811259027861764274376190760310028327057146627956191270498966479562274507598810932126359978257735780699223872960503240875809493548871621143585834559322729255401320482736401686481919531457331230850725661199936212827902608308948449243711805224045546923323694410475990838754968436952555361133266078818160923346562557530701384207375880065745390486090010249286139135796610024320660465484938964639418624484663841601869799859142955128283163635917443106562133765505604998708552599317633316943668257714870690899292031405739685354232396770313737282241876192048235738176371393301933827171857212588142428709757921097070070635311125875398798031831845497679185134428452335637182509381600865629953508587980298083512906325501228067475545012462386657680386992267412306085420949654109809904670657535679180270895809624382708052401746947814062274092817339754119973122284803256351780452847681529493869539506398037386199865809029347539045288092381412911951862160809155813073645617435417743765511293625217185564671647935494211691113379231119179996084830626882289368806643949923919875653769824943874692628448607573944409699910931016483903092570554853638508883390733601930667830591912793741036790632101307471536015239660715057628205889645266913226501512298067606567192978424897248580886779413209961191769555443549705656341419369041221994674914989529319921162139872045380582714877040285053257983982454508717074258922114071230907571280443099088073434044972998720089103628595889252378525450617987811614005188158578574051524756382662701134129471732902532424562620095749721199849647528723159969853142839381168952541391182628944663557125885229068990519942582797399158472784586287434289435384929098553021036091307169255306130113915501071666414893481774658975773918267448153341269531100074036622652112879011794574369336127115385663259802811939501204398439774546417312061117017239071599930167254920773109514816115759988918471213319075641715310900107279426743409712110613525147576363876047675548473905025263464999925400997645320948690797476976605614347456331257389820465338320766673339902014983669584817106347270826243319064356141711094210848196742235332307494356649505192746688477593472215030070025423342967752692840526433317477343432890445497941527686944606375011705431808785387823824073051378402979878569858538714055873448036675025421279907974627391516551027185623197065400343398324964569979247054842831932160497974965832497497172883882608981780278778230554076093147194356404338599935710453792769517200087582808273421718473665023641296909560468263309827747283091989363678590329275363726405417549403351003026518667918272727899854438909815781858185287297527790187429308833395757075560390133535648780301684734118434399662733774720071888478966582451881863736339544100888078954627859426282801805134006196285036769452523128110030543514770959529263154259046491841344188122268032375714269917214986573234204248481068945832404783391856265243588760381382963577128792900786704216400010838563132168524920939427241175688627375642514051466430494022525291261616665291017641729586768712766955479492463005663190469975675004603878844121306525763491963338208636834349025698283962702025904119328825856127567282856726200264813115579562681349312762556013329218489263351018243444858907267676216264176426522514653375703790946984515971131490420137931223814061016185149135076309734093507781723039208864312055644868962870193561263032925862561473267369168612256427409256614420723599901755392939640816827774044281708344022753355082095670398439953794850249131659689469840328284961377968982050552857670575536880180506650948974329710882030689438968584732379613255891327426799819161968193309239039908370687788841245076882512410972638509566165263555497077622314081683650167948677065664313701623417392903473587925620175047570707850677754600006567010271557869580478461884416004867785547615783417858068488802360990617784490220045992831857027141527379960124781965351267611105343161843035609789039918392783537670877430968747597812827391217393575390425121363922648441767657846451298746943695437640773494613212356036129615391843370685293534176481596711052230867623609415883396033209702854817398205836471747357299940091028393296055780366083262193659472830126513101482906965994054158720202192984153431076747652871905196541740114592396981038400591288260979728436796745313487936532134979963775695407665599216935050040700462146323521180785224505652740980662065439731941088788174494718735647063239746965929791387600808507407779777060917373023951448692404428722527243705633156899948845797431822794698419087055355734601247298861055214654991707518306265415229975473201466909535329926171041672779028199849536170377675304352216589940559429665867053552561759022395246876469706745588443016610635297112540480844832751678782557625807953971198688915327023952860920233207924158855204027345600143203346160339226960150234550577385772104239108629228950998263483891451355581159298979588447106975718177900514182483029415862451593304289173462436535781824652614191667355602205953878776290256983725428416819219026197766292410135296967780798365518752844545577693141982364777650614530872377807863727948948378867503556813287876576941708439456875515389170389991467197663601638527086003494905172878349561250572403225858123992514468648818348662519596829961660396343892895577021835730377693424120048748790935917887368918493480245826923170659377415680610529280178885252261926356568736917772529572529567330442100981013923705007828415123625740677991895447214491722023414745302172223671081470279136778023949452729424649873144076279916461610715430513920308304682067717317981601320204237271746295734214012096699389366716700200954652652057637428239554755065096043980609784047612232775211648197737478299422589957471653243130415650121185103879894742288244152706497736503320794620255024885912783333085371871195140276344941040166601853456158891930176870307428894061351755123145583038811245318445951773801962635365742153474036279437056753647153182981717075697746851136531682873194580799631574597220244476662760396334990245400429985141909214070405244004397259242379027843731249110213495494250405066753636923709022043296000480488767386600304737559290985105161293943273645686553375531116449801669917930221508152369529346777786675977924610045145726508891036808458420031255883522853960461117954340784196010530667023993956945089048875943726767266041738935060658256731114607091244181236459893275867699709372058802831584852569738625892454087143131720944676265365567669856638895851160732836776522563537460030979168456704701906953740226812501083984046183909761554223489629071675563290532557579205449092422690188127655767819731170032685175911506422169686414880614709487852240300717595781046828401465924003738139091319789626704299152613652284397455508907550795914539956741021613677256470272770930539529643513940566916123146774160608369245814003731685106737346642820833133935546272010448044351501628008135112429762431699143782215747397170110936110187078825968200109585035657418328550556848301987932608950111246315014221224954946032844319548855104085069033693343197987795059986514336713203671800195078577069474183343078625477684690875061936398364880878649327021925508057081972265726523423455544587060664953606564455999448166505822751072521470037824051584056833079743239266230208231819623505246686445248568925780582880657209270948534836168983525716324334666856101491488969722411060793784297607299439016474567276844721220871094466575646600771337492455326732754529292431392699212663875855692556692450600249160092099238829604318165325125685236691657001346842948077140744469706585837939414287137871106509894637917412718305874715708284388581238429594828115140192852958333741095821642377258889685956079395131277134874545844590651400509361829266375349448012802578461979033211784245400723248737820173971984125294556028525898799876950509924636521239369407836158634506242803625905218279080290258977319859370401947898930312411194173038367722529934028281678763428580031784068867556395957107251211972183846563020014455783544357992832787660928529676820391581872272609274382786651153180724067386248012457668431586717680237638204029489602613481429774734216070385644668863097253963355105221933838721720592546268468060918683416899293692439240911618495000077367215320431120681040898661643200004913709756205814003663439208871583892482084573049428028521069524340390207199428203901089064895116796963200476922174321424078399343002568152435877225354686254966303098682878755040173425664112736121269210363898879702710576191291329921020881428450685823123005910831668175934921022485085963202748951772097827881027688850675173201748894813832074572011770410063593035278109085852679948671957565051290237181676459670615941546044393537037457379576427173788531599388745750662456580261377428570075620644423210051186344857423655550568332560402336999343465192783375501822192507780719906048890414649665724392098429687201710994635985089831929307401901689308691928732238921959371626565584603994130042126569171260938370011880498745024796890335700225335508568551746541546850220327881341213152141050639979135451273482215299054923750731692370249705167274896273942452193693868312265540417307196730283477602531661521021999073816848353343324447956592565441932599287978937371166964861316849328016088345624166572287993475890422276345870099181663618704077451397413311429937216377873777142452319694758391338196839449061659356700879497048797920042046870370770338196871748751518535881285470471899397721240984168513322265884129933428938502286434954167178852737164407516015184391360633631854020964580573070662893549534388193425657748097602278133150766593077745325774433391265388228578849637320232606175486980791093522652592383901751255101572385583389036357883626489829238652466813252703566595189036017780305747966522116766324349139800457891939966508780232692009604702896682332106984560453714660236193518203655002734377318931518255830363351057983884888557772712354043111104096123677440807546022213629060968777508380253838225153510832307037799440868639902724091366007245008830789116870178311362086190392213494949870532786255524366205778670370963954575175196246697526500647890726674169562256393617895538730138643343837489141510310048795629141200645080146233719287240808593956873067251200611608997647460695533561305548216533880242849857720002429265572475104449186511482179732049191894778370159630580344212947706141866101970273857709073777343171821952057339636728100837475900525525545966261350194781201525706767261081818034301229060914380764983234602183490011737932280121958398250738087517204981644272266721534858014186145820932928337916013555796702816855058158054950081482618588429684443490258952683780325670046059457016426804607801389522047279612709563534246564756222687969319446225171935809685868753523090577045608856373965049091322060441175481187735271278021656576867840660463512901084784226267151121205940492478459040191733811199427949037241568066657947330368184962678286632866299692593752203204970830360212561213531798948301589984624336718609508240192495455449961461006893867694799333138546530349420364267011773431508879962087920201460805091285412531250743307309049768023487106963261999121538783054004858232160417576156872475570002317436274510044500254345771985838755192754606306103205172837636816204465909910572330698634701624566898079451329892629263517039746639978556085197546386605348598593948321726887018776930419804073161337630672811249543761010201386216824587325923780307652069782485842550961389373959614599203983163820077537130593130281667429861513669935838202161560177057856072978145668760930474523620877226391050150160282054491370606254308278932131037766645030670385801241951171909797185383742719681850806662826773665688361439418125210263096746623203392157615671192236518400762860633009050530762844858254917207647140867782044057681435397366788569976590953644655596656895433292416893593148688122647007891165884883575863242716313857008217556316605800005194834347807042106098575608134343873397428622079304182256237778043135957905396578437318927505568036687994258997295060384629738458456617945220476645681196401061009499178903832137639151224627833253911316487827903361293724121620133362410388451692424305697059707465662576442715042042118610550544575366427933751747972333921788540471755200047709090956672257151469517484255736889641627508396045834295460443374688338159202008057989468220773923130729070768811813197542718320387581864737922741109713217952704392038037659515615089920184659377924029696225512937642900235995776318281562822295374327176982890003925074058788443085802593728303435494060002893450202830607172200282108850762114814681076840465085077333619546595329474611363692380442022883062901595461545791038372270908060175986894278024829578938403584496620245106510709772677173763786009586530502543239770877049159547993166895054634500569972340356966762963655378349030221656222164943098577141548101373534762537609601131147292047146629525957385428384978838835168125014398278600808841965324240381701652094502287860491006375472663831200333220079571754484894444863129608124554257702462429195004452439334473823894567570831494532150034399383076030597125600739659260660435951365368293774508692297394123982400583884701043431616002302695863218386452622975204966617958670733817078702664523913410680587156394318683141928129776014676371573016045842283906515248206747795199630094053383482954741237862045488712467041115686469398590489007894944776292708081232503846927297676174748655209103444842234920583971849001495509387023881698327283262941214655884330386423591362945451377194939850626709398421780702396808968008882266167308146522457472864847961563983661581695695182695517437106911267823096080488973698679203911088711582959349689336970671941911981935349609255724424093294333824834517687386819905917597996907288230069208123351884524751319032874118647926208914698544781212839069319000890814368607693223979880347634315787269906424625858562432713142200950714229778328998068401303355206988534174197235667078171657750658883260532119692249464631554298837947592601672505826879170368119302553388496194063719128182980938424764842416585965246556574694089802172130267902227943186950684386876327845946659440369836988234659635998313354723342342396598569035658875197552619079715906735759974301706956531608714290405606655475282263310469704846301741749920872930440314110233259168726912119664216700226617370203863775295178104408127499638339545939936109062176102376946965064863127673428346286567295675271722042070703125966352480344845775435584829721573882171474548008481003855294402114461698352564601809746868080170315288423780603639973033042998160176184180564969770248396080893160175670858203513186416065636565524671490504328528025712120991668130073338970627616488341796660260178549250941955702360045281854000544902779288337457452573985216725876284985364869420328517801930466734548229598854291458808379060462373374796834442572968276408173012822270636462140537251002167631050214291507010509523332186290866937558103718349943856349063356455502299955416335863939291570593941501418124915892396050568010653051305947053468844181827614170153432134424662929539067584027701027139980363547013634783669956580495367845277404940042190853523166979051766245445206242942100587003725007177069829746388115901265584424897884874144527499377906250526029640261363794369770662951724926056536104659513369547969136893810979791317624453448211850750494498160299902295784118473100605330103108543094091203219145395817957546935253715987057244384758178062826975417468511020026439268792415731493895376325925638905402685583715962914653491956194601213024463134510210036563890534435682269399386449479947014981116426817837591612240119699717434121923353860859594755100951607669562217777307009892211481364593673209217593337356295495206331459842855245113451603882585201759406947586813051286040163973212109365333653455235306180776452553471708270418409966915396800155949215868288973287090046261559158842625527843122012279567676954126110230477627033842680656292691640426328794917746615320263715398512111081358755323668046501318418229777790930060309934165303749289870651153716831150166520637024041527775548807661831426374531753983744199807236162062980657536377569124523092440809323897221746460174208681992192304156604707398286241301767910013561691123677741489601997413638769913035987895317347086304659877100407987861057705189564113820865403647511785449820918300646757382570567166932702890784990062111847143527974039943627245798419245432985733223876124243027221308316583084490697197969872050393794311142115005301813103300180467409397185621883374755121097724277070539801983692387045500318838979759086585140230545544470504153562457112859789350102691917754689292551241732075370872212961841865501388077615724376053845154972471149944524047118094922808359163694149233782587779811506655920934174708913605869030279397562731715514525066176283766392471826601883436626427991679975190731426431382584987943624951792007670751828148532980587549630257561740328887952973945410764433411658528221805616534058973868800740911779078929787008958191757890741370591453856369218730001751513175831692055316658917535587902260949387342308077798821282652891785710571287081139828154301065478639098372721767499348799470693541295036604840602808252910334381886050596379273860295255120918553398454339212111171413859656073260708037123378076878748791218702365813946500502002426439467137526981785177264562701687375040729668748524497668810872517718227134804821979200991559188199735519881627055423522068103292133134242411670453677210932349953240865852015013968362124772312086303235180302854293668527220472089325418815906963264810947885092849367782083386368925597796955703289189805070670519902013074024479012420850238341463229857332527367350391688166905968296650405163672224849741132685520660919470769037848530780342163020753453488582671676730064216997159586827922010651216035210514746757777776320471138494935414473633192207240502700431541117186934977537571285133013217751796109392940234442777088911299210975802329824412296773271656672572436978288957727391474219219422060889240517612529440668387045091278200601330563948792399737172395868441433403939826345345041931770584481502311321453125517254589185311905710604674878666144870031364653180684059667396666786590497655724163847182709338381261042088201946237160598342755243642699411076524537132151928006830616011374648793261154203036065742123415312494892436014865231636598219601025801250241041383290745672479649061028644321763726569540261486619410000409791978140393514441113425533087351860912387431275351041069233574215767197084702628684329240945839534478003910106874346514844974067789923930271060261201999387485395574363067472479613430479977549399496152345746829876619014979068852682306555295807008076050835304206653704761798879673038605230388772273914003012415414924817241060949202240629051304283906251102017813856138956670884411953454756469510472847851335153671796384729226030652938480798825507292047060736957516282712791221347251058012935094972871137427281017617568602312085814891365403035688305433521396354243533791645974383415569946942403012655302017460646155840902710094752715221305142408240642339050872919934697487377522989962593546677710697755434574793916643911029730021206931900302136794253410062667925020887645186875484864446661768007671230395983655311414361488202522646398692608080345345321684808797526855752530462789349868352996732129419576431066856925599313108449455039583796047395202480485717215632904470834097101494147498678197111894289014351932735365836243871729815839896060363340767320522988266392967167957934479303853355234943031361232026630603317085019689771662125629885606028851486552231807621092153662679489670246874127832959174925303826031694319786420149071989729255472598049633148386080605751303616689405716787687612277620266543099375568307649688630449411692027720811989602871414226138289719996786854431658661788240182295036744690975184765213365352316315088743840135621292069084899145451628820257386077827134041120204769734841668695456187437520504198355766513807855761706075271017598278431400772609924081861519878149476955014633276365381015358943856386784195906871673387547039403471772003809667190662985117727363980910288509771237413538045793082854041203322477875833887996360111824930843529324607815162484286170844776684239675110399119064543020990724168328864334156783448578817844726754829259913927639443998966349800874790024537128413665947522243633162707304126128348728527310089209222077858756522460385358805477745979610106966261053486099550790446355449525893303029334056297686629157797673913580571757945293243361701159546932271563160325901827273139524939941692124936879925595861633374620114662944047541188835639634788274198200830478002050677229836998398414351282961680379321622299562437294743858000519974525009068373297572719199549560074437471965227745315567840554719144262699667201252311783245709634925266355228586310928793043744393079883510654042441071260182991548972113068011364437516191085103242523141331898226073341592408380526701802673775417078533691894828177473167788112060471175628947246935070552076907441605051221992384910025866971572055457618193388078255871924878301225910499258069852656524597624653782970921048448339302714315461522097059558466423639488571247145442684863158340591615751019671742386580497647189370200036037656738001140177681158285916035091513013045822021279443210374964640170626659316320973915099802690957572038170462115537608913115369930145516922946053907469667138664702977979921310576061644770737597752953416728377633419045159402901692170418819984580644578791962481561258715602439578602757429110192155625609886161729393417742486304110455576304526272126304315229848116769646006085418245441210783963895729242439207920368265932361806519127049329914040856972162592897730191125211351362304441548155396835681043028901241189514531653175407164294819869294830764811937749348266366678175987613333738792230901952229569234791580637913001151859798256012851757086195245893787550020472717316754485901034425528783593289629076297440022755637289178479527946813331692903533985119816447144520446269738807899497590196916518176327330703170002773722071150063504742728926941155371315121388227500626714851066579252952196341096486680717487878855335218333127874920206560146760422754048544247730127199576899701228525843158673697297749834510254920169680072630346240338725522539561784282272393790362034487788257361964777170017386545716311929218424678640060365766735883842583428751964399995343909829403280897987564223723033227599028245723606203406721041250345832014345489591680572529591219371871434488629533667716294976261076953384327223549056212074560070903002172627310412180996984330460170923265788492365799308229046988927038784728237087105894835670603248577787221504129692168705504842025239618803027691425829197062871344503404601967891258566084282084511299962976747542821939042123894372340793650136250719919273575456746033533301341625778147239369040692826475718269691841897844242737203532015399991904058179514342869410766152613840352607556012061164503420909960859772948243031788768602596954196788925301636181263776025360378320450642798878421957900665212438667946809282477657826127019879852758545190037164177545759318679119753797293800458832821768062752305150252922617652419613180828337215444490523450649707009666693928109796069268509228262340845906118225328448359542591555911774634836284424779153383222104848668288713340950689255545045905032008822750688984972574641935907370899003937329683940803215414959682617300952975860962008323584987734516302290276545484436015376071968381030864143420140092605693330531338516940405090240479000191632334399665250267056419088089635372505462679843679657912651058849315230094855726608626033814858625912168019787096211660050392461715272411628144778943423461376904688454800476812500403989386179706875731340606741284990435287892588406382110986209637961775427434179070434009786824494281901378708597698515712464212219091655226799549408834694713628331165064686406207236717316911316564770979654187995455045970290455301738027809612436003241171555169600543253927245532947310923198789555212121412341167894140648473961226579833139377894920471985675958125194667453566355686595470752288792301517113683875092949994414920914545147278210807759980891518270958640183289396689904391966742335009657369452449207293344919769506766380183269258959600190422858787008419926483446133384089455053840927121362955411880335390112752870233261384885761958192691977685301941528016508658568861415455634702572414304122485798074240307251983905886640501389159225840592527536805261445190664714949150577441973318613839477464345559721465659992632467708139567827335230997430360937577022576836975439926161617681408319644430704410764279051505720444652898879003575439052794213474946160131760027464029156123379588136877191029068461391897335160355335797952276593385073943757675900996871330613435034098117071684985356612285980751420962029334568797668252595375246426850831114224917920788020202683925688591283837382746426242785321319917487442373476307465771664823901402907134196840950984185125748267026937248776552536147063620948257799846816562224783834251359808577133644482235528055198194225176955628083575364807051406508509051945723471249189763445033994761275915252771508908522779329052406759443210587054412884548251872141839009614776893796079049437430137817153997308303028060908531262222621584528581171642427665902788867336156363925164780166696623997151435625244593234242233782536934464755294623091213589018198063123957156662563841364655018225178893754367464053929593510274910883187697965325075337175553598783968456230440145233909348308784228397648865004922603322924879042712407792493826264902189990015349803569373723173233710487624241924049049773254381390405802617545135940561653733232722806293051407465345526101941618793740474383723751404903667977757667929786480517478288838803250514978616542008011470668942205572795784817866191965641274543509363213554085096154090482947741456593564816493037929820980360132303122393953864222200207400285263476404572786848581698991408206591738836203533068137126957678999045652299517719513211851814388875409487597641961580017774022318306790757882578458836302372291800016950412301267106785061235502017714583632841724021962314530425065192612733355559300240800129972896773609381723527254970950103505958922551105719673584385675358782928053284796730315845910417685055512253832704361675733977619973186547239388468100263394038167019695556988187659397293751293606150076192751411685992998895245072530104104172579832141505105545916565304929996619308411109579906302607386623142665367500917744227090186874393815958794196517494088253895624630176549608007404979573317617690444723802090720527678456058433650950676365965477233739373568184951739264580059347042622678103692378068696719186802048665145452721920958851500723971320756208022488319224440269146169714166368565064044404585614957318981642912644265814108332086276291667632250035925033588328245522443875053211317827906721185452530762921141483782800885284605710968713348932969338401216748156690115579602763981737642787850984030898226469433312154625184459550781504705940786534306648445498048824518217212283589544371224370515121932057715278452719756847242681881694270918126420227207409201054661106819642714306736547458232406713870244554118190114310164230810981203179859879143731828801141577573478600534287306408517587876739422580071812511457156188613421187245089469226270514706467377142924668791756569609156545590175485482740887981276116265880943294403573606726429239768771680677877238141424937126863008947289675181020924505609846494617169966146445570324051391142830779825444671514757747987681435441734382364485792284759599666148487451953966718603929637279204669561642973079489835719917014012194914126537469982840020609432274399747814583316911653156174235582742800349812417876588101891409233233966040670594748604065285225806601111734470464736544151611048555395923469393962932099812913084188635957960526632192306423945581618642681360722385597645250705296082001143606558485818347430697979113064261140950290201054740678207551100279017949073544055419943548274734626280224783380625681273421382136775278367173129595642556559342877086617121747946707472088057149479147173293126205578282089803770369636693082693020138028601388411818194350596261346573964319124528466547965386674624779195656867303468049203203967027422106493928557404548450030078118251212071838210847421294938392509845852320286015007092955328024233904439686127123749901170990735665742002355864783112019516031632321952786989851422176248572541929679854129641862552538503424776261679613858925581204946069374772966672894855221434348079489996088334694781000164115510270753548151956212742412319974308155834717545282945953848684482161284803930879237629112629497384281168147245949419786775491224185403105374341147891006452185585902626253290786828464184019240307671668014711147230113219506679372732423819614467664739050944696887248433590563229049586766768326255023184108543747186039571953884181203118346733240434237575345401496239023034766437143813036869068411128800279965128784749996663577054615176113039969881159364354408972968917407465253272255402032407954130587075940812455879013053207163007558630709510440738142008690238602057776203066021960476731578225351762364116008974334783650756151983686927036769910258738284528862702336834345709666404745811379921985655447209909326294830618020996595392707579572999263555539830039328160449483034716665734360834123054740017474209664060366268375239979165673760455487749644836080969731358547428469208565796885768675905359693960376219215783969741517367019348414686585793304598311987911578825201535250851746794033375529800130257573571715820625979306002898774621504389672282106493428234372434692084578203231807716814188621248277201462685218182507307085012022011428676452276965841765688549693137663163122861992199733275931149463511500243455278890703567368761912370713933630947574205873949022475230310837576045748431138639593816093588400223305158849297892640857556714870339714814325666011231806438751296506822296520310457945673570922358851208541379210388207757083296586705633738978312209197312611701882381210609602117746993440862648810422294599709862486121216560628302730027441776172763542013671384183639216995252754908984811273870018061816251224303575426191424665879340436271802303547706108814518712740765513223786759369000121208429566324081837065388784843357789792292901635663203211738882028023170008762573772659785002234355709878270435553253997872792894903709629879239449829183303561076104653219520271054830999889027781669763026743591557697790888681292382408151430677991117654257941810537740784237809472169493387234645181392669107679938729280702696740407732328857255803684307361024872498338193091247679722803246522878808357205931374178869298412724817280296701630473697077650627587231946026153366345440081423537827032726595246074156925638071652320628980682620984674483353437466279536006454672158942256028328310471603937706242673510038157914031387013558309385740021850150805352396647703919689132012822308559909570122539473934760607114944156679532219124141099402821720850779817192283525815302403513475809295858856737992570396942004658603718102800891227835257143357843244910497968037797783443602702391497097402838346723260985243971498352074942450314425175538821770167870277011716926107154172877719084182333358794497177361084359629228326072697575138438152882171440119054329175065269011394782821748474495685925709550666735371476646984851506531175168857935494203707667078299824835369869364203451278548176758138315179537362480053680692803010841248468849337140599442457210571051249147960326530458971343584417584099888341298836882506652830193310482592346172796700410018605393914497210753787936803724891226489579303363097530950278463974214881696679661662516402950382337612024575129954826231886707855794088563906160325937174311490109466018337667245395792115399973865267511348030168765982849739215505941761494698705922969646806205866729459459155266317102054631538306752550614742101998722509260728130190131325914115493015263960253369144754083627496434270122815583164795365790990784175883683356392355825305369657156850917887033555310766527448413302701447630708744232133583939299555220908322889255199778925494742491940015918580058209149069850067479925382268312923556097521273937070588702947115317962526930922472558169373139065345661184057455562157248787984130615727636398856059393759272952310411626839105122017172221067639845140882155050241795368224747544340571559931465983788766754160871085405081752775400480174987159735173560027009037063238360697903598764883689417216556778578303681771655850972868442772442597178583154807218439417316919331694768181827890320365427502550647052285970046447208620717266742168316445573285304846220843969143921722794421464703133874137406223841298606953743457877571639212454074994375498800663640546914760002843408725676005296842775411325389098136286906632506759620548550777062545391834551230249583299685928625864085497918908910110930716755071908260321242513616791793526846167876597529998214698135805017185682963026484968892792551491388669565136553152320542235101312237873310056858076083770764028725842995993114049889332487417788539488387511007562900427990505347735751551569770868740317105760599692044736496915218631693575185428178434449113546582079391916735263813590631100831329082324616556352934687779039763627699193293663160743914727999009641973247135005528731070508152588474440856930529991267060830721930487058831664129423923371546864618421184771778007006299394286748664373471218900610728882201602103980503137890235840307191681510499383992510260454333638736322772517972784123533718079206163520208131368443316766512403246972881427034275061146262112685464383788313480862124635843370277889845722531518162442579824018182965672721436502016289556401130435731685587605724041933510088358151952549339573112383150274408593672972392907659334820723203965768586879626246268856896209587583174417189798249846117355123842007015301205570275706267661620510059301409221673247318386619923688427200592493634508112895468485038675300056715826823913068648298905268293805008078747189938155569148860525162085495429803929793247402524927532945292487868274871800814872052081864749921831564490516129380538812939077951399066980978220490908351728894701121652829246376473287463255278806497482129046435595615671524742523279038688163958450747780254609900313286617523067264703739639165932038308359934906791774481996051359787124862989304368094292084459680824606488345491624808294234060663625518684833814402183879160266328949710090034547323195191594286888848274741480737027048235583033453367420311878860807078906430312725190314191223745549521550017800460557956272517729846110866585247268263963668759032304587439606788090736655197757473573540916239590993979326924778713779994904718044592007240437987301801055572004202703634058493481420477741441516738490222516573092632227914817599750589705368894340168879927080430892250485801422532469406310679239188078526908743669543737027506167534142420083993661906201834217275569605901667728325534800558094946485432470723887341031988540758148098168136520715217192912493959910191529680171658344743534196329735724392721133453037118022819212586595099006831752434888886826254221317365843240796855166685403421130346909539348370925013813201466260929543156073719324858003840795375323551878255680094007905325305956064878792030797766484567954308615612676356341122633239813606004680501293018672741137499002465852772617611112890618040054604022149402354129589963677129371237978183544387018866995989498543148355886900629279333584528665208258200102796427951520238517189219610030362834019431372911618688250148394267069535115152587198251534912781620569068194891398493091932671609005398813053898535526326398322682194949650584375939819050981277864208838097023538529794492143815768531696988612859672116589674208795054001111768693032862264341110779636291475892644420299496942255410672502692948929644254089270341641728018903443254894575385549882805112321097623719954320426377600718255959849038804318440386323621131425973956723859808343800674853570651732524856379173928009443612183722932077160656314124683468081750820605685120433834655903487722273126976536211180112500147768664028506677778684612043536486447392037769373222165334301164135580611671452986396670220697935863939475646858449982988687744408179977492593549921770269467691805508621227338756940488615744832069244168086990709993799262167584647095656266674206923253727129756221112421051508534418083995818484165834267971957908273581287404037859907599775458016291333277243153099626198372132586734879852973255856302911741598189818960864610295882405638013404711097291082796498294058685395839749680607762263779013248937843000358453704138283083993781515538397723563372400160254875000939732453404359142476780980447934444292323651686041464323872826786047307961875235071957309113126371639624576654912104628705616856086862814393679687821040183208020686753462675471941295641098133132505005379883831450891747007033081280188357310277903338325842216076608929045599535317172134050530198665495163271593973560426866758175987619855493947719683096737116086068571417042749542231356338923341961413175991354197408919728146092869217474865484410743848845525525217558905573850279311027076110019965321333546288627089975584306541726872479813861913191698410714206114203580903483908842016686266271600015306260545227193597453446267480303166081483519639866669067641481142411403589567037689571793981022981538049344639668091347684497870643982668948832363859245496206529698685250831065789121077288063587122782105492436922614557751601254136788587047556668609922657016232391251089598609670264348974069575255164346304273479581589144675865229603051680134505198187737805063088226269293492363427713606070169949562601802699168901167901195847242730777105305800944147766582982266251195163801051896692043377644153012878383642534480563055998521542576514156669482745842209164658914097786619513178327419678129875792607645795724911277129896295411568834224798006450910752601585393088847817432282024318150925472265920861717439284443691576624681437894718762353035936643821502838304306105984052285341453954177689070621200939570900220410718619358582917351968818979346687126832519441566153926824507655469575852840868296231748061486054141407564160629831610715266229041610900894433852834115449343294418746847461143025656734555502509561091910265781389412461075360033516813207309770606969711571155696511200262321965397943902154213686486817161239806002557739902912226625331272870671959513421494147144735129611087267813561296203262745557817207264216157688281183427166173731370900137993799456783727795082262200602915797917391885739226717789074864949401131740844341963666252672172479270554175619569259201299486566258614151903749419024849610176173542621680288846970345748732334720635080638537850917195686740859156934204998351952115280495313049899909549212665163569070954392726251637292092673098430675940394850190722284105881858287257928752867100690229068578580551686296358678087201115435386126174286287623013466946797281438261769965191613204388119708004591503367104430735399044316941812146889244878786176236962402397330748022936709462506699552567196157171189304306188554062391196446913188850485235520821283772495475495429889445868345280271306248673204551015774975402791126149848986766900476714359860568597733944562834344218114802975955714891547833307581617574538020224116521011148318859923037643675162887645907698288191193951065803230826065421625735072568423191822605675935336520456454793589279114471693180973296471624860900031278579925933565075894926140550973695946144770790829370248132837352526731069824935135352786697525776353611508926839401740902848115446407035757993597082151003857077937451811822128703080824199456945612664113174084252061656975836289903619010039509490001258612495396962871307652263191340082588828217461382213960906187550736195904787796246629372336342498775326177259544529004585792436927248247486893748435581895321098763415534140474080303706724113432009292905882290776134742496096856561549451423279492661325590883903520020446157532096259382408051003407099829506906690862540924983881316594937734756508653143241714444974182502601525877757413737746815478296995802030251269009586800515933671723300523256744863055555442250980406970269685363798475546758729984971253885958429555602203252363389995980794689305837867075128838840136642814787209973510342590509214835290723322285028303765823131611445464492786790188319550197873993723297566649010535608092818597400845220929067586166847389075985518225604695414461171866152589899699325106662818710972343377157657142004080710844152002177619828761157118509400357036953289427069383753057623509535559115818756285222011237469063287326957660827307122485088194652476402432769230896875431250933707756130583473498714573910025825441706354575179173064865538270024111411222336959260961848949667028502282468792936549350948742033113890668970670396730642314998308198821874226709133062678996602388359732486291500007204369325983452167065548784933572240664483542320922251310581290241099898042155954645647782571031503192733554648446630847300463030508263152228083292309395019727707214815278641892226004822739011046439043450569780218893989511211051334052960708622546629810975056179692761549318453313584989574432107087270608465149758421881852000535264237583267484492436557265525936352074298250030350338764697570683349499333530070659587514102752953416800014698382957756112825488548474390765908952046088832050423429621122942829568275514062815988859904740238754024743468123589592508028941405532902957646350227088996319183087153967321251853072216877957912094992739690721889319223805309963111562473738231739367090349025916358882299319448091522802695254894915990758767793203075854609348828608841233975002324940517930626136575788164640331267495405077489451408125806783361360658734144081553457266071814795911827144107466371247976728854768158213101951702978772435447400106457601105414066877444306005108280640367521538873839983993814689793102132219427760173310264383108067941663571942952803173531157747370203589540150258263720764519520354479362177818650075361231311039483916138435811924221347984598313717123472275955763729807822800609125259873061304527190888910648175335817027880157937726203295795583848414830217024144934297506972325479373522517024805247444612740361874600238719190898929969328828389050190358302129114683408412294669962288051981138344492555460821502831382187851065609088315909998233144754333107625162832095258515410351399393417439116942435116572722346548420140956900951695084080914965632936813888578985357286376214867602750663169678706306603210622061062927847719749375063941361454864812868099514427821098112779970994241827579347284313967891387179292451792574056843869922772204839219474474072464588575568358452478735254860270946809039318401516327931976000551563423812077934679029473628956537795640517663550372269005258736891555037666785110847820026717924238563648513344020218482687207407217294249328902258446148548608616996744337897194825195485815401716092697166364841372567520812618209151463509008925609914640588454972394635058964978456542603100224941615017598384549531270796118071321335111184144666000083980312876330225023487445084793900963634840921574035218190356737353037390022580468020030555812993910530779563332007498624300565861964201855334448975755873829376010451261068164083040235662247393417484861462324505010234390029993119643509350297625753642702792871394951311472626248594094324496950982590342144052605725273441002443241919943177680314392224069522733272858755605812545337677266082435568679229709687783192504438255517043735599815698862571669893447809883773118752340443235693534635815686078456982932978627845440593044553766823179588117591482557243326635879684558116328890495332031033049667934496957452362839994122037101127615744514993948390487504435345617570540931630837202391748780801624762266468882707557494065713073345062788430530258649205641290565540317203099368755410507477726288776708114568905193087234765015424811342634850747952884071589018772594399715585788859028150691943295384302829568429083894090985848893428916332485224895342136342160995679175447868608600262230702723238322092712739316404983794771293414692481683626781223238430071288461495305221831822749087428931237893838787969925974554400235182601402547845600360711771479286144414872238817706216618667052094690780559853424190899912451594484919231586532413434992457394196915321609834563448116526897530676827746886143709362301193247231946525694783138746740941590734577074673945046648405476968081931641933198789388076754870703395804563100000089789162929654354930122674250527591863558331695998692371361488215524341449101484997670489008301584994807542109573223134209212651494964185053209130788946224801034088080905038547808076857247457715407225627791787289690731346778029812501828614378174743904252786492772631699585508267429770873635507176505066002260309915791824401040803507094121994270082136940606954203382508919897170164590808777828933010382761769809121037884189068741318089096298836508100386010558521891416071159668752650108861313712714689386971246441535655457055514926866550876703270398334492437885775201970851691037161952515096980091898749232333358355805206647304500798672396878204137149779884545491477896998269760087194574041846958104937836440811160277567784670334368662302612527779814910168672759291491704880519094111377983726074415535060498554054522623605561552762495039814431195232482313584543412442039948140261539999575520728214112952659908015863252633023559627950600072091212228644657597358211420407744341739107347185105722431728360130205255225298507316794325440198781656834946990060392834331781317036840807997333080869994592929243395247579058031508565477298512197518181830749852457734832368952254466228110242805711943769643053539220694110204757412592435249748084555070320986314318996521793999111160600504735566877922003661176683595077234455391059793828119137950632500368347865542294702798303736166497371473780946432557964497054676971732790355966166891043784846370865498172185020524667637693787680281323584401996441060102599585067760254760767138117083907691625477483506936627467460831161675032847392689480739377608580281643509858068917221659754327259101335251219965265111929712265284467547770008757502540094272606795406820577265604854841781390620330694926809323679262647572070759633190713600784250710779003840961827725298070576263509787469061672861460993228401564822325207802649548150370884400459329521998794667726849067094726163846892836389810893864936795146817813703772775199079476702968907014324256225571814954028982902200457413827160645151238310594358090613322728695118390662638521410564764490925866016175110240691705097090731617670282305274192462464778741906336754989507881805028550195896196974776977543594769674420346259116767189234452108430728894805601271737724820406730962589931833913351867561801910291704866508445249572755904688470748799556298797193459366767133427693915546128963185423034714587299649353143584434735326647844033441161461697604512509881761782060952973141925939452194913456795455539639849237876511586167131730664602285775704924958650695241761378052739517717552935452850009540553471695369575034762727653807547223364435821262048084596519147598702369247915888872385049153731814955989854028835798105968826996677852490068545611121828595930425811642814299952754638803378309786167525687702052628183775066537058465483638408286060312573282011999839756550915710662077626555488285033134992523352106882317538236381365541821298617262201611881895229116169874887787566018693096097340680698900642636646989346952919446294968112487880249840753809059017576357410883678719708314654996497397011808445527723735006688847041972405421327090750771532796412750869935154641724609398380826543484238459634092126647029541833204208352756193335206699914772765158466647087915179527376073246689954967128265413654200599079144398659578934613173190300336125310143412430688130980059188986137773826892336629403597196680597279314179837439102335880141892954536527385000627535654994160902960106775887353532035164920688241252834544057600376806726357673232853984014345185619057489986046124738857761963023050476048008437763712875258044895118143275777952409047564653994960165572013071512727266122415469050144138158404013929385288869647537579933866671127051667853108490581588522095205359424210356044857487549586651634055817613047570162309978904344828331924954951316713217756876406306427570060170881354178411114842450464449459285709123728837794997879148704142154823149720785662468819770609252586458072714047100200532571018451222833912360099078343205617644757969274166341273525355675318841051591877274287846490331301823221557572259839672590404216689923225100940769163861255229736496113176094112122400065676370612552439610548132259052831107605373557573251836058309748858756016500118530261744790061582984334056919292356756452510231555773688182020193017444351847975200833519764453977783157085219644464405069544555677860256719183915711725822445079288962388329605541816169936826887905446997656624068528777884420718161482345189727051028803868021405318362673709170846601367949424942234129272379766142679974265582237678994270824695557449640338286330987756786179223711105406879963450908974130774636138436390334633368880701023564787480736092024806016760575374989508222069274034646073809905959084273813159627417363824941851106955481935176539407414420455240222228399912239400754807502631926637615560904881526269699714867887833356218627793389830362942304286552951641908115217367050678018693564034356310985959340569067134754307574743447697611691505981091092368065663994237930555373025653879007044336166675733447181676535404763714520150506001947763961718143834520458086678349456571459179968950182227240432757292246820743588377042928455906023739225059531572381149197385680325605917463052219638735242061588015543831336109608186813698127863777340629813464080853258792753146203670538132177052451703886180125948714375890396261025589808808814693938129359810082242057120848060234058723697459320389838531890317419382609058963125009000355000473458047846903686137371766895811505371206729249198884194750084756650543245011489139544896476055721102792057162959994442504912573090211874332967732855394077239012925471944691658911155989292525693529727735376125068581149967303506205375494779141924417211115231262295618949303166718324615841048729073344357005508894437877819874429115651708653810812229031415796552207207978187491148792875564877217365038386771063471429663225154500401500082800654434316759466338100436088625346351698930272963317533114942431818442038299839035765156448754938547173645266431630617461441881735274757726706304712284591094029356521944665967369416185968670214229343680364542320731853389276315276258305058053333423327120271307395198238112400462785253310385748252495197944385384032889208662001801012588570870309256385301502246542136376450980413209963344732570849496047596552748083451944696410917976891115975664521304996215907553209293592262631053430346026509519078453401887010451830248827938983682930107100669614975958523372591286841310154712877780293389113900122202753491518715324925054620889408797009146647732576047943221444026045155502253924051509310885200351756013567270375861670098568755450115715459446927373270228334666080235120190826212662574673652312411095379744436013641295817255087900452347524706259698102167978137642198818998444890023810441246323820225535720050021846611849088759797770093441861185704211457245994583101751889739167342794206059723483326503443858982492199200370605899505938200928210672941742061568963882243638424459097266525268222879943731960068671827276267612784668975323439551566902916542243815506376621615155251109339467821801356752882610825597667942474737266329961243568626139433090701877634401502985928282751670578364427930101654782123551764367229671621290330637684849217721187246675491607066312909085101681079877212380510829831983768904543690988292231210828362030575490441271704162964959967178533588702217951808943385436672732540232597841428524410484383077711761862082792335534347836482248142556305191002886046254671246754568899779604647217611743966551983118253820256979292655850692403158959796191849599811089143281735939328319666234867755450580187916122281809491976506317640630736052313170864664044618849471131629118049364153503831400104012078682038812666374867634676989256276491067697661522726454379100159374728244148857083756695066655237100729904820260285667868413977165102792675788750620716316530634743837161548356305529705068210805817764773298860573360085351198050740968283188906952596665891428373332763865635844591464308411360605221812670127712628745415567151855037451350325285240875626057919673209366401827337982467624056006083883188674688783277737846763793068860885823771202197539086192423993222747097128583311205361883260672054189633828980572629285292677062639644609865216632558055118201290644086601961538561453311269758395504532097818456774742663679777801603890217984707438480559242364325994243884667848623289978688269877544508261370696687887535173073955442227121969425816600662981176322364906945405952036495014113204516956488757403061983899651514437090294155849866866360166061541192587558867684048809723666749020932319957499947326898596422754872917175211903667831491022778271173463085642656325594309407119021194304079803329489428775081221617424522104074989158534160350820134170367503789508902036241874421533276162131188991025508091803545261058972252858200131190751793997775684939782111039205684477689641873701687336455455432020143288266651043110011620467673417385094499547865241385264163277566304304981248315011397022580376165196664430029613722712037447057817015599257040485831702563752607058325928511717736166272601980402583903266792716013379209574150937887288094262845407753825138123018129414859900068642657202073856495691987522665507683897326989826706676617758615697948533339466866066227185709516960237795836189264851758226720054994178099978483558343739957374944912094928714850593134358235369110858744667583488136910677218109345498961180063655282658473204177717563429707850372540395565972598765227991673762923071722982969203242129025783001831717947334147958856239652960930806179085149805624661238395872930750419729328466130188449067529293897863505639463493182050935881191922468699451952603401156954552516235781956793875689381850782635641221306192898074993435728449833335418708239481537898996381224921118312079549417751610732107549351920872650153922741170374902690523046650966370506265934988247285063900447943919923557033708201729401539009321694266803916606653877157008524717694678853815465394906454103391838548516636420684040146137744433827335102638393039872289845192686626132219303030983304172985629210501458477926529684034287620001190906428033196045604548339561965657528656992217087880848911116297885174260310138135478930303674854462298961113931879905972966267333838713500646853311788268057904106951139784139747860261027783079719407544455152294915043907824266083074216261151687004260052582239656862692254147135014527974954359682612022692798806046952112730938602301789686322463576537213270968521405262234178519820822391480541153738609618380546670792744546239169492675146380196804019972136044425646739958157206897718055857262074514109714850955679709881323374276566235636087330122360480721996193826527367199006354706550828347728400169194673008047119575809813045520328902862581747290576995082803180239893680324517332809516941145299667936803774992762791514409461651129952345627972401388566335127199410005328413255749996467066299860516890491128416509091721977855733762563025200296849098139370699778656317483755460288829076678742488901830029174604146955867432485618322497041911966657551784549080871090798107007239808013193189988556526430202744764378125029234976478226276551419155303038444070169334755063002873638911103257667792874798770382504253748859601294908113484108912526939227921459908694001043081355659548666100038352790455933109529214257032193051495424771166554377013439530965578873956222891082977711185290993961982891916828967757815511197668992499644289054647888559075875281642233725793610009201054268199036976064159499416405087623885416898246058488599294370747763808396194533824208232314155657873472958521219214377895393698570605524786504477185681392953535208513195143707757447218046594010104912883151561290214830427603792014109179755603774178595045663798832663999394537315654808702310473018398726153075575944132710309701311514524952799867756624396009081224192011989841939541741804765759368576133866911021717327544559211637208143237763099452904167199487034025539364856440274002732705662325095884866124391979829157802072401580998552806197481107581026289345694821670459782806463754556443210230756583519890464401639862639511203222447980531310992102417354103922139678060059725726910216399971138820550287530221326851165680574218618029485137657146029468943523005489268799028044505766809326619326819420702535148154287409396624525298073429587448437562932719262560401045624610854148005709017527459113258890859801208280393068424079180657216190714262235453754572389811050488352105109269500747476079888836006108966436930207546996816300755450888767352972659466940325156571362614367335765447144023850509113469904847635293278690414026139867395235248808818537230064682287443072588765274291822775414050784183361402330747971096542731048147647781633030768886514094879203471675863021105612138223021745956491641758890628123317139916045408779467378379172198408466550278062501741747126031610729807127524080095195926024612627960342254963045607281999314839904467793084713234594703618312446806427345328095942462613035037786936560648937770057273251421484469053593809436948399898379600069624602116789259694752780584601610495879310420896570399252793376214880003802053398448012902235289374464871422715373802350659605112587471914803422468288367379995712676102968606100243990318401861238688813219797229533539530641511450322550814123706023980883516139838059947840096478157206754371129630675677291077194649938207563290262820203250716454543463570983184179411480004134885103760099989530199779297456570081268421914348953211992216222206813753448472006322294245885221727896959196605598870556950190761774646652282414743592797103005400141906653814215229919580867924218749483520711427491923764770530845327428825505007125270696533285045544516397589962619393300870435024017677088342084257218110957889298064469561261240458133979411023794031998532140443050866155488496284928510939295896648211367544481818419003429934173025963539871068275221432418811861392690925879321907668229992028309735518323180699317228244834991720349312779548883257327771138213063893261713176946327639107350085448058963658956020158627048628079358156059188943094538343543997862415293624893574336098751640729715273291247612237732007585300652831185187659811404354251251721979759162849615298639308903037102753618313070052795817540609648044844972050695092166291531565630110081365303533283680486596793722945632874826460815609696313885721744541322216736510672627857238429821918602912592906920343821731320393255861661230100830106551450171635650236778790570614401142230848821905781335187894018008279176596881849030158619686129641380915638400655254625612283000333117689474025021340013246786458429578230959258342166065481384095631356330371186737290153526397670635273474900776937589781640494404563624121754730469270294332609717145860057400372547879801197461605280674580609939590810326296861773499040694655906084677243584518016846960659273947353218851886022871987209173474559270064185039440103978152224068432555791808289912893160199916462762355542190911882591164491728428358830915151824222274597453868600880873131962687931723500468111935046049889951539350857677364082355717327639652792866559774297647465007756181711061763827188599825874999593314908815900473653998548044405769586092508861395404865821442551619370078614519489924671626081968191484996335063858443212331801045110242118415735856405302738625798595812706154374109242051407450331580310845925172514774118181030468445120273739794850567977159441971636965024222764489594757805675269764412198007287809855308136677024344241439290784191227475234667061602382091575274005623641663197633920571806721618236267463679811743576961966383156102600688681751913451865462571852713938384556698668477695761936776942835066809622140104193438914948152878445723336627796540136298886363930971453232841733121668606859238836559229951949320117125366679611604442146237533658474239494456545886735063860801418299645125543864496381836772086924285320139014991531292884294182400874813452663291547079477264679350182221108717962622084318494347144317036081501606291702747768421573887739179872330888044234332111260599362044357533094667702279896806448901674857520972699684547473795020453792343877303851652234064590257234665937271921851319572200813650279695479454018285950206873349985723369446467376391501788458932828765908662927586420758973500233528014426439968137147560729141132758736235681979555115161863069810847417694995814308747531479648785057627760371430120011366953737871769253968765947818007969049628409464320369706344449358561846464731173147710879488730165401437337263283786610212579153651701396382928196930273028601329259092382532559313636868215105299644730338753535264633711120883771682515900740110632374053080929739331483819543919376415883671423411475537306329774511283088234137364996135699371200415842637857130611610925156837205165004915022424020977174850578039274338151992778791083825948273879702472573999264678138173838354042302966287197121251817127611582226979766257455224217489289238873971227872993091551699491417730336612455271703387559247767336635842031757073900202528220807179828827963225116580535327396112054619447677024846261674365929184767311394220684590367163329331380084009778153783855532880430601944331532029388029547135769599870823940122397288460026307519289740301524975629197030674693624151153987820534206287647006134422193332932377508784941433374866748800839486504816961245367646764219726568101978602440004147156786143920788461213368145452746734799900386542018809411960261486485318492830321162695974752031233886962210075979354969810482881455520431173735652606201081722858809475770714563975504058659934982618143536302433681669568384243792811673400182019821470521889778689767862511594694972744807810640771545479335862666440204201875878473294242233296256674363873665111848295733838262615145613393376149083002185182238224073213112232261294055001994447816114976165208543888955869263892725125246675311886236434562174325564060416360160954384555364131053454155743294675426013308131582112933340345791656375435856027885627227720400300098648518716259834484590162536879974614345369520365567684266634610985592528565917015633921668913450744736084448150254515227086783674776021944740041337605530071395205234691141994502694896704962983580814058082250315763467580076864290442468130094833596394528686745625352557652595302047076596155646013725353479039928319838240552714170168728378298896891503022814791324613914846933092022308605462504539833182578087551978854900964061052628144187888944690895960088049432450553008222340909093340141742947594286979039067160666004942045914731525848983858284471272539804278895876624262511742027359806961413308467209177085206099231168676894345231781115576295479743502059443866464750456320859397672932449661096216630066036523491404148711026501294640466683862933579924053688653503504513423579452794146319518054607205448044787770602986887758519125310319179365352190786096954005742991732677112632744341085257364881828691583515577092550360545392527427814047038182785686054830111438688615179651494506369834769299393439637343792718749747696934737850484257618806054667313778477558050481446066583317301148726036136766087884894451563877491007413642439070914323464624120442907960326243920335971746921620158780213377032510273150193517066782405688878082414113140832706674775713922850143614133778163672159271014937953874466551863015741183790422220849503945504410703541819826399817464605849418074319542047379631264765779103442116265592510174271397126966853497024523551718941099716960871765464885570176613175650368162271421153574395234926355778363028273835664803526452689996463503138811246587521561278529041346296547443576081465216019958277371019377485994888969325906813433056017806211789217323450454397650707031888374314114313719802224736370656637609570300043537809938652926912893121654382655845003365700235836098269451297727663582455199058159579691451724782545044951788925675269900851611458059305282110522000917785835316589650134744117564974639384666525199519222203689308546531925593867359466461926600616558921450914596772006603817355068747654307701882546899562330849019638843863321945437248349766303028372001630295973808151686686298562668802640580974219392400196102769148676983795398126426680320248236282421538281684115386539597400276294660576685939347270232380953163748359976471483922257610716034691459863430211615287964162326564152245360714362026346885039319125988944461655909414260292886950677274602903111527823966471969991806252983377337185368593833125503679750254391451541649514063889774579440183251291221534607764959504189493479327991755737873445523263742293077808728644547134991696298618065613076723797629937366286146074320217131026414152081006033285592769825939313883664890253869247596079377688887217249572154545420881927304121138549772109138329531841251171794485254592170469399495402463104204737502676109408245485319278651340717289013202708260125390641185983277477323556916450784815200564113558724943523984876236209098366073154315946460722418157508288505633042270183086870323460455377875939767843864328540239707106081799304495455263171672567536576066169943529366335408678234214770946508114150019406155024805588999134022165010765729045030455921746603902206687905550351427661205498609826642583950407011034957974339940463608615718191438523002873321546727586171462987160434387623479771256539889952801987844169995613349929598731913601439637870884916075968329564512769839471813332103562097015415992910411838510626673196899355258028056625075864108633187555995718358145077855073481417165264753850241511986845359371421592853578326030308944002835170501758233830201565884503802735246914786381443498436735358531924514152212106750162556015316122573753131456546475468509677622256957158530937378126961435573524267491848781688062949221338654590491904110848137043242069972828372915503050012254854816507848367303363647773184923937408924756984596175512293607798910238963625472415935601861249508664080622209237085147361550046636161864951311830880365841540230907793767241570295862579134114400848197119345951887751588359599120108213509646128023415684083001238920804494474893160312867626787236330009582922345371417451201286608379972565473702708264039591758470239544780289795985361270842264984780719607604848894311027819211493031292138482758928339870560935109450086977302087903747778940007471917520462364254092371463529019775745473409059753782828887291597226254293286711617041285645732383403204090679934898122157687597784962621738467363938298873903146928400412062568579757117124354298952664722199194639482983188418355643331792944314740043474531629574008071393537662021606895782400685507797443958833002802719745788248539709501275705064003274382971366982260646914036580393499630476500677649630181994640064382510533183402819878959982312385944167396686983360531551659104903285751634516833101988384468086254302878572077433626804465236184549982258593825385474726735517069586688576106481552773754922829379065219655596798801709085013970307826244282067051573901860926414790139629349468083130704015108381232956249479791234766706378433644066325549323693044731694862446776163658727345664837673560472045800870325091869582780129998042139715574536023869853643615185818462433855465885607714543914002777223239013685645986724646398397499035118865729745837233513412642718915451193881777608336288063607145882438419235077346452794930597038579097730517982125401711909733664774305114745190089744802150083422608894990764179805975617674801170392747119346195026954907922926893290892035009894817929860809641865971837748178606149230616916412300097340474750766492275062915596616912035966385146080975750851487038264131646468550566514754020660682299518187166699959245113898521351145137385603697118014479341701179509564193643164167303775635033082189470446406263846624629461972218291592379689059487986733744335511038246956462123594312835343901178361254444942906056785370825480836757271195930581887062486946847382227382135024198497251255148461347488699717888679601637627652509192180005278388814827490392912138614329434065199374309316523127383483905226848740801447174005971127518851570136515679229814663563338405144650218816153625669628845269339420227212888498230646812948582413267823513134517739700916731472275963078572295569888184400585318745758693733597663920641841889715837349141561039306170284685203235180549125439621065486531297061550993435241796929280315961794752681926338196963312212137273444415224601809612498592621001222074970928365868396591716686350363105337142275936652925407661600105607369956870981148025319210077356841567721940243370679027366156072095444694351876600440496666287688935815199363911869484243576442889226891560814766713323348229147075862522988880281241018846652462555969011708045609952651343246198090858388497649813325580177585394323101067817453098262174704292759086424023159368386023317983767959676754116424145856774566863179179535574400372165925425845817957682077356452138888266633191195369980621208632654563153250735973922776889976227963913992084311347646021881398812302731241172249554630618195661140422121625862079867302159254966508543862226134448183117631972584519047180783191158313557756153645919158575887767624392015465095144562766081202314006296911449964162932045423399643023867091067437817921182946259244066923276533151487697179137494135665314233369923832622730117636969012002131461185704085196223094219826451598221710161327717278666097427972724405280371081089339392877069225609358020571288021942555517579434136015908489707784946539329049506299725487123947670311169395815967023922011663214835978941350721114352938929843378021680596946377519336636329706185226262087283211442341190134199099527241380464046511151918072976632352860652874280311641911588361687519079570271620445152459350057629899600124163245383228684798672486934251706712548086064282056966456907624301768977945882579436937940764824108404356447893729654071303042880626035568921442773064516637392608307521400678613977183406659687785704170353756899870576474223482065099616273924100012986248944584210831059355431273251578839943556485300784775527131631534549466736700170858183544500506581823229197520595818216926391128015268002480062879545798676190578578533192898295100123318530468057719644766587638599640494698157030295167655029809362795706627202496741600235555734371927480449051179518076306357006258140005512540541405322780448637624084350976934827432899207060066808697039720267690413601794398559828244349957923517660383446077384102100000982610743760183957951049497868921860240477957365228845242479539049611509863336213853137862567373474896812225180597118197008074419654085494856710254980913357861558356125553172935979266544105115598930100383082641520724574750705978620766109765498688132029414538371051945469803693510427912839533354643505217593572408813109119339166009160742392331643305073166216904956770032261443302857704868504810172686714697233676104804452691913429540955312866016958549055473956776642816348599584646239341241498417515924779492623553295470403811332192448218002270133596864696924314704552135073232042567906191035235849533412903905361287438686640649250671338959427283501483163388444011740159316758782557904259297567768196773203265379724319777457135617313524156875936238946101987919775691223783054834427379674094263418310206376757204538103461299257702974790339844022635942937438742344560150618854844310149083303282003584462231646121727501120900932046133163537924896325769665630659035036537679366347920944227991576174284300498376452096263010494513128068525235472600605785468760367635545246634672648198318775113559728885087607046673643680853643796481532394401443867863854123767709464043381170468532438761023315658793851032841864513056020912739702819581353386714217919963213602458668031971138986789956758631702135826923182200983844054604673670983833923073378287451754665953500548790712698387583588611406917139791579054651768490998730611245649057834474334742632427235626747762580172191935053159552420294474669376279248298086320597428224461726044805550938789060583441662378968957844206363320911481933747310703054116846226689414880029533204693688738199098896235088412989356146480026234123987729620065006793921581202674416003302392890096006622710328345398983112338573362513063041610798170024375636561270595822287389980332425878522558099078155988662266946789364989306258028782189471779776955926939220374487850249113074834965126293136223261529428027637987623507222918079418457024863909876073920187749442302040633462440635124560586512661691306892140096776567997356535400082253092861477439349340176733041057924668875597640702394803219475855789233633982490790256730139999072828730258473730785901727731792928561420313190667223693254826229781168050889858928769490567658738017032810332596827482869217810659733668589203527234571691136100524718999856162351454031432250016039951956422515651830115435918112766628260865688715655686225108651795870647260390593380049638985655727107306873260594719810063879343080965625632212601527410570906260008392470603261550626614513993522630705662894942398087214619594059345892784219885422303124282605180478224428560133873527893345689931575016635793559034747578500432273708002711441441611544464088008351566854344623309985056073181979649703123534812469837621025627624190670434950948879134840430302407011263365066189732631367608130219123720920205242489156793227260175385269901427131989242177160151730384322399836610100809393867866535900348912968621467995357687834865804107544476723970889329498117596652726811957595448572385637505077352567665383756652831329243921705950260804018983232319911155152424831813172597496017257389016399193139153286160158332976479393627940238085036565128581946284154859393910782437237570193680412910834206273617771835944116558892393835482116055855402262251259139438850104445727330789887938115430002952607806080576978794147154894147890157758970083113790607867422605303103755229885491812817743833322960333119796718368542010731725568089408003276271769436413422752537345389599698405426558968646588416637198402020810871583858169420216120401470926779220816462232132615903576400166294289975857073256052081302231946599949961285663902610904179686044641876235237443441752904260264486795561787780459285435503270551646815997970152651250623726657846139521261832357304543594239170160029252662212221707134057277408103071917297382555853657490235143371655805752232961018697601041435928440004053751566293809674576977423537660400373471008447991143880710759927546669519719362400086783114361236877338838986245948096753790788886133652635256357757049099780906745187547785677549209876782439108347369474389661056804476225161876187406200424929397425765440774864895379827640686346927582265904032629330383009614364305424673503471087494056293620353248174118534308096432335093445811563349520551029609973878821926640342691801929556506208998267852338874463880856275312197027697199010635257957096509741205601821933033842668872205576500096506329351320697004126608175221897166382408496181051412986473235698446619596071591321074217130713754121257760017633157290679925562526869109747199945429001216585477141764832416381150161010667356504626596981837525292633674780510282558271624816143982052147228939232477021120345019768114919782339357441036958121973786649852480945280855750160683700136221149594046561817395872287720248457148580499835417635029340092475507189457874765966075785864845733922760231587267626523790244447047613914899981047777744109266278042151077829237916752131586101467900435869215080806537506836878761955065721765494823134251842522421017875184465861261572780986187706147561080289280247378986593773708266670062532424471960575930162337929729089128149721067949088052090480795786824855405712625802462642345633485615059190759596512246678399352639033225331735193296044184716247698850268067258884289721266359629074772519520982385804475442617441115184097193958766138086428382414113641108297782243989387776364667562986689223019118170953445302664875874006892958501112855343184047195521972967280767646311275226509193449231462582646204886856629998467957012186208233950781869121291830576869203392446363558589713337729319427100801493777173446611471271414553955504476335193846339410597015639723230235840158537306023105883545882087652644180729723229367311421981519474950454731824408970273470472209962626749388186777495446753365713045786865033241483046447334178414594983209806344526689948781191272215834082398135067740013450611126456949280933753374450533328839107135375947120835006166046389507346307456966457127135576566474188446729532350827463476973428973845582677096458070578018170747480121548113517237439884603184876082808294512130014833110009462919943040327978529437425533386147943629915692475330728756975662970514570616990245876869857783008081491145501390200695728796820565527580224400798316001870712775439809684902639731845611832461030983513035917143822938978644404381811196417698873923121317795502861100837620133631523452789825767586683031885163080227608054732256766782578409492190103147807087418601864754761264999058556867563984954995985129447817767136192936188316567717850751958342473547556421242148969211091031406956811999384118273122530833951865348597349940006981314155847917237074737034972893350701342509518494492610684079580709212455438792587132946007271706883481483621008644403325002795143958082795436587473127732857743331623980404304978833205055815693707039768934297419712239191555826515217548913136096491100645128612976373916847855254586149830302716553237207118624622665011070528976817062337688585197459729276691148849378833639645574260745239728285164364888851803070284371278504292600563050136384879512198870957073364353357926221719815671022631605201920707710313437382934206726316922135193466527445355053997475188343608421517200123604818071343753965312238859342733400969269660396394800332038462862970807872751987026470623294401318037803079084612941573010320898903470445026668982731034075705591036296501946241791929022268100442539962312509595171849355655206127956005658146558312584725210633956730746138342096044176123425341272915402015238464026575929940760469914043568491864179621652397530727442762005932439249220080663249378129734529514054285891363758699662921894872608419765166825227982282049453911009920401469706970544436379170064250744691140799103970520706944460174780956837762303018491632953404205693646652687467963567961286802200966280414413570266581552175002026280311611898427975470309097004335147201930439183956611148125526795414578554422052639157127268638198737193420057240771790694536115392452030965687643151898992165147524739536647110422189406646389075442432230447696970925338183271901910182380756155968266673513244846395744275909521912750650894948278260074360394827085929965292884905006221961480908475332347817514106808717121204124098809686633055906247153669773768086944196686911474219371751096271424776980825454510708532317932803399217301711727920574943515670370514406680805256835792097283952081385130792437462934624090554076425199995030488382881727420577112296683331897805343210903559277821740908979181251928664961584590940622105312102852095352460661688730760381651505018995360283083819164810175239077162725918541969868682335139021374897766448997606735144719167400309366737693970768169365811542287479675298514660311824969200648436894412490945713879969668202702849926692896069936720391683760074521437539333037281020354490813089777235864016791218119950129436074786746311958155430588495981613717184159139730638352489519706214896540358593580651893214239331488021628665026983132696655622888290554206166291169875500820039971420628706892779790958526757594876227212061780376834858051388462845671236753347767998568035759643720796411424418156027877433449221202492588581784874400076452544379950220288479627186309024879940998327845217445266194639574938698948229590421966675780583175057556438376186394568518690344785789261613300852605375345975262547460567189673376013786150166588712890151091523424501820458894184385986568115749772696574634761192385072047825669815387682412772791056833796749010968013069326227318024457607294529176186466417231074939656024334232788510460290256169480056639831350235221757847053855497458800801279228192180620328033493498890058468366927653208871094304796797958631851403734078410699859488643569831977615646133863983590995516016926114395056338933565756422787472958288016557276951382158123457603012477391289589607918825030164441929073166477577486102642144434977753042468911928934519686477105971811846045482058873686788334571911945043489349915606893547109611157138099533507431800313067332231979825074803578855299856236075215179302607338060527701697473405849309169538713939306687305539098398129949071768746507905332781543132866216094465986038236033743320063812187820299612024048942735951830411207845664621060852442949036916247285111343374023687956417344100088443312808793386982664023541312329529939918578161654813116943622981459433567758196696444162247296831766917583562187541248945968645374541389661170537023392415546307788513526815470812365249198012622523714156693543071057634443609502576224051600690585167245901354998333852035666045427938602863384986125845583707125393602295097286514083750376074938306243306040564341354612737077884660890174508379723840117352515728782879005028773835736633007013170767905576861972564651390666823714487447122456540150929976247641642099201788244891029720065368129478529547772834868849300890093088497478457248233885227518732793625573981948471916637422850549954595966127697654804242029454819130277598445337332199672923502105161231924268914254018642154727997697057150001091541522819052040683847641890070667999047763842495639232760111319687432419777896891177573042188907466426079700661444081931772648253688411165433039727310044580371302892664056302944862417280050716647156838150917260771422115703389064734050787593263182529316146984262584343537470084508647935174787449527442244252776656999195082680870555710534886402444960587265739926626564226937108805262468090457741709952229061471076082895266455826776181331628008649728661319323118682063485261464770660800074928601394516030029629023540045217365631004054975956375484665423488425532299433940580038535565628040228852458380434202257165827030635491290325275694495410954485033359027122072349394363618078057279665726042264383873803666154509747748266685587140367504718766866590586118146784188296991724784958822845840795225878721238505861025012897780440102097888038028947200690526534555645260606139087650370869069316294253579243685632608119674855056756741396574347240520800459072227116066425666199675910202558289123714495365076378380927499853228169102365400617525966351460032606860741398984003448481238782082170642237250293569134041974814905250251994886552576717670602858333669912966179984072815239372245321364261408760494180767642049855206602528633055931050633044949742102696867436032563837671791859857233754686676339169786405254886799520255326974506193427621306587249232455202340956603313655153886371577727137325249620972312994084680768762152609734630627693396302604600040362462798264281685991191151918699282414639275651355964373018221575849350151528637124885137074317219409782713751031312726422186475793908873067020741654166399354788597353567111165383023649486527792550085929834749071200179654700711433292382922784505726903326138673135753050536453986258928024886980648001387198345988536453786565289713312084589820830592348131224556978998612770023009675993094902072050639126236526654658526230317446811932410067582274886407167063787613085725209313830598981073165332251927712565541027780703988210162391989564184919754250263033284094650927703148843785833553276931029134220829642983899782558482223793569770289929679221730542362943137075874817046301224884723367811544884124644840320638632396134268898700316036321564053830505161700004524349660409984756832075567340016759107701474559587584465658857972188453262531988154588837304047426280308913367686136931494384828986732014668709049640514550154193601845750732849725878642645959809036058974494178148978064896680303484819830113200451066061480646290423126634211509126370121878622965740070667060392756248415978997026939709542380308968782903798789866362424527915264235621798153197336781167131491256441511862348321148459607804895587236608190501441937961065004844414136828984288979229077343229814217215320339840399374371757153578694133707020865737148979918837021994062300046405981491121519046870221175651110841082649495769509237433893960356023379357706387511250822879562668551171360598415577624457930926722200894370628458406119500714533958686057743586612179182286443741320124857087740752288354648416985539527449388626715417892144043668503258783686658692479331368279144059097847924387456401717296390368897067529296078820050155754159338972896017826907879419556016739020234906063851996277230199757878613317137865596267053730830666937466540659246675248303194803655884591860053941703549339920815351812627064697913836091634702624126742440628451105764228625461569357439888103163293559173676179169706493508247404624449294779386251958064833447136363428538986471428971149841011291131828329427846097200760232830875906467790366578947060729427441638288870540292904034774130140597761962824056607170781852164106257737613075323790186025285315200072280358358808055375658164597945102671465363586387130693640239836124629294641699338638086224715525299473907457154810999195159673711461970672027481493882474208901064326648075131768530255988658907711059497130145535852937140004859854704464780452235569117008076786429986778565883342888562086798162669243966397382320796558031800676337191592767267863782459372141563815267595810624560019446368750710461118916130168219274400903037734478311083381433949391533110391657629182854403839423650721356453252767046840730758382950787629165495658278705025079916036461702419996083720987816285263066413286468440431199166446092452333958646616273529942356921941911550952644078110744364400302504753594460104174178769894492905684339829770965714335060412599094314220499496782100416955440030347151743380324876135712970222912195605027089023782801333382624264169622858228791599211476328171187866907751143267637931714624815484142950916917860008180656281891716321411546737998823866642870522696636125033665549673883028977137132679537136859559089830696187502855919581746626182815394824191289447267603496339627483977653492591656429101046543038999184894765046569051098470849027057659119643213251620161163292381811854612170958696527279792950795757236549219552653886192784640738176675445990575157541589522702497529828235282095439906053232470230584938323907497614409094637003564914973745939081419136609952280202388481185522719361162196851575568591464585014117874676450942275145147048606999770369755931523305000670083264335230599229415843306236317380849983622135621306768208755262715648242756788743776117592267487860699045242499928249373663242413637055395272659797707293001045521145694148727822305692644011639946906165790073248765450166193762746250474220667584483544756401397502425664319311421762668899184552987194023199922630504654252636028896210709130438536577982523041244111669900745140579453632179692849099742590491618993497816758428309090323716773710343649798802923935368012560933552053164983082065677018823006244482225278991806256372115093840926842272705725803586877011855561028829338441031483187001623796518032864384929631881533998983076278979813260716851872747398505810910589204284615376946879698739515739066899387410683842593471995445594234950098174046824899730881588713719072170078129624738523426700040179060269361033093211864058424672045756715511258232603497784372543655067018166269097774134519672112918465100860029823665991946259055745191009588055389956479954656053625355543637719789369241345028251018389276283523678712176138139157700644555815142716587817378987509242898509263710079768175203390811717694498461776391543332762966686176278927346584593159355413686685963270309402118948848523220575264173982561736573650219637340605488087854527659578211428010144020235904186835684405124905332303772645585340705126454047459725121369395496528114434359656879042847230054649778166666721697682550198090470128247896776740411404976340068321953695626115810566660548789246835762052614211001981613079273719371090781985618513013476672176159047628796379274850771277343822796516340137842956487615204005678408981807581116974689218833593647854149838596962892535195762947344644799724242068031517401731134895960154682200326067920851407761747377530093303633426945559530754355237569464742348843566790528767584228966330454439827617939496031022197180201220047164043386371559748854841001787834393640587471815423698310225684253470346092419881949160133628532245000803146817846762976093759487276684905409825150142487128223147735815273658090202465718100855806413316414080612671341300641500283406335232277918473643245520048397001132040688366016554593428039032030231788990191934661626529598658123201463026995642933644737705772533880600689338516399564097407251625811530411231828153675397568815387825512327206023274733589792315144965853171029829215855953392560651225740889230145529309967930748202748440871149953138481783634648411702622925368543911417260720848600732585628551892653392649826764352265188362790675585329836930044580238741177327637985068793289632169461683958269140393550055640914387352254375764214418944538248220315467440683644916749300855270892819009614108772425531030209014384852041548858628068671705486921244263318530904010994565941195486934585097512768929836282195307022954394686274834778433802761228530521003182063158050647170184879176843435815994310795209548198229179571590003739848952073046485989442527158238335582513803928040147090488119356289835413364102121826248973311018884688504827066595578741708248664199914973916964869371119736352691000828478596709921792396663663628106020665980502834186876941899863386001393974271329322884194638838882908800946065601770167089304319936138879256318020857990124937121261349906895749176157114136429602126205124264336145076204904176573697800441329783962876057534370888096048414001133511677531235836051886225029839698662779310517687388785224880221720377962416250289744004471983261654192534196781388406414528995827197521936083490155988405269662653041889227695203331268432687374581246756630476242975521307517392128244996413978218135657429071959333542792290034640190448770370075887230751841664819078663828092688215647411481748982637127479178128158305666308857573994214101608753550967041440467610857863762341087446792107612477222894861404768169117210070965866913767575496584227860723908938815356062922167873137486944864220748560916395888420749699790999731153300104551172558612802526201584092884912902648066548965903818433043647927043001635158582611806073597128659808288133300229433772682063174024544663656369060735932034117516908641055895172831913932130436182071480700976510965017137809204517500387383417669274472245241412509482954292241757362757931194223435607783582072421822074025486180990721456262143779420249571526156633789370978881048932300540703450242239933512086669368154334761342428404573799097032721008230480534697446705965311900518634614090456375444060790717843056466067711255560762113495809100345582238091375293831213523084985668917558842614936983403988509896638369278653869858456781173588922289165200456513836021887874697285356723866556474580031141298601795182095912157381104710864437048416143711683790528051413441494279462782288941619439983389512256854537623353828247059776232241699911248659724997543808160024349200292954456098175944960615738731548636875899975657630261243509452647090301708506887148632183626937693128591904997979076226830725970041467143215317571604030856007055229468910011813891936441831263564849116026654402146667105155096512675999205152160147338343972635664575360181982004259073008788191251765970961959238129785210448265017658995726947615306093723322070218883755676401030173291747053992739168043928008245428040457960726649613325873401302155384660853310910479736321834650717522748849158977614702772171422217175178460361879310420770065852909959459849486550896025542961022733341437071222305724889990200869297631841033340530750802489503472157821894320148120709695484275433742325291188631803726070602998437761462599019759920977773837603215704372816939795979188584345985278565760941581187390665553186374963251580468055079281634851951464545333890047529012853160305114914678453657191365839340164823585486180639983344455577070297307123781500147485969256851358507158474641180432402163009742557122123383479716305983392755959948771993384672325424359513091280933188662257778071388770691984892144593208747025640686860920701656584598616623761180491260129398610473818409079964503733209092946422412702164154195625342536894347829590014977353805867553397618585259251792009600891743363866487720727878316467384900215254563587045040271204265238344091082139140922669089399473412128722977823705683813282055831041840654590994565060713658126348728924325788119704314897188747078078286442382621477472825152277447817896757224995409818197462465285881227817306368018788149120130776800374543031112955261721261054953048685761746100322305239662422788614566541090274979652096117095116372880915866985965140893437693619818301269695951275706295035971340635568005291224456266657741549458855158820446979101182322859717258114183528074551212612378597731216344064450670734687595826226390543940353546224899103200828124971016499434751592505099779895800729925651461155638230467057770836518049673173904537470739075179825338418537698430910671742914355664802187146849988234597441606988924247054196951838602673209953167373847721926085082079674273568901374211405132205839623983612120401630647416364393848634426403760946735198664708407695530602173255987410911280107130035845969388302468542001049700721135190069059495392142000997787697366217380733124003901323385571867694701883830999347758884504800222208479760612312453828176093486726020720644966216332335970517695626894058513452561203212235908793677405579801491808561852152056008607909533410922807735524390281087668493702126334579027367520653919880337610228040429290481155841230904297894092406821785946737367291420962460052838403737499507047349374599088315955588019890742892825453905549773849641122080023491212012534446100527604771768114302330952915353346706758870208197570689731793514484783339987844629751315809779992138247800938579174185376812023503937813287095932030263830348834735852210302674630917452515768959126195891833444560167730908917208385883145661000441851025443968955096268314258358992116263319843879361738898106039600474824201029527131214402080910576262961818222771192558677882348854524724336452726002033234857362964793936258063399881196298510119832803976055898215909651555748156263892652537866896708993276756770249682511972653781742538129036189554799141053490864353867800630467126221402908329325528844709054941419536829798864923553900546900619786301043932870465776965714464035565960121575257216306505288932712273918036392762659353479832976307835168195659821077951645139036636926365629705228098245190320964613226498912210632470402838963678810653293265130608163695725464456465341017345338790793275202418741808796986266423689277832211293216500863111063755257351666044490586190770453241678077035885615193508925751306201140331878036664127734250595924238463060048442041770680781537819434321171978589790181299956439459111243232067472989273051416355337801676480165466460950416764474531461401825594355126757294449562775773030679506260823556193255404017766992531007684123900216451040884339663610991904185221687472214600530997425593737341349476874556195332831427156664452371140843239692315592182349834171761234051668670854020126119162356282266822016396922104947971165342970137986284420006812924382006276979018627579642937493246949357671334849073828041389023623461731369003032028496463444909339338282974898386402978153454190662675424921418263309994606904384875396107677666753006209092408794700067047176231307054142472240503030096547282168558547670140742497704302991362834045665136966957519845591751173913233685257851614698913158385451359780924484276438142658089225659025293146985060966261528016124930739037554001793304378876988870787783186515113310114781521157715748978042694223562230051723957073590667686608957685301243196348355565266463864086668439296106034943791561767184568534676820541423002959725201855438195511897711736395995792355209804888591507324297383762587386309239701970846312556025951926976913874444135841565275600515583876572755963202177428468924584343597491142809066379311739543028760357422622310413053312043788905586942881208127018213022360773330725101928836258145545038619615188943673735426535790432320524695651108227759742516996830686821387908280449768319022504138286002165506697805564943628230456864830948174285797650504734770463359162261101262874081682973056450537314549676750714027068680277243981213082268561459490452872984725573836042083013012420600936226126804604409266118926078064287281252174377314421467782160026496003109477207001701247726449563731753853261697732211522651716943294951380315753011858686260760789981592053939440447042625313501878013384819711144053962233454026551917365181704593414153293094374526359673791324367843225286777215556365836289431822930193182720953902840197849017436913586434131024657233343033740914889812793020107750545262782560082401370131240216311621533606087664491338353166583678794875549389620757262431242118192244246918166816588869627715188840669705705034317374691438078386382594868144319544095546704670579183229149286115855994145094209414660036075922221790324002754125276421840208656424967714582415129293656800647756326480258065493777252844186921180256183543549775577120733426797913613853880652438813199145724277767418077234343964469226789374059294956952765920987430029896880710427346104150764917145155964453544114584531940834450722792474196491567882177458507410695727806257846042659852321960536362166138267128571239486818302996197903698053161648420810401739079477738478411868532533538833387257461655858344326624095884262816179037203010183574786346888025830370712696022969830173151646030805482246693844453772301052603213870863326222684785567112444366914667477496581364261940844846615502759457130229627151031613387521318881621457486458188134971789193631309611427655629652641565056321260460912696420327452778199760263513915328670362733601052593143732823371758927958065480308024778049547796460575837935736250099521840931768304538112127087796187470804034289643731229784949870204802677112933835406716386149451558800886038508267261225091093767459154285811455370566572517545384050802254066282822451123222926468832168348107532485684772496881254165718833257243906819076469761362353464996123590645481601105954718478634062639972878312314263180202451171488631160880892132438690090902216476613731549205854238166760784382087363998803642481920386760794320703258465677587598812779752571309806456006818663383143895038001334312759349709792077002779722522643341666417684337828611547681273938066560898761661667641323455806504797450502001032331947604148704776217049716571656315706180788870081424946034913055768234458407006648666565016149184139991050533376991175638944372407151803667677597454534101330965878677839151488434243300654534329255924559017228631418381489459512393479556888664286766403182593615929195937234169304799366026817391722730550485015929852135666647688499138656980699782410447155723970958826827154556022059614775148557415349742408980633141064024264579433103642729460929994904756623204474537956171430650146268220253388903126364941960751264401100147413506924433767958035869218771504540794802667176108298578445052143439263063904952900528036258125977802298240173776149921304757191729413316842306895256961726514807222241014028921083788872962169085091917177304926223003179714089302648894111002438896534531113222978317843189222214113939586429176912870093117103920837338261309310156199706734607458227494800287564018489922512193967931969965265904533167646132304353626807152309657275376434290732057448843220802245818441203321012491109537458468354376157331758331110321228418089758949627414098588046325012681386176974516460453726390371740876644182306336635525849201345052063423062473051393615910457555861349671696913867237872600637652702831035538830347914974171162812989870480545143896614144194452691064109439326516159735717063413737739993677866508015100298953499938992153583783466188814152034454044611358614371104002107919735802638016757463210150341501079883946158438242219717071439615889842922762079130827150638762350209405914685873152099756919634363403580995162171993590081581876379284283611397270562961944777213489917908056136199216950212176568850333327173634293052957271638284866939354693195801360104660871672095043014685540772856738972480094440399656880434447261591315487470255780011706816966356620044328884240066639922441225928386280797365256816204698889171284936822812840211193218779874084316477645886632629519682697854494483814545848748061202271744082901792997805072713859681906115557937602609625949378776181546881122897892232546142547386686292779023116366689840658804637285192891886681133473156279362151541871582858542718979693137742249407434689606290873097960790253242799391767595730874169465749600261151576339838489816039445326073841629884394105809358196863641545822930797927336886918973364284731597126205932119724917059153812857548429705644052327585270380652297942853069966578880358358410031550340866090161803519183346690359494744006783087125535577854620349414832377212068104818952641044017580924792240207382118358861305600822194233414770872620916019387080730232728508910612208146755667510176418776563604586158565980518070731378868983925239595752558935860626208396163704454964462601389412723843964531859230954644186374261874980679668400952581058966647986609816536395848502851095373316656239371997337533907548113259079001890847608274427962565107637954234362264678315226053541489609439698441609653524230654713674959699217647459039119151740718847675598944131782794833428812004112259124248532082194149965724575345711739173898988081336710921424218664528223640128524612707604458520679625266252640914035910833565848795258277896978779568935919012137885528426090398379400131356352758489801591547507966371752481047276349289366645047309971481943947746639363231213781876784886864282940419258598432986942003398004011281479740103101367709718503615697199702443278180245230521818358462946384470126029246873803978213757791748664238887519317434373537306049407289312330999690705356076127062518788152036651623664300575602994953890514971872671189330114957326690408837190495714412155380168022317474028660820596100517164734107760308368454293445627109442460789631645882899205227237419210452260808015658470071520722961000077515996488230765138872420637679092847768756492520798938798453421616063867374951731652705150968786278327793606088759127365907356094579789550041976577051264518485411412243593711481032120804280383311444218298103808066901224013636309855943039345866884946259192479212496345285340313079308950645373262217391693395994306216485612777382056664638871639647855501922968527121966551394095684748744573676622581212576170837299028695939340942379595075993737576458516763921482953505262134211160378560755428488003831213671277537697697304649689441642194918051198477442031731044290024583339595650574611030727633059256631126421726560985781431864088931420406352481726086446569322305324051925561334310317122861009839436248433657159133476675744438081392174266346592853835403562733329772867296167264915837450549907561742794835509906472890749682200187088162071548289615187550484425925978395278249834422881218764176804194357321257925450786162840539141149837847141143284615967969947378224556583958844207721856883992818474566812201673009232108938458346940308743983568639605719644081552473330746233196907693873622187004277699186718238260396389192631980387279415593542845404512556729688889292388049115806166671896909821153995289057178479922216322080913113730756602161680903301966277839848082374874997544022896930299011159262653435337011862038821251649712847054176013295046188198874452240281161394778691064006300314084179366377549446635644625684829902046850143806317691907657823822826132463486922605069864877115253238481122590545118705668282681152543230084431829086070888155701748238906433346370861807241451363615021708546590901559978596010089641960142452445304495617281073243326114261898231490928481859602980727624729443679086654083793107867614171990946738139181929101483810780466879760905946623415366502161350113693448682123360874098111140188470325773812609813912682376698573435785787441371814505774242821264911869637371180375171913384856402665803294107578901975383383329302752512892441353658853263843978223563647668559920013412315088133491212226979343020292908536767786775851272309706152460367169988678803082701452369132836651841284913338611426687860467501446820118059681442212476722766106878238083901696064909105955287459274473594025413057162283235479147877305413920699638965193212153521887262992617780744568777282281257348597426058608380084229523058224933300318155284170256257785220373942575420366872314715048976638758461966705260853993648670151907470692417541892689326313350144171223352343879309278917448568959380771025220579836702272809932459734854710464532465662562881975203087984747047668043203996850705077966626143458520616548380730003699594661676748962874113664485027932742638981455195968373249029071016886520499214216775825424663257732707834779712561375290947855929959929576589486435575872300193864416530870227915764637402245498310485325126322803865121181997601587344713688952339438387172606315415925228851992557141190382777915447931871612195960902435638923746597549502048668725602168741463590291591852405803379318857885887418213738540480969176905799802087163079262755151244849692881901260273421691384446412291275029125023632324935138361682056114097315014775156110092227830938239461009213146776820772863622169970669663738005636974248988261561941647943355124529827915524960323715531465074607380165269170832519979176002620768978356118425138311959036731011910331497998028673965127332918079700240956454316038924152836932489505130805434528602728344807287526040493620885494930758841200305300880176380718737618802992778790162172962950403170580332178852529256791285199820817850789278982209752459286660761166954436907645915067260939244575195596536636719540544871596093461057673432466153174298200823371133810300099323047574231855421574371264837457322113945731930871222122454267163035835077330505417644791164204695644810646390971778865541876840941796687719668881262035646359339940842153604601664155684197667010598940858273755054961627536155952985744052052342487387703063155418165631482907121664720678864564069003240565608483448151873671191775799517088446747383032198596884722466787695328893058132171506498232192311928214806646229078191067531048700510891564706312673408128893611263446701971598281036147236536182825222032898957538607251776148260355249438369949533226238169828664073237083675441390831541114345439513151730115206271373189250579556692150370572603841078412295982785062167306936772778926057429421460399034892868794564425075989005448393485489892018344810597385507696080859672143813933519989232459517139747810510190348510910554864450141265528976380479822430633230758684155959662825592456459385089724613470497779408391161274025655881778525609540164036614526796346866179785508751779183783985647215661408242171391498414639213686288728704743660570875425856116797573171260555885752299900507165827250996875182625277917237185583965370688848046244576275470117674412927652150950916040357976793955700996873371446560644816810985869551767984711129972503364514596063623312673541531098450737740932856382555171985938567823956048157399827429053481968130555503272723069255513380291686188527168046833021190224274964356680619429521874518574153904852205126816584715988079584009703540968124050389144102658643142351290734783848285417301538512496994948584196686070226624400457838418499383858320577500562206733042035450819446936288377798289864782550223070823872547526923557332077264988319604440002645932642255256128187276701859936064176471270474684753408924291215314217120225219371552330934755860490413498839115224460517394158095792773122783372173431351710631189192004436036252539098673650026126087503231326122551127701081356266153063364615548967512237832306138079053753610626880367142892234756222383844259709473920851326909174031425874396895025192443745929235805358390611532824634211586114807789782202225642504834515823176692221324444268680587716827169024848237764977931575745287498007829265570189162351649859688565681851419909588645194586934173670156032743927093230852088545986300138900209112300984783612114220007863253144772460657500183417806968199995293321208651518623672047048082866979357205536266258711868500830178817573222964810544963129017707321147411622281471708004031022468933222656256882526571718553683893764190772738332990435176792688337255388004346650720975784468985343078463063920536257846932614195509947087905566544972578174237192678227340540699468914996104963481469872959026602934186652581468693057643042545292102829188263639664742650998387428814307803225610041794736835549676566213765812742470867456184505930875073519912467560168453076912230203564116123479174681730936237747081719979596883895472475677960905895504807810760586268435398497228719785381761268743242910713556746896594518347668127660031913708983333970578807740856626295054252131599621154438327882556228078649371633916015338611240257939267882854894394205238360322209496921760845060730982692242458791827630084600835680804677930221281798899125257327528177269936282865580463328247371586591885110268729331516067316725953225750514003921160078314015112569999151333865726419149299548218994131914900811802912782896856160340000393578152567862209902803786591097161843783619703127440523342649894124978082009291129233847822337281796009969580904518800583408324367609440584672537669821460096217354360122744887244251492306970046426406899732641927268191198497989316199501751037995021174147752086298625902361157875502042814558422642611071753814995479608005464263978868807069773971022452317493282581921300368486262255345585941711488095687410882956179371657485074409082207685800773080951982282320996159094394282205447799936625460135720641463045533350644745400619283781025695687143760796770684563701961523689726159986928669448933695167202771851701634002029070812504337105706765385838303600413238087092777191437343093889050045110412132582171819987203589089776111803208997537687367013935431262181675653640666037810314793981689682761974921784826588048845725229814657628693049613244319262811965103277422947007642939555651403534155484469784012505167186525444247892941950986341211731322636610247613977068151401890717839853197676549654133170903643138075417139031035639249746685855230147030217098130959032090626007596392441329717411046234501994759784927359633772036775835226164741073104448226738430197065066011217367218812434071145070545444696375592164705629406256318227384784858598999210564203729115205759207416075400082312226550899552475867020447460118520573673168566378165933043678324254697259284096549614264911948224494585208390324346549166857496354294097372811428409260003613460902961796715498106227398207031929660617370206220718495844833835769266449676164047057385195243186481793890399320584302887215598083501418379537551683623507453539352273800541415111258285987580502199737774781586790720871593584343616900634287761485302729096031599883368183464214335586296624036710260806988514974868624207208906647509215768157709986894880475767738781840681265544505753439827078516417746494346419664212286393473875393639003615688939992906892298605675023289287152421385970467580426752415307240317870453048965873746659048498295989065725837216806318231480167468484068245139273529582048451454416535388480203745175401298001062737759931818673589682875020456527555080722473623478407790586382261627039851191607280793961344180663686466402314559828457064028613325502538186379212865352618527877476113948185673043835838772274277057953767254777508163954547897971341833201852592610726774866239528060179972828285311574586758125985484527287018015417579829869122111875655108580945236728381084632364695229558242055524458112318253246311002026094312136757329806855002802333649199891444975900762121392717666376134446263378630365117918358534075151096092225161730427456492141037237222842119260439249533550975228088262177269714351942073412939128621768985261563070893149258017716077904291548319317530520208950777598601920659565526940427635055193510088791741612951265992107292775631658973713593245314472575281805710792664949912287677285305011535643541576001676517862377674419613464739737917465379108865509838493886008284038338630948204359092227949025376866799146030649697611188843959914101631017029451728435602983167370451182601987547395445540597850070599513585186513815403042429739427481490377807502419125324289318311478010171736125472417594245433846040412570296922895551156375918427475991604811563846542948449678986371132045505560817719912548982825987924303401442373148678679820618142655243102057716769015356280562794988581923056359085636690551414350980078276998449992659046214375786949881604521769683756788704036905518152135951620964953393794889706827860219364224495417941536299892988618881770791266802250807130100171609854100449632120750684148078971388909849285604597130644168922724840241510069881032360362415948455804798253604580313747025165210095657311968078163030291014944981012714141862273623604401080013473990375441782306968316268539536673930041074747367286787207270457052973708337267476620136960663704462421941692013615474650559172704542692808574545650667518583695759817753962938807113693853021826767561634911859697994449262783136978400840753734485356631893128839887576237334742991892685425247474995006842697280619252342420835667777614378909880174251168216972976089638127610540958483478990492881392592433778999806175588178851138204671973970954596347668031057865599809623339198012044403681422849729410379226350374075449397694690065584419403540388070774607399211021936788536132711502169292191397927170318442067776537437727798296315709127987527554973188776408990746733597154012929346781400183604111536361133197761452514257355566984664049210734522655185152112228674332817545465782896154702139601937342426959786004468211382655349807129440766980125057635550402405169405516224430444120123878724326180501885578975725548989062803236944143427885559270048844591629950882890780639862897201166474424596435275580921231464093787208822564519040180254151998476044241346636785004302419044566603355092733093035652875037058031310184834035238902896417566241613906207226952898415633140095578860400185046628244723426410600509320836336394741985296261647311468718116313935178989388599117687851769485408358704845140439651300096254926882362137544002160124960394606943377180980592086309038638996822766409709889569429137559685880859136085025551738339686648581840213482836145959480973920219727396115593294482785307133178936127044717262862366648357708629086465092119447761348574059598730794197674083535942896530619833257791573382653502358877512170691242406788852128169855105962900528462881971410447213295496836523410794281799000986346552321009415322155354413371314755088605621871263543638878702507496646738618647546649580870138031757662099084937930892075443572751999047863581155604696257603800767071346770423232421302261122693742419939879417263907394779600849636881026085748622875069761341737981901189667955993676673449715914382627164459769796495782568145541556999472788922271288089607515288019798565321167447296712075842465419721557969571871971680317426397924566892401731110836531825205769629837372447812916419529909970803686158278419788434089068687812575382966497748869174227045304784296899912198353679865431718787549912779608869155639943322391173144321886751131461387665735621873906933176678865946503959085550693963574610182941271629597751682739270298582729389338488882473124322670744646368908752627608769309559192002950029218398692517075871237669286518097197099988363537799465855886102134884004580820100927072995542525237865201413612845645452290845543060927154844656588369123343957989942347941265530240850979581776153912727739932513915157886515479792643721953366496299463273083472375620569396731592268092576816039028304840682514379635018484584167900553936890945349435402217969082065980837984390057315776997184250860691424924971119326009258932899130332287134637602791747781071445246706397756027190150578061490806755970991863446715099521956472340272519855518280263044166185773677868795026933464637426404221281114950899702442112544531350338041493065219779375266168724434612173879315442634345368955407286661297731034347880794810390835201587764171250464614886995039829400054988740771452606365396491915116792985440632541343336292935563465764273570344671498140113696540933582665974145307730999603450644687140886038665351842423640268110230769239066461981661763837664664340421170559579270593118666070484264061169865198083077704829503057911166083395401847291645388184933248882558462873777084992974245455720412606741118252556162795038308741827312050646923680202568954614990852471347912076751266484689268968899609848987409927247096975812841649073972933495795297631690518112695546504139657307097188078768890221311143163194906595469343264605361260508049149942827870067988419162076857305617564352341355114982908117183256320294362036973370268148663353750107233346850107764035786199784516105044981091164195034590149961402843264225968675521885651618510413934269012135957094795606647259308184624812193386177067561916588852120021622186653469267164838414726730400472026249265453654768348002214309698125405425991176463204315152559895423577584550092211012566821109494474435220847536211966971101942740962587401255991507378967117000390875530984845735180097147832887652344488929218805692736770179820318309025021368609087933194261121844977850761753696701250931674808058922642780306549772201246108932204794507547103564548495219253926721402300055208070067284877228497999290695676658978466515024300156179212805358745666831880874575014161159526225667369540946094538978718008509357986978596796029344001535810385801624866101302772267966437441345536749969843587190067350635428891613317531011891917907906250926492479191395790522617533246106587952218983911050363385910686826336313791672636149853244225203046908449405442141973831268335754512711760445924202258134653596438035277401930939142775448483774246217279015306384531063260318413768878845455916138020530844177819821024981630905406476330528084738830547665281635868383593363324611239527224066113515303301007929974555744693612040425709740918089246966239342302264756049330543498082204699047104176098499818604271197029149207440821996063616902929224044468587438435102073224130180879799058645553310711637726768569810592177450993287731686831010451132106543140027437692299582076948200771164578197454820813740641361648350227408447110739449335266216753833241035500343330875795745733222733382715451037559767432272555893560296273914771363802393498104883762468273579430154736825730604058778656062873917618273645347108860771258771003331574237393045144221215170060196081050741591875731069702097597845629894875780269646270985759472435283374358580751851606853136737116881847641590731627351924481256927146307901459188148143313553084347702533360831764439627319115626118042262396786906967561019061225655638984039080030140091148061888613905635149435392554239369222803753209333253203324065552122682303265349357927509404607750986284204821080377271427174782594244006319668859020991700458760779750136377525200640071992906505714773057356996232291264875753041742761087135960139127979088467291687847723418374081623895305835925478977481449412672647924169318799612454216785246789623267248627255209121441427254550868121811702702418239857722498566291432017997951249824786013443080666464774480707915561243138228292381490123891835725235433129088341401998126743594111164089731471255535938016708258539051850231533458774699332797897179804715656670216026136588178494375111334850667293785475678519007707181883953562122606296099060628836858824340070407256968180345724056823418224515290741181818762929591043210586045543751493647098851862799885517035060118236717518535787324636508243359256847783901989066855038065165376846560166311686811603094263761486779191388870562469263567452298033814899934642654942960627237352597963029632498637199511628235711846421207671564113026046286182888548641152941702927205201171644127877714318593035490031894406211264931024972260187681983836527866399470298068720130374813938667583564799042263586481916160881252495791672703736381611174952869178531212144455736245440956792454141314122312688283838431055165901386391390960974374265622820700048456386759357769742971811927986334115270251689962159520889405190492527353239374908780242762485478107027143016196428723424398237611524941847798467992192708556569472249218464147090622295655674408730061896308723352082488062243534678989645778044846598839327887440342251854614544373569860660877696566528180214613434052491922212284362559592704233128926634878033674232780144444045228407623897207819566746891165013623034211286082577933174828470472586025174216272033962986262958466341576309892988812519297051781868801175622825939743650006732580778313225081325150579379134005022052337638479064413733291738259143023829323743103965088102003586291054656140681878110658664180584180063282266098379140473775059127120941119777316934806821649141042368034169942841463880903422901122286249533220880093114648104165243080839093092875182444695110601175094652802437969450916653098906710975852470076112478092401761080673967978939041219659228456738679822533052479948854779284528686397835478504873592013763829359237699576560939547693747030017675870984705517011449809538448939872768898040027953882062523337399867039190509945236281496219830073486856580248018739080244232220429542210499640217915253206890980132118028444004505324215582568782780299492450343412406292681040502989216654600072306718193420574190086258319001335599387537652630195948785327398087598456127902106820611875494558026402705226049186555417461278964382111821253644258282595580385074482889508522121131698758869716604410895899206341187776818804560264629715164825503997218938531146875049321110481391633881328121279217090373409098254952372140019058360144222771047914001067826848507318555256706511366874395173782391290863762279589127372783491721802208162632416319641961998782082766689242933948584244926927366678115394758229100264606711230110950926608985539224062929853542412327283387373317809996615582139136506267455027784065208102281001068846980753574153277667261776936504173274633683639316647846865010871433825593240521210734752382818438478420888104211614820320462392705395030976128900081136728117097078239725393632851507351422977628420306914946961477036892681096769760700966546092604811957404954663245719197760916996946180337108491799276146544379798117637602281393157798592763346401109519902619585500540223990692084544417067069638413360791677112356639654135550127987608717729426807473940216945871566911825374059275391827907252656516970550023111434724380765507566823079360874521404658336880019376441811450528384988668586375516231098480149252125897779893618438955026362278218127884925988102993737680802916440138011284110663516218406161869686973258967011097055437887819403056491475756842050100480327045580370704015395360978260732506063547575080020699281285577018205089616362384149421022648975613833998372642787782030128931633794642373095049706368290985059295580276807181095237103129305649770539638994051538561830348520381118048467959441413591471357057083711821173544508644342188571807955160676930074987730325720937165980266870424971984528213328718058757524550118703914429300224329268969597403313840324984711090618499969188995336470853124199171767385405145098868299131748323861742588059636105033318384333917089322856777524068499033352624190626075383987087260187975664759064764352204729331088840488816744190768793785295814753016203676263262413908252559523022621998557819080468634744919160022283714222937749247532395725178451391089275261053975665080965726179309439801296007562019276314247866658478669850960516226159701169692663862710999204307768738265666207627917421025450432838571141082092940800685962155947802322723118342413329069515660206433377648080463735204552052648441731440201530666475540519236178993968411891769974181262241859180531718855742745724715303732064107507126995379858024809084438051889852578774000249257295098271010224469839177459120231021074659191681336686413719811243051276037531067322200905615330063296451495023567089627019784108176855631142383664908470718151552660002041322962204562347101164401875387934433293479761212938776890087624095700228107675645507543752402945993460140723819191244221111207747323226601454975667435519081123314619298433275658896792526139273218605903750909128516064094817325796319017522860711285568232825202761101703523482336274242867893293524715080244958729154247028050103722728384544360003160479025593052694866248901206238523580082474995613468250725069951472145952795733833996234649900587556427953618856717230619220529185223336995076974142626083892419731933424055542399035542372674870649099645922800953323367120761483306747880544763606254404622442637024607016993487897093270064609630140380857813691886250460107378075392203649796354221066827033047078239771152221056752409098647404242489151655462830503631949844999924396581004196123456594283285776388977861351608030313869302042072903423409852386739123879872798348624729386354192080085427904622876640805649559572368039871531247744023763223184006341603831615509387113200579368739239217635094957613304780593020752109167849194542792654044465208299295858687124626951091891033282322598949033036698891886744042240992229936593759027563697131025673544702211518104040767801197173216874242091331865527307833865036272612311874768904498027519801269711873614544520415916363979095601612781079505672660247302521051343683994856725399686778690492998464035565507311017920653141880530959698311251873089681645282245243085056636184045233236641726403394199250074072677102433568781604030796379607391754989594278930804883140746631148805669031240597204678932427390055161428870747991287713496059567594042463263612378870344264070859796277522042908833444025980960125669891597453021866173845053891480981697485752221074815160483206762946560219118671751795503470612778326277052822282435623778964219603275468940541176901696744072218461204253362908778730268776424571059084801405004991904781060401034676401158732234234719338868410338772350936515180950297482636651884413301298692011347459022415711400968207204065204360397601326377804609663187645554663057655360044202563091404680431326760408760279502202071848160295189963614691253232262473646216467788173470577907096390582411272534001955510357496007177392310407123375709265386965166549215183881446943099791223600046779234992126324854247106221786720181747091480327264124293630029072817116933631846558136065529163330847048797392160218775662557523604660775828114234817625279890572285478962140513456406776316537731445522947722848036629482057866598080309833837815845285770797165753891349370431241638089182475067364678182611561965066168054958056188254134955163503054249317486279854771766241609190671776611028919129738950048015264603883184101008579007294536468472602969612584496802440686492376741825394237520993104330358985377935687549148822646819092702227747329657083213148064723425902569772977898734471650116221655653104827463351467637729386829999301933635335802079318716127017266557196847640155920811686766714881826548923313099765448927503600236174944865973633721396515907410206500712560672575817345497985991679186224322505790965242953739437113818785724802946669148449788961213258061870529331980138232752063619904656212791458722861407004060657043612170318385161706496255759767517965246745007105625923586295213830388163098358317439245759740759433427978789931679044101251755729262008217170358285211104282550846075209913629082061021660044285306344440941792475893110654029944464628699313379530696855047182649652755589962861269908753070227506163566909337737968455994291650901786461885877662903794466083181838829204943526066769598928163098932756740639802360839672696403543954158966604776843314559566293836340819464642658177775348607476609090788011385728502713293735510410678932863131515829536776144895689067106071880422904987038719812609694389898963174048712810067078994203820052045175221734403950161744351953125086788170981204199068073021596522886868077031224461433417171798567943188699426668617657297934356754213755203056641474983397372278778183862368636910720705717675082776820786847283461464919716411854910567038528173596814453322229538277044918879300595024374068464966755505264991303883054240670160298599766816864556963812026907102117865644934975774809402816312613906330694702534028432069307913377823010621074406318556174686326015341703128788305852136576165936801546652376509285555937788313996282799965442501851793217437821708278043516839740660741767291683505873657525324518471668059565287294703874055901111517920784760262809542578111012830782542477051254764627099155016404101753019524989177985849406127153961128410192359868037329413833802391376764957536645438237742933856379653340300686698226832995691701883021010067733410795533608491775071346498246188316585018793314515258178325847766485584050532020493506678574525423454089315519637690530646547790910133229790313121702745621745773165652927886885196823224470987692998800895410414376316181783460668516443505854798832210333031232387718017647045733434311133228993287741641375533759765733541794158454214143118583109902992341659083501367170652848232299426511957198675792003871652687441456617066589119353497154048432364190664394143404907064287868969215701380669499038770462057197133923256945299720791699202586615226304224443697881067601932482052499236388557820560948048795318188436986271058608497037892301410325711265140016629226149896880566352635278770897158438747847864886336528131830995253177671594806113862506812701108374027426296454086768744585563460816104341802735014337040462627891617730583003600501608895838733774786451821141249327208984203147534937992494822967600285446044224426011037383052156688350176233552321967781316421836932265803014057290922461745467420604838152453347552181484306256047467713459247802398898592108498078760925313254687832172236276850949346562001971917710567044345079513708693078550334534309629020344763678873647913527959869058101847711244695645151753824733943433618353134398605769304961474534623487645606464921262600387210682733836492076491202662197279936044610394907896409072989754057016638808421384365330736896712287340682805486128136132367556064331814590416226861740660150050186199111394036147052839980769592024567134455105823665467729270772267433701670153769264197740885026841939882085165786592084152446924943071689738598949459546435627264641819181912129243449522899933280765955493193459115403091022924222881881123558864869593431674037463438431180831529129086053164917247416700224357484074303011857122495193251018069203092641824779470291262072780008956054650493110182795021569453817493447951477393803126759765708323340249364795201643263068940794856110101085899980321030766760448775318377651834796716595681420040897425626191958031940094069207731919562636654858108551042284330935898238392850792862443646449328899022844500182756439965105702175651836953184737065556587196717136236051434312337027693825003219579507836196360832677722383870094330116099857547227203383124638330384865976724699220749802768255827996153414897186459725277187781136262423839707306520416675265561650879646441610838792098750790684853077533848982556279173834088581459252128901994952188883283044666684151931570947393655669142650294322271861269365650017835728663487585383217068946536682308812649605529348905181795294819400023195943555361455818676092899831586093190471927924739528708207391122628875661132176678723808248294716985859999813412690101883866714319257796562015014640057831545357036384872277864722184506647585363781400135184458103243081651953883360858974097717537832537327029855806720734643350140815326071003033128791937193159097350283332888765330149170361030755338098194720740311565300329616519920690653435568053314275275720390942637256742954882566516765710133469161329547296525311389820839182845772955206293721630797061432376955732491997382638453220406115632011199676668159107788161069740365084498458155299100860073897772118331373537421127230516061261136905160791547183201137974024009471525657465127796822494951092990779407446779435763329977293446709589134200308339142865629042250843422264458696152764705303066402018032408502782274306613474394086629270322977783264399816279339602215990676117440218615375506546754107460729624794869121645510204731319910399876461292188937469759471278129142446956515424506166973414269269868329927530542435265012231850436417555618580253051476233070876131405619090814117384262019779131858527240903309027019805150486883665004560794849730748328399472612078689177283706589502397742629830421241098580347908464564894630932241594642009047063365221724115748307549052649247978941963523992010793123520164041563097167540441471081967634737266945987658875121664777658899983508086657603211392050719943169914056830537097952385609001020370520184784626664880101500300817218762105072471935573124271412665412264856306437961946572268647483974748913521085473255745885658821004352438830556432347510130796486923750322969498672158585109183606786825984562382240167313496361624110052049848193824467861627777724890975908726741571698146047682865510928874269487063512703721452141092321590860826653683653355436205055377548970348338031220625493723643511443940837664258428598917816249847336434813560593564771596949539257680740478875052140185177733792524003907193150484932669240587771729533306648274270712791817994985958517535431151265060033670295471260406502313054321012015816549961270092331220921393785406715811884688206359729432873863147945574364285958071482487305151773998251085332134434114625688593014272792601577207614929908065018385552493120648620040015463615569902920800841251340658527260906495575561666885028587844566811078174766855581410254086639082542150600546382517620131861462489014972994269239114149170077069089745441099485611910990297852862293715388862418518575984478101225272566752308742084390457623284911202210151722031426033742063259586616605744675714509603600376883962050203044909398906138907927748841535009168239701859685038926364753389078405867537615156548299692952431893332844333178837472190241561402305813091520150922690306018241020572208731000324379901409503098085447483835413664611617746008223248309301688292876471513927820701749422201759831074185681112657354416000979540777653955918892727043802279734447107972441364616656839713954896322801113131677396043958717139460327184734323433472378529928133037289294063966546383460166900537418462450791562645523341087027768880583965095589744249899692995264976870792810364846795544233148089371981022092271960296252156157956428158190635297141951820281169333031254251553358643358857489434628171795805290448960388376073036897913465844362220927668531038736599221576646584244821185024337428288527748537870313813995962816048420585175921964838809940984232137159840719652706778055863447849395237693570730491330334564118865851378775077066319640533014224796655627295568239751411240655861029342130923485690161994917103895194468046038890080715637569998223629287322473183556892316228902569734285021635874300516420195925185235268378015994131916540751027282184351940830974484896987680738755395065295173879966185866245411602172127611871976641065908525098728499286684435390510725272312905839317660444186940388011584588056270340432852810294062672167827581240653993526160964614476643444190185243680848606717858311363107313480755250650845142995481334597135457011799260078886567116692032603598029305241012766400564885855183962112718318375022512616470953026073022951449240350786531450797088746826836514075050176813442534190472515858138262008023276048974242844378962866658885357629174553289573646863024354057917338357799796979692377514703826606231208175566972326419848818946349218953766506492198173219813951502105861823392887137180240571692063695565786003225412060427293618049952236495592764626795083818157632674425890655115934779503398306833069638299870850151855663614745575948820955407403311461693214856219031889944329454382128845282023092638522998429582349752234982194643603261290702147579969790874822201628740562884510993988933548815626763307582441308956465605729288305928735466447824269621773976312244608171985884900197871734572928431678158874736522522805245786788755021054790308383824963490628502986336491625890044684355899341369907315936810497321617769890391307588133604465255548161516233293850914568478084479642057412081803550786737699032874103276205691249561119020749700405939258602690093619333768719259272237491433925410807255681622927534151654658640655692661160898041700784157227835721697811318433566927254948025121435774206780844078380999647761340285514064994955867210442521045305276949449728321567476335240009602552777666559009226836292072941162777435644930516624838945856820310313250642802669474397136486717803722634673524328814877713111503530542026841431819650796560160931562041647940545876087848178751754134202521678572341213020682925850664986677661689311953631927157654918127877042839275840222693569825200602697425618378297384638889901834530830528386053862429959321897034940855204218547137383713349413969733536907590589939516469464348279171411761243531105647545334352128638073172528279932808665813748113164673213145027223457402231664915716070339930336970010091422299188491929398145884267203881594603270832843984561611034821628899334003250210180659260682820658890086517388747618884066854139114005452450915896960152617942434571875640672030690604751352687585216224305174837401787904866911699199998393242410403314506270411523302952163787442651104149679509475406614210595027171145430829611998456355491987814473838206710711003391328040839004330858569050635712038230196449744215613365929136687770263633007408805342626459402866016408548999332278450612338285185529795345502606178959132552712859078832798629727049103627555731318766815487377535700927384510918861541838343973254465957814744248982370610212195438779372337365225463448605958991364898229366570603168474781715594158281213830611415278388292770791250549803366946195791733589531230301789614574570042529597503512968439815777412638414504108166338279030233081529061047719428292222910427535784366002506750823750801036069020524336481423984015853635686591281715565889593819846699944572532080948380028534063025448066331399993989549039117742095490571675919824332648825821882258490782032030940788215484064895209117781476184688310220052731095252169122885061945007375739974596928364033107172806972799321665062412553799695739884756355828499190272229696665127447257172253276314111340830059230950121386137435826152757615236809944510979030700787175548943334714913708460782041804651622522802293133260229052366639542378469903308904533347358354139928031200275503244305993462089649614225843740391622926056462679135125911515948710041432763695783613310884588643590996818135504177909548243866782492286223110192693012992165506011309858587904829330565813081884848364468096008312196043627971679985095991373414621275591151372748806125330112423806629569098252794072236740660571142510102432023768158655221378760251007053497221392900524729078837815647587025411420678980395108259905223339182568238371076844554945242950080926738119516330479230971756888736854116032542404449413840752047971716621197644142216544501754526956865118845875685245890762567612857883454461533276600712880966292946009968455427178053760528907324715495790231516001028363277418374601656487294775128218377039660726314258464230516908541528094546067686159111415415011768355990002608179916657431325897239589982833990824854098520168153445878212878840677821989361981887039519512565645145970999747350083527294042715270377344402837068949104526576422086642823940746702747754574035656862344539077278653164654867304686683666033937303018180115359411469374975501642633780801130019017562874625936633351252247050465790392717348176184106578310160332917238310799529428537082746847335804421070396141790255244109472279504497368154570732089147211808193880535650385731159324401834466780032819903949372112786839507056683581788255205947546885887134375229844789587108678235735885870625285941594068628918402634200443736926392929801092822310022127646256058160249217642513225015638594913007413128155483099202437749048297553863124734479094444410870729028259578160547303400576573047846630847099172277227288194713186466695642456868190805488042126484002816845747956238092025559321373191704010927242502112925451437906323601750223349018123985187105805821110059539499605314247602270418389204026322269968347177977527378275146279223142553443083178234495721556166144138565250109045016845310100786646394523429920039482908984483611920773805487760862013871825129636710261205928995707789245449280685665729826793761228808271079080449561013341962814096972413698405865220691940454501246211147220487391366133873772805336882585718399162924457488321827179289471516968900066183107977266681911365834600526252408091957926327932155897190186448433018079181498187054829000301227691273829409699526715962311595072419184185266444637011977140103910222025033670612588394908109562722158960966128657270957267998801488958575846784340452294426186682555687039965710244716148231811081213857493585698415699839364246889681722746555106728478141526676936544261225183762195744721998889201849859469585790978150583097434831744222023085950893088706572265950743222484145095600073903628319876832411466374128026561403007545136990749289852793935230757688660953078186663453106027162123800336075139918232680260598422170355770733191650313445106280126587505295042423501421966608384430249571883262532538911409923549205655971936607895475442961340943926954121793285340351677271366585390269315458601867245398566802280782329678814263964004136971681689345319220085943139767530307710764785177857438185633304824537352555307344039452820527701193727412780167057052810731505986207863317458660186115478353823710220097451517485512906201805253449467344729833235861808525894602889981484161874835034790390078583627394096208122230921834811219428563744540313916084274686207171670693210984546920708606082341133402562657686636367488407684851468273822323427820321327629630544250973415425128679838852183374433102133202309526156693644666931716315105429405324147130396604227938433275105860409498334669373929115703193122242780419005017834175933255197996850519186760543828160177113267078708790565984663438167979997597268447981552974638208169991063604985995870763260967917445215503520153311531181635278618660342460099410003761886359807676877605340864122046516086228627225708468811679789204101228691506816004866819225211885108462899482023708733415107621829608445005065731834445707602941959101787879969470697977433489084120591464258173946606177047531959251949338354604434479876474373565563143699334485447206626473907420637208830864436794171030727075499354650289556757032061885072639280608169684150772090573095458385518179182695623427726573067714463629161410745525830442374355754078239897384725057621703875680317237334653536601016674265930358945477067303687961392429809764099323691317378232655068129392391586739975465777072086080595159987421202373449245946966045265576323382455932939407168265445102676393594087440891616520468782563730865153411298646054874218137110162352140107830018724013459940937991714827505916715651140417947929817332917561944196951121150375924182513828277204389388370995526064789408530601853452595354419034059688987033186424280934594232996149701423450489103236030158778360732545011963984184308803260829901229807935892173736666086675078900156142240041602493333746064085938627450327077421928084134036021876974239672021907057527616126425508577882380579294668480940025615814810761953237932906614786872999294439001368833706688632230627914903056226488812205531459629178623218395844764620034124722592499103064010781698884975014100833412331819356647878899006646068185228268587449820314821124088909598401572702767680217543249615873115135948849702133870303432942265245012450385158997439896734259671697101005613285180342787575964554790241272184809383044690746410513047911554706528452260619704501977201442690256739374273092888241261701971768408213348578745183850940685080097989135757761057332057830218632861973602980692202063621561663309671591659134223089997878704685944154527120271158652501729258136980316997094605322433431716072661835726164601840745431236842453728240048981434171820240898632586122646045156968805615740868174465838674170682433107794407219763189180069996672999989522971269918554558495175767075985983381772089769630438002934939841687477539455783783670604834359576539729777017336511731474005859840591024303628743737749984742559865161149491495536852213284536836349501162494408677588384713008196979781974470208346023826325641693508779880390066284685355645329535936215616597762016722531736319116829316960769709357754604456901525596451305987105862711409465868343693757840206320011172799509075324288701320943725009791997493902008709007319686503688786779737155969141766265942328759303866893184978912416949116471060405149781971943422583702326137427534328413975822167245380520105071813941992831979394260260932761034661277309485246035002925870306773233931172241621389049923558249374376363019879474549872210905649291683273902377630060867375091070449271204800306833672809455382576536299525161886840010760245585819496303170118757024214022383519751807976018279953974557850916010242551423436325505437881719570478268959519698369306956757982107332992311456176943201519837562641011930703203673031570986317096451641238297044832459433159456170520526696979165163179255291554314586447418092583713740079737248861103533283246676297681980398365029007815994100460875339949512782721881205773386094797349521108342227227628380431333725238363136838552592310285466193791796087201604642855353363611905780738428843332632574033436859807502638414362027126434719697853618559448225456617366631100322177434614702371051724960963907311751105322952218427012138502227242577382575992599710602303311750949323616887284329572164815176329599279052288920148696585720591813580983003719377576566863598635520976981690072161900636727735023354891402079614514961024458764597077329514542587291895840024526212013471919461116772318877377852539593646784206581730109321829436536690899330423592169714765383607830577290863112122687386577566597675035425455266370204527241341181554820523971893764771303073913974290417026485276751499999308873257539718707645596822318955073724154870963852179797901794967027022844820097785939716513975896786056940974073654468448607519870039361115864133916861310983174342544123867868419906138278120782116202649402749151373318212969859921288722685958206264280993814482048267252796081177652867896257616544759243222841111790185876958939366114409930138560549832375076504017270042566984657997804008629603233365242884277487858024093817481078904242791583453970011435998561159984924557687800156253979046602015926346678976977396472258454212803765635802374316061921782711720224238621334159450958817681246844331111780743225208881514494019961984014693771485794124562875053729610633557540145238651811526886150204511346328403572720271303953232041216872315630612555405217740999877882639342164668497906577838931561253904966652243091146974500889939783971435322034470479165120454193004055879393367872327125994305327103838758435776060409216510148564096516191467668849949406127764776808936193832115498430435356084886595610416947744804722761431570665056451316241306141430689115208906896807984677982962493184204766153524828020786090814189339817945697263707673856153053277355726098489836817041921934950098726620394064412056670431003384522526888491442580446000671018641991882308868337234922842679057934457084996748386961799779053902496793953739927832426830611040777617542376243195198706097415698066616313968882530561507714581450498367741601219691162652405250215073198275341579909377890780850829637142975423007344632921457709603072987703456499875102113601559744001682038219692227842063382375735084280768713757905941788425337948079731953891269597899076271484516187889282237801851250281214245926464772062755050553732614580455697371935609652736361900825138715962778213096986293934864587715307713868999536378212523868976126673530531554147526798996653127684493056604689186602629241793079306562007785717380284939509997734742594404001349467012322987817900488791463935481625263472485205326007534175996933108724098692226454908491910145598147683010790472950063505064577405784134734378708088400966574184745313332386545834988886449922817011535557593192742671821889841758663524650228842606229638713650024039622777581235185448983560229012556757460974242938725855450666932781911503862086388041551682348709917389188042682311500929689544945089566945463206554314727131859378559596396212558068892877362226916707906494879243746599715894372929627991652212297417895133923287714292790865006429491294646826250169605156156327907375487547872371996068687762721401420503918081511760769441320483919618575883017844127897223663599797462204336537982799943633892716258175024500493112451158465573382989502237320576192891450329360059161775559704019592118570071416470022960371531554400252502643115223029021678224314482224658659356853365062100863978787466761352453646238659022929798117528962252438322485637399230820744485770160284886411880670776306801853168339859505135374688085806987018109513676091299294212455817660457296366375494962610075396999809837626558380933941342580778833443209392288920160123054421119163885038415074340567278234344020317390739042439724769244196284114518099091822131958671418391228216760195878280775559698708000837275994999383435653765949763054247269774047527955115959939965370909317516016978650712612917882367474682470720691626930477784489701171480497390430522256640196144183475658752515151242080981905557307410095011027491900361892232384328882674890193221252632909821196948026060497139107175441688607260893919939402506019385580473216293563612681360579424756203444720249615987772961032651270664342440712750743976911821781590322036927968832979142892297112082294325357227819724529463222116105887931628263848301772652331201559238459683475906302728399440615072631216953724684992701602690400109818594203758037703266436058090629316277179973844615961642731216918733102580247162225110438664826870709963708150255552966699793017326275052788270282881700199787178564009637365395597662842801156938493254716230201247285531937405207816821740691664934413720589777081816591095089349437315613955706424294875250505670136027561871915987694140499087202011842418844185273486745664265416451852519758101353556812813225801201531494825871336419761751662869425455248082613304951767416610424156250266157136955412758614683291598358735141968912970626643293651864952267634853080454498825578586036812628762092388652884390867106212918055856653676586864215620672616985140149581975540892948756577532239068543327814935440793374585437325897333793577872118428621500201451227223393090039842792480704892996861099874677677246813348736365678097183917547597483201748364924874528075160996133624334222848072723314615640165515320502888883188773712051023948593248625930941202058247233359365553275380403643704951084623457211234512811247396744850941142477778447110552251992940593243681237476396362681106246295899502818628066531023119900488522311361699134220839960657549218387312281927009543391475906665543805974543068260671034290544660401753833406791251702652127642280497715592704543115056746061201323603274569805088463307799767990459859274076572402911828063781968951350051200065905558039338187616609586539874900406083110614314233827581765859200211783786076655973765959149853572286400112116206836813708536330140610883482426908678204155997533367662441596762175313221376267851747131234957870486982699099949895587707004771291616292938917881313387284256533139512827421205849373359876904767345360367962733649564048579945882667689252468799103950802509831955825134872575724392284086120924100631582638671980368238077416652555339201767918413381245347535890941904986440769214813704139056807093502848849126228450715928111919534415767837219997088728896883518184192582783003651141386221452329421223799003874207255561893312232068168099086354043838858317251180406632785594796631711442584905880373247164188157106704476663625261705640650672465476103693426691954752743940010649408899649136639184891449118031430600166918003640394792204603771709776966341358007770491778781375304925413558159153751823230862416992941043245963988438076310687825337750900740583561930891035974182551051874298771201211032079000155108624860423190993277578074402436155020813342937978544055023024290290887690495593264106859678468281635557505793693029778347808186852959763210831767101773417662440703214278526849163595110435488025036484030102282753721182929481940430272986328174527407135125614526387888711669707182279827236267231972461584358077997540854942786083731701517979946229257550844428701972113284686320241929364966799099567885145423908957064427997153334329253673648607938506102695821428351373346207299644382315871402674812681668799759100961349945746590693353597386419506514712575281863222633750902997007026046773270939405442811814142338147714642892750003864949795750487343144606273401642623967640649961929681258009574188883656024683824222416906224513637663419747250089771085665960353689335195857827308970147464858257683573084954572835029408245085547423844087551977010395330527970117232382303733269954534520996339662995618704729884628361983596511131789475971375595119002865726451674896115677545857892050407263338068623054369443180572483568698714141647764516315923932741277659166931229338986001953790067540506858436626858948269158739429241502915146488377486697836198011623251674125054495263114625556541511202858677044047008636015302001263347509566298589641640790422364600816112264742568693596453245286512289777699958816258697864234066315207645849271304846217973581041012359902088043910269065360537465640867000651297348876289334672119852120433526619141975404453013391299323358720325973962066714612626196428163777522749034272179661059626502257532821826154811500075722952472008555738478217137624819656843474264027214996262575010720628940097402487402048050361614675497297591392824898840991710929903532175324240676178102197670920444071222366123104749590709272144784954863618200075394576532719463877629698585221570371305739942509340001180925101408157328177840879497598249985552904467960184814842075418535494487965864666902083548692666270211041809962125879982529537338692288767106269907320742477658329381473624083588751555772535342594623602406601469092027973379908184078607082161167385482348311971070869984605066389716609716666775695888865665161151285583478678646872716502071850713837124652800468629562467128213314075458221704364192145616563864473451414349342645308103642418483080940398798524911334642682573804923722812727794286105585366264922937495586625260162854931323695819394546577345600250671967298972075923201227681158208821038476669011179024511060306264585836574519739631580329701599347555379891065758257050638427612412757359136660156236894492363001938462406305267917407132523485410587376028670702322539402984253670116208344737320125954625810280349575299295684332141123660650694676938848388960318631730083200669403209731765423045921713699809425520177000479076494956997970973964533069497079918137439950612082034645861213290459468059963518071098023071002730038152878134795634362944507752577034816677286502034439473375612577466203854849909739123710363635893444122467391828497225152753484607955930515015717930555342714928037852799132764717252253874340251311076670284752888510238693883306573864995617364602749749293180835804363913994107556926426061114495423303075400813150370779598679888328720570510536057095306787021857129661732832776069927123537872911125241961270894175360445706026161258871194595063633258342805278134941276406714665193568432659843926045918586760876457684581747496494878260235097909113977097182310495415070071702286764163006066185859295379061972851777632076300885758583510792427440091809938222208849848359052807993603764996005224468990816431871710148152572194444369122624575044246516028706339983753995713657433857790715725089252385936639491022427438031486701283418225541956560104538542079082443411789073496098638570232060304149446662716004694660516884571588837628573564651173095849821450131647907323108719416642944261609056133116871557442068400316280516155909309922075537110295165044186662934504458970968952925898374809909195609418942972551240537202211636520634664348443448397767178580748940007614370724908217969642629878436269532223609441629780372239402143357520264398233644546798932647644395485542761430656820559817533939010335517757905215140950600747750217838571457901918321283870330151849380322663933281369553501838048922467903132711776261872145218675326259763174342071900968265822909440578754402032985748012463457883622904645938063645161289553010128929092971604314641070850186104143518865974997469659408551156995790719265964602493451575600646780546976166600653156469282161465816403418712642391734045043260367838252265446227586268884016834512494094646373685839874514708885812163138415851587424873664997995657211924560012409204525988365969385943217712924717347538044742753149355050549759331968867105969287221702874698694619468041085856743477877201241872724444293806195894408379314068124149615309790322737973761928238918854114942625750783724070941470493241329196268582934614873053538129582795573769199579611551598578836908081968077961050825492624828422771357595769045927174837715401262835694184764349354104287837449344312111049262060790268935832146028240652880794232679468973166131374162878158882029134084038480765205052062026505695804464096394667990763296653545220375018295308746666199739169840428900795596235379131055231731768221550645481451812471338007013484776325368855642413999588381739506319282408612282790661848740395311435129496734107449119768268063207367302771119034969976188945781244940956793028703860608482277926930486120675130665562135660156357829004635281705047250843040937628715405123818731029367497360842073791705240322435941679901308625198839951301265342541363662572137675343325490443883876559133111571069206724162748746935753888329952048399296792872124288630463338162903866342271673952788917403283725319249993569983864483111873996768322866992554118308656787365350401316271184088071206169450888334266685208030986852563157686049784338290828838532218952779885435908598077318793589181159965317943286536900020180516935372640826826921837578873540216814423189665469396867889308002608718275934951334131355581658951834934519868432813816962065966703898436718419884691345879745307916129476188068721530351716724024667779718959220987580542231575916041581499427604611016899109827417910869862343249578640492911203063533954993436721994958785498644234320085237230602779928199939167529284158135984759749386204084668089739560740796890327705867164368400467916646519852750857115870497677849892757113852629295554221102218495665544239037110282368078867212522088583726414733709311653229942948675768154673636744143459418672326265803849615403743604743547613086038454821363948484920047612211358658623565812823975008360655000422140907160883013514075477432869369480333193465719198464418198034278372352551008019201924762374575490283247342967978984187043410386424404730378708601438541937180356008071010146252058291075783762469591107089175693828447216692885916013130965658432227218194561709460406271652099433274787217105727041571507559143254755433134934377379088008857111595421083922121274113171273042779813235399505871517123710421039399240293765395545270306546598230805736900477284353116565683528583687440083701162320724042088990956299577103311747222451277080572997564192610826558993251645239486685308573272912053639969886568735503831796327941899552488595469623470215504386372007366258072129200500607473204042196423178763387317750341893434069162367506617645843741120128907271718656379718507503163546156329557063622283694955771243554019100952365347949648490000458128286961342219333878327664959065991473914974764840498687149815892620224703001989369689422284594035445680270195348563147714347576131484016802162604456938966290846040678053237157573579779602706139005767647838012769080175044698813569913819697426721052393192873625448355519278227785388513897713004841186279878493642263086820949320577173072006252427625806877127036178531899227736180223859049462116881403055576615219065399150254542779251470545422846141705578193745776879336483771392159407275545022686779327648866866859559539010057285533173793264616655894862068459709623654233079684041989739780517488850790122343472710010610910055236739738884414228736885397286475729248583069233515958344371438010393192539712834854702581035345985206779382049755302683134497166386138151726852910946226823325328077274401970335169373370880684213291735135683939807948935842279603177262683326800431985047897944667373189689531237457775745391537189077502786178840592856547335789387924051829041445438850740324366118645721195590013602774162964043264131030689652906726567593549237060974111664428273940733099498833192223248091581579662719438092817747418641350817758564746340860689510505043165399676187874316035985710957401247589394590926773694227622590547488158210136588359346037611113021632704133274808779585814955046162174483041969996788944671496538774413213710381217079883126893049684313204682496456221151898561858583245379758961541040677396031501723377982146250743972162462987941490986656944889251692325170948358100300168363088948714149023937717944193739578840454503586493381550239115889540129670698068712931059768587380206555604034152227103217996241132741495671893115858241780316020071222118143971343202640393192809237169760657958671666787592218063855409197535185331016731722859914120475619260402681375837051622144306831330323409099910106580299394250486878932912297476419124206391619939940267568988247604389124938078529836786688406048520248465247228362212918260597788168464381649245302815961593311269870161307520725119996239101182555285194340475673982804603491964606993646414308494523712907550942921085697321599026842758312245403097752473802134916763070840602914219727039138817714216435128456549573598269816771461666352599445769276098812949243722423310499092087253563684580552007868577745003503303637098889058410320199078335910233038827112785735745576158691804930410952711436329951301162482559675062797140723112653260440818888651162392439891234917985876459216225590549753634554354838102564526210000871577405928274671724700986445303258037682983800256202971049111984628497146974270342099400657248349361499978161124458886976237742456008874184419837887500782607252931408846309574541207753325352624128509433157005241016064183461702796998836495860435018909284579802264841901518898588441798275971742604528707979164375886934977814709559596959063516267634720861031249857468235405804669919981975696398287184543793573739736985347847580692106905612342205453327729660979000560016701961766666477165509677128581205659280577234166541066069686122980773885814361412286429962743193670953133588821401089923095248571880482169200898199747159433491735982422806238420284465936998825861592450225615833698800045908923496574631133360037681737728695018629706099199435638141155026238556757655842419945986939251778007267591841467643303244952250573547394409158374461912041142667345721507686373929230242716597117301673377583542880912720800316997843586345240690880747072336873218324173026558657354940840786152496661851057055299308615514046955610868180745032596967707699956170803291903875333877257112828137468096138982302324963543570934377671633347555626996504141916260944138843441691598205096456871598018477386564692490684349390316832675324846345781040839084603470577146592162336745634080546695900003253872378970768393374645000443664136977185588929377143795857919909915991714962397364638311422133193264067294979198336653150425258837653265828532182087386000246144518223939681774205368586947148640913557728741787188534952152478795712232334951320937576157569443830446628521611801831751478752456608024976380824515135721958639259182243549735266005463352228431624315705354460211910155293188867253491338983089592660246241280648029639127011489996501390664492279738879736634781091978245010567915139398785091006007399400147159325081531170933960067019684740220870712132494695330587103155432647183343311525653623393910900478263491364179622904248288664159595984779815201871456555925041664999099364866763347621538334235605158771353802915318385668873142598774833543136296207014626656846119234225077357159055021751045941133739430089909135064260746538035792777963142339801661456837333568302990386569978078745190107333935110424254084626951283533640419139314954029041319338240816778838192657038766004701176244580146122999420407086203567626556891163196312030847994234845689136341841920743847840750467792379421563704376206770466199360162763586416903993363820552595188566329227573860028052314787612364483154708913739422766512202854457218635649043920006142543482073727366818122317045056896063780526504875460605339873316946501259815435087932478737372704651275538689569981304056089293748431739342832258127430787534516754979467609674487054238762175846449809782851147335092530360946479104991271814380117968914604156850337899628419641992078066871208693244454185794850208895181124693384368259764948845202286339678673090668237276370945310039086905306280891114409571205022429479592143726203198537477268950741850089763448898207736693376321440892333735679723758528996933164814937099554208510573671414038826918934256617199577064076031676630342036551520022835232411819987766850066124962659908172706265920798032803257024416312947162064735780118334221806902585915068778080555725347361683501318895518706908348388824850381222376122821538619874111626695183925588893412307953480481131119575370188644231548751882522505078711726947977169977388758670499468259021965965568078669259755857029341292039975175422265797160614065009535733402222697339216801784411060008477917987683548474683955391244155371589929679409170682303541594957050419898246820407795265970292569757412120421562251739592212577062100745400385715446131535239043029462108527382740034744987718501535839438580718817674882938892342988428673616772353246754719991794651314520231329923049512702079264003814083263752558082671298434427343979059071100356210056064893921921804192041826346034906580319999875212823568598800963133017963693604358062981577680644723311901089881877566598248145933787153182701853257002036808796265173056161757363611754162112669104236821056648669379006529321783144003311342471086164081800173794586178448346326950258260706129983653546104022973095909783466576297370049882898158907216652529673424936747662337951734411332766422712838530173663913881603977456496795386716487500004158684119884324315685406536341342227762581102452691709289416629119260083320548907801154618883131934470573950857787818825692429273815641283505426853485538549497791939911951712365008156652473385357932157258555815699942785583461863629945969188448886711983039693937749310879713006955005454020143936139782936687558451509296367114869256207031128088711977030666220888192733617900385535618847980929592388431042866270962933936542806137876989875232626999743533440406628330133379171611863825837477588872381190654302123397064908536162028265375296783958078773178473972143258966238878139433065436178343092203227068199767689151549961670027491371536433125855176749152803567313574511230198459320721697995597715633840347932902593502330684907179424464047858055258063745720716148127139011243300461212070754298038469872739552473039447478217195409935977398737584784446096129367291220916706037934929743053420230273393178962244369738458717569957905269620579352495510052100203109891467351304529263721051578546858107322968379628328817651979441889564613630050515638988065556860750515450271809308649429874804348125077126074504830789840278051953871609072790109196149336585486533455400126732621108356775746851002897565579590553442989412220677901215378135314157161557705861639708122709462884963649376552481648581759174576480731155652271250841915505355266954053536682862215588443802190170081953625529666442736254803388894071284672088559669081619812681247962570510719716219223155927211102176130258675393854464937475562918198209217405680497175799094842742160542145213193776194325311436563785186566488258840981329415393306725186880536505059310508388070466400312265015289307474011024403832310419270464935517524852581009213387295822378269764742378529073771878548619037797695509264498577572729205819031089703285844903056846937788076584036130847903979373727539617265995346500749138275906914243934536090254259955330310227917520043642037859509953503947814639385789814098830148468621009466745447677639610497281287828987730213476054960893981711157134226191772092984366086600590544000811081483243632886948550750397893520954216746125241735452137792655692423196343463075624615521078875866612060399108187905258358146395972142509522412861196411671230652934089367138486052260283009331691534482050471821300645273294257352981095109697466921908321292948614644161575930045146325049159737946089874026931701331538217868036100060578959771270551264469716044111724894357927080569359338786567129593480272562041335914683700330384415255488609073553381381672263582297129964101138253742765947561951619299064238729120397127621665350405269657764197353717901330715073783225632671385161979409892581297798556390641123231481545693316294662152208859751291529638793892588565978786567820616695673802662175989139279959153518396504664087109840751165185685498279604934249461843200815938586463226507638690142561032038495498323038617972404795947670512874469000252736093599540202539681845433263606240190451143021902820628219124239006638461950438702751042447334442729287840381447625416080280325900955657781826168401199348001320595812078522402807578789678367038346338900122682331034784519746306708196918345944059584893863405607890820292661731652306545008553770571334882116852510530798894935697334136233843912045874629022900014752825078411841019628327956421757337740064632320911560783373279475374476060679922752786952612859244289226056344271107288957207407697638966631727832848320337762801418724231144298603015099279023739677903899602063108530592046839090474936205721360186772547896765170916264995410441912418897751540065151757268640486821407495234007829823206218834763473680290938750109829146271589598210982691062053056464251454238995281364211812285771722772015279261880763330876226236246320556157484275027844274650977462906687257485448133466409192530614824270943786195776505499556246729990106822703323673750882592755374598857113442127964844354194444616036370514717270551964428599830932889438363800151400681282633242661861460711376850058823631204261691549609996179055820007772883856435130270348888082103619350796408214494211784477384296347770653078520970717930406896426075357083440408705581233663270080111180792385210764006042447993202046922204864305753983489954952708653924112577580816284286547807079008239214032115632783157362396735722670161573408671082479197224680753069829614568230512855468329393153861074842134922256014996896164654363495340204932022376921307378357110543757946935490229686949431918478270380999953738308913195291101251882682706592373641179001316705022203904224770875706681417221793811722701673827721467805020760446599556633647863074320209094087055281265164928652246455794400699626718263149612254226562003203082856474589961634017954285609855275569749942726425111893896763493572676076193796715206230892448302524294212188594013436119853694372041868403460488675394685362242203329750476898936159513822595980153613351878784322962547784788924542449422732007020603225040582670586510430321229241228859366490805709150472376825561526455559782724044331450496681513455696725874479088647465241340255727640276919544829718123016110427181664398973670722605402825166268811921412306257257221838110894195117348943014487676228994294183013337880000351882286076856558309799989477449821812944554271191504705873812906329067593782441335331910569976686370695585329118963003354740396637783508348060088686351477424959213537613425382757258998430816488719567029078123964643357731551431903966437089577403463243140841465004356008153914058974501429003721444643412243909906431009995292877938630085477212059431639648727574387025108864892421890884021219240332397592362094630268600782948190724279752579680663654663671812515379525353041557836882883523682159015880918958876966563905824393301706144538718221636480869228005930737552611335188042077504340184729787410844610115622431747438621404439956737353553755979145151384933291514155429070535347482541933037434901789912074560626851542942804221207804961247058787943537641028324989545025502433645363146242076165960575602283347503475986280555893699735897809284808649472985506018920304274791580850037614262162449743815073819867478293894002534582275065434345802858329719219363991776512801336246740720860108814327145330224728771811074444729283746057841089780299645350076886949023766061199260089526941893248058776006546871488783673864881609396514682046879945716578613979761560406222335314387272043503182028758721380529126730002567036786051681814433225143193569326425882553965076315822753332975005779866604832484040727468609313722875551367580683700220714079607465624588836015539634659038086713586843125086501642059240753355135125318714501922791589200165535721552542308682523868151207803708905228031091799030327353861836654225479563001076613211242153216058392927610253577958013806332102853278088048828150395144600797867817255319454127701808333500014144710845491845026775227928629351628647178987915461869401405909472296486102830124841367353348859062202716019694915077245826447755475691202052712979849862429043785922318121667334471390279300520806692218564076268974958179173166336056750033546566108886470836539276425209910709407526717122164498331410657279925096953621893589034993909455615305110438847805200750954220905147725515604650841673786581799129004960583061664717291707339114213641825784758685621502118923272603665000185206709745387642104154681655787063634801145420622474068692227046013501824429964315018718095659854916118391419291660488119005460027039282410980617948727549377843379187982407443503203484138927413947216676301918789339982458831352799964384747991553460706278869024491806027358710499286767351377557452980845694984131492093863568686076028161273915845565549384162856326151224562136305676980803109029535150546026448087415267497484229424602579890511644259353979496922384686169844806988497531798488983345209178394807236486303281012242983738148178350302708038344987075855648602248966412953640928720376893734106516190253953122666532716590295767605341199218093606858594490511574287030312816966273087449154508479055190878624499299821188668957883183984967861279679900953249133971655209959721284381935774707506304074776721856999168534762188221095660339307661679533404961235301666550940822153742511253156795566989309284320648708275583200364383731615947036655663984045460251985172190226160807536264120388738685472737863775755372262030762272237570642060839013705756237290480077670322174937344115313308466829414303282687149091529392242404320075000953336507310080413741830056924881427019203414198652267314709695351809173564637706649220981776559446664509491841421863925750067690152894533091428638139861117636068278786591826040369149782965540554209859398519073465117058159914632121437621496466522268317678378195364892494503046263414132481589532641906683062979107944013161149035568358963340889296673002741698998442176015856916275932842296021417250031349953065661903132357800568874003906298543428756018898699580786544724623442266033153842504990394493845934065936924643651957600807157830467160434730481279172720193421673658600247147235473205073232171106082679396173288922979321457563973367362318288381765217211609077258696627395827035300023150811282653077342089769119480911682156073815700078129285250045513388081133573910347854249637963574802444045683643434181114897702977163586535160897761903942256713926176642206613950909330824199000947187997128310975791953679919459130950650913495169865224926774925437272404114532379712944747931446510035815054881909112213640737852396922952879146487485083271432523583535756041129167235846142148541800971913667744503281314644142811713123415269859038186133119627553259957677535961799135796074438428941288522338469339780196681971421936556012238452087189225236728422344768634527686438490828410605273520379153303480432724861012227939034113460714582618364819069658309034004305647742554470060486533732207604978330958640254419488573262242177886917914083573888877674552950678444511581912365470574858654629722462930085658900975570151764683097038067721208283507459372796581117084268127853440912475431551574576437896997069300984317054109371401738688865738464326678169314110267189845138322169790690786958526441441949871397440187779414555670338998439735853624459442486257056595119203633716801338580889609018486349143594189238324693638009128147080896211856612956386379123950853618447643657782161558332798808432798655443030008703320974184629559255477204903287931676080007680300503343173274082554523910946891754615495688742336988864775263076816080117658019602705320564715477306285149889233688670445512228989159464798152577396084515084596835185141987901789822023352164448060960714643681887046238115525291889077919921485528223090421817585199967949290532333251815869074641888372285596466480330302654196323631845116816833033124794824980810248249636939794850642652588631817473321307681721327388507714631565420753392528914737117310167928266827834385793634755837242939784592645414530085786634754081984019255182232224831892767618976124953729940550030845368731212849153993592875198488252185056349168227590184683138350603192518982699879164918089809258198219106852687595698682423031278994291017594347411329686602537441367255762449726220715657543893317476408309686077826492435111923543504678167808125275364741867130713167821902061194976576769079188354021022827149591736235311237210046068413338122140941137470388056522434598505601622354181069101667206428654072826076345957144353237778603796367719691579098303521186762601507747574431028651962005516659261030130090069025089127760101870515397646893106988155588995902451013778406667797320663243055143432645503748836317819532499744004291688111149381317926989734059145860826691022914927122848683241155019840013151478341417761003068382560542988237139547425829281779124608417060966877693076751305486362984794031436978353114165668958387850554354108440228692881226664133759156007034303652312748351098884713096771161950995531791068664183426302652366270210511736942706453825996920615541120989240344074386479499796226554715699021649739891006980253115823943136910908424109939346091659161844328854855553161897932839927397515396455838018205485432112658039801352629108744256003967263517636057811057309510795514889296450481358336785748251023316360682617198932703916235952862702554912360980452368601172532656654160425560894091089013581658144978471996691856952915410064136160487201393200075278380793626538023446283784141200905048293096793020759475920906866444408019412572855707339445953808318685600381788412192284941567476252663562948535245193213239487294298517092630854736842209357789767068591016785205180893125454601804957177788508290804019100353018620894625767299842943428195491046854612269297694795253155632762026594150949047810416088667991271235906879806809262256477559190008112221902557070138496163261534585452942177140204872283701703891793290697094642360873690878093961152807196252764404915952598922987222282001078320914236901228827621698880943132221796048342297708105772812150798406619061346934537409840976195935055960293339753844206063269780060181173132975539562978328585432959704747388580212549831875648570177271656978404604261435702063252682793741411290093490961894058406985220593414407399791903633078832872204640642316936047468584013661199089519501607492379624635134388482545666963454379658533276538015392167518507370969690573363498044471526700758219636604682566809296343558486676508559870151796516944543338693879107199676235961235041871323825820530771786861055050611735393566057350739689022304062541511755126743369181369697058426885084756907365464477987900758658661534745590671232700767360315341719365570075653628801176928076057637533602598972886094397684855796778193252854363446632918021122370386867185486444095841438249203529260588992935916450991327109817848087698849897382854661664767378574541847033132468520441851775147193134518068395968172315937952833513355886834789830854546677246015176684448699423360765837776909123148137918130402285288120748473996079051076894590933074226745614930762046409222835798238080227100654052642843740597160407449053066865342968856694471585517969229245915338836076132217640457347436789906011986995240616312899305261445106165576862591355844874685924459764265167504181766480025233324353873268128838477338311608104245920227900468500412196880995481807383288256873631497823118734397527796471362768595812308705782713906353174749772507948550000407747711419624986071456818133558532033660968543381636673317734146577880464930468619578679366960164217217686197757239488583657434840572146937944022088858525337332104152773229685308973619234186876557284140617073479724951927562800996388010580994994543404204522500931873183276155464362684372421825395375016723174949834288951844841683371060207610342347825014263277235673593742795490520629662991464302908521072383305921774493683868507868837036837909495042237453138011973884145677411209154737086917027681790455146880199902871833707159740975713061974676596182758927545909708817180712017303947873811003534983205243130674188709585660222234850050375851072112820918996147321692516232705593735158924222659579059311849378490224052277200319853386992475067043511916100433758673499287051869100746074301435502935323058028908424156139694869459955341698351080320216347664780740768963887004846490476511014572061781836023718062001887358065761648707937016138812870103943726967482108616230853824213814979536410057483905651899939748722743742501997723140199780332871320040009282538943632454114741927066811896618037250101637544154254227562367614886274252711641535910234604084924404986996940592356118482363632187120804322513786327685493264851622039367333713645125374089898969456801301690623500349002964778220012090306690458949848476634394661294905547092813759451963756792543161786930272315514972308275367534305353234855509895558079103280735287106905754198980338855069303152821509530332084458581223328914330517588309233617917169452204872388502768561849148509783295712529701798092048853960741477686844464207179919940635709924792686382099905553033793088965227613564466590204592944528013388905265386500238107336121575792949399774413740220920686702173650784863886038935273253860231914094323519911133942760753477521464653975162205807406345028280296200743746462669527714497187177922848740315933780370495768319747888492133415508573057111739963481732709443268007155763090866558332449044482640225064728349004731393952645893895231521332262737210753828955164463073309480619467437374906404231743366778440257766913601953138055824353933048601885848553731198002871125907051927818780679234171146948334506845032855625183441756788244034725916628224894640171112110610129708920474738698497308107902611645236283161451140468153872920472706317549788056528920690753853962239042159309335883256826706156533984647295596664852965967923940824104387355579852360167879954686969577918113081634755363270830161061888601937691897093756553954179600774218058112547398966767851006769661008654018685043594001045231694342496258127087139831488403231031294167353845284385405267737201340591696335200032365896386880358898402453583246019124634703662704360590912701119776564862265011272846643731522374538074293722742857658656457637519065282467190532266760136235223684259529899909241199517722127788997882669152577942838279584499986076244611372853250797706102982253759227514821612636817666651769755635155655021865602458373176046826327843646269887501407925914467605588653600176673854191061649779271231602555694594848684407615009197862753959000122060303402015366234840286965148083153915800884463356445367453410467002712794491294406627228533232403114452132055276497359983911664217280094187008935761669605475657022864070909912867692325562970268015553374637936955377410586705473971155323633324559577194662811279893995035316101400895946780808826708563713305845659287647380768920337557235760480061753534238683174665822614782832693969941325185263502806234050330928798856454497082914671671095610254018220121917879033296789136475165478663671939420629514576060201366443158525666356646531638846838949165134127880880745348993110237640260736108499080424575249649432505748689289918815515615260637646764753859237907807339703189524088817950210773432433161724931130462079198541680583205691797903408980882438303814324639762976135308498763163248098226148799819061847375956933899578371700762695742026540323611325810463533478915439023172854312989281933944455537877825659692952158662651616214216338504188991264858164753899480451695931255720490431906857940035266938979270177520707687626216874879544116688127183207565214436712956676681678884507460015783739521966404065925938286054223050554248807396507008697203754797863253361948353759667568527011853742095837221796759057789891733048983484475374829011876765812062577812611306678957996683205592680383943160052905206884835380198266640976149767276823020442854803265690735879376765838309018026812416447523077892986317248940510625668231812062106260486401319211940084923859675597212275609314673921593473049147387552838573991886074369109842994814798173606946400326851311379053738364450519490784657804843580924171798493137709594930854286301756335987584340096354510309508279921150271945320871309258426309906640939736046121130221341133690209703382502806908955675487797494982439219037440975474332675958947102708203312731412961342182769057006049012173976262374648863593183871986576663579257841237400301118766210871027638556852420800468354824151141226438395418087168294242832953584227347745381190240730984370913897457234109119464172666997391342605521487216004556408767122442792242053490290709410966024726543379760227825447959965570677776229834548585398011053366709110206321471004024228778490415858734531806648071728616441050174600140924709635260932015070935636837634668439871093656948800220915658423379240649030373361675195864796409816060462873264424010323708674588685170238310315193760488768019874994613010911309771688000786018746711802963188811667081316107602512956295392794914222976567265259402337019322565234979503073596317365103850136277252407826161974409314581603918569411799386497018684307260096018712109696986612857757497485381194874529062274819018986992823321647249217621434065898385390920289074861221077282126469389749724780781369158997375938116749353334033368936201020991306748452813056441880201835032528679866067319163908644476707903440753452746325821775350819697272186730778106380916917141220973160777140651276465841188784066319530189643888748057176124085696120307094253788254596630224150302857336231504824504578952394824215050857372516161038819287499370896175344942492770439721649969603282214963748946899026436470345745588372140348114160169562531205473835165408680066148014711758003081786610932237652029767674510228281405711988006298179310331623413162891421531632774231743948312079968070631166483109690850054224329813601667416683495944449403935950487518026132782569675441852713513359729887960074990836380648343190111813193756908141953953841037551198881881968208863603059490691544353393000352194637814404354199722370221360209204562144308707959339820491911432532656589317187765739929332101783527556646928683382402431410875033674679643858032900221195924112624738866806662351795326611850557213923499975624050271511788201318208627666318611273404554565508529733856928274732518788881161448282326004823830510979253624370828355666597132805722665032476455352514391853959892004355752289678880883369045302506441754526134534784327853420297404385751283482841119238761614169170789889771641056747450197482342684642585327609971761049328098524304464767811792900232685526864272882596979284761970801646192599402821284587881821173975884626095739194832103030246272269579218353563548077983070335520707243382894236456279174012781919325494991780235398394055435629019051724302343321726739319123762040412217267886037186491957249818806902309186910468736992313786184321266227279863064123996516288321565430446651337806836645187349717595315371745505435076395879276107380021287885494567350967954145530895969750485750200976228638948248024631845700433324808880216651756801944471107797164162829127340430351666980112155022181015383725633000707268334321451705791235212797946359421631821921393942899182680224447399798047310717941292167029381433910740365780390597775416974191996935724075087274735746654605204229115359793097739702063345438303515322755733696570703272994076993851922268496089506003698707973206115621445424546794791049012788277515586745187243637475591936209479273678954366724687311164759923892825165167250663339390334617561185034300796642875686017219615499698176904261307029605955397967428726716945662632002961433753777297787485553073478691621453284002130941154383737038809334013476953341102020715171499584142621102449652821499102386641905594764264684301199809504573470780478757110135127224213499688257158888394512041505924846668891652703225329599993737784439233230719659743289286439305000319580371128551855866048402832034101249313373908960881078178039097080124679462672005237873549942616642366865709890865090516538334271878302003769957091706241473792509583753280880405294602069230048535373242005771320478851427425711886999395300446351939705582122047737304521735371966629662791724286756977813151276241901153591244278057408117949074509651581265770131223770479657376774078478812841526803179277613219979952844746364048722664761648568622329988401743161518414536581571022358419936035949973461272033425285899699598948672779802700430733054700004379846326654063473335788504927349912128755754986913425908222203579087999615548459811118958324079498919182927702386746478300305209454433742483952297738570969517827631678438644213941071196578652841261512771693069527584186242038803595680862237796768157947026206169899118982558278136988703682439793644878337653204929128164818287585513536045362993986560856581002677837184540978839859357122647787981567072728262753354412465867449739514142742338467687851230865159709772295890838031032887895572145800690516000720524881545483193690047676531284206699783863055477111791663727568216733428024938541557263321363371268815912789658014494493513889159179898551205671964546659472258199022889168406869818646429358769015130242688251728237699636863794026032372165521658007335892550260594615735665722441661159800179940420600455321320641647599758732444034183548108784207841158241373107781200447837186322368719995163778588952053354882147734322246247407945448067952719594114579573879554916806697196101877828555717450264219076083433453160616595604840045560389731240388759769039418984195527062919518825209585437957500925124512853639305730700899802235281646458997102701892120017617780459113949691397215471544790137784308423023369883893767481459413309513908557441146103724174554650403910178201803784424617032646951246579120652683919376994772885886271613216639415572937157037938121817677482251889115288842188539321791604629738207736358438875632222805382928007558994032356473844805851933330141115690200983329204685537827187539475150243439762621774554688295997446203675246579529225705490648156666324957785700415280587685704063244306873068960720092239096295339698684387825708659153892490152618722189709756418401744911064532157479624163707035019599289383404602901691142275952255566909451108297818284235690874609994182122691516177301855763188020487126565896888461069519570231949578899348855872943095049898857199583727790113614631422567827883586324771505970082472817645751818237753554839566119690230991461741550475599737831842354743908082030658481562521160814214176257744271824519663671815402648691115416318833643413744235142747448126693757140744839204843999925692409356351573223463249323887866290604470144643671432385823153762379647814503466703400981838865346749744014495681797658023285094916898015469930475335330888602355314416201285476787995468428872555804051585073306803121063055937888173397426209788681771018411058771365026293385274857882057851134139350062171917292877169566713768015508671213931233438899007691705705399800420319677796212473102631161882705953823741873400500092128508418401682991995909216328042775120820810489790704503050654644824054795679945452320719506731757444854167131266977158348499226309428793876867737940157722086503272730171642876598338895998810593524631273296218053398702600103926203812644995461234393076940551879015834669623975783565298096830359835918550337782854027664630498827945873293935956477989826709299490179857187374084470491819972561013408020783912281499245529339185714917092864147383781624492152588885661187115037639819429835632806266216105139299430620730781916380850878271833734790758226097524072324638372017027291565218768918474096593081812418457263099841258566712349043366101873508552412550785658669266813310313632314732428840695634268288875176585482223438449522202478130773839634876578158344349142728933675294341142821221543261699350505894623663951090947630825575285742931190876729907718846534950215916744332172425833753756054504714212941184858535249627743276643327589871103047452705989447394053167204364965750044433820837948751716155195436020065115073152570600354131750662319418155441085804772023376782207825087099634881282455641445342701532832183992433809147856797125325317256520311527456236128426348396774646876814393168949517258663993821759732534553817250064599479457100155790191377377804337885122490053529983014273244606836427904490528301227622024576312236286217824673276685708375623735181710674467499470540544079254055824982302592341804873794971813395793213280405916832170035522044937566966016014601015767464347088527945184024445743739015322404676290821505486442077628063136811816519801357926074924018805554169835204358506028043117895750456328610420846448212306497403593562629699041238126090339869984835735731666118899199639852507608338629435573671183684192489720543371996891820644412418165819947939162471649176510744365891289121551321220987949049312882781771405911390706407229943106360523558465210968541799347222328398880792864711429130950012180592469453554885482293499604847925995856104572671019366058125395568968832803535526601706687820546439780199025075085758282430280907641124778047258951458116233858832536655725552800519376742689986772812773065843708687286378129490625188298807260805256032593346237610909325906855540234063099675386336776904563553690557066687893238459472827446975874660495849150306115354537496852931349942241880553568018203252996480478737476289897472031568447496164857466854859285736509137529731110954618954587223348696720937153044662018596737441854233864216488909029826594806483381014955211840295255662305740270679225009213086129109181474838254537472177284380733367256265565303036985157825362088932796080139605754994498881790734588361737996571280604521695655055229175236427291758637223898746357199170124613191698183859026887281037791958234691499686054627293249142330794536606658750355198256145738750742651240356653863542534492496567596999216699097723110557506392191547921039831339352145870158072129334649367469479634144004123808046641596118799845078931590943076929403107896824720592375005669768239950488230777837496110908161846131183401454541685858160983849394770514150260531571550749675048332610284483910122327451746231505035355965537461807486801722916179806380948939189654077776685809935734492829407483586763837651357790487959398647199306122426082623269560627836275788435475802705005872155071127941277487087402955821615318895436581936978852582576929923119357049552469809629713536814108907429356981591588843633144774173499309770758448958171308275235595671097647765000300929608871731580594221028662186462460698220466615259668121916434918710389655030725364689232770116474979939146830139750567575287022266948758923597283632802925576374428162745149290423564166271813411761622941453645704423473509432082246559759910824890790850096090160476032593558139412974355578180186344926211601715538256397507690629941126826766450221600367977596546589850158355584220497760145904900850116992749885394195585506876346281440764009770812997814706720976873968992057895783834603349401098929328474435854193845093357264587750497831093351384376947398104102784089895117314242205248497032938400690791523962940651485048090785589494921972528541768308679948850536632478246340738103552312569898543497450994391329673948898124576276552361777897432375928607882483223831397664488097942474423491235446717644818199464623001548004928092592364675032141171767621607080620326408553596224672694098131596564932377432195081808251273900296156283142765475517731908721208325929604294174148080056254466701795652324889721857924809328634213901930389327047553456495656250866643919441902822825735713498543665469768220745213459850075707428107067939560691778168091599738546750992538701607779158452493661744765604457874494332828650640689473135302331421104282974061955194789063002265586873732846428830413876182066421003499734607074067830802096602202524323047567966993510240705083776502577199643515620980072409818890711813367294482544561136636404611875655595780063691097952653467664976886181629938923373479864403565669807689555766574862175095020905944997720018210657198405566955676990854596624916739117984109312616346377263907334163938467952447127956661007467656289874591914737157106618807333714081965420937756012303087843422091856601358334000199908305753879054356126088691714401605849609352421558216069994182691593537666356921836973643308344864519624481669018877019980518104567588269539426215651921414454328259294189649597455493817434685271562549878170237957342395106330045413113357499607410158711751046953067301928979719369397001513642095888703592063649700999803972830232454420583803506336013813081167474001380824561931761578636681521848059498572084982134551140943739668323269370533110644120110333302968467918705057508800140968451180547963041795403143852189491653926091166705942003759760678809025086729852635640557191678913030246362128331501771894234586557513721146117446409562409592579197501274778888599724677095100821974558706477236836752622115005770943995359036846769588563701659238423650037504538037477786956283185399073329223223739070284216485565793098671761035491558700609847587952303411131123499781968100458639547088845596348192457388956126575517298474512844601316601299792182679462716280174672550032109789186207376571009831659469978109300356130361238404503743956962190118100370888477460144646098882875884484441686114302275846137906841624041916053775180990329990379538958382023233911005852958715190891053461407017130170219041477164679382611093472349278692557536940631958276566661875958488710880652335444499080752598068022548555674212251965570737126187766261648457996864772886213509140481736922688105152764568188452459462089864544977605146990954458510343337752967541351173124581378789772250721654518730332306899417027200884248796584783980293534312078769560294890915834184155151994507550557259599303108884861412412418142420171228087092605608963254967678856179229323571538024792677826534957720770267960721507086754926099719517970418138591622775265408712396723703966809892453512293593579746790978003248857915487858592783582602738457387957853100362694847362950904554580768066002213642127412014217271617537417493177127745915303684461566874684636573738488923501962116999974817838646642616278081453536891863726141117745881432489835721464242503730250285774481627572634431042338622556723196883432520988559998001207202140800647535763908551075374009529367259712881934350130999547259875271708451440726494765346096173186837038416103120747728829929036198169889840677824662359772579392544324454434042268718342756323455845428328508837066949192926387975297023527989191685325999433463373057125147344069061977773578332139435738856402158208663030897176381853656239371449908860278658527466590493811039306800580453054773868555314302977443100724006738953029346000000968074212811752603909210960142803341301644198929168255554954593925969504204869741579236392555275242996211750092311741578133400283644440035833829769954487259854132925356914350760550425655566352933985795418607898280382615281948951541563228736007009805546495965258861841844935019351959670266878307362883687022280495272322385885383598152171175203232217907819900921939712303107989311525795805476571564330577995925878246508527061943460220302452391836091672783765623031935837065242526350339538558762825630517685311409503008042660860965334367237804794035474487783729957735122250276954589310776318278387754457293204066240124791188074668070829809755064788396932906927796183018313160856613112575271542138499704338135803502621218031208013284910983323891671140125728892321344730383272991007293662868839706562770619906994219868032719955622875529922762313016634249161420576758606961492491442204108764712674630893393489292279811669638053709271255424669641873210471373117714779738810782448003656914565288308420047630164672567741258555986039094086944986293289177134423483946401649234613648946904300770162231317961361495527616457824175792790106243963950958289717096273698803766224739279544852550974074249966118059999935107159573896981381371126237083991619799411885620277121749879824455966955668887801367156105501052227987878317508377698065764710492637150105929007720988145537558824511762888581969537563195043537492645373793963462359801455644799898824688195754213985046272571037987292252693007234505541838542114836911224800948361261603038960327030483115257471077223528248665628732255605139882912251620312819006302893275820130095692667524660198510497856701230608054487871511824863489278835209301922397398614675960477951767595321567613171736348981667449767831230996298796422001542564424859555022600541804269294852711196817006393735637384309726877712520963013143515060691794805117509095568477807185546398750663403516317588589797996889161265436218169514686913400994161531825929639991111151436754039276990256168024653322083826387919833753140144819127364296922853459752199740637127935553027223338529920584123082841851807267701070683574206744542804072342178432065220727801867504073556165994455551157282872414835482080077567047215586312015718811291574732711550665328295803168231980333334815786548756859974613033049492389001952009609363514803647700922765718442958823637949517237985408461818103816857737545710077352196500327008578598507237620185468475661695985248098676379517265214404002580951170213677086975204410013918595200724803922451366543329023116352874352976558527400222286654986311133301534625331151720954459328091593218149492136857299375328268601190017019407140328187335357240242266483022514331358443540524247458824464949072173224474179637988149408445195690511888457515201808367372685010300110267133988058445612252445642221416295708350117001191975460400165192469405457039453206835891723121137932588111499024788223573537082590560477480045095061684067427938017960767842707040646540117451922006452303514401408789957838835741632850630244693300848155863793657680347784507921749581143634831313276433018649460539782596811884397784665436202197835078286596996964586283011099245671871889127000154125732913957105543456356116552538762063138133634620560990627880640416444882729707629053087799828236791050114581327666895694336936536806683500493371704688436933196921568612747074049111528469053261331230694863253591298298344263442735311868504596103870526284784260609302706260140403013727879426398816232338135566111810989488679681309829392888667694176597361775040869817197323865135777094087139221104911729782765319641637251594253330635219407869633404767215204800147386365643691516515856977984825720198954205077805187283911642355722718210916873142127696867262436279527976423010482993284413338075935211674772681423657336989962530038664451332747362640960891426609877963040702641587224088245082920572371798176221974549906134137760831888101831961060463338228771194222872609441271408130955327816757310634459860449331667521149835853309753688331145465680292913920931827511463751551758939596127465380692778670595723153596424162386715655429960786910538250222882605013876837882296242118184871098693497939224033116441540106551402067634219215370460558578912845783838114903478806615403754879380343770690008968960992963777543572024087680944762724093114725112897329073516926189263045490494866184695821431962429115637571391903658435803675006423378162934987320960518825502462714735665283523167838910464342766631570534362296168611370550028762270670863145776991858994394268479349598313020943345074742546361723105064859809595122259080051796566550083377483516627000591726604249526999513131098837238779612263221685559083320382450298331363403772048779961473528802832339450400832473079512432238253398522727898518442888817140874599545974625885182222760787656497328518885032095903181842014087724845689331459076680734039477384969877083160704055511828808205711243693956752171718235592841681170726732685188656130171671959963085587854166374427862207021847689588718921306983528705810007151020363567654492179096189994495565344493593631969205955552592708809632624976666986813382795733548466636992521460719570232306128981442196703461819863333308402594554860601179166570664960288663191880363808757009852156384774576476042252873135099283569782720221499548873141954382978590171092526705081625774116943377530706811496984918727940942138992239755597264177843676587415179539351393666194837216848436240328781489486774299317865442010232510221848888657748431230701751469149600972610439820281119387510525809157040804574429374461816176036571965532911216755185028370608035325442132403117035882978284997387498534836415884199905768709522984327610859293455345369902188213197188274355735813420152010501109477111799363776941956867668079188357655410620384929052563901551972408017593342054287066860636259085582378350717133242652108968131837700665522412791551137757264110191034697005990522790448646399921272348443374916288469151536444754335596827565509227634476523099575595403847597885957281893327361782762704773747082420980351620872505207056803639477477457121625267388784784001104668603091855835837413257643687969154928801358869430686007187353311737894185804401054934436552142625454907182739826444312466044510210671508717174406271257922581375888222537090365599278093899309644266008490882151799739102388647920313684918258975251206275018387923762071223898755916855448844903123765186594013374796655038793344824947089377870476933516433488613481688683933721358746612923365633065890150799655683281192506768073009538328249760839966071499536984529048069565160610126522701060770815486813476859031003302116930365418146273309680786806073200037344299247017473424843396011509337089546262262887671330550582019403432617039939046605634639403904680646085050155829788481807967463306166303109640570364026683132756773708827363156464191806395297201807740136592029427136421006381118295894171278786843345261605296791849041818604561326406086683340030275114200869475653022636818029616249946313100366805073028585331284131867633976149393169064985968600089457126392634767926920728932156708896457409280812634030101668714400251988259565168149683542560643900759036414241155278661062546466499766922097544468734474797592123630459288879202789764197931149099416250603296997182570867212503117192958943543622919495616152088194432611873422351718421732180524484670392683348150865546221315902233883443419561384502409139382411723917392173210747145164425823226107591289162838731429066362702022775736391901202696345698930388545425128735951602993665133422242418789084551196888149532409706981619546887495832676551885046836876055691624554285797789141612736735368287363232244112849225785194630364091803118502103941679310809115967107014432684059487123656751106422552109339259717481226218020035965707206498003066695170815169334824062063253628792892424205148129514056672106095070277924131695405488787712369829123076718212421051296192554655638042103934716843378170695504442459529778716631502636206158764835110967540753388433489166887435830986176777755970077398395946788504769765506368230804778710955244630520104410848187712211059669816385481108404486192674118468825481356153673092613743974860289145104938265178782336947552952610332401115514242606951650053701295623044309496179317275887847511019840667544817644519456561696662548609669738449628458175156023020389536635753060280699882802348897974576218845097076245677052447904152365689710057752529672272928153606199128764217098227291021428504834266402293107069268072244407625150549520876695336249671801023955159029301523603639764001308495500597941399552384403122041517466855441831335753313378945508449896789032552627214008047268442308592406982619651229899333172611276579250214657287504171189833663073946687615633604282519634374620979565261302796091689027043580130902027157710833389824433039526085458040928839297701075181223502757915371801139176792739759003047130590858906375958154261500453070376241573320002145776381001391465345208728004424903495409262759001795716384234013726187680253600750679993326488732413798707783830046385917779401215166370482636318280721016341450797797983036909474275110742727947421201665015738549744660733050410054724062945942450730229362750495084557486375319543063785636130470510505990315959300814200153411494912708659626180304413439510981619398681795206106867631862979493790578892429483866079987032018967471458933940689729546337790134248436613697146318825401784512021432087203935084548912690290572711364536884319594357837555201632287056577732527688991666549093632664060448155286897397109876553470334451678324170067987126051741997034626474183908187310640243088299568703160438749636986508921623777332018701806026730391412403522826925857778329188502260313573415628659212875263103222578022025710587109706721760597610340840768711048930445755377832569959580157957321318035724150287688961773613834115683367837940802023135029735320086060329827650613597581340677025906566941591456084330104554804895519364061771042735944997944128348930031215679960314055674507743189229986203729602543093033860474884417134335465056214495468155898013150822760894168027962230715671676692293195440416642948320178708794839113427204192200415484569588909710773782199524049502443193980769323357833886821162793333044862991274481602398990672028640734429295029813534233504242982850894455111851806933519831795563491342500728527771106324277852778809092018020684168210685724094420249549770880565599638154199536333553486828930752702485434311261335622093231774549007037261764288875776981749446190554294290323181305082328275208378665482712838996946304222435197878317421357657998620304101447689616541629974250654108203866381265084355015747497949922771309806273914864393620634740530137237998837849992005965019061571239687978614450213947208338043897308128126117709191244362115309329127013413079565690561005181409731537331190423942671629082318414316936422867010668310434897125840182986110654540111595654665087057867166453268190209412742750849590344215321063625152218285121214588238289872858107086175844111295304648598093755064143659974603429188292854152234757596796472790042987969614900277465213039605351234194297092081361549011253619418679919805944279189727631654398246572724480314308226007399768755429070594784379289967313114810844522239380495516887724442935449599668385820433269426353067424771071022173251066542954662303504543373503264461487014797126702815981844983534069760392919644273615266600373463258208944345128425703771540963228291593252366471188717180563638796580080566773984819456699706095152952876912674459491270040136009001160733657357010385147217581195276230428366593175987826446177857983310367217578815600968313440667779974889213078513433293718675274012113385777731963324056736667719285537031956090345733905286156616535735564809771393849488069762118032910495042184994650665023726100737043187227185815425080826082261537611980443479516026209680899582379637971534074887943779596293301252866426119191937480286429253866125714136753622834886324207443721421946706153050563552006816857513468745988275452336274858909770822906045014160131957190537913389697030920445885988388733140627738053701441987639383921444024268984174034256000349018316230103058062379131692243877333231402981506133967635026526670839548047974875650908514257823157525485693203818929877407740363846351241346454188469981190103235834617580629750448081092010549135019087681670652222985358299127546005498482612056379170615226549716454354948097977610839954575976045196984475751715730516959373187519121084771069011363196469223956635506660394559617667910284573480801698057211909452423611810447396098985094542063443740819873148476985641168682577625468760420723126467394481022011132126764062048778634533895198047096752565382176911402824287448188196807842837261836913422513492429881585507701882588378570807108214994175527701975356620259925948685285565524151209420371859691923762323055790872397471377406566493308896081432169502042237777380489602789708473018297785517019114066654411566295064247135143349373981688768266693974486425730747682910518153830437211478283808980917584843775010739128532767856784315626069799109772104585072939950253783143848013001913776908295709144960185202869509598985320238999441625495560780493792015601417780186420554938806827563027981170849903316123258714615029445562330749380534040681932300122741832208978781539130610955214740874909616799114297181446615615671638061263549435325485030900532370777982547622561870273958590563459002753696793737527490476273161869731281473747537733854513961402689658784005339013698759364363506002446216898892101850395051681868886319257372582026475900911698057560110306195062283869621974129612329483024230180644663382488555903185351836698876606547131224548918016867469511012158587744473567081907576633707277801380739578829573522515170995761430807947685059734800029168442136351515456513542269216981447780453141918738117224558711456035134629222740437629284408053868727249633740001824494252930581284414032919005580644863001368643666500996960615526959399424419701118018263120874131076070617078858221503304909003542224948970317870606855502296209243750018395339689166102344569322809235780372298598923595516820894267650880924652351438911347616021991371591644085618666084123639288228707940301530035788402224677541237284682101860615126991914935680115326259698349111817606599932044145436997314023661575238225127933362472040936479469575615180084306888978057533796792579507649226402347314465130053719620631264282649839763037467637565119824478658402915680002974095033519297493844618193321654491461467991960977056874669520498316697703208189682497888082005673171524046970728102617693816851637147525369898371139024051225177846071341495324058059574109429287130060799473828976350484988952704022259136485877798168573032424396726813425702691022802007369731275404107155403637629932985219139225911598139986818338687924175196379848402341380905765619298971932800912588803775697557170298193401141927382974306936910041688771277659486533380238218788220904898253560871347909737593246583534487292761642822579467580810705745297115877388521370297194494494758027616081279036055950341444750840109765678651995202515525458800603178246551844498807940615772168283640027137335091547161515118068257975658624821547782489957894737082458724546259634446502760819979834641387546212053782948675181030106659254533134970872724541282700147523462976469763958301750355105079945292259481321899265513711403213435027807083837750656835830834918958703738498730379397439817965972867408566525669117657219242776102124017165152752042123065803602571760761614823724323616230018814154769037170194097556159103522519975161276071394713863240171175871255268026370842004888324098565094523209412866202684697180328238951301713918011712652634113120923215360167543269811661657053167317551935693497559958409313681632883564546460230421972161799455979351403138826125298538510017071898773299042824253649814842178169041959296373303338444185209851957828499269129721069192743885082159557436208577784211477735866632860404129390172928575998611290207483568749089733959097317272631442803452484275051237025382591880621777750124089114115729757352517114975391167435058667147010130945037013921748989594502348743602446096747385044729368708370189903835721015952736770615107940351771601000262731275915146237076366953097617203821062066897445642840806071184612702382109501935428956200051804151779764757599366869836456411081011597054366735590867444202709822432583671751751326367567983130591372410194768011642254381931439619488803338946766866418735976959428430925747050337587139652878708278077042676164838010972009819701805753370759521843479974398390773708990115826858547967003079293855941200551639355488212123157234732005731559126896712673160846529599389252854564464254033358303487959764925969264569498814566399580796870816959234649201337878570541470829244957402537819169438508291148907054626565941998967359109402170774718224909549043407867529767183213744983542533901964511021600898351076616541382765298985338371413863222593357513047461178910811506066469027046849034340493215294915092897040467605364901506471919157229829900196836838660530533285641041763048303410473686867339546258090351788947648035314175232575706789879562382893262938382487863917444451266493544515250529214981543006984193021385250687336655024597739152687682234472110629710370715229449649759298253413700495655965590132014895924667424627605513214572691086360763371250732597816280203069266813710107895720887064241056880606612091891052428496872552537548937691872725453869147027064510232367083429875309483248493413708090196715659832432319847455272066142232385920767347806472098653888691089561034378584445156463570655572591675877985823315498413343739871081625017269337025432923168403427102970392932415597506042806716284686586689956306758402070276724642871552185902964434271110294796244770813476039737481427448067995451936765721748782787533723292658617770848295971857877286278418492613428596949403783370576706126231066597739531513277073138613986885242344417662348149966867810963929609236815511055892155353334946002282324516369306217239095484006007487590499240114409081213346233296436222721371017455263487996988922153936525183700024919135638756322270385521923173772796285377223416398153875354817374343988713882850473641411205057505911730252534613860521215065404484537095953926010356347501997974318594127207667268769255754386123960344459318280531672123113493946607966223323207450662763740709287256911454049774921603132598657499422821121850630631839879959515624486729981957476850268360076389186196875821789164089447416611524095099562467939710441841729304762626464335344402630221758979813519385827824677141621428591624194804840791461704514962643911103909444356322397461447157567546617306613805171523424199321604402993554763144647019012098773481095892600341867395969838471572549497134795747416936709516191430588805083199777879120978579982547180377271055999847730432906446927851850560598444054905514354091354083307216830443985859284230541793644389674670952857152224657476092373313185831082763528589190488092685117177063357599719638030464820023135918635054143782438389519763372476070574737849820551795743511874983388423642758873853745941051028667403291609021836840387960293939591422138027763291487560759650827023696204116333054465089577128109051122316747223664951831450407137248697036290775943878198203194590087595473836966666964394541498467200715284913844950258757479875872296097965358354427649403883072772591978692777198213647682325459205178286335830202379747309662869125447553780946879912334839698918746812219022454666692271856660302457406729162556270143649540787366153168700629001355655377888885914597932178735308280337724538371796027903764697469863912037422530417026024452297478920376401184495947270729950895857715762779725014290549891547286067871586548145115976120294332977223888770494590479946497041718929930332160129996222521866220512003245290757620923514626817413281693372702381346520031863224256545582567907529356585702790754245720687257526357164372828104388563296123582340276762252686595091061581154753019258305860790707930644453162148402040539869324947669250584928120519022810656363627165252335014990404673039395892981391759602801411957568166503570468556753165410007544974867808912662763603319059533773640981368536045125711835539480375904916787657009516034230724762991317558704525317893594407197180235523484922070398466744754512989224883424026097756558050044888038707028605169000754291250707661711944874553263338211240389104424674449494431003117831321871540065806948903804410981937535780897085589816323892159849434240048908943603708345926081469844858730976604368005641262571059531916021855573005951702666448634287497768762973496410641263893880933762446589647300247297366725381949896161165472632737872498803105090665070311424338651258406677471638144260690575281541268925579820214429681767638496490036249404414415275836076494097036279359212141030263179244426602632637737507045308917031152377948147194991110808431078725387086845158134897660688462970944486240712214041551186101540216296721809472396443636618942765346223538295215195653135515097146811509439341522991757167073173827386907029772660712852727726703506260826118951463466232514766084875441483542384895129067160431310877181566531651832118937107830699822615987156135034534255895811411965803290791128713770665939386819438912384343108923606870895359688594047662049422904998570347424627527016189300836411248508442263886271157554815969971697113960287915600796015464382369383550465408500806751256273360358464814212535749352320861431385353527009172747917481962170962721257946677697773767760210209149972114984273169313769025756052520810794343359307071474938889887680106587318698516873046817445740773050383781659356114754192900248725247218546761533375072697775715239802128648105249256590829940949536968763339444565688083175214783523205753867763229406981185880221065673434472996937462847587316613408391116266068870515241463200390378236371499315706571847532711938656127376118171512482194369384081343646531323315650255220220024484557126933114648639287808208429455196820371822565896934319706092422652788023396048257302652036591728398679258736887873247153744959389295160661954749539868848001374663753129380921939366463501389508867530356091233261719288738021068537840292953324639692560012640250388545301277306305035345907247026090146835556410573805826585312138504040830643293842677396877140751874423757289363937874329967604114711319738874220633624776223851010094540094640288896220739847666512276673165387061046767749131975939093786149776316309282046642354908048549932716387472673887200234778841632007326796027960824500522647966286796496654157877430107945865245853685696127125263677975585701769367909425101079675769919955718792471209706127920421967770243642002397648457696641787454253135182637302303992703321284967995517752171226332617702385738673699462676915887655037701171736217250313346767509209505944791499765266854281045912939299406272570766582262318227090244399044947673014545172415929784855210836964533922118268150570690830700135592598780255779237002542466495603834508250473830970711477221906673519115731558246493128874444695444899349315014457884923379633637927864533467807948234124811531848289014887465883986322103843703971430129520571127639599415499081017425564093998895745741991932480427487436553133534652018991705265406892893233485139577014193841550782432952672453132728831279910478852527728319638902035402330956488682145327573531052080122719307728011503136787466033246657152101263689750130150333181229267314529119860655306799968410555786141088993458508343594416406404142909218758646536659082490677758827041673372296767428496206752325065946986552095817174019290357774712539770279231684038179510272638920802355710251072056687702168111185613681905202043334875856770469142180311530644819301220173606059342715542942440007384083008816581670772458896112589179217676134182817489512731936152142414284420479560698194249068695984206772419691736075005597914618290047531260242816064572331660904158490261076588760342041074868896037272792189343225932660395741515842481890138873088854078216748993717083483371457214917344036897822764610396499425008468047583381522138064789894312977628574629488500352744862500840292214596516730786723774023403513394822794978833189563487926411310248091710786684572517243408926642049102003831898831099087791481318589992130831937871383528885161406964579849086535786157993247660317573936199302229249043581980168917038003057916086904390332770218235726080059219244765206306559351968662189949978649626850283905738660439713825645826673165745343674874160906233551178060639363410937766240121022412510733428087267975780482348986118024585442131103886400600351617455704207502770696444230157790268692624262347126089059771414405247135400207088425849644229618244893226655839744470751446777127434150543697212978588993687662310493619301439224575822816941981310941509006778794692559422974796863100277146705544381421642029692140992619723656523856649788071456273118297206004014666076392235241910344007855638953295454892455428841715938544627416624793970471203694286766840784291239729312310847904346725943788958371032638578886057480469764280541827280485267575380112244320066164774724586859281048152713422549708918281977271108474435609887898498055231738784698482427242952587546457195491966852218933776383689524694642882538675493328705498286882869489579909266622968808241394707526347520552547844637492683306661162611273482304701385896553670223936812955085054066975899775812914786305383912834173819519336393806003008424971946081991184234847104750464597009119234134039366388671711506317315316538257432370233801968781044316528100640719016287182178108733132681853865486890743369231735843942515068992526229993055310958288949064881308459858942474664352099083340204701134084727772794467202696622361399538404753561473407273454966819687448774205034303701341778173975269599529324005440178741009168382119579345215620965463277672963650067933262401245083678686617660953348727154882663122739937851137194864291020866306755262259465875453158947561846897583395010883065236071771454446262326350553992231968178734371880805841517873865549258810729492989212110309278641131966996106834821166503295542219981675630200729010572990452471529688687793073276556057427399630912594263014936066436264588617437773023074211329354370428060114840306394360544546300136794704367678027148082104342792484907321973166171817897457604716083154340931695864573128011697129805121524386594842949145807536182479412364046783650891113096365752962916737320240156851707751834476982182481169497131073194591860037604581931844340938559021697174738734712411994885720232495235289119901764678531801648518539501384166038835157990672526887089469991506106869422064609651792654337667160369218566917210539611670751092359252295296854050009631340524170021595409814272559466590675242681638166453086436252862111871392496139452646232579484067925607052726500537408162949725072674999288017575891129900506316057179183473894726933097748158920392404103568838273085282812751006427792162541253613541050994741201450554405250936862882611151830857684878880706354760795944880602728765982870360125321635582313091934435935555038499802566071346175536484615858760779419766185903547357767553774548843492850235408571392066665549022020657513315504222816009331626097108975186698790949044611670373914722057602707199314000992242636261329319704497465897353672917217898439840016825195992494953727926049012069444258031627838207612099765041540952279493402188046911324285003883672456075572871851573040289733438745456693501804947353031713625263417970387288650812347468114149780240532454557670088529077037663847082071810845451709633531462756269802677903396968434480279016522852539113873310661410672816076074364549105747070192882505790076743525948976409945160973561583292866965520543862008897274441467270130552682813406323991559008429153717835729500029804649387792896373766040446800308699775345336499289446566459151640085093700157122308314567630058303043872672776228179116744537730613909231594195096819667210156373273719040090830749834865597297441319568603046931380549113612087162127267726341847234865755395347186746105006123701370011734203306559857112940046843226858075428590201406199492065561495996320073794490928824781147303515324390755775792659786874164003198518597557307657822169615434514095693911384930351972050925421796364565440233600189785606274438664631232489970700715144119237440862854897283146715232671608250808489507381275594167263769932761288994045628309114948538796262309243913441159433918253387625079871713885726212962875117104312854331714303542794052660879837114016274685070046800047091283394919944122916891765618622440199289847871618917861212942025038203724793622265259108224569854444195824413402114111497617436785688911118985413688557529513683151684871603844845034021181159525694766106337754064798146434541460771294532029512981357523418653910411545084535374593319339315657334098492733682538178924579784301887718651363763329125792609386796762919696370243460393945613838604562479597971465491154124575298220084678617413295591332600649216323160692133327213656330929232894799876791859777596760250077335348435963878015977164693929506382890720787941936279056109554945659534716630716086648644309322553409249658600613622095326978628855368160840522811424976860208782714615863152321257919440745462065979342661421465082655605956918893530814065926555115262909419012114045604945501591642498346480850550846723641747168737087242187607365534998722284927925804820222067966158124776178086091718462552060006850927059097130271929389028450804980951826085774787410284034194316798542605402962779252457894865590168354723023211548342416808368360612999224112500154351187573540231432734196747025454496840017857838499148108084877049979877709892189579417006224830010533537494962282838829825484449112597079756359845103993023710108142950583726858617522777010720109441771066890011882481584521925228828133056400793164431644710607677123925146898024320352783475497091136514874186423605534125200409264191133542232428640584910368423721346827399555306217377068064364136992839942249217804248354749276820313054003447553217747724924496674659201235387021084157899888708182927003591519711950410159880623859370856726357706884814034269955206290904988923046545550483654202702693897010465414209393984399674172181971332751919674206758245551618576055296649465426248189242227243300580467173606721380657977723936588109365527270470027695784409842557526618962435703992770285254413190583525109544445615276008858649175432098203860697816462105059798117178716290178942126472400772406701741335650050804913962744110582714886614103694990151524889875512666463536630123230834958630102850508522804204997350309633392144174338166478858010472851286501749284927125871174010997724866103510015199961205187625505488175484762362572172256326533277815128172057163615981909905193829724051077956801851302239444154139892651615806130737568676509584711050862610355374174232031797929390672690642410572459757822594859107321281862795211504888877571829382116973962495714711919350104172406293561334825682104014665744259144968308982720336584788375631790768396152536847228482656947391170780963172734220011180071085502569551871601973721992615875742333781675131810563696926146726353558558180414158947464343740209844895047657244483649010248827013849003266725674474117989420441403135306406259003344947580908323984875430540253527562527967887729209804554353450783533644944985842088492556512182680102042286045233500292839100739787537845549991017650579895856705280787920976007442897607631481566348687138447916955902404788386566025462046671573874487848727809108845795167354941088845946550990302351994511644007733203557228976463073722297035769803006527045927756221547040403939193736531087686019143438409552348473521336746951217150623656824173422709482231336191266853970373167187247438779559853606808752389852651496426281824011456969610890227668315191486387014709361818967436295166364041025328678331897716352472331939788266596140546205417182245878841824875855374851741945258930081172790428376364833220544746617883389063670012798220038878043849189374632069632543705691659654063474650805324489384213534509588357776897583094361178058193545947224392517932536828480588208046209159867636920790073501228218238821575272966383161161159410085286745207418152612192801246460990955774085687390421694600288256574877644619163410877020381275243138696388556747932824116378389969141699091454976537973363958586146923917145156267269630940454956965739333323025528181113522547557568375460384299516761597847087401058482116123929799571426652577433752809107940193414447962333580161895124868322544251877995085178769763519155190735894010631279883190669356964177676913899791899939102708895970697102866544808428628109185226149543843442878538145097095867781625761928464921707374227430305419997926648531320093929766861435515999592223063459259540468175211374170815145883736207741310374239578214081238708984426407290006548031908026213052604320977684430292094845316853411528696741458293466540742050535385538164110596303835096826063247013356151256844851062938169685949772854456673346479208310278456236208408073388252373779410911597406441259805780903146649949785462684754364551336421099214853765349360745477705425020137696168938829346761547242872450481319363664451529296241020024050561880440802328650873809955537445052768922855880830332993868131953411058461410858892868033486909121087351316678874743679491829113861076942844376002147743756815168248507148415936542534035462582173986443115063063152443995068317431760079110139113315845562447904559179911657078371287672664047781919555128514471026863640768116681283782031978626713257772696483149181805392383284722895018432694989483982213554390124162759470972847317980699327784202012863530408265279022702293144704970163544249701811256159977389617351869372984286979658228398448012584650670341447414640089372373655694386629901117428976475514399686373134389762932123956431168557568548899788152703992651774602854110360505592631931357075705360230691615270287250790274943886438669530652907216601883595765181463638918918387479610037733072562709068178592362791334631823198769204107186262527786359777416229954967872802393798127064169963671404852184700667393798305966701052107782193366767124119993552157020327162014508417163001815491916578243708868584935226327881681174463852948147236485411070669624234474042770014893887673570943988634053109952373645284297296449879565549380275199828069612597913308052887131391002992992954991859769625661022608806246566795457352782363018877245806285987481954971120276895963571844209961332999619727749631337577886219062461251161322162106815075374857545598273936795605734337894578268628494999909790664089274677176071738049370318990081778057748943653778051551341670519116460923320221146419498984552790253697132705263145060293881976962674665902465382325679555811846439815347956375670714857942438000507419989942561505573305034729424547650295864491289737746029928187679615903658812524763760292015410645022924369409670042047241001922914006875958016778010286545121799583705075778079173725051260989578405569763834148136793861454819600291427850774608193560895268999968321691263569316726992067571911372479653933473093749600403947113456868411045611658381003431530943765915080651316409320523990831664047482470185032370413109677106509318188381484674931745761824450813627109208623718341767254764602806766397113521111716470476047076755970398601098679372711817310920359527394011370063874222838473286721882973038728252727338068085968073842886275574421457385002052823359458872365025447129756148521032795628922092268124582551323473138874056924047114471074159155526040994622655897403347995237757134596733667502971672537743874389690421208762761579457812091024565782299062060598643107045234391352426800584821438872242978120351782408747673702664719048295869027158013233020452265867194906794591581371201973442880475216964138726928112008654056568673927263522934689676013536940413297018641253834710379049011784729864295546628421225736151300479069201920534638478289980452363566266893280958657481568511463460609623446988052513501565194493552942117124060139205544752543253067136114743512577549233043584570817498041237961914473802161443664902156592290914630122087441448130722533917637398039836018734501879805027021649371029247878614186496414050324920644291270907370196971558607329679748979634224742195947702460781278247946354455030765039859194358749160504621283806856667633020851983948577155741258073070774391683294433045632509408480950175953319077480063716210492013852563639937943308804029137533576399917628775308014818470291047623047351358919254410144373536804551698465521447710318792608934452262540495110383718992819216573373313434306906330375783580033206272138190936486984348259650883164103881052511854885029983639542246319997410660555630461601800084868251555754037033482329231926041888020356729069266063305886231996116875354124127410713448273178498665391572416225356423435005672370923458295698137210254825485618570315630786284450150990850566225236188871242144624817391850205229025527956095962032152501515255550729492109437498126227220216784052321816485842121371004016353464788752511745690891175053064845454535229347520775678798782201945720313450244313828290896748291081803439283465335086384868212046961147035933182373209266327032674194587587916461750685289172201369770586408610841089514896353889849687599566872413075350376957917427189370795286955498954633912519747987210712656169404991025674794789615477670212206384995620315001283266540829331459051025049485333978095123821281222234027437423826774311164761793194574267150739287448047709347078977709757864338550707030338317564016414999120299479648514245378719257562495568978342899350128398817487819382174028637335260749400983881905596917550694579731972456659648197122542266113957267310034400750695449147914682986350051382696085457366675080298704842641625447837148319692710547414763655143854109515518652122052986204817989987737538752900049243651394807145798910153558095363686488787494971709060833049390082125377087936712532721070208771654289218449907841044081266051970220028908791550472795276315207170128205123744245536710605010045153710020242714960841481905754922083465215763842549422556077917030414307946465883486474248951678845245734181020323617745982937295912827644095428526280579466714584632650456330912571214220337417402781202223671509894317020951075985691031080711409824217006804791347287086326672561296528470308230455354941264662386694433815477238388396024955358966367842624516393263482380140701859057875902451802569597155457014971020863926896753892397993537436871976556845701401019214812529617594137825863918181656731605625927031614167358531557609763688152754395850030061761135853085959428133577464942200018893704907922034298108561140621350760251711486043620124803702240190410329362195927197015081226233798719172218523932182420151303819156662029912389327915583321543246646581456830710481669424857705126283040297667482098651539775505389495677834232455328608560583636233417632776174679549277281388223458634066660436891591329313549916754239379190392963558146007796076223992297408862477398568778968670041868422304393125083630230084418067430293358354142420132674001379177181204818593004064480213598918111654684843466966505794943342953324421192185209308295206241097104745026954125509473224456512631383459936926135894551030634495612223134370866185583130885792303481278108677760227519155091728180141848391391968044794295995447709629037832441305256066447807285666951503489933795632303722083722712361938231356953487285687731732216049449892100269528251679307918622524678535567371848412635055255101994344995270254234428046465526205630985102885785658673597326226421814254343485466670683577530971429107672857379756383867194026066269821763181949393508381491414273517636313970755847698808873004643665887475245198854145040079817071833439576340190217282928605569008585009185392197411317243789871806499340367787086140155932934058847151279040676878016922199108418409969918720870605806064799917434586108487321141024488915856744398806800704996910572975680982872079539401791291147777784873977926498502783159038521323073333140123571423429765101568805591986995423835596829579659183707361723344264882482058300250149002374446882656831443340557616357554798529317974429868913902361713974065075767417357907783496349376715239329044989970891042190949323580816315332459385160958028987704273658713681699899440693817735452423010903196614113527992295566636393119206224649741408070865850162873441168614046905352258705690204962431649750931694969799623130792337460805666588277901983205384302450519339296370026886615424111077750789473179442032643674205149868879447164160864109827963168236429712983297334812387110624439432997209519442437798322757672166226207031858987261390222053377925400888424187739476835256340488825387387594094794131159276336309021052882127744492707229121398159521882759969023403030973542767937421873820445187146803561682314272156852655810882662168418905541534626125702922470554872719990906634323479386383871630329185789267619628876599137276336380083279945088544164430945653006368284831127021014237138831131048078121268712481185663873787050973998292547399641635900778552163409010418040128284905563532868054677604837188512645357083176990985078704855479853720059044902161073633359808463317483696057840120966018286329653040121438709590801314927701935670363176802044677721272197546422726592187878170123984619202699704906505851004704755438713724681741242361448106264246757010057162774666073089162978659014964027477832844988608979495523575337190033109837971452973154599461309986217152474261440153072826188065553184959069581006128998946830367737678217953913105921375894966527116612373716721901635134349927511055653550144559811421474244533058998859363491935169384954289417180024507696091100533606870333721256267280275887607650726498255282047986518580404065720686257460685045138295534347070027302088503770536919252303357191156584281118244462845156126593846458866412175934050582109977142091977683452555576171260206359971461533872166799109504618653190770470634934643076845638503877342783041601391105841614440012491450972857329758434394877051060420047418759916865973185815645865987221212826083806153157644679928385678890194842073308356480795812710404691014048462238566465743881541553311442287642743667375564857979718214934451709745423787663661340071228038106331737849803092092058405795632591779942747885484613735204177203427502046364697175304349374834192825364528240406339062435332809245067494453751848102992144589242792004367016423437318129492675054625404762839270713134129667508784762375465099219284472140222404282967180307683407149316372404365702484650628361936098062703445764028652370015605114702037231627326577544087555324406986160924514398310987446511354479737982722373333536594256415112056888257610797296141002303176297366077140231286587859023021274218708934973749664670685452037294289653359389632157526464672862191702223553912026603832025439848296443645406260463261757123326910050926317543689136434617331070413571651715461628479728227334630373654243018533963290621308801504677141318526576833233899960342901932861449087620457181694499794046134260911988713150759139220677469193560855458176844704599352412569499984418262640409658135829752803455184042698306163557432793844641523392870533548532953103116444840318828026568949587023022476166258155690969501434243076533328725467156540479261563241875162075617504659246059779733597811341709445813027101589980212523470208810483515097893923957986472758110055583042472009530079309463491145167470485406962796386753348166373039506114801220203507242361026255728345934307627724719560251900705522156079111337950327392750463583026772237746754095572513649869875213005192676203198684380928481136596312960595058284663862106067972237656247514105801369594289705909711461433087059901727060004029340258232734041149124050287711533290074081534761439768865832114660449267163459312104443603175984454986679161804459321056549300958282616969800206565162543617877002278779498444742503786751329857230969183132666614041997438888313267494996460212510734867581723066285349995292693267221346684137823755882882644139869407078664208546011648302961575265254010334912035502570660549646920464818388436689832451904799920515481903778604428962769599090896033236957317805220577052838948405472458526756935134129802393484371135773081906327469240482470049401622403031281796264201188399932994418601906215961835462138837150412351298951556948077453737450158566990160251067283137337552444558409332958282444616923843108963465739250605520656591620908443063549626992410978284262051721214106601448911442446850155750205285650497942109950939602914558052311867675444645702750562203004165980667612687324357555737503500867751060654036688056076949040016595654482358027167918875572492640132874912416590393295738452441758997475694592162744007849035778854738962715554030478408789439656310609922449865999708131470144575113230180888444320380870230541325183862974303371952706925160451506602988424002003036432033631256390573759139755395034843348390874722583014412040719038684538469030534806675018543870354473887557547214757896154341133415560466480076527228586648408768586782198585838941124687212213201633791931209807966487200852265925167453283688012002516217995421605711093103350958431336437536938162379667936836137769761864949081807024843516156431914384250520528252786293415148762412996673883600472643333636866424679249446965319349791935762700417135829946109809185965816829871540426906657046461469860430361897988807227518158435919447341772894786879552126396702143678683264574061401223127422587211364845660953595346205252436697143991457032835019801589314963902437941031283808458524654441881684955143448952835810011344976896050949306131996639197529489282166955136202692707695542958291935951588521809977342874688288122426830465786285586894984713658430308785699699669861883688663041150502356044900917737946503320789992652108426669636262265349064502912948903983924364932790497511435921050720772281915315183864040046054262998690940631813964285988373725210500991368265177921425845794693526641346766196395925342213286076701045018624717378749687152169127756857731476842387337183034574459046649607095323421532339041803727425237335704112137121250608324170215630476798668052922322832339558266973300485448956410504432217571442400615910756781960934920304500567216175386351049634643983477604504906615564902057874033722321717974703474227373193597503781346764126344276547929189176394221765043088711723760401663915348387323948585875199309026002041080461049935632186943399186067821026157272742508781300274379213634611412070945975210003127933558261669773846833753783078694494192851602474906647698089184699823594983731342086024003958257219896575643928823192784643978893777321572235812469513984407541482489202421816133880716572986790029507049094280175691953614313683679065717828916781031368399241177336937778261250984903955570778787692423476574447723664229695715743029149806885962277225402418719285792290633060212086059319593022602874912645758749884470167483095028436998302746908740191258375440322294741479120583919111124317340105513613442036303046958905493740784564361407980507116799854820728743164987494741071835539244416227068549474831665580059873200976860597058626254906500511486025952052345188108916599666227054426619154542679636323626378921278528145445899992641046811246676381655485378894817257743529602067244115309295687838031825242309476035914093877804727435677341979778517322331350816276625520573324656350450203812212100201145769508889865097450575754021703954676234643452823268221623380913218092143119649757417260906398017062317148560127783578142159594101989742255284559415719904732373250788162960273861550534525981641150231462894266398197798354529395884614048440584885656683593887137282290149314369334207622281769888218792420634345130582793856546685963115064575233623802767125243993554680590560813971739041772114053179842105275380138313390548054098130684344058331101121045514000171425669777606516823726549546895143444427394762479927784208118095966387441061977146210304746251259830454890805227512280799022178627594677698724164136604442017846867476011670502084075085382281635312801862778450807132079152828108698481110000851749242843874272990227535396222047684192085365367598652000879556010887467442835365872668772280530530506421513659233363275150661038810831661220580568005879763294456270456103566609762086466535282648218650069806592540320732130683388776687902720049532874592685791141978171892340414866553348410265180397117074521019866258537570130151444659630431009653281318728728540615585389294450774804679181893641296815322463990186565445580443362649906534651034774723462833475917112607971437939138207042152609362102493536099462984788789541522881149019059175929225112714466856531752107767653110444844984735617469845070221965944927413962710030338396913044670954937334602994014028951819485251571827399895069919498502485540546129639622253563912586105873442729228826459531677231694928340096787336000083592994877251707436623688943017396305506520611892991127064886698036754718716313522375575795686816011751061176037007235557294917475352833415244715003749004296032056135330780060415993638540663198927020516873639258847983596041658825560276977518337805166915232783771047968441593978264274772154509855835185644473181698574906119135803360261874643124087217176689033436575503281306184486523224358237958303518872415497984491532224039279305609660221203761925392932165045632093721225432989567714046335801991616065447488514369316918682697133275242515637318565373799875143811743978294564544071899639873776445354157645607909267947885203391485031637005869128209926263529170171737242884561956811362453707648403633491962382028840341493053969710920949040318974815808110888408897662932613655844028172369760552040922317530748327041207230491899605027040776120574553488265883242993800340250002925923420883813606366367167790114940957517228358876487378775245882420540601430679601397374318267188986102305637529484207830834395664525426558548914972524217820845747818476709898379608627122731235303032606577888042214576086481334646922373837223628088633936995569908079491439853555578793095285752784133593586747566522906832051444727500679777815632715683434776493206766085938662441269079755721778308018066042180071592869362889133841519930991229790433780132323774950263199372628253382148834041296135352350585325815144527076350669228577440373767423426021144952080935822188316108397446255439997834368935035367373530178121619703590873163753914818476532545915719788479875651302327427460926611866525019214079904214276795985139250658069088206046576174533853851146655090160141622852259674131853631966126225033951106443326708845277899930364298898242662394840195993562763283274365227526424048699113120501231050083887542192524804121464703932597771070275366258928106093991218748006919748619051256890411425601923737671935884781642798351676186407654338654138704780842908948321344454513379527860428861405848448555020908944524494721005436392520886590417253460374904662852819243417471469367590104464956893617435285094571584696610282710974364219832958515169723601099091621981515570897205235084072936426813191667212922180419138062370127504191119642616312786394635671851326023101161670302640458073329028698820922773823852691941901928965563389911513470767151684722429404502783382857210217885059264899475759204719672570820362028045964992054083769323474968394682189078307319913920875024134316545642874410949484310123316568695859313011832115516812228353903415416612613504325821628251707301208841531801431765748777810508037087414851933679986290709000815031425445609551915322071742716182631323228999791509419021127638119945927068643274567373346117925361394565920253527386174442136203062492364149102079195096463721003113945927145526787667615471449525897956978588835490397989845278419123777925536188082853831550962837698343860386458008227782620591964867376165630274494379624911829470470655260456854418738992980577114033765278986620006200229728959071368712262529170433255167851498956662865102996470296160447276762746806183089647982421406537905505960056322089757223196633133217075243440004080672593649501682795760384841282379992585346516299225940156006108374173438472356173656662381503360957027974074497812389802302714872463249757380600530386185771282827590831519710654102035659224958711826188552273002789702424776975724284728926509032861952806820773168725502125678372886884927313287974696564279121422516299604117129811132834892405617950653576070942367735090462408423359094668059845304619930427811043180552922611769808344459078501439700740131268452385271261333435775551458680061252819270380527937154644464507654681493937324530445835619036628150056426271157518787557453657513698753017405517201635519464485077255076341936284479512558242810084299428079600788245758783269464207387994282543231281781411629154909315487707412223490828858856546689570087161825152682485549926865119465897762339066602694717372686205348033598822814261354911470598780158569081582492867842276719328184145172703358730849965012201311243934258380261557755612091744153674378615153679054063745111818927566878356210468524062657227898399507375698002556666009491931156377760495422494248444168532266850541233757067114047050567377099908594756413902735132872493596546494882506811073204492511385701579513256328161707033055733934088891455184807514939739307793885688444623396165549209731047133644254919438759995058086561553870275798461605216260852197336649216388084556375169117564756338942908523885367944101067713464520085344992714761218753129150618123588821540298023509435776901872034690159838756831311095436167823462179756614141859579294207508966487177027749980706117818696827435602256533258963605789462312596656963519953464880968380691666293633156976806245468794634651612966257023269592999457534782073566642214128456547905609684467558310509316349256277678041740198398112571413749158596449014572060847270599398969627504486100926818529942065046078130854018929096509586219812080226750036932038138443013668060008450189990901682793658686113793108861115225150491237464267188966640935658049375028826945550742476733543497009155336920521033416613484301205078733216106066663931967695170637153069822248164975446831635200053413393186620186230289934113387580199919584482596571955103940157297941043657958450775952515871020275888255713200607848757154949963012096593301191589791400906645178574471283727668525407510138379228714976913477176201774434675118881033698108674786267821878021666617174757053527518284113694027010258461359612782453681599429317606172445826331686902087992857962345914992584805542083079441954594800525600569860379339076337051483191519859335317772438964263122073935140095980565939276524172283002061550003063071548404703667997406777312041288939774848127388262811767104664112926157876765385082741867637200881169327619105589395019328029963551650633334858964036226779762525971459589288411626286915499401412371526753153477837325176095829643030529732699185743870774152262185258500820928879960916112669006680139416056748616703329073713494764508592699504579670238402437649152202532599358178333485962993575138476226793628461951728885646540062732717976790444742475202726290272892708053183474940479937617379119731709856484247463066442912209486478116686608321676484379993493743918444636096925321576955149060079230919349960951811087902890884547930627289236441086015614229029603298688543187618842696189266778562299536600774961180175050299894300958986014668883046473229103652424119987149403916338000789615002778479454897942237256170132277596402594132890380282187285989263665363118484065477441430299440182805081283856052217681319537742393706713226256557382907654865404083860864210223410399179607719824601007530146853757952869431107882932985553722881210276162882400740523138437380632796291163836323640697411062428592332207841095766616358018051712742246745202304221271008995641928528586950708424045718214019488433399676817644799804135372863302012996039691419063073827372119847363217172734523383463923833788680383003319907845896855588771692192145336350664757275964667650766732568938506066878257357007439431950075429586350506155089677495579852694454226076977736673605615063598639341401360826978931640954544390744609168723111739006411725182806862795952755317215134578833812629666378089770737083008437982410923309903114976825638810644118805946012893346190090203275428556768688819675963454200105827049160648485771915216990563922467644612277029522242553779717725617591063899808597164059064361281231688401271906396442008993681000943388047722506248843008253441761090667529680870594217617752981653225749292803232226499613669729997421781713960884990328480376002571057005968318933110117027841907947244119148478733567356366343643008471464707573500645577218674190896870461565133654882915984581123041664003254218261358709760640044891572618484073224748533759574619238933694381870289582667701272188854361849758862358170160812163493077113814355697162271973357978650190299751055495871112920426012786436593845331171402739785713567279755497199293661483925850157635797626063402466035797089238376593892839744827028816764035370274958695348911702477171961277370328354935505904549599181548712641010522223110283917499873264414496889615419116510754433087922756572097525640670111459548670363860509946668837168259294236680209025111516909901803753108812313969196856057365023934630571532491264899353884551182597075466592885384341812891710304589459451244795199714128986802337335800427437817158738505367692594144492487811101544719199774943774973698743768211689940343964146575104041209283660580494960151350481811680714868107851445316478416230002771178610814107941163965571162899490902084600925944794270382925078745024642092446611296971553037820324241874741330129663650871878697342788523420677701544863373301083096235370160985205920974612643656403106972714312203820209253210005935440277933711493316867316892362294055631967219674248229155779781460417449661517528235834725687394527589331489816584890627779914598757785590591592913825545592129002645595620857105758624005009432638781900647944906818250985818946588473939427812240667424730437606425576717835605575189195905212315872037482332967550447548813971901479896131162943876614153549538446328267613249333451207553887973262488332767900994298504932991155850268436477187387846154716458265517318018612952529366269529616340903688627459682198212304716018703029194924423632149659681852218245905434328296198728601521145704287523941177423707403510390417318333355613801177064516570005559377700990425020159483805145628035904070776574316958827144394812103784543644036111307493213078923671295865705823638109896433798611172811520859429377500006896603506784543975218356532203324423299105452156670300332965632969621597655766419617476988457848805562633419486983199678200770844456377007226078747839919450697858813506820593243359775442772329522067798992008625424640937055427260197327624682865510484560143828109943385264620031933159161243600666673660006417322032429021229394103057241654888503366364574456732854066947459413863260623442104107218524337737080093074593982906465685701362499188477378889561351722974353352400600548206557002826057182338333121251902237667371307490857390534439659629668146509628221674394088342696996094927559128270682915997535870570309644324368108076667515790450455307256159025254144548789450839763651011566866758381210041942739288083601977331365732383917142608706738226379254705833012050639244844535818712528174219811074143282335708299789642926998234973356289001586345817061968190974531928382954735004089159243512568801306660583501042743408795179833706122997500589535283631954583311214623147064941911170558868612818169775850646176147496047520009717161727074711786250253013659019433060086227593138184448670646914868075892473494161758725224900771970845494856591927264847009251467755595598582545155409996646229589818915443061319991523849440647679079722314252128475723420176895874678519771328340228999529314307172234236310331375768795237030996597810457410795209919168512830717188588054106615507562349242400297088299713938639197343144871522162111946903338753728666670914978207329698667152197406702089567031706900037863901876462050710097096931140135314093458396871714018761757601004505429683902700278406825095862448984568828495459618767661905917538833793547688957201654618028813572916263393675734102060520563380801205956324840907643666830870321963861311467563795716108597345563855282242370894840528875634903105527451408617498974363079642001005597776774306012600216374081431059844907170846638726918724799864290889157578732367405115384413722884035466894339560291520918047621976800398169018208079942802814024166919403548225991612532862912647219956286150902219748601416647151521296985476555943313433326398106398811581938918896577889933530244020508679958393658190011358136551681065410229688198188655650554316118720850229488295198041794733338013249907420550323168024652856066879495179770391082550389765565108126019662978784925393891448301492586910893047056581492940587497703316458195769450566851206839657743814747029514173821606024969241205354169420374082989648562505872513118891676704910628101903286596766128081099733216571416952120964251137843211529474100889692026930613925019733623616106441212645003710433328805596473787739299365299521839931768052448682338169650398055090044209184232809493485812068969661803263286575615099165128403539366065764201772827703950628723728853202492003098525130895425432557555447633684978673502266935631299791081974976342666945098368904523499711312378443997127463809520616706444540501707985602160650868882741814327316568131834956249162964230130303082780973250254436145441908814136976474482368448247481804730181828491506829396172349818028240656907852760732468864660636814541147462769013542734070163207133979003322885998713072456033611272902143415675068179745841737097967167458758028421697829871835686847079468207801085596311179324833547871927123989321472825185751174740056135451022952459543830164418104424549052566497720565844136440147875560974098050457859846443058587794051099703317291257121198474569695725330950862963897496091902780378018365263578571328626643409629960477732084807423250755074059121379508454364216175830283219244876406978012261409633568707890217169245907656137614326048923420617141844794105219205952194878101525668419949541037568398601096909642164760302179153918934457088278525332762575525622382059765847521975207354607573455526875432371523588083423427749904850675719865830244247197874813877338781538319211221566950343651019187498012981390134969020339460557514624218710606528652339432933532609230512545828720212250499075526487604900804562142478705593712335368871233284238530296328620989663246019233640889545669459052785875261296170670364427388614041834402162435702101794688924105300922688781061625830411638253944079410264986990301809762452846322242711195452020260788601965720877187475289581330425398747571144069882582788653125825792251300928705439020477557240352734271268042378593124709326078972936305165456586221553654846580291530035408379536847785877988839982036090577449922109703601920414206035271430601020644021665109550151978772572329676276318346348375775954107282161152700346438363897790345179887320690773066781705618455560076332686836290666456807241775430170216105378226130871472912875437054630010421730271348306578983801365567825158569341640423740888639912088386237097487761833419070930677224068288549396209622936554278539596708059067547611122347444624777410578170291949385132728815031493117774958684004180555967122195110611147180057705517014720748965509699916632955952467286439589945056735824754376623505131149795876977643448183021028838912224516969602130437816150396721174124080226507777276871573341020029955187831483493967616899054732044124235724923701557040191622280723512201114308124530824318982011987938156228466302436269497847458849433173418189436372632481350074442903379375149117694690378807083116100261767953715832053689436362509141420775750415647506468285986960709140119799015602067913781277492216862688147504150067634687545726834768104329175272042410475737952790040465917888263404455876497693838690058606321500409176812713681137356471072545147867357507482135496486458848957085979328808305062383421641473754476449449933487101196641590921688251387775394627089742501933013508857785606062022946421339634172479125447994866799273228577625338228219272329768029508941521933091789288214408843761296884990404810856678644183497009308173233050598763933987324965023099579626409628655362600361972685662635807883028890411238293354972361376519203047921623606362031509142086843612533259967220517824886015949379316650922249605719369036788493779550165944626093243765167773520703679040449997866620903493928062512283665395729562225113932479867105926244129818885041022717501054994643266651078865287408051887129528746110845717571336927044596118617638434779957834803081124210221647240988451929748120529030880970089000753490780036498097152734966850434342613567008076470492534872522647663275759267470493521993373290329186717929996369962697670809331504716488410348922619147142825059538872512277128012227023333688789330843596750058875332866878659410917260030118621777236158277390124043779934585438936414363513056027127386092345462862085588011562605290717675903190946014269958105076388838785430148722837240733915239410521480437648070101913158736500596064829266189113522037752273843005646073417892569758399809266959602577257576616704511639741231462551228204208594770855542919452137519471962240176654893028705674438233838986520138817666918215738341573285853684012176598685104328851762508137231648056740191911027928649865072571030688413003316809006133852620420679069891942440072820806687929133569503629710324009883531222021839356048420207188537501527597100824054819290962820096565508062326467348639462774043887421592248328263235159901367838893042005005993713191654579791326443395519772862679718653428329338954150495213354386592540212231656846443367540920587750045513425969467676153364505515556381509688630241391917310310933488303628090608661232721693337372781873703617756808217114574353634046669617425251483005817351153989049873262155652091784360103639199026942569797669848263637173874916557472867870042103658888419547773815482984260317633684325111653458306571813732411848437203377502445272175101430320109404825792733905732754198160808046067739345791330540474729412866217301326025804541432444013994028737474310161760251667031596104747058575491892822832594700180071150096865964001916610221383808653523035880688725861133112776643875320271286420688473223779608552001338941560777394307255307306421988971811157403838383702417164016166866973735798563837254330375700911637007848049805926445953831714896465022638491987779425365278113237361680405560217535277558869087698157317503966126138515728428013755758727100114359180708750790245245464372188184662775349042140627876964049970494126061330401295600557582874922690851038076322125456304608419323419625070331713901036331007929751606047563917078016343387897853008084571359723365965808480911023818296963474087234128756220524002459057592223034326227226579735376716947847035371539200010056840061454357767159896582182278964488060755299964544674511633039909096372632185624638695981618212833996150101216307130041989731396362116689702415773364280238685822855812554965613256088504834144213955929456835065910469908725196406230387943873731642258507332457498530588685693961402058896983354016506516864278979018666368042745681436671353925332467680589999506332252525076132487127006362866016694094683626652524981371527883830333349033943643889143562440917925346702084263085357036193410789018878581239764987486690549151314980212135194985452899994571009147051232206256215437495495608186774902960569587497227612056156930064029527436195910311239773581288463858237211296007872664571113363924177852295412638174699188347197064513735933781514395698321414274899439731836376840641875295638676538920072393644060339088971992952161183220992965046620876960110679338207741974118783328550972927945613579141523705748945063138513708998304796581414673762544192697575399207133558260013670595837286774159213138129926450005075616810658418515457124969459404098994096400180939169093078987818127219889225782629221076444423859394989835883088254485548359546238684996638408768064374301161727805090831344993844263328988281708541860349064009513318066631959598967023892576350024385251889286695282008053378987704714576825389478787741170308832072528066390615736820275066739971674336823446607926517681761911629225338749732827773297938881369113509080309185615987554310046896885435366175108640408404336287471903203307749289371250114976041811015974324067584583535542576409811038297247283508534526330830591899514985369007166645604170690409236500431750722354311689560930628375744102668004210484344237228772774086344437903981658602665979863796904087482299489418596602514133578046027813539135769676070836309761618999975423531829576397263611990567123580501046384134785062601178460931457415826988392569119565007290650323107527139591270507740590173206888469707383439325110965787561113236378406476064764879405853359105858819349623341351601466749511128403417856694528817092798988978646666914643802030026671071960402690322210503783532545030206885639376547381221348801571125937439679123276075204371645915120546407862551870375911233152849446411466262116638541078572481793552302398673488398607548118378935044653820331578716855481018438342825240574313479236139452362849107088189532809068122238588593191732219808970302859719814860830920755689174922470888348443170609653820678015298561540475040707704534120272612854628373649074147210451685598248458061641203386249635651963312135834964266636914317601138244033732368773968811439060802420756796355363797446865349757704520703072346946661685254010562733070685060088560972732971664053265257613872298185963405949148861644128136351846009615192633209015912373106650433165031631208977840608204076216668500237157126715155388835287978316431291768769151586035013685394152899141172770759597074647391954523175198691144526685478707590840991059523582150310595014223810823985566743640699044915443375495182847699320727700002293860048013684998678795830584611416544037333758659466708548154437551623589614012422779606481711688401558012702231406760514250260268545864880255993670993432486942441174342417973401494569869560959868394913013685079862605248088687666274902523580431186647766147313749805947195101327784066857326640304355767200606544504904420093457422610664959904067055676517059753488574141234569424381094668517827227633381776880948263421880087661020026262336036820312974798712814320513812544250390671930504271018974144259532610049504570735669324577386292038329502270123256091521760313649842682749820988447160530564558089762565847840437483658163484641963375087958963354739775752330206046827087220015085140142045930601201662721415355965975512763835142631366506565099898861005776203474416163007127263092406018599646123856654714542987676838878593061987555191937599636691198232075120937991966886838308331202220435761093537408909482289606026809682515429839077696225331226850508333886641824157174702235920321169167948260072046988767440155053251611251272195452816941306556923585608716973504209220815456595303538874434264974079665381436198217525678040086922717620394095132386853328432668130410638149619552502675092106198796207823590675845063262795912689674004749638625936923794342830051284432678732435060546857630502359406248926994660500297921350220582476177992312635034528711159914304191011893492678612250646933634984428691245178618160109808233953644661616453353025828512029478796116504665026571353169615677756238305016207913896327135653649249560364826864997076640408573800365843333679202712254290695512272940325889545277551230192820152547286787899789674862193577928549237565708837982420030785605291306308429490681419627432059124761344952037947198512643728785497027463284509899305934697839389577633631038590118852517714820383629268417105973197654635631646040620852633544625911104678022857461537601273307568699006067577936270886483924133304882539204796646874788365272996515557772727183453630140936156892091874488678032472661726014293940437587921484619129333566162359382117603579572146890053630585609722167291827013604612683909269801139853614774231578063400451483397714827849156353671105599229331266471194054779039971911267290832591618383225130493344254028487141526249023380472782613275570269866239307088563311806382928882952254554515090904562573021533448389381113580470256615366728616386737649139138019961639328264156620861725136495718049610122068413373498062908326242359849151804671787879748428536794555113564870455265564227345897624968343952942147721060843787049493105461169421388530825417102987475126680403589313804079264776381322243396378934905941342714846979329590662942873581831301158153585142948565286646723307370832855087079084571836195354007222525095015785678336963984687715132753268776091688558855026609257530357242872488586764071955167432623182072356374933543751460402664816151549488743276913095040222976265712267980641906199721070952438848091743232167368686067831481062206908179918882818905105598830417477401626955149274941160779382169048088459727494177918188156129952819072607389742482326717228083130715076687311680952274586697643257537271401695659708187215400905636116221420168037716232604135584419460330310537268052558291139339378330528381762674734061481863854861432915201314909695063503786819974657571988613295458702702421258729677134180549139196306873449292601796350087259585729566789590665998826974311712699490604065789670004348784259998880470493862194562113252695367305192596760697928246792215930467587228075477536366119490225549604988097829069965622509890242149060581154518080889755417160468105173697709813870738778463967164578219330881848600862282622829513673694491099848880278053251565156376690993112429294316590266536439134014179268892100481404829743094842523562620264065253815628987930277076863999041976037891672716644472525084007206073935685755184923340482819294390767729507918215716893099422973802356525113092930260141759588615319552914639851329350138794350257212140948988706186304655483942350774360564233022338129907072140828117619328484019357136638260531543820644791224058442420993838989156285977556813610573902829002796233150840810558583346799959003465847594340876575219829859534621199441753794452041213241949435670505476322478986758414398443708476035277808760521006790037865341635707764395966446242294061790494637880141147945615957600181031945569881403278609597935798061086705507734999967866527544991331799567897948113895011139060168823402545323497092159888278608780928138593188869625132397662088903288390439726246269278774766608662456277826519822067236977632646972944309062356129525907593597386574282938813310541389030947955760495555406119604274499009984114345743222934807118878776694583249313785038995873046598671526522769414140837767697102382352946428952777645813531235046455214493062855790530354952003432700580541808786509427155023065183821781533376093036547994425975674223892737235690762325765897928434139188945232108141901560234705512980218818114802131450698700560070203601816412947610765026286255266802992514895036997695135526173703139739510747315774207553769682056428136620702720408011802443477456036483199302958476542956568881966618482856231090119355982089797399414314642157531602356233546308402717613777719218520818995872792969939241617203447675452753726415085996181028900246896178308573944958864960497615395420761223531751889066563854551741477360575951504689255267217972384747757148049246040543494510657596022704290404898686847966049920323214670853951061996243451730833171281573153354622659751945779302684015487018275676179183601082393059605549683337704105412531147133343276490503416522605914372717705009145462197694844584886037088994547793151781074663638802223952135502471837597828459762998957564013741181150224204348668976544216246490634888314228147513643435603842090071622881051547994357419488119677592909752628537836269255479863139151512952902427987313730552168643342430659488683419300443741743829143831149060784933886401985730225757739787787848911592211254327555547179627867536643094875683288089486557102986038277888750019345413029401088258005339271856858142153380221290560267691131238832551588621316274650862341637570928640424582470328477171222169434764039620251188845915188156072742826534952775945149940068719898595342621843123183653973744219174104922127628976632186812213436507797999041485863432122135234550931697452773502592360684820198645315537789534652301785622047294470712949667166831677392547251918826182697057414297944950178020793370604722465716802494938266353722202104936369892759439802967638496764234260010362887443853849633190931406138768916060046893061524143965066412371972932512722122727615060986517520819221221298652555119148300901260213065752446228325586669337961973753822812065912636078657314426432841555021555022778062149444275888161985540443441515585895522314506130361592883701752473067993637723988416068153316833490016537939288246566467487057889641273444667266517833837894723567158446497671585866798463038237674536134441504642944970129080992308881217766575141121596608467967209082667243044018260137375269956445860691471538750891659761859127168532422124809388660180429160224290341266612286233761598159280596014579319395418948889597252513491390896181111414185731514551393950617127494727903895854881897432034453848519213512830207933789071613801127028786927967443632489502958908922060217462901950778706371591889548501434357756259341086509833280874337269665610908869421344807567153948253783081976212248858360582946077969225523332992547565667363465573125062507685956129109997797155418017672078183203908557961903355782986796927089136750212744180077327342558190689196629883526050771777879500855339247605155913181667044424633447191822402333437120245476665802514591486770443346715307008594142196536296448533380214456465144666748066699516330618259414417546446249566152401480731602640045215988985367723094250565110110070137521699972763452641176544886856186062228265770375104368789238286931988373094823389190833474919149890738717543390949412627386028622433532440820243237014794434108409586236308277544540697241847380308365046663106954647174033888641510842009990953564590217949108846600332658452749366976905170843226567754469864327701189827640385454898001927162750197348838811530122869727222209185484191363440981557888127197347612370952163398585691333858422252361502968035505853791926829959563398422251287729390517267905659708329505274331128939051226880307939471791753054636482695514233903578603160948346795335316657641026087497381380503217648825886082791205086173097107370826905971723912977150938352811541935713420902002921040620528436948198482873941764388821258853366996812881958199111787499995641668469272413116502966318009637379330375382230855716305136103331604182560689473516803296612143440311812703253641870598263981766732417046822664030308516845672835464737977034310935638572083791795455196919656533792074252348113212920112326230599029819746212395004934762005080591699468852063654409958792988897922796082931364270666020802365106053177628065226956012748238753767545098905804086113183510231068350948004102453553437505702304396958561144400941069441108078362756977069776917136106806250510254073215669277627709027174994072115963216995421219610718423735258080485309737102496944147117794421327230781863099182158480757054226726869198915066278536501537830201616804588081712209383066859841432941520369516581841294730308093180867958560786171805310014457549880325015026148384590970967802079342724456499229055065086778976795453237271723599831620423981091376622931432103139933196415525889580676642012658009630485023954867764841051356837370224437208491007811078449464676393753209812539421957194699482462963635564977787121349146214164791066283785384499163147383157836447461352577756232118597551948083821158504338771302646057146775907794819843149042983832537317259444867273983915068910102731829228940627439571382548102314511876134001390291997212790392882068944410597277839803489167099705816331393085925502014966171261432306546669811780577378971173820707027851235978712801769681932099098586468362271174118462596895324034087467916216508914469810112533023660318434236493659319094915420143050378643614348742422234380264121812070964661298816318780257453716001906556083015535858543477797456285094806430367209114604275396644281908969402341229816879632468338368252207526600346584300878719072444988753825661535878605464315918104026065064526593080952386536615296057243650967319268616529304798491286101241562047251018071398449092707887972032906281992341013530084493611084757711696612465362480218226080512210253447619342551584035483650344106809374357679409575439724466605249224907761907432261275239855659414360634712890198408866446005911977855773290198046625793658350401317151236467300668668618054022913950773600223730051250010371991192567632174718947013484881265791999413973930721245948678410599812042903222459679532164848829824683647472996217959668202951090282275451505748056709772447586519718043106921339433510387441435071513933217436598931038850291448960468324848753787523147782186687689001732175858931963200820441272339263060796380317934739300689728807492920666671616605477932020833064533431885044454373723035443885008429331967725101375033315534383733235918580311274284562732754266589564751320796518177278232909851085625309886188336976087484344079835712698222789723153044075612660375108704461442065368493080255261505308857247465964472703239406184348016728308466624096369234076005529239122670048153895289350360646210004297492581117654183172547138578379678445724275588146191003730454431713272392674822196464161811592367173485204347218029381414413482384595830582177274347463292713040664305883608344419143227615642424810740783607026883487992579395933322788327042665947736264480117165098827488805920628744839349675152721510184294013250186999890403049888705599060133417925163439866457248976263889401388286339021917874360905244528154388709126705807438017639815180719148441933001952838817154452709918520133139980440767813740984918089980521518658363252738605643652986616849832807211623066498492871794961622315062044630906966067914925684816340537147455252740933323056520440538684889549236265634304479485530634428698753112901878220693675100552258168747711779090447235443929469459864605520511530949620233545087449036347693485853604165454244794158403517319077167026283757179601372166914044515293962987154948145097339722068224040813770329701075231413861931489930168538574533338285299530411161572394316190976369461092033395625650903786762699709033526275172912001138237688397892164003906114287024905515264420815383718133578535379843942217033950781738502484296957773917730324011874034442856647728841614087459580245088912073072350048508065629008543504691882686540139131853239482333186538490324884218262371795200208664700207430115676959412130552083384136127547761270332095844202162081960021867627614309908835547806871927531174004622348533817480628228847170390049149341382311996255956716390108678665438697328440845789039319444199167659426194064859834857651710102439025719502387117694429087054307063401683341034497787319980937675113480099753036601907641472881891823236214388554130776352516096496913748977861601419840487793728081814192536989204701052879109665602221750955637900839383513758337053339382350995163550329157778492614727817905342908171439926848382178749492500351266910007548651252916972326886704671520443080250706482679798862881094124701770919360314531408125038785001154434927178431395046797054153234111748142723968485693969951487987443449799536769156672990539155223933835045880543026784088980730783582084870907230376011469468980797113653740964748696698421903121946207523475487972289988706303476045283573180084284429173269918935052909707855626986969568525952578886835974843358315026410669498040192046342468731917294724770329208488111269396573679664506379753246977820890116344734393286771874717643755212231924027454536844543561995144511577736664967966969733094695044146928937169691373633987573946870281112995265350060220862328599697849274418588522134041448448211236915440959956891605938891568722284309596814075835629781701419907991980285445028717412680060596476759151113116780522286897388776591882549694803418048836344322435089945223731161625940586794104666246396447886925109764655701748250417771676426944606901910062552102119560259677735599338748031667756956140709647280269144551551491320286550866653351734625293340862615171047875855186646928206588292623139947092722081801664765508060871282272984841453934963122839191360080264365081541040924482740013164562076082589259981100760475676106709130660245367611381404780131028986106020066548334883143249492901422852272096883670208201591687165018635598026999349707756880614567947371865911343780747590358411448480040788049849159266376425813514622029147373990599862570509160857976064901907071741032013510010883211599346596004693804387332302532046577130877056405352651790038532904295445614355987521129662494115248531736428452561571425317048943203969170511633517132625101462847734919616958942927909809806418555308473442530596208249749249804856569735351467373789184568823109478465285549673921868400344535456830411308293080031752936437552113716254645195664653635864840521430155709095212682247199158799330991906724730804118786892504351791622490607153710141253149392397946855735800161395949728316244085088832283164637247181187743658232034129662873508296974813680094514766771903064674845026017985992917479973337678785793417951111513245865660423035689614108208428568456830951223595071661702355207308657791749257182894111006914342387279301863277447291365299226224594469945563956984493960972641877637528892071600482301852130638010703067652876379195935202502427824533686587837121720797844371708141854191941289759831455398711143058583887869722022520192585124167637939806425161115013877818431457957327823078976850411534819229130813824963457913309191448474978913374625967100108817944602409766628638895545288659478628927880270965277943025081892378231505651606062616211811882978738798059771836451736109390210217982619489587769464265292253992203092863412715091419756529220556776325369671341046623865077366694555070617989770854238265892308742435059150525445440950919242743977641382282410756336487885189899519851473215830741472444288146818969426983431042026372478578434483085973520475358417451059920235841859995577627822333818445356851646657303313067068921763621664784997965868454907006477247245423932466329468604348724812428528531861929772692493583136990241817918906203323326004216471491900614758878080549826713611642838005366187578503542073608521767648673447598619232190154112947891348351802980627001261575430192488680901895943244164396960718995499659077592876547994317789025901371768994544621381021888071323832263194402046405961709484981393639828957235691380365441828750844016323730263518312630200215830658173342562973808705785505459855806527440692549519484777935458543077294839684194376321447960737167256766475994290315303683736214364785164545693398984023100042946158658650400241288675398514507618100628355295818214675319240449791426547135286670067736392551441902367801263689605979781288233853972808079058820477116504744057236732279325451162132736017395438217750319211405157512564501725408593443648643595216620768191155372846950026595928688264642943668876335817679861387178926704128783264382003201074034054138514099801067354322055046465995195486925517220324418314545603984596480883281649646635844965904703066365889727561026980180973502842038061083934165962078525037669766382787903250769710832269792265446114838069919082820946808920678632257180933515100932428364174134137610096815400837633368873200713982617734142300925792835876332625285291735516527728734385919358477945658008800084389985036368984623604303899927916521959848256122336603719853825466586421716592186162476963001111529313671031145559422321933067903596658490779880934571366770990053397078189235837455578656453267897186498102131941294785508139793249691598263767501376925633200124723340090558906148524239434412495507181163801437073963631984327270290602536015780467512371612442154069097746482582057197104992866688225635584595629130991805716299093500176418041520867729052490170112472736697473204819485875472450750158472470822812736124725725932821206585040026039310342122134199929013730510099626152850781534351378814011046185681854587649831530074042884034641107823934719951494091621424432912378474178366270658606341804492099365745142715573589317095898565913706830922279005681274116967075724729123069957122618516868730019921272238157905137712697485519145054082885905133582522619893480025301049794525012642962104402335072343019987671690222028827346628065298330392741997640047484740330926462317942030026614261034641127639534781055665295533041682915881656516472454471241907891729794227503366441492176072266742504694498239478836359837751677961945164197143583464126903348049569345584533304407208901343158438795464410857614792581657127721207401335274530740821208683581353009851715642990945661656771813452721364366851873614162743159396951518758431666117471616652331396614715174717458535653338831933620095194564186231781437381061258733600407193711120720564968001372601522876971472620148133370829444942152924862973271551011546895688166142840412672424944235300768384742398665121240980605583004138950672818246272226129757946525458051585737333942333914657113303592793602743030777091068036467157961555967898244650356903023657129122580398959788982543333838811628924843652288623588682675159684412922562729451204157614991669586096605113036044984635595843289887285013998864902761120282900833731258384649995034176201685208635893837482756970471793380462410838318175804420074646830835715421408617251632363271868096858877905216846444238562769364401572140780677533424630854340255810746330397056047483396951863783367554552181702520865489687872764995257170452850462995754724807701495858235328985104824734518306093545859688950136719559767739931280513795046302305571872167684422100634710136462347057208740950335407793856137819027445915711342517758881121456329726138993901725523470167770468706696913543956864744719499136654582707623029783825229455106233189315411895621508067809882754943662352047817810566666383447642507037877678803577667215233349732078402685910630078944555679427362120843053054446604409440976602369144681634707996250778942057978745219253564503122131730652920153131371022342556045800185867907078078759062252567692795965198506126235884031622569603563812987401330898909350581033250525366514318767714038482786193152470879971132544014663158731015102005791252347846326529391487972340558588370261910232470491327527007293675657621591154000367203056686094966444759174636791832106772774921103286656474431450651136356806805086416849799110021933063830189697516021111083175793909875838522739382581809066333821859914737035951722354932951149988336441164048149559412285833509504718334784446633300272826760198654467744607109549071406612531421618472408403438368037851238181527068996748997649550459703407406294049291101558051429190307678204864122364327008027250132936690896689757136541041449456365551191945076144633500917345955160930446757536039639599095435913369196425196831372154072875538464761514542238595932085079744372440238669283567005041075150290819904273674959465951952028223420231785564287780875363695660023495240026021117856559983524935436571726691656124912371453797151036091817148629294834569294095151360906694543620246699142870152973964911476125903841109264383484901870446846402920404989834703714725251053125048406028082186764649201199965594178427203894486560238184104103314707997762383195960442558768529686314439378890349362142101747666414893369194739887834513460250785811997952819996257069658993552661357674684468795535982512401992480102768076956298785543641965646658890693811883475619993932995719279703362062636923894708653840307561192099656704218936373983365898291108243799190870410371140744256419630170989010957267452624950327795555271893392057926218491568203616964968712165782480846514807146909228499123002669763959383673826714613030914801595871410803099934509428272927702950332095747073059633482865649753485249829514324111374271416880509068436743131556890740880204506632202171664362203606542305459698773392347688734198574180069002615779178158168723606180868468656225030704242494865550536613449383059331560728715717066445467079043273209889252667715943832687605306218725740409539926766850728697987266520254618752214547664430966019850322261110862746854810693453625688285959109250990782780475905965563995178514071369968206231671700472114361158577631732603163021791639825208453703915659943545846782098243867243619207092156119149914836391245533939716508769516506807366812677857492368926776108753464076474588974294114477666898144175167278321295287752911110274647414907437803311296342088051599335287896713676849161044980883452080868055940013415938907950651035668056843047461703500421785904160703436632711047311628176734358815263846545969377509928720664166105013625714331568645643984835747405214856934884333827793164397155237866637184199317211640931253852518689582794385053171807128089286937897615186393815048056380587126075157339970669356029037219897596952655269133902380739899509804522420985709048262174413726060720024776952059414047707341505038447606779400329138949411362921132575148431785355948842898163377289094152807897302885048580762745409068321922327313287845896024832758200841119614821320204083090588959296245971710549176766840156027314142778720072609661948096868884133785665523585718403641657133862644111766687297507980368206479145591684134792714265457422534836041101717784759936812835031939424262421258280453538661499716170817967774332892086157698474650006940109408217058021655404708297968299702682179776415617730969060966706164177102586284641393919399014022033774125914648640126473360358294615907835866420279782142103325864533521259071790117991849987092562789091601234076903137831423064518671008717652235361465934051548963563107804758304881551321775761038630548886794762287248642926987635377148792151827130516393004766815497293861602843663425237838533570093065513562381724447865037455722496446883140451049253273619168578883196028545560429956789942145332217863741588649739988248419251862480046905107402505013439291541028869477426990986453178096172940787823877434596760663210689924527215158921348664891524302482418123491629250871287940419356429025727675538859512240501374801041769350727870741712504712897582041171582291978144757722798171086107198953052853792158881174428254836521758442294843002878325291462458614284077037181438702253610422597192987583375050818534705548704286971191106144467093193116583774408537387716106073553536287474331733341525822927325880440111165710050980793773390193933653737399284424867830440786911935578162096041650619772219959321717942313612808081293969502534174446416055204369756214820120787680744663982974156235152689597815553308109556792400142071438674942438206759364114417132205012926388306842523122672725617628383158025966225725565543721539410418758313888835084143824857540704691146768405619156465011621319822576361302086895348762068131358381452739086228473672372449769367007400302492566354251250143152769514182401757834335091305908816404804026575985641346282140123600103262806394890576896675786010180392877012325819556544731499035852646048235140744737703386047631544794130153484099394661912354918372173231528941889533788196890103453121319665840918563595328054019829852884454275476040960430620986332415771230602235280515728439879227446222082403911442808092911577939816746272732903892536422055881280034463467118550829923602687424985389257373188524346331607301582312932657518787121661855461810304402877685406874260415490667403847073423071992461687089108460198022102248997487488247423829261298838300183636642310471075013790002862669702119185765764007245086571842771287217330425507620705004422209546005980288121812747749522965637109458866391184113310080563999585049345520289659801399650372547185760457785132176029781497749450785919921255215151623813510509090088709433477281455186619400597999033691116493605478521564322828606675735934085835937142511619482987106439163057622244564722016561881735864778296580012080575365098867664303093898308061889037562576031844482318237890394055823954962722043985841523358834216812415575250899061862506919466711678213230695317269156694211746214900119024696991512441979113051879093780042436220979811382702347144224766347388134261457907246885184543569825776496689009150134713838747699316492961394603796125985593519653637740610452640735861215307985516650303998943620116592138247173560787932686598600769274915584688885057151761760214468709508253220503149568895701480041601655335309650617107947419828402714219670615972586260819656963544888759514059239051179563074107387477545488430260922134071329095899393007254206300160814458255508815644219092689583357094913816036140607652971221684692019915087184380350354020092966505895294459527836599644183169417688139069908903303442179200086299867658834957074965138727022850368890324147578409573011075041113768401242218153899265270313922102869903499130717433276074882406614778918984725713551797068008304688878111833170974319190597438840669372089957538493031282717900032728235957597251071427416435500141617979030590683721873242208927977602554647601949818595872155533325809980500194430572331831143929206067698339865364101520234451680255007296581394100254225244488132549610951553423853329934714659786402728403530511031030097788114807450938844983804322729069750643051808839915580734166132518374735287406814965393415583357007708919245361470752827506709462749556260907521142867869703175037144067665948756282466228186984753827098156611398504260705767168931530019431049205220075068724851567355951416568582392643960642593409945732759546351200959741466267342926371642086857193699007595528733610594768833870239300435667203090263973865713320254313703609888140990584979210356141624376502176740115838689511238744670294011108507143342115959176869940747785979923834712458392788888833344426766404206865477611700682893757045845357042641754335601232778592294192451887923239062971412370962004186208127774097838427916607671721829191436753334994774747850277145915000523892301404814012982664566588397045463829653175088425598979599796701445175077689625429797379263893678466641367161367591360370239370034904832118219877906048496728687736911379011834316180902735711928246620571942411598526127980369866982724464970508095197758371992294713328749844948097055463099858373248290361496309744296635555535971652879319331038503437175879411443172953263670629872936346595658933224349055808798830077557986373638436142157593259550383735532850706504653757498798308575848997555340674640901278834938269910235176821679435931688166527716010462535660961992073364815410186624428819620721890571287758629193816226197522404127235702078349392405378617998969093725073166991245009542918391382540802092504678917600674202995942886846697517918643535962807994105116854725649375851080269803072689018069205545887701493372317853181604276863669276065190715737808273355811223120575154942577030163635263223104105100432133651166423022975798763087551909238406678416758558113823128056784534004657080209895412862317727297759734623609754128276876150153588386296941970974320804201643652087647480253329891505120625191944260921812451939732541423480187754536492072235245089786238514208735901763454680716209045435090685200143616037853144991943236319489827566922556650977071798384967019586662324167282927506130107493918849237323522445195915460256374000750011410745222779000032747121225061565469732858613187833453934332915213071835109641400443238689274772833805949714582450669641191921435870183217933771232897420080959652275251537595840789728032053489560050930773892871678823375262814990748747532480030330948674942416428646692414990094749529644938944333736300276106433266855267391435466735085769015849945924376271344530115213617714173487682487618095649785380891104654278437896901389679691883999374013687215987719806759917202083785725758737296751560120586413119374196908516992885811206698592990385398081727428697883559826699984482896374801810178984588755180188272800856224578853430988115829972624867997466727928578375967498786257507864493028277285586699943552245348249859134425077591106373730629387919549107197931684488498519401626933424715381731611536141732709155603718875002411188300595178800412733704162699076786437094279852811160657646517793025410911530142115047374369730385796365517937950794675799247022070696949510194534406422013225824556649429927248836950816765323300204532151944215921286684367608591211645199687622970791866431817536054360599940784870654690366595694721847038481759263515351785325530075939933411090388526756875447981886741726892794000427093736158331820211270112873209176141091954644908994347743095342413568869895763734396961259425552723138342070532235077406633290172843764699960455353163704853692293782035643997789788224584473839437890701382148644200522499036626627719927515713489964942591389624746705837680358429771824690182954807822221189632379438149215877031316591012037792900094680820914324519409152593775792737070446902644256763184065730257064633506788613472331220404521554742150496399916183466041488107175471944427249380394001110964129322270064255537352205729176548356891101332054202853672480828332421896644733422197139862616062060810638286420174555563565679829330650790759224793866457636612856469792756669098794226070969247392236363325007701532298123075344171819557879476092104884261473258744594978299609279395615675265153922035862616571803050456037045783201189108144256110973674132236148899715168058696777287728020405681659965486001029260866809430270245097025100960622584584578470445952763084153538600411527938431159874381529168903105988987234177929688432480411091137533144417998547888839194998648829110189803130043868483869450626798120599708381582450645652023841899980266884304292201302614858386444193243370413102624478421487050826216425196252250840717119128606180217681466543010869274950461172365074838049533001785455925728531528745846330851778427720197102876054497110844443619161467096816250756329299325199627119440712103535664822674574604344641362203351020898248414327023652177940053227615062542632213346806752584126269184113134875653247380012305789676556095469825015562295090483984153876784540074616308979769145589724616672852987665978631596824637371588237586987768427284567700396094708920351313687201360417694629999059466948214835946749660072122782793388175569431227699071163102376450936453193449234221962051600990972441439930304605227975125887315107630354039232967266893223244490481412915100951701704690114222189415978612275532772548468173787430940476436963018813793706823264180710370592814889269719543778402134254248624736854012981767509012342488925166397143574726667675787856249589770718171145157591968054852779435890768114195671737110635996696448384147134293274684251889233682118449023276796988379678646767984181695334626337524366051843864416974343089366100476761087432892221293995551976659226882340995271667248347157834346147044834058613973918662435087047253520118133437536170470895412958673040610518385046884038614162252241699687332905131633805126344521140341155754467088372140870071725199347322987460586101526687802017373332127526017000939878537433603452489000335453696991894580605079108018137453092481075435356670777038037409687601491371093965393807289061779568657156571982183051077499659685515463305626749301155984937418324226952625510588278297780216640542837223038921273479491156460320541053373105594914739850837236590831652680498073066312028724011069649869892641023021624304974616740507378357411652512105961444556900498793430112289529321125956616098131380109576206951468214697334910900358313494785842734222161303793384361068267116623524826360472971062579761627363613995287362128266405916283207131917524540434692442916642799025499800581172188013602394547069856694094876197727436276098603086021055286980491762035199982803147491426406121940995608101183277216061981459846429435871356740734136287903149125546166329994814371690011248289730067496146049363537722081801369710901614339853264760522508096787496001955952691720918069679281603911349524277470365933279286459600559955121149264764954393186356370038756832636983630367951611721726880988474238564344679148022415655838986902751191380652074750382747972351668247567863357017144980518397039366686672630186915549682133397201727587454419673808693798765327444078742269466325587605567178348547528034266365016564813819576593204129355146589342252319956253420348410655062447488485642927463341964638466279216323638159945187173053587837596842778483348758447442230015744978859907982393289937982075562970497598384204031161535570803178366339567299457655954429049961425975067907639492450401710357192550687770081477524297564990576444865222767818102295010268585196629306450127336440003073345760802589250420401910979572094932042013291786344231311506016805669613088818058013883757858224905045163721639243245633589786225029233173309685396225390016340089764976825892886097004084482174302976373898918568890302089910745325975982238076773882174241381741808662261967028131250408682518528107999910978609193755192261258145947973766623523898150531654021932794957465599866130021266460889025295341729391663847444251824571369661376297054116130655276058425518591972583441164852406871938517559500968668563540542682217071732654569125734224187070093594695153191325202772219229560121119351004373906026627938827057308557018946796672770404851695851593974637914267683717784746919041590863967675350870375762485798630310256568783628128269494609328836012067342300716672812134845927253632295724178206242160989007094153465412123154450205868130083996582865430227733605518300030583590890640565083103961445030350492562426708445039821198852518876622033218025419391969150455955913982943822292304819661522453359930654276804936844598040773921761134403060740423667319452964444863519084196142312867527138607908622681057610474485178527989540531663622607871065216237627058516273549895215492071661876034107755174414690138251429974356152974334822098130094109078664877975286895764616903495538057788490254780900752188365274408513612725889922854417901410756886947550034226413482293864411945977277717491572375472541768957503163332922674657950425573669531280109384391651408615610736838181248552845294056824352575378126125375811020796571796628424210276427590190982993806612915250082949533572317989387434680268551389060486473393658994326999358704715947816208249873958278593715928143814942063296851928421068697243537716071315746678430993366496995945924578391352724146054367411171815311198644448732116132160500597218339265253510449032039377529131048862042325913507134410843810888784448839310875868438352485495564839652742483824991913987278142208847767672532327041370596457169096843419521173328237636647237865364388737938076585048130764900745593868756037548708405057806121877919201982535136009927609646319785095515134981406203584889155049397724798752449586243660167928210068125155686418072797208988019138256875166959926396929122263770307041231987551659105421637785964638552471121703325279813069420185835828601211148360044495155095860601497736636686642523640672151436558579048795936275985293466837792916241751639167420859632571131652640023295736886201234708974778931780777908428717985263938938946322855903650348762271784709161864011248693573310785358563826093662910970980539582705306171862249368732913260192803522036421123724030890020955879270377262635278678140501993133226984013297512613771038399114586239002594737444533183894439237728809404265579822227799454486494297210164522603807831586893562433802522519811899999927057137344128768085460979343158803810881664663397415837405605461718781048935359672519505009886824164644847342835915218799370432792645518609009250986931438554405364024258967123210952669286256047951775461324219448960157364464535874091245666597599119115155216206188175023610040128909837974442342318604055343764756768305797371741589681949397332384858696342797323244955328739177478262651875552890024621576712453330753721960719926244539478419388305160402993391095389424409333738040455692313650624207942705695751378101552381634940098056149514354059616498462160212813979482585366521291018992155641558468696717213410136128722238220356888003429011157674346329493742702528704960436361410895235580092838465030520747152384700906047981474707488624229261641506342343852994809032916308745878012952760774096103237784004047417761632748690115355563005567107802671950411866757111105530411240050273756339405535460521007341898476178052339956298500111336396251363723322918089805318004280705841386147300007472868942281137724029205443583289190453915725286267650450505594078599013502189769221228727251390096447618118017381958166596097402643812560953538675087275957619180558471439301907800826810141329686490764257341464640165533631515173500570426141812983627402843308152166343064186873778041703748967665161599885771099080437125270907207359078892718774407246409141316092587360837336144649838254279180585103333475083179717731362389330322335877509913539727844523722469161270946718623794685053429061807552965547369959598399498417272483209841751332481887116819391791223719354361249254143323224538279948910890560355260851949607295404885138500433748731492084623733937545199840910631104611512342579544167983309826807337737661598898515395688018346162321233478412711750374159194624042664956772303122579933547050157138380754024749451099408393987937658093961795131460145483663641991403126292529170123128206752794434590260904795771060700713593721878675932744648233457530919437239232099538935384661623865686409679606289134464614791944962885768877654346381296621574939247035532534980541511438510962896217739544335597833781923026383868431987469574860546022133956936939881397260705145313614667597019931940145684472548896151408162245879913523968016338852461604893945550279386814452880148731208959519037692258120382326319201450262623461890283955472246618422825741047937158310488486058892780943019208311939134736307753267212622970712634814393563334713715422045617788530017823769485401035069895280768152446006513948554218773247808377299913955453474739795844202733714989908808554416983658508603387188557333955039029565464972489259655790772005755438568121705721665120773015263614338217860851872398557509698069984414887416712363865654357318341320524613443120791334286492175367650280682286360789022624044960612333174086946258916298846745630869438553210799221683591168982493158251856564825108001662443242307401767291969226238551470596558555136232258057537931206925285643520545361691062348159518957542726022952447052451725973304041422795399249745897819069954349710600772489862540023719059983732693257917430131796189910842274938837609657396498268013344831104711411077900499131580960726699353947621251582096795561937642682372437813621571811801567776689800909939768229678416059821182439533061219951223079477518399805653701300985515475806893635102571313310281326514816761711995692251088655471837664126444824984457600511823832960382281910433147008193941962944643027046342949875529327114668249639234931052878301092777859913559705495825881219096544952131023133345890154583367038111377885686177562240480693903264259543614637993431138827181418666350457023652778179207677428112580018564670722161808972752743904071665449479277151466220822359047490142926885752791682334636309389211064495568554961882303023414966674557589384733490969051779312048488739055132970281139098286204479158105822559827659014494933950809020388972947804840232288320264266012415364431021012200010324906386310491760084446315732097109782033622972371947863007076989666401269465573534824449558454766067169782534453362136915505831383192838903539782374265786829375843164471415374937014726091364395351479058381977105124953053859834984755782436533409961440332091249740450682631923796054709934157155598641668141841113769585330092554396600021903489673534626272627988308542150950147897647273986186187839746991178772589248642219503909540396903188784150805842016402255073306316587103636759237007762141715992290484863237348798138651345310725124952522719896159617292758013911408339496437355898061491945614564245800618431884558983984321758689186623882831807021784414389184718309850851093805272969981718737471713925036201371556919564002169156000056758109600457493029296460985619302991902765707369070208455340384734970023435089582615851314020309254172060272063407246638769887598056833998353110955116823402287446173503433996120015053970687961460580226102169755770057730979318122183850353606994401992121522519044029416375646654846930728889187449770531534139543261096274952952978505901718873576459886129404048597367094769675224641333160164205253961544133055944975611547052642951578639890534299008632297423961629902810145043828100065477700231933223623755517845433061406442496544705131826848064712087789050493344643453187808753937013553935337084893644643533448649922879097832719194184764114328716227760575052944303052699111586780784656940727158512079377131556252379201620054803085970501235318737658641610908245813772444802722715082143863047003850333823984512829938594354354664481548050430361673116624275635573239558794954877997453054083578553523597415724072122234741909395046033885773266454211303139088648588665764522116048874975564452249338793203767281049548622079884753774167636125474588611583362451370545235550565696627831878173801928643767462990813090366868110468491454550030898022905653846349115327676804791893271499520364498427518344878335410677879458682741745317015463547553855196979771834368130914163141763565216728089521777165217312772816083094313740989908528247713575899917937503165885223431440578777205944371310087708865209071208926205270874252160834908709607913543462498224160327901796155928246222601937174324703677371367843793499826680383981914240801399158695642329435411381554498194353208533572718089891374663003039524153317751155320483936515437209420633207972601822402497388115800729333348994685970951300730999032913800633390416482033885459483129698565132114417473228122064739218205751374745003009898596141587150238713953553441036303134209241563224859214713681668999016267942579354495612717675909207762898973365234169334438056236365877059435769134859829286531789844314658425248296883986896086858066629847172777516000258074967851243424157803927732625615295008323607878334501551633067677237930785677480803853875978133715165922240150027983777387214363479347603465124423724239044775236871291170433071769390054944587059886321629815322397929554424900671051019418587395191935086581971399124044570538965491481993647521075424022601115477331956768208781211769707602348512667659932636852612942960165106764076011462227773851516275153518862739660743735463463698356816597750343271779510957929089314024447025748214156603877534650887053723217937611874638600670655556345335505745173477110004650077655372412927760545224626898843076128936177183350081750267159456443407797860756128543657218982592136108343827024209205898670882123121786288251475874238645368846236245505702742505049024728034553801766783944188476271844608373601652684185906431673437237308324171639177661067086152343381458050317783507316247980789276840051762492368226905941293543883089798554787545133006143326189731042696483427325682020588624827175473630862328637763920993278094629118022048755615006519259494932163001291623404367833238801394629457934343404147623967868783151051579762562653182768133066217636947473946219536247009635003114080215762272934322824724093487364917444685235199584055186791222576581403739424603938990688431391689644086123384354301267753270307121123356830763668573119727302763867354399462591943972711613281351742041171433437500835289826370225787340090755711670839928372390542305196038574461203956348390980098849316150953425034669847184189910134083520853411380959548971508807625467412566597501955700494269688895879847108718731600481801399737323972340948376121459246915255072495620293488187157947737948688491733095606879939986339993497074402432882669699765404045118850841446827377114102318694697276868022696884219650395743019788023393953172278690973803177993082547746720124136731836773062972892231035410263111013838370322972893555330521816366051992191711475007603090202233892086792312491864477508385999651381023990304443854991038857509718881914255307281067960167176069264461918889431057359775700105890325695633081514689140145003093517396653879496271573953420221154704449281013851570693651322446878207756542597517628228490224884709663473502462357054843216971504985425884639286074988551017617508252190579097431177881306255704567122727141325882357374810571936447414673558139114226432358311750659472640562671308900624116545594885990252008953250919326720326618963575181219985234480584529623608756856153789947241403524249395324175752563506543147503927941257546566920296130727758794011269493356309826946195665177501108112038049478370465630347421989441108581054254715984182037440392894844141606315089887321667844796379850104143253386405441438872692305092652351046387338801819304630336001554820762926454254489568156327799531976548445498405984358736904665752632365927848528611600627468893605637133723899418528636726242309208687208473292252967928135286023233632731804556221938371757938882893909156495274190373623850210561360684815146898643027173473862990959558009412664798139803715146017049504334853040340257102519481418973001047813407231116796635229251778149972652522116024431507136561259507723212077814218487970885430610219780186240103745304894579259151910793894984831051519963136775244242453357568570031053993822365905617965619157125308955161263930079924136412527431575566785676325176587571860852677614847963622883726199921002719186544892689973216946234045074461739647324228062563737573885269756840501221717487102705408655385831647999624967668001162385392938639747503442634754895762751474346621474696407058935667364348689309192979277552072740986727863809959916346981499447559740534191870812442826000135568265897778921425486782501988903343453831969164934032414358668663426306092936634101012196712594566246048656115658056784279099197634428919694281747202464158239306334542256829339574056833994094161977919232953167315807904213454402287350172753769867319551191621482137588363629953429008293595010826510030463772285047343032418461779672962381428759801954102641304633648789965383321170258553124690188498989612789472886370820287712400570174270223977780754610373013920825690425581945052296529011840444830649148075234674263520913999854594114933043999623008647755446365656954376187811306437469095508946410287256544632758010503551856489343386307890016768065951678528039921420985660979656729181716441892834346182684241237577005441476441024353102909431902366484067306343378022895326907265107245323097684366911608831161611079574823071297538553334097564755300188078070640418315853667922693153139782093932351696110244434037381335603561112975754585464508943652554210185088127085815749581343861306746125049109462324218940663829064822922417740335735948589787600747631540195912255942169306334713817439384661291064357306902951797391023153346937748384019791143048917607339894060078622678761597555613602851923189398420068277615063276029261550236156773024844708766560348777971180774260982396072964242453369721361462891763818090904127061238880396133934741081237484292542014527146981827240951159963062690946849185781962253309345672773762534764102116455489198409769120220936489225167944798845894764842438349514573779948130371106676347172576039283440801393241122915308327571992997167719558878290015573610540609634300576923312149256772783478181901939449094579707336353520338585313860118809708422378840645885678272248058289828386901806439986719181390482788714825305024983642802082891445503035430814403269383723242270156948265158333382131933093679996904783699466262731304132937745598635210127013396825101684427056171822248873366236035700399000026312283031666646324357421305626520369171226382897243597077683982104889567675118700785803107542292554765682175848147228868977511214677540199065249370383522831665896955570914828502287364767349462049102013048638471387598046006869855704865195974726808518855069509887774348183776490048199652055815232347970847104495709600467797258900035549384721151247195025989884673780502918486258131674183078238339965964426557085142846123040041463414665813546056738025107519423168546979930319843541775009716222622664327404699183576937619180456987799333595106423000624191600964497097769499314572404609950565031682789867578232481320695760623729407099557887100999421896587731066603306145434734343166634772126079928525441809543519613167226266194586439542741072299281408558656535590694654785009546452717220692128794780457846487412562835300079054329931431559232589439635704954236076881796057446260192513638934552403236361691930729854301830696094711409742261963318057077198199205239810000805746151942514941075618311873349328399929481888087542861708574679862566527965385730903210153760541210154048680720188936348638915627864202091122582937089838200747662881908126955103951883068357367852472123832736443717441875547515162646314251224520382904802164236237835656831811987776574613497979925296671682753393860219696556537595545468144260415675314579937552977636600068888551329902159118998359007122722978042196637897528196927582093942711725035902084813936702138638613622202252067186231259366070909754330900103413933007432965778734726843787873641750378431820467797414190650538636271154071765567081910037268482941284270148921480645982640023594328102474046145257851246746800856614090729506404846132268130942215356768985228976864902688513477425030695979165162038362280149553469047571210997497268945948853219775970570629249502795094282686994978667075730610592260243458641847849614977043741092905084700089309103593115972232756384538076933288095041555049496477625290699347124105114598644842194272863533601368198668813460878529138162160321224016844497088514256248763605974050104220779010080527575130991326978689421980672384245734959296444519925624448584744515723230738319341867768461700336401928413402804345634797792346463268061723354464898658269708737520123464509397620766480646702430458489320881379417105072934805038760618267746317791945106099978878116547882039621858832844597730543163656603815680828833449117748282672814188279857975731666298822754057679817429437492444608465445123615731231966747951042681985576861520242377599517318839205982948723044113413204069251956986203118670544336640117765469584805046909151319769794597444996647222212135050239052504850853675011711057875866069578324921688653502729737161743555520293039340539082399100051282807887470353397774868217779549083303062809037651458611053337331987955141744489499536222800841569930908204227666265126120457158856472576791720191052603463953090311095606800044425287880677497324702063648378909263044017948500321605294747805427476862607334838821899413725960411991132758035524569280847754903631043062272601871817384131985624835442849078847302071751801306475545134662127044415914693203160217732154773676526631436879541176402909966798005122843252989655492473631181867871302681035094309132843178455298117419055063887900962729702355268113372071865818767305238236353016779494845034473429125300519137661822078317495854705715996798218289709484568781731860979134941270485259921020220658692129399318597558430148593078358190192947590890855725318633923965539161844502426670690329774355040201041010159891729822779242545842436917281639099755697313626513433704111395444835030482171630361202498233608511025405445097413961328899015971513883636235245855083133278493182875098039813762584605508577013776606509315097930758795473912139762686473020284043887028281637412969884663656656820032526400238269256629897853843484237810608172660161774897155062637192989781849885780650445911750780946870525883441508647749273265756702169842211910995240666321794073329436027169378518613272200515083266527044564288090639557796760129842063220376593169668520592577783789267833714223293064289321370384919441772192804044272102232799152244743420537774678999444186034298732496387660360814299195385616968911795082345635874635702741069870249946261114174654241383523903139669491102702890049483051306592492040375383566975373796344008408818592080969267973889027521838305338351354013822371320063578882293759024614039611194952469622363641620657686214472263488744165349120986713681641876761011256243173644412390895391803798818739236930509270359658367020390750531502237417664783076253030420899914609903879296786190053689244000566731899607814247733754472780099520599762198401936439435791518705228829241703747451683460649588814628631215858106261296797653498784504164147536973545618749964552968379395585156436286653115042493689343469983858516426526833415448593392245612779503059790102770677070522631982223221173924136079493923874888549171565240197184460051876584921995508989115182007927449494691160814419878465841063790986150490456424651630687546078734168135020471295698908844675141514985823436765406143666718178008532850031061410694199204779687582560596101041396236072437981144567639701653082082831521897021202895918474372109447624776733372398482073340055194565251810135560167663147338602908904862627201453520751749235825223191505095375569473237797984615898538807234467981065157525939297512133274680745062695483164780554516796937825195476214190514898575260538258292966157702363383131555924867159258573849694509946594799760772435236554760066572936976815243682421263332888628752430884383114147319919133309356494361892645129972233161858222562901255869930224941323083116608051947604059129127762571519391149854863897908942333550283259388838604228335637160908454872501882349899317125309898939319763408302162903598937358546929822248494769835681737566774510182128304541509500498404524617061647575743625793806617994667201290440296838610364267560208637169511847104346902193554212325512256005222316407918817500855621816924673314395928639922343922229878690199148526661458440883320098766321060794098049703368561362372008164937447330272505697401998195508692254184751478612972922637351568213844313727571795926753449916028209128155017674345444622376434716639708183954478133280378241405666398225166316574245096059442950782269171396518717990725807835311236611006344542560119447976341083778920766104520618238490863594864193993287768971280130177758768473194674482268986566842542689131022798875714963692014652664063551098812395516394619884100586000842972523737546226022572332565279895885683698043469017755992122278698636276394197490438934074655033679750450983345432142682437512175634624823966312613315802756708222894262784271733241685616712074115550700906321000206642583508336091172820841933239617540375538542585978155938842971299539087661591773146262520863041516797126902553731033203924888013192847782839534697501605603159111608877328976016935239618964405686906676456251581737587025119493835607499445578511492926570206813939930457727271859997705893243803262562230466619440902385968103553375390675457154965654292702774311826451366301352368065992719346629962087298326116950089002843750167609947067357399192767022155557885984374122571782213302924443701556363118468962266788076904024041589924559718961476574423733865550394610721108536118918929457650199298571859964114108295599848026923718796046266346751949362579247160560225653009987355232469152020670343407888697078813650216301649630362935053614009690118888427877696196567069949271832955534358237210513294689082779272074962290988395501602042444213602336824091721932369657654755320860958993140669344551884927868196107818650223789593328375886180316830496802908665240197482854083532451203999677535960388990898159100035186408934361472399799034877899650327330815998362126308263872006618554357334801898155850392579529292518526531542793768665033663804260428248733184883289965425557392010768076003651134421759148847597583843731085610202888587519124561215732809184635783644172865475725934506076334749699358891329552058815665002179392193912174409551863326550886416762570130644019540030208645815065035113769347886518946509744263849411083207456356501000653672605690203485726202399083617431321789850970736846695833643454563690924293436905304666186535079796130430708412524432057697538358983449567992594052561791056392260025638575966920864571803250306565706157530812128709170087676128378389289276603974599376989359861539639625194778571781736880446272970932679032223873724659691040377975575452088326984019211077884891826462719833196535402110636814251626338736146551849430492981440620130810902744036793475974146930856833865799297098344158949341140810473647726981139143382235850887804642424568023782692792342876101275377573198224867308130384234041374767546396662465724728848152806501900920625342018732617673783667042889846008553693328432000890279490540056409582335540138695053778740242917688933875931116514740157973037763606972369431159028805000158019713181773449177422045121782130466297571162818117304468918280012634134446834180625814046537075117488206529910452976044141361096268543925264837236600601183248824761468776014108574382763553813412166553446454935192058697382610385849676325551280351322894656361312242268103466467356075248447359327130554888420368196268405185177477624177801728518157072055260513453782339255991014609971033181099993177079937902473753084709414703594811093478427408982453482048943485484228666011904452668513481995666322895850641293524337875047347796776424134240628947658683923167140059270537688342269997242841207485099835583449434126193451549073546450088736750010033960017597324305846338986690622747765236143387700353443035101807564291735635451693854467524362857175693058336851272927044748028390909791180924586039595966673752104052393018995592014661956407926324439378811194685012630781430541902416883890490478574970841779693602633637565912557094387125587598882142731690461256677554438882348744937306192913424200948955347017622574102097872806450438254431272601920225216246198603595875971312524946490079359176921273238782111420281042102050603103549157718240044259722076224331010955811661670431850682997288821184251887938948988410291699713808834902209416503350368853303338702009232963463469706746512258222632728786993065468883092468452809262040527584903395614792078953855901745065167925000654256965833741601557654146586926531189983944804470652854558488574868059711150134373467440294189493429733303854448818590295066476318608965544708085543871803617624973206360019474339041144427582538478149671775171646416949480468938156392277256072109279588700933410972193168048055888705312376475552295104486799822115388118761418623997830979618383900199377325039522565503232836742054669772339911893486252242705601501443266512168317963557934292341926558099349375331020846871368363804806675417263029507131634554738377948103612774483160866186435065909436447235374578053854966745972822867704567990564856232082887284513582898433905294290279376567251555916935200373700350073637974890965469816387766634326291613123194992828726950922826300948416149934513434026914041887350784053477363362470566739193072593450475069677924320300465874776350910840457179354492831367091431340620429800115967901024250938709278119334156580558858720859407991129036338989988893589573174782237341718213945408142658921718788788715190459716761566319118592736181613991283752348401437885939260315455427821034916177841682047602523611219051774772682833534197636938095823458980926495001858822777301683817140417859225366185739985953457276500681712538840483924917531044495997081757778626826889019474916399895223004180557579668224498614425747990341045175411016972558205810678032068249318414181433504397040589573383511015318373980092160805385840107780105478637277572968125483934557007667076166834792434795638118922055124074363521248560784000591949128853264094564675336839444337049342116263595535131075637488734474594782952668418066855124667653389217520485050371691066403467905128647140216526852515116305153617321482871656245432169886101786726968313266050982735431479580134528172966066485285944759728057281765962644126954835832204042513280832148618482285861925839495916782722848406230512296180211065346042283808328500132748630152207639086090014502427291526674539002251566154856199503676268152713886675305169272856844888980929649419924359275565520526473830004338458293344287259674759018412840661348893327237119273731504113365083901255620065417853366849337815303586856839775234763856458933369861280487386863225510881316150029865667416714201997595165944144813273657541352488640103980509810963383401993340864194828667716293516139990340098103144233214669402676945729957601457888032169909593476532894828072591844454649662650722577787425777130151413506522407327985536487147717791531637820812736514414022818860428503689673773438827382751157933546556109307561127183100224296446827239674151516847753897631271618194539534727162160587055924228626500425612426941273116468104984402885255308841066048546898349945806939521327552895888339112866928400079255860317978510648168996480466508565262398511962241139161669080061347091317194054448936278141815579894027343131934164473464324372295029394868070045233466869256858690853754428204749232097791375717767792093576350399337691419906258414486339579546214049660513087472429077361742234292644855465442497643485307017835974414163241158250319057964981756417862532232495384513938930651724477862608465228320915776212437412473398255864904845625292278321733059972060091979142647760302064822893813729072809800468262379557125723616744858808947797357828628615050262000550311395449307020577916539017432978036800347677277061842606009907179200777867182591685330577673759648204359257402778947490373877837238641327945761663158846489478687975726126124695386327139517607926669674587828550189187330005609819764900964851736602749925920584706702609763706688125580863176383719234501593974907719992086259818583667418351757070764631121766683929813497810299391057818516734366402216207535006833370777452041037266426774032622196361322273123999638918352593909306534957674864561912010359875769586113212703967434345569488342113162517350333942344347285743823507089507082417370890665997687510381644265294092278378541833859220131161123008971386183471702187686620795093858101458530810182800418892211293629559695617184374325673469942307228488530455364692185246196263519049163211037356235217865618906330257841493026076632308544236982726959759990088960202116135857218506928578548093067543418926899612621907381288917016848895444546279156086860513817149437856954709185278261438038175685851421731289165770119524827393842028165670084228945667581345794606188522773776110099956436597879551890163775591071799075710962637086749398832328619482913458986589841042278939028412808732459630654657925255165986334755427586714076533062869268003551973059475917209598250020268107433692010923132325819566448003518844199316642112614936328247884256673922440268546187351132964548132724288591861397168620546996525985118684778683796858415710077247261127912118440172160102388117459916208259657311537167191915402487881390125780212038763489814081288305057379468113641825127990731182287188191288133178263369131201858606991134056801747652911458268421936876684081258879930638427154640362877615142246744925494721993438795214273203552243264656055585904579907785829540356302035017967498935817275194529230678668471714029110469619163556030340766258780903680233560633680983248435102784548541731763280567922022862414348993853992860577662644845180551293229215161747346959626786404064447484883541261995544010714628623754844744009658637774641557470744037034114779901545487626455360881378983977757217225415350592322598966942963325711743097215108141712735903779396027607035352669176341328668594149293932117129988434064997194896642093581926820487166643861875676480804481034274168528826481535481972193830948910718239718041367149011249999355055933024303372363921716299420436377181107957918084540043734463018221896846886360588039361708808782745641469569366652762022419978834343753930163405028970035138897010011463203704632094524190308108854855432393940090640712177962932101321023226233932857201557982248659057636516821794630855738354883968121984697865671643492747813964246315293253814260835272091090279228217996174090908112339594639792652091406083777565656086621425271548331727925990629322636327024626629079640400056952980038999409732622498167547457690443122015473431702582849934589109259473896757746071174161959306842766883640736691287925958497155081474043208211095067809315897930606628823588643945442469111040160818529272012586317648947962106602725823100402638683932044245269240617983730161788617062814139593213883244264143032211432874096407855820692623582393538958412484595381558401896038720197666593105754959769340265577681910039791733107824781833681882949474479154573967772702160269067808193920846068926939415864024403839224698324328359041671204396076381070020221758752146767830389688403406907167661062509579163445137585907918518091811828610333739199303326297239954948076135643570273542590911911630573547531979489554468845501792877889188765739223405331176331467380428949456965709133871598488895954461666696521658797616536371984357891229620527286709494400278976769855123579580649280126398142093127616731709112546720061204158716133232902919507717415872693346583478428790945120043714817675621346309765210146252650065459399885621067832749566640568182501028241007287564927984772863688634716362769585321636069380684080865911912469151491239399311909714051785657971250185201502744614787323271920245820483609128234402913947292799811899288483058326213451811831908367027390048032350076367979986265651623463407111301319242864476192795251139869662660537750550708325639906478422793078243603335246623903543251023006567911049654941039628843427363919179076144268056623453127997766074742451778553414154071256170414485450239305180060575041232023966185343334048474360157146563948675512946443366610104192928497783039446187868602435400328298120581928646731783845334862644278856548991479358085694849752441433726172345493337822660626723802264605316706242757373664631695814753132130087292991043922102731625639422649615041630529242762733458496165107098445334996635955902632474859334703778914407196909866952676734065619334035528620809440890696593448564904815527232651050443556737107156234235102592178267154690615987137205042619293172331503923614193174682657142377132832107907648269264614626268415768087791869046896610596808720665944795477216664258075885989585728584469474238073742662436757405062716793195160197555962120014986730377974617934677782983400883404118073685538133461296747045204924889917420359239602288426026324302558822827871217688525628340341788053339042004470634466996210761017483796931625255247730167435594591901038932483864786338417255564672351003573505805840840832762736968680628286037772781599146137696673659237924034040631156532071724153930565564872513062743534756071722624387514651541129611374843406770956367818147851981301493199882741481247763426377843354459169823659822292683221953476976720385840329210538177706937548493402242463864970559677730603318869399529223243127575955276920437670828176405784420732033221117173003376626492206216806650668647518699682851803176764688897851459434263414741672145439897854025469090641011685103164691023749533362100295921745884659489079110838943832556449249580207902782693165070169150215538106391047840148940413831497979248209819447137883526972221868808645344122944364442939925994312135763125546366687349418736422943401515050232953923350798532310882763561697007409406160878931825757010787379455742370808603456672688530104474097192883185867719302468302203661523608577783726266276280035147546551017435061548152778429653064775792891727293308514725643320368211612167271490725288824057864085006064760043423062888457054454643949927791463369384705666350592315827601162663166952407557035390032203338655520255180051712587111996843441063836658053113398485371697092035955416246058512320935623603294667160702897822899482185276512654921466125543836338066871449433813796084714833629973268694353404365541110319620246204045735130668234106296885957083535291579889046173927790122967706578197284354291247873905889950552778883830842615006973974545775380355851054779297165303219090066207206512731410051621611961179358007023761509921624265738144499731104699778476163932631655171730804546355076642166809962882932700398041922229789613298580777293971871864776915428700437806856925016524241205779297478713289372485729745075844026591914281848600654540620693588591577622288084587715417864746036211635646629191236354481203791946436220653673801788558990787983308098231149162269730534384187870471121702445560499326157553993930893616158804943234752946844012758939645645693889709754161661267204710264976782314735316716870332617460396612239003762565026977654457468461289929530116155338741710214001027516941015524429000300820738168286054717782109551088771509560060802420942189265772590106975451785133268192555047605986489926501149701483600934305949456506136388632862813325767577614933325474621360094252724793634873779365778121817327178462643662527997666929762288730532835841063553882994879781256138149196220352330628375970948699142014203245704843625449740408620516872396549264379106033292370608945423149341498104384723798777757515352095505191720721088524647154630442480332342004793493319208472046764309205104774332902852118346662942730531257172806968269190292886591725012760141210013260300357680123791666139423184978082084694845503246418051644628165826327276793036953803555824302511377554736574494566364599494048829949210393666027458640165810213481066811417428156433288990703143470651910085023580245528072214830237584369010889052825130221208528275296115858527303416757209740398987818113737064875489488448052869299988832578258042705419599342414654720822308048155819499340570573931256964613780938056793210255264844093116459436188229160952872503223316513535560056492986484166647145370856732127983252686030325560008896450439109913639861729012571269870174072953466227733569957167368631984633304692070990818104396660707344632473583178593011144179370738775334704044836612300837723685995770335898536054292183949618974669940579225420387919232566516907658261064775949293734272535373666251077645091232280724766809559488937514028673924671132250038448043330714931481126949628091724574479323619713967262323568818073323697254030644978981531741506861760919931070405699177938910249365799216897212158247829691990267800970310195227299872076913442095194241629493197121826710114267599872963244869811228407155828876890818426433038177754289357979271876907508794120543588246255503614199309945530136522909260855445569004662998646075846989254839224639483903712937428673688678698367765093187266926939583092677355577193130397931774297273596142602889036158314911818568034007381637971756366743275769270707778735703507722948084145876773479675211541290618948325206190687069747953976949674028015293719965259927983953875565058174439404049620215814008227564638925310898243113629712788900310996880401700000272305821870344165430383973108348129707714500755059060944150555063600159918632478649050398549439154947967956949080264781677973867257708242538729644713611552145274491359641644712022644494421633088204778795233674339723787835085380311150757468736466380034441661883427276605084380754898006714120829152617668277574448231922388704031091643127705280609306126823863322571163689673613572789451091297819846214164931027616672012211538730159921149683537948646051841260909512076939009950985309371884137485551800461465655779112194332746497622741400983914551391592342342662136045297516834306674912651343641008099796280104397777792048895052197911723152411196613274783958658298821460680149297592684615760455946616718843285355837739345148458362111597399598742038728791896627421994494322325028007211336074706507346090788581967629113297981747879853381827020241326913351791367284236759591711109182311160492023946488204578460575151665255471626854490803667875267902011576255657397904870040615815674897324060713110936283261170185848777214223519061486174597837834304552428413975769550726083417696837029031436076687247974384506346221585257802021727898744445702480532503594145528093544175083685619576038345509334772096224767028386706570114948577389589557256156397279694033466390489300308332279009153384130969210893053888346171028501753595002470125564313445387436987751992616617293174621918592582464408867332693904041374314373359792997733257691227185446937689385087453205640207034117743951889180896594471137327673862656124195022531054744508824309637737697966904992622043296242738620238012783064913548794523423905585541116440307944195795295109841422163458466276048369350081315946648905879912521234640400381038696176778182399477452338931375705561637975025939232869446203288575540088974301034111846457245929167054971730194482506283893350124990799260086231791947477149769465523688212147434958084528445950146600509997186415479473648795505148486971934525264891064348172183932281837545187823181501292121700973722846762575847747893982866421815066561615960142833930823230058488602792111271998033676754296860198882680946610141547394007563659932925760598235515001646241202883624651708301238776347769206480907803413712992435355955153983695494575578417379349520847149301032690552429462921427396605417180298282756732674970927628315737800871993668484260686081708628543326429090901708327331148118192081054297233240595491063807863078527681644650009049657864068748194639224357034114533071456296069418464611589619754555570267264612352369586724267759159508327710102763246784343556367940318263707694514562183410610900396469134880680852847675510823342003269358875751046010704496052884577922225682883695121954103937548270187734877097417958739226828452223935501499475737318960065984448547838839463668362284923216691018039892258803406755424358481463143912259396270420582929575810487338098728914781766278947510779965532513903996067269158893773243797249396314482084591443191178845450606922320225915755591501556175157227749907292722208077330907735882910066518485862464187290624120914304322382012410806845633430107714159325810428638427443403043723200822655264485462383138873343428167380560606396714361275821391338852710323676324520599000113268637327557338880181094294552363249776950107032967317035697961805657259106862156265008847056019988349060459980553277011399454530126348566564161821319836873100800217166702887943123934923558467092400328614809115231741445609534482432590813294687841232349416449045793732125394442105930444318492725903985878556142141362536542396145154389304826289255862856429682343296237582231220611808881008141014332962018496622264114543264417548896716796483563009395580872075608647047700593951024688615873695488159063937127849898021091564009567531677531984659041421433172152397782415624022796283183331253564917999109675941045376472799609361268436145780783036152297177643190264031886504438927568857375023060661629620831178896214810789546057764246359417460181099648619266239805276864118774732430478500768386845652181059754659315921976768304577577612894146259652846663681688150221899909090292668109614303479332601656070524400712105038041738140985688494407320870070073835364013157995774333004317107743587028704123693357187882312053825687785349461068244513478128196687030000553601903635515225472153100831266196607659955841538293568724832177178337569632070803250851546392536886592686246921788423613833180993564894606823478860844334652355285502712679891986116141405988327595465922750575602084951979384974815792971120983037338822168141922118342335087495358953273355785578078909651647704167147116946859038563475756076743341862028380270396916461234868765011559000075257360151251125215715911780334372482468975397839035399408428429578262868272327917207593941768588829050417053673790457126173461255622505441315990463939818226348205108234729882102535314149842809302339144614874427668230803297021811060758087929494641853797905857144775054541565092874030559089148286786543114079422212696991297958860532119220895335907789568474012231147277432794838142138051526282364716512816638501880810611435775559116390482422485459484829972340680396878040781531564257871625114768927959416258270547089139428598150027196818263629019242985251982984458407042237525451430645380328392191845337938614933871936601751565547968610947557796439830659972430495188458257443488208766337637474613453663483754799135169719737448890697141987701338318544461125868642147210582484108596549120573996575795930296679956449899006290282828104818322839925883470523296376888497152485139882657134741811151321585105953648117033841308980204601902193782833795226787851722292206920461144933260543200745498527081960130141764319145023193314253655145864768617160661359570922469024384363279675717955552548475259472285949075339582994204831804143426257779381457998288532683739225484863161245490880405482541283950659978710624256229997586155985321170829809777098264693446113993229538167401199377670813719406605779843176975189515148922078413776144855715150462081254255084461324065418170215867331748499092230227918693307276912259261954284260508465612191655289123606000168298112189237487628759234023312856070274738192819761054415825950166504375363395748050745491795889360429986353208379472403021052028708839743478405160804655284769246438923461641281478577843848061926327549336334100765621194677472651912926155999289555085494543834949449469407057893614356990364870455549063483092727872456822018238492378152247408687561702683424312822845268351311031299710635018962245677709840587767144355390043760223752717171589123160961792456478210920751504952182230738232066677635509761022228207681054315451930594354690246164407624396990187088939065753504924609386980376144719630986355538656331165541329826336648645251720218849445291695808313613557754451668642516047594433416843888155113614475853376528275958893043781113741416613872462174309765914527567061187792756965065320589100622977201198713649084439834449240513765474407323846829757023314549364158070936732177538322266885187516590574143201686335169639325801988135436776998579953685259036882708261006114896005130954536654953566186696442255170378841909184717866278238432621247896330793883923702222941890422985598166317567314783276944917285173417460036754683631907309830411283425564240284890182887818936141937005286946947862763668814813457912101045747287831871930814122925182131133526123289616251268582908334966700720723370367120705940665179620382217395232100223448738710431508834866165591352162360692489051037270712729847194821011014969532884233149064499343360300758516810244187658349053832981287031021851062316072896101044316375214186313414820553333391351449094447070889962404863304009180244434152071269209421440133797709744010303838275919830822192749787302905969063146251234167080403470152858173520232284212134532581085610150823657131543028366568738317048238283300949095646030048553469586430974062346889202198672522317181728318371076030994588600388104309366887276470045420512496248950691557178983528279047931182662816075167502713573453075021766337646598639403426926233341771443806755688154540634394209951553263303501980024554568954650418755733357331072439304155096126854361843687350980207598122178571678851549221186206078019806396098621670400390389276467606491995296726860576639580777808280461243998732653689417596457033495571524774293100286140416088651395602748383178906685506131466059102850111360117065367525091530446750764040790132068390803096692410633841462248856552647388721221785291723623490750802192978302096340891935955042115802785649335203100783381576401252313928683127504119229712666571597176218131491595075907439797982289496771741629777788218001908996068406902289219723047099373309538979100420468120065963959913716828223529257082287504774143911614810812782963091249653620285058455188501196593054912006726580286742112742314010257204770625578777743357629643844187750813975670266603633725073249105555896615907069233480545795602851741471120995433987983282597782244656169258493053390899574422642134126816804373016787269608702154737714524947295831162773840762258374449150889715703106604674492814188272936475626088678447120297376423352042136610642301506393765324119636285199873681459808394195506100245489650357376255498528075297426115980546851608073179881698448872969165010848170131146055593795268970872301583014034439672298603150380846370499959113729918265949413209010527624641404463227533999391714437064108391078215977185982441693966287067295943115497953630282793563894395000774738150925588100863787408135139032659673492918854853580791702201773002685393372428268237932446851569088184472644097641056244354554286155520442109097801043099354329223168641479467489946011845114228243711326850129526377843916131365221752909127502662582529272408114862953614928536672158394603753789854689033239500626870269553745490879965046131716322596995753726579756825320035599702882048779268111185264694737110007134231399382682182258725561869682168970239249272392993520805550719827132382084395844486767635668444767576076679120631061599614144518276999067141658037635985626841734489892116932547130453278750760301999480677247839868465856072207696981765994760725288555676851668249531403372884301250942610875897116459325324260627736011043337933712283877958147640608471486258155420784382343824018346129062726263759639837190105503129295549818810730288571359005870017137019585884849078537233850135866960514015613965319923501622923969939479902724563116998199836887174070891894396987869412687195573604493405094778679486209738459792253794137000817584791022668721596226447642351117432627920941438751128668829497870290969767666218623115325281536202651442256032787049046292924649772892230354101267452681994801461942028089232660722918796212899113144675273363248567144497664227856775322572063699032621097383222715971548577309314959607209021860818079219407976577665256189183948705686040259622627001199703510316320615857416371228604309176800245393347239532271578577558815422033923877522702294544744209977555966662225413930904135633129022792440689089383230743858976643347002580415993632836547354410204727113158583060417626424104831965627061982031501013986213471173315409093026877789279896214180126175129217286570976568068892835865994995887097036289132111160818093517111845205498123614607903983448634854095267803693286928380659004319129429112838796420771617726108148637004343573348025650949227942573438209044925435861030365192862462794731289257723255917900736045121527444197976429269269226169408748346476311508935331621450295370535986702231467962953249012332863929562366427326776680570481206911129985454267698938518716903298722076535113702860795958279848148614607130511881610137556708598032118455004675232931880668848671493847117719440285879072953689333907581998734865040825913504650447466452583878255150243830979673327952161056459430924715388689758327245458276187718826166679894339795345749694459597378736418014741273455760576717792791934952537135799773076049564910173000150939025003215429614792000187685069395120302847837718565834925841157917395807290930428651778165892568536107613343007522866829541772724924173497702991818962902539159387085481481229897377577012846399116280538007123163843830603769678446437879226482880000155611943659372533306845058142686467997415018658320117232535281867252576652551657165146390063611998686319810804252585729073672992238691681044443324184512186835145948066886167076019307806578799071757985436969460415219954605774255657874969522623487059411156099751386318291690515058256314297845019984528257377658621912740540068607524470457377398448113999876265242779442597754534900622517582895524029016647508149650073686997273702170500243790604800149227929570257121234546292145519997402855242533260949521708875582410161592675788090374720234252266453388938936949526411464884703518244213205649651751032975890416730044651121776233397764174199764638067250333692411097711918053385223291308152157837806258488515495643457724886828129584773577056107089316057804338805214605631340330105130340745492337893534412491135844050441721704894114689729946060327183138826789400605127524735581153531285299211875779317913904529601942592001942187492988178409297908608224795033802003745817735194639428936734234548946291970217047737330223788539369949758665580189873383943934179881222173481928953397587083994012269711922592821021808662053710680596112136886145415339756491068549032916748941802272675791550718665074824845594517436095104590495964493264024000177335958046329314959542567469537432039516404568853714463732261596580135049125185597369864542084074633012565723545063957600593001213555155645626493852133735364132379867760668240630611060638573961820210144645034634918870842169344863308539558226069988796147372078604171406311859331850704177978075336551158428722534281052876101363016087624284744654790797066639685556649285556324643248909663341009610411635576657026529418279484352900832496734022540098138206484669333700378185816560504067635110623121235564792816348142709926330259819190921851782997873304483050080702218432981715297505090025323323289967107033401222688504905602254999341475556149427184605595724100960314288581994587762179283953801692796370779516642076493832976322027460434098833675126540793002108813526429421748324392513931214633016691360638224662541267460723563950489063744271953844265291577874064898624034577219042845963009898626086773621231250362311346748322893715488419079775385693470276616957396667199044987419938398936228378320980107527026965832973001434242644882160093102539724924660255557885962199058730973155018292813832688671063597995776729374909409192484836041188895200338008440438787091282074156583206500102869373092925390232449650087385146315217910555055045819701564337875346587426170212841789811736422433728885287350307082177317301421336411788750442324389549891761706135276711854114554786239900292221259875973065963262893796747328089346422689401718931752110455242622537078460091863486000509011184342669361688519014614856418549482565091905479520047086929648969579210314107356394684881514975948540149040172621426312565617467301174839284682461303600623695001558460896307445157556601896011758938499738117596491385307198870362162435596518816562006623477055943046998485045634028035201035923304800366189620346348749799076716160051849375000863804166951331162060751738474188170826628758133522810307957650882257780531515052657678053578161434034923075413824828432080626100819288027171389777090371149351666315930096786125012838549894041558879039037730562462654006428014678894132791870051092380272258980653587435218425271426672205300552730690939201531877364686016269754838803579336883474181920132908608847571348707157897569259117350445698164973106923079224241544890976654109356501532188161634975761449673425244360886284473031597402284754111859607600349025768693542202018484935750032011071403428479877114679045183618190920415161101622431659118930966604289617799789071961454564744745027943160046149696393112356134538812034392383048699688079071709810856711035064827582052486295167105841415042821514887589107059048030942628073591826568633476587970243929988910582200723792110811659379759989960664767609550982224471171349723968170086308579665327162006615099162260526965839273701525181815255779015710746522688773818659958182250890185228215772186718534257944366126276119966627799472736154554071851313025838833464713361146052146532580393101164261342496590455976420591784210263511222133540483149740614778994042581646235182632788696876419507769617783459530878579334078589361572030508657295313357054456537092823375342828128167902844132477705660908954209431329336594898759920318585475342414787154393488311804769708451268893712965031727889247245691833603650836877327550026930199969629858697421926134557297800870608547506834016100920459599028918476915042778472175048495365462361703691644544361293475308538671635893861355608755166384037891226556791351235366431493566208028294192696758672311101625675994286865556336373660410608261949881360165046381759233574561295678835522961137638147418489297064500632817034105292670095144456519136914056045675742854012747078729032647146171320345093333919768566970777138290088543620038864312198453719022140642843269056065061952625281439109472015316562551532100230845489909503566912094210537539633361600426581190181225453268135982145272492204673693036413232322567277179364648531912029499491125945652755592391847005754591202055514113980562813094546859387427610941947497571561739496024702303502772192107540016574963328477059037601650498880480969714216300513608296920053498944060546898532030313509506965430483834144254663753971523981520548023014419441994462189322135515047111679662762424455886552861784690456339156548507467451956400241956871619502708119190667107816259817354838573645836123780914973640618579857193138215827986575757372145247092106197365051775038582075106549145168709451134372738848896271887817871137312644574530177304817379262497085820018303430983228839102853191119013800460750244802470430444810233280910525470850919908404945934518995990100947968136845773607137558518174848414964445047191806197321960076219389431003844190781515776145513819690424517672759806339300460060429391502892057570721493906879091944415169659291496342756421893796099693925805917117547531564714198301748599797141576761910809163207379758181524756861436730792930135643761099058476805717500183147435966464459151873366404984025747762547333464791877052421599333494118046010652397934919018596964879527853369105199641050894493223937783084290139296840153213480107159354079742437415090687447679769475484276792043803583253074122035844240933858655327615609037737760213113662776444040263380671262853520879504746841296928196381506537575255593730792457310558150556396636109031834519481822411916143462767517167275899495279657071030584581419362042298598651662682197200771833027321800515027526902514399283815981264713150753382191895646710192774223676260277433059702271236264635204805115604746516994334154733132263413247862663709145219205512971007291271063790693623085912237988779856130937371747369292557965438974723667969065780254496837845996944099305985065785453438347171366604993059401641572948034466105829071694116573940999899720748336861697546262446536733567796654854663497254133877830388294408208887527294603802624095657539311154288842047430803544149997745562174063234974545578984746923850612840732936451429546971953076178612130781871474025750143234969514926615362887039544159055774534653673384045424564794577998672391325181470447530830752760894918603460888826983289211925517762967406829051898196305622660368944740056976335953693095753054711588339695089471160019830462917415121668577929178000335813799324467591111463259905610891413708090861691258379627673925952417451963023283682535137151910764091891306074762725599489976100534835559618185775649793002740059405312998181097644063751808731570323990796741967207075157698759764580509939824571535791661217316368733487901331908098397573660073113268571124124052125510708729002691015739153410339775113419578731837827415390394978560292162085642348490087834592201964105530546179526279439299384724508231280362622284316013917965536485511603212007912492963758029085828227634303447565951080270849555169012814220685269345608225452997602209282439239369579960773127042426600575532715363505023258791579444863391172841791209744415182452476267743180174079026675820837274386171343046149731747709178250007316604540341488732323975072889148838394844936647447084484288616559014586359808678521695483822868559476752721111212098197007832292356305406963498941585762607979503037589521800265770840648140894545082582488813610713151708236266346571169917336037092539861350681072089494941866852909223616206017100828376507759565467943520466850966956008589881950330342587886036352616777904107638171223366108621526222402500935125064729697860621859599084326880787322581487014709273841684149780699674686472953918591097736160909204209731585385963389136538546278711843140335694401176093077832227840499827773243283732973340585378088438173546052986227789528921033486285575692158820432985896097148019292695182625098662331334572724480532514211244831411384122213831155801413622820605644654845981531997396877599697992938760899078453110297233126063569107536605300793680332754767299560108619837248090408808961300682049337590393052070308662493743886351973374563947774342437089545720563271108874261819459320972409372899380166967279663199052007593813099625071667394508617244821013280939794137375357645107711596334919813181481486823857619376637337690189508078447826279396675850087126483790456894070383603503357144254934969937133104432474383900933502717445667207564615287724809868135316447840282634046963865516791230745908743987373815547815816274834803105484293495735021273190877992222583669440076438928340806233478445690157615110367006306855786552190634117757074906034909107982980759568675969424465261517148586469848621714504162999736883892010557632076722245509470695325384367576968524120568700721047357699627469548877992401980206177414025897778561559524394225944898494490487349008692243701453742225904272134460330681343824484786580542948844491004006352289000491691844282625879357843463044980220177306986484273328618406255450727573006941575326049432908857689494154663581251983295577605159000145182087319469683090957740082928824872663794488041372358216472977910275711141439212324899828625077119423200436637095396700027774825139263333817369777895588758243146711928491627448644893501009823885138611289169844175142835978985471363865159612596183442774787827372268001657101479268351893434989036040479828061885380923360262170939092204699753558347331751782854033020866179807603472443628066214037244463898936992798578992770123424628597975645858095625208909283870813132964783956161137203073984589918639546344153749322855566287142209406782304727376642568572445402183089234309459924645413772994794855381944684480687440786625859282741980413117331753643239918955448282955095529992217037682007403802420787547569801523008205275174509457753366366160400840254162122093684136085090047783373345213298459296390357946265672459879299701751208126370550041186982260128642913373503753209247200016650137590129445178341683593180743080911391693535027786306119931337874185520571917858922397368136726600880969251522558009478550220528828510959114963555452926938211591032226696061043611930570778031372417298214230176962465819295012869844079001410494137448057442287815700731728320112240472120959544829960405612569572203902437445224589518786687735225152613704155252699787673627671966094806843151189223426225407785715514124493360515056839933772412630283999247757945826847598443779510821850964538199166565629115537873560961207388447183321078491187951052335257046184738282460645291396476936054887995051483506570842097643679684532284175663908901069669949014645829137424043372515622038132182184882736301570088783166325672468732635612294391395039190196511302554589969799469180250274019590967631878142320639928107384253335070674276027078015116159606859664817318320517275306702259136424658282925086304555585978621617600695884704359227053239099731092756829623446023408473072330410198275820314970285934600333144831066476012050028205611615048401078744179443201884770437983800666779933453605474804078673789755425046511158589190347539209024233127837803206711514394601396831815266059210788521289565904829306407988566310616555704174224220795370268584427793527169103827253944635880690775495146043098178656575685859731609612111794932255795268968731452153218315098623114605752936279295403250919577513403602333874885441811210405412638835675432779952424176110560722834399807677725465455737653665315989325566107502388573763306574608139205307748278733391873662738669855288877532497514652012683900539199821212770825090217726985255032839144966639889023296114804655506475276525167385701597979992120869562066535644058576763300005247832022852138508191218427596081033067523860297116933054860450207524659722088166470725172756129874578094657587253336231061708219609742646771991976331251056573080326546684778410711500460996999722873376554306560794047495421936895129349994475132322214840322428811867844166943428587990089573172045224859915301290748487146420106495200763003761172392387999116766170201621713451827476752536749358845374902402947192516807471805679971928598985594596649602667689899217454360812404855659481482136236181363277021316535724185225920182419837564593865039667295082343748535966924429015765475761576111846141529922373166804503972334013079964773615094602112715206087876028720858180667325042523521227094565111891187904073117647777529914394357710490695254291744731566779061356252163841828116812636858884994321752310097580640543695379643813209880327311644441846274057505165455288420550044642401527784034320430045705410346505334115606220503144751822265767564436384277104901964880583920768599585000801794906479838941705791805317384027997912047443928642138897363199897478361577774618913939856500423300386145311045781019590777661086777871358306969711611463237548483964869621266390975125020555910949696376351549453090139056294736264829280862780300892599466620557799486840916623960250149334116375990597792781163386305204458750922628944660978702640959863470531401279506035707354076092899212963990325684915315158737329140996235742954764558127125770335030172288271077005112322826249802634027996898165979419983954318973305411858826161042690333448043963571818726851037346907086546000391351122205462011537926608817711122070720611293016676124826339812517163754220341961555940659257468143294352438971091764698289950386502846569182736726693809325903998252015662195166564449933944332708780304008613919260654890339845434924818801790394904320247975297103176125328170684359894621471399864268671869554911482098578445764770671278471441889055225119281612425496416146252571725148019330825955068577622295180548526395913864185792593246678602029850003331509665097741091720916233440622640340366808611636196059486352347582315033207063541158355560024239057279975939462352740144628737940827970385266882976578264256900904836780702672101051469693089434419956530207525550447594231582839650520502751846879075544671027957126748985396595141676338524538742215156185063214725820090590148479891700745708234340114176964823936137628118608226913543814732116191333039618180407912738480404599227477581788343097971302115234323599143117140891904231724287565861837819203125152402501761319269983541486389327256923388007482611261094657936639115856877698297578323609009766833453077051931497348520329330258983705788580548670705510931227600612975126426036949188685008422342587800141200415534628019758545105226574266750347500413257780975233835540598026121142747065492968302189795589172781209733296340201626605017832772022316057375913700197133417820923391742618299989995967418577077332563745344640906978132538477577722740473676348573940321590753519092214011738160501106291419450875523678444883743751907764122344516062200232850501606132859405842266109659661720569905878198082335065516776639152392110862846093694850449850048799816065134119947415762893999163128861623048932432888402131420751459176622490373177002471556503352880975803222947490622210074269986454134689078390969883422116926643078146905868968096235494188488660201923830537557763646204221893645339978426816849901897477600776292456605487821589410680841064814035561790310179632107197758106005843523189689125564478592533608393323303709188603240083894003749393476938435775769504748394033004989979867609261466074981116573028251360866139633582924990708396860270018647581739879527525241597457970498042965985938508365009832783634148039433762564025422047762048675414213553028664879652123572634463242297178789331252036304398988335619335176372900220770446585724813351705033191056279181805449840062344976523736809846423506366590450288627289546999010925194884538324657701832871027877374352671806351831165325769279435534369237027881973124016190246490036841936394966900226065088993626406550652884672207863797017893355974739166546540036861520652015469154006163899484286098895064245698413719833135476177137842598506841499719103609632853321062219324743292704711549409765328189454294515417715162981568057323085113616487835676358215118532287690425761646727063388537649619352547511237573655317257506823503125417418516395090159954609986084716876173903573591515967695870327322290668995561076116580291973791853493750717566579365792582552124497617994571307759974887106003273205212585582005814998630825010990266460647761238194446345424006972303527253686879399819816905582504886962529944087734922805510319580465703451571982311786331857785852774902934724849918517481876034886322962294585079807691327821713842565261011768700079288904317731178988143140926250611585096214117747054651894475979096296727865034390217579888522078638921369219034107603914079440667395077607945180352099445368354079667789071826425516917678737890707531061237451570566517387552363187596003137716539781196892760832302457839047536614006239569417477821095548157074557051799695824354647564020898321179490599852220121107075950200244114715897361995530524175823994246130846186765634625891214579949519215628620861378040944948378122605360547022342830832219335697657007245919318678212625688965164905408109803891855793024935166936726603187121843648535868335319052092661942711345097443676384919733991899868397978955193383318288348128623895823405279543532341465724153607036743688920350462125236118274241058715895352509734011875959273137934243248565702267369798217875172675086968061182066131697549295324838249634655595543833258507310404675942671254332282901230047790712278631284793226084770374140951883352212805109440792239484695372757767135226691706719396303137619174402275909187224492824387994178847885182172222154372884511561799594859292036803461426440254364127653983658721831360673061775974140735719377876528125465104036261171649330759862617024905590083350804802594507376587660358411020786097128079807291412297908844739914517769214054829566781621572837963835398280946349207389802055786188283650380901511827483593660138671673397649423788113280221545198641152269650665694943660630692629460627866505377631104657367625278930434896748120606357533990475681175095251040229997105643580737217242219075528755453096130013149234095618181157580805805731228585783795233773463083809592316933455913466665083377399240531588010649089479124652339282497381460972418442375505213165747879442723544374948139182519277650759606022214926652460810349504625606911547055646419147402202049726219000951621091850776140659492610305447488150481022216747237432380513827948277050875797237977256405260978510214657161425327807945653757256725390033617219150349653240047799170055461199769099226710268361584859068727999458986802483781656196616130906341400254759842087576616561130583406052285730532880047612392041842360401479493350240473992424077390149026365965747912690032987217935112559394099312793371500235242726559539788011687686225807727887720297327681310879018006021865834260982119312904174307229576119906422512156723075016761062714656702663911365796321478414585433956353397561538191368564958221225538246384530962000664545743727389841743173192914314748520132083586045303266382369117847727683075536788758181145743872977925516592807433365091447330734854650115372022691847517130188562615425793765082739712300828495982186031906190481372598008429033072633418386757000753305190902419300490034286974421955186818549602302898679786087876072256739796693262578349483516409731533092876418358927534615012712865659103065990965602190133718052326898597107145294366685866613499084250482121624600127445690778685493639298535286971596317273186243518886246046031967538014644179480913726217140523639376563663992319762647100070612072022156770768860397789956318123070326930679798333361014157237218132623728763894082697624458150672603736323730318991684952378752621232138195265759355385605350028817528329036744921426244892406573131497237832004623435650890375604433866958861966331992338195007300467072497936916331490562310864778843172732916647459890823680992264423357967427673154616889943748534539274081292401756992892290389378183496311652513451038712727388592864639730202752169924245991879425034292108000591533905879964640018849596529576716652614392920871706877732320899590151436763190623576767154757802747375330444548068966614104165662934588002224383599952600581896759485452449340921958577994277104883832294416804650278673518735886218695275567246345296343498827674923074122357345971778477842921184611688944741646294593461559676215450121657298756869891985792566042424164658713815552217090324646620998670139815758144835465405878339904577897504841621985859960480769292038337777685435930241912111487048273322332109132362572026073799835736812829697078221288325150390055431739982984035877140490486278726110191759243506231020972469880215856185636070799295844694721207401671374173597120360160614046923705369767883471228663800157629729726609753518682342951138605093346310216624528407409553897782302567951922471370718749252167724780486685729612442514051455997271288991011305271764909637775530367906298141220312200848960226017233552389264571434128867653316453829111697903814079244885721416342604083400689879974976882394663878067982397042187525208202056542160289372543055888244146688425438545755632097954746712188514992906745220017937208490314831757177977938561750070258085462869918404510015820440736692636924522562052538260575238199870816633886686711866316502877678174571295652370466981926406022043608986717842490930509864931919228039430384720319779462191786241276804369159629923650950350118897316739872304125207486039915607106045291648824179843356444126826948908233255942109954029505612300839460497668647271444744408061285135996146660729198868606321760517729139907352043811128371296531026650900406181044357822805943898503142937522016055399827915359578726958359605419770737284978636455447553985523583164070612989284518455979221304086863937137267069069398671893148891594039988806335483746568113790409640318595060576423940206442071067826278793797093285921803903858944462347818990740477268438840503288378496699584053226548645254478328157775428990511418518796094069291317646799043886306794333051195228081011628232764828206940134820339142112510072074259363315251488844427768315077514866981759052227018524891949433105901220157405019096391612484802788668722352497491159806638863786750185848200868994674268996116253998150155006885028332606505203495436234571761614184628984916655538636663946903920780590060650113440440067814492568382290317278249368396282026585483158857313222069719353454770330287800209378934617392037698553124139446059683008765257877865467086914102005048958949544026229176662455295764953965419388603241051977606121200525098019853387288106087945664053312885585033101271058707697323769481009269213206151625208925719442587404901604043310146373747018598407844025058294695299878623754236683182592142860999777843602858825351178466947570108381605926189803234553761157549292080277956349808890991113540224688665161419599539665998336905791069990272817468135598072690446425413606451705730904440675159566839011977625654711021894184806848710233979235233594573341751984243484855985632600228482130558691106630109872625910674090442320869458507104314932039375613231813425967841498223229365730301096933910716062519823280267023403830480250691723060496425020029692381777064234724507101247652182665996458077871039967459707661286926900433057169009216882040682694215851550519438087870855348567049555413246605092890410464716301002184018004685846102116215970822627394579506618166132883980294708650973211897910249343677235327200757604695354735443581257997974483148421548169950893851045709021958428891500402211280282256248201702054522413346243487133081780138869045041920910478316926308083354684739176033054689509732636754584178202457113507612023283721607027595277995136923896388265786292960637796987653131876798460294269153053376240079105553396378634696138705666490979470297945515365443627848932003018282864089843095634642590998176086258422044632293923866775558130321866285544919353109330194052200981963473219780313179858315479258667194332662282151369659889593501392402580741419936925088905894494390927839758263745297659678850683172321380335537835258814299621335341407655911290566759576582517483540689586485031881774757722332544311377299371677705874604927235345253979421107630400928103661321386576479662456657716908711178812595004455987007393815798240041926530849985938741063744541495537541602800963195095748052027080772708668940116646110017442044348429070050652796372380105469067966253382896189884155173655944448837866314709101762297500537178498799228564861742441082094443045413116088497484660459967607538088187519232201269723000297537759333178672062072562017485074227163156695084010961502994752478852089682983262667839152802611032144444504542551607649351251426465317931052770194177146646581679585705000620176578209543790745648530291601041632341639117145905318160408000809077650198385881344332368570813865609716755143128182242641382925094606319380621198477946081764154687111975494726625549666051670414039987113139152334680096003335677880009432746710743693867545558283140353295242437945472181455043262855590696139564573143081304546853828690380448196183053820820701113523831814989620788530949663982631485296491595062615736633249708891380773644180743512797831280671450089032831481270124103582972642180364390982342693070617574786380327693538985641539642552890712562113934487888761107025453902063046655953881551622632312216180939586503721004944719650066388827446432502442100061881771090020599825973834262537844713075734610069913882894205449345036841326849654670507113681295840692908594032287860860142478142938230902759666203094977725147938477688602931268998707175955339892810765035847133144738590972502451047913958665026242023162466572867325879323458761985301659975513112474399135265324657207889645118042054034012911991370867322878828129026528422763364472336962359279969736939933468252315952405358202855358211597278107471162721412021765869484803464324862208344660524765820720072049742654675649673756440496250499300944555652794933439447222789511124148203993169496651925684085032401583918709165510640290667103255134975282599531473479273749900485487891665271153584577362854765327457620430889281198344784166800504475951930250601282394699493999673863788734125149894980508490921686698597114501029627424929867280821319184464708703560646296354074514412739400973274143291639960226554339468605542057656370161814291210965167076358980389881711562901689339251497971826582521598402353020152330858769014768325232196149203880999331233497057830974639248488298862175865868509180194283993522063676323299240129644022145604378353430067495333920681034920430575031530077504120466188005239022659201343395723527064856466064272739370055817234869201189052672045627948321184284414003312245958689488159584996972746143850592250118289077684170586654665919359831842512382872367111099682307529708314688993899377862529163956178127767278620248392828172673069289052659538953939072004932504477763951822788630008250844414187977479499839799241219821371286639051096008374328885048544294534215044296390614091059777760068086942397583086669974405222846081102300352599279417394142485417008512128361750747808351860064567299868432903061424885756692208664007751839562348221023186429919588492102728020263265768019102527613740752194107187929485486454902782605971480541952605476459279004841605791341315610154896844525221341178276701652794411576287403353163601831689484628054170398435069894799127264971793675519293785556880173181042681161895490157197343064800742767033954197788475594856589820492580993922896067442061324573488081785523455415961032845134624439349817879133196277085515453329778159967008846332149036748772846773217209610010573840602048380504239833887363136553557220501884240833916864322648388451267731466479563764222348537556762037945123910405056545235434259925231596779719751653937669038407955127760293182157229838255344961965573740678866387416151298436004004438055105968385671775519152435922475141445918201701934760968203696645306412336819261009177245515199022027808028064281584108014322848572505053994393205342670552930836690278238742530781623459503227090814233073440839835950859603595631122580862140429827001981177094268666953616176599788503941407552831341997276501887939627537396387264834441108809736770854998392830114794430073505999757693419258117239844088821695839683508316544742459446575631803540699835820763117266890600524480402157021280611453484529222949378453971241142455396634751936070872411691990149426272662099034773988277293727135261638343869284324775440245576608624839713548858616070878968758569530891074281174643647326196819733872708277912116421882842630385105006377268786560408712247296595571154820138847196597577578607346823801918848810117583562924647245308614878476529357541776910837439759969405040691569163816805680942921365697515807207901767375126235547057553746031481367387037556262013833381010157642494764868913930444736747069163771953516838021249792824622483778466280840320157730310195067637780853651600539566610266402440472499741092614793286784453465491632879907999552772822771324286159202674222829579264999388387705546709537455372613816932312672495425604964735643268122363583657015127010049941427832668297220620998751492300252630139373635437726401314118274318153760082437598493564574172018165605288333352707646981011497126326827151483956677269312914286290678449067572682264992854052146423347294689764334941636083170035997277991666719476810383267182738408392663720231660781044305457391985999173722646030897785079738440890466975450045585748559113025262823589458530679127420800635621518422633949574907642410861493213554958095953020760128007903536492787156100541312982759481404468563492128282141391054636160446946150083141999433763013194670794110486402893010562102785622760732586210750040184716310649996013320153244942107800509325658607300378230269975704728617594470584949101079088811569045460333106729218216772743466757373350834058228495005487438994987165811183065135103270972853215212808100630322732262789410269450979660651990940390752274907486562497513907625168271076349594455687211337524729986868084698542294982334615197697022332563704665160888036677880191767397254598467242484431024528047444868241678324587817269891622591624099765791209672308676669643396573852615668424152284455543109890514457374580167122643972897089471168063240955128930176057425074584180442549187182826851202493583475421707551662091859065092046224514245174444978068283219401642681864640098601127829489195554690544666511073254468194054476012726716614513483590123478259961578476815280992891632669653637752027627091036844193001311570175747529992429547460355404581569321083387625399199409684392182507460718375784980173645697236609553507654407479125916778395336574744036495433049788899191312004586098584227252859620174773465003651871763356698199463908330659746971060912082529222050346118680666972577839697491013304127095380273044377956432153767304416261557821068683913338303907427427992614929992580649549701806836605173984521468668210532726346394284803640489891505936833419311736854740163242420618023339219153533460307448473785024535228312731310029708662628634701551010361883849704948419707295642309342598034072885548152052123946030198613275357344760425948854100205163237293069434447399724338053884843919256757689984808013653893442599274423617169463824647162178017102329145416095099192668024201845876342501558025588732341827539280099457805970735539222561081165197341204147713063617099843380049804316662511311647817520110660559869311697292486118597054066861862573439209877316427397688665385024462366161671544836212965079619734194950759336083079052217780685239550724635467213948783697916632616447225186586779151405416795026302488731738178045462786803353190730679022165003417885564943154240788196440969137668825429906900497274655303754097730243583016214779542389877444254417402010933822725098107110279696680174482767258535071987915526171370488302621093539987836210712585516453106947996997840228442200996733019771265366436689322229014157295034363183186312386627332885850135308356610055288830215770400931911582588779126461207985424936486446078921612311323334769081405497501219923148557823434783231107510395084091577189526875446573509238895608111935205071101015275094767771346428750477098841746310815793091028812401867750659873352601794655305839252989080320752481964424934804452826089498695240661832195792699486121283003392495015409855540005314130225876497030058134313332754118573771336776810987002906967266629340258518523248797653531634752516231030813635352560071264988824794406770293630624552532543316354754815238478994390985262343642417811627340155522441818522197396894314534966088580427817653529215098286485130331172763295246323335009177956590142771316588590566446306385682572907913806896343405645934175665839866347083503704206970458941540917641139558053405933372638353928198926417350741407577288609201971122214888733400278524235276481002389362961993378811688055713169934143193572365793321017409247504943279591275752852214587376950516237811390202657458311717577875562237895767355035915238299777456745603311861314037697911376985241942393855765631519919449055239223787136653729111853459611578480868452675363285122849135041780210839541235691257755457701230449233886596927772363606821142710499356425068212785253297983511849093500162892128451866237122959400952329676899858310228987964373579210241546385977765943086700130957857987613711600765660417012050855678643875493451160444628500933902936822255374351302276056833414111085147534082650644401417783364004404164096127825095292475340498813879254901093569842676102560140852528000691625364388952533648397997637237129489533025715991069117924828252133084111156643883009312278811012243094309137877205617256214508101199302997793585353986749308216580531651842679266879100993561764782059126868771763753214154607739203668368211316065327203729084496694133961366054039568491864620932809307424701307375189898071859218562907064161897030053139201985725210928408729731471877495586442501287339048509827868482914601204457667921734334727503944411916043206840079297866828066074964894257826096600641130102705290284217734594689730844062854609551741082848415865610577701838082657419635347566801817274267359613155219630077048886082584149504786896212697998967252637095593129021266460601429611211457915009917826076350458046124092630927503363879153589490175380537363596086564931927960963723380232417401815758782665286784297245051098674654892615638803387958814477656161408721405800456881215250547156081023247735691094077093658914888833068241166688562038476933752150399043372903354555614535038465049509741281192986253767143464377189215453658582435229786635370810086519324120743474525687746764566461905545545885070977500302232661070904308092053890986193575007973215745376118876462530052805563892404062535113312334177100724055985377908587722246699597120600779516352826729973768817370992398975220535737731684461923156223727142528866158360027137918582397225590730615576337544670413427554041733047200881397891496860198666512282365930768843224711376503691995434856222237882917795854876611938911875063332772498260162814260264262167778793106481833807875087646800931730735614811430550178122123429919563403061100894098329632070236813400443145580325255293106626427087168714021724985481484971672675112177558398475297351766357852382491424216332112582250517471235703735673930609735799429844973787656182147715908431903165994528559652761944469842567831058251165731273887340023787805422961804846328016208461148874159744404934212960131511157031093097811766032835612100012983053676226932483899959487592567051497219657241812003260494352732884852445431726709477921805721782155961421834294548367751230531667074618018670982687643575595886592252299301589307891725118732254130017727247861017052214665328922836291825266670178123609604083341112123109633120026393573216296923480299564033505473894565026050066646238525908848226774568672046693294540299757195475323364907881851083443801306758830163242070584002567809139532033215968488481729606130388921249610307458874090914900093954261580839203524300284276524167495448993598516209651126195945485940755569863562095892866119526216484158668641038759726800000697684634376497822105940183912274966018074377109162788929743413360130307333772713760000456587103822449723411732005847010219231580914252362703527769251934338024648106949053333790485519904680902005402516258891017296566017802480862579471445272295601714617051585310569983299408774031599040350031232455824101092084600889356824376649120257233320989562366665291940958423959833132433731857575153874568348801833870560031668185037897331847146554419951992450576760745791529234079063113420942816373495658586208137496954959088125975226398126515007697047331510982094790639835673644626567616660718777607216992069887677107358220613932439174822953731191521317020962195342468038631472038526122235847239609486935141291679198379856626370580760568427332122070772386036201581236286202372598686452073450480033117267862677073796547019056064292349219255191125498189730092561141475140568551250389774688116867081065270949274149444335635355029948000576541090947536260524097494837038182106353926437478627341058976306916416686323803094861613904435606046242140062609444994438818353220806447558371017640315285917542271074175291561893962816455758002577491755433047646510187291463848833495173696594040191557855505194726452860993415433123095154242156230989606837350947826618166206437148440154587818681534046955558863870582126034496283947501541572719263582804072593729986110059846920865435504194956925797119920502863121447601541284038023405186953546312301683905454900163740043897426057202451459795090678415343148591058464611441191957353246531460744611153193268005555086390573581733878583420470410408345320687088017765267017401477268719500919855890597706347120144661054227101113993959787704096095687505373176294140588052605715006647518032427071704516048021993990566024819623343177025425868171754215965175261439613432472392935820123350770980401159331386110507383934422020763724049214261276126366264498478192026447978378477343752180246604649989345926168506642239854338259148801540386135578990387023029021999371866108187048538770459051976791412031905197440219973428403354986971978684908400152752619069359621832704691406016034218785567616311104390662192494102805302238251804981387090598605085133526661543406174149474445726635082895851524988414067957360869246420288526595953350273154629597082542947737617494212656271832675920145320721605112956353185507849861226014884504929504493330087103544388316082735506608633264003986185272200716456068974772438355921903220440188996811151027205113374531486735874717556971784853942429605446825028816486454487005150702202589361678431765424734586868625279776964990475538931883716766172296191366198042675833231337970648330796419132692050875270945662952648718716216534306543782371311090297186858835535684182490952167578285693617964347831393189609256333769228619600066335519428705950980710452420067560458055737360326765332235759770150336828336018756434234323325741630796336815856234588889673630531333090556756686689793034265070892644032055207965006091007488527771196913483109268463428768431843094598657500843816928739219095252611581252538094812424247919433550713228009935552554102853707029884598351805291159666562661236280737708442036651454470301129832779095418638359078147185232402662825995155851421260676638934566612098322223708251352461588967994989624889440700877227574870141095134195176702804812274997494228043114558122309099268818845005716984858496088952715037138423313625606427663370572318396832865444586578976563822595824657653613176500787452593896430825572412606068378153759640884803106813171845460695889039551418340851786623816709959658511250399469868991608034354091268919871343657215871273290437093100727046714146174092827546657124549425293115566602917457415310492356975334273524463702989241420049025347552116177437660151303462546498380657370678581015724857953807039281989850047294384805614042258638004768749355459982982910307560069144734073658167319782464881724884070903776604889135612434970183734722853185211511507072853301705368188177167048398542752844958240713406744230459117262087960376932335209428343783233612155655166462749799843179893045929269882562967234169642826017403329880478871584741469339044720911783882801489409371577277944626246116605969174976293730550156897541537398434630710900426373019762533697515665200421732448902957719111068913735261114408087301254733282166374229176817267675837179082046472855851215822259994124363541723151454250709268711293919408811268143604885961897313341706617364178176899236488791548539182428070032029865402096443532212041280836903006566050126745464285631950295323367114978165443976981048420042145187131339373240219682759342700772225112306063589188618945086883355133464780211218545511984456698932340076749269509503095270932359784621796231544294546503233892854733606746315126896290881615590483807369177542800789864105860689118628203713051612921678021017153120740104616051719319192543639344029434308436534906584991746413559839373537912557803013403897500937746173618059441336232577118112147118155232781028170428758631764087628316442614903611833882675328077983291046366500440592042032161056672022263851615720607389017592538815389741599892528201886691688101003058644154430108403794092863594645335540127342994898594249776042327679048229629897224323153094108723132042031470963056378891354049506531647627055845840619402213914601072238625171186857913512467855725071418981607630592035527705177266313146622749051207104413876988301580508552808358135314746545128441249034018992168076909224789804097381177156432654712760491018415358006359441064830130527146066449070236030908823884160531040050530122992634200384239925538054058241729588391365137507305622388632654926709823563595605243219204247876824698966612155085257796241833519108103073085226181047533374181024454718518880410776201211189746153506255258359023976550212001404811824994254244882951958861957146842141410941870948606185443867249277036489093934193220405546074295846747643983857406256329142841072249178119389466945971522421338046912837100635356179884830220052251744053595545010607848899781422886059763286931979959498406017380416457975674972113695421510676670624946456950405142012156938824946639710202683500958933667846129202320668607926900109675305704453516290845465673654858697560264068411481801530655746359514618150146337850791549717599637979835628411236551587374486999826710236956461546493343730997943203869608300858403564389133103768196419044020046476049145000913157153862202249122610173331282307569376344489547482977004032624940428542696001095966351013188760279301771462687504149379666078180412133841690987412696413687520919833060597315940642349885998947961925019619283548391508374579954541307575249981380526522903161019414061924335571565904830936443922013319756701681948865811512969642254697982608464611490999349167490604765850289966107427103605202087839832872397963387126802761713419959213163453117168428370804333202729673353259084885037341459188433391368480388629271242117119621122349599422993285461009984663638824221523411900389779435122095999089285053051665239785222324221826461542255584795941553658925997229833375817633941963949799899355622908877416799694751996027257599411378997816607998055069735777601969333952622242121124452595138616030037445641150267689410079123519934421153108239193539299580380649163482604418582893095602605986284737077973199939042245038052746817067015557386261861346259180593207239589329603223611276386962081629366039748757326924675152004756466049479262128376544695066567620678260976068281717625192884667531234680896767494732873457398783322534850249707432665688125520805017798850291009429462262988515368463929898258267465732546685998795296175523828034406172293264053882457302677017917134607346291935506032821475228443902110009453471777915883923837068704167296787903811753419061732820150000880870593443734159523112259034090151450058019983280626072207625635523362580728699994039486972182601033666441941531064472233229456971201227132233270968347004091120819105208803415767513656440014741479112889125873185945960891468761714138234277702408256753783818974632523705672721159139049050537455917644040302979713439689153595550304266219651815813437158997478728391960318788340742375853446558023868917136689357574814327781581773027654696704387323939645974361685397215360593316517807416229753800943251315606742203789494126944890098358485886538636994925184320446551458863727511803332470719411138443434999001341472403183893830381576799174440065227937140536873301917513405602065864319912704845512507078288669128031503666454358262196397426065683921210764688832412715094005434576345443704537496195879751000270105276470097056238249786810240420803328205588328860636797357843586024098140492525143457229073192533866526762944352571194374224325889982725910180024687175972011334861090805935842597777565912856694637089748476551076677571020649602827178043647683010658772873443555162824837699446795788926273824776546714435343445219471513544518137025184913561299500881439947517180176008977638882725457966072139307860348633387574292280807800465516904504355147207503209825003602344874316246604100602553268017878035714048323970538832398296491469684382636960382858612882314705234502240888387752493660042213758721836702443351155873620741586383814061251259303894016716930373278008975810366168476392265705202875565044526901556202014745210289097426256791418115858909329149238098983347402331870629260898455739864553440400002487636309082685416433158305171899983302420973955691819683778139699795385700827580819378092700589283165316938551550750040425412521309372181293408976046358039883969020149115824256429036125058375736772999023155746666962727707299917155026761722534125381890547962727905441282011307934586917960865499104889817093327839535298110341513472445425474078193256127204653540003187297919376458504608764183686942668798692900388872854033954467553354543515281678333072451026525182897315723208501835714640406061489022888749869896479530925894886278450997439009560365750422334385384318624396881776836029625330113433967252411004418781625332697258702268588283979594157716213345736882737229902591806629039828051096625687736572950551312109858120558105456086909740093728298749541518588123825068182233227712188785008506646009417579946111727011075421984374425626910059519941667807043329639983492980388719319234497995292333969471837224250885558516027997982184418609574011340450638260535814021878156569764048835784994629431128998460983529037747695652086461028067222366707775861587051432056250107750125817791980639515284478753522708773918169621908982601461548947295974678043162236801665983158867489937257098619338982717807536112775906341189134845789665823530645668076969263129578372714699851452969589195865150490418902292927037536033289003362605868583621448706718837893734628433727772319024957003839418548148125839917039426150794760959779632808110557551935240064238210700797612098409872710090817053243817864953665139958843714584765910506864623607841942831495765753287621487610274007983658515749098635293829128774913060590398832225589514931797221800751816002155353252053929931478941183559773947274716753044139857589997707921036099397574084433740340909203752858607489641384001801622912514737869298764289822139693687508404699337353271435866741239155010849994082120729450591049661226711915155210598523766202316211633616146101962246972559967080683412920557299437420194663620835990794503318569494712501302260045033074107391455754359001548720169775478745994313510625543068954163822549609459268093243528469507964666949307494573564788298372733649232658870328541587192037741080834975970391155030535393224830488706921457496029076900453123647098273369357277856521420188086961002708905906240007041690123826787052640113222911109441685459706069871009445683835172379895107161689916029329956968528334626171060392858179671015590524488547646628312736680246429049553124295375495098193027665805626408947649766974429500480033727650162569404765148101555177096803978822913328002557548282797673646505267972924085169448552281320466019950489805713965007000963294411396131782316576135370819994532500636218179182776036530716483914571592446655565585938396121163345830444592475867873815630227429764119592066167162221479925895268785387740691728983427286335096999899950649373277630179075457282191404669598652122416481787645365837111223708260761597740910509986514868082605378903617670158479671065662440599002360954500196838667409434520625536034735273814567797443221718423475742221908482134741863303822622194601618764916049629216063642295305670324489877732343126742313642228459710223491787189533059404222366251592058980512128302353748905716303283023581742742628939993133431223813698122260356426227047262942500675956154838356352057034872666477180343302694152692951109736462314780078793776169994990748770825723833603011921166617529032450688435599200220493292362853532034495976260721003653567705240237053830217505423838892167173393302757183425006120081297977030999266165181738219381302514125392072399643867680101046768420965593287682001206608299607282284188050801441479417723657302944864502980588460523525829260370735340197965145537069281583738326099023801927053965530269328692444091933158142589810356308633820581383988964067187612172389412548707967839555706639224201608152011360960760964580782180726451629502924872455309435063682920699562694587771357682679359328164255091254967482144794786305533214104517790232790285758835130608316681690525843111944081971624727088263982886285340439254623644600570400601720698616932411884001739193781349072872473946800394548891032546899309244251864021301332429002701056621800753191750241253990574609846371112160828718571507815344065781152994221347518077077804152580615098016441148107500603163646241598783459117078531927815653596957394215890059235037787330577168151804091388786744730290731110150726321955656344419089779954679901473271480103605346241892781849419657686752688075125128551816712775652717756779571681614497588574247342423910826651552159771686946085601581707430381099344852008915610503316160327774912234918629832817497734370778864361685131418442854705360456624280274371782885611565745318380616894239234156170959458207856178153559241678077363101155051723880217277714564078229744545886151722222558148406808028566383552364823549591344068591078694661158527221732017577200906920552318879884116780565250595721764263093766930403398473728957287750635759289629995398848055058011919853325216391297698035934684577443684058864319649448339632651544009818951931786058617930237087799088454786624519411852151088292996924903117100314782655178486069880036615195215436973515044496051612479427538824236161332234528273142549217986289117218697917730631174294722125446077113352467582180797020731933332406222758091620005014318766461984169420139883989433516407254490893752122360381944420061597253033031855828264559346162339888760926607698282747899324441418980560945818197306483310014543947265819629394341994625557539033362197824181574031569047192060305978542850522025851853014550862310162613048444756227840827063289900525474887515897487119949395514697175454553303288970236282125939798308821287939836771036440815805446431779121074077098559890698950735652266067813989667591338756741856862617095066141150036841755277839369845605664127045722234444193827615416240899510316389802274186760448645106783633862865809091537546568639541312745732629437270665517777376654932095185745869235877755819231175178611727066100671747656859123419340833532559587881913203681883256657792788030748979168111701506554520249180093689326045439917284299781856134942648010432368966440977193802855519149080897666515033676790951779845309364351762405339062252381195313708604714761666303185000561844573960657286836773438178528104146187572461222598597078615788168692558269574808821805130666533097190790365737513020042499518196040326754221597515153911602989361096969023843312427180020602085475552663545577619542792644980996903137360491327089837520694920959261983886032547633896604617424814995002467478382791435813115815670196151452171613419367745564024106269438527786952206642882777509098943762952916991000985512212834341973380275695199448212718738009275471106428516288671149431086382474804762790345505206994040433602503761795845066081513544127014806113039798429962262163911477123069326555271940982286894870371294077928159357521622279643788435347641942747405036697114917237684009640608218542686901538677999941654804920899154843009875819283714276464100968937560135396351088718129598579181805115905711272371718785730752471475589023450074383829974265775714210302393803772836864510477485380726711059455271459762967063833837739744439165549825352467271256244228937933196897098561460302222680877315427266163568044230892038177591038660674715651566408403824118044717686474648469496400841701355517373855227518367585471448955146139617648285161936538539402530285000003133099695683038329131957273949621943316455357352623983783833036146590198467126436554838787901517755953749165437271021808875888325194510196639855149249599596143696191963265118657471963745768539977848198896040885969930568025359447857485192372677286430331899443998106275522019319590934251689898726294617140084835666076883578821610813371679702374179869220753021212247876726842594568904306473546839410427302200663249829012112627818514398483994785542955204369967086104134933466749980062277166017996477544076090636950265504022952867780331627433269530000126405478930255627943038277840444017966751070941475516334546510280771248580573469307209170052865820589402491271145728407815408047850950381683922642260281248925116559236671748947747731444246360364115396061819191932887297860261158682018850114187876200765253120501157967994516086351343809144418903962544960629562099032229289899746542063538136416705852156947392778044689257687496103754979818835179827379691047036560605242025563865965454463815643258790529032116586172671532403598132551554181760507109569653482807608997426843311610574569746298688529275070092521613371384777598991524082566974406855545063735857068729089489225301808710459630246624891980504181978145125742470989996492148229703231734135997531638957136331865288996307134592410263424125706020099832730334159352239637546954593088139808512368455362224925041535372731671412401240441992794368877965033209767687749613064474661614869103694689088508252294519940260163183164629103327082006892270157896740313822144038060144168755169595821649772770003068172442439704630399222381287845533955979828290654491847814266674705688087636539028817681863105794138884829761005774197166162310332216913066932581950368917525948081792386981031741066465071646969357360913213537008198633345883015712105593225569432295846834580092239914392712314025006394222307662384818207670476635622029044569573200266405847406983136107267113160251321612750898616869185707830549278473227480901050849453217601065854351665924838520807806763845600205777873013478174635314297888076294568546191038260316376499118387775321883597334942853378126736412057289428742264473655416521497808233174326013745147523743919907002183501455598380717054111346714153725993467302351479327944777717542224486401622456458652771831858618596002021565752988704808305065609681117796730094805644965759498462230251640684413291401948307681925351398921896926972565482152250990736591845753270230511855042241516389159629148137724835741887846254439410226518089848415109314854939489035951171890837630829763134658736357506945431858794635930770654806505150394060145457189228949649825916886634715260565956964632430135224169467320002138298526714807657631440536817565874686082706605851914667433775825414180211146794492283248529272248270158333646264437421350984576731928992009848633656158069354370980181445110444223471026049164755238991989626701901328680479810073956210746106484236888881848791832791133425566874581755888271458366418276365785220069772940456705945705216120652997507219861787660827538484572101300627285122162554713213525073481819077952855115506518994578189570337074948750156751212975575675474353448967339624646109811775687772603700748238508153445691447680342439519324993897398605755632597747467755364205335579082254226864673434900334468383809286902775386720450586790222140828002314094480465654509577513651896502050043127907308873555723667628103046932167715632782654261119295902623456966093027410542309181274484203104199927618105210191403637545282564731989731559039289834359269412133363656139017922830410062561286552502756547353756255773161946422703670644180026750803037492338288861715765053841975510496870719332212409968905295041444156793258293258709596533172072374887574404627073634575684328083365999494485738890549356954383331931957222760029271332739271209154693588905503462241706588493696589396884881811713128732873555923495694822313801216891618494768817782870758342371001330304940040689349535877782792675663235317555100900964111316185618791215458897429183762948131190523252891360603541753300230615490539950792650117257672786229164405971910354168801122123874857502531597166098799390695784215472607010887866147906371446274951467466018097008624970904275874133336390580729334398780166099909129615329687312920687356847566195036303737458748147647358739019068133475115684980785603836959706878406350018026044905977419676594962920633003388872745306072895044056448444919119817503319535458955380338713149535796621240472717321295858601804360876839889450085749486176448200754838294591176787460775967343132037388794300342144859971767676510417665417824509339170377355909409765734212774883791109796427554985164182087622288764361436169548268447555372446246002072718719376060687372272001198013927252816409801443525461992211928507956875301157760446691301726026097563602883599988274434834659433243457504990509062295398170816302459108546863958054266428894111688601797961151737382908647754949019210352312070035256597874179759920146586888742982176778081448433197222123122128480323811169998182716914680281260220420053013202897609675122303092970996574873499837039557187286386170358208059187341840784160834097611225464082574257833405964150324658620221029662282594800646697274115144263552366989116576671608460393853455754409368240659554162183433436818506540262939176234587669102668084360825297152730979163350079389117180094473793110478174757933010565171148589157395249719722141890336409551098410668636713534265523710574219568196984406317623215414750591167654612448316285878512296401608886749512019036896213049826393370191335725553055072232827025246261952945810410653191794050665008544492520793160543161229477913053825178466347091956728641122863506675442894583157164054546841515610539651095089920698862643818261644952456369505438433593135097256320734675786005902324836693521044818806123579319284248041749110935928035525482965280780240385514866962660353765618005333166400152962667430582689179026128738109461405803321738296446284184418134295658978644425688377821539329649150245337901264762360417762224875267467633154898364491093294960609820357982801931280643532762975025894627195021017709864780735768060261487417039086492979802768193981832648447337155196956138873624075144038976862679005624842499327725357170233279730594370446602557691338593155713298784542890495253758444680776144334963269654925472605786440848966657883581896276316986814759204833093665343082051581793423005921770900410719243677639315711098893482877366531381801253486624325418472730059046227926702367882232727039395533488757196830739993883739150753940181871365606066166476411816828304919501161990437193018908219304988317296176309605411961215085816575029846712722059418202689933677673565953535207255765654097453339222538455930505330727209088283366277964971910573634416847204409221282787489061854751547280921109637439017647360539712806381849229723246747660512370821266427089941376991680628538588677652396286006901401150118397343755958096261043309271643745490555099038077637783971774853915315284824390572473916894899890966603931885109924960035891023914945709574724208807702478507498019817168784690382289764775030437181052866762337160388795771057575067264168516663114317237759642955301567847654625335627152381146038695857941281484498543921703334036529651799659625813479327206177636873161673611263477708747425215046739517869993148437383219542968858156995044317571072305539145313710675442017145611267031572119428445390352926939364081784206160848515126179893182781973256397366021992500880180098777020132276040464017971204861050195528509957645549736065437385327324337467606820530222546685554790963690006805773011973110946894863326902213000201418945323396202825184779336971729196361336384560313053690135388821672904938855559700430680010178171074688566136273868578463113648615024778670694893973356256601140967584858787227945977744429888655462247893536963641375450078527978305481010131685718790743867699609301468815599877589420754687062216124728289256753082941535638158775506652196724351590882751186837525230160679481011501007997398379466207319468784689730656926219862908525504664995676756327817368971864195646300469663942948492960488055767190205593192323054565070924687458671494936833935085835231383189886821595096963506187018571467528307248911408255520492497729382548735907481895390020224607908878359534372771254373784661994198637409821056748448404094448683295743845521785814505389659056719671816356101334387622662924056245642764939667506899354151846994678187060327367086978094930001521007394967755327873413690421844773422673153446977203037931370742238753345996280298346406868086158893802771705917041079075683815104836848593251309765250210484970288418330892493166424794167755054747981457283549680278933305760578692767955170090464810470134999088718856797909723808918431831665172392124005680102327495371835109942492699440061672043114178168853116858393343492776357083664828081795872689280146768037379235849252455737800274772623119584484581393020415544722378025378406954848899385679474059945485930102965616822562684776808743248807968272365353957251158184757752914163431333804200797283958766814368921323631936387585874694406921075430835585301957733353729707447175479155204423017220357099173531012518538703718457752847898453013323372592589116379560661318865072104030174060095842073319019241063467436349780617791294774480726248441330511558419295543705111934105095762076077429571207960388498815962729864163873570333359213187557169496023149575349800109106831958495238298961065498537565647099167826099572966952715687155382638846687191249805100429832729140995409062761220577496479560438508770241087206876097372765045811600384426451948487881889613806532998724571937903022374164036149679591860879140559594913100203652218822244700561648734789588923358077092571108081083001035366259811863063664030928870033580235363769748431031044091806637764944835296621751581399979238915051075322263886405576103470286752910156217644823477350649790888067412332601078239512765001763046351961501318361186453920387518066754691128717464284340257741496933352151198773989217178301832478480541108968239678629340692618720836722868054093510522181893107358690921195792128394608715984042064787877278600104706350252828237288791230716786241168742652092460131374126692518040093012605199814663249774485274762531680888749459970636172955193058444602584970458615792738800606031171393539824296136738928243318656747509721808505119803428634410928693152154702352782191593283271428147489559150940657863545199750113773856816995889720252571202831844402176173955892360832762092553704060667368252732141538286081678405077307025364370353772493001596180070770959346369338138352831532643850529116271314313448826378394319630555779594397777196929328745888081186562927368161381482569059173948521184102706036286254075809601306698236475816734892144645034031988911536997431854091052652367639188489108986665029318509681491721326526493824696578916946630213922905683177376448818940913115688790487894590326440489938184053567757044388074011732999684765142352500776693503234330733606874255778703329419616303388545138337305876941135583533715040520285975517431319777708905895652592180177965811069112729157527414095224188604577323031453115105391307970165786535301300365867387338304491440625247519337151147026020545566731579747331525495526878938515860327172148108990762796867164569729125212925972418529167223392954990029369912082015705973865739680669861386877479717269631171512827186792296468771006134791151627651686117660659616351855335850321135335431361425580893883332803591834135340104196713282245122170427056128461711781324103254265718356946744411949408144447879641109912885554719040683645912854305271790424628476900879003547668642269861496940235633983092068424417366182481502187926667674209127958966158679285808269175771553908920673625917086033730412038763208574005821183478526254802173791142717058113181983263906710033122376506721267512277905591105192444216999476713535380541305346949018004518532083564143094205675331387416878861138114089064607001908372373507671644130301474044677868639896291207574583035118958362273709638671439663649434554423308213010166826722274164843728812939707661595975678554851186837741784825773222710974950173216218469556038941049372832666945761262796309362330404412747963075417442272224132260753889961934444062647332255118336634401905886965646732022669090995805776831088489479680514119655291080953762794169282510763425494725572550877967731271036182885208007010036117230284515263360702195362607587987916428778432368046619185442333235201144442065465537136167536880527586495538283202284527588033370662738277800137618849514937417392035577456628418158198154970616717020019246117811277854499480950644375885519490910581143472109582301381121494175722048486406558670632897403627438754339946033929711372844783315871546063929442521793696965094015025611116547577870023244679624642399515231815705452228847498335383114080100329769963974384460940174167302283066336305447334408785211291819795685065599937202525223675515630449562360039196166928490718109785777745600842142942815090279187517350512711904738206842614317829824794602625453355647695055847637618393330362857292867122308147392482335966987337485553753974784571580267318050095810483528107841874937282139135523002526080000761578275392324478079072682127686444617536907629297718024123548687745667536994631686277308533920852726599363396258690920968817301511988016461151404885247002864724202138012503349571016197155626074657305625192737009523807563237907431138722001962865976103806012158303604700167301583359834524562849921417686797148737794607626654282678887019372088954440939866519396447312485215835664460841836652490625127334102531595472895771585187940438794377035969741002581508351040431312839966258465957509279394893969357793421656091595517207097693634319205123118788308667518136988728417312466786321060369702146067585511187562365760438959699215013259018058047646217791647826011387496378870965352194020412051620665535980150398880041495720710980685793211402195780360010243096578713328437251115271258192369061985629404029982235997390388239938401771943475918740671820889454487295804277499693543430191994184430844475631534278084233758245832503669758436574231760521518810667907266229178325286918792440155947971781220699440385344685055208184559184933661338061913283487508960959554124049277387177681991016267883242105197500425354255037596420827915722827278958012334477929625443271363998264498927839741713059201816217426532704445624812066064618306107156504285697792861639917598761643108549137512975413869806334718339981514214549743538635492125396781798172217032897727371450737642366994066754585232877009028743938135825769336660545790209842970712215297690336714594508260042021817390240771176531742533756721043769773750940265199305867599808245900799896607697161028836294284370255562352280799065090398182908686974566095369604093151524280075238009526218746666194295776044390012083087920646369334338561849703578891973532505731740350678705592382840034430349583590962557811766349435500084443901573686624726932647298179226207945252881373563314690276749165183292803310339985719447796880856206393266731954729274255484987257113396057377189077570663938035031804835393752323982783765430756211535729991258013510389968604104929910317846481443066615334859248208812517815047574299155656366918945185641674772217746015065481089146845921903195046485847330239219759631124157066378491912581506920402669402585689460291505398703837858314072755223844750879627603777826087775057905271925575953296501067199998178853958135296614510519235945135369682011422518913965853398083735800037355776234420625544514258273159000015241083804621673701678665435792155325757855833715370107230237185735895396709533303235757266850678367330213806165555460186327676582781006677245176921038075789457657783095877655586141101371271931999167675005306643990831201284256279258384079333430704716722492271852709072555616942876417761948422302943064428437554802553797420974344330453521992170967404184798712747845789661754402570837380609319117635142004564525081114184770165827522538072505276891922098814222803156318807300277732799241344351645243177781871397856480001272722887591296824447760849173138700918508786880560249048074412965669958100587641481218301638713874794288313644687184099421852195857001628881198231376221406634480512167465712194644287120127967079149657235608107758524715980552240660932645166977221418311430354204571932621800939136189811296847504759439167583530541849347179071946246975880647135299233128093306840891590057918407639742827654763195860763850401852643588114487402522113953768880449536320899508791462626968741707795216565166713761514386576276317097151096198986158841182107221284962270326726062393447074271658452176033170610021972621547936482339920157342445262332583791748891855102002965902387836981331191681658609542140283872387420186830531775397166166512422661454946853729097503183386753317354075115069894676230446088937993159211035476854414337482414092612837081338774114272492260015463937890392672318604311335627518829448816438043696546000889447917127322109532990010951023960630548212208389342425414730269892463195868373168813059163751529461578092084380360872739853001528789804690901470959019516989850470649142584605100344438354850654648386332707871115738765969745705842391356981858363572886294239630330741454466319721504746867068775063820310376889758568154374613955279167363819729069806995202270952805086455209233309667807302407881117176387662407345350467007298965668430763499847825051346677690243740752330405608937567644877134425232321108188505365037620345027236672233484075202707329990233954414318309889543558662241337979766566267414636436065235136442935337093433357244232835757168387849524620064992445316576993991384454065965560606593139947090504941333794719407761755709809044172136116986864583843964159740036914241160719767685205091933587271958841421377132755578265366531785667503342442722638747786094136515745312025503061067450155633856433374791801144756565420888861861890112106388021364642343268362323534472316779941836784479927303149251761947094276603908921114874373833315308507827798503187109437860221722379156088810709568285355447273330984454747075004845279612988172338822399725982194356178179373811530608051767421624293767091895447976720692143297802450980410381997514001841590687018987354036837777293835668816235294635512557342961767326831892415052083869191219332763980488370906689567512614284914047454706722414821720130606105288060555786660585402258062183088154654688626502966606250194010879562146016466870536246286345354719991068028522069102136361287813290080617679751464899780506341899150431566207675045772981340836561443687742398411858832677360088036886846510914615719095468422940373245424851296389409517105587206583933266987901374458982758750835045491401327677939152791432528895650390357049036276807156375020279785860279324309273200627630829903150015078701804858304714231280653879038766789652961591658581247513564360708743998647665352758477933576043811253271458688377034895157553946667200021609648086336525979976580375683554753898072626331538672012433269684149494076855806262187293303744467543081967362103970207265801785536848281898160119945633141632521580387298457149194959995184118947450197769116406577080792718527401457188391494214436226866290379313360825846053521686818006072867706066516179078427220788171265524003435537326037659810210607223300156405648661401219813955739218773130214785537309668171582490069348093226541273724155633303299580104053025306529570714363564423358270167068772618167655581454121813236051592545991831082068060130658756816100861638260593983834162318605183035291344914710708022411525544250485601816910994571142665836253916908304047894266867251955461382972567740129172538466282787036340426021809402010680469080193589099861200563400478439879286486188286697555794825402208520751126968753179685269781227417724461190228324920268753083774328247744899799840767886235360536609163735425766830173033531960104694014624004890138377895653533334169442510536074867890929565356492827703801585083343571281947891940995411171968026910596211979803933938733083617232063809307938667278345049494522139455296754220296753301520960654021362605272300015440869902411574471014723476044429427802560344100121931273017455657730218652294004896336242536800016497042198468708870549101834372819792017165030681797138179809302812837589534729573824171097444777353144581164643516440710116103309063292536050815804509922216143016512022525845707225687424413100089437996338578930275444462377313033309391937703082314286724622064284534100814836862325316743622658206040356485316825867582557397933387056215779469040418160353421346113346261862622701016851062460893006535172682008050844206319952986179290909496085493121490358392348610971579823635827480272410367628399122949566928800503937958541098888273828437156251001764003385117326996010438060109695131998992889987453702318244913601166652379043349574594560959808641674017678728134776730382084685646128749543060695549965044557666528689679961570534205709207028002802806390365198913821535197766763918983681575872934549630739597098708591203547520549014262409005724470590235276536448663962950890164680670305041487767014236722076661973777839122744942284649000700657305515046243555336338364532233180211140378883228379728709726242927941065284561712141971013499320315223683360232639346769528955259215055947025239921244158814289664868506020485982787218661674293467459992621470303400627084830643477266699600584709149243887250761279833658188588854769443772226757732267732301559397384826817649118036835895023661562677105431219828977328377079601915263645577947410636173946216981137900787051997249604555817787818522313002434950113139646123693212226547423604389923471647219066359839520831574126676594473817202764647191040315631066668313019986926907825735064749992629026807335985205459503715947695991188330733600921167933799793834259465983203191066105878469305236470022643398019873859839109324948916253596298244693689174999460749666709634181199853693403087735672096111152243927787876613616150891080590657948658994105477060992282968889739746816631836006981933850239187559044139408070575548707285867999267597418733690442604517194807089448310264142548306939924185389504609071284960603746345028230690429768422843792462547997740023318805946105112995758457191326943881064949756036794609151171138064582424000982531579345267197679678145439552088802266983410385167184166074194715536518797764836747239457481675176549343455458477620928336879024124583235474510120244510675715279337974292824733036876602105697780232853111564477076116812485337342006130307721377795811263259451571898394572352022612400407169352322620914057808775668808824102027201397002048318717733934565451195742384338816139753033315764316274495889573710056291759711943587505226201671574079966135168638208700655968439645325920520526131669725729286665869884210467226634210228576618293509672903749609194353440611943387009885268933641029042455312337657538135508948234644216404450955102434451515239703814445333956634017656972829402548116736688648998522884843180434021028267921361536936644877475624014589933167292077514549423166853600088710866931648703665637449982968700851784755365642391398183973643011959287292954489257577254077303792894178044650024317007269676320979273187548011889560873176112866066850083098688309128351557672518998267030524195973962739695361237393912725737725424970110857883330471460637461884612738141157690875980881074756418200692522356074170657355550321237078012159457790673659973101062721738416608894710581601732154113674792486054439958179876421849766747617946198889302082514533770434150529956374785425000615511995479488661286767651765215794969335253967681892416280584329249395621848400734621839886075750071332302179301395154289831377674652734276274870797092275413030334546405809352766064769876913466466091629182941319779873952985319115251061643806856876741658512880175064243148005923950675700983462961275337282942183804459203414703519157234990308905069640983540624962166049356856481663364988879346750484855089266072782527229750536337808893243994293127067117313777839142731513501752045417654150470944362945469919608234877433473779795778590684045559906868007259462891205875545543799023156352367800589601361388857051643239253599710515004316595082709388136692550933823201120486699794749789684870523062278337211836425579824935921432135402638713350216426704197165398428534259297542359496577917657670337749789270228662939412217736090210700296730873563273196600497425345771126934847870162312937885713914026254019798853023270693553777363441230456639397416334238887982195889544831643183859033039843644911824865012712741467242997156804109285275928861380496492363200334336173715651606262160391090893955074617465262932859476493164266291486422913371077289363578563632162856892646939563835544923423690570193814279494630535121639990439987674800341723956048055548506211628155477521547769787717554426698488866521441884529882497057067002396000726333939616123942825922654354206949086193622355523254554669360530318519770983713872639023214839255325742642626137626411171610944645414579164559672653872167474450878813285023260997147429672127456600148900550988337984817791725582177943203091614032553759290357343271793501060696640446820078842745435856243653567124397558152331252728735989323449579671920195181583338845794801403349523676143908823081108946003322288430807216757945099644741898715721155811076299533972195400340305557193010978750994127590353318660255370772276483690706438086554042780269971413181083840462971478636997489412101630290104398507252941054599766981141522197067514894187619180574063164425846580173546835300373098601508751301710878509753784710360868913224597450438052866302842625769477875230389313901457106724689215601750461560181683531599578611948754966585041674536447791928098584371236886037624724241545255120969166742030852004907825670753881426851158667851061572498010001083045437927013614736961583046901501170390218018292516489933419576387518036686636897819602817880921388104290561889233454581298438126559179128371621307867936650571742566585105416511113028221446927986198777324192529563763105696991002256600253049070259069842841702908120301446688070074208200676092787354506558387089441221847064398919372393715881860706681460774025010516124109627736009204485301042799458714816313770743933384614051127678681086425327791384739602271803201056567987899259954123230647548248495368083392205876883849643842497310619349637865548421215122808425843906906250203553009723720887723151123571359099559112866203159090265791892501061480094629182296796186118635675799677077280081428162492853476914165623002051061025357577292781646506042160383192140911171305743080329742836125377909777549828782235777677261829668977626450510586028218467573631969489994074200366970438699490000949816489979979016361319825873423832024437807970329901085226727646359074112791054296635667648185464905913076598505530274916253195678722021746604152801432511595163178177706999011924532396381954825749595869681561422493443674625510995359575829293068471818900546858279310909161517042310701165396974881747992309548569832906810459818235972981399694713724833700175198074764990241789283038047329603393149369029878298271408724076543733750153564306004708750420325731736091770780779623885943704961567968692983464765573136668747679966108439615796400830363861757719900344039721355297746136178003810982979602106537284565500846108795953935379558792905277721115054571929506193222064323161575870217563744022425232976232500500950808139142470624487317968968426331349221341110874033411111184819537222367294442322403358056686211319296714156869380294640624897340875796988056977294356285670648557158186937456986038721919815069536197793665744910552728113938348357774026837840695425248793405209537847397419685966296918578448179846178838784015849428823972461837831130536032474342934356036766678017718635901006674954010118402553530038658660550862364175466479077775601016662578504145354393148138479102650833321505090113687829113173088180866329616223577601846759232288018464911799721610695675025764469986761355225023089043239125784813796957516726403910150878834341967424224438888439234030580267465617272253225895482019846502849849122099893092566831566098583248998383499932513570224945307047509191236332813367148104010206292276244950743933935807303782093930049482265789341817542975590033771898559609665513811749606491351703059484681667247062922609750404135570726759303299018660339940361402672818534754915460701235837725203199139326588297421273243764095653022172769898260863148412290484956457115168336356697131123001728849886176571691343938828233779763649858074144917384217718273418048901091889781568626483929108334525929323781698678137081263713176273597849307111478300919320819369747666674343331584495678984020096981618495556067336295104812301799220997133656461644929637564056063659917885958437023225253927774400510524839497886224246742834679791434494164457319655058092618024469392427532631064182357583640588341393712052120543618573012417395648037736481282715168592155983283572743533991128928849123857356393560567344903457396162018724244261881341615680732343068168908743604032318396164204368322728760406264790253263824955935398345757519319653792101161753813639078768605904121665313647370447348638631673572679908554271209175832061636650121805818163382950234786198985921975727390270005523849226335926284892513822990230541615014259220133121307765579847220714869086948186604111101715331447288030952747906173096101654651957238829696046058617304563208921256581861971413766090239398710447146147058390664272819845408071969133275581344434707307417548303824326460081952895830076804422166523525493259330717064114990238503237470044100932773868639964351985883109012573381509874749181396360676921421159580487082042132766074587135165202804934709398116708221084093294849802503766127922742387638790189772366100240171990534866315340029350875965061670361024180414194227446183967802341558877261395619010028005725831668571099632624964233372076799084551207039517389149134789718658739950200847419775759026690335577828157699560315618705496711652852083766763449090957986118100194940021912292217406159171516277348094790558191645690797409205104314908974577771785045371330867084152056200253809867787857149109405329157622642077197758126049996298057404726075381265137540085011549503340090292697520014422463871875929051979753591132164508875143183203209106599161548376683070908955442454998869907425517911457726823428378342793377817852692742068422250172623961256725160238633578568853664208305659271503665635112509103094783287532392459354401317318611778910597476576154667343373079494483028959440512402659955925702703591581153728508797885323611774267176528869064800700602767876339537384018729499039238195670721414634727790864343800827958267727136155992316196264101468150629704060947677956453298008139653392922774118846553637815925432046887157693077050382503893811615029301089250145303636990181292894138188445777155094153334436937289500256537956438304083934108381803588750093125485608466247580123148739485050465596859915808743785364459106026451114799089541627462929041544446229284836721092864411053903440010682351430834231325157074863493894809712475537743928262207867461532814740552132933968585975192301164392489338446321455203263660522574015713039648295744746658678126481429445661948437515162468171103385726972074911340608714942442878280574260028252035540968821511382393141068667965256622955165010672711565597730707562852219365581006453962297415068340919104019888857711594656008518905436080210297541831738259731678558038546719547146361559621909005115794421713179785784403888430457817456428980430254842390554032037821852454854283934199333814459150294851961030228490111712184509692646368328388664283928808246811820573301397923988359770418586604166982923110021014223684479100326073026551468740788078639105441106607758327682152178401545864381466335575135349356789422536870160309293396850600688024759085422784154213203411039499371024151231319366877852583087052401051120943879080638454282206511504528507256291603205654215312311915499931100095446021067496468577095715225306435785227681117099311534600416779662056988063132683026534473009114591715552928606874041631166634107704739188453186932494363781822766293722031173287656466388290573370755076241631452797905945542776462353789171896106134633180452738250824648082953548730814298881225758996154145061145396930433851842476121608462060767741776645896999667755296745795200797509501941429208357361607626252111113959204691895854522118302408619957936923563272565720965238740930150377989225850684486820497646589543727351945199959435004060409205900490273745314640660103795531565688495037863545667991954882358151303855076515534424184121183087855537365671591945535760891429529933973582134247769885937471566932989280775885685156055058916874283537533074418051372355261471911684780807113147386481185256799715221542400886637579009979828825556310624671207526408880364635134523608357729934506826924964316051473756975440386888255621348589761953374145838917980662317202896297854273844616117509310076941255601975267380417834510338007394334697717166145886634242436025338588128771962732045547485690406602323132997230550141772350545820881466753023149855131978563844620068076577756656465830308528084348459000255190752690177539897014791079870285495502160111668576257222574788790241170454281512933845450655681331488665583097303171058331964582861608438362140751134847295274763853592311005992982071879090524995462806948925373247925779152078099787603782471184942714392843187650655040549906989706018248017425981725391088985989031719173245663271636647700581019435395340874961980942857109866610239681984106137440070082837354722515664619765613226010716430910056495281102189310767363121730425566204745005594763014527171306769150595784000921795040265021200077575061157273701761741162211918198819695493221527710540163440795110740533860577506227495506236019009633425468154445103251716895604415818359600549415207286860084607007706086774649977770592438765353869802284779248944698428978496138074371206760444856456702849639945651251142780454192343559161936724918972630924857923532300788441877027524631170281414249122591378934629625044421262254382485949662388509705607261916492234446303505247396153003630598117956382630556317520581519012747777466022364953648794414071971079461789334181966968550840194421324775841173532102846473020724079280127665123462484637700622720410477965209861132884289644777635205236034923706456599478169130259552900355015774830293844493710344269230115321812312424071147125673906893117089375179791814765805617934702059671134363537472905884181443880919335948954945928691814970673166118343847753289439652958845241020960650566744191129887513898242705132364988664259166403000475299100864103616293758128781387738782705788338593221495596284946113228599660311832161396595182802801962688051737591049689361457133721313239828640084781140194822722239212129752174989278377509881630672541847034062573408803069045555804687927441730482958581732608986638461642245072740002351704161538622905043578022334371684538844181498770885320404838178279153794349569312812292108910000226023578585480702225178227169456707318159885624134608099416501512760449074225917240551999388873631613924258551705078049871029176860323037167560236606053010470383541658832892871316725239767891655101395849962390006414047179107644597545836655360719810114429130837063408764927576180189531189487274697333055114496150365032503728313160296323841694529709523162781464444702584000620786432799950486955921968113524844090046730055294734496320023423943062988015484496689357891450596179865434312300017574848980656972094656950292064717429070562363550235251180922770955411310455420742225785801761780557072962755269505011743899868415761862435965250705567366742906190718281423209623961692642489274649172582593452573766120010247764748596269376358532773310733931774744854744281012488373179840885976817936371919834133885156783770181633724143079180875381756953556910503925945549272751098312854790303225810533543662979585101552979235095728887449716418791915083640895603652350311563882870120783120233751331333704226655470767703833026685866450690406355346186713617576190320073661626097777231308776024697038031810679416909607546609213314564581296076966710671498314469575614111080745874542301162144338651489181716853805717118102628654294105006481847836733194596703154611238719864690165766871295672266669247023072102906899185613371235928265821128761712152522384253052602117597683125152801685773909186859701775345877171719185793746139423531341305218142060213846839425276994640890773305785363358342421179153804544711992797244914744656778319336828340030855161497452226331814220071357179088280179750226569978539751417260300075748794365026493779822342325842854317942006075396971577324885215510394698197181617953023560607001860198268678361919327597578691555878390523458812943590576040043879350224806183035370073657358194166820482882919175468966733456781120053724660896519323182041879115468750352110428786345175266691385668671068980730164044248377082815383833707297159209197896070380389979887365843406237920994071963347003030684738628234593834849986110848729290153635217590536105595248880948040175204990827528605441711913196746078872451952394280095829174694072749366693060048537745100445786964163314910718769722572101188131644671691955692137175492411494411869124982567264997452720973292908751413805386532759811205942186379700924917332819710526806669957966018209075153877919262532432273939106831830777546017455872676135370767106332645628149699996170407820173977801992440705274626843389209086596258141263298709802291601365095494263667852158551799794884869414209827232758359033239677253919385974404628743822953312671526658232709562800427282959807144445067435718695879430747731889604201172021847784805088033165315292473269870397780832867015589709883539718576761062153332793454624339996131448464513954778677324400573629364174944850006067489996631171846808762794341340775777751687780128246288496712269645806090937093961324195698254619852427833357256089776126620572452252636898406792026362986026758412301998323000647020899985324145240280932849085341580577106060527877959222685117950703818910139510373660510275001486144471107705119389247578213435746409155347423177235298958484114124764002403579461141251216734774110235018609858129531195802530841845293199615666438704192582285271088472263346723227134958784056938684162951953981360664119948608762786545923688581596060293666210748555053891529119191700230183200616017146444252128055601590495343262101951947485395910220608531560548670719612794800964961662886747616921149246816841923323779997413979410976188610369053967260404501257521336148017453429337128460943438343232079492317893109549323705651567952114159439597557203811559953794303771385644791807419087840120881595178475392182417076504164033807090518334054303522044119541314690754096148409681967604463816920101390741059592772289707119336919924971764417458509086684460009805228617907997331664822815987640736682267288024607981078594665526115847739150184083151408996699403842889732373120580122727341509792191414460649998744452836901794499387026015765390637808621428968477378645798988228363617856455904736422363564909436608459775651253174844748718235186362869370164019119207644745355411537522430040894805303039522294070965087464581833513874639362908685448993132244223395912960952730268347613855648297233603396143825395274600554077938603685294131471855618044678686648910301234965788676398518720833884996017224724167220525296015631619658766259212413399846874560813070481610579389580708791909828727890508877178298263669173379280458460824373969266003337648760937218397495454786135999353985544001986927225548030187491308101965156937937245884553978548429614308876053765301671930911751107169269212145388128597498750480825119619151591707958542358730656789967385108036809779794940030522904666886830364586903512259106921739121454186310824820258127247962443548402131502626883220193787316785352287473045641878768292470414668403227430090772032317501850395439446376012799996643566668381716134730722543891449340608813971119698309897968298967027564210134481412844450880069822878927974155316022606525411789420558401916516176761763879393883035586153295585373013850278603409377536288473694273256918129994145603796745726027229362727803093781356895784968168648150075092743562493809776533778276036064991054410956864943952145572419753849542594060691645195800754536173532965700087199720730884104735965422743442815860544882346845561626904569885268653768554261116343581257822977884511769671660768704087278674169878975298553984286406241166044031091830215378328583795080605382407098725603351232737638071134941556664831962148392524615775331938551891898695403941333262262821969380529181108679340215413839822990454760379542856791217892852105739986314345891923557149422161312749646392386230686373459655121862302244829709657357610688612098399673625021903417557014334157438837094022652160060161428847727045066953252121751622462074841551107433074936920865782658539774406555788081698088242217083142346175604968438625221837640701152970621056867480708466894983104156705223714809975762415195069303804422125867657817390616557723739066927290344865996783266684737009262202300435135741160727442611623603229803063017112584860949109858685757217948271997576515783403270596172627445116967354247689892444881071454605234109662024714438182890459248971128241060069889167294476684011705067310682490310891548832626422267071205587904404799476186485050229807862027361169701726038614120306148907013697733224376309716035898947792175826488748194507046509338767444707671033268206909977962309046915897858835767913963048396910039512077844697330321610629447313754231868535658313232434030994400363450360210634335411487978603228978468589396871940066899693140505588126784237793605055022523863914037486168031647077549646811417897838339991530295879445644142460133305096276806670001948030069947124896203912291856873934120787249073136464821148144370152956598759034427633703085533759291501351903937385845539545873678288433968054362238110758535931297357914162953840491901521591454514608810371505476859862621155424839209094295099104401274993567045100313876890438758003221313187003513424571235926321263159402664841190041429837236483298726238346927154734988227955849214378439541713884163535795279976692986534159344327431002297445984525968084743635571625067520761552824220272884959118628321304253876158988296855426983406668266433875283516748133403742207856734056896469961582663289242690113398680181902449952044558943463185351099206098558458435239626560151763730442193239075061974791286119080649538709048112182128894608148722016386554862357117822102268232336255089412079341182395130958425305053653117999857978532146435809570112162714995160444774073777566840578793467109949365045706391262256679811794709449771275248313811550731741501888272410601854022877562508114426452697079541386058935948717383055581339887699909674120020811350146715451701377686231060429704675595586234547501076579635335554219145246476620128171774332611362298173501710590775245648971364344213532171178362474484144126817940117053428219429430120234814911107267066493380906248769511515986334738299028887774821701774308010555350017925558535200330563203189718310669241049109321752193397727145179189931253130204581164261820898098652794932779881202425076168275489958946217964802438468898446739330642687135040492005274573456719035280860567079357956571200469375863700050783192366221640939431161965578230163566469594491241057905287932927324014459864166735648658597361972553479589745799456784566228978839267968915696406029920554759688788718910418530562046792852324726305407444822406349639384132642236393679056524906586165891872636873797395678913695970192598971848893056044217516138063883919167953159710009431429795771786975490291562683998097112922398439025224191647279206806788452671683464319716848392606227265191738737636404720385039081126093509494321643537892112809950841540108915436925898053807793017423571872218503079910124394926346988316428828027951018444114695536859271426409850256968704902169551586645670295811829023282211520839438555276334484466571605618439225807512733783264544433557034051603242021217492279167518888040417891533705461636401494412611365951453930737493444523118851290411663082080167453299092037246979972253190462699808042826930538799963103346759559239974602482547328360546002054098704008034043223611383043469428582979299846117558772529511754593092259002179720968216141572798302758291727461229913654685907229056056044905967400751459492865643931735978880336693828489485993991894700451546485111716053801570514343382850889114394053557566921314426066929182490437341025274926889278765285409704251958553753511287023591927434609864389384716238311782373646434632676930171560408837470704313995597407556072465368897601800663681811410443364110116978685761867393726088957375210409222024601999675908162003670319067001308962360727220387609731364905275829687954646733122992508827403970913634355454946194245833233769884070641917185421616974644949012111402342532709413517966241205013715205913425785173363492350357800614490744241377869409909950386090021199134353357436440774773538843923760680545118288246356568082255156380200891997922681987440531504061048130343433052288076309007816460565089270176562930814837776544200759156729915705137271221108703340500635444461589085799775502709197942571910516808059207178609734490223511250209633327756603062031254251818275227373028390709742755787149153609369584616010389147605947652774899810210018519094534179234004553474614936078876709898414024485670655630566469834459189475215740494498419656486054264133805981775133778500209290292561979766234558949139677820353492815089305872136965683554731252350470028842970444449640642701534244532221054193337506553990912795481189513798774904843082483976011774745183546735661667448419205223164262397562264589150343847953299702794526473925642534902682534551985285139875553331101201085479083204935382274611062782141217205115939637306777515948669596949208064781146599741894936025651218037020837542139648982380973257317046911910747308387119971334789214338793808766262354148992877488233089994282763928312552954812795573112351125600677155917737703843754426940629364159425007856017859017653469437987709225163983925349029536715378521343562468953036103578773114834301804203763343971389305959479947303331395250436210669844368415185212251075110278162225633702675228317074691756971991155359311610162619221404085347285663823704303846152083052014049878459053269622219894121461541033606589330920194660944702872058765932680213554660721382892719152889590316204764882152308544548144828925115857261679031842644492601259171913332914996191898822533566125640837770082415749964869756846531073312722838529005323025579516945048503046553157935380797490937989263240736176966684803526271761295585573192446170998333100870759656142535497454264679561388781559546390330056488215786001326591951964490094286732273933300390755960904630839731679155711937634946729730068658321338277354525145794929790288461536863653745092354308394356145752083453124851633544001460779173668149526028034792005449679822596236549910122751355446705993147807752883300325383623893779630444040998746334636861937036001073465431938273653471212097414542381762358646202057420896979916536438337037533783858425161649557702602997295992308677934923276344844654624488819737809670266443448336495285882907087553539959283620593661223627422280468007615364148456109998766484774664426972469643826183945349153425759569726227297372108583035440940696485178584870302348752134137515979717270186353339788292013189335761152633793356148892864585717154562804646926883354805367899339332151923624696572074210433453561501238626326955321444669549770111215536804542861596375302876667016416349815258616580779632054386454164494278432441891535216651682438332005740858237304046942943635171830234091692788984584844300633927170044808155613815409287424624585448988949122521691765797199986981939601225159667338711598215179113885807307444392127250782136273947658675962579483491675289300545293639268673782931459824593603821277108682498233714970313782501482385311661203907249889874013486037954551685669576911486407603434272963970284584599439812886251104507059077495574632955418139560749086486699281276562495473667484296303051188532744509697644540978302046726545724477230565281975954888183018753332667976524092824951035340019185846995407403280905885797892624094700012967118094434185475920854016110169400050246463622462281950106071016356929544286943288392612539351446498821904217471047103750058701421634301027128202595223064971021655727130567805668430528266976169809948534361607984288063339042156798296271737649101667834092184806612312092251228884209111912881408663159947986113568117242090137909239611142131954227247088506287623195191801381797268225503489617212982400342605003245872803403687152110320754665194556193138081268693009099436600877583098792461216584013284119329603963573433463628459612239682074574797974230051495497202605543924095190502025157543074327872544193697926495874856215019602545369985470860061311684027174314530654252367047302875983853553647501583683698365559658462998236745567168847049068833139736119407238270991115857709277118249697434556133170865012767817922619300522737192327017914723697350150607191825244958616990117300696832474909178888490838359486509265107923854416380050073321355545838375146590830684530691775430082526150454442469395268038423373239630822221300745510440227534260452073347001327145381938496352590387774014152984135337205780873849288616740426094384657311658493071004713764187567512660203167048177562983395619147297231601836763429576449552137836532830742177321239324774606532284563775575340963481971247947630250782444273445899047047513788288141449532612197443101969450632579829165539339293430801443906374149676878628458469917392147537584210455145980412690681791714713756050206195001467267331704003821896543714541284447263379938202199521555973663869883180000282606631236949287569966384016761437179271352896330069969564078624634977678148055018717464618595080511138719841084035202896829782847574748615648201083793259543682033629314308950312090083128413544096941829716962193314832035140890159316955927417672082358454738276405429916142466483851995873519486698005570157430426676998816014186700932226418145409596083178851468000711229213190745322376452996699482213738240670280040370952411054601708899758288452945279329318824606246765422457712072937238991059742720059977093663798772378547180237297569934560373172313064171224616671218501176182046618364920189518293275702355956565837721071881999500029812721537134249568261532930875278992418100879150884629668051838321030830355269775656195447080010557221628580658109879811275185179852971779732306655087807844466374995457190179723243564294716550696863848109905268413438870005391640399636597374200715143972284549244162243701857555386719752282810036010333603396831846253355866893937593956619905022011963595316831584673975475658065754520729697640426682452392688101911650004605252584357555901140899118284131355200055751336017306730053962956748176395424394729889166712800974207871790574727267122698789328414861227793299375811608552242281544156170501433482148424186511941833161286657834217317829995665713077089510605276595998012354033016939755561443677209321289625386795068747138768477552490693651262237194758201870487379981980501733010507459470804964740944174352279393361948454395826813937522183397533938526526565470205975691560529973894637762655938473101782672700196444825718817365513864380797475516089451511144392527899878357690667732552202804148368834707543666459911184650275866696846862741586950197987128347130554616191213049507783969136728483026274816990940980398839491918523579315113965568029869213876989192629542358346554461549705167696461875583619476340376404141055651863407093535448904728190714932212370224982742493690492037384817128904035832619093142259187776469071721454566467872116298865034439986686880182597700080928094059730111446733704727524415966704620319515317666354303063926204888975063017294615814193565411224634677590869449791204761312571604671022751985153049059253059065379314279067341444898321789772245955562598914113485594491990886398912878572477138460465703428613570259885357097198688113674505744259395772627536714068720034812728819135224515503093487962990441642890341813775980023136116504097971748516292020130925919329506255667020622899556945057991133669409041257863057634204030472389854863892799108845420220847744526874087974371606759926510562329552977983017802757135571951745588353718292042994116269984051552691524126739237277457673234486900976997758370935958493959536630414761461146772948236273280550583831140176928870158825932381448542073183142667440501036561088011180244209114637717116351880515260573988766219824590137047371629279442933450825877169522754991083165446130697457447805642427919863470991129029533164199108286228478541227761364732968607885878833917908576787079295085225560697448280231749451619100244961615287681458927057206898451929574987751851428037261280960993565612453439628372560275449581424634439146428417769827966862427236961159940514770259066776787078055143212045970939716549786948402165507301697076398608423470683622239620086510784961598056912366395645654927994589344962933995253535658760441793759646564658258940713310859834441355840662783587584136235119934551542379464049811731974487413433118952382158556070757482778328193524782219802240206980004076927009066204139133715618741010722446192566456557421936556312670721990569207054327901240581537779786413509905310125411456456035630075162261132806957966622228214358953826191297701783210800725320833833221715974218204917316029364082536178839880583271621827356379348269689760345628340404381842737375196402629304023150406741290833070145477269271501023214228559497572276456552882756836350758668761542064567138454257936367532225384199521959101151446976832967517410899111698648269795735947083689832970856080433569422229976453185239141107023107077493596370548911069600515569492057905393171091985546048156907906134961698798609887908917156686826873669869204800480762226321724584684951847435828793525646977992660958539843546373586936509470360721989918529778052969572585192156934764816504032638901640864032235336015173378435801865824481471688720977670932815159440015780506873274143376513711756519647961887042913888502072382410508272608173906726139970358862898758046457227558247144598382301437010530051150249163760138206164745137148844342382357042071093539244454808366937714187492680542161535512867422679097593581753114436839929432049157985094411201599836905808712006218719033102486315786771108236161383205653055217420031028227037343606023217066898641306958411742570826345700083984062677610354920290706317398348016535173627867274918217245342502549814900590453939001519706097845558669970605090078706132044111673163247582163764288217435120123194199382656162399033509634542813379133968585116057154225462832419109992479999468035605967948722337806319247314629305004539888776904488322576349156260659434799908002184199728491069431298698187216203977530164655589618511620239096952263716013649390276967024098381187919838076875379402891604918695998472633366321979817390331148959599597717403258189053106627368105202870886749627819746873416197565863915250118376494819721632225536546448682023271122566207586249385630953396025385283122265975775167323073373721729369001007075159502403107980475523933977425989236602307737142834414611538757416113419283694701386629790174003242579451133217223949139039179051353020470404954529694529238691339736367250408220272000797169288222605930819766907418399645527313125661909187073182242538406667026903238044982820963806153751040904495457740229647754795246403313692306163669488552230397873370156917592842568485876683797446056261959410825840576563301014922250557474253803847175796487352401066483234341017980863750051915708600650971264053869237496478258528835380987954717303489026817046619520197767296854386198808041707792661374992129203638455329342224019758947444371174401685324808776273499501035492842905689755987383751224065899655953681983458320465848385332380677822680788978255131150829486278239164421870250236181431010221022935030590705406859657408853123276719321972043567429292583152430752735400645867801059099623524446170739935019725616065112440043934754055106646272479183752079582730539371295968750136381939639133238674523931064448829190694531787973322164813187299847397002902807247072029600674567121238433777475844506667257251036630876267531131458387149951888036036755582169362792469061998330282637312107216694373936881021141130972016091198075061098623905978056042245087526986190366599321574870041276286216439057270294549076292515688038323828060329883748210194921953856475093136497428349172287617613362895470390506032413653796573308614156082663396780457611619119090874340652507295481971474744200583405232814961817583720505981540960740575904335182055275039839375007416538102863082981256089068146445216126883482987057175991391096776171295569916281710598467717172342878870258733394605648846766582801536002016148994342445590553672298808609304437661013891019151507915332500369155410759696582428233203507956320963938353595013646368224685433886221114060405732871360820083873857729848165375247820749776114241465826541458234616020286646457322992027680956953503016248554125657563970084644591384715927687411791230939410284597606603477186557706530597125785530972884579917612996635767017505355215445038493292967871595369936528085956565541548213221433925653535520263865255825834050669432832877787427107835854267423892077240395436560730650795555715469365253435782454063170907156995881334248219977103750006130159336504616126723168370852855823438055850474289820128925890347101244126878955358528153025638255945255510254339477265142491044984642730600926421408511506551862154740501993913442526884931130199124008542940828619866031246885132381186740739462820886204008309577049578372259535105401500570491226942144862327014578319465568320289213797532067040505998400170928348235951739547860714364437320766096659533041706465406726177614637795994513211621779433662627196982190854632873418239907412479231336525607973929823786826436105573898734698401101307195928644976649830678220971620926313460185102015462225370539269493329349600559090277364864771488112446242518880509021069499170176541513317012339045745453893422883055132345479148757082665107738791763842247880957229965333432248149311893443714641268410980528723018517294896285719806238598894710986537639275107435979373832840388714069359724724076005052920520701416256101298711982839050088974760393882986451506360368000284451327985223995829249680034566670514253182433782297731718373485072245494362146566697274275215312057176363955023702729043654697736619707687656532123964984158450160349845118275725231029542235012601143454238764845417929266354037499889094101459409927440768145890069191347331552861356975204660219244454614182428928875716160862320205656705623139680189545358195945952628950697239730670536291373873687709388581061248685431130825305720496502244468957271334247371250441441045861674951790938110158331782675644110589073994255934554283258854508010120349324640472431533764861575300467329053231202832790967043054805854026597658488975725444887113012375546162484950688474264926760763096067223818936175508999850999447699419640028065743919055905011189255803814226434559685905941251759515229957292689786505087283673811365655004309273581384499585387719579361803072753716090089262220058011489966238256830169977479104335085103067149203816821423821975905351014295622175792596287725839189181360611371643994340024689466334006694915602222429611406551100065845304461560664472557414248131198589743713499760988201694412769663722559158478844694430366151414210956464807139610961611015846172502190285864702434652769940739387623352578874372141938787440687123041997549843512678947447947394590822241220306477164734909334492554663146139350514475589403476668775378137304427598027476921778025608741281613454984284549979440665349437264238752916644076899851768005865369919068199846832155973931903038783698333363480288108458780339256941746969232190129199281212225422299786864077157207588428672167017975082447061249619879882946858547673498464528102757966927117368175550065003886456973256856384968133917222105898979363210246581915906828113930180067246257572458723158315901038641837520855080756785351987849517512624739994399760040422998614383782088965847003563022405464290406696569557404958399368103363502338390028115903523970121357812612420432080948838253172350070363779779115442743394038594504584005826770750937099649930122839068169607423629931164560059277982981448529982712729638492871447750712497590213127976377309180708011288166568830838435467275772187043105118097470375597117091906514127080870530813761832860892831978485900002452416623299686034249452132744909684301694267688853049775271319368587669087217554368058473604063494459369352079818995973799039612901126599746373114147999140239760382979839336849475059674386542874600254722341108465128588730188799873831152987625617522077963169275034628223792370205529949469255148607897965794953450996715257383635818113448986878182527511357829340620995550496579023917869511489582082523642729462294216419822523312928825940039279818039369934864369775367641692212879481979567069938424627123283157226895178830739794980747894805702487693681695403247470795815960209517134122630824635146530956603539882545586177011149414237987519717059535119162202205996053810451445969280675038593358748618144275941773330056016412685803736351988249337722791199946124606813833630310546059026794680632098272626864983713812013817638124575984359411520090633517951480681012379991562961270876844082914236644929566495054274845354314693633147479637977177346238780679284137954827941958141589049178468450068504262183362802532547282924712949973962056163666533475744054515059549753590907466287113472364866263367180518690684466667084827323719720035485479520086866321821435972392646499012808031303918322802456009572280538091691360473595127520386082556798862446568466973822982370478149810799595498132342225194987056710381494341681441529279712446636553581599327107867189943130216324990968735794614151330473777095841080666682525445947718794861551850313778747544845748214031687076139528053722706868649753629317853057568612136829475050693261442220085121490156018087367027645764650584099241054871748148544642300085555748416558108578059570348387227986779369829201782848252205732404822256397135875876547800467067411171436682599818649543052192209659362830094565929292186932349397473547282805654168929246844739724974935867875165799924921087551414931031788349607606841411402894488825268176826169894873267740480152292216218957022261658786918616605978173187954768416679892398275125182139066403186789389472496161977339209409280772882455841398193106529968422560043328578683299828293634301481999390174456572729632884333934480749987721326805854186629265989744008700756103106762539126790016010444213804888625554037685167296558171303438003141217553747139582702703517756069343675018852502066380683444471807127621250575658037710079802849035461317414432025010313680721510146000691461124079245800535349467792682910618641962415574151149353812004337278736257431954090027265632897840429781725431243878444632254333681382173412107830429750708734617198123241004759090689123143761435561680007358426240861155382704062410764764777373085518878704529486399479334094770949926522035229223177731940009057970593789814714399347362615392439320594758304253567100487430846658244358806249186860167086920442287691036219595936645321975382997592231114803602648166674747616411922441484582756208109825890243105305561674178511674801068491259372082808701230165259686036068928838449310226139071411429745793435962356027194818916132886704676336011907867582395187528526657649449282162244644453986438061287953342223756994566037675623765708263198335959603245742845139882188095447310564734866816753014899513287702188013379712587777459807971024462637216564763388115184503909674194749176493904472247949846240791610095011241643342044064041749363048879753826977684031057313453123003435954302226633320551120310725844399915352247909449642119061950572844189581887025130137145718449227508042352195551647884102168238934617288349830951657072037178141390358259125187769298317036799682711401941945159651330892602769771061128734031062826977500229470456949401109471866884714044478239322508149268774271112981015126196400152917496220405981730295651871519417625452945744088472373729586814456840332876481600679675979044261172733156289077846624533161592270570159265480126164729335204772340395511606397351683972215618961403658498350574692570420149535375311122781432267640234545246459339307412240056964999979707510901986652141927974692734045132621699020040054588157665381089758609703674996942052071053979810935055662776172509337720284206138827381692178242453949327144640618756699663614361420562784559834971673212458324250300208633935474910482470662873306565066749977261534846569961416710688701462138050956805523765851250677293220549739750106235913798426880011096955936808567162894346903381865881199325732208342862106268512836270348212816922747370190896778089806114025004493228738524228225052543291944117154203855047883910980856084641756011347300278110151627557056940695333146479442937227369365992002810773750590828215608561694031952282589330055323917138460894368315916061438126317446912586094003400543705244625866194717205109233933841288288316723497975612210600966326458181930363484938447466735914028967267402966121161265965610677951886757099844772009732006246500759470052525289270823239951134009591531958858847276555454259975476696492394005051129182665510037408178407460271953313839507225149761908961103130195757169726783471794765048887025666627203772789270401493666860172688587386584663073718594047328522754808270794338187389387511624468931220016241969993604796412719781303228430318624649196787879854010536854180684864344686335508280637340213137250626666483248541585988472755858046299193813392032156281979245154326031125837924973184485852878392029234362796911222433458139400166533266703811397969953629192583367369959031187508284110165127773487175482345854700377498856247465689404154737460166195486380099519660008464230388121132455029086786040472141105771409619287184955594635473787517142295205988651029774915103421848152530147948113160440724735068122071284026123328845000506291929955052217963776759476015034105260001801310672523280069701906351852091470973037705016172252560977295690025018061533769059024166826568219094131830047510011712722606887432148732606626675408325669039583554390373226386020450883117416114388094076160565114430501371600695754084871934678134362890038162409632138401298098704536209328994405954510543332348787384118773340371592200234598080766272083324298974317761439627353872492067884928470334576861582326257301330499835024214927250575636226272194700651986037319437247700125220297429039969312448512760152051434125967363703288088693205318598208610806350219472954675777586240706886196172837802376255261507850532876470862805249223460827648181346344563926799837400318032121502142092059903103889609272388137062067351187059695724915316408970479479080007533008142932483182783127767659932831277695897782359301691116761930714628367272277112463760085937786228373568360263909575529778321747851073291217141464270870464596345257843029306118510204499065675374605979341978649221985911783943384974017689413855251748481995373267536534592310754312414853640842097407898828665545352393653520936108977850549036720577224850902516981339650411852672390347949037963214001064321079822204797695158008704620263715311833891436457335790708620135163964553430597255188155793421091311615112448896906187021364497703370530558398748792683009161544471112966769794817546079246569473327500969486612992346327864730883517005423606145425165082610660122870992971861040157758688051072967115860713596661031895289313386434596248048514966240575922470220036104180416515319462624046299973366455089132807846536973420710656737079375244600778863697191809173821107897711014921724134059605372716929486875304756900045952507647609829835023105361558613428946973345506065246673466716377141853983902086827311862132243929828932390406946707307316227984607948284912533241692947691411784516453129454557303379062386549298393150595930554582884254359497164249331848150033101100325471685987574709166837268869365793535303250559625942170103591679900929632630365593178667094429440064305456690875583057671002886744878376374823665214732057432746236982468775194189715419460847301176404890648500925252479981633364309740172016123562770014421525332214033162205375184799510969757184680510114826346534871735172777217595535367072931508075374915616083217430088770092141306432105512162579228945206876961917744322756487003157759582005044260320234184109316043038850852033378146825652444672115710929422689540391888649252626206285871060144308083276201244402160492524271953405726586253620624283406496663131895465451955673939821228287612291260526358557090098136333924966997907901895829571093231335028617519171658111248780938111649681596289949993307526020883329409354415079101094747450817882726394135600927346123574040653194276863720508322622513663116112613943852764355317866987523872538724430150600156769352636639321437609780126113891482542494000621060760787008713579096456362196459734726608221185041156017979032468348145220876057430305761891286358839832615532390504534753568141527490680183762826202125721860564585713790745259217848999242458081961946740671802299638826905705774040372547559138465342975811967480424135109621626706086808786784119270209185669127092664737428973873823295331243028204153204097603086870711387267373615214447544634096651467842436590042334794607245746938769990742379460336690252521489496556532755240279591633793599077274966927904252023974706286073574754493430334104710899004595610086014677783769229369344337077916919872901509668885219966795178317382906908083546464472142425258000099647839167250876616152382154859012387929142911776555837456021780766734128916171620483219224384199863406943915667301607013128376585462085742312874875424243061314940161018901814747465365291572415069843852017891013508399667136860030525850163904858515604430466091324718684014487644946999363172329295117430123143997402145600409777383034175098111562890340773323568541743942947718850255871255945826908450244803531183789002455747170253182685295606225987682087726767293591343125498870209735614554668308104289111087628614113694247940492359672734433850914858605954513630738625971020139024114477746389845407608659114220291759611904566637525123287978623141042119186237935812097724322208291203621331792833085045517484021883223732546959912004750227491234337607695966953321819478086324256062000455916262918476269846121039066115634807651010977002300538435700090593419467125688679029522220932797764185329072703746045515132423825184010236537928623736551685167084679165465200415061337067053997247661074626284885670712318674075760791775184943731346878899991432651196295717626984453606398369921413834935298460086382243737206531950138868377411894852617878810635046120659443987864867403499901600763998499553862365002345214960342704743799755157867205909918575515687071554383739185534705120156610256963913310073793488258206624341886908238600215899054556934653134517654789215124497131819675148724277741576524141037096895248545548896453925170690685456681516505715511501252801353198169339355863099528050515425742690858878976540416303845533698159425306139790091054746978925367556211461541345675925501119851390959175206185683559237267908960823297757208102895988257275959581997206716542840804402775812759979654306791525356980939059778906496289894084709927324560858674210127330306149529059861068493214585389231590521257446401793658866791705554313049541977153204524441058142663975487679895666404203550873289797245886394392483504246849748490631461273486773573466703077458526692856496100568238161852938830771968103513609920286142240138074657078527682064238307987622738019805906728723964064370974667747191110776212154641915002937995156850970646425890200309498229369302502216317933643910847012022409765690211968689530896687564217494935859409161950463215303709229436486862039414537875820506270886191095142012553582639719585317029523777112042043018609553817254267228864437693298348905755912127865647160435857190695533770049365464681197560827996864353025520556391343451059311203495715398752892434513926151795556405885964144857384716950707125314436627152122972657755483197148927837544720341364126134018028333688338149070219112195216082814961663906814804054035650443192365141227179500927693216604062245790105230319389143508875331794634063806311032716212741033905095128018435365992783778384673315485215111494328348976838726543637125617364261879046687375821415623807076603150664886656924203157729559909602167489824929363301469073981542867159976426707354146969732005951944302808492148807378964780892933182400964584218338269866046930985478608426912132842268784094161050787519441650376236591057963129971636992489604319934050398220625524886602689051430501220110009407490322342059309001619602079530670025754633371260359963212306020342544605685670791194208516961299242402968892967745030013360521045101164583225557202236732566374744795610166985335488938706425043395712687204280769605652689876457463362072778487187993792553744144334105557034562525247957760821452725721774137562373424982274783747371748793002662176455822353515807693963955090563484437441590278976657167163372877886936684269330113591060485212336824004803254992650871747550549723424143075356296337392201372600823131356904667819989588207312863304283470710884309800129492882581756187877975295772010610844837691735838698170243774172013060700943669448654639886183530469171666171837521064414400952695446951246119458308317576930474496681018680718447456787060507494376085271856271283406008064979094448047395212556553719716709688826485289840826658537483887207815150806587505851010740347495420129797113568964625000464433726684868782846254900826292397521332429306626802820619332687503956104083835106381387915579430163506967323991336044742707565640336605695205825088260438792853028313753078431371565130281293492427168730453933942077813874949717773875429463832454619106987236208623726902621865882275632843592726926894048971936970566687703607975026542215099638827895378080571038018021887786109997623456339431715911536186910303057520433168900890856861031731518066533756094484324604679542992060304305297661498512754909697264091138496326685585529602914470220873988418608415608564691945215525675757086198590954041826218763757764400313414024881660928075001730282316287199363557809516349125313088728651793715017800609972962958612556711442373060946078847462564823137450621780050210306508299497540422914653039433765229305253470044268591847860156844074906285228803097945841899887836304235919215769089900630053102317957495678685146727555417681115148065704448576118573243385312511909725222324718934431976501107573894468788530212788628831208492701368223517239259378543631909519360433402367021661064517120792391814084752954667840211696514614289734440155138886601355865163314417838591961921834971810720565669560547925142117930786650130425473492909142977005450375292710540982880969100136412301687301676280409678558615006429321826584990625922349546051642463001145974516630735257911390282273010317986458518177942233840596525871446318302318334984061921002136760885666347717863624846168693843779915591801511578809502023117371867077728511280793837433821747468713299790829813163607276253745335738171750607300232720408750080336130077839110622602688117427581916454957349348715247313424338154443800690761819604904831780161092293237820270325940792793660802829983073210504936610910740074445920477673800199109466234872101845820438836941565427418854213855370363205407801927345050937614737319653137366041084790833051568135646515387577957662897817626180532452605856399927540617968407653619190987406414663281465207882264533545444548259017976920433600456801480527271188992362275562892283244007429482366163598392906090184527927522851095643612576649528488456070005785055829713573371467799946452727948395717765844417866231621145421503801892365284443751037493741798083195186387162809197418675984767845110426627542384602028396073389717187446566578108197279239643176124112893842735329335771041345789845226215619242559701699392301603200100453620202531104099345379405394604837458752980787227380305125301339721984869575022153186457959275327399032222029451247891374961178938097684616273970006800502451960777022033383208371323287535588135907008584914746661117622047373248476968707708695640371608586939730702061947613067054092836492307826500496702522320760145968842554951210219880641793606348317274497130274775989134838296549140978566437749801282667631762252647108909465276404356098675409285766847461621701623374853328137004696394565411612182250646688730656245854022470619866172509629309308993063071949088483159000616222868010291900338185484830014865272492176538848748126394522168822246733545913421632719549676112162509235616621799995524178742132461086604618750401392269008374934792720981842271566148527203544598506207532416117396204784199956423424082540679183234507392622256371998564299235825943368466039119904998323074179998217465561972715293290705632843415380331263096407390759060729604010773338723655628358751942334347629288906297811855573926537467376495946661606087501478123686010444553365759276296765599841967786379629275155693763914783089761986429754256053072238273798074962047668241630362436756941084872678238986933229538540268393408057221677303241393378279418970531065172411372952628145862288495939390733374704655211211633069826104754207165103067006329351865588000039820740914481078314471083515824397249276666279702981208844711165108616025225514232646979976079565380707899214521612077716903342093379421517778211764762828727397814363309665810614749121059637127156084673154364347973880582940144835104377940181344545688686997039263365674094270751112871028296082596917061557848022939293645627699018299576375112655436835214566167339062862574642736833622986544033421627866892126117059956931944307377959718347935623090876182426252254749427152654980349493437489407508135288920080600543519984333210063956556282531584342341979876026249186263834876313521009610096558426503438386697130443726760361043719630299976625292864023694072270419032775643341504822580293611529625543259135645536869740566539115462011409780369318316297256302781153587560301522354171945650497172983991042235585219705032359012375782484953749434548884305337621180672085309769920407519872673896039819159525741959184568864877209078195675795620693679438037139423488900706837727625807632688518506220290659194391965248104077910365890764622456325837068352633601683434404916390944871316633951813688040976248216027649005409269839652925585218949978264731913883196316136284696183716345818805360398436829297684470046640203835839556894642844298850664789957838036928917443956921735924271635733712304309995971659204884376250390501088914957059670460316692179639759787258715592826991111274009049307697224703396578113451908910998637669522915240548223112136967266972600988940492960594201904078597812967522743769725495581837785394698679733991737679196266611853232229942056796739680848903433670260355825244684408452084707497195744792417420316654881878872233852143190526679457177716570541459504521086862091542529977625731630182649758711988222517317108010726250037602921875240627090727105495447789719711968942171765492081225697775382011734631202230322866570924083962572782396388083231548002861740425945049561268220358219349147711679036270714397721640553681346440072267230681496370730240569151590943829205066027026105202916672268199039794746325485526485104090325386208394121837693118783414603230642240840197775553552425320153951186415444956232991235126357882197624485351442487676495933762652602310721326209044961691587810771184363322688600829637214831803671344407640396440438163544530068698719900850463392454608121436366103806294153713135696291379407774950158510247137980826413128729590432206677867145427550066685531333330533779285489224538001315893602090246713261569698596334336296353089666902783135749652120065480796041981131708352937804864932876377766356804234090034744518643140395044573878362451388604429141931186789586918428465841504895568138470716353898964806189891284374950663890561587379312298429958618458766852125246356994691303587566399696198840930659960055420368870091602983079661191106437643562341288597461960521371849577364314771046295428719428172231187023821311170286229278556491480452015389755235058006316712606080952885918787926350730237356900187007079884095379917222711396376741548653374038912360529096874814246906032705603868704171182165542715643479845191047472932992581314226740724406292020802829867358099438764634714291808893696352924473599702473536678648735717067006347896607507791344476832333092494751266510779639874163158529220522734791776921457592895523409082048918381187415461427950875835460729374022920769109740523601226329867057792072272572427313741164706764710839109411410478261509122561373900771544529415701399717620881296439491137940354932669022662312611722267163413971678200877093799118298842767357275107095702846266893537782143483783027459826189407402009750625200185882950040910081145547075762194471180374093784436799545656718035732035192684415233630676107037927475768309655145635184212822211470326530162859697345071300385854834391130722105730386451840586981972397622571075673924330897917478788593876263804941314066995418958376365355649198678137010121160215544847991962841597666262407730313753717437504835642442178971968611031025316477439244248596374049327408013020976535319666773866513488875611595545981062383771693759067010079434822616590040561837740637151186362719972801540924919946560544266626084602258249565107088011193752695308952910280376004942479156246855040423017256539383307144238642624959911699055156744463528376475819711486678908194171085562391360134405828565397918720775268783108370479382343588304358654308922166861285053550267703664488185051586917704023207062568970799201573817656838329811567262952359068130395472255517371186246162847790291419871898829017898566560234390661790083699879849378151487241033567788718617240320619342344037006382927246979049851724331286992247930561393741424527989658397880011261638520790824945466106567453970801346176329412141957905391952093908614515213228703385140907835849094142094622484338416045406331978439257506899625014263226387443477599944125068283819030481942067161584337111080378792954719843256258171321006364209904357174790896820969300641223295803273549981109234403429776363831308873201782171217153164693129162050410671501649704665936471873847765445490051776906541676686944913420374637980668154690917409194885585948338348256348303399375253716231489369969314141004455389084347899637671259158900715106665478797572781001206587547823370246229752639036276852463659619984954155158589131413248448764590299033923384923638864327518977446478720605055208221754115914461618259647557246609967395789904837322130300639199967918251383997240474435567935117661167843320509389462908423858690095203458393622491557189251455402971046231595559337708824021796219038833554814895087625443562073245830572973588804853559494243810544383925837276382812986269187179278411378308221360106038969227365366995236978463821066030303931895012857222171388084019389449731202969627660976282132808189433548454943660790272565874719205009336325271668518906726418954108064749894118394560218097428853628205543245209470405008484002165184315665921069656429372136942005090596226655577410633618602616762356972467356173402727621882889468277282909669282294470021867017377373949541790437559876953793735289430973505541327024556411977616456944094659256610373211628948906038445081730725598890720391929390475081793958240867628135495791440946584521346251652567000469056168329995816139691146397208906564894094630739403016363170391358136118768472209078741350024113652992137917859739751287993681218965923411526805999214489806139156392843567686102607472894813268171017604626856724804260357635020140730259804297348285537996016127337543970713085456690541834467379514169330134677867357677717783837497129031451988670913103026054676047561435593413800822254285546535295241777724785063822403095206610398388971541851723186094324118423648328037196139089063912071048355711904917786282416107694194078131511586338293000771382997823600468446312786740552352117418229002081609479062328985244888320866636712907697008191792970354524105627592696416636883137986140243279887380836474187992837862141955869633764725045883651791434671885777944332619084409307452634076151563031378977758006139330147553923610143454770308422415585452522338369732652218180738875485791244223774066371212481706157314742772599507239322943770979673317766438092608746493763448492338683288834632771200407222016250482596595618444827925442898556535728057875333051107933178523260670448439441717294767728747222744753713892846732131127475301919810313250562722458416044569338589961051125925576179754341057323277298326886657476919076197606807331980754808740867225256601250729494270552761557798993302511926578517346728051308129341599400463504670402949559335353427832885520658464501227348694659110257596726880841626161985461317053313627044595989100289030643242440352318376021164933217517007407797363698483573926926077178995881383264470221118343099486013268817296025543016246682570911877576640082568500191327131210185260980357703967057860639029967265670297384248303049330474357961953545914317898381388651509820805044886776791332846649328480701894582085164066956105509675777171413850235421721471573312025592623504870866592906249894843830912770411492808918478733715997330562731466943591971692635802462146634489096159404106270790748750941073750096188174174499131909139258885819109709748690079706747620593835133033568685560706416454224736260591482082897056897108184510042848991055194198711587074893421965478314254504207278691526231390497830044621194864945118894124378682599528786273063565228628173078370762975535533239969001846124976550647538656520887468020805225354636635255877388078101457944574786750545235124665888174989615437974830469685065607850314964925564014130772010374384861963142048733856817761257290994324683759195839593892342617140453919205235306415372572026127931791281611762578845991016891233836730652944938208730967448552036954733735021476647586060797600001287453510671409024910865197747062757241322625116488570471627617872859677033808324510245170393383290985095071770127081037248639830692584484360660708937977601929760315202440219717576293516495730694527958323181935085372648220436268748248762963734111727784902077269759100249020889175352268353605601286728048694045820651456218655379211712711507862392991653575233100319137372777223513343713534243980590183438952256959687408850162678711254256680909272108081706203684405231911663931569818391914455354936610913409620414740178161251144488478154643291548503788476197928436119811126950104017385335179002254040768921742381326615399709881344016243227459599794493178275615935815848423128097305637473236729920366759419840790111893569853548740417888002012900979715891878330288104374853453121513925773952882215791271388784753078660010382176549820325042538822091642426595951437949795295044083703272390810362172067502894146831496864813189671148062992325068059405085680176318780677952329900727204389884180453361811227132435099348669279792926439464980257416946153732262713857394278438539809477182770699467415520373161639977081418205399689683672907570618594287249727387778835110827046957065086864479060860093041624856338099349488316830182838273308022686604349197727534525119159793564956577577258667727785725392361160259820420512535425713049809014216464567045903031957530621350516585299249595265736682894664337550673978408937066053843579539009168212994770545558407981605172353480457231459031893897591205294576365451962681734531614732528608181238224620256652461639542213102694810797922081680313971728683446915331870244750642493041563373564947261988290543225071168919033507837943969259508262929227162473290299588682451710037419762213908626813398731972367509807124443888527123760411033402612825978209611846861313817885173945492543122766212609348321091659107850915739267555182446786953251931057147683437798661564453073083673061369430157302229339841462848397159236521184409536782139371988269994266424397362538499239114374144379645875502461566558288787238958641389029197885193569090227523018984054437206260960496176729573935941361409459287352145708768004859494721854480666994354977922622822924560754194975180703992832987948312823686404255636337293237611112737010368924103133093266036644314682599506773607176071085519778762654218022993742021654540945264585055834005803768812141970028923123193478144710521474128662528265987793133517041244211888382792181489650118078396485483172383979295958708174054092318935895239351671533451940634730505207684145787765972194021986274382877670429181094811659211905516967747577686053404809489648460577154703632375384716512050465631026638518129975724529642286506389834707293710588328521079437227982364778183312637198675523325208549538640225662452125972873636056073904460181200482899710751770358002356507554596197464588826836890253725139820100679759860391501524021278382537348094623257153959902767057780134109996273106130974763005866099304801106639782766818483946907723346971850138912654307965160422887068357341429751561883350266530951635550027651220643084574156901505182170013537670395767199452824213701459325350870422465524980451883121967189043430261578191004796556929203892513330867895694064591827754013755319854747072894470217884823356644185678946038586432968481649715523032789659434524281503335230859791914066506428961210774962858092821669158900600504709624877752513200571562829625157668778304025686796297409694145409498681293982488294207419351865835645486512651380492851103433915982854244495414731364125108565304216199710814032755294389018491905746269516822876942755514948213853500604046241940127901382226131177781779416143768691063442657050947010788909134724413662151873591980113842986995490053487573862174167197655568230269756150536136930196797869450046244811330093361723515291533736642883682886108998601245583119778992351248097682915618353857550632418752970194559058347812379033312375626071803176347865827321317070206792125858550325372094934505644979075939105572163912598611713693337412673904759896954008135091918094312864959234064528828319495050871228242639307383933600176447554152729810567485239669289948276392635446954794072412435308158959064606009376943300902496281656785518511391530135773946950393062475217400110938504038009847586363736947757111818671558329336972332466709431590798108434100574374550208970890290887453398962955657942688834764715226643639583938127729457885571687454380622631649868178838767949330600117074777374281487896191770340174151712061726065071819977093578955168339336632417339919971271454696314767894614225921628082213565275999494795873941110861737436378938724688017608532974334726428899022441448595805296708158395816374460195383689446460896463639028287964267647645380358682785615686556467171825851177779187033599429645281461778097693820265462253740541901832271489707835160337529124981164978382742010062111809748418112538863991525133823002298919214605930679513310491277888471781535612263490128608862376195752638684451294190684279034130503823792403988086196934633738517203109390974336679962475175266812284164388638145095006999532116332745078781636710729828721914607177416518027956118164585343831727246431313841584920038265380115666720967469521433770366198581118445465624270435893531657553545180854796907813221345911273995760831626251595352605377018594675503458924037697200118787448503969390766014738573829953768630116011192486396080754363676295148782458041116312373317512564209872328838560644213949010094956639078386250046718842565003055271730995850782528791801327692941208464170405124536756283598865285239233803725482547703857843455939550014352515520337182241770530409251973247669333703393793754331121828340586895274480929753408155959321766449460329533998966904018808493437889879275582308491875953467880235197166028385567687686382116930725903779142067417918021741672376228775984255690449864321828424926997711371879301734587070177501021305582706770200196539169608668804456641089889743089323411138936017228511788312969140158944866066945502419354915589740423638265997639564268973911123743882219166364261990236651235424265619503356777642151970437731541523681205797398917999832313982617483609913332810656717739588032529200650054211338659537683166493616706675878525889221607084869418587894359654698702659200533942286689337750600874665660647016632385408690710235137104727789420681763390216506130917661537685507164367824189516442123662537058660443646573960970163239107428609283754229746956319132022136706770928787149872635038768680270786780932783803260732173526484889461333117037033881468728573426681784761325304546500650401181780677886164561293899921339225663059897312458478093263752074219672543813007568481176512593980450110642463732432606841664614936386111704016243717352042696597288706112084827392894596401110050813742311030566474674286149968681526646376591000951421709164151293603044097292056574536520656538852495596259330972157563601503621375404394055886762204888971511366969918015486649168569855890444941897559784563311797981652814010883310715433767504696786605199395920414741510721011481560231645612523538058337890313663981801367821672466677436760250489787321859011594420452642847583846261091278289183668472781963085889529245750908962827903112747416611214658471903134919979406959551883949504270654885280792256954072551864637681714368965542682732865022007129463040259750720249441757827998069032444867921723558505806720038117278250404512237679362834174573942292467198690059640693926126800708565203571409951276106110479122351288658003691640331563320353696591415036301280575897511588993275240005984693363072173629420365478302264351419725136648768892746229205930317087808093495796359069763110815835617620875143225032968189234880176608425195008348228506011194493603110675837141581935194384956770993639549273246333137680457625999551839850939073251081192223547301297390283711488118459977787977437059878138555496308538293193615475838905255739015796012931529664304778618627627242718147208807788550402505981874556335490579191781929280744624816469987961504217837742998834814538123588745524173640122874476683602636021301003447804628267885496947185793665711788430308913356469243418160207456127522794067060142920573216352514123495262554730918582261807780984866582216910457675762444207509331305776340757770686572402888044694715289705823926574482462171567232663304365393430217473911673723861006341674754318624693937180893679811377394313678514699785913190188756490685591325014652641395604153770832505143769229085962871686579730232564163887629499461356865012041739515412783854270313502821221154521550475825035403087407400877928421223881102296732268313968261694245392776677251278023870246050628009746469324841462263619058065181717094641603390971001867608752928462809446238697197853253770826348742247294157144384114027269405556924739549100624789293780904282014612545468831261162562368679679168222573581223480552680057308806056720501882095445122672020358574932873080259554407062029539275893958135729843365465903005206832749151684853838244539143405625831279546871278513315621073008634783801315385423761980737191140908822392857480926853262878780092122820456260266288121794373398398633023300401292325222724460258100655073529118513186319847475198686572321449348895654783609849529187890673335361533601417944323443623756178155047667323637204457954070781984444102895449807815092406639369110090558746986239480410003213638106713485677988248302168604740814788692697506986844812588198923856697572127423126843547227794049586874338987717216186028416313658649266876319860417295890149017640080028396807439398324726094702450654226842440873068523652501064540617530310261118406114426307720864975909230280975500366159896957026651422637359668938107116143597045247962358351808315717021064810593357353118990593228182977199661441678046324270390916588174631027367541283700396321371377169713803472652726116145173398193061530732706535831573265734731802912162368873566705641154258478181779370555430388758952787901088934568437180611851057684621143012560349300890741206478702619011602223462812048866748308662724415062260330963510063162744409333002238383241272896336339404755906303538464917524875428919910503141420823461011025122487622040128469975455795529278472724231515723933937888830430825851473381086931625805594675727121628455058970780739416611792136042915784427357737600263861579058224124676726816906887230685491865224560659534326314805865148715077314721067839191428086398308724538032068438309261700973818430399140158411643125475561494884869865670488463028405120554772922058471195746878597931579872657041163792840576457956615761388821502375994600156863028613350120940728276033827838892580712972487746198047121859462151638458254444917079960162035565176156197377463947325923495317831355043140448961004290806213777601722376259821599872041957482316479994409660473390135176533775929897475865741753167117960063097162486998323125757111739368928070616536414455911636309127151284610001106887437831829161389855441778267581522853262671275938255321979579998439170057477840679356723920756085675019298604410881042831866607141616874212923012511666448380976316073381928435507316786892895610506598322415843248235635401515550586374985228896432186080788171749016376124669079300799637377170456000113348891846953101821588709296954972769859580275993557933407280391660013363401409487429138153270264416106533122946134023991575153828567084100287665910767587669758623948852681119678724486265656638152677627163757900877548149373315228102523943212351538358813186124668634462314716751008786765612273827254463183577583114041977181188489035650725023263941041823151918244302126128261879247723023522086985097845028792744915746794960430853968784360166529551103850954672783477040994764921995496826709554231002084583548274830807119228329657335802476803492178281734493803836356324136005743677449385632726973749000849751200120353054705265631736582970392756976729255404164266767272288637226608699680240060114562778120684604432874621100056232598580407738288909722709953487269560641611823097769029101391535757678748361862469652262546817835471386309678022418019816655967913230945111288652862109551282818937685695296605302587286490038837185470092893598984185562284902160080102395291209416322942261089365521800464133417818004304168790767974801944126292723720720011286047948375518079139110227415425904602637536444868597750365040501613530744730173682518890166475931310199772101860277726700333918646111623875058106659593996130989489044362642955254102939924360880382665899873344714333471042158847122922652610333772601744561799075972611556067835207302619831687884766742082645282254901113271797567812778368845935129344913166223061775915691924481299229697503647877543110671641359182423389979541931293245178915173734987123064285191124258236415024183245839571905049697902125011496257139013605979792469517098114333272899885795275961449583425703839272326310852774440748118454502329713220088923337858783042682367145864894187659581990906427832604976390097669901753255437933376741141876893692818874242826430718422742975138789639276535769583653645996984419033626112051722254512275998763027652089435557441928166187071771768539153169502645535647526427097454133888026282822801442276406458610594582102411774342622248963231103920845341158270720596116664903910858433929316523401533960321592247154773483191208279375423806807896553410413022628154850436414762616349838328046067659994334972835561032612911308999084136192879513066714588207895757352465892878650855234416175952990993454665337001378834128356745915785660254066854283185427813686809322689338570541136743981646296565918502857428871102524195614063074565247290652000510001385049491120796653656237905149777865860186179022256255091039472884638021882964529535335131532759798493135476510272955624016534431882506279106347782838365337321760773641147407947252360172882427330955104215848141925681822013466601835536700453456853948307046746125136794397571735728929023136170262127820880569819107559516124188258181661275251263692825758712047140398710112408002739180884755218697775484745294635518255889418449593849977903267634858516214002285047142063691645882620944242991054392006903684440888894613101056524749853142628782494915802319527274999521265766471672752381652144155998357169792873752440635253132757736253142441095188835410390207110367365154089813449530371104958736693229073141279728911342195952922900291403906176157313805720099513772318836720269991016964539358534819349642712209183131360521169105027380858315545322961716267475361923670182821315439449676886321215164452492706471406024086227788875054757189299258463413362207166228003946449040717924809399445461127467978774077532043640750964621259428771866450418301589640194106132367352111542984808434452082871717917029980251296105775974136694925618016597844148049061400140200744382429377004124514462758974165672119201918945624711736069264445664820808865546012864387658678739374718453081393915596411093697305385099869122618741531066555263902383297012211872530212052951812346427898957128016118285483207601525272879359750506793533809337253395148205243351010558055570215304290250545109070317472722722385196792884604766560276914679791196579254384858855619711956902574177880159329668793115094340824314843336584047947376388288978587718437871243622324794493450934353261839065105065936210909481255846631778968339723659887822276123778311363968079730000405918537851844071542527036648003840802203407717979627789590683833544722839369284386786680309163240133040824599781719042640779672567134529763635444962983210475078992330126999948582680855959466063385055462813098828067321429034292627315758738355921984384053974165963439814038493115441690847979040551855450034222324041700094373314459889206650126191044794929826730544273766581063144257158654547393574521694035257990408112722507847277588916708038752284358846816873270887494421524365563038183105005303638095861258185681941146882249686737416141878967899402846563282512463670250470429640726775197445635658068207464038595912829482305519757424901552928558770764475018373140773332216687455046289351449476053690095032601177324715486273902826501446810131562379739561529314411662093228701799344589113549521442059861677438263935453026970186359431579817867626064565026642189368989791096619440659902512058528105308252761336719837609312196616596480665629501091941477780295130913942484669439658810477357090041884297402647866395110815776468551205426933878474592485784720176422353872805326548700440257837272923927984189647743570512055941471307541499922607013530813965938892874627863557938136710608145327200162624760899905471038959079407513617246484261569228251532611091601346130255974983099758061700011823108632389934014737647851617912567837488630962621758431843587869081366088701646027406326517247391272536588410119979349182353058364628195273902427253991945800446726044614207326987873222791075902729061132951289877963630766725214284378049707319974758114195002361196734784075865398727955628750495859443470427136915730631985962792314342314353060766853856765274663402219642985247091792417775282704574487549297399873187486187995517647605458416123544789155280578670308907335362076854344523463028431244291667861166013369822588665126452692765646109468866637139740629422363839577282330483485946806290869851127272349313483995004018870258917555125130304219343873409998862947127608904414302663214614911364096056205666042115144060102543849361750260869295563284423007670886717537010325483377116111179553079204380578261122925101306679676742267064524850495812456363074438679930089201790003622186519143874144153079601794005147327719999903567775012072483875172614742781283473552412711071324828904975742100489899936650241423422849698161321833476976043034700334256109347251875954847779429600105591872045357474097349459437430807060796888358405059068400850249357303255763366311043915665553978894049905166280776320289622641906319562350224542176225202863305883059098120134822843349493086920105581292181237042179856226317964246661511410534579447744517815484611689812443014461679361436598957341703227207413238731510769971611089231512780370376895264254541376284692373934384737963584445324706462284401177507386404483947628039589998472077042883970406453795531621265966591674136063973881935828235797567993889596816343034932862342880813669714149089149387134222761095629496905856872227966506204932335395214229231738415745159371538298456480904081390691542525640748535987987588733315337177022890949590534266351572597998307865805570131814778186967730462801727570979980142339161513542017032620363512235338012656943024907077990071706445156976543024285023170355497483524545363956784422157686112288699184898827406723733241696321296450962505791011353895635204973181006782443759562929988155395750373767028183537427492045815132445571242317617187813797428022571783105354036561690061345449482987932998256278017156059483485229035965922465323054379700673376875276425112492323542505835551523561806257849939936005476082491613147893347955578120690372873068515664952538940808177118797410499653501973895440421438141109282560134841646309324523320041426968282082483089819595045590069229716468832633553027352412663559414915401047792918972062253105674647516252797276335123498180298924642817756082965575054968445686445286361353798618360234615092080410431969567658834493799098282927924236120744388541718709177195830283338789982566728614197488689226522246647773965353198511509889778729566306186715810623831853427511839243724745009567625301053547668236901079358538876144048117710911387675326392173717433174202342940440315396533924128270184122077998924898665291450561158964211364435601679156844926994003738148491547614525876776100290056658857997334532021328394776254314750592183111159102477106916461353582804935820419267743289501217468404844383938957835427450730658211143549690162123721642056087499429903645780104395439651505156524174973486251739486315606608437689608862365005808588528311645503762311559033447544876151165919014464176237890965591133812134573329494400747217429277992532441436798766362799729357176709997769145022429685586221885014308126350088315811378229382714928179971637020633110648282651624547094170463148213566201745025089347168082802413214041443001810760158863088861409048450299062753788917886806942133358185634353156871452801470776968315776571057176558837770625478287252956827381001774081165939275244968244996145208904434147313491075415274856622727966286760343517643051126173641210916814006278927506209122294961521856478447607485809532817898498739264665101841311744716657296739549850104981806351998794376419529829331711641621169631757405032717416086432557146449803995838697834640714722707179096391164470789360463034902416729833205163569681438373872828929602412803958476868491515330530392990921824787588638614985568170813379821984171643095484796526488055863215216504230561883272893174117719089998489715303227216329745716288555595867385745309038520653878677524767759464963736069845068132409923579936236626908871128899354652229085387073599730095360401844484096114797813643154911947719107628683162758348900599925470208187512988535273627811173363341047450230878064725720204852684369569904138713853775475468997560178403244793117534091754173054026130243141813685689383905525954451760852661729372091556887327281626033660622633180356570762208035384366703639327267149258411284641581961752199377327231733786990226370541767452312686300873564389106148837129229144351015414654331543570135763259636751299821315038386927392876728923850443089942857700652800937494188016771527051304234438872496699850567025257379377383322516683724084052735377844965489721736925185867035198078858559410466847218073385209276231283176764737042768659329653817351398582563494478282793507637513939868484051802119108692740395425512954688661225428712372319891195628180611762564106308668581169419444276968907732316265316350726956938368361046088898834220612060581002606936167765559060735924852781665042021327000467499986390981140328847561834615703704572656436352363172928652504940717207746212025369505169665110885424639127483715177701281219244545384314854252515382873388519565115420026495201883310633419865296629386092964596180719002961910486995370997647683164776923023023744778495996662122215920204897756483042645413128464643168081821368250443061515477427127471449362992374048333891677815105410600197134898380343813152583864742303044782307839888209371704300069723370016009940527428670967831861278484445296776489180889322374553793781341018802815594685277257505053184071786242307928190822367078505303351942768951483927389303734591258520866122168840839160206245316594025342550918140477725376291305866773686593547036616425576489113179392412314489242080415887262988108958550364421764491157588294265605899413500654662028736193808446302209803899622969464289244059783534859707531818310763702352336296898748057179026392288986736824226299170815460549290575658150529369850798406386938336064101269811414371905996393669680891413531788199435218272117212762859970557051738607448522875241550396782350752163380989076107200769768152686598769997471603466200083881654751467365042884939228389220542208289864300105565701864974691924369215498411075695689996633299828429838132529409151274142907783373766846600377491926044034806781130128586936583841948662962229501139546563951988402543208935113265980935026157212892293466626646946646729464720445857044613400083396034010691971288521750672575272075068960938873801167699344811355349106285946697995103102295631693283722417607070377535150617833755244813640414951034974493430902938012339651201454197673553276606614068777608295481293736966606654518943906666003875112151455001932603417327303448600247430785245841249479659772129365729887777745405700719500578457862013124561658970504472240872846385809222193057050470529280925374125487601574543076457209602438385285862137165505032775524564731556982993856053366375456116567763550785352913846963074628708620825988259320118576787701723022476043402328312998839540912477575890821486170456749727151453020319796587453158145124393024959931474287052405406608743678360472760451891333893119022666684785832698184306120241818694489735033314374958420302800348724133800814872960973616537149505428279037487897040706023830514337258892285530643198975425813379408611503434911820071188865767600174611247178057784029753931044568617488298460253339313003835931748999905567425005125791923536631045712499789945077771652222287955318860307134731067371570353541145794796677928829665895758229552153620805262479013544795952889113146845897511946679278494476929247854378912038837495122524898398646031960118599047112738075574982081730269669961439641606485424027927595698869007062693929615990522802407385557947658446151156161074273369071077817749436124229278162171282311447199577114599826809390962063346368007887408066700714782159743329880453487953870826618280732600033668773668672008991402888011510727201109687342863684224961687330920506118377525844762443823169540248486547068427662602633203704016413540201572015002394625186222080540034832841942042042217662855839619856201915784804331473309674451531096249082911228512040628389095358240493839471516400432522098751448502715809353915877001590500615492128749078987150146653737319712241667596145969724592017617326506711620478781165081338724508722360966000064680768509646148643266050343340568746472316461519362170023117703181558893252584108424306017266186483552759505903590429569102441968132452045573880698364958653776772243477461402508055581132618193052678728669609615672768720763458206132824356338009997446813075669472296567794878981501085094443792293217447807509830578882555049409702843807117736193529499953432401300353053692396285014118784270307432637492497844978189687316700548346957288556830958275933130926515600747471160001699721915381600802967892844059858802693932258796875748460748771920232704185244756093447189557192373648201345555598384196055302117305647093923103112379320974728276384774832814169480496667311843388610441808137032552152204832141215163672296632713443431441210978603171440863295727879677720047408581402191072854687640598953484772323531226385249233039089345608159389397007203989533635371994179979707827732917719669198854053772114988873096271287109149413745176491680788805925824987108260287601724056430433253595079116765767505058663404463654158937710875381714240800725875491125016328647057851776638242194368697572683379872413761040516854244899709534043756283650198495711770353424412749917338407346328015619431889963953939282540183037744825760008836468140843482480013218240043137702517182691618007685178650849778684819380535240653882239776624153527835329888356147392473771610074520356838660191777992865092159227097781464649449601503570552541949602649301685157226669214576245054071688388136670446605394934427947974958333153321340996782961153550747289164322925209258883625727849426917274128018840131366194971152779826900122837131840683465078212048110242334098523633024954669247994479507979596439313307052694887442898687914603872531769741792357334521940792109448798916443060742254922361080236689838883827754032308251632735399842024049218640417284152279542585660277330104968960777012597822814655598508378218768436237116331101634115498931844453131523955052789716497301176506482693512306115818915022543545304807621480271209205913283437226400716912840018408327427212963363208164061063764088742384702218768180227373563215437024898192715864625172321576030217340243939595490537488939886644699208949644746752220920592013638683216020730562086836201621911020814843443408672301125464855922385994180345007862201576750286274878893728176543097322795629642600558756195171034720294250742073601463206074874819281928937447586462881762875216967219980249602469994505157648208777904353689283643047867447248870209837643664324805671592747137694530001392612713547991055835123840348250645494690577315418284668519432682897805173006655778510377373667352293188890775666257695333449965450821715224149333781255486146130328207037282480443966373949413393803974134807110352753383118614125489964875132844421041951973699115013184081322836998565638754665847561539890455654682135371546865564953137870243028385939440714391207337281540041481844784010282051282861337335017086609344118548372098850602504016386006584950719526620400721114917647111304388569617493907899657048786431816426067875518047469416026059173864871921319871424357346662502959215824254807857604691799649860697267427152359020920280812180876828260791047990978920026505930005536440256387011912586874208952122484244926484887975933245659769468935156620582881245576353789700606765037967351414594913247092251653533745706928945300347780478329921544192120013074469176591537319299668657774217731726283212827847806708622857529952078083013275388042982161490490932989376952473242835995796102001610145376297569479690747040508289666704215039349844001641042102593833024323435184391670237204807386716923421169722396174398289250661174103427919511605446655657798279596237185293647008488422826992464329863894091898654519210456608825292623522552467307739789192771451441887754483454608233215880020581417136549986238139137339079102252974671395180663919264568076319043323002657379792504481059661809697773594413327338609884650109418875288726414822263793287021148649535558012970830485145861712209550111501299741812228065667205937993646334830895793024402812121602716261132726321763661997767917794273379146879975244797649645357683626318820230929501465859404181243709285094850526185525469874775799423759048684824155847021738515128557247104840584644773795450886910067036833021107233343806672166933226169815779969456193539030003136413414619672043481080714052137700062861650708721217862530490858308817884424852750495275265590992078112232173202939887117569090558656784213222699133589690332418979554762995556643425284126330597579348706373129732426726877276295459740837381844886024651383246399878859873734355662404668292976662731582456620666861232526501305431312624322888103663741835125277939668052402847471163224308649212543282344581884883069640887179418530005628618661805323912434099856344184878749006764741108132684375111474069246848972758144869215230284294022696694930791955671598158463174385565628681502707532770815923365789030927148997481984605749545787969201092873885429600095178095895461626900895431747350930992860154070098861678710156646770939616844748262712177715614511154711159515067157814676883320877088945170518355677382173963752269934596154010249377373800597035800732262901090245244255692116585141289327087310592784030524430359021571194704664239666101781789715229603212555034612963536391501672113843255317476552033042671974643314842550483531237962425631834344967973912271935143328351266999980332667651054976861093253211838641283031188036269014700673548566671969854329536584762091674040045604507887128669179566740431233636932055523747233939561084572875590442327710418349179827473750350527990133217705024444816877521797258944464936267482747562159035232295073191410048651429634205873346408413299287682326189845831954352184068395545864361202449229286370977709313996573192493450840616516708173693691178267307133020974878983055358035554909455101264256899892533480702694277171314115831670034797112008831568144306368206410929927119845644086715251639651843783247789367036663007900108827041015456571960602144522673566680473001537195101216591214059125332649111606134530186996649541504383001584897446394257218742890923662831091114057231053848342555812412798006532606104792135880212030172224568116358549995137869833949018715864128388588995628979200592026306603567256672276484977848197765469337690730155831784925481912553265021926059420004893381427433958692444425595575739870893268351158990752200381774050219297271445840513312811284704248763230319958993550073924398280724808697126998719002787621177319698682633011679026640740976004898455570032686111085929122192830908482940604383608120751706103832406209456000284430263311456398871064786933040682916140096041648025071604159833568782186683453368831507116099394147408876805988102612478918071849754906760674490832164255776658129011402244590062636185194208385094193404717371839571944256766830332528613328714750976770341977071421613395136937743226041520560132392093569399107726280863403081847668409338532754474763242197820384139128217275947608046547114265325603058362056324587179671937307165034053162698946519436076133941187968284383360899797087537850262312128256162345716708612878462455241341899407709890660144669021349524603787658127511527467459392700695902684985508383100982009426973690478655276763772173056103430240893407780779104704079250260829180016700301635824289466809693669810667853137703056221212054304154886932449606931855589901070830354813598490074277116872749866327366932088915245839869466682084594355310486552516875063708695894179283209575874710387173892356188900778262551474747801280153432826145456612053341121019457245893703353738164470551722510702479079169844241592862490044547383543732250559231556376164177376315753814521113643342267501729913613967593016336962391763106291270388509095827392202102576070641635070325774667093185124038385110807167043087769228161750073496100910224100900405854304953792102183978160549770476518180069648095579603521432201342526799237735542414289983190912650511444330927353638155222141558672964396299549986404499139952592063242560912873149482695324738602878256668865639068158778748333346498300677139450283149846085839853529967335715373043050117889888767214467953792752076800583502684462472844048325446697563549148772034749551007206963399439944321956969614183983981778706514654140571565191399307368244556586155331343361726542458175129888460961924384725727413640606469602121643304720331992442770135424184702081594544799450997710800883665198994090085518450397339320919130143802354313100951326731637341936659959669179120634777809990230267687722148021817808312865634081917804883267542486275983602715180084734848412976735930654465636845665428912082215847425608210042340061812642279076643608918450792888231921749214216296199776663952500361380953205048869122422474580020694424219277848542800135591346889328669371295665092934829708381996829261574921190145384577858643251563218703853977527595562044675413624642505491742537017105546012939055675906819906628040178854868897447279492458898604272369399554148622608452375755708133121874838750862839312018205143800141251564787733384353202761898319128831719564518243174428138123659571960850636616168238268639098922665851575839229224755872236108095442953139456436520426137266302375282776993967395281103182919265391079941333398708781389166474128029256409975247330347995581926465396397875158714157783263327749845527646958333023226847727345607335018291771640447969034111728224414506688978242920362124837297711045831408390555271121421060937191730825418316944574816157119341887880105421430527246080889402311829744013222914001696509941548844759677342157266701145714118110166985124895141396389040011715192959794940437595625142297385865409369416812167029342336946712310445903471484724551343784506881658496628081434140675445223358386791924936130186116598484375683747974603306393028217841038374532485050335576864354945372055217301825961337422256485265100966213386299401099119528605836128159988529926092040472797422406351752493624871561902733733139213459483482030523691852569175025273652920382107582329202568100163972093868680241388262195611012751040105404171836998454021360709701039476429431120828431360257685535120849878825555791325442601540725610536920897731340577764192244524620476704113741060138512162047096674342922149936511214460045195305854490326518351124276349982647479461493463444576833748679782173737778587850953628327350372726077742085880226796165756950405833822286236746530374233044304458332447583473070038965334045731557129659989769875058955710647039423784530705215481656530742967930088169606967338007427842517437014936773591435326021870732874348502022746923522493407876035169934041104093122873121043920151838075065902925799903351541915058053587900578023604567314413132760523544592806918288764916452817813837359149223428080199794990969147934093007984353179521005798502013584804799025845623616718482580198265580017110519548791887416108446826303444677479933748742959754582280957185718559135594317454004039602876355434697691134047517163557482192653888302894465908240858946862605276915983105502900944835522015605010748682201323285741007155901876624068922608569580647458980960162601341320733628241110923447702305989631560805572900478716035532638412082190805968378869129715863251493746308117440091564543694878507322185986733356450602923565583532260960861934179686789730333308395347602968523583502975988410884711172923888604824117578431403736020807059975319609872462377222945505058538844943296062067610367593343387294581984933771062018770813498511239680073798742234891051737813686063481293057110790479269689628179272071562094643727496180521293145196012325939422988598007613479168292842222382070457265130421084033147915085990362016816672338533989794988361026812591204583456788394963064015245284300451359238036230360473587720075878300589449249613018272046375632679923192950093557276701036365194495564565259897237148066505618350703869682754912206457535962302810178640379784064083444545591347766765556770253486213620242890179323160056306117524786501952428714700208341246518225006601952015819804995992645158105422904163729351345412958974353263880812700528498407215109386910286609617539847140402056591682575561809110119966822846010660152266837480947780948133664103094028405903668191823523037906739059135965318894745687830228408353916557880208436888992832625384833363374408350556550261578534777721716504573616665038409683538198364721505651772649465272725219967362323196847030917692350736227178176049887820077900290432068947563891287392860621132051323996771027324039495308355163942101277055383378533373578006425692924949248775338678108755634156567273882131065422369426317870331172194858619207688848290823475208038026710453250858877857773178012643418726933509939745225197883525175392893491119566586436353444738861098593415118372085564707019414408190379779718757051701793071945490200334028980051754780486717488947863627004086298824416137256473445360342793632706603897456468617241777844416160283887772074057723005060770107890107638783364910774491012298700493996862843805372380922854638023789806663828494187252223515341182198030183617883580641640837333660012514964525417364669028410947855250197065429789924331006782453537038107378114330238690785074248123244001627890930492937821341822763280655273517253728518987714709780097450852745082479815191260462642955049440329156478768925843859141847458644029219999514920277453779433438168547447721215006302741439328744363262224245553371294953919926850082632202372597631255262922597133575180061862649879190345550422733532644465142181680266430915680724418699715132556710234225339929820953668056214063573162127111156769251417396643773156760954486103658200666728713795520435945016217952557067302672946013504677372071795127868542771982666743069908210450743375915465871613859112255078713662606379934425886291556267426037168777682720968801423443493736283128211680255266703985505451336736645819442102358016460609501370417710930173325986692482117817212262429918948077641026109153049021748063838779244873461058950376127425138844924762239720034433794431918615225537220556716065557196770955143312434452211766848024062189441364325377195316214782297927299784754438769340315738301552350421627156653985770341843284854640603054630391984436830700685212983319146448750468008913381695600474293259899614295461199247524805399513605088733431209187305276532973243914683135803501995248680389063500956135746154517368991937277456860641530261890361926657557024846651032160193731966697422046561100530222394837968110730458108804340334948578658223596566432801610360230301286512466863248460269249485570933753235078052554182314599408007131322276920832381648853071179007830522196937511892100240004030214147333767062647659134347965181743616394136474586786558150787510510912818652630746997595571801945288594503520953805883078641237227387572337148879732072702395415569710030682461973670916458432986193210419140719850251669227491774338369755480334166969387002982447235245472212023373118431473976105811120049674101933407783749013918016276549983437050030626724118748208822107068414760477298306740996584555547242772254552513572045679979943277749845621365350806272938189122955337667092016780979386132602577022697741526641979979584159721928336136270710191673012291630615580391902903211637025441929114685906169330298596054778398449664999158702456853451855109715395026040864266398610201427840520438953943627433178472390899621918904486991478861905774705400491706833363832139920040509748833268055207971889416481675319063999364347696360188565970694150395615768124009015887108462827863512202468903583462666250694372832028084772158919269575158086505650876657067528466728647720665943634889686866248862378917644875100353017496922534617827304238728550619265742942926555699389090131471374445668100424328723165523981692836655172437349095630605867356325454632527255724589860033314934359256489194789982838601368979851471039319306285299990940085595377480767783925797976025947621190239379614537793004108739760870822358905415185258681703218376712988525108840044427280748121478737832814130588401203811535372893047482271017079290972702781115977412271828200253238978841567051964645968771652771700428984656499192997909978878865823921735091379123248129635857141857427824482276470388534354118102657942920589329294346784339680295521673786528599653632358767505898001073678451865847563997746869676402662627171003542682036798774717605867976440061553659079391572693518849104476372809332659198985624598837541826677753849760920120422491600429796310014020892825516802581530778255929030919296606329993287245785262357905477298500282577734075868892734990589858592236912279072783388857160806407034180802956758340427981947478659332604428623809677924282114992150233476750749845307259708075796579956900388157852198826982191187698151681641664653006354526926456029774774759152274588051155876636267540590509484115072248881493809435911622224476776682157735411733154410488764341906249807542607918787851171068781234746318981564530320712428430956839830421745359753447974481452729453055890714771061796717514176388407058193391007881210769407812446463679841394326838169620823762106714677982978777743867149357055538425819421868917672273117968901927233105261648605789312531326932965463974838767961625420242361251905530192911086462766516805543587620735507856753546497486238798097898807823476041988415472359986309824769202819971588249035019930891040722403694398686797503121830420609956569083688612187917577747495612364855207124065819207321568302063590167611038551221257184596205370642403831470427696187251551813842108730075962337920433231630988101296129883557340248468948590842724506358932965998191700690690754845541021361391185348149527597779924887258096426802878812283990105550623721282349297742158235616382000516277051286295732347936483443276726681434129706396095479641346824416156807572297418605022527488450358827085832488386319954663188907977723114180549011990653721763521959079144501911580139249893467776865179951149712328338788829399518522658002046660472114073227080561533798320215659889432164306451963279294709345429228663911395567097299876739996994548896672727768903961763897890794377186937008087110951782964944531994232186387127969635191733711135269717546896000929945878766393525081345425097829461968264067701026152594267815635082853629659360344717094582149686576767784065195263860234097898409063390095901955468451414340232269382380966490697964758573027324374899205674273955541204493533335155222877577408050202313418330301618237552529523368311435255377370709885689941439744980664176961353229557133203824667935913089689560403671494940838837738139406621313009561888140098031183863382291657698947107907069654224874463939413196350214175455816916083448583206406477528614034775019483770692630351260059937554297371118690288018369679465632292459221968902732183828310159104502005254121005258042081782351036242749182926194549880319980572302795224438778951243187546875768066328490266546170300321608921465540718192109245221165189002555513198327199349717805475280235485061318391226956204231801800091409576436339313565104870009424221420245543067815364621131087497195618710757273012405567069399742161077416677292580517586313206768215267196179741801243624382030467376861277498965898817805877077029327405917022037865765047113575914361510753383144106847260733826903790212730368510522819440822528211649413621634572868324422730518672533242788975363086065450181873848843550153397947455116580821479502794176156297924934495766096158472464672023241346296818707356572932357748764484498678628977188843177246485759807100717776058744887479232605733131213531839091940472492273399960430932092512920716222654099579341622503203005507080333765113206242058062637587009088242783272898362974955737237893724057972754272020996969969191295977484377541599659679685845624400359088777365238061389207904308502128109217538007502233753113573402031743102613219002823111803974027081873575757681870259609478869470489727299825730178560665648410970803236101646052090349405119459942770110571436571341935103053836303395694407631242088459983913073804635092592283404541546436587696429335094230252258757539901853632933417243867428762391145002127571085280582798594783869800927146394733681855666720422373575554401602427110703816694337924125035253934924491360249022241965707399733161924279448903179989277017865289336721454152255273519835656868322018618322674555057482292612677147845101195801545721319443387821263541053753366885946288344041610870631922097388468893097444556785768169122350722455440268288176492453779036984097528596689601047249180238489643509956091117472179559457541336079811536692273162068249376003870724105099060578045139866072999658824613389822973434364665963238401352155072177055381474979441127815059013647581821615401961943229214483670373350368887433829012782663759405617764992309134151971053377708664481617281960018034883902974182585334254544707064827881825765761423103613757344300517154770556048830186977400978567650993302002792808989577729157111626728834129407066772713623183249066780591838630231582070009727647840984996874992325553270688402386939494779356313907527809542357799863755341950087091059294718458548572437771330687529436258228706325039182283468483200837946917983448216065925222901166155695128250596711246816845438199081340141717263264591831804529050621887904038570777193324367129148825505997245077606631302846090861763593643088575238715236314861772374101706677183140830574909028720595921328759379417810282736276866424606718314627639349908011811344085267916172764320826070411038018806524664322561495496409953532485274397382717849550755047851586193818300252488804618392193046324295482177043004532085923461645804608558286018146559112378313558065103155094609695126633687398406309006060421556098098587596015308842805067721641516146624224630740884912843031795311986386982024701548891139357388019964527583611846434080914400545238730843523141440585928092488468527526782750352733363158886234411084363476650655081909717216773244413538386816269927234468916637315471947345378397432519686503748198618581169048739758127958452144077737459008167698668692434399117976510828797503270853579420390848646457950647750800034625506212079939257327780184611756878680315207656306068944439694289706278431119132233562814363109859899076955321611840743909348727463481414090495710421450858235309644956792928834999486631541118454529978702385477836377287014704205263401881881644895624275638808405694205447445692749677549083761343146568090129026274837289069986109339729203391241041084325011150402761492885818965625651945565072904148579199847366160013614768504071898745607217563394835570767447977277895779747960442749917307849120331158025221460442215724736335190263887871254747788542664706455241277953621500569582595826302920101482144875072820567748556434958180378541403455268710271069889767101873335849134755266319662134149166413941541501245784885377121461591567037433932849139169776886939199434495998375976694636865138164002160091307674533303635206707892947896770919346392937874459803699657147521100007107606290452062348393673109751644263083437413587140033518469017667090561939704868117312743358132736567367296969177758671240500203307098785286475720408196661518413423785363842250486126315433956229948839034944819164857865125820058100280406560799915117667766399165298256245619985954417198146878516923975485043663961188876936401035308487821722768886994871110906073045798761455731188472960920816944617955026232115992308049213153645521631292806432020496431580901006796971492358605965319672627066392636151333557309539158334269190233488820430927578716552363148203191570011198835025324973040839184013710479085812528080151080239196027661415377058285803979811604627960823473233065739080453039464675138262939625053941681347432145051482502419865766931376105832414168563229066218368772804900137219562004598797853437890342120134375721252305170305370670976934572216009997403182940492887114012889236513737997397439785118904152994555413655262162186500399068221627488896950476049540100938888237923039280898742412133770471621106232415348784670051549169043490060140796197593177738118303328273404916188704665936177173936086722640744090114689760333328859026185164938205711392532322077669588436361327496732286731463070703260258985238752494845752128536649503398560755182500254745573557405088039765389660003836854334060295856108245611372958003256622590305858882410097810566101774636099570302629385051743480876409067445456577661925851475061049618399909901941079441999042064309123631354254216311920613386001338475716108809935319313508347329998911927498279208292892575814076232804164532233270264290860666987948021932139156400294915472367477974577589331423860244364833591387223694775810278043831885863616437695765904962171774408414737031168523751187450599621474168240278294138157613557383020423947774985447592607709128352430710618441216665062945766508357809277576503395445981349420739287564433751286674516861741317081520112512379049046952960024698024301455008142902252310096781110825902729937510338366310045157890870067109719188966255019234212030310446662459129894029474211068804296845253318520893078162117577049265959679126177297804973383734597232796238470238363578515376112217942875263537610181993305458191100221436749796236623020581634727736714020070101229924534928999484216227742807588261239588732958042448706798194748167448816332736539543385037052872930815096416792807489011516266870067893914911117597176831986160076693411644961222032618074790237561263418236895763582728114452171438156462539233862308693295790714621341435854880992624570898065873156059725861414924965859490785382970455600561678898788236540082282580814023703723342478830310026032403452436613376000359318869147589925055358704796678506588341106192656185575287046825390663933752707758297469283444237017166111207815745274436358298649207123190072991365220444742197636574909896627141903764991155058939704276550934958775582423836403272892717577308593386998371813251921847168609839477165892641389433360846790403882139502237204871484287876916613569449962219758360303057369618960801551543520992389633729910033063540520979847485761796992538381408680286232276595420811737561282293638834020718605389816601385935403364746602234416659546137531427198830743098932559595731907508827435455572031011989462494154396738104017566068815786548874506451276455845807795580532827916575455750887087615231614707582999116865847293559908741565754881410858694491454673447840461339797323209486791129878437788345285204225442182418429281807553632694322157018842998881163749734410223594092568598265082258457161045551527996842404189813814279234027886372221194125197277264885799540618460367331367654588295550904953531598127150428501207572443025202251878893863767639542278335208373298554922846761842236343325771649355483037429452359077856043272848848324262270564227544048787713259656894364614361662549111676195408236438156883069561370121778295845475401684526407194856985758050106644414901131370888569439105882375516980730466314202943926782752162356221379943450354518755452041257024865670343920281925912590794676392145958668996439346999808024037668942661990940001423093508556810509834010474477429740907285717403453421791534598406618011209809553035864603947218931322137009995370382413096536017210416303728169553524966227634685150768406677878984057396379794123962764702013631210910120461175434021035629397440739979053871466149939972717700653896628605741148688771128817919767073153971515464624497452938968637411847388967329015213787380600313334744539277846735132212169835188065187394878331124986690826526845037776495614186237103535990602141718251148913842232435869932817158696250811790330217549338010487769930570132217532239387761636553666434676283159686245390723083408734431851608235751237119526538974360797598359135814452771596985550592777493900111127485935366109927943725273034375351294874975080547256087100551004626956219420019398329731387933221363730452874654626037066057927672954941854827485796593468088825418675211864979995507410608003860121349069783760215458761958020320547635923226106033047903488988620122500759974089253670257932454449900723416975442977069422440817955772892242481423965319954702048236336286730506310841669104719419434266251319170904203936394748213412546551745104842412280042505798908625419552600631156493823552193696224526810076807892457218378559283940206423727091169603514867236735732235063559423238558487988836218795930532025505208811887701740718080434616904919063342529273751793215845135618474346940138298385524557009474178196784915953039713563807395447935994571930697908911579500544051875464774146629059999048469754162229875648667837184834170630988624821229328213812873251282941279233736806435785083425909574894366036454739013913044643781007999626444207250863784804048886578775304368556577736422553260926525230190770031780224387032689754876364509247027760301152546885263865289818068651886716605586006985391509215469613390247941015865142609675573113253921880525468540971976339948043982917015311596433545503395583850032082641822777072333108126172123992806797115510067704180527187117129440088554714523452717566237100101371620057798736286421486348147898941297002747196551183855699567431268935234228570951526830816875088673303748547933889436403859822643154167521952050293787634078967049441246389473437369092093762886521973845678689586690238766098495905141995564538681716181634840070341095357090993232437999627034324730294194835981544993788240951116029683813401471009525063220706570198991938265193012477350034061818678648177900496222623681718385875592779091223470232237460537485985896799450723892099947198944090617869399730425109137370744190913727687020564594667918586779492533566902232259130181534765136334921687498695647867720734131936990100853582678872411344253299331631593416586452110492061523205583722990537581531354862078574905176129338887601993923627336099238838988931159766121354432010403574440558353589568899954789070513899022150903619449054691983203658792280798762798536378270622898224534319007733410847268211920061512369231471718868729186168390570893351005142542246694741859158605891907009636471470767305057916652711657531278590504835539770284610195348113697848792746719344760797961025639221034547914659955770586744310789045747321360652636121568616386752465717982969600021051311717400357948846284225394970002168176203154508549038732206610334617995760637748167642703665606189705383662928664884745912258568905400134879519591189612680674370094654788981533223670679560024027869467042385379856831023869437634513955596766923089233218837361289051399143214291995944124478858235078735590206941939518124763283197968210496865869628931436782647137083255629947552592917470767227550953323920400152051370139409224503840420900940862255405047473946898702774222271147735390445241800469440915981959443733592162824612966003865324211262693919953805774995272864627738029626721903868606805184502154599374577092529676072165701842897041255965596050502632972849758233465898003614888315911651052832189778444891225193846890363888357025052989655709235981104035350597629119832367032459066541101470406320222361621468343574102893859259641023370407823194108957357506642894618399010182559587607979389912906519372949401530294465840103030936170764379258427565643327182454368337306412967462942927055559883681585741765231623159474673968913323187990650903935718311130392666423948148638233303032337549690703583428745387290914062237472918958273749970831579820485906473060157791390087390552705824819577970856121368486878725078850696531020665489860282580874048418285476204691232967469764668324373953335604900262600142940371175469237489059411961637219803457956465150895036618289366528690148244120250260242719410467081605402776957082287237865392797933976747387601664798940548050078889321539002828996114105366514275485187806003463196196796884901881978523302317094787048506318540274096742151603448763878575875781017398501913810218758626571841282815190542233142431768592060392795242569056662959294585336256717389423172380970613486081302554762408485729668557059378289507126381645452704144446189793657373338283135625745795347246637536189711999162772778564143908096566960448276584198239924820516905188845301711152402249789004486601198445266661502262417684363845495434349391945308725829000612407021305100680946832227914899793727455539571499840848683826681589323138188583987886298549919521252254055791148495531121891751471882049661353328420690762027144404755745991964227459584704932881622721377172801235946542774449405484294185167302767968380181235220119848786702507127089695746644052567839438939613555747803490872780207693544774401561259921292829991491256466904928216457117505741513772612829753109780182707297451176159182715268046112064338925903618618482717230633439623930196508304175829872639095113397371464354681120801528246915853774570100218611597232303171120509997833167608014891563483386000568135516075996453112780546404080343416946351708879322749278311815540372899701407633740427595107216707636534646375561321277230902602133191630382713923618386788201770728320064775421735430976480357821852795721604528998079512091714667568826359075482240128409878086675162020797134725870881257924993586332182343617100672052606883972848002439576584352245799895476859390848762705147493753291338025584882834488421999665225673742508727288848846671368226935890529963357839947921407760797115805477302764695511406603512688405580804545271458256569771018021165662684809161151252785781387405663304866508048896067326454630670472476287253482554562312519526373359469899958840382369231969433829149550889106679305075861770290503785909310797672251166471548066458170723291111254899211081473593689998785676192325685340066489391657686735640126058650105149820709506021469562970514345850570211385395266276727951565155228428850136773459059624264697157341302783222531742355268274090433438265263296450503704056359533276794939248324037802590969523628017399530617004654157223469759151203580683728029572664506442845005620617550808646081189049048168520779651689864794391475804810729739349717335371895470313254377977183408201566015126450242919125461774580918775457671129942149950243509588284978304380376963525411475328698579246606392147614227888330629505857601267784177449369463613582710444380901378168642076351834947019944528772806383586694491201850810569557454817350608483768602352479548870355301493276689734744965121952182894777028322838734062248202376156891726945361314269033527689892876912524897518722811374376453274985152537940855184088589441496995658682253133332310616399475652729037650568249113761012567723704267829443734324001721436791391104318891620402174193076871872772278286979367064855690536681297170395655068227583161343579652082896470663408300886207205309190565035075058667458414507466986813827378686596988223571541250164019737730062248137509534147424534416688070072268344090580163325699956987419907058330500954354465224805323901257432658629261388038720923405838264442092411265546029673257344325075403026471914378694488436992478628599344879898323612215708652663327218098067273725312730662847321068858408495201247541237376002218332286125357641099247434201443602871528730550154527254015647752082479470358372881184628192643349888325567983041913085627579991086283197548360227008619192280543050927063543842992589762565566151794325224500569280476248431453315947757803218160902269592919591570660417054282319101225308776357375817231245202214573183075738985314907449420752059521326479117690347859018265559784038886158080028878884747240774167180733450017287506658921628085816485928300368857026019808843375069608117991811192009154232576003745867495153884753761947727020176919116212021927807380628602053813823880551674205528105764161793021345368934788867589351195450704662003047968468802980633101864575948779705728288876995874166319260875542697631590910117247654635638437421743507671637561982314789451618888932859173812554344421815737161332812150646730411205645923450784554635229616111261295167940309066447859046575377289715033946465603371489945030441324110908866745483661613128988219726990800759744109356301871106363013555705648055237459107449947120170600250072789330480411189979715682376854702993002475427264838399193526961247861006354855470027373820504253636676381864148521878714279513839248306426371983702193218415492681910839857354549984256672697200248817761841749609952558537108725690747633417567404731289860292782730873630534932361784068589457147271728416581777307819765325356968163449790296372037845886973662867520836325774840296242917850797899403176360777005093681569044384212677496887063320697872553267761697908208631605776218543041328247946805680281873399308481372529728320147275965679197408168224974635536607433385716120965490832646176519361317250444838649756095061000391970665101778113456782744032210938880735060683560581282734727453163251434258373093065821953254431205047990794704589507147113248899100266323184538834509591857909495437014962482001697710143697816095636720936212274630604753792783831085213544689348972431959687564972403794627749103417707157709438344398820945990729677715218831110421669055764676541832598593174667374004335714654891728536099068566357463837231940984370711893764087101328745596086564567149245661769966514268489304282946592353882761619690292548487367063771745537299826134745518562605165446698830108321566500132435612592168938940912553979669649456796565406462442357743771217665555441616849612793160406123479702637235581102766722885577338695162705108846732593587382474053373936963360663767410741246104212594837837198100940432908414200949571756785868580561455228710570305150796449168977569967216578330663939040299823207058517010943933221977640976010926971634542945119392732380210607500996691793717763960848755196811996225384636635604764704986018240597496766132191829708929837126493701850852647563759149901865082493346270857118323005133695340956119483986734177399639110340718593010137457056482704352790621648700869056552764505964034505442504342974208100355831455490385187114920086133671933391308007879454160574917126717919454814992907213500273286604683514395859872848138483985935165368550502453988623257072457346849410285940288163828425038787149503592363429139408290980386981001934381154543902323813265168345410277406969875724715777004438862231078513660582315548174710684914701405672200921933057469471562833767981910162170018948762559939619621657704320649686327228239848162637967965967423931314326921023887296596193298771002759233697625054979790957075260770978958150213183986255244746903450107857505966556993409712742763264214423974772054933518084778881687803210989049771882039028692712143217887915751553187902674710813015555607581888398893404847580100441603498121722629162831178323634846805414278955908645508348960907539801477710403054481932440581390713339669222139986315358133363355475480505372072000994897489852827113182589986563887575563643168487939694659032223738510848033338843254941915165678078683634721990847081461792836795230738438635513047774405640052125947186093038043504796362142992985100276514465695145786451760971313339882121432137306513903566025217803803762639519206775745753607783701108095931581803998200021419555045876331343116744546023163562460055852875450929192457905130865691036674916793695618036430551052602636468997700894518743731859322235624653564472894660062040538028368603423024008005974542272386119764930554879132044813350248568834574248179893822210729210725574148753551065524945510057641126346889286571608472744529670343977924592096315938304031911949771200802776243497678558821553309822694958729768397489473278812595986395109338965986391638264052758091517706105651040803935474690668517581251253802607356686828246849261681471767188888515508596661007670105213503307782151410659408778837740262608923729504246354653465995544156879554141514664872514957657334254987726472452127905799902212829641244313814875869137718861303925785566226210955292248836796542108903041480121341559366104360348862876249906697442429525989406326227040711287527059802402200723468046281872179903247324093563365128753684465822723857093173320687402222003765199698616948050339834154859906435751947321932710850414466434732649407099330433242395813482389686428677530263382317629441955386797582886404829598807463781439876858794784928040095746731823394940216681115333548465238247072356287637985449816251664094126909404848787351051734657366101729456196404016958689461775279701010697113558102844997224648797706709875395837646379112239293725085968282662288215726907761599159847453732311470964155212379826571571196326498577405985936653171117153796998362406393122826076939381920258673772805207874910034225274961609625939816601568421303565341639875706367283607869195731867236472514047222545926672020300620978562489738373760846453079783790687060031813917154153884435253266844729089375154335056694186971857309153664398341637507199897438714068140180449795598626009556062600394896469973239972476032038579694873989197936463395649377492795841109359333541029567328147495412778058146759229700724111525606874620773698826377846277033797077531524864166075666028943446332775563717005088931261631163055832244864914607935368406472734838570203174211749419852703773032275620319516019157389333964553735195798223610484770311081430497634674022594376043575108670073947583985851655406013794852681968393984464276955642321952692974831985472084907065500577510118719564081241907038545658992733487852019682775515380845299975121566234473927276372984341293066977242126636413636595153286607970009272732367659807702237422747792645255664622767163842958275607023950350180157131385724013750165487254963884454697201049731713869250607445631939427155010266387229659497244844898831634462046313748207562138192637580945180532783330752165627019016641177481841113204307582788422645291838062712999177777623586213198558858678300199538322138473557935017960618380202318061627651743209289157718203390565035887288925592401028677732027115902032455842081631087124042111035223587131866057610725711160266066859904782887418014263111580756218386264982385560070038285644083359837721360815246168257912196586856535155242262219877634268980461288806115235661157593623281286492011437772385607839079790276866260279243878293731642500888842444858391593566525369264673021036510084299004424585960467685911664052004243971767629833334082100396558116111113673942607570188567157228165575324949310611840414448125875862285578872525569423795042030817352895641361948374132095694713214490052093188473222434848974036705258216738306972603049601219380370818805088721902924665845947976116092009901396043518046638318939587180457910923445701390008820871042530775473242344984656120274035130689765716350308052488464277941323867721637722830862243617441790017134139579239322007444282920496113834237126431443371421339642335190336406811349979971162683639006316849669094283895275382527659870997224210160531559215203712301987205487202203642499409112713184026560171009435935985440603618626290241286023611830093767504430496796561413057376182317179461981882634887266513173804549916662631813993840718033513777129338341014630065269279904445026410819335989571104498215608059331977305403682595984795519250475106823825484249610405284072389349549024831569736746783619465822592916903996693275592238041620944975537157246901806337916265585880806914334518294886307514014055914993535933595304185492736086542776390183856602933847944499944315222787142327477176495350538291986749798880196454981712126491891216228389183098188020667800025653022012809624802043464237853861504517945081444306180890226917217144903573404652968804194486187735985997123696211135427308825229008609205733043593963066647725406634305027369526178069969244356618402581919511313413061393754731307333769198606671362887046033930324492982146054633874916999665329663141101519373548514146025041283453027404782856043824500823607140692392968755917438062512434255657782032222006170657424662592776830904145525092621862224658850470564301967110285741496931631340199809312149084162509602944212326959024941168269278730663732567942316343448380349535547302626982455460232449730884809171313194423089191001877898593549016662790947697251963116289441794087636233674121596407811903831307433042478376216218115961188675047251602061578306740850528657306698895296426161455843384629679499522074289707858731604259501949013975453857125075874180495083841952924916897579805862924802346108952370523538408301662634867026167011811859882405445595464183044423881089074862328633483291944253746798222568039003621103793719793274477123282666167180658334090086469045061816351546390864667176997122341532828146488714813819715696542515734766883383502791792142235058022308867577076734255349560524034970283418119039328237082079250193596757182558875141781864635784999632642880258115384782434409979947526024046569883039333373308837031883461676704787775424692331984145410217078080340224704085369311228609678766593581822066580204525854234591518354595606246557189763457241099989317674085837741514186012696765359773153203285678311295535079541028218365468941751599827231006110230923595313434936518053759808724334794889063814161610542422523750309090621770192724096156181111538289275321199687285528622543490699983590729608790313948254252679626628377641231530214455008442307924323439195811179522800064497799996960564253064080494058179513484451986529258211845525322148533432575731221871628290637643360831078880102321187055803769591163093250718454874897300229117379203010593222835859736313956341891356127762094680133076216767283255037885802001236543566960396151663062151385485647195203108820300375787358379025187081779624587608135561069932897238264721223455166899665949453617474278386363090235048109044591137303189716893493848295930273777250987300011420269259568028526550404149770562001250420179110638213876513834641407714235768172691339606021740817898712897301381250505368511478920634268272709538160060085744967432026457985878849587681172998972489123001063084181032669416197485736250612110702214917625464950107634508059321368539790929329912848044956000652784781763178191227899909807754813231745167047673585892296374522376020276681587933396412403338484178666366838263929363173341167754159046937877531617554229034697488119743632387601712914665416001270610481887849565934950361745929019798731244472327752380762730460875619817660686143520336543673334091020107758768574852155219148625285414420476482501184590409125290789505897474033623318642114403770476600307162263257343755255231865666125157751489545692052431898457464847046741751980510362006550779505433525212179607601772601357399056145626664546355319675257009249203957192033042978274060254718488524798410199663146168989731070940561530968790662179999290099749833919781838557625834221509026890787431529114629109865158062831965767355971574973551047042036654568828471363405445844699664893633846476322745761981900917139011664966415773608121230010930894534908012283702581813542638828452140932062815807797278673836763677524481103285922426753478098712314771084840055020195687387392003403900830732803651384481195109045268810882973941876193049180238693843794593268042039629970503137578961403371382174944936812553350594036180693793594997422692408054228978639661786097294057413580764228816083273813276125350899778024272765350120968834060187048969284535174620594678400127914689184073810388884956281183119366564973161719431472931255648128105145280193123557913008446214772112816909135232146634640831121833377261399766931723038262308248278045913692546696130976565266536075136633214697640057391824297384826555548672195619638325019692541794868034754984844124629368038818410380445329703419935807102923367674141226607329838132086323364136003214011519323267696626355086259592690077523861545887016270948911580144843043024728572808777860512923653776768855700097172436147973410292130799771120489412620996860546409149137731216166273947956939133177308821281457783857510308166365835050484559735493888454400031715393051253548702864629140570521533222674141175255743628182209774313133637146202121811719056846945980953498915036639141596227934451591256967587850143563874868950727387911548009767232536583775320198162416770624657279050484541470171884658561228030757313130545305550382487671948606754720217518149490258455639559098556014526239520660990384503198435657793213072832282768365207852384603462567625468937697930995579129683155293869793495133126998629916700871402308921373401890783612878517160879977048760158585301313493375751848311234186701335760927804013193080229146880097632362404583649878364778048454449445392581309118877760698216658578531467086544254230711251112349101583662575773412778626749713553300091031476539071900968008259992955128293449888528601988207750887069774235550189265305776589973570950366544942068279706547489390180119584405961772588141086919806502910065716724117710814738068457799428474547391073601630113908389503001255268907509418092576275521325039572207010054538520989437028635925687405296763671201934613764886856511504722201165674670540897653092892552108400759374745598512985543481855551815446709537082273292091064500295933975839146501014653737452528305495204962976924387374193584874254536386598712737010141531466902845496648132878042387901764098845590989184755161870163717733812898683861469561852100001275364008629335163060539835593341832913685315237758538680824981570413472066443997324893660354836444446865835273530185201764272607297877808399371265232584746820013838295951016399597092145321864890115833272817977303668573188631330900942897478334197344965113942757763317261953051554990047976720618020953613566237709235192882450792525125849930980326129099414144884618474753493082505108428866054148838481678026274206570968411176153567045690986646622140764121080907995548277677224265363684486232008003639863552083009272946988128192713649145284434227705922659634803110947335983925600879729345550039927786754419279984705438195366721487297104536247641064877928532222095482969907297545507158198046555313556165304307271746872417142449764276054780363734111813856073448872934497681521846965394354221815264336629086184697265461303381465194275808076216225630188509056866663231443929709082343051926525354307476733973601532416137829528417977365016876602199057435373710039741584012982601860285008507427622838224843359186581463782306637981087386156666431445228994175678172723641533469215366009241577063912232450111957247481206795322587230299540138914097516994332892909156130892136150877019069116940530102135115555468500705147778175659265974921753237733431740130338319625781229498247655270768710628839048864591202474056275188722597417792333808539184235933774393077815298584749619857035445980811636787043722808207244800992819626013615165823133507083115136617608950244144048423678955574309513978366726159453090738463817219401645400183357617639628513562425630162211953816568200710303835818090957729974688319594402508306051477348003659875439941174616899231296144661469681080221740465309124180386678583633647035829001532820926199730790539084783714894098558732150988913254558443941599887992181042937957066779445225866005476868851174162461154790387907740742426683477983598786454878821452976855401189639307726950273909784494111597099357485909083079474321620389312568111384957881221096042917677500315902426700636737715506068019526079482226656800989452726065272859897836023159568440106602200185836476443627819689063356310895741503016325010200386074917893635087325991432113222508621676558525380189403269548623375361331103056665689112835217924611512428583277959969502235108472562681598491957633867004810977802905698540169456863324051003771370374847549313245795712571542191394917347359021205615913318655343716145155696460724779577290544540395612440103560080660495752753551971116961582767639007136585750436537960095340807527054354123825235054375764408549572294659716509180974411961516472068027037237595470032715405589824897687569952198450855445178713848916958729449296515317333856560988415991155943712307483531042666998204214488961034194707113686172659980777944095403585286006350833299577274269416866838626005072776359382473587805279268201920624946972853645525955060668264318442542712740591505420573416242658523159308944763899821882598947303821752289525381442060444399599005196919448182376492659959934413168365055679646764204893273593825000557186630278842782615910588393961630187895155217463163692349854436392026262780713850608227795490213665964238937069769734586269569766591592117861784346582250701445306996355002152331542137486213193046231343243982121921692735069926985402634402467032030919648022980630493727428324428990130950295060612461208466198825213813879999224881160669627214514430124261474013360952061063557183095123782611678320385346766026472873517410107695676759474896420253591377846948333922199897349980001452856786368541819166447227255112766876882433282299965887111127277263540450226685531260086020323650224967321524903151157501193215108972054980568454383273920674392149545191892466012217975220867150166561313019491071554323402638512810538718443372753694721388070306564131662905225906862244498374685675415975819042251922708767623086805537591141695312810926347244419099107137904789678224699625814596070624131057342846679374779769578969819117341730386515348500453125328295489334965821344907413259049359962990124097497651737601865653717508680544741393359196616304466028068884040834622011803596042699925446981501376351309853786568969661179315798466511889188898758935083186550651708509798317644062144610193288968521326928546054637425602113335287580072912980050807989564879993679740620828570692982899152803201738287600085184203315071274251376497079694594763267084724916543376626036236281486717195769867585029359999316896480913785856102044009691028625792300457390938052249402996770457760167921742679647870694095477044396985658306522636475493600642000753265071552990736804922192054408246812755404129032094169755727549414665827711802095380681770007116649252330778568182335244897845131014159038101507020148948466995878531886601878279213410575571599254615548574820438969062682302659233749385321860666128118516605068329978531924182152192416874596621693494984986868873466318687103676755506948399803142950720910788049753501295096714178017852438378178882015086357946579717898207305099630164130272580365322077326099641845156805218326807145090492136013132319047933884130948962652902330643396305734193428574306424339787248181275018020989382620927073175509120898184136436220249968732190389665406536379232221003071621867395078367038931459672916090659188838720488273927231384097333564396574515537294383606674718125130594927741916755236947568547748925636541633598075085711257018999615144058205736645959972643095273766233492343879192481572788864322213930614880222683867486595676925402305169846818421970901248183787291846884656146021633452206737817461279715406651556226883047405341102993871009184264240473729672977656060073337908638801278566833003655148863596480362677017392964624552008620207178064886092411730931630083616653943179541312730415284161555332163868144803170506379384872277699271144804852185707465484510393600224481442752013886667688471294105884181570158598007048413546689744453107008228021636346719310206309251345776357547924336223037786232882714989674147564463623359502211175229065746893404346872515845078880095017684779443666721258361088081924987903887265905033595507266956642911612284330594154191303819576791400390123320833107612820124466131242557574969246238730869170964611953122555471378148311471793723057229208402849449242773406366858236663102106688747406094286328211123867996678201695068872332298465074933376344925946048186815901171296652362768648917454706510626447853078592723540548072772676343405551078469694746355168319809015527222943390951548006016768627600466766664560931876834674332348722961702110494177257093082815429106681512513586162117434894367567742591775327785935925987398332512679558280086673678024940011453532742862206357194459733628785065633753286057955001722274240679730039045166046655122906696312299811377376320755319392523616250176095321621703545304295996734186415684591006087195985650430110784644657951778879575494700265285759259585828099068138040750613975134435971556781269621385600357731052048949034905774373767757299568739701101363609393636310528751368319172345110482375864984487685581509900538721454253463271998442658894258051220141076739027660048386421923914045468076432288055908527042278166918074654193664133011333155611327764281827339889048923877854270689101451865834700010855913593262242049661982649225899661704113404897524155418169133031525199958777977946421708461651123670508780305363771219254865461685442584481852587255946328048723275501974370071975447684435790000953494896753509938795401071287176899632213035666834380467856220982850959765444380682504782302587789369474667053914078482223253588914399307279998539549205188757675680517970600878740589246267689510955755420924115001379480357391136200131517281519450075113024239924226062828872954820674809262574575086900788076886008081150501107204455178166336504245540796253291161379583808065987030625979381825340351154648520887712567030403742336054991268683109553494242535295255901459354613944068271242139440040292353726221867691240164341563682837495855276837630903195750646493399781608513403245377495944649626508168530995807209714413408502340896820286901873129505033515288179621765637675597647772099991060420123214313818829993127896855386270786313057428364973291313128632723237835754592169828466835291724588635246166337452208639487191734919204569266344205507849444959928404671376647120367000746769830999414323132546445957634102857076174341403133679981431332897113254138395588878241085920174055695359383498181001626293625433375010253083488034992921927256995752008878674247339385583535961666689644017529047389199879569915427588134657475352804607488376377959116450839407979008328520191969390224169480537550611299398269321699019973283257819181244033096549132788244877702422786787744708386044496908853559801523067666409693760257272139399762570564177170015347928555265087158290653842142895953255071300934819341132298898377175632541524655345840156429501870499852708360479159563522156191110627390704174988369659335524586388941134368957351182280822597611999523992513386723979989678102943581962670348019444344202185803594019075135518858076673400925100638583239596267921995985947170200523080557064678908179606080472467578381404677802551075717076418729192312151235181061404414521273235127065995418373410187028119852500011616789369241951465247399548722947537810535100966844429391708480919273525303551441054800989661927140154501937004106527400429913270764816937135603236936812499027805154197160090650658095017581818737657294475276545575001598321410511431911070672534556466607715593645705136725297404056820280886404223502208750675102461551839706295875527693375560071494883781469387365590119626861732141514502994811192587088412616669214978936251111056260094620313190568637900245035417196277688857848919404636188330394435915586763749456220709661775235511164350654438261407960738528519079670340222987774736801653728017864078237089813525340666772449257120983336068749284228586009368142787969304393354952878065393525236103535905888633038879963392632945099643727984293223304198410211858029837342848969079534921725893607171229167583651432605069609405304870244852261456536000750548509319903310190366835811422693516709704943343792429990088455121247229774877813636897788966494151619032717141439284685014075852643636308600202297320776598882529952628428962668018764577944946681587488079884018840925377129587540147628708738506909357134478575653952327382677576009787626695667214285033123557031560375533559991890765470959249836434555068650196070972466008216913376483557827708049395173358242490890125988863252560492572431293340008928678213675616115581843785955648156405474870258284565773098282046740082361655848111193440361880691877905027691603622233403641993316299828626247927578743124022973768071928136987976776529639052892744000291623417255130962922120728769983724677134773394079520016349971933176174638184707727237324662605591216385312932983394455710823783345045110551984716319207853134633576356046435313579170774888160094362776765714054194721711590978570944906200912280620350156590692999197809904750164899296569624972755182573232157300757924481458355533425982367717169466897213010364492325998145121266788595741880000871632417106651768608497601476011248258194471786819743518667631169645663471377821920577543335876626306254987655198932913861560058163736169914556581533112497677800557047295066420942816594140937768336389020341569079719658877575199326428951563598160791280252602891753167354304368864915836682446226351521451395723618168877520740487095502026043422176956895754623182415098566758922001872746537144459669183327448986825777747874860368697695887029234753417380103953961884770958277172138378444549855342135354298922983417530275863749520433354824053538062229630937086967349574745858921506382102525961117451318703790111043218082111480930863292428718697882116029195819904108637167431771121233674051082031184083216686990742825697479184656898186533146053938756078250374316843245613460182136102559040898065155684322756402749069284636797635935042041760217811135265734487148079141500174955951498759039285979183095749441671111395971222526659370699072065524175414549417874836842456500660683740634835413579439729363766770142567611695625455218359831428136294025267791124137307810912036216506478267061095516190890444041628052953376265446484342361874078248133203802279931860587786671919401283646295290631252183049060592204970106254188367670413330272323476584290079054221099759989577391565240525772616125488792435097473650408794976271060213907122493264167671037360701963686361446958277438214977721839406596031654765478040551818552156984623116775317791063981363715166316607736004428767917643340078643246019146902320237889298776199866972982773704854015295453387587229363242580156916349705749612707802578491636156225539226330823358245467471556528124903244823084191778137916988287892768894978179282126144114955984690561135696156391098461533921077647891871722531585352739657591085411233707186709042548902177411203599789375248705778038516509809402639834449581839904251758188333292917435290370729165845802834665377630390757009700334831408745929742798077100206993010335202524720374387447256221557558663179843990163137775963206110441310491699733097316314199673379573430280296063753952063852312398504998015371867020498175486864133393163469894351635415967353612529175236664508769230213153798640329118117309704833323528569586744056282190188829295731746898013294302293433128858276030570882314993167860495904440695266020603850861948554235787721309118591363475263389493673338936325075343485647361730960885620808892045551819802958223452032377629007573693467654803429250536129065021026105803056828797729581495478819833514718100214061270802861274944738009005662093013543402986456001333773703014080628162161648821843837936809527822694560616896688731565390616282899941691383212414637887037591085686243746419462258823372805831849761283592389102811961556974999686664521472939855943282459676928843366411791057824965562193822079053908172480798859200823140820651130950935936048121460557517253248854007886647955709287151405654096936892168483018653292521816309701705895064375916143988038621575907324582394433616913232822204021497014457995411786023365324503422348884261755631807464971598361657385503820500656870720431764974112911652905851025535579413400492524715063051100535736308862795058156587419759185085347640468918101854365374377950985263192981888090944909690718852827654441040136180957937264035497038759374927198002940362811797472675600423852426290992419554703417490271250455563369182856869188501493952995173073752198642148357348292309021699635063755886238105746106546278974920025358953135816598889692805130356718637260754595303816509111523762494140191267564596147861720920010700912744200205192042895684755105857549754989164649812712224580279670444445232364380039865801505317973225264294849746511839566483675154002265864498182462887228389615809461838041263301333995801756376503417958443112144556562268024950414686541609925179816732471624288667942914480806014539789396098654499341840553462603647764967946084895563217159241156018424181957842078327466636010572930880732171141315534694034873914542916080590380425977896252154079267856665683330949390802633771465703235072484886717202799054655976447897074032151148134976616871417547068905890519956262679107235289293342042061599395581851931961077258125491115215025441008247089587321974855682327827980826388021049335380268529388234795778409134468343094856702125302577141318446444565663791264532627661124984449949665503038595355198123537027115645044598837260408734986003931668769158561057658135114472954608609586988728770234569617572463863182418395622033159671536763091319227719047490643932244994302208091541794929412137887013867190233282697607634637359134149037856969209389153984919680898703685808254313688572533592148310224182506472789678769824397773789056439588768466137230821534980834589539985402421897371002080998222653488975538892512491615330750064312719212979449949120800489303622374035731893116701892527493198315355301892231534709952275229159167624948328101946193584698886397664847149635396061734443653504628252316078936039181671900212102950181117393991391534568374722386715816344864165368509984410520286117269351449860730868323258791640621957417070493953632279893422474464491504194773240793395231295871648400612336248817497500980571816583232704261841801568408628732623683650144133778602418351752259469693052112649678092755055093820883521074507783439619345404260746532098149778191419673924088669700377537201215227826819036797894747560406921965921519002736227574257416544168079123024842161772754935757473003016818842289173932403449019546359301160945803786868090627091411726944089500099494925092344617080449827821599948933625434318082060987766416636399090246623829547442694277016958774149629202224038733153265321561793020063373002165845153374605926611596402836465995640076488381091203701393448686017455860788759590967718060185305976499846585669295134259618671359163211435947601839357761291881026297947039878259350316773727809442147130190113958428589307427216788743680313650465768901798268474956999110950237368641894696538291249986239476801250398476454222966728218160990715950833946219114146161607700216864248159202803213350949905737841340536117661582065937318918748781589526683147927476971261653540369676396327731892711464382215176544074424175521425665026709312447793346888155265047274729358891856264468224599395465566714951618057797968507188487468191761857751390447666881478670062037360461136984499554703870138067214275293214686760508303515938284876298584252291094300750406092285478974958219342648029405450971848580899773918999580112281633101845984005653432347450601343533701999432910486031985184299516664252658955000543435626754867611286355706890123490287185548765202780991530596375961564304369945283293697641559404207970613316087292866414887190177426971471659458713339728737920371511149219075902273124493258778930390769793328166890171951898860783460151521006255759786644191962992812077741221977981488430660589784289411968411130010714467160027821436152034871915103474394717472830160299620226022083998301640690890880744092088877349697542326747257505107728081079932452772588067237918209883979151388823366464324201487152925359877667834329831989974662743480166669192007226410051575978285463715419385918560351856460729510089583195465213077713672071811877832040803773832305745084240340481178200346583186490211907875315385720026060981440581168921409988813231652199799474656316271356135094252969518174650094162601033122112102912336727708480291994523846623964776919854761141096347500973724683689446235842777994996967558445652240649512088954396653202174304534974085138429221922796376178959143734302937340138311292692435379494050878805185128305655843781881354378594144503042106403937134592093173995918532203497441213533029443863092878736310499884088264767800618101174947420911475306777881630315061647469271901717908141382557302448486777391656622200124316037619584844084732182950544222925056254257338781811229579164450252831716935884304895643522678780546611622458726940952574456612510682674285540552143428744087849922479767754037594387751111588335217333820616835682656539963976190644363067030329212126685381944620423859952315815977967774211763932629049378327300558640091325774493747140298894548772498525736533242759108179092578467820296213114672463967735362169842230392402206123148209924275894748950091171909547737495810174882673602159529587202800783849271829467797999997051442561891223345543680928340479569851783438032657190199508198431064677186144872784265980580730651970660404498717260009936739728946674467409403166086955372093617150056160655602924904460929601393323990988716923751352502911212227687115822658574041125217441678988346361398296856083038103184198898750470457943117857064693081458840426329261778057178309874143983206912847096985414917631826407422057918643234945833772297504703609054621627394521527757645604133560367211263015048713848377381984089206245739518901014416615431705553076985410324918657650303389139307539748482137917009949977529435260688568312876599215057145208182212033744095830800259017164077563426871232870002749156777716939535462285110750898663646098497454758725008334856763543738615553016626187472087032397484878119571907019273316140148498853808408527227288482631937611948466709800806093122374336093757382809964220414426994773748895281908714352135899984046235868389547154580659644409537593444960997384183033297359624903395597873302970417738751271525187947143738975772188899738578053893729415626066322489280041602061922097239321001356706563647781099769627041113964931327011581088200290108767031509653993136886103416052514450609397945796714531886825577845610101483220633355376375476175167148021625039666942665707682905591551333953032989066308258907631042299826729635798713466616227796405149098735864371603613334425833843691985364599272446520402633678769890102355628936672394072613305077695954673035215275453054275843712687215863423920036880144617199916423439376165579467467668311139346685572888893643931244989001224035051570065929480876181121755531495709261759225421070636777991093804778779469725368054249524372631934839397476083064533872668536647750441209835739619561993450184572218224625014710703861086700858620413798966136880157716178965548584260812673933846861323420699639204535001451108122092196512350639031569193791659109953072254284445737784311654680972871962893100256612013010974302513803268705901328019174251701856152498125961779808104206489488079744550347696998379530312820667616432376878185237984265692362749823306899863896365369970713406288918408192961991878117980860382966957220567191167586466864259506936711901804116566966470201697476027851981710806764574336443489186459793469536154183402619071587155560628203340408559751197086729256169336674550158392008167063219823569314725421314955492162007639273602800043546531525029202361818213860310067919193918771389737186151435607892938272142151787921450946068196186765236456534890593299412374788455819538293880246874225504150929701736663216974809417132350456243798081048147989243103024553775619887966364612668152554895713895497044961999714553471403402409688605238174830930151283565276379125747932577464943469703818026036041312806037065486548796889382281928880522899186687085869513573181152075590711717892499310647432210189715856956622792458499691896709028839620499792509842288230420667689205397186840497123054995088874974177428560688416384703379418207757879876305262989799107904680313893985388536156840149802165435556396521903680713717953000357814416885013130368001571631253599663151030425843461950037623513872240299269237213003908350241627209872178315483079512943175066398588329226501376738121246892509206137345218527486441685757176927045279450319794538670200476398162773920361163536550576568549893148589898991097189637689385118855145962159924484545620152246751981994003591301844365957879315657332170097128055690358199832958882218962973613037633264421362848552850585463326104593391942588709092847771281843515776125148302133975350910491735839801577784722030230116689294077172367477272314144220258090630865000809609375821629897303888817874982031175306251270347012652968125083586051975512834117240989668793136235153924756329604432085658646853283847854104116934009210241440054549421466854669258509271707670698709721757094559935043779552376362364519555214352268640677731169635522417045148662483965850413048564882464935674846292053445043471191825475769829785947092616315590166822786176052076807723482726038519056958038722833287711871986799877592364251404635517952474494624871369331803584120137350597198720248648549076545400278109323571653592018961210084717366848151692949491294907052414699891098047675417686543875386859583957166416468447177613861248090134982562006345896724688822656399911824947395932926774024308556778833685093338735176025822500259506712633926370395715031043023654314448554649343560055763551291991727337340602158546749730123103908063439833319074540351608800259378169624551951287031805782282592683934044502587859587579837704753785875688642333553054979731058919243145255670713155332620765583495699240355087022230370640280274151577256813874544868408838913758599825820772792906462424917383178754550251789301432228155836829273721520144922971664933816270161280968202722558459427019717296581862630592075279194547617823360753064506056227894885989527750934910199022746209125187232851461918491708035944973297089009774213551916325907990569869568521201412765921753554778887167220742204230116856943007591137669727672237400824801000025214079795146707340162124348270072490003336676698832390436916599806273358457766299518274999704374003010857949411216331711384897610154430976031925788579656584369541672244156101460518984920365119991689563169464533926569682741367834082973213856995402251343168313754498966148008208449340424789018582224552548558498590234509717462429334367063048576359030704184193556320174180279882058193477391550340876498382769542338683862603703708881295603087911878566124369169671267801462929007164050427335132394379034482100889781041137216552930393369658714588149501140985237138306539462329480151969999892598312258897251464893359444338869963849072415225276988340300710681614872963147398834150140724032787975354892671276626183642967653655821494696402276397413868392773551035670595514306837567078827605142881594428739849856888245096645912522362892128929241476415692071917711004430839563250749793070186075246527081776103255618994927138455008098796616122865814618376264669784061396576576469388440879060599079839669528418497794022727456336150012005584821060996119215245923773756147224568458259391411472542676175843415040449428151110155444028904728330463847028393552614939636562181012326312801373672401601218738149904314472416308115483660065310684911604816258021464170005194093681377987239566534383225272225487130194028525338616476634540836793264496810887953777140885980163019506355821819768529384230922556856197611076091417742250395459960250272629189430908033756217882730737004069264102740898599213175464754166484781229400876373501434932912172782563675236654866586609315254396847193967829512015699695614404733061100586003933415430929024531708081193066550057228143798631429527515430147761588893117696676255918060667886655863027260086617193170317210362936654875294869131899076292690621225127346922590403146770672296080327239494935976700689323584134614942576539401041558551913609465117389232053203719271744541109178853899388313311625788875151656470883320467259320520761498932308691108759557287572354800639139647952892142424658062763147035212276039418999602091960558560754982671397538040492303954252933733559910867006152648329125600400530325917409803748075382813694146508589385769131016753337937138932822338725368199126472080060816470218996283277889081388005449980656886425388169862793424457962471149318084571149865396072487301700643805402879958311642867226899250778497269210327444627146686204947117241383058037977608504889395620272720099942928995377069979468920771677179423350123213960018044168866870260826151151212579147614826577454437633639723913439635037495370448398835737221301087856652145787028013294326607379994496484973781209378384620506312441104938586310786404023191291270477848949495110364749120710872463962912092037093984631343904125005634089935306002096961407425590574952243697116115230734264961835128180671972110532623648257970601662995434564260318340930210061617458955648917893725578557857410735595494274330398468767577393658165309444097634769115863309744259860337515982579926978670098574436741414436851930160662176197171139227517313763429374005384562069700122526241655910944143606862386679234881561359575158518932628605915535122118656103568838551987946332067305199367919233888077296236013252165770567987395046977567981918817353222016214133491711004426403796802695795834152912005757102986308452358463733332936527505377036340931907696260580935331396721463655258065202138950282707139155407717521442841343811047348511858854765739624812175553257850174578142426816994825958022686703430529921021284436970140979922202316292571178616371978243698968145983911361511214265859713447489717540298965547477064951754863247432783527957690228313507059139388289578926213708486128955113908224276948066429582340757410291924387636391500552679140081032060592362408471325481005767095424311838838853082925548119283747770545906726745150488051172108586466940570140093920467013425040240752519703953669555899158978416369282625977573272101787844294057244489763363103794916724619577652489177174467109422978088634067140222580882427082103796652852688669349856004415072526736723536311094206947461954338024083723233735512105490896223580414960189462807546205530237858864966072915630063638105447444194795043102029866731295271052967174798241910356968123250946011189987363944626068522393674905685679429969556042351365925412384893272011231913459820952639712678565838421558466626730529084454461168022978760416823075900986475427544646873116154530555908687105948628620268047419020476316168106648881124026244415988726928695484623490441971453600790476375393534570418456079531193339988295208827553084358578477107213454734343338477154485022542983667319742112804871037201386162778943404150626134588414870530879445619850462694310133909704220476710497102149797504489843443940353975667817173984100197553680122520326146021178071881999892391168077349655087927907553229355384788357165023668918240314029511314462234589954581878701560831118209207881240143212323279816292096847182056924578655398609847961674012761971672175873203683012701609244033715960883228242425602397243180873291675568353794352894650407834177333294660442290091297226897297900765946196704117315626751173815804562294397141350452627145469691383962470487002211220371066660129321003870277105956510616968106568966766674097425023615457098282865548477858685250380530179923848029564720599747522176179161173535106522993571742891844292381244796018591259307627592827550372195732416816332880794416583819074939143124987186621766686937832949864819619597286874450438633452582909101723102484782113402528494638862768602715913795321872378426319103891703747077435679756854938963892068761754834001972401171677967650097467752082410458920542831434330901575882654794357114438389931418150039402694247625029628975524503837762974749965095490177293381405729797361572913692231071917865571273454371313504606847129360770945107539770914373329315999686303956902382099293924726593356484101860452389049604793686079766070157469461266832361453436734569562050147652770917128294827265710941727813009559805738612746238976457716793518787265937239608386411046194564142135904520706588208904676812609700153302745011569311580765714011173350095047143815148790517032663955828109687542544056008206345918834164948816106826758745812052444659417419486510134586153667071399660328671223395926421069536791230389193180808338533797674276926028738113629316388716697475758734027003450167949647261839765887456614877688268592126359123276317493587627069688191900628335013559615719033090053539456159174266582868606534940660547673904786951986130671915804432452702941371473268126406228794840787535081103740617029668185080395266339125562539282826846616078977002430644546693001312788344659179124185709648704119156913995691369963196262234279012330912206703299818995802675829850284715369083791257792399330996197774545885086494023092240230280676216941222690194979242442795786514493795447262705169535428816254408242680153843544470930205034472310411654185869832751762869368910793651506215368710388316624769654022704032835470901577866470851552370133386272009807537924553452619293589160662713492118130497649570068008245999058590793907419345742125422957043897693294828391209813454916343180193417350724230624931711479459055758801618910894431571387997715101006212100836721657035756808385916146875031326678264737475844792369449983896285018467922022688204058150143629228432333130147670677227969420263021450456760820970085875063300147394064474631915689872434855160920720113588094672652590495462947699873132645141406672524281710664633869171857655583767129181297687431276368979368301287478143591497403064939217388144969387397594686254202575917594044049232876178876863104743296795393339893161792822083201637404070590630288171714307426282190538887440392219304776962051731841696521862756415498963216600397952644334330442480266164067382835787096908857129114575322119658535486077298761950215734567717656198847237349525418337628734861880629560240024495394165015834379358037769892246081242838751965115220556120160988855676258404092972905490768346664285561357793267293784039713808752520023292024372058895529855750033333609640321051379648152578439594621508462488938983876643153577015138248508776005561602543463139302330584623306190693862709381041943709798376928373363007090248864399805400293588526320520074227125727005816040389306251422685632792072817807973834682941819712226153056071030824448521628409369578880178110012531188854698427691994042503112205924899350455367517893330373248500417295576772193681915610329034143610156927146594580347211744228895402265735184674471740992129690064485979882839364943373792126279227219020982031127450416916089951850224536327931032673959765743617887281682649922306647076591236887591850602743855849569070590559551454221984979383557524360145724710276353619978455804599430585984337225268632724451691076727437441874206158107314846726699210774118825031014295888197836200843045341243924011967107426433959318219628558381837411799195153484804501162719822570005849704532900523478205278528743026993941411931953438499918191763660238641520394565010245365750737220076555867776316442089233122570162371706087696047777941521902846573686176095959505309734647796664922637013112286161524705041459141691672203394105418235591677690130229889175699966134832382998517575353706520506363344868694736102738182131011255486782197836583183612729239111433316819977632848640980072881766676908034707993703088298028883401330295160634689512161327694045603074154160371115255403332293298744310248136697204463319148264422125334307172604112718798790326668435616055726167627020500620384337330407657523631675330473002506389492957384972733917258547906199227281852305139117185799317169417744983000268986665379192620017952027585138564826363405598648037718193126557186987198520895736245619090568962916458811582244778266144702436224501959589537783901404669742514091543418724607370108968662340664079399573961545185555356149783507250951702338129781578168827235062941151340488995067022101682317345378637980301759198719043036082722942843229732710844677249732154751104031767856818594820488210153876840228199109678049633766815520490070040912134616326390759009411888283232084198976765914923722242049523851564982309735026294032739231276202579101033007740320691347026141515540489023950497448972735432892386270496050563846791940545115622585560522123646456513603386966078337575482887082497217188313662403318279240686597393318797542643947099295533810503271358622460241692482789765295498600845451216916445669919812684876514478011248908331215193197266264430300328366712717952415338162728169082069357867366814620256885361397404070383216801977909313665654644656848283483437484925854251686220305958716349868892699665292032773507095594266959596524788288970798100185051529690653642782420583688364120710699157256680835708960654440705817194951920099628513965093598244624828675037906266809718689281308959501674911180319709494508834056308475313511400551775478713040357057124223083604839708417928998563318921544018429280221435561981985269015481890797955281205558071012755807200996646480756134749392765301048298783619080829183934131884948569802979273541086545427000505005446685299548977745940258453964523286788955656763917929247948771123086705059001808529166929993062042046427135964341505441308033588465509855924390135946688913856253181811293201404786186413649099726291601611403842239208223444533265602984395234667987225903788682018412382803128996402660080046885544374916622166059681238001340171617592092182059657919704046251849356548923409792269482205237473981047404731116349308728769353944642170097902399482611461900586749110717017675477876717393472834110925327128937978523084879573622866300023578419790011203802580570285223198453634206198302825913559874934296533681529045126453322179485833222849736312669371430096793175967902634144622658298604397143373306081621734378502203225259491053886617323028306636725434954305409199050433502961641125271059854253810049460889139641726878331825972860702029972442655033347998194661658318681433407617030515051662441266355180715525370756430012464909006402766124353834794149457116140818048877123975039373570038382670459189237383732011561116023723956098185530491540574274077124498797554776322406385911375634080177370644590285434529550357819500391501876076972896024728107591803621511415178257272804056006860258844055617492118925905458893777897301866813330027902460759153538174439794796629902365962333325510949724806863095541593468633840811123106128339143165435954282662959465909439432166401194224225693977698760182883629899426245745588088748579824082442660437417582122338971017618124639814930439313366193652091864389532248509004426476940886547305467915053179517958862431997197181933959792362259419134629971658928302823969202698065577404409499309330242560978565160142489595964923006821371573895948067945213851822876443111814670435584087197736907130673798413097647588021116860426076866728863309541470456493132999627500920835198649120659189024951432167751778406582623439279695474202857372600920414300756015987694022865973988271116422233971240205541152334315809812372839603096663527219572098323296457824436813834245722411738412912221749304702894269868808579706588464543632418404685942495132748481756440229370938604129080150740137249167248612798315090321076528785112013677537339893504579529089681382454671111460445840964408157460828219638590909316852597665412802182554436956809212013916919671641975587636142656455560152934560997278438032073921837453955507310817736210087633545249536992592811489594992864725516302742840993806605132980641044521142995475431964544692127821187439601283891002889289439361939516604431044617312191833535684533234818544180243403225051395791635053283484233554919999057642820195096037293985990796848435962657780759923875273010533646788703415866905928123342779215111373917971095897978313249472003167756311221292022144282703273825870961312368607060393437094605941678527580920226378345172419231960569759141462721239749027032691783540346318682667109322631231683789540046169208582340946086277276947039635797477660503561088640780844456553346602470321287580599437421405309650301923537669279225766319957802480266781089514235449623599525146769901997497483773129797581841308219081666487779977763080026677111592250669522428740577918167238800121076186714686101852958384673974229178573827107287895842740229120303965482195024841641734215852631032919290246671718007419804770698877039952254425785540909710162439312352514959717246059215995685853804556981779744809513664357755743595525514207637367187113483946277505903099926902423917707279094024754165604180526983613062987150231164011874111145472194536349617758779057003533210174164783597589703132830832805056449855612268548275024897879195750445593236844543023729178464262996783746284584431069025308507260167875873861815010157679303834488231119358211527959859971870008298975641428917876466636822779304968957121150393815629380007814901918561146930585806192472724597063374322955803392616360874701293283612614830502297400219326501943368260580574963353014149606230640486974727268731469945489389942901793247706917800250834194611347098486037861696021475488393007130184738865168979572254431244686828799511812601538530590209543687196858063408231101167246096780009412956453348262472430560564618892401302020176259988278796287692934016943809538140538807294372182919302602530721731492275085262570887089554628627619399449615765264450303316271239475948851863775332748115447531330595304679732014206966501433667007880474411865980731495508182454099291840712887203614547075935774653962967367148649885224234985720275023195853334806878671142174437942844935281805551229251313086505406557931332750100667759953915442784814964415925982607135458711696538082565918632526484749497678526167925443516979336334090135183934110361093372752477553198235335631768166521250028268873362975343719515831833504014963175736901721030637489166701222946294561929416630731677438298580833700347145481776240645498636804728105061456348996459148695270850328279202430506934583316593773695079231158343765792847619005414760778040906680641460529016354104823267604260508275485922060486398570266665275829117647986549938944793716472117415668978308253389567610079986163903710764424773637963888728846165981959961766851119319632990476392623520578137281106774931897194180803229581741554622111490965420502090124678301138348028341788925675445005449159364540382161128289949284524813101899117434964219159322953417589910416378373585894408871123896031009764181521512552777452969793780603623535589049144216183030290335229011233814026807755583027870039921430540102265121980083114212311955656282358692503588746214807665231210400227301533173326859162970364685230420043499840444283465450101344573621752100159521851547676849090745712238560428273072794862008739484342256830416660611607497009334158567557688745137615544262009933991582734099345233597473780622019601232529863757711283367281364793378897457465966307729529679337685231193987492427339380561303377641278999153338204297122394909283050164216786020475844153712599625329241134146458260101772852228939222207342026982852962978997177134411362513441101196872768134202042467561792909005700014640051455935207221428410301796161059736290121267099296586256083747164625363703440629628865868060449992660917473735736503503681095575457736776259055300560294028061663875559254887875758220981727023835006117294658968716003320808370084554682055598662867968117384653560422861559524002034269236429563862419577545823342517974463024736914737014126825008093713441385636505574168454754491719283424691790982390330581650260582231673112486037428750672036477364442428260562239035441688673213775393344154289462561631471827285866233362671877066228942389404173391477489736501822031065569105921199879167301184333798717013782212526967019232613789862369313321169818697094259263021789363212052681966768548388596801919189596699009807384097880908787867419126069203054456769036166780606872576717426479440344041166989412901733383757985789942357884039036140451501729833151732292909620511628166597305542560319476391530785445717596149188143784241364946553377303597275137883622943334184290347071371220973930564838760762501176942279797070539172388389550735030645439186160372813486533149965715034308402481510684893819669412216926863473748291134382840804111377540912638863142728748328170378549354750028835031659442633434423054413446196698885890427723174541523593343838876373362310038049341252927609928239250673685496709406885108235539324717635532095378058210183913364322780617507321701928619696765700632021338262101951311142041653521090528311635198624477567910369967406999333626984902006437201346876957772043972110890954665485663764721641155835672840185853947575652930742159078368551330752215654840775031646620985106988665399842104428994203339767177124482952527170786481172090013400133387002826159843335313174546289789012213117300400729714637027267269325773456892195072622516191875967922519856703831007720521480460662000022638234075864640063600747222954226703885961574451596073075204437212278973763240003118936332364606294563720386803780351682661667659531688869129111811618780824881674196762386773951814104121198888247426220949906744484987080211410964944841287613820237597736770924592302613259167568626516866549254432752179273156864481078344236439213581830115161770676685867686663295480940807139691655719109906627831902303908005589551812987873212441447158660334810452003597947606864558628105709011086843340064199543185049760211501176712341110539225902586199089360252154990610134864732046236842453463341452767171252556777470124821034438949266245543729123410993386593962862524483645466459970505038277522981165630458677686599361374717162372144388384162134290881594891144481030366564179223993182084031126834719337956428524629822263797000259363459990975703719427384149297953772435360430318148143003658984604658935798960692151907811733658187417410634891417603635474417417140538367669513410596688776038740790930070965226865316191456643417214127584873308267430305958930660008025804536374647625516472121088925838753610224978252387030149340642093395703343561270180147306688575211935474855228987953313733180201470052560924659003303985322972442944855782644004179586890011973701492116370148265215741661101366590935432494204432656376697351272322472256156289158389456695863680240856588001321788545935922643542090461382559837022388642009258200318526224870954806689622525725130500922673099434656048417751912750511303128720302157046722513994096474242359723011740672614529498757766720484174141865931783999871954134905856254360169672003862011084471959476635121300250997832310370492839913098205383674384279410259688992959034424467328021310806164875230571558524966786836790291639803215706449620298294934086066487809710542862276760211223416163820327102914813482119099489884901291875642334859374980902682301971674440862772572607952685043753425850535876665451071313439927270766551720323316044493956071831081753596970478212083148168098200664220616151403273859989382399737058758989258483244194254022344955252407145187628407944424420453876692262224705474616874370589694965499455650564189430212213754692006075355140555230793888834865307068428731649891904155012392432379604432456397996463450402898761062929749639007753211168547065151409145820161574700418750746026660441138762604188858847326114224085615545194348953466493991114871622640539642674978963232654369482379350048821359803984168058992156102029327070027713337689439092552532621873372345214487497894565212136190580711513202281405179531303933902252970212107709013750223274487317542162478355943795363178730873944723899039706646302523723448765969070470566912030397132099843525676319311724224974221400180214855710685399338131475023338743550395046628008920091056983254939101324416927771940077102445834778393459134638778936147362177292519975159253213023314816898129394062228730761144781268165156116637342041014061737843029125372240323106423534980948666935623059237905464884378339401643012926621308576701366486902541652309630754808098773977217638480499267778131986900500729817932181170960116922041061148089633257787053774344166357531742939679457819558343905183825830127075202218816935925402337211548054405718931131824289315164257789074075705967121895313389641607643809361472154259829007424045883274004953568272586336233371970486587158656131813018848257298115087535823349457481112378634458974269100121960217156192722424402357520515583179714917363642155337753305909341506693734810266980131666620966284811868045645673761350993406212185768578894411394781530886737092157855953061052183729829193880057767561764467143609960304894823655993801377206189422496357657767251393445331475130363995406538861077743016117899734343452027353965318031568378415201425062017847831058029347830593295140616020398146340283553540446869767801720995708844300044785229254448852189731200546512267064166829880708474730250676538976426126663046556860833730505191004497907030538204646953223643739206493659406967633717843156659868255699627098964067677532155153731097527679029354104081050170146208334633063668795677487129040124033703880053162686120276709950789282580825900900381976688341501853484424993156134180789272881782645699101211191485561667699424107015754816267084901017078054507372326138587592208241682863055386589197550032637894950823551523436998929561463671963559588894908985806257461808182371775183624391329150150001921197046085933171042350336525858679483724208524963433648378754628269131775970454235073874964032457548157036533964945757610752434457799109673587707390341479302288709798291109316890694451963495498814517302784734398884946064220450521096991456260413018494647025101982200615095342312365084907520499967202903514928020929209738823787976456130922292605925831906529306594691603461828409408242410085408023784543699621140659374949740947814474131076338398266512910114825862221904304223451389678278581192094240685804906342656022319748861124854445270218292315483197460386745507732359183110521963130168136750537037271627505125216652906256816654425749497577592962676441551427105063997843364347380984421679434175882816056843944590344725550945338777585716204559971269978223324248377663283223794093662376955218160600408498927653062441564124049173903473426444771745940207195880642247258662535407356803142622130453908498536626475947603402918804673355803357928613272500331474156915609853482373018929755668091082485293039425564802407656432818518223838092402626785168947968013505878585510086569074617484947748220988863741982404469245698287664807213889509340895011686899075148748898916281142422659171062579394933742300840017212500903568735222979245587920987387213531670224855456750739121188764440093644410024869877736098962158810279704886413956035908948665542616232331125373376491969965019180634573196964153820686686897617299699697195243990469622364961194892096769108609768242894495705079457377121410692552231150877253087158605191320037229821775225265520868591763501084626728320845439850776553544994359673522696637946548539645124417684247248034754912193150427449195963813991645077816980495509894929368239113963210270167679651024842145597720261081424845983033592560877852271053937302541127586296486418642006526730951014502427054238291575347924402622643464578296509764640956511683470105044416020785964750986211425315236655682287584548253597851808235580610866219469651936159506511045817117990490050453209494049910811030306351958490964302198088341530688278961166466084647965758676776670707131919243144691510446250937250565559896074204816375263324954377495418929889977059705315011351552336156913148894452700182720515503266866888371583038179885719687100129151083179572488117326357857758887690347334342480158197430999839330625610307271266189568924672139393642496227987924061336308075271947529236010098112723085492075608161285318351216831316106121502672586660108444219022622322445319685766714834615267471547950725037471195048449210064737446790347585704282785083704159514040377131991011115965475032452548562401776787785963856689423148739768116392707515406275147086872874174574533391043907279738369056558768549245189162280093706117552593131022789049459325470129437660654347723309889530543806003331198618790951121949529044813127266361000045918312870308989041329785273143871858017086783410335233701839016670539979576542451257463932893984922674640410624532057799108195375724187156385872623554992152931185064064733230964580850963893818760051147815449323302002127395359811478206584153244150817120252112829393410873084432977636393248579770765366153807362346359290284692998048058240847174025981616181927624059431421197011300930859847045706739655972586450832332937606972495427659270980840577336753699852213581283360288943285659738993493043229823557101941850558912091874454244729024785235646443821384546920462472044253277002744707510117470939971137447027576265408416356551600561387159311831037711645216565295899852163994684960590279977199264728507783568620943233235226954325683968170584386902318182771037996026578866291969778225882788611697829185922454024576918832397093751134249274675024301949369169394660617051632047963879479356832382744794945028173956029904028864014179252722894255505144421046266839389274033438705779321843644711435206177748214960557340858000002583386228369944621629427681342355909342286548984767522422222359836410680663402009041865500357572850751082970340718594987373749198742101054620879612007050567721815004674360001811529622817366036614505245911597680078232493409304326946026490184947898275784421765075508836270762001669709801162547416768958421328994405997650930783975798276309246576343803868391754916685407318446028304374896490184205595629469318011008739293005741534524309931795321581930208221045424798036385161640082437483072818507772384756293256041583847905245612232683552415216913800004150375768053584787079742504242978590049022295267140680205664410557453908283509358454895422029419447020325699594635935013250306316227387256492818431570549304748043889773204302587144582292344442351724153821872027813323648548681784749231680877996728211629567904680988403008868015591956909949703846252140151203610016880917087998331034191698702510325906970969664549785325561602980668464340129369125907853465566587777657073267838256921241363272522642069919216445465763703594913316361152865889446571777680256566523204170030542620880801962040608027656922058347419433012051831123370828563847966129730251877135621752113413445852620528160510056521064420485983330349193699438220632365221570647103656437016199725513652181019780090945023218058098643406757417662887114597303495472659497258821397146305383260538852481987432426967028322090171774888195696318165515005249068463247461974585511376235172443177214454866174429833309939633372940496173314685786941996217976938886123740142376603430420195030366839138667972372503186731771514044000374937654006213992961642771064986762486052648653580934239091961691021922812118510643161122726016469745728242431039869348579995405618493715825159605923704339719343202533541823669977248053654414623262574804881297523382519860908807648441360304854595921614979385443776544927430215726377414091031322268750008110223376137518226128054368477198571399885721796778632151456368662535780838449887062992441910478074471542023300394618462895510077666890998739027592667600465091606924433011151533808757114752103266477436390577583431653019603807147990343856756047021557746043195477131057213792092405228351558002391917959218753570214524217233012647161010084988547584534188954309223021090208158487062151663236775595510777032586077910811489825941046595098221472593004206810625149197250120032137213829306761408720679604119564129458985954113510421319982667058613601939910848002447434579711820934163899285420496026704703324903891208737411542046855168126814170838545308795654689390787475416971130327629469531398302817262832191898018519358992923542778259308375508303766563498912091346710606752252482292514996555800686561603015734885257244653456839360419612486117926297890652882048356695117072722112447258747313988360125232603059563778178520231081403575358563354667864027058346699401651239294337355637758469278390600829005333969645628401402004913353805698874591711360350691875563151681105076556911578571708653976853236706469286826666814047938129454327198340104280225788258385922556385400097459647106668465280364653405996165107860676756545525503670470550052654050108825139037898691931859074077783857495217223955162492159798145157661119713848771283458131156553728805699644068381549471660837914390809477488497437249552866670777463410655261778789842398247258355704726971783793456615293469775708835290710007833819396002919514414315740070223865663097807281284421214550481239852097714862743270557105034088490926138224664125387813871149337089151293843368196962171221727404008086012456472914982761704301563295524969982302136589824801472643314803813217244678933495652598114307305239754326735107924455582634322449552263055705095860407601900454995024099471824523640963440403604638186379376759413819572042122302918918722403849898419281884247516545850702158527164030789600744354044079136092499210622547321671438788874910664055628115551984168937277899497533957205946911691601623107290667394986302245428832164447887167785206840398375478580848213864072508192963358438844821060128450606042965600819977679320829535536134747881012656955720921343886493531880854375115548318938136898224692520348259608359550369122703360214245191920779592844463444798922698892977989751170597504977301673745508892011684080912253186569286602282837486372243282478622529554629057456352186786911608420989922449353018037216127423636098188783203802954716920898435588867265643183594882812328484196140995945259064489314471674649074924460375634978994145407909841766119115909500777627518719787841259592042372698600577297792635743767147627716483926714399837964034301315953468785752830771342667382720724508320923838542687275237734143371987347835713476155173962414589322245102228348719433621936663634266808677342490482953954963023634212028163999917286102311580304004835419379748417127955946317620818541442876331212152440458844979258095413652771327111281123593334230943567218940914095024848424319148807511386593656017378136781608471993523624635717197786606600557693065385139760409599557160077491896730411131724517243571425964671097090768408221558553958544821882694907047923336320351541497678669171799650095928105146367009453156288774488742367455511216705474851989901021954509403837400133414747125827507006011375749508017161227675160037105728478203995348454616600507140539409950881564063628130077230056407820653605509436182747737019709945167101865108173651173551667092981232955637109389845344574295830325041761771760848344689456921609766212155646664476459427263509752207840699104368024485953861487259839015285154014613772542801458998580480394712356875394432322612637373506350501501367298441638263478687676479402678271847161378519902012974223362967723228388769630109010936917167009001709054750131422928934355627118368835350487517172767740113038126444893505220174223355078709468796348491255706651098249498469440745017489528990176229997155860289414504122688300550164736589610005617926873054231708986178055412303797669543024183604326163584811264385978012908402623061638201280683005961957726349483545734635192307761133841276757301547982379781672395861900381857957359798875847475528763374133524539102825682270091309043141034345882235418000042010925109853021334998710261502197752774374911136712875651139004524412499943478782921257496545675905883188727927250166355486268433793403613473158478641097076996626625782086184892833039783368928630896880532058275063458134133301448165311418686785662617260342508722574110386482874650371436296642189904621710755438109284915356478879035275391510761319317309366089430383600216898190471343992349761146325499947517666586744335619585168182315684452772174984070873293502037341907701466268734215410035159904695171992651923653217226283967835591727885877709440367757475517225237951578255935999511157947462044984698996414296869435011611031329345260917074833047925951918773941688093329767332283001130959463233049612391270483513609602463376322174857429239556953935155792544110660989625241533753037157788118511151238752571717468849942011583928538423193674710858460498393497031985046244808563463038313676234268892053558585695566295925709877597293785005846140952596667480052136425482790177526702310202586927941117257209425454155953524137166347043033425431910036489952215409377582720998173086681660042669892374293300744890274237111408143751615611436998494023256810931463162257760348121640968814384958974103840938181606142337880821960503072052886726994047482392283938424459076147318055893416163970928198140609918635740062221825523995753039879089839420404756469497651047654856503498593103627956129149418620108170905531561529037401578408904086332075097346140965934565828056384933587871075399542977406140480099372059613254252921823227547912261754023296780130204577018133441325101951444460616182362120428281100905322986410076931860055602894741679999939365433164057418315233488534722213316847261659545593789220571023100324768549873944432690671786231036971619012658882223826526498794259514230597683119901626543612004610511465422391101305056722019278325089401751215626566277216585579890354168009925351363832920010152809936065329262004315042947025240146691333338069118182404514237483000999285819195374964813182125720996564341428456587693868714581339286748726959595743232868695474908300988973339664147877543023158515394254465406035884009026939829922640133691929573881117123243413508614864041811475182449862652142411716038535754761670201703022762768779219001698308473092269507088932001290567211676310427434401543552973392120717824982012522042649615679944484413947137811682860555158190337451695956873130491758661494130012876978138210540825148994574594265176991909382269725781257259939765280879189115933762162469114421507553737986953828679230135709583801441291223811605027691900695190948995283904232919397175314959640911307404231129146861866303073699535213142896956348253559382577736280354634377005255744995030775489804163189114836725554218830226161014811052399802108899210255824866111419879406940862254606231078108116010672878756208191196096460132709318495837132969409310259677212171635163697194365423286205102929810966258214913853151023611641658654884671582783741360683531809550635039046656175030878272703764606409032210127397454873955814404611331455722805807327616984346150680577326114036853619184929808163727514141729669879018808030514577405925046436162690318820815666069748590326054694650262484328191351897449528225213510009925559760470847276227071620836346585298469216270915999083967788762949154422131338248523159588904419157632985305329080588872180891926929906531103710998194724822267851532340785179827432596226742968284185178818853976799043307361104694173241473435850101372944592659434255167869254930388260389697482924389793197724658136224391110280058966692800472211410456719722829851203986704341205120435312952831470166058826782479550017454502165873259601542489207310979436487742065473137369994635077157997315248333088756182131400965484029476773264728608467147645419065296791739330839597374796845196405911509307357853317460034912862179685945076016929229413468139606335153305744618476907260854978980924086147539754517149893440924803467790676360991978730471456393154800301535028544378859978188058612446498583291145616999635173842821925267242823659339537297788529712850212060464209648258221070152688181453675396503516036973934889546944833074680043295557752133805588249227043005617811694154618894679827294585535527070789021510494095427202519102738924062061091808824527561538189599958967308527511867200427086639363181256682122152878286502718348405551057525490834615944360756510567693072408450428600081364197890826301460943880144208849235100802726625489196228548496756106656072200197971077298018784247160133400896020316196933492556597581017873914737484065177068853682231424424472729522277285085520665027094775929254289051906033214034680016499210144264416322375029073887045993085605208260346519013000384441031205829124689042720723514632181309060468059727960562374890205681383809039477768538292116924727652425522902118393814044430561657144348427718832908698121580635289420854988862132618722816394114690019515654595777598397846871239114888319747388140760746927648067846131088200877217059150199194241460494265507057555393620529052054003824207662303292913310066379137571001452080375061869062076617749814765199854631485407378905844074778055600304479771446274222073480326278742621480025445489027601609734682894143012554150105503429955060205177770620512735039877248484188415120013480118032442130850341677295237561572863722310072200611570041804370457546561597015785302588507073830309112703765124313752885939091944223843493022435202929597821087806130308174933300978724244807714761883057853913421605905935420564184155363492545731647286193811039947017319424423292436374260400921859119380477032305659338034036755244086819867786808162810617194534672853669228950134264896155247347291633071448737579678328512159517082539980499872685912108752605285133546048222598380151588002035069774278388681906930035206403122717073128684095293260521383652361170002546948084326986109699990830350015406613960905499927991146241859915468874425530794858622116081812677431544178977331022258530106984664887197939986353918414703019375532689410469058613445080480795427482096157822530475198781000396905606635689010297362654163563274239877500459600799843544392342143429494827551660148115402480142024722854157972777863994187361843065874738884861957715464711222423243689786077655340009684369395336152625571882643523922999402667516531036585277503402501642892628152902130652115946034349449224765147634278129973388810803252017995693241163394719809204140304805805555955830807391610482513195712486838440619321296451323337693427390791535250968659019406190396909496486478834207950231930890236289698744927381388530739341545119339543004391327335451940300656938723205687350504271462623151433170599578272332699310119617663417730939719139678754273055238942610994762229405985116310306887487126914692020365856852350093622206432853161190682113527183386209175589597047855178480720995405880849526510001349317094864463477500137340955452299113858861704467343068910302937879177252872235980938914677158528318792916689619616340380209281792193703627544388286926957026212720084363761190981600593985436253047916014847262565893766845123087820337364036401934508607468628660512393759570066366913334079032186828703796086920421035062070597547738676603156100512044019572475264453522060262234746924450708068320833512179080753605669658009531219746927395440728863413312577860263862359317526723276535097783016401245345035438014305165927610365077268458274925721324803236634655043461152052512384902687371408361385535871519575758512727583119524901231040073665745351780219688756936608061332280815836230035258313889684868196888665497265228748102839426302425483612627580677696033330936034985492889232824494240634058651403307953572179146785914338103770601563328810665153486448512831320405075121923493277463130372892063216184155896721344014241841094421738810225071352886922574566453130374260476497582592339676638232154939770172866866269239984173012618885118249029213582785819786592556040043879055184223290907477992237362284221536644457831275742989434798633249766617997376829720747534367354558588806838804912646416290626562568070058589108012357214182396908708328995596463223988481193671676716570429692667539854690463041306976098669928444011118219512451814608107994868988508375624815752109771726787102149958505707324422125501204865360170433952957150750414882299659312989414444187753538676645217936555160810233652216334569043232060060268321009460681132174036942437327917683500769952958656281351098399110239327798519833193617401781717982960899031876085646230946865057065822826900873247600398681364930282388606207394887140582371284948757850028828194690463168607464923254154800444499083019798478913481408787771799126968974941898916276324190569614588824726193091950838781427270405685800200041084953315268481772646324673010686708899783163520118266560255162932794414027974318576859329083347601347457952767921700831998041079004302750780797557517272935636045474257345413575215057880988518341539091975640783002205032128491137590912170267231791715284191758581202857582480750893216589398850645342181167643809925159004205120491014087702277446157756309138204654018262930557600213683015977283355297845230837188453865495516624376803030039590646410418275910536723568027798573999219390557261130489736486074085502992711285023506781044767678357108370945025211004871102037104921421092885886455645977798202280650434898820351400301841946727630031399166971607242204231577315124038115283914823737048856234207963471833989805004375907447855910676604883676801041555385064686743907187054218114926729900883851082754386312965862085264463727900002822356169163248663401892912298866551274777135640795361113699428683858264023013561617522480109296837784053941870520815284728328914408634774585623754927305669103892384899727173464128737593713054807183567553558616609485212627434153923131112170480246469375905135880244472081125211938527841211216432226685228193590830199718019273182983722155371326140788623396598766419179380457137031001956558517661504568106450541346058015742896749450384898850986199237697157175697867113367555477778251834670207799920391683532557413257166399200946411956299522382076590896525635436454169583207080796175788731362509344719314586314945091903007326258030004092170729446779556408578042172780937211167995401934733542508888458803065105775667409132753422488352817164728019488904333199966582687184603548624870497099119853577539271984182783288430391771641722037886001154157870766355470121474778299549969104015802802033782440672770036704432659438607261723916260112557229285302706244555649036984338376987053198746334267992834164271795675792849262410114699569162576812976055449999442242799097222015482414919960618011320195720946573392432580145587088414660540691539295841955716887266165474668296019586385615727430208778856967775749532630084178300873301582434170967658358101800511991968976428241913849801876926674056018512863094235670560030856249423276339874185073708766420201119089514321420815701633068198523803834252103797877069632919085641821833443385279007184031298409485013776758072484638983184501686829192507653708336034613142787754591687162209161530262997771234354438050217748670285743612162628492961567945107295761492743750238148366933964384195580449920828758084759177650901530842996502052586243536246455092767367636378491081267222735726010840771016642137760464161115211209627067083538439384094882462747685223457613275561367418573110030140872937293853036794412319347523511596934889395289294565095745504043379137456719136202717256354346366347329852994391040886472706468410787931262841345593254557022686119767015476749829673140900049926859191652911212473407344267528036595698136669680933646548821826099892012572554868271200902451861420265916838765599500770229234845972365204723941150901762417045973554284771294652699959057871543031343025858349627649921471953155665027465109421730392029510780091362279610287709593589209055489514302578552829261601216323448467460262735238180255431867628094984690274507065795264545074799552303072864400604268700203708497609132897669552856140930968452062837055823804968628256330811186630642744237215049279776137876550810057520123717275165801011980396184282361487624132941143641113977104357464302008111546298292205085279846820974589534504476343453496395303505086062568908387578061310009532844360781424783532986925627730134673523515003571276371659790094585129810668930379860422650183869555407263737815396734426075322277736099038837540816393655061826387019473543073748456712972177487863245305398534191214573329522753620588678195324328698416178844200808024993567771903383505882133547372933637535177361748597393294898803594176755612598445657217051385406205406172945291414348771104330304690873736066145639383420102081484805168678544450759155304495699738986159462777881302151567878114996003613267849422959386457083647179855074310528380770416062472900660294645571381508015237651118578562597668271977142765769659050076316977374746335323329696207102748031994122829397178515573255175674136450486982064407425096847621192457069032374903163432395040057693268908286429822799963995565990854885710836626580083727283327685099665189217418336464088136067938766189422579638254886879379035268062952815770288708693968106130810154592161577424604511776604660222879851465433288539319055682321697535929016784359509564922246379098221378513312502978502402906707027261535566243761118328844360139743690154530032089535285126890632681458360448979316658233429604403028794485480436847599679028744352850232561748770691404036308615976660204838800669988143958078243266914816396413841314751078229685012367475930398172352854744924384878320087965046817842989088062252685905795411164051747788720377517092317086298497114052444830009737791456209918931291138940955479254423060057605730588760950810646979096513594338122775577699501106186099436626129379573655501664260049430535571494729825998388611945576289071742795635700806313093963659609256726803180191442010457463524038353506385889597446628797356891187793095251186926904994329019756569794940558133413615703189725376654741443695222866248910288387955050719484787765615376404137531634372501117982732863824615987534198118910007136077751329315509069603477455471843603270538354350373443843123574975721944907801363135172389380928398572835389181033324580676685301767455469042714343850857451443860068763061310342521743515319949335426553231930437776876133652279945203292817705634676127885541424681414978856218715522043294863380299313978899264277356223951416085409951492674491577848245542148836301408640117677716756445914332615327175312022945456754859861758373219444721988020365398713826940752850695933728066510989018328493943049935271282741817644030087017513643394380799928761168445727690197602913738796637659687106173898108860671032361746528348319439022242256283068443398549061311485729186856233901167863771530881464665353251989721480039234274186357958415831567025206267639254802923856244385763219445980186384188490126361050199319822125678336342092725135110837122439837604092745675231487846528654747130359655184617072716797406007619963057465964894241106388334953866214172041193752531017155786914888131268701421121509734942184097745901904226093640154647381424286620327303780559083708680233711440190262872969957806172687441278432115503770113366103727491407104262958117304632130163003201822099611526399161920791118255355528970470144909388925355181500208877049718686533875333913583754671379742653160434462432462064867397424992548917315415005291221362129586319842423951767473600001539608443526935719671426359567603410314843321097642505862195678701007255877541313865199398871654929429424272748184043536156335067667235448729620856845985093676001631905283914674237859010291165803197472237550897518225926188879182005474182700493660243081484791385131505872533255707498569207968024917825793667906959359874050303321229676189788657354112478127271855123327310975552539871558586220148879587938667126545945120142161985706397523135609126416263444629976422818136334091491482017425487988539335537502448536770966471788782704643547164999051693169643353733102084223454689167799779110107958661857455148774284167872599838322688646750159254634977436255996936963237687202860520121931528385535618326538460572729529093679847397486553107093717093797290937905729343368058097885628475097803367691359875388604591970285232523429143231771639482324409278035110322818501742812502764247036600738292816850826116867424659835006715728146390026709850584926981745488177738762427446340527862807688082687220478684392402443019749860153000392103936984016112847432742602954369677124975612662274498779876037845051762367719630980327549200597779544080681191810036536477294130847241315988566800608498366390562625760111545214483337703761688186848423950416746639333257416084471432971816686762642363688765934564284788967462853314116808118538970653533314293170340020594795153467937863828841301596574034075700658101243772522749511060284510593954681714071753145104517160040329865645050975322325627647187081172330669040280091399967018931461484016475945360210513046392562463451765493968882225226897628961466984716119565938545681071814650686898839435416349403623139473742604695253985422203933688264998870164889384694302983432023299333953720897662743503751467910587495616719163897074597005138832172782995975107858497283675979659880492916186325655320001912720598761641541996716726330991532412935661351309318486386227659577100408557694569388247768652509094360510174645282289614527970145098385651582152553143475025264988968304868765128858999863078396501163747498031537291203343507941155172140307098995961467423015389040289873527042908083585753646198248170791119438588628190334704124846903822900910084422306293528300507554786174945990492728705625115701609547689881599597067247745129122037222293285671543665206431412959758592091503129893154337161366216486427096658101148046149564090058009778323765348175201492102927870768424675336707217227589151740361442780694186426156385875391187412121918484593939597652263165568091874586134421023059889151915256449395861123796108250882542823705602362827376230696115121695481499842299711134556101238436233369447172436656145636149694012400607249674756493453933369880367361066882584485753493778628776303726264989603306002080365217257710776481932465557180867902697306873843826091423031231569155898989876292084214951709352563366878131691019668533040671952435369528419345710165430409093550702386390100678866005978408826420373909376521507945736696005287668551970335950932045927507911221751820835768472123969203204356808767688781585601976655983717513224952500220940013758040291100015072718184048519405762608032712478328549476159653899565043341726132978557381234923354327458479079245342133657507248211201055426760851807274645511702564099278674882978362900267434055955410727676003696503248500985438886637802328476530769485186373963755859663494749494832773298846493229858450033309780618820590975175142241311004919613151547878332017366387775534315186637276048239021990029846967100339524682463178318945283502076623063411273898328106193331712671557790442409618827155301088174893949881110152305031676400825244698536698498588559557921393106104367584767462372416527133301976494426302076587024365297271267924654500320203303702348213000166700325931929414027671055929187918575062444719747174740526408400971695230980035636697433221695397241980610816596291810718361052637649995009877045007333480904907719928409914413405315448866510659331600621245446315650341490296405160002129072656501906604327495299121886309791019386361188135869923541091905994870998273726929877123746000593938983594109022157687656277582527520999941193872746840764033433603539708784026724133111928776020962099156147981455020023888838303428902942622040259324047168119546520247222878505059714863611303879244083725222488714727752808113484847866507150579502329716496579973503886582419478188089770072347634274703599052283146405145887727265874647329291658940645753034543749107945983534111631347797505711366091847279390721013559419155352378834724927920279534265915255878037117124157759875528860724079558358957222405180726270245198678820722503780502507415429809183625423533700595072267592707818009696316241045544499023691031358070419232384999137141181116651345985704032432852092754107503490431654059586726296276843116428959848503316030792153976848264002153475569359248815209767880865178269181654122284258743588625297415084335232021910918901760422317410219020248998669384709599823071283717228726218592040501374645748446324366337323755409338377553456979901230163413353544508564776271362287561435523031612345263732095225677101472374583323739437839822501700852416899314419469827568076819970386828622150747676951693524492894639776650240883151805871892204060738497719844415565356772944848360232693828200963137146560907776934243630047179775409160837192594299333700127719415696730156904686002062311273498517980727735467453445599111215154840055550790900686212741810766640771945491733233792217101299094249634465742344028053135461055547116231488432799506906121300239181793139149823265814047593905395035116655540421387846732931552623798942423081694497046242701725420394132757963848464187209761476589025792194044247722541013844068152103674659477146889779381106884378461788916674839878959144787674253917128765572620006477239147146797203699786167450759255784035615794195758991215636459933262047163589072030823002831884806934897399623807124239228236035089875376486570548318378733206355946713321384707493002640330633310741754532998077579085791259954677563681514580563033966809311814180941477236423451428164489008589908758991012453058898382665290288444431685106805588234470415016830420437816854016391353311521941876647273450633196278931591690933945475779126805961676965017451712878784567493091877107772507805421756277512230317670845441833594033954045036826465297073751352651706697266431532065251522540448939253207077108845138657590821004217319524949484355868068097211737475207479346334799262958662012324517342077447942942926906545592724942840717182760710054418581821165647488921032447684099863669855354032490524743272654089581406835328117377948856819497864934914678725802014106527284688137714530780149374473306259795275037610555136879537006929670791029088863306678033332443061501499862730271653420283695074829232024958234000831181565845670488694004801717887324470013452464030520822402820304194947230552421990486573883433815109430326574957875975259549537116487708648586493146526447427497298141015382080312782343580944562518335788641194417518511044328916127500379723250606180953733604353967657083059287243697034476902097879756082752088161358061387304455525988100278992691502366028949963700582136729667300983897469171018799059846379984579117901171383474104348223267033018227435230222861596478780751635018660639260096335360928565766204558440761569216766026202543713773711268556284533805487561564760178746593653871935230791276114054096246403831568990337260580433344907933568925106110661046668389464137081591473225570400318080222274290629495878548899843994545919589848367449575242028748844963886381897983210540322845694951711951694061295033552065585062007871608598476368341446336746305892355933519915057334288609647496580853299500796771572741629780413986744514476669738402569686606703612070262811598245718694266969051850194123269152532916192573069512159963347812656903706847162973373014105681879287510736651461356860044812264962577408051145464962006102987287252109636133897295664861791282300140788132923023778287384251594167117215240505501037759745027703524053299071348241250233970617354477339904838857673679833329583917044367767731238845180344229740857945527322803344156670674245459124522746538976726808384885536298894335912519301325977632876107453134935809361659348920516916465998881295756080445797213422533996265467889765400523840448108555526318169748474258931859377366876927340758184106704763236261166407797087678612031105956300596609380141504444917529615140361226180371395490381869770351750638023218467139822107438871300062900788676051798731339800094398877679004516017938078416146869115200912184952661164586389713683126255779002838397041596274345099293025607001931769742698091477846345417202244312475836128018763118985294775410469403846295641483289682001402672184518913287806350181370733197034952351705114130808255279631542362722510993342753856562049200894959183162699689023304546455132744943641764730402984056894902798061800521429049003244291493881933687499834471348780492039990204303842713291779234245985885930669835707433144783549445442419015289817470475181245171751476444835616848449443888216824431530181237687609353688262137420623911814757734567344796626252271636858285661326318831715782703963185305563008333708426309928419445122375251996422229276992981224296239563978336632647254457992329267925913065458155811742137304026727383282421590329173612368524993294447263579859602429984204899327975741634735384121125294622988355468134626944053119362623621257571651124350887855657365463723242531778738289097205378293689357094614374122709865411297313732093802089521706400939631126113128833441334450979158767417727139564301478490085744186695431128976394996690111475198322429091701220012808801005242508348183417654575065742746944595935095632595822473879706448561545450466472755788712051168837392685523968836727980061044329807682502183838261837055566698317126699160502289283919499627842796828669655260515114189088825560144085155841160314161739416498051637939709548331477074072933744047656697878130294260544532872253287901823701058469067478825251666117817104173008506028515128111498762096680369502472060946323276581512459373695159029378243079404307350581080941875627300629148648623897667590255860879309872427715236021658160949256575479899221971414358607700048566288004487115823330947584274531909354533314152293854294260303871805644409582735344903584537893317559316140220275194128137400263820471525689681449705341218960368653659508110766931310786969356958534076299360240732450770299482846765349872738745872683042611655139028616162672033706788540570947534780421533426384373883102934964455558903105717075350723083158202921965956495015272284162200578615550561619705832508645875010320025156393558246589152009477650249610061010479628603503380404247163336994279541128601367540942389663037431086619895635669287733484011418750376711960301508380159717953904799390244224561679984927588101284045478936976182864652026601506555415198515548483871548193571066259168183498877059079614261828806848178247108435583114898622419405834725083147370976004405811337440195864257983746714867237498461765733186092510191310145345372866058150659052754229460190209188965497603484324187128825053023295737474929325278302251094416492485456285070726933524864602106250095266152605387025438716534032827203580850090606092342677309557204781406630761712901390243624995542674568984900450305880387807965442650476521103107555118180661135496377268315545122176163175370348137503605385525777268644437776214260131105775427000189564603934435348253177687414348580739689266084533261346700316836797212509792658080808872481058430247304172295158604734601887718196445838778195010554895798004858941772950609354048695890069656261900134673327601494907889468610581301452833591331938810319072126622562486158215140576283923303048791173082031859463608321104477518024036729795782447938112431677495835800759718688736136613730807455797898960997642805040965538009892487691889128266658770978776496324094477979909637761313089605524699505995730775151212483568524312150827624872129729096996703410224612602404331227154937027569106205915348901144854550112351504792856516611281473539957422112484210950635492641423835331562847862567017862717539878663855657118320362778839804794659967746875808257856209184710217975722217182953491712065476917008112530822479651840795027128590743455884068314355591291881317955342839518865001096226309547098457376339908048061376391231748715763514715849253898699387100680401295454568815870092226489707020297716959156662073827955078545883094244208159020191650366850519263957107094593783228946229599712276728331893698975566014513888224013241589118555488292351531832559049340757007813152414838554727333051963952551723753932480286017154157670095296074265685206881595132283857998506680560308994375452802233022868327333091111731575143246814786667693603002416893180623600363393256902041374806144434577035014430250061457158385713119216915975089760721359523487654240210391290110577608827494501240848509182878090482256708574582359828715146197605880114410487070091082950820194139042477297394803313459328550996312205893227159844588505314853757626331112024007305414644231310479952214404415667960655257009242649480412252272978601472449420097091805089770622641273635021019360725328383020253534485784245465268868996260876993358200823309601714261890326622091639370211841109047177008655402814418547519086969108104667944095964208679393508395661593017566008632277580384325514514363793809207076926635113246267824845649968545637596483493788542701782408457859570742975245241261208322348456418533991454798063059257980810690380544040031231373624788952497016164982641842355427019255521680114464633495354233714828767827443115770883590247569028943830384266959189813687964246756027940314940013783687497734800226978729341157496255958424348505547410604118721826812421026349549456076202219932619733262971208451078344352592090323875923051088579818195926925702431107037510213747502579276443868798226137185836307421623859064626212047848699438695799516455856619857740790271286477945281466909470616536187907767644961459045746328390614381236142487456048129866506107700957163971750763819137437739367346649982507213757697008529195841054410389559309535865762460474037768965527055695444161279499150746891897848131149767886858375813592289899716990996409682687589920162006573788735776485550250806887420780836443352226396925504654622131648011648572225900982950006913676024462087202926398455484399597547445315499249732937797313643307826201395729102442382560362322252998399001131971876799890946375027865321590561959306733984507197522285237337163529770026537252148216460874584737142887154923549420742378433029964881803056386513649301208784817238988701295746013065263645959501202928917819680223703917986989495673628725688754685464433380179733759035147320362579637195361009978226043311183985653664662909208743812537660637587632249909341925202627072184758102497235204042649402906004918840605356042715286801786887671671936447319249181863729954805964233803781824343020820007450093931220979864918061721907674645700361017278776682522261941839338582760080868518558249689211518832541828094891912343274411780474042623159241959531992541037476681314944020987115952804300622833692068053629329110343746916679419395970960813179516173968918180930684740249874430162167278049419176022515581203458954246363571476062688812209282128900639252958393535781908622823360864349347181707318592860431672661605130698817445390756992319600494591914354037423056540146209585782801545659291417797247859509977678293382791844436845438774065404409845654415598737975237316187224025308189629042801516181134633803232842232547647182048762878743665686692822752809724346102454556915173038482304837813998501097609122277219013345683017789017626256101991113330106019227245735584373387313856144312423333048916938084444566362952888451993683911956102704612841324989834453118511472931691619583103237100135342695449169222497173457533690354739566757417149246449385679248585004047382547593225041164287449485155939298344822741161753036104204322023289069065326850414785027526254407508178965100641658014974935881120505039084767963870529963260247297473899179583691907205437891319050304500794444411535314278912114332666677015867334093300831498599554787462927145301075135964442002775463124548384494572770434700848374963632210333216857460271748884777858359409862949702075426260639227506614740284840631376898926044518798292937183763967701472991225912817670622198875421361320996704646255730864341343201217443302319149775506421309379893928570913813910949477245170141010664883156498832891353323251180252550200402090386994172297082651047361310590114945487689278227072123107595164995060765735444508057981461956697199582907912003309036714791100474615425847341746774460106190146731115212741685258708076997640950899799921959118869869742698174572312515025691279251806530118181068909413999511553909449376336617729385272620553387049388854104158536566954802785236971138934622031234628241217314509892633578089302887990014536891434865084189385658150394794544332784405007700678046860593403890337476501918954110453088314487202608843994268285761484031030741704878699420188534055446752239047924981973211248586096523095389790572164291290152540660189786628388776197280680594784268389425367840635894527300130413682974395758940821431662163529275249986684534551814395081871997050077830340587409144425952992868197030291831637555517418942411681718740192569928009130870931209088126353208049294800063313048808428901932430533020262293104199111566630446777686727326470136151744439019555788901384375221509330047538250092677954119817137081926111328974132611173252419279380652343158666191127431717646540654675210414819205427692347229903566351227443202565368585771228056457502977872313354311033798506594855782209712661277455794032291200917718294341792935756094627241598018060227154466080063216755744723818908206476941160807608158523202348767826245137896245874286315222796917197709847351576775086355704354516925277467260032355658884338131230583461609838853758702245197127757886603401836053600826404583252600313479647078155674581190915352429423643332220082291119758220854625922243046633159551332995699987637825139722990744525417937293569705389979449151035808837381008594709355790284346922743387318886277202789093966201684371257085938292712547998443922862717561571317952149912483444031327183580764151218888175937367242904511125012935061939230014869391642051648981821317085441565923341617222141452255798530532572810446114068408937803878120083514434264117011697217449533464183110137095188307470752788284560721374011665331141592119424002766391212430546256398122491321877458401816839465885940126261729814119657662195642646666325979094934829594974107763597331224114441658057246168597503133608503239994024952278979553467983886663985558172998026156936754969387415604830292651408957206312943110909735198845754321339729950119281100628662779104727125187255422597903596616491472657671337913428579433525812398774734409257161692371713372040878815911668573392502898098681152703327449320118826198566547810116465372777754459100320696453397361469433839811853065141915188253208261489113740919088765456333056063729025950305301732485019876761090032520373603358301344550121957705011964524748647889364008581964067116730452377084373614784683597259313874910857324624222061601600588094760176031381026013477109657947266592360734947485800682425688474425063771227037963117098679375428328273138381501673340973174856073140267312321409278002567104061148081621288012205010257713326595710304036906166585772683564006960139642159239559389881803751793316012443984364793655477890363296530440166294793737275561327188962818830140170145683507663607065846182087134525852240929813127717141038190137153779605362889280522644345319769234169690849434792392930868496689872322776657169329640703706054354665197428997493107909778815787120343594582634902947451401228872994589336952483643971744500820151603229931614828700074252498123089158421741650006673759680618144769682918510303055088166721077176490769321210074539934256965700311043967906549321209752724816748832065234421066559477325350409906241316775466043133162263092487365063534117897241846226154908844231996457106222115535900801039460104045429226532541662525317945810742452268791742593833673058200452100285296637250814588883568681803894047812831428639491156683784395101272579036176162036797118137909119557617881373075180633469206441665716631344620863880676910586721163223711675207364718713891346229379315634352155188665952638549244794183330468304850371668640168204110592661209329728841601099063735159872980331423876497488859788012913207902332086689405791503928406780074244673305327062311043345884288780338537948162727772939768575181422852713467474990194500216157254559240101707132715301989577654139443032784785846677431885206145925989525242853260575215700923047905834106586142156402456664240600331412129396620482834784944584331504086908298761778079923194461027539118075126896454713148106120222114768187919165525380486273430649328180899603469759717186196766106361757071896586712598818960524119199333097550036635621126928301612034655069674368168817656487028325866193350471922960260283645924694634470803529761363355895059353919169692829318253500044341225172603714909057315457698723217814762480863509684899450243551517041649550245863398139999905427956537114401161658315219011504204334474756110610552707267433305061609747243207461851548107906995210027818182676499619272561807585308613505230143639160486122870887191176781206431050275906912895391155406432149823965669093329936462615837782650288498885161891274324365852135912970135058220312198088429739003410638271544954320769252350423459694102662256055308827061143387567448081950811789522761877172321688859878203958598323713600834403954565477075381837283987375828856074566641978287914441476235377468042581541772855619270122427793580898615854970673961557893072534144481828020988819213806613502091289088228478760182913511722495332605906380281707327024572169579432173966842138827098605499546120970644545560238663292769445169317595219209420640605921515434388884071278384654823721213769432856160850080889049233541388605261762541836117919692282348484648505567570263635782815097391931112562555753181416297129169218609429485375611197435704749504175566871313322860109458118428438228260425860922268886324446517720930962877698531289389051772113709044541842681749774064489908858395367920314260419981786194089084296926759694492336708174738230032123785274992852590871393888491061676824448814014546215088366449747971793210617270790771773478671275652247140229094776973323041975945189589932728656186953705181251204624686398665313984136645174725760273695427578123401695949030825330903494266951237581101455169436614964513861707245150321605034536113425743563043716289245802373330852130883521377833022546531337365604316901377499503103227134218589549022887732936114133160136184965168312943766445231672061921934312890106877624375696982781347383226525049820896428237607273804036667960635471175700463260344405270616035774689111917510942785670013927827861384344326049546230143082025177588237068867576391924172050072500425981202498072942618550087219091132758676878181820071145475729290845008867313369194764940866755601541696962784264001330440139459685717737094807851398192411623042282146608433975727030082558294814024281193378675968317428338761828744595743371320972682463245684125332826629517037828617478609343774376341172859439461811227060142809076376143813796854353202926910203020348591072562543921752332646581844197838511298057579091638696218978061795246833474505552541219106701326116024145189509059321529189992620266470503490189306196917494658088253455811221190943429629960332582003963216931933814255877257140427180525613472849939407363037570860693975533514904078669339092190430366954357480363098698070479488532579570305239950612766728792652759077761192937527140151204282527487998752244341216363020420453581114402360300342866220123227171454120968189164573541845597813885651624961227976612121473928605428189929355751780380504394967475350657833966134047281006711296354076547276431774626663883026494996359670159754760958901647755581161411531671114664641057436379451864575755951528763706930350499725505913188336377042104963289497412112651562079460135805222073613884390023440955461958279887252780100308372448532553036369732057907981894427466599182235889955046243291232299314220904911748596428297981724369844072362697358893304166313824018836866679688267976119334235051561732683863994601035939554172218338466503979106367357220933584993592738371691727749003822344157281897256777318597122228657275662396258250325961241965673936301162239609280259208577405280923129123509846564246856917548285820382562260033079373210950952431583295949159032733228321295013067265771849953584767209962979775263851339558569670237375522303550644822836776552055990614510569808628560516213784333507800394920934609682160128810728169458972351969693755568757650044281876530760890298544854773918933685017138151333752964015257022483571091928907452363409356626748400381337800873704433048228777084892202211436137565436887267094519299748432699325460389783857212608279179004279237045345405861022922587389226067702201118270389010791420589894372180584319084223772283661164103226924742913805427732336862751998589720128621195032483645125300747050612782433497186403357884380813976979182582534431079753207273851742587348528092004663662400209799169122520692333002666577602590802916640898496264503082693949230700871037022228007312773756012680034275752309487657756097707473515412713205234939810419452325697231386908051321913654635675302544300153514958340021492846654313927410409032448859909230675272392107145703198392040782231433010490472390007291777157344225566793211985421307400409675357409582494517729469887145438864482801641600696592084208598004402292734634658748432925914612211245460130557964482446526689640790835397486495321854819823020715021437669679832606180185008578635851499302331834370061813296247108750083546011218427193587011497774924185898578636683377389939838298063984227877132915573399056440864256881191628048336565310334905364746377735652969553484779095533139142808929056853645566899863958938246057238503426863416524616714212112303610118291101104873471766321851951346116722122963601458259204250809452146175935350848408665909315879235973914823341919823719118674473861777852173604281933855220818280165335537904776580336596494782622295808304556082782153012171010371019137406020590634211707413257572602018238144304383012384939022841397161876232031521280363788335538872726224766479351337198723754454119444963758427845375259873967457359919145797081661114458198582392969877507416965056951566750042389490223952757440196443035824095952130715308614455927837808116616111643217588373630660831783169433428129204366589864580671003183004254026099565075362327881061809475800844910602416579085425696597810449979948742083449294882213144623780395568957987384117960539811326560180504317386150867985521684025161283145657804814248025514517443341769275437226893982086456245887028819953666459908094981034381813983140941947568347432617255025464041037588775405972580898918824515393049206358974952288047746745929420439327107777614300565995051990984976966797278123005620926697898541053059284367627009344633349483698372780628985967800626915327451992547213655985549440713809041551331899788068814322216465642840095611569389516705180407366246212209279687219112839276721669531485736456374596362249612579408940835303623767286599950415482821575124488469560329458919193619044177611092954177933659848080330374350146893669176377933709234630384905049463506571665504083128238283141696868804139795618995695425554227805367555848323154710421020994131325849817794135668151492851208081031600885512314285520244264649693917952948756395635151313135326109735087319608571353185296556516630908779618203348277621950043868861879899096115621558447812707280213086514484107144486495511220215654597827004853804946733380961788805224913320435702589563820854223587732344516515781738984196812163442827473605291176457729486568858087025447337584892461858993728925598740987003193886529603487219716580554540499824723804957722979577799652238452566271927119100588094194772655823785312947727270917810024916238100189327184755169737950179307545530236991616238518174379010070468360968412036906745080404216763866388022727589097092664362408924205712979586248902123960446562229075799668397519674344969483766937085338398187256588047132960023427706786766792932059934662618514962992074631924548117370516314798523727070113762793367118868533355342706282896252678472893908484211159640045471335070910533912100908164820813080469815623840588232088842763274131715398323797663106720256179508161405314623574742634099613594747639549421324326079766453579536888046866327939204126227084044654516903681312248513761889057060097072586391131381270656585651798300764846981455708764570322193703687014246903355667279528846395964062637270246004490214872250274730531085127129200636460347836865159952772507534825900387867767631119049434692046990403468831778458495652429125844424689017364437068133747206686916913788110111261789750082713530843650144446339300714171720728253561862854789883476041633916784742480689708563318511479132541746508266841141297623443391859688016630827479206595654806809796266320178405884588041871062509947436786288452538039627235107033453274313035523687314684070363694094138345400470086218355460011063756982900117599571531293489992523827896366788842275935641639984380390615687921976380457723366196872199881674381010136820474332019970706783767220248003703800060566691002655807380639321488699190829079447244686330299892359534347960251786294231192992634804402666506157423088080483250276315134266142179873823316913680204071380329475981825541060479848829984232350131070118264393123988240393350056603430801667656689556637540740623538360057089739571378668893201196845671757419392506647059137447797880530948814866198642278320918924109421451079228690232677392487106550646239816609505301835775114688186503575383605109375321941984015394900048841531084248927968522915310203800404021907428739450376013143007691505707523505610525827889990803795480125320903512880270609030693565637010402477646745143521332339389802943269584557994642899644959440781099316563453942812265034702688158792115395810442436362662991061780652390841285909861013718604589780244932284913785960000665888377923977610689328694960261430225432279199903567954516645380892556378376166323999162097333897816866326439849886700208559526882360815419524000792877472901429951734216380606120786210335241341592196634502682465240357256950357230262402521014388307015873194421264509138900478656963770453853438675071162283954288788470460601680296554545092505246448214181473006080488938098715124793177300050209335088061153936301867738257178621339594478090066827772412002574393340285738246712214115012714543892163084361711180870783127428206032908966793274393242783534637207936003585226818174625870493806541103739755319774013833296005074522647482807433181180199536116565923571260655580242829696439502072297948870433373235822398717296384277097655187898066839632933593132069499244186616417662396353507450813083207395649084362924447791771140164419604290048334250598737511731201076957621774905522392548291384811123780702844903266235000410288935895424273386124487772217355172518006278869565172306042547362513524157184167712904935929341050227440213263913994623518116583631331047888140728018490935143449956348963378589485873363607908640345612908184776459682202775323469805565338639138277343866411561849387356922333432731984626090225272747162026569913698037527543080448894829351594349599399237885810062913375091032587290464788590676252708141236003785950217680601797227008020856546603149486511114653276500752237327422713085046920612240513971823366857265272163303818042142967315070750999926824569094942907813226913515674749241581995196713578249074401478514566883457580157287570185250633618788970274698754597659136242938391390584732979618070430236285957174528160845217448494051884345502403607994977691500280544054260728457046404990827270419054098124453601645219364506967621556660726505104687501577325795883031635197790777541747757686670097386107773769623617766992153504183052366667829835387072848901617384091714146130736446887352150824934071945937998304600051671780635291992225537115783476899836146105969881619383996358869753201064212760612362281218589787775851167040195677042812499374210067180141564237449201434075884018233203952302646188174314197183194164929688639380066765565361839120061601557163731621839947444409192886106607558852443454852544074427499071383742669101814586577706005524857845543070464536148939097149005224339414110011917757168949375102951130020119270431745074070390081793313093239544383021965721382060514173919227583201937869444862067046443620296540871512358290881989934521610500018210797326371033445547413883506818441545858719095642499356311994710084087855031696793596125959252869475764153769541185784998515403073990350380385203572830790220097697218223902059265043494671297656027261166859971924878854545028492943627536705156072639888978719657040922757074523710185078763312112036811111236155887865456120451418427391285245391728377151796851442705897086900238469796069024345502221228168927062596012703046793077633522988596422037217749856323337096283746589390453186344751298348919078024124030311584408278660591292202189745979031218037858456646960711457041457906112374792306923773629086570818483165610874613380645504452852731636554809074908386798467593476118831907658981153048581696585422449743601680615450817177820763396864563961330714973219100589002023354690250426966410518305417767914803423187878252464380144027904201412482216320937323520868032372834961066200525409119891740227312898586023520670779926297270602982831804922193715054869432266423090822041310697003737499882151963520452830372465720612716565252711056028697754809761730109715032762840498383930802156512150567842996592798142604061078860332256805690648889513648261929461537360887301394646324754043459808859283243826027400688310427170029459744339279033344535272584289480775595847651658890157196454733018839374011129736910077230242170406646038541274335784215663242716373951596064295500775232655126008631149958270888800565947002770168063393552112612925189188555220278235100181169480615311687132588594170546907546390000677156990656350306586412943750731112536660780070398343970679824409601946422956521809952668812692218027636350611963346409363477338533751856038994501336016042374647005072184112954030922497843380131062987905115898093228726664664835922883856184303377308476166980223718874251515677990837755165774640466738008571734464450416125154751982380238292605283223057776526754113674340364620493415402313962972653074815399006993022557034127064539237517001269218395631136756799382077272073748955891352421609227056421945015265838145103116452212607781554980407683418435281921094446148682663429979405348081091204159893188758480792859648644872885250289480562723468310264785429720591623923498613660390694357401818455444439492376627475366669917114738239342379347534225364791130877845392591478412967713688302982343525299008423901281507842825811032882065520210916745791203999281748149665212239964643287884706807814440575928100223493367803440502296419391512142312168093523042390529596605130032804558002289701226231488092518656332525080993326589163729611721527901119599645545864543092675071884769317984168287473025823487202538308130783151765947425683815315548067637303535747502282775038710538523093056028774303986545372067971798416157631048142710918113428744074968114037173762369270715001288168741657352112153164607952749968158932475017266343304190639163516486244760095962624180014777262021367470163376742698388871922225252698767519982181179140620899707786897569569413712706647112231641735429410009908297254599038081110670195934084724703169759633556517080630695202707848933635517539255960674459590867794158205307605033731840626369395547146049485998626172732638326424004630950968387658524409671322331385148110309718773976086667094724729846112143813594823791474018563742032075824656181415203225453838854582039014822324764930936946487599251430067122631569246494620005387440994861662561919129987333658957337018520273806355542030564613081310941243093141788529009041880408627174731427978586322139687432394241410416157090968829675214713399214660609751013688759140696459394239701560663594475086487955993016226498593797139350201748176087705625206854952346015697733005876299992567757546662270281703543536917396018701635888537317671595562644776918018507938245603568208722666117769776997522759651647763658704481966067429846940930749377529394027267423300495322707827816465582996777203314468340518675899327369079733207737711785839392290037350012733769178204707544374399249462852174248463790781222650123513166019503427029356946011024540875583650720477024456386398597376446715513670525668066054926026432446399112016096969674118084744910999279549450284217327785320144320901082684108091421488761964035726588033341403058350536726997074633208731548676674638411976598382642138409816469546314208743408861125013646795854936973678303809143331619048930088591090575001470890575748192924205427447835360419195709606215606558285352206127169153205573692034258989618191476433862381993206537812706207596585973760273788932957037406979504969343021478511115000023531810066394306391235034283572951999272876603474502012018266671895406564054041533088625736229879227217079369849952452207714760514017911416899601935884189778107120129360669060926515371738016882997570521828546312497459798581146812959052125318349642610308545025300450159320384566968758231323703547357130078334257821300757218865384370157950794430485480969623338907226918178927261673588523845128930890368086546665363200747361396442096840134198402320044083821331263790255398187007196665369869260606379903603162584282698404811086079572182432382448973902751977120961816384370408525342046721603274184398909902565135344949619432637478352203222580718870816230194582293432139592306118685601191248931247576592393522315401366608164532156082290126257105316705482415359873195835557460280782154901056109270775448877279987213062381549485630911821987191948146410095777398350317325528432372459806540479279201967532674577495929472031884098170898146607844412409613450238071418149529797242242654622427102494646512897245462307520415514021460140650251901573504424508361839889704276180055581322037019743965347228155138569861983273797382325448696860561824723200707862586011325950732411806064976572712856829861894587341102241411045541078162040496644907175226797997425916294628723097126539203975394418737953539868602304998726266579064318804992809768909989595225040547295065669952758078817907135334048985333687579559811587499240395408135448585689742969182627432134301043387352050918814079376066926389391083837302942246335870672950805472681476212187215777196780808268896377732072007035156118832925821186838954975678768722877105113715229620578528624270113263898116028255472080360708075003032050396433013339744333737961133367885179223153306552769597542830014672185825087477614988687990540608271498277731809150857526494690108922458646042376042292372248979083118980131328380341649408266328401800811729758955152023270248577825346594159516469621469421970833861824082461039874792514574295652636863559031638975000142356260877467238129259297981861887782673674467228162795476327187459008687475773199248866095502776228605376098999641129570313570621395514582667294316064683997485925109486796644634655139887447665194363055967531228510164756104930108049742587584309283861863537891252984201755679609578714070551888097922265124594610339147320035948703240586338179141829577898646845407498527177717947986420840332782987043346360173571088097635666234214705959124156275828464516566179554159758495854187868002340655952495637115916906609161705172867156866957722979335300804145374624636198375475417024362122472500083073897755600674364821123838348169957621279296359219425658088382697417258129695795707814865733509079884934233857198981579919402364066488876642468012288620375000845859367964036313006343952177125918615571172549410079608273291442110449690023306351841736742318442676562875786533503707599339714049062853212193430232026072281970163737841707617313154418863074477835476267073620476459297370469753003342449781006327026439751549953013196891614817257520337666954483880271658218800695731328920966439823138774442004462705880119197802622895260826384244626306121278402522364036093729273084068225953819424813595412629065504498781276258304536800615326432624877049833474284017324502652641533016026469994482395099899969444587537326292727752825744415441950923364963428158948974444722915231885531227404136173980801485619932393425500009903604739141202783329876039269211302032646574179575485507688557323361907289792291176780686408777809536500826775031606518064016403488967462134228379453525013752225214255775342594461030967805921979052174834775678007749377722241490457405078214437217149990397720173555970789613491458855882147220314390322649452589927747448625372228838881252288150392901667978057295189453494666012254534218758168245240452076346140620142315280200122126130814655847731228554482021200157377204990196988747135801356047009492308725445575132890147456419008246351247819697541943610942805659498181008363989693782707401352496425700050690007048176956183488659911040360712535288386135147240467878532443640582138149826091624594956446294471639139173141429996437436357865995841558248960324070377158894277009395758916973743596008656132642037363099691372563479740590929009810406824641463609723160429517113647269785039749315210843322307308785768340861462645802102303723740870658950736798732274759742497343474767999035888513494230173160675725396452713544158481769726100796156415189457177346697187121982222669027287003979314907617870863600975677584498478096274316058813278788365183017321190656301049041824344651028655395024290764746876865607502799301666069722168852489308117308502810647229592741626845593408289040650493147118301401648348336079027668547370943516739025363926674206471374110684900021645969109471890365761293197793138705385582827051268840490318657395030322183120581222267073510100450201878770227518218595303185599413165712435260600260005504066515897698148034625479487048786781105670588653035597649557649409922707096814666379158067053213752760534577680954624414249268621188255898953241768084065679067074068743460181933316136559768955113894007654523576159495962406358572077320449787518438862661201990989682534274103710359114407200420265501753845496492744365615411963859929639409648071718470180300867852988275409442214109235572474052402246787226534990902543237694451307865542334840263553643598226751660187674770568416621850744741735025336418749089997811432774388725437249542669040612737671340631761004024838517963641251808227100497239832730069375973494361195994634740486186940366419274901392733639816541589343790036516833015303876681348461962604738094640375692492403063190023579489454054153297936781845130903761672089738039424884769583398563346146406242167073905460755433878951229386696581509728252272785169396874504660793651781447479749327149345537884480674736811497823201198257805767616530516354805450939816975739151345928702628365324490980134309567357392106578470461323737806932448793872002864817062391783704205244156495449151265939724101629434124959033492975815172059816954727374063766932099662790922381775469876853792439313280046960526778828137706708199968750206097719835460832077905801459598100919703456246911531867474097350469589158481952206537833784192703270919522919391581271025758488054169176347019829190926044408260000350259374677655247669387788422528767569359052194887253344028080353601143524909359437682130287536123270196556622593702912029293412295705619285416813876699054796826998107352391956071406097251385157996566997021639493273439961854967741525856149431062111146888102850551591264155533330029481315453867043358997519920096298772248324975983248072591659372736708091563268373437217037613831096772626648507349842105337769134177963310454975768090346500547737748306986594471175776686192874852467461388795038634892979900438401539875487027075392259975767826001730293882181286352347951480994069430727604040252943277881360197428062878304349406976001621696097051376328817526471037097831394249598864568867523107312607763179266746814856208481885568426705111722603480152049678016706504219025327891471501530832410771880556229228964026658239958893715957000598359454278165083612249720050730672830926298273962072445543789340957865282547850063849839128219445236923990752202915386631966898446007386870918455244508177937532599236929363140461890595358803991414982381849296689491338488978132528497308663838032935139891638068064681076380743917233759456552035641165177439714528569999829997170176801198919496602617871889229378679739744418449697335274494877102445372185028894463385622462921678908243667850667674638213051020569431709781841333907929059214349313723295597015673161548804755608889680957634293486645547212496222429969679089021870991029957774550949264106073835903743899370472433005225989166424631904360949694505378912279435143333291146532420266456909966990507165965629125275710310012580928755570083812575709942790156726783314401706833034578110338470079072588357938410865771976430147883993946959889435665010442651505673857064056073295426880245749119918611767940705153625068850645209593231701257980976550883233998574069796175886519796000197694137337285079837289499955914095374355458583808472991058504986977912877193532894303585495196641981947652161974789559656739403403425287859551390347050821003782104528189686333801915429910287023887570417493475433650395666374290725863209408062435159785802812296557954944459379447653998103942037085543822715989922078008290807810994167816105430944310277431989863429388303342945315606154588039872134633660862126907959266262529843824188223256037770469888620885616992741406555028420579692728494201180876326473840465589478365102774225002554030177165915384707407860978596586871303657142504971343240735316373784804788182068520780851818758867559781321689824686118897338770917549457685103079067655420881837110695709110031299796500699170366842287625569372284659668889954884174016211494959467101487733210895127831558843676010090953913760307133472882859378958431769467649795709318785190605599637281228460687812308301176358160793336544347345620005904644942065308247190475471785137353186592469116720337964466762167625096675940976297151025304206598384618555284535944783351148613369481637152343866261375398232147643158522591084769223486777979081129102030701958640017021985077074366180957719667712598233856169965974519151173689496365013487412347660140694647256922378565406259568040862692993390276262393731845724624638557246465339424384203805352953644164495225765831852711298275511415063667009192937283022593447715009891265163367003588545422643974942425857552533303713457179114685725616201868383111115567869285902984304435193239629944836626184764088848677233439676206773238391561815799740680856820874859695826065028776841180480784687794602467159299579285935723179448911897284158008139634090741011207156570271549128616954369552007032972327629175599846443200904885030596225395515551840159191137104804979547968363852043606910115070358339277690532218584771725738466685823946475103739420527923535925617768131910325084545336480044986343989795597984676519415840534067492617566812627079243148512211988838625668706885058732495086395121615635576425415246258847377922444938629669693459118641544902682278427866503037006307326459652787582149561934682253940246667790988391576382968869959481700015858752699542476791949224494581731331283096010621205206767109340872751831132327020726861342504007520190451041897348973666786822802805826717696134017207071916282061866342548537401487116247940298398036675395923454532650665072994164707194857927087451055021138557315391299865442292424379645281693352758093066949234228594432421630033817509734982192424460801461486479918621997070203957307275175836735316776733206249083391470866074801910335118618331631476876461387220002113578632492301517960392334867481100431388113522066954027356041093899770253458615192470601627979534473189615631202011065099194541146613845105885430621217354143261538286799054583153386224983160397832600917203810966047576454223220853735693413907163107193832492289781780872555006460138634291820459079495098227852682048922455010911349368089943138247048446034051040581510762487202329861050026336177539501859367318569525208322661109585071237613078906245458624426477629665153008823921297767946200590111284314477262795788224426362411020815085621200776077987778182822402123740383782657363782622096020890164314295329278774895246827975681312633152876008026352505091521689184741031369084226054824639783516232682858101448790159616971259995809125471417961697361398827843887215153655503341702565607990300507998135768915074695311688438868080681354784580488948925677368000324763953271710840566152925511891589856756472548761483623009428735744999471967705949591120504286415063249769928668036258793570068600461421690019214744426410390727637977185119895736588456362822952050391897278362183161876504567672760530459830658830298982229380891497660739214648367570023754584614364812278004972865012194328556453013691998981891572639925120479406700641807544817027609512293186239269083837068320012326799651741579155709467670070482983788410083048649696453633477278530684797281607502744687136772457201134934780779842131593726007681127661887145798922866549336879930623332593033480570113199385368924650926101297158533835357056400866698841682235155523076284704507892187281413925550424826256663764051031075351299200244499043940157489842039214234218547761247514687930932703705566512965233452500721738490376734908320022045098680663157162489909322743947999912275428124911039647806749703738406931688369603223260143035583437975076778842452806194641054891868763217106670710650148802802401843622318480781168218950636402376947108733784587606917641382195694547662146619603815897209718207307243730480381618599898120392312485428560740935275002931571113730498803597504809756628470750198155535300983203131694112678804993895091444882641321410763735583519527025832108491953959488557269492713334190485292218688176692769793705198018298510023199541625762029422007750622677091355133476948354182135160113206995889123616441094132210479397018972322670788969252665936365089050718122670673245181352298105785808125326889636392740104572573039251188614995979959650120816816695418438033364564009887949941658182653378148793535953895514043845092111384235736474674533609043376982526026629938357916128428476846880954942913377383141061436871460591159015768757275643723990061582502461978770464298049568942196897324841537512744327158374684394728308446344468062581281637963373670928881815121419872476697749478105193308964044471370859850513634916972169345158441126260003834184343369698330876630270165316057858976174103545384752430875184096883218871900996283555944730315043426691467170616098075885199647024954555085997995584280760500965067355135625222302584029979599495492184028062001187237294361511436181527136539137573041181461577170233003187357976160198898310713503341770065249575696929113845646128160401651344537832106595180485656405006244107486088436847378769163538244441087184724019046108979776646304302773751363272533372766585693049360921190281411800504799751226460115760248139796528900718286620435061322546105676350073140669226941509048018578144187424449937892009808157084065930237071160831861706324661645615496211060489651299713216925821515240301948326089792522430980089320217145731382010026612493679733856373177863703974745197039156576632228634327248740657645211572724128470461901082638968858705372523169076197375354056557462675566505255174548760461896766782324815737649473014715328957492777489672699358555182666656082914463949011372197109174126316140969858434613556844969582301232990887333936918334599612915685745749968305585320230729790693080504360592025058790906945261580259836746496503457382956933163705312546312429540063163202932866341226453396486344779337291932995536425584410910980096625378442834927904213232115537263688134099997344666145500669078822294509137303076739703273489269076664396965675856444047736151053196301662518793321774649787751227833528055306318498439993043638997119036015507672559113521273460672707205464404623161129001767061889074764654357099511470076392914578882459341160352324544680463787642946122915543701764609402723997816699331066669405039120589948663310427024203803071913146894379607194093719374467244908216000341676737551665786281060744848604507352278350501956775109894476662656761783367647778487673526784159878641037199090392008017107854186206813981038552625017731486997618834216685725812423791426016206231698884090564631371601588053673064742248019922962523525373530093684016073210102413476058280575606300051744909888350502454048471417051677499773930590901185088928531501637736674214896045838115269002140140378739505459514329969986297248287790358252763851740915902394719492649928521264396336837931621495863357942469750523992932191283557846088061034093698603915993677190078680679443839043852473629829904393632321507562263868098810455374940792030297135893741719800820270140746007871403191205923422761094537647106634513255321390109451575445091787850602596415717370542654338512166930314186803780665253508443675104794367523720771190429374011298686731679936896013173895286582699741649806215196991913685806833215940002898870119794558604541016323177920574844569229334042881552484688436356271937305778989667571337282655877469907227222175307475764414070935590198542248722636838185368445451723885938130390284459901629492517364646606006846964116338128967855924514379514834969166265061897969479711588436093337661921216725482353708679765277714419723393342288931708426672452320129370201293444892856314805598625550826754282940124539019809327737752805678527147839341128354358758726131604153586161173405502285268676911851589289558237739263155575554913054906635881491146432353625917408134992730164127872956769991438597309438705949789102557409354348643736735741870740600746164780727723604523573287474818331635547382371578057767777535236608336844625626689785928631139628376230227815804530615284840414475689784462521955530664567225288457957102206206970958298397592412718116221281861827286672105232101513844139981076107439195994359070134354217096502393081178142367337206186748820019720699907748970617861248844041321163966714690792706564108519285472797924585426305026688224618873175140231617530003257668121985184602515547018616790642260263081646248241176624549958246142550754960242065003725615287402364746707546712549727438483703733579459606227729254357045817623886248992604384569003901875963341117227334054664173449729224314006578724903688713272528987725883303375501129931665258998049315416721213141512555630023852027531855359336132865712372998477577730866906939182354664429553504349794580872822564927775579929838044468806787712624050729081133679195584942572824827804596193183185229728503773027134361956601805403641767607350118810566429233424362197454252187167437085584094066176828690889275415607240898436849069345871916972880405710318237851692636982847230565171286581111908618565620046442170511609280302605277600414694936594786798351896235182460329808565028692821449166005158447722026652131315763259859471226722929344946090437727025143275772572960668274107581429851547042430739837963362659881877940715883232253801454102466606671857656708024549652103251679499842003240152813272242935714364555479974784731174381414987423974136871938871233897895407314028363424116097830225000686167122437384198440574705313252235199002257525705870884824798313942435857624004392755240485718838833060087791399241614636830036655277035735626089429826398645305206693192843465258369943494014499402013867396897531531911663312797099897281146049137619911577714830533529693979557107419278187537836355280056331700943831713061727987681311609954195765647360875988652902677163411769355834177250782007233905857896585857294638245248473477477184211339594750377340167783190630940893780682471820519914592715362706381275310800679724987970535811495235191051400266537836573888186640499584010107854361382146280821948388249232339976692324583782082228605386358927020361263087096794570669630088751938582496330671626396416529281095777667884421969594882742219569619823077155413114831873829461744841113648291147375272930193696608458301346105264969787700203473029091048424860136201536738407182481318844255441151177173054664610414740752432897724812437487743359257902442766989191650172020124313927500835180321487791124186476570357297027893129429155860074272215911086356281179344256602794811059931473017510018819040488746689521570378338783109617016061438549921927871383361091654439041224023568473214344788515698690190666957032654657206475826534926575795345796490602405814910476520215054015050624975145600587375522739321867414496151531421507504924653988451252589019308860796514819874614105548212596899635522488707880299804818071063407172927130140517053251555017539776708826348820174077836876383724980327698100455169497068695725603633015889893901700040077900281945499704126179948146526678920738804439426280194669377164271324552858950693606616340537556515535721802107655903830658728154979219477771067665222812178471228491104070923216975411321911512426138824186164670929136929984633967877104004458321695122657127349675315211844385524035000331757235053980809322577717191863088221831729934836696963708734388284987787229538026388035737144148369341152809867545048305812657524473748615597302929937190084478570395594232259760257951361034255876487618557456733018901434961098066697587231405626433535002803601716505866887210345746631700893904798979276395156604100937299837935192610368978161834428182003594607337293668832559778899185791592328154698938157690977104470799906858762090745721830779368204018835183280717543137276024345356746837693736154925199134995968321380605981017757765473350997035260051557433460294968375785000972271472438523725257722369154401337963058327998730594983565009688230615630462347191153995015940576276194852049161693950510008391621616824480071740735431349910339139057865733252271779176880894170169895714604162770270729093878122522648971994028030192796055747247125602301556608770377810813825210678933034100140915450046215126315267365909579397202784322712505229515415227109265008240588076653976316897808007023306611360010739273328125678170309208529550014816344597952331788974043426268092012245336744439156922864344244472343556876699831690755534697028345914593971592754039393606012789623314240681209541473780930749806949959638016487810291278940141453213549441539645122171976480305454545978419957470904255258344513821076750078054724528929754127614053046068897248150550948683884014553380145772113031278961422415336465996875501658647209564974765510222457570563572195240614943018662378273998710030245363009017201140406141270505094110913293807913879400744013724773105198847255605713453612549591426131315538269471445135722831897652277185996522588465028294839774485981005781489836493109664036999095732492748346004002028829640665192802910388088724733810003927642590126216861953868611433630437307530310738250116383662357602613660408497550340052650730548428872804564889894846209339027552864092254811336531104959807838649386845831972099351772724708185391257157884550498108509171075928404683988092142205459293220615268195119371030453749267072075600708976634157236287673195138857728675585133167395315206628247449125448803962528227350198567273480220328591679570760063119126636951201295604753289896876978995788372742106468382766184539068017158753658566146028256764466392267878712054404130908597705172406554373590601422658094849975974188489085227068518702769804075157844558293483867077565593560206022546458137730007797795581188999177544920808771006783151903842746973992517091098280745453294096974900383548546523067716412874300406695238029079443530925178139138382625871456484215921583034481663290653864412570598893535406198566878785871931637678099638382273119052600545412237836783958293795537467702652106880961651377317072101823112165069915068609089385717320716758361736688577211638856285135677179462712729097586874359756646019481193648566458874881524609747857895543145005159583518366451801549977270566525546862258873641417072706609687855542408186363453505405662872306095495509431709547625890978787817085030634481921693440430384732642010306587727374237036291692242197791759257059006659166055675304687455949878272788173216903140528712948699860220518365335557594666946065375000477777714671261803099961733729441321326996412537958148136099325209010256774570747998449905530573656576821260134524572290531395878085651669359660884506418467282184949541901857969786459055480412271763226539406572487822788661187866145022999218519548143908685185435413441270489759462092201055402749310646565631437581131128352102199361539502783620500090199532157334614880299151259180699153859899678584441697238929303372001399711415480809722379551646962605439263734990355076091765986744750336353166690554203424790107613733446940690260670315358782185480995897109634902119832524352483651909654282493386548462949138278779425527873406707894945239711432101200377456412131633340538178393035559933008302011950276500816775399449752702166889158580430302479748091187162771114577850931872074976641119613393850333351032481070693217632615857340900732309251143873785581379987392835038183475073612842590571595546640180152820185297036182190308939271370857072547087072545442020520919354557449539542104963551802727544598646803823786394264553041194686603538920536977759960925778058082214151769598240757700787639533410179139314649124853369355303774676674066652397504258388329657206936573532935193714365103568490516890257689811622673388821917159075950284134277550382651109158244947042694014133923290421678262759594692972678123295836401462067542079718395978259914235366043143237841593986739953900797223416954625648954351188255423811088884830522765626343381326767856946146501700836379977243174502635814473787270701033686629594919187780269002005043676008470314125118986320186310787762541353328706444477705902699206204147264140541107692949969360822772965196582264372623197165516781728995716001099704250560944004473770954576683118755864880192298492772739573947589013664191069948671029919875408668099753252071060212998024189884012033033443037636713879174594486148714494262233952154951538452453161800833170180099351575312359938885668183420153730920795464151401391278050410722480244515425531123393636114535111407300313857791974113397052690421185419374998744884122871955902444456271162895690765874181491453756547116770895645703407954437848902477491365389539502996435278016112916519041037127870751178211700878035498292272515306665869195005126600141791453642266681676665043845686653602420227626157103447915450437953775556721817599910269707587918797684063071051021927330103826438703208334762219934693112907272044403870952387925768631076724101899568004931050915794717819598389941409357424830939422223914788692764157280617918894276455203613716150853190185052216967743772837232103112255108835740307998460560470981687584212036289016317345905450991383052013064335259282682356343354009721100669023616077761888932444861637428970716641685977608326104816266421279700622672355674465675534503251152764123167697263807414575635210663893346161108571880286150286902856889260280997482199529219172278944119005533740122740319727884056848950729144497793047243023255266631684612699928279861891174909913002266316206120372840103110304728254525065495800849263116647923902431233027207169466535330864719248509643668404527439146897945327498586812097921810049624984908972396714980016398180007499681638685366826300064044027047538270735195351876066455290119793703457644427566183417249060493213814324398897953615431990794423024297144500815682065966332310250890536899294566336193900136938146948905063994882500031121872707756423632084243058194218030113163320147780312404794794608673584503972288792316351223031835759872489227824105565545892643648317204891136477992016157001398387972963051559314437658951007487497780149785609012580159544993175695656378963919995066120982436308196392765900824596645679880691904300000069878676920182819810609467503896619390581653095888973793605058965208404763866387257149376821233687585029770053789216134061303355850820311874545676989425018147072457526990908110349849284719776527939846967510201678989836836216323249206460769831823154013097018914108369045084815627968908193277026284760977902356909367975003814118987696921043547320569287316048240221647237901137642295326271800989484219448994925466299071113181475288939214548130898455572268612400720463038946673578849653512035515774316807798955778183906544910233195700850245635082852589322676478427019124906528814504167111468764146485349178448953398883233043781218300395889307871337567657900944156637521902790166082511261523377682272006686623309332763386318708336234495450486811643170771960072643302965756103085841335559777494487190938819358894257755302809446717189768889238504767311235956567777354599034341471162031969290686335331609160073863581808788261433562936418328010986382894104400933075193708817019882930096537338485971291418427179846851138813170638463734826313665369592954637047480985455714207572506536959612907019566222614115123149984464887587894336531597955581521414879226175334150486652385610381608258357521477427780987524739262259194002640626094895016657342777961648591596200927095893341109052461278044192849663149794085685313826393852871078921244624070293936842867961390953413401625660508847202537332063749638219832364073599308402638378281943506984640667815336827761383380976272030493261610767359078205599603399062349343031421217524311052264392928975417864526140109819956702135948563069264313882147618383901729476055314479295084903137199175136065209959315524689814956140420074334462399201058849351297717153782785813355005103605208422625740533732583824598723430423864866998701577826061144624005882220282304595607583455748015873719591849681180114393173946112624067369012555976782579446506626963857767402507628402121683718268734393605768396847960400296463694766725975531136541150532714844474936015339423151008150170717645935412446785159563964584346162808517250937232934965634142874696398254512884843620183828686914006056016955298365234686810063613597281447657694308482706896604048087158764793965734238615634135702769242225643955084636898643864496910462588922092744856473752042695296286739897436334492233588961966101602916975477194139339998442025908359589056277109418292020781081593049238023292758611503390751886036258205876578945396221007301923727285901126341923822734388267509602809635706212590078832564886270444549729527685610475903952623257233279449982284386659559970137285121791685634160604411924001341043558523855692746744946347095577176152202664181524973199375140280562497732233373031975989434309307379266581289753231891858851352652972886614238170908453916702176933140859346000984804828159884358092930088717171251987257098932002827522184814605474545328984777478332348885003922483177226205346377622568039272844096310204828637370326631503102040730840737173990726237134957459804669092121669547124076058749565047592522444408521867750500297342307081139557523263968504287311378757632903951442368002706776990002409257657574333439365565895822918968912852067368129086671950390771406347280434151125576310444275422368846977952926901441787184251244687433448670083775764786097995381112866286928105843568515787929192588086797105826543295939630467901515389089442062457798704669198514175176867692396727768020754444733139267154336915065462550917879044693293039410621631693427978623688228824540604173422397953259735653796849321032080064458208007046893161302403917293513368211617965499707840300942631061861476892212566519646445619362494188352977827209445498912742887612826669612782509515139531171321772305805012283089745047213811608563005607100940000030523356696251760010851339505352885239733422459266346682951267449703232102144121247084813869474831792314059292153345473519371542790349330019156920068588644330477623778083386864702185326660488241500550082808461927536597434335404836425012311104461346763002998109945645238528339707351351557313044003171576317436346236097343559984325600752641692129972793256740094374955518236414918753086371216279085668842630348957423416378839509485035467591037487968328154754619441446888625716047203155630738832820027810799280770547573321553110017371519745824145723187247629731902967438764665028579952550167394247623961733110595756365864542027332623992120548967982142446915822457816020515367115564758109110866634492393562369165864018085659666386945725955616882077887007232117534582299267581004680419749046728770788126481978585180721735140099462451932233906761105848444991546874863174635635392089960817286364037465778054847455493812731122864368253080740627639554587766604116537105945492025903846693274591263779521936164712848932377348845287043058944108879307879676415154397879260977366490099181573298848144736578062332068432064152467851271164034471999809043586299605225700550721279302939825689339932644085730937668468386585165227746452021092056747128915740951324904689218113820755185800352691742105672218646104935836803393295593057177717462962736987677017919023860071979097441207317072758115605190823469614151982537939476578893747185431713728906573730759005172880172730188906124248999702468455386775416910135822391897478678338594433746754824737709533324016766036615035373231170425707382137966805848839928903635921432730058768482628165783461826322678995459744439521554337655028937682102561237257857980633088020298167445485254893941397115568643063807563868220834467405140685580599658952576732267919072414038108608361082018320644997559422249953304978685066945190022236461077820472673304702442787137531258303864284308469686514971611451985677929137291127874644678409780609987253626749228098145782005238920723293482292957417793711828147888612389043881843986829512253283401094580157047929062193386561402572080308894667989064346112187030876912629513694191018504239056480558714092451624529097598774074528040761638458010540993271882364721242357483317772586997567065236390810574365857417256247766619184742467229551185109246360847185187141898845227166287027509503562532237651756606336525829480580632027783108951518761396003067526547772542272781457353237992635890303094312965822508248807850798399543666911609288062129100101332831649781398612821958507065860632892982666670964633972455031832317361644565867109649422994349981642060300768523976251558810799651142150460114696927460897207894910071791634509350776440606096341113187540686258355315972880124170984885828410713213891594633016592771156026984772578631940444062873602182650584241862862474973017989963451147644929921176613816294812084301010546379091708966080253258911144747017377530823265926347355632317841185022036943221930642787752729073600688844097569258720386975179478380671253486456683377135938102198934045726526108535609512930135153766756226006557136217395446200469002599452551887809839002488236403265991494122495444032892241021270044310746953383161765693204245377821968921129942206281231056572956037322058245429825187558246192937879743906540691916473337959654516860767107041817039336079500083402516675253004429045535185507038431301217175730334110539475575536029913849896479602678818434272010215062721097344635150696342425744337628903902068989640311442197978109214159899095143031008991012443625591778358572939412968295552498993404059093478435634170194042250338193100556623324700432294028126307899060054658811516985706297418661448226056251971025961792804526270438712548806945043339791649637687844810272613727360161797960852334714289927608655586264215099015600030221268388736274657534297983154172017447236621294538507686054019162304012540030728720403340400026756695238462591961814808524682471064512476734187425581066183030469134128005516097379759378970037122757515652124754604121510889919122077985369780573437933084095177741516558536203936887718202713655920205662012220566001202854204080125672412519125127770895657091450383960107724288797345027851645253798019236186893703222689058490680005799046672585518108296870491878186168923372873249753791152891269673645478090929160178544401962959745422480221664019417550051517445597322446937377965676730253517340179202417653328111924258411990937656070894686333483346471938341831713878986836311532228529354296768791502089066569547025103945676071169004778239697394804107169028058111251029250215982681543794118076622528436174280490746878605167726327543987867057786211976014817548409496853790182558169649616773137562000675670760321599724766233055134877069991134298967061952331569236982750792309738960231422448912830780598524910399213942181908364497044535731520570314497606573871836232520182178546758460836546377891684133475695232750829409885674352980021519933070273636704047475706565335113276320404194031844158801159268811125656011825623731945111010855499344676373858005478810745218385585293816766356751471849733391742592147012756091292559372577062028689221644123626472630060601937380957007448685985915313007760994974883058774634048116653445725151521851756443549885033140436501581402980323771207531484810325118620666867475732428470520717972926164275682550690186511384557971690646164460387064599068144147275025654764883317193756355073011141481084163684401844819153638009519888136585011643561862271836402964475705876012403161361654504690681058109683003464963686910609223726695579795797731162332729766623400868250335589273574172194844225028616976851738230376264825170528340115012800926343120625950112684702285829717671956226642575759644412517358671126324932160709111689517889331718630081929688640285079610202652627441354861582353543930442454446057799669668286992892040281914056106824075137775193292758194174122950987307743928436870354261115850537695135172904695352888462732812236379170533073423340833286862223258544046898507877891933248586611956704228406183353451556982833880713910315368221976402854553713567762242785789724171111857143265814327021834785909049147923213132581098065507516342198808026304327594357185104537799683086530053042321092133930401340522323595946731876912319536408034391646732687912693109706099249621180407996244213701487348020627915836801867255627791832455832037224684725829652644102457107633326706840674484347125044475992580893195052129800602483655767370753700928884316096857757565762418610081797460562324577449678730304721576814223266917703419754388222211700076644205390732600931607274482877302885433089217328833352751217118199647066089666354339893671599775852942367720950768824442594367330823584753253629437304330585638564950575837501790597249717141938280074691251093267417334889338707118303530180444064211614690537652276930983983708809663742507181606340657433135257436679640967213977888314519032451086200920587596525087433989422929886028465709688190587051732290732385840353345170285777301898037003574592856259300606301760513476101435713255984470080682255269336658473171252829667473270060933652880635529468422670964674651039474887165835417870613415964131741706595217261562565175803625598438849808830847458124513559483037224763814775929363767588440371240764207454813958753801629450686440531023656834404475018877339213005172514576527802783219291517322943921486617114923300297142940848382312849811066710226734585483661940356024084135861762146663139187705037191167567057046219776696283210296333789451800177006507721783962366908377374901889186037118753189391296144466780307786181081581153415884904125305680297107724490224669705948694679409171551269921839577512757810887736106236375587467973059460949356654674624730706259007319371063687840967167371421951716238954700112114915813922345240506093434035531344371834530325769879576173170752076546345955870160566204822315167591100521552006143155939631745175554107011712119878004531064258331606461439653940565910441917585535463063792316574113794135190185464194593650717866077605756963502513378215386618647111242973523271560997801217417361985307281643208120124617668697480374901410249161973910752167470385714350967317169384254666682228722745356358391635351719272239386871070302327801770606664318618515751819181844182427663549682639831682087752439983600408686563912810738139976698438272097888217652013298962073638264884938680273931679630622340330543901723134252658783465797485923402300296814410721531077683510589852742907858517271277722920756245446034600334345309976751587339678110753611121161691283485043505686582106917287147525711351820299121375937069347265259605706594145165591471046969719841064075673341458378003167616804191538340523411721319117303967889354071543101536810861672553085251295170590995893146093180850626213174241510567504252660243845326779294027912807553227273619493606478583769034186507753549925387310449942905331497639424538668683838479276325226931718308774010201186643665521473317496516631333975930775332140429302620023514856718466988246451884979429381011332584233658264642001378198680798923935116333464806679755008051650691416548065834994274356014767884352296892747443838568631916793199672125696275714121172002649772739069010272340161137867111194006162507745864430349356726743343273889946856225905041622730924693903666212914464371440691831094756764851355996207122489691007857600496498200756094173486752327648985824348461017647772135880259214110656816983145464920266651502967249083822345406883753166528645767263790619409559860232213001650576703740291908342036611797927283880537617325361779067896069068876839265402453391489994870774567495495045399019554321833803522350255162518801980114619517938664493091242866154211608064189002282963309993365976254576818281923346092198576397292720341568326991890890790714453143271678950472623167339563177420328459637568539147617890968019182559269138293419186204955304254697602688603204837224914326175459936317143977930978376071023326823166584894319680012594668210758248186714129026453374109895686473149414608426923069818704956026598176245333599158383711175990220255365665015868818373523410866844863036228785582819898892970676560193022353136782568035139082505749809390796755803386421264001098351313875787918000592054855049246807160249438426066578471295254146934630066628845406906257591759782908349925504211043732612694613973469002995061408949084230362925162082948581470568836051435198134039134743345113906050807557455380466090069900083373151351342147562777247968296739038815415061579335980470316764335777500896018586666643337788890834090049866070041914430784998209163931686333661746414854327493369698127896747762608995910638065628381889223108493917053287111194603919550615130344300326495819950248727068957904556645853894893516676298927323703460614228247041410430805518593240368390173414239826267521142372752710973850103732882298602472391367932855504564118473045549009218049132443462578132689852096091834885646545138552449577815104945741265572986791190148973823248020949210812135627086499364102630705692451520422306828211569163957739256332147285033089588946099669731798757829981088562673633462331419284728567535304573130110356702213289418630156212954238472161016227875340989892843202825871578228054439120797450117220160661811366133932798271588155462851344320836359876007216421658316803905123186005892455425498146470666135759133711291406972947369337773883012629593436765670689473538622787006763428895517884602184490124375949116416832505021056365383054536726753816397663463492984668085689662451672987433749168244575960425415738501910971330502213921833297656724291259725812222333938969170834367641303492760006374804482398278181869543279848699953332522001729691776626105443966500244498253191950968125923857657812956985537903935356478069160968620114581059127689083860994173296439564768767962866486923133202246944214111911211727351427559698427167110170434985995258556272701702259793900086176867249181183523901439085080698517457553034064764660415660421905452426494954824388487727661705096925542087986414348045540566489910856487188275529796260616964871161103778862023616912754467112610459481708043167945462975249994808794699763204788106601373626243653172498414477404513013151508036734168486076566505600169030740422992400615125042348546953669476293187298121744932477097220308481651003479219240472701622625317936364310675274274870385338821266600119342701366482498459639740948441592859848594922347068528804113064667034595714333726517811322684807228488490625517556725856923508760228101556880199869129361796076557007795748673568027258478371227531952022857029904805807083622834656747456059751174542469664909749835184168882528948735305032778098176846195252259515433345030672520592773150635137779491537185418991026909106912126921987936241433604579111992064175316715037755851030979019965643887635120424180859791492949976388096218063907519997213343521826191014573368473211204810487055830252537437871429373583999120740507542991252091714313891787007959811969030082186225613351696469927973236940637623885637581887898628018258849224952986110531724803421567184485418673159712371214069411093977591436562357269337596632098985353414608959380288844936387974615897970590736355886153064172875884562397791680320598965274992650902314919147532454255099158611709243783962808886394116109883053746786375837444952690150636237567042032371647509137330195467998230943366847735111808659672044066871900861663090428929588620469883006494274328689057044992387073855979711251006290307484180255026167147292838172305632590933223243226703958086489457109703865567118521439837717824444600116127228623665888460174036152162979562683048785082583862028919152345793878794586631602752680216168254520981079725721912694027642690171762184611850734204533067236615631043225339870787003275672185282674302724568519428787898648945863240593565600597457734197107621152196972434187127062675935567157618885308155943866761786170529062287452525975811035950728995960162368949389062085458606414084793140262352760891786887704298446251436881663473511627992936937996273388186774089335593258089037500858608998733664278604261927541592075566279104913645810832541861444887868121539091876166812594164071281320552398953142542462745987275975074079275193251622413382771449167300698627618632089160693107125421131307019411426652550650842821810866293656113417218485579453018224220455213302775697808663550326401066144744858683588855329610548422640041150338143228847429066447684673054559342168392764487625523183082505629487078354280590928513716228755956288341503690520925470434518518510881615974185633171922392746979736123727704760108512499555343265421916316890715765319816896235603093916916000377925210809992822858764066376684922271192591883117871292684583765008990094741463562504989339158314355608396249687314550376329243925056388774402290347990238279443952949959155604774598689509864208484828575963378423113626922956146605706637050007890571765934429016525223551389422411459724212415042260724537940863463955293715181692817719823979386526684217868664296410883063722530833221542892044227348665985598059198606024458663775128358338993200121403689125388904410922625770282872504826465654076958087802889001037805628156575395531843381578176366590053482115341679817392951159878589994025595757612450767191207687936728987623336755518728674464672096077252623000592271492789357692402950250090898607713864929234748980571917228803870310985220525935434596362985231091232349114595261226545858744204689814085056677424399145601411614826721996801462012227622120456974464800690055885925946478990406345676787735037880381244261127848055951684033837191654890326942010086142287369041235633759458015272362612289932689348358327070427794734517931205327722269991687879056807037306113592646668128915762952842233145748025982017517129780264842942552697849234100131049933966838391587435767120663580413313282855002124774984377173865803874935713673989448546758807936235049898908545291139839722375303528643983822857574153687169105780466380937397523305007023501255959111064780873901974603084462624443258470068040947755703682114525898652025223852244055689264080176317275573542324082940435315817086164784246231962742980640308190567226404644593711884990966633371856952221407798619690868211466545405793300350920731857241132621907126462433489574997676280253422564200044624521440886375868557956341510619767532756191394460755529328559598677526601523840080094461449016409222334494069503728361769489540749834867822480733506902499216837808724683298586682743849020023474419458212798383681197794538579576027105561022019873226956444589024950958297228610131145638826681496696228042082300882751524496961845142172986259137845307298312522439536481190115906494404335016763237617962501960770193675848253239812028732815231092109543559416291625552965240121555755605280383827392919834238774495053001880492366451245737509565064571403007951845127140755406808212217980692746741837277914720673630005160953308976727347754682930724357804419407403897382121959846520566011774692353747687307695033010378092206675821078423250983195211198364570720178919453264348970778767860631950397476192344210546399726860672478994789302627735794963264056487782363827962664766317384182513503048822075277522953357121169539601807627261654547924570835978444535656950299221406230909156285340140075094926624111150708011254550667133127229240078374366654703862745766880277661708215605699134975395299157354676245573529538402684135848610305497638493784988283505226700637172260545873919644148926782649029727128348082106838719782520661295589714814260218089584120792316399220326272075135723699011187760627020754503202649707341589664457586508091465458492801237816537048636803597590150942005574629217098721930045830683032941973549047403678148057688885714884650152357847576449300200519224304828315267638711266938933137443975716257587182831930854278478584391720687887299915095759624750841412968626664265457159774868266467440691910840326875045056449274044802721128445992034252849339498535525423289389512192250566641506168371067647731250831733425842150052442348195888564408359379049696204430104684598436299206743006819382288684758665060976699018651962403763286339522679553073228603414264763341659232708223963195635917056360876429843247229426443643716664731980875127860662789585325285852591078631913330232819145325525450269420364734749694270648622689160867146365704561858778033644975620140035774868225535396265587793660002815655765678069852140338902279246539086786730280166401263761400055060796706165597248234297089519802739239739403358794243064914108847206328624844455321084205908145917102213665496137863526001615265214458862993818885266465784477810006412382356926797707717691662273375396495993639744827448611430717013473341666187619020382926764662528792759043939073395333617417624377446292771790271025354702649944460036468834794270618626624957595391891880356496188016253216988443333844730325513865623666471810987681359501142876071142801420824995657741219444687101474402011136378461557523221946875934950657458264560704184421228293354121097641176660726522458729939482656457037809798727221387799947601697431142181823620736552299017405660817224343332150838707010362632258825470922497535270732564037325604551743213770829444968544312338921310281699519333619223810642525063385004531534951646854637291593516069160887012620704924827347903900958066583746386217619208693795859630005892851375420321969063346850901051364135293324946776118655649013108045073136997069359029566305830480422131936913902337866021888334757591687368933973640245694752323594388659489570981158217725692560072417058761998903615028622075261095970098703082475808768170085899435460805621199086896732794763293078483641715659327480301831657901584551646676484128890836327304432217919689296402979771040646661412882970277359512122707875550402747242920758008284361099485851799805259031360733241186844606849235021186204005142302778608149471676826112150002501660456683860946674729916610262507234001816588079947715861274209205542562859458627795962880965811066559135002418681963980803085991867066078402263662942547770716745708614883995771419665265923363384441864393715563828483234286572524857254271929207968058889905459410585465383320356524445917858538670386814673823950070683885314412032239275636305421199420265301788161643244361552441156706617592840803517589513630981998733057963035504680531019469262627294144072304334399628323056065133019409579148641567063858985572762351222389034109495872317989054904197712800699314238943551490531556751499846673602354703829462483859020049532824697224658662953577779518268205093358368226539640311693433488412846773694169669704940454375245662541848350027392994452542528942846924694080696231074099983136644169631066430924083940993676320591015789401790468185719966059424227770774561959748798158796735276530100711934385477664507693804109738965047109356856818149905727815638677782464639486356066791142220979448610389508106404865504648793789740425897304908640137327092774161036870718489543776547280603264813130055513640649213828250525692752018972282762094109676992744283722561286404130500465731008277487116920708756167347188067823016750942112791821519331209242791846445924818528775200430939878911854582028051841950658263304114706810875030170560611290027700274617478716842948710651051275428861483052300004392215884474415563523040673376141071680084936141981694032434189515186665047185436552329824359580525633013419953112453764341778366620757979779335178323915286979813942334192653452776321998036646083856316581224965623046036750950812058565466303936318789420377157306500612343488178128412329313080619120010802360082705300138367716917524183534923112400841830082368380735007302513927927665672150377750444314979949106271440208370079395666577087147509133825493532472952374587121025997108617190753169252525461194793682294069003470700266338178017274482259616350307873344122200722408711427450485039715836118250506296282857036221695276143271602082570757441374754079288854022463846486873848235873546643837326372067866294308662880248872200006320464283108916529997640341420159540514102570719115202508244393846039704818354755175065405245657210779217598254376213831568815937732970608341617596261470944982425385287366404511307513230564093589312058412646180932274611050063357299187315349656301432352878236289367343221197768265227420217936905545408211597762205972276150621295643373975714988478380549503156556082005095818518207434902733554108523685237354906596229132450173916498833700066720228321523350772533670126513289375478700185419946774009606882876619303256949580121221338184496197698731819554135384028859893586991751829807206894274059470855990006781835296766103802634174052922443450822847596745184641981031287597519631810558443514953210055804790316858506696516574283687717081885151068359405000512163030204299643925621642376463814183320716012951923187479092042487018791172592355586083915628252351643458341024604965192090735087118439083346657000754405225488015881768934670172718496597099065290950815384165743302996171958803103295922850776419388061814114477726980742615523660063160187801621160235974897198858344682414081466960702329403538054350982650649907847433811289735558222927171259354350878392106709149504419221652632623282524371909350478512289979176234551240929548819835019743737314475122244204302043034675077953474360983035882737801277336098728281109234390168906633862041866878165754676799427458116356654634907739249580669165133798492383244506586070860678075947005636103045034873315719119465717889983531163000395841820693938367957677393259973763659156174115102303420831828806969850202005801157145998430385065623378257482693586229612403577464837803153769372535906079714337512247977622122145078141060746951799903241779408141711811980062998792676684445530483357786912284992474794310670592607546483449978694607120358842866809599795329401590563375060156325759108875371601362061706971566552566751309825879861624288547035194044149513112038728794326709616185823738592314235290361556102925657298559880311176258541685624749828830562340351475828867794945776214517239797410738044791043467274014654954277884216264579032211058885492671023202351599925594063590862502167259366865046182161471751515516976553386908540137488552888555343636786152096929127343092864383045206918969639129090026250224214034722949576802376449768733059858127007456846201796539635949702568395051409388268246725915362610910274310784071832379383262254017158242500204972942271554818508287919546816805066072253914242583528843047840268553454666117319738174750946611917342257908391323826326487297153007133181557507603817992378026813133962079051203807146407534961323484767605886977860732294759103751460039859440678488672105400949380148478547306705906307901097275238806357712496698129965840774280602972955613478615826007188430510828128540274888981187135511663839034769573856580594469155704015948636904531609385133539512695360156305763071534746669472117564389744800670403783963635045437949260747798137584760133491546528779805624977914863488095845824849198620889651268379970658938175872200842771775879334887605143479915103855873784117670076083923994804955298716099749692698710234552933364057815119313573676666916412728850193633470016914972852895059730499950726478238035515411432157610717654399135635711440773508287591044848670969201851033396757914693230890760938625072505866992112298297524703310121959183858523020443923442208615629409074423273084803425281589373512165520235148286913287473940130426867329330718566494486226302456764231880595025690471639782265766635247316412102271723872859384539203458052627561446489332819564468200447617717127132163488895783877524465429437432385796716490764308854386703791177221722537639925692885658183791879984279953204406460000432828118105359458036894725069678112156082678353304604658776267277847182601158604246372713739222971972131232129755444486309199330319732695691823267865733211738337114439625653637257364406036610696261823946402777547181183597862515901350131070855225851355531133769201321790559966643431224378715418172795260773135560097957965218263315984578793588235117353169112408789715737507239669158737107373988263198025723323360050031835826576341089477171890250334806281433693001658006189254798696623875197695977769554949598775711574632266029980084202483966962319518508802252410115496408740826089258064421378619329621207592697409141055159562053858637762980594286622577717319461154481374694179251149699913064421882246310590397081723987016704773013099227871883198660676742408444860695068899509390481917466429449457013440396104204744500278162709153787653700705264256338399092778343521819383091681622195187315386218116581896953293759369576259125144373813571053910352822944729313055610442269869190587369929467746655763162390736734009586572215980770536654405708860328177600540951216971522256584882504483096512995299906848464932113182973676910829310714273115798165067946760395204305783127575976073610404035458523731474763015248154525702478610269976283172009585619839898526575899973478241452731623860380318843843843293663717459165625864824905179209686663134230504252734010894267902618919139537370262064417536972221468674163936841814923822352430151633702839783460348341250666986638350851780715823614548360148398663915173978950072171083504934094259319206277689894624660569564841109880823453983350544350673788824207992356184703009258497406256822997056296560630573171006091861751662474388203665132489953000838418713959232068765149278915697169705392940226200754408758591666656465893358523849454207993211333018709068472751535119353890720937070328320931001644852760405221993566470328823992173502294042081505343017030523042408844234917678579525758183082821599558944958884638050453109903204764512865640125621432602425518099012883471371654539586389510916005898814824338747273173099920202472650072053698934225293992094113153380652169226911929911117539714016351611452553247712678354445366169954799986219960870720817909818779966316973121223542563063559793582149705564847724977118720699155133081494308242000872752298201941722133176024847003743900623202788954228504720179221368312070481597617800191107777568178521777870528572416870348521703382647593768055838110218309028848504218486523721264198166251936277214247750788630236144935359516109708268402063055170268605347100065915983882772035639925196800562906604041101138307130969902742614796857242059994041355203889422127631623840310613037520873349868726993169457531410594516631450692438867427375120162513071461706544251916262910148704686337199565413392779773092929538376275961901004530584893993018335927645428568951079432774694778390155967389508612214410375078572705757945162754958557433219200134154719285125427339259009292415120626464832789320531987557962086671816545644849916403001053473263120700973528422356650328391674770487838392152952160148919833267407614148942990757946370973965243472519300652929124084934417096177814901117967446407437975839227285142076036411991867819100373832460187623457280406077402151812681558653394574184534021838130783963173313063180263149926686539557780407861399286172783285572306628331204321085966538157908510544391642460696835100362180446576300671396625942412061446262102591423714906825783888323147210489646535543807431373288337718703534867127469832733233346886838042658398459494687253840478137435267138424329617648565812209216612726522415609599182447076517361252428571130178662097050716412531247347693355127154248769374002573469850113188291046618561294267158890129074881770287183052164495902512796171070743042421192083159847276536423338803942810163498059916265598702095252594441560696461302867921433316090732371699209928539712290056540088765791239534098010312404339444290706619943013931308263163984533456009929569493142985254989218308780751762735532895707212585585942770628228922614065958335009042752985860095414325343560185277496318263708485841692910031880102995859213625429271286134078263748357176659364325981748263329345352235840397224845292628966990049386769672019916356867534628029268984154655403194636261914342321351313387804766622055098542048712417572081069207080829065729180679742036729510350995981844007317901494745443239069534513194528402487428030035282292429013615305327608792118041899752715466095765025806584357432924175026867069612007870016857779861157421999102778004591585852681564190630154314133041897962081156525340725461565947465058348602727399140839106532327194598846225797774748877493565709735695098346089034408060226258009853680342555197112333237231732839728034441360874806883850856129486214484857350159430181534200897228996894374880781010267424650478532131719983068498274887054251677878638010256713509984712484352911894349097653644552061250858940908037994713923323690253411686118591958745192437492388276167911530094151110657804286081517501880275946059658009617133631864634765007567708191535283412832631624829203383081701013954622593694763451388417833317931588747935168708102447357982464376823932137350774812217237770317517269875899630785433304867181072811481845863064569275689279805657652960457093167789437350121930407226139294951255799057812878299008368728647962020545779199060006871539509873760035583714019684627834805998676166213383514394781096521879270478351554923543881416239529790148772202021527624413795444289185548223412764480358497450991363676938976517163505722930909656465507874955685893450620285399240609802381318719637295953914086473447298031810690379012965277410768007567175350384118553639252787466019293705064081498410461400125780783436634202408437610101844565952739875359458099135991384147467970291779890462364708583393678715023634351575911214499759177466607749550722872886910652586703679997763324335432535393395377026137995291770948849713693023405419872216402036128991989312108422374074711897736843937402000751835727816040839993047435250926555192939564529165402522928192852472853505458166247261697889853541584635218292081810599448811185973338121688168338428807509855335842336471184530573568909878692871096916690986627541183695758284647317428586389506351559534004803546086835808396727285432347439191254662641992547056826423741733930506224157778639717074287224390052543634898203536040688846062856867053346908573314375169475764266876600711931378105863684043311784324472603388760990869766141341366199249675445375576482152230556301519983456265211551522177115104260345616099469925561206840994617583610191751051670733421184086103475640973893501395751296218109057460474585032378692425676335781956212510161717794339652026397300664326309864665075167458821567736781995000216558202496968363692087439004575510202324561749278380427788463593914322590725316097043707687499609543554351603540042350053607519375097298028643366177681584930510998621893947678589305645032741238963553415449216453960955098927017608381376319144987864171653415415546975801602487087224337496088128924219253279640456730389219306700331888304128329631890479392637193274890715833258318129312922709978338960533086803999799707909532461653816237767419732179840643171693166450603959232488961163392596690626520723773596090145623940926534649494555479154713144285000333487670713298661563870752320427343957184929161026690839360282116675434810687159534254625570352838446171062769103850832696813681217750906598138036489260952889553402444289834516197696791819249543081595313572524223816347572341180876902818093922308761957030157559068570127091667823085512531992873576860343069029805337357943163445695618740326774607359590619693475229250401061085478398716909736910714449955149628837370205472604492072803387185942735849902972911595604524810107829577783127922466721978179518080049383675285729066384472165816536950805654874541559713639781458899367910388555860019164134772176934007655067461387148001571723110968285856496110390411636597644864459331313021177633418157555687587303758313517054099412330429050118499487360810002997841375964271184131010438649292646059129546991392536182601652243285858433678021393654393620181551348609053456536804207482073881093329525279994293765347398306929441315840994155192061693807195433056401515901837518929525172843633827166766543907204214411471868754911198896590197652659716708034483088485224435975268439297029970688626644614451041476476981368747482833461432365510801769467056991884130462931246236146701809104479557778199829618670029794723786620931149775803571111663306732733405240210587734814195353383927708676091283455904275249327251382143165527502692621582517824465580187409613778414120093625122810717799546569745636578971264046429751341241579726420350320550412471169070690268507566162646718390038933732572137870672101253845091728475092758697756979241381789938441096290427451009985484280215658754479990996371071242512905585649542716960690156048147575343299291219105055431676062880397340367723177557059575418168565526994065092417535599665016609661382465507494425547419007027937800796991184965488331700557156692551687152106837281968197498315282334843785347840340800073860700030439492639054316649634150629900574124102650908460091385361627465085660928460439136099131608698794244348499517282106942345494146999009134746769594471590553189098423069805228315960527771951080812834667007555041827489432818174198589052331758880277738359300344541361446625332655577971459561807930778877988644155456242978730762391479807119405345327327424557029375708348789037908371848210890174184462931533703004422083154423082461276954241795871790009871011610555387329088130576357397398731704462734646187855076990826023319269857093189116569727728137280499835068498842714555619847917809053493785687113257755683947770222099474120388352909643066359711926444448567173142627447660671252209659244448693424965388996243362347706709059859907523973281330177639315638046118625277759036269924978928620964106340486039520530648057264829544060099633035270030756195963358148375707249195229303895456099538909784354390229181057107110453863842013487651332964260049376255417214443271013689183969364496340237254564175465519297634385133659540622346706961679156297909467829722897230101213201018822373771833987657932916587911342233761015922163608152113346527183512167822616697168652991977900757305343175282275909055088153066554005089512140465538721952651080924978527390846441777050931941789537375668437144787219712609003388347751641453413924590093228862961929424116276572071664123705016258701438468177072012915936971136980458463515203571989182289852514881414666155121324842754465950065745594371142248847818880704244563738487840479909066473836585070023589608931151335596323709335744644092498478260808521639062705026880088396634425805396655139550649184556907651824752873105507858821961335719792051409372484799247142100903393868221988896875044321472389061823783004635253297995518631899680595732423461234670313820320180481362154218216391275729605019963977224857461084261928790412406201863178222156142707339088846023653023101996356673460253067440877614229544368161831113813472226763901283139179734114448789024657275677947340241182154142121916484922422619858087426964174721034744730593338114971440581181292729801139235689557004871616708507613233456536347586616987367479296164427163985809404393568656471300569690143111411844278571396663430226572011428552700606999519408397162418551363992008381847655907888256158447217551264109550364964940024359996469811147218798766418932639025313613039945530475247017355103858391291245350765882875273542175307555314259799587271716228228250951275899103920566880410202219694711555559673212147436675655269629378724794278655014298773492486747627044955482391205379967175470704337972569995711172714105837399534509224880101382351755503598721767870195744161008100182506302252366309845804461137367942291878673164482290373479203269394782422416835338946077857854886838391578341339546148324075614793005468005281909412414419702748517427576028691120092190790064595733070517131838142174253600554183768565313075826710266372384187118122138286245192621057607290221240932063535416669393254704467285882461541199749885791185172586858881480134569946355359682061734209273161689969752032483842404719172132141813411073390631263247052171682530204757752657804790590159844553452513652154053847367981324310848251535144393278892862539633720338298348971821266184356549619773721986589538262473704347390469035542706668318626836547556831037459988513911819109484286887919468178214496808295034135592604764556473861100519780138489945845859993185137564727333467405660738395339840956937580195879776855574187141830500830408969509730200335137085231400937169190932734008608742727845185320122900166449253104112273991589075117340704749682017500794781085355649000930546884674549255949197170396315663920765387417399730643783351824408781357772592706780103153049644835158306894572172912085574228984177534057282928663931061479379690063793593543152354333192973030343623407264299379005858945775810736852582332724198723153521235206333402398476386944637110248174127309667916287190151305180446368024674340691447135977330998491475033407585270842357801381407052235578827792493671392802062009215125579756668334050829948450213363768130181716373583661700824569045065981322878340325516502304336293906188104077017737192807893617961575096662403617556840853149959690713514345244921807436972489610296280780069220383476076083547116844417636058627876038851014707176386748175729300018695894119518710673740827657876658700081435712484937695247807958250309035345445632238930306245823256348764461371270864121034881037829237732094472112596113748901249268483319733610002527770671739563184259386129481318132540152515323294570315190823687875886406465464696801235889021092092501357145897127814485708167760683290780882103519373742176665263666921840597448927089921609175218948397363588419187934603713389541555728629134216473574130428042447770236158432284319829703154388272591266153690978332140521035121917776960021925649316420319856014447658753382365075474881571652415834930228757633869416901996622660087903877628206889974860564696245502935389982331200932531281773223260982943787607163366224623492525651282532262254478289523486630627028489030926918345616265137042757557345722224545324143740913514382506505210583991487611567506616740308248629705271586699612560365139682451462345836085794761027989425215626615880315835450381578879207161997583674976732386240923015899904267216301133894976631356358485184605761122695360110380976829256448369916678726287731883226570820878454759624469188835133051805510764684449870967455053793948471852502893233231988463361360222190755337167951185866494313999079463149109769657778335267871152496433973995638350786194703118615051870867184603352532053246072839896530628559964104361302802245805698252660307437499484530676447153806191078110146206670688381713631952531592974395308094633502410710877022134356796503454363454707230890761127957069934472917240811590586995110024425013657816041479373940656870961690394842843742557578457769922267759757693832013492289546854603988692643060972676052065843817194865116514704216362499521245754669609522060704047588608630362465300830152434548897857796832617273357498916831869382185946641846202483938904573290784720075925492099481185677913511722266835425886763694051142396427136428369821931241016897433869931271337935898224471426460917762622204735381139588717463179680461977434602326999948316221135214531982862716250553747137696326987811363165372925270285270037735691443835651996377330598339087765047901967095262680874024860181139825329051393065788549237244109113279733126690326005790565988433463063288862722288454135495141531729987243350850831202990855481356810559357044634721089158523906977125763293499644692812280731331240136439601372570282300748085329355107175633526266858517743999934534241067650551537662370126774049956388789283901495403277667037453170966361425495633845168713346942979673898449172750601234871086965657497285070443111277422697199146532579160176962264103485730261347441587575182792947895503052615733395808762162364169751060607830683441757073418770513043478138241494805831239414654039703317661991672814297954028030816819293765320438413041127244418573587103868481772023112676182803777353587584183313038832828699372486883321602259974627747730671976938873823673047583712330856014766139867454432298112391705051434979520651462794848617267708638201659137560974183300857763077479514263765429965449627738003427779004493382322210499831337792894995889949542743859409665960866341062908006151273121704568922405485782660696900514687602554843483394694914231817275025380126435574384115681225281666372786950459993175595482532156629993255773388735119015062959925832179568483623766266167339008923750581868411966731115354920265050069160223746918771417746984793847957446070328183469291481492960289681867438485978589775495612952765241628817697106765461964111468717265889104739834827907737158767252585299757090859000705489295085830241676722168529318109742051162504200494149271664440713390571773028429649978912587202267973872285033395938211472640173181143564252798428110267280532828245002391851933567425325577454805832732443327656175157103827623377377907607946133545509143292551201484728497397317010925393153526864347798611764832630749753222659622568389223257778842153519849368918218393954577949557270486426114524349839958441458575992618553283782707068561300366138364660117300037224721208619837837366448496053804165162673812677983995927938003815837182460365648118234471300791818753343995735073628835320464601819248720636131052619567944582201590734637793416481494388279090513469015347268882712969933603037781349935994917059702087337060186926380088662436084040846232774070128367113377126571392669880877349713478321566337615273480797553999973592784258587084741429821578824087468534669917481624036373132442996078786803103445610293685335438106962431301904743721250013320673926877133744650262716243558521602219981275136095250332234527513611997716883131584033798629632507901142261453141495504417434324942292288473951950689756618233134064929994360027790962589470881716155168039526880837878326391062868400559463014576964572442911554956797334512655145771354502909181844185941316515728217915955597565255823101742959339532735480749689779707112854061943566617999184904302939858164740197592157097945882339288473464153034170698416023898967049337638796793652484190095279981456834331749544752113948692119540385611653730628757326087818466558296677038782591018685067963740403193677868149531219675849246489313178869378373972644637202122240362920695299455320466949939394772696096196722691800991575081648232001239266568232098192253967852604854979568402121690286885049436262990581775691453696342325877918485024307347377422519083894803564360090085642705818813587303035288672224933261731893867167343568992915938068796687647022239937854490502588759686773879331989037223638582121764979890149619461383082850575112028166938323395791966928305360366089440118946937635081024312355362356532543663250690213796091137320421997383798809566932363128007622470546635676022680141367365026627253127590023223960630130865967931947159642690394377720272602486904641774922925896514917485478822270344441052559967665782719679866530552202451740937467077729146443083128081397383302640861614875613433331848385963363481428942539678036415999521742132051858273902921138249405645080234751070125160490407806717605929342343164294011584290570825105720349719490025270177002088907737406311543687182923470002660072961964020625509126889014787332658822294252837342857975212441472005919595936954517747894378033286632794850214654613897922792020083637358117412915157302771746714699413166518683962475041319839300366986252358630450623230887992030758540772643251001977616643099630985648020825572471331165269963002892681165679962306538661551629513576642939337589084917467578723107154604898741164220736708739955176558538943503670920933544318472673699708884300354013092596030978237092202710535536324013055864877394563612702022213194937492854700476866836618416729924220759378944086436877852892086657161427016363263309746594571111210250794394095027316186204690982977963572652786862227024961561621945204307767016976544801080642013939382365228298120694806202403339050223701918516108629886327615505751525540033360304462511173272746716411521183660134738880385710340689343254791272650172904835036710547819148671173441529125803908711134387785512765738171963723471577642651918317282561652102709762968833386113213929542601069412579251456755391941122797257872055950492101142543710029411839389673055143195684905788055456625668515091705658666626337912113069398278199606786861817291644875788887686511647458421206506389148211326691943500529252394275986781627873185587411404616478875416637705913109756818399136850568580596319389750251586167726251677697051617758870727503389093332260743870325061078047788359359139264042536003211404016069679331509646973861411286547068927376135449972220594593909098842642497277037916942569739996315919241484105787353578138468287657358670712893311880403505888277794616359581006361680606136270093394935648968560631662653953229944826820771103424024443303533858721080152386187811916509921427888998375536022600769853783760543890449378657182318772837417327416899889406127315522754076569321372131546956234330599576876127325988075038439202984405162871161790709781246541122756320070074100552010301059488214483234564422742050616830176766849091348068562228739158649702577789044182223411890760859357087254404529359566141682463837414972834232507221679630583014165855674839884277261423043347713327461903701486917146621125317789478057059107406059726311989515708688765390905778196171554325971982551788403357958728746399689602399195929433551632605126764507545283007097685129358699613536298747415394187609496052486424970119021955981206107177447182692139388341802738096975503752240020754370533715588746658505376843472340413186763035153993608598073455635553331325498897001684499147722803775381785184547237520073102295362115958673478250190622236518282549909278031008288333370599510672322676167714314587533739838428580082461973114828558501681219104669281305511277061793591337736892815811898780650350438746746496106579451513976468405231609320809666825506511373926855743908826703034187197860694840912143303321192300385773429991296524423218292727376273772883625052128461581859618138327008338267333305881145517087802963141680976631597538107537136494636888592261043893267899880944786517836463058089816880890524607397657249288785822847353433100587177975624363297321382382488662913873086412196341231492721332117124742137222038507569160327688609482230106237004594452426738895200762559879927270622737980777128265325281468838780500422746193291860370385815850315954609679291404203090878862797234069277441046090554502032449229281429219363010885755416532301689028216060786764805914939486576341588354964536282158771824483677464111694057398308726075509589933702770631969392210731271994908194183344301733274435776034717129105034075326622940887573712650848550193219823821938792243313916093852842719181258390951538513181631754304370615306798445759403735128874083104854990243075289049915138728262711229851900596782810150233859132904747548087333010043618744542444565345603575565582153149010865159226052498359030026066515552772811368109956659500419966610063933454726757572765965277471064733310120733787773059008354406493073282494518087614728233070893356866140912336321569747004454334259020785458827867863129537743273799673427656316225552461131017775851019769667846539491496199869325885449370904727787819088817984617864686326119868433932749218132381526205228586737562812274446695055224317510086418110036171888292414850872087613424974238341531151683194775586289379557447842775232931866460866588354702360910691739722356933909865280979188857926641805486532988443225044388535247273521505687674421508086841799518499970430029912640595623238808658593698052105553378390625538323255365945814094741088047737247686826954859269706252648846403535378641084384081844171899859749001273354683435672230501465953602809053711172069355909571239324368922579229433862340926436318451317543752566956506697429195880137951421523754296333142880061570659251571490145729975525024335230808528534014484528849565820623184232047080979857102706450921774818573756792220898555290183417494496721723307306569967483189922532087328476931978560480890440692464533042491918556114305975417584305267400400677728713459130234711911569456506323868536248096159405380856582546502073081804496073075776585599723449470200911360412304135306354010653390745723519193990873537987954864995631536913010846362013266550048236629345011103548497960116275955765049387301176296507874818648623616126772152668005418762484698140507078380209084959854066169625678173236634927625002059688720043101681812081132413544254137834293513453866554344512402873444995545642662292798080076028840442524551557370927478508548844144799680755650203220435459448834854866318312978341191535795405151881896240832184699175776661327316642683887868810527600875583054016273906932259036310845490903389229276042300076651461612187274353931002022862912696520495397318785693582525325699478904415350740838164101991131256475053222837288681549124408799775025102433458621834066043039944204213840506503151105146535784288691431105620857414010710306429082177654361781535849200797406062238082222042971158748887556746347050609209338216506333419148206699790386456478101328392523340180259186624702464591557170220535402905031190677839334495945704592197116403863292153320954248033038799087855160355567712178172562733554698323105670035051121738935426333391957017247668261167288901058049364514458968843266170859959452220340858603794951154486997707063683669735715277490207189849120337062555484832984952550763542141039443788195524349673371884566134700887910473244341111073877899946575450962343678650174966489104087102458203127649403432325706986656576964437368887271633466200073794772240323140160406712648541789142562723062333165857223771504577848841092982635853969013972955644611712213337964932251084346407420147570099679697345587679784597250913768761181288280477099858739261277705580006806983960678195484812329043228262380815335119723678510833930860111010918579234670692097919045298914613953976739062789550567758756073398750456906238058160415997979064871951762688496003942987246608932148076875782364346344596864977122443807522410936264815956936325925768832647707262236540699619368241404197653168587713250678997454569240132742934104649083310291809912255451274856481856405307104922080603015347212498270971265879280680786723075844712358658047576154633041801218683664572166629168177878440495031552756186281802025515225488186648383021563493044120201057855854435950443493518899942792209025975811108925321183315606984789948717748007938629425025138080442463621438799753308596488170092329791061394889154873621909394378173406883976173627266750253005887152500675012484303017009470277034225424335553503920287813690497169618821221424091862223755431189551100832652745029836846197595154889921770324426240268304330379514368363839998873613443096607079121342847711598715896195120552358180995248926344920780274712423301624173206840245704159252521359368585618739705878273785149376933018517832619837912374680862071874553914661168227878697557449438342195933828661656277942546291332136968055703506294573054918996725420087371585775602509734146476531103401392702215664855259134064117978097957283783519586957461363044104331135596134009953937174341905819776093782450765388880618083248905600742292233417524514629653217552479635511128060533823166247263917478954255726200373003469961608415474752351525413419172897598325253140163252639342051101587264683517035461501185109346660311405771732023742512321428548395958044053005203032638722666355282694012684964369210188601535087965137002892222545166963303899955128279029211345002198126941165836832097068050026204717183611038589984112188620600277891918672679479927217618078769866763071669005148241063517004539162350322691632924824941404453488497268544122587364551016722988015057014821776226457309734736775754219013105066300297740088432099114354606450230900147899447833971378481395978156712800511941231147058344366665559818892455154371327409326348691139659378542664626110177832058745970284975222410266047420204629970031132002065754062994035921028823684215443152551585479433347734686768960028579705973396178250817460408153254383939747304441499169953680639205993813424801368526581411575411805945700558937670043415074683374571758480380898160427873646384619473985488506509493181579543609166165431046458333259257303938398330281460555573424006419973396942563888334670680040363331882486566640529096685260165185305062784534454889067483739834537515786701335431886824586903945173100491406173354928533847502392878233021139239619520923411059461771844610344972073168926244939379911465871935610561173601641702077961903392252400611367543817800909520876855127165866957254880676353786939333067752478553159252092905459588416184945802074600245210752965087143679691856159795870413775090146109175153634514171623186874676147318911094275681657270490022586128576374661771607716728974548649608824174244719329850872566590294371170820935098521892684085789290839322584792318490526925910651259135776256146507069593013959318226426936985354995881609065712192659478174301055974739511169588704586773454764293888821031018858414481659033408607403831931404632472438817291100118519284343098246535327894823137482863696685393138621891676743393174694845423056790367335034021940496584143900956977660116594693397463528191893381881646218085474114820553856182074023666669610794851727155596040639431474999046234993681029036540382699169980836204578011045098142029081129486536233176841450921447037129918380412004717723748087958831557837708290577697856428268314978477205956014117586894287925268611096958121929099778536813818227307190285704644998415509540555832566735821334680244580861754911706874018294492368987813556553669138574201869192816990084697296982870802801543132895930833355282831503486275134353304895672953071117709275103211468688635894002667028412062250756236622753210866806451954401665229556439156575459091540911121938128172778765080612827162110002557898722682141400300465749457357375874078031061738162326618379802938348076509763568540341839255053679403522134886564296102585637715507543661096194467369218550087829725958082936212444216658284850844088805992492580355074524882051538950886497773590382602475016922177585381024595720408910717065658268016218204239257107865750913643320771697007201208319796885171861169137509946290687740590253264426732282241724628046909017222826848885664648752383927733970208700229034090751701919263508693492314417035738843467427147028414627102915473167320715233426078240410067209495897197503199550589446397092883660576849943156042806225181922782648120570439882080003007075669446174537786180765615288272167656716578382464824852190884114780361366315337234584299675415145869750739790474530125843997414965576671059895386738019771353304087602466073698473247123231275020111312964855804472643518947980351388363364646531314364911356099445131546130808647421777562617257376881479765795882267112065628363614800588941409105769983593449828668526574129559696979384645552910637355226122069500208657207287103541469199271099849020681683698585291436011222499692980369253865696042263878561375952263076267043642828670995965104978341777802776324878323015315586574379942046111742308140915016363150423525158855118196369584709168165199141330439635312552712606511194406736272521206729696448084290373499083171144856787376481433200825436023052198950075825988820307105817019556105764457002824339880305194283366468431834319265203115717889946236329885414175501649913113437273580829038563003484473848296012144747007495079956856471215381210734441330032163176325025255035031550613855296880441833480151117420235975113999315972606590775254358635630513284780944868197923665127837619839423869796331054102295471502360896786397940308646651292556584288775210619660097012658517424565845935115396808795627822984425912966278395236120411027767679716710737428464050563342703771067990851572340124671909423378820972908498355815229340454853895186374737716670036462888328914606539192466866066161751240838021669832841209450563430423315659342919391242473691950360178878162162457240435538221313383340991079142029140160263821937364163579839002426116676090940536853178885749649861404868660560658782011909803997168066948593204021787598041555364671446064572313366141353768006025492081424935782214224187873310014190323417159576488723996351812319344011559411670380190696607057674534145757763625315614285403382618645996552549245093905729980986860489318439512298485661690017810923507786728227879519621431253622802380061986324905268906043184376355185214489614054311585659857123922675242595573129356722422294825911118590622639794199397044671111064760262407169735287944236761011704833496594429011878551765024882869990435779378436682926950327115119708782146340805376607118875079113777285084086652090039697702739693886511532592096546556666224611532108355223602541676541870965457247240697646891792336062685198141023893651908609547382979990218549343595012727388518866102458071998695225641856596587513102575291890549028612878851995685933100027241779715649351161840948928458192262718845969604101480131211473735726392962604553292995955826859475714380360643916653204831990154354210297109477925178559056106691847997088669167770162782748629819860951855477252589942245771449517334042500709835842813512141256080877846650800176917460061653466372048230731742507696480254322858809655944347574128391735430324618504434983627261091637683547814123020449514839815132318327859112590237612518096623575890858084460924072767002959591958253904041721382074934276249177376132921930176786835551735912063904020388988810280029038130248536916872885631970726323116611538667527118206380301610476971649453029457942825105477907200479232737216938572037771006957585480064953064990111519178522370637332848628957207570437769349818890702185339562288858547981395150670811655075785495483598413870551861733664722745110678337782673372789250087479176190805446224649369473734869808423670678321321387576907529293578297123749422629894254840542074872584774435902983163273649391026820516537769031377026834065553709519125473420713186834524760044075363295957433084853065926520510384015161922599174545938888924233198101267626384490113925186945646735113176214470126837699966407276725516465739854987733108598400426460852116286939715046845344738683918654352490775765542376172806911684981761899586792594938561945723139591059888941872673813725374351694143821471286403699661043799637165809147120466176699188709413408847217313524759573995904079835248425227200298733993685370165200340608331689512924377664555115621405825370308980243243374701682164925425964981576219903353400320559549247560851588721928538272686865758911576506119571523385249056236634119627983904110304386915184284628346629119139748354773867173315963738709446535669406987377062973257062319805055098197435600264438471377747588379976985252926555750802275996624647808968277298397379885313037378914863299537171192733185670090868212924910208411181033993148735886967932777314640210109505556092430782293208621066966773398786911276314665682182787298648878569853500556155107035715041805358241736147934272304465177820357146761525628023156269849156144363443305595233835270044921270546214385038902804571341976902900635036168220046599685336548297572384300511152684953802088007471329627519917911950425229353209768746521027304143417859071399459051849477483701205750554337507276578932842712425805043684317299100981298244722534300097294687152919717817651600849520587293236914900211938564007163310125253527577140235457582157772559260658454455706543750465848888287685211224655644105292102406852707503259394977173584576142588737389321276168835101091849213566145521288594094563092918166965281642477611800209740052650974182778165530784677438378004952224812906100215507515258906461730433174231642293621961895731136762128479988917563993697314247444943041176203109176813542030639887431471182587332219870639354186543540213765510850066496683813665799515985354131402982125254582707246381736305209614876920809664081352396351735805673086113502995155823003123868648374518826087910523176088756824820764480130735543154106207458988287523603838885095797535987910668367705610935324066647259129068294892559042931221266661412403534415508689669551790514717783955374781334475080378790637488737056574223148032187740115031322321052529782669525570165551722009998922842333986372389316195522118896972224495570364254301141868873781598794037371775956726539636549434064047798415666157481418620703673863634887511544717690708447205723606110022176580423044122929547304695803530379818044072076095036075587549657467344878576206378308676570490845076881138450703097614026203760509007035195423667157704853696185854942397598144372877022216469785872305683436392658633641357907483367140611872529266666155011893663562860366611962919336800508180674885114961275876703108735337010587725294102570478702139248185453725043476472502281585991814167888453509940880967758882397157232653082862231389106401744529277590495233830682630570112523768921935257594020543975252084529066413806428556716773141394363455653841770407320843409624516911469889673215515642083299866362078334368988171763475188305377299549477014682975528275221261623587057502291161509693468994154951005611214999382550002727124997177388418190413495028897529481500095289979666767046159422501320330851714157242170626181940607144361715087364144279744464861865970798104712564502209589211020427966578678316970670038264491005365246049356908598785091507354762688692309680614589265816472146687059881427599293211503768432000103226517934230356627004195376196083822838428776841803002355719263545688444129588694422069429474474489432987529638138940741715509604028093027744241057737685180403298130323306460169608976391992781535178555297310122056540449786657194850676613023365932331190623161566927797602436624652537666402296858901267523292067771196140863633665807672518960107553531802228911720122648569918620469353963149630258947527213961475407935798933487313004909141422922997214375935174698063527760439236198297079596862443861193961493232112437840150045464442682248863038772196403145883022310760049224621765562821044603234318176524881613143848231107557807308892667341800975635849483113154206768155044603250438195073646395877891529037337580572527609989771063955878785743723929128539373044686015566205573765757705520400534615260351409356286330441734322326573708897312140683988281855699508509896443863716331884999968213833209390791987028836809252538925431463532462598284018694245254639509053628087726884296855345492601727078578730367722208297512491421174953705935022769805686806321560440746045905851528126832105534245109723293167995618940681888329366032971801149007976120395052487269957902874925746659409969399346933948893979989317241098689521832926753877419116963630497337113427922210455875362346499562079981658109202274956763776839761312573057588154091384512137789155560503105152913661998172512177298765273616334032967462282289145558680953629277445096027290539590912945412603842384289405811491038532125465850768927218884271974365641772900322980031668225633443283952479064250061590110822551151898097885171244484598240482255740881210864987005694813311273300080508219321451265696845890963502748226315386360636453151736606860918570198821169020591093799321588650531353196524682374448963980224185778234853521490766850834015391648723518390698365068502889929705177630327996653619172875919022889724023755596614505978674200784168801263268546019478759006423528322474886513067216822938413185427496049099263461267129016344975899840871473461897972205103679777872645534222945502683957930232957697799963745800564847505093662022576847349763932246346429301802343603630491954099421869327194493933462613357258146355819610755897912384748935378818514837783270031338263158234422558997408495004643702594203810245705951171178012571525827750925636681398285852333468285119422368153471550253836040819901712808879774399110030536469477296890488402456451421758161722984098578556807402567637769020680647194442455278122884977006103012780167611452617260225817972481928534896015597309125953663201751420211442428964545392394265814427867692584091659513235029012398965468797876262710690036996649318986869980517241078765511395415406986833279746736573771462984484507476207723943976296202177664884276071208394902752577234370680223595452027017309667144127001506201346625255273249090900080594988664207195993737785016628980735652036163725553152096184662120548336720581304064604676250370735416910385225488107823906446501333755094835713949203844459284676718269603862176314116559022891439498936667702071122531436246307387611795951438943972680409046243632417378459236354170279382953916352725206286604684155851434395143935361581548479431590432060059597617828253614462044632393941993499464323672545568578895869427626392557695922626652191520671783180964102602530021319619379304117595584077462996740070969466923061265991447704590223311560907412145115077875895931315711985326265262085224395974537482334147094891986800342827007698712976022999838972022001501356996969426141296655319411615944012008601244772406491265001623952294893011061877002479101494600856738012666988488737361900621642718934379316421875314612620280590915603272486646776659668318529090638903478554398712422028248949573934770501846950022063797064107815406102357436082168451442270922263485080439114627467458042111802855013130854996007363384907515080895406878605239066469106534891359337181539176471311033124956960320384891909838020683417293113547109907143947240454925875276304606474375259369034649504907845777404597957603273954126566746833034627001591997741676717759322706735672038300854076097386856736614514041614118686399789337172501353799307915907761956340993604944767482509743609376435140233294908585031353255769044566703597633759256091033180373730299940303627923963922496586250400595130266931489308660159841360382531352165062786861714187317647372307914502467664822811000357658596086846062058735896245591433249210762791413404426833956377414563626480407476815436338303910927992102922840150363280919785972734737865482507070776329967830868910631355190847969996117563387029361173759705459986331114377437732882440191897018700765448456340439454405431080565189074825177350407021555826870185300926561829154386638428330321265491974845350856092138031361827402485856629271235641590233043067602164494592970193514158806966609927206949437880584276025113980858133484738966173656122765333464428708109745390868778264903206300063116152390429872212414919136283092587923059853993143804593408818884674970848574710219139763929229628676237110897920079533326870002365428027558524339585422639282417006907372674187759296203972877520166767123217019130883017507853235651519287710274869706364690059168539226294089355542441035996785437435602872781478439761116564508654718921518098876917458108448772427191908104077901085890715990567810397535701997148326927171030718094304789786119726862778930720837530979299688916726964104933459808020122017494631066739857285630022530027489431978695904747780100758869131834590077978171524810902553396055121213428899905964868154912523571300959492323015647900493712738160492768653490782138217169238855270822971830838412066890795823320374833536600705433344118652045726110838143279468147852153938205679664816738039875712883032886183070276929410230051711580852490119709766259584494731145869750207154493591944661390025759322739892436086624037674661072042070073042185773340172198665920950433962531432415209216139893438445346779740692005604897028536593637196629113529294236122879864719899522112198574476281825473251763365019212409670632973074501315897041622468858280655956438312787401471348572411674563184038332183217509821758322539826005021093786829132594596759079590843775440891710119472111430029535105741993871994644030322211420861426472647834850228185562871639439699843773776241691512398858026132875229566743746331595817460850546057171703186574662356000981132969409589645998754897368592027438688254807119351456395476805430530886467684222526105998815531507440156362205338014379540955906737920853020896448619105295511123076218714553992780636219961505095942478789694847780756821572507808618018214531599958716592409170097187406200816704199003043927114571253626076394930305698288390655942804041846142288177466904304271867399575475536819774597518920768169090866687451947483687034591725020980268228242376366904661351048304770635723484520047112901994547738567795402631744514795315252124460980532593217709405746033930458404085703867214080425380164103159088226488692603425856819811818139478730414257464980953212316020587216249121796171468624232387363761130988646053739511060451316514705258906396624174642206230573560081593144462289612386480217813049179034137173547604690332057241863682976081085936661559451880786502430038210529527627636278025755620581613220432038290465382822166464445993890999982444909313327887019489785664295013750656005088065162251987734310960909218720370267754369391929181409210630819046734966710172151567297444829171415406972650591446895830139341324149629783701986534914803323647097239157676786795128681709464032216441130268404558972275917875002181731125237623866612008530402483876767215727480219324113262559503506959989087659526683422081385097337941586129258798750552633377953891451479007523823614188133009123813574586412674376852925501999712857149210075499639455383176225012405735837978841892755323359678858159220882272182999379625056701725972063753364967291310111947461967789846888746734606772154178456458655383675747356434645740484082185951733399672019744660301787238212149864101459112931807548388785358643733738870426272568576517365310099629630489418339323547784080852691293220651671818237848588064661147160517109933983149886333215459689797998948664785246676953809437969109245509375874892863706982942991002095269416020458777770292580359578961603094022870648327255764396079135226055203337769912595516705924717280077873057003399134577941387841903828360090241062529231417086745436477726430876547474411306375218320828975150816118124262094066711009802431009670370099658125166043557286467872169256277873850065145645032587832662319847984953245626739299939692431406026966283232724401489250725403875576467724123331858418622700439862322880626451351538875440029185324410988052039910307172317425198909163000995046407598714166508832824270022275483291539336535291320478581543238050282643534327305585258598441449651116978910614740201081557967728122943059954177380302892361689732776446250121120893982524252516530144223447699649570760826137622790726967763313705522244155134066608548534655025145595933083971939482370542864021235170756516237527125172772326424926845831729033960703791804496568002686583608023074261973408402847725033740911131681648902178774285968053905575122715531617234732335658087836179095687807760960696814165167726617655413180339554197833958605272548519711540762202374275530172741772427451492275760053398899355078320314256587128916257673421418157447965893941679000491075078554710558136181980314876913847216210630441173544189933118600285564773613875103816255013710585000630327003863152308982264777413258293876236566132374825063540822637482915329008472264978852593898758672694589577745652620754311682519665577233717147441838478454952902500196624966389217024704846812840525805238915439559294150251140598134691937732416093473267033795493753770704981591382314000745527684134100199680703899452818306192929497304990691428018945026625324605770521957006932490266434485553813705874039074908312845497558434893797595988558862555244180070736248938171568006270619020726419338796920749728568773778486287528782984334382904088102059328238568668422760107158060778266517133926137852115220356503039421299992387139138240345405022221113313373963270502204097266177349112465618923162648118014802462185912299656893969387905640556782138458820181922074667012375298600332542527374763908383721795554005660873727723565235317154629986737493698124519219566100821236057743458978543166914841703195916855238460397066361462334394136459838023402255935303730706256956378136758274793887457357222163469228622586606206977813822678365023784981008893420474106699965114267804852977587716046161116897365991808262377887632041575608576371773227372276870743710444161175722533638015278789763322886614601868858469802122386857161649530763008117507021976679802624548200515937329090429281467294160665008448696079384430615459125405829476299467041384675204363320003127284180290614442027474761874165623359607507607211093432043155434886796788717866890913862318497368883893125261809684723964371057324807205553442644851615498738427008830049949561343105399187795087398999208306183502033879275016745316436564885565347671672465827598541765076548072762241012714673400381227772146459448779359424199788443142214888174783923056968038159683737087189248119812384156252295313708388349119876065844491441564761500725879834788870211446872989078955954248692481425722135494470684585386412419599370261291458104997746459329171813905128112828022013921446421750328357415032701433549119208687556885396505035274150375513487625913659696684599392341836250478677181133970194410837300515229479946573675082462805071309280257457436620134313637990089102862240129225635254757786207550385096998783034556117589133737772881003090060826775798855651224697827721758209321974899038267081938366280785509114145798010375795078884443095550311318536112139641983564530750229263897874479665211993949316642560685416527197878783061974435931652450288046461986064244196857839975196803966224214299090090103451096023086433849074052506409816731926023389074072890209382272289974232535292642116343149640832402304558632122806061169314815319661102210749454126797080176838684261933135984687577600756674984726034166297617412722486691412173668622478587702887115091912317260233686593042320854418714344541639231964959322703063807796005459767649590510342313088679492181712488420593292009877921095967095991873188029214175292264571558624670935342840898450152180797619126833102104351664986225178072974883441353094456185209404687070780237966154582112408099918259807594399569199947023687772996475817833919462117632955252039187555926012167870898519492230955349463877264115225199530122782261144465513846549947624318286292974782541566889284455331429693087691529915607122693833989599836423414738305674797253688058355997795633347355451117554982270735766350842702767840707578356001514088901195698966378222430825631223282203382779649612884583678328969692648426546179506438668541941337693693110043190454755681806981015637127463104014355895159017596200344767497473519320462379459759773475661464674213944643573093285363301366468107466901343296951522469924819429999711227596828421106623510118366529277414989165500018601504320957110024512948744285782427813685002566647090668332078700731748234465167760729384549973529065758538162713239283795617095916054449646934950113652282641389667305219007441031713484172301653230567800523878590571516127807971698815075653369929905230534092705820387218606516719160893774636235255489045255431392408601018138545790116822736398783564915940602899122683035580133532834476607592699164732009882456566374985746295596875734420669954938879436836840479690141829706692541867988699271329692503604237384048027831706685075337695333636422255426557416540890702944357828396530090733043489901569693130703090891797629074763678239906334756383254228014484422594580646503149181072628066067975894226208170231852098235900740426222447241392519514214224872054835602890815664834975172073104069366930125960683289434570891186976579020564825380907024587780786316631489054219366329580889107600708701221709621403057779053043795766596165221899146117414490774041686325332479789885725358879633438210003028773138325003020344268073092827546464582874823061366788360157723261730793283417576015163964355460606854973890260064117432823014099047697027970630200330011298915362003998096902496407207606175311950342947992529619860149280378742861822791864645907473441286764156468927011553758965532058388541218817009696733309586378095579097105502641997733461004439253759735116859825810173346800096089890723652586465165075230539648048258281070216460877118234712572359778205097381554887016888746357635697830901950618907220255813693413322498191741234014801310858069552951594509259534461411022809797327480114553967853542196290766819128017621052195468060583601726507066418154746500553781615126421306694545632910282105619270338563398492056016850475232260310940383208941249670527856107469718592915385363596393535113011795793712640824598249463930153757711779729805287204405692424469725462701752711821422439643888610335954460663317422981673013569181054492050658519796497873090367415582772770117473131730741020782518244713702882442534245374315585533769139844174960930225937200540137195674069270202861249980071588410978972212119841274640372510789318929724535108163151884851408949940063765012050155974299071082613197709744371037287703598204634378975291652888431387085987806729302297082691014194262038609773019220474364259426586840746411134598554829568976524369921068947668014144025143264599767660500351973063979488434345587228885716228317591349577220671974918818391058857306545153793364405291647857394863945466022632532725387312303860020336927424305883727730344881843605237112738717669148615385534329171555573266412470932203923291221479203691742432633487699529682637312159850789287492056857967536735876939058370039522160758155982006903798916647421829721583665057004010703928788519453234409144736821062437784647636079564920447536404305667276560174314081645067901980916862425241313908151306467703263418177313787004454659166289920916624410703805217093310013615438423036364094474224540092980431191483160241642198641247713916215091508604065952412758588407915103663669720091659969875037556258643818329746629992282218976483160452742010984889088449065046715450099621665792926822691327384394546436665757919134574767303617237051611762126985130303460125003252686735443068669783822777545187460202462919196311599633714688579510533589760939571409644106319177416237436250798961009362485417225432673222531213424085121953999448509692048486917363654829087352977273456615619754113459429393956187741732930504532159272140572903411738950664338124909080736280143989103959334125158021501314507446419524526805197484408789838069498284806915950633123115782940662909513059694381321983405225142146217327676578230027792259484907235723211202668195240806725787492092070634458649038873234717486470233755626498770110500165412905677131724568883950600808370684458768018359282300450136904368268416063818660370576318282262489338766987901005288682783148550549533264152089944768363799409217639209076787686080501605139096265453576909982566313901733237648507993395618456970464922839394264836074864507120740169038029993257817197941089396213580601810406300238049403323813029464645573993057052532433081292302983704002309700977541105777840356296478776777774583941457309090944153352631173241302717247804853555129415831880727111544790457529620771746824744578342240562861669003639276394879141428610272814569468341266649069404465440636604029898730040258240344286753636078723110353573910431565566610934637535245288211791419077852722488137664798766914810834374087190020367402244213255611541359714138500117790110916985538241167387284731036981408451057021723801375540776749399007568738631419751555456890496607481307523254840877211145188675582887458640444238800505616081182385466794427113637714058699801769262059308347933711058814028039209023238460911212976499548636495791967825518303625599235840851342379554114641598097533645770065845300745234846613471514384696111692619699495749657325349854243745776072051328208580435580651667545264649652932686446237593247370848227027740243357254184829349302511462327366540624933965494530379729147816090999560249848891194982095926405893749446586772390623622065976656415143059586098358509473495921178942865545489645719065014752943982011303966247560585350043454775181672142866854013251074853978810843171041172517853245061412326034569849295865936730628271023476307848736315868024626346768714012359130031839729854600065637532227824513322309228105053327953908243749306226162001206030530982060360707922011043724965658375045521445097706057450653261955634396207357800200574403158753894342912760863138466168650504967739773410419399519842348869859641704537131596296668293381833845069248355181012684544131056473137690751515738250428405651866152517313741426530277997737750137870299914355147492239001923960384886944328810377533576975407232920560919098550010975660667425539008266285483589963450739951136290246822845624209656415606319531149872508847989127249688253844780524124651541026529546304885648344702497702159127658766741141630971073077647941107833558551556811497089656737361310784781612732093729149776093200420930324147167840944960373952049805959799672575700061216754897001456269486777456865301155497679981634690371078907521663790103847768795877515973562275120677516052013092485943505479905370485024497232740434360355094461287344757152948301763423332275125733486636658758406522489862056835474576228190556961273399762124354120580947491905311915172912259877414563289283182474974686214523723437094021304910576658018821689693595480362821296330605285256055987337526709832116903082372886515509075819647247684301772246247741896365075257299732658830745520398398664854885596653008624516598034170066154303718076807732481710746745387481473919027766924041534577354957269733737191833050594500501043284888853500178742620323000587577260615702516132308604390882123584306983440342263725488866522987567084673050261814043132329454912860844518411610746619716340887602138567618390761498919259536018236238384236089708778483456489592005587739305696961575330798393008943612758910462641512931215266240743173795949551708163355580422419556343435890178857825538046374477227069582849699093269740344661017969594021900333182820614144866579327804709877109971609402211774261263554575747468856315348287348679703862826740613280524227642464858344859557525139106065589414800455316729279431917724776187389368137612457609912190784548890321039322608558660765328721833706710679986155002366642467963704123246842593095428526159090964603016470183413767276177759479018461980776954026604830587159410291759009575332419050339906243552450847810769628928118481925686428770677793819628228417027605505271354553662602955699290433125564878564224565125299886055857051695375766514271841998747781649222687054156198377401355047285982641381667467603922093100427232290557039119522481795346033642598534449415351770423209892599249217839695521014544547046539731060032575043541640019948216848972370935284429600108183209039633805399436226697971661381857532455871158537099977171164735161875372314342394644959390215849890312300787834939246560021848674814435745147241748561697547400720839257149279855515488104603851920322195221528731627607435360739757000186828510190953185193254930135097471707262223773298999077598055553199211748980914626293393883895965899672658172008357513156636609264834550351304936283097521701777387072886976716258025039460250230771470550552121812184809216511744326969155111244290579203162406217573924917245531099463255036849752156734443086005691470863243952817833061108930306551286913712962958326323080009165886901424222437923989737997786620507336209156610937477709458157429692258588908236245262929589193502542968336795441602972239888882830794168144449975325601639659120040890848062607836499530209110966051946422087913990162101069866446372085772170913451753417353847026947146223129654055091445652877061490039555321622411302819206687297850637802202178003309374850526273358427671182864767316551930496920757295655529267994527978858344641444091706473370885064476394827140906102366146451090377733171406589073049915836633588569718979358990671823342372314536857172976958413449998764729019855082971018389182589356726757618927464070507665595287101961294559840939200583313997191191341162678947006671435358995715877527002695429785656521372317783799871162071954332046476651680516819534815027093493577669726710401446848608337830829771175473671730652705669310242804264587094037085632210460237871918966389482906543812947028568147362931641505042643267917785277112535780755423779647073465049515305014094180507906249704014289831755515757076460842250786154423558157520367614667114164596759308137173581983810111404154644590624702667350174219748428144742659291640542161125569754046218435595833993652617510558267590474591433543644101425341149333257648060836995942352113619548887296465106615706092156426329182929952384280682153415504630313933518168233702293754294242308924122002358294569737218215700880600694732001249720668797769811810517589717893179753726024158685426612756680604525226533997909033779893195892889848663460079436220190311359728501776105902351008697099825508208023524071182263442441328599986536830746074917170597998526974793206470409358777446012250477934475828250246919734928164192862624392859136022658148169244527768162104414402535182566481852268526829152715658107582654351069769985877623992374832776071016496035493498554506201227240695650015854460976672771106974524173953682243166444639098975901972418559692687556614849157910869473489097171477054121190839127602118815360455984517293999959399789091099486384846597038900235775166459603083421901532973585439463346092896372600663920499845612592557793979541911723730668039842863013044158209154554601978950067752155143264128413000123920102083418647252060684882144241955740323415085889773316128235002749658476825985277642449944928579392051542863400068375228526721208671305899497477827496535709551379029521325799587531020110913597696090006158438181846999140485016674340458510151646528715199997722507908461165669410535494275935189762878711031878989670534088130789287670264960642124320586653663954152075577699546316623243440020051350417544949846436728055229706136963995218273772436335781815016968474925994614002929562488764005814952464124179804552869614594808939420103993085339802995206820202817982976652481794016372662363713188479238503723307239545899745863259564594473658471560080745001378266081297081775917494477109835647174883752297962360478838272579040000493717455123124489419654385219994797119335737597616041700997937841832709182667793283472668984711924800664403133966421110633548887481903864839196395441118700084261685736994484600208813900162969073283068827037903414626422138158328670640336290826584500424400498405564341144104095936124072222838924595210309262095994087928196415834712097350189111668034760299614158323686541081795663746422128190379166672531237241789161857489842360578766735109215910172326405549432717077847604590602869414073881659068296040280064368959641730028861879394740238274505072442904165538998575816455316947079238429565851803824880188531200634000732078869351726142991135859251079483743597393179453578879923964876613528371714206059520895603864133411357439900903416479422841223189372426927536287295562671594036744303908290202513905500629383325048853106879199973790844666711541066700873732823980526935038160406739756068708425338421414344020662315746953690198000199359854753099053241500067211750754178422306277327012186319231368363646380938290687449925081999454309472524689799308757838138494437352238053836058664544592681680194624604814835292998030073473582587902708559942416645874319098624981973006221005119357568506972641700074512842232076694423407927028852872198690468163564521130553238857743717887332728271035642716470680854215853190578479137535009704377112765979582079890632726502982525729160166193929462018416687044482149467342196613882436074473306551296752241951638557833737402732976045741745191757197328290686093693994317243609915792837448629957201253038689305433080215852853153236029710466966320128006113153036711172387787887586265750305602666253915113325968787675223755041337314513720197151067604680642964683035708424097297172186007307783102093829466666925805092090125688878404055107877432500644163198337350490001569766215246357170083335567378886203759781041783350517022841067431426083171468181586325310728031862083625141352024546063678722383473920948586085339547002546204109656142438832970050546131353858077879521764602471242285661039084735183406292268238958901300602752044045538659195140864637612104263575175199100728505338667593089081740645986302370153893415279974343093316931730984968255462684419148488099869256069295146918011893014229281292749757508692263957326248889858293969343669059278138081602575175802329627924916335578519225747975905143857780369343698651782566879202835212417244117934549987456891798654829661260597806369356413844836790235730249160267334977700481458352506675354288841237885887044142369518423781117023571483437956854218820621998651342416388676680449157952932103369301361123852448139630610272687816001409874495599864208911804604527446506120816995203594453552879669595399307454907452276876795353690424295964908392826449835868587326730007239941384542261865223884985405976164901188709171336561599038182617121698200632544437134909341766360280788428092222006414989456040199210633778393295965332877904168048893547682499697413868494371116502208236780380873505981736758972606135817448896417017652039047511838777339072508893092146293047607057798435246894000367032774706321885778139522658773266375139198032700852301258369337042152549799578700266050194979933776741770543826288294300519201334907068728720262441436250456549682556621087766179630020215546995165241548559963647263665772431028765410891321524225144561200250569709579036960133548268082578587428633548709409217951757267663704919396036247587275831131170886548560974074269921766234083918721249558139337784343503585897268979063853035224217483866983612164571193532948182205489915868604970841959245861009194659187596020937063671630132785936136547542970979037600518722779424909100954190528798132069552651117625487582382889765204768906345913869873823062283315146593340535753662289907735477610877093764587094403436936270532259646390945883190552745305239006473326226351863893365855454498651437855192710696604820170752684995703410841783971780487678752538877576987526031374129577094119459790212506930891571253413081991512772085666585755410198405645544077925922642075743737005033300210894988555094169643512795833002847372249631905328357539790833709403392597177452727345041342953392896034012378379104988713670492584111915211095036055045120751706571660501652301554899820027043325868939149637076093624075898276277383225394475213246632246829684144266901514200692494058312078703677050646262634734871524457611741497749172990393476016865625492588504016199767708577917873265283589282007016211605106321659047680524923330241820458988203266124169753611582699491415975153932987254202487825858763833707255864770830546420536414584570794625824111258179070464424796123088085685940273204333592400193320313429662737872503160284828102155221333176487402859102762389595301117580572116008423218537237431394580616097391394444797948562186014174222487196478315536127289870104326670387183148129235067811846739817750708036207435354444561974154535550265140840368787446139145006833064054980659451211938686544653942636616927468952169678395599489564680943489537196847581773756462641373425070757190505192652221149631500053824173645016722963824111478558383892707394063149797664112027174682309528571589737522399802730288707964861761947464429153505604944034454627696286759641219315924549421093656691928477277429669342723045169868181045480784524855753665235299218692670646569134209781258334584984871719103789964943340046606843609911033087869756520159880572204940353709895685371115332909961395615367746774590427264725896087870391693281898120486687874576554672045733561267907177240735357911427865819161547426480100531488023190411966767029748531226296249402684965852654809488831870702814093135419299831245280449674226249683895448023053745886868011448844221040876557320439205766875764926812663354872616586282399674744614176430918734939114035476578964360063597275162198626667895574070712526322913844940414236375173011506708824001830976976266927065174132525325011350617156710070644603698910046179165415711940891732825942091833062797349417564033660183654372687948198379762935994604470768307128427471730711363765919723705079028707917660284672749659083207668643961396544602682510052728695632507956596458403882734408669755266140617348955919149215056956233774318721561378272261661423864526217311529661735006481817586984995983451056646787250306795272618472579834364924834340309810712080018155655170030819241500247996382432975348803383860886537296699172390644447646119653839101423578489899592385084587167009423048724156352157174619065191657078678595179803915391208246978183700005014842729366350403303175757156575948566497813813546693727898924821281499279381845848793264010311808117572586939381385336256293878876231766855135198274745918803166918135567459551889210191399347251801108185458244779438616021116580907566778427836629263428285127818975886773091532654355052476664498180939495550797708115360402959641809254611213151375840671435876329742620210950674956130459113859384918836079093282171952824890997777234204013537847364738232532591139039180577737944488546080037436815012681635350044145417249925841969859834848843927017347749673660945751804302191202280988048881416317399543048558241121327162015632186130704957981849081236385966281795680292529739312349723684935990487380980395631572634897300070829443782577110282887111786762743138939604457335258847272070943740497371189165738018898823821695298640911168312998641704002184249261940555686604620825699653849337392448213503297506376729662434279044202188675413642394089952808139590471569955749491064355516846537639308201155062993319735078839768021590716578569115433331731135730984580024487738264224145555027947000356903233022880795043681188162178297565068256826659251631491399791757421159521812705877652513620865655737764799314633051414271161403203661241521501295036321089650126571419488096562461968359350099662835258658611738594408026220705390319659507655736384339518520280614964349546625981284666927396677123298322315458984212167011395257156437612173223014899514226058426247535320681891851302451266073770411489135343210803461423612591806710452129369188405082167410312181576150405116342667066511718444778356927526094688975156281234380099074135889325137842652602503032252800362823255837263056627156806621861562468507626370429161158794593539827914609856072606753527756880184980974102123684481717816239113425868612412928567998500464052242951429485467093626621986221060302208270656235328745430726630233425191226244143815907372035346293702071184998746920392530922320484503382631094627340593763146230984615450014335645487371540589193420756783426229149349243602276167434409723737958102032301321048792116673754596307768935681032024761445971284111192920080537808803241487914314683971242778315350508003188460435846912159602928521168980053630521567240049783360705893929236735918223369818102440216735564946818706064701661372254076917191734426548453333421330143412530424971113633979173435658125449549173304290399535030231853711282971893059231142762582144720698620470607943403684781036793317719756225499105395302516744134316293178861817479858283964927104027523837088540997361736770304869316673291065279684533470948036187312187083385274373982561784233476768406520239277330106561638883748466817909423889738255275699226126660959741848871479548982334449081798050230331606369184923134484189539198683030185788872156285073615638491251100094832350382316047688595380573669390371514858130045299833101570793296907458093260776636223230782900697622154154802528785604577843151598153581885515294053613529302283870771636420541167288256170391226226509232133340431094406089987771571762312487373199197709063689280698169559631328516049645995716044814248118027673884056780196974424583095190968460079466644995714624728822496571416143863217535299148849583236685664955255856337591696859652561272248083890246692294486388507057457123375615272686110711613516247626721947261917208922802708074515408059902986150116680544216575329830503780687693827688518575338145678225796510215867976967591529045188183592437810303399858873218381090182672704686328411958014285557878131862005626516148279058210715121847992412833885201017757534142026069157578434607325345192103693279126744309225087856712901668865099567592398843011327448768843861479039058543940866120615140981984774574086468722971313782711426768324849428470217376125821279671734421563344470276439832672422942055712960280375988801140377002205559933099023884137080853956781572499741103395061047324550230717985114265359343337390893302043251829378797457559920221559440538745006980419352574795900786028778269545483367994018734434405661309642097429338285459541745777485259396289911710968278627302080007312482549888459972114284346020688504954290084057049243923162117518446669353328874639008710949942272078906058560884995373135290356204664580956800561170092398022322528386353128258722552923952681294728065508647991139934552524507765813788513803054125828651481128930989167422526361410289982831327097549089028834993085706196747883174563527345221635006657501775272588316215014068508206181430162475449712349192450771533229571797902000894992061194619152951605359566366424899790016938014042920063861247828057554896369834159036010720928880094068746121149671180676177988454318588270449145910377213515944581706768446997216368487668622783726506932730607968152830765546969186606149225854172475425587637393535898523254377832252657386182741839646255952305023857569819376133861987766182095162549182249797499617736221271779910015011584805226942004264838661917859817530572601221183202080247350724970385483178159916493493455517411182756315879206934616573019717428078827253667363704215759503738300634928954118661407391801989506670735358421150960252915255877214935367290603709271093350172863325700048528638494436978507891633520121512325807242141468636424167289361840889295317382427039037747745527913927705314460045335095447130003297135671001173578404733157037068083146857060191269700816502520700456603819194519848740244930398973899880536893507662101924655400401738728620655562398607260647096846945467550353010293657523541344703699110795246113725043134251159577527428107654947429045944113533612638850267248208935948367039387837572513833422222714252169217859197017354752786152847063364101913179841223880521236671406738578871700212664891405827721015659372827395261239389469194227661898064642032018012008701713650375562303766767995915989227740925133789748049412925960416780670105688752344938745300110865524365301418368363488985592498077469806683422607250741349559472571285515924127676159150887862766901414842701980369302312963816079542964306855818808563929669991562150292688245640712141732198037450065756410146684352433363441405756249876596996906058389581277266930799405349646133435493716122945731975809460243791041907176099772979134667705789155553450780823061853530499869298590298460718446705013705759867361413210798510022922490864997257298035435741389328083740695008791507513580864041657879925006212946732341985317759334764517079380200146149996658848884527500851982615150002216922138486621627713302100540430503375275016819847814964416563044317439512736391712547446559211387158026871733927675583849600739428104611155727719409377576220677141645943690296327041751565383039817670853951373190494800775514978741684516876521226134415419124110700788943449063482345258248665074080779487440004767142391985667997069888992269910483171597014731453289793459516769167191299279479216613037262301289658478411726885118732135801723384412088175321193692544662533699961546658074647719474786876507076019415367914973573571261004058251552048390252820792712763223223069302758222594070935650718323464457140615154896880079457136412213559905468989225096941976576788395775911175594086668611466961350318702408199919479507060337650512667703587154923909987327257278738476707594337523419259356473858461525025528990971436420681209845225257616232193889062859015620181870738663040523761179286426027262261381050642962453901718545531782914792179091499949045743513700470482402789487430634747388601696818145830402660925064930482523867881183922236837020802713862414503076710163123760427934583815149299999823470375624777734924568868909443155663252698368993920380996311665258865096381001380862069485818583937826345103491914758850952030130629868585926220360637599456791692156894820940062813834838087023052322444921128425189817435060750683592727262481001434068971105534184296559091771541120271175354226254276040914189104427589669713748710295651876000333997788379212843668492442467499114230883619950965438982802318645767500397285632255042275587078136992449948212371092431855908965842620162111037471560068337359660611478202711073858074504578191970536369851974488728025972980010630461981977354983701516169078517009741985510106708835025094175600758156627411608046253163087828810293373424991159327106832010405642726251218948636912242358083054592989338408628576115850288385682676129822127561249944343525335018082543111624501433503114550061215614750759225930033345348755216295271938898139551949755110992796803085376001841746149332047930904757328483998156875155964573931831355474233645709590173879052179708506982052439206869249179855074254999092125762410364575591832439155312048347216405986734876606766379257558595121006459963716294576795491326289600865429860274016446678147023680719453002220902591011233337897910629550951335839609317626023679211075843654104165139181778346868742801918301082913292604585221774222818448197447144964592397298963257243104684148967948372124457956368689104274640883329977153696152631848164136612825221141287544997848131437736596136158362609624790614405652273652330731147441900862928981259397024861131589583969591924667983147460647264501321977365852286092280371158549363600994090433936913582624823152403676363883551046849664109461601941645012645523719827632551147967062145731031777598967182592700073825347116702009480803698244660342631863261460736582352737332549167279437892042027592118601251439788771582127852523980376027993966826121083490947448360788612751529386611909884965989874782757913469248470858087620063298340234271184864841718221662755862333720322837875943407991044072138496469474300821581267718243803894594846688482608818593416354244324341711319597639587653653950257647631124878741996561725478410395158121399461138617813724223689676640320172247546056535459948640623850530428909819927922002021079988013403244309259444709495439982423249764939497751054127874454135400169257942038617313693544381559566496990719210963202460243009148401811842595275090698617996587021155807848167112542732744790180543598423063602433527782127521657319039409431852624031327978543131070588659352761137241997909101637835672665350306620386846342636513846020607785199332732067523628221946010667716987655701433173168136635932506727580776901605775460473537206143346505810121081279299327656464346208820807797211375085017473036086198846368424401695743601455939722954548355039764736008388999099649478587973648964960822306383850099959879443931115646197612340943910426690346734577156643707493744185175122363084301182289905638008414096388223228959036427315700980844534184391749219181621458505675670210377175738727401396244304176107821244495726045979272110933819824149621940890266384415039511517681099814978476292168422208123236094745079255129962546404272971161246297331461388116317245477576994577820134015551090176792848696389765748258471929843223684331571242261787976549714309199168918449370530132202094640778839307179125579446729060020792678280047994795326937656063695426162521629502152453832423407244751413052553366990213751283634324751676157318357208982026786759877464991030366270694581388578982751281293117283813093821308016433318176082534800010451474713679173160234606225860337334149357187897895561768452739601004876339692471883700049466371268827429151427081487888593421360447300724725498013601208687199047488974992739803821958671037174995909387134704458133109727813073077960891180644621161037936258512443980895724150780784131224486151506207690597646997028852798917763282663145859710214488836421145164375850058351074594833605880389137843231488332598904258119706423378818901728380722463975304120006583107498935280244166396837350628514423655395865964036474400116245793527004236494329577451941857698524313597849778890909542771004665134249169267878096868066794690360032816187414355227252518632214221330389357226305261236686342410590316784671788887966468578403149192392052886482122511709781796221806372462754377294617943765817948234005558861180513722145525350940798805546556745159495638741197439511696895833415206984347178430490614789488377977031418477743439282734490680742503384916715126900106825219299449118388045877366855731657230128221038033650680980967783300446383197822646721172167497628273921992656304706045423793046963829983241071997435295764641468686963695465604940960223550501062294258928237294589727963507137693611376882257601388204080325176469410056168819948439923237006568787113095114364433447322423320947661660493165279192855342975115235167177191790166638879953265399692786652135695215682044623107349091193343404075663891843570510219624388579506370146711218062770652041736908022110681260225655035270194116492110060060920974462134991586851027453668538483218708022766457317044027341138003617308181684706626992609957236656382117781528539575020720763846617982180953109586406892056664273204690362822027663336155068492804281672718997291155261909818479836920352677324481340923811748509761743389244538870436489364166583099492441455027663752130524725463696066894358322751190206790588638246069269201522359519172462494419250998063439850718779607200287796987977310930349307785092037318354337312081698324987836047922233065457276216963560967168088877032028183720855133365711680908952356835752984922570135661184629469288381218342633182473831550320663337422414586400404691092238745937961010831223487586101036399256414324131543803682965553871673389579183620566757506630121938133097388635036267618473366862944267861039772437172536733078386036597241843406772845630348710644526861199085859661393769189284109210285144605350399836926673306721147512728881679119890391743554635049953334229777762111763214515516520383514040813675926635118427220274303278940031850408255393304350285558099087843277314523067841042335301364091623509766741628339891171077925531901559268628543884031748955944555505090438589880195725034571932277201828814545087448292369909146826120318261757726327311728051549347228919089489473213746284785976949896219419805740483972150665016587423188540709956048816211044434394937350735420539193302150948622575622940784217557326615401269414492483305101705915740329150844776246310031382310623721919037650146463530108163352138541539823673679419985571266896587391668895179561011742515813580158505402914839116682046461787737511040492193299131885752389216583403711504983616139701491087394749802267283419398103730765927416923914371292935338055825987013314118755191632182415343799033066960173853113696233800126625631191150930038324300933967870445884458739760567007527189587331463803556741900788626098934218165187655717680949562111710182555152554804027346854628699707987137992891852937838241459954821598756491522861357983405302276800863452836715878115260110576318604992053588498938371203410638003607585530701170862441115392405942356711992520534234911673224454247492109930044254699667429297387356975536841026673619519806463503309680731716598991058986784804924899509469184111568069627160829500941766055171261378898404064870823912319813044681607473357300674676729948697891159108692127771472687388847203171388517368182326836496476113426019093892596675785857471867415841812531327666696725861836318769183998391885944351750808207049722003013617276514924414197048434483765998944152868677524185042584436819074170365279009407012805163676982656661514844019141821022273882097453403732718337994242168231799078157984179354871299204233808889665086095449048646051254987846562510568784473047242058848464333549950425067838322629993075285895401595838914527390782432766448061309796476281045255907990335986333459783541508874707702005662347594716548185930053169068229948248955907829583970175629390205968297673707854807178999803470045893269160822026547952915956255862678434065232378441375247805857701705471865526250321164654410194229320428546454312384480928121198488524419896356846256420902036988445868213771046000760871392891754768552759543188066809936401340337454409913339066380131934237146132957625286352714911238835664209208589935451979315099455649630908855535598025120834652148623131294749424011695467758138823420318936334483584495707537849525685361705564388130205231809280861725412441954700158472405733473573227549215200496681978269709978944062366848209220757727410019363161561433838234996791943846951211697947664291049984725268637273866038514524229762057016200195055977590824423304029862064721825182879622524111108678655895412388573202674958918398909442847592014444415687305869587034238892826408443551496116450650394632701891534854980686801885145855278061869871844661506660166384639015683380232544910872492339099623923834805446724661943154507479684610435444594847828257739532593842373381870811074886062457551634746761997165865703366815953138301984830282511626201422418084903527400786262077423961331699756771722896372804720938751086868065988182821759138894030041911587555014668296043558813320432275869185150194139238161941215742664553763232840666888658891817225379985931171704037454954666723888780463956068723703440997405937007146503215038791603176642834361393689890386133824261176624748197307539547193462701963819041591819673476563399955247688184465348942229251693845206259119260710705122626495923708363784193431378746610543558177759491904828932102832352572491445582861899916708101805610881332644003550244453902196283609058494664094588936801807226839996730937718218183538589370776068209582639084237215464322374182093678403891500227445275848228217048392144098010441927171568533339281588957375528610020468312857917968359027519167737195209466667247846255035048903783401625040696608582792152668747438270179036668925359048091276148136245814417771201344726550504700253520736206985264137248105226229364654848877455170052381388630185324797512871415113378617310210886397111640069431206493132016072030107060515546449824333281713504668182427262059099670120785172989983846754091540678702351943282463537735118855997612367180025714782634170688367123816804842003024698907301738130686569644365671170681282583900990062191312855946955399374920131912366007964455790824654454744040395762400508698725375470491529425955598887228069123377076300041931995835299089430407188094238898419699589314723726139659447607272450974923369326478600296993325112973040943868807787646294710541776671444880199751344529587328259720927005553852151366471503809610370092006467568974902572881417993447939798141760165791669824551848757524009578105037288096434629960515345320318298429077426609207135456788313361246335984787934994858227261593634678676554791139902948795577513243358964368745169166285028812557660848331597758725531305756095699162111646558448600634223639875078200463460536035751777939952086336355768181109136056322472831404501369457769033622794755950775970609042589726589340294304008078347222415048964987454893498000606377761960572745813617191147812887309002625931101401712380640462642705141802664592428892821803043395471383265650207235318727657198058923942629594062554199800200513404944030121703708822121458530907122723253952367113780320141496055744032170345761799605393488510447262234414288700004117672292772024708012732021805403775855886840226264729835629183782613644477424229811891503212656461636126374853493655773809426872897957723979581573019519307222874659025925219620967848142470225048851473006163875638596635556698379513040828904059322882277577001348558867641026642852317915638666626438987329205434765477844679325817650799103069463496959774246306897945162646269723868253972395731965025144824656497141458675881867605896273721716093124420694738936653983103529823014273938979471649804005594155428042426500824613702843551163723334283548770043385441866107412755293343078278911236963243806560948576619953720682540604203318731937785722152601099414138142625370918932814757019423443128534961594063899931714444776513168565695637393431477406447549832887803531774843509825603251527132797636829504409321883350439322168325123449066374405522880662482719270837942436603712537527399256447541910635324547137346959624438657159762693676036005367568053365768331241031575285235986822633726440886337790821854525882850566797004730458715404238771752472394745801191600661282025910070919870200247850189683104427298421494459460038052011669825250151414906596007699856314369411260136546380625312309268707222116609364095316910054623612205913218899657007153172073149685020110735030825222770422496760851252259792031353650502237065185742841781429327048394880268535174607551181021722808107320977046480560777952242588863082462837606255883771747746088785263367301543137990229737486672890000550039296860541826889320408873955881886263074149931677845155324038214134574662046069761115037162615971315477988444467335359538148526555070471908604699242014527042229325287756911939743856067371191873755118002438348826912109392764499201635047448352811531667374457808616457457430160618454136128090626280474219859496593690521778791699528899243470434555311696572889664506714314605689953522281674082816904150616526030330111168876860719085320762665668735992349264227072167567991140781731365622616890709053954489646411125487793616015489487124264211992275342456781180476450901101721839757443396251102443314201422032349924238379163658669470673418856871138412304297766225561619356545243869678154560523901392256124554147724721463546981310158304869953198017925024967674719898766268050731184560419373469903303251369027857882088896903256395847653118785062425691572765249879445376427149911765754195419816207905888099015022293353711894197141763853754044454045056883060677686753023573077812328922457381908528752020439079744298499715672373793198821014048340213035804864204731702239529789540334810722408812867948207732846496673811960854022246668067885588177394605627404259509093959277597385163835675789404646519607069059418413523018188252676813122736597537724272734456645959832185554694290401403066824717567307533823352599375717273356220989988723353072515100167171872094443121472779130588336612544319417316753242009750786486385407716209913864154729247768328650516393062876277109734667235558756421383360032587374706671443019330719871995826721220984720455706053568436373603950749434362248191232665605206438632723582632381656574075195662007875149833712450732608741617334967445839246408667810647780161292370569847839706708360884548669668624373460049939023551523329993138439653601198860480716389548581342265396314951794279689408799214993264990923954913285683859744654022514419772821406358585049640659551990089175935881161995314317406390160953398463373344800011494865709879153053431779139104039679053137516186908806454640890681605533600021748855436158261773449877962276618508794852437703367073392733227408806342161887694260832815660389239438079957278460019220205173947882676714194736470176864671615042866857942185842953680914336233894279123635148497574442029602034611032238362433994889305754469937251771952303276109199896271003971548644039969717376241558755171437592577649826720780185269481636901677436034495170288325878200677722729182139747624507230499774056928450526300981445039614323283372521847840112442392174658345612018595893494749627414942027559238067429430242311564914303511143972400727704486432970904298304823475738890904859353737250759604457284030263906338483732021769007772743946081472052840376719914774858850675893738191857013877539696451090893821126023403778550999396389020722702668001690748935232864413870859365098956745399634567274989538397820955960292508999702968756140232618005054604108198762233305875295767276944140207453115039583908057572126362278565156386293034569658140735086616404219576546909368064593059452115911116914183674719023078244534016619270567356319731288175668396507355313093368645182538739357134693088503219328632150860320259423671831203921841267182022074662776919900432280149973737208415709424395840426346481228909813118625718128936709269526651844496184480889446721689628699903559437138986015311140758676699697320435892261186378625286740479427281010995185053521185070288265119077352767620675584370494653593345923275724238302813457985375098997774243170182878574095019133962960383513243251072222866931226676236139163742600449145437445493667829862345937361610379051812997665620347861114440429494520525341466915207833547177859913672010473845972334594941141212010126121385473647981855811978674439461236364211985896751640041992976085766565166730010435292488577659872630974137800608381299751566868389940842303379281138681567299301991496565640137755527306133401842261558019381012565310350648372569062914521597621013463638882685451805162203909673266711727023200438481926251927488612673206332577988137979490925118564230122441159520117417713177794740450083193676698266816776888147610924445038883920588517700638229879449453988483832350750134139885826236910143109003193586424761787536817903059060021522776345827500844756042366932429927413127980402416628893791732245934631269143770363043839873761092083772270873957815568331895119305664458593812647447244492223768890712831743550588497336013529177282208126569721042941147531342402962546297022983615164252010024193268611185056470912757466303382087936010106568754493444212083168660556962418880678840131696657272516809383855851978838351161077899833911635456766048822132279233574479775157156657270059269710893430147750910529030348872228521356304354178086074929062705198956683698337955683856153897151575447534809674304160632899639428586800347118687437331634213673061024964827943292344258514205069674666212961903808989712783302423606746087883718099288383789262475837523744777833392511980450396379447304258907503013873956088461503758755176222090663030816433538634737108409195709814781619363413529739474362395138603468306746541968774065203708221961204354574654745610665052880725913590979352518183640406948650632204305650669913810675345621166612127065943539787217852424824613606988260425789616740280173443750762348517477417091724251814434904692842822584537191976514063396785462997293972028251864344666851339419967642722927040908452018246099493140047693804649806536238621995797208112325279908052529813397019315745278377096960973779927088338482240262659722830438147294900575678464422213319802920987196431199375327665868711806284647389125794322090236735211880176188194929076994564523244518427494095113043685623949864649873731480705291887277827533833794787230016005987613328902106589785363058033563373922416383783166474002655075665799345056501136428770841592663763512730024124879497356274278994381539534804987965040398818899291593900414721338748906647160220246434008746492477877193946061056084783194047404408869709936485516372829052580897827362138154712581715268198152653285882945072818096326379062647079661014359717950506380932626817064586888491212286239242032589224264642192334841580622932578566052212015638112570032478386692464511572908406465743031751479510566793957411574948223173320043756144142775572191036786740712371949766463184031572992553604849849170838026574502302264951500328625861162644814039626640542221930679803376878663307730305512463948894170116343140531985087966008209442936836505327406079389240251833564549877904123725008097275156357484665586646957297381178718404795288842955823435508175719902831301447805749294657905172300525960895155971417050037446706767700481978660209415646331210341801703054460010346802888682575092804918754208439748341152348034418204561289225563783502736941694122980930781184339498712655247689446935558726959370844988996663297767208599306808271481971549772371002769236342060993274329178185479548800639177364744722327298400928375343092954782627205877827408020752943132165538075922546447095662917193710571622260550626390774125825572172786956060983158966708265400454353001199856065493847255518275520528183220006435734246554389957224602332706530269251007897449977191203005112896460071747251522847454328692238250554888876352521830683921349491466458756228906018740196943802148203852441495677765718358708376074020483788858893220657865842111853677486572809924571625347897980336914692052838081525246530022747789069245158839731189544517852736310010700812081882099799596439410630575431560137399187909622835492272331959216220310727491847159425799159730120053505274781072324429681066955406348274690848214211033374115575997335682458113400662670811468677347330646019818251723129771042103628308093674568247935335435694875229974149954734682703209114434755981778542534052861864059152848102547030196500773656584309671711423105407910061721173309991232521931370910750518113816311222997773089869741609613661855924395565619906584556643999880937029907950530034507656307750678313279130220516846088888472154602431457314118730251649789882207505283239170930670445553499909101425400891408834274945717693726442765722817835600825308603657418676211541271679378858663184276366601295890622661230350677019411444694419369077738647600364938574850989292855846616698443786024000917709672772191666571445210050012431425347728844616910397640174615351709552581389279320902307212102137357178541466617628939519477991006995573940625074910301376201978088795491280923419682978550030784616548365608793638955981954412628035413185725256194497655407110311047894783660482954056053111908540519168464902406785683688549397651177434946874664541207784055755966123591297875255882848047696582120742902700065372485083621600204532613878772797311730079183936531570611225893058987112770274924869080267675728269931885718186762965876237987770872073861169707147462355710568334594277871299228407308937461208058682908395416427367590975011122256608819862191467650150686254545491940251108173105510488464432417897704818685824144573521833330302212647827328816725447338018873716302649628567511058798172331337693888151485152872657558128786481630301942668402588683604121734276910974665481573448754121782994019244917954537054098932220601380115232944524719046444483990082924850218351720466286859565948076534992415849624904075472005760187838474765966580530703537705800745665065214004195306417091498821518631156864910501684349805969882913857100710859930740242221802805628177527416889266498790029712503403877521878510290777025876159558430229325966553719414710730636580702357485713995192176326064754547510362702024800934211072643748025026857663204564412365049587511463777527341372446803665924178502160222169026056978875291263352797566284310332267017991958756116536724530697537648993367660533549069817529433945200053709231427446892824300982243164003733852007720415919294784423065549917903339574239508467297325816288294684876849137638910819391073995531018913854509025429409868513864907651648981065250625317648854935499042407791704332190075049154795651589542508678060074900911693403611875566531727799009735559824132299533117363445342164618181143056834200661900061838506597478198843690691630927286553368316333453155780975636155978250181818973381534558915669922339193968901032925259806293590150778388928148056539001788212987794042542357447296895860452421718318518122945120269914999081214353956609131763755099671175930640168289876950941634195206173230417454845251270789709045185796168362116496736593795015253687716719476800817574130333108803084513815077805303356880285479796427376234698714981372983598992788412674468073585617009033445501987957170072261104194851553413405271010494460353946611129123977156128665840577806277878034778223202727043044042717448776139631385321585012919503546502099243097781401489964248563910825434257086021190094285070743789381270208633952464946824142626081007035005704134245531024631183154649873198352514288591395873118645448517603752193953161935727583324317860426660759782433434598133592425024283584358888662335236615184091730317547099953241454492668562775007817357433282287151697860463986604053428950274681812541243310429813148789898423264964358058119912881413749040531086747381705299607226562451728701867482928689488757683234819334195897016157517468363479490735792531280156327931256541048870729064848496880548027541335610431326870742926646906344609401609118587050064452527275048744727206125925776946376601207642583866365351464969555451097449187087869093229988976235871037698931900377689433139991481969398804243105910658005787861741899818882741531513989159491650522223997404231534090193437293738377440573145336174005331316712567491343123654949893910732688218076401612614834767992653803519954958475385957009030083534317020887799428471770200925077036114356551618321613079078223454909245044561882140377116766863477606789930980110903360617750265618925071994366033668717555301864827549490816581920242100243479388971472361398922157962630798450962762761692935037562306781094367806774494160139978822684111915494672477547043516608808264541003676597418139568929578557320227268430985477550668407936262737403020803688169673503277177059242613279027088797077800370447990811410542201885743382254108949859990124768110610272660949332741793342167730729806531379212411685697489522374915517013641967458958935746671739362947378731504147338387407009916011403555932975671460369574873326736610348237365902012774898179936627218147704694051414631295908109378457643233898421426801035915022929203246163985360031956733555292181266169303027198932976855393325522884955094194512470435970100513196956376893463979741202564561070879362702919902606897299511219698230177124869044769643676454587607816441185162423561657661538799528557753792091361578807771854328348976749623675012010700497459423679069681045719296785102534332362146019998985058800105593718311134604986082621172188953687472895160933594619221798867729208366439641478978676598465581635000224770577165835955581490911556585249692985143712581308433578442126705609349853195548932974462282722976837828318858698008309924441270225898941841917244385046917382321822902891822123592786345099328021486985277837965310101942015651564436535159328241468875615113194844035870883284855173063599391208396467054295780917192115686558494048702901594212922372638682349285084162784070806787961418558753249340181138630862258939785120437456007863288680276248868041330681114032009061637646068516578785964874369978058069812627471419559939351294908765072867919440151006518169270484735899447014151272501144119005950175095817985764147654592417020762355899069313557089143420466721498142535022442406530517192451846371976371104466691507708511068824276084841578904891107642711117664261911626725172931929198210444820261275466241302161707105872297591400622068107415753716376647701908445564987339206149366619773441563532067636181360761670854244180802292562464602610829300130925765028891029294678541150542685553246560942505414468637355825690229533573526444013172158390888033976681746341951323805915499228065562984100904923892975827015683610692058508479509851012388466062698730653281005942828753742722812343240951834611402325081484586722992076390351775945773334596585870433552428338495849826480881373722116341234297597982625203093873317501639038654131219615720153510084092581149518467960585103662887687199853345479242424159341694337816666832209399627040534074920831490390717580854653444875744269123429649304975999631182847793489193817409388453900528062185194539461186705967685489581940948557968020540343995904268754344361826808303283536926031759896316611677317127927067290178177132204437841294131168121646817124449721286505071559334091656290434023402463620173529366313010497171510726263278068832189108815683103581726157755917966143480454502208635744213048974727345551353465720880871316553949700175782083424641571249022407942765814541136835137580082458896528699696945024308743079342582267779070738304442923603897251322174343867200186684822092780971813088273193168902726019142398153425533513041232792392256068263953282087150098131833466755741004512192602449639868923982829374919662942350985777343206111964029815286713129774025375934490684091830894266850186274680514840944342717072308244449578512250040657042454184697502389533592599940112957223771813969601386898587443287505758711911687982343414303297370816035162460798085083774469822871923934328895208794846175540929436668173254207936876585147370219172515483763544182200314561060565367552037489214545996434637834561845024232035095171180362710753294756553608946931789562002730477492572058206339326510794067097491440842814687383205819907587526407920462862133889880696255079571462422343033413472774693233942254699980536052225629448754868663913532607459528186345617316675927766543607787195686275639766399663122111586074900410443480171266064715377436436038820949081262675894803058139439002605684938553669605900742745240762471566340936443022082852852251657939265708879051714917423044648529608923085384905347282081341003788107753764183224730101208865834105929840906862601902038440113235139948181286615954305143564337084857179376861398466200155306781868790232823768029092130993054883730056201209935905460688390782043014785507259211396075702413469020999547099598966158852279933923318208478704096979237114116648356820851004156214265133793719677134538139121370684642996915722097653887213364028592982536727100320764487131194330499313080754882183753491779912394567489390412829033117378288160292769937615684892865458592563856994291791266678137998697407943465649192470304273059828104753572507444611445106119551779882142628625038723339240737946518004557411739457694225343992370858661261447270732135492366371585006876704937119416242915839136601906273370580154541839473550720716253400675346504913049621440340057374878370494888024676680933535023915704047102275059166719963632345539472088634931781927524518250313044440669912549215096813106665491884829923497103604063474650344111684786440007010221396034639624562430695657532795015381005472854045488857989712207373677147022219189415437411589213481039778384044507491121982995249761557169770140433757736921962985566459814151275647440105734582996096771393689772869737706423164500125444487872494347036367725911119308464436773907915564543495906544645434320096404602242916311125299928399898856520882430387502536051158119983640394004190491159491982692707724577938091400046531088502065790505741692696563184233792099254844242665555852072576035430907433157091637675560281764483347503314846933710190217610967827845884046764461553284039431242794819605812237454951000141924344459008985093065355622665653578681663533447784921649706657182450368558775931064143145222007153804654684348488776893565269311096306049457040790223707455257096368629521862505091877486670801400259213418496011064196025478201612930815446118905097078583095237041136316504830818658116553827812194046399147700159623794622703623463998164510397916192767024537651588415861709375572851613367075276244088753018954789358375662526292220030917784536905759214221542410032971674457270394065771039207105261846284522730654796771388960056239970916965821754824236089348028419607071923788807043144566471552590692283873853939759973939946345296284984258735926406857019126779740467156271841275253405723408956276065408270110182345397355166233874688938172922292398415150552613644085489953084167242153477902863861811405222230185602881734707391169295373331008556793688580892223603521734057439235960321229031696182725383794449234204428567136774487944191730440002202536544605226640534953821962725074822004884448432658686770912293636633450418299131337447152547028859838112841481005297056701489194382618752778654520240119361687477637790031516907492731125967818582719418186582564926249478258230356146198709227840020413717663032053794818410847582256108878160268046059297757055058970456435864565428786730128300424899257175682397550740782165895691720546805881506474373955856838646795570570274438794036014209722401143316576470649321691100881926734213921638986347195602763045168966228031275723732710664561072698049491360092478357495687914536083150449661069623231367047424120053316823797512091617234821111498266822854135078617140218362088925658814863528289840805531141113395169446253425886267134107125354053782170385739242866592711574555062301716155437743293082261671681053020706320556085203847694278383738572600825855097474791219466142134261866239176722415152581359767088528943713112122591725614303941729297289724244803545271837297094912787525000243650706810082038822155171029094074504673693711781767270754448446577351678934936479033054659894626869004882829643897411060836207470319521017103198350450878384548751073126250855712567266359340098660045674525724617483485109814334764579069167923498184358450771875958113009686438448883511103715921490958146377379883835649380248435861984908321409746607808904946834713507634120039907646988064881970404106334574039849099466481409334224327287855177041623394077236673787406719825155593040758835315050501156946261800933127454538721289349246677818951243782842027694388946640707174607776978205201149302086818271031171567605507169243500448118838814100940993397013165468673784541281613800618803172080278038951568900682763955798745971610501227658610398287927012571569419547425301916134026444385434881906033156953283571732710264706635940343037651374722795215494700564212038159587493601464663032440032722359970039093476667626137595238213452058096225266493875934564038260695744850601833014320772861896005328514809701800568458457557711557431740371863004912945541936679306484299241277120437221346687522529380635365501582295373502648527775783197213019150703003813192599057625761474643991856415173600482434138471756630730324554989451072065357469917960137685124396480543342521784340747233458701618161749032384920303592352646199383382352324867690229284648541869460863479875697387310079838927581867071052684797534020690447689240636728815781069157591720967749515454857521005274275097144535637829547164269244201834346632033522536255412891159694926295714752532363202328174689266840933032082331763695074687909107178334843820430571797792062283994533607387942510247069363788402344689344736512431070706446236222707869816998493309989897251616051366630140698988327943921521227398011262116183385644222686062842072007873891356699010867210723587008368195142810390938115547879622487506964620930538309787161689617066649287708536940169002384602141202364722809231281078059954110175155083058376211043955273093809621331803263238205186983145210212469023486605217765319685947002030306230640275090547250715631029997715163255190044543562601683555842765783660757824733063819367774065411096116018739724936308947782837961053816078729567387538136722260837054188609331427800279822588938975101749687282161435502768208338827930945645684776438887799195854571450156337017016832767761871430593930743906872586677069392917466120407045455357910046987067079057144778208914434128464961775717605682288778486662325456596314073516606037868939280947345083585533701399252623273637107782100025915322943699037258311411812326786680106818218247974692282400803578374874976111096313652196146252760209223296845465867798644255814878615517608751462746295403585312147339451211207401948132717512987733282680602717972809292368530529360050442324733192400458083321623827143204373726443834539121973463138585826185802228354374999653369240087271300085540922808307940661882884580792149392631873785608319284872910516894187284611926567017434663674070466861846066732693559229842126902632940618262071284351592947662660791157261453394654365909820474270682337201524172745269483895830107333371716598945363014354274258965849944273178927696280324495301602136689891560876972864664573754824336769949189867864388324217107516860079582908136306407545209996269910655941240850581150885923989521531682786196801547974558085996691088297150646899765553137722447909602700077239084031925628928741350439787772290254435342943496570411290257527621395976081285571589995052228374803518347087159862017489678110503610579026202344487562922374794811421903013801742657370026485180830459150536965130587699430270961619719669507493961539681213740840544314726100456662133464619222323161371676896502143708428847177636132468899900458805497468816822842900957387967660485095831340428967150623433796357242667167285708584575546114922821551356097192019119030298118249086594989732490157304546491741999775641113927307776159275162091033503213497646028540524297184207798610873855190463496778091073028443095170094161988214076572438837681052987810385644111934989143858242281024222385078493154229111660852356303716310491608134124294564523430560800860656238078670819136899790019042207732397660502271049635753211586105932796387090923787254034104013587983181929916075486524057493668438312122593427174560188616061956218628102419229210433857336811823060279838209297501210068224959618298221465999588502662431340560600274399272447883222756448958193016157944739516374940480523350249428581862703241076055623269715360313923457704808213475278567183405938508995632073289183906344573037853624660870711104084253428349276488597929032949716435841994753474378542373428860739789196454808384695723925325581395874223459466988802124103633384385511524103003531656623581904397696503389434702885963319082714224989103753342828140003899106123414890813677466450848454822946026819505645187682014889612531877377344860759287513139957758793444920395264420701643913769020829330824850911449791309683611873724196015427796428431450251068193997340355824318223663046840306076603011333141809513516463244972058165178128107772233677789482407526699286057192604560415851198653579517324291920588603349278425304832971909962496757369245934075293360258261704063725137125964641587047733935629812501372191172026626239743897911168969805375909796988811241405919038640167985599087773681105774417732341598574398604067672499124651767950337338519399411317569168559920261019194438361178957158264659237600672976805490803507146111862767097577046583141004746928557536051146753983413254710104190662395669368826751861578346408396131989906981046832068356275706214168626172702266643356008336491579202036770299189615892663908697115595742197745417565540327667378328169441638056937168222137389309363687593048147564706944130075683559905861787530732688892709261441663142044592523177111413074654276086435814540723756248684248841376392506919196362989297730477143114516043583779606250408529339967964416659578512857907435410361613486480755906585083852870348666388559811541955635796938047166531463346229231822432293368679449713594852847626662499706536737804951611297195319855486205351677704494200279849916145023739760094161092986908554425027350041714206521233782243852069955596506196100157396788271172467173083344867321752442235953913250980986252031894722890080603284509674319396211216240205592396193764799690442908350416405129406728289659133956321293574342672085839619262297640876396552018705598026745088591241465411050142334335876097779205758130962660901718862120593859732809744518457432573668112551798299278585069143037240903899242897544109211296818249670030701241761556222296206871352604660315879884653443511134715219867055177072986106200326162242486365874253582442703086113963457949459512319857298487950673598617375303336394249808231672221433130784316583073289901405063654573338059322861207970634404758500250400675864599628098003059248921314634202155409943544655687852839252053371335114747829983762643531661780165215891789945870598153462480917475598104077397274811939218759276335337650518481354008298973160689925969457087035353228270354838410249853499561943731769974065663004072402877292230850479078130624681143606167774688251523475529898437123349632011669119742600249153324453965807266167726890802568298904142782284962684263302630082046217763397375074167857300253701731441998030458968061661400521034150808990567561637664651957209325410675785787901368935962291183116431176804072699301029066055123273765752902155756535687405848918817526914163053265639575968327287148813980895516681443206570674270665811613282362707739611953294495792653176136058037096478291575983909790636106201662435370460939927994714384858831583587688081870005548041565320869202799436005339027947885774790294202840693976525463765469123888966855326579539535016776281912610988077484796635398448174680483492620346438349912126869801136627969984947148058293431830327672645513792077267675460540951316290301729721836111224214479444450396315040956683757294367972335990263396238642744568784609868279120671057797685290384964947219417232715649446295203136940152361816755607384420195956991683282553054236593875086112236258673294080633286694654146105650912255197502580198687707442350546443655871838650860269016185501242758824111066544687530262004333648129626460639111140387772288215963975872389938681338627050550684005838220731245446768770990899169949967316425825052439973364268006207898035866688501500420054218077087235207992713538655157497178856089996558938153397226147711849649277777830491902286902815717913544039184220640908798931674655752350129787186018029655116550130892207833430174877042996539331625595763411634782551610441860551997163402358835697109890921772307994796066703802496193620983084421279912885302626807672154673041454737484975455771734418032372996119172170354365088259742133434231403152931745262622736584148423959864210698949221887761387181310037011433632602297352244892317444246261386080823882518880433536674174555067311261661162279912083420097354420013970108825937005208100803308547104277341042798162965549856835808892021801297447898419961478951062608634771988554289248847158548406219190492274263532127942767536249505455873334202023620209183593402647721666340977190485498205113894506743081035788370341738323643261853856980129692283558806528622853278633496301726075803837280214381459335748042102163253489832554809781242983526802934909206498563214686013082931782758733286236501435832977811903088110061010946757273148661802673109371027463604165723240884859540758809828299769797580039611522787274303576264205649376110665303386717662380608514709127233216655036682050199942802635354905326809626492143181066592898710472561538399659245305088408970321517984859311016816381330882793630723351835943082356385379149339997529523350031288780385385747734783648456165974158114380585767112542109892107519155374019329085929837694867661758028628414822358011883968825578968431768433483244422682874000305052597879024746416053001536291639107985248429068987610883213611333925480809511800015216467301287921175399519445990294914492487343224812506020755933751294340829147417162326195310209951080749583263706262324924339780228750456059887019102480228410765958401613831940444234965882053637982427316835312293549188626693142119608790319143831968253277992536056041917016664097368669820049953225208566207025906791836087977098960503487041126248961679201521859781150004617754186344677679627561440932578796166275171570661546240176110779159396178513586896321449689675361904777794272511014411518189662583614802552527646515547228435441797218746667522719983580727917629391976942952686394690205749084208238683874811628589615337668466255179429770342991814850299527464926627495338228675776707857404081600092276905426742077596227306434371832679243630727096341437201491119417095736622026305463163251294980132604085115831414545307378140422701999349071175458897883768490514045346468768951381775632660373133879265169171530540969003262303688126591862392372289371638367982521327732763877567988826002207488385005714371316993985650589368414667596861964292828960776784124137824995891534215506695098317449666421684733468931672491006914180726499209464301464373403995791316420041331654025842794094180692537894732020475964338352511421865292267576087075940588840286955849079909160558104771552017538080374173645368506743254538232180571694156770695904762787668507365751871455647925477795893097658167948681631622526941731936756412557799131050836613675295072987845182482796026220860427279487075340875340143582203758827073888521826148364058682832501716431990582958646392815896842795725675418773098068316490152592353830191615071253142028227737148399878319862153029207355230086967599077968369046136795647811303934085330339528625532514647621693545660813832846020478368487399512224927702637290670067942663615432617989914501764351269199279337305114663916032999665553791060867096886390582105044497624959417157781705028093017508141063956923055511873465966907646239978387379297309552414866736094523681345369709210228204450352539199751278481938048045632446294534317835867888558149048967682084488201044036421372541413497258751595943465855483811112059448766089654014705150408308441991027922116678055027393062025590197951915425775968462020311904395110301506521520664644914239399024528367794179393697272129980780426993840125879843478151232683385765026498680375631899430225006971425744206114534952459472035127236930006323037939726231490553854963027070073031146714980772449457673596716881501291370024515153449343656950787462049526621209239632765876061267578107402379427742417173254031350152929906962094474745011219304046412151711807106487827318625463780468391262399320760846752319874085228490392073880102791792241527280578733494422729484271924324271825631379994442612462980775888464125016297492877147797284296354703035219752092178745953551327658586800677090424989211190957625736592231392168666430478333343533717518200980275026195632551244723897778867195483291691163636246506035375351962203099098464016117716199262226994546005158996590727129653071675751956096197078999394503205025096143510087585440520225928601584901318882030673979008554468827817426184523663811234614351152167589809838469392927478952346170932052856777671211081398998136904756549129815085554376701351294427971249074065607091284545339669437971385875540917534579424967977862670645734060500810468154715478158446314649678381854972750721316876816344748713315314233534350225470694843439954980794710967991808313872100425817876729390201805249266105531090759387609866867343396113067401926327199183934445978017103413337047333527714019697800507756190822295433101514262334892878054743516397535025109273278950491774845451475701597664882693444196407528098593111113925507535684844707747096618273298763401484902257787909598522419737996059571852020363561096796754199871276940174282265910358753332894449801034643271819646366409916662865085791054980127965072183881939615718776014195734987666204374620483933387287735777214451273213506330393347310140543595584532768783727664426641271195123445622856781753362336115879153230563234677664634345382726628058502369568503490463305250009468963631706381319569795687314559964283976719860703452890591379883031295118161376127884127039377018210090175910833829084789561396592620458147313830114405676197110495792486453144169775358709710486603967960959848124750991966232605472751686957657742320256279227607997333246397295739629351293953990804134040253338818074879629967286750895984081602007887233469170254090046701037379057966571398119820586451821760461760248865245000476812106135497908302022316587976479908647090725121208695795014937626336032805531693451087154687735361969944941158112141466717920838271610482438762607163872446410667617922995584036348220070725767126349052559236312424995007283437643699729720289166425329946778739448396313109736188716026490037609752508118827082983195391817999007546137613126640538170600855972883265261748355611364883050319093625950224323797548231949016600765537744941250420071649717566378247887586055165858666046112523462362225224948715669261332415480012634344362251148759826570872932220567249013879578662865443550190709738171980480043435460451981716759886322745599524379049660897263155410921397183915357801991005737941357634017747577519444407316481891401938742421108725143796744096372213996599304135352122306798035939683583771091394964011501783070819528504229169748784473216314029429145892255125856883286222600309193682798176771704777939763393069516291134375166436818552656697171459251993174362942250234508051240745827289467465685432363344930156621830757142751027596710702686508698132262513387934811854392224793019423366890258801589425024085750853794260364442385809332955405902192849240729484159072791695450545081944153269552348383551564822049864773679359617482293820046713248303487623866413525186572325485659059979877581224270754261601117344498399419759750234624515493051977934483080763333400492469020957599196682860447075847966364629662529813530513382857000254409212638587217281892958173117895777843183868859476115315383844583124327577235552063580048891240437228508987961025846092396359044402932647009668332496279047981933683138415050290730252491021326705350846311441338620213251361851191366506090879301345881858383427952694095806438731761134480915945248441696299526091286622637965645914461405575472415878307097895137826195265481476778855867857129590812657303724767494302512534466606599497281469451234556501800808812999559422362297242203237791460790359800045231090598070942913860730971798417961661013528832021152630242971713572543019847658941708461542458501995068862247437582435112421552919228221650122962734197944575538944333540869253686703220607436673416626568696468993365064670260880360937915572682406380458145713571078681371818458558132982727855910020954746527853465692961327249280214403746881048185480423540742238165126788911836548475635530948010172737809901036203516698685105354766025065718409430458602883345346635201587691264630282621467872425323669728337791363115165789237222288742193881345806356907245894406893682987265438544574360780097563376545734142778471181850797332594999595189886327436286141868558118841113835322292165551876985536154976154280289328893963689514540751414625078638146511357463539071903858223582355155274992640389086809704661822548831891644751103972504886467178382556365049693187133056282838850567001920958525882359964081642370180328362142694651449880054472775379476990913547633483786423512193665485699942013490037764850148056421788062626253413459536063599858661664473829371229589468071605239704560297287383565823990529626841959921290037349971667300089465303987611374990763599316701085425416148174767965395441470340070578700849312496758624711829662081191075112944336513320724706779929436702499209883948534359041192565248422983111225701700802002461108507368904386907397217441015878440482776367921259178416534672932677971663199119459654437531362685126878003302450597291175565078276940870064275082441970396136865791596211859372341138882232739760247269056791917965773736454089147221763691150856477791426894655180162498133047472454246909931244805650429461732630121064966073520910240363790231069637452372240678649023678556890896629270738552794668672389004049894436694670735749686157575981337824312923686811061432216029685267973211533238321813361764943778374546218445229112916914708324157882353200520164646694033551820613791478474280200113004000688332225556424281852519975393995937317571310517040255683180832558947114192937658798124682734082465518474485325714202334308541123666162708882142824113454676563609563654239277905751306912465905007061199908105503979761804152358173701008736783556178149529602487299443630028125824651796203316686514849351191927997495831978564265046283842299910901364119842671424531153465938770156944344889579653770339014162504011578908539550540517602810810804949292254636886572554851941230674334485776469785352962954959835485394704432794080444656635462110905574082332838392629512898790524583587917051245026034956054700602671031863083537397021125778173762127045877742479844779514262527755547870692884335719824359959497264631126945111231664545884636121289869596239308995847699847711429594683143402611450800981821093409986767667891482072186662520301440845153828724115576397101430901824728558961421938945445975139469561409096992892385159928707435976336426363345401079173628874507195773154083901730588157529425826066564787549882726149910372026046169918485818513448879233538978336156989548545993459479816273142110970168668839508429529256484167338501692682854897053976046161227398897208185029287287400724435505492290051898184507519554575591717087699650143729895920771376987957747347216000529719417196782225439333274488866241289649988985420424646898405235998338541669045271982769599963107586632978256266727859617573690747969598008488661237966048882815113418576891612307506354987148822043732584072337226106974586194886650032848699457563809602003634071160996982682366891813364836301226993094066556371934179693525054540043539668436924761936541941092656500626639456588190626002593343889262938750362056591640608852367927375898407835324053204954895800409334065756871956852833791907612769885306227369629656758534073037741152457271318417359174809649742570725747897164219542302406358407447828512734042596098761291081748671840858934545672138543792902363375322660301130207061770172798842449594879974365367813072302139179134814092360969568802836493281714142185433985461889302344890816859003839469921490055147270976569698392916514410545016407414183602764636542505768976515064019451321935009210505296461971887248424880648094503323212973857453313427755265538712353791465462976215119109470611104297474343850004467979931929702694059179393614758588831355678778567116870860532459512750141975170979274068745728693493845615158627496058535175431759425057824535723675739127973680850343939537863024172425103740298833595130509724088405506372531984691437993902987027904896385455854811076591829947773340996352191674757676739710989830213606979829481625182507066152013109599418724829959120237622396851502642483995867041112981506224141398644525453623896604217561612832236671148102899824182606094041463911970725250372506460253429149074222993858446483894058889596301516256323491833933929631760156768575529674296938103620657969355752825180532895658686756625434845383469976586494846272716542530712547309637976098911451207755709832729150119912676272198665604104497760075780211235141913886915068912414705106328608034635698264277367474186032376036170613215124605381975796481803455500061189045189828369430184763671057028667921991314872581204886907826247711248802769099795764421872229879718703185093306969720617491052840726976272212443863292158355567772864365115979565469823534441351738302327588726523014959756618096357407595197555824006299575214231651261039536703454719717986635993148955988646135473624384662163059134187127745820980876247877652083413548027403598968289041926789179907175835546277097317010706684257817000836870123273453832058087078760066700867433472699583349803624100162345140991235384392634103249072072259414786987629531610969443120600463359002411511119457147649837155105477348718569385651411451392859973175469862031496879053540732350077725312998014973798458694162843075603822118713149000743980448657939406085866755616405692597184904331356498114111136478367221748346598001422525443335965158871310817546978325001370803591990554734773301668553189052593858505957072025400792393532307477412342393581471762794151096944302762577598154441806815732328503126805012925485523757849842809337513458966783419260093190035358265100738532926260904600568812484166958161637999321841247348267605590007951706476077307775342949049971131590019926514793229356302581330968105530688482822501456930323452068972386155887884440223239345997967952576352897447648612294859547097332216059234542359787476071055020960210609921774388686960292213860729542841007425635640361470147908224193653595912110776516190735610046362017443410952763910026858033685618991301998618518607937523841045776428489829840851090876246394655009393904470293334871426042215997066988269737401096415614272369737353855230324097179648774489936503861686941258843259404904963622282576806877740338230856046771042872935708375447509308461581049725927637828291317517555467923932179775961045581783494144560325239593059630645969381331705941293540794534181676309611752139139269983588886432205397306021574129832790271037838996937415287976003780634689094400341428119209049194596160383093279107322384251544007529854586960815637439246788042031780022104192561074421893140177158251812610701500677221267008198200295383503230137344581873728325146730810491929622072299816552178622866844247341281790109155415042295167463401044276660080632494323778538385938807506577362533619556814564036457009096421511209587804035497341831185283935282033953498649422252280756958777110037817712022909994376520257709093884231886273612087301583866388082806352631104935493739602152379093766750352598260948497339940487002961807454852090964697301574254790410188742796213467228179358809198923324629967480603548654113694079313853186288792035535182846588966016204800181589903904015803550522470142831243690249810078611312888779539714066269764292112137424560552984512878766876648089909272638348092860167065085126903853336661614928961411150784115446180513271748933294595472249735742704305390914141565915001337384355730332734151549595770041425312291628170686499425021916132284968188918921270247885988261788887380333057649076906419522467446213041764780386512444190880234004881576999834595829701244023746219857988306006713664067543487348516646643970392454509162825983191719217308397656743867776192318132991972961266091947838150397902665599570832791175174918322451575529138926014859081457396572155267195744481197967024904409881179858716259173785327988029061588687695700249151671783399114255938173283678600237907568662879941310428048988256034724917022834227336558110549572503568540823265346468812485427208904276537609000483616057635564795389608909567670337084332110747708078849352313389642047100307751720223427781914263196434329967523762760922272545158493283817314623136584252543967075854561062228553139347646750878770512394086871195395547447773301656827638896275979527903743229554647125288217418293800704523793082443908364718962787570866110494824799222332821802491301178981901036145042169328119200667229578070096652079593752227813478976107717005086385282908110777885108798796978959056416198891720812053230961762393815848022729684224912257755172957378327352654462038506393682841182153443127044505606953926047865998475012366118067254567640544926686278113453606200627352079007952188701669166088233196964233751343172040353356408619617709776900802676812746553369837432419821749911213378645374590106510591313251193351221139445153055708666467830551315588689239563503490036423084300248292395251586482765924295453013045080393834638573141168245330279369012239376598877633770544767135576049840115823618792718973268352025173143389987064012876620234691685435724788145277803564877360989644375758536386318675881736149832419427962429095122505655110118968524772851139382574965877810104981379237190772544888426503573107093719652337469587093222222638387537961945019083453722355089203165395021919980487354199316973866861040544353310837798641712587776076773371821747418516371993258215363012003266113049987955778539653584839984179228262466590202615956905891989283160890040017123099793438719288643396152674517193358802806511245270135304218477726780846568480130884593241911689037496262387787525949626549124828229371813370241246078375201594294647380250161612283013216947783200479971303441257209730510473171291986701464868981208021160684265886940891951229086385196603797306883601736389905345774672976184326237337163345175734562754530585865402982757904113498497303109036082751640488537121043931654580392865709793821870987427897016247282557801096589518204871539465926388547023405515524696241581833454498641489420278140947047447986228315221285585659276993058626254062036734559161451407266091797523587095592946636712475331764258150657150632448258864440432185536294980532856678612976826954152572414701706831361337630890831447526584406663936149433083595071803572887333325058463411270508909185511726381014848937525181752707472006544161285994918587626943197342274560601722486693631454832087603910305489991129787343286685962283199513779301027450739652128160402749622168681885150280340967261419054288243588119294557133606182240826660927169962533383619223780639856208863216237110756400420253586979997239895375205354803159764846934426268419871290249794702481540976692521435357215662165567436769572993499710787616315052416206384602047002651127050789776678016941150476373395653156815438860472944639205245779988079680842112881953109621637536327743842874787314649116842489304596002827073664481778999623339599122945467548699669485136779088669998797234532914087048202650344892884752879760811292717916526607789848789364887374297830192102463841749703238442850838168109758523580549191067707929901566804768374666821846631637112343045838199855799790648563225276125389954472787517431986474640721079796805405681405299648631290723855039700101173997143276713306581499029454064797565507701329380997672376373649266037048027322783751002030975521358740423394349466797221374296174029281628145927259679833161172185980888429158681516439007975441240874600007350940452462078413117008812171474875806075327963144768492955860858561101609269373600624452579326858787446483075484669338332998717075641754182864595454000850214953850833494759000571856829841751586729915648661126872234876460382943115015412222661711023870205123052467462990938955534496497044106530091292281199368482026320503858732583243764666992127767741623740844251190817982134356093923865575373191163677968338814441357634790631832770743970130154367417092765962343892077824886334322862465142902710130746716254079803817409177291455982218108998057389462672210056078386912939854396383358899504350574469723295599460291172001871849158501020853062997034126576920247593830900755561512121293046846167476827345771158047224678061718954050590978523976974957247576811563373022601926175312660600036044454338056499800456318068507600952939900045991308174810859253332837995365036510764528425064436258277501435432330557451567589899717149877773277386980480489011220744809940126970154874751966626080996875993962319481091391447613880227222209508393558691170709041745829488397246212541344934008394971749779017338759717838613376708564879871282790479966956517709365187005358206911511832559722821899777633717298251278621679942465476121461454246811307787913089828723782071945452362151784934317457081272088865165091502594587175761997302364879646350574937741442533288748375034874627732390405851569159193937155684066913474743626551042747308313201769847697887163532984683106312496829717887297628485276256296978271120491327670519355018794691312165046747147379436293043759170346667948475706678978181434200964717972572080450897383235413256379908163665989216073413685231875096021796317019908205316510860831940049082962605598351154682081354794488735713966428454270137337502119632293058539769203092895972424144082515789846860469280744257774968892314567268341231629871643761986174084499759915747074057992557589182338110651032177158981885087606817782112905722289016865866616104248873373185915645937874970276161437401557782305940182356305565058111769165607040680747293557662108363366810918867466803812623236631590576809998882084447950338486325505916433915301281845120444592654692265085773070289033824297392920920598622946651979686283873812363393675814271986829368440020111105250870520424495344312053217334552443262839819586147514723517273195934276290914158090341723337813496323418392970096920689606637637547367284616337844653243297158338350203681996998589689569372646586033840866094503789210988979996212685480687382852779923774281125909888192932376151069009222034694685873775994977821249527440453713421458166605123657016535399455266866890478612800447669376181945453077514356181461495972387916626671103645182817577654780225790227382033596182058898800421828587025855635400596024972014823891874919166668603332676349882647859684868216269763661388150905671378122274364074019815554732146689927734662256932869844659442605120568261052499501858547084571071995623941104341055508284115745375237292192031687764463771607864862980680812641104932381866749960225621084607645186643563286195183549272076593100480464834011328253425527708647321030404766330787335223914411894626421637677482651038021865607505399326984325159411974671480822105437349899461441680263767835155753547801578657817710939309229846546901048718199581488668529989432243612154656297142947848219048564742006698982568455473158168578580168916570653656324875474447618125829993958406237069324412136426340233698734171717528671073691267836910852547108650451395038796877885913573443762000564205147750415537677620233765880016031766536369023825629665069466982868296240561294068692773325863702201850552291117336508112840826570401356219486810046357222700091626014495168456446024583834716594862960459386615426283418118046911402386103682137424014699826085297269705809769371643319536681177685876843483212922521280236224084371379400697002763324292302055000725143896423830735718146255260119671600209952213979679930090231773649892905345372867769283644468666191131518819343114592767519719959608866009124273175003003264042423256739977889239123751350121321727959848398401553115598262841074941184219023091203281629826348888675480281976309583584762618580733863540871209483306890781585894218488466822209949415715645640056781086525588449648587411777104403256079513533708328119719481241169685184638317624681899788101590735708210169812153036410886902511591780916499150947962973088986491365994342403037476069293417098356430506851679159030395834401640228266597003852536955490124143046998089173404105416163787689584367214457314719909967192949580715865019327703293526150851130216236049696789383067390930436415222550001620599547139212475565244657277913652697193396009998186839898380818409409767854372707186627927757895183756548103361307981556561035972031123529622776369904931893448060795570475042003460748776876455849546099696760065845661397080709632336442051604738824173050121721965451331843384950399874775950697975944399393617138781981635972698185934747496192304860261106788448433894423505150113669082827964345441922879173373727290546999744270961345962148657450374516131640236114369927194486792707133304258994514753622856266956479655611857961095081925267589510727649133272663518269502360874976013552604273289643913970022055800670470462523384234990398375580314269436607476041496961072375477556106352509225009305284438601382710573547398578293627483891257026725153806388468644256369743368858564950843157404880141746370746543078752782218738770298968252548462754023983299952610784859318842484925138254477619933561964650844308087786587418903900509307047140522050821823051461597573067378987076729195747118719567620632369230621814020067757821310331884469021488109691864036781685168516299255835631645516642771580953140325858426607469953108489574539016900239124757594586703084300568788071700198250637293403158887793850585857904420060572882974749749148643225061498082591700906360938691862136499713747381805032945594479727851581934066857366898968922440537016921474095071356980976501299641302260869758186799427975857761631584887537471623648586542088038314846752061545409496376855913261932127478114762513633495728713243476454557243477591568869453746687940107928011888506420746841488052585613050003422389228055375662298574059802275894464360967975434967812662576262019678861772608538522825538273611209080063912932303965122180432556527776202943642040495762925948211635072262820622651195908828003782537148553273432639271268916579471081312691875903979564090240388873316652463573243835167835735979003963420740483085833196202299610848578167386961966639262324716970186345443581681964157783595577317544989222350658168049822159503084393894583630745438361219438875615719990662822856180354825201705905306325414127924925105905426412516712946236609576076471746904134601912634639420046239774664018278381167973869555916563001157862141150598551272773702747882464429134529951364256569648341721093509990395278426909095748872513777668862732567253806253084540505610165492922584807942897278923638975174362137439206112165954682580110427320328132317199092434428521942158062342590783398338769907286245218509970785709928176614853136594590412742378081213247536697211528349009121901195021860670353262985317453823424981521847445924450791090327974519865361626641614900049473870176007116592548540446933667744820104313916152125258849563090166960774516093135601283745123485121616045588931799805466550911317168459514073434866867693938725296792502884046570227600203631888556889906929444015099835137364272616960374340533741071713925858543747750789404106750871053772202986437683117927056105241806811699317614179078172370997786038572754969552326510615372302330534914328981282712992912603859006508221225374865372747968914176235399643161881597553282706431966205669555069484844765050047874795155506040750653205041246237787592028681452758678983827115111730564837110872461264030343341908254869880849061720822368708295838254620166375123636748120218332300470866490189221908286214505482889506446682376708058913653222311697525751821295377068104788373968446241661253457875752899287749773724704595509433397448758717315616937187326856985209032865054241714057035747884299590877531314616072962751475519703388316083618107872690201984310568034677963030918060605802146217160551385925295784860807969797551338926964102772420995218322923997898328380876158878367652021857542855107495920750977512559355119102138782044091763540448174901724361088980703620496647587885773301827985870155372378614414386582473326766575869108982500703710663475912510801183926133639140056698406827346474288117601383971603511943322247060530339754740720778015771366974465746530926340155322056468803654763379101094654594259929118708648919678366765309018940536884536796658747145698399098442555190416794307552537761799203428375235469378796608477006089287759672227672750883147196167575655584133243451857094651120908498624641253654802604044219839706971542429274216731077841043137886823468570772963953270562014069658058620805526743234257462838893703243423680673069699533253168262588492248966635068781895228708826971013984889908917930254698850795866808711893784052027908098367526510448783744222905461748308933290879142829929646251722742591203537406048506063126219831797511453405249914809972661134442487141473438626649536339955071181870360293993534093308945708484693108385107455527259576426517559152642687759900956459338144434867084665025452146253472520496001520643673658511400956651930443769405301041840581669525045809632865077359528474653460092751890133905060725960490168551930029235591891523983108492765597659680705347441577310306103168671186153361898227645417387701859321040546926318153848514597284168670836863558441195376264180594466160458265075476541019768625008255094011090373236730517625892767361889006031822260488190894204173452843533035154017829659004497017798696131769133663379607456306083838295792681791543786387671236800852242970893895923314254885360459615438722033509006770477852517462845946335490053642943804706560483252286074932038021337905991650101368141958207697258516846821199139485858173925622940491562067394941511795319943558599009288516236614345927894782719828374012969872512425218537075807723121846125629207804086548188826932553810848220869819745820329428765937341326205293040171129219425802831533267641795273112621202872394572547184599796905937952220492556246129571920880046858963608163422307888011215403271208216513047968667751380358429987666508261637541798917005097842035991297856107130036353897872745074242943196325413562039916789095911082019330231991004549640511763813163666965353748844879074528722406719843531490943821624767417524030208169780916757535962110437375408576178318861107671931129296098881969199403921744537511917076170308307222652982598038736269491902284370877960124076186425172367102289578728820323352597081463654618402768120633622072091586624357025288641823399619256317067443805485764674545915243472608864436207244108093559221790266485205232029753778195216368476731107061303815779273018891751062202128394130785002767922097420663611399705485413667013254974940516978259260232090845169323710418928255923776633716284946169664419912154301567848326657680601635353574285910625001013010975266010711746506278125911655101215682044920764355344008931073833745067219426514043529787298128851555268788925735688658595332489056777707969722755544418815148663060312336274747400485824058577138538284285090511919668726151159946119475308680404741096836986916558671049994001573912251281375545553649914415977935039342932916192448371210005404442625582410821208428853264635046026406639053862555803913606747084076958711058734562489892285469446456329134295335949386363586312659459426172485300431084098541399541913505426623113777989068800384247442765266369736097641779510333381671650644612479565913382816422283941154940208079821331638120214095831806397948438322119269674804035178712666122197505550295321321904063097679159764363717085716087070078363977074334661331686212120913782803017443974137394652763753800259171970301103327524374164806326053284300182692735496131870812381471577784954171592624239417822800218400803174602833523139359259520659134510056458889262722436103408809942436271313323959215436834331870327455036890066394097456131020489197167866609347183721716573797040482389044476951932442743218190450685204195514570105496608230776375253985601698165263429389510541817101641806799037462787365817168954790335488178725075962860745316633316889271517335520847805297545382663137151251732914397761403215661183943071090378943236580284847260657648063835959255947032125132411528876184174082674783750101733096653716028588908885279223595473567957463334875782249822534525046916688974111853128151423576887225395939740520731466933836308865037283289670608556339496615867898029614627707313324134384254353575781370012059634514242786281743483740838524972288710854286105991218915597681722548017774027949745914623319524489377316744355711310045591681949385724095513720288454626474106399918060276025076792655412437550204772237027751343399402061645583996525968612029699365672967306919698840808981991672390724864429146357550582593600577478767231288480082430121052302318999285327084280320267566851372370790808739315876956071381228510513760759836988866040670040368259988350612183708309209043979063211927573175374360107040781923666392256534703225863993418682677086882918811904583391317515736677030374495702383909834628077538239622970105228503690966117715896068134441524996066953742321367172275429514555537310908793232097279263806887804851904686968292768706270709343485849941826419642414074376087993464963887240980534901537884759347621937892732208706045263910928470305488329170366339454008185486002356571248952483657501510465613715504816926652319312863335230941523861818248616563185298187414903505493121862938229085061995125736368183889675184262172232740850224610394957226058045819047829910238325584864619759290281814615702275268190300598735938933193337839330501875671601189371057291997304849894583758691085381148234664168435474995186346007238992709818065238238283648488539487498467398508639317241722054555826587097039369068735573491637022645268991259321945258610354326089283909423576127322407730069461938105538507607876049975776081960424808501125004801248219913535529486136947646133413869049572312348228177127339648332519291905555485659360810946089205573877933644606176179948566221838792032449916906943975519123448995733215440393879729012654976852530216651167505543924829249783544085436893682648190622897204312768897216521163665402549906042980167551794206880699142325704784648270642337872041882791763776203339555679214071860770268567574062887064915473925189632960213714048585317246493522958154694726279139027378893691918229244854542072576362451951762934960387065508507500247387553238270445391281462476978263912616744305548353714902522513732780297391324487302230671243573746090975040442014824283863307835489708646317430155903995400389427925285040725645390182503509664801940270362534648260785619670604862105599862170372825232501497701091692738787627891990483244632960238571669463214493462062904609789935358456610813559341859616460291653945125675390257920987066115287237643688030902423285748510564009120062083626654879543214555148816003310901649331902106370956365318692705176224250955725256337079993537781554468995325828307822654165537632952629355691794301096215774226206403275052691027319133324564599043097200403824733619543521853443843355960549326731585139686340666169081196408654298634304086528949878117887510420864796786401048032615490954575924294513154415346103173886116628187533150155255067894552813708700497288285458784247210829281770315203564802697500261581000080288098632607875898671627628244695152375258377317187558988378848389762485993193713763896165232970795024429882660065923449084881532982898827798258277617226804267475333232143463386027412214968290098315054906352377564582918796180484703820924526579540334094866144848859270281972452729685393709382409747172427165403946480585974367854299016124494421960244292703212211306650802177492733791313935659420908517236494403377617001764456589296097471419721193151826130130686628546851038942254253207585588290639699060335095121080259403223011423917081669662895613966950604226027694578017402738526788293292184718486572301842041738695305341014112422904538846433391977906734107170587122314118135721065961800472344524601760216572297509103558018489171785806098023697730407572320340588019732372441025343663266111095390793556401839879686210586332972956953727656548653032182528833793407311836470857037234926075172265893647703166830232907763429139431962324340085044200671949560763753669630867511371619928155191511148562921572756500852679999602225832475163405293407905694218978221625253556456297466474505130818030960590227202230854216237804669407325103112730440501315342608159372707908610401581884850439583333341108304803930902637484668803196471178399490494696370158343724120177997820530476306116308195379209623994332288813094649298601258118624380912450158572478676144336960347946879280873487518032850424818319719803148347735699528310110233352466715775468491442496732298694055937978048443866847093108252049703848689029682783707859854079333796945221074066242997973971860821547309914535786992080463284789894104061402798320832590919048625398356115199463316203635553893325055247297387888817586557864156161205092808051469869544447092752975935157518291031512990296166346765632841676946815772809021433404277869801650285945897006914031565750581122362888880035545806257898991422839019478815057639263504725213532474300161905431357134661149399606689529071646388492904393801295328190708273011939005418975844570276274103158791798857810656675051333529942957846829885543358177766363390396123923605076756190408238662564662372301720339096753352450989388193900749815602577808466506259950772656627970518679944388313203867952639203082562756957783739706097741191784506545757413807749383173320376670665437207588981674737272720920635863188962450816216642491768794539324329707301262861096288600135865152932869377665587070305546796323129547988965428748344732144347323449709413550997827874130342156279132622305781519000491541616811248540103760479206344629601025499010032779574431885087545655172257106663138551527880333206833939472824236074327101913384143626622320545890533975576121677839582238032743049393116332238341860525087440056945644496804823518469911071175787010120209639523626387348468536624926527875492351076095684969423816183643335861453490145917753657068719419797759446520496361232065447699876069485985130424521476684750200929139194553397323881028705449181812665760194204175110415077126073276849597988520965609913048385377726971171522877675984540512012915671831263442174423564767590377879224636740084277171632241707334572593846014287093462187465204684720614986179785906634354964849342587817919147972991701520328396993476356226736609582642937253092478993794313522596644100473238381052962505855318896032848571237575776253776191268192850314671930329717072787355248383272018558026657120659973032666215450616620121538975462654771653584412403275360403949330172646702628668552616582263948456882340743886045474483196547496165513843202469101517121428422433658249806844060451096791344707496451401569235765595758232984775216988066451827207342085275396609359943636055775394237204867480842510395551911839011893870738294823006985167184567686633565121259663850956004237605982688063658925835773425630924859814177059677507567732164493275392331303561707226739244822035614777689696568887444279473913703653504886094000132333069583672831849283670726401759934039797221133901117535541699127756718522483247543178885273228989695083867868545805007176900598455843629391298303647479763355875084043343277196597105801396685892747690084268107009970067867007558518008412709042115783101488272743706853890623965707184834193571649852782876502390285580696664820419455097861313148443168072666499116802650243137826233497755478626327970519619006489874153503095971670321993662231341302071904165608546529094338877245620459226387761176262772950277014827160257075095033988857141677585767719589273760284273542706705507923685414892991772836979737573421713571408931309147052214325880233687107380088336109032964287356319775635465280345464431794509122828089019318756629503484234607249188815590266569091107888106677682069037879812313281825503047746005206459892487570854250963575385657756600867294188282807777351185307388295984704840977667127713949097182969196024020154204459436377898396840713916914237927610282555388515876950448653382408271285005795035090305493802565778021124908223179984135687181676243876838435636111852513125279072378353710422200379714615212515218213363974463422621298655632093388779754301290689275296266025486639015901650384405703219864281502759638987196513792720052579436908973672149748776479343508693787014615681191008582152923311704693096050305974061327046611924750606691951155731984860081557930673462859109743338798585352408814755886988949890559652400691290235094478440637728268371549764222340093353289204011605028374027805799445933167496434823348936757119357702449123270633592966308770225933118045625867021578186875185444307759287949546891626644940090930618379013311552715267722706293245107315040050397311653774384109436018078252486326409683577924755946257731993030500444460031760533563025435624474485401570134495906186892897433077978962459014120006286085238631736812917476310145055398470548342559021619801149929393416507472125323087401083730914600263719931432021152858686643492514175050242026829536440507788120539466925635770750008537087399648375447075695112897173250488402792010837338092617001164443956405433911659007215944777734898360995551033973519994450415881530862958438945329408457659415635837312262551344726125540683503008411796776358911199449176015553992677418111921687128607003116084232258342933627687668566683445303647664643182123339672558087446718688220748496805327571684944367433278003759033431385805133966252566798187615913278401795307691499871925217231568507627599996884576301677173629614920044807776178498023185841943550465853075446504557261504977803564435415904721565904602668714202693453851430365214847709171597037838867583935401131757525819990356560597856908658559291153382655889193905672752300303792907314420737700680179109754638458519588946322245547811444710182955052001554035307417824145622977974561301915842628990617690512853945877169731905436556512026782944673754430144457309854005611389373456542792827572671884252289770553503942389942128730309266388838603061195698524100991857295811913767615215624365742669050306724348070064338801054366523892573199916334512928060513231662948232848950347258981338825342877539602248109294568558837518540861565967276057596265842329918876140583816941923165884326649982738874343283917026602737095519593546929774433920328743958877909211952188009529479923953638453060498721128152179391203660648371084618756500303725843198054883133137751210861802979433383126363787152860138504188898352180636131118549432243588498705204414922265960762462200735577565157656232086903169641267334698290347454294148493447236820985436635652031749961854160682588028751549056221086332226264825229082416943560332167513017445644071647116655669889141745837066500838908396759334744983563335218973068013842904490052423450685206242969107633793077085705849736983150709218471253253923889899078336697653638233616502873455591429672828506614866498655308666073931488559730652161186906096966377996953928454480581771335105207274906373969743535367308101701400119484098666925319784035133406429178552343869941909507640365036600411024783267252620192363152606080665759241339586088467677956460719440214439217416665804528574407716036888371017373724598879363823631538836495697303828283365972491014903743545290504704983252787645318838809267423984696086602577335031569787272559126649123389539008764544521776756264731810465230539669852592866595638373173725261725220497976004401830492498529173226402559544994660889485936425385748133480797923209783990205623171752703544659107012300039911031416067523973496904584408726691923486007699124798191387332034241293079150455117356012472491794494536269439071499893715466395239971910717717322454952360731808379383496537247050088744956869202585410517186520598748912258373020346074649126478942257391217834594431062171246211631799189572114406140740629299988414577960392433293028746288660527693554038052436185737950719748546562710672900908308253655361796124487845435904073689816301397864025274254969242527420641327427638736079362805648850904361173911029448427721198568706798332000825459350877092913444086995980058009781144387889092140751973209037949990394229569752599759136495204190456867504061954874217753133511415686278678963655077869358083951868117859108512414337898096840476973666637669867026880562906822651604958674802260518531600801102633740908068330573834940386426949821626635643374308329519659257940119023475073226641924735082403365579632850162942542696856125187941578084929979234862415806564744102733678952747153883410218052060280815915467907712321418285785500107534931872568231666724484059213817622569280553891638421456476258457752585210046867042829995268429479832704410296466972624534331302184482110266292354551426081343088899674704271867172343709832641129281663597565231904501763279748440676853215115972393064649126985855842543313487292561512850152862858588848965116545500392184233980316465633244281275868568318152218208248011816390210810290717626920704814865907704308836497960901774118391894239123765622741033415744791209096332598084111621321764419034838922384572105232320080703728912678585816047060792931668566065752012025523404499228914810630680570322765270320627936738622093675723868663765666753888259473147952577093164925255709881150386487837466435190328694359601075944886962654989858957816206309667721433074179864399609416907515934602697251221791545667247774982831331974989897515536373995742060257563279930622124347804570072757166127911340647149359933672261254478338142740056616127924328819892578955311798514965801701495026050369062877553754299243136681862348732276825767369035100283232604857461907215454679066019519391894726263367084176418256826741443714721838662480295618804780732159485275078655258169470352060098129290716699851205690140598465849980364545429759849420923194427427622808249894684906691331456754434550135089706881228522327436463140540075401867762103295685788772574630288696069281526423616738070375944126884740352370449783282949428142769318830907992981812884860980303144625123365491514625551878413364745721980222975450756081674913689784293969398644000062344963252715594784380871121234999462679264637743583422823990855547871459048454868513318734011418542744865491932190912264388042685769008646316314770950040494104104346172991450229900102545142456026204259657783028749975243439362282426006171787240753616586985700655947530335813199360994701481737841724413114589398432849261292115625424010209034399573993596192895940404068312483834585322947398845398734230417405297838600966596973326034949967782592711168847992716162836035441569682557507262748878416682101210715390296622946896411527693996840593370003970032156674573745549549525875636222775589908765348168399070213397797649313682008291597149165790059129893169333079998168680604014758630408087492037724060349672616212782984818815044622261573350247865821515146525455973552835063589429337750869255999057128516627705177842747603042378016817750231389078156616198407460410347105283667381381384420553052331287350278137310404106942109537226137681570676198232596726493844783654782987832791582163353873224727294873685886795004526154913008304768636784005249730831902778036250188330977709629924438169256357449833498423398877928687346798010028515315763103058838351362370565659585384252757449110667568415413090712832606413555468525748814449801883176881475768962193002157280041961740604678175509762314646214113464263191005364727034854185557582884607052561512610331426441852628513764155328322118352820973061680001580862239767532886246191752045970583462750115899287322595414758898361745950670141228044032274363063689892379975457284466253954764342761411252278951909574167101234952570123453298115689441635986726866065592501948193274330493750161347813230660997951537408624324799244462676525957735957621200619636343367168850628082984670437045243282082423258309214868989895719964977395716938475678281727394208035953747026752761993465737526272935669328060654965905389725402577235702641325616300050116382051260483714869897411548579695361532435368820110377610090604033624321915386132614161196761312799376544934719207971789652152346174109809916998283086107126558958323077561799430021799231433098660179482370716681282688310508126153077492203208686166735565656114401134810623853843442719072746669510777980393249802551208783063695237978680989524625695530635546134537051998490224974977461453708249226861304747080987191451966579727641773492195595880330481834761096224686741700996056909533184840049343453432366074330815607599543606981855153426043974292768351235540749631770606613653746005953406775368495000610913577465044233519990886970535531060561566577217147361777658062280248683435384805332132770623906470597571843311960533624406465533470750907462761909061488637537702666282659895617088250562986040984418601976496498080852165038990761999844819226455542739682441700216198660324021998902095443295515382724182123215341628391894819771246764903269369837288267858532552013137150969300781919423939616634675274847101801463554895392328666546488782342865432635299770571392946361692390415106919016729894803076834281271938439116836915491032918102975223851674947231886052167897637702870220564646181509143299725502046055363650875970164134006598406830576617873917490284705415708250891413984637165565168753247268433302730550111267043614861439403398541682820118272617656772385602515608571032769586084639528875146848916415612818483648448136828618895943487176943141785362441702687332023312137117113222421916827809383256911103372105253716508660977371392655594560699553903400784193700180311869006525140942610562403370091598593007977679510570101268109603194636409496050636435550232481621527327525319100946143786151051069079226909378253596275637642206187573400319185150798456628050830579560811676015995247147287458400259914235271345497664162813180544483233252941273787916152824593804734861337660049558428750959095639476908683488180935145897492569857042541730072456428693512954022426150137944212219081116184976811363140766716931631456265833361792588706215576309229898464277051449567287737904582310536363243732482586045056464158416139777332669693721407307581364158050591940421383137013423530142657784355468544615443594802157850928459267520421103826900704097669564525172827427508391368871822424314154024487219539561947030933936133841478033058764249754225231884993248509083437473214083822095592095403153319251184831527610821536468314570844942887091344130498402549881953123926697420895555679299721257860229777532343619147240953035158269903871350177085839361912897594709482662788189556308827659003301635714282637641650038308660385019585285024398797154840406680100667436343682890957663282376146757128897936404017775176975459595163768714569681053767803728363928552153716925551451320562832431930635408368727466961591168068314087206554050058018150777356232731735441956734881046533168828109600023081202475494029779670466107358641523776316327496781271529186799916156601605648141279241273582144630532336262984526433814067975524599368418474850239767357414146500190197080775435355470701300615564297237747466569739266682838712045123839391187048730372811934960363259910341610213452110126020846207625321404530593207956844354569343376757011056406034758047484231837727202437369704736929062452403504006195044395751095372866139394991793890644362270178839777244444039784383506941364050550924490036477176708564737990130880067202835618362221462457353239799346864593223844325659531178576495923447472787540162224117327002972597939428658433708173417283677017915584624405184099155207791807315986828931325243478832739582175449665797314582786706866143617584406969620978687220920628275983814274697849031286612835308945431206327921018809538795655018959923557736739084021324592282374069013345744902549366727872346980969340892616230399792036657131565138494950683751067993900821341917655990424065702697548206050025737483379942194336660831745583678707339250101853950642568909887344431784380567639159644104098528561505522061654407782091078743329390688878527876360650799097930455747750017220498546484231640139049131862198923364332385478319079453555952941646566616259434826717033597700211468522446835637290158190315071471684351321605501400328626390672353701109303382232189062995497678452428119458622783805088065947226524920713912161093386591703685445230449031211765224015928744331287671573906131241463822745904944654446596997873381102111737840838459407920623696820522128277635392806155354179630752086740606377160188406660560514836394627728213286824584300882332417688495924900789154769349653802461844407812714022371643330181117520146392980237437142225688220881890584345697827146863505725809802877956210588728457347958492514023384333573704937721350472714599875889185196247524715706300474570561485677613512713533886767624413531531112115795876701270485834975897679478140531607160930248748003642929962475161889247971729788961284299014972150875586312045666423842716103275131163123192522250843078665458537998841985085199730615032315790576802849294605612992635102457781534716288424459098135186630693537459091923902903502127941367046144954500722439170543368702555553468725367644012061201622798691855310406165830370329841142509910682283327698808199717766997230371838604422796261090038135303332934326500412422066216803012512708075304808118130593154887561048978200148929514913822870016118538806273763640871857511352075453681489350800024815367195618562027236996656679963403930929001134742438726237076703981716755683552169819265886257194184491758425695135181020201188280581528429593026369737877552051894045830546493013210719112555085082390616655871196064239309366609798574509988347395403577728101481964769952625595813538412150807358570470069205918198621845411157431140667595116010207054012551434957423668613347415347911351257111620639743949771233867753321486378057580323081925181690582341103523064119502979466636164701890254255554503834868893267827171078706094343900217496959165777650763963447304743320552517913155774667554297671307828783765178417053007072819774446779173287333886334058139735898765056052581232334197931106759278384038618545706084991066158894870433628832409338912203603690604879081989326387967297414289992596209193209802286826964763261972600089878936800610896655256320234286047287108188852087081943446946492106690549164008728776172750348567984189078739636783450918694508868830982112879370323113001357934122938327626722742199318095314034733915268471574173805908133741199572653265192521574107008411104272014280470478716270150335005441968536150318906114554874186834863149141161070281968897663911014479053132644409330604646957874895669386700670727449333819604563313804155834433775588547828910656368204890232132261434103628730413486917819494047955967123820109603694975420073553840579670822864021983706666198593986101221245355113649090863187318029630564017270285019991388446973376254063881116067489041739776430517201743226261214434643966783606686027552725703277094349310908266928636120877076944215876420438925644224058925635811720196796915989256667144038908614734510792123256496862164120512736081430811135570681857190679668630859476814230831845724970254833405851769978218396849806690908578765235823596565317351221545739901697010201834401951658786775218363835969474372366372940627630993717595315871063512160795020161038983240119132180878237434032101309332693713412939307548165530706622704356123324781054273635785070447999014415262632433036292778995308171740106527842249864136326734421535974529846168657656145769852732628204904863067607222370124975104160068061467598109090117922823064261024188067475805778985484585557100079104200733883835503114966384821935196635278511479956959384860042504239547650076268344198963113094504516553640682797540990571822919669759442253899315426822507463955486564706974076019649944790654602235162562307603462524210323443062804223487012686070935196005161223214783497046895559700114960062074541829660127204265669374082742697930189619631151195064309885513358911619884992709418650420041061821377090407427733270767740892473622041082244774213916301243823379627478727732579355729268695855333958071804403004718628375223173792501114052537941036252669523543021175737374400627539184652618348080821545782625336123507458388349110286920618078908345976054651744492427478253487270958065690981246491715393420248625344377433989896246341470513987183813306088684454104929154228878673981045450352043215381330694777285482045367138957987944148109768977187105309531581948523097748122520375917298447686026407799195355782421008420495439188772481235852262664014007460339131456570005301804900002733448469069959466512219155805544254986544442638757999698811390611987471984320618268111751199485515872699010621727608946924415744521313055651274130801793111712837978840754638331908683845931772727704311179973134125564953996171137650259804425483708569012094824510863134124439921761306312327335608876404338272565174848579301348076226545729730220065015610733467899718485247481827687608436053002940147902669826743691192053973219807228140460174245459169871909182189210424049775795012523229897912555778433017430625753972789707804724660777076024450804922407588353260931266597639139644397921180076042123632498733329535169757398723719294724316918129879177815009685926340488251038677615193683467172373281835189582956493485446635716242847484145357884220614981751776747456739895546055734503469226999421116931817837472165276007454458178878743485804165428512042620349928549586209436253408240761135378979686506790609932144537661696161898631703569252399056503131204299135731317350322806071856437647514221408615139976817061908421060740057517670926588291509607541610659373026519037286414918102914897380005272327799158332014924842121230522132660665286606616622625408240175627358394416149463804493598228817401963159779683306176027244203579628535579629166418079285635661401592654802890950726664647821763882614664492825472666861562950895992417975456098262586577628711304010988528072189353324688095751541446911966719422206274589379058058040876090855490500541692011991142718037987712884937792132084085444821206901375700458086570241347771109683049070417574278477682492972281086562797150168896895558857962306310059759872212679109385108965522158371358288036524187918074864683588915694148308220654510557605040458730556620487805391696739133330786525271746883369743085484412174713358610295282180542645827595307488036842518203859355973839631413961915013299699857052269494892945401691381754920376485983527312655386280709253971300366490835446987197286826379414039611630819956980137297440044322476475101123274012028505029569157917260688276406050437760389224581214985377462546427536779083234932882340550830505558988932730791296861165572973810321615342579410849679739209522212621850635274645762889742576229471440343953568055533418942031200998684794347414247661489069144695142180449509505841161270851642110271539668222195195834859705570905216365044425061199468982602048348462020017523595226779492520163920541547009982912522508307703996397810707002799808356653279071479031168765305916807534669919513786870158181074680414009705901495527267028331957550296746118694823258515674524430326881635717086973837681459084315209410069506585310493508972967448422005933144523067680457651099122416119468481789293767162146749636038781769068759037197246913509959877655157803163419422609586874360917500475876524731874831896922092821775389759673879398150337742591962045494477152368164880086598689833643151257178324605473179451977666089990813046150789305474698459097218945526984687219408283574604853038175898903276109387933359501440993079591013021545084541794460287191195637532318847246403225690759877691882163619071857622193074197714213718915402204032515873812595259102571897264471328795956187136226765954488071883754063026261224158946476089235217933120922363482820212696852772060497187244516020287661421131292011458792570411929944415538188553011906689145459678228782150426957784755997402670842288531755899181208010408904449384328276453544560370940507276957466049900549626453348886239460664451169486770982822409923002010148105420745330971843487453533582183492587356155458137634641918078558354089664176347953047300378275611503824899780946358194461555553386862964246511819509153992741246227569337586126206382200109601569761958284106290676894356900382813577528532190989683367534197412650191538292360844834182220937425255185420670194670598740087784649346511437125452527636260547334805861666017422809502747942948133078287235999643220686034489037189560096768637046476442412191784684645264626599182120988584192823021638103567134529978859264289342546196850415975269734518148202070162282306838770348047486169373263981496785156148517545155190969029506010139002080530668444102559830697681676621507560198030062634220222017723771938924420294372134776148905824502266429475033352067612604964951869616232271708046155959960267114342150290185279477209761097742966976802364977150625930112467615989333700107649241104681813024210317703799195269124051008157667995909755423838010800164398089659287285220848361627478970181687719547679175096649663017472501087757749524370873412216012866975184710603749903843565003092141689532153650186194621904894227117650528219307329059119694229666589077009883307808120704909989043614752847178343146792323092519420570930709678917765155792313075208278899621008054084619665369218686659287018377640529584549553282669550951187922986992162004017905368190479343527517019190257184036368502692792706644832799132774878899075844097799184967852421159638512879893668422934816750442291744908847742578951427462068549464574475674324837215454181372746183546514644788741862536512623276180304839348481025963180411296682009958005302066042397783102508070970777238082302184126330323442159293284305122124258956018868555059966114592040362160649241371760557621654124059777870950530879680162848675988934803580369484684292770737528607537507945949172105174168421778553581639453285128484613106921738811367768486162025492780197471610014582484740143788864555634819388688609407216870395826166019121211623401751186698504935805705449169571879162238880425069457415214739010051052924279132234708599202764947814182732655036353468983588327048681696579348962525350280735997123452226056475823464444175175565940161636492517450520707991154625590540251814582429057665145404274584344102790011382636603117219778876151864783815594099115468703024879099462428511462325044701974140849425825563393542897559478459534513685030745625468118462524848685498262926019976088599337790117001614250812191595139280882822141899762070179057094966984017871495732307828809728904051995821512280353138462616421213338670666607312558331000983759044892431934671620978390334062668612393407737731927649485767510440442816298522218767166585957309799961332416132121624087672453762090107772510505585980975975680692565658364643851578238369217335911278374680890093394155122252565850748721954697097790644992167554581542821444739014984814881579051503495602598126032509706843065701692986683034838306165330430026809767680459612093658477773249004675699212601673837960107277979687881561629706414219821509988473590677164488194092191934927337378992252419453109247400704676518013828738923821609539319639688553175383345945097423175277485646950503300410142947144515479522721123038312210542169288294685484191117536320140939805880539954516745813922021167084776669094820351535976370013453534386477627089445316768086795591100870970086156317260043581485843259986267068449259295141564665094161426810158529644622082841942221884994876616849373304288052175152977225564181050417406763582010529696668757482846018116300570844881098085177926640669906379521449067613991267023457113496418253426176654248309879991657786385003867420082071948141986867766803259703612770372318822106779388513902985059203294115193864077404106261371391547821302428550647965839672490100579796689908009829763988010444135805341447180910026267583311491697240097399573092096988356528883839941586339235785954643562138090520107419080647622073319992158618765810628087759921123425956376205483319958552169928668101899264496350752345843458011208530171757663262092986707012819280592941621583873591570444093667796311358020685454749108345530820528022046757601074265182847554239037681415774853122156020042621440761873110199040251719988872675947422293444981950485857713370379041558490374177016372133180459612726616801763956279974687816861389766962265158332966705307285072190406733141516304707547022507105582120901504103311641746388902948453353080006185888495178758198913000234226537678387706646875982029358914861158171720322313243453931389729620596407247331044534741688347630401433449973692760218070796071525062794977108083879572313297335486260683854941503674809357519741238308023134870787566711552536117553906913032947564294341914161899490783806175072878187228743082176548453120417317147682863195765778300448980044428559300154268827575652936297537053948497180959382206899406086754691679214975509406005204912968567804429078411812256543227705722717819630061488231133323099406577284706358860851213234845057357043305253839329109750725655388838001853112726645981369601860393654113694105453728276599145919871594096894997860590165049740895572914468704581605875131910353927079214718858429530156984198214860557206455534508069401488806441046085327260379018016413519627046603167537228447634010804534648560672898041907593429992941350220645015318774728233295058677270618076373876516736312237609388546330275042975719029635694491218409740885098602415136573074720437415238716849988059044309322514957464681163285102327712959165460341026142257199121318116552480296256929195989589108237567879872120674410423216656687352769003552509494655104064858009012081401490987831680175740109263754859995770529230792314016845815646052114851539198486899025209873328971032684563604813931955450023643016583146423667842924011793784902192853005047338337439923079376061957177476582339752889474408397806060754563075450492272487231807821014318995049806599919058475488487341982390562463581943902672346071507817246186255362547985880528698681467592455365175327771807553759627660031494039682564195716296131014396237474447607615266870353630003895686831386671835330765700092556085088631197766792354855115668491728197510970220207894335551974998534958306484221962214759421815960273606496727292215790684975386124142842332020414601672337339664549995434952114217262439498562843533984763098847567466319415564015526133719231670194145428018141349811327816184259590678672770491529684760517456170778485572606194374896876017468669174993497561459774691755768748914189150507756566096947415975809438609341352372314393681431285386330705303131546448263237965922068724445114072911618919888219087598270435040419670977030949174558632912620877570648051453658411075972283951116984995987155958362338563023164441893286235898155766810989853234885855115871729544245709807608579375934615308074160720242985210015505774673492717777222766795944447167290081949395798334693313067343150933280563565557131479567585171635941219987221064783714610204453394539551842388464398841969651736353906617633950414232035625278272866567220429677389695424930409446575336710118656817383012498136053370048039737610343426168224518686071027865109817055354304225218774646983411581146676883151954100414250582248605030655975614908823968127918539564268127970276750762047228304945337911976269072910390641557404474131599314351995068354834770317976063930988143309206080484751214735408831265532668109557005232132268995659283778171318113469949644894058544403448242861470281141454480503689605007812286644571107672152779069294513350669766542500743318795546033184784524297112003845312784915718359953928063019685707710323580940477316431754209746001198724958007759088540895215154498814067128291234084326686408015863655729391083879447089709552052798727201048612360219026576796408262956004436836531702679617644038495823873122610553378937346166041716656787418979038018385189045059668160167783085082294242666134618235290163099595408113603588349790117001789176334071380282990631421793945534914549376986808266802664627892273217286333349497647260781038586481491504018946188167824910720318946737090950606960036461806236038431607915361830778547695696516858596394141932626278286521626927384035653705001077977489564749826209126679754828071255220915553784500640569459785426070676372851219375731346750684402283555106169178232657031898073994974257017143509496981554197725029941964614365350613757721004985001179937787457894026372396280586642841293136908213363358250652219324120293316593500666119287180763396000492678417375869554037678688547468421815949071888233153928135018861483652269307056646519778101619957952246054885983964486691331525092611429122244932448319542298328513956103012933030592895295620224692829889559091007572645811502122563363534260548097723836534861212950183504704747399450740181620943027005598976846293257422833448047938860801607060569954050314345140373678763441402865826247496543017775244003559336563223658937165044994849085752215859599552425717624751314366339253185917051918570485038174111827326850077989999680325288551595649001751764001617801857280174176622317990011248024629076804847353848155386662156297365062888074292243719032015335718723889401062600480750393214304349215351517400991034516995789289277094586298946115233465141818926791575627930965098616330101115545141769595347090326323593568441126274007560476382609708185518068654216962140976220082935836268714761319511740551294413037189569130433207692247341162533016842784548301329839812431482338165471865039126433759740498908649158458345699182563582922883258375271015935280072275100277779705747570891985212667202933706524537908311492153261534631921523765118927594967183283124430233903670833772091810771110500523028163138776303433542869427652659880558285797886810471461695970062079392890800867981981716480071388470311113866077547998960202188800704686521735170621084273740715040537021133214030525162138155662813429329555159157581440726249676205378944155467467896853597531392957916446216623858697746331409015694080300630732595601407741469670736917923929613847612726153903986168595365513070851076159839771800889734748326951833070204833331340804708200252560607121372904178958612164156508503890398593551813908882127138807683784248952106917499018718567354043992546837739344900268114421414643072004468007015322531526882104601903424013819813075775875006543677460584710203152139655816100698767547457242856787284436342131414050111283781506778019989303129780539798847440839516803199135864807569884824130635154096556888662020575420411998446158259424087193315712955608059410590060546449447471490029687517058016099954412001260270688080166247413507845940452085217841706792419580431973640041320974001626768322006529615957595662078561019344538283605793816620412629618270227332566164554858203059382115107005093824882611144796734756989840815993398730214341412142190960826536044124047979482302041443689427113517720938652858650489061970364022272360796538513750073583516927533306452175340265903207262164398572425320522668291716647952764365090267015484720495327662418805426489117919839288505255781222694068746610084366040071265596196908906401878261358023640277316837525927530036640556202846822830992120840658881106774071459032657067580244832966900852610986077614010783796641546888969068784246403679184293961707371742054051683827090577859001861039273713676073754926553958162006814882565318632309841159250538247241675745919263338584431386385435240746027672354527724808327048285674496056750106716571771607167285419416669444736692017080781680863752911620270942530952741337576124217803910681912273569660778448754913258187720230658230745714215488458819976164687177955832525944150855613828112463049364952370030754149616928355365968553670576302104303683686345504006799590197921785303125813958949998361611073277366459314360647008028097061891692102306349597676064998163384613987397788297539122357615448634397297478901323506161166167623803652938114176098764290271559662454583582297869809159344284444703136805382797327889549230544240019736188924591612962766787030093151017369405779370209769077333728019259802840292750256251980436131184286455238673364749174288434133827295542144924027280031840679845353183171439312180650072806606570232447291015536830909973647990141960467550982978295634579041792676379383420320706645812803981597137834150773122644531113006838020703352583012507083890956067264619679190072799819736449165235826417396603309316713318668904247613146139320274890090537308620142461734758784298687700414046291082241044421241007557209064366607825480743424750354786690160179465412585486348671624319340210908999632983799249986027155680705286536194285643488466994091819049287939728771106358481939688682039093713405546358127147121838225283845237863192976282310516277752988385079226877850726268924129821855323839412517853881910379221612707296419869541291840871546799024408576140174496789974403303146983602858555098838176064633934899960704027045090567913823063326160198748612333782567572463004883469844357896404016704684005040966974880867479747213453084695671476951589891861775966267562520907148186970770284051952294326321811451980195897835158287043852606413106866721207340636338136463369805604688678694147596949499557958458887330451829997783861805917452140687459625310613997405955645006194207121393440486687754352413750827928172698647788696455050783921564799758698235958462460109024825987425598619439094637435604401111986396432815570292626451896274567212941609077078152158625092611806128994145831440077565956320918042230946063784051531672387309352971934286571914486073521544074287088665968637653255317277376573523209234304823420455823026509681704199520010691986956387220156240190049670381903850535712606993080627446959880821252968989229817132596198842072265538082117612293871841364167215726506529343671166417704005977534051314607824221964215135199615938556430379212343081130390776153263759073497570309882665549039566428656124845255807250992055860536322790135090254591833901091136199215074556056705201259372143907562671212092915239151425670651993652489690758236933209393425652452367409320649923627694798561405469757401459233061700663987859339229225206314100152101223843805398186497515401160198551557319536496782244353945740749599360915425212389176873226617226649588990489423560797642098018272500979143152961083666505319992817134987507676884187682353267500662931040366009665172464390202347559823862925425744775494973692892281538572845008350291476236969209445122444471966292771100423311004832437334418974018943975399445089372411479552778198767181974289320065256419117185781114024815388462193169748857244168245037467256151290422625128093523119134220199308612156886028984892400521356018285319285657489378236723159901712237997457026571028139396075381918715603162331807596176111882866893556325666717591133856037773689365100623487002324864152944292155778886657044218533099802751967511750449153515003969017119215500995735095225555015664640810478040419421045631065856128610048130240378765088905268726860282500698225663865668980685877208983452579203743722323534956314897584068242530338033092252163357526993224066809301642255126792583201499993997997155743236985601206440367303264370916891191232271349477939674351553102336837489015724370616648174106417995987682607198691066810676620784843083276262082352447756470380033512006276218889963417272270035797212396882312116612103039295195687082858566750559513418897370638477358148457800546709778735851671260689875195510936625487221506476073770959246227468832824616370124873785790136032090630608912551994664071671016500409622105694553844802447004584729548844228808756727488896135173407310882008942797419847487145136300027348113978022970813711312932443149621023592230497505494532438625140869821765284144263392958659088811798889966520917592001403163915387845901900884784236706289719437764860539570666843770100899653904417860085320716219152070276878009815033452648880983075250704594630550446635822756092397350508199664906914241356766301244213216386506245073239443487595721149057491599141319714370221682105956468477212552744826831948623979307836425339725879093318209186077425608112102842332465727180561168838744607756051110412673277023144211953801297648678138722935633476459275886064364173134692240143579818650470358954025940675493545299071620507470220712681529477625976980703795920710155134557968943167908300121403783659429931894839507425018459038336343989389063796999253952960552142471604555310957351262545282635848154407180573078393485680335452738071199099763879968111387811301654877922651556008357857085597188132917723206581981116990160871009946186689273784213673634854124647783536633682400273459606004525467765815634178371900714524467783139446357280158675750538521332665332204895125451325679107064762080367104826130559551688450940875448292503071235384332713118662364704810312877990721110190020554714559480787652092966499478164513725555660598365644302721013521102303855995621774333289503357700472069720642699687488008954132948370153894709414142595548048259576895099709415562395914565017891985822824427489088250290837023985504058081560403848624811250483516331759809543581177816920506242899565460943916018966227359214998932351650630751211384474724800137693607011586839513183340929087568768255339653944791138431526766297704841128514138740728645871368104656556131073744973599110557808880653447491669300481134172983712348189816872237905337231813689827785535068452999867825228371091016368109566430074287853574582481470033986965921207694373699547834953458746940853052439107703396338264060885202364349455035289250746814832423208050683869749792940598350139603930878233846569801920512201840483053819702210362045736557141290262468350324098193057457762690357715829496112752032895102791228125376369204707140348311400840527545635982024256959571410256338767394946218208331578155230428516235861405493077503421505450064471476784332341356796251548703830423435217410281265002096340850609918949744255656694495328408401935544545015549884493431467108609796883695797740184346992370795819036233143290149491022776466064764714812379341889289331886716825520388745156235285179059245477745283626548996781603282100488149778551630741314818635556088305222297486697821007641241590441528834188976634585080008250921328496636803239801445340372086335972197685292039661302284742954831019328129525493623178190318415920515974148691212792153256920221172674953631365412030261784278616969861642318764742008223313665089373308723891955057798289268851333308451559458571857592265568695439549837885831925855199310789289283334523709489057107843879474215164636504779371304190177811189108808011914110659382621457495295866419543468117358226745795216948300571600958084208095322815261489102525527262800978526775998492190977908332797443965864086254564228075299006345688545612040657233744877781063141886706180422294873552857931977112753773750291180648382345902385236426123318035525150087698682844728367124993349524087440598450392263209372038596922638034852553152437248900621969365304569882969616153260192667450583703939387464947343225630840416646729371238880039218167230945804943166865748880107940945005853079817651325733313278378174733313176291423647460832176116763993488263466547694751401386480944326271840176735408219667033977841381496585352550088152249605859616456817095553897718423729351460551493929012225528568588558929357744062740059728217185828346679331337676194896322470398992059853931664730831288309701705942077160205280471819580740166492491661491912033625222013084845053563458938893579950066239681232463335810275679375119872112452970683921747673189214572617291691366590973564146303274395349727549463793937980483815234697604767460509094612770743034509774459001210599905208988200194328275327156021779913283805070640492726333942772979365935481797576148588766166760400025092345645725758421984714216463611831392589015327008691499959110894425413605023266727490128167511542038667247736821336940571850383879360106891446882702163609093204978035896934365541239801265713541173182198498832210215633073969538039235168111229315840805955454162062262749591055529052303802343706218440548637250613866688026158969856500832464387137406335217482141972168979935700127867384644560513492463937993855302049423736877758872399534676782383914928995457231323528631329988728532460833478639845627113714054882815004237800633762424285776918572068816222152826765010744609274140075499582605359326633242818413615565018464744293528065023947170239628991954756286398399768627067821910655938117101181864887839509194489553459429559735312871810401944074319715056424111333969785763851970422447339292044895955495271000442741122086517294549813498590366990459623048174411611390227251359882598487889542694312737855195126331166139040067622714429638934819592110568616889957835321216209388149213050945875767704144285913459406439885875248450616194298271167438894369073471067570256377254433355008607013206250946377597544593146960198283263955688642714094106088239624353337839869837151020163998859786726005108347578951718631393346827152717592492043301302693594461755157382060327335156514347886076024755206059362700051842659157668850119668299881937780465240932172975449479458842748964992345301836284460684887817160431988597713841012787135067411682051547107401354418875116503061336248555216188735834342069438439554345771621905329101829082723050404675634150991666638672998945467767700152593367027122105745178721968397792304836207463841912923267228875879485852178707776482688709622550563135884645851272420217000807135569895584966620810626285571509638982086921064945010176346089800336523313788391886118344956293367402629445978989328894621341092390290830618242943926521077570825299129688803369734417203166791282064041237380468267827049161923865880433792318706990678352449313375632947651156223065015628518497700494208133663839359670854746668492681372330069810327222225414216999741991690203999711698619405182094081356554579787029204975371552086270127387727730020668708991058280430875821461755370688345377037958566513020972567604744268161479229740944942674991945725809882344007994788015715252851317966524801841312773135930278525790083667645657278399493401521625717682682815067327481467649564346148911573604740407484271390461045849814052145206562814480605662429281064456163583515813215541762433201681510321834756474352725202783617008976862815583433576838291293853210796303176082711141859355079205902677201713354028385042753371023692556875245814082610877549062210157486399629422358346266104966025304709847424254886664586266019222128144390748869862534109262581972053016243633348313680534460994604411686539376585484409878591731852756972746583760091781872448928183610316099527291517596930697473108492186760438755893920915912739691423099129694886220451421201011622652244827698805710300122701172411150498746918201920102699512533964212640509168779147711859145577734296808363706133813247551411122082020007080066660987090749989039833547915673509003753117825906577016821960713346897123084949157904687030097174901427305820974521567747177800160854632270176700077528300286175677074861778118883392463316722403579377315916774487763708065333009626908501362223481334704462905110837292329900273242480095113350871346744372074816973896703228188015430596937391815520227512203098452669325956797191286154202117422113174914151532022082382754290536976325747383004484507205720334894052806918015567752795934896468058475881119525873291945934257445525836249934448838834453850543492152151814670046661391828099678989631451454556201335688807113964838651661867740226340719218129403110786978482109297512936107398065901494684894699364020596612862592774603051092728785621683896882568939658629122747615697107470548447919799151152515518488465463056729808212201460491999534549656950358139540544458698503061163593559094323808547488045282977339005927905599136836527193436205648831895015791890206472150834380705157237904038147547411572624585879908141193585725843148506092646191607830784050036127242377811688813596231752494875871959867186175146595347938874160820653601803801363034514059866712680242933257267762997764920863841798266645929285372478438985283341480741857487134232235493030193583568685082936911545828197243520981403583722001904522927319830412477098311248960614440592192853397191278440586013137481467993366143351173874330877045497423007163371652493136244863686240797318492105775619485960639086306142867836900563375691856575318566056620864586821257075867609394463629537734474522533143296214769795424059578416021756883832772649673058301108209446731543039633345622249469041815276627182970362076459270473380078089121446648171992617935393968466766698298651808960110778958548773036724823940811177069292946387749145672719380561352411296912805648374768717988828095397942352822723003326851194229888955882879957079651970390666646189136557378868111978705231329834313716995014394397197189991576738595073111264654549327759856795999722684624953503657724437328501453010948658447484565585478958203866931406895230186370947779318464857073942932025290026975705115109457266863394692241001679474740665834832648057171192883019618696587322779070641734772050331537183791408409267671980919915791915226607941273754503277158411494158233056348436672723137445719768735202639461976757813851893284176796299791138772027672135838775931099814038454306037656707766480855800573096394707039687790997860072027218423945977820237042294064520012882084026720390373175287858674294045869859826810944609882166762591735409591467343320124529584666000563769164542681752954859881511712646764952646266419015054517724929097023241701879525785875101539531867978576039343564129016956025758045081187728631791741377816806065586194235383749896702732326717056201599961609920675617497251091417041867828262317940926064219888671708974874030116227745073327329753347451186263812570357196858506776524109814266070810661399674690735901810854717938554697642478384384035552640649849245482903476781593637254867900510789078512359301342241949127021650549010808463997452817511939706709562957841877629380099138601293133258865835454861871879862525524455703003350272276580198648637977829887333163674234421175370805427031528298185900735677323843942443294572415479706850090194424473713734463906254493143615248302441871893137683010574016897370086051551491731876701533076575981652544758503422557895113388571283082662005587240809255384366428389312709925412244469595289408736609769568203782226424102290964999052955623208427260895041174804099218144283320080274394766240859310985644777490961307684689558721014947000914089245998596549038582050336083492038213098500406994117435018171044986562854069021263779252523414267314229849356151920617456697323576994156215946561717699736543894446764646694132804075690824615281091047667123437960261624859334274733524787622880578605909502858061911913429320318906091883675489452943731903856584784621802224872277491205928248181769626883284258596903928196884138854072124669760892461709909533214343371903187147177453183699778936384457136694400379991891454344598221277447173857211830491529002518098818897917273691001495279091805761966591079468723932882024294590403082799412273235305674717523525217252561877102455007450468205908140770980904411649889565050942713275458284178783663014517348129289543747739471093546363869882737642295428525128937443256627005150285509442976136740391805242403961501428083051539489971220124394243094174091603192986582892389947476195805258195426589504548251554865040962113791442409559366947212587664176230558791021784985268762410663765848727032068525008285301145120966445687129113409783607305938944957024397006157609889212411495170042507359573536804845180470680195902736402065420866288397376053810520255987181891235860192705044776894847894128877497771724081545503920973591667513578867422285874377735916801703791810482271018713671928454049115600127482967930338182857494585695952310435169817603299762498712072311904024456078708814631776976995854654696565522885391158857889475485593158376864586795433283047987123937996640299373558675887730690789740827357114403857661569549181213505659174165149788997722589372916988248181150014410263887389481473220274570173143451349517811719293817732319477528412379280010290891770183116745516985458494321505437946097745916936870575500769451385424382224380588450639674667024505831511886035693459630981253801238621408845046914638237146252083900305019732526703315727540545088499394207064372713650576034089048607998922332227776560685622440210120872322917735508757833758277158575652061317227703539292776650844235299176702402506427127452932041084297217865042016586097178530867672801265752016465179760060936760440119671731039707180126831347736372575274446288507509461004249617657602798288777860535688061683657554185592763607748230029100556085254366695537306806805356788791382874146073531523029451377412740683931749573041472883949989382940591848306381765134548784104997175371289592045493740596919556319054239808484340122702197552304080357971859624614759163065975368042228585165615878032645342025275637942093164646346732636429187693776466397961951057897574650856106328314778071495616298437838233498597902160024168385270737733186533547229851731644507923199655520543741434186306496426493596735994872716380304649865969642197734521589860301449175809624510480482970935966796205148509115013114035037750489554106981078106348573858487537211819470619938233069984666483790085901184024319034328625694232447810637455008676415285914273679364375215668656094935090114111910743281628183365992362801673455576541584381307522171685546362797046783241827729842709135077876560259866180907942205263857328570824872841631631204508586096659059430744991525281558097704428965281221542631332430616659615189379290524302675257543223221879097906721873167196744676864716503882289805802951826216755037056563737538600159318347684642011804248302753111379079719285798478407044298645096602215406690621404942724494840063886696223697420919009963251073467444421631022881007764313905101666121604999835773665983222948749937700779978359959226022017330869258686324521798458323570653212674030213718627738303063063474657715966105460370599209203120229292574062499440211410919315404649446501364684515187828713435494866755553364935535825299122206451878460733081846469844815264202043568547533339943392583704221596761259342621292407104039552161422908711957840808864476934368221575335970074597381739454149279384472128323525934214601606711147414930669150196664263154763149906443244447376689547225962907176576238403333179879184123032033901015766945666343505196200104044080493198546146065719235890329789117782470163455456879684333857349605797913882672360727281075850858474973635049372192283175851242299741801234974481578943870132501089583072758587401996749474493196407744248550725016471958466930772987823245982476312331538399329711782168578595548204347533360059898970627117473847290651398921904357693226734673605389284030912141506598066875293625229783097537136108383943173287571869169290378922288528072047155179311305799154321880492985237469046065792109794223491651796139501656888315751000906500772083672875775884671931457489246819586756720758478931983119892731957675893311972302101830088148076730793714320958507146793331625861488045675696788816854632170023329942791638029693656215758100136554050942124286059501875918505452552848227952639084631186693753656546810016744756484135692266539774189198403044631651405546960808319028336725254623819090259551566808656220473533006792755423162471677322448616868294291060442938950050129894450637467226323184405426603370549030740185878769691808799112061498882024933027246569000982991893232330020950423029487013258022808905207172647576217573973925704624888272519671450957340796416855707777638022485317292087336580673908089030326101674860058022298182644610215430406693060533455714567162562087224496044397540796194762873944561657364962144826536294010835727420425109557172018886881471312511268676227293630026561687894816154987131345739884432350653370871087122889455520725792846727247099622308237789562694270977127863536066116627407261377080716550017874591099735214291839090715682626450768174406764230737187367673189400779461541348111979129413043035184929081527995992799883684689951977340047889298107852996033868374219721654285640339328481097455623887175825852264949561315656873821561410339671801864291762367951206095173749896072235130807964937126536159135034374251935958168264234232158676958136556656278832642809659283054290464494628724969937287527951736104911034795310841104785568542771496935688072876226247578766788703261526353298252901180282132782270940262160751540750742719771338326125192551530250744863276606156695945570789289259549423406418058618028616978161224040918996562322087651039359700846024474233794665855898923771890206620659557534243067398811903109837292237431844848731416692134209583917094208528112794833860760392140834549240470880245208560371909235607012852947910062524689167216799518015066587282256693459468934785610248233893819958791018566009531511083901198245545250210600606100530027851230958806368376978299548904475065102884518470731043793428236312544163298697021387195673034847255373544007815409133539833146160564712297603812157802040703473503235700082600732230089698994299087787828328196249739855661352427171861353265676050868250324035335347924929815622433755050693462459856405824107910261483123281078116273714384845151146577135598851474895368251233149503149380339677151747889274165195084235603244164494593040157082760438322457729149027728847910097052449703794861347242942952420859726517888039149809055533520389235148930333549840612624968038487508624950218599579864594594028015241750303407220571943354397830626628596360370414377490728779517147188904512169739453081769561186382056590611370945789965602392135661215425347444265019464471437447877961723477364489366051243279516346789666656030423407936476136130415395397454511637455848104638736611565754090997796364145880082131627298226066480369431334405766100632983066321010270101977763583226414785382360951774440237110967148477172575405357878536864981641973877697121705212453584389372532428820114253276494352992565548170505873344161464582003750279011014136153946127405894709007001468556941824029716986937633371066387192151605174989087592910872842391578833600443185096998446085061973214022277676502230625842905177918363439463112689584542566342727095390309178545180129004006235018569184934929542718706126396023799532294983343615290030839952118849286614383845816173413285083987269181639273391023171825367247559076479235294120275726362810730623837698786665825161005908675592071132028020526994343839739164820670999840444236796173554391034334981405500630642115026955474045498058672232852917467851114239599639907762334291576845191863767549367833351898888460577151144994459574130672955717962456452241654640745628649840555403732837849406807752748641704740933237242714624959364296883840469531813705301984736225476500886553433644189584732347146674386322800969887064906737268262225211474473447487313062113065631839724692520735423470689432107577929054750983013303898334495950957757578761255212799269558940343597894613067643218242434751112064148645565046458664320036275243029728245951747523307592726213778075382648916320676234260877921716383380650140087390393551743776485110204408198655399332168294086900221087070326153073195452012939000886957742076324777046944103018196130619939534679931449485942099657470555388133922218480032792377787399846947846846395873379553634283844236383749402997240521220753200874717630050057406294829221606482999940953455024203694491591951728712053412395840457879119006363503391097042256100977169877772657588861518286403437766808698333503614501128716240676612274015570844716299401141794429374784473901270308588165805501520342810176835257281236743976176281144351655273740774232460237311503563055038274016557679931449403246374013180078767422296088104323062772309164144478084474420927781393841165895414756490643124958919464836857383425263370054685590572426956512470238306829137119964951888176644250959744069984059092288765641534773662401407955527135222320782996940737951403514186484153873739574549191197269700606503363420498848807748893983132169046740660093368034764137461859340117091770044481143497480366061403534855273201814106020445874518389723053945449721532755551774324392279823484089776523240063315571501551274367541213215033985548964074114434607014483869487508916366908134669382327483085352804351735691212661093962971300910842295843675387301292469794012607612783100295296285793362545875323501799185392373398450121966970872022587286785437543479196051717243986881387385416425282603268257763475954337729802464994708428724016479006745906988844941507372337175660103312613912809239779355106078013634809005152579910038201130111530028003519921168825376193094063784620155890886603778775937158131763430100637496877644492587757113748752570884823723384617034284149558736161721776797533299164058661302548417460192769354280809983656743622205511951504252827131651094507227408317488249897867500779140922324411917766194860203383336128651510862106511467087653851921372130870147697402005899031523220100130992383167645427539880511552311729198668286058711572503114389772892548514524398915717410931352235302046626695765565085252724304661719735119924515417726353247601055077505862136807745681315266982866735764363064140201094712784052375821415525824013603373640125695086766380607491300453557611719049840464394194794924328125787414366803568322204578895959959974963283234805475634074209166342151014890479330522966868442054029791977850482406827115474963448336263911902006083376470560268105704503529239452501989740542704518510234019296365982824204406406899806391868301164536831295344232631724656905363827635357525458809270884948629598483750043197365396288056804510249437265248470382023459228770857174548555178915843175460088984302239235240569108937040516803077568364113453619913134827083999180220587609903893176660028117332502769733261007740662987184635225878978567546808497845754297533110687793650951835605805441528622682102363096281631532066178913211552660780120292693092211390433318091945546360243643145971766003913058208050488978275800799597525401642065931714364992830021014906030348888942426221308091212375391376979830164025233891338584536576760882385839834960891361954669977730195757492886197241650629305489546351705125716342206985589047164709430375137392106756958378233165844955536237674956242989268931881758241955270310472062132904962845307452138945824862663877754877423271227113658272173804281264363592188257372552504143292380872858073599828696027581032863636581482032671992474739219409262975775207510781093921775939093774041358921042713833570561648169858180900651147488280534336618000538940695050052301238281629416328040971900289638351347874596300504799330019086954727444615560402339690772073600232786273566034857301630083902252743046938092917858681570399041741634626916124179693492372166030218165735383048823133261183865263789611783583717707492885500388018862816735588862897019363311575944973074752124059785651677997039667802167213287739913461880886633845399048308044294205014183705041601149130972630415804914157818279209913509305097422472622865252991667560351490368147645596702740822094631768351316018907999624133050469579530082132770000128830273865040475768634431672722320833260651359781073850456255562054488252152482801933717212200404677534130714081711425089203826934228844281546881383878472445094426259071200462704493280670026159348752427159853807680846848863304385594062138391229446584518578948993724621075086891445502773823316525274810176946371608020833449599513071432309357655309123180267667806352027082586269976814903094103648291915289732647141787717891935772821373239911747256442333616776935081497856323445871676488991543445612326994226305452015350964999180796870174521644102330661268420359068169643980710289643217758940171831608821538729844277985986409456316295695649880289624589666741397595681268493118105537314289627169929630919531129387356525679308265027085217569453043220326763991844033539975498472149090930080481690378596845710907547075081660821973469332789169180571655335611054595744031622627274287297998454923389274807272206202287162498799669104135714813577919787503332833231841098582465498767935854846693180882261838544938330654277410424101419285723258040036964002564294468262370557743178920741740307744958644284261802674779240703090912991521432002314662013202947152083940599633206015154796862623920891818529289069495372311341629449161158100358467987038054096555928792582336091533640863367431875530522876674956201302955046302113923807956882959974553554498768669686594042359846793367937311009208711805978801818272077920053883165015362721940480835377741715000927042406547998557478723309661782780345469411609180317800704655610061310477695789153218195980832832857625994697009648428072586779652922748009653732110878786621659220917569615993211859257980915465460901169868564408843232333921513408237142459101272598004636884635690764204679742833592273026706995453875842217775959120502956912415574034761579989445555393214836660547830549231261167687194035225011651786906695792189746272050777608693054929244429196634849459780939377659509726322352472191163205017721418549911953424862413666473347876451718534126907497614959842905142471460541939001751085990010232645424510257572937718796583582468818571686876165673420813966434027780471563764898947060517369152371044603928918529194658275819150888487080864180848495847173535737208738132069659104064915874359506304754519775769144826121152551782693376957542123879786829661443575792433892288212778739838622537873618146811643375651101595645618927712119968470431856268211272116596840676212448137220873456713499704499092099243193926204242388041408832224682499266772441952660764893396048490110130718463831844567146061169768024337807271526662912324269371133847386656276510142209667499568238504773567491649646859509210342759832145215176960019289440927967098580841048411930362527536938896203143031247096916412851730922858443876383113089967401207638015598683582542835944783410785490933836907113917356468358623245508302100748518881856336405285719358684635905898002703069234338594387529171874481045982361374856298144118598044520191850933191396350638817131086834230566871998955868243375607248806082265868613777292154984735609101803315193125846524953103710193679208739616168265072691464937711184538668996424103812902029805021147668867926086927376047158650249918746060745255332726333939832157834231175628469557764290190506784602821066008060349353246092601023582504682976611586471967334395182613020187382234780166934392648179900808170310376220265271288480355334157917326388232006193629679917376395285462928707371703256862882686760412782584206910483237191856120290321827657890142791446243034985051759897259783232313703804615975650089643332206943225720610673327978100795095050092180664825959323687872230196286160270252445141602040196903031772706339327646112910460129136211275083687229916746929388051042514586854379786452176388316837724082985262868974281714878976157587420542973854744138687506327941461861926991659982284345912787937847666785079932827016767202355416849573731336823912146262456346298397961016187973198837327774836824275471666424523363387242539314061743108703808913424463687249851904206371095464996944445928815278936261875731070435069211419134259360530341395498054603636859678760295867355318619195510051458206352763023973558307243379082791959016156884704449959429936589463889053962788880510466354375538134193405080975091042029511985352129330830511707906658060357977306796827213045059384956705407029463840955202244257723060848470962197375631928305271580810449300240598986192733943350495280063955048767305596177128400004661976005472396785697296351904658880014967251800559397365911487706822966852085603931161336311463659206625611047647965460641572196623941749343762088474871293035932530701346357464969449731873947079298370495907463515573474328320386937578289750151695289939818899531768912791325080201545696013794413659453250172636356500663305649117985705326383248095901226208443521693969179079977018993217369641277412112834124837424454751618876281615778045008777481525092832530494651277358845149536585980116660763218117705628541144156461515890406736899469620967993210296667564523199274743817888248099304998676737496141488215035927124323621092204958651532584213424638896922437642517468063222019544056205831108705256655181040323766514167989591278964757699625686340505092458467966002162154882558469952544727077657049503123862252570405443726090523330266274187388741760378787642963503027451696168960689731606910442632631737855092293176379956534274794966396345271012931436261555714504773837356405647353294576226371821082217718618826008065180464696267553582772601483941699227979390118712013862774667999553374393418427577317373639467495783481014881560424029986370582191903270229176390687246851341230445702324801927180850419669114518150354034070191748321150030377617841905112393877709634290669662470610663731885276171968771224393897619124699870468941573552260014327437114060452493716844193100477152363536081775761102629641363727373687003858301041362619011460085396081769531808683338480254973276721348131470405053173505050531143060946400281362719989132592080446850883709272703263009577582067959972542398652799929739868803722044878697642214777403082100317506584553917630715690440950096563362562899276197258295739843656103520791236285543300425930172095516139099004485374109597130343486834813768221111767920946172822624689590772190403277437251488835945057924052071972066975222423802274827851887185189258607187687925818987694718452266744599925537257586340253836236683768901873600068998143890619848278359333889286821952409282808259177119491685697259503283566052614746324669595651043769609935877108344214713531071180036374552857617660860231769243856866730732647287137601405864227412502640047367917198330973059861356130243904633005690548595898498381180988094975138205462732121498974249314615698564899774789476994481684986180120777031101362539225614884505958781602456910562082586902632490426315700010242185410472318150155622370762116718879063581268084494814682427333708847919895714139225329288888504491463901022388578451366882858301638588709178322911324364484511826856838743304226558485257693619560418912702520429404094741883699358784419608611954619005573768886861432052826984988050434506123990656308320641210033572309455782416618478771318141615987947233861340446701608794493768517610884697592167761386149436721819823878989970021603184613650353721026289266104234688597473308546990027209768287316271378713109757696706886211341288796579958792084063376303641709795256630300444310839737610719673255971680059009461631990306115475670818388592469190315257283986133681464298755119372595836860661744266645154898407934821399129594842951383797950968310509753435360134124882309156173613543269886937653653933812449545582293402899502316995580517057299433630283475901185460965113756440137617243022940489495615271855629142673995502525425415000464841373484146362159459969976331448100087973009584748296770412245768494499882581378448078956613877116091492149584886522823388271927275815696953761233719154066041208412514037236803509759591775442332827041046535481028898822982520890108158399670656197446757506585283004789863635944250169453072143373740616010296143508063269787756088507088592990082402620557549035971306840977584303574772567125215606075610763700034109400516592845908874115899931576983821173766687302692679219856030845279682903413780563782695349398040639397049336283369752213672016868462340748724613413974679748953465052952700292596123540939885592388581741605587995666190259630986963290919955850986426186332129879415565346867599272577367476214518842247828153261261912251723577100161708883763011225608232440129524925567914273205914229402023917307721867702410529159735806971498783088590961681596388621304902213859221666931675349235411494208852991785294554092839711334450454381308067986802698964238466933400221920883669960534206131845850617437418845480268178445175317186837597492459308516091474058995984822921140838965223925266524370305653474342618461015196003767741875752182571667440382894087192456927118780180289542646991635773659470495438169712191653392601255739055262974778069998533127277698495404085115018032063994769544005186261106702911112473656137152174901915281075083059569933741541779635199395892521908283130168407757038652160906599857970353648940146582774100545387200613240755661992510434688470701619415615524235200797471271659413535667592111922257229083909092093388483829517987292137704997380901045919530308669537742342337941170257572863482547652758579592429203116079872368528865805970294386478058332046001271429230713613404661178613330694955010922332033876074059174095114127965968210329289722147147569755262875645989388605192728616369363593832944217169996671217780874469591557766992482864699472134307990752026629882164589365209244407935213977014015890472944258554831565263496038215846454696168212028075009903933182394211900017928340119437912181049159625702149980989621540678652910041867226709405681747277105704151860791333847507548691996911073650881640604528092171139051855161506755775277814281343083187671437915174087592680248785293582106855339553882912383976643048619106560071574283474805816776404150092653191575841886811192125266434059473944642987785325287010889658175591581894054615635340962808148798953738769808652349951843835678998140306039875911309010941460057098927905740595295096915157318685620773262074294470478079566026604765128379959070137798763923809972612422813869926479311671281623148580359029403790755831073627686572836967011437332954660998304439043085897712681554398893825142023482363365805458160519351218357925678371266010101059743004976250135801419575812330595779949135919467864988511014180694713133326215715844923399612201621609297501527522355710880588555399555902771964569622821483611289122936861476216486633397741183420960236994619291109676882499469968185883744087005793258181610100711788342189289973854167403701850338506641627810578831196108671082888714650485542954207800286374637447606174680024260525659783912341026973100181216046139765368942022167061546106715855054389143114224557976478101825889834018299404412105582152714910293906070445385765946471909467262455955078355510955775835395842074654503940018174101478416980179673832836114248143007218896493069615846286848116039647634232366595325397946629459113336290495891228174448253580107772598383713564592860813373574945438609528853350446559278337467396057532576969698622409766537567295122541504299796837189068061136546647285488456738212261883991225598220741105558065747721989294472506598494926959999423035127166910997168161062397555560749844348726340455595452887705555086844381662346674477313058305697394682137599642281521192015529873024871689826154088223018056450676957324436532140490412647667251196900313014218871652818747227970568135724192412432153295377443937595657310037422535891339658098593946733958942499830797916191395921803989523289679716620553882770214484795087785652114981737073494014181360735659106096282750741055416563817013596878481057847611871025072216617194972568172987592640953463644870482974165751039908764705643014340490026127967963461506043406168489226085899312152959648218120572038772715599695076539689595111600737362342981781604239253161052300684336174747938991004266121044547707010913871337928136330492184472918209365844423025022980201472120488219712841633406670094441898561070170996269690444543644888757191170406103514767359351487012885949521295654210987284836066221035029832991686275123488492828309180466215267957744465912637438982168739380993572068547124522289249509676100946553527120903656779968383841662933708906322569854710943322509919916808456874255273417024607589189069507896232987993653454943637797429492140973599977438008789473814890614923950172857399071783697810791886059870659214202150741914911219184034728047088757167098293638555200950377848722988820547859960896248060773227357644395868745450408429338175420718190985668164128628010075216512487240225940902445457696669404892148909958980682189175267207020533685698650751258160108084061495638669039615260419455816525245616482476958945797939437051636247038821197490904308436009245272362215142051948285870412247236445286338158216986343350990455867119153256091733846743004532285025985397179286123478176574780282743735578975616551005363243427740337738949867793098317983994518924881528251319186815419312277936837262985401516659911423251313896903047563960413290760045912636088472752071161482716331706860599351399544573583551631993132170082984776145625417928620340971065499611273603515701692841488599907050373393853952842811328223529711785119811285388670348866741584699949441286872650080714371407608852006503160120017562029175546964274697096805671994165571162281134954770996673756434523508742526353116829087771397282610527883742831980683898301172318109809977185920294156811376625710267346235066781954555184714723974713515375643072132491991063178536946863123494622585812235373786694960594913420723177279604470788472409302025525580375117648566354479611187706852727844790264823386270202155678974688207524819774222820922510688093393751463715221534630570394268682242893705930580398993883443420230782164129966833920408191021833545035342591414565053984118489770430959369231123535353783380842928375521794078903773581446352683916315438962905265372185627343166512073178666275542978567545626132369783130608868634424908265958101150210903255409997536216674346718634136452509005100968164747327737191370184238998184760389582264040471862348546403806457608320432450315627872476780536832495910070792230830942758237947133803992453297076337799101059167129289450434576691770976829707660533944265737184567978562635210370863813671802715220569964343493262171259666782891301673260942305862744250339671955944527495948001638462139469928827722602783708002014494191782255195139501828903633134224743444603201157514958390482596458530045700455072863262152426721013149574756089754296008590448443614722517408307919454731779475296116897465995195413297095660799035809010591909415035776452996170651672568766813552143257307260289935903939811435237904003503778412589306155616501560709183402518267901250601294609982113218422630088591522994439351596762094419963062079310025130138385455592317016896793716634101104260888514284361419400865081737262941748903330923573384623491365156472043330618279155003398733762346286483821314641553557310026077656351793520091738959850890987802432715590553206928302501272865584649189960693277027548488867547785063872716444278775954372477251236603584148072537302491075079104594851165852741174717751425077029655150900190858630145700627555803173486651105554074871373421175447220639744946602807343534676436402549138322259117746291351988425974937347953529432762297731375100435993097861889092215458024396529089573899423460821081331348320448253299629227944797795659766460977008293125976851060738599868202266099687317770334056616770421435131653834147841693038576100087488186685490640009367762146812558345098976639404614705712934825611862848742787852253389138815808776555237847530191579677390184638654911538085105516497362756202411052525432491395073548684643519438821626292189276642081167619601913026781523507023476218308121243330507278090338190796516883331341462103452745789086112034332584798918771506100705125153389424015557629637832025960654526884152591179043767311861816890966633835343966506177922638802902303954322116101663820992801254125699704168436583946700654320916173160834924225143052659987406172769264232000055809388474590106225372801127083958265016311711516760464663879900928740642581059214004274028934688264302900942310021116021449294152111973383138307559221510883129302758496838702074527802773200608020480637502923194467061105477448046335405040269602360980661080100614298258280332022377740867235511146541390095734495506133053553221776332826680136699627154449155858944802571993825766986890387414108059013989268235831028927944016561715220987186470002885736627560078646394353906374496256762442272604438197714282361264812693653009278655097989996250814517755218283582596171087019275528227352598846909585408911673776387919712408285036668417116231987821710516193486938474868979949868713475115090173993528541315138624138729178127852351704346545138145441874493403477835247864273552604087500570870155012605423721518963257127886376311826426385677090404500939742732357104078933347369474557662414010310647931729387823288591565729494980027190717592189921148969003169665918811217300832787217667271498251884808826494053304506716585137616615239723908214028301923093415764419825451201311205850952108799229621303273114660352970232909009049190061566477790332961236184933727751509621211234726746263951905334485825578236676828699075687197464769644046614092279056107059055314618841059305214184735451648731795114391688241408724718160354177402326923707440081786080301328070304461715032571144953928923280785758776725113102491343023693215767183964769437929425059757482684210712205376363970534838567136144382025452639030721664654043861794374753343152721537158105206930350286665365894444757161631385667049195085632890734984217949292912581514874498811520206761542036660734738337737518536718222748095010148009433692577178067504729018131641260597040523347547802837156018068109515270914979136088838385344934835286237649952843559244437873763236082524515809434432878490737987069011143327860753765216281084590652183019849347540947338173466514622974634066297814811768879659106771767519183604942664877594790040019824851590275211395502278257986861114828816769192720035141449899034541187303214063709619190582635444120611355808412460661667567713345312783009906061400454887752043729799869220849044178564953541866005966108258629630413014111451840822659428902662043995747878602634998289915665860507777322320289861376734262574982018175590944616106137700820960926796935138096554903196063384768243316885693525830194882206595388053497894764219297995143273363739881122921270762020772714538017427877621655603007817080840850111223286005160964906331560067951453230831000121777299470476976405393141222112444072020496402857574747326892722424924444576568413891206048382328804303276324239989405378370617105542808942618394047292443197279900636327549370813458491218724105601673933380251093106353116626541470274989967937335241955347296649184419573797769088739969799862838847665886740540714168231268631143778662315056504094306658292978266481164078879149575326768915443066261269187621955162401948354167794634873818547008375130372107640598076362978950830268492355651880318809542441983586041799721790004885454705398280994499956452292592685365852834369454093158427267024624462706648697849055454672680728869723074026143912971893366127191237421476399015993474249256448660124779874812826287502912777662195513750992816277392062765081423856393878018938058646673936097516984502644163510442987407474358671668349279772200305922939709477939232159238937808217612773762084290000675725819014407469234827916607466244263370296751360212347224787323512087483243812719239265889630045080238253782889204979384684506814796420022248202345587222836104192106391902213267739003955753134708774822277456727737523543760590645941942013254431709929138860208139038970633264869603383907649022692290077965908558859796354722675925816110989143403028023056623892104654573987718470634290513918482084393529092445785515611098190224301769567369396266654108863388109682054044042426823900273729960351534661585568423367713117407010746926390238069152391181681875690249446889865561123631010724100762647244120750142541387644891115274039532431558168958494534191073044447072214015347581438159900806346154622025801635531761811463918689762562604282725737160543858466282690949296076426521095482745825090418160529799644011923484876053317221816717121702201477123724816974312983711791135712189327983915984745504212039378328547664965345890808493102361623922678022350280099654880323633284467459989169719942946465240083344005944748585946106264499030173889699885756031572661086529334788276730810503838324679062799220397513031180267018332370168769783778815185246337088603533877301223335079637961864939037841264247255352529596885920998289584956921999242108441674278003845528948826482324276204127983795952747710346529367858982558491921674079194069426586620174881830963463417597868847653130551787614025791602856594602494837644602023982035415366425432146287659985709908034142284459489294768281626071172693559824795678230581894310275452581656219426116197896880522185351361397385276392626523766129566853933889772544304249276619452423726961746003092853338536828816862109758523764078521579190419576471718200249072042186718232566060522853415463324440563367828165892167663692397102521545329285778751850459960439823799304093343888731717261536974454545575795875234691297434100191339719175002926216101848624623734003537489186939230159192184743719190383924442442368480204388967860996902142333431110544832478910968029172317474508586136643251584257082074901202002256684460694290725134065518503546445532671658961813135919514768978124353642640899562943467000890376502380372698176856397643403212333876645272008410319459854557712866907827650565599311662581279925393779884470228177275388434506125527690952067650377461907502558875844861360994877211965919944698134105625371696144800232989703140189187329041817903188123838412526368440651566777555586721216178461750877268067299744509307211735882244418564232677134253855672788199997331130765655614729582638054909606531215668032355887741717317943190852108134908972221382567337829354252467448777475363589137043156951716078699763263647069158315138435853171875334674336123775456062826381123250333408703765016435157505737813538018585757276449521381285195133972651404164043017294643108496201131192080082062947046047520136427685984287140547651098962108282198092715143840319327504337410561436860109911765769628114384159689936002689744497439588108914800245938641351217231491923293415399736688267084074314906813062101973077765296454446308206748715246328958162732111248271372770429108979736237397342832933002153956019827309595115519634569294614716779894812254038698637323770424232121737250466543528532711281786810395231601098069442570622037471817535533791292218381155493686249406617307202536657657232875936936425590334308609579269606458138781299442373042043403858023685463530892699393487105610243822768532934138526623205517390715546726755696933220130533207344554353898987780311741782432308843241996122151131369900944207981296369898876766725033413905486415578718757668696119453390079455764984582160846798646842605971319213697564307220983699296396960277896350203333964021418566424110942864279520882733512650017600287895407013714218478307463921861811576839169691726601251368965469710254306396142738048490542852568676134725194683489866180615082607051256012859462410049967414040023332389409734805307065269349499812693037929834387133791304670003063361224699613858914895335971064137148807317237007253541741499101526412155281643970634614888521535854424968404155807122229649166130038481329583285683451891133085095018613844907108406975523333275264575799038700509617870644508412879417160777335772799914944762643818296900985033004739617435835298926748607949231019108335971434796503556382172967946999508219972754721399923202711660865284711572577947948800781715409323043632263513515399217087912657203470145796356347573110711163229070505859812851561622567810821979843600004528841885042699195714219883863626531476144196670716643987515154972264478960205204485256958976148067186955927748323648375969917263826465293267764284686688346514177503446065514354568007853622933597673354872613603646056057470188645826453466072490073666146371138749969911378311075020724907768721495948749168223616590536901842419243807364510228263999731729109269408079600282212137693133564436467075424474133031139603779955016794519370113058957684604832747307297264761848864592193477991608631516774681024522629303479094591200467162639290805622938346204431984347037760633264339487344705721240140357727235167948243414458695872580785994693411207636487027567919500967667067089343431443644422547360359607734492102350255520395444050026983475955492612176657683835832163828569627797374404837528213345064391018792673293641451131091549336412986875307158827612726327843604262300873009594856104306770029482232673337269609427468125103029212431816793596903783741150207147217707013825948707901946903503877201086883357163986952677164322147094370440958089995101933250073631436901360041512882423254392279503058485237909517059217878018220981053074732503462745100560021766506937349586460167198199889679161027051751976070972127151134855869215561116166173483913687434632484458782186574956138120995524691739564991296544069517488101246824603429064429562337818433063362690708414078047833133784532195348403257990717368910141399945306008584953864904877716543461325196639459980733084876929374829009324622644202797671921258775476238909936909265710526794561832899534691091479133536598316248539204690634275953824252369090489908916534171141376918329941924025727922620960608371702667832053218569899076724274965360996579733418826405841102414988174412257950494237641310208077866584105079863505169523646670455888243576170066873327613543540107554296214443122499135184403741153592984386343415986589732819292802353849469609625739269079654747140244965290260294747503682481384862525328370684437416928914353372113050870386319545825732089135656320999304753358171201346736715326608409264640308829325515325559196347239267786951028990566487325714416024798182891028054284779142954772096776411148618139248830448088477460210742795516064337950419891021979656313549481644319312514016239941029298968724980703436783763863286002845773831254497862981466391346184622455685143288445548041913675383600410254469194907022469918253031877505642193755373180418329172818078756397012133622506577026902190337294213711929649429403446086406703723518021832507398648698337495877485123272268252995892290716771490130229191462792956101430802028740628502153329971913974256882614648412233583889963162774266266928791646657182787559434935809685463206921191435782986696220648229492537947603292183994540475336927476685160183982977368680115915298986653743413821669271659415001536001681310640164350950670824521908501964173121914232528607767720339241159690502357031195138383558395399852467200481707810726719665736423962176260650225481136566484976811935644278995485106472928612289881945196218411256516983874055530638552997393017009434979033775967956061274534271749613585296438493633223720249099166468112258804304510246420502658213328834434611785124397526614856632807397439538171273128719871446069565747741425140697738054290401713898496133038174148092927603732219890008698254355967983229096875820299186158987725561078896737931896080730132152093359610692958836784995035539814301919067911901353838060148942244975181189015991703974008616715939105217429068876254797640332606515228871767297441779640947765606845377288487940268385385145319273194093812111301096118040532056180199771042010401890031320406523036993256053412181571534262052959866281071020596002650097253408524564634784861699829301919767451869653097819018326719198133019447702218006310946625816523212527853512379146503648326731724562520738070839583591060525883794950236776955967271881245749285698435102939814494118804377467556766943486572779363383046225513416598445669900033894496498170582111262848469564734482774384288298281845441776208981493270267626648896513257873153159974310448673427303241876743745705135120920209531774384797213728095382876132493811797926712079741342322412547100046507464017833257350178728914263683465748339645881308675318119285468764037706671942902934979089140195342673765502049745561077537909107806666594734255079107057269693349898815632220943322759474389033250789130897814953947508224550396993562036901425634326948339883912206872847813400716601807971374864529778290462715918366596748778725183627397504741423644758279522332515625754993746047028268905148281180312874564323474445111901891871907989074650679120199943696662968558945488051274989631968191402089221583806885530330851359751081618609308164491621384031191871476412446076595986813808105309057819753294977201553030489343289837212095208340459427395952755410385065430176375183760103878881284349856560198716913856545679427372840667124059266281835920800015187802356837492894747092613246245315697441561973919951144393773290293961424759737833092574988612280815924032519100475840755850528173329891187531744438028049856895265074435266569281280667872417858581126403641551271849097562145878628817568370266200898938586512505774740258247544354521733818191963741889275457232548633717997290622848006492060816584500152107598190419366135764871498281626240754461598679676527201696068108663711430330512712939989989080771894182548317809602111637140571284638752104145598096297775431513582472744063260077071466395030740132067937305994913371897155909436109852707825740300292157252850580948964633888339358234577219629558461862737062871619484983810747391184822433757267247909523480782314214254735873223068510282640492016759867332079360137065432417011666307598517706774654496486664565037156003521898727637979747840653002177540417091665382756437085259189190298439758093098796170653596086356605880243376812217256612916764699140942533925077833655997031464231858080292433100972666741019678930830652532744190631088572243077304267947299813989030016053448377616585920948056419891055829706782669799168627280369818650841772959154434209044608272522521215582815680305037510882961984232275580417912221529827463429723944154478068753170035750365168102175621184111980518687867736368853878005111129867494552863177229995491170471408269909006578476255563687967455243523806033533173248817514564840169606331253137211540315824571365066057949007778103901425095391876215815032290682558383646721963362124649680601421601252961557802371381739319597294227876408509148021774781100549532572540533097138510294919667263756916993877833895243287096214372953139693642967182267500295144800587349596170666009264932508224787550522812748463925533994123512835122607757888451628712828756532261511552106746335756945453836223441917292042550682433778852952214705543435848714701005187134991091744761043643899662037244318442487384188500449081120387339270899946900066852683940107513666658645061507292119498793768569978001483304320463347878459421670481358193258740705269856558977201124674081924644111851014971138822873554691856483853420377654894847648320418878351128687367051845438780009399510138269544803947901724219885308581296688834299690112214642295047803308380520836850562873459900252724572368687915957871137566303083798163409042925506459387497854257266785179980617554010453805873068304743155749209907201763937485819989205209395143934674461728998365361072875900904103767210796346375206929128177924141790048788738236337205698263402892300137112576595853127797994463353851696881515341361432817378745549520591147019869137839981356645063326757573989124663174540936682475610307138874934184438360451738931211018927484147989185516742521956330890458012526820703190805973446089757250439360019373269345698540581413528407794744808137397862533096401558921144744849562156891805719064365432595110153399473882526306574383948705327314310595487091299506942743969420169017467959840650372569851561677838955947292676551393405417987134931163982518885919950804366395371279774364338486899130872073482934338908337414572363678688602509586300156766573404135671663456320295984309888225777044086059291717317246384416902310085609047823917647203685408067408050644508963591371583581248288724118416563113623428064258498558471063284766991372786638327395958438594500131601496969927128259913151466346022018365884739951354937584199471015804864794609416364363554642855342198158352688594842273006570056461822864139196207157914382633951420363054884892863361050003423169121435309683788430663414824860813100150545083051783993660874648332390128296846237312523779128011498394390873805108924064898771840616142081494764291221699919222467819000168413459524053532454295792321705891578465622450136285925822137110894259294208189372815664437171543767071934914516182042035236421993627474720548255324653961655661580587589734191266829812259179448563894507579413123168992103252357460301146447524608335332154177058167415473097449739295508663658367243228858292722868700644525921141443010591879126941620777760331161137096339158374862997250360701003173094040275102263319328214042927765961071205060739690196285103511117701685782123223669965651350378170919292174893668025308551104493374767564252982993897684346613462625826151453869542987399423237182635170529942194971202860580328880305061255938348957883573992641192595062741723492812028014019164057900167415108973988859098004433374521386822807669019911620311336067246077116782035992481360508349761752799718091581362450280102345502787859992995163098798476852049865181131742292280234358871842610820548445348394368863627105053538801611845003261635394178505154450774425863390847957140731963843927659195029924419410411469662911869604456058025002226371509414905223958820634599180883402560917865144809410285169692387987500743312323404438775662791581680292349752925878705402935795535911560730150974559741433787575883206167548163384159150279741432179576939384199132955967309513634110394235148848819571441128625110534033330923087464125644572899671315277217820812044683157102433964938558645910348955407354545180878206551668730195852398113672839294308543836083369148787378509309191288763611081931374827659197535167688460982736658495555841887495816583778230969827901072536887477055735835491494287686163267362923220693679694206864805049481047391516411477497361996601340949617615343585472493670675152650601786938187978690098671832210708851386083918189148284412368650816618761621616824636633480063410749129424221491685944538358104961226871552814219746029300946122990719718402378994010890699353880285611008768038827458669400984289054118609576771419469862012442291772329576919351565568878566026191710950208291477943532013714789516373109097858156078049907381331237515253530945156246463794405544784778329755557325300282088932190250047292715988363723197263028597179501880687415534773715238490476613045892505580457512890470550697261088244177179010855114634421211388968217360193275228239130629110167381795082648061019971026309919448361236807473920207864326017372317705293159313559931589647476740063550572532723188123892473080948200610462052403361078995810615870618888739493127117725599123652251891857448225985419191195577963686508803701078105466900653509521601293534471841768680952462319323602377143821435255448364859687716526101624913252813463903560709342977167229472233962112280518894403470747771317002310288052566202671903983292420833968022663893005393119437961922155731515829780141411167766972136670870592712902547706470563727145003499685430212476602000144908486361138297810680502982049084366693341207224405529314484297240597745851388728580531622966874718738783198060514043829760946405064643497893152573906581407517100337513720525575558800623565126353571363997215455111648177879161989218537645593280806484128718963538181806497416459814560073409569703508882777181162366776751576508215304717009696651604921419460351752471172697033058551423462185022016782820174416359663332889308763697800252605453242180395002885109090550459029169185127853067578143791386134623611153500095335248364719973839892835195733496916832709601263133479277273325338596028433756194631560592434448567187262208434526446429161787372437993761713667895976212286081374554528192126315338971168870985426543432451869966499482322384535193681014171010231698051825610700829553092456051835019881142812781112452080232182052160953827654084869210436327449006983631475746312274113401311622094799363362911546557738246697092840809224685623588883992661355010574123039852188246527015520437122976086786747443530686666635947552071625590942233869325635795543811230911772828696212016826973939661652164391554788458107088681784925290833842675596844748243828130823167056761013133294462123268608833481424137999012219421682274480966162969201040665430201974611672271671462119475095270129756195090893365597661537621241183295372179627247937328111956167711814598706596716813474916503110422901863010970877837888811468675493272606393026569055660092752262822026942707163324262046772954962671609836628431904774399486780179472337267067342174637655637552049108664402634864186413927060560180658810030722389518386758219678030658932678665634317838523635730585914486697889895300966630202187798013406446235875425835109106467193337478926946738620155411504420824188834095584561632737585708864285088524666889014106059990454509922570166412354320461944765503159361330565710231188442976816234881457771261431797655594355876772421624433936015332504628430558576574396817381893987736824819821565074899029193943956336585991858922868573129857111139308221274149031492960884812201705995323677484505662456750989627652407119857844957122186722198842507336064443204353892685136122399227590307736733192370714065096011070106701156293882942145490110656406003352201972358109474537103691408077743172563678916660245776647777216220346273084586334905697838167305254747820046563899861472861533510487083621260729545362756290848378813275462835890780909283968971173008297818122557465018400622711555266352407786649128585213768881281678808101337856836541173479974365884695974698072994012743297695530318454800581437031832396185328965562318097128212869125500555637510259895086682086418394112236440464409556702279503971116592761197826780058658751294900231179577149681383617231583200598656195637539014034142479156220537100823127819998615554085001356628697360469708725438565210885311160228924272379677418330904883782044194416149017637152167543342733112521855829721960063140408113952838160542855714908779218708081705073110805461029931532384871032670165296840260191337365961432682627794530951798761607141200727516163621847881181599941386093882344574609623760085333349931324906478560524178652037499113952984736101046260106076862200557127329940146145452538693536625720910083308233595331023865140491242434098987158738635908570722649837713957468506733440166002458477817286655523918539559464239694092603762590736529615606182226222345816623115479888024258644941750330885469932061547701745977965440516406731281086598645486343596852463729594139970347194054645030073434529392181855553092678824820162002447266366400449656145305184106439041674359515583782785974336615710814983136790284633307819937719586085537969608900415925218923588266386871720168917179187553421296326422167859552324600623485886711061582587278730549855880277574402483528527259263526949309078367446695085458447412110411276015907777329230258640972555192962762251247277474858594255005242037567482853207058955195079775697030613820582326669147443260540894834460697712068706066811570478163223414237860086446357493544858977883564645364305857581332423149075982065759034224646611067319658812880167631651711714294916341164889085979629476650750148993916452558019972551231653675393494064161562597749512121324720532489064329112307910767808608603607149590612950642267634075023509935113336245148243960532270654251430029312100868932524590336687839056188291095298266664022342528053666958357968349357616462532397046967805446665944144680107100746746484798692264662756582255822335518062417761930620591810087991487188044949693102589769943079859164763562418792431632437648200276460008101539145407260974618805957864156302265470604035452667374859819518442417346251800015033657730956834181784810969161089483668153397043650646042997966302586783942517824125358334268133774089972292345934060763992989310717790605500889307913659016967759590993489554958059804198070449817856522183699991310312501965724644213540280510210227057845535435657670208912675548901074034632077160189941503136321964065942947598019743704664549403733345813969777588038589740092770901985992447646353584364106032928660651276099113197131441321725184615240008607247020656140259338073658215115720282861676860723017210991627461177546336219807259719758696305403509726819058173736822089945949151281013250081627504092958208163232412463197818438885562222555399937721626383230120814474782625715035410195115388825975309213463223202126373595253052903476473156638438321563713686300745058169625964985794704896188919131301987710989256263567630707897175367357651331779317325480955416309574927252233900667373467227659472217073441742406354239952683789247498192939024087441845064944048603876251668719729341554922235540077111117529883458048677030291480892415477782447754735446438574244164155264211938441832163041950430568814239670479899917956417282639090796542563879983674428615949162969717491844886406964524404119786382592652679615448434201462453657895504716990269712724018713513560778829953293022057212190827871707658791799378249758483289655062239787302050398129753872296972711801449800896828253003225632500656839402330663074211243864058179604554857562788668013079784119655334460034689199365998498318029162713598437085436796033408323987896393798741278475539581134109471373462348294685792096598438913671443189829991230125160987570372495327341695277625502062988273873555921227676089079864621281899322283236379417025228368454162902496005379679553756685172278352911151915927150320959311044784362929081842997122689978019928807827210437762824827902309252727240651649803485353460131294143539808574131998075823280172244116497957523789302869313928812883414404968854439952079985699361897869255744664255613848415014580812435936069378417133134381590032989785964278323022225286625226888581098741266451169598230118099106378949702252058563986371484567516403436732442936579874755075293292234015255559508094218940112225465913686106881572397913138738864760047032819854270350527085774946193087090748379479105059063201602043909767839338640318144309223576986650845511684943584441857554593391938770891314602017373503750120328405123025111798889086565335276917234181826724966806910138026337494293405555377627411767361463965996435762929319721608259016782608092164471165239532427188122309199326868683042025390686016448097977431401714157276073666590897352208608536360974786671321852954589623151584292080259653670580846305368922319120392760631074625443372007369505192848606115642866390497044222809381772477243799558759202058994341408650875157358690607988717258065950822915179295308875080771195554194752439950418677031164182368056840570204254540588532566432224741874445177563170486940833862450307709624779692183885204145965413483290114952402710120611864236610324758481827458231266018837775632441934955561902689279527580999149815592548920900448161830598159198186483673801990814815967267098885778628678886717281448876107046291806281574156217777636674015839880293095476357630319625158987792535201392862816306472418504772000045861523945656180342329512752343449252549541168419811268101066743447279369500772141149967794594122161514873309247555799535262337526563293682739039881297304928372699105231357551238555047291193690860386529620592769656724769162849247920093213209679510115581668800339414605515433901254013876377679690443316673316682576485225208952026258205299984950776335281126706231189308572153778295887056406096192956144823323323834847325323010767941460150353178431870811836166458061616049356809098078506639800393040393190377773663555210724572974180430702942589080472814286915176704466489312872421084680664432474220040333758612265213106358438447348644437216928466003758219730748991940074029425740439846403324393303398231975539032445857301744621780982909509972327948317736471084476564036060233506095073245109895436741036103916047854886815521468223728928231837462232473761150336948539377766588776579517681561477607179954626601504840326388818633266897746820953899116390764959772943180979416508935221954523518149452733142856804794922836314466398213187793027063228755293747636181479277335146267052449135477637233737765324572397532489862892932804280415839106281169102701177558446208918999463047748011643055329776220425688947141480086012877357103599048503731807037943761539904441155201178270163515181883318104822818697127902052196485969281910879237060025484848707392749006548773797152652499202763484108294270690804572695517768375292553078655796385536930404779656221682157934524533527360455980492378452283822881175314704870818741375191129990633129348685565154746637290260671039016299223403767173079712206797137372987226287439609959111098695037444446061320812048229300123842146741412327734924152780037426649578994462680925036151487210305758445160928457728206004495027283503068725683778388521317477532869704645005306188170920003031248196100634978764037308854320310475530153644917268587688290106090063581204461185732125955169976985083211947182270166566344410091915536524755342486350383268206849470873538325324159737980264931349222035594806876008017714485530181475896947200035796838624805806924889199989748204284374983449480553901469942817264141640759108978250301468177881328715064722921797741131192233412819258154370134107693362131846028217990321063476966792620948591932938521294908842574335906952191543712233743013877048905745712349530088617237258876436870771139532718675952110010050856376702387017923128060796463500263507650977732401823831087618248182989876498896523457391668329884049198098625087114084947812025320404087580627708127547568292917811834605531077205064510392090109115111148135730303210863019239635244980848959945083934297440690026535728542887991489562721314372347794577455565367385592670072525045246576076070545471257847997501031572833795518805682592477580836527604998997731875533337434447812913101738191331862352638758269520874188671397748691921029259205369832010357986073115167838747777666228072639713869083307686120136762859588034262340696244041124383127338176188984750208752528005794269930779200659711651685466148908381204416534397309332735779522413568638534795063270662390090391194299055749637593230958716648716757008302494258441748481115458492217682765742943134877756952607902138516910514255440543683015018539595386828099732347302265960026679786333253518345657669880487611419683071681714649404563765811840801518904997609844233658165515691059835090639800270233062031368265230204999079551403394777891853026165693160189695307240844169455357788372659268517934584708264961444878732649579991457474397193780841628936312318728486971939474422751895397129513187085318791657555009797996722768000806281770083344937432995013222823125547925653608861202106185366473455260040597236631566958653575334909318458620075132794903112848350153536521696107731508678328896299535440233640238789030274932019772768336177941829900090441212858721737627236736387561950714157943938837692814606012112248983277629357938376943576641412774082394077777406306649888709940752361312157143368484724496577864638862217803624199200419207152454550586266758548730560163362128988875156465321800072547395766441983099826186903542385546420506663004855658533784234908714872298990535426542896051607126422767450170269125797748395062905677861997492137510196291037408884405736823330336392344078437429200361106114268317183738600973494644642084746940928475686076402298963227671624414968082432647147476455662479709046483739823792561151064093890796463214593816799914208297835736938640025948883411994994764756006724923417515667552535745107274857245485481474927787145464119020826723206326188734537800443400093758073830053807147942267593498941653325196945227170018273149906189541228362100428506066953685889058811241667643348576501620188144604454304281079658495098674742531963565573825912774618614830511905863007104105765869650644045106450519536543107956990075699893112653824570192958266625325388338985162310328634220387476395750242216327660849685644076753349446662258066943390276171319912340350722346144221897195186955916649737269989879681473046660395461631986991737600780989396330962855051417541957982377607812714293399729089136573662348325197272958280376151607403864967718608485370343733203974957071875787162697537068012998688838904559617463016271375625797527919237618968368341896978051274450174142488095045173618599405754761658118448575602285339614634204250818782488553963289118301659899557022333533523439174596899410723602997755316293725561191660891098575284224154075796631711949856245255133399089561777954669922407541588246036778482119672670027793570703667152574628858508527914602873712088855423088381090575339399071140328777600154553722850991521737674186474168319530918865389857724498305287386166610617928738178500452239436210622221466298189594750918612399765935706968635463148393672276002782328580826357573363276575785581675120186575421118178316809411207291433093015305130673013125446690597164658351410967408430526993742802806263363547576627759976147425353703058681117522441923152569463891187831082089713501663564869388604293119280327405415943173202048296879038577517823492730450367569241565872420584488927638125285907010411622900259271841039290772709121582116507083704105980267554625812452925645866243877238895644027747329223408719422299350609988802471154937810559532227609387460276250854861448437897382747982093135346194917175128638889717146514397417405463070371605658735291801803341189005252153324559321287508198327985893744315835028490013243493735952321584308506021079207145496546558010150645478676833099560195231742146410928998050258052792552076943852475858411737442007943155993259835147849025972107098150070643280757458937660744701868723921742712061889723063694565269087574162813802131538427267012024752932648634452751690482424777555024509634353842254362617731310168111354730302857947387470946460840361121958031127925255457248464610988330959808417709041630396115942158461805394973817776292057152059282654687590933324951650595094242845807047739788068251360471640940093964975400660205529636139637029663134045482222206208054988734636702463596095603968376047964106025502011398021660030714201209366335479131319059263838853907195556969403771481013657307961218856392285858482486259090904158765672527232357115485488659473306754944961482319014932264432678589269456604728568043171031363952116054743202806405170706898808302416891431356017337535363000000214166493472601433488307537727733018480851208482996722041516506577692174068711748442056990988562922562793414865040448553090798564785049708032612991544874193190943774765748489777712964257207489497202424691234217776058836221334190573465336202832243430958938538185990297965034783917124836148447240412034263901893302636688857214250036155505895384143199728338157655795916191341055268672990183939554542950693732534990171059134357736964810313073088075958991742726476789589510358168357624591127640091721499412409928893386175770313126175319435537728818985856642275510809656822850806528809874692491288379424044233519169360184617219330159319987059381260282495272274000192169933386667404668656586732504561424467112153548856771793390072742986909578181784833212223628034911856381276044065312530705203761881138217335580897293007642862994445742480304385800765247870369268931600611170634434025796818909031681985105581908617709644191109012826933853179398576319561625198722449580654190111766852832535012744763586637286071539408004992861555856127673837832937916779451311122539583772989882048521096231237524574208855233873057876297841346962338424770607977816794822182303784558896576716423526964913754727483445806383214225308734309949158378726634978135060194718339494191760924462887672798526054022472741614166518205413933005689075865431814202999406232671070909227777083049230359979414562194338970738601139595519062275768150592909883128466857439469151291373557508896293528048859612556241503877158565283804824818154282137343549359599574481192532792289664707181346639826294101705935795902221744240914431533641397498591109628733374630129663361781118639481107376074042413423616265888515526149104005374928237076975886352107611422754111609243990121856538845136467201793106365209937825895001091647832249239386718944375864807013476536322473750760412860972434831189830479945310229094144798208789060406549037123972126188781144060093989533538299813026076681263049594030194312202242996052648246594135718380087884133220007313338611659092756551640524676977032607546515141873394717428616314023459945745118032191841815644706745910897894145919706593756869811449142200231688610294797425978406805694758123872304576349596294012246516546332072967398814288457861253434809307205595350969589089917109820575416099705973854410245657240739417149271131628049738330455641451827778376268172739906696106752127999581831072637971890682600645663857492283502949029159425847867622823834686536410011807862648677857838513715067702212385203154493485882872089682758597804404932881149176525961586935871952320585217864789259547655639622153084372146419943966946393495056104997400896790295252987405562801981443463215064874219471214221980861385750327914637331590467556643875406303768504690719149077471891223581414431305312126618384769408471989074448858271404500201653087931877925615948624561783112957052591751089390101648789593934425234649301590166394275709276313986841925919593608133106007942614721982395086357817134445918960469103365863250475445601182114434051359074386392235353198492052075036680939224020024061669446589409508237931492826937170355245694428797426686297052050523370556022816188136821958782630213235191110968651662469707613877353434281477751808726268056250269532316757313652097772194369397300987206222655677447314372919117188112250379806708190055097138991540296384945416894343425363535800895530798990862696654752416619756927923969723407736932914530516735300783945556938251777568864959231075290161531893810992347586074254454250782365429307575592722342395037479265701650439137423791302657333102260314845035030978083200853991232776581528533330015491549053063027640426680884630392040871075832304902158852698166509792994323692538639591353244888329278886738179724205469044382963923547085876840297201119985730060166091855538044425657108000185049993801187445999203841543536590550911859247004428730430943560791277845535918551647015120773382373732316394199443854898202137516168066591496699694363357784317779211228368192694681013414068261184552312977132350165734427701929709932733808864887589836560763194168774791762190593789865643157085942641575302573889705623565686629637587108369377925713872393083134119492028381431443647770875186665195619831666672574661854834235848242487901751954536194283233971422340391861392866180252140460140347952455118490165189004276119604282967442719261210994906930268055877910988560414758842656225320851167786153151099145477865681734271717126637670447703093246511204981174468013956809643376589797793112039898164437137170391622760034629735340090238990510733105718463509909261991893909033391326870223895183739133290642957295189248757296368776141891216933714165385908825645534357662543683821670875360398286658316495739531733548212931634025899362032280366934053488741377311967646072870319784351283696985883192930422260867702422538811170236775318654781754791463135147146543180023060362832679089803811746101546906287936125647546857840219182649603966584042769040333209122827644675111302358145680281569341362470310398107397591287718146856899332819852134662668800546530253671144444656807628736270130078915863656539866829536359948246189793414402864323754785127761172132674747137712043669874778435093114772400375252808858783103956456546413483156746995419553208486192969621244088096255706246112166995571420697396174277355428799558357908848761544632649799573801648371202455853968778014275780030960886003103862053752957764691868206997836770280411551074683438668574016319758590762305498342135696345102160821336473229615171104502611655241897025600115917973599069136077582248145910162630564393648429318758750703509902877519613554318439287143776415914886647066945368916343039770485246993689705372520375229503839926576408722420978327907163926971900357889658298088184598277851503103744431622904898210928154201019069068713978465389797150058116536907090203843037751648713704268303934100224679640932629225297122838461656603609842340089026038639593338782431695059897363934522977567696644940293877109473873347543329932956729820098337407424922238572730930135792030375188996712814311481780458666977438091519969845016660423724526630575496968228104273634500837511156298489724305410919572486365644398372391428375493052002287547283381338453220512359370055019822014137743734232902814683039597340059933432132712200201726381569628381477550174800049757669440173317925896241276265034012535284746407867273088616018060283705155061929143437024264891911573622812452736524459626280773939714747750001533482467909399892372492306070035721158742183531323498273989885795647874468478306529617480239643642740004732903186357590809227164232706377609476826954712493488092689634000682405800795713961749728578456599036274707280442327844670401774431425312816864557259716458743592258144219631576100718074676138867499220158944893558189943359854187207612858086357931301553875615653234894656457480441555009270888977556921620670538853631042100390851280127547912440432891273895955887034162903670591142764853237001298093481856404261482064428470493752586031222641063405143230794617761754759220544331938017670163428166443989395546783463889211897227508882105159186933668275523980727041603756216156108252523278844643757733784605883178441179845350381873557428795768267933035127392186881143957706513870455671899606041480907358467449940711903062345405098261883237532944672586744861129617335183769008588300997575005898640805389593368706791063202529008735703742045872831671896614571252247045039670522905260630278041256535780836978959762190718832068193966524193913861029119737504146259060719902979991431861534638730539657563999366424776120195606450018467461257845028941917547727280342811602978822725154497142984002085201516011671165877430070007931582865851800309847518456076393656134803075707897528019129042339775044833854174423524075180739123502775611680582386444827789117050458773926461711037072588349562100644072988427532496811877446801273868752865705075457114661914905127317659228062279952351036481083508948003681310823727890640551635390345437627623380893095845808923868621503848571665950961025825325261001328232116838178964539857752603049809899531885072873369946699964367955115885609995407932528102929308878950344854752456480191387976951988612190239375868975004254275599823684684063352337069871014841749306938781207858720892792591992911716567930500202026644117914598576843685360761663593715106378961495109146293290745953062739120034607323702683107898739680603963251063444086711969435237675497266686395128500769285868510265150965032752938673244345494346069121669983576724360501095592704186899315589239629589737801533996303469138471588803896430377054918848461007470641059373376273931678882321063113897352047510249493304511188014304629510038913546294066957603744563467071448553205446128114394272525816746034945351838674864690167895636223295557933172357314798026768973087731523353217473630921749953866018994801572153417128292981971630341712556086774745305498228781650004403856789137087955618966364989920435387679085368207983393005190563051478524651977577010762804322053104393267452851536925928201936593094125730901781361030943707937297815340498944444365589614883281214331169165109770860392656251980083834835086687531049705583694355575276832047391378997514317385394583238204436711376022821072742702653277618179126410095540807976532395620889943922157282783931233983566874879057335324535013630523448391591534740713475579401904276108236945673905896578809931525211789087903351148488705689483980889191570754104275454607609701594073545527010332458425869808497782292519699190894605830776683029297483608559614328716109856950415530792073622036290537534201649850183895668982365612339005307777991219483175175183197739543566793560743943008434936858160141781836074681355791831205546308266364554494382967799018697008927322067101265040912097786271888277906693441193272872574847694747303944977172955359435997339154464911515554997432463885512169395286770192394892940171106568383368986444795175807022801186614362949226934391146360319016048951898382167162847618673205026913777001413249799641012550399213776668288954960706255860665627067278615450575091297487056972035419192901376847751153915589624562438073525983049943102648108047053866406605909469181739835018766575625219872866361577400464964045835008399240145880372674852318543199886983864280925258352754035185945869881163970740998480801544629768634448274525148444248207913952289914052106999432298656031165073594970923508299162654795207716715228798941843822571804678837608523429049663978488190168068195097375511486590035137932550120391066309177992250666168600577250051537833944145379566118505123365669927492291270782783426514021429236512826933850951721140132483564061249661061398570563789355447379143350634536351626788597535009405846071644768448829441084211140738877207784811752145002120962465180214618083259108696926187990825031110916657969859622823103683802330493239746273537849706654431455671214574140416825841559840577622521807466496892468478666877239660932449578101764555750991058084194463711180401942309787929473350763530863077983595401745360766346170374554905776377994107913903179691936901936771232449911773968626366960704652240197021111494883380602078202050865975336579763018876297679988136455796536554832265237323216385860388533856988793579981605042072028535676957923823177505123147477923637660801639751465172060748942911139319779520239780278473035234797597963776329784384096569762685913090540510610545812145619025651195067885154765170137690845928123197482070333389732363649813056987974213881634456111356701697318910188445753060655042962931692139621207497833575452323091119397358153829295615560906795745211100905181878188007261433408560208542884740030987553130030204966703275747086123100214204885021697787722742299684250226670741369661739597434038524390390162431387534901299088772355255586927053593482762947498135576980014271906331504155996562023613888854086441495683346875338182604617875646716739383421719471185616641777245652322744466700817213727762284430110870653138876288601194247604396751357924693974139180869889267526518295167467995129476104707137429487162442476340111062659792157887942834669707645890857893331173849134552080221950482957681541675732501882173228277362495223732883026469716590943609464627955231411971086013726446524082249777986728353459529328909186131006230569077286029392586391054894278753851375771533166392180003844659426579082588744168914045551380166477626491363575480583031874553703989280474053787936972399911848159403903677480664254878114555706853842252203384932283562702907802158071608760575273980455845540653973215030995024337375523848921000418795606929917809856166157356927151844384300028847348773269111419467801436731239595620606635224324642134872926272533267182399575025648063205502551200337264347326994123171521415302149122503077487284642714795646793761438908773267603367405889521857606764974726614395762353264775754652641216597347062455122557862291786555420825029817082430082332164837414930092235377298999850725064923895849336264871592038939385334441822260283118246277580398197879040899050957947799132832510644969509670710903377678606946654369819296167797101990217738156344240077544182063949164209423083906273839776664389713508574834279537609324947754755969484933991351544941865536111255623954468425529120190794531883303914090890297855861151923619721485574029867287252546501827704056725326129974920127037215375656739595188835839318683662164540628512424296261273549701655250403190832992920117378264307832832440484592086737921696858600065372482159111460905726527684464149637847215561545356965325468562572294267986599395225315065252673962879374671501986005349654200041681903381468766351509698388437623919926975418277289844927673018952681624475936747847005072149326756659465653045238286705920647392334911843047658946871759631258816589777919290650144650072169405297996700469741117155710068899141826967826096025529982415431709957363591138971167278383145244252287617623445190217747506305203451096360032782534424744215037914908955911240100110272586317465773957239323797555716703755598454825062322209908832156482311277811957849029586933919989926416344407408435974676376616380630263747475146467017531610746817891311368409572363011876441149524771078434420980479962728696002919254299378595027379113930474551294549102631093857735965204335061643888431696958488384184031510859856271111819512904319228187559380292297656926026173068277940266943057678698454733585898551334879899096701410600503993571958412029051226120262691206516488871712601131199893774685461984650065407334001248859003123982539474838777930522439743532499409363931663548518780948039958390020623770315034912010616982254485404278593575161058955268415565662249784697499109480576580141385162911601181276554077974511433739759638360646932841326013293722694480801409120106294054400024250134591222657659410127886785653048017024619722868681960357236688004743588048926865657792911586249515107760656918507693967006743818338221002803556028306368512752341921409851734647658727529691604758525822181519148428664517213619811447142599195069250239497401265920975275776999880691599949388631216678150902422320731700241850229852168723806467107338374728869615439460081527467746778474881535966878811604454424173613867727405367845652626633351478304116454721708769863743488632923625444339843514908171882451723727806003577637413843039514575214856183251200205976572751246024857475496563424317952958445297370010782824967446595344643034454683409784047365595239046394852559167614108608742563487796439381186176057756165960320544237388392942815008721597155951330184354736673706595406970986627472914771297154589723184727340056346915433641318805622926746869146134878652472518801732263633553693601385072082127429446460180686675076327852036721117430750799103457290467635925788988817646526217146064829472208904176651899069967416421839426805962270294924515393135593572723633417328892750062013494252938656973956087529782406409891505628934160844691370375874901116713477270821349088193794000545932380647934383292106820250459463490725487378981178225496625207502679294905575336736124209506561041550055742200298030668464714010476948621478295054861532717792495325858676947107945505339357079075057467219746768730778928139142845665752200186642628183894483674459761980451089911232365216914389182431818658132798960961696050463519217257342494732846903657523768052279441548120495615664552881034431417762940710014928742399999536103991560328017977611150824673343281131543480541818009211089384963202643715029908618295946499463526926786085210445125206471689705047257474597305928982114369026424317175595690420603091618229988935984341793309132878988056620367709040163357610183679008008104380215447253246618725194591266468858985403982382506850408634769034021272075740526237779162778364211497728141136778145670997778397082244626970250849512365852944302689171322253818404243012918252410838540299536967794891711230231084371052803839645547938099896359918631180537288910417646899321646782861101545726978181347322345447696686014158967195339544115565073777973052600367757977219811081211473048629210894096342339998557171314106631083282546473885422666997858266033628851361535290946149282013993005925211555996402653897448568032285237767027646906534928415348392629606680771541049211634499067503238502975087987559632778515275863245315128947774706939360261203392468689428928770364961061385732443404204517807445101961652918084501462402897780491238669821330007560267619175687369135406578804351821843667234380276334582639001371176206451684735267857358572078337443982096414907981505765328560637230244959046458464319764623311809624855379529229207055668522793204515010280868677592492246149363133863487966233329718434890111387575319662878539462266447699371812718558978133194244171287781827688499670731694350786871889426403258357993820621444408224190552139931080523803776323072189306347200433391890359018816609048283972884194125173072151956696626989454230766131169551088770783134142250563002399658238297589722625056766067970024606075378986454660050875815654857644827900806637869245182902440348762892561995861232508519559882184554612712278122904040489168151890150257262332603468337667122681635672194095844208617510345344758006749091408304460567987434184627078751389998162272745450945759393201692916495688679975237343429686061620198256908904030016811673567004989646782544259558376370277290728604132380035643751892420454439948888123203097929603212784064494815855473439073890277733556336462625227697261782314739745949210166373377213950625871559909081021053290539187866782305798479771143316344392716833905729767893366100474244784264862164537286423538939959203592578712728051942805818612675244867661134576433490751731306775376636982163577748897820405212569742771668567952551125441699797997924630412419785174015474875964684715014319212217821929256532452030596492667783938822549979232001460695816989959148380826816554049466569699431291367073268741751098989011458209621217456278716792139632357328915784001283584404934394034769380694452775764903666030885425420973294224979448062222131691057925801106701366178225691550697876421847218113041304231847049161182757911835861865510358508791601074592017783881956644727992403293825940669681849249725625852327201762157772896762521588744108828274138525627374622744262246717653894839026346180718799599737077142096908838178458873787915800641788827341754087789722985158641093016716965252593805142392283252635707319793885569827748969797120802202443971801434233253500630184556518729158445952552936920776906452666546875912437521975907241338961843558918924620600203149083174246192046840304705994156657969105537886739660202690496444376345312313466430345740223370128516079052399677923767775239212103179237563712648185788688748171652595562326034354726962788256638844457467856757223632177632520059664565131948176769097398021000696559316916814935317643727049277738141161019401947251435899640394716139473033066122854209170014577189594930524690190144616657313049257768943848628554353635146753099752907012858633268043817539646222169023635552342145893034009816517368296532963067547687975573209911666897503116983212871531537466153372112369709767340638352338533955724561389756141510108146807290786205554179268652888099907502352104539102750293819112307944643983612240392533168915422348370919732060826390349411417896921221366307333200828744557735819897581256041726827033980839314662493321107623866415533224623993800589121197876467437569054861010759308058358372788159112330150791740063216160078567027914058432716819630332130865270028656133991434576210518271407129705515660970498714026121620551023999473654951783728429633446716498478897008685567552207390482930530574552040294310636781079600209931044136537085975244021359169387852175161893851939308518638049683675666509543894830094994136143147172442169741289947546873564036017124089708249918535948059838875017094350906723119102597908926009238914180626817370855577784593803516083107334314448890598420360792349259776518803829769656226981657088689669799404634429438460466656340660822172740941290612748490423542974357544934924272684438526324626471704398564808900055627866518177602199599392164159390888497985137842106739215843592956666358055662733487906752692484116476235393179118287431312495367554773237870290751649769855430878652629317351359016302579253434591459268892807990713529098564665715595420593470970307461841623260408836843745459463879921410545613192588498494821892378643373821804154126903880077462842478457766563353672350111844852666270516954380075418648322761054859526749276369945313173366811018536183586574165520239578036906044029318282813066339931808677774843637169475347851851134284137139451238782486155459052947487476673078748988045112665680759031030235936619243571477988688587931896840961633915460421111781732312371064929320399514580081088962583021309534016368632262132939658308301510478920560002855072021933397543048580438610825329191146611180822668981345693099386604499886438334537552264646451280622428646368208487797276014995466347526710099040980775571370565012775017842362392427553089937219542123391728214929338542694775467030001802631134180510579825728025508797576602073054692817573179314044429904328568084392951833732102661573245013162275425972532518575215941762096622429662306644489424707181728454216058705819686580239023137396914694203706733541646751297527086757144607789988548877738136848136299686732644114041779186252159210867076194145547849631896259084457869150374854470223640559618118145040810901490584026253245266711751544614751242641480431744726613933489315484910286295039681385222149496669813436067243079250664994108948312739870257889621705870149636141414300078885209863764213990771802961758711614147496462431177843940102112552725517352932505275549131012614145048824504916401079172287042505155667497545721551751606769682111578250469378224547856073986510526584466055539488849007759491436028245072329814512209265834642108373025393616117254862097341358357604600404574845543296625338307536701612666323980788319409113181723716366801476463099672429286410987009521759103407593707735069455887865160854894635074673081881532845755576496271111893159142717119747567067528500223506480504618541070222468886627684109893217161694466156914799171509117057656805379457502972321600257177896177713753861146129355466480464393388300175652518113089872706379498068652537011447410157365612209506233701236819382955347834449791821460035490310994417472712253692967473396857964929689559671614750351011389300473162272288811344527277545529945821606252329018920380536219634975179972776471236227198293495668987530171797687886133249333209679047465990523733386152463985188982331113685476455919511068472338354003541138352484870731086433670794086198358040160721976812711494137936242334754090356546953382850191164857210355313463005991606027915846719996935357154518699423135680420755133686276499166673331423501794368907750977813660824480899477231916477111838673920909632168318192535320595950078863280523799167796241365357844572830397019670573237566429227516266833073908853741859865593147185658425492865458378588751298369645184881698783023810592055574304531047350296759361482290912479869699239735948682743306202948348767685140545090335980850337286819369812683908440996873234179655302925284628148210908392125877522520643622599704900394818542472877786782765955522023440886439568740241090632174794545058937027277846633572435401348806704606282053704742560750066431267881787457249379024887964802109247212143639112210978159611751996774922027207584824104452729602039885557037923671561786163042955838513589117072363146210294544652415159243538195326869692753061886787093682332833213363679092450263838088606087996794527183115910054706625213944394811562657969527924735934916220920688596220045205574933784502407432805674702511281542476872770340473741877379152119586250862635174816956399790829866741818694446097248454016985084820999395268807872109168552487874544125450083119220779964182602479204632993525780186645454948899095534278853694414847638658615179769442701458356045436119374428344490591713319549574356613964868926456384976500099600109347493688249193625812518425727152471201848392314396100571112494700005824410216528484861412031120760091439720031470302949302054379382027605975466423055773147598278256778791916298584157216611015369361497230002002264840715466205206742056322892917239532133446834938070994765225064901520881191520697078821341618400462339542446126488839483307978747624119061384149381073649715249650501869282725068533747975098349233688906494618402050812119688249834145305593575559959865969480844010506858883893688953129747303104970319538560302504172688220255517675814330585860694551891837624251930962291720314482668592173916355987518533205340505407677906699338811024788625947148695690412059223617697061812143882885998910467235354378862556727259183658567117062270539880488981671586330110291672230667078121175037606522172680407646913558093874329355178187130724397393272925282383211418038842577372334281403978323890999835895925172875092159857075458891985035691032239727686794985111178825581657064845156146249884570247183853417196761878115614930965314401683765536946382229616093915507917101067268202660748060920952224345551607787506255946344637813102529256538351853365748620736409847150471270998531347029804405997137905632032579617055610429840982857459431992030332716368027508458541964006869765015383589049375994686566839065361917578169545938462076902457786798857435933152632442412525438990670007756793546720277666725798058963271228388470810805421172697558973760116473114592718150156683838548112046649827557524214473229772393528624310153330672645862748051390497006738855664384488447662593019165238296808815052765116624866428811045479114787604118845324416792217453444956611949755305522332649750211673205055745073567094786681912545422974926360885697798860763674882290797981880006475310962088698643907437701804152099993470548152062713667673569300531454271959593775121988612523685607222811061942384046032217751744841349253832042229158008373106770760215787718230801698426252566267510495129112520341295350647680234146244005845387751411155038899439026737673081711142987281245568160291386911871850905163145396330179112336999990074220511622461256455774479087325407940544146682027901599540439078773072828291128753439058650243016751079726582501203431354544331167009315041991278518816939653246445326107442319695009289081665894867651557322755684634312343797712996174673739092602981515033463031927576817868692355220556469428290031090025737734013865964569438032507279439997138990201529452448439848826160288916387077256235903975381760258974998221948252625993733564916968508419322485146679231521065356474879748877846366497285904209903366192193383826485031366210046552496584862557155127651445211588348044646976489534240956131558945049762684151941922863360399402029131333185075188534571303596747783667670031440999220273873710446036091677502500406961504810006512653585966348303250827211216549962751150199192550057244972754986955265858854785563989402807580625232596258926203906507008416799521375112483242892820187840132185240102664246699770109951330314731089871371993054467582170220218780171140425065436507808428119512931832557326370503960274681002864791773897640898991515010975059190468523377968802706233987953442189410131400317116541123477109189929283230636449735512020213443729206615373809126265457090906130210929486185496247069276646870505007267200330976884813214131020290032686120395886212463509304581912625749798812444039611820187401489878809949383020540200545547183715827793819944382412278122414068472106708092642944452075130508366683447198810653178401423885386767854206319630172827040976346750598306321620876038023111118561871137142256570645622370097436496018048576061665235725530659519492981862844664874528621409877227812394482787535660212122604790373862111668502181683870276429883078083438731618577286858957303640998594225351717776919386332795221146330173051632404071233406274642839608483417791930073757681855228895204016438524567496391605910081638361591811258275344929216816850957624456742828409007094112311075795609578991299590120039219228937488953330917826541671066522131483347617502173178729441202772002066927542284504031241856423757787273643311189970297229689057023990351741549878527871488399263285682121328973170062216264061287503816587292828813124658006277896467249170941058813275496247333926327602093435323415395219654323434573456219125344354364627836027374038466263954272743306219287015796668932412094904429959442790338626292759135786918767097397482996218461322702668973021360179898359963428060678028218906843758337130064819432080792937050649897260651519458871111826613863851105402464177343169421834064463137001155535081404520122309326752554906264377368032622870154360738983013184457422720622309875830416390510595159487494695506964258406034147742052473909111092687481432269193529274719769007126054573273545134894917833039172070218171221292661898594203632847208129443071046210334119805253788213125887901018024112470382853443535856517949073106992023641162233522820356704254767812678780444799043110022660652343946185364564918979944059844716115834015157794375543174069885369947828132870627066184322956750078389849112118353070852233940057263063913471584272344905343307249953575897881130864837719077655240132210457814857087394933181879605686322720432019080049940985998664456462942131883134996499704666255652890342202341947888755087000193714359367972315037849961811559934959668596256075999966079266349647592582673890968652371227478723004052370167715130104483460401700312268193969438744533085089448037665942455468143362405154689477797032295046103870071521483364584993297118259302856125312616077543196343460700978408248851593198675461983428202527769347535146621488677201321537075157047849042594914830770423336521711392305773781658792889262157773794194735229513493404044860071429765807453910366167092178324784593577377961393332636139928560190340917313212869198179943453890181042369048045410440642139673149893497485085929650488635253922910825681998080495666981837163718805729779003963400804373547165259241544800097436552301479408409192981075601070216028286786257173575563948843495089453907263934683677516706112076520154090151519431738602950796640933094663318337173378606552211419907697652238532912828006330400594719044640173275459446435720452505008859901847315363007908436546776644188637267204056331722448903002683158369932077842726467444433916542686889008935300535403839029789704667064691939983177596903675744283448731824003311078864556432386186614634441080744980831547949299601744450044601057705593660891241797393044277687266085426881577593275057784029297688443876320118568006595740280432544894922424257117041372847339521095382849569877868138583777330205632894454044177787856439892543994987636629196759623519652172026036718719304404943168332904416740004695261311292282465888488608745938860341957767464915246040874688326156018823517330028074409800397632918157331613563306259144727254003123467789041101182324926182684215223884597209386772912147421373912001871827678672854649941373563080181427631440428040831044459265868454063484713286162251353919259279404285592847319031536132115875441758054011612353354063382828248587343074840368374758161285419598760963117272588245464901158989372672744057045433812904665615756688356645819537698257125078315721030409875322689804408022860558046450715726566910828172459424041401451154346464521305392251631391641346395430076092259599693258729823666924011829844618855520578512193964097275837349231441657866650321529517301135837133303577141860478320504646491741363690542402934659969883007039411158708676384256036280048060543095063564655762538260380513738156356410959588199019012712332148990762553570793426685208999966130534653242039569737892422647834833281716747544805096904438855192911596131981455609698061979971180191685752570169062747423511621943658235695723499242729032932464686636090587942690743251592871522777552125270888969777144861205213047573850637729225937532245804441070731365209379056499498160984692065020015446458940638765755253827137394071266193049164942759139058257277563797355469129778978206410278702172561538287360638800592364501357331023884511693627790098972044427105239791751174858661912916520927456753029347420481676500073835212407445962937409147777316825652804068716536661558717767176493725881598341854799725887040883284823560389959648853652798611907467289391574696223969812389993329943769926155094835451630069222248137101369653362601903119552569400337815170556345567550242654447675689220775401768499019139005555348080152276670911499820755550390287386921388086473732295959012025770322044743731146360250497857592621586829139429584593096231587445126669676177182958251791140312728627285980835877527147851837676444587224932156973530674423925215167663928053172909673090260510899310480600279507134214252175619463489979392548384296027209232777014026163366505431912383408098018422127460183406997097001432233486092488242323697903591980385989333996259312324543787831079696730602675424526428769135669741678686868951468271499293917024723553281072874183176403977004033937696023180230371482764289672417257561261456559991321749000957695149959902118291902357068961952659470354681661273177946526840685357830997548713475626851738365630295797316856670619950625566513354348620302748319143282363519717290867501122288489326580709321431196489036374839109279894646016542585984155917303812891581117845493081678050882400386706957862479321965786628881091179780921373543153732860158416963946553439894953068519256929798694643529184227300244263550527653316447119696127655290816261788246350814987136403669122619474512988560811617796554658090421023112965514864370362848100881109931900067910568391522135417097606215279080381122043296401695655448291776459862091319371382260053700246738584110587849598772881847227516003430126468984381912325415551110619821959379026197918982511369677155268165281437287659939900118585188150603665473754408172004381558502160284821094154037113350308232164413033162577810347848134857978271523791133764325172100880299154200662469509274341580076281066866098597153861023187898305408597023995010704263239324789215637678293624134501844154771127410058930554565580640081912652086430566186619783201278885576924054805963035076179749777515733370415163041272533647122213679625712597954637543324506552578160635309764519852595104072779534716648105947153422365648615560458169255225760712693236167737727132863614146366493549385578762006260566059300278492587737696108214495353923947766011188970983529723850012404910485165327363549688158351144866894716605725453986701343291005080906700408866145498673292431543490959919439249201452751479645094174144781717518257980814717688431721592125488010177433608318998006508884180744754488802902527001251148100932759697106387002358108695318059031347552414184222158253185246796685565795695903149203479798950269108106586734988046010015402800554252881733829431935455405151213808987441187442276012700868881024166902908019701566662134193271919012415345269303317930839915504330527046794839357599424377817524380329640731833504977390415596737586903711562740646929509335273518679906724088114771464803769196678004916723085733055926018084800183312061146872738656670126379323834306175308806154345663668154174461631703227129370301601587612894489872631984494716736943003266403162182524738905032652566801093336703420832143287965881973882141606843203932830162028148404690967172161691897756307405910677057987031608205526983462088736182103844092772495753123348411318898706359473315167171035976250744676835558440411519938333632498983581947161349233619587493625332932621909179750749619849143257195084121387116763222245017666845179661844393427724893115924193106710041418122836555578965955293635271236672065194745716639655657000646413139313182900316248297551066351369267789064538821374057697138703830000541536005046209326055628815293291744147690214182884342920531258085570881749818387892377015041419869760844262315593128224858836615095769929010709646693403551310848137738838688445896484144595289354042075958816568453160211317310955374396325132786764314693868392743023937566437761073796465906259482896609973091351649936977461736554630230100062834053923808937054496888425848596767206719504624369832956587421324583027281484135479821843301045140789184228527282307724290939970518190403809720719322456720759183252728743218056829050212976651143704202570540764951491751171170126243115691995342382164911750222892817521186533023195812305797410668804490334446736169901812834966244855141817522847933759870996999531398647716608447394324577063400119579083501034975511826983140325650694492621964615690354537719957493154823944100294424863629916355219888029305802023117185739049584129635752636733032468909409891361093978715509934110275668800472850413185485653741067908320369354761356665413916169199421084797976250660792895794468753239280097188929240215316478422776246208842515742860391068758601120905977700023322732620827534141186831398295246616176733262035531829040760818966915719650704406846106325626511552079705578769278572228437575788634677066788184385023285391458844598271768821174027396169060432168649832729830236594236696439427080665420866596782704619384014148830644155690666909592604689624368634563533481857121017659987021717118520970464291451097680187353069924182714859844909994942431534654895364620406830776318516094112332430099910728598740276578457071366861053841401034595251833612356487608494535169023764387492928429656312458468690548055722495175507402566323355686644302792415725844947487445082843382898406873946419171745688643110294451167134226978651301008099554199035943418919101010927017230306342924249378954439481364017699801319081895223397372791828579413237029095654814356759893939393580983543780548395259056168910175705902427401323944198428411203908393630964039955259829669501837295951170275801225522706289068832875036032376212774429245787973972801755756641540724666245259091943130159074191923659649071248166766085805257332565867096255821060399464514405971548616977136471910054167004668819346981378755372971729323045680457439620339481838338917943129795290764574455223523088840127531384422774818944950483450042248079515195884799612453286554661728298417468121707671859003874814011187758725713754508815925136820102340428864488724009570814890309588639144758115615179387572685379414396311599729030548039324754004157138364598468985632183774957945217999425142135244296549091596230915887220762260789834110142486238031470995651842933571702039059011205842035862033689658440883517281638614276782032216600080578922587969907918335910618433637694142605179149569122584444268663909549527918351821443594871603854665684716215983531731499748649418642297654828328905635964122535645765934905551943826498917074683164465337271707332822256548817635854231908616673020413722969652103510457529426961049967444561719126348285978556714420592439560369329129801205885927306287409533402301217879763453158515296645732133206241090970622521052875331517199444234648682110801749533101485826755715262679352868123685668602251760111826102266928543776594189733152194855180464096650505387683371879216471207405630960294516711892858072437481841155364409440191708224368317282304185195972680449606939175891255213019682681806012310871349672525986389608910391245457081689581607529738536433186037160056719458685745054519704986173792211592183892844533337878750322565816036848997698898583247152640853153638574969927453813590394112453743380925594213824366254382825001109333089235737141116002008078321862252038836104890856326539817168659853795329016266222573045132158557478283282218033512792223894807499990150030439120508265091383361380561560806555294619895655117746762423936389847174516944512727422228845165189852479135613619232107976453741446165373838152284407822897245359635541359865840018646128323806793445015203660502940828939457879288101777904369821623458732509020778298024351118032115443281776610025067572081130417827473481481021642325343232760317394132055135408765662878055971762890140002724542562621863889262042538534358241046429007262390345567642941982918704831339958790237345190128095484285134923225810924961916211247958974482514164543583421511694325192930686594241168168694804433827644825486526537692315461137219909412535558300419281048062206082007245920416359205793082031876378831982168267773758822651085277248529144211505441359432621117928392305032336576255658532976059065842011419675590076584486713789770722964086511673316082957427593412258268428815121345956380245779646014687346104313929296834597323410133904573858215815374932135155043763815216715917450514703438872338191538159739193403280113245824777639595313245419076931579629976282132099154261074330712973676553243981241850716656382171907816785220179228804683809300784799956706786204065088209282085132311061004180739090448435969646357452174024698386683089321588088397135050697459018918718948526681439587307534823388579343170914828884551029926404871959045288250373613310170687124515552868790872949150758968847952757250810518686093370956359359858860820806037051359631432190495889970377429681048717193590353667545882058764545297360528371861880078005780685022667744223633815620198462188394321172238304127637318127632004596213548775591359351404488171741471153436257485632410145670339201898068761433103502371248676613967967526121201584066563295828718320368949392577964524659944212254920103071554565103463356090040556119791031808278645231686717896864236371057125476960446360507462764236180653221017045207016762861856220515824626092810560548473076700410252345781396162038271831489630140482699388007364646561343659577798169941389178474161038518634482859479213747482604142792052347577173129028853602020505282927739310990902616254041001025145021793193439035859871519883514495711104940033964436926666416819569414960464122145247748823870941692884882276205000573901626486757222837170589916526455695924036740547978997183349971109232863121388209725842757191293845754868942262827340979609158402651857867729346625590784651534667598929116348204240448566152779208093728146734358093467087869464202699919407179775502504818814276586936950128714950020771812817486691828548585997200967563409209862222526389591213964068958109289143063213032330105295035579715709508263729047585917980915137517496055950466323613949427376963258860106466558345580943918894944078975798164762391579070470161337330935054854156607059953515191875631967000737734294427963417608770642328063103765984334175354517766195624201332841390098941997220007433416975952638865424893489285589103177488959278793487768462537206383088902616231256562451843851305611882655849297787647894694510575793721307168831219794906836850217765150805083707085720785596186629458621296010906726893248672172698781271481117625629517967067641408563278488334999910204987388255612527414371957272797149141078239144989212192603507078754932631026601008907164573417730605314053375071917449996523026035408354903919583538859685002925704348236724153836308635850684159726507787152302210010211857118348931694879069935810676034927016261364839913785070627768241721704695756392289222587107007169414843153466799890594707333660000073385552523101353551082243244078108227699917387857866229056072957245661460474282277066578749508500702863968819807438397928815245477481215401373041420571560846311371945875182984048319337504439477498487591971732449810512668622596486164080657701248516976406296301513568889512228516154371898176160143606502662554762151486048880333618698852463112151599456071428641318856307141325169930730562215947292342435298493492113199000168575442297921584522689922109138623855908879645473413326629146865487370811548379705912211572840216252874055673830845313306550286962408383489502119908100926260120539531271582081685038710089205064072807315465461498841639794671303215254406798096092067011680330450582492756521306967561060045528531213866841227136561704039967959097748318819833471747304174761297369774732075622282464119256141864643458148005195642904047867932376885354723874595426275399476552699464241451314931608610533082165949335832411662228402484739897184288312179476713626187356238869221190293262598110332443088905638023531948446234119641756624615910559960455926074506436237351893242223407772279930799276401227080824053192521750469866851395743433139450241804846726192529136776584386969271804996521299906933079637830317356495453040588648649270241649023805994457239518077102646301067573985704230534924578316304066018349524082729089646244216653291840749100182434962428061713712569925215982882207062307377685103984052244777084038453072589930188215203494895180760737159012524780687119486733502418685529046089998823581537071849913737625308188079742111038501194151568852069910888110125052426875718755158058495495447486758066441409321917540248095496517944365260271912752020406554848800009211189147054697122890518680389867735267766408418957807080710707252092828313713037086715373267220360023399120376788396006804482971697111677304634777631756428030106014358840663763964747115803987370139849998165540013161086901555776694953284370498784914973449332833109878795816570283493690849193211828724627392531307957250834728241835075262567255932717091524991564322311142963076360553089222110710002334495004703507360342659270799182502762120560626310600535269164484334238782103578766941449265893001429932999665206171247737678676811195431770439566614402488637646360798756523737664510175311906712719658960835848747658018976085706245667682763140791500763672433320831608689593144344607213501365006312766383048887142130731800272167463221760939200670716895859142287496509170736906829350143893494753261917980155155507943618264934131959249087461854135382252714644767635748839021440945811063282904160502414861288876900440946336083991771794279479512625118623683806404915138458864339908819050886521662011632738493437246367955391383757186168129733666402303293917591673657740852615653273132236214544850351283601868333555288757386450425858855567176312647360734383221567643805228657488447781056417052913216047124258116693158216166088957474112657470755692974903910471941672844919514688373202629081256932128289566292707746543378130453891094745488366750824414241743739639922158489943071232404468275292094250840271539254978603203649246819560999571706769609199126239308761442675047424209619756744602732393509532480439713718800621743991445977139899144823468411125149079565475489097784064798508570599283742340588262187022320103925638859766018858148393610495063668403932922988543175830400511747045582838682147304615570850532689231141515134250659816664118538068551132218333480001228642864844050319578629084756090465356328177640153892020773023539573970506451712404936195734156985966676066792884716235675110898540726117386786212187366204769533991897765158048938080949518313961562118438409195304932406616936136751678390327348798602320107196466333747598654685142382506872357370899522222661018640857762953001341657745983028925098909932553061856887420387428188005727003163907446588168245292978272489454229139384980417219298744326780319318360097915242704828858142404692900783447620860873134769893716036010789671743890364669489920360885036945268049544840712618043914344904416328014991384183605435645964794803131253422837003045356573350412944739576983185616693282608022468408317801955098146873658077340333298141704222217528470751484031880053298569622477130534313122485540017403864772446126271379943787537306743114357645156085367680766586128342480261761090142831828982026972642310288084316481105437568041972276867564831902383410387209960608009086965049757873646757569401980183437595151420442547640666625956845472997509190116304488641161144978001279112348619812142354841997246067364327018263239396461789480733449657270940960932558587847191957524465234262769177311676544004608794104825434688309616056988920408321188796906494546974590490730411363629711299042211762538444047756622784054239706684101864757257907320999032214291526337511265954699621065503154462081605591076248514904306979467394027997822885831458628046679213785098216142217921954163045518012842271818908335098113708888586181610516292207707136112338833086612693080161431407066473931796127119087754219625143757685670228345445917453196495244147545885431105397644842657374690263164732192081157347235159055270633228929754351460423762186872142223760214500735652423627268915710991643410344187752388736393375091298501580343695711290387152594889660825160264917225257350898435973828767727967204403113716059806881980365976215793406080936512452737273808224797501743375447172839730103293655898571388985810302662828882140992804072738878107371484676572807912438547291972852571711996720080051610407834850028990589121550234540488324399638304314863018407926518390474942299089024112486537338378068639745803003823324790831569738933453911226055846105451014394630357755843854599005794898778978585169162547629328997236807692710375635460866682457272359884508128375130171518694797398686548902840666484043046469406325811233468625012046754161686397295219969014599500319614374340548247483330677362398281102628459570088258030304908185015020474936225941793159141228211378789189623021366337608096566502832500633755903472435292990039093472720917905789052459020774409689132922442507367353033861855182308215551950629330419814014888465619760160361530382488133483474611872442864391756402241002456753956015351085226752188469704863936045346507599390353806492380364654751763344789379236825161552309842363114330129095912836992934545568612337002951003681797923643662062676788186871197847062352911832070830900618212875640897176584247695128978845728509500078508455554972110762222249764980821191370797104414430409198636129626339723218257778576492371644970651487837034753117143255477300454225931366518016868762284280942157288946652301990380865478863083817899160223725671301069964435598627250748762934279610555198295563291442102564326386248239620304680652922948163754412797011062577014704816708212025895245870669759472660704776462517591909412527579624743802940119499920747366722440076962177789345944715809080442064161035006903008644318147582765276216548241432001605374817248235222819056388371575146641969021912982033907069517533118580903718271087675446166930112283000271244627159111102264147171354370871125439543478139480885129270400317094741094570645084524471446175626785443842703981481023460660188485135026675407145692198808556875692991710166206741422606830147985817626296628769611374102954706791180803571234883925547912455143646043532874450466210468914114721385814893227421764692746320656886081022061946165819888692927362487114494426830525254014063811975520578634636243472396027594846692983463449241076141416509954366325667078291810396435743811371355082840160158090696720711691120507912584113467460535797926916162018412088051631275411954397611342056782209023686244663288113598724628915702282772583521503623986972082213658028395500061302929978007659160789421288054915567791277714407388027536935338605121828808780439050826726178935538685841968374171357788520161677092209068825937282107563930944576671176307992558730764257575501836577996926840658997886968080720239202257863244508640290205548847894516743561353986271458238413276711627057047119806013970473256834330795902492661010743815954082220969828825900997547428711802657913386109262249268949292825936803168254297275417497336794123981596717234038393199830697841371091920958688782609703593524092125482120237105952221362254370287318213343351692336863364329409100507888278421314368524488488275320630580253062993213296979280240099497128991835008377692272030498284010963753708532949583685622636771533914362457658447236626513217464384844666322606411814466354188044981006698989479382820769029635391014777741329014705272732978728160906876898463087649303998206668884663240081817049288997254132120288803324687592352987848418842482997393846222462026759663733669357934812737566063504600726186835995960237000774546132595721108006234152682527242900599291801327204527439572583495835419924156631442954203461015395016419385046872094753300657071940345026602765820520359145252537840715278297319783700464109813623913053880923389291798485643603808169258092762655556632544512742510492180472870982360909890984575175610340837659809335217354964568492137679883684712278122907514171504518997155108640869144444283689862072602686612616956288426533838671896129690295258394825875678912697931745541674923205984634111680994930666146652380776212506759502631590835735357942862216780318703588126109000126306812335050653180528930531433093959211971929165294284291659198986042736033178291888382666681674922926785230454741985771460783516184086989296971311812879435925699615900817365669512230377111649208977567547615819236557482266291204886419058467264818516834583497074306725924338275807397525309069597787900681474852511366129185744553839798792284497792616594074628017097096533911080918450940630328436855951963289748097544803033150524631153776709821062491813698269026950558941158848773578718074360488098630937450060294089797176426269109237927573328748635747407930947232511867075948137998443769450423715592522873399009638377489882798449954540480946819463007565599987350112276985714932553994934748747485388695043179499108728652686207551277400961743654492781062302500192242257729450625346904745485946388147710371686938515749682413092933091131706955980914428562300036988091181190108347609428501961314290023109868520822784394984494626396539263887598840247854973926252371617368135003436372603006356914879766910017457732784200923305533613457569836735912422029055031137277563826644960888794407522980307893732817755643588792318283332297934517996963459670855249569487828001730832742909445689179955898946767806616192382480266916109747915727168383585881434922608710263114694105053524065772851631868452803033689064827551972684962144955757919479739079867254355179105355372548508690428267658088024430414201553400792258034359358595229511790772548960942570798682335593107728404304214820751885419310703827182289372788353920932766625822002963952596431569554683726536574952983946259886510028311748386323765676374757940633146534850420675885186785560446668159276764527482070143582183776004520824607289469153214637358814296494474603865657511213412755030507195375697143538011885262493427955530250456235639233054587747008860060834561882208994989642383812695118932450915894124444603827011530826470002446154556729069997415087230892703427907989402355396007892073812031188583793321225608525117548806759349375682365534614415187461879361780171078763621472950948929012256898813738105143400329361567593961480612558148135484018872620664912528337420035409815369650732739065589469032329518042433620095607229102391115993554131010447515957152598747261590711444279536127960092768221919135838772214861688771034510950355663565958790950281529442662269456928333280592267144862123742768265236929588408077187141277904207719030463639386573033346502550597077460402796365255494131856817024087683307430544414182831800799962084942912575122296142955781731745634807335481365604926544451572186509961280065219649417324040881679161041726595208103744002064124254503806802480968457431463094574313928661909667769826242721267924174815777771553322817614165116441092078330566391783099297738362338885869233708051603695743537508366482114640200123658501936988386059467877947663214993600232074083638417316613875121196703623650046742726062724247437476763120484673388171689839904978202044800814093297938126859333788620383779225800379542052557049816154135428152588288536298201205633398258893039322937306720364860135337798796077843661534030967761449594689307586967516805664057719143073274973838370324377296847412695686697407671882263179938083626850840776095280930883934437680345512066483814814054148487296247904865160870553536415509004146459301684789411987127223204126606751613798132037601822553887878068925788311138820003659207851826557676827800282614058832862854940316174030603924820912135057975629567605595645321712199767784670432340390532429824434563846949272548632238673413898486464014733406388315913654548521566487375204959991902981334497155132388813662513322221798802103242066440606070270616444169842983922314698375534339501716578424761612612417847872135605308898268608328483118114694439294843683850135845437609553510882750424325630168040101228535620381078161761491712240768507986340771125529564046663642761992140076516312162575360893227312368273451696437568733609143578158016024091894048942245815785123169112096678565255332090830706217179636571351672553355384588274371520903026469723324763539497596644169754165786974290895050392816969209903547964993524462340965747183299404421606035533736692937736945961823859642866275633165021946754664844865299603283914863192966927036750126222268099162854624994044668021020243785442381674134029385053734895797559553253617199941518315029245575073829074312401431723883617604753121362814277374746415877481550240317386930069083399425096441408806028230350756565862559462848202131899138538648306899089085689806112305233860292928769054395716081925491121204081924265623388844563609053574706985344288836613228457034102946531856838480396083719095033245968104551584762076234473005462524539089439832748486155449796916998453469451881973522087092778799437254623414790545571672735950645302624782087383797689951160057517440524211887388902203427542787301525847102138419907925084174874508050768889210768671508894142880875496511491073724765824051448755047947928480521940985888246518175596517593582542452946706168847143368478867044748156559639502568030867340227224377465980428992992353763455306825273984246758725888746998522242514698435182206583273629265555817413752012594100629988915333262748029972367488768355379395150831915244244260657124839405372311820794117383531367356308546841341359128037021606185766299111461774239861936266342242199825554558129624022456696869455698764672881795828301688819130650438507747616244398551540537256085316715602241107066698150214478753363898786303585877526779009462901062603068248328026247825011888588207805765821862151369613606641807426418395488337837328938723011070985270409631247452714099865212960412297708236116622279326277996223026510515289426106070526217168240110065393244098657025983187341815307584462392430649313182524599042562943199486426303355503041273244141359897516122427156069470626446357713179061820432728513610975752111285167422653198039804950900523170303636604849186705109221909401837841385430812980777702439740169103737105487925324848728211778116794271206410853647602462030331015446615245683083608489081262574252109764984371936854162581287410519510052669431107319799272286537714334810196548137619832541292670354111028815253395262831059147453192310165998056969082889213745498794692584856464004826591834956157157974615860119699975425782038765048294633339234706380633835651763659673361269262891077097517176681166164593987890034238744096826990525820387846244375866913247805818365626586907705572555580415004746550881537143494290866333733342963062860204436828299307572866162887920093719105290746392615420026885096495019688186222480936042170419323401005844777021190958106340942058097288677367409805664816300315308396233696861418943843136613045623537124777004345665508490872093823740918428540225085697143508233767364113435113348664926015642467877825954872453841518573289361544438594119516014183100056303719990128454036368400754076743030029860471383584441857664420390514974242576308720227544261045988428707944679461949706876819529513071545412103722804805197721114205497330778702772919413022172300009850607964983436035752886274531634723653527014718706438619106922785245552254561945780034311430629663208342785657891908252366501693604290035391785297957875381070385757946588296420634247484924971573706478146768236841812144439577921816680038873823621139737818079865747403533716206573722169513425382443079902463532867277353522982478016477122197570856178928264499237049038112270234812579655076425019398476530288837156153495291714303174709314146303133725976383116018596034402104069194571153462819446110010814617442854144097880094646796204920574327117422678425371799603219156190549203955724995958899154437366001103130182460517221635698917539533660215474611856257400802411822284542106325309398208148497495370568775024902548256927215822591009215649750083597601567522642783143211099138867706325381321764077208703198616104573051032213242474613091511906668940662422669428817810479560565101662836486791508040418649340345209060465515886311096950633038880119990313040942881060129561857224635828171766641153913947502767833455825135968826534978185182269841014745148505957146828201537386661370591332546985066799964669238147004556588625988635065086138752177917417811501821623569285728509970572242109672722511922869346426035142181092046534757313858139946069139054662930362414199991198821399142410922813178153381876808476582013972160963724217000022729568917619641309869962876169065916585603080197438352372996540968228479771216432703454927379985352642553193343827326173389518091040391894929526997973496906149900442061309392595220755449020453374742150179845851742957465093994143885869348688635518161325489820732524406968045989577426338305157164990958044671293897604889940454864088844374347543973366557595048671609069476665122870573923190593849626373020407020007808422745504519167601089128094155789316725424744777086121969167472627879027621731342334879428447615362773975067100112773233978845732809327237733973006772342241216721127179206668479320639209166489528388067348591736932965356990431065189935981140727893915069875872587326507285940586426297429783173572675214914137525806746816256942957207337420971151022971272857499814903634205623333967477313499436286759909964238032428609238460576108403334844697847300381697073629779201525699829046702540207761891219002985859193291704245275200849953936803444951177290769133090787132027638710511725871856617272954705297145787870944568590099161077999939111560692148862679776400357664360043853784752368350600027126325349394458501470940072493964716211609048743301454897239095062905362545319739301510263875204031448475582444549729367095972111145680931354015704233522910346952477642619095984077297579797995232516643627533327514362600216378619789687504304839698371338143990589857537307664598963179767196230163710111127501059274658682877188940548082492872050018521562716077659144039739833554340614655589826447556114689920921290897391748697071585298135155046079345156366151953141163103140341953345348877506727716989445853974203336999192265486652843957994359392745013345835147240217133971199220401926565717740039804082264584811535873337648134736738829576230340729405222268833753058718097616673591125828834118388561751595734679246452680063230432091127266230487896749709807586039873157072920058518233572567440350425710848377742161089008285353217851705393253137841845855801938056531053110131363145730291273659049367181803310727064901374656624832019979936314025963851006710120736297422332605418164507348595189993458927476334036983729077306069670190136483519126417829514025090607301455063875581288383034135608541165969874257956844190530535576719878029219822533925321403874881591735776485555010009932373717084229948662601897283332695461060096870897434313770484227322276828985238730495537471999036506759652920734596511186497275558400357148989811174198281008438747723146477577644213641532297414250891519206361901247430469239356372748576863195221926817851441070992442430728180782539380489718531294740841463723286641412496472630974967731445509286234405078671354655640903880592691402719309356293785619653739233011940135002646198038822350724572891887270021693833354458026524770167400931776758616452166959002526677212399381191888450931652908920152030599069683037137657984366107319555052436257042849353741291505883632874685593357230734168270449909992454387275857787214712091872265402973949535813671247397682026913918803900055358761713015238525463247653073372230011590994115755877292174795562721193056704398147512669612527979411957671725622208333731288600855639829248451196069487680868962378117666585825162532705990644324098286315634811423438244624340129093055065580099698426450056291198937097621604089618105591554941222015029747822355630793243299262870506902427805653458452086242035605222954633255468769392210122258007442176836834521101484660933257876910652968268280075572641968753218161526203559607366722507506142339336672807399123454962928801312051067893818352545623295535737199059968448632005741560969743880399602133151621500043563931135622333902992107820649885092502534026413580823804168707818926577822973416618197649848928663186218835751807076931588262595817125615452371155834475494624194904422549657405222931242407380326530920204078207606477947836094608476141701146528049113218431593307226605083847096864925885913358617380104275291422640708481346515557344186859613169886913687199112083118637149764643870942715563667534214522230063442110479714060616556993420675406097068189442048247811175048680096628002453013334643287866211375157417165756699779957066518341001489548369338832823333538557604218099313986066735560119536282639946074621306633967653931148271729196523271180556576471358015822839374656766380719962138697327174431675966224649015283761267665206763314891119399147895164027625099557225361369026819766618542034632173044660755328858094307666748456503063279843356853049813631507076360866429112793468726594782057533128157435357193341195346945208358507012043386486347162038028026795757470883682174430065843053692562073685701469528683723797966528772166497707681522575420660910918432789688946169782140934216926436809737594013218447306882734267485547933372353029079149609511695016725109666818250740527610319641419014012627110864889193694259052990792117638924833054704657537442927203943457149527858341388295780389497714731340685112037680507551648913770120136307381565189184091270400760139020130158997460985049905974030008971073788575522865901540159601984779749033712846310962506298326011553948029481219150971033032766922550782948002459145355860414662749903462357883368183709303956189344154868365549915055257601554994245641073417455313983987634635223829750597334853469011636017553162850709301184868107805469335220346221316979191713485083500688580728077945036813541700551721641652664614551692965195455404659515085194809896188702691309835793842747746933554268801869201159376943105660268684115935535878476205249970966918364658405999225377429362621461121266623668074172415762702202084973793464551018497559773064175192346389456825987391533417630927102028596484796260233873515051868310288920367822284994398808362153855013030984900260647564725796540688258727115372476766541151051818223320615430860752062228627067526089592369304528982047459339619690916128202538042180211669175487236129802343564805940339415470416322631015615687543429383261399090494694443671997101569943256293278889950053661965468029904873911956493346933670397994887314470537151045526789450859984364217180433610749876781678339553453460980037254158111101921272750203051493163053629748161178530080107370954069747000885939791909189869846354404863398096153978079082588579415655982002103643518810186700061021863979392866256888802928069989501044514183957372349078133304534221791802103921335032082231123111090212487974500120780314342546776956358348609036019125843087486153003877816902986005745714215199712795935382054459035672739368696461525559379895888711973903444220933924111044335400764856030158828936472503602145536389729330163960966062653342284106922146383104629185595861960545702304409775026034688607661972061689671986297280479111891783831739031276093386321323206120911037096545827727222410704175053928149777179621945253531118302905625516056704262501764155384426528001050781415564926155816835128905973805449945197695308178625565187529200994328634193151917861917192019008028858421994721239637694006615337037486383630095242825969824698606833811125538414247255753591938644677630972830414987036682999131994041021820460015588417515544526415534730796025214981146970438780056972123622824048871655888674659428994764697344620158630354089945157840103532676617838697511879928650161740293098585289097403746901735606128892548345377605361927050524658529608705924353863876376081996311755096556985988166343113615462381783818700647744878428908112726843692255125991416481798042697988594982111272699227100907556932696343508892357035919181998742767493041579850778098767428402347166233053089680611820123158638357221613934293496037030431494319971018461821844856495745120304738694784977516508670866083578550517578201598055578886459544215310771597145611428785624202446796277415573762804927927267306390346217270200074985264612305122103031154889349902743683851941724216872789362007390839317442340870164146154890784944410432006004781049344830787088690821029725723120580037393941617635256223582787256016002988772082331130250815201606293300213784841803643559492904579399506373148586728526707895568469402982094398801274691318682418780220860302866474467944748059152836607085458205942209374913686108518418648821931199579404397292359808449074615095618202976415774443303127099396855113484822721828932957152908506179598677105304042809171865256699658867476553292041512010530411754344652203995622107787836891210985089472505199164842140489279269338104069289566734978059983990687980874163679743742461386324494464894147720981492933636812485086138514869658699898621374420113874379596063450803514782646411208887007250179769420506416160675900185275988235122096168723491737091877752028057578735667497113977294259324712782933737451399859281652246595365033212154544441160014410871566635081362136674039064504969538608958546335818939300154762231993339603375449494780791846774991588023854924849199621646342408004378329642620850153746296006756068247378012210869761882164336336809736717628526101818363949980069479897893965079108983810399296953016135600494315961729800192886284001904501840051074862290793225856208172549554945153997789121738476018313295686196320027719253986152733272082334308349061006858336061588113915208881160443281877930097649112321980588407077003777385616170880429270150425714610359741984377856686237918059602016273795289670247215990762152489408080476835145851435161031474772766834081999099288712604311995985466313037386477899211905529512872193906240912583839540271631915576341950418140009354079355466120056893363373628924138045966689026293004166160737205756601481025872737160906930047009599800161814404677872435926462434139869247499763183442160837586424290034516983048762876994990620445304476260897352440573538367993399938857355451154935181768793866773106598435266711099732163557040586724773292811297691815814966408936871066887197941881476881513550530045928159364483497555529871809770424883598839159881041816776644003960107325251561224151192914166453125482409895412135693101088120013926781679567250320539696324748542312556466956112240361041891740685665577226018003325904688649064729723876430692838840380397318513997776762749499128545198733942697562930789290147563583689455553363562929966325591326226882635964395182777408660967151349567912548983491440311841286306819850348879839547103493962345384960164838626858917463077277064550268652700838062186843816660489534343793011565605365154988476430214270689767473718442089342850436412616388166703115089244758979818678925699312032161339600932569111544988419785345700809609222525023420467824990553882255809144904730950653826402929917679656838898865263702040565479701452994564641034422896042939333826476574686454590984418984625524366854509425651977045299429758555173395772819256631626105953705005696972111517792502298810746076803641759024519986879846087635364443348644956959830832498360841052814844786823997086396780774888232463146300008934161847448310396007985791578040212608423405484908423325310350764765492066524503671640179646908237534786679357264313838793617697299760147468252382655780093857000097696587277362699588486907848376648379951961257091496562519787709265634923051231824716854414731574977407456115051612487721422821519086720751692753261592657567039660958304840515082548699419110576630540388956550496641718398155870784349479957201798675787079998369709366359406244239125427808583931172728982784013114573305268056929358906251510403770943521439265255231583394201635078916368316498098412501894732741005740458993969929840184422035095752460018644612164445239253353724711413752016490048711744548120427464885267274649651215907329734589471347589871483838867630519264795966960041099886997761375214709874007553912951703707084006035787972555574217210946490465198772585125322445807948552540879303878699006517830417711288522799710578951523896731763320294696123315608491449721313038618473114732971933820960613310556588550311901996907295043953999136622201818688831951708526629676853575807511187775797223247569709951636232003724630959023093787344281976080324156883402137843668958836934325088730339321569722567657637966423246205142676406376253220247992541251956397193415670963384753993604457641804223829598854568862270293742421824443767276784897931228042479176849280195418480638166644141454616307702781042343780847922303541108863771894633767541581651813866957294153417073119128432911890390151883569177721318890984933717021011644211085052694878137033897349205325446433642177645680061178527725791454557301622641138078022237555826808948737519355087235548792047785362732999503893097117664094467244771799517137141782437984898079062726975268553976986946949630793566959365494342758085864171826640361317800276264546994003224962596814554681093767388391986099403234200426710200536638449871499412709441931417746291529393696109451028308067799560308564362941115466242570673412700962714444099415489216833602104288915601259993456268925981930556619816490913411447956712630682732271564989661683463658742963059508933988438890038982166359511289601029553974640922755106066686168840990758067584198958631050686996142641712543648814041528393350955037367794691378854143112782504383646957902967585929150447831991533497967408261390490075404133433469124347200222632926690162789712584944786507888080815339386631531878016401040364374543571672064854714610207492660721399102442197863080068546087937514134109632540505569440336326042929153291772557873163134334905029273452652229047217310814635405470228851665634126723210517023102050810688228719288469988365204232310209254999817519937176898876142977354107024316989012326676390120102078605317299452974699794022683302460263614906790692487312232727397240424008405502030399300339417646809507230143645560588753272178336525757152360890969172208017049287882707428944028213289773649659215678897215422700518179813268246980431897921395612543862940122058223903907435829993516309751016345916455668812431679717496202844755474565040820055936436717398979718796132112748243580462745467448789022954572301696137761628888081182049633542856259418650439727659825856124535644743957229514974473486794675243908081132685736054802177100913895681636245536130944475734870148944148638922003950275505111847954275044489287602920288325049400018000136414411495167654898317256242929330942648316398722953944434164654557694936944901345512843108793075904321533163373263545051949485148825933239709724067742287998873407272272432666516982293021251999017887878024817266928547567143176103619988181663930982990999153352303879899243360908825403262817757924240989964471166123373109791045561469156342519287569113386110539323740733818405202307355653072676111450485368433290798822458741980330680968569558776808336678442940710623998555131854772591662227533861456935355353903502280121833865858456191504799122313631873678581843327823998912839751237392499505881078718518101922470768829687061184817305980297127851155285989736816827053207828758486471706488155028179815386754437271052902550275398298673159312990176710285018361254823141476082355913084603631803776800881018678105225745216112687965998189930821868084264337749396400976250197020223160764589292376200447388453332077888511011243329546367650121135005813055620266720683423304240994543995201519750229554068994581996103133523643380053640616793680824498586444881158389877996754921988306779289752772159485522133984681878940354968283603967383803305236121730456692960615319448869808703496131458768357327254009448883064939535855692851283224595250209541741458685056486538623588071518826932006069588917872927756109374883091635471128494372457963649819057571094027731784914521683421150302685234558332449070696268261625584645181489145893591109539555563603329856377539607888867008402629177197221814725306344174608122240026657795843284166850441447806833079114237482261926727463209710975684555075272949400925158607412368862342022655164990546461968617453148741655720089125945704230472675104062145549134328752684643352127692588855114446350240038219144800219578864122861523059073325680605154578736196105817222390134336824267735670239343498342843152900485765028983467870273446307350674202294067191302694824909069663659766505917148677619033865323728611776807365260836560869674627849302613559403572368154008985620057077437726383193930406028334785539961008323432217286855836208746527260821531304547687711582314029745439346089173184500888495504512595030170773376943500607180019824582203290555318611009172965298332748203736963300854576955152875843902502520045583520478078506558495173243190858921201231195221851389707243438743720530125994486169914547160603541568959331033462618458325602240607557575817579875440250076755891928956982669987275478132999769466009644832541655451186574945279854870444323357637819791418820805377796313694801751487052034225292281145012316336647850944679541565108952307687750721431425047280553292036441180686368771955540905701596541071431389173775265363426987006675869017398010892732120386923772304562026032908296637543187425180582586246725925023353487786025997989536726137479315606133053542196610065489830131827681468521779814727791320349128595096395403434767322658014909724004265281569045156689013615971813813226691499512578650256213080867644776987139321757481478612241087997980783329331422574239230035048843107100576086919991880460450926531570084805282408238733738100176223747860628194425991262322130417014525316274142525242958678191057936444916215913302314641328056642048871829090174622662912502819573737035994537121363667392903670841004209844458733020754845255854404141571142411351611744437625234230122810060115822564057558547542085314087330965917141655997494600567321506866861109710855439431883494629753211505207255559922442450747596786665542042535015793579741299864956389404988564881795578942787888202717738631421638729311484134932313207776803876868878104571368967214137897501969326361643067219674124232006424539470089357414917113882714214425131184154134872756290709783737653064524617892837183495682670303359136846850796064495350214959962208408502043041866948643544475746559487164015925861755955865535895327843987290148128858666547339625117463896430679197087948506578668170358785650683187164285490021132284564866676009330705991776211980927346644710460616857260449980481146763720583915070299263954580725000744580370909987508670348703591102917341101626536036035359819881092850134274431952867935882981343121577809756855697572646052470482364201491819713969938484785459273765034403759089815482404042222918582788069028498369700749145878939466396530442338490393424123393532947242427568281257308185905198920553262719096456268587208829490433555095743709485837089892656960133952513785250209605120757269486605360351939146263338986119230914762249129180203301000264234856424495227973325074556425543973039897968433736674110901818430672063779399302489580558672940401873598031442220849573475618913831877720350241975406722076261026895452717263365305146400672731484669284323550451689938383830325749907765268557231797104431649872630423098546461100501069906603932228811380280318054389101015143178216283874499614055128851023659199982824061510321896664120879127651947501920871668363161623639440651782826753526930138694096343748435822297435359858120634258630282902773760752498443430118399768246532043525336282663547782642229572483859492883277092751748307898600630614274706995104992046358185013134605364112572091418657736774864387097113138252962029869219277252047919859608731135287350358236175661366680065219532030388561343028410859017339341152909499462775622499388580922945746702789415665012714359606893207687049569623228547529475970127256247992287975681877006445301531859216498465382237820778168615844241133532624282431705080293416708943781654996636161078006326907564054740489615422105142079003695616211580573812212648810260552306959091038411402610591955473569923166298996949616048748025595250786217885770772574653205932906148514839607074718848948048853390425617946484535971719993954637847396540257972365608190415976191126506679395673102455175004573082258540313271795221695151544148777726480911585376984445811379965318307960266581941341638739539918546990765605255383313370459186724838970357080206566389189614417269672600893715665296276120577412220134401942114508638732836336595040649735563437335195259335044158365699584038186621873650095289207634026068104104029790270548673300267413561462066979906723902514496308158977245951054274211930096543739788559571229117338207835998789627696680618876815680981264272859367076898998532020048991910078674243917639604611467589750368418776174977945582344742211980064928638126821048594326299815684780440570159348407805277607353570765997190401032080478940642684969676885521628220689668379765123510636777375466683041439963113842212112616652255294039218438258188185850559476698265973285733022322801937125235972499307419652594176727246287021116979420670896351324630568447231762093093362540989024570255111592690403007444226632835787917188913431775903273603614382090861251246567741754634772185820956926144210775915561560702824086069191701201046305259142941593337582589102775490253975325172525312999682007931253815834152897268925378383615952277744078136310353352758800592473458603707433433658952873207265673195095659978297673512064385309372979571933603854822259021442272691389847448570207960588461534484889618198339521622658189156674833257243738213111678773642784562333553023640297370421463363916329554421488481347544585262279287847982546226323251124333214332454908379004247828008936394885879389239967989105648491287705215134907070717191921806830543321662636489339099481884186120193370681163321279876657046989956767207941282264374517703598174063951820613816149180242436441908734755855189156423338574186613670648142912912258904166832114906828715872434031110620828018983874591896675291268107287266063169202665275276499231045725606446024035321275972116818970791993154013267960670235912483326038090436069338948754473021718994653557879495150690537850929780711211498926911928384103949713846083493613332651881745695373918873495388015405309920326677230154625721497917221085989719152453657404811934199021038154005053620948061869543141980727619467941687777384874453522387631324805031009916912879870873315642126868428428492667942911340603144218049587905719884820851502951772187458028433905430401138960891981579970836847425944408478204773248816864398727179109864305477373681153853892528597753761938957604717215434247716528119789511818311954771169499711501627551196598387671756198013039149967162298215252738970504004310530265160480881572892813545477216506159101639788901700083718460760959092567872398392543512318990869525003913324096311794116007415641658562829278336633263631467030445682387422414473665238117452854943167823912110806948241271343627461395572772235727223922703116937057224313874991822769137162207254995681594481127798099781067643725713684502350068104071496268793030339480570503796756788963880507216669917667990892385262374002225058409729289587579408656241503820718539556314974419968951129179164033385267290431753437545617557614662801714627267317738591462780790648182546151030653030608591112861018204707973221508919643737143544120640509757706812183762491287600438010298910796791407164158404226170179065952772090538889757756032691685683279121255924492509500627804900708674007852584007321929734170792152540893705697081203549381161234466197081994536064728017076948132120883410927062420024279359296525880780743282602064738200654939471440470432074603321557615176619123106845279129956950325970101158033240677235103510175532851058872808415534328578765456132197995404687441787406107230330864765123043038519783060702045816983868637050968117521035609464582032841374783730650823822289631515977264961601030587735798261277317659196053502683785748415097949504869789785506398059607600054642410445384302457428252630863589741713814495724809851627540786095095485956627195668936777998337201560945445064569937033289197315935945674489357378049189030213107440997275127906700340711783992660139949464313936978008147370609150145491361034329081404774994899402337506708315402653790122470264447301161946927259835094540225334499807227881316321141714922578194500869597606072849319098035386497141742712158022467761173272615976058734969163493134467084636375130601062742479030423084986689922699473195411251164668883737250498773776296810740463256410187016719223979943187514094870206011096519772697951011452395040957964680603262638200284790924906868735183454836118530384592498833240692014726740008441847748056430274389310903165256883885805737132356938781420476014008983247130430164284987587004977502833967328352471955283566331253538592713589284253461298739287867781002249175033947415698915117341572880123613850430760936159434671250694991511486104937293381143846805000489835220973529425087365331746167364585275609534066489359931503621115804524313607024543763333943571992390886020162080807964703257997613301221033467091734196204798285577920431314881292568520866622836814926354160030882259220122858599046545862671523548213769788131309188327439053108565291005194907093524180846183832847277937425753846483216184563753013831106210835384129342276164645463437667899423425656497653306367696370457887828470644786961693963461253478767462852614740541499831828973130895103500123737934235400163736073906443311493352079209347935404473865516999275537770058446999276152266115919059149270229367499852892200900360196350353650088678999845198456609058768421385918416890615557320791520564703654457362709314913711312955515088429251305780218560897347247932896372652151126896283215328291138959443629795627013226433751990197326302069183431961844787840237898814955751501884006050377803867663866927651384992012424836950694683649392914330342787828367525916656873766515014128013769646887144610627254965317748831797699720950587926988574734027154923797164997875730398497592249130500276880499680687265348467891744270649163597685461902356253157131005560470843787457936525948826367490095328453405103006169150897334750949846259077117493179942025011282497100621264632707874350881258334919455833466112381540836560395517820607958907012822112999972262310101541662609143587011598780336648095161930373912866954113947174459755310517291440887121301770632027754902728535481780140257455034652164175541350644003722809494562516784918736948338789851049341318112018519072477118960822897371607195925742683974392197523485455188894539574950356664124190507431559410013011427870528126357076976575960518824118474502725150341025445825125893597612868958581120542576896843696614052904473737813275242961527330168661213402910221072194899725442514113986113659397179009084962761566197391907401950627968261581921599893789412981986477931101427478952057565302381017099242765134769100561706240298445912048754510316161923625958719859695726757148878491274778682281200271621750142148064426982934828817307075135469338732043932494361821132335093600096134122682032413890145596274342278516104644004713598842443220991137459568449499647174537003175781263467505256273105304413543692985546207309869096133757938224598289998254026966295046924154983006553644606054333492346251308597796754962554899750397190509514382635504681066523210105348273717690361937164601578764630561902499728353999991356233062053433447181709383619607366925942422260545202633007150930470285517378532636115702930412294305699465371942018672245911625593893516723297315279811204201375593669835601178345587213489818334753227138019857570182278475201077045898057372507578995396445371553804470775481862753748159391121431296315606254767465884560532975825420000526246237832870099019091296276439662627421575775895444658334428567983955203519217516256430374110802556966365711443382281961810936731966331912622117997003911848245206399162695964640030297361455724934549482353818120478034773460522649966005032205865520520061618928303688451160133229276356935581470643618924062413508924238550679144904079027597988494026896073383154927775255970600902451767413793133100754235100333064652103010754577392068774093562042769300948430555912018271286972387335667478543560866612361832986073189518754007577642155717447138083398745795594293222191587417705861852157429712860732131957341424866790096778663842551024553005065097759091036515777996018313176165566222641185856757919637255281733103261934189710173399790043386773358750074976007495244251062432349573624584241132634961783849491100907003899707846211631656861029879716767855985398644427382656320977563347784079427810604789196170851373001443575233549255821567672185226099268200600469454894013952915406052445016158120665098794813321513463856824155530525361448328461901071506155576413311498534316157568880686044397252367759008613745739978728439239751983277063995246856685607825922483179365827764667875965332296643981862585716994297897921532267473339123419901575884589321846812451799410165382844063772579764589357206069779098972453860100286464756082927961801578585525183196459562680802700653366007944494684711040528664949618267828260294328586971545766791431370907714223591765156328857468378726220875808945014013741246947209050998140121178787601928810424666011524808827339656463971889486781803896619349793023056168190148661586855984874123617428546090934973639489756200821143684201340331052725691293638726085437882685366459784553179725824948901787649320894818199530474237861857597530756999276098174436495723396178464675658173678176306708462143143242783036081646913050855132339919025207189383284104120807893027843048302888048997788164516177413745628521609220936340778052175759027353580154524748428714190143612899259137267516903143987029038107729003513270708006661598023404247989050955002333761036530036349993728107968688997388670930679207734323361717302197125349564277841223023613279361790031263573750313282720228795550244354643313918909029947921871315607936060323833655771631985769186981915651040493069482366181124819897979814358318148619553277971529956652997292825502405643433004529895608148165088495880023191144436296930743629070411055261717516570711276516303182147198873699416670839233199551583748407632933448222320681126799000060353949497209947514012968925736438224043789549363912418842341221060021143658192239964954787117657162453419303065523187353963426980049324460358820733243530603630081498319602441584620985709140116913734245023085999004931827969313831990336990903230989994707173580485287605518023316902970226876283008448288609665244251788047873884052986396813342234189411161897310717945896735400877136533250881578383271036554132420256431312773569255236469692534741711930226797630411098530099220313171707382916430169202264896674744943545784855926055242423752401041501392286048534665819322201049880866989907758099664905723900172153741460659766814069278541472104527121618713630033701891688854793643792384699352821621793577190313417774910206535484524981025254171658929340624935855364582650327966241302168788558698531110296736610202793468392593219570346723610264702241161113634350919504139209694643545456249592329764159773864911939780207154118908286829918828164730533904381245754669285272568882521490192047962318446470078206041281892532884635145618439620328877937624031823505499614859656828147971424907105953801434562462048961016260453141312501949670386914550975500376927384968935100578872440320634347073762242024926945218456849415866064843869495066146274966352201583695625807736394785859041355240211188495583595868124303852229394172397215264970130307831791452259665478152743137644835205421713057634424987832230028044343390648936060017274950678288975669773858011251998938068336208911839996658656725766234465345499573568859785587224749251051552963508471646641983375040525821639359989909006246089333757554290187560196885116448238345875127776614986270617629564714921420253508466436684699196258597058163554806514953175395322111094757021766377270969981349033077976952544518595081523731935466817651144692829835116550459326953350359010418601466592705658226152494912094205519144679263379395755614153042777006362035070772801173090894930872647983666970605280330904911434232281660833665373721031122484530470907818183015790724924440400504373000229240179100849887451960611169720611156297958129827945246174660058254714921327438643510523109029333693720900354620644527995975236606849093713082251593780413177510958488249226673621425125778692472630666431373112012493984779207767099004077850666092273499841095394915602276909268104490119868009788150532603853924628686876689531636628429416599289716406732401432732328463206380510484256005869184163356209398722468731241563096343711365913962892191299682893297052144764887226034426832671937494076175880576604315207367658092263448404552332156051504095331428036374280339113344221696396724629094693062570936088199004318307102460129657298167456765966210344898830255046943883988234785993448468217597960833924427628336141574767324473843114637851949524824213950629338352541374506104159348235882644518515093482304681227478288167515216099546981520158350344293580782559113036108833415718729658061342569366410515122544756908671967667559813381865244014005056234622207199696016266540441154256349507206185028047667262586813747911713160848639059628928427796858878064851822634279601592500245951880025107641228330106688213040999074204487819902393223448475158926762401940210804633109794272170191556714088430508785557675404531704296449377809036825904000396563060990493924909965076446781196739511829450413146188302897758485586335611087467662456068125093296247488206155317754573005368850627345768982483934913777854162767200575520546482035658167318453757399117320120563046068453813806251086225011531095061898063111403334829435351368389367209455647737751469603942363178436325510100588439633656119755202454060611538366651383542361282908383652857651513029079626794283637010193946243310417222776627955612577210419489302013767991092423807636138984339476821453948419623165576000883867537544808124923649171579635103829870548964959566254398189132479454453289571138801025350613356724719299588483373499169402358851399766978521932779371054139976980708392017947128200384727608576845208391542798979581700087963341200815379412577502291559249121772982192359195483911860483687729688056970959038223131952967864396393314459637872961014939614545506956927275027176995181465410238758108349011606313776362948629032308437780789044977895926622217389681089802101415497685804148576188429756676760628834150113444591446293779255559874690624453750840041610027174511305724096698082320751301155140959115068153687268775965022025498435382434440518086258911886904284320996962858337804349132575044002444507144067701154238062386659773998716046973454810465209171576418913733604384523698456653108393763108992716410633357390154434309840732215161053206954226063571323321172302958431374857334349435481001599120144691575891996200653146763555439989329217400770669700164823915352756175346052160426058408611860836926818661558977531628358163233983930989256745499977560593874335587149475548527570381875454719941740640317043933150679567611851651109311197150557410167348242365033578841219965687901446169449038896443816356970538389164627415268161378836737690651669360059975422567220835916909438064583159219352668072701858614002360485312788263201892225159307598347630678912222361178293591793830566341470709928040684459461523753524758277579388052647678677590488945966942000288985608541206772102381660758441169489215893404242842903259428280622328463607372144172060152649389315656900092096825146591783193917774105997279797613768393280860581133808186474403443273320179987208204608257988502658229006959448220538147882835333345806338299217008544746232672238034567869517118855025663144621406480705587926368073314843048713995252649669648859021832235052688175371870335998309675273942800477834249425188874961804703623127738397080669671361116047591128696007576418754636093685899848562054465220825780564551156736608185030928676512088383014393346462466062108832581249300194241014401527828480988783215788735483460047176319829685622138090749997480003281912901802816827478935548565675266786831701229500216064279275228693860051503211120953667728672504717025053131561895477929215951104305849208056596663590643434784688208305392593894258468940914138076614691997878683968052711530487329380499035416541601395190243207841278326372403386801826470131427589109666664999920591778320426488991408089402061750050045846882511530103025736145818016750637242969637984494231669527252662765978937950513002427002054008833329428128775975072845325908304091519208561876321617013065122773840788391199429772356689920871119466909073574745743645988938790881553366221366506658437342423695810255357022182325044853276700378381005088586334011293574992089713396873535207627602038374913718663250905561656864708141744456329750011991171215801929083410200611319022342100754179477779088795170989999326269923129870653825314466567305953515000097257338119210741619241157873367980540108869100648472698699311147967875523763666083951920163110511530586569214868708760549505374721105906124371654593224717905518525836219733218031887250089781588258114179950594723089100589163703651946291131490986043702454984886671115300700043955091688806460122348295739146126469748579385383824885374181396795750369067644519785309116557705973638821716681172047923169474093705952676837956308455684269066699973907700458447472985136137428034733070014610314940119558622179877625770272277564935669099884848573433844086921684661463547699899769549164586272106141403824742741768574153720870057664609982393588440466592590747832275512364640984408779107847241891132205576719051696135656369820791434877492489681607301707992151580378171980100892596503159650491939711727330302258176701189935095942326640492070372238929280508955650612436261692788791080774070601456035044271440152279266322790526180372855420605986352851211125867979802167392599123217267695155138796144542621679401258491015671497830506991152064122266336482725689864036224841313913777451036762589641560038227918612750570228835963826492075986688684259566084451545658312386942597288111586293635591901589967010013772395331328885954546036134902891949896777549475660410057108926202623149581198966017788695132839218811821823229483882566985446414558370581881041957494245120626038504850785706919406805194500955201248336355925715355301123391164852252540037250130916025021757565473340216647348811178626936344106319445126106959413674120846424608994283772354563198543680277146168314129671668944269315523013983366013180595127633462866209089017075608578130072985777746942697975968314982456748058449026097440278119000212487746242275865006875349255623075405415493601334562849330405240857772903081223259719399283625816312425437222077910430521098067815225212517222002505559112191486946643240034322722681765079809859377764270058749299464465501140280928767322575147534285169021893342539424160938459494582804234566319712610915488043842892302023519470817765833210234067438991530496955618394352143684171904654872895225450669707897204300448888280959808019817838825605188498722233514434088802521371401971309472571206866833590907859067346568772041959250626619212265927159092081802633035106327586379600793926189070799604097683397853482750464928442721265957408662953679935477159253337663303239364693842077083375241008340188284739201723729485744096485437710238678157106864718324587527998814426526350654163610778353381232380906453810185408831555283141277370239142647802868469564941890557593837954541695512200425834393391354692366379963236600304001654233703484479572646812356246013622466399669619934928006455543909088143519092690658514693335204814402988873314754979074225450685672320193518146935243565388494523622382696557576306257615503371160611743579141748182518299764046323263676101737362586525141300655344317011937393861682202516979599843976704417855866878250003517972191405059448922987553192026171735279179240365379929019578413323860484011487032711098424133677720648430628622168346030071805044606131332277565701822233945300879467222881449041768438465411617042554877700703246372380794256119484577722874565214816740346867183357069189411551077867701043675976251404504972901554943830671968450116471229529933481663918643531158343029393936022438789018136929308664567873094225918848634150115827285629304775295051362988059668369772235375609804885687139294401457654040380388036901178410567176572016667482226817154641052529420054659918348051984534662329459116021659174513566349346102163407669130006155565464174050907053577855834678648524939932337171754845687251969760324184326105536521158425880238380968984366712344472701817345306473030066925878754935095560173404926700087281480452964247939662320412806040665685704427143866414006864494655828743943413089875291600534695286063669679888920863948470431052351480927126713063567687943456167649764876618061790675508724779210398728213165936505011959026142614214092870628272941642810610317066694242813671979775043782292224404856607286977556941886263567186075716672736627558390500887427568598863061244085811082476295043432641003426466033243864649085924731323945847239703579817014677915602652005499353761002769618091870303645785491671754290905276949976243089287594719362772852730381922911628780749019011087944989445285304689476867473213146137703068518349945912218655487725427189759141476503075601323354557740282012877605406186505302048497339838423655237189126700419252294960720607380625314553637170256566807812581205994901056271068459825779300797283220061740300359844981633929205300523430922637555861639019566089606438687135980873999451590885434688616529335193156953302525098284440398829896172305403887733275356809101227235361699280998852381987942034313040811949958478832501737446345952062473851808272500576075817797065709843240560808296599197605398057726561323641180165765041664400708608002310720327326998689219495254779814169737927074902201693457809448779193042507461539229955157466686277616503224312769276386498159381271080374186249887065068143209586262872846211730865195204559714594086013808334736711676309231115762890511111033100276964735988829985160708865313565095728511652652465286367224379136604509413626048794568473803293228949033057531549712206260474584007012070554450012128304221711363118107451420312062832720686055546116404119449878344097075560469366122877888798338342425286306298767730483356764667647720873984242145247012794208554711236266691946633015343501102324574352327588693074022033244955216569289689372884405309499377491828688122573698921849823520770844786073959946311479482335911953091136872688538861709911501435426525053163194991620922176823970859063457915703396751843522447490693947876511967877567354687901876183837772633869339941710200231527205480882541688551165492631141648816566350469989631908445900061082043534623386162329087819454452132729129408989747039186177478799437100008923512175642783135317412046372706702037478162473086308020093068225599513953507458448585210412477073342451829284745135960199378984533729476429855307980373952495314358509677196417652733810036218933506600288677615797299749188178426435103873482843418551151482714215125779365988600409858847562388399096888472674970426111961354998886544488007396074328020525451724399443097864682902491713311330431173171199388607669741835775780252185641408898471029854759776440958106074997876252446116902412064559068114282799326509973099655407191321880137135910709483715361061062603808329116994773597296087353947704559771420810287090457865117678123598591733838905250352450974815561959456696349858483024506183059703074900168562917938419705055892539756839251392906376568812782970517712622719198500171796228963797365340559972195471808739068081412765444608702995153147230997995219233283327689413233605716181681517612783056301337589569039437806043297255578018674243506899661881935392282297231486482003845054716062323421603550128706472077028519275121903964141273201134438175617367198189026805920828526354590907566616823799849743798340914366624663673358719605124815234031724418745622422452121863632437492755290028953675393332859355682153016793306133787754198536802684411597651270897191448666545172362139751323542787613856839827234448058319665129864804447960988884012605580630966566102200349276107105853391721691962561877727800117276994149222869584683075647917552395735763399846256276304943422055404220106169280131819277334413879317763356947511294519869337241404637869751196910914515046868213163192345451811523951451216353624127680185515194458705242113713974889449539482372036364444410553133438530975499804633450217169362314348725936702301478116742061873486523802959930569636630576561133545217374000323570996865666677697227623378377602548225976951012860766602666070319552289118584383072161140857709129453054127621339755998375463984885393027594964394979881207594686355340783868301279599855694619839382429282877306696446315964999574497846166755466261969483648329214346800329572939379446448611092464097993476201245108781911878833982848977711154866839570383119949011173666706700174320988404796239671555869032509656308110554652162591140677502081143879528067262712044552247352403029531680253680511281619511770090536611373120557462471797165212567336505001987395399096918378221263798202777585686089456310279371761335490834459531559519206666862028839486062930917977228522087922615954802092125503101473159004480079868908199880890563690478607215741723935370127374545722552255373547133924086514072801610873466599270796560249830980977950556876451552931474447968427536718501921452613570234897247020431907203871153325345504698277901303417725781783020871054509362683720293836302564101977631396345678303544201813647372194847458941257656325306323438681553180805463007445340921944267907631273668551363878896713228750732130351263279433559465415726732427900506379695680192178902134637628489236309593293217847792759255285107687027937531653898613441961160782201470148533146768421110802719621692177383768748708831832872355331660982470302933091159267537093839249273630371985262614647420311528713384968346535054037746193496079883912032206194900952086791647387326878518220296625633473186360585208792766957520928701280254952642538148756037776716814661961196110911108452664753412395265177206340844315880440009718797863841903995348760907724710150849603258231483769323599311304051698362203059820670658560276265561898442376233325007044850964881754907543160394206679356877747420277788632163986699222217303712163481128828983590518216460040278557294381464417060279215707061831044357173917854739171957525841706252867340682567693518508737668190967671565638113878436554388719303045311605396243289350435309909054458906115009089969801316595729974522905606970845647391630970201724015655817750716865035348906353097189368728184565599390490928897774350633353505750593718371432992411858888516565555681307605852733087862273944208525986268393755238820506432529341316906979206404010371324853522177070504753676948873881538525195010378120388605485659361347589011820509256140128083860253342956090989967520354720187343042457985756113995866651781660671252853013141640206891915829427198432486830186294198320532702570838590331264418596965438779699376027557085333732203762238201963984495615024638048869960170218999791569507969473423100078028328435543246160462401799831332895921328764647874827674534709664088690342469747336255830451698285022896418284518613836002315494893996791562710717111422708929993510360997253467710079461154454132695287187783370175083594378004714770218350785065912276842355358175335028790300830571252261181466853686220385172397504781134269163981132544110392573761338198218451464604531715746684327668065685161053883266584236525565557214082368998180933711203457860768928902245386965975563070837263814069048020252195189360483011952418857360733373742394560946501473623375424815049997759259737210169522014059805695179888260421610057013324506738230236432344896238988742686093709656864087415956027526783586061463132430918381453697906711422064572100903765951278804628179968170204176306580796753807319962759934396672021833566279094079319444161419464214817600214697980471984267702922193094232812816391371089948458918321362143333200470367358469533123686353964817047677338068749621140906408628310977282011987634389929747386678285660129482635291967363897632903007819498061870523630768800065320210043763185510691830464001493436864163767489165086630457092151239938589788939438399077810678668779747817613788543924830066271310676690316838067648050264839041232233828931703006696946276488765187720939096550052928724342697913758042167803589047382826049231327127996311585171982418418293145156945437362771029916364589297819585123059945474080795349343599983810011950710683228261600004595031903786336279538343396014600737908123020358062866714364690320122446535889416389091948264632446661084062781503646379468496368851334020382297260616514362766127979881858186769590007359012412875667397324656679391558257240004919508830474536841044187073324287778889395292073560076405685258627829312350719937391359669868799187441860790832242724936036274687194869078244883990181731251556405017732654970583153950673669286457697391683069472958520446008083252476361377086876121906323439333469100083760083982853905015957692540063050908386014020632671698599628627939604827572395637337465159623650354345991556066204288060449144227614002870834034387446423775930246524347188615492429976536383861742799059253359930248687929410044736692983794388089965775548795955773835990611553956313855071710388207270020258991347194288654164951082313900710924761471607799777156554662378893049911319011816602238459145302290616533293331231550776461023295637511702619362947465457894665670503116387108026989740023657648617306938920594647458331775498318619080222436772981614726284171578067843996389381385113672695263557923463890852482455678956841828033938506295058402684076652694124201029285736536175739829507305095875574083639863392104282674056041798356481855378694518857679898211254474043596337213972876941668906270800947151993963319524255131422967081104808495932889986980245693308254248961434550325868342164696082528963135215457282937410601600130111117768795063202307606416684555375524568856940767392965912181319404888404774615609104302518436327662284479236717176076279792508313217192604243567582808157263685723065564133243777750285137144315245072063533831181022543629215728356111477752886125119762182664689633119919432834200869524521290866590590935725049951082898385301361488258893741890960575316254559443636756123329753558903243464898143089205884543911992457909252809046081927569920781076001770655408987246137436793333592040536963941349993275092027592604167419198673492386992540106469652139904492169013140850669315219836886001176030643619760479170238836498696674007827061285267250120378178240269770418959762221969528844829657328026897129202619412912267414428838570999855944777495203566824632346218204918086313514688608160142291313909512488234227260400168674329688961760581969197037248927136150138525433209843122080621331097924388669712443703146358942178719620381516177240488394409192373902283751307890274851710336500151880995866817427388131168105158629108893572359031644792045982886525586877752452830716099544259294744356202909139012994618138197186225861528115684372450724179969178340886818685474841686752170512154557896830393566149537812457899223449515874888440074790744472841716987388786523662649926288588451500040355635829703026121751940816892396368535735838059931879675983083596890990199290038929484280518368785315708879608380896996776430708554460756087632504696660579856318020111269129589416744593053692236632106061726591719390809524734538585765805514219899726339504758266354451613384380564845166261353461195692574059452447939998161909263502237925059915587057644899059390344323990264716405574424928263689290349229794839406671330664876077117180986717465749017751151832825252172153147557409532033738830226945663832749106240401116595889565466069736204780995297048884854490831532304270226945240607025679586062108402294953371853317160208263538879437215251471253737025990163983705635185478343250210345808715149719895504815711505793335072104221430178030520225556796733185306378644265324901168979579790914698632910326195715527429194970730310894755179101163743291124026096063784468897705337512061380348733699401225960465406710611438728943330758183272509625792670378285953364742433421141809942283763913147465390760736160968963328883552520920385291981656149920384825661409231893386283840684933284187957307259048220517379305609446324850137780115542494512485436594788572004903077539065692440553360665939925904924300923070593125016774751574128396774982995254461269766866143019154671952386254280711855640926721266074428066718114517237692765914279231821194603422499365795700199151797352394497964115559268028091808988364876832206877766189378844017920599861560322907452971605344641516708388173539376202188995873758464446228663440531248079544141945845310139276035144866894559532338008267055386539218229368183892078511192850153809932405223892965947398757513745638847949654565248492442909670111397046988467974050298949973160342258314919898828592670982929874864365663649352948900007703195134089133772441643845013185285176385481083037582761158859768519907802373724745942382528418529629409138629321133860280768763274381208509588325626448332297559489013176309393771997456626893703260294165181260741336091242009045007251426012976474963674443351087890734466547056811022836756945972145048791315780904668106208149600566011698000912821266953415722228633736015170285041064327507920045229291125754549802419972380865781445233031878066554569982419782311759214392143375277358903277229299278266863266683037652781824862061360403483561127466537748721711075704474792818399187594388305022369367610449650558886284323878474252149886312103809063370250218442127156087723588226472589682255538267216312015084233969731528284526383168896976207262056548140390355900403790062903673317451539657362707712560858606073445732845795474077888114065287442748374041983946160212212941265431150652491515985937873359785007172918937955333809474557354279071679466331163891437814900685931938168714557739775261657689843947682035184772519130322506168542352047734786266987360586215533062287055817444388805439142345829514139635430549245950685456704778867060353490659212702138152782887353144499149543773437987272538359336951115998872056067667238748756178520675911444428542184283869978610331216579839823374544271487284096635651747509455490091980424888023584617825752684856753952206308140820551506128336932272433283941677759615114021903663408067358603426922364425054245217732815511658903334567983513734782293187806904107338445319341617332834854213804082326332024784628631723215289016546881733042176373004906044643294206932484658376282270500447476447564665231965856658009025338646040342692861335913753713771392059083284575662113578930097203851096649664615828374295056920952977551610416046875941218792700667449955197089973993073386671429830641760551467803211684535469884171563621598780194344223263816463878222370762373666574584487831814970292928752287086457442670705750596928373264170661749484225288048771748230537355146856223709875240740433600396272272908215368262782178569585634586025868989045418551640135714666844961096359506845898700373229802075696388373625792102749615042782434909257317539564514871200666347615759547137831729256588083689903340747706244337026795330762991300152292186044329343478531387360916017843893351904286013992805384738297457861979755778648105490157372749849411017430531345395777523839800343450767909387568992133413399644826679656397974252121847918081063974985324110503364206508385130788730280791934979572663319849941692013980956531997065578676063744266144725142832827303406709214900356134686449012889946553901510681705253241962290896454494102689506214940723882645112302493175756136024205545726867645794287108815046595223304492578650503127529191109485279195111531747078616663248259732873680859751707056176668395169838750770715295878027092734392126330324178332706805085765240451734180267417498060925101666604401940131683434099063052079453089797361339251284391023884218137637020992886514394632704443255104671349634485853645059508781083474294388991197399233046232809415879070514424907290527686257252982169247067834130456115019724698861265903077429089546657142213950822077372851771399934314274583081401131651757212026595536479978093603567292468557193938896461836612568956949795620524258571869630558315687542163724430231712454410647485047024913138358366505029301474777575760465297573462960709697666589953936958150133904901307382639710056100117552958901305402288657662041124773566437151643257708662666827873126152307411414938882565921260845693518988272008903778953684990787076091117585745932464022779063905112164364136004621436384764936978742012358790835022648473247547175373637144197070836726404619390517862782966032454611438959475334019417491819656545054068799523184814330272087711799605030618406975060579918537428469486555326247505441060349760858037020107896712128640584066066091139893377397850804399328892786051362548810647048162283065313001094028846230455331311349944104389474372645693538838399891550610130333516591918675126382826908276156306557127929526963095499365632547822972433219549598704709043998481760308242003124236906892903546588914144499663269978209734571151797740657761077627632989203424204644839800363049228452241232856053300790212226678916053928358356811107321055166402566059409156827264063295873422770189543929573977078787656124046059559203365649706443106889755203151412031603796266216507936642310195021512118928404155152530513961863462699639679704388952750664964163509484269843152167627274990201052677068574012107256882544347754745734847640795205430316425619196656450146030837479344553168076298955721116684756713667562174218778821338787820924993643502894163828714881135917718593756668816731960987761870979271401375494299427725302734079063092727591569328130630709089686465886777532583262947536953604680238811355505055869565295048475828484557083074510507869079199853985781631574140225876799919518697006342286809496431888905599907712220788968967149797678738535123264336713186733159076785471822856396980682906648115862142326908186043531623283557510843288206203923668899921873997586101044675319142235277372068574284246666443762030466253820646382981181521025138271992097970896965673103047068149663512619203905780556167300545575420653511489686777359726946642367232754647467409420447276760107587223883763001696006363988687199769396118718022815107970204995109129452958608959998977621609418771766273223030974881267336217691873054559802226793618129768924809142274093444764680729944506678184074247815220537140776284417403087080931045942155113362975429112942655888538584497567615713638743012754268669524784288660868542210741428680901516884002486783958870804645978909306204665611483780250168693284951732469235895770559209103175913420320942996868133351365393333103603040046006498279615309525800422996392151574188142465385752871435515086263567433354310121771288850998091188483262530724188811839561695961661122500511082639084330265195446264440226761882197698334132835420743209650400616851448806184209966560319021414536091365408054878591018720037846020257416662311626436584475322235555740170708769283017820611881531356536011801970571632468367124586547013205469339473668758526910903213018265755071868390675156746618208510847855832075756343769955735669599262009089381473560367072597531712368669217372943181976545379615309543081738290484576246843930987754340414212763411387064896717821264464487183881718701427876002058185294121725691605532628979479637393545406483528240109474722593336405868951289539453952888182514565032302346088605266319470400102474030713440899462363246657004764194669826553739457567525377112078283659497522774351329935120358045927896127413828708504573784633350255940253740458152415632406904048803631219730836521802162067621808788748068575482313268472181813526815381088378184054966059428019214425416420469347566252007114482977202252354082470423815439367160262626565553980934265945850980302647709531063054251278556050282472499061265661446139190773507432860816096077701486102026646541872625777001634685046910269944159102020490643652333539179755342522239134729840086637202691480991620211411355368274114547494171414494945187034789669387522877157039229149067957251665639878607000705193828517786668674773464160040744563094290736475622509181573677308470489409988636981324246731869671457119315230907349111408309249467373577634582429054049613661934656692823394396143354615693435790823278729314900200192634962735171331690159114295340770133853327558587256276523117391419819293026281690945454062775627835805903817028010517241577574935390938214776003721836738267639158808958260998243378497703700599665572033202355570070698370875592147404192400863541012146199404757284695440620999301638512516825758905581813816494403760156237572549876056758771347597531479163577317313266055797021413130477013994046500228149707208940186398713604818394767217469529052907307125871547283815608048238747311550729300590227432191845309621062551445220868704988500322892900704549644311033721646696719169225580688495457223363269794457671819372493199545962021488938017657177033367001603513823074774501944266143292845575164877961496248495654338097824609512018599985149817277683939119448168345646470225814586315520834613692641647577273688422388219254937720191565739190531824393092886288863026867902546806316267474580367395512557450683224357580635547875294359841967820697011576701370568952726407533930693298053380718773547274849109909819080160097369755974204482673570874954404748903461924254688353561391983341260087889688245709963860850902979999972666533202718314177150987193842146621120264819195676303236842486780999249528938893569546208335180401873324010784529465378822943191585090521111480748747422307735604257962945952774253824677570834880070725209410741796090261742744251167372213618387375125282849640990256460272103060545832170225389669601461614825033743483054117363684178085047598187505266164921088078431369493765493840763646266078861103106859382588804370630820469767829643625396250843416296875333151227123117069688934905332563943314496627183347493989366387022236871996219300909992775392296132860534077866661463054031485523191268875333976273580188502009946234439864524606561875229879725392637883688980171264677756101134191746303041075433736251311155092685560794064881767472329950336465852774812225241925690894666359102455946198058744658103378746360371437713916106200660584234235319333202004874520013812107693569938244808224058139813350105079333816644312809099106940283552651295696185442087416809009724462863324822218615859567784283032240044415013643606023914572563649093747681948318088315862169132284168385597453283114929086467933453974311686853369190690855186545817723520813038380472889771722172415787664305659916443262459533520598242114000181910629486917348762705322169558240444249557372681789226672478154680666477260534505829552566882233934773056692884098217961434042701922832313817334211633409154144267248442037541184593099619192965713743105018903135250849650450533613620092822251924805094624537476182049821153143887294288027809636870658458378830064573939977776011644273280852839100251019220244349266916320242667784883997233097857526496015008564225650438258430860829846915313348359802722202403174092457827778843313836526204472436570985731184493802382431083196687275361044884086827256378657843824307821796707961833690321860442261274497852906085345138119507646115018310716169394818274846035895121704672990262099846591998273497580315483331276287227645265407793829224963640962625140143413476164649048151194771174857902771596362860190010751444786386923342388312867764783619386293754889301971154487073370222743380078607130951042142298313265322077450196032075124654176035270790050491315711397533423167198473206413066681073251570773550057152072080440582438112387267897414370672724708662288143536836097876927713184834498237197227156036614561150714810136389008863902008488158562390667729945030078015382011794294967084257862827029816705560051385988696876412712786279616187096186252112846242182762150118128744120071303125338752072104774958448799954045237406325422146958418933899274431346665530237782762447687439228004673699008959434119248803276203371321528704404077238502596023224483405322283817481095405928015959428600619614664652335478781053432021269990955802600719690849557302740508594134284707194629549834906432740468293843216697313893989926937763331794613935947058141748503559414627198491325438010091889781066599608267861929592249814909031927637388730027158896114441861963793906516312053884078038127652988489283903644129271250538127601365741644372716644889910274841863873254042409636734606252183913157224125617465566127504971144507207204775499548472053587442169964773098179020872567498040336163906445057594824867983312789781602679971212598712982843267667982561919962405185398206072986692394618670971442367187684312279492019678081174348686173775686064233562742683627373110979918967288672369613426613231772282702568187592532155246692031698260910664946508292096582132659547565804683498496067204325472662797580510166592926369590776823913333032505623181867235197469358911562802650150900254261631175596121624797895782924711634744558377892764820996208638296216496842760555105356032856797921051255046197500570068051830249455456035392447599875124241856842516951286821884527961044488393009672929766921705962238094199503245146863244216922514831574773650555766846311749992581149100056279861477334062450804005916470006159863142053783897036782452278299091892748496627531108632732202127917592283665902403772427816107206889307002906010353193636668789768707657181086978190659428588909480184256854618367348232130595162200515461429483585288452823389341761439088187413554158142061265011963221350983217492160678648758442340095508595906429405664307014999314672326208090440265887978014538073749874167160686576616184386505705594010695169323926677968975640379246548039761743345531305629649549058297678061581244242388068517846267855675260725759075413596788395475337779319034020306671080637067939797814160752484824270094062415589869063346635423342676767915648764610095850590891303952259973955202262357012463874911762751310988275072989642322331615787498018882983307430787239444866459822124624152001259124337137684311458088165917493025742820685045510612478052824972966537169046680333705804070612087376719058893282434204520646175992458210650624599264050964895201505516249936924618425474605795077527622000149807625779403290266876580069766907536323979887192144625472761626262747568662587594144238051125225613206182557623578908980422262685603690562559341375194087442662641631128669800914084518831792807007665508205245933129806512123044551771513212777103413826063981321048629425376065965421440676587065766555939305414299241845404790267633678994423438505534305992461092607799961589620410068259255551435437330075003420990227443987685616432106996065799320518922149360291057015545989598509117026529975288517905511104310144909407165226117208374628836831716777046671430523198381210650600491278183792816821227611511047802002366740795928194484817831773262480372807003910632046240267486479314267742773614186596067780724515266842093230006987237988669104297890040036027973998562287862687464317990689157865121766733624545711088203000427419428916203758687489654424487925921283397027016162691387050902870324491431707021610864132908712892892196066690401394505686153889556846333387580130938987111358204411045497222158155762004758599557468578130131896248726260824118602823023803454870199918849761779062282132903832480368867938422542792982752715428779100283980110230617533077216420653250472804538689234872760663486695994964834932131444274028793144215077140582959825678851869250653035475464945902771990513139107900177043089732593935165278563298769311704092636374424230470646673811951472963694706208873345615892942446679456756506542802750448607470341024877600884250289977486766925297760510128957436853225126455196872562144993102889794307946507603012262030455968290808889238534932246656126012905492077941172155277356322547616997251177030987115425500924902602072364878487424809924608252564830073374380426052295930291229831822427729630456002711069057618991514440987701610454402514905037543144076022532881211238416679841297088837456800162561821539985468110332041643800577982841045057788781603108138001806746334459180330477864754846715700714296604950140471908390081746640354077892536250507557433456286064380436473356022210134748224245748481377802835899333001934070687568542335780521707803189570455560090856027790830563151914839565978237593614867942351271140698294616939882316960383180059294469768471127639638742671561260541479851366626959086260564895173532960992961754584460103086891676240350991598244269387540110588261016977414948123442136026325834739782320630285894331629890629861239313495067281875380760363325847639046070527783270308173680607974524515997332267468063168785514366195054626559818392137121130859600790766117521482746676673262190224367173157725329709477974207541318892318541205684669704834724685607142888433193683760820545824806682913423457021916105031839456255245162211260829951965236508522405923502836597245823278076110986269342750287148522039362026971053307599030241918163932185541324379329456446765132482312509429325424326115622618286170600589745787517955693279294367352940501021978806849889839743344137487438105032182299688961194615558262439398206332205116726976403257059494830445095443495110041361357627969355941598517120603273031716845123913239609950885818071750578348446596140478249230638758322366697261800727139147722638882119930854182638250580623971380515685776111821935191171177610408469669290504169077114834554345775299236489848278845258616246166931410485819890481063861337295228641168979347122130839244134725706037859360061322387357185994002000432408204073017645239826670462086641704103553029800924577187381085724547522362450530437233666773188536895145411447416361843100752693600991536032137246177010479954388910283064974982847058985186077426027971967498659495693424477759715192141275415025942554321886243410222101943956646735095869745768367638147743596028973168302829512068800114748047979429479285212919424884293013984199276180844056867318999762532289754143393801271416505073456515877167544849660850412128362356165385109548781447222624698350649378400802719331066152835706839736519951382019623597330373961757524282315839345811636931854569695311861557778665166790223986341015767177594262314728307664344000512206864955030973881289213558832301405384093260015632917002287760257368243367930873685102998079656839082842583293361093185085094910264186285441932878078880731233935668803168110090055719888448418346124018049269833492890174897423731679736622233459118624070270702174908658162536246836546760173497977768165861293022666731624686944463720827171526185492282830176362484438060400171426846813439617210655927792106858585818714625925297867604288342564653591991684014450270447346279341014553641048731462392038957439293008157860426476154735724026916738636119475890806092049996325629487668416675458561879631697790280172172314336495473087640711866748159998745950777883613471888089274298626396712706095409055097750833271402892064494863015873757422713985811139690275281486092077834261448669224100276874918955606644858747231342687043967734093238145606360407250448427668591349927073105476122632936451478551074619786938008881142552434297545926014169506465814478871364130651915269856021357012104458700705195226663122565475268750989634769332109187157752529213173041443519609736869142447439749955977368436879758591134553300334747770321896090944772284294575524618985861153748517684872818626902018245659648419695627606960786290049796587534118793831150806666474682606191480298072583943192821778579281569885580592732140789650173079301519561523282093184601614888126120628319819812498348451619825999184629490359656019102651657033014782117949328555897924135388375237788486088048923824209002156945690516640486836743578219030738348629878218553796320614766100344427585294880217478863286135077566026846278920375310032727711794748538096780665033940468719351473600117535404787714084279017743963539921075687791078350787163573733821164158524669472573908243133841220808659565696247384877517393839291692600714231890878340447795348394353952710183547245370628337001601126473542792884488178446577477782806970563084354498235093407521140438506557659897397445347909849921897279480623606557192543569904896924989120415759268598079235817961178953198509955866682862632477495922749386790060791380710077456561757513017392058642897089582714593132284993593141222280987425893387119616288273839470905640582429053556746975109382871014035020540102659267942893236431447030557239653878825896856181756194939093422104723036033714139045062050477481853504496073418608045934883599493200392679431469430922621621912641911798776722312027870344876270558101325736424010861667812360737404978328925851161082623751556454638845395506050384781952758541268312987525848785231725017012341697593348099801818216136652883410308135784873325925668162954158262309542751748231661393993501836041154657986595037664980883995250008857579828605615265283938896109871584708793224255280379480209950616285877614970695280350983855467611848545981180906274296501121421286154914635223546474025679470635632885382617370597331114413493581017945038125086343259400352019945127576330044231480370509965511917714051948704723725849433673485668749584913450101138117226547641930093237367741818173349518122193883158421790675318375539051414967854126773627233379861504249021388044712705846394355237268373153854121591444359430122508066180904069084118371582678446788381101111173531679007407889744157917930958885369224994988609663149689512375264931528441628774991434645246638434267302112102052354395104621717864331261001367127871938000130719618918419869942879068071991238741667071387699776764396654362390153848920998224803940755825747564354569492495660999405715797229467954983049891510333272140386378445881614749879908385127853358054688180725967913791828255976347028418327473794972980279041432546605618162930480682171922698182940914158830712242463510085180536744812436866627572662045547022788643321927777733556259102236896292382160007434272347323764493600696001246218486759811830677646348271387028669386844630236244783103469361076748756558429069551554656784812676720001717965133432670371038413161046188796905492130782162848346046250810784861572398801110812565984396752533596266899884070947482587160949304228012216778978809425442679180942097425315452295307026504060888420853888794784713599457954675666866191261514860536970456872968061948698942635284901929430762210067760827525354100517656269768588803779310031338444057015885984072643078310259395969759793577260112927654403690745507443880316151880969210856779328097735076506041769269430391624132569457402554448771763970799701110273811463470952227947873456894876160498710539973427843376328188036632853533986473039935825302546184118066076252778601094038151645074186175072729641918002359996658521724915562321871798554569600811587958088512258535286675440852899245326333488279682512134404972232624784562108252241887508318057397299935379006323277926997613346971438686423588983855201877323063481739218625147704578873846197893886658121279719850304231629792167663953801509005304507479183582352593071508105568513965530994908667417991747978587569786836764804990002562695833460249289254333019908924817028262339175584239680222199957224190072476980833403962650186526905606359451376177692523412507039462136374357605078871309848520483785471510256517562569894168286704356466121063482553979045010779830925528687982298970966956434322981233754475429920285999809882359257554012674226976333501386074135896514412158515176083632116330284720649341893953474033915330507058537923035629013078330723421292618954942723950118440456503691955868114709485235791795379968145903564864891389895881458374209592646500138175387344017662096253094004724224727731583864384296281657619454081748894412314477568783754503810548457059423396531010110814598352313028768311099035335138045914563171522194233958263383156440139766472492903579886436351499729865224819762425127845569411613964845134666652858302299216365110164603683083798802259646177238847131988312931483162063381076422185935353894288569627821131787266911449271004359839207867627148372821408558645995553940690784975108772020874908233764308523316473725523943977500887883124385648389481825750430302487950779544138810157627951553249539044128843585408944957275990033129070043073148970346811225977827964888590735337759021613820359052927676669633150976606843289714283843639622739555249396044847669970960277602354231180833656446975912638927198040048763079721092327678448478162625331309526819536375396112141373931704328288945547829214555800002697670362412633292096915989644286090141302614662810434943407099961546290482777986568280571480535303064599926828845139222626076044171818813905337065582678182667033611103794640297251962582193640838070611012013684220011680662759368668482025889792231814554520018707967748084938023245812399286393006464220415748538451812937858690083606108647221521995078174251734474961447643855896649419723273719451671812313073002106056595951804162890032664483876576753821545180228813329457638152265844682248575716192793112274854704985419302902959655674390769087221981634864980736508770415873023066088665248465919757930365422668216618520141522991056166227897059435691814068799302848947761120841230191816622836780950085188908725937515475732091234527611528911311077939874467335348203043227007688506569109125090273986218850909684948922803168969503774415482745599969747009397045189676990749623099297555043133110025087975161963297288327079689254150530730069543479367326437799448340965704798287680892153577445855232984992098966158594774790999824000401214638363561479661631599169916244902713881326757232356297104587889686047273264112905491156684682532634165000081809742336933845535094936932524430528856972807636219488588066855058042361545544361630376060988004265798307606831847903026326146192675630501910470051858303765276010310643393841067006764409815801812207018704540366935975413855505507660445811575348123807242248192923174707590622866637388655387422114262218599564682665536853744299821582541071334646213064623856019617778465666630321864887293846422295005395882684891442909382036868398314360919181852601790453952879117111494513348229842147992183226985063408633605003522207879734423955593661693350785316346579678015176120206133789387234330925116922957664571234786685292320517429082602712885357946206408979269555941029983492778384662499152583886335680095790049344712228854730540027627278446062811380875475576896604096321250700512226180152995144853009785563795621542680124220153232156075825176623516430529317175002801348380382519928759042340381444297493047506815588204819593816523493498003698311440229636762340821698411455898396163853269032462633402690125382900166547769389179903109976286778702299573225006110698387379622849938651796357805265930784660382163285652221115783369270860457419505492950239799944431293483048546455371690102109953644855969232385119800444715083877731856970691344800205252060708248061666412920820847114118554032272112421486619380732467614252214272371009415818812026046809996291775994534129731326684783127933357610772796792727817139029269799762337251658879030935048328284295121341841942528721312311450520786811204750786301625688180544613854152076146736149187629974949316337980092485891086496289402770704767148273250522418915052429083130390363683865809424425318943611009868371965011140804802944814292923928236458244358699288684911923096880419710236296589850189553601096166396520531724213776164150661199482230106330059823914549445066926874553601519398076738103719928006857391971338840837552551037170120755943118412011328930341631172733517854616339155904827657660829076222036225092004119825262301055881027167339983416136466388545825019724718808478005841315506924570948976529534468218311980925571960281580564766929709789248923035540922413135131532673230623828902181143097153573491006089539044399383744118482805225193001674076183162276869466155036796600626061089116653161100228329152088202638044559738584036754188284198669520998799355401236471121518585775018462274300554484746029440241184147361223359869821139700384488604266874228350536690180884529331824265346868661734040225827615211755784801894561016663393713485560306871161404318636496082969063016765655248056789692629870107853263763978205030891159349319122299735242629188286521508675943439964176751019775965283841921363681813562953902971960680640103647157202924360519496033146686190876424242529893744598196546209860200901425740392573676034271010925252913953563812818551238134799798321115749148967318799967849130117485502810295736107918350736829919998671407410460264306487058334675794333283758532572036623705620923080840235739792066681591625171510370833904691061231804790265484189417458514718904407575071694167809778165055247298850515290181317383407094458164976012370568606381769779231830304012111290215267772550348316146217457089355986971380740010503905441726817974631379379026315189534735402738153252824139603020445731941718540599748956268550646816346130021212558553656697638107091256589495886000750210458421007961894476637948103675156846781060801446724205099417455785460003927349148173255968354937988573680157562256673024448404951653556486780593472129797035664284457123756037629962142902332948533978051353641188951573178094028989674297663492058377925657150377024381761690488878314513205626517052815540267516778072415249914023031369578186701743628554039395447089989638632293968037867330462888644058635302733342684723497154681310796295026175212345243980572084283181731479170406987339957406399500905266995049724409911647032909671276159900376267225770939324639686932670414008219610624934336815295332257897159742425873329326080189689975687392442339850407418115762944413312410389753587191884551444261843405966915585825697270522237402558982536556899993123911270324412681266061458810774097977906105273889819524177650422213392532084297285718904360719436085017612731116243158556868444200606177935535396492300132155416804171528957417196428350931723274298511004044404097720863483906394752840256366842930754938553419868774709336333573418327046736813023327669449618055829254045006412786709223634611544816410461934638479568744814658142407893595054886779554762187176107252833709936446424493872173981247801555826177336798558821213881038014904287512698937430067121414070350440599947507088285751262406355500134305136530317280699369946864597850080121996585745566367277891281340151440865604960312726958279187113144690843444382154019345297311372278375815649454090162779005201117241428175413442904661130076026961921030986314363785498762353920135191156086480981786583036979355798864751314145524900605208715835390671566826471831031434664114782149705064312703680875644892335969225121941538651583638359659092969031849203504263338460940741030680433056342265290277094801357426211228068755009430576013459178640401722456381572272285397196183484335526030230066306317424540468180121877120864369985693413176718878182018909940356237104497995081128368912395938378981424530223307703432559785299439931435935055619467322349821347844604156555540769566740777676215473569017686418157175031806981115953234975837056596596421370431116959758754724855855732316870780999249117678191357203704426074563617622221160130771219151716289805718248375485153540674115166498820025585881498288625674035713380365139563310908801693290356996765105326756672683739761427478127019314557227826647023355722284335699120552771256018849926666787423957835584744638752588224566908142549959963777549795892277866309708132208999313487645961862371273839487183284201088759016291591773742691815529995738844944149689034538525764054953222528216013753626125160140557350721257487556771570618844359961945628307064127361687236874534900046507383072028618246102726751493808247352937285387793858735752378717094060439325154513534464609965715787758178573177312270290063977109591320025418332072713247510899394130324149776516676334848343672262117950207466388226017532145772142094935392803515951673893329747971683618386117516131380984356482081146317431927573971245450556809753419634716471256553889165145186401167633532769571297755108662316806549139302590534757567166268109173892405256252721914639217578919979769118244979173880846529904541210702454872156977260927760773593579270405480723186082744767222477351645745435085187702073712478117080822920647707374880449633925094985297088347920523028374067516159152364436354795045702311513815475538563435426374625297427099720114021888568427433350921816612565430365728528687611628326449152347669536281819962409429584719485089618205622202801134810394027140983267228809252737936857243435868488403478739968981037228654406487137134910076432038392024109710064684714011382728487226099360358591301797653324633461810768816570243330154219222087180882616969074915752514587305874114812268353562364170647011522250947693680489936387292353184785691132475928698677729391839873904695901320751352583169122733589210214040638143217998414784492022348711370427063472923228212753332966948723360055660555493143372496598633690455937048773791928436331302775441317563255859854813271648713053897121268180825426221155812242036231024834477389943088902675624251458940858345420622109757020375816020880427916614254089881857142816737826115466914395744925107403420250562390765363622208085032704555748145251227197521321633494583653758633492169582177095740134831016132142643194979977775694654501966288842515027220873432959890034881672469813369128555523445372763960569952543498003574865004394916484003676206715788855078056700925632934370552694504097327603744419104332451206633134133550502083139948383067709510865542536039113937720037817765839424302913517602630161016642584819173561564987217126319174349362385062040002834758025308970037282056026726708789734936452841168298509850071552961388168364797437526188611442341511581180517292181625811816890091784623142682756238384670979882848805750371228605424638557927240749859177670462961284189844266085394547671769981293109245348613407080392542564006253642931478943159060433323154039112404133260926158664219558384487288474247906810952633275966949897141633882322557202637767306052590309199856523209937429877605637202711578957318989524657165183566095348678103860751776276894808544361013539767606366561036846163664985843181126602205973158983757790461285661524104972084726159988676760267221061213774721954971470416427239637195808285966792502261863894090949824466405925735990673914165190220571000787399515364498824926462936108613611565544190650519079022652329474226046024210152960344415048071672810089436590233183588622099448741236209125920157451489081686930977700832844439152369682433548179593736826250163534119502612252942739660353321389401921749853770725555920636158226143712475121639375619206969868856117086480118115563062561968566421975860091207266177314814394346611825668074522329306352189259578707766841003315144448483384724757601495036887158696382841912795404891902591917843483744819286349725577887982993509023626937278026733448829597888848828957565249706297727144606904930169606205675566200876786328915771315424914391594176509500316101248275407297593125647135620171331898774969348048626607706098236969456839009087426005229647844640087420580919848522147501805749241053619069277304536267331475783908607649523233878906167232168986625115252344461212499961212548652927626979178260736131099491425273151339512976842964788004903587023634875941162387161529476821600547989802212074712977035639318509966338146935523790692233907375439343995196662756940145600855876245830277639535212095697130390150483504697309354619076793904364699443754452412153246985581292239246392937889529620577412806546573475538535923307789694666116411566601518176324720642138359560001601211554697940949177331184393015960689515902342327940972487528421355910695977783739310332755647358835845650222361563198293813382329173752330901582920138668295298604704361640719093858096110038899913840725814790800419342093287771450860273137845212044844484617802663111278318177940446404600384058616876769962212487479402491741883097653582104800195730200518182892653005792362863802342640020564924207484722848296802707799001582699695110244502295288776302855467548637822241955449824525056991187468262279560566654671132940091279365056548734202401532913513105976184538481034530044079286123003055233044173421200159355808659815851230177481382696204210002369701251752314413965120246998304593866479196800873248661113390964864566179572522246003525006652731792448341758824015551582113139397672333302565483056311118485719516184740453732954711037385530344030908500075386664999791331403359886974390324434472938432996908138225453978447698949795859386742330846599570148362540489692808066545561803147118376677244647409295453540549651035349216515885888523783088544018083799434340579061887459563870683112982048363951992450487796705617894095637872867574489699449665684534792176964177593053651711904796117401743547456814257149060212947634218841372262951946522552572202223184125510717519398187203317556486541798858918943492831375136829269388433726234974413698063888532181719937473560175709545055825286245636596483196564358308358464608224057736445224443116277386596015858414317839094054778649273207097565926010670665415811746308062992787814684228543043753910733450681674183916009933525775091505257445560034856836306330275549128004644405439991181330396445565553120642771752359985554710379301112910424671801010462117306721900338098129697335332469568746347181758445585553559218332375699653467759450793146077754103565983285336784953562940811513392730765269265986651235696606818924545382674431186556207367959899869958028366372124092006816533707708374361275329606917046985395053849528433131163081728845579090066599732939246934561645557973782844619303981772490976823634712607477062147772372416091420542723695242193975430759111033354155709212988735829027054970205369383152547412621832430968361027396235866611743818815415819868317708211957760101152534546717705280836579639829802008515412798177571627541604496344300186669950723040140783588278037130575994378982528497468439216177076175965772666135529083173232952331931868669866793499081682385116241065917318784085580520227733592834377523267543835887079032415147661898671032903398492268728369844981693334763182196190804199866162727010411489529615100471563263467743371110475796132675860220312651066540789416984854110188746559907529103798998604203375809607045080806724940855429587037454422200757423540173548579325331516842058986918691892905903048426940312078615968223417893479387235551905113647839672639552456998170795835174228619528121705626201724315683503553512802288058462566923999739572303262886268617514310476659802284045698380728763827741881430235312827074943975376067966020326548598455235112041974153483815012402570359110369214438521213211423689279670407170509972462337482370024914277761713972328183340685515813480079309665302508467987466088039013917435312279335219440173885257283307131977469530493708956960058508220696999132456187136568773946986093769113039466461922400611268513197144500942274339457399669818227489307325609819733018662258679654189479113436851483190092013244793567458571719635608440536044069585103976033995189363881938684844262458677147721171014984554030828273333107466651916830425289593362475548406952378740269160889300857458791327324457034293303979027281534304846855406157937306520143838368855614217934061280830278179911454303523522783191269149308816947874621080192571914554905675364993031781843344725595782082380584293576121135153104492473168967102567403428275258001069387773445369265426677702240975503384332363820592842115652297361209784225451625948439871052816394718009987625620157830263468373896457613082904604883695906875817081173240976813471202604060282718877466276117159107307877055184689117507010932379885188054293280939504378240032387203205459443005909092375126868031552445419872345263368976065037648922911509864269683484889579821779704465653087712663976515201107816394368125624634432681112425236481169222467457200164428460739353416732669489952340932244840253524606285710744365303541480206852724749890469900506599086605642302305142570568780738520145413013429373942077681636747963056215516501186216764573135110559903063836886565307920329187305167814524222241177882706354963982392518932089543862206307432821629343223144793878234533944628444389389298803628070206071280930238961458093137770698216650012139435108377311207880527587783442459291186969581883266024917082712810019969703487468586175977979488344948372725542824083604230129572223349308764590129295102239468811469108553396835219045390214669566336328093646257625973756088398128360439193150105087715398158141695108700385838924561546887791459192031677604946625122582494109619187175895397096636587572241749779857406640513019858519666293151428819799463977192303097641555958476736203641302994496417973530688953863223740770791523868524211482875106017926867737595906753850513456280846392375820415889645584488682366806986301035057579486723285354261671215943164886077548245103821830390456717335053209955426345729734673817030402947128573356846972380382698599242020210600363172627745717513949607356214225908764088146460783156056824497612693868646437704963764118332567803123145092241701577077917157103315870553180499689389499286687688036871030133634714886022668970662870580740352096848231635097732840086718185563753179724102737018107388504425273850604339353432799377473118789546708992708544298528854206105162233353396065221280931441501779074253762544627457408170692021740235983591334091323516285476592564293223386707714662835431653104110242695802922952914513834654929984387203436094442073373614724149463828162165359224919943362345435780092545183699442673858489745689319133527808419107524270558834454483303895906824367808962638850363309770105220314871418981276537823106563596945292035738690389458482080157810244624270948707295968673063051487615570924870474918209265935524487672628954099024920248862045020306289653150132579271888236141030153613213624342807095058115939412711728393111261478824273655039978671283985112789538436693948981858312904572867580389872976866863939663451966749754396720045895162283795019624554482980472600824206080075521984859288206602690265968071093799020832893091601981928082297620880042943305526627642144631046148248873920371731418672599634616835060229132733219293293746689219338429878976617860737532596992743896117644419810526256673282984128592529079811666727036014560826687257107849153019028972649166169626903634604756422406953671306532764103588904095616693679511984933229661534981976587682208063803869903643105829187890081170064612179265856510465892021377098196462277780406857722443696939263032531920939213735972743056644826533261001300492855694633332759631709388572506225404331412824503063892785646160784515450370225749003817296451061881633326490907251642280113422817119292494700263739317192596789998322919241464034800048918407843579249027721162701115467647416670220881101941829072048405127742066405949091668057043604275846151828527101187369832788906232655100215455796053212437973770816605298301674756304689056196721356402140711806487475592091917316846348076780205644354221549878247903238422010473902748721487551754874943250649421698906729989543041921325968077835136716024208948275605508422302680019593998954757789139894749941401330980033265747096886954101332609070231005827000852826982129306212189775860700664362382337375785725906586987691746043629675324197250146395770618696311975638396551803073263231252110981501258392065895362861789553792868618721115737538946782700688169017345529007130728832721226214259989254798555181951810678246622647801327526973331166491713810507870401768541237428016628202512898695582357640761010091312515335504302371100645374600140160234411704368492667646214093566655719346370947233010953584861390432452354551457630880726183055839844058694919286586586187797891565627133852612155661776083557975652922585832686816559063598007697574977159762902058423193668358663636290008456057257309046243797794778500026406279359719053026654328177448770911692404506185198423730430958417823151918443803388098942704118067725823987410121906942550978038444762438205890629458260809612353733658574271831475433196094427648214493413779043373407859098229971189803143225039494115808237849434982629936674862202746336903974232493736097810141628909168507962451630105357818413890941241665961841096847449904379057149329007588026124665174424224233174801253990339575404685075736714672396540378860439353186981719506298176700509700096066389763161918446115686531878783106425649456351495059895898701658495595629743362395435600812718760741186268063192508533329852379483347419199092785096830031470682929759092030304717697543575887457363775508705490342741964575514663385747148387811698441101514290033980586167012698775863144626018717277428428106154915320996647870093201127844278533649723253106952532120078636677351948582618766678993762575715022002421365502662630731045661813360831330512659447929446601159828596794945412558393117322899339761418824852064011746040862408541577591916445029801270065512717890906069916272086145915703637052575268026719875060187402006200022926353508337733915681481793552678751239639734724312694134365467195177416735323487349628009272283045737780482683356805815440661263190990525395267458226094067865252700359988386142987127409233069510588825410375867441603019334660878098066158084346106163393888751574021379412265226351046498119101828761432374642589573542545534018990249959535082117646681702354382625605283256842648449119689628984274559565634614093834828898635158004355172209860907763122375993382416451772140758931465025840569678027867826294319536504937645912713256577464723431753938979264707135610073681534103936893376862418889218585308099401150775426586582054615257599321674697267813704766177730149350522201656004893263859893708099692555083647663789262308935895624262685694976180119009321318855910322487664081829953309966161912999253502485787698265009435499470902889676225218804489791413006613924271362611714014428950350239685945758427126207707572475052605136431712447711055178806630108932895599342625083443182147830055149798321572130541401306238398091900754491589503165839487668402844304302377690373534134636015466697381808130467478070798429463818029227028068629285534492516152055206646541379118129128909897470214932189185355800379495122977574012545719329898636989914053587967032545535290301151299522845015809399807912541065125296828370891505595480186796929972907380914530380910621604929765354926902558730314470668680130993229228810276637949406119155779929839117869475871670319796000797231317447552429346397982031902134736141335288908603858476097085693954698345500015744955178754057259812095687336334596265860739894991355552910728310256595722260804540342415997516514133212077377706651758933271272496960029322731154744147888376509317426818350956681753665418156379097124258758077004267859366742258064015661027467210309618821081297854641821545890102775985933469269454593127585534432188414517153443537225016157042525525436744382991212781280084845802081128025197425897320233376139321658844361227244186822773250601938580286821469042393274378358022483849173000862335403172976395936979272531230041064085277711215844391197691835367841759436671759812359252169741247065508565680056869333493873219420067435551328982770680979383636222698792475384903604408556776474400612896724118219559327811441391476582812059924408174249364515504752271953930872035368480529299069353288455440771561013005622919807289851694375313241106000061991300356692770256876814719236667702706433259256540624077732193015910889987976008633416853207392065742141932041129109787281750757869430639649399396040020477735149097512553757964720514863046567447668907305714137675611342488660918375124709143671160229954698869857455712055896212199270260426374420567242898817502806827410295206683720934304543973259425157199461130311642719975353868638562122937095472940958167073320767883472644205579616017239507705984787699070389242253528585857726642190052348731195097016016608697007660471746444298608809408798407248024070685192011206323199080403439427273678372927169176838924231827995835303172167092620740980945569781507203399819039844165137942868480665100083102782024916045007130859660161621680967017097070581034563908229660636296070958288271918626469912234747230132577199214146807175746398419699913054620069561270534898387941223942186332883595161817584273849112604484935278275306073248352165506560740733371298454097903952355769306416661252897093131911902905940168152589347519555857567863201048587045582527601845597178745271479217277933465893834899788191193447149638205560966879399282553337870362153426999328963332328354730284581326198467973910496791565472086335661283010507105438992827747841388667147397991302081974460300975678442651984200616692798820404315237210561993574110524645711315836818302327602742330186832831026249408561463473534064814834154833590131307149302675684708514934571705436159597428792992316667616247682198753740622138158487103088016219387311858717126668393695468070686597751803355818257098155408861599500690634244260952416179476896410763481425012392791209965683284932328256177236670553212660519269529387332956566490559535309938966102239541359536063880678376049044849397645472073594304726964657138114909259006929870987515553498522386169709565740520547930026643393371737970915933984654540477438779762870137179548825591269563500850250655911382372177284734934488775001155171171680051894450114421386209791262725010988379385039060330830930854524617572269486009145122531113661927880179077780041134675280550845821759136204425936804538777293542234833620914640005157774737269094642292596752245449465345299572946880662165132876690863512637374283429498658193976643020010653243544398542277208655256956776011298031814442767054307398339334969502368642782721658328017445599660769787386223726949765389696540743703016744363955231657452014645041654608149415000980566515140028215180531455695084613784192914614699229689533437837062415110231080724805914264472215128361461440695184953601557687351387581088295541380410426375274445700068123367483186300046851057359300665359020081214855826485982338645021307686257549874181833482523692241063634844117920219860207891576848262773071965018307903711733176304600862529564746844463660080335427822344430367920050789454242602859704298064553281893935886740656937907659820607860822603404308222036102754572036449605544868237259876157275723981159489863880843467353417809765289821442127292045617400551671732924515263526680883920601885492396655847700323241116134104754417808955381710135950945288394487121326250657373141755251502752100080560866694694945049041266289351923653829414633062329169272461553521115894882097330701937452444779719061135686801703821950278354404808780587581652008109118090550984314090476767948831147794972551673620490268384304346014466720329056738939698535938762397679375128287103205513719740217352791859764176089991381915870136664402603601175591860904444182295045345293552848928023781945318680335441657750087162704753433367769254756672980406937948670256735348404904133521651933390686707760695659354182166614027446862178555197152865420127744063466598826964374253203313323146401139552309918284238950932920824627297322811250517421282189739056820753028408318157202968010484737383788118968596248601117224970711902154624998525962042382773261873992906509614291054649942835316900329663466029118445370174920734768781761091958978763378648341550532276387909833185745877258908381139956836929894808516973084177771542750576525234447915287915678113797337723231300518695367263152614049827182367197874838872294888037073039109734018592653973720977373055397579502104667092044733545449302327788257649084758485207243750415590088226090523752970417139616001764076070685941945404603056426492010824244867751315592712900361251915444939855011067309409338984839435717278673756576132362552139327865836799066473049352231350988614043897107923070337576873232341478711787452207409695579023868081685072708026330511359311541636679240792969525583631092615799982931359888550731334679939846861676270091861316017010029924415555472862719927645538646181251252377195293792134753056076720293710112219155238237266088630216961097193781719568799626024719840025548004019564428266324692838381098688238077572125991023431530758848553345183951019804187446638928512866620005697432263393280388158572148831533627454252644718728983625863472731520991676228955155476243002693885892161807987107037008967714556932795901843435367360072654447773275771555699559508050013224589179383232218953500408171998275912386315897830436986986019224253591999513685368330747775652213065603233468577962422281635358306345486655508537355306729401104400857018322364939269460585110592499101886240755842387691849958516366568385290461409818756774181048099018305330656625778485627447885711873049360869273546971916487588334891745801166876319860478636094441872574092295442531906145381136722170029786918389013717747371796787773412990134541094397671161252454349452067535138450272297580681837147293995529281571339849167058855446097906864772815561186157456195667299176118512992254274036855530929466747351151685963987974933153644133115063752693492096931871659030192974740161666443094100781820597874880332849730920179827538468644774274893433785203477236912529183998225111837821939891198545632995991979289094925873927223588102245672568509615949186991340898179144260767372169603594074593327664419482229092935353096369886771829243022892737845081812834602825471409472401857028862151414927576470208931158798193464188142993911852131454993357770690694813691229436040066750842445852725869091214008086135557219382717055927525696454903863191394738980427418721940730489315627970839996302265988153612822317097664775512617782292270140186526946852182380110212162046061939225832380860512549847416263731746896418571114395697424272011427254033727511761664859666245557618400417859518367360874163139413813200858743780634736894279038376182286949197804475548009908838245563564768879576466502560123866432672468203169428133967031296909461586168675948433961142801462215592890227830836899100817522556911674657945993439747482640069010284463249751578185953694969198625248807729402925986559945704211004690438579775451919617340213891592705410142971935548006000060112292453075482835741076150277497115914266190296289181247645095495076167959294443280558664713428497936040871399613729204308662215049763626331142033513415827478048635131718033016624791554671072878268858159988636434073281368317573206571194017622058961283648554103808050867427990464430949489201864395956813664456868427761554520036092903793762661087548331663318434379259145811761318593336562864860929923443040986617595749401943891335311206555859394563640256861499431241045564470991811555321911650087737946971910975333905888776600331311376788699875138333121404798247188532725970778863707084915928962395027158698516393118723898473212658161093533260323065362220892915093521171395500858422036179860107369718484083932707018735078115549098145667435122794938090998175929515686848263326397908570981715243594513185961261843442070570094933853450727815223569392161217649311515617487045769030584417057367406312213470148831074327609959916283428767207668520693609890009090236942644043476118073713626328875894347569110604395540898396175015423455001742728637137564600270585955428189457462775559776699552334472226786037011174099273195753880952467237655688954786974215256206389539040825755677343143908325246647385058396352270228056202928060186091182741806687148764476850285078876294558483547520463171066362069208273415191834315159254627093422247511218935809021025430330420637033937168135963938118753412153411888163431080775046394435630084405032581825703806618076457691916749443542197405430238390660050083686413687137652694139537856465331527452747874039877830797692975427305539341701875297037817780991992494647483905480701732393873812498598517283174334903508953364946813334366241259903646408972057695486121462958967374496957488570312106066419722632818792963273557941899152368663630923133758298374583984464611049433958341626486376534290331515776752785123241265163472180891206067969829280238614862750685566346198772902781953006890499268726130234282322545241309959175279832828121979927793985942470317756976390720334934939567887835422912920450202808507605347425779978228596497328051769617010220137121491761436606591792426322253429771333262796199817399629240304008069985996668738230702488286971313476598166202558825338012226857643590914708661630487881247534453361317168747181679939863720949550903731629983159255346061391098603227645011262301499633055060061544348651070299483863729164015789034645119800761366280840927216155539052363871096579884985965032085048921558188815940770466270474971020227140324764412444433233326650327290607254065618649947785211753838336513507433508606308276001257127169897452711156273377450385986267931890492810476126634193822769050711470398329267292730687278303517003743525819661846678876646226733628841616651521843205410821607088415385485691005875120546755884849734186875306842549755712091984540296373860733538986484035403737561839050590579372558033718413269555420625173576435059485419911375778400156913421573756222028483779887488765121345580054766983291184722159782413834432420168023823116740631675299061952841728185871835164597698425034402116661147593440372806750369709699233919521062556787094135186208776973099764094437271197525556752783819607835567012522118367492544265330730548644152248109183125334693244333493003589050381291857648006012377602378064539927833103276082501761424264476140132261628535787976401254913503220104933904787141927798491734686564193896918334806274290432540601137758343303055482974957598616635205400699146628144635882812832805017081638400334150018240568563675845708425302245867787159489942115745630484164272334908705740952443391152620628272043533315616439080340103238338199265360375629814670137227800387582990907051242702676151060481318421844327639096935708591543063327604702979835062325031828982536166273294511179127871446930768915226358388291675937684187426186235691194664208409132510171685130820175375553350794960331143041000054319402693663218182534883210949872299938953528655103889974358755042479083399996734470370750500855222467984641745715833512636524754340388018062807440745811200818082226428857190816163447162850067507556748466626629867903711259216767663229934750671008477832593297660997607128501929434694003221906414041195814571529894691600009491397161035557274205621168411071446551626887103956549715223728242851795630274788298927414562776885578105442874235119485220460410942084741840101861181813589702681105440614393639951790162212347989598206811960695346628628145420946631933497890353781814196883158835217534619718360617799614501038510093325700867531601230590552316277966709483241053666253902459203308555703312581478284886230305321461678617213510894981084165045256633143619175003861985106317017845882783775665744050467496882025991117044811880149623922100299690625583329930787937089158115735394061089929539422410722296400957903446944924308527141715151631941165288501511085444714672331004904917501094112379097050563942054098332317052280890898535779982575363156772142883821730097754625868150017041179329121377419250205701408381432282530645828069975399623539412185765552251965955312942548551667640846741896496275482958202406514902011740873181396297310075688048097134130076646591340629339571289485760811218702363298467286190408792172919347539101527704611235189510479254579296113689531098928757173480603865800350849188729908970081466059261920610273692040364752656275593343977096630410483220282879452197982105180971584366371673381257887213002910210995019403921684438225535879311734371643393199531674007345256895782856233914567561273845935975314200028159232798734530101070738218412416654510497379100317075643747247541531160665621598334028413463464465513090205699848444630297304320675772450416376350132200654662322687220341363863824981030089243025010002379460217779778375489835426784416499360935720966747682145300232551032347663188405291216240486980676715118599338271185243417118568476750456391422702797927172621625007388159368573942887227353992363263027819476194633319036210365560173066002258830900992128554366669802387501151916254018087205580716207553587186059451754951227568177875550344916317904774052805312189482754459752398003655007388287837710121496623407442138181051442464931539579784038847078305137150303886862370848409580119996530089991553868874749636071945064689241808641366774216345951613640950119064405642117789664296657460270733080822781352621059670332138949375581563377241740824090772898417585457893587590415187655736839111081292064391340650163556888271588800543736575929659171635397064488694141070539940819847235018508288809772814586294942720876461470654752011336117388687192069917239068698329502443497296018660749777906689390952818098051589884015558324949135486766707421326304749531600280399258936757581826075520755823283685466583451313708112218889405737595855516288297695216486865625481793411307560448157945073402433197402881497913149087199572984985485708653570500486278031061744393560629440469232377394030803371575871533234362584112099174356210285821905211330128860693734067165915853789511956213524826819142434001677346807946014301987639026986859431817520770943803403582116951967746692925181631930755564843408456227465133010248856939379060300654786981921786971015642982101798237126292114427240940134462815412797956095687007959874636149933586728580649552819047295503848393343906288052530348422214227968038326924636320949434157764974089509903576706925258998350959392025547496719941566001978067150739785449390615548652097735119101614644982817966141787207318632601862707830302346225487446814369693065926505913142015243240967030698110058043855522623609933167564895343398404029081967529406300881387190411801419853128047854804734620710148353814300728003734846565600249771109516929046326732766560049785439027693069342194134845929301452908492859725277415396936532697498554332880701021460904361030619566559116179681979487682146965871798933580718980811253708933468272092166848282083498688242993830053555452962327080243568524694293423085487240826303878179420004260220058938372060089027033871758440716441064206208941364326562208421561281809769338038413921175274764470871864828444135061682339572711773656557775523061190369923047121963973703589952406195363945489031760092777736861104685619413075480402792069197832753634629995761503352070574539299969183877444984422924172915978884777350753749638219279003119801790269410584843612787904310651128834928278098800268028485056820318494124304170948924986704857626660386253626198770594125174254215355578691807533478998757874951436421803451158888209791527481864428411964723088815805890433485980045028123829828767106288244587928512767384914458922834870562144782400968652389019825216812791435335775564302657930507194913648009325312064771199519562049442802652412874958085465419978812491850691514777973838272511038310034611163288576750620685158429197491539633841581043870326411109011062589750568762714330136847123437511067261970485500933639912372995366729695672831515984737555776471272470844375304063817085577386610224865393287328540732709331519911649653107521458522801676918928747651763032530211887879941491790873240469322594085722713648216988639700747542808590511252049399751594832232677606236028568072163330101050867582018331577161965595802461739523200432064786635569814456216892729170768169447744443899557296761952165552601209131872592384690883454798675360280009351309499721004461179820035853028418344465252484667525886047462697208714451133437460075096377989840406180907323286355318848570679404105844515180086956033012154846057104166715423646273552146525575865484473365172181349209366354345803113382377563760151983879934871244970781839601072190642329716629835565274867265435268900877226278181139154379247840296737977772543396175380828443004235303922731489195274664115872363306322469347033869140314561489857414857354160029750664853927697648284246938170166391659609285511144020722508029466368472840342324803745355781515687826032989036981318154620993912365652278900183619635032754788898997208367241975760233655606695489148905126789347099236587396602520184703027254824795256186331296854305064492711996635544678532348459905248480408078391362125609176694645972796751377909004964894754108915881409473358466835173938509642149610010037926632159307309753965950792765105211624194583707725543250276542653616914604492973980924577308935880137493131481729130241024297072070281411141802340201880764938458587525412863845625200103890832738164486195425847702295928207382401052010556488895744649763439978343830927664184386683935527938487821122266998832442203941710816191046908336359211361110725551937170458834577556171533771554289583412528480130573956112999712307341923182810305708815316494051226079377283024758917939340035882111740005624698969821839656294078477476078082908607690628167640579702154089220335138198474076110432321791103577760287455118780928433088104144050247961966604922334646863681966875763901704170055355038302275969080650873422925354696231789226185747573827274179464512891214487323946013884751471081593144238011272616694741426072172220887844171946106043475479317365041501761886360755747697807208949818477205245466361089989705165611885391049985818219587306130139013050829572025613125662016763058044472673369909613966375175213946223993231339569941894162319429263860401813970529501202838324193576546081627415755566710142755980254062491525484537729454102699681259132870059194032461515665603135303402320731213873510284014319510992148688841290815072588205403082450684578579424282934487690516577310903329335006847630795176051080548794800914803984161127437743872199077810695042187585556593876129066953111214100334876686993872873630140759680849913531677198123451036574284937234227646788165396823659379525595738093125847266235847190939716079451771684280743677942569674932159402283157834592231651330728547285786851774531778909244668487099626809450223747903301284566902638681109553502788337488463052372394057694842416613552749765625304629054742941936674445790399716152773066535741012799869689177222502384313151167203084379055117041361663530188131910611518660525763653119058278528627346106675366409750534583989246441950580487038811837177775961982826894441819528298339018188247867356482254190302562784161792518220074786453673233640983661360422796873017203723805598806068291960618059386915314855308859361351399698354316174325828580072055617557751262480976739429474020554839668334323341179491576927226612677831766815949003181125330670789909227497404474900363696610410627797495583560355596806229751493537246078124740229367033968942852654638048294506221978543396680044772912200806431255082787980463929687054672525852700716530066176564577848249287679061432283307925502545878521784482168725624498577026313506395410092943311712436920189772031833391181597211601718729692012855348203206869041299343350603911574548794954455858315442223533521066771232512022662873188485839498369909648695737726983367525186312632775576710551291569717765062341312044473352994217141145215797046758044980845087076468228438384739034504912049094661210669607372639664070824914628097667679973175801803985348299948131132314945125009495266355015280734354636143344061096468368924033640330922435225648606525875134054298820052273678000828187320229547568233457941617515724456860285647383411663495644243822723633389630650300510987755331747202365918468665749031524196823981684688310244952351612348821878189698490667361214282582237545597773070307893303002204147263223903279187960451082979862045639030390090355053189436500444339580008038512120346991028037698807110140552153324886147137092876359496493971296771907927031763049439824577687347549816996118071081395886986478763230300037292241163174737171348071332563339510123479885520744435862194537775786839560361511901545838255610075315970047100682879087921507408225070946023635155043129394447306160626000516372548257729419070233723491973387225655422744862653498103615424171607635716619638728577794921983896509529828763653113746972222616548952805118026421833578569886858471140479077797890376951606929683829778357067645195302560763366655597159864349132889923690645605052047207600493522168792368566740509806210750325998985830146369259056737181609374306520840672025490596082154702077935578509859148219657180702245852660818580979991173124724182478102595479282692859638301157429630257498336172947425160587646577859243031332699804409883758918692292889163862229610436027501746038622445294918631720201242444025575831674958454326336921469202969862460136254153687919326888894370500896275349809878755448226698184979526740650520169554597678127264067718059567299835032079651997776732692147605096992885933968417570815799358526266257608546108679074971136015646024052810449631565705915364748041470924204612671357331114579706735981480240599741460884104887984729771957821836609768999670618679020829897839311929711987911525598123611904571922744324024058210872385314149262721866779792439090496290044266122262541749968359187671058085829475137257254018889429062552945106065940175258799911340895622553005982699357811014748836133628893492758511301031125359802897937418339410743761255770227282480222050453931766638011812870474061588581022889929951281384097679793041487977072345739763984351001411292612744538149919915039186174799431505804624700153049739277328911241341570310461671076633782089233857283281613309307438215271699874749918038589049832552174432240262945704205106209505607856022979002135921915203896246772252084558442936014599014589950631589832344606162954873621142635297366852488953929734047507575043775841581289289454478087135199566046428637754517840277934760847814449785069020588464022952685104334484351470167492643933064633474222544340773884807555332346117431768702640980813570486128507272112766812101512146109263829026581073026667465766712188278399462362597902319001230988246886205316545802434617575827533620890543419483735308657298942478070057791990868609417490350151427890043336306615532022726249200087356435256886511301375185052899307725110095321156256130030231262048576337362854181274701032145587254565039487969140678927934925393487126732610358175903437041940726681620535859855995633512788966792671205626960030079986364055190478711480285985039230622180904085301855306697854368934198172092000288896177156796248367210798280081047366544954449699810206305307800781920712726078861503921819086938509784368031545390855356711472004589753119687684801733287655332621732107491983215359816110426853643823575452639930290254843642820598833650284861608747481542039665330790067965192829920145198145123017490677342646187582016182897333499932261897972828003790579379102461191916623313195789546579717595252496221876304936902131614488058452964894486897354462582280426639951185075528113232544700595557988880155128847766883574880507689975902104382995076658072141901212836569589235531799496701977594213068481909581551024980490393953549264237079653814198099135936885768314326754730439407575716084222520154718104915566717144432311307479545574527892137405705371363056748663624129009250295738042840495896896406532389825851693077854580260498996872998254897880779119611729180815695453403856914326964827965764671951480154228037884311625529109355734095080594393601025973395783632253913107673127876233083655265048104098866169856580029792511711359271498303376664250605321180352598633792688808923552048127299390659581259107332793251894884034135650548293318887298039249467441080988162203441235329496844016006962896469441310418702352146014109282523563186101270538040432937998191904471386718152450440206227286168517107885790264957002979098256174916682743411598121026627462604994772024930360094907832451482915055930926570915025374939835304750555200633695414014299227513891914755791773522455840781139691593548056010775472024749685811912467744568717585345886317900530316567407335760516776827053383950713803580808532386808024752560591776162430271727121809299849201374631392323255313192104692080716150802112456220711321725064055299433356881114631249533011880803708127365314276126418662515758982954229257820996074594641835950768385484658306918320724477363868958693235236912007225844706617891775751457388943768868576295492629290189845861016549400708735728468013285635442742681134963848100787717179734191688591308282210377298095611761478434529600795483577562089837588191919685526419116860285850368257378010332534711513451813796286736377724247148737154252990731578040825946720766440842326203947569977278044370059724085431521251537655142107999942669184553343201699404336556004349987825147405747475247690924244083356291836165114053015144587021667998110666199625596254437776320130320846861938111280273405984468189855333409324725061148958748984879043026136715002822688760625308874220807814455213086840117036252503738348978970510558917986693064174760761648714350902704714503818171728424470407584353074643286536666345199914771309285029618556614375022114664281816914163566764104548865375026101906179373931001929741551004669255587881629030894775734989064305571988223305582319913276509814834641936942278059694352685897934660800095370322391423399766864140530201166535117571067576465909127796838022840307738497573241773512201051336052248135388028304930562660775703149747296783305566012342413729613362191911266745896030717673522273159864875381438717439537268856545695803202744579232799936688100738362732604407439831272348768594385849979282694867633067002239643356402198982349984732949555726297015269403319990614159545964968164735071234448235604995086016421470081552169273722931091345462173146476462622710215129257921570498097505527850336671267016306062482195604543669482913969838577616473517581950533852138526951509501829279150450235738458005503563264423386891821704050772387249292156435210533282483290684012143309937732433244058547530919190756439763783065424676119629117862677036182826530714615772560563713886594855689860187279426381215477230400753666411472342585692735539955256476775661474543132781235192580500649249694053661258333653546896907563466119793170382435567126027072708577929081910752104827703109053880728361680597632510416418430041960828486856795236427528263654727197032347341228834301641167315690049632369836077088640740547285176347749649808896391654816694271786188839134715079127918097077508576686649374685515107263498322712078397074431126051132563862299153544622598960808916186760915396837001096886135930586780193575592205323658155234515713120695096237521402443001580414123602633578820130568853310729348644283389838085411203137751001372111616263923813124413596596031429813183684656295693250060876571580631342793346355030886055758655289395189230597725031436673153749140406605758376149538405489494099447206554298938204169592859560867006148309775137860151605559974069065005251032614137469332793064463001419676528185662995038842526375269288067637494490731935906555325031649025206251300411376111010266530150053310205978117166539915159122845531366401257547711300401775494618686878984823437941038656822619660891912764974210582852085187968001851305763121739173386862364042543715930018116443900647102133585478032351058611670630132252137646182205413100111809360728094277391328963998397332489505285058410925428151460780343380917434650206760835751697947139613615332255212917718204544253260414641197749025676521039772282852748502657270793976143661483050372217110967732349964367307886039250297578212808813178702916189118540109573360511682692849651646143989178388476521290817243991142489872099223048771168580835442350693397040857909834361753107921897460483857561014671832235230539802558977510023377047846893361106593286816423755235459127764295214645998748589031307990976083127521093459040484430092194047858535048892331433869504260071317694480019968516684215373799490871045775902201916183629279532262257422735691925907666145627197240780228045109065070872877474685180127962987389938020746380995458316448616849064977944655128642527731803464740726247368735174112388520953029468837167764829011345785386242170009575745897257117142349255641618304225531672366891893719765289282151036624158849624531482699549874276260298259093642816285548390536163122837593732449680604211796773610139322601759190979645591972884084561088235999168349005855293096510685237317852317586426460068951545740635417240216732525382515065159333508813225483720258013432332676672469451436405513737554525371274790956085239966587955408644752923058014995492158692439601339657554541622819842249331176351823573381718469729059552270627701939373159207996672975957050507924803132242514197906100698551282399571429684286180420368036394308550392123056227349851328521143626538903250561550202576865922871426386328808858883898084238416316295558976250345345793615493661183438668260318783868857322148722146874636669091453114210196203493265287514950989618342998980283615160872158344834372351015031438979001802583083043162100567534820763043101912870450455800533539118367235278318332288459393167590921397569219762632418822126422484583661852485349027467911006667162334318877658901012232401607057730246934683099931292776379502289909588345638655118506955941219395956696128273144045666957667988428745228752223193596120110030537262724919961487395908410068382291426198114259196474150388641281446405758083115726600047829176539126701851395310352221731736845710676220926459856825815285522097145369674472083131031812820568199168661913325743767083703516913877197643611093711498740224678287593327423681744354698982079457701165684517432132937856184945224539325140745554234702638021884952078299740361454551419327090846383594650449816375950545156465323602717136900199121409951588838616688387888085487565600200823754529556519749193633484970760564358659406765440576663209006677543877194560404404441442384746400984316740821332051274599171584138744454572228197069540814898320439951434532577991713632444583285395573469102698718560682287116415077849892157728066714264803810111564159453575709695327779732349205825961830442976420866296250361826418497917395201166830397474765123456171911032529768729556875122707399969265519057441269007192759475653037784542457407631906694218049426896009186568291205113108622515476604349813315035245297156110134047245667938950597207165496143642289880664562726503889405217192785998809622782498281551979853267987026852539015468242398290573438310204425044260842485849108221710684586573037871695606066684201325839590768932928176799866479219957328063590796845767749711855415791289584686214496011129946740489280097483360981674336816130710274774268115854827316601317391080319800532214432063283756108914510212028822061073135551550523346794628742028128382998163956049918178076652516638462335778047539584910247289622223950613995925836435174484957593999443901004147782805080586950831662395275304398298363945505941001582550940054827278068469675603639833713823586017341252272568687978720046112619681767868302155249418036185395599153336109682767354864297945358896692890857782285134884822640938265803945701218807218940443767791460375971635452890841586964250733119029713566434847813258724483801245741170723731271430801876684490437023383786286469124665806506749212754103354240670413686836243230216082848052348758557380545595208735221152721030914886433899176797440614352347856694450309286554458492447692491505894089149527953800151564059431793975587428316450310564155608739380127852859936732132811697029121128511227305239489430889912769894737954890981313405500628194874874544432702697774674301821066200846945818777851651929091368326620189513651847059978375599810697019340022179592581166290378418960338486756473035858115500239223745221486814594256940099512858379379287932962699909805597099703526669631717178966254503498077813950985952471115243929351254583803182265604725939946380506807873301364621014244989652867161577625053248952642091538402399928993114337021433093341126983544803204569114953674836800818512129704061257565445907325325386909761333781703456233558084643772994481990512934337500079640687110506467473341478973873289661954343232693837543860622399324503809728877182532688148167357259549394602131559800451217841232853168809977892042929395267762515503518262126997538545433759939362892668886872351326088268736422157005411517547926914666885576198728864680351986867071657556805347254320697466224862991316312447637410018044970937244279021576560242288972560549915570405447983984796543816635256779723122870485280966976577854100065328535399924505021836104797336949308100110518737399520299886695790798524415059807566131144179227844295699662404457930318300400545894148111687341624647458970112655615679115696635504410101431543234080406862408824980155068668737710622704651127079777831409111039845612569750644887786608270446511384414808776308239018907301551686731040464650798272059823959286599880996989714023027956451663718956938862416438240554028967641511537336981818122032386561241205843126325896401072783346988834186360289870964993703745518969277446577273804389455734917613367650749032413527525322269371572515670541354375238209654684988370611902767995042634454218544782887086687806710060093577103395676757935942551478041372048850310331906033470976180967760500486414238587285660655125324558990986404854789682563382474398964633404043400292179706389670064906005115157272679879091267608004945377340640558963975511851458203807664404477538000683178241657400813064980473655579440681737740790644034736044212501226409872525989776617755384179295453775206897339122026266819963230674558145989226343981182805483098870082453110586648637354165683181641599267768164433831984857808538711733698886525163143337690121282420230487899509366561124723944005883319854682823038022635901146575689625608779950139545187786445487598463787493687066886989144446703279313218984097582891231869071393055468716505265729372021523589891906688100179201906464029483591585468441423307461134326803758432787006177384645151081192260053531041940008393149425667730930961768388996850679717023243315157529564781516080396468495167380165431753030453381354656370942528420514980083994985704204058336057045023769848725024712636539701219285411664331177492923361462163050366805945744501333459764986928418561185921062692381824232554075294085737953386323068592782212657433179923175564442549047848973025026891900340192304134109523752719694474414611917086917768672384129198026531815232937006669638435437199648239805054780583672198682454469693739179999419916870123905437686631746232971822356516277802637065240226277830634573531128845016395256867053205107579808219355140001306183207953607509617078415895793849796835196022194617346992131105812946065792872441315606741158159376083505019250824074093864703961955631567775539859584621859260134469943566248245857574543882969923168625952950357957911888631138858170735890148428314146284252369009890214002320977498957220479293909554786707384609156633603048039337662034885874145838981245321335275543309009090515016318151118489530353315220600712897608908317795524126558097509602890109311767290908953708300445665107038780286875385710767242308896956671963130867294677655337646093815908997348363464241902719823911720260294851705537531590245892500013777071720776008796146705943810757717632318594223959842457539738938057094549533206677829742541687918563432475930060335018259185598683706949011537906390153242597450952950549312376641842838042863025345910294479405961545206656632698445497961036623225798424943734038119000317325569112979400503542245499111594033349025072877568303653356442563791978382373889675656696798444828746388629366813115952891684847817444230296306779219978077966400662864056701543583124005393492683217868444276553399245100413026179569678035813043239653505020264903350317955749547299381242768152163195598950575985958356579482894759791232968590076007178414614774154220129603920731544296201732323679621901970327220734550399806761675490640379175770622529523280752916919008872219901367303782103762067203078861425709521233830836498628939249456406006535894687324959165393937836295731182249948235596163790731736676109973501824256920593610312258554137676419226559645293686426607714168785602252958262303009393952383815312515719020803671062635460719606296992732831982489666119256109872543314256311382507439718087307863029568815091489129772981373129093651961730365785124754974226559358531098434663752803201266425066916026592700037014068267184780087282942433430063151937668200960637511008860458991821253077237784032830512275666675462553697764961748116149137287754460342253368301630647062107551887588189871640332698530042169919676165875711743023225674487909831442528667919833235820220664002179662669930489502501968510403319731579216824684396373355272354366635295988478499858228263348968662887949038339057410745509223044549497842438080038081314100672311478888321433174957029098109700208948722986780255350862030274527385688141485577537325675447502868288065427544728622632017041772257878452422968742044464495276830231781924443508711421677216809596380479369183587149197164585532230979702424913822213081564228998262795421530727204666369293094916553969413830645192002950170165337562040454854078477428442582683219440679102661384621842787824004106922294524636516468462616841926356977965864359812858686945886176110198794496578198214422535427671348853146787182396320091207471112344514026190918485211615699655560571438765689224016392561108338814435462619794126589726333544582940820031987356172789112304626563065921852352019354711916730936947818439369153255102658230820080299153632077815020324498297950902132487730622154051873988920756860405047697775887536494043452221092483658763649330409290958363113608669241894414050355659695304514995516162053150151712934469967318253652465793785804561357116466711767281554919711878471180804159671822303199941827391817760480145711618569982220138690418992126233403128422797670752457355845036344339987710665098296991684650355578986857279002183514630131628497038224042666830926925658798826985709487548969242221592721088839487635859364035023763202579873350370816986760443551310585872179355466675053901034322413501745056611850100838725865249251615211337669952500986317184108901786472503029889649421048918245023628551400566552991165987676281437265407999052942644439318987085144539560697665304689076913750615680797116771359242232330827559527152432689070357823982609683626022872957152558258499170026116132677389588703390671272176335610119548437744816688552248169620245000187352345407425572416938612004281342645425787787706296781027974258427180881877761053981344832235579555792859265411365023612612146877171569759335205085233780457222918956390785785357242924679393735308552626396216674202893417579370469454883895681864846706983927068964542874195989768651811282251252747665642466063923756699862670592173249865230244939325729408260926248892433559091828486219005101847966334413588555927062708269891831268448108083515327731484932097362593166282463498276252232307107587763866526078028816333036827921808070815083210654116182144552804645104722605801022268554278660013097101392677315509148631152058624079056567849348199936336245741268642534718617612128983101752880590565880285323241048168884491749995989433274914321336940578203274977249476356784748719417665339113907319634325877887360858341305174240765159326754135755688036317475125814994960572848558278109594959223840012528480434052117584364115707147008412998363529006795664834100015963550524607748148213309868726699268057204663208403225343955679204460875422822299808874253681141705571758701321366053492812835489309073882731841775112519673789523789414752406365252907266996040999578242007301662535051672604522111488239853755364020978520350513833192872385156566760235152751175334651006349203922168309707305630964610710237486002582473177401928502463309540637184627807767006129020698224790900177321835913955823565686541214209769817394384456220980255175706430320626932714120991784088172413432457110005634321025108825054054665662110741062060781047735088402342151133876574327640577100208910531370572968326233430287433495198399235385022649595092293125640183550948388135959867005145280017824924729823906183962679935693831092963676279553205890258723811812399883513167364677888655953309773389842643135720028507331350739068948133201001327423407690704367834777968046401696163450599253496403824523155689731600292317523386548479449407193456276449856288426485948515680764454283375402384797913736782922287229401158759080302312531415959124646348851746469842573533945950237300281185921295477736436089273388773704527044479545615536858691347102732258851419626234845216078295659609124912474074368694196387501955938662023006284923268067982436125244850892406162613636246213902050384613725470399205783576718068773218898006104010959346741364466536758231475799211466454917777946815622959478571911006103723442941743331763104271203770095368601913104055262239854554867643349984160897328610260106870341714340331892104520868624190679312930402447253318231093679799296289472479373269522784543468138743311868790247137301171191642443686499547741239304611903236886906517897072540294174648077353606947953131589721530132341476056654383809690816663882179524341378715796590922863329406978488840705839710032536073317735980895511229954190829580681985838697718779280894075640485800252883222679979253930932747342114177394730532255902389790016711391330907932982246635091854147688874062501758184245360961441420597290171013726904835420552267478551436955230982855075183003350105974936146348036139356764795728253759266463010832449255703447210103827280540674930210301051975874459766602548386852246904760337360636587139513980289129888539896545107273770830404544020200972240507536186956592803368756551608759991973939696584399895391136574182737938894204205899695072353052750402655813009409240060067250723809677447814464716729537948828105670714033990728772266659012187488700748216810678548166543250662138738302282589330235553986168436227824792207234379802776514724939480156146530679656116354903048643884522164895635685693285456321856553518920040113146875591019263300273833363747452758591050755168764837712672162342215859131030613743446752316002790489690864384404599933921077990952187715468023222713682278396610290208114362384975277764196447972391341300304334236602682256218496987136681041590419925055027458035785801041900848595713748433926115967487410005112400372717792623108162875806047099880466981996420703423514916172104544559379361446266122578639124022548579739319355921887430028213910850643124320480084604569713279471256101126821938190500157737170577485619877863972655733198691210813198231269023061090185838454558470413223587895029505622549643914824839860944201221419621190073253101297328198769588111735062674515717134595267608404071815613955016092620002599378498232441561368185925773164730293175451957757540193784150212897330014751005306829617195912496056127579576761613522964702832480042833227360383792621037797187598187620378326045324574547288451949835984095710781511089765024211054524332599883286833547292575997215803622168137516565677908443382684698649557853894270318740315216867040253983570997410481106704049414875010298732637625825207042190288754654839556799524460984972595036510607428111124000928802332593051502472217418546736625590854279569547140357241592809001752778583632389127886757351196599992839813827019606525535052872525179551257969574866199500487701866660705845108741321689398574426444476434937537079811926981083115530644846003926777357035615706444063520299194048701388479576689205209254725716431870315894855801465198942275612930622995644421164423743605931804635062192351153380256341695352326374105775087984888132481814400687987442197359803085776320037608252547021354562376438851219471522377101534909275997572690671816501185254741136196719437340975820267157083658857889355878291800132469992144386477736885967337221937075650472371191831813266694340534717140691987642373047275618229417877343526746072216394215876024987284116131065621028147772953975891382449296286253712033071416228346110644609108592725796762610567769466672606915212602619812356231297159170859805031995649755262818388606417480476151996930411263644612231809709843575860733854132568066376575744088335931296073588723657692136310396358251906892576509978872974951930156919332839245066611746684041066064699978329979789781609850361477792647708650130269950690922482790171811801235635983553552290920880694506803704148205664653690988827151136802569400246575124729189009546403636093830116186954524662527097668892707948906538587985515942599714354925763298839805702293395496560466606707389725095008110873887730399410016978008607542311067602593481337146493012920539277848862150854765824972629103230975811927146714036385177493481654101305907912479463635122205149916358852648363376136301490034395108791182708325516689742658675327645614848973655874664099099453264534131113270369766405095157563313912689730840646695480361392779837177112129537415382730449831730024143697730147864666348621939693713185360211842904291081418421480378061255781126056758108755154565578689124826557257412684538025823826014121330863690912571094745201392301828931151771054597974605168307679201751855674465885097922698744585845845466833886544870663788518322649218895857006617403088867620099481564831334072538777134681861533145032242537842662189685320119886982347175042652776819621926199192348257078956762043939606894587328157750837270779891171622849391857551713182090585445302902269724325876060068309758879083430495859741215448007019795392572231526745919677246909518242439939783446956146424828624152141905711757397497668492437538245692088060859361888767972158499485123054949469422182199896221202841788349364661853159894347240675354168411604123339222948936617799860812448994191375582012692227990148764642994442592708029489109764983396520197878771174382988342115531243175803968025723806603789012182328809929513303573782837451789258064034620880469964891177239404436521893811787913021085602174172653185818791990072654211376269845678585202593202955708414007601537971620855050959077192522038316126603670740115156192817947403536057200153935078148477493328276775078245480237722089400864592585000434603225618044233775385567733579678954348245660395788344552994035376411153783652708594689211721502587831111379371803757523094711843700362521420826072893537771592423767200529003240929148019126623081613819429029021016760531428527816397180066024626172580170632547984857447832102680384487793295287704403415443368935957942734524907886952752791570044198827411508830937041665953771714907998422893080018697358976837813643760591170396509807365788112383080294370255687310877607193151682316906055346892149419089588340298567172529451246745470259379374146225260600178845369568526043054370253377702008768616903163225150958174512629599746179886668291840820128507022085294033983706303622698149269046611249874083468963179886283694380290177333714141687133071954603350689882222821217881587670818067784016795658823990035413621078761338925246437729638424993089140404948304255035101929929656218539018863621627629454148107139017578290860670983653162215772284743262058207809988060520297521405821314130569896105610104124032513679083837891865726573854895603954375817051948781227174515343112115336257707589113052060307791899210632847054197884274121391793737450749020260384283304603767019454445796927869076282782803880536562340070523806421434330609963543736602108107362016232166460218081583467924624346541799796868964723057841887884143239442354175540937203364308257701461160498170342823731881364976946933284818010243634643088388769636917003447366558652799956136060856771922837728458983513486914090494880626207658632073083118834939044499196415613874585690589432865810215649596930203278500458618410351717434972620945678872583721788236872187185524950640013052254114985602150279722675265917384189550407831624595296478510214388890806078387476425417533330506889832805564851872929147051633252469148515556081449732278705537652120725163686632512497229203077891459730833936365434271489847791612610109074142457595906242016860289549129325841814762743420933629567184799675726106713062344940479771790019688925582547273106081193257925450886430448289524130170396253927326542697105867413624965016376829904627241690971737226125879984430663751263720961321363212815718457801843149424984852569985268901903373493679919375402282296018946629116010984904416999556955487417539385619541545242770317365285173888452403654664123807281309745070328354347275066454936868469550296433216712928838421253586021773841378049070785395592406956121875570817834938779933507574400682972177036909479621784735554229694411097574875431594431495405524428047835175027241587753526110564332766970412654679522222154032028331551304967430776938140290575667431422300612278650957628101503399992258548781830909108339387372968577750852722456982572200023635257074397516059645940212945148283140162122660851366533364785095621217651943886004754500808403579349261095338760129530994258626753810738228413082824877261987503156386113762763386934387119123144806799102578716187467546583504296860080832100799993188135878502318285720371948188701462661310205717457958133899576860244618385945354705984121465413464930031229582875919150864511160108955159630745641746746433085819235648167944586447564308354542702139552072164318132904887183867519912798134646810508013973051601632148403256710932925378020651368868122302767238530229452287414142853115999705456926287515346104751614128988240543122966104655653457140081778110051375220459801035350686611218154083654603667914681241549598409635393199028542457259126049866362789044315232619609430709011271966200351175984412765405909095270949416812330680137895764644047038221770263906640938228599718774924452064947071399287307566641483236683155548069086506706713991861052423672511114635033237355441549116877273222662703678380923165626196271521600122752172674655658309647416939045387591641088466866306687774886778388551405885086332803652601850870490626989278911977669358547712562203497335662776610495547275347315000756639170710589215867994764639431108472342607288100795623754812569898960338962372452096877276573832824603287401476102541812777217702749319290172178440315770276729772270694905533970455950460068727266489415854873428776584600981379815959091185242377550768231434870637120848181252068340898595370327437485084881454785178363640466304056492828348681786887233141182981666045720367896453371181691412739098176627916630869572815412563888266139445787569011584115459838291161095153869542436202461851913647708604488224147750823821996748928951245141909744740275030613196014031340508002259588008784691461815615317095657843813077908987174894175819896389652915918177755437621274734644770414906724329256267495410598614513562977123143959864498440945959964610938325434172896501712603654080467366649589855309792981313032524647702997166430577123980219008705356704883476797716979895729815801787572216244021665487994214792810197745467616425918804372705993172394423085043232750134735189816691454839288468653541192991827617118634985054225583938972308039352768026709535776914149582015605834068158358242744557373695989197339265866990663581842133543508898983935810946968946735642271018310748544115945791303597112323818040195618527002531119881059120227159264173261981402659597960875510300740811207652776756317751465783620665008565187710356523011877202602859157892632116057029075362167123286214846630781297511060369566833882488207203102987941816033451046391284099666147766447599187218892516008075440627228823388340749418915110324977477818727662949955416053278936529845959573036144921509831521114211687320663303674758925946357403739725323087141639006545668311096337406339593558620234362858853379582816764960038704185904339896297220099873138997270314752111946519443055543126292209430198260579177390733983990767650806730599964915372362515118760526750689221632228813658933601960465069608818995727939297189745189461591757293285161492865530510221706334294829308354148210557233664718894243877667903206802621760583470957299651954735800386855629185737063059382253641115637045103520447535625044949283430755277288414635598125018592310470874955153197248782228948218927457616424246573500468749035800612851936361278734222612162135369804730834326719037922511359139421248508577296209391099847647766149482709570684258831877325897453210925629919843884071730108933506751815408671963796753617426653938252528159690836094381066176185153723817378427896298875730796862782603052902626655773831483326159511247884990066571704258941157373761419353254912072881035152975244375767279614737602423246328628970339488809365855980347638621612694374774420705520677288065324487766258211593578114980780611367648465581544028333372424482715256930646921649546176815967543741934143861735351759600100639219951619642786426986299219969940348613168358226088762893210840364117658921171572478304535344914117222036933365973165404040112455381131684557695673726117462365200196200577462916448529005238117227274520619744745703018096452646922932882658772625474873531292114237526784597914902384325573129713077814750782276892186207416829443158944687042846197139958080403688934833670909655902162953192501076416236630218363464909250183056877912869758168748796643372024551156973376706486094408114510781677652036901774979650410784547185385960619204772360173838276150245853937409464758324976995480831126928791635144996568444055476991126246977343179903309564332409567212822996006462985388186403427468559627857269101063971634994745876295102902319547114626307969916538837517474498826817884028089848407306873875246716492715621288921305301225199687757868809760299306942654743035618522659993220074123787363699031301769286415362605362260990145273270038690306205043513140109462205432668423873521514335422730972892505552813217355514970592724577051277527843832553741428925397866643419826928895597496345346574239131586890967297625994137701982505226829139941376543173483549798649111975912717842213430275848804086170079119037145162042962343769535895037982395893961318671097573160189670804628855969087738301860760718816939941452689456931464667506152963048724358773378468350486433321886569034501449284003003738289386605891837911591685168047274884628668534276901812907334409699287955659000054175972886486383863827689168070342595923314100581278365408292114640650187878590551484799032712693825913592982940123017488727383172962882453068414494772315910633582703299631560474936934082468190057284892904448570076726888011728928045559359385794699046366651207139609712894675793854419142309889950096464419757099895157854726058949256255481547091038114869977518076347945111992285231751053391054975937387971965373237535512684407701727375540874883259609828850796853046304272125704063248926973128889005582576677573915518747574891423094252578183203858578724443986236114862262925514014888823366915047247452525933974539489693016544041555855779994214884945994827109340993739086526494311448291422288285743358830803836478985009621375519103448245046996369748001269148360741189593889253712335978765168383742171879062223234457577868309500563654909531068343690010318070902130025531925945186850105674000560033558304251318054786309982431728312440777701037263238781330325358193268571162609462157480344309055779408672016418611007169924837128339821464054112940414326726320005768175793474968346764689181455908120565878971455608898800279773162186056378668448313181977407877746565160110822347840814250596645499135883691892778371510196047016940957233571431823950361937385170657087389173145972305472218579165404666373912352206651877342937178636708455972362440997580182230111565358816735007077149861966489205290056506918338706224866380893319465312237310355177759094948920036576010789606401966807015807149527312253126235090684766550629813510198430581797601510890454557269918795405452076498179780877916268951622460782622969665977323327501612450046645885510231883864036126456170872581131273491953944304021827213907152935591698878859320619876361983395321657711481112440023044296603652981798574935690672867551577194956718624821713121038960616198161762940481788104999520637490449974078882167605335348553432373795452417324269781355434565038147759324674835647855484520491131774342117052776927780015172251647731150920881494786661732652866785160031152492110910852672735383691966143515002664787015141662884249900992433046673700200739343529414715221375727578256217021004282313558143910584152717437645390585106200451360399824319788814103383502739986069671214928744618408700077552757528270050239554427493990879590600560449287069680419812477299640058430573882512892807715365267663110876318054653438106637850551268152804031298845258530877633552634529705533023666306300425279015250746555673105088171988919652549003031241659014611960397588430224635938658502260600530972158807902192477350620521049653875602236646636602257602235998272189428598474924753368485564763175465720505567202984878815490954258727437202235434874645959585964321680644115797155487634133618233671738668370807772666033613544658083129389749393311917696816466495407525828120768742537059442902417238297368306827591894008076895507963443197373121330472342789159637633146036339606853162116340625840061870460921854212071441631051493421036954840107749741874026128415784349417981131248918033154667604571012570113914191242414486675104226324794211556073476098941720733891854372435238365373289990156460191356647180875756757426022563959511948360443667159896588947527347611995209724110699601401654040958782353003124091284698882637701553937867169993906713740117296385752418081485528485399390974910342804856486468314368610050938113617315923899010637867455261896702429257661514921196317253564105179936109203569418988483762009699523878079024665953729642431935376109857186809856437488634615717565817005131428241793988157028796168634408038747176044810490613580706561044829468163107986765729084912539423073666227169190620268955987373536225454953213460531469020044868358118579269912571101807200196022208626106892987261286639066343773653384283226653144297445278140790619881990803818739715079093657322207375132686567249649498452752341994819581265380112095530636459280293595007469947503176740817045637349962914822483804541139135102024052233676150260693581415213953543539001682579159759986196703301278153957522184936907086100522113050954478681370272043069307974506244163745925678164715082834751527036379142629847520871158349505897545331111210218015893660228969569027971473590501423773534959792871692220459472548444904063564186899961572715229416782640506310943795582783141334680093804512079824724527851722676892526352291265851451844789894501791938993704061704980471397767945452130884348558897213134099886118613059488421517989075688214018972836854787689687488905687477235672372075565173008073832996892973888165906796651395056188756691206355908472619603104208695532319235056173271380725315792478495209218479007197879380960932063930668491429055187198721469900824545648818800175449766078393244607810122227330470625148240830085685506384535273412644598107496325804201525630039348539365319677276594127513082110308999273815698526906419927128923222394949071707189539230136835907411584671395271602894355191525790405278525760152603907991722106152687607294734136002733827337136358232479270131304511315789500626841085001414892425039655583137094602866489704546924603783103801553540521467961729313466543120886063998655896772976739577787493412188382508818002398352931966050184774526353569858582479360831396107889122653082346455121082920269606129264390122143535320553989680649884796743325054863250067856818573942715107575643450006752371424625881354826544553836627433396065881596466272147753185429909747002958180149122975539052364840929089459527328231131473575977260852947163199732897752968936654416999896642189055879078171538004973233989574635061131303329385192495463733709894089503613175728337743235881353734837680896316165000049658161143134353752271719897596346905041545272476644942817374144505854280418892710402970946593606560208688819140084589321851472626376532427644509164257854979165668747035944465398106580654495617735237538072206941389841890547440707466138758152610150686515676510579559579651922526829553743333744020172981559430146517514832707846717844571004270682159610843117036963985464509954293172353568663681542015954351382324138988837421178577657363778549405902193960335017448992295710192895644059076106440900618795861433483553905896387950679819213320209353465575108797260756257972727939787455431974094050194452254271221967699908857131680315557312417345775465097882874856741565495839860191648791634920896855755756867067209997767179553392806998094109408489821476572946069142566622049979140005909728498524945316409159519251900795562871525236594812146184927807152633955571764191745520222009869559880937316359618775506467515499740946893743530390188465820726925415047236446957258890647442552838875974632476526881700974343171369885164444279033797295737382221436807462047758958146470888117854337766701429348431713108414386788657973841034280982881056889695262939032390987830865102494784415297606199163813845058975939547620808617314723994370731075795770405429478220730911852690737883713919279774228405126881345363527002683448838755396117223327126046369164181995047675972752948723203211950960613576891318607861696917586948044918432185737162229507848057021813545683185489642099504679419591224783681560147107070396794041492725980238005574624967574802165117526859574657585969053415768524489686405356724899248075452799241867780311340525234092674611637731760982962656783165184388948873289939492079592396444442260862730651018465381359732509392071568627947948471056747064968922790190548687878540653482203953455893285897792903197016334265322205466911894183245257376023476165819543820029311308963476823774648984008457834262839619818633461205342036785664327533747277141909375527578402607217562884298627353165755084372490766196111844239115365540538827513502597041694089192317633738968885795069965146093453686508232604109353182287373943124900482092364052732016358067235530576426753288149694309537841058798607818850921538822812957230827697137690812803735434052752212892272947383547319517053436679271023449321967687097369795947386803178395909468564035647850351740779409733139015851760551847687502257454145695121273598005861542333069295802263366614357918311344443467323965915268412160002206520732306817979548709415729738264810726412207332689765302377719446967014424677687590577893371364457470957476727080132457105196520593283582776637295449605819133456777044325556720876738374229173349625229372449227197480734675702943736096564513953427158215390731438615756335691542951646016781136290986973733154091885909664616292445083162433782295671204305506600464705340310502858446958253159889196913271498439107901526601174604611068780306283753363613142852202772142495553201985812392814034987197369426766247743604236414441202700595596787960814195303127243003818498740505259885837686676051477070087546117193524739597431063665024319432834379289300186859368252603859743938046123874481290290299129117739541297114644947301038506476689010503078521280282427978372676311278159876361887088805882511944885702015853212766413982753388775084906083546982444997212412939644078223339778983970409671361251424686148429084835356698969340401801261476189401431329176068415385987898137475130371622622972188489355881923551730664798846791181672885438276030710509795276824664581755735049544708978806291152812252537053485629071507465516455761413095953713531654758805512403724304819763459995034122940346545751038421499084565724253094842580593844159527387829960356681304577391683783644235186144650710453336803381009828520950511965423974494633829970756779301055523360884456921444927337833296896037209246373438756875706709697989952041303456838938186325069791745110517984610745592845136053243585247892248961452720927718556959526147657574001881151769526849091799742183983240932051895226730150821496232548117889341442329562349435168076687998573178561272972332243630900376506860024171447058973149829995474957605856937288090826397994935118084784723255689061748350224799904446947838615751841835639816150586503531432290311865057828847036025435164342569490390290989760148716760177767450596847506526177350124145381362354107044827493514299499878268630352063572991032928767585465517255266569034123076871157453473778660936823266833182130964847033362412422786017609156226301423953255717019630915294751946562024279455407646867809498207239981793811180198430501777888739892290446901518163167880391507441472825110209446889779908897888086853568758930486387572918205828341533631750431632283250679809878443301676952502923569844400836095451130387663306398832369801273262365090374868050211819896240614052753306533667609905181407234307801578924247383917500675929799470174735713598446309563066485092100531726605889888870129342882833965638065372386487092620179573820115233121044938379742968559233337689087472744631067964489011726347692071559022190880825080576904536591619592118611647522726910419087352041097187457074020402564857651130855451917650794477587026638453392985169932027220585923544791287957378712408168827153279336900640021316125786620187139211336107054748453154257168709895278397284491329395176907753635235491255442019887377650113133741016858765220375501816902796397384741284674445583086144389969896313982236892154860362522881427692510616119711716318272930775213044965654352235326157456849619367716828873383548494065970417242827284133527682429306599044468146462999754728779354282654776320474373087815457680352670808564921770551585748632840038721575519172014172094656235113931700758952563414125765243602651467230135592760395872453066559059343539497737985181799472077770765412114755938311933536878141316734717524950597581884844418164458042183240079445292154799852467013150936007238159887995587422209832817606930462642991071930591312883930039547338687757631791630086913262923647929963914889201528775711746297800276763719423760862151593061618242191701192350178612433559110127457076896150381679643088865631865260946107192347060889827139949750760101982015196380257126308170255313530350111202376746046712400975157923033883901837706744376296722336287171325750858459226559250459891554710744370692885693786475949307121018953290834461898745628436841397479886824291386321076772804341502032792593484243572734879107374365508394995642857630070070427169315434596923374098436233420260922454903295096166906826806321194168626409252161954208242466358548723337997423043016182100735275352066090580829676680359179293694124088767511175315211974718635832783117278020959085329636572686658648147408255855089429361941587249592767819926501315768145879489078512196695981985052507814949118690249914566025301793294130795784498669719860818183178395656089943958505903201061301244923046291112929754579583037748127674622938925396911003941842548063914321747157862217236097546970025224377907266288115013455601095307286681170977072778303760369477071794078122192265668578582001273395474303702612633525171332103789381484724010122523916197827016931177188786155219917187640010501582331596530444960538494818736557477940069151143807424762864068800971503816732048771302218317900245253476442864535903164168740802295373380353378964260912166072324375846055311791773337135398478966692563635560776380263505325502258685132017241450545753911271835635020720508653554062510400402095783811026657677307585850018472205537083769885252719713017489425258503897939302403484266787320249761279957681066600155728527194976717485639495993080024615084034144693762675823484260829785192201513996008371162020124672633900892198160819017572994631884909533128170359947025985312344449593369746998111996367535635001040411523756240814018375820784942207958457194415452993765946926740654786078237116910287443633415758113704242304775651632933073227630864241077367747505677153272431437289061203840485912554864063849914514411567165623386056846159749931547007430337945319297513365091404754638266062012195235799150231532845397891143011937966660460800134002281356830177670263530550251299110809865367120944360328286414924719800867458443038405533081948721608941232267345233871782360362042885593349254948886941873815223887081681297434962885891487823316036890366385898322681060096177028511745307792558573490853241618013573944308769409644472584013359521771914183009833881211030715247163498220582680090758587132286625244336238099419601929633477637382547522649971828215581755923453724160392036586001992226179199341331316028631670106657200798135771152203890845123435294583709734359508847526568155209540106614499927076497532371506712678916927332761004541270187751788623531451895253926720994818805658012428701170614628586209845137090917713190977753923933815532623893828566214764815449598441604427575636702222638114136149720701406778716933773909753409774500587805702201484821724568192746238522761787126431961300515045963317857526639287195985273546374438312771571102200890869220276536214514748299246262524627144976155785079452976701370618457359792013919728697145818245585521601354996009634626525345408570526591246840276770760804051754957500660641747882057706172480426526134156813660580329722578455510820752522177398396103135185197117262197398988080520729219728642028686018901855765938837704263557135640748931797939257765047167766574328448760875279490494794949643101594413318392486226237888357199626904186914316117966213828078763464279514535476025673641399840534604666180512731002716726656428319459429862066947706111830800404435766974016790174058893045221856618778106998178342485280765071804681370865118124838239268109430553267863846298572602344843588596089176224528470396072458093098163771475282681154046468819294321505796516890617254152226270353111291743562718095892255993001219509751187075383062706672389985461104315909026016873590851983909830017328384799805282949330851971885340118113371158616962214373407198889069080588712633599473179213432070568029386056107457086682280889319635374792722581940371885321922283473128076121175829576407335458769133284916190319259552746694832231350321038076677080925791676796196325304865530562545069434794109662302630855238474223499684735371220691803911615628455504205643126504526934290140593297844794604249698564252996890953082415659759053562520861636274275710784131127361859412609552981434839756100792474866696234661191040327003976757783894078567893555542698559572700857766060149542643181624406804450477022240977546466615284703069477202765825346199177792909348852496938274381638931588855871829457989472961983472363607291436377795322432589641198361616694878300841309535400250395863971332444994209712070992756363346341431161675206815655938992782901503572674812343067811374836127135675542028406215675539037528921667432135014681649154991963326756105487229732485453395220671451051620184528719004268897487053618740376534141863008883476743939434622166687133311892170354046270248724653124994803579255157864771718921467089989691457768331559615902237515256968808338067348383018338334194121599685242702795795101479131735321748281308321016562059270427804747906098203797556092349054013396294038636478754659392822239723613143676839664758758657181843781207849565789195318496277285835166179325433759799585481152351695061920555246842527230669527471943510839014430084113886640218481800596308425816779537245936624920468580556657773036913151723032559373124724360915105044941851336807748534686345166129228089936552666107317839810276366263298674867866974667548849638145900387105564708277853703673722091039290364914116779754776926339374066259505193651730238188668006792567433120859026802772043773081079366673486346613434609046115968895081334478346612294536286407325829742463665394699460791991111794017662570311182538240161745394974458224071072665573731796138528911847164286224255063734040577833197230056496298125150271358358503495479482371124235293913656886908040018515604162103528424357869012197588470284287550807286513180969907556904252032738360816272169905208907270505540798759972401650562975942890853421792841774002520964902757848422530403323199067839958491523313657135974492798283539745467770141766371725221004480430472711640237419610401201654132986048297028137155906223277191992479156727541319566651384878372210534034121373656635011364516727746536729206297875844093375760473581951022264402556959817135120434135598099645559378460050965440610948171140199694479109129732209752096122354901880655203115179746634412168807354563479918163924089419283860765762523982517009929679195809430740160920528502683860236855794558943740241371503555496304826163248776980641563661995379405489611656696823155988511210766610700054885331794647721300303121006389362673954070608007070396484069878475548004513929225316039765020182646725654640498935584157004958339448223835307151575340307186384888053772497518982476740133540455274476626179766986791772640182304542794050500219716699001479448239452936446897027122785352918113743751325759816734337986232525821009498853281642483681321017948378019001870850639166330905743427034370236559717431264594558418353100128075361404454906320545478774587230701444412775596840100003061702645969770540241401140176517592096690732145260855616674371997887885194880613989091176350621682007687025090254157315680541893290866311585604717720782266263697339371505402998394268556914921457379879374868253857502289048541071918044099428499062826690208230429694616493394699337483872528144330459724621403690068001468717090640375531507241643707073080880659054263891422615101043053490526578731368009398680275884064679717463373416072430305929217786731500597186687003381491667536315940493203506345333609096048092863184324823997602211618504457897995435927018277714562612756997820496541608231684042107285991111905366906212528404340033260960565972228505282011000025708161026478387326125502614836834802912823494158542935583340091341708969606449770592893912161687052177639493372921675634924433625938225971034372010213582598500200047300996388144829853536596642201271441645166644414176901324930537716374071538873970116836725245682488623791363622230251056728141860167845812937846320841687241776037213875879592630764054429473066668552500122102229060184888590279593343931472428205886418880043814103021650616562329647973403937536201134507304561768376264386488649880617260592471835808742139753939252175523810785768445179885281760911391516860249305712754909055613014762960012893833053180668387245526060522830300648603995565424512680574305046060199008468292744262485271395402836054157273228484843273683145002389664519141081155316265367044643572128200261301347697013784144826995978019236205670749713350093404901183755884088853528368543904570338725325214005530229814918500795550343705388105866066571361737908887955439267135501425399843499551536629824501666945302973343668791407718614432278038958643742876239757014007826788497143409466018416080687100769549259691532610477113526020820341311814682787603747981965114656282255650006902438083515268222442618538263474970647244615873767615313850272574376444259296877210445906444543165594906657845672897574279184141089255117776961438080522634667941081627715074398615783160526606360458822622500500358076433288692657763279836487543154051026069922370911654968084312146416085258079064280290788528032262366156832508316001883295637081855169024798860776565909354216185397168083099209891188074060440334280020827532324995987653960949915365717191363751449494454408206031024571623232982530681248244619136666153234311894471916596819847165548937781247098025876052409767794083602286313878356850310557603203775535627586267980172661029900825563719804747426887997745526446841293901519721238755802617310783572147395817851286425098641063100486980366154013770522652222213279288707468422807025549016767077044979310902911577897300418596389861100643428008561231904271801770393383225161117295193155756413191433913672565306427946879710650784094804802447581495178365308168024567764285902540861271968929014389633592700596431063463648144126236774024234091544033658706727013977987884145311854922724822018501471698233906850085999205022653589532644931524658469039332642788195874352650114889569196574703548294937169010122523290800187287524666443085811357736063362828010103749095182017010749395066395738053837420326491533336833673795517871208200044378868440229516651886905469549201734251067105280751659634645191997540689004003793890373641754478577375841909279020599195855786509999254375570774379251010482158811977443611249801589600227924206965340147138238461264215295572032413795717525271473533146414770775625577625171657145054832308235121593438241540445778356684783880197964006682461102927795971605277216544134394919220124752051578031454089441635247538834806987495044926174482318980172290560851215667507690012004854404427880660939875893380393506141232557324333980894997382954530054153458193340165114864009243832401469148630984836471132046225139042631363624252906850025144591932987563228144527496169980747201593420333330216315146079015772682217814222492306385759673369856319406378947064279392194463615893554791355592288966156382194639122006348652813830554382047634176737424226009390373611392280825358831846076569113578153393128472945508987720414073638370247785554793683463868781641694213963682653805216257566189097565550942312564299152945761982575583162071374241369350084814160858765213380450188734376430728928150922143789560412385961839745083564245111554978465519393716861222761575481386575270162668244018172661264403388536120444692374179495017524186148981691981392234448180952771257104939459321399994042043822112369440353547547046531159918008592626881027516805549209639739392529607337316384610029496905355442415728286651626280249212510145063958903689329680085554372927741205703755099087223342044823481259114781461818447692165534806304448098966004871950204839520630231602941205913363279228572543549759134032338342346953399134151831474217248140250881124905090412516389077804995037980890265077935576496893784307931044522150079936833222786563829131793163044849309669689375279454396714714279527313007905558557941339718252768781429250250235127104078572256148597080887286889682307999714182807086154586805732868156672260635455391359039767217548726415346914363316602625193141787583934728724597842947065204548484377240233929778283312924717178179767835646839357281491006552960316249041576778151734257415432264114170536122967197486893893339098181410135470990722469065436318608572802680044066552804232278847094580239045747301143555798818818390181067138836158534326874644396155906407779394582330390796904894873197677032076804829975150140557251416015085864277684061704912970972399864490954307013946271035989093183880769967643972647888621373650305548337674758028249574541196693238402207406522031177500599684218346074608908535683473743269678875677793434663051258748747509347803270487635441263862641098175565518367779521398262369138399140341020693614719273490562310989970084742021808365580262028106327718146637752561382370267382243693614321752559286315847824829349621378074088864409914376490119060998978242681191987335821610897301832608976322466750889103691738874960501754263315425861896214406091994597506022753942726975626925185313351989749631167899265115386531891696009184568841933889277203762428250865378335394934899756842662459149740854936582218460669512436134400231059884933252461835125345575941786698551798914477353074996691533664058115795336053589067842662705164498934708255907557871002115710842754250811189503491862717683709567513550660399222881910804322559135834465455052889282053176154359700002125582514895892719682122111428109598262992928362897481723360433741110004777556304628983860070006714983752118246459003566360094262964067086940285850390359698490622094779291151346699448966300225899755112029831301154647904736496951066265996383735918616203802286100451401338708408965961142234681472161282862031802699496657061138298479917084262226431858305778453139803590560475770944784266983453578911338645770541714024875154108643629613744291408261872999575991252993090634912910304564186733361463221039983008560253833005435587411850549770642407638343903554704560708389686202531798575733646081442336863180542863071417734584051211970163130622937638635018719365676084473008523518578621196633914498422479943448337237859337545602863884985477912406805928051443790810945680922155310203085331245754975485679284668577493561191117202698953952001453953211823275693977337351575781290033713730427226206521266770851059075808728471753184130233708039658291663884619404410448837517095628992916291529380371680335959157132263974130778927222705595295030085976445797045062104662175648962294285765341040155430234332200840951622980422054246930989564803553084091658345415120970273290586280944541044856928725905065548732810319048203744342856629970911916851058558046007703302952262749382764002978758557479827259991053532688118623774143864061463975488321242346562114345570008660310562003462077971766901623748091909654357100484680483947933529858703478131796121505098100592711196281673061869476211679061001894752654521508822841306348077367363067140040517436842842193418520825210815104489914492234738739453982048807546423367880074752158343255955829756983680585196164371156943951236599315256515405063471089236782238242485952232556378923111302859997549989841567847101683197598674702797147202949839612094233768006778780729419041972211018933581339320357361615954326054264393721652725575338076927914001549818186435035563023414362328857558173619206298938801724567666127754604799706302531386017648066722591174330690431705421026390187447521378513404569551332004151157254612857740922261491640347350600847217236065765017938050709858531264020338383749930427296619640752526594419278710033179339495092630311642212261283387646038503757371114271340022077357720989705259351558122048371282523477062722698715508518978955650838082583076888120352514954786147693654231892018955374838319691024501058822182238624902809718688096858739170308739900176148927462132916269792340655514015578382253683079519298314517179799593737296042161725895143625295003146554260952724322101387817775789751665192782311554456954100221228615174615587630976297822648171318326962135752052472105756143106318706782477231777904465278361602561434433443179219668603739560183665862937322844911925937830294017749287611725996675032639111870305348353011038089857628126779542941936999407401365155646501140944161032214893105577459211426883938140940808370669411799150729073689932097172844116599320057440570271988364726253041599721604393205994276400375959596976157311876343043609184225621804811665046889245204527776017749079362806776187130740847006529050502660334671968103824930236300147764163226768392466939363960515813115941220524663260319981531389961177365600776461048173588032729505071715989175760921636455293610873286649847465603107742785027230488963702554154294260969568667082399569538663454186690051279708978058760621405181434474764741290126426716998983803639814620908520530931817743835913086942420575018826995565061454072934810207291559630793448620124305954706413154154632987940153245215156763892977464693023416574828134125013701035396231321589164939559998015603040641012775853290591650712652849565474520526693743811067356725152549610687515665873692070824274153380462425620587441390334931993324881523600036539542012873682211766120737416766180554258110955866403145358093629991420900353137518091704093029628681485410058792324016921641214939705758220440414109647009731181974251249495010797488790529274554503179009128117456187711905997282786370350965725397146937102034229780880472931975137529395901646081281721959984394055626387946552502788464726495159897154864058628625849142758205133460800078071869730839831348778006087694918294158768834724056652187294087320557523160865158269268238802440511188350953948179378447326430328685872919092113595341654702190919240953268536583800801000529015543724188731195212142874289177787732644147132820004353232658606276673989480768925720286029215737429402680507310901718273362766881305096550643446887981077797512321480925298800698746453878265492033210826098368465845650785848060612702079581556404480306820484971205872985082335341906055469426939114870631372286404819709822057612371302971971030254425753048369479958570943933873027879873679380384549883976460905238189926982380622315201071619645974355540211178181274061094696569968887067584972060395636854727869582656332780301436873336864826080000998424278191545193767589618157015283093923145947893917787487290709231217723171931238764576480335132241566412567265233634819113563407290702293535455396836073091809085801600456525565315152945223585662073012841913919499911147808596167073967942356673746065231468397803361962066720196224681753230549875979089222318844594795333201421391576939863814921930991807761278272544951648950057002768887616599156796670375807973963323001409589085365643492568484250441617059697835891647303333765642138332821004249295759324715021947063613649274552548838240899681454322108933299684568278876414394551241135336503128273746148370912188576616772700730277851038154991375804867363733081327450270158398668599119341617546541964404296960965095242831881710006933780597966168484013326610737098811824546179498093147630765806743231833676753587041819222737819722596829764361377227633519362074837178925829959410380360680304814430864540750617007097730683105127631940938736112680225858484059053324544392740184152319190906234710826903418194419745616078566375028382026130141880643329109327738455541714108587880580430767782590454025096883311802008761361169816646112611937938077159115017829212059796787388954561711517864064096975153687794567874718049094475298315980251513436168727946899935952979100511202908404703470036515184162328933418109325232165511924888836087888733948257375616570213812969871167922841514707625747820991458791144911501814567386990390880621638567887994859879127098013628519199842670920833037698363965382726359433039570611461164254871252029592856959610391171964490420994351267678912434810838595332803825593254397336034464258333070353578896599502020978491125181192895640780140715231884516278769286544301669852548655213908269040422251527825200632323539493183325240632098807450293889543088488377758582400320918111531923235427778208492546352789792949381423083867646157961268250718713581920996486656919814474908347303474573159216655462638607903860301486733410025075681172509102385498979036267491027028249287038811336064447493310555678111641743939235797263975711050459522778637379124561620438324414237007495309358075073568452452312467188022609945155639183617641517405199674559528452235511402162919520528361398759654446604080279366946914935427225209111203792570379448574425497995462621951819075910132263434332600290714570841525707004426094559207860945812222919502127935951614966355658408085083408554580002256559277519033510512012179879214040656681870603724234071236666162771258620631708641829263275386816860841881203945689059665695566913803310913411634442445875510709315023072763701481193160548563848112654612150286612697793822995359869596005594679968993862107191685775495399992327810477738571949408196848667619632784919766706982092058618172796709347436295444212786938431143972951422774434751262167214870285910954378298295697795268057738881950245079375852243195782095655471464636447267862343045648179560134464913508228860967112003081548632644173565366466140067647078572769512220996160099538011854629521870449659856868587313246792299890047041665500783521241126469330443257720201294440434433631481572561969122857562334296376292567342758830440183793089963832310907268780683870232542356503084909330596214526922749763763663880842555198164568329081388500049949176872099179352033986879232974682257729611871823379412959078571277073275892241402186856726752714037695693334204448587597336383290906363405809399657301179538008914279668141639982768144928606689050846763203175605486461273600220270264707712825420474185312966116114664521877129230864328575970719458415928132512774167440866887011581372568873438600707619509965660112409344724388582982068016656804983077465966756470580446738274591538608717519744569127379083691518433233894826692953380492288258767685426748356018684198357469671356913565706567622384321051292277611606807185294264984045177400738797460162740215229952769910954912700968716262061413945225200571946178709486704577373312206903069476835774187200502870588240740665215423146653411646061762313600727032165377155564412957957625394816831699962472526684608902438756142738521919131205280771950346435048150361820490553469608501086644541199053178672219422479998569331295993049056641579707514219114168824953938000975268063816069228308894480812994627646771323679955894088818898263905775271065775390263139524500476509080580385917785913992005937476930219851891483503702290242315821129269282441305313505844473907506123695669688280292425292286629165562551149845128959082178816749341248825453110329972107284835613963644559977079302552284707833234182381420713556610233008055241720196439111430159714945598334579468970396908751587990626787982911830196619564430650166083653461422594835927475580471481761541531731898738067381964651384999931080775121597961260865991951141917125131935665430983949750687835081570585740352839560380621924864760475292893501539498937333843972094371915754436054156464025848906736146254742389559606147116482644426628595250804460858073903020281814225465750155185583269884512683133735667351673359403137186426314057230036485000479909141484528201861571290819401767890787236403155181051130672598617176866867961894108242148009836579236767426666350303998415455741506862609478591369692758596722047719915733924283025757387971710337516290287532632603995506015196798184711285111929235124156422329904368654359432667474148840970207467535667947053946394646172965109949754566226949725404986316280174693132120911223134287531464531147658479216832190086686013298864686979694011001877871401201961568588962150784786637811291428269026949433494214641239495686739152113676832356603783035880029437822951099269756515276158583167382547969877582372642302255957722148553643034627953336711221241283027881421166516022307277322048627024101886071102097541632191408127735072204487352801928854039238295376599786592463441629297467243128068796076906747437962391105026626961927666057789379848098385147382312906033399011847000327900366926464195279977001038201617440594632720877538493199108898761808783976770300106946300088196456435580455797849084522605970767841364157006216730044202488623068485136303624752553663462547942231470098079112434229942934773653479442179253327178357575883505378545142560707601178475822582639896948122278970462704218146615055618718676313516734225183980954424897636288459952974366418818295669920591442776926892530271222496979995841269661588726473405850820862202722311788785522679140327519749236087482817185155896732972657959814492615652011784076965804511862150360111753461983559005495414916778716584294613034512584599016899523666992238896600077913028034818575758633614240451044604415545271692130458751304790402501588592270072479919539004446898042944006565258172592482159036049665243066124212172189039579628999993567790247987244864630711312742419619950346887730760795011802893988908967279804274274306876772178494072954990034411690024055673933870280738338727326001015475493485467288751833373385517670527995987003655438999982382482770890791598264769011572263706576548475946610419134154653822480305021963311739661270772006804963436453653550206042522490961873195451699752592403988896326791294222915591563178456733117883765176673228082377747416283220578545977125107590497676795611241040103412126586003457814275651530294078115973738421524588437074030925199382884680463198560181573470569138215864467417907655440129712667867499552863389884272578100158994619527076406424875613875218486081197824527974122019361891176243992517990388707619999959996589229780900164412053376677708062552947245119991166969099581742855115485880389582862735791480075624354659080030240120863239012053984494175083203253926813811140867089484517050263009125607384737707718017098173242592720780347076660937309647485858721412310591529088518115184412591130117285432732370214057327177960500379532682013679544791618716879593636061307922259624938220008919051095786355444406569229739415480408861524731804497664273250009497578558546811921628118770495213364423508926250259289484391613106062097334474970284979058898050205119705987447556848828472930481283324278307811284554117349680270993903130510545962629913343928232591856703434030387961825009986385010134159862582022068790720248139563484414073705500666708563992108615073688904869860383683539270154355290778950765964860791564379974029766673700494134986439217024570894880436341957335200661809918312777440553101733331884666131882468727548506446183911540501161640810918156483306772251377115697303005872221802163772224629573685854806212363797483590768081129068552224626690063190471882911256860677432128079808513812138069557502854386929506406057417313583935946336293301368073389438376799230107898453008551981948142995162867554713225894044266115714173967906682525645892769260713472743903976440479246803947110648526395704779738812410330751027143341843396724733392397142733549914376617633381167983943749877969040251668750603660551353625954243625118198196931357309787611773448224280363934309839132949537204189868121710494252008359857327158731784480105299946503522780188139642441477811111860415177007872019786968931658207467866035221374611721643404536038161718376363939533024857827445908847384366836379630475360703747457068322534318814019971228343368126816346413797056230765359736966631999948959999462394817115235199447949781010971686955343164495357417573564392302211225901975824463860293961934866791483794511433805458900092445773513741038955255303767596510829717689400798656293304846437842628775000256852395094216901858816621103609457122865162478722549326489380147322920193997074299670688138812355531552031861648737829055864603737283616726988462371595376563609231881948459025583270963079204465816660790531933659841563804728945272489644380707617953827704257146669870568615554222854448921383973976863860447140381773089395253269375485922980453507197905763263735635552963342653255281178381409304658972764084747010327668264414520192332806538077561373031551975642627816035410417745311526137662006745885108431863202982572303863669762637497546419480811255819098472076121484006671262413014923112884567515880595314433242130379019412329824766153098207735581091842048883119095857131179528412183715798614011361266525300806452884584333001657338013808916527995991740055721861882247553324561549045563270032259145153201462223794873247114482891808639277856803686948702610371448663768321466262708740578036015141388913750111758278253247868447724876798579742240870546188812870514304584773010310774010914856500219315032590301014517359818966476824435596996056826014828106175046195377236030599007860992392762768786704100207238669383862512980193359573512924528568468636939750756158555892810117460324952776831562423724943656824993196467047171538511712328550446251717412218994941521007388950862404768694442498872464095412431434309448142685769972733405700803300925865222521429947176216903744947441265284280382792744981765576014501653661579192902232021718655028308678248774802007562925841552531271319436744083275528569637543037259959008313155025455669570897656747821360954418800041549520629339786564774507922312788254612963782336813728840555222666027682920163644025360492233180100667515015667321913780720842128791198790409918901792399572272459212221015094998639668576123002489545493639532464827820418340704044670701015628910328565925305357572646135838408489729745165019574427484488096700898782078623686951841906605964601158503553493499888258293459231631265920128586718144995435268968342187760527533102746027099733989005626808750839062240463796142757678371157248172540759165739534808098726496766373864263786229346933932619180998929528866058405499510204284780855072428032022196774786263202698015428240171309491865807377828548185827487895658249276976373671961365562342738725730302662554291877707055158706444560269571935358659784396035220090426597026599907811343966284716533538817888934634982681139395462576443718127192242063236799800125107958367741587202683668739834138166640764076556489442792131801100246572281638729262474874673490764746539448368837506264327433580565688537242529987047572934569015252780784077358531025074226990343863429061116516786948407396534432326855737530850427146559075822824868431199780271318414743651272889804290612478301051078294478385246441483294051044285371096671481433772572428912752355568730392938218268477044238736057311978894130274460765764999388595136676961803323920352746957149716320831541144822439889011829789034723296308537947351432181212068447313161426908788328589951790971218166823045310524402284810005044740525073503650300078588929244177480461669721332156465049557765768352148074277856716451641093338167802423607472752798238331165389543401642135345335800632532025625422052866978469371443139653534198449385759414743434682673429892451047181530840689391033540777798754754547942545261422150237254683989389529867690714540324630475753880008595042454556121151653181134054010116689626789960224035466296703329635160172628491250337972795935333449962470239521426968430808699649958473639207238414297003959266861164746690549060983964726000959237682270179152298544074701769782877471975232250766773257413017184285372090206158014314786987656020957749833229052186913361283452112664549087854405623303176478962213479821662326557398971603438510427093790340546443471817963958728891573159592904443400936934476993140930689723328341862143610175339498119609119615109562836912932199350159457153859309419398680032850154156555609797766330018611803931513420602094384988750226914530634052529370600962696542709830098982959684992979405475125315249324328605766982273365903069247068720526259075387958186350521477571022019879137752555461169701456758438882605291881446218362641241137246699268304450341041487373517033712373669784326430767853850551053283228818391283638526964016543752759879279030760122159868516675601742857197902970685498210864173307874214764686732924139066006767985503320108909108353024785106179761496172449196746474758340472301391672077613212339057162022415607901957369217104844683973980285168629665081637909325697895105739373213102825901314522485348459911598912149721517610952091428470008539572028772063066193039116511906792446961084040615133070414343535631378385106888982219760164706746323868082162236941913545533873161549073288452434991585603409623314143967842638594733170574404023545728580908962465222343699725732594229317841718847101918436204320494793215765061790040305195868505627423368237061661500748405780471787364380730765946604526280371394108747341739724091829174665603363378212106028642937982383079282146402994796611592645708005447542396349280317000362401398096811412453721025062915638158526861376477421854398356228058517406314562147197726215645828956499681484411888196047893893596325367711379008644403901735584739102800151405600524917137833497807496376024527418246711717385408607705497289714700663203186432522687988830135704603831382922513113547864175612856896448446176789476029127109366495370654696951297336149547573987649970690228178232398994901116827239721802564432490866917594884503318377936680261856959392871167391177116448507500407543131607756045654930218147229340191165338362670193752918561940136029618576752448571408456781512485968494249414903988004717752470623204992608191808077360145756253018217338897281059793988095541937526346609186202018344103487059390830914907776593528345834261853401260073185268307351539831460084524029271558890677652217890635576517861285487795737009761252756288645109812394624322692401387362722075642945808450630417155781365495397280579254147603161155101370151241009995459031386636559334970703118170342612682507887874661373379894730862319807851872312107174079597730122561266105370607833904927608442631232940766548749148965723623325997130807561184580005224002381122007290969285378009491299592409226328795787565907243266503705700556902110234223487554773735272868313810477760764225414590838024698962648941068733860831566397584364833589404394792389016026787300158573440444310914285553004215563072223748469630461247657454539959897273214644400264505320811768114753685966678183448626287264671370804848213271234343302193712439351128384827831508057989119456587811184703225270334955023544209451635446077669734466986548293667595561412128886120742562832429947687403142489567683749090193298763396211672376348327005867212487680251625698195003663587052298786266446355793993256694117141098852403206756910465483755447885985001171895303242931711803514454399862047559577298992952085482098435533079490391438044663363311089939481651996731583449027762280138200937196212793116061526689907553872345254171185324359329916775784977063682748581581593897081005863703131642985760898147895381517893879725709114497150963699903244081041739275272042041186557263435303422568848680291394458803004565772363359163931503382809129527511006521355659534602175883265498959592456253444719088117960580689762436039275135645578346058073060006850609004432436054082532021228695802814727412775127430109583954905171890158828033390858911440806460595852236629192653982193687222301624128876514487835189293752765589881465403760353534442934308548287724740205021610349287927587398541260382802653641578765813335705272512766125757760801013462657809109398233436268879741348581439931799408358359246875077920506851559966926007382324317272708314229304363815837431248106808129701563187517575841409664829938145751629557532320433388955841644951452712885666947481268373603152924340703877686535588219214773674406515067128391331741641889360480582082689241713611230547021024123028339341138835434207989797165499711168249924407625600437586286484443823077748678700104411790190022303139362248618302940802161849953820042555141103133312869608007353989632124383390663196603026224033778961629818552983860243234242568160570554493435238202920822527910324752804684549210066702440485370039369491239017057983165006330098447694840921847891508831141629378629185910614049518508311214775835010969779440822255541914482341438174841864093597880941753679028592914720813565314297702022213105088190549391392827176378972262229827817354434996662789302119598296840504387652935056836634321965324050923410671133128566427641214552788636246406475157985207686740146040622124041889244367708235477185805799227386306799883159261572956890854924866525771780922970947060435902086288078907706420641077650947282581871997773652169202914982165534923275461083585549396962252003120639149137093279774322552144554027989022235050564913308628357260454362514190547220843997205382705679197724288224745212298844200255301539701314787047372137002789968514931850576639289367725493379597220331059667187824238355426053768360100828721607144328525233392573619608433595996709940866313815242233735024204775035669815788640137265658026835249892691954151007481174482746846007885171632458834782121233920503871824454942934586002042665098680689064735072730445813743997694900355336011139170952432458589758835140709877125238359040462013644425305686078861800605012438235382462927741836418618525065739711051850090792910077882511603441363645303354004027920960240036223330391270453529679749912706711241517443978900529398953947772815922233072728497504151629103474476400807273099129641495699485246027725446105357600525418914564943112461395547198417596071181896991517653324387713149473680458197975700288502028214261168516611394748650128210694574930920973739633492000052033538304255691438111161910480532261739718305743992303087870296001249406954366750057973149203453891701811916319119316244246794791542127929441006558867080124763880167988445882359962249022514020236791507322020843569825138167441907355758666095858541951186165950324051888354485953627701863801664689940558335022134532853025129197468295634913859860339201655248634383122499375005072185098642983957720517996495049946951864824624789870154550905344519992423956898056699195939520152115175688529188527837704383024055803668947447687857306163054356971273061239833169877711806447816430144008596365943492937472648270635967467067425261592602696558553317791409027970391923150002195291980393019373248252505260358099381022030208853050729752823619584954987737679162435109927275147286001002114578991833635727149165539492585293975340432235585606727728647049364871553355317170807360399123397251594671353068150312780776138520381792326190640024554897643121385214446357651962711524196924786492942200814272241430506631393965184796387170086842613717796811008333193822832552874886315651267079662950658988476454757142409428814906637059771288001705708453058860060966958940806071457612575846212152407210590266991557161976304778627108105994142431714534986547081392673502858104937885597759016448108892027426870816886383779255145410838145624466450355030410767287085249507828856973477839860787804551242430588899633994441255094365252326012720698001881387717034990209306381791181914291687885719624470312053089630211628119245926147654176564430317721840470249760602847861942189098883915863708235468881203166757045317476338939612083272536423478547836036643597141844394683872806411137751693061017626718669604853377389399827155796454245589493437353193335998384523454995141064321840144210252527887123382912515763366443783885036509359216080869530795021698988877237442748887770541210103116290900267327971357846813332713254882467198708922197537744287660811893459371209347094262514061916938830789527354262493415152168946562416663017784361949226015224067945803830390475316029334418709736711912669036413261568446858543617590618796876438680503221414458856988921285651467356134119892370782302601778715891697048591121986883766904170139118607245937858218568189386852947433215087364872585045548028329333387534040460141680266254641302344330429484299620543966879469533880954725317443241021742704138349603450936615339494958572357130835518808396719130650201274322280743218733920288802737004771532438123042443687677682274356513272778898343839150156627312079413838983622420927601202047875084911677856354952759366299440398593214887195511289034750789275245880612238965685847313938042617425991065454173228455560188862733478101017438735155759585902017477360639156411596418763402118358239764688230535236774560212389345736584574392944667012183888001029664348957244933988992257349920213597352550078445214774918151364653072207274396100054747698536202005946283133716736365432223718604022290354241681901849138812596814346945597250787180430274304005706513830222475356629530982483732346588932164062957393821604143134986170514667691798043194844201893929892599238989896885092965703282665813752938297945688777026664671318380565043726391910087562125664235624202044160109867744896494682049408268364925985318306088380642620542484726596646340038369572726046291619496690418134221879543713126643837211088395329126528896689987494871445641819110623600450928831487103001014512911610245399643779803911081548942524349044896807272634123444794530911708951278511652610912059174965084378851496155672207391429877325429865708462899292364628075177020665786779885385406823983583312666952515965027153036059667664713044611296586823747887992554726665749518869802012535549771179858636699651152992222398355081564393595242786349161650493204471857646180165499910231047568326356320038474841835523162955046175561892737276285388156835436671126696967035836133635763021145233485912232693886964901771801374339685701408391484120621019329253507473014674369918868381955434668486030537523438921260986882406333058351835820266323235285922458306769712663833882876045035603644005340225874346442838777090550937973358572001690576626599191157606572381285101909025949089582538267004115158802125728480420977163654361522105499424297786133966686344921952977270234451024921606852214751667966832028944835845838564985577366714901305604281945519172610615530604963035441005975808935271009181785529366142787300613243957359402063371533262570414394957405386901002817187289096929001838453464830068531161077912102343394805715448920653650884183355994786696454182902982627979315286558213735140489057958256693753567330606507806099234309626579444191204170074936976631074828801314729912480120308305824862402040169239055266206218341311253225465381102784063137762576077197328555725067844475706887013535981786080360279070765358127029041386964837422274510478676226101816132404564551332860038124485937338447838572025338033435000132931586822013027704462283885132050787560608077495239600949460150587385214168879815074916107698569965051299809803174974535870771924795011858978853659513472502534659580333012561861196089281158732202786703767871170512857167097802019936208952780813913298265365143985227517191903467205586103840882150014852101339189756717638688675530086900079859741656711108470883729969898395694012811326356131425283858341974017506625040436938519500884920160946258456634918935039025734261717680706088768171922075222858648163153125816475902815289735612339094702257287720882617927888714898358991538163618289897996579601437583072498710806279743512517145700152807070969563318597601866705325094535728541430321044270958177401556534327911588283941694040082195573285069172206932174773099550920898977018899805780712510270709678064892340357798878397175727805445719604043546557860529084847083639143282352285036737426632292380185472830074067559111699991518509650448230658392915592130732029511113486462026239447800698063120475295926596966994495421832858325900357339466629242932677749527106152027514229693861158874075366991082956013512548864986535098556875971950279066250584094960769983966181934874686955843768552569638941570289093233921039270892699137827887302610204740076811830142201469545230206852904930509161778440031799317121682485432354181238240915965737589109158973656140189312435232556555718265532435033992424630517124430521562409906293773072288934768536652600442309917978920946258275309954060271139848773436233220596024280712939949292301004463081988980547321066113930481023926009648107226792045031370281447346425875517784471183937739704592527124435264073832870294347268762871231604467266391742164918280933801580152665343091500982659584671432368932882437332760819934312866116637265181336092560744102125651567599829661815163800957050379694254526751491851606581817706749672891527593485297893404344606984716415606019425979424829209812553615875784454862847630400658777705955537063413243675346817541805900367024736493881661150656317770121674852569639010204073651758873310602751975492794215435211728972767973883092206007046959871322432257408022819048775360841484075486962843174210417039071414289428678182189475352730568980381036002852280632731704784414401185466498813774474426235808985579564995142449609385630854196134155664433642742548277704512009729865938884103483451612336136353621629563005197639474221863312546192890271447619424920308455951355830973952205632944558069801369763182002043754791443647500442076216316105076014929518160524313513070101602157873707582963758872312089277157680193357760499369801981314794565180494831820121022394322431933435040688978534607977401716512207113150773324744955253271644260792500466061221630092219661679273120028188968357360811375508746807140818718691235566952322265384456552334199203847010723457286741771178277097999406942240067361406229676300817247438647188926820338167059213704000814546749255234353877253035839090774085434457269661024638440669526440512499633484180099666463286629641698221411637815772224182001855777776569093991166725307628534154646295814167072241533969860077173062296666498633923930671715983820204993890254485330695240595848072896206645721032230607488353436566136666778340439478725762801831167869532101367223525690281473508435372015021474039653365158738130332473011560696720175041130754161218595738629177298047472309229853947654283447124104294781221426825513488334343993162102412934141092253307911289941992743813042052940154095619856897663545339332460477135434036541544885352865576547356086680776375131895375149047518846967005387242227031469957730835637644654018452975433370639482427483224572993458248614782554471509516028796970673294768801181166652864574702118185249507947625758998627962786206148692207838282968698562755274091744183664295381400736441955693747991845930648021841429658165673862721404226591634922870695923940141498785272604284394170167654499788579320393467127963690432388329137949175848293321959004970453586845435087220014182201340303972145979767991017314776674431243430993520651795690877139387100818811637590622690762802957206122154234466865827652738286719207609384361153128784779320132963988131050124609647487987971294806208791728124746719834594982638838633741594745099984280451686591262493729021268492514492663000692071467312277668719090855968656755434548355136249349086359678080494589705877336695051373542097119239442003967269727279753326749519608931255048891268478348251156422019109940529447222590621354157303853495840288725185659460486094386383386787566236049710364189267868632071760714755492148183408876199398373713300379945674217631666719619308493851790889272816098508697924955305958510680515492368044189341873643319338090902507980827855392235651129648260003646330164254417822752099568702608710420123551020437576644716983865545511777459768066424969479038135829843072696104135608991448907887351199687630571335250622954823890129941699444209721222364322957936063808071919314658844500269333565439118831197120570503295217384557105295439769381476575943127358550469463806282893111091131011724598090232466816184996669079293645440783265753019827450067598803137395527278032733452060165926008723793105281668105167943077030881595195124638406705168311457118230270846274759925233749968744722674704224114587972776040713120138157519690778535114286963441632836560568682769296721172251476670436919597319864995149505748347245325493226482998699225023162650460532903494400333804689313485095244546182625802837127521077527930134330149410395870961138987283662092606484865798207630976889404434232630171803231011585402415331299779072771538893663858327873457294930732812603494211183595894518139081215377962492044138812814626856086442386087241595302652582489448040455583214091383286343076423086600229060935008235364177033204856735410124242238908094702393029774135609353664592672526027952987393770160544572561846351470808292533188631312977176649700092618275220672223946693984572411782355143708235880167169328134527070920950373483414281811893592601118359114050947192676084302364816619702383352818642755937664789296352769807068883297734000194982332944234906318437520301148177575957599803107482989701632031106946095977011011963039857852320555462140912334990550879587293241797585988493340370902766844351816228058721791364831172236261343491538972670121639445198713625128601538534654479226415825023277893043021813852243261382478155282204924800569364541482382539711892333393018705494403311696074740738582516428984168497402502304387655823195872303071062761596377191882313919054684510227226057190866350341699942826968097101892223912971869778244349248550064631853398566268275926693160423233330102891584157254093632521902957432651750400646359599896734636251114138723769596317201775286342043356117158901753466287766890413715906690398906501852051307507496408156310286107592550910581194103903155741238609675622448011115219750655802498320038110217295252650853327198088173290764310256728572951170596508519601338843075841708224613110848209150750940263426481808406983416261892967662805048038690664216416033536459027361966934919267691679413520902245138595217058721064530765937296999276549125193149002814572488088905583123306936407488985745690223987485363625369488588413010089231433022517950743686711384798815417401427009768340479901638784059183129238824609061141692056231572119601333519136316432065447500582675336960294480585523016374107212411397914590056585677067169544155534264877387869379068186261560551907460309807935741700166493378610244134838199795288800118136006248825201429588482751675218059718754981768608916250328067783287683407128824693324731318078796967560991945909859293181336824779233885900111775886897632753362314612301613568527961479654314531341734423658671350584860312795767096154365931726650773093037719105858432406418082812997182034014642672902162676868487490821910158751396812577538746443285258862021100004774895389892414834569731278894129933274871477680529569113529132866603086280890888001962982427741686299819937070841274129482095522326848067740008355705948121942488077789376792135261670827856237572491946884548758338765783834961918824611672842978557147351919334455272467558682360893266229751105325106349426298932557759415045516295163222193263883971416213175328630210202790276876541479815632570381955514514500838401548010435474809925262317763803111730710015710588697158147653923785003020811324765455364335130631635051023528657998120587877741223576362921320460684281484052495131985090482200540084385013114937035439684393467114784964840399227613292011207613329136219146056919338277617943177252810276581534980169264218665193764617794664984329877994642944766062729181165624294482026697256303355990653425296035948695151156722579840149582135777664294162972138299160659361604654337467608559507346708643974276382845136063646818240715104430078132841509401533014680256003257907297543019667762778452782813477987269620756250765659231379980588625425450220121550520538632229352285978562460324571299291075309425851427370586053385070752534497973688997736578453513828996290648967305826234777118265595017302453898920663952503038111683831104432784853594697588214294567944733525646573837907778840557064400255499763362642852635959342843390117509877269286309647297598656654372239450241004447844942122407745002784532278617992387152915080902872565356453854166117322523374974024490506289423557191933113632817309580937222361728786504651438923582764664821097002507633904053751420809915386116297677559239972129169625220903870771909720858556520197930599463021004966767268228778159779067662302297171119299316774825618611105120839924415795919320908828997876392167087454497876779671908433120643999867891889521555149119940308413483698863579476668196297874061306244254559031360696888328045296910389837465413027647348804393135802318993552552094083483476826030844811952672970331736253851077091058449787519025480170227218352725841503764646100211714545976333667542145360702406461282260394054861639137909671700304841077855853786749476157663513430096408406290554058997782963439148665243737279718668181463154870582579175590644724972005399648668002670821148389543305511669901083385954900778618658753940196068207536665116639300808524818239548667286101854913990372574721739730624754766668598451046108410940837779362887047740162244859400608163622625696123820092884966587894765055729980208434856213602187050742909962683297879111108432702768020074348863605719001526194940629609669486246771468591363810369174863700998402071298539681719997974907923436364525817023399330017850460565934829248679645325056926219637497095797125964372630716974404216351826250863178586029774315598968636423733090772455030766235633883318741110765771800239707425624299202484650882090808112627417251973937085039223271882707157265803845976262473668851227527848961583717093570733754346124583961779560121407959314418952359395081475731711015410612643388922974068500323112623141031635768413517309561871547884588805303501678203593780544834805613202604406776117414877791518662756800329905348200281255170345907946083559371871726364898282509948568699134298406972544712097929205742251000692174571933559968091636227142200827091256730102376634143918622222172562145412212797279583711595965763934412373591438310674776613724315990611065964486608368299477747079244258558369914273841506402126491833131004693447510414705280930937285162673232064017604853683208075047783373358426813693865289446808539205634171302352627004635602861292984906535986689466646974462258104588340943436519700606676247243210036845117260230298987352857289600875054647003531812258991652567050677387008632136486505019842716089594899778943217001736307316399229202616101697564609429964550485102827012719143733823531543694552899499102395709856561103252809276286064056625539843914795784315419992490550202720081862830891805566836136991253848646712147400865670980151124448386031489909343571500819518831112088962005910590995017296923294330815445386069066923745007660460440643992493897849428435697279424513163960541859207614046031490248986652898777875522966637173761455523239768365120315111335675036600011339156213794658148719337859287697690886449666174215075415617438511311363978316558581597479302910822499990863816317889555294132997735555820902098783367598889325302328362497353833089859403126597534482270977504144377204472767508035177982032909991944416630908030439628949869713307473485910312252921788052158236936819073347944386525468763592584119592573128353317567605800763250437187321190103164264502717392196079426511416611779202881966688521691221418773709052969812177015142821345422319728291420944040482897921711170964084460716911476233825105152466980533137549919561709581323967450289783167412700615486607820240173256714120442494644781798628791295147817975553400737293968346089561656218823988227475700978103603195987812015608650165185390801654334938761524720213208394389300334319743939607388488460701332773018734367361713836843939190287909872041647769106326680827098157910076743377688478221709778022330592784234772099655782357075453153487796803847556315446267341454338405200730358288629243212905247404540910790170365798367050554828286546080648537529926511171519233280539936286625105904133577476397790482191329485841480239006112629426890347768921731773632660862723497611839527735218775273800620440143370242526906087152629678618436729961431759008479285820412646108026375566890041350077788991460378016034805785704784715660546426792706253650078683484533328696512867353443941098646760581485625648333988796337762376590151183153496667964433487593478670679058895609030618949938531375242965399308258981837633305717860605588666585236476215777733543155982805406685440013854803354225596592495692534644723310536423544699301772831797228248591299694023683672214312476205578733399713553438892824016138983408063349082754213360880334170388755570389912161220309838862006850766289576057411096460652671914369773214913085318314575909785756099593329092838627328622968256583674967360394956838855252854558552554715854703121655243630280355380299147537014308118822208563910921466098452943159385924353345245654675592959290888390340269454640606205950173164110521412140895358289692164725171945749534828465277070806668585686493457947060782198812115324155266808390797298183711869761335761755774812183271311461256694732744345120820757089317611067933485598614223443382050294020646810109515687464839257481211937059009046981683825213079472881946071005451178487812919415835415140197677442486438041153261690157519809821185745615195437954748481019228456109161286501368260132347711376737217534425837709747654827442027635806467875641168567358678341813871205269891951712280893236638673985236719589886475281109289787619267570554865710727988111644739340488133167412226476890378044641069353328874277222042740468389750684944351735854102814254116732062104944077128665330566958193030988111324028637000064177196837941539236429014334380542161023217870204765067407599922602158731656661896664369470585643277485751717379035772853087469985014684000297609145616401928809424894581668553014223621531181840252135195519953682345473550642737752886315035943151474571786210727453979585491459345499817750121208391964864885093033926392313637546437885029431958422170959599141634164302754364497098049354188442506044648860111747472755861958202614999612377177132997961326371584177886283691352563000601164674441618397135296918924825021056758801887616831931744401527492819367548109073069226170198212520546734797060686167865229490342182089352553997967181583977141406602248071031687597689887767502024914710261878899010088039502484114802152519551294645304609788215810314344173030628581298381514677831019720680298825171729867633787303291123305656299436543585598380004852027772335055378709148197816923991256439408937783244975497745889277101677221966243155915133905681693578769173150179502776619821931389983748424796255214457070267990763330273217426423835068238532907006561341910121315487882319481984333370358970458259043898443874291572229412095646267611607462872370841227177766695318927739199128100627287711181652393028123300926313860837010179636335642936601219342987615238673374765668418791356766284856284301811302157999353822008389912000772550252519835306501417511497964785674918831118557709441343447888628044950568720348069411068050170986868390568908041425916681894787136628404388047640125877124505938851113061280153921214967316175746601547870808504305795187158517056177994191370950723885857089747342641891735082939927068394295880112164792028074528222607569852909400173012089780928558675752080397285749880705475758101565784263423087643902732558442778286525613004912170082330651121656936746852947274921761764113352798415729760451599860762932398125724830358793219275552944196515632656508495423927962899770139501933184764255743106044879704479407103848780194784489895710265769450990640820952583304849947374352897447854035645414022447689848639522994831819729098859345160960971988108849530069193307778310299391385511556654750716222847389082901712312228620379731766473613404242674893748442746198854981158289910083535751062253481089492231548725549542504858412389601556166143582210200873503856414398856887576488164330983136298861469005782677222320266099993677078501746037326468155046965274276185524575286341579129180708810600357742425333889494993742854552056303283911822714666500976974306350202597841166688813166436561924790931013254683023587196393051368247200273382983093316948758245282249637094166082364645593400599501548243689603728552802753414017694290283874011548170610606896212589032816348769345108478367284457996749589104701671719236191042155545675727870439297063818724226104416659354252618855722609741219491997393314840911763480214349754772649898005379527466097206753592556749939503814652150956461179146315491462124781311174469279380108387335136528225673283185149341143260759373598961112637473066347215301397443330743325631263721525511475401152196834734094552912953734697051685420740208289911859755913752756471192849519785410702511751910712460187708797668792274437597279689756738055544395057837654150439358413280311445784725716192541390096953692604720981950052236569132370286664201845239916645999289458752406697029823268922356639412810444033103610881222085259475789883443902997079424905685340673231776077092781835566536555534934456894873024236248835064813571445885300403384014411359694247378153596347924056185198878713094949071346137763216385057994818375708349653889543233480232949892355361951417126861861302777184027879399550291888868433053657245037239630179474473630168005974467515209409971945616941325005846473244803247459603840030099006766524010677040869828672621106703647498016567433452306277913038671454799863061682877520863809186253277090771381793360176858241053322657606931460204904445187533759847000723018693088778142229173679081220719188650773084030176435964052093012804162793890728212631720584413891003614543136905461559368859367670362126619295239722837944202297629268143143017610264832060026362076410814965873058799953876749997401046896772975829919531645742665998124932267660744786495247141874578191642393938863807504620277653128436670701362707537237515832898957351531075965400278968904917856146737684669016844453336201981345760165042850545455288719791548088021299285117574074399896140101262658299574916783359858757232741921012174309413568622975246367509320872321051727223350212228191330422573153041253263035910184292792483341503419073646359825944710296026842107846647292540229605363619573189666894641888815095671923621036337968233626644064303266325471311248258888472631722393281141227443039532968148675841201523762318257810172309401642774727577819314102017979245771690950636903513270795909006117515211764339448058737255697046333715198282411691323575198625742164434547343739261279968380258407129544957531927443822307559965299488752340598899347236775975369778106113603786906694578139950296250356877160584257071675834100395638356365159349756176347575928432261227830817504760298324623749522448628138021249036707515444240542369956313118576531457896864234534378925187152731768665749050923752252548666803201453207392457735646305669935751040760735503796823625282522680118628714377533998937505672104021181307895152322476770981405993311141749059963679620836090991268648455409536941116668793300455882860017899756347076776299795515327830022690785822465173590269483468763463462156344370280077848811827688767911631147644576756407699752478521184856187603315424686414284186289036296408372792623835804634783740510781886063276430717859422893576704382194643251268704692878959327823470383617242765559590952561953293230905110074499199424090428731363544967054627875148724424032555919687105125855349295865048557021679371685320245781476551063995875730046156633360215142048644429608099123259821009138614427327259635823786715288346873546057850274874829675021984139029104033552768731713945677313343025477467161994439284375151366995538213731126801793213592706018902464395706442486899943814219518713804821409002036074928430839014172250276548365173085852663097374475968637977516025523909429106905636697427522449014431665999720330917402473776479785299504295922586351976541111844304882959110325765344737745523035757249592510980100659879420796119486297675908202704133760153986946106781923153040728780298363341425699713172406022516498023075564005608712389602394301530666894790004568924168417109395309233136831945938583417420900502755653189242650310269104324890629522797975073949784928233449421878968567260801294735641548164999751300771893906791491743789946229120328054730419165712691862603490514893134732674548880233584483597831868882404628007130813008140503560597400424591303177591269010047975875012169167661992394226090360227101832134639588764107835064651875602653026049669182212993901864512141561649625192659301161068965183908197812888171841712606047423397650826311320499159743690279425725095321897535873502786763268800353903983643703818513046141707338175968189708682950551120010502331570092673592149946329441282854569706915641450629669667624648850739188356729340325236131976418214619766227679270032140321461304739529200030979454169743293689793326470625469993070902114597541841374397889293591276049225889513076566507041796066735010881161539269311446760974299477018707342460100894304030483353962844207014615808644188458595211153078694752082614045924851915065580264518272481637337578779517073567067461469798201405237407675112030424831154423706281165009336042025949781389565928010918220072468722277973038867447789424705342216138625976020998783102130247402255717666695478482634832079259160633326333146212832467086253598537544368134249302138868279407900320843122607942919779170010166203058309236234080567470026210912847572043089488864590493583744236550537538884450798937647822117164742538151294521883743662484813112018071008776676053221417852242319543274599024355311813763531857324472992275277912620930743169651136393267766106874123611939632739518587271967598614134904148463104256855058193998843555775660802273369699251610783032435601594700346279246887087090788982277327315778039655483950800087850434164541114397190278994239932163999795605744303808870497231460720043725239865312708141043736298671531209421866997463132201676909512730376666195591835231691884540702006373006360109077357207921817715934365763122352168356075184510706492566886851658710977109703328629059408466257788969401221062960967470066978767333351590046027830972848217119805666197314344989995807900620539995080117725503757419394165453056771007311968686457359076718837209994842350165076496561930424058229454797462165619801261469158733445735542573937454017416502596452234095556231203269434981988980534402878924957613675290649054143076802759612299083561500144427055068458703108592711216881096802206013464427029323211386509503173039225883924821597706491274325882453787418135191154779408353848568724824571934094911123415423712281498403233489480183464459099755408583638062694250932108118650590436678857812355572341102863669615587449795581543181121364748870561150920207888137751736249599980427926818746539516346571203249587521657412281511461396842626578697050526529650284691729812861342910843315221554293416590469200069703591586700638616800828436359804906446983167103455056532235895981591820138501657593320374593866715846158694847287240601481276014586698347059739787355061635744331344789327818808777258120945004633513133895085686912995765547238057791548244630439162163831813081474288192920966185258622218851573245647479507726159308000809302622958069113832307927503799289310166770853035629534692431034361532457266488067281479521355415487242178868934573105270166967142237603859488011556889920043597764402411048740020167029523414674995340545934921542973056221457455573491883007755847943743307148248516765175519110360413781973764435741372494296245450845360421395045504572347657616735985129356687465655251404054905377683903411267669044310810791215758103859305934817266927959522371436057298775995680938722198375170268620616600743492844659746295373997711721051216891601017759322884252130434984261893233140658069606579787563895371690632770325113795734286647543903158044079271974007307726898332057247964564056373441404367841103914496484308961976513023046848733251448240355906917758875782177122833574163621641997974835755854519224958979471112655809423881499247395928462663616197974285103708254223056937981036845567341841032274467651416328629794353656930060125741157664699073256195939643265226909654872096941624260772771424658804750860564310832798651878688996142197344567065482622689964600551779617898872039813007065175574850487991704687713005524875632160616922775336181211166773439459644179467556580046910108508534129245372268059377148245260772608681360939429678361012200540102883146783606628953842160344232785723647976503106682846293718238041084366437755073875929383177484831074869538352599083391525648421850848013888751590052039234140602627047444599066087423797174100964214744704365147374210322059073446379741288588379024892254656343792797538073526604081512243744733838730442630170984274454666029479144393116807873647502514647898688743942212915112519549717203793698360086870113936642202223913694270914579036444388346041836924632110161529345175430741667137577093237586561686972172394365605056283696729918522487362625965644380973892252065395542527590690990958641702688917922580363138945846713804249393201088668321474215548794517349642832437283765638664928305672719356869162725368019469140320912671901682457804970020494574312992113692099097713598948096865964918252046570605528334841104206901515406497688866614732244097882901154714270339008939592668607261911510240545601330264129958634112436098268492807552314545763435261650544933718821518609994458813332124331497686156367804747701321196437611205273764073335151577515271477733862854050246962051645094831407971457852292280350944779621214460106317974131492426439659146461266937594477576334283024965706794141498700694682357197240377962653413980663210250402292057324243873806704518500256616968164195918098168977990187144917961187987544937486584395165399996868003812362522013654161781694002318448156525311905535713219857762719342366679770978056105581815151095341818356700538303022758064396655747313974270930985249981602429774443061564942646355311452242498788292049926572085287846563732274310891702205568546032238029883409313217818524740275094062216072395205248567842904286487471602611751580352066228523034046677489385930070552340304496921865252675753299163825376477763263759184884261259401192690123867925110915426405848079282038183373816664360267969299530416289420774099744611932375315906035428054441271202153364577858380086183183272720198671615210797208558902923867972822450585598571516831273598062351482593726186448809153368595830203389964791638878485244746412559628074691859606795686712150172905468995905651774792821379253068377769914900110566008344375233772636401402290429959684228297261519315130261378539377879793387517759899069767636988814802721855829925817278449133814089831804212545167972535239961049097571129555685476812111192706445495025841215561198553747830270407767013500778499215549882079039488769553951716514450106073067377165541683834951947606359918403209670539541482149489026660729804906694890042444162282668864018008563224975056224750101745691877869023806736404538361789943294498390009320141180924313822591696363831510159620218816878699555511100812064414514899938916265902255875559177131804499623596025227746941366113175684344988876090109885655651573945161527016273279449431928930371634647776828360259460782552878921392886084028525916121561266286632814848386780786230506344236166744966951155307514537146096366468676817457167120605299227749570267335567362838588310508638909419192616829822710654442058957082800755764749940821851107508134180755532954450079008865680277737873483665509842997615565579599401257403964353916839096951337393911375052184489549480200399108811614802836862500093428301839501274351405577185268520188695615811812988676381755977133055348063503588181276828273431121809800769849959383274059278911552027940543050313853240062118862817335835638400238724615089525224032551285564153806958301677334182192608966428286762875721798098326174478739532253015814515847945656810548391403842889412238907085306285652709293785390680974816916168744043589250551596526904255956192090569087620444799618850185240347590399079927779985171920434685365883365284611223397446605262773516441758235654873276754173763766295807087369642493322164593359177897648017201010079083864269359239277084491284821463484555670423725078022637515171468457993206089909637931866727293514537035280631406437325970158654121469702816419112000356331610593113137993647422603212508225246228884118676547532088006006793456719583093381516902811840506875390438591951293906694209968511168612260538418610597637038563316478982658176233202709286824331162771718267568806679245131399432736846980092742358201804160925406283343094019110155212261963475546381137241064076928304694687715361676964316820673917878157127945361969555898353589727850466277583720629397070893174023922040702733650410023661804095103639108555279079040584780997548426197588360767261957254267844411914430214147489038258079575332909804886328815033556678170630497606516653952106635176383507105683468922758087523728846562278347833291100464854108168175596862320001598293795427417939921043761465619209720682630765134282944847419063347868301366866437836258699702128512867067305356159804054133675736343582636735073900219043806321858220598469250678146279074321246522956000923428798651932090342316385607818178195789097635772274960585269030523588230581181631908212813929224550805723520764628550909868794345791474065861413488488338735475364406248842795322699895947384361382693016216904921576890290600192673249169613020184103353059649194753737145057012409434440199811969399636562293066671185893014032247459007258147698576829750773516579333258907782533139254175752487569385110627222288775693662645978983124805661987943516555558951969949280198233947206106849851838920549571671586101478229367781967333209290086991070168496023868297058938350184880234926800978785864189236957332857243071856942289717816990086300362781958646760558708563545166803454749978157586732448314077475012880809634587678395306476874301565274716965316923813379280478471523556400292549154923845740150185783261547775891667705059185830375306006398350970289438174854648877736968909396313187173650651064324846718844491535385683548282445921689995426125714286222800485636325801309583393174114081161380348356531410978676579690159359542167609092441690053716566035230401413042210740505992498358491552832247091566196639043735928424039319081606044152614254416853784781699808098942649681818220022556800364080537534824131094128781304652013006736682054246263286291381046342744315067666833054708602567483447014512610074839860124272407990767001283958849877257223265732353257867790222528105669292587023632739420872028586392680284052968904894881219107938218681414794725731024230040811791682814471398322511927414173665143212241621259057339011469651363497603529082370885928933696154763305188129810652946133560553233960863551524754411701777886985813285309424224776503664204339643200838219191171023067197468916327987887479596826721880235066158226832262661476161687649487941354905277281719551816250605768717547607946277933654736723522317358867736034539635617594432897714923475877033940913530962840216325202114830493297961509345753328645785666084983502303140511586751228411512019926138785342078665180278654209129382732235472240017987754557355557183388690554686914039471978280796632497086142830443374273072324111398931254725209082671468822551750742886970174112553929662201073534542633163848078695266138575115271200902653276717442540849917184806672769585810847090059777094517861142642308772775980293829790512973708031003129200913571552333275060608674048730665654346237170958526555380243282734945130328168989912092755764014180865059441165319830266748755316575161303760653464641265321473927458747053895975289296536116878707464173731921820861193614690175952305961670524524751342251840887028841500495569149260156446015840226156366110587125672356934829964627102205160813047941249797585416670891495142092417458315087783350353153567316843979525408702263696765516738785328477809690142688123237635424728648617591934492538937542940827713442096695990289369919715862986344615904012549202758600862659612567150449334755098370655330123356368125796978887694666921199796283777172351293448914114773822463157436108696652059737959944025936985295214410918049133071574073831520882841993555382280725973288271724276699992858089488626611826666196036514396195043198797643133566548519119149511834688203313637527951171395105401630125035389565908319960435040665744055902121470396565526127975912169836345795298877355839976675119336710531429602600566720539105574837976933668117559926923928528878211416385944684121571696868404482506369916866481532655694485526456794180151801562954067183315655496069721594534913466847110613020029240892748489302637972614525775869553266721935468127519402400235422165091463508654112278846111497840161354328984196336160493002398698864821152720937032399950007455068592144931418032802255649439093460476472344095228591221903872038014054512337654006714942791288185160763483252838048817010247877519226502912103244658673787352018982230444930660520493160118438691295745076507901738701260818831741953423884295448661983119145397804744513751657700134579359114848057043246479217256654820015695012466022775085291813936880049747338556489443999191367222484024454839001460253878559383266899027422475878589997839596869347818463901145430210105017322557184931139101562000899675699680855180959497108275401624875932113486360638287067152207183617076872606648655573308275771757246318250544881792903191245012958795154606638187042256173298330024565632047604771898039134605422583122484938908907487422049967099884843964317026661214432646615508370315857543019919395128139577512710781342782944467243625454234996049112739467574433251775894268487453373320039198592901554377298029257874769916931204449989285214772896214895195674168363963863547870144415923886527172929253724812835904553594192379537400828265976506725189967699911476898283274529467312465875549685006249824674367602279028596021457433968795545078607820230266981414556287151453634859639086324699493912121744611620355345829909205392112872243125224052633815659314522281360529928603440280792590367664630452377329114460560427703780041482096320034964380480519245469221457673078425237480689974190881197968426848435180443917348220929242135571604596701613624401116503402511677681122005840979094061253472135876005020899548574909450154443186775145171814488907655065433541278209593943743921817161973511967888381717100635111200542208617306181109301804989129454008683201277382876124240340911344684332073797632799833885215585006250026531117452330919080209031855134086154017186444401769184479074307019716537569195932407268029433460346607200990016492133531889643962666193700203927628202467552831139481734034745470611163553563913506405488745021010956983354291323474212697935587450431642765688429554767566376560771106598658955673425467482746094993042045868421874818715287472868922782841609450156329913693279912586402277114267179772297846423347663777406496165851205597132252048878755936050759110193116403271572296548457062414717037278373857282555773806369528290180515457321139216704870357609152544988648119607017563667650088220126400748575613427352794944819376166488311021544878078154259069407448552219912150996710295543880524730220441628799537814727797794243314705823670504472951996008258753714690219163300500679050427634327084155574687125525421411931001554187336208191051792424004456708641428271739170178461996224544190265563305978433085934237651903938035300342289130389601210649516258601366768410370288363199949305189065722491223948180382352309262857778123424756992106860564474242066104007532872462553284958567972974022550855273547918029875039486338516470918743148152015754182782730255403913547141233125369999510746208459213298932009024082797821993390702534603021940484720368067557876658220176533517140851845390028546339366614407871777941158934885823340106160404025328796983509695398257512722697537652336161237324348495450428744232365934319601439852173929884045634799559734771131369143974605545746012857221217709141971696775980937024911777923723998829558052142329480734382704424504553891240377215235554455471044276452159893104493817192264055799763887921790223610672139919083187906904014814893093186288610763876036428024284007195986795451417875128523931393366036576603548410523325169314398337699650169214850114549545138095442769125271383477836445101148046160506598043258525571759576768446921790391843262797369863977422431810962850591959011925501007014927941476391656362783515152575994905912266847670004943323147592947024337999752749415571909161516404001226619686324577352607626267412540618055517836922092868473720462641617537919313880126767228086415968017508617665842630933164110275082621881193773973571800771853565046811957441746980793977081551694711408211791824545995699970222320480569167110281036599176615458196910046062831962751126769090403114234181787822464363479110548508235897945079331783871836321483878010745535811786932551560407085270697242242604039784391654354569354686153006341179416255220220279111876810075205877162739942980023900929253683000056116372732522489574837682357906531635980913157122212735813261881720310067108934370710604239040285606360358894537804985952555805517890161951321357736038540594316359541609286204633071283245920869109801915138238843169584057937037456861623454911296319111473202449610222292033938474824895501242885747563361313240205839413641232638405613823100158257446692156676421229402133504213253576024568664084747935628807688094556284671095172773291071279330234713683836967994300583466391473364089234185117189736149410718957487244242563032646014059253511510267281527215660138260251301394811380081402785281167670199246012727946821808440395614137183983433938749064728892818153212088525354079558169787525926421600813975613695489939466828529097534952274526035216106411707042604495215279867248904451195051267531213048314016717197563187533008557994929966860931811563602182429907141456163053406825700952179837128252978648564329744854294564569233994199603398040017146767950505004032166508215012736839568309429879455563988947238205860483621539681774439637928180797166419378400996142862706538756272567631206136360065492248938382710743479325151540044597555349156543626677259990616122499551392230903803751479977599066538877737254160994006277900766711351661422611139291044003790692377459921223071267348763240248647643833942710594366197479191617695981534353829912606176447144884411084182628559968995763714861736712536845264480566498210466258932719399529058024398116537387155643012223580996061850350893271105920513364383721885152336508007159992226136254580585252084332763544489931612976501032925682835129794917665580790363423325666415031771710804760348264607815751617590080642098666593657152480243831346468917768917710624049352376736451606078136237753272332197079187604126061411441953246417730366280610168163897842609529961555535878532359281081127132509033131378340604005181327772835821897584484179772359091591653072667217277942910313016208921544336801771646765466952688604557812209547221410547688425436980520815195062003007970541682163971679038099104343089165478423554206189347457957814392694118402708991952631472742199090691390139971244487192523962189460157038690641731603637159309575143444821254281384506015967272052650102234782764961319734425645741785499113608085967702082960675579259366452343088081395648449359982860606526399693382447891706675821864327493162252084910596816267933508281471237527813747141197833527457553705854736876933024591213529764962320692125973793929119552661117495613520930836613528172442271389771863497747562432141814744732959218173632299233285615033221294219370813294465312506773382517418291997730370833837116829197323744251875351805564164026737040114525470321325898280709463683444367816630751584295501490126877359244932676858815004169120745859316781219097390851903988049669292715463201814420841245893074079856605267595295925082115833690135240479696489519760905797292901393932865187945611716692122983993214568402415983532538681702213717260155524957968190271472541638749411835945990608911743705966746324278174393451219808492317626363945744949866875354391501261143073715825798668066975647093179444700944541817344792672746014126409176794737096060933536868529657135763776794611114340536007332940436794196700626245550454597817959262970470094355981545486379272712763847132011730269284351550075909825335973819288288283998784961888489225781730625495451272684029632891652782730935769955256901330318820149125827722572165887359990120384255628420143649304357273761702702222428329449821343527872434039959530552101925673242131529422008049028140971752107030078733853899765584493022512288797111019439924956664783656761383108308174708840006742581934175812846896923486463452840709732690849939064943182368209442822636667718468974222689467693816842115823855009580487150683092033217387636721007419298759403104395752583247205181519730617735455124718021481939551350564343136400903572396826979064294348690561090774993952967991184680956222952734560412487849780144818627710948104853671545883524717195267668919291055747607862412875018756557276031415914002009467238309888581967813857143399085326276922071176701768393774079402070127413828892272643737140433222830505511221813918331307155148625868906814438662727062550539911306177277395977282945545107232432895090207632306705443863559891301314792407673559807677673225054418497844313464231479927283526939836229257608295321532991027090196589143222411308375683632565702468051749504393460729357088568301163828775639991367092057812556115485097960813347351875640826859836522739600596271880855240551065426520947204499715837550896848768946739585935546348182367976810638905052768194218536552710620033202909162128068896465598437755681373480250932738814593178241851663554724007274489559707634368593732543470953266892164626636548839745865558310905533961716478263129910066591048486110004131841575436732302728775789787827879301014711655108679706291452999554100671602394128432700583355631156936550852613820732447935704208991920195431755112547649929856061480391940580887415555371235340498577050138754800836014203933599260564154896317061495428768771627835933767640825199744599435653707737589937904307817297255719541672578252808733495276138173799394100439427673568307493308035925694773925860016434751193199261398873251375054340470545223881419887544537430103712453314934219973431373201027875502205590776987884105702613275463114814604655576543353201245792019669241983089876058687057286781625294482248469016361593596457568038332642149292430837520107544515910650087765694164288637562246069565626233334365129133487544514848025654253165548367940043771605152616517566476878888549465246714777979453343093616122359613530336496797165546949947646195959242981512294421214198003468896477404432173428549749908798771223415710448218714733188953770834338982192037330779791682282284938996772255997920713223032805922342075539454570421799332911504531868209225049620955033988490055467130416259128665722997067693691414543986670753657578182861232526693941734833801377100147979258253363025310286488881748183440496644985708178662581581455061692227352729598185607729871110180215575294227509072921333623974858928131207036494184751250848376291545320469848831600413826260669482896114499586832155119818666770873924967760263341021530394426627592727187499946205810795611100433385372239165441461925795315972098008852407423569620958369865374399242761035173683143489233258560016667602956206254497481212017960091479592846844227758691956912067655589539956811177930578316792511979883872480782141722364322413480346848980905816555923605270380293871187936302655109293266023976808384673999288656926167122639911835338804404852871407729495149415975195410158056633597422865348480760875147695247404531915104788941062964835215586488182776362157373088799014909626371431476842529072371814604164560946012815477751076667413128262907852725276947833973574127828784140098717785387237474258062176584721076752681137393161352823506782626130770124624128535100248886930239984080120288136128223604894274151708878842703002529020307462272002499427793166910690532438543560369943197092631982212257772205000886745868009011082790883761552069822646713832681707542083386211581051946073062423311729803981396286325488099970559794194186286208013990257530489467591977028689359412858670663741826969475853819675628499814506790940259950239289605986232718880555263856665194957689926062453714185205698991848811214308246518364145196809320981167298193350315450774657957858763189626662332085493813854404145143123273805679246137125886039010011003465836691017227405333119720089963933529310319454352900983910619779059219797715008916003506991257630449368194801917704712840270061423687885446842976579379663178327428266027183053222296670312178691467252401113977143752853996884249435358023785488259069313518605612683456015598140729599370915954664909754338582759979548424564682930528825543242568571591690976274888299037300534744211443525968810052303771922854947257645957336035492154598981246097819613220798940770095397963038634006479021668680319067118861807495118596753402343220902645601447063442831098361959695499631688646742482435118131464253523480359541785082195504798918684132435500955579868578527059899068835715941489744128980750222781839280359098088819300683116137145367493113185805098717832444984807588213139735118591636696559935700010429801109298529964019212759467957792619188957114418466740590506670219254486264384532239959027386664245884365779305562246530941865615614905042452763756298385478881682642369696505721004657807765655865639615598438477081948356378210662710026542439605254895544753128146110657144233742071336464913533340182896849995499468793599376811200306815342444240745904764652253667897346163326026949659945782169306471044911982927839259000751937811817845148370915691922102161471284446846489497073002767827814352240747781363116348083848999185365906550577211201416463031586692574773768732150519862197125883538239290124684000877364795515243309610484781331172564062494622857566728707181090488714965652888840285464629245133843900693298810026491395912468693612205446868851812112172667866365445026240293550298588832051495490296838690750239067307869390345769241432532548565373986942814998527401108178493966287356762072504558799088894651314632991913245070762431713154079490460288374693353364803836826021227200824811811643532421869678794213687312646387597252320804361719174687996595978207825744823474303963920505329399687731778821533999979480369336441748061974492670600691546047243224655452046093667444923228331542084520136971477402247360218367496622234729834371468634995102634883744057025090348740016668764435784020247931334628796778614929995994188666526059858700145931536908864969052000417803072642822273114757943740898139219721019628092842197318698029466788016059396124884736091090765630628776853153444362106181388454572604770116272975073404239616613295177442477615968645770785109267290364035058155912387668435850751122252422375381196986916682048438738344946403127042657868199090311924150789447778458578011605094833367871707679572898424958549029486737705378277603118339439155743220403948880272084904295555542601194345232245553648380165356790363426148067250961328490194688741936564174772157868548256469883069023531411329682663539374708743954926303223511191747886798858211378434367734001389500403102669685970288572916968102807923444624743310538603632963507357065022971266262044407983679566223752521930117402739961484568353627584401076306038716734268716563927446841317447434968336763505222900147003095986351722213003364882726438438247798906656468145363301544828817027921057269978451557208587334491287731811468263011921242068946390981676871233802173031319973639186240390758230074759327837572344010026296685712553162447345087604180253438570773841126883514191019273805384842799966013030319422400232286242442318542995679150836436318560215758536878164053158196744969053417261370599518664060645473068366434758500414504041020880777350069221270633401304801806439347493518713143317836960922847413778214940195559835174717399497200614646246887916278345183422410670734862391855201331720224390775657053419481479862561211735227747665620486243724141486788525091850776289933581263629570797551661533269107418435527985789229058427741940558508916145184205309020910919831686343915119075168510408972253484948691366458361951501953085131581123831674639972464372228025422805921495607188432954212245906789926583190861038734967981064571753354561368500346321189546813183784583770589320991672279614435870302004623077988105822238333021816751265153352854760110901864727540985191641825841473924175599079638864699920987116432004017725406046045527364691208566037764068216289820162256359915545941750747241923597362006251863003058894339957685356733061480904908268714047187412516042132780917589536341039126196482895607626972341183548652110732594171822741097267787136176709030925296423629257546331838620639008521382537021693457085929589641147296373956252487239303626520696307635990318878993741895002824408895320004693854163312903436691057766689431420751604256711937161732930560821545493467523678383654219575707653188904073261776796699819945519469154522249645757540199122499823119250734068023208360896443238143279481034631797786617287254575693176623300183577691869971828181735213399475596931281985779283220570505261603970817459836987241172492173832056150233688808914619749140481865711693866664071636016817228373966274369051996218261328831057259053871373762298020676342674536920708395787946308201746749868840495957557831652861663619635639573931764869776270860563256118884120054405811825064015446529491683768631304689232870627970573579500878895309994759970074582476589887773159596753060555095619433247819710859717623435046646210163648936160567845167006053234902233114873675426126120382068037213108291331797838185006035819362397412274233015879015942510431701848940409069574859448805845320138709188944431730253045084600649317478545151415041982879488221302829132028433761284900196056969765852550745550109490149207625579443897135122469952343714226929813362289364825205917857047287778604714836779361172356713284518751781660957485368202562237204318471699604306323595668352410341203664350178968872456934653041059344875457323555693885232122919363103154331394962331937037905264907101648207737492612973576217680415679516670611897862417519309241894426655309234953865105116961567244342740358847555298394979813268131015098218684018140077473497444691547564123672504595387909348401602330867192450890548903228457889476694227578339550715804040096474961396435870813938819851273509401581628611758521650011840731175552694952331550253650114653731697614159620862973235163801307024684608224043317727373565016212790350610497271717422767838671579978235844308875490856944414393529827813023376329346728438495842548232707374152337762659257996316648453668186381185532773577962853963043571585483782040227231746976309601104847463437042461631362461979314255212640959325186401602118716765472080453132686951413697899027772019374766619386189129277460608684588918652342409357099316755699168403941196903752463965254038818889230606375605069146762758508686169411856622170638804037629586382476022198981957635806451133327172669943799046658828061688930309581414121848982889397131700370842186900806725928526129980598316770548315435801472073884398592004486727212552674563661724866286894959184693488730386099430842283327917296985852113437020557111784706653852608882877085850482910448272714999441200097170894853773746747269179797688706912789161560137379301905126086773167026108648899980153988465664142627882675116464585038520012214124505253245018035767786094211647553852625242135092316662466300345592131775580806865859139452822202485590634361247899408159372908059743074672414342833390404330966688823911477672131126883031637572138128960900525174707592157328480111957365184444251397019005986574566048472524508326558323703381215666781688063973245369585415936372380507400509047325252316833595551830979210472766097821141228749036139022696433838837552421626986789068602314305477487372503400809518039899866064970905245826177236017833762285788530557161423493819508415404654785415411915792451335880388219290772703359553536758499541180013564627080471241164334359788710328323510380171990647013898166682156404891683912322934684417793863885931094230034986735271902967013163710724830258482531963306932686448691624204420927482172418602018507903420592978272274046396538196357250298507258711560083370716049394343377660671019729376406509239930129339261679870791355762200653986222690821391756008207474421727780320152858470033310659000093217518140328457972220670596035388942461951808671895477589412643761213311565804128457650386059006542692714209303254521853505039135180471886224211223488944034979373579402045536049479016766054530275068078786437520949894414589206447709979229928657543050036499318575951147734996053800664252881334242047027196696584874367603941654780710358529779272942693475951963458533403378259772831380409572498611811962042783779475123821890483965698284792448668572209344202774725572851897681099804093784929504320927001328189394342141902499993991902851200037988674520629016767897362812794077877390757627003246960595265860216696661029464308808287740434149911243251255652859812849927095068145118349392789033791567681431273103267275925246080991761896689223356318893079812312131942157839087186980059232580094731899615875239659953263686671743642803200601698363731730008190106515178707395602980925369015656298395479512734860414055729555206074062424513700416218329628776962732603480558345213868290321891812615324550071104950536564624346195662793671717558835199970845189594961008609014360785042664538674637189758840040076753702504376659882930675014575653481059831225734782645857150124576965497042538838947142557754864785893065999474422147406661491431560031023163580754451802279157051587714219044551390953557662348913257889313553382485573694282047122092909729869768617591451341512275411544017812249181760901621576668293007989580898408508972779137404789388965634498343531241232716692482794829486451002591780121556207326612551765299969305308467326410901278569936287599837479285084672225710790369023759849510900305919598357354826063862681229831014108979839677310608926158517187622662022976307779794597263396979417760774968529139735553906281071914971778399491527639233969599973830383970876550382364515767698482493247808947738953106351645797010253215024785044009146508354713852417747112670193332586736209639586972590152059403733755109788022731582506764577630636050230413821701276496807119303970994552897525389546572083368175797287750130410787519590406750907519496737340469972588423988249874468535053015496961504904887507573251230460334860656847396275131733700592737216612891693523797862963495418410228306769184128463178496653690254749447753917028084458990291088098974093256434021593505877407967851044589444632800773805663732070599054070343524217678518283128000598186943420814082681843979994957736017221042750050728129777061470666426028952220924889664698911300932690408113720802115383925624052953009166186557878985716570148328774868688313019203493661205469880856365683797766261374165747892479571446684597615731288107116328356411582109552394315197207926804525002399185634136528218573221387407960023287339860079898876245621029599849731953206881216466036184620416436235680580362146690829547172181235595207904437525732909363000248588764809259091648953894910516511810958214393751430590137696395539517221437426207039965579018106386327037451018907264880792319740537642885716078075920497443085855696487979164678590739291810683443764742565407743791785119489590828454265428147815913647807041721105317125101542771682883584751765657615839324632933967453578779035023251674992003613259791879913352840984352228971813875910729874589374502344220695762642449312015450166102039001851882284483661191691475476889166039611354709700721216177226312525059122580251910219959830085630884322744363903131813604013598097338090468474008945786951272581977712674995645299613285596895030406784426060774884409831203592013167763667791839343153439980728082989133412036402534357970057103888825732857744810331682606955509320711378662106219948612830852507492024125161656278827319302340167678943648066952408305475170497848248380225902995866564536327798701724098198710491845579819678692860817091366597694468223724241559237498415794574479849501733193061916947582183792565303488850820924415966129668852675172427996803012786957462933845229356784980422529721288048345698625975457661525143114224563658373355267391354864620186084927240591895172202717078686702371538153235356802214418490679879931465445851557782161505389450236981597116714040424791873250743975942151201451528415070414426925271932813894777355087456445118026968585373829419119531375723855302741473758770553332220089207549985732939607480617791815688729208390663119606395457827062944280442996254705586708773311068582591549031145572240696390266322467152359382042805324973196315720128055536401038817071654300987209449366769194282039474552003399963594528002474559138692660144480987115349179733465764076338207444928839642237831064096873782574598054910094736469810917372500963795717732802655879693483796066847654590245928166439144341600705057802182214366887501751043188074664840071182686299156632869745237042350449555811776689663919688284923626257222737528839606874913070546911446995508878844252012774964084397492110628780706159412595795894193123151527550371915747691097246397189328097720289460510468660513856144776027035039594667212634614451820611184130214505165135348015820255213951212596757831524461792493619084383233125540561575526475174803083925554424357892713511323344194877080855413153550858061473808376458623834034450441034029412067341121030696632052104195206954808175451801408038894269220577010221270682992176244732602110217035556937933730164337944699823156344636349887516713918888583019796223144867239384188685471076623806591220993785122139650717769281186285857919933599169232663246742243762907763422368182900153647497029997161987395085486889112204690403199540724446015010163247751838146833306661362205105007251876213119683557347990857828684703893286062869613354697388902497611889919876959869476562855651248616249829527911685880814422597703397782587517757587938939812484356228813569648557842301385857141650139280448332022043945641505023321106712930623084105831109735541911503053420161255167565448853651468499149147314586675618645825917835216416212609485474782329573339593921346170676840351976571649054580057615080222591703043034899224208218726350206404987380128026258274120855288439332532948187326701795119184850870213884688598098219749698968332664043153934835823100963610864671148514409109986276016924428071536838309031935397252568121261891277614960795620689498421774320128746773585026532167041344020562323339265909980948943102535768096060907127892908528494223741959397986888023994121785465486753488587886618914076490232513545412062395841142434228260417853777341140757468036910820811131488963458009153733050550742489191921178971233916326331077172379913940950627238835842097600345109344930798413999306301229638363828757869970294218562687777112441025644575924251446064650594727780681592973826124963104122765779365279696750562949317585586914592183192188817816607225146601909604944890090235133297536531070360806017022689897010241093360068123383334261184833104008801632023839158040239345276258917886529556953828552764852593874132423989621494039705137583998090444173918934703380953594773239614861827398647892332685891090418410565840852743862850445297088084049251162404253713054269587684845454269907639290759732221458169654957712697058531651423152724898994218330405987769848614884393530433149023033446798490189204495957534476091297618272138028152677559028843832352231509571302206278772781863107758911406073160927131503595632445524641098445032702414471905577064595264378429250031559961216232645597646426355243771956463570047555588515853352863596225846216475770824328515060948175406570818569044858536406085454271487613467878077897226618479018577309449414155307944301564303338412155077884555389205127673257834871688975922421287155104659825553944338471817572665111564309394532554987036399135660665867239566992103068091478653422662283986369353850559032117997655847328880118549731374213882346528879397012148169179462426967288184574697033929882344967536237217350316594055052656220044376140535395330561849633777788267978490028067645597074142210137917854436305949131039894467596152072787086859033119605294499623884280126079218937426595224442070992591191649924195808582642804354511083745037632980244100384533780222973520818439911463846514972426559313176727532502014586415896158368087176199918856648260768616528830089663621223697938712197412202745545684986848807026777575176997597276136072997477470747412181374461716302577070112427077276992768768846197167387142284926176139424532286344473386461022822500434273661902799437608550632039060549989473822777293252781584398746823367490535793483533388104964502730690141626781495222841628847158574054496854051733011868225633432796561705760243331027428662169950270512632672471237710230782214117976765046100705533861030629752618724072482865144216867987871269937080899425527614263534481066555808374042816005012369971889955648191035656547549336682705753295728017826724005774834948339282508427189340928548675067260996046661721099106021266564438254717166309381018606410012665795401270308783482461769710970421360727482010350403011189747072941850415801301096154617483129991493757495962046877559750886788728694570948697427663260049828573651980004912239748409924047864144010745543525832659675400214801610145262965159187370906294165511579744395603768389923494133472213599611494312547358245194996763212029904544579873058619523583299884167069530445208977079981499479305444703526335675698205918778228493841768968243021322910842177701037001119268223879205878636772678881608696357962095747154814789436208042279892212192207546648524440944038571966409631590475188644710909970468716556815735369785021985719377092180300427233040305439896724805270750316595404977376139105248581122881527412489898872371339582480475924948365336441413387503157024449907643188656619043897512201192222666727525628674933609480333940691237657464737383592129823399266324038488829162152880838598463236379544939565145550491328838734407917391812893082883362267852774370451818215472074647020369824057805692165626505734798640395721586283619144378726748210148560716749455596353621979141277250487596356052893019771134028859470353079026359498138092933194601749940944097300676151822120254045250114999248188660170350076388190810777886560969636230897742190358983891594004777402176840600011124804778951271077457271731389578662958674639132127152561982656110895514299910064482976421954859222996760161320611347559115127002703322480158782848113396926428875489905552736165330180475547660543020795005045851061427264573908660483232419019773762603824022440631655771986504103613870076511894979746291280641235941412328704125983691854519441600696369337732969652000770394457518321407625098721046271021638326697782550395010081201855633692786170284353950118505619513421015937021910205084173145249781700262215479739693402153731654948397115970631437580257827715752317000537636701425052777134156859400804390202531344686645571645002590929593424248387994884037724153061238393565903881544798116801931914788810155893419002579321265042476293214470915272166754001092434575711884851308885969660936036599308208180355913371235185560251596167949991615329874755194123661967665794855996593758817660652133521149544180530990920745496740714212313915518896295094666093456650970843583065484138839787950723765164924707429478916874261831278848858602424241553534207695731467278717846947122414201669710920178963579018100157183973166975234836225326351356786663542611354412354702092237138125285669024902175383563794760840847595266934362408602806307631217901150923741125013448256734299073429884307515329496117246293028468593821100423729227966093133564566126315115852983671748614166628386133140293453981172326318035342679383261537714246359626639126792163144189697121366727807980288419653729966516152217548276068903618978209721848769654642473299907392159636215599703822958534176122780076144945547812729138978477390627764933946408818664772831893958861433920588597114063320417270161240205459086699390729453709104842212919969049812766618643367165750094474579113937938432332923505291927764848193758172091224776316998990657764454559970462549900678151591968903282780319098228572959085191052723631760240135274086050373892055147224247548991727053245825032597093440637141609705531061844441081762249060404339975491642460465955800626812991746809278411062706907885325691325981681733813852305217748776862228786846522403504448881822728635424330091150097031087984903741794204964872379501421979405190610296938585147900350264763551905290630303590539499423063153291619674527445584809882935168219860113813791132560720440033584524101212609052531018319471139965706326429360126284601418622176934995305623772965662181454528698019336352365375574248907363216153417971501227333392499445246900017930183036486836858912000556932703127170511109967150311764367068485016565142865979822834563494144750610113250401422135396471680824283047153048025038359946874900691991030661379057205367595963192967182664633970090211597198356883105092244137158072897825261673457068154511784339243547205234077019821391054017940812590585338904897520180712906911832825414084953558961574391377242147004962379302676316039613131136569368408139953346419627911474458959281329839964966810106701694643840239756252295872215013129947016694819135373262751454641648557865303002537685498823205898298183751240028214986628977596663900205840974237700984121512538765756263635162906967934632308708268860876064889825148018054473648646753451812361565796837748791383218449397901030277617536414169730021978473386914135933265833513816354974315024790864377936663669085448467067877155855448186356582962755123997862317620174790399709787960233974460065277085343218292926703594146363929736486306340622762024734208372247344974044126714862602534359276884649837539769741670740054613378739697482837416097314741432692601742979013467963396988418795141913652356479311129956168037841128696464767674522889627737853709179135879756215426762020314966948474468569752193390321243012246859287229902575125055962179911501264721878508130925609913712226557552083733558394604833682115519204446721229488076720876864100628238046543814803691591939564317183885737685309702933318338768325165534861537492872870276428415195486928253540534699866220878134128967341399166511900515925825739354205585143777215063110466035909332524405474353277763438127651792396573556302187699480551137824001875156078816250367224351964481929904578263012815446398545372785380902331987118443568545106932798352429008006866958313606168088143500593385047197269551068974236400746848898923234496609617845310515647521525018044290693649722481510791833939391678189551848897442669996989622580957073793218108972456063444960413603293069785682279864092076554098580376472354523135592865041715172346428196699961012592177878203457946980670453568578611260963557290555497694358655809280651422257004828188301506584020833535451293525485383590321277137145732393505748943185907814309438718575300280565842292838452381225224633931519824479862289067619015034471349603905346513773101364444129540810729357473710137791598117422291267672237689334160319979048855204763637049612749573243926383059513736793546797560823127543493477815019689853844617255296198419149358602437914695489400401402102295031567342662478230991283580598501318722133549120985740202314629588592967219883695494560016550691499821947758430577196001624865751060368786782558849477026363121332197308955751547241324174929999792957197971791728798300386559037209499318584874058785262749899017536136006631273778235740830311958948943979530074344853165473052859014727422869638259626287554953097612484686174567296177705090633728391177799343119215052980711542327885411987255411201700439378971959507626290717749126971130154928573815213820630296613894128440794615145362187809087449227021347940893510301407031443308606348958619864134954474753415301696115035010466648657972407884877265457637014819079325883825691546721428361925958071044040094920080592970524671853314839491883267034498396518709576536094156175397641001546871038479985521629226261091814744566474078536839649358126297636741478421187932402303688815673896660156640127173325384767871764677714009536290613271194915802723335800603582824467207604966286647172319770068687835929760498349012974676771250060942209601590271489221855135080406808522931331458859108919892768091689492230672551942927701972250623291587939298622067708805913853946442950609517187905780425228531643173467116279411313768704188476269820949577466077541258115344820339886918888497784957404894505941922435445136422841194235607522505723920371825459723425811415014736098631350252110711529674867760775427948105678067131327911592436299571114042612672991421546869386454865142484693826103951588422374040656909279881903764332055583295428957063168186984063467308761150970198577815471027173344427451241802723033063196828406257480889381771079229978455964647171852968154293753705558027599970630359977248012959413044077830295077503188366416257812059190822014247864735925786486758574565214530499391510228506705879922700413918413301873020619778953220416455295056281732645333122943974032450142604586792926064639297097019612786153251716698586960868972127980670282102419844347234389109747132910661152766856551539306090033941527464647619189029444625481681261827595356202365669252010691274638828769818725655380876609844908532450105770248684969969984921340266296777798693363089436739949971012134869835171833847591768813748659288214104537017527626945059546972293437411976428022650851767443205597225825217988692545302797592214452134672049691411102946821118292403879988689034055923817677041237395273061756604083342904992965390261343522806295832766420274357743477099819448440745218063013107646179796472703187160376418571050652689958448747074119914174939474393529719631543208124687346072724540062214422341040459260276332019544864297646900429531042737222071688548365337471270388634991805960066170751659720877481422320895631745240952793997408460066043099863374588968471538559760910095185618119723659952253799365374338691649106782877240423341452524219507641724994004699285106587971285711599989130832485536739275816635109200311386935795755212662325823079316889359962702986228611997258335856595358149804469024843799717681604756619932322910408631111547536159079458300574929380844060708702774961215089618348775853954357825236064963384009793655623005440508416202673831772140374001565967742228726596520790815631566236132963979594457990324228076930133776078248207361995570521469337728998326032087843875170907353146356608245335772682086035788869003289732987777834614103064422345729401465549228209466506980830889230931106691871585814779033916280494100015545805181885276785919321797343266237823773508042323476107847472067408053000593630709760139945514367546378994892060851382397031588508263445996964711097028715415898576026628122593574379681039357383128036850346619268863773555924307331514607099643885212795795545871627704814475023594793473175340300143435865919778358914939867164671331904949515921579565613655904729404033044552018289960717798686424781740081074087715423493928158190042298767760022159023299925590935773279123720086238756732063393072863107440144458811427633245840794952400410228156644836429080722237953598868548674011416828205327703568515827543747733690296956869944709537948187624055950415644648148490915886529844032002135979253691514149312045495975701104286334005155248182958130973914750412170086542908359187103695791408377912483762510119360614989380790988731646471411937882199635460577274027115669142215100353944916496031726890377141669729995942426897145779291419071698351277823485607862530330709942989783344810322224323197095833072205885823856741662337482791017237020960825347012762203273411445669672938292620235043699037083615109790961142948179972231533598362075158138814380068360214843162673304601598420129807158086267158431265501423737575052123815292276234736865714293106875410022753218610834911279125636653634033961264698578229507633287671150917607722012859110564536515941385604521910100524563605949866448121537317557162963283023220702060023446249828279532152674832538467686807067284171392745569221195433595835760845333759612269275775688623909361564450997998526354598374340268811149114177836023791545879098669486542575274196901791479848011064741874055390705405850922851534190784339294383014379482586019700477124983290809008153430191213240195525237990920679661990864710376532492978617895315095581654032245356402823901155414862514357726727261969179718878453646163841007767544294501274427326455637526134465570190932186053652886729236374058432927128895431310349734059280592304996922559543749614944867075877926786407637654697300780889748530564694092506999730516690778473667217379116116966294056885459225263889439337292926630030094119171610376550887738434298197963190589887286791951696186901731071438819502850569675120154922584604739001960014323725898256760600238346680776868502534076312065971099564493326304831159807127439525384251065166143691763455633051942017704233343966291232653445825751319565346641347492314841552242368396018078577474802172425474153632267891935163511567107880540054297657689331114026434064825487392653752088632975551838820558534801945123042567558207216355120693108089135238406662806075448362908999287594606379858671408210543934269429714376747280025019419700430594956635062249379840245537431379950839858274893680269021020394481545952424559035271784986227709386450754304730195683595070443729203566599097615376668944572812431281582677692160186401941014645856816048550930888083570830601000989956369986190392129011472060802790205918832146568165179809488641202973757893708438449160743732884185613983473352435765861939119768336054738256708519697422495872395709024928281157488734911801262166944389455421982453127649071413528548986780327635189062453589736051765266033368856896614030451336203301774630824925697838814662448433199061213158720159042739860991355851488879535316909023477465942011933674857762728671738788718866552161506188029640053563216120222869388434137572457499268817597966052663156030315226663177057767054635251117722593855364830177625080819003185110399454756448790965324424888207168319868268024798339819999955319417292255375452622713417499388014589459228022459589091428262851431626980229762359276267382394695834214163212531173064185014943992590321908411528416123444083166732426469115214979265656856919519233928552126918901354081944816648835840540778674202176541659142166558946578124209583178422600010430916466150472958599738212337080381474895871936456293626517695795370012894879000866787447719722873844206051997358374610339303808566381734694126152557898839171097187400960996152964058342896346854962201406620044825398822237345262312161542361048079861758512125328827829082591105664911929389749918795659595566359725195821802112120842336260263263122251489120840526554637742663513530653883699001931238287181351122036671893867567690734459128942026098721180346738822495875689102828101229714305000990229678390022215389898118784223652320938961049200612614179597328624148464317700287262304648054264453140488446407871540672010815423014740796752540641029743596072514386938356406383751761839744696528903570439566001697004513942790823077347890516175332654916063764864908721517300772914627186454123747514349014005715131894841480255545677482183398252777744890365554043796338357016534308291665876239745371259942461829165872143226631114381988010871922853697320776458848120194312854226626966156285344354337895641606469650126399088211636303158033483455355328979615038198839937973666399486832102351173409867362119435419009166394171541963290965896574111460670820042539213441740292882040161850473686116697268589548508796732336805390801815072426300046198929076755493225483983321941162236634999623960051588855502885793939266956393727435021077722627990269494689451858632652959357036066384905515080090564224073300090250929408018672203098365102940258953181188614485370564129441424980549669354721458015802032563441143312931873791907296809885696355082408138690531231909361650110633085515706828573351840728088650691562315615734372897622254650117142721649978526378236905752074007735454294525942931464385112524752393131544012667064705532431973220774498255559263172300764111921977784127159433690568760591161881756946609117061766246986615122032054785652964753704936145105255706090692632642246460646430695743057665579246311962149161510843209959820452828738517926483238099785807848976435171173139888908077811786482132712057988798393187461443208317607371730654378097213818589519362824960271562924950881008309884518328696391401519149251786762640080905170943797142673196741679098570494735551563386279620768101328452680482789253417640169357413905732098237252398744163562314307528518601155004092482513420139918501662851053929801637759032164807384763519877084621818087175336582012504577545429245036014322313201859152294890655865767956993198561965036011151312443041072717781260833147933847146926201843059922073347113114594354544615400817130737848002759241070322332977753432566437623032859973073137187487327376698838792550378681778039841498978991372934921031546985254906733367527086563099168804062465432459584857837467141897180385999036599333484460900355560703837371305934566450335383007487201213282985775704392617094267761986007640460971035487952302191822423030456456584139313905169783218071095747738731003986809361804309813641911372943176386054605375157747519190750751536847348853504034670821943045011263232918754738868854143433017814939568229476109881083860136383567111586665873445334952132077703703809456975464520467941822392821092819886730087418758045272917143221614568234012914336935482247716433028300874292106911758319644105902780552076590693065670111270507464309989906959651428788160432443171673455657495367532457442268466824954742159006452768079426537499015795410226963989082531857084250238769632644403404174576617418080026607194656475477341813455150492891584083440631209322538154735559835010654486094314273524436571689869968839019555223035964275505424607140208319077236698406876496596457258723361997257767125787120418128012582483291174175162812468445705186044765406916148194403966920375153197957563708033095783685722999512274465556611255932109146355633331745305444948305122685160527220954871618639903708724435472177568310574240880601233045841726507352858915634834831410443564893137210805736124210523408991662241581115223629232479298607480537292150509416589011235113701046123406362902129052168649365202351054328027705454174008920310665125582574573047216657813263913070512195747971408522585222627210970079387719279788752807312821776406164642126554862466604506162162794100303798149571309851854104226918579010844180705183104055085738848539147754054090992038492479799504874919557839515852580455728144084181369777071248948927102506279827659290469485101190412503774978612473832398572542253223013187026796685905238648740195974743958856252378464213981563111789286727067268691256036187144705813635437630780816936300232818909701339493996394975813977714984473605598407347038037740940124853648880045612237005938788915313021184756865053315861931838072003862441222270526540767346354656570817008866006199597335674489138989439796829688990874862404349382623662862511827761922847691559384959909165265546170386364744484279359172241458797168177039187391364494189071592914712479034540617146398805699944690328307293342167995751686905592942742321351480219083181849757703292546769197996657776214126894570423563432277117504857900728186511643519361525984773521173423652821162474094862210042955864774749390475507766399822801513819174899630241280278911253459264563857329145246815862831050619122203369971675480405251221244823155233364187918943743445228482026763113349400664847701890090568676082511897596233574089774451665106399385222375315294331150205545672171336958648676620751641256819898281914452327287147093127277296063444974804074978982500706340639430115468370839556057816368862193560137393002814221611714162349319517111767127799058015681832796771477335314504808572528682274133444548560646827727809777471434544100113940923595420785149509594636311086664727666234760807880549152840779758402369932908485696925506334492423233289212354831063998989746632440601326007930993788815150706062132613160890312362174759557509562565419884428567007041512431281801108365558816358375728071630063498340874363234605987198283647416785204580678185073142419408059236237011314082190940350566613920427944088956429657065213400461873973205846434044988524310326873755057768623462684242608243594142165307290026769360912142361331390216876917085038002897168629027614423894272961959020054717065874919313641716797840765651724037727843559977262523497051405076702638076846013833261739544997729824134464600386692430036865133353845136103025382272702131300945756179986887480622239682188187118274269728440526193533140395422496536214129703814556154083782454006359669384900452925215477111548006163846022988877839626373725356697269279586243221738987934313542730598118429641753931064751255379808898081209502153522299290253878670349790137159253807871010340816936877026935526159988443135286729269327063574637263405027970741134652900355862449609885386940139852944588062063835339025075981096301436087143889738348838834058243070696686492978052289787303125315235803908306590229162831360794275982648779643775653619520554880256751211877838400601993191305877018404923218028054694938550858698145251926326682301108499825589185633631889850241463843013416911248711905708374448330206824212861729554593587332100617889983027882197334137805315795479485366626156928987182127598041078695556141809945687086024703287641894103131566152160606273733902650833021432425123163239370574659870735707223827139413962889136436728508079283606346954940557242016826833027985303550797216160558909970093379056812644363094712614146988237427621586254962474004801289085430129401210423938652207301537916451879453575237541287118856850844354863105897266037462677139576458903694044683435615871090550531420520084731760486257391062795968318098490259264452618241296110559704849221011513369181873745368873496499689190390852597452328933282164205546352164196846194179685763459139677967698463699114204956063927103139096494243159080184106313708831359322552614704255062113809176431461011231410956248899060439944789349779290908748356364054753364251688691101004553225510309726654211206900691797909733333870894486120267837687703029408268338860245794660758917256810848210598156780222765368800460031422149387364729069271565502932788522881126471851163554238044700817017862800630125914671910058344131104867464648021330849546988765908615915737617894000943699942805096934972766819598033345107735356765874260898174460930122611442381928134175650658755385182400153946862496611004408990793399331001279080032641851620293451130989574285363639760289113022659813420204117833836547904950000608334434271905647942496926306704974338612348166647221389970994015333315222964466775625086237446262847882221553510317860311588924151054817676076045838807692325281646567902584772045579666615102247974075250568817091039702082445778213404970499579831238087713315891989027281688591441939809419321765157734246824854559823946778312816928900982444447492666834271060636480899004318547184865392155889493510715477034041139635994160142403973414793533950057626119625505212872890340303531998355373763565671120945019844662602797718656196065807893897410585859473118943711666075250668241607993307431919083118411740675235240776967402706880970013980174356079049385798927858737803878390149719299295920630156858871626653071130150904299630727904534334019697559032154306818215887904158399744481834985940770686475709249865579305222452082848816647946711955022909473703646223363886256558641819759621070335784212515691156464927725094315257667275411493867480863097244367282900802619705810272236735929189613068286088067921158816681955882105271019041205544086169812040066599088780634345262029549325490901570489732728087640235797294965063664435765369049453328424302984255704733133175802586089769130322530851909689337360964274210396177545433922636770752733631154984070831444307743852486480990167759879704912696461046038383974617668065796206080220162406221203773357956889165157071201566411765798204901088156103550480817155280930754245652491272008958317827470241864684449566345929696206362426383176899817432364223934227295780795994395608463601527698360097999373095293805332993505276643395643669965212138991567541241637420559009720760639612652143649637817736851521846584053965217566313892958516347932787224644272487587675704065667305476002914464315268029371863036312116865088127031439346688940446278785094201011749095988544596419955078231828085064343072039402757715536450891724965123576081954861775266995317964002484361488152001161958609905833124846555271460261061000162907686773572351690097866779059279464214859429690937420621948513242565644055658491209030371297293255519034023655798044495730613630276158689643473066185003760782313683178305720150400976278624735561886513218545788288504536862934228028230001368441359006058683545418974486878982846679223541624682724848748582874129781363835420554243968638447725162059523322902343717007115646992319981817975579004471731473583949202288893695807676254198394095857927729648169787875902957153501177863340449058358256756149916481282488556976015922411053517836836331374046048330930202046185385696992253941306914701459171209651515441562559017774072857991231633236032606085173437420208718349557750135223341885644634202087258085655651713488074771320659693226250173581330823652808969368231599445067072140000014836892132326504830426552030947781270363167423145612018320593172569027499388650902030296918973270810522797019604474080266515071501097182705997204489020306640555474390452080045372598556337416781913794295390928185851248477170624840464219626290131452474622846165501633028596156827044088506942584211893123964533588786688494856747274805853053867129944128383446255540084857089392795096432315060127035360248319801003876945969534978843294540171664200234009793944094232404699606766450273083398650859671202669688103587890062560027038824718588689633631450149123553928352688309227983768406885972014685395953828261418072934478194728325068591837683659922300822657036472510015945649813101625779191058411605418168398156512748750174481791591239279139909960799309348351485423395211891093595563415246809605207131743168346030460766992642227698615047232526165592618993163547887274900831878118558692666793113344029908581694298189010305201583246352734376544312931782879553490383232804877728561229835209272686208011851499949819222776973399541662382565727131264359458264622107325665899708116197834384548919755882082843777040902927520092710422239006652814528157267364007117710873492347583445602508975163085515980963685834001708476397061765497179291842107785656706711975064206726077221756969945110322900667003741387499156114820262764052887408050011792977316571915253841417817208608217447839634531504226677555329253305025218554375583197885059381825499817235554531474562467983788513148373694407528659107939172715233425110780199473150305311862854615996796351821385004811936578048038223329306728240015308790376143688436152843582915292712242840257309965850150285699895035925194748965563309558951385923924810589195920216484316875288370381872996788028105793217506912253851488933698660774711063737975806198699324056788681135986785167296666225225063457108413341645791919780552978066184035529608431801727803334084622189824278628890498923575448206059777596507154220990871890917932333873102268529918661855504543221814384254990711563369309856657470675260358194309244421412096376728761556403342068488610562021234523952503492560983382186172019523175037545023258160191853068401552624891796343388767260409300897277243720186616110302002728990369340954260322951343277618110183302777316512078672322672651442772864155922763055517477559039498833004643586616188505429272950315030326891253628978983634739016633551040043369780742337137821116374450474340308178745990858769979763866793229815308409592429759380918524176946880176084764859124974038658931537741062690170692353217211126947644279118181219107950401874167317337368682425467420903098274430446623511466306039171365059405285036718262586500458352925781493689189259100940479540378158903695730070402166330153104997851578469272318049149947250342423366899280800152219516512455264994304044234016654993857664536431859919270465603020580649524995634970021324809673296259373766519597266285231687788330059853251635036707340574780721071405286582706168510979080762512924002662570604670805364135235935067453044373030651617453778460646506299279301544076881720285411372772159301971018114177282974194923927339688480096988900978443401290079432638004999877577782092670329428543649057709372276357514686937157992967745258541978847852848138646615395915056924976213862132435424097973784261001329756110870323995467438872281298532736294798485660253649162696695230861550160411394457412562613395515778434708439077587814724273600806339505082448759347506361679145009346278353856501646276162751659855828492704115465896721536120628263132806915728835267761445063498529492651475512111335804429015050313352706023563120647163190285591752510902655968284406338813072685395117365371726179310945331938090517447645596357998488025908986239144710730750678493371839545902567003859557017992198393721747472301316935982643531336878120676360547620591374318857997192993275088387872410980506021525725561412595547301288250609736962703865678094676344308864795579611177376390821495384685173617796769265850782334146009100274572034441224810216679011104845627674146888155220528616165326957211774481115519118276278193517752860576280149378305041794588043028358427449391516684338651429603175231640776341861203932130443330019827806687361168566600818974283652464975005352117808861653092317168849544549675713636917946725984912429272942661903086730528108292507364624772428023458130298894884169671336667550785479842153398431923090740954366884114057820205273534520504688377484941378895141061110662022322241973457144690439672162970667840846703298298015530185422239963761191538413062737880752138993666064339299513560097392680579991571762888891763075101699636756111039302299192868383798294970069532010804739670966809589061804792546238210840420959948156460661340609191443089719062080798348428963751832283290957741183114674307550626466175607142962939286789039908092963421104183911747710846339114594125436710454039466162850432910181598616543731790743412586316759991344313796202192167266704371830703094365583092608988527201115496099893590202961707174236882267301526170676913323448114552401729578780383969398707060158367318506499622297937848850452483058186669282060523973036994860762175720008287496312552938022448693257086709294171269759918390853192083368273250896585069056381920096496324612139120211199731224717816779991110191020874837636066890638509669666098205643584827869136779207180862139086900833756310358751268042514098292692906184430662493993917309885805890386282529363011958283434122245335363965710369170179400483376577775988066888850836614474005658152078754314157960634092120003481333976444629164950557966183745294036133067848635769722462088049957306361484244960207586686989457714106395990714468080794888796079710813445237840140984512190378855908067952636213677722312180420837814662332084277009447725095457986345949577924262176081570794228724965227844510973896495729953312085393631460483982735546744026292695863757950945446666214980793946804231575385542181919487910651318694173501663137125309922381759407899799321253819246095650331333095765588035080983453562134026332558703620574025547132837113424897794311884157205070265497892351936945569962702733220251262709431301699201444783067777973882535071364498247337700127752787134122577218130865026400944079190335027602618580067078688728006942821629351075712827216169562002526808055407193934266963116594955746852275911769187329626283895407964841049707709325323215408164057552231279701780272699202943474904964140849048413094587355095445962009352390606197467905451730000211716490615731902114453216034046121484669327697361762560091775272697909573975049785202457271377713158087928268741876128930470261275632097256700341474966702239387466823464321905532824539518644705847299221072029595677498451481648925037257325208394736607166828061884662856057978372534055377564023477717219648117228712475685599984683315765350463043518449569447433479374541587918843723559572645479031945988087547027578368673221160476424785412133942366421109132557088189960383877906291798969090491637077107099996710575253197633848978082949608342607323419237151300521859521733588396410047571807884210920438380237089351033217971898903316454901341624138535522564150180688008390065093307029059850547312465575505538611575162720009865059755854260934006378407382807458423190469495696477413026917122950915835465441609565163297913599105280194562992885623442166536124077068733305203327018876998617831167866304587527894075594765690690362194431375902699514611779045074729086437764725541849789702121770423535677921470112242304401568114470138992145606904795852341432630279662343991609244079731713281612441501258090770023195095837240449492412650358132776226526717881539395047693868503837835409080848072460612581440787271836571917537846499921618803118877762605844244902633257941120534426736151492220717950813569747813392461484609477119255618722943800650923917542821016392976229614285691322806281123521749710207859493241460119457397876970957740590923295142209327424653436926855228688824181064166056577379846458164036507445151124053091352600477393119258905442092711634845701065632995303711612180367710602946574661316034794481258539837655329706507727657286919020489289052699107146543878675576974276856789416278783239937671223113941475859097328295640188389062379946478174516538006913293971132513465240162289097918017333932765557697845060913045580708380728625847764406338771563278615367041008570497379969200589496980812046452811249561413270637578171239842683397989571994186781188881637261643460329701746881883670543609168853061643720161658519580552300449915196343006643445041544687066884295709234908826800710021074825012560913951819019835162847621408356720547806625934637624424980806985015811947974396006094028933427405042258990069595708247122270216442119335134464205163004707943544220625076287013753484374008099246908844416719626150320517990821858464393679399368745593179022024182675963433156789160197221785971553595435698544998511795179137275384115964229679256170598008366182401008601146107561243874447693681299992643604191518883856863711140051761344779723084883401842094662286470668400957842134756560745614104583146043716715126820204527107354795834099172161396192445065349488734543063625966866154678766219698306473273422574605300112111449180252327324981790644289409386463565525217698465438090685821385432132670424833825025006673006846671424196933621810076984532087251631435536308726856502404798249546630678287711560033908156931284800632934761842674244173542041844864310409394857206655845808235619767811819124559968960608980840413648877170381935207019547126483522044100565928793564784143832313668911183329994628215175827143384409562474015736675198629867477578216820133091796792840452902258466191195431662747409569122001056452104307547171410147128206521981049770768688027930692266325291083719294600304025299573369813851373692210369615266970059723035564549812773083355435000822320175797414379516030805588150235915498587211672044629683577405709688989924348801076352021268556647208146710561745693719726091182997937878304712450988994461332885924727820999784711994742621234966498567646859228399706618933323641713197538304111822820051769502001170765895042176979210496891468717008979792532497314537888288502826702163770630247007694236974180168009426536196279287758497297138973907683260606522596824867703320007783514738727212982354007561111472167662950684384326050543082694764145488953288003733099351712636294196002517795085959899665964884896015480994119377083774173852948482948039783428456463313805340483864015568065188343595437431360388982536625800583461667921125716435841668720716399855101235259889006981013416992122790454839176019561905216598008087271168976717814315721701772330515046561172609831512961300979049645571039978743224675402925311551607147429806939675256580255298368706502483479944591303753689442239214876814354953694759357003403091032237203879132130766446217074103343038414187947202576360948126564620283565028714490720614093250942425584087738634129517384983956750267175286637625548274205286416721590920076774432769991001430173723036211762525009731844434984502193610398225055178712742272681412481213675279603311096649638769649037678110823285553099964737601265844518053990087484449366346667026301556039596730761234347998593842182312043471071293334086893828979300300930236095050332858347749126259015565203491167583319796842347687177007768031933355117970212465887868148929282583917966645494484350877277963367152685793062360142548053437530135378541219744894172198532285646663288431587340163048439412397986233527194242047402162031758537797702586744395732307384945361431632794180233423440269817627979317103454959015544249841603573062536403512147890964493584072254537027064143118286079196835891582301772508614534741337234303830108100395559595268076322180447576177425282778840688150457708576885523361268895343791142430635635964385730588852651678254134822256601947186898109715275958373316217980672830896117005368236964330071244065729539329148201888912571670993500006496915323630546654341619842336053600930089389087752740689475943896287713283716623373580718326325175897544299815649250110194567711127378537971344740938684312474150771318564326058783741535477163237063585163337054305300286383095489940388638339340754515036435231587247065406620773048404365669112536777934363655596339490973344200701965403180664788006293735846376223178627220236956750779128157078689981174793842195645598851418593916855124501613540252672509982969445706789225448425487586700438572754461583900105070866971384357187876943040757903049854512771110389696986256167678662373264173057826258806102579673310350522915857575342756955213726104646523690215823790686719051391507915400717186179201913373045860629735307960443357905565848446468714315761049268368684552765517047701465980028009907581305060256071925383072616883926899096529524297402578282572936940424790057402067652802423085413079682308113781945356765656376150630897713294455629017882134263036541411428390098599819177813747619033657214219762517425470859440666263320931810984876531461799262023173358369642463770158306765407035002170847668029526104112092041212635600671115210036643573913170841284212203089978561769015369779307795533264398444880315847748056247112537349550148934057211770258425013783374497406995986800884386036624323029920173653656196175027430231957521779994829263198620548949842787654241673061846088358977156320834752075999168295329741837907937746202206437055238471084445827486264843449175157849707997104256567498021706163496848764982429514594372251807139693605940691747963118908910164202726899106454926119835890474446027487796627007857144555419456994375231526430605625398088674348037197812164857047223562760311867559331961893794763670991320535430312655539835520560851869178542866344773825879338042576441565056373949989773215864250434535866046643125731499927645634226527631840485447225081095700038637633016573993841560843166246432301709655510125450236142090033190612599509586690845289223947476279583125044761524340004298124418704870772796847764030615291220208570618895139526838714274584062795844424525436772043501754829087109438528631769642259807636686937092462203644041721081116809160524597771124834297802888948650024549754596724980918390944349394818121323928775900405284523974336444546947185206722317139398333410529725444890421109230512988874195213424869533284883187279467833372252500699132452267474712119996648526414781467065276119634324604196181601759735802623272218427940483713147640351816535053675322357443512332729358127197098436044704558452595093116408472124583033038095072518531641638492807684042138199580400131933288984029287150037625812701882698048214988937536041287742206449229130936497022789595181794990892723429598396412647593090076919305317169862211935081517272080587685021819526617523484478538055981281783727470452268928994210161416017366034800812861454309572161739910691412403812181332651866066168647090431111989359215635924824063665836219876365065051110920291345740160996921454086842065788063763492737023621138973641090420802578786503051405359045311962688016033961008101279034737858091950178786982615260454726264304485955319299326399851548869974796913794815388268444181029042481605777739880176379792289093219072294359451682354571115035568545996842193398467141870486435940522968274992939598544212847777230710794650255652153146050618792848436446114281518403973629459822887239975752657518550429759905169045960367284574325618243693700704456552131295428764792499114448001541535855425305829318100428311626720129734988069601646204264477477256087851410962678565242879415598510275341294381013502315740885569959622030127940933524430422284780730895347541325342665007796910164973414048348159211041387413501856084291108368049474987597708994081136067739426558449559576896556085884549593624726782505098922074183601332799949355455787706504214273819315740534686777134091070906698820063232543541279746707178802806592423513651475919220312155860782733262704060147200106544005138363358880085694194051164962042640704560142629085936204376043669702189907155707844718745481348408987687499815369791221389220254773169553292791592603818972725173145785062038474828218018211359896715737367280128176017656691289010547097368369855503929893357194201845774465231037278465172871398687987041662786942346858538698719846894984531885244131450995170331222784829988245707907887585745599448058529509149736981168276494158446225346609904843374515448480354095536941247944758263803329534438225607716926768724774068009683742250325626688626698407188457799542121769501278596333905392601623270604864815455782481385312015444947878648590354978449498830022045382942367312700744888723648099475881519260776462002197684107110199344675551957335426066143302050343675609921096423366511498840714470160305208849522350506695200448138396353704476095330182410399022685918032535296013694836747686216687785070809035062459804109652807872103910375317183981561864498039401685610282021814925385983634411573831016381804980762448204511000527842010387469805883366709899004380663215018938598943423449310320330775816397691450054005184207341256695246638559794087695156481265435891263721049180334796506266362620056384672285620681733482188200028820829338623825150467853033505751092585169080194665170936972278820915926604751613179043584671167067695237842849232980011703882380436374706602576294067127677616253948402268633401955691435640357289325788538374605800968463420954365252221675464057654585070272555486284507514959763648782461030958890258657572972778279478075554180527458835918250343474411567313388080215172569978639456055811475684780819963843570931378333705635251567251196852031413884705195558868174387316046472755179969390824691260554010098334025802293793226214989109298092423207703874342773982763345370461228261684117126608515884998194481438540905578206049502704737975447855590203318136715600605695112141217346342682504570159578766714029416992702861189330711960479335329643404504932296821355757250033795715479725140767694129585151111683151324700553913886521297005822538258067651824385280306897599515933197698889626175574813301892692716629831925564582134733909251484007785502285045438920297659313150642282424704877742805408570088291711816932807765293981789998475733145394378149500510176404802612259345577963773108020579183036227176610561894170970914925069586057283670382258407315785915401601673104191000767331260015013600324403112298828975859584955153916975822286136715580370190503413271423180898343984257991817197151664685540861217982921383776053932480670921020408652052039809463844418636857493088797892537813148651331938956902552404913913657695763986505364576512571452829180560253690696306983822133836444900319253884385413892107728450243716976385559341462923599592970131567196147959872341838242475762851948705366803051415713912823306351096662398223481475203396662799207971329909101767574065095624012937355193872098276287131246341868055821127459685935647013125311284282719637969710112850099793683130795957305400092035477674137441167997568576314160645377545393060532114154455430968336069542744626821195203185727791592946327896914709155557261803582755619589173458165882164873253150772256819185433314884280590028468904051443743732100214475645331996857801965084649246163083947611924558774863445577047699457367601594993158265617812349990031061208749400860168118367286789627094887754824564514380910198108957931528615448622409590357583008513571277915707606909272469270755962327946610767860471647244035869834707973997701100274956585432277478078729235193760063763442709104507152739837207620512048783596611279584547051915442143198512724514008404527121088231049755018830587473794485611027389959035705183644051136278549155334464170753541620709235771465521714708136929073328520588404496918782701143242765245871381533819558635956324480881936178679775963442958355220205904175658914636594260118882953554415664517727168985934656114640612710277642254780125355991327073216718576148644574349592974577498984034082349230554322393513104803332697520605260773833430916386926752956916342123307121383108649288466604791795898847902409796278648675288338094625329998665136078558460439226344282599619159008549309621496313104369183971481398556834873338074222534690073159129572757520694036541500864621770502931476471418799488745197408652692767466131924600782960178230444734611336760062188140314763080089977559444699861364497584558998925945754022211863473843706792819064142709273775109370889618808342598130635143734894915557849825012504776431749331819519708426881344724903443079294235435460568998242042549863961714326007309773670966952845589055685701415068066551652529043117920715922529541418855027704919119100716882093472402297699388127064535718270127985748365304379391641745363735336249879184171331236046672391427908028079504036533002084397912423460460164463365598130608594210963120851195176051435938365913411474178239554646622736191267192946855221758075765114453897183577244321407206142970178664694145979789507750429906280792878924542951005471354988603602664067987182415318012925474461503940026006742431033648629250811575057155085700478040879747101499120349378314742898074504635135480672549915633311697238043983879978262700325731814933443281089459187562706733865604431327060026465399163916050958527370626765545895540708013813371254713044666513708225674632113730814225285376047899111230218664524779018381798085886236325999409584019122919892523895400319638261313169978812642025239269010395428306967527485871417451609486042284213186783460279722635204188563632824146438238277910014961667328440552415846344919034847447876208733225401724146184318009114650450388001660651870329666830882988607386944542034558427661693128001170707624816170195815106871487701882683030486374568730879691715131993995216146873015783961107125849925115169302237977151758486101047483567825242620140384014814491112992606796273426869454992136448964233761588582799993411750747337692173977087210388097286720812027917992729994145106634542630366324451682052512734049546966321746425780327680262417761255071573130752867222801483483787501445792424396524711605427060652014060838851463568183383613346043943487091594478432533950110435804585731397372384054512117892526600441289064821181181994457761233720817737297386146312618749691754355930867883404886950640324995115306444638099798761649773940199536215058429890281132681010808525260212277864791741497420508961376153017886905886943699484011191710944200227410038160122462496811046923562920727322706921850876502439158769997928092452624662703168675175335178401947126902963241583452318451137087048415184944507351734014960810581870148995796452643612468511441998258622152624272226764542287313764759174797903507882970243079529856066460018580131404484061984595257241494508113469938135720278003881420504716549060671095322792219464873945247425542145647714018356970670301411496881962914691744976298872632690958223109035872851369391217569264170545334421403519145169936765719006501717929054176563284837396781818568029637618045470743426827851036125413699457328974344328049031527204527055934771502954280986943698246376394660360429000708623012816405569246065121811502833898495015964327849739113379001387790416622878800751843298762480105606689575405223579585362531309558433295702429533530743574662960047590121764843068536260446778992634507225779878757660473065310705558252039073674114643060537086701662540625435277522894135152174340938133066972870201197267440954882432540761856627385513763146316686059882398282995337278473115501000981699313654253826688883177384760975174120838882034600793689030350396440200303434334984179157391256455014565140411072239275912241393987344193724177506630232911738116926028555998449946246573332356483584058453290278695162788987445437418598932193856357051782180374378600129444939191718364571137966121224567894581007613865734161658040309789340849844357389990220633192901981754267120409398652714791487883220184823986394468753608041464347193764491485428183970139328166372608792886334693252633850650192603961792653091637732550862145205898736666228284200365471067363997211997851828248575984840068315867685812933426975383969971988706010740414576911107288782233101360002800692321937079276851655214446741117146259312316814116548705704499040871015200960178400907443589273520950349944022114491400385323255681224060103325257988156081206452694244339514606542700973592703851242359606821388690928656637237072473507946383035085771579729305112720953644153338032246720897449608740203563739379102857590692497205613050246803081717968986958712850986767580762894447781496577630292109558360031218470189968169660147103675970314331351154642497290856687753973627204075005636478172122481532241985608625577845206598652957221419939760009490517134340554277429455223249359692498670140198153575791358131570895347849855117788006974052703716947882340602941573389576390998212284072687794728356315359565478681609254810825866678074552093308370383893367784579167376798082700810459536894068419508357329282477744333544995639030104856586267629422923154539399486629702696064585130307708231974961286150208535116672087043663887060494353912490725387374430851636760181232493130635389985247001572546175988042657264367669118876886862915080727972246439378381412345795020037756014985790425782091377298555906377775379192404076176214858579286950938110790946062976886591638115755437345284876120227478767172862320453365004682320889402059325699332573291493216421558290374068990556426010589333660430404245604636639817948352330132068097068758144454936719126395677758114791447700847141501767303776196138944394945134153730375537081893153813606518227327234748998119416327722051503261487655088385428541413639382850265259346253685389032832167385914638717401585222196246694341030294326323706594308560940925708433369537473656191321241013201428298305541740265586529148327391911681803552185828904700217262497102724401947870917970364723570381904698543360956019376533167580785969347729479671610727062067707744075678986252078525281796819959646567190912136595329690379529901085479124318346410309264311001475417194610264565607676149051910182301566568567714126583911544783578431586065715050245643114331569672300868172944367064271075474872671123595214886142323715959626233599975394082835476231990503810130460495448413216484374887593616379223172692384776604955717820042947191242622068489203723344238982480889202309358061172237324912830472540470090578393408912517422332525812224207206861002334365626159844210052667773526463336415848806104060636110501942470180494473481033832107557694386599309687731889836490876653830543769559684247405347717684507012366128657126039776542102904581768733865333983956482982883632700603763643012071462757046323770377455151360288100902282230729148453685824166229801958426871156048901379580249639325281627507191166555559653793922526989967738415999947690150604610644275649642418873347149112214837443020091209021334236887730031648137973382222231582024810898823536217515346646000575511666411353808810238250783396899468195720744183609354716218587074780749433443309800879669623584488339151434669573797407612806494297228465366209094464092908181981014863743457536028099055733313921731603870672063589347261303458663085013508900396473924658239090033553209256494112319436884583003301297984799333079358048898586284585973900675191036024024076780075645345527380568888845383280160078733913695820582237406570558945821294044501592337375809019651044834465249897422064636400825427752519894798271742143911710377639816867059067644961093257455787558103508936337896224651068158760418309649837456797571500815070522661540871041386537946547972077960870816423117472081591707455787622057874908832308871653287966434405585451909016889982235582789024720415834409688932256947937043216800291565253704081327494564416126509222894984571331658902441966495843522036665560805734361756606677335437574486645866584998203435990993536552389197295650921943879633474356542517214116516965308471735164085195184176000454021462506174656337743688931580907241024579580613297671775954754498514199196967675077628515395134639464305935055137569567480265570122834880576303806615020467088302170716868904459344203604179368161062405180960896583264665219848753441428647626979131421982282085783889107642128873018892363728798442144951526153978400326648546513565787576250548385724493710922603896849746366284264451832246317745860202991091043490637877096621652816086059641605375664611669708362928647676311999491427642290226341385433890815300395545105226944674568921569655544200468543776122650939780690567472052864546372810913720673112958809497101212554794363507305140442256466909524949246272646520871592494061246215453478957194428685668050187736873778207532735086867451981003734124505644817909394313733083857492264365432226951115942716712988812603343309610621716397578695584421299809747177933258393638648732347951965066633947569769324036177488171260088318427023739055559157161124976345934762221146991823366456625774601031991351027059314674195788128722778715073768612990363334857532142111753216454189068389720835569429745146868773679163151208377756054225510035901640036552515084908024765020529470123172223095292299024177821417416613098928107775498680925052586397186145642673033952548886803851939615960926796037354535531844806926623710910523517820912532215773803872801946712068585480429706140473505402782923177395175599308223042691799276419499558604302859534118720926583654009931380074470877417335271652058346285409407199961388961163962572871389663105515252489852990305649697857145155849030195649325973273455286566294681384920637083659531041571777911497690733434182325596471049499966097850412954775869678549036105460725497419253948123222252374664781751951716011093909453740823880624021204317754754555183351110363843153435600307556365036288864205299309279758193125608164568603261652650734947509274655193740728136599238981509959779324797026705065086482839594037450599916738948643914191872812557100986211255549665410109671728721647605237293778751382981357740125261937529371699819884680046905955295803353228966388157913599459240843174389079763718864056019201857943264653287783638735506544801894484731208437344995123204424360533172821929376869508267357018868380135454846182708481422267611586787949015330171443304009358110499258112398226513475642355122349708417964984889507670264822784481696709955445841966234698622348839346970081857719892934578031552891288663035459208308047936762338067624257547967798498791887553215243438279385590145423975374931287360293875565820379600138028411647883578571074915710544372611260924935811825501625214643679747490850074906985335392358970709810981027751726781830695996169614186102093974580895268566944934550327283246833672461790062307159056767251888820166271973490671042210412240250052778602840811779566014304887246348320449379726966852044026682380372992940218544666465681429169764027738348929767840535308502941888345699999910287395087535380138362822697431919382775164646206556894352739189640842023990632127867413734377091154514856674218549666297014656736283003688121251229077887997912551869978631479609039282698878609284726595534216459330742809938500437270334104139000185361243363465022564825542284966617139809857268292665631782323277079405004345952005442524851173062477147808797389160837612759643179660057442243236155906429860881298230555188553549564730735549064803800235544934166050016409513181392470745151523474840584399811286392012981217319207527861877463170502786604895099178937229804966443619627234029921936764657770982679845224988308421968051877647104259645505522114921400709327102678591890472312447827263732501798433319329253057996940733431051514515864069558953590756190763224874426134166585379722899389825603173962409986470711352898964272010337278399135095408438953903491318778824415031825737786633430268524243936183219312351505961223595516896904764342486473730681749483187222499798395464564100338047465819515490758317681498614989207481027091675291956799292651555820294792643114022846788834216608974588433248449650664891101156333528450752354046430003595307490777514136206314549357062806170670453100340518272205657959915877084765229503254323333708418545198466461408564919028089519077608415760970704572030083430421168501787849012417512287287089587014979848300647248867445234869257411029774787798898575336219407331132671838137334114779756474473680000744622434144223979642271817378205031098590244619516072120767653615330603445780256249093909790546465044773319402810108184561280004789491958678718712532030500896590618846278716400642221278503201684459771122723848153598980063031617322105539243075131986852101138273217877655776915374353671010388240177042184569404864357374080948167169998806866102990765906038858464787003780598072685755751665177853832044301249414857735422809223903416412894712025587237297662525628744725358337524013465129259164007889423877916564264668417791078283524396916545402623232808345951311188168619163374452279235862056551028511217341870214053009703775310607054627293400024602317498630770860237839864648180894182260146705328878260712908422150851302559531342055299082294237334493661996889688312680920707612116775823570942905995985021909106541751588534383817494352956002804131767869880898821909314586972669474449127141243244475120951689827882861991923253068872362090458783722520774782477944763878812978430560657036588369043495532703679693025754041817885960600702748232992686819315954645770453911049513266850124931780784001414647508561652325564305385271256887356487751854482071062520158021118352753267991034116101068622002564319951808692495117867418972087626167034253483030346812058317435676572037238000614851874195494883771179665881397586743757069041501621552031439227899024661362239155132560270651820138751813961758573586674338743526143256719552912609835944399381674595863902843555909601543540414801262099505184444744097506170911168505228535331238725222613628445196269943580573693168219041528183623849583331235087530719675562295388829474187687504628723811982037810036225843523699009287557252607399637953538401622790098655583014691570950757847911289078515530056305030453676238923901048784088827036516276128240519910358283961054874295711399706168746926416959160435686693167034200791876395272850355275539654526822603668159038704777535528153257005771459263378796786309966473876300709260807614519749830537276624338951888437556168332257719789337778111007317595110417094785103882038027262271593903882675624014628199865617472140111644778762481355362531858021138870578012311566772395263702468686056822677454631169421672736838532664200888400335621688746013558100746981812577695215724954660071858075160675703705611580819032897390304738532269098675644293827019552348079160234172083108408387785457290923663293283133474423671444765026499780530622658326937080085618988387745439533882941353553957754633335518734141892169442948549710314707647301729801614484050205588943200775946257398348948469341468612162770438195273472456561372695376168302107283819657012969885395048346804499998952655287217899419864831543379747427529218975899136395369989997591530291942685416663154296175008111601724826400195564552715247709941188744267277574571766108505294666929773249851210457680393031150033837553870390690600058769062117377739459687440086336252733606200924573921316744029836198552254029820764377847887466385932254248179668627484268828614678983102388754102836857354599942896666775861734788819078571864628776875992959254532942140805260206886623354902483712596544602416344964030219166812788021654390985552177599620229956529590889522033882916789102534815743877894817900805105929509215164106790362366426401606213756382543044135193055449915999534253767380243558962328506314666027914056636237183605606396486549309880924883381110286458620833290913399231076694635253668132802706215174337740555023856646704639111948592540062837146844819565049917932867601945866739670725859593642857571763529474126720398540726680286986772931266062783201540230178849001707023086601995750711335108266192567040519921900328819904326062505475602613834409871257705080569187067075928277705425578111286041695756327919464340792880151464004569237695729325721453072070959586290843429247495530417121672298534899019469826106776497294011742283333110684502019287113321376313558925385973617142883830227970802308258152941660776311271349969808541196660065673508087576816970831173374267276912887615133320973944963368156708441235706657719174278665345649123931948883145656632441477826626169279796464893094339884053144237305893613132910820440160614778445117383485973468075424980302705343345744077145723374362194493216888604658582836326719197152509512301629394325090160598308852216610753822653721761421781691130505219792414245665339753201247621602861270014008970177642504779504514060800557099135189793051319904249712059616339853535733762107176049594817104150811977362330211877153924863713514619833690906848091294293586504145459389154892360533324350616903571047120504555882077227025834790405353965393281691766699445032159319094396281079036117322189152592786262691448493437165411886948646340469610305087356536614961750380354428587871104775152286265030364033564115759937002877753692841378651343123788720687027418860399153768397646767463002228533338831915841664122035805853280780074316778783785960496671245364223473690315947734848073139076487594036517790751535357259413010984918902243058501743820473182275941057175772766354562022535235980508587641475473492600832068637418409393905634296100306488905742294476132725478152930646917916335051294953397466329507223244995492349002340950555885777402913858450612305551692743734516469745700803477389365561972692511666705975539321472121291299087330691984015905844311724568613101545254762021364671919981478112171019732568986291506659164575554602483355197341051180001409459833788149385063131075001503128772963215018382356110075511856693375117889046884553816010627807344733330116875466234872858604929443168553445148929989264015214388540999671008727448363494072527599515079256838491707011664668307351808390192681539215339172222794525030082802125271557286612855133327674397755909277348165451596911754957787413154342308470854757566093438020616251137478420312377645947820504674737173428048410672554614929929192437845915966994897308678371225711007361612433874985432802729083193701648772383784618495273229414476196208245838107563339160375297117900460641837776566499944169686380800714165029076292399967345269143541739960872992702100864527928882463673084648700414176925921133635771726040033604936642014639316605230270235184935536607773053966616959545462022696306950687230117278014222087965396659791973686950017552923006400955401698929232750550549993733811301406516202923232952943214833513272484322449620839162965637954168090544438512529565344473126974031312842779102331671913423885354966372306812569161285255196816875490771617028683865389788953806629201619868215451096952338726857881874150576306564570644464674289810437210384303100781797637461277190628843917581214044099182047424933205020527845095880728833012828511185529916692289804402859190511467557990642666390801187562655472178918742946986754220568836450229890865223672390946803190565588238429519003279791087870530835877080659686692802246686321230999635210244278432641979967170951552108741054398356522586459098305172161341125344381142159279359079340425165092491708718427099095036246914487475997891322100830462307503232781868734357628587946300636746515511040871948124010432527948948871923714813005682810233774446874000817498032067618506397792301815858008992367295821603171279178968639199735394213490185290313681011036718362680958730692401825423546187359091606110370752880280663144684382657322516577816865519983129496791480917451322262548846421214986555777033040224344118254267296512286075411241217842024412043929612139865473303914517742921746576290388753410889498015975491200203844944142259188856399938056896427338808773997029606721414855207740192258819477522293577491760249108960705600884475324902386492492612514815321879553991769030147523757921430408838869478437653375884759675970991097682952049463147328921928086315280354903064000496079665516862264304358477467812847001539839984788941478492430623251652729241626966235407097186457971494985709296506540454816535573089764829175154557817592969904576114836928866206811001557022931527745528593650486861476443509148678123666353247719664643574942558375434713814694489224995929571935159662010666708861532205619250940754710342605537098580425936979479108955926862046333302321468423280283105281062726877818531888966097238297657152911836156929770524546842481846488535460198722550444883541259133230210708285292535360884507893675464220089082702469688847294419531417684714383404588143357890435439119841385041569577806278452905189618290171433156533663063978010928136630886207785757680422374327252870368415665508527553975252906567472506308382786593610748908754800086922309500391565189498926667419710863776369330021416700771440631297799621277066596997260363092419533117262322304029036048008206162426599001647281321442508872685503327479173201334635486940365767254703463230939665781128771366882823935890281032675534456345983568664612138276511062756366129825197815314346264095989683141742461202648462819218823934363948394617436070105445688536829205164372446194335028803109782800036083660567295481420288765585119194781585643824735829285832406977967991438773250683810139173841958075741776838437113004345231722044804145211602305761102389716689285876699032878314659128014839059616789377764612462644393891898491408354381838299537729592399281130740778225013467638930185104543414254652858789723917724218793984993275148287161832830265540027432120475586523930415120003879218890562279723601023240257598380711101447290714708975574934226569332882107830782193468064963558661944936731364377104420721415446188792955021555995350721084817179615586184893171966994700138672180892314737795888334834192933853564814354403826187271663870674726465687414260433701526101415811045003374014205618632131669764695709234407547396145132000186029550923513327294591303983783326259261088408308802704772727148515802634476333212755746889288099732756731977857851063976137653270045664068393314975855747963745971605542080816961336170948058934860402861092117912416525221475379888770450607357138886292555546400410290346120844523283211901782542207951145124365622093375526565146226572326231501561560495381480751101514944182011101033761575194621892440846405746913791777834294268094992391263199141425735438357190835199439935993012265128260711503902394402613596949097827996328436212987973348874386060027416416131264971421677432234356445674803717301630906612919199469772439952275951855285436665967923802441755678763423856610046277982174973973096304872542226676875260232816470014852991776328608497605604132272637992868156296463140496804452651382085319352763189920400433935310173683187638070890834516082728290656919338436472117904635997900612334506605936715368792380312746882592695944298654344911439409591394860891096035013688430056612596454435747444079867060246514257521675795492733807817822506542306267907609624258362959835498805359672132138878160556406174157630014594846103817914079105100501332774783018078918130626209461270998271224666736261371652481055892973571615538248247189529529959622204250643839662941701741119033824026229759724976263809837618268509345705656481379124905846952857800886482560828087106781449122015621652268818341986246456544313018679599403046216986785097575864836459378498517961869580548117793511718110792323129614078180500315577336198974586409789933360757835216792093470742186780276670796803077284735431696080308582792245929942976873012824382373952746919928413812589170806481861798289963449680031853129779042818502213436589496658438861313847858655532481213609285109588355253429795917214602114983270342424760653268519044714007516896815400196454361177627164346858431887113486763875903475657601544875654677705847722676342233784386997896554447435972884629338175803972077357286765038809515675011118485066058524903318225407721218242790495198847921771873566660286227257126709705210045035862685690997660237049922585470309523682619330767856108191552374638475805911222635740553915436491050797639006965079725937501178772175604710157015509391089067904150625367341901017520788916811307519708591290292689890072633250421772545860976580662978773994535975949202302438283205800619562304339200383805799553551598926078083546009617902610105390958321658534607088684390866824008029388788540219589443797098681846468139439818400956028560140832326913713267066463083811012534228237818312916190919716992759351681237121997060686055035289703205430673155973686543846093662641506583985278973869987938725363207248864200623800880807908168270651254893350826150325883040906236573786649257088583372776565873931542193331996425480636517917230911354854018363160423856463170702877025812707359262577066939235454918414995624880454018832467455770471600860344729843605532205547773057449125446389370232652956027554556656087839020983518059173146309871861907167386365620972421932948293911338786055083076341869962117794815073926857480996740163888286159270830896877354151835194108781660080704161666333003605966735248116610133008840893819081393628378076676706267017298552812947308868866316507436958053625015964316738191653108561268142539142022738611056922781712174504308105428593757009833938931361855215559431400787986610054800356907829779677269409101154074907423850684947170420963900370320052707882969440845804107439433321822463247712432111599349997165069840993503727147561085661467744213627641675764178439775412486829892100797208843367982629973489486205515729647058644497030269621284207578261862258059047592276823307098959932058101957361574478889726538601345095709302572256244151443403496310538135414641460308353963256827559958454146868121890137563118489888518350453277357183172806946031394125624278502333296314624080054080721289086784833117470743241909017917251610778772337613341671852068735536668452320514183392703120210835554948351089612296146281724031658726776998957406469019286536430111278050318913837043317916428847426306551854063898841209616838580587320181156919225636320052449526102818526368660004211283873507737756360782026409530496535147414824124204618650910452448524359601106604319398603081256842729337333638490807717338832015092130347146801184627884065709578477318957253385575665055144852621486732938196858427325758668457211853886911957783085670767844686500507543889054846580886839208722086111769842864781507985555860668553785900353843558112336479642068375471418353221933335899299611156649468512122665935274626542833779714342748542547145340393317297574894527720907837048341075221077004010451349643451311515281025137873760932745791212577448797133013857538288998128953362128031148792632246594444940171437073927493186757340665187307345912288215199037531214332993557457547897682968133383022195577548283527489218825563792101112788474341914201404441386172048983520454126648231767411546982179532630749916408135755711529706463968470247372207511782437679910298731499937481757613386651178006065080071061126357326124830040905108186217137401098792451028722632106934071129812235851516891969519811245906327939251533471820971677940103784835327539442802761584358275112054757191761822475669696758491835581954378906253090006785890086540613094548981457506201794995953624138752394932895750756698660162826477773470238507940542760416479559364951305884050497020351013669336946659180913084610490461414040434257368999963030785006495217345673983109147650748509459196581385563956258990274856829556195732202736673990729235857038440952966106280549167765558950784769261619509856783522217655217041401147796806688172439237769520338047694883300707160917463269601203152037139838776918015900359120440366293490182576753215708343299589603210831214598774383273506463546731271563748560175326796369100465728967005256060524879408357701286928046490040780306804374672333176446930293317918941280150704648796233105831404347400334488823498037389818583667418596458300814923631058115556989906391716552825659204234947892207847888850062777879671184873114664532592151671919786239845593939249901653598423145949529763464607728454483341012828302013138617915645752647223512995392394936921758860517418870063200805959766328490501293973109609070823856368242049363046284144866456938571561422510106113093473650575872374455210318109551873138581825739710594517686359598276855191030375282899263810361960454355902113958894487441393876716531879787561953849938876889971569130011640817400265896592528630745074415450158710176256798015643282469792147925800958763049794776805305203373164576345985948575769667907878428528302721096266864649471395439750366184023322880418608995611167739598971572222304651670103558814409202227728455551420391190812684762662504183183527100092564573352497816946291221667905528264599298479448309605925214262010483722737583978425025026933665766960919057404410387016819106390694992952893861568861923550536061743351856751851365369376558295344356309132286377204247868354140475693316617832154843337985413961490601235338147174764382736808979615880580034650471468206823189607371880096261278409732773134112375569745761899146201378039772624939546002952687195562767157983049507158255811064588676004481839948009442400586207934697157133143613743206888877046127031831522305944631613845786973149316020154661562950424966892170423164772974389767931684578826893501753346946659141713258721009566321877927093590795373051458812718717528528851130473292818352742746525923525288092144827405871911598942950060391068360147637249682402033438562463058390728638436445776146891735236814664703707786314227173056925007927652245532191228089579241673217116204631846206190300586538588592208685599058362747787002263678343395365620844025863521157950740249864521262037508971522757238992942639823667588084897265272643424363733114585597475126971765421950645018844027685505325696405112487434511692656073992449830110698089782478210702578452119123675992903034938276249037645621451964437660741286443508432829079801779670466588047587854845901306618158139906135163481761779368348834052963357867167264453372274510063392880321390129464740327297389971931370948767948675311475579967249903692311373919211745598247283333932116419257643438156308696570495513825825016853507558330829181214855035111483702737181756338356078003729557433767540769578225332191001916298719026631572674876386403745580732093120586812309613734512936029313266677441629057802375724312570643066627666519090722521994690944453599111325095528242506497141487319826493448346895952039948072234823550207694126402405916124275663092226645517430839364652860342583812865823384237325119881372120257880945049427363320791979303118499613549326816204076802550960086155581489462213157070021131260202328115533094867771540477331536782118108707998152853061039813279009003987254526758405251236515465437241033437711479848897283090941345720766278959432930997904173530774944494823579111084822647732385347685168980516718524208092411527435837359142688395698821006698037800717037171009518526026097411178293082850753411159290409702245184070559768486582951847302126681904059191623989130178348162820275444596453826786193227568927871508196308448720513224168923451791545499716569072469462696144736631929842172871129999598031711883769026662444854865789284384597542691800121287367500795638248873338458758515272701170473500103258472917056036278031189653842017089689175775998298259545802466819944842072697031554235919967295863631150769131368473976562851230875264447002017090006792077616193461069933612948259387053723166081260632225194596076394004972542216839205584595966317652774751702150819904941736730010630864519937580394647641944542828915543877275649103328515801683185694478563160433323740571604481696406956007119105096237366828517401861431145038858186967346040773802553557339176522025585584774991590375464313954085106695726747904723227687294877282665043603230890401059452913120871988586295661073697027049526714767163942941534859447241835173145369176477629649464851988695594404255164937022615866954343854362555993736348716418333809397645444152819531975609686033077063008586898954628838013975854320742110211779427234259812860465049577435416462096464263350092694045769883203030020479520234319973032553696117619635291156379012078749998591959434934947615098013519004045138077386798798132894603296070988921288843507824027987053496573799372016831533581197206296806921627460212201007566554622699155602315328922469457222356893372040421557336658674657262129727144736054005992955669702275431502411511621916771394147745984004053192579106353183824137422232048807858260424309676251621764592050974505284617219826737154302790697264154729003844689000006922123053736919957520823082425980577056586832131337477827013588720530860653532556028848131320986571115275972462291519841236519535600157359017417967668085669339413768418286795663291797480137663829863892412335375701017916565496402317948998407187687233681265912007659870192684825328226380239241833546888596694672381669565598362782075909384282054211772278764746696923339056782977414702119882834056873319564544971258660540162654549841523464433380631987582491177400978487894590360814229028305705822692653084424766405638861632196892719915072782356518689993624989841591376860859252203154245702239132395001067619441841430413954750703313706480522240903661200876968675047477696134907045863397779227564003341747995727040730883876842840296053645685448731023193410166187571184624744004106799421904946159117264523036092633840220075389820186920128815988372294010509140001176815400830984340476168002919058814394160550248612525784570368259621891912428814164985545904914638088558173870581955672720684415516982152377118856306609569302026482053624504064953700969551253031308779076683019755598972980774030259009052423944325686474165619043375184383842731673180039931132527832259660181991722572996023124669431256349626034646900958851020087477889554347713430702672855836121025406556602876397046510522050079749501622137517904058230091755799004579247698286401388985114573827277918597071715221046241275749832934584281086278391101946050828246795112360778610037246831454543365603193412998417272482444574135762881241237007876216045573282004534034101435618969407880755967409833577968106623602200384080016080338665165843335470593506948397356241354752435194602143829699885179334204315741601988807904023003930656607388842327670357852133425706020166320670484687693468863719528441898472835956050073501954336162730352560231168620266954888968353705444209093910551157207385195606906683656747736175435347464601326583172520319742019313342458970111706113032351107482201038021103588745310004555146359280734632429637333181785091291781463844135550070230221424051244270275023164116675240109070076933529781958979339221711938789400211760799159671492030814134576192295115906811920783756826857374813200925681992712848892091720768440819108992544416554824671002019576206924198030936817607392893240814958420017219618606359194667988300992983899335622749017686996176047841158484314306832203772689907472113510245725123515735378775860375106029230259262895105565022333127605232728009461756158257741990049361990917003583474133839163044890085895939988415367583408055420740100794725598243412851342452001198349775821980058234649999541367163905559602604863574025552719429562393706801886523604030402640691771087532305696511102026113469121619889438061952578336641981632558514000348782613533163140036342291010081895973889022993515023724821750869867508890789798479765501843675712352706742935495159691453301778215599291061000914959853654190722353393037311580311240622785686224118324526997483311464957671596516472722925200167877292006902907324562041292771475709637746372720953731653736919872759838179011866042760832116424331176782118039302240516706623701853542247865305483752447744713997702593378077605455224718526041325560464209221639538403393776009248170597890616345051334385726650406156284786223160837411945002758833474527445890420424954035616750828149205073557913672311804973645156920483803639647538158053069483076127282762428211555821833850638660742733771845149532168086547922403928848276043102843580172613228921573492486666544559572685590124713351194213826726181457600021645042653633982432086661213529758475414610113621687386551631053289461510855200284471079935795116483246536238293018321612650076981229002312108515331403704432498985509914639001826620575034359202222552559967938843095995105124766502981179493396130653757095819252011329945484502607807276165173849796656102033875224258836830233071867386336129589935594399237361027792238025869915540238854051839990715058376773615680170394293144341008238432626923046865637177475253220947839131889587930967171490061615158914966858463572976451795867409897204758905410148418174316101255419363570636051102216152581103138218225683248883523911477826378713742326904873610631801667675913477659968730991635573913549268482213797192006233650824303562239900546352611047672009853370288023861030697990665413677792963453202297924318045721609529326052095461257358113937991802859103870964773638442381624526715338253648944043609660660566964640977335721958144500901804426827449101890282638069127280224636997338941270216811662876822968571207630927138880741345508659930031346319538628268418650831593771388969218308039298929040346529532499317567498424761982415609726401755433916780518632582146743751340313582938316096284099040437386662812073859885146548473331189455564978497674596834713740463476429262954413976490471272518875079949791883604385372539849305007135891730578298008745902627346141314095534732844393654375087886147705294923248677684054498521558386119845107765255475984418890954729153028585213119660983875356022162058707305033027449463462786672834705596678265342064071403635219033245936527501356438872505991426661153479664671217325568606588713583334135564614467502997727065029090788708044685600150354496654566920523027524602323220330418791320842935560959056513367029800016295623758178699148473732762579575108812223301455768471831028150544945455888510551264330105187477163500377853676390956249025169102458056963154694178532485448027715296789474510803209412836652608903916778943904323945950075240660050237785666661652541360574792040451376799584575817892533771160758497688012732750376645120068448494850616462375800196985627979563699101894440277344148188011657178715353155434831694090762331650927774683373417615741263345729816932766176741921171566892916663942623103305023623823841094645195177413993748005432413415150126282820576475041096444560262135950762592905287333676912511641964973779208477249022026634357209227880456346223675027321755284108379707471748609230726773489784484648342374739848406444401134612292375928269612861930115073884406142497677072583212462761440385620140064748635338466023718765381721363152405992534748209172218304815505273298130402915138750926538652309440292902127148717979185791298801120069756909751690766925506728108816720900974377743847096765541088155632377247061221882934851916580162844547010326064573341910919675551623570956664652571799972549567793421647196317020369948508244450491471647806068232851569432895536139229411318684347287591762867414853478328995119435640424148439115290540065118741812657694094021967988107032256559212989835413520820273576053766703834384471489514616051799750175518107121879610742306427422969964918449601287403138536066924778849300642267472098680576072268648246745805511652207662841517002992549289286059701346585182104817078291706436221054010203662577146547000380550976131909322043217772391612250123715081089320141702741957270692379044917880085117183342214873733947428610198811815229246845369846600720651884822852557356607172033203107539255446307257773845283658572246457531262894061619046867892583997696560190477272699858115852245588498098822429278303828579960859985597806973996778702303011335002443573435747091864976294146689630124560239702782549861583549073269962160041955639323051466978217472142002867086188838751315557582432450360116058739664005943351987536763600942141645292398977760857380336728017785073877736218892168681476120982780905607831791855842385761747323708017047818331018081365454760457184609847570741828352967858744264975312318996425128632129640034372065637557825400453685258852230243685159208395703484119573596905157952855523684835720772143060939083614123345398836362005010173799841054539556195411946148178504855462574294951196174606647852519790240772737145756032142262187531022392734889223103446584935014357388877002880331864185888725654078216118881428129421516683292313903507851238783934629777156306921326332797426145601005162353642539772484298208042551773669442050546476379905518073283450923380236780785355750758787270615370206755298403536657198089325207297629585152538010230063949915019852727497623524237330376009189231734445357488688501652428829525406137295434975562808069575647398005320258107963754479423652796518535537535963955463905808789972747193028576270191835209414441712582044216103237639519119496722592683726199268544890330257046122635465959918551080415022162850530791349705259136279005275742832342353008006679583432907597216197736839580287423627831820186622985106905817005066267666336978343000102348052286248949316306652645158408150162222327479268014399404183012754668360062232543648884892350393898948224860369470804671976530147593049578791332907990119072630777195006868293844002540967779452637382149750252936424796389263491765227594187810872206556164753624013822172539869322793905742838376261661959306014522136273459243951517735220568459149118417449856001055671238962292978056716404380208187828585133083307821801360831778324308768222582314543568437993595051550569250495811746534670146531025091631766987112807578646511005034180433837364378779513116222379685124546256483593835454324961881980379504965257906798501838385486215208403647176669943731552122428305625613303306224512793729741022255739879228201323792831023780564384954699831685843103308158185201838767094349496431804297610668521042297833865418161918850634180097570713835124487790893616995525565392313365086584041122800362195062996690557737878020826885961896453019259499697674089316486716069656225442969284220013286008122445290907189002960471705158244515962836231915183330536564198310832989887579698543187618043739735289492524145213873590915022860118806068824926329459025705176111483095177907491238666157453586102983509265989719102950145081897715076111602952986776867077516172345524626776017925239148826045531154926380363650539268148770337373050940239194766446954236532102106205832239811661882047562693828272746648382947626129601550239581960320172799488784469923601227107148192930141792204711640235650749593972343952262591146392574447813929127961153952503706628081121375041316170582161105336158744723793431382493315155947386965886688691146513355342361466294716300902463622920443908594394023811965781683389345570699007228191378363153868716136542446802344483081795962233035061507851074814664120611812929117114998983505489381027385521297903432938226305564816776309192340796625411755198051809289688887697978854949360863248167960405146821052193337826363637160246752227557354727444689704081878911934600772244282893800030610770438635653005791045377659577797704215858736391885418606087833087523753308147750400976316010601940171902834203511104874580190427883036624773720378521287095665232979935437911843616939050413772686813391486399174656298958227367808672809064679871529060299702526344878843936334574543646686381952143264638460643818228195835163591245314195954539965928428786895413844240402139456971381081170438991504069130266242923889345954189636365178530765288327640602944776785385327214796681340237501937932563695968632214125936515589152665709196456897096963843466426861484651424801244156384308312304406235166477566990495415202260997113751303905761705515915614092904712229827941407895818552720982435154876561257967156456315647942711604102836057079920881378054678981546764002876617172124752979411839253243923076415016615929270570668784029938260810573740191897561054164889118794575094676719026848139834818004148328188004955226474314859070652076980862150176683254966832542798090468728092731131088836096246233877650534545872712928146248641359200989127561681651408456064263763580065821365237171333327926135953018481338519657483959778186508033149543964436172736160511114200006309278843825939266370824920626122231018367074119738124027279838991798143769775389870530159186041405371828511895805520808680400150843833402705769183919210464462702762407715947258639756893902214858421798801004021184349105401218687608874314630607541984333152382550914426834614796492868067790637241995320160300307241768757614376001248100250019770530280718380197220470248688897838960104795177151302113807398018386009554092030061421509682742720900443131911827939632354371373038124278240077429944829238301573962519184297304230567743531726143684433020302597260918772523941328656807700525292025296506787318431678320793228666201864836638695046968717828218379047520627305031069153493044490246565715255606272071531554549813972203188382744372926452534247661025103374283853185022275544316982433464161855580848761666984272686285376802637294536427318388809052813229769646066705006628504257982710365129900120518080619301098020142152803988592191333776070194144919553444636682118949645025180222737650813696091785357570155722482270153273510083220183635417190820855727768499994083439443726810498655382233783059861959962777583917116203652562761591755520394763806311807373391724343436446820772695565925080275703021519779681101769653314067599879771405388412480571825834222589625291054361271729387669589878040753131362000395057181146938148420127545839688803298275379853286644110309980961696426349117384680286261072185517611102116570855589031045582886172851774971765658535776975292262798405971479700896659250994896324041784199549605286539945973603480808219146533642019739481194350566072086807222929172027092051681780954046152732594405098694778182430395429540012403923515745473252453166799443959420363505864715352498664158047184780282527759803826960350662523451170140230981896582541753332722262382551337594655986974947880498700795636847798271795334646739229444567448844075241760940019110572729258252514918932081237893798033981176444686192623427853630024748355114130962891472098120243977437083067158372376874413262735268459062660627935328201343698000777887474157417928081251280153029117191340323383660882791128175340280359061582723130990326366283231510686974127442372204469550837401783869871862443504388285813778680109603300518983506780527416172938446878320701594131444619260996834137807798907581381178764851006583677134883837451765350825831022288730009921570313219943967482047111711410422169399478205478178399775323980656673881018946510963858889749022460061761133155715042459101553890840810618737789855718708129983670405757061381661318167270566998278751538224460761346729042431300801535261596593230703584283837539730304236693301813043168840418347483080952835693258954476878281291612890524814420085050556560172034113251288656642321994153979293755338633400698294560394745820880379320730632880122046637915700926030998150839414567766725238797995984163781815075173936093525915330749598634112404987792078375457010823899225807166843624224363852766161702685794749177791141168568578936608618413515293095060012868911011322192535294132180221709723464011405982504126680553490823589519031547335077210769877615125631945927806363443086377976469016466245754317105407339690931500168050842583898363602459881824537864939513266727760184685990661465379369073925022778521769585398020637830630131123593923213596150568441462829127089091382083381657003026057366036288322599104366988587017617479006140820373009504928045935052283986325431795000857105275615611318140149542960655873481892546458662237315425589717241665236664920677042982671323936493684225295302367950120867710857041713550892777873815768939672530556177487889337103757830884889542093096772624472020287862143143876916345316977960543143948334203384520461477111796341053942875766534761479458159783331299483164525122254919895303995618210407323693076871411592117844218406581268295083886188232108994229817628926328396457046577187913359633075185713227016274384935722559226919697276016568341534503664862033418923271024544919536507282396452694937402177664028857193640105363785571680988202657616970608941434842678753727363651331638188177735103571215997047002701628853691510810185550278049173183615891749574507447299676149974997543170316795473723503317748451150931353240329923135079027409522335765789282580430101506345067329265091374142198710125898341832937875446588288080066963514975925221246784634613167628539652197352112723824218132212320804156150817361207608335199486233354782791278730245842785712890096070503693800453842814674840492522967709299490292888978006144020938722551867828549456957372463266413139595210632190618830743286333492844473661679279273737112753014493364609610534938173079607642877084060296732169255813543111987240458366078409734424135486345066327878239550146315824370787113290126137631169759744017077204128808576064694519696843764986422896409573262956404460052394174166086824041172092901073731735034551361115552431426523653683879946133014984350775919613665785864593855517728948682502678791632810853391681029813270941361648549684231015400017331715271551088579108713152768280108785536499309267035375092838112503608295692289636304765234843947541268064660372324468620582874992908700659827809156350394081573374102899524383107696712266680207588555674862235948522355335166007000156225683303970369235035076228013177259589816173914628226346482421540398135975147566169237850514248759937795404936395786586025863822977698681601095261904736121302734537264683014644598506169180668271288459505758253844604729416915704537375026766958639951193573834623616793296684779757423939078522146149419985424394216078945433241437272922345642714012761175829135121997720661254039323491359018334506991524340780155525423677934952573418886928399977822324183438000213228364066910144701234776504167313781706918512053364844734104993921664148711607575028484378217343819450021883520500878018823604003370906218552314139699735775554639597004363497541134573336696399140815109613548615446208023443686183194062644041076272587068211555575829115456559054961233455508443138024329991136055184654532002184525076845311243641427259076929852929250663646754994121693453684340060721747336570457636553529002751207471752757787339547469971222060945507898778645623752591445133472273148233416641311794338132012837457808548099602579081298630058325444259527029579518935870020027295961096429535050519790349069620578469507612069262954878484782494782760852814191081657146961422810109416823579804292573479553569243830184505821059368896872202686281074495116702823064112637050182686044572599276593399912952114876946534014878678865654508753027147801551536768127258817281928472885699628260379352817078871793544301363392230089165100291292032916591416179004067077570433423633908248036894899569466953848658159472752324776609266672633743294634020851503268448278668369429225566299475974594704224699508067383338646682163950241683803604913461887143132392308105465548201140125906442162138652178275761519982510858147219542519959168107336679587256876891069800153592142980184596283870032465887446022930278054661755900227724545021927203009652485271682018562588816433119950818909012975268556128537832308844194195748261238670193970843330191447523449997346671855533621135676935796289824200419667264982039667475836808971658080461413229064898351830107077874791310437890960858328170080337695043399383290345614058310579088451068462583822247569324067759872004830308805256287428914756495944887906362646989054807053596509976585170641769930684560497203998598094207497757011690127053768334492020204883490991736479078311863528841064473162620190630150134411594201158187540476917007677574256961883057349800947606044627743408636835525277566151829053724742804587131912725165091865357003557112693982488509622718375016195175296033338599691546317508512855131405130945429374823837504586756864992034886149597303933579008119011672251802103582233992595457821293850392280004090393288798695133274894390710013884833020108417137294087556987250300982728564589243232307267625430082502612522907336763545631460461100058187701504909732820231234782809813823907791720694713249458302657873345531270471097791480491059682810955530012135388648358775100818541091927552928150430338458428083871958463731012619552181351607556563969093979685676417377477066861717389224754478717156150218977411201501527839913901231202446589972505937587878997120771328942192215106875733184462528018178077969275097125757813000043862101789676569204192493623882076386413129912429844849661978090455054239092959175383289006899428870130543848888932763994214907030937333148522506546244086036155322951096828433850872194936464089382002748616795118694878667992210772985385204317026285873601411352993575171264603984287774591895899177228579617415703331194598503144112326240307327066182039119779730459412703981262952661845204112537145759064627203756085666352456096412509491450349426382325796134652216695203909702994545634716563225536222841668599350510118543235805683971273501439552398315765656315374224897875100239626522241571127914945039438853847913321126109257086432460788914412673057889928133495683950512537564854692456167999101379816131209958169389147283888255662365451833974510000339975157990647078268961595774861278001738689375090108299587598330324848855341463726217126051655366489458465855367587274593515132403984307503591419911345797905670721691643517784227439210469617821792056228772719674212436044920150931850346304768756842432419615450542926263024508291524935449969963211229854846492684467054150445760210735773413191056546255787422502211056741272884541622360369645241046907531437608522547486696598009800523134935146860375371283688030273109254613158530401559030262998849135319989353289182099141094568662742228244439522251196907106670335855361822559875804926404776368173409755056175506320046922318084964316272701434371745521162565061423014262388313816718513128830609853378634962177605411728128843637058287676053451622515893169642375099504808771309896412320888743375000652213520510173123707299034668806042156939956167821554212250826165113650008218060819214465507647088276240384244124498437673044354716574010998333421035540673747945109898730054889126504461682965859640714720342194857745141300543156666569743730254241081434877931128232035740739001481980905831473745710122608539139414845884494630123806426591314035381895329512023379895290148343617000274735936904617068285145792197106041263900148879644431660488675538381958226344746939874752447935037860730014040408354872743502020631449162580209665135047947093109552202960532373590267781273243273294885553821387490459644746932797994064914863317604289609756040955853573877971147072671399102200441135272061551404221752891877763041313105279138494739118093373680021225138429921505444743766930781444890994024265336902106946156033218433262034648805229661322964667835111653332155773656103315761285850815305752729852593739689863382113611250299164268638926347269737044919915709675608565119256718136713042532667119126500512810917468608299031716486537181409057382027473613879272068909318825445260399524408682107110256424515724240220214679856143935540720520738512763678727309873718171042875898955876774719660801956804123872649346762287599588816997990184862068440400233647390044079430963668568779538859071472526500218417250107894164067158171940748049979477569528633938759076292038307302505842857379208619948635203723240634595825265628196659878733311895407946174944858452498536232142839266468624638215348008747173462375408811054499831824553623334456624718519594449219400255902765348254290415882746906031401632834446962933582881716495999800092985445484228668468420043902809598208687999864892105922624791739813198399324801268635988409301284155666956598408532998321662632007514681226484170622169774783151064821250551195612473524632602716563168956352009350872636990084064892663662024982456060499195443325260198945354591168820536095864717952446316619433430182222355734533854786986749724304001628457026731583370566070110752504757067864974944227859623842217804018964989854829987282053367460388649323574856311150853257898311859637323551410772561417136359171358458224180565118671935679746433640989717753103000033512706397803647609778619267622176384792581773503376999390539294203393115620516782620098723622869487111256362678355036206733354468801979768190922937393730534763149341166890615289534713772138774590363703184720166286186221867197136934607545346852407114001010509561326091568071610882189867520824048415237300203748228946950973099157762902922035106390649093999597809461712763843060769371807128756588677960552255138678960820109279186356525109094679997463885839123492510990168438228600005422437196135707138665669721839563097447941976576167950369809508751230376788733645440074357866701549723087835664322359532476632683096514655684194452034552839562463973390071970421491436074825725095569279625054497181851335686937150499104406545908803245029198068148423650351415266459459428478260950473851638672608002112587382769083868215746445413309741760375207187085350734726447422965239741635958796392208544968043284386196762892916033544525432000734930705486507059006842620391964490476781863812717189774834806215090809550096882951209341727659147282008339242844770298485981120728748792773078727475829898031035254041413669264162933850268794097138537570117764412169966470290215227697547211322100843320508067035680827275250817587542666110884515098717346026525708140685928257534092718322763129629057262587989042370957418022331432135771439798007691966721035184345324107728391080075649870180078346526934045009241995684253839997983661806959172330073244170521880877271310040496630027695530222420953462041144035051079295971078925037581458482697463530235934285320326228576588241803481589496937665625002973543292921891001426465965714319052991941887943235575188602585817245797910858912738035613467184130927544836136417104363801480198072509825542707846428093545027763128091005896167322794377853069606346289905869872772286579661582336704781756444241607153526337079862850746030102112393984329162674143060938847611953435362807691833865254640262675930729402351584417864138620978698703295172626621597699318957339130132277721478138285107097127999057240592916452911785946783210557629266998058737507992294209082098343835209416608398459787954448661263225113295259635248982431311510198702774333635647423531296016879990113200828916043553897010032325321603615701059951651927470537322174340675086392397177832128921113988483577543680264069268315504622140426112462479876255491051947823133493584926770856296658876053030139794416503581056176377959547394250341089417482266731144151010767077563625780230244766065154211770527565275687338662115140777528910974575288296579160049651758719280500883992511564456260808121789621575991026160474963768246418148789397333699154707818223059793169270345156132450655500572589966810577507898421549347128290909167206792844447007183431339321827006496028756896885966315813416311584714576413543408402385448740120363528062579458708684449002477219573148573568597221355195163476342318656536921686273192962799396517164327811939508530218831045691452953899630137950041534366075811193034002357783077817593028602978369914169082171623968387282808137768058940116521472250499172228629388153657774764264222786842236026275975761285356744160607261260882203393219505215152125776189413730772623925452362219272362217419353744958289939134163424151093415518692196840689177213447970594185139087209917110054197990770056255829187483657620227719831052762394399397775923116925259612158566548815364781012091032415965631006024020493231689862690777466601844652122992578929677995221550812918718143107051672732568810587501942012530136902004855440304542193748718526709647374367231139493430583590071277867043981952229290997440858106170646231272046923371374429550803991191678719557447937112445958722352186614184633941500300637282646602332582386331381830727737595955901899168580723846217387888134163941462221519057232155968294331222385415731715094209114384233280865116336497952844757624136530303635392765169156115054460023335182883980334448647533578716080592059726110574794379449191367175419515203921326152932396460446666068660882225373895198373180548669485871368500184219840324022122692075945739495623223454730682138022674392232777786447117080236795862341858101420864249023360133472403178590037104279431644661251771650235537672723530374806574441872452307611350632739552970194963898907205012884475040418601430828098893973231606837346887611325275687901133338185748815013298847022295723390507927390534447414396087142207126261144532486623639560645308713751008660754019296924449189933785397807741402634202734782678553735318360942431724334591781150528187271959093329472494054246538006186992652195013131084641272322677628359803065318559499186725752478131043494611280032255963003811862195392575472757464991389590991595911194185724889712591379784096249620282101950736963669571466958717440969804089752930423744501100915896093024298304363496318108183610253539456729928613857021944311125450484098644279938373808220640512580302032232393807612447015440485568949571482274581567371173369764310515346589889224392466635916077342408537220753238797649659268250136091541922892377962316544508268930978086402922071618416181310070581178465889223024632487212982254287938365430386686859820184547205778768442829459939278906288940238036777765540503784293601970553958543999179285727186643527046165261494917853740655883405391917917265320154662074112596971040150784106427496262725266551731641675269793884338699831237876658978408820326918565798042430790194875577918424320297485103451148631665797476889194613234589580742290531569205688879532768350339610869653634540306771639214623982938475391966562574860190468992579037906504121115602439310233203416379747369240741390640753082515185660498851124665761342336305533485230842961366958913716396861662311558623706199314795095603889861547045194780340911348189307765969966024046203236106541177855749589719867418928250964806336311478776371234745053004771188634630011116209369450461962954925186316013111647918988788670942890748271090965068988825624920364149424278029471323283331576073514442110392129156328822326492541838532038855819424252424425976887439947143850537962645318956968298430180345633272866461383279213944261920019257526896340024491542654852391276464478805501505276986681230887979697019012742335678651798005849023737411416431364092488024444738480810638313375952444857482097602846007355752798081822086045055068923142591650279772177700275835249064025782096451534070645484573200695652886948581188999034690061862538063886389002789131962807680832366039251426581701793970960268888945242878469437380368598766146547365116172200660428491279419726559652822482446906949443815931994523508584720670164304450737937592955054429194614517993197029491323432401482931091349252591367842074145119738849422572526786919502043758019276411426684296772581917406750819744700016738765154697091082075995058781078513601590430806217656932688446663057675509345027367793648908174199359162150812434940501534930641291019611412983427223623137130607020572616898528274658659390229065990324462947693167314684848374450112668444348028564589736298183532838096840701676487130822449249563298781060135285161059766265649051104640295896179968395547308122797085628192823070403620902707434165122302492086218647929959343785061717973761467357433126801102650731977738909080755084763697675217720776946296349499099048327540066909779697608801049525454893484182962771081226682824102725473296754712960845747566868000023255338082172637765527349211570930431247328984665501303623954889164063627575750587957511157296442678742915817970426985253009064644321760815840210556241696569477394959054029151002360718400771945338542956304268768282304459839686002041779222373858330994921468367105401796763492389659416207052761514912485875087730237581167347659074471544146710691309096964556439239174305328297932699578341865994632155545187725855984355200606249184277273548908839909370053546749854564288955304352107929427993304773694524267350253378625116828639277828839100158788566030545475267043258476129368558927381626168982568178062367984295537338253699974057193709083000715308587468926809396266973136154597369833072313023711011026015114087287913782381991412199898915841041340561219949436965581042265526147678682828986127881231011909095584795035526814651071463282355557020735150295711508882387120043138835983565205729671389243671586114554274825611669740435492882102253549572530135341405134371118960337719672363805109732721656613864241734702606728301716940025835913240736059844303736480781047302405601656552798017491147239797405695217503534727616964734621314355834865406423478790041901347779605181149343181221838886992728023475530636821602747873567945375005442708658537451629332312011721787053177044119408040091261271244532504606833864702305128496784143384918961517216941784599725769758675828260054635739358882388138812651493138958720869059358447819970550453869953040051589085709583784500724666564192470355724319457338078658772773280904339138180964977042014394519686984993485849633992795198562751000214624130703447585142376778127546627421922642629182881155716745235848807939273838048071614594585705124342048417475090673251295911447085684182402461938607789634280081069078343846137433376872113435545356926487286387177307115413963421297249996304789448528614157161119277434229043893152429718584918905748936408775886406901994543982521963088101484007742749919985768817335124734511640411367237059686402532902819361798861504268210746118521030540105617350130694156380187217825507520982779734167952783841382067723392829377000275937242569847585976386116436367803003531796577922961725762126672303877134435921168333305098579040504568363075214756410477432619673220298185830805779355960074980024683213259935064178253793356594570390505649190533746998008619760151963502102545932310626582271594206837085154037968443798099174239754157193365016329712490677238429822988158909887393235647471471988192841054837625354428119293499741966323084992868260559953053983435092987931912727033939046492399183961383339934644077724064573224115618146530134348639971259671675442758308126704324252215838425487793459091527445704766299003258852311048288494936047675462673269252180245485053773288065351639781405147302891175237846703597853355525000663982669463415552532256460144901114854775775509353890789543157661808999964468265353608431817570606880829397726118895361908044313753770583418902422166388539579869779856046469877947097687127277401846010371230393711343169580814009676530082213390369869470638283503514007053861478158644031956621075262584581304848658890377306255277233163292622984701431797652641797041477487750244416268630492727502786185717372597427937112461281627091468229459182098907174091968451634720816929818295229776524385983742560101965939814404692912000281792792988699632099048343790530264882699790692294666958420637410902374305081499729532853081928547623312266485250567325827776900756731552621139609905603018928217851677478208338294314897715710657461800440343787653493616013981658941265706579646349262978258841074476771040473070606447669026443226541956677974929785232833072059461257327512519356662008621008778458991540589274416876973545589580750822395075054115998329845892671292808577361016970431825974934503807768771489970388112991238719875517626428222854489705481182063496493513896577603547840278611453615053192882908614219363053777669796780971712418099801661535849620404053359849905231619112472108270985321584102390797795722210486110383283186995303081160798934683629095658414728445504088726461418719421748906515416347724290598549887999539716349545064879143816789120072874193630314759244345164373481420805648047954161326169139225104950027956451495996902690128720386918155895248145765423939455155361820018939413643212817545453781029512575464473186784947165070068052202578064421400937422850616920126108502903421361395248763191610673870537203564479774916103559962290903820045998320672836509280673598780284488462927354105774338104156550192849344409950253300355935423773132525083156788300980993281687323819455912492939255597674662468336968768073304927293430550964281736185766385987145191083202514769970487464147295226196671808573195067426503854801767733049661244450071176436101610392559000592585562218280778874565957562979257721799637594126935896194401776316897517071246651008716885282323324531439545822179204099475230978854289118996841341125670245251522084282890004131233177618556812154211362224590237994871051473983576312460429417771277848065258528619259315080055120893519375500639890536723063728707677050450814017266725571046217345428243761663991075207591181401123247634010723287198943687003187616604164037798977375883132347419208718530314659583008329372521300096321375293352150901900820161059155775580163383177051464294343029817201852150660986478943465178262103473355803875679516744879839298178764624496726344656465655295133997183602391503178912250187763648811813706846105664365343291409260329497159385052254135978768483342341805828956193380126972514372077294529640601462235817021460358177904755900396534154713829969977003361809135618574587276984518075555964583647197711972603265411138987414376140854679002633625094496674652382345440675412496303994497039470011498487444520053002478865417062462705428998870854288234457747489749712312271724501971410114888049377382635962811170092117868057636249732032043473420646006372022509969433709736150783524115465452727711878923394585289452557555464879471787893531829013853357332540595202962942773060035229789972240046492675159919118888294348423048264655581788533771937276180686879573507255834675648158946321803544305913738080474755053251521962650180678864775887235258461381147497799845248037103877749539202217468640166694716383270977567502412280543496981130750669168486598576242323119715087785425756437986577842653194429006958577470531840003019668119623747255477519044959710993045210198312673631975280132291267074174771217149824460145713979027292069398409671709539634429029431729641042365875476044034629004752679053435171351696864661345477134824497129183379918858883495421058855195517914474540410501955244044747502294978871811622529646151945643703728401573501351398611302240285851196901085582714017920365018165765905358085693311081491084939827765114653831298138889142662963564200910136737564578264676018947054575502342577197795113948054041410447847679797058862110492875672490967271528933824206153429531020040760030891350077753206658809888972872984906098239781888014316600957373679946362006386762548778700368245956814005199173858964717727748304428109679942440920787460515483932204275791922429753788912658883960908192712646255939556340237174859224293030888206785585032815547693880184146227851342226412738354858608434066547815867125720003687868005258317551754117496417922601798798146669456440558163774159425393702331683105430429507168682584603368942108712743001945359565310453440600388619222946688800856983255634349825247937784735623834099116166090416981930586763773665003131930587934689923775193701203126695073344383929563358745081258778476747902446309623744737477228407699063787041523278211813757799366605460443846555153291396994306767287147860517948502955394989556362849679616628628776474999672230267614757023960387276753878847526261210375578458878669670335720775479345946928113164833122120216704360800415964384257674489150873860764113470262876537195242405259963322373876184050358424782063905881100147758034523363120510645180511752035795217130513515748635954793921507802260063535996740697106851491956965200017195712293847857742109805520631959367749500561474411278061017726272741153791517338598393845616667567843012659848767751731038009164683653331821098573896700910956784954419986720989343261944137339559162763022899965014376732443249540573430766631142634165613586871602245007395743934490870598548062625965863413277393800223466522324719127604531383104777183561170991726523030302208505363473080171295515198674983229673986781227405007041023363352579292019464177359799551564994876800667588455461153874226249738318854708868395618794706969510163590707394180374623288227714358668397355533063070470260196438383112370175269387135211583976606384457452418942143142451952125024264027624464723474390849487731789275033163947234490348448111853345753332068850567341992909606145137028987602740396057760963844746534357712410864746770085933088005860400358414610595414703489664480963970969183210411145700318424612036146250716276864898271744314481770763272792114999506693532214192080394726887234562074506697726457564282038686548576721710768180097231773933414740157664648690937539458279029229222721292452953258844368846639475058187271455704710308821531008627805051708277582340313401715484966569346221893720197368713828470417641343962954348447656097899227568483066473119950701393431103388988613749327756694943507997452071715467809778844214886624670165481621721808651485249151420239388546867365198578480079577383635613593908450040326681653488869726951955501462076967934137300955550476934370508371902862667630765810874036498223807198383785450578134254564856128948052977561969361473975576530286461465152204874061225413294380015718519110139212144192703887484884829956889535632839343503185382541819463444817954051713747225734070292675813861054464157989391451321883123973902997031455672271391255421231551818317501453970748690200970370850671573347415760390437165059129685366793956251684876171572005615894345225573469110588034300206763135366627331451588348225644428160757255274330831520252781005677626007356813938732637510617460805458120021797521945068555563500750156476568161424312855376091212293312447457758820851840380441456708070926291810090288022385980964147523792648110341425020974864575093872216391974606589921274218359832221424097981430805564632370020866609295411033737454293863037422115041394125866838982041341574854580409942722340736171698420193864791377586024257050912378036391127313630229772884674732871230309983755930283071539565145948831595873982382535314976786555145575509076679819732126257054598452693008512461582401444689141877075406791487892237305882075716569641814358373680000092964141219752009167226636353051800404321627921280310781299794673967237498118213337257447058405334033240490845538844514621400732199533160588206986295014729620457277220574705140950541767676667007070502997209870665734325452882429206737103251590216113358027068437470263485539471826873172794260534542520707213109861539989470841459545155472080127327047389738846284284376043111963231893244094425344447420995475496472327313516817001059011341385354539317258265281730936277403744829457365773805497983648270347831092662357506553142368623966952052126331959525550267953238267070483984651765759187010035632181031146620703713561436690491899009637452545882620830944300309427786808120919712041378104756308403665551048233417596363454453085951976740241357044964366783968420843720973803337841951944423022318652049235268641288996667794801433136673614197740869242958688531955829859209158449917710019059860341869344342059289603594639501605449919989207489723122939268813461739839511238772132169026514214163646626823451454805136526921908354832775097722192065926748542845079435384464034907211428660470022016007204652893954697957618703340712446823914727267324342185943684370328258889341527090936209700157244332282469066751344479404379523963884194273977061072522362377255806420990343951094891225299781500828083230926461705984269262252037686254925612040308358395793070813842019187745777829455585306128132086868839495533251755072199453082300442820409925267262740547297364464475078482859384030550358901654372007674241517446275821838825660507859614408525057323828064612465249975468419268157885842946718305991133948422325094263239723929791682857767022310801795610337740445818365147626803152632399782447819597920954646860699847854454091046200716617810317154216909178392430355020154824085593112893860427528521574611318777738504646674535301294633499353311204430843745762168159868922300491158434164823282071070442904763869977524602336786022288106691034827449786835520099012914154477592490416968735396333497879746704076689615842503771866600304090187950266266091023416217717340680958555853721480009870823985894774596349554733666725297448594635494890593297393646390236930457267827248894561540099087457121768282318147228415423222606548394418353999981413669644251649649733420274730800743096582892253127206227560553279661229174091610791891198751913867833579105211296129764533779563561616420137826793483871136306630722346228439815227784224217949243770047029761599543588496495485087542120432423315542946439798124695335831966241190329218269964324237859539055255541464306988660919673806310480107110719140731880497595759280438736931738960331439630528380787009615423241265953204749564768495199758919971000326829397536348477699537224776024243903974492709646315018621375723090928136448948843318507805772286562065052600390127034509669522347057904540988565319459025109559489798242849966081118507266655925632692448126050587738989704830922329031394083923428217785939265788736253994799300622321541795567422809473915557216080732464655583181532686686742100515092359516603811273374045571583061864211693855136499876030971674368880118523561362205641756613634446272226475458389465078942411129184654087588140167163871676282659572883807975334257950842412293562416351195539901732966007591866382888000812954610056226830359597719357255168942390149516610992859700728667950983118743252146286717155114938481629226219170640444869808646842614637955020817806085329420156270857851807510609303301997185010753078844848894294824764724326557776648981826717174749076422900112730197735250424451120658823676899850468272401431581291059366755563946147623894321742485931606159816573826637066648056683019198401451846397730174192514362048235666805897162960791929515827614284358696460644158959552052688677286698231104798572863002907897587821369281058428253437946973737762872382373452513227338455094083958697387339734580300911320068426233733560144341902859809271489184029225369296155586968499671794166476179636471969518854104533292914532246452771371449628364932852395267704375598633285024237659140691228268880390976589241560411513209128884736459611060543742596810202222059578723929357944970484084293124163826314554443939255805323013178959464851702973552623483815467832973630636230944000902612998737551584189866620591873345499931881276675601615074877824487803212993167767548069643302795261308173323468845646151335316567329928100138519978541545233381608152806049474337074922843102268314975671105159560012968210828551605879357779365100089546397812942905221335275646299631851155325993347484128219735285323530960176979421274153370832702539288490622508310942860214593300539362145766484719878033576880735359369163443765267295786589039734818626874868450983748465065283409067085442766287271847687717767568051982280781129936569847520617897286391381279195961560710057609923236442606778635635018645655265066770287917784076280870659862881106349820025108325323414863745588501298769948209506234255705952709851286530412202128047102524603151641357707164211125019550414917185115111103737589188051225706183868002047632755944562852713590341093051920488149452594681823864189403268542532979841048054242929639344644072903236083197649688564306419358044832638938836683075587909936849886425832988686583218622501977698349638549392473882827129583610288304739776537592282238026778313928283305154980768810793743270625533815783116170827327033860989873526146769565850198844762372709927161303079906902880136979121558116982895459643487947125261147387106822429341687025818105555792903279320422567916957203602934515181003119398928003725646110256400785388030239088437338071933810665359961587558459315037983584471112414951254347440126917583806123659175054959762990818259420888927597187321020928872151277483291942238293329270376680821477929730112147662465530672520957928004587448371773380596200023793721795943553403153429259600472369594360634394804959566727521307901749640240055990401868245011922344840831553120323176869485639201555051722504040058105417932985521999126067339333260617668378291268614350214423955513349958522373538597002101556939196856959490219780727394606430398778527502857306671222637408009468997950552942977120181928911557909626978001632231231094038960052050148659105564781290995509145945044465286678537249379852767287614424198478361744412654628303977706636197995334885069142014272824055987328681785382161566000426116452525325809134557517635133963990790128424731604319234187241491281927546020599518360192219651187017898821050314899509370522351092000090359239468226429965304680460421556485312650106031027139847575457368760962204241415715147302012985301038565096743421947444497708880808321141154188684211654380245613299788840276638173580624731321647846193256745775929163233238745182154251482350120963720218565486313115965264924477941110749696686346648602901028673813932603452435803800692334930005183798254358431690022918577176999245023058460735199611575238256887964973632714215313596527239708584606188705215641289410733534134161431655674580039168359000658485550780119895177991811033106824011593900493958754859316289397438819697628264484479626630639836864634003960439606130858427430304205611308368645007775117063964301200976562069212305808976804344299293706513804108087208433057517199739304285164013913561987982801521428666035327314137328026245119703734997448071221825539240375267815276484305252805037214350891653257149524133318315533137675658022300587223809295541114747453550314257155502732629411480279075011701766863249178695099360945222244386069290234355965951208535973668826504365032171539766064035296321287559230207937947827608592733881023780601175722690748654124502672954403863467286274399090996624852780459063469931504589586273257312697024463765335267023498009718068474597167190318908457648293442081455396676237102234686356590454020864878894218845478052541498199308942116259268279912144081930034234436846596533904611343614402672225742663985608491208270227742481399463845191368466015191261119150353984213260387744721596940323632547912958617331111817743862605435058716290595487040622439774840309591317446591310554029544188290537397233578261123791459654114708187807764360411433593202699779032611048393415736903650911936894545511112110466955769245720477473141582138094639389701107073217402803422151660149311723356232421617926330205360064850031228042229834085096227502957571280249057874147457230306288285001907350624335474971088466173064110041364146200379585679929933498807069126377561951140583633263189898647128839450100686432287359376122569493795460590362706392235995377272855665780667659308694599944806454955242317566637595830895128955733449926714730316384208476469015176311727548740088956164871920188659443661235378987079510665133880605052954959761387304385749897720921227027048702740175055826710140673983723843194440464194175964524943940017257079694518588884973094541846312920292489373981081555247096511465556345361779378650833321032310096209570981972288194508735656476307056861927749789348282342060473882413822403954418936780100813624436937312803572416878505477519997964821273617358040472951177236329495761322247663714793247415983495301972231132448417263210133647970711579581231247475871749391316448612926512242029568755488941456076959799542443592166783874838166158489832421883459519516727872460981458993666079371257646223993726953884261740794133948916167513646293164483962583130102228523064924303201196215433875822261705472699954160787371012119105329417018530706872572618056044674549656466995292098655694872873219256259620595207308218678702954348599037629793187695565641122129090676202651788907642640902207369626262266555295762719697608347114789913670357328965581967312414974804731985545070227919020868780097513581560598736030601132964417317879013282689810213527052558327899160506857056161730189607545578267297235593027540871016621302785183883587165587172042774554332944323871935984239100579224636028160279405025706286652456510807089705974909534964321445202447090953929167437125384700267556346156783871853636050113730809055659589439016566803238684050656898868252134413026549285415713308566981457283429916581672108830156553361137306050097324458208503348945148665406115169164918283860554288358946910431342756292404454676418286038341287306188236502804589660448892925085358991137063161340508464519464020302760016397793108948877993501704808696547586796426167732358166844371600226182020801120602767012325762240327870210008318954590303271423980574482663602101089074397079427104405435911738768687402383244466419660077658316694472765658379384073428873372104245554801884293190542748215715988237865565481387209751707059226734415340327640459866063452607553772118972388468667880181116114251950280352604325482249365638462926088427212228920770395966000113805296869266163392177717520464629707333794815701791793127464869545454050746335805879147306781640571684892435938362168672193827559754209434321962383133064807195177412439323971952048735868025334025054574036824760634170290445497365176658605513711027738588382103473726315573997433732175999573506508592587534943159235721861203399600942286088936872377818685923210897923461311796994800335101996616799764129721436800004803369182449169765712192616865546226198609922155997940281184114524188997322046715578366563942182966823432612280986216748604035513818159717238559411191124499378831914101190441598937499626020346111870873027609898318182679840886010271762483732932372374704607101572130317011682871416869386717968495000110474338378340028128918535513839352159282702546379773084607015549924678083534942176440129747598858464676358625433558099792165260685696584529591243019931019283708245811740941282018624658755345475391517176387403535810293983231041438580814990278359687600647349620650845944961142000732830410098189035919764552155510931664858709014219881400387497395867060097711149874826438861084748357327756629236411009807940404297044559245273715910997345864521663298836197233189556256978213570537849091373024110758576578425444382414760446456405936492803827532241015610578065398478458471053716825930083339380095609938078264447215398973538167338902882417941544579610561716721160171666571182530767232032394313455383147642327159557276761254968435692796403529419771629767205973562132419226183819416209798960091793169453589593759981253384099849261849736736590237895969313769531240028642704131849865771321562387295348463427912566012102824726443177751334137262987452184246459654949675312467623293536751147879493802732668102836033399285145787947088005711246725016123724950036434274209849124120994287500924703018181664065756572642396205188404788716402398863999030497842311191765529607398061333545604359400177399369231788083596925912836512750528272525294370140882236887708008007776712749327708736251440143692501947588099907337066317465052614385678963998291762121896988604766972459814013928394133200580317704561871322036520986938321980649460689804974625285854998520015338713846773988459406910140763708736956663993716748094649138088515994080926708506315801444712324956320394133300838654370795713875420728296308708416446239591920155129656599848706583048841407000729364038410852968921682922295914652971644809965881582600794379826944001064671083858134509791414955051931750086464825217773922512958126115440641715004052329231176848141417318402020737567949564679017520784936264875040060864004298440175253690825160740834094019668855697599640924999549328236773398446741120252377280183607848695487333631451010450231360269163657708777607762935951477799493700092334726768243280956363852828318247419129065197803782558196234949718213244838857245559202298029314518213319761255617725299991651837374497009443382120527522585117278114857526671117125666551492360210116434742917978762244219568371293065993680779041639265712180022236577510018383558769098381557265713277147404530600153970629463332687681448830610735995711087802474411306596034628381509221362217474942586415517404508098276372255299974322266460488788611638862737312305092205060734260206068053669150591885837039676847467703725657232540229344263018690096823404839659000570505878539938902543905899912999572040916095905345730999889717364796216367576542269241460243337605822539592989275231704863643518118479543906282609566259541993705898453060724291753267309008873650010265294869072050317094209762480175214207561760806633044289132310363091433146164166921450158426877274172098525435425173271071586241024725261866730745861457484409397743269522693723086161663101587050256604541754453061300257627126132586584745631408763226166837864292080666253438240329374028593281768622619152795512965840258122774085496831245290897617288843297122841999883584766530914342304240393223708117508075668964106208894592425370770737955926026485385302486665722100308596492565543220279396886476565411996530745274021111841207183746301806042138559800273471818608832913604306151585944465361650387527392886003497742463262295015547269931185946127612932896970723310692893218663645497595830109043974528220949251904073243373811932026463591388682225646845834918884293839780511223323287857723748161820874062739991136088395240638889899033964313643493976935518272541900008527136481457148836352546534080414740317312155083713913035941216077139130864183929816262001256105387420386383162828444435054117016808767854767947402802616025377042261686791143496080204493692748319279467743110586042174975443575051706325395897658129202577006814329677166870709946827197469105258117279298978712246331853487044451175192206205401211037176742197428450764900673599913802360815296920223150457364774942743837161482242870594485741764964061580544486298729929996146799848134804990780177251518631057210311324349758690006932982873876853733855150251477575107944424232187652987397293189555594892789410140800931944081699187029603423857911821195490812737931797567087861634326784008342185726502917452231553553032819602884787929980234418403548024353381916466292359514031310501720250518900493679883914430566217665480630555434792946997953822617859520005489849060843274252794963397944643562209092617059783123881616412825872723733298836077877690688689113147998432845530385001144007900930369744701152660430238838920717831866028566639122822638335448365859617080082460658695621623124988903072075152313761527528093571180356769462231540552564828975794705354364379254412303828556696496244291229441925455122387348257156554481125171520274995911986844032329868614102417376182966776824367990776051775383608721462499864163135852178474360571220477917792420439869508310690288164908875334599196936282433121481432726102451069907882052623432773253068256371811205150708196815195661483125784879752056351778572757408377870742705015050596996857318000132232210832156996103750330376899130985057935730705981698187231240526894446175918386130316275991334517559610161157271811147459834664498765070671796578623719149039951587528614563667239749058539469480498060998713364512817613772879736690142316875769696745068228106493587181630032107871545554886687418515866022345820332914089369220572801340993967052688834614855987765654964047449387209142061830092263578262333819625473429109374905242264147996783741560772614364122269487849636468119878142604432383212470450447169689767370767578962619714022199519007727211682121370954939505383268894125346327185050971903135032460368531253452646697431046168754644972138842343529005726706792442317320108807458061914112727543348055593211264624507775422295388306467779192994782042492395019321871979157783329636289884193945273466556482242461555440864840952558170296321122948664294721614799751596644241603896015838093966313211555876168217462645309067932703978926431774999971236101966997276232647300108205072163101043034064298274579976299157113384969356682782041914763013808272234278022202911311622159031647992199576691913153865888847443519826259357633202859329370740192204284801376722458851843950034862792330257679124091618501170842107689579063836525125226610664535713515778025223652984255798658472488892737328993535141438820498683977149679052777068871475427020395368702825140187655384669289558988522802540901914152403395850598059701795773685109099688771237770487460708488216272405223109686733436923576961482223574470998414732906664198646839708644434190452120616798421233276693064294857769610507454872939961948601139295386047043215194728653588083740461669488312475872778312883748884273082165870560136987562872333160154064173400995887479904378689939452094498794512557385492722740740877017450286211096819035518385887231408139270479233333643367610160858850243398950272506634999364786881883239864660940395778755415654805824869127674285713553474343824330780464467481061970864970429049295716993055966595396528414930185712278404527569883879279646341645179233567874163673204088431968523215919757630044743162655161918404651712259987612667134588702974303214561327601802247925394731420301494364672742764350186758843986409356648623039147517832085023395557486398550969324494379255151158865717394361060523968358752685471747704166128750724447341269283224037042467549615175109173082187513063875828657541805691761077439686863566061267797070786813826039050052978131056978636480638550637300244613404563260021302423181676028181869295149875895738193724907673672884518756616050415352972120831453161132488917383207409166132168289469259323361180002736719542183599106384484953363021249512407777282021419582874039197963869748111754449127341893700836888923395824677747918005420765109000902429790932720514881199699595716591322004641257329122671970715500009870323859527208345241909019867825001076150205171344090769873063239386886066266159735628146715618690593404592565262535325347387610306065901965598215490552582533918771091751485709749828469698819802760342149592387918481511224576706609362402111379766213196476924720341465201121388505962215420335076663940489581433621408123018812732269180771626214704688946232112663202929105774641364257670865491763897430752435866449011266774013754369236828098556677248938434373801449406025721425910839590523058707980120370370648589993392528844505826262948810295522688121151288029754334898409888623901365185776398492479738470557639580466018919848052156605934018158046972340654672753153816613887706695088602815778336626405857239680197952541935982104260454557598373648212989399321818220943140419148052116769367957031618253894749976956237856528103652820679842793212102688391394618194348218479129325760618482528209781485135165038810279339423077858552910908220494731899978772688884613355423482681577687203426410636741452486602336304993526265339566503736372501615077183333892710830861399021669201092160670247403966136038091675603190921270030305029933088024860903738355471195822604199595424758198388966265806467429174165563590400823404104993538453152553806132087247272980439695750528472665143173958682112100317526496571359231981694234654708163223866580131372062096052207678522054013461213643322629180824409170824577722798307292433730354214662272267465526354518795003921426809377915582630126876170232548466195601527306313940289769920867988016632766177950442526865287213516512026806547529949714308330921957826865196967399868805367510197619294223885292741757897714709144643964408887422873996770299811097410676205156796224265225810607283567812814328276986056879745131929540785624491977134195230060827186055677619730850408153793948454889858267135229728782470293422094405536938037282599550968524162292024308429852450690999114170466574621877489134654512163254584295976745241443312471838690681650234009532869070486503188745824269349791465600273453125457363984633068620618243392823971443778402436048233892972975085184787815229298170177229109061634921610784937323074284570331067379348761739965757463389256659226482910826020538191397246463201857288453491461657141541625675989558367332004472643391077662252813671523379602931271964454079967420593842908531228640399729612631579354112097979541922954633364475065869842385672470468019846013838415309216867932555743105390620246712703766199366747388714550321720110461553260626368264929956655037648341188754464889208959160563647502908606131661652045536497694678804780602762894504815719745862245603090321785268534507877704710206917468811494900421529557600582024431484497105398782468483841569612256905625039527265662079477528207980250036756410240477343556922344406304868541707043081886024311829415607719896733448021742051164033839042545672482300627685545393858145353333006391047177953275803477761106331236186082164554860330321550223633717081191481522800861603572828007106835309244738711687716426194421316483604107308238186570711349875241223762729195974391176853847322115196749912511155512810146147702383903610287278164054553108168591716436015930937849360234270661874130216525982795835340842218189963501256132743342279540687621996051483099949126306111942016254529919487982026965153486672524997283750784339630381047097823036778327530452359819498169514506752488923619450209521784545501173866333148424271348911357305809628249819249924654497945046439405927610809645707605687761474252147348811339461608825277124046858688346727759676179736238119538019763152404055787425993220303510095832590088511595526513597733654583217272949349510214936503565148848562584028483592737678300687518333824695742324261662142144146166620654068892199934704141188899621638177458650065063365542164531313710650591280514202175337292244389107622552477417264453810219226368679593793973901639775821116593978848322400681857532488473731461434023977228297186325773825143947811554327308655067766755994771722246272189941139850982048999386951180021351071254210709896668326062112911971833825009314415348862602278753857059115471750380565089372386949145187809519846299123834458697995539040940905335659624783338931108455071462745072416574460928454516127314417907536521327611040895095040417616604999124766404994457419431202772739275655137536130137490961608713985769766523090872527600185403189073031497710255107482181249753037925671345745865152237275910279159128937392869522083013979152384319204625128170201195076355575728716643169924506578557756621817996037229455578651686587527951585258828791881846949192960365220748148153010100185395933259229041009593239564151620343739606297209534994457544895220720846141504443064555420922225590500928145031708634139616742482242918937236436810929974921776906742062318490509421105776766112914129139763636378080947446682742232037491920514828313549420799700081409145992418703045520868654554093312981831015558695738353823594375433702369395622638116071453883085735410370200135789346050899091884263582588960240422677294995646328209078845358867726016153504561712822133783258859486774694960003201084915971237297785422848009925903776416638167214830262376657879186280319551660156765413599329855304876239620927963382157942346051298385241899432376581163957246238805509877883155633661359213517719434903964531803327317586229138125422340604811412568136088978956920292629192459332331245183823158504180323237427504800807995312651286037592607611104120437808228117347058270032821706227337597449222720678151047733948823957393424651618229857429259155997520151343640399272233530857459621593846278070567271109253655822011964439541964698446623207347146344671033781157396088568357875154610023910050469342006594275996746936831004642218290433213603125941320886471676728725388090842981580341761683965229785744986687808339568491717607229066441575952114479035498990058112052796293012810714383381338023055699631824565492687248247454578677248274731313579201939596960163159155458777361245889293831815616732307135299050095943615592040833105334384042343946838966389331899384813472900368961880976550977325959825892922119173508547112128078719522944607972472268099936752914954729235866279192519267750598651857290873184440762127586327339413613947063633076985526701661465341541958887266161272025453125821391008392048505949959155867505729502412888238676691137315489081602205433333142681861047246921736135012985807439364196804726611331198031852311076630511801561917895407746176691448104436306614740043433797715563141634898061151075036083815462139993624111653093302079247514140635440361831412576307875631106986755012159905199901501377422639164980899163486669368723532285406525923653263870924727511899193034220990992934347136518454036831750832194083762899706475753209081979350854579174036872229833566028552563291464952868792850834204714109160589323347095070824472551862183625408943613803890315022424904013295274360669170991628111933930018007632787560852909746514936464721997450995341498594835758199984841688843001946262473131880660946948140647698676971344463711454705449661589871809412843391419779919765587416933346274428919176773985333273381974355060684399747450145801510233692515324215572373613053866074786503445970938149256200332076938871160331846734972047862226302881488165691671779237499251270175440802718945291253669780742005168943870129816360092683687841091424599362521392805926427710174390376342434967816510811136663042964316065244732962645435280507567624081552863700113971865352484940128208663275815425148084042293624889386749200293793385790438561768213630833361203901902554178196456676821951168485645940456452067448218390778050961710731627301004046966173984713201305746082582221795155059437979217120640171975786769288799505989790171039006313589742495723891044205810748935265059997412395295703488259781822341035710892757765566817186845647616319513872331126190293255533219344133734555708275100489110384394367660796365252488134210337159913984137150972768058182347757705513084467548146195221291629019236187941188132216242677896795979459449468425980365311744971447501520381493913967647694644653026153343986297456011978108152828441791966580490341844046524657581772245402218023820968717603881151252731134282087747356650623555109514389237550129860349578028876511826733959136521072502546796563488945520518770466782820344686824576719982693771703462998549832288139711275185948192259927188897102312745859771830352710127336744148766962764480143179522869554729404237796678983598936073763201168862119421191087755408473316766628052779809114999433096752443174726800078988413483004456704565296603055569006210794232297932157477528837116851798221348826041798218287390039089473167957828120833875249976218215230617068411615282841840753010010217987297491101741184286552646701657202262055760072547261207596467145190641638122748006079378098175092598036348938467983851565676850419111852959753326616378049770955717312910271087685412382071745269114513781865574150744892244594552503491863341506254933156221623750038838366364382258579011248794036150769707872920612592474900451363202036771139841020642509198642938595799650618106326996514531597016493096241629570219535646650606339868635469060687507185680467970683905699259913489317000191287503605337825206702860292610849778561019546605884009070980383395829626390592143959227710816054604247128184790761914166116876498042443297944383700678317876970997427243549715425243185009132484830767409393695605549618975784140970599332116057240991238252876082241794631119150260817415352645851229533170764641269355602213003100381923211803349974873047348158229865303997641324937375176680421158991436915602039597284277776465185575309042970315486222734676291055654706889109731162403486446341438464856738877785926844833529973866259552311799881412949340650077590355298021972843478774697285935703641135412942723394485788270384999195340623292327350612857140463076679329485516967930094997814357146898608636635555414086536430390750594549751654237863527287322649834452531555614588755560404975607303272191196733565021533173870810542418372757038412578601218394107318015642276444925719534405099244714469709702743614888230341441931725147452776512502447792314201976666160814282893665743347417803162514779313824886762557306777732545609873950098091899321198471557796627661739533806657129162167219526336018418201865120553873410449359697360211149496379493008305944006301639128024582501244409436301539091353666919384245400855474956524937736435931659588097729581135992553861449091026122346550779848146795026336737605114434760027164010825677906525195670519225201819477657020612762454814160507072988483814182029895499198688165298688662853736999416532601174932239312294486233927326063830043797256150094112659701511278803020617390675380397349271480404487515464839085569595722149751929443141490209406061215888549121369228092354843921283662363753549850764444212079070464162066734498901564618021242122960078978133145371273688939755596903576568190914621335252995431519439270787792580852700620060392801213028427681845946135303035756658344056607185484784146327240950726400756335902019737461625933346774723324771477396768063477280493228908419937957166685603576691375428623438747773354578708680495030058862925016400583356540841418154549790128575057213416847761400005993185346607459914973996796020906417116913207914548515751519361738838643459859023552943075426234922057312694526154395238699135236433597913723669153961515197904804671432678763692062315671635747822887498446431217580527528159596790600307035446369047538764851878890843595314289140291505489102728220085561684914504457021700200347778614462662955038904913246369667135748091073277499555571608794085002377477027807292455226925293929722458247783346832559030441320929212139796556790133972333662043819754752452403208446365733040607945585152761589082512435208487913614122771877061159055565856814252772171125255585234476248688624116431740921318704017272188783657294809313989896574101986772392358995652947526601907150725904066529767793922016400841930833266024382382891056282309911527189172892394929535695474561615640088335840172787600576548720694486479854720797765289202467591394255709275893583436054903029414285832444293550808418795717874110789204083412246602017838813009291614298570160155784533186172492361115894660426700988384298890498697374941301432321181893166977851862498932162210246882103672482565436403894889706468858196127076074732644334496455080240167085224240607964720028076392805347953044415075805858259608590975090100462259340411675746794108106270864826759941775883353247015513036994409471760083760938374970929907567738760759579827930499880603729616313090848755291320621651442394040000260003954052325331871256457683152475834694024435307665154236365136324705828485857170095093740720349153552179659019110022015461655973828520064733263413244342468750829033586464205334998173544813936923913850464098593253809375007161664549960495015189102138868163920585620256042814697489455123559085458175512207793341389612371324847475547679832042858509828666075202479272588509657370265682551924324159668202265234394409920736075473005136402646649397097006406127151520985504912089589279431835592923899170878861056472524715269573987913041076053480253809405214183666750406241878627880508710629922274817810464217365998047365256243200875733652756486738107476552821088324000366657640625136396615543404406339645277303430425754203059348330026442133627085214456477729241585274463136268645980381692486646852212188955997610488732641690103882444557381577540154656334728494614788347845338663418745934743802967352750053475067576609077145268000616896613826417944463700976882463498356049862682356901690422430209555875003949782486426759687554528513381147631491854298243308020189388269773039650244653369177662655248779469064301035220516387382712697224581305844098132891476705157149843547374105870654731550493220428230278217057403839201564919815412462284868566293941230376801619184824708975469484539585740180406340123684642544685321689379847774323987234397691271254993034742737350876879067780389768500679044755473208827469171607782547944384846417584365503390882820552952229541757854384893174491610531314024187410185743546783547689337276495937087146999088081786195474645040809212109759105441971241139780651393526489597157273766521966872485242593496107434475647080713223585207681146620718478564009952707748798998156096942848404323087482821722619903461923235154259496469644872830781794963709112162106281632266469804834923272787559428997085727571167348173254418775521327704896315549458727050428273465008494848291188175953390383538540873458837351674690801482533607191081366019079058186152426872712440097707429868776631079830457250791246450365179478833614905128163901139651590592558922193905700056661042838751233076193715623018170191853645103698221866457211648938853879807189093837011514077680139673850274927574916441547139531829426371164991419506842863227796573820605838993290043126803055663409228868641429143112894152342008098926217670275526711909652467352347570243920508665817256148582660144458677870919534785665059954648888409209340573258727227285578067127647184004736173268062298084309185704217571696220070572706813073908455454761527725032343528922960569364955167723422392930570267157460331691444561640846194614162620882587743545429721866126782910105675919771337617996373528802947244343971671645050574210848979489851928223553028015601806879575199799719179239025612912816996533466783076017711442992006276865062554322366142417033532930173838149072870172903414833385027741541490448463115836885772466721165662952058172552371760074497147295193296656258706185902794911228824577296278080499112614519799640836949009605431278034379164065229150666384386177473698005427690489527436982559237370968198882987220131993281601056929209627536737324655637906433556617715859171551521166634590264278231346877708909900628155314167742005151307475842348263334874068819611299000945565631907620976393089613132544238868121336177977014047081269002730773812448134042389234288102493233188064054486238659324173217548924849754018206755473467133265529241324676974269784018096542241721737383677520363480119820153692269470282082975136047859260432452397274606998050751569608037259180791769082056700887482412254704243624916334063305336954927792413282696800418165205450893243242188478260545052017881482216317832636447245640923139703193917203413514376956711972086376812480277112267799787001146878854400236989077093816478565029580993230431886592137011228256002136218417018091519483702500672452205315345963366151478120084941887384196562387116769657257547126633572756013774392862250479085498893054671808323048405359966005084475721905496221981465727839123524816123806672525774447120594737421646132372037032803457201008491524541981886737429113732045571735924907758165478386443602192487385527382103450674433743519870523734880244156666331282422927818920307371428254469666706171611710039357001375120877444730943071189022951841068866618484991937848913756607169500495263287784314364275438760254476449166843165254951252699674773495477711969554837392776959016164964639331442367345709765417936304969083729196496760264068615102511040024726942047367632491936946465274865451637987168246640142370406906554665353535237440514318911869101303578695945512766505410368009429462932805544380177310693936894105867451907313044737534321197437675016037956791503404188355945265401733272632840535698742166333992461207814233895790395765098652581040091631764062057894656740551277822157314780405104319349416162137211314940707329659703821429862637841571986308668969890983492091322168087602026482644226816083574668257827420226754129903046136803088193886236818235172673804544611054763664386575328264459577829049007664744173269545326777871166617778073956149681725288918798931796157534175717341899884046939514184628786760438546655580043861273365279949162129805596812056336819116322025476137032961841263535564988444857506673417724766620408839803795814477830824264174358275926433749244603720812134307626514898354008751810518796076586632692364278855762864010434445760764695188274822857934698900623037417577886969622682037390009105017971826341100787749466022382206512418990263525688015699624383270732600141249290089651698580396818990298476727353744827466908555808574131869216081662273371010063218476599338247667247693413262273596070024542037438809830456751321294772427967415340012503386296690248063160043829012665177882828580551434234077367722845620745281171312838641254677608571199717864375572640509204564424704037683712218300693080204795438642742419800717488561458631221233719605756054652789485317182280187773617521534634487772723382665069643635213304054982767893317216476576151452366444052596110334409431064310955412708451856982658241703280131293027391160234540194198340393906606986073280733848240874379729264833908522609764512409547432848331559115432716027939184110797902263211527066454958458652775182412849979582733472091151644088097395188691895835125099772443302508140291450891244746113851622346696601386869061212306221306376518608448326775418151681953373318153509939997559739522481566743385869042008510272481404649237633828910673973689714295463180933849874904033391068754412104376039169330011608147214348541426658361055047986135734291244209989970337549962496792896875318845926038221263380707914188970732138409239641673844358320350301999811916060044545180758730588652919741290577163906948019262979518017339436598281740706993829116127100797183754007947769834466015697778923102440155233730605648319675798998966863222833393891820049751520623153774967568646316541586246929141555714477519971130068132875853923043830588159002858205826932545587185271142508713027430016704242658689131175523414605633716557121792291771135842347243615423935700967737066603326196694219921664260008497953639940465390161742210940857841239336933631824441418906166643426710229400693902784662038082520911141783087685805953715921171077873555180310237321955213496742750616415620799385106633579641587236516745791199288509542439734767679976203018232587384181869706102230438352345438759908850394185978421411833988074254353454597161077415617307442485317312467699629404142956015107380160845410163970289079505416490069468828597647617573775867416684872197788282020509360266954292916981766661571185256629525369509341184705343432262317053082382900943853034203626039076429920162669443835921165366610800828002885560280562479790264670604930935781103563440466845677024355141778327099990860800972137718285868048550107959354425492386403118916692205515320983217278481193020341827717257433084046266613694199577023489330020332217954113919429617151686019851733752074723270016045875872887280861587378505325113843236186207753416419413918789338697832027024221663384828960473167120290579270868686740004170664178084099870979225990067675177519627420063451810995029720927619049215461088488160509863464920166936257052159386069491868612550526970674799767776783333863732995481178737266254223012563069848192904204936624292720495949781227487206329047622031696290682743488558816585875109026499050354892502819897718376207669562606327243904855837418728621519377621502744493104289262325482542401020397252978407376314499250631503154095928950160567684114400990218872427861577056386351164631722657938664247858152165002241561231201649390049403559298893294414579840062234747719590649407860750000036306621377390656708468934456759561240965165180896731705108143572671862626846876009531649124013084364032110254019024666835431149622760380621921024312129199716857107272388826274422245191736945747373564164676637548778316019358768545227275844575358599925653952487704633736055180932819646745616894673271594449501842017074122299736341843871947257968395664443006262301636813246284283229802741819301305378203430829971045313938432275231292931717455065382693975865362902657645722506235200105654975954798261229056823327617901998783798308034055663199624066698951673241806016655294475444429145621486595404390437061993931657136740637738481802498725912041533317417087801453635800041788247595161234728665031912858336910992248702802808662519761991670162923252817703750134851097736288068646332410230213070081920920763938991753857221911048269109381676344268007966021427971239578342055172068012415600212188004812682771895893719332984386519435842639166972473043102575200038060206576760939099636307096567236957642844137145567285319509869814335321214443687944772315939010006273078839422145401471640916045453720667938606006262472751825068363905051107287053004693052730212940825050676552023759719116532007612956687124714509776037671928938669187508349824871155917023220138759862240395850109915519223165111567462084017145397844285502562376989570647900505729636245512743270710829009666962783309060103269035930090683170798555749447602870397311695147886724291024234017374358961556474250913480490021275548928664023509099772519835015263150019321539291479149031777440961154352203127994125336008054655085321653071720408758002303950796176280628762652551317798794035976187012517904697138945904519807633886680256224370634618599504878737203659194106808216360456709640063506965247537709859833369019772877180075851487914358174882450771833475677692571527383745468199930400517950118532380565702113432221809246312888925173140695443079557784323367871359742734829454577867299647493441344620518195525549755257735017584291561314393349341687203685935710804423114686008028694717299209740366519228487373213197068645790069623586484905445684552822166695313001744523500193704069616290450798126924400411024017876244937661278538474125041199909282457733430582731782996530305454376354286766356060145812748151825585769655615001982652367169619297548403663776312352771072420012457935245677856817774028171501331189747615084147413491007767068985461952250979509660421100739445221090820169361021780655444828797649862994808982274624837339857565980293375446758912069569529615003262422148940766689788868209092089148735494343079878732736440630155701262226086631649053745451029220452261451482391482000403749426854051639205548956962414117288929050438248863190309311322505829058829459808795913581863148876206595907050416842234769582093542921015560420586083150356866783872109481958927847937743159638786041874498074371877105297709922876514871246672818656916614715741805729218183158146241526946456390005081570062600629503384748156927786440494342428037488812746789554880860573178762164578457923130990841257976889620810082466757581931152307653051108285968637832758763022440341610265630287284580890100220965410301219740201966141136455254618003750921771899720211591547720202734878786422069578113283688879271775430929557502596672472209144097369276733437698586495427080791360939496721805581566755820658830858052699814879020832789792870249736031172379616736667976057227362139332846544759155819240094176013076599528495950520935431243251010197250071172971858206120601028947794137112629342580302945590729454752267581059543047573125586883228845061358721026287064029108064052243280364275415499149063014559672631730118463242999982419120007306031185700395536301576867435772445559440766915092894178466259547732262141287438685219852348239464653271374459329489249382553028418852377055649260366910112858084530702792583554247109893062855080155521180827590479186938784345687418493200269418402393038237034802129686725784740123597587837383263264310291356833391005606625357835546700156300052985137908568347010520971240122060739819590184067400527906202638793747437409088978696823796469107643724049232615649045285652068167745923227492308151720094917461222430053645455344801512549704660929648170885539079803961341549562037937466688648445084627495830730793839406475965562836782573901321032712155704658890513761302751039992623957946802576579800559745614321894334947703003238210598164307346242633766534087783798029470282430152092197417878174534165486028386774593591683121646042461573449759892060530529995558794586003528530939518516895261778119037838698339017522357905807334702340341530414739795559479671628569190462160019436204353523719884220706835892569153191460022018193075818280466425271252408814435619956240954507804991329884916989636646426740943928173457753138229709393500535547137157222164864923463527384678437546094324247316578162157999575742110419828155386365171972040583383423864215379054763903236637059822529000689372528302571665540741807508667485615227360011330491995610408283772026646390150881603242015944680200371685949919821311800262702090348667229445405757434570646506663334958856338861744253657025457390032770338909793113437639811650760314597257791343212286308927540199506990847404359057756190249737405009269048855121121659359853504667714618489965542528395907142300365059076175417881274980634394385426326725083448224483154002940245498711799684959673213132157783914914861845735350369535355859556017350169472763387222090545147881528218698752826868347628025714032022278106418325765521778868747239735590425154552085197704326070026985633315387771034418470430291520303229596532899423008852213765870482849784222640783291643222302614828910471458019160874905752168312809424081609239904148513100789082734645926468675178026284313709801020632939317180110900936873957364937239061589217480031030491887100342084784956560470318720757140851200130205512233286785406566404702837836606429540145809020525356186266417507704816339386469916518033187620958959050914807294558009642317322986810151424871710071291505489543611464255997096883033099552978585026542898842622105004270901910904778032534108854378765309237109435692648016219438455947215375465974776086728910881556587987205204041513226217121401510266850667098834504894355394920179444032652306753088225428986417727880870783710524461907290322453330516916069648946530741022438344123731497812303048613899636015739162609361815572199590335621866972911557655074130144035341010693678031685549468229123467765993107960285082732411341987324795968209888663133034676322727497447500732659648164467614361212862793532304094488478061230614899701584559555013156777203404649439950778731954187819257002157633344563129180485988430204385531597054607215704164881476809119660110201533918313200448339276242175501336804323665355415402910853561111195465548685987040461869039804254767547730844464255248306148575022046021953868091633924248938490021109125236045094561316373386367632618645137844012200341975322352625914515504489566694572958164637710752001961163521855805397247026319652728773340739335310781377119121917742481333663509439914304916507717125173191647223314581848265740130064122226387117922797008628667448966947167761443903427465699502295421812666750232423273649397024034994249184874760259572678401864850411872059275780688469389034353785345891042626688993697045496639174545051510846197252896584322761798746877016217170470120860342994549999062246975825237430104697365875148011877335664678101337844410266290486923804068339373545324582529797707534528302782718935968640752880356736332427748051184539234385387014126242660232375266735924319725130412394421791664782989525135796934506495016593202179515090202371122306900134887267504591747849041332141301440176644574539829008768030529877466638136390233499934269058132246838079413968611138707143860801685849647762472128971975194936901167428027225870842918413128961099598437682437029119769333377650051535891084144516855966802223309295253056150887634706252690574412792545871693247645237246389690390582877667448159457621451320718752794925969944087451807782086458537625581111538690686468077544553580243502482949612996652916733074491868060397348585107215807121127490172690531902274938634047589736654410574379623076313761662384994735575397689869927578329671867521093249531736494509416894508817489669206291045101110219825209857000100600509228041374202183315300737042545160075494162125934106429356589146133132213776620622472705145412150255304635011683176467114909013605945559535885679869556539422079800994580411338419195443293686121113348461667274288527247073600464000374214260127058219544661713320511848720106236851379152786962583168682134950970502192849079290764000511866208961193515968283781948566954358147248294355972336897416469707830587481432324543113087178367371936629622398593699329363771074092180246961412580241377245913736814046386211823929780994904058110079512534548962470721640960376291737275195286480512201264716560847473751298602196891057552230911031238866824306928400759501918322649347171734592600487455581611782874040673507569253449300403110002274697684035474080748470800711353194317277414240567978270277393705013475449900377643358523964689245033851812244461132823095560871606021056066115168249655374270472459896357618537688203458845684493205924977299912136121352046178415445578473065097864406045144078664427358103628670016438661751074509985099645571916074152455745369659311269141586334133292701629007035662582694561593318944385875791033075266158679981827760339227096054913618340946957937948078822604812930576454167660131362934466000860502880799817450797389423362102670526609445211402247081141114133203090704896769305597380312799455971439256180722343038064403414695873999750451090746860970072321410780993289143374074870335154002368820328863693102827588264109393339530895295038745433199851799859089914623320967424398182925673604099896987540259831161017269960930953015732507719922441765908382388517193893287013809786738997293027559236478790362067717108820113355160446000532782958351269797924267509475069130453387482814019105376309151775010116217168381033955474115088798127055798572469475235468288032955829158887930833013492044370051422055523592581977872426365134185742091401916421721218620385468435576781774683731142470847805538772199336552630223120548697574078776641490191201949311581753144162264578660105687261399398328755231887911880626695768857277048815559798051663251347370984323614061133932334825807049150381651287012733186598052662427317277014194512243367513137150873524078767019675515484493500955934166523708054003769666145623591309218997502959214682091002827493895321982992311165714442478850605453212371241925126255895656556101240066289851734594383970547481361752520811021819464450371212825253223952778431706848264943496948951581602103970495503423287969575868523281421688540059076131533425843842762051381373707921683131837524655147595538601528612147000469695510485840363360272518550884195300438196677977420561266078286730425246702326911658459187817362839709080858042431650731529806642103012591019576191635174720202856421359281117961285772176209625254373116460635104762504472580704593721967316344238089571149903108473525746521807389015210074559763561681517092128394133289281560734024441275382607747628708409467174360319510748132547387500959168788459957662335996248824280177807175076292711374297642022674204459407924683767812464297904004458002867156973948352017951858413619071890491459718056003750064895945928657634172883788291522910180133451515571390369357168752876606904279306300604819500682061141612798447887377997594499806182757782642351509030698463341614535266992653953261399742319273774177910179933757738873763888190721221333002553314684623060207925180109781249024000038924539115239171373941952464469968856101510574315219643327434759136423973895295277842403271425591514030099713686832969209033336142332142425095779742489505129922479585424242368893680283086672170610365677291073834701829734668878563686644117021979954548494368872459594680156588075084763927256066105387541587426874948317692037160841664629386801458383285270568813056468417122894231210747603596714865128847589184393409866222836739324539378605087003186422515916287740200335021807270763543214867054946573839615066393542503032947718665550170164505530927818813454773084385617243484918951670055749634479155699161257526384168143899171555797102943984687948819698412037342056625947740225876162814478689809535290308231331204031505972275667412159440983048724536027552516311992902988057539366422749452770187928303823261468213455065303110941006664402473344122144510377735341697605262967359258207683315056462511487373094868970441357165187080413351928331654857972558440820901993699250503584551879893220559713407733234135661133579845948550623705057261461031477914247546078794833262015594799550278426874222430328123982016540251130486597201441292140727670216023321264722976180957456753344225797277651236026193349485860322748587907569097945916251909477606614875458707119352626713410202316672356366893609363778947758760800477571015203169078889443420017556123290581646113844853634868243791628349522120307555418710418105773352883709841938544159665628257896253456821368469232333748366524322411363121103425357901346912735182686231924613778788242338061031427569831577019510844352890750133334799217302879737262933551735812854332923821715826767380213581390664210434743370768465848199391385710239012756030837863598806059259713802670211878102342245286812768859495181812633760233975171366158550210797025473067634134591065100251567726107351681660248868155581042021642412614337164735609093134111122730371941036476087450546656822125898458737116813327829914374266356339611477974607604853662217830295119930626071714213399160133771421476108089944638108269594010853842600971500722640974312912560473910832033253653793533542701532646250658883298157535433331921287226264097469771919075026432331159960425371402730900646841124012787570233885910124897004379553754731770667479018703474088818751000051700595280353092539049869867366434989359439427574021638002849477838936259129390809887588648286322107864745838857231672953235283062124677001447453728153301249915425201310088850769832001374339443545802657320362098320184094176790182702044258932270534404293178084725686834123093808521688586195190119824527875151715044108753399993341777836863842354892513276074265242682265139239986400822815682167459317234065785601528316801331002902610208362698806373865651918583506408792458361840299714389359878835954721868429812473960600651605974794013815736001972354609901494231585678774164682300272155561404526017818107521690109775829154906597045278511486560481425072268096142693029431650199702414477753475107125396772758659398840705458037947196197530296472414385347707752695849676852910806589297718563431102693246126012312091101176713379227055164091122323177748900278433349739821030080129858905737899999621551485485743392642147328391276889607045764486002656880973984044017673187463694310679124095924371911555659802981653905238022595795652817178807901677932705618896893845434154860832858768730431522495601571618243367855776909537369618598142000346709219787422509411729094059218486813015797841594260106401840644691473666141127652990018306478440280790799091900914166444883188337596922265595367762094917972164874830726167491530119842773549601943099665621728972619986559395765762321576409589005406278272380577650154107340474668130760325562371550758060281646407429781991623847011065433852268507041226825491272701955995938998378486447373256224024034946180261862233879382929949311178524175655745405532645173717295340001031189185054685012437230052511364558282278510965784093526161520691437664889856494472229682958086276394640043020154599422432512333690601641390203469698784306457155712639962866362427144133318498318775680366609122130918483463320517145966750447662724410689560003075578745260727023246464481868063870838328932689870493985461158754815355022193572733099838435761851692834589435110903302931957447719323681125998526300651258683589050112929487496316624149216739888367980683117657081895913650026645844167484050381232755714376168070031889671909099307233630002187996671609468352325495786612560519686905251053366310130240702664168185525492939033918087045822284473922022807966299639716882857056155194222777704848182870055258152866212808676583454876965189691416555291664524545237861538239855370951517338994759569386681184589534690840865767486945171185484154880500537996444897414914216522859964637493191033464272239917179579321233722208445428952387374561113485963463242685121670693904597573620189539828174000486720124625698273087882391596858957554599610795261932283945623840870014984138171749487961154972722924825300860610863188226274109093729347881038838925835473627513592432590849029570335033828970083709147448771154594979716045118820375520471883847544546892420552656087921070622330085215182107540317995840840157315038478614929002518224533987439691881485817532023751144591489375717212044222906575964447729820021255095710693166021367099270141890730354456307754350615442781237478141809806011388970878563025617151632040065101462748108839645511430995937074171733427004533864324078900398904217651265493629997763025931141897720192567864653507837791044294091971011297477973843726055459368778868393529219763036013922451920694218783575127388426445069976342437153019628064447375808637289230198213229742240554832154862441524928880009417163121377864679115545851015822417255867856360891823271188127093176499606041247093558138007143763701956364850660476771247164374629354074557931118827634652649553146191248516522394533263811008683626192514665756501555717077361873045253402877560059081372962860790843512989405341209503635868612680526949095859814159554093570094761462273290817597653213709563449772676291872504822192615485196219389461670411265272110516970126798025331967585760794122180186140633787982901321759185619419567178792740567011942809265298982104226916537640949974443734719037624866997909335152396035822935348323949616003851286081608051714519394062052240908524965430971607939941929042726487879803202349134995662388591208887874967392493945156138649664381336319304126281967819648338180654972421754512780672225880789481994361916768465562613068447562744212662223425852296312498618524084989074134145681181973807402598248385689882868588729713413790495947060950887441273409864999121242028321712197228178333738975962302451649609890580537085881536074056134487306082142286905376351121684644451301497728511307353980539148071381306418780034343348544277605771573122296213751173000186332868907297831227739380317368574229014978652694788772215649766539517103677066297261787544998695936000329663225300093903184019786067156894396846786037605584861443921006183899867300371079119826220572777544350238880221531189901424860255189513682154388579278272279754981172742775111878027989163391611418337828679225597251313064644479766699196577672655808602063778990266293464629489148062438030118915030887839188985325040906169972474002740353164946358815593447777257224928648714435748912137036529614594761645161197070005964790668168015608294744162049496858649950897373336792547791631685815118336981328619760443047098172127561988818523043304633950650715860239132373908709649548293851015821792780279244126615691669863428719867334671353878682197942658093936837350019529927925556958893350384826511999411366867028401253301214100119324860519366430505986770968596978520891715131579826216045183747997874479476694814520758817975303426120778572652240644569090507499576163379329998983943643970545870268117085910825549441764862435447077047437066044732976190447051071636320896837999884143418776507598324935471365947868310513021380740404288422143332879199123476439563144013070493532689286590458392336077660573529749935711737402743841146430698204130397590627541455847733786800755942881777712169630940429086502952888806746751482743342783082025522628809133768008666765654692426778009946073569997127861386031567192797478463646105387156808457637143378791603815424233066154013377709752259037099448495746250205361739304787399899308660748500849399705538196624767090200930938548854013606667977313143918978032626313350562181656755084063833398876334724471796195265172387003431746435541349682050512913354294192823384013917799947932722664564787034235400347239833618256534348054608305519510399815198818017535933149579413982874287883735141767301291534041824443891842929318446785772050915058500503776219157569481388371000260418431024672612349323447335324161478817301992299983671871218370338304831032209976592606220450574849157360032696945522343629610347694513887828879677646222430910312166203710879458657820043388934119535847946637273361635143328379974840320668078596947286992315663681654972653325776700072650099192466244579326608101198972490262107820873168304893368410417660996764104687655192758264092923778050981102168174083973383140145486590814391036704915806218452908780950276236949394502498380828389483317684739218439085893242515038786652498454844523975485043985188001338436603475477404978478346490880730183192595395244586058384812481933846307760512844705470784482429275635104123237954444672144351102361155592375892886790722247189917987040399507925696218491834941875798226338888008625605926085451265068128178541330416132962144330668761716141239957219044521382948570492312518376570094770573135119385067620077016828936782183284786637501651085107984775190977500339309324140756824515909785378573445567339088701950894685206163348645803144928112388481650890117024369537866753831099122272289758407690436692166516030762043103402603792162343960585953242174179505216794815751055279845848832802065675656308443259684973019385614607948068764900925202401132945331472529382397612909180599021745545465463920032970782507532620016942433150404347988702598998862294198781055151515684460821115153180872156403459584918214579246373592098329917818226767683200294468172730351449134075075858660365403293609727770104218758463154596122857667457498949425691236997798490517794851991650818961310582854796063967483357344648715122152142101634831392041483846216139974359950779159863032152566880735217218722562624858855160186569634598802103985535136633135162284782347043439259720529029351287955905115304443595840159529746907915035583348662213920789367735918794480172764778896782154701224147566382107300885388386062124260321843248576845524131272478629441095389294191999674824716768297462281631952518012459948846583080713390000610955691312036634500445226740881717182931874468787189047512444947749738547833447174852201969735172803433510903555761217777811685778864425515960541947323427107676713666766426556223216659929829957107458075150955240505032668354800730226793471310382520426470831338162998550425063164399448320453598956543568457962375324546608727598917152770883563550617171320452605099882837798995959409904063773696869087472363485479567311401091619271191739446876156405994403190280612233936225907770514031746889322552682054867366215108596972199637583346851866409414809599915064343194612584558415927823851363619284246869972894507753226908163439392529763478439422244644354221602554148470215126799690877574616263174230012418202521803959301703242154529622987116821700178207521444387090520203339270618323015748656921778069469588136938933277423626117149678788573873601458309276696220270467046348444225996680133572871755963439326307776508418778952846961512041231518718353968212379535907816146390206251038463763275426435784850072823158796392745613010743863993817661657246839488111025124522187484523726778160159048161538623876702112231413564986500184045803296378342075909377654553127992604644558203097429110423101266929094162306963250506773783637172530251276861852634236839422407702107450061063116067394222920664049647830651705785963864144082539880137002561074288737191963313361136474121593044390547407424072972126688512173116218343429562458310807504894737461797589506988893282037861437369072195236409690398069441503043254474956814019870635020773526439670713988859570707815332822122623823466148847263323902281596145405793656531256020505131252107036371354892841723112814616670692602183510400113694425265556676397016833049025882848962884617624088011470577935823794455884550134554715055314861402514459299302767768752138945692902653910996285762218664512350995116944366059096228460847033533452486817152070006200199688349208623725927903201194673901986645639396365285264684792002409930162294840267939956665337605161562967344132090020795816767488574268308078097838612764736503606776943640728591316091562694391237173105816324221411031731406209173913760736426031061065780723509996621227404584756111969005031860921934686176908582411330136288155862166255241265514160259338143355192191883421949026186781204533292021853946473238598121240270472796285796433989952137840130319703261286408607375079648305774780138466298958971850846029562640564561332252938066570167461713722236847833539568445772304436221084570583644241629089436433975266423646528848502941733299211255447216091604474169026783984442711692989844533466840869277841236339867860627517682147767278797038928287910917879474290875918409848736444161658673913111185945072956863918523110842862798041229759755497653688213174166662409407773775767757549141222918354383302418988329627116701482271615210281903757731305650438116894584027414436720139037878724200921099856981808517605639590050239830107889658157850943781801475863144222673014912703500717804281286683888790249518566084268037637127236577237421400694050594770880255870629534373774923787198562165071456858227031481611772466543895655564712579111500412055257944970192241316093713273928398641312852289441220857470849568820867004703165045739371008949679473128932294391620513140868442643816011414290944992471568207727207879747951283753111806535847807874427910493730968192352879744715528478343915546741197871824140451935331215533662365946717967316975456334304179999907246770711530476676501767344643177183024954544157305589095663727599559251854810916950115876764074991983642514774125302002696369506987394375868953663244038482651519130644615885777894651395450409235113564864519842842925366410965139755551004397524651749752679946663561636788364349985563975586354746522780737424967385426765472910003134034275708254905376233652226853587518738999023726472581190668511557447229428645496776429723879724370622649541657095139538058186433336798205657775336770537439409253988798051988399413072977183072902138512819893730220789990251164579121506015081867142785717850086430331429614252891697045770941907305247814047838486026006202279064908907150440116946978913083176387384741441285044246415264765821318237811293155071908606821199601092029705362027182763480887226857723147446370546249591548832067472396011357173433402461873737865418387846955194701560992470893199061205984305671643303066173379924693255996073702074244819609875158674817760015596212395025421429590061449422825931054981634270441595505537244709892335055149804044489102206061933201777444616443858614467334839241632365994770855519335696291620636922264347874998589647181384589612292044783842759160936019137177940607806856562445088191012475208065693041296415190945566474244508548842847092636346028468551933318485265951996631257252273570977371028187783535596855914057183391894033327400408466663934772360961269791477261659055968145252084220760108979851942467559967004395066111403345345589749260270211055110400053174851077287954530931648204642082818699185752307885759038691813965748790929308639488512291822012180360051155235408222600661598390254040713623038241491310442257337864109021901498235665435511922848166845374013024187726366936433959694947160564944870058156560520551985801581304254857387091532001212989133640530398476898635069778904990997902732547382574548757890120687823225165673491267985970538445610441385069317184874629176069961073059952482053657943659242770501753136492397307326919384019695054535318064224851618080711716442750379490313646014837551178158326341225003445816840155045259447049289476730879907116963413436063794234802124151355765151813059127421586919214821390328256372599241041503424353238484474951523447280989778750093193864845125092309325721790482994916208365937996242600112282588155523650518895993972032062464468403184498999547434425365395871120769365466351487493225235535141951151814788559563579343661711989781136805232922829108368976116792788951881224418659508548963376826421760953317762560421947346403339251060685462124507578459335153211204576915270957765232729799030811223989840026578230882497904734913538825507931270834669896796765537873266562225103325372682898461359925757166204352428533335714899289674286151473093925897464881233368731280390288349751162423806781180323777066793772810206716008528282751796453558850889506470089935074652700620609177055627272694543177699718377199032377743547794208861680861618416980937521350828909035247104571657779465508417010467826582675792746895564219027494654172504484637598192463499184613423031930831052200229184836568525030811355599132079292504488346891823715939679556119080566859272907667733879906370081836486164938052726095714872931913333173710953898101680584686665790128985272806956679130942557985293192628627879257552229437643928809467448434865022122388126914115926079330931620079892059514136117417694833797918002437566534387206030925540935088565563425611433151700287577498696439308992350372855116186475926578638326570802783108669957910169231478875197975791818349792842652595376127955202474798420300149760714766123253961749139223766254498246630729494418047794302372219469212086940520155735372759226701222427351155244595182837325965952919826033450694557208397487980902956508345382230297667266254197392588950806622630076782733080700261385219371357269634430924979518830946927307334121518379386517679503475761282731474905800598421364005716176856912088704916659362727223788000977499785203253047171242110728729892966787951501805557938894772565421577112414127661744359019703534698050271569596551600619597241112329365837543249521005157558238381829105042992961105190384858684492106974727358513451220544310832137917242384623487209319928323751195340088839680120627703949646415980331478074980844126249115895552350756438323074129083877272403730954032907370491653383705244285182371158738774304856757015318627302286463840696521946358602748963882898838143762713803860267682179653062718492091045363110841007538453601597889901974651437778411633138787989960683217253623660586168633502447357105975233614550434847232314309837225862492015773113142114676262696927008540625397270987395169687627268974447357940756461463069722405028096746514310090754829288342478555715230406919686647508944235587728442561758109937497224829932098538444250593099749834607230852532763762822027721755822536945738505800232465301365970607827725839440719236212426488289883807228142783003629165951895345976774998959522361044477955986761959580732639512114099196418839398806561771200156470908430677368409223841386170283794224032681585155347344559486578643912976101153020496529027873374213594889714793771849432878953718692264559845497874848362508333904701230206445343865380165878996857667006777042670408052567175344220932351106386750347440700698105177882243416686273733127212778002232610719430386242265346057910384404023839173185281950310324793871314819836591036252180829486534415017005173313217490526955917969208334200756372521585194931219887105841657717859331541472353108554062076277657526152300395345748383455763753318384047530181944500092267936372489119985049993487102410749360026287212083322148719083849905224750686125977510105668907268584443261901134506404787158382661442908102961403924123375448415123400666525135137933632673116922725955966862524705435553898933858805785943993836562826199464666587786061800216614263767968566145128499815778760137602910069095454159649320897683401233217274876043098364161598075976343198482696871087988016979207436668999028014511921947216260049367970781754738154756364755957552481771733224692629260766525007676092835460456570492955055637594680668263282876421534817535488773282738983638224445285815377581868833096989395822247642776561467388794806212469496756952014212312621371607829138677892876469774006217927141412197775256369630334077194057824727330715451032962692936276929913039615987292993787461477415902056006812759869300823586894875273021409299497572995888435446103389140985638194747917892758545653559701599255363117994184597549008734363812090519569130432448832860584550775715159066528657945135411953752997178191887746749944959114439440244814715916310778840709729189974673653127403160201177165493291558662725098599685242426657718631432240648072392543110079174662889601928986730028328800820526285618636263609826295080016509634554644781627474919763446744672377318739377857531406332561648068064617077468068900673270284603046633155141060750464353171687391519638172180885714648868793913472487432144787850440883439852742668591586049005748743835619697681381872308520926842953550253951773664779832067049238740361613893155170454702344580254518202066151954138512277356929295266876789451310765177732808908202648984300316131362950585273059860327615102346938667233664038063405370744425322765550648043140327500545636918561832101874613164630828853803289628897175354019230259190129710610391889861304949080724165810786762324457678716056420012758946425075663664119586135100222790928110197614091136219940352963845162887279237485521940875515438360143068519350679285984233291742957491489961241592213934306771802781525637757236262585922466133324614946002819412010161598062321360432127298319048157523078890865795623368201004340453497560389445714748701826796294030242470694596435885186471319890171795959892740305531252431783355262299764609364123939757297612999398771027281595389167848427259342958004231905157977104554856598002449220641559695553546158298013019208375843746418467371595127822520471464782494740314118554436032267208042197531850300891402903125046442552995212421335038992277656420472283327585705155314004221645954013263711050966101821804327138153854319627998694729268072349807636251027499078816415405743292972747196081611803669062714869712494887321737879533556215480387433435542709653632806895507187233311832708470576185350431322185915245784699422831245330434990143638788982568243825913015471063555668933200559621926194156952996044849510455583911717699764475792139053393123991027588270132825076907950585994674415995795527162345334683168305037651383057836343535347418146437164550733192261271736669119550213585390850078038918384270470091382644818390188019805035355359953538074090412995286997249928815043936077632540078567483777637575156805385836036554596003904561530513798336815618540421827654857194516184294112717892828386955437603733722365805839778327788035605064685311884003248684185658036223527166314260577243131026611753280270726531198606574800606981124554727315213290939480379263586456142940407593635224424075130847379453019494470634661594004879215959215230240883388783278269814006681489035310690464775288997422794444828523817590384018466827838382046711830936168371725621151889125092446665126527501776664029750958485958144234557273926387177458763263200540797911079262667838625509137310564232398047539486195354443020361381335478957334109219774077579531032878078449593520819390651308324537695354185297258664522342844918968913813106196816679394409122161174190212662452771285994020536950187755677752375411577659236005067782862568970547728810195103906270478061973511258293450781152013336162065301626375224154995914021110527221866498847189412660558554900674513462542336693946178152378815658429535359248581568893526047978134173275233874878023211779023914071627530974418742503262502112713572202436113263684353098451078199406376288787486792899848738405085416918784586147829043583033829359075226200568773764379326498625106674914846605331325917976781950912422980225014305437559754065247249708244843252728527045462765403640387973504263569406608214354759131231624769754251812606573061037669028769416273166908363714025438251903274344368912722486287434087438644882568728323968204780815728784779733358112569879267533439015502415311221528635106639170395544350901786815147943087337866550834175589023957766541222189334553478572294888682602971795749704987958443596373072877660626499734002401630317679566588109054270936397951785674787268916067982585155534280396298109511279165424605051503593248686684876490791613877096647667157475291036476433052886130013145694280132304241253902129378853132827567392881797067671694260290464621573668798296055186235435153889225356235898598706171842647835954147195266609091901385912874915290628483326185720661583973193828241292733143407694212098652101736006064933513668351378788754820492088793610843603562998821325635809881966106779535891657183017378070279707832638871381951895172666304284454660242900932760571769961465075926324952431098441649402649563865197506642563775823403942716530119656097899049182632232419239241558192819329041121429773414127828879725988208230261870106123118990810803806699596544189040857843295884268114346729706122395730645689664355568386639571597358235947067585111197836445307626331379054167947739106904229373144097144236930052057897618180352599934031928735255450680632118916200099217195398653061964457859841298677647238289756533269723296511123376168797037849960132274029533074131757084058358471946866380667345332276270573847039689716515526745312828710365318589646520861116069150155357018677229672636572363741204486698774321097876940485472107684615685822667369443909204377501796294640860712116305232754507278726688306218797159593773422515443419345062368094918550920490360498025731506217655701530772344216099747522218865184952868719895114295935608182093462726881260876763136149269450368026627197223556941024702324015890728585687705168962320886793306239589331959713418592406369361373879838241976765347605200951838589725625849454151997289054935428791913556619460894390255135907189770753081701115323489879105622895479432835391493046832275084041861836412438258713552333957038994644551358614632429296795135345959916049456066774371353667528923651859399358838992142881856460398407393160256562259701751250920971774147987788166312953799996713520688013435088485349839560581239969265655850674865744977181224227186282396064190145464032211318995359055866404417349501315016147572687938633151895475965502679153838081396994682118682440491123527533107826713006991873797262472238784588619743754667060194204251797298603245705069580904646663576726723789432600481482494242979955125796035617533815798516064029269875777083283394256511186789590174972306603175180592487545619052781865400609376519243288266926187182982719673407340047488299021094431094464701416296907978756055730603881091359853628392200694259489100351297132971636295843786478037359514617940844477272404526421178913130123333750861855493265869993120647752564348129125197554062173910987648543946212370960141918199318332152637646911325052369287018708504359562758149415289947494257403246092249957939796682799003956718204709058526629224815461007127042478585706415229509851861163398571864180729482229672040431262371823337987212572851433126199736715080467587351504339630176275560071442272052608625457288539260986991379465893944908765247895621474845490140641210843046322913441841987643751650707257247970270442518997113770719142669718908200101842817143529693998533357995673267326853059318854292930778066798648015552997630590181774773141540258373875339418224077135755652126015148487584625320663733196173417684537657556616028718238420126127807317154476717006706807274056771348651224971453321084826193624133954743235274531153944862051977816669327779378239520441059171724400659427657758031543409394794232038119014300122872923964958518419036894312248105248774647384503464129644901834076846480317693437091570646900989915501810842060068034200947614384614765360622334519900993009638206767617670034179158404447139990950810635905830417907396134071860122266020594249444361863091647027188011552060566303612441057543213902185857283356081768197777008706018050901611496379598583187833113666044428246853383790946203698589260760238848353712186334011369584042280922589978494897049927467414403261342311343584809225938146925121593696941616895279614412500945385614117646766808122839409441416670789390285643383644409283912444280896330735787264633246238230411495690696520499343370195704334804137531892941577553718948874444245238118502490241960291632814699819767431674745060080725596876399226064256133114004232173770315946189008107801169616236899445714212775313116129452906009198690360254619713148713856229601704662604397064851915381494168981344191319036221670124803335944449979574983209911378073578837708413544921425631499519380902500691452348182467528965196088772685191113191377222356797536779164969500107607903380529183844825692828168281458164982323496163589551389997340636144483588406047580164384184963305553575327578235074978100685506396684699062108372104970879104517348342002592027069988967806376214149964495782812091014532054481719358104197252351252676677108001378339980792633724177577486472214386873282651880856903403543353388364381913907250943231909898012130960635523241420149761100462518019592940948944336599364040884171373642799036982273433047127190210929428318232501629323607586445666365605160548845630358219718997429169712003149200636909127797837282415624958384938370786751471029562959663138630891103503324674483359845933070472525545273194153545841005095791460011713146802940940590223958449548518405929912856741361780448433927483256162138676085363193724855514311926501998663979346554239966054478590694457993145838498940014309032102950389745585503385112442354572659750646969279018405123738965524777887601603328432610285256626345855437790651209461926410906839140757141531961829862747527771457149792621115371551509044049978239437556033546601211755325923209830463728154289627847870548310766205513193231298532565106035135092390937207449603419688289913837497328272471543138843032596340867043555741024016860581306390216857461152810475258571920466197922037902791464417768178167334383067571563717490791933969824545268348342267049651775565180326296148232523549126054995700667034300823839311937372508382328242851660851177182466790940551487685794145178122108471524515973310024312932934399736613061155184443910479895111729628303163185034062243408228189308418462751502289998772971477076487454434615142471393240398135367673998331849031483963453712011701079961478506484985121126028762186916735138757250084393996867373996292564495132923001455697007102688843942232188653784256664210576978772267598629721652019353477455990409351192912082380821737114464652608298781425177871566242946399876579552120561892412085008109842492622637152225539663492492347485375686654766594127203217869841778223171863167736516409777464928499519730114185882454647551900534057928458952408151275168776398490405784350164994547293150130793082800398557649774631963772978699808956433924731640776173762752518330173532669401669868692292004646733004036634686649423630769907006427332959267004101426967069024618801206001748399243865323946077748933524323431363369526670705892500490489471915145630471452264432154267197734619594410667523052938073949891481336260897845994261291732445692134429270326394945284636753008973876945144143442614980445049974495509036739000655803742528551958612097287780961916660780609872951620916577276662813414469737569603248731993442753606346494459403673127194316339507538864124562591531253106654534119569849200791409826858823215448544846228756270074159264133263869966830429828465280289129913696033699801998389607471230104812999196829877692371738631036531276783636516091867392076956683131799090313920516585430190004374718748706424185601231653327628289269925073301377292322211497356045469497790152332531970138705380239182078657838846427314594154240905228046578576184584452709465085487816843039220285091654345611718601357218670847522646889670551799432491679258246064995590085135382966389272943010697620993545166905581467204515658840289783390493325243198031057120571042189000798918995877457957159826449359801849311874582978104460300428388078950907721735296411873837490000993095485965558339312816767565478621735372009632353099016227560039641672264764881244188722573263968612442029202274715079172300207138239391750891183910459815932748532633802756702163010425687125407558906028928481507403966282810663758611219596111089560531968524826446050099712245764580188927145816142662231595360241828872611769511724558019726101914977740135885583889026729362986887669148988964565883046699318563436430165571748835250142822472282503398200817712117121294477732231033792653908207318271525061382337501974118879073085856095820859211792011053210847989985220039073857840016434164377835122240891983249739181337661315676193052099734569432483040132150802814282712464688132024713898744258795771137352840825916964220988944304204504458604496612182296584140384248420379377713765346782947672595463897332218441687594561186927195471396241416210076860553515595845234723555138906931990366592262858355535144030460125870806208343850784837205201425791591155182613567749658326243016995014834765793253881520555063435315177815029431923968379103860238642866650755849735510111659503955814559018798823504982806081707303478934305243191544967737314821393138583452059465235029578479503982116341781889572618651796072957377760048917351348188788679820695351688893030661586300453997870696644794565474675309919357074611619839378126445764990869156476596202606893018615065285474311654837161876795945372553490555570048356248083510069313543946083318224871772921427244561833511707793916786311030349061195829262037210829486354584195903886673195510383262010982487664261789700023612553047158020106178660767334033565651282676813169409757506701314481553933173083630104499858543106875685056272453878920017268013829486894321688684522568759017259996906991749914594080758235382343785316592411964157852364875472317045924389056469420801038649254720928019740999780027392403116710115147748789828954759369820149967497165621083239047188927095461303896784811667250452597123985942693413979967916282638559517837668542136967172313127346360655651019755724302549447767007256344129721943715175894169786780575072171882505892869554503848002845545618521741670848091513914666403652694282447729731352333165887362132994819964330554302543195253665271814338026932189566654287166386361269745055187132926888063437808479486815364723724518427214267314579380184667391401226247093931559827361370971620123280160333306299776070687493966847762694134369166094868699125772376616407290608789133139872941676525207190352144571480234283930191453958515988838405410729856745627651419896803815207880592369763758551730099918636714933951391752543817637254304873938707129869076418392184158287205608637695707237399483843286941816622716065950707927714995835635214978159628067743028424914246678345497049079142291932773954609153992096153029448509818442989204972328181351122736411288154247894567092197823319550787392234574408312137713112080090708830030369384678513013993413393637904270075730468057621802097507377836748410456210893884147012782672466864839063948857990749549793047670445041377427145160821022002215502574507838387009149540312518861190486971085743102508574790795019704064450108209794463709628398890662962142664189210010461187577511303612986262194643798800983847312611317883579124490436148183935721655703933935467457765697704061363411047852165989785932904828694885091111617615995485438858510676263059655691330029996164390060363150345672307995670314848710860765246593840497942114992519260453293880775280588858271152213820768603952407538616936003890428318543882823966851399014349306530832223520516406954883014525537771994327558328508558201343984152452645004339073196722383329461142489352119862872268553388433640645259524173889369368621307249921764450213600828262862011481131368720104396201381993112960254765644472468051842263236133497887777035648826230697473321707566813739908322739368321550757356444541352119260953688389876092695584918733930011107253750416703729581453466516949503923075211601828731817288814840702521372845723746616774271323227132730893364977209038899659859150637911546178781054494816613281561781042021682809824338893770162946450863558080718609944447565845067647164465308544824111220918915480906360807640213853476876296770787939737367054689871655892996359646176857271876571965988703922840973242161876261685473487587764690636348235245112875133071786754647230988387800626922780562490667302555273174629770112724356412016227419269948296649111871279768310239426298498119715963600357077195756348949497963193330343907764741196825919664911266918020965489866286664639664767239627026083919075867949574784899869965116712159226270647258001860556412319751870230009765543572481609749349286932440772724741217535679025962560134394001543583494248590309993155942572842294013607334477765136066539428274422792585341776246128655107189643439457587051906913292004177822846409534037032455680988932561459745092829080037599119058911441603190353089035480511112835305284081981580911394065165910258441708702633893877537174676173111421771820386848383407343016632450578314117107438132756290608217961121533102696480872341207864083888851840618800167820255687137476928960871005453683211693676017321639380588233892029012226077925441831820041768632663551720820608779968554495388706198188359300483552596214014285333729176604990705578909278030422751434316764756866332912355933772181210293757420871955862049138505541083205747364614676503358335549255518903566697187427886576926680553299252246210192874963695980481473489963670541743425152097252288734669277144277785464492794153725019219730000162764114273594966124825808030121332978038611293497419729795193822176994323961120221489936584735738251928167605046742416303609903214587918839608481036351292220728282892245273879285365767963706493943579543292066500037667152586520389580664847810561993084336831435076752237179233029184324594091788180980902737326552142507904550818650056798573322749636669430882300912464241371638294022153413634658968366008694581996777947521372341846419594259804431942190447429601483928254793027937978054096659150969399125416118896728309734986502481656263186911823706721977542885559058289649705816044002971769697087506139401446506595478030146330833005992593877536291688367260942606696499970770615047891831846776176465391239009477991287612617004003744774277064578743848879759246498714716257483561109591323957120676798140983419285810652175153413475401348705420916446792848231857348635004306954840079787124627847290100342256670666388844764316041448825731440083010086642074323075202901089752812807469911979877510044033345237986569738015612033363728692121502028635693133102243109677874817829646495402433213727957750223702435617693395556685968206179319248085831726785971718119961756454177098168178897485223316562530010266415874543006497601688158186207052836894860918793060107063018085138656437657712594107195255807145452386872394200786444898017076438323074073924061483236883209140792607024465817610205073382094604250865935702533899875551556293706759431202436987778194913861787672830297260754698627195517334171526693975973460317188289601631773792588719995452838759137554557284091677990790843945408571231764641939898975699755531709819295107279136101101182997485679090595140334957088955091018877939983350152250607053945452399529403044218413723224670440400405786925129788275801389917777264141873418196751871601341959637246823921954873397401611776412690556547562809279798948375102761046018937595370352211781110225107092499241514188237982537743899727404891069402175709400792651262871390039948699527460525872033486063223088677583179673885114813328943292772312969442271818172568265259402871738989748815272975985196043235924929646705927682613727077790799230599003543904726416076371502009754852479780897272567376496834326416073412962766801527748876326710096829912094029468601182459478518772614376196616258296215086588616417986746909466836695909606613585672840487726343045353324408557129473494225284257235381254931811298893281738725596780324264357671670288169590479432465432716027212739714334070980383349500718952689842346857727962255749800900552829843904505392947484405780658005677675243147203904747455447382384907811694854471672972924349818337777098379200416185516498382228462603592868086618135735203346718521298763261526568762835801052732777983358718842714938211604459743079304014044236735864195500034725312944929417707922876330543745772567572115781074082237946469906052293953199585816744892828787067660552013863577799783766489274276406143934618585452161610416588020188117489643404276913791820145982748896777928543083660229103144885434270762328694099487965456818152976209804967171931822119212926177584224322852100487054943820873117205484578168938302169005616817439999956877312163856203777629501311061749490442500054383738320076118180633618289601139410344442079215580549538272290734563190655044661445399070342905205561146185753889035004199194589948865914218059289952004670720039276059379345805210208202671319864668433728133959328480106817814777364053612689629036304915757255594351153147434289731908554288204927668054251015968386983629695799471295954054276723509457019816339535259859415778526378876352808187538898814573784361682220531145935901683842202279805076011947351347434825964416259922726093671482311283688480299951874999765897792385886126214444070961209134656605954615770074164878648458462758531646473895514434436008390661239993163865518794423915574438742793188566531574430932354761397712820529868696074360141135373266023706071450456077988155664292391050517646046257420576481533452059104890481329110300970193074105643664401173206918754429099181450831865276315926605749791123886385084481928408179083936899311697795839280404839635083661540167100289265473834798400034030952724176628367067362684359023949813679271304139762891202802235642293534338841965239010295069630955149131266340647919603718116561395097971436182541731161562592096424659436191406810775383755564293468546291357588255957056110741765252137361504858935198027942732937612067999916826642506036493422093067269935375929686645694365386014217529987931051343193067491091911026145927411404558641548077189665712882425298644710478437049975716652437631665164942583627982913133713530830342881031346078782418594529674047172695238256168931132491509591280038955974267486501585834407975645813816846531548448791834513811735660241513227719168871086349614483371973758038723778118410270912660258364060904454908076075657565677672294255308700761116521417640658734675335668516828503370516328889233810990189729601685890871670656122714116186080505002178233201738608987817360338586192535200026864301661177644321332861023295323759398752412790908516733231613574510557907427902771455371035326316597265329701279361016221133553769305993134939186508748492653668401713642425716467337358978890175578887447888935584036435584566892550996708442534735842561347642615214061271136794317108116017354838451397669903354817382753243156812007609951367642582018772921518803974179215611968423281430417249094286839529171524134907962658286762059346467980862639410972432870491015916905820163822537543992850953337829292418146106364981958666156100238563052646997901445443787537106441254593256746479204918960457463083097941644015181075379625486924871345205728774721867827067850893264828552885517573417731133216456028721676908855629727667643959991499850210214214687319262220168026004710272919791141555217023529655369023934855027966542220147346251559521854493356310642368709099203404511904584905791592021269138792177557161938392737514166867791668615547695619881932779787018261813351963504849633463380937509087152821527015996504704540584941934284303165622149618521002896139273723283007307277543634780812172228827235539254883597757377463872389792853064603459083629867890343133324396454908575367877726478178227410934231918525675905316338904001332696665129836170729964354078920293751942138471123452525538042575225245319174107963002508247916531824983631882842833875038512841936143124219827124162656454027254040461084278764657913939934111946671927744817103248915395858161981308268943409001190709651644053127080702420355069803613910887834042984741609647149953303810211463948835870957631687230482611907249650696429075899091853436797938426069643770506602863728787469087496482964773033170112724356438865439607118869730778767758250932131215402852258554536922391407893453525528640462518538816189665221482828273841412966626678828045227039339297572685032800136684602952016256118812653453194626528095169659032412249421547512106801751293436365529677713125078394694523633999489399891140377484747129790921696592675341440119510429434878244805209046204720626083187022637116838443970224220921163211840636469516024372525622618937514641459648559729419081075532779634396451890592445469234412732511242625474407136488237229713494708514236424313909529271824068516535891532809199552157550678427560176625312091254185540498775436115806796974557710420917981565973800085008012253948646775935896194935394614486928575189010995743598140351666753872095919498520233623074780947872310248988905863906141642372840275648476422417808230271574066404734418670636486142671417206392891356619587224119300213874455386876665227917705571016492742763154195853922823760009878708476218087357612082287429170099799124456740098481364201168958532384911738622545858918548201608215058975528815440398371914095731226173768022849146521966405999589331852620219154150916359402306931550008500580685290050763236692742664808705370614414095469187886553218368434765567007784836377153416087855279421793807433203920177423388735924285427928646340291625335100929530513772406952136902279474478604650644069350239771624762906817782811178982649430279628910067849464071902771003422598448829476047995870315558015489281342079640149582711095658133599535537561607042633316208546052332774888359510505811395794890075467346003601078061060902723838846797406039431371815770815324147273241747349686077332293258986768201929874450691779767804671319086188080772498659212598436613417517071700439656138886679391289956186573438809626390678368926005369805192336165084735064193339605580061804491455761761544465099330019377826377091640197274610658329064045329439680701989559249333896043239677168419086769621566170904453347856188107106391014420602264545732571268955887314365461548876677572497024177437588264246406090244362644594279362316010564735160195925601533096567661563187099914690863690080490700293961729754353416783937128072409129962395138002884248284363791279313803698308012753844616439557659350471241988742780703074477199042481265838039241170838267773803220734474735560672210534516532962488197796798308442975142588207330227981852108931953128813234208257579665273870862273768951156771968349279095177209020525174337088608230811716469736007491588063128997403368581691229781943744093655100387750453509348235966054593317104551474702361417293885323575296645590384089509792748343782543253730725774227654629415783298188709282684503494649516165337154607442060672853169021436623915095884658191004369173016181680090692284815085441195467985368392517084706130636347337353132093817678266920608527026991919616823413000674612818888174238621872614977781903428656674159387187414039627582041212414663186915280935175250216436975895929830376936795995071131033304753142530169602827616799602307022134005807240840770691797805234370239415802307431586637593586273269929195582613515563201261298344868660142318456562497822840956529073328544629897809055864757814836777639425025852808885121687771293634128454350397352712896414050976377979184693581029477031174877027438668965528805270685282943500132388031844677114499029816916081967370447476944117632302770983935039059665510092717182379269817849211178831272467910227330389194974627415160712013196490537608678640516620044481768945378255721385162783314234187472638317766324183155298951184506825813115022076273701909819425126414109678220587962445275144206808220602975553317864975021131420783190697477149824340327682018880189283388052908645209653750933918446348255502228526271837818466964455839685822523463234909758707524695981031742991912215072758874065663061979759602178510786048753421353573311305519072705189092308500969002223581098797578717540368885349502120711342341310625088230384019677319862056891384255391554052006464022854148027497310114523170357722415700459031597421153480483330555746149409411296449549850636144489210206756378806094575554515548511625581434691617515610458372594896319815426843155946075000471884712091023222944806629965487731922619782374702962818418867385616678791490494591964112527300224078171158654223115395042689174065577098553298391861759875582707013740862013761481661383247543892477729827474151787202200181498947411447114357908935597739338539949180470819571381047336492858195137645862072382078253991203306309292045324958510018624029873755224792211700881573092160800731047818758494228921747272374920839999670832596810721025971339204569177746063033184768076244117725323135403855963332779727970366177450715356018861408207286983249785541259637548988859560386293983718765471583756937566700374398521869330079062907828673398279014301121734491616142159198255996686982819973942658333290391768368927217680438948244954823241292906807076083063657728906972259098380789288320779082346921603988169147678130494517702612443863974983757690615796136959181287966454903407545294517762111685601784952386271463359124864506101725860260274657390787362561841373186202020943916331740814904289738358159833550322042479090642078685346319249493871761512166175380141330318693478058730180753963483856112162892010507500061719666432916155525084425228062721545216885282663823026867131829080264553103510654258039845992666435912992285709044427780262059437769286015365614191020619834257419102838536302991867935427389276536231124654276675809655381622808742761638619391128019338082970623709067161063144374192399199916241794490043261826962212688232575962345103475972199289876102862462599947204547346973074286820121189682535350431266343894139858620188478772311114799613495300621525453296168969429485337535195088517836114550824772419521359175719753597720517803123347092465196775218926696710859028174859901928903045949637458216306071595910605641842877952440513280379358075511741995683922190354452079598056255781584421037368375265622892528541989319768298445927051320627626158380945246986195578661901495337628083112290248117885650134915868514690419372886868576939054677877637546474457360768583715895207243762538869165283520202650842119723125350855170632006474557794669900062168123382534837622894018282722516784560366654481071349488029734574785950650430625495569970982027526804368038763146215545621035618903044046755092360228577609270190947458098003930866812410442925158683788933010954797545315707519817521679813585371217258528838398203721856760803988508918623177603663194539126777641957484105470879464062960891212159072254235323683172305226915104928122933097210623924973662632694232486439211233052779376333206270999913690636351969658878756556908821055007624290309155035649022146614094479128351931770315640115828783713236840497826641279883848680623438240087212563986069153158461855848896079032505314199001860634132305241833548077941815777126759339840600469004418134031041857795856052608357357604051364096005320419980186149541423146962204349707235656822342841209869040830483020945369934490499720247364357431175842750127720282958706366087386907742163331265444714441054252507017241546692455686167502560347410546117519086616172449936628734082858496159244221475726036376355749184741681737490544121538272861550982770977617605967863015085379102957600977983882921806240219162960739681633073273977370655241695479228723539994515967007886430587943772743527673323243963511005888154799611319620229637942300429965263461776841753788266863283545386770676040443862487596224433260228156344794021840361662368370097750886678472435467913546863531764181089378488634997056677995766372180651565045349533605753775327823925381179508287522777492105519303534547049079872554656879038976152376377263890594190474609824365167021144457559672011224573301746026465255626168535661388444747564775754827602419250412593324415444788599943569267301738324986369739507138702965212602579000066581225817570219227314713512555080290212718122272575713395889497857368771934209406486010320961389598291702733741783018011663973792765622038751712393175374124862588643836862873854996980302510600855363988470483531249755867563548829126925900050046163314834905311315460787652895506957187593655052001922559300182369903480396288546890843794466868754638282686319369307715256646780201773187395756681276057301992927141707731360891527816480939439083928993769782064515401243021113802235699026895096378084224241559492770076225348036740299833758006487800337537885989217986551476179344074007038838353963505632358761031884224761147021175715865132956807190239720114441026841915758599901004884687091897845055445595103253824813277178979146826337472441016291255203053135525402621406114507719885206174081638619943364091575624343280416114387860714324182127677609097434549681545457849232254800899566559099006180324984524536876097842148132852910703601213993330062395873415147574762618453422628103062399620989537501767604075473692450828298261846465742034086336486626277373600701547598694447609525056327378182235595487364598846323741100412628859479098729465259008700667916372310077372197448011785656465339581908677300194757260159070737106143252636221543314465126343061487471626253151328439800966951382191492214229969535088619190946388861974526292545393222833788540876845242148256814397136988595395133385725529865388740506459744137268890098470955034507043644356221231736517613517735331806513030368357010738163110332780740360267661773444821360701647009075363829588670762284730258758262191826684881662239176273246795233298893363648855953411349867380006238100256228119531368697800279153189027191799898342582752116311691082529762497425603987565206758979534633222217953966625197895525211311245677225015106374943929323181252019989543260227094062996933566054053177713246109580345573470594491959845554882639609212730274121174796350299984583878321620070282231994890749160026528815564710764255902207766601308058714063902889256070067043502583814935509261258974342590772707476534427673593618005617790848769807255605832053084168600199549116221045634045338527373976962553049925795050671167423104724171816160462581768622546977820089110103247000848810519166156348187016449750919708365459864958279786355515959884203413437024213669818104158645790956710596079116871863584706738073576075500430942770762360002747111290777565599423082879957450398585887846164328996738578134975991709205646088912520953368454006448510160134602168401316743729841117315738872686270065982615908336065135402109923293341832670326500805359252684807393017499042389371598633150223757721191678688126854068915118842792494321426688070068222117065778391891644156732414949604715431117320856342035892088390101512340365458550618465223015804901393939781110298265129032940435406653240616705147934970775951227857127163221850560330022356344301847651841283886046787936349318171489124081871517066703907772834606074835463875938030669356430089865437106822451736297620806331482016272225225754280030114314077635200127736607090855950720403806737928332875811795603225435790370195235466531378043836498547097534321752928213187159756633172210438197069778663526975485389021890198717601696525211293994000921738663181860121616284200764603018874217145527687226448309644314377097022896949159527186255796920474823401140418225972319816591529756559342834433081030350991180887126693392433613612040252315243199248061016646377068448256352242933345762829290875784434123012424775818069627027881263454308953425614519740400416763627339908588056994998222283143047684095903557542237678668445799080230087808063108902834724402508905712048853451939853468621455468727958698153224796909397100619354383548007130805515732055959364515092587733126512262155069554024864649051879710919717830911487507897704018051208724822189650066606469849989061790486114354476237372433585824435986729020270405488786879801630730722462603972868902608068089597930205785082407885836831175193921904240078190144477549653123126101252341174341425632806102771985951989269658032460115760503598537920694490924436751808854809486519358253354799264167128271605966052187250723689863177910716889922103170573303508061511115318952577757060146924069157910293252992035294487239613345854784161404789231796151967719756456305279358205130958849162772182922899206164517292266425355374701320018815924531047647764235347413941125425377944056286004021090011765418164077831730555052354091124118293185333532107059680963974601497461713944077392379521504752902975975282851246483896257038377160030084882585973041078249944353405034835400486347623499851039457998439697830064232494372756235494275696116407426301745006128003127667774558415222756420774689745173330514926156082572689887447098006221074608969775750277131245650284444087066122872171913321363666714633900320729040184774147200392824000335688346121488520200245107801370434279148725602486833485392236006920637191112059153298385515641342849037968563981183272687635150546603471900444380028399844426989012261042964502991110733584109852095205034714131859230321821387258870290780533839669354486238833053342578308097706271360363272046627734808320437187548291299402616922076573523700211053267868139246129054284569642152071028098901111496119205250884375768460121749025238560195137297400307324549682953384023175346209060707655500896887316652732457083128112455111105245812563485604864613613988514189376257597445238351875432421918033234050930504538577457817969968930258826649726951427253001268210129163400439626916607833847516431665908918838135639057642625846989337880181133705442733154452231588143779074135093844894357703204958102598601609624568410117364413734081680398366868855086599180271000192668942195362978366933054071446761084353534383167717733457645253726519598290843937329978339597900052364385025210118720897594800638898837898882940479911827692300989251749948706862081620725023366454567950587442204564073949301162190593059598243131908147051203311042572639829982931818484630051910377035629404472146341549255823556210574331633655509177135712329029051306809885764258468404522167158675082977772560191128839446765679439708279613370268743675751179957122237188352854795757461456114261870989053633291990017400662943564695150425639656664254917749275115659373986964843015994849186171110971813796403839298784052760343160610432304266164777297450434116909099083555891327788257917203151913514457652638904697123534224041356094299471805623783682347982617491965346567109993038705888388500715814858581506819551813102457861320337558823941277642363532624615337957141804464761846696654357685094383659894343837594131114076726497428971620193298108894280380227941469043277061650803587026301997939354785628364264269748237396400097529025312686584396009886623613305969641200017395093786348214423282821008988748144148601492357471391488810160516898343274039778552406348435519949751435819571810477301678639237417107435192901793353459770458438774071156573384555831565293229717888983210543943351709539012940162387499568815803230069573384041609089940751761213102486107980904074322125786943939969738162618279956590958639114550545589397557192443294216839443455945580351319440208136057082429142456407030332025949777933447571040989269811613443394883595097877407415386227758056467225185263900052591434470189401283799242647001158653096682861968448581350001987585510149308051046859004448223347156511939910555471416193398184118105877088590832166026800945206218084270254906491264982184701413823821276131407366240515669770391064425940499443251814014208879014211251886154267319357466679883291498716382698483865468553960824248703850045109665530635293773893998713598525459611872455219713080614417666530740937765403890866475287380718804001755845502958577705555306490956272551360934367136094905411748863916092185733552555160774253313199455504479196407622469709034525748727430793717009915386938356462490348273037214854582923381538880058697644692007735580706510886758039478347004576713462644607296018354114310839555118606757805341970150046956818699106845150677866004579649748954774210649359037204873333623695836351431005949098319265733108116567384142536945848721088635890459714511221991792568242514677728672790489426920201130236095992867788935032184464513148265250998351704032222215554156985511679340241259057359881720764208248234635951712255485165242593257808642192870846377725038284275283376317553964081900884316756595130478142146143209337443033505742033201154934618733560830169523709348066150484248515618887083092267268772395444767889815107386258372824245803156020874158474876640540885386851138237494114956226383243220747536526485295330988460828766781511101016185727430818511962738089771214977325476978545591619236116467754559000370783367142540473069937486910715604478222595552625901673815555416046881461464999562570446356355058130859221917600376208200890398741668027378836086801583554032486789829812893245692295569162998293988100214282499405462120751028675996560518713924722007364574414967772373739285630087904376698036573189319088402458857006083057275428742846281779362015151151787917575970909598871029071789735791827389005046232634683311308379432550467615985680131132296276415190861464035952895276286812905542295822401487029834782876917831292843245411270911582681334159142373905840559955962650084501939193968475336013548529973301205527422251049036328371894548535059619057815361755266851044985317099624250403589592484341869193778749332012416366987275111880280615735593002959156724858677745023687763730862494835241373741261416355180046226873818333770791142080338696189451894651319566513959510814884496615832468011809312067875677641944321317122627075597851194378295148358919257833258057896722483361407730887617595504688039430820536371142928768946974888522407375838873995424294397549017480473776279472749007648748253226657336109806452740766036001691240964596080589868866822402193293184955823699429999395143088817512517806294746508577844824612950880991578631191656442922194115780888335466831706769120062812557536324939889458214742268182194967653491370047397058628612846359703715078485203739057000111549898494453843186158267412425718356152840486926140497714185967555396473282997598595407367091712414667924308815771435742534188735568091018634381481707838033971871501515467031853869053982858278502231717627214699081860246400807262624374633187235361907417679880315791161439128346065036854804305963230921076103792033497840974088910666569574090837739290745076364526736862681342033511604960909693671378815495749170607234362715043260548079335602902475700380222215589173928209509214042347273902729547303089784846461871519962634460125039426302506940047570549684049478453304884371583953500941848976092324615077315363682238146944172750803399337330405055903642139079027867122943954115000575722404696198710987983392437317168398813405750765217529535697309285908226606776416345531699290483727149380436508342545661428132193292076319526435565824324748196553692279095150206412630866806261828474842718678942686523990988201903033130416273518800815012602915847119429336924481366276145385978976575811417357847479703111068188063042236037684169345027039173935808891111685364895817446613122188022916277499239533538940232072480425581531410070359800271531098125491923995178398945424853732321801579450831595062315626112337565017165198731985157977536416664127828454545074289688103559474275394648728122000418356073051558938372982908473679106786186402601014158220536544190933894477715217894033285240652300144378925341390453543549042341064500786388566490920950293451018205031386303663183392539493608657799520982238051304443888572216332737913198326097289599563959562355002431842776891699319670007588758207091653292774874611432119046961391246736297769039995773035598535203824880240722271110016293226929493696969321195112051615546879769202775000417034409254971272477109988134303193885860172876489730718296729270598707981016558435010595976253476226716658093059262980857103856139996136565488059446548054221915412386863615432939923903662809315415867204938525473613971426848091001753480430885862670180044021326110239362007630013942183925243419565506284590954698137706226885003668362138114070106339270911886830332153474062869552289835149205841756360315637432826550882886674841141755643303249395836304549145422360635591116525499643674018777808465037198734952956724220580409223054340724051365073705631569865088231173400658409559052990841413860902735247890169442089080078145909758407509477879812568628652832079842247429455329834984839219178548620336777077394773511378497655228111562024980294654470622752798696004692250170371864577148166177686907293664839504721804608477425193249718984169135464289149019598449904726284913359506105510662429011916343020237208753172019601514962277395777596794090136597189253809971034508541309702604226004837296631114385903871720419435246412377122285302976791883579236006000933633654623402213074872416667176626550189707451539873775126883243777842014823072399701909689248378039426068868864385070080398247548568901798196283285782450171995095190887961468441258661596706886361006375244878671319605874055002798181688118553015178569282847376552751838820350582855062873128976714909999210403108590670205788669838644368315943167477898701436302512851856948458752520541774630667600488312846344551329102110326376162860712226020315386331835315663565884172867979133503187259614917666792045191672642259538188108584788906167154998047325753131628866799713031707571661887601840903331488419990896611425730942526997874142433188576650108665980858062936092532099349030839852887328587889102054908755113853196622296419222420273364634273186511925806112409044619736443014049191586174795286686364820192636032684641991890455626587202087725817646682300027774040357967379395641825417374658154175934681156098510997700224228276321449717832900030439528337178295254137644761416005533624411543850524479128900425596838644990959511964948592369288097070789338832595837548060171317594550909250159846551923495234045672124676826425443390737855562317833059963747362929114400983760353281670615875846614765508706126474923262206303164094340533093269306815863396279144683585386736509519152756818258753555769090292604096035977046499386311259316025265606540382840356992295072562199431128152838939016528768061670153758673887249792889351163633978332266048637064561321522332861624332455746610027590737022946217821737527271007233755586720026044845849530837692889134463782863495045998941388533670576423184142727265430298732976109008750822769314581682455104468767327989045623191814184832102646703477987465749339508160783932410591469355434190717990055946623311421230918371621384921710468369913012855380528949418228396408772700797202788995720695460797576705950536088912309546323805051260081653451699356914262694391961150403950945085732164836150466838323169306158730957908545976578142551734252978957343946328899188496820044347009487684968621011744713283239627406033411261633506049814457774751690654366631442532484867116445261690308171187336493758737793283958179167150674538844410738411769863270244923036936069455589955421318004028783684364175592659064516158499108315716354531155513970039816610876675570117272913247419309287344939498915528305838539426000375620600021738844912315425586797228167522264574934798270693416842356398420652620884531107886527941484287540060706292454350259543460753497347732476630783731789758575992309124045858756221571073946951949708193078715716214423421071603609742378103921087577194166224817909598446651591308080061609926032616269215890867205454918222675381092681457584251022698845459912736957918545839297632409961377358591511914607915190989738909325145288646422160515648902944599751400197697883667959227187146434651660796345387756260062360283777461133474537629081942359922469221485789301644971274563289262416426300372353453495053540194152846876035429966032115959145729878952135910898937275996939540937401025947569045695179774898010361072686706752415444924003372947584479728510822020414970671053832154801652323234017956089825813698203265806024991985352365033725804548709657282453257270680854119688076196397940451059291455038878028423066657912067129381758571888324503560824191654330191874365936084827602244380694822729471899207024749821109180502012098548190396072495843534893370568608971828583290498384870018518766053425154104526453281420997340450064031078910146996222239761656682623770686060912854127863714601244913719240834396099467614559443384534531120024882808820771781386637641559926493844845051047409959598491476223708989408779860134940513598385571443258568684064906040155128621363169073334634610820561991882513943537859064247368184669020388868177794945681199537900128892112010539298550886839679051589541610446286630409564429158164654681729982078726336628379809288056200014294617550274285481975839913938028915780095940798034770192778827542466951454990346530995906059717624765354270480800293057050615047561249184613218325411897744073267906898934749744121818261322300297611978895044537498388061967570657812225938843802588861659804500156253865151469362903634838829681888379806012404969216032152670531481505976284637483300518737462989400515015007591687318720394285084768774434503525281249320803710171927424609586262342497402415379690471081816449362617536953918424635955277410372175803672023368521612474084845386245881881407725560847608946591245177909576573278014166633074468705779681911049292693255773533417185555858700946166682767530116026038829872475565232072525341267132557372220267749570908908377059429584778469317700039313294069222154785749900939734630110999644780008673050556374838862926391319778970083996545353241915571399834960280642196460554507601620383842689375865903849574577857898850614530439885769141228962434773544699988770206529664589943426581775562823626060905544095940086271023485690975825397663936076902490186354317135659897090223009292929243402657599902244436413422277385949159891569810333446435549057508775435570167883761983795610339690517350219859766087164662482170013740149218881270290700537835164190131001597025360947238238625343231899157912031391202597083306503136595630844496213559066758025914315439012477061641199551615675119475163272678456773694749101359676611546624859869708019124324244626950684145093161177012328202707679048817385326746027376270440591652156505888531048068895862435559299193923614292870344738579775334534061677499543517502543779191109055865793994714313746034994380732584441425691643440302706149155717641451263327220906953920859615776439309374078420779533263854360045285100898367228347140406370935327804115521358129714866778870942419282648863437621458295958082500024489062044979737731677945258991793300192672371190424962901022415090828151648237753996327443831120337597125390709400649471272605160573836106918087861927646512293958439461104360319398562952382614036733845549002606692931835912399988653687427249123936005226015331791667163191296219716656772720112855169616273952300134976590931978321857324347437329988883590127935333170972124800031761015654581257548863444335321991954914679312994824925205015930856134629840786545730555957200427566316322798679536751142354079929998469831399470645845579308348105168549071474696619913753904801133195731221221581089244935952220947413090399579995832181752712406268608159431314309807512162243091271611663705042273918664899540639689475213088780533623412265911503397446792087135555913960362219485256445781915117284331673063485753093944002587610988902962331323756076112816058957487442772740565897681000469344900136501655951730592484388713351291862152776298518548809604836640793573404450430120549880650057069012352055019131972467716968000702937875572256041884324302466363228156634176516374851080537696764124804470100851358514438357457045866229930122960186177482108589303361554628042120243189799173592452981978945528021813174667359518151634392812442421888624004726679913202402935655771787032838703129886322508363061492823964204493910654528151306626610906613503235743035747313570270166948782155617618842624254756819877791723324392420805041624678846865834570597523682624206703330073581240996405118274617052487925698423564833165080520301617602691283090438451530189557829001253756163035407139091724810621193755777327114235850033364243171372091435823205397912152721030740436818757080881704799519351536659171745210455950753736753977273938826641017190119225043921635507193017582969381606101839533428123173674686640130396640024032477000644189642669535766201400295054577205430169538423729779131971423467079042765027321630212456285319007652372935293215985232929657064401105371160501507719799461563333828670194224160803038680560283939387527376955468546119636219798454362780939840925681386514400316267827341521236739750686410690199222162637239330432258672905651280257778232831408263737000410888148204223897494822848576722206800137282541507181382959902393903035915425261843022754415734113561443189573629018906456480565989016682282708280576987894078185464244536443242880392418416250458885907064980892648543746636357080521019953802205691691700502004467586777635872508188323861244780809868687546682862338023231916414938644372142573905624602623567466956405634810745082739747272272644239041792671889710823437732022954722532078565052772687814959186462130431543221453950698857721194608978329744144836461922223807607215351092703593542160583858579025481009512110116565055948149769576477277609836728920725183776776045033274613053419747681151799393701750844516736333680152099106450371574605929662858149615437920631868817569509640856856344931763426764925997872605502951953326187135914488323366507631984145047053120322449748428615405502142167877676686877348989214905209968369315967561804697826369499469469379761142518291945621477373234318939938174757997079377650268285221167649431231447032185062254666236960448751030511825435108181127274795377370902279442763112247201215634795573156763919715475734864190400823112988482161108574542169804763018004374753127739829341589453837357612850670724531344562695185384743682737764719660924395771530594454512464240540321911511723860755045624885705949841834946416583258363347049133291072636972828091529620245563107114302945063483146327132474303703383562759863948556381001035968818213105069418322083432270016199446909274527438365846880025934277182725406971777903653599598637479542567333757802923190834983230936555768611348632759530158294945891548497707471622284560474652426692956676309330645619459288696174593364295027879183679336831584038492155293544111961828297571639824639809099834870593363493468226867241939313095561033621805584315952544558162304253832943860774200994279390073653185260797954269362825561215111095240073431569597704732230092582477234880786894241876318817644804893477058614805678121441794556023078947238093362783114744336837752763757964239803589858633783426237180985623795241139071152490832515115591418790811915746000269573946478619250607644378488148909788815573439054143229196994125759891357359066701490989756956973966132585429303230465249310874977671463450981278280364991809346579789504857733735646311290121774881040037184513466918804696691748052847685386913828581146085281623650395949794808825892855898407651064115390260813646222590787762925635727345062296297418073896531910512284886134735919634227312916967226319362230642202556002115924058629885062950485051383314490479699524498566199582846852038174013547529911046942514082742487641815729485870440801875313731706826672899504320264850416604465575446278091454909483292389957478164162828359644297693757471142289297986891536454882038683736736893173703085098040885488422819869880981691127944590042408976722425052753318764665998420551761735780872109051217948381925653192907065271720520549749845369563649752180501260745679993852258569717749118707109579062166299665880912996275181008126284307533847754771246030290891354908935706854098722374179621023066194203062818442516427809473453851629544565235820662712696226922885682656353357294693809986726843715294673858197243703659380251689210400854474700083827070994167982616068814329111222221754848638615765507789390842988548886100018271973087262245253567996373232258686576014073361983424302250630292583920122687600062132930605961207591530207155490232249961227456499795056049545273258453119889960468971834789523621853796712481419588261745140554422966868385390909472669185577913816431337025201687414817199004735389763520014446289954458557188996473645092753267616540619644353769718301354104569417161583790704472355218980960058917525655814229917201431187316016845826228240424256390357264829456581319364536957370720500636987041047332334839062707157536620119420260164966267758405514565418470755673568089358044125843945163614074212089617818842568478065413004368205906034085623746139668952665755650403994204553712014895820934821396231823757173000615072858600861128676439597517357409578704196582544288037846273142893180979645174382471939951253774866322627153501102401796474647549668464781346824613095024847038402939006128015305485552338591352798983746041345636444932462207399415310425044113963045455133823038418077103352392712599937779404670729237324570714168800128530179325638202811359090408610858772895896548008569614156607712798437664050710963678886114648138133403141167189593148226502545403701688383354429350163009484011192263105504519445736569537465887935427240713633776802782391572864204297694396647547554186165185339944692646855140396192953222172708082886934259658820589000463518057480635263065916780455498488060275153589660639484464130796438895195168837729311605801495800068962757623580155411477188043796043026473682498020111382513227863712406744202842807008380865789030728038847046234571713990094852300076616492484147574898536155570970849217635436735619009966191214272686480423675867971180051038909062755938177331691135979307170230789829303865839780378230577924949806471765587017250179565653548402587178879224432685845433978296503601504042032194356943269657838267390481597049991516268443204988313396891850475028766221125566252079405568829194083497114473483555259453570387991776128754033410535504494179895664792320886544142485313953516402494508185014173058688226666110597640711543792257293871116765513740137818964579169371479253850800895228861998337133611730932463818214033878757131028540719249607577667100273736371466459675177799843602494239401596953890658039959564447274846213762538672114253165186635747875317072849956338337102434594926805279965055580098550741001074919072584125516894186676606836994726516028908515014412414833870211310684984597898876366981220535969655371419825960066217262324480631806921324692330385813084066650149685273204853560497229415919882695521115394928976521068140128039995448083645305019275691196233038007037549069890804000087385015986095048887911471259940913497242155281512624324974344964624346831413174408744467557484173721728978555794197489821148396982789407156243840638369313731104461864922289091130948707626789134314263658859132035481619852782830750989700563834877963531498307759168975909834593416997002788945222738556991706221088815458772295532254658410997371316698820862528766576645206740911224881603080728915497811848189644019689556156060262378222534035997529195470756554263102070626931586679318529162134256645408939428889684999314980408084899008815762750414999151207731275658099829777525642230984598963305648042973009577526784380553881292289082104597285301743748929039222123686754940018975163848883212439131350401430970641281634857363797951628784268269882981667526721460554484962719164364730379422043935168664217334023785919716293977567843912489634023902698519562597188778159365918166195573040300442892651935879652241298029138417296670663616513059832519354617156783202925767927965500789041249057044582551466352319914552617423997648232418677189992852848684620893697794424104868601826700488780375133444956945828274248812504957741036900069306380729901592067218721753451944798300195487982284400447215533147909219631110160940196644496260166208975171523419139255116499420371434040437630558352274543557213710358467626897515096473890408411791227883270052527660339485232945676954974748012326060825596028080408817458321307136775160925247667828386028726450853466671459757587343558356494172284797818839637637034448846112127582583926844700695494686237374345891339250368544977390827895700433663756068266747732228733860716056995617793475883710277252535924833876694410849271123888840495082919619058445573629446168062963860218576968432455012423910207040645132360379324344313713035416479597253976319529720298684705225515776943938592905447899813229196106223142834884277716536645786265471012725980160838540330499889434097909454571478793850905616540107399838521871461539766327327574446623050527369351850392753038837583317276450362932155391160804025068079998067100785103095592826203635945574808950222239544656653282391997616382819205775535417632622403019167082311653230481222407218285011855653334468423941715001853656552210126111507213997250307916989081897271315103414397593933747932104660970925661301599408430947494755937653563586166721440950322298363252254883402683785378040224683456497326201136460526849792625917773667087772209317806204627171111944786196024377776284917176755943052749722322885361319191239002555304283980382728735860182676503623070297210476758101485792491635809708749314331091516590750243693743978108602054111509056937768907553939009983397063386275893650058499506215710268762946291150220648033996115861310158133927220438362801045763979785045621861860052083756988693066217669517530315927174134495290167870678387258845770084658018060664730845673793413946134610487824917357243293370636326718169298128794405287518796476414455082185988774254868473064984656405812565334223330645862711822927884686955101007829979227374209636924414000826253406610842940869927197896880806839321129313491821814851105479601725665466202144154430756159285060434257162233185119575407098001204511280532386858356319841660291185369664664213425181730385718660160971378344488763593446816961571056429149096655419288798616843929873092699568712223094575306362053213169205856485400029435563108993373306506591764531354138814278189294898892152717642030214748485925755933031563473069651281642552401575355961425800400016301439546099244966568902691652686187176764662678340501788890169439747406837343657302903891637625259821182182672351289834369415492125716985898313691112803066428270941084765937440332418367248653183195193491676527194465746932432088314879169827904988249983093041538995127422818881198877503201016658901923688971169417971263335244647133608474111725828115829624449926834858214464544210963196915892709297433187298677865209377073785610109363232621134093276117824341983945178257959178695478263869737254221718644070934045787307090894175854841284942891357572601293301932843784788720746965674984312962537185124554319053692573687425645975158301375588795065844658079940676601975609065315467657410206476630180945643652093479169840508039693471203335252563162745875101713647007908079877631982902282710355351716876940595871251646829718805512280941488705188389704017720440009303908963399517832766792604477327560663539333355746685876198251921037488997315628198015271436403922775469150195228760023890810707767541233378399352296028736926239939939153798847329981557845868462220739099198475236154464095359599818278702836086422745336733885199487219944387037852128545829504725427210871755510894907071168341217021734988603675844488403389255629117034998857066475082132445023673463586887473292855449280158334625921395108414750408000383560856742498483994066496793049747646704314519083457137608957318325046151333703581443010214777492423651375468432199862336284507108105184384134107939412641452843917389289343064105488772761044471391868683596845843626312926546673762354571288893934206298310864873962250766201227011177682796189660439328282452644580186663033090599398504304228367059994787330685451879241252170526813881696329887620913553896364739994642535265624571531087024633823629211270471849861180260542562038345087879351004340053782705416008424803467777515414552555414870281704136169182208239453325792218833734347439275345911550288080723737401873132941497934730960130419092875703458285255196211803659682672498679499019992169716230634832630190623995054304061614270419154836393990031876000893409600475232054615179555237480297278612811218381149903951400579923170202659365053669661242730656323522955206816542573518620177703134567111574775487709396380392214593388594809615865681117954435646031782422642519186661508735775628461219499403778908016734867749434380785991896045070246484262596802185376290844255471294230492032735901445508671388288463754182143655596727341986215082698410771816688144028140717308896624728251358826982985551784869666113875990738182074738717410778957665257126717370735253803249865521353142495225221225014335340158509381895693006747228377667906539405966999603084599001150756209180832335826981980809712377121292162488797520024799636473785462355294412599898834973555889679604492602696576384808080245234175561952496026820646183090812238018176783328553645575204287462771511334859571660727987373893164081617753681226905923918210694921105294450787379438676866177210700298205207549592729814470399013281103890500114865581958777119051340712252598371695208169952257129170706667057376438732377498619340062728178958848434119202663584711811913680166415706755503910949841555866361935478044793052115840162575371822399467300296967963941291099194079478150532151998423995880405310999382493047935950373574459619954089409016777908697698449753441074796775702794558014461402365398949363290787186843443106371872552905807714930661705250119953089952047949713399645684210914180553974530771188555390623144525501811382316422991326087893233440755720217611179458762175262909145009915440134071127095225934456006010940879600437464296959814429618325434642956542542851602629381293352192864867438583176927428293424408873638083630949737402505795084406057913551034009367912824993289356726168107859278622177447220684552477427669980322834510088583318551382669206357865276702068594384984381335949253097430372594847640408281625432566362193511466908495678713364215002930091464166898701552176622225843380049269787695523385377599476473897851369050600089689532912071067382159899005927440789326947138091516892262879621893452914277335772167365490386320404912914644789267675154384086575330451759213433707479211252880357522151633003325358866504918127548048588752888879020929246581292584698645773680021542801485444762088661079192015588960929805745237733645773261627336610695974721297626906436771428556687594234870826177147132777784614434719010024530984361602014411066506716451303893770180946411287004908206259930863799436274637841097958736085089103214805521612450336671445535515068771809105216236607937335350272269102948271666407076849746908997880307360212079126348282892880507286214865635714485501755218143148868121369132215675784541330132926333141805718134228001004001331168903910528254125556008767289405732858572400120016664312252479418258395993037255263731118594806876983345814750598228403533708953802327299651517793594079812038730061266178536288334440234126324423021750028189027303479677191713472684036647034218925434005040018741070544208606230709927861098295718856086756902873085869812449253469147513341418904801195650398601115322318836164065942586899134289942934719475095709394741218465160833683674581910022138028220946277966839006792329906911995774320039665796824441630845727922217475906561324357679316226014334074536083404860089261852287924852106444621018749588212906918212597345559217622788942471162500305340205065892843881819511686981143043795984834012215396954586930662812045971871101037137160803866364899737835268074507610936553691321054405257174172717457675511838908266704820337489821772450400938764783035498098694539538411561657516347194165038670996394503620897819348594709806181969156901005769010194951481394527098827231306588301688868765481878407195953520388123810107403024691893389616497937131924658247430763596331037873242539511466745606527342572698176663575994960902655334393411489294231131105888092286265764832132861846280671581500619490644915438202994603740582980982867904378678598441509529544425646346472840994744306825044935999820779369209249780670397873715533792738780310906454614174848606313614841094780512677997301921673186606161403345643149343890002160374484684895461849769763596401616879473075730669872471189400125965228962896962256471111435207931695321516736110989164982793034241373017002357475764113002138310505755372435409720513564364484598999483841223396783625373662108877483809796002826433788076492284348779502057775262484843733618292129046915962354595481056447431724561212279288847901072320739230102626820162849563940669876370791207775292329595377900600465278092366649516620181846658846846880119839851721074199398397508064076879272271305409609434051040656737566855114603895046736803964323127648158872822584253392409940242139585651454918458232919216818814901737694573476802676543331206341099045795012396553629767454493628445297815030551490086503649932037042115962215757518132879403692498448142434236168123434561931825614838753485839458744944451988003118370439680437547815949940937868763370800950054828237073257953787568385330909113123825263071106117487070202434245258297987802056334644374262386734290917385743579167015030558882673553877744810520653296333470316840197559877745730112136943458185851639774878611283437541325444324127228975160010664627595049874952007572399707233848111749167980516044480475967148755851469673163918368295836887222448497727710596281270560075280249405320775803693324521827761581113565708465829900040639016303587695438101342670878394013252303880751878090053353142430022582918359602935679633261036829339218599188523638467562939348472520637703312594660602490865483304306855890541322025283534471557357253565817964709468914155074963589142483426311834393492038217552880378736767231710341487765123201476904634013121257840292157101642646341561562196095198803158353170737584919838745878533631456123978790616352400372390679198594572847444038899685430304540588796862624827059202278934514383382722422716268517939536648810853673465923802472316263520676846632472236782116039062254701094366756919606427788049402097152319447290758443496877870565385483258303115823146202036740259665243505155808204517628663910612776172364928154742811728181157612159344943133535129995508352360681776037450248190621804442025751376554923742289873655587191135796843825723857180501294999514225764515498406989524332868171475504919671488886962834657574543983373365770047193602282863149874810634743580970595644668147186740432438138845432170503184458571284888252399757726294158111971801077645717130380297225003740213799620033275595327638677643139204472381870877984094526520013948076834405213373263382431926829135311084329401572857675963278552293613784492151517450140501828667501072948573760037249483255843227174258106838906651260527653846081246546867675973317721632932463514429656025178535957214634381436545239295291298533421457321785148917286991026035981523953892913584656806425017214149593095689936474634511530250850472822316340260926690922440392730712406222832665290538682178636420350990127101959637708769888643107247320425842021894121941219748615341883352060482942818131663814277910460908929633376327115095854072114150289643924102876340100194167856437206080234743577938050032679694164801603419472396896005680835985095695702277404545086489381107428373036748009231109370090288139764703616835366578694624708846950424142078581871983231091335363656997279215638201275839869788842562618015546453373779163932313626921663280624566392642125402411195573244383777975984493183349798651618880706487005170154653480633075651405618473664550603349439067174088276078664472200424351758277798613323456900469206025726209299374878020740157751498880609474546699851261870957551471646168930522304147011220674378860282639623863545940193263436790573111332851827926441977129932999913431366359340087733100887631666055250556130130102510087966398554285609258897932048713153128792341341051034534406518938326319012873439667006494068734057816620293030818626087555282592077542323925795876875504830610270373337609335002515942171074666651194516002544765098601091838511581623909494465743676783537576194433135618618644223594954000148983107469993212202138396856505088949346682372539608039384489996679886162029122700641218079002855952664181072993911840920526023839517870921236571342601113855722766035809921313903647165161340521580043507206754368946855893760883584602740353621071371576601673625888518919177363322198947163816717820543073103112206897519916497276668670291245887372619747559922034174892894471084332286661328290138297112715205530739945658436726209465402084685232189290885177176045748867505360076762223478073893614420131185451192384043328241277300666986519276535374464410344096517596012802650915743189695632535259635805196907284736759978063527337472513241359643756826767627301347394034786297336272122132552780360851434860978482701706302718685765096312911775285606315538610823804043007495115639615043393890268732446876086260255502475740545718751470305918400767131172451054584890373328465892340592277437126883166116685862333506803698668272848559372880345311951070976395108914289525883606777585201425944534600469064821604385645308499358906173063420700002702158353627950551535210726680436031685049890816133030220762053596665762685410809545974094205981375295370676295734007319993596915676130157903213622200057524946110375778070778867586143318122967327733124091873938263045022529468002842019165863046981280735084119768207420611700446830507670581855895046835190900856495724352111822116252442609377565408285320341862747929272569778386703153747980151460471932552155689885907239441583781485787679736882335702537019595166750847949894873186276106536465993237121072436454392318423590538603742012235207766252910511812980220516160046569317859919994762533971786743443569161123308969864057492440233182503391178586027512739066974068641067911071502118786618222892545014202463462250929730681787535108567117467353901682957948159069039270102707201672235111400946627276280533493692531286818241050226114587017269838053138205551096812086883781214058268611564677746999181242288965174742400644139526322303282142881647956369914706175141112845766174992720438304055467200589661323376556325938068365953708237318361763174677536867335235038440041682364994957091727643547746901060939503465173952111363568060443378124993093613660045551379540778731656265082813989948644544122197757747372651615318273386137769283280266717795784464411205787385889565545563660653449829382070585559275902368695137262076173880564687648488390984930976335217533580257165621992965228277707598060736414491701162716305425910858458655815616142233814712191334850427649538425349985058814475282752044433300448923573796863771096253318763430436417549376207695848902171708707061996915870948064453356468427561093474303036249120319325579594851693099147718311839344042773298188538433755495364892230848980045089207790995876115652068519641054425731820554475316363934300663981143491647328103831424357137803340364528838199239463689428737269893232493308012000619677300281560820991980523057709176808953724419393313001666210754940776845776578285131334950042982128252291665532971775639026237967635906838913738487217265313083600238397632724771394720154540593445823241290466603440802301077231097289657069086568091557763960527060451518776505804060856923591154411421754388959174992616103942883532075606831326830817449945661917490978845068841436030463948793847838943111766460615412535016627743540443831162717467887811780521861467688570211471506379164066493014099053151365422471261856887787025417489173469826740972641163845352762848696512593878404943096204395776733060373941428676441229545837299863043781341667683005316050355956462249730233327218518056908167239190756673917149553177472008687655475646727552634780108656763887433228247864860746368531251173441024560840198909224857052282916835069662632822008219878054242219060144094210915890496358249266461108600437905610334959650311676552322879583055474360391591808596112676836599096625454836651405777313691908769745037761981726901138063003962395650007208562644554552682092318290476462494553264260812790635387262544642806352818234096891071707306853961925942608507605684643693294895451289401636783711367975045130476313207946469612144055840959324770359956751561065066150125122383872867656203616499726492800381551200862974880851013849239603079598804161773526526037046042664511957031709392742626646242658578438548951092268876981238970513120344218311380530494583338327596208005718517326931365341493192224210746561225175681361486818286983840096619445387816068047987530947619489604952770303239773223144272249169694419852573085016936894015397242410708348243029016206557350997355430265640297292519458528925379177023154611827833329853577511040936616847130351610960056871989345799187436977297785664622079617156359624974348598459049970258115045491874192329953739631595038067800958044712823430457835135675734820815131780351233339278214570094617221150173120058853892324733863784067163895185742512761506359065764952594484459555443040756624750037693549681190283555350184264545324137090302508588441637829031235587554901623308358365776395599865717517720769201521668662034596811409619643574459904431307106577680115689996781729894632817763604052775729366999251691175144358726271980901035001285268623399757886723393093418624097598435343359169208033960325734881375553776568264174732119762992136712927248114269497019687661889213800420494162760552896002915596424599818490174986115711045446639160392766730465179980440188609087575159740278507038768667659302416463400124080728441177116444337218813890661043406843689764060776547670642457846646952514969143283546416218312806328000381875425251565579827378468564447431664821170665291268913599067501849401000666463179018202631825701836548935129208834637314178201922704846852880910563371536122153132752187851836649623021108776264150952864721005787502598303452821149798824504771253539552300432548787458503286314418401506945051072145056292477171498213073061504077954009687267725083700498308601753233177155271356731886299069984073410233486355101768150035584520122873968493338652957958165770500655862918791706790778508079284955463207621738166865759808465357013228785303201388236052576751579919514150968732957738758304138846273938774408722245490462804452630126932708955238521480067510320489530678058613353183165221739298261063875119173140432502877229832962618894367508472621999200634370701615701861716547552741261659971213423716831804035207353739521904450386232348733011879399409147086663566665001602074847259826621262815742845350601181440012119479045780915373383820917888830914140375680546200401892947874947168194132521597644126693916108053245859745963573662040849453406747060445081532055284193492846585283316314723339680018402885020214558385246106628858628510295067149336625313091428535174675825419224562496646793649073055736484585569580226536661219565110554725835631401748791393903583253667620718235655999190104886629360586206841655015406027259163233759766789643236164922315226959876391605781880837675431806932791810060898652912551067897263645390047016313248590892385575575308460572167032440189219342627804568900372184735185381570708833856679135255328410884783198109247034167465817010730898939500691691038854822298628381432986873182134173088449557924083651514645372267408779650918370123611731615006967174022496858507907635087028367957392628910431767780890289678335504061542470785855053111840068730287836282260984157846277006387689209134576200392501641620483552071054762904654944415406120261818724724103733643345271373519272007342974129834191029551998924357115788884137647554212229802756966067734112331524394335873330668474919114582319753305802434603704475835291386189210563879949817284925831606654774670611118349302782712267404998540802331160898574215973786702657891730310242707423742497939867358593787166202896811329908635710646219172311703890350017281053461778936097745562553844522459179521017756123871166555918988186766146236958667248113700343479749932458924565868014771039498549631138832716999014807342987084347076495606023367122096789563016558752901922537050142360993183389340968571077431128500242321818670112761515032996662785066492637230012724754735192754108123194757542777200103397716432734261241691020386336011068806797353317983369906034070738268807885978943134120048605710558479687046499072117651315960517902519702268209535663666513160910034659989531356708052772932291464462194444449091019117272096975298902821506970777230618801332746232642073722643680294856328496271310327773369500324850073987845047821274813793648403517613713757891276032873999178630898230940422004102042694529422680206007140012986620095541375669086923100423481142514369703014783373297288859663369680594141653741674060933271128171513204956166945542065066685082719862563021129742180240072947358439267767054484672093902739019631520612678678113348468920265151513888575885192337269846929349869470170028537943856851570906168578725026301423198803476329040167874331221904109616342228293520499031348114388696436074392071726240613009388410637511408348853725986527495804545287321198192020310910825764227051548684112919877487961746536266881572553229647783082621306488617073202442838124217340490392097989283309430974719138965603303084363677470994263527668440696611157995107772746268103927459186562703377666160086690014598213693927705848555465339165734529269249976623515551808276746455637002367801250416238879503882711259697264637062785196417954106413875873056152583739463577443543177637176919749484573684914850921248922183053827939409265747210692157208799610619315823702190210492683723704563802399334883904136935971921171978951132915178810772184174516998416101230073641805326110256695511652479796920499602468650712970265487253342925739262905202682973744745653832081770871879447376498469543949889370171661190324036868736417869584463944760066298769742178280855551951205563984459485725529107743972141632505034094145999342174495673925902618165407581753666838998364685378349512301365386414189130403164191238438762585336723805741446305923738591497207072278275331762596850223838216953505343469749448536362333787196367613611326541767612000554451836625260478834056920686748153452023052290500825435586381516667975145886437153546044433869686687448707283474349456022220461349445585174197188365025968320561668294389521332115664330383244625800396247774534427209049075077274990701666116516166030827923567207416554600496420878266860455476610221326892018037818445793930075090962808819315913937958586996043519504188137519755246211935457774761140649173880513274153960944279156127350498092871834462526931365746138418419669558727209083402513009019862390731042476888173855455045882665920324339023497532294454160947146369644621511885371881102037083303392799723766798999201815116548865640998414331740769441744310880016263645750640716906805680193892913033226959693022699039101746695403414772280387755788317665029316840172036178504116317391181579425698023175617626568478053796431816380295530110575004190215779517391559843590288629297098399244394084844072837341992483839757791918722552936909217560859150742123544507510313010727067087288385460513941510027559723063805753817100612723862720293001338559548227038479655975036258786378790810036447595169208807867519108713005721193246502663162483908293261205625611309017017974797763911321982194223383030355422747530464920703980938992243022473519480594603528615511597044762414530338912429999926781906301643141744274212037773870337548294887977495074782587430458806821540277665716733161896030717588470428443030452839853689954270097860952216514649897963544747166693208839459349964076599604407600794625006617919372322937998535306909600282037416118266346024740304801552658789635150610722415852935598178998487725859831282745199021644360046248028962600801444824686532376649265598969756352041843488001334050568957651270661492656318983899766662752065731543312576454485558073736372422537334621410785170810486186004435832947113713138210785863133403250118159606706755895945352224344528452914609089237740329505266539873553603949033599745793811822699909144252509450378973494992862205865337429683983304748541578225712285007089471565541414357234740095320894775925894919280871999823939729574954276953105097982437405396590456442706078637440621551291632686567993529342361140910979663365437558878481651410260668719627855942403631979246923166048796263400066482536588404554673146830300617051707073662047361674870784646502401784504847676864088504202674116077221064113383468220093898713262808427536310989467707850954190488608096540182500572820706009732203047952741140017345221987913130223752994925513321473030918708353212355387890180645326190248205539725923936974750581958824656196237646246295175547530034265496589114436829019328873471764834263702745921357682110725226375155190451943600455191002743307993264240239216159044701370118543516405090691948959767935325743476614643783798850573292258722601202176847313192956818502450749258386732470824433770504026456233345380549159242330742569834480947852149536608818797457280496687579904668710142907368918208523830273938177386164148789509858342204485726452274578984016287664991307746474421910088255628850748673369034127886578215577996009447943371728371888547393071775220450297280118165785612969940765786404143761456256363415687790955034403135627438920759913109119430482621589461817464925738464764278594158213889784630786751751517760020287137910800479294413827465091949228676598955699615553112595699627040028737179251015176492109846952007549633981996958081005513445810984183032780990630633554575931033687081747267407326762829319716635068384328069979850698115895355195138044932311175273606321817926897087283009408173289859877141594474264169473889048877665585163886281449605641900052782651513062009457736367045360529667498711586206581553678871256137088212602597495312492314899790080288340984225537849075963944305731936854557857775233365689077161115626062754826171650198565577323252029430310693603449550020120662119382090678666563022604158977485659636696922611985853380533524263959456863059562563802620588088610713222743951624003038115227720985746832248888833822086709156673938998780380077144599121594226378839598605724942734999971528756469767795488869323395014693755214409948359020899096133861814109858369149081034136774340054973921818496153864851013826915100037630138860307863914070293429157537214194552878395502531119839753962871198467391427382439183346434676900904981171270018535546443280623445378477346097531087542367613296778987473222101006784991666412168749625645641733477859224236503585865477506013419504715959072364399684584492295039175648525055721897503528889604252911997987115805786065767266308551284139924490066683295866937713059822644297544898926740660497286196479688073998935270256812444071492103337896841317569530313657986761925653516867485823797519095468126731570751804191642833216575366739305964474687100050558823446538517600965177681371601860493487887231660954582928702445490402442031017677721259664591667160460641454638149490459935159356327806470852991291052961292206399048000061362486186255651315847593019780316029485389362858076431379895552832742371465414756104373188635288870021338323861438561003308259234549799811743709298414918019057336017556989771026160383895309222020925533498095707426200306829229373150700011917821476571046112686505853461917613131341504500762661879427113533041599568103096040694770830895509626215087738582993883904562750624871876576306156662251560381621040517922594625540841245764323271380751019058207868088681904785050777182239118841551923038906659289697783490614204294056957937939390922286217727496858029982755985930223756196369337810031847024627005322392411346274946047393944559530017105875615128563462965248437197122060049599053136196673837122367191064737207971942665978947659100594984621815128423258556322526066206575478090505038424749716458777550080567311619554685087841510680906916686966257273752082442540037806229202018031171224272373160477334033702759123085027562093064168124116371591852369051635998419829390343304001942691585958783943555941119598908773503597377350147996738511227228577475526840010084176414011039744049246434827750133686968922788341644895007135874332812792413788870317731234606995642216554908214781997786423971407444437536709252065869936707696876671151628503963730874737985198742704946436589201358547362224708675849435235751776614802882502485785598085833730874527062413942280686434699824976866142611552289045434885723906909675103172448868229133551523803505747650469678519911797188721096608864920802771903785923678743347525636709242981159002326166637398419187492059772899333232141536728627171963975828191166434285514327557416951842910154238904386373590311561610677356820189777165301798530311670516589999272906001857050444338862443820842851220226720450992863620405487187971212808679440175818564429686709512154613606645204840114352586081143989565638230768286520757488054531639068332301428487209735379642205509410851419890570507315691809506616940836082681769139869025912759622343383890905421387240047506346168257876527583051355921198748673388756407988850794245102232629608162668058648467348703295147097177857179006956794189887331800516690095195956074197003274637199825533381606988081550366090274485207685525137319474292363283968766471099152938677987593729036606223543781893350959603794168768297373650506724362640728565226022472785762456361969889457620049660288741060119423601796361937136446301623506777287087917779624915842685104203992258727218718204112644778246295984096873747525593181216328266671051890194308128332072437886959976857417222594426097889717399551008947381931702216661369205348653419449347469301509804709060228400100293201465843652805253632694532542587503917967379824662134581853180095763623508159802548996597576544906134481391300627292185955227681725165547987796281118409287692891823927046612901020081486218545459508158676878761643549015317262065231740188108013021673118987577792639263242715160009374400142095402291103932557558010571704193169603476369222173165448506004923521175922361775695634304663883614697369350089219479343666039142065874735991413046366926563345281812264029534659520138563967063277484423997289106705183510412024513641533781863446097301866711448111571771964564948271798954095857844683055551180082814159573688185548242142686718688965369617958530001702859531144446686224296798726097171581003250170858638839832894428872954846716137527412454818683404600295142843699628595225073028275145735286185762113164194708309682718989808365900845901355427046058484535904223044087820304534446745614213036206290953280430156239787163938583609637376517224496845920740888126545675609381800697740086460090408350451806554226312992236608315037371403338326956599098169701873151847520386587850343649949034867818799775724408204672710629275732515979346132532791651271530104967803102947465148924668265510565539213084536606023095780389478972848322801652134222124237693542993595112003666770181222123709000005389427325954226801682670368403621867103822535593107812374323936894744435912862663577870322842840460251774349609947899576031688105944057676563622128807709291339765401597667983175722630258288973577746836278893817005698798671303575621374200914122687472209802724763139625070943606416745451241544578174340249494368666348617225695042071774369244734289797372213471718116592393656748616943854975938647255400805849332726043626482722403737152164684886932801122116738240146306236511158238565707818987769165421233602364345768236360014332266652163724541263771887586080308294306859442922599925951827192344109556503466303447643293379921950483863127586499853831835271708663171042451121507573696142818810575789304207122808457011059902605509323290840073952314817814213892346595433721912102944434720015892256344709752387765721647292257203367560213852520450159988689176425411048627387457366071841645351834266908951721764972170277191964952164085049062987223093763361335650325760205540955187526135251112399363824753474044139908460929741830027372757014927228473730072357325654156016263659788017884996883176523901036217623789259527677830129253267830535718643866731053132255474790605558073353004321690567262280247767845340473423659538908135129206188194419350640491711258817805028914929086967183868139288135077621947484117625531547093075470430882929293315428861913063412935130809202164057987409476303662897291748723486849071075168269525527505162783791205741984813170299751088247978359424394554493028766050358842591948643596135565267752128575450017315221182055163288961608013915706459060686956379168880477252381961277746586667822889981558587998364475980210965157354984108377949712107063242253166248819436245445137269525980918032639501044884013537372397477841448990305285067699845467499762525636043843734522472230730908431135022947817365599377811965214603638650148370087761852124567582319817771919505337317800068365107768645563657845415635628174523036919093539409807064511369726841236316434868914786950914773343141614235030008857236304826641354472888202207822313737240794319129934956359082088883750750810155892678252196240339603901745892886778004703163400699789514197910331856466744601629481673208772456258360396938797294612290864184344360906639236013111365378144405233597489310296744662888713051661606602735575981020869210496692230458000111481776480944554564565203817827944493123094169353942488304211696257667105617062200237239005017795323270541918562545151315654705969781319180153883284525938157621296400797095440842798234432754272332039673960666643032812200848443122605403063185869066604360546242969820181298784962919475860252512919873224617682805501077766910330496238078880511976399074479042035885574397814626603319914006500078221753832389484151282180689350379904468170178207770973417336237511949914574805887205003642772593750542804889301532172943606979592514646566460527158899658524633493693198671120668738730663528038622798332234959719856446416002135641203229935958516483344321948491462059140992738869505663169156219059120064186943487947496389617365302528195832332565175722756298687935911398780353091673366261724316632390166800755601906947475530160536401489282524388753951338052252552127222367223919390774519499139322598779821163084133510093908012421479760778125497893204011362598731728701046901447314067285113796337548429908307409767653474993822268862527940462022746879128433103111679035955244833225595944635125840472678018470620669242576818003273038831736509266851311969100486320165261628549497231695978530154689923477087419358408669187204162952539552997293315164087949155819712612274698320425199295425662515053472324942499366092960482361509029388160331676152800174144488478932465608738429855931413812803988863849856230663021369987133535158470673080444127294301156848201320409225821831927747417511806797587764190166096330633303149925053402435146492567578239421536146364467044279400488822223265112662322220092125019294167433711743359539150227134973790735886416491818860761933105978553118680346186042368586689377008460216939444518753484055937285865201498940920653378594376789658383711818033790197349071526090786023521018169423609653749653176248480840070969586922009258168425080265664025271676573211174183771289397168676614533213269255232357794439826901481992386976351287165990384147335666044652667800089723418872425314905970373305219137792589911761131447745824252321526699252543879974564163678014243902233449191802812726178819181907494073854993106776257590780592137391302422964398306217624605691192481064244141710693244403168761370422165649928882371386311764110848192360650211563740812275124699568502531338140033923235274998755604709979262673502190269072951897627418203506702332503646354023804600261734130575328927112149102779895625126049714011629419454499860579759831331534994157240847888380604062170956891983800993405780523461669944638741345013602274104961986865234576214684317433256404095236298714415506879034943545589820750777194574818933994790639026550893954615569039236160373961246407675470255173485080754348589280351613989767686990776901984519316187410379034501330854970968091916155833583059523151546759926523214728270313222827205523286193168609042968836351029596158983861123515513575201286277041199767356119561453078938827717890592381868099847601205752394481188114116797851442380359025318833999726757227656428861242132511437694710812420690271505805102490513769772464112687315341117461100417171807571905909441390960549292563696017692133335807934191951162069417169808106083529674442998926115190195639122606949877388818131036683545824167270937915730926902490008782795935007017745741488964361055092807075719934065005951214946883203094549292006119001344160959948515629920186729959786693554556483606260971568843963044927536157209786043746327001479047070657487056757716213938331816906537633509231063159852998794292429650279754738913270351436590637725591131619531427457247426187242175130287240099460239930473055226720698049238732149176350349274287535623093329522083981963790700765405037207357693120511559011485825344352406077706447238964651460057312183357324873257295325195961172718542027220789203386456944307965678266641870214001027298367866405401440252667677641932769655934540022720948338840542707640285911875095150619272946649671279620918894748957861783960302929939439212488101985722642843586699170510434859198107838821146546055911822016146798893867409829879025098772156372655108933793873258969691124837757748090706579013927971487091064498348942249973428763030877322525635161858604584229784900354135860374210869024138070537987289316750441293418331828108205107360179378694549493980768884708182266647540789877877612239415517849901679674549454596998354243134897475725585430106429601166794378069989248708664185262247744443833468822229374109984822059797997954423797311834099697637256463221939394521990108493680515584518874901429739532831217386568074266745492149591903561925531146501136316883752964017690023856426006867911401277786942093942673876060383087638830254338176137204674917174781207171180235628913423510990358893126310502092082046445962834588906411037103742233483195349062172564530304380591388665578265941252864048698227402581127998715860459188429215725278884368320238609672954240160331879355718611931456312763797610305236378915861959105835883948109271075905256735183066124646451208898276969112599557464973060521570174080702350373380081990438209294582756264206855379244153337302436849301748355286646580228330073751088903646933145490691746121683692434932025746012826559292428968651003879911468609748315100921307464452135222452433915022410155595145020752577457578847536421946130538060905220304084573970028467499548040126254229087564429977673249549675006720256596962188589393906705551957657811728502197515693007468376837502682097516324854446572434768714488471552482089649228894379304569996663157051841026005587703958248673560159707616560678350838412809364005792190104500009737413115672709601255965630671603939305593149278110894077081306128059854406865172606265216977579794137693084688702612117099234809184954477430156657710796077207248770259513084545549583684700931581082456433689704172114001718120846502337034376250657729090578357879026624069903908117597719182741578716545195612817840796913605116555263918732891058649264604342564151282589099713195311223056855978928672560650361044242620824566897357410518374588736915629394418592212174324721666829285539250571545251113088355134695394828528452258755099898288324318017835157725353031621839257678091525412826161746944557692807189914440843337708777669360412814902575252391790736983696198622104532127286961365051621948728427871016999200031467964201770804084610162579022171553952461476413721693167642185063550022291874766448579582851485847879783734151639252722503644648754047758642890754391507903317110874119717164118973332585772285095836309134918039572635460399932536986294118701607438387751107153221607519539212931507433063322245154436092111195381056208592963236702639287344093716950399268944920439195788309409788157994254669471143563205953201635849146206691101644520072556634938167918412250589451135068158709117172219300071483631057111960082783912515116842299710506990900093469138073192907236620222835700533263368979810995721990335883915881481387390160828372722265825609493729130906258368961081359710976877075889628600171828078092378535775080570202698507792657829438064107826135185040221207782525417165459270770568707859359113276088056941271543179024435713173973834481238144940810252026002759034567565068653653548024260509828343074883377130474629391220323886853461590671612006315767011876429727716161909376882690526692682094117793200601570731008135809025394372804397390285011305523225637521353031014384764318074661141321845630520070166195650522892527653749785304259295126587166853684688184954615873866669101243462993192867237356336087485266284561821215730458268624594220192501185597056177799668333284711774992226323790588017944549628933437109055007968788990988315318398878971732897016595753099198420029463543300454513363505004053570564577929530863744139883059058652122495761876168223466933056675417048021963514764501276836897057095236765126721712678469743846033049098333344364104722868043110125476236547970061406675324014883706852943969058270360882536184761661840683403880587921195071832297828097408220249033527152904761099427062490235716505282096347168240220108562455735450441348322765963687284673330211373275227008208225015797062321933240701249428392746227219526321456629414201256740831437219626446670406028825039812449003868389274652449653566227239808530319229164555665119634110790361408037257791847663258968295487086877711368479199511481161516507664046940442616520122021128707498205372348242251452671363802051500107225045772027665703345863602399723050752266935359826497759388737565230907219635335867266949992629748895053064500165775459240005652766157410536227702653182737479335021654486014786211677788834731802100976253718600150893008182742958458592135087198808380774645867644719987769828798907293506986278634246347677415172297206014547247981010704276776105007919811694104148263968686581630338844461864636171503754093500124038084384460142779753034553405805331782395482420241702066517696503486140765760871872196111737420238728419537935755151930801197222269268498657974107200177363680151249687593890043763653571905990294089696399806848311152188916429897013159361310074213950947552533832297456658394893950434729976248488513315102036116366624356143798332227659538001962277851793924366217167804962992659241650295953416658698854120907911105189471799478548486315876583640768052744288140304900373561450897065508384162816780577346103421351813853229608833028647986455368738317616672525877744126858362061571565955380156693608496742582527210087284427144031667041640468681452428989403548386359822296767653088125387238052393367389267695834454439131810574314830073238586587091924747817497948735028419681315549859018207953192959106466393374621814005938588921936293694365914120697718748798108783338448893613576378937268675248734606243159594665358408380770096837259227122017898436648310545284129365566481741936860148817089527748026883765517620921645282132617076598116132174689253519841920593576492341463488568252035912202061156257897081007888544878020514317944643245713285677692300607817383121979543152784136763716382244072787084614164255620994448470028723579046340508411969686133524922403343693255019622783600126857905138363995161492897455412699527851054915977154094940052258622406369038052989036987662167113882177410266591389371921361499026702011862508472563858860569514957034063697936361135982933933950782898050125588385422363299374165967621985543764805230589399596422529869243616198317904693379095577883317502949070169369645420682154213121665336039868918357012390662722872307702726923824649456347746117087527353683534453246476773744398909511496412637864936493087602207198030798482087488509131904821865350878313891664036252672484125151385180202712201984888331439112419535648093282827003394679239287527839156920771994094402273006560231445569937575017938209902715451680931949896850548712773759253911541136128779666957340027722733902003153529917309544210242383238442719125865676933894613580083573456388670098150222167765943278742008928220132858105533780492995642960997266412345865512505545660701301636962370609083371966369219559329883175581636389574940498598984851102563329905477452498841023499503019917635619651030688121681235244633838233043429386026392235228080889575949315305887139596265605765646251561952656379801827909435805238349544610290443093076167399336103347076358212098672437945208828281694638996309896318923781724230454226780297418150559008347102586261797884207895670012434471976148596904143579645709072859373948347089709899998714446059626074230415068599087908233695152395615106821453708601552415836509029467361135612315473314710316472631393103323554748406543259649544224930360145419452437596873967541201744040560209254768645649909533315357919730208306335592436364375074772051274436785095076969384637076654100211612595850285379411472152203511082670924593349520766670132246530988837970914391699018747631757335142196496526372126668449470773236511170828253708551410138258705197025162281377935879121978067022984749357414565789765376940308779069420681506388695838141912847914398058006306668669905022257763890867052240954356160305553506569585295302684774311948742274075602811300297571828375400333535275593143717537130232531369492373817695508075371671221876002992460130724530545696640975874041906998768386238629967997303805438966321660594350819787808425734611480737955177770519558688797106393532855412814045311783840261330493755675650930982744361740046224417612769016282331956081870052280235201401011725672527637139443376763029847690168210155785412787673956297389029137781686745001291944924437213808743628006095362186532102766641039295378930807498271161573443391914665354528524751869448475078040474741774588134880041859313608231564966588448662567097412997016774216093321295224615498317070774098249243487462571409589344208738721162047131359127641891375015633229955454482314563974495716468382698897335895916727085014942649525543269724980456827875222048078125840484806606071464451535711194004097329782862888482044543135404177914693355656561360567966035979441751674113132028716061497686106322340598268524218509430936889531416198179189125355440819677121823750137462285298533928472670284385033356959409908871606076666651508071174279292192160694314057177483369122336855760038788135098839566545517999308955045679787047550070927496429659226430393268604064968792784048023796000584795278434543071272073383603765488118356488551405026941834251639473961930506558663603651201311825903074453635446501319227337042245944576660735688178801871204170178410818645432376287085600554376532415669904457364373842073653099381547171604763559668345754193563795383653163891726484580484890904029863795221696010495953058646738162815310620283629333538280446488169593788358832211737007650246562924942927259855282955504011750406845173098045468954125950747965473413312721812567051216685198040947549797360257582270398686535256092237519102976807927685601341208352060751747835826166296474552989102201575661700857628095207359848208803403010959419983839304103850051765764735437142103696591046315285319833192545017811037364881061591528795672843614848286026600079752818968511559900333350535168028422152943358970499487303958146648072461720928826198619320008460938425404390530520850568137372074668513298009366164674272297562883704378075612697564258700162024829868917051632769603091965632729188081340686932127702287753910242038596937881295271279978363553043110096303191115750280527782047923173612950731441476694809374551158239182628868175628103789342396885381616401946450915855882683999170548688137129693775538981717170772082064483230172422673798079164102020429031455457488957645938524167809295998185848908895543124812590769013492101523961100238287817184342742187974489846028471647431167772477432413442941672444522336853903755209206714233236447885020244820028761811922832429704700605193859654843235011040099038711376299423279796245141274678720109296550630315601501520367892842918935246838502982008609838999852856976446627726969678848072833935135905703617648644790001339415824858638797667845454954638247809950021601550440975912370575091976145792410751746754552575583060875329438560127515696100446154424715906065566673844338455476465406149952113255052185027351006757837856533316496866924729193856756482879317060530673232048795288984342732965815684775754122154197807975315604897207022513109916358467313414795710092310907023557893084865380785581044844293738145807093572203655016381503341376305877872554013040970514843758070627246984269714231656256788308334825908454387177843516850371287420171836722257180588736989420195004560896676379580868610342250280782083304255405358792064744922841083168926742592978120355294106538074367645022875600822924236059691450373178379368974905957033786127953426628547433476222659257058001602865697105701763576217021832209976744511210051667440616687783724627887089584965116243856502265839132552741438106105456967965191454947565892880338879999707262407665603443746542661011050580248986349571984711858180404449815349791249998290727175528069054170502427255941147519901307436881084002992126252303038696925389316296117553096978143283577947660008348471829671067441278648508415028792259699476569795147702527421177148856931478578111199737685943195034766147533951076815255022407045657973024109722010157594901465990078075880898958622195694689055534676096816156959208705086796844019299345781307293285855520645789032888352853354930749949953831929089268660982991688953590739733208858614506405373898950338115243587524949535024504088860837643133872210417967647907535721157035998331831810027641925356506347084672096447629472747955739637793802470406172446018739065531697555220338675466171372084810490673647220139763853135669084177653486587948639548972226213540479230794730206894864559627375303505011816720868649252952871159605164956102319867793006835930574255544684407929998124658372447194272905489505188934255129817567677959107395885176608349388311962537870893242487010259026620892487161851737383450326403608315948569347307639767088745959515840591272624871691176515070513860152956641141522868201095562643829034455010878468507972351310823798825655970715268542261803272307372706825613370188492162403324843191293433630547697029213379632501717003301163319641994116751099446536096417147657339213973055745504224920516544939186155266404562986125470679005278547196506322821242084099932374617180005247396792906988336880017042822354688761525992799503783602634748437375894984804222479684174061079083314880681918560340436254771500988628447186019184273506803770627572424469884975446429196507912440188743734347300330237010000578947680031155278174681655262907503260567207668335730405825929049574556715681864827313576409431829900892471918675858788765471695866313272019031166229212672959237653971950435191817464776647595640067922064651679320600252848746177880960821001519772479232185308725228035825914125273501417022300726982478914358679356781414512756600726315330991127225528415679697738977459891438608192839467466537907756149821622375804343834928752164215041408089669043363729533939199866592801566255717500287589218785478044500156751961621619714576578864638476021092254387054405419998119261505295881714958257202003089274548060794836477649568067159936562856849614646457303332883930804836969019842783430250494578215914856493622775671480502444360796403210906478285151609268286762730866711594996306119273652785200158607382624842861394371078441919976041623755747542153482707275007763665515815959635007273002503376791791665693098407045121856564741750160785989337438629277825427431655402049229077973785590970536307398307220009831863037602704174186162071003142845557713229840419340507154355084669050027025349231070491846645536273973102670193133740929712919581166051841446702100362657003677494467182999238207022540048861198579993289268033362286937786958835802261963965347412834450533446739386261464719752659323973222659336812164947865447625779330296148235672634124969591468718885596003991506714849101791804891267414877360474875243226776875778314979318017091708036882792562827190465522419583077425213718876093102246468608621453695840693245503020001081523864727272657989747330711734235841887731908461001384063907613816807086411146129859654209876222506528692214932682831029991248761791792035185688777796647536847390986782680801510143207878717947728224412888642483039235569910534443744029860587195451387503367270989626618900600592635629766101965816476833279607544865872551319189902660194775491326692898927718385250537105354046018555064648271320953784373301617514758164868310575247343974967026523852741767778098328039411421963956090154591063987550576858309532438062497799504826799916396682042921942440898793971867888269747232785398156003091442124186668386726129507955756031335755317866916084416713110701721666319806981007434002996712664367899814368930513700192738531533356898761308363918590193424450052793229966594094922427294199357767976706833734829301912682863337180664552382731233710228136302624671825744412650402225276465957492850343057803958522505108092028120484968255165403412865045031862694955859748765496334248762321283568961748060796204159974431964694464616393589445277579946745540849434010243425899209741711633107509975147321637855683893239674025975642837065398715592579003836070774412839836603318236153786607280288409438296408558163312662111606383756409003888255776623043776523844652684353312232394446835568766706718023877367267524734223704320943685211792304301811484498156860309638191042927013828765119913995081691654529210290014836980529815945719733345256073990178175369719486816200267790309264684835914608148392962089455139454429019407477682881728750972315896258364939368069227215474049532593440901675232552310482515147903816646224716372766898247244456022107721880587095963043288594488086061505341877169092374973021781137311792478162779191766308526482667828812175712010336447660336252624035437358556238476284297017688935862237310247888143022345407385803009824456499435722291238551902660816300635299423076182298492064925572643413149753282944516068975247348802397635542611922409290590043429590234086388726208762683065202306481273238078236030587556556575554951347752460922078989797107479889222761071608402213166022142043868446562676291907272364546423022824672881031645456810103690188489991355770089056641049156322706137487121090554907827606629402676743973334915404087102823888765318189049648769110375368130256883232015905388362091912013447069035476512191681908130827475542039767975615009255556751816829354137536958791924108577140860431827227547674445793004204814355073138143870775747924613920879896615247690504168130101393125132300594570848369383336731518567112695802237085445772469102932586852754519289293422929479965928771522590362375053925435607462587244175226188715045133795849851730825890488185339813736086191059950727605681848585857496508778264997906505754600481913774651888992055700433442469451391071627337131174275062828930049269358513561922180237637806422439112768540988866309338100955899521994861886959634793302713940914259048433007449916603924629252399031861441367978710703695293177816045098526273158955372664039751284076869023478221304943289578151941007511969908798193844740054957412821352078285248089886336175425038247676695996385807058435419782117971513820009100680894156317459950571197857421669639044772960018559475793340600405819419013603241061705753574150838766062920519419123120349475441153336696939137651675258487271488986976107939695111106972202964122410369087294892503146693323599560955676062782215289362647612056439743378838670865981352310434810353289577841135248555387634850969483095560552177432970311029966501310135477701455638565516648517082502807314418358746219159857018357610617630788313372311915968204592387711878817960733079673722295323256733177400315503759903511742308930446318891254823414912564874831453182536733315258100638524169844648432754372065215001303778226780688668757626992941312777787749279934205734046690633658359934971186927212339504223753892974645911304771046583632084264205184507217392572718517124877960357776673538678752051784870319606786575331099747556073844664322698169257972841725070069264997844477620604450744428367098081255998365230104087246184989113564117429884003720915267222009836397202933207431071392932436414558912305468589881843728607272184701348391658908025777167729399645635035347591241241819805738287193443804358603595107014485678117855373355110377394393864179857947062221644304045717677466199671590091146748921654409606201095114505430998312846320797649760250691328855505381395705899864887354753388554938254462194008504238517922432578187490768179802322399864406418386768752919679627570663633934119531897138880597052165623470911227352089090277778772955412522833832305869076711701837987765251564270922014887449033316075001514438800677884281978428420856896507443067898008440257557255305335411470132538144486909945936358088486862184852192964837358475899057929310343429323978761583150819354791948027857517668582478328774546770818484728544262261251526192516811484602569648706437953520076450183001691979664438800013748559732345029507821301457694032206256956660946100383139965103587380563250516113157555477304313401409171487076951601230702568759479375105796771228592920343558247126149403252798133500527276584090198593032423560081509803926712937035649101462901520478388504279540723125152687442087657624239914059915398075668507527115255665587916948752320219515854636559804216210821961109276659183242752004847095493953907325795224384817596880405304186079342275105838497241608912810741022869265965063367767916886216265822649617757506531247621853250797888143195654965274793489781559409359681845304448457632769018439181888462166158654490090966954378728281358049208525837259008798858628777248452240384249740683080841678424776151943506959464701146736835009093277405004076002880773487122709135597654959185278919604775048355584414457705161353571388687519330178445552936314911926991555410791475303169679682729309500513541211496192987338175688130071938338515671154449119941717698526840194926250589855286524972098487085703851055949831113615051941978834824934280829084702232409786323441549384460662477217870494000739846755783999537735683682505743415628388598274615917432735535925983558055757318407945377525995590348377677118555810687055130773113944667411962843974603550871343793505532914867386233470817408620752560605444395619141151608952754615178567737176608640875005122404413964992765676800703817543462757935414801566699256019196260346284538187825613846885652776403058728428061052928804829551523346706488952897334204835189318388145523517302687391613777532704285403731212924618000871981885939534403339101054814969743529374946031747128745466599127998417027754708369386070267074073149803334837879711829409139009718068309630305631479011890169592985365057907254019530537868952327345821059505694598646928549360190712787485375318999919060993994382639711381542681272473780834004318167309061802876976172763577729092663725305257041682981447233416504984276505188332130453352445870032234587616748962245256908163054269963358136762523913253967266825770303595900584052108427575054679951129061506253011862287347433173133126448400178270617690500934053791532551840348470035093746787281666093524655994757897350611505127909298171665444901966327227733827338522128036220985396702029198478068535252725186377296092708198556064593930202638017010078331817500829729271876210290918784222243014433536595374508551589531534824431522292109639420704729817797986631006912853032605833462426744034849667732084098970745976484623481222412331060392128678352738164655462639044744898857491514482638508843748653907405488563874894439006403442028875789523611170025290606766825512234727309858933025345945711411924189656607156991661699478900406464536408179157548113115278998034375537493943809395925468251956345358822782200645858494651286100053907361502162860611334639526786810809703319843713608700731324863394822797686244549521500555836132101897937653659522073133168404001428396885661816645990718251811334512444345097055584274472283978063474730835752311883407470119172901953635407375756126151306637737018424342654530823930629595597682274118015692904172109257960856170085700919027138736982430367369888935517679279505583339446095830205065740706838727412889526703053256321608633927646252025896118026479921964012073881238982495939465447307224216326201559568935625633343999086759696974149586340322157122654441052708807515247206451822321370486023661617297643328977351826548480044335017785040333861738305364415746803352176892148520642346746326388732133844567269736498114759415429431192501251091333327609388097076927869496718556163552066412662565574915305096826950858032730955907690566508713313720451331254090760244591360305032465442502195995965517133127193273270448952146391761496262866735334701625295601936872858355213352428204651437697789741227204485782960312676182553122873146685052538733083294587625428561583500154625135462852011990313546847810658504889064517990770420213129724402390664556043089291934401214398524523436613832150733125532734691018537061297569683921151744932855605419403755911895700204312165410852171075755132326634912764197782134756450563987937841384277757552759473007178577156594831809011602676420273695764224048487874140280132325832573798664951010694825065503886738851122734445205999955519580087706536146265635877909831115277234058603497501543357590194783467115328457770902855324873840670404177440743792062222506681303161207870640521437581723248312874504621648145057738695309368670285192912715037389123451524376833100223429649260458739392156915093846127022458175821304492880683064083276091883418906389258575178142620410235657554484403123806727745049754309030722873933706047518076027774618837063816261459836496909866389197597358884481328993894518450676242277398269101275800734832093877954947983357357832739905571701685979730531376343547389871789466617226066078563171893093087105143171285040474606567624372652625829261948396984144338816996243802652301976137905463944428118199440987247985103342002927273146971706445131626851993501500523518726580273402445729651422169026757166056151606606907131744859967277563635673416217708182091059901978804260953210429501158598300243508925744464032032558612134480768247445107576865828361052581782548101752384238950200380421855837975459415397772833972625618927332815193235607137137033600493557159484781196781051425106567829221039810705688453692265712229671843259419906141403912964792692722076771306338301347283034556801632491854408254015691875913760320486796643140325738058197970387126508624826106741444974155203191048412504964248910966377910825204966340003919793045521313029656679932304720047256903045697825546706671483195537195320995319624362476444903418316493192391610545012442716422816045165945195981539784245487217944975872070833105033582124173787448439156342627711180826882654852657511071655961740398740735389655033691188743914025212806173827363904427994199496881595154642081501718016711324525050155255990630671896542633576995419667029117442474605878210106463585122351148372638813281409197175376410104486789230452064486576603743486828107867883202170108350720410945175635591389961525861822072049932896581863114591951804959170400382861029600000447902817487550025749558309275681565725927898779175811053093191553696160533617197086953852482011447833989141574337577488590958329455835161174367501049358961667155514839695241990121347988544711368974607644818392111736866754114147335833840131860090782165737331731400484317160995347939920169955465274968072608955273211615889849296544529482014115632947440184007857109900577477337744032793670829194982640110278213937560154335179750407581935645899038355827627668769548438264249293707515259021433312996620517505383183327640239686345006132280194584365662611956771523668219904060428974648243641783081510234743326678861785132758302732006630709198342960117565949205888547655106086344532637416481420687449816298272748318213230114965989582350350114416952070356915728238505971933815101083098337058871539143470816613022845471383068579826660567098710269301951961203733242319333656979621146116527572678575979618265959408362778419615433313027006044591430596326060555897726722760265191504117637024912959716855246931414238954795292574522459684815893678054854051383591984064354285263195773162464255682336544405495441669535792169243226136260523157366375730380424943762823276395203999532764600537463201023963469583963950258871493415279087964634720133530100978019498833718884972915525251494932417128342505942350871116698434206525735082960254572139717707475463870337643221502567845211467695166512504312616675517863538366991433929049826746927005529362957668209852670978160902502261901731487376117642179226305917827909443475113971629508608933295489683584219149776214744515011171751841946592811865533982367621409026631658497329611070348353368031142039587666425769081549305139114529628890880514551400702786637618029288282162239477613753112690301763720916493575914842667500985527917057395153348485079197066778723623565987148509426381997143340298034867666871099423665835980450529488096957850498259159920354060500419094201325484527517054078613216249221671533317558617355352468443358691742245291099901839843904248074626214534247126456392030444641030338232383333365075234271357777416668384634157806148678725702467612067664138456170047654799432015580328535651772924214983127270048944413817080102626912443047721821622445206440459932351468790971072068050461676262463256954488263546529749726106732337537163055463682227972330893517616004777025335280883288042763062995747132366372078247661280302515267616906898815113329924982520061825128517149041048286586167457099301485094815573778463894668790770027579606140383215456824552556375530239688418107904386808180750048981400122853866822868935301656304911740358531939124264801999301847675050671468483763669554350504478304752338030697202253915468228575539444611449480501130490402482321861617923167624659642615887445445608827155093107487129783678924299081383158725481910964868728107478925105958766769348486544189713145320186757521353130667454573044124630515259146311754452478084047665510408678438618216000860377782373852020485607840771512419949282636921500333161342547298861726845559668958368276310530829866579950103228359551378975503771066308586184183156101383784034265171193935275341724772944562209214506899346199824777858367361280570338118341766021082478332918957281190394193624490656622584239616063598475362423194203436360512660101278630714234577094493662095741909573888698345893957439083571729121057426287087260583883955239790710431082329580024806307107209052680440303215088800261090511180984327981532744630014359863142488735303552331916324002981072321491191662114805031519832403535182624520600941327191209434693126723928756771681612884970007606645158111910566507323937616602670800976502878557928680835868112699039813811850965226060624228284805750691180205522120960680132536701584042285051975212316153875354550210868476196797436017026245604646584938597985626803865008380708363492772676436257258726659630891095800527836142525222460304734229794448914856844224022641878082767020424218327412551888243655167249744097324383733934769391933145019958332708659007726315220471287368638416126286996988115659050483441511790074479707995661688762906830574706849514526793083152816748609613055292996191195046315312556190320205579462560606502213768836157097990804213904815377132888131179941553957202946252445773095736413464054031487075008174994301969141392882872603802516461715280673916384340461684650969739840343838547979845466211283415222033812700203861452851684038324195350267839948512215164711791696917956263610289986044072110456366217857586163112468246792486976699752364855357066755438418442960941631016048927310874698863589039163635468124014143466329821237159015614601740951106235301242520485130870698219298262894703769117391157614286624106866046038057865690726847554363549826806651423940309224986030380654572246590632867435560659911656560760804906885228032170060266822832764464095398152737994667694001130872431575181279397761769473353017464970437280102424451849715091678652852623452355991437730887834659846084058406631433294591554025838669756408636304850860231515381887988298461035942495876585129506044663542981463622493228075001719672060638067462864813509029861216774507084288040726191057687470178458023484065509742856160164714739134863080985852234348943084672920910438093905598006935727386228042897152259504086766757640263653604613035195410439413459719319928786786800297867334714780120735389377623214438790972767050984261734276683154702048398478121943778727186773579469309637737455673219764968765599480223387565411088526350001821788155516630550022963831316916889820935655105288266832337997021059416044541387567520354917656530154585851099875194230104493551220345488950495949636941696391904876679515498832026164132521162307592231981744155749832822195901496443096191979315949820432695200858298565398020840958115862445318818283043354406407879542654766609983614950781671797734090237557444920427264477575267132519748578100791791582207149726799959181396856361235199268704376018524870297792285730931254899677033076899016290811013733529011606133052337739711811841201725539872580218862464022341476827568702851789365610546004537144077968274577142649948444932671454186428389850643518756410157144349866226665783295395832557928716025553585668403002825783187176726331782517603452608149382470700396649238753931965603739776299846155846969414506677456023299687466978127874197322120328888904391121305730150041445686058273899789968654855860861257682423282947276161479411480730675388294026813746914527857385483704886990936578862893723130940278164034425955946716991972959584860596472286931015963103013043083117339284150557787652455370305642431794292103601387939363473444856451712801059218063595263457834755266785506471346272199091068350824183543411961220939942758356951318737343741781893417579128048467162524607270487377103836218991626277453286775259443698702435290848556013683933682257238608951455015856592470171338848465381220706682435388971593388559313949590221572009062396199844121777363810074455268383700606592431953526464511750874147435282317427796535526396350536234553219082144166668235969548382372947652065932704336738524619022896126217541249672790239852432580355278389919179918425211762084342912564613843515912990541058315981267521875415755115199650953407979844235266228759312452832795310559476025167517757107824034322106931139322871706497221390807784748242009994019969967424929296378794054364957912883140768511611364000783000362385846562839237175838750336183597059624746180698300780238461241458654802054865291833857746275760601175711525013772341364403322266736050722268321103261176752943600493610457211622326977780900697013115866686206545285075475707799928003579678989881986841359140873509167957548449517938635365489613114084132323188324587231805187741734269963116635762010995692208131365314984047705121783960840133374330900405570915788899072762117428440845710715778204191214122034785174229883014802186693577950266015758244612290513586572607611141614386097884452851095379879996196538887894212224073907151570715685051355461997345404530938915650339532516739117535368882964293025839155209416127942849035847927447946321925660472071664108384082796425027522492020151992036245577895304971565239448536159851191181144107116995004748266588695791172621156940630347082934526420493799597185852265699307473459210553421208176165331799947545782208348036147572923572786850898039338305185133361663953566759702864886743058989156826711798629170570882129800460079804635627273763355948899269700937294975202889660067619816114851982175329757066264034067733366023308251015579040956243685618719759344100174774675055387065323814600843477037996177609352955545058916895596591994568594652252743518052366731616573119560797521162230803193901220234987700276640899180252917150930326059142194388671134845380884288059254758195765078557334077824607849551156905419705717773596725135722450000073670504900612258698929510463446649311376537296127328926983493902867806964425936045501574170505789755844678394736755624925346813113927474303675114876282751016340933866259664822686735679966420122160655820498964722174209633719669219260795828144738155918742154534285461974278617276648919575953335708621247425002413598993901805257936598333692570420988270416877433295738899821502643944780194069064028159269549945082031785320265220045635828882642714475165719067336983103685138269435585516639199907374680508095437844285263715156757566085396908072505204813277308811661786167826836603144426552299306757885436413090344485171716630724764992106432822975372334816410708816491605501741270134618635740566485151065691047931563830542588734043853078258704338416881286041610124755935148528022230586900402743201379603884297129640058335227436613699407129104696748932057017177306027030868945443833351083160356772357450757993002486713504610617592892062117611653771284291256205688161288769171708389125810822529269340149783669930793168633705118486849746845366866393890214142943755400091290174648355640725871152520397521278996980001449754481976123731063985795761488164265695932939406500091816658049057869822635744423112153152269483753383909877736201746683399002309582410999660427044935389539214107041240636581075663080019783045200264519868924182133166790805503725995448057564402930726646901538163271693457030515837487556533828168133750279072590056747300056368997946960245788993354610077317814812239439512275011912428926614090568565825331848609763661944361559126899127363516559303187506385343449801282618449440000190087300116637798902765503849174516761499265128247865277254761722553087852361589216050314876024693374804666701237148401534791439501988732888657495758543707148133214789295835747303605867910296918741244842330138599914762324782107267415630781729381320708193633953244431713098938636154421451466743159967855831396179673217951384424877801392187398135531720184544812679073580216894261074460355666925066028039287180246174236586498180386460949961865712086221931972096767391823233931797692826931986247561805347478882903631059290250512284726130900307041680986981417980431876100844307324192932446145494471723441615641327261375950413207714929138395543139989252825201663010814217933301757548638539953634097474750711468236550184027276822117083487726132174732835840134968145857944308197830274459127214825547016759102078614599644157861437548718060927374260702652669627704305684813585971065127768913006376664478640021290012153774126537813947053427764974100171227227207537106293282123735223833642456225910552109314616400363010531214363745759704901258529146078232645224137198621772940825089677770959555610885386938257807462153564786076229917405669714800881270041207985212039233367189907419730274451880518875400952477537947121025960308268593084592730761738824069011719655301924893288573160049704989444004770086625546259760171172617317774072741210397513716653414404029696036251490469571171105459486295279135216435079975720729902501422601674254584903748567907893356493716128601762906970317630213083748600204070851786991048459884286389092451956201009113307866608242102489488968229626368542459347769245579821088729603222149028408407182992827397326155057880714502513595822754163198593163132420008210603455035114504195737942610363602516411845730201190103980919641274995576553464817332034809940623549085129947485731332649796252943456000320224957385993251385644922875876882962468040601069400719004025127201680148337621209891660310152285296643392182402414805045662162230449792522764050821122343730545299763354065093986500944576189678909688188431758923970144710788570691212408525147247726634822692631143849607267354978426262887306242003934135564973751534375505697919524531838881105062334681103671836592768026220156228506209128142442676910341218356279965339752365080300342622199768812348832409028476963938254500390038413082653106898256113600637790889477994172556925292725662403844041144295994954777989461739083098459985092603760904821544418788783000939440457910924747126725465698400645909247363582041670922860556216786923528457920471856205335358763050519841762484302347977942842129076104428901798528410748105246365110000608974509173453272712025782387682504758704762771739787210147455395524266431615599813295643164442620164232554214879832212800738721937001419617854153052560267839879037029148508296357849186249057373710180432477911153746142909696321541133323170399306890329784260313973638908839520825409185386022209020926385673021313395030890213763328957263574938476965597053180479128231500574989681424141677026608401333024166979431615933105494628682887134289976638289748455261430056015120573339343558993503214273154872531961393361206351849671322071284486901627415813906248056403765921417052405452280341441811853837061874405443338468392115194118939990697276971287181902371945530176705251052605569428559992727679987088148233937648366757536894277023135541320234107498664080768308957687023552684267946987599102358147654175420088751264665295600747741911104688640764421603716794410268357698640443890544472307509869909219785107476612270830213653396574067129333404690565609999732964953910130537947624136873900369445938725707091535644271122721766953374885867844930739879197800279671192937787715128525216996945860792187873685074497274229403398781943164554573734356781808216319740630752792630659507940218637390089498605078646019134948045444732268553114415071297070592388915312236077901787987397952994621927160142591505457600919132604192787969582753264340494827698002434532504926043502353485567320193730908191693701925750730108309153975811645003078017711848723297353543054329606311029433621604118962704179763009913709653889729979921152919878417340168528656179098367561829660626395753939900422036409457524477417176562992253890473535839960254743353536054970085430008016185244998220922669611672614969588060048325473131157870637414988992955047808191929307962295899673405144199096258474554298505621583420981854846933515554196486653568314693351485650591478833537864308714414025579668468915964720744026056529409033303105037537251925596646326702939136871979068411098642258548232051104676525749143335822730055864417060809396146496045461624232156593652528343844718462868998244154698547156320862382372771278423156896980898503517102918789296936924420618925091563768955880075745392937654261348225182162118777716391392617518926988057324675351755390088015422334684510014121896355670880535741180328711839080254570135865017139310134285564912365008060092779049653536513443896147778401425062079240051790838143098381085776677764208269231670817890686358461721072360018115358753184750161072403511796458984393178621767424250165830755479940405223311630887994755079766761059242225868502854278588570229316309378724308311124950115462222942227058455457032984994343581567784275492862518054879969906908201559500283059273430311508677103169449711135880411451967951223885460968585080262545918515047433650132158011057788889808848563661065038836485774600312815294108236966285707774718221526424886829336186585160277947449242860863266193992977427878037212123200810983967091869252657753888024345442274365084197745745885071420107148524773948585261323692174432747073928187231917886573721437446334097815686652609927750772427047422399579577152496597379640349518518043756440078393854298176925236850232528927483497583015169288865315060563616821181492545511294693314917892826999008453827817418153158188417080522510897545773089965876986192882436321618303776337002893815629650772441440044860081630169690317235895823042153599669357716593164646246532000660061372507910279018422545922361490386545250293923331049896652816218660628165966413736979451062829635660292636941105025047112350033563420465327655553032459252798254193212851563654056199635535157961380416351282142584528729195455905852337893636546617805703673394083952735981112427269732290361863974492155190528225162294141104162601815740165359628929754772425337343779787545133277170865553193752930453049810896060903186412935020803773178907526379451776503359605549192360965401530158814408795207543398058009735604219433840762663233073549974928341134554320844416041015999784370204542561988710479594705658755308430375334499123522051381629500004519832178904406123513266391466676055954858046132380139448572627065154819133880097201877996962174402621157619540420461613435781294876837905125161541877113385682155857670839330265533126657534971365155396459482482532366922077429105762684288673624074177432117218286754908343172963335722900934004975954297904243722049698756505870906956110276351718412484446551748506880525605587884240217352553909956083623314495115862977237900283437274414729900574655711628534090220699408960517356291159145762890534254961485412765909740216007543453261177367941615534014198276258429099954826572695037341716037247529931160742461617160229236738475658965201690297777885171387151191931934277106169657862336637472857108444807544278908224303927216764828212349331263657992595846445576566534572525320836320232327212289964252018319998296059957601210006204978597338854389802289134490684632536614433347315919988677087047408235964212122253593085539023052572677310242077949807728881430796100682375076127579411597432467622943975125654288570381535276338728006937180128033046122570718933916037296354669677500051978525770025619554836989426146576144977935119063463544204740135080029546458443693068402881294103441978863296117980456529458573095159926337376733182736023926642969067355532495112010899050059030296074091594458862153653793311682761864766821871175993449735547433674156871585028495151758035440296870264289014433673170326649934254520765710317309629255714450790489259494532020814814543851931356881181898210307341886110894330457498516932074310688413316472570009317107212135687075770203547720286215230941097667911503260374455812707478016192267962659931101870430101144072765991400507950469889679658790215090644141640329129760936690788813370118528912278930952186509035683967937243662348945164066845475543662359373710642196310685579757599970643196486637519395035543597327153715330734716133778583138426670541963021772243083162965780437135134184136799832718412983598763996099479808459581113213141124861193859330743557845986981800178579478419740064428737903576919810582770136695087243142869047312825903178044659375942507391490754022911585974284374898783578190900396082692324664359049434043711964593970765152520898848911880873572013008701962578257912361573822168579981533690468857278923149360810766316511268648688435580816826412497781457743962965210294787975180424912688255812551599061363506808055449029204315830429344801104190584447503936024053549891663656165186779817961715559218938229515603566973577488562737712203014091522849547882622041067856494181382635375418858810141717662912559110014133268126368296170122202342678797867944872260961808272113112762382132136969823082373854811628398366406607507504646697832994800981978971413403269569273827124593959931511466948088637368786316792255391135897531201842277976291312410288506656394769851443327145819680079235926141884123454193997833309181046612928990244652556363147495242006472770394179397354569202136098673874188694793870283290154659481653660286227422124017736570882723701558694248372731164958668848523005726729064059682729630401812449929226479836054798330809706381073172032027755007809023883243588326689202347141181818630236138701708732512487324005373033726794094497186148206249811493336672827056221056016016643489236161976313055261709248645567033648325391244456443506216311271449197613166923715036485561169538457394659114535665085407151395421522061594727164187226367175820217287361951262450877745978143836042668727968236956294040515869677914258320710104718443976902702532130252467660504002094109230485310889248118704352251895162021325966889547771194742158491870795438185976367197944287656521875896033250133819724666719149795035933480962705819978300975345102929564801212435028173809237009491489983899523014828059945535379471823892675864275509342799101769469436352423259904790159974650809814208569685760527165237865385462640121899275468347931780646972750722171249885681724158396607621791659998359634353999915913644885835534586719750073018285812016063157203229205006714484589317898260144716629617637216937641166743806147473014635005246949340273606632385796268539271790813896925406558232928622206691233702163282534301892404452990461359052933804171863304380165565610740058867317879884908618003582103855485242584998236046924260061473332343159507802804415505466052529502633931944628953720475276076986942276033833875377249845692221565126021328329107272213449130415578939297891250615959696534067754193162809143385829046360639758506112048276011898238241080838679251005492120764790061617723570450603144123020108047575952050213577811575846429822417243256354402608333679897607272932427470367532222067753437909558911022125230915328924448525504095996118684306866722326600644469865435526087023979997558252250142113377176537821210420271430558832971620791051855885945129285430099254284983458695134821070278410160708674259006082364292268140334108812832219593804341375916859426775263080063218757756739578246071999425365366371261399755865114733335357971766073691516754693008003391254682299737833198134381191433768528375721928825391172501353655318433390981234653948717095692493838320298553655129102104259064667987253581717300572433362234649315218729440299429777987579636194418953360250702922288677519077934134585611368236027096208215874975357691622840903061604145278438143254994420512732374370712448893306980563764378606063096801779474822667653302864923873569681389899370111458510654001103130121712058547071273398131970602409052740881775922095721009163548873416298691253745919260124947685143135453697664162720586170618543830403831400048917671451715886257231667264945834673836919094659375616139759754657615060317826298312007871119581695945076611493211637574158944023257718576744424172009638720471240462474575531567940455190081343794448192384295508196868926098055175865370132293928394041130929921858839111009343830452029898564044837044132952551267217282315119536688106961422245433475331911403669548412933118878439491540082312881034630483796827218205841744390427012782286504309918599057534148292114870837534199639111162025247059744235202174440207238511251948975019632463457190651977037603374511577748829385097634868439344569896257209283938132344519926919140698859116273972341841736705768728927490497315844599521762017213452235779246381314541917312790494756488482645667587086810524187932420083258264846124909266599246067996270245340561484676720292652572461089588185801382576476166082966569087124421020134290646689829548748474687735344427090732260300100022022806800455395914074161324657752750939343420906809399392026575954240895662132825091633379897405206987596368034171891614571705537078822398117199636706815257328959604636471694760184791817739743899117827308127216929288740475526632746138870877586454930243662928541284557752290809290165797869774438155740346984846245951044212208467950873785639399527032666696549691642610117604019593388898720021967891112539659519078441206092385219606746317907330191743195505131680499435893828957057922987952259535120781178438657103106264798690930851023565277685205634194150320941438161921106191175295346778910158272647045295768823033823704567765048182356672376310833481887415274893732408525772623891654167206691356542887219143044297947975674334591142956198370366188489544407442745307975611509617602462541031042777378386503907785469559693168486844971850911343250602046967222427351045588155947640628948635953053138761229768453344465995160131449649619243393620041126578667533538800582425491849500199660743748217207825108214551071109814855532132445174395022171516993850065601424556270638403876137096539034296659720197538425933371470124481202966417635356615227105042104211654016973999499791896069983385153136756504133381443771624869321951840495976457056843414553759199830016473048954746303527225367324684930785655607228850933229088720942922439266219830468570327909196250478362017163118684035452651333331589129683487919904545296084987547741227484269660398592168857899028536524951328170204872600878083633162999714926818809143844555856082157291964620540820245988321073403244900505547413421841120310852968183315999214833142865695149160788277520924768840225080954873492136402679530990193917316504370168217175326369486383732075415659890996317953903747441923531803180897363732471399248234511432445692014066342675753530773065246864037472987395621979030432931566132823868569266562532466384548232121049783040729012516023162830841833898344013410426014909598373714377077227962901767849573629913471735896188591045778559452193664184980491665750454953350228416027863983718057746704948670357403658306337266007556909147127817058976326487470876003454546886149898104201911537862785488729690540859772324593224264372117847753837005593672577916852573929588264881632108473656438351771800883255169861206307447630586175875490888468644025408582035476498581722760971760367092312631646745077120640858938762429591484090498896312877114466198788597882140028154315529444389990028355128722435845280770522297761691345867812125258610855354156135209653262530274028791899563479227782303722653131635518032331954384591599504787950552237089800989829399026725671126422146908796027901913671516857145381335227738397112081979227784587244033477590774538889424096527516766491164449353715974293170909787656373513609219467063279495769415668537579337081200032483960957903911481371437661352623607790697957680899692192210618058229404697940801672567194393013551303686578378486565910818529452548150837890581728678899393344069843604478402138163695007847681166913241550340443888693020840934577302410327255113612132963299683191665398984351368998323432614549282439185020317394115392007395112473149249778789748116073441864096744928183345116524679444681510257214017918194159100249372798022744842536514883952239091446944988292573376740978495195899046402874422481709916437693294350448594991812994271989560308577726400306082081203662417789786345912791353805558277849219610851420142673229106937898033332714403706662357309506630572611376119790719268858299393725672087762676464159736857675113663320257502845875988310695020007095792192038735133617865853292873588530841017540277405446443549790830346410160006580703470297053529379659435970156830605293180830099582514371561227459181000932945849893778676112523888469008839448482950273284697284853690577598640768690515617802362325658534427347352187142546695476123353245291626252262456052031892807435432714877855354691157037614419623891428270726713172292951209960716412847076672740911038260151177564254127723633333943549540696569497837918443608726464442188928568192081281238269111411913415194077358021563884745111213672977939841772035358526114444148084430237639628597248742484848124364420921192496509794698390197634330543492096934005761524428926905453193075271473315998163519227840674574473341197062528125007183835289412235271608554251226929284198332024137793969230195578372384684237283486648733715370613437553807674382837225519359346349988172120222323053157971919670066531298117015228602946650225899440096195177379578193422477860634013250683439768716755854192351988301352948096070228216287450172805167541258252920920608678636704418467718694017258825137963316081919530378650549299988981472431211981062322898627805242765928336634791758061893797795984738565849795400605553920529381295900183314842347588173902523299027885443417899119163163693609548570410293523674427700087346247707104056004250570211577826931434092463245778449878458974772387550215384235709072566488925111837164444283189334806184442387542322156829437139578429150171441133380943549859829864809901874077276284816559953839532519933361072196663746155840934710436404056532242813024525698675725542708705165996446214794190066740061863889102441262164687426942637177948581016380483637493855805653132140184480644606480432521303571438856370418024938239146705214204718336057878309808916215974006603672675249856727336718509179558948927041768798136205406209496323953138796865812445178647881212619310620792010370495742783226253905193645388812525948425530305410026537226644151811735336683492361171521057289532212280099786100610934413548723002159951076945046799217617805558144543843285728454931835133429466987641037465901947058431063911135753984698482311407397737270693577955533602267623848225186084638749232687011663791863297475151654236833160234874247180077390053561875883073373225701190569546282742411121752618120208043469663912650999836720993635100329007804549530420203080359975414285481782771269170644886447209826480017142450440994525785340224073010585407411460489935870322503327049632735712512899870488840542609125066466561406212463545695784725895423636685890259940877541985008570020797324617900566612606461996044474082888639722757957610106566884792283387249743263489645048035160481649179786842868438260630628775458660340028148562503134276137479665445735683400423301957138097016742506001299287042088962085183396469509201278902570812672568762267843773443862859745689816583828523895131590046034241155811645713488644443145069506512907541298210721046569873850236403199835058711672012412443423860002832781933295888818889973447383200352881007472429377158086722594200141553371712866325589403233416053576718317694096028081726447371869991021499230312162947856254267819628605529883759403290105764872585757100223923889614340665310817557313319025966174810964280258165245475310479981865182865925641395953668840566874490781597443077174130033056986018138366336910560170385122623281110181400017473530430732217218920509945022336188477922082863370220683023914454233653689199865178708731303218860829773694569626695176460018676093034703332718548695201011492709332968534340967790944996580793100993623641158740415342810727679936246500571181274310066003260675821018315777403776161249644250424134179952020892121353837889286407042103503260444127225152367436886753135087911496608734066770564550062425525210982564389475838352344584485551875671570515341895605217853966023694771668634351006733656837379176504272656080408378825936760710849896197084191716066281755846488698707012173470595699315181126833418565907973839033044817930914840796574478799000818499180480521062373659478176796791431225899438467514851029669448877335982995166129212478254215724471069916426036411563242363439240314595095149686257238283871267223483672009941847908926564777226505748159128511304216402921919120262585723724220735835791820099074145441373085629622411667160677780735983243792020829390283165863545947368697649615386177865222894182355887425961654359017694979771200928255173894235562021275265814943572190691284491669935591060625819640448473444011222127535859779448263936046536056563997200315240373294599463641396299011484349851139452447477019536267771009417398925979280821359859098314034477216627738588123275806440943227166561817413860990329706655705392623384170008036228964207400236001446852108610144851128238200255439051103330266273185911107870650991869937493996009046943667362146642103615887806729643059022982494221544281806530209937591236798653337811313694236829970280631252672488881311847326985428080914929890777795307043969969219762804785728210811435626488368652204855066679917456016908713092712335400844672569138443193986870427091738158738563349990992597942079680977873848492691232486163356483217740241508072775191021631442101659059174900409890782298587578290672211894931023639557103159703417255554790871128500161022679366990333701965133486971242194484567199660988799502148545362985108708823593763851125322418825574894930473890822240920027195972521830868019432073862815000756286616460178121394965377983213686777312708976375168506722959167748321458633242979604510822931802441425622099920607025355345630166349744520414719530434903979241896089805709462740892134516159641370138181290106756603174618039267678949858451831091004525755359284405898371045838986494507025376811977810668079432947240964035315309572337230268266980273324224629124280561575393024621180200666635769861787704229909179057415485154646195990498497694291744243069074547714989064220861215633421994486966891338681030706456242945962401437740625388781869030243264723727571850128913712196606158296856392117276168066635839697388559493022114045511449982375323733666961982374705052809423025863806051776679550949213997226337064759158586336487073192595901060666344487594174134311570814172798418513655695795420697330614809782880283139462871917513082788957042735857332309149215143321203321754265838891885576016797197466097590893069752097740718298590541737427642926270246209856329765769762332513190133380727755263077010120766427019323716509726456312490993685624873873200304206974775701768454972920270314157537160997775780547611762898217714957322122217320160899143849618161805655524670254157261030174755448174508317216059366181078882669990533523694739351475877837326608177662973311653909692363243796962990127951935624052265274446167331291450994534637265890506761823784194135391744229864261655275664489056584267295433215619480578068105615172046305995944979837279193366422001317851057217921003476350676341639798186402956849771039064877323421740372576927859535856694506638085132364977136493878548763747613494087320257293310217755840852553793463223226939004616158319391197103364546314332164594086789629822836260196240039541921311803365190307047619208154666373341671215301164153227307748375880587809052569035323050617783610720287780582022963576696436836537372035990808858508593559511781872208145065285279512192786955545885673633251347101552520428075274008671600692441088236366060355374636131851709631867432025826742984309196716884678224316937411862063489250567466108390532986425409280666833797060524505886967861994728575656663874562231313197251429151772949353983391025041555910781295066657660651675960616948882058889157532186187716225949496384167381748111661566820985378922431724002306410531959179048795072263252793162808619739757619173950459777124659116337581063252859026989526344516013649295560148887909385815352377248196466562526073109033152297879836167101030200227936887448790944092956261617020748172902961911043076044993506073670008046042923328792290865056325846843042444587597573239052970329200304402607522704532980360881277163315700200063391697864898249201397829578046232497729848553689350121709928652605497502429682395209170310126529500433459959620258831753097079974213991264103819141388378254256614852250839282456140264860324494253590113963145488850458061950222192407526652124874097244671935647613652486002948049937251401449119104920156015915741638345964345896688596566767252185477252854111800011439602787001261853572486458575222400948750833754618554467841293109912811310754218144233521576191278337416947852490892396524724504461159862797855248059073857601764736879665941420668181715395863370001313648491438391882692766025457542271928625180205718433844081857205076143857188469616207628716146460703079519909520783248825701984630303664530139862888588036552765619482023753312052925441508061368863262179206013070598215488679971002322454812128683956842268312490524574724488416377905983443454631034021140243461732181015353738207823297307691820158293826043812148184612707014875495419599967435026739545420060980208383371969383693881445020875563818831191362733196004349900216745799667979219862394267115959932793163217734824522676109675455339838777253313157204029151818826384990495217560335781183760800873696896530576659757850666583501962072570679438216964068917203005877840823183462720989074653042630939644958178026573889601890406993013147300482804099872689090677398227915168277519511472876823996240361532803617837992664325120180184049975791606985974106947882708343474774145951867265538368752535275095963991690032301613865048616647639599022357559045039734753246340244964829670726417245396362716353171271669097046844588124174320943617624147052893595837801700885924233769241720970268846925486199619556420649132926266781906542487294320018982362587027901938817102044745695964256150888093486677100697098901328765350773963645237883872782876600981046557014595623871418722336460911167350104363007320876838619128979072263212650139390521720080178597125646455801842072118670203646291112876678188098859902080049059661213178168188497698298689195697411892342731611623574154142357431187810526385014205590370118871859329364132917302838050627056264041311542127710806184022182249376912624385369338689454138447341327377438163439423222856481208656068373965986541468482685762623265802188573639583004704751445869723178125317877035237755150715030934739206445816499959520715296205561999594615181495692229912393003708460045482048959830014809542755852878636368898916990073809577564312165905549315022981688260533288814453010696836079357349479073603790041593064616718257467638406393889893086817249418101040638416749631771141766568554733406895855753708523837467316649968838227315135789219387406612215018469480906110709110216478097355704481289071289951760504917843310518326238911308770048652027761453937179719471591273013580089546528712302282706190785954824162850908060886292932090782543000431399131455197453861689674618588686816992497769755105655892866498579523950943964294878226790656336678781218006929184460602195322074957036564297805556966784652132015478232572992190330779869969685158990882763595358557747255527230971865958777103868013965010233192757591634140958451716926205133834968604862238476567808040433025589867424677505775664500081053375020591691035060627508309497688563096299045831388693299975880333577320713750280782561625051653786651345810874901108927852641905091288127172258248664441305033818239019503347477201716663209444565877182754414236105022646098819132129006769519890636782650522024978737785633268615434623254033555402095109978847334534628195645733562031941804326255402073337139766880408709425960247577702184007998172523671550791557131647859528954348789434565668597053734076596694031598794755362048651047620053863188826162509491142762455516835733991531959695438835789096828823699462451646578116490280610127324855776654164782673366216702724511265787637719734022461097452992547237169082092918903269299752807301070251106822705063333501295159021628589651242809285485247516864568259351079742007515686784262920137129998625645037266919185751076209833686225441699939086735405905028942532294168867077572769380680311264089030756461966385304274624428931578419505710228002750778262508869901746231806430183720680030925897649808051470125666450970183480306898392202080787209481718115144840006443673721235809537905353436253212569098219109615537969399249017277816696924147948399957478474375270812939791948729803080977525558242490713624262679163171111783078389485339610856499847629014151976526638432488330093116873458603075233577343802249399839922141448473650008137261375787573943463708055425841101354251910129699013077161927696542808034322997778247723828296705785123136083695022023336892985385047376664980300160864429849051611039587845345446592577443835088973831801020198090102361718305090492060967477652415746429963715195849762465214750002091776624269087044704081648909127828779822171819097785941075793004226873553797658100816478900127903340427407556774419203499043703800556720353364519166208603487580363451968554559254988159975044924158331546253315559017088502494194867047841376095910469913061756763583123981522118268295858595592477219481757639143334158205228895295063255701334396928063127397125415833314694269939616567405306982767910496087638432037468209047454446926172909944002540255745180861886744211793541759274178766375654200246791361382519727422823006957451999658312750978490168358368123982865007217762341533059529849737818195098043388436748660419689888772259539890338204061208340431415460075455688335821010774289992856707485838637772555647131864204388898723306842328139313299013781368125581494163552561449679209132484747980814108040232080700473014389061990662696955929692010523002711168489670535866771294685710153321193008825668515009149811740067786670289764518084179459152231111365206220436656078769290631937612950454677319553474418670641671335837467277299428599826310116390435722484513458769473729903130413619288957051320302438253615541185246335161079541399930126106857167683800215578408183309535470156410630315356406014833710480635769949415722444790708361888137663845548539834710696641811722280259536941736540565330994512212954062147123448439045554806905061585109700434766228343653297432872230352889128050151156139209212143958150039160911908458523804413336714865867382790672443736829343052371055135661601193596454657081038692232011771753148854247099075254428845448468808637338727644527169096149486655205064137539026938052058736485931722392826885456726673485961803522784704761004714430877856829976373869554340000187601831811309282477913418026734231805283126502909387848467775705403236981577562538509347654973028495096627516333470196712266440483541087100332142535028452034190082115660156376718843758613470170766774438956775982000593069770275359423699444659861858646089846677993714163216511181316843014113669721497134211597481321769858988795291862996604444687205711927779485787632140326852969183154803166577816036266604147016255325082732063932959239296568453258875755772435004098783513180531604787421106353879155548993338101938572461407355720438329752010736481953772329750426138885840899862809070392463469766157608981578837619348413067235792808916440014064037654071152131619162433305315084615914464605792849799833666613528978798073629713032898280146064376585309971539437695099841592849355107320732843168626016943158660968512160928623279592809153304945965368486307649266921430046420272652044054584259640919898224342957580141345255800458099757686796356043017825122271859572987325035356295739165696339195495904742436745397845330338542545933972891769285859072482368689284488267050386507679574670537278753087695322885762695559174210442833043824086895147704189881530952745321584616802055533436037373445310985016728277706048492730243073980326344694902907374009560269208748910005089482493569395046777559696303167325187899086335197342194250324672037449693230359315387899669887447282288397576511654218285983625199900535610367362662622058801846782772904214497518915560765915675349776579822107494803036002601647365599947620208409930852383203101872434017339650569263228743810205240383685272119779370322260078287473535902552556241907593114108555400709509259392825327041944444848183864662867810382570544107710593037344889905798349521910889166838104514218255955033840791858837315624578778088753377822149376205067998257996322595758442530704862981705199394947409295771103394936483665504944905872380710840106949949757113392230328411452313059446485641702049263347992441197583073135962426066993240867154211390422817751974560766729045661873552478638049390947122676887099253920907525336210351479863686731581104491798619426651858189626946629635974999927676040044049157672980302373033128122405136301988065805773291298525586614140312012628606216613294753763688421967794642482799088300327288156054979280943810745119010758809667479697736425476029286718902600156537167926986176607103406601799028233569268310156596657044820374258180204400163079289295184881241006639384617236516804917435521060178897484634691802855633785318877481686167267019370371994696907357615964314823283618271508776954771986088067893452330394684705217417751423252061983871656172419760316267688598653752411806049062791030365774458766968766032745356211802677160685544875559185716315047504855139967235636063639336542946614293114883645143323694741806440246593651037064273703018988489027889550556039103091877312449078773645194277229798490023454309458263876674466258400159075450393611037703361285959512789631314310526927018623894036487580482144115387017851143375648234218332059455746374366524820055293614730898015460520845172842256851611941069727748375547748779102939547407557613204986551766231170978136106183717222235558430576706264879490065377691695763284630931708855898832063873101356817745638559529442628353497884599279928793464392203792080817407720894793321798525550296544930928846779309927467540001200975611013758899912236214161216561573070080767778290566090113763248788813226670227119048590295796140055678476564237067322905986540051101826521377221850871533073785441011003489979592042150526895706707585159707198461286009392230687840010456163977257507233230010667831125762541709224561225714593741120276442668661248711104934067410695277670569731513851570052679727574008019788319745363158711074536482585988744556215448200166370073620736179689282736135337257719246848008018852699748089533273520155163067711694030915445508879254184936618107442964182847893922218540650866138162705803462421551154424979253671177435135519128992474704981092345538750354179272563200538032712411878198373448514065340615287285900945104549381267997856355889101239307604566197377525816515048580427565651447170839601356918464097526322508233676981442679539200316652663309613328421125802708557449964239211635103884251241881217525639544430806537356792392889294282141952766929878534560841395950288022087579526767092495072937428017022614788074170233118170320608738625868692684197835082892520577115553528295803456895790951358456857087437268770802707357509370085256912708566681111748511710870055715412204146499953757384469554149096100871212419054083626615048157331914056889269166502656777414559678435082568846572226773759544000832000539020267870073528553559815071248106795402211491707827293911747228263703707958805148201374351861626138738252304415129454505008031386552725075426685882350208582257901289527538429760005960717908780268819628835591483943976525926864699881385733579778436516251501767925538885153567749399642944120516986398686871454000367610579718253401876133724337358858501670412022147172222591990018338601045240720749408652921377106255091206226340958588374054601583025713212097077346103563991903792163124890353542921486722563367490061529437172083187427657568557510358524683027576688655813464192230015869616800068628284236077485713925911188129469162874097155058952512693798130728932495065499306387796442972266363705735074341861382555250110942598832814118636353345531264622846180188160586578261260313603094586996628413022677145977485090231591473743606317489206925824895392787668267380668897286458857640893536947650120252567565530111975140095521095529292975594922331323390083753662298805393966381256215412933161517141414443365962651689285253747056975522643481692883006425717601005489005685060038714453582327357026561529109817902047730348545992475265657076260564324836284733523802043691849511048853151942111964070743685386180681828241534316050934279988092994989131662030517978629709082927267572175626705439629877518971769908191752816894472591525004772811344657025462887732910272010165079278952922945151571949425921007434258107576724195057317281185929374000994493031321971477003086321945795366751498162897723014008808560481704529485798717745499722331284419613556216236869476990298288564231351577397623845633614305308722835912971938990181439481246717641350904664383233692480500807381084498326356706708972464769578213866464283821089644621923152691707829417993697069350832566287459449225244130614166840844394647696355862647524475646167864677237267203507904924955069016344994749062785955631733248720658876631891251367277787680158684590817888559243092737548377675400911014081114587467248637889975888016511219255368772841778506618540326667766703445062061817126072895888747745778168425057684899472285174669405281963274023331460431609082333752747673381353937625978934920771069242496541229677271964256778800425553574453053950290535804117759020148678853249606801759762919671280553589652930104446066303417869972301722453814933387906529455574727972312786952672701801410052069204202493057230156629175521781751409492853790840361270363763478728250499601189561550309609132652001893742651583046326120621041292477128980745060917524792381921516406627880734131412594809977413808607967519499134436834166209572850199551583055426789282845190760118006523134999982720517649990359869313268436077953098449031010654000083398216213011294922627525864387909008309580136118973823793429209789460019596479466159099083606205596388723582003024044398719940250452106888615633796249141811475437756445884410040825896632076355295653373117703873952654559075675949313859060383173240565196071997897289586697842052969908962462934096633132923681593202778677410707802970425301998429942027263410842311622301112128254000915664401237062673689399899599124781247882943550177897541488699737627974995250581850475590871871706748417549179567371237951116052479419927014277142778323395053972290752061921836214569274014830000680304808553074612304063929265114941365812274366875468381511208436061425014399047956892650976646270710558645784729861814706235810439230587856618043527675517029008683566755336658007511094216191418735387524666848078290646372033938695439153799197913682880744127214183105673642323395350547208356512201507548742474161788631382152583068934483456442309746021199670943339800234455586282661206528321881558889669725163737546647427412572256585094787681419268754534107504371319086237035451926610000863416658877061236778459259149516592767349749387306330294999991430367934851529060590343530161499198055567853631340353027106300376232090223311458635929747324798545179695807234995191796112795613026052754329075742689481915395946222295243131189666263431892267065140480122928758123080588789717325377647955543972982772135378954685357823439631508014460688438367954036490869599330264816429096666293499437184784182622179887085200263692170588388855382424752463895414447320147049983595448317357633239792049977596714878273051216008210639529740068833452090740113758184856020169945422340123581268798539547169368802708753384467378597826932678624154741362180270594724107173934492457661378272369953074633276642716640238369977604710001035957460153715357664996186149422583035477249706345052912206626976354777484187598125739014610828713364074627776791276874526099577726388182219163628967490731308497595741256310596340751277441645542900340244700173404944876796848481592546398267611312276212134715401436615469793707384136630579494955239017601054985671359653485593693818427018786939874193431078869633119059180842255742168636085583369991040186173007823511795825118593030798325927331525392885513991490113254494473860880468363075531720604331247610441956776687867077960758293332298373276586286318560580592778858623515071372738633201991251999751312357177209582369098852372564640858955574264676122961345810236115281109372904808918090067805193042842105909054711019084116630079966465164488975899734714450919563392828426998284179041203496117840888902297299646048579425741390355743336207666765976902247381042288876169974581092468896410791989438903950086677432641827199138172350849915649592945008020067461488869579521492455096131459715441435853073925352226703881789008193755803923385013779977010479165842333984523695244834566071192914328037894869112360477339317024404485422798383646759332362794383357937765308449128534159855343437574715757502016530658233221845137110792604100446186211918750642164374382234662808501767837857916043110821460148080286244950633219003337455640426698186013099574851854900183294282260653094125684835071108881642367328523417208338520586893109019069999277848168137290660131323911066644873136990901227770750948228583774205315062515966717272926931817731203797409590400690106049851615412641605739541672458841380801952899501971152835135282825489039607129560091230966338790979348467687238827035520063354227170622501998405731844785517618312841183489587408826386427167536390453801967331745706730587999636095977215223739421623402555496206722933368235146527222495584690864026019387642456732206760355602663364238495149047472625427924346762050582012686152097095495230501571678134920453312721261235298500166791616125898315497472651499161020401107666176372198160785871553306191469454041811863631473306468307028517526681961848263801164053527955925750314854747435163320161774548652824512858095553162488498508277786755853468637202935453775018788301864669164588862351698789255646034199655372110496226184378006543599370500199025525966726168152121905522362279220859624102087820368360828144982936644041752742472951612689395980304369320696846832478602617830908071540579766311872934954041519160181932560570742875472020627246234006306886776732966024991708690024515902061666577166347106267934212275603207356383409353273850597658662039553149210694661710496077740219262954911412677917692656976816120728626179408423186645170564821829613127455874649396866703394441169034794680006250853573329467664073757929760400648711147181847123352509387243259658727234767531938954566541455349360279082701662710487667568590365065426066479582621492724885587494195448944379877853808354855458610888014573009229702757920287593404865100260011996928758869252687753029330505102301920356659773497992631565416164040408628007653646876437839899456202216622392828697454720518939030763425722180300182716634747510209624787745071108293483261606888001768092264651172408291517960702501435550100757124937050654475610805111719138830530754699146022558634308048549949156650116917109799458409764220479953437386707252724303904515112385178965262723688686405567961819901721863775021496012666352567141677306983743413520779845779695744906161775437722582252403781203734296559613743684642672723560523199675275025593738555608604604564850252914387810088427463882212764790698720128719658262928244192691730827481513003830088745825431577655682845475080357070935409576916486313465167348492274642473306343372161602154150564217177255709324092048007101635891892135051795660435443208831229051854098976631462687578963362243818744113802227349789882457587141347702905821261362314430428958544470169076716453294103277469652620771709029611531263728935881133169095832394279236025911938257081788039511115582962475549289373225590193957820463887685151904459511564503139588721051225681693468886226177166810555309071024184148647332436622524768521830755014088559370055114634326287887878043170375262377819084141319729594634964995931101945757120586431492674205676593596365662496833403363259627996575788112529621075977829286595787722306901199457597027490523061286158561661017612150178971814303897994086912998077335122653299230965038082137752316338062083368257991463055484244738126578523097679504060014720859866366672594326162524307929214998018895890283642959205659234698372897885837266134328362710375817423198253718735273765986978609290791521893777242668956048501651370381979975511270823856135181852606429804210214041504074226376692999809777090159678874626874004721141652696124853066237779455460005073611643420349979357762305332146251844969620698820251706617092092435807808535229337362386084420014855319432945552243849781806706423230112877476658582009297209013075340907774280497288942724406634002401432691402222455501852200467371058373973535212379543761226580039561649820642129729462981154951448449106213675252328932742103029777537871040625053105117646791994790724316910797741386087007871570978300155723087508892449723923526941512334723327393121153214029739551576373748044713161493419797111831862283043525260881659481606544685974579580001607262983991547878925607815949218195749313775984700728226029151993146627613180268209533697566564748170171365871726385002445399967910311083333141356070598639163405355092233636993100570920233923508137844619075268701125070398507223244261855044848331241157230840650177146613663041883735285677200793393492242868648370715958101942232165874967358034551639045988014616584051495312958562250119260745671266734447840596961257102661487079280933717785912809688398265368232068900395276749439692318710571774050014808626134677958279495586462520321627744794955423421152186064040603277607017308593395562989971402685054071692756671576833070541668326034151816943546468329905245785192891075910298203688748198006229129358308287248911446127339824530490532422697029972223092834616827134219893835796442527365810446993350326285599441335047698714638779249025698763105140149875661343131732445398187581472706546795314912971681092037493820840793921814546479153268304341969553986109636777630738987672421326778867271800171116002340036973635617524429999141760913740864894746783078195107486029808323072410088963076495035927364951396514948885611023370717454131889343390667013203128602580883912771614785289637247132600785717445021193082279586550662041885616093919037899693674023324684607914621995235924737038414493751725632613951158491076749612491461511586961229042262140335874369843473617343681834654782969234162347074218748235268467117821402641695431222806964599148901968434115708078208381414334658620044895966324230835173203635625087347159361855815883141259053802883705852858461229145735840589670004652305927968821664347368735775610966421095513312921922995392256814412543208655340889052223298842868429033661518463217095740683675180637528762650774646412019388946308219052395845381318637525292018583715937772700090194944728886946606339580359175402523848253609609568554118493308800146970257055980548805784174304887609976527690195485292646969763521954913115129564799782963640147138301675667495227279463952236037037899344538175957530285969131008986573444043168400451493994002267956017495515959379586855450934057552529691284841828961746259368773120957277627470579596405603662956731397638453090355254110236138043285698231116823702106865695809536425889540090597265615876567308215990593846924439991598888969941589189427606424317719614742145797613666458394450917579676679882708121237713316532363921315697818113496432973057006369762346264848411414149337035953888235224673504274828883933793712639451512930157730424822246421804434397649935521284363494558377462469681943654214862038077249380238028012279640578923898024595653465798661921959522617107243744876460849607876008297845442038340808626396778950391196413512842818275183053130072424799109740731634246926142867981094258567844557117638226828908636856121090379049098363033403282139290636345117495574215663838735122391238149298287865208041054141503540429532339614001819727171613125343716374166600436845717047995914198130809237243173331747410882849452640446615453263497502000388376305254007770975497602735230127161201855004053765797069845697960638094850982980380694443844106688962117585232006165034629457501741049647665742247018353835887250567061543571122831122932650739265889917817723724784650552151165344207048425934217267203060357319531571594473079757489957094673882355683004793177659487708641985309523550674513389905430436638968905972401363512720112766040183532755040602691048783259256919831445952903967620428868458241001664291668836043814439431582980675162537064647359888812402321567495607183603565786956055310861949453955699247910455424414002820454770486948535593928231823553868139684743210833088566433308831053203234338724430142976682080603840842096458492378967475319836078879161306631056951505296014654314580324744161764432571732533395838731352665620948278695522557464266726960795438346025211949485121298299759817328299461680086307787109711322651396578232421241451026665108981112377515578027837691181115873341440143623094490114087461906773237144217282029434879324962666858547230063268038158703694797195375076570808085071956003337867130605225084988449984725184529434137116532524919233084602867257369678794658276209429169893180907373061044354765051138649395683319663832386789094775518797910122601930309522164169740923406052129325727424389836090212475578362630592365095461611208439848611300708717444762366938499574061742926275654825627555238902061685117250886359982806686417089752226863234512814400770722540471698078458476486937013234189877019545716195470521471003604656750831293599681919903351137294375462792384360176239044950892315000113944435989147060235442519352639268709035105727670503709580641122847500566276244124420812077762765139474038870449827072467758476782096881997879833776267787509976481165128803801802344045485649935190083381509836104293947543903789714083075862331225299302447361847201229989040053528827617834178502976880073957388039738927405816348914294185226651354814398295891126600691265538084532296324897675249275576530985335953356249479892884992070154874053524925483369929213700332323666275934790638058874503636821262162385114186306007172990118242008012423740022524457999029245298785730987319826699032401628852807204595014785241890150733163872206283131682947320786853027283285816091401819325561783726179462566003554531812160668428297921266710212524237405153264294850496446422670401626390632671802085596482328987075952948945839756280467139439345475969305944599457829889596454788720825490491493520614264939189445593005812041787945758820906992711303348610164167233484706014244173922352427687594862550319206374156584286402608526661001980150470387889968773818105781993237420607026287366274014197825828624290190665355220640638142191490780421993350425505115270852849052565720967165386618209379664945740693995364303322118961282477022015153976937108983906064103476240098229413942371685319519805514474204390955109756358707123396189730492587072816532066071573262893675714893789018440763433136719668443724816952498316269924041960540271003840509622828864382505304250948205132718525890249317936292354819728956966449761353866878656812399630041128937723544297136055830745064254187827941012948843570227166009528481906590290678472563315356538263424635591269132105077661238917228627829908838036565259591806869982442253350008224447446639888164588709495404111236342674433875341121377721780260697359698330516915462002501646774763991558523381598809956226060278827599650652375450414878127858891549314044537675325676921205507286259516867452407638129417922087011273578785502414160405247319355704553438855924402339360084350354765536146057538937730465213207800884501522590088644901254233067604470854865788066216442911372119388859623124650334315246021541641505520084594869099583653130433287601998822042562327402524307690523811283161243596671482788941297503909837834210865280230736878890022126668926498319394683839701402358219941103648302795392335629620971308941038887525865916392368296671051386607766418279213357576827460859725826555181966550432067075389658646667121490040137061238308998638476807930237223312851318831847304608469246115500073484775668815677580193373028517621400061177328703232922882389683884126685561318504873893035092746644407596793002929152228150570899755696188501192893143535547769809529527279587543009939400922783688548967422270399686780991419755793721389728353591461732940822778189553235081125458087531447633376582544896557101257494351100675824326650408684842007524774021098105888279300119139982711838270268900546019025827675903255579617312151052288876177577010227822584743999557411274314158073847194946033048126858845579387523462755828972806725562393436672882112919202730939261376937037376427623702833914870512875363185450655944846729630574781490727596271209076129851633285445418187760063736182754243622200687329770346997634318837392469760453549787483744527743365818949318629866803959027611067081188839588545830161510769854648645505503223964567341382567551690667133034365708992179833772421786990282453190256341610348597922536080417666845978787052500844604415584804217790055915684665790353222523638857582289734202305951816267967288463927588931802482250906453398847937135218194374506533212593775236601269556629147293033060579487646273663086879431071033424943961356683855624145222671423267578863214034010409643834423780171265709787618181352172501173723480245129779378885241157270577625352330094474362837627988772583702402577302377279270979747271592560607616091900301408433493352227192913699442000240576683141696607559794195290673128664369802648316175099352741884381696013353585020077732750444380438377456675541892192787130566652863971422260218072328453325450372810855267465173973380749939535871818867287449978052648422500566505798164209710258441205253283418066880424937770990752054067626516094174797307697195094579968762854763129236303804853242128054357150929773708289677166226050760686883168688996516836601818697971836745663396939358564528246272763953200286049838154770129396128324572323922372980288786686549502046869976215645951147671469960962131900363145148098982259386762062302729953632770863177775390943129099887494584260507543308576347344398076583647002299988451923063029746882692755322485209419301436191500018622755606021649587683351713781110762138054004769898296056460805127976800657377809921369344318811677193102584794545254908461526274541993017134309691478055233859420397425605330924188495684145295370785282585282344688086797274116412151204173162208112430845634085661088508708812693103961048051253220846649345610127867604326591632414455402703150234999613868145341327599564261915151588712384668916799749382835063441508936055443514460872168378918994901535860022151066373209979217738849838231488287359976855278032712584014377846650865040841826977466932645939386967638586355647696287046376493076506834665021909225567830105092572542861408066579445431212048066059116645084342666654365240584324230661834258539408662411528535739175389471676085856074285907254105314218516990550297984257377398247825632246471728060847828747447063131818752138131446738212296847406302116556959410537333892040338690621536224569807508617450369126026774567498861508232109356830597573688280125282774506897117324625750013564713074781127920429168229468056500396337697891271344364101626769903915505957373988385358459927433660766308411089240792834129996685268046658000122392421251930461809267201750340077517401215819553847520231096579960468273886396188756170069238878598021221163588527356851866300112587116758629681471573001698195820682946173354737547027444783043664701624838633368481859574140692434810512596943384388024983077703371235774523189735852803051263282134329305767677050624050587219866043672852486542705748585482188518654088532112466518886771451128293091850358687513884550064692063519792374948023909576508529331125739540419306025847220790808905544005625704170302717978728980131547009342697245789723517573599317825787707506731155647128833984537824313095340658602736062730920628782471853606591828114754759748432214142004642406559185051682389367348197598078069213409646902809609558337014902551077078174895067785024487542040026688642412115661011556124560593569371130573866869101030128747893474331558432924666700528039881652127071346569976209453989690129968455033814098918979876605436920680605137720822815513585790509994133359904054739232099600890407677741492788429051238718378789954614435099461837097663468506988783655664864990756126075613103778563532410128689830097963218204382495672595421775652226146226682448343385552071056048311785548656982128095409548038088651626801364363951544114383162680590966901717797140156593504145609466821249829213561250341427669768728898590425743864085960974953426632084342240547783044152200731141428909774922143804210817788015562209056164516876574831388707876880827518553755915764925252717267015290300098214830364642118279416595725772474653785192411482291695623808597621813324855092509202086272107579269525094665031059282744154899865219844145576993283418788314287622144684936268775771780505435625151164174802400111582645895628322237498815954942614263154798779874005587115505079755723579400933505481114176283082118178158173777958076858730332483341509823794579106905801435032899512839424745517374583544155395380688331205545187941892184882018309142140548115524091531842659941491558080295693823036563242195552306174870212731222616725949074245592788444762348419214263615189142570372082827690598053445349958034921368571779984446133038608377572059023395245037531962206500912830535990062174639607366647511772638401599828265882022279648220349189326925812929954869873464821708410669760490758379252560114594488573910159868078526031251490098499741332186848455131544382781478519642967845504966551494933957196557106129281470001370643609675283781139021646477117308614616133974109667982430845331857882374313259366299470742559878897829410814161103169963321774739694422635024098222016814372823129492888947903014061994398725434011617922430173093134629396292610829101669114958147639542307145770857336724845827863543065886196188077350743966677772039109090247132614555648627136254771402307226117252567226696251958262715825174645461052190567707251292615882983920770465367714096194768696389205093233509848570237639889331845053004267202154799311223720356885034675717798352063624633056851425031302581242144338479383887802969137803914407681572732884727300498009528385093409563096779267716813588325878501096295490683120179805199732713389851367992611070212950933685030719582728768210868014110445805248119573153872455731688750681959590852790451739017085135363312892985866836859834347644833866513680281321054150586648564814160729490505767185764472087967668651815276634287226460491601134374800524896166896571823908824356061767728665051282981815585115652992101780551953868952524839235300136845229468256838926490239153895175087358954976618916712483500935563635888428778812228446967205731513566615482556364256491724278275605756753769778246670067551018973902692462037228182123656822697745126413542723557371249214578961493758056533405469459009731710963061200759804999230573242890286698695235551939617650594704654557374851722912785599035681662506681266056631224481648881105275062570777170107561832873389451012280095220958213395928725919329542418736162178686304558350936477023980054067231274983683041240324752065842511945794607462311111435074166124948272151950181251078293940146588633640306609792554553587812131263777055438622584335392056266757951467112079392328105398140606741399811676692811407053654208782544932534534833596827443176859368130099890398330900516130656202055435106474611757610664374730726371604918462359026839221812061674771616893730920736983368230901000794386105200771571468125476093408334340712196280177418730221745211980030284468306599300004503523327247248372302298990742724499894178472369189805730523207311462435637291112104494409852351537000978955310711932609743282744317886748003130081324257106285437442122876759570028132138491138437456019397600987541113230598062272154439993091158607254148152319902458901380178118411824244626224148651965330931121516204409739056442652472654631731134974683051136226300858651947566001393283739478467135242247892792695207416984306763305083982391383968183399558725259009349614184399693520808503992853034308035092605483458936741099735583497170957781263559479605090339138090537061309668972295480091654372132119984384419688253622399826279911451623921573008823052186358057798019882225534982549144519335088462692042392679854877872564106427951993263257301049560383138649257083425895291845221409641430377699457044642763867761410997406336908174703657608409998264374672168947914362483827449786671197171554139376823067816194795940217807830416194665386771348461999357054054481438349553622009139994278666984083381753992547326058768771197490218556042438706508281591501603682023817463779827108661639506225008732938532765130819009370374094249757588259333199565109312672231614632080787351421513740400993844880261303445481970792375872134990854434856823574598574285606783909457272212691838996741445379727189119164922737644641494843662610472511328731037088157605340333167881125852105642255643310903407984473987958678353166924301851386876989325987324149112928268784393343920359093700688233740406235620098834766780182380193123323756646796817833871736135392501325144205909737402396808549719424016516158685300206427773070141697268516558655163761077103488475377723940438634407051574850773377051066292152376680289182647383069902353111540178061190786596660045525731062857918516974469927558613360600003835762003827465698789661322985970921708305244129273785686393592838586415999662936471514091642774851373411908693066147057786395620916338341042528201748995355016884742692721513521024211183848895648632094136750264144219423410581235676856180772640508588407609809804230557140121670145163045270009053422193590188312880021673517672785345258568085160970893177348916430308656422337424886431561904210414340126197560400119770870158583816489422619372467131194829598519876768606491463038284955070148043890889642462868995396541571255905966747201665718025649831741422754757620788893710822511232288163716293043134768111150305991381507187848540066554981079827426811992357642457035031406440178343884519438494576320020099938947328378742837799773568687837602239561439667527045161133812238052180421370385789499028909899794523876343118218742813520537789964820135861445274789747049625851497701245654812431489167520301767460903950213473999036347199573675081645247817371750841994784973642664412265275403039257290199421101739192188520298461958197064655516479740892987430434110825719873507212569998005484949762797713728286859600731544316847977918515413746024507088990432048618305173866739398762900767160734487487349507741383990105737783163668221927853311971106833770425175785872392210967128073214923646006914830751406441492901110573991996682433386022051343927676441070513499634293979210704158629260022967226357763556255691069527893937995716561441518647476018654353798137277642715870793251697287690334913441351891016374454124011492450143808306605485711847561368973117092058781835327467846981388987965118426978748654644331239772224115567853858523154541824543101628894882932895304859553949710080618585255184329381330841387405295271379746925141437567788852975515232187371695922309329983565048994469422207131614365215418617828586611189974859495067639210777899634901336953741785152997499296949379794031570231217805795286357283274364833329900345271582822520518578056789817809118308795790964336941851235404659338401845424919333010514893894895497529967760883486370899513171615904694364832477242818934987709134662571198520402693990294483996051377443485624232111857700188687458990473021853123343214947044056005009826999201734947999480630889591114473096178755053545699238538494621068392933829910616853584118736721747179662558762977597222021578029912386341007252147975310903335167967962934656189835570306102615315494430540077947996782808569134693341049946047173780438983835479914444775765001900433148858584219739027646610309748486532664273297922740790524558923536527490210428898214644621772604812914389363161750240046628525460601060881614987377846447946975587420022063874836101991161958988810289783347062882236230460491246572339650287020116550056395300205593016129953912802879576658210832748089525567999093312876629408678885532660040498905996064465098743828607296030545312734428384745370923493900023468827585053673215455239013830671916088838476799160446495655965067962675056353023188333852987125801372451499240200491120228987564758218577451367386313738281738787878387607926205513689145012615310785513567159193715473625953499034771890580169856068720411257207546016907147621666934151492013519119550186689747972666530545609036807009239019670587199182888279932483630204193591712672921408713633610376460131784341943724308973516765924830688970713557748659939634306796292419850784721635393812521057022778733584425066409263496803452996955635833766444503897693105841640578372083736086956442399968608393814360839223270214405450456936567284606103759171735232055549135879369906166116384136562773723816421508114518951982041007207663495427921157126502957205503359480225440563257603910031462482468658412843556969801895865396513792002783457277963103663179620054019528098594734921711268043253704347661583563372749748674311478658145056602723896434935955496012945223485621886944043005864847641205603178814105607023611900160068867492586257294017493040723588628118784829094636799061409804762701475815169214897284637267447148987385408260108749356614288925555806473449009873848796767250522325358796222614599787313119000345985205115858218066216519116151466576686071921781494789642534389615889438408781871889698995772462394670214677336485749863510553905987539243858796563276309249022752724329741304269731966820468284598715714295328463700110277655233981671432595091860624282798041660848303964230965337961370570698805059577767817027419750196737030469399252661545680252007779471601613053604036029932535423511725844222819214522573007260274161346039667430147669055151947078582221654235015204566287997544712211314922843419477780981159507280608573255995816023572945889617391546092934882525906408166306520429770826443548221355185383378858974641779986085571913232977733928808836986016476137494483520305218156962251931401709001889400476408743317073109052872397791450954075155959444255570337895165605109819481921651645748934520883363974954281442799090344796627354173508896610814163925634660064181001651643314078739889906311933362332499169570517539030323137904373698480367952951708807253679289182566707901257416200600437823242992779038399067961993478322531828055177578573648446443270846028468059010288085055959613234950890999970447982588300590714816356447654090446629232718423296283269553203168403948822065548373824498371623630486502361267794050085729971339624059144457295620290922476524781935920719828375378644916174765557952466634805038959868793141012903146721226933264029627394457942799620331011530607689934658911579881392985871818689702587860771013038444228472142283326127409942676040489610469244035271218889563705078979319954214898789479040676959554489011403977672979225923416636213836948114151545404072919257881104875293628912568153823970066446362357085168407839430894542164303148907023805283744708508543562269651887888230331120567370881511238935134725240250246046453125632777820944774250577856157800958271021168942201324357503698940718247368546124762064256173526556473226699063770018799275706807998642568836866779776142767318262132046879664186910741041276653507206128703630150546964250310682746299331061244337118376600547607389168776623890172299321525898924790724968636876089333928763775797417345476716017170150680651604743646858816408661405147949763129390334621115427470933881133939966753793095709771487303123351913497117574063805982927877542675507998852073810576250180201495126724771110212094633554338419563836850245973379531930562121746847045051862085497732536500416155963530099934143899659974893410756064485435956977604825594191195756398520696202157148849710061258767785946660955722075387446889047140208174653210974748163169010821390620291898827981443495712279532192418575028009814473493977192734535355049175625523758915246513421957742751297663146410317662482038009346143581516726979241937616387468079382937683195722766920257472878379645020719159681608580564394331103337058582952976971958458927009744157859434170511670550981873390512480172673850388687721976634077819165617212347794637493318091031566531099583193392974643580698422487902641274987494600774509023942870228925911682996554594328916011524959711409519482618468270347626662143964602373160858033055402406220671793107017565324435819806688203715621404890129415424878865872752503631737527213149972798994138568259695985374598220489583133045214703758771207331103378029298356050020367906062774062047465333324751093840969649061830977599478810887576924182472408795639757849174797964155990693219345499377603787837967954748160791958079483809473159802143742275452200428461127760921887413725279675888798362575760356281818600747072389305640799666524824870285010431751936753641762444763662953970763587725126791033986633078623468854199681544237419176622445143601183959593979888521883901345300825831489184153610393873480978014461494262482983725109385980161348384830587019287937246840843657315255267045227435211587295440690844560385666003858717232304420949770738970407428013353791605335159411410333682158683724266309732503050746336214289443118688177643129285300564576444511885525112123485517461945770378386583379955876656168996341145758204549695812519508753737200072622692963035033275085771554231944341819436355907975966717479269112155374105231442113997147767366239571669829534921561699044157345116101830616325962083945732372756872894147901589017813749609868750022677345113456267985134162133753295493866522329210093890658223330369136274268800569468747485011351706351119594855538949628563820972241056908340455393604743392611854472792450008844746247231594451900665383133936563256385361556692013855776938203757077768691528634402325295604115675935836310340346393932862951003067709707017552248022495408925133009464624080334003935341729852422026746816379215884384116316908034741259100137713111003074498181049596239928130945270056225467055623611802919793614888645616359842521076512737327163942232205136759542396433979022312301332969194273389165714206393610756925900850117406790434951625988762804377638573721044665222757703566874655560932746696326365775641251730328023847442630829597957562657669922283844703991142229229007724264361541946080860291099367509111846317535179844325739910581718482514861149127017005039120755735736833483472832198494579158413671751667549448918772652207368443310087183659023266781889476864991165918740653334602246896175861131041323209987015551477589580542423284963287954223775726137152807854352914272896726377429280495298497894538769460660013003261117904478084755676288135734156539801399696145481480254254068981150781785747832413408669449489884763740546090210762949121754644913803561716434791676448870906063420669347377256348109692997587767906891485711527622845121408041971641854670564420159853236120159703560046017562620508680226140901908784066498374073373763788578057030111862183594095098594571084555253527309872244440294883971899847273096773694274505673601445690583342716232131075676309182812416178388828735487734172454823354180462125587835063411052391530557571250213090751841930785245546027877480894231508326167684581235124646799876269560387484581653518761869613515864521781852709794425704367089787634668136221440773143688179580358330261526998982602053843712363321996157228923352873202880132426328481029647141491616349630978183975244232430555137421146982111061516437362689968994830581869016111511133294111931456106333984296643673641368722307956617167639035267682413798229485170552483858829105024742860492106573383630788618211434547358079358868559073801194004806306202849966966459243107277063228968394242588031121301481527721916505158996534199026735967644604388485703324727849760492285529405211757749642168416851623697954480592616224296761183020855930964599078764890642783654695581144666551947482054347885402129586452671175130009464302696627091939068433557801565499939477833705661541098435231902217575351239104426724859791641714617848402461127383394692619024245880676985915923110871668402790028855841709929007826385548588463556551790038786060825407218430119249139166083777773169626137780282485022966046397816541276302888271806076331977252572905225098416096629528294130613666028148374431913862287501122924960139949679639452415550970637274197897407827382990889722781109029660770680221991809181439960814435417605482576192311848837431619872756931384898036790923901475305385159647369997974737065374350790100914474168633588370266677127774498773356390732435542758074903510691725985125969522401058448250698420345554440896075960758205716271568614117602542254071596145949459773034972082474801747362053297819852361802966107511372056024552028879983326456350801888688503004633691840319771756266978622081043640605181312270424828973179960638102649416042750914323287177528634014494423122547426457886254168268383941965683455602159989751616243066158153765681503566956974072325340952500744750867514703115751669468767186098429622448676056834932631312934360235099059083442429875795058701776104576382422555840681516155546726169497636966394469672745693576308230836447517510501697866308185958575956682026634185453684973876340456826960026594116067343022407293557034339674701361170607449775516143012507717366849022877128934639443635277888681235371368679623764464153972708343779846880986682646083971555327178068349949061352774954196453667680834789719983429178371555015263259246751333054561957211046307913248780681085750462262211503648929336292414950620059702224054947107796485704001770431884230380752731204954039274020694236138976023794137890589579056850168425980699038285753527551077192738519730566866569047082661537281458325604737551110152347413332212499507495820813348944017407737460287279184816155544070443832312974253107470483387678949696128376996267501377109550984664842276566655076192794392987895923673560706203022556287270222062778980024637246688489692134592634936799658106356237926217324802641960482016227679471654368618657793955110201417625933824223217247457552727129260006962849550715668999079107246399535905857808492746158767268599587843627263322098979525734490708213791317199907584327283492578250467093824658230672200145251275406472948163296897094352986192908023829558733360761819215892030592685639867018905538167254935270820131863104118975384876453029350249554787447460407357674983540879258584375673771106825131738894925377461238919714523736015597458465504649909688182893465051073821300004199869959195870141825582317953575438542447528036565167291848671716168709705256878267042228303640431246956811465527864436829612704165025802524931549634911827421951969734693691784364234110478800099535452215399525816858074632194285822716471265695411559791186219400745869240085555150417481064180529978489290353590868384163310796172865568096663558454393587447983152425075728454912537594426138166959738585272477663570777084170367092745750491483218444991067913835240406197152147399957622888460573588924176016921526838632157060190699400013488936043979983209319603374314883085598941743442427528497951188778723150588031522549480862188962126628116365341272548880326398944109375767367637196170603243342235488785383449556921763213205522253618082268877751025307819043768585724830714504732226271741830914803409367199949162685127397207997758363304220477635266070309046988046378759080012118933309525466881200782052277629103584211534788015075197375963835612474783161338654499648999566117603408146432516779171147488416270255703663938255461824776727595892859105671404712282383346716133595284713325723836675078345783131550107852457208345328638750257890436516685623119645585531679004636363651401969792186106956200903282270903708047111434376526306406931905348799600353414609329542998438430323671772101755965069946274673744461172389795079159827951667288732300734489423870718309247843300884047775937819300328037616853782134092190403580079051813413084307778591581140008456620813203090298493695159459309825906698123352579661371467075488471453280880995974916278662640816131127172752281656266476478980239778365592125996086870929078505110055848008682692411305270731217779561813818349822536394872024318289555474508902730042544571928093369312220033179564299386436319396882589646630838949487619803101623268216200826074704737675519223394283109608061967153751928778687073337638521527428122666560149238102279942032608617055832099273297618388260366725339933108090573402975904341231021040557169769464189680034790678936262358177524962418725144827483053734039687879137284911533444866678388795757668411934255300294037642731175010465444402608292823801767021859351486517758858835080623617183734311886901470295722090882850522354898234048778786936259985799402476935378934878595779268878815842931665043718112620432031933157475657641888340274780707447655415008003907137402998219059115576016031979623910198999904373206360796922402601380482721624762078326787593047988747269664200954663753057880528539095095347161228757063187653334457537985601926941210801210766472840700041333454675869638525870786469205691552689709411620180684362758218914218739253117573229561046506919974179259897101184993037895631324137031225449074000238715424658934067172221179659387038590335522218705041052282257064336141743992485487603947114391238688109128592336010648023774176270661291061813038350030716817152919388262871642357087625273621490379772174356897124231562699207389002287339042111404296992779916334418599499313890326044814201639455411540461372161910485433985126930382021238766032000476637351787391881308064405799134391026560238791400071038548165567954083788521967358978400968268895682708104090771976877336635904370160873542174769125077690892161051454356229218589424443700368897185088244167205950233301646152758797485603362012182771978700759837236886781741840287978153153769530610901539532210728081304160931775006659187427661228061661303122463083887554002059337950498141034141123372182072569766846101778392615122038234529527877300759036646245085958760470079838103113114799168639137530758699491020465304953145110000526572877041729145727396437772697023014982226005281457103448447172267386189110373609028275907628050085262623813790590582745856145437970162472402889807621511611114597923623492759230961707573321397072849201554372225824707738677713368124744896836722499118962730531750904547292126734574410202178447856285535443053903801863347272378478618252216879338235132545721684945561549767724984400076656278145903039248896134135601101864403121370179400524922205788706843168773177181478581627693160345665900297216229226074654233624495738851503535186669801804953946481440049313755254508309732501892142994134658679302666119232233034501219913286228442530282990429814193054021229366197174432105438250805138026987858750134638305133162141700689591028140010067038003741058624248827557075216747770093211766541573974920674973249270149855698704139917174867196886198259971550261079521554844159768188876118636195505370214905937632904373170877747354920942821086164318972014501877132111057886495759368859903229278909858001924977273011242444978118780112276742766772312385952595801900250815900066880990189541163865790168303377981058611999276682040449018332348288797400629152518801370666609315751137778915562549821763600599114734046915813408364365235464434724071378323750940048585396177298716714512022320587250925149616931700659472078383516236292283198246859239969546890718676472350346530391465450707719877456133318981644622882138155548220130633500341110743585592511279987355894195257695093140299142857297942838066424911046037685985969620315731077843063595805024717952119707762132054849094701096763905321751231441697224788224043724638938552424837547333292929886613403583855082524006611254463104427051809731391369208589231981934765090686458994640374125392798319366497196675564831783062456370647117339938162713277200891898124510569322077948437826656625021673359787047102196870415795679716776182915172307362857478343191608065791745631521747942661387919283787320569793019283230559806641580025893513228140580443191598159185573081070507558833437686305839272266999906739939683033011433003517500050097307199890043201424597675652743271650658882692484395014075624449626417527691934873595158345319592431959440321020704597505347438188172866326029399687343718532700305398840901706328794568774562400936691725178391848280665728009675267567935965690221079273304574001448841340038970184676037300621858541946910170017742454363828982248060392567257516133773471791962036850326287915389141269971335982597594873447695505643699377090549195925175302338917920672756831801881421565399163633576574375117756740666893508649054773455922099961447849503923498302272642197071953765577869768041567469318107084180474124478173549229422794826156670937167027038339617375515216236800146564611336264043669268657264583716588632674876701287556273365045361292768878700236436408592774714159770691654080788815966184625954339116696832518822972614500870988679330529678064908249674194969037864440633641894094531862339991877111722383701589369506972417945271050303101813800687214831642724691928886337139824020953852962931894358925307149047678305379401760586807037407586235498355648797001128599311913263196854979295283648269964094118537431682213770535564675209505502941949692168338443661257440137157782567156760822821200658736819937751547415446695811815449629088197549276166214326381251237405610177658837602617313488782158762290370238062137534134409987782014204709908161756668386979497946662341675211642090061429157628919166249457606852212299650720546777204298672199345022713627260180770866760507777590514003147905198300426160199026928899422874585797607122296297147786480932646958519824510952376040930274148600412946767445221121812415143421833982418478599224253279546824244073596646552581122488422954703088868496009637321010293017261865999557232496217956835076999553084565124973756774394679195996834372634751460595470618393129284258001725523122868301129632523909078214242688304818384682825291456502475253770415631130670956108088951333689255195133096379127700793094860109074715152236204359526643168875363519719845367828487130349389463998635581631153000911642566499030108891469413147449246188390018804581212327310114267851486913187642605024698327673367496128869634317677804275846306913718220481692450508725253574064670283732361482826327690875814939678852998865387340151568622120836075412090400204863677230407539216303596860943152592345699861498195343654933556234115103805844356591453558887304748039700832558368257473200624066455982592432399056530783786912418703756116994580892148500891454914934407743009244190657577752966792375127626230587255195655417388008887359870283247930232664084916823359083461319244637920625429945414536430667439550358150804496643321278182494257106686429459304010222823151672862944200227549633348185668762654615861340018950143600727533341439828132767678266847541293566216857543129573914899782659390577904856209411957755154441442207843450343863323700698518543585403913791997667801690856730602621264764169957105830411510470900096788326743291452732289051338002880653587843492827968672951817594354167315596696297300421529741408874238347114325323292890389978198545754836991467594606977209246888404227742144696480048702616848295518573928304935340188626464935192262282324281817201539566455116357496661042167918384343207476916591943850222388282135171811637349475449533971627147682797189647131074442203472827502970156127033726388378646082019343515714288650430171059828428464913377450909020759537881046577682619486422194115050029123232359050155798424061228470341952705275807329452247415479321194377169051110692434338681526039954541867928246497702806968675464986048539486695830277166507345386558578363293313087944883598543518019468856501488946229103258231506347040595111410560988091202042116809144866936454729312568106329962859964775753794179922328120671750476833936868935660697813572913397994753648475659709138309719400767233022782071380287239698698250888145231103968115024384112709648202167472338435067317044835827439542267803755622496580875608407029919913991107641018805291304815602577221250044408453833487980246514545828937948835750125229403987086507506628860664091390069081049314241067423128598014368567916045227398672941811641135921307749125201258045544927403995069441009449897398666660380751384333812683553006611561824144724057619085177476049010526488323996991576633461434955529195715815952324656575547947149459881101748766714601107319935205760611439902158290153044095727648302791039420041333016564124870164312965606075996573659356617952000535781819685081040390962399407527469093301491629186303850703733352785331440298673904893677764468534219133975103162509408494151495947253197269978533624017914179855404397944642018004385321227231132134154547719889114765910073940511179510557027958669838738208700085248198489484571706517859223687930189949683242552181329529856957865510245745331072719394646782681281461074232521013808036044651766482998338745561769175666256780644601574910348891873897585570212829259341634091722215964559383928608103121292520309492881142368226360799311888865361006162424173704886271063878233243534300242878963241997297757643825399950556188697495666381205971787717805766182373749670081182553326980300591021651387915497693091582871946077520577900168097895586854284125341941760080336069850729259753299429434767179903733553491713304555797536478293320850951253310304484987873917144118464524657039562451099251432025077786441855522549448670227041501253994676183244287216754516527800562183475986141021229534183177877181397539964447862695737111338054940721997586432248151602279022523776452242556784764780161007648110212952013498835104360491114931677830664345235224628144764412280057622870323332468294345218849617795735816764826739396912378197406504812033727414986609808142376614947286244387132090739803071194524522267237964452867122166630946289272305374407448159580419212490398923084692041315453900116118321051161270284032570737769926193774972023535260836821990641266522176285965844479000026601997604559537423502186065942950553274310823597524502351301533972720650520558214435052642230911828970005211232254482382492551609049128165419342634453752185492653293736638994290923264465444224469484217583309039720654398882610476388636263070574098651770783930296912816657582220320422234504418467300181864761410387684039137430320872376736564190834605051079819619374781116607834830730946710543404195034832534766703791269453541879880086134613898201843141885113210637157027996441120857158427140066810142624397679145169632751542981390144574376268598711515394403786092449048488429689607972083952032001104260353611120467123459704464512760254369770389524604820293900069775139175551149896133976912506176001492128747092577470869427676563200244890306970458542921370682402229904817225375528471516447323844341315497354448662730117138320453064451372039261848061208531410951509723102150004407176768332586898392578386568418412517637814445400670759432447720467873878200657574826849045649664565768089157172964023823272230736954338623734590148021224772086133688477450088164875002673485373388026774538383125072067196884225213022073012653373766628449905355698532569662726670189496264473259758768741981343286856479600360457144283864694559401529939178030336398303072806463606154023699205284466937654632372245620050948336663234566179896351559735591826437272131431207503350331009689302309117665336702072905855128429354602810857479966226740230638396911264814172828781610088192301578655328815134120974106028726788950211426676150027317346231003322099229781416988647991756734526949863765373358863092066804108116072147767505793436479679059764117633188670009042572709781887502732294310090455491340593585811493526306959708541308821066454681575192924516351472313579628917881877527387433078136499788292923595682035603865971609829249551552347345357413062508758035561907319560354794538693123922421430693291421532963897621653980250869591884378013612489960416657511858104235638808838523967152301206608088155507441384458143773323587113707503960316562920534043731837065355999676201510261046599889535236748657684038518923044132147483153975027384106629472512841596607364315331165526110206437357059240328839411260422943029470940166434102708981847339311590427715201600049558322102908588209389344136380727384267741728757033310047797688861634861403907153945797213391351484444413886064401801119434671945454289884063915054991547341557993756910504127856986923431810790389959637123049721776507449302335318598281641847420686355403917651021691560794307784523686497566465146475657140775349584222694922030656008486241874939639951239173984310366911057539866881027532726075160562961494073729021409069878007959854294339854492471060121678435709743876005466232392384547358767752194394590790836665316177292081482981767082382789678321389893540938587185057252301427952286077743906930618686096022908785526737484078147022046325481229036907303027844504833674657947899865103109959598652733620391819465391940028009626311329314663200343807332649909330028562114935103066415313960901708246539320245028992908337541307122027858445665900661812893012360832552945034958268606642646425733327053708115274718998881945177694933309957772845180179130324923004941338679333221770824381652817278828999517456955756076768254833082083229563460088527983824410740070434610932376368409447202198001666700096492374491382355038357989001200470232336067099062545651825649250589512063343036552155877303256415956009753133011866620460241102231733726755580455014387829033603534904562188051159718763779744596978717338871783430692362722685461313739988531462355752057158357808016454204422444417629810086851593373326174752618410740897972449515297983858486998090994719645910501429496923800597036787835344887872879958660341723086116600405552600055342730493055947393203651768747089934537233330391498077824018715241746379682471012294282824641210358176515499446293562877189400362271746221691354683626689809573130615067775770367698676669732465996812742207508905790587011539255013776734146523579362241384989572749754802045348391421187822603023484039251550521080214284309712569259939069366421134988145036788895520853005818793106087780926586880227389956103436698995129402469196431581448374159559989742854501002973071457035411227875239083483364789522758306555070445129454918623512229535162962699104014886206127392384101931153220899081043478142321990850264860666956343528002442137604996330685616728848192135240809118366873825167658340878426980103570048387462996406834986604200720649700976175766715814465739060239998578169987764988134655145325189345371902836900392251437864796968819316623257361472352892878253047772538840022043491737696986445480072662988671739106244527193836439266137437627023992104668191255565910167320571568170089962670804112200925996666944505858148604904742492933443281618122337542295411502933556067429107982983330159671057582951106989002969560232396902332783611131565090197718584914682682587564480835978913153793204027254765636361836571797562634968213656133958425604019788163148981054484848947837400226583563002514450403898366607032917208014941099402117708195198119119321673430759802548596012810250397081257525550528916873207016559639904974102620046222272235933795763402437765078019274958573969080151872841377696674690803023031672551984084224945907068671113409764698613260238692979232499942620061287584621499556573387348717373726836002239693388028730629857776933707253768238595718438398148995684475667924081409580540603875708140045241445432414104600067486765766742995056321794181362425431500972829134521675900941176762979855694065654309643074305289374888071689646645724670187996264300689621870759278038718921825659869179560167211507299006902733388288994176133465457687156566272574395892342168048714562110462516773378657249259288212139677657445279359472989305313713971897777209284104786117029098327520520531453808445602301919684502536049026048900333822605031090015241981314485278386514544507059292200248318203633543471690549257285150523053428282183034902529799372469323795101257638425989396686577776849891313284922284948255525105011972211227212151481910303944331112195731177179622269576647786524223063494451966224026765079455867491446777040284920660814923686963978163624532491759621963919413516506516713445252616841818666363746374976439464317998989061503316321910866817144765505113479984743954949803241340713815412316836168421975754373033635069756105997465907303119388036596993500842192564775393592835637189736348549279859794043460904927357979827664511915342076259710900544331826000855850260689494515999833796108333012644591279594136249173127932101325755683324380892970016220193942247750569180729637167923345383228346569700969207592881574741627055065779629803590498764631472718181951436876528970298358563981948195464561603468862781943396431362730909813120388525098193581722731004720657806337869289490831556706561849834204006274729516157556587694992624514145128145881630065655009640991139663350895978156509007329020226572433984675202495305808835915517775820681346716748400554251631334440001270774348990679582043984517285477126846242417900688212865340875749912448099275264124002378547326670056676162051794456615340651089883468682240548789913891461167339998922534027778147039113535114426394527166431508098838158516441017421163355492449363104982439413411199617380325023685648292235891072946818353941992437585635019845095831771674204288003588818968068262694320603629065453347085624816065686722119360393814865931234702318203836671559842771504565670982150121550135307214947317446659353016218783188493842088778495512109316215299117503546426812148084342912130447821090588334128387458952510829325829203081714102801469258891718329015101409977096819637121354985623441028155051835583179786363520262692737647227326172475636996651663398550772899824351609836051093579868608163107849036517242340165313479731266099555630931360015781664526677901662685090163659616478420126700002193247831343652801318002223604603992842863345023624914879838575476207860235856548162548637467644702359086515018786428133228903342393862040139073393409044090813010179092252006902922940511139349700822455740444945614357635365621690457232996940746910044174470428605942954793844915928995477070956922528807997735134129179674860929129573880220652828853714313862760370421510410544959258377597677346111211982447468662586138955326866585753560259432749041274468775992759510819904866413231212802800415782631397061925175565510460216593055329092358149116950914713065903595029797201045160511814043784560845689248694242337353831965246978355823335827837464655386968780734812815113590337474934610293573724594933004307224638553396662296076148767325510568875869486328019766380648018802463632903760003835688462099706773377268318892562732020247647697434740937898557214965481996100440365895709724741093633230926443228507344014796803731647931016177770648042028167896988790447335637171246321175925420431781675658207089194343275364564035399641277142206190172694726143656950620400772904938776597608755727304458250564672302720613750055448083850284830686080004184554092215861080988534556486573551050977590276070881826816831869073563679833037409858483772722778718762009204343018943005218388673887911622167586452882910796038138833063729212406667805737973079282501899084265409849454826404016173131849019816958741757943593279883420509824669785824953526446654605214461504625458958569263937114855073170604899447731628022152530493676606561320001912155853764698766346637141732994910526260222842659871829931112267918835704199771575531802050324373713500123282178782773498225907425844216523644430043602249448144192427639459182725871795551536178644807490196208729955328869923822654800718814981860063267065665326247089452752492329245571408439999757308717401534383141286233502551092115234455863477226283729309073443890937441415747324046607590529601926348785096028199760453296578028745946440025849978063140949010764451214381636063661281962596589495996985062820499704260503711702956027733953362482881267288877935938693893007958618053679663497997526078304499034440964657508663748081339332125031717281883567815338553881166117100712645940659477750495062249175033219824932890175428191789163422621736229511275577519471238765658467912238519399188460864030661012975153973910653529653272366634718463337593590631918560274127291295794630940055458093305916846788859422843427108550474180685248144303153466047574126725052649310148115203311386940211953916008836118888041258077557823628944308093025127037127383510141230278975187269379125175207150328059343035773316631131545944588370334722943520108515038115583202200342957440735550200709539399115960466985916285177669207385131142556124535049108305041281335522411927542344736073184480345035947872708022013530159363674532569315566853935795470277533812956678318099166058573933793094610957539571458849097832019775191125346359281858867766811824719683643361716645464546400046390656628860753130436495469493066068303406741777075386809760462955464548320608212728561831943702328740735118559121696843499885259936816835495106163917953398013254027473651549221198366886417931832014786239672426728178290075583352229844911249334080228247498254189029490913689825019575903141070874921943022571346800238898392260294038346532771916317032844296143643759687775312071334432278641178447265532518477159029900532071544369610844526706290765611070523652349935172729138310834591498194788151167363666731413582119522971142158630437622588900484440345156550889331902542391644534917169645966244444242693170938084441949494949859382551330207733445983127683739513005740194678274690872303940475707314220154571251702072718162243979594030497990644206934438297111765164459323569687346276732536436059691048921480469957089053574897272694114984028941214271077174340544944433583975883229382087155979652402733297136621296301471490047108303783214352477185435001817338943083550113653831173716635694973821351037813156372964495065004158099450009421211123437801097426327764170345970208449826526989573771998186926376635532073026772487135422010203595563409202784564921887012728359429294318305458279478940003873929463477687017089531473942240392165307122183504212275342093658800142519049551008166569225305570998308295288957988876421560631873420691166826692606665836457591823760103182032456447494919349378623125848515101054686536314461945497126390764538118809697636353801029949030008813737710091679061775085466687606603402987430846078315841941079269346077353852441664406851881686125127821975644693632885410209577618330263798609618780456601628007191728622154245414095716282809578111443846716914152695713988951083806564812187538796477182187404708414448108157498121514636593648796228229302992945013786073067784215933469620317189645367283890028709411060308727117526415863852172759183249247784604333086048162687225925000772079835171448737239734664497505458704866495116678777686747048831171629579014615800114058886252264435710487042060335303347662288530903481536813481545676480747487560205240347862000973506162857425228805829564002550660780196548562069123172841765532824202975682839335674390767216159419566740237318395863173912153372782592553000498741352889630967986081576630674125170832538353466143527889895085928717229129950894280155432796957916833784808288876989077467153508078400018004946978236507056486863776585783255083157013603475604256086239947169378931058422112065127656163872802983132211679804486151799759032974467355731249237305226100949813315510434762918389583871719790870001404009633058437806347212938116490828118892450186367302708086465629961570905435853127021309947593032833652976146075914650533143044663971660761264918431759472146347457523263050714221587849530464395327638346949736045063749475298545239701173441512226263427563963504719843326601223509280055343758543215695202558882578780938122180930502244878898070256981557894068814369093606974499865890093401132220909285404584772681000419823108386752796745019629615875934421473390789367794318603236129440890199452485383800637071573287749825415432022193321090679697282863708452610536805061428280432727480876186898413221669189811132524968743205386907557936033303827761857723373781774065624750549039245874112209239779475058815871316574344872302679554601627897559706830414230822225000855443255324045580734637141847788924434203615912600115158706829921435619278443171237687234559743329037739667615065528032767572478297665834449640130250093457742532626957006763006331541057855488817645522891873125225536231981966589593083821244330172887164815738138317842452259839248845624358828322820634244589949655097124946810915898381247922075741216086833867248192379603867205836703121609604693681435684030937903394819736868249043809114018593724884677103791831877366994893665441112813057925204795738704916634319818728681717393769907370853300338286221370458997079682327027933530982285921359669357826305512498457277003426184338018281287778625043842829890694031789896090756321102651441422203875638518218211421414289903588413771043735253375397877153692467079384263294459800162284342922327710458759052392921155126921487870902207853268996621085616236047567732113966437270997993770076879723901361830053203838952201109538673727979937995300619799346056026408509383924775383659171115445399222107400491549656176881757685235820783750116776705178201295264785591033305566179025224902405252860101175046068574730154386762728229099151019657395540773933602343912689675802368739498354598166788612406878827994413230499124141322190500164463520354483393226669191786710532222942797630373021294120051617603888692658629622776785104303032861330727693460336856811628172989653479333787147932570318157902555197036692706145045241535311549060834846660354266576214206460034498952081682114291720457381095470783988776001437880929620476000414146602264746535911596066214959712987315829636228972694916139848681776877204608220092173330805559843967241403136738574241371520471840510946001122683832413357411024473148024195273114998986727598837450539360807732477189545272459425401599927736789427631052117482843537696117059530013471356082087338101792385188834115375997615253434907788642583310990795975008304031936081563529797826575151880691910701254203783237156442222991605594969472471869727832624992752246601536945223343549461988966990993224249038679028717731292965714595905744361428495683163495612394153692862980192730402399988435392768829031457091777751938948706217114295136397019130092956469210461673003283351885854450822239055682134586367783866757514302211910215153477327313683463648102665727159169807983969197398405878865857950677219758366169644383386794073464190589665221978009160152843454681047021101055990531680941188648169322181504899485592267769288587901822766048735341197381696977145272848958488161304436885971717481387608113024063345526697370825980392178118558282401589192407749835331617083462435859855666321620365153641086378093426372385648813999826381112599420938143024941428045877486516765297651222304415089823816837562433276368364685575182077545829778210527935072056159551399923044858927351143047445828479605508002481756274184018848123315823374096689692306702329453314988164888694837606596719656372624984137912700026907195362095981854509948578415558632257177425905664088236891290894439675756465362495052665942184315907236660404626844078571684394829274178378940797209483870792345698681017715627741828851852725010338747245886026209118406209076380308216967270451168926096040830078658675009868239982129287519968464921060335715440043642043551104028004576969803199848968016747971916783491842590420739935649515545818774055705730609725212439719056880867448282900375722819295866421672484026798292952981237203304198732026120648968908464062250747615512288774091366168768435295969960699741229732398766481710740722156467060292617239265711248366038815314934550761160635448207136053480410944367819427650476705276617354001156382388227561380129803303033998280656726805216874374314200797040138672232449441216481003747353148287653942685095425942852990360754217100667113492408762854031439736991895042087164982779068385526134394709111686489637936969070116513111990750984756880610924489618619838137300992011526746201083438031914818484838724214032650319681109779124384320082283299066765210365004233892998003107586671571785187593793838733048425643680105479701299574880977503940805581600520115967224815569098734676728376721534455933725128589190745536699916240223612926587890514296835930312421411800064311734279082123642846881156675585438129327521773361310044228794013392150004224672550362788266837059102038889067553634451869219481302504541938405865385448303655260831731414423704901120478181287020739960963905145452393954607531285505038564004608514011091889004107800587684863315399138858626852477101397385332581962518694107879138465410266319532335401887866996948942405277491886204650885932571947388634168212114419030362808013691350077271211592158690964876383729677236395759048351582597001172804863403475735312196438225888325517048716796457663234397062147305145535293187678226018493421455389710765879010130959278969232343546629075218038610294669656178466061108642040278416485195635256080366117198341289557743888949187485342278012388525736646798670467512814862782747229454439887480687082477323897866648822245246038185921622627745684614934549860622098391656238926912749747191979625055632229759556478847569045758055986742711399432195836050476653329263197270711915592659598041387208929088198527712781204412386184682199984381316708548334259347754356957427917902798642176604955127225519441029149476908961912343857669884387692618805669204900670402240760668691035008341807734464706194143741321569454687529468925930165874443634755479333399079605081337700449316318292600448463186395513462201026470773251772772787817107652951573221195113751962077612136027490325931776203257972327499883352766119658367828025804169901779581890775745363676780823108923612455308649577360157183097643342262562708397678114979967971119649483493208255605889486863100928528779123993783916272854090458755883653658290464707192088847963663362726092352205973631419668367238809633833913145948857572840957351881285254693736893654016954436015803437604270983850612760876468508380563995886775490879506723338877498390344994887083757663049838355461891763910589812416541250014527562642405718936452885339040118391197069749826017862314869898159839751196261366017682452254887549298619139323427112571983268941792263487847810939368526154670739724730861998265307625896668742179698130980969152889055823195653504803694234386794095690007469842874444053940933433872185601159377141025550882611689087993552650111937158872670242227594953714979085001839997942031129008579661632218976337814848126210864991386422426974458706814892193488606012054939972548079118733061441451979443254136229449829158921458641412361035321283288051527009425114244816653335929555686157570314410158676405825209541123575174551158723824796319407257787347355960336795442471973182065787479562833322791179752644712926385170604879145016841543767792298282597210566207052425961100763193657518698760007027874801788417175252956490821385142540683329253466520771914177874231513896709391022204583914128888691590246462192003098455057534492728581269383286929207177900808565750717824381188337021074257833836070212390884948709490599237511663872266289382722043842381872143408897407537177039594351175843862561471710991731289082989893892627947330704949571066118666886912938246793364863005225077436518734361682480864821647644119533435816252506000438326804827951684566882476394457826350167069840065028431624023940170674860987328426656974232939306138064443153341910651218670135160104207134028418674000903808470914100099734553823477523463251950788246078715454521355764858221545058349761709481046770857223449358808833407492827159464785497793549648405351133368155793564235039580822158409283972940610568509640314257283450498624534493064062230644489899493503722459258003046677291612502694522258029325894010260472692317491212108137988072249988317350077853738036055510260269228638997329533874676631231695492400215115788576554264685561189231569286814706488732219853194766105483673235856359685170125777969284378252318311004483921832868490262545830414560892899012219806200596303378371373240888980782115338147829236313942614109033583629620801350399308678981229718378341995339237990809893676388533476433229442762328533560707846347625309066893595265151406488766743977952161374425136145166637140911934844060192412619091906068208227563910662144053446908895720484699564320922120152172146985375789791052071645515629384507277760519312731610051883622374603791074448636555257286590289458348432374293516192239026013603176154818458534031497808442010006346539511448240411911770318316715494267184804949276248410485317465472794994651550530392255130190360116821105608787051930276272774282068865173964473938801670232993590583793610236965033391279136384936913052743251138080869946054960777408879414564467518510671702414391355255670478851579193606228824740523503235997595923608393263493740057679942588214097873303426995381347330387228970346588355581743424869325292511565448285546801149956212536892599366023003582626101431210642508937019911593083094459634710483543205020974239925978942138065342949564329549388704050774272771324916648789781497289773414989059152882244564420026221306129699043474598629067190106827218583396871871671853971690467297181273651897830776195711894164610711274445353161557874277213641490687620403196778215562479737234651491323458627026842397931855426622494354826737912368252887529314719851506135350368382656792755751300068924564065721739297488779097410294679577332852374280180429136984528861225119564692737733486155770045714276861364498399656021501610764569635551276917119995152204094454636832828301422114649477045969671385752429496099286538150881952284253218890339937821877532037294215530113846209582553163389548228606667932630707605718603188051560069613909451619640802885237765656207300608775220405840681950600788756208853051098566736240819249651612112206526467840529160321972625320827409877874127851747548663351304711957200826680533672699677400798599418566265548973759594949695636043976759124508956258286232941701218044395993036456794502380994262945706220168918689020621678667100125429232631373249179247627657241288537324606767553311475387284428235442783469084536288827660146384826505843749260765706585805110361126570973341492540466364862454685952415697298477488076675251845640773845912214994163856089933508700304614902062241431831209482549760746520781198463294593739631310139981887673693349145157775484010480630961967089349462678844587684675213219898031631676205963624576757879439966083209781120582837612961919224751625190417632342165817166150720671168406643207128620847722635198783398923919673475944966138449320442571346038514763092459540680630112932184736152945814738284506727469978302388446896377593534106855810567662771648214922077033487147429938149507112215283310235829329758895682771351190242527373458950755622142047645270164888312742327271336404227326970964613795902779664497044444359530943070756629768043434833099070508957334661811912635181719798358472493767162840500531253457787696043572507660943242415582715863876068745622981370046294660687316053792121392884425386818753958555098891765185467199523941989988246570854259671038967993050313827977485344549146565688100403251090838629192807378303486832189977644524971659259828147897202209283244563408293281345246002777872994229956981319725721546607465481585837103693106886026198994539076423887348246306984047893515306331443040211734708632386182730487926788598629315391168032044794964376029963479737010893126732533409949147802655736236086472989617297562691536660230631001742907422934606841786481605127406707866008704637543762161532906104692942362372297667999249369654741800271029858558217909450392045190770743391784584679424737544798084248670942835302763231474001994922484112662583511172006164351665743754404472930280050712610234481060096192145142152971400227099249513123188860022807838435125895053775398772130847279761531055593853900669107716624925039442238429365218387266264625784209802327873676046415685224164512945021975644244298247543137475229841113852094879359783263065015239055262433908993555711012552323035653499554026849754961934021002541427986568651980543421209439542274668323662994982230706645809495643595173823861630597278485682170732582650151931621711494207415345688878163348338187790268619881970108107870730957860209894514100852207129555573901741324127074747111789043738673879573474681774864936210425737614312963875188927063386668721294479837753946356045556879841298132678187640208197265081149461365437503144491410583077840994353171287455381724738544063648675145856262397667626155342077497097361944620693203962377403710552674218064480630310422231820959384098737312355496539854426827776103501421812078426119766971662060269713151308233904533185022627191935180934837698760825315909204634603686478259249830291358147240300433679896156091845319627863025113457968733222208305835016837489732362421813089163579608071426530193181206756427420223930943590086771846700290903089650215023071718165962577122546648621739400163290388911648442826990782085642019951732763784100832105818974412984001098296023630282891786364320798294682251171068309453030963411941011197322661256876731478614385221742600474518029935405060866202373630454272938719669721598800281816098389965814097078711584431056744023276751849965163162439984000897522392924949081574000707126884162888297650380874412454636628179991923140204167239211115630982256963423197990336570920227773107411672884471818973475462069398112372178086337473693512328516302724470772529672653088978772896496651209697636095968122152697273799787011448545640469648429258230284235662438071980705386063291881116226064609394917614570110497963146078554471794154382396914404494154172068378435803484698515302210195815706306231171164228765100101033178579591937571586782382453002295429607817049919319179555438195305386603355079282067877143704884397345322171346729885157039990919646560025391193197320756920145694603671508672449485874059895873091565619901167006333429432670360040583706726379127793477868050335871035383942587325609201320967384491711718106216189798108823269225244432972549558419881139928936901524111261347408256279553307748843894804946877606303533907836825075422231026219537387821973680024005465797100981567678418284587567307626368614267291629890399730700317524523606324751834192130457454350270752869539553222681285601967403946204387870713181957082738108092814050528362164030140900864781189020148007952854760455549918910238132278996965343938659544168685884728888439775411527607360624181139116879058217365195211832469328615162938708028199052910179081422727058878948675653231558825296167972198801957050768737307874064470907688716926783900532518021270744035254871893176967593409623733366098842402432553411805605339955833930245761233339132919392188514208496181129401460855893632664794190920282055692454926746383807459084377214724207128791763496581977888844909919987062690536406569107876274050745982608345041267170938452671413136170272610466210151887877432470014612450703027766221329173909903524784011228774871958242573988879712314985777488338815771897225573668428605828355407868883627940633754665888890581547375537765695605255383696766162878492982316999094798101750886205468868091039305469029057508898809633003133414107451760734698157651605080845396104297715124058333260729281966796255763524515928725704881897222790982565764325561967743738350015930452152811935751187924628324676622228594307759693659844610575546074643815784219041725929132459308081825472990089561412030241774773169550897931980455794958796173342339567635086207447421932009037682682862924707504012160807053112418521660488798629936306683361733992319883318625648686659034399415460389139267007141219149097435692879131860525075237230883265816029998159115990254138230998084225708922381587431237540367005547619624461780962518149713375366713615756766293515990454417210077248820779617683224955912389966418548315917532968779882552913872715831070912121489278067195797739608852834471259444573107305600441324202101358123848888334616864819476697261368157346690989392638172269888080515231028762417690180912905817845891144346423749923015168652671807512656699843350144877845982669821400633458328966011604865752929529471578604000567609498697452517626839945368676431447704471452877499739635374788234417489068469110336572918003466152321122722417575897125840866838203012427694379128005605346295994455532003946192344488127754131545370174979104745398011200500481489686682117578692906649942520478923733823668986190376608177368894164525163204791470623676484584430036499136110393789366957365193084123611268007253629921437648456612202614346134069597903584746452746068307269548251849504655164462076207351937397048579630447768027705082081654416671809973399163093919681203333077747649083572276286086853839877750589199030342102805323424361594649192149611009975214082292526794900207094728869044693634228353750566061758305748937445670040302366739893383110971598960681364136165796596473579967868452875588790076212505770013584511839737832837133115735488305525093781238165636382115230729078878527389426754821042372700985196599212881845307812433969743019774519438873516183553841175593284619543947191639968262290488783904167858231700654897230154315861886830908677107694763957084779004876627021091135569610112273791061440061138379898389760881329501041036646666971825946003878702448155296448447250106862314167264597900016015239014498610234801551200890290765738462005850890714711227626580861713997171948837153654193895884686882313082052302198372441059415131999350213913973660085665023390927083616258686514599863850137026872570475653499459681986440497904164162733417342833926230545728352943744197290330036983469562558540493491319560796530317284395773178584333344815231921208143423979067629014319676515446949241368906536121286767218266213425371335989101776235138863320034365735638427481865667988954341976509122115116116581458624982705182687413401369482387096249967490988070676964639439606808319222202297404641392946446607446011242757038898247162346898796069079551118667430447807022804188476780603077148101795783145773984775892074865155660146074485074085735185740601569995680661090215299767957498169665921025534749296470949526091669904126784284124613321972975070340668197754052861355798795092900020241014057632381921745555527340920007678616457582448338308290002111583531855798110413360665884021284479091179177909314924117160990487758720381865526815090808522053528414210101661800454783037448381297004867864188733497736524348765032500052877254131572877531848151315473393552668382616698332563628288087133166995262339399625602892613422539141549503306509456382134822119386399526205590616859755913485433958926316036557649631108244292849970544547805412467609878769625138202988004259883863274303230835022679669208001916792315273571354370107697984303224635156392624310141272967115381120684117541343988205294381792435401017716346735324892235976649993424933701322403867956954412574167390186829776222861174814427048111460537500718071438882308286974933840927935491332536190771501096768613595918251874766338539845011480009809905672187583031540470190275277271949755987107578681505283971762411401472651489233623613573849890799462096432210535423764272220737397021043803719152422759733492802171841536146267855110818132643475600259486303944059863359010573888747627783359223305296184812326623106951598025944223557298997943460378281989142672030610443637618750733995023391994519828312818133512785742370334445076100141209641422228094943963357718800335055286822901362526087940319820412601714617883972186520866996433033983357504007928688917352236224559193673446045805280511649253099341936110804720786009299095837216190724067184879480480106364041662990291146377677941394081056657849581665121167688938428451445128835787213891511745954602386071879959173011710564053047902651618750445423853362105701971711105366674609424142421932020096319182420354998262030206076562399988630306546687875287468869068789527219080163738427372168813423126605482771080518015657812788047870914950931065321526002707012321066698360285299481004044818747384869937455503594051979236788578126582774100671993473581866176867943844781618591242592452265672535133735937451371306981318210090637452301501239627652005111437274205338850334729157280954362649350527313178709262633130050822561823175319262695137524963038368638413685947051444297043784502939184906249763483572029875440473409387621316249222817395405716836163210148525062128887944525276930695595574052218251868860257478517077752198207140246243288540446950969542633798940504239572936175538422605701301589753488729990928357280768884418186740515288355265476259325340628749618847474666393194808846137222180669140381157906187118805842452007995182884453194982561784413065052057956354455561630248054388477481778648204492156102743295158831723100623587578609017598928355418434002853999193718832013644027613544171244805360822937656948643060896721420095195906936049796341694881374164506964361765456048550756396742012846884324256662131950307625110137091678256790661597903491957201076672150519563950730397267845422440111862962072382460411512063633183836321267142541037699214657981980275772199069495978943984445205081084069020152640184444064742078301682928568717477883930796257895593927262774175041144161449863499245527031141726936924748779139491420184746707954378681797543884209446680944978318378348549553935430755209612225179002703013540231027955140235950222770897616360932994853797533424121530451763026229616285854001786427525472309380322778250099034459988789544072429414511301627093084369996130284239728347125877317806288603327248464546609039818859395854362259097453482919345630980639242032140056388754364129757828981743375812406330243688990341410957936350588790045046045833434764734522611688844511527398174670627626907330448276300541759220303973800317245662418608157707474158482409537157354938605493901818304415578536996004983929333064278751938423887840422185451638269315575150699766851615433145730284277117269424653536391014782112562557322226924160494820940614214691611574109305112904981037648873084364829977474298826584042368507910639812956897559351290434729220917893482741903255718257171476965046654490345197094125060808808624331931991794566147975016216266794807574545815256976099106018672632943362799902942155913262642773838707674900135342427829037904822897339649829022085570684187544975853038800707232560557102230784506781995680581330346567095735204922299061650527387241370698109394798614558283034629024452719770274159240615885711552929964561420891079157005589438289180788530805093016136072175032358019672779334974304242949903338835017712029229137034375062292625861008480482185858544225721678477909648409331790188633513411546772912409352132478365936169773456452033401754347590732806886477601227234098048603496621663677697576428633398941230441444184025828709665066114328611110385264861449115071960685721288024209003004480107225652561963780740866345391330201354575554549794891577668900205302592517395564820450109183372274057709243253155349590009766100271010282831868913341447847495050957359751139890905439974916146863263719457354089308147550665535821791387704334619439516331072493661351574382569698768469869683583126584904366482803229346381940502167131540943198602625774884960112480336618842045343804715281348682387661675237416322605468663227982298186960707608254424643403847550274861276777791768525016765728286084913152742087789669094605811815771187122281721377663091753921320614847231363928039453341652533271771155413010331331276228267877451794765328766814579032231912899020497526447734529792912407588689643191386311220764342164825101542710055544047160995885538242015488676160989296455804682384333594305153921958033414546534020474642203181819629366868597410020667701319208720343709796214147792556146961836810082414811953700273887383236793272363388467665260287820265902360668864968175371105300906964488625935511731439782024300876198611458443285746927612294616747365733374686287089182978076421825929439747746152795756952330327307234688757369046892517072601293674871445629844902446455934764852554251026273280444183088654166995676391786464392196974410093884646183230405814618356140602709345532748996561119916566594417745960931600840185942659692540085800418109657627266253253610926604392741207307908262507149474560192078025349913539841149596832221122907698165149923977499189778027577559067662250731621695160748997696586887111447325271797911589909615475358724487000116652475302484565864119924130996754078246961113066986537538433982021934736300862174162286376668248633862674360301807959358874049596982887933644070831187821080283786289666038933542952717883126029047614650464719543585563865848913607801841483445946711088417432321167557181704209672053448201332946892560878263115546883488845702952805382355442472969376278746314339267434991509440886783427561997730700830616487955883543878432132190966346383324420017220952516744263034852774843236544363004711611702527991310791500638189241334024094464600131266185480428637420741409669019524008326928833838513372448809038288489241132231552763742740876752798989603689364062430127552745477572957992014583950153039896616624099250065835782690434461306627430153496617144504830395053446310205153577197510056765146785446720085596196783696716234573392962691240736271022411252178122666339014374814687886296456565739821768486073951060946918101215490671362415066734472873429342014343866634392103770687577125452482748631309485991233053836572837850780085864882442921336155540555294180969299703095026544177423792201889623998238889783264618339206213518313161259226425218892399668062204734054034444181556453557153476475575747922663265668984291108695407501481251216392335281724352475282963070292081831370298180515740889406742823260852761039338854658511376513384508291421670269624458168346534871631489211901859557067710056003556023040094349220913567793575574527734116316066929572716086747230265292588352695784388996750858345910763460844716319460020358078660071148618985971952142862911468300987806194136139445198422916406586951829734583307875084136748543753832299437103495275794944198066042417913285762550571806863489312541269582769056712975136371680215986298673817339633133560024852585247055761680178117199105391526201491366253467929105630834181579530505031685423318847101144165815585502550429522040892867921421668534069062664093183646694614957542194018967587327540990565689806394388395027367949802592013873771775755559148359374644912325797186390261636127575157753030187497175877336752267346253409940835022475211834448375633053897038997051806962486529611541411209153882153786079934711356868322800650328503360019100513458565942016938477892653494010458136813352759176850072916152693815480797737251985928573355567757580251385346775153771880545830147062362508270142329766388645814483730938002720682327790968167947805411223106633071429413251684268744730403306801638910029609342087584813582611285375618786782482476450402742142720369284557359486338450465901594008605894575446572170666244469073181576773753937573782935833931779182369218244505429431574375017987292312021198652796021698491616863200324945345753661035304406561566529767803941943274720881844079484616028332583345124906893439140798613745316563422546971935699572570307148976305083597580937436984286128183337152534413978983555364730725853808627564638005562245488227342599625713870166964321863217966181409373156113361181644672007440373178889780283879523777456961838339348225969175980814378341160944325187491445904831965743137946776732554776421752242051916908419713122061756497871143143976774785289158753208571742111012192655866164085435705102913446344773585649370707085764683104772124412932941847381108017233494105187829028967515231448241623350509933646394307040684043719086527833694796026090850306968698967258217697100038350594891469206424897462288540582192833797661631618875575532388176214979850250394414402549754481446577163387374897263877337615014912669086416919371775421976234674380291310070754445819161680434735186534344785678446238932971941710795726209694305919572979780217938047858324071164687402226252132082270477665884634108235333576224494407081312097275654004386803695756917209043639353928045600740645092907731000726930767451417927003888118266658648179010232701840361605584445740770154904252427198286997628551552232787039889231079717373459390567948815437849871997049429060490461974751601270927889096150925234250479358891935479459942019919122490171554018872470155243604977624966870812785323706746725789967912286120607898476468949867144905274560679652268435758117313060213046689304966491399840739143631559557884874884069698686734948952393025519875389483033878925321415348973321052933086743137578932983770372418619817047171641104442960423622689822750292828307001626082561391617662014290238615251495124501274074203829441310978095203018262580444376095940088520441478119359901248721773678352516533097945079245423388266437631113254824775389494212605708272643568153665431467569754209834189996316022805838068217870919686705787539639593176702806644666405481196800590464605294462714633152160861500657612174329610849461065337786233529083977030318259286438453729989926976880815982605672618713261744195153887350175815944923121541727430525283636691052033258810017504791916268259658571807054285135937448821095175144895739632011243278950359444087957014831378164514580942758901877262163128987099495515129586958127679001713658139567294595007983753997229013856641874581246116050288444084825190679324656564588165169024736536148102231547541340128279351628621548348542877033492990158650607606036665371849346584594333925380446241939067734762156650077598544579667089004275008615240439233189298760569332842429435103228232246151730421271198784389116442685966957668677337608152596855904778574372241650100862368932936290337533935335412521206630426530008745637551651524284411533206326129939003748878362589163612858446626599599058747414208223936687879832958944459173205004463481453418947839134165310086889806181411299617513380341592091370114321862635348563378572022730889214264761887793577623693771461510637194251153091037646941795164054870129116614103153570519763438318538456001143321685329062651587802088879513110028596141721498991548914151981995678327057313321433575695168405991132912143408617350699496009932255753056388307277657416801196608897134635208028527102519434814414368158850804524680578743832927790257596017931338345411231561179991863498079613259730314119232834853401250502481488885155194036824834602048122764910078097794321287942690649104512044672670018904168810770631940023239476704486323913502567997012080136106667639378966667726015340799004248974528889848203932751293328862478087000954671792885220642317025207263624259535106535201557813369273566372673088469695798426878248445790126744820558571282120678016625768059050426653321069287330370093447477048375631048686502133233114524294830816193632688485453552972373702384101011385459214686208542351685822273850654323621091835973847335618183909479118056305612927373060992496737968391780891854056862419291906873172779506448188008335019455914747813577400470988039540221681125308062735909912175582573917008751027530393874852778671713503890133974554095032334488801324068301825457403519896216818298904865507364351221627895995606540276353735591062088446950698687558369701727691933931171852271774646438646860725308873605127572938742168617543813097192072638851936294427691919895993181863667122740514658077833567183506723956963094236335021781163072376912728153223126306937692105307258383328285201504787839827642852504658102183116522123154683719563109251128321124417509416969234434176068354063905928857384451677290776974524263720516132358603118009365749487133574398360446880780623282969469427293175870024020874867610077646788641352378368971364265701074390330601242643979566751950563835926565344120105423050320777525385728561675557271077735816886115220264265820400233031360765303614614547535707966014552422038219002583716890841735872288805438585920766702500760484765378957606227159206895017026803607729547386932297067513110337188695516743100300545027042604967800930547551576932547702793530124982761893039343651753767238208040430197482999222731668999736581210041086444205393235893439986064450959630075342625250442448456151940753416708673797608984095080126846038993115251930240528874019575294581326020440977457892443557128133845942209945153134773346741481148159821838686220548305795847949895013904533139167931943614813708322851230922145651736565580529399948279498430431481947365189486775207780427586339566871090924230347069040558286278078643644690817535082024556461030988984929540160694629609875983675396726326377534786026394734816492503964726017622692920221776278605819530500046431281557056351977470001200247676303688829135099907528580891992560500037647344480840413494806953085543267749361884077823190734318978209233101354915293953734293972028519520843250764506803587884557403812131178741326032039692878570845780296233100157916754664895177260765614462281742274487247978248022887730176095116644103483800273776623409396325402838065734554569419167492104221448699362766600444736213396893280168785449576365099738799208665863114859205595624119327795993634116335301673518012536558982756752862047921165588232597995985193900329490420847292844040455741915709283606729170703938171952554052010631569595848274704754115667662184756791342614687601248540658112805982258545967769109435328785086563497668770236450989055849614338423749049073160402286094549745134334435185879573997216661099971816162304166957176932172109708948863186397039709751216980141492022192654213155445597276952278198294252934362688030966707970793059293103565447002158466960284312612550716994645741482628809346877119473126046791043740321565758584982270145003889204496354975558783386339942195004824777071229496297821006198808575815714108190634699558694903552818486737129442275449334450898324947713841190732892567761586310711789991303084251945312456745093466019765020908346611161883264874301677219238592967137343016004447109121391185013339272146119715785069161547833735816466231182985723165205490462174038985695920574740520236495439970037074074891686156491275529273259201968705309655874634801215808959991128570557934380614151214670622479444679679584059480731187859199826339773960257258564738015819403937591927868766543137992303985293637193353174877917355048250847025665000367120319661878641759314126368848497820786987525862914485926038412264672070528097119665169919705693542946140942296308231393999834083869001365107392674962192756639281041168900867512097280988709417382959751985756606815330460734023656402174191117786156136040413485501913564453538262099888107446851442913782618370672336471557294738540853900595773588010815891609571637659087583757764808250301967332761195260368108192324040408874134151959847616908360012106008029756687001356860170181979037255460378197983960060989731028600332175632973187483929133171078373968315606457425795581975339038653450649830380960970987085264495013872357209801551840270834852301991352467061214014099758534817807009888245925183032260408791917704314884873058384813151278697392076037181010678730592749685002963160634306966812381588018165828546016267104644282829319799896136517724994405285546377708128851802422838416282602330165002213527372411935533713187104768371421761432051085768231201533840806839877123735947578717283731047832575209031894399682935146682516992559661143114937322346273446352912074655861713409726001897445333107814919949359755694628174346033733338873793027112746566121068720508364708124394415693434542413602186654610525324541626866156346332639978931414002843502869949629439375942847026730323219335868807465263607653342328053728535023077756210456595137315507808725221196409781703790383155599376891649878636568949968801861622684107306611580326536870294440508974110644407641142024254696631701113741955588352934313187287341829796106614027467107911004718782152330909216505058019471854715675272881986616284631288226624102181877570926883004490274364662254360669437065357101468750055370563493348353769378047959571073541523798474977228236452570266817624043581542267659613299463695712083019691505269083844694298528090386556841427900254594618684471870408598196827964094647655116264006375776544241315259826678535270988182265432743489795553087905864681435733615120012583024410786717839605364204052724631144925742731708961698427861258852980619419450076304486615207436760807667250381059930727799966896518516149028702932612613854058163067395265122906043303739274132827460529234038533311773849777529217706783570830036442757069150539074815465543898125336419522176860364409036745653538741844638243668012923571556683285099107162126181554993482245767733744148794037667625648546627200634088470755975201274542911003052832198979581323222218346637195629248577346677160749556160639944294058419972663417080227825211304941103034934442991503875849342600784524367117778702175885229654784983280308147371459910074824409248352876967945004147696335314962444674780025120738093811484407224906368269380657641654316185424066236412732249526146318198020305032585398033007604398675973651803509545237276132686576663173900641971030766211743275524082251490232360110086537136451343351834214515737100387365281968248984931249689258374543065032579168400201514701523861346611302927572131862905503060155044749699736343185789588205539133041203026121752419013156708929227228598296056375512607603983721202929070615234968578139294660897608641015037173395153498278871284908461992232951187089045426980922969120088578316644701796096964400470580838260808182010415931475138608782823719777997640408110294857886945821375743175234072171466082688691941369016563745394370221611580001409978173531095945383092342632574192878871245901973622131734920321672508415490757614201844637106320320688903430926975413805997395524352411446236614936058019790666611659425273000609272789220846351359009560396013891557547328556587806803917416736724950321658196084785265916174773203866377850039363445034976469760116055495948379831003859428092039814863869037938934362797973706797720033377166805395655068852026320027661953467337006634914478250684682661844085841879165076530403434713180030664755380388734634425201944393112098461993069379407613963087920422762456651301978991815419897723919255798463945111682428529893826325896338590548375455511122877631378228471520064577573547696620075337696333443690380441990012526797440583777805672988654069325191895489844560115905998254683335644907404888078500547033560512009055281724665571454583198567162287977851928293939290866374088512139697816704206095320363855896075913634115289340983706123951702383384867195566323457535843496316840291643462385454794506255014216077274503530166930427487709217102268401589970932208046509768595433756093818329732963598328259647332761427074747851430309395371721754277299149610622605607756530676800656762772707395477234079555454381919651784558435355807320236643019138483833182397571674508195720641436230227970615147749022177545280337907463045245917539771073510018923264580439015337378337769318864018290679364004791398892910830903951922986284270207145368437957916337264200276522286720281247771122483698068747624116499875976759631574613273774930572040326990063148198337578010486505407355730109644468429528707170976634592261736251463514343134804571052549094141477392320339567308063085095756028366862571951019708751155343479373540671723109251829798598277108790281706555962340619736045961068052756638389891314405194511129151723659780639999935193032521231175842606793456096894196723181154025263936640230338333119000459789472523442499625222637244627100033918564124867767527920449489314768735542792250976002418696445966130251757773127330160549959964275504167961857181694943236622427106064409483880820816052040649091417221131670492056377652663519418431758022374400402921863614454201065441276966347638803281963665847055820567133195644041679564875887714572170201516006524595078334985903140888022497069655994919479819606875118499382538441156400255713799662310381661228518239478838306843446167642688774136828635327034372730607516863692204166419595475760792538438387610705214254472397395754039432150044880765239880260873592271728020555015708798043952229920568893155338823525302072482731016341723329387961686598873844147639008163777775452200811568528414580749687225406199453835631798662279636234692327289431738252847397947211450704263453220456470774160907178875301054676296646678743393674232571198877026493985931452191466586761027982649805053873911794544133017904095884317780977346465823128919906396015094256729534805030495432669363448732229132168692705726128632839255109217539896572357528643257516439745558012481613833988471220237049805734180194958144155279988120605589528379350042700483777955785064424118242242414530023278694276499350116819982248806367105749013865203819717988079525784938310231711710490207953848799076256077215937236529570740189757982278543395352847433621347569635687522089329127209185485432056345973053123944852335740280908481325133009029183770876549196103315663634689145928296805176980265441247398831238550496666810931499014653134563220770183158967264627663575903466044213152427619690014715462592953377149477107400288963110281985081749369945226933191551400514091147417244808278621237664191574695389876241930960736664643157500263229942443924773379380820207912224518042623273276420345762036871528334962046580352981969199882233333409563736104685515570936972798229267466666317553838893833401286078430188908246878233900484858713969334241561023978303104976677441667512799938649513614763089311971097935200729424495758783856067071444114940355600136290658865187279925876712814748333945996928992151307815465343268682586397560748035451855640802821410612616317414108137334549645635768584129467151766543296847332919414343303542443786258895917084672663431290368906973844815453948008103562393026827002764311987539992961838218197655546082567802694166536151561115809379940170801616951449622929901747124998662239411878943587853305957386121321769490127312960383865945192097251250180390587457770246254000428327658665308323668764681726514995581263019601578837644492643945866733826623936364140037412674909615766062297512665211789959386023616640551372910126732238185432411641264843281346294445077950846567559222117420166087369724189494860358122326682563765031751390371699044731933923503558173185279346781493920993651882877560609365477576615884235178667583798555497012363316856043694860892171513068783929133454226201805750486530929321555007485831704697682412640607281563663394410634897645360185574204559957857356829620706970126556121514820664223702225068987392711933095341296927781957057452560327294402838497810604210768823603083995357778764472545205353706385111292560459230886129150976216200759567849911768391352404911069794582375963973678444302657169980509854499648200375110883458018758563327051245485887698176751215859553824056687747599738082577455191403632715889403163667472306997369003098181592863110655506015858311206524681387344950768495446842531796910390405680869949306473222202653322537314580059908509287745553352628440325570512367165858367905230588274934358263443668994176700944958153984009082501473119760485673264933359306106911496847091565022616546702738769592980178851535086795039198964525722063033778487935177442175429577891033410826796800584542373273743283486586021269255509136091756213914870804493710324516831042051852740227834333602919019763331718636850205963720063017996069207968650612853405256384978599491281201311024355317056920994105094262809044361513900078334460619294855999095113933102421856236761759604057116961572011418488327577597425425627876487995109879566780194104340386996387424959823980653175035747515045589102188966693078154437936188130876527546232594303370141393589374671802861742791026605835361106251427645732763898727537178836228875589524805787276402763786895650696883239086837105128129881798536958679106535582790675915016375338795307953205532896321876520568259365584158078047160130167494343339868875412923792251744047769236425376752960499730721068496596644173164398155070642232958016812619410281565306409185942589164450251635985261036837542738561720895960875923234340473916745150810127038198008575740568269646198313977278678983957602162676130483691305462094935361764308360461777926574254147314894371659179278894407119626555847954203795173475431648459359780841396409022698365684265229047650430776856833907863887786946549446260155965022048468195168688620014068754746888348007346891876437409975558821896374602787186169005021524260122887501696945621624362093499816148496807643427177268775585092240467491313862757029419123029867658980229427182183859435112686499050094251105826405620877814577402936743743175963409060258619474668376118532179398519118750365804790945759662185189338280207249878998828438670106479056601869019140755286941533042092365715108852240168079237632707416888032787693637543607716060196174880181895464525283556316281418080871818332087124946708032273168824627377359173108307928082065235946614949717315825395028431907073013436218612187729984267488005290372406286464815676630045430690449510961513358665142551852371504303098525512481448200869765300732520493413813030168311733755076568790043168985586006987927099292882725635648073247059486286021500378112319561999347986266977262443792697485532516187166168683064987257028937265331091694973470211543577370819434021918273121737837220098147068256875109172620969319833222728761658815001645528558015885987934598495916731092774371395833845367182584313418598218616873388746356682814948926483031097131018851795234929827853760084540880309035871603263607174309877842007234273621511039179899157353744307243146140601470646534509044377962995676063647947488501779512643847007492257386700751969775383219521656686338146626124535134670010093681804739441189087767201332076029864178269863597747495542328789003078230209013223774556272272374726335419970724161381612329212996907468253102820461221081650092715774308460222644123000197241982051887532934212366520882947175647399449229665291275962011072755722719794050411542632974231332606960655097917849845495248038258553507667316656428187295843018666374630816760982064547986731005720663642141110628631383157351825864300305745858287879954889994559367215899197788854077301800647353883270802158358794184043564080636194901926196068540753602662597559859089056678931235234125622993570162024329350136301723231718225087247556372539796549461174365446457446505189044207658817586482120316810560576410914977866715189895624303069579447582712938113295826304921029990504645437488737308190633986243423019025682477941595335858564697002083711266441381622830940357114641368978508063193554635951509913381223966435252218041192740652341587646022725543328197901912032192180941597211592972438429374560574576118856967114101229058325449951728935768030928701193263580442285945173019916932427187833066310688463131968235084045293152254439583079990270031039931486853020925675328769806763552146528052211596786141364992961442203985519800214476013022365380448893241642052117635271139152912730157773286031134203454459241603140330809981705936105425284575994060801011561648911922343102895247114715358951105177937151108981842859049184765238387959716950762757451862796378684158364060169570168447867704999280656288673892681658639027862476020043593577538424346863441212554433783585738018460691649283791969550284429069154019688177411675960885800588435909876503389395483503027488035779203905998251547322908991237754787619733869888571154991408519597297809972212066082029601957205187561779870744234907075547593723604932925904290441465559915124653763621627958248192080265839532370805994875887621674478987364788172290567188231697398493874725259182680751458223006832994873477928893373556111824118716344007661167790687500578470957668940502552590240578489784284637096004628856432630483356901804226936122610238111916842551767588365016280029633566528675382241549362409576609767793004134830875527041699034707030711575359990197482877125114397532921889358940885358093496612611464895964591271409582972364877287544572650779377400460589206949584844600422809693281277109204266058877566301004208933528709043189334156369583155164308361646527977025167897284135060410415117539893605596335390049513346735762659531119539294858017339709811458958434887090907800936144993930143303860390449684305644603425813157025379539489200025196643193918088910447356706890400723500320349459352540699418374597641619275157683698483153209902339397501761026204599907431324700085997674498011773409079412658295643991212024518855706967732756460131804108225855426659527032023391833143482323583664591516709880245858027872241348410887654299319560235868032725373706345151888359840569782629720433799171066090596780655053203478105211438734436628098224729447115202006121080618241556280400352025350085475726173588427120837747367154228590854157052714033062605919770328981999969733688868659684791469216835081291167460870759850473359486571509289144632523121883221578689252246452109939524949383744890007372241685189032535607577174891005131450560256399329256269806589801898141067772698282554506791036981384161570437239617456491926603702898608359266181915298310296309157036984532054551335482414813964631166222529660475379411590127042455977717604113371937165098068632672828482388104915640337067097401782281459654913713277557059382386792977353319335639306488233258648192170109301371715915234119397689583441712600357828185764253794984103377393504371797343021302681991373347669205496614139324714912557217122262202122690716116118133582770689388870654939208312661692769874916108343393050813415320808907431004387048914566669825483920823226550947819364405644194605356774290115614624870902969264328266388577110658023540094467572756076309975151532865082587211265306781912689138925175872865848264760404276201900057158088589935362294529730508976060434479076377179349278259996607239077630606927031481508819589633786523201159429160635459181060199811127402517861272881858746200282504179136645312344996330846100963497336011234823151851562902703944071026159166551169003004442882523515948507116124124848705050083702441947286247747843181617320011477687386146183395354044807494048853151638898214209008007435412613106767829740716705116725661433916493246997326653900415217901235786138785545491715364667044778235887300967802222717930656101449981816232517727469257210553738566739694177090428562576584874479028483133694104961294923541838874140810981436272044766133658436567634096444290882427397737264422059409172292298587320582935642207809115362790645980350661115886390396276370650987353138074830578027545340442900014086832063056535911536562791149843790852482127211275428539659545698734028980925098994656399106377682429997107472621597770812643504171007938638377353888755716183718736742728523523788405902914992713871937400234637859982071238698687854412436733008810496756916713479767030220674918884960809391607594167243152772737649507590692524357143031783432970254099818785268918729733832419191991456573971635057433129702648968299725825664701012748556997254428007224170942557626613760472257073173763358072336285226748460966162089638651932391164634061483826964119970852475362108699314233712528920331047086454356701297876073437091050613456888837926513877841574212519391711635769014278623957470909000718784646746552202535391599249064809410069819305977785997700887739835534238681622546296575390599264543389954359500582495746096465797652391113748446015430545329385618730897398938237065979038642833919880794397938521283022585199011830608550096595631630388398286066116207371019454322061389938422265484663379481836119679363218390091032063508000270375138322855450987866518955978588770521023924618756405126811150583792940612105649741239856335292550368340140563736603677369071498799200668276451214479064879078064593861515674909403423995735704440924518255808441892813374665170584267254683849275025713645144781659077190203302680733931325508424287218766286231817932043242306847253564283314377378010515202173976920969821593080832347686268168275319785618042924036477109400644632063596940028867785311500218461157319784862311296593328366168421032424839428593591003550965210550321661347359561394350429677960706386657727615380227618135455719875590160960615209961380620251878572808512226253801958015447240766042524927801670231873945379567553682130577555716832953221533128883365164770522642008468305114861230363672170441906763479517072525042209480686203927490103304961604620774039003655364483486848653149241032322607990951911100559276615414664697669368541338103108345414417636494555684728075103726328255380431602709670226804970135960056642908363757234902559084710147640075933617924007323421760103155341811113989439241434369376168930134214693048574126671039396770032194303690470393659183199139202894732094505196186639530348562020651302973972483156462049217172725261860930253492737525777083707696541128283845041754780239883887247616638622091159535929808970903323810182652382181261476205052842926006894086270496340465186058481472665339833472620578276113133429718097649786795522708194149918487865245808188451969485927608555186066524260124823185525806986611997588432311358148418869962765365217135602561788385111304090131475791813017701155157278180013075264962430045555429850995712066363740677364837060328013968147566798950331869905384433073175176990720315486355456389456911042016464493492844761478042796313321168601596717465998087687038539319480069761132327930174601279438827818864261345966842382994159641884554669652291377557184402268727921255783309080434926624916311791661503185274222160813821352808559771424077522025702022829744179946526122766810173739583370457724742336420590829417609903715689743084455616629458933330515570019373309255118090913558097783705081399167301361731883561958534422779479877600340441002742413346010716458380484061914114771002599705310348799530928560801639066682723794494913401299740808083702594810568945692910910408603494500211186369156768141323713133634251869691006013042910461130579746320424545926619545515990404478702875737615195523310114259346722825686146780361869010915010118728364121315908982052710024822323923044749977892790834328131111329515316191971799617826017861457139484302352732524261547599317981115701541375466238766958657150428557486190044738921151022392585198863299124651886354419925249055519677258022025936788410736248120260240578350496284716786656293488135458440428014794594998292589403051768360400577965611427097788450744266350408247154009055549990907991874062072409293841736962266474184298899797785836630998940346205689726989080217208344861760671232513977953987573910975182553884620148470244389975657152635858831482166710100518968688771952318700662496947385170874404073513672170431721601814393561952423234638867100274549770347857571334718100272962973165529421511942312883105992362049421783136083323566481023569392015648998739672905264788621672016959911310770900570975318899965483781490620757136937671085571613046726304066478315779184020424191452067841765294873831842846851102529985523980490447755376046071132390165525967772591356731544880788989977320633311798560255102132268537859661844998538163565069030815365669083122064831374178285835793830926740374181139412807429307200151908389851979683847505250671675245108261049297124333128084399290230900525515008834513745073245727256409556505982378733068474737125846545592011094556976617639409385632054026310826518218220402546995443158266468296501381139670348479585643327733997870297566432131979932374761106256725565106679862365325236934456586127877486216322604157799316810974733384607211960250856696552074275925949261042771920528267476003418911937309260696566055596634422903629946929169629421303913390324067873173564511423137309992019522253534558093713084823573624444776719159779086610874967988565067368408619978148611980826541368342466169456373182152065883498318435414223292361165272999020277484868293904324854756152633671518540238959372024917289359774042868493838343212933048667516880249009220469439408222994087293383594891155060329635556494267544269235104097780238652886187370713882149247177715370824974031606558349118759016665623655241789220385101785072240234020740283713883786610603833453950496837729395685596806662957432399230651686404476943869499407533182244411611525813062715262440022425766703352256234475278168806812677677603006161108835349037054003244553546614291305056390229915001296181961124730954560269664717365919561011505651347155393769358023442573912976415204587293869176827661592581090843956194022429795537336444131039244300833765820085267859174378049978404266337858902197563424747394176786678433893242444556743745663420722331045311855027470683885707748029961920487991599773401133165049443083557539123024654134076968497807108412005579879008641231412909811043113799308150326788199791525601405965831113174439728979441115985177389509673992172424760537951864854001639707557656358077374101377641413998315962204975859205679054484159125549304880658487246517440062867978103271555671810711417684084807107592103826780026226502154369470305517997655149921200433010811995665402530643426190043048558014347728135451263610646344514506004856564970636951179423915751179341748696986446284529134002274096342408064149155649211589797752185327523357473091837913772784495399121012024753893838485075400222314540095597463433789516159852342166802763293382126493563070308820377508004950222317670745909696750929209771369747174466625418482012422569251520600651955854081808554389805153706114810151336527830599306288534998783636715170339271662741690360199144247999536075015630616326268820065430590063416402164336690806819676737712747816532271338712523014698946667140349538836228545949435713465003113962718514932943611937985508711380017006262793056221852985947655072474012796318518737705791794838421363701762428822217590175029406448910069416817958369042907648694525044586558379038155727114430025951782489241091244840099852088009711054239920094189373223053423251444857329010016206130495089643621221362621229156380110749153222967998983405771910755428017507426292491739225590500331052508565321769656242534037467238113348010408814254135279894632619372653836684944199288130491652107378078506276721242379489998859796571749406392019594905216348747795678990365257898574865558991232854667946144603658703347290701182542323358393600457943199491749856356000264054906384455273095275364144884313806727791596879451891751861298248662154353788174714316049541560713570624954198622513507937577186257712850536096684179550064186808807631963561694919145863436093187041987477058356362030906356151198272329952465899603713713141918289049670400515823131846115516401168398243213977515403742969898828688880173482174776668290376430421851846217367626079513138661277903935076489168983343321995095288684612942121081844608835327603403550740513680270173931236885854841575595328528557180451278783992664217443359336509643979515898162707830400474172626018689242742785432061476161232622117565557866212283037728122623555188704025653447382758725122914355600502854962731216078987777788368071912354548230767782459597408947132370152912955787543706976301739212867975684432907233532337490377214219021573961333766035581666251198092705611382068831844020111839035964422087773352137251667945513297859143993604080036546963130135099895442996167625917656692918446634891588133747384455772888058130786922016177366862676370771880853677692527180101878246425359267256889705407523528727816286059187321851753820887841823368740663749480790705801823650403328612014017026480885368438927626789164649772140940465486343633555226406237243550370183999576323426421405486724422452613286015625571141015051115284409700795912172728295208491339846737273865602430166851208117530164140827588864217126766887876543071480843913554606136497139267803810434815118333053425530023680325058478315826723426940728009073368670126518690003507855755863341368932283909827369772776477303752643951354411447896204850233718220272917639048450469061608955772692114053542722223238917339029126663513462511267682123610095213060959964689859447790199294695363235734047521654312079579615422869947466981332395146380368861254221678618659977480731504558101745308477762005313899746499888468293680346525198206941179565532380162858624662809077057302550428370917636737512334303234833065477305822739849767402867442864972280919604553864921530735943553040852520523739858446145113890181869730054879778989907213526329494884348946155676531877462527190870978841380913078773571339302518980546512688465555686473486638021393025644501664434689464850729515469096611321229104323262309405946861218526268455165021094375575789307223249322382398846072719130653269100627477066320118242679955469391222502873376033485586190945975425851245319981081037827867661429433052892081193167007193764200764080375106544216863670509533386113906652125563755496357924023995555270736522978786764378282155091087338837342516532315290076276902269153368382334586227121916075779204465407361522230071675342341576125534444944008898429964876465702436446324872455974517460186179079088149156743096211006119948549481440767717034052203282272084047997785030489881736800818132012827359785366197102295463250025317821871525893784272883552821947948899982213331081353668304492516200857755026833107663350639441526636618172600858236958073345611041378447985614841941538949560711798187965025492832722403479664459430194026398735251788695904857441713397656800901990990084000871193681086528368291760730560647134013526207529114054966410359910322469460873447173056562128164114027527511929802928594502559211541698429187355543405211745626541430325249392623056226303522186883903054608076476906914631665001892571131991839127402701854368207342994410912840348352303923703596779190356868833089834564785639359404393887556488648128001196373693251965974570932551571756793680528930683119368689623948458486195847586334297220013835823213584620198599497001117348912707169620585621706064034134336256068247398494537589604865571367049109523920258877382405628581434742646156252736966163355991428037317870587234078838524308745759624142512979203446600415815858757747962743058022310389587303971845965228337941977796353951249592565017707898345415347743920026562018003502662521565973509653567585964797977747127688544818953484549813415688088898051657663495879999296545303461477372446388298833515382478733515465484723197243949105106792704129222250542648585941907375930664324644516970374285441130267136960789378477111137685233419759803100414665940860711601964262002170500134278430474786566967580094926883634260935235811949309633430917401748098888489725770505956936467076980796687094895683288682497908124407211269734480919562104880376124111170473926613297634749555406768806254183115791450574794571117784147951775507129689433372154735342346982530501762417310440331109176904550280737122389215785467958404926361968023947494279600569029791640599817918018784923443323236422562784339965570089076314898338256207818055583508083720351860771417710827612193235175299471434515101813005979348260196960060977913576818477395433258526931512667231210872437944326844917934654656226983761870016537752432978379147675011961632474831870354418496949602445447993868771797990055779037781790191392574107397817096246286869873364055748646061266458578056384588388539039205049602337468881968701544266062758997076289814695548655792026527066123733395927149708679529526855346458983893436931828880619861265653204543290564097842812637554863441893132121407648474372279221893130994962484473411389480340809248061789179826419642490582361679975322386020179658022431656552219863718298895625602241210158555596880464550572559462603340970566984295096351078616064442577112240744838972595260518286931878373730368679710701227451599967348598162820407769927756341659560186222046481201014965841161031693220000441666588264786009995295981555682355958349241342829362019057216259247066614840156042426727320124409604569412474626880409373001552874892145783455743547265334906702011674097921430484593917729135562051766612424581970125999227649117823354126124098365121758432097885979082885359907985490164182117962707252736074749165485574130220823265421289953640775843892891304107411976428208439821484218670074574683275548300313540027550887329109873910286727466482847776859211996305546200218095095604296314068634714139363880519119214461603200879635898363358416312884244630412417958870209559707515370576376289033518858642260480829003927905770639261648879934124316617112590207266453286712920026865116864556728755625892339189304362245149881671330230232220610467762635469033092823459481293609413363047173418275350681678716857399938206666970228327773930480700641191403964920194097211635197940124466137868618317799955800683696948663068142581816820887927273335508672512162983599762543186463494598061263931860500221316973362559674500966109702377581375219116243035020029431122555328461513019125295086761680591098680571327584907037471258732766527583793436393044002688579639087415485187270294497224191292589905271023335440630428462871624713568473510039387039512829086653573847203135885216890685490755835977910363050920373504869797100097621114942277301955888839567937061224812869633050935562308683328627821707744243566519537298266549305157879454364850581793097901073066604805461192699909003255124633038247947484585096436319458487520146222072257697085921407253034048129362020059602403990197722849946054161541299041927922924614601426096540893402792025068182887853687641022033451471355907487922794442569498676485706225149821611161240456351720043228707886647670582108893549748341716120541254917267369837855054365543104712839896754457352006494496268389461842295755778041161575102898159542210975524696099677195986799785544337618055631274116137884518248476371008297200195262814111305751398263431296367577175630698536480208992499322740761334930673275709719262224812838122535766539740948954696222924433242335992282505455829917093051424337428979879956019945127008715011839105761176638746555338218519341345274368161961039492795948318293482469644750890017332373900659519108359594542564519237373266358318653439139804146777990460793829246554114932984031024117001543909237021561673052367555373532464467217968702875764504513707056649378964332834079326023005433277685917388612703689443295795528886794062137724617162564550853199183328707998517113471728169996376165763662733831592546808344846554308754066286620607346302712291930519693788860851397082660269928155957657143489722557478794047954231852314020356791997215093684603555631329369729403935731172748658531866906988137863311205605780150458615412130982537255894213233776619129754985936670472449877507002299140462718849959636484866852202157569362822518832372557236300228963015944070318382975682327566422565550424544474908144645342532821145551811057451313675646808679684101451869065844317274965362175030716253131496341728634460307203820873344546838076119774303957368566896353571983817376254824297534203907721610450574308651047277912484398785037107626770299598207227565718592316913824382374498768249585894884054200874927321318768104433312377412707141869726296285354595119651529932525573344827400475773156098650388110579829496973471643531183300979797321774585255895635910557139268395951800822413323282000607578667467118692968785764873634704686495651183678815196081685237549270615195062626479594227586951678859818583280951037004934891724311992786324250714646862526444249520579187251027690190527126217349374777177210417694950910896432251981102323281581028388962046527649014313699196310242516312565350659045528611238449938366381308717099270596446230330560983088301906132081394151317038821694673893307994910909524933440466561643118756219181176693078847652045546876248039785140338229664527720619455813005025174950732412736504297872367618282356208868875966170258513593217619054752577550098979788097826567173466279152958168594204400831143863794463694733263600418708395317113185063381385699375877401504883695687128527906113043660581682881558522118786609594847354918139833505004135864271547139850227811819055749512395860830012984438930165697697605928342925037258953681729377229174582686416277184740707620422762642481494337918608568099276141624329275142740255745536793519723231734902661479510154085255857283350337367741156098933391746107886856446647838010501019967717606022149390399987505739789533371303421359079703862902100858243621646689655632013166527026318615094032146100533705131446102998950705190888343083044632164110435962211229092729398751858143357493598238429189284243520930119214082906249487281544300816272650987957320532277875766264100183363039570607071197857374691140727064873713625576581898379204317393175912239630631966687606776005236021643596665355016612811226504581486119793636765204365513127873595003306972914795424471151705080967757085944511361124227534050686229026148295855384485361950230248057623809623433173354856285695699830174438725599605257123735471431924339092724874424745672443034339709566804476537877667410432593069810750859983513193196103039789842380200653961107554960679803810364775437730072983284227929158252317565452844152469336244011634288308510986932357649427388865701190776569289664886695152129910184648977804715971115490756234784305418005894781209613303102442244025289656576024883885514122284609544720745589288307787928482452432981775697074484048264418280460268203072726029751601735471422550849877890724601535420263001957229660467989533317063957961468391407039435328976095773899033961878906440402374311740744750810531410549284474517411822148267686950794006633597697227816940329372414011526117263703585907748215186021154118799263162183067868399259896686108292948517502339765970966464989115947104226487238119498009903007849063374317858191311844367192119263770141585411125332380347551183371348085007258391099825531922001088379182610292115997342103355484536328266122666749700687128215449312819954866225421453605767520644294759869112034511068891977177015568557086890250681886472013838738724959124941784424014162035170202435456517280641557206216987447403511582489717812072730393207576365296279687581369010977466452780746068371338913616036194837489592731629078966821582047820700737378728040255458285026250941019681569461799080760785201887826888946969949130163702324157128091886093723397597661736173479291944254370451495508349158312456291470556597156177412626567992471743900788735940487290191936380827357808618340520786356252684443344278130366802853432422611946633168779570854531209234687796099717027814127817012266777883921781204056994713284471631530167752513513360692668169901521987338971067635190916960103828148451857875248994756124424654168141024998381081485279327466246661680670891126053999255669280296843128243452847356962063505129396954245305958303149931985765140924188334774352608305017166508427613765376339991125857015059740753301057403951344212715980178895294919354705085169954887024017653511109925851526522783417260007701511403016692987418480603375584098472601555025957640807803151183541480219424782727605069357803655838010635122840670212054763532792949531065108056809951403667127817054346533205574170308735158179652772100788468055561074351918896457918931090169220443982746018729331477196251212775443433888290366473509004987512979635398352453037933445863005121584509489559141190870583530279552917479130411378575131832591919121326259998527626423473620578537537598491040102659777152345154946278185311672254612543734711119835300723458428544723044225604831335280910686190762878806072600244567384849604403743652762422819132455101917715940285651518694562101569695266912494922318554393190668917082511364605685519029380237204189100649140481776185267650170880889192441143399838303157828124199675576821719365591262742268728667575730908971546249434195347141834296079221495957481125650299287175542015825641712261686394978160260828514404952654712949863726919091331794293509240972688736904858051184647581034117791772062048314672500630776510252716917429245118824882880297624884897909033830061619952054233731810247057247805617394003403840922210642442887704557821967586862642734553697394283675315908229746878607429863594153151308830647904853463194547492479069994604782973100151870544530715248143484616343286613443930831280967565454280129033519516882253964869410249834409421278133118070238089193842338391256242936837646587061156808002616886971665331733354237937085305854616008311413540627846495290831353545218900273613355459093054354812156978652010300266101579164076031595227517742732283256774568467336009618193563307321729261583312180009318442174709226526312605839127535548585439237401069993799356958506402547054316585704392570985644637850038985871389421074352700540404086001694197867714941498024806183428432919907145987911419264237073271971401108272615409853863074112586115609028018572471673904483458228330263881863887614203482229736466953065159226117863629177202469566179894074359311560269405063007868988415035064286675003026887518006263250507885902462002206832034377584185654989667653203431778717507336067456600257331504442266504830435847336771282636287075321463215116473650805870513734784875829277785799955869731752834764857519031897135690581951349694224635434353177776975154540489698566572402174196467697973504980629094720801021921814536475972929170535848034205507684026175349292806885806217409350193012508743117792523198725870558784555851887119613913852221460990049338997234403922899956275782485353479396113268926029739879028280750291428108670595596389223140711165405439405439219432987915282414278352061230611866751071259452355103049490361865617168194677875602322937393418736446738148103767842310652097059709135018118705194609023785054837467139012435968203781947443843159769286258177046922844227632560784394824244623894818866341279289106699629006957920382075402003074980659591925197093613787237974378891305413802814980582532224413454564656655865641767150498959748555380429189599253997534334554407423331366746392601222437867751341300501571221791014622740478826288462715297625788448241701184775761849744448546839816178525705332248094487089836146045265411149995314463996630287883904547666656488344864956250401125367882503990119436880123825985376312561059147153658587336839626735259865328916986976757852209050322186455272703105091236076771832245109893216212155715753593407537531449921269400940708502058258604294789224369418138527329806885879119715630598423023562227602303477392636910360535464689212509591025533716006281870749880815286950544146958441673055315015067038092284209041094513003256746917899570498590298303678658556244676969542414621917139041125782766241583407970533988927162941434059125576730400107598080873015101096318112198965660979009558402628849482136571699569327773839768517529880443196398598252001132231195680341261289061391809086839393390812104629373236407405104531635097040117142628984274159301641320313526385391835348583929742648414753208255302689358479909401414954929259051421234685015765422237941974966370107229861693209248945167469681808259370330807778678111183101971521021834202983978757802901207128173704729903032813690688701852640565763899983751653650961286274901965916551660710621221508290904110188893404979784535034251179074164543234916508901120341621846493566032889120879327298827606862100707736485305366200727625547810860009818202594851584954192981776759066384124553143489898070063353671412988637866973396340129187006048859264418313692133223240019728407202728890140264862290046550959927385430854230804443748639826555360314926442994867337413771997179816931383846343594705238709920131293762799198296206373609353593924020975809921440659748026870653541999322918660529609983033569129734841383635068504748799579419131364091487724002941721542846238370956996957660389415528764350415198843887585926528176994391980189890160586141404809693451985836068752039030754963159013673287408640655126102591818809501655382560584194170926711390916757440221691056828701102521687526406867627946725000520730368602094017018191439159041107204180025361701975171862097450996341425667913667404627334529851482698955796754634976087641387620233113259347385006432579828111053053008342249656971443810215807906776729464137037508584498690527871768803468979774072215754048910030896836863336553043552467835946483262077272515141661754348669371902788667994408503560191841805015648829919669581985437037498976381648850116109947683936262920963483868220391719639171122955163959263193435010179263235368284623241707327501741982622268712555049840290048866622546909072942425986874386864159369116202210715139865936257609280271057658930359496889811543828755185825221439989065365342495051274784167369265011046063142672231648642927030125195942977969474637205718446428167779833647040883592669469660404935738692334394943533737527888954981689673978418974357564177153984409561061834285799224079222651396690345287919063502579357677833069887208340336422902611502659186629230156572129533241415465117791441890666754654083563647201189949764105008839738824349539412976053710294062330466068251271797874305885592467813508434892962266158144620354643750687875017815920792260930649651908645251039353994967264872792750898763420147763477521797840983879245389939814987931851272103226758262497282427508293437460902124145635536710587670202379313044148989171965504287228507838527288915736621881732447791633110544602930225438692573500788143010510265384563590945130763808639293360947632813100017713509855322644714785353128649190013872190535582873557125656499458482038208609616039090768398090992537481266279172278851924962582562728379802152161734967329793942941135804333413830785096703530666001045114648227434071967722960448970542309678155512009214315037137403458592033721433927234476182785540032987143041480151459867451055169407378393187287459729889951381617133512149771738394058294375535900037614280496142414307887285554335724923448846406329623106155643007856348255777955634408309945698722541067988464934084345222433877192138651865006716034749607780772167196489506380810560674666270659502977279948275517121761971429468230592368209598538014767070531360064100357355790123098222741293240488131315360137367146994693396398589573841055513176777386726270433375391001138450316354439584597102067118555497456260542868965718416194479919108184375301963927084604823972343047628202001211653107618239298215982081794170151165202831850376376969940516614232715138111411327339797644976500445176997499744072211359974790258311207684326816127542187802352672989541019223515769460790164729703904434570185044666410326780560482180379934349071102497172581827093684356489176439701890841545694377815350964581509119658691628020270802512503324767176026136532278021550889069601676137160274524760624686064310448655680746557090406680054531155188704909505386675913056049457461099585370708450505669468719817452379167532388229009401141381593549324570644621759479444679311501268960537379101976932278933042384480698992789505195044265038199937253224281006970205479486958235371624550872343419354026687082419925280192090727257198782878823946709186022969759107566696380003889778622346836808692654174644123869255502968791448522559610770927895195109849535631135510304279459178695082441616265718494906240194658580285148464535452672308482930373700240337600873790759134929633906949814757806821875547610227990131581969736834188448437826355628520116076578411211364183755006317703466958300503917897385563502686732407066649277424724360792585426043807091199958103095814948409209792935712539811999375726083874406134602924611345648778547823585733542375726581933450191334958539294649152280378847186064192946576048963387616494168868913262608855758380259320007662966593946309514783082477501864746471918416014295460853266283956720367191606681862239447717021786817254170842861222516660659405810148567485477810075246219903313367809444206263929264366179700438027875803370072339774516104496749890351159425585889673059871612795808924206556989548643847714702587879515372159011117732451119439566073886575793831592647562554837367882054504791266597067470957778469743219823319297226541346416224710942110150831762039430329443329641190121945422762184373577457995344495129326280113298695671368067897781501630544892442305178447234932903376195471583649704130242060202004625331046177778410422116050129228837719805272983905370739577784515231764824154056324277023383952310106471422956071474162063061478108489217635031866890452910251531632081892129178447389275963494640842235006755292555688353389773857999854942670993642885557295503083247503664763291917652415828962825805352824057943261290495907579448210975779047339761151244643031824868094670929821475511215343039953308634135852717962952878424321311614251446625763155167968493580320941098095825503045408732580890970614137760225023236588488473173286087412620347713397721562220249512656093089349653502816030871768627431659502548401310436892592922304900370911459286016022218478687368893262635639811188108408968807659696828851980487676627898123029638969471168479463304281005103364838019823417282579181044115101102763633247324172198242925077142798927230878815331146685987083093826080169854519048397113612269056045760670545464126645210399365197061045933405289130915021975866192767941829169110262223502146494161127973059995161579662966620247904606228938613670134798616697553693700741436070339236978916324213320313580195222623632502254055300367766959976503479584939903654590487629695613393417053977175268278374104186731291716639487124411194810914394669093363883846386547500392972019873588112240914032804943619677334349342432518096528695523118532992952552617521697943194595538364543996391091936798936799513519968037827291973896896983359829915728990724887889985596616944350685754788986367733379623883594685053949419356745833585899234577519116546427331085453438381640199379826648234211235860534645463856409656243517818933700550969345488656725956084493777508072528206411653141489920113667970979591683591323558719544791546185662764754798568261296187946072365023239036564470942986268022533191958907806068511505630638920327154780625349520450672821649083442611204160841988144538485412419918044367920218266942068833392264499106281139248366146237583176846565374568050183669558119478870117447392634706276552057650272320525647091708866449471238411538388736551781353380460828395994751986579041729615017875561362483980956159753622781055751614352066882711066638645722813055610363888652731574883643290798301912953380673331287812845996219654923376078694711698070867573679090052483054772686891585722936929115103232155305623417027046198600289969239357499124096377721842230875754492819120513335083042967440948674064740843901875667413523891168309291919074307441299077052359691746905673532171678640419128143342298723326199028242972147423001259842764615275548155888694652720198268223276224549450428522528323651191607516776686742050352785606309378591084895100093872146036224935814630706507828514906055410383780983439388413111174960023843148814419275362307752839273519480687588534254093407841261672235900235725763645700627119704919698584014243054186028793737597984731730441678824287314882730999070022541185235270936605862582468388878516955664531565052812842035075886389201418659556687921232287458537303058615990653013721132931364954869538414812231893946492473047084452605191294304421094049727807900558549166932692808952421576509334562923376037034697606116937117794909562831428114562907798205980909514206169870423988648827748271815100986748007564148061706516032460330962405467919748256721822910857419938533942942915438736011060036929299359887280468095188447396554310298489340099080196668186735472671087866456670849144458800526611775574638406392546772784615015707061765801487884051504785598071677740422181481241023302474450281605112800170310403138620321692625608839316828755247608257216160501061697498029325544101063437339021403816072075988330021985142566588841942333669835446188126630704504197549034298515790372852697179029392821548580342158071565994503914053729362681136268592651339759619397401898837949801911282872418164943153220174185493652117325284545872320191941932478299249643445276934879202175043866116939424480554909171171744051408544267269733321630225424029905473043340571681070930455272129723642021528674070120619041467607365949220224668758234463489631479428891260648934763667361778883853396583952204662125663467860642041336512862148208921581764715544031598287357976877281722826315762432870969683092713682901156332003402466436880877686382666340385676050927435621165698462105889231585765850337265682602981442323066242516572659003096705276720569932318102663900424047014143505029438296199648771200252029221054065758958660971110506141773979809751950851879301868370994962084966669715672230775872985573934381347682903888302241984368661812690162950738610804459397319526191239936765236977410659330180058145631129640483936977498704742676596391244330862025970562384666914398737540894425424292364666764100298824399937086522361356550428175125201198329230767071770659880786995476705002968310804775445519751713579114334489305186226629610633089503764592737526200234563057911002831345379389096114306315806366296261767947477595049632934709133290976094556074746416264985582676311912532929352781462949771269973147475946032239624335127671159585382759663586254982262255517085845598926703892863051894992924345430639583680664915826625877558958342649492464237966399110943246345938552522680036823450024921832786264636080736484683692697273803895193837737924872755411500647821636324687044290027450504223408596756570202317190993724784608068830050856183323997828713399868015033096409529153745215398773989528195894729921734817588858595046553258453004530045946596009867764207977518826883095284981039654856289409055992654936401357543442406610591273924108286270668260892758091566287931065102830475510541604682463843543989349737814662868279957369157014713478180187545866570983258207937498954876541085407047403985612191330364163526514781187525498144610268870212339060012221522221749271712966033590977998627354340306900440239424460545517042013604341881909307628126612338827435726795421917234925641306559159320415167533968913293687706103009979948850510094540564733113372845161486704045860380714222559582251038977455311178971736393566702829331646956932998062651125446061697930589604655792011874928104381382447657441454641260974677428876969748965832571226831656397147674905942881350241747892054767498790688021494909424368704482139388167708712899483789312697594112281432118723477972925545046956609434287398695528236570912768505318375581906423222647698129695411257514738487848984340279520799295922027658291519050522472687005931553497421509181790172891061910912175990457066643567247387026913210174883302487182766994601470661535540092444593128242409444666381477160029256189797319640642466553150570489993853755300783554817318813185845427826086765568281277122143828328224356791487305849416815645480302429643851636194509839010865706692480501691512560295533973101218821532269379052276724644116483540957125809918742166410932349346561331568300058550738172926178897440382217784119306627130227517567050733156688929473027062766879178911738561027116191638249671495241591205883909922199830058578570177209147873693153324622318296210239880996593942011139467279064527547443325802378346988020211161144564634190344676439831434640305601555749001671486269857069062347634198159833942978688876914323193891317184933099334193391245499249204161657482836633003309672098782912922819995562732529028266417752962382562715047244545390184959385376166378842645360961351619498795873756305696282987500574521734322567849403281764712766353326305940564071958721710069919600661658241555369199871682482667678941377123819071876286048602194675891746420359983674303357996798751629728908954793736546620227467021879102881011553445865130903170403172159485616017763691564943969393157440946606553506146196708409274360428534246977381459595331209279712000482794472219595744829206784083383914413151689565108007501795126515669328295421664351231559659965074298738926056960533972442704550456216940430812438267677703829534984709549179936737245609391097540008485825532490984792770179394712261196133889837845013415662186081975041568091544552561731883968890914259318945418774593599944301949051494966180474663184473485422829419066121195231957466751324089146095227926322656767267433928155842665833687107250834932238755526305015762992299110276834220021741654012879226192055694056629880380205926998331640082756333900618248461771521470916529345295441872493463840382224856686456234435143114988789017511723525164714047131799576201008256641625666132501071100743185542316539800049625678035386008070260378667196252559862627208974811692143794203156042186079814326355586857099124408364654720604157133674985184510185783808866049422444585686149392873690811017708262201777008352050130449851516840028492762675858457411383956152057280213258976789323994495280868977678390849915320413798906633005982335166080318017937218777867751148877110466489269321881155668346662417357622986451533321496100394310987121984397504736835267396224484459531051427304851250972733826213495435500812289348763610175503712982164170134230868764136345867708751890938735724470265267515196881103875019611517431954693114757472063435070366785168216986192465726427930265943915907220354472755574351306226773229583702758256883988709195882306606810403274849164866322783235789899439168763745058201004214803587226460352915157875676242398600932969058779664972006778427444331884409016729034453498068072684703834120982568162967781218450871469509324797757066064633343810840695442156833332765946675484357342017267388486456331730318882468659148570848094308576596934398668219873272252975276170000934589116994508466121073555766386581803423848010216655570879347536834877974910512837079896355309814458015761580869255266668026586227267431984944838247677027118624544863841583080654824082728095469420480012476444878697643314971794846300962500645422626685894255928149181800757124323112944236254803717280752803529101235515572853921174961891409563960850681133947701012086830338253008834085485272495645123453230497535119793202855163908002342410667421218247001301620699391758389992412499307061437176655876143569339172740494498301501624808755530286566243879540144150056318640407793867883034949368156091125234438090480404221899728534025366690662256547604780899447895078393442681259234360693203687934131226484926382567140838678286161352762985853024550377424222356360919430988557660418430041720618833741775832581736568536338334507168107946577610016976686225330571562158698855238441395388582724117447543530744554125277089062034489454844420363456889706293394895368857333448356077679503814787856081933654293448866810174349001985778937392884120372450369829027894903705087878930698506923318676265841029104497788181723246819132336058528994604220018562665230690514516488790585190704959173488270344335172149401583183307153559976787807319004461750233091326479356897055958693203279148302762237297868377758288786502392915608528049243198312406189457573199703065548648828712920922669274736162884513573647016797535165061272907964497846762807862633716739339998777335200323416803645506486698569483573894091688276144894516089727428896861843755919098661569123047683584648694354936873984215646064519786474895661591496968431531445798416264430411550710513787412239707294123255839521053330206278007794218402902118039249737696292771857144305751004981088723579164464783390782913469687925460729186009322973951185313948597953151463456088854864208989326968226975648340702092787942353005341119712655043816250026549560686699235671327941679139004460666444878458076175690605307098592652069652566872903171460150212312601164336134836384277876525755483838868751254329062313350619732911782428993714546662328139104609890635957091217437009437872733569915568708232654544486005082534779763902787383786703656406383407085026968875835566243405286463707998189796391313880910892246772142896717027911815432725084078699805304021732516240733822089031460380367862488723092093127086968562181317415707319332365372441507667547749093675476869281116810664522888899243301841997399091812910294215663670593207050690978512541528096197256100965978561340975216615522715436172834018699949539300934918143193697600795377894389793966803127797754252417350004739492494399186219276544906736885768526330137015525517239277290454784542569237485627883361027431476854929552226348195681728465206164167602593156045186335784619802923579308175994260461947670148567677161421728919050476410872872290096161687646228088730177640424829980022288879762129198586135771972981293838502685125571844052624115386531022963695137327765414363889887752472317977721480373201729689921839037054951846702318976021404817982199341655094758237292167786197622588143880547934459435626992021454920744029034750286812595153010887992649784300021772225318251287906483246563506805203149258456830145964053314279163811015361757497798059726998634637398259051590025844555853890788127321097106058988409186114312307550766865808163306160090836037993607580281010094963417555938248314684618371488622386800249989921463472580350321790349124609642811365426626224957244924891351927104664195278897239296918931649498424857858229808056239853996912142564841783472219670726650603818804432583218811173905971828563282217274857371125219779466692242404622545096541517463971582812224577226929367624171108487964354320011186177933097216834250606187268050665939763386201317042262217071070551245612048595359781828404702364283028712606315400917837167343298356910458853347927295747938149484022105291171723558632921864078402777781040219583315496634467620101111025567674218870769883721898482938255258569672362383224067246924504641853006088114603281725412087869675368560263675642672682768861591232527091023598378669222967608457898354507188632190118924240823204695873059303279310289575186470835368312396591495525019793311178453656528385021026501884349146183345290992981267443176092672071626709266133867290024712896821970402247555954586842200701647656976892465075609833121054136419810838265892713423645515559997318661116163484642600003276214166420743411690128408520603436394546891799987884864117740696905116236185201612472027237996450804831075005852502485789033309851189144354541768055808770635987000485358315255328414816564182861390041366929459492002166527330552297027760843049002060521011734563105853021003258000694284346311136926806802414300943837476098013237765867287321578735148125364080342567910914139583719094282914828638774855912863684502846079218434268414969263745642663164644913477086246963978564801183492732774198522101115494525055329878940030628992728215770062835185684105186112038087186617928577272760904611383279337234233503185988262109642852783167051553204385686593263525123919145676470952519911245186091762013380558404377968842998145816099835624221617086940928998608374659204638319067153502682626778311575753063000670448774401271422633314235316381867877654060711415396386739800932913940304431585376073477703201740293916758267231956212609027432139203161441086086598258718835290896141826763831572013569549748561632175930414824883905799174614693245814150781328071134976984833855800951510325587621099346810579509744786915001579725519161563024558413337373391671310168081718525859398718102005893308475972960495741129586149532721063325685341982921794290130499803878674440768640448163763085549821947720767794634116151158284841118161716347787951354559559301434402866028118802610749542286661709898152580102963532547933245866451574091107403296461887626079358930821247048737358337023919684194365335370751842739091632470304974960725788609726816497108282906660896621984612910403849840502944403580027778127065805880545936862561273895079777629578286754056034707660785074722809873228545726159204846341817914077054359051760604153323383232398608813405152002222058718392125169905658705198028997004118107520620852117990450479462782603805877862819198835184488410850663297381174251060325373134972853798915889018849448850076109327972920544510476556775693401057947430806632113158610633512399580577884439404848895043814284557446945370669459599030916627738951210663596203759890519318504911660804913212167398986276540107398347643061585356303730274824879441013782274780195012500084536037872171145924968010266684467112878910521195715458587465797913406391668736514073582323684345148103013621283650506906816601733145599276262803923763180988289370426701442343135702965169375590550599334460106697393988044097151548424526313977453633014341976169649100641992719688758119563955681827338223331177241209994691183293535156560516810064117918410631992413705869005824803233591057959545159980651248117600282635463258337950467811938985901946682747607681422091963111955880550189407755886885013966786040315952376215735460973812494068354814343598902248610121415188454428769611722844617218247928442751942798651567223494801545488506458215429860753591031731357524674254465478107836046192364113376116241808565264823315998129302477918650747817164059398574415184628240970528718486732200885400812853315092738965608168040168632359573449207554826873174594108708291793930531242547815438652166550698195383589951477339125788013918658367685859472181139468238856372489857429017525073368148979111877436017736698846330825073960473737248284613064535921618390002782047358891639703874758850750006547915920623362424711513843879444377004160482507416904176919107934510640354677876540698865055035155721061930538541969130098784093868596770559877491872863823140147614018642847859922392855259938695554159806443148247056744924763501623699708193204760473830676269598735381044694619688360681606296556813481307822313326155865400826866556499457681959558092744518083593694153332509655413461410436335038128182997440727389992611236161132747857600093283090637182683681983238886335742179211539655870793524552786802495544133071089404523303556817392439198208585871443264869867478027543721421681472132413809238225319105236792455770533826062887895326751723911418483885922626710339708790167143054817485810401112836886198481196343186012922709391818610159819121496036221759117280775556776023876912806151355961265476781046276974943187348801523889165481886138544446036756566323047804077192976134137997999090930136963938918060679435120789434366262676451530057201063580668801240794477718906605665885041667996460756849042795358005758866300672249925823735438475967974986944328434942881256937787658348131395354220105928475130429149239084751017358114128966398981984587770219867669638382811899779847438089827527403131989735136388179159435731765961113267028525686507584126383975107192693413136882654547053022959981585959368308813624901516050313890617776242951354766294855677193257554216921613748391685418950111786110472543543287982759035822883185608379308333547563891912484951611368209765307985662250086629164281137462142125374626956863642203996678873006538790979225309207092370771156951721309728550847201553478079051494648737206723758290873606267860492310470696704781709074730653957032085106682574298594226848903440817127868072911087815604891504936643294205429848497131174943597513658339550880503289877400297839323386588743731245710609482375542114589846259511755705658861150877599461749200198682847099871098169705216951147921872393249903231122062093963442789018245438806271928520652495121991262974225317893385794686380809488535323182277611953723213138105043558822246899424315127713934518665991009254695117395627045781620968892634622900641750212784055818905623073490088380717143881422735746906223342533686094172269094118017447478687741746699653784659677870619735997884523590948061582314636113793313675096645594108048569506734370951338617217755720788574006426432974489686146508827258079409707027615404302963773076016814521520760638917132041882497632353221178116988645898621383758737018208778735354946936023917201385341619944866571202402919472837616396751080586905015930340226394808282757556858154600028174718818214834310529141256735501961717397344982701683603591926886030036281992521671215616692681123817070384926568043812459633601841130210430776703733809237234273237753520032390902210824883992282750856360168756994459737654025063782794330174601185335574871254516428542596340140912073438929167791015640629729060011325251297208707934144167767953075043388861316852536276811811163986111844872278038145584384317071781719299035393993533426810287916743516982637319150311542130934098657507416142955850069698045415980286973046817373669585392341013489555948806388330855135413374179164276299106155751030760919124217350784999112185560236457321597576953482486669743430310434158069758805540069590692496640162787980326040353598539127084496782711708773952495872574144155322182466088993611741057679750192713174101994584788395757702817874100217738436584189420730886289990822488277433750750060685039304853437476765100420332781797606817454441600970400504087146942487871105238470998748987533968817168322709610907016916342110271396163219456249465148155688879047391119078596187213284850253701324797888485093650211047867316450723093032073104816249202350343285725504097738806033356959465935784300877127970764666373893796369961498567682069398651265293791475690401439545878970339823483466653112275091822002150591617579733201202404524740279562731964487897971877881583256123417570821200950908154559453693090938558054645989095016800278424776765325605480494441789525551050629794316694306145175993812457190336725503559760394982328685833078217011312820562648069861609799235119148813060560965454720269277316929890685249087304730072794769147742904110791469135948756972719552048000818166166508676184479766834555597974185521345864339392188987997903238680502943853374040823199863696956093147004469363264964169722869882676456273643437706192272102886764216845057889448636604991601727266744827247686851634365367720743983638052765163683895292194585167556101421146807779799668441371074456392540360797708532574951301608417987871051548360657067208596187580985755353881059895456253859177091092083550307076253401356392379357439861948937795857518523158404461112927141674077295349100630239286682604450138551933684204742568034273273637252286316245931163709015119447067573282194066853560008904424878442471106367343916770267077281018652694864283939601058822276756449945014896589258962388764032996233021090820510990518280216105475325987787768965469987704996060955403192749940291679584557535021750519419690259251957721281286379170521187019160908400269660169814955251544299884831949207518789418499181325386366063455142750910665052938686331030901870315773843847457503317057786107254797092885227762438856501907938814662161318979190395192004459168778815515340178330474992886782993639826303317294549128794734050537710190953782892159416588115204080463816739756671965516102120955350028791215318719201049749733338141729178354446851374590602185087976473765019758392668052228548080459732354799794269010448649909454127295027418536789674519079514395372531539045740237571102913074573224280275891318262211536429400608062837592308027645394715102096979021989726575772142874943316556876222342587610478315606154942799163231499750590046043232749142720955032104308436411717139316035614737474580316099826610325495495692840662402630984427069000650907131232634116810927899158122921456099254888629570208880672940986468667011236303151545496186744178657951303092782283934616678571558592853983693060646773664135936943657824824694200651828817740872055206302221897649348317054834100925008366570976371842339983779421791281400275159490287214203461900148571167624881686939842982230356561101586008342763262369588749618662692937267132125892569815285818945902170806227143263017703782829785357149227583997371630274402972554664276110928331350997369652097507509544636540096131802447633610639679180249187592517299310336316101877484849202039517090514232889691945163170410103857778318088033546690435005728871374111260171382605034008946969445549724583086035208491173093113440205071239693924531030967021910214060771936689704011776280226810276282806738145834608710198534791589753257042277027413617101396832671682669640946903364292468569138789161871290575421190781855979749089648483486995016945649284798062410985118010112581373566132120707554147909831402656561694914503217195090340631087829500330708802597594835426712458387929747998244012157508985578963266394253321125048939021841336506597890035705843113398113683351218466370039316203091305361070270729881365091647439763610489971691101295009447122199797148289146473994614754068353257743808241471835534219223837866487611987636959033919588431252655544865589176861943449888279395406216454796327363059701703461946734747699097397987208095013972183228725443516202491535220186790973412873081880872867558112650275986379770438620614103616109194522234617196403349170812141941242743416525588367434426316339020378990854019703383413574178288051469202121592921455713185120299852143939984459167211763436083080458489414458003363418953187357307398980742035321058454511761095163180573162965124426502821371019968572749290346104210383217089982993960741307656532339743481302972446884312961966987626302747266413242349161094852075119963557667005592152251493820851272918718710692635117462576643252276596407562762692097930579898433912226850135796180618016297159687292342519188880875398221511564070775284339728928023548534678787823768909318891213035165494926405336917394430527701465252337319267681603137359605649889465089820524347021706779162408485081884290271442322808990058748987730323432782261487026759282020231447730367719240805351441236389137818669705493371840932011492678849467821188310826152906588409893154146573086670230637684473479639877856203469232470598956047005337231558252182029432187762460009962089981935180708269030083560607107021186966537055855060255463120255599612911090288276333565130114542953810479624970612795713636477209343391832637626911549988884020603737163657658518722595072166447390351691603450733748712248946050966585985039593822633769675273029525853632168424514573322375100370238303804925501462060991075765224622457641428353863457039672124665006976039379841855438594186974137512281354469855347811506416560222918404836349805316592224616143953315203768087176636316331733345788098106316606309262942391701720843895418325262500182232892833617291132539357919488265405247707903098641407454782926344285822989252904293960956118260151543489426430108436859537450600695637615705814140090929018504468246058792554772746966877776272759905084549981720188687478755375045470540811871619346869242480478707997215472749183900407947892388008939974150780343422894265586078729777943271813553527223261254422409902769827288702244320960958134182490189774097480644168486887377159704055329770722540167474936061228506332076990576611346230311692325449437333469579104965280979798527142781483600406554553525793400896862614953549621291289470806675507294300087731192729745365997083288326954852455317859275667333570510989421381588112738847492934796470925949781017922183435955107630768032008126869186768660935785005844378808739940837201262890887847263484959677853197832846107365310226539004101896489404903255524053905492850470012617080414180264900558386055441868583893614020373981398793975519330069572549656414473637647238530037340977605077565314997149186163007758211875135419375980019137037760900191191069353508656162858816710579024619867428351585896519373329158720386817517546597536426309347751489382374718040235744085060319922597002591459675261156191445302835625862521921972942508467256246787522944182117440948008057676523288795482924355366655534631565022556832234491669945120532621696767670562735971155590196623777072105005439888436521422469578197499938575545984942191355248457409845341968426574789330414414467469729419648055774683117542908817313082529486862620138385979961105895561704379084567874407113434465478380127520317925607556330614100559275041673533980243648392749756517337738229796227384902708491069699850479814091866416078095750751534230290292805191305520661534016809400745260166600322696210806497847462419581589504616472248301785781221850429748382190573185355550622471978068584678013021457203099039710366421114389963283926962798468039085585768418712615390390470133469765533558382308106606699211405699802342426375856570419398110449584320126584772683495551848182347915639936889932687438437962933985417506104856920696177094932287665608931141010374887906065206630964240718888946318012482725476575557486489949812609881706597511723489268277805316068624341928127828667424484723641502197899461545270350233997030077825389440747131402527009605696036915356478991197311808041192585734821327379835253904440112092890858045427865560392808259439847384432082756620976409494762774535637998039077784560835425827036521050372012839960264337014896106138176741954386057615308049536325022082122247678507177839817089513263779978480510416287819031629458265718870916090838832165786513602826659846145058390330704296325381444975156550252989957288799497522544567952001274103731772721177070693155803542491238681324889143065046884029543118510698803295722914253056427594447340910348594391703018687034562600508829491327070186449909265172894694683061741107286540697819583683895680277810621942670578646651640070664946738064939583055406223239876275569322297795644231490709611286046949921817230934248152085454183878895470729124328520738061938239828048824621130670720977982297671811795943915703689110981031329791122103877867232015269270314408737447839881360991982834230879200388517581066063637212299957783872822990440707997356984514597643097414551206238786403698698622332874859487006115515288797439587242848372655182041836945151229586954431234007026135530743906561453792676284375187631570540545477337500031824694610323948777932348133024479503989098713090189497059070333440088297635381496094956178522334569774106541216914651931162687452323045678927620121018423729298230280884426836487285545509014312007377132801590616930708235984790331238879366161808058750943256853847410826301246373857152624576023842888452634664786704727757028721160820372392113075528503801161738480303256618390972760540312582089997170776706773971075099037898628443220651285109827793453184878183178716458613373097005024237167619787311975029136937399280141305611751924698525731154697868471056046286325969745986919796460332834449729145853661433696512422910436969365628041113634563038113142115836366082614752597124694336199910726238396424924304000361877554839008074078551391175875920918670991173203496288925822632080272565568943040132492386099225026455948008582444467170132793957814404533084710149990684221558091407308695606446490522090984748281992742943973320395127830613760438422730905262310150177421870925805693687613004828327623170509548309035755011885991670162641431076111094809994993838474207716177638642217938030504319929791062348711235108800963537084623088129639109600936827043054399450635815312599025640433954899703583725448291681669894151374571099927853701721413199079118321756880323321390999158771408303447610945327254967560376205647131647402846036468135560040421563151003621138169417417587517875304784494618525552777256359241848223740828908032504980535825361664061444730846916484806636687322565982404192072160037056713174368528850489281909677960918785541555454870925568007080266880231793016704175491414226516109824194475695212529321104270048533267611562099956967170122856621476522234595018293838506898110256091405896201563856175814381820957031990880589810046150066568673023776166152488775635246385725396850506679762927042588682369343913556026737695075050718827922715129440294751897383575816768693757585224129383775990529581548258378935856085155254227644336012296879506109969441592087871136853870476003264808570310843317641727231533463212695236230995467790311078250235815801753114290860021934022594457413526899929386406810149614652835281365230679712396597135756538048376013296657490040169242833155355833493312806006948354569094361034564185359386781255067343941508420101792761536782972463070516556394772527566710827976978803876521069967004644855470301102150685340340663097562842690687358143654722670138658289532319977611441994958860565798466467338318178650108982715692727769683867621027240027502196500273139409814405952055178273770790558377550388967365152383238491062877973701683195991798409167530340688714498776685863800025958724192723107738212593837742236429148844763607691573838131165505978712988490988973814033831033711916636765987361615680221558620796536937505095160137627699463239146981727902504157867263736495458808252656147748425088909745082785745630235776591746670052008912685419287862165187967392554682820190758415271297179734394729100252360271814183827260804149312551244367356521731607986120030497289641757445181955086639151901786573835144563939740948927282925629556768615309462211754237188619452025394245287865685767249672617039122567326616566204179046708577774542153161666989304045722571635438928455277690156360879092723333888390241407169820919138512784092725922154080698479787468372545810030507426174662644485801820430194974682207529001244413743193006198237076171358673687281196811749167479755149651298107138417331406028801092966452599656560395190051269823685243437411573839591487521167225552607838486633118897755398968352136915961193251285283692221705559209584548978532583785255431158214292590716187522986680552972909248446760450218497145724514081426128640872407706530661836461949995388919926320098371747532827557943371656530965412767680870101826328576617745610203340765237897988485293253654703867338860476572328528381835310059558761006286731236252817396427512634134640724272542936742413589889408799384906793764480770059590364269287689903697187826918073470902231129210295563744547035751497421412263942547542786187772980444264140505033256339871301802979746080159947960843432655249475522552578769492174717447863298581818915787452999194387188136420486726800333174081787173178438434349837709698323747842880620928762703917054050780090716637748445201133296432556854954204130009644502980379910795227926138870355875812838618064842545677772974467246348007303157065126988287391384149922404732953297544874381867028647771318276058176556517806848025507125626068022546781046135315107028937081175834686729427182299364608664771796812661155843982445672748239344598465306283226791243200492979541311469263515951398721670036984411669267539908657985582925739955107288655288078621497394937988463157731296548190902086856889359371444351014428512022573479865040239175522797596911924450092999253730446907925167535251659154137629680471364582782382877127662122940423342214127705079686829236098137252724947500168006691743427371537048481962905921424448127695620232008670134380988039894987378744767483090690289534194264977012045908667404107554317041330182814899818240754942671821817937966495523657684874622284378050661406699164555110175836449698889548906094125369266800436961120356266300209420867588092035983513333788549925199743339948536998675178442853936283505849955667697730409706920276827913148811703646510267179926734641467243208543588612526606551917781776842451799750107602458099507422122140995344758188994846243889770988439956355640282105001394961700217464801064946569242128194637518546632519182593515973159362289144213945945947233267028888601542067830163101395045308783037609940639616468846261641712751422663490746406185674426939166218792882394108081475787198376190962785182607717684108028808941701365521951867835289878469823911200847431594919223780701571975663392666439207870262993809031457169637675916383650506422499480650867718674329827689472604924619345494512388201116902885723282366502600939883161533161909574921190688488280669356055258341872709831450397753118126640737796118822058640581965411887375137097965063979509239342918507710560991167057977849703191471411215815093352837425970504579532702277946512541199888601103378796245667378101408098941476713005294667462257645351248947651514228819161756779700269265994028778700995271993699160371971089666677980181200569828120837527236036527125448991348513946764139954818763249111228951355214615452213281407481519635748528684050979059013165123931388992605283715291173037422115125926183169145005405659387302265467228937279435831512411554310954036806055169696678348368128215881818879320836010216182554948478557472008181598152473427390800601178907261320891520471780580210540252644040596495217887035974743751601814365063363021130447927970804942918125572369065741982114971160081238672020711562279564427152562690236073621252910477881760164380700745185605085418371172545254589528198551826183289293893501007632035812629232509925757407774693848958297694866889178722314199707342403976028231902986413880290736451079067536468022046504487548272272607384500765746659789850784482535972675147657173577194556857690840006285219592068364474225614248229956104384405259895027305430909006539362042535520323078678401844809636029227297917480878880520065673689672997731381776975994945079009232373494827652831668295144626099036880255885386373138887157160253132864263758596882171429204149633921243620752542486898935865701180167578001422024598636301702036843203920472649347753543430366600041994001790242808510409512191769159621611212471295074451834722566981846459220119338596685905302372881985594217629588040170245697438986886245059602804960960155977167053820800105663519415267561212471177072095020843504473383328154037581736101454388007086092672541609082245068716882296857981004408878930142353055871005654844997861692357550462968369242082925334668106776703109277411166266056685123787948375677447135454345866005652213882591966679342816689370944166323534820572491856895379475598489172060483900324829997729608747373972134760209531952951701289270812103703972545959581623548501952981599583307341315523525287272356932384828614927874982701089495725277963006512846300272845420912730092321867914022362870519062284455657638807010583509730964517867700585968665821130219052841827377905497582920588581421714230610947205724948625432777950033933626266905476389087886837575339552190270218841287292488895025266504506596387798624965547824772606527576298711939835650144954729409480312320850844051519439023130856582240778019762267449983344197603706834880172056520136749627704153443931731157473526935178946089642819351540628401461673630161775234526252059493042585489487710517400117419418806768647660226377021726294365909957228498495656271206664479443992469755057799832489330293917024279547221533039992348914366062532400793813141746933039806614154174377950381398539607537006639525933127955639178750609291664234665163363780056935462749016519548196208136047159337934802154254584892553304928248938809529667194639678295801344818763261535864384211088328182949474656544585403128850183858838959434560086577729005417108406047508649215261286959042830711998366170112261025673221907053391283170233461889584760495020768871270793249430167549991723259737732394163930254735706385122328706322071903213520210262934670991406612243523246136230606892939540577693334362898499973391207369225476589694464795192018506743209088856472298423963745750567662591243530566439760533441033475243571891565279504190141666063543714710596827395851169817889219063309918971118694543523279215049207315318819308575754227450055548988898974736442708948001713658940669579911552479352102009088605600952967278455971708208895731314413081985150789927382675572077557322470586919286440359462941793129435461873720980150175460105623988395714030148592413145601596200088036411419240183182527886931505340877224975642431880357064663677407713994124107813138214073053880131811221411834003945206638763281968942100846255917283143577473236548719454820234907977828325081570655778511163018450073224941196674734764788649328179873340534930651993157975441357242778440613958268925944951691125056411542730745710972812742896526303061612392962802337403507150342651420451408767113307433665674323483419275198635725773320141156065496344595112219198902218891966439425315916852511872025863672308287287943647648014585398979918611940612912176540277740913501283827850372741098362368704145930018762249060676099744779390938671466033204145282126042907601382284037195425364883505950050693180715727648579406938343387859385635363899066047925563343313914118975790814952859619063486114569914371134155091392015351501134530202634796237699439562009256063004631503781244404875530341430941670495339846401552052750867237788232072413482695145565096360905689240813185509365752497808218992509987231593044907464163603660987011910677136846398240244720361016511644281045996764083702522318381407024325250106035868298587917962019504026749902634614409053823812668744487416473255845895689863930057921575097434540170846323407406820682045910139173025155291979266196316287082079538747764325741113961441752816176258284597507283735932394032151456942193785716219147098466435411199058098317445339283122694272187652925370158439925936834472023222192553884039412638276873857650964170075757365113451548428731128342930508986798456583159591377901733107389590306435162209633213825760402861144946346514256612413260818409768233228344304816923003336860054831631896473013859068338220396186479706702521902662882713252339188432013817587411715989552574593120123161243021667963797239359451299767527697156309396398081842813632142036390936822176335665383164133366456029690069442767576695954644865498179690177718483913680764455128269018073951731971925729657943858311278455574225945763650227578443032267696687223651714932203371514897280272307967458576244150984711164770958905025447191047970551331904202886699952708623327121468425428223038728844805284860660759978291008551758821921329670788945394041604024741464167680541124821979591695624505166389192187401517218317572399595357206386830713451146046425187352600611546740385605338264635778271875068158205195925811403171653927597125107446257328429611567768072576974452884470565358965613015876235618970865957637005164864384564925788197427271089076823777813386135032408434733062220217558290458585299911051232279488064107426049126943661581754567846851250455991855683920718822393612412156967230265042696390897243478056151269544127152685231846922481818738680404406480047784776304382341571355315871506725650328564420060731801892575290969700980871504220082098514445408198315054869189111505376703739000439691686690944120680823330032317586775036881553608048219198499471340165685379300023615618323708488914828403834225869837994025453152235227158596754519194447267606451477739409309202544639887359257889786421264348103319584213824451106165974045028697654310919118395900202849337661618101132296410299169002433145683405919421500147206317504400422612882246646367484745883765463793184153542998069268323399480545651391135985436455017741047047913765987804067199562700922027996452584434967712430887802901567394547279546312499904214094461711365746102783345879665775503448368431702447039568371629735784972104448812256130090148994554462227596774867825791380365341575678885687357861147886750791364695435867274457977514042675433167507437785630996832327958571671778423394851449555401246654800743245739987071368388693199534713826430350064199789916431374735813244140056775851370063737995856356102067678337647148292030670524867241482737159379311564214059888308928849452173561104783607702036790827582917054467473353112434721225999721073241432467028297360834356578197321951714297608868332169904267691720730920342427107272302888586526838505052629799617714825638072336462861191307785186266242838639550941697171900189574229963971749773029133481170773618988037289381879651791261698333905811846718990173582568241192642064745462156514416023530399599596752459867475209583294201688239809156451965605222892951978277784308853086181768445016453678712581917594073753483310433651887151342075156283523172297120121146029237728386882280294479693169529982240773357400554692407816186524786032981325479817102141372552047076086421814149539229819968802307932059953537173731029117272788942476633558511086218102394317830380444337044458574281571346128528273321687878133586070280396297969855032350523994979480788835168100134236983975977315834747703702286129774708018630277177903938388560925152273977217350264546071267494213336274173201085597523248714949490955658763462230047609291112878911400634620062998255830719915461668615810103839968197441430256111589584493293735574992254443556971880521163807004550335002335912225506778686661021911566006647933239513825734368281421760204251747139351098261719667894067818179763251487908709454038425444957017319339053897198227930681507467087490739157173866677690688433895265264105208879040066314129586645258657684766701852632713670704063056381457312477260172137025472752879299099553899835223317968726982863585625741974332320432924542931127581189230105211140359870126722587429859126479599454526183127192165393178357692284303221075785799109894224333882039546683716431744405197017243771259709348545677113448113404682526735026688762584883227932179109019319699244261060455003565533809063209111718194985100015170585288730622400202519387921900609780933805413741142171158736130335154699986729303245900952975193816599744781887747162487757841526754892147772407291573877982981886661754255560152420221968055337898402044924624711103122370623984223013545273967162756938922306255588135715726242321718071251896884702484891429051665163485047523067047966117225332309748072387788950787442748978280135468760401736723812979921573159637328773131270549639843451850987983445167600508188008024458361451252339537341152687360592058729770728575204782196400247926818429756660021838800730687842216701971722982934203412496828082391389383023422022138438032804748913328727504632491492456080462743140399886780559239533683929687647647184155621650615110397409829607777207182254509387548025666021508987689093080182894335043672817283004726321550827861960146795704210753032205817926084221000485220460657688015727666372824451471062236454881913275113583973595457890116828354575674336336750751114175017626889877850096431017256389207755736856496690488423413195290832547549688159226215684386285820321030660700800310493578773384220304922749428148241616330963781473088660578094953545249440055235470157790426326211074858956091840688813770642819385278924694689312218243909560121843734532750840479033015190734789929088958858605632984668730521723723520519671710903243714230953407808366856868508216130453771288403681702602894482111432545827412692546527935930501295580783359729866240443046850383224900397161908685753253912198160372521865451977644390822006453076794085483391071680627284066279134952719204556686877164991453740900809785205085903062312108799685506417194837305284622577371830604656248265282517786395584080851245428862849543726584827427403883380714157063588811305328356312387586893726872113976549882372344857840002821538028351809071480353318807738378463948532204781785965173156322812997170759365156916176464706731583782555185730700361993213940022062243060216870006651131669334315644736829054365440789931703436562991877741953957854504804852613160399885397111517001325609819439429405461203297000586343527941656109161403219405808433636771645774622191724246115263333337293261889219459942336332642341017582479463547416706543153441665898309133176419357600826334804933010250969644953858160738564125027928739742748343089505247299561484621845896562007843611544629069943541993905587577666808915049964327476595684950508349626735308966524903696239763014782577689310030450112461248984777104234724375632977768399116411922619466057948918547360609901766153081158428911951580629020235617973318745759166166426756059545813937003691355525425276787376861477786885912573738888699456766286961078681385420291698477107374027190549365639330468765001856577067453366684038173280110948636385664108554600059962061305764944915013785965033829197763324470966108933587548661180299488674434658899516339311878653621863676257908504840835700038209011013570948956101994179181349303896223631384201626208504416384315720665805953271403237328949844653311799638158904894659753610117822679574987318388758862828998019278640945136305976592359961143700699815560413660147772317455343511787074445862455567404550885027440804950703377128215447485185501117281966036806890198118477876484609443276130885208358820859870076722492533675544731063287515837569955327696565835939931260080952411647527915832956911542788476725826908814290293058758230281053928415849245740139572414804298500449708448153475264606360071855596237232227926727449655031469866056449847971393398872252982087416358323978971264026977195673184413074092691983759416041409449090438565924471392261160153404431585919251286673340395335019646769654226870893773390120996585455747723991242830307775327884814275367563165262262426864598800162591817402418172846093046002348828766253854475548720844411807923801318904051718430454113263166276928396120578555426838184238400319641729898357471331519954642654772465874501124712055259789203515362589999923895559417038883715789091727840262138935327688219484421239842235423006738665809961342073713983879649133602089886310519017061584883383527238055225373083380327096688560629800636460815242217203974460341933243287451587517464632261400123662279012109826799992562083206265075136428919777321175615321399839793915727080617706713031929517629539433658487951789088543247922970469621237765316813100403108987261132786386760736972984066275239084127599671065595734312132372098408482258721909342508477946818303638550297100817911689850098577481114228078242454029507751109459745450179861350440158822198952830074168634576751707263510334328105289266209145420399973677836283566509425681392936277984690182332453574784456995625035254911734489145204344874424571760930226904044650925994887109683464998186651033375259041934493196987018725996003907597660575609953423487010476981420625947752910335634349274280200345509334484651843368290225541697302158577304434663860962457789696657911122956775216498675018408125457901194655806397595485020734398357749643301426059395427506408203823810279202808598574708926173033273799824901803433178658946025186642067691179867661729694721402524866367026766504685512219844487746688459688486557213174088768046998832230752645623735010118010502169799903840325943669753354325403537565504800216775444285483825906028318280451610659231480286804740651420420549589066281218519899424906586756053051456177600003305350012693118764218251670061560333169020960656518342596929927400618163636419771428839710306553726822196010516635530136566119907353401760289040901538421819205033605752445990529230480340879457471661005135422847341795753806793121420233519343879094314869629023696334879249656814723117114059609250560098660480378300894655869676029296550994555129069041412970126982361744870489018175960527882062824054082132258513431991472626270354430688727016491416254710812912909108474634992627121925453582270684284448652528505089049378053374515219198726370361859549640903805322133575328151540250824704259370154500717166636423797167853963584120903457496016721199028910288924744161697925216531414765410804384604928964132310901824735172500501304281775417811158464069790694433111262826198274656537489886324970738625521564134554205198654888625379754137536229758314369700379842483681010373346146284007095722310522067224941679812681655392256453484694059279364783973981019554309655059483366723028246580573940442541129122078092291755340370630686665222037581683273775017908256522172825155776175611424030995712555838353833458479971712210028854854596147466275213997591110801479606873304408628687324347083281195049668074066165425191770728538269778730342212913163671138393413497735370731392410918266120965113264622299320442196049871915566917106725691526090681331337601974534113415054093634274825498603433440993887246990300985597014394225981800060904566005991375871587517086692897947947553535942205446388296275130284453032987835246529865952951795865859581246087726759937884957847136529613489673760325047969953722197561959863400487277146633900484883289302610730399199018679461225028503574394493804461891870996245261481643696119727785500608498395722644824965868440350721446255186605413457379381555139172023282843498522185676273974582192389314556049314320840741338024196694533690735959137490473101344306323418476645279922927047249136885482329186605437300944815456804400913279760911559624816037205104790389241217231914561567747369312780251758122250902125981582908838426479890208251802354885515662717896368675555797771262489945350054133952725625647370525721073164217412368068343067632478452113960785332486717090899084407150536554434546728129766767892740332385071686551186973787320728196779697372203414990652659526445978695927296818777567273942525533372101743389645829852856161841774272192680901617498794255885132745021038630545944651000777474536676081499516870527021474822526139643504154258951020790472419165824220404823551401619719552318352963323361306783213348878477901399015730307817917208514777278144063354074049286302234639714510307976325100856368470358764728346317479557171589773118862550316207375510321073979388571174611273077466820374309341360927946651497405698795725775832888663693784207854460846052967393888515677918933798717252634051111671916733195607867544621185370412542678360938125381450026536803383826052521372793241048781568995770756627984123260316728962521755846123892090267678065534926806599654534946420021995146325369455701355651225303904136533302608996470027159910384190010733375613393135744484422521321793250035116490838898473415784787936537775852559707561681217862590412770921471752039367125285040752922392649080031058532076910816051072610833580495419689976972176277169246863790626891787037003334098777098196034696218670779733967135889786699928040573860665014566953068385306926573488002888779548529314028786422483135543472357891841795599204500250995882330848878525382576869009199635138519263792021806603169439058173516723650039704295579276936839609834761573104536776723531594716583925413624814747581550245717790966059015032909356395789349058066863365934986079738386278742092558321922269285580682093298742959348507899593106690347028766856232048412231684759758500054690272939558082302590867876956302618825846004627270196663652860682446944326985675658144779907763316013007724843153488061727589281486032494606903760665515507070357868472169190403075296731756141589998714205220001043071940430144143157183305046307176218856214076694807483416187156114314588701160484498653374790895076816301622285015364752473947276827262576837823483402908889672175819073025966125717171867496245936089083246618118265735433840798270921578461451294462764040810202392356165846309277327323789472425148119644430953025369845901718532600707670041374338791300638363688167448818133321391068705572607322112828913160649133451631021154633376304134910522817944094275903498214164849951225633180750778055770134732916920519760591590253069005361816608524207505635410578251206529763951966583730215180939465621718546537438998226519160309905145052953981783935954211944322361487588144704343599151220760742479958826959248467962508053341537683084709627483276733249478378644788250345205538835275364536493643805895741433665089544261916948762510247805169696111875176283211809479831445826114563659777501157686582382811376297201758676837177187487868276024168167587861995340288652705028415134868050119674793482777980661885962956079831584547558901214427414711090474385453344716775032990133403250632795142089641332269037099616520604146468496363903083612174819657404872755942348880780204223756374995903151784869293606867380248232397630362353837769766050736609108079398291191827641324783892965759123463201316855544803069093548194311635459137095974328424881979098107480279296582155570270930829330486252776117106601254346860069191071307579008625304818845921495002518165587758839705739056011734714620982774190732603669910602452641759302895154909907599271720772033817474632797169342221377381323852337059572168426666193266418366599424696698843302149635699101703649534963177548395727069376826537670895999861219837125489111652973883774064674461272313111810131234206774502573076751483903728895096727914141406333767848825161664752868134390554195648570060912153216065278300200876467018444698946553652170126740793911060502678774367619491093263445808692419291423741209468434369593936469570312007181159425218570238456941464825042412916696850390403380742352442708348810177187063906488624710414514799579319447128661338638557120962105212778083953776684799819285989513596148020897688150436400605894975707351703546412163319076761070177149759772811749750089766714330749932432314491237707971819817070445829713621195973669292244838521707268469695735401243637219111280622988365133337101838665350373775825734440171243645281393971365190001310115199314601499046670292162478792317067632810944758808567277255083571743545045653602841752766580551231908978547122841937289195496498308737228980681177209286822601500432871844723357798518051922579485961958840275333455157797241292957572955418850012555547245648266359005718822518773900322984941568841092478067324364187701999691722423182220868822385778619681449061706869554002071727441680478586832857920566502174531115933001908962441612773302823349506803049070505492207315451515257639662365739837911975535238702414756556252793771528549437336225137571964192614329336254398060978402299509257591199973744202483082909312857350701707140273388592821162011097727808207202492411186142347262162890022216439384171178204024147493416118546400349499804785364993013541000099816284080689259447210876843059813340271893873670119470315510704456202759828233959039324691177759723570626749552434839817296690521079066144181284138832994049529424204186351336187056624684710133379259557675203271292092762041170840442408785886614836678876443482342646615587394652035309316251089843027167932335898572398543513964661796702304660216878396596165360534255174239957913318019823268762402092657092870682554785598314804326779493824818637430853463239959415113292704680782572540207042132755947822776846370080651358726624702170158770250070347937584903290623932007106581217061263885699029959798149200214853060195964581515375837426724433420481383864818873013577092130306397403100432409537037798837948858941256140756752709360596439778072400898774194730466448664022360299123404484000939878637413104937992473370466432039412634303499425362400071964405109487605808639508563812528681643258261070394974491652711808390198009096619258548412184342363796758688151082559182812531225092102940455951107296395537731261400758931366055620838212185109212167103409517542097846318107147356016137867830095203621577997590952481985694408964551531731434115465646418512533186012582795653235154821164284998833970007775119492357427287807212613699949263221556357722168214706308588667594629525622241675851455747576570760127703037186415275288099649573673251895269654904707931266454974368465036083825793956232087095057366285853866721468476850247092051360799006530164201564804990724930921812839563822175759530897021475666670073285504433613433654649274546926849710116531178302920475445234829077044499597524936881008775368944221872035549778268214896616305388947826325718913385689301502197499371214077515190583750652876581929992844173743075761748963275626735678647681016761713137765394210602307894823050422560140963131739006024431816125157131768797802487529177055855130663382391688495241782407967616191379700652370874833569867676930287015006792933477597964956896418060534097775501681319665610164475835246148821683494951546130246180376694549434885053548010842390260544249870704298667205770482067051047170160102448340767951833889580629362081554396521820685394831965428461628978724628288212294438630682568287495723115241404479204681371506095254186093677175834052659723311993573215898413135390236855938129280778100078395676913128709167738914329851368517519092535984000047185444640420027674717074247450418404003906218638975274227742883015843021838051915629922597570394040576572035305898393603467504727583255510400278524576577638055798249408184319118180947499421231739032757124480119881453129421278353741931548613993150178205205975136913377683173094098756487147230908369396164849950860818832875928640891238325689263008608436072089050340993411277125782247127324061226068194153175155911545603381156829122169985765574765056377774909360409178722173308199012021435637232046021849974564212835436059783675657226620906588639438053297496391546051688883145498810256564810261745722852658869884716452469098415759761653612159022473238060843730020672368298000918457338142445745844184026861495392777102036808748811775739369021443129107743202106111308960633387985687204871878253097506721080582754804872446536451150514559586737463325748490053565184174070360733865557588982606205314840037715569511966746520613864529112266721055220423571121808483287779329510764315199432043343380681261626819730081849075400997341276857536249938274877625545976447043011635284627037417082880500595155172684600132046003036819089555372634940641049240942556272461513099260831806123925465225408463233678778022019969777798743196930127580644388445721908590144828433951525107480755734815526742723418129107978608249289530231828368231328168361480836101858823069678117599384097485204465406109279524290628494752611767207059343147390767545940865959348789150452843391719957659934489897022879424838544528067214769063971468826315295038789550972096317951512493147826645666901302720685194328459209602724191010180329728337316247661286244750036468751512910380268536415897858793827821951969663113170446012975968404933976143262620113391151487299057396311616115013255068803392891937466280671907276392560574930286155164119955220705757379570235377921369958665010320282866284475612089836631323791886754610166143402493453133376943706093560847256668215288663130126549778438998934471585834666221179999684829620361164832351913814785110855167530068789816628096531554266407276799693780675161165005472354336322508342012096546120707740683567775394833006284507720988886268943563035287694555460777483224490480549152159836827518068192327240063738144549277378531492034045462177898463520648246279671152764972089298925545886365707543924841688798608439507243007122205245014129589564759340726329612326155657781411124694850886432376472960712918500125172112785444468020247439269857785053618771387022473938816543621274822132195595744826552832379608839693093324563058673044719969593295392019070826371487848662595501090805623204227432595519810032640931232457790388827706681028600245763446990326466062678418316624546534054035495486398338455118332049231854318754555151601681574617590436021417009080058218115357581424606996284723917824308922530866167693788783498005074157720607000612169294522660504675547776139181643103464486840063502218584831183523650209045026856630893100010851694742641984238689756466974167883043472462969773097280628403216998802011141919455875361747630797089120583641323273548358168338992677679635093901461642379362618728774224511194815088488784448821783099014306235411659955673427450357741229534410825364306277929042544383810049727559319231050212923245736398563620959572044931917063547564571383458967697022838185636403072697699609743815576777399907419385920514828869288780415028330502603515209757612112591014587403183101854486373397984944075617665344573724167323176623468713512922822157563161357083924058392325122406868404617854937410774701753893669914165756404470169248814063871760532698639328905324165121488311496685364571030096644769954554129284990161110508402404653502432414065501464934867701688646618584406825806758387160543842854109590087488121393143355655951339261073059609101722195518085389906675332680624490920826591851536029187668614824040860533783229441579886158470174449100791954637780182327671278804339099679095598926126320120423465946789975428724637964222657054727355894876136020415848707385508287501427378230321983188835047266188588042519053862276315861516307615053540537012084953613847287120537505115706433277529387685602414295697032019175193963325116042557144965406949747443848897597875249672905832957224447903656429140621326832093931348428289909158672924587982274090416978089146042319410840643608137802053473318177761781417106705476446690963725483155390240269490735019889413062976173221821042074786763771171147025193729881861560698573565263010074937322829120756813210372838779121116316013429042122864278375385790658068749530799504241520279021126963856841701748103965010445364096762132553045756232982601518888889523232015053919476090916373030696529389025198063008032476025948244432434210059161510825912176025138891011862056625531317348036510601076145550862483183278255640075926198729931047822851878866819547646746631195598816370948698909524572574369575368503576303275874184658294318278630378698467400323824446900681684416682984833212785634968150472490590356038661716076925670084111832577354560744940605587852146329066687729900621114488662670805377761806128425077264592621222029197340667016367277800508394455885202482107674989112971186768626978689818645117370244477035906320346127998933346020662744049707557430249417236625633552963942044687445477806966669252423517751566595421144196134236601264089132865201497776604379593120119888240144325439491112052094892224183706417567325790427504118871878261410609788626922018239393079013804711078189955787728436370482422669625509987832273529688828279776441653640330986446896242947730338956826279860726741401655270950747630292148043506251509824744692728688350506020504125471902421415127942811262262776984849536301860731255246000998180215324366778012375452125506487606188157644827415181025247935906433852620747597671336312128356770998922297040303617648455935167359017474273270180014671990018248503695627818485003226426369203885688152227133570337856562509551011375814545876500752434058327392395532584856838466874915214187564524041856287252236168902844433136407108964844723917075021089422953470773727431940207423813436950955586898571950535212805697798354791218821102512684846404949627308950721789522011397457481137073447921301094360872948377738016389049442085531790651382092105359633048836683978956668053112188636350726005838134146275172395533925034656556466866294109782850467731359371556329998810568613195118246413816703290383237970038147553030816945165052526194195634977165635222448970552080671121901105431765642773633777298279266750596104842393716133114638350995589471778416573770063037781387411965913398021147938483259469596690835799616589145711341215715559741694382100205042140397403150052011808160160249539007045661255873105348983379967412773399014265102514287804170304067938693389787630049562509045697070479755717897308025894179507479941976325286654871173510699986831674995515912290536316337053489105417947773218488544051453104398070579213985826144223584090905310984106218582868644324818015673781096464811888400383000104368982277333608569522605035284792843450174556292471669619785315174316890748723012215172771168502637152923580726660368260437119818078711802580602460874444404310180153386010704417465406174156639416542355288802446130106593069824384662002538303170178670715567324235195772780105539778071102592138472730559099120725958508896400906619588005398933294865299087602311533732735306572819753162535104579195653378879394196964416648285473540602656287964994827594304171331466289294080448284415466220954484154843073133287314249023803417260906344339601385130632995438174149109759004756984417373948947200438283200944880083214920798925432781964972070086218796664113716604639919517744256633480065533462407456283798072100380450077781573062085530322249361258238196166781818906654857101793909763737344075741775578095436947426974005313993360273017239084092372076917953247617511907520823246250549000165807872277976189856608910019938912891762994643607056116767069663350708194046827025061878489521535098405053623879554666333389328878457905799152564710589360030932884326021395874030128254430867672018848008763243444213554478794259914707503517208532943802053501081683506377527842414132576643380861478385148070141703444255553966501198129355043637470085220909958415416837242758555984868254571847330766979631903276959127318525355403589194109245658381257848208873438623625550428311992480443548123461248729520124830027937018396995941615621297091732202097027035448987356921416921969968107618833473978684341082461159888337241657734241216072728345689328076978412441514300649569003218692011385201929432025826738601210373465814935808182734714285189776273673270644211385656464485790094083719970933113245003322028137589739593786060942934798654667307550772276573342814066883601113240129985493510790877855228784263708861595828854612976588526192045776588317979828750993617933816603961431251849217969387674656603147152312118650822063818666599237039656808611595674931749680011740230343429175193434731062711360326027028644814776408854823232708574629524548316511465398531378772346224626983605509360646352448328664848242974963806397884347257655975981952044409687264370909647925388209817806906809642614040156047640714595187842504802383481564470753774168251351208707485507069927603227619538226955834856385203332322861245400312437085434530881543404706468484257233318962345467229645971366639567217537644893567394092656945113343726131354736031603486962715651829496472751663260527192635127709450104463763675874310834017428829830874829243333668686205056240628984706334761879678785399288041620525144870878097044609335257957442547424112547505054606761560060902807671123130175154595190354816496105097280311445677955785418721913157893052383667057568654910694756292887028264267287505756543151319270458906781032201540466674391932937794129858050430653732276006620336585122297556663066706381962651863582607238088162169579105897135227612972764085840685581888081537449277109453195871455832077617523824160609405212925752950314360176150811240942351297029625732251384190643534075197586415732508707871304914443054927386983870916168793159538518665135626957229428935503544224097396636150951002650258450309384336012814696822397894747952891369427813500525204476223096886535911413670818850843262900420085644120510885221480225405172053455323307891174870954887478905377297336039587590689286713346067967414679907866889646038994015479512070917272020871511570711498826940626349062776691003972953549972910627035138977902123554509189328762358598918067329586441062672946256001139738199606287367770298220758048242821181600079052188055567914180065657692033689429333145521182544535527171774892082635528914262682325679636642817804274640866527374376474227426393837182414961678379790467619709376086951848161548060644344049833863117239043483126412879557289646939092490276334641455562425778369957071364587777969078649845202886049499385945324472058580755114148663120245466985592855652739744063323297709454554810013569148299983765426953724093390577731331614229684999004007109596857237602880831199161351860998209366615455427747109929702674670517482280053014580293616000697614837632988385604414637906420267651380383893899442427510429754488586035713075468448608080633480863137868196477656118884962025269346438091245135526179833997419324207320490436024222826778854546763358954018399803175394186672016395110727318646653639291458003672235933851439331318936762479124029253834273074703827270122506736623905942818308722706872185647902894234663886930464976615705209246490531139801188104519767282468615171433785478328642315726082509514573296512928976686043070522253246372617463675786792470808047313292820846861981299651075337520983729432001441521554546399426078562535320702519876503263030004788077872121628541625719536076495292740469143750727739386840715192241550045817499604338650528334526987519946806918481840098271187665560449097762892539989081072743050528279126829030480976528065353917953649500143530701119575469903660920209704207769058114775780617710888920958010211478280871264629432553984852337597011741648155283173169235600836325070385118175667756161991964719947743651775268686334237628747941776941110871662534226086725176233738770763664903467819456892150858896460887983220018726303940940386540592983643794114872491645638889780013237917405022892129328504074278110835440210387194765321725209414509177850884964934737435229948230377252301117430791421057131226569734766014010169911783311390546885235134763433029500215809991033434295639752982758865217985012440303806383730941800511537725680488017743736915313170136272676084837766454567918197168895469073335686380116746368862278162547078111262023952641306299822294356944540677547861542940768919809198722496140203480274038997839682943922444218145599979691638324383754927869506950435853015685015700170772605317507100921751562017276654468839014617669670870212746673846616781792475383616997725771378279319586749714257512400101054090461422532792395288338726779829115807963642988902023331832042383029124710302409000269470178290800866162195358369335990890169296974979588106555449730692990915387508147346792101834290063439259214828098561374986214513231820615617445255491315872705702672659981216805067130226465840158483405113680598290961298520876279357401723216105538732538086926220959013545520033408194124730298269699101773906486256054322087061630864495746888244779256027447437949178578445946369853727489791559389366145620269445386208560471759159339644952034574550847832842365944374691620485116468692436020862598330067500954430805668757921285541504806452512032078404365542508058968369318435032500873933933624700112462384922855059999390904269044205180069866184245419474395175464346768477605169214108672168922217376703933473492192397708389065920812350157599096549097647992212043754539793813702364351748984307724082503217813425519491724204865397724659022723287362475762477701154124275122455350435419008761490411621330980596086994954170895141157977924031797241354265731848301247061433039080872684131075937530609671217316127890740860305981131625361780040252755932899522963729674723441393295652831873434366158129425824153164936630661777634314318064740657337607857635316157281384259800731182411197374826457227803420697291484030457751055662008126456450220449771889729987084583785570688930498681268471278192356966589032308662537229992410875422364587936729829958762769523993821599327991563686905534891314790541475477423011752811616060770753823084778446687548079599314217838714218389167753643996904557959258585331831927443514388211439315724316193379552187399911394547005888742051647436452467189379341049264808527829843181813788736371371181959572513916348561505560576139157921396031747768044005076255443233940302109782607969448654802063988963667603068072386659749571796870456493521724262730110356884943185646333442064528332521591219457096085101832062438512618832916053644914395824781697559495441358754352883472171565065143513927638337582896322566115833847655073766121156745037836895046798385926447985509952490929518611948275385464628509440107436599157788043465110218900999349856363123099227000949971969559960077414151674658908078317511698899605065047824908035949013686976116143210191791582623733091340241243462630502258952601618139170551375816182137891337162736660305712436895330813721043031251664835590777744525108817068934218206427140119307418278694640500954022607013626474933086979365508139261035163999308308965131068818237222092584456485149757068440541049175388363289723062776198026042842355141993004326608061773478283760580594353541475661988214198551303031567450348290639951886700991346812226274973121721255499828078777424077537155600694933759346118331292321601561990393489434280068965965084651064090242876003175961124172078671299627361272610142403614579562061362147391350086268121880345362893858549426738947015824209729454966193196308739629548625479345041074300473931589988507959757892701066177684645987545668333586661610554337820217236114072320513673445502885120429223104496217643867435284092722841854535043292331470869645854349053582704611540653655808886612524024592527521506902497998113685846500459725374925684104378673794041110933072681703828216188162438017674776085262554816645313703041973358857959832425131198847410939170605467888291447485860250931061084451311968084463021096474324244050052467698466856688912731910282607265137129673755768410528987860851941740186515100247634120084990648776450562392022736233421493119127508352833686599236863290919619099531392890637458600516864168043858948100725024172808940962654766705894989425343183874411373757900204114823365580562777543331327654789822850205158184714372598797526205124010441723841819778902582904844298701786616264788019640212400839441076730603678705267953719292215010953094894156448480839194972502836479363453033777372352577879468702474635504950214822291904302085233938587319646506780175411952636130265407895666464498404577905590317996228084023831772193072057231291293759269852146562878989130521404903957692894502039081633380556649191743507948998378678468221896704652411322215447771844974632573104886266058260896411754922874989234626133212627194159347182561346096187084239995233945723467133791967393535437041012950879510150880835706712049584934511881094363373839436700618713381634198435717880125235672908125185748271095188144006473345388791064013299020323718530393794668311666015971900300103324442099422847872622774474376404087000195586521765072469667956651626967598023449872721573236085906637127213932984554510310250664554249444058736745630791607017655393254100250871206300445081955551559473694040762573956622563175903198628627249987932949360575996110280921907189351178500267997542932499420054349190308914186203507157412864857920715758959619162553605896886010359555682579913205379718877878895732687982903367119195394067715902664652995087988048992111349159832609527531557452609600016511958893939425101138161675638106817626818536458085456553870936467609279291420635118112262995420971628133767196868221155618812267834792008526757503275271821021841015892271493578334719057996182156532041355904456085100932647726603446710872305050554339163166963036952618519146582618651502430999476847426516643824688678893225456391886734445234427960952945803393387218498373145644273459701847524073377060683022715790837821283914807915733819866052992713490878526303844841430466033160031573438085328904725471566910569510807124913945186379880958312691980106100359611868574632719714002879337977127098226131996564985128087174789410916379403245542089315062788891820042668448037394689639393923426585324103002668677712027343079139900757296397184974906449815171313187980460080674558152123204070779285311601728273173465682024178827206585420039207031806381511812799786528418003486951424511308766191958405338734479944154172795927175063437355386862958685667360488825707102145294057974042877925525336977577420109174163903089732588664299096978485365253013340471495445232572669864465076368329039267133358593125782370320448846018206162116820828882107103063387058830290887456077742972931405311337821351595945224909154313312419320299200960169646290115321702433657434031335232468725881346170826051075937363016899607888086773255911091793205608275844492056556019650184805673676856709480771251339652819978226065802108180195482708647543596560807803171565251005974952058924590115490428683661453993028992936172032651868860616717894334342105518862443812173241112630206806773419453745434672707884703755672540097083366834213973283779553462919332397411444986540970440277555192985312593499693744837488106996751503193089524958342567667972903929476950025001398281760703346411010780318480672810070682753673647581424690141317267521934429517743389045595122306714939820438352736052520463258772976071028556014897031779715731557462015259088952228387510281837067430460806768543532051790137223606375273297227984461310107928833770582361377314905658135439316255967324536453699781141703654787526662430839575970179480502053137711254219649099190149916399782745965492231106920914521144833133568750061250951209117739459346120176043663419337293509387853343656505119491711422463519913736322017179833430505169421871911393373634701887914861746139126443920665152041839080349994933033343901802062837197860855510125854998199081009786256978661763372816381539060734519795182537470355851137476827111267357693871191020654514502762870729813345627687566644683743808080636201907771684294768698042059837453808518644283623351269893115893147174623756717974148712729175941420685058372775831241388680025107453362011797396451182019917228851264350081704090003231065871531719684801674766767246760974389597978117740486901798694008955613419096990743666185680795538455448181593845206646097343042671552461817791708878668500503987571080005448970861417406078533828341129449532539625634389443747187349311597085397192566371948158328421984140372843132237475780918261734541187968637828844343547752168535847966813420452267082347473577966996254137106039074879980226404854516664773574523068663590951562023986143083660382758846004259627576350869670223521465583944253742146767020980828339780596670974920190612871096255703854043867060704264360499798731847732105948483296792318554748761056406179907367208414672256760426713842910963041716997816348996156578493288498518938406553520851296066511927804141108176763461988226573010506754551824790207669463403903239094019881760433157340246988733536101603337577606533471276529225468237436143321128114489392279529484587095600607070155549147706708052084190800323036458544902834141641574898310569348869399663498701079851481341138671306083047396694425801984804727196067230140382945342314027749202975637429454639294919782494481688859258602912316126709160206198380373105498406895827796885553002175191292236181021891857826856037607892942548629531368445824408871781851644353291546870921295203411800650414044799778456171030237744845692075614255686888214675478629286589442655263858331882486423206166888815384432742013762041793735163806267923394996879040813921410381677530003399884691413925202457878696649075448084324675867161050647229047311101688401565437645198048981516047000255146194631458906409888348107771302431227161769530030451921169310899203124214231671051347651877661369791890610248342314775166468876277067949206481978111877236176511384141223665984753708874391255244223289545692318586265662855851836541999088638317658949443409346096473379440651741031626099856395830346379838971277866135421831663794549905479910817226222328110620918841809980743170406368288232293911073341119451862203060552089363220778249476161777585933712417042611406976289411199217645892157834745230413497959692981979345568002833993578135894176905449781880873571602279456911939953337796473758131933589839355475302364132966357556501757264348112455267587383227580135758996051174292773711557388957676885289492378935199536959038483480901642753672816018217302096014095492787435058549162279366057924247145405211269549253387985302939815885402333989365754252119714213687382106156980580705649290260810909697599872790615520441768404464582935787431022455826219554733602632715469463564720320991733125762113498439580451647365311844118015501671010000979210947294958227573826118833123844651423069952434000085055396097177091398650319254138184614052203024789011591094480920429622631163410668866902649225250572396734882960482071604901329806200360925765068994039311530107032383521624948161676083932546925392680052548424352624239096976720446232983112683169255919723899816904279550878077158395102556078336669107227804750278562090275051796171003796717162402674747190271050655506429212726558207293679122408007230470559523826994287068933518811688653406730465811048147008748788847191311145627921833817962731476137133546918224160607734401243857301878402137474562452690905284571003855334004005013501223849352395576767216821089809832119587012856019343111225514787968877708902740370172554604389912053240933207209245812975062442285267158551814146682125978271754752760228773932299353857405783157676051872094735509046616506483596401755925237096664136604689359593500091050200151584665830087832053278393372147773480973455091763996257204743896062192945552556831110809846127105406773637649560370500304325144664577590669786029473467047929065996002739377618369802540356796711104670198799266998931389554712663903220094552625606314252317532213772402443294107829294344852785002800429346306388179237525415109835335323616571661919780434171051598502269677431303115169108793825630768192912123011955352794494952427534890046740083793534289337721051883634854037012721233534256199517346043838947200934173850561599531431531882960112478486881460729630638498978219012182081730583155428474169848087246516596022588029291823991721040625603932163614006212580818444741148742165720293150438883760323821298862873074898324160538006821267093198240816265452249837860378162322800609380363259986796712758752209772074164976003671715470656752573298107640221374344132203547321685369189881546096914208250092776267222403862021311015985565584810011017718923115019306438148832022695719975049533433455037596745882618231840435669970987699914613688949005653217026530029566057216346577411993931700051237477991556042709811506215718110545725461705640664561747472874137544026912409436436482583623818447044776958959159810321012429883363764067098172955881316914110968767776921062155831806524056356434991052092032175093033232545453906431737131717683174299748134348625607398108506023398271153274383492278890026273925632153363812539641322546732644753286316017457020606155531770776583437360816637545179406135464557887251447761063394799169713382357503308336779781969386441618058071620337219480624005150663555115668293890704195180333231631528676591672340870099880891849099071048484792209440437214705195477308538088456797635024891216570392865738008452363975856551225207333414536075963771535525374808690231086781208625930144098883891431548040597036502554478221487688531118900856922214600447522397399964495513265699632333431059615596840191079115231064828234952176755752776234146344992854545831735642834022765873842871834760958401049443104813251631066380326185230618078217559457873415924777770753155445308704754788274773234330502713448388600481588429044169815506581606342598011043862745785580156436857439853535496412751146341774269416934156368186654250826740251858493364737828532626364553089720270219445759496429471116992934291652966340461305599772225758294117498977513004603518521986265354895115723090082835442675905086713188593098953354787735311489948797015802975569162216481637548136620833823247554073671878735512465941431294591107046713097385828466913131506651259574541440763009530969133063965660844464131818754517652650971776649650357989393120542389480083827176403181748487966137736630778923652775517538291372858406399695659216771631978230417519359365776243971083316206284963654301696181492802448979868340307539255692029199053276436693535505857721390956958884322842899451710867955737623001647580978088561975882781830448349240269553346973362317530124729730975150590455769342314859178801650003001356209712962593578510507685891523564768789413619024591538891723371169044411820171033518773716462520945836694144738801080688618421646798530855805232726497089120608594689936398274953538102277206184350029044272050236684239844261804035061375376171791380122512593268409996247181151096296274594995493123613420986780506926085430715927131148667386101888232500161320663673132169369280400096264522634636370917550195621785862538457843602807897632686550789307321246504776532192850560487669839292928470805720742681789350011282259885022118169011881551398828500665638977870317481122265155218600950374824309001488168816545842002877759949147992237442355624413738938781925965331329872423799573949931745404289407090253447221823341378791544369401649480424654744070431197896819794022218057527914170744629237601602826521836397415119014440949046622142955568856668517116843074535236397558463002877167812492177391467820488778232790376509278093282747449487456041492135106962559872824097050175279559259311221320113080954485484649430103010191133825242449492259827182682524991193053726700928042850379880716368738511288120986152881794342128485897514469744745509805174951874144389241976427979797776101536914045845645809033049589330781462021854335905247903205899191751133214310567809734834539493465668452618613138043122528024601828279883914584590618190312540857463808093159728149918287204358192521372716744841677379845545452888359525176449975222211537302073138068735585945725065635541800956928449880053284408857698856493678686930229455814951872154466540860306914241585624757566964378643864199162076565952352408593519078551946820239799816609116860365415652612428076164878137031072142635196965995729941907703417337865636322049960245990334036954781592293586366019549771705017711929311002762237501612477474932660389025569531443407121126743890600271018801696256776661545346483445950399809301858010712142862074748019540370002928619497656173211141956330344863720942546209578243261989899427454155123973745020391768946105561108290759415189266329451722836974661414242928875669137398398538385570464018592452386507984608129818014585022882529630346497753412175530248770339510098538167467556588776352038292409865201881617312873318702665696253134180461384226860901077342167724557996071880560621280187543882011004126045424339952357598963812918604615018925715814251469575846016795845877888813811725552999257834433545058364641245171365212738624050040917731994979418223830799291663294168306667834863130373230050650512987494752066670874240157684914280490374915459985729340412461530480165579518878774721826405361732311209678135819435003858705648686827892671530173829253091818756018190833364596176142436359034434059127348771028820462243718102458224416327961716184604164743579166528829714869995754675020959898154526294564338172124997602285035911740569253146348808203718363447642954356439922074003092099711897966471247474733046461605568196195502042912340979461995851662657300340123784575626174885707736611697670771375635877049613055897551797393793942002921014219452848145883492858749262186299655294224877220029841326511343011461615283866608949343719561312177795895207589286345923114487804607031398456908844948345097485359473426523872878414651546084250218610450308811635930876043612443509934186074184211601454952370271470902761273779628314252717622570454163620274760330103725656215550708588022699149853622815838720666977877766310282071377181912834445301618009861368204580908345373793858503363238476454147006300934092292110847859169102465755838948397901643539620443507420395611749611495180584425487636417981653264022648442418853812261980625526203283880041618175309420590297687255256763729160346605798103538330593704811059597969281838451512740264970537532240944466610808378886805359616172884979487504269805076496652736712985056819700031056009120235673371073494070838922030682716857133591467709259364129623433245468021411150570204630606134401806167321705938014415331822886034223124442405466088857114839593059932022433903135858274480255879832144079626755614465253788763466080160375129884286956565418306697503391093970274389434080361221255350556769222500298288769040381481904885936295893593589475842102751948982849438046117931717765231988965950348775856927516153624708571377843445411653336635165632057102738197024548986504249920441171891379212685965453699166170800507044707242212423731235892573040419710885482489155805621608680192717612958056706205527241266664859030835073972422267140283083309769903304246935067560364935088640057719003756149152891591373559799057278712568992057034491320631356815386206061125312219493828649657621483229503869806461284469491695495788676531394330492483137806549307839741500376161762651889533249021797579557512227535054843673102108388277472395251961935250736303208880181767542607458750841862437739201066355558508570481256357636087535404886029070249397784037947217835798482767149997633769637707823869842799864633532920300581113484013553857168267392002125882290877618032418669756266447646877650245458124597151462486555961524945730044807326418747026173566875878129884384174829199908662929630334634346966124701103444184700161423129983541728970871114797080396836597767409732559931653757266184251663624612595297596224571037541454830251634988336128025420946816249522498478135216104218076071315843177559477858454974873183296897039003231897902947581400525452652158887644115835902732427847525586297211492819851785234697114867013117703457635127317857873600343113549043885841686234914027850216755152936419328195333622358739837787517274275863438184382082013459516154315625149695931711105670287409472635686868947024230991874498854068692021310353601174461440369776542733210124682094831071578576748755269010687091898410807063744023102014853639265899093104456604858937115739689154412305741132214071939726700375854915609622161901422000743929691700003622223763068017100534033383546423508123413325664294941757938737655743707232403046836357710704174781374429874518410471487926360229161863727956545039231636864094609479746809465578456035668158212867506552958473794537032294185740057095208997384631236805910043727678798318212818846485885834431214668729453047983863893958078039963355478234888931018010329327605786675830818031240794403584566728628379677251090721836773338578929425333622378493186058328980551156609375192956239359270563310272859704925304297634377114376606177165302573067011535964945928523437105348252591451274056147814455670612944823483916454046671574264540012940316927974253828596223997899339654488461468565626023777784987670571149621778795386791961874161334346823399480780221431240651101646758036500123296595081774470697000560632762385188944540579067785788769385119948637752351177351355957146044475832916601672984530498345101008264350351563069547761470387479453441778839281112770376185712690850947180165780965434085506768357539254395142525698570068770632192750169809482182808512478637095614222526553602981937892064490306709376743920525299418416878099594744581462330265575214607505510143375252926174671415008062572512816211739971990215248662273760902446804476418278905287132018716047215195873256330934515046853077269357030601986201911260865910809687837808618065804158916295319199618059597133135874509639511770069236335299372777567066965147892227524576387907361817123845447862542239819673582597892806692706685649238316010587341804120339492118973249703281871147511815264073863046942028781188189698282329072612911328647458988087023016385925467497658528096179481307198533141194936459186536013677185130121658418140449154531491451286415273470756568175324024391536290105871555626942330521632025977899471701482584657675473433923281584350659336683781883328284845466840516749500137517258805140618326069674139257844854124679108608724569126877432868217489265369944546903841208115750176270404233904523147716805660031019810950993830052858882623146124974871552640852471152725250731912011401998009243275876967727125703159033528158335453809485028904120546086177610844162866379536702099335969139196750021321557236905291623681756930360754143700162633041878916873931984272152034160993541227517520607890764438958800602738566005684787444813743410398841286034798652588559784956470195654142285291587864504118320620498064306011344197524239960558286946657138006123042547232768656327608491398576226519308687489877791328819094461276242161686840684884353398133295895589967071494368950956075933563580748156270953603320612579121553255410070050802077974442776747114448620668155314142632439657582831464558536588669751143916181444148566949948414353389926381039341034814908463456240332567318021950047862107041614561353687172472570339287464357928190869372680351669287568523272808242679944614676477600992730952725584395216196478716580862490079623295875323440030833346833969056890960309106380025234757421373183359914281634127075235958437483252003226710763561855843568399971157586287145574149673530571690615662221346463760371803361326749837313845089851407847886696836335069678161045711332032346885567667650478185538808236508067487710142975105479187380430034374391766083265910891221739077034420078237916602700034733183338715991110160703400154391315011450864115336897648285162720911370337869273039036613039244196816364406116136562011725411193802346388909874037057408342361680783858949241236621566777553678654155208352639248035619598656523135338139452460556794405563200634370421509189265215975023413040160382172542252284914591986676007673883350959626845323727552902102552239357479882567829437249351545886118195806858489431415849391431509774319569535302721826973533776256012011326114597561358118509056051965914880720707294575323309303177155859146133136497616778716021458401808430640371987047504188374359531919820684323108120649974616662526905883027890261615427128440587861897406684631049927427470844698633633770571682240203671337620392088071812853691217030823299124884746124625665637470096873311274510785216550196781752619747145875620525782849570587531668798838543971417357766160601279142862049755662500777886213826601556572372381062015668908615503605878628810068123951163413235575291577463760191536665911612218150863150112256077109529045900475065506415204971915125772078091281708684081495578419710223081512927582967358004657392273212773881474568756527625878307634338436608131833343321683877057124377243833766602405524550609231868043619003011888919242373162331099000943132074987402138513605378319448958833606647030148483710462390378129904285092541572415774307300687763872961735778241230272367939893678110427278137684330016322913544721793574601844664861540301443676815564207496894403416111110142703292864058220739781301639305736941412168095399567817949146410732924996554194706332714301627975414250017859203692602879856300403715514644383468066138871945231897647358164536250075857135911990750683789925356772659661434860858688803068031020959515648744122766800229456950492600846745903683621154440228628574249856204089740556099982296816824964323688749082749631783931209005712266282057779862307195549584638964242241116227158510413723593780499874443405091519611141580214220696291371970323084827467922900024655845645288905455171147864039666949471468243861041963163589427830637817308773273368739180460066849214392419105706113685738896231565040081906198696593676359824120047074937785896461266269099083461444121534572961157359126127225462551961311810316838402009433919340374870635549671288192944015554013191055119303315900709269271796706141061354970301691221597715194709539180903875262656575999438820966485956612026604854763254398670296008348229880538813489984237829322514891092689605643921113827776348702800193385492777696074375123829376839970156651997856568826922288707857371149718482256867988749163053745784785288108545690825926858874279474806987508292306195272186337668146923592467082829320701883879345042292096070578608400534624182138079516906680006472379862302180784601059735143084560909618623736571070113995549156126641009234252543742590535372254849082924517342546940424253208921941716747797320387113717251137316905306691165816188160180464944284058614205325796700293659200237934634906023096551599786072588347522785740677969317585001947290368416101575887267151467067846519392003744685015769482059792051050952065402477168606735626137638402604528392274816391511298358190502099657757104752420819705184283658856880935883245971910600313132846314114598361702092715411023246015945532920951401655935535215749311645012861496826628730985171526004266305882669737628160839975063451268650364482959021531128950344433950214064156081556955336957815825424916492754105744301138094675536836442380071594772684708334172377416932481453445473981581578602082252311851446459518805958728313726713951977829355587185351107172964756518582615816431529849546584739579305820228340846142758512139648939506835175019958236704706018564023525934474505500649404223597861504775961967861509565935103523062112056241781649290261958999502863022440998647409288179589396479789547613833570344105360986349436580080046261238888061691474774254571973665235470066196242222371796714808824681617920464543065082217802997307042783842293534749261524086604906534855443657487810290682302802407767656014403022834514223048753975577786992624885564224079275750104105598432803617207871808791995426470475597536489524935681049999856470110859094466181652466617261356070912142774896194154331375046215278561416440561732607623789457745041978888398841537164205600706203013543066195328506879822725290324704820406107394890706443008715117140839074891718752559519115798856792808220960454701204134423636981875290600614873012857203312335005566178196984963180625897947096135048908542965697740375120842860415652167006142592363977219251836831505229767368555422739352890003242580978605780335709089935633486699356210526018451020321919958600891229625430690776998159584273259665959906356944458598931238945128154649536348091335050563708381121592705464247185802892917072477331814051880332770475734450288740502760090798441299572183195648157888529463502888288734107325976178357393594567439422547074885830683176950160469299626174070834659602060651246900887106123757454565509947421866501343988079825818543338416247790734495060086722063586905839857377945158180150262234483282160816774495642919662907048800201892715131812840873893728485704725944671581497784169723656380875326725707354742472644856692908698521680103886725019895140647234448728522516419355560616906662372970168924988369528664623643868176776795591485623860793613530085475119299107631779477717793039272858566111114876592310626300885181823665358526053070787413254602503403418407910379380712786479318409940932816726862091150296132479683171921833631430402304671880913476290979585068488159691437658422584763675234263162646345551549960265489305531170136411749484376764679493775583252882103810883063494269168942665064399822694544087060731957954434867920516742300022697021870541777565146351003854835463279632215424115351815317043695557296240954810047863564760721975020646182652609182058751589895776210390030592694353088433735964446776804407341689227347064174132340795031866863036784161469070158019256611491946863418842404468632670741464981641363273679867145595763954650102932944091397961897929977320580003779441801777970777195645291921547086940360815808839133614403797195043705872025865235620294944406749198003419716318387389128179361256092631428253795604977700306095041617252192259701386816226902246754481809084599784032930189037189555954902092381886856395263880721250493373158068192295134719385589934953297966748470670753814730711578554691951887112469099194570847553330837931004697199040666476195931853267218428610423914982602804666520661063346724798766118314468047592807767215887878065988741256572287548035385131918276846275975432839885547246941039820511460981501342372892916544177732516527011510764755157543731094860563751927370671610640664657495352264864383951715975634312350446419447295867098713258541375335560414369566331820792910588231417130661124272233327954821646107047532508469231945593996688879463139282088101730123297745517106822272121674063569628608526474437738383599711573336044497313826454661285522137308486670336928163599206670802489219611924070271708949622559974817664879394424754252315764676932828662526310800556986104006789914825835275448281882902193129591716453408775636734377721113059018081150857165664329052569001706299158261120407992128877441246789980736859508813447614211088812882842893439665151868333220965627132577613951952646030302913993690099691583195774813721704019176104424813106218069622826735278563890503922629094687181433981308710453390335928694276919275632412667382265877391573513833989798197111482843922427318848952572269362998953486191332802490412469611901572994859735206179756254296374129343844835942696994049716761980121558608094987099417736935999802055041779035116104003292440204251894014077919582948773330070200138743478859071164826691560472073967528637341942906156377395625248947431824426694853991753427771191959615305680405027217261838610834438341558961992626944417523631463683910241909724441324116231592891011091008887653003563815053867578836393989884028534120702305439343206043340289994185914705008975120446000571633488990951419601872377259465575388228430726353469242354298683475961426296809707978012614077078886165517552917153427208630647001572522307691515212584314134837497870014425054413111409110049844970155708265864673857505385399727250062750534450256114269830279144912960105674732425092604231597859562711868619363503603373412202448042751216921542859355359598403883140057125876851376127841196154618967576715425728531238848603925895617704634733162446481330767421027180139417782483563640339577691844398008919647414532590022885492956742730008693394644348523448798729300470418683421901621275543735016814848902564321388455391601843193091425349004191523908740777986768177135420451267780687932831373804542624995338348052983157134706426662961335324326049357009598886952913111371563799133444779621206332019707675450949533540651297171682390958378769588551380145646076404943080674248677416555080612928378745142422963607630673917879447495314156497377709766364287864804353896397379631714903824402262532777173465570751450663579534391484996549799445022244778425905302478338664153868894898168368401569238789055092868425700993460805527796759398841819481634314635242699657450539158124955864805516561413408282153619571953816644462593103954257190756680274614453610789934497976958450258764948062044450445214096162930023804147930650555114470106356958701157538739549783719823939297481288875330412057529887144511086175302841915885769366590338267596169412109394442409893573815258538976697048853837361030014215072659015150614826132632141868530100343756575380829219355394857510689882090968136707795620918822058230950964936006354059900900349627964250670025801946831144552205056182516557724091765438004954542150166067459403292540759852695072447736306139575169556650844504710427150191692803805139301813939084802260710607317002885291539893685549728431910857796352703343231117256085575608093442387590347727682227042991745890170301129639275131308631834797615249099493411047330939079424165104155001376625846625956280910150718316038498222218091609202709621100121566156206993662971706956654799626968017825938983758776571275044722887594163014652460854987483293968249252524795168378609130088106978518105628502450074948479715084242562814899283899898973771642901806778632442752582103221295288222377865089000847068303440811872040879544102997321652252857183172848249120074962216777743374420921585788238529222942883458018079572352466238272826853209104664938687193110608349063073869032478593235556395610462140203649364186471007656165270826058278757114545697956320309556367716311363892991344822738071482213096123498418785862188950030846267268322773078925105708168172938887649716066344737898898064600158256760760403569525273331306752436791737779393081867082157886641454058157884431594023206039689730215757766487235989897438825459907339616041216924966175464455358231462936085117556979569736981835734180451739509186892611405450146768344792891282836584242247703843998840956183143639740113453345353218967381382108478374781611971947001851445210687614132553849806233162000084204352784199240808888861931365486298450980340410325486943137510218378427110945151603661477642081207499817252613572199620465199725953341542985671363702700754848638141523732365875470626639894141726914159523585627116795085318519856600402095818872950120342581292900812079506816786529082955576141686489093641019517537586256541503241381460721697945657522551903468122901366215100631974067547875096951094966918791175199778473729408275375949556143012758395254187828348846894435657388356965181076781166328688031225978869998538270155887856887003187895533613400480931425980433855121812575107769276728069809047604293643272718342793784771203807600185389028044455687033958086042696867156815896730651037915691021569543372334059004703072569357458923604514350262249101719607406830973210509188390327855621298542217288468501590238729340498180213439970046304995616858632384112547765293211333560981332120691406474388826785535682450857749072779032775992203090193469392162470334992754571694765459481819394767523288174797211144690802211478737657192195848670829618019862342534265685977889638865451534233391648283843232940690048533659990685927399079958460852422581984811376515836002143255110178853160394896709450086463255676554766875549033787421628312393170457406470898360210506393050578059929539994317299659938985706529318950944324502540523417291293525685501037215939063817589060046277222556222217894982891959853899523707509243560007307882935974614467396973646882607408067136977869799020837892142149627250123424653754517994928711901433771193060472088561083777125545022778370709567642314330229767631568211902300399274954268639983174374528601422936298612138385522303156431266550000311586165228370447631248220672869298023508759580489983877982319455438206130769608036763528832412201720424090214150845991748740165974456178444115954539985118401947078281077166639909353621574698922217357190688801501216687717687223127069854056183786508201258855339639820261803095276868073396278722157766026907927938682817054009117755258746862782927989840714510096458447295515820301904206047120543279978731806371682075164783265272673707930360930648791676947602102582689275762585834180548946322701976900838451019824579833143206142882524396512976211861516198644404032909391010576091573431454591563962494251265927860368974350434405006701963195077134606795907229995040922808661942426213513603619261831369517088814884054798574000847058412913029381769694642699681238831659227526105493689210964929232010466563332221409992525084204582004061833487838120468344962473832593247689034767465212222204464992404439749390411219718177048545340845272746283273385024423649518350361283799430069523071661625460283045289729969909408935415245055479557413960505022106575456831305846982185786848631153962578546292747155259719386101146452416922452945672483311360572362210886502771440178293480902339077127218673092636667714315446075933356013859174178314379983385716849901640576325885106292273128440572786842727378761225546815864743012247250650514066396175245493677610812942828451373928213923864136573892166880205041094152230327532344905652906558383317051385913498816556850608052547023336457250599457233049400728641164411239716575386027046380928000293317938803612534116057490279872078131622700696248556876855643185709432565690102156510013143570015059945930127604277312784681840624672152576162096810920518296052051846758332588303436411376665820273644975252393629257011003974134078390539619095729595587010221117740163545856452426862657521384495042896057583589148841340787423228515875915311104906719370236140166161315632216395779781827164860613026699261412270618760501027977791363629539342986870447583578341199438572368243842436285450593869914360582333181210369556370526929325191454356730540638436199076802830847700039089111086881666716298001759121641682035154064518384563618813020593046483220955260235463718867337480944283660928966443834192787893961840674316719260641647534130272782943749576546464053541273588557640733418895462959069263925241116644074707155016665970399298843912741218598623850392478056628992784354234960392730060158755415041223140266884329047304063807370782069420491912797643356880982745402386903348692017226877124138634140860843994924905785429310125776253486561045821572030128641706618744249502745994560305082907336346361558445617799547950785524018094564228849399827313952936932372185549581849154831125212431754288115490573509148875759173532502525662277881096717448879418925638750017708860489839836622809006760620369761627746692814582478511677509080446433236397665043344257060328016646308147907454782016892797896383134423451800024167667117827251700101741739011761940857442237847287744851847108105361529092284125859002220743376935405838182375725614044261199250946301994608319383518349284572309909481925321026488268564048684212731932071020562240849665629650058155137694591211466687592681898539102799808271418489476388196702505001313817048005933676528186406414346042324991149233710691272353079354851817880634581328676830122347028943698327685038101657279335791139681229971601396075140776239762267921998261199692682549434008975451357563805181679823184893167123837694904057767164474613787633103398979026592169240387280660153916909160201014307051660468792034784941872137305684175137228349150437948313004504034146432546620727040173278653109954439874907053913065154688796940251894193293908655680724961247006678028155837005544988027405408470610697423169689358155928809147167810867048835019215119998031771876132189034617907916102323104857090847911073117599630016565601048329739456015042206567919063524386357903888368716167695321866893335260204897392712038479726166831574294043272483344793000387468356384048235859316250658885046285867858300228340438287497877505579990760433883563664498096335226276865799366466572298167429203938098909849659917160077531031334966278738293161168445606340782012779721784843788874613221340910250811228324109011472260669766349284883791117504891351773550847821510808099511132709861037804002865452109958553032786973387700849363408093593240522957514533445310483438705872731564170484436472461238245698066058124957060328205521220624583579388456391237453608021957955671119356808445404963495506510686387383767643909385444426075761928069926843325963635204630428203062512663062427668794306962337512405591774204405914474425023498905812958008444354136950190676228623780434012771210266545784184354702058587449296100083451528782978526715237846188427509183226539916256801674308732446198729105877473990735841248220630856719813106651799832806913739601571711138189289011527291080144328727204487645488303293781343450595303956913205562605064048429192138609125588491019707409572797710081834218678177192145412947040536571263635351902009840056477257397547764429467765328654631652924269429422364741467307929925819497080866189652028096908148362385221348215676827737455290919910512957039950518900783204466043635367168650562428702930999842040797171940342715441087229233564825111827445602710812014828066900705708867068613097062810948371274286590075154349837774595376756904275936926536691212187762247400180182774718230860118338019774569382023560241109532349311725180546452332265447306655792665412515825832434803790622328695760518449946339208338951817963622273849787058048714864919724539859171519299994885893529529285289088279257267152418688727697227932324293353909475389537340087660751521023695299115006857975811997874554045089229916148703879392120283336922803051331117605235486126439304840903837537579733097647721525049974686610745836342355602361524069201589630311681415936747217911491975989101838791420338809317872552739078087980985724302218222086310675521615544467922198406114343859683533571984027061904399635769574588424089018320802931779186005102562379314909381395839488501691058658799197726185719419351696051943399233312941834277425391495268796400131457479332818297634807973108722965467617545223079521853678632046049437285412095132501556771273520781394295633348078096859498480580255247176092738056677994873963961193709387954709019310206252408260963821029798826355335251549763874755477349691381898010249112557552772029436748529213980310091178327511188728000195076637511024634271948011868150922740030913921232958322412830624375870371405716646812156939921959677004990420901778251354707642161500714695707932784052286947393943855859781537901835829607576584498788226031686888983719518372391412201376413786870473848753814479849055278282435720876823039106496323094480926110214424358489293211174204165654515588454593574608831401537515284513426102561578394093846035833823207101623806902154058324473844197828482993980027587329500404604581300770555355844713263117864037398814611254299128970781162552734976944122774277187568236978811016695372284471744604925606433855484448030853491959770676394413563297893104105253705540655475422703885711449252180737711861960799133204669584461204195996239019496030533814564967555207606666637706265795250955993866276584229890927017173532072674036723299923528750712225725524631893324965038233345553526142900769307926238393391199210951013102382161376136356987343528433562473754438344662825525863749661473630743382245742794250238551702607280555695524871260229441722661586817918800296524114264770001495606930847042427369597901115066883407913579510868516208677800390341809591461066666091137463729798239346724212437427187608706588348599495915146821972721188418389477465520640954908759592549163369241683020730392852883697728154078336997383651282390629927536918899245700804655619761046322404562194488591971440959179665904208068227767558559289785102538942785036156951315328853776719381021726812174115031676155945371378856191355363775126613738594219165203721832259693733046745091535924477682207673752496236129832145628708964658859744212460305240037016249865499069881448546475387103206623411847762370969626401841948678613235568274412718735958161817741049194388094376064770456713364639263906328334859993981988882895712921255757004140973573120970687718221276824683765717140337472012326887301681842189791707209818193754358876706433185777701752762529133672376926996180281820747522637374313112327859284178000705628830374361484171922104347394806146046346020367574986895196733005449482266508927005687170075870521127646455505547989908030481374909446744728593987536743250455477550213965235309711474910021945463221219246789580712723191543740052886771479139437868974723188150637294805340661689278083014291491535089980497251252455810441754966098739895662514241025011393937768971911343107912978475010478694962830767456489661560586640401213602584083700897131917764866918612097641175989409338444718469491027419428781972511289031862836345400770266918455339166065697462218380545053940408155128729070471138797077602976389398898956216237613484168527393327200345894714951268173522313325110598069323769206100784225147373551285794417233167909749133756912325790138755046142458485339353584128485541263836181419422903223775868334015462695057636079961439836173211870513241448913829138778076690518028339435925139500726522448111583922818029739848789080060631228357764721343001607417154990150948018759521706629674732545552831444010216569338863286793246342031059246176316504092350150688682655774476622784980424677460557197190043421937614760726720157310141861703736471354251433209686465700313950916677360102685616486201869110832298191902158172354212403788931364332241807744572159551148671238988407543043972158366792786819213977987364681352568348469552890968144432747517929241069528348327285257478979378663188961442114468447723218314462767082057192481054729253911239668027884563825532595154791605175934585655351801722564816527113726473049609571964335826835252929251734450070174136060326278347376972489926784801611764894853597534509178209958449322846786516002330257716567437838609708130712762968891008907054406747874628583577363373737575996839898730827190679548506996052933453440654938117040282714310169812592578177677556026053558672049185311772293588981401218633249153700701082663128325819622205947258855441792028135808597087979165767764734898082446051882224325912672458305507648617083059941748685079402637047682590083865694177593289820561661567222659162301304646005430048722804215195360880189982750966737930731767259141014101728798656359225860657348227962826300242830963799286965253056033758903748223226120543572249540869926381338955074459275700769951939594099381240750849161517224254282817376326672853122409266153135185840552451137300904179904409175151185644324768189834833087042870244110941588247991932269671963342021758817804956744134537496837112791642899560063563009983637418285995707577634720950283540922085184267398813563109902035544074976261703425308087105159001297437768269971286325410228513637313381556232127744535166136656967621038083263708917463095316039470813493132607998655625221518915050180685585381508650234395944035650857265808269324379962789797327431987477462637528491449821173850345822376554344447672494183358227960896940165433554410019017237652299419446000244869589911833653988097791373073310077787893399972324251084948459571013578356951448237367257081507814510514027291849130992835963994634862240558581984358611590852836250253014663098392019240709418361889655957464272878644623599163963665482530100604971494067081486012615906290336293434793996356723793946074420683408555631488462750869063882767339357524889073237758638651843042385250388493305224154424290572618002487609298932876749313902852773816122846410025741614250605125305750012449414262621265245881062470724921626695551771797049506292486718809547412916016965040609250618999736620849614331273132816294515036500980081111236580346177523104781293468144855343734350335072042723713607213130589442317224897870541062023863108575706635423229236628939344393398128133942183012918327619741986254328305245283852702823827267520121703056243700163596659780507933418417164170517175207138570087032039574128692508196232877918794663702068053810779515906204328209581760407018124582305208415853705007475342095082014363723783177120604603879248510981709436213919876272576882193965409916577003121704194408810107635401186898320012613676981347494427585013277220826843408242146503020720263931992444502651381416003115960298564641904373709419860692765076289725549159956905410611889194746392821421622728507010279387450196298289000693801658736525574542129974335864358478042747537450251333700350018228869601740295749115490549226166991728653951098217839345661644145993149765058242284410112527382844027872139497432867959865910167728678711231553889598339658174849963855475392923455527080353602041641019115603781585635025907582131932823176310106907469806993335450694500669349729325190137983820289794940561366313155537461842388390582491570089458498584711559334518290521517099299408507764294485997758861227213510866115102467629826065096229642448646516408232313151515708115067205769536335099204683033989897653439015674247746596745377302500532443064937391587377393366510198662285635634716955779121844682208000987568035869001278016325831143157585289426774630499577810958566548397563391762645061306116417271541719599604899461587275492803459679238980454504253826156167759885998491164858046771819799870554510152383550532954710102355207732593706276780279960342238938778454047412575846444370523508895996206537476681514989300380009902713340149623658888266508510599702703964920530937748650220074805182384550762348809452396625679261062012632270750409450480897679307606877193852940171807798789548652854675831317315322437473878013428311823577884504355527370340193161673714466901007597684764985184880029416510502761133040799941518853006373824619769737581109876519569423277043821990285242111387917903873819244142589068141443961069868692664048215558290162032132428094898901164851598572066764536162652738731492926994881875562103542766888166001764889475472617489527982297569586571251330240370292492465002264699421016236205733321445500963904779504537379269005958131324388517330935049127376408718755945619151167640639325054681642503267503568308670418914696219254144842904897339884730092434424505718113956491351864902586147620251981719579993995555953045765730214190967183345970122418223521689442749298010359428796711739820928563682385384169034645470316435793507291402482438955443185395264811375948476162296598632394330365304375229497417246627099873539300008480762611715820810462393344930994084075380543558838450684454447310028670911780646967475220755293314866953037078517593201592063932720829454924511994297969671435596699253909796075107087350087625383569949491427616213933938516155988242778927699842956989696308419220309459843080293600051179765914555570320302852661134865331804057513870970940330889752162591643696052373118434953416511112431984837352182306123057004351369878291168012803339362486509673811981660030003045872164464119500956487946264442386333667310034133001182557155324023272771653066435222491566087359876199763460295872261304918523629054332867171526386365618338541613759063114938294368818066810593544080048149880003986401285830908191150676927359379540762547512265440645466622547388026164567028046485869866362388729489853184136133974771001479194448202951995974188423275207833749751394352632551721170162406171232213840886154688870857424441406695764620528459911420920931565166564709907180929994748966512061827880192462062128750526348529887290353238813406696297651617135762680630204996771845961837993962557236665023343239125195062049562271073971792175689370418949531297488641159712207006625168702289118990772345601391642286163763158737759126094473107856445869820478338801587446395484272679594363758468235114240604960948702424845824529403035478894484650309898255502872105371464228673014232004871858146280445520497414622386316928484824953738372578472151053389585888928225609111471764478581645557169481878132564437423694329804833108905428275782017259484274992469208638566841399852450628575748705820564238664760935145619040276607945688357496150822831268397251897422272234781280034262166782117431165480585527508852396424853973751273556865139935375481665458094817318430283942753841469289231312506433658425720978054370638522179944449785822483100942457338576117928485436355914571828990714786814157468876153374767544680744756901493834217632796731595101372887719689748121968611383573982867883442745245126571339135455051012008489495695343918664259986671335934706266526324562379783230446574099144855081862552831885384668166633743909493699988579202355820114588411807533697922241404360715701796261537044918770488572471292159308352098745691768523522113708527990364869068444220251209109714995854671254352256081281412704771963074633883577511742342326797359667321372609649016767447120090555793923777059811954097341925639610029000715205769177754904481200172403577333875602948995453239774351813114496058612886476453708302634146042903527946004462785663746044516861471474185682950996894338744546128252891722338351184242758734377862110003515760743715764302109883046964054188201146170735992141634440741632173621317914104464144284451750828365670086200278951921377050187007136949298554311685497421606435851273246354951505753447819812730311905484165253878098202131363258168751906862315052937031717322658172916004349974507966617388904768487427364345177001474085283720589005866597451895329875524251487617369174129482794803436991364917681656260454772167235401093430123076114612854218725299271593643264699734942839043305530753829043735076572966169987328076943232669420347373504056084114395633364989491977765204204594760892010228600857152169338503343732182215962770556851159449662849919855002230119404398364486597546609551711795941271348172740949819637121096187960467263922789895121986442641000403958886462155426435286658861208114411605308426451313383598270564278450842594427472665705571339845301520046693440428748702008593833311442152294438598178633041083470506193607735531590978289144933686077073291171540330305139703025936011856054526938121950306554917937870771371972339860955863792469173746049659814828674168120506770166821201161836370813281692985779320808765391879372578040460114633974495622255010822169419149487232494359081409351680300657300770064978866345275540388061116322250100662700543471678826538118042877863128441650357392742229209771548205183072287213590387506675389064537467988055766878915116382802994420708820659765580538462351926220245393765058683144588951072865958428821028391532661505589832927190635746790033821662713722404003973160723889167955276737487255389481248191179696311269107791376991999710503751129980397910209605397982928458861398799525285672743366103671268703845966661083911564848944205975883506832312978646433376180370756087912718960982703875635612390896097011510682490335904125236457340391251742293132488320129542391542989348682036467158128988813347747118748458685022245534399117259201431365992524611854961294396007005738507682361432339660458888391357394960931638248924389627346507655597650157060149539257768525009818321111118556567613025285451481137630881390714554291064245859762167581299927705689830263404820087292668898137708436809497439140528170565791405100575542139257193454053264756511985996279984470759784270627846245181043079076318036587461758278836132430152131387619276362870380164027008645404866123315927064824271252620903076343745977399156323952928486382540396367019579253197987831213817070297810949054983863408536669939778414554661260235366545454486163723935706817204945405422362674432814692487540626979696714932546205987025292672549054942737656192955230522438875441248250271342529898441147877167578367247469764891300487807427952248936390967931578807450312297825210641823579091433017932796352228471811795009503585731989128905015036416728976910242964509866799256065939025917606141409879056937033164439566350675045452178847459694615453706814491849578266477544455272618827822930605117840963458041478662825523952416172660304532923375513280169566862311082746436618265412337500483095878365725201695741072013471137114511081897983147932127697562398990188970409942888969571024639983012293835203639096683502001484436806351116951886351745617675544574673634591262392355677270404944491081337747771211885666325392680654196324305597707836482987086962374413595410082936395102280409031972668828074231625397397052184931262795429895087730560351610846607147045098119290496593736371724694869949778813150940907080228547623126818957075520118388180177411587747547609478598433980488638333936680743356386022791681545596294496037474853144446069367112645137698695869234874346593814575562597428967868677694623161272010010052231364174050772423184182793158626198189100013293856884689047407716200600050281830116583986727672749645192009622775232565083237875270485179439327672666884361694537220943619891102193237467483410515779715068301897724412056018268388814856052802033524647586810055564401034155066257868631653574574923414808463813534089038927453762846775615809903572078445903290982813919015552594757343972596744078949532733314205397689716878574955044707818587564539021070761562592901273865515470286449886291907432864639598460057454545345196491470199758641406304426403566645053277560651287421980108832046173318845052479191263205007158336405708679535811158614688504249406028070484107354468583491965355203122106565832317174752164136723019365247259861402675428249526551782661485408233803612020912020959485976561309565871567602782846255834751306295344893662289329129160247289465746071978683029045393157130488328693604212074467081173974946517996758154325152427376557703376818152926628920679009406670438343434369754454415206580335571895754608537889300718965681334816266010788778017291648040033555843972533348693867390588500921473787926399639155545063463261474104362553181363524811290249377549810251414094485839213674977481185178687721147394023038446361972745999704587993422274359468982365921404297594340491715598264154523606384179536572100041945315288538850384589177285734982134916929839300071846313612450518825305904247566561429946931060017106800667400637372211981317548417680483608771676739117167575584272716322178819216014684460590488415824586525670006291926012968524452420552050209549904154728763357274573095770890982369135821483814790413229339345621891323582326532259478895718292083133608761719099568932806511382135234357044622362753016475763060109782203687313294091573310052885575072072637595073042108262494049558969062443925015663884954275165298476961072190569349634478733172698385208480702577309747686009866096679316470663567411478515273791015058586289766911914220087742916543953790605281200708331860487211458495686997313026986899110977240645812428876063531062123139373569211326389105441165028627641215890752605452579685255466366605312948638828809742971859033783878897369375928887374596108746576113514524778278652966611709878846435697836917339466091145402923231342771583007430854885321557507730523534976814915179573870205750283543241672166766751582095045303461108005641610702172889254187400654615496916573426793974443503036155440270703540565100511516979945325169050344867022015206604077071522346378017307906514298737055803988513755402368959837764901093508087473763588356939889420039130083933519181037120330394874974731132590426932444304255455916344251653576675048612270253267750686135765254012468292830199748653780930394449446746746696360197666000036606687593575503724729678100484117066420502209656294319537872291002842623127334561817059871286565360123164175566320010394351169193664220871538236987249050575032891870470026280911050237460117612843619466730976433722297270197099705576732499552017383273554532072730934055037224111717606203141887632942065625199181478567862370765630436024831913364222997496249926766877012329959461966464120389990455191932343049425063694403240722404994934796604629344544416808072003540950324346631563438264610704227512075116875279405763599203521661135626810907168139858221978351740207287088926371524692599125636038751492117246007055134792872087268660696982836861333693466069143623702930965101185295730128165741110283853416118218400586361202330787247300600550986937583868651697429825612182180577459207456415063272437425981042245419204531016720712920601120810189399285074062055872476461121433015822313779290747846653531395928318628432697575281134486849910761302898377580242325512897725547677226748140717993605711840285617306814604462729748669584658366297469099469456845613250940048776104230033861891068059018981548317734400134819214256906695199488468974813048090692400070975385884816459064185548835220977357862597612995487720101946985745561923844558586476929480601443836537442253611168675138381783886035525598261358420095847029241146738860355362665741288156350859151114249780900311256048279008349088793281216738824041503718867956137837605605967445963179648789231816510980114232162400580177343979553455716840976507251745704338754433501693606876529889731400236551211346883387567802114204438615639939345852637313514524024493065811214634332419036053434660729199022152536851699193591121100412841899206794234720822072678014071494419118117099348124682574602771127120483967982730300674994315895323935758006451730287760803259368720556502137747023212062601343681717212491378064029430569500402187795334362247516376349376120864325832958146621363802726443851287159838703160625988761961210809867033497714231530262573019536223483986564867414285858119901268553001544527680083859455417827109320468831534749728695781156139744156953073869361566071977529807069972714309513719548075197895452698798585386901378832183145730759641264233572716634461852940962899238929696569083919125372075852457464875054215833354417632532463383682085599423487283510614392077811964885036233918381020978356500428958604618032638497889992831298218685553650130034091889466569782987339902841631851706303933543498674638797153493090399669640739088504296415579546656824556097912128562285911686646194183888789323698183222305434263969886275919133147200452999046636833161229029904385517390451704452444779728060721741538409510448211503268571184016055501979349245075511062095418237155737500993493508624743092398972145461507092995794509553516413873107965852962869129981330122092711610278205434326243600100816752660451097786729866919268546208559479747258523148214537346398828078410118249576936239895937022756251364958880787912794520582969461901650915448042721897867650549133593400704419027769285153132518759530765983908636973119057346836032679300057278602123149615438386678187834270998054920921002267034210519235894233877139298616383456687256870024716549914972400887286730805962148988052713979977510512162311009269043592361567208268305628742024644402749297026463765871301206910569149149219546931893577443791596833316492551982985833278825711936738310929958924419184927169013996818453649741238076468825847811905122392512516249124208862824374098924453088317313454709094910434087598031693442574153416579997647488105665540493202534464710223229928029093745402986575203080629530693661276912568069463700591534595915599117587220965409514526219331835757310149755173020804196908316119298960271564176331443930380936560627288256558969086394036773644000812245638520090753598061490778327545501049324451405718048273827230175935666502855438275724975158636369689295191448851864115011571427291749281568787103210681314006359493047002464486115373775554024943032039435229807375284870971390330502521251600912984265760622568188098440920120985711074025944142323741393522547013126973415362937641779246001642838167485294195932167417497934751061579534567358179766712835281865705970963817764078437006117724514757290589206628240681646017913127254929320845332302139090469382369844293051452752758316622417830860464378028051569863309434818761648262021821504359815854151700748884742189001519909219993782005145797064353131033490508757339432608871287895722538856409990719542431066197567686793318458559679053964376014592850095147366184402077575793005599157142582433841870696292478357874824479793442693669250848697629154268217205727013043677531493364764261488226030931314959416818337268223964809330724841705103878745410901985201129325023714290629452613504868312011390162464703647380466282648468838518797000892693812663545290955748649019039453823472493504825009036914249078786184627275227320938129696375681614417292657648622501961005501013352116971371930433890596499471678467098923540506268714490466032676525172253250445618425230291749993810572034850589354621119083668289902233543769132541806163321521354151775628007025808480489365259909814348883751196285485031580948490040491515641909572215188195583930489026169610461568874417584367520843974160239228887731544050802062936518210749928857497062828954231744760277440874872772739938666759144043706549584034885027081304772115340014398513794599315687329981916543637004146420381678752832520613185934518984565273507593343663441886850468947709457758293203719960624798031473713948786611383284690615948071507931372311870874112661425356210322453602216838060605970281569946847349720069524191144770223987254575206278434113923395531682154454869200008953279741479751796908510815398576608603745508207143256432454591670404010595814413916835087027955717612509747790920528192344218769910440916250270341404259566026148499184452996425509050456273945963419582179602388526448136535842172404719802813242535059361830616155687644783287394090331429380456364047117576918984184896639539586036273419009103528872218955385282219176859720258955430227563065457137347005736746818596515707957813301721079444780116110945477825653548980929673165036389092000869644956159494953108418737665681552021767386751129689217483634137874735459236508734288055983293281772557152975198820743291832650181088626577152270513724865016802410986908447545723699512216295680051824235373175451809388990770345366128609111046828356733649891751283761672008218415096514671666337252825176167619542773124722018570208645281450598352759663464389254836168954783376498652369175813166068120883559041233576194464866497681627627422562720172617833387793752715623574630026282552230469114567899276637644710564422124054789814601398864454746950781877474907859315032068113568683980316531686741153150113342614357799124793259902440298397212776980777351377217450920973179033301129433925420071258152585973499312164874999570241962218945317467697952134266755127294688555557972370970832863932780316777211198519783071193071119278501138890056389382270613618739444345994508321855291316264697800422997156664795989756415809650317140514229013148927587344469342427659060051906164723259507400463066196759593580105864754612122555020959206731789241211782564731979544140712907793382875171113214831138255640638906703918687115355607610963171294961749079838268865683491362240255923887314488924470906792886181866151387566622631364492095059520144437405771886004362132410501973140505516806765327268323189212188324301884973211648318788036025316554357235449656880316067085491237232923975614700324015104863448906696184515400090236125443607273823997097780208665770910364456723084121257913753678513122374804076105892346473611228839291768001813464039734827200282907571538857159364043816221436457610461102555288854578770418641232030617320777961211572045306232897527809749506492237677189509658094911003368842458149090490806578203446611686621926221113643102094215355844502327390716625464746592106601565672214101288512426427589079650691625799925319756082516275415330632622912031297727181190996675904490512739512762198792216096006891488470211319453434713260957983539946966895377411579593900069988545767989798017961147157034882888737823483381701571672031016011327016429757675424593897281907202060336151610736696884474335352026008384144732885464379465829977379628737540960694971990372316885391635556002001887508572560203582479836227820881144041265479573171022911765179128034432487960408626865202808356259474437361341418647714095725192336815488454678937414893918985520922787236408501355070587432439803516304073337786236516704893348725231378651109572842273506004831363508155006358215082361767137307262262061158375062383751049510445115603871357120407050195779410948320039926943521620862465984258225433693629215063247078713402336834717137124536944115850174775906856209962341443172734202751881161486275752697837425647950633323197722217283113777348906757218969991499027338461549470725162504821844997838157423640490911788844692686251308390875161228315448695420728311836524176337992476045597930230855893979012557946018804181988989752398813500337803058154678625252172455078203413769210630100422105435894994908051775741244945381158294691033540608975592239529615402917184652335697871190826656267807181861429844865651931202408890103447345339115802334209937726311320512767088888087800294156409839343717925827070724215051163534951716783578176174395884708469815939728561728311906158629710090177843905096944940643390554283628351320352268742989631376717953254290892936361870817976092616218941552095399662250512960580497226990762365882219266639850760280754321836704966913972496156498707925767814515990566620450347070251049916350471725171469234611013515737974517725272076279720703602192394947647861778772015885595320086720210240682288366634713827360597749320366722453368627771739793601284758307509985638790546526014413568133502310505465159708156717202085634921319208993919114445930702640515898904360945578321104508304281671038860629565531110251472714721667238924988816003256855004230771745607628425210440907023522342845060508197467565787969544248723862094836634065057481898308836068236101612501901572043880693649594004382347726545870170765450334965119589934323528731244516346717515340904577249216916922920166440922252860047529696813458022635780307395483787935080823110659064698466745737741968334779051278328530982406022960155946259223436790756398867125953642438851722105113024871447649945815219394403471211504085861666899516327067203219567930601281041318461911952596982425460991435597532310672203458609079696608470443482576884217320383232630689485909595511280230774711065414428731073567890527656142135292980576907183521659410993831349280783920494681393290214163739026877447522223540644124303801553371801042285749891708730312486863320636257960670378460888821600992012453020909858894596342490499804113231088979582077748613322840702018597230821830804415498031893914367507685748216039814153966239226713408358229087784160514724719975636178598477365729409530860776324126126454820742918669236296766753224635810630259067528389773352051553781251891846674270832764871017934053766544349675715395019055033922249985802719248125545608835236413008824982004407396245520826102552270684080465312019003603395977939419249983925283533602746542599049310633258224579972973529420705199998561283473813081766650114458456956484573511613335195170931065663129422443221113273030834520039255591770074538562058623426247665933549798292953701220478460577121702876271333529613469420286526651174412819028724949947566708053229226257450818651085515500402011012599193672980449637577211877133507763891471267284485187010832210946170641858473109538380739822017834245153011146813117118064378463732783351065078915655131073113866389999482834145434522724936674897728102547589431377816563338743875543992442654448730423466619171784401633579528648203171837456104053391488804264249323446460164014327407325568140773709299085122191706248375884039479264698260226332860420498437398433062469141371108759807777321055348678544402623833291625720736766564079451354016641303234077652018973581820259740016929601239472345300155421821319011234863478783328842264439778020874510691512421785351683219287646840307148189609515870392163397608605268308369716713930267779467859375367354758864175842291516316119456581134477099055058766914083012149913678224864579516062718856122730526113879036299302032146521658686485247752041469969188795468616871199874213640923497001964073955306003668980952876361107739863208460453484706180954112100032705877491671822074137587002293920296777919590756145920804918150609381514172939813319844596244215104294184428300688704849722335020982328627639532108749712744334607447060227545084568237676141033128305503448064939061614450258834638016436883993917000072019968180767007953069644567147183496978031175650221866095134629190973678916859590136047887254475771019691129616504722911104851474947712478367515878712811495545149537524449068313013351704165626829106126307752556991731328394226463742519062099679748462139017424130564499823532574938337210313016632605189100081082776273428989424310012208261107617310176981573534078263074698735692914592513818251400598617281512631887497223454881352485850967127846433521526279910860865030258308786584312959917322740744636612137239693783737488436997973548450244030595228651812578165981309385324124544188799385958850798976280322524595480447051552539182868092082747384108568952445134011491785041182100823377039481794058623377581225933461196301098071763942854375265068334917186951169789543461513881335624170662995453074600297011183071066858450739180712485737265569864131476593020943276349571388729089960051052602032207172971900518508245502264767820671797232595221598727168679234336323793954224090609019429973616032094808742487898255872756598966893686185858993745414819719660011819925060050397153028366040818544945397974926113298169082275374540922068132498609440927063973254038994606463990858528731776168740067346749331187837420604129883704157820367806646617339164481891172058510318672010253753608443075660716833073048158667074413475766852625172245252800623706471392389924994135976357439941902817298513158787770134852853846524803634452278643639786548580326075846803085517779705238057158507783054161244760347817791996384407138379353496457073043597304941439909692419726556717903666626296797795374503915249096541667625914951195185425933665928852897979605249585340237180945869385503217214472831064418760989642179267854527444382398257747198373422354869987167438507236509637681605640449350104368935030415854497474096670867240217739249668435568775801931499656696877263272171737073601906688264336482637607025951648751437625009488637203895415431482425308868478956748930591814305535250606547529366951555283558925382086444295717228779996992388149702557344704768745135275588313302989654633524877879585750017151987585058738053673780121865315434100644150127287854631504447655402063356115335898008779014010847036974304237676137220011261133374617985422545292399963846355888560007173794233699835149172759388473089361525954617312511284284460247985496472924420126952199954274849944099869829800713128902867441677813646910286350933623992267902495262900618671624745542035636954542051817196972701853439421481575741233454658202022720807897784634938951463089170910967619223443740288836771779125947543766081667450705653757278967595603426925611776908904639711526311770536666845769521151003092189788247714312965351632122425539255907278237422449708922666540345765275141828121503328846013331308428850403879647615256953357628213646246255828547931866154716032724921502443625508537697950819004890456653903323050302315774985472624101903182575539756515900732323993315763666432275709051256693019233301757523926371880416211213743722714068300985714109306393340184977200435676657643033255170345324081136871825169886151456463297450775471313268149261611579546630656087109521394611379322958200236645502924045785218025237641640385321116738654381230968906121315418323513842944957241844685664120040874868406611744002514845635510059605432118567165913193848852803885954332683884738699161735653548758159534225869086381868673906697141736075066846178272423937213122156011018961574178316998094327245815243730418415789402932536584528834456534164131303946061695473067848288753730680483316257324832097935316723695372086554710133785685113203732177858966239713555595586165213798253645994428159241513387372035319996743313449919091059867010797160009499084195931720192928083270561192307987006290063457133210269080814365897433669389351348847475628338342378313216141654480923043673929918888063256750552371554487800602752977880751166742496758739283762127251905034717555659051583681352591037003479409936172333392244969232990464381219239379025820945482547179878759712337746220689733764890599588502436995295278005919320385783516823533444111915006304216182299690101114638063281412953926957198410696420110922875285803410479202568068601390749331674489754105783002583371422190301724287453964264407078230599328178298535208158388312490600915020490897576240901866346377405384501509651937528670439230146533668469805811914742381231859224202854833330557330293930775204518045208102966107440219708031485563153563363730118992468171562086814809285315206690033067554225033688707789894458149641237016784777066241494966678693555002548767170963421928637437445454946532441041054023626052740617324136638594325562940784930321337539338101543279833933474718111269762385197367338607658518559122480604707947030008392272165821197949225989973468324082735810483335139084267730153325888056371451195163917679563983684316103800214999618113992068950099610134911086036869211686048433630892882872140962002484532261582149655039607471373760333746261588093319439197492332446132103020333124942949800425686572667273698069387539301210847618342982565365917995689908160118524007914157982039240675862241162715200443376099537846720368061567414445534291557935763456115423691612160291820100806077600248643838738825590608087712663547473188473693413381166641675529475988263413363691188702191079859317942114114467168279970865736483097294479956137227553930779202721921848178695342376796382399255998279925460713466922277871523111543784467180670925900007902574424649672667621831340564365112172756778287908744640487225168646041462357702894419977683867932964432850044940095874649771831977375595282686926157790761687709827801577264454038695529954568207442661275990992516832048791972992774914471529023794913635302243600193570466535314061712150281918736302407192800344552489390114963390671889173016670886923585272017590320043674486283432614022913035943729941982731388472959251858223453357084966867084094039148188133411235785322359658978025053347084468066696891346610758221480946959495608828736213292734681968301541447572804241868875818728870723581418920254989146814840833769039726270449560910096300635225845372248232645846435297268922447220549153197611999659688621180468778596941388215963327055315272280225097954444825367196224987715860099250969694911478182807270370745963004607368121273957147869738493223490418342905366540062956364916208469036875778929420413317347226262883594805232619654287731005710927403735077873298904788573764986408072573666843123507830830319528600208877646662694546743481914214857666324786229062468290434922210430429651216656964381579406420851344082577580809902849766328035408506922102782423057207974682191553387878830455861000792984513652109280957314866618376079461255401031719068871474617925856236239947189303125390265667773420026007716428797889618541568757365386859299558971882101023332392669313928464068461078169767150138186112637269007156511299320327538248988434875051317541004880691831387123625924339456630318714914331508095197546880152777610005183057159916254843469812958151756220500829170792605563233028740436599159385115311683282459190761412301702110045347407682558989029736623414452201470229268120883673726331975075442422058699150703647813349919670168215067812752499593249483078643130425398796837100836894167407723574885923917776897272579643654152946698115815383513769529730011225720523085449721869009476284416724838578966987506414800367616123088083241629593502926828618584014604745397203087369565604109266813395180389570523532801915945107229211715609875121690611375383207116860699773706797324141686438237164481179657988746396499158523162196203223830333212294330443823433188732221032537694712941742958903373626671256892736966345972147518818017234261754404926924680069052170902305458326741943990328759675298881359840891882984931322306223574221182852309716556099052462661020206977495008492255294903697952140792751825941308967636115943752465817925277682394566434999000950541990263964588706643795491087252711158811697593572204284450047136900645633982639709902372679400960077279709104681804268017728120472978609243448010219977825758795020943946528273767509324055720658115117868854922586574323962288228791967024966280424674703158082340581130092801388572853931363266214963950382545104695455692049250589586550429000121039832131282080792154003729170832301142525111004314641049159615068097499044329209621762792141597334713308171238128776791546738236385788296332010476125234464995434687582379626192226847353462622710245744145083955799370924725268966972703168946853103630224833773334370199160858064367881252997349347954052267808740893471054316422419625716178231222550917566707271086447548691987344486103306361655020169353077180614333310694807816507250931184630642213875167147945551693532007067103013163324498768872064134876108899986062810290424868291891239238990022220375649751013062373022479124256736534798815141509025064082660572388089590781671415514168407595030620799045009904967602360068026265589638683329917577934628750730910103789818861989451902212147771984554033268535434757969541169582533075868873228946410305371747750804730754211709647436446508003472076856273055851338257544320908099557903369884279608485615271849249028414655035863673519352908370175568152012913784159874994195966500765378203887433021162123742262971083928496930981109340849331189518356334058712423433692602572040686286177329222825510251158964984291603013604559320832173347213343278399904519740169898880388324416854260474274818658078218922133101589210739125617239948521583619537118050791770274493915969182724023535262237169850520336989559391323185461652573331812649498691795964133581098953071117866777185693908901448176634577501653068019122118237509740565269670146967199660362144343523439612022114801166593809988606905240537533926747915351672602133226548208459182925523549534034229606521878243123383875389402223403314476267874727097578428132949801331338425100859749660294841019351779713058532115284483520906274342049987956456838420559857265948336906384108580907897349115281434702260814680576508532662015745402917462524024175522780687775322704233708953749037951718157313887272811210526994672926363313368733255085690858847058293906923785535714122794097730528035102615752512109517509931033597558196527373034638972368098173700630139809076360610805080799036107935216704714187203162999506232857226737348711137601492874140597479448543338527090323020348362728021015572582243335754044553622525952554658300939180641126969252318716331294001194750336092636377842697589915991281033680557378570297617678612870823537879464188496657841025418795565458865565770577162089508360269292838706958679098580781374221957110336057396813563698320634782489815072817909546837380292791838274507685536574180616158467334551066189700175229780179366083538221798405461785490801265863859927699370659763964233033347361829828173085809420415333159690868679850968224646963499525809488556455328059881161093821255606787607167917524747562084703885631991739383618162997831320665784654422546238151111033572487124506364016997399944957764442483474462058223382583717615654682322490670697287883532566427687742397171202421028461419774744709708723704796427339553806329816237306866387476230676994303901685951201956449835635615791822315411355322881623223467815757037517372207304497779720899017323772683284888760312920946800434893767668367465052607630781439313642966835345768239592802991603426267872856842555990698439268290329774864830612713967230056469939298749067630151774017073935761718605555269756697776967061374499614733735047255961120838642273795679122497026711394225088823970124142767398814764680877845785596362112553150343659412394343133146560494722385124093679282177951676843860947163257409732102994703515197280233397375349371156617267776283138814427473700758904627892272905416036137105252146298250307479008615965644029446591341773633029789239906225588295161472036368345075247089368150808086224669863283135410919742961847144355655141902880525552103355264537693584245390107306600915468359821807144313089987532618281263304849720134463094932640978560084885873988683570939871824032233106908897432008421537598616151405776553043835721833006664272377816131528557767544457682861605110102311300851601464934181568173219362940395204043703078995026233092516041390441846527606957028022383333026005606801689543371539603713412066981867406264222865181990907778937065230181324424695306511482369241107371868808966933656061562840574685833782946388952215215755975061944437098752185304675994606278024023086482746851160051542695625986750170848378614875352104811968520573225370644555269041719544590330493926102310987334763113183072956505206086619826623862848837714536842789308943955658305915840523232825824866540175404133235614406981400723292615497897189823544273487623881757530122874894572870369986585405904230301233304009930252027318861405858614918179368555002793253866912530458705241760127298271024701883014328962356506569039057097123518491600361998703425742233200771182513524906874553890474523399309961928452622043553070454357104364055037888172904778784284078285464392545529416750614748801375290109249725385308689569666601211346986416264744996200406133364422440575147199507225163272068843727326130171918436228281950352427501044357228095705279865249891451568701020792799863251217742194419293033091526761987436267902313185532371863708804319202413637552909575414782917098925689904861354802798098138401410858004712913377866454465125207142374277317470974447689002097460551749992340513184333106985933144456056776200894559829208168187614257306711007697647352205558793057092646408126513551693088276667173508215366719716839595957117798476550416214882861862595805369910335514732657184990598349014897735759588708073065578646529881070886239992616747338183388863467574404874360140927305896184115857863048430253759036173103663383322151126183956617710346881023692107222304613218103880058147255367418413476911902379963872837095633794454867514326878168902072967892486291180118403115485310888710013938652956114383867211829300577384971576449045253428486857238826869864462235050284643795936413662978755025618439646703803711957130758589440432004842359835515487475151055809108503687031637391308814344370466653786641931697857533285546059804158138786739168347905586222912481827824317649543408137563692816039932095299307528959491429902400580777827489909485566125285004376755732846165876249783787851761964072087550913120625289400935344453341615903316750354784364244036023833328158783804286034384390894157973476798191412789104420642521410939290345098478659851693881533618879255954032909464802511405716907118364216393981988426575520262447147721488454564740141615028603046898491628525079440692881763766935691253687758242829376861213634812941634574289961972068443297175854381884627690707958795500664200287203055501517710198298790505095909261474326961225847717819269251658754457817431601759374978410458015767350087040644547989775746365752383635202709295349177832786456305794263054139389287095396265826546141571896420605025844256361302648231022773113190429689586777682101009180199073564611606303239113724351357629992331642990052261380579238064888607552767964033711133786295070531164895038320566203730568176868976866751814994928118220313204522266652773414521830944206054110162520260939259226321394416760523731112592847229616888753129503244804014356295531881356995680404408168972425193948102856126522504597132467575157524741363536568132159302177617297216277282129044594654403112023160725593030495770427463697714693225432050076818016098270145703060001327171741035518657494027528128901185845940594616016861958938500603689878318153249359442486999166691410001667080718259944210487832717056402008547976547234382041111769057000541957989984615415537155597566119418992862737989554777070142175531202851329121386098809759046902464885472253326810874631875586976794640243932092862100375889005605096447998833631200111195857625942227758428528089550152502455819710475823063155706170852593206970358216376808536541715730250887501442279162905629416707917607138773273018196134382720507874658346673581746694062027930875079162381063676833816245970097182528547285729768545898035483252203138666436519716448439075845753322706907084521721984041858964752522896577265179021423176716003095545634851970828858318417567104345486007013079167571435785966029818943882107672061354518364701519863847123089222138910360946359293817311172326026586097596600391040588214486831694722894233633054687515150969545401764507669018133992263980111072391138695605508698399875950042999680951799747563310307705217486899768107758144380206040159149713091494016459998239118258413489021221038159311923618792168689696101659514580040746061084954736717583642087847063850529637688624464622719587860639938380408168514134793836039557507343230103360788026205697230030448811551308788038898564534070726490153922608101886281671005442504756957363684898399027182351395665980608238723205157445874099508681537663295964738202676732247430885330544216501021099508615036715310025196223057512841582912242823568069198090601868197650705096964650110455592993067462184422722244975328788753832560003487461053575374528433567262036981070825336511781514246226896253152782599127961319789461008952960136889920174382253282979458563339047450676112005167917853872517346726035671426063739789674823441542665792585967517816509725568793829029804861558114072204332297274697332282969570681162731596896338915430505754023846271377913281180587399596640994757178292921227020164605287797877665184781709879391823955239993227097683677815522208919999734383843876799205402433683327076997677447351149046095802134124647205813036214901405593987990980086013566901339261843192987735649861404292174492973922115955461482579433603036959662918360955995053891244633240285758253611303981067094023424319126571324167421538536901969141301471362608972347216613180778207196836020810197211702670617505715044368885137037501965769347519442091124441342856690191042792577613227971057754461121965579623049708995973442693023131593309449742235153497584016641881186944277265561587235321786854885378026116706717445908353526755328870111521000359027817875706052488001895974441231288200381782003166427378015129061691223374810824925347954623688251837133394560730361519817199371397978506786945219508980270943057776793622300532712890926993048736654245906142177232604402004301212470142223128682676395308251841669520797692858099722232232155140742039820497919640785216838404302846350847846079863078868761705503175205505587728156311247887156749744557439930067468551246653304703199454058596082754219401494009872640457556921461057196653387797004068678583507493847214147563988532372500309105139590914305002751647537243023548437402041094872720434276346978096472917347050330418701999431257017263687305801473391814139332043924158078058788836116660501338610631860841018944189332778156024288878765145471854549109639783148248358778036350554991132415007966915550225275853528470965727577992718606314730078440277058993829806545398162161213116458025500243293623965824532874932658151381524368421084030366267512784733830093586587091293950237586172856785779401652092712978829088740905294035585906560783005751964132496772229469838351809196743353562772511914534792501562390733648492299218242559696072474769528801871030276444327974834653702879880688373480880068399535534948894793328693460480269355991517118898945125185899562428160371204235026422187503884091684800781763200116334552812379534004067940980446730392060686546349141883828694448557531845756146411257027191886996280653537150536079679647939733839362724472805770581920690116291167658140827407513107158972575314007589144937208235599126348363585432611868464992292216717809826337507638105316207464084410060998148190088012092526244935740025355777974255966553538826889736136594077741090096023314356759220152405093907695267708600447920023247118568023375459647360529569687513289958594150743183328960108862376326939018841900501387012121078949080644679557961350837666595123467926910821683071101851364597565471560727211543870246184722952888038059290102721270277320898870844671642947768911462852300832192079435832383414855414594500812147970264126533845579238314905224020825488945833349295407117434149193288523697183129885707593661960147286574896851693323598860106239317920204900294804740943736970218636545309600821544289612531374163692334857030790281391440745920702945206499272418289761315132803671480801193852846325009725419188407933401472282367813585710113405972154402012775986783224508159776622061997356675984758057190724374008758107014379032686523374819828247338470353512704674758980249967620246325231684923986985992445750996437335443678212021312620065828643654553719848572658702382595989681683903361212714898473196879666434017953008635323609274174737727182103183892168089817583065765510354125038225975418291943420043570675074954866332721645012647794238597823657560983008669552322510422364252716265830662892585612308370148768697607456987278085578835601124079486696044177228184920782055920241889262060107219255641510831377805839177905134072853675353096390618334586299693779446611066494761998608212918801465006703025827910202570909021955527097218038739202831332455476186228739178228637322717226353734763866550800107121340308957516698224699293283118939557138995187697682607276349978480424342444735200858125941550209345312893908378848057526661029306861572906578794660451741488552576840479536186524776163473841774489043108769898958589264653694039119636237188562890843891430985749291520912286769124289320141432450826061438720809131114210511790083980590435868960815540414409249491625279099687826188189711623908650331684345085873496957518208952161642082324905651791699276326407526314413624939231668479344643913928720161079658652445588726714154304777290476073878797615341003318916785066880248762394868040393346513988399429246815174485314972710658916946077236731455772626275649886101381344139455478138317404448264501183342962584802660910352553913725794993275944521093548843642351198145187346650700574202213551320853348851581908277974132006479122294381029635260181553025671443155589250332049080194086794148044261558643597880503247881963652625468109141073634873683081897264999512335383603677384782421994967218051281095550101594481183168096619403854926551699318672626879778054287698599801269368463923401492735575685333942482502321893401173708399484968865185967616111058771171037354931604291225245774955042733436797982550515144187220696785148358828821013128625263924083830076670874414820486611553240413658461707956793572089343699542542955535231792175947180591469729160055291092996127454486246308340377525903187910421509263935502630901952052247247178395970228925980485139200462840614091169050907022630147545844692122632862961723399998409161204152273975515576786290876322510884277785454996316466553758845211297322352956493651052524697146521946452202161620662398080715828634951255475100913049382395005917419268077951329808330099079112281930245331189024007056750571411808573471067053095096536779216816564285739078733849407525148024207863757164373819070932682756567947319852476091856145673061587651550568540584739993948669341598634988539053740964745918895010132827536878264589712350060258438896746027868654710820849892415437935366924629243041788323632844159161811788557620542613736272769070746981819084964014535794600461190860542095332471320912286790690856704012247127973953373551697079093282662793097848806344564322191455709858787670417345586868665603895824861773512471201801220273400819932274697258424107638404092415239755991626909130756083533023757225926723906972957548972742310096595701176581441401713736904853282172377964456604374102932067873367281331164683040492897301255294685525405310814081376260083417659131940527511800565054011217167456118127475951285999316903854558936055266094445808520641872453127351476063807039223120471562201410228501846341690652311210731989014205338564550048005218248355301348981261327737800377512016751369043134177320653480400612650024540364757134898759860007009062833170612864438825122904357599997985457283990190998065693054248211731272056411436178362781109572583268819661308780246974706356949514258671363692474813774830724719025462624213028293850485362277406516798412102344584754871266542524454508683927852126568841327519076239983131371273146208339856489326426333064978550935652631713257046012738553197486706507046586309802285434062258365417408705013807316093146678125219793999075609391637730359077096912612091391086203573535431174554785507251166301690946571222097933080431075427602262430151281410459098188400040159574033593319330946624950603224628527504860302929505521753377335468068529457505455573551526671808427465041912666263957858564457356697318742784025557598119557996602290878428087186379104929128877903903797403906877899644764656668980704243176202406678581646970599795666071643370515011600984258482235541639669054364062044780805377667990346936263226337085787740972777818162615622476105823815159147730221963878852440156784514751815801985411180990310268969707337459993049409825582618751975413653889702032276759075087295767916305932329469127784814181558713819382301953869499745702144935508571505152727904058548502938055613562085534938817037682084677232348625346321310306846067629858511783866957987408541792352722428786717376555104950288672835156836097888499461022509457324883620723610377006845468391461748072589921887869813756186080956276612690758454014475457429253882634534903640960515108486540193441814430299691451882342611395953489970026767051037623177628732602809669378310886721374868661665878544949816461808807268608381303709165621862720741980944834982380477735627870232831728291599429290888035181694341149485141078073664931451200006099818691527045289116022926688683785355136718604732203322169305617887643804999036804394713930368868006544371028107615548242242014909462635185072692024213951620306802721891836143620495891602137698080748090251285752308413827328504132611436251946925275414226840270906561393570352033711919642850830231493788259762866416043043520343082945823091318983970960476335883958294747200282282399647812826422946163981095483029424675928141960704622006078940001309744228462240220451721981123961680234765345592402031218956571630450716755805564845929226044766605377421019757644074202831572585243643878967045331274419400824151180655918753357552850757548592125193314508778980459894399226179759428179588656631869398067882811017918701028030486467736713161308268337584652639811739946378735949347466375668260172073027959627193536661771566670014845670274392152901861455196991581494720479400983430663324521761834788225558823622270867887295621804804321937730876006566810631226994982877753830240513231429745423599603812994178032913594977042546461672400977871832410894425623245466318024640863434415141419109996282600527186515293932371575249464596211779591604448259092826500618863961614798169496637837515066443346145940310765327591361636252647968699038552009701178857581923724233940533383581259952930261907694778779959674122535986716748672731536807541218063757894617330467419413955994480108279650939034344277120185018549029363169995695523900531902227401100393745210800306149170080192834382011352703138466742420613566209507880089448762246404856152425606081646961899788876067320893801781606878259125140677615789109474012814620812861703326572145977869816946263857906514070167106738454606896493086419724238828556287165479809893095088325130134833850386082800925349365525851456408232658978291296245891327903524304612587887036648817670551024433971364592588214234195569349797847812213741646555502224207390100079540769847418998795877165119209738602047020210666326690644313309370553018467411567468131119781769319558177919977337791550986359093960010293141371666514570462745779976845929258962012849582735283223826522552023128249653946235812059704299381487565883957636067209073129740351249066504046721369858768726747947238389491222122655130620410946958481464692381641031545754097992464758671228060415080406859873248792413831098042378597297037728730166187799034168646746469539846014692949690814613275890366283116491248223925256315722003787668918982156928276914771229691045597470918227212464512348678761648934170558352735342386136622464033489275737154973159067155023230295888393173693820807136818007464723582492119978744496049338369351992979869085511178410534421113060409298436798930117345637545171373553208909225415565060894764756082403604176343261208186783423906798990447728894303539231273545841465965395273365256856705091744317090092688133274415958418648163105727349111290022508535929900754585196530295485577192384279066136872185097251113251460107498529478136136439218617457619651666732173189671389700196160187371846644571647422902303468672159226910599688414520693494797313343902516569004580725179749824281509889216483998842199492773814840675070173931012706997817363229313771166043436554540055284786246005395294819948957524858452027192749273894483668317267035577485205000738409303553994600475434449690305230560398924888484057255886277005103012444819978079959107696911126246109331036921629203094466637054485335887758321886837045185774019929555813203024992918450431640601713589015931681417184565168350749521166808508283931311620405522069791852062788882439493027826540272174042844095510285936483230360691685157573793962552762491216520892686098078170710385380539174013957342159111262381278292484056676217308717259688748351497456127872254229110623366283340255241315658157625628471541822343775114601353752380984014530404844704842338508215101328311411768238812463286332346886067572622119558504102398509822493982055404388396697634767895242651236644294047082675136672104483125212121970541456531866227424858751885296930874955000536246869344081426269810826214520937842419663168792982717995904084280083806422492740593144879453312733548853262447629516525144724706005268045210343951370726738402122451018638047357703133692637705326599092802170494722210562178037185461733019751986667971244826138922522757723305686694723574556342760069537751942065834135729082173305797433349223474452326724585285614455620060564923802834674689320208528822967489251753085182036006211022270070254781188588494331654593721357130173281814469017009134548204095283047940230233485788246648285674120150522306248517034341286065315190577211315284757914748633294797392669157947744229148584473327643631540708211328625560315090476144499525180263402581485655660023456193771310905892609669107577632307803542518797349937584630456285040535448711005848871832489649136049717073751712990134479171792054316973215015079364155443359650384326771572900274617417246505047538421345817910080071138519745966251276358661423914976724499763392342468517216388381107709942345066718548789591861547735971962057801240726509278513469392849940333638649587173957084779052833710176505747173178716052908342935457224071627153163877759063276129470529719269804773403399322791768041392574416378607825903309795195070079699419749775394242908117576839984166068527205249200175439916404340092486457603350805907372440837172924522825419792106618457346209243976097013560333495820616847978655830015303128289605009119341755855902419700357753654011317861982091840667050203785019821819784980141853045976123414373308870207251873726858713803932582984815710352428388339814810451477750385712987158386544084338026616394788725118090422942457541588076561238375143988200217745634019417497142034076876295269422876843183043299781977783130994742144947737039154334301875103736008577471545310931017130103562754002634239070616283685266262176665715101565020322057289035845165528786280568104469334093289821161701470963308047112876901019765473331144052114609701275875549354389772634608774519673065826661671062164128826941517794025281453197995158047876726610566830230440940981955142623847082354249730168773821428272388232791454756145701871058411834105855459276939034328933619798183086910020307799787448371126435434353584598857052743953064126523034517840345405646857245437216605132765694326122943250272301255654301094383332956167235013301226907865608612511051351821305469828770208630824720114204084483750574544242515417574127903882295434678967947096254906594491859085000643965425052941193257259236262174362353296995680387246584426140679704575581878501101687473822305151648746292030496012583654897612629323282525975746741334065471958490146850257735249122357295107626442977839012687643343435671301434533909810121117101183207876533341385390311938416872499323261565170614572377946348427006790527982798518544172565164937431639347455808658171796741644588968512599655351066582354627570818560750098563671257181780214632780073108505707893472424268350465221897407286926669548114531706928853992064671063092936599707472240475435929931455328911256598274321569827023645735264296543857491107593898002447042189024522352583604899537019613916239861521252291670001438058195671575212988722841354403999928036981171895374790749147142915747036670678730798895965915791514155365345812197650558291345542662502114432561480032953659121478959578585850180954027445158975218089286074791783544464212876229049214231345770234101610560216410246223692640414100590124949905167174553814575829977467582806045530049547376098641846563795081836289226690438405712966101632577669283754659697563420213528109468682210974245822593584683212625758956305563268964679904673486866472005320410457930123749553597819656193174214296318645653184871189839662103408257485617411532843260327254888904354803779387670175080370589025015182822231264223038369819236230775855208458637000091687241845600774914274743336964991977252476527047393290241481759713167667378321721802353479356439516016485750076801641175067653886574553204278655727625857774650167486389794766615600912818643033896408717767967030667051670577378264338540771321800322210393605189004879185821033797922143311322060796115484210931662442845445068453326074958579721160861036156694328659161618537103636619590161812251537107280942778129895018899942050743111223800629464711842156852703071455986981690690692700014984643472129870960829533581058781397248132315127927620531834371201206868349275951212386011986142018988488555085883356997833814506640843429737283815698175335647197210249264102914585368537856671178187798016351987464588609333886558746503692834213776163833712397450828684962681317288575271567196480010689349094894247611807991552708591800132845442757719895694063182546283835313167695867826523617012387857459175380931375080098224632002032344202341071072829370208160152111861722628219711254271192596079170370574742551922848181862763286828777991375813723046369476682619239452484319849495807961290428470398999749468109583639820994878363487225933672598688985724613335607972937360767150148914011745683021826698187982562420918847574659440029080289037209610775739924200058973771017906865136293494431299138654510011143709567151465826963264273045545297016182351800230017601541691710818970045605043032187381331312999717382096970543614582975443274874781610586879494929111990132826954844001925298385240573862577583047102763541260481203567958798370865551234626403986927428799151351095629424560907703497359468295101198272309610711482948009283150917582553061724067436696361731795251463460291156760866430272408754316331438343818338300876633061502253236926620105750072823564835145988616985810737958579165158849095650043097676236557962598717370043322858336135633650191467473223072250974622419326577205494152602020836917953343433375948119898163292450711388727795899123591081718652692361665799127188621842576535261912820262724092753273707772018859476119279728084063375863351118120046116792929635818648039846811900668568921009988959691820366501861460119729196882411027051488471714003486215010176296924223219436814300831580495060586407276982925468560259800024757366801508742492712911952995655915820756517164511087132703431637769054621115128847188191780208464281650898549348514900692646309366225807933453254413216203133297552061289377902228187819197392834450898309774053718963139999611016183767129853794027138852727267874003504323051839597270549170308244666584320377307259002879275932513049230336983640585042130526101216008627772188227455776849668743010940305105530432722864207882707623985473484953868084289587464245873108056418698435425304699796214488582433065885978536644709514083201634580351192082535581100361946516178808958133140696117477149609321091158215905663876318958569225992081510050037115835101666904517681268369289968139815518861687404008258195241877030080832687802718143072067888529362351956455961865678743953985157129542075660744114210562208894191699363518451434544140567645517081158099583658846826344519343711159475774063359660284965778918195142675817575289492252885365866611258102862711583452299899005386242397940760032759563366020321237699764404138995272665890002936241851574580206400061382529478920493738034960790608598853774168018382707429176437841432968570267142791759008793067926377245207447581942985585927254916740096259157878611102656484923627173009756764509754492606412388267178204780822306377061606633758338202445637036333904741035091616926044002845877169507336514633684521125705739847445023031476514476526908233940964160634667981743569189208956916132694246323666211690696554245219367724810975950606924722623439876076230161585477051967262603994536385313332032354814353084556615223593773021760950692333772923443071106657716907216805042458856802135965425905088614003563860446326605250667412567539213442183907757538380146852818880304336353489236239732823388330611504308843682969786153177970374037235523568317396115008252382753206987619937381694043698928221714707080965078759644076848075441417014114364929099877245746222365759702274048079521636703745755951207464641634034305946230386688609306907601916417572534882470267177968457616207624750778551695069233337661256040684579498732062509545179759005793048977733009333220589916570637868957206879548798235854290083274998908429326831972137731809776770221912112781505948874845918650881086052664739406173064298995140423590782939033737234090325204565335297234191864284103121989426720561640511018581006889720380628304524858769276475506711276101372131588573478596619032635970229867515175836042549956554744857297009610323362744098511579804936542782258871662370137221946579225218560715670621257664694679971131896474415475558215588812731182012809557628756523967300505050254047608442137646430073396974018061656090552373775830317060095489273976884598196436214341487547900702360483689616302314115945301322899225609110454277629283021141337963068893111177548873726798229094392152039677840777920382083475905537470157468594503419816744316547008932675013322868236878513775420867926760807564271920781172145223809345185935392187249792685570181338720243160390524646319785990942356287155943405537210113434284658861898068673872580769775954316389743665412443102838853172798227835801236316570108314490018954607787933940595128133864532352603916519417618084568237748320594753313179380396705117390539104353809615637886864915690641711945963283035356837759778938234051881705710532426859103910620521210312730715576276871852588389043120956794546207053207636710855973646423335778494835292840273364111116278238486311491990479321489764536229789277840480211686480321511756034358650003556343475058650962698356149952242321004431661690318583001990998165936659039662075467168232619510516863459039361280827382920529704789545842387896176745196732854051780520259082628064322797887779490757133667241164947599873801892818363800919889034622559613917269246196004538429871770495100695376773092892845221223958507838376394472376130907350890302381365595149560203309639745741432566272107626000396246491887911455870081951336686810312467850219206041655814038289366567492251692968685958295996493882602330942766250912557562855470290162690456869100708621572267533673749807237064526309494071766928944895284468255949828414192184714152910513343779664707115744349853496479145271647769436714522015004004597137740766104259273959868523713527364054235883532997718053021023754872118908151013230888711907107295381023616717267537334594394296640114713959554134907525142804824698882840512376156342868300463479136676746061195356480585621573772873689069035034007556403491544969615939679195479213825666328590616769904996178431519550527642241759029863899391489411165058138964583012947956831092037384868425949121662649275411771344889739652155674241502062010944233437354056481055960827699136780718663263300973467910003214452949429275706865857996163639083112698564849289377883193513524251635949568822003665242251604805845887612128991966701664556552728259099491956090852155842422943799714880037134460587402418847930200562362515220481520769780245329357216809962971195826969270482398948632689157878532139768114295384494517644982726480576563718576440713331453712063532815172361241974966726691377838982733727132446470986984321075378848382098778960594862187584691814381729926502003682348619313826088495657586873771378507685588248005652665460996388439934952729910064135351973160981118784043672837697447297510502812056955948062811546769729067438296348023047094016942522194592176529865767296110731699809592249269432788841477127551810107065817217985575970093865035668908478043768622170946847616539463505234715066626601068045211620333397045300763580196405676705991015788598110445223967453755625025297517294365040146849306391778813050798879019261671852580597234513091180458708781469830437461438589540191421001663831486778455624616752886543157048857367847141664831962204933174860296990956344142075390764736084446134000985196441865005999078723828109040755087789535762808728849808681684794018296296197916232257091313973514600710493950115357225924592412484846434645973973328635005622938385407322359806284066515634599279330322670227324946465665011304206998670706969188382633587335842418543982899289836712701338594738510497009824440182084595109313037307532737526627259014812294853276479681279998299808576795689924787894348965894409183559501879666550501414405514753947622867954835939667562942926898355090212270842565991678383862615602438116027827357858262342298029273577408508511371920254125328181851002456307334164604100627211453314872483501214196134949452984667733530932148054432260916209101106756948080490772419075775118746022386757407132051501980257887199951841997777609769801781380135579209142675319571000009632436862435686992689112640644336999726701923171770719978608631162898124718285990339089854805449189654294805844698935756719765887873616762513813963056284347438986408448567435759881306233856453155169036181713411030117813265440755531111729351097736657347546456563474566420390143272805154052226821776061544405060934190280301207759788810919534681993141755477469736231904312342310926285738699088113048147790254146287681299857405088050877589326697639176399910240931281397964935538714447399833311466824301728335170666264917047701721939677616785108709956711092328524698686430329206480740779290080932724632687138186497240842178023019978867156706902346342810569633170401663219369537285635798909086371202062807889613085648258727706355526269942324398164114591405868557473516293627285607788607058994764352884244015237704563854834322642838164392237254921392181129133809626644072886688941763343039518864128076530458789715120434841618004968625292214799592704753448560454341031724820486541859441443967121119366611150816657480428910358461191884605367539859361201627808176419303978877342770071795491247745776089781523380365235728298625446751070909948294216612121960193432895444532868073855943796037491787665079778311790286591793646288137606536626062186514509361522841863654976376242581030628150898444963901408264527275627768603856353436316292171074244832774354419895255578918596895835601890601927394552238219150906993613261592608244293014265569304105315812712138438375067952353574509220420307781159769869726295313249592990328780092714655424671090543583442205216912949396239683694875368761871757986651265122678180612736782410829826369575011326056495735921712165778049604288214215579223497624851890091809200454209522502722349787202316040077614540644949988841156387206661494515790246095622963212925575874870422326014800995337781618262541190880841050015102865307076022602530515637691269522346837723450354794180859690781140407655857082020752480547485022868751483792878136593393890584518558609880621889295648566466755199003780274163727082339373103103905050194009819726774755863402215597237796518086468688197719569717356491394150331872880923331728092805059108393297089012212864551044013952914709751804659339667608319009031637895431320070573246806740047843890126580294211656519450705149842748910610231397915026567625188122958146399475281859502020264042232446188489571147568861612078553924649183362687230314976416341766751639901489630623395732149842778067805812370002057306445547608248707824754749278274753448406777145130171624616878123108288859694525990637735250395546287418558388788408514637143433904767904630207428213196091516428659137336761704328399565284107971829822442851355191275032871996184122211822251028015874366583113891176766255815158675938077697597415566200312499499608011038839941604572390654244757830653232625424503752082534990183483706623097200422789382575342607093236797504268818580956830600378606666756230974521529504657124545207465181039248754251116247346733480983010280882094283790556176244125410204294173998835595899642135976746110417844989621835166728785045980333629703731390530828701142671068509124246631925665766429253658828199343623976616811626341016917370274737563755854682133655236545642248497160084902131609151134555574060729392711981224207846616526608574201982375882736564417575665348133191784321526884932360368904611938952350460701954655710983761622650604582008633924994753591847259285419433378748652125372905492446367148959047660084702512448442150364937421749098810701899686273704238559571056418009171341405282839660513681350810614879273903473933329139374379182616112310139143266908646011816672871909337961091522461507484710409297029353251858048488238001468146892479862306811215582457352577396464034241866405705587004171568222463155785337480291574421294693291617443830879135391951892066014043861848123038103947420370783077700459862714601351984873996115804241993862988705843415694083487350694272326263017126840182823254673306350962673880251081484693845625658177235181400484084788819469905191366056646691293202956922857218995287155708802827312273607627671251634330574134676355249100927081673973119952847881935134626573892594877856814606054826503626680431324808950641537250678186155995987836580207935234257169157369980099152298144807900836485354188848801375936536744324368036048922763828028152162307418539873947753289400161413284113168133950261678676947716414892268158629143748542249771776384363859650957188798613585377312166828596488841214043377344323981427353578526811691659915746155731240177648917645999958077880036937371430515286375049204634667045356810892260876330864730132429832796162290282623253003043948642676462095573010708225751207153591010111500240746814658917690579232553725245537886224551200303603351076298123549021335444019392370985901498881219632419835169049502714960500850525694205506982365997984179304958683496353692145142852329854174209811273777461878101836176831911222113557545474148304447479505548403636497202778196499777400741048056811952986556148473407326857483078068121749382950141212499120295011457123520211605695780623761293323022672029979876119029315199310647591485292935381787999233283778895528477286371106198607909945654923964507192838294388438173717599231638209028875097817084805551528823784537176614565662192341499853191199720951010401058576555807366651777885892886023549645095934000064606462966142994236584665502614772131273328843731659671111428537832283030382490328597421338136596426687284694006464425186692871487208075249851574013898814242445656714152907158345497572224043882705172304880514021281499171439967014556855899168062889550725246853294146062627288813451208346513691287941192643935623960156857470790700718550888042152457151020282333611720124107287476243722639944255432307175864342252749948975278481249018663045390684226154307631369862402378737853107292029767007989592382646151074898818519507708934362106334960089593344667719579037305199550837129417579491802057220636753428007241795070510736303135990559687707595811956141996399238100726767702138261523616700540061433676743302889973825600293277419144756316906747671520296735638104946565259063846019022868631816445184103052653560962355100902270270663851289619847181838888030507904317830077178946326799616328801962461156188223141625211330967408396644424582840229064666270251769837855265920274117794669864001289019146280147997097673866102778473047049206722753974599433525136810620018690537588531701123982662573259546826397953201628659451182971738141328479772275149411886494918415171668382561604057684768698123519657023632695459583082219497836861379163691114788679911710410745559026163397236074673331327227944127672808782797780882351663150437579546931990775977854217141690112122077606414167616166569842451409943503990663255339380763276120557929164733158339952811074365988912152018930762355854957143895845487099056176190679015297703233220878118566904761999567651443796307327415601433869730471360544033130878175236550787989543957450034446636853238574137338834114712691664470234403640108389575931477145543475222651798840218580053995306789413274027120203279111765201709744596063098863903107193566802877424464152259750323741024351992263451790557883876564956188564489414821122894879291964173136570647458705403523248069602349899900121133730075441585421550868728373722549156291929574734740126951123591394186352534975171814010218075925370072425799129397293295305079918713626981096288385482374003605219493671030401297846190660400999758733918303732646671747117132991391864121986645144973515492687249952875905139462515468323873451179072229577903659518445627037556420431090683647442055777618194608068257446386935955220692598097891548503020013279411268613637104414931926320959184221593916458970735526591050829491567559480139348727378795173844412746408971056476254962754663538164272028169662569404180306379242419221030946467128173283646425285673000851322556952820588209164047622831034546516073484796282105845209676662724307058226239759050461782249510998029031324471974830529971594323693555951712183861198956011102268173351306603415906779936708614138064628822700270053218614044851526438788266204782868272129687361054974458484286592398769932492463531799505404984144420443270291386149920928559736288675201205005819593490824337418744789451813769969151589225176348573579305157715154936580042890025397463784725521599681755663647606429109902970247695066073891527407130129383198881066147321442053826976065740862777307563931180690024728280628849485138993608068081467877870642185141761423544707720956211286261890094426846729976917690746121796620395920618391853256369437453344440372588615006000328585038208870114433098332834878644431559389850998922000971230543596872689358675786731232938863931818185503950927262159700238814147089734470356414909214537017159432926780941283458212423891995192060391618335532041046971739409952733477422762057322094256905599281796640046119899210974251085451402697328140636069094830006739385218895347132879524493451201004195537182381246918598835818032329812040826906166711058700880287494414492167251350635534974199406498390801183821441905892746686652905612649476066688785983069628874130114264549514873033611516552572295849381224030460837655318617650818649043164415138935383539876022112419343881787201487553395244081319184485384598200098844150821735467967707042532318401537119475763751936611837286437809824150970476135401333885091984435150399355582056147581275140681483204023273130977040872948275946543821146683765212726628291516553862334905344870950543798325414745649179748381959465743928578171688925394978349114787847761781040770593769245484585790640321226822730680956727589817719821193438386596361382329296932451770288882594928356838812241317154317348953586527993756170841583225634729592883452149540454688310544492634944589193391131615321405722532616544333259880394763143444198767682242163430164543443079696249378838724006304444608348795963900439543083751673568639873916062871947839183748595134262748347397929405798928426004664782292855923673249803143894301965411958964754864823676218295064660254855306710323739539604812809013028493305587625098896526479012587878176435224122620905832582588474284996428148824212292529510601065533403196503532809236856818516522917713898148153726478652935793356350304062079342313716557367074448516987935728296406082509401656837909153249975165219112512069752167130342135705390545481457318702759470762748413747517468854562596692818744063505262776287901912219991594737355619644482265554807548081397752730997952964467725425412047998190240753999224440169591799106165382714064344497660502220543722393054469594897337132287503853319650319970905831252829916040502025203572744111949040729368338421407130124105811419197129754997139498929187644577015639819808416055119650313881419566809985727543007742643432774274244682879636831767741930434663220419299284566467948250436480345648666860287321369523073826202999147415476914679625890384819083015264657474943819768043606744475209897585470540192692417294900269087339533103956034230310294456129215056527096290353769231432869392024687770005310203535068380829684270180185059608735589572728661416983465492618062131345010943878039376778652086521466236345537036683975310566681333187663997194342889662454739382432851797790929714586260450148173175994974750170212826911163866783914517656633304871276750500092445076642276309926400893913132971283685151744119500265229502306808262902080698602718141756472202071597107736422401604569163438652917560087742120410552791775451652214883447216780191864620137378336445772038281044660768461490603788541182223098251292681568110470915405695278847753636302340136615002592283916746217585235241958606827386999511616932226112935912140977153013855259829571939516605682179205719922623685768497058809292459000060383217607838259257242223085344944838491321121699298732424759055372814926710180382960605102561960076886807366424718195862611011338463857181996752305007080057966187199984326351795386026748479591052032388070324851551077067852604917997788311313540921386207274803865179216886370573416648055658642761049857880549060761289266236813093988548840722658545043327240258871966665109303210501004552120934981215038078308775294549761171333014946924921171000520475731000190312647278041235526167738452929602513927408980105043183115996290111763235567697096791521365392952712012218424881539292275485707290092463601766900092364541527435903712507462708952473971373707558723110490860800116946924634502912640053309016136168297332628558647784244866870011368689807350954717382045210943981664466500496417749322297281887808401156909971734965265561420722289521192876207553437357370577737611809362329665132544062435176924836430186732840301713581142830305518547475840705459846171887536481315903794027355950006752770067174659764089286836746963508328994273510186010677130114851815122258115628912403763503349132926949151131063480377971360296974549801848454844178129867209111378159219223209385403108503179177163729430020930024870649082339130191960562113623595478743600889678437787393177913699744843703017019865664273189913538509551720410944549323476774577888930484240214323410593370587085099395674626374936348911467040608407205225786207461772189533564128703426282270802944663436229491365733707979119989722911041933149974985284598069635007535399304085848059084296779094911949253787175233545117878716512626036943363876692979513396570582626606393242087676409394308447162488888284200764657970299471578026572921300937920579502205718379405205808613969056416868711754516481542429648629104686286519002307001746153092778507689223951277111959101371099501980537865617562372208325932936269927841400288570420553175261397823921304205835344027594402997842885481832418811589790757412293623026525516633161447557300995949525745580267820156940576567694950411901818817639404198304897710251262846401393190119318874685946342987931483892442696835711364363200675093350271733416863152386026412136524355692881145898264353256647584669276713871722605312893664868060863651339440457311297608963118188850924693306991886519399901926611612123311776733994569254433727171401531945681488394343366509932490984145056205735998550965827792660601313879908800769521840747190689591867588622416319802788231349777046268665570947277120169978966917548116136723544050271312052617406630928695470626166320733048886059288231501376421262566101777089251745736214931933521169211004712292148829871887878840710267616230159565229363094547539837995310084489921645133130958604077497299289702827035988311113250944499845598733376698330022938671127554092536995726255200022532933268830520333002580734424664903032472286780186778811020969223299144635943246570651482678797438123908446776467292903474137213817647149384656239805291468363809476023245222706303198030049297167462247813103977000473530602057365854583604195167093385218327301165222469590959041036005027031195018095109951007291412168304393323246579975632199928406805851934661249151932663589191229787502248248125684439874028322890064535317074524418278861975461476600879867077902918476973557504369909199370560378721577120816393377658532156987250701514248039611687849298321496272708100617123095638586362281747836150881117915231319983297175948164170376591252160819948641706482427103468448322582070447913240306465867656510892103663889442366742291524937699478367562277321642705043249887091473446770676621385368380782514358056836190565156986691736131198881268824013649985856877251651820039480355300711423267355645426822794023999565523476628310815493508600891108158968143751977642393697726375094422271953223004184113252686884834587102784570859586132445122980835108880391203525540488181032990201347361966631354519291944251559073491952498737883880908201300016742334300124505406941447518705759756741077880672203240159388999102227855866136128445316673383638125753886528318815715450765086146695041314546777601279658566179298223602365708520909197004554864755330045317736930210296515823787486566758662166354139819229279347570207054981879950358551494384538224637008366154469493366688030042373229891281195459896393345050687348631752763704116290000129781903156390207565948171305417613113602773987600222979756004256289517582521763417513507400945138085015194587448352636806756581636892579537513344907399264382066928186794802494613722307047023197243685519549694255856001619636638735831420789424236943168745935816187637157459100962851246011214448698274887089956949371663333622496573962582898249455229412097722169982710592619472062486031421562491550447996683609088804091106936389670560659935190182634217812061054134762872609349545515431214656437076015091216700192601789606088231609550824610766601660364172871627344597677264958099339394818241625411576081544432272843824334588729077782088592338573002170547713150490101672363711997244531186417086334730762810762594020439414537595118967825892733591215495284757051670967696815358505183185430346625816993687251377951727977441022294479522077370356019160541580706948691514741749538817726131931785932867648695891098243917621473688976679002192120173962486464589749232738781353520631033099006463335517420223489136242486071804148997163552298437787554603162859743831731536015008773979496090531852976135115001902682586696013463944372781103101269541055171531996163520660847176882927905796023977120314491974899543663585106657514718954386260665745423999499591740768572401740820186738818617624073106665201606923624111461604321786936725534388234511929955787397414815663316065459728498332915384923867968740028111683206136037826867786792888208987032495171955376776928139636434379628978136576189001085982254626674992874120035022128617539366672974639861992349204084741536414324225756251053020991693135046273004908407899947762641745243294268479749746342129557023141506455254696446728616029834328496437209381997736260606389585165637174363008377135907818319774520638331353390334074529933718499875954828176862365058164011650433196632003777035492322877622083004083580131486217102475649519575592328861846023784043463687566977052035020473747276964448739821941214312978331298887425025447473272246411788103652891901459919114591058592835959243852872795000262633265331677940250426245017241256492708751192476301891312531864707784642183093860275046684060684532729543051851662895140284435737128250922055865345542667572486732548824039759212614690100311832351246025429511028058156751899507686441187552163710405764003808177776122149016095198935192620565736859139110190513308324783666410264808284963322377920118748282212743804981624959336299181010073282612914273956096539664524145943655840892427054211982325926866064397776303785077109930008444896769752944361105116289467135673676844688994880684500677438622754545208724660894864706024387690188994241772757481080428413184878530631654234829332099368622823233693100457611239231203377613580242954853335881742209178159376817303687870939063578790155379818617437576064743600990395704159995508106542044313036921430595822279108672212368856035556548046065849126896026288862982054901108970002582400295770145768246562105133372571217594259469091995533045970865127352907825845311027017872443185683933787078423379278847473617504031173869946561570030305687545432258559956071870886577133122887629314809317690698222179515874075105426139477985899959388761454939318782829016314495751422055655883563985301961378711306174745640986929829710219931517964639968910717684947250190287686330982712005618567167287287548257939101227247882966937657918798242454204050568418050173677384845368017952457776899476506842555629361988319750943834782219560940695904752120625333042918427333805139814772823713074400640833576591754413792011331494021875743730290716143728996507817641498836528708168099047071525276199306072752804112557728970200486222215068874569696102630968020212126844618217346452166912394983039441815149847322440767195607761055139439534314167736683529488269485226865303495947300932364428277583444054221800241630371352387707031991003853982963646962599598911363862588341242158590606077749648409027246612577031013840561132113896728151769979811692174558457881124920843186306792005506130644836254342380519541222519452802221426829208563586894765318839779728793887734943016446310796820597729740215510324666076513216127286778103106946507852231678664011338267939815187311445388674111382348796655705539165134176949412732631601946049770692344994210004616753147832828348580324512954919886457095330115438716322287211396674759825589007627101361109084124894233691966182387090086318686251715065498407290486008414466391195289159563309786345216098399657630557874541556557512531449353320752340178592771461956822276289154787377832028250740412860112972625587653423619842646221861789399398498510226851929408414907942148846968193809468180946880901904195827906390236600410931218810690749711133598276719888460953792885923141320880924243986805435287996831235875690718602780722427593200381038098681990781771600596531503667246046023260716923124849112929768211256807092841054084302154741955796130737404871120691274605609631537059032021764443485315456807288031876726758376999932243550167873857542801339097181600981155337747826726121036051399926859021256657672902920960830516291027856654683359299200336416354678241899679086035438914184719037663363899770199430374626180408450219406448665184780091095913256040610925140095523189361657669714927149152039194662188339083481195143011523360389953603976128558062011753537060338019796588343390672128371570259753482828491071461260262754102361957528746057408624351295352877816641761491683585595955081348647638417063357852274136934345494870610207722027381367428967588936786075722920139866233456279645201725746969466223676782848071648106018392184782951837576334405486744620133081113015617263557229372793681767538276267259767032242826907288567438769106189109012361243574580929870957956732044167705020703567710738577448574793560054873613067856947067838148857275006860647103915500338748018643419236282687777776779701631714068342569027768469367208501620363153881842885309493807973533752559729240754552392907007147525507845200079723878559301619859231640796095552149685930381310016903156332970135607622031378907423822320057728010192296607121064881906798639451531130038704174235732676444278850269655487439791101702881351599545193219750467072312678986708733871586222897929421118408126303325493211364236037285591269575955980488429670098098741132603176786891516945550941894498846463986258775671759659268936774299392687312420545441585423955458706638620128782002609392845373885500745187702019436950148985578055642986260225520564074292981243107037364396096257989056106454757041570597834708739708136375614246249747863375727252057964468410394068846761626462429313915557240864055810441110707133650189603322444910201091284838843068389579945135979402102626161360013352105811126762154356471985232051174692250552911053357436969441220835607411923291655710753162476952711640553177570820550780159972488246505573148841700985459990464854902750000644272117400441489865415035342425213052893621490507275786076494221593862920118720094890847369738757278943098600828148577399594720361620209286134939117536497972450552230418536678328835736255024874286266134088477104713708547936947974316015157978009428982278754801404401183902998116062403037465707628364310901610240151027838732529357614897517389616203888998194391645441073114305257728728096067724857696561489427622635181034715213288506752245293916530058549946023744602195119287092413803577148190639578032953958370864036644472188525908026895242221664108603320290909280565302385651754879825937901902061169126977077808539818685733457392229892405086792821312141778900883884159884643099482169078400708149043909291701951559803981367968847307919564985098878448145344641539180269913423796663310152307204076277707998966125402000288957880715721120278602156279209157837960169480790410552132361611977643839466809917552084979588686901262513798267734035793386276135701250076174734966384479689305790933122278943179265062785986968601487927917097858205290351038700953148602513385978420261257026051556072933360302814914561204254009828230268767603955508679167292579086549331467546979718861783013796902439373783986107422173955576919947408512293774690634298716626155829841959445385786849407020914624263657030367059816994557470427845226804262650710404624682694775767462121781408826586138721059760843383896036471543647538668572055983271958817666728175295050330441237546108571289525958745361908159251238597341799884085358793982597050626526188893606388485041118812401219166904733237603538573630833538097485599558289672727877722757234059202981188844444797952949669706638707499534702560416179799985270501749668140013101658964309908017170785476233251155227894533908868787500341455973714682021879890992412226646052211392815301604078491710403346248476811160939955030048225666887578995524558429658819606349246044858240235898130834317113997780068551405021150907097638090133144603322743976839555122065851117180984694873405871876851461703902189843375252917165772553649667052252197225650649856588343847236003020232592178492670628216932705269142656386344669720967263970379100247334948365379849168996906868486694481559042986397966778950772354616469603820418491477249855593954651357925241076297421842652811562040868403348847846084874293960009002145821514345922716093160962032493098961731058539306051701868698332972606457506246965383921834713488104050771994812563429890601471555247132945069986311908911952516117943993221508736999711559892520528877398401452496169766181540307937176661435694843627429187733811281498805961031700465860646774382434821865190792593487824401222687682421849517677074701147870396766847101539446917943535752783090690883437762682383392675605135021793330603608567921309868456042433323943255471473140605649923564966867470965237403661386238840031753005502605213561369056495379476576074414301535074422194364269741537676504702714803905345726050164117513081152429290217310614351089651936043781761088261441513792425715226524732450188213251963420191904793359532698596076255418164740267095670661826478708110532662802429803729742269206613875751258960329189316646013229023900426457623053926849550122077155574408366293350107619329867617080210505789696952507358185281600049223846809496365392136399718643693493082103077455378515157312111248893747462940138413874669616608779022991236278084451167199928208969393467597800976404824512966107744033006587765160679489254571878656164337572210977403051778953650953323665797606664917742409109446211757808860033348989225934405399002645815683809377973072632197723289960167020866074599485045964081799497415941085817689938617673027587489471577017296006669290402243261444040883047028695825837691695395273784573876557611404803468658365938880084770515854983098381281634134413658072547920021320290096357488106945891382082828807692595356897416321612957721109376883337380499026120522791799277238042645190174684789276195038606452295079020346957437970986081577917488679487158128392109906447372557313954269742820205029933767331849907821486470207337629627386372467981560218541824828671018367750563191016375720111859475104981942932223755993149450925683189373724761949226634382566903507565358320287865754478650997551292730087571560050454887545196525665309767787309501213345608877210045843862009950030833276714989995811877747503367091449471670141513162680458782919904306511450875863925371121984696569432088772842071976174684092460337885700105544118492207780327805883318230671561913990829641142111793360605281739114178544577042388856135743596623642531710402204240118684563275656209952568253789350285070738917114256565038699759613965400347184928725265603169229225315498711763046473996145956974677101841711513666913400697677513274731362926738216541840414923481890527756928290629487583091584477492513918750148572525840692789921969042338879697195158446019990264600160333788704758411589695816633132530616967716647142468415767047314634574095072031780438798110864949504816075758325167586437208121270840090342236831137349255709251494568315444324798049475480607131458925687120041171216101858590229065665258199384930706114455993150939971375570796844059991462580446522473300808823434829739512409660943819056614002366386799223230164296824746441251975834364705227040632901430373114504783985309295886701567886185470747005799203854952376004029419810237308119149501574985466213565617799984700454083178373047968308140396472483965194333400596969488612246121083028641347170783471324328626835635650883815931747690268809100296745724346557353428695611770914990082780202505412654993654167312091094227302728173016185720005452810744001479350987114765469289279212215537986883326766475415679932387567903477802581247715901169102186510427029749022805386428409787403031819071953368549877238599967171433500664667485218973219659671402550380714626879065463102543008733576947577850906648647524009888007505411089489052773852961628483027153276926146642294015921251274148174042109312028713655272114641950919755959895341643006540621317007153849347137452166303216250794899256297693979677342743666370954846190355484094425234422905542393509728676653377403104531782184617818696995066469769187851137500705906477863015144448876059380497900100174515524077717753027759491518559743770609498501956024885811077061136698020570016310927860131708458233983014639092882066516250208330659493930104611103532812010047093475893034527312991993019548530613254549703021640214737146506065231430933678842190521096241820609852502853262926241614284046233494904442126647577455746565969285609852506303192992061342226956179549441752669653781885955503665538361768162787599419479348972705481819754312102339239272719987107923607429509922498868274417340925400406505167087606580495450771298014067233686688074474360102013667952788485906106049802095149538722309338151804219387116598815228256973932948887329298208995673315551720575273175664740330682058798168931451195537620955905226770636086612097528235129902127329952374160177348187746480625521145784378060899288109673083071612545232567704882990998127888781172679429116849566119497646657460927525779926112174577891833905545771083064055132642340384050161971616989405884698919653296559570318361681086669995441755087598869120538472843987163171833378099294056440961754276895066306902223140998908501045249180378348923038282804901915637211392541264821552026814385851951730663431962294066743568476885271956116960581911684822413794311445090046998992968278928006603472623595283044413756733117080495400164272635823072178839594960520009184040985035454613830813218383314339550667643053584817494015276367144676261921194019154987511447708075446598744834126200468869644459752019113976990056622006467097699948375541369036511753887744549929410032648930988223498031356880116953069360596004978722776420109499830603568178996507529748564029303719755061266039024116110473986445957891296345114605786418028965421469193498931777909737721037201854606346532893947554908247860335066626523273636301529228170388851386925154538065252966709964141154808234053107963187648015866120224973231254805699273331948361163430072307172709271870671044156411953847744814548620191106429982158709103924907244555642848574690415381668090331008595040437583679427097551782833477017756718402558397561545449781989589311108154431182901959718612935091838761811053340174757146186618598915441563971190809308877845565625156796575051438019601665995134440539790677823032710394565579280236402679044612923592101833443621828835747819263481221846628851876543378247170075196761525352756337099055620397630072719130828073222914793039077312631631930540384659802023449106117801889977909069163883090049477620077373616022425324240415735837436364128802418416346158432077752012634115826095073327103394316975720999041822913468152516912015227104543612477358003029838280039347563808127919670104469080089627869132008706496259057265702746116977320167106883388007772807839847747459015949314023137058651918408183052676081243650916244359357028785973606536515727501902917062194241799434932001236604388086978148432482573093012646721245525864202384400682755568156277284541573509561045424124571781434468951334459312110771769659183604848125120324430609565902291975833540150445065987774531561498827588385546601702873357415363446076947027934232573916653049125945561320558643986059248528716080674362847158801736822263230795299857417120780831975651982015703375651937147450785060671763755834952629673236873958214933929786172281388744749630458529240132626726872113473159603215767444082560346478806444523165273109036684638340188779003466578105919084225095536295474666428270357191168465590758695477662508704633945300348449436981804740319858063298935260792255323757893912468002152573836578918023935963707592650310410113792180015579772935352982553473880556507800326773591243534473474669679066096809039987635890399825320156450300038864726688777264826184662852547203550017410711600864633060143001659183892140974060684795959193421735118994493949694878981459863124137599835226006296633330250914184008757097638304107408768485266649254298942925550767849858900437063069462209183149099280951776940289107187113458021198048576400020225497594581026792569319274492818217327619600319000889308283546438259923332669678062490499040615210641121463706932706063213391213428478931722293615231858342046155180030834175790317732891662126123087911415815431387049049656985022217402179019853353785739293338845806709987215332865425349855252386817637347294510642572715203403149949232844663962387636066258481311947640719172587152078990110372648699614296021848731204214190481441235093628449889378206567725726147170649807028909789604977501884204435722049419350361277803767251638585578098699290341628131532341240312228435133184368810750967858492024319485927985782873453593289426678454717873003510274005875460190115282459363774202072236542122283631067180292268493906403759531322166933874692112087461976332629318396524387618234652943708338371993589148193861059118299436457170851107248169961231549093672177216813309816135597191981522932990977202872491362022462001971233093887082521869587129021681961542507501639193385267844126317815373031719221160242049214500259472335913946459322147049564497123793602723721352898662567363845975572598647888235294565241275318461075459449325237886024189682359023955815510740881661956992876226391802493639954182576033565018139117702227534765542736805223880178910175312692482043905451250897646283481620672736468593782945299628094119437603420706367878872129466288780729166203275068523908131709920697923367351527806811172291297461541058080170183828153380419033681077029534839364593890521575022824275696118668490582887902269404381868410985694463769036836002399255792526610529622852782415957847785502156906248829141352863346326576925554905848040231800041175753802187453182038673257607514614915469962770129673674938906339974869031053412526702763837847967676899772914945774423164713864478288051230659487371410334195173908822135579716501209702356893449889409558816525917579048420146190432187268607040208169300892801341895104033291388935546591016121107288230481758448618636913548961979174734484715828165393622817931206567708808925583518332053574843992599991469897200487116064509947174768135117511890536809079943981949723136617969591661477873684879743350577268070997620966133487232003679400405414897380744429730373804597561837582338117715918580145271418910900501636754616998125053004289817876399067391637451406237496205294948505193361221846680421558715319938242080089276107033111920579763487422725081877318606258046434422774530422618169610244732962150062737318026544875047233261636400016724343553659880142831150272244101360294074046415327987647769161068144146743348652491710143095154446555557886503133136032495509655800223495187979127211365455111494405048008600851455817627704510147089964628680657757426229882592805925454022071964662223173605517900008918126658797751899853714796180195067808338566274416961058354230970065671182488476572319404222238101636071535073495544300203488178641162105490718167547367437715166654686960022109111448162134405833891840145576387917508984967186054545671688720357566368826770608267208790905224547569689908210318332124266298141827703144443549647393548766592381674398692086287616261647870165063015812925651896744612534637069874576255881886666244434710670714545960498895329834684940038776448674045926118683123111483666662039853154248858756160689815551500303333284475748778329077426507093534140922950283194212140230310780914842588653477545580292413429483294234866498579781324687280032290335652211375238769065186436284864562191616868311076078326850055514189045612841403102985601333512835779692751792229492970626008420648905215796756399683001684736262468484232354829506472012325701744311805147484779371026370639267623809430421495161222247061060473318815225488657247408326148647877008677978910633186196655755985374647409639658305743915435035211698423168984049487293979683794016448245202387407894582510612818757959395621590744989863217595843214834159875477133369918028866530545032923091706279360447944734236655324261537315190011798468497865719773890396030727659591081044833831073142130155720397162834223774842651070578688349277518827885926537979696394908772876577570757839464672581266323528723790115064931363213112215829888522626787150673590875610579089065613292092867252923854012062360904256528385055195920557892580990954715513059248222789077540497062488028516809480981769006659198444281852081651565082425411345354622465247919406399266417094262753708547726721315355269885156531961609272548903356399872861493063802303809945291436320437438938028179309288022781231321239927892262738046250794419437406503489000388121100567267878864678061550937093986554262749705870834889056616089972121852785837779146699311257797596033002464444687235711820157160530611879404668283766699672387365155290065050327947892732636710691738019458268156134117975228399525268686178604322608415135470492460379130444856584366577656610073227919050578499448421353359866583631698957920237445548723743122590362737710443613446862382160985615339527117965934893756816604053892256342987206766087642662076145275086487377554100045149946025540108513537222338767667383602898260593532309325134637374797936278586094415410231692947428252981353961635369433225596924897125443956965788191625682035327809393977354338559511177468824418386007989719093691031157192389591993365604266743050767335557128014522561921620884315651762478584179892058439677175795736601680811695334967960177000912842502808527965797412242342249499175002858443579882929247537711001210619736246621903834369919218379769445308908785582979035474094143859683364264931402446535500842307569321705976458140373029347304738890652677753501964608846840745976744021692942006572887624549232393656594731010916254063108821094293776021213911240512351519689592123643947058571015613892518452966243405068484479370990297893107601401665107086543948588532436341619126037019457353411459893997735757923010006510883510986712369196467007636221114396269724806790062193955398857153047299700876976715384145927762128055361063533750394279014550807851544158831806108328091416824082802262031590531100271431438760267362693005631012444779869389816689161892247200281927383616632720993686326173753078978091806839667605783242820678324088119305582592325380442480619687806559446453965929919301648850908516945016169907880256197810830576782835834911242388848338042154549780582870268868916585850072550917430492987847387052749803986776012784254496657629028928997869310376218581792146686200721841477976986737154821452922282471127844269431154083796483603564912043829420039047100668367111106374324422883704003532274865227842307180527058957342180136518593149247077131834903549621005773905876134363669040161783705530446498597627933809486337420318124280191328351472789044280466804324921178293413355734630323600580724837148594930493033430040932544546706748271801246691640309787240320235212255619192178320217089610754441459574435310124933261666752683223970535189642404304670717149326422687556140500058677262967022600462666544120643948496106016393741148324524494948504857936211254987922791157845465372057561520990439857289620722511820528664349891051878432251759408718533143264243920795897338982403458277626161060434828147213991075908622790809188367417756324769873076850670937381007240963664397520667395022679132979080785869325426271625758653786959009862098070301248520669325613525737938212826387338791182628003425810095142089907841895545379085596755089634658984601433586536347607184368478074925421128458029122929445133354896407541722802869692727242912355954553232746711048224798194134400008329623049419087461882749904960043307483837668261509004859116614234341011171595535837810502636844695956775487353471076768475844981167000658297738791159137729989740516397628571917031268557574783287428239140413433664986712567775103692341789696933321714898518519927938993815516567612467150337059853577265822617261080110767176777616611975815596601102079971791072231350169249382951804107318687060712333120938502276613791680001001405770857174199615596220821559149217047317774395901225741266474002413134144616384036401703764848988627278529677557737255831774286581876927651588232486469486441137807255986767437977889467296234917837994859405616993345967499286046372998473177030563873695561011323255450193622356074712211693476926936550974925916062107732546164739730005169402165668543805020621407961542233993393064117887418721292477682386541912194812527533547690650424136921645672510285908347073445534831169680119178064615097594335995024880084670367607744394478650320553375035083071865487846620529892568117597723668155566271462005604954443340889920982662075165793915103146363099801402521287338603148726495948071927043062234637457690154983687881563107973109392220754183429289329784478056152400139090341218447253107166720849577393380922860759451683426260973147497131281882152287827450287044401934528805333281671871752327138803466344276779301877616930913959544899888502810000118889216721110755917895042057784473038006492351302937219066961149712739825892354093046721437225496710330139063201337087697148065521990003792206649981843721564068944860976917324553577357707653853857607468129278682716366180124188317578762910572112427448587035265528967797805538584542877873678056056594883143682467343463165770983364263911269447029423803877152783922206492372543161639700120699766217602347499340460061942092753335762445644204906896599252203594060130916508426810630122432705115540822636355368887937497499619948925707644988445923519481490730957295987530467845187909329477795264437252952090756554159997352214352541848914902943822231813541763568382633456546654917457724258107639220854468503382158966851252784092968545973549190130819020046964846672912217573622940011892407309177247284438760763962757407684819471802797709018354433495650270039441156339125543257106134586242945906079892759232378828349673246725604053985091904329646477667027454116512889624815978784435788343488401518958931729288085002078937138539178610447394674965307636635877661380681464835232444613099951284556274557183001281043388049988201594730534252458363138061327541624922814673557746403601551689162278147912841121413569476794407398403336412411426793873015979922643187700876527002458392217349444975275120106694058918224246061241696122438093741148130687155169298180648560659668695202529125238143074652319022592794807732155871199061812309559806338290895630858745715217287547157791189861244003492686904654042582573130250153635221788084807843668532013921712587766530093414701447388638901735174269854467763904158617854029664174701594267244056640756887516638042945709509254011112524294016495004613593787169297607092320536654141179361021078223098665134568276824293526764539160964064733427877485373615381981114861731283571481057077781994110226273710218696273563853883643500349274617530576563809593612123934293901520894488153740709754425950632206449140868345733281789564523995237596072425142361781977548605024120490673486571088376050713762331682254131673047697242699661426302481937957147762396192647253058121996892953118356723136927137188997663791220936800702646485945650334395835501664683454904219166442442725174325889496339402100231528014491290684611635305094398558550824928098707963963339707153751550054308424231123048806517795074940370133051198019788657944984988011510700040286241888265561771106448083175894374428196120205073768156624189023237092787511022965185309489183769426576340186362517611453049520075962599889725106142599334068902339764202200913154913999314904389166014820701388262321389133897426037489881236246912547977746391080932405015390845290192792475929447986047109539579836454669225810591932450057673150168695479917672642793617739446782304461684431840952496219874385754654369267287511555836312146586862169500828380429445247782627583096616969953458459715446952354725287953935895801783118467477968719188698658296884453715459022279346415449300093450766111232062113477627593807943119725831586277094761421776783258509492453036470279276218177678168790408169542841110316379224150695296278632354426554165779312611487824079659194236960804245460729588747265163796596914032708202485903559064823311660198913423727361232798270121581244462075888450290796607899333831310972879453015730931285623747074889084787921418957507816575598859884822088830296945316053191021006224563393087224101027955814144883488320574040118960415742582364125813849983490244746529715847204462029159277472405901261542270375111722558185433496367055699580077129406999779068093349103140656512727497101568587991146640516012957999141556962415437489145464962161269365076411878034774702089405986667061697247568384793039618733583673357338810979652627022605846228965777412510424290038173903333828906885528908781480627899002600569843288051968388886465536959486599591730398859603022740919095581976169020691087135213537740443583294494035637247667329260966410915497480462568901956193436191222792245124858208592091454756130265895952824111310422411584930353533956661316512941715814369460587008259589891683662273965902387179820821542072263012201160178815115156888611394417342332923369801717318809185587793401097152686835982028906819386280186688955696783794681006323167352822373386586215934519128171843989578963967186526558171288041136678548392625844709591393150164634678934136085178495458429262438810472282571734407844663092442363197178891002995280729538001455275869710749391455166516813878239472016660091526050116331027355600497816510055637278491849862098533997530063210472382627035281733028040858519608548066778443662076566021727191222952023812882377684991077260425011885842440605890866263972885494210180595756036827686452805661790347897844212834097172531869037001072582987215288440121336052541554264413188907430550033078947694159713922722255904865999579218740830245377072696683522745207942503428012323738221825455392003291508095944876576002967388099359556664256036471555540928312745287796412473890393969311251812726017328766342970862817523853066872910764200284056723643667584763443241761098323075306113235897842691543474150143075102997709548747712214155988825672008039686477031963330777982794936272544716159669755922871748519822678800930007065662082798352074344281980198366282943501926207472767672296227445463117383427078451613870169466556633707717006324343293588868058974039488477769027471201129315852906705378001021884673378706970894705044142593050631795637702498976953223148430956096944118585968207809763133277298460840639620560648923792773162981999411293443982779253780610942550536624303972081996909358991100429147164068024666587577751853574089583797293510243873785895980622115593356686927660420973414897142743275064281442182999318710302184908580901588424421752253179577134285189894394228329400430791486445883693754656794150831806538588263891718781796602044962528991325484099184864490825873852587368317591781972898556152521380010574507361795601494075050664801473973936991894519800008148902545704420829159690948782785903714894068912619482478042089392142327496130378395319268891473758616850494180791007830214315918284524238977739412559593654853583847147299973794227419587906470386270909021594882968568470312119079018498859837281911497941890838358448422479964972027807025713239690026465069576038698133303348340371108379213527796117364282951563804741964861227622492589519660714828997794879317886757974474354788720283888576580428402801764235561696713726918297230714279877666771399501560424967084683035554445408784638290540899418156493903102106059238163234301680245016146977864251107588560419666793236325509008143865519618794762358397878930834728453522433990652588171026937137754598556233485173145939547652982361074373503279680569369165731872677832370014789864786701708362448393868011361303649628885933630004990434082272800658009952743802846979627972390773875070542721823081457457805157289236709047126095035320890752492604356845233932931881743444180386539703308646771658084490079681096946032465397228025400839822999275594186841316876961258611671476952760852037038509994370581192933949457824691554433490282553524066451617750080346996321223459661324112234560152910543267430583918957398175463202710638638958034493564161716970316201201235970173371159460482933203690318561757496088732872385512170896956787228065244232068850414769604154786228977605046665390163691549035041768671544807829558227547906815801715809812129924949370744113291983676076595239283020599372574701263002569041712466859105756923810385480806095507458877142199893587353138174542149046151879957419333344077046539275221851791560776318710684586005453203758439705515685702489577994545726108997621853394573896376951312143869429648625242832903975207109745627734902820804072419896902341949941312092306047841899827696675273697984271400827233078460688634183184067416942665848206700459914658749852702760678587860745169866140448942170629832402857722725271568076683079754756158571518980952998310245103144845419952404663166730803907953855967395633555823029926615594000826937410403769733757412605965705783969490829881453404596818480367673107864795470125212137609886794748395445842554429118818043076265586236909862910069299458501704839194210164155669979906178488210710261039835447344794693202636122413235571994372594044255957335430049738700573081925594010071256226882491253101826440363026459282749171309677172652540118232729778245456985475710475520031426955575980556753843988114085528642961100507045357853102175068746952279901459251013662658301642364762805190388168195732674247739394941077735121766395053036665640777818371805912437774542720551009738634160864341918008398402142904979444727458286442684490252978603609203639219126487975556396928828173533003993707677422272685455383147063819345522541017129402349154684419314752140384040036370849153493567285481780869807020619515211713793124140474693047848638271245275666814796889353754951665318087882304905424700967110837686036869445986839830249160675187083195155914314967423161482101649418750688985072530701398488141237172494997678075471254582333197744080129533154954718300798257933639791216281914499958073575073214637998077790419393258613702834581774809367311868787345906727273114969762423507150087524348738679588562355423170057209902982521450995995825361072147997487341776727313041441473807763534001018827395459397166683972181731073618714584523156058822904720763501071157635110517284199986073663643988549176701159020771671569889443952630043374653249910024863595244826011383772568609648401568083807072514890657752484146849740558613187513507225186671624988443569504510731933334282277626461666127081619879642936440767810185808419704677260374346643145991778929765672952370420558578606677634465828188679023412519737799877772264104263216607231850983849382031735311666388726564114915375181907970811223514999195135124061282552926495856816886878492533472647662211661352472552044806185946738502064645083150569502563772882521462705131301005079240465283615952183150408786668830294120126610228523049936495356951496021831722299380142725208321339703161602606208388303445251975330572537975301964844129437328954317101230189038656748548545549607734197399606008107446613621134127190872078029192765819001143884886954085252226613730063911472357860395809914520773265484462719232354015440068851875195245860376090868970423326527802349783790020283851769243230587189504827400008985799138653804336657010721341627447651008869838253100565603211391541810906994196378866986546121960482563518304617734487886692155370509252282566878997670257222339283136272447729816518429240444808031990480290817658686638922484388160212377503029759493911637286777606070973963124986951018153107932635192922562382927156801057758684726984994892010335585690658905122603914545609869147991233284433525079967862321548977097475047674087573521438929433804818060152589508028606330701372096500837752290448602552357948406728085043199756627137660923091660200128237021614150300182581794927317737116165687769395531209646185801790615087988941386852436446741678512886445794978913597237236363340273574039335551149656717900684496619743917048607169204451784987202219412856851986476677252158791028780957787384496975824043020897773350692752014545262697560030571771773066973458582962837493341894273319825557061519783649411946899085943213861028565285899195419919733670647001964195872175966969365959762865360678204456644883612177568869159486603097828419615785198053406476812567596248077436140380902303043143092735619728331157098349365814921549855684735510811102484640190713113909812437060024728085936684780450480126907893432590853513410651458470143144328711622112815972788281508152788799674043318999579365829583428475580415200383091358863270564917133913122457155626517967094568328264168534900400584434695522922316436920823746820458031033061330778561846872452092435840152690062200282697586466659381501960598858952408704124544369771773277314814166437487152697331895902532431801221269253485237368937077507554731702120148233262413227350198541758840690838907924677750114305851569457634907085535154037093455329942711459460605265431008097643208039413040557024363991370109457125674394249645373604463216941073404069356318717719733617352479858584570735264747882880013971372542919794258362178999928329076520596442238200227974517790761446617085679803382105516767201261744289424183113826661441427618123612512374700479126168037745498785852489211814062328998229443998799594790288890192378981506169413365818837219972159772116465488897338694371605173386293458074114317493357252096379690096357973529853484698923295514406173845669208413517724997843087392486474002661235658821305528135468555017371198630715053603803065581606105944378204314526813369759728545760930388877587978618216351845552181214693610933615122296972466102637598368384436748759684648848284975416472528625091545444518712130234195688183505179733762131595147127537219768878578081194525596956878843156556581089372003305498707135865678204542242871889944270635357018001377453786504782522858331740841465183169595630283478240361570262765730665018469731910933794256440998002211711811573135470258969973346889362126970443810181915713081255025518283873928503839141071040179646789960750985073876590218029012570282463825483956621536805662971181588864015422857019755720752601569312256704280175676804802978587227168100419175672102332520861994390664531120766719565937153642253626901415836275522821179581414368516799050093927283103251189106719401122862018391740488833957162069723176807107241965259456286265379668492826813574625037874423491633197513858082593423560448026050393806168495767259918212147175563209748910928285423695622846521703055383284292641538800940830486888478822863842147315974277530243308337226748481722088956003395536706665935331058795959925708663392676074749391474558731080979165058114231236785767113076230982147999319341698143926566543861272104019501369887796356342295062832913852783830100764220632665023409994502261966401468387911433582360045674579219312957452441422983638167006837130463720263323484433596289607976753140656658191377712295538941386883937473070174506704909494852078757759399287042990713495466413444648534672815276119369750148526289247123840604123929061888549773609877431270710353071847621812468567873864478798377358649239890028834283103193798688185126951254753061172989551013562479085118852477043793204328649490122721053318471777334467898564749288460352419836140446648560197162186255376414492593253212752813506111478691720988661819676967332661118431127014061033019549779689847429178738306658272753345704760198358373681824907520986470401923029958335725592880058365301168959086403765506268923035761702605630574167296156806009431383925432930252444411426702133955676261531036833771421521866728215297763601077610724473997112291946909672478688138158448723652522002775309931642419504763971573997775841193712161548929574691362642558512884957465713861342913725883076315436320218782941633708718242268764819861358869258768832698494815063706402630761429788867112788802435070543561644061639427267175487033854583850379666817628541285501385218733111174981084010051952101588568439816404143817577116900040703084746253548020235832132814348891336492476674545482141903165844536815416552535821454509361658577236770741010609056279841848688130218700029822790757990885200781073846069157745084795790370476066468758055849041519857214067129231268289076745511357410373449424778772975976534935605665588399328101865971645048015966569468107701685372738865095892980209903689892993517409794673388709830439283706967984567760930149313664336101717554506469063652295613329031795105035588854481828333407033230281344977415924930500291680006946778886836287191555354589948066718970635365097536802776322729550238457647960073044387071504325735019918562043945535934709166547163378033304681354543705442982563736926034018834787247541115657617307735861008260806364133175282720318619690296309529974149293111793245527746081360143416585610513661458360889763187222984115474086945364336156082766354165194527252221783872286816445356357460051786613088695378100791313708912913681958998476937267578284137438357046297426925116089947772880507448971352117296736392170872620209305534705067430093631751175694504964927065683876696683846726077044232351024530562606240929552910146649395180091834175399346719137373268865020579481322326356544637457092634811841183818326525840873193637017118423802101912356688995360259874351914431258961500428241784255698231337568735366590163523709848439185925249686882725069315110077313092410533954728720361510013200230371773370806705559258677627818741106061177682851417856177925463722461057609332820007661616897297014164730267653456768774995695670699195163864531802537318057740028895663195369965664670886788292521928030259105366735789586805065930961429064015537298520391137340604014323069164817849701499569461942219031901405741276501698806352893925049345640526220503234766832670575878641744725289094198870506511542040791347534584795515643669658591938991399020646786488613594971267999932688743820280071582250552153333551383476911329453611335497224130214817736324982361449563000953421932379105939461832614919293413223934669390396878826155458154832415650127820276764906277209405744232135254985162681569797717944170817733366313919949682605397300502677365420339648902456825967182979331424674677807520957446251022075008672324684963403979009178313405690508315277913197728933239396439611621592751481052515677016948377847537518884354640417541256382314103333436322544603443169313979913947824339124120488730325990877117670239731732611270609984312783531453707232576109841988890186192011478879725801281552438781118011708207585531267683758503274691657773751203495203864647802139112841432278903544170460624231416241755665198817232662468727068978962618078951012241519622596563648881557219782488266402566940662843665996754355102962650094196835998127983830460592601939501525904070903600124994232047698057583520803999785301409328683097169826367721945963330912134001573507138017102374888898864279900317176740951697467692884710886435315623966957782632688585115461502371349200186421721485873702842458682453686519160677920225709611756167501263067579972606334081538520052204710420964893724582145507457489437768595082106430738928116530829806015599359861880343465062703061540668469051336090717736394095897530259918614694487953414466480477655727572562117228665100334656476453894658169229525916319519420693566026778011995946723074403376891028473348922905197793762674946441466381585838326044677153446461856744743129378881309984398047362472742064273854141770746749122726178307408717024754631682027562179651279786085103025460347387870952717524607821079134022943370986468228508310697385841411598733158263380411696326675087724089995664926176546260666690704641904922152899826412280056621922758747180930261676118614276643866305157260109994646057151330663176608171545479259052980303467863247150529583932368667903376556716335841844585892010631795399220716296372801883514250174425955655451312967104800362059994849978853510979644966989219449623282435781275914647846146497910359226975127867695993664993084454243500572535056522338291304892231139776188849004072962830063714086425014603346461601092585289953681823436532051258199997699469000146392466064349286287588778241167005618957923637441063439138246442584850331091805468762528843059595840621949956430455630955237337404572955317528535585829901529184355114814588646962709511623030454097512899164670821480748621688636089657588278377802932985351952906829943420933961180442320552125025355411485689850834985586713474498600609669047570461010985056822578918339469040865612702134993710919618179574540437261789043713719746043411444116322791996956155223829977892830374258649831502147936484377924868500155883575767382241331239417310840479297935143580142090219710303529055566869779188074805464985754474183282659066359573599566416211524319402129814686785256648961781910377092158368866725249169062650486050955580600159775338954765755341591072590272781242453249988033135708570748928881230854008641924985089665418690524244811933212480967763064955380179182361027429885936767395734173163629049055285177764216264134964057951496158947314749820896465553867965466197365876372444205967317888653670231557465874307584144065619406298611935181924239261365326823884317918080693256236994345628761747179778010418012666756374931796417215457360375004004026536566094322440441320167987561944168740836133983475781529950326687596787283928675117533989833312838148142117954966464169873858905117118104133202261861186708522695023465868783605516079555501434482622250357942139288021840440537948763762222476633123131352784786441226653805849914205510312067827500477341134432755347053121827237412967499767508996385677575146280540707180078202814978960558129611132834999534780412359022012209754384406676918554222575643191238580173554677545685330397192087443142133768727151080133026441561989075771993840368305278017541726197703593558428249474103228091167926372310473961704661884952702768634082679660975158886460580815443686460724381405352508709822438972420288319147550257539918776276059350169495780074675682858093960513847041030544623356484553965427138107991086184942062033376400812840270665359790708660473181698428860313378710226444628314361551943213573693468725953634529160922588589644442002929788548011465879025670094568732072499743051733139344067462650583727221335034266379379283549322562255212215393322768587989185905831786732862972513332477778577385088816514246214361569428995991420780215710706651720932342396844821681751956566729281085719308113827282371571769054138773053070167401393236527342461531494045118390176160073878015202093255646092969384387598973495002807419607497808281673613869944655065024972032481592291873247184378057386037182524093074201025342701598371957638375672271496557478698800699428327794064817481145211850409770130306491432042644423167100457592240121665585001898039851534331420536502780479011005386950769367874059885874540123938066567256719515337296774116991096021624607622073705248902663865038606116621074279284851089566529412007420211660169824753844699676675742913105574909664524703734822516847044062831578799525980789268002081022174366052105295180081765607265578697730381618226040802911861202614660103497630843095451309725268454995012972313907087696836951783262230321714198574536497963186246308410310513900795793042848082261082360034256123428633576688419119043835508367694327807865766037301345768284564569432850417548143430297535407764007464906995564610395950045989724045777704148200270148567840926158940192353708982452416105749407520933410294297662298016784853936170022516619060756612259318308593025116409983105991814166362555025663368883933507849794356984063295667119750269427058563770170781968077028757445703959468448358630076433840686044775567148794987452110269615148867626419936494339896833953130518881009398197378936377137437716040788016052489996488368077205955129554000184259377166356578029549381527704157119826974300323661345199437508326518391435010057066566321819081129755458395977327447229811006512073378001919014840164593390496624450268547546393321598912921367416663323671042183137646809753372538191213286279835978356692212655101605308353194796145825295327181842651782474474913492717448757278764983978146513951878800709431532852431135348749436309445457467099368030615624322250611541092929294307363386801108250823604533094271877244288045570315285919204476761560426247459263077080303930731604584066476785917995643130687899021749985413562991770030939604588191516683797460751929339297610712892306279194476596496517906590638939170320369249519104253812303990034718163573211005166069241134824565737778823179393999067086081726907940651263963358794304635816373331199166293985118490665874241325057500793661948117804622492633199624926592006360172590453731986071499021786940437700923980544650383171160291511184946548019369497856953261684995769667018969848744176336831535292542598890706175166299290352423609489028157913380553742957411300366961082565017872601960364543286873491426741825214742578249625591501261418546588541389884004951594493083858808559000719639427771149103192215941681159909668700521727997702761835806131849425819913982431841809434209105891006625958556476468326509694133549566262250410403305497069221802884028743808685703374525945444704867214399222021837020872037555120297190047723926271862185128406934558526516284934654441481731307159946483759704381249348873442221423967265557648339817691535016673091905882485244569763215668955437115978346538137419602294910840299466255373821469690117251959760161577273739975832798173841993556271695701800539642652844574923102883915402077442071319694354809413535717473873503085882703631720343895675577803620339115432776404072920147082359183527012438698667133370983189425110572958918117904722154204217506487445981994352867576976152270591699979006207818371326128319500320914549364862625010167826786791389790558511368850938652636622539311766266190381742649107806016788624110925255909510020167099169363432643759289652128468592787678057092798939086853028321585092681767828208905182535486290390714517764425052696888447082254163774075952433392183395028532153589993889442049754956349304782427282379057230616167481380782251558138944185535102997009250760007167024369884587860574414601243498501108005704799633856007880023296207236915359735405623199415321491384057957849410509874177026519020985756880836765861665543159646603568424111035909239202469018795412142986009873090024944598373622349659912340566969262574010259330529175468716319916437808744199200503629687788783455475440389221702398806797669458589816333252186204602736033792996041425574318424057836377486138493502520890337067323941851853428995997723000315937296781682410045326834776385325892496518100581396044936298969395062191297332745627337270648653147149424065737358033631748644465715146203293849286662952809214675836243208879890460632368263303276201189740260910862545175822677400634550577645928639482675353920415822720840181412483753992280733453987665192937453554464075133982898511564289755234318652063323373760429570677414000851156808832239403507781441750295864043415836003919613045139797150668353035733516435535739091608093069821804932553404760877013506564471915071668016235266413848571184702482959721628208935359271761440995111437767730732551377283127737572974531125857517748519072762537733899600761763064243844923321553648047177249881455982786406715048405490366035516798436729194319274004803016320710874322568268100357915587698460629486091660789895524764547657990417882319848959560347128137741431709157421390560858261031439223301094115691157800506541090417096007540138445431879742992091183229634067512732134782072435578511579410992421859202315630254910026755791311037101029443750764539205720919373660754397103016327909343195995547652937944073144578326636706400886220855526413857601258711660577340484744221838382676455165687687247711106834645386547830042410852648473157014049080295201714088074025565399555325904728896722214565920006058257456079655428801198000508188799618604233046061466400724301399434715428613354569020731645204769400379016516214028222222103437382665872881858940718576429999942240357083238146462975886550582851337152336902656265929448325905968411104914243099317215346195081425743763101834038944763981277384168386338405681268415943880505887672265823410103729974665250279674106775768127754161044509968677306809024611429212158660161636360136694838987232836210692679195022888411874396003880440143184317733618123069626390003772846212404095490799330309888419618628004424830358630011274599086820798333514089048570054558130541127213440537584769763185542087772540715893123554708558063002978610347296618491667283332997195496484535275360960833704820207361150773063267598196970783774280722739485299300726522056812423327541366894097877758754814439123422840280497299083813546719753407090582304110166343969270149597736038686401695987495872705676766168356124305903375997423946063591848582855413265122213110785979179389157745979768045825288234303530635179521701905158410303638237833872533177337722554648831297693538802342736449504306046900006825159862968879430194081622472672972629751190497830841319185735936290973446821746039923250164074134245219640238814307926650120804794026147480024695297811261921922986548689285271476250254879560699222682624030179252100070853374741439286004206391413009874104164639537899975309529856322375298412587854665129283562637288701049073441047661507961368755016242760971927556986758511607742419635868477661870458722916570854076692739632107855511596601136242442839274932169818869460009260996419139267210260502256939655510084439308500713258020489487048283963218781140309971782338579215778927669970038411146516637498365913646975271214292601405768022002629096887835654830971124742283169132298477219210619751707409598160512351239026342932011414940246752039300080884934220064133136985287612664358035283918874102761430444721037051987936942853877006138590297877342419341102537685655436363626156006443229654227683223367983432241189006305243352025167205588820141521996005862647455571754732505068590933854198443827475402283453249277218900869375156325676261780563210150355450410205104557597732168442539827150325662084509339724934238366296605741695273805652877462334272822349346895245307776678908154000083634292476773818588203507678299924854277218057720546096266866711796835735770869585096929972199761972725129412443048568370318240167247313219388387834561563443755273216880076855200560092585144214675750241459232768079840844453858444438937452266219725646795516572568768458317722670309386550797310938862201206055812160424888834373331147105666578854727364764133132872180670250328839979450903100956355587931623122962694609043624892974585441678775821061670925751739719893133157259586769468370335692393477956687702442533604855258295265567629389349178222635858631404566590510464845989998163704336489352962289954935840577992068831944432192585232579823095318488415629883650073578992139567718169854651421606043647795543713868520370207467725512585874020277522236807799767105084119413214882359606174669174881588555365022302077633044199883725559081339684231863517125663204014706628642309005263137144219735246051217993280521531568586704830362424469673770824246980313728428047460632934284348150249206964694356466989573315066087772352142448292824314162347931873785780064644323690713081765715858392024743831434192332527828727379404325718657079763484882069712751773907955059369140304183742719755949900833784536835917991153098118856270914813595495894440699942648237890444904622301117657373241227645356328505469670802011921072881065536289353459321919309124079226214916699238048482443186661412566304933948537038992759818193246265745114477053372600382269662223330393612358820995962345112288566971633769538071445769711128878096499515410744430000884524728978274953327881995492865956973260678347227730680532218597422287119947948066122240753333171763673460871746157586804708533713922133752540986273085608555124656690201622298232127086699354718594099000871845087415658236906063320730255847762987198255760835371914423512499728827341918005333796646336058132004733409171419649553839056164533044369561415221830405405152970737433951079552848876556068759171573184040226885882482028898853112193083554528199151957962282627168418574865012186237285548370791199290512342523397597635745312458315327170689110949870305083012041878799658652416003421153960671529993893199730259983983724380223676112736292331916688094701496385128737801933013941285383989011351847260084987004035369441521753696118571862438470796647992747865723846352236986223167929393803299409917308990187293426918888033163839602437171946199926315226212873113125737882228752541165534852598205713107610816982951293951682825235979278491839974206826561695443690905359983260513369395671863120937132274435678979664889562763355606757620810188527794730604662263741482436255233067006354951336728446978647976875847799011778038183826582037015864567893391972833088403857626999677086415441136158924370736677603664184412642687523940500053201704049649746029723706423303467757777417778522702310825542310016911051779416837048919676607524760099347024242249997201017527179797600647508205857705741248724392312279462278197093617760662423152715460454007223469280229177542911717186440716205862935909949852169464846980096009089391936816781660411149605075708806529225252522374171219976005154810033229650704836950123292594322911572751232399176472227077991107753684030981898751300374160398880871868079186467509320896109374186593927835009206989712007055213497507707870486575533341170392691118189783586842163419744014353156123530303963901591129176675641296372521740584374325180330432041654246171802523606062187779138086093353261826860455562519139507246770785768001394946757728949470547426876572541124263484263070299484204957446264496570700555568677923997017488928410121695193283854334117216063136131858905048283549834015707824500172384036578610472825687951907033502178814672679666565102587402556958496069164701428365245521299276425870731626890468176171797626540574214300330022817165638246142816198336743125615440308574214645501704938788275611074353717624454526194420808457128917452626551308840710483129941015896774114143396729335240002980468195957077839082358712753598940979171277488145087036331843584487119917687449327766452324382089833263969731178996611724041852929213685886321778623389670321786079233869188241804640727115423547048477473750061921857656768656607578557418096202839302465803000774043417032030239856320406888986271491393863461679182341297714565723641198214848276634479137057528467565965383133198992134285538538776024232290198676366621971432921334645064491183155019979068448872284940600627398720042059445542122431191912100884489839381923318043893558880758334833719631638399214962352111080106431686873742221845153125679951575379684268934477246883212735828252726730840588417686147980714177225960930280130760757507555117536021098341955968512693541268595023337232978044647453626319596184895629406290071260732315816161336108233447665756637231045651144747663712617224841616202356013165285199162345946996397240929694076600053109467687285994649824635639036293855891695557095978833861413857644851313399604084050559937327959907137179024190170565069135628437126023531474381551363535351187406852887792654587219242937684555772290543102003000583674565919900215723841259107493754995426446968263123434335873859460943660748887211408512251601187372769317392919851668477041573109424103893019099008065088807593784422014761519033555471242915185684011179750016690707046488291822812631840985542500833203792089722883646670906387679231047809209506626194070209537205268353469284503726090133963450943844584960089933750098694624824047074330385500675001930554194514191463744222755445652566691609067880637923751265765838515201596500210694016094419092088629032302346298566645269415895500921650720030926528408800525942642187292960151989565446208336206636791916925345408594384491283802165579003682188007811738601358121121566537586449573158620150711749533667555995909693853926493777082647545204473528927597279683248980886794850025044165442042134858113558190144021327109104624496498445595462410334331070789840484033115201431721971366911598315816841244080114460928622507537753824487830150482090327074105427509110344922181791150108366107162966429606501151605269622396283250337996250432964754287086214612994680605376680807083636865465272299359747653099229031469752161800816929417267298866710908066122737067563677595314888625375592741060732446008073023459888237270203408769914843073652417922539058701072924511462033078997515285050216557124510432754265418615394946477272064133116259492835501169329472506728676601820518801360084324911906600062828237380751274319137689045710635520266168924725518833071316027058639777076262369520403349275476037383782549083353144466913316863931551743989194221402774265942754013996937091389536337025262265552105857509573273727999786470381742836307739271682440565773514350883673287261067380648078756227201041630340547169909225022298087269941968421590145880299854186825259282359192628254470693913459401793678650718264918426162982131089424964154959223248118800928818704710194302209632336423238787841232253405915112644221700150895965014785252409740715389380410251276679679314878406719586621126514182005170514200350837966602008082239170168258787664098389711373998238058425820250499880177372817825260898983074880439308845742190944968304904577636685140686170865529241469244688903648679392906167631362427370146530488644079569419776490598471137025171079253891390672220530911056924988695332585051682731128213481477268754183959965869774632379419064141758045164341199579270346115974896766932333166490322688548408851518574350698803696719481974984578165539337999871160406592682286721225193454289940135190002498791046035065423907545558670964135179422502990020564091158616606427360732196323456487137200595288899338973593292873908164337380213959445935126954506204897232608274824147388561938000376014084277894445667850200949835641901657257199184113556961135294005038643178647180075839687191741867160693539521587010793577481679802698187931741116052600432138114037415510714762052802597144745047744971941417960231569530719683631358581435966417347956392431047568437632647494480483469407149712460867085575714339877532898423154213860868327577821282222491226390845044346939046362369729041754608417441738862363205750198622159216923141315036806173882943383976313919844116395567125187694641508571505335628743699617098438251424959883677829674815474089797940819661041324416251109212275385521033177365633842941032334639494525683839616038157670903428306414396398303690644788334058186081844621818046967318587105599029407812052499116535393115242904848322457194636043584668687200712801052920893031841959667465217229973856521599115130325149206273357429933326112187836583302229356161707970440277243005655496551359790269812016209293384580425785350405210655943595606944616647281152476241535921359586208889616781228241868181501964255262942506828723044245194519761867064908280329771072239619220566994292803908437944156339038957152880501532776101207508669769041445533016674343088725712580865039522732160928597969522722607645178178421719243732831315335525625193788429745099471497331965786903892178960954291992972486677249338552745928077694657252992729434488289127291950688523596011671626905856041562980761429927803269837252699997231919896892765572009477152865438029356698712667449595268696058879448476829273385827222774096046947402865887787136472606085106550831051654794836460616601315682270937468625352492573872823886781796520305288825502230843955860243427946849914641534398520865776623780833080572950429020964839815095320973384576626690718057450793108373314601588760990903966334901553988353694251775990204080892138672683511632208672854074919810798135283324410912490430298605896884181086868360221077551628839402824282024168811663029866012972537473657568075542425353557254836209373694882960914213073040002935011762081963935982131875832589321370500658100794289884852752249139409316260418416144392759225879388302870370459793773191125749795662846503475185012846417930691986117432134830121101296998027757215415477202555117573068520107342166691890090899132456952552719241662392388227308753288106833396421273143540998810595765882201454225522874435033468943265551884240709143997747026480588125246463106056534923691832017422092201410780147866112043875226959040565347088050854766077713620650316338858335198045482048871046311928937080041743066848842915596925150800957735500788712633068780965321289126628801619909739628601092853632591619417258720095677501893083473734833407274846020471872185828582933907943128449309242371227932379780608130096723322052512647573830552046158600030886985702467348602411908434114929448958535482366268189802191738545136024191595833636802456143604220183962634409320232028537011645354921543254096940996012510949379626306720321609692259541383405189920667361795811394317290484953979161209395640062248396924420754931872580190539080678850674249684644074828911277607880228482827038305522351238973909888604115177775183980347869732913812155040096029371184164795922609371769061418185605484405339548040021069586093601666399006209587306169288733747316855061770482833370155316382106864568939628634667842150826212718533176676118452498490604539094521723617454935252790907147581784905807646929138374995390346177241737032858007533489558199131575919370849678536775897462302306654035051238777451571601123518896322421538035303465643882179837188938626148336549942224358144128642628516310352761192278419831128409714476347939746058775936317140992522585761637327942568749394786869638505794832528411803351332853838870989936022177867484788801708731116792215924407417139032524576223954164843150497512919388537890107211827399299566115283963684376096376919724059701111739095103737463079295832439558463571798574441402738321853657561666339125407380536447737853615351549154155998470661079716616645606447866333838685469335250492215528401193357048471027736248633714328954319833749811643777059198210870149288594470217712891392381548237275944921691677461402718395204780388110199004399433985881466079251982001047947212570289374276804715382278470681837451970015227874377337608959879251790112521744075779766790384305363478367865208232358400502248099729602465407505183792009910162576972691251449306103331429155344464465691517324633232895161579320586196068712209726865808833371523319825763950249073076822710577499014667505147446902755047614607835749945912428392817428385980845353026525559413458301811076011721771708765146333749256172120666901376196603729023562381596079947578615350623805702732062684095401022522731288963220584963514876283371398131235486021768761824455354860146697392883417637665030269718619346745516734189387169932623870260312586973458171405788909028380614604254432377566972157082747227589947863473492966537905350357582889142419923927389962789443613875476129590204326743025701269186870930114483331383198392925565792658063531074957436945204341554893893401502657535047521782997090447508979347384776413275931536771803447068122173284873775948646480550454993612209836755431981894957060186619841112242206312875830319485008134272537600293347562912494613238044922332554079269658739539918009826439518244515772383263534859485812688312727288580716553733480408583618157599056402062820308871926563575242100404530649453046532734887193417943460592383836758225545985195531039126259610886816165572192507112508844687760479182229296792230011786348078661933059037062064317734991881749969881425061258351523303660981922730449698770916007220346254469060414554238926899028808849145241704719423525734780865401975514134970142070468881872295377587362988003460730365133166568927676529311680530564846247800074823336902991783486366635270195143941950806783235280565816841214561269740942317393196583969287819461640815423875917519066169114926934152942009561512265901216396144162350147135420443328321122308033021123340626901079997853312413348671209496513393942181183757556343861779213650256692841366201635600552652994074281009062710455801886508928601284771927408797531682572506972144413715223155216419933248447226654890393844930787101349047305574986409201176158718608305110401627468187512181201265495355705613430830347764233934550504298099437006446413330714484892747712808351779494892046415708219379543906118852444774262607048232884638017346755802240224531980904035030895220555804328914170144821946651608702527977351889600831837329250532291340710965168187140745858161653443956992341545439140365262882114615977328108365356927812926697969724475762267006818800438461068458153983589567776867957489246650849840895197565563534213282251995899332814869192347773364830544368085324313258081302221761122228980867768478837562608612837637107682678987053630705801955948772349000929830215490125607179255717000200919323418281696701539507485030637104710544067564147825199099661916014250935377372048631544623620187371416691292777599302827598869763983415993821768704867297834473455336724112354899186891774450108386536484349700030186867315295070672657522843357779796272486526592452039632701965031130215521855437766643352821561160164898179562574564683049204600686348130572047592776309985437315480653122729029645702921651984784824891362990127677716304235866275383617214607208252774573678376205560958108648549636107341781725326928666374713433008299827472749179636940893917090405380325541938837327981158321040807165930198176467502821474779596252221696076780358558418123140365099807206755803694431992860860618099281031223781089992730113376675512521505920910340157659345865323302255289099629363076322420293585597400097421963247442106265074008096953851876580249234677208291617468412086658128939217451463100795112609449880936374223047406437049453976664101150355996419086228995999362155215667810909017540306404600994562751393794999028171004291855537789577288806447975037310527213034936290904218786481597888984689357141175982354510014219696680595487505299138927334018470805092641440585257489688701161963882349583882476281263751827570074367481919152813276898149522580571728032778628763559410743313277120160880930891470968280655787461005119247584077359469746476130205355723141294342130848317920408744674344414531061020218421460727608213771840569279166377085118467265874619283146088907850464536987587577806639383324150636984666380563981369960183774518874780298222265621873742409359009253408705873292086128717585936966426028033455790025273200257479013409464390770644167658890668498387399456402449370338003224382794962821739893204047450180610039060887527298065795333660379904605629418064472718527178051675643738959665498401248715215861081202212045310019715919229654438329228128674409795280261060575747434019489334251507266512735579860933459721461177680826292370752436574208313820216221469159511675291308695950695758207005800460145773063194049994065603911460466854184543365120724463710201181411462434966645621756804212225567082265958489508435619056216440383558434179635609651858786679728729548815889686883960530844500612751797679961773054220599705420214126054152747110028822447495376980938355559603991298109660658635141375131613526280557091734810032682837885112026850256657194022343278289512360381179614862722451448387341488015179912250104748379320979717723034017918002774216413724935489751380462170927271012787789377321176754320692034052413562222982293317662166704370349509020598823242713856989193430241276252844025044807653825014251282566325942262647547102240584619968952600172466468222925894834856777085933140300317222009155892060292135635436022225304349659378427842120051989934544277929185502405185231611256679715392149391093425452383539484644395401877942149540789531632560471881505166267923662765325129841870645719287636761656489351824119299246368520657346705318481823487303963124059760583626531360374850940138781249579514422819257750602058877303778728675567674214685450820575235317583448397807074513566175308813931372181244960696321022331610692737564002897039920315241405935012328490887610806516606090638445783886742856716170822172330156298092249530458991030253456173066095326629294833245606796635302360432581665436204635981686891078028190263160425699404153423037357667087818871740645003612849819746931991399819834669332588850634069263086676535253851401274481161434788785116287355607459150650796891020105095203979343260100575737456876993728027725443141345487120447266424672409085145495643996809958792277377167204716354601104443810997813816496667443893860872477390210317189030850524246114566616773715297107003850910001029425306671290226890707326462104943693952175428735650301207753485503868378886849946892891981348039360660132900866485926345605669230698793796482764061032091024888843231681758745034244645368090432497919941061645722239873717435170662192417875053212864923549328391384339977641251488355435859063718208071061551340148214786041214673111485005695179751978430070379119614311551184807148929266960226765281517729321506472371592037632801936291070646929647524667018987091208118280783126694053353955170258191919033925220456629782726428228537058264520144442330935504753452592547075541831857420651203508146623143686139486565377581784601040022276042584500640181419832273335857825053007904462698442490062730068974974488067178774637414880853208954902431231956515804401295724343602470404177384228664443001825996348037522642118217400293326793140899239968413020915419356762447480100236874940197973532333163703946993835186209764666625426766698825364069427119497064215676557246733367903528885566207539815497908985199930003695313288754655671152698917570569766250167434763701147294250504165350270387671070035469737814135303272325700534669624228253538579050253962099572568083470308699739271653189557511509485648100648979889448097971801085344844855810881960676633493742417807728415786789183665895522167774621301433685011185030354632949451571413160843261565649763069081927577824644181208432475234782817853171706600326759108252642228303800129420390965665934186257189936414067039101718170743557532170625944972884358677177979657473914529302084925069793397658352362649844769827452123797685473838214692737115573788158492831178966490292102848388267116626346672446408605959838482267046979625848081920641876514962895373175706305339261485404145991702989347404183945162778591119046656121406962984591768087424793230583777200569355358197957152005656657087680770037364117116876773261451189425858477868224433843637471813494183088665882447793875773348126825720251285977550032250712053289211344355765649943224910965761120549314045086455360532166588214169875474880655822898447463675981105252891185302808236075073234687113609670632659458376624838371287008871299309275610185438186873798564512345198088047815218451465873317082203476187945833831959875280445698299821444686652436651263026730800009035869658860852593733823276795840730886629704686657338043693559131045684675054848667522565305913335320123501646949829539910617286194366223687263056420471381132923900283082155836433389013551483022812666243169254962232018794469618899578820551667614189655017228899526636972309931988802664974850026965846392545856498719512057610771641205519014264311890530883467944837729006205833452776371103019894553461848151192857189003705215372305884314665020326038709252409300607438449821280016198851625664345565854385662395850431498616233598008142939174699999499551022022778890448125681889320264350366272420148808590076441372114331713539062378369182772056238196377371171807855795434785925773975241487009063699912973707383533411402557038763687720472111072143780118413116285943857273010204352717245918660882118401775647124999031212978698020658108344269832118412851108685316757662381213147905406673372078788372061652762565929824745032527093770272941133453542704971903122784491454428096893537737795119878003568496968060795297781985212881438934996489321805296575916386632057221086192977441973566829430783523399324255563420577397694483355748807709769308767870107210455249393753967946824890683653295959441060999964685933206885282599054299131107999081757296118357341532842632060559852205620446457409076626646748083895634153197599771018494589492743370064930349074189198763529307863982349822379123960347416039651205367902099326580162446820560089581049288008179992946095687656449993172400699808225267068467988103379779472657727340888499850037950273623370040923267813854482445060020704368656295927617371155505003019300345275631182263238274123816531156754294202617184630102177612111663495820022414799089754028972890830449067819484257022886163924207825190087708765705748941661248887606990256532630931661906047858160912680132975128965855959852551284948113776719147258157144172847819930142912279051717747371396929643540272374154186543653786164619842281580132513178440729072660097275206939667774438855072253562753782457489992277062840093558303373690483824162244544169218921502847992406652476178535776348845988056210184668879923057093432716992702976735308623197719101852899223605435249888726506467635155552543716270108601139763302044728360172717957155343220064849050593946418507077108596311926490033092424847467741616169898258497607210101342225137600124947804671396272985388178762635051674902633939376132712949994915657014115685464832099379322454150207571811668233282108424934110543340501347608141051167539310304653658865218832112532915289780672649177162162294156451333716149590823980275800760953394075162616660128070105275736853670523568086275809218439784611111787628718411559320696608023636621732209753220347357066167431473399348159429401629389821769747847374713069258242408085121069171803921477012834137957217361655817691798189834460761991569294455634456074694025177879049682368875479074220451617673407280568231421322624829217142670729919709725999439413413659798144974678356221053717869861794801156012974271936178775667593672744361671202262005425894652049403626007285464896794008470631911799685409622681952614524958049599794379009954430123189071687994721220088558441858494382905725052135921680279088037161888967646869345301224624190125733915594473199731100866587938918607507509458919233522275322813152684260987439415502806039291114167557664757620597976195858436466221776093703894466436616619042323016540886968769132953889413193818654169218185966751197078081975144583918501278409793379105928158627557611998479945553567243788483293297751026831447035381787128517936562051949965548895530092207206891833193483196781568585555975652150478345221540308607924091714296506548414419149184121216439422156850285428856081286717813444850743169219111554363808584535139475147742774375231595952592472345427023000007662126137346337649129772931470283814591881833656057689238340181505489393146974042996628633970381304398065348407209702860870426358410515429857058390422093095634751217058319787687735059630203331643437296001735914811491300894526636889159563589549115752964614489416120420701856672845346760098645650416767526975391710827098183429792744535104430659941925978548093701695198091289395315746766676062234118178893948493252330217412672068061953019935755214767906588090049405651102063466440158006880886243712390525575038297260007146703511702800242762521585755137649012593057878098029545458644192211570688426114404437435699531822236350018606430257528467843799916694788153505182673075392998397759426672074602279316724943808977040202785462492937778002034522708933983646092748061467708213085691801170819657259570287594288603692948435734819607627782797541316603382286379380692393395136465041926742876875796160321073647172066718736470854701881747837222180479965640352498320272114166450628075357167092625588394260185707985490547156301122758846492589420720759370869271666974209840735025985250341564102873845250085807295306789061706050039837985183532241846835219103588177598333116111167320583635652984573295555522540082574946646580409960054719337852104413068414553169621684187336614591345967129939822811282244670628704718042802143943889769799696462821525022743297449174486348377608566113773980200375450665631807876193070800815871591611858817344459040195764159996005274458593089808646217058771439914438352426334782828926211298923550436207617368023047376191625692138994795965225560909789708874118200861334279052620396172738807366389969331214947725455691387497201838402042811251443878892230370795683011749433567711259732613399906235644037663343453117626246238220143176877187922865512037076832713802477430154118085918925256834316359767117783298550259265852037934181194652830744605327907176364535439693435167675498856910860376163345132868544189644614085425585685136226653681247894883784296214704756076570481757032443876215856827014324589157139814062246853889576382283820692455724762811878912138156997487512189391256763947280443526007484081291764123548199077828004712097922245650522522638460178528535719724526029175437628992365622196775506002562456877289169147916041638068393181300101999548517856515389934970093410070859018700897208851100289563422100361912126710028170821317872247280284079052335103083536710149690461721646432426174310398338823797830357744870493018411173888157969502293995273213976338458530390271567865445416840789364519991753514700935569099506110926249498833564448695018531280569774607140183492702389390013021882464156657517561947845289908735650496561064567306332148189194443566792718936919230864466219408751759202213103653747729889349922454997695575116714908004213034278528358576627196157067767716229987523678034411328911019863539892587251827015687641200264882679770267613091794669221414452469247043948005859126833885970034070497936402200035579049348665302899630592872895344593983452757483402744858467160735542183219081094497704976613929933155467829807037962724951695469049092924357472329432487012934538890144744826043350032001090916828810410174085686014599099614445777200049299928521831068080106480711962385304857844088748969880745379411284957689000101113004298900578169233756350585443579325557275655340811592855001217905793657705079354160449701268908399721293291650175868350735592526529753074030876700784927457914421109193335521613862791589838392664892593242044481916232788880406552799839878362750142596262430658097227243573960330171885562748042862781559236185890466843458258844192686294096540391644388798333767140592057084411432711554487636404103249151838431182710057139222695716859332279569531477497168219339673879237610167728318966359715996507206967769845454998425209769244065220146873030427416952742482820331868059145734951518204466026832994663858661902568711004684387673061225572062627062831883503774003987751514331828358543235598034020659704479842438469688741081847952585970954936799237303286941032403185817106934381251780059045286632065782699410459959508137486597823829360901880383159886024200761196232461852477832024217450992325430815556884385168209110337251844375081069275596228446489011676188395218781950966300158167680485523149526700039892760767597956058780993981455569110173630548554905132877324911390971445003745581680513780715807921662151526868785741622848573911078850942004679940434557901785621232387153625071921019825414479513633621186826162366835175660372261341526206084467606904431434751843549628164103087051158812528791065988146388308921626517699214710093343458934591856890495343954119820539954137851277937807326328233154015246307607764269884586417264191439798164380791273854768112729078378692117160393606958504948206680779639348585763877365247100211403198415802057794523537397102201905906966448011559936552790924890668975185658784560502868502167514720739327876691190537871537608362171385901209043301066731232450004483429802855376641415664931147498915724442446253076458865913660248716618858599666621293315629657971758259356818202308392131748853576893440317976972294147203473312766872256827652815236680186214762627161168330051564541396212556623141535916974444343730369224901095789438788487170816254799180255262816563796883389104250602495732152653849293052900598965727764510525245975935173700557269454621765236147652420999713549174239280200591145777161618927750421845451089028983398483987853211142177691086830116480211503959494172273462128110141482486946725932722135689426065607634646204185321793525248665038171835006800291738536452231575480502877648626222713304476120777512110884236020903039237861641012632393773798271423273488332353786740916188782472762268138926184808089536506399452997141909508638017097840948998465347887018693092288551398013589751930605421505748927651573571918342836206396242002477107088711551322515386708974215186360339029726874082452149912585193189826563972862819998227474197117695418002484526196478463511564957818139022317862998672849630231108281821945946131409177042273542755145992713836718190107374744455612401830211793876871601051519743931589682190737107812939217166296902298063838834775775758960826658734574361195724305727728418563547332281645832397991061409041238221253915685336613725206289042600132649662540012724498546661157792076711509994744174589783441284190260651720267514143583031837264057971720999287145796971213582057707451653573523573544548926714416733539856114347201057638469749585871362843388084042655766667484491215452874896738461529532228870185891518882771666403934394628835636515872244534748393108920825058612333061665436477529278516694793694493014836587194676087802044925164940877356063460041216061882574439279062712370517046253065894990429103462303178416250644824822900834838603350338041430882345874234980569861869369585613172389240247086643736129237439498518513993446812712930341291034887615441581864881637036826255147886000165464442209083871571652217041855726823383056895121232081276352800082923723511174563411092513191243496233832799258709994181173869608910411275120241584502227004267554948585557466403976447899402591256560914537702389278265653134053908843383547615459652976806918813389595290584679035630381512710394053030847263397090421230601133128969444846894998384494870061074807111291142226197321708911862014813816092147141358945324091342175371521288629509009854643233126398859621189912614663611662877040393485186665596874490633056241122963275796038458255663554271199886498708652258556370377225425213408997346978313887694661506238030867976413720529321398017657483242257114746483201083005618946058367764992852579849631252716580464685231709498707014100327098588482577583461567682112914394823893899653850429539796038271172758631532924930856879165410127102734720802310800149059866531635958490083125256364763703225657703673516498147999049968801556741036536151826053097423199347983617718141620791807831529521177117002810716226260251647764070205128587008385080042142218368881948782970412994489421364508253388397544240845656674389212672578264581150167492457012058506846634788264742285401344817132356214654167336705874867295633153961652144926634632740824842224487148445712268837665863391255994356161958038295784116431379651525132072797086321246642731408326888201404531456956429602873914183088318399301535475071291241445629991046687091495494321336713568576222691276787865716474361478480254661548379930262153976128970923160589661570073841910683939543628245241974106828192144055578586633821502666117317129956157469237861828098735343718266195382926459099732292385458077125179365897760702927670179553803096729277863575070576525217629559824337781594694818121999560124356908554854011443507294083669860550676369978970141283501577330691348642799848261855504524659384392933051258920078106242191211154971813367927934333060153940212730600650757186764588312755490340972116351284062255247690863661228469563470946453950700256316659493181763923580960081845258800814667706666720558419076014327079677275363111385343545947918962545676671370743849893175918158247597707225355753698829024848990778983338439822869200976448675377488102329063565320220289867711111777100217438278611201992813610466463123137209254700155747143010237948164381322550211174603058308090109548088291705386346593935379133912350176171019266252692170350639074615747572395411613091297012103582907092136314357648612285076150660847241777795840521350507636156539871323402626905643511588246857599794466803863435053290684402689535484140177896059878444728465411402681348646337634237201318058339285195839616196198732472845798575709088582729397702170374881246616559097696362077519436549077152137949897304126301309598687883475981328159643182552926947284818250645819521315056016227955097814424958486237262410438209715963787145000019398690244683032022188956190533375674899565047118286986501773678663579436051606494434242353619786750904406347543291029837367582178224163718283624161781134048705357354207503913394369144759951681495106068938917833776824015734836101469017622349452067802099668502816887831799870328073995141428877781341405619338563079473836761574374120866661815235781339741650005385501733432152919859929135419679531321886238203012189166362640403729399195498010957268671718890605731061974219920427191414999209902262636098151042475425594557960747825175710858414629106601546573444637614279192968192022704982924152078453228251395135398211706453438524153245282907393240699507842800270392704820726811475964393638241048730250321786896367848736431506630918464688742058087465339184176034064015344281139760895378747237593989787371719990907962955892195170520679158703965689694051883824983283194396017642491408394748887544767451474302345846291779838166193519634123108061435031264135260181802390205011536415988500783827128687102834643918465626206991891082370625471779844631222855149079865980753702894094789785607607518082817817082219633099569851681867175442919830808827849640391811487336400876718074289812411262289348449499145380594184581407119264070832383402491934161045715394268954208564198556476218127132883710399559504777086254493330189158144357853952354025468235487335527466781129970308549501588079346259893219160917788593105861477625378000640773367955372323375735759202633964187937874244694066559110466416431255647050456986517930135979564858145783820810699037239184832498882311331252716933745228019523715763996242266451631463994947979514115434309685594124954860686094210741311043109762244578518944198080497941291623670188558026824076262869779200298480013579576022169211798138102643476989491179837477480814905085158555340514320789087413197587860668324983663366361622805698853930428790632407999934411356511890546927034573463856579761574569041362403363699268366412675098658500175241272528142324253133237427315493352384755321377086131635082554534534839948815176803685265678255738203990899720166431761618540132088421604644106439616270961829304394219000006763819218724517857693154903095278763319538062719201958817255544709773724206480254918709857182737042386563467607326789613116187248760469081778079321562261929231191711353898027916472468549950187102176603801338915155772298732162997978728273524066913429602459764118347753737870897411946524044126811420113075629970291511418216095802610761347130424043579161715642847984064452239337659778273455752987265047754807563620430167091044487283578332114764590791445673163546124250419465249545339207956766367236868960196783255375659265195217011561539129189351852367334207845300086046058829554741455932476608135493640327838747044829794375600922690106882679747930292228712669952822895348924516048642643073457212690899678725740639469984224062307584751184725941566742710480853677632646772849036660111447826218309610314525012382593543490873689903158674230017421649973774084800189989262422833226552146241260435606070493637904979953039447871113630309635558260371890878938857125686969338895561067105593373634776052419513146693457766911884217824083629378370515434465027111165817479115412030144193059177584748260584849526036924328682661289889443102723744661858899138819911769138677138915319853593559413769506696366136914693635943939802746194599043409724071644637615320089432217714897476965596137896246019102462035066493237420295871700875104384863254079782869352234522534500025385541078550373105391027724555026830040117846857053743493806685503320553775056047063562231183265087389522112949726409283689684006956221749025288965482411338186519179889203400911603417036313019320068369079074521049992656518621612439530704304840255116649681789696831532424392337220230342395363196064940488110497359372578570764756202945657513308350717624930831275280628345763691684974656487908051695453744795492408094887438140116427108682820351513793925341551160321111055226936130139799549005040114342442173634587970318485607790263862098644479781092359052815033182316947897015665742727800354064641650342169918231479911872720786875390850318359565060542489864331279525686384471981835413319113919136301810543466058195644840217128123178147625337374240005067061435448329317432001461544012259661549979365001014559499608062104781042292079280327680883103633142174832675885098678981715896675167740899832133887432409769598134127615385794267687069626884456424273782547838707742957877486500706764156545903616198305255486765858374085292418233643649262669231484743231784360475789791039797089924123751407475447539646604504584423120501240483767810813554810973480554389577308713141633819000839308267448652102763271793445728586697954599401228376478739132120185381756789467010044010492850544670618790219575515741493000322856395226314417030391533946359083716440660826427852558823852048885376244457743274346466716723239661416599279083476984613538584719359986133984337043514609889158767605595405537557093586363533960350956334875160519089620216314737237116433901767911347401231666147499146308993254251642489195241143248945826025249396099348619380895332157762810812981274825259004033053160890658888317361524041265060199628006056316402328879013917139427910259595364412735309018624188463841198002371623809553497179386643230324906665775631519223847278198936090976405879693796032968986487677532019776941296999647507037598579960921436769626877253673218109381395928621844448445752402288771986514536259507975478014249458904789405882357214205578093763438016330558088118997780214499807168888031832995125944410366536841708863743978668897282194722985716889713671439968438043703095131452619574863690581346400568273642926242684288540808336351593019912774554829228063730505968506746968188142399015075337493477544118645810706587376671399332800754449440907348396957187389011504860838727574146130786874510942552861720049056014305839435529395111342859584942596823613029562365381703348019748742293729021533385867905868248956022946126167520147576054935976989169453644651809499283886186722419150154547068873332921437947350684999909291899996569100675566780987884488456959058616518768237484546084626123711303073796036956304040923050984460398279404662229541766937428519901583419925381521549119373866372777102210666399691876274015823405625599584851756525488182020818601976565712270283941277068416648780024677227226389524905035406250562164257113796415594048897294155351785701897699179073631255533502147164265303845358508876857362361569799035882359629511983082604161390447433232151801418892993463200521998141853472658962751763271362987681428900825303436700703015948458029443110416151031877613757766132069032183892205691018811923769542654187083387604210281800043638830043342156329989184190301705978522711169880979970172934160809709448703429872751295590851009448054621191847675502485380809395371731616069952447589104124512596352449619488414520768397671961744625892369340261349373845135406454878088326647586029876754566668600326199321192447154865311496451518213564228415562808982347940119137041988734171024468033746599074478359795871430368993509092757404621048791114419480742825117529883289300590281777233928569585351316060802830176549668302518171868063026180253111808778596991582259347563505113570837407434402884377713509964787611707338006957267543896841317915136461951266799600642436912675751072765004786476470443547465337182052407093927058146606742616128713106829620084117053896131761843120449011498152224821159056024459041603157632131537604057301667300897287744300572090068103366444095151103050472022180882345862107990204953330010381633381859061557770889521141259908341733009084010355528677412907857273957998713597367181660055597914170798067013570678340222422276546192164879273669868259571493406410758345274480169446565791467597960563802123748966901900674397546518987054705942430980835585387525045462592104092401316543393363141641114373726100595637929403301600568411183327796926034725051038608181902854620457426906367965135332735878837085545674682328080876607147817198781959709824455560711169276123796471545926310261708510299879570559529501171664789713989664901255696362700172815260472027272828287962396678458149072926690046570784585091043183215047200237272284472397777363615568131096251482992239007893462755934498769194629495543515957367319300005665602980689797455367876663093406534502255317990990721568711713265756988324977318842396511988229380613653681892221194165957999435339993778840687038752539514635423411653954274975226018668551271087912728047114154619302824340758227478685198258708971038802855039650984222032694602670088970802593466799900038418795449346544797987527890236307233445393079101625740340340699513939953540840613480101976865166602098641975506097624803716791021868034508560714602896055917902597246282850486717972767302192797910656363113808226279607372963256712027289926800335153227883614060676277277375298629300654628052309104896000482668208639315350239755569763191228184023099646115571007547006235358083082770025917744534947735988467631240268189462798348003322476027804770759522846049447461418538983176063213205626253986983588845130414918590627516876208226152509682616004407329265101881010753220201803200328167354762569033863174126872949329936037304148825969370227770893223093473934427972049380373813402702676985668241754594575291449754719871589532331694410698296429479681750269104893351896841202808049745160426950346688221714365193895104128129477922736324679862782711237871084898142012673786474360860271143834416809817652708092206809802084823373098469911982887833177898071408244828983678012826557792211448738421258073703547710548105106771102242499469607378790982628422178218118189225653548514222162212302711174582363341530508086900424081776624421811416101027931261670209876526783504803277466662593430957044091360600482060209406232751413363135910491472186398691339597881151987876253275874681726365151506240092136074155185868448274183800181886055887276911871234417585632336200349393137548419961433308654039146296884114765662655454767656645873878130285425348147821690933634858054428303022846205688572123958229312244775393710652371508816052645233387643758246030236151665157803033006562035984839592781337683257884821217334355940456450856969480640565354903478515909044322556261992811876102301456356607467827472131478766783721958316916417598856209851667539640214683702283426458845427753542368612295285720686478317959846430663218863375593836320852585593809073642731578317973939505968847185422100338555712401545011367192816995080911304052378647955525194476954482434769742987992807224051359333441149748915704865713705861594058158348164566339366509439487425464389053430711140171946463904962313859289151350961344193093510324656193384103870048871296577785406287676951819199709298646964192675258208609623630990115861259949285974731511125510587191234803577681648620351997115750342849681335755387111663110272841095398682953784450547222455622514541413849116961911977276409007173204469446811774895951277306244448747702026317796447322144184367120489527166571808480100141780018209000768210134800209678253599399532013254501135358658196982921394210486585221106787415892161076463145008782961392592114682172781026174728789012024681482330108109230017233071269666914615531585400752756488041179594908680392094297803960258938066834398180899268014810471655534101774364956938778553503397795170094943355537323457669396702565126170515544548024975516960390203690948270219468831815088432165598892876320490466118320713272589536083700121921907683401163817457824697113317045137063563590536839419523849861983287504176539782425933867194096410547457596562072221466466695583232397641188777903682234404407840398129280761887452441677550380372102789631652783678835966212342212021347885622155913845839816558161321850218571396514076647459451130833080794561543964761801953380797987687366278025894674967446150050047705990427527954759833091548463125515714859274968928866020037014546019976920911416134075027747850434716143139842191556418287856230150994254756940887384768456711858271037689546934870417421868304866606141339632134845741730382916818844266444238742629816553821938320360241621397790393309325316836526929197475521702453516752114264460179969406804489675545377617443646836610752188144716938887019401615357017062683645999689891943509796957555220017086903296799458921743328985801776485440286171274905558568816961296416747896073505608675613241274013280351469729583772465912708477492100978886274689489531860944703083136307804572166155503592885371711949818072765447011651834126353826255035565806283827918800921004634640070806079476902860304797198580213506317031690415963855934510442650519135822881536353685148278159261555253463876001164843851649676901696266475754598192902898870176303623002877302584160267386289168399127380610741168414783415046181554319936504529325656057605641777896633052888193560553852490923082358233260646620189149065404601758892893816028774376531046496138470725383077860559713148943812242976732401746627906283971577707262921831439449938539962186100456949195181095730752912365750074444351205702863244766550428348395904121610137377346414909145069327965054830228983234229359697430628514875224818449784714873422293539991449290041953627697081400956344418942868533542860974919298828599524227225256154219884387543127321469523429730543413653966278198583798704175861450474502273668952859297335985954205033429679026263799548743824438945548914923980654322689685115481593351161180460659785213718084307589699810796192505009325318961890061405294646720507462979280008245396588449438313267163523914479467101831637603227703564223566034370812577372380094293764102653743350364327046076252492955929559281846210633436565998763459893655393987903456384452873307690083183849910944138868647520868160744110330143920868327930643384229786859509493862530906649692552936569540451793231422465317250335653377596363780977003681751675569344525328440550380780250879969101726512293543252863570659849904770291499966492406711769563983706286621073243636464785634414420218149800150080990188366169874699222951176140503831854818077284053642520017764862867629937777498011225885737680592701763430685154835548696577946074564389383368381196589458602000725244978255529218748788602754754527456800866782057681898294260051414251172833936613070151344889815598714209267966487238210067603779628467253194359745262275569034229547036026099136279874300522960339089588832275600352806763284472288506362467371946339126875283112396558267697600674244279481816963616564055409075890964245845449928096517760766117948736325690786591365233962162231402987067337654498578215382471305767952486418844938677071399657558954193500497643001208060236315656010649566735662265101795157703498176714311528590860619370872398238007195250342182744006261369850915973251183676361862235659509409082346840911182771801118985465576158085351765664224812544385736221363971965541250441407100176886714081734945702974117400221854677392855779697451800567818822517191205622156099759432264696843968179348543170362550407078557483656001064275581367916872127183815345752147053164450284034915091217937218500521956904115328016167692705787910533565615496887970023574643353474085303773753286120736928830517074593328080343846313571926363203203184469831341989161461973286632307230037970486840478000416813325686742702891379037966906038418867568207318069581013547127407519342063809304541861385527741144953062497099039623156036760100170394719093862354247149359933414735689230971712494861932188650671677908193176282855394332182400053045421181220654533733504432762558423101471273066122090592119590759706985575501161377923176495024925983911458486843783720255149698253810024266420764973403293969560144820331124895297246376758870970148704010541996086388070015208049425578901949318401041983624389444630718740381144015203268850111542771040745244769197435021056766723252503993243639619437790156233653711045519645351641251864508087607788752673331511027357549255597941376833948566953961750850199414448537687433006042148757399037787170889546855859000438790703913552491780895365326123479102377505304546130978776402774697423771407198500261479597407874199115576671638374959093336011281610014609894524095430005094790676988560602364934225763651135353496899354855232128969589942428265639425488669716031169830137222568026159020017166529505920318440446356831121528661481345078286708459060831599748656137170622318395145623589793187558843597541133284118350269320206856164351742079394945311800943116692996426149318115884186740225999224539427523795023100283664696836379695254412744873285151844993741738777392603663601139718776411925429840060902963869094397083501255936068731259657180472513461165005106762693361775654240209179994900927532733883748372953725729453710928672733018627241454306310853915054852972964432056271696335686058720287172725729717094827602073198961911961908507120015319266298863436641058666955446800486715674071297719724077492922404817793138815047551191891806098382211086885890159117070439798710803890216375180133115614267468574559306330848503058608739445437752131018957784812361708247196308890665688119923363917023930977712096624040049132669214955845346346736458451033647605224403896526320028781908263813030826943978631573487860631818058790063788175275961843112994897090830903149191546590625713771350964914577751200542557740180588759126074074035983267278218789309633386652031667035823978342866117539048930785716400970696181872060842131155946182854389788109656171461278122203701496455693901208289604926465386090386160032529072304927676368155351184073496908650869130480729867209962277728095029928977025478534091216518125352345846978132116699286646538629147122789414263931218860123299916201500382090975449955878592454106787043635076063032019610794114971465906290308756223887765682938029820225559432438062179856595010852501441167898267209827603823841121991585758304379577630720709412992689974248856079897387716579991221161256538569078311585391569239104431699300233485047393342383577228585760153239795997058096253446035928264413609629676374546946819610918421022237678541998119421974891310710448616622003186620339088819789608609931577381188240251258725452916129113643438038167289683749471802840956728558610231065146356695132642694415517961212822519391291269867915962103600065344763820687441502318477025576011524764335220970114956360421646342790589621993710687723890465537901681439800222479573038085574019110934292700094163842072660532432571888459490470402673388914873375959205834447384201270693092250450177030743116728508849056869472060158893332219102787297882405589612213056389872486693034232963452169493980171399360371752376439481930011718154610634657436927889244149811749768808651023495153811298977971097430376200551272536296636192822649441050853830678336348031848705674808334091862481370323060757670844633606291636080883486233157490341179137039411241218265422042373690893663967709580949087861242804343391575985505361669538490361429335783943841968465223484142870707027086281377569317225311511038899796724320215539580993814106709622193068500314972373634943264669951440603904812569132533363230579318041934048663454745157599860402413041115908337044216351202127142636689630654798389052322624368688551451937851590810598947500379619688231268798380261280121383180986430160554042433198819921451078178523070149541098809390031292833120203020299883569780308056876533077804739614707328471760201413727386081995329146454554012745552864229079669798868761430404522893059402757731529249450327445154808368271942630674495550263724392092278322557466741017328592979085235096352511551109848467051152114366053668324111583087378879437748304630108045995950837296738751807156517884783041582687390978860990459045476692562042721892235765783506866595464735934823967144477975604568926272429362166603209305618974425397234027234384599933325307771944897242563251887382272702324531292237725873383142872982221550115968455183923092149529148855399058025586497289905414751944591972611949165980031733497884000694048460427902225226838208781722222090440346556053365236836580673922125447714912593342220134863718215994093125172739905565618731040772429696810586329797689964927626770675123201965745216842110544699114864012594733419047739982396863359415661796228011237566966666639086055516394113966854219719338666307836905527274218298536889407801925490020419849209853370651363893686041867596330414631514855177268405535073782253995342924785262195896987464213743937693895004715982203106370271155876282934885042970414721976707259985721462687917734890940852135758635002157672977004123306577789900191791170291618729221620726474253656769377003910211581037878599847749589993245903765822765983071838716637789430971460154854304659903333513546432554910862456325097459295536238634823216192927898325216445936880163363651899027468228216573370652757485341257697733408430738993492726497522580316907096937918036061796911128378833152445979075394929081427575822025371344236058266403199902621774470941704748435698474494833495288197818880064207287600534568621009945285619720739974896807136420016063933883606765723884213614146702113981487191956817338091513247717259485370586132674545093334862285262105257128429801726417715407859026285240384896437306232301260523709456092203994726616175724421067752424791485975043128354164206980557608813123871262546386172850643232567025518744258231766179440150083950038526765007584931153222838439679048491864386788153413349468151787110419384018732417684148108006093220550196738909203285771570372588053964172623759091808983237963108187180192942680063490991169428666805470617971868009284302687124597608580944545024771175525227091142042077276783485852591419514373141225337369644395387396189992224647971093086309148347936687160696938935081704688161929734413550893715195930235557774427804291934194366767910010801883514103495906189978932330830182475316403622088486381489198909775978406445485663559295238651977724869995665805000559828855163123553887196799327032230411383526889161758403455509899981889825306366683562542412564742843045132456178193725683630700209292666803629932373204593249460431460515814830690243817797156323373572115629370172714335520066066171828394607203661312889144452472398012885487535749992772880328678669493183096476386050410823479175388246061356486160687575769941061699391321670792756115393866397876687756852455151402677674476289882955810186549688567334541053027905959732249409519791245535510562606534366151722959461601426038538514691898201031189287377863167239499153937790397164702199584253176343841252117284399172350967563013119304939392104772444967051933580558131911608919949979957425090252382739417361605134262370373525530769070594833511824667349900124093861358919666545405147303378827432647297755226285242904695462686172257026347386015613433688299710762560371079166266014055344595734621311448453023439968397486895603976914312041336200758673312769130556825133299330609421891401709103907168091283841197591804887589898218593979102673831920394723419598704188119490061284026668535651068794151385636339931322604217111103951186191918127757472511581114982288079655775222213222314941436752136267830555626369723455813673702091929493099573761041725547788331257209952124694777514073346313461767444224352120523609917093614227468586742200251543322766458157917418648250367024760441991781333894983296133358737056774024068012073283146219388692460871044516043069506771329364880114230397617998666323235404390518094836050101738925454968518751463219042683743632896812455317343868088071825901937848149347078103298157567653866564252437422906379334680776638701171688682347553081327106543845832851540454111046660096046955140783732216956825199656819745858722939104618535665999766886555072309457143767264796787174558630119176801257389278755409151187023188369178215120019947729529390929547074541329065744190766358324102988371801666041901723666370185268245582750922842797724488011361832623884220400460344381601160290224718234343221512250786655579694481244857309264974827092669265105744325503698255721856082178310980854250603916595342812803235817832617218966606873208842824189517791800528493531951840470310760011456594795127306870398029747131037131603199591904525077775467826320737959277500267264886051678936189819954986614572424897603385647209303646418533891497000565897717606988151828868166507109244982799668363161193876275860706725590112355491513044714732242936962470328941534864465357474433656096361638346109584181889670684589024806503957756922452784060276459410958458638300645861529160827454247593772525046425533545273026853106904728172821184890153038215520657503694496125701531228708412386190255992553179424678160573328668159175157276407681391482472462691804362963717688734877977116130499788893443242537108775093173532837676278356269760539221507601764762489769380372421112762618910243485286163459031235311007456497222479318955256977637747339014349759862090254026673514631569436185671715562375353337263532552338997495250206447974387683421004398908944256027305471100375846222015350929926262261304453742796223515130779264813735682854686607375867681958137073881591558231937134417942822967607807748084853804674874248353073995842643525649859803688896121486625149277797206143546452873183874215672442673080631427200585227831221077544633195561934634777045619796293061992390120763491734225135874179939246694831899641048215468184551759555831151583847891616872246904120994436359292501433254924644959591073334508999476344049433581954391087877666421044133116601198518182138681149483254268218333394244586181095670331539431425674652897043180755836582861981551971512750116570406622806741927066543221053991633542423751522776128110406711411209421837735194129062698934061431975024436973784376270369811335545255719560709257441069513000477491002812905269518127518531415168488883677659424311358356758124931299996858768521455148625607430543360099006885231491869984024310260694989594312127161845047868119101154068359810099854680857308615250897038797796071640332930517190191471166779960411656524475207246468420565497702727772880352777291131141340905105584041053323358420783702398956538829468792856647025233953515654895818923259574744497625759331883622612277186607868487717341076524731949931623572327861807966209346132840030066046545181935926729654375132106685448933403326617246244196537574910895103624960846956776130680269062230167471240668633209564417856344177639535017071918433307128700923130955476476800546958719874808457713632861207354248614682055672877995237688078618879014684552109939486937966930760992125853271173680124386218886867886396592495527638755535790390554672206040175617145752413633861209195538977831992752022695242179349768361408859152316942390776504573997915312632732911139104844852913379320796913791978829438906215309437909104331164962080615157021891194005385135358263760776079357192092608442391278808573786434553900863011714069620321821851779764181972202260099110538050167163979047460059689982514184940503759426191328982673152910515499515602954378409921512270999646536155708104249197049043038717681172286790577359576000501982055399173609237309086482916924315834081964413865581925537276992259617796735081211056398548532591470329516168524322018919136987623063318696077556490406999706587884288927874286795103867033759100266847739557562276240433268851842698804034135185411177452217438588785266261584205008308813069318468239149046117790784456991481707535325622987423286902514850687447155549603752642415797167657716669593424097297703035125335104834359163717693575275868374072170597025035484950758641870674312771065185226920261989047876032290780733684406892504930239627053478772282147228461846965991217301071610787423576559552107035420640052671470854805233196939998127135278573627466696871222318489826793249176749772623741887724742121539726232505706179895930548952602416653707799326545824748521656465809658331768666085347451331011271638654333215522923348172013662695452887198361008647654180762993034220561507961084635751320224790153489386946916134633742469503304507248857452170031978328012110318595655561446673396541155723203120605563621968999749581406973551378751723446777348277620175451851101922532561839494043219801708153819114670199354669273484397734957917288129276464543780021029681969625160062594693067931836061606006732356692975727478388060308788239541455498495165682035211571388083432634574884143562282726159878650251196049020449565474368484344982467779529239184312020156251168164493635967850299516452139868103527958067735551895875385438956716358032888408645735985580569958412206605936350197413531931275705601224831849398832324735756269214128151690508722453183796061149792561725099962954386087086346591236189014873145382359420944488056668597732851578903243477677181144245548170028107877440008268028641347493545935499974871908578239896823473208074450975083366972325561453325679091930119488253567650580275083083242078330807672643680260660600102872158911703785711372377909850119980065755030244219620878365646357757135130801578724220470539360926906164034572416490633647770785899855188450887091149292268414360067008844439781301429564189503950091392631810239422918420022578014917234378097416954009638999724329458635536632935818303722481828495404088941805355407965839239326728065313358293448953702917538478626380509612246188282210275502922532346311764752220920458283111746899268707622518097985212691846873355874262520719429203761566536660004035523620940626193082958644722699042439306480898168921552708090936620127950363642494184180361974721042046728157532407076571873714510165524540439526343606511647964533502478257724485729836698186897344302952367990685722366767619151097682675387125539756504488840327134543931608036452777457991182895581489587870680085508086805758693546396023776294208784079565286854623615851645974895002460110312900082735789630605024080565731500132335466307943722316170621892506114840555523503157147020966157085995269986831996069917571310955191063246643972709475000152285590275001613014136955990753404732068000046907247660050832744512099959737472640696725400191133659841520521256512305182885370949320899717325475901501545432349019916245884617026604852531522766967366773351415396180908434181497356092204396169997806978335443545731905428884191619554214422930289945035562732869009656135772026820632565649139819634461795246130720691961498556752799097122318191697247596039280348409175441291487130852122332291168375522979570519782907081102245665450727510458595653782453407252812510602750063904944600010095378582850434688439778585326327634333673455758001021534833845683505477730442299360928509445171320040445222406556124389461529045377594961787823598659806246321369977598503502985701922933673702675596502353899719317352546215979238889310791057711862286950004092462452182112485197845624145917841711017015941731991094350004664710792564172996299431023234278813801337556594709740176480211948105387012229281522151051459949582787811344014498709215610177505435629293653178913816914657121179323637280548473719693725878034241517341316517611813847709541869825983026401145884143894787047860226820611598455504411799592583748618441145855641639470532538377580566024740367173035880638507136100263227805920071887981017333849756825884021464848050577850222178066814095248311929092914810707785303158431653558892197416800698881421680718828387261176233958042160834084354786140273018390067653240541190357322349431159889842383729457617596913822996341992735587123069293035783450492752360304711798312395016829644287792095277919470525531597669919376708378513268563528953343434159100702008965601128558213783907120272872713870327673144207462447231214632299388148359055886478528928695687247817269876826762798551915321401056022217580715304700251558844355783505183307865143345361921738973577326661617077507694755033532320473686705033541203573330588261500140510896157451707490982347521434119700349283671311144204785389385521449208435448499162041899378916581247855660545086283106397437439448995354634552195874789863105457019142136512140367502978524800596459086271814352827716433724164696504354758157365870501800147812930253523729523293638959669052142165560554731172465907574862352889665998779122901245251644412291911418732586971467339410650779101407724638855430451754190868095345563931144701472479588237589618102064162526879200613265458073031985601478145950827686468504726904558178944368864257320417489678784406936756962116547762996317475837490974855655296044524617763806683040934131092605912342376644998034194479102788260699559776524839181520827408968160366124593224315627596389126684509226957195573465902365837480946740473820226672951655007187597383586717561678401412147762616085162953878760124471188312310374760774434960159670678014710076402815340006782493344471859221256218257493709303581631120460418602158419800497543633694212502237888086313138804281040723706025603535605765378055339886529599993147953058311603957172724166522934884493382645059746625221524256286577018525922186593220730551049320239174056618820874066717017908470706550166261091157966721017378752891011150182395113920618724147689829051627506339671335199116408202049775572817533551112332729399921891105096981675606032113600873266323747758917412938256618736513484549780845444645864074196215817648143195942621803987512187190999827037095051227975599483420144462034090144623300014654051817467149576801663255460647956048350572008377890285904883725910953492896707367849030105654208835612221702319101323734553918474431933085884143750190051208980225933878805107112884754095999341339858118398546613328842410489196602896207239839715172740931198842978954317903680952662625490148787601556499961267962638124740215212648823516957087368893153138304906035710125791384067333021818543659985414628939197093329670700711935747053500664847636663901204789566704205968797002102917799428310974508049498675898372757057656170258743759261100803338116468705958628344275743830890692870469184104578867800036969614408601989018572965579290893505086390899480132679728021616675389763060011408996733249984082993623845767735464694583178516470672171777226001502725150174144033190725072135086939933041030135464452026609908747366874654531509282223940249636151348871724441671328710685192227275524791607550262039885361590968016175102021986024218323584222480679725477033442158035841287775793223306806407257105539937855036562817276991755837234518514208105965036498076042785859736890306499598056182327757637897781167913419135296798409086931626399230247441081044011713284844930703445492031965484010243245953560072590132718232583791301291906452452833028756443334068427355492128986565645942618925445619764201707257422717295973191468630983176031929379076801110411350838505315754387108552471068647399239404822670431530692116670980266904218877523711490413140453254665042652746903408355619749289922800326860213830453688499179424378968256224577906925794115071660495782060409514115286114031789565199239388314283536200923630313798024489677773889702177954830820546291924033812251261346531992431429165366182885095521407543318093956746055638380633968453136759283334879750997222335064347415168648012570524196567442004845437796989166460775703500638025467209753536836662901134403867805364807705086871827315062323653208040410510039732441959884691139868406569921736880788769668371827669899145480937403415600357763958120512823184151819582116152752109353175622403916746982055450426188011708545158657610471795937316133406147248770260428489216488270977717582625602412705397745982189056278168946475925188408976545181538605081247030205670727530288168795261989707279309296003144217714788910522135253769839165745927364250315807616750527154085514967332245412547408930851206570871761160561485902375408446774416731171243954125280437577994756916060562230239775700583532470597094375357740043424276445382166234565082011413173489802755294308121993658204962316178397913584704301651693963942397633043742949954759011005502887371717652260027318836932849128463082311407428630107713958436923071217061843677293928429860422214193599061071084929603722146698048472465432486387582782638756154763065628173273062522591689882678499443981902171943508736763519722115657270232267328072566427630930403896047380745447006815895439942484695105354782116793702581702589868408710570661735386897415863874589385943083878519687001746415114928137080817793477303727660797054729000119950041686902039804241334230142636639153008544957209667285304865780961069831449908737439735478686743868035396895463724026109856011144107380128461731621397557989145755222882128563250392604536995131759443281607973800184296718116692469833027078904967048769255261387455597370028568438232607454652922035832081478497043778527130603576834716359313460653633949889899561063149060786831650423581793306635097233982126475263661400722648171119772903795414862498887694002426307537097165231740418953424526608037285556020643382115743184390858408141816800771853217762410644298301503229591657478968152506460729547401225218926165081984661442362374301109348225276361128771392192803836470699977907864690784836192412065770666599966633313538569903108086382216447001408790479002353050674603387989159013621994006336225638927565122164732491148737609446352812068415064828180072776356328188147354868183808489603142307827102167390279421276961982101699526728241850508207276840083030742906829765563243060286566862337989409539529789167193882287597318867932432699746906874668740536327461995432963482336868946391415112696705274746863076201972195550866329786981877463609900174975677135555253237633410359765114135144621604140330914553700370869479423801002647330409372081615531936266988069856109712195836220952074692155880997825976741272819609053081545422559387983487998501533588105210067034045400742865624389260201484413840048338617457916491938650753626181173479003528171515838214683848771137821417494256890084388051900141677487046169434893919621372110170516696498946197934766407541187189924873045205186121771309744304849978032659847317108006369996427323802288237670392162648486166223010383604516040572402602268185482597598521775799733109095605636237827034969837755904257763108297204514055137111819074559637686943080819638602925141921262951536976068704949193202982067685295464108374243708593389529935766445990942369163910797744279989288239591628358954852508760207714833378872356821781071842233991481138912877925910898479260019955722077596101829618851910070449490699078454872845365272143976733107699035174065576276328165694823847807953489290990258413883956829323455583730063873943655262389671791253489660702571929303097808547483710743047048656919929999897945952916490786957892440314049749902399484514949521713735032860844553398402797056998398081469151274934429535287723224723885270184750711976458398139867934251184187437799512567835033302139064139871598480709364457305512977983193351968712709142669590226107598802785018499933390427050074935228690630020395981009732855684638400502835612728276960755276669833917835201816798546507035691529078333076378553038093462296690329167380059231310961386955180060876557142734715979465293611041575369434902783099978263196277093387411064278783857257929733783532043775616064959991264401831606287096735486868679160272185988545042687478915694585145058650980475276654584845687653807071447098595896670382627133515968199190557192943206533267781731427804100495061602317390282887029574963853383434539371283733753398147680895932468549515216180696402393177782529955731624692316355172564657842118384292329719851021788280529425580942715824995924672895860664439538225975071998323279853335506450539790845936998013115601198588255737360279562827082362754675833901824429987051981525320074977073128419407099449301158017244212050745045250963048586028494887465713785667636798439358978335203826482858378544885473978934559142078420282297168663424842971837425470966403349376547441050918224860100553196341972321858295426935525819152472955866757388736941988929808659404316206239427842087613176240356650089080422686784699984258964102144607432770548218528240060094646088806425289572492192881179715892377647461232682915784675896539591199155894820939714037529620363801977727850474273293091088745411052409051906720157560618358725483424317483039828470675951469143790067344619796306875889461731397976703784400539299340140950005369878014094700101708215225800006812405969270908795053604273126709148656005605908189272913567028833636580142564670683339345635358752474473332842229428293635522622137387484780647976615691026187797680882225266367421382693837993057747018309064942047554941653338866328201951701378834045143591194234682455065559357324813325257679040882689705283978521150056441337502147456562392972744639323552609159297103340552211848946560889275916263043929462750229620843840040647742533564839439336287143286130201969967773588539535717668402446938906711672103142023135657584811606100402758899485797785470775007289810276618287140342662520785368916319841397634429563402492700328851575221504500210918377151156934972592736924988207319260282910272137537559027956207369125738232080170298760314250700784509914514760435999164128123415640517475031136655951174044274525484802861792777537156757188867331321882031685595807604452221725971522259562433716533097477994166179976793425621709483772795200463163010837320936225360007378133462398967466760889021742447173299114058469706265171468808991364941828036739877601304807852556290072309659890114415481967093524394920549604240865938705019361383828254545330108185185625770563891794272677714868341862810674872342326282551430346327977928917882365477792568582230966189617237808772447563761134551555319176189184826303285620846333490354034716592801058137912463252702415626918671012733497840365403980628812634319918363780761333733728351441120416938337769212308457182394534764303424722304152183426465429916140462055594240829185480422874949086418934221325261825458123369869977784433576937958808550473027852133895014379076103550162684703570286044215576070043640936469811336738198600595175236278072936749848652469267295736000468465993232058293436969832347530776326454725898384228009468154067819221464681857752855494009805921948923050158391243616308313092369767579188111561148690104398844570769823443395575165365962889092390994370315275072140466918056533110710364046514116631101596718016038378792244892425496078396086616833946486026786641891629461552362661557338026000667451810253843625824380357583074692637169042605229053682426853907114399109132809058332609178263054236028547534041078809335341652425328381077336476476811299722122345046561169565443197591612762336357884373519549842539298442440208781546776563251658384147604629438764631749795706091105077037318567512293753414538623037516787246587899224508030536238029439688156106291250917050415573813092713664174755956285566913960147238453421763159682219068786269281344774914927392813991703275813417523991625027061429859566996713471761900601403537944249075765811497163649257302953851242266090829839601606740319913200522251132397738636152502667311194780166851288236597998622349541263535094388913604610213687724922518268203669200057704572939333484234800264040238070184155503371723895869335861091148674740803088207006658379827331387812609531805171055198794243475226242897359471977557842823527037067946533765255582847221878854703523720010493004865462158728320460200092435387111517971898059900374237606689142121503368826852685083641083264127413371304654773094801561141684939463935246155666641006680540197522515376074436171170641918056420783932206000591115111543247946373156068292968500015482690034260623201577391469932496420999836150360854541491713867873240818411577565465773910998484450724745730666366995871822601923505802659088702891713647539401575600723861045613584989232465680979379674441807494494854269514565003929062798205682636071139164101200544940336490089426434579242068019736407108878197765318337319727142576993757814236206485182531323751777476621657081812643121132516928169700094776128268984075043023179991190586071319592065256899150562551565576724123166326831330753927705783841615464147926913526989084150116126380028249697268427803205453319243041773259432354449211201993834947544640062474762738795050392977457911525815207331710423665052513042556002509281046438234873010988856748611764018562963107799467237590492879037128910107413663546469213749034347622570372303064344391044539098463032026349130064554610061560766275749777449954505768309520950595394072107259328419563438155814054552383297868643829382727643847459971560784019030684963645711345060441957745455595735913685456582666497630439307219064084229228623046990936797116423854645693056289029282845760886067928996221023100495323094921226363380612060538037912885016591599477636130526016967599611395879803027038439032516432666893011923213651836720975440102257010346670496477528062996339220363985159728449351501815320239985447907957737834324312461072218085704832699433650189426260596050454259213825141258721915704409689050351512191363829371739904539832938540211178543028548710882742708250349011249576163615316996222540619650585769620234149206225917656834322786398714754535283066644302243025944889052984789368910641080921059957570741062259853128123733758188150272789476041418448048471388664725647005837314238487032185235260649762825249535261782333095593499541155112327980088686997823094326300822402398515901521285483331263170434344608437577572797912745092037115315521167964037419846931083487121118404116048046656996440488202818360395862513960236344957453463033830618607445141595539633611531894139054634443556325268807149475508643765268635745186695159633545956249573693004714724198190654602696748422021680410187089892383761129024349312798559491692613341431875121572927075397254262526767560861376761968700797519099701105029459458750446565718372539734273851156691678105970036678478596118896589871345590621536893795586429607536031611600194500041147644753843293762541014291190415849612232133947720918724214762341095359541209474410933851090443613571352383137768552046674959858918780741911795226515110347781163578093532280619425852872150483976128079051258698505553994388897540723188630734752671008321793760935997655342418087746616204292281981140731480444436129879053676246684204560969384059634753759713569563672641617831165305302693624233095090416393436111122900808387570390084611378086247646642942850808750421435945656247902670177257761217933221824481698512152526243044349918831453590334349373684733535401576986682059067530411493843811066047057537269893367506922645232211783984625418060794369236225230928632442108466845788994719758474531691759994201478201285741661769800016525297320015788535423430703406242332363066835543180854868209088527217260421591370504921619904491177096508077086635061343705399156211874338843234492190019922282262830316268157937310674551453070172550253185265455193085345598273527288693410317972786454491134734238943066797244025916183970740199990649693813689398440052009929669238431898242392918570419689777533240345625075048047842642579880643998922856383636669975467203633669097069754757701094792312556158779592364491800072052669160603003127849169966106683639988197981075866152292250702870474359739634546383780936972430099615552165083758212459234831234162517515648834338461178131589696237020297320791761654304951219447096964503006448429900576552159461971716887118748033095326509353489223042554902443258999970143565665326542235552212648312112252107804019246627341241931604889798274349316715489436295569767959380147774260144972814777905579748315712927249860108043200341819705649844825175291301026929970986257463295950535201958397301781007855643700036726091523707238767042168426062027181964522575090401974201493038352193068725925695557426698963603361497922584492788912249989667137653051490668966905408751790571846812316438530268775338468114307381191826135442503526644379841542300434218243403567213708198662305028172010187615153012091736230129717991496197482317458515335778695008857449747956140120397837000808323786462163553317820721527441508913428695850479083786021058963888611644624618958966922003580853900491863765605011508786191926568962737836308966848029658191128729973368623897283183137723308890956713904505588304590528721810152135840876564216422919897853675919120325785645219230862881700344774518899184420723445472582132413593244907316848056423010380940881133141628556093378167818621548112355124078550410742193317302626073152253254482097736954046483393844731776942639279257491905914370604392940937468852162239143677742109678373619125011975492126886161093849506975156668655396892643403716315362011780007153383184730476407936843856244153619067607563044579844211364546676027260336482903773760426770996993019678417800244477230373563422233735307463641351477884802054868769862062058029409402436821661507110368863786335125708786364980735149651064410894127545902845194529121183646179925120255987861081756142386891755572791518951525760322914490437099158218581333336269346456935962572200471573628589958037820118030535845274969029453413566604939861757017983966956776000442128455463525247171010020909877806569419754578900748344083417083505096646826083950316976042186280123478397228035602571424397326930818510022860719404144668662226762259903289285655628338009891293234837086562974635359252960083604105347090696012058495749883544304950964249202389164298564576597577181539392435937781457123304104183845213618902718022267518028795699078629654849187742009476824452845217682328821362545965415636459179239401652500706592913375307791546037725916883886966640301459433021026923475799492154867764009276726118545680845876914671142841573908824621462843643672214369469813639480817841910395897493220026839417524168795761351046801100438671337911452648989258490678065365017835817047635903986197624473193957034315724533369018030704133762067267337518227944628055110521825494459490256557356696353104413665326161004370569086866575588369535523647817910397996737747188877304684391175127581573432513519947356652275913010915440686941977388097237237477904289653170021394986718313704219889332997991382425965097876646725848080696295841070862392929383837273179905103860587757875002194822317774849966216946569799638176307343335830283821331140797024512295587108839074773797013057496852745412605477520106356396548004556679619243320783769944393434291340228805637890474162310555231531452740146805596157265633055060572602924046609542895981988709809223107888013685240833797259651481587218761512266137841241732251200942444541245292674897326646210110987513095198199993250760067774011043861122429795520708152814366508466463244754965279090121158541858708658578112062008689978781700396653215243690571652670506115054913981828037916752265008684425211445016854383279595097665111774927141047042919876289275933961510978813488066881475973703913418161135775187106794157473960826882323691616006584825353547139600473948011637349080890659680228027153051473529162519731146313181043671293415298536278959498146078700695759207799804886851788590487548256453550229660036171556851656823792214304732428972218808450853918206156129148243933653347797694165328423110944426252515669032996258937969553170137819769670548661451042085580720049198681381511612564740012552326733018254300402222679721456901430383245007223132102793374930412887372942736965583013235446312004861532528554261981447050559813360327053238618414836609304859025145085217392231286322896919863931339266741710225388891921499462708380766619607899419965386552059249018070191367526351306302369433524509356798261120487674792804901746416262317005846273875145996497060167920091609743557802041416776160846827232202014783810106913907028650198203738818809867079693244813185729850927665292716934789949475007879847852332512208774621373188969533959663595485819515519625484536129832819720410481139437504672721819390816249494888872780216742709890511115783664192183472287392443311162303925691494112723632502535415311969963546806754763377755201194411791810554896635336756308274064668304522683302651357459985038228796530531279893355825299462453535693529447020850683149432628416769674647535778896944936993003912001166381817481664601811769021732103216833210325853105119754300783096259037692534628102924437757496875361126597523759239067889914779139466180629837833426760234655016063030563329492923914542645406912430266039778910478219329271939886902288973441836958558271732279588549459488957141658447346606807002177836497993472524554769647112673520322728689508763980785050339694434114777943156891438771259343206658391061638175157520534453084459941499663112257536404042611600356170055276037009403256771584106076816435762247997652013567179915563492461922253731370622148219706671815534199513745228873617441287988469183173117266802507896674770221379637407591062883260432988574704919835726320362539573651044305424076312381747134503511770382798405265458359229542068273025328144902909797190882336816946784108890555339552346876508233578708097817701492229556942104279717211056444888905554291316651038492054199038123298639863231364923499655771188521813879709520577977439194447222087788351422609236368781292247347247147711468428691989788466007973308026093251256732355170007112439566479643876239624401250714818833769154560452483978653125970604400378023940008573984932220737149919461610575857206544817865947443483042315046395431072972999973533961351013615321377372154521292211161029011329022918989946074663464414547684473233228032944510683957339331642292960977640515648550818948539295685997258737294200448267415390866571910522001921976330596025227530615962223605263711399821809764869233866257078231929072389453672960326823455105649897712526494822719087177369896498408840370122069591235279988484993854774463729868378474969267164782326876201724426510611457249875702930982785261675085771590121331165413684900178335976506707288793596055502816093509025696575846605358511997027313081978001718620675978721632988545865608614329236533433478618929581378413982924086273564487026164857654087096612563064611256915990808675934616261016607202738822268825943811774307225627769845735493461656362471740371789357878604003192397402562821075629116578518411606853934682495018422247829739958857750427362761183041245403837527882919310130304897672445969063663357686069499416655240003534740179820279773472729517284931145881450596590350438524674605439018550722822261113595373477297915068719782384959796366015251258982270632827933831466300645583536990508608433645120877576582763725103818701826186938288492077776674766838025827606907186550581050275038065688841240179138989684321447136009668712462148807678232277674406523462434415231722900527195840690318835900261366507194175409415878076719774573233409289730580729935642487203883695631263487127284128742080013275136728350024824158937543236168305989403243665304099437730347069095293605850341917284451307420615443805095195778556225690275414642468850408465915661762209325688586165863178508196190195157089633530843050409287684636445689422889164678681951538711145884091896052243132506896615534721244997271781755584608360763384248638469434989225167089857433739556638470885301533844995967612026962150920164004751643560944773863696666813291979041222272331211104124460057043136321082132290002234562403250888776781628032753525549912648644419526911222726541513281015911667312195565215573558876525006923407791961399652947478600989576469741470466860837219309971344810910198219186359334666234927364472436603429959380513187755750415859957975218717614939341526562077538282264748953330164820254372108824253591123659978182116977932957318294569637547587311936852813612160116304864043008139303512274159008735806235501568807433549064107072213676653086238022624666076034592331224333378094862011215149503927115827232242007551021211086548989520703613298226659860310150642559921303407487008545883611440120500197350723022374602797424079807145592932315098573671606536367734908045738531867108146832347654383583002444791017273853867310747839466428031645373929405996129982247106088127997505774782543825944053776594169774174904489244351531085731202329279086772978252533101521897420553815589413685523863051173865161620797442138619093067966942050453383067736604690922515568336391145011088304513157914431197114957113914525218620167867778276060774931555498400366845582495386798916500799611084151126497418417963031276758450036432269020675260256172681439094551652282941658948677350874593665890541967263014397559663890461894921244111123566598233951601653853570011609657671459899393614663856062485369289690804916605560352207461354082513719976552932135985607237782858387248766990196992383614814609256378129330845228338644631958191082990025965338717824431693780076717788229440315293137860338807811059854688908562119041988197405641071829058634286761519224893809322090569135506531769499253165491796010247133634600285163906901168258261856802604850877326482679066963561502051238714430441726989841514917527707831033261785242201937336204375776881209145074971875084320410295301847113116351314295857326839849310946010947543279832527795814772428142889735518223806672296655279732230042970556310477411648352300977860931056936659477996475760223184693216020326003149796034773532761912153376153624331644897505891644904026259776200856318495794585762177671693532792209771247270736606687476288947076630268398092627226694406610274653189946799864827046254270681812997050344662932134129502798220580251161709059655872855892402477825187762543687214021386275094488776357170916259347545117173785619510064555739910530233252848508312460717215771834771673335109617195398070888580116930805129775667927966381898667311457156097925643346699256369294386544780908088281464424951531423377269132862425677508040176740018499953010564037667912038536250034910472768368176913552592569074902124110021367597313099214498109039540147073744341942907085087417978378987909886767010780022107063638549858879024282360647650122783991048406576470065315161346329513913885488169207625164141541603232305762442076221915085762881893310069872861653795790503788296366212529801716059359524403782952912748054951507698259897818715796154980324477946146578826095528319739652298857822500138188406374699528713608302089156046405969209817612036107543202822397715801423181802978206946380863319589382012889299345071951905299688120399554853222649014787743730731585878839455293119343460736331529198378540156019851843195753238688651043246045603299296918711508457371096958904405996884939462214758752441248993690293930608144550293823133392365009405727038411779224172602389457872094640234858920890849925253313467050543170830744997017245134784411951166344558945216604229332391426402333895960619989034439973355610280329606684391949104851215726108267755454448015776859501187496850158067942723906215220568747003186677202681544372469675020919549731814010894526790919606581569911140651589239863096465035305978252845263623714156190614205133572115903869384783997791041686095672308353378394419509618898410792631464339006777631904079878238216101003069142532461931279259390570016379799850243462203708545268246046455730294074479782878273221729815454272069003823887412521155931821111334618827685944193485875754399552013024145013046790696527396816344391166905503994187317680183801898116337928197151598447415502596148816529767528601986191033600059043557403554730663815274392454293189261257800381841913268032576835951606328604872927047176004649851715791596133679477237040710378254074181180382294573814752521340485079957362439158547168564707930988561051960028668139853359560422289082367924446887182551855940624445832152156176523973956372956181506712775365524555123196799829134142794856615058822169110208666509827269322986012264019733518013158143937338708373512590781560567340303145469807343168660776856070902926738595437900771446369797727204622226485591512845331195277284659268358067870489095194929410212657141154239639091131286382239408158957767403711503512203419253944854530210662281511439180484114591283440507537962832941587493637080442220264037420477838698283399530866377025337186858804440959459991833823930859997359240215564074242579881661982375618444234375740274803949466019938351701832389787416140957473319389168332633383002875260216525086982617281138175365592015154628078917448657160585040938744763584633328119240411231969932394288401063237975428331312593137557900552858012881638620477838582900198538167833191661132039838457073561769664589723863842978689378948678976330497565885255069788099608257241573407289545234854638981161983884336888785093859601882264608263023463278547631832242702440914743753686755154989997690683937227223461587395946125320626606865241817396209051808578226908716866512934771276252807292938127888957797923541704161867843594758843480076040074316089605905768375585319476037660528084725037653373791231823209774594318397346959856205156096834472474471761604939153658073107596477766500045993567749582737994827662500789342569046870420809828850217469894849754633410848491819687743558912862972021292177629013989273344814221082541211920943869601203516347816484556999152354996701800214857673638275694933497735229526361724590014472081514298015020931505030501553224966961289297735853516092955511462811601003490813447516740767519631440350379937805632358515014388843002687184120447959358786266006748200838705325679366157754277231982726453518153458325002167105706730037030473299609074142503956891115350861503965430277159037339665394418919085466822591098764973789235499951189021488404405377318798462533548801624064358858994994631658035357687744940194533827281933679328220377518620692453100645582990229096964047263926162326396708310027902259622543988137686634407285773889548367039939040885218754851316238089614217053162291266865262905335199835849442003000015222448071333647834659884543801838963194095835384570446343770280416769683352298712644743008784954582719411154158364096851958032050150551852334402886956054466340084720808967110561781173918460745169399732732144216339480911739968412651303479408519235268218942027746585477854772495181756409194600602967351246083938679270689110516800745129931577266396151848163775961005681651234115815736243857042856969217653541272644427268533629815349575882491410238140372300725334123515899615537045236102209719913544343954540776103540673013767079842482363219724699289034587442268205152320341721059279951686290858550320667184077939078894054560276334404099786661462428627568772783840506067339789214658175338569413345989373477592467188774016386529727344258681805355308647809450834873409709176394085109178609621277374003793163013794568083868390464319152250182061844375341734765562296507157667213306638957317897702436701427330632344778977556887356113539104974982210904546089624607088367065439473935073243370492384280547777795236055052824026144931857790532533386496381419979319118023329935191999707639568438303445605676861417088342902618747941835720395932374806260530856952433972327104466968840483445437617660346490293736698504120194490243850206927088258582487628043425392025718438383176437814989340675713397789135576186517260182527023320301022178364594838180006622200650158705605705552507021771055360462717865848041035123999085603205904660543074867858394556187258961071443315360202167218289330149545025260221697129217580170443199213285204727593772782975548447461232222452294383309796363275919759932917777623929724246444388541540271250967555347666681038459230551766459503204724114120392323260332054246723791093857164848934793251711762540439970193276045614204602897235134521428906179931091968153785525029381471306361887539149931442605839470051654473642878387307405571662719159489844123720936875953946960711924331205757253544543963526173601039337485692242244226821703388804886982205677419825698304821463007041088556039288967094598368286514414455883183447038846836306500987227877921793638373886834058271643738935539930383576886596356892518387487070472406914466534116694620667159743602199159255719834073575055804767787846362013757146323793636616179302200864100651703753545714489051848829016145126442547870871431273082992889251431726450582309437139115112650199817391142130723170553923784892348127833892085526475725404065751864825548749068020137276189874639549847757343880384354296316341995978875882958098593027605655397367668836726120517704439708404541188771245674739317609201237155629000398234031367848483250868866135621124532803963794534672465356548285724829327152252639138830420294582671255700495781603012656792037752916291217765265132298237806740196922769766773951398670205306561619116205905092456706660180766001077647472107043907679096638393952098254774866697867551646519827447301724541402506015089469995493143892892705790113808303445146489340442228931807248189096524199048186426178541305207092362918087388643341445234343059712367944147343184350125857164792990471667291405172764010165204767827027383177740812115237496771488332179608648969394900483994393472760459022493783376261414349970535582754229110997822398449476274292184592405653361680590552673117924753514023054950293857034725746055019939931103642680258609562681323142340168652377252019416695796260615612129490560272561231954009527499366271890832939236242401665012604400602888125996560870254382368559134126292365039415172179320017450039077426072588977393301667811740146921838769780448300815151599014584385989167581695711965668592968147318103606428370298457537414376674769037799546062015543792903082351453383346887217889695960637543275109881821502222763732323503966533412173214393888562973058835413164932045331832821580417002766006507132236930801057563685321770222318713818141405629485250751510371947414667470544663902847732482473079544907098300236597105050835891408568391626881941168676375237971561057834704878606157480769436236787207188405076479972945443690610342304130385726417237834482752290652638014474574920885409219052682736807184557165715570879866981140405925869822907468334767470706172362010435690284504266431804317930937850419048797872487071356149257971747873270035136718872023401995367359659361915522193275883298523326014364409953108923634303915990239517883201413935176703015428120091002801658818458723685394784171692674883654661941855256745904762074901666090509868476673523836184286103759377090262343146481774919924515568517599035823396051376386287030036965921727210078503139320908125286019938635120490940924699684780507774286321653554326778239149251081244766441704938746805281076327229871269569989003470625269302980293407375620026500342610743563740207342298736386122558608253698216615530536330636147417405996639881765886650865622505373228409023253494490784906751060774213175479086122280854850140000640724182890417125805141540613409188912901764479289951633927373092203668081246053293636554490897060997756671419022872721750425889016579074614655269304467442910925847130694256985202321397322654718495780591166244558948360870195008487812051482486196769886400049297845966908110509662275931099593429982331639178411117009537177577526050940335149744046335726862572838427452715211707679885393428075143781287857445717718365986033146655417830430942576599952723833846863053050208220975278807542425363274184501513123363344134254141328618829905640542791699300539175532717413208609011274423641528163920637264993044469512252641148839268285420861527240252449010224070453931668957605040032559767496838811038952767513910397344541523518373264975869117624405161718838728262238586854570672404115279342507691527531484138776501651268540679996795698305770416214449290768508554773672910969201779895054205755028291834375089554984843481787403214513594011958007117779702513103421262232466283086585388435508426264472678207855978823975386082400082831385352531157972565771312191843915734408802032921524929280550027744646777102081688066769391883533843055900333760393953734153313664592204459201201483449795567474235965286111524583229749260095753670266480057459435043510758624136177348966033725561678415640025599604230170230536358238772568187316180773545587483440116004118755558821778861712500551344054627466301978605251992856583067070673551054446402988902654274404570190182716259930869011505935891730015158401003362005597732988970283270774388008021723701548061235182127329982290404584267896649072055736650350495022243616500103975380086627226188246437503216952785461691310370399465002891005448725978029780781559084823432038754494301014683687345337491778810970336874902368478405252157398087660685836347223938829929867024653829350109284899230014348274125461035492130227646655262095437299234539415489283553379403293371837649415368584088347794124822674448229016200641951774514527838277702348378216371360066301217140766857991939646530471312337767860952295700349152845175096904145309515152504585018200758384930647805994813764614173805980687829121426370780495987037976273867849223688790683688070106691557152551474580413827394565863991228821645517019457295678528542357310529047112821110907382372759217275290597878049119603653936732423118811908474746116399419554192142592724977853254610556812755616246822097849285528039768573301387763388913554818103805245730316192231449129110207076849230779639721096818098576403225196752475885743400868186517361531794672414600942949668109395975343453786885443284293731859525236291109482072806949381401691471414264364957622121759721584240483343500543113803815873180936415234659659564640895791850545303490208987223054923010225760122895339646919241268652895040535447761265431906123832709201927174997550421017340103797405667207721625653060776813074345219787503002566194380200421935236104128549406748634457825157859646771613971579887099352581478173687503791955888826707025931065464838174404847117423790979315656897744322158946217730659928062844206114540041114654507825380636499826562670364711233176759678410896724569137519272725833797019327756954882528195424682616040086801075830508602454460849332395863368939894758468455054501831374303223773955780061922156306045368425317562776819423983230301585336715773194223937353490081531649045283482208797756352257488814259313108284258612183960493556221971183449275362743253305251228944971508131828783105580604864767865588200276468723782301463479978472233885310805132216809036486186602397294628713454250543284524086792196054298231008098723723823820399701122133275298444277503564042486274525525609783827319882410899019959465624102910319479423110733761750312949396073410530016562195341892821927792431775621074981388963804563103839093666280542058863832969134951300842306736047226831238352727373415684615055801892323928565332396169677321229109445160395598615437964793640294298419935094622605724268071633066516499832579993753994027330146361375968366279994728970760140166513987391675614444078277847971367617747237857607199141664071557183378814413202346833687405029789070584570794541547146306311745395238081276988090664157074092622675721322167212168362268514220357284676072405503389708734232116982108302257729320192032669588031608839301593403715758810048411918362167318323584889261459167777455303191404082884185864592218528293922835037290993206436534976503697624190275361608386021454324474944775347378832254244747821314423513390071438237844470016834717973414205943879226054668413317940379764195646306891582228133198283351005150368888357323080411267322898546324731935688964451564470305190908533763168618562840775992208381893172448412652534221126426289249713480898725640755394175397400910098792401994606431141814857922424993994032505690996694505416029702495127627252490134372343003463977700213714435423701251253286632017188373555187618324788505993554817730577075088875589516911844860461446591160379573948491701829964847853252485551566024105032728161529336650053874020423422619380385634434454875970159541005193162254570879633796128041009259107800877725960323003143510217545481982872615654635095676039863602272168747553759062512996918497385364320659635501136608551243788023535569931234391165104927001987619992953055541275215699220627566430007074419274471627311922896027147811599600462730519500880394644465449723602781698973621788507115419485085118630623536176392757317883036971540613953993006981049998383314796821432085696796321679047708192445380046871573518258904802350454886256963697146300615218083987313329274178784402653099852983356932067295685979543525661517887308419455461939243319506676491156901206110493926607996680715829547866628339023153361053771151018917391045604519812909479330835334442039602227853639878680351040055591817021920156316511568865440879208502755587778736583053125895578303973010239417008787926444630867451688899980838814801447108151929538587931900540857683546619592294997743174070538747139389871439130509236179255362453331328807700949176344713101994877351290714135409419762771979480382022790177283108001127818939904431239337742233802905704250762627560335561554328514764170463742745754149928745298905541575290526989126671873152606066089579148719522410060892701380143332978481455691694012195179961176811837934557187644978438203173320602762822264726435748107426892091991926362333267221372881471641811983733682131853104265068998515955779909479545389869696424754676149041330180217542163806948521884616654074980435060672828365512139884420585600264126469425753201393957360604412207070161833557592531568836398148142367983815869978122012828646137921078772258216008405111190549869010160082833562999604113337560514153988050006097129645173965206411516877618933109531104822204271738214077398499922232241606521837638922564310896744075062469041331063506785890609446540391456509028609525689365662559910805994350302550875152068985348078430068021237218558529157208342918224555966787864986733803141388119378443340243680215764225068957616306782808319911541960779310863821387468378489238331769024800321060707256176193305658777667433487233580342425125096221414222382413717404310121611281262821249272379436332008739458891689594340635348395753775140973760754580977699324133481484900681526460821262773594589396933631337034192286003274165573431572397525539104424630616759284243530951107474574018045691702963379642761945841253370347379705631409827041551442590315770271431749381253654310768299490559791660184755448058905587089680168988503031306784878149529451788667342663266841282382722425957430515081188171833203465723312444807638708163633533666920498006144982236084479376766235904674930573814530592835904593849338783555966718319230137747773500813285937579081966385693229833895455783211461231903191000229254035535285941577362998595496474764551839258290977966984583966161642549665756457732413728534705963802148844914050434306175588816201379482057614752442983260593777143732241904168813858383036877654578348975442290614770226685301449606637715235821999076693739399630634301659926670516743345176331665152286190385388931058153294578697333131104036617180397110995688920135566682560484648435876128764280561686301956168524383366099651534975417151771942490175696152983989508891290061784591236117987159617746870624743697367897597142231538593738401941884865187808373967597313152755010769160651249473552957562538721379521063326147499304152464280638146315727956736807513213069282104767331687483535182834782405983604222912962443641794762091262246555648734184652353421244183817485283117638048947978050556151583994977177959985184061509808884914293479213047782548407648486526013806390271776219418939564589094460963036839803670225161470889497534056174609198326356283119018569734377328220876493885989694213166018730713927980178515113904957941409561168771082684936332637509864935263464410475245820239741044281265815492550810151568726217616955087398472199236575501427296011311081041364326217720898650842752321348946984717303281101555569352384665977017727143168613958640324671041576875758844636789765503231870247353228696478642603241284025039649062909186048693608620063396941877656973613334304676673923902070141759804133846227944269955422063917084109282720731404488501974823232441895745840250735814457627751916357383662423911264376917730016115699268662025463560717222315189155237809096259399820434388128353188536425021262846837344403650008582956056138076384146081426820817872082636149997126631784655616479904809543280470914588718650440149351321620115552988110728844902229141750469529699854323859980817589934282938686319207154215895566936773693579374422387089305554296298943833028842111691926813648865258878677816679055866240920417315505993936992425732689857762641690815604089622967050542074636996123489373599102065244975803776566440469695527499129066947292390923888884080560039005553721420571224840667993632783485564987263102544481575073352736769230860455684581503651642117383167928682897965351470773144228564254476101094526201291989857015248238672331869160939975788604609848946404964782827540005324829967765497807225054731136670093833223199058448098797171548355211942718219731146036310940321604249570431007467808887416921730362369881608283695876165269805399653457441472908951770608086241281551319396760154463395822605415913967017870085350091048163222908232906523870181635379114581134482400312323660956226717820430706051722971730986678279108486004378194662635075313771310025330311121947728111901203109771529444686458665050829961613581789120216166691298636804483054426612246702035238280743337871600231757180353933589976927271906566671596794386541345143507605136615367073177673848576154187251876335411048763715264685175286635751157290662256550723351112050143937580226895228260238095745093521823141825526191794622368278756758199401756332582685762562743797456483693586767834345388742430382121248488156720522968644122767066073410542891216781392087193494379184368368278025655551427078651888798385979162423986375291807047753343654304941373368619037626015601880597532427285544342008805082141611533291995789551855413870274662010225763086305462832652325910257806960645743176057393196999817509698614558189440262992969826254832571697964815498404209960121735149413096937400462266877562619999794081724452007210310859892549094654510925264902365741578421188990914368683003920800862724257131079893070209851526901070758744359678529065275259571550165528183250912594243969543206669039698529360377815283402870093295690431023321813183752433014282256092279209351285751018382727992453858073748090697012827134697690779905053418477710278204124400273302857062209566184113385847476107752371566484097067636246422695656295815522250637017737353061199831467007458346650762139628995847020878301140469817072582988653534307932525207202285215655960091733891163353098009910041056319407518610751916135145416830329408684530044887605066357820874534057166206217974111402298413212867836062895835481509297730124642730389018807124463624339138540703903572833006312046802577006710957912192275045586618468519183054390400387366204222725166251948960589531603394719228015003884425900089328524002521547737052327776177114584145465636590515785905845803174158966202499337742962874589463439196205323513835042390990788678963599107270863569781052196827078943457645096321133990948972992855517943649514227746049061258122966283866980079731954888463926049782510512031867233322112350263077872613405009427513910268394013736960424605954375583290104595707565655601143727387616916658140985073856910981689379865785202524789607999129707716693956850878582437599926505208469271156618285337330192279666614968756025805351321368456265785300511131159470221685187976560188606791106180527144239167148088590141676595009698550377938046049111999859239658838600209506537682438188646429165113695190033492331587655530589811606561671496735697237413633237733703714178992611118545543787377935301305767302295985521065447012205410415875818852761331485392144610627924011691062241142289678537768719813557703894730759462108595937732975749013008230406147217389403320253617987986628141671549698278907007872138758996369652551341804706282763913889486050342863284764817008263956389506415978753510241178227418517214637180722119628595131508626476344330802924152003153889107358845849351209312523476663335687498443669361943837330024421484397688298968798102079757300970124040529992145296183220759092690503143955641268095986013002810241393754635582945494407381894014003325318568404415320673628492875929445854152369446857656171849532000712333284877722683100001306679141070858465388952555177687858838425313398684692763503799494479946642741904424300180508607768125920936163465284068363159244641532920600981897896309334715318908519715702076577440512130703775192806774714259036104826614172073601814546471761372223209753055600857324885102146443244130871259050540418309253896223901488866892835112437890166093566204240659764057532683376460752851949054445824300183321065695815605241070062839652040147286727217669356495264501585412305228673868713482617547858208706160786648428532792280481817211138821105532613677758133269653220906837264821382935021065602168025172369221290537688583745242828284508454074174574389350805560724257058107484079769998267496369785604425908215795033452256160070116728578282062869963244353010837333398908373603082073125178619970043926331525469136725605152474058929899918065816287951434948037114192319405929327347113340255105143315037901386182517757295926836479935630921705863132590926975196136112304524051042009412860113638292673157533360684936563275973628006679596522204828216451562483322554903961744643177568923979243206650698256812754582054179790106038311639390761768087896554915907852582558213181947054071858380288110274871011502138873053991500521734575742880905585256309835304463684429387598669882486226937664238337205194517789377336038533423016305769021426271241165900139261256553630395649765563448717502787191700639030514809735466206355467726650609830683709602332899909430771338112761950128922766022198902903021722038255278680975562050050290099538263291428966883792721169390812124426641467385585464344915557024032254738864640139531974085475511585384920852282874383541797094169719246830612814839172814552722407397339836634058786677508253064314302402478537706617017414778000264597833448908072522806951837558003014623007119418316042098261443920542007494681093096475058069161994215201476786309928270364900805987452165540587345892989109583656236653423260160792348285625838567645405915912343664180242605518307593019816541256887362897129264547439889147157526080056462063741577148861076412850912673997532261064123821763391913172794229795229887053554646203962563345155419357915716872145004044963936121827120307563430946487346384001959220539968298338421678530152706945103210600462955159078267166714757484326770267031762301998103655668869757297388604257955642519172577465952478523664068623018533919821477852971744516647778290969094157742444778099418966384363804876408867929911192993457553978897585164478814011463976347257718237546883377461462200855077684262557251143798190680531079406618882086196898990590179311480519286956281930053867307892751325026282663075825563990832622444779653368589639030892804101585059794955167142039288834831671166980333143835263337047523834477607858348586024003081065990232578722557601292362613021515439241422472549422031776839268606180149139120511502816129629496321648381060499186433140218344795431004067896303672390241229878804657894472976455147716115787460195114617569890153757872499802020255108570887283059132929317704554950486852187921012197724353790800161496817205361291152535010602746154329848914060319334796033743907380382218360768147765154914036787743584968702100303523856402897177457706869274437614271115154286995018262077832438711541907914680557587150483708527840994236077882327617949953739476332766002398358910897841186596063122631956804209488496808220255575282057380655493530970692932967698157148976102493142369600097192489955697672694598203141577419873130998579594510726598583254150651092872682156716426480160547799531062522918280730085638070780696844360854227079530594577482654949375611521352539951170565344160507311740124725992136992269237511583759253004191548484216793663597700046433134733233703718520127849785503503291897812656664551191438580060443571770149463766016103228654077811952858149697922797128739692289161403408532331025706661308820512724693742833363558638129886201403242586939425958225585675464871667642012523916187770654581721799140540338471305372799523146703676803481186012343438244391915708040040838823744706553737290830884553211195873800571348243926910661163929937722624675407339007272440479668606063604656800265622429394956690667425211314718803052307764363364324370626498746615061926418015677849799000264537283451133163131743558539029012975744734862055878471227087543340028230139078517544458701427716900553388576313142748187964913250073207073871468267365476651961319535166838149091572139349226063003350859195606583303787913259970448111568757441673869609369828852016062163142552171400833561391481457956020040601792028802341816793067814117932826089567152066774445233999891878916843884065392325514893452349167589360080086835100950698958569148426761410164731425363580512197576491776131058151222817887474908257764816987109525329148456963565394086720488808182478867830311892471275924545137530189885785091640256715640120690606223885534828001259399684550256404749195408445086973220942516603830522857622006561925627177121184545851656472861129621202318505808744458644773023830698521300100905302136075667757842203835096184821560298660744837192001156010035546185793611158403264541215798719371725201616004576667325644095445044054317501742402515208947427922318665958634766552200224859743667602668184364338522039223806633473402659583029243652957519075509771281413787676865437952111822913740859306324476879858840290822127312691061339988620203383957630681663496093922893418835824928996001251914277184658719944581441698238272531723697193625539465311426712185687905444892653130057663293756438660527700439432247343830309148163743364828375624525409763429257914260415949316567226516993831982822208675345152440325352500845361716827132950212354324330788978020181149422981441456046908383120497567887379616868526636020284294231633424893779208077850790821269727272385616088634816374648142964807399622045719006236725624705453660244412417239642236027249849778544294886789019595216798425619097069739546454411473609026789765131831989861000738375104555459773805400250086569943421662376122108500409335045582501247906039809729897507632697602521584332143472374495191115206360279893140039032337906392948831241625696701238957286205398211275371607868445310955377605359758187053854591822109584384969379603562475809419678171900603878673405436087233161206812979117106849891379745610444700923555578737975205666623589556652543345423602589609311973852603580597084871774987377670192439127999969804117048271466187904451905293161363674557387416537974383274158825176384653044540467496024683179905135602137276645208327809722744069713844592788966186802625649022202352685646257753500170676524256231686772286179262559978878253078237820197497041167917276465845118462604493637428096198929751654237578187764600357441489903331220531822125202924188693238441093780271408738273397217337678830373001829989379737293269992467214974711512382413022232831486665486265237179283676564076384504770162960171687358461798782378617973402755428452255658894921351714513598157508866152544379597528925882530964911440802605594269755870199639042348087842244807532449612775073621893473396124807069784496316159780802891129465375299045476528045583407206862990284506799514080510005491266633188116085905816750865026056946164134057835391708232825451433258662884031048888713408981657133341630462448747016375188162283266936294788594073330599911396578785438879422052751931426922300617362459773861813010305584202978698932141340712146047235066791635447597166984075445159674970765789353655543854037907096451167339922202321699952533896272247991855200840112601824878871758385587605989031494792551398126409249030023434711047850922631296712078503909512250019210675872821639416797458128956709139378767523901325204002173716380274882685538696848392453777656609589103734547441674427112893236907154480138091366326235398410169231092938000478232514011605728300788463903865951261739437689016561901309870156477898885625102398103076382685015881131243659617371184120007549495178248193199336534231973430279068657310968370692614298693891566392234534713662361430893316551824237487769549554844801648801443034993662943637829774899737798512153480817825228795244740306105648039943368160732498328384205432413430068918165167297301313982389060483624343433416608281474156776489646477820720949625280995576695054380581592304691854010034122599362330735228478517645456069339858841805410110286185611042404067180309058774405007759767608922783782132401100964574703197461522447522930755679146155474061247331662171582411421621318487906980228856872988450449106526194356672404152466817459583988185745330999306746882506095482544444917381056039322028144877184569293059853414737773340262614331060282760316268683048540364521106493146780728379777022825740874274689804844697006921811364633002035392135302913350762000255982138903571264109793026453165055471823444289989259429733432683412659530297015677933601262042575198222410522992512081027786640549262716470454971489486265135354672742410267133979599213027021871103484770866979287923106451276440047659337648818126393245256216595815640716751865351191319828060855152763189654970204074648429524129933428028533245912619881454003806791106258288622900322041070336677985054605147959684096339267414849508031742057510094550359923445205512411409329752423720622502766959279419605531693493686108333293483006166103576180464366024253491410202561348238771680291023204369460302021977038383032475826199060865063597229076927610755626892183174901007517276386913580694559882026631890571075568888188951308480736448568525296410883170180070907073167881848321898794817776613342069700767169999612383887152714452044929074734859423881912625144187630099155273287930653385590120289356720275143978743346087474739043575718418015891933211416739073791507947598561468720077789869305042815840143391127487617016356044221472858360951937592598589283539030168722248572145949973193449494979464696929063998703597260255971126175368624500444898119423506193710592505187252548307165412283150457446258042270506230805278749076318191503476884688105821333783246282988774060964053684417014265778888767113163830630615792432051918488923821611484429999645490103523836638977574968843968668703480295070378249102684293247593980645808993657864862249362579651422808732556159743809171000620810087421749040214943444805730632041769471106367124879689793322431278008488483747724847805695690811478044229118893087000388894952449147171349445102498619429525373918745476810045960001826324501486025737490606909337064817205250632914890299985271624726830998442400583501698251160153222731708584377546984792880271901920004373526836994532455275756151261182314142994342254970356545770200089363933451375915652896416781127767697011222600089502823213510233194896793315889896842923854067930803275242418719450562773997302556607619851034441749197628361155108857841354404544695926632944753334336887618700718596952423353147825792791486602701206978672468785164246600031606879420986120104518670274446533589450645139753214053948456169205514263712065177616565429021195422552298555125573832178424462974976655339315564836195642413631613874830861656195487140459711999666552639753160232248282490713787692708630177332838734119084367449282041973860994481857433806306191436241369899960619801156616318063110995819733541932914211617807441099125248353906576621031208819924113766132086696724671964279106192198400200835940497870402486576710585190415210329738729877913675210292279780988769828084985132321167935009204513810893483483342553290003981258872773928464442239445169058478447141385973527849311034159822732187973423342029983888509707902034330086167694300775156706572693840163500422850613317987158410009155268370132418928054024122847835563611853864986685914879447980974042327571911192279553051119920965687315320325052607816638547506974500628920984059405409495612147773700124887053325559051919078804352252845769248324699452986730426964192266052668308903997432191664572748480912984579771516008930703391351835649145339027112393770210048156531485606661401985001200695723373015084483636306433258634055288168422824830373674467441480132126347093149246303240626396552927181590333569392920721493596126278521167275893892031064926652448751611723903821459123617952818853718597258791201162044183236932748178370442414542595787075820413166559269619802982911969482448179216611678048594964674171943385857281153294710856714094003074142660770880648908576750571279858751288434112351973871254299510419141999935376020311355500011459232974734572031768784323857543599265747098711600199119094245992333659429919179185972579465569383693239277688067847382182540049836221358625842623369583736336898890103830612288687223390577527202699734910602250244341394443256179319699593712074722591765336705433262527901249836687804860713009060671589479676406005254426500914630161435865630183450852409570860043159319436552242603682225985816521638539066593523504573402285196505735426287984821581516534440175862249404056200112321255756408438684720993579195441911661531468607935550454039003288166842687444864674263135000853496062218467286571451041890712651878690099891647671406266568954880079687130473121164903754018474086818056669407262863056006656430807149508633472658575759627642663749586191438661577388443954755232221136898468347807949701508645856364310772582805134544615044845527538399459555709158110724538074158260674856973840913710512684667412893677187883226970168055828343264851790823978941657135707903886429012641069882685955931355759998004702539849580986898825469255304132794199977773102868448598257136030512260731438255637548564921392943067265447273932261579079759944454833580781391280183657846374581330235256161065567216946001150004386236929359345909035914672233333535988073986236979709753737296866226888510164128149412528108723239931343341217005749413120817283498243480647216159100423812319293949593712136159375090032308891077734342513845867464224951017375116058547253301921332142026393111077855491700788652524552093804140937526624318070607078220775542463372030500851459159884972886904715063752053177769121026370422697125257492713130598766561788514101041073446883321822158161934226138531654389049571820107694086791824048800720762602152126923451967020967123888063392106116762042954279034041475249677800589177129213843255017274994045944904430482798884995056249415966281869919823988186883712934162403941489717777852100038309811401921019955499649459490757546932286645586708045566714552944170688914730511347478099159170043050071336227384108829541270434000482939899975303904807412310810055030146386231824667100841669053372894352327066563796529779186710032782795063502191131046166892564788559473070063801440349240109945700308414212944343572051730488347627269533130845170170618911766679114984532276832441908977320014123184047165095742334508806184209259529997002475440976259994175468113262955247842524246706849987584016085677359767737951901929626175362608997925224324441529065293242766155362582266997519451389344718919667158410065460663105713994973660906645968769605649266978873750518924787848479177716421879794948699381493825174492394395848813072719223678063834721399594941258404423757361233443337295645242128924974888438863375145421729940504358215961092050156133291585271830452556633158853074751396557333255318765782009359037846000821696202380403130868973582819295142484595855890092689917801694191373406730518710425963578831608656133196301179260216806561552979934705260565686364644891624884960105278176896042341047456766248155755340396748474308312017458015882209316664832494164416538499705589531859190722967441413368438533385675777844861530435032278677668123516874840553085553047632817367707089586771176641968465403228470721679298447178516405918688473187564883568432743936817952543368265218042968947712249746023845185616973826828537588341193397928239640790336908161527390518459934650899554885940040753286650606183513073937606637914854471438493364884026640030951432474389834681642423752967342467576783044625473844935910971083699124118662546931259734806525377924726890467881942144002859922032217506469477394254810766412147002035456479167886332696275640421467853080272689414865330045506958684789717655283288061914698936482423299388322529588191750185942663839276945183489740055046941672596270204177053000993260608825180150844422916930844176248151491800007223541289838371258070365028839050894716500389474577320688003225409445288113439171996465912934341169051360463416306198700557273066715270150894845435626147206662217382250566735304716763198578491388219312850485962223782942198918112529562260475932894060216357424092745788131553996101797647072217463511392961321573519778940977174143358424403310698870015371453082531945378022239850320050351557129635800623170325611843577885562366789807517387772583436206547322424335952269212178340239416366483420716153377197577788497751051446454393254254177306047080635553937005889495531866117329244658963750847628409084718412446785887116212201395263201005180836160825839755213440038120376791800619901530097881332368081018547735416724022928529874289831519300532277937864837594866123841952468786731432095321986260679754328800919449487216852782936719308616378767364813007915519174799973453990669048445082597231989113419929670492996673100960618277096000199843890869081648784044572837843180472815901444387868316470025197296749941541552709677129247611139552941176687055700256740577838519656093655390505203789552786166950425778178830457614436984975422326105482181556458135070472658317801890911691605789875309437559623275647851194248281957576994208078712868565785122988552770635059751113230520017517775788633839374106182992621890270303627276254744107961059381318689282115874061894997643330043932303638210131671792790418420356505195011639843770407877454575492403812961818822507581788867533312693526124593465382209806205550996100161997101645591715879308934052620877296321103169613754034676585298530783745217390097731057582786098930070682262023796950405024100517805104550201729547434785020635330528538285782579636299294911171522753274488128869466974964654199088023250979818502696990873821204147154552383315112216816430783394383523723604239623113990809412518036533282747195141941164113824232874120032037830758814551737974899146784023160052016637744616789361100511646291302597869734487606367296848718160861469660336897363813317402436332112523156175250972697266008776559452909007118915632908651740230935948994817348324917039999156178514844754610945693223887143699229716356245119539945339820366210676460638587732382319680527895250030416647860088201656708672438053577015024355226296092014165699961617599041120344471713333333193790004193669389017749984522039242955405706625408089869755196762490608290853867278424846824761954085602097661927577498492517116118367849889190695571604533960981267253637189034011422833700008873037626497527059208491089771530975178351790992491947777390300634390278000803923295912008635867627482095547582597919623550254406491486754907441175940822392592300060841598962069857958823910681544233028254070681059203577323201299933111462205948568276885565854908352327926337501976967835764660555548447624203136392109028220236215461347434862594400148917306770869922705601416157801397758890965570372908723178041357030835225971751826353680577485303362566757404536975003933049630157483631701634845794070276176152813272699434101200642211922033639668380025742970055958510912855931252747123515936902351689596896287450014540736199701151491796953579377200145481820504045937061422429733826761836070034084004181687926785573760606405553289193828305615843663807064836630079062789049535126234981451569441469285109273187831258161923094710433002633689042344340755782082451474533368478729634504655475160093328392166086090018756004043718783671950125021849775008801516546286496220418303442575329540842626051028903324321545842908818524434411596992514743672700119984620615820908179030383847365668555619494796524291836748104917512778730796499392018995770432904954463737097331240644640336043870761272530361360874902133414344591004032807505886281888833979004629936771077695461187505815578470591214849158036512611521020766626296485655617347811781177577046701892175221942915955561695209154991331086883154559739667670035892360331145159281339041917293996914732745188001210053524762526874007079072520675474999638847159597670654210067847913191443738939426448371959862696348050457567631176511766649969356079410491906335818486748430865921679805513503086564002175399222462789624935697634811502596220900296354439497688645330457045994258424536197584687535488493930614274426520723264375195644610779163442942105550520725813611884295174351168677944594350529494991266113598203507614223161148658244000746919611424810764892203108649789871374251150601604128100726467672897882861268493363822341985317195846416224949313475124434049617133820238568358929912708966320019830926763893088075929316462441139493147371756221997208086040403156166021798327682936834125187654567944397681242894498404302102035412811851541591895832501751096905631567390191554803954487339595015590037313658630434311965206769482596589702358353639264475287397895715250624125625568491883754123164850556060855395368604480183580167830202021658692997725848503713028452972323813037220403567369025874783396302680223614902287505404775130523899384394276107172436953857728493899559979060427458636453308067480293347149920793681693719048426109182845730596735130211255251271299589215310749723919910543431856001953024794852629891344089372440057955705598583722504944869555543970122436757351178732548879391861999398659161995939588722831388277313727479824624196060506472433069631759527159898295692798660001856063080973160551890854126022416532346159475328617839683641362986572112818898103581932188588121773661371181433618320387442559083477209219491803423579031575355122609160898388222761648829148982403234125589554958430091866043510168330317111259313674339684804735428166873642577005256693722682731220528614159859080926696974574141212190053536532789302941056998001635766172148211192069334534062837607780209469830481786777032192095542733114932474361962562258841297509660350859521255334328084674410272676344159660563445291621834874926121778358543949145279532028120243449979403938429034112930853662149710625578584542690468224893141260222995339762454300875150359201768735986615656500251370932524895100593792349955091805816878372619805819801591617614829929445817498528140046916767659073305338195964551116725542713812131118005452744502080558884320327706435736223808569602496841788747928315257146416208414461483411089068139818730739747366972661952868599340301262269640790910333514467175102717329804215162139479858652116969645910459435177327710966399800795435184390762122491989312412680441229456045763842458265071649710777858932829410202157395276631187434828166014678799171864241597491631402117994882789629785630988787094188177377481660128916126611884173295908862229495566742437950484620703998740874183820784819125255103838390442424811360863198822402355750093592093730751247766978093822473892170158975176836257414799312982733169519907229101117119253246460408279556239948562367875024733554348166802411704446183686348591525479777547951769843661385068619663887827237474214150469637519636318821058538831403396563248288360594580687321870530556374747284548382431253680307365244889518853834908689063198547562216537245022275717491343148364183758297664044001407578759968157477663742014148638975173839298217635892629730919283553336905564766598313783491700760532752440104329313650985661143712666844123994251208025540252080299894200117871828674277817575899578370085355790522812007735517026328844351291843123469345817239801545801085912801038226969093680501177730989402254240731701353571332421093417879249712395244951079534986969782984027568233351308110037069412294096089080951246684172616849225474522516550136213626799752236790122745656908766235545934468986072728458133346861753601696745944455308906263878777205190069469485275920498189325890519724594405759174979118498071053596716475004028755956797030461981726611557502363471275314260316824884862269413743634958390247670481487491061229260596745641287456556121181789334353177394852768731691665612728771897068704472193499625793850656538662010841996769667466178001879542606487543205727790444622089380126185334063406221998139366552774867476422018250387410196177899008212068368832670961503599092223187346246494827849291532320518701056923785438930799801386806432489421569078034588720334655292328552150235991494685579315209657922044467725333901442715211478874984152555031975854586149235739833105318610871512942253440738298547508033543302377480113999093600475007409158699692481148982617297226251789103758288517981555876485744794936498096727546340016247146602834886508307481033963677474783161381266787185730089937323758469081886833849682847877522518192162185957685851048436841509400267618657715010684818718464096932191293271054652863322094579204462699639717519184913247362178111887287904316929559677070977955366805734716091300230812431644679617236813604343013337646896660532075018852990362777786037861154407028230658228414254929550372369690584793112330378206640199573076505050490614057827224850838896678775222152809134657910127159024049218811546247465662571516265602486339253493606127899402903215145787994352071824377335117834478033415570762896962593138721518564823502213079675436546818164522321513083463824510728721766575212972164871075870378984831365818901629061120572037809127340299327981042591297418298289465985038086309234616875295337216784511465776540525268623311059398850979469198712226018946053315212772038623933014974387991362011724076119751015908261192577445504869030398590550470840236737459234887436257170844551637277840694814564998616189087602167277449243099471507020135197649438625254231331888434067947084264697751406931522853658301108094422817081107275666618313778508114590737518943626867229008801041373553236701205707982751419576909797710074077348012988117937478741882308950830549484412252398092539036151245268530616955433770802446423170948870402372401743836522487928318090281887793778309468802301886655921827309196139191609043671396787581410836737388303757079601868928390511913932058842588721890227511530645274712180338889533361560999270142389414761790863778840018290960829601226262205691946674913672353245795007818551153014539954325619208682809503580039325365680390282644655071747949563602178815163373765824088081190460040707766504111937741240959037241149805574547191890550119056526484665691103757148908230477654559817152862572124799140189736125045316194819861946866692478965504165574927164947063062384915083134260669776768400718055219171775462481774050237533820841688983614811164278821987980137504045236754642264240565325936790501211542273833260528036994728010708799861717757640994905486062237231411247706470121551483355955161318308520912285430131604983795407361982504872096667332170167380070968197925140074585161963075589635826172904702976795074386075350025101337544476728343577696014190974696398295856567004783293881708103357016970887675079898765829716036392466573835074366804541210728309208248426047806806645204634212423204355376992698204183029908820208640608924199803582554847070099555681829703118419871257158503138932483689314446126524048178067698620827885278019378169466874441586973469337384050600820813658167064328675234181792687542715583470195252704140798409887653125688428068841046721485524151848323202887368282757250435938044350061675190842363788764199266450960816643088124096527232905117526646369474683541506548183852088036090999524166911644306745760819711710894465489124368670758558666772717000914761118119919426013382624389796620187445821752676683589046886400427078631357993484243956869413769160796373606765364927214915000146113687608529035452124001136222147694289374078092180297098656601543679150323609184461398518869604397452594944323312299366341916867298047833801638216382696129513337425489515983091808698437572014615458559953658173596398420081289970582210783682363204209701487387835814664236944959332972360214162609585439793407118110108674350738204721125424400052788512508399410098280113107347077201790983887615043714429915175701520442242219170540033898761941725494634177807142745632131689520984985802534985173491109824103430788162351300361111087219130998471877794644906477115290315431299174435255607656866451734661122943091694553394136562374910323793844961005431136246892454661576633875686345573875059049894266624648581589826275884937510182153645136297704909595921200963399004911324377794644406557332184562556015271978814366234999907129681092280014513374948206319784766762401870456804430301319607341113994485462872117567261189650303060958340161378546279457259970810631388319138141202733215824639327163360929915960721184947518277376422187477843294894315823302516371321883979708316072568501005382572614754177682058367617051119330268695705648212477986812599356850630011599055646864634064151105321944492907483045601647463023827534119339785564356392979346629364348907916291850312578565277898046961814611875754891769275340031558507821232974550951347017951122808992341553396281410302852264260100586530611125215802348222079523644638851643394515212534615495591024674471309417472957966863807352225123438138624113600890766348739004882462800379415740212722684706779760228140581448545135086499742432065230077715636418261728586528112908831950036808100113666646248141565885876164174986476276359598252387242311611850035142682253973563667642507923003776715197566073331981068607845322807392724625686937105217003788007038799000579493189262900401601179362781454956919078661343194846681323668337912614697461400203925237962181822788910267190224529494223471912755867141908921876522135452331320507533386540406410181139237681283816184012481954939798241406627000532787949354603444783290503416119640882750648391489972720092708194232275721893728343144229198628406675411269005734856709849869851306764532784079407816904474464090636785092255640068331592686815222203554434091087480874388838613813031769521027142426101802988040573822300637442828677728326721515823136558669638379246900672343884457462202240044629263642389664474863027290202784149789700740608668518813609851714697205430384718582876530399811682244647382521419231498997895575397421498764515331662785289469453141652582693636392742159398813357371994385672636507926845212031915287692051926013131744545079008862825058478081807899595696784241001219987971813469253478484521690552806995396996769934680259477578026085930068048432487854758310279490970743776993849833127242048182331216556763438063739820828954475441613639526832066117319249086569848095937670391946360160945675029129125333392188395515087439548953796786788967555152937614189178218977473799304313959504203986553453639943662936824268840035390502387654625254550698003164399936160148041244001488266600526694347652989402029324113272528977988008754761865150521117858072438250108173531771111069559830314562510089856862777041443805516469837677543513423340559235615158565726565392707990733085390417299605876982801753072779339358557089411423767270461062987002204723337978808297520032253270452210778932666680806753612822600747779534178069084725917670105923456207011962771118520787014589592207681207777238572294258832029724212391969298507576569787834860757192054318931276019492005189297726602388824150102289555405709040687664760367014523688168314310539740024104822060384302529647883307801107941327599439231481292767240476024038833670236838807300636742837604128500808859471772679429030687533580723242912034006088713671120499929565662865404240092346376483928296261419785531152430956882251112984217382973919230530417851094291066727617497366853544192122172150888931452601688079594468766141853747609648906822605346565727839074468276730895062177149449225438310567196971897512704262359282684945678732698970484324838090454497559247241709784647530378862896449340029559574025404430377711327042060103397179596488278134625581218595811320648454048065614297202486601443301304580063671004980115304888590823342092585410910598114686270364585597646119947562608789664118537660571829629068425394275950894591550015202469044243542727451336813503237082056120461679013301672679372589690392072152684859077761120424708079086570712096030068381894112829418575861403196534824471791583887244939551542111257575213158490475557515506453278841519039936968149455255071707917905187542876713179860257170481425469991359620568235088907850717965610810371770672940548175389727250404950126469681633002948440495471535315637912715175679983905911084404045025147373331254345461073771862968819301189195685328225569942473076492817734829047421444513214839001869360856564090648806263759373063256490027955376657666743749269658281450366095876540987112125959899682310525664331462566858840267211280358228162061552604826799723373501947222603232040487741896797484334286404853898729924413727798539424779021323889967476046555785985817046224396753267850704864308152353093122007752742320403154647549665068592373490973400867139606403899432206605065549119721536766416519492243305562408358212630387165698326846420764517974016318369748647211170685690015391614915136208452104836747759344950837737352567774194529492779605843476712970317305867033616792248264011557837096966219960494917568880802994802958858957083652200976851924366510923645326776861394039876882875179551357150054289800037615318090419211762770132954322630123597774824471254198428589573689941660774572574513909033653785540984005254880754282490096252518479696271008147555525808359163487232712947363200005108715049758770345266648912823545795181227719022139774782782173094817118749179267411141561372707543307414439365766900177561982118787978481675822345476209882979451356201764741449453640819966601668882141072762584890683950931872946408147022130343042336445036221062400269676522421886941884597465080812251760424453732388111842393957527359898062886224908283455314699963010618678699094029968979040167829553096705796041949993993978568086920013094653421893985437892801651481910941410338055327123749550769335187805350523700311154120444322337206278415237695685833306287902846653937342950246890118956009370461553302250095086375685972066666865818896427869869763682947529920630338496635152504729588175299202737449658052175538037160376053311306379455131807695940611849289777152004688606419011284239424025407280040200011614895330509719974676010091502240034745318837357048272750960973237528109737480786765519844716371971055126631861214569416481820636283437136471194691918071481332969661597597704172074869680910097856767716980651905854573684580114688764925449866247506799390241814752120288649408909875541773916174288971589374817477978948568252719830753200089440697834514504039709381844812111212170127753184393294410392858941810606210216342682810143894885365763085460134384737293193097493640778952795109772205336500802958646529229238042102001301341054530715016869007418912258452990598974666436860287394783537391660506286763577612408766008605235802342143284897555673097899179647979373176405691820834501272873736753739071094256838825195120677495264085418306725345536720909437270042750861938035791347706066089335894964064720319383576978051135758254364077424765309624974728601066652618075267172633595851412068605560261775133879005698797527841042658507286173781591267754520918137266610607244703700080456552239282448620493070592412933690961059941420086511019309378360545048309021726284032110392946802413258087046675777226582776786708087476975584294070765246711358558560735644787638742916270276124839930663780081166695155439245805225732749558847480489059582235671274987469429788184260714479466938720781212871348766153117011720157447994694644715097724282148610713788585305205798450899154844895930758970754591879638118605587312705104360020373621711786688756544235773663969052696126568711731035095455660053948580661640513559787026639393751596007678450038004485002970819597092208059345833882381499869247684885059569620765338331128160517426303492335002782338353726237296533161695207707089757377675077000522235573093570687450939803583227295565781084550283315664154167027597888079487147648291117694106039988653366220860620437486919002811524078276570997341903369497754940348692824094611740007518612100523160557288227073556260027645112941699030743679612024952464979458293437558828257228562327268845109721474457617725004561248722000529925118239133565527384744018741267171637078684616451266331333856636526726938766155394217397806947950896331728692853506226508419964270466355150977118274170886573888002386795742227988652755623275264873516512001530282771062910737630099809522840623906292158556787599065737633834271466448821490456553520047710484653425989675705019285422709238462979553125434539997159205733696389751440955132888105387409915853001871805709449315602933725998207933198344926628254712924336077423779154011885547090104742124623156959111031964470301860613779463598161399262756146052173645366652257315253308104598297069390883862172947675066858377697208904856470975622303375925107411555731607639227071304455895855473736109811732321665124567731158783583591801014449901020170505475674356242137460614688074490960670819242475907252245831899871567992576573370490118762962618679380199604997391899519118607069683495613239714970053294608663722515681327450136414141928463182694855593012381847470623730817573253737510640380199087204754616160807001749012908812045032324077085068015669894795277821657285676490660717581420681772266258778361430044781915229042145399272205057451509213824239228463233873161192310419098641660781462943622735992793360278592397252511883416655856620876228063652329230088380490687804466000190650013437844888808836690091986750209414682711017561924365074170278635181138337190923275576710450699205606823850631201722181728878034493539444778651185559411311461561457847496556919283887168803370486666536660941756232808224109723887967372264460479162945282034065675607218932691142958860691180166260625881178264229561050977693162172765579546067159655799128694236117927666156002200767506942832823894683858224909658922888304176032618138254091617532221979526365652413304929787066119136544722498888468305635323055866366614528293377990771225148763124407566591615293363843912729654962983137795731912474217075731608100007560305185682780485595705612040276942743157966775925526219065204305925327322274793261354711672082341717307971240958166336347947941356222899098096101937231791755580606365847417025643150750491722787577715835903414729974876367503115531144588190083641910207047288075215003819572664096388936678222107049569493008596372428641280586539319157219002194454238170847623181597092524000670451904166214724395123306579663871611878150689990959180677459251718800951332658961306358162004395258267405857895336576981246869309186740945779413531177766611694594878702394125864973577993749677358823323040622278537351255205286464803020554536464827940593578367078188279516955027575532654351941400966872329349733551310980635704813715933805607815553156066164355076766859652550710536770189528148079896748033159971674208058932427306841327755247993409606165082256497559221468183327156281683403429263984085489259896416720784599614678911708583838086452058659668246944760630277939783722510478816938691849111670786181596996722184414356574327390218169076127497520787904923180428905791849689401651222507578398720243932383368594481316481617946311959167127137166810328719668317781189463944783310518762938344536396523711967234479478988198603878420356423760162734246211003030490990213824639415544423099240102606232750870516423704030989240423938921912498751593875547031104023953316316001534335798142571996864352039737821810466810420349728262583553233271994778553840559404228023116762462037111424840511062508288561852878525975321011320684872995482232081805477592473330352655396980343633156175882575265273812812245654306118522932848687232269664752813103560175655517344326891523877188081320791614375107003856188292609468770243431508140782162762610539506256323218163586537041294257470988349835807796300875796826506351219608701693945953714188135506254183244197892112348452870593450539219611510651683143966063623737071931758445983325237555705560315258754352493491012979090648568640659961748703701601736754750305477396044935208212190019164503794929500844949333764357325142919780845522796981268496743251027060539525414482980357611288594291828573376184824420723666863545852941496981984077749415592927292266150596973595365236441119063010369255255353718938028080665400684935977283731872213194852685623527860646677756258257070735397824550699559549863049537215690137344437524625718352897320095640643887816226662088617074836959563245463220032590597709485894155945065781952168842753261706245644409071051902875178491706581016383760857942828978798383170446841806391889653152801861143423260282199258150296657991157750348758980935726847341787448960601744428629714293731217451256083237451082436234857575306157170150334948694550098624852068912287343941430365745070478979305667937450151198248709184140994320015137043090509015846852185316055715918854315826116666710697704489189438312499410437385314651830241480432602478092479965186067454643573916404787273356438491948210373513086956110812375331783347992573247860466545696368574955589761393370817592374566473069733391530971077925629298442489373336389022573503618004257708979711910145965615272653767856463771285596943305207254048735016204649303095969729571556052251728523573641359401386883017581014756710119278850229337950113056168658534879371943976329976307073089200490961483067518947033347445019111680155250365598856843646372089180792588437275263394110116972182337095397287506333096464038764006196307867032955503020995838721447626481090433937562668700246399932293394640370013773525423616938982211354761425241640555867192284272124448130544584128033175473229445431254138720763261886165186383277042418666456830022482130293262303440869910165198981630016713951640361367483448515120833912398505809727385173370848907336103540642114394257490496573152732301041848902189196652504442883185523853273539081841696967719175315170524668770712252095075399784202976890030447736943374717641486745936071248155128880733564709730974146093904421006676906601871383033105606856684161485454119251239908699173864423140997761952609078384868329710293367358756823422168657395326546978603938993829995302477804775784081270569785112959991046766273806316577194262489397532465514962183589091041988227616536999647899579870619565017474481998659132123310229310087930748460452167000362372588433654453060203493546624914708992282328474455091914639078515831175443132077703418479469717000251033161461029848974408447594153633671624711298943964872885507338399960568411247354307309275791750614486141778744441794311166726826292074648499935934286805053161131625171443703734455886918653356570480428244297881636403329439362543540496665148638591981067941485693103389819489192842312743189532833402884710615581650924367345202441801978618172172285458870677407583258359725816670928353184938799258270540977145171967331960711962436953402079978419551712180584889804536312637451401221963320289023664952832039092849653787690332660416931815153512149262101766382188082369301700235806085187043099144406649961530730656090754397432700187552971560798609818994719234523927010013148319339970805659493672377101328984719956482123322873708568002399301039127862970426412032748468806460010930381533441697852756064043485688037283533103392703898150005998750471699405920274808693982410346731823438887255088503276520111173754068720455866635681528566222687370367951931026673803728023579440203024168894138290399923078422113038629745642319134988533837735617657686051981918744150622772428551586873439759549117616069098736365839522373168064278974548686781624209455256760683962564171062357738999661225174441284725337091911274040284211703887632024471418255709050901025012424420601199380475145622608333755256747177989648073600302060670746898051446054236867127999013190041875987634339199034270363938263658696673486620438338395570137613415854257193209541042313114663378240807484495531571562063199274825771855810630585094986873350461997022203493376920831834561669461333653688611284875115687364869454037731071957565840986993200039564934055529970476393625395132559982210700661816813528243939609004104968335904113902568485675498139146068669413769096940519532578567477668031229394541275240313954166675197384532927403200226478942349390552256822484804865673090454826540875140026345648440620245147691751742130808842407421810148437453049676622877254654123128300460865038069469709098010035971839716139850725551879193187653550928575921601467028729116979551232169651616082247673860762287182308526239000077761795725392118720825456996303229849037617382274531920487440912692876764829819257645860478464615036062029426394334834139017826992336307068568205809335419864796787902566333275125939376061922062507663958545363360216744769299096907156502100642714318576473281919589523964149354012080598448708432156435102692338046022159984219049443333732579036044547565361263481284488846027334130094395399870763650204737826787195100971938625470789288953401231751678008705196465555901709663933941384306215302410377300753593960235793088787322463541743795648474434669719369902838942841095063588654273325579611849809905605941104008483540705864287032550891662903954617655220851111818638135238212488550362776449587266379035154899683622357207816442597603047331407405334709881239507695072032839136778614448705010403343347219802903665517535501416069199742473516938349113329376574076097502853230118409231943953160938503791558608101577620084704629367235065187652279739875790884717678738500519689343926942581711831536417387711914272379782775364674965697496884936637152402077895080302598697102172509145051193119306777678444281022114951635086310078181031867762879276444638739633076229825952304462262952335871221342445585504506105319047619601466268388418462666834036243898016289032243486503622178744820013551233715358740096046592724684143795859225468470465953877081674479820359120557639596287101773788969233873963317422892197396400193579406795504603195029154037706779883245618864416469707325402412155078539806108055322589682459064650588815438757107359865338035539777898781211985509634574207343289739771617013226007966255340850963193095265209950317561477576414181696930644674921278437612284704218459057380964563822491803033024991819863393726244047746280489815398223790503282276178919905606831845440452366198678703817800340728730551534498167840201903092032165120572402754889992428193027127535628841605607539753963666630941628410766674214790377485489511384869236543313813923554599968118324215423914144626730778058220732060863178783763969710915488164877443898713477698281336100711684368598649474127846157689512314019434800837917602784746505138360773792055701744435692919133356474276821027596634219300516349134001206475116583945254307072650057890782905953286697093241354453776226428004421002070764425485637447137137847407130538839849185563396944523804872222375610453539500595966463135948672216714914147435290577797372492679180043527142286935027038551208471977394140061471154100491593952804492736216615353584299132088032617450303806689320764100846897335481893873666351995660805874988120969696259169270421062182506572603898046765213227943405312565879407888294921417131117257894888236769172957878272534576327919712663711208057830257733253580512691206442032176166154222607047411533156048677560656581094987898664093731274529661165510989965691504695416181001913232329742450135126575862327651513813489603557876773340443089820362387697796310926182666329498866091467644756183428177440181080160744419286142284656098610858112022801214924238887205068205646420001579862708724241114358256239021356001052386508520876603791335606646004935942078710029456573039813763682646897412424042661424591297130919190908895137078374238098661813334855827931552676619757474705434358831403807085065227749210503058255840498731292185489084900153676334550235069882204777685473834209851285692832002848003918976592278089501907583028938575368382375257457945642216408588355120788362890386445781790717561373582081591287742210554469227820113421151181962252437812187613341476162936926485640665456803460912454049760811848889763612059403529942461158930956730097821476452920996798412779904258216093847148426528584599305693376753675904595164811311014585933724215866060671547298852401006919697970065386556835515255860905362146793503708636601160005739111666023113789248470220463349414140425756549392473600619859802528734675832633984942419338292658884243352423854062784646993314890613313832560521364601246533772117046545843233831784908639128958991999421193421462407458561590938400008801179630297555754828147086271722497045636376305795121766357393820088124042168293761195648755264009711025046319773182677022673782829409845754361116175339827523814377212529318503139943914221692655079406603078671894044154121509455800979725887929914617152615984509063926561361973122259846220209577583743315131831809422703905421091507314948140678801735262318758518857431136228153668544262688449037385226276904472711063789898007751547084161520599788003715613231979189014502299384797940575874684995758832379706703409369675016804206506126915179111163462048793152423327575199339170607079292947190614943185828865924542131979754961742187518734669573556007686446993735675243059938623658737668240720950129393255651224206518677819857121833958610686163983038442750994872029694058463968650287344622179362929182212778515833699655876843720749551445343676784129454139381845831070667821460166542584521837994832504278452215690671400750358515466439817733169377203716589487312542834062973167083917049299176435833301376773879897352563722270983602898502576037046526357229963597561183399672570110341133698648631580087934119875295140852183067180932683777178669371915559264519578196641065646774403292100818822062316973762961123543851135420060783556457883900227383739584142434814426264919197206846186711612732317689287462946221529328542160988804737999717095890362464028514650606514013630225796006365222491647278175360407144284460559288329975482097532130906067095087035510035021094214161701909703148210065670976641471642346935889197910462306664358970437369866443865253183010107065570756590989378554342649988660889069356547611653128387625015166054607839299515560406034287602906114685257098102473817991607013279511933275719137596269661870291831292896759336177089597846648707581044012402811803022831457632413120633631404145944890423231129675427472083976806052236947555635560782744537500891745892650135197801786005026362064241222254649967748086120792304854503769388421123646498619431733881885681924060010034447511888029738847867402589295187713633047085014548674557316075651952495064364985839156525504202829442946324864298522762960977911114949707063772476002210920832708166781721564999095762965462681106243407927993033907826604074672611449049914792905034394539876045663692042231649236138419672363409823895830228249145004612452801781528176164711107499681135037688786629608754298053775354572370438945730968075655130482635689772576211090640398087998259568947489731580646125676385105525908393311601440902721285306998051951481076168989812322459348517417797040997939839447715689182803446679490125472765597718797788705156330630985239010592990840205639560498259892324864604657582401284424114999235317640267662183062702890778183944168558075890770588457240140963047588434143141226083982039291541730927327998171661655393778370842882543656624491149689618111853995801308994244666003055896799241562976164679139977739142560770986403963181792194517818793315860242766996253723691300861448039730908877147594752396278623501470840332230720783761097007172669224978566873960184841376726768278074164291743345719992729963927015150020615257347033392123395890057176908204038373978108273136932686818079554031665477134338307168593418633608693884117003985721586459290027540388760371426693111554275375849308585047873652193423774632854602125227791230871538557055626796223529863112205115841322353281127976725960271054350295685030211698853600968879717879247850616727518906247755779675132932379731095020287474963565158337731816365729933580830739010642943628349799225940493018512192157291000156148325256529079430559607158274520570233181017413051568153824574542346415268148949456503166266931478510593214759506078541596761612442763489046709824552115267744384456628276075972379315484788958257939795053380040423972301434987292493210907009561833364704620075177974129563617864570640464186301116409799976230634326670630783340073992082344904731703701884787022305711426659474629654731730937806734546889052045582994214019519154463031461307455772727638828779016294829073127546291850533513848169648256541965355763141497590254917599028391083178061910151948576293375923777174624707925809070771161139194965729916321969569801966348539163366974457758451219317976636375862958326437928838597848453243711149587718025921091259373216470635112594071461917550623031704326073324684826833822671642204550272283758468391805729061207914290698392599559105186762451371852408815306837871001446531870015692234192228305331200493029893046485935909550332939247449253157735826918487305284579463877493329808433221543166085201026587001930432566740631644158920322748899714241648896836096466063253950415847059623773640233640709964971322787679280924930169588601083777523243814274071105235112008964836470290902043577203039867280152303300474490982426193305237700068202316253628697824495739080162317203203668600794013756841069515807824370504336787175793793860505281217938861327646263348384691724247839577447207865970758327424373526171356176888593334593294939664885388946580701192964883565621404520489858677438625535411612035446104325375774233632463389475214841827716858996243979359803590318427706808135579509749958621336520079760493649451797961739615357014524342399535879159178934972848174158761465380012863624328552965192426533179808178390140591719885255582829628531823001795637343347475374835228471001162713713614401209258081274087113863739005712006326937414088860291940224529708010247470971403653096350436760417323102893451913501861683670279386941553856405867583471422762729386148311965549769938265218276740088576268488792401332763235325614460200748615777365606940077696572357367997167530080243378831318411129554649370719960500710664423759872847163766926225478862610430493495803315398700746335330841527577595714455902693950999541855916117966704674971203698156963391180646621047711345097816328532117589448202524035792705838707081551709410159608819336012185906133226756119638116877114709895167866415128737980337412880265455162923273810072877600679851089305060947870581738976545188253217463749213064725134245361241398746392339072208191918610201801179769928522033939516548914036865865297409664598297301098555363804080498497961242531611467799331420624934845818886744538943440630083232741496557855627915726613399763744247110040786960709496622425112590868086064004109052064037790831715246556639460049845000393978422346173391592281821712798744800328018556466064217345683280942322287833853855286548968454733685897574007135579852087759757167934594574690741581667369493978443875660299681848940138034814323821866804421413315535909009761089954119314882101907584227364274270510904494847072422673272806740431777766062649538467296495985038943291230686162986170328313309729349462412477177839663582087217120622888212774467758090483603355739823418308640733440041932578109683825866969052945478767077863429348612607981538071654048086048123972437034153458988680565577918475362378258424427171406664190011026420147288699259874263445672856123282757285146860251061966317224467380251028238517004949235892512647831020404129303056640578127028736886371823601571285852812957650216760826088107108026094356468203723682681554678878312557430493137684002956872513260501331961527398402829466833444789624690109747666769253034995887406878940331439843620179304866205441638059485385651457348452833540108050943438597210323984041934384361219051549088111492193119253326848491491218049990617589699032573967985108380063339743110414055028900827821871632789010930997992557933952919056249065173234046858853903262355536674778859197650569721786960743990032930141543069459593015383827658618505130278217067543163579654445805026724043354661794317602799189593812547480563702174710066838878467544433516140507442009641868824806740827304856770156052427017028489982096671875990204033015787826932370360123627949802315574916321443951596520699774400809822868384379013006595624903189805427247299967344045982548679384876450513589935629836373222061941555343642592698905657669788779458138934825994278282855324346172575898524279424751170004650026355809008223620341581653737224855575323573554404849636120309123984033792041284265311905407643139291320121137584019563132169300105639921351846451900860048669255569654427170653641007539865343411545278676722098664879155055254954636554648010437636008595547688232550823890529247492924951803045764583762134480865875747148327102220113850404107137758842860603757530211754151072237296669343394992432845953112849521155809072414952150801769026411043027022579888672493762977302674538624217627595622757131314155283902959476086962084400608358765127501205549837564805659314622268060837601687419896871233515776493614203187023755985900645337348253863467665610279790363173803358094002195445589962081379715475550362983511583478668146990525976120892749930836082846599908104959503528234609509527661985740548317762546734461717710598703796418950512858702940042439124891291632301955453986764110427673918880304640052778625228869211404643471528352277961835657761262192335202793235442300526361596379789479808914912328059815471540553239877948951929196568213221964082489339206698887623233374502940474664499604933892482633962495197898089745121028876508459193107917772083255167447492091754609495125323495163236380725914157049884436938669749106332748610802798813101901202177036930661665418790080345245752824376626071075202260294352863169417899212660750495421421006392374721739249459060212612077726699037961864686998138897258858731100201851348783071876960187409987915542668563184833597489024350435311056132787738763852663222743508507643262821022349241330243927552156633755116650160645473322470893117289110913023926953696379340160384380014646757512779731579159254630843486383396935452393511658630544840720792395163456999606536382396568048455115507691683175806839811983096111062510956995130794811599283852614857278768955798460205199799665983737673970764550571841086980903064073171852082563099196773802206782452833057002271022398263171205173248838948820726497022127180808918678235278033129929187540819000352241954758648978057361633358652651898716158613819537971962045031966999299464473561172091090484549710291416216990976264539030361743857701701386624394837574515098266787537793159336054125257890521185177833150899229378362306716758378676507588759969900294771873267466362920397332860006194239576490117826251541847145146446231204286629167650586508109986335441512733554781951558869998267894110333129658847082736199827221532811921092047555688490624136020401120649389713197604691458060362600536490085061387514121841775071563139953363165444953057531690726325378981362159504398176501623306513915943258131746893634022758614124816016700752402698763890156524468229428186181907394239918355219842507920990857295952734982711819348820116738208410063154047751043375957746185497593782771120550449949881348710230425271190102920262551908816624299466015158050924225906780022802461729496839155891884083648437851897029234757931894061161092584941041584119250892188893596590006523762669032725086142648157495480973317230730451201743551906160380256439567585143753867993886067683084211421129140089783402455563652040803469553636388402527246374652701990511157779070086592617705293613648565154522799358852088365752453311692246793307376742118017137841867536663254995479523996746754580219402456129569469156378460883038792881360863984524884424793910749495046772244541976874758738524205713921575300985654467115934283897197936654032175011930326485396499227602217103918941560252563496217514544668803707710359894689439982101158433494440754474031486794212514873277302855209015116671395226613017501179009460011649206205845647634346815405411284270187771122370850289558505656460977264858931993348599078411363469744380355156851654864411575310162723368689470499365427961067335395100975064833425618998198645495880413814603722910586042356242791422156564545999514081139820130748255104247900419166579001356188700961273971539987749559585205255490775011486984221899285444721070888281976968821272707925535203721962798101217456540394083236389129217912345804027667631319309610826028150790718139442396017326913488554354624654875016327392488543365875427910727590152588905267507704495438736809769465482758431513271588039956196096414421487078010509291305230525366731934663485433857494821789481855259938151430486062488118052806910766108767502379285677283880769226441173648366052027470464446687076439889559317903411309284652831650179776773833803657963561502496098277456468342126386352192923593886035226954792028224989765651705728796812091048089151042279479595600777076721103854226212861250459634345155924592726416583028210165445792971612891675493117779967913761217883686926735078792105128444780001195332676294269884984477176774185212916165339784907155476537545827689339143373987079403469728189829973497784736816275868176831124384597872710058461643109354226451282718795508613433520315412333329264159084586232505251173165155376081603268846767098528795913513378410517140047279841797262013556204815099940413448414228724829632031909470448176549079707126260535732095337367849069801742258403907498321142576118129897297817864839502150565189107545940244373422033949981726449478627052619176250654501900849142114221740874494265528250904502851998848479613849591384390741375799719494991217445269940778605406296796075046063337967032393927076058140394440366438327549502018804959970512828977461516982788084154322986520922529851126381489921347895043903134182927778352834760056497444158917855974467238868051036553332045260153400960682628667664973747201797434113223851388994131708156540140901641035680692908673799745268149840887435901194245237143891175871906336779934959985430855201578716365090827034293324372182482637114238305699840325119606266862510241513130573737867555250350661459260159311938599851755129359925870875891801279534670846732559466035566899559553571590670046528203924074764641819367952806039097309057225075695857550474740150964376672456125323618283104748779299823635189063649672923522885916333696174851492354339665646428386656990827694978956933129355087358195625655969158006614473324136803708563114516837693122786895510467091146400802083015274436806360441376098405349919800981965112231539512277030281353011600141965974872995160924983365312192834285037873876808528876973017188915532155110070613100718214040246419196141025610766827499018334031342888670216857376151278327283609321105888856397680713779107707159534490223723551012764512114606383758067454623324298676260370205685251731505576798414973949075876881253746941463479544489576277092277490835571149172246326326160333625455835665962370730557719330124272912818523616790360056797476758681949328810659033172004609660983128976179961509386566430505138004451253581749986335763305344854356155601508263486834357044960687880415672689791360996635362550604709313155083827249518010810054333311474125022133688110988748967660147657392443034123691529532860832408531106059948184528611156837971259631029604477884627026584644266812910785814486719147056722309335405824749299885587804685740241130401391066182396910390597443007316858528429867710215256182218596358997755755317212629907213358702523994183950314046739589644700157859204858798502780405355421542483089107192630595457729647330029350678028139750666983976615433374109061626143816696712364586172829244150791199860063235593140217371472389467600076859287328883842362943852338942852879485464214292544841668228605931538126274382179391643823425196072794362364880116202246890255957847188472445622932395274820108676253796740321786148970622714656784586743266259767807152551553893311263278718445822166819240808024764328198801679356270721872445892525263811091057197282335599815792266831062102153926580195087386864566364804590039789869568704019066723152153549564174406809529754162506645564253674596502908000779565991007285737540480135305508165726869478032775932891196591562178716674608665200504825047006117569480123759097886412249518536896290100198037007223822112055416968045507548608495734196770458636040932665826467332735089979472908668063690295264859253499515588925605080219497400659702268351805630093420512090033367254446767133050027318860001394651902577647447223548530700246025293377113002162006406609160664026077802034785566771895274776364162371508856633831471321800836852552420754737406714474519287470967769498676752368517881046808773444264820151129549153300331554246823504973754432256496468684336831746080568150315742360813913087271030359715137360574730040138799269885690036686115319254216124945289737033730110847914935654307085215777543778341650455492659581032315909106819426480938824694982556701835454790313671483788373115497096630614065167255107472956388524898561986059340177443210005579454218358499612981574449279926904705250585944123556322419283916416962499972032284228599036556306083199621612196848097427539385254065760863953370776282404820151440806569259078024760804872693444659191524969875072815660306076556287040186121216932016509166226365229803184282057635035968653493092027451694208594546503694673400113135282314237410665430086881127423878185540551188328279693338375997177733272231863622185507434720809637250622904833203247738678073183226306119547633937531606690166970823894714562852584473426786559880350856654987818643255682279869988930028976930435083810102764384585092221144591218214549294569426252013205854750337402545535321130536134181512397296929785391486479359089608985796806729770620261200364717912453436372474710216782263845621163533208839021823129842077017522038648294940902330186297899893398705319309176442383731441053352640078732649051006127820424596568621334283488005013263948992636728066812005671875069753369422400708954002135847910683112053460748002060549586975702630777715991793084073294285867190127477416876365009622231090657898667735742334232700167018129030731822301718851318735076097304849584771452511715798108571525993154893920508566696792772833354449639045420468223473867668052968998425420321651845091525864314834560617953386825912530110463384795602478232848260118637921017535892140323700280711851493339870610657246174293380133753233149568073353660295841763816575878662184321959773445932781278227463181135310353310172136328613943111207083724403226012043945080509824794113865109399130001501630906803610105617415998583854593977494921287337954016605358136725005485403129607557594385415263807642586072835043765270765799205270854618127208053282933298021367722708190703716355036939971057156959114268138815689232864538585142097130514966226532654730191412028770221424244561905788203237019056014517214157277553090560992400320102878188571301043284961582176766631475122946561390123751412318515097816511707380773172164345971977055249987296419853539486567230883001453039269287094815395410474673805243832065473496625105849921769381791236005509651018647388609927118443212114735508145255492009556396805257384805177870672945967412727984739761587303616802502531349271933172255080059210904030614798568893427986754363005303445452744498154339593141967040393820187957624993929729805707935303983914280803606098517195608596269397337436109249333016557573074933015523878149626740329383386760174668736454776316358111859962921400009873692910680189754822559803029047243890453627963008246189743252755165277511044464888877329360538638106088551576820081868516785557092816682623894627430227968000760942518152918784849954254986745672858822035123921477883936783169922576912957360691142825677526602458145758451233681822658277089078496765430086152181837695186277821358925326864095664583247753353546006864450868634116604601718053803258659917240611345197197375057913631848860379138129180882481406512538437379613229694490145899710685961429676233373493285050579628829911893238171845786380601651600763566365779515163036325895871060589914812157661208576736041845477404801342590938182615091058983655857830811642655635681331416554366443450897369188304373061640071786923750976363714487005088358640514046599314835903974227691623255524448771736382399550052387564701128272555853175369663187257365241028805003467602432475421797976060630166960804954940963951238255283956749414805189256069977396416724754434045596071312793771052412332931497449966429485554253232412054960876810299004903719649504311729655374769925530089651361331766734667395603657284042405210104067875570340500518797639448013279194238339023942762888837356775860145764967989432654485000582812619277932463000866432826121320428880850092618650699636383952115731941800872535445480911426364397283054150807218299432350902632954072457621555631570057929734165161133332924309011846766357119573335269948182545056731297900154292298536694123867858325621317144894054241746364187832218220727939740690742799565647797344897762563490689431821581855615486677806834341768900289490609521071079466028134348931749395084030519458171641492965358240553722880600723321695506264673769815964909337382243276344478686495539982183308831273903486361061667608804478579946387388405301931310848136798090738292273476945242110661042849591184334585179472672350258692589969826959974918844219731028990435468380718025600826593084995571350964096326233056159989164020435792231584495420209689652861942820609958842819486393564268660044635495177198003714685410172797883988350715803016007948773492445547966439774539870364526728492651192968298341618450060190530663415130752620961841160825522450932226289128610495099442772025447555389719397312727834241637875194644305441075736976759576978866978733008609757888796287745168163504079472100609002755934444438612150276926088022460955222489684632199349550228571522343186712760315602590306574555469348919528698471061069549911698373505695732280039563763803188228238513388921291520451709965322256663794632250535670283073637304228505192983420826243913880109995361408303679292173901726386341355300473577268369042102859377266254370296418692381911105418400039407651913032912983742996536428228131731627211011580527409180863798054268353850197137566883258615456674949265517580377688856701548390809294146779120663651726615234341182187660192814927012166618090360815704691052658508563467078559905856158812780251963127575849964017715113821323381582707932289914971199635622681935659957782228182518936481504755651725353887229733908989595302682306079647159906288565849554791605459779436172524534964864368534754140349125215748588090825252872305364911592038627069112093309042931788067327761739028636471578937745957911492599170486029134459743195741216264651263360324698244071223953946197366728826999456314840235584975293292728526726754599445426183723021978889726686479082930906233731008941492591199807492333045682051010376384964325939447739254417654242998115332069895023175071014535894902555080098769124908834352765442551316683058626956437289148450917989185103935303543787850672918900588210276050981930501878008392406491247995229802386362075046296049514429733174535727537561802923773101787759351736941673724650693622211161391379784066699106100123082427057242151855469850798401208713830358916582041346909846585288782869830518487021876552856241228962201717216220606475774735182956374262101314538891246103612079897605119693054516960531902937325992741583596715894806609060449761990356962739808326170659946504260982173084874242401848874430212630281185857708874386756648094709930010730914555062472294782562076979696674345569143914172737417381204742858409163479073185155452403463374948764030407519741984303351083263683429722908362310804321336993928536155286212046365768489173823518489511970035444390360037081996896311142293764013884158102738768063314711752357744530569679792012159158658753205397216148683309548378259372203650756820835132958922578145507176291903311221975688108358662809555414664013223705193730299015778209111567925401752079501958207496743127294128781330594193328436244318809493321102794058602920182103576833388698130840206099367921101640314512332724763425603740767035196687322951916858215577097701453238858916727148073093094024201552839500343686803186797705399003813614553365925207052378526363178013474783379690303123887044141316200830977792345470810289301097831991749903841157281446814781574952042239097094947626242460113681772429606514916972830006764231794057143057660058802490268102030811891637313620912838962451150771573798462087685087494617215217979268073200820722246753572777079867412922717336737948855100037554702782735841919188953419945816422128987008703580052519706358099228055063006376293369886372265452708272370529261011485532444540844717828028508483424391792351956553294190836535067855918051407904883841187669319644577262887221980682237776870447946170233149377894253412227643702285865238825575661958611633523813866212213615948998800504751039805439733234021425263692601085228330043390630623470013134643362397688344036766858660813764200584207834741106999637455829162483959332775003582633108265500396533553308980189083709161724052144502788099096586970020661696602797423597124058900782875659036832284536183526597598888156913911952243565083082696583345129557194110190273632907241297729305709897922841267357085257127123694622002478905491071600359723937256285525255654103027113741405047803308869097770239965220665951227340745218085590453680211507971988013886619246286542605114226606905278033951953124943584532877145349305339821824021312077537858678887733866640718312426414566613121017899752812869181141121874255471947872802841280226086826681432924399111863021222939125609811997113976739380511986547073118365786737705284039340377085344207666081538217136608299607837305185554992205923887498890016188651513816568278683632181102269805435564946099796355980040045407740831890137633178127301969157578102082770563019620143898947329405916290548766736067400673134479638912144636156917067547239304921111830471721232772238899565175121762622857947914503530649166436015182171990968619559019096212374864933693822260253182966769552529506226267562892598488070478401167538050172252158466065307244990428458636205319956918667683503732691709895479479081380746092414895550240539422111465072911964926738113313231333256963553021643033064448783665643962331080161317945391018315582120698404808608976345055507335416671094857647497290461079016328965145952048034505104345849036831979814286251349632171230368163253260721365308871164935278334128037777787425700964493530191511077443074090430649507030193879153373061217593427953120561479271328296383237699987949594490252137205252900939637423335991800505311965091584651794887288855579068963511838468046729720369360875067080156620432439502537192732624961246892416774900712221019290067430763042952343395004093823437490978333329345579975443339832588873026184986302351286583509129446313518162413045587859757010160132091005071630857732305811094206351864320289245177548632381367512808041230258914414622201314065370108087071233416052510018296493552426628415709352441076945909261818584245438336077171784934123640262540236068448314290730001959973307046925722440566919626759420086915432506197919375647447400757962252531012611020626199510868419158901911775595486617887829783070784390567049257862345120204243486235198953397918155425350193515030847165585706624418518124513329751101971684134302940152507009267570485404398093125049236429590104438138091821589770211769367304731206922670834198860485981299518546730830129358353276912177828712911165706136540845839628770089079495611048820946685311711793046932498717240206549419666689243227548272958201451403810817348135030281313061612019796451726735222970074500719210246180526141575590217730909432985169790639200136065086958377540224077883662305809332592108008269612868294736974512292839468014713933586369772344757457132161126560184580468222670859343715747883020011054551788014058249922214203196915680524811976639782046573168487401516523361902204419753807137682639555500086855950274244600339625260272386321217095048549158621199451180874892314380401173655835539899548346692768232376220836732255420633248029592493180115691799979072921496922415561212631072903665668175212386498285195708878309479250170259954522956086875716203664495112382079204523443399162969490468468471503384831359506399546219804760750836623163135980949065141538075979923835721914651701867376762008167741308728505209006896540774846519255212639719599353594421071266811064431857127516247064912033657377360791884083205264822350634998207653422111321073315860097872417823308367043164509802569628719944906021932904880732735796328879536532368364935442709483013824673402901382506402864581513032775652224098941568318212119986853223346978629817810715239622265193367575948982559462673321830370514534881246335360580340700536769800098253531639995239246938638187485317660580959971349701889684694263397395859474989031466918581107376929890464564660945034892439699091475974867917828431964211469914633968673384898646675920454817559850631762952430452504453123983428644188172416499868345939748280943164541256093596456339013549699427345104215920293129286129534796247196300702364045917681612196893160423947465787598264835565179379903003066672715137647334675007382298140758478824993533878242305920363165675248936261474660799736334426423516215487491275147569192418238734693544154431783362077156454123794431047364377744549022037285805141082325273546821201557835170010356461827926945832150202323393347402407726166102283087210829334558857701693333101186701385974326305343642943672863689804553879078435397418913251150513866492721754992769012697765096417354925130424442577493788408674089816748330210336158029009272828708113726228858618580066463968256422430627643284899764958572476059898964104528435685298370644273448042740402130919903858742787041020623912252542199898549490997891155142271195084450482416450719144556424818037251957936355485243045776242370936385227077149578732392723626022629069870104723117695890607082170561377307709773185095263491431089145491293410571833153698947948816476076894276871594575849063425697799402588106255328252401494193186200908736454800680345637870121287458944644893076859406438051849706136718808459382688262270937461827084729329560386795497026810789300459688328665298076096263545660579678093240564974972983348247993576768875121885160267864368537880714161727073131360105839027702454930789851484731950885758127852702411322456683822201710400360705966546637696172126891372381767630745784691838896468014991637738709665823622726871104701740213790794064092044263523044834826824750031493917023202586920052755199239471998978079329326913081053894309527820478750677434980818866304620045997957184993403913743472494907238669810723234328886086245786682773884139655416703007178339046417345792815079619056556705643327161191924689342651106536618937181078490336040836466228226969783003351858638218856053924748059321607276288230706626678619033702079426973790758363592127042538910175349440305542001861759573741051233574716674946238245918132967116092334029546615111504789156514119765191730133497985174689259138796896819747933355515247378209702254754944450400599266325538011233734653851840363942036795600928857890859349805338799822199361051205138895070253318368549998167429723819236838469374172267992677909908254189076201027283747254439096587850349739966867180349055355989363147102111990419274716925452122452784263870751462066776038359980314045317005766453356242353418370093229624002624235816895992572339749366045687000766983950321800664288176828981044436544743193974395164088069516053704248994347235493977937069372530579260901663164241685140328910883951318192244362190070247000084217319885465632888537380993095447245163549688820347794582860509322272800787991845166560052720905538427312229308713397551322476678941403867887598974138514329189200530313739691234805056293880712200524078073961564451036526397082688531617372912133557206603173427632731414578854063017367909245385667208779747511287962956352597476728718635706369055711268324042236052878509408451643178667578755121545091974609429731045966998260210896113117734963949484024706134905445783876272205026692307584189129277204558043998880676770100153634263033384112729210979343823278191545383118211199789298806832407970968873880841355276111597721143523655430145334844930535963785892690083145680051480034170291154948764005588808158599977481892023477647003459768603356232682055546550995897802041886699868101643950978283779895299357157628751012464800430077915838094024948635649242921574709230883924940405764409577934735842922468838953944224543812848921487388431277329298923987823432833955623335046965601055689226596223281168923889192734854987354049619782428955611142097647885162548548006371439450156603021731511057059301479823779472688666427993786001397737250439828862047433284539085225069689640892863464067825798078067255030273106395715147560557415384372995966236036547113957232912990104208801011618305966639465869883872662205780071880448399988155147644315035354035591874366446133622537515163220661984004163335852391300512394902235515764395767724454067110408494842541661410928936048925121159733414032551022146920518225629388565242144838852561492605057536961715989613968719237361932160891952296899489031668579233457328908290379707966435439040631760920890084782648719311480718423089612995859126190866166326256379494696744011320297718418814778853502827552933358660811443126028892227812448143074157515016399714528410570057964397412290145480054951800668903139628817413280740002514211345564573715816619484299854372166369803666400306657211150211511944664581994487134257228395783651231840240095046731935611531823293026518990182916009448014348268696046940380003575205417934288585043833335981000794350818027277892230723252453736996363229442152852499166051060792524739442881007667248362553359626194532968875666329691744924346265796372218353462736393186627969197199634477302242274800553017692453906141553461481113332936524799695226546319048390833988270177747516929883786316529438158475089980649671201643454982759845672269857588733545710646088425800183389683206955335066994670963423912532893107568377004360991522170412083932946787995215572405245418849289473306964026141355024934551497306704122481032249766407034044317122332078787364363998163222434267913389088005080921874058579736661394341885699927963362129489515479768677294969955278718656077836326790431783217540618967065183211035780792539184494355074650752954894591954689157516833565377948626280155969393791549839815194007578694533659703061683870741227970252035731054795908804133893306917587608849283239610574345248368758132579986038948907164819802546508338464536561718505845317206237154860051827297657208709486991016255625834647596256798476450805967234914824201383437756152149136993548772301597844816615511093140118828872623106416951025620199255219394579056119616979631177118169665871734274504140710849008432518168146370603324226086400704911292290010511254312205843036359738533001693904770739432948743761896007870331095449271732405899294833242330686508485193316649149944069927967135846027116180149245057736963621543278378157447165527639705259831988207184046296003016785923256733861150463688832279543472121672115516365274981149896925442222339085696519418224488002322733732044232307359203824475785714050841555368455728435402329826383456837351788396933222290792635134828639465286163494524160641539298156898601740688054443821404078723731428763715921436469208421375036760904639295851859492407485065106039685069302182499524343499630581196490240123926057643425932319854485678350013014668305758888096363437514356380827625215282421111013147591981928206497533648213617530144847867601637364904446295248217551421669938772044679435827310924299781759704083953526114487712022498536560320506573645080718877172932199424869351510940810179962639457707132828281966306025057730819447812877155203719292702782301571929415916943873165832063761370435193225161280168049199342458002498963163551487952410067308717706970179064681094620488606301383506687084512473083847578007445790139001263580546652083145717380956758504239512757370294366236369704384360536974661183392192046020971275191419416674579298617681738559733170468520134895356230627258158234903618699306709423114923206057824758280407937714763903288459638846547310817607857384027668261716865627149534445164943669965604621350024238203007683040936980717706452579412989088694684665405507981804957799430688119456081222217630553720790439117555203489382633441048199037706734239135726955798244681641246487636689165268140773770590582673208782868459557229782798574689169364718457142198956901801331401198053404394541775729181395447662660642430180589841323939801051859928131907439224805211935762447015788749073898848823110846173077173995893714008892454514594711143559847754102836476013440852547740933944912578112170821290401492973358491388258291251049978589452406742712680339807485792270387623789479514992887161743846725496278674229572104541262232512003404131507372852385659871767204020007351492599579416381855901816472397195636831206545464664861769480984147520982156580504549643934841865003296821368010790896698029961356823058110214032461130994017515491941619741343063152078565898830162073031685309474164391883993905641266933268787682558720546410426944340071011720636286118365663150407202121376505701062470280778973840453719125953300625988417335848132828951865106961248236597525690372326251560994194323751049164563639563118402437997072070754634733679830390430626628193763673318598234963515844340195650033943739552389270207373435828412355243533393533505433044808229466706347960715316717580067957787059836243412532482308098885486181981971972960912016494928110224943840185606425863566758980694794303373118188612290841808924921368858912674294848480882158724448062811596152925842212633553440424001196796943685747085297050399618027857982346268623457789793039496727384172770902250002195770403847778930603819703023131501806341855447908412072761833758966960646554904148627771359681859149088460216874566393021658822278596034434620899314541986556034571748576847198884570501656081248380323430899424728768229769623468058577140223906024592596324093671457654891212965164204582697840128543923074554139654449739677720834205514244116003084985411004886058008319830157152691633031027207069534980981484426587843222823003567453223987344250361059144793870691263822077752503160015191793497327113463789535547425023833316134258147410741472791218808333424077437392064493316142322194261861472985864619929625492573957621190101211725798693378201365976232973165353526286009900039734723966110605642201662101327132794656445466833587478006119812898284458082943714109887076863167678380102725150752744224398719910280261772105932190693238157591288288817461973246850407737141679205289618363300473952400737987600200271909032278446086791658238031097950542631452019424860340432209693389217471164443073347843787996888186570568348333273870331998312771969067109193470557278741184775991836466597754809935637814707513877248033299550192814442310318890210281006532724269895275364127507883872046734380178089639015143265300281749865112011072349266753283794144408131112547700759074481063070334923204260134180092448948325067999442856501078297510439412421527563601497610774222040933574769798822714308879650112259381851706238927461252480995157208242457303340329172914921505538812745952754781830474674070872101900593422784194306342893133642725226036553520010238568446954956496153395970728727223612780936338812915864977165328093885835068363194478185583797497457086170694777764808940302634918208757433302264267054067705711847838600370366373616696435767716549473077744352366767170408347855592643184593345104101056833217631556651073217942243839401136283287945898892097102159720605560754554748272785584747536869436944820038688381506989046603559927209000711878118369098344324456864517441988577548163020126172340185090766223816281600014516139439421234935865803395627926179674259770563307164965878663077525776036772377625520237105707790606413476048032730809032642755932502713933648423792473103461517053754403396512928203714380991902211184721053158694666836688670302919982820887967091359339184188514663428295083476722408599073678185401571639116289456766049082811557739930322925506334242273922551236951803803106214024760826727129784796786165915505758893877402667514527493074653355647949072166907634312784152752751468781195479948972740783340071574027231392474561433742939765555072075178205251052598106373190319372588467033725438452024262200283686157007964950267258485216827722135218976517037199669445062622751727945107375733593752009586427980063116555255383304254905319047968826817633508492391060237448150110404272899866282624928321549681373867992341856397818448244995330084494842023642984475043474167158089381106209367353856927491238834117704956554999559894849280856819641389535157775594225110317238704298427828289575917671812757591305198215351987248977628711485919519442198958727121207582928707808624557755859692129035976560863846586366417556405089636616370080450034138415147708350501617114054263721030787066312985291384116360075219236272222206976094760654678179844947296896205526522708559046853218595715603865607417383879885112207284708374315290171422997872388129283183122165160793720978922436127735554565132637752315953929085632625941162772421489980050467669794257569406820432389819198185949988557926671897997452267580654675221552289592303315447652999536587287916849081320977496944356693669861844179072051475698484009761755028067213894303714138603703584309934528233458942893968029101325771762524730925069079502926651201629039346922301272595624203462780170443766898417654410040409496003097139517374738639687993378419998970358897386441222458206778107026541347974931892147786631806400055881801893680033906116421682349603501789961949291245720075156576810799146580603200653236802632646910110525405148872963899249199960479988186415506039346201680501196773572627953101673944368013352833120091998172740969011973058445695315940128710459461229437310436679850957397075714232804578180097385446014277645313340128176974692081151375157260847437407968420629540545165573463490345221851247512024013035074037883829227308158263221572962940508690495061249829293297559717640519574993189873209925817750783164571018195425756481326465352533539592498819530114545609741962493305647522355503778822501666119480567815722369723717870130508434737899093325442949472697857757315898518297478671115507275934859451455373152725164699369649604757505863803049040222025299319406165700383359360038909677256391460744115013401860309819838974988949578326264596220677094135701038400198199431790124637537634306642757367367307384673991804286783479444153709653659043338790056944270771054432901592475901244324504603992266927545805168504686584155994836167791957775504170325450857345681545881581616922490437363883047663151685927240243358067218713852422873736348247119269388528776529856102430295875309299978874201273469472776151710517174320046801937404985807047298330210519263285799318891990490493014052763517682446367562479175357874964303316192623840359403692436421404057354123746561269071671122560397047254895031321109793248406151420457236675718631060113651265468851289708735495205720256894923956257626176697622352055277032582299917295491129762241017033172608130935829164597313094941432581811285600057372359141299274799354564913750862207486646254825756146504736676466103683537377339209485294749052234847219988651008258472667845028297512119586270712486486704730508059276127458016008747981921571368723419395978252988462536134656192942849153071599161726055579212874536062617668938253728382917845416306323227811537904253368273922109030759989798607710756148519264543358578390484002006155516188491285493031730000066690756944857908636955107203398554856144184826200133739468798778989445587487721139726596327076674454991699809959928720395003612937448993200712055992184493635943314129987229069237634128314337582113800835221914522345116103228549905266768423216950154383258098137919121073937700450689235963458024728700983428060235321147932494380328005676689027861851244992718003010945953580680465726707288236099723322880195758553765332296412728263247722735872814848599015955615512399796048250795009759626398685953396092003843283770453669176952877143251792311226615347194653975394480792357167705702486348862447327588260827027235850828398635837595013698995653326337172607939622465080488132861229124987889199740656328321107775775071547719021950992105022030696731455943504991733390185880719081659842395478549779101755069130025284730517163281082062590763724980916830389644646592097018052634134701294292937919375729596108379410873498811566600039799768012413372780044115453526276749518265198772581218173043652449532489130103391638246717522131432613170327666196187351155002631353759706487755579618187656566707856414722892646606796337771772042126631443971540923356449814841046265979040374150759413808912179972251234498465887526574106820034552849783727336266252039859014856847526234682610999936259107236568955901088318562270680099578277128258342085100231025103067491194147842891009033344401253640511914516142326146117586405201585823468276884528296983614997499370916024626951418153757868795022926382033979437518108766598370255252201634658061635710516910417950998703500839918929755919842337893755125286991010972795042795465538047031516258851119294719506829101952600739022102397677136539457562543953822430366322387223139685659147672832038575803837175090230235969741039330853859555262206182244476046337518680236572947686090910369029846179972300251368038068344959156490881680558219784055978201485278712872879587633440195167216288987336570704253859612947580935441348433436539627294939657753748020541870672287586375191628647872522570930321334348920132328004108475053167537335603881393278717796322015622801637112473447907762062748647699976135086577371442440503545258801778983455850184580995510679389814961013006369930350118016255226347361580592770271857595852491217986832108027943369813284516591601948860247040071127625567238302392935015667599939599372348665852278234756970079654223201637387077467080443564809851209199669625872761041091776291317054540247540228310183347246158516184370635838910067876510414573497994103032613302350851108185007724936476853598345520323809984304446313761269637705729370761260643710740534598303299213574667859638103143970369658585040112791465969497598173449060355562516514391433883084199207850108026714067395449560401619510371144496766908627335415501164929520188946224199394377527583341781603913927833914560172382689738503852147810704712217215159239798730378479662947998885831740610699018901730269839748903923292318203547910035748891912176311862631229756957263123106251977679041481313572062031345869686026208526609821178422469810545196275841774948142186309633468792858902966366700147051525130882926867111993189784763527575000599520179812864784910634735595268286766627681037704236393132233786143680907778935767795354751637710361497511317911362559628164588547747684047109321678346863999183845751115171834590386233482390003676895700001096291017825254859712518909349957018235123872610962040270763857300880264336028825487829625689848288014888656457577684153884914120464854877620790686801708562708786082482795133158663376271901323765832477179532439965761550288414814295984887539286231488457922400125346281119032755519276762355224367970491212865869341449627732677030450636834940442734462012687546918687436854085581338315965492327461441975883414928171858053608203673411845116739530497488807084603512581918345801876899679514658565508813784366967944953305516334955727959372749338964218833769274278106249224161827817575511906819859742873656485738494562496709491746432723933809051117045683447920167257212623936449096940388082532387973439928010281220778095815794302783417080696317958140721494969376933736467783944181914548740951482035160674039899000118215410722175919448587142675549686881544406753070375963429027475064754075519699219216119125454671976008291963488616817308944570485876730648425246475228520436053445801911008788100568001929044123893099687547982032987728225120893689508413888334827517816051602366247083427847164196665550541006026544754648818837486265653376269352471380905398439298254490681773522757027485552046041486865016397736270525807093742327966979528254778857924612225861536340073819739369087809967237871030419980913497895603756269209608604500807405657932137907861066110640519809954024048857105911553760241643139256532966563518688446713017635267590599711064409643747466442033485174801361844172572591489429244683738819255801221647802051862334873754969804498679915737835802660682195772401961111404524903748282962947796585891278684293921782024504541391370435712101804831715271006029118730493387411084714502702233064977784709852093509845312961681362451258346097289197177852157950322800463377579821155879781135422602366767566385488120079810893943139600227818078972796189629064365965547888821181758871662510724805636919208416979322403825402376724371415193872851960901842530100906100837893928230616566207769968282822042769205337543134544940231554857444860608276216801033497506463836148267026523150329487442947172929534760458451877758487945469058556222712970218186026884549935071030907209649144192050757117424272037681648638806233023305512329116820118881183819093720349631306195508247574368655598115974132055480541441227034137689149618349266275516518163599852427795372985129299086531695725935075786168348159158403356048843540253062769579820757382447493516232927733780513616174781994599107673647748629074559396491019587250751262220909527800793517014230877980710618503741090637564791393449971857369098356581970850844582374120977959851201992594912668653881281816283880801790182503224440490626317405688301648542477532044434172666113929909978931453226641590915860637461584710468135329973663517007070818506291605566304976947408249464840334657715852952037033057291457148847819872409818786962971000287581657735172688115323955674612299713438726590243463091182844088014953631700048374682775118343319885597099143889268741718609669275628378196003706638903470704176094521324821693701576466928577203623909577273787200851858221317500407639021565884098787544171567404890744478472901086412566116299908420387032169911356845691027431632677871159259257624969847458655197311104860396851691731200406667934395954217814664978575636577409831206841426424911429320017087850044095445357357870973951383126030099735675933995915075907023087277336499961887217488189670846158272359202292615263887060309779428571252220094614826828352874302816207101516761429231634779225530240717014338326661265619524823851238439084031404270762115504635522831437294846123971701012240831610679015447270302097321837665866056951068232281761528890391067425399275967484339641178575709814208049620610353218336841131770309222755910431965383837229972450457439815435046646029164261239154108918844377538335588538495711338665722094174939346194413548499446432148704034812042069097234699153393730723759285670232226477650780275809029258548671240882676124784766673518729468675190275348585498739300148677181773701732540066758493723774136534343729333346309400933773858034778822366577959205964078479781711702082259064219437870550649753099514978394736925908369893045042908279783686436798736916413571927314503787982269388225109207400265189925945180385655123419390327886324456933737529588182807242977953227044886893126106915211170157883522340695514627822498313683839986453713126661220733619616567829415777515225999098811940920726571190790032593359768469262344623453359510298568938580288650749485756185046822925329951371509348661010668350847451247623102468748305010383947139701109353233998925000263001194797690708628773141575113165621998573346300029784326674996309416687248747191863860815184582124613407058949291890598289664220680925140360539981607566793149164963706962721781029307804111471836103736463200637609619131924931939292503456202910622964963860404355418801282922973940125495003218889041659781817471905203091872153974465391132554524883752915078326791515699221080598601290182538313551832662521037062891163632389864475321357901222224905048032475505819090509852943696770017313130341116564333684684874019704303745216191440747148233108639553962945005373804377054162956621354272181536333054269497752587920537298101785888700192970779742410103998055498075124399959691912936747340163119726332222242291471804768439418376823270241372259377013636671821493663208654849480880690492038487280628210643620092683634741396965468437898109531210683916481991183488144494561554163265309842616978267814131873895704955061747850497501704833900589331198660540727251494263568816827042238787222956628684260832973738779503105747372460239747699681985511805930501650329530313846378882521902193143283283716099088484343086558359076111739561994825965641265683089866315240940787268596203075483268874119027640161814383805632780706984889400715466990458980658006496873046574939081802388833122007091043532704397487132980043939312109232557906475939174115475644369637651288907880283153507747502720027315091032258390985247321979583945437771380933586051059873950095969276201802769214747767078766367638909146213913435689167199803619944404264880760667074248137989018204655672749723810016673773198768869885365869622509423067566165755612099644315208174628575022393636704715626946307588201495504649408410892237492024829118456566218432202836066586015279288441012470464359203388710176624978327576603727930017110250715377509868074989068825978827930771005514264995170972171475858081292364214557848131421983300959386388272147682840671125705925395150080011855888452307257640743085063617136305027846006836614964562790671049443179236219198727419726236993728170170727230590667011314423254107314329556875896666046371405547126606565184115955207681811412646359082079907289377468513209426124910233051469053096268934060290723077152774778543472536956290541617762369160105090140027109801845647436239456890200971695736614257788209276991762020819220710582320932593669174921809023423333358563551978032626962695284479300957693394214098167910644846357762907613611426097663513513860342285213701422817946512066013736632458167305138746962351401970445736241625994114499582668714871655707445496774044289587098538498224245479297603104103479974133911465742725575705788397167795534539541221709200330407950232762831142464574508618672653797896703892206453077798942355816588025686453198412658835157444193935243217022741769104986797326262567757978092546963570298874040788119957363968298164932364740388475294899864962734429087385396396315922303104186855013655548975202850981554112526151951801998845626961598673559028944096451221294358625898205498284172571785910726396791789870044622325904412224507211748146987722129709650683262005832396153793106922986067984827980426329615768579386236332821607991956683540578493012603135240843929747733191078156853403726969673216307723028420514183926942954756878222000607616763698297733635267750769152676806311101279002263931753350947631412410564149916790056613292089992341954126899826528869131758725643156598791921939603497069446621597499568706040956276661938304815379368383712589569485044804373961353020381884910576214795550672630241001794995792042794590049892698525643422062211588267895967803936990844949753997685635655027584658664143326443355453979433979557432108227752118372424487177336575997912892808337865214707419819330970338099894835506454640451967563611080572163404346524323461858912186517485215580892375875713796499708327615307575763839744439494085624214640634531861098640149272761017504471326682828377768409737384676853607477760461485071972443683890138311109526324445596668024153190151552814403500781718312961358649235707775286258250499405690785150205333247902358132155197491510466943464913395090120569218710230882943645315220135076211083538105399890254811259454590209464403838482164378130915908486105532882209021973380735166179829122102881564292920640260893800379769273851902082497477086219528780319891512956256898852481649378444148149662552343243008329260657222138431901127328483638174325906364923354577735671558144625098294865589088226900497938380522344023650433911035281952704353710370491466366810413857840120718159428715033879272704094171733278237175011486804573173026651258426832232373060299008114398206132926188965206065485267880542326483387807071266912100699300165944231194585874708485493165983671059204802988049610865754414440412624753131706374829504766751485510915602706373489786257640441818753116966254873368434974123317207854166372459797979203521742605213447706045960022184239258036887104687673628555882826815400082599545718343984457180062376394151305507673141356256131567886407537263066535578674304388091647495281652093002512855360825103359167477016021017020203789283487977276615173129621737094103470316614165595341187799000036831073287900153263831003500663427335704950584139391380426167677228758454503199959263110517674362429872722700370201591148789310427903892288148242054645195368614527251622976443021337347371485596502696518741587664794236887657304769431736240695918327758555770003820021758356121525094067891682044697228783651520055838247664242483443535335054635838226396279881981777400840647160524022033747330845175631322062974065432197123301221332837521369207549563521180789235620138201903536406108088947659163891570270527965162746729009711174616853065326274017236610850190567422684563248898011828809621546498839589894342143443169015035837402696202486334279944427964197622445754976920820445090259883953864673109005061802078723134698794191135617346827121525152239422196809404812859580573743623541002074053851177375446811106935647779881187761836351552910997758904596088783271122149499907235533382034392778698744044290345683082066980135475358845314896770994002124038011098649699980674886273563689108793193593824137116221358192999391026794300299451129121259921185240281890725767796082203938550623922466859910616415088974516289993622236196724922934213108200418391176613805043801763891348549395174979123223668813285882996672114830238299114782601966071989337290948256288647001013312739713742787032428115375980076227139405576495044610013104227477114875847873540106989203241416603425835546672531365071613164563420319524938785588640450168225770609031413747192382613191122852829651582819773457540212503552011024405990628241228966282272746223315645492983474238486511589658355928527911241064362193908226834447704591054463121372277398289503151876411109877689165906782814747916324509501634494077176846127340474561511163867088459498602701367740244822717156549559766452013587244051711282065973441746409597557493020599946145983215609155149668916643942154526793281200963781058484744554845775973206742275465296798758679556309051662267692530398154527935899610499822871201130303772580133819280377516268451668341913128306035011328773158671765183333614141327012356966601136260647324133678689923571728529696471512266304202284351628377185376373823479612308380437741474261870256915385121094602094997382994536994382024465131924544635422353131871041815971696832158571772830877367559292063209853834818585502693705879243870342266911087194190092495396399174615799737737881137496020871090411680332860643354279926219347427585199704389498297112102534144792512860147442599813996785095194563648832882483024674422264511988071422632267931835377182221160750947992357619707336342718254955164919080055407049978366049221719833452696269706964637210852162556506144838300821748753541740726817356002898902868809808373281453888981556260862358710092370649190522714237113112802702276650417781778820834887428118824773460590131388883131679993303904854967573444022984161853654277548806960290726083702329076198286271471672267639512596223824721401718547834072549881815623147629408251194230021531909802468314614093225695605344117602686896844447601453075011017327097981467724780646062130758957107516700146007829350522178769932105706581742903980414489751756385483239133286543691771656241204077513561115318236886553629722821399004420397388885136810001397707733546768419435930721153341861325360210229448569196198987639711205760160278399504246132945700090100560329894363076050590971675515852858179011250203206898469072571797210061739614931176807067962022641775343966406518081172309932198345474943323065688723550823235772515152570749912223317209465748418024226463577882890279533387554126596278537417143069121840153163202097601260183540281083633346633265875553708101875912534782908784469998485379482507542444112789757594808435035224455722673482337348857754965514749657809311490643362919646435992897769712636935551324504782382722484897864074533303702105610671503793605962362137466405775620547702513887641448051268741973328301779000847960132592102221276839961689831582170727321359972753838276906605964749175333167461644920174875183903772228779127795423702039293243057209419961171071647874040481801039637524841189067376749895576204165973790796166171856886904055886274287407976093322972027771255300809416045944071909403021380646063872576549307370721158211247727796658374599092865648731923939331243543262778512246384508507817703611720753744995079125175508250297826845724048164279316392169385924505956973449800276456104207554589955766932305381162547832112173733913772551192919269862432186664571921305614729703875381875769243269714879713048337100384276377896924889412569711491697623616018845170434599870314541855060582404031461706657090223515411898251108024772101228428875479511668048216675374184034802019335182684529040444434632783334029939441863330854118628936340701598612733339295115592988137976865216229447905903201103236913998181620130757738935196417796335629981595766232865130291775635834992827906265178598975145848068431341065191963172243296423580447270371937976324289038243062075512994209040971602983114892679130473484767424448244918952847700228897113143660220004221790312280522082372069563216497845032031285203906239485256803654407216663152743620115456061767561197376533176357676995892186966734764678477820182469444093926231249920551052189543307924042888198878840141530662549105238280410448529255547105466156803865379024899714491365181065710522664405634486300594127925522210172769444285930748949730740499699092311225631795392098039710006316359609069191250319703798022957213178778225656502001773963043040875008828676963856168153534322830375874274879903547745191305290516125372914049505901370967962334142808822479531520062832632137922030505688046650682602142205006932482328803966735827855397323269745672355439032348745588489348577412828131265348090591580914275625827992000773200356912642100155308315412321557049345936396285813224227309896238770491786136361522419043662003562599051888220576636691486983560955464718401065369958052375228118306957251027003745775812645891909898867591217438169616410605419441481968163300811483849309075398136976423079576347975007606185557396612000794652554830756343286914707503132636203695107200561899400231789416231905836502205366088501605722134680408892003467699739181452156326857869245681595846688521982908148421061924892705854554377483521901292759248444182406601302185614815174951030830104942745826533205195477179324261878503447274889960255635595724181770836425952109449067753791274302384311403562898026842358549431547768140855425386664802009945513991305314335403545515456709529397407868441036187088442679393101881865512482221998047852143271507862962660710767794286079455310337404310030627876690159684698468173823970084870815325840016430195287876146105908723317603714509512978219219918835125498951932291206799484073151606085004008305538914017566969948179884800195341472784539540423416368789128208237630168130686358602485023306397095781494494876217676369793723396213024557369829955891249789190165723248889728681672056500282996988303161688938245183828643318055877390923573189278636948902255724195264663990573070571909539556852204272674340454780590662657848462126534806820814562531214218680662325823233376037687003260913449704159517902446327508564152528920927398292488203401408645510711415766027684408694381352542819450987177043769750441833396401334283496822938652527493200855486842253099259940926171242173360579067150329771082440075569414942526180590275873332972800644116290010654944342704033632752353396025442293290931579251944472953841996707838456434928495871138568478407873287352082553823033161264296022286157021072543110732143796219330047170522874706113806432703662661192736161926576062277179287813595831159828319403576627928362922438044797748827774003548453561359799246749309044564535646432428332294733324570489523893790280113374347310286036598746991773152236884396523732839947972346837403191214813755699011974831299224713927515980134463561033114399359263814463672239789682028849744563043055552386160125768215397413772422001797723861400123267118403883694063640985361453051300255175223014475731074706651498540287439606179200874086727849970718758980980647649345326583114089768510932171376917346154063143867811754577067247802685330398213788783239063940185983239743097893136579942921372927808682860264083036231789924779585025628938881190404545652687833816611278237671409062814331221283377421877401471545641076777894347817154274578006248082700089369077059881540228812701970528697803376050126409757728409413175278208097742486451466599933711802343660094000681612907031966651000808358687547632450170696305070136122442981271719124700798523003586718297650609649164590892029241374217787146525439355749538664887575142400660084869042357912523506117464428826147625519032374320587626262777251088083082861962061777119980652575133320725505766635148444358114524477512049944765664727374514955036432967206953525987697348785554624086963864496627450962823618523876163352590296960478617455366755485752447888327687947527263882665067716024662047202760230661672634542186575832607010402566390863824494129527215207332372938204645155469526380664495045833746349451577849798583057652499239719038522549291910278239792131636700588300680461130010423310814547513826897084248205382303267185434030087151829018159185100053580779656467008907858875622627507442221789119775652621530891809009396690588880635095833290037195882784432778482646868504365418046877748429694593290967199339907216029430553115912515073546586675929205856943335875327994844538022166166487080552120240290445264150450823733035690491930621691514471440617638746418120111282171980484713614920946752878172132297156394020904006246888436882750422227742362521308817385818405350955557974260913207567858813999105414553813377135241458923450489087333841251988895166534920891304872154242546256452738541631531438275958219316527787973839417604390768439409028361887463643298936126543287205408447241416642048303377084312435515301372490560218865400894851663450289914584261385774350616898111587546518864105499811709034048730926328509276613171042485721945977196829870567286247426493764480986272437455357694524433965536817215686131095031362770586641864696993246633731753899203958179794101573929835373349426753806316187312464303977486352446630389905580032287854865271460854977659745923181268192394214869917750666285961253195067380184141102797298180322937785916553713551698009380240042237444567747974857667765995983784871606914777018787710135049466059524506583378008414830240833242019565518438542772625786657998883364584656960987477675019519067130058503487573570087118117807135962397831303134656532434696550914334811808978951020943555876745752544725287670983140668803458978463008940309500474729555422081218996192854298027592540168656047020811174229774205153106680943326415041409490418080755621360676082419167061184693976840753600726477372404350000894539321558027548884627275890605262412368717861412469429553620803086564128159126795754381158181870232661090768210524755681151484356312942784080536723834153547029197878522718716717276757809593784341581964753290690846474997677472027308770709076118054160525299930689133169484519551134869962786001989106655593924265595034426928061604268905836535970923900816386122580865562399850629221231709359285295527516082177390183887753840686674269648309223364917443227642149785906868722565400116589781955415213464668642769270506108985445424676894814847330271569050184740069156980396440498182313809990822981454623476034180558951232179994410541475321199605944533766677293393863323440776177887753962807120939177689417413685743921828391480276654153846786320043411793069141406722144942763461408407217061623675618109253598695965432925932312760050007949828116194324048734783396003687526067808953113277316956674684692995149948551774847779907234464659046630040099010862241182210052299592965377674159277366269333356929296216392690407148191162093116825873548553381544432488627236743891618821409155863474590359256421578196505683265265303290255725088552888539844984891622461373779239474565327280452905041955707396767693501528530291113221260936348455250905388628059894017184084315128886093611392859811014121089107213341412616171721653334917764184952287855153840366808731001537113841981060839974211618375843185611700216365210368878724730584821033633433246869334078503571045561517439079119270986385532474294495139453468925936841125973300452736487069605807992682114675141995208399007688364178720152976422499826391762670561328601658337738176015947738969168856972862214539450793060630405134685977737997836919328457043615634094575798439458605138578233662599589460101411253343929283863511644647212248794860564921352967032472580810426545871563077471194378411779241765973579487607884279496934034525514811385311885039506580070297886324704263450718416846439959019139875249836069719041580677336000920106928372371566343737634074527768784075197324572355831921305102108496931066749993799065666344338198246610335936815069598430084282945636929647867750739420639039525220962394390232433892917969395663837852426229304917442440800548710492954916065248339038260557420491031014069679331291766673748336661306503887833151784077779365181640579549132778351582305210095853838419640785393428804762819210834276148899111812213147656529804024053635975339303732390374709428682812641920259021650595271999431365337797845126266397442811962191892445521731991525713892605358728647207781750865132632040626991667275939656027833626927166874178432492053202629330395085219010788198697379659691697049949281200334800936838697117993529309896307808292563491625621200402873107909657768226388060521898110553998034253228186995421106407581368906365674172517992902425309505138467373771108295550676104753276610312504408336739988438100369862567165834922541747558648628367407020353447762093467567433761490374723783763502365943292849193740983965985799381182516090795857367293641853054847727359489562922651817935555698829094683821270150163959426786029125771305040883038067550856725084188155878995921889995023188783808542421599132108777224026454771236069083961687197388310923967581752831092244193138534288255073461261061280230207839910078224311383387303423948089021204117176839752824932548508803869827019957193785990173538674261911281341906178806607319642765477300509020637680788824219474510676275147042936019776034746249699161897588395179701864999527298252353466585038180936851533582496093269506561060764481754651514494856322019958385580178414356204261287941823322977834917912011300224131928503515763416561566337329217536057180644526309888859692973125175801247370922687370489366777315279777866609065286666801733997203126749454130533603613361634094550785898600966384617170114937516149080058355074779368572698901149958066148109595768140844202829413632579756519512492667756915212596081816613363636454937378580519960339703167803195779717014571306249539213186427488200064729455690317970363885863098090963480891116919660622612174149788421308631920456800027170052536727314814778143370055764189142789952084152765712318815405763704725602501713363508727081581076583298041557243447487310243224470941360937597785708026633520847673360587574499581843821147192621572071044971949021809824985000371963677475022642724861658867904889343761973086190839237475170411410151570621659890094885121336751873153546064177117125194331974909482850586602493192424068516410765443971698816048675108938084916519386399497451994588419895641801484033310795988064317111593586622041183203267076316531009474155870980815566106630483807926772010446959182309838069363528681862646934962186726852897799089344337618532635327518261304693886736995128924864353302565807566733179234557906101171672439692682725062267553061272586652030815374125777508669656833325562008319379946517991586406603879067305421504244515896328235192363210334168226096282250063949596434221113894823538051939994984965755027970535030587933651043235717856690699962611436695791076580343489141902016570758101593835355010990800439647728731566469898218796103212926827837605811445481419840138273526627202831323620371821402359166588514405678398440914252628690461832773437647997101708124047342646516370879127780812400669683761045569366100668541073542345434486417775052059844124279467405553902923549997376705394268493308003969719362861000352626693861862949729865690138220031021838383882647096179219310447571674559591362091010459519774880108207620435221523581701579604984073186728526072967311784342736729977441606238257963778946710625784021733361486304155883883154559592825588979794200766691942051441288337157169691777849930903700050324997008278328238930198268332284849880651319911204014316239096794628973931593797303824485874779753874420555948912360264566163813109449878682025241978868414580725268925303279674630247257590247603245507367898305651785446406994527102131087209803729913857493734814785128484967716250006472806751334998876903471464541013083624118737285292651937015309982772407902659598254378637410477077408907516605506837888458423342959650299153268368390368175600820669918798286367720827059273167445919307776144079076716631818251868215459136237607214249462448794849743410203238774958863209312747527341862962734716299650724462336021927013897398230211042323114908385198172425628376862864387102649028564488729845182016362742302367381141326330452082587371768886289063244175565024332095946418873932716309865325945401756236582630067602126747556551664390432660691607317026722806778439115161644136008543755125353392214890262500719062664735152812185399341608328955698295055682474917774755890496738099300499991837037189157023023121803347148692774906735133229979622061203975543568027247970368976566981667614781432532468538177539107735432631327509188513210168719045821552686378926146730751908088846428387252915246824482542525496624736446284249220342640510646926152469216783086307713100584351372193815183507557463729825274374371936549259835954049610261772935619778758254354516575141264588269489013663197238937124975143198876905963391058806802803121512144175936556661227710358617918392645992842273969110040708074337927205027923824098282193249578523432031049438567828896358038945413381637779825483344496500655293811199900834939679745410382829129875824931487059394133770428706368067162875494816694058674885225576531090204939499657172702941307938468527446072549961692647411143927764658269549405829627694694820111745949091165651130415310265638439503958025204500086968141308169468054002080785750811158452560398666303733591894632294849741243130933011803218448213040984673561409929170013520338101758257095429557804755258295621673522971987476092750972489235648850527723654180347679683290161639603520571113578460707060087077699194589118718271396179748306494428895099863539719913095006353471279886856075400562940261293661318468030720844315064515970734214156785079998829106770071703690251328905782325136987396572245689897848286406772972088606018110082210273879269851775855658821251932865822721929776707723609619413420885921577036719894870596263337721120750290192845386990134060352616075023292986522961842379218389723837435007745370823283504064768310961323661377845337352301134340154267364667535805823870875520662763160440437708582053294321363833507899109510313974469881802290338463929740197236324486236618508608342191709422423463206420838876665114538494170060154789641776419769222130438538331215317265273802617900967310794340317627504750484441722529139461024920954204530772486495107836678676724575247804242302493716251082798233193138870346384440630977712302772595193520852836081915526695141231754489469366390899554711657878732383038082791927769075271308446207409856427491861845898549810053377143924639507666187573226589531655389856169151357108666752842310380384563041403782340691531670786983088683955927062703998126613622122274670986501757033912767393266835423275995963441927054233044162591065763481779899595438555499600572133706970565603300852169038042948400146441653497417987520959822598377168690381422636580603425843542430876776766176692653777931989056122708798200571411219292508390298209469087510905591959135415781006768836178290626823356674856367388480553702956842209164651671311856769448370985424939783612509824964298965872088058190296408185176422663928730973876415933887343384529382604887941192734544311438273207657819854075027321724875733863062323259122805393266288299706041643862378182637169860674764969193286157539598316341164783746992270226365713454838128317871876866287328662854362802533997518514239886433782176212663840510184607787766998354411111483918929305168808382912230202499106503898150197319995737986321397555486629222566997251115586534534080461397549010345384724558796968869706317861410327011941184276916456928818645457483209333175966449267814373848420072502245067567130303524365869535181327661294742579317196663293333294132404474954096759430324311834357221809168657633368685016714190797291257434301750568572757055391777583671571159839293213447485973505048654537846792621062789007309829942299200044756653171249793886132142509371020416744441334069531348051635687979577995678861808064554277510023579782068981811439281685581844704360374622849926543502280999271182752635855466361473879105442935037818689022730980356286138159523052057195846811797516942676820279772923552639968976417831081403667450116637677140611795699478675405550927060170539067261619200672313332013792488826866787059592380830583657177658516001137926441907133892282501953721361456916546219165843873351667830456361789255429741770264367842611445241883658342434573659760945869565368395945738219293088645187904491514212505798941160120146610062646619604201774201626854213700117979932384253404245036741084392753778418438029817593610499839920368586384558222267402803299525972063440200242015957759207382608995745736744803657936518659937033397424432853476619185871551077546929312245546277632835678427067427980576532214861624901942563960925212744253306651779686347195036323747760312164405158958283537668102866867719766370551379657513412820839815475451434807742038512159810028715279250222942652100471572554270584535878596741239360250426051047906382473423352025950315583847560207101624515920918962454807869978372341407942748185338508240278309853094847582730836285744306256492672373920120250222288524530557162727875587527498122885246733336337044373269644246844947082660268828450057036052041190242413552176137311855497676013867556037743601949051719245743529497121228013692718394961208944820900942459512300917888596562690706273986441883684940556490286019164969497464090872888425577349531457342881263836183204120753759041366181493944976418588843467418591652648789707181286727664398896017445999123941375089011940938949649029184622551565394838034816549632442469163558794481246242261111728904464153611679787898243711906634223527443647736544534912268998974111726243300094413890334289079609267486525323523335970519106521863989804141677463306728170855788037808644755557420725749482033245215120771022400623262592808573347146947764843618616509644805045147499558560513115421374362094113906861552748434248784062086335615631014324540267542021392724315435222160890416641186487854246329213045026727948219282229451414046117894869138779228560088234468107800970260543424457654840956100349018924691775103242305665272147670512467634824841355318222724038412807533746914960358476105266099357969266402819621245804389755493247949736736135621885899682369401467034085445465919513615872594290963947065444634008526026317369528934944248963623365624473070710763569176833874760872096938848713055607813378069534906929511249332590765201765349330570896678187796414288267399540525801597966481924220593078669461698935166957209894467300295265861815990843555017102398251726548528903509810665717420966115464543599471329276839227028198542667543337886109566186817598495282011292529024776250407849182150808508923190718031433074001670509388066068521172338859501131514023801507299844145889524007332901570551053714473007407751905143074201094992441672670100299703253935709403796428872830517432365148359996848031778169400802184379215631745810507273550434763311943605258220566277132233178767586883842021057083926867952707631573496241713010678107981793504580874978402879980669596626135386834565558166589212159123413492822312992718771102662741605579536019069532143879989413097156719917917166231417659613994225841979010026750959642520643303521320844468399610310573583793898803948372030417025585333859948609300327162068516600609959971137223808182775365260408028674275392737506884486069287359633381012378622714355244390863400490501941421576176600502647337716254445182681988219284344534168270370043244784350689371159170483349281072036881677073398424312533735636060212282402251197893595047208628522789273157710342159936566146995582443749961865261819189055830626392984322685895237091168501886054675834065533480731364575277977857752967808360768409400556436110441125486769266590390475463901867085410335103126805022025321616112475239022020954876727780448732440355200808195889968960388369397637379735004835997459476647874179516367242703435393328946303048230154337078829425643625844301236881324281874631629658249921257258874649809605077617640338903844464106301189694281462055398768484885987895626162495422228548761851063771899527850734570643605183235858872567090066292925820533317105918525016059861243866802753742924248782954796385773974017479135468295947357003873340016058981889292785654720676246601120692585908277994110699084445137133602320113079166611289805326117458124371129320689880538373386801891644570169644312778222796683727072351574911733455261325263137604368116572325796050371707539181783107262090795708473743979417184880997511124737814006918402920646041143857482364299317814247173937339074366885582829886491466534422142702144428460486929815789149104315946584196506148955063689657507749100649797811439643816177416477315064861162443986231718387095890176366693621478116563113658278662042073298727604375428125301503117100901241754975579258665577767131945528990820590663210430032679194037848160587604218499296529358435559445948629438485267179850479601875982795318053255771803924450411447759799099712242483299592652076885173786519423113246851952489658008632775973904549045831467366698033893141363528276613407380283098398036126975655316779490416228981157875797442387243035054980651730194776047486211376165727052225705765401573108865716316560840636801807775372138131964837495525985645669459732892469264396267431772744580376275511702332205802325323404130830658267184598861327213741666373220877292938879031198043372701375279883996729022674667262588696951730462339052474742707284517328043539656448626344496657654167217969662866710858579246218727819167774762903995624718374611245452369227655310662529709885471073541400471621020297987580007118338580516826843550382652612320210894278311791748204837512223404933646298612684936732253633930074031950031985728363797794323013987873583863319337804268240675338554588355786104513827585977063706848090042581300228205966254200736522234136435934508134755252275060618686131961076484402943184488349964647970151909708452552885819152322952180347801356024821879416836295038516325551353407899869848556783193639776463055791517199599917467374288159543633181019111418031414522729175642138728557755080663899031951720602774732884123055372435337424058080618354748870101226257389668532745420601366684972414314756088803023223511915609325796180290678351554216618286056108677886545578615920694797251321129608870138434494947862942593435718307052697156868861256292781656681107884448708684972802297307254602846170428530875025303578557331168283165136299208273055058721586936536055223892005948074419958384947147892356821758961931645366246696101247683249568809324540443455502616625484148059415583267190032714954749261917396195478149845369682664193744190455572090002055142165478794637428970157713125939136923439098354629400566498617390787119988272691256684852413827381364036934383375148298129204379968168563738484638840013724411197372567160397438560490927171525611522416715464322169578497191005147640145120936683846562015544784161429845433918816255785410121202874962342981512293624238493502145807880902309950168723264781572395237629733941629860613433828877478481658821967714870677853805646070755933183444844680394974226005749066052042565463241871311464850925590904137742376456299708237587371910619639658518310659513329465030679904447290711803145202887443243600701921605766372039308553225753508939961051538136266182881040733806339423523579954725052989874191241935770272183577776169437555455837096038959442921188285756976498557336771552588635645353032350099370779785406677898344554433061445419006800771593695830336678871803336033639530639089177727813751121104306743967720757407250583825755607037542477157993968121011486364337897080130893097435492168223739795705749535951767689553797283696418378720085017152973529336801633857122183356670560143160272435101587681017117484575924295403774888211472870297543893194957127007155722722238773180162772882024563647937720963261988877205774303023971389122974603182548576807165335057460138574215209944248175337625026532114033823033436725773623920927188888020499571794161900249749848426602963784764919917277406865335617608446087158060655784552162883779202595022607035668139750381812208920547324340369658999986747356835797828715392084736175764114920563701477692728765172648250088929040260297363621277736074844389819128082229422417873701927208854956655586297450023379741373837360419224567601259808618078358115812803689888331903228468227854051800145277180995317093835744781899961579726615571495239571177283952863391492083250908150788558910697465249985264435203629171327138697225153055305413360372488081977924448457166301325545288990544936092720677589038303404536448823180146655100498288426682088302263634763839422602778282832301551107741899892497077320046993444510400480537279221486840918100610857215861596688467651555178649761063648934600450783230385481283633778548335067982509082640513861490147104957639575459780460911385268651168589576062788383562823841724956798189249935656145750402528892123428118432031777588824827562187952070070625010132192053614388672785992003214348087787850166350178402639822049016995966081558848750836380364282019162006043034355521276591278222616052702581271489772252603117505426566300172866678800495818495439002923698016736813184154819433076375863007174835815649811921311564607248962891024637264741933066601831480166688196143509073707436105927087068480083598169054442366468585191947436396029465741439950455843110317631003405925984293437562142795583879512417520587674654818679158972340179197104677132737574939991878986952881455566033263954831816791687721088763075014448800493433097245648218917004950475641174421467912567593524879783834116997838189455985228902212961800775334581344617521139609019074032194577123383591043012917554430245857028960390127652073803624297264349695644955258513567994866379550488564719349041517556139885452914071173396247450373322460052519168935340358979334240706691525023786911293370607013048099861684257155818241831074819227387538181739789128992987019911758626695649200203575127818601181964804813487554331244793679592141889684112373007400129367215753620776772858472437403701469558660015849298435126844011252409722643435194384041629592382463358607483001236181704627730159504009067280288205506917119233238958389794510575496351921169359401009102242865931958279340011964158553932313553744367364706982216912122973507957818677527447551388323853825537781350163572635839058663033579609326755261049916832039192709477144027260002974124821721962676535547131510897216214402974585839352815622381881796637814966966222552881424319532096795355694015155232602132035264264557576621878067053417638927786742286306255428194967765583384737889758045437813842865639294757155806313285703844163180502213883459352636971266686292926032826299234373262456656972101384480861272168317981282894377537857925770168356103054830530235122835824079374096081834977040685752252320229731348180603504240275569242712392125693932125365706402149733115379959905342681561908355733697349108855069878204575752771444549939314761119545579474678819559424249064378459395998892868378569773949301099154964351161891531684240271456714122231186815636824536393193354314150898465053949576738401233519844040201726575902393005446289307595835366607588494966789256446286806276083888286959773025084624978916304723481442878024530323758947013129967327810520019882036178288248296417761962616065798769796122887282928199757912460535554446365187201250329015560928218094496717525975106832638102073545038829103160954597710372570265547172839623739007590045928175860269717330952651440281762451715304503110224345677035824403719387336779623403151850624199378764462271096862778105408392679317126881445632461498400341970152838149547251298217976224245940814424437484348752228315777030703446038378971027530051024010834409154579690487422384258534546909702154926443429950592312781691341963982303043978595280239325435034729977224987664461738785777650147892022563109792971390294914990884789867397458234049035288286775439009275070668682425190942798016112528203441704612479265992967358385272767374088128190430336984015332081407767906612288595661387494957731022553244109671521586369465161849297704602758591218750637862691135219297176148737990815406583053693246056980334108645009213236900249446299009914303332503254260247959895688403935591066275981119581889999133816709679648389428710371514611246887537048840395157505699473432613584726653401409513002585746145978850857625749566044777387388499708805016845832745570158244275859219389955539192212817080969300391970664631495190086360963977928103642399384665354898128013512012739306214739567901473825024128236525611949026572830306306270628020610985406145362283536231160028805894491164536033262984736938839039813633733647699994299870925213812523306448445454529555165017834728521014647596704840203614698550553661522509171963709779534554264521899894975276512395091208569388065203144670572126277670859192711457281316033258796857287217191975737068940008066862665087919677989927026052553989630214227545655290737674744360740313380390636491369734311261223068202494473963276430831355536746728745767306336902130682474654167958803194395948868850204127748994889745431887480811498516187508594829984630146882700891661367330431946014761981949462927579490779917120437309235399949998199728491363798007544364633113373494415070100176988973060633245608733317123929097713929949073570130404625050072691632510203324270157516832136744270138413088512986653368562187067476068644115381178201506928291581776509570827827879812122035802104138992076733107024585927807315239080438220008706917369036884847489472369843337693329180981501671357952876259683174892511534550221566800837413392062442723761022642767372215732243777272932693547435589164855157347351195923008535214530300466606553330100038822818046930502380077574624569204207121980169938748722379356717570423223684161644421994506640906766642117763439504730251705597806077271647204220988943101535671118224658005529715096324613122645175965239473110957943247432915037170076085394315492273977861072772469000775084434919795571774117748780331762633901565080894097292959126146738836274474341841930464591223874609212809289318255394973652611682103946371512424161487417303021067170251861908833035173091244606526794890704662396521475042401757238277840444854987145471023223742988556180575298402752185048707350964608713683927589597778081939740853549478655801490906216759539777338645024766665683237321279289769234844115243845228649435632730431216612313056971272495649203614796138292227431466906356315647411724718295542143882865364304465233379305277796675058621096192648242751803700781435050487641379535411092782299891283920099599961492576820976543653897697995745569835623459515725526264745956085322909959907449178636546160087972222776781602996323204036843173270909540923329223433148357120300506221611158285402126043541870688348776968973724804138543949127483690958274098140218706819882950509116748208157308580441213815627912890390074520026964187291467596466849583611925529293468927964530880885014748773812824223825873873066838659773282453283749952697526165818913892273212231302337949172490291062805523912396355460902666902432370733659873819892729370930117981720058702943865500295061339164919078163975216489807280444054513497576298854136114300399568101910826490432295627206609539897260129347803412266194386703682047785549464438039585801374332289169705456380390585349859446118540543446965841856864580680580904779755517121364180196299277528017920372628826724494305567318323185066793394178279240119597421890828971959839625204058180936452687410086086035174861113701695683396812624371568182705142806786753491583642739370375503027598581210168793123564984035631303742554380774573227279202281020699543476750613845195477511023963138001696159369784272343118538839578973905584636939308884630384312281874977104700793843144402250111318269039183710012425020724894586667155936856524209168654970828178274096182388819598009489139140289293085832121697188102712552689994844300272868614718765939058193209501544213894948930031258221623035821824484480706804819415085262402645582925202187133539551161436446210059506686927518096183846877766497685980495709457028044585354144398436455557665250463992963724325461680916859103108346249476828415221852077758165106709912660990467275046698301383506500001864404648309875601415107208944579193804608026480903683131574987197104318489169990226813448228163398994696068450256243364384468045877058319949318317845344697184194819284242326256057399065979809022080818789877556084488586579372461100341914965798058486698924795440837346759748527973302914459054696014676089245602885035994880738935493601685312096635096929034764688418671273575582314799876757402018467879504761603725760697958354077419022797116593831705897748807515746949992281714903659007863896981007899949482420775675293222987418939018229437732261719457828558490305654048651675052065082844066461729322936535866094330198987677797006468167114164232192976443516723855325117951256918913940372149356078147535934235183515314775160655837526626955617249810389198798545331027064502949606610992213612919867940868289683520260653624960683729975755797425626175344365787897179179110678754137110399641866823945927548053112796889893915867874094494899145415829204501525404096246304551155231471811759209758372550857902755769919449992313046288118191254237148510346954071838683452220219020746801771236288387554842221912110484954972238175915339914853761653511645785668373675801727206603041208418093906782819319074794039202161021923234514162390451377576001425912376727238388223891388465723192525615402235476418302780793810398402104413157786804562960268308468148183607778059597850952303713783684195669815095668601125145051962587117039821449544411397796742509764500415204940305277608074658085130559397241783072918672070042250590266454900801358149762231888419624577149092445642472375763879056873105358783240905483027845436736386815299789218595355193433374032717817971606974202212011551067942286991512412967669226419156766103666538629739723493837693850110128644520035436179047471220050064596861475407717946565825684517051978845531872956041429623274890059797337103911011939172578243032737101933756976903913194348734971357682717780871888748497304762190260559802153013614422824040354814991184442006495991756402796202736707831702109082734029527775246757859061532697527977732975296496057538833646124739251443812838160587493886588640615841206289790877036936410881235129409031326874826267059696651429025293438998841824626419225039071576392786124550483133973333515837825963213501721506099349449190832119118675883136222856043685842356270453380426393705005635874444206005541397109541375402161062479449687285743490014470891665992637906646119785709622171730288190324222182914109696987775427714034703591006501976282738572931393631180990794002274675105421597617305071227087333675029900886003123968421727204378981581049994286181860437317095529772710296020058888267420890143888395285633899108744082384504733945647418506035226644479402275694344497785598715655546402696376218732772961857293265465405337884374756366865607804260407317000815373064038511602927338737668288880131408560482274406540058588601440931650447222290606595268326195122369805882007057170023241771157591981895955061910275245101456163722290936284857896195334429949717447696205241422861341710610421875808876854756449027474438651417034619698102511863472291275620410550860121839260446264271509958336780720196229627016904626203466756593356774307094857135249418441900106895247713613519735493326578540047774841349761601364076554974101423761667939359902121471513751662846902837672334572892253995708379483325108182556518579680756657299610679614776809818164120746381433551055273081990108139436581515696124390597143295055143658603647762573921268175633256675680146234422879397076854323957293872899748776857944690654098685852546947316079669783840510229644144530018752084325325811240241047766748583897286597636320223598176910156391726810100395606997137645372688519777235206717322677880849829868041197131780641218783156137182509165204275597014409503122914560931039268989551642838208883582692846505965065466672823281858235144548487358866040761004956716258189444872995471621409508015193877760689593259611893102663788695155859347154100197169983002570251582086517161807075231183938166528605776225125817086654241995362294695349733197725642434204977324450456538307716333601744103757666323354081852727707729232568277943688618564934716181911285689153973187254012077663425725487196853136181184998837946961500160818102023512381388987498018081315977834859827607540770863825761664549966652947343586124268229313725722173023901115768358633220191899037210427414987493517016721719383571809365755130671491698998241325134008972249629339001597894785689351530627896960196539395685980705663397850734367439296993251640842267782326898860993269444835357688795143759624900518218868325875752232006773520357673626175840091950941700304789262043950122107827360583103368167498143622960223050533564963558784722761035987780467946642132717927232523873182848085554440223256628995620538266498569481776188313928046439674374698584386543318040000380901870496879084487269241433457153894296832240756498185343210823256570141473057327510246366485620525872503063162461461329675610378082369539768604086257900009072631560069941239810812808056771100659180831947480769775521634595235510106561359062489764960510432010176966464745055978206266173189758847273631044894351637577730393408334289236298825782161648740031640777587357997205564159723242056950783822402990197626178797586459214143350790604258808353770008271585265537227961412209966640015927107617798041712909008778950765208500228293206968251655205275109673050994682986152261238448844461122337014889862889392424077226128044408389499883670993721452234090122436143481450438937385376789673769281340576212443944926786580577891540443689200366550021082950074354956202765442472402952942442063858382310394273284340852845957378323816121553457674044359878376847276832212157131303468296610629511949414460527745274104689479749072396877524839908305601235088709921973469821108000322120887760076339584351569968855391679725047719523542592675279015271925140225621179771440866478928174797584465104499732276387805928525192317787657070973175073496085843338363244776442919104868400715963834827922249813333171299335369711124745854671847409521522859831706708905398379530479680421729614449639259679615453956064129498978148798823531201584410603436186781995178466693431253742490926146460412153270095025227140282410339299197669871668220094355948652969746618652270019539849484380396934034133487848132037089099612553584241290349773597981463421310844720544969575114153560269377244149100207444628871327560852238046167915530208010255280706882965340930405550151541250505231547264311206007063925724627538568237062161433075114414771448413402100829824325638251660739816164924050470148605554819783465384649745074024035977438414444188462243080060108219315148442911465026774342346956052725291190221099308168152965490581328594238301869955910714450710886288186873497071532298502429786394582598151243207716347296830028573254933818006705506053276385411500094378724691962377219711612953443886044568732074732787476155550892759921748208980823026924480643315677058757519159731827745564515774662738948628313423553114637742405218042517624499253369165218753745291795189922971564171778868653426199160442424264727588528383968209405585115428671087966350180561293321493525421117695578709343484035332543509154687640496738335450225753811163927160526399379753070468491688566190040444742185936419734127396560085451393365693354874979608454499049389163431508641431480048391439068617332015593676192780145046422970248144641046492902061061569905553747393909328956285424248149494902601587948620613767995342020780374774422378377619388480733304467780711050819892141295422340464684760047815887030599475198330294893475062142414660100648821333086255748529214195744255702114966749164695760230693230770904023326845049006067312751898593368742275514222189006348963693158242159210173897003987772614205612993615809745288924279592694135625353152359521682680449635521935223337971748211849652929812515037953702247273661059548208236127121806878926377228763026670253491757969936183925690418681575254957823501504108439084533584097264093809704366495744614045705564078371093649850980315768273997211883229781308026273314679281330202931587926256653368561167653115968688995543750426281877778832119252822935417408171554762653777316625018671252855749346561960299649578986181154901767750559974012829452295631561408546995584806590186486689134095345055068938727658892272387878411323983385512798531190312991752244065260748647075401574425068188550708530181574038314757748468462962231659856710559200582457029538930445162400909716992620439017511414144817450959401118279951062635960232008331275291368942111227375889201673241631262817369792799778473280638027290501344203364208034532915266527833024828818138546382694745476531963970792409099328391517520337420293499033517764395099341814641136442478175392002842427077626778568529471602387223953756779147254254168200279784366040673899514318806753691703433693239089934320785827404698779651910893954195041802326411038668369591211588015980801429416045621443016776009490283724782601227901630048398841090333968035905510506090594928582586181681653277572038375664814357026148304593108968160812456139865650359654564757774695271477325632453488379931295788324521479320364112940531127098606545483982564495939251166422336989690221496304490803642648726494264915235540025467208255240197934637310939588527259161277703885811533172800076237243825035138992842622243004059550280449391723711989470562130736519644104633219639517605971680335557749450729337745167682543934438427802513306569618209676433040046018224181135291939996632536968493130873210342127752052183132996061747849608434541133659836407195544842079354337252411981065863179966706114985018926537593019047787544155028724286398975922948574311913491325857183376155792041601421873513059589331112534326170625451157574515890630383509784253831668428825728360916342642337781308912019834170061560320771723632359126707960716009605263699700574293051041688730586793488108013731007631499116632187762929840467109106293391647688134617748657160553685873220357255551803217255665599718404016083943828094284046337920320710817264878931779452646773428472856463782505002960377551352861378199976363931808686280631569823955467194531565558764289775893150086438851745761959457674908634823639260963389032165244536106080100795031863927836882187586139828015215194264858361642839932875498392391702109286848385938965265973349330925956522873534962948416296450223564356261745603232935637111499810124649216256532123379368305263811518539971688140152778480368209689314134330987188213153884186964428137477979169714944150844638916621750717457072456189155364592519253009290669773649376114565298121441775842348045972799263240447785246331885677431307496369567620730017620484238537703487941268893202964746868305788278846501131985767501864744473022722541935262045348254181994336644158128295876264676211152592666589964891478464844111480667795073480935897608470968090518474322941971647704597028816269297993538960376761758515510544536332070626709251594547545928082399299192980195784562478438257720310712544740102705267563127213170132103449910281192008707526364821193414251062327457509341848678925823735633769579955599089881112420258931620494601474778559310889037892413442147282922077601524880115805504913341802251783826391754306335565326546785939992554671236254454470817821176163521976316984798859035152402227751831519011382176204745484515795878470278508168042606621926021390207960306101638691511688734808239793743901533036850479346112321391859274807615308501438653831252029553194338508119215507042884991786218295261515971093836815364203115458702308300373950096378141640318619325110671122121240656005340105385162246596993823199063811627075974626491770010492797113802661557892516277921282686934165137753711775016029430142205484339542525508354012134375461939818635943975399577331569485693676383700429323454617776927371395064088272710866503650020179179766134986341425085595033651206867557493823651550670986345920120827390009511012875655190515514842405180456515907620674450413805415049943010101304411345697035367872063478594743743873816300784976308628429560122939169005751432472821419085122455269249106638835360831088804610544143660378867493292412608027961291305568618376969064881933417080110148691734954166372462455357910786835385057754160485042650055501612732612136274973699235223290718402757352040344193130033641650559504218478676979825598399810466705065480776727420014618484183703201270080689705264725000922676182301719143946550457428342155697169232536115815394828754283378428272145623321464586234974939823894953019436180167254264396559876222147586562969309009583045884413167085568273336383248428659474806976734627153952934964250538436087188130677025716391562271479010985866351948872124080312401273279570056394533916972164374267006121403855395376125008565016699139048111611678979930924503474488905496482899227282324976554118883206898974785775535128665473064978484137824767201598667064204403249818200907431032194327622365541726806302999111407168363752178043854683735326684737185358856768074944082067193126718184141459402274807596730387556286179132208823033017437719397528553278143001442096237867490859396723928188537435440480331978496145316580802012278467950563003414514566925960148771357483049072014914695048449373083929261462651019424289733068108987799070885846244996328809993912704031061511884971714842262853766544853263246195830845589216288352823257045901955604191584814116262766328547222121533516428205992286425445057591277415736269319210467512128177444046420754344707566072042693298257896663586143367689169611649888460850890464564241131195865323295944161384561981865004346008065219743632893457473796275012573398808376977471522423936399669342123446187328019627176671476612912620224762290004197267047273619046057156320337638193700075151210331129525099489241507352140054557991817286362355533653112222375999114781622333015690020048581697277749675936506620899465692236454081471604989092720141468556253836357607435444999661057289942371728403851949277636669962398417620236166086398793725517149770864351194404242217677726312267918543635057439334936853272575830771611727638286029802453454616992423327549686454769044169208970771531182704539999137845752603069278952462920094873035484517328648656804618396847902015776694725368431525503992906669423878526221672802745393592254949428671072302059888688581504115703231712934051920066846269989727148785675201167845458886368581820699398924833564974747521335035475475605693130879481157671716297804634141454937323329196771364335350121326407325636152249886920235822271057004441472761349328775129985527301579865529836096390563299321085675257433623429540081923872087647072083748688944938929408329592133869438977107445739237865388298954855352566764961140824753439863679633950284945216102246227302351481244511052188891375796867199771649382670491831837164859827353403816647433107092802501718752387667479867142972307968491316354011604138245945196508415566808972940610542780614725674344924505321505437971234990697970532770734402428083449526681987375658705434427573994219727866227100784036453065501851927915332570964006408709426211516531731530812577167982050689333702081627469433301067798851765282686815888930213751055692046724380072893067294258146131749060056069655028575269435890177674480845791396133233493572079321389881785147472788308163268584982051219942998436792375875437995357113291635453178626450958476605303892580251467051258621031965995951183020879084137953872920442067991399832470879726384398968284073241047603081521237012049168501361384962530710997064594114934795727471434193332203668624897744205899268550270422028359412742259477977389029935756308544190454016076377919112098212872396613948217175466122725050193247033314297619519882148828770919912492718339841045781795836601887403013050079059821053276883517530986723178882856452262333176596597171191936415814293804865489630180276320680740721306486511013810773284035775436487471814017019616817038688623705059247094771030453684744159487743328449187521440442691632438660757016011281023711946795292187474275920359574575609443064518114116852753708148495809462192599368540315490580142838960519119698396246814395256143443536012240260289165709451051367803101362891360142857650660799227304944426426300369216173292659291546437485137837542839292015085684780056501392447764118107072967985576960701461503956003031292986775188296896324633168613040760299964539585818183853475249068688165030374950024337116204564992728924920584507339529428520056379244528356708364227600898257935374416124406844823303600320076042526069377927766158243695204735412055516637494678778813395710351512443786701164399431569286149726776140194557144676277547991175642272429222479479459584821365005167101152323379452086623128928147881601667145975214105527738163277097120926793991360412153997777225964452240009495589646895303583577303568381219667995057506022771288985938502673000022581684596280688474813618094559773052765668488030352624415512494082756201720318284575634593171207658488062889429690748100532765844635155380018530535327823003020780096018928798211055089046035181896070321726902865542422655615992207510357430861446427606986662843834763917463158246637759522347707587126237598378740955071015110831345193953041746956890062243082264745147791299550103376960059013772201102841733668663161489004273809996810659595176425475036003718669361686610426294123332444883658778643775465413717927976536808319060748984245800151262202867432615058523795821818310894497770310045994574642623377840838452567825144665431700355152357405768750125034070270491686001425177665220313319922346476739635173261017778551084369553035789084026277179890742044499581471839103266149682377031152591359217058071229922190064483746652771101865142752072923259528909804561687360010764858151284904488678557481938237251856751229791551848888043860760048258513633775973038514992413645861122379027526858033199505713667926997697380636740324338953583395121513351460140880717665561460108888171754817719622139921245062213235952876672559021267061061781853415166597212026592140659919291360720535501408053999047293105047128220427687778659592485114731355922068446773511768724710363591705281498331221834788776647968881989006804893641706994939780847586425929329654019679445790720807516048204836598865971921479840426426101243440501600178141003322470963509733846312049097797442450613032226372367546265722182591232748488565330155507666674815351827541620315816612890466480615690022932979062426686175438483916169710111405833564183698970495213400892350514017966526920505471009308429489431641924841276293415957270593345691801977077896374172717028516019128059348933147927954462876147308652164754950915470807325478479974726953693001395697207675064779209804620848728289391532959437368271752575438023682215080076028546264494697669931167118422218215737867048442514060394737027427177148205738393186890887984117656579225723992173705293606708382638999250234859916555040339942645362665158017720505090742256982039851595058914156797536277201125318601859920726888363208144756424097109346133013464369704009389432081546138791785456999736583808716029464424776478327558147160897760006871452856076521759379589495645172083888549760187164472424084392714400778924149723591659366407293148354884945317976658857936953651377087125952775271523192000039081028612069207140273139119541256072704087671579392776667343726694419406349299461770979840815840193998209118502346221542040675051565534638523677066385890960143828269570631355966302399882196590613413554329392973645573333496369679828286685700105463061301093670806786092325325841774076494620612094220166878150677238364600343043749368338236600269684443303229647245560999594998482713058396014792030465542825979752871548611071624376405920766052448999511437047719282812213959405220014814087146803450900782310175581663056811669140473023280533257700494036699983226266846317039780384414578800960952145232383480095184479345693023218921068062903324286320654648611746525083702268939835985003499980611956791139105431539737340258799248172118577805503607304674268406373403965311267000589535544862160724741110861814826004683455399061505885108355284752023344533117881890507880832501804616634445467347712338352511720511375804176506997880270973889883384882118474762298493456267464198965564126833980222220008761740416459215185185189431660446550777201788394333033702220645588443239227930901968239723888484310645347215856407814408792844118107574101731326437827329454270093485968555067770000975815022880793103882483422621528578528683813823795933065861788395918064008778631967582347277162385561028718898274380391777527488847982670402626701661792817260047188929746156086415427596070288409672531650006973895300493846061951375604252324871095372131248703398676023618066257144140501505769804713498334833346830537567252016344055191053531955190143914708483369323755958395562975626090050660602145776581570703164188175043544126349970964397627898993578748585557418466061398063074067438685152430168401422642977043137277334356179473330991756375306330813300253576272831315593376829992371730188514980211760340414171850772516281718717394796827009201054865715840849758926704822222960045542536267281606709584131580355671274907515526156540351570018089406446627164570883975448691527230301764202788958058286376635514322465594011755417240637272344544089935027229757875586290231289732199956107705172139173555545545959741521431640998496295852068029882474221924908500134487293454635718877752157291680253419548430991893441417396752153136467060382424318272242189516586094159340289127153886482081841237617012823055569186482203396472270840241534543588231527712783722437819161586308023374110022269834260700869861938069500379423791370305439921372667146290840968847282263959559861888360095225272683856541927558173702456086426655644958068787289736008227444202724525216962163076485119555659905476773576239320743898154458185058684251917901573713402256169409276385026193861690663964729424824218007883759072206200939033463006540103305131516583444425819592410070496275945589836940750820267746988639358683690338839053346209721305477383078189620509940336343304804325014468154545510122634497212432131111239651982721787355552634212847231667774936671671951867005795298130344769107649255102761965303367896776660821369770424167773557967166791892409257933670367547023001077307797885741383309703616183793818769992761395121204574522373362676034116569051385863075354626306254061207208662673928707695179408356958966406899355534467440144975555601107838942094875101119040496741962442627964267039291499990890622238035200246926052230395606385755932129505176740178432730168928015617259470644100077621644571575573151563789516384197384089529448731546285434013874577108517539969797096859587921512343300655155610459978351952728861741840093942440295953726845784519370666620160001060594567128227484107466953797654735336840318724535982043850899863049902029666730658893028977068414302960678235424289860602225276647459400611144703890786173170652219263044208653409088322379426216601008464389114133821768134214341678385506089622404959495163253185494120162104416913597470034261088522228781132569623629281931572359651042026321609987317096377473482753736424717042197417386699728972191994960662393437516799211702252736224537530873428934403537035021411861407200956825124592019410133127425792542760700333350633976101880906807673050937243106999019352127325294229855526055601432517523856425226199261140669726865346455119347778882812734220753408540200975602170970522214610588031440536911105058550467697105532691133181793459640105005128160903036828051112913398492016980340369875836120416383330104302071115709891938398278114313865426614665071547999723949494813299971873977733789827562849604179551051943792536625493816463461979921684801599971259131552677057494253064157658650187691243298038084241247806868059655987988996616520976339172433588441278655019305170450198751238342476875455196036525286513490204189898939663812671712874050847600995140938954192993052162178531596178145694717707769332736916248086584010196150715070018062337705720096762659361853372049418893249651627367992700956561033497851444880232298863791981651567843782983882400079340891032038472587941604563157057206454108225323615281506599401984103589234565117612769477254558906806339502998050543213900911215446092585588945593431297079285248367536309699693125127341608860499885727711283380158443248242987227115952648118873687292342415306936556297613318583177335904018457224010789391111636442224152541532611535165845791047114113821351823607560164822374117219579926608450656903819210529250404652380151517686053581037060410871197084012517807997262515023297838727296310295358680387050589230863965633173537386855175481345097355201686789480788923839901914302786062659291998251145744695206923566472989238131279943959379854263722155100994942794689907077059395460235346332534706590649781178652287377173275555239787829924215780758629685318210184814451612511276401628564536151375206927035509583667060966015630105331727189191500090668095462456205705711481605857581734223244392424559890397095825352030026100374195255176176572125164610259101535970097499432736897770716440614202257810632732353090391490347133014266819095041477690537046001488618917326362355528315639647150536462886596407979566586850360914239139916242090385234632039826586546777597648703890896349161063767105966843842965039902071722733633791653077458873731182200423469245203190840948991980099683531417148122714250614588937534721127815705707674307491277760378644618140573651559798469744404366187284652824498833264330132440326083106515658456122925203402837380094337951656918999353945823540247211357067439078802318292698345991323673489072710988968105249161180295631382539481909724101681357289887774366696369549436116046448566301033481754236347419743675933157269637408434905686061631795371867274620397925808605911330572101441309305039125472211783474036771825227062411420618191811696679534054007539061757582748608985587651845791592122555753938250635267967829272185074371250953989201985216472497525179323446114658277692234342974263461081266934875606586813214238326215881351039987780555119003837740118963428231682189267783624822040307895529136531906310911858977745694173150641885046979118712293715418905445873378866858249806083337738205336306681674447767014407621201453659209077238890759942673148486235020672302661263014395443983338554979167062565734680227703886827728277907603462713422657113364323604476239732079582136754576374343260030707725980968231576803447787383400362965993880982575249382798339248158581243613902161629513777086511876284970126519884907781954988633951957678149944124807968314378923062893660685250265975021622398048195131244847411634423587753584796220421036788620810199200575665557971020158490508614594928513954387926934069878768090645775378510830939590341544247530542471838516511651418598744305975578359529602862099229646147361101602789434978166450677992566317676534116951562660670066773177200400503432344969919641525557490426867391456729420813015758924383673813192005023694288691731370704514842450709632770378597070453251989139790257702912437514935960177870731713484982795966699728677241274830080019926944642740135936233958251782202237666474905370038187919734261447685366609778129968296292633472067692763376131806602620874336424054683342320231285499177709071224930079645992428872573974577077503293700545450468625051505708083111565182932930822998620879832692011974157236023573563024019036407505372170184749819650973130649916062788412051435631451638355752963302992875558130938637531256006664249203732649408117543321672351301365431973103737711492999021603406365024823220725586226927018720010543447752444620428461301866508759445146918045752166289832780925366402157563844634606558309842286986840538225664317527758570533330165712187888330024955052015893890225382102457001295804481303471806966923000095082421071455229579955929629482869371705901895267578328111871345781239993485990331997631057937654294213122302385255012243238177256846637827558333220472845163883953595150155246108673164736800836781965996869382364740274774950927907215931045980144437835429533425656331069932149304558192044810219420809292254064888524771698993734990136288237723798168225616449009833219901980859987700239476796205366593786801472708259746336998491727965575439017977482608955021635855644797435168395564647517944491626060819494983776755094352671358203533776179538813505159652644027976865693359899223442784759362082364097641953824638212616231210383211169514036230217694200474069263336672272002835148160266254845259642699569410891965502989196406693927934074623845379417000614196078125959944585313492257777002380903900592183262431305785198484315711132873953762162297442920248486317739171668409723498855911068956924731714632431947664495285115741918281480447912388561437614674473092599551611401198904388818876185143066227479885944605430416723771442623590724271276173613309439024630155367070411265404409808355154732460898737013991734199909016935848805432916398372841659490393471423033341335129985265660838999455685050269810792714250625076228406957917439790370154975253132453752659962991631791642398647455070495045433189392036445684336986126405921518104666314409938551205405089761817996721977009785451319533537819312081329644612958647752985605326611872858784799095971998864088418567198553011014351318785793037271390126193312213655157999607665660396585971598595447860999527887759850347528776121227841504048932596715071459492723115529445701577992132702523423013013058850372194754026549851344947131942494263456887639359000656059352164578423319321471092165307905671559544526629930029259618583487753571057816616330705933635590860990485624342657307077687335320782570706880884753887181688211733954491934813228972925058736301026490631335767273147447541162845571651861425489689050901464721625200624599089383855162168880190661082147746207858467372474074505294007973150658970985663013149304334307897762718718851827373801214407169135339292268943466913313031400188429951302114793926966213045118287791678535310822862811047202549781557333755682929673675134600947114835138587400943621190431433372805794215970203574395032607475755129642796710760056446232512090349374228249840149273014951285989723306940969108340429818607169834423164869807404331001854266999943849958652177301551667462055242226415416743992487011587082298349816680586662275270802433339441750071853409428380184575513931793396627099179277273643713999390579027167270914488342550496715221443995497984101373667700168933408046567410711681622941227170024920153971481415188092225646688349714242541984857878871757623065325507730011691516857970543693900805653922486926091710867019710125684682634588209520056501674005294930554584441124974856137795576253328005811569076533794950383380410578799972145717777662844056149630624975269527898553555299131787970340968861800092116001140154127578334116427631721101169696380419066740885098265290778226033361715287498775928474268415381778659050415108457184086747432213877123180586654661681624804080084981407718378173506512311395105168211687928988110770850530539383001140069232077636891726509362502620997979510462579924867814631149680886737863948136989070646935910815661580356005769866845355437128828387470925981336502333482657964470949651800663471272450268146166582352478066243261026664028718496087013882901370803311073405418452119323033540719513929065356905562658517259511496248253469131134490245537177513303125873760910774182881934416128770042543449880238164516767928421700740568799359962581298440260172212401447365962038277306920857931436524719000779534689311278310943867062501411792598686913963190750407167610583814418754214089281438127172755790334542028145214113794845928063977781821635810239383506793333528489477833881893060544298574375539854042481786966921650175586458481418726160614687269315565692496518475723488894114113228248948472710916454340777438306983033972690691320110342715568763406009084773239694336623183729758469128145487264021188322230189765240151675847399680427465861061247049381344764260630236419047958746561417774407131192431991603560161436292710415016666429214902146818655915783824338426191599459039837664985829986878651825861023176191285393657333802978199410920585469435847054378965248774679542743022181365005581553953730963249698398406034364058159774109081139681707645849338091899818006997841162592803137821995582937167540139249595496666251968713223305274511093614619917141105382742246886818616619515257835087562275267011890032712517775198422927394792918822364629597921144407852849551761275610440708546620661045459882140183559246268573437141836990867982580331036470516164332758593319325922202367694881166923099628484973932453217288654833382741671508263240628286979404408876129044021521173699721139489542236205598688043897053228537872257345176419053059917394606405517544315080099628183868790109312474136624659550018629847944885555208192076477677957028970190859639749426173046673862120790582252395424076715650218206824761009675698224844836006230762260508296690328097120614816847594582459889839449628253594206886608567223596308481088037514950983146550866160675611140981175000009295800724540071393766560124039408673061255398483098781266640062741925274541133391327955806308394443392583955725365178273082130850718280544591866380082142758196318353713403839947555320013513399350115980959728709177905532845580747952765089344732685087447449700187320447640397176572559850574290662797926774407432064027950570286019709346887860670690404183611364955639373435104963374455278394978830483198009210429027777394726030013530962394435027775765377512653776043562360403469374167242196958061056903147105831158562600135402030989792896747428589156864860796659820543645598463202108976579659477525485411254020590913986489113667347473506070913327986287505098812169196064232357573274862346887539243259161803424242668215483644031888093703510135955658547892626136278522617537425466115875356787879795436977326467095567986087656645545199513391743286122965040938224943451652794816785870062847985437636898623649739807239091938869629593128575714704125554456114672659950053346610679671937473459307889770023122164057649098452449072858927669273432179998580545905474317640248589247507190928657603893251244454392919622908604450907766552162992718093964449871436672687326835195462256183087066307120403328313485426237573883916817428730486977450665390771164523698190897109014293927171713705156515609858355852419450579825992559014820684518411355795825309803339463057814487785883934340946267820641114555884046959672537006316616306057051378565028706745549894651593559638935134636737070400949212029343110171669891319002301040851503472161025409280310195042182364672699260845900280536062438029934250396497288218218461882492813467052670955623492305442115325089925663031992207562465961114987202758874404040728440834964421154023743058536374703995508396490466358636648789893001942302967121641091534990871105968911124944903547659707321692532610077415810726080099056667029350126069384661460382942636932895423867746725663622964866162075772934612689189657573383605209652849405893252670320017883439132784631549161437007905982598927552459884175729165914503442070050233224809355788129167087620100368806234121592549428078112196368723075658567891259821339435227111091979175238330720397690715693068909112667536512441569156506859967044432817053771012916407543381158376342476660928738615601186761276613135255120091239151737142546858472685647340897676520273358506552203929430465213000403792190346280276331191421968365035280151750438189989702567271514764728157929191460451300625501719983017453695382482488859525850960957413199230150765503354354549068010336020158211580420010721665775747108747292422202214547470776722867262950196201736162886901280281273660346240594531682075414648244518235222156186190625290245487504162421006293229722573180218656666014280044968391726684610727810218866029395383271994945569006895903612384191399745043026801267288734859094603273495283180515274760909316735004934209192842375248566888056782731355900159968692316491930217104651064259620258463409652302822696251751695795964629033398992449573603612046183892848239370221040437575264335000611788344097475172257151131840943135057879938496638944979477622175339121616144840783504067298645667676898073053313525857006079683059007187456597521748046194524549511276474120037084057897638713089406908302135352335537068916180575248272786787479438783758706179429002613745112654264935256377849307276741406732242885015620661289799717265099945177975324988518268853463082357067611283231116253283344304301643220136924992908132949624007180907701547404822428888126809497227388396101036920641721143411450425260371350865354251482627314504871225500199994833420430970255460498360595311723866249521941851906965393939644936591270298132541020084146760281221606989181674040304389473519363690094793231020099387051338066409963265780625991822244137841594700690265952898465171017158687045623506891977252189048345093855831721713672062221835239366022095605249191902634894188458404543307231924582123099655008209517540794891544666146726892513502443493857713718692588361641466742034911458443589607825569133448870343302488534988642219932506744946994489757411291306836151894961916953438484568125497798162116536787116246407953822614142251042732362874376277145235549376307637767168343984099648581167216564347948081465261529284243763561508352884040940924518456978363541357204959532270622785172608132185878180947663125445087468666507485148702242770488869911522961426247137800800090883451163628003891577379544878688304521902059407188370772025482869156231337555755164141110555920807835253469442618021585197728247195241886350695399388543568179754599942175352563356478720516313939966791482274348985749493651555692225514880887645084383356526397751936128302669961865984267041722651357504827109746161849394011780177442281356715377569004153271482492480384460558983199089302374690978630010182699284305236162372048426458770275725001629744996557627926478200236627361056348994177259789486157854086115577627264312627313019341746796543807821917827955925312621376819897902799217332435855134992189080815696116260649802677035369611904779325625486863764168777676056903624446345109047143951840413696923238951108796598129429959103186106679953111244161278286122857424266165667719702533071244354821228909000275325380399848323547959042039955075571680317980194041193879948706796384055037368815692428573488192116076335756332235665231757394521555835419679069285816193519171927093855959060625543410225625441079776053657599743215215715004052103903670333062111392973697468811879041719085910455758744304863923125402800719175434757333359637322045309034788017682762668343880483569193298398251543016533749420592685673040012150027189519577439765623233760201435551165651120534576062530540346092362320183923078167981318308697532573501262177088774244738821035206011734527242220952800799112539410392629292006914296664308211932094398519635816915002357243741210200196266408990382055498333865179194163492396152778930851626147934527916708473017065206758332487002700275346747839766318485616642446694308967018344060536184971924740858413416209186142399821353469299272844188372174946501355796798700048996798956382098842398682994676623573714858845173716309226829628733622509855300562887873264479178491997925482163136273614625176445971735603111456641947849397433184175764726821469126440357823269769861638536835310463758929063731678029784828177661703616580540476803544219991660649386243553981863046915586564950999361965383003903673814327013720177793646633047703519390905466672366223380821117898786451819779034202462381921439988186842841052109935551780850373517582425339840828989468352491062036799426155564317241078783454836594947185346541364341517689564831369140159639603640195153192364066122411217289155582592401993471945201299988303067720640993029864190517665704267793386085300593047940839533354801377621395914822133609487916688226151431530885152144031769205640156533673612613957244834555647958429246843446780848964954525456594175235127978419224328077276849271069286707802599762573945470356284525015701144200291923449261221483411174650147270577061184349032861241920952909427894469535693177484077395150357807633258534793090997674581851908473532962754999916745362920386874167793722100397331842283656579554786724156984549217962683751216911387579831033281094926653311533757171867604000797343477343858388872596139059680698034027770920700581830514696558448141846916164917268597722885506026467099847511687431625821127188289871452588308221867551126427550353469089750664077925566393530852321845504132074619569371899568822096696891715595290798615228335286172566323587375683167906429216442856114342744582037256480044227768769078663920888891817312483085500816316001129977181803973157943367633941760637625923179617375390256602956071573383772946836071492379713182529195319397281436984745536397894938783828482756706985627853468822799844789918280621016764773758258735553725916561151764172179018731410853458926711170389699222839583578104029345755292221353432565285668320446460032416453338923696844302384282131909011998488551597474490816973792493720083544968839486237804749158366496943420366230689639925781384894836036346125670093776153388488486510445305015544704707338728877211077407621745349713094877323743175455622951459695064919718604606386655621477145929433156407274918174966933913006570666000608388391763569258510198515549578715310795975967729212841539501005314096502269582889047788445826785959167768041746537337991830461237620569779252427831103432539031271354933483713195335537304311183496533766233841194174751037740399617964912221260226359540187803568542941474430444751603888966087267008186095397829903849120398497127069193451136667732979002784298568205297750182824962266288361182302732231920131834278347887353842142712387305363926069724009267426095855843556959397646286781240087743796114120746429416225827431689813999076662053050960513097136184472502804591623921137496649213297819532359018475626056340762822859937146228202691770022608430846037025681790459643733459459417562591736077424807950746664377872288709003728194069379738702269813172307657314812189013647843554237538558136140330479210842138905314857608362177536887102583240116835951606131977049362609392004252027708510575447812071420104839406949771851642464906312436373704268678405472946163307201915754457939797835950148385089879416049671578336044964445547009503192220882420556296661199348981704685113735492125744100965245996287683724141132953224686744918624521886491497029800331190507873259017592617539368584917818690740687344506418501124516093888722402146716919939974903176493507125177611746432423760787073584370819023004381682831586687793573003798740997163897762868045742374319587005356954469981584019519435781031695198359656848647891353833902753697411747505309874149053515711141231407266838015554993474192958064765494515515188435316982084443087038308724185648114034143837545295269936443007184643825924102054225675336575604165172189340539107671537442759459751781130411909560959775309873051307362401937906271567440519311361812196666837732398114854965743695156145941898900862344594078479450679357409046935008356571771197143451675713564947899359622183401446180001048468580301809704892873863156022546767561687185468667915152161231187811642041476627939088743004812458615466065462142856640797643943123010602014834326595638965768611195999582654380617920078386009618657031608299360450182672408489177323738959617997864822073995035947446615656717849056824666447682311426431147204066546868836067931663599827302134754075263704092230510056290994269299092810006188257327887970741517897567979101490344003812267875243765701413832639753428694702455809482881318788006094497418591253337098542502089015764124827524703482675287216354191110188684105415927225961808073584301366145324839396990269505210868213515573229169016432358334208338770303927648356398620700879446328163376131581234965702520804892756607744673214651596836688098081984541627853839175917416799396730149728000940055236394620052519866332566373975656067146920492881279894184817935383023764834250703740958710092022660922857447082006735387641338753623368735587563251238671599423014068000038642364238509884875783792777464854491718392794213546984985330444351396148143257041237864659562146425744223868454977133115265789320373952031580633241375247643685413110711141815942536670438237372050764124803764092359269630884858166135989223075352818442680922593603477809339151181206648913290147322137967167010623330141343484824647148905785896811508895536380047779036647303440012629100498604920828785396181726516970761527442765667720219563241701749732545697572481624041647030126776635840927399236579000674569236245371578360863878389829075505101172646436115833529390724647142779016284693993929348628655077271556568018743508312579315578257977974223170807943530240947755426097105014836288633215322119172389845973239726545936313498846276842845006018485694302646617494874779221845448379616087571670646259567302013133830723336162595147515627527266222144108781813700788179664340604334711773497553653664926543840935569406591082207032606914656207184756253754684665688709101170231062407806433919697764423424171347422327046531398711833408979302448399945152126353181691195841364436219044429844596378750186141075667044544434049878117678901134442659257125365260185897490934994296989328267147251911925909599935110247380155895131962545840460877121698493308259780721845257315470635005087987302102180449098206537224611878610919377802836340671242066217655450405851069159633085250148683057109425934691497437036294717259758947355867164427435606690087220291240911311976070384895826949746766016149472849925301617958071624601078145617068209306103348718823331599400144199820841961548112663211175298240282332396885781964651016494791986473297315562948548796872132742885102787398576901447107990095526854704214313762395754674590076175041484143506027896668396336029643222616536593026020557847414447200911253990868065391073512621102944321492237786370705482580857385479290625011648877407681959788688916226944121056845243839949785783259451828570374244175674374716775367463957844110919221430067821522423775637529664516940436934355616202992602932917986060733353525166801692888810453501850080740387300717767130717197096940960120787512891738726537441121321684315394941865127124841863603030744645502942755168518622123678798427424178523182399982222966288180006922650494208400030359421220275866500408444924147772032878287110998637747504155171455274726706605280189375859876993222221238629218014283555167794436117724496833705701681088994628736594571661605023294614279266854134243741016407605514648837525195340796660373283634001519995000469332916317570585534193324418097417392465388717143214602590417826490085086001140364935968468337512937136243611303768574700238917041261307644347935430014637242865980099176496351461766805671205197544244737479460797379777427477296915117729920216857366472658495507870361489275818332882131704451973574206527619357337100384082094145127139099532124132596148377381852023647908745481978602961904975224342516258523694091723325989707869301135303371748791233473869324510044050935754368202168550416847318197118545431630739684727704664031389993636663320303009850475442918527705030483597366336801289142385483560720905207425462448612077162482215466525699620220879525415106215413487998232055841137524334907119330302775207691437711816653031410931164519326674890590331433681180307704254144343882002321090406483093947048513408163689637552341839810040518288268533080266722917529111228140011187298003531610425456365814135457750772034095097544967278951338928940943582709935392524048540747016002851612090767533793528174559486374497201307604394525017234837451035086737872099388460383717486455059998587343980690328187966155176124534210043686230649864541124431118227871536042342976956265986781814649729567722302328409762291406088773936009441534055722887821713284263743820037301660716503717433630417904397239794078016118811084890608917427810862877300702247968652670633188918526756954715389193127405430978727607952517077924922994116136448720735441794421278832719678919066157226726470929129240340974633695071617767624715169964260138787817977081602786436510693220936478992754567040426191507748115185795031377475362086981689644192605307569519491079376151088953944993254683022586592724225169411138292292938465578055432958436147722472279996781279490585502956498348841154046255222492652906058505152770659442344200645925766877113424471267812607845180673399371568867465998853231525404651957121115842688905277417503618284645116285634640892510724909630448470742850130471479557019149176393623938612767491314535012258021295636072893722148064070779957842503315281157666245669457944045585187947380564169507953714868401575516077485818705772390935955505822643913546695527740092480103725778030397468811540196170941372411904762405838574791646396177722207241826423620703904868858291128912314073737541969071862097595534682607740533007118313152781813901000889776063963350827321283080079708318377789207830112404479652695909230746787370969889257017936596213576023339526668043518847303270969246687529456234753628485941303424712256305673466119658659050198092312282407229095462860925392178203079027986398197082296512843791310517736010545133942535246023271285419723861284646425508040832048738700818762106979686227756490867292335939228744768979706181278128527262199135823873663255869510745950724053394167072943370592773253545218668773477042869960759492400271675881852698722987873500647340654582872036339210255595882353826133419845765843710157668939661186439758642858663333132069016734916002708114951550851983150110448818944523558944677364582337664002568078426239062165592269979665475636254509377330926421631047454980410599019726762741216075747989601875762400836770010793384674019887223106932861510450792547407600273160185196942553107798808861573154477590509047241214188595188987267974266510725646224427890768303493484648507198307859834814162014098140285526463180592158648462921520346198949314808416896300873239357027722882234738587326867728647728382988601974940503949608002798174829373044688408513722160099201426483732737403466335658075881599326374927797143447074862700189339041716026509717011314128539895982511551675390258354565847145470347044321846120591280406405684888065848482092438005277103708961460973518763398356934426154671933056485160872776966978125172609023812073962088750561923026261943237634408459971542630908227395177299627773353501219996942971317884383677487098885837269919160647508691366060360128861828233686736319527172258305170768552285894504340220770847976816883268215423572610042431940861259975627988827532469406618670053614350523819713309151848367941097361578931405403555813263892242308053007653911016003774886517661434214117919585781231389978324348411310136468489261331023795486195284526936129505293248684103459147786979525849741472509691947126441030755603598759281222169526197353001703458313182597861527468602070381985042606528769558888419566844617292747013460381373324137986407287271879115810390901169671341118958000764420919975328041121147638404976078015803695238872403741489630352819637101747062181862545659153733724674427145201520125294816673247154909770747565688681067161164359860849101597815492581032235264188855967206576225771863658922064026503782251374594559763682332596276303514543419916509876802123451948769773365416168617777785776314592074631557894504215862974792523963795189044400513643258009496649052462188363759085794536126119222923221928216863819553469213566720400632134937900509121978626472772973096357405420013702346352031413387806231449292841715734650508549140045677356745693718760398408365609235496920386642922931820431775526329828230455123247554830706919937333131104200093116607981626744115045184327500021776682499781831308873791877025629259125408843557356349008012696541853561498447824007792096800429811469336675878236046618148106970884821674087940972303946861314591759687384354130143845928860239107476550331447419388391876065319034494126019050560836989535936292229351038783104046127267680371469266568696114949778167811610292085800846609598032913653933699709674606816903495058619744269718063020817325203974810250654534198773116162970124556973877102319767171954206495070945826026882836908522217855495200843606233199145091667791801609358949045281843294039814251216401411821147065272481472390388977375777569804110217862594033465557780250127615784443598130268362951820295506086195256444339456332990729712441251896547371791328897655305061802538861079546625547439322081702046524472021579561156779521187242990449737444677055349058952789304282765688140699728987429453889559264290127835236560067315499415495821658661984081658490277777991102979990267038790158989764618137850448039334385569183314842683348912317962680147318830244700439052997662313226864881539387195773548732566192950642658306644110151400608217003404035431820403199718045047901564267733258594679487254715132880965238039906673718437456879537758177399341659349505944960525244398761850206564671895893662454325126007571945299810165308578116985947230893183165201716565375585441855988807642752416055195920152336514711619732892682662085202331445862355464630175333498472884449234501568123389187581367271329813493845983808122440957386560722413323487956197705836674249137697592620571619663513601722569325659518351155386556479313291162181489267976515064008809972795123814461943475056598987390540411697594169214527481051104854657703632479132053741962044724148104146154080092622519139468983603282448535137097862535175295108352009297969536933589929183542409032683000756430596701098533539382371469458713380317141214460419911425439329668947509154474942592951402655184618360374990278656051138778177486380299837552085868524071476207124040518449374442847911803197001734227113742047617541887290954186475718047630028748737705145009002811175859556523489295308041322410720623851484184627931724468360769106593914837582249939206302819800468307585667338717677978266613147511869178898310469589212478897403229963652873825031592581751328320627940782721503879297224587935885479697229346751538724786744934273827791468706781726333427898368726156350961323415491906875174390615007734586391622852465726087303689439775628004844194510491064817691539946545386872882776045519767889916789695877777167437890766477176281888469087154272243747888708673908012566445810330877849530852352911941421587744531483103213364165370614189562516160828994447022011442081109020152376872845165062950127020847039984379625559564764046861684093007108093284977115506038980409337721443609895318190797216667570067604840149971715353200061368573916449976296364788771569915353066962728991423645528620056318455012491227022638929576883157772855691491371975803390831933512289024512426955315055993881727549342443168248281661282477020659504428222313756788743702074292388630736981005538599732753065385666364699309657419763224622341214143745244534999268949196536034049274604508605749818975521427346332243562981073845791834541963034030949392268364444424205568266844893349708649467767274213626067987719658888019994701236781731869660705785150067737224421257604414722565918179511286276987951064852816083431442423408295496065240332247482261022246922034632627271467100230640079441001438704414856059478951464575383569121789665516090996277141822248199953112777771233629946945265503418199463283507542404836749910888945090492158233381933781701675585136234583040311519264195741819363057275786167161130457384431270883038032540735877730010811284906973771718259752839141480915140450138704991451475824837123492072092598150883911885081489948315836360295062159479729437473241640959016431586875351557050862162679684907369577476946989031725901273626562021999329688642245949003133470239107706645885024498183929379262724224114234027574886779611518020354322934366664852746965867135656203082366469752032641374769396191459011498789532079490920951572832769523450747320979623865447962797173338156253165055922234885580306591937170206220920873756173277576995492418437378352799284276956544895020405498444279534243281635600077330912912636989240524415632871333464796195028494225115021183754232924682673019606486476050866356892288111868275149857996757729649114232442475939950679168260561973259909108716072149669194716813785336989609911263639408917654324508538239695108253795004846379501236543446824752376723668168963146992773421859785771228117027225264090914216259395153397406990115801462000859654205437124453998759333850017059043355090285748992908526347434879224533083089388542664359640042042328123659277611440523794589378207259642133332436294396113386929170465539254749023832497741314024291411370147311541291263901437436406392289528835391410987761202594477440177766100520835965182215215231601342330241677277985106291281838824307586887161554514378848360925688227564424229549347852723225358551418389792121352092991978257709493272107053831588292714440573844951494586165881360893655689790808106569416620124608377271765634792321016485216988932591040873613967530478171095533419084808856784634422344867307232962963530258778028213618733598317930682145021273878471574264577244818387229274383072222649214940180336177406723462310659118412283738464147810239262453695012546729362045269937204438554171543887262278261763786242245840483854332831650254511920173528843209563234137922120389448036018641759933770523529447111311227583823759673604042032870740472599659295798456306724611689950043876497576191820071973196430350666300343598236401173506698626632293200212740954055389662426267482352910705844591345491813569594969912549046242175657656587400319463992161960015314479292687165964326726167291745779209742479268879331486422282330635667230675486117831307997959932928625852026083688603319304605193016926054880257833475454458573776241532407719984344931272744508247640581939123226678228514611015976473658121852373446851434126659435438998903643912152071256932752564504633070524753078616271529610637959385603052307722806211064436102156261858467526383969883611490182644609023612390303643404145317692301796472310403173578226223283130706280131295244528882333422581593867667143846878217476181705884417391759816274288906213587733606639395379694058607245398060255430833179530274103866264390167753668447151806969811397493101741206335518314064394187721857869740413630442424853891674101471650931270531625114256679073715242916101589274957003402328794806680134328316661317338659660145123824176778056907050763729514554139530209270864609956897436342633147214307940968673370235486369167578886985322097902967286310419124790270475717059750053098518946662417341402041008400906992815771799855296416267380398019445214712581735638678565548323853585089360853535779089756747147987547889778918178929317273287560819091907319752018407822453238509299786242951696839642641624964671719996408409919038021857569122509462077598342444340295783165529598579784158083434478510734477796601669977547024238588360716159381518794193271584077014084929666452789987955947423394147182944698039528850105878353119602681424039492747124415983379414709538573927488142520070801352109448141642177305978338190083398729195637851502355853574537286929653875673672139301643638519072061488937340196636753052998633511497936521072147743543050419459017280921264276988791089447754080857681891179946929046162270534095227845485276944161171755628917554222544585485495557170681246022499332512130580157036478813783755499157160106343413593112665769426073357628374682368207346836748044266374894088835325331258250456843914397065564236223081351318550983030499316127531345099203448713240743245680021712915817077038098340280163447309257595447739624702233745939834316375863849872612348992301659146320136917054508456522391835600169643763750255310605767080449811603002791524328499329025595591658534856465478426609981268877415252328842889449693506820831736013032347729734479912425677325240448851499400640163254952183530820382570568644013652855417848231445457611535829752897872636281158221583644893722153482778404096837172403560935333054126315194533408769106646612627426621435568769376923817986780715559497306056239686655424888726539287740380170493208285022888130406139247450330558522756833798065938790549668597076245776817833719962479680205793395005149256478490121491113008462424711218198091700917307361218702518299146117224433435146128162367262431646604204359074287355405360882759020737275717058159273897192822817975003896418068716701422844452752342105363402284386552796839968666998286017590246143703499170566906035657999243319941256356411596463836623904883508429767648441836336306724057304360289913762209921501322190395613529310949013199763533418225588199075373175079736236806635592673416473154231003248300879412692838065951116840698592475482666232242757075478847594952610420310050642290493317422460638930131569585526041347107643327162505764795584131957041193913119565608989603692309847332923126658083496772344253560361281781470814487424256699483731439418430421702300785220481843225113922537203688824434116955633050647852291971536827023512334534680291621720881530957809699101195341720228977975485400861007670183110255748834909183809593100634064848562032015729356869652672926690004950002963807986424211355230719372348549058403639942631831533092475399103661335797209221337465413000660947590449524716042367711985031529069468573782757579516243800264770881503570596352325565055306524489734553115534601968502030262547861366221767075220347345164386170021521904534553007448035454579923012259302869384159009983195763102625510786013477089908267012744421757878079558115603470211471381098136541883913983638520724402190892710423028506914749024764143314131179056047768950300028262827664550100971195676299766858289254439483489287728300716678727952600156397742576832388826924686310545723677796069686551889445750422081389111797398712184925032937735857153222518779635588298332956141355543335518553723562841627656698143286163244600943320001025865567798044505211589164584194022375225716811388189259274826817395974354761863347436615962218910103890565066189688396991448672556152873350063376484532139300904795980815591115139473607640326045411349999693538219025244549143107538493412944890035043029702301718670181372706556810313060364611980505755782854654727275650550447969442329065281085966880517600332689854514376535181779324069054842709088498464185684227900440984238908528634495540098571608370627217985928020803710846136991707672024563161183219859315166466779888993932125727231507178397996679124991015443972936853191040654464991225688226365865223655653965207467464730118606894838431518690143533196376912736691096147258920603881504204784104040680185509844707977392892893569591797324237677923317541637862773263971598974568186289061326977113964415158867795892758980722379671682206032972621829758214043817055028360171821910305970524772981427325192686635716100826150174371101204327164948123816759374108541789550826092921021650585995281273404832784629845091697413051817553330010634858750656576539525040712103175878135868053315526845570462066919489162745905849871312152794213305364876227084518702353347354519176212876625283659729932487894822656644978774892411549151235078946252020054080015918345428598959154949873786733041606366300028796440038733261387660203530360210090619122954952999030903989636650057699361929445231107788193549666230170272867246711210391275163410172018191775750630038895760071020059889681308314061920971995654795000284899645921716189164003014555215458665707846855483759325134666325804061168164339799246657486728497960396237130235781655908391652513976225884097435371248676124725369618507886993107076047344354777938296677209193127949769564434580967379046822734618799056212586206667555555063063719222708829219240435770460557250348202709898609199984016826678408345994255074947040461794450581437491126497656315230504491419996492546135620790133601498225594173124668924353594133372422358058012006160585603728413896178272024811562181396933599283506039706860204302253646060795792333757459140470370440144787594103964569055641466954010799010625860822553590959531219667550253798368366663220858120358885092670173832392672143186930118257018865240378927831243689409693674529208507001999176111673386455969902399042120486142319460232646224163163068719210736366981130366121140693327140170961384260039750688235851274598008217804971811714460748850161322269516283846719800933782318991556313268241093146566307621132406038724391586470709574462208653364270725791474667533055488494025959423215716131952669262560747062708325785732069939162460858442368447613706615010137921063674127632524995716728066134661254668404711876898873362226170771922987662203018536815632380685327579248908084927779811448523021250157807496796171994334655138855049255443838767770123331138773765236945519912631670302418586736536834175143307279493988346642720057535786962900571057959312090262163021964447615608883291245339917664332153161162882411518064007803733014471609755764585245829824941585170596306420878733443148085669198200201654887331169246809757716777650600487706032860631574188744166789663269328104742406636140633513761229131330808727332230061416078062084233495317302853408877075347923058726717782160974314344079223484967507164619223412043474378303694424584952424246619104505432322480995642789800292259578729378231110972846063163178313474018764557143316005982313516809489581429155610610202731660964748902672695991363192016356265063958382099357981037595637565530585904242771451417736730133661688071938981444185026087693419500836527144285370050851143811755797638484198248555913211471530524087223632964336378679727877932517463126809453252593372898978236305089831254815027564442926334306052332856838367093018439502756171171103501917137628716365284187641093877705090273320007829170362803638309029973714059424717885908564667465386208607813203643555062761085871881679387907394313940808888975775047018969043725621914844706041869559635007514695055118521066840987423531944781625544402100061861748316474170955251673594011461109723741481675610150766189615679662926190539112806829756384838790320918471607438125547249596064097886999601228418018597171949487699658427577978297858517655989555207123364803243030001100665339822592532165808221284891582733979900188441506934357333615921573989222370445829950236092708435434009732250184567561672836938268554936771248093234613573396360443371482345849876970939955308057253774559896953831150817068380145610646834148426372830785496959752262667941121665564881886108667465515790511882804584657982047344221594868013835168513653743204189929489736599009430655419948148024562172429119754357153598335741745752559810046731905148963214055952073696879646209659380475657016610676873983116594549657433471619060916260390510351777082500076675833732751072505693366696466795536060356649983861117266606466650665742265972673414224994570542728744380391974097014005437257488760314354639966086774676841570630086473311824425484211443259980034549802738411781491758349362507331137290204658068076526085275646108354538421219627104533584659800558815130785427457274785013880808596356129702860525840575523593727427054878667096588653656869575908484071434602064032749293315500825594205825744195011280452845020435627792012872037854595231920879576459040418657986546471881723483820307552654853858678490117273517161925518620922984897040461972385064787236294953679197241670206005742781616290341686142359797500986063751352844216998231514475312603222247554941255583135516379177224559994470505892857980747929378425212190566376636813353415724966185423086413383845620257307974604925829099071793077742498269780190829136389211928395521723317293108346867783122424197109660173955592768049944992144927712027088312656772300314808825703633118068975016640584027258995007249820831383117445813209972565108789306466270964279806260873419155172849090014456343982138311445142838324788571996649790996119698039163284335170164861498238208574186819400737058805889835240067698716356891188245648961768149407212484912074304845305418846131688933975201580192211699333296629656988003244018088283841789808462627896158401604885167063199563465415789883035199666157220243169322248067323819984035140974378678081900802973392084033218511121693263295948065408985129999075621254370370523815431867973866628262766241380719505909100433387896264154008818307584356439352382033425580259464887956241420700215122845196590460364021081076330583928888260265613870086410318806903188746094483668672636428881925175509780872816125925287626863068280043499901849837868117720958350799489280807715118140896551447423160429785482438711106922069738922531290013917104041160210186130510827856124306092125452609956931990323112647710474230860153761743978453941281887241187809977040156151041223845525720336242117990306990603628071433736421698006342799139267623518380720965224797658519423106282095032455587421305848048491822596990937473055165451278353829689617488806144486518425329407273368275554342618880573342950580558346304790827910662854460966157109513162678649332260524972167005767332667430809685801618585263779035231688175522857113135873640215022350375388921238693639076584983298174203250928415619524436905241626587263373736899716150502675556256901615448427280778683525642645045331225859761238355585333720803830690837003554555983856240950352621223458368391312814092116233745103373949596587091559022475274469033469890231612516644260097168191364836358499939265284772880420951032007828285046261080690175557101974061648055973735499043709950495314217612459952996145792118926618211335735561260974400151826656222816609828850691458897039844307629311277133432358349841286231085494381415049230560447883660353845683557558910940124746500899083677729546421709658663414764089395504785864027923337422533829072754380324064815780951165416768008392457985979112220300608315541934886220835710600732227783065384585447679308368724882993179655295067100892561872388600588868038984176473849558333023828648808158153366777726136085908322950705211750121693295835031661092089242823627983284846556048310561693627316687849092599459539586572435516251738943102076849108059426603555817597174566959342822603601587319433943464188854767428270796271025095019324209941598427921909870124617979236883807080904850506847895785181403227410408556485142674977208321196853247223140011567743979695794878215872136021385212016845049857856138260079755386409916708133163159017010898311332825595945745651945532812618517089613509285943029303696573155210512292339898857979454552490505486699278965323080663111019389341095907175216797949654952047127464947764478415051045746815899842420929597230959480756049897304956638556855885659957537656910007391761075489648344647409041060871205417555234624178088407272203362591435456713639504842978113909245585180999075598417336245708772013695364504351136823985495242467677610955882193906056293857614589166278085899745349111701008503694274196215611482845555974249804034869648102762472071042863100330929258905548248573958888145613978149623517936639197678228200752834269642040395450404197774326946170570696045123944006577073360528575032178040737920966876338140608932053724780876896147648731266077097655815837497289372852347210875005528490670344034182884142483709772285683682952701972666638492926826634314035160466062488842442757320556944389987085588326671930253133392490612483773122729910502804135944979787819997792913684133250006802903892558223667847058992704838878926003891420693468973606358956811150290029567336951594189043824556029899608395774162475017664920573116183867108605369134532840320435682636712370394950595937407611534292396703568405557395148707840197220168842987863044608747130790324475703367179917671521470573928349450339251083018273467282042155734790465074750473646671257896635663624536470537831378283605166018721275360008160707695358836282949204242934364281841151856956839070418742969650626459355131841702293584152618651192349688446228599002568466433813639454502930443856360323762377032250934004219851611789655426477939769563757199998101971994755146796246671006744377814189939028859187859251566049418344144590990806602108217158416941201632664983990105580520311477103699016036766841579581573659974841841967887215648339693597028545690931453407734583301141291800557959855545955439194464327421329869293150489847341759876959814186382553204070400703257796617040075999187849595113772898278009195474716103723641007930138933544733458999585717489078724539501372952071604767815544167504118503363751998250176003237427261482670538516706874694227292857389880033702601573040862797422894040470123001599823864282449590275510444688919064327959766224499171536984014930294239939177243255367318303867576140457706591599844136706756567755321785345253060582018814254548838797583820269964603426492550422728182159613005342783098381648536650801433687381469729452608767083954400276531856173155068334099335927620363717596625660334666193424158586051897476321342321306485141654716721477293468309280676540105886536558613895253856243444284554506985327374522228514631042276245359398956285975194098084486050325130301904618574672301807654353027887795287242716666483786107574328249067723946125022366818786492008905572835639868068564446834461863826426928776316017347155722086405819418706725398556585002221499357870130955162189786500156673945178348580574885637917225107744017970743092557561880866037097125184421125120574225061338634028013668152664561654119706551111237449231001760409974923349152868274473095854205698774320515687417508079625126863029006094106535778124443759612481280807687386784604508165192537936856981252408093570729138903604824616095330380678142867090422709862895169205911643717196119622633119681147847151179127988337403081795416048537426365491957968606235475203404223952652398908641752894757341616289259939863488660114736691911797455437822283221165437082453831273296995558979179793973798397355659228497753521620530632545588826193656274391432403323148961003411750120978769334713537372777224895841022833305278783448492579341889011751543007775220783125902816669660076495092341473747360966075448492861634957840916446731004559839035516176688139662673248619207376907513454051762944262688877918681119679469843219209158896735336383958249114487270522909088669685252875438939824402808843141033254773382870328743290954177645443505990356733749845984844061636715500812146519842835870272332225632653686946629080215389913843117599711960718192466919732133213265964953869231811171963513341502319366583895598063237914038052940968585124462478934994307009248407373981403268513276351997973809570786986946899981295847640795166199241089635260530790646779134176537249544105322851996501171896502585588860292266098116235881188784677941595776263382531405827477019995411213951534151006054906929731617268354652373082309078672902985157238955671553372539718464318026988104484391560966812453801931348777727527568624028389921949881730131858775025988164722897341478379138465508593308581193706110283927293490179828914993808698207301496931600668962207352523453602740901810084421264677219484727771127288347501924024435707357440331086689294581244386244551445867919464162829189881133803103327621025913847292865402970291419484721256918958760136593127577571007561675710232632119904496456861187556523154925642625062490397955921803351301454799324450250430103225573864426636262670468878322793551434455557784858572561573652439211114966827205757756983873585128281158754150909077300804910810632650470576743839506217268653340999108562145854841043980152881464016268433801668205085594344758789520494091626312634309297976057705385080091137297143114567137080642925568415195810878081139033037227134012969048404156755552373159007491356740091862760559085174468554817917567637479766996120898183887055690074623701899280804565545956710663588224162780917422402186652278940316272432403698212380062133530111290278560414122046311357420911397414576094669667159261978362225749851173851363848630656813821247147867624903049772415309755790733704924641437859183100483352923624713466615672831603127126584517142280235624209393170562269145587980427962209726017668341851815574247027825612136685323503346705849639815123031708237554228274545665395170796330970822604767483420362069943322648250264736756802112735517891069742382443998779479071939361051030652429331051231271778451288085348636633778390235055734343656449998279384482250280733567049220801526006015979998344030343015962206463486003949130567145446505572262197799837276026436260780935328192707404687218532758211380073033274842520812702919153779346801363488107731847041303061054221002832282542087418305083958769188518940297396150702287573375528316059999069191757684515787369744869879265296568870311773036805033974366051999692910717405802229701947927263452457435207844449722169849186244185463596376870896828591533936630376590806243041286049363901762743021633322581694761259830896867630484464166229314907492694732950183866974083931242206479289344213862187132808799686452418953567242874658788092197982446048510614791379154699070554519574346366439946678895973936304648874383499525972543524622163158594714870504818622096391850390925295165142441997645621316770484426630197239481230799475384401831921711133354894262609496872386169107479747589257473082489343570397107343012746394200967919923100298990584622817215162454723927679015305851275746590560857913049770461306836104248212466782846520306601164616511204294448748474933249159154232604788609410663713732749010780477507948926658154289779344060490217637041792700690978355840188707517864107846531281588892261334902967034802923120839623553100095975879838619930688325161083674056557442830368302478881738170815775761181697389694480273771459393273959483839474589468312469411644735799898070590274639326894699431378761354052253896185719360805349798107951458389815174417983213720169007131275189590310367206169672906416425356396977512033363140518839510555705596342196980155894224403177543277513091713097307538374193464473861441790086083718744333007045917312381135556688853802503672629951794477178984629133058491811117610170329996775148820882485419759982582399998124849707249821797943314004387030497934317901518510056186623355439729590945915446640778908797347968315360039327921208230552590866040981974127710058752498085692190276281900351066632437530045089555221040986713241069546881889925642079838408080569738602984461297776214262272275931712024101792628463933414255551437230182734434055815494599332356063324183219835985701286695025779762294203758598856412046922970842879844682041862816617881793525589627258237731871997008956788222549074935573823833536347800597923213373001488651323138242237165494072502819142293771169242951549422365753536206248107063751784454606423222180547239545296396764899854812015090406016557711975792384837791664821847236455440803441768991812437882569578465068431258207590929512924204733929419449047149379401412541970741004682351568357604900900746006567705239981784906200703318827170316042298485761330494499247682518277511870261557019087853853390252412630320148456057337087058863584708163393028515028499244566949690452110105756319208979341153863589123738183885474968865854397708702595233060780372947317310638038099575644478510220156244551107663336071791032099271778608081785911979526410333245942078968834229680742760879454655624957895243643671144698606236691877601641946139299575901560273504974610037614514500340496126975572421818421154370391305336969899641436700391884662312091171761924329312323724992860901680719375761191746725584572737830208714751308160311009169345016997951191331656530652906538555703086209256718729040375270683792740769075068195852531573039388134138595620598184993703533130236369431161084216334959525836872542634682777163836376116390607633576120547826953823798577063031187918729737439582664384339455812059505301184083930663443065556731423648940983380866394837059247292689475902125933874168686460474832064186568392301054846172320093345139670968504631221491491662131016852001640126988182635401688870947796439249818463650218363016866368886867064122826513804133257723900440335664873826442124934113895859410740437136556044408048211798757024664695790524974748150511062442878231680775709318184454313133027604516491394899203212983767321005396077897911985813173315406848059684760559574266388733195549772929238197590616354809715130418633659104562409137175785136617685455850199026961714828540894165085503258929488358230417605540104046908109829031769517335158561594925070876154874900866569275159285832468828851824003677925488700868594103366392882660803108505717055828946036580139742165850276589020175793391837855336937548286538027967550333427696358191613771999984042931101412232564321473985360744264103504444306883659528778529095546199012531099217029332265692100406957582883370350259462496308309957251365123652581264373010720156353079393289716228850671982736012392791288248290561963905289475612425307665678902757000090312609196870397347647006270263732151982715626396212853807236118575726418335292340674997684375148381526870481985602074231830406581171960486878760429884225149723645626204425441427970852893741573973843915300375194845582360926185078964320541656736927632724651093744508594198916694609803288673072431689619406972931819670193160842054571265115743073487753100489761956819240856663090908017356408424506567081960848244638212707304918290141730298498853900173315608378690337123377837254163156132195978547666849852721798925640917792746096442996477414570987615229368796292258358849149934955494432049553275194731845635277534054019984824673134591855442465749491669704665703667954546506906462577426486041504480136444573115370155910288953430740868826022697369054910536624747863387610633083108146065165654032373795122450215023151106698507290309987692213428726483838910494617413898745688615110518475060775031998447128761095735577728071557347150299932103770699496710370192189883074394992783729883586464033529178249316766845186928762758360487610083314889270481805967989785144462066226903618659870303205183379562662495810344699374376805837596989697220121012054441404485177969264429819809920949315115546435027735006549406284824822943035252554394661618245612304773932614115478051830896129160569838928393775859794496836058453560984690354546968976362619849371409499744435737074257720365893301429855069327189753782210796240307563757854530003253888121707550232783495772881552034407629293720091548602610915013873311534053351390975419818254786978520822540309190898744248238838976630062532925038819456468138099420172286516885667427881186595561329461155283091570099464725520541433077726267231060418198078696109047612948044153338707681599843111950282284521856670001730013288523358225799863376335518167741003061401823219357141508582464907301860035047331635934894612167136964261161212767862246849225259601845657825071700133129341139679708876956036254757477980855096996321707278258815478019737815497432125818070709998733851547568615838657459558358096672917521746087871051486600642929254682171132265799423514302863396800753049960952971285521545245879284332523204739978019512515266007091729238615214613122551527902602384786793597556050482136006724099443199858578008434910173978759033387295083916658445720296912699827198129773521655881087985010001133161680480943232093962750251836423655004910014831971127849921081480624568151289871068900459945175907987750492406236868045928092660961798166486371146985238764194458964612806799165723818953409936854708650438613946000293063447524697780445507420118243792755101759188277198478265701774235538137319222407559416347940062022409025282114356371908024431873346827458209228947673588972067177764566157001821990710193445960202927629780222075893762009883256073532879403478666347841176286268295887526676536386486083828164279621009227067469875509475595712804035542291733184204146374751942639839334669890203976374439167034728052013051073926500802805279653069297706629711480031188851014007710982956753141443310634411457437191503376967187278333763728120340772265921570484620515787088816581012784408662088333653515631275357122881369176912030763356964375866794032258472283824381740888193257434148792961113490915957454177302347920358744101709897601079386645354807994118027657089868665448006332249204766164313443896334080508468174779112513031346664201608280632159769692449729049291460893696871601640780763480695715183294168792566385652823266146752423532712447053550451708249338747725935081518438709696700239983347861730134261652309022976218541027973503331406506280875123639081052217581750792879163878240304505909491683748062063805760236320144068223634109064917344783122293661915106209770250386570015038954266275168301317275447424451588035792309602559311357320195256189213205147139439542302340395464526360777104710173421561102467626252863583462237877253459918599504222577747635002074091744985888927014036541629320088153361862996614166880060468449702740099204027437657821108304684719136046080048748357335515136935052181844555158525710714122394790906743788677937802385915445553100915979740305016604669455283712287606991428388429762289889286140872353409847384082232314273169080077855941119457197485539596507429200416899095278576666528891093200463076838140338055885205546699958838781903861959072070853728004214817790715830970570534714192194660142506059003033079532979641696904634262222466153199965210759198666091870409218587569565037306219904327831816273890178987349754646368593775178438144018465398402798439475193806562412432743133213610164999108197997823093259895410115343497048219444258304643890827155702605234817121689083677151436252996604668580374898114696341927997286180174151647028661397012119572816712922775342081998038482935630558519520416614437614376365495452278674297651679035750998624575786148967607905703011157513860615824104608084446102463519776213390940990093161996001184716327479403765269912956872992909968911782258577839065635296364542209888898135483396330487448683262463495771622914721331526836766815039612028254784907777695011220308781738609687575395281569630015999763452283930286545345175108909326453104097045678541134009812566793454766232487592905734627380615944069615605304648239175421595552743495904934349060865499782447183537531944622607172961491511703179193866209260288587373974463773640819207550193598836910640076894893244137765341943815119644293669973773033549101257447953369683621636443980977514543311322979323348301873556190688061989938835808575172924033803736933540454085589892527796700694724240734134774535148824890797972904071583000999640628997975495277486408557338372439110638055833951261807928239496873452242578094026270558486395325669337166944676290714688038021823794717534750098349722731013334996317401380766134504783300530555787383756184230286313016344759811833746489075080077714628859972172430861591995392414533319511038969528553230007874077547057250973827347217356794140701168115823662834329525804697963169029189225559036163401703325476168763588718918087666850617796305171956553180111893354983321749411341059244362372966543906045532829156841965811895864187963242062428121731755174232876050322534728202862551394787997681599615949888253496983737091377027041982056004568874771594714956579893451269872347388259303179614264337867487460592480022616619541861025780482706668468583862369671095783733216662561329880630611503441332804409180225694562584888298615176706490000507997731472457028113710422288174301690506936095274227124376800129710321732290401050927778397589418239669020811561408119018816684518363870127231570595938952239150693784846143052219595142094207132397603465940680887669686594570503377617446238926732355297224885677088809440009328191739730590128894816985241679051233985664061296463661556391238343257563314278822267846242710130674860727539349003297508647745660136527971969294369275768729421764059163428412358643145378763447085628573173932806640154173327351779514710013962870257745300579416884554323848853401285769473730985047721186142692695645771551574412253571826106520568783294056754362798591147285137416621317621544755099657871300626276641243764607749974370386034148927103278846916230379716846150230831644279335028089158683389036463078725772609739104129473877586276084845614470612062394882272439771040113158188214848195774517301531249306964023711518587524593524818649111943334264607884754911102651958668216942985199810345937262291934883364388179917283475292672150594211438155244706403305580241090249305618776574337780642558291333796203134711230320844964619741270903119552105884691574218563083506383996211683980898263067396961668998719024958437268027814597783852516841087947245029912781166595573327981629845681122201265833333157526016027900141538313471809521340085325598371129913237636826062362490617480698822323286070136143791822984036223345053128485013900422235549584188671534269967428865511443306566986829178266979213041296261062208918170527051312069336929100659491954497557347622559750917427980907954971228147139082132292563962683856926576777751510476696077197364199597945884389647462444319645590833905241116514926137669762895978382553519376959463306878309486017524380939018585298198051009359477916501436302653384070072671741443441182441544152609297244805268215340893372652489957222295686351376921153714053369137262605376005812622280115696605884765349477081099416767078603459203216976189877404601610579176055709207107558220491789706000778512099367392070164478318534666791767822220923906468353148046690862908726334397372471878252327335351783546754356971586685233230499482066809407444166031597593758571338682940132385482489237702981250108787619934689709278683575675199005769566122076016731182907696033821163705721716280911387015883345320095597417141484026792125036400195604192821841838524739936298799130553627546885351556544488105395995586203486789746554340407092953360115135829127670172479201078190655157413631773326572309942467416405960211797607197318261108989588032010321791171353175421107188222828981135823692757793956324249120940600132564064795990019290444751649366323857266875152886742752964341876959698011406888330226711702720431204419657110481441849294050817617411333241703437121708985620815653806382455714267477027059279185885962718460308442845118912714514104364816595981272754102347197616274845116930608050033829612380212320673596539523959450416842373052575349638080263331379495741322236947663365174717862533339037803064926757330039434672084617208662093297765051675578886598331951506018466508289684675944545178212820531656334885856300901010958321347915544971844925957789381136654400114690149473741166724071348201149606583089459140105922857186753657200995127933936697610324002668125729223985844455077361113288703167256666695155759237371703629089812800052918888550722749749444204167485170514023100703141986100327385876214977816890390249586866264790589895483855882748075334950517315420870080032793844603628937572305670477514556469275333451512821767131702854248997621384456820958331183523440232616724430641028030556993716571802498567953460542549084574799527876759554234778304453540375729502126636309736365788566104857867153181996634560431926751548289007328396312639656102688732754932323949926288261993102917672369461059072838529717331562354720843089083049667133411123697929788800620803562847993190367040895984191533181073993692391982960455163402552367287921427371460552453868369888444308204352769863079100799699487254957036180990662676009164701198735889842140036003698884944076122577801514137452144275691141965078435924440694635361900077586671275804471749090471561586233494713561341689101019731164040700703352035254602926042728419787031402239436629765152043188195178758241370809546947716873071923403944038513533532346863759568519704808878109881530816993918274536090971274003746182296358573907523296152189586567379120989884219653620082159873215371283175262855167602708706071891970940355314032835506734707274380081830416305595299806188733518463062512799847035114373164734318072516340564029499362624066037806120744792936318043531737328407170609498991217853518996284267361181723636629609556034504136329060743328445658033989260274903935700076510516906530011908979606090809812951173480991836440487404769606515541881831582791321503409772956341743992981005426817464535263121685198078665163759248022475795959277730740460859123620845631957884567660443619901090913591830028693531872512185385061488117215976507045009229666508555887975156280377566436078031155416554075326929790390354106039774729956747736175536163927313318563189421093312761511799883001398806562978556279777581130989961089700716406211655302836498040609508244403185343840890554211978732178587266598920268240119002205134063267341873586170742455913369818599224663449393880179619781619461945741012075411918703824581080699511506771587364323465726019017447680130920106768972958709086070694800484442107902965592941662754784023968079496933889569557960862593678417482612816921525357917009683465121566334057738286300620405257884595122843426556272273975947467077856877306204230351202691212579643372836934556769345462971352267988347717343704670305641087474998830177291742398565942170730915623301991975929767390931316081197919558871132721054633203379886807137195627985874001754206111810101029402830035049426725724711080852333422682510464010645085718093710512765725498686550403818787994403504299632646829047449051933311666626201896424233748825155870828663135133893191090343045989572981217949885203416757839440801359081518493702735711373882244940189291097766733893207383281345989223243833425967218921061766447367855339586127980566317682390994000054503582172535927007725588991797057463197724137945757381561004260263385431299572885143951047390827557351531695149641637317188298760017618833894795686070396500398029592075692623103363277822187258309504705995652756023245378744429858254256017859698381827285331617397285336463760854102615423250257532976825699222409057524522057795221412687295007260358784089447200956892051599660474243754723119103662426663550702467008134891370321151191992335958045728058079531569616229151145133726298419466740122315500372708688625019539005808103198752168660681905817398572577302659671632332333293026567395663027831963712933407341515106318245903504038426820528821117503252106226355254651128323342317507474969362401130284244488343084636566205915091048601306276391243702303417234679063826734115860699508779621046759579150011453375240173066731719082881231936945029137362722224743890677637702663629017448509959044615297229552354068016676882802709978980664170153217216163433903769662631949077936388278004261153002141461156010879080904989629246561631263078118725280040144160452540930680833867129744385612229246164425902578273894486463552931109455441031993686888162914699439195338715622911009750912109981770410127391772962889426578010870165216472395745310274024751498426709164899420186505903930194702663005351856043795966914798380953586418355016081052130935154585773329325080996747186884905449442456089575129825531840577871848334868688280184542975938983812305656305625713055338362040177980485087578659448941826971052553221329723773466968545907166386683668964356722708749847159286688792242343697332654646309366112349101685614115953769223362829146283256286233566378370948194246605900493299791537431164026346051040781582856358444677688323792409803065740277833727656309099860423012370763352881040987674522512974946415588402145934298404621541259608577348724556107700351692564679268532614688606970388719296637416322588690373949947918054528880320163172023390527522931592055293776075039665233406331488829428434064963125917559121168033826471016587871141250952151872898626667565196510954455066538988184311583798403547363660510384389435033245774789233702196839966512729221454321308912156643830621258859996912577741764151500724929981093481965635078601458381195328043458928268478874194423470389598425594466712795607734057224780517616201348980755546473123920984061548135523987302089772165770743560890186150445101073022453849100085864957062169218891481673410715549650016887649835309684508600978743100308559230255243586773161285726001636504844280791378043872715570849706658452397584079144454644941594847543802308923075810737365942570375571046207402013524293582908856532963778554485349944996655967125891571195875226477732528590392994909642599911076833682237463799810301568931047343795677917189194161273935743006674702411897421611315670301316644578110810868547126406092963812110863780681701188740830714663296000978344304070736121779710913567956396893165029878290093157580358347949671866118385293743953797608971913568308497383300838569628988641856604000723924651090955370652207485273704953539992514924908766707131281391522724574152256050630805553045552897138681513393553525814187419796806129554947588134348426936857679933200274514900237632508213941053842670246536422956410795849845155423816203418897847423617142518379172054275650603350431244799158560223998323782334837964693263532716376290726935793425704705400029320526970657428656451991827048578662648127050052043226631040901642415301953508040215703508559444586947287375465864390544628664103227231828838441089911613343755293790546507331885522543687962398043352472406793836689561910368025392410581980049209407057554128869008961000343111681043486755729278423344032654620416212285265159245013849261746381969844716303208418859292833061202057941254259870933501289581858251679926733975265359880663915548371292140877593621750064683857914134344817173393277446577520924930804843685028777427398542643980244027818146274498670262798901338735458985598637539833749238099441938608546713244244170856309514330363706054731369380086329900580806012277480996443991126001647547000747711397074384896082514555547916942241825023817437183081542301944820919084584305991735957891677305451362298266104053320799453988046950605193470749205188664810009697471031443971401968351620988041142915693947143823668404505889731220387109771230362124082218271481271411781112933739389302999869836994885765214122002440184310373966481421565776127719802155037993446495793846947575109691118985213035995113493358271417557893302558932885652270966963068276271274477251532737672438851254854324670628132024788089100642228326293764587035929838862623108519184390152817821754147014644529808813679125939013556971539517028628247110855457478708941626819195125062599504252563006568188617207056902302697013940933543731887385948546577129318390052865463136423730055643945507390469210138647704980337227319789608261370743338764341123483256842670243338574254794321320518839219176362066888854866633545448445389333057342527097837614116336462613450575762540168284616061481639050801640896345958331087151989847022224298748925681933575195811114694970156816856338576415438001150001788723489892077050956061578576199355200348603042213449806924820525939398852239554142832659628908668805008527101574167760285878206125333751852898990024356500537478223652645531203889774832963802871392263967370103103223416173351934358474736525452350889975312764550206085592747033411726416263539027842798645144353394620155074339289711126108944652687926512669526725487292672681648743328662794577653610088191747381692303530722015301415149076244657805081648811830112286709478378476165856254212486534495221461608857508227376267771818267766691123532027985699835560845183374675053734525761626827557649012250390324852695453290371100263343632828151807371927771381649522132198598691069199510341400413587303858515923415171231454480575730194440357697052819461929216393611011617665082311807263720377161939159546772967373300497130195340655035217455256472560777313328100442232365904987125224247635612758534452087821853524458232689145578016691228310183407083219069160215022984194370590485565730125887125149977878077368149968180131694085022671728931113387039671581533493005365806137992536816708367436528852461704269598941904923911538779628412688533662127182871800146646167060807389948792225395421509533455176625960766115428242509835480294536203350217478088813204884991137943291989011230846812003862290728736832005030552559861162818994711100503519522137363791454885071695097203729096795250417518086248614549941889346174775337369082768198258609399028466475358584298146087079908941513852770792874210381585986726660596663555956898333924397120181206579034404136714278992602111753079443657355188066946641032845661266896477257385364725151609249819158926031027806514158569229113292041786677043459238761596636734326169076969039155061303306562666916061900122557866299454319742332549547473655942957160817590211600490531907933807306558944498752744357384735069199648263469401693078756168467406048287352182239441236521240514550865892120713806841648265863624921084718056920085570976947816592612933760134966499710546382805951797577262466987608878387734959013794911243488784627785582388815419549132934550430298857585763774527093643066196575654527904956520275356192948614670279174251578012141538227130729693490567853607461414668044737663958473749310567675523297340256646408008232844747529758047047669336244757663686256280735743427575249326338306388652813714927117035947916043657264971150448648002137842714256369003817095304718096251371389934129648094433499944881316051557783808230511622104141987959424702250763978596140381887254058905602425097690336018519902438414552510447775972296931880008954590987125114288162999927315526366234951060533744428188460246348970454620339567464282210601798273026215329355474095266039710584077124303293925566735302932333236108734697074483517752891047166931197817790444062970558088614904765652146283134377012522366369810052746211825637306644308783369106474264846071174770376028617895138056515075872309368355483274437926785901802215055254404564885464262986113976126791248586182294359602218332286904593043457852023756595724833579176136158554165331909755087720386409696307329652823186950239111248494893812041577667191472085940384224316292217846712361889573884134359004147907925838343735866012758715797262387995186236798945493683955539006953851422822650202997638780731958300207151991825555552924264183347760534463870804612995998108191168022265427439294666700594704738533035692239995832702106618960787823592799499435419529158174402375768621080050205691620040155987853508933922179663147645017525912402455751794777554878866162926314163073127746735001866840714951987993203167227623844761329244961828766677583977188983909047269826784840286316855694658411916646388824816288033760677505140646322951791783021736925565803168879309559852860113900607647824288111952358983695681345897991324032404099512619401957373126103327602631742578136454692009397515542052308730752499876372761183606162071655334958405045980191327872742093294283478510345993488176755620575723910143405725866356785123891013026618992241367859989631934333218596816814507984147093785539379810509018283101736984941669907746728672023378922352289403911546163121043993730703390624119600181108103458006841271474244103107545177337209996235282446620597881073138498483177550024285696964519150596304165270863552368157909639273307798052270468829065303345627125879811112566976578284816218595360846155993494600537412341138772327607921057831298576443159396469011183100948044344053193327577833091804862879253921394546898219589329319701026479472622653380034718462527700915422117066433984446154534378003726477000672294126382039793164650352234642355296208854037691974231665356992906013797454573968097624535819167878265134273962589068963400421559163767662621622617869293005914929417007138023606723135420118559642262636640446411029334817578335851847626461067451837371643640403128388088860326903998021360275052847885731859731782301120808880551410246535864160014381361924975005245159951644367543022793163316842551018035434066787147323074007617081642258387825397904398930529087189149754813300032607527527929117173633588942962424806653672221638582761928108413486013629339392439743204037334129584441953421877887403818741114462446297035998995741053107443593564764184240147221789768683978801996621372699899807492139841711406963548332633674350579613480568204985039540654564879145604964605570854460495734040985796358412690004348355005747773742508503170508673259096109870888031790939262323088990043994092855036929106497708911088964781922056118735598992894860855173023875217601870825701952496564952059865098645272834779604047799204008742036567657102418597917366403600132280408983056199969015189138738427215790935149062788196094915696041437467079764400726837917823459136774576912144212549844393634242915864770764399347004314755885063637991137946103756003904635681752165612293143373402957294767874747598436713313991773898220109576093044549485650583183463775850375705810668722740824902941077482383439778419816093364988235990158554525546976254140352569327526861608293059882351780399149451971002970419103484634557025702058074347562865633761290519500653542416621118356122598040681292624425328128246212659671922451347458010171321512802698296491671208056355734683432261597460279622540655023480432213586198338813175918222664515730354138455946957817990751653766241159119879130841148609469487144600792949365072312043463161753043563289195803328402489951224587646970521976720917744684215471338845934176606069608649292101687612566620302205393628372638203080197755349548121950884836393925198519266489894213742338549781492880638907590571641213098750652417369236258786742319286679903380423123693550722979449145789834791106446227180039438995266581087574561343590600575513513602658721540324979227662569853184107998574695649170671783373795462112197960816923471179022889241054969231915641302210747179283847741016501185635605685644482447962965917407097352979508924398159386342688689367046073588042576698675175761072641140703887516012016304362449008540116573749263877042202466499362121767779851138285040611241522865232948237276866232584569408289747327335213106113640534567960086658882164570257840580844878469251071447871417790335134106794504005570572141915530233036074457227211712492287804322450860726443245415194989329276811152300898017373236288464552115686068538169976482252883278777470548545969842776891725870763413595930037259532208391263092093846898342179546190560349126153823103731889402509073392382635816985123633710166927446193271739987268329001884274545198358783791844234709349622101376284562386986977021184471648007375197708663246475654056173982047992520005023280037175303273073162740702264286109583768681127521705010561250381710994267632795604111781493418519106030224800122846297297712458503841835338234512513485376835516586444764771589051403249869923456313422123944288424239580510159391637724215005301883010457077744041538368870644973954456489443160007848571860823515695340605394241637131649552935853887935445370025554194989132068644498579518502453922712580927276858056144102525391431207866747355992811974482610796154075785255934542027986410259566532368121520632092539885533201836999049674656450945622209931310931143431247298334936338995772167730007741207338992165859996903797084284586595401445537758781094275565665825433160747512759006915586163359423071242286364827384785858049458518098888448134411367365594331182482350172167508080668272728798145250719021878311591529692525703678974893463624598258524040669223245240423662798535965943759614461332895184334578886963340612206138866690140049997659667228301400868113549740755769049805054509748300420142457909141250574149840155586433733685979578321184427265211169431189499978881766167538253182039290653965330665545418364120948984405567875727763121129202483987463417084146829842565640780547614042101079617862360432729870759752364998713201440144536601357097720141154943559493743144557733568039051724698668232818183316678379345945231221086749938410604674344785226433650178990178811858304864868631216196978906501293367851366431848954600806128057747313783758886748045658318765977876441341166371458544134373505875999252168756004341046278148853777027230198049881720938756775264390043873633320044434675496968502519255624676839060830476606323869658139458973571716800815401015481306437974317411175071062830612247544088075609024382779514463780510841189327597945559826013156793458758603880029407805511347507179366396162976587588467214851549145741985281141389270250543985632331112891336065856936057235364569392978569117927286593122221113527571011175489368398710723141807213985567736270648423851652832942268221326464579632158154641800686939631400802449530967659930617744717233919094337398261659203329128291963752602100283035948218810671519065364750749522882922643489288569600537374930054846321755197867588065700570325753328008017598278841765238440722159107174711559351848858442126471659814382236223199953830079108086633527965255396303438036035206519549982842001722384182680050904937121854507209054211152792469378959339416268584404503907480276442480419340065753568245210563144921638436501108373489078771395515963687804623312026981890138359772530722534047152592442092425886392365298116148179265374647083818822444714667202124427787766674942963333384657436158697308697649355598759468784065334009967949409986745506100147959497691000833041268053688838497099667424221178982398578824241675130864694211351038468051789382240523102704224100719657126930456796965381461775565710479589607643038627088597919765972702957177077781104332289332740552436785828536340200732191110440023516965775106656987380941663683174285208064483533214022651000486515991215257731080826446749485284749247065502820814869896055068220559288764093665513087226290099949912240075654203770241358601091223849440075528816461411885616949175069317653373579675504759001172380500170603291570177016948463192698340563125194677556518634156771717511249199814457211952407245197809400541735650096964878784235293305201042815362079241253544978472838233001465289680128825339297560448349055541311764898468577452692671348810859647035021409199555204769083014265408619042832269491833582682620779548120539286139254625510943283529478385831263572910106117412253032089651039760856582302582594434216680845960572152170812752548265741556406572023752530506319058321366829706266340990781350989420353243314253703420346251972511321609073249297039860645153544062948369012884065540199842938650820218176620270228943308385568082207743071113533943705846410321823515363521800220929966441675961155226540598469321879142029974125936820746824817775770079643708236548794898782070872518228405173623167674509501230480559867424949254671571877815762433375140020401874027700497649082256206988416318308428751184583151821301701548858555323035596818503727351150073882464424094458986155817329390974562067304600018176625637199325798200685662392575451330559638149065402767972212067326980597787649844147579667464972203147397395424794028174380649080891303404619957064222690104631882295608855058273722218832647622059600483419396104428386108515018061667251552569677348924001578580784994098525422502571469389374248866278227214656302990735823034031961971191499732331526646938080687075055430095686441787589237479635147115079342364621299937372194108953997866819015757379009403035656575802571594065597266726520964015889912558240242834434986631659292726108204678559383177221579073039380472497095977805072017407011358234606212249781559163688006669151916367716403316001965947834241472229666563986682346301726567678235266951360240675681442871954057401967944510448929360347925752316312573751351722531800793329860289750943143584699746096164642114516690991471173099470343219421325231662040839994954630952450431034480058036513325088728752504103945297366803355200884824526107061409023197467094535314198383153403455255734261909086120109701774181957562695344101661793889050337825564830184424636762484188837443181814390792081025095430076936328900841370051481891787169022826262824852969602038362285007714843307356060776426540139290988836838397935768992141785873343851489455740559385076427304057291063619988875826744844137537804468339043054831745486355159893168884091649286975299161784660805798018171451391822438884389101070535947925964106533365090409185085144398669870848331912487633839341099366470030756052714833369864904601970365096491707421653223750114961125275681596690462124701741103528472010907690069441332792133675489193970799711253651066494036575546385980841246658058761664833472136932487408824938130280552289795876564518326991866293135711214986753891259604976793081739646117864555266824553142180536053587097014102696699278105314466217853819207089968546901706856504604208518221407703919164903292432779139166587737986211940664427149978760134917690366639821979121863639608753550921217118029390478097445942471922932256536696273918714664951084487334650329185742019942657453416236420469339760902774243469461877851097474614826450926756116342811897964108607844990365841488097655448121144234827763130086834770956525432089872674685030714352071686815453440486911163060639706381569700207744816746099979061340402087860053627366289653739559664676113131767716362943299083715813648176465687892822345817255754887618102274511413381763556555139895496838555354364000339994574132125123031256620322334261746217822530256719232945361806926417005029376752542351680947932204353500469361120346072289561459954492289375517753593731586264479962973363705812874618613061722770526546917833090358264406024135740292169076611767793189724771599552552941200895775310757126659988816644409933792150331619834004895778962238969295972493981315372964929139794624902068277528947241630364574730412596252866048424433618764195188640536050413477360740120009509409018134812024260581455823012808407268777963188357351602149136135406065230423188517778561437777213912535636382410523204394513179743398306792091075310732855335461933851940440930785668091271721079558114574385794832115959072245625168826400713412274737311790998896777070815732416616885883350769010695990886248621300124164719710048987348818907232584492959385329895626369649442428564698080963330091909480096638804110184176560324776647918362306097591590562980464791951024348139225211635852614279005966126254918011349558736586841621083212757726285539896360309338867439970254940831840197533413295824281330305411787727730694033193648392018598727135410737237406649812545106851564945368430686392384629782197624589862025317673559934102416387144829016352475427416876395506812963698229959243124559891282495269593513960613069187049498460522895786908838047205457596686863600045540126703423460591552060392478655705208929686183058676853142920585715992284873154404483145879711657993417801289826954353995619363360367972755105422104371580504689218662709369225735074787161269970191107592932942105160431648307259036633674347122621726205514209524371309035173936253414899034502544601903785831880621214387514839620991348663178046475526869908408612881506913543428368372020660800512471356959005017417940088478565982749771191517604071455388251258152124839370707063064331823621215718222397453383365934790026259470074048470352532139144585260459327843726228253342806473026782906504881702702271118907281936751515010190718204360911394227455162298607592973371375803094360731687139001204402617826698358266543173487023623533604288851695938850313559504403763460253545474104980231418092497860715455690125714386043289080560822056738839285619200549085272548034485514813183857431869872926790659304380605650658078721153059772117786174451741709694244037103498170426404540287276260853372950146592706331840350179569958907168141275042086964660648116326657514485685305671367367801670728972887098262522490679736590507766667656064328482107283711783763739600326809597318617604137893549677033834214523124188454997968392461236208681153173573495956521383538347916355956358961329351007529053918038131016023788921679456413303490139010554764438362136625001040654536609488857622560232133438744863141707843354682569237146059470303447089523814920367147375019526789215849489578703220610325173941930067195205346016020686552187929894685074763656697488461641709976472381755176835324061775645761398853442290862546136478990680164342778599430773626771992599707600503790077643708391242497306741149261578620522502284272543334743690944062599172954219880139233558323514717565486433432651263942829200629909520950160058560566759608198766266454801058882416834124248421245013895882505502647203566692751468786562776382681718705902358406964716454379269989140343309865239684551791561418410048688248696389216009494845288301456400870261124036542237014161274009089515020054504314555135308249799061411952260355019265618576304598790067143071147040649674198809710325908431025755133198324838026106968691706167828009524315011253144994497061194707266256344355993868286311545322050165602032901264870833501989177203429346748323621097510028603271771124778832909806769824571226460176954931482784558703025813268474148491193244259345005555878290409343117271535922748988644087877644542762628894601898024214945159256851073390593320934811277516449198095340788040793164528835947510868763413806260385327832197308472948569892561360499701517280683127037375626521140262408427297502206763914198237086292846185989335800602044307925537626134920285399940269850861631005631925800404129962365891917235759398067260197008428464764369750358661262934686918502486776364212080804470077598190015489705385977044577116444553703010810376072128924172974542012956643132655855054884231562885223352102346970124440418910488013367930176172189458203922079810317913315709025643336089691639421190882978299592826107713427683338524476957493455495774327030683888085145465800395748594810561624910792465577926615389044768418446944424347676819659753110985866546059967275608248693742130225467139386338768910767193048544369647827524403156932856713693975089449108446560355077639738692437420419617253494981385865838155310201671896957607684232679245140370778362987008607710860610485740694851052232551817708330330259130594682996209203321327124664807092348248040277575861142402665295304202744678230816218503657063158687474953065206606988720738377956499701011752270932991592726718542507664125584136489584757366508199083557021504082313678099020862891556970629773470847863362922165904218070992378873754951362922401533391482981988168851030346768527522556317770342488005110538600062914148687049668243507124825114253199735081502304056781430251762534600505078681337664288733015700015515694583395306271746420102061334366841654323966257987818757325053099526248223212669389186073728314346276792745249300869528571666820984114875298345270202144948187073888453777683942496145783273608387091638485145632048278767001291437385110070942804448288549496741437012795522677398494309545473387217441352721021066726003913146157175476494311072342814338645946007114010325575824111193734283793309301518710912188308516530235272963293630383339774586079362569626651658485619872887048362357910967135145124688883787683393320754507668158445946356468717769686043422210950502893196016653881276632254611912019683278349183411814764021785955287254429314487632014548184870483084503859752567731765342627664228626024229325669455955895496341300541204543850317088401955145287070618951698401553289411279512335263150864552186360015148804599985681702248417701049495156499396094273203072597028306122493174514022358769849362359029539263895000228763904928922104971642720796453929112354704092095573381831938317338810537310731707275715216140600496559095993457704134650790195925848253898033308951469615998611232374620563131359702220072243152911971134700092291281233471628230803730988382357878170165029041820120518319985948371358247053835646327990756256508037775566163945022517336475212588359480112546245695662313880612669283071508026641108539954578020699110108264592410227821614034356633416423044762461830832418366942868324846733138857334194612086223237232006030546436499602873757853761167936526388877511297619887191107962092990156832127349482979381350190261574241021439119268533552149894562790022242694769275214185717298585524090752159390461688702056212589787253100819141725747968328007347590015460413075995113204821761609364312208196840757681443810239823294780600379367225702475366286947329796173812704594542155798836173746668742269353474087193349535731083086384779729498778592340050089532092699051476532674693686650950154611334060715743439799986078963184662130550342429546738336302403233549239455232199677237670089122575158072484203088001474434588916600068066552895704108369114401320275928426983540852397588895456663177415467406549387663516264331107573735347257040210923158841772399063724774717199568235656766970828873631088152331992968099334305913493561299657062686298462068795760695940040124664221326786279174358159381581765255412586080112100706486704857542656807250869092326857986465339615544126063927727870027872902204859938679601746366966819784932510721780227928155656734195641280842142564007986020217221975442675339312052694319490469001856100752375273652028126065176636489948258612004166676675048849966481434548332084449276148330366358962879990645719280378186817242376946783034426169224142648552374779622332501066152035285619939412962599607806771826189654563530550922243931047163332227759028391160955982117870325111903032817182243731791938783478419472074564016256438295774357964924175793336671961065013707078285734215533503090114473460475057223325128760340949053939131160180235829005102938374310082618227967758903102806157069627949918142564850770546230497526858608275067075677771218828166116846657676317713143160514862664494658895739777035089297706935905878154589476172916592852102244484421450173000299704056197435261072891052167634602761509052835430702929174685997080284376568998744205801451799031845293773606078856521797555436829696010871829420994399376606938073843742454430467585714353635778350014998267148994059822110459715646785828678604427725946077609072625733133193684608147647603959780082028786206236014855609282726004338697555678613441221563189049958474179191258489263760760955821653292186998232347693320789450151367800182033376482604880819096969491052214557110571572604133854581863658120893288038609658240598287359197630086789423211142036086510456399263482752030794466372376648664487803069464128997914375648014218530304474546408735327102325712353238922099426614755842427189866328928011670500194574356811211663358253860565237228486884546960665913188118099622348617322412851097526113221629430289249259999922834109666505486689371818482841138374207697753898414391720922514504821636925033000855645596394140883803303928441584016454523643229265115575090050213632034213652485565311157739534952706037946702559889604702892160144301423798203543262326969205621830136593502061937970515008405933015263442177014442430935868769358353256419939788953243899456071362676330535592765833859633411941631022707190392943267240732020011261726719755029455681788574480330345342126974917444055288524272272361028284605054748471768697776960611400719196534438561705374324758578456807333452624376970482080701685939722352388812012837199815733040063434340252809951258721882643500802470368333939151680741402802482862635441793481136863335804503825415159706460162588308752047716661818701321222585413086612474786923880532046575999999873993411970166142348394910717728232510008650218004271625058105708509682354243980222909856604058939965836748394938083853260473818022585589428523731868593554590124686419366034031451076818834471495149770483263443811273416767582119045859782971370062174959155342332551224696550900633024255173134595551839885262504537864513304230777736518500804358592430916182030428105208315974488299011964712949392865393859080737805484230912125829353599342027891486857424380728637022643811748326798882545674955842636952812055592314759826957674458412238537164872138505997407645645967156901584822736629890461007661051596117510995315172061169282113753732876301219281231582134829270321249344486399594186010580364448704207273534180233306706633501380188398316843215130541551186824055898324352364564723710528930319357530854488232685327281904624910553856906185184104887590319818739203060144776369160085396777419669615858697222773798933043024224939094162839205998195578728606768777437074068956348516873246770153790674646793067108938738339538874605740314502821728418139690848579841204867924880464269951079233067665688005777054702760095105384484307030514578656804081814378406545153429153501362260135044363277696074491003662044558185578828557431932084185983761437528814490402166456822897467393090957832449409461655675014283529326528088937622862596686233433409035501348252666195933306013732837039101678744726995832810337772069182129440655981870526821003455405892343864621941973505806479488336387037598630242347628174951580859683605637913150111710740739374398490999223097307661522592988165181949215506280006798424815268439270339312080744886788388832311032200728078685673664562656157315890452293820896394311979128824514807459958125056006425753998038246764951291181486520915566112064851232376535558350615776729093203466375228016343415138789807339346035311537625632218766023399563349675773556049767925608178990302306585769198797246631394584512181622657400591630059757944486997842759745829143528285122864408677617084578475789911967141930497245593490970912506263569715815366062589424033400334202797507175247360466099834386065924986709521332119077676913791464130318783862475191463832130806379054642989396067102866357474482962558086963069918307026520220630688366037594294603093536557978134780740731669952852115910287928488180691671116707126125270893982507734888486668263071855655919149090310792735752344818374156264322440844272038743545751471037360406527858286014478065896613403172194483604479931190919898484208888132229287061018552117127929290159907281645263790822351505537438209100950957710889930451864740083721021068004620894858582254385822324276668464098022887593953379740125710045417489700362490697321144331938845504296159050003705112945270358443951069364994378714226254319292077156547138674141347911335194076472965711780438309369932227543659781843062047227382254667257788123274611194218709276270323675815331499474531347270399388673600488930937071603809383596142910954237785199823589593683006440766041096991690472273078175778990714323633984023503474861803933665821446405099993889357048987561653919650953248716622285642382046600041717008158339747649265104440753321156172369905761921678323407611757261671141347364888886950292444186198314686044090732699974417641082396855636329021653951593639417541941991485621621116314310928085719358264835674324733364435767035183094339917568136700719236711588635455434614832742406801151855793518174835122139126900688427515176516747774512958065946293017857169149663409809653858608063975338399359040751518719241209251120269011931893947404612571391274403412795220930463245148093175580801379028780972947333549938864839819005418984517608323842268749800416708332122514668762218714821597430322280108134531690355259712646637937490054718892343043286486371834142817278752013841575305968853073277925535868787030184177730210575382145621957070694645112240019411037901428264231075117634008128800377280123763228948236839895515876719826913829861774420991748000281578637318517307664226415556188891254230096469121688090099312758345748465091831960463144600019639450243933080958287703227543465299557118496409567970929394543982400883595747279343796378767638642200850324104402602204542913391152701224522393670828231436108268161168880048301776512352426647103100732081929821808999901298673274693512696041448734585454895617371547346365234396190005723872742085115876373301465662186832620179155780113320888306299274255496005519321819316456993410461883648329682485107150200146212558347618195624651573224024538715126809115498500961574029489523703633755511248532752920331779833362995289066227039284175369168005036095731233530412275349148385152876121489245484118742125268054891615147500732432663995029245059172458141078269382835064835233544167179961036823113491046306377641780956446585079693227503634421864682624666539546709795644717693979191041012829602706097481139185815477515781316094401781661623644162136379191953125376032085820041980075782551453630515468440364218733392725895014386299664049993753298863019154331106160378041598709706534050648724492507536720085054612672550053252436272853092189539172850336373778790687731108506041473747924705438461840455008019721587088337713964036013590684785605453555523925108267336314130162163597790760029467549023252592633698122149104876410295762726444597606020024223407289074240967407892608804674448732698374133773102914957457429270384127349587231581098665190125425357881579224145534834144420782914726713888742360311429438287558240564251610088119748655569961597929625255823898040611216774327090209022978047024940781566464933760966767702341892423418285162461320879852108949917983803676825919266124763646624371001291885036127971065082473699839863999686189356205466696895942624460334695545169336239887474096104266494201854948450777953675674496473419426969061983920454029656300198500620187606839808893701277714901882007212661886772016781401252550664732314831049809256736374889335652222636798996180600419219003087978989265864460804759295115163035937201484531280526735605035067445483312150023054275509847261669202345570974679724951916465044664695619399989781795778421411096247865292764540519296046166221798846023876792998288329022564263686136982975375785875107156212858188524643246497243330102945357212583882073887258387559107904424225093936039748805046502454017614967850116092575554534149249527362322308862858664732729889709114092681995666106551880518947382478076238187412127982351168617834087033130479866764600616290302705587184182102660303057491246446794048124686319495740804016149757548147185983986698700539012391054392027466291288823259457333435827894869279758193738577255146849698003239574114993279038902433348046438474637790777313061131378937069178567520096499220478194139922198042572052565291979768274955491355829816754096245276020497082403064605872951258855919947759776133157253227386083820708646461256416494939370727121120245238788597265056484307109174830581917351214777555883422912194003612562535137981734190913509683389099630752509051264254030597318436755763528588216870886791363356204774965874302932906586671642260469760964726823108428636815968726321552700872453124255586487483940091062382664807265407776853205061421330454791270770752840934814138669877630933282121118530669508762527536832156757965880980381188919953721274007461189750142023263843876787606226430568332718503293597046208610868530748013228818084228407971171801821407544607188550292442293601422650134278818468054938087980014253165560807721966004677787523975666415533308179428674244323566533134127071858789011647885272902742455264518897861543696692284644177473657260574760260305899686848427510169936329294626865767270261281338551098897125686007526650292674596976265917564628998427978673557197695419827992249822230084239708478984585573449380249686497356941090966389105319694876948779770370758164646845503354266071754493334235003025648137118665478555101289588644849790946466345384275766209564879942086499445112648764688284241717454672421297070983242455566465285547957443261423558263385816209090695760779634108942236388517202925911706721482392400737622373297001728482779134191753194378261808253129979565106499024081137162928945610102456413615301730158064574012201330561448336487079002510889005906895147587856686136603246216026050727208643658530092319368249705215130114176519532366622562342862829860874737663613185170379017187869582497887101585926133094955352824896166023614132139426225064907717274322126188400213923201039004800456410173972071526759998892231372456083593415191504518430999057306792742049729486939934872912164280466147197776530454268483310887694344641077984016437074801330658403068099709797573426656060184682314333685888618668803625149221933987933574651457667523486584783727452332912603523185739934260972061408594318287937181900878016088471401840501108929768738481826485642354732351503089642631415612144671736710023157019590546205392920859172600190658034638115249016713085737347268217958418701236976438755042562915405431984016163397535123393125534544146907808080576734870839672549303377958887223686061702808535358897702089180201763104443833091087272427884616499615766143163430879520078846041565797226468561805735105669405247799981907874575808911626310168673585690718352502406658776060863956509601816206190436658686600351732670262535866352271500672460348339152222620073998452179843583903085220629306217539897173163403189565315361638966798987874138808518714897922630961082326859369770748718876431028008130043569924583508142080536116157592813178783103156305155660367977671761681978389865321947791025572083698235130258335105745340904448706913780444622001223121974601396450118209836626214238454114333014059156986854981756262603768325217249123531784584334147251147458395183814829277026782406337539649204656483879064857606472180930056981054284738154428660313497318349079332725885184610319542642537726791761769536793005424030316851180670699253323666193381932907299447708611950139190448668535452548734039106632024219357711540723425680970620840209883041009438045231967956422240775252626537249157587116935278725127561942948737404185706740253232392979369208450798711017475651095001197541740267008415838882963450266062989764493879856737801160736214475684302377526443990054807904881674316917162504847858763861182550880881434104541637034335493022246471314369347429028854670588916964903627145708224419240479979927525405221794167822616272840519967322305279901158095068201869035302955608042188039483923720275360495742143925969682596279734818242317937846057933303285003150914525772870703275407945931663291052676180451252991175049911856963546946610279842580372934676069600591992277973049087895300148255738136190828227518843940459805843737654040943624362311501363184085201805941964793205556059930399577479264613520123811589796662906867739167767109696859988310131217022360258830017197618515933864089840648817957021236209093900119603847234252658152906976551542589492455755666988268735088913540164878533222830889878823131561928663252456752081437414303723747978885732939986909936193865255570646831220026685480592615770741606802397866337275891780516406503930888607892841353677712513630352734404350848545273767411949993617708485455803921349399638054475630025005757621564080810779516784570346084999717475481733345984420825614578850119456514741896876283668923905505814703236175452826990882414813084223692432162885184446620251141878088086329784617457852025718034257130084294304298567009219409630560799047200071018771816448583172264307065733914252405658832230804946553484527127501806245581882225352689568537347643660954943547313191962860818710668573297517226133301875477200616772861884630221747059413743998001453163394865102976131396026332457775799153593551529992549968117016885924948565458846315381079649300840703888691661029117565592977334747614651273300716177024634345477547038808650724775180543175670911212492042005802990925052421749367275376928770353225123249618283701740370366849427036935054960966710840938297176682213312499394048594572468209713532740659418235704190458406419265550201201432466025154657359368996221135388091770960788711836534065341219790897514981246448890408436780284122848750213847212463826026401270446622061258478106383058473392110196214108738691012611438290638007174609584656390994482163759237290904704413653701096326319328298633984508850772050260230398701231963145412579159422762156185939024519858937790253523511845631377839788107479679511139030237353596991470519058060062077461639532939064537494265804991626769806175483399573186912276379405187139921754867534512912989113670322591066097957716730729732576881617328582781125642819705497035849110799038939517954689647554820045960144246006087551041136262009927280193170402588998854544473632578077575901288156531328951137156169750840089341636003732938291720509616932515779708172903927712436799110518965212213853474599813234708481663020479061784538486468244157844962794208699512584512164883097509884183335117757516695781030733653778804514175959477636033349301310583767235465160110632135455402104127612709950665520855305961710946620074091708355860636038293516134949134777069689109843064210121023640315006358050978255507898440411163947288144476183740651983152660136955333873955681189318353018175071706239788078213968669576713427333104890265120461547226050659405359472605154411758467920253399679332781507905326404480093676941089045888263605949899733299159873329239901298133374825235546062690826919955010307301970243624327569134771646075880965044011561587098334461103323503487931921465616355876868342656721553590371370527752334387485159836365366609233022623019683360148262746086879792143590362836722029058741424400659957577874316470719127727831676563662304258694511902961161037742176523175151134436672059109596955717854059667617718538926042927115077543308936493844473428213991127137261716476409244427857008465670927221430785955690681487494250651546813518710045281618145873896251988721931890580348023004803352960794127359839267102961775705725731027897383740256303727580681434761980411682330136108582253880067417935588354450386883082134535775572044761753481463714787921018183295757411191074470764596349955951422100876820364397674780014405944835195158177211375121481800783356210363599003275854258025490493601087423318653658987168919819408223543717924376740654712647035181294060596958481875120272291729921243832460587106284898896270126898422996151950011032535436649286547281496190824372412287731919508520716511037416236341004032063671264387915073967290701463181086923164713980193661192527803001217895378863719993206773887968859933353427762062823794924208517078713151969552253639161919865058232562893875383505037620918334522264151628678851191610157922072441652884394609251075666672639100393034993906132367638232762072271748241615155401088138631034550024876318401608713485612366319628523806241801647079621029943758692739411384753497065544651786947635105363240759427386543925934206206710473880803697218366843679461164629231635124624333861008669091178823656962072854078821804741677801318108936302116768887978890522809001190966294060220703998929916882183643902593955597900118999006538281407943883555768680916448270617399174930234937377560345106622312314862773096654959862806152540720999347370934282175486846709655889850536571762799105658538433580349775819353499224803763181933942392220377911651960476203854157293294936341792548545233536717380695114704467390892691849684406698058398519918715011590897838864740805486654482988435154232031355408130477421257367223135287116429519814704920301192972612006117498852262023010158055556679740170979055760086374369941935925567275144274961266571444739017198930970379158813517379286992041900741062181071391708732000081770371898764421452462096113035077275284026610774180120802039983959795870529020855476589841482368880132319323202704797189484378028612626237893900462185824610229178043607702428923415277864012333733046201947175399054657136361470874398025973507893700335673721745593491558230698312186783518929820953906256034040737079731483593265638811916986001917430976306008245868201880031871739303028463699616343200230278593907980501872194061221882928415268908701434303523203148357905781493674682522840199880646970721461817801373332349193023342321076669379359784419742662157305663027471044630503100546991053765194401245987715610569994757635376773767044415846696673196297409732524407822195961757654277864741724953562206601936284256332232402900802265971356564026754575491317121840666925244139692949238666326354272355481071626726105360880660813356836406190384520214997980116708642597234677790030146562532050977812115828423832574711241652068158378249373576743324386743579464639797644740199729914450985668521433749823298281909890274237730930015284761631935572476606417053179467324467790565724891219698507110554772514695323595773385432593976486145703868479130606972847616747111929174858453910154742181041456192397112184966795316613811342108889489815812733802083860145522160461735341614426283895033245080956227055560334237228211931354029417957774463314166446034865693472124350499634762970472661543393874540598763023279312504744146310486883004675004912608963138401447022435915128835723759987125439126538829858939205393181988953171474475141812920398585327320786054655843146805019142511280952607491338573938920451604049551661798193424621606271405238232880987079793083984112541402842169233994913039060440833462447630634222058683027445006006869677584244736688918346442157461155730889925547475141996653615256349681908426273705777744659863919932420732707999448472753196807290712035356535639979414534597191825973828443793960027793388821312319072702272345927947054950988934550929588967255699054773344602083471237789499394095570664016057093680591754033434236316404760334262067520165277411289518401514330327710165871013738905925502493025409162638792482195806001314454969659572006217573788546041991822419986996018131658767898620043721650323011159426572033818038363816715047207606788280285696924092543315526951095869288636937944011644317858228101743594695437424248209584351533896688428808697728983803415739305562816475352869005320108528069299906602574911643911927219517401519647948266206370550237129266048913589453158307144804412819830394709411270339660810433547831887127623098022781353832709378183531547233729007672275592890272479580467299302755770450717054762168190098447673319102717016317315722950452184993638185322429484257756864499147929761849583631232365537314394017438125341296836411021200193997617974164033930716278566449481876949722407606434287575341279296864197623843688858958040358906892051475255384968640078229882572387888566796097618596305697355987612644428404874978599929245333798824842088505285522136001910958293486875866829599591772535440779342266316510131409369910352179946984919011419089835879932653167313147168412537199089274308422080864096668033501612875819980760400224999228027888680218852627302314268440533439536831715592094570211724605893559118819669264900730155678448499539070363963488788737608406226111930000165627759994605037080515472465351135602760194461855736437046741003173764356217752710891124350655411510692587114107633275411041755904195657629281262090258639115962192594295781090121404293690602409493855212281979305252141285063685966061138980187378281626614894298973009446569490327635016357285607622610784660210093681673435872327402602569857267032354269291900764655379696912618371937091802569303056597340345247789203586600161132461885221929300533245506339382333958392127344832560267360737746821365823608738875256189346916949763844782613019529518109163021987798013679638474790111076356015963417552223474112463860607138124221013577937381971652725008557515704755964090543907426710142504405363611746196556292563221764704072528501019637020113057444331567824808568744484572745781772320202620730443306623191958081365157941452034814370439314500635342647567216296310182291140270101706216551143868456246789159537565359002893958438447932638758057803796004555513091231163909233846218780765127057154208043770362881179730033468879105262392366915044857519721600465500211705970525982462654225150153990094119016039702840056897440697071309348735630262001321325531210228206730458066764807743607233183624396225247843807275147979880277693561997711795276684283175010299413259112046710022754519403262498543081086298367854844411199813535891616782064418608005263585822873587326177611464990023291052872332520061307058125449809359181218974276491113673038617588377023540028260271800229809235557295717252028541562345439841357593340216365053581687057095585384670078532061607334503425401347324896558131676524842614731918615959233583412239927946535115609205266019073228314298424089028381499167504951833752647534115311523483436354659453686415887547554443036254321505010881271396381715771885057438679705459799475566514238807840801061755962840332476188925454932374689396228824565632450163652231897000993683502679638804130499848790940174077613310910598489581077260466283925265897731789939840061707880259261091443861101232027869430419515805314220998536756774339474963777222876536202230759258802791086433180953520547557488587577283366674189891592485728769840233959361209579349028430142250794432558038146584752930402429322629273728657727635421156183587938730831601231517250066183560623763821433002658730237974681872345366251604190959960204614612953879472563548084440086170004050522797914026706153250238726041971289200889106346339584445126199000364735397453951743365778658237902871010839123666992473211554343755482639770593295292412684648374533803734434192157133916989063477529801896644310668215765096323591336329597412211447980718937219966007176635411479600393635447898567713501673947722927672650643711968039211846775801434999229252612210131538701194846411035736955036719156027308773954416565469730149140806366712964082422604798408600000343968936902978872329569913301088090033580400133843168398766060045221541359172807769610850597069108977169740245462370937172645863297207861492481933467046870513347154704316627357343726825131341694754464999564752883613729755660326091413877896662846232875872702786978459734171601485718567289822694313482270534978085955844548915536915952501333730767789720043918503596255773249481565964163777744799706286708253480220774216074741213199578284556782672748056049246151945483247545202378028822118412493131601272578816536636757361082949797543880355688109014140651890289962478430586517157071434779009868177999274457766779173446510312612663409125098482961954610409690969549147953357029744071541884364949132280071271777412628275334557808907975572754901440448008900313031953306138848029474558517439823713863295936922744163079250465525023618948011783118259230265994366165185482947674484017552753855352413072795575181481728423676746024098653781210566917702029369859894134727291618747905024252618383804923229016903273860182667884299300505425313464692347051192442373055582323258346310583850835510375912977224954558270381975599938368854444314922304768448785480232587039680301825817656623356092962020501583939491750352479197689064929773621503087593822314051521496138314873689750299183034727449099923133753926200510022344382745584225745396309340603383153994307190258698708356256112808257601553026429757476170918288728539136961427253549087208920169715840354802193225418511106060211807057161361250819080162611765485885817340413762970783391385568783481379609416341650996428614246490089227216502828254575021562650503478456993244910627690436225426710841485814395677793462039669070478778947901143544884776256377048965671093861488836193892048461703715199650294083003622337302464407064438953842198332433691943428446416666706306189355720762978595083300635307350495002034047988159534259447983980714947940702265072281026906125814240865315772661712085019396423720380638682732271326161191559724549586931759365890649675797440716463356463928337098868353979355944098848904493551792854844396322555767846102313342596991848922023605074554733360852502574285849654553405774515497772659101999353695393641668770390381861798053135989177828168782906802428983200454543783688714577738045444951755360082578707655628757368549296296327903044789348512032996602047117141503199188772252220393844344796737219272198647609040365620342592669587658075381016334875142502769897399012222069636844962177896456801300531034584358426387311845388679975373087223356889903321166930223735474306797156972382199877109893963042953188783624869482155847000415169127389032503721910828803844622665196241456798831696412632562845380825203978071647991589457332674034611660565092099302646875721888097153598621889160963106072531243341231642621075392041179962870087637595604059259841091449428254971476867805628019720529581520689946828634334658255458516119933639328964369470127938117637325118396785493248001016763134078454000028316074043814527385008274793345235674111313765931373976889037567609947654366976711768396123671813412565368155218788937049153264045493379728141525232408099498703950621808296930497198573419109964869869934583773167241044309874537119145951409939601748937277191124626324891086191135414281471880437668247096413683807099133531274621990820596359542286024933613407442622250955496182895517441370779480721738311213043156058952936522355131271059551339877026111849029975762481129930087117531280117998972223844212770262909582993398875383866155777430857704044359773419075704514117192543538362920264508206076386531740715991305255970774874935132129398354352532400242967818271331488592343089246698028440765718221219193900178402321444651918877495891444319282309296670135282222107887826671986445755926348868045898381615605305583474135724115677668373722633222841499062588423933430952943979307393370223351843738235689009598877764442319895867578464840598603916366019888472639554260303024154584090646302986491445913900904277795310819120810991564666653154645328016790589655902103752430767146279387038032559848023344853658857780020564540066209228745390053754386937670672165063880302258716055509207408067539031026429679305543767189510328383019401957809125749276221896165479858313546392639221734241422948902625164150684621604458796946479315346846456214183141131539749890842491444780163726587485286722049335937223898098416334749004265003409624016237616911529817213095313758353629322448521101637300286026517102496674423137644279157681826888633002764818707555988460008495225424489002809451240483650198085517936180127689109236025202093136667318701166965525969673472541155059587331023215858831857863242092595962973880897946202186970564652418646506554193975703132026403004403350513739320275098689497353350361809936097530915469363625662864810052251137647388198417799586941242653096286219574106015644654688172921348112101146260606714505087145323092444820922914623973504586334033196042161283188929398661138640003298801238213344940115167389262657655025820464460877168455978737532339827388664274916918771585401369199236509158975058280114708609956159318969739926444131357719114442063320338258019795582939014620430156069482403509589739182459207718167625128393503165557947840603140886222797863934982507875787998360794218111721336333404598759690033305664688307794451704989026202578689166920506033523379247637889776145206621632274426728509467679111481848583513542632401178651763913263719421408098381228297140832799815922262799667855854798853736554155960803156816457051238426256417988330665546271536171974736399249902995075731514081692889565732870116644305961663028367509862596156853428061908755752446469027460549508755547628799542316688852857670193498565199513174746104336392493624128676349844209822250722734216505295443803708179951781004959632451511852463512933668716397717255150015721085874190408531296114636796746759558874359219016513234680203653255047514667787952894914418395339715789909232406200867059595163608990141842033991578428249991358296355220041613218998399952094335319492825679226041752638868498867130602956848554341179753318584566339956104831423498003594648110907557676471595356819682064523455123338627451296699985776627845686060670112500882173812685299943792746475513001958105502952595393465353631617130064524748010232416649406675016453415337310050435475029786199655406490213436482720998354023175739493043736016627734149050220674259636862379043637836661941660953137204144182356664463910625335312331866988580064798868095604342795920947228249517274804494975835628934416032277117244848507560671404558691938142064774459902823513547906442999504752846010372058894237249115534388922923565397773982806079666932493727845179624206258294207289339366080536550350186295443581234830575081884036073381480260931837872962325186593095604956820650918163435807909604349033022915711245267183188060729558849730002672419066619855950911154350497329096621055224091824889379069816102003570540288191973625806767485827236438270748823735966426363304536733713638509903582247925634216313214113261107337131409151528088353267087223806305700598066963474125026969930428992164051945073175720786508349581226889768270459670804364532831309189343664453685930052835103261641169481279965375269788541604763282589228533589802690794478449331458848659027902289913499979678149758093401762799645978821494282151213111150975475297204908701936498205289578358688454046844070224683820205040858064434519591395069054856721359240382849973394896006092712560264788840464378407363863744231091167707495098093430266104340136885819463616736735793877882434268245458678894711779043652687516268233394076550961922166800545609745005835142433892767922827500194860564686383510793996644955197709912273592844613642009054311786551904009617059243976583457726618013958983246059360714231261500690515055545490031766688567845268110589627958481335151013135460516534235870196357433008300882863843690438307787532387936379986080996526456363750976298523303207839831096396904932358510523189849889184110902546234424512416429564590701144747924160941022904967410340126162653496934123862739600008604563531935000345203823743872065873747099591468155431920206590103461428373023626096703874995967047748167825660225566979077580921994006491564573825120278806334760561958132862047536283851832383321958704001540025962442981012843358043954341226938287967630493889678447840091035095343368140949963724257026628888455700677843455053743888336417773379539635011172884363416536592281113413274691932722574191154913286129406327468248988522892438688444285230553434886512020078463537779661351091207629742951686629956887357220524919140714554973380880545288641466532372953641426139702728091890724881991644762643169060380546398807925518559073875855607694815877255723055874000151410689405850775675478251843209495291946724729919484636605778256749411508194102627820550810488031060082014511301252605301769342175405484734018227937985782174969819411195226511452029368216432878097521848455118865870357326099910704363792671081164268555622245881761699219777723749716580351810847260279274231136075846232265543692264868852367535596782504427756064618512137557788404345699617061096756284305626123582805606444025616531126807313946992656444947458116593431753646835132031276413468407297628072698489168143308465352169852697230838934345771785946358226813851778476751480563263262654735718505711426536126289083086992414227227261556555703534134732329700748440540813576293260444498475716057984200685029627395115728077568407011444378631327536710176567115651880844698006420357474453199374545970392883229170453087216189849973270120541740827402886581244569426843453950439025802625785590778636084048433943542808367492285074916036001333063585763425736411869348852223600783167168627554900105359202446101481490294654001163637300348314031851262233339904774899510058461110805887418007633068253073377320719966408369392470984889503291281735107378107435491613918846357652309928296356659047655351130869533150284020042643952336621939504690625625176329205568421532786490839215764385184088572965538185032400905850795066652985907279833706410536542765566658759124151469842465469724253811838338336424122492465709404322711914641335323376540271723610336831477725166831875177112122519890949741809155268716203627177137393932317394649737914382409478030759598067250339582379083282953829614684333339629413019199960368105268079886867287516815843919846099239162793385969323220538210397103472027048158696027014552875714115895949797376575230847372220165630115721609432251841054570338285339610761734979360150664381489559906536959701936687263227832946558603654944693703670452920364534115959165804606203209199685729432394403943129458409071571743853142108606917965652801267317232322481455322572520766640144905929931304412408904756683838394831826982694122317303892634107548943857442804380402609046852397061419904301104633474716533371194621592877186111838466951173046781864173266783060107176946713290679296818350313936890795479088082932675002708039724181813178100875804641079301082382077354017640278320454549582543153992585828517490011141788784395280217094658552326027510909225770783299078122964570035684937289804499838095939004776220174583096798993033571020807575044583425855473639265030843414502182388739626365284821961361103067923791455408492870504907239350560504082790836208342669265602829666053968768165551980489288777770565325294917566147594983748193513936956945160887920204907706747731731405879955837038490076042428073412295211495593800936300211270312454001582288583187394822046256195089374050368402009971781974916003286417053878915575322010252352281502364996377924440887924164184614584919189108650843964733694119675008931057445067440115897037840543580657430443219457626604360303194645866975227572166447436923270094618540168528583163284223051028463348703988072660352598166229669062919261677557502049485462802140526419467427652205546906901999992342128553725876123216031813741974055797862235872299067856733640486562816526264455727360550090290554324615947001037962783123857712760300903793532608563584643624621511670493997938394127890746336614680406423277786997104766670307176074606572937591355097463785477651144187153791635754123362573089093895874643498875669623402025102366676861116329792536044149224010284903556711015937978577490092753962025356689943816114718331370271978433817559120472710411349987054709289409744744006606771592699002509462650238217834782580662297612030445414433604849806900774744467324528432115504811365380297522918306285939562061279578924141836296245499728501467405453470795165368447773237394005435655703918444133790268399950249313779031453644497637803273556027323140258964613371704402466826698867595147940062937916933188518902450236602068336854701177006248873842000876668818263077311414831732934537844758762893899816217784413938842778017744837002531731715586476914143330122738970691692295151318048587777395959332747890775541053218272680290781119015163029808845155934518750131940758482567150787193966807089329941588487956570755038733565621560893772995310195063257078523654157739574679212160386282404463197022314875452733036306882690976027715609890852013886444969129707724744520970212963179297948186584679719528092357337081889731745815996776126303155941499204948566465227617954195710376268406928100924831298432090073662217109359727370018420327549684354994709092950799076714962976117816427537853089003748716620602106375380680711564494902721308628679507069798479409654604067189176521290298933436904299791369592004597492602409366529674960067871936948077825575171143042239183941954227090895457476534980465441701468107083211283868415981467986248295237583060525150602086363948401338809314301746417984839485146566841073248042590721976511733264870254459313624971558445829186061965566937444178249446909481882514767135812748224969346990017926636194611964857470477136726983601753784059736921522379394928436308881148828867999728482499673671050007190300906333494949718980803851352267785613937782819627190496259758394478115784429714348930535547753420230117297319139060572401579638069143687366431668197847606085701586942333538838860948436214225732855534608052075982946129942245727138519060634351627802946500045323487801526109478326949750078325521280729968813884478904545985890831373879034780954473286961301057806138550067591888181799883835912303166130585910578166584601093292298395883755542799772687856529380032687990545939848940837632651586107714018105127604173449273489537462297602440087067760888753359558029162680513120746041425642900013451842784708699362937296201079570424725893904371075088997198645742319723630210213462340397902556572243301191808745269396071053346257128221823702394350090744578377727520697373892591577010068300637638338285284668720104730407453787978026308929211024466096127542015828737554205902588247549471514957330239452842486822916878930676449516343856965431054909196942126033317535416442130647323829989194217673043681351946475796565529803375411006504403194839951026734437089430242328056012042252511492476553168932243134859694889682676731570179355617627299134171870320406718673637483107936210149785241286049388859124051719301407938914555198327441356467277086944228113542082288611963218433785017396973358790527785664252243626147348451896041720586947623479729869995589467685807355770722154994061964393403236821285874109192970977717015994535798961881015047790597092017899230711754100098577041879343085647698649128013390793605104612998348495464804614220170057883916241681905923022883239656204296073913960029001658045693573323053769076906319598980262804113774909748022097785635022130978607402046906177127377784285847445371523035479643194726986339633103935524555152373096205927112319198530035299541846825553735806336121141051650736639736597427105198908111241106127110535861833882564596898265495653536451783006370966655041010707936713883907083049469880877992213988043943728106866673948199653123488188762383685559547778051178403902088682769059469829195442394465477332315780230149094771897903607567308538237870318798883213167980839724133129833777937550458368297650864559962983388629411551041761433060088510819195975282540358654761923376799798093043323800460421175083191454812183226336103789653309016630531343342472326588035834035694512590866872934784079099957076507523421756375467036530812564302576210065118360844724250099514146052258984062227555827782032125976783335172507979094221028189315028533987440881080228932221608459342068261524554438639221224582746391926575368296929247119135987013805916364417987805700069139428358811226078351532024918314699856056176157653443953945654843982627666498843827777294092615103536158440137286368047222074264102000809749982356223441575380081432639824876758282622910493879938027817959032223648271045116972326073118851450943545813911314606789118684646340936747178392349269974257899004086763985195087101737404186745551283852841481025167722487937637493228649024100420600431394623289683567507696575058929755375798077293346223643161689744060332512249500516464370410696034336537907802654320708072855279319849678536893106813941561654072533765789077990762011785197103959462295543166628276073253599329759823249585039037503657841251432570050624763985338441748601025315496323333982177302193451517715494864294104061465663917111860913716739141443150527362693767959844475096010627385696341633651283579922339780341355692723199639990599629949678872021278657917641469321858767594485937581399257701095682219529196329011724331842654544474119584045595361921897024146171460647799260585798467937891502805961387636201363072427273938419541937907450921845237944099818889928472528186439371225596019731611154135589946461241166543339307437092519389093547859515437872210740558478664122471648062005099389165121454833632330199300656601740224019422908006469691778726424974572531547908315748332398190062491776453466970896632130298403023046017624385906299826858617958072885962087829913342679087030801005553622405759024651932871195095844269574833267779305500412692172600373889247694999382986323213244757998329026758516413283880489287681794149772685959535112042051996792808416665273224124278120127354729340580578819116666059159807252759510915445662394431967506647117176422485986054468499724805934112409182472520295533583696690366790829499114730791377548347637167980715923260309925671908272668423803495992058183339027391069738800242550783987103889631262531806894905806168893631753007461452906397829158779472976225473296503360620870379146107114357850594507945607639935726458762572934492568329203330401526533017459547487419082962786209117561456646001709113123479312716128306765433594824501910098273756459443723857540511567055635636350330952372754342665631396550202279775448941939620020254820505691925218711697111109677746882603511436782099939568585018716542478458511030257631200009298078740861731944512389169967181349085279166257457576728770003859825202774077881100664594160537734946633044542458160405484363334939380155698100975538894921316067692236343344938991562960407802492928962631321282471599291732546202542312281361574064380744895158993432296263888547261879937830441607355943325862332395471700184734641505438297049663416645266469671427765750626495268757676746787662481325390698591177807645369318483913774446649692055552919152764263805344560639580201409604360824025246091187334879532216470611861456433756224270621204125430593045763828024497918920769545773763052998283434156917105077706303181244591093546799492259419149264004092336945104623131673203118821611553626116676297197525153578695296836656520336891553897328291562306628086279640449172353859763793008898265703994244490922240338359168898466797168251389350463151457975878545786560420290765533919858000959718720552885837446384142277348495817215778792828121225159471983697280178791007318824389002148961139815385131718625004807591519886304294658721580308425595921686353080173968451058673367132748123997204071235153395241688935994394146398835155460644439671485910113237546038106698334679055373585889291459265979653573782493648551823212402803157921062386456520208952635995306277713539587947435849109500003023420733706131271712906414102284339202105083096213207111302383628746394267601675183677110511622973785410074958276820104778991187760610300718660824367803151213026305981278027142809482715679417204439800230499364291871224009103921018963418876886083897823202520087294391027398219626389724091926518629490108768052541324185979221886843886020528567792237863424931943700856733957425444139833369133168052400694910244745488260891069947454998566982531509801833013286952755859891718863133271306633262143565036300509019321648407584531425885667704211003780718497784938399128425136580987635182884175576263452956144555161933705703083769754134847203890670485456578199441408376486208101803339524418983467494028748001654706367433502424679207593948495886259242791186779617584786039201063295213666784742839499443025686163675981217054624590082498847157523302491436396979588903521243350414134266812291551472190649504767115384959528356404314928850019365383508859169698473705731660177401369236726025874939967347525762148455057507584208515805927045288892099519460290745901876579061463075664818542281027838739059917165096126351601322932757262713449876781397245111774478677901290295011655336951736214452528783841922659824364414991164593461845072795885420595953317236470333680375956182175259721728130833843357054390341960617072427924616576940777232756015307547660570172413675918207453690350099752984741698817531626634018415565075768975171862672648001812130649829468249249817243367583530036328655154981568834638647763432916160300760025206923834344888978971302628966865181873466621172503791334846740458907964533149998797295054403045902925774091152081477770046125647658783369055167093547019628145819001006770372951225444981448499802286187799308253223371762807816028844061409935310958807343330551468956893133762462838423628679003408996213367936892380010250218799458947089599695488320700803346400289008057482556261814400668747772443081040246032086029374625279342313121373541767666784714435596320013425271572157724804351713097192811779910805295715696754650525608340252364931189722773369985373934180799852790694626412152908650487111787310830850512933908773058933707234304160833299741456310922050862154298177842950114617001344318681729193943122259544040605610722147400802929643184378108140572278247197101265540475075424260496814955845818914312500608040372806860885885232694143250615220930996982839022693946595619515656328593774045728994085802244602520591396694441480126926640407892806839841696894887685003374052169275668352667401164488074201523948696285395750840772454648439852116439921694098215176289412659171770504563857326416846863163301970331313768331203176529723692248456195557021246686766643147489597834147210242967817046161100481792972497269364956891808138652592930335409037886849860742048070836333064587463406702901318789254320642829038671852395932702335003739243520872760391949438828340619218264307664388198871400413050634796229118841824605179751267501767334572446174458579172322935721553161404230636220520728695811753793920915252201157451176961138119193683656171616764779158236587934135045518148627336834638604767818727070879948462456159943656899679512728525249595617229131395133531159748553713052768161136311260743092312437517490725714908878472766457002590235054679767850936377081717498166658827183473877087212717715424183589722814822723758356289308931004243622755896394124454312357357636837932793845715845907953893508739963387567287495428752851705938207137505788868848967565522350975736066074437485066662430655065664917468332408420755811091419509824896848994328957001325799952482145589758877314287204224855620365669000917060136185282611797135082820512588674203587084114565738940924340211478052446283769160994764230032456383496469592062216384998098958100878051103088078972875721824674348252595656763473468179660398385929876646727930115048257644802075763091854059006264422474207050717281135546755107418016126348650326853120632437571782461945542154889708853086400362098877871059904787709453118600519668425126630483653261266349273473138754360184963770252774311639224709298576015884535183147804320977028201580015648395146945461630645631442916222791756883908644824479807190310709343836874594990222477127232603240080278991523963493227042708588743675139843137727644175558693240011149579667359438192161569493842250267765294605513405712636214497061582855321021106559736196247850115668713355160126618655508958602447885650154883750450863927909553248721413321200593973505615958459555845359091200127166381095227877480365598171335519847604315629170339419157261319558520190174029547108658357283554502432925736503352027002196703021632463543281523610204259831614671479657876592998445099515901934586493954584977763948550984536890239391421762595205257304705131469363918187604557051414514204177424053195503236183421880714215722761181972257359723312414018420268872488436127392562512985802670849991510542962894288643504400155477908482476209496204510417596044421759527963639064846062969371167450273708111593856281460273971869348567808411196201194051055819548090760402304096555243872423793416240301231279394420065648570690237409310274023653041768449677548066189202694320637831230950214210022471904703649009610721494717145748861027936895752182094306394417265567364315115704851729150197666160406910323903511616386527648869299656130459927031721895027742323449874912572287292462913433352758074334305052999777952147607118605994043359886507030187755145960323618861846385526510172353004991228653431500832591214173059115310726746139216482181878167579399091662363601371079789412210747857058386054438968090248785910164745460310592687116511904946858270484076374862301110835448020726524286463488412180185134957206788389776656428628491978443008367069309120155195213921761912203003240916809978915366079818411231832987718952019850244001907015054226363425542409790083709453669367410558004046186085958230637602227193745698948498693627341432382388216205715272244353881483583568320399389674985446054460170335332978963065877456737946684820921799361376377546677358257032371454481653648364246759047265011496612249613924832473608908582374152811752706392518941988109184387973478511334732461997963348343363623853862442497573468832905021188462653127175455333354496292915207302893835017358282383958727728698822292680280122062407850253079636776320714728891388593261873313730269326409366420687736532134923150308099030406992726138095486121837657459997325650933539917385084585187458273824331236421975975772455613170955111790586506553380748133858533816668761229505162793080290827496547077860482818909119051113947233639053636539179283494964149049462259146515820107872106523062156162286634283621145524591227356595018723040344154006869823257796307586791723082067401712608305531264991975861547642935778840717855444866060307132657797883842094613645857767107421074825360106665912446394675019908772315683861565653635941926452682495186321754342525369502351478982109449924153534612266991703373499568418598983290953640931243618535292773518977429335826423275330763214169622838791851732080081342700799388483941594194497861879449186482897573098213257164175957930113059209061032186138195699874524120077961857591847108383033532707471418912140174146140802446780884881452934757452440114052419679056254748083182312337548822515532444873454678256413537892584935996260533318640841820117898788660764435489211610392325149292304085865682779406063412532444422281473367814515546052171044739392726920916230833735114444564045031845401094867514898653657119676548407311295191246540986806806161043574243965196119819870003973841882513320561055048917032391002575889612411825384810448651376801919629057198263768478789571607824893778373685668792393656916494612843960287217892000147084944061800850783781209699935590395533795722710876366658447453154635731453546036126127132586194947618983127818145263554640422709780549864482981634205010703460941458982106005746954976816407440847451683067766298250954901273255085608139418206677601277962580505435642095132995583652966360732651043038563179886523902837562492709280056494145796384352704310026647425163945073994058217349051530980066576643223610468099735950996772197040273120868974619957075358563882858802564478484028331123228749565272482757148229935454457020147905703117644236417974395527121801805263794649772605042056891030109897446760166268041932572925054524429743382538636050426535982762323840793681047970192481925000844799099691200656724192228813055130547439507236960450059485203260418766763518872951350725935110912299564764717331829170557847238580332093692307454034146359360535094311065658045938328488314866343692805618682512080207323723643855064727146489840174417078646036629481408275295417583427016787304647981822240709536166873240338329646255777982000727022848762566852005946179350096992537308374159754456780646779141121913139645754222027433746801300661302369571711953059551790222819919566146870095527497946859412969079470236343982896846237104473700260733374155088131363846387836486822640734453492521479856325685353335195837117817410123668191881565893833487497940044711179294513102600597283573617446560533154549021855294319559814665028861064992906005950981739569820883501721023552239634930373425848209255952818771462092741448016613922282264912002716904224484293918345504524422898420027714189466028262257119721158331044109323842514878885993289567743964828185982836183189645866197052540129355308329514219732436083791105788494841852752298165858969239104793169797015072303878760146233761843206122627369125878545746609333816986099068558527100786280701587079158613688723195703011221085528136338969089051929130016691774843000327341133630464413365340390702332542728891983240099079989950096307764671939550807710777993580563923717139179806812366265820150097870863946449782428904623871053504439903753028824529488721380884627802221655952808712284367068693555445746916569889082440022034610389106712850901565136273790853221876508260620834536718154768494614099135614661393431589805002762305413337423762352193893621589690749184397625284129917753037876832652843940205951055375536778545736832937699586257925898558708585579385990967952785150633345292025903093362027328859749305207337380602811285631906387624594716607871956427494989364014623388619942294686582092788643416418455150021645135112237678122601348519239143166267029442398372134175855592162219788394038518686534677546595409180991582494190027254555104344477447275582101537572229692490970036880788778996381226241492421425056324814762654124900537329366160969820050764054992473155191055991900866489055967286329305704239724388818127114883634657542667320358659268509577919652045849353704513564958357752868453795555715655458158997147676528324952568832631979587817180357746482143518940190174182909333458871894653902717948096515358820250702649187113576651296176518633342434866880611632815233129967460510584195371025392686134235644885673598905493831314721214795185766330251732740134869694620872826434405819119215796558176475395169273845306692343337052549914501942436097218546498829306654868297995871753643009774993965976270171917020706238991863763975302925302273551895996371109042739202671895507495396689409490990311139689378689011724134276473181995590088972318702481265331267588033839562642121673849273558000579396644306412705048565118379679916335624847765512569875965685115950685953664784885629190248648827958330788382750697617611516167692417856896991842377692743395253347521802487495247436300740499917484631161107061969944299672695425212150861649529945836971865667219048066062805197848366255292403832728433907338944948850671509603304362255976756129951028996653222152066668490325430490115724800795382576442040194788539123245093561705177864701304896841052388966146868056880516305798334289464025500863139681645851556029269016436567912933914552559546778034538826410535636235611143504622718195998289482087627119198477744755871934102349557021819143193973977912988114422352107025486320812551242343690529955079268421538085934839792369658461742779751261639089917707750803683729900863031087202467284970435065869099129770902124786961189895534447440250442127294997329084835664188103564689170602432313549204868004719922048886144177273599445475234274735799140334992818199568080962611440232175976659976018026780242195863501298753468485731339083937776058370377618155780528419619808182425639067571432187154740521884269017990038046124904817797249426537056275097985660339224529367206797102095428289142921721742417458682475141590332117767988581858583285240495440309305045045083013100781744280736435253611949702085133771678139878314895953174384431963889994969610284374353269346598768926690110750999497757717026150757849213450662299150772150039350213309224110778741546355847562763879943246818785087664491143981714483820061138971994181179820368024244625575205562749181776210197794800723443605474488260585598572376646914417726736513918512438739547654109571215934391901091360675902206300982164196524537367205945984258242370604494735627429925197278229705261827737446023439841463676688986915932517102998867797675259706629062805672993852657588784163363192497796792577146600072081185806384002063532988548522761555742051479571255563789856145778413735610111505165060276924371184554524040039397179605700212556073713127962103571490475711892193632231811225161274240781453669370050582466922637043304575906728542975447711175221570490420710630776951507462142543067550335813755455608523159128895405346620479310808284654229439966441989121462611391886789278214362942075243693020189858923643160301389846257301507628568181147468253039847567310162312972508334760333020665693019823484573416271937025341429716272919631779261170674191107520393195022703176449517341754333466692869329909877249650635104507552567970475304747572128192706066955079027056864152314143981449630013971492952106023269908144075104659192992386760440400372972379255099908640902203147929414076872615819986458112037556045996644749427296498638100588873131282843334063894967368609809209278039708647843522058526651125300652445001280479876835967746120701891585939722940261249688784311275775989290667637192426336491023754900529683860860927958907553746349719999263144189941776125485784136792723287344852268673727400171283619016449268207359224606731683097095227867972722804725713861545087242311763055146330366252871676441487440906011506990285270175836642746176296115716153215749838872893757062467514881950310049336376464516615223039829238647440456489087399410578350277283602853230587391286982442047919673775961098624526831355076000106699808743154587790775432381116864342329625473523229396422764572344138826228187042261400613231141032240229688525675712079127033428079421435930157210990776162314751133261983948557485165856298783712676696226453002511898649163262112032677170247597501210168070431706153726088362370648674177323225475743772538248585083796874547111843151872979294590713290541971570290993616686809210249688435024254533100531294955068563373414046578643281647098526124713901797800621592973980636975488443884824716783404656811391771232325135114629820430156315306087339881409889078732367206301243339437510319311764297184715898453725732224890105563269199553908951560463111746484673648547091929514795599028806412606000819517369409210901067775163751858423831840094339878267183429182377380034355003125678349031281900763302641190727740012096200525263740645878726298978763301773053601060056644770749194561983949759942261153335337899743542806102749029161185048046689585943833949318581327487017265556291552046677088755098412446825564356477217591758307114182587447519585744414801236437824733013044521285253917230080643886182023001244044876747548912454242342979793471661371991025373814872632141777704561209170615452612057609242040002269950828416479959472683454121885671865186790291626628078428376859095577629145390930519599895882631926407463447148977123683331856158852314375506711957405329698094797485235494957212863026686714797103051626121452642075503864386214249148898511631762673925110406411837566033583887576522484674423041596886613448895461807802458795150208335469898063547061853539354029701631586998018567038678853876812367424757236365555913120671422912047289656649497149937345143444992242448766511396243863025950622943341906109069165700697559056280092504026348488448980803407457172633131995346385580901434805678894026772170299275633035355605506116438692420013345839367631277344405162492681802277457354770432729224611918333072255137301777914338543990497627413174612730140721470927363858907145287897389085489004418249603752392971113079485305362540403111110340990730909480232349954433978299942237601529360040515741317786740053461547379016206671119566177099924303775162092501891427499836471953717916366191291953044028823421390564627298170466433969725597103412881017168122125749317604603796961235608471849775751126885690799103939358437391018066473923315116585146590385917571607001047943346142863563003176460820868463882901645580226356546357424869800491779650336768439958376676471140203182375695799238025006444733703063267887042045182767443524901244685979912069695976884190057411079379074063873511787638970400520166297058339490083037035781725112655857003041951386425922195037010776198473459384469429081795550493240262579034495259856660828097225945020516093132933748441130402770134436140812903039454532219190194806765507708155921179138069343554624362123372665944084471526943349905331049863792486000192391329878320213445531625204112654657471756521475184807158462218707508404064717355556840368844991219404480018158313652209256450421507076232106609221581314145685488779804206079333559726757614312136592034938284028950460655060884765304624257082452178712163169851145155606518713171443978605456039736587488628035811594889725761392938073359745907101038801817076332237000120901908700173768182968684262392388704571474807313489765888759313919171632830683845564834614613810974146979613696785780939127088351460995531650274145700208398037898008775006476748099882178548589725195073153910050895436192626662260732959437180046654685404614168953099950411448176731290673590996451183681518443310762320227917895726586097245548915152174876243438677558285197267657423895155647814119126879411281221713612513578833614929091775522296882858479369671735418412909958700062180092988583095135113737435408035799518053352963234831079767288771936919173620069495182354876073542866361525073282997253861408892118727221475023634094842812170444066499515133224601050628648958309563305535574648752747672191095791255263204891348725696416818118551651304891760360951523180216637578585288447241363310719844912950270607794959221059593063253474342419507772805411265331495601174012123575051750400545260749710666860259552714479752649965844178264075929003049153701304228812100554959086507698999770846119439274480040462631443608133233040627454853224347906073973214957849629694827242206027402954846099553406302460479264961000462633998334895003517517710964785144590542707221421049684187519338480045475480214345284386110196106747276992188237610049221520845247258937240267352789009279217016068564181705116716467077519496347263797130687391417971136417764482146960223134276425670707240401376120055794227789995108885248888837724763115860863172049357972081335029726192581423994741374772130323049588655001768385658288325236267913083095941045385792289335876158538672346821685430065979013823537042865356686578969482529187762477017310038737518281649889866261821408943831823250706048301758044019930184290676939248886976559414032880108282269546293269742965560452326799641084412077330494541156358516555734315480595758331298428161638122804676973207519198357389430874209726066732562338181120518566763171533330909371729071404467878611987295174995958967863325933184876418614819293721982264289274473157424066819051807116033103423848700726003153082198553403150690039192433770048459562638688270313040318048299237055691846530152634488597376414629976295751662921301054195351233937200358898624693601394398034958286307002545923668158798359158305144432173848802865767434173790569906929297739858014463466638906459456758377836312073844520877592616370604186767009436136735119933627556293682170673164231087443984681944523466757375587371117056536457799989791159075820738040124649906444710699528070313653721908601403119770749596784472594072321246131946749840510580829983397146677816411148618850966397167579509116609355500927729387101355441525333333217791179862924214973646022575257452197184150853559531359403066641403883074865557849865268388457830277922416940199234362107094171437690765610866288266109745212920317550988154107841551244672007596846409230955461954851640033641846143348661124913190390442208140138794685288717416903795915799171051557081151862344394381189613371474330313625913863193827678431166167249712931260336135178381219500935365849363927307230917534913253862715596139111830954216453432837908978260685620140588812353051008494863850307931704728452693202724460858404268319699304079795904054465480855621144674147517875555217392518396826140093461727212739394663723792441067237804556506059658438290230510194450795095832198624338189563903151965700838294338001591205595744016004567786180003283728790885905717330247086076846840411200197424391120942973291069336854422118572603508525342217369171493584050676871628478399388290673410484327056491802149626127623210899760197991096503680607135987611703824175950164324875627409071692188606929495069249222779471079188384517812811050155896376282337900094873995987827656840114379024213560455390576936858002829096155445149669439089393777924305129307961087214150884764131953164266553273712063381647974244788604213147196669994581606518121269397818755036778755261550299966325745245662256082868700055299642393390488662515055455842154520632929275830267086956296283781086137764856029641468062620983059594490065718027753325559633109210847622982042281522874053560386859931677958266811971330622091249911710204391580803453089944040578912827916541235190815168982824695509402276904174293830449490814068208327548543273434854366585205816362601062050860623806365975595880511276325059273589257194577170925456799824484293084755679763683271277812469494674656399255121830418211364598151086277652516363467413676485342131547096306000214152270844539696787030393780753206309375191389048973009030182601237915067530298486735767386309460861601846673462744408545203123106319793411545800605262220397629935080076513996772275079692189949888474493677125627543518567945894850244199500455017107590351162182350451687631309204895225036833362378011783449732419760327407440272565225661400508173629610330322066125375279981690370848034224222881279156477188722281170544965185296797904064014733827551200557755227314289958636036229728693106025335116066351944904910859228814770006913056502209300131911819115601139338481127918027671027222929528346706209004336522912247219775117988093793150285554630703108068483132725377875749018401224528191145616393423796507802516398894909317949621721455661202080428231614054257575977688378035325377360749954074974481356052986522171314639507011641231255763418369157787732517369702124801325220119460662647647088401419976602006119175202016098088490046644453075384798350126870876854211139857936994060084188354270194141551257737481132591091986974516233370142594754037184402159610929355962275560291205817260980816174566535058658581759923125183657743814318769788589176154299306495840387753741926904270021585877220527116137609605108122237472684380692965296542046942937433194513549010595422802447379143526132307890594103884710965137316739783562862006874078248200812001311920247725474807343843814468502403100780511236074774463798603252642137919631904740560923109188930529956260684380040280014594043385814747922039225594851084823262912132437414893253731143150269201973801770796613024469835374841470499028309902410281951400318607687320289307683224115672413566512705881154839651919748281181814857954266931330440028911282028047517709967928311080631703048737624523588627491555853258927376781827180079425328425815433715347781572330988762522319909362526058864745306426270235895007584345412113000555655715399705163703456060193542228309893144092658912836687198891506859771969525913614059238347995201721547446267584121094327241060627091944819475106104413521009859576672776305065748969054260266213479267986042450369067904383719594746764521317669754282235668181441933284403851072388550733797147514065914137265530857772992443533802933125691411144359049883366480450360578540273628433066393466626830871649284071092946375511370778317462216099916882460426811969616940715059995436722005701405434557484325101733358724517925506133437077215623649255125408810244730067887636363322301099158292591890846799997458933735385715166858951366141474443237416259492198721131426417283290007221960218520394266940005123842779964250149653467706036676579525049457040087781087374625468327376300080717417152171514797602925764618703786740497338215252182730029250440118073399341050749329909419940219615528278305168822306475140573320850352512554976654637063127900631207057789319545178385987113313340858570012309627989953586672917885573878310453822143615120792336173148287057285064821865591506589413088184938656989473013418041217891898399149279577436844648341033095440411655838900630403743733303853833742692800761008088373488969826320362305620642069339112882324318255670107913559470728136545296990717741744788312571447159198754708711957691975057933929710577197938197320793590364086303891751431648395442683698703064460670551347205660595840821355494436637247417996412784280438823369503501580791987736960732137599903744059311169299079819021702332708890481639003308647624999338434039240485790860435554570699798661574633614686145939648160396574127790164876425056695787008447692602668275451281831831300074266284007717858574836109716530512834984166700119650306287500300005983171195423043117675401064952008212622316867248179854865035666871946896286779154480813530449516718072656159663521108247056329366610019505083027743094345390236595586935905484557067781708038082349892833829207715464970183930085360478432785087053318221976907587940397609545566528988212318125898574748060307049681330927403628672802243005634743810263676666466350290379832419098577204598719568611551750333799155208700889735454051094117526552349498531162867460556075748484026885635977649316859101934391793765975372844710784328261521827811476352984418800384762425236024172075091518270023757482896730509296836529625364676521281990453521499121651038019636383601202368581165324928031425772826995115036127603021184676623528271098570616692296599940032566839469128205675790376485604043371089796270319305877590181144175338016615017005996612771423863260944981835883224564661948265763904323452482277783434349863661422232194865682692122240159946753002510655816258115445047415878429650708796268293210236940389560526935976273287611895422316194771330142263083827223844712183951601166489975931684779297791363080997321734720154644021407287807199440795021081020815214461653662454236853104471394570181484622227415416820576650117907938438732981122356948582991175834172716784800529038113274982556067629794325961014363876748820478560478927096688187134989495249112474819026119838696289410236366690966777128465254335012905616543873730955881341311321432711728459638985561587737200025202872608354226804692462680884857721659913380925670057781841811907668050187362581095393440768584619631735457733237716615802477306869877651288089543676526227538496528930146099592907878358892949586443255433421122589894601565786969931932528956584564652153767326930395237498759038817101228012581820217208521386359751815210653074909009936307230713024830846129313808138031154585324381091869455476563270980236298672789293541171778155760926728482810033930077993574893647144770951658334373808970174913570345262873939658104791599008598130572853471750504012749223283611351410287459372510714117966791674334514019638766207150183365254166153852346967796446298925187253533480860768492019446785288338292532827770241582714435500271818450800036428552121908694107242512491907523931150174955912538128360611020343140647862857524355920893922703499333377969104008984197346847553197075914108993762974136726761541883358782059398489215535969455687172643837068690992215743036494540447960524577060703789936217465987881823849235292741911355786537652120018945708752128943935778294921126490082698527001126010222624974429629535238952490461357825602361727903459358957403280525885277308361749427426201226084295343927093573789623440201847797325402094100991689701867784961308899398946305773537417505459887486355684597229864708193944006032509565251891653229687445446332388158048622691294908310062398994206667854307559799958047227925378923779880083135705337884729175830700238513814417211730316391369682911128213580267812319931477223433197939892228389916707699770975432141573459766180550504122789506383077543958040099683705192263964485989000540070535364254195512865563727710049800246118626430343830196965380382282982055500430515589084363041693481947434231620421562341917740934765218517156989188364564313986536035113213889192217177746684604386298722544294626274567291366282547811522559013683673803714144657260665928804024797825534564847378470512642544145478662777912805396711929573877964089367547555952959693257975382016046007818568207453092335002283377999211292968277618061171990825016406547967335082053235424531609342962358357000547528257882034335832783362704732056592986875841210296174904031038198438201049430633228028679681762984930692340370578459147701735937912657750609742063088436509225778461136609711231930527081146429800594206683949418058971554160032465185614036779415826970006989548201041907475075111690541524176827074154893381740224485132227862966292848289279617072838861626400092345903592834324875304133748084327320559205939988880211046820594717990204437761141306643421467048747489552542781567282977349318570999547207889240430496883446069386290550462665257753412431665289614806327384434394195789075524361548980977243901796646561269105204943996076623450459471448916521118389860780393071148415394671013921666856412099048578827960707826433530608567003258031838487196635618701936627484779745597843744125118469142665464224205379778420189779434436440608949859582748790263747180838805983098369367565787404453207932192296816165787199895249847728101673673320569749628186710123421882494223940902026766984743010441728140372071319834210788289407058191718892353531696358488050301499505365201706398586562217052363522288446145559586718450978152246591401194346916724373625855273160361996965896818510618564872470529620769599628525471472479415222469454754916466279271516893867255590913365895663106312999033948539280387208529961864289054670520307618424839220555606530104171765580268903457657689099867521712115868499132184440062249007138368041731791276990134289673417198847242995054356698320817083881065964000051047297477057732227954569520627811002246779880859617982871600138804454154543385901309509404063115228637590142907060294703258798355188202383574741573850697842383414556672009182715586327576177753780572869475347599392267071157480013876014224133511084583872426086645775567978357443602813753453671749855328517782412145250446574364746252165574711642561215496339374905989126609903462475498792048330046658588141360986891787525349218015602722739561884993033983725299238525242827978964766025674190072051140080782250609117485032933079094465666222554311091118460541399930798601269402025044847362122694112786971527303366831671315582227204405532946728683079483830396608299790036683741857594971564620755159377723036701853764062403869274998454284453506090725627966448680758916256354698809190424320875250228742775138850361236448258117069391870137234670388249579936477190541513432181042748135877111876406777690607358043643505381918881226401551056989099978637966776299151393535789513789357303096971548751131364430191757893252601037497068845320894836544451543577506805227725386229272722630266419264176668615125735368161160153900219110122620839838570960758618161387359958208990651549836185336531398344939305232085323020519868534649889554614068785552615550205948488795807584734502322083231224409599887334552480027689571146413298717161211721899643300529435870633509783794231588269544145301010901734643086392285525087204026718211183402922470323482437459756581822875865387624994287022217455560361114438736135956477638855103130676943096461992075302930887872731897446582042665228517328617834511120191755298720688628020491229951897802876152905881811456914480375004824193786939784450758246421130630390286758403826058562115809042347073539741346493507573473629872260452381273876402290868680268941088808371873662036838817285925663128374538680819739097578942387852525681097899400131450326831323029335915291514482153854130314004784656851775872545555235577732697272389276417652835320837780187770606316967681430688253542948051794180477073766580658302340991774250980405000698807089726965361690421817075061506741369440373105412561193287426589057002551786701375103038725075845322886652421588393857092065726059372029635272327524228720424761208011684065968671610732088130495996182603762521598267656726702054179313196045827950742083819846394437866093534234795267316791382627206311479577514483226324461305319580026609196453104413189557008844534261253814847016029087145349107606723793645466556600669950765382262584247026178165125544382250517579734102356961558486882818014938778042088363715665814445535772702315312018933554150053804024603698531788360536612041849900701756744604804178264554877466610658319305235542259807200996197289129809173912011276975824143533106228140062244110876150531948036230304200314204618616873861046915669345102249301745336299607352599684047005532960349423430434836799825289258596870987066849608553500486808951094765035934645271557271265648614481434907102005998492318829353285550268057125216203803589317367980372647571368555635244978243864051661528902192907009906231710590094699717995744596559898872629708851929736033791931176420775277407233006239216214354350186117723100262442220580706719818237602208173356259261489817114977004561710171130633213552858525377668679708659441607151570569064617517011003503768239808123110538094731533434365842153631042986636212286305592363936326471739417158494666663186249038537010578409401189299978143583385255404389370081601562218511140153186328900095908163731915408991958975673590614541842202741326454973387471020031464916915392086143809775841935599120178088648606907765265337568831256904272863403577525250076686613886044366527994832988981239228814032435454952740304210034385304258947387596819385640305267870177143657852560618738678275113279176085414915459565243416353914139506628443403939098012497529835198879955458034696648161027393142845711648235036288701669562572283996850353546497778500840460440300591691294359301426955334095912166452076069181014174263921920279660102219086639711994388599976892164545993242401439608079822121585411401588255595053620031047571208947138963074315035346531623348255109411117727628428510011402853269600041905413362978063791123103597709595263146717797829377501912888186392063901540581300190956637428000444669358987773228671142367369128282518282293527219340994071476789832738106016171350440464706874504249601184001717847184265231469874184184991998116368553578736495387379113417008374510306933609080910868236338292065000835830821449884774357538339806146721054627049359563702107616096202351601849571810682221171767962024367651294776723316716439504099276483181143997209798802514265208182004080576282448649859121640253005696422651210082519734831409840415892808737705515639541546091127408425865000618747529264010365739750946999876141256191056126357943161262823670099785176733006870171850256322593213322474337412974214276452132342422525461581491097169075836505826755822250020910342279961374619472019072548845011739656590824782321918045490384116910346321758309287287671393548856412534847153665801113085634039705366495740077673604413367964259843781794931539597886289404217198414957287399563312952865042410168460971585557762667161338481746373339422506534302459137895456646248857910376115744513676702271616529090588617594071122889704019650188089338800051773099452872480351623952057664717759850173481233416302735209890898431860968977961377082056950858863749235587105403477652980152740925838489979494266723973814604818610161351940151480950690004898802300107269250049354301541552554572314052693156727777432847541284038478858478772919625352943270099332147124522451680764202968467482921784755141189361079710428528003276038376391617846813954815404925278592200075394936986671514266659867793278612423496065792125299977343662289752713843863776680411347331750973848309759559889992396386685443118200564241240124349400285729041494681747732440269137358909649049049978657704928279249495590093032310181411981971897431732237948445712566155896185333133992245529872790117685286139234873655783174821667460981688569878856766204144117773426256700552752137830591678244762872460965098994441708239638320576273156038980036351070727668833029119995205300737636846110266466411588445279243555801759338275143158656192610916958135846760172353678748685011099426751003322702426150709367052125426993259692846512559482263781924542039576611975964820615902627814329949175254834820065319905228657564053535277136754954830057141493856960878784994043762697740234545699214107500905958518521968430177703523662810976505681254830931553137647626386554662640046209803472728858587265395169629727463370289596174007669304246789186283213070471209448271871316575116067129824807888363280589041670088173115072757366796805655473615116139062617364155583633039460709127157323076166797187245562334148212057497115460487797273265990798213687069047586146251186433911891258202311242466096222583307749594808256985736667577652517664595255884908816168032993137369166995601549821147378645725652700150029391964668771212838834751601427935383352411521088217180632336654056666643101392974163887164924311239399269019904517613477101366324291625613294068219123991952660238074641580495559759209931257843713084408958328080803607217992345567423433779323846148785521581748555137698654611165574348182456920316201184961491549845143594291234643218502716693214490168772827432641867966110264296214405519721938523767053958630370024433387914059691409513909271646617429371087085296778302788741031291975710577367018013339831714005625595373635301807585316083767612082461836590931231244869580539877555946969350491682483028180773007392906900268513581790128621306787417409514950850356520393008017985794120706812610614652256763222252955851626819059883620204340938764947611302521066314873057055919035241851382824026821612691525692328032856389584592956035350485383897110318681369049992301201005299129538842198870065991331041010287637765447127743359601439081916154109980095019750839363323000644223166883631964854453801822583888529003347874988917079139725723484671366416143822036336821439330379615410195961496849762856449119416259651447500642351387335233159577291059284934231497726553806203919458886453755038090627836828581119260086827852434549152641884808564032288132032242433919094879432890177891822581171412757952322924870175185945275946130705590909431280937988950092070392305791715613925439927672826901373015072367023322978281945318897932254120218186156978877026823334787659242000146673085407889242741630465161899309637409266753073555883611419811453943136915333958957418267505568893591372387243709992467165696826441187928526775767194147566064285071312339291106454218671155249165751541990789600673719985892554162869478844604163922233762533563575067884362726904780278001819349326129855144262731358924569000687844144996633710762596287998133839109737650203271089338223829805213407414269938928069830829060035332364360236551903002485031302462540104867078491140506103196239670138975644241507790688978103504309267936042773487660978460678362772052350385612014647596895852491327025351878106174853042374662461967631151453659498231006206372554329553035871251190620931414549247448756851103655974104113797232732118445469525690735350034612344069367736798537269935005624769603368910229535868378858527057693962289953145145984495130440298222465602161027333204294903577320060807137198316186492322135558726847833552193085477009427778851803631188912846276763744779332129532446693115585086511898145139704921404349102313881337627292479217981929401382142445740319777462227745378296920070773731184863231995983532818573322980467494144566122496513036715969339788779378617627743456195012739678760452061820483905141677956712899682208055064108760634794363163738582570772956982831396934012870810385573883375364760226194957958917014102959613707115918920484787506352576941194155237901536396185983698815776305501972074327668931188727194570901778405657188962185699806089234680376905026578081038375833288217828190741475409012380678242489985959971839911759149917745247552787383332929904549118202998646407356157936789180463577005995637142309168639797679410207068712340622173908883402775383849288118612086795700249538931153302971946658931523898074066276887085408532851848173649777787125752834835019090315904860532777550539676026255099401179527713258443823285582714179361702773658907020162459957762277013174481764158407910096663072247325080477225215553385240339621274374210509750680425061293644913822092574414262605960972395648576102729072539540154601605582582392181620179667294400113073593744665006587013569818078427230473652192280278554927780705162529470947746709937322566471523567379009885479797860512020143389178188302314133165539265935041807250023025564384892611575677663887212458042620124714778772583700442642191868322416063194825138447009809707782350520086583804706995170896481213637399221307349962189324658403983228335522730004805443614132780716453452765937364459721562897300464780123171758726678583238165676762643359793340779483328093576164614311336780654716983213496091445549385683135844934367948969041999972596121885208973528589825166685117879190240912214620411781095737219507896314833096170837447544067391452623092932045262107052005985650090269726601001990282996357404463367101912364314128473105697951930313250868939527249210759270479976042848484558456672499905344161102384187079435972545470244844972252111671877111763931566991958314337733536508069766491081081579182098808987978132494130445696354373185027253823130005614215314145062224832823558216190097526233683258655319534600937854245456308534234347827393123078532303631575032453665508786699380858286486951748968008196406639800247572231499843886065049104553168594339730628143855412443363184056157706424142719355235955010501213292661694507710730286478184652115649223898976617141277420108813305124400600546489776025940511886185594794073896481886441233866432432572880071753936151575053923560226812675793545488949565250378681668683158738785435342123138677718394075096867801402194083650409876661381385301772893986875095300258438865289168627281076765864907693376653655105950302891614759355996205650490828595703671683399245274637625131486753481338866689062329543852500925752193290441356561978941148243504581833055617197571680710865953875753140133550935565337984822815506540161444570945277608837968057381315950627676915381244880417888136317687997017873738100645335104824855069399480483608018782536590126353774389034199846043726657598267695749128878314239286416157997660920814211562397085073364613670756235219686399854812952176976000628996580507754973961693041402167730537860532169105251765893772038592349189334875773310883703350669239694431440961999264656040596456634285136921966606078925490394579335705808864316861006363556917071710648754974685714156938107608868297678340935471302055368162344149008628321181188744320094583794382534936961038402505348315863859554875392209351050059523865694538206717771372648194155279645325904448344733378904605249131756092562828897902086388911332350283179385033242903062343529575333047285012364651660356370241747161801221456301788458520468189913718274373272274938579248534660156526538472939287560966788891554835388760914479155340122426575625588549429787541161836057005951867776527222553067444151724736637928592098215941603727378013353469856439173805969353469287386076053731766665596883843098213501862484808441655151954519292091647703255377280947999467445271845034045624810453307376986869700962010714888571075172547968224888222550466525596858385535050582215928923085895185569681384499336408730761820613957485813515385587648094239739897948526122964946769214000936667350600483040133763928524737325960730408124259785973107452178729804910070642378563174559704288488094002064759760702325033964700113592266600778396076736923246753795317046402804408937080553564338584239222461191135698364977253901557240305629130987729511695237110572463825215452706577246176679818084913044766805995427058363780817115397608097624745260868288059482347876408891099017807429440897653375651301038334470410726964584115431709079581747648708250106106778433716303009259769726237707901142791847846483619164899484855791399834813186097166329785127744913417636920769409127029571661176093219025776998753133316753188444406956214081744304811102213409451373398870873214145110641526619385126416243572957654412460978974722793271597630238730996364643257889251561425855781935748944592062617789698652915228602090245233126143755875159328909667819291636178203534445994700086495970197142839219080572610906556172490809217918966791208032961901967260310925883214960827490602030365185889410178694802519578422155702859042845209010733305229373878864012475611800050828454209263229235830784044803711735639096092127750407455172485006397219529627960176614842293611034422378662966750556803775580255659407512499830460478903356890594007242465097511062906969778133201861759285279128949220278051017622069968307844035647098298498278829561107785766729009277605061476247858261222831711591675926376126857860274035778028786219732546853108557370936237663295413756066142864476083302286715700346592616256282389814894605973982944007698417691423014515819486416491239975127086760904258371610027560300280276828200932887521857117238990239532702583720330537754713134939559711393783453396904944216111887525953598692224380992265849215968810383959379858298685441266930636121292453802827036470704008997816679544761264237615245834056111732354099818167224075450719926859521351925063305137723204887735013601978133606845140768865914918077033135589740981209296195019894661028054047966952445726590160121533204252585620637816276386506611447767544901371460140045483455422207367635336220909173852332490166357725943645723581360368638249159982119758821819008008750949208389147664190903357292516052527031940471730157981350788553316696467680377897162629917461438877711930832557012139632042971029363235102747891753130529337426067689832437102362069759209048480302587036519802758563441239782680182775498383687482049021272110622550625940265405599545735839319996999604998960344900637784322208005410564545495102972174168689499574714787078423701975509936122123167657902345167927659347645567703283714353420434880619784693639109429350500445563322376053202742750167272075387620795747927905394524758442742410419080276348574866861183060142308974052784753580336570584564475943056495143737839327447804973360316848189737517739244653786250307902907279006929273964428401830755656423038040389854631374865840448607908410987038403782005686733117530966490933284116532657066172225481817816941511797132582332103444891888628261672157033400934132058163775151429214581653761117519638046609150322889942209883800189956638631111224161578935924709352018160792624175065795416126234102395562350459676886220487033547446179100290281324594370838917300676622767983053310674143565259902959524982196753730183862944463750456834781533330607460632860537241559136818021949592570999702244923292280118359996639215105506330263066364755135438147619835988179588104763157846516497090764209531487727969819132557786212077291554336619132379188425620656262061163459161122276362242385807185099316350319416305628344100151877796683568475257047793840543839312935817352736474645556018263758801875472117498235751322382236744308568037067967748355848407097400201019162198693735803510073119704341355308043076418623698143437323138970540377391602703010263038093707197646022763950311303428004874690169821739875165969141153991855084461137397199367038959411391877155831206605891102811422339661141839643645339017109851769685146682949229378622880289514266047519807029400775456644831971197658049462307750895688477117135788401300062576446034168048296332195311817632649404984199658553202789294508255325809212139455161420871229330787734314383741963508547813485140777870631606113860303012996642327031748203281770866840832381167640892715907243362594729084155031535961101972753898511036427534213200639628253184521732084765310675819879480237879395767945575979943469108383933440133252197060311845049775630226169924831098513649393527184622873583685520498096742376550552329589143936763265172657225559252030932996956274826215612272399784347973334230902709517507182859542856181046617901833881835984492080307350637483875187609620527390952218777215317932198171124213153023064603896592595170814690816129197040322820860120266617728173842064419322147422457280849387495671884849220922096887828414958026801927481688957219147621844470801111865792790054932640967193809245881362460423452242541852105849501303217782035932186296431723365782936691829753128182396574149334451297763272670360515383636668149511414867308267258484874316002558251745501576993819795737672255977855213932090601333379304951894170695983266667095250785499956473784997076914402814971749219647738176409487522232678743572790523520558539763019960341980237445173826361586462453991999166548711346152705291922188675234500190101550072413475724401068779209288626749937975030378212198550167446704521005281512684558261174228188238546397460382538195726735098925129192831838291829924943834667608125898520780317702368680870177892867333702736106291229782052557455685793708954499031970065511404081312899709398211492132714957857595266799501972729366918294102911551964751171897789457142293710181986290798842305634554211241608597777191465467676859736494044546265919410723735948474331377065398451986297667541029324545949971005401385028426761525803319024347331906352115388242147359056381810787579680743260543555476887797874557971668858754715899919543597652964464759720545220582032938776500181931441363309726516379477191579772491356898714281031844537478771056228159728552335276644095628157632061567561122956449003706887347161130937201443764658545814011310207776338302481969126191513662173991755740267788205699572260983670247343559120447255934600447706330674670543006630117131936332676599271593378216196966466017599609243553265700743392765534477651754430805414444914355925322295309243118338923964440505966625898153492041229668044316372152010269242084184022020738221519859966421578819266742070721153212066267813737937394524631700802797632809633797667984462847916022169548897534318725012601605994715788531295538199272530219602194369081453010114199599596313935379519307438670884671702895104546985198524029607566404873721770043462314774127330317611073492691579802851132378320580183743288598806429001628894056264090184437526966355648280673819422710998757712011462894963655745858658657285862738912547022672158669026030067548129430085633462662082099550725598938552214809177875715961114979859194217975366496676933946660745894254317709722902446983892663482915507027140424263862124904165220159114354658005143604526819035428227533875760992044234025374172482183803383118875332375911568015132196351605265314409203805706813170493933382648487348309281646578877955502489942091611310771815981043004500847633609581772813394466486098334756803149661768612289508312040358195518195254413414760565591832691305782788817153305175191864482871486286735512979264882894899897126887713539581244909143263829602158416258873305483643301113121944413028545235637544068772989672408726819452346376207130424647705273120619948423116517288539936854912728595930719377967735331046400297805777550419103925637079108501974728686141729766688198637070416006390061148671532771940000899471629861369179115606740482823656289434234533767203054008442854858468693760764467413226424306446272637130505716527337818933182344508271492197336693088032569165523932449368238936322822972156018093547706241812484621837665079954742294692091318185099039056034846277758305248981851785820084303612015621334640845932315635226978963166766036794157704146113428387192084241442913680479110343271117727973708356137897570296615948446353302276163224474029858594590759465127304033815829478209699383504266296054409327885523829962926298146444033348654651405147319682437826595141960900323762434217831089295961478752794706863907125646434615868650260707049267134738571013288321067955980675296552662838714752543621330271312420171719728389646405615628878678624148724484390005025522686394216048927065083302589074655200442485971951077428545931926117006628208986477872596695365134914626061911467635756526841112226446639595520727708684771133797178366426696758877950097467870672691994307461028135250126752348910942927112548853258297942659788815308391803903505781371232956878540839573645028626906168628217093900052466639931144188834478228976844951996736222581585886748944552545943341677136307166724098080202215073661081221254576135189748641011016789723478677775838066948819398423386427254836214406205630665187528614029015008935792301722701433105277693097790518819713895188892260850090213291404148670059631188011864051226851151364709106354492451651517370576927932122995407685052087168867277858840701650790446286839638336679227627894701063996691696472894562666227598603360851349108122447064866862473816494600408366551692893349361411750510414363056268883034353419886718089356100462877850856964570965272974336906502443236477997422068936691222692715507667998163994533972287070089575842803494079178490941016937841165257760151326485505212649882012736275948750879948708600135144131229056720924428235634862602072744224956347978437328759540583911532577094225207418645379832065073240860748805378794498957485895947852988144692076799458085801484726639991718987623377845404826214102234461115148305076223917843816769583795208950155350549376714914105054599026679909034438809166925315100528776857942160772706121225477673956069440246699770403402105437986359045179729243446881395288022615408573066286956472497470577046034688255966345799197584885180004124499637694380964164628494784308155769350222614566702188397148976471782612167809379252124765745789207801958805167263834564311733775531872151162993379312110187568256565369375503453642321601993971191741016093367311943244295988134559362178487257760450341520079392035009618051534890726551548881735393360674606276901717727190805512559137213595554950655346304627473075286505352373433733239488118127302089023999851469131405656856819759930584279567769038569863738018235494497598204489763997050263761690033068734240279842757353647519886386791185179863367399399139191572001163736404595409426316994557315938658447058364002385342104577473578835649594851039512895528137685075857783670825231504214679328458991655989386417024838220796251814654566903702041886398560979442489348653473501978291508812764496816824072766794508139678038807702227926097887442266018249221241523132363836145323885690042102642438846988379480061108597211072093947131879694241245618497212605602899352378148911197016530951756147496065875087846604420325882638931201442263930906186570929475540689068971785416243666607308987554987798470186771526683190530296503760895978521972377137975381106459193449716349331361053265711559345560921066560864846870989089327212423687242941674925828022713393505638306104943215581168199435912810249567778214458059382602994942636271613168867211437602122462398723132543753709037831102871246098627258923085455989040213292430038560635698024044735616115176006211419150889112236685685527723090627020644110166253202757340804899402071123225545122358185298628361371708173207328645395123557110328573256354963426090361508963820191645487923825786543460944496526237633750224530407030098888487379596593578849981535842214586166048420737530304889409375976518018121345338965811560799782967028682434166989564968444165803215800447862467239421233085167014539926789388744123174099508004669942422207999689838697213093759191059556259137830703267565531098529732997824643499117326210504072808595225781785981599582376349221334999322841198599244590658637383943454947036352014250838720258166113508678165017065369027626546031022697849914613920380602940662453469324163260210295641946696879312624629306947783168054400958756448029944398686914152834434703078957099364171785202337905451423039491822460208746195827501029024254637688613897441595346327602211006901645801634735180092908416168346507802542508449513556216710118686877177901671921488824502271617274368350100969444023885971449389176512620247585051210855152990696922264754322268520081777560707869327220586393347924837192503283181343082396394765928827772025787873808760916982839204827255325090815923356953738456978194217053679165047159935289872046540629716456399532326118439623003941823554538342649188367572823068512868579760265326453766408188331279776042965843441965749347442238459925667429890569805025513585687648788693070029183543634605584470427754991980900485751521610510848003956084450817203876993141869999507394058996465576603063915417081957575626207560951815802951183672945443106622309982447084082124717513830733963520422596437248339110044318108654416338672975434570230646519306989681805980767687404029642617064719887363602236613957628474953571290561095681759062547308909792014489315571293997356213052885658311858462270000851693965164035931835213695635256966789728332029657287780479936060815809137359804142022168278469145117686333978590688493338885414437519375857923255610023585605125082862763437316765521269720802175634423579799786026625871295537720536731731403891977113544698135770403899304438300670507038735832444747068186636540108602590479756632341064892732737936469106817497135422022192643181797072712227467569448965764734111077039640979751007650180533298971487201195492009272425331142719509998783964509940490662041783845019103280497005428605127464460084559943990707260260150952935997515753783725782131515196718591182135238907980937630438103398753471624726019950163098804747392303305680511773823006545263797974976331115673147004385038208536201617802634858506890993161044112773837909216856200744771739455190502589192483735781624457163703925970816862727849743570773303263861696327622696673903081577291761219827513989021786140010924048759197517304852235946475603864582638856597611488757143866021587783019350419498835972578717608631076855547139697150735832853661912932776957675062199895373527525917216430032845072238637484398376437745335054088333831989070881059683193919307938954455422347000683567441275797307976536985258102571909985194246809652705161902412040238735681750154007234892164277682625724540165459859955954008482350080333740739585467467116289550710642307850285106872964467539948383953907691773587465608657022148887870023869321722369128547310980258046178751519574295371053788628786680025899964253424413431772675363981400618776729560555322737552688437329416141639283716320219577524059424023067221258302445369041278689954944269500970686855512915365246684683447834959197268234358958913021699811501320728931433462863424435498946180360244925631807731665048907010719881689846481958080550430118446896274454649968033737324486416852453842019082997707463038481694233355471662921729832857241026235305151232147769496596077639470273835081325074326749637527143192727031585345623272587414735385873239136716311720141620875340063559834145701811186468763338845427738159992443887963107984755561794379461841641960266290242398732815125477432849098116753593735777300295996890209990332996041062516852734788609074139143330454592188355918749352003517694270747256159746014685217586725494619258771725866874128763551239917358883945716961617554676217984916104338178090673625874703296834476466400379090977649575362488476879031330260888725280225699872199294367387673360660257353276410486581448363158189208635830305285840534677467132409797638577391803143795204470534677987182449518812470581297966900768066385417978776386862879326712389790160987375471714583245816215090449278949451264263210016013607417494124110320699333420441683722022368495979132120226377408560330025190401040430405934730260387204769016019882419219110384823881781101265976442812887400566160794208956513237967293019047310065373377390733189704465433675729510072233983620664077197452731914040208737334171152961533449024168691960963174274356996570887386987225567645945487102220786340497217955543902611785115555966460479610273420449284049073275977384592787854135747378270195898776991505332856863851159712954415434686758410909232417902234031943628167745362917769570589486401604587912261388294126088458932922593707277504203589451886498947750178765472768660598763079316380824328871777450391335714797340335386663877047142995173129006281802838835523026818949219444793407596127012002801383961630179139793504066586947353310276946391753001515980828001707749237020019342081226057373812610267144716819804460203849129247609719589020772634820623996221716596414531582872009558813965037208197543772312104964450300987099500482808442854936694764531363065381616735218142486004294975430450220438912221655946681771265483844135448921344939222475665109704086353169825589210672590491370071129114346183716370270467399712750730345612887715400529638166199873242089359574742221592625050468349818708780953362491621619106079864913923641454471124363963093825957481478136612172169290633938578905375247017176984004702338689721923371423733855374058311777792214556194399199563629425159573814681144530710105284681504802657314638518271557022821850190505234416351814739361948574730710247567308780606289234861514910622531625331009844234451382795451020097372307379368090837954806985409085730754733578333979041905229657932863784426881115464100166979991357997113523395777260572007916402519721246111797170434720773314495627211429675219875866737999017080372838854582776873266795704069662494332636472812990287287691441585372477973161167324160494914153223814878613639967767949227586978925792108391503365730598043948347068135681483944387157437467963474612294296940291015769642106140093316987097973613013502484842895777254650341589205148878760202011372539026464193635110603895620382583371493590783760354637500212185312049269442873386982043127752545309059992462352572120369859185321051974268863641665583367519224741803247735252272453460146656676306924911247061554934181213050977680014023151971625116278347784671908503917351541921302523111716846788920943568769770492028249086926929869339247248983350544023354634029710587411451213428280895826072021799615970963420678523861216438376037657649657920215629785959259503311803466693938859454387315744155099763941779581857889490717921331218643962948102752191166937100260799035303050045211679749112614472303106297252805312331144714621764621439684338214934831803037895305285246216307045055540824605200626364562087203617575363853946931099337005553842021172572933789195610908489199738892697156075119778546792903251549290350555888872871218906206703581285034685415192962362806198790906967486168132062132840298312076353568779663772674962444451829719297457030734409736388751962043297374342050697130229749976821612363095695094086895712061228673357385905770788370530622136204998735630644561304494800741607802544385669637943372423552673098052070275255478611113506565678279102840447850143123785067011739054049515333592292472890781330094997631004076381366495771811958245471439279521080331273134182670336944962294842723306908877879649194831102479526244741389147190196536056045122694710292610695575232982901719906324304525207179634350457882270946381915432595553408165997977321675097473364298591198110626012645821654536059671503337834472844146627398542851451640608810193187763196551799059220447165060249914273426665583374080877167004860153900865440043417926975124149818638444304551987901175836193612981458703584424154495818830064418819279934547271419970432771062689902283582413215143032543317414517216049612608650923738786244054471399814658424682549549479996169398344069817025791953876844347926470769077032917646212538792958129200359908660889396993793060246864930222833189610612067659527437355709906401365611796072695336977284405829993612138749363698038966435054040088747708679359523650034702020258794659249958050289172677288336635322842829903651763595227737378218390530430294711558185904053232418328539412888911134277857990275747198898490909761001313309952922536562572940046163799570135076210458856999065948482985892499275784436005693496193716588192736158785837552903768447690842962351637397458100690352426344476318602277986009515990366409209568935858891810497352872130091724394283458392623157959722265588391330371529061399089906404101289263796993330647370972960604632843012563752552337762194760485703738280286166148482985065273809668846159190100969204716629366003487062720538071995239827060160645251472197900682179547386341668994478065646243316450937834367969059722962439969116854488847634558910178895235315148917613600690517285498323445615797512876181836273821912182949202230310853200904327915218392733719965143571511336124642656334956425662219221043872671715144720432939062903822411726344940798268744050259766436011196515482909206955499436995564446442838030329243878609376217200766438158906175332610152815575576833444017479543008850934605613809638991298553292543508072126812210376055121160365120339168022892666871228355781211819038613889092502340536794377265095417093636376449642166374692656200049537617562296235273205627281708982585343856453867631805461011273146488370368184583518679841559008356715246093244878079925865342398746735270283003414851155085570857823045098501126192549380768471035907485817632983931105190401043072695542719242009455819335468750933059143740804664966886560129942337876180196369536902081252264898620614334952466008265647644558570530630092744168300047404202953209974065238158950348804686699898293524530337078832466158433817355026946982125359916348964528895858436193235695962222932599741887096610067862879961343829532137071285241982259449989035453947552508506479374462292012781993663835813214664703819692770928448377441657649107728386240696345427548109253303984866964418872762696131443264327960401976363837967540734095234639810338560702590388766899477297261837386816938680422240520905899661554800569119232696691355091337265772502286171580093865867745237607176531389032158711073142586467210301492388862758233874516710238657292433813762857103238392242410123220702143243740573750167307846677390129851181480053709656034739385083448328600257750246556575778217732144367451721039739098856250198881412506529547449191938065611157075093114922875387345474350057293434411146645711457801108933741472360525070361172882806106570895112714964293540518527709899042555463727239514400928530073616799210235758462412207006884266251762772611195394004707651761314723018078289344120733222848437381267976171595344418980295921618692139654973459745232522348286854649515591095707418658924311505809057460202771311276069483592375694621081797172850946803503409185793256865738172688036642077579320320377616046929640526664863670025068584349763491549532219643888693381782150836595748645034293471754577752341425933305621563507498449463410983557663259869967050189931750017255473238144602899520550218931284313829407406109863322408070737867807899362518362827793450513522186157268037276129588244099643800672084706693501849964828682184213679687676775998692810842402144358362923841753897149474984448662048149653863871172308672752763968584699572302376932439939490460756104077885995814218860850529755733385953154925814324446961931331225451809739172393563711907735761404338878181280485617010264677551642607641046146073791430241331018639635139118229141319597824610883116471136361258084907189025847182425449293708526701909571942517018450803963926408476513983460371325933591666096302795033005551221707932505361070158899726873388007741161396835547132870662958777572671855855812057424088798704029009033818577144183616985584933564479888361432398249381475894178008407786500061743659175644469020517150727432214980144559464586333947321116161751667141190957026842778492190819352336464936034038063663629009472554684324716954060371988981895717209566617893180007648590848400156514720222503409172985395643713855334783595118108877402486221693012676097113911354367355200110440787462341746094486422064329125894807855317346855617795654195938652006910498450684152929874781901834616488561142918541032923611664513222871507383665145651465034728813709328916453658832724442465905982602847320116279323723612314879462396539814904316321996000293861608806679259258848116829117591151831853575950795520101158028569210379817088401320059709892820706784111237542452232510632958146738392320144032011739213237362347115498434712117647094311160247366512829441509543253645397361830506108008236299513128157563210575482715124549811876012484965271611173266942032701911158785081914680969884531886510425059703995648643799004109634391443537719646151423381491315047977484636859269599955458173102137962874248917591896761478781950934494145563101534805533672276880731595408305926496796952505694821110929899922421383792235254510031610084448041754835894313198232800869254054023223881322374474014437006533815818555861013394314562054963219234411962812676383220682798809932032826336313020785186783883237838576825561548260039548084600946918213877439966251528826828202441598192939794437806948567983451268881150561094305012741239458265260944053397141611244353031920887750107014966856706880505013606432247562508908279566561905819563565725984039725990204834455198542858952159890535289428726861621555208643777849607378081237467803472120571223083462135295808189516571869986349475193722256681528794729755976917303518117003063205977942527926210798456051035479255804257319083679520962885705612052666153158348894336604314597348289978447659501799927599445478137653843419310938721095867019506862309737459456618285202203182661557511171573496476581481176718446927969220013293159091028033852441933756595206239050105151338505222796294819494131658714479424478036491892740900634721368909187013532738832876938003439199102611669461696017587668732522175454849156600978872908025723789912155014080225990807505541664958695214511798820904858879099648631350084531643765680895830688595055943456782735188580649978306294606519582418397572576376943638971930581350727349319820285211272713758441453510267529896126653994012113350437062001487113777522322146121238288923609065961407903181525245838383845291942380988908633034071830951480867935426785139297677167830375362350975958541664311625953053952931027047383447456934436823430331786753996748610425989004037043919972883772271047388793714489796265373131327950575590395837382907191743782030399455216820532324211933520052866703954754642662249425258093673860003539929770450591877972108576353422946966369428497087773840280540127193847609636132577995723314522743154042632659683956691416761895172759875378514191327330746591168050384581450988639820114210521097088984211671792153742250383075324510116558622778296686636697535268563361300953994291287049036750038652399752577555642052752133398765110943884891602059025681213670165920711108349500311137918297375934531171163541773309522172720415629527784446685439503731170580017322992432515353959451320767330038653799419751280271134189970365505116370884116414108420822392320962568913772446632300385499153755240314289901909795601569023073536168048748180647534488722190216876924443718156546587587687499425198035998180482890695351510268842259340237469361767491785779677739545767006885051034529400455222473751453465235481103879492970382146482518271035078854183790002324755577351003299085266590224674070749803038735994116282482372629834782308643371732143985541012555716808855883913142569574203243279109331634239497645490884523418687151619042173484996491887467273242402956828609948751943014616330378670884858590984829144349404878121460033707775710338319169701189678838954765516171546300974155224877698663879472970232789546301373653385642969458450068470278104435054111669914209734818820690574150120884251785321083174251865929346499351527737732488728560208569311779016300460564188703164457602654564319082032971204876477408677087446506041892552769537429549340087807992604588856050998952971180569315356510932926467249766079299845050230014998369164848109392057059582004804832224214249599950444241276583696672078308495253155726630214518523977439830619246628051579440933420857218795332828283701771729411528396726536845863299405043094384200575134652925210120467226650944895074420004808255301503219111309568259655305544815256387945658914972166253316031343696021352500897505697542327046362611569655499813617265547857050843708492606521335965640852790202701010417421556502435756242205903096901748380765336770257080481499922815619263761277969811714160664272838703792551758638823108746432889659234560783113402968857176082750211074436156884299048958406821993762961362092599215403714733768336450898417873936644772246325860813192189502040240010825444325468166739660199004234236076634398765619778646464485905144072681214074513546659339544906807399996237818147190432937671417089485936397473954632898976735685865666003189686965279416966921348521424821221644076880663273689661067650959953001548813171727410975352628938073499863567948628616064223198106080016426280029524267282988124303612077738536783625120313146441609096431331769153832339214401635917562960965850439411014698054557939208349688122114378629873507672183272531622725985034571610437545385892994639276615528689219152686801080592526883677137721348226872690703833907317437866966993673279641477757269272827324598981118160799401267767258982704461806699227157745971963786283915129330023383616955417043163953228747083665810983328688376259051827854865509531615361258606942179534929125845577544517918066504882408155174763570593327374623751971529991898793243977158909838033799238938596309842761914402637550374854062660130536572014723683706683057743675087465562424646992282415267447651907284720007985858879619920857659972550167262542916339149436886927561445830302842178395911892956186840801903964184840639564673058153779435451192147939648839834673303977131170749347851978128294741718597360743456477433277901044649681067717998089644325221537368527128827089497451141697493630081217960374535292681402476621766800415378143440236545133522799191047924288655130274434359688603935094103006464708015103068156810358675958808791909524475648516559066206388152492679562413936379034106345005692143622496205893592661913740013351335754965525957601409315953094852426437524369688178316449555950205082517237720183198433975922509694666235698392230851997224113149699110873460439320996069954694875123447018086896411431358183953751971838048942454952392285143958724388177994142062080946499337493114989089521358768435223991601826407789699795037205732451647449918817220284322281917589018253808799914776652013867259784088116124672473923310908092281236724924012999828527361567970203689814997185203073946511709117893672625065558176406721149325980774717215407808549493534423379994798345800914704617965171143905891690666251392746995903871676919956734495413952138466325681236268710238844234297059340469609433850878348495260744004605317080239946718853236247417597405075071126696212318793315242740249253189876704305413486538039475576540331142023910669597274762294675396961493948071616030892066732829466752485360372107181736026368355608061571932529408970717106974224936986766389995852668752471686050233356517556352871668842144809248675411386793630040192127081144576323150901970752273886264733606281600051808133383098093548459601086217511995369672554557097212257322432404153448770178615259684692222214154566077158979458843971577718859447803956294171696324394347969401396337107895145328000097237455792112109782051197962181583072305067765844890013490450267670923579207748798427183164520156728675626389455765769203759893314132998740221757065326330654977827909297162050834510421067354225222394746318785356548818589630856574429215625947667490459722024114902763298665859064263099910814496335383518869659488421087661196908478956241525794792937261272041350678165212335196441755493536043072884103130155529130018930316330655509119699941753193733249292600585676831432542626855529391636718695330068264241752687066001831279643066915668357688097142217901642363550337883761551115872841622994963368173892392079087064268449043531089362665096725032830834526728422920070728809615475887652652463382230852463376848212854384591454533389962449789865634649616303864354922585702879311109437592748064125406590229465901353886707550504629346565583773451680576864184419423921652396244724932543701950330516187149068647124925315622777008213580741802483793775406644165384847599861178164159710359104002918885472628367677596055391404885200747545677188785473795895187954461095486425369241076695339554501991301416002180708442954863911110358229712985240106476784093661959954744652272488896696517062328674530060063760200881082768316692087875464515778001670668101332631638333455808224533610870598542413693250718615526232799817909163912995833429553097093929578829581606283913656172485338755139642548503799393347641160723506328657225693621472606982398567100376484944366217458856701398350446213612474580092149094615374215538655247921258219828632371402017640476772239037773465999870626525852606805369012581894244860536713554569919037237889907393192026388689188441779901325805649607922110434273829018345022533970941869576361086242049606317743481968757136689174053086611253457166532443009278444120053185015258222494266125467127731928004499905854165655528094532236398655659570264827652384338141780424341882684794572743607376833866254012309391415121392042207212865738950308030952040359222621169055600167731558721300079853906898358259107895114925703804558633058949833338324642018670131745097055486244307947764057444644111387423317821640942658032924067452388084463311171031844804248753951539241163703353718985273970813853798056657671300786133377027642256149270291366803561667944893203956338516701408380337748462269160808944804986802253565673674113815887049319917043133498055145984003737523979798343269441119427144011583258898206006830481206296517334595202166640217084136793260836091813897822856668360949703326643840158812852135978727896822727578191645413359130105650706088176677204038323607193758604327875830483835528997240317064984844309718579732882237250134191999265966718610659732541364219486517549390247725897605658342023088352597950432384776678814043098788443063765056214419112360666184216760454823834098732333249510610701730793880467669335700806857181297684113068616037856664175665485723426358840928668315764261939903032345176444184567165751946883271837784481679075712848110996860416350008950380984411284778483631772765736810178936502071196101004964240469830412822375846481736404793547752028844763029919764695186074765941435178134323835034911448500378143165588905954355329263537135439616587685970061648763483294695436731472819580146611571559619311028567452362183181586426242414358651636508664425192055022466885644882722246161966472595137221691154846092807147966173677674695207429324788906770807299719125292559367502943340677701332205508630074744507845181954546531400767421676049967166686850710517752160399695696633682799819296037915700247216329968288706059889630669581235190170707247412830808244575588534447366657317055793623387863956469252714533083383726080978032527250699796109694748150533474571329390011494686738670201694014155968536604233304064222641209233703651583220379611566785354567045457522184867238869928445713451736216754903952316613779661315293558005441561941841747580928671543849976706307186376783740666528895059130892965309056657638825863351644272251508619490595431793844864364345831291913162010190089902398775755719755049906716349917548938328095160994402263367781610962847188125405276620583984424685918999719127795897073003039386582703694787822360265138065058211182546951832962390925698228857279601287397381904815706641624846162202685458008252389125107944408810488890576935217976814256212476266424604109589770163668224395078534763486955445252749057202499042486258177994760251282802227075362704655555742726547368860290694161536273646384739346005266626543389196263863487141701043192296450615757712519181722045584273076056710588651591241651721555982640639590646553469581538069597526404117297149035613905869148727315363808160367466473375275971451393973445203521967809670938082886083104769576394817952888567356539388243586829761105687473260395513478504580668558377919231778081299357729658679714312846712821562345970996267754513213224572785053855690087008848208718718642932895829576867827887231411597654614258570040036347125050419894666974194997625893350447350959335998655322739928610432214376237198879998199468293839950738618166874122335153604647929527785274874736759609994201740322015071961940979903530954201539411149433739368572074563982307127000129325172594677760551602475440909956061716814414747352928033478349283300892978732948434486791729237167631762821651947324783216400319345919973633737858568161193725389249107747735008012849710352186198814219472136796000431728027803281296200349453533162575705346243241529960538031774725761038595407786356053112245373009597592614241486684284065173785450443045198051591802590690907829487710988419611758574778976880706695766651631536527192007483366207044863642738528762606878637906378359334195898376798082353426639159419532521821169648679696827252287434655349641992541852306257820845812240831743754855763877818523274435422660076020559837813926282108012510589889746150167223251072931137752916950974990725303286281751858404274027321933869237489328051616812584239733566565655226777164221032046843436938812149221729804429122907562238142472650958994284573029572198354130883234374825040262967266880374952416640372369952233824000395614332141838584737959325111693846016715780343147572479948607049931503196820253356549661831115711184704845799957635455145623981614211185440889883790374050443765482850605512872695791979819153660019293499891833863437213206976854237140649172088358153923327548261812784808013138795784199957457281999329877585798440594755063192416865704585657578427979258314879698205511164676897878076200694583572585646105572829539024863618392476951527298559686265961020776136154028514713221396408873716429492138200476010771380030998066636139147142064743545676068642956778445892968635454469821796441860955700937328151130469735261689556906537986226435852120686064141211093854373251654354466598059794677300145733995974415826208482843302772838197186195093479813974017990722753293969419664262785077901128694811744562640372148074170432530163415711612047768940861586268880786281573612266280077116973628305634366435433213231648093228021561603173744867223828771247738014758822091023130248424353950244843677874930449831901963752101805435532399158812599836958159381150002854719517452846256994867081828261196549103850817017189364558284901196808865242724375401860748904616890024564879271398648714413206367920500416172974783186864107701377796382642596698004285759461896468668195574749317090965974283284690613126925453034425066746511752822245813859041149635273074168225761105969452241945297758243803522828672198247703919024449591514744010306475313170715358700749908288444600828792152300646966907051961245344333354182417811319440867651937081414232768817201576953698452326516292768228635132756033546867034334283369501339329291558854660581657683655774468523282520932454130153444508208211962177122168667966516248143137340560641480577438293423572509213306143376852215495195962565457942278454937908882023048245538775916125350252684072151571533124011522899303185429563473834611505455621636642883739300713303576377267612129466611795845304688926596832699001261022173914173341233124943243377905059042870966084085759877015411188759049026890632109770859678303943280690108170398635616068061337970176313841985490982204006182642481109703904463977579571929502135498381737321153994033980152181051712802278369406295583781249435327787933536924663845412369028674588539773484856789061788266035858849529828103279140423199759107021280091581732336586959199996233385197981734211138500660376780911966220352206768799457990677817504710167424884080631794039438575864044357738390962676298339889710735243233362430303643321967191354615721948912058811230223234707662456023804930319869845324920695951800093957529301901178338216312595907397473288294093310958464192043147320741035926278325133862639169033351327134225553515161593800999844564546644569701105126593823643167715082108065025855659732859318507207930234870211120847023343275460150684791548655758691551696971349656666372891753567944934272356150956033790010830342165751545578865405142942747145713057410872112002980243058762345475939792840967796548965102401165701796174428010666521340866314983767441743223198616816910269812909963027580496396041598220535310599700703921192252449099663755829558706326281174415067411545177024411229931575819729425090274852224750129147424554528827328791995932858206596181261256319851951140739441143969867426380763752908958405184066253922569657132583243078198746917512732720386546529742999451379071289189298941283335487913319860635189779758082923496826793665422231472882586312157828439267372257622383752250612954935616298188940597806295493187800946487861329387771521852972158441002513873495176271549702967969205973996640525981235942858026610395604511354189648182896420179297699916408751088722209411955968333257418831712104336601135353582301233371701979048431277487697982277072531622733612709793412594857766193760274674401906450553994423308931876506812223313730097373750309806873331122672300339553383656456937390994839774102728839665452063257911244180536294857847694268453118878012199716620834823773362525133449061266271044210086835169692752746097865486894142006506792427651668620264621476498925249954133718310568437216948502469529591362013164567009069905237176016977174809579795325754309307840872539519956750693673495327449262996892901834292304068970820698525110547052428791420190401602763013208096534592357385519683401984465930341149775042008946601580290407731615805284405751564684178139893026580333533002429901731725700167440463525220170455701529400567423977122567114022080287080177972871945928105598622652782612891623435072985262944082238497831969113162051517668977935633522078752731072670250405831064115369241362278258286706672864738535231361386075627639458156346182395276921482445413726998528564708492553468738341400823802549936402416976755805205426089698397081111963832479304801924016796727527912630899974761082097877100372891414841769189762561729176171726989105378650478048953078337261978902050378881148937765060973542212487239056313559214238766964024209738134403332443842404333452346565329045886519018255095583649409254895934286008427313052063768948745184148943547311091053498988590972766313057851878454097430406588009206539454438930060306608886997070867275092067740042420030726102400389349039390332586665985825552191890790921583179158651537361948410907458422828166730110113933803427271431619220108688737926306399222926097031978931343403071911395390870579341966788957489362902927092254716326059670311249262231267043006310968749220457439292173331887399213688315966978592458664883756073157307635077786717594773635134736577473859826246905510579716741575066648342817681242640176753086121439331215994793481807229485105709240441478683931216187827637551232884351760968054547010995816476733215207535385678622133639867948128362371948200505662250689351380883509042376164422533396967810356077946295504346985408993173811388826084062461371868198105607376820723678607892382232123989245567538499015957799126512073613928060706090223013046256575999886233820217673977691932358157106817914179911093895838829389154501639088921241300125161033051475322342105422972069994125095496604407997102411164909989360437014532204537907122667259922086018428354055942191926728762418202149480120329869188304813511773948082667456968105885539162325663471425166736873210028845292085566382675158895830550548759090855937233990285707719932367671201898613942877149885674069576779027754238995577390432816377857349145529126069693284477328062074742395349646160112442438549815939518376077974147068693812138223586932367951215856119956153037616862897454465565760576299362375751972198792506192504849033375166127321192951876121004928422949112643652538658363637025672162887098611383709484042004883821109695637505070797645404243977926920518440517948824946057997394840952189434545991637723635053782976484798025625829309168729980762670623938004636997018352711478366671617904758312231968896472067739484432999697966019903939422833994937212320827730938068031615568252473729608136810388982728328514153729588820466205294469638276680144536834117089678714137427112347352416553667983320896740847311041540106285493411636139910386842954597017837192464910515940049873901713599457129518592462068352690345757383997162930174530732601206485780348192559797883284048739223187549875491298157468893782951241399900692728810811475766624565479288017180322854253695610512149473522583486612620404318422553280465611955786829804789958255267634815886281516440371190924194953813327172162918293553071089481941667802015438989111771628547827692169403025933990571800685972644831178951471985612162611758274458582648285931882475850342508512748795270564618801599345217747410651350602211520147187608171321195976811480395647046117919344692898178866125748767240107082638835516407932175399468143451300943032902567103922769031629660824718909460347874283516122758061798212755431162672956055851777280552344841590552423236419035121792587335123748490259440941183576566559361183092025274739715328729582437213348253705044649149590347842077301179844374329060365813018197250561362379476138859201803843299915084423124231207788992702872955430670768015351614647004261540296041720551227245554529513149248666285350338501482213966482045652078834222566347773780017120136774072052660087290701091817169641940370298924983412803058393423286539858211378699605832544748385761966598822942386488610187245496552101484163150939819934935054946426379680061314016464613145646573259639234100264563013718813569985352179102328325963760472080501112332512192286781364231550760241595832384754688568758271860593854174795072111198728838616037415422696293359663507695712711750809362789861770357569808175122763296244865839739279853673096165022042579287824217643290296073631216313566865668229182555558922016379133748477639593635114166049092591299020856237701733413480586460536464925520528137320003410418843844489070628142629313037144229470866875432604584161162019085197135890972447406842916741669953049368143611864388665061723183150600665115408267583454105404555217336969000763378744262872748216951686585087582826076834901303350443991230880915311491071039648902337861568012315314614931860168920328037904045000654134003085140058936819746275507586203079023394149284154623513216923391451676293641755675412968427000910542070093884250050476388659805245690545184282706319521995597242175596534676228909016845882632596318174315182363004520802099672440416663225953305326548906305873418740752050094131945847107823309805650263820126413606284991721731865844569767728283629712337953595899868018025947148709236314050045513160242387717577303583784766854059758704184944741661438904403719453239536437313628289015340638223777216053861273344161550659054309667906966225044592060014138145855697230592457287628666147835406724181871249536604469732332754526630001855079926230497022255483903936458371219346243652773386306843646415806777927757332570079696936932773036117648551099200070340687031939933633597744147824105074627599924789397799586136513114530663778530942104256373189146210920419443580286326217314475473371239902054574522801117348003492607462901765052065642363864776327891684493178300579878512568510370335650310938134994416762080800941830366486499024705641696619337221065765256363962484164396623307741313631130282552252044042655347500093708410353158031552523680583987807099876951400807262199981701666911395319677150254131081586429619001072283718194795834755275179994161710115912586301811085992160053578796417941295197869065678451871364615377067777030003723636933369388929008401897456791733124841785749403721635607922093144012100583398780503207465870106818536072105397693654330605964643293970177643767465003825426154614742403974693830542421930022990387970732486662641716749043050192598555328323806262677094992243015211616180578855848188579891711629541716660467089876052851382119498409566624408218737006605482804662925751804089360890786873506267045380104662686561080615930741555858639318290105166510321711359431556599977480811974315308306754939870073604070688154539104415409551392183377096142303261388156068129410077930116147671995889289902251441881159552797569055192864251429711457663843239235574844603494422325977580423235168684842733887326107030418048195355010553306227256620223014285367317162182914581653107722028855170344726638188394302022270751506120331745272571042346581984092194885856303860035862002032075695740676160422100957559980332158963810604030781103382741769125202782961520134449984565617207568251222820231525396576358696337303342404290123268460460411544263315587009742270724212780733347736002219791214565290628892779953990208544572545698980808397725091704894575893513284138791915604761650999648639333348250678449373151966701668893051438673689548782299519448028383068716815594636120567042755164062495496405411759633422089922273597364668861803190830299797842266928437199688935457565542327566257261612543934286796850439047748715788512419420723232533607748468957998007867101530256366483048049402019221337514005278590265947502428871478497514536563116163669908436515432265213240548638008961821504743503932828575305274374122786101790678702984446333897338428721202845802670231572840054112448520524602936393854678003864382519671977075313855556063104669144389641676353375168032849050036113213318755453614791816155939774233019666306652398220160604946140710826586950842281228318520649239352376200576373088251869744792179195239279891089396601347887273657831708120841111689312029128798426499253533854644800142852764304839763935873713183932755659995494866607280545964636093664275956072809607093917858921697611450617165694765288377579829167158524723361863720404546306104990495159165045458028388522159044540185885787222689872232297900990596032805785308903332948479202097647728993696853249818248413653637147836785588856766178356637556478649580361012416653573042805391540026540098469244245271488743059580742649040807931695580817038247807585807080130840413323193284878839579016725263049646092383883707322550909238212067177596795695225879591877678209318765292290018906994603800467648701179658499887101496497342851650293604789015418369861456385876832015999187606669569694154241969523480582533461659364963495343228542639417937375795479052889343109779768179046206983509010787544397043681117919062245841936501831814241764601986382843188952570144093935881033157842046473780690614727048995641027999414593330127215019902801213733761442834883494718420080958253530243218045575175633551670782310742251040873914798396676908181741907341118772843797210285389141639004687518693709952820370389344071064686602426093778055827876816841841622119616455574711067900022564173795385883378795391941723259476745372618469468089438961888952849572321993852105889828433837060974228043501379328295711065286307867031388861222459166209005789432711208431012158189806209491040113398924068861416979736189581389617727913261434843549720057182234454520924357287633528193622463065182649907580306392368910060304661373893276048399183435201770629561048585564987298225304735532705078323901650890385605279021062499093350966849945398355306655899844513373336784696159855075766487937405220214735609103478701056947165998560919689078025937702562325339545979414960753023902145894689839180311658574237483152637737063465579866811211897701335652990878353950770707654482406856969271507014903553653849993889163076923173346416512148989479689311842733966245846654145826400382337029373324100936124595811785328059162002907116823060490219694010730550173916456130850244306381100441642531494691248516046075953036419206947210612619646993123307950575004855249407772371016689166947253741490707258874408685017663137851430145032819059809740863029666164302725762553621196952851652039744655483183307544953769353186402229756650061935112726300433902779233407324569273284163446840410080530836462292297065779483830879079028520733726452694389882557878562986820844281460249759468366697807505934414612225913473437559429129917254744136141268699140025860714472180950113065237320986429117766791154114462270125005880835934737578675514436065862712418214434563638655879806929824925496206747456522698243618275478382507234531404463278545297445416110838068457688121903590077396400131434172522293065337682813881192841458019582431879432143141492956386713818191837543200367649351429907178489449940379964391886085366980207752823413390107313976917102337166762687505397689048691264696408742253255728107348175251555747812221023338948623596070736382246898380610470060566532375825072517545624940302543768629959203748062736711331952584672741693843684208837583622765418249104353386289470308455619947545280502999906296271482961194094132460660836394913873275923409399743334456587100677810959350191900779905989080312931110342329945905177769264835518396618213921583579344104137150567624400246369808244555082326822785872347056788853727024877551744453608048217439050566932242744507940484013359112648713522265194412204983543543842002934793995605066940979303310349842599764408790386966141541632245696141176488417173784816422887741157335348313014262294351024839513719974665535984822067781865753167475840400812929642090693500345239389720192581049657913468568263791176144723541273946596440103075269333806526533443936982826305565968945226821247731745689352220416420670597523306070514971352909888874099248978529946637736796773475842950233180112037074647871388802538797863319432560698409569766772286047294366350941304949246542317573117370001504813117774792231750855789181469954166009299337761469529876634390469250798382625663302133782418042845318536008499134767551828808919539461390407228135971615816513159188800613025373987664383260450671129503451235968025155984115337480350258593256249515934815401827822044596417285331426808433820397923197302863989089306033494103955606426526120212651617216667700723314835561700603491871358872240273006739848946610226061375840538013795137545514935667204998951473039286330895895239467078054425196601117663375850549045584006028249915660714183773274537487864047144206264096183980798384366187277173481443786170792522777179465971031854125677923356766572424569214458239175011537485066530982586303703829679811441933441722349724685787649502658957926186867633272111672590295639421100748168501981755664801798621564108345099316073383328785633270733757869401841396343905528714425785996461001219907387817903670911945844814492873629183054802672693939683995304486946134857935851228528067168658967524932310294035057742086573417602040127225198201496886589661508202791327025870623137682105320598179622622329966431370560092488205909123688463226458793962760542374277183569285924580470697506083729914780383174988142761639465790497300612138442210701596890287075300462072231363405520817840303154607931982260445997424746564861332557193296580219710299449477671972038143987606994292217147338522216544921574453118169648058178186218976832730548352210176445522846500085241350538307105173572961181350798240057187585661788618173564426597327694052985823092852912218165896238403157076782491667965362532105160444238748960505025814152562163532002872425682295836788133820177073809445094148118243124596936571329925143977810111010880055420624092307340057866363433402111302342371864871675129123425189804821344505703525395736213172815084809212774457735332236531778860042354216304924473394941498488273846847223017985350519323488083136355353564869007832201770617474244895284379285916165393592784156743165595092437928154797476086648888252417347680761449488595696516132595342538757406242818057846726162110887800946417061113730588012873763728919823210363995688391396599086985630334675088850371649453398066300454536865500693514897989612652129383137761778299269655759800301298252772697171787275237893369757164354424620158696695014093282093821177998450997388858077087028439608293195187927535642268022990928688643810537490750543425776164048134210171269317375713201018370713982268182188658388873788967864715119325209701865892672212878034649704990025800951572135305582653012377426197968463470541392990170267116992082840945792081570294967622725247869120827104349048251388342364799477504398792159672140129841841042306813425253204239346131567683248610969129567112163680528528341769092518375499789837221847007298551258927656322819484103069131268329315205101478701926577138877022345454621436876908268012625695766026029602933927117605825679890492513196807294349386978304323738366729582934795334992597076122913242018109178981660382052553532860192322915828313597715704262693346567783769186839129104034403597274154651185467047265350275463970980438617548419100701821823868796648956978078150220444471751572535431872047079236572840737624178714526617149041425925974414912323372935475841161823748612195709763823917095777641833209725636761870840757672557521720700319920534223345361424788825665599540031756209100926306449226803984014781094629208558665027116412823629204575417838438527182509531191810001357255402250662744259045527349316786029959690112244223952037781868391133114501001151671244398765336280322470308556908420522035533071198199585980319945552964891808395148074559031485171232161276339356866737497042954898085580604869649276614673430873716617544422440686534718245133915995959670012022579215126673115783240153101290525338732914410100223388439644626492815768269623360230597164541320341065436968933347003835388169171654020471084081094894159820353864706555081291673624172079236701856950430106017452969376157326685257680051683664711746778348518621634059915717554085235485283088621969377183522489105349776821803381794267808768052152144642131379706258270288606920041109871129352313729243249834609078584620691511068706362934739062881491360317848128598735026185903496395574674929847078134749929651338810687326344103528830704750034386920888504183545577704301632119423022186904942341173537321766155897045673854453381927343900220256876588840046962233842016979081285798993206938748984243583052418817481201135527535720161575134434194312729278463045424491552597974094912989063564642267212425725021935623023152514379101114958530536362253476434902638474923106912099824982635721593420468231993057410554079370272185616751909287659148587031769240864891418486647730020779196369001777683831813766321907552540223577944931199969717960993533608568822143871283159798401188892278239292994970062590873768245962398801637332977957227306913523654197999822235660858897439659248468945445648834992268547085995222201536084937942874540690556703997839790709154171851940566145400471608208479471701977823422542050254681587712237142686017043727183432457734810312475495025770738851173833726561347130630961250130514538491203910065056493134481552748149828586944719276882166622781952708872553383961892747052724786920253884649634271377648225044737637562618576872657954273475727069267577980356251588803136980308785554747239928614900837338895243061404163788650916747438290697704094425925823037622791473324946549921278855487052741950913041239295439398933155942805569503924801727608529094346804731097648095685612193665494194513510482836427797588184868489855902579708921391017720789882640011013958382809896671214819444420880134522460572928456206042219435350704548376471791504749726425436147374492624318179163465144879685115866585370312059679117123893502140675498422157291780332622666770750647238192323466524225992822814832967700755317236519205548808094903947950069756706650895472556828948965592622187799988363183016260525480594135663071859077321745509692376288679065292738009538496728758292330921587813855915673902472087290225666232686764026995202199391363598312274728664134418748331116386392663774413226658438555248702319392661036478974985519011977382631831118950719149493718157814406620237525059466813365502820608114845945548789605662059153784305371076055511602594753062164917503472820427204316161285313122983300869157917212487938210166554473596040769684762003683339890647900766615422423012794514399394921440951826621051293599036004931135210070550934082245942625982609934071515519716660417330963678954669958684609662413145732236129500998168709831654823528444841144362183436630257876938330323044123475358906017865065736366021677821221333736224307753892878633505899790595631619489311848022810951092703216285466539119673110052658019693477522856267084538290322973067868520599361860375893420162809370015613344383403346402746565669242302679784362545323880057849477842366513601661593967986652081437360535818170796231347136798239731725360078115337919508475948460215467693225347680498902354885220014119572217244473125557407877429010015206758558087299377091862608134462586906414847578276168379631534298771520867282231239930114401676749765089858658626149578265102429999051446002134069408830066522345962619056586844681573252398015074316579570388770721723459755794795706757355409355967486743669655186974028113683306770862579421624520805602150969893444835895922333001354707547684160743197286232461689951058008255807916242176130959343399289513807642431842003513902635685519985902404036992389837853514723198334398343932494987766173999855340427777865195159088090321220783549423666146764580545797774942502892992481718498446096870560802700957013822737844500256819352995502879570660569792944133775291012098154185535825028303243284240925488127907806727363928745058547375930028796966238454791382951345730388361905443216891513730857311599553916019974770078945493791683503673649087296749445606559885453786405267309743706138772742119238829497695928084827507280977731072601667415820801139401194112946373405120117683257565906113271192097876734486000716307672014970505488537881760271163455771602729545925432458199857232464547473225657895391355697896274737802883039828783159042732415542477538543680508970491539700809704412355485242128251033283548476642842373932073164571864458220991857408468932354925639264230269619253408890652902577202226500335045445038535907716580125506652597085965942707648931061905923779425162566446503130295397012544856044408214880065091176282984386899015457493928421523944433554123091295437607645266490538680865554191397637837508645557192843715484359600949460867776474703182056047385118563370296530294246269352276134116796241971758497286773381758889553218440201138194469310687570928799156457865706315646890275578987106817559390545353028842611317076789497693964213322824133929867507530763541295465228715266457257900509213058509304205262303916417839662501161599849105330545480830938917006346644164657012670252671034073233106921587590439985172366670205873654010745100989138415163058363911460931680350142931897164814088839805654479786547968175664644502782545664081216454012339321271164044658096575905862398601025674028371949347180205924235894050790021407896679384437317216673195719014985373268037398199553646727168400294181737837956698680522057632068225339759241420061663348613038872125486743066146268886029316719781919351556652347199481888602304110855555249254302237201120946143672673706276845075862973538687966234653779547492447833892315865616139175130975982110919516038890540653265393892946724805884082732346553943681855556509575001145726953421588152957619189133055668320707056588647135846142160644822813541734477131236591454532708725183725007518332574427765679839462914668555861337742392894826715513552976682456368192296502799265395863240358058565259410370789512365025765635596388983909066993526048223737372941891702504211727020337799247712512225995084056218114387999234048431649046435408152014651023103973371323311125712810608562453268283546400367703671490410944188948573678553666051957905356420235135696074496257322483694865055894720038022227301811004276884346075774486718993873969142338520306647882718687764450779226046287696556274888403271331373842676437380985707524289662306349112093477812838410856886913811587247327030402646707625462267402133265313346590228982168421823902858415387314480984755191799985593908109355521967335263256730562718271020207899121607287618832636638455915837063487261658778461508755329970553780886878125590600330075089866342493617866693326615274318738103478759211851391354924760416177033889837909364197163564116386407728181826115639177533693643942105403142184814699874882687936733043824043626284367236011997441988198011628967743883363870863034451820311401617363133627536865461958831296441078579027178086675563284240511235684314504896103538535816124984138860685656267532152416438145341445975359495997590515804728987980545132624783399750974892153269943679381241656036286987249329548069710989590934029871529067070272395280894904269385512887617356568369683611671464757298406625044443091079542910137551837425945393385227593278919634575464886377606423628607876342007135706733168144745770890486566019001766671072985338512463171963392494776077125997704478700090155184724738703787122071510331189243113931729352857559457224388213985455450560411773631752830491989999813400510991357201426974347734865287983622872779179964468328355650761954990097662136022843779863027779696629038720325007941050236292820111086512496289702268157041399004942209044359523593911801092850159465764030619884398712652676276624447272546365380502112769006870171887650960557818195705439701955217479604425376487734539175806759503998042116722026298033715151947789990429713648924490740323662588693640560846068588258783962890987651971863128519447830353415915343671476221102436633839608279532297383797299925453560081472575807342111806391525093536886525157079757811144970398185162391008032400885187829950717727462059916518711383120815585739813964887941324008367887532506964458665933002412431321648291686092388613384335245947306633832404428400956192050801942763816252028783029411393574084552998134044358999212429535935800260576637775059233490231894146184745181594402705430645359809498021017278179751280770334653102835694619474912615575062148960583739390853891527978879645485628725644372001420609552711803004615403196106680223602227494130241403327823745675804168428098678097818373323846997709584918748986282173423743423532437962946614913824297601101703327488436369953150211158349685724407013412924370854496941224224528974999127221924821708878199480891859014932322335723948806176013686900491761965647089687833712918652324077475140214394895349717804618838388956043475562402471781957183004767119887501914774748066706418942082918000933648359612636274775115715501220394799358643124103298540551261781615299653838397003684664352483467995319355253441058018532434958559079588387737134950752142196228882446586577071110292855494060645057061580926748021525006598364606621711872726678405997120623663763966321879811912801001590750385889046773000743541300290278659718107059451950574240490404443362415734539635772225081216322776104390481753752310684481671707098744987990595993320722652154383612577731544759874473040675307825841112917699098686642014538456199379397758727336418357955233350601564598735098879489193532414020870389158327694325402339220022771610835665362174754975738576919316600567188992921089698435512544580345351730950407449575752323128605259177152329383392246934413714898592016979744918451795806460260124542648725814737396767009706546243898147064224944858680815464540869028547179099128378462143523992900455461883642630872088713524176553958288133548138264121491980102521468401403765682357144330251066038886707435118131016242555306661251958241154813457499330721930300784469201858177605589299427540496484065695592671976218531802490769228312530564368394235844455990605156931349148152589553757424051255765958824778431480808356559712745780350994940868262635605931465458937407261661024182295880951966860792264484481787393309211686483248167443891942889615055039388150181415577970355995410738103799730101396441852627493700637951649378271094016923633659679286981033479922904771099336479111217676162607304154790955742347254017994189945761690972464558969987016195196926083716454101417847721935907423808585488857130509426371858926572763075238913502219175224340006453238289036250846263750018705459666329124855484450897189997529548348158265571612751664247662856032620691513813623479892295834583328454557133058401999669653368568380773757378482497239349369740850251761673460281482962848261582019247099209074565075461228648982733528348195274054895161921799861205067590405272353461212323742211819300999045085297141420666611307169131664815405975561520102480015367546843931386638444468481152751461651422419230733534392907955352674186331205693550042731835173479467206840470269721569131712873768428127291779315115204904533135848670861424937959589783866202644731749254190036525548608910536334428610228829997717548326764362241093106698558081815504615767715527758599612822954161749925546806867733779454576069271299682882415094946132903127292041378946615862052766555980267530205898582643044527954622167543616340413983751422980476337479633886854458665942525410589356801150456370219016197014409407158593867759764955144634859422854323114283023490035568959787082431947101730892482818658427992847076063055501149099397235281928797330940240505400108594324573195264342316591589666906784697093976369148874847413737220824061348921337901487401876553108791084173224137728858147356733148402121897861596258532695762301154866414519983077688205780831807305986757559265005929455117628963608970172060990092638512591909206005329517180283963653268367802504342854223245365144114981517360268636765786542054690828571343034279818277615092777776751666817256478870478060251290213305458446195372816126086730512849704719087989240905975575662163289253891889018449848098027491214793197335863478493050509821902064528654542562162722473565523845788529169328216613439043812854555344262770744948667390847414700640199654095326046778359057728974599782677045285063825759313623264971452516590289653369156432782712550686472974682029447771812123094120274199460884547123328523240782809153778295215167547828327564541647364863183353702546333001931502474567316615523783922138768371445818808930812977456059145304757454903891296503617577307113211485450033624637593170271141304668351573183022432461677245806846362424443274122031947059271425243358989279066569622676926140475302404842262755227597669837488903674605489742933375763868183014477805192581794123052705793950818866178873141407672961090379481263064500326808219802712909561922860407426635855327822066769640684510896589656350566200848957351558231049884175507784973240871627976965273138008014278929736793064780611766825868724603569694728653524159950792013429493765556906590862388312489605316801012852998367815061449310288177801419848698493168984068511980740895007807259966578333575755792663237221573265227051769990154234383713596057866934547165638594907221716465485015352066980573428718295617639966984192953097121131492951433351308029018164731783798629615693844858599009745945413508391834704022434231662102293857803221571785234549815262187242091118237324790026874399267337346807972968688806307332333427096910847389897065865634531123042534306160678555897037804925948071867720122410508396359833775048116439334582744363814642014848103849859149448140891821001063288903359373700702614232923990422501571779884985847020561512549442357880726051308976635656061521719954087804319342820059844925658871370105829629397873052967384917653347665983837109172805564926186534121877955869593105310313982463276781880828363876909701592224829665779468408690885945026653429543077364814408803983217834818318384139375874737633625042627483231245011358248047100767750560605238835321304102663298245569573072448072986215631449210653448009779397393916666978391081788576956161558234588767625026396960434618803760270096843129227585067650611404466645320651686891822446040938425032702206852726822770650607562759261412702090237888541890844464654009588680708231400032555241288385064315274010255968936055529591445391970604772755990722372064724246363925542678742670654815135021436679528679964034128338691792097916552975713645075897508830355956670451866205732010775820668446230600802442762018230040576000587025218067688801298046454229149029550189080299237105132002974265789114413676884781881417144316458527306762153829444182661396753524164055365948294977770982605088944456644942591936213655752439560532818770451116354147801900077747784409226514295851886566585592740213563697189557041275149013602087093054404557205840370266263317266966485506445577401308956398263431569376689862951209543901465703775673841834987540386286282204316886456215601385662719535563196334046076776651145736236671515246348325547036655813365630408415892646533619851472250161657771641508574827582810951158320660927428386628091578403692369692654992264182676408529895007792866664241394261429843791550906347302578054161702400271313238777657909499483491749988269830553750723071288862720470222006533868749733894589810501418947604153574068202218401267909235291941695645421366437683361744640712830425338927056066413483100061679568261302032495933530805258560545922702935247195497424125851127201922051837293110588465692338935586863097536263713390327613580151087436782463693876284819619464761383936496944354233066209642560204282498757462525587132586215578857417967351786670758011035045551438349248504655232288087920144791595998581262295887747424912564573876553348933048465299899781081915168194196329327023627321411352387383515357470985320388162157482286699208130416987553746215721922102030655845049723659295092199371428097284645670358632122017109177012449372882376210255878146859773820097711778286005814195096703401432014467758458856834980623469299907847544291126933651054497756209289946225984727413667612820825785831300509857743815773763748981847531674239449697584336508523536240158464815490879905077485696844809290333108731202272745720275179732167511636413342776894826847410505675917021239427320542443367640759868159307471754629280831252943578160598999149279671978635912279826652277433563057092739015970657188553287900810056318478263483063298499891373345924125493054242204722567527123449481205146929263802230800592787311833761920882492796229151360251533952752223701311439097634501669297107345013525841247955995569205223057818368599070821153309505262756739525273695991419002766585341620682324130911912433229243499212919932021752548828280467744123429579968270887491809681425544624654462264230102898091988778954720815022562452312544930123586724108257857389910726579451764949333850284638194942600771460735226363320660693111495150664728475703873115361335233218842810883185176477386939670594143024028746391369707600733839005570073287284377356647242948128868766643476424838595047805637157562239204448517288682159559017021892088828532273788753657895849607893594256921204407912511893193393641505279343582646392015893662288194649955355357800087854348886173687915227576455813637320695971361838125529791681786679299648980523543027941760444147969525127980442710031468493596896283553996390081223667309694348370997715162577303583251639293760316680454995105599801433794966520980571954509678989629012859239730764589494687665001709178865855472250006206205237560629471115119786298137206391010670932658112124603161223187965858294652334272352032529093771341233856472524487710089850807646809005841261590352950183516540813659641416856491020781859020044473813800055564071293458074277903781662097128703300351990956907128699752939060987194301968653434263009956833509399932303776632981290912311380114260338071598936537270700591127878722097258019163096341525902736945125755793727154536192002813669474277309566358882494788569025679633089851857460636385033634558213581836373053747989765007482816308784008961916535523941072341545051450239063498524906591624566420728341949019258785804667295144023026426604519641046154117262165165295231615701011461322202158990815730753227440441728006826218023659587983723205065073255880778837346554419934581780881722970790746505192498265442950216368801800189405189540639203518545396196694302690059183877581673549887811067409872859807733574099504029085477678244394267477145275412488985603134253233309247862005214943162293966851877090455937962310003245438013235273935991577919631984935002064916503571918733161852353392233520729433799736983729762129732824271719879056485349811467473418040855570923120267654132651078253606955095096290720947646346791922638702765375795120205918171709846866852949988230121967260652947262704881976122386367214774055173223345430911085155448645080012271332001012388194763050026376355417213817955008884773994868388506141867522470390517429031185190289853916929295348950791436734820355230495951321933393547457753902136981261073807470936641262459003047653568980031125559795451330236954200093873304864786390481333796061766659054582124338463643777617820087875513082393593477874449955081461160804342721872914624853432838138829260380627476107434174269349281456175235489878054922560146069695766356312451586932473419486221109712311591873344613376491788718216682186129430753840862951356180809722030761003654659376839680848372561467317444178835567648772342640672933040291627405588154997784080174616045494490852053028551536463277991159536500425124538460545777353803087273555403667174609380847013612073778531646291305177485601603721371367722983048544351323291192065908052700315625468798090282539736656591163247721466797966342177660332553078052892663934458057790842500017432965810681453844657600003054936959104240381767080862266511579362506910320740553612913223254695466826062758040452634127138538038401616252329079450382646997096604460697836425012162714900453568166600566518587293707772859269210937795963781912226442883486766921374947478774630426385430343123784309553135306456698233474386005845557831031417517604609276906832743626280720325558173267705465552649047718396455777150107313260433864037233619464738107316912086954447118866715035171321662156001659221694252081417084065991472113301906967435162212821460060799551268400671809443538787872806243593367906662655866913872395653772977178031895257869843057609210470203442217727956088074312325074273710184221416456261774727952984108281594390049965538280767810981176116235725047876160101430729199188160844041942269822944784465588944303297661137932455607450782295018270841057862018335322182892012529590045039872049247800007237800290407115003805924005901837300318904375622978928658082935912438124985129740901257830995229447471766436464390801873623066755932652812638888648117200659957163847172874774699564819046368857644925224827369270570081922805804515841186761102928879126079031737741205274066450925135574930735793812986071375858421873329752835286649864114847475779242926493293099386439480776493920762721115697294550225156052755399310211869990764836854614042067090148405736490820833392347840040295893579613825046455411586694122112132476758977065032280727248474113846487382406379939841165126264662479032369573908202107716100730680577828010175138009878925471675722834871567200042964165161691301533138650113906208190542564423308170629501425302734723178904704607897879992801445866934106125466302026122748086147962656412359574419084301808640872238082389120565375757266455743886365222276348822249834520267950106007227855418795584477250202798696006604752952769593509975487950398247703572204842180459731925593796740451513872206899577224388941432652287009361360908640157195019524378576540359744115536710728582061082022733928365084192461832550044968838040666969603866343871173968830658483425556688486368726982184229804474209969210876571784559785829237713987067989706146682281622454489515273672144034487624687012998622259710716821538953121900562729248517835912252559093679125543635004843199101062350443655297188522433513663151740415239306077987734093671887665493848154626344288300073010166973509289350822880474104493876541786828472900385373345349375187585460685688414376224998820953215719103431083438113111851649130940506412308249770461257020193793334935415489745783775941621781686946475386728332903108255267993078754947458428804163127088884510119752575900290997881821941505948739220159305330602070553152753936100202964631993221336854231567260127434523144912553978771464716590191208087248332324160316605463169600459404398936329954452282259393909786969975272342663062780511713273435427751045386907513376202068891778713057575945838583479291514852890619909610662573143269878981020670076952505546487431699829753096983058149359511263999266996894408837320378912403827900962211906671534049657560452209444193012634255350806772445440344505600434276825997156189407534380944178798069813050575611561427030816164010994780345569709409150887947972598166631933294844731603401574514164961972557277834598273585946021923036109474737499897666089186157715515851141092062849762707805882619627471657273989340803488649353003378432981270280836018988094839361058550386403998798873019387535122447345435337418742156039289279862774109745632837074724535309075833562156416290012623723048011196513507061864107565567166498339558598671205934945135621448127803433055328762436306298597506587019733028851804686326199812075798011590193007153089165286571420400656051543915705114984766110298838873713804755434333057567825845149996879539592387762383256995071222157268723016478232312630488321300906160275239822258319667065632071436176868392046686702956990157296423334869218937418294148964377179074923196577618985859398715600255588354015944572401093440387160112502480813102174103570085391334561500625517161181138660624287895879314875642691499433094858127144483880083376903493396199931498508805636507864029442295276880502522986444826761850473218074152502045667368157141555091203952495764767537572238995007213485752984080013208124509996602593893666198253337716945032112820582828749634618397131361076899105087324025845046924172152661929837706558448633783365059702884562429258073921782038095478843592414212218123435123132164492331225869760949514191984385185862229255657214762850969536150075776800796173440941264105064295194744878158874906099444705797871832666283118229122229493931751327679733108482019896960026111636382692357248889851264543530393209715783325728648061670358175572670903998882977984494367913860043587549434941078271933714842796378202781161156319661348298701125074386309655216464362670506844185528410648598623560420737163370116202973698431436993969056732859151262140328026716902157663748336251278924423823033285320951964597918860341360591100209190763455971180268741299937129161094090711339266240084124332629398325288283545640478943742915638948324110719634668504196592920143527909766095529814289881215934681252421734421622676645112347007130309308131613189270941433659661081385629118494173548253558626650948824767506256213372034663693754581244479892788180851654973114340618444753843686153708270437633626171054755890805820866084006975592683904163665891497740743743947571701194298007093203754760526271094906782992886043430054851991053814171760170425934279755863158590895834655003191838459072060312733065756493741491899757858676432693170644139166041389843970660692971647372774104024279572564817348215636265498845300010063943918880807231887906791306653814970070983731955149384353900427075324427797369679466385777252782712737564217557870203234835108727979249184643658919815759321384062255722731596905701654434014708783050274900963124796637528370122975856418375882340012139083321546668154108545342179141816773554413941893477437046713635983492214360324025536348069020718176136188899325049822042437205313468857222202857191882988155091350048180839276960756147968752505854704339845987249266418671393820970405933327204084098464597057205596153370582657680766100214212241076551756934796901224886144847173488842967644586260628998241817426748431340077094103310112449957700229031693727048289246720038508542564716056429988840289686741274993233858237615063168068130648142892050911532785274659400311670714514444801860443757959221321327091029224002369980252561738158134038909270295043481547257640809833666029877670849405103043393361298981291403381800819160977189089831299336302668661563300559164132784969865437367402052620330709441488054988123253625419019645731436868661711257556731537506848486361695323530732979228651367021800520066412615097871609050332678539185393413819152658575274972594377054188585682876502640264979449870029153093489237079305538769418195420598346001869374765611472428781140277651270446642590365938236926122101266976719821139882164636332294804457408799554580913054441042600694065269790782003184406603549513036650374747325001074260237702819511227142988977494475891643404440793676446528860641337925084577943650610240729373129684089630206492302250390268714075461287797393306648098590250071067588747027488543707794570497373343870136136888404712402833803105898140747713336101029212293541516482583736874097456119830474706621330600245670669327496747364937552214676590280379750903092156745854482590182303007237522422681129426070187939376228465259977178428466177818426675228439618201352904257871833098546203969446460872436161615887150739955666517676270307305126410908258724141996715930657805579797293600565161283651798865836529921911123667611731496210145123201133998889535923764673538131562212382333895452507331879744512810583722055332447961530688346564108963034611186950107100020283244228528695956787154903537083876404631801432446512112106912683465838522074404037474441279934528461169251885882931751182493814202829050009112674825733569554963055326676394650516780162055455277302460686587338683710040251607205887127059645956167553829002915578307964953347225007165164503140990069506441872695384128276711880073259606453701960662233693111737160562336038812993921653234065324282187551456070358687474904603426303457731756832873952203869652668636347368136873511484253872350064868347467016722879597240965133975074247839800433931837819995609328809451652008715142158360571142227777600658832595258676071458425979563505006946621692987195106639799682186124600531049166347804911972536164317204668057277995054236220099502901194063233001557119756111317638937089250621377110348256765136170926375772815586931538312305949774131669205407283475554829928109455936508876765340057128181039993008356813183284641034209646745795503244419911891896620802355380002428996584712539908983905184178442294742855343719522965936000016665473923171066320605272387010896016987625105774166705100821587240511241999561859932974217376109813301746888961573598197749506303164191102608014694371467819333801492387371250647484224436809592479629070770275604298675923229193682735428524495129152368755809062465706605407663883899150973948414961278880512024055719248475158242437437140460677482203207485732514726004603396453546641375758350123184041472078636790338910197548469622876376144747609029439734440395709454347798956472403642445503580583483401956290549114062397329817147337478334925697884366780699870731218639266124860836863467234059590979447740053674836106951317630687374254208669092317526038361975258063367232396510908464199920818706743379988649681910461958387038607978333638571248890982489166138714567662502042573269076231638621489989120166552789117224474775925260081357544506457882267913290848341626825663695029598591590978296651302281932930493513184512816491013463536254984176935337674578645809540908192922729688357329470858090149284446059799065670468440365703931551663391823033305370786121931580405166198684459623932896069880961892764253310205391639251552183220255637242345135644025432945838745320907867786515748776304047795194281620477792230431094151859596775579562681020858310744438957268206561792968376270223954010061099662611595849567101603966578048606682995578788537721432885674863634629987450868185306108401438187034311122352773553921396479121339706684153755240799556669302654602096300651639945087832455289139742048883076406432297682045742772855755089075608682066886670469793927312698495997537586284681089207214006507279617825146641192280497637523856632709910395425708411496148347118457091258028007687911365153831298979845480714357786373815405722699359449109260982115402236938919313607503833206922206392527610275192606909040519868710153030501101659376931628911074114916560968556020616368661797788934863045890920154183457099602260399436335189221714064477455368877233637770422998846299919729907827731644528506243884464231990823789786046176199252395762100192731596800444608048511076557631565689755324530221652855466793327122976146691435793177232947227414414600134890746832690979976975210661609095902316949975517571009880551775573894279582690028217060405607846928260576934494874860046257400376461114100151761636275968767705118352555122137943113192185347875332198316543993659317540636222130933098600118356481185312852770404646395931177562166579409777237039868099421727985534950281254836089070582017938185424936731641500332602654437662973218962295481517031133708195761338365369819405722098191211662899494505515851259452932612921035638503311819531725221617197423219682020182412029938772856099578459476566565541819813345459221080807627627750949429453324425287599379199221103034037252974011992992312113604245049939610229436136859083854296314028206607222660420265089687733604444454431612134722451499821215081200208532077177010746920109674080906213714659761762286335425609063883749708706741759696202945622756463614818105194704079697570103244794025708991417467982010853296559403508338534137326240103566641889317294737481576742825166248103874002946497806507942962656205935861944087589571950058478625596542460712278650425903465842603150574336680890704077072356232262941840975774922672027880770931557673242522380260265816184208429290702054977379266656198851524546984615749309718631097584023689030295390539236469486598152520167062179765821834196961753113746090910167694171368618745064964801960035589017486917953048691069167824912482928803263784752760899757150502266959352771569385136515880644711595716825777399015137937855761471782557830272863365843434481203981194834860914535241227614749355432592325735939957841961179267316969405141310965986599330652630209056144887802419967679056068379749940706276023005085839563949612240676848327553512842690709642774390184958922975983719593247885948704523458510478962217541190655446187330411708500158591997864737532218434599487466760454678975523957382368125142136162957524908170713601896627476330732658336634936598496335412519275715558369191167275595826657683964182303002355392879590033814273647676331613467472342269714331169329566861596750236948713145904143541786637160998374644414449181965794135496721492462819039366709974029322670867687153884016436418521574889431889915798376427797277449082503292025350247824384813649864354966702779981886396608042652722685969156045257755198849864002724456887386974505134314532081785856008739200645123327704478547288527778698395155444743907437768021161345449213203986311529822302052292718239090926057117253143188323932189039745068720412481701819579524330475542559308415840187350461878232765034152488531882697742937680511545082490205907391128650359899705190839010057956222095851036396268842604475932575675338507073777278720129789456408776777532332594570873793955416290694229086816766437961350084056599753402843643117456399091199308810023115895818308823924183494465080354482626741269318867040435154257600207129994788129632039691661831020935110641704978490415924274850136910568439312107204574524569970108715218345721276436807738879395066385295276414849528475959629893876580382281844445789433075217888230198579618633700914459593603397586636390818525692068266216662318986794258464145551882403335052537997553417541291097536234738921103819332606629191336552904539814801823304782980449863938630174256092063448445064986370895905328874223230228051865114781933584309403929894290631390409984431773805869116084264903844586644619374239642195232821156958872680292049657163138964339956018135189355653983490629553235589709877874900576592076731747928361085544694326795877787531466018642207190067814944876602089995252512597949404473049660484490147893000979220778342584090731702349769819125805821106390660253693251943353808689251892189009689139817468230585180576961743503966562447975331293831428979700016264470483302863380355993106116474495164450322563592086483848009875303528147423394755278088001436226459295140500408656223512199067723441745474156956265872430549784831630685026837259009065359365837627387458326615306076615618934225666630427197396183611061873518326545742283111864942402283383607765702658578115409375049656505300462398984932344360609209862280094735757114744029917910804560437387102327430208260347786827778988485409376896763532131158005756569501740146342234027014281238993971674099329193763085354449410201465716119257417936336495147404183832687486269318820105728315528898012977103667222541357369561807638313765833362308745004804037793354375785623447880694887457671295171214135674445358256899225391300685118522467860094812698457320186772985064695599032838588737834612140323397610536387727160721816558852278092956329960615434099678148085242764863095390687032294887975331881246220372999200099050559429630087457352076416076666854100909081545950839394208517350822748530462965001602016042192910797781034812243522702936974163255932676708396177673071196444208813828986069222264047484483712019745035916464665583250415413301189194639590475435965697988469323479288199326911305865906976169859882673920267602743828279383148456748392029619893938953204952361479983468086962107305689937183436253954957818244976924213256262767512517214496495724041387019636878874438971302447120165620842629722619664629351341875449615346118957511526788942579032173189418178267815010977704939473154415081991341707826498272619197385802021063992695327366964222841169795084304018026102289621322964457713714749707036389592039390402657408239970233075551585953242471565982358490991738144940853800737993775892930615707043651509214767606055862323017265850532891731553951177281535616755846277839756199297730545195984992142914040055362300786191324568824379308943655921105096492395897144049846705070584325993220508619445888602454267507453963338584622608771965660948449205897592930696926024443569175805386226959994769818647852199057809010686940242099937804672530114376954041898114971940502498635735774062559801063279224823754107229768156639370157404719296533584886004928263335723940435228992439406023257056258087377178432093185136429960367370513495144584359300685021504030727361757034366665719103733256881111954035433837608848287837224468157086983518953644783533731929646894670153979319704573478717493089786666275205127216191920879309350327259062137782133541405461601624885467843388496703134611895720842129133395071214343990744549900265659441830557724307750949913873846256142895528530514234131036524842340257298662260086392141340646303199667722053937795876685393798779111375392790238659489827730302872063341866605966497996593237626967624010849941175701081814197306317930564917065122886768853274761122336732688639671314889882156619631718381966138570145885227803927283162352353475564854541825554445845870028240595650309191638480162652145860629736723805642300663470063175766758996125727505835591312252284091278522403232560267154392048445021231280411364137067514649769776827243146667041912806612591313915380617821660601536707868167452221261681338224270033960308730240807108539060784835779740025239140495942484481217917866100788300211274391837032819913709584769046273926684160558737051687422259136165620503717567904146522235085363154188993936442166782215003354409200680670350567245952200343982747885407226162614667805553193308178002497636876776575937412483788991585265444517348807440908279153612535269223784921140573966872186247649381022086016142253624944977558253349026792574314565445619022963867402900167848263039754624769574585385126722102001892739672334649778467214183870052980738437771921212245565894496948094423839629411921751418904719112333610189004983449408440617618097255248201974280982214995896673433199243131462940753994214708879299008097839360765917731923333861579321207232775355499825407498845425815813492669424102743320861796066642465695116642458595464106165556995569830777733233488537476012435478718435246563993263238377578711326705676386683586090650001465291119650746497422399775319083889394100504856871502093251490134772069611044700471824706605820574548639418756724218993050736569741929164100442914387844988499036154743110195368903306633854097340293511689585113947971846275306672830431078395032981118970248554010530877241169348394639663892364997606631261162136427304392546315699745581891820202428544079205842952134863356275877812360694488129369603220478687991972138663893273007506428041129675246289486198456310527655440618357383383078548264996342683629809396005500983625484142953113629591309121230724845139558806774796398564555260235503912045677309047189549329929114414035865521663383345938591047748913201251803041185907000559060556334814791162072764542443667104569330809501014318544778711034106873586830636180146173770197066080572257682867239425409062048349634407981971205338562757520485053381166955641604565753639707110914586874230424238277276502299641722164798423857670190992362400181921324898661097635528499204579337606030324220875653968885988453037072178235949415627446785794479404726457657856253340789173528999239825256696784432834616149646073842549690499388796827049824105852432965194467082141715000343792334713929823746305442549623827180759511966298169994181162148997093272530533912861927102985812533271233631834426189145662971846142418605761606174920267944504591719391878472418073062981675626047275879454558021812930811485607083145340982257096689129650878376449313531558369662329201409730267694262609367848410764053982456816709775666610722252132165951391850466138091742039979871859628500117314680464562575783484109324140330242319372178607275039859359178814324953249387640912551030264605069777508227389454339954850498962979922355563814133269721489430505330655083147314042497184239076385794849100478018783876861673740450332957203877398842321086532719598357238523823092169475936770440263858705333787135562297425381139486397239169913119771183896309809488001203116058705565311494473405676974907236241334103803381273413221775665133832822361182099773238267688958093640423466756995910326916460898002720898994033062743136431239352816761361697058867590957534362557986475941110514256324237447302537733376887497265515521323365623569435227571834435536910689142983030131342165952423528367614527477670708752978360789472933877369670438728436640925227880324641676439651663783999158995728452594658265161575079898322318468581977075411478846837272787176198562284074982027275196599851856906379415088262746621728467571915693802080403398382062981089066240193964637950877522545279416025310159655340758184988980006904222333038207510684440269200565934616901870735534678253460735487976407472401045353914367246245729848119710391123527287686543970992167252797874553303634181522059816235165212114778268530481853127489562521227933586299629974877597847826390860480930409935827323216873313396307624007588625785252851424575631246040411871106918766112586508348291683312710725801446496409949412933939668633412613961276922104006061779713138080743105920346157181229845341091292416595194043332122407476582675420461870644554461742722145504898781634050044618658535359297050444763733510975843414777502858097026854139082022539172574443545308951632013018861758436605566259125711246861663308087609531991848500366359283360329056195166062035069994025409259237577415294167092248001306695163339944171271389866207703493341512534800074339494709290572565320193509055083161533459512284589970897389319797262844898089851582872578183627693048422024072820670602175164239306327056273066479216636945671125013016712936329322467362713227217810097832953252546488035393960957059223328769880069713669351011899366201246892198855178647096154135592147018697063589943997764413008178924392741260041998853837011036522796438391439846353864977081036087615633683232704115721523942638436064231424428273371115999094603641130113501759635479996282061032361599949182214991261390717630231933291447207241254078471162524337407332548686524337739924141526248751175739513330342365600499947921856511357945984801750607910185393540345770870032106348923975788680099879375435976774948643640690846943499964037927881418368079602108981026646779140368011969010570913688055901120118648779961613018237612601435809394420122620059747528255763059870445556240765451083942484654267042604975420130683816565443950326388286806582805778436389616090361744869149911455305613995914084162530715978396280624147965939023979981908729475892814281511668149928131174146760088344886115897521511045626608633281915662261350473072370060962766812787991097325183091023990987120950048171028000849951678975852003369306820955201543443342730210143213459358384309493493052211056889411835912676775241529243906215266751527016790026495804450117555447667284068870100438798280891707822658491731374367893257612472961202562822341238532774827213213186441604656145593347333859655409601255653001102449608074189158100207204797394641862747738460399303812799844674361488041522369281835119480958134278182042874629337810820860185126852100318275241450892911719651019778927174742371636138577642832477149342358787723910275812696816139436614248279623361571924073746579323132898871977280877787738582702229168543652476110506668793385177020030348431979329872684708005954530014298750109924411069598904704519449905673276235018391024071589139976058060369198184300878330599347875248892570230609681160542915134282989777988825165489278521822275250945742395144578858866634558090588745466894677199789417097988458592755340975393193937219286959785518649535067898062326323552476689065428695856212608495804590183494780109023990309419179256777371502429917288248003317485698604830731482493478571935494545297931894948849303378204071214768995399968129297158544330742886994088804726932093216946417748380970079292120481104906836354421339912628277467517866173513494204192306846104399608656824650237064247222033287901310316940093546362027059230308343024726098399234559580263106219984163997192931184453065912413932887247224415399217029420926592312146775948057182422855711213673394365855093719751680223188879375669713943578854532423631220663789326350038813771114924479686270043428775929101799607881123299282331464989838165312921753813862752971564451537000854181981670866435525175150459324152765560691511855803418007939865150211621463885432821490447919642168122549443201089146356267555632503328551049625434892174333550371010952362313388287866383999887430851153743692271207904370802594546588320165656915072625905852905671517173684441554729793525495802465754024266351262861096539415683029246342206113529545950170362630433864303144125023550343984538010862228062585153474312750114523546686413492153167755339526143296569439009077627142523553008891153707356466090212125369600401096439865835686579988895988893721223216024771087845341219914350333861094705162094293792818964797396151365121907861294109880451255309346944990289698671792713167392873305712322158118585383625857298454102101134607608076123249314543316744964471544815686122073064526916635968657091231781850628793717650607826849449972482128019920490317204626024701736042859892968239863466314642179199349509725615427378817611990062797686522233216569140203937776297199394541250389238859569271489060552738522484417760111561186397982208011561295101960529634018752232467784218436658684045526172319192228619857499786949297761856132553312781051741681456681750446225925723185629500143726350037091644428204921869734858958422091659877507808989156475758983710903050556837286842805475655424951029083504387634845602311105943620444819078816981563219063461667629447378355339382804100220557796716482192065519683974258221879461839288381583018733523562656046518937856493809677834259614513511439640028953079108978394043052465527961136882649373089663168575359502780758537647301980128183913371653431442649136500564651277468139925575179497917525371647213844180672438429398543711102218235477622587197621746692899356711826334363805725334215310254188512067973019292719582873051284531230147050021081722840182546356156067242019070984085161942002542385680990260239193166085767450349266640556843752254611217952621937310692054019529131493211998159770878346718920736379521212733788139232231680366125617381442063187644175791251313376856304386970652196670419018999784646790480455156105910533664256414561542511276294213791055768133626387273534368907387887689357213106398113341830167697494532466326448605150143598224676258643679213292901210749355934009026198497853514544231421721831154418707989622773860667142763009801883253450083992065303941791761403969334773129205637199561463854663631050681758148352211348025093617242132606331769504539229741496699470342073379458951047762865886250763155858977052294714028615925338270172567721163081853354193672011886726133140670337711569213073300875549669759086539109218530371279506443639690046220961151463084945763753927541227624081672768456276717594699582595508597939892651563067633708999616174615964465815655538226670177708737177037286760555465962632155681822225440433675706195361617171432555316171143856692205024011895850261433163420315657740323058303539857231147622200545866151529228670323954126912547814975726236944505802876249824857394499954758893841838953558504421666727249122811913783587203227755963431280280651587979724043023537070403143542644432395597522391752605422596974281450729775532645766708539557957176079071529500204072860273770617003609737942330883195222951091861094031489322170592534655200509894741122281951481994699988436503326509009332770653621723663210398693679969364627051044676198575572387315178254613122378120456030535194294170418660815959221855218656252253000788567141381055896457131090424878636885848586466365407886056857279477840410636865037590812588753678123785853696227074697070225017603006606257484015902332532676516987380026265878640812198777055302996431578869364782232781460646405380820303105577346116434820762491092747283734389199670864972049087697330799897762417976518506114717900946562008009350634143043150670264437006540664299249546242432103209677798021708847252044984103901507445275835947185157054478551956144431054179931549378370262896871872384458409938988128846435582414816862439998180511012802593888463394582996591873557077379707174931498409752514689189705594060722378450783300285439767798326448396769021153881034129254725707074421816800880396149962596177479922288416714576898668634028096736322283428874961369711193389517324124430892798253904517130503904178341798427336031383195970926918153189249865782339629877264359983922063353866963598446445891527059878803527941112634806260151415960173870726930466519122097749752567234312449494182716531258317311643983713065466388424926277398423558739252307457577972102342916841485508602913991680706066181629317943783567053997556767066986218429774596199804537781210023506696622276264405848591677057310437838797969213634533939486347121721866036059541810842015663253333853012957429787267508387533096438560820828140001941899993352987615880296180253243340625017347002535575818055538650336203834860095062265756553486201109532447716311850279083912803943798139565677135658390163530206297288350147155285020408218991013541451907616588362449160011370771823539139888453417265608247387682348207098915084329479111171864147924131549849517744922616916861977340396524524403790795767410510518147450122185313974536127371236430363857976734671799899014830711170852694051102200913849919894054122563607315796491446752457938884847573963718212631157970602661418137578719482107160977852041877875425798887430516897890697693677022839609758369191034110048734064466512255845169222626959716337926623205596610487182735089861433225341634329928325663705992971430309791438965660406821091377538054303452615406799538426300666209652993298656132787670138502891387987660895858986283863161069338898807655934596274306271600868426363623244358567141042173162231631598404554873003023967937869612061653035755164990531162596573959079365820526971183562876858020406404654535964137127564002288338259214974163726003900499182667079334199480938393259340129228410570361514532315192980898356352042128487724196042612040919937721818965525910232955559930964590357990259879850978651855477096925189299461634671528397445137995615413735200486491095107609850047499008053828450475269268051806921831264498411858006767994978884233356000828171348336092548686031462196328271242938681755153271290938758310504554921894319384184602029450633839730339792548445455202023877555143148729198067274834725979821437508627743906429349726268964018255810138651327539711200962474138652815589829177108611149886950879260895194995463037793453497637346024907594360319850235791809238525195519046930119166493959089093065746312901350191319885571456415816625004424907171389502179829417124538330794577775418046822543572451025769090908598248471897207676857901868363498468519942162457091611193037128689527265736096594764881314297920318220591681477943559289543830915336989880883093031987430257787524397353862473353538191973173018123120390502483563294818626570492891543982237036449957600407186871487429131380495567926104635338789319879880643427275303338646126177146318044357084592391186233204211024009405600805232761760910760982710246097410974156475345880604281076367225234650634464336581523465241287146460872780616724341500374995443813106607505127909509411440201214453219817874610928140156732694622637196971678306477366962111285306599083041721959298702393838688536697816482823651652627991518481552742968419386733249415404107385286442845407410609194680086529318605791887785980898388606245539635416738605812586707397989629285324140319947584702090496189230085700522540312275465737531011671353769378620569312384712514711242052575978878604126674422803135132446996965242103590258262255561315124248433239110755089809296977713297998311645553857284074651445018079838786337151578096316989676282970002475772516618030698068886744624604207984779217630265085745668427611561357225593318685420987890151977982629708568914822344245478054502995056009408686594567651703792069487651988165961662083243974241027153677584953083033806640726001459939791554134612657633520798217653708931273867687589980875617583082977287853760406692047875162606696855358751233416633019906789474622656174134479739182793613649252836312113363578176812727104611443147642705624139164309770455588988662863133992469563956791966885727250136873628324630475203583940671865127560465567809659560177626701162262882957031950277111263551785273779929622000682076193202428905661679821234740410781728265467291048886372923840395473217652261127675894220445178097774722086891653869182667143712886392290818193975472226602257890213432973582183258119827485913002287228311637971646197725144449011187878768251679740135816764661543357617028312446200126488609762890247912164331052570494033123761340196351399431031924994011259496846928729923569360298114754117270734132891843670193574130287862980095004971731096330581053800975049761723875399977312294515452663811360479820198451388353514090016466562577704392677677927840285991119867292179050345163794934892125261557192457484053244645508199411217468557537313143934042056716141708982673650533099870945360295124141368614036363654496366573825060441683778395209485713791739000839954805290980780051977714550512290390987373124948480096381199767579847913717393222472184637788819033172925887499619329661638286925988234766447223961283298489311082215429709490614207812870865467255734138677878370993250966703329198981227044013157616290800737785670820021153894738929650974955627069303881056824919372242292855209218288008341205727845686293952758555382473290216830347536495735215706827384046919985230788048770816307452919358289222615974768988533631102479181188726435970709941173522225377082260866268579458816428619126367729406454373900273332622947075957553908902795525370264438086329390291469042466550683715296646116997112537841169662635231784260538700668516108730751258292351689596490185546276250324372997074003719000480163695560721609620871068583593581316199865585934209475701639820396837409452490497062541707912879835070706392489045084010858242726699325699681412818592134300211572023808649411592632372959241890196734793983318841383328084009032627802036708705764642477455285229949692591150767930921776415494783627196343696944285609084755545004489261382473805294304842469757911642263818436145794997811753326715703360938846557873456988462012444363891781972848151959861952245601140456901081681789566128087970572655196089103778384248240638390901905820773216221213868508579315006953775877485471435111838385286551442994060261214602027242287408752910370759038210476415043773568090806343807922881919321885127159473816742124939537519069301344936942781173918881388172448947224585242055732361718675167920027112941300437904395732854597632565696957908234171781879651800397448620756284249315547522644426496250820547962420242112691045293148557655054513639772672228243338704044656867117880548170564722513865715229292667404203699362965570903880195909390629249640401843447348940117037913385734288937288848570303629306497194824818263147549080783937611087911992698400182936482261350055131140161977749932431669239282905583982213359177010232825901925393877850266403951510910025385636248227074693045280170660202145767243259513809231361738063138501471926834793327148067809174905520571510673413077233920748456816549186232508574193702194291575216926698370991063505167944696932819979928794643558227591591224784662208982535799567745882430792050249962736863015323275656395556652671780877867262229194031671365988806813647650660556909856433233706029358758604798980011201411509815245281069626587370677262326059688957676675742643708015212849040508838067594006702051227966541102047392514836267879143798029540705985199117552127488064149951140963688255299967871150841594597548799640788382349038613972516009303698115914153872887891801971735872383954429072026457718249766845853945406140427965073666756079071848602839308505740103029463249128758540839450926799563193265305344654237340016555742130815376075922922567155950550117096832935318304718164410914124598718854938423528147295390042024156043336558797244450495492125297790567949639514425015732340106205755757103003957863587385484005789924038598271706446052436916325585715761997541683596088418160970845126062440621405090612782799931138313380093982895314196946408424105146494534874977419733517517548946050622660270950113292705719018789367069222883931396088964305856410843693880499431717783303123282069654988857017303755412387604006219787221185461379827355060981264118072878748109496198463362781187978276039821360370290779985961734344264732460441181081542165037503213917131915006233441670291253652414487517366846874977798278583595031654542324064575929791680699675946584554147194058036540323475582193241784249789759944111238802281101652949174111568280847796213922815820796824903448843714921552507291064060928372428093958887673984820629640765391726956316216274014246269377808864973916579805891520418658704762202630167650464563553305851472758911734262743353665232432285110093649776133955417297669717771841066966047126975785092392809206259020190257895901693014877193176494028445638881125787570441891229761298082463018023326065312769755132721449229958702722621349470902969055599060025059314319562495199391498048357053893469697798063459850020218832091958016680017772675842415142011895759785002796390115918649374306611857827189080839592773919128273916430876535968026641887371420776703463966325039341444750573492917751650603740816602505476467006296037044811408448845703125171719525690062942130097493648761091725532051386082439476063530661251304231385518214581631810458172791485525790082307272463820114549979568118647263519769252751232036243557025240036184188895141493915428558505669596114222713846658123503440957955635788969954391320491139195570294034563764300749654407031958849872593902669471089666189992788502575255138478094542783110851989479787317540268166940204187392413087622962497176584661001909812653087068661144403591159447196846975912172247094762875210522356851786887337111859239154476143250877311362269460370803549828503005526644840448486638370255835684155673369232631415049794722800014769494956628815246565821953429965691196587332347978945462021317409182321614676196101802084321573224908723301680704044931362013268937910360560800283148350105785266575736467595599906166947661669344966140420417994243359674175360998684900346028173594113175110847222731641712746321473738010311960362324834186081573347605642999342414884610244673582330925644142141752456644634958093885661474570243219571526568070380666714483492255402439881025752452196863256675846389713948124136147312030780005675334751301648811271834104274826198684529252228721613504018959428308241911784525306667014260956181504672303734302989806154416468925548663235130422211649939693110937392927407540446909900922742754039378531197059684203778159428691747102582481278922588036425282546893385997267235955039391917566301928252858074378983608984222538263261006067795244605719841525939739509750133126950684924677964484730257599079896001356531984497426382466446867395794615529439822035671430697998949879101537153847217328682164203347013856544944966018097737179153000520388363221939599325632737592133954335408815753517493741002494508409213925158842739696036901548521366831442985912567013189565457390517597419185780176698163823105436257321159209658556245143692892016563799773578864988667862724318660402989514838609590230443667329642073556516934529824086920355441409787268794154511942690434182613127775691551973002811052217818502083838006263636029941873828745741253604359667154456031782443595630485972526942242731447482791222397214508691623696935641883667941571715725009363963367495891306740018537948434537164609007200093611505754375025249097266214155085313079231051323371643317708565261138186240707159520746359041174500207622297541130985913442006837138070571878045521649322722140323714121055196604252449243522527355840393093678168427351195855547243606568447192322072617292426804921354255346184093885912298142892099230343838333595720797902186755481766132763582503089710252703058759643207369075772333187445681676490954935672606569206726398067697818876273329080936956968782807554953006618283107860684750440394285286523039166457402078770707634508702719981310380399522664724023877947144290866815542594210221499629353708200667326400149137617760672622213915977405536550130208078114661304090878971057718577274826008238929075707575091797745820903494780753590623890401242004581550045281873799194518242848394360449859624792344889358212181225440338111005579265136993045988292701552114783675785263490492291307222241940234199578480624603067451106926925450682656383365356671223610595832852476985601259508894642282512760280816341012248869616590332130684693993877255518263524208555770519390896816458653171678999231545718910383897187525067294633210076516233318288723754745563475266324831380555243843502168859428588423739335260373125897127927487976532499992552042121862874155665695065138892670525465083113312494225502965080954055502597093210913183049315863951121890501477590215831321884920979593460182466587888108097581608074169597533568224699073439270186142948794142865947750364622812202881269048806646817589883990136062004580038050561872993119466823420534349439043770617334778790736147078909533286621535331360402753199460176348975849128067692560401218994953848576634222174964965179044009867572820671229646340103037193777032757795695710331767773360279110719385625651183066266888559065874986434303598149755438447110879601117954521166371102216706848815526354946839628799690297926143051178706398416466341607810175618679412506940775351974018983291915604534058069550251402746970701173338605510275081808369540835669653834387095677118384679573489698762915533890173008537319370777170098004120109003562125550876290788916796621731321513184114861740228927245535430640157131905728065122053228115352110183787459726131194003375868661965463415178009587773309147405238698269620585891009106384422177469365859922064145750552497794970209415756448227965211936837273211354368787981006710672579157368891665021569962616310553289552109580847858043561231781011384075644960467715514160446437380039214578208157191995849465153908982674882415891569749370759957017713041310665972036591528737985646571195598233985831026545433446020726453234612214117431635218260947806850645609727375895062942703561827715903422716065925808565329050277831994000071694302630720070613461695209466159409071225561644189449602426903626379376579448914120409517677184510689305191845932149113032386440006961891487366796405904846357703728527466750893349798906703081983632059540687410866769397335414953557020842074226749222083925660515175986241564307636880469646499728522498671457477804278103674005357788461075874476908703808219198769085211347646652090424350203470600601331680996669142884916871108164117951100991167532514079141701209572697436111108549642831282726913398683822940045221397223187715860071870350680449985961997716419279943735877538000065993567565643016484084596966458342750092174859480432837171694269232484141527247869092389509534272919567696161293009239900808003523479418823284832471299796195873309149220484718607866109811345209861948757822069331438830406901067419613160741287899600768193971374665218049490235147437298222573440072594352124291332966273385075717000718615607547924451261834504413395191064475767690608921701115499338777815911898353224727266409563624203061662192442550346126217768897130955461493016407140327839547493728136956113516892249994970818965656052574065444229276630775443495634366632313474529558915584915501849996247137980111669022287512653232541724596420161158864283896730827127463629529624273513880373708674093761723299226170766384037057997541406787604678766853765736680598831810507018690247586710893623192641954954392096968147851749589277714233978890721575723548542814637131988477937893082393333984355297390769175947499028223208748181621299729190962068840237410793113803710400369045581365249648500863128733788702138551429129916313993919651947082069896152621525656475891975080133069848746230467532606288645738736135144685176158922872746660392606376533338344259075840787758553107606493666278621123339110499126305535224775439284023405666883382831879609382140461819698570793606594575374477254930699417843417891592225580078176447694319829411558105089928833614214001438551657721186191218646060267823231510495763694366849792673176143610212873953501337448533931002575743066651384698773909866460160491121934623598924424191388252171975899737529952083005055743188321326801125970875125900057649521738186833174187976739395645875982670468100124572322858790197408097088276141832522045383140149166807318531073000135495657150449076660647117080336773299465639778386175262251326734116424760904022135972392120720073847875235829402841826145084801277662196941724578912988417809113678582340737388194767479410664385807657873314148965706376462859416635556578827944426400168192909830786704417894944301560583619812497801886604210290566906307983119960957550471103492827630244205149654838304030220050624639058187424300672056525253780431453463915884854407881247141691024878443087176059515987616526826620854180793857672223936515433626404713794398963560575080804265718088133821064037496422415324688952791231878559651991972301525574352053537930666119970745062851469035748373623511503661272159446315422775426631453402805738208091612465042360542270715830296187601998626672964878291309156923340857132040519276678690583768702008318069217309169943114286972278302961822462257104584079968069561144735647767157886965191071660866817990898868204415201075458722423864577202616284476546924449608513991250042236957662600720474230330847672277486498891669326701416661056217995058218073636942272385545634450239539194697267508191266195159828261079562307413121407627314138650114993583210699810255108294154293356421591795371706337986761602963650652927683198147682352603172971850471209047381470420452713357395713074695327699190124732622639216161715943253538366837081232347829228418328597948079271407571717620937143084168511821538177074203180349362541020654233342263392953664968096435823565753994853717949452991535089729586658398045311562167640605910147521398033288565884450191044065549238914020347499767951790599870395291091711609015075845335302559354038491008318606225158086401069587663436112485265522131380489333792046411701175874805374676495527718078626077698643310784387961367930828937722704604620911028327863079770002645168228498276255463038010882132370958269014885689382549318858701720295672655026832707619027780991189495187062027412540054279483882403065667697196740403526827186001362975544959874374326956729074948408251727741997678343929779398991308271115903420407296787198951478795680901503334383768486880380336688760170278640839690807930783137053460868145878533113300240168896120569402576081774843647585736015753761553968701994408869212889189572596171278232677550086376346650325924349102465156715219433257737380576858185707299636692326044162441390724161659866845257866111146598629544628198744740659804440507886443864504957315312071250702562562731157728927950475969640222581386201301274531096619281406239602410801339216436927390824087884887898040185139975001300962738513797969177849835685042697196593970259506873895962404343233224315012336535498843261841112850172021228352557354289982016305603633624818031784631203551577446243583870134979851877978699328856546763613694993564157357066335635321807383989090824279166648582006493133988033034008301226216365107447131808388612967966257004568521781899338213311843708118742646050396740308867020557503765530012043012152267961853308935730369134278624903197815915656946919521694173590943712070371727113251491763041089424829796006386370629548423249040617191247715351582205763961659711400757219555042591516980861162644730115479241185917214928306351437315584957806994639654542609253038690162036551376227058519077801917907134594113464486026328178132024460209245464534130335781200223512528842736293781302111774932372046940360695390317247011120955468245310382013597586723879262562412302308836986037082713024129178566140668012097996531754801992455259569372238929533094494196458206624684908228310991407379611167624545941479123014471556205752923910748453060983319719837451814346641728431303654218965372040025878384465038517184857993898993274990972466827787704512647364907421882854545582701190162158976946466047626821739421655232370037155592352127946512396487313064858984977627021760306915609182512051588490012126638903413501573086147233541951514045767015941039869784359183465501001066447500016481221927034358216047747550228764623965409540575397864603356865561497220905888972936346866528786094406387665638053830676232934563598117511608514835406701209252111901320795103515999230685850825107782533725389109074700432306136699699886112807556863757611473787359741501018493575926161301057770912750767663685697131259376816051521514119557954131914443653360292299310226649220752606783808175177181859208157136654353930416243124580403445205400089240910760388522599863227300715577565390931670455882917497435384342871612503506563402302309910725484658179709490178675053055873815795112443407704998392531161752618447465681825467554604531643430655358220545285524251201056851533060231313791323122471267217423746663666570240331894518387464658207746784557664510498924947666919331794944358891279175154541315719228281639104213162790172751527361438259937730769105014261200766734571066428117453839064980200142513514353588853467708197194690422495678546256624655979375093237741343708726134747323790685898051860613166807790289807891785052375705140174124098855166007137830581506883942609178084976956236784008105946241448864464180126276522023911115872165592728594906801136811632967315946609404897319655074092108620287071097948467683342374737961257046826521010426773208510071032286025202172738217203114062049224481129235142570303107353723745576430061328023682511701896400912512085737110586283729929397535366510187710384177748667071654286895505239857876428123489595323194428800833855431677859246898882280202702448445520313321877584446565224533570298750255155789558682141815941786022346122358467088591021478169794403588831685258342356167757192836541903327060109013118833115192566938059465406154565387610365362908110798663142809546420055107927146816464332280801642454767453461421572067946286115838717270931222530553993199539471617936610196039602376487371059094985654438336835680039390095122897201163892373730093975545840033037344641588051965248337184111439863075489057805499382119688250085159757657880067966032148994559050206786198271088185613283314861985083728766273148114489795397590549924022890888822604542345929174716113230704629012963836670023151941973520672382765515786490205549061893576819091532765685620441584478680328961355356913807444749784696226847522589749979899945307406817045126948320988968197591742388357679012645077266556761067413038910731777148487013594314464118253488525044377943929208984790100907281963213435566559853519688729407343677278641596499731686243678870540116256576658031381937346847822352594810281385719278849862956620767579844041311119601756329308044414084885544169495976804888799113620886248369347191297285738844520495486474591022954590001242923363528868948053818172883308308920567952914038645188312517742439957344154682823590483118767092477642148948220266914176255080140091574272415427383263804340980755686025680391015915434033272970025814675959344129477881307602827556748472239541676594708633684846902354720727836939491471689716177383742516722403955473604802925360068268697758844798843770248281118182996818417457225025619200367515151514102372922479315638930967552009978095702312913183807060023253447592346219804712613033217059244674383133541455900913935167528309539927979339240631263378014636103203144792568727910305906924032817951186910391722718872456333553245262545266696496910863956696695860144724165216459957150643179555519023500442033351798334135712840531789331493478263137495815983721964958130651142490874547459962463112384156933724387373302972299978481961370651066643942338489218029466396466405528677502776393829378063728069931826714447780828645660829459349454429290319740016053052955178115700994663361150107816835809569528182262865895782297444546366201835368001902413641252453683109302134403780524322946176407888258598569848048164689957118247068406278494215482598212273153062703379817032202789988211108622145544394470009712414790147615775658360170379398758166113216262847028417697437416437372166385015507045896649868952430303119488441025113803063683165819893264502497492264777643256746836105900462830288397396793633327823228401101159566685984919373290375558059484269511633167441862142346388793524518917054116350170599349353527525710744800920906758942259391385384639632639840876897995310784359707008958721364269182407431853154018407599974339448778652021350468599079010943222997714825875224065029321421977598840600224074414493307488611910194939598813930752792763110497523947682957160403985662201301412060281764384401388635035720754686010452271182863351838683610280192785864813083033594381510565912665645058987944119020972772480161835348885164640391441601752859163169988261871363612920652038686488023764809159891821727085320769682820183261774695711072707045252197105526315422720264516917660375861880758571283616239793972821629796295854778171389337354892119239839658862958813197204421214377468417920245782754095403451210385817181463272193174223363456451972308499184255185196490834280058341062027986318608208212392961222275546672155755872496551202842453898032445807950870941121643029164480472070515167061050116121036046050047411445363884767441799828271331229532992461490683088451198069335858887005791169451700708715578103519197278277544529479487763544672027347753978050761588263565159797712698732077691527355071287796649298780895976741413899834599550068879607145002631741590879124157321149612090320138767963738023275590350022317286837559377752959152351093814755488551513464687900956027909274728653241405851593834644867406316028674323605102237635603813668558399981386619440785983416222678449251990732395964273847428654488920860269546251503673041609451520974233542639527040762878841544285109241226563977284215970082915963822259419133021674747027077467449063469796365658710976792736883062846529336988756187995570474680542729114292919557994833896997975821731524508957132815728778280374628213847541482477439585812718568760809602296311155544061642331918482306036606378392129124614045930309183945919367097182490950804640394538129224396065576420542473250968134218980288285943618762926744317878620134826939666673325841072364739772802832844920458795147758746544884955817422027030168017381801508875617134781582650764628614294260183799453912143133119059863386137417620010909781585541032069120267583387796317124118947585682195926160958595423250618327271003927304409274168257131764032398282112282657318199461703457925600757640934609979166738581094887662358507986573039403310390849580236200124333558508784060951984911250716146763903022506406825139001038434285482923245838345916970775554782065839424043144708058366893712291308382166947919293652231805574640808690898230492769625645533600046170368011559656820026401897537025995040744639322434105061914712921697002419316359695786638638974561769730485717751944408322483482631464037746303736549816132882323405170011880349610459819464963976721072575029679639178089075331023041623721454237064946674118380026370999950588712079929993007295774751492693317578232279089845908121892416876433062351119241690092352208429622633929857941353494641598763560113955980928531172353312031528512714300299448104722493348707732422418275416202486134310803586405810700518720677303162722327187505555105985189988531175456419367073035984802951694163490315763532619196194676130968099088027490045715629444645142915835792486957208287281611905250685423867422030254746740533915237020834263586387026302276945182862679555975831752748694364431726408394312597431212105620049519327082176963984809634767061401425824975441469885101804800955499970440342207739016371075474534283089325777606399181115948325834949781846523379413478595319830546341078511851648921373637064565653470067933722085572507119892684430664617012555786706691958001938004933242992011910310657163859416182426283352175954109373851040843277498478053827085997080693513334581042733981854336819526526123663429697764116481877932288193437938725967767406408197633218070746716212478448370066460054631608302273617060675369749609829068833233274061487623332038027984559314453776757345336670792400068739987757231467109418137688819116497611992423881999553945711824645221495002100867098163388755084592369163251000147924181667134995899939179835467030434279361837126835616069040559972374999334689893457108872263994439118617129596328821769673491953347924642192783554815949267486651484403695986792106923954332736675282434151483255251930474013011113324536317547469468959288248666615224313116209830664004589310697790465293163632086559476340981295442376013790155869671004687598346285883081909272279394162175271616887628214439360712280411383757374058262512604479352734618823801322003673499439724236990348424278543212832473107976217205619197338339088754528695010670284559610765868577199349902700513050137545219460953788985676469218807683218683370560350290340207072340723626472193616412460106745576312128990291510278100125247516954171123714878861661615382071353683466327446903063982624670017760391251304055682864332366439009058270196089917256497894104604906347208689895949994587479750192834642787695007633285389924544834912083417703224082572134757418416438119570974852055785191353268033055170554559050139868753980134491443211918676401074187744755887597132195836539421160711579263260334183130564366680151628874184423826226294981690050931308571080020904202226499665724722010354221826190682469723147101743838465426619809567361977954537540895041535473073267396744154545348235915453333131251842812902966752395327662135796888801736446858341450901008961436120260193865125487399516753797388372844353257255197167501641193994156766842060491507508942527703587489979722556418229644873441967981365017871794192456487015348626025778335960634858752665148650612381031302930689539876874248738147643731879738112803404896368491022918157747545863137277625359207754000558288701885618195385321939944552861584609266442166902597561536588266138257543833609843982403958510955155442693902547466253044901248026464973530353972898783265419065217384720876395446688293177219817161934276148379309694935368101644162490076426129672369767238519482379076428309247172449382912048024192935160550016680881779056298960903504611346805866654068312067971796772720717903250118536174901285902052483768843026226184284627141335858896215139367448413609295910812158125278772626037951473903034035810811899214192247765970364612854612810875613552025743950664791771492191595857395772542588376384241049549942166442609303433601207511356836652123768119430078219697044577386387601167880555026187788099427321164612965499290910750678618369395809344550926545734714012453826250269527260181910560878689279723650384546906522011362406994983648624215272161939075856608226196651592558889108763971713443970811097974532061081799066120057210471807301990658436062216961006270658989038270152528726350656669550837463582725575381863225735395845281950898158377903073894261297004250931859055803420724141052773089378070724103233462165274534696080716979261919211577361578092568630351094775987954031356216678279431982737153984716942868673778759186210688749229567563335312246189125889519474431781952180021378064096002943569085175625264038418061523782961599575664011185503039385854480431441946542578774539964444186655536906847572107022149097062874596598545230088481286122567365681021386544039603840250337977839389122722713225996994541659426422221275738403989346883286025825954372027970776677642199982236314874038818904660601631510736891068075149754706277802190328324233934321416252406741323002506325306694768643010608082426074226169218015905890332065878020290199460030811857429462894470890705656508200073679721898462549902394970263059809413846175628954758319980359614342094609066649435184407933186498234919439621393737878418409634593922645766841220956112251203968943532875670520721459749962241460240255415069076615391896810342124815969188829234573045360518495282738351029143317810687135529341770712517307844434999703893014031655408147393853507287022630231007424162106995897511295517568757449614395022126391164618439266680050788737522606512824869194894867940300121669565750286194920197625397371809978326012997137671159926653133174390507111322307442736154226952055971036606674845006441929561958443294756405012235813783004057957031686635138802385559729639945242708993706921823959526164492781046164523065476196810566405619299819488735971466404482863506256889426117576288185473650677812331926066990441200965985195226809340295753073517480665127195150069687748251684564651585018199386643649521227833723256787367191123874618557677975726968325287546193937508533537052724185526270793798301122342493055234732703464947865722495317616433650662695584291721673020430877255972248192613461712006432860567099617911337870078390401715399064457143964160138563585055754803353281662378803648960282863119156530624299151416351609086208672625797319946566689545954371883409895961130176696275361936934627169201784050280386901753333863119791914188805725844908746265439255932360805337149023326730357120755388956245068998490945084678763031725554372654012893650369481273530571965211340724310581803933197466336993701811756104383271911469450431982276124276202018966334870732081160708093513353670875161680833858781265952073598795165091685304545220156479739983366363062509080274889759214661990086371202352072039578778233039354570233855418614219336995205988108591366329594373790988916802714419186407298310645223181868432489102076174165985353595658847899449508495731686610165298696869793805704443601829392310073140319576635828081957073056766161370623052099982477305746032058544828472668936562598327179077659346401607662136124347972354750231684847260148108592007169309542265445117295723873820483251271529887878835170460426738109457932748430728663427604068947146161960919528701319571092426526248287432442150960813840779954593366223330690125807064964480907002083846535572830139024286514562687392726289407841882574305684336564638234352898581486586111794098161645235325240394333038071104509472029518378732256360228249696405061763457139037196101568906907270526879921219163807198132341193129629531101883694092062577103828102823741671989908947753422690776022776277847919147797786861198056048871698148202322417869552126884548954776837747391182740034768518331806170497969921904394220028213069650714658496554338597555159450259604590369258368597740565540972490408268236203605455311379095314175557938657482137952701996114136184205047773338262114459219336527203276370616227640538146758284355544094723847955930515799808989274515529061070237158626897515689566872794571790346493024505219142362275625165447935056927852340912360051337025729453730620663760022580975408731751527135718823762970924652099069877065221441764732849704359121842039861070308867342966635770532574210717290736637055593322887084250092288253066581525627127806843113899688196593426877290809134006613235051064171280410303493319401852600731147070543279507199880308098147167332812698184773360649488099474833296454417835701516644470804515826491978635721077445804694085846204014265176169486899694713544974530697397220687481197752971574604105597334843477934260579783305544384643615360071263783987908163285434064664523766512789441932813455815909171253767610987292540516441525012127841186523528669326924805492758909171137550429731953796917777926053929241066524855463158272297267376237725139258847140683070063768385623852438319162578795067840704202007927163171015597589446545056794811146937191646345091212243253333781808886880137678510530563832441569037867416534485039282061541670639928849177380975458399412667019225691767973802072088970581033035997058363772245727109234467107430494933112556039971815034776081256315769934156510391476834089235761477734917479900300034599668657267205496409995775489844604296412108797274245813619684718862181702035374944565620523263879796124334459677814821692562695898174751020480805476968568119690757879271925788174650879084607275308297748909808246853249892131446006483157986154740187195048826748199915497796552400822478759651188129588848985191494326265047319734134654364015059193598996111124601401791547468193468402280148879225108969254876058915547443488602421210836372433087045838399685176343712195149753575546948107282178272065718717090638879512558475744777073747858055154016096796397554343068488360132292827764305516135300706389237724497132287058478612497066986664127065039961330849273707590439136546673741427136774710147375051978139085611150004522548106735732447798476753840825687761902507601808610887369435637033383215460129488708153426298787868287276795418183140783326923063941261309458871025655920356637385893039262509842916987692057340195700462822371397139108881784811592090357851614983142406907086043092039812756781657178022152405657439319509132892210212381393336386603814437345011208438768629928572876361952953901611323835878524734784721724938461334590429460962039276454283720592555041774314338868621706880702223476297763457149379775317327203213486520584926651349264244166150378077980883695093710496531819470261758905473799867221157603362602069341619294456813027309752338718411584522097691588755251386226136381019161413195905637688488260008197406670081131041544958477772232605735508050992555196653258153500744500679499238682397455705025888985105160764449318912762188942432264168993157423275031424901611720702138998351341764531658691018684379207996717035746334776615884655109773442725550792672606912292914199439755194255696931060398309995908403421180099012693851071341357889517509053375132125509339226491998861043959102860064908643654252782093581671521955379542127591450724539225212179404860358817346297538036963862363750105976763874632406210712528940183344027202114864265647459712402216252001604195484097213161914854792605720346170325310683779930442493911866141865091382831201610078586427448959708547081927163409199423718191902345375950191096832680330397229904622854645778176084830173043469743934439651688098261354969535304561206090294485619008410670956169820778914214998907438758064458303198669714944018864263927023034533894880043370789130370454287703023893469668122333498260589990088715078210477029896786163079019976452780509726078131451651087837725374068697856172576244313171155023896817603894781768679355461571851219103735091108646151874199003028171893698711077526317936947460334502020797554838144383921961894673016036488903718561689634726409942906535028395182974096242591368656612498181324171836959479820264375350731087181237286895038470475067285081354839077639279599415349445853870951554697185302645252571432412409662111561945503118094908645270161837778693025589447545269550910065258280655931502680567319335330572652185512887775871310094525684063005101045067038598904268493426181096372182213579686785635132273809297640162617436398791150995389384910984348575813840905130941491967527518081215016597542993575181906285083412047930973498882562022221059611408543145888466317061421727266974830097696431008185105776415328521715174396190516968327879012315811235123235107419687419198855928853678473747754641303043025486211672043716023066935415056497633285484624386559481638501821535565204821537297002185798690210330490735147454689546205361331302885274298307130875606583885106926370839325546598006052749340331662308857415953238142634457805597778517206853029944549389053480582538771211989128918460431866344647737190418860645981463740064377292411337337274578003515965364391978147761421168462992509694100742743716734061136038433906646155571294916570488611335627434929607599273138899159114794098638202298735366163636630548469856612836979064365217728312673660207989279273503847378114709834101981581318522797281057583319515379156449292087802192085282247467283912684763437172368074107376783729858757904972710719702511000108558380020924732065703118436712677453765140400215973302924823904122290563627227773417366872448236648471548383199359806890649427057430195883760325314702041885649310437235527231138591079990481515913167167244818290785779763810260166831414091228804816890016965537523347450127655347985212453327954702402128657549187537288183731747623854507040144813720037996416833745153088592969797730261094208290324844019899124682625872138226101280756394741262320782977322432692613741997701511178221119570565879970351752922512250222977590806064744365659073037816415703153667173664728516924388873339716096919731364557577514152886515844706123917067119792481682858501285737324258075409180306519479557215793130316003104630468282570066912806736887199665743139200223741445721689118422144900839144185259819210190393596877763646438067805824258863364732950414106272529123065088434506711469942638072783516254850171288203013201181541206755053200233511360778699342214623400765610226828165349314486292817851798380598697261875698929185148400586693634086587154457555724921301077141642221398816279321156729823392099573229337056403764701704623852655868652896557377495439882497059334663256169965208818881290710413276374412651559759561482127095857405216281937527241694451901171676041309551585556205943348601605551671583413723214907492088150911207806462827140849649399257715399108570963774027493885825859756379497209122046647548188511981672681993012081499770749066226186243553571897899965708736659777711570328009482826650482229606777677069454123432244114428585539205444906746067762387597222782031991257698909587732607900552233720415573566693984322347468372169876907023430080300859076748120669226659698111498104571081931510178315385238933099167563713242237994247198403322861447517217225848574297292246548867929012484620829828337316474992330975610954530382535329534882769220973820492077424293051721243683811555925303579871288242575563176996939860367453157796173199651380063413882131469351933584960763758064491267972144322929355363457355831128016422407961266206509020839025116588844907394383454727272979296043693474538131362713010148646243796426118637452840311257114056511213058227063764356765475675229994696450325466906613710477237309480992462083357275711515257091018783157222031732380858324537513420827512590641391888749649933681424227287506703411878054320684433710451543146876801234811130288476902155579408700602874972554081717584914780881038651889229028234349659890620454448937092846472706020257689190606201275853597620961427146059935833578473324006754825830433463836019670921779637040041961388003619707488246622187174964481802177687911307359317438385819187838058412258172851205472724874885459253954402021213093723858246687095398207494777358534750702329436795602672377295900707947372420739444129068737560022775589996701111527315563252675897162136445879632442340860248812171085423462464806290032836875613399122724201483698990275029415839772800252082410663450557571137826268211373945911066375590283963927757230924102815391814839389403747502454235528798417599673877765283901041961866232669706489833687978212138143736545094432184625153450953222720462639429122361675360933981193361127439409980145934824878640511025273409066781905407608821426106989344169397899328462041914916694969132014493625021502259436259715814226568048440054706468868755034019184099295234725517530072106241289866800131072085437402737236375713441263912689229722505942817663259417991545782296289211697742400834110050544299430133731192960030278071924566980744220853268148495490771071208506016327838531622641198398756445762234379487436584521441647365222584530301480338024714999761657374900824320641392517155303174059967011489990915504751261578231137799042328633307521876054125857431447091191940217829148974479067720412268722625331556685494475558521650381526343200370057110921465157631945465693475576088228576094432224723917563505225753838074883559682338556300844242595654170348079690621958440431288302597417154674808851433060495024623389349381298756564003122723209261105809315808017939682294707604300802746222656012849545513713149717459365222574441683743802991710398228591595802796244747725866740238880866461393009587658817748294935727801303917092214400400821903418067542127192983575874092913424310842901158906052413340097074218787485139425663605698539059483301984262958656573497719218683306051660022351076126754525635955770737641336884186023979003660810929856267325340434091203065347121313445564165683183522612853952193171221137988553030998323853394554036628246175408962117266173695625340059623164479702529008118024697573000174328335123276402098151716259824103958082914365585729264192390914746842642376379048922567915209131948353207709088901391058586187668876621076564263507679108472423759341787645831537002214604904890972149301259203782308738115026163596522373077590789685518377720812584423751511682045435048173796177176917323599047916872772757344369044309076004126604812848702052230033778920061994493467247877156518404468843108822288101864960744508552488780971796152239307093865772055460771666505028055424798817032316707798059284265293067033440461019816015147344466372099974963114111900946304717943965519955541350914726114594443404349311311499615729607531255412858738643391321337154463191744649319841791538144615456344550751125022380616476255544108373286674442858227453131573827460265790286428517505347368292994803594854294785665598725907894006979996144535189534222403733253994404021711873202973921544139966623525176258685096894120890121487248822355763077916990640463306685283650467370056483619109455592401618605708829592545308539299418278942765051902179978332242475520068247573148693388675796488133083725458978433079892281582072437986226662534536131224749887016979608619748093145987877940483848690019342683099364375097928256386854131342750184982312477365528321666134562739134079573117638040220289254770275563431532166136750701676431388019663820690701256608489733581669973106973561751627695300299836956352290140825251110901205166548622707803631715024525974331119727851820297738422778159767651650458661460731210027611601880069962821493014660536686703997885166838889911585645677090566244534868307761846103229281936911236983148566210958593717360796527657859530533093874667033593948015861932807629732943884115391766595994464858674721481933957487061126019458255795892367493773709079883730829168869993477429268955349312183653019837181096371577294992089814143425036295927200586483370284945484711695623730071554923280574385522276672189025455376347489581023742819204462399330687937748863648279956131069010487773924182164757933512055597152328944946127937716805331956531939820108005437688645596386336395689761594341948988649690897282852329963051268671954265082183266692143877068132087199696551322090847850075983438997046314371207610785354696822537969912122350232876556107139611280380538987770592563205822717213666557994538317599820105868239005786498944119969408533974087054864431467991770202941323547217357327612005475411477741498207059248132644144062458088954286735862140870456167935903241005020294820508234099342559848957765773440857479467898077164365206020324621219032851251494570760980476447058153658797103420612022212463593309320540180950014766884014595092340492223347176369216410582305757919826531026291897654520261721358183728954584191528095482244429472067971832850265261705313729958107569955417225206293388339301546950590162118562712070027354815113745532735379534834256508424881932216918609838492075807029453237372747405850332245200025369862361916399374399629238090777178538301424052557985658155698626846908418157885595385199530094688683395467211684824832181062104158384995345746430236603727982831779434417536667228840645694827273104806988502345026681527968187526094498146787503017737864785355650119735608811087601111629118536901696456561192310319790282686292436040331236744504234453556560061869823463588815649316393693797288061689823935670488133373540134717551362563840329965987962277252036648078793808470026495974121151089841166280430344703253237512080637757188005612401037432858895582366373266523554086579339283504519439169173002879596634055579870048111121649733812815678448395687837609230903717107820575049244449990463976838174636130761832464303350792266875477021258709609618622390870810511982186878252402982023292314327583971286460699176047905318299146594194159709053116752123094558769967359908898711629620310250642348343678476081648181802503439722618168504861435378961962060759499368464097079307153908538789539147215253688953957571012734828357729447170401478931970409154507818157686002982618267178930775632137246316444175639114295486744828900912894661316337369965012742903641034229414974298618330523665743338657881575008660486767551980547033445071033549705103524182238610416756157357544769346192306515199862386330897184631118827591505475508308812468250601708586250115210080213821834914176440007024372073196954923816324712874525530988636564288511590587199561914714346650371127614102728886693855812147083783260419839278454148646417165353139146861713261535059607259648265985113309870997079061014233118428307721675517465694342260571564309451249509963948568456302116293818793639652439751494200492918409382000899068136308104121335804958993831644077471936514698798388345269917166867439498821736157080859581839163119555142655023639293282607389549931883927873537210359221142497553688081642998325867591586236177894611002062938497619390919636868685332101970336316777166176006167155009899598013217888524950828746624985281001436965729013999237247342944848935693273019197821194308578121110889339185211047030481383800660911572260880173207725395491565315046627308874496127978262379879560477623726225662826232407959114483780298377696534238417399993192640954019211455939317598034955220196957404318956040966109924066760892393079084881965893783795984531843553546170851975574122403378589773723975676643263550381898004046133370898451165189144965013906014082127568186791006426553841507029191312659709220977676451472408002266267782991816737984957311180015925578070478747457990694364595326531156639113361655881701452061417132010916468711536049527647942121365619387133992344255694987039343461523731015911950809055019579395760373049734918264834746163579187576818469657892985664183775928992828226372641706008255482934341279182932212829289951908363106151539399629342258487964417292341789167383210262948947747876099907000978672688689250647451049650271832770492107564334710351887823288672307858401759890871636452482694423248490073297270039502162815289832089296148620555218592367097376540621885917839157750112123660246859744408071445528403320516340037727846784022834720577580281850617884723256613023325597570610781046231193142896233490155573936193407279492566940790621581923057036779519683877259144466141357727520497553805815309966318217051219181706573890548111887647249489573246134672437009303656057250116967832856018733375582723669008225535537500354856947548324537210382106836892999276060804455255624004255250715871027778258590311601017931375279146559814874217693184087205772522402410035683053943840574773521284794426460384785019089684840183558181423992954115859813646576556347227934025797344734891518671371365222211496040162524016335499296511644673448579708796151283901138556236787886888884372814936157380948783981386057043303744901447524709993794080479222508187819133195107420820862886640229597902612102067679056096175017461259531919415814241648494528387147550514842443455377524894487992652865321974406359465841864797206643771198914593477442448770566581876727515772432622349141157936695457408011912694574417718939417278200448178875684787796070355486723771480912596806414933017720439904496482084811135771616995143651045223384783007057556551484037125904284963612556113428180204743461329647697517799985066764925830017892863253142559853903090710634401494786123660054161832879201277090924820054766502588533317088820327658318561094659650163631228899249673618986279065688967022708153401156878097040702071988801741118964510487734505436736829940715623283183220282960590976099858990393659562050262475903579693329825254063899829189430963495426922714068377008505093030342197456295925963034614500167737593150487296371762185960273902360747457345270431100551109737350537108206628577936526803281694817181026080175581219710470954062509114574882981127048537160647789568559092922705935130169087715915557943327270112856615792069954430140998228813941780648497623230320561143478857850726674009457255860558854306686525512071786827335632813908221158674644557435521460828801611991408414592235773345835046859764141878145340022238182646318079123799781505083186773718086613445237207665535005711533151496260666430412062432531511287544771403897262174969403125884353005146615475418058619489931300833278246551918734626133858865144343279122748438468972146693550109537653957192598599370377691752485347684153293363891921830789325954292636248089736546457125697818278692427671380381500829701128746961402101308263219249638728066134923293534913116897998523576910534525632478170396229258330049366043413866953789787941194932986577423574885702940650693516195427560328686189247291821236503655451730195662536052847317083072638090548886351171607775967210391708519888452100186779787888144458143317376040353400467444855717337990929227686371286473298988345503910458347830164688274443934733717185704476555073143281196134690972549225440745487227010523863485673452200684507485341261403164992690091187194882903562825464745471678587874314491708685383596600414612266315865694456395680914930346787471096048403309205356263314595065275746085608152136271279669816773230194365693993018656214492061245293857073364424628525861798655043903498503320605837479349204961858958315739604703433758934430232496425300063272353683395775539882060010116951702170809360794350554890957848919856000162318303899939373218695276809703079940684625310894049160342530948529833456796581288579373404534098223918645204094328474810071455908009183964674100147673151703555989579457237026801431322473121426591476030368780710562045605776603495443433482374050709070757499873155015690520752853737913981902924922126324872957133926009019159481871412382782514679363642337524307396887527263229880679011421738347920520848371281996625207469889016807119219292630023711792437106264555694566871339147503882795727363529398007582707063356523102065170841422601906879648626553271169170184605042459031764626964210045493335652296267178881563520285559218731363402732246556618062807952530716331297516561482721190096205997229942048908253131531461677340470477073523952793090504257488315519904962249769222496409314767605807966158737800392223173477055900170181462865250394666294791740841785481945196081835356514098571981247442902465766941845411526999133002205570619181569124845866777534720744401787874837476863665355269979748873307316372987598040580046128870543562713980446603738388990108597988747978795503284102868124494143031272658300022043423995109234503841463024145182872822060659405824432782492337229407029224650765962787188697283219798453949572895932854078406652061088821093337709381397046718038810696853510284677682911482019673923829350792030162844186388699124654027849580958042447091208471696424258226328787567720824772753791280960589656542857050494211195418997115141275018802108722720235095736929234312381270053154720548427139351188316877258386105433825495340856943915293310566993903437882238687604492372400725667935081892020520533797148706879609294634180617879546512461879335641495128532764979984580265573616885190034635359816049930351888996270094457113690066281402118741773897397682890306881174699169804930624114907652887676577380981487516055460509743595147705300163392977582364068366414539961741238757264730686701079700447375552929042528637174022126352793750477368050327939919008112020463057366629342758531896093753103984600511676202104861288606667941407402500651775842332045120404519798485402279652819822243591947959483027229557526842142425760642499899503237921915242713730013045092492991901763594826698530815326638062657329972562939383459919478619537790277328069839635389883719224017089421220622133156537142266887276075545461214473791659164728078059315753881545853060437692959984205194010394373455051221224451963389312340556412389775019126577838459501936065659856320084505650251796972120436022099464883718846041765842999439444393397094720412786404926387052770782250387541609146636791748115933635044750830629691811957296496069294763582925728790564135334359132535810854627398328498644095821666386865448062150923651151855942963894134146601824694256877432639224797177810551822075436071738348375345145737737421090331526897102119947494835205525551650616940751139114963522229665187417199875047503713076487219021691440971958283714263920995597939953467573862239826027276821343411405026404267446496284747213624024244081325683576938333903966556259094357345435647093565249454196276006872588395726348994938007283252680566759850655087887460243839691194783241366563791583478436265924435728170325808152850962359711094628089138274382567518087798507040739032770169878744886252101414890382376768620984119801583972993789497531317009891984176766744808105964246915626164445196778353732411200502192417506056002932249554247655282951488048502908068308380185384885058405087372876969012690634450700734949286357720231154260570961732499576851125667438682327943147042069418916191513625190725419768826727910868938973929591275061736470551316519610640094758716801389540593623278389694201487343900314073096481293150936121767423012326859795491424537668109246398257577549406380495816135968086638865415157705647624201081969986351916508287637983324500487210117859151587574969283628866032242751172132823582184981507229916336109078541774528087629166337801842764970666345074681689893330721772750984373090969463253850831662490630107707261394228585419255805214232924757739990790747449442443230662727729771461412897714970140831720297138628448739253461230316843545728002310552079693994975950254522525763875325179779693573480589040025341678451899947645296673869398601210670277464649817269041487809018753263468969179710912050675194922688185032295785500714241949565214888943233875293896689830497119032200935351131617875801607461802911751446733149802432781809918918202639970444241274230175863663761403327021544266007377249165676668875636748372493133944682390816395568183893553980968093545303661508881981758523678437771025337671770438936736701728377248972939411722973635274897137149493191005361215508011933910513421309983576780486673370522380156125942475451970319430674961216965830286051005855168023045050168255240013967036452509334026865127958275819123033452404035388512872096325675482094002957761236538837853945149985403253155000027449758622615708698867523900215853883925446515470612056487911071934759884319619399401546646641128447984527574238077902520164201245236707872271021031135532142498813773619554460802289520104013139427596678195815395582412858797767931352364820718598542499745614040700411484233807061072333960862851194561030458834217334259027316128238233410292174631635429882402868731535849079079740624282150116030376484914289282076094420964519544420622950910162178520549774206249434554365298255807651825777409639220196750898293275025705427474156413065701135112615974310582667424655077667298501386211822737138750464470859827391405004003794571137656584236849557940317031643105970477633223641572746085396769017059261988510813806042739076099231860298606614755414758735555300211181630709617669643139094149525646701829774524270278504199246218764707391315411081990845590426290448498255107605629181060021284445953810660504805343486788070434743551116440111380826601333795622407946914229890747753093015616474589236224429888700616775120191175269355600198754612454580724461753939240484616719882019291554046391921348640428010880593967282562200856072786337694383251511226711365223864306910899210052741425638770871180929109824575824503899126105110576064608168392458516083866669063190780648347247041585737007266622792818739755503585004676105223377223251684393697439651378547752949030999799631885644851449600345194292360170622167018923040311578409097887366161289596586771396065705641214931702510558788090474161810683818123645659424510187666068133470985097895905784993958045101885554972072459971830344431874849542863976220753661832644782939796545435117896684961891670900442337708862961660685550037534181222003300651884091090939826269280468657243000093806573325898880441917206231763196101694726217231551479252555050335811623219487599308253163606727364622421084468098457324194991817728372796024878151779759904358981268622968022787242031480776441360686457200103504472147823109178859139835230282015266079368872236179135488339906879278263841219327933927467321113424314848969774500937013699024017127461036835384897058082174123056355993010600720567773209816753707553507818983990504241598843172990978618157807507778800888085171694682575689026855160406710463171689063554499545435646662873733853585011324494818175520234656528210671722611369438202050905059116870637550451739470184570113684457502344662153765230506108880690925155212721629983330889035400986887308906418829588778359819806064601603779959935247449467234882199404988364094710973307019645596505481057077734473713577337988734163857233713782195767041674420133140960867316186198877914975244649423989881082859877815473073418416601664823159260565567728966235966363257051169328011699995966036956937330946535605417979089172564368065199469622990977475443433406051897421745131114703170117874287811275641538070795746008967511152922437346152059355331969577633467004763621006533126588473947927935072695048985738168837265393481386977935417301479919318222476617143997704104182713484785410834489052466363853013724804381745304203376377555888951807990247944283745630585092737915075490542185511700683749360255087648576907271140763690742312878689556562766732988073868794439625508796597573408006225225109710173769009406826394016917349818508348263389574492782391851049919859111880699904605974675952917220037781416984864479664101413098648589661609520836978966208873400339090693737869067639608714742356426174598096865906124421032922539322575734774218768229857752101557496281198730212209437495997330388239866506028785626966823132401924845633476422681252075655433098747596831710846420204127037469275884279133359541335871041292043674694896301909542137318225173294975523572686478652231300630036013819606891896599494621088798884884291390649707770643649371996765626406528721403218683650326372469932802726830981216732476190076084534903867632179649023456779811812365083898425272988080348559203547316701181767233723762621419482703987578234440627192877590709186231532579375726640650751776135510393579311053963009090722492594491229845104391352216621119657364236094490980690697910099874968183247139394625933492586308266233277478427416409098230003313240267660711330498848889693569103538912072627211873459861128732199097572089403837824386532577896627454285041735105256713265670262259472565417204715648312759610810981339000497844572356023830093879496893420371768661219539989456072546148697593787878138609795446762675959016952615795405874746104007317429955761277204704674241551388136731179687341548841447790200820454891720793721435693308135582228970806364894772416466476112252007983499539611546110206858429297432997023861407384756055772175868647190807715973815309022362511185658640000055546819080801238235526599525964058988886576007356216379622453721613647588930044755299275172942817082990273917619327387578490868276457636210019484430856915013386112405024333675530355222695438945861911247398914168245816327028852841490767473937567568859476658878357950094895846167971609374602619279763303848947031159972487659473748757749630206753565825975404050668981997786266218543398157382014181883449094901820475075361634036670321749385126676456960353396539893176229172241127575911320364430119335769813717914492430078026597586153230763883995578038458948080006214425170372253904117150878698780838815769655361257949868250744910718562088210896784303660005110173770157411358805501664686702070926331111737054677172323777908614263482376941133243042247803263309061366660004635972056746849859540005334617349075901635940618237878185322507872036013910685457206482184087127723270695206255050000906115427409464209480189561351916984039900599920005651429238782182984295258241592379933404257613975049762474837477262666368609453726645966304421755118831986212580289649669536762495944525585402872766378114250617290243931546650003665118994123310344206646352950233912831439821288097369107093241589470186735952504135138674620004265217144406342894329030694751933638412689396242336658438554287028388101254515705081963943449698696519306213970560565985738606471819753884586463580974238095081918987343047373711714395420145240387889931170347153188805140999751983588651427117409508982963600656761053524932455312728210430351552522515285948931157717384665235771083571061647429616315209480479809277704576704765273147398895131966812193432678468132215406234980478483943699795294490238515122957908986479136802283922145156367532536863931960386364299933405483949819709427711607486999003816164840999523557851326816785446859931760597486728712737419539918239712184868415308328392133214749490419904409205444955109327007215102835653213727784425896293886883646713334517705132738378447675115858203775663494393485825914604711426076938782664631993456330914702197548889275379913267400230147218937530065273127782433697303314773717083277583545701376684571462675016863425646211865724703766438822301091427226522307292193965595769651498682943600698304676062737713357315619139850897953251668649880889328773005452153371882301959430077392405411737331785021644561585241996023536601216919748695854889240775255371495182922033765454279184631155792626457510872054787311422174105871733397321213071477916481340841556680583669876732017265225903966616546685675899562879315229130623882216615611966093560281676241154690036926673231355314532017629362986973861563929401123608356460756112005206061420678639913686649436395775632472788385947293989170276584614450795397891084082591732402976700590555204840117228994299284478707472484741067861829211610827100655717336863496393547247535698664458779072160953898622710159623686606889149084872390674431853033968030127133451008657641546350713592804205934781988968547486389898919323965916851229279897427062747218998067548580112521521652308064335409787281668965691425169928005550555789325982883207326997613238350995774233597074492500388202830069019840068972289110744562625472139701227334620508110700262185679773893057247732165199518917910220517603733745144548808137938672554911500552367915032635672053138089015383590138528285291409274325003873898240874355897811769158567492292179299052896213306489705045488475390272046792218523058738986169671819772162195378357939729919837767562068476255366665298331537896688200089348872516878194431335598203728532767123421148513075708274677095901823777215219762380721965526698400669568490023289724965497636619586295010031271566217793947846180722861610998346946026862238289794419483650598758361555663147527099442528774560630667318503930926834420058680762728891756496467144353305713015707013076187000360119776340293299217996293647984162190601641008553280780020278156440165085175829658411140404269832018187527231116997176378005516574696010093951505060747528860366604039256129330521708946439467776000258288687508492530924076902009474874532015156507603343555662453528586557160068973777814508291490703466824093686904667752456978530465501335242263950679161183541550478788377815536228979779465145764354398349433765380232982166313180666762692465958864577680068172371004645544481401897121875102860671000477788211877874588124843673196077261631758790554597762173548656152062003875032927968155002240111989149566844046454920576134156978759466944783526731220211914008040723000249735797666486681649544228643176840469287011148409306236954362267877430114398527649292183558622151222150416076493322836007967309244664625267899879781483470450959575521853270340075804734886560287118385676263071979894426464599598810060404557681517465772177154200268485591379557531001596091596685394328294382132918226337740054275669478205836492065088614064599824319580116867891951760978976003432345019279348470197418286203784704633147182925903000272257244235286621152659096585675319020074597786229501271253953023105566792721897355703642154656348275414414014827310827613731138824000515777443184328290217669861198195202048296410439618905027436168725411473166311437006232266362573548168100699371469349369107981328132525369729188907507330540276790973069266501825515274750212497647768581933296985183607192004410591813315631061014640642994269494678188292281662598815629957240771426293870289324092428408255026009079656362500726824652298506326591660168755086365712042616242481008848796214289470046764185660457807226590621935390597203876184493999782476539802862716699793930646604342623321801511821823999550809637983315835574531051540927748490767300477697206506041742323422835441060674754517080441837154755691042107552205887273421856921846048225101101682817179914638987589449403801502818543565437368299114696851381431809698405767039947280067600635860788119207872946965299700531332100213917775919681293751709775955360917828970104524740972979865381209920522201136804310125120693477285049941211714102361026867519128649278921150313772057594218778303842835633458334646008326874590130548014818165368552382234427328939321968302459236972152062361186058367516768477392839977935400979559287949687398585980119184844789528477355933650145015183527187357278914143878446189077311386285271052846516356115883441913525445437185538060292896397760407585500187562615012424669024559522853837982364115230237986821424379870170636941429506016887053749109099824428132722556125360237104228289422704320949609865802624291472137153038236338815593396924100527492648990284979961185328546945395659730400090363123811777329362642562215518367212993033264859237588492356602536005250354489209920090939220121706102760200430269182087162039226442051796244912364311579688697952529925726855474459126171601532858429168463617046136542517327429805181230000946625160326128968486346799713578162622804021261403040503462710392534214245307599289434395939346750313810722390175653174556340216122938153353699331613996604249279739794943766114596045478593733371258673435899564195378645810759427019654911341718609138523599258525530664649675102957401058783124526642413728979642110584501449835305646341453908831700129135360589044402137530214850840196531873417494382657194750594977050306330842167240351236414016515353583726586376520469676320791656477243753731124908684290692891846727768117718553233813646416556800699393182277224840232952736303982541123093600303464638692303580379168245588970575724351027822580404014376524839606213200497519416158674915824369815741279985370408719485908690477245327299153510480344634770368806615592559443655504463971102929688760678399700509834679574495964287248895690218895349476431985057098971810673982091064919545613223937436033373242264846743227523171108192519320193000304760662033533847054071793523268194548721481662112237661655984238299006615836681282309480343022312635202454861960460533025309620479443167752507464681455480810252527793747760467079491759187085878308727552909450961304458904794941997195053661835231662470624793468625183753012734443613703095574602859376600492354227799491082183465820770789510683687811550216549193825069250281651971723334634509448790930722855956372068927735387370075228642634137422726799483110693904667650259412724830378731809077207423288240909897662425886593041728337810251043769929192874914555514617143972812525239925258312669213136157972164546937623524063608837850683191197222197508512493906750497151859096597690485704478141833814593009964175438472647667366373133660774041619185475469348048531410100536233129266173190251098679411324751522192590111297398485404825846318833867375785048880829411905983888468524170863385992057218729135792510429586983762106157872337053073006987538933772657551602814440803399077719463649866486213142205173204442658254103869287125120143833884424076497502777690163265383723965179831081303226364930610990508891283562121113580469799205964251952912980874679404015652842375522806402976883128413695253240533887335185931449830690224691040743631899112414740527350680962205008759343534085827519503658410658594528539468141963440120778499346549282357997240746098278547651571600296741431343938285117656594713554582459604780764899377887972261458228640303457373305746506869544370316917704738952234353429169235928141791503915872418798202881882272584939465240783937216165829483447059043249673502011817740873008496572139458071775741885356276799580707112635517444235675490348611713735502519157044930781769630429623822766970082637450635094513672694844521133366316789573999788053488082008129322201342741938844343918220346778672369047956431155977584971062869497634533768491744114901239995602647795923967134751204622698405699793842339837138350429516058119621578076530763525038279834439283382206426003353261652525817117620064773108771101007008361546526932612247022941902155798524106488338696310595351912001198701749915760031886370922213551083929349803177405878083423533903949941465923867667979413314964682712754499765943746589509820916789776243121402618036940547225068298759536014499216043638970867203163993843752691494656293839006142044889075659577649328612900033575036274373927737050388941405676104048518655927662850399425587863541628463315772783617936760235563212441597786364831449605407944615885082835448532536943378902665512516637517370920314037106971556542660439289865935585103063678196843905412974839656569911286227022313997711601617194132175933078020295097844397623660097021568412973401222025168152952228678321637563239613690658479282014792697742082664186811196016341242084722060163310122357194131413918990046295368382189336301290901737685000221846088110599479910020545543224895291128434867368558175630453074611373871505114584074342633566235355370045835417964959821062580369372202760422884660601342254182397352696056867365783128553791252200770852451680985935009786678829990770816696612400774977613535323743331727903770481079160436357072031186392735427576552602362832674337883380320496274060410562051100761315747483557746236061034713413832510289807825855452487772560948496563494250439041918442706244287465130699353319638227026144959463184874414686647490272783509281479928762369297441834131670691740850412277608971462118436513871936605240100097532327425279233860171920364928055239270731943045617556804198433045646536353921117052421621185017479701568849668682550011105289893461212333974632039311171582337899847510921824335702193773525052784900372810540497446568439361543392848072687190916693748006632646706470997708851640137423136280427044356766532149033418774853035137961204123167274093293779821150757252110169349148303808026070594625012331334142111567556058356839082157233528697293297570697311419892446758231427173025971020335317486855743701986289829313223086941060701766229968341078311178815116715366765739553063298737676683667307877041745299487243682729360454968564403330586118483621114434443390544532943997733848587979122162424843860796004563855874699653136471857455017677453341433840536812803313346846599197911231999735214506177966520488665360590843751822838152646724539896909180420167825071548492365853773864555583385892484567395587667983094469799525738628145652046489577044990679085813691055997197614676205525097593133312186427836306486382764171736384806787320762943017515139197029953291428295100768806939378320543817050185391837477860174732640432379786592348761416249401553472917511182100864003715273728187963080971598510722263743316890657671977921227725146067014094329247177006996420822475192425894582749699284786789724239626916119109578107914257455172002989788938002950294565526255810110912603060261144494379845721130808056363823137066724641120598235592049637287974056043037309674309936479800449846936294877735595440969742647766609587329455963620181957053326273459283033984166926072729724430532854742631790685805254002616274557687167440981770638386237047369565410644931208687665931168144111417818315313311045449081958910247912408217537357207393866428313106725951013239375534173409715054919359569358596380663803699213708182864828968536214176696401033015579700573424604400761561016552970961684118914474610705081250650617540916619554490279019906901754519329644756850534004493129336164027494041284197862712342727291895709173953625335187936101097298874977106550528898186807397210568811371221312470876763950034036344858693509147798625205472453001687533107800470104835595909671500751304015129836002009629630102975817197689804836532062447339038442438601648664164045131216886087110800892600028628334673156362277135290179494874978131917588475698418149921307807622244004256014027010183990257276566295430646382311876979841183260233389478148351084027163037926994646294484123125084545803222723509675074359055370821377196194136559037776349022805968229504626439828967546699311811184413818821922412144948457136686176336305013465288438727495178002095746661471778682912551433695829046348272898043219680192396401769713224050890749891109367189174934905828041989920328866588863138195260541609906416210205436990634010441236063819999836153380551631087467861875649528823169823059718409021067312658858309180097285586075889344494831616999189357001798176729904289465305740855127370240565809447005490843091704650153605654705546633904212259628975143060518752681930284737151329410911606918752776890005205310500128873808895622032303625068133828556923629496993878145796053198214938291823378536049874261936459766978906911885892029682416039470620156406574917683889105719085673115701253315996898299119673210091410387998615327645562519889004360052357930052253430086870996358783050984622236746222102534243021082496788105609799934458115766439579740813698140840978546063425241864841256056081277200933241359340072512579848337902060705673477542845923407214951151248186035853751531018419444963337014868988126862135179430559182054373750177996231322804956657743481418846440597675146959117275987236130013665809372549558783425739317027728501302221065373688117811789922795884164185062137552522090557388582068677880512323837733807313037467936251293662982672829560676846885585761658812935719748691512786039327399810011694686599892046472288812785385107808649430098507739349500610575455795426306068630407863071659517169872592381595050254542952134724152482611261304984136752667290623479218435703331928325783217463776961089794364364398724591129552197406080556980998369429112195433193851853823654335483627443930444954406431371378274542068290192525887787016852994074523684971146260584230038398327847434415034083496366729563579313750555070473291018034099118936003597612111353024061027065272065736114028735177275384194215326274514880499436674698590799094534392745002953291250873865167215559863300688165069930512094417228347943995859187225359744075776990193365083435857851481503903974170388897948445924276960457621502548542777365773652935163121948661721460506135538541506596823424768224624797052708175421330426012529524801060794793373013353508896744270841389935950376725273982315759268059261403015394715363404731800029166782457438146233567151291140805479833962753806085071451648724653595554894506918681270625551129194357100849548138442170593462072939314436836777292204932757602209734010211979086063418785672698580606209020145720506935302736822987583544112754571136065269073553967744197661461251877621317609385827263256478116788942622920091132772749548504113807867294783185109018179493027258015510065054881879930161477130394638807648010813482712929247539227508782474212292851278169270421943087919296795641729943842756736027205322740855024458083751402714999659925481924460880017492698636419420733743393222799909652244190545998340737752298769436757432497814995899722160755434195204363201431735743698323800362117352352526744086962343477072775903965780075662556265180947959663389104954664038885384502001284924006700980203979696322379030472573964474574159141262072048823828108733368592280854668473945381427321637805470519227963351953445098535210471903586230083496898350986263961575497477088422487044953139003673197127463269599954228193735023657347320529517649972861629041028294563961411746617686731652516274834860594979599779320958788247799660515488395726304026000867930616111484310432335125891724202816004036005177121950134440638118094911290890946812520586952536110811613136988661493582766882346388430062583661835895498867447457344200073476984710711177592781557283228063508798584451866278439167137435780944686546339925587263497560315372188216757400869523924615998908078848950238014460542789098224568689789039638954472488588444570011637341071531163218946536040453305636345875533355386723851790026569584230619696929187322439693959032776185115227266496384319828052081503293897777539615899812688877647383972728260324227032371000270446024125555928819584402005487574544214707111012896380455925103094745174328345073460031612093089147562740068384187105579032375031594925994632981161350721754774728790587660582456654426399027552031356413841659613615744863113570524148852236902921701208571923541270686423113022997175198674824570200532880077504660091472479041767652737492699644228690774394897889544189906165884647604418297716659107667611365257403233933916593070063901517162387213970089145653230609697291813297592242393882912388042173106397443965600441078024676734505217433000190618268866252702740152367145348769798960756502986558512845585997646086817582212193685584823251884666419646300063116993949181593018128163844611659440256519381257866137106462993522133872299957073346517983641338042481385058160240912900654814862695010998930349636693453535830827529757890008739404425856956573752168033957807879596893947900513370344890750793743288420981597636913084609996804263844572498322142988931898538753750295405911863391387489206074362883519072317800676196792802214679221912399056272907337592215356347280404825070908551616180164303252689255185870458463285640243915558976381497830483487496930230605667642117784671929305588021308261282131407217219183910485366617091417952789149539108518184243372431654528325936911156722202244043171791091028972619743704638829360089154053331601140027462808617399616766435563621153167514783746622274141058723258564220514072373269900398449379124118061956946371928595810070948021421782323955716690713907137461084728195549360178735769330544382087501385121818238107477063386305834102017460786951783561235102182149160959392110441458160600075238864675708701803080806167117207832255902066295366192159730962657291659271064690061080653226555482313080788104902938176699392247638628849244865100841518565358433760844749332810338354091470885399147358659638282051462409365542856514944909974636195321427576708409818723748547700738745286909631229876301178190928749692292960141381363436886835283049151079279717127744057675647031841442057356445173824941447016355814547411051074741780894570913312746731166951755806508994624190526020217389153015274754944465228846735557910879134217140666603919783988154457486565494049505923537182454649995736094110915982194650831590387655735686382289046471376781101246957814232819683373616596069937681201311329360491581536246122506920667871629255305586110851594221507100717867812312103445373265042003999007411360720650343344128497288406286496408561592211473681946824670087833748341343862872082816560105434472616875957368688753749550973019214143792138622639403811493379643374004277882967523248851485241954395819034688622800482976384176364814381329494371756530841791341261072467378135052501880422471701549023526488054841236302018591486662019364909396638117957466513673736557748684141840917698818376502167293351803191183366423830822498697245407812613903748791319263305448488834339748039096689800504226386236134199440715690248055898264577509551390692035753911403133753465082234623000997822229880296336402427738887271747398763743494738143343993588066486658949695751993904307851484829868150718080474620568879651670712751609803529478677945289054818567908063487199402375494567242394411020052132854419312850885095007437077287801123725315786284330792843883127184361702399916570667703810627472751106058926627179471843411076827740768899816772192664534549871916465214130193687144472702140106523009162309961248882448459947571157026198101650982555059807866908892355272053736427029828719800097849994990198323284532796655089884295556816510153103764900503099627837928022328192583560929755043532480069072797290153768131828113418939864664102774546600647535240617773261160312633239224615916794563646159671668532774410982228520282108180950863583613842100025409885177283986472857343654269293758039365495570436066952634185445625241894395506675532809521428317019372644186933801384462130214523495301900208345922006388590242039493553481395700634426383272533626153892489663719282138521695398757128305233153104102926665030456847115996863685691405847347135421340611215565239041691005022190773768025887204274069226610087487893018886469285548311077908953486689668509309197431163405806235583258600577550590896790321066349995035385438368226718733177947377002128751252795048761047887019703197826134226525620987349753212436786103266974123555081459193774575352010185787217657873643191365361993024312419374842709728148080013366539890125144900312682616228826568357813985843457721831172749038452390341184612720453909814663058443676493521287734798361963015953257758035953265232366692982116866522904057826182967087185815291903026258097967664243812161082664213655376508557431593215473515423335133139304061143855639693313329113886216849021960375307090786447005369708549537866708761032314442336808398215122337316682577911407698891886739684727311073839862574291694344396001534521910372163883183752469880626261297468115703217145569134975580399764936057709933163427613851066885155598964805289522123783788139775101090049516800750922551354771958708131581903473384863549710540585323874040453903826474766051770561809202318851620425982268441408089321868404837951718537245090483875701058392057158375057627497483610845452520197744380507899089863928540315962671340495201136114252261725075694565761087863102377224213206006802226403252017969681790730988479182118365987720867702884338279501946489556495620887073352842486009824572386957901291948875803551835797834043668808479930074125809954302903573631697464848104163798709853346672629992409110177910154572763648186534581346125977071178559808992282047026873037892163788070020794309682785633830273035881615558716857636202456696198150480434090163524081332540210958051736525315220051467225592623972533352256987325513736450514002737980309274281844497083660884387045642433194440011306922284570803767601498364176841039331973660665471715963763762706462042363551283342705497345319873180398828868748405829661690266291169339006288151216645091436795422876190475385291135458966284105701055557639968489123610163582226739483114238259834172240352598146662362621522891779826418164630303055855810835853031506642631051681699229240451206090222833549277424149996995162293381733035585326506228039785584646279383751150121470210865394907527789715038124454159619604106350310542189455204509120921632657318450466391653312222472264088271496811640849184353842447798113575951074976975950609002186139704078124946917893522319934977830068160365172989716378182687738769927598635543384958278756993390180350735691456511069992556279014238801005021527341628756777154274564713175523665806782199151131355777169172379332515009790688806763059374063614670684805009848748805831705556162820578205211801091950481487402681795245067899414698226270437136387932505192783569346535073565717764790073476476526663275748501771725755836809120032082533928834505967778164591970084927991069587024480101375616781538342183258645587744384963987062362319225038983887742182185879764518589657526902300240034459039677941427733678556251492859027486356623852794890081380414666799144943415215065624233067080889973265393087692427436697862495253988135897803367669313589949849915583788844705945897824026149178286276926932856427338020290227801145384404521346894749889550445777827211556546039507411156611865871324996168995704298789464324693362889352620100327953256353913269264686845779917504483176086078402205011437038736990040945207287048833433397715381463656305197619783245790371134720067258716452868803632294994333811938350116019427632842723876411819548597727719285602108613141466255938640523052301407893715379284375085649213575985326026774262360392860909899893423597750569982282512059012416587635573613542608243537851695260158530676271673686840158934616947023933483297999931193627285547649983925928380440848688428000938759439433704636561837703740998612021837154674342136238095569553795010814939637384804615553165468894403787221370023604998369155938001440668310048800240110061856823594234605650787383488201467750358446493924551833659613441216856155723402171507277016918864567671029880128838560935997759042451408891770815774560132917675599008781567193547789025506765517211007883877881019758175295795411145325801186562115644955498310896831849384900645649798780610093232297386736590027580912408465696318076036772191839529631560256277053977406470211358757495183277843606251617543516357829101563029370738024573698058435932194857049424665754873927344240647891401303359872235880550330719109077129859250215825421411776561627287051842565230712182425193448424385442801957889179352480828557291823072230964947385475319712090260949269862626904633207983053568551194173176128521435595542270866063961147766480518602717795043021625783095269752163109562560585848806397559712742272152681685126726788422533482690861728726500319961061922331412843277181299681619018968556232592679256021926971761316629321774711179469107834738137483765832350351487977195808500773997449772560155767546896191662013235154238660235126838772494982531564979799552526484825097770610487760589141128625495046534672848647633540670973255703687904935556946441681331166271019675526009664622249461655538121614384856015492600886156076444653906177728333761918692983164921866871447149195125958853418215125720524983424411144842562372863024077068864176981929324328512139840370154040796445162432671512107471559605545005548155547945871191395019199638248138300748732715492277857790270840823704694267616565651062210326918958967609056326466383557459786260005125267210716443973156492700621458676460044225501099175884195958541172050063609636972342881309454308977244703555537871431296977069329736454901195176667765539694256922247219140467060533701725419279300450032115619158322639034479996179018530188585592036402866478034882524045295145646443106766786554011821043177068536521511732640934267906334501421661150057612572506373249336734666240995535688778456692211998151708056537736246179517141870396626615255840927741526571879780715719587770384256207166453175206632302351188748273716454154301230633992196598678460674642526896978069492852804917128372131889905121804446197349101885550747562209260467823290601600129847529851005111198083434152554379065508881110008825784099168264768724401017108914378860984133533547180607348705218824806410264987961458088348680572761044478932164587150082679148644477887716249672209770771671244767092850632875636624501950650370821090246476505638670537652004176464995281311287630426343302645063931546104278492963095935968141466942557216541580242031458324805222065415585927443370584130992400495269676925262458818080202879996739654613008726444785550289438088336527067730598358206256440560837234157707275457174150530241448398057022625355587948125313223244710247187633419864001078794136223616307045795311914949900642400450325279584765815206817659169941524783340983947509172307650774043486593792676810718548346840370126360770157926129025181936054715237217279768302884209931654913206128566643128319340778069117476445469092466030545541796132189984820248957626523438109293544647399658882858875327936708303379027435293509755942682457164252070846069994868697217924967348810341892472361416892121681915226004829656833651296421223926687727290993780868201398436163234819652929612641730262733760476571435857683181556494878110036825260347454951338514839384931003863789200631934487491900126854845113466435143737943892777378622490554627060569865198855606889979451418853189167919681235719503606961658393484892439585311163368989613275539016905101638647233861494252733495191494846497004365741276055574701822945417383999798076901957747028113557483455156732367182599098612223584959855026864137071261136827645966160304417557503568381113623514523671958385081479130820237218458248031114126823563153146344932660603795776235432992846347882895126758281151513966957093564340245520071347726186128496251220197155096703033557492325271412506045987987914022940009263532674705000693554784302617563589270233591029997363488858546310288309756386834092196550050848319285710223015009517060414485229331749718149645231677875314827473017262507817300273538330489990185413868001983279148827172729082939320982818800279383725558349639442339003093427715984841251969051697957184362826593279100742315888589228868795223015634733571293016748270532099740802079154865373857277232321611880065692968864685415632249047941927422853083300901444022072663996853166092605339798755500032623407845890691540154336885636989479419684461368751838599165967878712458382407624781570569847373332374392572630004813381932194366260312525888989413407416927850692935922275008946067051885116990121869118388274458081600670664476167411059665875608129208551262881845853435050647496058928534057979242249445653005360611647208990412452099426611153576618328733301422655551176852077111111746544480902535169227908717821449442486912993721279054787997023395843262488424057623254176195530663952921411063218947867919569711853621657375722282905688296555209008990845135245100917163146751915518487433723682538905672878610565182641644249183739551935496859795737520638289214802775983141533519159955415641820612389956886381556542262110817118905607349007510157888885957680816389215856012839223770979289389046502085654359921160663407010799901659378482369978546700227856579958673659656134875750588605310006457262741503338077443902445817937525365422732050445330035093078927789032633168022760634624268868670989928481513295063227483227881997115420897482625537416665651586495292107884529017593609958549426432578422420720286048225990771133525385938524021099678043090721952643063766467260553586604200949782867028013980376844298766743470078943677482040718479649360966100314890218601837783964157499308188045222932433746501368721878839564389609723278041493562988183940095193360356243909618885100829492643876496351313242335052594384967808537749187919473279418746296605791815083267493509621402806776139122946340807913760786188876344572296707856536363173308259125686322363729305731494147307055345982949547377392033128911066596712589761010786767819478892617275552272329787001520739637176333580678303097104055818685872609986484946986985270404411402432282276572221287260097431011731362152851613053552725186971257772958237296085819670476728095911222168153289882997520018414033416501022477621822099344407791970285669353414235133651734016713682197457181623315731925886378353145471033464302537976374401804986128667968919308150652632654922921898837312648637077879784445115420689776558960440166333995970939948104442790440998422089641784540815098556549391706156867897460857528062956637382886832219616072046661034688298385847148368320248794572839569649298371933891390063836534974836460078125921762225287563683614828965054124082845156212135239882223943280881213891710142058491088722707623625525077489969388424389616416431178423534132510300349799710431598323821950737463530185384468047435957693170498863738295930433730568057734980880662306875974715242955167434638238050305551427958986253332369858988385419810185646562749296478541999199450964926982259187614885592840715366027674278752922417167434102673732812207474407794906450167939587299633977949589934368487782544141778975772531493622923605051789852425756405479962556296597787536464238806614511773535110236853245460603031377381766038091901105806347937228151382070421968921586814113476225650916771423291693576453608773879925839807596944172417857604051395008718638092593316489651634394094755933218803971892626131785723966233904096163643952287137893773761810639596612802108758127086203720916166994284947938292535674599811005330312642022019481003842447789302864787576532721374201844324503682538798370522279426293700031945291734339322922931579812401529743180651874055468753782330711943554818571024413199305398085898286966417716189101524073673844079348982977109837948363666967216522354771722037706153992206235329870400920411982296197732806909875279013806328025316157152202235595588603082902376029633487934295367734077152303667088770432810330912391846155007691988959640771502782323048520755660215413124258278743740450548785476751764999136401421096799016418024567177530251716051596026833839069933837026606831242191750325052293901046124017156942290579379655808988484251456913974681589802134478529274490160446026994614288885212076454711470886063300560104206933927278508581211105843534384434171821389445847924522656492482320568051321208850272414784533687794389100192763978404521954997113390592299496009664401881507992244272891076597164539610503087770955911298739290141695529784251809654670103347417256688466903874588879241044046071794414453152501241230666026347737205209169639858105177397598756717811719179892687827221691869398863361241109196216608140792375014799188682768991168631558654062244351191220614848155870981362612804085961875893403852395732076457424223924516984363577160948313241735476011877947914081504244603542145717557607110604916947322267231827366419325046819167124402385159515198566862204631652044205928876924893932918580950426565060039634795095125528354369851082957508283428286028601369921255696269515444752739677967108936836255451779623939863176609085829786230357596260869632589245181340383219102526089537183928271848749311205041151254361742651201895783188722146659609868056508427652971916132840554260292074489398613190663904786203178252303916798271815914704470069937364645600318474439196837054491504720152569095479902675756999913142705653217985472413549238753778315053745098549411585735943237600212337895846903661409967429112813662917293494517291036501263517586208041246991580970119960774790820412295408319821792060569180761598521041962709576291941278432537417455465305453095204743092020191522910423221221491041370317630234392621323023864382438721603113877932850986785624462180426507545936459370609177697302227123921157011225302820055157215129421786735466333646452958684508339476758796328159206034886226245804395118495561216695883542853294570645885944699425211103356608583450042843784444497947228305303322953441922748036042919838130312601227642413842158573585066957897955626990451418844386866165355353558363648311158061274051017627099773554492471116623239820687487935600281948939749880922650274225266697990067085683270917351751633458029696278402184222544402667557826614307069082797484830208265164059106791611146953341764591468846527466525145269033539951031847767949518316522499049144983378838036921319756255957805694576347142314620404443373484890219855964028312398458588617234346167419618474148982492283408158574702847364329525409579507653256592012831599187342497103484352087076062637818861985797759131575580894807457187478138118529794021340361958252953308846115972405310146315387355273021615236666050643334846088027142627566871825497029600964274935414787430119046412565928845516177216208629374378428380038395571821330827595985515913329545389168595490640533190143774892282477782286285839054710131481154456165850272305247412690973963455672684351742219862831824076795282977795734302527452868437230213083061853862296304361889621938446017565984290675228058777403468459005373122691699443880739547774694900332250881506458627730232756906147128767308192115808594413510575618923496487667643185134146491016503832553840487754568079394919415720048946307401467421941333601856124287336668255677508733131512688658705691795777314252633811609365909362098424066559985036869815135271222275481643838708555107252350382263258007575698989671523361933072185580905819194078323675031656956415385608062140983352785635405762057670335965398499531627931682538532943740747277552492984941399508229605950712147585068723506598665413351684214438166016695302799552780449254439219290710957951778074282784495169130466729517260219871620089966088564555848093254058669104950202329177199862259658792782688650308183529333703378826229837289841666460921058155345921417059718435529924401776589014438180005461124316878190429414236857169228985901059465197484968378536352904033787570375153678349790062908911702518076728540461026282621094815050952323723012234060687685024469883873785726065774370049242212413689796275825739511019545579410508619857480099339478573036668462729820940146295877944188089129436619960355486286131476598703816264707955432800521879513162774739458303366088964192025891210978574770016703961851836536943976559551667665685722627529423495125912148509406621881142666096948699364138307329967386885172058107130230596416256548433893854517501736967802761461605502297844849128311761616541503604224536068317835601003984733533178999120733308716378951812191880428605707564328192836767457575576735877701411141388701628791947943947341092842837987734587288867136698352345614788357164517673026558701687368899865891402358734275660685915233356864560646989452836201267774947337747152478371977844617768783365572916212173889112378861938724384771156533299210348357903961155636198246851600291411679377287678597932908861001681793416612907435727638838058301575243489695109891522021866830798347124230935690602983209898709923295321321888273555186893380511506484146942273586815374215508328109613740962126370100599155468355155175031993559930585871932208525173057707497845002202279414769688346921454203560800671547212969192019453358338477826851091312935287221532308944109526283821022808851042833607431402039586541755379960111961280482803932585985302467007778526361448869489278168919879800573636570001258262709931272958553367539765187002827700310007014600758044147733587007806478629579148128732810493142235869877437814120383821568183103416903359329423952140097399121195646555853561928367720422581418093400400068541346935528165674188748449350347364873619874588962616662272240669989967683362733245648948773618191542769120041614211229864504639373884562419048251364645681865861721655348919963413216015147009105268506667292497437948263599129394297764783726179598271040829858966445686043278770644661922781383051290760425596678073509521751163476073998503246317570779599344714594364913923883066564039297504775532296516265891499703711142713630329583431651069246356310088840239791636482099216340771563386074703343303728691607924154548498873392650832551939808775589448368213889552986081634314268023417957019240923934977436396182843104694214652225826535768014278428697604934190951627016666188868353300182212181143256589473425720744166108641340045561171334865485231814234884264419240124245918259938031755057435873908907809772865620123156696905820219683976283535054661837802072180294018149314662125350218706684709559865036985436867579667297988948041368592833053206878444401670547737118655949889527222857738907281300562068302444119676935162263034323080165446899336608476635549004859363041590713808690882637648264039816532880915879299059604238791951159610355407019204061617170164243076122395196141168848706845289875146457153908202215449681661904540311488988650780492205655533038469872982826519310808963700982369689727863984342543574706463609816878483127185166249785354933822420319067298581704099510458837703605336903528926725080020769631663581821919257606584899670463988268580592449150252233618765079242278000790660079729612364998765911024943077488900064730837071118119686596627086710705544266573112690945821770197776791265521543531887477119042208482711887159166607390478892929240351842700366133857801748559600854194580696816471264826005555644798400332959022052519983840868335992521464147347203576023563647451625741649286344488467715997235401080329772432094385070747090381364024542910120494620134406239828346316549053279898432731293480926862874324169752451461230998217376494356453692291541412301875334046641997188157238306079464745003443875639635126901293257059692009953232432216502886094481070121569940401195941486128914988085068817518628423587420481347904627125136848358329525090094238576669917537610346665145606156639827728639433099903330495758490192145169751147220680353988573206135523813285546011602825009634957383799926380109550816049043527557283261401508444923401418482345832407024377323609248507122231963226600394136128075764916901464492870580081245304854204196594320289680221761791320564029877085572197419292843535953732064395081206219593800904827740370534124552187758952017754027511631433241372321279083892997621702551369503634332683502752189796717481866396714333247682018912771012296392940501551068766585659279498335223034545281785618625338387530653573851217943558182867553419907088913860305582221116416741613486237461273471241740460599689629614371778841669915467583749487458281607093726439045787223903483104196108791896880909596978360503890003236457307841561174645047318966507211901730306023104064422059855032717730911607455723513992314669997938155462401503672085610070467261685058622498935527582681780832672509544041685269934998177586291852296929485143470204288704175575741403034864908746169407455541449948651033767133611470995009766057586244117439059406083451629880186641257378292894064189493753724584706379350920838447220383184889918963601840052700654257899406115761497462792657400314897940451588727962145809095489004421910384138756951724858470284258552340337445721915435249087675052069701147066197517143727114452081618129738408440797615145654427043075927944917094051470563067368610317976404857567686616893870854519221250441098232485096025815592022920071148799947187400504733536811183106415783488557964734269367335558693603209477380580916512177749550727128733083920847692695498462864182940198193711799277139457691534386874672094533410312811078604148985487785427147979442154301093855205728260458930086429097674625514197749932403446870416556599934710231232764205870807277698165302714293010646830327339335183306617831720026670488981692599247336796765179285869167092789905368862228442239084128773838737324491349790013174196539912175926289800816846721876976481299434721587454418515035181822221271183477481179372147989877146475542315406576939787839677357441768644851718184720080969793460708970294894306105879928228303854648556751679192663648460404875513688759565796101381691359176679672586246005156350407739167720157742188574824198435061039174490574865085324414031264816229947043565797594264151536118326381794772491356210839963991028129887092084296523474513605547580828876924926370716033593449677795898531859122261248751593685101292399899407878151619465134628185311313345255356986497805012374865156119449250030215086467683417724989140165971614693371910841610383552826903214013202097246772382716980940211080281531082657139930562321797262843734203453100344000402231143014664998695933609769804696113725047591654332679681609937065999577127473616785711503530485917465334539349315889973904865199881234441391677554802046099106807378417814139973984496744057939816925950295492427883937678448853840146882480759109587954183130686116502470296481304011744305523941829939266971791127212989416999072097029558640656979024213294685025360401202310881725841981583210911604404114304816464432154340596000026258295584033301190643842773118118195574774754572833606758688992023491966938227990929548994528889074131229222623650124369181882369407907006679807147612200364967164717202550265055326080650944532551447594154030495833887715584554916673177512930167981925518664167267563129896326824750182831792486381938880596057743240881865956095268037119968413992820195740248514153805613996375530693263645612435548546761824344930160026550610001465794751372943673987902448530558330880615740347165087786986089932689402493612353573984916756580302832058243559280733564980838360323559566931745937999503764415281382928832450546431915640159803961005778255278188901950738675277682204060424334206880828579912628240624677416947541059612336891419325250587119178484458507551561491564377445625202240963882107670815265643382769183843177888968831508523449390754051268107133945116970437116931589455623637580737646337501359983724183902688309313460944236965099284532263691679317375740520261234777463267787748582283937602666086292146139307251494591288345315065129141656302870982111857403252012993326547312738024278702536458109848303124604270505436885232532886788516799894606966961985072156472074842309910944641725956735506924153971412756031258147650504222261951195690454403246039404104484037605146574782446424658454277081774424283796581035582381870695882239529761473469239451219257717183458741246832540332263243502324203661712295175630951830489723504257951231396380800377605428039785057458580203156100706824305048019125382178834568900101805210786185999114905908856195158320256214927576976231568723642422371068888895063446393399060550793269156439204932732113509458434111582837473582429328293591507194244115797704333774330536364307787367580972190209290867373801128601767648099704090662842754041719711496237091164302231449450757979216717970838877740493808170094191332426940565212524344289978813064609429941279343388885559396970801591874677466553483219497491185729984939329996382881922181429112868338268303368747527608288107943642863964774189091719318020235062181853912097112759835195973710855858906851589487717480802636110028041485634672383125862972721058299632067535032531110219478790094240755961350862561414531462028563502076234526160054460353998064923631239362637647987470122130129245773228963245080922253360279443370137832959727164770831739013158570216337600005851693209093695098608223166319584837415448714799034043643269452655230903647059943319490066700701837344806641934670133086385590836573218299310537542149105415951375533712559045607291097716037267586676559253477883234276394542232056313215397966344462492108452470996465651708211769160926826535956526566676806850189399374856505368578031323262062154445661516710563183388097377049821035411430487268613819501600013702376415844610214007995424485006546405282224774348001830534000352428280255445968796475300179911439916003269058139861034013093960572573644474440460076832977417062015603038784873064102632087003369782028425082332792533909242075367568589087506933071365510079148377130927166985536090367110630018809688644072880449875887061520630887846242524575861843736750959248472678891240760367098079320645144860156691165132044945620856428483892721404041749377034627112851357312162500011180723443595219809811776703083671341936424589647843509731645263928276904231166649021049560231254074222573726353619305716681079073246655611312763026972236230163063008830252110201359281406190308283171334879792468899668140226597091314285902293586813395764277042727749742284493419011000268233765980764076493054756525725753088015357788435371377727260321162694083538082584593179687592826211128051108092991008473336055788268241637273662022953081412674899840278605128948215137632094136070513801163652045787403150517494712284778279087358613013439215051956336991488985522905125231033490832133420917897939600596154427598536234136288453928680655872083192603491024955208471635709654648279623105202223366321982179397568900378096250651418581928727587859870602486473746350660715470970668996999957157296121116822311731141512992233778157330884567324584159724683452788124370231921783388786736020825405343021193104606057972656671273905401832281147382135098128653941702398325593110152648362657957334487270252916675235711291872309083975018232825701874465327697449126960904468517836863305479928499782955551357918039217563650475819637163530273737270584731692005807200175726813987390330080924949392399776281269769985955469430509008264952004031565398445842345116098496335843593223995405353186389587954383018925895861169464156332788636907384987930436101335705058023110611046812926195734111203611767543072275727126164644808681780433178630361580123195699029502756190212692209528470489753599447433678004971557004944533986617161452879582130567349881178053034990613817891053831769259938177988405888598662485400567756779870902422408651757302973085242750214698366060907051964938936475750712486684160580315620955563209796917156537269167556397307494005111163028239546483640581619137960001375960696277001700427073178108768800248137423295062198879658736681259959938222130838017580304666494299703766169567587425603415365001179047743137943915091865679998283700661875452481409125043784923739356344944688762514656831557834396096120331501216469065630623702913755975039173858534636803738987871786948566432197915208624200410621440063784344907197383894742762275871856873252070600932118125112952518438488591313811845621564240787359985541796267789574539786111075963252349192078042944427027568148001346452680737974766971544710771104325805683184230428011115227491818361688374766956217504799261478631881266327075914264477386166157806236857570441522601605029903693930479972899882779449413445868503815328242744353188214371837148253252865359642807596989237064138830117896802047123446170433103021450382327217589988213561304359384330934169237294090527830662331361857546904634465305524181184515469114665809026658976775804366700464355029423076341528764277566715151425249735984672932782639242584721464200515081423769696258456085199329036972241957170461691494380311667347641191168961867098519907665721217107889649274829501147167711926181736277080253737360531589153207406605133864622947435092967954788846338501843712540645991467543898389920098268514276793657207792797915406232166871830596459449062700341358780892630428928573722728858659811300076746656594413821954638333232324441733129762519961111453851632299198541901946636559231560538480093360209207654385087955066141912698068724592736651962655630825222076522073593599289880966657171355144455865692586557329523755548469731659119961981230688089333976781450604567424238258464527076744090811060632313534944361849776801170096716312210307001389187996684327576686832255160520352369370634171000943058350979738040414670371857345869254058194335290011354761544677591208195491509675636908463337366644219930145630011441070860069939438989162442425273004582035193618863804416848892076412230280728940217455217707801540387105160068808576839336695703955731071313002579307209948157703786163981215261379270224714754186855028557679595175448715603980823803919997818907216009402350394906316752962111926501112496571844992431890180048849024014980252120103900280021199131179824053158393461840516911967457562708717950518098845487631707631980420604634354602618340699799584305168455713434898898727892614794233058412113861768090777924271956078847041505645039511510309297068640789021387826921366817078030937676144634259408496344879868718976549781601466242648953311851518558581110242188021977117214910405454794268287292206410404854477036159039989090426506498993909706185580429561604879662059026498427162516345074813948725353555879259876863460037523036845788435163185657108182390657590593519384578429200318204017567788504430015790467733859332502493606190989088275093697491572507538415019619127393523917685936838708778307504682218275100727865247836971336957866596039183952999256505724490822267472369139761940421849689482611572959425565764153933883781817088788161726172784211073129323826189762189685489892872341360140380205584577096775835233716598784369422841683707338774656247928663519667398314279944801521287946991948817591740039638794212705969727712192538419313375449223742615774477522884257570324104483129088278448387127625783344504618598354383376624384278079775154521925909558502071511759541475676282071736240571032448310826444704914855743906098525164492771614597314653180187306239450211441941736644980382519115965194108223101459729116666523085774439245347658496075747563061372315045434175759353613846104155009370249701345391827960300144204342371541330146305217470716082611345868317808477849698243779828236114869283238036903698230204049423708736680869977257675445656080224305913024337770822721891361934465553547599292565004357066316012859002372672469130628362909369957507042942852910691838795903827548212866920206278786420126930098376339978235103683605435354409016567512242202985174397221405942764784958261680517885949011060352003592037765535009347840391207611756984409747508411857513430208418499665639707959663736821092464684035424964784701555400089106330400434183605428537967047178482632508230385411806316562684550102139401156453394530290132139726667727852623233014870521771743345210446326623594040065122819654694230018915877892483179956710717346853057511428097239367909987263401107067856818289970098730647431050977593286146238516677985457499343880621501098271725054388754297313458638201240285372007389271156593196778394251795764481532436890218650935402040374529572695162721581790628367319476380540081021428400974389348583016880634432292908647354891842148990786006692016570972712080255758455715039898902469303814089235915652109014435230260272826977807559290123774368288415166055832220771135795969230662731700687013671455142571538318568114123522980191911674615189246790506931829997825160166041041102117430553284237364554911135581712958036535171957208879084475176259799448777145032259917747339299449736736569707656619980593976531215962066770094524832208620420746914330868124896024258039627088048155191030230916755801397369847415713018860512908305327250870951661750753074373572337921375312641314006605516722100082461995159223328105135698329775288257127858541592580310797432450097850246859236484285893725946313029918592734735807281735814712657200578631460580263584738246561441261462147475078897033840111837832353026592166667560104760111406057590972457849708739984900257380531574608505817434151025021850260404690626368472834160722104725641896609302261206475071777406908044019554384901679705343190998343687336995778692710301419740296066332460206960894123732757809289328009066203417690055594720007283281813404681724605131161310365442835164984880703059874668090753434831483866365193506267930682736988330005057866214531744094942250004078079441488176628793150172742438403738882032095561726335959521275003573297168200636185853818494289541054732981000545804588203626476758464179044120375853872505071767593554023058297048474697553342070113142241364279446937415849226075586524976503304533623920677379701844136996621098247570093514599499292799337352608101687185072767173359849107541087591771267943811899426493127635346255117120371204968013876825990472442470356478892502453668617135423480091025592144557113971876788446238992238220280364793240139654474094729973654843255619050131639297169802124154838343735649513420098977688305282129205713568298622529046092752764405930633849742947400906734497606955906949230315305876562774885071203479495139859678532460390529723289774590878938527790888471943487561128185399505827822675117538582281262233293257045497366073739213604697504050868146657597278161725553667177406600503554302070862666848170354537121508299753477109994501457098332125518451748575538547155423002699421135924516311471199728094722767486343441627760562513381420380462792515728052749449265299556327318478968101244463764512102363571489170312468549774816910299045337396011601319787647440843944581470295870894626985848421413677336658727443765879375966742637978557993614753865142218307038893940065270111503072975108243520331787776206458299215618216350804699088811047584565914593459304857093459121505033418967702702029975115761095852197736204273813550570947780262104856901631164051335886656782531392956940735779480080696865889612573784225991464517746522308693670131753595172313037738357597558243287295069138320773048011013426125680112513898207695823670857256525449188157377706952009643303151823665978831701837996451022266223843136517366161702860992697212900869510913107128081183776130128122518645592975762247189103385623118830581708618385567598110770673895729178638686007035111847808750211598581302044191485573444987240949572987159253237124430943200051495057064785254127205938025051144781014158943867309240123985526380535698203625782100198121291938179071188015188700390226543029809706281798454399394775140446612208545621574256554379156776883378242194798462565973853174944018161883523933552845083688620891022717962300241675066638269354331418193334328582301893020937505684957302710890999994401117239638691378605680377849174153451062886824517676122809760988789774823593673938750062199969613910074630331630986433486563101100225908713483625021103090918827209291465043927125417664210640704135139384270046606518731968107749080754065596602583190015666403681014922921356821786646697158238338225021861266479116959031891352911509717235344163485826309956047907640115546337059542286119884564998704023100417396089330014232845633525992195799969198556176493284799067451384138429955694089079982757874145857611330704454488637231367460517874923261296407676919386458063787909387595332400291294711517694466733129169045687067802211850656039314513002617664618940104310343818470078932283160767466078953258636020938845801772560136889334749650315181637693307817930075360220023488988264212317052663781642992753797698285640092746676733006718373583780689595239167985975129527787113966378353393585873302030105101059982814344652428683482235783375365594400388005726561878086908298068536265884121369162037604764639069781570927201897878300935638536164809078281756628714161247478406788706736315920779292968255644117698346676603844494430051196564502236999035829743536615718470893810950946642447992606036290810574356350901063028149372297627255619569479347577220824731366197432604002170200644551332363878696144764583699199282045338910376389401903411197327787512670299401508465323427312927749788384321874281547238846679782431998641584954487957173381460419990179656932702952137730271256642091518497386072637542307668056198427377680042425793543133693788105721031657647127954839681524600436606991263103590983319021207816301854818602494069548762231972714174190921216389039036191930268350141589284332063036056073086610869568706383735062462359580003639413307749671271757908250388297801178913684294340537159950250323156815104974095585894853832058049572940928126708823957862913171362482781362719464270221881987706606881369476561555451329452267545576815288170525594905957281001706552248035037959405530647734616051764067816478724286746703158280340334252607931573857294296910091811343573125921113477231612499550411932951883234257843652442318306268021323764371471997844911509445978219624220152498789531262171604421517953706959835379115139042948522546895931301698504193197958343560506946110508937281198537643524441626627596842680661455486865127020704092858704476629098309836020087437654986060754717873522617680368985445019715002880175698852771104611367153655033101921513134999519906671815522407263148025672673665127412476660990728741359936624380812293601132739761537951022225012657905027683639660790705816555858910215869061917494172768552308848442319599093716349147916249397502910061047288364892574277392160786059848827378071513967924834454381854162369058234465047118192607780724588264954947111485780383142699293569158293293103596961024390454297444432063282515042967639906433295411731297623373958322861548228402021040687740536573488590009869883928476623685845639489777978332913214653051036558495975510891574177317943459449917263648797286709931417872846596030724016023020063675563040702612003634267484360184257872733863294519576040740426325433861629618032331839222992887337190089986813836731347204546855108029698971545748774009698626163831705908654137837335762994548027053885302740589552791759970832716096400163926671981545522431336039010080148963147785325274057602450437626316841279296283037425531689882966984465888305689412206269867368360902629685798755117174034086991779505298846541943314412254139069201283161345506482508252192943065583374229087739462879876777308144464407314277156689824968358211785720369238708838766611783987147062655470140201985974840894061112736838849082577398736863112676602236716561943398123506331812931799441158044587990736518202972840793126515677903066722676505183206255244292961132733422364539086722017535273770749522743397353806282691775460684548865163961842124179387972057244768454387822020132772292071284148876161109097567194655595577358141361767208759444110780148207054645576290078309040740222886327917194440126213639225390199125466985093887803951519807606733901800364096538483877078629275155037002693262352816724591889535240025808542679649108570643412232538589850538805860012989735720000325914516189125157572408424915952285941454284651009145769545871451146279637223413360512679557661572199417489702486591929301317808069303165697972797403588185176404589515820141626998565259433796086516921338714481972970450287760229445893196153029641767680056145083323509680481932998048894418803664999266293978100338504971675021206074281499427839197680447089097837350998604293764907795287656033389432282675908522517080168653688374496855150835646823091766760286064438261013318421074686413219760157380365047642882426085532552866993689182040911399024872033393173500269036594303063883803863403148263651476898864594227949899355890920141852819701163601218604499922003830093096071819318711109572472501148146707215655845265399679322313786701866131362211826047833844365659356398855967443533351922485791319303807656850862890858644679917692975165623597953066468924990056876863824259161191637350103245916119112445414433264934506966245545522505755255006445396882402158484179232473242571680472555726236752813293783669534674560418144183354521708392900537398477667951785495838477221265834392151903117046117943024830969988576944155693977262378554161542349644578887101194676136234480899594692711566643160759636013379477274465774227495249753882458800881002077963502287630406862333092647252739563196980755077330537222496186879895670459597068597408806435945712454548774241700150848386628454491902512733722578087589035459165004382647174104304784267715605599041139271249041111532533668474596221706409025649432592260002848872384404095514299277078997375251874559776450347401459375425373530492330488836665316881542780785863634471883071785537028967249147907787703362152929166929272014076220305720117047073572028283845558882722470415447968899035847235089866896985654275337023553503157494321171191671087725864040330148957375683809335387733825883144024203876892035218692877908976042659146420783126978241314763558516991629973242749746222527084887645737328355810564059988675969062412546329917585391698081433675815848504949340441247252325700225996221289465176063551616079853571065529144436853836125615096870598073301578947106591106148156628461479310266143826729293135385387575460503866653648774580596304992058900492029576688527648360965732687831480140103970978024355437087897138351455663014808444696211310968996085643314418090631976569187943336962432991369589290560770352967770392032089598379811355903036223688155450091723329119939489931029065033222867875053236753244687525114809619652903275873960025791639378323748669239170328851206669874715827930471206737506414630969922217786445647908731158652173913807399896074124329500849487041494188862449803915008957955766305515857575804435971805453559599247373953804741869524960123219099772135734040670406989122977834151496713072589884654761479119786586256160261510549755403749580540724216924597579832022359812871235839188595719025312493587890355330138968478982398633797329080449451809236508927208171617665704671811852398348540440836026843993478497937377928725195638555036126960718010883511838015166329118653419400211624404849497512217611049459067116874879769047083018454353009820029398786513010467093386848585089199619188939584407577086218603010142899553431843554195177950922077179381659014974107190005073426999086683176672909706920600907666261067147713522885316490117126487267718995836436132308295381492989822773823021682704075911723027031808754414453381102564802756546531396272237275626856509812433180770747930113679592075326220210037127587103318457814285403373891606213355739742335915176722693676146957702086472219829112492368028523242466676261642056168310728953066651065144551511548080934170193166024069294677503409292255425512786130314001418474059996167600133921703085686851424160009643133297645144126811738018689799889312772679320169798618519109738340053817370844023106550335695851795142054783933657687511855050895346496477335701877282289946527308331087332944279224225880582798305263216954192906044925794374504880786174800710818250481115957688437175659152020685378597259270178084387063045362161506292990977195372103235641654968523077828707168964831070986157583094629343302950890097980776697620355009205119182806367062684218627838668231746746398432319263965075685947160164719095041160625094033427253246059839328486589540448100253153028276053210625830059841364125403153706193652792078251220487831268936574081918990825152069037187174579331780330821986580125221259544410383949758463067583060858286069661694145673148327688623608931760914660658580291888257420711080323741897554622898432149918822317179807587500996248078856493543691997235959935719029957022751843993323577104673534218005208714496565506109681643888034064687361962318941982001818121963209453002431984855665392879521288314384272811456004310911296213358562547830505217187990499215618769497352096649706788698197031862834003767030817680977170706419199929661550746438418530163713078623647611181755768857427824235002612817439493464913242629279765915813313223696459542058693991453948724133159234857626822621903938742182248831613666452038746247385705736139039697418224446240034397551408631554431790853622756160027944029348254280577215149689821542982548866395159362109095207991310519012199457211233712320681715047464334422778231633067260427694837966974954308566810654654348826387962993089492615266090659743460157339546324378905033773186118507806864539369175184975833226815007742695957715883387294105809126763131165723184668808815170472484455747576646941685886362517272323335226378713711109028290839175466782090749363197988394256282741224622644520712573556549889777399829125132038046586116242517961161863070246482035957464766376832657955703059608856740589747360193037632189085023185836293758473508640377750597310446993622369707176754291147390914294864554422849798573535779936343383005526621897400616480702396934129766063315473041451762513242982034812438186587740939933692059605387911510682941795560723084252266383580367302664760830952024997049465866691469999067869181761655476018472985479953788081692486311007597659805264182419092656266797898098443943597606440404907509980052681545477648562753427559911706502496148316185133247049241536812388158931555386835111961015904211534128941699711657246503549035656381354866215727393035907921697662261128554151988625800182786966345881736222174723950321276728527997777153763275488239236358154118585319928051881631218671950995375347471673451354325213269830126428914326256240424041094465051832589116669951765569461920267854591913810106690605221750031164660412483642875092498110884512409304702283805205947315567914894084900251156484339879056610429272279994031280251916851804255579920130235104291300969320847716655253601563252151772380439903605309185987831771550502680024605930543537292690407339396736876586649183106786668482057343658550259282376148503209383240548944540727463988812130755763538291115179608985211500508338309551969768210991686201873743397667456513768286920705451774257040133708399918311267264969660104155128337664856090176216433550967896507363139407753788464474411420028643522720082201398531707515628796361348891758653322947759174789164472228773533424411015740428874003663473146951209154320601501481178437519019155672946753510696516315924404891934521571318164454554010389725838142839661064740127094836602983295498189632051416368699633979852836110642067363894195089264174282478897446356566193672136593838726974509955499043118004148123563934157529556613679356506898276256417543448188846712220042848819142802788626476557337980536072258901474850613421454038242109648792746783112491340656220393906740194428130763958641136563289928912646099388492517762054602952426742648659814727687869229301434797787821599743280857855587383322558114857458886301733226753406133050292107617515132587543205015406699313534236165956314765382023354175721369398469042343316606079372597701157595794321029998976533741515246025505118209736481231590631748772068862075383561054760833852384338737312588295702614717778659308866039129245491852198571661113375712103033349461017149152798517728812378288265354698123531470435615903538447967182192273063527387710474386579528071244012453747963275016472301598021292267341499881161698375803878201779720193358365559683063898012852901122390624918400306311010147952853797993924968691983958102386533056924008766513658408176181407300581559603423799620528312279193008634868189932230421287376245751590000881955790310098298710196861886447401421668306620331533550416848342316982319634606431292960824014745536416688390814084168086275678145273633202889937284537863153711622006656561825502260629177463934200616229924692000748641857282270874818318290183398587082855254158643396740665460632676559274068292827049315460006757239989046016688768245245180533482300575900266325327381009383812776395079393888065282397798695252281264727239011887952090661627022148770398515906422161439261466371981605560101631600669331298822755337675449844471485548726751025926602197857511047755735678994195500682958532600132819463820879268515337063967566927936829751994719849078675070107545923846776230586326197051478274727946060723685908331773811437040233665645360324079370022028151906624713333466844836483379072239255468538600567655954789912701577723694124999450475958547068224387650084211460961093281054823543731444744108558123986018432302188908034970591702397214976573492051383456646274149866457430872505104835856659918961545422307881459255695262930865179317345485454151506209695730319898331386535214358344448315303893000361561195106238645727570486388792072465774071341678613234238766014860141654141610346032440201998043720175363496709511214104893503818523083062923153866472986998279673497478611513211007333875891123036289269689670292918633161859836712956273248922319684558235868845532689965848150477328991513720913720775903197166241579575887486578772112523997081177191754647777024763829223370201548909065158559690107887008461029612539363925202318009279129547756326598638490676201608385186251023041130025987114504655466648827438684995652328763805514779591223048882428078453911278376818308216445116883546787661507576172078631226645966031699757261390873358760588419299406312723731667776747918691984346393939658405370437200156329720897468165305200924217542959948959397025652846283192122728667593406323127231435591967599214082167512851826493213554027534935878944565284917253669389094918280304084498101176844434528342961436310854539418164431453953782347406921836757795347717656012952470317071996982835650409290425436135506601547735419012801231292965807043834780080467744540517683805252031029085563564951527984291914067549970009262170775447874075316996398605676931351865196358052863410541801732159272335585911421830449537573107551434912962018533626384731537900009980404600151474471255505576038492446095601805081918506729347502849136663200156894415537989884931709523177125926893077558480980007202362930919523225681604939571343046472615104293338984577623053435301467604894079212162879976106532203374157141414497184857848152782851264303838622501747407641885513022008286239143863119736807207305870846638132398879833205390058356049073769301064441618585916617167258966289297003479760415066191335835345337095653930978802106958008459959041896267505752753770607949104190533281570859855582575692299499790875542408412582351712856119351943319126866628530784478399177975568933520274985663312580555513148398049826981180283836082864916896119347741480334160128614519427776104741397587059783725443087116706420364133135653458063740832266734299307086744495245701241038058080992639911895427196586933157379446331159708033433767737415811345590535054252679982841375871933787965031678030924328112815691244202480857922691365304074388561742472876538873803332321206234502476536717049060487789766434659675000410195070289219825521600915750989315652568093342536029947022155602997515114378641759307406090862723068591022172523116075072926532159967722129904231066882812102608171170182692369778114671623808219993788210047331729175717307857715083043097732612710618326819416694958240480489064625950696674470130359581133555538552222017760602006859103618582582720908017202111260983084916678668421546264379690852617327930272964242679278062773934327866500999201326163819804783120003825100992097000837084162153063074053243943518975757513106453778993366449705807965108421073948380007930615297208172048469130661980138888039190388186220577201128384692618278043428774864500696456511924839131534353145776668855876530792378019247575725695464576921692414285406473996363307677283622691325619011448682101497574348524816083390166825607087729745214098627899480340940667590424454642198388927428301596597025523345903379926975116929835112284015869082382653899662914856885522570584354361935038043707830680691579850343466700783902382972945658125367087777573088738273160248862322043403612094081151969301334097305037007997231425688183293274072504237381212564607222200509061901311661791839198348285765646960495500343709325752805981913207992389311692713276575622621858216769542480485583333877780314465577052524401879481612599166391188380552566476614283185144355508596049438364159802226822943425925660474419760978873309107958545391774349920428616491837104834947877748927271487910209652681071751559732697887360953716828091332070984116761846703593147638802862000699923330885962891113973462688916197018094883974261697398380742591013407303483359314281780026755878631527990874748787407623488808796375552870195999623299706370883542156868419969892477875670738087680347390496422513879712860048373973456414211617197075987533557349539074133917022699645447793139609130833170338266854176832169557014438023903852640270402025842582043989064762220078318887376822120368432827028573590312251629251845901523442070639566500316382757822369333451276761396864089176477848003189656390242349333161988691129841897946124735689647402483961827744862153136298422278961655749592121510303930319847766353642916114909327252213491176612987830737984324913113589146219897433829934885137514995339310441315330545093033875875629680048886405449167462577923813802724240310009208381474780813330985200121693575720218061569240732533304709397265324905033277125806459105933618446815790890978917907927239301982606287243084757733729961543056040376710142734234459541801301368508655901338875342676975879913836770848998141674157812807880768050802656153485670115684173604868541143220008753144466482612381662958418448274547600089833776482824909943338695421972419535908317794784936793841271744193085699296784926631351271249159937008252510355832358744356079673382371495385958717424399011417241535648948436494832727113954863179991054372625323965918278373297356563903735041127582609090956509677117982547046989483526440892847606722609985642945294070460367807480241511385354577284261957085884187968694363354480238457869507246618181393289470455435681311514420574614871024761309479353665085475859652404513750570659917304776183926559110326877714228077882192538605796336912089413682515329968639974567698330694037466554889885869342325831019933181262620700806417955527878439533593442375138903462343955875491094972203765099690980316637469581009827070706213561935530761344514441822014335082743079797816798631391308749514184265026360184918201273584170259023025288300794041528810529284705436232286459529055816729959590488353198194123650685175289092845537880230108338617032310092953470346485842387590288705671152952960272278442592450844260093871793706803894012484725293849430949317045011602285863020390260981174684258006966482666229044123956893979148593081736183259406289492763791494121367614016941556627812069684498717835667213486664393409667531493005597691132745604682532092164103277216274709935159154506874647641977740240803414755290305863505427898422777094878120491348463512457046961939946772772878145883988701369608664141280812516345365719269406655361111354515626740201806396440396982488090260811523305008270649008409909094107500579077721458167541855174007710802777887013292992972167745698838683374879241993746228829128630693144538559373670158448155056119819784930287618196176703413998509635311640747569214606228904363117597199270937732221992030171027418829101919252578142420379715523555581261707609677006448405964671511960280085953485560539095403436343212192678019637089833595070411491697791540108923779425654897768115153718794908631149243935070376456357235952367763922039901541629458608665758213868339441983147962383852537448944535060672640748659725458357134312327422547907887028330241006157384027595942640157687428289517914185728635243522076874381861760357904484218232072375377887646372974152934471202784591432461306164296967347721714433861185613461864350749292782102429884080928409224132854493060756474637110218516981967337166863831793751029469675831711539344974741814249745211853116911126041031276685511821567654667372459083409041289648698650934268233135117697044543298905365717926017478302472886234424434344982778383808546031325448789262474031325088472600751816718294044896420272898894281371381985685461768266733433289277810189063330640033547096805708843528694796983186877731827578597633345616682389114334771551060422858106556507042808253741106753183775578524967226942264136227712571539605688133902724124710863160834080714707196423438010330206314977385237843436230943750281089840184326219761147677806145362863615126447680570232954761733033968486124415850342606835370317352330991160590861549725003306368839449481604981061275411400326868056729993919872751128219150870423489671015446094570994318479206809576825016996803323044681892007156829414024465977458712535321833324873531938054769337994721057407666374746199354727169078703409698920942673818260473553969060222202046480113819047319874517830922650219669790298100775675087428179469390477630521896017148141493957378096402825279340167097941808689304013155686145130197936651180048168904527267495873083844109542168057133726648129768092171937746899631848269747273828309400046816508041952652342682964806012851239704157501962228539644800234508720891683644449120041135284439041192020302790536641967329254082808496176627939648154890992736158176141307414694970250277563712761063371254831804320371180763814905592572855970477091326901964681292653104756042225039431491497148406743897576948072667311711687692572982803177036771612112471646817618786962917788941392862854431020444217750208195183464735876872703161116234054170907076633001811038520476740898900441667324488781193336194199484374546292782111268202574266354433620208723716830106960029072671510319601092213614154724828321116248333490740811769064430402865753826140013212946711794910361169197793146989511423626443953891699215360174221413595068219666921024289689640123686220522114187539876175784555115608639438073168453831431042391070168696588931580436408336520181977228718530256867069185194098142639987744768586194495230653172693400420556186203095624637220922729145324023320524195210938208546421394668782923910463328141490750667909277599964680109176091140734180831998761385359573489110324030152038102718792632834066247562087081405570034383589136290906512808796804002740375910522245509801451171796564088986020553150222472016537274123174712871445576475692532212701002928194561520748125137589615103614290765475367653271263486570767959253964358791105905343985230643046979464316376417321746498054943850208323302897912963003984109018235315236399784344593698432910997295826592643636764201719785703500780461970665517942290855548758916661277423808818688274306665213849732525725441524588956962254837048084874236091631115422801999027411385304186405054706568375662847424707075999911735310592572020177222341581855253598284353232592844731297493075905249540817120424282604842463676237190104041793920763373289493829245052136412049980530985287869829741801595326407672497160939074024293896733761595343475798964680366759250220590061525690202893722589179120014192086886971490408499977160232613649321246263254132223259580232238042767890314457119248365026153197518026355060856692387279925680817585358216619441112758519982844058626768910328397320962355470753213764058771018041759511165778136799706356847541848664301478613169873221268378332634835305967801726491258412729691573283790265547229227796614354676476577778635352375698021609153368680023241608755087877297495001148936078095087280536652797092355002066179378522979901549160337975709074092767443151207409327294218413063772549951778778840774487643948796535466665780498761719714148749267415742636414738379967141768868162828195514236694089752523337935630149096520924253822326753495001715095401487238401189406073887631421948085398853028365771702584213330203540315881360140630921535069811330033752285821838910023396691781247184385566687028619785944548394451273051632178239368775611554802711077558101823321451133024706831609145976505858491456799386750635476614696362960619311985105632611335338633754627744549380573722741178548301539838129354375097274448690253073158597575502347235238781988295993583833058882532574162386447431456565038120717178582123316755315998275464024996192894752778834716510500873064409739120009813198734623977472760593349763048396515645028403388867438432806808373864799579153412089249422955076002607886932304763048035815116657998097362433503632227717768276979993102648066475162562280469550153089677735488707600378165827905379057712353904701905068106067343678302183325160958209754552652756176143036678505627831674393837668593440072197134470888469475140441923039287253587690233271381569728058787517003742890622698597181637846812201150146444476547926805159989928780012581037968805997909395920631292116737666938522187028949932657784021238928160613516184225683419997639932572767212124652839881323171751419387151194013586263166878392102287395752953447853038679319046225324523645170419789170169563640895370782624657076003618359671515162697549578755426248066220180097731434148480747540666900255337986365575774301902486225749969287916178542331556576426730748451290810305172399154720320041183152996304252007581179799691902084123206052817697916738916433593597579956254617136594451153982528532872034761463033868125727488094481846118059970321198891390520708644734584677249786284012129056775253284353070146590718727666301037126764522071300902017756744149119606995016701960219266799623885341543134876043869889668097714463139290415878749059451114678346340921697152726111052867373118723625454128356442063137598459221408855880616128772221659953375688628339539573975568157144980285578841212200236698265077109170166929102551758560887647612723965444527171065168050760515628439251630768683310732125353781604435347993280117384029787871312863929886941866217287132865024516511449510847287978219966783345170932372927852755076267901242512251270293235393698332438582050735475403617924414291542064106127779103095695405373815387085257212841151445402908260641801831147874901427664309458512643815617796064373615485977662448096508154077495129611217163905133279918636111476525719174760457342920876634051882648181011055321389214568098880808326335004232942477894071919262579814400613196845539631962892360416940754361184681377760435194761838375519409665639552242442468305988605982311028468745308252984027843877016743880689286996302945048776763931648057193552502083130960362088192930408563830488465514862623041918909074390949695187352417972517058415611497671273754565597713413073061737058594074064427314096032969243352198965531925711393729124033259474340790816689028762713055286223143121591414015638048271006524393966482250039408120058628860245583565232293870828504711424209865696489468210361576220816904269433206646130168320300001015612354238411356577208969810799346756885297504460723324953600574557102002645421772186984347122584571772305838059452576668047983075002821734694438026199608655997079185843319713955633986041545611568407250841216186591569056612465447407589064445303668680410079896428549829004688782272871549911278977017814571167473460506808227292249530288135966188720376229067992545924895895709947023152921270612884783461891563105028583765179866100431410587473250507558303538775226245743362923914871595247442512034023280713495578227400824110202210545286342400651449527281481644996947516697316484651640707865935967514455859965810562458146853715323713260024877004297983971370002784734996502502227710252606952181980499604381929109001840737607264129125186912324965635740542854534577722129578538261035636724897238859494488655046742649100937346264020056477125365821082223357338268417610713573768034381784404420081419856889932662907302546042081295372188652677052264924553435048357269089243926761109754355455097706084378346800788953225770141722496567296118171597315155797659170848617347809301592563716278041318961311163328455669197873091232062509264676744323140431589944796348899644517904128923546782489161952594212669802262670276116974090400498701662210053606428426648440474128266526092198437441707333392870818973017412506969263279904130897726929820384725199860630523086090220780587544605881280306899232732035647144561145419839846416383086822649998251565529844959616085781690537876859087726288559545361786577109175842049045320013965115045780913301305323440624255802941748629429916962706083882878521443597000643960766960724507164685121154215938143757039684273486412944722140463432424910558856651086947003920831317249169975305911755892782342967585612813651320094315213666559886155198366849336012184264626231951267195935643318757036386098170997539823447199328635265047261454988825429850428195900738508312502801917368528586396832710709252890250475940078202444752416313272315938343776839164669299582075584149063766783453203601076473980587279219737884297555638463909026975845146188721901850134779334174328072530918931460817410409350944565059496816223413762768724762911906942475436339085280484726462568103276755013946532422934998135898798621531476259728872622583101384497066921592230788730654576689247262524886712197933012232580416427063855976188340730197544485539460494367718817416794211891968450252216703866184881752523444893137233018112683052750311337038604293289623076550632323723565739958648069737817445798871901457892615298001225131583063563692809281755920713829238793682862433553653045901469340377024707731659824194984121776205012115877340060333168554755429975508509350041983540087437480549689702083940183548941440087835757299489812814938935250612853202340407108716802558350188430456790614542344921610622413510358827802115212950522562307106920998131015585395262030986345328849286343642321006413743420687221797040169364593896389752131026131273467605453615298214125143588088851251083079327527294085580683289619468093602143516967626805408821873202575021654045289458112878689724149218804245072832979788107122082214830772595034684831315175642288612748555899759338247367250666321570428575151981810588292317051411194481047045852485212356378401724608317129181680257740723732949950038538294749408240198822595459305199957359770309847683021382467877278079296416610626112458381954386527495524079159001500473644996942088897573994110820980935692961896782622287320672512466916188407511074242253457007945319063776068160681972833808557004056440585416182448712743278688153254012740265521726009007555077813017012399172280442658808660419445205298513134666492665803218564884797204864286672416678506405214111162819592668876920240069036643032415716185065139300309819194019291110936774951556367839057005930424090209006856614929577140484093858748518911283022837000064405576069482215152615326152295506275017308142958898747091369532606391815049876641267292934181392471971198563676809922313043341195790120468758583934453387622867219369675970867712795794271261265495653339483284507683776642498059163594366506660928993666311494342240925523466843821253771752569050791890328029494667780896111060553561207312604107908885534585779612317438897472519309841966325147214857910770801417195937051831322117330306097406743975529991448006159900214544385589224345868304548742778249621366212073077823569506734377787149099974846131083812046418266456401700496373559933805689827115254082623168645565768839239651184358367487480339779667614146561609174238877151226594537739491674350936320167229691207639523858780889125406129349018372413387265877828577177253650673073750891562477105183564532598099527551029713056772635558907347622210388311226804283397939928367973136511344126238855936414977242802030756845435664453765126310116884933773326708662399607370624963611245761198253777733329999209332005038531310291745214641205986913849778544210987840940565819783784633169118891139544085447031687173482797916038845185154491044059683165513595058521957295389064962875675454647503544469459779549316219586108756106795197629085582386056595461472144966326013913136562393152956210872055357221952806370391688516335219123355138149163998120210659376119847330028721095055731345658141909432875339876997268462874625489075568268364494660160658008143754513500691616939098997454724974038395763436597073861528093497051017646815878588722412516315212513506213260860752577121248279115409694256546778271063827353840631026532974718185161054416980918549426064669515524247726738408538885449100539130099615334802659240494917932844760540093140346988620950851843856657046399138767406271719515407914164476360033844855657560965036509966492383403021312748013529390123487491148473601357034828592901908236665826443737249283485198626593088166596937754472616367636876422319425532993373305308509769541779048158949553588036611809092188905098523995470014930390615643433334194492245785269073712403262894368976810808490216386416128510050351987287564593401024233523123582439641757792536430961672293556033767742303736820327678977075444604220515126225205925327206081838932102968356115469212430782691039132737468172698698692226619769174120887559257377905442336353694633262882870643396385783143801067189283228541913485324614049198504086790095126961334565288822877069091568466620801963173412839327296664187229641685352850219613717995669647723397207365068395605664868943191988084411784950200671177328208382509916412918039396739993499799709879371768305395755761608076662792623875141658482702811444243573314493982633487171408185828723499926647213590773546435247235041068275846543407574284685350697289057067651580168145392291774445048985725262863935797610187749913024671818857556881336711885198532035011795260141101267605199975638191934924528532719032172710098742297083086462221954718107975185951474235772949902051270189978456967975441994693387903657363041715252324029115163942661114231372343981658702955982631678174401308673614570255957014894968476375909779092269384449808891704909607790013526579515651350586820885928826290679166916270347700733649718932087987887044898890098408185541208021908997215532451301526814778281463695135597731164462139649738106037477680916811383969953435190190759568336056216961289560575837035448984415202591013539479044096606963105770316022746818953041749379984798790203969935815060990453824249100252310870048513101907243732480016739191660651190259938715227395766603591148868302095271783886600752441095004103257984155789943306156694692110225810550432892914757128080312897165545749493702632498807639592013808099033106929130166873280525749661819767198168816199599308625375605642873855691280992561820995409922156830511380429636068230620958328513620875215464825527517140726089309128599062712133076580761597120870334338158368402163191926534013534511125135158168242494046026421327561639956502857647339572838568370826843880730434613889059361435439051150615838909234353369535334360659439193741571538945123876200133197966866951897465196260847537634298112674940406466654303747095350925976177773818961311490715380276809500506953895553015413899376601279750500758098866968131354486270706121536579895424804536018258681022226633085871427486919325249981115783432791012591772377982876529491376500241639533787503457425086297207235903722241630863494468463265449314100294521224877564101191743297365166758107944329015758276118109567876092302279333249085429756574949723424019535427751913785868903365444080371506922878824823270853862181521587057500430401786981547106874109720811062924327035218936177053943130795646906730952990816188757474720313280009307118484778159322402192026258743781066900497983762337000483250916667969991432975556861153253120170537861187331517988793452041346762888420315949545585852120933578770273567052768783620332243507386050746810120010370551055621651249632631670377060547578629039357966867292943655993558902048540176229019073770395792968235021598567239607316687308709985436583631348084248345667183169208409303017539301364548590796435608462975656980760551940601446681336619417410498316168814013705664142016782231369897019348955948964764463291052204866731868809564203871460341886458176596035053164646510637912916998748597090664026926869752614170736260557097304456861613344835084023170223640078188665060317965582881289241944424296327465203078610036834903433589152559318962795004400560673087998712685695615462619240719111121853579019423835926303141017665022692677523315863265246802987305348805325669066415081379808233839439600251985082902807597173226032596595368647944047173357164356203178709401252071910120784468287475733572898457144992271941002817461625160921371583989597608224159063629713944370090731095362121911326554116140904605162865273419552366048231830902513698062650630579561482494541933292444840023672450537264413521422682177865604502060585574342149932305560343766399735057145756025359523731292152038785642321020211261437416297406718827411026961669423102099955879516487721017516781734018646043502908181987073133545760371885565964090024669264685626154763701435645213483212865080957707246840026511802780445574771110094975253960705366459198019679475516805942953620134731620538687048570420487252832040490076014096291713975137918179603248387531066520912814232089308028538756352977352990209832398729727575301821488668207649731440575266041422801906433752951183195763112606985715894536127065172290297760773020615009217330624157505924553296803877751214205017265078279636607563607623532178431943278014670301417947237486236408916773824188123187362961058392430271043793039567444991462791180598572275776403948647281733777390434254653150646886251247691332145229610002663905982907345212834242720261693364844361151548864313691955968484023334937868674693160044668426568520111605575385416791165793782912023199823036966809878609382121950126694506127964512172199691368225089255012106094799613511702070285489438571863719318680526053431257350619675248744294554585386307354098021031233109145376101101287501890353069679879742489374609083167979965730827818232884790243301730146471648351941631178311504184711522299378292456287490456139039759965836789828285445909559516422672507001964508173243695988308995868767407652171238925884234622964844641451787164544050734537416936402693673694064548440036671948224796364942022392748789085209507470941170519439605120260442913424704744437922745281067333203897807605237520212149695068480342576109119158864797331852009310600860805024553903786832813949988712089578411716511516401299984564785516876408310540800668487625871518283485995968719069399746021296509196333836802631180142574486762605548263342319867572946669697641142161267602205861990721917904225549568270383886981590706280264136911621938950027229770001716632765157987485619210942302956894903709835780857106335924353646461613780456000207808782997144538418179748158466993930254850893560887544023008769192959048525642231608603187622414121058295350065031288821476218902960054183659344233203360650038609021543123388549180089200214804348155222467355769064552931493940974260995952057837868165354740566870245905967234651059863305353725376985587587476415677038049072683259701493997139250881698507091159896544040948583281528221904844905684858176743797735882229675620891681022259708171575777515000505019817144415389295204047030278820874791433729848888700940726127761673819647533002582818531737072137553912809030820806344275111528288465908757889561519540609707111814588172232220467622618315406506278629155034569301158858766901902551731739290825631372691031279806662513271101251049602647723406058953883703714020126901021305160433366651505037179259774791634922905060534447511694316345979141871444386076213153944636584357939009274014203628864100343260462823748781877494262988653425269263412910505644574686036522095199076373672865837253919316592279051764512695609403471608585375388472518179570306002512547678454403651696894884808031249263977642597687004937901832662695990226128119370219533008979722099464791082512411122310240885963404138981225984707054447964358741891016759709850782292004427636676913805231664501738132444622699585055373637286247465562582486577328689109087613055843501687179108215627673141702808012457005085192831633936624739476132198251128409704597759700377142363379002256262357920706467101978488323170896277319453249213287586582249216029437419275089882671718052873987148479722897132884196651610100191275758694462522028781057257461003412743946257254847100427062085115929356195032856126776300654095874168315764504441722096286144902085948810556375775463124576116133496034134735623092573173233997058158534287145490680665160536903035019720957519765160050649673576033389187068206712083375013741610423929792087119132454328397276018562776601525324509864995231847711122055846377600000127476979634364627491637312403487124354157640636478664979592649433226006781615679162874836344552808345100052165333746819567039483668327411268460794968084200079715872726678194347492734246486301800164715723853354388627939040598125898522385372015758160597703078298393715125619268687642085783166991866922675175119532456404082878492234730042034706900155453758352692881529570577296304651758290976804184586673337849337607016034072285014087942575555630096270954945416196433949705700884003027233831812419786927610489218277451051730564845642734371958659067881911780003306678873611994124405835117911435330565769896192770504552191932751326144246550572962223369239276311893396107119340738241035553164952051333576941166531684711609443096244386092820078448829039495655531584393212634217281112105442749367794328695283372180847802186015261981245937612435098664306901769577939227017716782470429678095014134306070723669114537633333160071264988613332925525884141958840170502666379656237381336880586518114767567734059379118487299558415427664500434326103456341163528451895379433245365732753625683616142802597813740450180632104420948269326782856179347830789969872302420691186585266887391302855273905749131937169435206984808858282758220525930652158935929554885482610609374752451980189940768697234725823397965142253053566717056910127844313121924171401844056571243294869354095355187731858226263808330981631691540612293029641296984676800022486938473137314719843236854867011932097341353981108983021301454392286667356206515197265810340091099956808496699192128683129315438069283818858844530945014441611783238455986706684869755013152046618075510623871289947555068100401807720395517342956360299572647352599318037231785184401909371571720574678555245401497093651011581686777149594545359240871761560498140630827885260214060029066950257517765562027284758588905543394005356668451367624721684651692983972858992933958562124262467015201526687544671973046154273022097233250514803300150470994494293336699977907755901107312532701546171955136680416218735288405243200842088857587892819839581751263972828331303122944225372692948662991680087739313774420939004814857697786846347003593223706080267818680295431628808221025965384603473795498945086308972586684356265256319419012675844273450261909099910157455381763277229736164533286369786965506778687797099583924862126984729502498212692289020136868256479585861290837771101156602885694547616871901521513241156265287641398935908337130920771036160753507062318331065531303903810724156312112208500804258357353516231696317706827223113454195622875942364838208375770019506677344662516266028971027689960715676895513409322731776494062366828328160530914548044613437370968961696809509376490651777725258345700840349140436346157848112309805841160358900998405547927900392999846105644968408961429927626810205829504091046722791852657502153677025072730881447643780474346518064764051417236761650088380265204666359993529672552090168898078531097469230284488151136780571426871515142648631374852377879748399746199010795224661034675314540687188024136316726579866070667312495126541357394708916035570525919149815383579634211700819860774537301320531780136731960971986556513644419402183712469090473738619868940408978776410655201291086192706078932980577168864863029317379369594729891810282111458290725166388080916345959548392203719314499801631225514457550931671770467423511909558533442817762710185293927070006624159572676254688252399442714772421656020419898980896807329909063033433966263059606518802691496734376980835600739059385732384051121197204420497281219455978029647619839942611958098407295216500025287960256865784978945840728339497295947362432203173572794366291992299757352032590402878353113699582823053392408601405584688159085239629640264049406972959811902133239813452609258202497160858591760372997206580934256695105316761220381746880870454186011141286554608919052889269791718629214651202593465887518663817802747825460666466144376322963579653098050665702535369233000101374585077285183038729615842783576269221326361790863899833498593475572328779490370196587241414261086013941034227564295716702895167754856728427283331893987881387850556523622798229105952220431036017198311251445241764129956158655659634083181454635857491920983158300219132904110886719346287385223805036779695002545290821883104304928415200788514810715921980463171252501800551178266124691403017668628633865517352362977051524415853992610787973171984225133859869032759823507932666513564221194318178832988434809018593693946242785566187913276189844713301154339025681188443030248514672921516413253130106989408060315115327936896755606464363743104045746185997321755026113796035991160230826276670189537016076979886354259758921649633481792232374634302439854019013394207578278902355757708692462178393539594163143554889343482463170175852532221277992795410667857347849248441114442343167677579985256121279849796236741860970555153022400480879763765351175515051927308794046220346835891094347726573110276390507468643034740088205593377815986243636964935753446723684725329361626489432023390736285916133717739319759949722527323234742608922149653212125663460133399644727299559209951228262456813749031919918413005200756446485286598541007730213033035008806682801414047120693951451078468652317330011017978507919185505236203465320190964301093538325394353827073988278786331621789048387345790716284261929424766575471420138109967353706895407969660139916199867671706235780413420769547544655250304315420828295077613582956693613739845204227854480665404683657027562071788091326780099115517080816534296057810430236498438678115965804135901307101044188013181483223398781300842487416418872950777911178473616310718346800293375954179047252797372631289970959138637316013650934094754195426856770114563870833848461641232571305179288712729392135527531901430904018904662919148174133374703353689651655321315482315939373603811715121786880220734819787627849503223182552548483724701732545353317626084538068842584887067373415088522998130921217540724986702991794110417353560377528729355718914467196378248474732380004450226323634181967679911716299103487937969770702344798182112091986825766544452156471755119515921603147970607361026235758483171339137894998419066701853233722034121939458467470587962740229374311578592456660838119802881447525210284461945976503932876306914789570465244259952544231273953072324045231058203384379297240218232479578395555860327525152894917186625951271577895233139385248886853248672382093213131754870400438919969390030500625323385928539589336324664328057605481151935025225141782211971162825585224680800344389397475526401293175649772511271216372540635830844522291997278305817572112090007763490590435088110299166915008796312085206971344473292078805789503104485560728607386142051702139468440065413522243000280358629943834480804580838133404374294593840024556305427132140523365314555358410710819477956951156243635351063908657640184657302221237494924271995372705600630183200820918481705526180915347208682314925992820317312204899392332081257267558802677310468433355442241855599463691420589864510975043318754923588390924698922966642387900491571664200633746398771640291495309874336888151628586266746706893092059476317504996650594958817377446573469917314620928872891482803334488111381061447136722468828851693483696605779853284107715531701343829798970743526939870329042805088941242584393919985607037560693786772944059441189651694029179205248363520136450788190085943449620042340449983352357023987071239172238917508232434754630313242214048784277850851696700152732653710310153487016754350980813568635575816267588495762629116496237199533515920510191771712704341711545549242739927063246693385640327278918659745713167588189861475729488554655963483380622041442607621358871020095370242209048463813101674111155133856536120995212858105592951473722205900563379892994503671639053917468387275006080901189140219931156371882128109735298573674816920321573502201492959855396673453953368370274706393364471260017720314966656551253910987604735848791142719626925498128934759756516344339421674975197064144941344870654961200413624466339597861688062629777316093409951683983597909706191989101675238126935550260850511541421202997571359424370068775159613171070736832287571983203328505047770374664176231308769764188243664731658161152139919383557092175837774797295191070441813085495968972982622436458332054127444234280919505919574989656855851029334118054061702540595463817751095010529050971195490624876569562006182129638146135492892202741706904687292628660567478092809036762020558595582398154328712099243997240320363313633120471721078695645671593459610292328397160358854895336081012110700662682100543231444215402325011881859232642871454061223052473938868082191277147950499090936830639066148864907614506983444643915538233936005510865541301880918490369079310117474449409074750016035118440229274259854186641086709404541417215455178490923262032490298425969418052460882585603460757365210989239865382585417641274885042509349560635970453530230312100681214269559932658940432044978978451919793944730249579083161857114743837023500253284807802363180375811025847033976756574154138142204381516495124949731404193093657311511097180740143591547742791312074011002047571410484963948921481530955278413574249303733263824043053343746305029673093669549844708668985502789779946654072633106191663171096594596171458039689953115848333535290026716206984135887107036041797078767300395362638421730784471910293887130327679741783033941992501290836030582200712505738079132492861278504622792656805602311615699979775626632654669408851763104008298126660204644535360450550038894182497661168042823177141087195242271585560954785164461749959103300767017916460641270923291982221827361353335221615677939083375727024427225362640353978826507770222708330268624357264194317019758679290963790204558281962589025989548724938128718016774588005287112342469392162274064627345760243373888473679991739045654444080655324024080791278086068301225243276743509712644518948659417067323174188369845262891784258246420780810628443060572696076611734001135143275021802351752079891132927983225474144918603757621041903769283581069727194267572433209103373622526429991645570649590355929502872102194378932178170189399384976981510883254998628425541671490595757316132167035090469203303456769540867628144651688818158176279099356970178823944236973065334244004258830838344991539454841273517816477957877574470839383307379050232050528415953619409161957331360446278537578077725944031318636530123155376422620467164512697815103551799325952301563832781594262338720278122571916723358062829081491190352214007740758241159856566659674686667641450861995101076279373616288717018613403924231636995677838007728218065447226807814427285950717887409175066679680321090258621457518855311137235200109558046763491595638500741711582252582178030257611106598461819785901533838025440812746653270501206675487549826140149558396386438692129286895065854179114228960194251778557618774738525784368397223770060158405447668853575131678657073854097153923039257443617118415404614816498723471646371916828481676414558010078146360751069107866819312678778830510753881047332031722080426694902899166598789415009684031470634814218326158144598572335524773053309658937992216161476237637600414911585141160304359368887250597936912680893905038117011582503031314310444651095364919737899604616862282700305553563711410252289982159511730145335025215837395834813070915528824089351029817389297547213736503203165965248980640485627575526111958771327833896891165170167343773186465227463226388721387034682982191911151267138833105510622938735785329732419670648438028793589292677596757799354002156464834832950410932687957955314131849053318820844795984935619016975353684063750800144454099399182622991740151839200307505624024866022920957700975383567228698521873502357328252118738136745052000028463127000653247387298380272208402760129836754741366416417277778628194401536028729067478737046371461281729132726140296418883262493705414031851237870263694211548992610784914546226868465148038395145728471495077976644555844763635350720717144681345931584485504469130648040374910592520014740212984398951293978018561276343716107582135988707115666812172482981792310863645218429680975835217896488266658875799197797460793197306921521462070098335210465368020224419847596883628960952500142819214766006557445696861676032568729291636880045021625461358079844565150087379148044392927155610806968403077652362916852320711823709805960228505444858691316475009259622166958381440161099096884456147132301833474744269895250116300198513775929073817872071302752528026850359275747378296160698988039373058117993320261344827980471819463030405172003650121106098073166231447136368425986667344836625946556729085414407344881687819246180159870182435681212724792364811512523179752594943721552489680978642206959098711535502832962548558959726192851303345803611868758173010373139505913328441552555538697677967221664024702670382205874414370472147963966416189912825079129472130048232204870532184625209039075255355027104082289020904549888351991234363842483053211084719105497681141764339751772010784514127109476380693366318265429387890493277359363637790761274125811302220380767812891057907887576792373174912185182420634209696789341935235558178365232097813259207593863248059766478495123523749795253108101899489282854642877836864582329254317294336369225269476330743313428781850713063276953961048744562513225248281298489016076476655072151640476579246090840424711106523564323102943897060544163857241639727931803425088722393882496984026648195425061909417210839197970788539835617982791934917369244663427907994347039816079425691032947785876790204592198436559321490527695115647038275461626369929681833046164970148326281400658245291035499284688510039309245456157508740070900276330473615590105018984777659904918439649362014977313067924733736575876794498237105457477106533181912929326248579093946930645618161406249337728908243580853620544517693564333633107663502167295252791151459075390677780469590120775566302890526779438000499834107469053534032649236171899250634457794324509264919668355997766339726611706914399334869257030633690333581341622831762973767888828319448282318456040182618025642378485578763423979942230407500992480199624906965689881153044166033758598582392921597778104828986881676948792596544244630780448324385200944692996087892321244210152368095839653299715332666949080878175325768698448155172240234472774496159575485061907356168205927102202647120145924454568216392330166933925331982878916302460281513687370387883329898443737513529875985393845044549894446055192022941331118349669485395712106419981084574601627452671073039164920050354272474943482858700542618186574749546543609066816462181258537107842285577402414642411294785345527490330312479616961781933639495818856990479808993488066909824867656542769133775266538403809224218562592049726206049295399436401030374576249550557236358327490177706312804574327216207672833564863962013228097965312363083316792357280360113044455631034669483921327318418102914698243245549346473241916757221801122516727825972744773692977124837596876563249194740590863588720319358750995977425095382306087635056735053374173298833831649923326682753739789818791036160343129855958032735575542364340256587228741296355486955850676029790477746084950787798958398156839415019379743109040439658084835490190689600349201370710802436773381802481019989796534419008142481336058634342295657441649146912838796123000753534259201569090694318274088498798021386745055523323899305493467470830372980453380157156099824057078977397424494991267982335237115909824714516456400712411291079576238871888258662344576159289208964696552642332399859000587659876604042040987559537757953198153467088331367952449590286893577660554919565081311419178190241965041327127314120294490123405814555029467127990393863399743463052401425893022427444468782297383058956448888950818937317137355820030097789778016120849602366886896884863160320035907222127290399301006519709392452046903080178160506554175540672098536526711458665790868786440351380093475736903705871829022833200175825983223369226513760809100880597078020316429393998242605375798767832562107498332296705800733841604232738299719923303480285640683916546648472267650944776282912776693675428051158158576663264804263779457651566460515094025516479169034082956843195911242011189354380451477498803325323694279031501088750401309221947809156450969943793899677677186047534833608076491057654429608291645265243257279553632075189311982016734646586983965308474256251143229442145654633566059530325446678996436743420331049214889342646033451162157868645234368508919477435111671814595025238551665633921571951716301354925075421521438927315744681016924492603144577111310993223315655301606094905655820591935989717333048254242572112180218351178389446717376938114438201317833737459741415513475352421539491709165489667962970966310744547554417635227419715893455607874261603957019082204146905310427824225165426626060041907321229386647448580533609792416403143093059825655450426312167830019437270571379528503403072777571130556582136329318131223832554015271014376830869792812647042060345412865881046684316786397449996702430045382754282877198056853131695656995105965598729803167482771292387154373257738639524732980312429055927342455937866893940941810275732353658881523690701374571272914547352857695607920149363354878971301013452265465942447258982606746695433645824517327369443647267895440239006745525510958629056941240538861638229894293817866807895008021721269616993034016429218066284704273515495093195153923434860995241218298709142899618494353619559539115522463264046597015864903621058762043794003881185997089554329750192783470215395986865345280383212294312978886683153097370307667356320572108272556667423100499318840458652319202783683020029400047284181647818658962416987571905967694318968574511348392828621550179166116420907964173377287819266136099727521857867114178757521759592584065720557337622137500577948662877374634269678997562967906981506009096505294127120302019211473810828882987806686343278533307096854836759253296482545872756330330058829397734646541566228872423604935328521850012864122848529619356384914628060446375577224581549666152358593345875614771283106814380623011268787831411065396046682924264100757431196961938000735577481333150090205943910018954958328211150055957862277766939396228186493911221145447454648435704168544726116321017920336968181269142005185897208186768695160334142414143240870868559671218948620064210027649590748034845461890294645017964163753817398663391766304880444443097103558511439711341515117061775721097283983501179350166954914412210340674278394315861055910027368509587220357470801868791392269080831028948265915831735564181675354882534851844517680175332223562728974206184919136161134536734649753350243909445998533658688529348494640392221472662110255061110030467244421574861703980001540342414849869210240622170230963523785410768859075206127771205807213965021434036320162510280746348409172904054300840011116471744853164062621709873620724268938139328700269259549279679231056487377785251996755513494075729461643533158815476786001573795388895945277323182590970154477376530963148245041469958985918742368369315874050228417420200508054953268709179641424082348524358485601617823117493464182391803331865235566778285979522185122321171965289993415714588264487981839875464595876160211963323648178820019880816325289276072615850504437776858705165132077559537195218174050832106393461261174014264827688359019154206367004574282518030966126222615106522899091417724962787078734542051809308704472221098497010115452371938260239331084593543738408463451042195153634419898971235570032554885616778911608977608911372749772832480017986006425628154111750950870964112601822373343532678640864271669224980523754834249219852158530303042950785911491653325392875890420790549796895445451861202388216071591661806762206721649266011639934279519350195997368585492123935858801454914213696488223331758542326744478685563901201468350894946988363000318552528585960412286256483616812138935800912255442464769373362668487225715607389349161875321272395074134031095678548849377202635953093335382581765114688988144473161678316070806739681150570205732117978863953318181200999651960284994222551656759145820930005521387354800324238413832747619513400177427696000860216953514295202804681368411756298633208844917593964075789016547366171643038536282611671633056945500121154951627763719323989687203200877444390978192535016523577790359420445552492706419483603174507303507912483553372882085888604827019941461981858107053661050943218619295904135965094836947843354617175702366112828313433833289067456579024827157719924107729157995036825463564159360776637909530298633318337696054062279163367403849687929218735590448341836544911700911816182845408960707165413046287029716771182366737770068141857372726084830291594424566511466385030856195638797287521217703742093398962290062978433184514850696218599025375847483137769245169559488187140808659258863852737339846144303936783680890424695785420691698622938636421909211777971439592836123743927887488415049100088409253995826596445542516975210397795420150222972403978513265463906678361814186543854716409093724138830688683995255736444988781625063958110429613784860628027441586743828758802083985109466818966697270421029196650010064520702943836316794193727224826457108226230442105379006974299041621583063152825820660007376562658171343910709910978529054437935956049951797267224347633439833039724422385232836947549398786082903162086233071960613895280706748574142163674863507558606753811496233454225587675468480206277086320325723120964610231996522954097057184087673402134418480078402668107288957181074949582569322494823876113274164509234457627012436744436721861412613217165970535979688342823515008275321013346790227997038131498271626555116611452456305667743067877355966711632584313242554656678134108766878703565068126579169274601240532908969493215252508055362122719902930146606510198562135315218946755381998732354808862174747754643740955686074021257363208543006020500966788425436887411163206537563941221834137529269866093502076042910325671281666815942888199541474307100487802326731660624783166663087536223141304507931724132264066842985194040913028025593915375135581673217215195511061393096802130210089956996810285387780632299073776658429135438134994553446453398348431917875772664911678116468183295785225757471225554736623274784119981771647050745989617867451451940552027833043005034927147612312317721371047334047768214717165270882504241396284339791664801927864825151996278678920613822885671639758218458168162856214182032555697450583529965680925861729985253296639568101497713413048790963629074098189055268500316610626546491017854538468506486677705872832959929202238130748752663764531612374236413826958791642368816212290336492390214976503111492257686325752188401432266233232212707393179659253429399713424186078639409864807275172605080127270634726423013226435967266112023032885933058523504322004199830682103256065552591303063212753554015083441687659217853429340926778285795083593864233818788771291675483050394092362961318067864686369144721054033009245640412927454364306666829305822111267004154637307844695986559406297032393450471616932515423330677845378732787675004265535725712020966783456495175626995481765473264133388186815047169226113627227305975329817912347012458010836499959399574762395609230886440176067827968713399071908085171931567713839938031893746018286724924751219127455542155891903185330758205528864776506202174354803348482654572850138828009269541447377462132865692220945584921671350058659013356747380190032387203241710971129635212745666507013951018550411033968502869333288194675296412153018571874590697000792508779267148961519859759519420110752314438862312338091286635433392964098232748307079726003720030822922171586570562424707639212895035311601113184437069379766242022235187784276918647245008382501939688372674854410472537606561227626023415015471634168752937974506214526549480344745679252335695095592183457781998630568003522327009366819923120686050488279937164646261402582211077626416948297926121477470490693636685238119588554169268092761706464939411955482070058534474930697024129007843306116042930723488293081276107221675786583942105267611419206384182524412613299176932498764207030813804158330211903166287529984901239780521940759530797724721488052738770757088860570715281592011037148960069458876346043114504480801390971954163073333079717060835505991547968769656748060389893570475431761374872752051389026702599494010423763813329883944844779747655163587238800729252009173674973785944449966126140900289329932417262531993616258465031731332172710498711082694472965051480453571029558248521459108192400922483722040569869026312899235227067596863193264425794847457043208498639747689791807836634602371176136497328869564898097018426494417271233265955813662328086565549712413490900391697840750426885145417124849159718338716482767502614948821886261783052768807157009956931797034412681337950416193399504693753717255139830157734636374553057418157625801509996371700241681926340744615464182456650983187791409752266990679993190570803506406835156709602157352766126685145196277932068386322909390137694774681003675028926750464810937029411515350994211508879126937586498376042586385732238634212900677025997698372177671022806446645046116537482412873601046207415048619061926146440646042268602577800914691008530808063204542255791435193654749447566362641439250210603708299033005282970186530984862807535457688067213788492284986660541951771805139430915441811097864759537182227998985292049719317001670075992169021416258311187872720516064841577990819451888181087848812119688842668178520308045666506063500000616866986087601014756722465137602931315749867349281169581768498789929378881667106527726978061224282746989367315478285616102796976645418051739188748431313342745850844699932092695920246019013837627633552764594111748013690820641529251511690751714769946303433629087299620796330685738311778378203052906162161349773532725700303365646600600754882181160733500911645142773046530641002349253037390250195383164710217600527016326114320320879390553731784317938795465061092548879600947440265427109392679415608723575394077159779363388778710521920812854801470164009252147815509529139123461780313416343441830902048214103392222809077384832088036203272889260832811989992070861970145992532213237135888076711596858492974710456990549931733380402355860867748234324641436076708529845082516167953519340375431091644598325915393222514429644607554505015819107969347934944695685085349457079908916100608633106760614562582813594188528692056344879324678820989232981439159095456856842386158292486236083456753259397647742111077958457813165248057550482646226802032786089763133603175552603119104452915258735004027864237755384298555493923911170668952134960324449844366192714227173615714583920982811262917392753451370031202855898976358420574923822055244105395981055763932933151796868278473090740500391579578502980974483888231039238143237987512978329495579278408138131845293116929049699781698335465329495478042431134209915625207737889228747359067817227628680706231811187211128081648373250103315691777997176663966504024659944851110055113187620784822858418781454179452897353056962076331607927600603174261718693099837824974147179540573770340077720803874418840455036188380408601358889831565655101394939725920525618247071105598795113611057304826428648989289928042395428671332065343353488181101945439573788590572386915291045685288134632155008572856977481113684293195179185985764263690600235844458753150723255731289295248650627395199286610047550117613452412819036611020284942445256903016945591198915600726292803983214549122429542699998826999489727400690521905003164202819849801387846446305288791665053334692560971791665841081615495445875763251559649470296828730576967897140044174157127984571001372980955289369329707964248343486436349521594429151946123916954284432231445163218661639765431792032071675311813015976736664712693229016178765807774348012179443928447580856802911264652390543374341379017949159595851632774551707051526435615150591375979626946089447520906313988246884689905499921837091561799540323594694155336163705868916794685093097867778571268800084327994332227495821212252849326610260670734609548041765180274029473865675709629927096158430294924721139840477641571527443123952121729999769371579093132158465243542737768674615437654735580351138180546336165324802758754420880392347983727331354635713992225856308894009117317798728432687924859732827974865322923051786235272456475720218223719005564811717158736135251032665399858245548146579175424461646860092996322075573640607849239931146460469247842515846762165949624572756066898291137587584477809061398835617701419077989023548076372970669412394768457425158036078867796126870589396485369535174414497651040233051957830608357812290666627564861625859406802655430583108382485114966713442200186430274484096320730775144664299192741799989502171863411569499300329298941185168472864503513570888871278463027951611352630140931110087614024347791265210272510544974942252970075459775724788513281766856049675993947952346806960925042664724846956790796131791085819048698379293812206614012214396493455187489720317271161753788597142807109664433427280551904052323688232392890709704224707693988989496929713729293378231246079887945015260809362009087994579154938988954437525138563776683083763962425022257096325221160291146858670034202455418004912710530332048997201097764305496381866352096280535332540884152956385295010335609108315505283008806772103506434590744099901261366311328020341193684258030911860745212095934423516299109844605351970908427435887196683454822110005702553057367858123941294778684139903586429138070840625698940677915728574481108267665296162035969183115461948563974554838545616097429229525107172867713368032907983159411322375771881644619336981277396107568814294690520333520346907475799290492420617702136854808178146845676498349470751804843021546139047612572129221902535919793660101485306617065011594164484230942023819342724044781986138121165419078703308657764635664739954539589932823387074083187390184633977373692083477383484996390475353237321981722058268259330361665005382615791849859007112448915758820808300538051244897676491773236382067638761660308095429371996388346944998542642295429049445867207847351034998271437513737290397274476119430994427503313221811965962435752653209880133224471618258463609799828748290171259533023930739740528238581927086826323587095247384527557443984433392896213163859150270954313556574657353385961497869645698868653077477188074757800363831247869649735765086400772433855483282984675064328281699864072358644882870301267872086759475279721349037803517863578194339243092122487067231979005464304279839053956740534083437466408899764287581036131650295667691304002459341301344623666987198637965085139265611795794199231011179744326407096227172771476981121065849939054958778010364913382358673720777000392992958073838709569311891121451887361436256895787374817240610708916779588403463001584774375349087832492585880369382077049987088898446009985436902998066640778837993128977750196762083942961021011178519990980133131999081628662591841884666434128394693990453373648329596614291199547502864540893153426779288621985564059381671627270814816063213559355920250620320996391478808567003405671384581424661205204339211724538344297857216579433231190214258642946464292040962588619197184213580619733267709095300504603336894316584419375208034442101127116165028721867925235531530582772713411257281169033010350114874199198912744871014384791177761414164506791266776423395739745880038587468265097488438365080795432383689064896648561866457328566998342684183491909552034654019198706877700534560373209134552024058370473027511927654539473244264845043402781423042000521301349615631881909105238933075137090643136442871435364310918960219746258934727710436436990487816805294804634394729339703008557037045298776880722399284227181392484687386810351956929245818026548258561566887496921399934388054933873178052200367718425179857624928513609946445541788253458012498212014468281308761791964610936826473234739546342303548833018288119912101729747857098781458826190071381834238669456373703753006385208558928837264556071264543685231355209990978247409333111677889462647487553992427448087003791588984649152711501822865079498182544744749305445185996139719867875458242947308175483709905177133208723165479393878109035311967284306642271198764018027448706159689964613555551509756543186017877769840871566769148684524643643824315567021568124663347857017339071173840053658890073885557121100113978397468016008569451168095598049523914861864687068775078687295296566491059088577880572632167560743121787576648530687481370294263749747777169370359995068476278899293388698638701597852087597035542581019056055573150992466625378720467856542310910827117913865457271728752609032380114402331171277648992833279714057822506078232558771217992621408174278222228862812263925272656289167211827099270710375331042831036333985424220753503830224217668556774016644706019397710198619833138621010838652647298271461065317864854842365081262924887071601895534854649939247148333012935097966947283961287411419439925619709375170050510502487119049541754260775370615367301164309033656243983927458066587522972072586969543541105345674350196476612826704652160984605777593055003783818084212433252460973421506748939407174576053266974661987208161598589844773051022105907932990486683199912461885402790909018205833054597071823531045980478687261884320013919902348770764469040718700606196401520562677987639995297372874576658885174054674939834545357687443078949252067194837304090202171394608004108873836902619572238252107033342534454295615498989561755525934739878843788565552118582539894742706841942864851551644854500680026273936226963530386658746018826361592568027449751089286276513962114844389624389522812550847973805495368570164300566964929528741988277614744414397908219565309592856949015395533243442591322761058582301124756734600940559124406369686828050573068926272046326723415893059573468969427927844209198246460105019551853135455921496255233358225536107396217765662202688340233639171501326861712538130357335401040655151358045067155113013271324991283436183583761605103719745087280190816752209506172622237385216722761762675071242769257831866406208856661126060071948104883603942287092393600036570244804896957402707928909762842998431203522529586468767293104682114802462500017000705548718996694752474117521731571118868693973341956742336107954060707324642782363381283346856341688069739980844212565739754543537137003426644158751170129753882594650917819105443701849997757469963638885270335542401820967537953159708130692615436112458765376741941267456131938933248219890481937467982142598580440450874651115829288854260292493057277986080217684820740798182437145654153912348265985574582891627603430308743308007393490108873759129650042049700675492426795885108472370555354164517285154545453590835581032067939613003814985430267331752551907952317380363338328901002927227744185522224533493269878548763823870941385968225921791786759078569438964914663436563544046033664983019390167380245969880178027402472935879287694020111875535838329149323178759808318766429021367866256691011288936754442919981808687011083579652430698547596328041201434589331381220926171010170320347924982094776797766572743395313854128869162971029277943651343568438237473771952018168015465124345244081151238621640502730901814268375489118873548905646848800009470337622384283427051428736390416354623131381691929323031317284062754119744931454215071357583883282196983783004497410495509741986116239264509787918852804641728168310187989046139232470053142740082157715895275052565160862979384178998023265053074334746625774451586131560682380243403703313571363162708122116300215422458065889754987050324588651952392567346825920553436583854867126108706767382832501099264007488524368216270624064573734925763470365774866032423415385436427699518505129849527870787470290236701183311382231750815746767325925430624904043378918474411951144741888563167379248735396969733717895528312305020000347961183994789539105545157062679380942292549374467747777483128448508766680858928981062143371881091273958516891167576945431819003657758616291786875784114786765836633342614284242282632948375430545776655268472065760505234912960782568557952699828339557368830135120491298942795978498495568854561328896263276645716359524464139821243413160445282255999028688237980662656408426913811196403646776562323128968911396052684843611555490796408006009253023421060224508207671727738352871400675120916257358960097406415794342685441327066649152155245918731962553393461291929487907716557723115901580135796271173548356045329852644768205293929477693498276064276084591365921582222695652170074993162716384710359796969337776089000751833700995424043509063385774702100101355249675152083299535744508581383019389720280598310831389962754610886525704288817963061202537611870053404008561088092211967279412397295752584753727163976288060771901126531893241543687095719744339589611575640778693833556670710481668731401105012260274032443929479626183645403522352823302908664214044887846684602652007741862132522243432631561888476629311313043426027628432116599447403441879457526825819335769692536746683500033957521776940873553800492403382290839014683832371791468660223859762553087886846321047810109915461225259705665897293408471833541459039265636637398790253333102999367944034207108426696100046824815028254802279384269768409095984521437461635610577630332907228338836557556032831518499890841773784574219719059555649605408096294372271204104656894109081874611514870880591374024627619651498636105913524136613412418701691361119226585205486326759077567569315846159813725285270296922708418583968598964988762024533309603400017094639296636912029472588389632816561114130433905156237050155798965303605738314159257801963448474297685244303232352493266780516505178564794010615166268752201339122438720111425126378287491745916475911424465249957920188527091303627952198805288546477652146601197450405673150422257283056381601380080900744883004701486137677634920867937226723699242818945570709720890305992516066367886311023246026587881954502504165512593453473980148178718234685737226545352061682704346063381933290666953837245825446232330787207394204811011022450133493688772665789469662811639859089889712898413279433953435976939384504105571115190394032858232553925957306144206548216278508227194346428909839518827601622095578740484307166501126450012836324721858375489880982624370616636978525115974445696594857606574671183661883934308234167918304680795084247996789614384228801014812333220342727698695377688866787659766276425587220328874110350631547265426286773833249100165712683988200961576683823924402690162661128654799036290882030017105943991741136142562757406064665223417325130944328851822220996199068552033370350909231735961956567316798100895997789654244760849216958385749648312557771817372511347736069627080414221316638623567019418121325825574002514728569209250933900361163946712444505451177042520500273634716752111717851671273764822298386718477384112165337569321848954258788623416183450178536633053921136597523415100072713104783472786988388222041279640582046049911181078680863960466174735595946288165154248526603246750730347010864947364136338629947714878821767345984584347323154325494522294870478896564953727125301291604601369713780589341596133329141233959406565028370407832532607269602490145213395027868119089266113784977359889028424194933099832022662490839063723378310846437625788526063738221950967430323103675046662187094836760522273701275264032566855532324387446847152018369421294319159842559515625392739419142423395353463236738523575433610646232261519679631510614362770057712457803018423064348344934487223408643986697179597389181001546452622572595781339023858899443602306500162138913763394801656340400191160052431254801767902225097076118832217252012255169066811806414210844891380305541801216206555117302495199994324886636967237625554336537377748458343483132868983645093966164809686664567653151198393908986494903791114031685523021112328391623186311594539452154875253475405565625460667104298871603667146151090389671749564848314403420629657132477486600050333136353219784880915995809154559982551375745427604187764895052186291208607841617414849535859006906926803190046791339980005285409348981130461616327212730765215540816075288652333580224567265765827603047977138725544163051058550698575055392709071308503209359203206340197512647268850360394324436145527813901924982956696932081441777934937104802888358671715036928004129729764950051028862897599645341716081175371202287151272982879880353814155253889446632293800570186055931449276400087151956356188735719888527463205505807078877847195144660779651230806365995502092008475461404800962314858767535604376373187456846002264268474142760672176606190980527406328903339412174951812528539557885519527344739489679016480788374652070548515268609628486261730089963310002911490542298206218655389269768915029925072350293039442536762255674553466964369725681874387704478418338423125518667300978701015801896814235487550150910803933366385930840720263861833216954383290999146384045307046916342233402950197304235688980356953699799261082304705437367873243775560777477052135453651174222066131826542818456171700079562059886053157547296256034832386558877557608898357902970888699862601600755890732393294462592921868794868783876434974428102948756881126621348320499005514254154985543208820154444292068041491494916434082417477551678290960397341932454145101626937313126385201992480244003604841913338920695175271869902462631768224161766042382341811030477154147584516201850657489819744567081927494165419390627536545103133888657525196979786248976760238397029952551274569574631162053035402076727658800128374337096889765843697889982410613973999916506251695119356707518575885283962121414857374560634272370798754159982151442819357395668626212646668760169869674353773284092031052714320381497439173949887884845511204043997248640287298028976766726714867390355722759627262170772302503168854206000301374353161484584302186697186716910738470815324788444636827568488242482485461992755685220231220468749070766983310167959857477072643412085792966706304402069695081819201517619496438057256387093206753415974436510811912263660981746654057197323952804983794197986784454198973417952168934911030306604523189762425245012490465486526855960817450381120290281408263007964802277681249300351308339868411277752067358651537293455510096917949595169234626712408820671314512592266167092803976445161996110742698661918348461223106470143498549262466560440048374106902472205073796084191612931962974191093037451090288108279406099867201907901527470400178780974910423444306824114414602504820198351696385661935086351843336617545420209740490978592963353398804318169533902161898859729478386586489312478556228603498901403205968256091078409976336813634838722860080118150018052340997578376447380980403935203222431658046918483026128683711628607393103772659505293692644903651022239415373828243172242140123984268712847355372559908605354080110529223349511544869543630827091065271729898539596610479050536415413461130638836893002352965807999903936602183626283743858344065965304677378855789719915362399218414139138785852594014100178610197591037839033269240820496406656529729679217924178089774284090974544172079729230616427730395729591680449566039653626720139405187387492077644175356115996532199083045910816427375845911670513477465237297427112551841667029221644144865461703685853153269768979662098407001112496293853869865174320325423520571126446312554592741088920824395139616373614068867516719302817923099662834921185370687818807149121204659175193361119511512967348368647788573260581397401816240340353927073959045496815934087072990441906411574525113651077625672727246790596748265691266630175117463200485099059378544502755889334800000582156789440832669154157901531836379758187693288256031200721427154378899439543952317725577625968980939688024631251625572599971689684733413628104540391159325089647856463016839269091139984850581820297158624081909409333442355751247030403934764621199915941404970348067400567278021927640739322698729862345061467362763178822188739900015541803473546565534384335670824406419711723105945049813498085427051180452595407639205988563689141747172007111659186129418366089229601734145258749895485620820490024637528634830572753618526755620849424943807734978953523363044042694214144726299255881974051264411235915227495503879821970035213532840151964190877450573920279150156855684404645245267020386194719196413525999223920731942434520565794684992936775999738963128603378390745406656449602176455768624146412261389064192806921241564271650372819983531275159927764875546381806342871451728361781428121827379146667688833841364226108286221453676930016370096113051494980365327088848645489540306135863804513847796453239640975872909240274440339861064539704803185463644788073249054806105643693402704412147863679163359703295622013161067878981321353324913529652348677108475350552407078665739519810941387895085688775429543361923547484260720224463189154230723221992705647008567279311785865496924702036970180327196469244148360687902804173487077991993210535118257390559408061501912257411494613761639605788582843224620109411409680706466243953090292064222028503186024064683837943877020524194313452368699098359965134418201323938270985720039017713103229968869726860175983679964517579206399485501220690755144491086463565788955558612956878699501608613624838685252274229315408785909088178698572597946052496228806354834568093732855176309202929841774252172211385106720737279949244024183812125923819460294960150754286259562355929948010470456920901575092644955984787998603050281216492026735735241789741547188450145035399036134787442656896406805032281079176721997300375809928294150125051693138873191923528528169575121846409603491298662564238314840490660949350823812455637672367515124395994749016474259443261777054808778152742891549153558042350905217691709281033479146330434461803461066946863951976386921541484630031511134930711954327554586948008422086406341204365444907052441907032067849773696544116956276940971753836866588037060669982677127200722407435394902471875092220311823612938413097539324160538161438606115185652961553979297266716281131341759525303522245745623876637963132651608382611965533486680117912665526349124872165073563906203584662660556997752354263251802874769821893294631529919087292600507697608701937822017998617055678156358195577533718520263185625001509713182414431808651191995607182822371625258686675611405809937647976225600796678653221067348416341348295764758392490412333547015590524611231478231468627071889026350901571076830213949188722253688052222794993975133155847432926339569902589445519882418974094474770160360162409976220511538400871225632575879521476163004850382377060267017458304175331032725520076706953822270229517843454172821208759384001810218692874706889526680460483705453209946524043086221101784642988999281095311819104848471212380135508947134520173747416829487100956020415627130537931840007477821216608035953832772129268001820017981397733509430770713930207674966027554693834070277364298942710534629544848561876639408077676688062617220076477205729451732510065027189076971894474976098583531014585545410870404495032902069526878275182278807271111767849865534179499344071148056325338120417929127676551610191790951967669134041484452200016382940820130853231216530712242849562142451079593632883243018202737922411509427942959388757596533160190843803739314849803050071165026875018965450605245399939677232936079592735646952958434198480408426632346144341780450116582300004452577243152980700752081460639554765263147797068533856941016364873593427070272286689303968764080236310061761436770960632597157937460116932805398362661162958937974752406457668045505664141055515101899839676527097093669288146862559725487437305085416294956757863390094011351248913124027075238558197694859105890222276087697936742170864972004529603209134562518688150461992974653590258557507429026153044791416329431862089721118619172505940097505022719516681022326810088224631359413753736183950328488539424103704280164651872938086299826830314413428961428940930026264679821444403859516499687596426185493273374883567472028246292407326853912028321992476049607151837023318572478816660328509267465323718731612140177160524129303731561669875148110573394162771483484322091161224027540446025508440515111799504588268836084763104588332895063369486852783562393840878997495900929312253456507879778112701370431388793153478129726509424246519634695586152838817137381757925636809970180365093048491392822994330404744136426562269109250059456966447672370333363305248540579261865729664894007604626722482709891404512982823256864309088208536998732796250808943035156182870495318191063513552472596513122532195236231092938405384769549674726959811002802983213572013521290325598304720411011414589003707369712272517785440119398619061193807472888557705551248532186632495566475658554554337283117987251449958679485150907073974065088477032948351927771542100113586279071463957415911966459055280195393870121741591375057028322900016996516558938140733499533423868506948930914663826369178321587017838801888099815076051716513659252772886729878510385673674865420504313452525826223691395166796701045002864912164885918398237295203183150726674153303145372349297545314309391759788483667235019034490733461375137938890343145442486245851560016452783505684291312922529993791467160727088993399586581603683357774447731940119678826512013937586252008605779402676702449181279889782723740638899217710465475445043943250869064710513820784057679683989376682228215011795327986394327010585821665870288590171066604561321189666756294609338008877802989114909202226085889005393182714094261263854552467007316697884046612063687455047398965172071230417307123345164145523900419907876503416083283311028984243104357682080075677236046898171851033902399047641673373681213494364176057978769275496544319826887654700729735267593845826805889278340361490495693108011913681518605595005977907996920325115138627960909593578466363723940992415887078571749157422190968002546591379700199693725770794561749709683652410989070800223938201662660662809049794267952922178199374885704940608996022941804032008008575650124078073834403269094561190777054789976365217268338133600365419893220024222541673757665684330983649461817792247055287445523440293735061775837377557751362796659087509809578775257125672743832463468033320549257579473336073165223359460248774724786637025451592881694510791877101301953792000385257369852254080453802935350611609069888573302831363772009704102447856710394590265752881667313010640084362791963457943938642801166326365665644711449434463743356197264510890781297477920214138483674644568054679740633860715164370956478790273580154017211534723608446308157399585677157688813029834409393812344770964187387391434866426865218361535672437639483736300217915801698403643610963228929211163054315427965511582166825384108134236742068117946985388839067402668805406911406639558385984989418231016735991733910771702505321234169792823365824817033107681203079831444697719760792005539702171173276714623902971666450445649625023801446250298735921322553285825781908158670002281042169127159354224823218080583106409167270724459158716672930002799800385086037351964181014387823401801847990867556065446747212140439360538015075529502629310093917918271198385425841558092879257852515038301305301629542939268876747474973820480913522744739427531055280838206242403309278100437139619424183218000112480876733453214156890327257936711994987913112316098154873194750472591579363653733895320437618782979857904783000807869409588333730160290947120721566878153615403307692653990074879414883123007869480614778663596324965655422956846505490719314140872625529496484155727243387127830881614769886389847980668652539202317680320482021206687128001775263937925928501950795820863389642441928654064871276302486267052574838732085923341940488974682540000324820119573726833040980864258844515977042815817184089042940216271364277469636107997440357513720880198459404660358734089957189757509844646634018304596041288786484492847500472092983353223239150685749340305341104292586234514305066985938399010888126480558107837053416342388860674998420403187228417833703610813711447177429262664310897316627996318765218642816874092772454000963189751853412272361790546648892792759759700259482789736370385320153915790103099660699324381391885565687384570509731077943442091513478703578130895444554667544212550707887203856552836220976486220880189174666165322294416497308365488632731848798624201639284002730848853113509964090250413104155111642846984645197214634402710041430925320073494867579530199109246684152165797395032108828465854213359639026075622159888687671434687804489051857362134447571722422257336708330196221887483709495786997521090276691928807247252868091892667642650241971816530987760168076774100201093070471779315146766323412408814081809538112229838626201726850086699871187309266247434602158259516453455642108228275503413555690732595328631344742540092416074408121282585504543272817206657834092558118854925789074026477537627687467432663010425739853491059906977752188531890771910416108038768232652217356464575943877841539313277337031444720764772592299905800037785137089156477305447140235617388820714797449597511479535640075877366526646718277559899191093343612579507437444643148393565722083034390600926107495228436524322681276994038251005176931874239622071380976081956567748707619586833371264195920444982118496515049483265083085639155198222253286152575111777378943027651057210293066922634412984805112475898338437256559678084499758190793919542797105910639974875302151542139420729592973905942958015378964242514479086540323642707496870981605482356527613397906382119414352661984545801419769795099419443967251443695335287197824921009429856469442568897779634892001361736327707820215311083083049444073239814246858234106611625618610632398791810318793683386276083241406053680243564381496881223913371424826618504897370505285581927697117770297342002487058743542056444293310967747547103148987578409517499076311033862221430655273071687846505506367691541158908888806917975854227709709913336232765856089185366198009520466083616128051933002445761878923524238742499448353145605656308259620244813350909525377124579837281001755112362093627762998437935632419926939961530877117841861647122727490626578899612435127483317258146297546050556796936022192444317230832165823679358727265922938589746833492980814635819686547546917609781549447298597575643320931339727510127710482349465972495234762337844993468696118745663673605726133076258686659642303191232742737027226437169653734655334596591649734214675080805816777052115586166477527785390645464278427207192288634422605547498704362106683870301859182981352180857713803659891646663307526492797743799273216511881701785574231423655073878286581943293729038033707690860215320777628212553238843804841051614921720076757130400189885662476688863506183956117237064949181767639450722817710225726125872291055652046469434579784018733916165974048208460136808789106443510870687410350460111205964059220076497878349651753681791721579949419124936709093288352048324515912945301478438721342523869131829740352452876493815976403986867679105748959440128681301075410330388239339499238979628947728797870577348327594067952266804258393990595120494162577505830315203018424779532665371220270025381033011771628352180804900291738123850113527975887430518486310902420276294759205956123759605282266769114759898291471383627654253605276870855627320118231374731816222720390280745158710929478288966305540658019691132714003260051273431915579766008685369369161516805590744717330004336206559250450668911082256920093102122138485245466738922667465363258374062046317243718415706153199418349591111400485737550427958945806020089337070103431621268980126796821709753522068911034160239442030334385825047851386095481035790738282360877795168789234242177109324795585697425822244169091696581588008556100426813501145099869183348953638703683126447118662737229346766393075062562131716275995807711386759249846869023326459608565108474316008194080743101995617784758851964517137836196434227716086500214163080062675101837434076177578457100822906312779214190890907015653441955867026639014605511184726549585009998276650811460258259326547665615054807519307687615550146344281168938513235110004759423188834458750007567486607694240542988407594511798944391668413960589984293712432604040991279993798385991439363349024717897956744292155053692910961067880792238803338982409285586167086238422989524723917650272700001754812742100147756141125256003496994268408831010166305108963041466357882540424579404263406434888731856668651706705778213139324973536468840029868605136215857393303646462185109148190165683454393041038314345967911358502770966096520934085872909000076897744090577648178198986601243775915481520363665777765625217753872284805705101500869608828620324231562806492285934045831013456294681283875055845534576790394812039360150401083846125820897109090543753450158918622281357750950648694303090308725906729853159881865134781604212777735550175291297549866160222201837272851626987296197458276596934657947547247171229133826805131334434532979668112834394472384788049972402446627202453477078606785982919803816915818752071186699192853834754550879045850470253557272453347549313421690256268664771484071998457922642777707895428115294213856898628124897875542301269349912801915974818391505182549050312703498197657886462317461331509042165973493959579805418267472149227241195129603315124720954252354342625620363973401069209579327161378641422095280954113056250149811415697645567801179164170121405997098960995750273295643379426925442705691878457710014274551355515874418574924517512852638686300303563535453796586143713020004451784044997774709155050763184743965054837810047387032879621581996587505843738784817441557002750089794710491959285326149679667907531877397160174166018936670031315664839750413256441242378273774473625469795039682180828363000441647778561532744150099636696640382004572859306953381265987311505403342941092684010892288315717645397755806474620534762314866212175755964319546256786656583410789574958243293355286113877253276323952752613408306150913114702159938966185177577306879194541564012325277525089893203307485242438359974241796979907446584841822459129779879744086619975920936181078786978578486266163323983460909362521169082600825673954022547513977435611576544803975258382424163558782161730881159972584121631909276896043955557777094297125349511879698066217171305757891491704927922539585215189893020852811610585715148462772085262077786272981690467659928930308550160698960096348713886462755921990879791195906833149493921592974285785078927879957788280707050164032512430521300811906924057567088379994032799408162308721213598230023611780340612212345065958164336072860090943530169077818062290070456492273825782539694429055689758063331658634402806984460955195035222957794313896531642644180625056974212283817262568627781377075404431448160628466747501922404086138418289710815767015704086981029665716143962692686725474608161482184084888038281542760856073994224383746703666949590863999885640090387185480504678598347618510433717397766908829002502034696944044930797420543176774127926919562890121974931087836345069684636161917928847752895161852388284022887382419379533420828913921082306995547438188561245288656301275995813148949436482742586677106297067658515693071874279372308906711514464925374539985764358251386410625344729416040414786920400786637220727764520763454643958448795125061186120319009215556985146046835111618156175005691338669771457438946592654373195847828444752435076423454452134253442693924826887762912342888437307599476913768583973135398899144311211780006868205234055285769681338994391331243414063072514183698145224188179482118990153781955086729781803112976874532496418491556652264491921862708693981124674300717884624068842931938371663948630795805185070584730857501357008739534001768709967535886384732713726501007001272697428216533427150569726248064992280306436831878413078856103515745054812112669857132983648407989301908680797853431396438299935441112158797253642485662945914210969081256131244967522334652948961891163225239715272992200796510981052632308133373943778408936163025909752879495777880731500278332397016430951599105130559802134309873914982619951732653713285588594616544436715003490267613303216905793418619123962873039266898375809680188114718545104948346960561779771004614520045660464545246063851843500930363161461090016427971840458078546600869515430560598914955953956140343025874193450158779867411556940077668449748857508323942327335695560527555206389060964895956994330558483858776044576451082572373839188361033308236014478989274566399667722928757226937271410513824076674709017495091357478562592661555361794824279594099501204467289114048744099849415605305829252284234171910905783709568835207586501777726866797153707730246357476690513676825294606884922211612617667748587645268044766033783574523902627435206321229697471887385564072090368984978101017668208112449383444101032143410591409021979193754464153120340800248037640048138292432695108411633440791912905081802777838698433422265692702556871796180499193144132789121945884049428419858981898617215020164632562092493804423578656596991434807915065083718590137220580318466224173119600287303945681407264442467990700037846890080089122441146854739897842596149123501296193991729586089860722543370981227014198381316697247375699139138537571817421899722712283364701050694909266409458625922649655315264341547137275267742083457549016659441859748201436026259667102916758818024514889467020051909850301981965311400700550125402500195617591388801668833957520891248363766004815619521633561094975262770520844758090318597329486160009363979025073485624006580501005497058760202398709409290732414992461799088307889182549501869438578024027011882433988482558988936675154999992577964264792074495341990520623848495652594404117319779320232763331016624051799963496965498434438590807942918704576356722943485599074589279022121269850980618336272775231428826011725490784495599883399145927799401254642767541890136866852628374838312177402597961063330210965945825404829842328126933072542840314103887159761810431250414186179519206356849418070352860195465565075800331635489409066618298830207498664199320790550270274374095084753049167020085188566458016563703445075103332896107537751222162633169293050321910081319972558918536424295764876807938687112102535525795635678568973638221964727454028928476406790941129646887378043513772349550036392706368187463411052283045680966716250840686005020894938616624623076144502102242309202676546434115508342754222918965581127088680798406084342880460142755478131807311910004053006869381904230637792813134989237844684456514635493179483319770694697994154710676008627830984380370330702515013955687638589910270350909650199726803369025540792603714872615317814382256489424950455509197452270395527020368634712353011841237596831009912330172874762748516870333663833608583461360147397770460425855819329825267568841510667723803984957801849475032009177795860157454390926184290135590858606903468961877863915743735240832893539144027698247805169499175808366024721712122034663546602474231307516086661556395361187177620943515360316209542383453164974812536056282835188872583833615626277451165124403573189259416293064584322828539591669426855256965072096687026758806664529637397845487072231097204155022984221469095245127868589184791040717570594315292320522277329093075469288812386606101735147414969794339674521713607889327206766020493336177651752141107031916045438663456552786576165036064682926197605379340543180969339877697605106224320554896830213943498549596750687915042396130835353932324953115674890403680808387750884696853305470392136003612664756983536951373630946778050354466463111747493772394250506874901048238472856650109314979675337617062823940911363716836042290413625610333193695339182789270448351442920026216277325359435083504920592981910425251587666004361755444642072746839025140972741337656954227968542715895981288957676698604262465919264056999951887536763583807474328796228578684839009051800720074749458391507976422297172347330761213021693267732579493499364040181034211930693334560639231833381090167508714398435872023768461014113129384633063851083035682077521967866403376047406822982645689966858912522670739635101423888659163844645625296492261727923887254376696978530777115535236667663709643762141875342207793764992854361166854366418260559616087132795887156910822146179087654423908996372167502525866794828884764152799301480171479244251914832472714080755732439978546606168081939964401015765515285197769525768443898888524759828335621794630418077552335927288744623413400231089076430391592226111056251172688833888659530935003913118006213941974806452108136073088308850832341952510873673270052420235824626891514734694762137493396985370277347254088379759122426073346504062417456192650334284453892644825650257397224322179144041213507384482378535192574004281789464561916626917355943273685668239852200210189660587218801478856006327033252599612270974337468747053188869877622877573466935356126573692159172827296179310929185473980006657371282601196617493541825475812233297993683423298345248869026348379688549225247472668605116720415615814761381709039024031442091771842930378515961930201642801289776396903847222179384637378210405856039026063247010852545331691315625278823294442131107697579687450786223428260511290495011280179513604264455816474700582413097501956228457568951389396804898422293411028159165663267763339384685472125156144762560733989920879243730313229384851606029078237489138955872346495515369594120584962258696966965903006776766478929787245088381662052349602493200849400452011837793511464858426779524488973620711852878270815244650705321421911950090652050549292490456111589628316309638880422703080810376430525496727583310176334177522608581106632434457771937566484212564233092340021979868232621589854233987062170318305002573753033025027781062562490027944371566900625182234064344851996218445765486755725536363666957653359926762430998596478082953801490792587647906611012505762596891610304289976929541068117837393968409532834993784680671581648489434599163321542097233245569795223554337793182348501774148611810579599559424311010320723587771172363501974430926965011486246038957692723774140910158868935968610665612986938775809155086967627844239673214413502055817946509261003720058257575740139657325227437762327360964893517246237603195924556826989024455564226485261644064719564036854927365873166918703117068240890709032919962720397173511429975186131366117904334495817372019558084097496063127369603736767230345861789455597634597740525020759137815429283049011508871480399748527410866617684220889847511219598534099448466042521086308862132573656051581877339152463571221497215691548892748159704096935784654022809465675653493932154934677710597122959448819619237266688242747704943421673103974315384203303031034394096457096572623321838778401707062313617226118607982524904133235718427658824730527441009220737667127300531063582359845667814251152845984423040845878744531332063431393208753297138846556601039728179828226909117282172862529283731263392478852132795697391350777127316016160166825924650473523930223751426850727497467967936158496280999230481469725472715470539349931301800712509887907067089656478339400113919853171377070304718693448061236307143108048885565599764662457464625021555469569123435961571108405137919937464156003650255391770912087647381577100059735400699165993241604703264762431760301353678565223409958474182499079607491184469715144088599471605347811081698312946779349301916270364489698638145401185075043098959182431694769347761920300559046596930707978405034266150090970025198869775687577248355695687244623050791397821625296306429644412650560832377455150434458334037596781114541535732347485839665424420101786618435391341446044936783386526578608631664150678677413552949077436289412117121126798116499156833744916184291751226529554216505011692083727201579961714055548902287556580753028700743610651737169141032722016274179179380233654724594885284090956295308585088600042142249266124852354208969162674721513068341827612586443691763288392256860388060089635456407688834360709277579677984106528357636908605884028596124111511347267898654682625842092231685179881008584106812145529770011234048355143798051180958174957132521550615398226230291662092101555100606081819365583332668160758062367181462745631421616845422827535053115349841136496850937656317247712566347938986544839977852089214687511125606845391483218388941168499899692590336842882500428985931183808273156013975057794357019294620301746471700216264961191926286493683259817444603613399467090700625087234287989926028813158366783870036514883916111776851171149726977787754524492818294736564315468974564360210353529874098818410399981661020494912444046468034343239392256240678864694327155722967159430765400107299241244873486772593641285880850323845126537674160132720778321516474929374889494669840754870678417489726900179423620801320515983674712781453759705555209393804054648917070844101160290232948028155768776130220364034891525484955379537852176049000909993814571520369199214700074110063013799180224326352573142850322939295406474148454767121803881057213201034235031674132292266574278825228846562400410432959905334307776062422341243312405842059922833726062180771845309653023652322284437996365650636425227148829188579852660108101705518210229067689525245722695653003201231344503410747507628972608347565478317355592675228351673038507583142520610628710744777431457204770554008133593874810154280599508309655025421348804665411357276979566721412872177329243653768261310185128931299274128273822029797367552758447706589293913040662256479661438052626586860734862518253139948590491556132193521520873095432323386225192878267478248909780302425874855878610825247122323188953829816686781198748067773434544735706436474504730221182231537515577906685952389939712343591337771045848139145214491853866941542836165341891476333204462010612322605086279170306898230528383758446220302698022750852190565797167165429195665714225667750645082459395157454789102225266793571252921275050993251507875527074209437725662262596425568456643329271351519522674229483656672852208856786606349902366488033014717650205201933231859642018078530023588539535997861264867615745131798921419595896777696136866550438367357570657494459293900740378617260731909085877078893117386456031758611562869230256521045963714718074606595304612070874156726351339868758467248453609938813146195236841992717497459332543159518549809518128547135125565956500368080184063798478892532672542165959828318765505242934047087835209027143864650123667563356368360792894551327846234625570540418740446945303550742154183833480537791922366815926674426523877758760518094799235201881326603422271883198489203724322585524930927689314025811627186534085423375533713301932337222536208917692855885427245522350692321474444767796471275598221768441149089543691192451317363341156031328223134457464389808234530103111650982324060513569412904820074192380513792185362918982997099453949238811249079579465586107356886701631325290020327208111594390834880873966287845073614679736390649135776884940436382537210788120551784351016441475870159928898035083517922189870692841088718458731967977225727248657501597796430437067858061145651246124846554159006896089103232460675256792778802900896676812189416279558398466818863894757849748985558276513693603710442155478115355221436134316403190343276575452104264107909406872367563730924388233732915376128669538656084575024966813712231941621747391678194464701901118015039373866723133280959265361398296215518096410313986637562079701134539715109337102982419323667603816512769528924853525456538708263584198169848857405025167502104707914071416081282557012910145467111719024789020994290903571751533328175445930135741313823845540887897934335024140474128191531378159529657363576999936288396896858449660704569986559741891637893605680652779834802194096496249637526875663870093201260691018792961064565320630752129364934056294753615640556454032090508964986398502797005725245223377764455728964213388005220672280667766620220930572117193710714880045419222272138483565626712691407248871757481636184272464973025110225233766638084904757698032990342909221820932475474875937883277028568255739089290640477053827021548219418413970959378307085176827263275213986808996932197259640569692746862696679106132168863370046570417576432627180433148714457926508540866548774916442098804094283636097880274546957199795650424585453452726879928505387275713806137176884867477515540471966733274478558457181686197066361826720445361835203863580801729261309690649909274007801739143477158298109361493053718335333178021794834985353838983767899285926296147688395245950345210423168547345916655332167295784657200610852666293665282815069240984425604984628729639052503521126114401779791080941291525305665298637649744977995116804811175148917082621568189814475557112248024130447218339889714675404188210206295386373336401785504670282064937266875265288348534126167547612020896135334140607532356217666877417888003311122763536186187459747172353293837856795829559717841167061911835066911252140741826529103419677560778906137201094560307172982078573945135655453569322510957099172105160451930267890794737816376460361669902586383492252585330189198128943965338920884544296638347276566866934020358575997642353320942088303975048290059249620788977240189188808648285576552824305246558506606210201753978193887275243687676000935373525645281852942222009601041489673207514969870078041637733602868811468327749275798149752503178310207446263018986718551932644026652659457998670419674270416582339035110128810714593730068373370387014548307493794787576778111244313985128698488984216638840918771117603584052201026579792275863777994954517277605296546250453115921274090308885258307470337969635750682937855604960217960311910189531360083872472983907675148873878767320137648667675918178493825087722759695568994966297827935907069751939590278867758332708107964678266667330876211114147025677583878894946602128084823514110792226235704184062748804147813643574444717509829581464467477873544499993767916037288141070471217222884848884421661069924308732730087746732693316627372201182314279315124929463538924447042054598816238063587274757858399894447351064525948000323698900791637611280430963384640623053515855323631139323394720893421982326747922025157962760544408723353180864731604302647137580725317290378770805144638797825501996806301999828285779111002497285251498219991056155167590456681111713658881559664330845587016910842160072461550225527766346860315459415079532318867455021126507150656475561979170693932859246394886941660747292276871246991070188783416746513749686651345564000296248961307253451409585457379447766237410264990478896181378807644568702760329364104662135915420038261951052791679188095952606056017283919040068259740706761872999066846388647817553399109745007964337385416639781401808408270593067176613857862862138739389216697038357386067872613419862364620851172215639315937309085436784126481529590224047328674182819220618322048775477991125874516368552424467489340944893740396886374607017179633423690540327283271882050424330438255373406424120215789427450170777673526870687420666491922420756997216341009739223318842986293226675288703342761978489250969118413434940162782955544686025929620544737733123653741479328466930165978924854061387644952087134254234915561728216990421276865784978021194665016484329780627875189131534358931348369506011084385600451594550017740299290835993391555246419252190047183778505182687367763783952031831326651880193976601150155802230966186415304650504401615110091208453201684628711752277302565848583828594815562174293842025206536538280251140331763607731129442975377097741212777419761299421550115566103942759302950886147705061414147483147456922434731414669950545638656227777259848226994642087949854915727653729905252378050265464818855105926424321948932335502519037767484627960106448323256773267563144440158843714449758968587407136332102776605068701632271474650500740593739191445117196770554810902737925305543562005616237395778808002428018781475760271326643777572348250744408186874134137591373689258654178663804835754073629485626083572554455270141862639399601701988732688905540485534213058585830894658101815590236380766967374198915418571797688764075591786311631444555691739277767689502526089621540908622841972626534851194758684113713168769037245408658060640788215050419275952312645655588741367564332991675807169753290650883064574208082985375282117830969547746911028289681531627929952139694338722532961699374275046326474042777200140038109656314285992540632085034687893145027680749194536835848462653885667746683625293997658500174214409301561380507857462700870876186279339302018822519507887902026438890723953410361017270526363201427875515737283679744516538413135613013293703578285884046736973683442577538869636497936471777683437166437551946951077796097846209540547078025444064128195500341309496759258811976282742223344776103698332125471282670210543950568564230748104431349838989440024376105254290082811462949063271022828272280023282447205718813459927401804611647341521945274930525822425607450323845068101649843574206357345879932130253840055249906008233829599884319656900619155032693139241337031514510954539937083119862613498436994371167178046057537318170396368883939441593201466646146410853490415672223395015982408049162467834912174912631106079590320282618599801869805880154044201793453605065266757066399543668937146396840353126671643470539879656118040166557886895970898413872814980378113816766388908849597943291425047063031269103881295285877308804813775150709514636181535059016504996511087834163820535720727897491139931906924445704727911085363669947986514293373432308797443430360665421133139431955421500564764844913827493302089998703548475342770483922811340265557422920161497111134058020457322828252554349226391790591272713986680135755849166204607145227335522000827952665878005077939204576256833866363871339973810380762964680914687841795162382593836436337428201287728837666123750630457402921969177109496796473568869504944245088358463871912268754575633904445703110478442577103318210494112547720187684527383945584524932377515796162626018661373079861022149773830489844283770757776896945793988355318596241238006644608376130202139970170106960241629424655016202966649110509307989940011034443447284131999765439008893183202382910745408481339879234147819278447730826629069468604489380853492348157371205661711606212770799157227219270030746430659225096324779682528610892308310002460613837069191304344756664344429824567668858458948605333051877615658656170159276552386415136336554789715081552317988592454186647120479726377524997759227755747476191338131587004327211378896501878592027611917565674550981387650392206460042737688910751378188296217014687632028052460272063232435265933106428706611582985513168640808535342822512243061862798600492089166421166580310462531360115132603241652770501529884300468646160668196521949799442835140732253939997383890556861848479695511121372054768740461782755858829465049038168555426833183780968627975535125265913195239018900361916338236988105598000208247869451531694475551862064721161948212195540980689662650555506988938365796929621681110096397539507395463693267833203063612307568406704518597878512783531186178646998445399781403327453959732809313827609718164318670433544840839293918002050534969045534326009665747252269392458592193892142123781260786692530686729540095798487841138630188923613313016082518958713443248294135742056948961142325834570261286724720552804120812120232707046672467938394967982879314881673902457238857945904386165934473967028464505799002565658061116435155950229810637672802399839399753421696109061346818029770810060137043121332645996716182891829961391732085629877880802025429416874463727351598288708905369939836985354308278392131926916607271871947674390683286566272605998538667721714712933002542963152897941902850383583110473989968741039867106657089773985670485891141864364040860346769992759293442237970088002738520502304592186289979704000920461266597932128763407684674862297003189760060095054866706537888436028486412080587805748541779904375925158327193858561623193061916550860099565953987611420808072829955270408012280684767317891758569950693029736826258537299540555274919076326427695756404519388506141773942188526057480151464555217431102141491183293660319085458641193390550782250903605441693254798855956685412730949891797943820444505492062597757855718604284726016092956696956257867222315458986320209244056078138113084594394736458345315713018003194624699282004665533750414527159262996952130331233745467332556468586025418198513586561988774130219440655368058674991022788097701084748207758321093467298193216257417922817600896393943175012904653981136303825563290582859288355683513555968889125867672906413687513464741400205747348963327988617995280826844256213811356514821908158815821271461206304574692819248844181202998279688534865100093318568884687095032926756444124359422899331319744478631642511587915551088930002345713137075106026833847398873490430699613850983865521879675589712528070174893257635641927234514704903468068206740909680314911700652909575432197120901215327819267260435968712465416979247573742324208988683885250895507730583343497970357227267373081275980669886871939031234046806194370765604778008143961988902538127108131799567925395983426180819042647032466238800272649593932742977817731992740335997384937420613180772115018146717809682960564465520495463696451092531118624807336850455113838554217319099848025082703754109356388592350424579671570107669226190894576780034932514963083460642413968933789146867299969530450178467704660744216805094116695968411343866336596818169680292182965960655313050424204826611362283482618209314338822866850760504705550656292834411500234844493791050689225424839985289819829668661155801222549412549355241147785467947192843321462180865437367681930335189765748931868153561291788755959751898828029448256784898120156389433534083496564633934197453741223189631717916288237346303309981515692153376329382190010010074384957069367026660003670422219088495602064421611044288228071118054291713145853732155454216251401801258368424543086776676932980701171454835471496710888006033043255294658591386216900720028127046450431267598150564219148239351383381382906924461996770223936046237772616991151653705130975215894876034827038815298739098138402677573226893530300048096013270781343557289480751142110814670323225809187332489450076789808479035819099165388434454459134424645540578882521960894292460397356989701156024538580262621327544883000479762650565311460774969233229387010814990516259528678624995691839500072550706674182174519025120716727373261194655470413650986936292107860419946163048493813484907713062131079439139652410756214647965763444582959262516423845990413405740135438857826033956957841790379069474797770683135149068429621313893858226906285432883667626868566095162893572028853816551655881567195221603019718028456263031618740838896973695263552070762679399035497873973596296234591377714856461945545672229863955416048842842786085281609972540302234592558541495243161523841981095940373459727627781854012210065941295400267681319393263172619394382303019586231369926629422016979807263434677300948673837089573850644708694559366948208211235843035659406211716713807649847618491912251881342844562237913884915276826572205474373864907990875824056742608237363356575546186478243778421650060117360366938418060909169055917227542894368914378556859782010395305443353348426931379939876383346458170938065739971044307218012598597746489482187859027305242367705308933764096903354182622757399240481475205137817024250605737799739192538555569729251055112688475059350933256336692667724351431121578629755701526171437252905548964685614474860459490634834250723301808988164651335492768104679108670764803376370352155118406786619073217514672793726739551850721022965709052382689671522693793873390468774508044614898097290355349122050591934926354656811460468409067017570187308441520965766956071034137411340098909630779890531715822337062876792256744002054129116733845488067997568673766139638204081607895721280420264106475011493817763456394320744790696382411442389510908747361517929809334121666401309880722552862553581691611337301483186938011387273058132754596764350306171171303469623974327314662167126890614757911509215821814705027779285887312423688776787992359728450242572326508950074240530541393604080151504588591618439121296624957193212005930307890331586565963626556358471293307668145820152663152545749581674294502009580325983605185983650202303490508462633759252712701842948493213070287996325891472776756889436127524175587769079945356647146920277067962106746522660778257515868033895076488023408715591975441536394299346000852521744290334989356922677451827508607004139485002546045342683869010092103497010654735930714866456636858353923235268807952251004946471181779229895522263068100395882789686546001046236345425977840984678461081618134638710096293734999298394693272658833581399389811195556360678156674493195613164065513046024579440855647686279873238307464466349415928398157647707042547627543249641552424454923065783819806802271724249989806520876057497791680018356857082938877286616794657912180669810647727537648415148035644404914498553217875147275528463173178005525522444265399811323723828335387207514236239568578024245266307515215233971352575232205459481879717540964498436827944360526840804879315194697510656929571275176478210745491269612395865912327171575895030187097445918439100708844593713576744884782792173051411549705800092739902182976953929645833331292161357310332847716471672161516034110076472488678621070803070527186000150607586510486356190981920774291720353151822430440808577068169040968555346468420346853705200233476886043405901345697851997526243476834188890748046672744592583230269836213480935916261294031272274620822897470352568799529319213337069684445666513262800303363992848270767490020168897115505247851508076223839518543998106497263733476478542298727507775054382253159649138382226300599681641280558053798523931309283753465130131975503003226974391789405041894224524944009405819202644167967493626239080435865528755227763161738120454400187148171176932162496331952950967158752676669607374079399764821647324994815945442773295490394502163712013245701125416716493939846970470969671156892010439939137148203207170943611969325243449298732079794438875022265344110059371894415808508419140754253390792530680345116536021696307505690677066429942622694368876169899612270675241495655118292166113632218335883781337992713444411789551043983551476629608075904836727577152064549265692386060726398063617635879054762407646158836790052065620202218595489652454251480706171759743716289597196555165785856625359226393989894182394012652493320391168971425448896015234838895777794998520185848930418514772376900635212139746874972887207111213956568003481876963091292508647641986285458580436806153983793577129277937236104561286715282044185048914192517230860758732573330009115996806373102810524350718262108887633505393085491979273714343194526051618950384608630392776149909387237485768906134538174176691186444220631159242679997385794242901609486206595004195195747036589990211110018355307409272334919031548078143778887388409291545851276853816449038036042336366694678106524375332120078150854918724467242599367367694340018140621682623182033453460022126086374108650730088490145540462492958824722256382492710874877767510487531380622117145277691496619149494579029144844953410821250325793868782082661193058440277684370180550193820936182285187997187342795937309051602275036841832053391063560012831986384223249323033352770841741675419460388116795758792873269031577137035306487465102467023536111605875032817788339570002734808216602512475253532854625401499991927266019931396068245150439098021468177567741464657393146745640625136027385966643671760851213504764528697727358851584775642995625151701310211935181312316781994667489977773555627329703144177948425016272873446111143801508716292678846847743890039721835315941950838764746561027031088801799052990965766436226524254218736084185628976659950164370825712066833243722894347093214946643471952068621004344914701684796067167229716298556856838001820789363327222150223137041555927151956877378059272476329555204283375558776518575105497773340965620693428587377309163371870801074074399766315833504561231842323506181410958687103822961087034586978242881660311059370112471412060171541370706775518968504879078698295153942940114053793824264197960968337665403743516052153779601659387622200613637381452294926259741290931272371755349440584963464788042269716013441969077080494071558133512060673876839193487352192533035792640339814396489459960809068325775646135438640997674918460970865819991047707461346779966016308184292391597567078996717537973075631583753194085372978129199775646306836055930884403886077579730889035094919337415175609883880572515711707209451432018093745425883096569523505155120212097378956047462734130582526488995918168060413701653668986868732265759398991137504004401698897087043693325092089645588942613835059987252631945728030199858910330701735352355333408665711230022699717071891901936986173469975528951910160841231909388038442815453685547452548623099897156639948835867988968586621977889348753864793483253144341630365265917059872420663709291230283108136026042986715452370322543068258002571955934598978341383099160136649879192788407404871473944422179089347878571897357686702351175174793907514032307237267738122825264856868140473593820600371226891786981043018304755059168898134828530622032186192103948578225997733373340280660463650383128508454797049647128849653146771804247340321003406922178260383182131545738338395232007832417645965067732861425886900206485884046639669636538805810922182944902280459641903653598457340100062168645958186004442493194878228701487951544752952046204150276722361300015358747083821082900575082390496814897290025692377584561325948747497175636835125298698813917772385831926808940386314971048941890755459303459798614652310794868271081896547357823036776597753432488039086390575113847277573551167800437714716528920218955089197774568345505682239841563779818062118111459009997331886480624197488536733117078364393859170283620207804008149762271554922069599202240262766113500910757506400361882265699280564424062744993057489601924254477763264217504039551023725342000734829732267362757662193328742226542409098220785108211260804043802049923078749826336273724192535850556841911001936048041293350641253798230049984459530038384877947735603721958483982120578383528080456992691141664635051762319696097830878070547476607129776963872077521600084074960326089787693391709230863410738887652046835521922031247101056731601988785244513332466400987656311902946677077755608723796671761671002881327095689959808642276863911515458713648508741813093157627258518870538685724177492092980415402760746185363340381565718834249920771134211288794767334729569479267596361972650935038916160897845404452599889391175073086898611372951665137304284888646750716474789934494683843327501312876608797129635470612105925852087652536512261171900753865967839859222295734391400154838238884588303212659867082575365445451017584646704987882473411088325637969567196962971396354419146006694348246572434771428726731839526589447375504182938468375008389227468146125315408789884654457355205388093139213613352476566855301969885881509341482568811852866589040227040985458276300716897447074491846653757285731757478677105608862606323689703525776497108845728491306500413361080865207727515013226808380039124544048009783615794185705161505835087387265258496712356386989805933283370411961411094351938880230573659391626670301144766865229560712634358833766208688765867551259918419523228057514459983658461816646898589193286084974600648694688915187784715223657196128099608720286243333915463505523193463608276886523596184013570547261089954794291276088424847700270620132141696170520159156709366729352549480400671451328155623395575454774638450125582347097514217767000666363237258936299142211398641328905364736300449735922408890180113225417138702224141496630460015568153108263331166907594801662911298379840259643298226019458484983739263119008268136920141949116898071068312229619177375985767668150166227354287179748342325818861139345041113312301518210934906331645533828490502534371926744941319664681040613904569574382936270463015402013158003174345328632513400400186063099800762617898785438132479765751763172616190847316538750655872263209037649532990821447530924822680206990804022173375355200048385664622793853503217512113447954853805857497214269105395223400649233124810194655527256677049908916189388986586972452175079077284634535687664295050953450648953258761356303777887293462626354945733284655746917267843288794831324256581253444115105621893162710013280522784351249937328677068059954709871275891053391723158034925862800220395250319502343667555096386314143108108152547741757305114545248950339524628683341167548092651862507848275870103981871487921827112796897411839197290852415908992118824752273258337682690100444866610330448651578669346886572752605672942636739659726572743054157025679883614343468832268762166371729567149831242100730826649167629276023764382505965392466014832637094604892373814758251718235087829848448037794280637811354530072502847042072795089867984827437720120645126295846797744056933379536220781430812922605671928356375580012901779621291672810882481206014029581137551538366478362303719097954007034019960568407232637862244448371899873106003678694429368607842948542179659936203581390476054115823887859904108017932367154180337565175054566105798284180093230966167095993728638768449951030772252072009114557678590074733362660169072500485963118940794425056918643373632149278347325994513410706804010339611225269842447691239411333715320558881921725989187091841803170816972949023318813975932210814725031953340133153721020909116305332972400290341355897378650606567013360333874393338506627991286824257484798539006786896020420193080852062651041297910777398728199486808970929113115767886683988089417884154809964899886792416807886948534511970146979626734742497077129610253263155478131929372829110712602020213756402591562071371909175216544427499916761589300233926006944497078200416244118794759563803287201545686547224322767108127134635871450062537997511492278159396337348751512624792181822365469854581085718090374509239916153321816162825708797459118519085796265797883489689535111990112650995582594399925707493535199737937279643669325816873718422935837647345280969092417316119988679012209689518536266015090576063326891323172186329878237944833724271496161803687256199938012763738809129461310627954956792692815387953186178645028981715436090375063209985253704916284363086927165480993228533601447900254976044803182605259506136233091011900016636969520685439383503151119899690446815218406661670066719626253829794943975357765445212615980254511872398966554703957271433220559751037155962436832809075503735937800347633445192471442224787104165716293158600280704044423414120006044018335136303383924189369950758633523445036116655797010699714314135674871835678263782214967436638086609896432291460707812338312125275804613943533731708838181945847310237121101510552086295241712791595503001232325860852920761137291211993779931664822934460467114910997494720925571407125649639919143737625165214176339120516479635341281232402945048270634498477467712691880115900652177534285853434589935112409175124308131193695986828669403982481395534443926506064657846748453726606490261787121063468076972133019181879199276166678343920558052642640066600876100664913581435741067205560420858007338341414850746423813623831811600573355702755795517651821704099806035115681918572900392921989930374675630926117711500580690158501322335048584926776054515166009915361955091763925388706827042233246498424114250374670118548069471330787633370315246781526488878993906972325696306287065971142043836244450762757443436377394504018581413468368237020291335600324540385228420099707365027513028520601435363159181541657841502158314005257174021558715810111634126386055967196441324820958007209872314864407341540618518290954189737180939382606082689233256420191135262646608955341841468522436649654937594701592511826572772737455796203309929503117637182300752901373511241570230944506186828999679171311456354700331993686602410303961185480891151566902388072567452759037777595492424375687160752353512214292816842420612842496207254862136513766406861433899693355961680035985758102293594046489764357843758939065100607052474567859560186650778489075316379433752550273507311549879448264318696876572338422129858581108202057746001220835512883654345183597890971364770224811056278468640065745785059920286455705670054871184911334846420544921995084285268919697534640417183840982521774062004280311116374360471269025086578589295906880907102480974892782714961019419188245107077392757481405733906238795814383018291945120223353766334395309134574880241987449685533942474208864180147559363641392045848348668058030599760838258781421910200223700588349807850143863085712567717419952157846112937415986584533909280188016912598799234132220407884697507115273266554122922789806711926366733983853475797417869818004306965009068653631119029486452697050761489666550786871548910774031009286562506703480343456578014785752186214800597440205243245560280763421136649238940168925271145898732357423534920047125117399633114677462404982244890531477121115977641756888310048609953572707473570842835663287746114166145742517817953227529351940545398226925821492402672489171797660165021580825581851928085316065089915011478323383712174707748651183993562877761083820547949310742579643035968409429258183954966216157897221586682153221624017227278754987990764376032174139796613347302404775479541487391287111223036678390859407865418733407282959542359642880814131243527893261473981679847949166686888222139363722453117056084428937216730948177322366457781477018774031262690627073805342669484776315292925140878362132088002091272724204510156538632289497780445738242194110907320083262817448607498116828777389011438732517024097751609779030607268057530274645178388741519434061525684602455157919635527349289256742330381490108545895397680562511871806786513956829703057302476406527519857955776278385381629810295714840005374596804054235219365088758563653422363356968393366408644888361711670288616065100441802938271672682305136957022388623319471958765069483427343073944647141255711061119877965594792657111331157449475199998666469103435238125339653246504231618222862212445988040693044262561969571450076154157307651045335226699638169331538728099991647689053652659070136124208719539167383693290672640806220814952405007334242408905622975405434220110433450066174645404063184734861765037320338671323440829290206300879797583829636408871569867511701952862793149955621850617227421841564990356955245923145473365140342113098043069242973405163202134418446918470417109803118868245274241392575432787619958690862245441299943999399642683392798173654609703666662095026826525458695049173849749683196647419161148176413501760339755722585352937188843492837387975994781423499162379828973888935687052686174064083931036657254388107725110269334062471691583855700925586652672802102661182157795011039871562486779060096258714168983136464218725633561061786187038440944450147959719877044246264230983310536216777533370491080774173978098317775446950048948256451814517730890844468972161304217277713495625327670095396464065029160503102813566675389018077828568510246424410851961548851908154565968918561259625173716806055907656324359757590666029065321499478374797435641686852118996187619491968819398383889213317398230164944385058962706802864026886671869603066096820362859540577158488386891588488558564629860233219362056230228992985142778276487811223758229156783594304779856992932005276825338820164281113720338044162859540669238094134998919630619276054752615927425665815873312731528729719071643781260691175389989433867758919442785682077904541537227676748255237397104355390510698064666725053197936731068114776202040420582389896537353937219597462951976317879359074681977528373332541328844378481229385297701668640957938111667852729214290147082290628623078274550938427254281936972397796651412669300974750782561961992315247464660950303112799183584665684553730490622648175842142054456413525158785439835628401771349877092604205584959660103437717091933395446646207125187861352943424528882852771148551382551581829653162607679289956055355488537518439948436050099320891023724578840987371681591859308887110546672541524717794240866521051492181895121062961424571945144599251478917875887987434265309194523241471744434212904081474761123041441445493965206413809634031194019515312690136593852460302369246348125997429209548088533458968976259072332519713321564273270664927624811166386291671972209637044465250656383263417713785186603408598201888786474018143297222840533221608392916632526709142086956948861393261042630340191240399151297187557621067945421822995876840901475385581654343620463819041804346351999399884470092815342250558441470365368300726559124041549324351806301261068358060182119913176600166967282115918734325025653083571893256958842915100693584421344009289486983571424420869193340278028487879758639633851891192429984123602790844542702509178066349588237313601487389922413902304041064280321024622507053665463523584014820796887017094679523053891474198155306608355364455625393086693585073691157609630871345923585484207111337570762883835041434913314162466133099894940663638217719546155111993558026957758930046699729768915419314729092143348340725485403794760114514448321390558289443756269124626524575968670460314594526266523359775150097994810616301225931205442264856798747369715817608930301252598982693169334501728284458418422811811971347998819528213088101524787399793964159605145616081372471345639567170937842427195395838788723134581440612446162119079278511054801960997176175679073077781678055243349331826201908173673884349752687609077122224579280574668220702645232658170405207520075822058321315787198479940688530492326602317395726709715121825284352111405728304703749268844272006444871997761114143699303578759559673725991224280953533367787397705330343863981899192363006890660382293075047755266491750735511741642778528239639384118081674163022899405155824182126000697918326189331068620078907750068205982168510085445036257238482054890654388015553216499488853883170704096281439033932511255848116564452632109537071359489723342075618191918431931347282554572965770753491211890880603912485157132106596458730097543440642949665884703940441858395407454410246777196224788140560122219872118742434756370766530892500478352649275411171872377041041289943469312220918684536511423166514499333099851733081263720043791279622592169100562345956629524987557247616365864389270077566005121742419304037989723596016982940035218922280561392068683916690719721050694300123071134996675273170942756654059136358859261447973158884287164553876231926993096632814057152223469602920699431866044477392755179401037212414550963693835557781761287921381512012122991887033985203355061351000127365527628750448456905833578527124821108742165725362447588183748514834902238511628659449271911230411032602326410088654553988805973089414892315963381168939216839839644906602942444927510548256317138764719585737219403713161782425854360084804307177422214216937744584665456732628357563094671681702262213843794600508405806918669774334742957936553503358680934455288006955410478079057249800905443309295735156111577379340501559431747576978853513465191081051378368701395006053720770063858963920055257636805933750677360135151101492809048608563590965030721192048277013826060566362238512869643192553769102034082313837817719915158926215057514973320199781851802460317387630530789867763224492893357530482253544398746779432093458077854450857354461302168047803349435118557000203709590259584571622176900211570571612578542492380634035430223143454770757660586431230420402970484994707932754705388340016426828010718854164020936673646492101057216109053808213395439070574923596727739892549592772892780012479430314576279525929031265287166784802150786944705400202646662129850205360283189001678903349332942189445207848146642649704874723875087982644195228720999290273367103891073955719654116606955767826560530170752871954812004307199014488151837787749029200696756923442404768049358465304204208181428934836954778217544493844135495917084822514360686230140980685457840027030235099724226344661111670289343813205449659675793279499276216497286238339477145864601731350955731738762115240842169795942156657312398340884656751815887723706269392198834975507168522078199278195967710889153103067074073149134051716375014259494466441649367079099767317410549604053384564411814057881706445236021799864581320331118971974133692688415428391123715238981022817245867867259327250913877407680772106774583390070686500554281611501665278664844979961398209320016177213686704346130917185911645589087537243806966052694994004254950583053439047525011368157382763986297403590744617028677444967141641822857820228547086885827705290288731287100916673297035859229493307739318351512443686080277244504601657864343679978734724067999855160759610908252940551938767317584511816143105212673249733898758209814300216539570540075728595330144526809360006957852019552436753561820463061850114807884494973047488448460453844986291855296699058627775461596104267228782026221685817020512942127095750170884093917943212546478541538942964200556395506246634442196657721492839724307587373177407977410055406756563143333842272640446945255386797360492930237738656371868889340847533250674295497922555501350930603105586131895241197555075281842034912930372062275627347486404739865132448315562918886418651814160489375266762356251588512060768563120823211564800006766050672799354528730369277756829749266531395048405065270013490138783756790340566322318086648874531754174343226607708889111063237188454033462602806145145159145270404532000691622832747365450968723397350236597422356394359563280051411354324107937050785828605188454770179051265307332461971397618630439930924334871202335308233930337839889932399567016968055122530437714271940775119435036176665685074374357483377115372101093035202683095683820110917223547067476254974892058086466947890936711497466987716974198802327025682401298718709682000479189697059705873768588754976028419920335768206203991563251644740720658911905500865921165536468183896401246294115009076654009332719203726495903046363270505879511181117312876686873557563982754094334285598422121147573341480521580137347373851823259185998310329437646120062299143883596313476130732432722431071307430024116989953481188833085889703672059097695245275013392699935992804319690846206821616143760122392723300017013232866379421671893015305698824077963774563001904349884687140189906428685394880268647552244216590191492326314963796044241359185885742787327855096814387202600127683730111854251642406187060493767086454153710354113659066540693239825475375353683803743534712867644662044517211901492331742865167356299579767897275993830543229747039748659482806645683177371653058972501959469370570821672317428561920797741148016182613111134876101598469015737717892564378940478240984476988436124322210382465327233845957230644598676475375149477828993081532133840579103045551224399540996776258219274931699165866118163958715957994050921265652717020437481559186712468225191557703514333852246702465088897930739941462859278354984862822385600065784655224413049797621323776673830707397827967229399157379964523934068536952324126744645348380469846503937439761760323928119369441225991909421906771772101193155765770409081193677338564862700243986127851620799262784601309990881767279919672072281148933627979998516051761896435578820203053164152346993913673409932558703565867987902974474675783503238867385019116725591612438610690202590850079949194767764562378306561456432876877954357331757510353316223815202898460249733829179990892597959572290868186140891179937233560350061830010748219577598607065225011610336736720065593457450940842297374357116666158587956725465777433191687895630691332912259854938589768052099793441621869680595010634568041958814473458033982920821818015655978649131964386118447676930010588119668494879628626468236002766264288937109496292319188913912960825402750699031333056013948000585965210979475254847812107329406059278698782341594697594123830364996528284207627260587969281952096134531981093206859085175834758871450783073306061489671967392137797542000344165634679201878441218503797129988857003944591052591428866668077149799484243789487123426650003282248356230778979724885789999629260945824850537460312624087981607836148954697031762956854572890421582446749988737212241208290482382807072852800512215112526160131910125240045645547565899649034163097290255623364270806273733847085206175073539934489597965862228429063674359768440191788925770007403072740780402555312633398141461662852876276853137058668647886413516688726292686401872182443082548133769392688092978071945917068113524538563926162254678320992786451103376643779019994443796564048847582941242100129201692510911452996240365958757345400585709033862203575885287438163181766054372392712112254389726147209919142267037243835532293953079473085155332851736415799949397692640247710567820761572044795964412876768612922813447943563176475413982653195521876321240910161024050990064328103986343479716758992239110382045301210652871232128584426822962249477920049711769309086264376437532884383073423189439520190056298719947243123733475174563206883008345858376896075909112293746335945244284322983924822230184041635730805453093997439712422021188455017662162891716046257318041076890707163976266047376197858389379594631410219340800427880137045973668283263829204463927703430735039214796523965071874190049559891128265962704742416712471500173970510695832133724289409147375732439770296255335446304757639949870801086197831284129519247555191144020825895933412975086025322542130284942343754497332927689399145776691723241555131940644499922815329127620436025463293051904230679493538050174908121216179272640858699682003599671287493278669003571272350340644543760495802870886751550443349665999214691062165832084675552413461554532265545442011280434040638849445364464252911259930638223954634541390360274280440038205809551485828998304754477243388517365327488839650768788292959732179806651372609431281695116669031589735222691475928881582736071115986586909768185362935092183856073417344341873369569156961512072344207164776488822616257127577950908590122183148315703866864223554739639095254064603386745997854216191920098748453532541546938635051270160987679892833207312979528061508837727201535476714396044650245817352121529682885306979330554398544994901525538787615797602636764361122206341425743239576480653635422738041450157060913884693662280500116442038571303924902999531469231013680611185847427386338559094674004384580570497965720893643552723552258173687522562539931585092286402934881669712129727873578100117849744889563504083960100051649388722219125379965277783753466823434461787251211192720756377056460053667191012731872604984565333794244012918020606468586932909664653147514912932242453792665308591335548951878252393398660092499276974122440875059038952034064678983075288020917916511010172435762702915172687282586490099851563101876410136116798438451858934213495399060921147917958494349048499137497701172018336324282435717846142499443433357571831588058677364269532494752906260179955110365448601377289130780524859228831845489456871482847938177109934012035299738788097305183008553497706997651914991598672165889779895742159872313762541692790071528403706717175901478316392100386297391389776246067950137329120184161814273563571396576182611375953087389436915785087204549093553818433349706024994483353707088331588010920930772233151322175041734434255035646526806996344488366078560960212949760635237084011185768981770428658871900119635665140153355231052566744946194033982314297377974542065050336992333151427665285312466675538047564020112844399217814178745109160280718020148131638141990680560104439788005286308548163145117251876986133854637912732092905821007741648165985305095733713183549304531858610993666181960143669335600213849529546996057567893997909724565583131930689777488687513556215970789571266810900610931202745339196642827293878057941606586733122965476422370699446038806198141284360389938372725376801867934927790682190632934410505223885137748961229529599932038963266911431560376196142913654418667282635340950874712151494335137744013397312527425863179412135787984751421981209580408586729820800779088072309599788868814267958569681352427604175639223168057561183374855774571331782333976000636741778834522538843097368522719248525723362455164636274984640094893452504155074421734332190059952953097229896627966752447791817187503389717221518855473701067210258847526896295809937361192434383325898453206420489617133231731650158992680807040709298470460401716339367361745805156039045805911529934810513040568941169150064440306584490836772943527725372865782008655687514454259946329682875835451641703314862269071400070822674445424042387156375959681753615948149999977455576429287355987357234285862781589702519690947378432146602471929833055301463781699777616646406319199268512869545561573674016668680898933972219501409060658160086351098858964432739767046650313755242217411968029733378229333159428465949182668047891391722280927795491218399122058630859483401794329055621740689569460023517803811631548958415254207039725926303360298416538206936701615012270104776321597198694584465703616650867269155598919704078188635463366855153888974562055847906120341867309834499431158171004251221021670038703125588289892715688165315518238921595980956289563493997806348005649055129773132477289335457432868869633176650032110547843786414989825895439829224581668051817346024126998984868657709450393875552259545110113713078280192137285006448317334795585718739354004373768863534485873937707123179735466857067305139288359802863626851093309133664653017091459654563049499356260145796972026924493866662837003571023875228932928053947744127580120084260381824646259797876661644564519954709391115063164989429613802333289395890177128613454898905374517028375869453316727112701027978192126918554180044284949255138639812024841325145871785770286297411889616830689254334518511160716021054789466718259414075044618840930461145878123021098626597159916139718617707941991922005574626874830708641457555136784342324832281932313660323500890487388118258294428234240489408577099604713991641087417847565749171825910636559589526185049584100072214923501230589976508187350628443199689822263464515426292543022251106940790107296502990410468172664711915750238366372143945040192105460021743242715037999237786077127511102330542170431075527832211640219375466436545597287236091285363984134932553166500247188336688780753372226839095968035522216588772653719285192782298154234349005557842741408371045564594897175535639399343876789423640875843064510782683545071382721057993652727386960018892013487665458200173299935389386477338496291153932735080992142749331146081093524205538074099204668181042617862296337181764640448921274952549309121330416443825071340532854130548060722849424392118973532604648566318188981553505269865437393465466930469127673726881709331090140097788047748926579847565171205651230127855151091088908568674819693239592867818325735856511710821400277524336158574964324969863746133411323276249497818623365692943159132503293578019111163618379238175623929741683863388078559343593223653338075564690324932718299117244805241580776320379061853572204970971315547207383515677729549430224690681488624406315602804291163731123204906514015033109328094989204548460685828092865638905530321822425992414287900223146821006220325352639881100847276995209868624993985188827725067466533031769918933742190242342874512039385493789730265364267999848026566162864379652791209883893208804884887826232303144216837975970384298074440588198341563591328427455560285313988894402496143016961679900958642540335116557904454186447051501630977044770641738612770328545297383628942797833467013867887809045603389257203115008418527766631324874132760656965461624083846057121572211803783136652396943072605409129006513787825110898755857409623832311193152202660390662436978420956594445078915256319899399708526915905941364173005403110241405357273026541608046592059278051822243842698317093800286670205322341797493526752877875949009653067155305728412904358655770297894454021739826366993446529534884355599621903672906765967125571508746598202639376356512805711463076973693708816206057803496555939432844619289675874049393867418120330378224214516477751466211341007957355891486271794031031317031315044545537798252502192076260612718110404011946824877599428058127676171762371368857278316009330456279795686824348447612697684663797985875418207531375482325476645031202784104374969550541406709692167782250000132082933611684277536644324507536467662212510281071812903833985303771956598544295141789210641552278545396975409175435049473703262608575059402079619174243825617631640354827206582559419737331645877550769222751881644694243936039813494912955826586806788996566041267586292858893322263928008303753426796264494982328481760363585911843880089574466415604667362905150217565533934655061907861846120854350030132848695743636230860530592118610012398116076254811397626191582134640745525783581249387781724810514135981244989122596026256561158737899819619506131960937959158964795708289491850097597421919070466419030185133168676080721260522325282644347441833832627669964746055826478326547398964009884027143179224448013194474807057162838047306232615456844319648708622011003223501362217324274362758006414150027404429040226017957373434796315766155968282877203715052918367888176327398357054834426638581270361194217909486268907548173170396369828759359428679221056172608876389472221634224626786234457646043816327149965656718308090779938887717921512740729899956116353380791570534192010868993754556189516531735161162136441914847756042183532611371322086652539994837420826419453916808045594907321499299642981309440410377023213880115430627899841709229822568259467121122842174399186669857678858883565970017819319545843735738126139412865066525605867895000096373821087821500570112328282811950306989513055353223365165522030866589721463607322910896563122109582298704865002906486095955940722431837627860430738789905411419118577366201487747258757229824880008099943569647383581689031678464268156930564186717409595392431142946183619774878685574420790127436112250033929202638156926794044483785993734439623405786165533665910288565549843652176268353133010705382551282928795284605892425706526520725282177568890257799043600589223854034868718401186049280760598322008279697171184405395657829151515012284601650950072334405018162780996480115757936300352847344737824285916946621062716625980378647855256762724483774377111514493008451229485312583641041090947222093971989717733892766583552660233614625300650311495435242466208402450262871438598749449266859087376043190911919064821869236326709180734334382942167141020570032499178732886642627298559148570983830335546351618142246473809153982942766658389638358541230520006155239485639314148552906238305708848678521412168375452430345130070050035663254645876490788133214457729346999949505349705495413074993126285234221642525568191793640802923061828414997768322072384166919983951156018022192351187743915927217448922543104447859894058540734497822230472594999494119177531575217775140837421792617317063365995753647437913488226314685111618367161535805300422491285145425418674593837375882749714800636055686724526847462952066217583492188800297057489917843302181709126010681679899457751558343165023600550639313240265666860969607708694462662366832025718925233073462361775810792633181144580734265818235199894414872622422698659392952498395452908855104462818847945819714885217461370104075206326024968137030415017675922086521844558062923213721782949397170944486275790182889133789869079107955949261993041466705721777765251705021272642936772581198085961859383847014425932913832351512082470212214975567971549919688541489643672553167574116170105590190349284357181161432218955855587149477383762054739839736141352754980526798630922958670577856955891711484253313754713698510048397189563109916396540308318574104566193426982166352087813424324888342921841941091967017299750191254086188747260405449630056029417510026260159669369339849751786027409646156913301156468218550963118941313192339777504920893421297200465113214595642328480193358155287415796936086105222559727437610267053807073656257611640718544837046305360994305733886570066287373505178646691985725965220835394417062929740482761380622844597840476338622067936135508376346481758849396895559310562986611180965877593040257325823649294551250053991348672501309123185049468398946454196324804693940089085296928461227494244678435887281886975943783661942620085057609668702183672089798992763343406447311531137675438193231447761877658962926833490722380901586668706949066036136836644312209323713704450799163250238287748653720971070983583994573271202894550006200131695857057250167552845939825202048837132145754296602785178790905583370473523264873886225588729860840350757322062356373855069767779560853363880412033258357664706122558373785784395322295758518943859801597819321277258915759699700379308614163300704870140487938046119016911118595816853411268120358748064273075248133373064844702465554269788215200696830801933593336687502920942191173356417629074476684898310491757435214378068879991492166461250112438523243379619417870466340127833486103134506406351935555227926279292893003484129507313591712561068485627228109266235748336117507049684302212593901323696194107491597244940774516776943846182244813172358851068814430942990161777366685934523260631501620470153148346933143416998929157681982199140837428517232157107018159858077065211780561563753133942958949003762402515152013951347409494504605323672017704917552096348353709729140854723856510171056571717491103680594464859858904996752777971111953193715262434286126679374874496703426363914205431057492726684913135719268501097855156473370389987147598771622480407112540671720505432764539263211259749938927352555139536346853228065022726665987038282797891591371154213026749766483260002418929246065116374297158803613357583494718044132122665755356620470864840007921116136032206050700126272057565094963724632987831595715043357222974592301206465805268538509416178456441215103373756320316697099298817282586966870568854587985055247919937781385587915544391786464484176204857536206827024496212539033699572648096863474008607292033813694153679659508895244512789731602292400749333392635809755376602272313411798323328954456879787951791971175669932191633532587853206997772247816686051438317768908480110079876566458924485481053410553730451739572487491187032894425499603973027148113568371308131508552782569012621497106393770292709880843959470203838942560421421782805409457340698622672961409403183002720844305580652563808538477167926874850819184467526439249939830966577364418724792726059534882954195326191311525534130885254142728913504157505696069618021602180237457965632896660228425846878960033213449923424625920369292306019464535758234104884080367956285488284810402229191595772921758375308634638814449006152357077882134039250014093364346939402454913070716109469747031475707108413186181507841965011303224314420235090289781067945872055410862158341038993032835023872404495634741503999478577288941839360129661423229168643177352766674405323626957128071292484978386518893265447033940468718656606656333580579423660475704080325866835643830357457997448085586449917416624505516647760003865292595919429134880068285300121516112309124530150514176762603503636619533402970501757754226879605644367406269650643694487127445827691088136183789708710491832835038414827312167180012797101142032438971888450881276281236773943405394309224704373081959573553793314580340176837601746386631149437852855347843529571283761933948197053648076100313824157476873457333714581432205281887556519754976206853916021142468856688419371773435680139973963115005328676318353421017988488234251021711746614974868844119199664388016548667141682637633902186119375182413515200457016144460331028900433654673852157483551644472156690737831370468660426070856872019086480211217716964756664844659351452891867505352399606142782135556858078142725664294305938550114938961463764832407333926560452557518460121934142066586629711984843339386274663239510293885719359133609852523832580657047570862976026608644426732351017461226248639667451698955428520966100394857088777727657562615087433008185139528339742275977668589682555252961566049547044366096234946227511924559479075848712055750953959173568792317196041797234283125022318705438981386018745660848347799993341267381848082349059973701192522991916072058187986282972061056616380010014384450925573589526998426548984694230147970772892301025122329452383020737588501468466913248661523874693581974110187006576803869344523513206999107507729576879779657443765254889975183474256941115688360245142117726938309544062516667254040718697979146994628329183360285953992046521868764381591510827009237706243726083054771511196234482263925669147438321144724421049093839965768605047022369761114960821427385005513446215154355681008907686371665807676387244875350807963917878216566016109201561148350691414819926564479772655354788624297116122077058237072394062431374009152012927778415409374755418242189791713534798497049834334619624699706905659549338555080015029020282723743420741418772480697606704970808645006040793270792196182821324581614540168250901596580091719554426719590187252409125755828603897645801601493737615823836140347889564895114881425106138448184357364449360719142672908338109604415784471291601800183035856943160456125066107997319779728434053715892627555077373725517558611965960016038165227478192510048763967387767536995813603978153298525433261227980221600492477010222097620463010457715803573077990640660055287318672345382271896779519042189661429567841357112916389036885874109143495923133961564466410019569231968620644174967346872883776374973438004428106940306128653217139965847833569892939234816436968831479826736065623714632672206539651016609589116960262209168580366331969088098580670930624530678396411027403281388702254735651439775582019276295339401852328805453753656731592062437859070304646559476557807076193739875101165779244498050573177294010610999670760721722933276642764453012352903960040366013697503114197086028373121190708682725760321441682916793472748995435093068537704447392528715813063685737425237727635723725309700741947532313880353220328331628088998825171881621686621823222645224883376160956929426151995573472805027599245719833388157292440439379333061340658996736289456738869527040476293621440269343217578427204489154070409722101509205647649017891076304756132437995898830657425134818371525253651880681452471907780678677781873802911249197131613538161609757028454221021430901871159987180122279735872218310683842364524292672519303983611006706035791183187385151425447007281861524696699313369021698875316694311393909414704074738990010476913154421153633350928018984600940380660415448379204797497239412952203088698808092480427655602590529831192763176695248488357052781900804947238976444202484758776447323853915354071789598449883150180761283473161975666015406034749517414901215797688392370627285812475597053757576059583731519477913349222710947346052231826708254051208768824690428072575607621386597531248665858212666890095289112921377244950509241171573319227655092499030116480254752584920986993595046491815402270913808379105340995799879381298453740379607481907770527967530175051735767621018131375372293253593787517361691435698426561618808790788750260366692978720609247616280116027181004563269687480487688759134273075902101540147301067838704637101932397129784694750965753743862727654282125605901390647078846180701675858474620407988569716230136170680787182461594891261797917243549243122935479786002590650902810553555586494007725479770421958553130022284027821198664997946514041140139302883810575799684716123816967438926050663910129533040596402100097268755536858190863873926517340009166431333485089516120213825438752562053142274002086720327138006377128935349065224894889349143299589999405915511475736041830059524921716143910473291548667187642702544083977869228233528162321363474244156306998087038013114041849899505085677054517433284698417961296504814435394067170492097551118384903762178867323918447932040951652438464661681395079837820164027596183116931697866979290558032061378504643309461877769203201933088586122441220677934692172523174948209050786265412201101668660852220938982115177392055099236406764170354851521822655981348487054961857082983581309005865432552979038720298334142402083046333898921803942860301776982860867254566802974504191033261377501191948244803736975694237027407264185181218030395855964609627271172961428012362283275196137343827665381486807698383371777451087850949465637548459008917836666127291822298740563454396737938198132115934196760876792005919898801574484687326978063915894037404344042817326294318793249577484902680119209644670828854059309539975448917297668464407920554643030842908534632788455505121228877556813766912335865659661581575329347580320363363132082558496528297458230049220430193067363165677357501588583161185846352969543030004247875861989390674738274185843390604496399785882628844403215298550156433912201865119507462129380990375527740141641667274538970663463967168221302983446663197857568788975116965742122105240084553749604480695948499509531398739035594180860840521569081322179727712135839597483430815178061533482763776713677502938674847496838055088295550916719649928786221140112744806080530163269972296646290683389807014623329730852375110821735791271999563740217950421607812281402042718266997914729333159872446114378419347985603393125353440781585379592217296508117249003982972816855580249290057563437314916654615626796453196866820032037475947490676056862099330262242203343544393138866151164282495862842434251640027627311401211725598844183315349041398263424711240795664891034525203738384597736429985105266376625302631362373596747145587852444395329291639515370772353165017144772840308881249339171108274919822787058998375641405475481952484889403245602108666816823347067090777172825189986891976859602786515780231971546252098910503169097542851117424379142616340395480097460103261264688358179572465203285061327324905874650427562006297259807309641356884866436656427224508021241407625301053532536681622975392097799781549143357729442538403554673149098783980889565327593408377104488189143365338292197951791204521731775832140509216857362532240900245536989194148660294883892219604856213105114568710865743492788438099036034463152957742176551179726008857178277983728857120157958507754452481833985134439311131432167086177631925216063266239863706661730281000558944840391018533209221260359719972752341022737205612419607775297435656043049309846363704086744152984928966816167242871754484000247817580408674883691018267248497785973730562341836729907296642151857455789575865367834575700506949643541138745093445141165787033628309712485847158952548052467288248114089323700428942118580345121386200573864863730336186341717036027983631926258268686017635250277138648942398399629009864329480986461623524791367819452250552489320101520903844651373444063841800429035376569777475991261141918440933925382453073533157531204081478017848695567272185950260073618182466800987099233778088875265803173427187628813285908295181660353718781811193081637450616500735715688982094619518017986445746703463086277732811336103492704123810588471641243872431711427733060569646716541445147232286205149540130452378052722543890581374753470822216663795407632159833489752314335460581667473484560047225764625806585644250170676987506743497321431065582158257165615660629306863778913541859167134698141566669849669239729942489265216225348460818489275337785641199572030301571008768069072356439214680037466790657756092471190646315721578446379455500922458156785541354360804753009039324638186926346780682843029560089562476964607081909966984067865402789236426070249349995449546589324433592465033982914161388243032711941137074121948255050448142497871676098089077587401643556733967028886703505669602789528762343055777491731597886839387363064571864519968289233379104347400141995234085102565425232955040610388910102473818318660222443287247773053555262170044458338861436682452655038864365527897323505344446495514758780029661923890759499211942630742905691489825983072505028846894204201887239326024139254018269172763652118357506040024122162213852644802537819255108137629201279778010316722715220814036033630093377168382658259926656779090700924152768483001994737096261401711403486116114257765981913629866523846921465572013194349009673226886511005805376714011905111115596894580459040033370963396591333892129337834918811037277633806547879799062137464620088601150145300927326377539461697417434856968949066983380393205396682888000313901181025711197182954585097924579431254245326088773110163267509043067989411662718064001035763440193683647596021509960978580642421796334586183020402242445300014630147738084432175977609868949778967083024681265779861053514218571566355835194683792885189400156018985372213356451864181854233909372876400633805091161220077821035657558146029389334691945057999926176652297432079560310930525819037290421590092179695846180893718577521882350300318592965381315576552217471136087218548966278471405379161346275956828284174701939356114342525474825349494073627073575995787051829525731350632870471134153591490022013244993404661468839212333395396964432937575280734083678265182419152965419378799713869259643921417030833417084251297878547593970179730562133304851553963661348005249501855201003087722131381478352301416311842021172288005677644163698103418883059155597120107012380917736200837490132314888114138149770285472092006609269770236357793692698999077697489742047197718729420785905879735960040178415422233099830957188156216077417358161256637340972174260529820556659962533956034252543381550562861957423748266897271421225306609058191038174259667384476550618505935550100078274702091814112654886952681149171002487090601812456804336215785857733562416145580736735868062212801425082717100677254488627131374930434936125304978762056665517639508345219627305011819551795587775323901646470683024476065379119115602557033680162181336422063524205914532958802086915866053110717450571565996717696324517082874664870138923925104077800711813708057320838683537772061829019192539060198346372684651067309686526960829868534875584236305793840960427021619585777993240571190382519844226446001090313372732599616505312053412395683453690600463641621121347310453249961197830640731620550815672065036494815145754250213526939554113157032212438072575864668850537937731326846502264481643133464891309750834292245790928553956914582547397919099254533303581281703710906723971920612509879375139790166191012961859059712048851300077211039208404280039879503125587550529596774425781885636588982963586862167263104178177636313093990007903661571310023702477802717098541033937670444445405671312057709925522292046529103184114692510059677681769529930713945181990920218303741112556550960623248238641699983739372191549896785197885728845303732549004051107167957188180252163294608812689318330635794522131000474657115116319751580913270531285310636779966379533951244616539386108723299498729544199266929716190634403147566438713644014959147459121155417908399679875506396110305615961994857551158593500252287277894236036749480635154186683147009676043785700535640623366448840088225035887641395069816070818472159295628358463567354404020976433912330559787524978009250934990269828945807528023864225109501563348537389523279399345464822501796656700924181581014272944036775738669482288520672966830582554098261230779998558665641552917412108036889831049732606606807447706027029438289931921410671934375111002186263649266288682016077935811545092263616865372206380454900005712895545665259686509213924374630211342062702659934771334807531188878216886252853576429832125015290925791947769178761100724165022897105961882812729770615172427645873390299951134877012669920535264144697124651107975937856536248734376960742967463342584547164259189163931306329452108292871642515241726693702185787780686376860495759293422946827517872441882051581157830281427429559157531589431016411334300206912285653211931219486542417488846936294663584380704786858056276808289237291034700396181613949678434108452850980128996553617319011811423115820082019692365066904146467882614233750504929068544689148663430329318276471328504841694140916660594673064743445326816817887158467895711790835837243753225595124801252713193657563992879207526819264538485964809920269174336473748733200711320349295670142887937390354011679216285435254947065215653113503828380137322921248942882514867748898195591635395979067719516019967984177793245538949989630657599685435811595044983133492562777343020473534020083433985807682771551544213840993856996570855455221886720009821206294394136500260496628629617429339274390585540936158765973099475024136610752246936835949349433595578051206160645955878047052088745186321126134862102282854576444247108998195142267299030660511372166022403834048940729704588316262181011410759542872471684227453348766116611088510025274858331434491279224504660239906158468120732903542115511675300373983066554450460621595708424075544589358326941458380779201936941058062790871510534337607341143752674207469549491754637090272743836662858076763821835113780931186775818366472352980116453408125990565271129629009530907674095612322615318979068315785313566502705351235481952524505308683475548059460355017434632575222923966616323023381377922617265667012019759094471672752715601566529704850470290620218685943542065681795978355909074949992838841523612932171715026757064841108603164431330703348250460186258128518190106573782489392698158596955015202636044004281715268029688871682681796848434712425161384742921627432374916783495915190973239932982477968920938644531532223513610403409288213183613906300781337062077379089905103250536197311913407350927593564618826438091282367938839094863260017051425069840395810412777074784627455245381882574622061495015826746705446188032526918554950316487439884107914068185489603169834477359386080666283641724630688534463084805730219620068456459936526243520551802600422920093875530528219905206653751319387357893194008664228636355722820923124662529658578067850639614554763460353878039173563180215708993828301107052182055949626147755407345062787840981221476922848694022699211079772568287821829223897086804097546618055374973430321981242230627569062153069919895790117193839616192191431946589231346757997047353418618799783895827543032467599719244801091626534787304714697748372289409077421689005427117918572503010641417705783392747460941942443554152712170343907108609646020209239691179291592241240333746783158915235292510239527091470018027333704914030532525486906007827867751354876734739199489615271021073947486542497157777286498467293033293084688798132484458460643243152166704499726437235475741684894442235613574917365712477451284637224801317272560170279667691288616307466368413509418627281030852385166853413141149010744116831019775640226116389486316175433052248218428378253518961532563251876303036659005544906174830075199167298086061842982203249717212956682539018224669105373706049300606276058498348756744233553518051732435488539445055878332444212080017551956468501923722070307276867679409663110408665932461930161146532383235383517463469914740035813997359941122566366172989248926277174027043797746073601735245243653623802704266525945803319153127164338036373004715432166964351281597369671292795914651094943649390247358767682454005138779486540946375043446197961358698080369320845515115877479650419296039666877508478174832541497970958357700540735199213962066432947915488437938709127832838769990402508592130996762702280257562451629730393434434268958644955641541817141969442450069616366734180400480000235740695707804297711801567658639892711831046199438846028210004739618044660116688191102612012915656614927673464487607312332587113797820197891432818546150864318734265513024176675404369750141820480969630048005120498434746201388777679774165144197495065683565887119410038267682327859570557595032221147555336936140517824239089217224805945863620984105911333314135306533082961835190285140811576632041801006037197356637801604925643208333328832534320399720612891306441778250060402348831165575923330315989151880558979588831908452987551873338928812509483130561441987882084609887828202157877759044287103689380039551498441713893976030736085299206312310722682910648743101145075728430076146013433246543651416535069141559914071011769176874256926587032308568232880743130162184203641143381044429413887939297027816601798001723423473781147557222108728571840599712981342277134778023664423895058597422666729589034803949186339956973055508512636344740882150092712898014629172893135189260292824770999714455379183249767644744344160710821662595735521835841778057532508982847965891525461393983385030977340824820571163255732321705532671826604584962491033568601688475703306610991590985962947150376152775427836197744309879437355099559335245472676451112095861535989672518338995514527015077546744996778581550701668216302326842127096321549088051551174162792859735515471479583176070099821095629626097824072742279777164247843723985345962397296001492076504857620675094000428884487635045187020244724485523537479560739192890201508146641039513189301774421723996421503567428647313147332780475540420843967218733426744716854610779746734281953765792910353050205599249664194052142146564443428007267672028364793502864641324986593383592910961537558594343389658747932135794811619855237706424158754235422832802529474197241092612431816392792865239739124806500919890279232477104716787521209030456611161200736651371232017812152738870615230126184969179436526702704255301819403867648954431333123773217491357436164242984801354499661185830155365871814529387913371406123960291130244996182753326182818327595555055043761901375988061341421711537957245712243261972357863474077653292878150570874356962223231275699817694963702220770708893131439273427555972101298774353446989207239993722412680184880739950591642668767693113048169651297929317377117183452499611578510948313434907114788628733951176844602373884534673709648823429610179484370254968214995675870556948094308029035733738442426529215194671462877140830393706844614023791659173753981934805788938586162865165452142287185314570647156357290255185295124282291306460424459099570917276400633402655372742883121026926301383243806248255487165473196979779964005881861922413925172430107321403831388676130006878535751931573870805968303239888241866013405226155646248717535277449662530335553614019430789624294463260659364763175503391833729072087950239375330583616952732210513049968162882927016511463387858129592302465579089693472978816842331332371614338323176257690062583761506502143888148301717506362104257754131285256074921528037247214183223504188603417606072632254201539896442127937534056560098002255062789018457985873214932113192267893761438026976531292070594149921626503844292792721175321503481849769988349877449330402564705696461952115874291253745357414001800767503428257773738692560045910834071319480029301766308637798972062641120941419430659514970771508412853442600519772432628978146487320768492410116970335691941608166897578211109373321884845428402034831084999615511101254834925015219040639066273949695030486077146399051788827831213547862355077771093107839505927199105412579244472133275830538968195325853311708775631664239250272442345362230410074195565466063852164408290175923520271019066803333134837496353019670346726120261199113901095659221817789746185924750263321767998961619171385577702662912960614367270281846827535981153404897604590914265101385291775367419496928390589804411372158277853995064850752210899169080205773689289294906469037123135627197018555395054807379247348868393143525101547504528925881611884740425355900450877389254306482061195306612924478752064291991481061101681574584731018404814707417930498508103258728697204286223830754356609270026784495565871725152891009836767704216858903377624707759357626110448262698125842931866730345749027934273128664099874357501505790420617121549866175186600348264624964566753385429824060904450817694657024777224272964121207650435943052232438275030019707610180564900037431085265508312456965337772165691037857502265554168885078331368143887247753396532586105869294503463599811428948698883833662055509195870120798282584259579372173784810922294523489941331357602009961101183937490124614718332919539584513260635094044302051600918302856765643553115389076924473551515403606546868195952916457816411554675045690863717774731041900850516276798375093180939459792333043489247763167067682177659416695089812363791272091549229316619511517821986842553610310328977657638832149296310625720472503849208479425726451778859794901686747602508696141334110936603858252080056836739259164780981566451346349613791992037990029032612063926098632352676629663285746763705373932416445396125350227036716847663169718171909500127056991796089716286078455420132192717994405719262981096061368861835528780840163116967430947863224629009709039063024289183016379325855177144556461182414683577218172931583196127006869621648100294258499597162377785567441529751043470479325911525353363141261358482414445060579539623171756118184941610288183157438956819590420470671159734515316126854974032276739027855085870956270716757933386757867713348632261134599912304753059678778405639622024330775285895022333804771489511683525162272911826016439185533943974520957820520430940460806628187337233193327560948109836645385832312137212381739201452214007537244207527454785734427959811942221300728348659746505846855570790459783370975803531811946023345492723039540264561340974089408011677803913645127920255930090965270544065114959457251096126873332275515362713755768915651640911018675279363942815604166214135632693936796943846291586453674792027085188210339355731270397908190443159984073219807764733213415178012533974312349686820071591781079254659430575162256214014270801421736306299200976782131220793339347660451666653511093565141686479407194375151424620340681722867800919524277745863308829835973715536704969061919219134068532573202210838650484990303165548883604615336403360071864604741145234823791544977385383762440794174364763609580805922474397242313150164922552961303229389020683337197953512629089369728821520986471269894255648923154316075235251236621679340014869734047270311518562416553414653698392764451893769816899620032741539321454523662368823649555959340864947158170480555346815428189429082148367108954234978379830265711422552123808719804175594078512140071290986734191823595382075006528469070556973163410071390807680041218564682217592630447272086892530631164137834878071719758505914478241141087118622175871871716298110729992569480582304603682893432438233936883783688295174303608236256954739790506159491976144777196357088607464535354709205654276688581128387248808041309474868342090080654970251420755112598609542716863238631161914012512585213680243099128381996350960143478940219275695403470887089024548832665470971285463650009710656290429194903419045490900015949337132728241170954356291102165204800520935336911638143107769691400336347316692987208733236212974129713152390262819877105604013286189604820167397594312422166153016057308786682593869695943725703523092785290449110194495342310623098081843562917422549334137860186937202601743631485802321257459804222629931352896721596961362747566569640835358739605630587240102015864578313950959152325233731853712051987941669692503137698116500812008522192164444928076060837788548737129848843003068363621289790132018173179599590307271261867073293581266361218509838399931557558398379791022203511751035867053634550203626614848691662111811970891014023796519797839470187395253594783894116453979414642150138789767206890790843647239857824862422908824674547957596883285464672195064052692077861993095418924931815778885118103907876778376535568992003869459691302369215319782151949189862381768098157093961828420306960676673469881297400949599165567557165501174317774781887122842852593741312237784945199206010402098684582952752573582011046047953350175496634213774138119373401333236716375692310547546028248195490553020248817390902644468401439130135501751498219061105415587791675179408868413262477472743347140178905137875022941460449796805635812655254697122878672889582369363097290191039547498128168285434397679714858448620051878729848652274892017202157870902247425487613886985662756670534473854500627058346941265508451333600763529201849022222843634212114862836275727022459752516957577015159605137292969083954582440425967906670790642389560198958273192224961850111991926627097143995175823712429186191213260287377057150034511215652957531580911244937255042977128516238786068739837015545875615739058202859434596001197441024250717767009832076067976657887172784410135080786570677504193645991933229978429334435680086560473449527476477464309797276607125981415108296328876216127823761049773520631778620618539354043985836174958647391282834219777929534157471759048727786692260794887872179207315438329396112812808228216834240006229673601072893951901121190213328957755826896352630140844803633525446061328222425847201669074514504774584838647721186557291230880334335379265536871377022706836803318243256404397905565771756298147832137478195437079421160168593208529349226761650457422329639983802910594529561988221348315689413275860971603434213652250000553181821469166103440147538102586759678798423236044442156101752653359054067803189095547677985808903638101665771585035939139962468762358743090719392636616727331963068353729680769655691260835116576628434428212918151067061278581121371106462371566080029274442590564210598915617087587075366244829320054756899967152707765807458827130771557630504133927727016767159742927257392821226238534051795476831292296126292591373853688732844853938753950852548044901666514826376459796905347285446740540701191044516890604901642931160810329638253806447399113913478560973783741552223583438995295482140520200859843739338474790091493075683933696970608707296730717433967701439811749956117290408764656255424229868734921788138057655632613739063678762317225117635436992578084277524618113719791243568689730307236295967699341208509586574833461076510060776289683348596763662497237214412701910264878194737168798830479351865921810334278383012101454421364880310626249246904702146156359880288973925203586286550646889669810471861756701365841203484147505279679380419632853771406134633468572413402201400943712759340120259568206737631611197953283524099767232234580422348483518564150533662048901084954308395856604464718105773957755915828209684405963733190765019084137480699867297844871255217363798576878980484275884855989583228089370911703897324689293523251441613884099106591809584943832145181114430983015524569793828575919307231661685834968821502239892709495631347976823491204696312682132645492831468026535963029540296869581950201869693679873794611513454638797100371413526829422332263339569003336311203279556058843176555780663828645556199590649401139515921435889890043345955483739147839698279003033895667299625971989873096556199641843693485568817056366520275934124920193971875793623850803349771344064894186330860339880943721123135270006165898890821744599765414686095201932353278601957284376766148155127085147613223168204160613195397288446677956810311139084992444218989317657989517296608848872893449661080220468940239495136900443512972799604504509963205516036897030188929307723766236684555122495962429791377680310432731784805939065733048284191116265119820574744560508084067048239313928572922854485202582139078324208013537648019144307494759896241817809262369825613250515270413248071687036625803530601755833092997950129031315012642273149122957359828068296736552487941521499557820753478776345374026969204268689075240159855019999500780726857622721267481034155983561872136049125454773416010771293657636630628212193426655317105172773476616205354700029915488399725502176306655991804755622199974816931720109867368416339083607549007864707180545365770043094046517914141008476868577703283565269204644133446188575229976626446646831912215030450769208362303108286424574437809245350880279900038328217466299669622147076068476205729531012863550127817697492422586960853380408048053310313962058922716797973077649027670972517341771919710393576612049209503544020325329294289798650958245585387043315696301384556567855650303303075594052410822164475690780371783534521751160474471284691201221503302423182369939705462964682256947700491759915868296311658182321394574198171835604774185999398245420564994314766037508171279099578337293843708041416398234101080739967145312947197603020837337187442236950770102640069797360759546954639445954743606583670456031719296836181567340992738200446362913622232072700467832290483740899785338819789251646970238999324614036113502637443460448960435981362091653087213394691352148234564294993564616555631936378827042321405295951747336123884744401372083381938592959988241514976717324725665863978896361229989815668043796054361049256654729982620927945306434348254787581972605672424752237153332453159031740733200715083982928823980484960526162224742637556182907118778213036354187758367205881456727822421220620688318662255282173189857172045003025281250781140587863765242105480967314220926269722750455315096911319986452656156943710830192471656667415149846478546286154558688979470793684760050663234052424399722055377148899568925906271194575185315689812813753970030915265439945382509141801091199973804590889059955154531349482467273106609704770023587953365114206524363958549509758582479543197739564103829804207276921707961996069232472685139432427134324319909846700747202799146119757218405298846701520285160643600750623742808216411817014094307571974323128870742284040790618733110862088023375081136614427461529809231978162829213433261824105411698286699511814289469054720805631307535613943760142376896283912727039633072186096889020154704383457023666396720033593405023921207675184629990132954757868717856927240492380669867385419721314035896785961984006060221306511427350013758566907146807195318852751702368929994985379868863122230801434429837236301888350742676135777127554805718163818933898767124373246846225097137209637958409117274094722148173343828202325538140175659392813008492664049950776525076497514100856646519944416808376097054760742471852717158464053650264888656120982047294173251327991018100692008453026673886844257707768836731940206471383285015551251408042750337548968821179512462801716604703917108749653386491771164275812919511828186213150324545591283531024863685464941060733073990106718721475466108300263756816227416355958143691179922716885027728242282180218833364578129295613403222000786203616843555252248340020896806055517465071657296012244788054707820177913195195880892490261408202069654622174261707725137058265203241348864516292635817112715260281581324450423981019132557377633625102023045437235409262617559215748334130037831833208908686669774802632034085284358726885314362091856966956252947717277445349855025052250306240510747890469094939534643766427404802026806114947642489953574328424929792469462835352862109833906390532292102991876528070260825174856444522200803968065914740862461050253736517751915058551612977064727008487239079162577905684675940598814940856519452698326043734894727694264398818065043808167494353115860760105210725561261149553302022567793651871393128034332639540471304952294580500674107165120546906310968650570064805592723126035438890457517767133686352367944328096194561181773763542843487833813762953904290368542578475190984923090537047027056403210733664768899067081106194371205423416821152183188778229311281138701454345538638114473466435703417584146711599362620287138402348861998041273107162763609544190034103116217693287227767620634092496507753870506132912091522153287636227900535423041828842931788428919523947453879312143372270239029966797938356301054397382474576216055895790118366313178255290903954894763308966916369606271645992680324831014000773784396151641867025098159400493919575400444995407531508658160426587243238660890527805251669455092970275897217561591621413505894146660952038447915955586621811524747276284530491954471647080333617173785783330026002431114469048763133999217808799404237668509734024863248759494583610067416409407385733153862133049058228225469118073677219496509908561561907013543110474125729351980940781728950311358787765205049241451911113639503159291889550193543730490191149975704222071774998517519182303777972361470427088591155565530069290116566649172353804740476280247691672261628587394064055664232044275905515858714963840594455187878011283899911412887989884711121859924840228261973032343382758532296197584539938354723595035478226757641489587969014855335527333298964614434420722990725817159678272466682995176112702890863477823785325784173486894959354435926561944079794519333365208551840857196023828921268617557537828262201461442003414797792097104941650555908844171552604122155268351085792062279973643620658700787135045966180867081183414381793679276198767005617116456442088215999123355985261829291739041155714974919664961941222894112421961898214372946792938272193998271363921423182300299210654942263763400700516939755315144474331422869434649002268210888840482895860853000733192242102744173079318103649537747664233980285348662857990309422366053169261871936832849369756294101425341917098434059697797154341155635201918345982164382669253291209678742187184152875195342209340370932467792630210051434440230775788180521469016469334416386050189904458310827510428054157885284211431859662364215793562878295493417189289370556294918674890340368199164636787054015170215400882497183869749691783106944189363980678396542352214014935379859532654476384853773599420897149763847834379580340307501921922585224195254592724504358974375672984373893372316012582314370939839331349652167278585970964327252880700994453154387379708668450119621679447835495363052423343690186463930206112239192356869235679250098216395364003025547193992852590750822378582313002160634991875449476530375821431401070412463105620510113809765089384922765825191217294296624026269018153789193766929722392044841439361770185775557693759438948231921394986176341977312098702566084488265266923976931716433886684278202575189957917907578016251140303495013456294372008792913585522200132968561162734927707661145572169798617327993228083372098209696464307871306073822000769285569099698330503421058247711011967500209933803288533631341859508581933826005993303359466729257476654139331374521277630276953018844807423967889438225622532902191574340119815203458893357356080926880165428922700430083660647303461701119088444931551254396641798059933284370602974258608052900799059055220427312396932859135341064493776929781972303269349463092394478367533753200340231368862690379501480218139277720086738134005137310600256667922622844185293178074298472666374446680356707403344978728760200036876280005007590262554695796177284596449287903153531777821683043642322676572842478913658563885209968964345380488566647094559143345022397212961474281196648908751667773971825836390167014139687206483998236941988378755751028311834635791296935754572916090434988287715408476075225206431010273704583879191115578250090813666060673456554041023617865386803553804157512633313171411501936742538712232416743568478618371098382884484837997123767008883924014404787122153990972817641201499883403676547804770079778158179281053551272257934266984836444639866335993049533259266425544015191949682011419632757776606831712508699146474839342062765361929600608207844799187418622368249271160481096436319563134425057386082638599915737160599964934676307695453439331070786625796956767124848411634115129438400989317529999649573186786516633602801730730680985386043682458763559406877398852828004539449296007669384799752465674199359404109555232460573223472465107474581223445136132048853247504250360522075497858912284415497593205871661205869830271175542610422507291874623990151997493272435900239080802957793996210949377410845275724640143029783800728291388197134815754049650207540470356275984731392689292971442399842944487593702091409229925771648911471621082777201638968169543722177777195686572354903985435779840580234479696559809281485474834353319852216428483903829191254544045539782192077378065951739481109256284905734824923246720241766408620975755321848906058778716948463437341977360703386160531652976279332542328688434050807575102362302011293426728603177021378113177277841504065592947278515305251969476072729345855759758896385809936081508381431141498595152149489050722703755947114435995167286795953287991915340678935068218873060929311813354892978345908821756177122386996664911330254760975295037779442513998561666284385977743225591866121394505007126145561187537503995003217544110980684032199865250142157805156120941189257407211329190320310344620720310586923953472540652156240575026958005101859310299153135925223633723771054334510595070780539086743743256833777926378377014476163608622738690224694075306004946021901917317870799304597267412627191548717924881103370458796606888373365836514238524321165477904905035397903257506773939174679234110569410294416206149178711352624584672522347511717692801581968090094845491559636582428746587242685392379982007599265013468391799749192906411102444877357512055097284261445493613460033109891220740383171067228040893454181242166616712486666624726657137325683217644032869608930843286415714283264724336390723178421889177597253945233851250954701332428252301426251677765147903570482077011566008413058133070533988978272891010272306177961238730354054551595538596617898706733924061597037476519096576804098578841672294848956372792669474332122571821654300467566432275205812925972262777515468135608228967776715609734479253092026477831775131259558172104282853068932826194367767433055622397234674787414665967527687674749755459151780232271596191288176304604469855693116528547687403468715940298981977421724469108447862396079816403879035605049755421983890571508362008842744331001511767243171603533006494606849722401453311508643813643401995648767718833668195173174197352938750283797196365316392927756435203516719497464294829294939111286473124109844773681425855930364983141295903935981549998238443687519690381311991472285272876602223766461764893912267711131115691839648022667185278775152261401039156311891559127320928929779701875249676561486684660443592835665346987932887826628943872511455704608108448253469405423635581349452517348875913765083996229381187316128833025176696786241953886850456175948855723593829492787873970453295490851465901259324397742431502686086872374290557238612337810848825257237723819853480824874724081942652442906090422442003369313806028308776563755726632885467864655575284783939006437313483550432361311748821338392702111023909881999878235204236036579308352205624484438112275377915702050051141511461360502023557846703808290317791872345725073527324491965820707689608412153055114123248135742736275357829827369284340791982971649001984475075269276920425366957422918733738824504510108867926259308750304332861283275739277068599007418309792483532405092375813376514956686543179017557493153170475302706199348253739884810463647680565880973159810658618795345271888549823194250848257854392528501050911890829088776432628106112354129428955433405584694162103039144431386224708214356807288900300225263559457360110235291099469587331135387262294149969299120914557685314799555630432938019659897639168780694405606752331208615119818033697355312341295408730251333571457946002827159165003410048982690257866105572666995980745972629672988904557725463115550722981454530318095271434490015532944102493084497413764288675386325584825222308756473547083810245185276339888296477757953769790509306240426694168684458554326400725537236924691546980823648704220804668372807240628203366966853526298336389793235631252810665099522051041786351785019938804509655451055054939374098577090748495541617079312536214043178885949864599071869603840231464935035378666431516250096780643766914724460692008971713696460304119845498422149754031436904279134914960706283192952865823825187918756340271361956221961395796830848835219524326368546117634437946127371921924797713571128803423852428680205579002887400881053873314771424012714595762516937598365714921390374560221564784008752160929346025893406612413588980750216112430064866454208370169721306547772170506508531762833643130987152958532577876011532819432503811072292568676677713810378305180034747508675631898043111932908411329961202274095863818054288216850840087138180627091729588823967381864381385665023956628233194960687309075716522162748576706253853048564307118028361751265083544014224680837161599130966337879462109935181237550178872132878690126466688026697779313866295225585661411407189107513840833371237110601393212386519766678652547261266551635653899102836544216247309219066445599711666481525383963875810181716112638959729338928266084921262301722775827042324332107376658619330106193261522082372135124153856512297042124330695413274554561281480146777502940206701684021664777099820850582090685468225265247069043695065307362573046067753217123814147938121646773854256559172309583933217366943255505030963098677924915129684849160075025647862214014086279047376768642132495870332552040516615124385422179827164367361872693956275420491413904246733612343494015982191340031319563860322089084017864838716863037153525618767294346042712650277406224754662216485809860581112707380044028162641273393523716874322034179092873340325603681187938890401719950732706765669594743398423922568947546580756283226984365050162819011217984382641244642200253607397405172675128042615958104068051521945796343910217165491134721916386579117690769192728124327783534165149634088517319160142492540094120567574258445035039276139259306389790638641159821404937958029126384031886129963075991929470587188547164463003437029835029556412025383272597749989734490612694387056628557539416987746441510171346425090746744881791018869597994515404367772888903659574671533393316364723549394849872027718951717584855345761635153819469948712131224934318988564966779668195846599900843372598693487182937581379635740038072936263350236650305884038717020749018314918993779073449209816153506216447362943633801797342481279385466959666730750343233497838322971220559907385674138964666309103741305016028420421388990343813098366767351530133929707541522699346882757645786318413163008664115227105419139964109180045923179657461372975600853438521498457492313975441421319805533232118392601401911065788644529203768685064944155941619587696933991296056291232447834742757752188305824744510508092309509531131188475280698662634788583752209589845788210074561789662970342471923037960565573052717413828039816193590430544977738425568164121548811210244977599035054105627369159751596607630524462985547240814114247476404889792685372032124526590910404022012293355087630185166170876957134991745489180731129432458296017304235847550287098489077623238553506931362617439157437706980555301677523978801351283668759823302483826086992611198915081728806295555255722589682861009239923112787707155636709496144601988106643519435577090722107429659403437361300027790726541150224713826446126464836185396900713622238325476536989324277704904820459843103684935841269258533611901478120565423454826492011593666426607558860323687040703922100477410062964958033164762071977900657676875253242505426671305130709706922447969924875119242893479525450307083384805531169413037312251590308494111456048147000592427331145597436455633906345779895813128106037726840851893240732102007907996155650483052728296093705259210259804281903327901677315558373755789476822327143548448207523252494559110748438925024937458165337958118420754962845395284466734036908119534933300482865649617761340523406023146254500872403817314958932949498301906182984722550020065386136192332721600132990271629533669151102496762603329466175151316354113284708264138859187056757425604750000778468133342920970450472151588244444031154690315802239083995459072619095920867447867134067137966914442428577432447857240869530626736056075938127229262874110029401998309846544378714879082880738603554705954298778762705699565466887572018765437419686648083337794367550756356020618447915898064193335206332477034717680514955407633968847912984215469529579218372280567385080820044372276481542785533904513524184358255475556455686706011737028318275479922563334065837845952642879587704621345577470604198940084052331071830771167608586084935905838008727543256179010368883913623853812798687646381721453025467788559309385811240652535772599419715177445535064296844735053831424684576168089993794524660983215402193858471053383845743607318663102977638424221756061497378170447101388944252747453188250326769600857715518805550527579836195768290789410540210819088382495009451549154658253185044675274576306242043533396245082564460051114459717914834492514335631148367754987676020685176653192752925775028035936921148566003421106543131741000973342944653480177694605950069865241177748492150857312668643967493132110673355974878750515115286297406500711777497650552179549570614654426249160221377258921602120814136070660439100220123646970597111474382922447278809842515491495073249771437862834499747614963399170721160256005082335440017488926062267933400831002108551431267603195127742271770231022902062195577593472530905024438721839984440312866172684374718198248637034688851796453082825084405235818379920793504182240424408316441202883848399908469656564262300746039792867295857804279889789360940870024520195021609888862178077230141767955492542806558364382495672670135669662568504877770669081523482333069124346403669818235126400474720127276310686949335725133581339250951671767052798248229252413245444500575162659352607255097070432506161076398863052836858244177489075227928139115669648759347913986423322669515737140756626750496643500976019800049174116166017089821304811750369988828538944577129599352042632004094736450160756627057284520020056944741908328806953870373565110598090725464785713968134755362048552076372872120422745902685340688042896521158083130435432120493171659034969772344877009456001676335932658116030885141275659149979103782070029351622421119256576895578398693647059715430052714261118368245714960725395757156275057851958514978572274563711973769120713133509622333033877066709601781615837315244200311510957983826842889923106002930806978806926938876716194647964031546622261544483613688656932377070432469414063037157585886079998884866925332744182616761426790046208799311191638890549255900323629467270573890868064222941346080023972589238570014614009357697679338891791421717928852471840014156037407081533903613718547652298826798656074522037307570036503105309322367091220997789819731056757100755996125400343630545931657579551075467562532589794163420340715929509675293223680127454149761491939933300130510602031645682331966991610067015163541135578547119759481926747190507821109745474984276867494286547296193191339866453937917766840872295306158697004558256584494558264467932804379415971696862839765338604669860935056401644899260334773469023908056692317464719422466157252514466050784678205819307593571659372483498810563031329424357612942570220051739904924683158068466947177357375108020009284476651547563869635360279692010367674974924577803144553847210147601223694199831103571522595053030676547106945553541009001659970883380824045516289017022011730258742790335252160600450767650282116184064527786140509232752723909156541171853221462862414187606394519407037108948159684099790953177869732418172938571040925467857960227652343857705604465696394739258067137261693826494961459144317301935602928841466268370374915417973473769658442746370088072911831102968765326965813377931952471002492531624070423781969266608461184448136345812918250197053289212588128845396709912919505377883900373991497030606950592172079250671325796999164903741831353711002446773737250641052850091135297981057813760164271264213276490556888957031768774026332638943404557529855136089381398550964366316950103315000562276114825762112230367545451478689878954173163349054034948489089814109063440244178422763289851179422831823798909127615631809523207656666800013953140004548308868908585779567003316700297316413137215715852100100039221742911675751467219753121105647909047667238649722667361757513870859242976593173266804499726234249529793755875715338527800425706350980891972328602080269515209928636222431131714976082368888675926831004498252151141601467230002981735659953408645621272310043326391475653066233623746851817847176678645636266722362646780174522143825824211175437586838814161606887713642018352265297655107532295602685620774665182701228109313894123298292756879610042092405165918801493462714121692872843728033686554160806287826462579171580305302476909541592327593675144491774625971505935962681445375605867063118639387933924511738985946565862063753213743843805096846129908373316157413018436715220951767806720108891468096932451344231844575636598542177870761460793957292519591100429236476814541526996468760390455780384506503690050606728260841812308048345737455330419835455212324263417685249457500063313227982665771023010708257156852725696148262649323996963907821732827179192021559863527759053551102570288223080685928254736771390890298163664581254686626271037072814229929744140508552317983978109198686606410933330558295293996771092706329329081137561795851713263005601448304787146760684739088513300642468903314564838552939331286504419455024168398434796723413300188730935540265642436265421926686732674077449614369669118394135511693411533047048261864383656939788618459230068576948221519186284066794973211095071031448615038753127357304057071623613611635704479551888574766149486634272750104851797389022018814896555061919366481435519612604916699400135695136860421743847468234494647216994039917728063415207870840447886755890948390037311423359300590419629397721157708586830533219841636359124340175638511610314332042069604334212764559440992885255953192615799967788961747192832732865287153558938517618618798054253842125411847900753345267632684349446354839798279845197398150718117851468613251624160626302591443087473002816765608718133141801556118355122710521102084021742250936594109502170128045144183836359189091722959344752895562258811218562156096227458481221960114215371037242217766338062217397859399647972691646897440397002157842563059976947457580443814736847690024429763652087654399582294973411110224507677046941093500526947407648525943409056379418763267322895066303309007108685827522590331755161638218177788856075822947055567375501150196714458206577109734353916979812303691739247201152117548016896716823387652512620419320564569310331633040200335866102083725153878592366269080618434046830572972552626455142909205165367586291840746712731698601106577694097198627879204448710744578820449767048235955980560536419302926877229108469199734687498026745133051255629194516806916767529959811409891539859547168412947648710935769826642945368844881355693212005117220873963984784398929031476123538642535188183622436372898156595781643779919068827467100111663481492604159103535215436451425144772599606100185365913381972732529070444022541589470890178518524423021394921564187053045241370940149485497405328073098446523064910481606012889162613824652331407343304626053432829588902302517222634505736010841225319742192255061957268498425081138482834134530937027859431850403721435327721555284599308838784526876174871560703449967916182369098978564516916046953370615963268217623319298191738781307016940332147685266693976939048784674933938015526508631773065355640186252688973759848359036277228563368992165535949690944572396385791424314613192555085947511294199197991902519503259513380238826836987397004537204049496554559853393292816857345795636110429724618131477605973614414285734277035002963309207143189549572996429738092225428916376035854545226508147138879118957508538381152956065301811495126935134798448640719382082863972720837279365613777547893866172520567645477948662507147879813681725507046958283851144504958909791663170234735011713979441621941829223083434134171717643609347870286512978276097145575089597551479937905141844886900439826041061222898667282731204202146431912248357486325338402537120947538400590959539524836986190899718551550167963808856929403919199302865306799190991485410859478475874156328727287537556787687475645305652690479280095587170507830276666097232561896528906740550353759496187826019031216863225406801759864782747721218191977327243127436327862725260207256165071209412385703999705785549598566334972992108299307144472558659416910828353253177333023411475637481827332383240383029533953157539258973793509148560957313646619657516572298632587124869254823544375707575224402252959681759469235447324876007606708163919702538035272230767420473809082377468641861710855490288133766165665702155352232430787427434190109129049273608639459834737868106015458901840233545513185484451937169143822754057436228629074278073163509276714883619286444273838759491468173221254233267304509675355041268074085677952935595807810368042573888821595741313948378149224861729572560114478625271612066751653793054231020073060566106024962895676572419487980855065304777980498514692920146586269216559040578712381575737913383654539637054521789205558775797123867386971242842454002400097705509857861846440221113754941462379304632557915583506301806261714521021196268839287266987280980535699651074280274814210849312983632532536880889490021651365146263391849309393650228672094904259419832535530931874895299966015816053878341194434343248961647140695625244751641599087776280897879027311689218531972920093420617712450492935179788563072458976038309086209213527064194443335358674247319800317902998972803456526540085998815270956865857247610239837343536932849995994277835569897682554200541350411194442618455044285826521236670160186831084009661567662259268188167666714664714895333406979525799553063266128658720869434177619885398629896979511826648969635659987083873635114718845655171060876404866400090196657028122457287705720964285430706808489680888709885431007513555551615354673041664561753565825624464849554414853456839575258423007038628629074970884341880501675463098450901042103428468955958145863800461191562498627999183913957144929355736860017659585575280790442970123041831835994036403464287836404495965425733682656530752480733280844694092241812560511537694285545536905115373254155219875649241769985193197955676993393833809602009971212169635870368663344611613607405202696711058121805892310668714489625686142398330089567947769403483088679765611852847358526883081455728408253169081991859089871742443965601504633635800760292587118017817928517395758794126831274913426323237902544738941511283649861374131915227213335184921930842377949763760390093812088749448115022880799096143112329755374938756001036515738618618890497962022381924903624320041437130209626962621781591855787330291503081205931204132506165215126601011863304333157316297171457705714969968499542819070002933847454774281631521356857219127669051004363464575943243178865575224690031597848212072902293116969071996738745768218339243937673792007946875078851346123588831323283608243025826517546721177517891983237939849462820204351515564268533135456331977412361179223470856804896409371096561491880920537638767035006551143030345233730240892254239734049961870421158674619193355676323029624258517660749907439199859919089597489013054344870250361544105252373164201384435587839678302373689554488852087535992259358981327055703064232347113693014345359153460705492525596558945205828009928675997833938670560440363277937304073052862214039347726674863434174101972356066421141348223969510434445895398054625261886829893587410832291687132404014078008782984456640272732393865329214822917417409440414084367056391685777720686831223668204955280082781143526211281650223997422458992169679011095047108442218134711666161693493815435452094936336677311328330481679975696250973230747510299707199557796840053983313178120153595292205597640761038135288575497343269924359699745050445060922539153673355519631529450434111917916233082103966907842119103646085080891787985914180096348023096645026807594727151693264718509708990772313493078945480830492620455308514045935751300393103404139384903180925934776502465278416386615188970911387600776808070529588329139649278128794900996994375075826799047755456460245579169541209663489204523203704497293138976690688211225741466919801326040322402510079945666067784281856284659649103506170298219551494542223581222256997254023976522289565791216798234092789096509581160974944373771552375697261094263683243121549936622334245337272717824048830610708337026213983304236778840453321511994122312771054313697445232034710562297300173074505020085196599430940021390351965528453869530393917229020593388961350404738537841785739481292216620705593380915437494445431390918732340689909357705062640370962481934702280250188958320224495217702875489263702609681857530973515286213697437235070129853635222971093394370587234722052172040104769964055656766307028892569148828983896386002261355419344077467961182266412493344053187075582763348851036695456136322772699644663032763730514052362081966379784097893272281114982243940965646018023246168189429296637644166957486710040043968223129369449258970340856177022805373024320916635269458694742791344151992009007977305105399441795156304489337828559385601781437572609421785066251881788322016545228568097444267148959231042723366539695439130697176948564134285807774482017613799340649281431494304847416224272406530604763325862513037144914931882582796303470553408657898801504002088961874410814337883442243052700429184609930665960412193144892146055182699416279103862307180815901127063679240562841431388626535831870156378005085170928929292882074297726128072028864441321382823236991770046777668489195075483686636610223033138523439282175199728033419429183942195397167329089779944834022935786410649570759776231488164023231047498269416452804885718572158374677554976284981519608213479094232119477813958301592991094159915925671376367672541887910618715566456538585887165706347287410019568080378618235078205715622535749872210107796847467337345704757741607164423058590302290448010412900487528147295516793232390127697211196021672951618716814241788366693026687906303324565542563729499001705017827277464076388260250971603139938629334350737612745229772175357867260431083937656371375652166857797832175971030591381115548850536386755582009509332445077192474398103115908971657723805729607153808282939563802914201993659603143436143070050423940645481443359946633884614559676680923847236407438631816948871372291639207286545755843141194969165576035626109120418293585480637953062509603426260460707526835993173331449268853970696501855513591835719392458287147263821286870918057845819149806855605702378057452226849975571579982845515772039817995515956961017464160283177213672909196431146026717559173235607161542454268844396298611717743351204235188166732030267057578798078944551113307533541785168831729530583870732163223651950857369478486685354995797964073027650827377332585639033244323912846387615928753853789859022220298172780550834430445950029861135859412053470431050185742218644353523199754088291289452670779278161781214710686474945185591521122677504190232503514158829686357017031536657478058019857306539143550477245339532802036049241297521354070706455436424275745438607609885264698659746190842782192416693218918038891832739464061302112841851992837775525263826777234842256044873351161444624961218330377111762151150904227561106200762203152009028568118667864345627442663957743287565681838149463038604428680059055695955777290513401467557975301693465406541954840813955237291030271363392023503408738227207663256325733720593103091143415905980609885292323042315412854802983298616641709095163855932612772480920595215954749601948203762603158772418367617423986810934471264798957304894952943243729279399438061641148079479206888430304133999925975635156178620609234411253212984025150187883420641040440265801168137140923837353035617356616408191475148752667968391132882575048330326221621864261018959987260953417738601913636366393217389334475197373649623393560694008444033299460441141211693420882925880702345838676627554192446922374962553778009749047368530141316537737795857112707831743117431541791986132401023189807531056905760285302737921075014097738834115936813568005587722989641065702344849987520456565078920092668192755059998395786916632009730331108103399069676533302813424750791812023654597079689202170719843856113714905059773688173206374397653593865441715459634981311496618426117250046199570934444244615682461220009154417670118941979384493529159411409649453027711960439993213234789395215614180981683693835977792389887814370487391802314952272981104374039464610180249330793557498638581181573541654727698324837743102022839251312755109031662433734546484137985500507754449871869294246095103676679943414778654026900289638480237905662679728379171015970834069453099551922384421508733546122292943300276590923791157647387892794185702115781998969423232952208420585947202545695193637878477750285348293636038703261866892521093150238858065121951717327046712713060778119341998580363162417715207025866048590810825863725262832201116050513110513320509579007850610436436007427480386001734080011357763637538440675011653975001012226204148871061236416042934285985666360978460300463081034482838228935646365018249307062583392335472959973421870777376092155048815013263558158624840399754381971695203740078627584610843824741219950103406987335225833634156864985123390941643609410637303961660797071562873986350460745535620100494852591195310497193486249705592722129880643247265417381138575231695492686227125948527758694476582368857570371605046961307812664255922635338340012055735068218330486738232252426430935529860522388417745734739238881531394928164592504634997975112958435049223270448602322557406472475674074680936093732076984734467288066402418817554851237222946906542884989620312878551902259304008635955224065813277042485504310240390303668524691560747297576153180237053227864174901496845072756640971413404311695574988110390002033226289844644918061095127344217421939263370833287991775506051310864617514663941584739508246752288075567997473699690092155821671525319816509754887317119814357883814758533565622641719518685118946453499680877370212573306414956789013987855084068315745483252336580269579365898674248529883687083050159969915831651736760168000501545427951759809009133986103366053938216325250367322792931897361224343593144042670628181948790037006762972199155949704270411372827394658356603547348219348366216078571873705784673142797278391621961594683485641499138058593730717275841072214172862673629956145091302315078404744003575029602860546846341225716349357603044008228713230883443986035984368336109205151760173050838183308592519302146906936463564810416109637093559712233796996486641510632617305073066540751025496759418610782671374699581885898530225658776737234187234194712741119522733618350782259646263157753065436965509287039762993431544432569327751956001549428476879231116139017775702125097923541375872108190775113337379775209836317967887550993406034786992849917162654194435567305487514135304259931297469209737401169348709789632048643504660419667668319633281226697210692195697711326139927320320312417524636513615065759026762906120931379478554743434153037068265571892640631526558916519518319509278845739088073332726382626333253146200848803173060323566892755584800282433973180220942246374730009828975361202397086145716348571246452456352947957857832802492909270330614430479174888750013743185832943609788909026877166755810637478660569843697683482397598040147762131808544496534543331062843146878795564849398567563812725255971427401828348363461575201256443726654199613881455559454754077734742537771836831026421874136258287455361884826552273550793767205950271186583915965825337715369408450927117696891353230450050849330777042930652689022404562875752716825507784777005790826980450976419701053578918259967213067437170275844588534829756915785962468149279400983981871471035364498228903674339907854524989742646621619489916166556060544528530858227223245235292492711278858027881463227940705329628110520872563332171315516111858475232302834805257156997313623598065798252906826151954556238536356052243138283139380259117304680038259283873175895590487923954277692270229238072664216752897415115585834894711780463065379480290130085186331922273691875663736998413023227472332766269810644015352126399963873116588112304373521544083494684013284784440564366149504192529034465560583043442130006803745480716867003323796421413010801783127437014689805402706279648019318528885184752061208382929501609697249737959149776996226911873792394138465306727258522103467757729501094209813292559617860775629795277159650032100434067166120928148530542886388866000879552895955873193154352349175264549666420000556347918642165770219396769846036859917737651264294762414141052968797319682301662100190547635858497321024783662811824243198732196649353597222666583161752359996462016879663773090013572127394417237853330924112882969366311904837953873021878737830933593802630122178931700708271237007185500794875925071690802534353387641037128129671144366556204187005163469938732075269214995838741937589899986379133910401869297530790342018081859441654570043573156572017412636051890263948254773135702645219740475970284415192222431934257299201244324559390868938843077091642076476570380305208811227913278876717387698467125182535132231336443224592654099060041639338475206014669249762508277102917225669505817474966245992022606255195171786104490698903974708274503746644438386117245497499113105449423612413255766301779342148602785227645966276708553236561723115230650430276166853932894276750202734971148530806431941708358067324417527001066417104685870648052050661659958138226880472292340796296370817316813959881130314152330205478710406315803703910296527700828732466841309598773572454935167334381348280745598931481507153651818405849646831900040984166225354593034755145659917497439413486034133695387071282610244227417597808140528329007912483899166884498903928411577557963762595169542823921330862125849776272619307849472102312560238233219458066212481959645204912747437086401271362777749856582674293132042551600669976670184742147144017247069408364848339931489399130817604580438854460218529543907694097189170163127598900979966016639712353039771193600534524466821278295954330903260265891856594220642772467407221671798897001581277666262766809279745065081586639847672763265180497305595756966421121475547980113172563600012772881170759569560742860844554312719780200952014883799727092895048572172028516291313373143532837225303352254191022009337893414243626592826835872156660441066569731380788429545926370472061221015038094323787242657605585660982806997040159413459254133261542749837488560734063729296610184781032925163104419595126625224207329833225176619747791621638943790307222240292097747025363957276732142139064860084842850610120130787991902570793850324688739196894792579867238405899900397419473976332348133926957814358450400374692442822885124299388039468451098017539941603923477481737013425982905343803927182377699145459358703459424171328412433750049133527692922572990519502925792707767873720724228720585698325937540188241829733618505000927391903508501815517869411521175949111047214661986740722613739228329435459009123150403807807371762361969990497634097078544005396902944246891955123579577757715840178360132146604343404218641576610669373264094394647824800038105299190717543243004028092329630688837274855156961551912163444454865697478716690729783746251487685197059094510481553536526622543951123275386966433139289804266615935038583289656390265167611089528258995239272526900509340112792100526597395481199862797341848019917574181890174198111785708661619593986094604908488643970586330672166822596100920347129862030940603806043002842918970942839988475437679268482008318472753045921313945510350979669622920796366806340783791308505788590233559014830463673931890514468680011568722264791400843837932775258164302777268283130706045835619686020136226585945651270666506998667436747260107730394194622015513791850143172111614192239868685820348763440977605417439000833086964487108461798285017494870628435138353073564821271609660383204901163792085250492839583856652571607744513491809653677234877830120291270182020873419269752319554767384662769757888311054634942428486449159208006579159423871358626483749710369973960269949981284055304290464722050026974564641921971055417031128263466097875070856338294673382206058121170183571987290362415451508177702654047067681881479769468112964511703388630825458845884481592982151622674661930512633632347035707769861491826121006601046115978077988382524648094901203731160358554366791263338596671881089217081560857865455525145819344042676211042477211652851409890365495605898188345848117548917848324527192747704635623368769172036699025066782239018903744549540105280746973275282322987183598504257171020918965155499061308005435364261076315761051416966241702809813081292318908049386984167820432864820363664037493769941573441618415138871547235415066352190796274340488203832858621223763589740172568867139582578136696664869000374319327506614033854900275946841346588423442863936713515553367142509629948525035684869451790800384480400570179483367688809786242800160315251449884310468580871696178027524011104201875076772202243402059817868542080918981432140294847219620821701496430064144294228446507589038050153638509273015952585503568857189740314812911939246432718298096871231209973683730060117740314032436347612284610243948321390227029730573417361965666390523286122382616289253996682358703300163376544057770962099673472934743064674065444825230199560668750622268790068664708741785397172322874658999466083501884304078914910089245696315595538615841341182555555585772120128562188893985126926419965976636606303336431927574477150056071979804090200749666826877108344503837244634648002496195307393136821530641423963662556771358966502534119254760144040776530833042828522887806491634455429171181771401328668656687126979509706052355845939121840095866886161845441101554476378331637753445015507410292950823403403791436586464881042930206466882087604719509367245956293890650710352705092080986069250811004160524309679155656968515101773169000919233803971157121447054939418214792106125854041309432242964311534312566145863140795290791498532162152870458727233095766178932823663316922301660636566997269243067420999725056963059194818379329883586966385790825616474904061147492454754794752027097545729411721775722778609589568533175270401348035799220915012802318207510728957127953307206786110438185694239939900012009293961688124451194685821163145345785041027842640394780483344092595000562216092941879239979558374314154641557257785855509917965185261977095390932610351732701768346636161707086899946683386070096891722337163804109911024714846154033529617982061545264205959106578755280778884496085093124566510160974821624626504094475180576574099764656072462844716160031853918617741240067358422294593378892312181740148636065947645859278459977377241448318791757147198329171069280190616781351908516332968899055845973253998252508954657834521377596855231713689766774926282096221077263390098258648901607675478333881894080603997563978460460894085152273284618122128054480192128318424027025410524371099140580690802303437725348705938358984123998401619736358857582331234862424166930619767659519229909766888215749558384097768184412148780132941966603669917113801018191369374033594880285492340318984166202927183867689357199849120340495191813557696571088799095475219450905807603838976239109665847907598912658953267934269330456911872613552190401901307655925439744662217729879897284708633732334868465413390812079967618534681623666137516473604162905766199347701947101868242702626364233917271990418285555928898472239759008174363552003142702861739814160682674151618073709752294971535812385830074852926163866592140970844341775241376266551096933913906406808579544053063167552330541851281733737862380603513346537327944616427895790217779437223506526129026038233975099813795034596838577769183709589878359009273626672680307599301184370213664911576418973555757199414691301038626428703083198083640189019589768306766869071036844968934152456328116500357337615287963717368161093037567231478124594012898254153388871430703878294382876054949255732098494429612533460275922398783366917860655298180541673116609739988431298888854450426978708621866625944957544262617708663975275791967749802051497540986342930240356892075781220596721388550896215031115970426711716968836410896994752694122706581527171346894664323888778346104331483405819923846520086120978782069784727332286356713187329835018852893724198402695695230006767415605417711540175999942317197336269832927762418033337633756450305971071760255175913145344574535489135184843461911168128910290421810874559828038680512675482330265905405337821982518850554905368716618228786193288086057979381140008998766607802369634591776738217322284560898776559063143858194512821102212108089308893164369197820826796747297506330056173768411063604980908557148049350421044899893305665378151454028377433394623234183292662199785517796045252416676577780162136988820202273108168373869951434226151323299189380827014389267042653204997790304009551057555218330481490247835989871756110151449892512706040312882861855701930739472474081660537167022244549677340241388316816515861671353463486698655931698569377161677347515961674011926335123084473342910078726379390915196879632985939080499466849425846234845113477387213526727053107588331973340437917423050731366357212970191036964526259569350592565769756287740671678550644241672984664801849591892966722439027727053110288157313784663690499111020700893517490206227098412391390629434690348689181538281081513455474787466432631154691235214768505022769711080397871316831379911900111924663028382728038359563050588507135182352172533600339087482673706856436140538189780303449226299143812492391467865992926915658502360738025548284598582285606150250414196441190139197732583835824885917663376201822205353023498224781456808106397046120286643398102825363666748019207093999765724945494527599007480344442428157982176371795277865464976741047719090633730771307421772792982813730069083998047026431266348357796437834707637706913395822887057502010466144332381448319948825217658460120954556258021864672842283181234100813036368239673431671822915303563814046272421803179087190186837482110244216942781637382876262695472839696590465824023034566078076255090908817862539540971018067795918250230250760451642337845844663582989617495496756265499126337216203837952255785648279856069747469661454610430415365047896656811014102631916331516640916758568670218060823511259658952319929158521676287468275158791018542128037173976215576201992194728481759469943956914319879236587497174443650855134284107109520654903939016633555305369956664223187159279425168247446545759954272861754036217769404169076157954866897335809998818095792211042999140184822830027673371665616563686026947178378224377207278346354110831788664849918037775509841792736424520457134829514142418500790677347995845503778222244529791533378483163918226267378255876411654202859704410549058335207030141610876211746776703657948115008104472393970684050550798117926181151028443576748750403991085235297181453822300453163764609694527690534678191319226221218247834776513495235248334534653860903400104800676577299567317889831024318028970556872343202759964445143650447663999265691294770156099612733923122936368767247509528704661117186847212219972475426818527400680748894605370248506820814286329729626694202503810611351567004692923077235811587881556705850965579681626823241880053548556495400725210028295647025273770948010527331068324016558742873240305567659224268626004091602813585788462404221711203456429427654222856404686146517733285407859062908056135287351699281874006706898457666967629218894237203687364404174806200379304653629202755338112413808183194676988323058115177663110240059629849543589319745193192472424198824440939899061132161314869290973608510645993532478754132306879714909469175397744796628659667929553908141315679697654920105211102985133493616441069884341177378729704055135488124163825723751248744588982421544721255240825999303990537098857530889872869936358671549263228017419440646483819711680725201704587068626461714526495425198601006810200744908659589521626856333236023208950870833697595463882165257805571229381040204260229542196356795923030598939053662271869912544286146013477748592260190040762126227889135767099616483747028109954779639398483141977813774704185980981119257417856989994676475903214189919016206597499098874579874064650621970824575157976468701871879633054256272481059058725321961205577626828531393229111835286990203330064214072057436529286032122850447380334254258927669889635688527541193359293697467487583383297976809854268705204723296692337332218680433396705549679415625862067668756024003464387888059907803947988002053054591975585344952840521004171843580101566175914031346399076319234601549939219995947410483960729969871478212029790410318064053273244465024860195579006292395130769056177142387351931072843852664130524534409172703046267948274443994838334993442503392784370649854614549613817862286677661541157801029556221441761659568014771115346164379875861008401054790439956930627205942159337427246088673281281633643487048724838064425318911759522825476124407175143119963359120281739145187214319957781312747407141063795937434399875072927085321151018178380033886638045020970621730427497147817069493373665912075530338001521702225376873595440889023106871762535814056887946620196968654810709373635548729434320727457696067877794060288843332683204440860880221320138372514946945001330362817423301775163389026561896512735890595285102206122425924623318879670906817664645096217133339527699237262304675818214683701379629515123690191227641705519573615622659883753011761410411076333783684563005722926522913451275474784114730034852803872601016626041729633624507441863151073156286513113688464193673880661728464922167039479009296539608438798133931310213925997893858921036500794388530262889578336728853790806566639233362966824472897193873221124732270428669030918499192137845477974576483966094788664959081257644157699385625865125968147838492065450217042973023509040945094576895949779176268731040465627521758318092793411264637285563006742447415073822320431436601346059210930337772761394008667535803225864591992003971227358627646848606080624643158616829645453769904553969407249894404437684269449570604603620184155094752631570794894243481813761843567134846415477617384499646672759140697912330196487895928296499312791924747707028491864105892560137860530508080836042904997980017905648611345885955332618723744359070447892660496373447198985292043353771337289515548941468382157482399487849968142245120153694393058791570171360239688708352866556722645487154774271708842871515636209449919598706783776058685221811356028529841808576217406227815384393213327609361968308873444081482608561364549384671640565286202610136121918789739794669565834240020368133862662989988601770648529185195301932551631714396947842143264998940644969943880817618423668940231092369518296111489294087984489777935993214796579549126966091482308131597127259345308734493654754998169429469439534807243381602829279945176522349128766251789532714401752114730147147824612998390787922051608890533816171695534223578183534744100393122709427504404879438655503528244544950225286739255091442507211073608897117567572021513300685684179985577818876984691438510329244774088049242580587797611345793115068430659468060338789142806067764415396899241125043723371944053127556106801763564175005377385156882694597751458111560399692948338748169628404106228758097613654899448583567740597245468233939885645003606372969807937224538768315451230337951985253114137961763972455847983077565399604022673565953375912678475200057495561343213390793633391918093498077157991410529630080637533193213528761025621614774677005694596340849104032780176190397630624699445265064375655354644436239797265461964445746077927517061637914201418017422220353122241541339226369260076496114022545174722331784254634443297069081214813602115646280917262031195954451060448132582254971804748108848469349310807714379310667346700304543296456086209557642629161880021913703297307958789418339682481886917931490405735837151411160229999320408015590327322783947038707133256024654654327881531087402402333828668057400466945094914188750515592141362284729319660743079900384307690563513686359690762966908376384519053570133877636449356050616301910797440755055578975467208360599688239250588958420040313485531483299085387789618654953712003481757353769887051640778399002967443334726664555678076456200026963111917319850664824011209260806964926250158574606631182555122639293425894796558787192830579583826194058317275352695106132766479824141492553487414434468157945469804022428205059556321084088350490892316514890429336080398026966951580957935780198513441981977565522741407193121886799005309141171457169257179023791126195833283124330398738428013508180272764754897920610435750144791682236604142314803376408446792620814450640843248600396913097110848746117282939112586680708277239520175729923489653223978366055373155578374994415496046231873451198521083254728712916908563386921764915874594140794995167468545166030954459720217019216375989705299170094893423419615512874767774662727061153316513326419715236199588777695506623962618691908720455694646129434625025507414425413403348357449063667835827593401065570217462085950152339204223928949783059059526420566575579873967362091998781804501129707821996188865021466865212983359880266671207432297662864973269940491508227277298134238024500655694295968940793446557844615731962881326141076723904463629280947650518530316644219365864670474971169876326222539138784465612230084728962395429447616174553856322098718777579383039887547806892956113880922383161645709497609659301698206481156063863103949040719506286408356509517774489786254888559575940531057503493196433034313525085763618941394432409265896612182238909640570431854385466773077336955715162149598792359893135066231037626452159883205372907958688369211872820383653991862517102592225259277524641064021530221391293548603131116336862807893325064968884414966373545172244423821364937712617363294359104314688196515127152316490951847250870974608538096433396875377083399272870610907668815625450931067613797334106097831337595619885558781384339967476131017916077601163916202752672329177237669280996110817907042346407756789533730789014239217639695700261679258307511727097278386537777664587228566063146692755582981470352341111717168663547195900028375204247418532709821150693020828548322092315704026826924529703378251740508444750126245548193901767408040984031507754995912477954163315118235057611673875082280947993890055097763293633444552187451115006284582426802627000529557110601303864581689294191928845525753266855060493518496116881950869488000603299572628964136627617574789947845808949874007086930871658862505986383100656902301584139349615377060147425479641247484131349045261635376175153689444743475867580802959563088906907469008379884545426655410212446289468164655665803771370764849542625388081357521172657092144072748920540146407420020942744649682975439499235509747033139387394810576606466627391221903927024051968808653707822206609513209193246854055242490657214769315824012557939611607241370652624426948499064162485381540047722616148625680361473152554836965507293410550802871868933549166339962823582590063190291413708512431275601033703511630566272655124882845976242610744074541818012401310737925128173645937452483124835042439560631685208079218636387012110648241631246079889517508623067645748499282506167743555139021736882227077872486616634311979958505878668439497329338216444638752384569251035683331486779653913518566833796235936182985739581296548912591284571898612287257438121735551048357014234391148635935576568117148867522811140306119785138314517243702484556338562860789487222886596422399981134234123765604461106923722800170544669941813580002857963129867244803675780706423154492838317215434105226723116078792891873868379977111164062908581178195557009766885932461106485877370148998102463478360459379690083222419404205269449737045780462196390521767176314285107680978265650520785978794081946791161834621046169865678012569037104390043928476739957921683788105255449105209804153890937241801062494170408933136757607170463594089354700095037540308453506705194454242899983067576520470339200057878598235156608047957384135407709992674836449007009893342753255864543441220789670131156914152856752533247753286356162854537943649263644314675500952698604456007402836163358424813716951815272308366697608187482213754805007963762572647251414257471587605065498543424928659177407722105709430224859962730151550054706353026652526735363792364134209536783611890024737073915203214853859478561163458067155022391409275169359619910984526701172440229844638250542585534937000120191904880963113463481299701223996956546842194168010556815887841454194229474695923157024075823754530662815772176033223500570539795364353338255817802781522854431823136188582673528834897770675508432324608023587699735220976851189458012457268472308857196274776000528863862532217927876978691396230895057255490356349356539685089155976246042131775614174163250550319161465304463334872381799631169021114381780453100780495576049859570033662118694257099870350894254818130659859202653117665689401634263615261406617860503244440373277818785757431142501197112977712735547990064038538069385968841594242529362965312623891753136592818276826760893317981688052808765595897897289321781464057216528201415350116325993604997914984339973413756956255788909610702573212086527434660343775115511790798436682972360146172539644181276932833241137831123022792450439623477635418953693922116020473928077384501752392930054337047576023742612979816696586630801771051014048959577172799585025805779506477646167991619641420657696960274382204399121787562679671074769191294155682832111568862552607223282560548980863040551945983412371213033367935456151218466794002989214569767564340303659715358719025956754335925479175250181528504719559028048829253961413102086110482464679813998365277930050894244126681841576201410926679665375786934488320644784036946612315700355171767274600180970278662752427319897667893427104898443813411007014917837630251632754321632312591673542232708662542520815764297056721142649973194126508006578623532767380793857313612917550837184997291863588624360804106149457826130865046842078413732481051688658769867988524688561829205172386230798589475693626345714547687329628713647500674926176893325941731074143644756854428142067103373758283137937669075614950806234643280578505957386239810463463979975125549902426476004236200188044425459908823885102325966068357078135455626577668733815812535069552524211234854125677349139438324592722847907471535977239106912632759938903103977066013347767131011774545248572972747676940079436443852375825554779004614638848342081415266229834946118091211027852311977845895316215673160105285460842365585425582848313791239859199839748345091452761323742519968840555953389019446099006213521041114083154806220609253535565284755377590956063005124554458984998573566738698113009723641994119514464652191364910839998620912915757712745030870420242835285111940908395084973564496085201047823440821629220775781876916814011416797790352131241043158429105852671338059463110743376676809293249471374720064202026684879358783265205853504628343723104916596266181219234509617195653766018018399026321233978776107025395949794473402286058199936573550191519496632129735763671156979318342475295809979154829319237992192126733217921562493703925689125206084063988974426566154612103957271365057224539746672121679472000914844569302799203653126350402959764293628597781075813823098885560312996925092905973095958143472747701806662346687526340440060940164950836287756787415733558935806010345948173959994062911230588748178010428025946335231430205832399007586063033297693281049343533879067501063109940980462903258057203692515216685717135066615452171285870050294181620505476216203718106340418718701311671261623101043656722085225974418122904201751899697323675602725800400658686156444995134982996463266968602295869176917234470516856842684045245344150851201557358328483438606964568528122962107526870943695820435222656011340626092892563694531206435026674176002183840664861480345254805103829411177481042337470411124757508617447434947910632126682505602554802239674172876621016486812456614187201795085518275367905229104036452839487801212755229010678180874400409217961986369129698431275966583582391726899035507893064504028712187678171989747774997972491905779368680272090273225701882723264958309302964430044183847190924568607808353571745592227073456806114699171622733285964937893840122945091403687208327957125706607189217622802295294713898980859377836736667152411858516183073534257011490196283651198473532757096556498908142103523379630811419819709423044833654934212223999743826873953911600765529455975277723022289608598715869678021509091839934036670809899835571582643416438314231335595398218258716146162375201368919691350648984326363106270502312969163079552610889651754643680898782094458324555038847816424572070150446794179995423458864163292082211224814340207249312276616765110883372017149272925857724228711836956119120599039984219670846021918093596639905684316303757816145314598163390922691731385595864742661244746197166583066382827586166491260188095182231755085450695791443356421163097711028225902447548552102616870662302006137595974236510601785373154498275178581300159093677118119326768823297969373129325659177284506184967708313697096281186882183009706530927058602679665211949934338708578009027616952285349639849320312147832395254256231158867468677109867312205784795201070786514976152474540736973490446135132343585793571771000884125932097137508505860319478564097543099476287587513524480228750499867985638291722991577630210059170196344138982189283130754718861025894807165641637141381409081797623932046601415291690526911618981182820154110475560688991146915407931895293463242993504400072804941083473726670146350219589830414317403715352767563793302989078759139292600817771394409818924576472776487422687432258938713817915546343945496812055114416851036130198003441322020026972747011846276821153352495732671782030167500224695142542164686762127816512758070974279283947604367611568203339958235112573511933183573646260849366139103741906134592105570261994097853751597541263829500541378586253918894263777222438139874977826338431136653354207010075447132418037007437886628541860266195198384520490567832468356217094657968228405963546789162433912772331175625400996110531043219974684819334647329583875795079432979694044567816801924380521080777954336942691000739445131709215066302417223430170602901458323008771305216117986724714503293031035919728080229145265697579087971882053129533184319323503013822811143033412541353830667181692294793536400480011451541017347992490254296896184625577075234368393747081045705335838435151592427556063043102607036341095439506431784327889050473774308799378035704667444622401434810752601131513196873052068020956669796850175036609308075227587387549220657211324826442294366694986677734603476430274802561970333123562749305472241966478871229499956970942562738023289557110425873324719173844045151945641121684015494027124420387203107915236111219121460094391260535505448717810051338676106912763048122107817076172006363279579116254075133154080913474726841624354234120638877355291229446200309452344226302004838769012912774376945135412322584548057861488508771216338674340865874032283992956734498912426556362392196090591859728919256573818400647089674193175866677710666424061494051772009503555047667436955209202005803203707024263916407511638608726840901896547926649430362778572127457680890835223815473918307576409765368389907874149153553468039527177913038243758314174301265769247301216410574699586760961777269533489619582369646612976874827170596610490015826335294717780753357987220803341396698770650675274898880011841542867610837346159965317881774299489380751031672678400440335357343822589563750323093469048871701509768598317432913073422667497400732174399066889856777577117329307688278536142768777725631546709768222504170287778163709164302967691771739931610658591214995757526987871076289130534498053421580475715260699746270194099088842567754767413808807451930556438203855116727489938121989378189014378814612196702663518090078089871162372540622507047902479192559064459746809530554144142018622110854660385635066577249079180893367746167658664745051712137466966452264517631049240471570374656360203151619077011834412226004457990558828016267121735510089430225078404119833310288227308896697629040170959844215066695866345113180311749686347743940952674943677532179943679093923526975725407092418392222839169310884108763806733742881941753762907457284077290746720351616029210930956139825050702425568348749845283800246809946654210337730100977811377932695056787514584389778709233330957013798276907561320964101811895565769875473242930898052893021359769007439555055230139827631142999392898635325336419598271312858389048650577155147821496935268258501226444428862894564257119085839985047118857570532854885074552427637854210669228751519386883427909515209964991604043717394855709972706131847683619788912761615039461786653176174776841851789886269378207247254188388012498225732752900097901788667298250267013543021562171136278857125467862149141047636500693966750720481595850565060030598103624769364335413318599796247165105615861406840611405227454636416174597276111781909916048203995278714373298876184696737918130549550458882849388885958996758276389691192478504818771380712759222586506533648682274297976242748602157850131751732696026287998124042608110978718151889642446837320227995460269225369850816095575559936986731999228014534168287688268882046204818648139196097365674821592705111782300161839229172396043942320608784842611420841493539857816038788681252940310923591588962075238568256402870043417133506029407068208580207851074833707475765943033218959260340368887911552290033277338496124421440054439226103737042588219236339606537384186988461584593964962015345066321700682494948155087460713611751918333386391997049247265754455753936804716475712589749357187753122082430528906453846139844915563051622458055850122966806009084868966168972653939143200837899368525307141182397137164130437702313776426756294150450607501012506878886069750149091792182961107360981641633303782719279370352177742007292153582223040129858921386219789550592292629514685048584044992526177819888305718868345401851286294780427026124672591591725721979835900584321673301480248262256327459026413101502176164042654578690576969288017447297454398941169368221869365324187414252002239803910004233649678133218769193829444188498999859340514749682078876492735434002340368739671474662611491688625328983902692968434042020345630362608329834467486844650780501493889913841918290517998989298709723206810032974574560798312420188765472049456620611385677059412059063964065509805072718874314784193765524158065233479907614736398041047814923657352715602271858915096154417050608563436717332079272260604308410900791677547238397774432006975752671844839385942315151050377398898408742555216411922531497705559215677770277946851239235808185863871626906343337869779503097419883333603923917151705958768334754700957029905451967216315852564275992239520176041091460816101775314589368997005334245583001980666643279510888656224615994368829651112867356749534342793802629605373243379009366891659898396361636540896387789741823850080658456119376558584550127776247842277806413644130482851836679602421563526216531307645861545763638897384231178677741719730256917452445329703114789277716097060100070135629914626782353299671892082777356370290363470343393141171518350006468292169906895964550337174597709466318271517954245693338805376891950126272643228298346339405099136691889122927774546165635361110440282405129548968604856837085139014333315599100759876197841823027540164058510163028771296822013345856296505778098397849317099791816252348624746926781648632531089738953472558229236641258310015345406608272943446640742223086989833877248773941689560017441874891345643135583598044708823327090620989970595515958844216259973715042696794573164835261047262350433946656610615565077302393870006390260870603713567366502268084163760341599794020084999306111071147571268473430989901848568124941617085296170456584151443840927326080665653728068258136991378164956537420944591779011959133153703701251572659032111376815946182450505501642613775535492540122373754043284572727635280301125979407661476202581543639125669907880430974778485965975201904353148459657222376870319005553281771513874757633182282825712638624681329156058387164418345179143748176453777738774430350585120344528443074631111241170523987213133309080255313882861908272832339844544274914090315407420269907285015713702559442454987864760045582192937453501745626892883888289053475434636701645048070446574431710735818493301200948157972380497615404924448577976483100914961902054427627003226390400064861160596724389751085853515061701286948732796947654629451339242777011287333584146629879679486176319031293699038294219984262959865358118416137696765713653144294366599361075543604942916165359714988542261331003167746681533944360330408610012236042040159975767743337522867753236942536770775898014492621663854061447309173060366948113216230205435871779654398673364464412278577000061557987021858844900614575464761158288961786699146944062392089416830025243697907623288825463460727881542450474171242190091199580288210033733009053417999677641585030554850903453122532337577505859618588927001349633317679635059231696965444261208084578798851714668065964183401309983699433961933363600524782157016871521919062853982162101589338003613225352924553557254304662736036576051821159473479329893672890590573319618287957593574914669500166131148019625308431657977488550314950391590842660154075903938220103935045535529762603007762696365778461127708647277847072897558632894618590257799558602515259256846289038634678106048273471206170337465478719110935431032978614579101772997521644325053938848358767204603980881407118047293635220154907942273844065981006707465969833057314905643637410163458309832038461787909621462539161474740594197176367298115813478287407976924990556433142074840047694654883209427035438030791268485446118431648975441376656149833490848325742126611765800900094601160117318610181912236517260744326378341994726888196913958412845887863512854930483848229575846646894903592612059107145100060858828383356959834754448102480311206026000481972666362803995119695380731533129914750859107603909253072243266678332297329540554827197431943627517363297562613772003657054391420425610354167525831259653661990478059722190509324490963404068069931957499743273874416747377539229439633098735690398840995393763669714023777157640757108751472528670318662999938300037479151683995708695605890786393070092180574744317597631883632206737325993929709410818355983014937343363182133900404902249553109954918924002284350508490262299155321386179969009852415211908002709322972662481892219957368876886267784881617422781652909743343361647596825264794581241271346640810276228369457409671193799185506165824756350930669521023897755631517116704295215003831552465747649499621892148846556941866751152670684880791906064163400885882136634086799418174051391562658715830353268914754509023988223180741003778193212393287481882406467706585889156356140082352020389150180599171898424086528542544156052105193434528289099975833576640881100271450605626977606190063512782147964180573400786117075920552462041803274803152443922783602140822989840775563912793947156649075165779186476673061819429554572630398711519116405678447778762086423819417619995711809897308979843982678273281780750491363727898273171919450605492758523921537103875465642180630120167778199881274515956365243826652046209147984023477158627281279107701832121043486627920526068935405647097518492132935386547696071207532128330476756237881811451028761238375830186600437693473852326161071005496508591598527499220159442163151090475108244323038589533191684388413231542626985496693823648671605855158920177198365960672888751799462461232666291949867425491738705911015175555444805931379175292615620021469808568463724215075222389182773602290230298918508975508511966603832147643110052336677453147702036458364516548956124144204221035605672608176263946784761114831096079895052543878835488838759144009171200442721428507159667183423860651729789920695800593275624424586892556882546309363841275873688952268330917407595703460299576212032077539421261990682607811934826460462903242459680395111030685449430956331373539355658771651596705696596887516628633566836484748166013830768764864986992627924194895565986983108827786278973872227743152545918393615864330966605684310926166965364887790526563127324007863683026294122121304987296345309195900342085198106431967755617076760959642922403921239731130930792658121420912511556358661537549043251339090792253696201110614806540907215492259683097040759154882353173419413378656053742310313037554696573418559543331313088969743840754929443620773175872327919480252949498394810804756090748880059396947268687980998241764340016764907243152982313258565990758500681374512484473695466307017531217182098057866527808068604689370538563250117525787554951692680138324171034927935698684710163802481819756236683732538379359703930471381700985786404680429693655631124133748429213330069119225022025742968931183213365359813570103911742881212597505266807058285879458036618802593080091386012422933261091510389416913289052930237981640193214416599509565133613807612539572128938450720392170737390472311281015658876847374069555371826803496024795572808159747664451124229150060289274644103230260045333554743143715082676113569449694342542078694463804453433411027532418896243383576413604852520214356333401459126455368447100787703946268883014814316818339019224651999254847519432137971722487130758923642246579234049002209694417250384167301297531797657425629408176141846875693671573302258485076620264628942037581727133222360256017268154293782056880452614929314303226675036282043398301890455790547083335484777768888153852626907635781142683057945463456666846103659411106120554035553107347253442184248410435592336059732512610096285556952218005158105540803458356132281843959307863856228108883691517113534903570945514441311846835896885132061406197754371445197250590572018533526719137414677674579053784594935386742906063270221815519120236097916466151605024998599676877778194582899333041610757045198947866015826865633183272655336078057122714104432235781971918835599251658844391762968889167580540868069926727431238904367985373676070471765584641160617531532844941677185336883675733273569186893390787030492807090826369764523649112367777141823976387963087928880708574237382965598609834157853189721822653901888108816930173967060568025705614804964314650784169074020563625354333740916065098487050625584117599481991750031995838790530865890780486709710265344001836024365140348657713481466704169674799948791638504428370396058182084352258602956041262533394060207095817239188604288599720143085795742724183425142984474829286836239324383413717831028846682267659425355785213459017346780575665992856313370804503807644367102406282454486905996537673701820644839176066961535812383077221103507831038205117442221031558841922890627517248532919424946884123241986476718127530419109738547340694811416176603464400246228695281027741927073836528842171810413782009806902451679503901739769047853267843319472906176088036141563725949483269832940761523833337936948858549386709364445269904178954601920125320639282218836531698954098221856357090029095398796481704467091387617989124041403132404069499289868905766403688030190201268390281254789785998733398405378486683474270852471267010047557228881042135281390025773534306238380577911465821896503840883196428998822709346404747586899033145351518714526401909723356948668868293938627840660706609637550717274846293452313572830177309122444627561153046307091936880619658923702473788345232248817161771722340307180655785162460446507598775957641376540884754203927940613261313329404801187694798516058434549298047909111567188863708449665100965313923095972523253119721348460725183932682899777862637265311343441025207695011579827263430540003125761327687322794593167081389463929484812883357712640769015952868205684219799226033284182491569091055761567290672739306232971099474813879327358933054027057597996531777089527996181746884249024524098644501782806857965616910704535769681945421246012728608261549770930202677953902719870443704602752794314034711387159801827981955419556885213801356910791780128600794157119278277578279219963217399136072004126398262995448450007073087736781224115472816575333991020983191673407215072276670146627803959732256796528191381853328833624155742293799105024691976919452084968731560824931656582781111832863134440708787240410749828081729751836169453293737584992273619504503520679840489392107311732560586650383642806192073785253902717953614344388032007832734741072120539025506303955284512435550559216306652661122619083319077004329540222950571338281738611226998682275375071644753271454829897420350026072228218167187467793222228433966270069255520791469922638630706574205720001832466467570763715581784861922097579653078003067379789623986882489136170721984594280615867466578146740371237197646091957340927514229574641735835245838413720676488212653785503557336800043185185607038420666190030446591150256921731656788333346879569213206000775493780297807773011249112771694226363006350043469953091983339217478056623711507804013611416742559221161661896048862578984391264572881806111919252009367159863198418479074471201207006001674420502603842629074771040722624149771891801113150367537118926410535690423538762636905816206271690241613250189279698291541181014682760077410404562294538429809406171609782200756724577417810016286662723107353027467810335688198093500715647291636753250663370882937918909444360373566489309759023926734634433612788182878932462485514131095823339402823989320105327216393043339806250141703915106628609213979327798226668148475238804074670250084658609557432724749993521137854336685405029671895575801544649179968672969359822252817191993692207417111851192431902230145313207406880670312379083476179650621114631717521345651372498410513502915596024601704861033615342069993016624961353647827555593379781681497950032466503185459591041051782946097101608353845555912615175061781041623971456175029005887429113119889672144904992951131581524385146058083702649258980260992872457626466295642445107517606918567593387969864297170554540106110802806154287706688645680409202385797496282121070341074521779223595091600679471016195003798203460256772928872855755250798620493670276484631662007329036319697987670176856909484080224501482791426571193089134764924127321857363625180292205364005006176134562156679879275315242292322139243935257476726334254031854108104299534133115203607750395038422705880544683961814899529780619437042526654523470207537609946116493253615952626772273809797636856432088358458972941186178688805650716112322439699436344344467579491786649953012795161568174616530272354995608452402658016894730197387546271224160935261751670254846564673845593684594581624729640361785889967457138494202822111448400402617299023170319439337126827906656519931769208416519136027737505525688332684182408693447573890338944052681840331137860359918318669799280104018668072644956314816806045363026968163169158720664388430275782043703544514313043009809454589378691230674437526061051735360194939702007733976052385208445204865067574293532613899521713195110293972867786545041057470251791852164354682501155516693357091566439004461594164825310416776382978448229432026259348170089187486903791049308809249826307197643952169617457311877096404677194489422542538524062814575274807754536262645120407615240359333119037080346596985162293567945052537157859439058981511993307034278135686196219150721528099296437802869356732910418171918959142537087338052195580198715106572850068902395037488831383349797305322023730431678197833300162613030171909805403868872728789451735463625316169633297638516051365468482393724227513121438246637731314408079836006102032437661380342419914364681089126968770195939806935034156422013605443154225882997038550596728347714344494598588707014369608339097504501806305145086859459229735523229011373528410098005485687328367271139442195540193090882007096753643158641573929890450903005940034421731317821356624254450332414900708904703496260930326799594235304439726770117776628654363522869663906679790661511005875981267843974148813116939904864970965199410848381934598109179546857023797094849674126807992927845691958488056032648659875814809212454875203840930580830095332010376131034232089535463303190907288788578712718415200071282699842831107499012672748869833860683328470086051773608939696425136955531295462118387980324022326934193151956039169686322961986528802513763133154269966278418181002144951556167090738008011301830689987061744427218337549650126532389765012885310265223026238359791711528859521175199577676578359014541784820530197020968293584495161525272158934553043603479648975123401030760393367366819718579606579299061390606204443688833382939561122256044669399276282733715181497026805286982582011233605096117322422571708798686234149633278328582422689656224685367495121568027690375345433091156608137853622210560669210616610841942775531764456144677396900391620760168850650145345417071273126114784862698367506887885900898522210879114671157958231101332171301716340181666626396365915230554056445103851522265164675055087701130160612325919891730099045721902900333706844335632699838264490301127649348643397107404879481913252259401626563394317361517912720843229920006860627802101939398858759826740573244035121828625392628066413075863810779126649326290282741649760436523588215873257008855904749177448303608706853626844267529467278169101383150217579150127191443345526958648988464422189838625772630047184072406546802026727729945827683717088896805709667694314462536406084665745952470855459164084370528842980690022944191142208770749028320770819141952397509534518971880270055756513540129935614105584831388392189403757953031532230931662107814175102750432392246098422481599740839105784806088352201687321266801768528057972977208054691930024222497438170516623642082690710980484414098970965689705948971819505161499652914501880042622579762080786046794111956196613801610941625431706197208178756781342891216370492654324684139449801256607349865058184591303514801779967487676163271614266789642686176564844703708304820359993006241189964601578729995559728426894166202402941425182544481258784707978138222488183924622613090043266600889982878419512115450704746146117430434027540299102411747195632777999726053933600872631693618749355035775115576114526514346224828447186247811549677322238055317345299994800976995950642661781367922385867310026762940889490764001320262200910607103343806741079776380836154863025445431411924392645321603805523532383313253704558776902719241474874939000482071088164639870583280240433303647879633105780846648878558983779031821984317219220212422963753869568033598559929241374618603370780296431570653789630330394695524686272381983131457836337809195414496122751773254239716025025421723461897154905920508188269090518917171155120149510559524289405428418909521767007219889483071931979971568760820086459083835909290446257311077251784819123683796129396471595533793447785296885195090452974639438416400398941756788148629775167713789426583799324919878325090722613534842268975800430428457268814052320413325432569450805824054085678886827173144716162210893850354134972697251258155225677708740659238995044278788111624505850207326213686646766744862774127067537555939949639306668264081733714031912744380087595692489448065866563195702471654832255255995849699309555386621986268647665600156765871736404201876656589305784087643419105345276541787741203412394883472786619477976339311433485572260916627981546490643762338026972787364462777556949691910939401067422149573704798993393416326790210250599395763427477166828128493652382179359219507391697617266737497524833027132947053669067156324458502581551699291882464049299180864297812088820176122566924394318730933481865788970608178213656617833183712868348771666518066772919141797469240463409159555189956785920981608833859481503054839315217289267414972734916189121292931985340978160625861995097373436463853534110103917572711720942895074625374414655284282722748801436572425088059810056600470317626895427995581108861605122798322696449868977335643795729631626061643207008093877426699971791723448929338222964945867317275008147375804341327193592921489016527619498511524592880531803191420349795076493273240276201810387800970653792587865016392906731141901857614355821285708488633425895273437057362215734067204346332225154802215132950128800533219172157290784703931384753142355797212971705823750539435685602450779790892191679271042713940601625665006959246461443483478999305370867084439554795564554390950736719939152793560212573886704341020956283257860808686754053889242683692896534104454564418881042993520967507836707549281673724225063361709407320584539943354199627929997669951661358030114796689378551144668591346890835480130061533017739905009641644874594393224817430014226384438706956145893317366051268534385463150496494050964247101827438737105553735318968629768760636338612782925119846269107137893384759807377109872992414036656396664526293001770046178069338988958010547040471999404897239979164479993394544153847034464112945308181093144087720847171037291496037102470619477538168465948924907740403243558190178474167360792011289850201612018091661833366069209274516790349181608463595461104820344052763324567304011254429332779594531965568253451383287101165763602681347808443053894797479878888901263788955440608567640785844074952465441548961142028964593063549729007356724311293866418305965254441983074662005012200745942258202925097337160023236469311087872745353634556885004665522113173213033104762136091339491700218933742139702163989227173895850295349263342110066103751243732759132421970477969609098200105004162487293492767913434348410498408045388927821887383918092823479524933234082510964982952258577469041047313857272795979234962514257944907917842323243295708731431281588130995711218355633177622826776710902141009199794635127862481203106801769630442691066819652850202294166476099689089282042484100291402010840782980266582221860891209908681135234494264893906768042663193693366024342087093935784665311252616218776292324536413845202178621306674104304154673854295270755506243130825643364383694309293603254101298542635697015330438090298416949051721553114384168560630590050442880704275953363209427993295028762787188715570324202537076981604866961956580838394764335568807268982059629924407944944192098363216684907737324826072866168405123762297740503294247897650698581222975137222807787193972773214629105850555444328263373499341483704700709060096957497357649237592553764379169936214968606550025712767852601970965756081879501661062084843685122463069180980232761316432824992422511016589259184277376714045702963814980230459702609237199764373626570207766760421930661337808242130132389423543952858352582260668144128811184517443492765291397529475709683584103033095173132810550235430473887817725967103686728989380021884228237483236168911176534863113762730411870646852548000192946729012778053829478819288045868094311049095054611163412617848548399455088767213017037601809546689798443545964866648901200620310257563902157672003415797727932314568057210831052887402775062395744103297616610584546636690767260913201668598121198415368485009716417064188193052559061978565648524665026879541117854234503280349082307799178119106951980334828287212856243637713976673710451144562008766003919071501287357190252379391368849181327962734022021641342076535155432305193454481316372753664265844092861833289784899366600220947265872987628334469586405312372992911746679600224819025418317509925172278067467735556109206685886818431616232262774807548787201684291996296126685002322293882999261276407265420708257859217994637249891143924993471214850235916935312590571814124418135491532128706499795241541186652891332692883795469256348513595692874639163885505256745230846526121942067902235995046128031650889615563157842686010414661981814471554198948449839554473370091619225098801100150328772773569808860134835534920742532338900825575374615858166117532647069264477686048075716036845281168008819614640376124485414903798071268460767039517060004099228845696970406448936946894707895386266370634120661153228407165652131311178723835791536911037991366934708670942803635730078329856850412582471930975268011835441753804043983502286475554573861079989184354160353741153049097250109176943698340298768560908312298909639220639661601008042875228402022509051874050823189722253907725422580221303601730841514336470233943155173093606308837129260367045931431242229226086832638465911775018679141465828469989250889729554228443403878191731796413699807515707780827223451331987746756242359783323626351789352002572175312220870829739252511218462653106038542818425309674160541204010392399216807905235085275592820874290367474135820366875658166977873360711691660654995112041783475787235333124539940588898567649726116264269975168296405855565146113524864307146178696058252745262471388732471885005823929678363556613381178421280922061266731520788208957650748111130394941799641554610719936102471033504823360238057767604726244786207612371280731641575654432387678451018074305770279687216366797838776210457262244457636381667379488409397201109002462944305362697269596416027260649519166112169157707852865747955427266073570687885130927869289054984378386851787505971789603392706703523132713165791670524116817193389790526328728972117582967580139795999975418291520470594283795913887474041519215372491653076450044324031827475700632739577894303403366481740119990750846783851447059199900316234722057041251715197923169530985457942240081952494972100222059328597046265493514458964365270253673246308573778955325062218698420720167753238867317966527789047274625200593775093876403564263334555718152809602962993388764281435072738172284398803234862038659867226644769019743696020089920143461001664380432426853338204207266163061408642038475569400465287670567750578924323956066877182390644762013683810647586085037839328238545285214528474356101670254951837283907290043933944337924029009673667093869611333633749672434677965596879895780096985398633692084065381928242642346705953155624849923212481975973872975250627408846309234815750332600260298228650795502348726139429691753502016485957512016117480465404057941600584300333384749411174417686321391158906914095080063540655142563182078629624644339848755797599643857274833823165192998547986040059732439168010304037274505286675327730974870755586993494591322326200809881743485756407256855738420899235082295173331830059060306596200003944217247521331910532811537478308653489006956565083455694176790374618674657344632388483703537530152709341241777105100788551969443639741726545500520383921156143642071225243578475207331502790242113110288086283977409524016461745909568914645480230225757113601451890009009266408311975789114394993674426072339269398473765191824448997955627674909240084666841589575733094741487401498601179524149109205642406568437892134971610529125344839917365264136196832636850496667901248250072508500234227263245381110445835457528089732670160435123910943428067259974012188391288560536083901746187439228751583562745921912198837580703278216806856164548627418463027095419778610088112485124206536431719346623261015848527656710285461889142528869514143181292530199371702854043155035896866739140875809120373978044917275135938719806934900546398071686083751564040655536547452538358793008263738042147414884834067472185191392589564837124797442282762312107073865711148490750872084593527958375776568341721740862824349166929456850505853723321880273613842224583217549191396081658065632211222310659408072113865901974349552412234090099358979806818878028777037084244114661040866634125969595427865640789547754779940642919346294655893718766198409782802100012644516015372209613804867359352484593705500565019479745258810550709898055228129094708466483290564686910473122338803496679040646741277065923846779874329745974648932998280787706357443363275804684071897124247232888598051044274209904218112933869149596806012968539564574193683154970192564066698583069311944688100042526707360205931963195743110833168845010847995265995586604436385128675052636728247421789357389924185962663826892346107116495672947674188140981795577035044196648703367371846331699945486064098288759784309815747423006842851110276915781173060553084340947882597975417950877367980768093612982584984860312906659566041139799192530559405921511086020844134285000711584500347710007844484354017756581376100676959018454262760451388643878636874936315597649170334961355084720399363481561922534355062835535193765103474175987279646589599369387386282589441305323833863118759301085719288564770858402271413699327916495502724913441978469785857230550049892984452228228327265716328553806671308604617646741489991931174821654509065928760892675480731859603625685158484581426881086742424059397402182232255043793355952041413728124171098973880466545940632699822579769610543006843626554502606385026360420029964995408192467125633117837872719402033735458323940595160781098202255381727935716929199629068750487108995951356459671081507445827551252154580566993139712304875500105394075006404445929366427643669352224396378871352519334874456193922506911666046530828194953660941393858312432719988090018187613185965878107260968131144104472772554214430485939120226603194917678436773876492876761723544859186904211196327775123151779406937972134344612645215597040712532459312582603106555500672395752854065763861324863542835516415185802444303960924848672383249126400064272759672093754603385531059424465972931859015034467272982932724681910161645529448973696753583766297793941970228650159211674633307956968418497810723146728309307018975716050183875193393684601889745588529116667938576058888403541251809744164904492572098452893421283054847358419368752351438847867974793059215296628549193058086674430290285895058158357588220601368448093706390648731203380723568231309247936650244418870448912376145046025150410282276857995656237641829910968671230629008887131304453856138731985290231793630064050611885027426757182422273188430699732556050025261692425740646526089108340961056155687987982030372497673073508435953588651114704906294212316761532896917042764825868096128593421448779894857694622062774564237939039409297952108502451736087875693428181841452938153216872663740257362063437161025477526079543883811572264254787040253029600141113533739402044882399010031420960089486396498083049846716585351453763311245145333604369954090398016145441970992309973153149352535902205233086150548243496847065446662553329925607759844003425679227063785767711519657317572387142455011785136802885590961321521452990633515759582848770992818791551802164670974404091039417289166480677759032936230191857559394267353465408749062351481505371099968931633493356232546146836002889414986199324377012494299040118475719601477113408014976524494565369861327681752188600953450649727076592726471372468950308187822717694878810510098950750021987470078159836549841322213165413122847756090227261921705269425141967523827064088750104621467577818613450207282470324351955576307017319464032236619610281532434716345725991963299752252312340220789821683602572681697973922891685737764638236312190971312358812312642681177885596919453136192570803089944903713114170879560310288587307232843214833554155827327216614159288932884272062427208694680478488373058972506287585341215853337080312332099634671414750935235780583102353404605800942486097218681604663404748701286156702303632114580749841624926714140167910002902389107340909470745742455663358162631585916120926141742998647368102776345677347832516195449068508841264886953608786700910549551383695461222976853779134257655971703467821795614607017585398704268275236485828267644283766277009933021849815985376760647738170625940186801787886317747376642117729724695848100822682174616322365661660780647041594384558283480396519323096507521218207475670783438088603301719843308452906625645750864763719340016128282873068855649795794484001822342329170061886550629341639126744865603092252618665265768105355352575728164619586360777820829291030122143282994692044775061809194803581262957373950911955299950561125198966989101907777369179100235227479878863028249066457819422822521697396439363757463062601793746447193992034147741951748200621854054830296507913411763088038648529330787119953208599280692794267818447583605352300474519441905368110684276259067082246574955628681549314306331187126882521100705993479517197483652377380745442611252974458982044171512921792612440107072906070589432161185860051499400235222128772861639886738427733295141419328381491023825801527501919161071418882235695741489388146315379161805438757742710280760154600794960978537623301638998347416376600471445150919648377202112511729025669189003342814707685164563935167015644126346388836603446399208110807813337396225180974266447099804814840190124826718427042371391604285054034488705756386172844371649574167031556542220291796752780420183150456177498340737279323463875892350209195676214830255411735349081843551235992534797577241582844781324442884600464676945771244110047332504697597649205042445294488902933435507696832385351763321916292832040947825823971998118725701999714863040850142574202853569657101286899424511034681492733126149513554758507315373913164757527931506872343244312034539108102376057042222779571876719621275559495375527809978454465427602723902724865615328815009595207312381706378852873719793289113723377838924278051197661160656379762214924052878243156670741157024183073551135190750632258102472376928061457895765532277862393998709140690243722005031067940310886714864859495091206613933983923423886737211020858450291153219367091987187803963314654653440911760877138541427621208982181679357959118118345929712090412606852384338911677456935097691687565744624341641539952211231762245717912716121974010177160401941439521762651125307605754703531946343857008262323012866573475466043030733801855485769640144902892106545294059631774062784274391688961332633075164342352421125959758764883838788318047346352859900452526038160796873278192251925326298999262549864846475396904749008568275204885174855339749140507330477057265049665424168221114081017690136177974551525081439031279608924065099937727104809116221716867818950024884959752083027142881084260696200634480336814433500062596455504637446817449477261289995521133735540811610881703729059007477252211667480500713167012356951510839843119726260233230884905082386667021107934382683313360418431732726755772842954516997928910867188686522270498884006006827185526913842303206904552721233321592398523254587171221957234094606744273514649949906609187487954208017739094210719925502568966150642247917788887699100120956776703054595413704174334409926215251754901230898524520590570788185547499147564876194630666083704194820434597216458038624296661649617590159297165090794864482751891683844454428207233769262746117445379805863359054372280702475357365562508641009036103069753958957276260108315710646869865571208344617899039270704448391665574942547851885809691182991159303804003393521164376418916329736557315272119673780664122142944923205569231813324429192917385324061280861937725709247481186518422303394648227470079638405705514022991226068671697068755857158124591521240229776121465040540052813800281428252652237515083715852194562595611680647391625016612455093867593897217528758929696866606363376130251544294304226540571979042074328081529917939935468705031824816342503641640002132702022186278506415103423171367191276398547636342426438279439780310164562651886774598406774055015595674352491372691182645502287926695067019757849810444177082618323199427725742260779076198853746918304804957727335171861469736871640663764044522258992431261870430101023968981156474762075981767327295006596307962472189789256242247190885738561302282764310862674685705007869424637761294244480896905096149793945339278287328920107859716355674483015005014219195893989142546034980313896755847000698880524070488596223354616458748403296107582865349566644704136413176299472461989421864725706266794190775929494205215718651530193523820948494782187193984942037939447039313074042955802374480237181182512266835757776188662558205079707943312745142281927606188471661804392287742905705350256798938238326796181900669597945437796489967111179953406817904789299842487517160792420353318351421775016414748763191523906249161909597243024958623709562042335165603103386805524613626429716869351567910501044955776189700637797798715666507309968270540127895061191150488253586032447418215805579356908378733641857760150479363167305924324962092951816912800111966519775755092781404252696630237935910848126592389130229027448056628675929559563613022809880587433523608249225160754648682775907826000983485455143672442545561911258737505995003483156991423129641913476765569233639907209176390321758812856709516403917439484536541053632431615545364499797376893986738875161083690916334556934758858544573282771328243980460899109675130756864249941328396898281108663954008957594069305876380034793653784386924552976925687151926784263138168472841640470936676126083683987331163288617815431057600448607374291143026494168876147423489511260102796665888372741563998864117908972647014768196978132664652880033597209354815265245193874202623406317558462544880537568536511331954481233921467280828748780164614050823637851322479104787515052553213920234062835577607055341496074917428767740713769374228942351543802436901123377697682308698786897498628568086747398279428631328575354603861184443094749294320840143533797070679147357287472668171803050495197340313113830264454088910722884966653916738571306536050151445903101998226829659690671914312091709986314435277584864740239821362713171639452975218933227458222254159294614947949004004165389577183969749877674337638859565021002397077480800569706450048546805706730973812014823593696521649807731196331741806253045923461001583196628744843693978321899821294559700712267158271792242922073976827844743153301835145525279050393631788965982578415822343324869666694518884642158431542344687747561363645173226613258021694976938319604510220203524355899222575593466975852336895798482720314119722133398871700929692367127620644992957931370978573222328794508981656021223394601970585541046260362815287632164127329994746480641351127364560130955247866587321873321843734856661746383013920543731758419866593344528778725851249433746441619865729786778417654247112932074614568906260188828267479144720437747614960650589880922627406737036010800915974915886952673464780371675756719797726633181406776279916377446538466293067958716191932699999728167580834623708559200684449815689034021517254488073490849194887340633555453820734831789539018392831822918768424270883582713105431151717047162885680051462739005786688206419303736326391831726648045927223679260415744207499564222263393704574668848289150532509382799134372599972117396042626661971042519955271622368493133547025520705318784876883076292373964471872823216423775303408612462888468398498531563600270044559986485861215351943997344421017289395299857744996000247274986413083016924827626897543900540729868130421241708461223435667981973576548330872131373343858644427650435499206464959916026488030058122909926396829271890774198135559381695472586601035575229576259275159521168178594732067263808341172840847312175263102198636716269639231952530620744385946313161356285531865341579057897402006734895122594334054877713505250862308340709319144342039974391981937223919788656438619537892705943723353449705584418529706143329970924608547922328415811812899981425211305746523311692116763034690377778404080255252321055643414423635840595439309965266714421837898622884706635395594609337045134512657674398962852794132460538030291569723533280138515229146918459233159945174690187452490315862363840246433435751868937946685433915787938228843553935799535116237769302571018294320722253071877360578878086393964319952834028352890809788226617526757900144243648649123977239454257907841473411339934799557080971794136646746766819945709045146181794560876411945006526749964238902844494030281684604829746221876587350913881494768973079369912026010710688760277540010650559360750568467474726127978338315231483606742778755330286394893061299030063644696991054074672652884107941223206089175611593229633346085325916117035600584184412075980107310375589001484283444887912663488197473322910509600039358417663656142037702638996780111770828194133372068079252579230229224084531192460998639031584839260724563833382459812419539688107852495788356852860238287944061456716905725399622071487463763441435533461666602641980406209456014487625461303426476669663382260311442021113732229288583954369516325332265936950340621774180098540727153783943480380381729176953004971063714387221760916024847968770539396817746012536146111959643919222461777379985494368165039992975432729994170417441686620239982711477203606273042492451884753519328033489633842452185430204603601527359145648641658239344488012188462310515483980781117284464859048061020382368501312737123062727310583442265901747217476826297311642820536035887369504639836211479104487972302163560319905417406835131812802513695937333704161421813580505111087915426530752541520124194300546738114941816013469232501876955234402491663691209376133044541483300660957332379984588273713152184417748617417773690227682794256932216190278233835459322170671730597142405010954146272556116392225150628123975974100503089827520660267108433641309113893137518761239500088265077404666371037334606096352137408894712195425119402722666053108021640299601629110105411060961692698889008384344089984184679130860467676364595722078157503257096524297106752416931762185419492138221305058660193520994457063711488367494383541042580325912266374337759296802675568405166486944538590333293320709714403093837403959511445716633150495770487057028886225086843897739957183137364898763924926081018545029230823861288569493180745318341762042684303894489643568113338453169734904760793246655685809305323096110739834716796487104068283017636028399179352711161589224484968816492958062823072192840425076699882449761562401887571888061758284193324912831105796191801710684490254826577961822242183780677607216499323522508267705308477116845902896866654033256543065111648834562603732725643664274572289305713663021981550370645557152920627805071215485208953637158721476543185100636724063792709668403807647956162042256162800741284435307454103920665482840102528634560672139401891674496421170732632751532315735707163026604343033949572606956193753138787290279309844257511138191372326064543866828640497569293737942925534168811815759304584435122035953539133968559110077838284168448173540625170797581354963467767148966707783813306600829275802816683993167017192439418710042249749312290099939104613647633902457437107131045725036214245624019676187820577496893877107001678567816263031978201493950480697644951450202073816155960813496299817839414641370476001817135072139679319865449762525416874278428805530516075472829517155892127930137770325336678834144126936665430748365418104194031748657634910803221704406823495618969505274177767046888483831130315629793419235798587073540165495635360263097159191604385504582010741348784413911778385458607264623980896810850051040599120236165262415076922669560009906808684084233058292045175995158748105729949214131911593422367784984361780874240423333485931897194524304144140882329637887671346817347601349255389908599379082263080598688373126576144552727740305907585578328379999279476773536041051775427564535382745607758847566818718418830736488628498351097610771373415885724940965823803618299955357900833932511603680393425164733941469000507577121921726514687430590805421345020091091941598056366249611655828862461710125784982552109144530113311500275226038719672204747572884925372428719812238125188657017970263293446584667713696985964905528738294189419741867857622890965315584595069011081470625224125867018256793333346361853641295873023362975434655892012257850570052682947539312515614571366306913928913138029760248954871204703799078439674944557503519808050143427049600606953732952435140861572394080965451519201533178987693264155984684401154979567644625727719930337510452692738698430940346035490453441850375202886382414196125408571962144559075460517639907744151396831646100509181091703340526883663796215517022599696525926823859269682243688339824444902473095759251664135076535149956380601288040238745968468514997637216861216241274309482022683404539042693239471975725669361247102285760719978094840485533438556477247568864485774137117432728639779059160164839375718494319303290028858752745123536260124319630360675621425706809031276424247469563476016764493715354970205073736054647738206208482875407544008060607145385566733178525620101300684180037016198843016775857666409912004432347863605194260592931690853629496526054305254802781134827549226750641738222275660905167152104874777370025430610811694639556669086763595224812746883354584349710452636956527890945869071895788300318483611763860398947836364477651192370707165164943899865066543587900588551376920375369103333765602540379853979402209950932130096815981327232886298793813946064198803811966355355033218202653330466190214651316926535067841143236715787285593029550068134838901851245577387601174525854198335731896562698943358565622156654479436054666997369389058321922619290963577747058324673159860465997580277877845251329829846148860896388632071773850960665653038037117987349185006054834664668956443895297956994100197545611782962355253148299102795492860948226613669956081126348532272836178284995566814268773521839090724471204572000679264144404517218012448239028751080559999206151729959738816731439832397965028065362206929040604041865725884503221417123016593350956890759030569252144894158730490027137365644875840945070185306450029510711167347493115345158777539502914303656464674146607863945193262099520731338194421118235453383445564767958423026090365070173803785509498699503433371216087931976314770254027686168910674034899707851327241700541672703752232142095256563664533578342273834107202792247985410089122737627567603673888876020396193141263037292225303403174366624606288991727786794430748045593367249711609839007211432014019081146666291278364252440083371853945575331990002238042611476385055425642672148426600427386413714734358383806532990828566269818337078114294568624476627063199359788452769627422888009405036209756967520784532941792610633795419824945341934228272919266120405735963030517450115546441255341486406436346081363564482960832136317561196519297187741401314156132775805146561531512716286472381606592691528582080121302968526396037880678650763271991259555540509429483462684284592666745143041204396056285900919909749699442169547550426100040847810902183892403408183660718740178238904910646245985908945664449748100482365764613095880133341206216087564721175293145436778439245678334367016075615930977923122007033530775394364193788799100464963361726029370320040752051848926924666882724920478761778020759426369783024737435522468152605734475700758893153488467917199323724970843321795992115698628956792336462725146030203096368852300287406893142968626567371356488242282585326233506681016265935754182520186354720581880024398558914910045323063282100053740316326191922952246257976568934460416485187329791668474279928947294283234701879544105144977905986360099381047307715482212937911513968149521727473575897650217332918695163294434865791050257676001344051881799516497861492776491882027236284112036316809483898868956464556409048937191206969215708829106664002402339670216255475371309041482962261678572648833737087549676189546648896451703867826395683590771411014527587024167093379678111180106334233386454513154149224772289350611937978088386677774182569742277671497389170119798672244182144000108329281571614891233140417882778148835454169709360499772628922612811604159916847438660037328367572079852180680714003393782599580290361236740459937098020323290378403263055069440316396918618099201165327362252246823146610264505664841283790301295136059968301148356713580976550334148549662762406768433999887462944340603765723655669925204080764395479417858928085281917275666783654335397948535435347414976789501861100331373333403589631627523835150423750851441168238133331144957961514749404094478940607986527697557885263928539136098969545821486145765571237833399295757205397515179378912418724119408455530792461243785290615484335663553914715539411679567843926357197990662771442031446913376440470963388683983242121767513107073908757924273504501725268286293350717708177235102177411598974542311317265063806100286770345189816267822003458127238750357323031426424338061036687856658667273360722079587556659263635410351866961008019729339978792820458619352779646874457207279813680369579218800512808600444825369313994966167595741535428359408295098686561481880298394429446508531973862128993731629872517261237018945781677753936261139070591480876456079397210389120168220096338629481756528127453118953840798002208315578894104755420232321329183271903451521296739669912748935543757558499602125206334967384826945234870176613602160131688804138246951368792505783286154608449154505980146156629242020142242971882178603225297790106182150085599508485916831689296853319395674378299674952677946031999341785459405435606200291760894610154443318490962492863737898651335016223521911921552574629662228007821792247373627108476422504780161674142508838608698278867430968784995053173313623248318497279629382667375539118350363803595179423253769630660744262248822560423269887653239407199470211551847039638634430231471308662433332268709394997229482779836553294118731861510413810847449650091435462555008353314534410027063485730339371825446101136259611984999580025644650667814253712403063525083348290298276344751955582182135275898076658366890222778207858722655103193182492363213093575049833015307386162653721041725223671544780814036429226057393963786204040814446195074608798438776131584939405552113630651442550058488230535454074464169009018321768197618429303099397366162748198354176372772961526654570839162557610036038782694232270401233810163343598296313206733178639531713122505724332470110459870842724668254222817341715041059127690689315167901207324973753406376733262587930860914389897660181707769225749272241922698791120051713466463757552248425182740918428842318419267480073055302669410970787510774387924941739491683180632417181027304608422011270329496212909015439256465448020799886177522802399312498898650395520861721099811424799807925606932554164699993238956470607419209270293297629984030423338907632414657504631452739963248820180653403165845432000219029660035792993047495105063053473625484805685763473944685031921116740888669062150237606787824575739497628407528170060855397484603317572152276458663755035153477437651429841074137374663632931699851025114231453890150495928760921372044316196667310866470911955747102625355953884300428548958054492493750547129193446351576769026038866885186426450427679729046099167917892693995566020650775552083925643107026400838367995684916637458635958258238213256874178378923336811786460975098734834985210235913471619329846378383924244726603420198248156494441829591993137386434932794304617721069551625747424114599724238629527287687827488153869683894824420980136697143234729992366391372209475991222699944599537890642584050975617186254191493269543429236190578381537331814758419644037779559146034003663078181816357398451757367323133104200726666495305242055397721413948946932733654566586642169200799000779196139761323420443398701702456551497076822697826259203504972289578595163104616640414898741861026024782165030082039043735913128421473848665143844591739000714197991900089477224922507877672729857379885496220541039645835995118924904433835550517138180081456964838932762458743567224189315084354805424973109211552331793005694470958885574616627603675083547313567403481576284456241507599566008087926907377296432812514579248314427639624337064126643341597502710131002526432502760881429771574840747044804201304405728516222823392941768887799804952851632527194053021328036041040182510977732354478078406115937178382492684791325550549260212750808055770396497162433583599998192194513482135659142072246449376056195168626215678309864454649592951838254688399853785802093252776461252107252064263904674346311254897447748100084196493654835597896367361729361599028874870921479936458125593406598771899182648394716652483709427591774997237752855957607725283795395315305112075406466822583248544277414713901629173303607139761396016122366475965547024910161102533696699588983774632751099615791526984591448233015707464236780643275215107130475426453845530555615250683570575414481130449479023870830648113138131879552422020486229809754728316657923799544876744485982935995308166602467019778452671563993592409957729768648121659816910955410779652764905452302523853415903230579821828062507136842563952594408799262731351932265022486115435059331674474754198607432762165468731722809003625362004825890524952746337040750465280475099036131793587925394405910594902421002790478648118762431435255848417019368838753539211646251690011340609523472488153773965218286541388652790349666704512545637535555012162452831554029913677641393652222040655454311203118713247938919081682635437960131977205106179633768672278767369523912499166781998794225643837848765708842208770072586068319928379477726850865989098899384871943904173007903652235910844988981076712288695986549641674382015685730343864886312288123666003399360971644218728012721967193100140158494968556411764418292119871967269542268798116193153620856841548247784089607885145399496549934508232395541500081905567676008757632589227876979824900270941573855174894219503456080243355570390606098014935427641723169164980737099757786084900042467794352792846445733049147648927166461568044397556845619156104994844409358593948199497451137183123465051550150190983359573161561017708309817473066324632931100183432578343292670117088960337566920397898682826911535080334757722235458196414445623722371007687148509900063464383486253508344239940290113584441834672576435913781281075487890723037539721045833538747109789776517326008313933368041104977242239398582026915538026543412138284918012917860396217360303896358383840881940326430301988179304160348045051289367282541751246460130921027657125889801684876293514437614635074330927978305443027851278159497216676792056806876730003244438726152695115913643244410844389826403565913553506255552117582633326434912651664761386524927962867387110936732228149590210434387369864867097089110243295734047071057119819715256966570404156127467140313156369388120023357889846101666619234746534844432192097025308244245213682994397818510840431113681831174359147479240536526423249012003939964928242215373117256866813729689789441480475108557727128255473007801439733205363496137063535315905872147560703120727834100009145753717521136744848609347482846017774172355623095915543017140366509956027674300836253029833642499318319012370975716362806265951231115863652427782787355303708396019161659845726297490862508188494997004370007587751583376910095705930043860119939290855850123917955497142681287219358542994572821945919611906793704864225671824453706874131934663450328498209164401367045635207340536743112526452109503108830963903203764568371778936603261375314582522528194873206737327956650823297617504889982500773328050367549044849141730406974891267073672781947742002061959926599286604230371452200479476209797307539228905173809507259748224868571236521683142949507112930196906134622747192761269376483586706542337100187430589422626966966697684653817129372902550383494089968323830153872196645660548140301701228587393533370710501384806024217478793334026505142282959557025351685415267672244386055019355570786669205810676942987792040803019213199569656385307789535897763756744790534607944398537598129149851161776041129286564290217697427905951126891352574716863008365909282245310275508723825115604765703380185530908186493660622381400507996944696710892857697359325701991570116009984792955176170350156011757177706405678981658850438324779700122869606709542367935668704647873773597056294268623151158661470043091271795475979456656755889059158322913153074867073159842385848798021780066280529815289842335755150165166262942363349912919293851544047760425139469832191278768048267975601106404098884447322634334110368577645700239629372133580373628516871186675889959744707650512268123482102885337256667262406516123499659664816901825776872518134930941826203331915734364536387460437548086126351033951003837006244148696614551751357079233265234162416566582002480437141277176173550704349907000311790063541945212506429084890360442675867655684405871679524767444728926452116147852059704413340609545973399846475619470554018355238232940178660844125967874416276810886021816833531635905407550768211540701515098416794127909359755993823649095317666001140674804271015835184764010541459020671604566960212133192950111859229300471178546983649800738857826832685466910655858606600455924759744424871060721594223042189595247575804135023471308389127852566575040742685333135227805783437574774219487362955514181022232224225534148000607112542888047437847309859726962446589314152355369099909025013575393182614436352747888767608980389160149669507830147027544067162879282761777783210262013185323222147647647269200763625171314451828607450341803206744785786348157176894638305377486401015121554225174169025870201919151068881110832697513649139842243687365484925359054722695050939457524013089364033410540956308916765024985187274160350940927445370639409573969344198918791333839097325559444440766712151722526696494518334492004582492786262655889089948644060999922039261314566139517153633986139792769183338513860911755596330004559970323468424918501390291084924427954144838950494107233698616223891034013272019180496351412379574496468634053230600259030212100212643400026164939959169280755096919246300289860303142015125797945784082343240598212883158047558034547079357582051604804025898750491355360673158147155034114491832583547029634157786168223161825209552142540620124697609828657294480574432588530012122536529165759247895194668172514140420651570743965009546547668514455213018699251140272592106629531561743000500138372307383079376652173028889637059954820885653409450649813398476127295041553523124307407228652987349027122473869042840702637214545486221734204500281013294208264751509823307455531911293594595962110976090878584990940344096862840546499960045828759172879750742720009731987372410291837508283672515843274409464972970159648620751830211361210679939182751863447975673767807921389007454811373434552954248258006658174638348855970852224693496434373328454683466188433566975360048007216069328494892868581951055533734910391928648386201680067573701546743683529793969339336175345071089368895714827138070234572030127203750205816278591868341927276290131538417293961999774626223434292956515280520186454759665294842274294361833486988089944384012374444122720746237627397004170815198238510365899811740250262415911733930074622914537012433518081222593954931382096511782804178625886991193518608382258939894794412258523409229459259345301676320784152665510816892533777013075235370622629786460190011128291582881468976269170909474368094414774357365516914226522574859270712863504011661935935297118762494260015335638774386704871519826398133366596156845563725900571215167414167063024965255888573890467069052561215419591528084815192835787088673135878514915245239392215786216290670979039214648044162402985431792181124559781626690308218826232961438994734820409380147707326532379725134640392443899603672116215810385432317318033725737357118872348536579735684136577887046353250103886890049360407074167910283286852692296783078142677528448312489525872833874263670902388133010111492109603908377014120126209342258685785919898085077259952688232807300542582997841933833835016984303015650853468740550751887204601785310717854237231688431794361062020314265796611962808236158583434098236739482460377539162697164986371775018979822160283478370526612733343885253715113984385993743967308585864558757028337904773436176514706330039796128282335448789981958493395861577967593074380294810919675293852914860553172771274235134719354877801588140182056861474822545833241943471443494796764322898101210101738889446229621933415185593485921074506104584589505889277093878722777112961727173411327819598856534830254008742062719924713828954780076657840235959651915359945988943336093855992027547408637891270312192528765143087024254380117892829010952710448338360558106532592012895633599353492210854882577754943077272040228120980182388591240474470201079072217254800806285376682079963777570340173644536251607074348826924543227250618576858652043594127332264517619448870258309909985593923604841109809820272041403152854115165647708120978602254976564322616026763943760826910004416957645033460084344851782429412284251602438411679604674104018030315321091632115811067930068221944923831481010698462272234747283200726156841590726680141608541369542332286498411244673505387409123560707545749196326573228404606151610361377152069683010559885898522053093139634301420188518690226483271674220405314867182218701592174353453856387187461312067048574103012467515247441807034029343329686210963966363153460311915634580311769555353509623514424271290357200031108828016081373424307375490532908040924761803817328563070357565220168488843435208902866869719445463461079795967686678418148178890383149084409205222951673036509520408159161731896844539837745790598252256096564560662911709209536100161293414082326023564997533996912578989607034016764475744430489674693689647991176925252493876068203424679957128150645469670434854227676728575237284337648977021702265685829822914233558577659547877357170383771181547944190608230235013220102450498521387571802035303975968077086122316580547747503124114921283748035598452612989998280873289325998250302288729386827553551861012025447369236690558145230319702419237835202723115625394333658401685786707769280609043910826520481039514448641596699815005572193316157364329808190378128618618027948619609828282886990587073858204858184692488450665792119628176804613566749712736820375429128769151589149876985095093387746783648390314655380793256106022221243322043686962816106215088788484297121237186676075516494617023281549186713372501507130519038700301431569589195529912428359727383442784605636142990109205078408191210073424059303011778555447493593578315560527723925232674001093313013099723247831400230395490414988178556463949246271763805155169020890335617716081309638261830313548515060882501901145437830425731668820620447481970470037746225283109120310549938217173692938859452974916138360436253218869052166179985935147378068005095040903921809252654712240738383548377345311115825420792725244984044760394382091662938523829263462475964976110614808615522831710126404993603307802179826715841254326103601338913386563177697527282547307455685521406462389096662670358874097132455445074499445628689543610404378513498010535637488573017587042418982652150689535108470160556554866833684121132395557074694867637543743417231298669740428722850602462576954675610720388280870291782888691453729531141881375772013456825925074357075904772225777162368813323659884383049797561108724188771543159526727567244544656129080355753981053378322515134625499560086819861709128311459542208565178969435386684570862801975373501854445184016401267402200817339336314713111874931941295972892652945977641889307271370820067474489482343423971027753891436003584336843938227330189067189980498746699489506714306833982315778501576432459943708205352692856064611748150725008814183470735241898600112767157891256011936827007776568841539138480824058523728827771084431085908763871666623393184345971502360263770441323287851704791396881148278491524844493257333228016481940881744158632651758354757575406062453550043894276854673083176878460977867041120596117534850144512542149741558989615429954236630148581680161359725827786134985664028041965898314785554915440380638542257059528497799697316266396610127709161864282481633274558881297917169154949450936985053471704851014617506693451822360889771682817337925548582800042409905442161906588522429267070709935338683007138468036342201459948008768494403032096300328421080764186360190570446774040657987315321579687768853622267602853880796791823473315962000399555868938928853395033985211652860306455109495859538438376479990677380588541730871014857724949196275045934325312481211063909878389502011900980793683173769185245277986893788687982667723141227757994950399593366107528889958445798816319535259222802196313706147698087986660674530923572437059110303308692243156932787704677365923592574555000155405367083650234093778560132096456053403154994543209447017234417262667291300311651364671746210540038735300608386696189665966861096596490729586819504140157315250329148005592184649551159822591489832934114377555490134582637120659614382979636322585345993685026316265119776483866627576838930838519805003914929866501777676599032144561043662990567088878843148372703038614137647994016499154804739538978969520232890597339269237538162186754254215910136104133988973978228024257804995236434204117125517831787174340079598523364539287881793491800518937580376768335538255871758075869405708285612346659084852489277427688086447718927486497605280861788003557827383403748168262892458003476148067153261276225282949027293861900724534160343411759832698872739190504078268406433892829715934037336216073270045764420371150328791101215225059253989741829198117808850441122239119022225056971475141915346594082946963322237309779351985833969437360199700087290802365844451018699778810076279030167080570567249447184243710698938527793868729267591287157209288098480817060966221228222351490049542013484533784117062477110391255846750957086809128407344706038619405624653962330674606616067284663251703211063346995052658476140860620794647830212988444413315118253429492730485711023232616991990846387503790824054607660194000414203682432626699947243184943786586538074910107216563789594519839013293842152204407135324562397303509403705736580833689377691851988555607372624859987686426550982216942347726122872428840787284618658105326913446753954190351694246891561079587013060982315264249085363613287413053053687891167852476802694265678486857644723142976254010829144160621040793844491569632732450583750175821317196665960267368613481802018113098176904480934146075374768509867623054349035383310759693164471110200802494673264942898529799643793633497451753315918535107532117113604957530370839710405688222751830936296456658894652110974073873732838849229336993919369374111402792517384976672705769045461819784335492039486145604222364373035621775017367181627670458891164087463632259048599391405742140206151384267672505157439569001490510149341309540571808171047486468005640186614814373909819760298672572014534762300401402501618888681379534447402589146384485808593866380727416366941193651167798040025593443891295623471810909070931066178245376867020171131150473931617251439188049541529075013098980759700031222134546207051113630780824132090965504075221950061108427261737164854570577853458973051911204219179145181313829393705096545599072670495796474583560330736244817233599618653803760708173741873795685810391335155245427414282898094912921462746418182325151249441775264928913460094864407940183080290486090542365992530858163943115889455414836175558242879165883303424848883880673184455676442088326225478802702138239447609628957223901555753884166483623525150701826291243816464514781949984162823051762991536716270801278823813416772872664840031445380211552162175483355435917865657121193023403691438012660868200590835259731113516064673114853906925453439941095468867939183687362317218841767573797900314269886199542684106719036364347440905510169931366004903406368458293603535462436476921287452401397364705691012886041588815346213912433110918275299579144656451575229233910223297808818212848575422973498877380540767815065116571715542326259962812455497962944422279784540045448986362117597541428607892376742032658118186984636303697512492775828803519010162341596188304820938104680460434540238493950746436535089027276232681055931937342773984620625322170157572812154126811000370406058834013658100919476393477618739227092997005836549840798869801039552299131229295697742148304299103671956875017062363410481634846517414130436500700888657592561590638892162595930976158689988801571726051649485116324236822656579277413230756551671477398609438776568213223822968264933402947408503249949306636645523010633028155951982646221943641056002236044250002080723419440622567843076543726399170941617247896865134103506028335147242453196151785761134385418606776536535006541971298829824490829466845748868193779151071732223833037009523982451069311986871256256035804785436844592068168704897255951107399759852754473368296218072322394465244291248351818507233891050832133508535643674659734063755525568292701656718475068520689396916358099592506666364682712806674999920185217728464609523386281839240378633349280251193431692744499248918470664317087693161254241153987809731918211470646987010354115283908615308876751916202136888174939665970567669882599391646657047201057941477528721813140249830093268545518018126144961837982438086826490369147775470020001711859833294302707756719999317781502864154000010021811161914047983118751212254636029284376486972950593520726391459978486197901057463703411566516930996416500371569107050991638902811849610173798418681481370743152385575169407771906624622864979911611221963273614694007957635131758936534552523464881652458978632817853110005068928576975096055303085855914487841123725330292153255890795008300192537189200769411624323300389306471594626751334010474375214427346137098130183797776213759627377199404515333115808823442559902664106979870046612274330500576025398251220649689095316048204037610467545310624512098338642347116365067234709300839182110016253705388766186643237300132169528845130835220094757493275804551959735266254648248478981540460454285933788807165568923700618800159337596564341860359354130282444364106796442496927064383635465080551089001054265225436707742694876651389790163134313135470663271059951284772426956709465151348524514839144640971580603968249873288090889817399949768012818061556963265418298513482935086795988414833447499592474325781211590032604563540344030473900509373267680283641227537487160948816534233422021288774116060139235168903963044812471670312414996472269887282794228215549793899284698030828950870661452042170462280014786736567173400832373515217449181466998428368082799024171664658823748629409543812504301930900049153940378505835569035337768852131594980331715321119726831232314547808061476577752062762219282414762255508356484802034004406065897776158007333163138786287046032241141647626287652516500631466134760783358619056984930611202928213116781677098445441190468768518011264722900021934163429563420104320546701621648609064574754460219100630950262741696380059347349222847454212983490515445658553774203612998994524184279222245605961856073852544631083272772748168808093258650617000789424895733544538928905772870670465359742531206830030650840536923408456629849985793086823193518152205699474845697578513528629332414760797674779199473403917276231447149718413859078765231325554644381959410291480140381746406818604409934143989154758718708357231637752554146987600681120121486482757976113316664007242842114104286726094147815518541372334815004884635802973427536946610325316772826889100063878351749160759397106502068914601030060605819532248176355596019273840747236150243490554051322392056168612723273584610529698543685540602920018393535958256968974340802022316713176364660338524641317066592536585220060825897918296128329730826336459753800213724001869200732051270052722342809818337042469909233643997064696666644477087931561608983673575627642476505935183716948876091198654215847869437532640644138009380530331371301421075371251510454335894548566285621255421044619811249840575713156427801545956428197571597018301707918663993736699613496368990978646374351170511147025352780816250556015256138793918437489845353299345781824626984545185823243139047604902724010338027826774299158109206651462354881532302068692905799730372915467876598081552445193725092921428941898266816204068879047355733711071366601619890696890365942199188356634437035242622661511708058321090901048739307813507801712964972464571368838652609301315775542525784206260716214015571999409483331304859059255535464541814721756139822443673278737760377765767695942678173732198622791620841935949650246212622014584651604108252489182055443235177306535025194505172785912417624401840062634225708247200577307939722083877462013081872850346181940350042137970227835476984214731791165681190916747866551136834655335449177229348090008178755116544351016577045909334501342721193882539329344666630901978398079802438968636028892803338501921858200421185571624824264339913368260879831592944625746868290543294372162492178431709903926185860459034937244251652929897988170173576656900799600012231361679280218816046606631153648239832786026483942713983423393013385044267100179755427732684177510144387090897211573070228038814419955231542243869112255032849704959500761008947547516941102669274562002180513390613273498850705503008700466026280309552773488237473175433461511641456818658630910698426720392272356020893758828413154653316068413722602148783457511257492352298176337412390729296772004483730287665248352864870324758986348040601976980006410909287254027473359368320368154880075422683923657234510072054773872208909960735688511300106355707958258366188679666322475830959639331853554616685425579695796761092483183002318139645299171319655186478316826534349271895617313339180934008177700750393892002576023071690615680792740791118761793602659983586343985688942252986819120251784774134596224667701962208910755497914305845773852482189613050940229234825715507946590542406457668715484690071797450068257211490030293119729090876446032518727262383176190118879494289227343131804124757005105121917609628161094225894202835192684790672967703144509258777279367129181737507329406779062792196740205814301900879107939545788904343267538221145332860014220015327164759475501052554732654388155489419008928780239682536744870102513417510750298177259167525513072906586471482753484414068457421518817527939180350393575629871247735740193606469612375351462249053707456772495215167432592029436614903291136475088988956630522621847963966403031125673365032333298823604222126906059840353064767419546595639768548593322135716258968522593685063176309560933399220187918069764804808002143876272292790225490352608891100705690470840157171036772839246334189070812076439283171772878886243777354705203957067404065394875208851314571261741984491097581068900267848482226579199857563275025499339768798662196385489126733821151115277229228808547829004429205738462797913825095310220936907577410596338965459698013504599235617879129995353985711717504995861066855652415701363108431365037256015103122211398190606388546955445373966310888893392489295386737753541701519696448013225753156578384358315170879403652518947556656124414548461180315236126477192522290148574159402733647032845017955522408481273498066466977343597596235826281351049871709334548681296858925452291661934124585365987163336675286116570387149755369660238856161131199178346952620001626245847046218789695398901430655940632710564268352810772264113044519653761691293536256228225059655974981125823011162701972877896057871192652837698340972559576662304727342101605664789423640965496051701270838072827785939773738247956783507317276019822077824645983363835573247567365159193549024521090724934677290700561741193980577177967132306281267860133806819557845325509934591097604908231979647546623512042334652758808974674826480466072516845552785734219209395489433130199137006674205042175696235467783552336579193905273115234426638955716897647103468438564262668526888762177134677518538215856535497722008697645283596472094022864738051559325390531865052400519639045940572912722814609268440156052635049435938314431428902184393205577874498192415578401579249612035375502572366549883394974516760120120820277419266085620644935113922684043330430332949392767673295534412672668443894534784690955113903598991068395651479041830696717624853876399331086750993598144519395510181595109253573250390161180837261697876645334223967673106916764205787182474436117402176194129783403407260281494022774204662642486199852164605826635777235276954817373697898356243650772296388404682382529926439235213142327991921985561477823123196340730911669894948993024157824209711500097337725218990640532443423661345057106063527073813783073461936363321428852266429408952887573209095408655669110525846350338065756954965799773678799779196360334829081091912272195201685168438632229606987381110328379114732736082146394609323209046905428197806686739947740463260072246758399629027248765057033752610632231384942210269533560449854918094958319811905247449874505071133702805342207879580227760325370914240743224421643731330450942205727590162341996336871308713880257944856326204378883513250969041769730951480676614091864640381285947679673934407205853359406488762655813727739183870503974369051957930097019514861615172301468848238977636197000272890811844468017748964816038526409660266989917614885387568701425890293064304075156008143205493353482367250671434213348947431090799270132809274643020548126237026483387587373823750993345789530928639418858017970400579772685958312497057525885534163321183348542431540116144860007875655761872648250606256330088282836493963768066503337532688191896597963256216210259141840940321994364530610165248283991011611864249367221935885801597453585263001803804901652347649451068938565101724234866753897202833478919722688569065767197652346459374426070039986966203101827498237041535544612236694129854609859373280629326159436959336184082239092619132449408696576168569114603080956285564786770637612534800135422358338216410185078932267678440676412377902858088028179213462217321037615360861751265652346812901058324159521661073819061464759870497784672416703495667574985229248677124715558805240152102357029433831396387742979551274862737630157112113455791810899882558758510238003847078263790803755130851320164623479250279649212192070454212101402343323966284404716096072303626837870460238295792673391344462048995122280228508340677572050516044646599341924605823997461370399023159138857533784016281869199787993871372437189702330534583933205317281718473312982792871822592571381964945615668695051110022732220696880848542610062959939235632112379715408596297874846591166959732474179224973980384883035141652690876487504325548320617346194754019792391884217605179490863413569654737030117761168095113882859008910937519941156487459958011967563880245405209685759069383782792647040350902644621487216387967115568263593486654264314419185402882458208016430803658589476222574640681980807888738038759472855710584333853310003166993791561230537533983981448973259605753776436776853610992619927348308572734634223370655947489601037576295972869393448731676543387381801864486151879315551777510028992922312847117522472500084485428409059513740426247618265856861385587944463727998469805879378236583868456964997268938986872022407333991859159709326423674862417220872217673755101580505977514981177151797140533658209493371199072053434036359537094785173187160789177788473120445501639816434758021104228783525961617628949184602480664963227531714083498140115581897143675741772505494959347825701218926669608223888070108438619630035131959780181513133715738209089757859743092058813155210726677766785553861530203057108117483659471469604140910630073899995112132304632622477953126735525674768638961599343489856141872430994216581043265717161288097575512802068245448774555238046072347310550731379331038699496937808156949780567743809655656654580932247507352417678580963928865976785748499536203359756201496261942335887138223844698903188323453680979820266645941086201261763015403773154214575462295246700911496775228545977170955232966309061714038302604218354905749963622272190805461227007240457363250651835555430527438463716504757035193249744398869693237374108782208597440959807106752029967749726061773785673499662928248731399384994374524866954714485758010786625863469792407474634344057710006640151673817030036639650828721227086863072901375035041737516523445311550649780637000036559469503875152457541272056835246827318123377525380168048818500356311565222861243795726378714564859703733444689937680239936903215233013873378294345885162942226584787002340746169686349922546045544639489208942444101988133316079732281906868408291344962410241058222313208217308486320247075945147448976295477842329154505300700494408881041444880210522724460224233102726132783713901806064459110700460167579141281166199930920624213011202803462779777994600283683738336727570239836927054483081347124923094838765924357498221917235279805816905944412997660699845267542447624647108953524570094570658306697521319700071487517539194253007668961517710687395810593390543578429237877996598479467556788675475446105910944342459697097131120232561504871808489384318249770612862011287202506948004151441177403577874228470115950583648825340314909880543067252632941508472028737460460310669942550566357684993213658016028196284135456806351548412759938071549107458215743008640306364701001301198061269049103497304512402706788020762181789065421532248727296202236089191096785838253840890144592234108668492083854145776254854162290920262702127792808106831788879226085247093266512569963469311906323641047389023858457735332351576203116546106236689775829291687560159095673037533234382819099989576068572297951658748122082170800790800686308460343225477867454828932581854926036456245575411346152285971744517676551293026514863519346671157990660718206233543738633967681281272713064645639466874234954733421890377939388976071665395576745381030756475730256756992905616198493083833738366213650817746303496668583486176393909594835499733303649925104084312313719249205693583755040242801304324420572693281051111088228244803529374146206992593803393384946042928828468413347974559942279720181874690247869115641196076869235734817349918868990406443270955180961985171467228312115284757246452056327256522106911070801269067245157976041893610540272299441520037899605770912021690878834211728449573703174700992418467040296603382586047968104657889005792040896255915280188510119000592528500067574167628726549356654797498394224115984324563067120394485345807693075853461502580719817931456347339129982048015624205259639586544125922392396349207120190266301994472214987463722892300768060894420322715431281811834975273822734670584699053375973411595698518068508258483540905803294150595399188147087123011570220168242686531194291808508041975160925569871560548662946064436576459361998522053310189022024952945816644526569028785492161066282156511764444977865886550020671324619104580922207218758117787179855868977204576583307943312323037446270864938287776885571040184473615877424378657508759174721122558402493041075515332299749391304759639832140332802830164288963105650212629421191802847111545936445939933939911293002896901251274142701021428124791937778870417135712379305455809411805780773028799000843787754797350356064235536506999260965282453068619928675064371357104831469031033982118313588358514980074091308960277241800170252441514114215400844773782524075900092174362139800716474684413353369275892456886199021995526770846657260923941891746496482508517842650609354211910982116810977359623267567562591054487110114740254748668401490404463649732322567079600834019522597702065447763910523451697371526653901546264390854622999776769238501009537278431080162956079223213126937429013041543404600428645348044827603457751123561229773450160856967942794292921663004858150880917293093081557962034944828328607983266010782859382369252640682975443434572344912311919760558187509245312521957637728882046772637228260333430809543276926459996474989998086835007808015694458073966980315847313740197701850982668241076126489990963380513657122680403129130592839499943774245427144285661031944200617401853192696702173372290835406974673827646430268848553426899738422186551359122352642102307492224492175485851521425858875625150614700823853442188445422625931718256496990989517399948477607827963409558594097543475451570460812913930344960647267975414971697661057188886587190849777530655594366249430664587667303848300570556477970283665433391185545004007451998346608553303381289861669929589512159262700562186256940633867441659975969088957923802510314089786560223464952044845335594793056100496347943293912326150288120553216280743085158360528229067177296238589167524266007584486342832836644028749726321318710533357908219769660431993849483726869396506778401931279933436033492189675744139923322919585155066371902324197405206768240410410687776082100057923163561784766656673880946860912734135704874138571078371131590421911701126583978472118102047219671053500339136610644660084578971603567928850288962245362050596037704321569939073920225115350831211918902920315521495139574045785935693077623058834386777860204934344608319711688294662921921590719651721780596100609794692147165071892725976600003022921937809909525779612916506282148789909341632663714182377975421133805845144942447326755599185352714091506589666937476038455478842823613869639004931244650635242535507188617145853328336410288952082865833781125653676670449135076322026942404011372119617348784976707612478926873064371214018580064114898224764947410471844479850457386755770236364559824803642842640600820234848956195661552453528445693940984956925807744923521034717832853591087441389013013295868628121210314935687723932011321339403145068862806466481739990472248063062232437266316003957889412868423694358879776096140189802847659118333781304685839494706456574612432520530756093570863866256950216107967960773068183559965453224949273920693749657000697173237320666232394467171575000420206082607427690367827332029747857526274045977074474663273887141245096283939148439001464411809683689265525815103398899424825507064910993175943553237830056448685870112340682284341688428186052106802660431172724321092660803117215595439006819936022929999317269029536520039520160163897325909702387447632151951360474501528411498667955428312729286065287471043584696701292984033488969244407760752256503922814667444396418489665139213363715686443992584547381581641671444591189461460660390840132163763525762917358648275158283319461664662694519819831924066064130654851185051304746330926850845993229257632788215019078503496336882266414009487053582795931225954151255552725355670325801678198076021516627509679992424022183351339086013342724517550139555967322281286645093046832345042745422055483598790470144952945693348993147706444775401709661904477079552548158829117248212224252467341738420338107670938278855938725042770273359993764067953228567149388515509674918266001184106374832807552060262283956667798888904935670773073967676328184771215576828510147501053271487528284801372370003637086293007646870366574499251370273755881024327621210378632263263667413390296277807562704077130006409076992694668981628471543818078795313420863330372129292489274364366350313098311288730139136051949532173555571702279172897959865702166974763808560427903650345351621341440692851429941924035742898689656183019209495323145025181518183798722285377690948521969845449147717882763888130452803235516652254929601060897750630794191725287742722199438322940341217321713130917500108141427615946803316850800577182875173200078171036936081211930642119915542581187787866197283333546286873578653064771764809352161542038441284881393305052397365899910906934316205855796381579797951343383108897925824077540941742292463052031962564552473509841113791064378334124697049231020398002748394094462322339651392907258475813263740634638149764838016044494135572240197903514224160543960774923883748780157983321563816002726815545727443444252278369474256385410214761083089849735045742531585100230735566540243289454754469273211726362677605169113636880067509150417222023983662069876858735339180985308173740816454073521960025562769915857379148267328429926835232299589135544306584609871611850875020052902373334690288874305957503741269556380401149523049135814807878396749143422668913685469116012382009184451382439771623390149910236197750657687246114483102340811837463434464056313864228701946149586764526583353180690091955433698998241744688396470364188641728509303393017828718863737136153477450160447831189326746551478193593658206777570853329620654665644984494366576700948066328940425132702674965810850515094405863577962423246060121233813472767852149261241945009873132667189120807144756995501469344311655433469550015128807295526801784310036010765262850604692745841950195236425848146881982385356458903262637420585790601599895937127959731758397789696784845070172221846548694501050332667281412487846782769808418325706507403416495123292135249172371068457103098920662564969547301316379137905658436156648757182256492891199379667434847569103001666821697956636747439776708217687339137314236699418067380810182588526436377167537398169520787310862534183700090157376243780406735213213405686831261631167099573505969802279949337029135033494586698318655446752294919547509126176195492047078951212768531543603712950044495318205108694744115649610950553973932493824555933515565326346816227158624295692376332493867185136554623184222905357396858239678726149796638066056376569282357583650563424667036881195205902716775097766404413062461220384829707464176985515697194943022309385977439398345639904584878163972717640687654976165979649866638888661788328024382522598571740234945188105487885083847031102127032672519213158115937777629080879527649405979985533888876712433748996102991876091526350844074108626970272845412027119152023341037494010744130753061749135068332294600121574548162168933806645306860880876722916238150549401566612706269676839380039572560278609760086153547229873332939635913056809103086132627607362931543507446750269857462929159308796294139509383433059333528553173580706427887466693767475519501113338177300308097760061073265609892648794923406030021309208477813172530404771687687644253468315928451560235663371414925189464212655936662794781246434622500158563085133452900868753436737393042014836520697467413713000940910471443344522500333739306066854331569780027892550004617126974108215459588982845474401257093768542092450935675741321817268037346414661203419504586342749064843097405995127117580901726351716847909308687746714815574135782701702369082625874129090289932629471077426791651867921360527914109473527303689499969420036478565148694710697450948398796677207684712462376216607484387341827873507035019436729172253483561781662515590079276866219407701304999019030705847959472950889941033833545113141143370912337457667057723760301659960013639257014092851890850346257934514076559781628547930692271981994662352197922310347824980128543997786334379964083632456219991381073772209989094066093982707967678481219271499453964949673603075567874291184550454271589284274375054680817689067145667530259151234629889041034974686944996188302096237467081756545965469577597012637717522882763010468476142826356951476556692678677709104496338930798241082810578232314463552413923377115131510813988216259556462600212456297324568572774588288878561153823724479406038087525200360977680393341113276072973945271529135898562940860792761070999768473760207484663183525847002399688626832275415196190370978367891697236523434594936030019778719315076751641970643392371920941425437780723379253164549232043426291144714995485914343430745611285524831924463369570043184859989438040592997578185385607079955314116116161791845030720626908618129085769249977753105287108457453806205190665437037867930679639011895044018474195152939581714619125915582865434562316460582938593830261437025111476849894910366118469511749288440962708333225676726461618197052138167576886421560017372787571594155160850868918358480986064526969528897984528569153401944534086461843818506743085493431202967943386633682364862592257040042795247731868946567508218707981794075102809056711996646595982018349497259483926134735452397887496136072264009809771582329400516705952094802308460827914602866531714100195482916314203442432014638048581440971997627286070750321965390519472550453438399843117364902897421247440508469959154485567300705232829041946992130333551437969050208645917580637924693032488897704841387331282867321966413904528731877120044701072919844649546518990741665382753254364375887859966542926612988077403115488987018329031162148286805433510530303815157220356275499798716933665631003524212479029637826547774901968814629089961546699967686102551441934460177125058559143589647498120063426199461862232842261780770501096740263585350019627744988903937877708714700298505150249582482460007015948755985596858346921046375592055304631687474427897161767514296750797182469260117428489155653021003772643456899096521972752313016860915204527676236773373050131495709140376202863890822604225481648826133541289080276303909305639899693669637470152782502818901420610041854960277281318550373875468306592360458649418650109479087496665990476768514984199460627231700637948811018496891639758958713664705023312879837321272875884083046870746316857200592172355029618733883410306342422728833073545314871438710140833389038984882331995193481949444073589503379451583360047343750568284729964968381785708141610682133063072172299301203912255432728623300372013254319383356012854776926144820711217907833550843316521115366005324590896931768257303253896210146332006403123317679530978471467508647825990073113051545966351884364543403158242467293666424317333287010056116757766419607305952666556510813048796729265961247102464095254216297015860812430892083325720091271282241422251921136924022380251033179783767287589644921457403179366428555949851123029647077593352928867859307065814627248216713551554813222350951924905921701143090027266400626884572287977591794660108758439991431908492306985781205994319935078311496977425827046813219211770934086236134630180254498496755692735030406601323022314960367864657194617765383323326912933250042847208390395348599656366713187049727089365612736739216700598580604849474283309071281046422475594728960353940943412157985704560971032009688476641536956918549264731638227571781845169339133800083038177658537948264839267429067570000440395402443632980384350721977732843846418494582462074449571712209120489785562322969148029844412206340387722428597746350941905058027112285793217304438819856548907911340981087702448608946087434768681283090185012696430418275720081850745427962480787047292190006310241571245435266963518569017554009440292436637461889385143137181776648559233998602401292846403529556738341385515595378410520352276141256220343984142481588313628388285122567209502258430984349862456743871376540997988224854479970918854530922391539955223798480550347904823791101819641351796553500933103585478914840286476024606766326413659614811033596000348947875200934678218361110190784750079831093038053516969517633305197268742714079558844853347591968381647848467953032106795526361056525026325229147434004600502784953970415785039417045809814938540651160401812999537022319555909481973124221495249873648443627001419129059789987451668696363822979341388928383687590276143168866066003700807930676509787254980443815403003862354324420731733688605771332136432131267501435009391303957584844950387232229583555314066401373518872251643004522725311334643021717646298127484103299827714367293438940092364688314767426160989379704878872713699181563302847383282301457310216596296146771076643466913075012996585888758166155232210045268290902270077522110007477744075491426510660371393437422497208138660572543940319537704008648941270797270703819988593699648420635486623359974376661381020688816921989608251852355721390179629708638926776769893333347956988130013910312073105806742548988459001912506105629390250201300443586951144496350164422869747051427391343755718036317540686402123774235195056674485055234802504933750599673202229942973128999897323647434664595956189410022084694088709904217604359483416237753588419121884838411781765762895028667320853806372960111557902305429814184893481085459040654721286054890850605934225670033840138638536315478921081487854706507351718191032666875228036521669284955834368794020164964660640447631712996835386893601597651373740494536628499572568723432312154255074488930780380644983603426694606269160621834011411227193646663966848036016595694152520798281621146537497666607141805866752820982100600753612074777667042266046339869712480039462219952469110188172188976517239743628044674799477666692223110726725280670386448876354727138905703495091429943044721896158531721337155923205953985383224562849705104826940475795114954299804003061979036124393064353419703834405381453040082021661914762009098736278225364666593185905742942121524117989415387681461686481557902163106546272917770278068970408044123884684077553195115777126644309581883628311251463035898125807882197993951332988227769381605695400882045431317097746604302611499409479924703657996512335055942907679888137604324693586521257767682265378128801105258950114408125108555197788536178703698940525122220343868447483021098439585785333981559360043480696770228820116673450923556634684110743132216962523269991531682123629914332959148698029374380605044059349701646609289587757921033045117683915412443413618293308777842929488920802687020383523492633506345739329117981819595558096416682767293273648880637621771885011900348434484530830089696869462942668031513756271657221405211896084316582777276472747787946497396809069482350493622025190315467236311147051817579390686042669204236945867053237804474383854107718949769015029605166785751292809695216148088745736860472305154672219089326335755134923016795824140203252177871856742375257796337185467659922873646663484161614092021326685277936992148965535697458444186095320281395235986983368635196007342371975819502799104348221133419731063778261855313482167544034827035293411108072911947085307149424646502195766243490518252761865111490653593636936212728873709444222862970451183874591493007294827735963485158813046789324116601715213471143495765441106707859844997357738522061010510018703211576622476470991090001884258592301051994642942562614862196927568248574694550593659634323114919768549940320635639681588928892167631198640357266691762722552891916908366043624374640023078593228672043054176546366790495148248681681106131191268146849616218666000231671524866255380114640413741485038525441042401996131268565682003050012852065960866302004392629379128091935269224795875907137430826206803522400012173081672275074453849945638999483971022517427392686092486940979687375373802617251751903719242025274338722958031093570009938023934186547856986453599404351028706469663137856865514233360265402121817745978301698941708773775812391728564938044310631108693701305793364500303599189650303180791769205951387676961615662366109876184277272182288765464043889533253283917489614421037419224214067641500041194390565275283657017899947217576783472488168407925929034933998781477690398543063937539587352036062553300461071261790941189870791241576669835914474785643572017582598925799451913063963457296764129965454119170704394180179300115349611133018923045969001147738888605234144302573813547388194463597274354487367012855853041921327297145391533422804173881290829085069623653577325882602610153325660946671967494921479388594385295272859828106631970788875205071398082955925906277577476476547754459631162009136469923125636134290688107214353596539369814208970236386689298813356730325065209947197375558989823659119345477676458156604219746684062068534732326790527659137651442403752606423832875198437798212207880977822100523368042790352879491858313250656793155721047407229282352461514847097953878291572777271963056298148314400177198429006333311029592318946753488141213686590042270896878774190094010950665499506272494850253126902609579528403459863179195569675058636111126656383694056101784231613395722698734853495753181695691660975194542233039682069490337439883951690848494805346725225640546717916537073460575752439854027485553095358238464692560008922605446832103230447479791334151348361294758916902085017396939530964319679764647958147169573392849906455857859488577961256097366276456895774306703912193223699255269443283022262543021244997430906956537648936455204613968527493528815441464504442264765644570008121109557020718316371436797267360586719245167364792506724852754543663333420542832459926572273278511643366716501109395564241187958396534057350570747503220789426556449110496918915335850342845605188953642170816745550456149604761324132718977555976885507815759030307656137207908816825939072302328175332557960847800212573787054487188543631135971430208731146777123942293341899986987920156650757371050880083689403898006648241694500539037511687272906647146601429757738390126228117349475152664645255216345212788855709410751177497978783863597263670570008398775829627960874775922544841493848539480531481192562427027193770289780940399745526270829308223309725675023922359808879580538659596957561128144302070032327692171974258121152518184724948450878264814098648535545255758259625708746423531430645971985684167080262997721354604798893576835713465845513782680251315013524668106582958429479415391123757461131451908902581189329590973073399640425182622539698835666649962538094157061580615095985646566310512250767985820978537079248208265910159890973550306545745825816617608014520061232125573776672625841028364662109761797533478440653051780425642607701566953015503957868481054397663847363170630303278011573337620521664060976853820223156627950008965002288600427568064420554785602531957803886220102254901471779603872267514297371681964530724818978514716680369660036085200185513318242566516560600639836164372450582917096349801675760244164029901498838214609474194538531267319926328335225684965967659688196507163070742673648195608248990976900441921381429251848775460807894288922189893899854436340447353638979604800595486287116791862230891432572161453557856565368281537713238631729942413116287330958130782631107539462843383530324476030068360655916989327209564614650544293929071240491413391947061739804409255835538412643700252685867881085484577177176354679774276729535611598199394932390541739100707498583549999846991382870991488434082070318128575548289849907747187819893996950326632073054379957532701866078190177395608630465668298750226370845911178833366299963203537906712160251506505787037126163435587783016263704712621704321752717946845402667524355877628601104519131981876679847711082753685740446952195325882110728574871949081732691820215185917070867198777815232058620410216575358720177513641648059368690092386559972399671569886940870065159088585655180366599255728152087352221466720960064822282323788077077633972587663606587435168582155641470925615295653501568916374276362578551372276107902362369704878767852255595680585195804239978707019543148105482179620070325378587545824401940913914992577971112519900285649437476972348192691737807599761665449153689695672973934210254506437857754596119151680905613477857448881760555936709471360483610799838205881113265019095367072415523878191168062830870396453370611197975367004674850290539355142021990062646325498561040335349246290622494223357150853189066921901199694444488415419120239337334231077089731440986720112125380260918026744162088142216544390744452497640939441066026407821869986157724512391485964097687738048707397075338236822138132951099051158872786313929792047644377171436325020929879513473064290418623210049218009799853392948976757102015849814683933824392806198544196903753249408166313446893653239809609531460876987833745953694154042766165620841194815529591523443323903622387283744865292989653410227868334557326706185758719051045040757447848158684951735009858233359044708596459092350611819680119947154959030145571032689031739118544211681341204336202008914705823862909267935493083214429497937100944834455000956942836592116461449516545982859792191902430194018058158555147640425122568751125495075106379169529469219988271254837989748288155213780098160339346422819958800632102032893172029488650804050322072898806765425877400167115241018041492046801914370399370177566307995893231060856292531530888506585331772675869781780660281165989678999378658201936653106530859116757831775609858923755713845457269196492488587393749685476049564959303814606051362018948599345140187663380910664977991738799768690508744948577996478339103636981687189946225477298101047287512493153257123508779909239591926872891063233596817203428810048332316380307914996346676855570954217679148818806168826955269100313359092630573931146881544134357367005531392221777181808459683929751974145871726040808470738194935162594592748457375214412229505254372839031985516217144098309198564042642289680561020403172763752619040182692346525059554011425248457345157244840464237773487632569473062632659252052718012109826961191456223773590244727524359212182804661592661834559428736034931368811119250658815702920480187123273208098915068935871798303306264051516538691202680685671952851921664035904697773487226281079980209784086710221727035518737863007802746740221766874777861149974931418058717808431325855564808320389502425622749619917262264812837011488227982926637026460384789945170383453248208483240164279591574745489955139336642239985574304350593807717028127990472955299411860724652439507178682562009918472949282553929450762766984954946980633760140663837017638123001778711047058203155631230941164320250273086634618146274306964591459801744340009245990431597527802008202450532152304427393192648464259131086668205767244709694497125440247915475701852721914234624992657387038163408237964802348138299559912212165906721325989511569173220660951359865670327184531768637298423834638331900600271543008408683368803005120223530389297763693539442509332953841517893948086023262712166184404569947302713574141837391100673025902482342529376539821959277611675690431651761698052582183466463202467073582504266092582406834845400806670219996042468884871489111613662651340608132026585630720674336517914128454571263222406004091274261459231022735094676238590772342617931172561641106050546238306355946062584230423877977902599880093153299065823121427786431834723051140264868423538784069694206107195322272067881462423235572607528240303035060952522193162770503495917005937248818833264830176719679627586566047291394583988640870050603583056865609891723914702620694999552724719503472587847901482045778892568220775071996490686215006226810585700071412198780023649835389541484456222791441823007229911755387021924511643966030579703015651914548747481008257055652972261020689549805926635701997901189571490894309852969349410020074148263849450755505339935119980853880344635807245686950776381448664560409723264416540044885265175692891099802442227840789393239600908228247939764361668009803033717856981676738444903387835803006652740160811142280099253937998428516063193990233545178111046012239181703574987350213944742593137673108102404592754752165407805048295237833791350307269529586319074708676684346996593275547137179026063476223463689762267691877877853976363435335818754068798195791947698305337852707851056049105815913449235989208382937301700166408830375520954814267769745142290655502900805816784264091031345793944652983837226469064331860609217182204147899903986411294114233690570365115900427158198969654681390204715242942831914885303121477621280628868186584896122024197604295355530997635635413167688221406164481482316699493398531111822858552803629320608407248189963438421410601618056502566507316811968684743525045389034106518172827597196702444687806548923610856878524275405325827896790023120473479525282759044453456573817389147643628561286153979667072144306870675102825652220257686846016740875576292762310303884310276936666107323847582140916363324331658049507972847751959447967307993360170278565885930113201445257041900577579260227635209135211259211463687956905429069961248134647709659435993862390862568644272419466058666395645547723824356550820731800091716574144044023746104966089134360037549806363745589946778321543184443041341001326097680398078250965671079634148303888061553800467213366347719665888397008945628690457337182203173966049037166540877110540461561034589827451160363931146485999626567882300008919487704230504732041279784545133420669789862158804275454253792065725224452795099540560463618842152334849820381530687484792111331001018201152207104177857572522677409555461346162237953821513717615272118097144620391158980652314576261237454627268669312926066567780738492070429420621983792188206545227092931186132043904672896425106173720041518368400752506037339953976002463651743453077761594072112220016840673090165145984469261695768480838895405331272500388550962778499714512857020568163884866193624316167923316837379621305114388152598638141060094353925953084934146410949960118136391243184759495112093845672775982633108851422175173976188394972506369358115938925742544654484706767486460892329850094542706766131223904124054185005463325914490822617955657430541675290671286591816473760334055668823644236500268651527851648719225132484066720037620644468788614085554526404491635295498784353005305471083634881333251393258213890311135176349377247783973975708134726762626254472187485632198856551834831176374496716517125221360196084529164631446688662605850539886846256683449143180195982054268916159337074571624783622398151918073378634615525739714079772479402204406739525099897705205728774980567632542796524865608608446309556579134425994357050592532878833941802853773337102063350572195596401193863669776445389725044809184260146980153502133947064239736173245171212234505502007822971380170995311077501954179917889438108254946465161029576536992513065730999882564036178848292463961858277838770771607856212537706987073784034320074574500429328985032539980654265764502578944745229029946227556614538138414183612223724703262197640195067519417700249482820239536393877817620459596499245379216686745783286841280847788915162498036259748902404752175158968708073171800335622658130256933689026828471853547272597551316077716559319831542726661494681879800175094556190996628949517254737817339021386061993070834362806790413917975853839946548262314899496160398371728028945457114005096951764455415759778008904232042213357173021522441688555705225712133750988653988103311986503636654756872299548666340276816393810418700290006945992152012127495843436178032642684826140516235476018540317846584989491454586851110921069712579251730881283746885926136989885893080810630803941998276209282377157994038891112357162598737476443421610819970867631686377766499555617877587777693992375306526435256529420809519031884350024853113575961695620681625688135272042392949045402976779724188733252483889113234682847468098548958759499871650665771698991300662642804043514324686426755294088462998313643469469136169950762498636720780824455660504891361719373290842573341828392325571621445466295604966520604569377308011857857911338928177138184359171764246605477478987230688442815111567368115864732297141386032683876242446295409483682985510515570423729059257485237485233299255895714104273819469584439940997364129169127904272992224424798138631926159047246529162568514814016245915606143505039645246147445435457282365140981934640713003251222812501307291026067381534052750573822240032956427301870264573616666692164235508972433756086752127225884571809090264597760475457373402583842985353021802346618054236583001485783467857048664472555238450117102695467050938647466462417003624701625864600587781690047271287558794558772995411560958062803736163661545172735527263571443776717380952017769865630823604134182421912175676180698485602886645697967093494249129015065528157252537906527718390393599132991836579316958819024500019778173359364610201932103510218194779403068580689078917311394276000280567760664355981998570944315829382147151349676638212842653119722812355791637072946019768232728209672508479536514741485504785068719764980159652479745728137613062326927550642427442319676353737024242395267896594896149914222162199742884097914204825650885430566206686838033688870754257562057578089741015333166167338178889675255974582402468450384242909051781114166083291527760931343068059763000177641819916272148677346290193021211984627779852174351287991997956402364709905102196935678167291618138337166670407588914692425547654752296115506492376864839922971138986763217873543241650351290349907089661253582244274389826638605865729532115497603239824496391011348946152277575723823406491487350278136819700872397962727639214635940417886480170919968720469017197380814802140962314552581420653993076133041291622193245790055138222095741370201352343251473571026529948500034637840500929445225161654627379813671533028933951165374230680504834648454130376926962146628093575250524930876122864317880373378835870130762062263443994031946838570631027527327126269433165751156151366824297759453485865316656883022455897183634127251379929239992812990490123664359147000873337162770857571610935953108422567342702952742130802202935602789708160506589899648817981094556039507383163650867645824366739460809981575654807148162474650707901873006138024490713606289732866992848052975697080752613751298165276127557021982478479670401162089896439582396341105409389093354585961623321651973677392154055925643373107071143623057367952261761671481965577545276793174635241788547276054186479084576566785268791007866618316398177106894868640817452246451945437336192632136698021238294859103938877980613981654124078508767092228162519557964159705462328941247179560918785841531205717902155705270857526812821742953500421668224641496704775062761898326005707288315084152315243817362298489670299436171585132421136597623793651466090747799030454262753181946942921545442007927750860853442985142755468372015937427601712749234362367448363614106955163983442932253087875618995830543831318343655825945656786979888121363884028244910740185392145169494713327794241183307528458754410751478702036289619321835467722228517938452337251739243000450999100926203990016474286861485386432010526705303918468867687460829030722337281052753670283012177250869776544387724749160950282535998811969941590121224380263278766437360117053778195961928446879475486576330429166252919934259724952833509411639073373351012039195830051645792460098636662476266350599318053221895137234030769490360635338740658636131092774674724782103104275231555224323844994898736556838180144041402875063293450035199142434065473250351945032754579612942288508736483124618144047847987307743131029893052308403933084890181124705330062426337670756870144104919867888868327559345874145892512782905701577791255138587857339116845098278466713471866563534560680999077735184719908827965730896357809816393359877101904245498721251142335854284653903202519542642239199701813346613734101625704972456651708987298783945000081462383713439105628891682716625545006469575453501832237305820182865699450356022485563551602018976692036268480980129710452413765567193944861192574421439033347397097736536544849162364447193112477520887803619005271111287580058899015960947876980267286164235848606429052248212338269021658525638688991420985304019537952089218227709252243965766434837124050509833289214598690574916654400066271589834849396218647623763630279855302686131846522614704899261030344889041859992005187582044723192428025473121909386013629756757565458539953426370607018903353645174041417611162241821819628252633167242389660637972564238200457756091407989230015969541874549919205818297905560244533923846312169719744820617887594773053371874773334260357254346284136523779868643061568622521691884428442718814372174360580660114611312831843680419931228987774997101975240589586852590009749622687690831818167183027869731823507158588309796507124941108844003603938795584100784166902064248066262746392738152084946048048097844191855850845429658644277730018514690140474533084724297798234667603598732517364485842860770404822535585813325302640223064572209291369860522389431687929349383630169275886168336370527013885793175700608414630604321712924140783730819047384188261498630417946961614611569148835348179693161947074061221500393546594083834579791472195458502279894731990610612715710709261405779874122680825914256726137786376381601690449462761982081600880252162306519770926965802682193748285888804740885740922252170193483671993386798422825408831772747084420171154123876856702760535103119654155012453074702245324606387495547862311438315209302650110268245985026064493188996289400003480785159417035772231508967153428059305057307253023359912266609687017926629834890776965713562558350209747614514548001539111764554219898059642982390396113353242969038532858680504614324519798048715045986505889945493916472488763683921102800319428830460755052402834927088854585886266232849969696994207879243734038128848284343763922882372347321096145785713374433729322458320568989002639435364569075760969304017275550658989670332235276808878689448599241286665497846430369040469518570601391365374333607236571846956056993948341583617208273195217594245244183428337601599780579916543882892821038545367666673865974650927472410161835662751064180491434243086101301321041370039665812307183534896079718755365473200192195274901430796745090133090499196842555042045289247375569496977881884323525092094828389529424805722586442721427735057869712510737130044510226840416868908249155964563943890476591003425165980961731142485219580080980676335020308413935671250517745444347697708814871364807067593779288229051646931293950885435172920078544473226550901224578777165476892336327733228422344401841210891978675873832724453260384797714012136968395254225226986460720388788479431995658724197424872767525367887235448991417207134841043895018433937260557435549594814624361092877824805641434283445466487299477131921420935309657879166962419744944475616600911006099399762081852746580715274386914880820320707936810533519657966183576431575760837315921237505545801155582403842485900985900118608549782639463390897637403860311237460600390250908191250558979034280298495908558218362938528033117967836895713019827949803518863892028826917565856382447473633977013431655583319343228005027862439072132820491234669579311042266028169324047284439375622676632445395601036093131605738446425536807967706174933280376260714678151246779870395037322750636738933968537131944785624092718465587575501787371780320584768153630106197125119854815504171554581083064599660296326393557433625003950703253075312609190747529809639462639402776999469424701123065523191793261356662114076096318304017345406061731327130534494194038210746385046408556358215493188807093058939699746380822744925779377225505049672453941218630319328580154766370957164302976076858314864652942489693058299020083880266483916482828863775415516587899511185823878898318796061712334555008813601021333976018628802947830549180375191332415262914986835627001547521936469299523826238672318271481519182308265887726393685157416402204283642675191161210623583078467764395294971180699655197742008194052195315352029576538121963858129354564715899222752356023562325011794231323618596767589519274976408956808511063755817542840260164088608516467937559310521312596828295534286693321582131035041973565143408544920269128110183717241317967646663979777678576047738487852503045184509561322377643237070523689292144793935150637454952234144624885342643910155933641753701637759250199509755720031527055935195603612519160066323251181982020983685343928443198295871463002045885169506510508247003673729444270151296692738493844544494031275941556439321604982153036263263306969656618205620334290426335268867435788431905629389142848117542949329358557023522412121777199814505753977169990325582356918494447163903237707081901466157978142614818860392398344993435936003968147780056574837854045708086515930854145855725471638584337453794522007242037123329619165624608337887995971661641066971489155600003958699348657926522441743711787588468766910390403320504651686170523710810702773868717678617080259567199351868538977022026525598658781386395417125401848302219978378853591858721586984414879814166385558374020677371204230394837572269886054017052881115805807780971557909649528458352654551164458197605247881888707159597884131170555034028867266231234165896663688442384250462478722181827651551581060621067845722721232222436597501727232907318938752953501844522063134468373839559906996060096577420451280348844981691580293444233828424959156200814879566280395003197768798508118690796078012046458302923931357633142542343524734217417743877372163683387671024669284240224759661108753802924398235395303983405525625503678749912234884726228511680041759683486500760931721843813080384947155416907888893549331518158203946920483869533788980010212590313077533531012805594249207851363408382027606414618570277478762711544690618420001243919065235781218917779674881172010891779748973910591335868286135635080900063414881481955594243969570791747680364129670812567539287746544467810248638776420649025972635014645408925833358260144803956519532402345174857330107326167907358048898375749192745022332464888733977442992321554365104873652072899663093299514152219727111781168695691154387402539245826066717333142043982184458273644272447526890784412475313142584461725840032089339466670108133037204311944957215724028865206081851259589001362334330705816295208003758166373512136250525867109260123795565944140627735708064770693929804906918886603552144505049457804445077575463688655591629250267550688641532595629289508073516244771434145457574894148356489282118695110077298074997177269464372218749482845451691849252362354146238954384644206412497517270980655016004056118243279655801270970154179094850360599162543231091296950015189344096956568862600043015977008541801790348922671001750462964942766423251592157394733428668998604218514895842641063127745317790929097400836565449008494369333260994958481688737006881515702389898300419520679495605580880600758200519796264229239734725101616696832699813096919813574900559169554671001078208199011124412148453209485950620849722636104536342149761016574992894969068212072701732184822871151135338301771726268986049697302388289178967213028334726980286194106528106225126183602068978892118336195831266575171258134848865573336007360226250188198689842881289950338276219645843960306309119250007185166127358834627800899414075427038529658816895431587075126180716420976562614196343751589599867529640609193795349648924142917296943548329843044208061266885423881013045664786114389803825805323859277276036211188428940788236112418427777955225684605070075382715214903498521338966688923873472458838831635768583950976855028290041399258904237180248374348974596286786382625926268224909643795335425330725831275985908795400759426913215326954487748762743510877305908316868058386313567693304784016992551670037833724112822627250622248915754765235324416581558671020737450896088706576003360722083398275193330179230184037811810260677961466106798536083614188631634538709187642342522943717575112318758347492642491282605773092709124896647167950260699723488662141015951708382278463297308580337653631939905516166491330666947510447640855319060273426274376576210356947341727086651777302345289145748405432061778810602185094970000803093719817081565646498325395729876222451565568633797215104465540073852954913273829488530451809151930567957660277725286197218301048076371472520625061892193270274681366312985367249902485371913040726696896226511157249344969693668301894387603221458675508839939838553764322219598686883111734552276899739140260026447399678224134248920659907554694429935986141898266914050219764998224495183039227642213953674462434630457525157135660381455592480604486394860101105318767046987395467238620637363666258407381171029537297069145016561197034079546210072475607754567251219824941327865915457876184786992312244668601959062989729058627988502342261240385221706208027351474105141194774972297927991572111674958823283696952203450091309477191193162546496100374381408929184057833372771141425960533838977707035679484386146447350526586922524828085273561773269451085016036099239918180832437955662865104422048477491802140184481952517558318277610190012806116096111597333105724106588151890475905207482287548983055547281361358369219097091620631130661338718066768779516241193551588899645880308916318920023798461721444426349385063265558924960779027510638178269684654126820238431208485792120481783660615053983434169249290825406100674391821996451876528918693134288272270428533370307860056513338313712518571349730387804363917752850750614029593120294676430038838484775898512655703939741049305951935133535432603697557113082033476701001052391474636605942133325151105263592021341990551317667443401471542940785502421311804421386063909769264034122311165740804198714577569086474426244552550169987154907433587975369902102291984603786582615183635289824524680443760117193033256305591559143725866870382398855992892806525547283485900784687560177198726374338092362342879848327689929154966883772829036321347776582959069784729352500926324062354743734534302257266397205348503680842209584771599692607251034219999702268383577905270162666059905194001992664902845778548801811082218911294885937605394404935172236798977207185287839243565593204847590517319139562185812256705183096094311714883794485632351665840039044766812283534115708502112917456760388516702236673622070442459844571813353916905844252429333777630428251080415756290125178111483083449082842114318820911625969864221002927280966520776518820952415391875416208814341989619556580010584245807516078237971502890661234327088049613911741449878675850803926561222265284360630755057497877203048102761397029610774993773528585798745556347918848238234110801593651539040400529979402387433415735698306297089066552448343121235633880411397525842206643894579491366430113405614012850351037407627369380947239118526804078708047377343852605831484749143244950123996823440055596209401611790370042995827171728398253549940351895565000020732735516556466750347146852547874390922837660951974777584025215987744236860322322526056192282691072662926353696268596284994558906242069495930204665211335011293825361111921304847151041531848772583417199862065285784224291535630122975166414191966020438721773623590613265885932757538319448712419892302207266419811170675006462060614622279092653518982662294158414770922888978639125132245022497038015409821311371879415166120470077676772379762139529146104364327089750203831165791641309484570625121500854533955813937106332926608913009359769584277582952105261588892077874523001895863238911924979136382109954579093876141893187442284069409259918737203147220761898881542854546232734294180165823793555713511713209941651410556996639820076580008020803676971216213307596601632726276690987859833925317706367913860303683701161333702599764061537109650650437950842054874074940325476633554440132529465331398857624925385100717129966448032064985136510439361050252624234538354031950533447268551104518200559118694764601993272849467159954993491174663879394879701111155596037981546305532500728155369325983980302507832637161801351643768993566074527846582408538829763213041773870732633391248480861506542181163340155946128283922877311072903201108636987598291159535931256813145863493327633389031560294972736202283225234864699591703101039207030066638284250054663295217732209221761610932441943765067557996433664655476757918171779404875465770587146338055375896307065715978588176410739636838027980968651202285633566548205081906429356446916894216316419466276704162626039690971967418022865653382199233836183787843763593365223743043772233454502204814706110740727283119105764572432365446704517711476956759813022260940147399360743833463366233673195280013860051945766181694230813243175266079148567589352274592264041577339689960023498415291076714178961612725670091342071524312751215386630480691609858243213595483691248926236717081663398287080997673358895655728396765775623891129859835735499803446116048291952731411677866072920640707868671357234380114974473359597120093223989071105964777283109105549633364426309551520159058661470737474745776297843812030926509346444783353208847339540479329724415461719831903016699392358877027204297228380372473326528324644622035818392561565422348561706457940792961661025647458110790541990636917179537240593511105372379588529530505205018104002367206340087666184554921987413246074968648176091154303222084037523193635550923047989659722699416165464748953180340513461310237008045795283605392240861444943721975762411607644987736668933068558448986092754054691295292667024044644921129718133198340163380508431033603076391290596262551804529949080998570529756041249904388688087011449604969166897800245729561465736346032526758253277519357861994876547189542573854317659988691723091041225098431737353843492904547452328678900791457486682115066152005683958616302045326740296910336268326660775128776452262106623168156253361160187595306546537943528849413743378483439562319775003618567017477859944989259257143701284758454761027523561150114419184132022307379438126057495565465942536964961442296487373003257652648284429999103682153484620973851039041441338821894785826693443745332055899516740627789432949784116880612904480385829851312083223124648678792118955230317180314851577804156843379924585494549399715213613668238762288238204858399117545212686527427419119250656957765011591794758803934659507199015879455095725505890563013948500140153539110373535854488428616731180875591714039434995220329239391876718473349682116452297315283177189614443908863743677339492607678364163142814655913079181935713314784668277370057081839138369716248843861375280213226301669067940767499348950613498654804815785634170569715598454050106770034368513828297757405419914408310113994906149790646447385495749371600473445638161278876443051643626180222089799961022122916778261669850194498435951055270812200962400056117404183466778814827725822230136453987114888251309064487366187586567183286770278006990239827236693234926424766944097656374313478589211509420533025518319086045510023340069741033177974159640101718484706609411090072596832652779503428853066803242296069635754069737279706324562436307573374704463133351688390707313419462428067076964990055708626871811899365321976420226253784917693637090925689358144485778938165084647803499995437639277033874019049543567819929280922564559771900442377839591220936051623951293719866260254460412106658115489640959085082063382922188536339648045474546217444129912498834071647913373403077458572682516864006873124237711844940409611009096656965693544517660200474462907709535100287405846820951854793694004138231094708059093777211816099712621582317068134021929599375635917918732920738263925300737972184729013006848183942524881366663065194792484283375495782866140812160325306546777986121344010579723938396488961527859440842563329995254157448370910428298075494514750848232506381490287527805369730879138631777956552926597428780384618427379365665327713230411704528222138652685821548436343773943110209857764677151237313374289602105479926086046850865742424703245641724381270084437124411514228609231528730465637401570256217390938495416751228267286354309805553479190283735824238260657827030921616424587061150831990549894003192876177128314195182940365237474370025407396674216217028706870049293483828316439287921928953746248299025867058041463986851568673526492885435160746070661748179061254098005854534858164973955805876688033859385196565665798049663005995908197699802026894625950097508177683882210685724026443258687451024077559910115119216966626258071383138770164653058122184261568118263995478809385288380728427704901599927287695845789623232422050649217766144190490810149686138882730491530680890153409619173645060510565189454519766167377374419566751075975482156882208710041743662328183464934513728290149021107346914509020024616144852304101725940885081530783355324161441102059356292554907809903232732300468736021853469267435045278083696221544533723883812001183863460611802139249383024910995026769010546464916722174111286849543620725559735307350279731379808395866052820350042590601594960475880002448825409158573143880244617706756110585757263857279307226845827385180548688481204717702310221334587136408358084837272047040171369312132882317853370367134669036790122829069877118230938732290865584829163991776799313029372428873086997837416289196678160164092834712946830336072707941804528150702626489185229724282037703973201826929838603386571191139534786157567029352489255656056101409067290174129455417875606983517316885409564525290524010227791351183316040559009692099270033045408609531523515524647190734860828003834369142331333099141886043685148176728325567468491495649399683295683679582181364938161226223781334786989759876179136052854386327877700572009534835378370377761509355097457929879748178848920344776486622688020117679156455498527427057248726095362602471911228894335424783836300609605971669838665472321804162669601569276331690736615221695164564830090946432342251619468502840852596005774913086626328971663315409732750824508702921655974254230618163505034074255078712258859494996001081105013988913504013111889807272926272551749619945292592089616950845160370238843097478904395055230100893685469850921464811943471577213458604731281375716108382051250539863601864282656131204038073351712844901678944953619813020895179143837881772104685892826210677870369240300336100466945875212897649050550001470103273930961448399532141295422463558641369620484425254473093004852944927050297706428859381173963787777492852273732616509372763403346865390669192680507293562822190206902706305573466989311128039135304634896085354652771944267994419353007405867599259201317071190153736831753881259882098504927199018741317694379991411064188608274479848493771896645612307614777903368299243261545698277050904970328886910401346199199363215382024781154512548146546336115135609171064128713788534990422623584717985088750615336934617646391081273002761728739902629440352813664356452388290756752853489768764885235949326742439019686481793038240036346801045801113522256280236712563100723891972698862639796903882152010662946972234297695175781031657336250031181310220943549420034681578358980722845045416556953566451331616997163530563037755881474122546241032602114061437654017360790511622925125011688739372315672452502342289869158152857450350999043054809173311684768814556535363417519068238160054848322994674431780947244345044384123603232517063467739850906900061922531026479666334312385705064929780172792126908235326214424107692102932732783214760744131215196429176585372751427704888389999326550317393798827617170546179883773511227689032265896063614485061036789943730111551675737352232244132661417640305848408942735300923862804319109495584659922762667372811958246337251959440697831052463870119473453910971973668233418507291172021338760274536939314654662112246193207321456282592317472909763762017484669984975238040256101609303285595725021530562500891901054157518160635742716902116784575512530390713542416167338380780685507975324153683162877996899732302021822632494275302374622634888426817692455393562741127454854041702568045823051312021599309751929222681664000717026337518571625364978341720493560303302557457479269421895331213317385829102648747253885800946707235754565154565728609808945768598221383816975602665546966669613540822505063426833379011222981262001442797619410600514228672198382763115149850961452419368897391634734281870186466313839466133825171199323746705232640799591569406628731591477966955639750121220566587063178637667644078734112334355678314675781486850791107519184715979902217016823644230299543305446057958167009654790361064227278787166579818344208892565212855940605482445662953814568778166623369931566925854803345489395763699011008885835700036297582504020996840894698118655768503078101387369716725988285534451232700059633724117881148184617733669191279836770915812025350049090855030766107311679024252417524960425642635224759866091039673592091307768547411259890396796457199208713027130735058695697795628432307124098855596824430530357617352676600878027290476686058640559354969143229726276797362553539651876405589136651880621083111959820981550005022446811334064763667900907512622085595532136132902556578698360853351615578752577818410285166664350954020664286905282311030264208618148694898434347495638744819264508911421755245139779804921505739620770501724067844105456448691876415424459317050711766491312221709324733736564811136120156798367418943997267378797634451626166981269557133913411394148913330054746373689695259863576017419050373005998538981710247995602616735453919970024345400366643365216976174993369148366813570836515082869119504652195785541202350274827798374497972614737032988993793111994869285360243278761648777329419260790287196261567115671252379378972960883465857744366871075194940885434082170630253397354329557924772719317908368010394797977631223362842990153659078465841210946866963339514304592325234268566245083119290852652369171721371346549300651033815314214317881177306961526475803160499187441519415048141473704377102467422477044964006437475378240892552444574793555910795185227838221044600759113684885199425269627355833738559984251718747082339272919631901438849234517402835049826572985229661504658791332755461487470203184439621646422557001081390332134541408708463769581607995807447961781593389505551017426690324957312022337156447028228690026297099745953830547258447836533654229883803964911850762328111410058677562269805140474458827345285782730873179124708947473877106242994895187812389607937593705141187654781134506689830636981426682855602106216383980258190102210243047954897127986136169322255751510077594230897552524151946647331890617703477743407283323507824881011626736091308027480837712146961094994006165121373888717765789490008917200236228771834402227886112781356503818345955361595712721333469343097088567310512371581131959672727411367912292675419236131725095023544153936939510903627275979968046636015418792890097995470383211709271608712145359161033549334692697826886272398185914478502657041361442692080810443804533501999464398475633576148013560345898563788576348612404633637272321351973905967541661298464127881663777722860685303501714834728012221494397321594525341648975131124987088917921537908057416513865721692072919797918485925390686180084941955057978039833236247306258965596141640575640153901985709415724258657607218341717943331220446196587047928299741464681213276799652557977705454970627831381368881642308274951401304099793694094401847541434382288741585518203170939972761743583606301773923181894109167106478326410892710505891443476986495993064065811514210830054380772601659381300357799838477422971238585714095329712936453881387321820255941390759865531299818510120457017440268416674824525940128801670314927985352223291999522492176401474523719994515168092574627820620359869687113568739644035834662362943763058771276490255297734500909661060853336806516995846615697301945287365388514141467948035162198095501003589700413869007624410699989462567822410269714499872640697170969993850448457692260613084966191795870662263617367359029675063643095177589755241096093674344892859784593063431197590458508197900000538842835737027533466372989654472780101115418938247619799835610987203517087706869146361040621861143798522364468829612060207138184562979965155107245539602114019771254234701563345595798921256271011645908002017385945994300558419610487134122506290027791389934066190852665175282360390118403789839644227224200906806261781937584312391978922528051168565020791626824213455762956240904793962798116541176592363177457270935803651105505631503304256897344753987425258583710409811307040726054066950535212181904635506310344828818012488932666141975955294483837722336861574201116328377447624788539833959368581200048946126006465356083083108936222078692098478114225130371793396841202098635850939603695101976295863189478488968506120514269955803803084780156173875900898891243191313123887672526814759266235722461883008434184366645988267296156735408639236768707703660702554024858933600646784812178711893476931373919374265818033983712587522190790119049931825671807218074023051085963671020229913387511013996602476162125506639004625235611146271276236905630610833619580767953923467704319414887024888890676956102469847881742891162944730001419145994098399356205497238095232410128455992352136950832412778178445311851224670835419131743506162188767650920461156447293797257333389003848720273954805013030804897613904475499231773728191778380244992059762823491453630095928552679002729558235667335554704208045447784908134979769131610943168502102319343407526392768000059580448651049165660669795151621749430245353614506986711647183308641016133497703388076423258595824331189394730238604370563918010126216123998104703130691532780751614182850179735433546847354810535143965634832295719560170611244701556546755929240394534860065266374814745176218739182762997653644054631774299809038933587334283635478115147838966570804353265163314968027064456038859268061826523428823965211960416271136466002082155080258478472782726365165152598773001674331125342281588442284514617257452364694598558323158149596210478549604462593073409834845155050516392269385387744778757438316707064041675307722418379840204891591259362558256219845421638088789046332339179905058400511072860418748214093596599787083666934868048750330967229757128583661916267278896542036504525677676648878114115409256276360813395808721519405083229475325341569776454679421581990285974075249348829080835939297202892673255112935751791501573187945324750421480697205177188896416255550715428846398193058620289056399805757435094320286863936321303249914939065108208960343939585016842496661721539341252065762923656797709433963356833259830846314661191811795230171395399445884598641538280135355761334074424951225229434442006698974634518311144683484263520355880807385161595859521358140509226792348795549916949805987449788899018057225892299752815156312880977261697474646163462214922770164790193695637503848358393120220847495437081196403653056740862992024092794277034545631708391758561056529366536657210492476055513301802198881310256689487693435016866526432645743878906821068136259404852481609880424254315991270220230457281621069625728892576609283441873363609490469775002392754920322733348501483221244785664730307178507804682202610133826695440679735830234870008250117524893047810294308230826096987188014446217120311005356812754885246911010651737310613355617500927247725769659636806323121863138252088492486882972966682506422977178836361761172361760557591050837191333139040755944119253603874289394722927601395287075391769035609997674959325832021523726300328693324065511493238844897142425043595972974775755273897134749449553882476140990683440160841314894513379538607122404379058181273485427602493741926914088618079419911756689018223205929357954237374966128670710745742951528568615311213715786998762784708554322179569751105336326368505911455694346506935221976299096039481199947278787444998074579482158094831273328137362007184213310104495103050170619347961322001513423431424120867000783023281921784283268304031699213188476592185443405091545946919865425456937198802702707069801290042073474308813391607744324330673687027596730770904495857924892122949735429973962100184919012462723033957423779596676633185873691618092934363880268740328467487993992400355680401986850586279647041965367707301671908404688769869083677780295693002099719126430661623124846252174226887996163516728890044455126091917337192941272620715649015406243918013289846484441831760354750262571255737363481068654417224170556428018797988685216350767431748808724973164856693941278760145140455458013166352221850386074485293239504541263934775086101800012785680869780144217157335118692283506173549375125067903516371035850921000526013996088547653557536816241328942562725625873269803030180391133152480852592659206117466750277708038317787136178043415659208914810660483995389649224933233030199934761541479536142580348376585720188373045070520841840550583546686309005173478586584665538102735138762629900539051886270771140135151638930522864647078994960217947822534265519551855679531123963637680584512045327031216616788142458351561275081145055568980328966825962036184563658355274887169387561280312554517248032383994291785749518907188083063430542537434360693788494427266536148339988539709160440665969831024571265617655247868508844002303783389047310790616905506313974840597264598717629725264025756050185072178184026535332885212640356935301548181031963150967454776514308998727061939013078255585097746520129083688284247436442644641772913704769801524170870120469015873390269798604867276240114151840381847286143347049395328408148072871079502896398914663643208999999136896141038063265141260603293208630508862529274478762013626400844101407101911856898181589391865032630777868730310190370319892721212277299548545061432832459661686673189799605068510467175650491712125286893957436360652389742724314274598600860018137447926281141946890596582224408960207325457471685828134851040881474903981941671783936431759646771117650551162826996309639113506837742415432205847099595472570477897694490759237071888683105970889370431233736180854957535063651907681919304992671480543949331099330033441819107665244147844687127827999872621580460501696756290319870796249962759998180555284360748601126612870516593262691129542797111208883469222135129620074125480280510977429865693961887480396131566808917661475891865009367635015568634541851692705413313647897870397618359716500866805140493987678093724583245779101661138265006273829864257819853911925282311623174038225297840273171887107648325335623737665480064186123530328254853549468909085624799282020296768500828524454845983439393609107604061130272073229421629603554922811772577480025507048480130133767593758456964676710347412451382327126114585130269409882211469163520690799661020301614513552900287732515212193293098391823111458167569044557787364117566197508260048243834875743451416115407477493203330026914625147483265389177053345965242113581560071176135624257513615044289921814766596577407939663101821790669972270705180453771385584643706953280041574645461840996748553430922683601025886745784284455141362274646359502841364947347183376241240682246831731146273696638171164097241184665812146129028344621505298560298005426276260525698659086591313491809051239459848664703502061008940098315156686349965584995127285894499007660387056729612035280097266959941120410731127425555324052214464950404390598286077831205149502458101085150922368689128754156385949549214621767370990602983049158331003631137348591169197739804280727746754083399494979683760506063252018099506703343553145677565041575985930174814111740950487984144188542102137092969902786929465672800580774546204673361048155026317451956826698044585294434245893199558390492287262450233064663158510275887255577852975835318081379509455707597549936147457144295354365106742431496137626224499379576827118051293561047515874389017239299975235441861619668035157392155966593304986532275629352456551863294032329983699379270194578508126625497829600704829007730463385228899382987423282715669137753488457042247116665600309084002007937583821892738072110348618187237095964885845504339259858534035822944159326380734167737393124424109057552961416276053309102657050458330664200485762100075643362233499753700937086639886391107834603711780210617835862797838699154229931484050224526209065648069480222160221646036394192898829291392314758660438386057395431417951793077195775991286110105691484146871593247401068652411212055145141303300168213044749137334582358685999547937676205098016902549826885988554395547050339832443968211591010699104215229649421985371002622744459536839102806343820126257981862346672323603182615088044326661996434250559205904635728591032841197550500074275726724184418997760838456197874821156117095661230382924783185228567472347535858047441277342735714154690634361659353753843719776001359254412969174917891168937498793440051813853504481337964638536917993591205026717716370543012875756675951834519924645045560903518543879697359498826736272419232419612216885804718577415827486232992842951349432235334023815303080864408586600427802864714528384570105180685419139117490379487313064930490701661974139121298654914114413639816865163391047805484774790657794555224339707513743472843689033618860551694335958641812306443289741688876028297442113463102716203883573533221609609127874559115014197290864970013312286833677286216985872038507077177340056387826422290831106775760731810703000967745020804094947284823632779371910273787387348320062942336071286408196889661176522605631378576123739350921122839690022250526995019871119428282217617860369736521639465717178901234315711453490993301693352351759955495071442579139744744867299157641175531298080981697197380235487630079388185795054409383250431559873917132759754108631140351149597160092479284183470197904797129767521203325827340788701748513086602366754692352092281358929712229083297101711384625215745329412811652802268493391398391983642815812242542336861072456699413060561157005119323051395452854374780512013027390867015522463386920519941911017211450020728306092124781900391493914016685610637653214170546052263393599162267119986431815062195246463647198790455406205848488741974567300081746101948450495568055227801549710491780915942752915005091007452304885141669756095761063576137735907737875798869652643811737587295312849487097581332651805640991151955811362381194134750605118486577486406211751355609234835682088315856316941270827210852166254997249836746837337294277666163954069403813058750334117802777450044956119172539767256973762368518443596147117222345937416440753299138453787980681067387934399264397663322021370563897479105503367862311221302149383563627583612110287455033340547277058342109420929495433649615308781540453367149429401956743982687402527661222293262410404027061654283357659175051333799605457694226481651207406107334858862080046269740587485843948988497029669740784523492709343857891984147067619965166407152814337605308272771970436977102255587524708980360265046892332917005015935714909583718394731247614632562199017024136983513581513866634419887151075255450850789382164102650947970915708951582547470076817045285143670192562485516145366331526306307960012096991314575736846705828623196534633073938249735521662193224619727236493497381883725073966822443777776032933102939333795880275867130400203523349686426792596518635131048223408546404942523099143523950550990683320457997366058314478063804005047671353230635756868010934158209332888370852904481383227729620926781908730920867907081803860125223118396051445803786433846503758145554678581854994541951176155076957185919095107686395937151520691160972295599689127112491544163309318920186802568893978336126331162408907206131121907469349203464004495733633568563272114034969820300875319478046409531866390686805155767655118886597214589895166175699576863289394948590191688030812961918101622979689164840160982833241052462301589405818017091488329044862118662479168768611158929268375745672588432617412618976012207146849347875468870812812023550626673966212753505296328742609254932343492837569208456579395872313814128421888415871530922606926694560635115535293536428684518739427571521114942806188937778699453285080121670917327247147753239662228064918652178444984423212988534357839856991798877194167844548880882719936455871834916142187320376843646393945540790160234726394917957368883086959898553174353008467426185142083113129173878566543920715457704379570759560959415011311775060280298675316511148231176117596500496802585507810113296300242002563280775861034524171759108690513466310785661069592861888522125949255029393430373836250828111089680016552610351344966721861142467187534358932499436690606038259967032310761821767261167055835449962935949497979073622372179020098532819784534898829842845375725299622529915860610857173919270993217645116158771485312692687232624756737341011989192226809662668558147423146901718218814632676302319166537003853918466529830477846894953946133148075504276870545073294876182990918847355577131129865953708963982555793207158924023650582897310498280487815049531192429656076137034418524296420957559248245344963388266825008913880857555419300029166200181149297310814693461363849474124397241135173373417113675817415967906482430732174891817560268480415732599063723650600445071338502328500347745458987783613175132955996885716748687784329003200615777745762078685929432324197312262350830438003896367918078388653424685780071962571906597121514650631052367835905430143790764055369000139120802380798922527672536511625454419898603328483444365370346932413342049036219492910404913905848082653228046084868854633966953881887778093221504503605799035131202685150975562254545287872844750704599837978675752458955042533167428659066475509547110728816856996326772675707082131372584118295940069509313479909570762278457554519118786203966824402642311550933938952340696908731713295039151326768581903394602489971372646236113777896970332360720741077363680113306899259921506167695744409967986671000935744621545161117425545313250760188887920905274776658227442238015931338915114019521993284161708468198929432598444374304574191288341726350606043936344371219980102413516810732685106777954712576571371517984663132545214452342443019801780414062301391059774342583636151826212774467700986068629246585479396521302404847543976114378121443153319953762692645141342193914809117805827300278081762766691039447637179946755600083201965549857285152696967521643308431714356346226205483557214647253511305324990654399697829589049195862594191265626732747044413882363693608819471493661251999183973735069595285228712065093853689546475625244158203078959711242715750489127820588280634585940226652152084336545746677982210949400619486333123947353865240153540507964248986056807913040523542233291984465073038077009583103898954811360222111654798818005357652820644714954749957051829178910768795095890179061252242846265038476450049322169216061577284220791870506578196521455529291837345012156505624628021796160196021558238698363239419731616543903195835172308503359165427417809882977253046959113628270023947255585654409885647174404663991871661938113669250896863689973665982496140228036524901251107438566279470003129119645022698893919763168344651669950069457842580441457748106753937390904551958260314424097547964732459998560655749158740608941166904095668207578748520340842556034737652632708926726236983101759722490906588132676650441772471064437430171017745657247945861457619551255103985241191182284123001123177582443698900380304149133992284380782698412006109537727830633629041311063533746928733093729412647725071704322848824902336743052395887981156339483780784847775325308781902632289515466951976329489128587462933802085448705872701190005816281151733337890371154281814196788507565392220297877063678190237749512950527512048728502274125972414539053389593014383230851389788747021379685892927775190359307580135410891889767320581579286787533827028711903492633244792963537036872003679791418061459898871742378598925026342948761307448241370124448090820768204051001048169726060758439534356523368220112538608707182988356918378473171281098302592798817019734195191932925618102107581948985572098316653404521726868529475773269370346561999031864724251799241356668517613639227976183975608244449226541003279531605148461569076910648684291151103610034485979626420592847958583767330021165915779947912781335036500469718915755511720123017614072675649949924842167580937547956856832555326574694809952588868801220277043533222137679186791265599507939906677319799650731502087328030598052259735997688965472882266527514815051636889353314692913978439307730864790374251820627936132915860884371314930270000005363183123058241225651500786086065540860956219786051179570798230996072332237384189557845727782131548115886907484519037984054015538498942897551770617024379466740990814268325290383064314364363820020618217155461092881056487265831968936755067191574665648464323965337785010488212958185181638471371698935558910472777867005244644917467491546702568711403396723327567066510333526997700991150746580194358183034212590712641841888784623823194840836942628622663748833320966524390195579812606852561910253132172492832893971514749127578511137923591313886634272470504335353491079866155049837615552860993185435115723235939230351945757861693119165331068296285928470984481757122569838432457437996301107138575187300740865871016903654124628563914272616384577231978764988940618260548332978887890969950604587972654829467950681385354398393949836018604585114513341765611814899276327339545482823767767026596757525091426940302203853240488458475034837910657515178732677804715677781411249657935722177850009401341192677196330116583580684992874732239999363267169967044141949208649061558612271812016093564009070358437987006634885348943347496735852364558760092501640243170601608920049343447411521308953291450189465841790471464195307498230614885775747090601285486947263815354630477033472527732916315981881262350493810969516773021448497435582298636125432018886184876545129038224211125829564851069272799149653958375831022266125367264127580838088347949455497280511981347606053219919213097805621414668405840564111763243701341482478629737569295448366320450931613492474004327823576898320483164631486855416565385228803499720044441126201624741638316673640852200881804321401130728817933632486689948207512065101045375067463566571020411905197696253197128055702548848744930651242176786189003414291760377855375872486114722627478386106243540027444919839263298125402569429738335145628747047317684614222590256693870287090160663440438694959391200745946678143712029188550857041486024803025491480694872193516070632879441136343351090889365466402974974752097656816647128323518205125735114252611263230958503877869983467499517470408589382870105641655062840322340311461075773659443225416827535638938162799550423026840266951170558626046717641123118342492140270004666210325240507705916496387120930893007156513455596136633988673525568585266511645785724129634805174226144191518291179508523136605229946942817624112251070785436508798349680191796163039180793430910809216017955526098842164013171422714131118851908206816861321245417828200108586905347370078414125952101237538028831695921996222774347809379194826923925559801711029784524842330014750812239701239900373383140063483553126546875297131072460570447087373599142069868178060572284124153673778648762685196087994779936919453470612752946355831753504088128517052359516015340621503058501946977367782993937290300669592249947516558133694465486475948649497745249448566516290217028701650211515852373914527634907008035098879864162523844095509790330212943877221653482439270813728450242575472899300112671380910513815080655930959841139046897225287488245486301279681808981673070093663164640824217967076758935170359603260551968510294323993075445963800450881042986839843358452967460494867363566086348294008221555414383888239050105972935402590554672672567884911305410665540680731289203619629664625470481326265611275178782356212283933749927286802042094643002461490789462826922673904660502156850584398077835017190123185595473150200078435951371955258523425355422548575126427468992779186964711933082174810431257694929482263273702821126480103620044407823152078345352593816743127293222909786327351780012391202739319177797702154362018174605789242346561355390736902548248348821936612722447249853437659958016454579447011190255201469649832465971661290736292002767495990380938693861594576723935600465274385979412484950791266931091201292646113826213904434293246132967321839396481470398129254742182263108356099112487215022886266656537033016511920198145801152789352752370399136864025376872286688481313541679040809858048285231473278383692390799559599686349723729707801214827243502377722372970653253743012487579838484355938422244275839589406326824425264877879475902742870091112187678520624125930801782246652148012968596810802005358309912040103993789065222036502059332665480661298079503139792408629221659138599121081312910139639166268312186873622345537528003953986346608775469616940775267470518503054067773662724700093725261738647808602186420114107577101767984582513110010703758563399346199755462203994351906652420617233016654814770634777146085437090804812927945321918334499229125180333781587840861317503678286248038632736068906614209532489294304063435425144451040398357226445164768363165260253580898653067313546106467505987639531082137587762299232978075787883087028059907590932807446836962964039000459552196017076399067711070515069900373741733901450242439896249840386039887977989271816257414760157041450164883464181913623340753646637159976361410786776114031545422215769630472991460582450810205345027081582001828728309746953079998545948119183309855514029787799630605671665561722007168286817232162382034391662130730197352842939927827534754142011422799000778397578884887416119722876602116103659203217831811704486898360416662905009383780511889200363757697588007942068319027047297746596508849973379046307046366831891344578539077412639653717492350051830319191829092423870589194550310736874833268100903654845118334128880455486816089549519218836948585232570342414310412556199536515406548093803280196513974221466718291064992501764582043927170220405497810220823673687474067212688975523824717501897056617009923957979576285079858077526342018875977408329117039888998749989289949864340302936867269903997079877662626164854942929322659475966080187964552500455276470158080258065262034256879083810689720094814016075334556487934815803869265601122288497289414679291791365764344128283407449575917964394859981041802877853943460983231143039271643271465556977183227592885368788005741103341540827593319011579184490097245365283616987436041779245397976576925604687184988843328280393484203204853305547523015622945049551836546979423979771316378615191824436863842371080925873352754084473511073379153338004286896779859237874692488272084989194623358621569354230321934517644771341785683017513807648215847999053719568196910238848966363555510413804579049056181200082028250436758402568290458449549546876978869117740123815238293626917252833800732314717812222660769155518848821833042348673253561857855191095351919685809298718795711633394401864742183659311068277520450025937032116831597382382032188290202688376009609181891227051020874454845174272746846818720229235772718044645591521075406911322537265501675820954694104532804121531979071434395248081996254229299804236813527515651683166112101008393459765201282927695321796971169976725583773862234123923107101668805310502683918672930783113913149805824835874891116825419094288991833326827018598071362424344592126818636638397728090384178065219389608099285100153800250836613158040019500125811778856113108931966383744334615240703602442703467115722929590344285529096860261399203300515525720424608072435919532938211920738685316232732098539524598673510693439130913751610436927391558463693443158814874261173864962067002727118435495642642305754011424342223242031428344809312915201656693098528176008548594777046967315873818947862390943792744036182592822339340748077091143228495916703208781683120715757666594402298796421962271953972433762307433327557369843238587250817506327116990249820647673720515936388151253063605890464704373775586902051239249354822905062571426695624713120033964146700504719467711330729868389842619151236527430155702186742671885387275875952980348384047791240380977349089657296511099460296382467607458466865471178539183014838523974979349849235735497273598537852110097094442473851147541279334890009024628261590912083634335032745952045712226673279925070713428119616893551744326536221615567026101184034155637154441765760901834471133353706261470823991455349199724474211068045448196259261700127478564442610949449982878449750102344656345906135645645024618864392343576009850480510856063147514103777286424194973277851967875509585289059335264731042645621405063224323005417471552857486577993713844580554031108779390058375903413998346356610137583419254929872324197905952192120069633608435106838823526691659770436761715728152004171798812506389481067726191633658141402272220764463586589938512901149999251721752973581341107114316832142353244257454869805860033321063704379533595455297379812178098627653149093198542736925082633825264651314880114218583928171040336810219585308606159549343202007605832631571874291327724203580434753131389649813327406082137941206970940050511361210289615347925980251319476848500577899509502948220910543563241655492008115300476526564676536250331113184229731317594822348645195412647388738093152818084370739949814142412501112937088192312702190451276714512885080018104871172287299766019798095850234630775733564878171439757496269631110674529139478314359098774492960405021612889334692033828144537175597486072286931127958051233318590992482931274721288985724441947756674755577466245167503094926420741014479882829531407440788013242323950987520246399503595489026519312326646780063519393025656948741180467904112990859319220649697645351507156665038814828828977713595032709391870699715900743932021369675831184355134549133086625009555014218964326322594408543129603090078260371017201026539504744437757662770996980738399270055525386250704566195675352564404933161733887402486028710735638932459301742292751016645932097866693441815304846412175869214261712472282291301532956043889843880683518397823598309370834164706174941835414878462727273199778823827560623518702815423163975839809661854281461846795949023395109598523962665083429868059141197924446800308861407021238040285437479793438233751875728927857430338881914415112598123548378830193750374287395534414494982504067363913861648415690476775194969556935670402929042603274016813857463387570520777216003418640242880287998303529398121222519189424005305810102244791893970610705583267418100986405089655365210886696488203882632057761108341013330068885375791767915292578713427432215964393895605044974205975221221255628831673173313307220098331748066422886017645434782954280613152398838818235216093189833880912280519100238108086486612517973087455252084668545716408450881387824783930980579769125170976699576895653982192970989878363563009848196850560959059756340453134330150727870989254467786582393758956299583293512604115934678969628913862254476742265631936639864023543531508458015805020156336205952895021569117864479545493935527508438465251802137886250263496802725564375452455930161991667032213292649202670777811555251476530088383386754857295355650262745220401718087940126368163626432521878521084671150874252570000856110168058887574797856089867101210983224692864977063643475036098284118179581719503277000410971641821852433299740703977098812102751098064792633656937100493432998573660884120037724690180520065385811461512271870168721829054116973214639837132869861382905786301740004875652657061700581453914865203503003623775072031279985472361802150640805959911229670290251855871446959349379396485644192839812978758897106035872484530874886124579959355005215921584146559133380269416659030661644553499748641318213971683602549982578779216705554476457018276143983712062513654492922336145446514915571146619034491743559810174742164638682868234942191203686657029896146970342153598262740623970599728104827788863701248815051529334683755430029452127708283499472822494224046081012829829374480126159388899206603113916638733136885290141292424549455105720138743392126616535793738329478281024674025799421942303248525963943888738825615481423742247990686629372366478090292722556005956310954377785237412429816879873789797742292759672840571205445716806171911048178672388265952960030944371378566395314685809717981166508385130130777713437453298489709060241220470089571416645361253776063102056186063351794784362535470076467887976273659362767098226945634383035237241618224733689960054410632723327390485720913376078315225596510282514756346561377179477505785451341413613488115122562363690850943907366705561738969468782546900046112355256420956818062665094484842448340834220207666057362580027033078539816985330717781736976958645261222434947505415300977954891559157239008473471909654126243458339950944001347871224373365077522292496364311247720434239607994991140954407605522515587915039885387675474361788086647321607131154689164096326118937235994750746089749893829743330262823711715062244338375760887791734826515172650806393076101012953122377731153969172630243840088868256228294548505403807041537365049676395872954363135511061269420445874039705644633690079092057108237304088778453940283177530528185995941648398794527595978537796404800134554856095829559127254746062057219614131043728463010275102759055943470564003711596645007060597537838108304479764459872892821987462819750373493718034013401913156780138652025008277983254053969351253105259289826600516612836565759626654490164059440962851776866532102149790930472493967502963463061388789805177607510952735137422981124342294077519900176033946707012633182339177986669142010046703428573541738021966104926174955356786140942131055710339411356643550331593919636248934160889142698304119484637554385865999422317013354685696471837323836614001589435679743059577277412788568053164092545327417869134123979225157604418063179329603620156517368605431134638345309510682286377839816920040078349139977082860958667317132555522439882344191180203741867440329241101411014399350025264935451564721354267102039232430385974790890626037026246612821750375645375586313506330132031488991965614391164630000085921147414398932516023516782930389888957247785784216974917216330053133262205669205797658374503807511163410313405019060671279748731405012200264708914065506118704700772551514993457750830700330847373304649996947414284939950333117452400236277064274582581047730764508159757672084231172291763303302427807954481363670239490156924439571395050912468767651638149184965231737848711169994514823181767624999317236086958144286041181518184111074784862269457260620470034161488436955871025135812473227968392013750981828220992156524348819184297268352855408754068075385951924969144514621641900033308423593107992658078247700433243445861926589653172707181305504764238439238368410769718486684760989333807184055017921327505223741274867387171052712660049671495519941554182361394309311912040635767607141080735539431518649351571195497809025165873863354477788585524006630350317309733776894148043228858854735868826428110309205384348168324038171717487260158203374361097808816713152843664230004993095786684401352634945479785187821098542080602840228817900735624527156606348654838197758327629817015187652437067046395614012354128892777921212097807019708518680965708776669111918975862528016700050124934314269258038261383171153201957267963917010510822502077783936571265294627340533477401878559270282136685992614123327942908667087054029554331296357236705092005282738224261708404162308447183076440469882902509610360723629103378223572216367361091046029295763831531541438720762109704996240081495424581839586512769396409329878545154591630248064429706988491744567967501159774935659819565813984049254148075527248364238896402090994842215319596461775379558048680299099818939553666584760564715079049054713658098207185248611727396973003113737303617625616345771042419758973324005108974985414157435745900214461858737465701467133437974392681980746547808553949323780610758532029850256038663870011742898973811528669215683202110404336647737984412354335819335200389060366972206071528907313800580683410460598418542913918695469112753638888960162300058213501521940402105596099356291895987210889983577266271993764428821416357518777182608522206450219611251336954405024633154250127875696648832910760232002026910572504117584337555925647237640573781851663197994827945490898687936502713581291813290399331980743596331132023036750514421371493262546151616369041696731738073311519907366605479759128457579794048951464665255854632198632831916162970309368895847567131754963879659578586143961556331533409669375108438458029376803891992498898926114907356865095755063521243256122680399277800147714202259768495773412138460645648201705371276027632136329850218414553847879839723890068512582235474636623162272036131204120519459168076094908178442083756334852102784406350040794655008011610815632019839057017451069618405791378999086094430786207734588833107206725399188595948330535864475404167480486922565196907210578807253762665976232876956230258689202043562570244695301219388119344125086037581385531956343187400221693729213978256064923139773659544277144965927515250075365490419105043200474902838927541757516930705385953971756750602953314209831514560399148926053792501309606264857398956808851976007518969025098704816953336612803734648907019455197462440522390125894305826947219683611443109681808794903215930470451175916368208535333272296172667680978217559054657125428611210404319660875644787263988094235373517515369832899606024326581723806916068357174350602939718153586953647040571227839308734267633816632623063025321642431550692953896001156869455865579057631077709813464292251562526787227288900416233854548830095767909442303074098323214763445037809891550084546737395672815667512867662375929179114141297905462325833063163389503390726872345008518507650970525046340444603931282128628850007433691525223156193974934814070594102699701118228955602627679313681746341809857030696983580251902027548159846637062204457250181444969531185616335977235873473471490491016359621949408674650647851464813614745714541294845036508370397624146756555927280582674832219146882889131914063684330633415638165256822109097606387919967313996209220270040101918498322078818518319939355329542218323170974458770225964233917661599206734154310066046251962801978216542586896810079603378718182042993564284605788173340150932262567849160669752951948035170524331714733160781218248379009959023778592204925208659543108323924140654353122971827934811173463755969298818883852524563285894724882258056128591161673568516361525449975292221311875022917543453537921289190977336349917637955773976405927757868628659761164017810874372358875194489706468032527953908201076776486640272360010964480368328725310439328619015863586937006139175621256744820481383841670902233214149732935313211892464826425954712973710185940383766028393267939562270125074318926029639480644034355800737334108772012670630322170641808663337140426777182589926547541262712140957873981508725459097936808293196682026762813515211537596810032841886334665857432207309458964113994612932720434654506897898674481056676549663630894380811620394454980694160199846360332436682942559955948164316223803303494708305649334244959180197861300856976556154589584754521080450197663438342189953406035426742881095138807870945423903042246170000123844544776546215991407049785095675418751251770442552276212008168411607831907178710083294575308396486637320790955711731331513482404246224880852732305041829469064040115243313520636811649378830451097705214023742207618520601542093530438873687703856121851903134053727968182840644815386529010807966104763403821797922735323083203307028925533701844050518887575710947917517629892295470256302525705348477885590864032911881213731040902304281468834919123446538741366736721033033425843624951244813568854758851307658659893341042502894865417153444699337511901335607865275274174322147667312034501292379628758626422456754295769157565691452631321723160753228075808066006912957502074589892021534401556705625357195271417545416364511806153142215833354100995944574101363059711104621618651970001343849266417472296854954055955452157066583685260720197500346136536116433866071056101427996202950295222937045873255062620872045199325266647737435336790432482515336873573359572440038676262678033336790762629671096253141937844297902220295746216958140164858611389640379309356062394159748675648785259474244557415717048125271731485361648562584368082609961531984806823301574729673681810262841642127260965719530830885227289540596927089870173210061364447884642584613902010257248942803389406461537708781746282865256672299624961488075417788748810239340766234052211320876918817829832695488689746293253670831255722674086175701234495396268060001462184176888809185699374799864286905286271038011948909356667868831355136293978452658770063280099751213803183818233407738199914752132773352030408571120645658238737186639430379856290126654822561426255182897327253790922515645591518848020902902468547008360120167133633949637216653610623185116249278647850522317245129725035718788620224845995354114733287413557670398874554580357442934273761820436873250332582031459883166090981254653989669680720200309936082003240929629409701397740970239275567706730054334909681733647967224302417411834455386831546433032455310327989696848995284265989113538892277309680048793659172690625942779064808332293036771006343540141897936191155750813413608402062154436076997657757170545179538473844195377757401654622867835402219017444903536399994412779685485071984149191669965637749207241327250834893264049853146727270710114791708715369027747440543640233041678439075748149450226506987811961101654009181882196264612070865243592810274174477352816383940886515926712277424471529358146304576194568380578382063032987270130516656350739210546943082939877970054414407013378927612474334018096383402951663012777892234668389128640307323528852919506992725267369082022644644614787147106005170322180073741092491892469508478937448918126898206820912853676886551095109161571553829122764031367217315986181883220661084919542303418895475648337535101533326790819885034279808427013096043886292801456029600315102232334973562637634652054821672579633383222233866555634311695707300269713512549923994960095711934293498566077377562038321164636176535623032278960182034724293680535069497247018256557060613976891053150486178835181845845613295889798692497204536346992287510075671262003192510983313760634180491671586562197454859501992608099415847253452157189083606829180748767574221621785068871454565821276246352224629447233544711165551902614204956709027624643223891815781270209139668946315379380542383771189123266979597963619505875279824410767403915248688096029104597768113414204374386025009722671015676408620266894952180712478436655101587792412870524676625596688019400310147795767953416534062455452255243075130418726407481580992204941340410025506550447200940994324135211788140746921224575666023971784868850383176427355121381971069326980222906194290170986510142320366949196454871412835728638255963467838016800378603644158109278784735730084763770242598474822701132752594128590880118445868546996834180467355970546612163823756693874668199616507730773625553069899556970858701851754393299135410698684479023588739427336121123673527975515053683371417954246674484823857694088830838574726373503032196762063162055180242105438196666562643835402902752367397831701432469639079441936249137825073105887411702125432576204028596692899583129833668401462965515279775544188380829148434946944268394310662904431275556188628057479267062187087946174842645263284498028378697152906480630259701211290162971539661969840593035452314902224064481797570050430675479478554593102672748923929951421398274328613302459221655669488836173309194940725109443890019720596391935477118178168895141201439369360053039367671402618125591119914914016788457442989934932569509941352395434053732500157132164531125796314314226939135465006343761641873312325388020289891429552760471783371307712054302189785354451687343431483225687630086356229123492698721775154199959908193017079259630548714862951439444043362506108886914341802597943513236352367584246098438739761873127777882779632583100843818023088108037297907217584360995055982708052376234902419665985675360578068782263665291105149818869344783533904633979623913874434339186946132318281250127518628139147993579401011272745562032340488717114799446323077277448923215888788270721702871353202782014183026049778909010739544691968893367406220213763011465971671201988528431035341480480883975475286676589227278255093534536602450002882072611840578852290295275106797634239987232693303663869840763774719195592336147418372232400286385526683690967409073981716942714497753406871242075077322947753811977443949373022508949528446991355652121167939427080742473378848683244317992406486633950331377225052200241179402453697226708355482456871058129446576311684166794790616701593342223525341526407094297069643228127756048104572701758253523576044180910873538070506965231658093391298694423683810171646802711573162060144812280244019609154040084916318705803609794728050927644902148817297754663098487478296198286695960581690419691597039546792304739495084330402407652363744948267562871748081041709938625448505004167417355288885566156610410041765793273983284972522548278890858743370954534226901214364549796201069344489471628816404878812463137570566269598089754433853726590370802577601865227061566764682081000895490933567394806513467879840684745138527353645365364763752104162869173368998669853458945902194977671498049917713318967697219427397570213934604773349481969023612483426967211878011343616143629396150550013933282487859094323000265137869357523464582554771394215444787468020482450560341120724048253073837141605925979177273747939409368922221420051388212922792018171223047779215175794855584873218826186291883697235707024864296065005042007563710389418661813521969438985670432699030202265311835137917687368364244606410491163933994848687001750030589951584028326495869812991046049628157295606620254281836168079407574333158176149566107151740546385513823899272515512322696116204483419472902070727294073166284365791387436834920306745105873371351757110567530700761348790813777091120880277700910705326133962802466227679295468482020506910386407904411348037551488349359525561303880871849589656690676773219514344174273000514256386687692011608899636313637353986830728962129882444803845525953476337140633885970041159119153992370101266615277227256344265838455281556433067235763290487933927043210606696313201918991719010470154542059672455202946166521594932540260697029243132146948358288076432754765079629320981453967969061765368387777198092758563829570391777430644000175208970516663201562228497468731499806981577287902069751521141002882273389766910993347317811799800662053784181168373030646809163854048328305297864375286331034812443381482734980902911482826432746497818217551205602856524215819918029515063065424328251350707477173350866149601388839116001900909858480413626916521599484023548183916991549066068299700251633802289749232998852231131898924129653915230530462428697819754642600096776083626801830375369199919447447113947426292492765498400207768303361461154307991571745538392260635356885532676904577259102276138105163332356856055821648129798747806247097284233228327652878678926060708762184788795294783004605620106130181239542237319817756686241569094586397713303949516952521514615950716843648488405538071585554900867459971597206436116019803326238757516768020105534348451811090252361075078927841553865606769181025995786825980188074257498643478001773331293523754800801880394245812929528713802550300346520200169775088000424383393319580779118662141408338822290699413470228102153470164456819643232495817179039571494150125720909561014173913584259655448503701776530052560159616839993404716241105883210681207307105117004240807288650465244525750027251460115953744246181325714963111065072464589988243582049745652544551469714740394863021237794269891142906898279470804416421341885055046460331612222541297125944908117411472143831963725265460514753962505605140905554641012204356685706172330353456661658023589757997683780284147454237658917981073053922527212418585246261158967492689424890737378074820060011316180825672028333386725690009298006296318519810899207422998282667615664435526353552867611489089944263017852376671502517243604109470513724463155594820023524745175877216026345385379644055984791931914919772254058426391624058402193238394976675246964299288680026977145756553739049628702773615102762354123063807383708365072937883322426952956839145728310087569194655471269704744446086547181832377583312073045558842600294173377261705750201537377846026971222116777363155449865643994900771180645341732213271375007992115261042012308675556911880505877252207272355653567098881602078017657333033026006279048219958812786189114040975892039334139210834565979308760862959556048330819197812915600862144324855328958887882741634356208064349518713521646326711623340676327379420292101898231639667459406451310521912124502292337002073144876765302166350200506147500836447439234635288260256267696880232970860167377510089494001615571345925015617252754053569330875401638588810804550834166581539321974701109787204810308408915180322409658992321001817258492516783936569480847957245192976651301896523632358343256231526542852575602251754379198772472699493840778491023037337393204056320730939147499054524512143660777962164460847660519276567181482100682536013728568652927398435761382800587440679917461859399699478844182819497253314462109894675414821384346356411828197114299866307178586147113624472053569153148375588136494448664160355497622126566201306278651311162155362958449594876111980192925908723811540705905611486236524583782117412643362556515004062284384251657339630199631373235540022019796131789722689550113820632930482973992274052006905614175879654150934878325458380075871851693610603072722304119146470438635384304615358406525064716535393077352551345271850022134400531572467994650309285090292857241143701832876458354369783838483178269295796225279023070697330053955083744542204315402964850905940494538210728222624645851231664588639949035504826140871773920371448313175560166128087236117427480086350517484172992992853714548816523540090188074088383177109534451277540177532084403723124776815817902417838969379514792373674393533246096891404492504549273203460420949156708615931778412183096600513678774984996651133536514697517429035081547136454534499114310069032925240224069073053472921430377481706919697154869487379267965492978386470366392490501148629127608942785526882727453134708652914603985114208620545587670645160014392209377915562256665576649069092135068546207344679843350538133756212526159351216222060567885435970653996679086647839256109184595861710056615166355052438172188790520841017611442686023665657653792675914883260740554058457939343320717700678066980193826372105539318326009716842192762629346617249220057071529095769078518633254285927286329093748349549010992674483350379166378173381623608423335200419459194048704118999386616931683166894670770329527334477715248110039432354673543007140023894930790997974358094040514297555331555672544239059473773631894354195745087356798771731057640994819080316001992984229237304252188563277880627816706729456919126183402857260293444687735659276645043293433485073680882535802773412954819121013054691244543786547899522446384951259686006736826978754125874369747088766172678049887183628050891008736992672697716573494702201223488365825089742410400486543399861441864968209557976807459733781449353776798964659548625347673888348892466927266783798999036311794894525571353984729093936902243617420346469278218970477069994152959896991960577987194395553332947278779548568037558268753658735806429682568085571008963850922088612766716641528446300466499545392646659100172026608741025968531040492066707574925854483024665320901135977038838792741717105733657595134468447758755917496236911566479829070892416011287533037526302449998547297174840035156389558805253211922085652208841134754591885361331326327039093752536302564543524118420301144739218566813669703017114509317271705550828805842031047233091686421336534460561872555978217707135143987052099615360249590195835578281783118281154511133972566022823271950780213510960900407351256001360715954386456747374577017606701306623716168415822565263028811892561093300324415247020289684452474492021901065547321511670196921418079086320159978117733709588384802915946947977305631970073661571750736071320620141029442757536407871497308927339705464519485898427422136383254736341963580370450837898382520877154278525648513531350925703854040228696070620622238867717731444493678389931067266498832558066603700744155186918392120722648973822898379755479042016558666167194628192476303706880760610251584284742239374109240636855875066245921667537782888506041613065607746728388128485746049782439270241510146938468781893830152612547239705388335489760559353807231018853369887722260073671165655055432464721517087170055821290893873747485811243615462375455609925510060173247634015031588745345790955532192873870975293084753179429143325278394386784325240679454346385805759929551233729617071815488229073061064017858258366402543798172591221455220569556109814136845736758397734824336614305280503896563755867711272719634267080036339028539600411263363539943049857901039666152160578744965940362411096722315698478204625447766033090174787510296192711117226973406465409847981285959868083673513178678046547941141990839000587902948419500431055612505532687651078746433297046037982125687889702420534016030633183255965293147257088992994107585420257610516268264827360928541148822239441502102478436591923555489268337130072738389562148799622368975340630729322306031989576087230966407999594924336238986368705996925905529117446375011888332182659149461770535379935508588950340240466684181224306865350531911967959797001415980727618954322355372325923623069332883944099935255509596242940592236771997166252818445851068767301801725425616435659911634258687054064393056736663210327250800288728968137346934223814301559128184050475093499760016484626805295962446244694916128733902709690970201844162599698846612770924559036858225440359302693381960539201165884375567237037906279582075514505748229991172396329200817985309257018862507515145239764512527678016615693075195523472492088875439779779189943151659233022739482571725034630063526741294670030378560666778568135970120455699454562823409581072451396120286838769605954659410089771536383956720870624725793507330831168331932528531248255337501720184454499145601770570921899399684505482334090564806605562425963691061586733826274457476087612834347845846874749007945631560805503439733528969989060785849876701660905099594189418796831330652741057784632773099581727827908526334845024284359744860592124193985006884498567664106532790275634769083768364487601325844152888293583237811416302866107212638194309918938637906221324436832004443182956750817850788854384491833575602439135137493887035871360167251426670319787304523973980198600126293944504009136414696246966247051525592152457605145834834494040581283815217112041561753854004705238720268445361641113319301428931140476209361557365064104787956905788571972494780286773414311595279195970839203058052315075507588730271717507175442106745726928637623840096856847444120047010545994768361513586395135375213558329654795957616422492267985112257837994227416317720636900303533637346001414434095968975576554793950587195053589977667790293351981840373862623948061923666056109503457460133293443546175669133975394518721575542878858691397039519872445709228570773698978981473544527423765495227313924139806035629229615370754670298852468437371496996391108197497967355231495647781905255553378715091786329098590017568030287059677911841441194990505310275788649371247967773818402193455271176447027250781448233255963404503454686360893540910695019638838612236279708086535687544663681312115313628067395519953112159666197230547361979808964860646183467587479597933874758797613758878506291119616093396535817763743280413563703174477137859122914745677651079094182030017762722259889512045031682392278845482650726805068618394946683650509030644980387553381323822261249803927258947215807085114941559446489554407203836059605450907465649353807985646690751408406830385167063647993272854030066537179981856880144374917853422642896157204043373303017849690890644412689763191061971658707355495316066104334362583282222887331061819938364243193787901222669835722336140058162870252067586262103117173977170735655917520030041626872806455007003065773535913001699068163226328877906003308766548226563306462173285654019826125463258859930108157178502961257549118564327199759518617442109354338556123750572059478919468178204952163344447680911217176917472399211623089656138674274863371259447653132496807515538535660083905891781243621233626525499120434603684980579145883087272818117748726475415790104563326473697310292665658173643814233405518541371965987823632755968058627049133512647301634426943555478023969663412767489964068600419058547063926602680435513636626538444506401328917988416119350247904386899094138487938705621351364886879974948935317830935995251465175233243565058651432399180866430075044311457574435118167559498981729697612485230500562277263766593555835770560600161658370047811690327309772194451245146850401856783704007186996242024444591116205300872808880159842658430878042621782299551020237301213059325102353702581745041611369236649414278570681707296235773346890933016037163915233580915652677644487747797851680098202520147979708534219104159687700566204433460745077994633059372766398338530794411088178210957580360394830791199844036565648469991158343273980094481310858153006606462009620156213471526427706936854069350248275622787403794341386365193143749645480154512442807705968718268252435013452623689035998135703545545507662873042470857237574450001506142185000021348921665904666071360138702084519194839509322110094032780604187460541961348688588130066782703387302333102385131886435854241197705723626390500970236212987673013972983469537870724593191650334482526620212722318020604366646880018853326783861940890658738233397022685104706016435995164957713779907959076517773523298782449522199442522181410223090473728608021779437625652326368798439264948237098664174756026530455164642394134396214671669599576735896622660893732493073942780310989442721104314777986294885464105208105587617750508359093538999070723518546546490236768972456087369768071555981185723981678757187469740289962071868065912587236636683138308980622159171311181260405890176291965418108024361170603931695578609533644332839557776588020421496275994214902614421871619361294812227501556009815569484607305900292404107602771957199439374900399577752284871108395678139204385274773477199966987569852267299965391184473344774204763719681419030590404068993449780904307972416112747543576165191635145888821097484275040723250459612490418375672657507150193480719187730737932341378435983472959275119117060321783609436370888670800360378107437695184749856222694613785043220912674361680271231840624209319219774342314828321413222241420552533342051073719887355588750227299569297014413461728165205118646433320283805495188669422567046300012481038658845879460511859202777059899784675187169653140668509402734097867893496982018951401081578810098158936288653405973029625731772134269827028287190874200383423535061006402256029414076609817240489302759143847567720938360308532260187467815664871719613503057035896509517678667357050685580102572835399419104568989460634485971986753999192512639803938484517067715878919995587137617760689882746478628736928419437782945349079175459743686711949049886219997325186344409507460340150220644162513131481225881599408602215874975357733855302909323822728428853859273505241427599233072140819545441747935672862570279701299937676253566581920998956473621357040779860450405497250846425688667776680483253433699554448323596827688971878959021800220445812573772754543153218287471357573183168289324961554287170398161053902566199566341850694195383512478980040012251928942183456470977546482470995479667650431173255543856239791417779111387985357435737848339510066892378450750279020281124350214621267349308759036552898343494644344109445678198562941662702975696303143946258728496001911591444646239609147732472970285174347914986467492328293386807950934891604130040020097055479071810129367056063470083823785959541720297157539285113747992268918970296093275586562116392806766231422781038961877651579883525772514833622206476753421397828565552195649643498788309010576652462926172120520276800060740278868542551815088381910812386926528042599982056619990388079822513408363011500144436081026528772482875079626623346161439826027098580665946442284327655182424265778854619308406443202122571297214983404434029995245729997087249205588875812670986350387003810271085875655834438011362015235069009643354234735062828292772528475251429064566084762290262640090946865658995676432332963462080578898916727487279251783978263948655223435445796061796024968505549704091685426725341934816933705600560843858098283839888078994029015750177792133669244879575235268106455162587151239144046419646746516406668744989784922409109748062309533307616028034751997242186326923631966153102460238328792865293682530906309883986577492089140576684013288328976426822612451181551855482486535069157090932788707027255796593162535785602671419493796000956357490923998239776972647476259256474860369757102417633120272812576270254800187168386773730962202653652153141296950849523676476974518982882438504769441549962633735427493024408860030876684304619092904774564359460016521482316319801182260121336964432447707504418981133677254471418112081956414174796933035196524407680485391732364336727415340454609939877949004969531098772515439786521701832252937214898283088930147697194991866027052253193835167083175602097955392724944887132759414955788876042846765678817466835114446359167399523525665421400197153213187493542945385860521000552851239808350748787923768578107876000208093777751423999639106774322577694636916195007429867880761635031370356878638604995633146626868406092355315033829711325180545605463587890330525648669064801366385289330314854434731774102223066070571072094565970597182307336537579827752717442592051497881646063682771661832979812294515764667751518230561248717057282144614180913280548418051573414908675060682487642183561775972723963371112494781529916825622655665462571142160997649148109289207893542850874016321259247045877552921410165582803878704707252583581537590554843072406694347243075183598650473032126735306017090998751041646537541692139294150919454513527295065033238103682674842913738263143762989819242696461777648027116335209817163677652291834386710784536387592966917292131785306573220195998020116477698571931812176603146180165548967459990696777803724625960615476594923082612590675548445032262617943502762707202782606708113499298862933296673628608587573416653355941313552159018529163412407497101389219999474799328727453456200599345055919375901498584251487903917543224890557235986611779373537116910765439942231366277067742656328599069000358727939325044377491441273302002071333410867215055745912260654746424790452408522342742277464504231413601527658946442398650642252974204493288500661438941315594958698945531788898750242324663355843936428923276233962450039008277689447197055533428336635807854479988870097941395079986174815737298149609852307139594476053699933698730395424742686855304320268336991413821079263907443650779844081764311725402735368529265042102108703933107526408174679904913182768825734881753858680213455482623752974042498689503799241721925349837492811915300884666693326947520897171047137894731260247454069708092989811011472281556507318381372365634134329579068241960223535198437037311268459395282887921150809191188174969105536941663503459370712594391328914723479622569881167474821313830064387560942724861538166156093260422151954390351852375419928342928512593664394204473774122118164178768010158857343847227121692449563405031471542225814183973599052355174406437640376963010167112467208894835389084983104005895368809709136307780065494765017848722296807320547284774207193433450800194710776651359059068198156069547331430108266206707660798414697594059632997804926018823729107469169849195421455324699921262258458097950057007252427187099920014669905200641880455996310705763028276849125743431328324404945541385864759698948403406317559174354643053968152960189116534739617964682765418510541084180061929558500123263061802842377785574599696509175330547796997423685213024928235558552643337084219073286711902991306751493459592928443896647963404545716565753538479601298531927721514332410578521815650293944165583779911356700299318620991453135272435775769517971002428341229804195837696370348030559040581821610098533730055487381389145826013809732643597050720609217923450912717766881198292238760079261518988767698111931168140184644921594268160693722401283392543797836630772349483741190288886073020305860396704765825707644934317642255538970323948446877436440530683086601660079064061540889913334080459753512328037239257642237189162456245000818688283652062405285393427809182304454323003500566975942303117185163334439368330243337364205288992326430473601242025960604879023385943537546433030648831778666491278803010591547842332370144182476119188909930142355431321051371926485690097258578915708755817719719322973045333583411936689982468786030284389254821518677131255700935514948750408607312452880208592667051107743173451755168245519936972768006572047465452885545218111526901873581864693174995401078083100982443555241456780917605336529834230616933185545274787232405639311677482464044899564205195405225309252817737137339735511143651357744021870802284751881757948195621904371746597906424644123863076143135035084648074624675228095922388309856798319392087750859026639348798660476399771591443484742223306529165860311017868622003834502522712378074742986057256453287249657808187711281425257270909455613732365758110457543255539434431851576460402214907598000366711343347931952388174762006757018710952350888467945071803990868573230475580338568197727127689009652073964445263422978124843961319016455877092145638107432030555464962127990062906713223717896391789631983847367939403482081869214216283150474428586431119267868677379243563278220773338306440505691691887009801987001024385584699957546303136631101353226587464226872712225129884085017156680853800430086203240719278417876233431776955840856605916326426150860494272124597345320699614426569108987871286259873696198318074589001434766463971092509537615466458458872068987601727157688649544189732182799947603206757691930139323355265978239340813659729239674587388111490766971402067864544052757711882470077490471167095633790738037868640803781361638607127860789244431495984019780744530594224082574700285262078134535964131223805731556822879407914975796025548343413825151911716852807900922065953036826252078502995084078711892607797048780862450720058366906499657933066301164269124338621656833260831043270603277825123416938469024722376015757401291396543793348478606343332516861381040034836038979494605701707855205411528035449237611359351528850736307779791325144525059233284627698403129457738456682757260236551564729589673053287308463796399487931514147078157343288430376253799933640438471854688091785477224932591951565527176468498617248666897351438777113422175383940610201949350838547450146652150822887144314444802413522156919819190921042894201682091308671668805144950086152858199176489726964336976452064570193020027650151127535894218663359420029409071951955647386732136798375668305189211183397483658081366350817668640863237874563669191089405189533217464977382505154713504842063123989928348338010844472941092953954630977920796072078442328356983822068926907809347500899908008542821672161052727476680453676917902271942032876830740595238669855139211916624215641417667008512785539207290734170083286489849849988793305182872815069873847387729929700804626601785451495475854724012803362282761944808459456784228566495842251479852309516087423201298160133716940983697890452426349047439542418758161668188740455700136810377569849040455590891404373487027262715081771148726990938379209841908181476311843167870974584818198895042011403723610443916969139224346870178671626581088111132322798288528081793399288686165551812515098454892337158264670307536011869032462630987516751684330818179699957135075750775865962314388058907700087842671423844001349473650309406596457039263647642411667921120270797140242723103821143418578257737509608770116774043150343570691926389594858144517621987712476962257708813206276641818806521709589171349398807344775586262479061216747946549079314133899094330871614624814178024195686339756515195997024485438812568880634205431961894474098007931217300905694853006543077509712046213999512021565540799166707659191655597218819643003702085494441518836244056788403684177666043990216854131822028737204520950819635408121631959492761069124701132775920798790391615976496603955374818450738705305929367572289209559484820573871212338127489643007899704222514858452308456857646163966643061683962081932363375813645893457720661878266801083122528839537262071497181485152698516189417135986262585058117301674965683038474652787574969020159009862594897803185138754443417162341389768063186792275468880627691692962727343615767050960164739363556788197202926318209943205612704251100042517306855836240730035775473245782302762340341063868422360625904585139607974247127550918234976377497694318568817387527106928019156007413701826902891750909193269777392333562876874644495700323782966184105672417143189514146001058812225433428183436633872486306275342337770379909621515221967011857565926745919856428506441729349493833636381999193689775773479383498583132331534523374915726155492509863630206974749691681772200034103397140626965400689905420088429303159836962469330155399945890545652746901409732823636946284885033318067379294503116395530525804923565316520902684136279155461080598981170064019107831040795088058716635961050084168419131183084678379106752792560001289993895104611378893230596242162296310957990007472274134474085808955098400342997795382471764682041331081037845232730861805623893549418683714198314425151738817523866978408470153873229937527507701859365388773065348381196907892731289441912646711134067971449337714767522429423814575082744493893925771037558977484042572259224667571844918444607908530143331387503365024430345049438325203728722433228667963709511003492328875721426274237142280150522887419861038621960007308285242053828726240130690335375994820304725131184818038517383981384039748957003509643195529736102770598721333441409440601824980733024982673248762483762406936106715838829093732548284950103159553975444069631972564437518425187844878640806097831722292919218148981004448422766358674332648771072942921340120933290315177062587304848822903241946917242814228590471756722558072498237368145419216006072670200951230034998477544539179900099709465844156140777824587837676881112835815780222584794637338618645188631484214680879543330710923867203791331815926573132303820152757628134455946706184115754492892165157738991607367026120269655972546427932639334229802144310140786238246769141180474215541900762138926732625900504789787108090301328554969119622440817493110137481095372208505433427177268326660667492528704830391253167043305456964701831753231134461008875614034353151577861361134957252332118454631103481606845586755246097970277164358214687056122693607532081529933452214407224825357494053934407215292453282797635049720638810062137481179092683162233960181993481436297751550396468259294131844291886429036090797151319166523081551912029097077193870305024336321778131298981527010313281490885535898824935671065450652299679026579466497611459259728211056004352460804674026056904943699441039967597703984099724056389871890676640677419233543819612394006710486223155812131842737447897126012453359966500244124121246365701301172329602495367055253356010693769587648555812231090708380322677541967794971161707919008062628772208599623398762834082982829094177774568552538976971783789482743311016551624770736426599753254215520566757950600373146705749842318098009166120928804465773118047321034610995717963809176398191842456989871369889473677018650879551289096671633612825144617629623454905943036600754876378757700202585907956466838586104923758372157273479577420293295915950781531506250384269021770288164138264031462003337480522449139746702778125387470309400703919463908182883167319812954362094350677823163626407759324291963792131274508362565064383244359592411958256412963183026321067293733032744153224677143029809059622777191993757054066509490168789477876070275461642469855161180219702279947636583810586928642669251828921704092189194075205716524424162358909511148816064888114356463303989667402737398027216758265556590775935583003408217241322588061169162169228703348633402418120954502937895166036179382230810352613429884405506615211959624550437192134935052884858952889763553012637885673077640993523489278726086770263761398754948001734564121017204773888174433762020750156727915032687277307527131914998184389030419193038123532916855813051674980059593167390770276290789258095085966313171598358622371841069175365814292328634953025154240630462292174316941722532999837314932170844401317843552938479982963277797680608152488621729932710289899117260598891463094939645957782271395030748720204331350346130334969712085286780338362372385641880959473155083358265187898579726759114004889449093545749713411387684736046878067714982119032501136903975562799510513531771368583611387345626835129996860105477329249683808597919600789731576671570410384181643643073193467942638653238077186653318301031023450225632756652316475271614130969604444354671765006321821455397242200590623338222563212500374349764011081289348824435596847481229229852297026587787562773237538356164007338907101113822078835476401423169977634322786715807334960392086539454618509241010813134388966531430125254640830863584830764036793421996680750555591965029431604423878878579774362625415802740097569156387249261801219525299393970168475438154483558084413093322235813515792413801160938898270786424102366503115398386877902127749960089133691069697120134318357520636861370846130137271571183544037109573227904502283264071505340858674571881389180497744853166925784884317743291309883567639182701438715458966333471591254746282286143903943895763541082028079625270170132330245714693580431972661526219658857523219673731852041451972779668701932724592213985722769461660478809861828552566324419069998715168406831249996589087273177284605024854391043526940251905729849106762516406589759167379068232422006698198187258030532595067040750247161509495497000642571856196149477577658492079231353060806802952591067633211645462039945231690788653690423524744814059542772901235458228793682774399929148120170611613896624780116914826600426884190491798568095468181377250470053177667492797796396305471501502784549266533578392686211915892469304961273481068205886356564838387823905728094066238373104577852910624598413100158658365225834593609511159158845471769468541315942901734923014202134074274171151832513074322209081056485740717906929816172222595497350369442439729564641601081630401602653981319481193487390969399717959172173285942755099975177581339487215659090771756500217845083743251674504575765708419902807792128116606795508466520986534945407821989914195004560206841631582415602610172616004996097188855061526123112756200146383443761991630380342028175867222661497069343478312923873184332983135374112001100273883809576533256649721017003938105786593120692616152288386789344475062426751996487775013012954810912483017290529003342366785389915119182935224770572163572680621737240759113606331220066512918975931969755448368868625222461066203316871329003055101541987716076287698957952771049234210075060811929679207647527213133837496444104808411468052716083568601501731520577622691511960656932967218200383448013013490865599044218057020546204017278657197175234322115443246315424724486059255761463176955719392342457436175986361487418563958462803635322799639230721532864245194986141133923788037164085401921089165173396215955423442914220171655396304512961518039480787125380702489719155658285691274148353554938749052869551606756093276976461852527946230276468633883041397354061968394605474371710845515808961630662785853622968023789895387583395670807715218067807526551757356363635458558060476922598120597523309166189036117570028890725484884963796381904274808193145656127331157041239754564394801406624605977607673034292894332812963089717821174831261921906990392671556867789759335422285674175723139772897651171517118126186094835875378414595295551504140307052839551978722479429749154194871501385297944449895698095275046111563250178820518534861687679478892945602549323479415414311083357259445809093529710037961122877708650523803686207951556765771847214184086164158616806053446280482261111327086415457017147618498714731054869772755415159375353028660985696338375846551360286352515834415452595893916876296258334769713029175417988821829588870845028690123824170567027238919921630071861291928872264969800569560958766046774170197017125733217810975991496958526451452880500029045880297954085890756646589501655792739817562035284832145579648126180227259022502243331840869322269699163559073415612177011107881377886058603549348384869767732792295004673029137076026931964056844034958337171503375304038472066007000645214681051235287964000936901107460589274142724327399049915690928684961979595741520552686743471198512840276637679427916618488417525558442018151143075847453724686410585293502095723703928947034878286947425438487856653323478906276188732163651587973798223704802862952551598486892393225326170941445420317716426577124692108703405673803582991220087863542827898726504766585234993724296187202036752503161148026223787904737840299827159475964750148330542242850784897598809858508450197384055548805211036328011520569880120441327407590307001905392236446899145691922399463854147489499261319169048337252053854847378254079365792704016575415347920431388343284668193747723142666491041416548960504256898494156906811642740708813838315692811158774964179021926906656182547178005987548574967295717263615299541502305776138895655999288610065617423044874836218400096113247094927811670631767777696981104945283831395239877535276487569118820868462550243616248286709195954547778370916242370272836570803768564073863428439416209236238568228135308503610197940631940236843039965282821275090896129395928677509280938531029393718829523169555485193266634715691199628214871516895777204788662720103525967645201158553479583039174360388863260216267015946694999705615432316959504629922619372758660731939438794679226657262943845018222004645484326478481894285597311336670111148957764854285720938895397356242144055350460209941238283452420840042948696484144586247665908549298024809426517929104031819484737697442635743321076673382295934667195135652371099417279511055074119549547145457633092520263029444162997805883302369842139048541486176013343498121224421257618357012659672061439196094104942428118092459500249223627574928590570305132963492794732026676813951747760382576802182524401455836982427500238699602981455841958409176126530531267043069558191965005426713807159261940715775490795123752926874083666824649721028169111174869857283834502163549482361825873915739478668453787646041052910985125178202905853338656462174827936428044177558284838527594919091245573679785199017822305349847038491013193857524265452894902218107712770521368642181143232563638492000146780112513790797762564018002518500705701935576308374014026022831241517857319801328604627764258087845581692726154452342956262870435261125968058983710875246160556249022295729515460386511402392891089311860815224568896080060169688797525834619638244632105538382248038560900988400972187259238093421673186823605121203371342138165234810396628342612780062905413548166756051624657627566324419646399503751714097519599893665322236376416541055665162610723924124601269253924599745166480900215584624695860143020498758869595466025575731957953302793289517805827535114548047662476173336702318365808228161717228693877135618147822413654113330778010812728755527547992999528470001160250938076393121413455674753457128812335294820847109706738742433464093096499330643250647513778459359405083574544466100197430430256434029348779802363969253314298727736801536285377677679894929327550783163990489754025786391654977934290967263124044228344291448643626630865836303380698036864238450588571520284846957268556104828903617544684656574912191401149703884668962170698387462630040109541447679127632534281166053027731715180005674245660501690210181006210160613105066546003079802590706151516544451591558149529456525550605258779718533976994767256668434181337985798288968456636188646028539515946752819612945132551882996352781421948029414399571804978827592424920067698428515686433110595130927466705207039912638031618526643343899274142213016753295973794464837833868458824776662216630742323671284260195774080034125938674398012375754338695206670446760310291059508944622563329427350189842616387571572564520026898487574668673978811589002491597320493345673065600151238421614623215953799478454607855629594329276452214271486526550098001817966089257036566003604253993805773897002423612615222434027732635142186799334471864647174101370511504570007824946477397398981371926754956945008007399637160400601465626770062629610133915946061269307422105181063208543240803896502779554479242987283594544537774918779708435020756739886589850919837465047315786474043239854975006404495947665746208381295554615387635401957817806264014459933022381900933119267285851771222634179236802173544945254682459239208065905337912319447030178231258930188522120555280388601384966183206335075816702665882415675406069965971086867629033831729770386236204820087370656484014244424786043472414052728180114057113738195176579169130927871680778124351237716430447754583941467849596042644760939891349508633376740283902346443481939449890051297430803370630226525296002251676441611463387894422069880679899264413810541375016176036928847540186727272731423728333607899131322956068866235253937393614524475167186746680711152776869385812450099516958896202790870825608063627522854187149559698268299049268615837229579956045094942612869185365362743524805371571951816046398768996423726478990425873826230030556873558346730068462120325571677021303749165690869215846958122345767917005390625052902140736178561547077484197998644378419715337480351865663820410136272736265375827665320838272307868734548270476194696505993277224928569709067213720480667845515292600958800917120315473043108573541728592065076958411503645363921758136022518757994718448502855247656768691567362479028952966990296943428555687060215393370509340606723176803947714806858768212646358668479496082783523045802633358806227686877696474691527804390980939170139769348409680680770490375421637548625775916649397170159417624124334475555021364444339654174738566529996288337019027705603829862892588661334657156955354654039088585653270385002293284859334024323145967279619282475678028563405375663963873079820180964808735897134436772779434023201579347104636706534561368917292159526241659462869430815371342048027400370312576332556823411980774465031571560450991740892837519412420362233915860009097770748474322844074769335266729912764206145046837282928647369302373116180493743012234369514416994714677330085719373085769789037457172880645582129740868482864307028634035710482606632951698545248863562578017191884757153818884285692349855103189055999888717181046473105490910944783340150523867031314364227193538836022429300202188419777038838541745360060598814359678040465951648820543494985166407788912055164687717356906580655698861099402496665197282070926077636448027634762847382854032983622990387768552344221706957648005114868693557868209882595991080073999970640284500647425052150304858440839384086400488673882119708318935693236178143755819596861163090762620501665370143462267140458091615054383153167784817287599028147370029112037337418703852426053003270546317459334367231463163181284636318531626848154968725101481512069596461144289596446205835788826813642324162405159383232172350162859254892364581153896055313878794160620828724156111596739400068144744923214200503538891858738983964103794172048530169088988248140217179178851659795285264134534660311913107580091066059082924587664127074928855761655315176282083359952058918886868570575913645737029954019003559371752482909803306839461185602637447019090905318893840426327314779747963964753190804212425741847794189141062697694801558603835520956429206295872058554895726764463898833147922266136582507476440178006734414394711804462662035553242856835521109902155384881490120886641243438543380118757586246019151632500405864261309180943409829626397402026773896821934365604485651069884326295640671628030682429317910903023332980128389576699355384226109355821728579217154552459449667766446475439750585919262332383272238137510973900478599027253236279713093726063103553792409610823174985269119024288479903267959987545908441181135624655044511901790142716953075760437089791997402736089750374951439349142286051899059406931009936799908890482619090802530464777825554359828886413148004395827443397138938407270664843524823281369728283339169606130778224616575495960580670840882094051531339849627462487574805601535674625731604063106014150469445908040240569874997633648277662669527113925643222049746111339681181440869345687498756224938064924861383281800462691859322101882573162438678000915965032390299980609257392530160583402975582801801638791785628421752091428661289616318417294562757806589392863119697674750162903073621309913963112370380583348033191230896704035747588035766042177688559727392705186602991605020495742478799234046379531888853985616742102964612733366303726579970593216633671565105105225492095192522161603019496505459443378331105188129869795165164944135482401769967100505451260258743044864474889711608962581941695942746235384218291019822951859643379773786055156499489252781358388177075131719782508949195330794009724264899607038623151144449057366404375108919161045549114187728823766171712566221370874658272248973243307981663356661345251993728116732462343643702987162900566530733787760461653403883450827207691877405717183120593495545483941501911081847574519161578488449242173583500356453750860935089191872432416016985544915572036304912150153869135847945228772704861131524853869552297588194870608191976454888081204003409031502341723761075984759286710091961581097826299232401326191477675355784685149385466410815769132051875217287500348229863473433766578966749025939232022039350017068730541375551069881385114968604142296362073857562577727399069143489669269173858050857962342684788881741459560776407893579537724081933746487586352051837320696212915615209998949109104548084013430660340328634378805647989062098750638940018618673324058627580201707397317548836379839575252875425871563163602250385378741119031115977961971618512810179717848456088367342281302306934658146412218476043364787375784459241614887646252898336790580212040870601307628516877437544646421201707539899202848681145191783986862407998312058637836202703384002753349605482823503518453987464827445189264007874399151163499300046852391106765888361065757067692142541895324595800586388443794568782308026491193443852833203642705340213621785388873667580708323826470768324357630348297366468238310589372201201151792378383824179345231359654645021371075754531264927157070764276084460209397145642480278172890843466464648865360991473480137223210684364758378735568397537100185112522745405599622069409116943087285277110904221492480256911195442432866764525205093266467762915157866424198319642755930331323450726010906426705493163377450487340061274157927049897379826222012843237957646128332060542499608762038895917069458048863687784539888007726498877957240763006123767475497343077078450710614497201916864900445522586244611365817882018905831394337281894870912646087564367909976645114427386020351874500914968760413735522323173887960507049755113649309989486355969102453425292919507139499536314831515588000781965456260189375981274251192125737321635868464609732925376633589764747285964706086003645380260999426876316101368140247397609755453468190398495053809109220610234854179142389724175473759102970035384634556421221835621772285827760099253729580595914675207635237648267502293785084330212541619012895066827397787843554291820233547169519308919409898034412515823754386700874840930751262337491047010532955032079188174321293770517694105956471280251286023374638290429152061303631792202395733915481222654753887523518660713711435968991582144973351064312505884361756133579586043368810698812904286495936172165693550195612926282448963191991068430179382903706024302678252095688022113905118281504809688304870371950667485705330591045229692705332508841488057407160812385503900029048175164880956443949593067164180186164971626625609760714615681674303424687143026321049138955494557893972288237605032237969314019719369388427596914898658896019562264304554596263266359271943092514167303404241049640835208820590947454726271074180991305603115711709199418333930408646319446444420855287172447345333080048084290301246047567768872803870438561957136423214164721836349149785301149696144742801924658137246623844417879153760779312534824963175144233162922892395939253053686772196347752886501942471657829184854571902334698160926159214410664654299437322711672265545003621227613912672312190147993915199819967964334958208974396704025561526531455815428431714003980166190703537531122888514290341709109295095190657966063331957784805982369179291035124788617695394800406559094887681625281638401437313815169355151136830591143637774876954265473480429041773806451851241502748463841719246139165356465842900435154601783285936651363737342865221211809911521576974136826098361281180125656424543999669485793237181968848875661602810895724763975026107786549438743525333623253236940039480910536955232151270088028033201282794942116685929082956436958477985088130839301653636839195482836000387416290240787816427118572578575942870159947532076489604153626170567219606346197982956230548035647616265267212177148842346023199746765574018717992306113990355931339621093152893127639634773261769919989914185524849117626842455202667264339923629373824468416878749528935200061420959755649311398785822403907227208719233490344077075125688162689932812299717715499542542943812462677197599203170799440373048292598041736938761982667230153289692618280769571406373422144195257409195428247157163386431140436475672805635471825222934003542449817027930090587256548728585044576238892444893019686994202968095491378001408165257861258051371294314428445540251876332518733608437716429382006423163073151374875688371528088364334839256644612913052434669515167800609933286330574993265177308172164554003844571134721117049897871629453781160307180777150904012779974954640345630978514919115624945800555400442730587475198044416320089111378243112145367486468968854810631000284136235453555962328670438378488350434565733175284877672038346058295502150361706861982774812159523455914571572201496344586451692635368955773604180842854240229482733633899899059504712727664777979440273669896982318470393980643979395250170158192232930708856061969706572153228406847957457325066395786121745451514186997851869422467283640049827534399321146374359108262090439046617239572538568811166357139757211094523936376805579402227906717518971511754866596542609564645486175807756823408281146970589781221210393421882954906323128896818493017861020304215580676218396181986662042518414352174187760910808305080234652707238517742890124143154638651436660878934031412959037814258166131250852785176316255633454068611145516190635547892866685815710566138782877674015258831698005276536487952898750570698547648089504621435782353690258100771414748789394161974565157398662341386703838181151366987596412020674856339300703832666353872547256949711678937083883687733700673244126576453233441885283913612545354318809681361022863607425202298345096972640254321058369558769477765101124511150391528329670000580864410459893539015419734974923238295927331075790769592078091838056453146384230305580762945957582368666751785038205309588284873133462945210696501099269870576060157147176843779572192990893057165942503583494443740284723924324354608313243372050898940355625135557312303673947686300457310178135522876620005767854678473704113485681522072092193743212706325672960460846504181369283030950826390924527663258074593023039308649217955681308797292289014983873423221680491718219174308302874612291269535316518832560578585691527277370583037152181140165293338313024121622644387672745643114383939021471934295206514345568912562759976266406352941579303648507683206357046302489750730291740522710540936202500796122716158004536092647634395266800421079134131934330147579697369352866213236286175573505530235326611438263679558395265377902259119698240569701649588995066611021401856760279217823307142847458142454246407341101605533824698944255262091583611055376031156383218572272480391435558605567022935336493414193180172922540807211693204105598825122571196613946649050967162066780659918108604234149242068743328835403801500089952530060677517709199517964921491596741011792609840448538518000733044488756136156716508016083438871471256330655747024058247754140339328271151626031106288250600672789243720854547978461768471462770049384898129710747408934062561049631918519047691507150472228717565099097856850757473670864799066313149078641955543889436992756120695693103480330920580235072247345777833704000710103124631021322388640486356396355940939371010872796221623514327139144892447535656943817210770171001034739961389419437915268388762157089708868023835839494748206161432194397809807580966072084143815419326307966305824503355645763348027227087238064098822518580227211581463566292347454984127907623055563503191965209897568928338332897301236101107757124277790450309879481640970649070912461391762299690259270220835675770397728001495749442810098286526057836654712020933549126618090036708875935067741517631013660855908180198782488359726832426554340579550895552826986565562529040326002330713866989136408109592099634806960038003414013358315094337374399210927857230097833273749264454635315100834877822253811004980533269379301329559248565605998564120870941323509520986305752117994579131596772878323231690559271256693803853718928483258266108538311107241334647748705896368150801092789272651709900783935646042651491885027936955992155653094621018621533934077865918092118383901872536078833029110531324652143756817434445869901518169784647785394708009334863968409978183162259927121659455776198915530534499086829791842340109057204949924519585285692861619145240935160990729338403151143916395042492715719520067353449100719234842532642663778785090208072211479006357204673174843649629843265261141424891076956120321432618649735694511736097531884151762246880822922404759503219295354556080515336432550017628592456989618612373264079777422433316678283135449752802080379636854941819229151149219165836537252044940278110594248078125458833831678715049073987576223158396225576754385638922533594638415763453026966482316468497155341284596474177602960511966390724675606981027673058652229881871908487708418846421547835689113994499031310800230602628703463385512510035289372071494513131921278828180002685527185948869570736783013655103256040469488916234802317168778664844816194417081297732303539224003533461836674975003859522466090331537744845999090488826265898363964012623630785705251621570311882795880263537824484800114776006013940471081908740615357391072908759443352480461960871254501418473910097436344862348523534162849137037726719330039646068546169253714011268249259861010473508766034246597467673849044826934959830387005251762992304166555942638361606654252080882573863315497780273485880055947126926804671713405525977192903785434268396389935874469440015908563672084614579835337118970076610564946319304249129602146341984338468517320781362409976258630421536397259147902448624768816475599354365629053004413158475183193751208450386649816407520485076281212024194133848567723890556803591838833582333912779041990043080466888884329205565370186630025371027783294246423045704102661792866524528354317598382087282069010941576373219301036196004367103413876790137395395422592997257641068731847385898685182274986710334300684292138388380895186518357393925436232458636935437993007609050453777347250920116085592679024545237396564191150668609807288015891110166485152804887484296434328192135023461996898502676795276324767353300378441832503509897221112783832294883949110738766795871807788768062628622839492675165734862245018511892763070619460386366159606443007122593471675809568756133715822053098615546037975200468783785916646987008559529878313702245900027402591704841696430506067184065705727067511644845446841956724346842485250112035200682420784928015470913253962983402655665826078394797460405240060079276861118901775147784401848644223806267826382660765070597855940174967089090890860711104703262389030589872864520381152849557020634901479351349435015564951738134383362065978282966962614849053463231081528642202973075668791548674767388094041852394833786649038940545304051019266350664107044865064533512045128114114805336953115792594657788842744660104525019667697998864367012539718422771737295335354815158582372666095917676314747598818221109855305398947690974106225613539941270098491444044617412834485105688689485430806680529271713446617488729826264574118215228107306628992752057623365849749970743423440157769374082755925968977112974839508904364043806280623397349510078093750151600172630356541947081916624275962504406597193403055743008039322305658334005095002176433319240631431957966615885008452550556197588961522222456949200041935292420989469401573699810178495943417430671146981270537804503734132189455539508627022081305438217854621888779854186326719580649670597053591611297594784384037580658529702816188618144174565388380735290674852576920951807499716346773462587965522348570372744586097714270156655551816272149341285903671019433228582532084172587160141448747178209762082564373894650259135122939872190827610766752056198801755225026837811739110358245218218427798708306165910456799463035655046583500091969727837082631499046992764129339415723646454286351577639798840746018524133633334158205548316862124617233660244742699713115462037988002632709458672456729938184016162761591525625449187005889709982454518645844349469016831437493378693965852864885937934497423700108323315586946261762886779955996462790315560876831779397296616929163434733118661396413294507440577261226252732631831524935918297722739696163126475354786097870495794931993610582167776633437501190314594984554443793086869855198726214767804056054141565489614828543703086646405940150181134318991586870397439116748167750301487897141982728625641488368001796371580843111040949310417848766387610077156852714064946577162203423774289798210471517145121421267006281049038791306168267419205345689953622345278230785586128383558852949717325863524288339932183263899195849381882476537904193777252896260147059560601838858144351270471838999154029087119024726044048314441854876956612812022975878384078518921820204333694122071643638022275952702919670548899092033541793089475738547779528853441618221358107124885057428001976836545366094432495784746845530089450170112784006603288053572609440543178065210798454195039940937218376645471999167709059762973257822439358600437047875287426780001494440655713435916554903934917727048829736920149148309099122495428269580638996666139705383330895184176728196487018162061303316855994576554859998026357540377919923171557951137724809024096871269319761381902061494724284331847833203300374911403439454280048373478925386024294708063124925190384300522261720248468926094959648297012506662088062721744703988288001441375438733127068595775110338277319626067630406266672974780925575383334918942678622972561848512429730317638518112291034913189398904234054304245058912686871886659911115350765838956132456101958078450134953567723109671079374280801710123266676695153805190588009690587286542522252403020290489077809790298140533298925956583946060882488111799580841087462531793242208509105905793267895637427615002668987195977766445379820769141256207014508437075665171229010361929501534998154354820763113602744981674993328264460419744554357701200749722316835493306458560255387296444249595862895961579621879655331961633010648809200511093271948990704295176835845197045776953850352554125372442822694203837270987279823405007237665813013944204980104119167897820010452023681217034332452273519397922655807531226201947070829655851951760591718307339166765932681342040489853975693517107283638832163320954080078314508438884634898006023677102116929046826650288817776687017658988647641212693146092322690330780812774301630586506384635435313666311322091600081939703780600562836953884455954823645091832684207986720680293932811685617642597761900332277170866312340471590266523838941007988276753248513513256303207040310349332540639062900143724607470790761045235864402608025516647957117644728147617207621084867043591419537888532369531484573604390047416214568609626684754914691756647725183500602690854399089017051620195624076599066292152997244157423384880519480993762573935884496732364052694078648316626165760213471673126846885230627633402837779218779400159695243709483634669002129746793530551080444502705658358178550077766702795042867429066833756782680286369309195912836541784860226665983842792353130334833502675047104207215390203647029936528510351901396065619588947558067596349093212325078137167149513317022301544882053784683296551891752027481584209314608821348006433814994564024194069006394163038161185222286858930247396865485918422419830986651706665767625649477639723471541829882520654943927225576265408533646054484098825405891003674250407986680501476522023744450230375986394868603083915744349029453375673541465356997703169049138480400792033927415466579990073931919941333999568620481939086038881601264913096454181783737929771188516908175174981805542807872125758821381718639982791111201494077567810558275399696617852550626156633201888844143436861151382905456875518234972436778018633564633113203243217815568112827054898144931839872844316091952659476300331797450182361097934054264553009129531301134702942361547468396699853513615183199325553440937728429195634733799022573435450332912260532886104065042625189016273156178326535069514653244397369742251108983563540272846533166253109449456868119684104733030057687749230484788694234216441426214684921566401796323029563169599858446931184666352096444421832742636029320087176548216782579472185576395666054792523207661970707219720959289737488500312447951334469773530545512369222597397807265225745828321949777122075114972726023331101603226865147642142210049904623012787308509502978391789751082495806386705771497065031525585885693343480972819407540234830527770516232013884217853620878502402564668063523634714685965617970015272600152878828667541255125259586348326385709421603678664890884420594635281053316906919703783097202849998535569128159738487082180362955231636721201051103962644150263454723125297263256832126918742983118977231035665285661556089024362430977599547671604936689181031143463302177618007974828008643042025843794220113051342158732745858148912353777385964637213501543774579133398668390661689704460264546456113271108388510132261259961194928582498967373779654348888051354851735735146054895225193606430229829558644694356765537047445688909358746388674106456614083172414717789783778330469516258676426283236693741505409187540118987750798217127731283552835734968365191225436304183489513746339585838993405115960376781760537223769939113276758079948842220228556295400539559876211746855751038426531648642776207396080219272714053218845509502904615240211232457044831598301546481157003353994080483686786238751791446008331104214690124672082300031433442695775749961512227198588929632358865299147471792505513065983837950960010894308205808148234555213904814299319299926401677913847694679401083659680047539033582259760989182923462677799037099778956250749028959165828671186056134503890036012195227611254616415260726267163718939283821503599067779964367580081498878627630250835627683732385323929580359742298616274080348233360093599554963781078634987145047383845965905947885489538307092668682733260918691671270903566609698497158950937726983299090582899244219070616639266192978221572610162823090658609688691160412502105110666815942072784678104376138560260826181689513911831545549902007202720906299386527054885422934901748140328915897349933593893205938804288415660305667568432905600092400497757860669453068902462227207556541318179807741518319398551889114044672268603599615692530528834816094608894470044155524898808775410665558364870093389652496159888008319855279405026060583091278506649457296078533897150169857498114392147796103997949572017552614539168285923573400837761692809188253553993097015559274243510978460295560086185734571856013294535971886156015668069736184679764200252090834856283013923143057489064180120194197888547275298008544432825323829619987963734317218394516426979113006869317228243509297127955526759474563443733574045485327494269454697458151289464010381494760055062303036743744221591424323645299334581341727595053648480612707336609047201351835737634418916804701900991709692921743779735916899962786368267877676594256079440042529375697860519058382858204771326324270907915507869846870225691538990400317223875005505067802964508970278333798552762855759648267191440207391556971025165163821716138741067127956464199072142653499579155570200908531618472656505347178367235042724076625755280278780085594528393398777743829393913840675910260589271653262118888508617199318625061182966208820671227957085725787868396820764598563104233375898099198127455287618772483431469101331021479598824951026679487456244285035041227497621771001680186214595513269291820511688092156908720880701780041364655116611857753811134492275267970640685743593246320666373305797871911047273930740637814938526550786834088635258805991195842949147296520522432698041163300899002473121892975100229721884634570347030657195984249444340415075633304147296144731998276462804300217277261320995696213800056332150487637881684467337523611707865981112401883860537336485824380751735189552674358252128153819575221351407371845229164322313812652346584528370168434493195337281157485039118855741632083049568072613455082844563190049461813487979838245593887115357312202623325210468162905657419604185140225676409329774529635927282371418811254179619849886575424014613915774783835181416095535051399824738066223805290343714219956780653472322053968102304613066059574866195995575580046241127862210118493347106292748448344412083307915298010461024133494615501400301049821800351752467136684835852603497381440180927666254871774759635145928975837136951744511439445480069067792539987860360980810014047727335764753931194845894170725510915992290487443580488065073122287966257341348147644640298847022880368344136339800337468832036057532156766623737266836371158239935993739951727881489260139086980543775261255219297054237747508125648984536422302384788422020730069797262073451270170492808629628507442892963448733342663987760162878610152472147361260046529758690629219583518271574924844040108924785408524023201483385100392236049001329710062488919294303474232773599685295588490933777636983297102228712591668206082025331666670489622745669888224898403148964913673115504144138246479549140773396557905163186680184926898009578420885206207254110434970653891437745335870333246372039095795497492365708881494775915201168625482916403185054493093475359578428135794128401766117598337922518325854403253509933460000491180603080586974581094587451455435867302070692630472375119825278315391617060489731187205081210777500080810927451426735151186267892030400252899564944834225457119556397720897373794288767612703531254220269405889650639516829108034424291520354835883250791850315428606335236617044235941969365145997083927604738001961036206273565065100606545984769488267940418371313556688337188663110466725768083065641690440486773496968378447365829778343665948509407043087784143990308295200221038685718773854431283793058483621768959971108009223612408625257917388120368334525553717015057796940024855692062570416221211366889039705427122764856185417678408392464241860017113243983303964619638761935921765181438106646056892960735064965362214365493371118098714150979633970896438842789486249990406252479482205324380175366845601826466274856313895005010901371032145334161590090534309517100636281503702579500134172823529528826855823031818486432446090121930589859025413356859923271270674249592926335790468031691561005347475304531361178136118663460234713225632995001373469808564716646248789866582761126817821146067310499357750085434643451622675343830272328837816620630613411365762391171620846533378868355998118626520347151984491310073605429015191629947362728202877648903881656337339501818121436582277762467528481372428917360832516172490799129016868954926360030402982396549155969516094012468362390582123451398905817900908140551797808646468841398530871632961283698536316638531415991926371340533133768866158171348733018489888001841225045745924124548312711075484730243480604183982980826116009889462522014615875955036419043371006231219335840072377332053773886536189881155930917627154706771394977305599402656236547824194601663104861174271404269874936939721565526890192526511370350073033042776789091531681247184928904792740311646524777713197869897111549665851130014482234427367031801306044050906038104635821801739164231237510517624508256888744608352030514581578771638322221247988214404222673436275638299393368418260055501395780138211614893366549784075573410085365095457256724091234182323422092372304955393139314443331205069810287540018727810483235897396429615613481914939347620007824230543255753308046298225757230460761883600334656347830597788400344778839429587014882413701586976003032208617491771377026606077221758590830632569631163314941608346673032901587162646258242257397429005924108454185836388860074787800084042449999395562934479716694828724837888361584558260541441371236300498294029743652365478321605970605754583792779218931565244314994349956951349076801333234395791528264760991376018522369150208342007365314505362060227792463412948174558405014914010203244038272835259509936544364368355138630328136933810737882762285910375717182056697049626161509072493906072941094049032752495034650533422028798853169668294395347893884887046313013993542829544735798653066377723059697366897362198484936405107115780413857654280653392180164571410387126932137568357496065437599056469323126163312832841952051825945134446239790540366576915299205782783221633625378274283989250471142357244454562556850151858867410092528548399396605213882715321236729266859599513461918508702571588836599742735747633749742761194636943326192200628264417567647667143412727700384429394255918332418744596738897708312058527270074856800919784757416035201488583850161918776689580168123827414532303094161597087793636048346930528238827532532349789501685668350258970041598551533062963370796444152142407255095646762718143816167329102038975638746901303967026255395212916914099981646757098173725838716898623506454961086740258664264234357266902747039523208376243410249497519117091209938018320245911188919885750441756264782144921397916332105108625127071937638432614919538904960291192729795748245681639375554270620073414405971734545467188700639922550699540733667502188088255127644357714172630263171640791899866252355296421940192250140641854580697270016064694555595331566922391195427284406504663805337698446883396933835215321475724070039516161532393032790959256392980357612107925298816916687460584882070807805900824382035622502362571532055003970550863496822131481939694433856115674905544735387419205617077504471037167225168089731574571951902771223636995467896458089356321261878695300186277241058022225689556288910755969698193669757343096619475014812214037329258885234937282629648273791802624098699222885221137292217043648980606528443460736962512083221871367688866938234815500668921095536833458592816957594101022230095874232802459090857544702313696063862104189940917734188311719987281443389840381406313351851028391130957691889081782295358005301818595447996752270634879779976189267606361365929379400817518398718483846221974925261249204322842445623924473818555404735152730217692189788565360205392002240796149263164998051754521440982810931677524506280638501705992812273015237764186911574619293790422233190792698818359556663446689798630039115268672320394735581907912793764608908370614965182801399086752211863778050217858307231991169631748411790011530698166681802320891179640058500980674253468815804980780174882116495638647147577649294569795089111366385767374325161848752115826977164523163215874613278954642174272590317962258829512682180434039657429694684289905402389641043131240757417774615321728971240204300143177974727749769882380723002079467191292835218778608697187377200620094777456979900798833888281311875845510491927281728189187489143772363065532819962493069297514633789269498914778554237799111766690398248789841706275192304419482330344950157874238434607520009608665953204339881078745277052299698500438885482437138529905266524634434877198295830335910189978281301962920680120877788967070940944579687036175935838164335198731288945836538075081574643107913548290910908798669147236896627929554792456955783867601959881678658974957107062110203991193880544932198246688386103021546688751247173588433976159187385909131134019595317447878051156908705109968255966953275846820037799958912845171573114406504140498476533929162875426996727399751859493191464729807435830715387753031280693760033030578017500989167545336336824901692813029156424549669756085179143266045716406048001618792641215070017625654264121012653554626764969888451139059453949220439224985937386843102372613641611101747301363633640103355344917818696887723842664867497043303212661298288022592960901833730818723006205125289824427685640175502528461579956730947792744414695659821859105298951776279918573561966807430207064215301212208887895427178790678777997776033292262439130295351284245732587722110557754858093887689188433893659746479855744909370629093283127610085999588658367854948302122655739085020349090260871075938059649734011735239145000012838376424388011960391046375526385407135243718404679527732994258761704019208337631049102231390245406459623480649312710735722216014527541104579231159277120760014537843270168361515330518430979015190880244656682938864676632243709739968827200450059410005338215137940902741808494349541131581094825004377438293233270079405805626500230239300932860159798444714756183578797201429350030498689241041062879806713781728680435253335636046883646459920505479230530627544662488835636590644168584018209907332843387270361889655796473634317476119073503712330702419454416245627877597804522090076554872011997695812599071247397953625240758415383863171642434861598605508878219210754709784075966914167802087099041671302661087220607462552915858864417053223206237385407389816591661268634274786831748888190583473005745747647330520261970212754457952536683272094268822498067727157552926666169688775437288989559844054139552713845130801419922231899416339130285888555053533399456970746381804567844040502298057010444499612919362558707216960879916350551053358629404250077545920045592630679347190563882289583663639072114173778471849033863272553763056763043496737701243307412435697164585868025013402989872984013718445398459592177927634229805065758774095880074668396171555361627735149561168593551594419490168996102598094736215454945993015808532678683567040193728885412064609332605167356934152419822337890904362611952331890781547395098853371434973606645498689193339660274588468198434663208133752032017490207098322005661078254112414388439747920207769269489824399051882056756308124878046224016557236700657656972515502308554741132300969719875092962250143157385581825984517045666351521976004531926225582020022924335668161584366466915456724834571606278021685077164596922701693351080744724485442541528839081735135533812342586156096494979674934637480059423473433648635300780846953081936465706633379249388386000888434624960391925047795389564399979717982678481381451737083119794400668288570629723158786047453304158866887850866896435840823583099625231883765847010556846300818246234856869627506191882089826964477438112551073808820883448528708944222594712966913830018010525992907866870544128261266221486537233796219838801240494173063470371847411866909461422134691296481700351724043254535771398175496963277864982409342315786376205163917577892440871113143743274165601099433359083033519328009053045270185360343097797197681303000628197087984130055783364589893421681741607770480017796870951819953882284309341700464061572203820083428876990640285261784922174117041496908788514587900671743084303341672066919005074071005139585670135782235713721265001530620210522125111754930847802537599679202657138612314076127392411416501212118613779516949533867728684167378272973166822257209440821781541937377053563625871912447259578854982741430656460016917757676127457436643348353564906837847155606031712588439109828095970800808753338339008310573978315099668211406350809120014168743243870832086001802671408158655853891124041423910390144846878354488437158760633693800088446546788818862736558442573580097924555825643736262755034978531762661431373857137904957492196109273137892540448321115681078604031081574359486330051838477624806275426896157732830779873055855352221146806179853830973585499655787510137307873589498090079788222218940522850739741664158232889010131356616840267027980410770988798267566263573429760836402665941513016391074709732893373572400905778442362314585878538219676835908750864373870323285916930477294587497579712672520506581938071833861438547274516236012565740041456364752462309544662341155929541224708437179533207886945613023323857860741422177756963734470891403724773485511811388113562532996669146194913817202430384357585282514254714153921735836110978658979750751347997917746631337824364768884403373242709673278302405589041618379625889679139200349768798749681487430883923822633278947962618117571621417823571643377102577957325647900533229238903306882757229470281584859624210269544617881768643905158010726033527300565230038566145186121007603492899449670803167584659805991814482099080599276436621592812838399018688049856868323047086184696320576553555915976297373667871503798922913546045053445389679002382777311341824518088947496258053465110322318439518877670319968707736247669119023494702850379364595162924989002495130752562459609547854490438310132286880752240553360778977056775685463628476334583399188624478560011762219188031705553163413701495012398246661667191166757462489022989914821572316408943430149402054011371426980236369326048493124746388700291022441173769006353947005970856211829039342179734128994639229648072304506770570697049214049256513003781993327095379285512115105951493741190647596707647299287338933502453489742298596511957371309321488893014494211085054196527936594064010659804544664983196580902227891080037695120433253511765034156036000368750002607239022211180648602238700794752342915746107797883232349312284973172645038269266809381573452589518425089657773080997420767884942278625342107755329410506869871429648796126042806151694855423963541949296170116134134108873342496367175950987708629748320823558263458167362395124342293005712374428756046502090621390955899814522409124876815103304078745104179442905027363359150258169246533958629111095499461038691967764782674315830610056220120017207942069515382300773000628583620304708541556588664746981691408183768158616558715728517667653639999905994488179988750336564695523469909233321947464267614495626101615205828532946457801639928687481836024015899005047486293463970916757261306711167311561355571416786044620090464308962395214406664698443578327082393159025857090096232811060572543532994102733105919286642856363223330696347191861631705698108067260751960453459885623038679845800277565409628291759315385620293757665823784389462123146554440231458165566473531508858954163207287121052266875546348555848384526041172831812082717531239963791626979131782653553443169173939241940044419637799897076395802199537577632278299716939829872121638300064461802524375840365251610253621426792032785362307229150235880270589121974263534289202071897515654848363790057083206387728887794216475529348825337477629890565085726725056259771273149989088979206167745218394964727855400487712665816253950903202715339980291624673446664943557126386675049587363880000890398291330828315737339528142713374612566713303975724497849373377909385699618189068463883631533819986309461303305836269986956113860650205969491757884146797923100819486767964713440369872650385644747649574043144306471960969363734609716663298232360426507844154048631956238006359459849389704152178004522944881326135634157554514636462182944830024134541609138474239143493176168377725816086129789204015967150476705244626271262036236149229640496251184170569393164929054137835719418956313890009243346006279545728122989504299456334935596934000910691555138480561876171603217790786120146607819097164548517312216013820522958414710115706654787477402592140674327596065244612816381129239439656400391902251819117034858383239560578787367485155456231885538240342046445520554009868491531271734949381599714160482754656680789609282318649639591061695760132793014867154872995595330013034319447134092361897277462233819283401921863504759282373328489146823953586022966240936179539261461388091129061743502722770298716214165486577348534476318887208684976415043396331523318320750941664934195507876682852751847793881651755595886861054451680350227563345292225013651192667241802910139119032368100593760913416039556576181341514304252076069875056354515074440623810921362106234084142973135087181414937085475696443119259627466841439643559267492369567308144103342813862452585332247392704301037262502705229841109318757414829909607048455927566673035823748059246978481550398451814855821264132816615293505314069988010002448498320644136078259256928464860428750300377003925329163538039496983096358003356242616499869145463732405098727821696212252248454823675049218701623910989961820537096070077285586996513527339296329339541726183828868824947415987820317621229816568305064272935415362389992168951624520388096523475909650576194234878940563023231813665470695501852311391492999259051957548940142893958787743561618394465855550252488846724926537503715884389255617559830548702180381653035923197944115118709645650575006669716236268171090648558337035454388602616586746427885052332805095466536897849895029182934145722699783120434214266153288505721787369599407705525136988145857050861925449267931057069689457318899694880336422621446116381040468496859183356980044507395325963569642134212277979080215599030685594694689622149573006250174666931614712920935311021076402263087062075815265250655221355313835456678579959240763562044536713981100216683019159013558448076172063124106198116815194837460557497857594555880667400348414939985405508897579786632366164272257756850261758850186618693999710604816337593902375893075978451239169091603936659532082378636981710068638747797080832595092529548356583499415698261540998893181648240123397440880883875055830313400173005591602435658778498258194925875340141636578440382150126542373038148789336315393210500633666684679171229636022944924413129014620658456329209570437014947230982567860233007631620259392378299150088245220659879790200080902537686148859081333684024275923535718614648992010252380512503520462086905759408747353914787486429969055867767108288622778536321777336200347490832074241408659729012888289447848643490551376139468823268564465067113012352706904713266441566586774558150597503616067074465464274170154987147152558910033122798680361213564557491727851989885699726972016655828135984874379561215238284812921018940973086094659571484699515047319015423176699450610584811470447812883882760634245370468813614058222189944616654348663289073345841096004805958517703958439152574965521449845329319918774064979451086901062531217777458803836951843507336589587693585466780397813227628901365221892487144010152768767164508155450323930042587198697306526696217941291684608520250313566382332251229098005781911148211458915335935907838410456984848808126272524296610387752043363560681202537095305264917982769842460642459230799134698005707227047527088453487294951073961368405553501360012156288844904390285339798176889273550814820823050710617052848274826409640582078924657061203805025197852908501813518347315290710034242764448662631217589160007683997791716041947111006040713635345883472099637238384769552786507516101037626657554962583994095120419690616205279464837309621899230398314363777171521719171101554196903679155980525944091791135707997972417579890760558364113570430552292083529836698833740193421909709548866625511836257753733443898280160588940027764282742043218082235082698603153185471877771183175158784060181063782970858424116051323339740131906383424296066422854444847384512929109828077349940981866721548266613145399559046196134130601860159404868454149028504449922181799344218998299486314503341078399708554234601189979119443609150974445487784912540350498533238171817216964422182114064666713641929838046711382511546141018319271537587280242151055509850717559703358416663906361075568378690419884804645417682955035572875384989959880492344021458699697552673834901216244917229127227807811250351682797944212357881990704316679488487953417783944550428367082490316285208202718346947291439721206707003107220269390557719110579646923905653104005503532148256841472644122253425165214174595649039750145154802926025571805573919430781007362160435994943953414346236896214854274890907064078155344625553671323984208790766490836362597672332243176628971518773876332160355185214067817808725453013084835476709488252642613610128669954279432120980372663282811329690078469934133021214499608793502600929653737302586536909331927297847843322878773781675276087672398410106652012593032656530870415377637019695881654537511205282740745491338244897571346594374197647873816262485287136543161808076249878960367137598828381811015347895708980366607390312126174988488825955964290112412582710071876889505200283801890104265515200405808696929879615179577118336275266753010312638234726367009785422841851384989845417406724363409571765186494488222763817283419145706892503622101110036866864551557259907315128618018998054424293198142621182383673617989684595405124850665368532733108194637531388801249785076990014557484183923895694516702780835784813964601812630021712485299514956088828647629853746345252494750664818034267878860497522396855662760721772092896333976449881558435666339267165889735583588063232592988579657537523326715051865888959372081964041805590002678650231195779663180362145631044486183978633804488575494863533503829709067317317802016769706250021679299683054850988445839218452184849345080454933029915286003788360808089722023038528855590026900474516533604442860219277311190109437958195527481745072603006865536122827512747181340166912419639097663888084894144245517902761333883752067506702844277284654032464194570129674325452992391654943396704433406215282170243997120565975889791929619000716306472001618353413559626655356437914493411718363223192881325341162991996572554893693165838903813095792008372621217748084471650402734771626571692550733136490316167818406531666532343986989117875654249148270929652475988837850580662352365854071869331679742869986524777409550491438738066472803070815894172399596170043461447605019727027561603971215802613482700822754613047419883642269543441861188535210127427380551827328074097954188573628782042341722157709640030841757648978487214035420829619363255365973512781278434468124355857209007372697095156289356319467637179200124943187969365575951870566025745063425901216993850135920959086441065815476588965314787945481075382723860356639344030574314522442505713525705549480352258609814337383840940070924745692108752657105344534175390317464950554831046726418213036559315182901818726396186258151081965259408026115064849679106478885742116116147203939028046853479184340032343680283934910368458331780191495505399888599256933901791400247219502797651529244582527244295336504202626310409913700209586066842887268415450715673573387546200025657797841323562017301823703788373330999656907484254484416844183258581382206643563864775575919385902531382511979072812079495882152438943306709879248908429090353615948490383356298225346762049488126400794501698775105634222951931468590131892258204603529527237533966951638719508544225662412609567286354474252441103387800083675313670815131984265721856845735175498094136058595766408225985481018117743884156652078755539890882756947231461259528830190776129020081795873915638292252412936509944752410570152975009421706906229914565562563434345222624087057307928168756888428411117584154768453289556831940553080652472825890374247725610935168677488273222056034690283943425680546978014820993436677555636277386579408579240749477546734431529873858409434572975772989167999791527371116943057181312967538232095678059164684593881495438174133754072944244463265965550232234000298906228866307910947782316283496884681360130456716260354296201535516670951514663514993360708026411888772294996402092177220460955751853043483136864940359981679649764050399051303380638020697730430254908126797122179927436943564583417379881185213756333113023343272119711225889118461670085879615867540200859080790341874927956918454144221560410577528022396791454055538985844605734374946996083786801619488757706409863111041213298271061876977799052620225903451572590436310246428557855712528693274962783642100622208734182435488302621877240754879750019461477875653941587221416238272731858188288945602489999787427324284039665640503441746442185401458900808120367775634068256331572954192329244143222123718651147185565091863297406286904211208854309081955758288196618415416404103780829357416665562896808062847641443433815933780902242848237952956134335056119507384633277045503610878390251345795579193045797498021898198307604215923005941105277492051670367733697202923768235507816054146913672748333327886608455057871128904749883509718483960880525142642884838389059417753004420364488924238776913039857434392995340723955161871855743911997416601692870479713449973127384461036594902840050190196779577023140136307903706555708245772559636113546737150316502910017738506521694488206705418789873044869277539857848112448523309413285357879874838018032502227456128628337734120893802589527607945760267997868994144184467412613695152519835485354125962288378968899829319945031904131430201800784236851245173903182823259772708746715219940764501356585916575952201988056967371516449242307742659463675448070013077660396558116408425145556553278801341822261663914211682649566802171852522391784208595354170302286438740358709056171434302094361767480020439147971420839464146894355666936170972087118476594047884879496681116435698389735345625556995028516130436044295771343643009693677637536640724918317209945206679561117666562252412011115484521003275911769757869927648010831016465215122283300259006188062228372104854620832393940172327359646032086137325091682237073935084318700758507988974269016184219419252161268632682727417896655953966725931967535051455253929713790969512180998519318281490095672050770074469188069564537734963140672460211280731648388735577548866820871202815462276285892804252197358022550034582284079062813370412254946186991390893768707518336911839481914761047664958450907944136116148164621782186600468141917607968075857305353297464837953577082124421243819529506755988897202418597494225765602862025863194237015909463706156942361793432541764348600170376945373876161277777822138706871360425229234897710572513323485774428754974996579677699433732927083549358667246812208661251746147381352000295979428366390269608695410113826149749276910323892026373913447225469535573738960652043317173720199808527739707625377464772077859911779281001111186900731291844418898985056056204917886335989912399577817699501950263341150496325791534588181151801279175192908914502438137977793845434704455458875052758130738139709310225662275515712706187780924238048962757687812696500845988416557303148419919025477051067717008074895163085032646292559320591038446410145119678208045452793636863146398622736823278022475420222067856280188203934253455729885236554250716994311559137751758823508206899733366495676665618586864729463608161172191549606815963257081663023113850632327608742297374202010834847255171809338564281310210014151676223699374630676635753689742604297315495277945740303813592246046092190885543150365426375638011209697630406125070611527949002583225053795027878632528525002478183168414980617696233496234471450729348889736294389731566548111005626287215283939823999052777293391730031699047850213543219153364534273979889156852573866540586679570410376362029962952202677295247179753986072851324151738139200775481830729121063648011903983220484158131001793117124156475210685197831531090528286053742100971489854399073693420622092752919532445959242560209134591269904509521523849326499280878796399293870090223299563919829364786082804640108126147114340614110029170920534980032923595236570067822965802041000573917152681566919649683443302268982967981064468358522531471820709585267444794555776306939765053600814845985714986898975937640024789562896088428679623908879364159474524662988493431829942780232956805054322842802580837625275593782744204696847364010413996022104862977099662715291546401143514766808979867084424626152209466050647906245707919909086354562566897836821885469184851164642826444841240278919039096794509893537631585157656965928435809968175635476979298156225718698313334764124134028315836413349121451941990986763162269634718756343141681332571747115972560947120845562994532209409089528629588739920813613133818978056327999950815743477703719292404789467565529105656692894828093416294174490511019938073304785843893305855317700185339334515604891867277013244692630023642961810431815200495606794139690306581972452433051543259425774633245785700608701393460237432302990161756799846396416153921660160172743607431882505401549360325079537908408318333228085572089198717154478978319500267860380543960217277904824724364170675707803015079291665182581453243066030409807812566348732977094156696656870716793062861639876603327050133675642444650625508503057115638472627831638185427287333943352705487983830372087024299359600905560170257821273788000531859268793530564085215979393803703557395432857324609520529351682894631483453328403630532068613789013226774768487372998199236714122405119524441535462389684197216687504841642128559550186872023580568793736500375731766321482263719629930043460257765515111980791693565588490479978949414011742267431663945377477044884385720437310473517252664315225067193077453021161596631894787243489271887811373250442719597198508209312686826176331459111733537679990235222024445047172773015539636851065247085580873240154674565494390870623733429294636608183084368229839083284557386208708048518563228098480225399774186004148959930048204551272205749608597285942789229700501942856515691025598591001820781766217271423329792728468992162827869053965156959538532654423714314888782452939976802006692027099984558914355971616545968904791740467721368635665582758645758290638933639428603066930738765137628618877313729185646338632537351553132804312227557415346987378197823187223145013172250904800539815840145864846343806172541757852694813965909968965900661623816948538429940475170521699823873007164084909156937710243977361662063106937172236057139807249268127069963663961210481141251391411120309061069668999321161238617254397270252385462386845909618600140689452201714264924459722115976825127977615256569704214943860064093918552105957203008000475401582113081557329696101450078352650995505402946608002096556148786862672262559180117437374397486355205830283005827176021224955379682673162665754194800835583356772134001406345380694503475829331068134960274885267396010522173949486393557784562699462172419261218799764652424091064884999497814789176255341761373466569493659854427185807035372496072298836146616258634418618449174240591203743949911813348375080220870455198148746776674139879611955316524821087549982744427704314618248746929033599729528644152823951729484722208338957314556561660477610978122721222343322953204495041320869966930053015999500654268856825506911612917507565778115010970495739308404503419604520777526241378560735835323409069893391303601498696978455717879260431404173326520450588879982042660184919557247485970314686563804391982827014881591796123218745435544162425901530670052839807828837543495413953940361411056518190560348536675550658775044743422683672428025340659550466806718127370605358855511854113126226290490188887195088510722956070189143339056510171829532005286848343415588113257483386229946362038277969802688986471318411642871937630565514282610694232355121275232273388940750296877008964243846051071775854245163408290748487916012378139579670535882862749359888550080129553179116242401386211492539801268412388702205850323334190386601733113353495740197073765591267547330361592473544550984727976993979961142103744277816745952530231048921399227699028532795806076477629481633641533773538416475777805242483793690240912617925041109324150046114332046487757106040081286981171797875374313447573304801857105258487790987029121874472511322182131067066536035913939385363861412620291901852254845847530943569726035707087237096062529486892061294217128623554799642360162726936473911332396522513895440025295976012936157184128579640323082140198688242801459998592990823219012486355868381094122330319977354722230084310509580867140550302050984136111395293246321550583676459699488475626841671970355904615719218819618650360288545586221570062033057247530657388179919006092840374337871126264607561806223972853490116466033343541678565258005773642285827017976346773397140410976011887487758970474722189020631189318752382802355054513006046606490719297330018826060302163745303131314454744742318056713168840408065032835828786374542399936836605310471977288047068312153199465389787725775372342808690042812808773217981490252188456265211610244366549605264993416773225494053856175937330060727870918298560933081273594636530910744070317135063708875193897064092518623276651505880195581197960202407269849864161500136781459922036440003738091317837499279268636512929335468081861423123688353997643992789465430164768121465932136005295589395385760730882205206399059465124025815211648790002563813185933539062977078330642435965621499265744977420218725436322097406128523742692634576849264728380697108083955006348210503667737424154630159627464924761666875738903175549418854689060109746512042517847059718183022604874722074157130610622974955724114919588603700142900285142767086373835043498556826849226452324569938550344524364768689364833926830552857057638090870984586762615665764270817122238732432762534474969146438107324669999169652252080808075516918759367578090102019112901666329987668070617997361548327204175652334936735291525494894817378332751809109908545358193982599891470294500964519547458982909542333849367505541880845197989851751170753077249817765740517717545732473309736288311427443523065008046348740102131278007661845678520458730373451532950990864976737863638866169382967287370798823948987183880823203754475513683117585543633164442473183174086841653378011657661157678529525054601883920404171376838661477950265570602888868353455856808528635605688330424419112626057644701884240164256179402550780973707827273657251279567691149493594412283080504303811390369148787120198103747741195629795692253867831384132575616794496076473167146884622602309263814839920678805707167954155477949116888105543918107843450794671257350397203432944885516371112242223669267450244556792762946170212058649501695594546189654876011308423476551267959045321972695318294299255783840045706088655520581326374380194255609078906769813840758031248388330524325686394145044638967075259115091715154069168020636306434788066637270561307601299578708636412804659783162409919050711895888027786944598290548680574840065053555962545318006224971365474475954923928725501426875541092726983540707284869752493312039560136799048494445437512261637493656694403991495086333352901700944205308981096555453003540357993531843458482142322942784876351622384924229788735418041429439961609587793951502268365810982788694600610571691020636020870186644562739297661432239909954591326194503136045353922258062718714337279046297025675441577253562312211720085536280738697032940176254359448653393648199795110151471449307923851825360952654431416260864099051679826510635459506523254842051647192337815561654927300642384115586288213144135327026167277087842629564363340354638032519388947917028138485038252580987126364065635505153180776481514001586214661818336803876000925575161390359335105325241691149787363583217270284823227799940685144228604586724357171217405411972516717419418248433073260185920139471076300605835840253152825389508362966193664217442155908756900898777774852080757581733445128002775271333909907266266482479780989861314027066914310546995595904754588818053047542911078603004104054745132877209635034323345976308890299656984489407437487480087939670110204240759851204834053640218599438023718360698215582776064517315324867168143267938843510757989818895335586235672832025525371658612982301520147982303143916346182413000571753809468289432454562544413753698446312046881413510175408593975782814101682540459138270880269021793125420914682545830944618859956965667437529730459630856466066592367998248026299507733565999372685910153508965826577071527855987218416514492983266107914753306270374913495581526056263487516795249590969420294054549933340033158946468595481987435479516715790899913212432310440311366319522023785304802118298911399167401414390988113768935980553786102991853055619881103175573787231452336204763904585918148394442441915175270164332436916503707522994286153919454145029700782799413510486470728356591901157518538441385483042729345930404434231667050840102509889497983367668928463158982376087937142041794705620928168449078280953820396136555585798744164747210949692810783675602756040009721810273337070725623714288138891196383205103118536007504157892413134352888577690325272806068155802335147721212973009061872470806807262426671896004473662201373776646188810419565121496650746243935674135132694083887062810733372294264783082866733618174243038226280310490999316522466153766340411883861397820544729156337626299947526459732282661625853218233268033672846523245032457301530251245952462775675291213231321312914285933552188580908322761393857067278543719122529444253560686552021460767822914975153260024567861978273013211402164444963780509915684079059750272481221656895962681910481657313012985371241382081696159546108443812726753787877517806450162112002295724219551433732665800242963748140566577268958636379836605695122301139205303993205814453958532833665668069297589677121947822119816023393024527073581685464145115356313833434586182751072136368470705003667882688899716183812403220028414035410730335046405863188708947296388900767971598287805030229642458399729101014784543973779932855668544317725346078368040632205108151517723543330332356042999050074022345340238636300480469036829513565789259351711707993273522912973646318078670308175943633456315355154454205182657846409629282600693331939520438647115404131083664429840436262185304930527303945425085045040923406636274533197819936005497496781773286559953973182509692344985575132588581026428363132592089227549531438921939733664325818444488726023139244838167635478266407165476052573148784745193773896965879132107298454814712704419213986687444325688874620247540115428552434725820717994042567475314218159057838273586158727541332167070346033432758931081605378662265034732576526599536912575475972133438975357928889692199168261657490738842228394575792343633026126677984515534484235406918668208144257715049742946836251155550879318792862353957393002315865486250150618649473196784574648125871413118156135607145173660329817361309367100610257672431737732964808730578406329954596522262349064420567266941741671909712160618537912331563311272006096901840890380782916438111704434139762694663142233609598016422147617009369433803600496835521606127345023932452944601061301279788055274031941328893738349513296491783208295522396955986072467283325318662538732775191824543591363625385923089157999581329801536268863031208904342924546680170598870734965564059133265401211804131578902174459266644921592623321093988967067684674698688557042683251380298525124858467797357948739660565756607575594894397916655023954011637060486374932812646333608876583737606558979318016195688594259544643445476438592847865729197715138300302090288109356118687505564807148076670376201787234657922921285940526502003934697815614873886851591640915142959636462917117048652633966541205185873033461237658257765266263848780881497971403259992817467027109660719338299011182255624763599959785691612214302410692768352673212468630529163035353122958646078854885098950346473569734014519327075324849129622359894875537467684298083579703395777082658393610672110586111146335522823594426134401872295165393764661631211115608557550081725540804966962512132452268888742830921681510903769552949865340383827470038954342039287491583010915490039283961069045504959245689266706475047300188722804341669433765369584218772953181046727293793991495678020980294788590798341454893089755483651002840690599193624938692121032511988456908378288753851758096472196276222840586111714087097925314722081000014217545707058951887354768277450613758766592101747932529632492244759852847417140882792414032855401534204623294637354260327958977234379827887937417838865499956667794857593208954305816644216335983236269876150342636393436764093076422458390593670638536791138655715355372171654581166957388957694184253593632621672230021049815195723562315933059084568559307508615898135116347187920148408155844943539667959088248725938437512233932512897521179001152667564074588743858726025850191188274142644216436115419582979306750994975192147882025200109542871423781169788403919243813649788476149450399657813873165091212258106826889917951981810824570268510471431653284857903985111798473864725801618354197812880984004769576932927575198881410992133130536302495808799647016991537771777763163147618344094025938953864250920909467170774456050057364562076997417077936188076086538845123644406722668630630124469093922430583597771797579914060175307532740398149716352271827998026400220387657251446393920255540406568741616738974070362873970986694308046461575008466828869344642093194676026592301546564955168317596597194527831929215222487385050764181856301087593810954568445207191685639356723018771115522593479067042072642303078622856376785103563180831082169065540622046255546702971467426712606723449054405529427286585634891113765050275495289330363443284268173398714915057893381023958109659067467177978551056778003620985245389378399941601715009391841958994274244755390463553857275459172296290781940656271959768165974030587304670110165614547101851297075225114458360835669404394651180441082406390167196304001259904081097810603157715252846779934297011460578619987842347125227208305223632958930775246632905495878681941900156460968225030140068625217082645911133345972098266010881655367711304498941429376167222109899074459120742152089356902295182573312454368115474010398293507494068133654251859610551546460222036462926157698977230914284725011926980264156586881510107961263511251549129367795264337022088543736875383360157689896341955881191121190820687564416526988417654623661548008714676607153003567486250827897369931095563996708069863977027510212859869345090841548345672442923302972306243528357719704650100969925078216399844223101981000134624581393859372290170094105339299549898518189633659914038673949557813095069173900897657380062750336330133801250237695934803550398620178501311760084662523989575706156573197739525796231273363962085861509145511719878110425113702947198612930867262821250619382018773270992309441436512237931721604280483719073727060066927116165338668723593962586857570393402451502790113279527150422446671055387372921309212962027128735809479778564544351914942591078183042321693758118980959324321104146915503402774338148961721056658329395942534145724214922230183903461935534561337360311651717247421504775940954861576528678743660459330899660376216131905647060593193921269106412655922590005491256490446259350085443732095385157319572185300540132214417193808672007384620210027939324959776196071526592051516936497303125952633199429727726647950222154087044247520928631987332482538753206658152529357034265528748604723492691795400774091244762559966172229798112145096922848069695065795768344200065578945145128243824026411889646133699703410620621019984848141648666075359000283229502796121799534230488236902502614194100562380003487243319460121096389202071745062494490439095028280945575084231654904595459351674677035454104810263016012693678623574230662216472928492083987923139265099369704782485731679667780062849342454116568708634303000195505771490861029149070410851000024083568839086689816093299254154974880052764645414599492037526158679977702222805200684114073969771234270764636579780335470244708515888746248681854211740697990657798665818947021427982006566017873230342891886907443968785568084068228417068980404075799446182961465349355273811525091687718301433849417155659443875806847366234715900261741103590048931352752283280310492270290397102272274000554535995348015002140554774589085098445191994064738514049451527724853319846585746764388849483339276281640929017031264083561325846949076848504095918137864747429364833591953954516039258997486982183486942258590485846616004997573884734094821224094429100744817509723530135228185934460937484253894519069724089303747605417856516123281408148776067295017778633227053154983987814047423532388102828339027716693272005225453132722605046547183797928400226088059091020002237241201222920223758003835467877596504136977116414569151481360125653393660171662306968466062323520066006644335645335306234462043099655949558584150528489374398349057976348493733222460925910247386943532445843575022049156050058408876988342702939295446703571645198116774624741796059304753427415727693887725874985242250859242453717052437106354907522846701319304807862099098538580695964697997846166081727779133396063162921464657696196715022061561412565881952794741193091369113320435456615612099386082148054323162399277945674210388673272561165821172753428149536930975612401895521079237167331032961123431062560915836531390416149306423228083696169682607805148907813518004114379916864734491751045092804574860678350087139978669534951878714356869016562179948584231778464583694590077925800982641297660338018037182099392700020536167951026650627346499038654912078265136939152653057235447817395064963214964014160391438922122203548660111364970688637176844331270453208540660011050669577657659163789487269319095221877352978745432877393353561579150435677247128680852842143563382397773667784435517807471912020732743137547435940363310556306884876581385527016156801108043103098866059450355335057127000182589195032743033855086462073755890358371843089288405033678605103994301877065689231331161051195619588190614674056869019239659509865133983347789296192782377375107506071358068491030076025878779144316950133386484353797386885372140875855775688551259677969133676781030803502418853219565418126980011499550611749434560300337187896912093065632274238471031943670058761477096978135736173205050410396040402824084459253563571992026229649063161888546112993464157771710005208074429098482801442630560870351368947396813270568877098636706780510404971424094755185830850749089301981625977101878707690334384607711592327021005834430934295836485907219176520890227730144011429636636688929615366348532377093367188612521545454822645732189226884443416347874029536387748309702021436584147774143831351753090718412944552289285883011753563202057254462757550368503124869605764715525085743060119812966666968708754317446554980634408518202701683184371302145847785297100305685526953127958539208491162632833719787947881590146904317442471455664220571399966993097641760661689429650162005238731106310439422496102337502309467134928665045240345775809795284120289574638982158650396325428182772775889215237472949477225969553202077474189239965195819757004717567700887439390921226399370373587648399725159960120432021589607715418036891418311196924235206242976985543214708557387764403109426431379005873915914869684212196404010010855143040855657531288821032511621828757317626370001591605235617531279106738422412999932428690062924499915348533794120118080798585189597076886794710926356169924765780376337862243686487113718760401632316528626263814662879788663457326707278813687865435217257553304805643961762059655514764245674490073566042587320026423282244112954228219585422661851878315304157792195939386859324384350118800806538020737052949913572950162262223355319225730713792869792096833308502343084838151165037390392366860171202477901825155077414962434791084232854361143642645407332580738352969472810455621585275152507478082057945682821338680180528215808606858008118040444836544865586314335733966459866858104139235101950442112841564086581006664447209058772238914306009089864289773705319355027337038460498174807560826601670943871006988338861831081877017750813692554813873662213010177685408430758893416700948746336916698609892340169579174759799586809394311039411702269354830915553995366930783675435325024238127652417733890687797752566304789172891484149351574873318157941772495724816009689878132378611863724527457769656193511063442750270358430916384200399118285573780245331981812201066045516153086005976614414018778108428039859999575559161725839865825320185142900060755805800708121780114341022468970890052023196250333738247623260555698095237793416735662635605434308792715306514490428884166866185437927077988446418658823337500220039290534561723913771105362721254763878582460180378597701229353590979493766593244579607003801573270871180105896209064533594885519627944289420366658125612876079732976193386697238022469220648499795921211524085369593238485430193594839612040438264020330935333583284323012200215593808261713995507819563775812543621640821064704865614421544519506526369756496129046600028428255435557760395955453193754662893392956246073432060234459212562760264590311314384402941539293438834747673664444454158620445618393007677761203769871249046149600283573151823492657734943094372531239486623125056938560714871162583583780950237478757971005916566626100822437309702947758539725452883887947838489778883283603346708516408980609176344339535639094421152764531183060226301348462257835911724957957782149985411938429561443078051212860841755645008720980773505453881792580883412114131528693404922512607476650076198057403035758532079570275863507882624151461181756722518993089615451374484281811255445630142776583323862309678105198045152509547971921198512688963222033802016225789474837474434282165373380578854785840391758382187533273522579246108483695696340864126350620365584621885927032768312428695708552319645704021054450810847340948180386160509302217013224841916772823184916955995447525384026425606221246539802702298720294570811836435451428289620178129214337184744221052540525011475749919893629793581630931588616079636854185014825971874558100097940815720202631755445054153505778140650242525586876344209774693215647196171917353969141535741737076140434796061156553899736430675631135807467850305740546204336144903427430012763520254369701684124632006550493151444789175513995542294228927035952305895164546093418922516899797398846649806382177225215271084090413250989167859306468161508990880158516208933591620233817004209638667014268556019730613896092161027701474170061870160513100515552172035481345223179225499425376890077155007311364800659131129311408883328702020281657838406995085829472829225506255007580485784960769847703125520237271587131976730661094387666721880999274937984456491459308927216367141540928969070069358833600336006017896392059813493497394326002557769732574946780247558057998916757996528545625742409531810214267790004281206320170848822933271613137961353628646612284042001681691474521134810986731550272931998431596413952406315496557988900465021260675534707524386896716754901856974707638459464414134805494633809649999548599091806963347300810913773945602066887634496077871384599197736829636707543027645858152687032715491184744847524713951523649381183892733985291261027424440096859788776662734830678897159615120314188933493883920822177115715530903850142227210970054737962237358457678946287021053965632157720116445557652294168762435368372490236823104866438775384217204790610468311114186683223338914491811037113919860861287967190574825892438716433296340319706442969863727607004330227872327372861138173568491633229670997522187663430927720155632491547481016130936349249399573570021823862598441917764755603255162858622528911639143273358194628628208386175072064260084720448767354813934310658937522819669105839970938310111335722106920229875570795488670402858167195703931673990209073944209052841357530296702859298432339843332234985311215856262319741276470469680035592696269380920925151241757862038368838934914511443160381772251075282907569805110282755679017823321559533177238169430320981187925943939198940176972092023596885415158509347370754446161850751293858473256251291850133934443769406688254849763049630551666129752389466317340096533954018190022410908530160020724736254686112038557038789244351505553438309399592018167731094730094863104000125322666721027715840091877425413392349134019648887300806294816537301129717216845516888954564664614846681679282810538385038150804300480200060930964397109379728756298037873072615320567335209610807180421357686214211307332947545172213607948344740501865803245815681020413466928721794466640516854562447161602906156390922549288825401027028977416571386651325097896934731684660828204839762616384595341942288120786149309320313640034240891499081567991507208343533818978428237622807427647546104300014130820957577501794716379370169889241525678777447359397650361817628368710981896624044989854767336484690021236549362985587932916691464084971403786276895091208140047040398956608122459901952150023044578100266973589521536215092466914362962941387133000271955213714193228890360996520536059794375223910427769412694967881888777047647193215693203681839824402054971158725420154264141475160766658451974705949468464057118981217832916032858368375512079272578904817361622706609701735207052896569895149983893844925536639060839564771622834263892905924369416550142718766883088000365835023546057129101092123799546119506710081260612967925982603338425641567451322798338745738860446875713920330685438321072137264205255741663377380268609629558513322322553034866939320160080759533946862653037982907311857436070424481421974716288102919548578564284671529083318697282305042992963425792550180695136525429265079311990747854434408178577893887984006560812142265238889128196144788964862671531746376717776182157388825813560699320398155427068280865010020024596321207760382456858234607970800567586943840148549529339317044803017091481892781649036810711156794659513055726057774273597469470095004750453467799190299799067787539732534195866120604738374275048705386751250448671982810336566196595440788687459127153034002394591528938138375034214716263864405559991197265602846336617510656675357495587214044541875670841846029185044314865980809074496102053492871267935380594204577024442132850415114389233386899623381627609753752259605088672748048911749408512548291861199388692676554456245636741032695075221631339559581907333730660399342863567136510753585243178954733879003579567815513597323550270788637571000018185315605670614287977049431892039826475306481683224592165201667049601953839376239698382176782388462670615924707694094924771684529170620685172024632115246046554496395475900927677870451456534607548409397458712102030705918811431504466064355004716333529699106173477701841044193585622907847511042518357177880093543829099646588031979639821326417861624943659575955732206589061389992571920814636420366775987679866913921979145366399497454712612106349519249189095291604543694173531020490165048155065181987175860917326639901640814476745776514877578224768493222408666064767548078118220907657601905763960596617882223793612934471957911069926523478599166020934381378225206350800089499598934055771193659915425312846425672308502471206120345598958980164509377167229206491620870891313750202119856631049471025207344206577920275508442050068505208828040590391045892715079335561966703997218583658416139955890867167901166939748040951587394308645988015827780317291747043212172522977003624320121692518374909056253785125728670745850731501145494071561252615236729278899492959870549452465984724114579318569760661448842942166558893912641318762610415761058598600159192306201390690443246360944339652563889174039420096507465399063392947497205495924346052371624521781276638017729741897941804316255353452344039437842468665727007650262982447434538057260872593106682837441660743562701888911095558437002289208248740973749662040416431596610635969377073763298506689853400942280060483745343216777473588552021307225061912262480566040525561878437133267097675185266362757119785335195231732365289718643891380793274393165768412946868839029066212211592142980202721146342478914658897427779526170740958510749399998540599770537908746655538318049323526504699378675580080974521447787780295585138560113893267096018022597844649893106032425642873384389120947354801487346507265860834318993994887153418822924182461212424253351582372247087583209347961093272612859507200996520978438355772481807362149359078533426711994045339985796874411340846618376666885521800355539068777049534496583097042628324183270170015100893043110851875435757993458985151733561518151062748687678278328282735772241750701272459977132267206950848002081229561456119143060186941586631357006502564987622384203863143011956728191802983253724228429009773360484169355116084274242686130081679125132460262475579095836185395663911095706868119961033846313738365887299259203315011732590418351648636235483755256029493692158604838406214687541570185367849734522223117539383820936322345860695340302111252061183696025880664571547962409680076956765566852015566375169047836638084360432535218903361981768532439851533555801638249234063617012365755402330488874745412706038140085692028286900953883946190966678233835724728626690359029734060948833855490411241521289467489854202584277807526930580726247912458099746774493934854499112793542566421550509118094287577552871371980736505025021810528101015033674768813345567532206627961870749774904582224320376432010681975766097562158175610106469047572510566742272287416480385787023611266782598615831699480210517597235469748179239093622769648926951741616970788389045697731424744300719881638533963088875267731532033998926160813163598599845661103227438252678343195368314189657250601717575803290658666572385069135278648854748218179900607462591436810174213801834434390696646349201334325397372053314620008382607472327887598302876119111848118716858363929384060005211164281830081895447215673982795961670342248070005797301587308161233281164590222124162712272869850771242504730456621377742270475071749004297384247207341051408235460331191695476392871173333363614300967240185999516342663946094930292854807563038553145537926648450112517643481115670286081260097938026061868105638212494555582673919517610091091315255187020090851832973556814634632381600553106685098339985734392023021599297758949458877611085187173352306912416449299196831569799936370865038225692714370061500564005592215676145279164289584940408304402161475878404213598588564443787103656176245408948574022606400173482517023340254078664391024060347493435539597574376308335536267974183124151119944734693917235860610426301263101290764764950045238401248971025923953224594468782945677740180595326899453449806166891990845125926688208244711592164256856088362209589458829748795486098483956474086283018843364672181339698030716758674682379488848934807783466470483385664321747594339386138226821033548626987732565265836962131559616449302084339084369921597845829525703592182856462175646764587403553637211893374781961544510008690035556537177474590568330759080596289698447834217487366448454483920611688795725905676880472486769783601381705416024143360783023897568797435377314509331601019345246427080020839072468930347460740906087678490936363627541692236331984749184097575235883318540750861272785219807528905204140034087379604487622825733581794738427260210027083207508032286945966959322899600357837821693345972236155607045601235014324115183396782784841616223222565600804522350980502000052327589965762498961580148243268817075303155175573176898808913649528125456092691590101933948265178522973284955842041407076098534641806715826828354098330126538416770815461665951845091810005033038513352475098164794639238000922930029635193077500330958837350176457422349669387284927416787417153141881626019530158470770150566075572771425807823692858973811662726675127471026346507420543762378917638386835173722361672637146448858466271356526440834215536802480909166226246881725500464167324333193136272793971510850973829974456118969155085871502425239167242250734680534464400778337186703153626625059163156761807480622595625410282000332439791980045485670966654123976064484944824781691208440101529311798147320975850716162600047297833469240378930472521464387907735814145755687623998723269068984491861334842679221464104893179608450010070315775586673163011057987598446377396952733546468680293419665547734399690370821253297066686059363100577299652914019495159347512331146545511212553202217816999403482600182107908874090886595272918066405597274964602107441062333315203778401326010551283878551524259289130990436147792351765313076723868968443717516695281787625202697137766779756252860380244938728512463132168851446708668325848531342766238351077336777739462033659785825942180797456404652887384597783561142042142047725269299704645209784062282333414949151935327351477907291948790878781294509360969221729472019045273125256403399156095283327959765412490528241825311907518578260068530899978575887389494048198430680348243827819626791490021628696196213575258116853527688376120978060605960183123609093097820407366629311119559465880852095696717649445836027342974093847329605679192754713222701421148336558116226953011436363357368419707451414531110933332038979207258437921399068606516570437193677118165590590021677769588207156434592990716632933734659805514018631985597285965830255424476048238282503813301181453917568747471024402607678976771574199551601741048717399848396100863893422548958350230159449404760996860973717917943107342331781521511946339649573107003560583828743386440225842016569199339777580077661373717200808910532782932443270550263498393685881779889554508871220471173668713582514934326907828755527100945189413545131480531913605182355517370700322913301929941412156145377535295821624689629553379738856702782660801550063356858946780440933249079211600280995904450929072524627579081236293384002251268191047693540582453859786990964220474540509787729323468351507536056657603678717671878619413594112084763526290692798043294915776028680121835001770422709089954288992654200476030230140207246930715786659367511121934414761666503592147842348005223910637951844489053647342632856383098643745901885266218710076523722283081498798066378503343014787545277753585691507402925048789544202295192245986920499099293415630872362707928963333578094045773718667799824681187213278477809375971758379767130041149058171856209106279194229788764986961488538594891963853394120120061556957951706731307151829653064543635034729606586251693246320744743556415548260329753585745527257588077497144934229803219637594184747174859995260307347671647684349500042131805667286366192180858811567648042315762123718833771085611115838407972730451402486760962308645306832480509430974534753574311977209482044191038382728545413381034257670913113841238868971734537508366934182637283419716573182777073422813391853740845488754823845462276381370106159220958562898727014543026513100041206515031953761423171771468835934172490968970018435462707080986839720212021216480737181354703805854142840225198270544557350909087868477502845428498645295011124057914429764197285895463612540394040777385791358627525599914948431530318192309635509077328574339796229075654075229454261072197492226548307902221480788267071060807605319289663633666345656720002089392054893977172348899538579772764036378871220903117219674328794130358076584309492879964903296073776053287303100301123130788200840713578624131312776557097741352230813871211050289861010986190119862136539051100803267857675452012053016831684684107340692184003854492899698264316830788847271549262831926763866897527231253767726743840368159292256094012476433326550616078895036027872396493781711140614000882218193083321789721505299282274518300325955402738966146767082385394076407430692328828382829477728870574567779566580316810835180925997614319035776955782485245215904636922094273693358776132755583825407364786072437491047550700375639189255762162184383513290752358248800836082524738831929100353908930457974326354119738824905452094084400578646266423433479611466928583337481808097240655305692527356422689063574203734527314245843220368590365684934053904791311605009634435761857862426293072074513114419678411700058839923008225080727826624209161652899102060984211574352218441276989326774077593319510073414476409368491101926259708640283518309674399070862968325713195418380221082343277814299582079135775812841827385574095490374846037444428465768271329763015623693327820485039573048812950746378899070663370142097664348220957351442187005148299657677136471449033611313842312832238766854137873713205310003190790038486153640646186768716242796134200286154575549278170816118065390168020762818583997014929739893689487590871042782283645885793993609026157022857018386886586050569978591167036448156500485491195564549779309849262564048802007640066692772328465287837019516453674968822640822166614588239388993892875621781853815623065260372549751382909277984108848146970989180544390069830553952888629820192126896749920218501125652164699311412858480971643721823544316936558302036129269949325886261469477323663105403356666736192123202512196959758930970177690997513473894485442906843344117947188522951881408613376383248159120124010912442431319108382950589311287219988050032486677832026692179293551525477668548646274662142108107106227735841502360046932116253788469555655723040355075246733546160967705828474250398786343839944054348486043182131733052110158030037547199856078521146647885748268255202634005828566149306723764030311832822031516064699438512060369335890527616477215757856289763623250732832971823969682268668048542313000869602445812068929904727548467384450237542742248298739569181779848315772340325716758189220248471670063169345805669848940037510395231838281960738972986121779183950325359029492262696977610261846525127632998818599949068214504254617061092071538375374429809273170691300318930293117936218821550612500307675456503839241626213868268875878492177782753074625240972894252467676965855781581924135715510937624298473589342332628784389388742837676631143596220375970046366030483407520077403904386215588868812158796324211915274590009299076964615278244455242208944954603224077111742683958976945962835883393709643824068527854009534877181379568984151289605601958161914789782491742600409372147029946986843654155296722101065148305214339993826958087388163571231949016118835172276503843424608586260853847663056608309626220005480352091729550602660045231768123150959293371844071672524457842941402738656804863958761868634167480631015733385401591786702502168856048010597868800692306843505645054362058349410782012023620060786182988221424477678337111349000127204559095378262999159813893121677174844547683922642945319351140450503352630826496300750784045999784869210275950095575486375983336591553015682880895440400471064982366078872963224895384300134137360505879774898969131099872403724375227497653358196254371540704756975513978160421833152947831973534619016917087054044361350989730175373153487488134210741096472507320493605305061420213649177299046296086235558471642410091850853511349048313381562767584251742924887841692979897000266537478493861108486993413690680832533250942535675059596427885303476040035047899871388883665128412349259362623141346048941370130316219414253071332785670493948710466536436152296433815606541867055024065894695206826811660536330311604289219426894142764851567458163290897209549309546816304904528999618296436404375366543257217562643745616366329931336286498484901557599540935714994354698085145624435611007313189297638882932219960324179568153338959252767121620905242026555710967970388757399272795910985969525481626747041533491140017016999895628940553579969434158226027612048583400519492936980285564700992524939104993281616616716678997387377604616463688514591366837571173593785125978312341701280893868422751906993398775893600367839177390896502428124039614745902178199262404931969985864539782895393220273469324147555766283482095153980563373081326951857830550348300631568304637286408874774583959770867365481483152703099015050031171298895133680968795819186918218710474236795306157802212566942675388882300312082561917686549788426126625702733555583870045442130760478779414327594804734011393803988131425573255546448040020027522544355352545947894440195619475624175194708818145608139989931361820903516201864071507353692424569579422162898610061176864350019790204567572321277895538533754463080274166441551985900729131539174421288196333880576034602551640624168340110378477589836648117746681172907796658123867098541875591160040745254772529669989874952176636622316147347966302845947096694975631412225736079219853421613106281783908821452865569984672812450866055065080050313335554850853232449609974143185076769631017841935915441067612993596915404891824086039634202152192897597306871657134345499434991067620937684938995572094644115490949845574789815557166402216666307083934178522561464001059404450554378973469282902189068504054986574821711375235831509932569348499229876530438663206103908309374460972313130558605218068688837189983488957398215657887134998343706877619940027008463120898741803082882018327955551983438251477966242019584327706241315938831777293544664535639230712065175837405996736289422803161117634798669171439512068739321268588540561226529061639260305565702841902083012328081575035398787047486470976564665897481684674112159594041574909140002228077206990593625349951586439130776035874455175833791779227337031172832020060224649868258939498026617498503120797351406149824007170195250988127519728155962478646821358942279988774270752336898313060717309628053869074657747664826734148216587589908863519200120017215752111459648195882701948021471349660340575433004481317981422917745214903439024568531439443916242805699310571740415971586232666350344495802051595160449539348388976322150544508786486672123971153432881637862112411172625142385799445606833293310159549598781325788136627223330279009449647548059883232770731538113291629241064894178742086670560751235237101997428872088126794722209947486042922079915646104522573044536323879192949869829979210710075054360390703314716629015702592020694280652002934990369040825106139795698609622171996037438860685017491332676137518664161283930551583554301547752612985192499517942015043565145710872120372632519207859568547469411190230944503335613820668020526041236526053524927449284998298887455924991972926401379616743832776655907719280555749809979600381942983586077095531416527933717958256672712773521857042515382699060884081402675580422378657693678372730951456281641757757423959559319134074168734403709619286164854893201258785183486989989268997649139165007328268072602900747059424720743459109202541273412298288510614326913913874534752219773117410200864068217491858323300968227795069254072511846281942771053414769669235635443717385178633990350844613578685241961509658293187884467358619322086481806478491199382720124806980734232439976426913690725128783079524243913835989967334706987984805649478332045756315182517984837571113392797316937236892659883626570196038008774973366370232139638898400007840427853556546582273015609596031538675273376563942755654597056308476323313938645443627800305821120147499118183386466756054954172976434035775943602664578379835326463158788382107334136812023495611440356506298563009658873048656883090040713123609175029666618313166131059208662214731212901463832945354329844134040867368157588996060969719397215148630149950615522549047839148502717177597188628726870638750511830490419564340837628258385035507724510942143500054678155477876123511886912609072131696869075179055424530691355394198201989605428805081141377767261842726628167894053336612407697304374186700589712731709055710874672815166229206256440710346519907557269203672676524382221429462131609580615856941643462810320835767942255900379769483511425714461765488191915480251590101181153735010015666434832851284288824329222546933745419431540971158004954467608358241346494141913289262361648397818356544910552070015990849232552540171570578788504571404796874494588842719631836185631869434120298763613608772277419036215295216399045098382301839394227348428681084487815282948002056906169491846359198272859862252777377390514178629075240720056214202662707670165750628716564172327874339754660519031684602899949964233570142350767614472951243684894271365346668867478981964933642565354152523277491835040573405087524136532576386690668002357366311549410972636559249800419513070974607248667707288519963760749296017336668069835581742470627505204822509810686035216706359122259805030019398654751343645412103215658810866664717470324944889155381353348563897398161094104736784558749484058291705977994437426379374841538505650163648749548828854070699866049806586657608783164491827656837639778878509823141715209079750112861935738659896211455450239756552702061803677175826268976140780269724455128098339508907127846248439166944235919477005866631371983377725477220038173661423467110121399873313012884883669575151831824923521745571010587936563720745502124474473520684216485115412877711407243552255279363938064654204127192475585958168512670366373605096594467032725501402405393953694559374918438531770847412282711038763211298690025185704494519839150354849259745999178430221424828098251798118741011850843354378166474100864975632017123350514893838595481146981471630941778732273470768227590124171173766505475925159592936848424923468682889590049637856843167274213489449952729141815999696417286884632147123922956223262600759929557030709444160404234499186478123808593944827313312121748778870279558097106431776664373392376047690816715616614987397923395137950360486450244256343088676709502706304722274517393540919704652142022073537362857811052909830531923257290177767764931054985284124126917750823679493775857626364377944119483853328257224852598866052335494933716677334615715328513598695074234750886342367975048521949898289546926645364412926582222703745031213801872016516094051981050807242554507501095045295791776474399864479645720980127590979509279119986954586845298394166115428174860013221580537877143835188714479236997100090474995179242144474524657309045485406199729248329754039078260943362411502936392912350400733913803354349869662477995000885966355030432614649355586777211072044730936898627428448248430490056940326227571720493304936811675641163496074758259182848574143810740857205611109241672970844220705492115586334653645622653632247305796099950496315104906541094264082088984387378310328725523900235083689125828479307106347882993792691359553859850069270134060127702046373851106474134268197717523273886249506934028756905718685451249551970032704076309930750479439948185107709109462860123946431279176232335026378174235650276877235468783051198006650124520733770015721297949001706409261512615086158533668285936094700449471712866394905163856360112600747972851958120508140419273150820812494314682637679930110378377162759180770472619596963399436311696545959940479589193369108091357147184447999675824053104439754776022819595742512746011430439281569495411944095061041261614596235008917779247755564394034156013633112196239291303772600040561402241730615761601891024451529897405838086120422402035599560826261926120329871421103694665224763820387208204011626917092395916918885571537102795099271293201800859107843038381125321134679099418119181968733320952300231683287541938757504045791929843330620093466179654148735009851825535557297108940122482783657490273680096688949490600445514294506363393143015545512524277027206095402792023622568113822144573180788135556669165247989729361566390478857231155802179990590581038837277072438254367459303586722789406126461933963230328443628215122367334645097016408468924011034559848494274193937462446186793945595339309980704281241365440133965421830364038574732852725581042993263162778013682689525097854674199076434887515779744806545795913917678862490101907807119482319593718067256194759174583884358113264979491374761893648579523898273420347019383808382220043799993302131212656694066155400338411807941553655839174265653381419395635970315012202260470202052443404325159128336481622534673440054341019535485300833117771082932318351174709749157244856686410297942297067623365835992413829506771954547284086868068858255691213854173316440074249552169976483487308871132718032367616346360833983301918100386157466527453282827641245666642293666193730663827369619975548503185970380558738428711872264934109857946486215849265599158431424483963078068688327298694290817967338273451434129022099575753435226576449860832282468768522613314238909057036319338810415696978033654218207756362517593020454566897222061791858372604588769177903806099248171230804365836114470412501586572723763456839172595628688782112543577150674275513966351715421829209884101513525479259023608887096603960284066167230910640776511997857329777410906130053320203495661206014859200586388033315271583698399589059856957889651678264553354312114300839076951401674189834934739882603506220688112391387767271567550066753942310186774604645989447718863863583486486550194737836427631292986076720011072464012220121257180000449182972318643752326187657469430985581107751383044892872090010691161783099877089416788309192472392689874672917920508485853571354389001646693244608316901949662624261730880948231346967966251309630558995734645133648077642982169552730245793315932192958879375879800259664722934280927152258569246015030654795856118289312241147621373770702432506897680512182093824250728253334949912398794756095341694690864597489346840489925388796865965004420995711542688791667496516855315972004198590842725533135058904251233171276211338389013518025765593908917198263609853974288403468393941006426972279033949149572732325535344235266008406846019103679306174190126172721047894386528076797196798057073351561425592409108491602143709041415813716055846147076333317288081283483800358288758773082747603604350387656497286764548526273057613377445638801671689998994575137881173533095016202903357696167984664386231626376554684772894440392635020949771561065952043414880193609564084532694138837881811253069018598910638637466764254027565869272558714695189021350645912966000536083223065451990840277929567290664537035168909304182199764730918159870444001087814647304254845601623534712160360786190255028161532024674796726001945504680990581044357946172733109499236507678618418030808689013897731170778418628770769810905822333722573814436017649258805424649173756884988299642310786291966671422764034267465304834657316045694636081071219697822868776248063855155788283479037049969423172546208116408726759464527037832883820542388755617563058976716102902286973052481057899396300550165699319014482932332792400248391818428790490043326464389354623665707552515513151625890820332074320212866869847985099380058580018940009937423028041912786366061466019579214503562139241458532618533338650590417008631861509896909078534486860927438279295049038694189095394242476339368726548144257362908998255097491166284167724825985816902254509394379718433709416275745207228854785011416923119242676186504936159547562236025238847894158286034252473302481829418902077299882753139623122598205599697897122601527718136256274810554289340986572295440713299299680163091578483044176390846795265274666123430077819599318837657295844760114111206996118110987359313801759434685083646361414287741125765313148553334240255900831146057586861924667719042256776646784539049856155706455051775734897359845363136695456343097017698171941955102025604147970842100897319509979215337045095739163262234405095391326243692989802446341303822719320242873322361350789862989713402373620819170818438297610496173293059758454676648971536543455194943911832441610103003346328274226490980642437342187184456370252582163899907768546008542603423656580932719854056877504087434032765373902157719468524322998441465891048311677286056118770397828072195720456278883870796211684135937278846273063463436965780456660148604727088232584606609362668892884031787784714039953507350999378933636256157786828709006626318718353510361945640871336052005884915123267070258107564608565735490937189381246444610551072434741499702209933955216780481874344827829159750530823552690077816662151159455518075888884911510791434141138910632695088613758589685805850412660664511457713923329262580253220376301837761425185713489599995154897806126618985791141438488099119033923612798199439378055871213426115216408008080012493177246341794073033188838350118827528890392356349477841127257601221029709088481321086300079022942329430851449103726662318545631940084031191213858704975241560997510617777461484565917764219075567207697208905001184825442170579330525995265838660749165655033527079460167756477005484606296079262766573185714532130229051038626648143637395313380962983260920040499993985113689059081803663042684912303687174958144429846437842326583675183456070834708991755721063336801846394752346418646203602755958652947733290524426916416430591306961173156594139864148441868285102542240852734130503703716495574505168944914768356425372651359737133234999668776933879249275515564663567010119190819290685302891752895941580963389532585637108281084651824145052594464532005220452859785742134647492939837311207468958685081806024357785077673802152740445163651916344703817537793449411640239959983197103084751561787529762515479947934710380243734480800079894251825954592445963055854379217296056783896429695871849505119294339218530125695838686139459007838518862821295725043182602051443955054413538179103746681988932554403182871221755292050192934570641858941389229358450315260674068929191086588394190028408938423956549056286072307865411554614011850276596856308994268152049126280778609142659602366719694799329602209418325603308610887963356914661559748796308914524324940611337591812985510814197989272377052166266329671467578874680145960979861126546269915732043833177492058095245446271825429073979601086975129681029761492054679370442279226522782883769500706290308862737809398642297943878261350792434622431515274065180834640991367179409979391562504039018198802663925711282904152925278574221074018028819001457852762166212516667595519655793330364349075082263869401113222045971340959324430158745763667911824138500806234350855175994702862789648831748176866939200372822105132789833694623158190905866077571773575613300562612784235115806895833845723891169772980506023726961833648253608460715533543330137614455314949442909000088947595711117324271220370311378259865729894632748090575810602874470884655124239395710055481303307169386076556820382666746064142244503623810929089312054547584646051952947627075515636929046046850162471453402363132434632072713087875973811547490028939453584310453764893876132978339762666313763580960668281482418241696213143943041458024321785213599117424889129206495701031196884572963363403084143749156898153002879844817205954197865884386239138352592691978630886928302803626676034945510342976920764949996630853005410280973003052552108914203729175725437599769409080452549498592306773247366527492794208904318489507565215115008744865496990962624717355270899239440795150999400913820009115027212643542655752179010044729216522204237812531714211815469950815797862576428488025208043382039570468105319111038791499077296291967769953505758546820869961474656545884264457757061380692032393730083379643422253246367044904850323912983458400060070096607058548514908850474749752438698912794773480263362537878713635929791064655414322916941181590016607771463782185561056876324418490427901513083731823537335714111282023526579084230103493676564258045803265832335503891700052735011257005668021165925667670408271637589609050250885106133444829911124880838492826897587383909076200000474151362894750563620588908196216763587441019315558482536956590881634673092495556247385225521430775612621188021422762268901630554672226062554208204337377914721058588039858650536994105082475231941086872705388552885852373457960480752411454739075332223413115081387355542750686581387483632171640747146844741876503364956274465218117890032068265667173132044671421460805820274795631253429415395597302409153865923467199070032432794074823744107313421067993930153831162833179640676619826534683370899588579318328005988006879248364876945940766376713747410347748235154033649733284001360411002491491556812819669451283103902808280526251193730476664058654464651447976387992061051406579852796141109938286845075209664530156013596782561132072387044096555460005289240553475878840589361325914165909999858525160828606170908167402815895126559497150810907298765734058041182913136353244753282840872932618278355179091939302666531494737120685171734728861656094243987798995246944016691046181684433856078759702687086614684221793364058295568959835931759745240940626043934646968833949950060646497484205165843634362754925893936878845048584069132650155331556121230993005132279412410663008327014331791317635128957659980612602600806984074421639143722859304284332847299190435085959538383890083723929998745151355705534421938338528057847511525258635052379474796991508281459448268517604567221786086670201376538445227263314505548094822832851575083851550095229224778385864559082217650000206883411968770337667019846254282808379042330230515872580413611772499056147984146231441437278729543312230790615343601889714895926423721971048612893362912371501202895977131133923478066204569874046542847942564884219099132014337199562936406150742588716878180800973372852956365059207985351553504538001865124164830212551658554277121402421102961341269065429433122425653556702557923419460429070829294355877892328397636383178922872116067937434299859319139419764642680749874266998441371685940400260512021461760720762240012465140385687675370381603899968989385662804386217315042732301320573559166562793989287473716085679466295975002897215901890870622725195507721038487170935819530058058138039050305391655539084610531832085125954786681694574946628302967823738602431782876761253608063064374538210319551752912267050583000567905983819684408563235733750080844822499227544197829444697093451186872354031555622478080144731808201919534582956417774317886687235145250185138940234876655144035151257676098269572927076907252057897491599824743745601957951673986369005064911507133802795606093692077430563778110610568199222727343823651933230666053176303181618299014914205235058733642991508436052612817480294279030214975734089776604440412452412290612138137951693468370340477599513806578234011703334993295151402634524199224951755579716582070694124899706449028078126293990277463895428120928798927847875098663648300139153166504626376089247494812034572727684021700461676432430279260332080968858081681811812034319959709375089131958149797538111898116915050184289735873716088769812407364586737676103041956573279169263777246248099198900249783781658722816065943973839702950151571238342086997541358113136946495230860907015099694514616210330197118478373935474869048210083991562990844517595780992019977026047822999106369164832809787607576254500592005517141324287487110349808682161936058278338914977581258905293419238202779210014482928009701360036940316540578714274212477682184588117045770595720597714134639543397764390228336689792930935426880978800817828003079163934159348228082407406514025702860407239683832212944603701866714679535109076708116157569429308255666942074561982247413360809206710505110602210992638991544278757395580250567775564456960782684530972121603655029024705207960964976473080206951892829682498199117963055188418581847136528679178486372304359521652973607410518190294261694872016891773190232965157443654197387511315793499383847885490601469018175458370458527016169505746708316666822477032084978188261176330354172332582486496431929405290016551146696513328552909588507983340437092956532856156177869050542626878496963850271718881205648999839487832331431426756382678646059377241603637010747544678555886442016732776272246499723886619753674888557170970060351551148197777995878865870898139672622459262857306629644696193088162210736035451573121847692706455037315389802448444176459405863184630264235399700746461123326345809791933653959064102143925231855007020427758022462945047952136077455484205529328957758745437543732410485199847839766953331815680547953060782651065666129873929694269239283288645683633407728601842392067407476471553742845242173471608901375169855673314429788891233045390790982587877915649797767743064054214250971738217331758484290109361918442609888241148085726125279806035154287449282363771490827010284331800952194519679629665457677613907041854013844064804418343651285810038901996617632002811256147354187647944024791586177156159163535687179883881752575035357055459922991947744414348895100958947377345127455259543168717318988784760309348611173394096305491869077800597520274610294804191408639087591872207085952809543031502354422200128819418300258184418539257607523526593982844040086191492337317681732803774980388224123244564387523354570436150607577443826105594029566787481103730372215761610103632805634289756702997741701619063117090750554793198972140238062143692992250451626514798425912718388916648688474459963269338616352507464294899621389161588716121422679637926770807535074006788447509899301531942199892476415670215929962897827859749525311277294655628212169525554652705315867451058115966577137077315750847734888943819574576508470522716125967539515580423451766686599766170953627396301316464972801039458121315497257553389665248534662109300629423534215845676345653387081080007322821053644399987009001779561768207286341112225156024852239187150631190141596477128581167155191318361945724925054545145415195405238395889198241240305797322891202542861384077672373482755567290661663580211073362183475517230813150975407323222010176430782015797083694574653996153681801299665758488612805804078034377326221710386289669760566420781050085240151920545793588107154743016801951899693574082604016293482525214508578302986465148510661448608727525376605059051657723580752233071388006689750170414202311184879007351205487982650272106876527929482158271400522377844192350490612257242044425340560025881137582096633384963198003702342446988043732017370020752890542213502903249778812878586786757757827474771735515449053706682430219592731359131998276088551192395588930329126684794279366506331740419331822747539666930944857060773909737969926224690838124074156659597691104869653978867404694773722319298130495696131566595348400785594822000121908467670676154734684116107940581122250264702722298627842074087740303335715245057590567619867450094686154309313206830404630282225295753584363506749518545748036537510093856540340144572234005543894485235600777110456113093346996754846300563659484048150288854964969565696976854884830408887963880090439560637999049475982225985341801190697965427247174616485495844541657819978477022675420332141027617945015512509118699854021749066134528728495455212071258819076233378240447390442993003780217403582806105702086661701678557913733570331551179267870458750710640827411130029305875703494465283214576262609139830226788985214976543380405323943059716792328397713580474824790523135162633275101439620539435558404460698440075538080958984301029032543309624469100860492880308596120112505557981999741966424832763250858130803244295886233247285002238459049599816718526580042529268075665680603042996969487579219197821549433732654101995067105903034611081772410067890112489360636644470633177116851009087431626574702491064160931824987896475417107104513667365737074042692274894032706380656374575817546620225659201960048694783497574990860144301907858379390601468112626960859177909795057430966804729185976151903187344583323220271363562907545625632715803716497706306371943919130127647013052677716826957802685212518813310213425700523300570686478294768304565911016603063127735770842905234155584105373687438954718133984718890652238782586502417254237487520237689053839671245289255019886344154491561962193879267804747067913225536213061703723788340641889962815655888444167229184604231709340395995494260651785892464788261333988694818927986605918052370464662851756286451856803302143205466448532264419078211590644622966692418718807919611979772907328622601176345335162699293844296681288508820846098947676477304075430696097851858822745809460956443799287696672093870853939505771557716830374944670081314196573338632670052574255063859376996203257195992747338126714851844025517859345825699427935450540759602616911304883183404127450929722902628101806752588762767025000875913855603003559161467725862282437432650532968493235958362374013397707756724306718500739875446551190822321524996368336163916345437159214446834713927071510767796554391030298254570437326439173474465516754968052724867218479548741672134876863306025758083728061842659316375343235440986669757588216302209759605080384549939988016646406843094825075363694676575491042665895645613037463250211953152367767927585998716794812160103749517713138930919537017049788211391322263558461721390149408748860684568473909440946803765784236747717054583471357622013803475253385826016749336408147648384721638288932858652824908752868906360438430571382064171109994869345034135044472477336740189284127171414840918933700211146283973738947970671280747802344455257048711166895316871078238473153115162423298560089100617169850498686594964338416148769929429007577561210625930874194343396021704619024010200752846459070980310316445766870244613506582862934502254342063213174236951736560463282868092751748859661172417112599757955778150446968335506032116184051823139949092510263482805375356788853799519171708396044430765874962231014246275702872051724807220895191719460677994679492582235338944061919247019248386722323085189191590612153798070755743387795953311836584590959469561525300548763262475803082756323243892254645347137633967956439277678706334599438840723009032340427328565276322632058367728945018808340259769373669706421165251561865135589274019739462910109378503905207635087792128504855910539672514349828933281901917675115810776222857083630043580985840048714458038908462693271654150267850058762165804970008308976074365283043447511376875402336368410370622492402264546927330584679118030058010207817012789600614631115168772371958727640103677313657910388228823703770255943358202375808614342958602496653376900409183155358910998402350739912948607579246980892043885747434460998830397967518025453312271214438366008292935198926926118052879652568860952719808806243677717032881854963139763261564371519710868573187555730261438853540030547991779425673168501246458976802494189016540744220728779295728690115336787311847553218610675134787963650371481510850572813070684869308703464307575699511294349112771955111812514950295640721040025348592625722505975488343451884176300857290926400498785509347284503111399198085420989560213482073664787002272144013925738945510353389384441784365152268053776018471441870625662527658049866877541409033849446588877358028242226226120267741290447910678139305313792322521499933193258841013241935007773778644075842349651563500251944083779096455219797389712811940730645773754131579552287582391249018929423249367962728048041211311403613387149973318224610990481960469914010055695600471655829633700209129173386585236098490272068261218470140451360135323862800976279587906848560140140485677644626243641066303282495666845699470227473756558693727684925652131067373705833619423354089955914940120432285007041770575974565825612966063997606235371914258588900341639864081756270302806672619777444660457112488455256773165538535511177269106240331860640323759466093920767787423639603370818495362591480945448796143652684555017785123735540486050856102555728736453173621889381585592638322572572387520753880512950666490020977067263010314880471832037368254118855160986766054092931105147155888309571282977901186985237932429051335132026210122472414882632408623835184312791581046749651032568095790975257695406429061456312310940864315327271198822473050527950687505875171308938392128230065517472168599774871200453575745942986474889226177730151742736874136810902404245536364668422773444235239261092572269574758977133679808519121813365370001255483877981732179077399939407480875564511743455463839319579502989701040290661825427708882031983584034650515127247284677518000914181033302552100043131913620686796287262714170145403840086205960411407814229358256516211927902938801852593245107631785440445747814978437845997911969057364285496564542148791561913472828079655665760718874677750740995740647575615214691844776778065270876434995010207345860748268424468040401817611898346853404179600048616948779549375017432555953194624229545182951655356437073358696271327628252686046302400514079819598928495263178230787217781903430554576791593717966255248564436329994916819864558641424101627742157479124690755850801282124722351985332124842005516062750118618192457774936029244093899426903359109711200473020200679178861357904075893452810460199948877411277136938355237546606083981253999055610459876646170430013168383574862331175900710759192303096544129768230353463350462248630619692382895626163039650241391072248511297305519662717868599931484918131101979835541147538568937666460862902703546098551688565808351086418821234984161849435171847585659611240280712718042968191290304415312737526809311355988824983872239557233641921138176177755767754147404135620024576267697724505883545354260338869389477585067659002373861752812066937303665503601356643799022848240656699998707247164104462988555574245440354310886170519876891966986885889424257197641791783640821382937296489448905330728476994674737361058216537991120065585481371478218371330764764033261607438846610751030860434067883832666859702529657200932825084745037395872189158481623750575144342394555183874930364091007063691634796527821329862378211149358601142215957103747958402000880962163323714452799693769366268912270683955926082444628024230134826667807568764205626614259072851135120202279138263770169625346507164536047816579896790882493121241089023538104510964455300248423695926472901201314395321659971284262615414839058143422443296331924127822722903558625927171978261592033756612494210342381198818621136753459450453905136741996010566216231869769020530854328575894461676627032139917145506454181082379849773359571519899278749493762161938713265626639931830226339240074401080359477296614933617180651054713558161591906323434788795779562217586405837825214382745704632221716001187615448613909551554996009947892653752227124255128780771650890742093733732658714196752269096055866971967664024519792364358117740603556291548815559395272377139795028842471739187128685385057092579681991598537990815971203534856176717371955025588715120955663686427136928525490708350463620128641233915560267121663724175609265482187111511564055485208681467127578726086301991478568085034243667178095901060615857619334620850059178555882907716872701235487459163682950734347677790748930196151790842703364826698407545997337427861249274069806256767940869570904344078108254333217188589811301645029781233204420828488588141345441642411953435351085872450536822794813348677564070278394841231493583801027469931061477531135997298320522723482373714903803653681114836213601789751693456496808407152548494993838870738730992690988086139776654541927853416856614175420350805874695044074956268974198080162141204658797895557424070200062503229306158465259536282369071300517271906949845442278119051530060303206816598356666030596343700917255241504793816272316827590969214849790368105547313414061148180220319807993987773450443196208695121205836790161454465076046007657773281601234053069531938539292059876614285372863426767679896499112905052923241018833832490594840260969751845392771333541651361372669340534186369039551052734546711915966689432024490549920992526527642811275290716217085246496944941734572342095590640321785574093911356758399557672252455601177469847272607771166228945615749183890031628259111965557438337060013987092319642728188703011607169228997115776703294420429950547153100626809585011438550849327035139826569912815321907118836507319804292078752831095606840526982395441685523706287026830418549544372633470919118962494185931757003990592689667260400613554717195851711474225739512397037038647009810603640600865160489546902930958410101667503140513893260021962233898306417316481240483169833302743517631880165466968983680366050394770808201404099228994662163377278216708839841852076380083653512075498332950716904201935872121240363231615114582950782272637882512731760293286869431570015803005572559859490509342800236535240852574671539458912934137316943425489383473669646590549630005914926486442074776373759595326381108308705090005902643777966249076335187451702978345060775598800186155375176183699222542794355776832552472711467082578911118226922867274803631555223744057454799314666340622527006200719332975882101116482613929640450321189057207993377032959458970587078479000934757218307390483228721512960081818677113736748401419013900111693261219469807473501191245512385012559968978000035315494072798305312736063657158003512350066241693377216931768273728709483404781455243848064532589705728230473364631408561715618519024308787077807228756508406234476936653288192146786193353152763680282870047956856902877312949911166619086335780805998024406166745442873154382533566997893545514101418038770894688294988309826451408422383663969482893258728582350090569311563701253831759257330976622935871915381382932057356787855791122472855914237298701787996257675977825648368809736828263206542226781308733766859978153520227378999390928129054897761005744562793365089932323559207826716607151730765933605583148531601131361997005732024392879492871899998032895182400802227031937384872548365785710453296566867905219437944834261788924677519539265336437584197516176130453014470174967843851879974739830131223348120279559952492256241969565604087790840857317923067421145989146491755531378760061548019800838065917374169171927517969513018477211647982382524645486726026820528903464110602015347433407379437659889871925978078992141061318097109186623510900933197879442116322818973584469956375899729919857995884023972670116710971594974082746170616611006345881341075864676801359431460253376404330937980507407034213308691388099712289798828374774975912210092328129418519934231136037501524286130219537205952872943650720200756059534687549289723491836587455183393408930705533284646384054386341560516077099363731358315454720938276107675885807889815157958475824920559053433985859726184166498442627006138655236822044621618321274412030782035399929190796065144211217736017515248805669244132189353201251873395785020004141580819255146137412986122639463577491006546212150259794828391473673618609364484753416041093961465825116059293532960904274164322688019062885925932749311900889392533366212133142666257635267248568733080952370085316229718972614875758824809138569500399982956968006445877913923511737561570018926195059027856105840546488532713192109020021512008267717156058674044154712726562925104034698921309824712518992400186361991887249697064304351416186469616879852939395861055223928605286448727909814258402487326407700527302843748436757021531545390297004016741593421830029367881404256173158404164009382615281292512820199728058681782360944874658114741961682477429925451913278646658322914360364303270975325239551513616166577160653297492164624740607389715922071215113260374040437535219269635149403488641794221532791592977496649782599392860293364230174853642931718887508500047716403346537452105894312297525474063539181540077712161769237510076330455093137179394361643340555392071751393021475260435327506475673458915525975700591396205134300762783232950062749065638368773836639956942585120053393241700486275804122144792049820856545282254963502635471203231425686800592751383083056876890182865043615543144025015495007318074028042921471771824091234289267208416129657713225122353474277009490781573196147507196289096555409883681964947814938040264563402159402128123809739225429097272467608549825941276703125134955046961987305237266333811228307499552116911476529647794167278785240306138851431222364721050224943229267514757673409378890646016909433985006885559024528660670149895683873954375607479922532553104335706905314401627353500474683336928290295039781831924861246520062220531117778471503048746672114645051349917890213585720489224687256190748091187637736380412550463057921704210766851383285643532377830115758735792293972765059378620462701647676419665920628215174127982741144141212660062597257688935798218116487259212136562125197272334503253060652043951922034992466035566961358929318795354937909810340135825607105315578115368038737969456822123076931528356032290746267278426836795696138556085845696893936953247110511541967863424050869443311799824380720357991463573432624470069069509212948389108733446334259863200952413193243829290382107985677278631558436895054723988872202332534435995859613394659208076438173279200568678412823746738286475734394511093231508764632365005146247085684946205460871017794130209284042164004165386863800982024603177840079680041354911675042270407469284442364320980295183146872131121290119227921467107714785992925287753412576665270984549883089059330818616378517930608124326670813398074890537899552406142095329594738051936342341413557695870722978026247426714237081163770455600777206415293908375003090122509485248686143065109170076765398264366958709561795122098929678726812102132806614689976891388596222587944210595810431952857675341586612298373362068404983167549853340592621985408868695896215574146391204980422734456424811073761880816178906788434630168928649171095406426395973717623100858414673631247879581794932101986217164840521061708328815226914562596829540522527613699926248606849843396578373448259452190139755606970118385301819307432674173386813736380402822743525561874350900558704040855444497672178602101765437118158384974898318460229714918757749907727994294625555467757627940071044530820249942038157435983620784715609775989726032166515118374797725611388805067806291305969924952214961262674673362409056768412666572985734727961662944719298800730998361405415091859943894205239263447068844766731250063495367529620426511390869912169500200488439775155092171121580647245869901377214070518828086191417762681696935161743013851736558147570277766557126698942843567559777033761243388843051192329227631843845390143605974605975186528154301000317069495190016011789632542607417880678655382979754521028940441491353065776737296663430937852168411526559450530868887658430211873966960723700268404132192149742248256120751536143210288826491815236580702594043061798438300149841266498622015049912345015198106108084173912977557264153081818851390828595263235100609576745928778923958525561326831710233146167629826680365089680122933790279186042262553695398967305490653332395208975581401214366845289503794083952101282215658775646049505407383790041809296952589663862508078313272354095344589599054582883095049277043736892602322623191718680285069221083739818306267268104912223090144652186159834858143531546611269587306240747128495026516442734225979660773539743999462960962459716421714783796070305810571253148676888177422642178002108934462416044451175298808373613900277945034584032746652711503029626966418251927056538511872710169523003068077118364196946725925723298528138525192833212899945965434014350415245476344961486914379833593082225615180014047484363852747920259353220934024008014542270367321788612280529304312494059362791116869021670321771326690795680890778434550585059620058074629492176660689185187002079356071166270194775095160273481055328147287691772164862584332232260930400966795579393820780747723015186650790664568477574239675617747126302092669348790744616045236341824553152851246172091537626550817018935882088170543171704840144712924567489958743171920192475728574862584437917915992910361075030090015021327793363614312355830744060080905742983492985844048118116882394297431591623184905659690879056807809032217172418214920606184471002175012798799328092674584883056315565886485951156121304846324084053996269194572455134411265423227243583648933261675296975548960030159085878989850571579488833415828823272526599916860664558713039080003525287838454541557568162794757182474712257556843139490026212076608639624331290552642351332241799126555013405687842420953022881969759350971503645249182481368108821139181050919100969720090890955955464852087434080116035412530402917935918807387780329585863436683181560857026802861726318637827868048828340882697756249907547820261408441759742184252097179709913650252314008456437305457880069954031882601333397627418773804094127806579216254691359546753923257853425786375961107429272069839843777957376089234620542324058012232261954940551381481885193321545601426782008885308204647652258600934221536913742145055336258148714068980756791711691512541618733016563837801291623406466615005147015405439786716214878684084324534275486850747645279751055976361895296007733089612862954177945848068275746583306013921640793027488340402154630228042940568274163041801247422622100451282525044343731313639467448985694867642389376149342166131642217953399666257397792082881130792018924554502015076206604040431841609239193450285899040988156763211015857014964279139318392237929386020538553527458128335748651487863910433334675802702491238812378685570014713475643387755833998492332928352926701942378260287963156770923047725998952647623137408002025466084753469182166378594869057878322324079541799100313582398984411048740148821407553046312772738525754217074136506618785772804349990034188301833668206867825667416287056489746263110965783577804773092883576023113571658298109570470022593830825541511916079458494798454433774632102460500958631645880892703773106469749293649094667005502698121908191025291718781449636566882800827549375843985934318447443376317716304977507438996497534017018592124797076537503989992648834153146483415455871563078789382157203697277060750934797450086180617409367185567784540098222431278538230783517007396403632694624390349569296061638951453638073240056648486113224720414299437775091541454627656616302892580291096955228837087748066819407656063828817559338828729629529915818661924791941155375149639868915932207192342261488889774621904495119625654930196926844177471724473673364242957309931806757590777592308082280699327459682105583668906002690244178356842968263561691594689030211351461339937940950594233137739807005273196856115952074055594678466457051678112496716616117097137643785788527662152894922881294033227215315478267501798037273385029664205709291364120165019797231073429499552123246468683630069408069585884740252110299407153088443738082716703818074699588923444905065264329491792344164995490274790079971404448452288680116602242292189950981713640117198464941530884577946286862639561357434344534594994858108701578811103408632555364887348293646503000876923368465289574100624106594653894306454236296182370453791865499238930390174539900439874636825817996886945708761271843085199955734979248889479189724693717863204599988189194856693908282072585053980558829543778547684417255978063758476345760848168077116517017954393458367482302690923168872833178295378497086295009071938114518410867401381286533572098891214499293750241783045708970666327285427435762856894809597330903325788110173220524756429096661409851347239827887405603558169787418165482894698928031611402394424349447391503961092540607128153289424533448255603733130295120307527641684880030471200408067945675942839135042616679852630181885248693618312870021922629072032104140387359864752993748757433037852380487356360086189134212037846312375115539042539630534357755922821826238032533900116281553929874352462672223410607403471334327931904290032666004852042574325889680768003406962809586219495040779599374160372446562346372309082105435118999352203958176333692934990964959143096921674065612553436815662270034321199883342237020339376128542398725582563239094481815397575991449910081877944097041814076235530251067396387734973013981982587370594304318886504926161728534612007984540569333219998691054994314684123736314213721394740563658473371937554407621734493722268238271792921740617195786319457432761986123016255457210231760799100020232265227482904205011622697115469439492004864036127724538214856825424119968265474829379704477215452398016110326991628710802080950622353146133017002048720738105072701509019525283297664466742611737581753123943836426679773882848906238293127387622225847863342049841221820554034745905725643391156103781932266723605428454476835438224120244709735946228492820931277235890116575091670178514940082342338769565241223761595789104797273246745475488299057389991619034989423962013722773325858513522299236819478211665758682373365049699640083185621668526718670997860796067827755382213876625046169086626074020410709353124982145133243015286252745716431056538965569961056582229575937480328513559641687272735024100129137219223694095405724177702391012007823085239763331476835872715742939559113544896244180397133631084327948633510085545936357942611285400132797902274748518873017970573722309488522136909260973677355628087476292479566499613909270707424452973152715103593828389010310375957978410250995463048410252892226225411850425369214398811908889625841807981264893442607585297448423731953533546311427109190726498784956944112216576690354109337968739824437586464345117959848609782279624386847471496036270852571734602896780190858156291930047575173965351940178934668021303465528536276175731384955488138666166844654301849461595902976592953668345948933765515967312471821813321345720785231395878788277451637378347982306850952036549449463670736823785011394756521371283925522484768033017327914493299791201458828444052013108972211837688496139874354112146076483014805567989490365069974864012595578893279049966649138912456948998271215628767212114991365786565935799146636382375144029481116553694756881332079550855909453473370360415351972503153652854762649707152206587984126822057311825280304890856368587828119527701542812300698719035448527265977682635879050827118931579024958608952791688958308494566576099316210158947896281868452080232878463701073992800371056655519608222823569677880059147032154835839828461107281931263430011767025549729045943745229887181622943665020171550445961888155551118321611823976933403413527650543547037682654546948580212334004191332250797618168301114790120301835291718292830387604811156006068692367570050453354521132220646903096956451371508508237210015329186731099789713746151287422296191449556233822954725202028642349354421876057172066270365817322860385866933999825470123428971659143083048442235645660404464959598567377159929900864267257239491910783448330123034590225254957894149390555797113855660613385797170409385995086661024614295006372283973885387009404655086587021885367341922601953030859029385332244785555637249410446524154258475160787172626566825734268298302809318854514458804920713258534591526952198210368554728189391475844978905351596522429081909597989467252145880525321414016710958782958266633281287162990131922192639697096138645746259621496718070356419059771875590382800952346524651267950047246707134830778489316749518685926040460506709005705535806308103960165270364761655363446837253822459264166164357955725386196440081600927981314111941627276154912193381165613037388764577431269173838624412410087757180435807266546666057261355332575278567904311747892989234181065505149792404842802467595940341828764950766281749792230301192286914975926794860384902357368233893417844004177139384481165584988089579875369021643868305233918826096902283292591144764174890314281014587796887291856696322684509371209481569399957448436995093556082877893758835831018348009309292184075389902681850464062899992220613967184206189454013257878021002907257086999985233012140733323195838424207084304134969743677523413461005271275393909375231662277519283421205193896468645835607277110844452385831495939721072866228876000332804949361577975627010759506399810265736767126491030939709469085290684243606488362405017489155601798740084674195063432146892272948358363640071157220832445237665005076775812466872947676529902732048870555474411046335895112797065744588079195678179942036517508506956080979192217750883267690703433983702561497045939373251304780823096342253241403524960523752066377512352096325598595651703594615675895295137103460355652041977726502178049859581397927293395560600494480062574136898383446992018018773056254985234509704094422977902054187056443422072958844757327511119276800243326513144030991264685336519718830710374003147437072572525958642993936814807517476073906302892394564496484565932349297917015047531921922486267260407595564810376596038335719385266535789595982585900114261120885968820428888073243226988439712632993181092559161818372460507514106686786013252900501026211431286820181900672352469567430647622022611703371566179538871830416692684845121147534418626539568489750390921421062799593927052743031979678229264263315311519634425431566603840753113386793042149577458778111226826825845493651843733163894150795322547663118417367558685321576197181716126774803970598503177774915861677759066949198953052204392872654856245139890414536261500176311414758813898757153288490784322996122820688211457150365669772957467846689879570780680917852473084571037133087053392047316306632951245714947758305446221802854206193667336767288592840544763269720034310834887675668299670344621980070180029158935071390169903805826723099655648607270422478846313497924617927286241280799717276863142517698278161276147373361129688934414385129587095931342896465437888396250689876937824458621018882766492696213181894721616852772694113852376722797883990383099673636855846211829181258197976857144642941647486736264845219811026926258995591368108721977361072833042821887283008911291409491829551771456380787727931161006937188786031137426955510901172090295416662059767646025836433079328134827734690841268239206259821529944905649559277546566142445313447953053423918687684318809935823807217033797119841458951541865388416519644639897516162261742073098988085581606347679158040410908949095730848421605524754432021214995787832866531132533745799590557888569666188733659604304220960581601591240520625289107236679383881720901509865274595698896256492477387980557368893861284735418456556354778482999606426008140623400360489725101631716988626220153277311903386822893105386828346009173462539569111551183002407847220864578358928267063347231394744892553959150191850489728368872702163798949677848414618589829091669329944359997305297030158037869101936874975078183391500214263363313403629696255128158386105537123704697607302162225777151859251331837693632656412362198691839993883465270282035180267220318946314925173990063282679492885397156502901079415803997552858978830054801814588412901619103765200865548674304606315613847557638200425449201414431015807864522646532902197664072444607533281372320960112956031884683885275553289295572821331383623393621705476699820998269554458005281062585539151073463162597047157979527371835561380688282836253237601847675980713243153809542756159799398555179129077555622043319690241191845651062447028944666609350919305654367526394349574314217575110214425539354604994288800033849276824232356543341443953578931819696924085897568888337805872618558734751572468987280785328294041510223976058379124304293235719450793963472569328926804494248324601697029222211872756461221254511127809573869784448563971351242176308332772566652015177972688720266020370957706377271504965473775075728878947581054266406692458445391432383881923142284433848386440471446956790254841248822958759945300812104280935686599657188321400859000380899711843268089908007717297125108298239826617406099292918623317474478129057875870778247754868301589844321681100025807416087816564597794365745986929572848570042172318936001386520850596945139992622968138358700678474232977294104153184232105999954189468978439907485883330513964984007828927976855035103122964595676708876832363590280947780719068590374790008658054422953248624299715532038893100430176764839831341162364462484699582592162663070298219964972285281685790442315654619545374819455644934874138089173859439193323031315098974748370688994081127677857023663863205698797467774763908966972980830559119858976204465720819562354211601876481761715003036864657913733901049909340045202107293519892670045679053926076144696841095593023983328236440001159003071724046953199670362693724114864946162800576602258863849116275756664164233021789200119140823579021518644659952478508669994512745497429798917898426947743974498796136800090326773897998981595123180300588660016177218040650166171266445596683503111089101775898153242858535945974323941583891515647804692124723798655908615666960419183173940761576794904637589592420096018298198645706543021810177729724810420854827990119248271699133009836477239364897921307594041041339803088375990661857888686676013199661641428926505244889386388232145775628190444107920948384520842256427543765206197862395175883736122417932538598519131461649402238714443369157869530370516163442775575711197840721733144911814398903812920210140941945713542069021376509913575729387565018385346063024884769334250359721161267265757267072393543607766939848366811757792766679751510692470297953656526036633490318678337549892361890216707111105591927351302635372979896226402190495500141668844647704083237121543373812620045821295635951475173438547064415253242340567114932659200617489052627940014478884746520002208810030992019505026928015561987187761351499508793494940214747249407920085212035477411057543673705104961408928192304458711915510270325495654802058211389150495623814566796250323109975677708356182391605271396662184931709828621493655538131970506943680740515846998911174297752656841279795302029541578981679549196550277625989608911564059147388705990157273806617115098144347819319900836069971606025467174187490955283047032135948136657944933718231331244956994071661901361308672812762216047854637701357677509809948779570064280771137744642824511052075017246541453684566732239946522578846959374760823088478352805777976776079008642595118068225354144906686266297527888801968653756821496852002909584097569955357636784658738541397589838331781307280612419630035637534107728216292706371261283193654907199043369897062936843238883180486931441568027450748732524488548675348729098422430770449171510261611108751463014165054674431648346647911226665640356846793192512499200395267152680387783956966565082953428871159756225913773421302440572462524122167472756934448422495409114575276298897204170987626689983857944571336346370966436870054975102354470797088302195843127489460705088177624167767076267021919706510624690923594601913550679506769171373226323061370215767018773945559599632175838014573339251579870536822616246910568643855247950283466706591554003655681580081435893050376360465004104090075816249196272847064699512525452058882726980922676009352144807415213246837593348572984462200425553519797959858884304761606054359332117882419835901259660233956875184122702484425775691724542858595513781703564098466173447726138551022337999571245033575308052998283395932544179062970250301957305513199378167146238493377831127021292533315976134417304192549151666803425310247193981198801272128671543313302250065121620226078633678866115714980668954529474886634150248965859467669289147475520453697328942577580351211035025721746011981664413429261965189805081200843793482597748679246801772896309757489973112620402423718398921914603130340337860567850104036390262975479754867731696347625824386927418161155277287080783342822470665411574818969688044828948368333688636649598420279129065483017898939806791327816901607911390019470783683818054294689745494279760097100638811771735296413512731398427778456776434253616277518625862106414109929262588136789322721647383559176586398079741995099775236289488022908615277581398383332761245182464306024300624824851044890611460482760282637752590327862918548104464199359627145493681445617211338666784331700315294357142570458577055182103378570894824103989567462995517682334325566383338177884767736158460024956793963150905388218338381363384890536418748096283491440321618337624479604230456068637481255404402671371893678330976910557610349996588238563582596721633120789221837385117732969051594167401844312756156183195784742467207150180688232055935292885134827770554639032522040244334563172078212970139589648903179962397063973410663735070869181002027386168477851772408624879666075438993779065752073714560619134522032815869762408313717713330858722152541484052949222097591121792658627762101517611813030594627061254138411853038916410368012245164434144920570086294433784563363597850525414930513314216541970227968452155868120556875773368536542291404108375260224907343842311301427764046420369311535888566797712278159484597619113973883083172601949086189975083648506197602044598165750404994095269247239927783690610379999397470047904835906771993046167295195158120983651941283790587036542820943792469312064780879650367297046416351765163548622019255220579244055932270579008074296482388875367294287974730635631475742324243276378451722904669224952520430243304962946436075909534109862704288962358705079398499302958020176066857819658714774367618301568092685175750703004452920600577761120778414350665357142594701281489485997450064286353070757784123564038037907171693320281666514638907311795770297769457099794611073925461407170450440015317980720636020473992756682441152503452332700133455988459956820083051605941813189722399597070296513177271588535856187882735849341308784490871520602640162061791646600425752678433056880611679459545316295227668055904405446610645817827035937949754198091268281242630918461123779229718167263824422315565086930319629273485092887596018787420722994689840245747366335665187945991003048732702497866761985066108750785145315206744213459485888476012499446719292748516413134905879152102473964361804197009531658086668033865233588393590915745766318911979896835973937258472397861701469491358102793887087676395637595076415556061871548413630785598703228561442578248545148793295366538987360952505119856155281607134191041890348730869809860664488389833172398307156301431825315569550281369698974770547460215319043459508049844750502074395988729294088088804369332440632007595559550160460348631071629860901400403404001727174509131223534743967300715321331526515919761081510622101993641935465853759381620229231041457614296660390628244690257144776449811251887651035088191436582402838894858831551032170193083300559689960101734805832381513873451759237696041530625146146434344457860779046325386358518223390634572536108542493547586603573583284770863656212342040756809516192353734258483100614086129287100757548012501548566554024169595223190418475532387218768031114394791003735038612591792648588569022667347696381385794874712589015767378442595660313312901107733535505357785182390943300920553740615332121697805540174275564441038472641666644256524814514519912595351873046736097533254845017729032457408374458944808889050712119249486574036045247183218486881761077315884809471886861043079570425426272518922410521309824909591425438776063327567694697293064881204115080883134851761651848318432978122271293406497223363112511826639948683744421974082297776957561169076084895352623692287025587320716194697739875991168557106998369660450666366390479731192250768301443380016209813757454869093334799684350831842846126971367920904983952286968256591311177272503230216851059975693967142479525614382626140080486270772068644222776821689380604970040033433875264058267716452190238991768648805393088722626520948964772591947072807322930067515071514143595852503035871903063172270817321864936022438758940905385113596816955798981680132382551361479282664333068084463695363423525925986165073865919982048020060842883440252978586807693382763634687902954826395683707901827490930357605480391014291089544362475316134954252285210445771465966243420840563455859831470830374665927322960274136630608128954387665632213039233437589698689373711733996790402854586600593012417020479376265610937605519641169714326072948322852931988052965290340022828822420205171048292634579853801439720015143351373355358884036402825679783839119704940921316439415930145718254499125260991758641641840821642692651889703039602179479751363056876420824524341430251232058454427941031187760050913324223077475631421295205962981768063635513180534004210015911625501268921528922570779550056152923783440590302434722615576181135362502652922641557597392805542216388861435101331850215204659273065922357651827789999128926786423177369552389362721753859111263970261575804646794790890354384648221625616228229503416110007666681410642285900101822597777104761575187446920112153610160572648241331473041337495446825770803803243574632750713254318270693025674330212084192886689998923746827930580043217033048285412343934944592580240505767549601205644949759841321508677962596582511313118903971622542748004446234125912683784934281815203862998165294553271013048584043234085166424710448729154548412306284415832120093698343657232252197091813253380704989574108290707901334413997160915861643337398631828559584250897073981984454408874243463865643367454145621591119621910955826812574766792408679514771020300926614345728596663444687992444636467657909895143632420477565305935954153814382050104856323658791067733767602848030401335038052106938838313530859559204467540289249523862184447933166694467401343429204413697630573646641885238161921995290001022983654943494158967650413588445125174026914445434995829449014221079194488921456696143591395586692729321772087140791481079598921681789524326912956278155855152801356031063605781848289464443625639041134179893114691403601221368180483617200327353481377222849539920149959967670494666835809257532695818148624806940865508818880348385929386241029874845332170425520156780865203947397829631673359312261852346638801527231821254365263101442455953925879609517407430278713887581973352655623734188263540073773772173854264883847239091259852727347782706922447813798648325546894149545267761770461905481506173256131316073088711708980436263356287229773898086749067018830952325234782241983476280056086501180692573075667241747796008167687041397318652086144228411520534843016761726953606656314628107793458297914141363410035111062725549736002763924746151406478258778823224507667913912482696614025090379781678610819299700644171942474741421402222799036431734904253381060141325957653518208273087349111344040812269886185469865706659945714629510388054698115496840163107610894671260477826686499114447278574681405037252774791594018929990566931687712880833248217783597508835014732449723858913886833241876550247106727421848608211282625818197235589945394692474869964306330475498842313635515229734814794443098818651161818374746584407318641207812363236150016101825581277249545458880264049026877428541087989480135906811898244891148991027922698857370176196250359595648849446877894604154495913320727994424532359045525281349329375084300420828192620997466621266531250538565386110148155818780181730049746804826744623372445090503209761870783101531196383197447727152782421856840718642078513604498902703678275393863130048301715271004557939427706572343383184903527977618839410267804528549777466149673943908560211376310500779588929428588182804810066057598937039557552814042004309098465970944790092184914499315178648572900939246679034392181272463348036244061839802531974558768288349736714889374611795197396963346146444814895469594375815998185002031826579003756527843116855500175484348928023689184908519184500072004616838570792263443796959844281597070868075241264288262624042406877025018995236396795817032296965894486839770290033079555147457272655448065876838415555214273804260975060505192160458261356037229817540247435464367820608910700905790258127207276854931369444783038362029574603138232569425488904106949785356671031313309330540598111956092374089280535589701078583021750200889169421297314194113936731790188569134033260867127941345172496343408174517922354362746443824757623803825944452414282025892813150591961112255432772935986942207445739958382355112703713622645224875423783144962548301804303650612674506090386329335205865712389265275681185405008397710037645003587501438434848215496422400540218684335594448082814660465846651934556068087294469134888908853754797562081557316132823742810127328718725355083060297938406097730743337164602119018340713070850767154661951446119183784181143608581867156808814410712827457595744450546169504183333060910839996306679435051729693899182099749354853607531176242885927807195110640485588104907716249646953955284296923061756383574802541342630542701742646609173721555024298689209101441071239931046193594182152709025863829050050698394869622904865486044372837636699944584211442728759312289999632180542868324354205559258532485675101291039457942571594969791260160490824369760658330398265094820853735168139285542658478985943698993576441392335293124614371556954208882100494383589569072743303222706504866692266107533563865628355025043570435664229511873825893780057294240071742905221000440014105222647370279250542906968007152303229817138702945986411094515885237488570029848229892814116827092370195093105008857954329580838356061829674783809566264698728023155339790753522076722170483778555822610976606947186914692497096425665307200224278405711383203324558486557464991231440153250348516699379530737966926876918874399917540563637877678458902390686708893552514804530032897811442088460089549908230629735931012937948255840805941308117185919430486369038015577679074496489265682033150858994869311859363348241597730451131265163545308809747723968200250231131538445536846245878998776281177962325272487663424912570362995691841859544726689770527507647552199453480735877451197356129766377365479231018312932232049279961539197613615296124903682172877210175168526413017171330761148581091744283051021259589084269359200149732780941927090323823830098218592919353560802368461868776942518819250360670401217919119365101392934059341500925435767458166944926514157673878630985862785090686550565235544989654074616775290236495405692249114543123804046679874073528198580037433390677309151011358972333197509657355601354064104138034768504522256974945042963714523204516440385573068556940483136278341833235050917031558118255938226575328060480408602459843106445721565294287425184085680826501824369313164885323392895882289357936305847004513486873100470422289900802851959280839225574992579887924337153874777286182192872763042908540445583504395937025710980804104054126365187614657283610232416906056748499658220116102349659056549698255100562389116956382578115220157242377903229218492264335531107258048706087179585189779707598384158884750029305629318460400497858213724414711263475357311281726478862655119299534244051219170424332696432262893393901313514420780179411111479290726284194012034538436574668321955779322419019613519254837419460039505779213777106804798536962696377870625153195827636524120186334477108278196231097674364806739819107250005500777907148624816767376523808112558641652116546938012617598844412831319047005639505614645315380073566536679189951704501099835706594951735302548357979871991362789701154223332622411218678689093889984858222347883910242966391155865434536296949453099537614489724645124589739528082273042529675270947267544850406421928065424517367117979794467856589775812476553773533953278838454359121177281669951327564926334139737254736704148776618936794390836281263190597749045415758484713062476301857335627851627705634289005722896174078237114697180548592043504165090434614278818963436426853135570446204557692039709362791579094083809965760505964516283609887494740059947185951906346510890576303300860478876713468522614241074893380388451967376203416557659532464582060251378051890306878591273832335929104165043093021960008907612645625661151966999311822825532500937577838405626407366236319613450225759832827654485334810784112800918756063001107244783325028663810559378216675355266994369041928359851170370238747681553769737456746212410626572106292058675404934398027472720604847492914208622605649199050050419176456545633445107495937039899569619897165281950819496726355968057988881647748629152054475614251775313215056661063578949606170708940472239902951709656730605479050336155965847085923703017083508217211365667246459403810013800932111575910631024786443533164858240308375067553417307407279007401663069166694608281161000919303905396395978639215754657263729869761453234854181923774232669373827141930136888958996851667541766574192895756374987396444783855409194964764902218653623164149074350404993446300407669502238986084110262988531145564619585962660297665509048610407344870168020343676273080177549022517991355026349474481563440561393038754912648133707335180286152551049712112780556991162011523585016775256263981026434973441378824396615624363702378208741747499217700111619723621946695285577930913055876564038827769820062034788462054156131670777032201105038390769866915043553465837704427131766610441938343619423165108753709216962491948928785834352107312588961873878244653836475603169751580874455781282903844612070831693197115576571406672267761449772760007520889697431551084151370881130991165963118577105953724336084166076626143065616817116212295057687870130548733456509451667278800399880323239190685974640049288623834514079474063451307295872797191213423881463440423991194216246494248782972041552158929097753661645497138740089019369675745301394240204871340952044694309068383142201797159184671645211158708290801495075002154054107411021822285652070826934957104603081126893711251086081606636688042289196066743999420777942735394467656620635644375768880963321134275959430710793077068080884451800254060557803667594653268078327032204073153847058519115839968410511624139380028393318412921050639984266300645293134952977324501022100173072835439295196622880981017397040788273903066713238588079427494655323969124240837623158203433010663825417295137408229232055890102953693191061549165191187298283945777873766393714544795051013865367112310160255966322816889571690399938672255797210776912343893844815054874751135699110842443583624159488585098303675325410884801203961683589026199417062372094484967170752782666047999770279943395972093086951638106666455917672275084735433951098606797002470484701571217279101916394389278894856784583118600869282652736396972709618974454554295008750674108044270456364817402536605579672856592266163587518322596339581601811906634532428139384136263869892412071500649553214382439710941943989965654665179590469571123094891143531242088857732900874536444093759138134001229664071825695649466888875906011804825987800986212861115541302334786696234595358830335745345029479963547368368330236116500627517432402551983800422723387280090613181589037853064014541355899761622735028785928231820642752703201962558022682513527203991499837379233500178239230753843199629760093873831204295664259042375773970042159351305671522825792204792623569806829018300973196741435137468339939458942418252558535437964586743105990009540592290703282987760957427411828398882970189670563563896791619367042100647248829672457718124914865181475178878946073299260884258615107003078123595756017009507267998297985274563059422370599641867191780997821994726624080325200467759169115047886611075015024514023185068778290093011579035680069518961764866021164290532892560054124360882366611442285404922041769733064249028469702191994597327132982458122522198138404741002037425114036140147917622309219873503859257307158775827720512802694968735600097984453075891961036098845926417913437637470633561509487270133052910532789835305055441841047348096410462449917593728821824092219477473626150172259564989599188364147616553289256325521416821892684668621411338245806039377203737818490953020409191490823183509210968784644124865929199778618093651273649879762315227121511040508139195427754209516681236603564895780146055562260811944776548484111389580841872030924936503867273607469538816150383264002540938771349365881441764197766421519293009127068646379817033222691527931662899048165281573438450499320854064585224323355592975545066314175122162834793910557573243459961748878650721169805135449112269096702751000604555773567140485627580487886108068823156532149232905653047772830172674233527262139846510246539261375393415538420583896190067107864114722788324733674818012640257119535073908995936947084021413440609755946505714320745575363004397659517957080453254750607364455830785074336289799192536807757951189680192229194237842493344559839477508862174987099542385859289477003818756239163219668288704259908408713583398807413591963861250991449257949104780811325718200748421682142295874764267490843769969574971506007289870508518955015378945689770643190374310728098713002728465476645006080141839482737782053447320656688128076216561498347985886069161362088850092518658930941786074770851132657371530581332418623512385555324078265843267990352503906840512747873505627114405551284660361465577500889014295047362145656625704488245508282956444102420494514240466102803581283689844356225145233038758493813545737427713279878334586468841983687872876755403647489094991325875632637623883913374500860467426821669753876002456340596229436121852009139356571792489634182483682208025023475253348483668011519704540119152413881945039241123871287115531306002402062790901682713227761986137799552983100574481501230501176608792268276015460204966797219252023850628834941971245022429826983872626936579382448948286836077830183306373201535810569049038057450326340227279790695709609866165622567549169645341267710103939570187207912439128658525700311172830944415559401713516849420135538946076990223166357856882986289401634061880419567562084615765517741991896069300022288148301156763486132563787460439292280207431558615703215572807357417303275867078045833660371753724679755583037431488659510598801580411895971600943767535580612163237850139794160140780174658734660606956249691579533071522874580057503724340452732863102615277401785072133835812350244786538077178667921526350659970670595073843174681615960717330746623828547114920318267707275765167966243458379755003363814278695457517432224598953947633781118947260024992905732063811132728207622918963435409200977468033200339107391300779796850558159866370221750542359453108633562039092802269742008655357779268372034373465477283905958819582492757393050616500158594477499442686178341922782830328594635116962436405011236702683702235606634571539663243004884028676352275344041795540965724910697905201321877546209067916328753136044329470882164633421764075000817519425938113701803640058874227081951698477569542967354565066004670926353811441810291330192508217596305189869513899072121836096310394708236150464708373674345021955292085316103260172249604692776511033070528603277665147445047138471672380102444328964481526109023798894440668234372301323333390337680820442415405545108644972902673775801015918803401293394715983993732600679759732751229474886377170023441519510184901353538270941608939942496173201967170537551190554561190273597453605335926344335785442489233013594172032059438926733973144994119056771636699988757808871566055728605844984031437856906936294830753928889769722295091091156042666381121646243662488167024633474046752869568162709878747727716308734723255585266768995510775057042098389396352829771039433168247917421034346956796563394113775149614621780572031344024667673558729242066575798255932940411924522774711135357168395705524105580055264224154863351643949426685359136418037806894529030126181164468626348101450968544085946264815496714386495235299424858056407829117222812750549538272428095124282262338462473397040731344743830137369302409486136113819245664995034139003216934972836555605083746467012970321717704148197315467404984638778312027770513480825431249321406547006311673617931887410532681328372345098247065101860110475571416554570335958807992675557460915114255056767703097699021210579100372238301392118972768285074756668503268699971271488351805569423937549735226296478060999093189564917020503384341572398417463173323997105303615476663757367300470106707498926927210187355872536968026230638823634428062613996739466061435720334623239434381820801382103242099100834530545561174838106353071779718127929146052871557081501372323490697361932384318919120647720219530156069561891171408644289626209065843379797584239518939693455745636502997961040909746523493834143089243933811714190539352681624094747695478034052559153638704480830096665163223366514308555104499775132000275106058646007388480517708637648989791279577243221886140748158470473010263527311980329527072918627435408811183659161060245384036906459022584205596022378162665602259644478335470799207086890697844460635918747224113974829381575666886369840861811883751309936979343826445204545040392908950549635261967434153003292042932170868794047222912514599652148962342086827486806735027924288350969764021643033982756660401796262060179312029994908781007383303187876904105949590734456033544326766182351849682096804525542630607550959478175098104179896104839031094855961636820148052697008776372529006012371067432390509207046028082647127007712072842210122622516061298656554691131268246476075551015849208162386739085038137264844487895257925923064932214036539461411309984150539241957483236965471350280754526131993806474906889036733438366765108359386545902568182318402340669713127775916471113540611928410495679851941097819895977373777932944657603476987202934451080959614525848822391762601320885959619188603305463240575836139392904486162463249898038627831153467033879873634001255577509863333493292223976469476723361223483371566367498122222703277838685713908415006789302193629561647417688973296496539704663735975185772414369116522421593085559145101808863473386256482249146197409920182419436054990103365631985876703456159214375528265478979811493116648131146302402931224906653089661719151658821212068689427400405220905743260262946479289852033818291363262421900368110454089300326777344773442779990323428837928305493520569501675101156839765531821349948404839128240494128938142227771941172529073390966819237178183346347547479451254173823341794942316575022172122085523017139055364020915972169044240638339201229887767096324873800142092684789608691945340298249100871089950506079418295166566179927530034290189925010477182939731561566104052477699303114817537441426671199963911432193296159015392304892993034701346993732057823336555606590960610811244943851843281118970934957921324823661628671007274591607913232045037403605221252964954289340926864234879705428484478233451819670847457240540364218019844094897571860927483867865971315217527210744817213453758318037673521153660162717191109917366161667499032554327383591076603960512683247996611335009212862243175572018573434791074081079476629220276524169502875698746743182046347315803234985172169562476485616848446377914767334891138233298408495349647759464471641247916912125593710043217223151889213254676299197496853031206019828576344123928784754743763244023794801626781834670400839828654019413498606744358317349302199918578232706936562463500325478175203887755207247811608537425721499143211011741515333258261364187687094093628236203514804048453780028154151610119762104223842586612818987543164286093806368547606504340223007235249990846722204100660004531549023649783879850279814066587627840617572876553490983977173955707011430086303730399741106199095604012022766968001253810680282322190356266096468121340873190151376741207235672684313465477497855532192789379028195626444668139631228689570854132076386380676571430461825344888770555495960548714410555022639140755140889840506259368311285435432524666376424009328120848161086783961509261970451343901025249559020541030216151301019094570513299299553886852828070386008950706071937399908665843448737287061268965577381342369230314627844669037767508920999089433006650448213995664562424793820182910039720667775515434120721708346854089261399316734656621363780720408656054979853889239399198034197926521807677441433551574397659669626035301501446594173076203335788732185507653370704419009185267104173754057031063803225934295928958024817890869512973355227426512629360815081502089424395869873235761364578619688148874098836581083626577651247059277099328818294360370484908891524755099301965498929636240259397369642832424905618293810340909670114795985553238792678839848267476636483371521867840113217080831778223067731115460330004776778645624835938864749178107338069846144940752495113082216390673838837942955388214223706623762835075025034982885458236959687049791580312033378442134170689318879512583004899393827987025042485210060318540223079802379663120837990324989646752339662326518424297986046662184612490198375354645159750133369766857928524564998158319259250286735471866811264853194739016506098291324004954978469258052578842279631524097286725343108751618561090555299287019952128420203322217523166975453803709402047037181647026923769298912045891117561552455295812581445560539113556891670399766668883610050051876965449530908727164014282166284293133230674662801525911794668399099910524991359332412227415549509864810396324203904831166907232522520582131421702664013035229454697352906163852296390322352932925426942368831500291502516112999894479227743151414118134871720127628139000887618969146198217827481299374741539089904600444469671452584271213480163164875979237336870868542550741652942985273556296080171946577237643039325915250040840047318750550284758663416859089124184848993212436200884622625078607878641543021728601271375219017467981553130049233244232081497038165106836451652851212941851900736503228204992675879760815052567803118259114902328600894050171548583048330005978495970177466891326217323083114131470151460199611757374806349789691240767335395160859181046808612805110654085880916928055112247455532139892375462819894281230821698043748548044546580865957146294088879833967027063301027923321534493551120078028124060910920992404450700215730206280307774015852654812889395066669923525454109333179027485173818572443528740704187988128350703059632996118616300408358808854032868174413860247643071910045550877946499645378767477442803573129861177658389040375645024121148491892934608403526625780504439250981431319016671287826092753624953668980956607224753146015311025860994120273875646576942446703973025350695184501344066232932465628619629458579246544378713738033935745977499577866055233333324940470679773844264902035473462837759984963069580290265341641301568455192398901339558718161182964547574935204905153160614594967950376234717387891816625916686578365969046556084603769114292111243909953529749195085059010010993833534133273371243792450647515860517631142485611906821388126197109453566007566721819115145903133452992942966182937589124212570727994688757641490080862000327797081470192243659182474884810035517130374496797793011330577344480505958346187272084595458403460532448805481924097534369575100475907374388111329848098574477660505126223720586944147345740342375156036186586931900404817058364716148538663666111490258740306639382390830314123249012670389292648994434610042278965656719412059555028816385793265296017993956008882900172772839683481789342975788879130884222117383573198846236996426573874920184168702382677151365282417243345167814108079028716780844221788657484404450403263976972992490767987617647848799089147544866582349353946657601573520404893284690528531681584116032100621285994197215427295707981732826632737267478261310856430548305337573663211964292799919171425238951258405569213240130524671155181912784075268243005394841181517959106818761249713359582103811656340035376254525894548585263435681096667663503878718188511409853519036160404452038503824584798801427795370192609470560509291651635894878513752931849770255595627208731147006583111987782805437995982593462457164266214988391339781323983812068841714569783255419314089244396112585257307489128295352737487945259759096083283248694876913052560885304164266312545560596197775576465604951823729611963499578001749002666500365063573162333664337226536654783732789053461172457265776042583202779666398817433191811343912949297895949801838972450920629785657621857420856781117690364711389149325228717098887569874142613198623262314310395836044593815629392295024126094657260909407224137720925525727869292741159605385133762399340782728890234814398381669036430950538315825658971599270594589525298030707320998594740818349544340687925221585650914307047364984935080337536553087585024685663950468069277526938910171773983728822601809826309184907933208561630108678784090328395673279993967325301039808195969011952052027161438080644678736335085202193167005188046668177834041194816228440051576448310228081737778181236152524865963938052583216882110401172964664277336115190861087009454082997328024487349121321897533735735096111113811664299902508131992733727585019632502475112106897762194939566047807022730881808192553291735009693834507298730127195335864353470415296572014134868596349354567421501663482805751743706902693876956038110277812509098418136053861071019145846944669427395506550290168638208479069062765997841212756824868397663288621978828258584589942404513819831117840097641936223648177050757872433715363033452662634885788900450684728887857073386300739212074937199079448572741177877576642310987008038786300842802810141394426342030930909405842978234722972893273217346430791126571248504063122481132250902643496002605389876444529542994409798316873701869772439860903353836107828544017117665353818201465374081388719991273379350746603779459717373557400057522564824985803162821697029440916199024473520845376630489396558385246761920249387652344081400304253771269748967369373692331384483981669569351664193414713200509608425608959647442737937921588485581988312106135575151182302749915108538623212040606307726880581035372964973868290267021033382089818177031221221896512555249233530711058559911236542636746938259491026759756013724449603023659003460423712473644137544640993294009675945592875878454398643461687664938587927364713323849896600528304106082737538843474509628910670853274729252904780923720453363159335346136084669277524829856978720975135890851944760516743552026614857602670097877406461062002899506757094091466704857288560706533126739656402617677730511535448631951036402353158062134591431252069635662104872966996691840497799526268371939130520602094853370249568908159861355899949281647004705188504807498289598200544269485742597233971047242134876403781393351771005173679550958135095811048371249048791801478891377087004373649565314333862530435408768521364553175998036968523289218202927986312690398319863342691556722154025106854206855519415052053173529170644762217592695804629378674502570543175271745681617677195813436916335074646719790173451535339111395086124969810204581598984035178307716060282651198228693868009843788050841669547577354707983528796264739646503419691063616783976471693051252210172444815473020522791582607667646724232162683475048789891498243882067006847201209991551606258755871327060098616253272953903708041577536166515982343890217967620497301290939242767762235209626743600308379782471574941130672416309994633871720476540134549331605287794477791972948845637015570841217395731501497034652934633368882111325742818521651833478046646940388421410194671313319615185264388441483111157121400211406797495345619859299969282876018697662593471253698355437597954159536024615797479241727511530003241447959274071178361644027034038144023242131864454208707651611058303127412174834215916048075423811779712459185908926789908567861484494689788911400175244147105006091582258463684792999415441532850833002480841898451993650159155397443730790684037424685349422350034910593767285098385010005682240784060238809632585339439867879003105631919611252917455635334824481877083412607815923875328867798128898782577853264096263205181301163325950081907742271745016816647073755532234397368297240497411108363997557903349886496371793208864380609812326701311957130107542273010668052153122266923129401106458145359687529191680299175937159643067481968961027182474305109656263471554681543913794596540713122634210003391176171105531107767649435760071982996194304608996418088668279846736204787626719762532928156992637804129476270239834701970005787336242565089997056135832337170680805721842743284787027807778535023854133202997744440395099903916895060160395471540485636249609406200467459710830089365616849287419270344919148585552234190306267769822103478501412785871082259851880355012491595307641691371259683726841460960926079908252609588332171007197083613105196359436877366233262522745916623191956915621543032902636972954900342118640256188741154391641182018859386628712885994990761937515691630033210419699673293517017999988295691816615713821978624387337038039136096023654598998227858968116856736923531844666408451058244587683132147072182202098473836921475838434941423148756231570643793035142603086730042615880849766680107832739042381540918835234479844125483731109715055307002813905303183349035129589933165648798222826230801451771809924245761306714732461247371938590710678450398408539192296374912293369662007274665886714884746261174149724679993444580509658997903988663135451268303470610409079007151990001329102146186331824884865971922292103679449080932918469347174999607232886326054067546778421935480276447152680744202793480844489246516929672808387237761298611102755503741365305098546295132036877123743063005856668496424120159953767689359811130339551398767410047422384853817189493525866979412223648695403902977042763246428607446256586470086948476214042151073528153910294246043109582689127163525752862623607188725008746282920924946643574907979145609289821093907822108502676160616583921429104236364193133832886636344230015715292250074489687727701833997660191923218720889662167485035398936913980408569997300635001775842798992932490045930290631202815177996738633567356552460745538464199625975431344140271036592119994477539139958505263443482376516663900287970286975362511177152872486880062911901539181235837989451525674614577845045022758189188853161721074419863814202842191443302483469881929031483886310342338174882797361756583899959895593390388034219831699860642955143298532621900653113886289503495461232574447299464095914946092263982498905733888192295288587945431767224360433762126615638070417145206567431947895063393939195909998030311601225724271613439906778840452070416938257177653978481551117691698139425466088944807687126342783138089769807883191259470337000218965912929308950583030823097007620205280651194465759492796144935711096265046224721480635057755167563848983275224667567165146697631565818870705987849769926337503402383206742666985056147081688983883101909509299444310380367889911924744888215377164174535277510694178788515093143796283936491135073524478366241965465766883628758608958876858095446249518953077528360287016945135630951359341896194091556410588189824332280116696105936471980582758664780204425447730625609692021215270201506102003201509526956070358023509299267291625372196384251887257980773572311147758869488872427453956653837928482966614700233355858883656775133803732213983222833005636771876616771025599539634197791175667932332499897023305567809583385319251446550235047976871848773532029315260928640555020514894143674749896067203579616930465765632629545769960804633392451435716399609182693105510386056510886829343178983353427935217566507966035448840547544776105129239961892478037148404656066283023750428657742797211781650176065184988262378099918616821927450517828912962952701680975246387476293153022668189698249265740502235214766038618653532126562339237014193960501670905972252734603222919589116756408077588253788851004002031679675224537905813369476335550681536677052097793393160682242385103697269608470868292814069828535999895788285245300532076222796746305002379266036645955598318315873033360105250054627660876733711391891018271512579542552210741371666262762076531126383220021923232521960506360043242113140174712817720534199578101756579316150982874146459731603398366514866456718240662658795703120053987612791809725602953817405225446111937170122801349932688936487246179072663103788914930035378372769508537212684987468642580450307130372368606367853667060679447617335941054539970601588325990211974612662584882866336251451016341353382472346858713986414870657944184313347737628120163992437004061836155768338032887467943596227834552254099499540629759861244795377971113546114518801269260565353166115208174534232600827405949046177965737620596283842976007808785412819901265563161751709871869513893592644298231409870481215027381207811220904328738141158795954123999623083589945229431206909400674233646990944913070731798486480223954870552972161117539533594963327998820715054420276342503329071902944172180545105695687133602471649560938369237622845148673017692724795658600069514715510711838522203317724740331076526438014951438974705827645948288416376778659161554658310518020855545173604545669748108905212664808952603613006817752425868852396452726565231233248694546043929025134715613938142353790878254211202071250217917221205962821311155114624590316927700752951646690312675943694513525947405009525580237581542685922153465657140397310332136841501748166398861641574589121903443084055909204849944179537608935346626902594635394528826277292510465194688895317530198179019217183167696117950690384227415897242935642091852158298877517433473592852811083565113022066864380339140145534252619086365378292796381694320086731459282852647831648953423455004188802896501155585605591159057722967132433471281306761590351122400890687583477293607416909512012675253532674860958321352445349135709433411871526844801170641370834980048814669548102738700379854496915579397416305576715066701846332741608584931489918738651889533951297075872482769227007690616132159360132317584185151232675084064103413327304315537707373278061935400551138429009367331210811893838210452056753752126304684625715730332259596736957599484171121322524137354548934383389103379036993119473491205738475076842842662089585723230343609507308748279481523761747852742522438266537040609184409144360894672229645854939248075174448193693653883281123457824594951508166133989374425217597619145570537598812042415391805007805213938257250334496294374012321138352536488635379848962247356095976484086181229177357707197506900647575812655922258742403407582653269997073237072194083462418929511329999699131672648126311932651188099381290102587662348266679559707116072459316017574378023459738651181493086080462978622487381333379534864903645519377099589482104109230600244209128580348749349883051162239328454765358898148276896009837131781142806555144375812031209990845696729262030010760678939665719989559897797706709490490931494312804496473863379579052955333864546392691601612034941161852239467137028312737564686694535133081306244207253180611534610167447184940501647969714621274035547504911988561327120390009925658666565523555614442965950225383771458309717197654850523888120662296198623363615856646444653408354494648819772373689971951758040160296644762188090360032475037654071068027525759246680901336516588531300383114369203683065069255769821019755865844012798913189894753246896644306719112708310503416920715317022879934660488335821094749002367820314260644801597364642313307134599663949455854513867066354169829885320047108888689158830959895188120444070457151334037932552525145609845597289942240580916910421348251381321745974715492012547325582268136107902895253934424207402913769837201467134598505538496712804822955685238569060717710399514605818196656156670956803607947903675958701843581633234899383181861279468687467722650383125632099736783374172307039129681450378315537748173269680001209575892011287048282782295027532211895990441704338815383937929792763900539121868422193890772953861048200305696208178021977535717174096835694815979093624575039472483093009477832329009325607857366506886982592040415469417933603884593928898402004042162414405217373896999613061039179034890327025050403008508941922264413171373039940592681294947739564616620838712680055385093579892280640002854648623475029806043718150410574399242617009792952043757302773144565090458560352719864105816745187318685955037559415586187952134931514134035873220416577662419038920312146891253643871077334288580754540140002227226365488999347655353581488532564543481346065143736493794282271411999938819491956734961298082766910211558622697684821765374133014126509655609177165329695218167429549416067308287570814313378366375345545136873810105064349637432475123489304222918838944271846192107055034772650980880676741866444977105573268016643892553094539393300817444701442884360761792306378711035382060423952066786185607114835884566940951874748107728998815175975013753594265100964030811465651225444492365280120680056542842012685561216912722595107804976362786518761948183235089788858356724762298064265938447861725906862378887395114711557224883129497872739490242698265023099725939106920380199937234595902034401044442776408774819821939688465560359159370350915213588326198639090644709686708322848054001973682400136741514568448314792511498124058112723872672077875028243484542785544851554865579266867976013710847297676880444800624392386702339877921382602036054352612379705104661174825348799928927757120403588623366914361708525826273158247262063688035598066487785559338114215488080118630203904158768831860954616249524613154571964285452109886857538942370556182056416279640473038333937071482262352006674378153756873504373037645296572743271104638128464921023963854918669876222329927506540893822555380621660525281121888925211280364363120586244875487677687045621422109531626934603033396762713780528983039567716417336071334834112934652494569159079302570499990363053953338948847573334510885771694424068010448726341073025054734566535146991786516254325066204186679111254906780622968517497323579624500454766970925399127650636715059558136562458222415481851574634626425605734225328134416724522125944160705127864017086039868918732266252337957403979190745349591745550690264697415701304755718633007684179377500038101441001992145086060196104819622533667248779320027917918492708828600649751770713418935805569437719251103424965373402061072813927899261916696961261525323641344140195292449050348167174718224750280007504420179724658409849315694066574361502713443034025169338006362936599517163588614621700781311797161920469244244496114414762992273840332472843791565273555705783382662224470521442769104738680172230002500623646587066707034301305947432270227386532985502629127588969891163111377874822582660038249447697686678596398392543948312859866349975149202947774562169391527492208314593316341624767319563295221657775682239046496081243294297609479265370558123646194428514684281253378349589528973930982748863909212227227557150385566990319680075741604856100900329143236182852461606464582883794040548016679085662034325605609592945802517066856032711310782526356918458140352520354325951797963732532522429912869417807098489126390253516148564190876602067974678761098107713206129382280861620312206457847393064327498956981542454312612847923073154207950716222019870683341004988075885452712997768800646858562291170664179872298181783833173625506395157305955208629139971716389033938079471554943788188127169987260810806172812835367467889289885505200265166356545972796709968708908420424829264612664858151698978489402896707805727577349008874803726261386163881319366905553220542842811936645639267330637854901635041040640119134550852620332237039182810522326899728961618148509792755929412326556383895884825959757049523422259462724787709268271734112911973746429517381955419768451323186421544121890886123939703956675900671203135839310799172853369908967692338255556815475386329422670136139544988191691767438090422794318439016574680745854602505657129179935653056428226243664324334641259647671063226190443540239569953044424218795452121469305568018304798329200985728813673742841225796371935095443679584465765242746195746367460061037798904450710928263764362870051026890471298123935736521873660839059536352404856008910906206015324307481531981054875429749704840424388403386144689750305727843567038304236633193327087909438745069805594864953470806273386412866608109210043033621784520052057118771260972799859735942917929822589106281273628122290340781461840531762635186043944512574836364603883348286297728803831056135848506024999703800444825771315569490619439565774669334328973088542897304777211482335506203864764941660737238599588457480229470866003809036055543967904552792562267860323771368603945163596845293383611923706566801951520037245849959048030078444135967897012630825048459791269738392989840667102326351247738438409517785372262496456429706481966439489901206157430921068275089441454318808025644024134729584858101285505677437322501181681503183776828700215812254834905097960068619200235310636737498034361620815917032201678240581024569890867596604943835416779915193782679176561006426288444779426668739646116883868832855596179327884193640171625314468963228422036250657321234230237731464550424169908436973562557840490204999929560573631366017444593789328385122408272492583236978614026752614600699478055818476053757950407264687391617942962184159688668022937105842057332693086375483135139540663531338403454108084592657451240554650604677797412173896596401015339363678550700052976216463668053777315643510751436667180766928736766140002841956684927267961018754746976573776351109995290568984348856167784511475589372066328173472928631755364340379932116342236659857988921246935109020672792628269640361903784903966261830189604356010348879667084671740116499761389728764765526411805381689760379491917635827149522892911041333240560119274018326374180617073770198342512698165223334905151903342319228975215835194641297650086531565237476968920871248390766469118119573203078137423495871084775586987212915650945053315277071812182952267687493688539855699575658182831741398841712823687435336202623289668348339790571838356002928955057409230883511776901317548276187021063745461823325660651735536468221017416192893336601759724618620869709038015336418151400426150488601503595978767458806818005499507641160090388874863883742589055766046756429599167689537257004572394808169632814053631588344788761535913394504019780000272177430207148291967059593298659761977454261566688411659196852221854116849055938616836311829515180724878166942687270359108518313335759869534332280077612957939476726503749983574932259112348488930567388047485973438739446707075382859532600562369023160880058611070094839943797877868473516592293926454426071735812017694370272380607843951486450400443233297311864137676073996801158442861372387607147889260793549601311779692328658478892913171855443474371658403648141871508340852339480308113405528337395385977452999949712998528594998150346934022283467831717761252357467892036779096367961647770889399292623829659442475315426737439708225067708343107861844272883071718512019526097354827192084245364549857116233501836059965159907798415002942426731579167606302228835589678415574993626128687166365060727093806753743774132559646505517066905840222576981054795723451186463694750798019894411123406519262638381794442690785149616399392446308871309590809573954464649016460039881452345738117051057438292691216537667079731100046996573111320368265218429876854348869172723401525232373373012330592427561148528193095493270911276385287437829940461388677167488501564344877630293750509445212212839680841150065674555038489682518449552055613926715048826384249021534461816524745989539362209809039862460416098480610321040461038884940863457602888096219328537513100509747964530141681711030192847283261732655472403106585830123881898759847705619143758208186767292807924748190279413443775047032704244207890369030895995283226113483032148862085487715408689029418929865097845214052587778537557809550375667339720549203638639706856108830817248058712218367874300912446850891761254484713918427827395152780634197951023559903627069741649712291571273856566711781168563932491621803717374473666109343943602598608809107161666901951309195468607617268558989506140891501023494391195704846476098588572535307300428849694233922862664183979403887537939915658956408115013150225831279960791857924118769443935877197794178544996208438480759925584130889664458401577311228820106425123362838915502895334839357921666481041179245324664812678369826500987131571519448014635700095713301918532187812041347943975053153027650192985224391816214482072323446200080428161443811013106934880339723362271807910864538674386845273017069721150701346341909378092284094439724588645162782620568039452905001644503549822151735492172960558569058616719355053922913896826230572891958266744120855238863293254429053510207545111873593434975197100045766582793498586126323574060702984522791970479233439786746313950182143953325731777400982438030311710595246366207355115563523752671618121552451290866278805996371067947228208355750862342736410236173827701309391754283761227812261370201746075662317742212039764111977664098332915358946408126687378025774319401252233541066412734616817414007500464825396967765699633567435438172485135544721722768564970701805719475218706149807488817128318701591810424748744114998413999323158023134299986751509074089261423342640514233739706619779987684070491903814656402002502438077617015849489333282186942115537686794942789599267728775088807896219702121779401618605341625363431663829351498640032307083544373281051572155475693543183417596412008622417957889877964301234044230870664127345220429906996828144548559482817781389362594253906642840574643117510286746523478598566239981594949019473116266031916079216437323834723977259390310893000738812217637571995269485298858798658777912887023235583012768904018949575300228852254877771306156869050206763459380775314264565393271814585315703778163298572225380950489152993053762020511747325809864920372420816941844238823548200223099234596102214785587704587474150463005481663567732926254340805614453075817267039267072082748507710496331991182453854763732536564691031063853093055478748574417216516804464404465701618622319033864273447058482118589181128294627687495904998403573293594851593017260733928436994156207890058540302707161673044437717710668308697414464452935371308545127019051863171768566531282226155785301766698878494991770350236364079259457495289132017057560592727510845683232221840490983102114086939052715963557452805902003851253871611371034056185073882106049925624729571098313852810899776633786885980408843053723202331588084609363596291568771817098253461198539825797509784213601779730168206425447884773335332340946355962397699223875082887111118043056110968634773806635508882879784592392366413562800528250132476053536794295878443201498857288962544000774910898343002558575681419602794646382860850244951321714320835255466654837906467331158921454193984371112576620336290029229748055850330449841152362769291976506685363742807154933627706143462646210420618130809991061277041911610644647244787218617727553377839149236202917668042323100588708424913255144673681623802371343225929434409026972612067779571349104347239672940514067386140214968144495347447490247672464531856895567722259239812148852650202870015720591425995319247043324489015032706784385814067746635725781216246984167464584711498352219473593135023390085487356406949798677869656131484845317454518234251692757704567321465155171497950711448205989804900374813909861577143949978818972056848323958156849656545252186439785269187584181884309513799082414091561281467261285137541149442491052244952555131824951262135071009262627242002185373066401096932343637459260820517115802961722039839033534707324895696448238623268024885731867840531134617056914275669499094667757443364046152545061962186765022475486437418062809865544485076714271690038431403645554020915033683027732697828418463006880419149658013167775850984785327178675549859701496215379648360138837610922113028875076636720594330710212293071402883057866004157522369963755442344002501733720332936368643250056662044027860396783498003661642910369959752162237083993185254811827356347525641151152366704969076170443587510672032889566259365630145953058745114045914571015931796617595167092533557397569293057698844301794775086608272208479419033802236220462161146289432758009595870434001646393602817889380761427257301426290511263649667766774794122330626678814502833493616641092211658692300879202628653699731560188719933298433266850506292343525426743989829698457529959059738342627406744853900161040145689805766903773339737482568146011800484690900979157265029748033191443821914571727468403925340652972367660139605730946936927742820684746919747690208457948207344277901071949999301253806421223042693515464744040034072324407177629866510485511619096124393620613796301966406939673228882327681419053172302955332162808732315841060626297863789901542683786547642868454218020723506910637906111091848373324149997486678645748304279392528356782885083299784143539503973504182009875331761372491467902298746171316617001280374094314708410570192730823929451272448515944251983870532150781425116532443110267192530329388901065831280826419550420639174526750045784642918641597047018998758732382315275508315399317592227765294468775154769093275836380474920852570597249511384265724082867837972239474476163854345883020148461540993077500258566548360085824247150213573303765640416532077265985105840181249560405323706842972241438941309391930228193975146663773616717215975803023232349288564915759142467685365838159755450240743425716758043941948230097757384194729101322442222475355900186700520338712056037405750745678457379856231418338866083463387496277115446146118359451320764123196137023745688029096116368772162996625411505150088423656365200407969571701540165516306925760444336269458770482034274736409119835605359126589122385616664584865470788970151575026263518550496032607709005247548953814738494752302790855955757869662771687520542132736303868448593158919684348107788786668122534525387691581849107953764911287079988686395394483593888818277138084763135803342455668995660349089114151198247732798786654492140839040883859737229945092788100450880522714233399112578196351283116039688175192525830193681671815261056278802361667298258587869386114864484251228092195973811844138004414680131131236719629877679214482500257713386399268384779509135516405329034839525020774463620383991802801220177587662015283468291715795832730633153804326391067783309798366138037678029224880862723905322283644771290871145402036796579154948425026265374266533295679159077708887359003969432461912314490003449139405028784349040625393686700025137767622291165308836752592754937227842561121428114718622741326108514159385541894921857532410206448925898080472205433257750048316971564382483332589220617048476110339689795247591356586533608831879226948630079489481692357433725920010267330144284281068671533480849173438276307838294965596786019800298343644980186188318456919458232857472642184594161683120027115417703256859491686752143488483885940280625213366726145274672140864555378138051795356403331133090819886292734115023753451502125695233107847764908951167674859832998549871226380248218714780867430497745968397372638691081420393454919976015708407657853082868010070973234414066266719242052306539359199798901402504653334773961681347087291284198931754825064430353239769270416837266579668522483343056272837997953575802111344989043706948704801907894918112509946370652899243601877039560697080224546103878867384794018439497906426238356088499368446559127370612192253064537245585232719845112822742910664561932661121155894536782290640250456863868808269269570857923699932512977064382818357608107909394760915660914670314857086297698623156732410322129234378006358771252607708531037513001093841890572954260002239939224057230794026072643893735074628974408160292417983106720406627935040517689804023950169039756174106852742178258178437533086155960426019987201820801686829993942724032436479541578757855347858787013042181798594314585369774842888801259382457982797478194206055024217859608271273290046601611072862506322795081269089115877220018904414252377434318866387098373023729031514297743844671781646394676679446306028632860328555859295390508346642426885980162994492700285869382942379603262074046124470466827646710091751938404748662410993887208547234246955985973837591940279368974209532628512258731837395815527782964599238799514580349324033345335225832430932937994822573303663925991054146686903585117236238932823630082575854949273856034995048418454834445234409395299172949780320914440622965645363087529491535320909680018357745782361356197959772898408749155807397923975089947135929029789127003260664965649299953547745150313180228245843497660727772470276996383913309360148116966732625741634383681654469624780647527800627615953748279182898601618583072046114715411458326695700080596884187994546451223911971548025288488131340891919385852638572114736157033819687258710837125477227961115483836622225579870516938135205951551276825761430519054948072090608518683607159319315886687619900570870304044885210713685434371925314168843509734063880303686012467189275681860001250845427172286204990099545066843550390694621511063933482769853088078917826478947383666006837215742879590339341418673809788334771894619352668329090255665616631395426133884446808923349377604640720189622049579597709262005119512774654846448813484132402141930144252592737441622808943324545943013615439457488163915123416589705261629307993452920899936825887631384850598946862879656139796623505509311747753653614512813824206967079918196679297985440013156174889605340651967339096465457483410593267136410960887701273792049089700927160334869055718826970255561705614317481737409147416848047350658067680862288545995244992906117566810506707375745224502704118469143478900666118585734377132425170148439562806478363179886438117625741142518558411959443441851873578742608079516041771708225519711798174022419441249527709749639110263576608035881207291145618758684520848908422868173900949654598836526268064044504564595424924855856418416753469573595676297791463200845130899759020689332295766152553685196879989639717788093897888750562294327459541007407409009775791540479498637234289575482516627672890800060256601060626576110381664928097717246998196803224114213499157704704812938872072581620497312163006122484314926797908187635946811835930030591567054199047579485949801486444615570452960691279803157245634061030654581631452940926460833348185898272864878357386917794605841845087547423301410182978581247443408509119295150431245757462830501212816095143189684411614023816371152146096088564508310169280900628771411503410923966008425193643288297095604014241872191768003504863141359326007546098980291307891275293257919048508353763297316771441948270531816657128720448455261089989645534819484114065869367391079127388574122131737144788466741788749135038177625473692173808489363092899552170928325042965664183677944619240603149696947212790365867456697238545355615545179769628004327548732331991903957013775809191690639032415059068318511407897614498727601197433784171014831492255403583113537433476335467788467474998790582045105539964011004741466227464963267069073258106539227888553179047105044858162858421565908349374386327468688930198146279677637949039810620980344131541604537782676521791097531969106629663466745656257153762494253870835017900914492079760146022355942836268226426561949719264725321716467711912152436936227740575433070779399973001166482116412788704555505745637182607002270145320308136594091238669032164573390364934153466672090351375335897625934336812303432993353886035892427044125609327097900228922344643799076015542653050960565472852443459034367512399309818326090003391363965297104080788069686059086336624693779755317122516220939089564546592195727789347388043632986024591774980648302797467257418621101505780326405843456405107285179019747210723466157720409560776108604817673367994732382457740357834832120668643866442359879823042264897914883355737785223124980018904045688597924180083957803065548748173232237686743023370359523224867923250835751207471284941680316772704180285990269736560871100564734350873382764469936442673276795571600212010265445051418030292085296376184226431595522225780709264355628600476270670263411141326384851256009115079165741515534517917229293078471677795964913950777248000193979504459359178830367652080084253484502138386477690337415135165747658414817047569316416874525113950197774524550223120510221470903875898226779664435516263970506499707365790740087265405829797502863028926229613619866090882914941502979953778070773433895734825984995571229975917239476655444981707380099454508844113163902636424516125411510180275051585461830729192602811540079581077929678119722904769408072969456074926836399681788460946082093437361245396336037187997870327372072520240130842376480360639888277125586478872587644758492410121094742432841280790445175609258745981183224870957621326924115316671195775188292573694616867043696075212922210768848589361394022946978167684709830857491760878454626059681410815989241679253755285886997296755988810395032803016848899728529663557026681668084200789798723208011912692588172785685446986094674371550731014174894699174273891166798343252705871364659095716160352877735892264416290339713307692368848061585525041952159467074002186495216239592640401169606148953789763368921341570509457177379790403468359628643857281345521735151302572894463778786894741893513711979629015230449158519842505517704702080862070958210366905584680857543305671356187913394918432733271324810402992343849393033647927979396509730846131169863559016573845983229596209825922221962452650741460167607625340569351905319815388820331987054363063278333660082252016705054961078259302792548772171210769114308857101023274740914333679824690390328260851810405207339270408084380490172932661213050944663851840844130342704730954387045799102534989400868407464425994155363740756427555322794521624513580582048573641188212872819636562978955825542704981147416891341470352168474885222077598998450982392146851862535268881344511651907733449492467011472890247325434019944512371363981500242444639190562944990130265411890690257515376058251080584003451948223992389116674076378433761550578648244223040560757290438258168045699410275522771127897606739200472888090971090428115156411741632825222411479553390870086121731307515168856439140480614685001287008718596771177190276536602828265893792075052383494975928088330299800152601013240315036308672142181936431520301755989219371530232878002494495313264593841842976717144971960447126268672125207655024318129049003127567053652363648487379460323177249052906387012424097608142425044700569609036769339398936701480902419868906477998323280117353501855012346701966486630291947596324198890097236740546639539763414106055614816592916070558536761580057447215313040019062401499836923399589424694670654555589680408753269137089216323938237905050175951640055615052604570868121686530753081019763363296379542457760989540212826936587816673577883246608672738030611458837604050463231254842249435915440003557905307249276478395018275387151393362294836753278328151056442159800058344531883865308696693889508107766841543126893607297430912665792102686968448488625620849430549901768440204780709908933184890595517250160121943699300035798684395240509939508456780027572441764752338040086320641109203041655281166797516637811699577024863242029778930774495856732702019718422458480395279707187015024107894756533948029487487535686599558196389965977589740965443705482629270999872027131856388196812749500817271209053080695117692739368526458568183427045056806829144679559835873004360582010889532490474770074585562423593876312751069480704010573476514373197415366981113794371883625534338849532169664226406209194096470907898719421775055209967545590469598506560401150244183549721557992428920214276867820517129733635159355356897806185631023694556473221464613084053371355218755263763122493918179636005862200960236615858421858925217075391074800786714387649460108787632301024348912033792037046013898236768493227868546539518877023830667978414773196319007909119442620264776440890123392143887450922828970261146395698580450270904573004748321360598915843739702288577972902742410317982816940694891149091156862620129916765016558139418300430214384439505573579259834051331291641391140009363450564741585452775397795181489712235022888170735264841489499813599682373419427187075021556165912406726878672249852652024900725775354485417001613703766988695198800246491733292692288628089374023582393406216827566160424440919229081772276732775249397249319043993712905954688269667514975275374443060320190727615919490893666670611706328230936220692686020772596976827569823996303542954082778033166991812403482467876392093926066536416815486254377650122722398671194699109668264415351437505711185791532099177069308856297278481128217741287654834415121882007206823842388683726470543679921630067733013395588838555473907723282566808942299699654366657552412636025245281713231884216866717127871142831958225342756256256989557159232503644507987628092802264186632421292676594599346197689952223987706978462987740827002438671767207137036870287949206304786045009446181079472284389075291754362336186127507061076719009209776032582670188245483704350341682034387245305465563965976897425905405336256866349488900724296758475763460964583422774272576509140287043219467122783670137945243455093637700145995126958761386304903113705391860255672363421183512976028677128793056799646810998685627598427589144652366223482242680049213291524228437361579212827415847595258224420737601654133486505553461180315676238146751581392502822621182956812149021841699927346314978685752792635921601976778010153143161658198098967027021848770622006590381965857479133473415558149449640765042844196715227453514649650604773839038757521886375225283410066973290827630097442541025023373993300151186943898119486252103908889127065736048699258475464653922956807952158701203979703291609530306187840102098907829809272638926741552578476877289219176468922284831649469590633491666952570366477637701400192408775262963362672088096708757439498028338033460840760832958614904872678071251876197496558267295060508141438542684057893307200264850145572365443954087088424739664112046034185230272558210923072384749622606796873346238603520481106677117252324235163482030024791110716264265552121439169652320834826745783704764546172547285789795001788072691989582259222345496826944396216375736720516413635900188189310046326952780518549659005350666014044830234252659993534380620735618362205210015911223882234653069317915999655363506589072398163071822204720945076705940171779214430984061514959569720081578266412622492400365395334767593720491210871633712655121450779441831979386170226211099075297559506293598306582307750625715427217069608883834670645400310202193835937303749951526657613217169870975423044282414411622015365986634002280240087815445688514248676387786506804664029290201668606990454101192164171767686554194014895185480095424629889542763042405800257981769690193197898849135309271882494319117424519155236624096749968140690009806093635794412444963041851393965513381380836811322349841996350805249629734032480616301253041828469813129697906757724273044915367008026540417171744270443044417791371549735979991627574310994135355481291341011679268368063457022765119329419932897277835026527155110899437748138032875251183862572846322233029073681920050094582592936074264317944867731081225187044244064488481012113858501318936789302017470197343734480734148738153751687869021347072368867914744729491859953352984655242003033791367362597783852610982044938490246727252617367625097338409840549436713720820435630158693478023194420750170337458393073831625324396859545939404238271231628194221782750895774487654344551738074462374376040133999855591335481692320211848311510793791343689824218144641202546014825698736915562172530224185202997384604130982281856950077017835425727140512176095670803750510185359700669785323520394014269272071006659368102334439249440775941957217973961668954431404721640369599669722836119769601294908075686961030097674304307505175979821240389908558142978834844684204128440351970183981795182889752477395636576217298220492653909070420955837736620164470761244162730702309016754253817168814444656839533358642272136037254225433647823188024408579171504982632005996851113505125045316337474522930621058796588395281358488301407553429524992100495928166001231182169342139648749428713535500226841045425780813825727325264108411864062562041562413596804101814509233876852805927865367881321403412111038768921746610855569978128727630915959325701911283586904076605554441539956034941491769198225647345036148062651461425012568266405213156310547038741616193666679361798982776527430666990209046973299355516139260349301775980461476366944781030567934879621819147919740118300877193566166995680767093835685147328819157666843031482736019873257233815044535326640338796306669936858936289890287373098467808493674403541337877469831243444465278289322745083376115805933598230781419351518371891597711053211677295901830244058792183300175805746747513465183170586175411247812116067840796863831692906207757932955737501548842862473287990903441626064207113376820983027305143632270648099462340147583331784761803386382508084215243945964785343590206433840402057665105796898258142026425456257064617593183090931492142837081657656926083591093470559776597067971770034873346275403848960575446755198169027853323713626878255291879358779644211012449214534245271212418702022656408978273267436173883064609639806560183982350299778379389724642532036203765435488384006376192449110661008840649535722695001372919809194992944966694707270038678574697523246217474297769284941189085899029760860857195047166478491973548046137722937753071074112537909650547637090650760394931666917804418949621221393782337289153995275429274496872528240444925937777017630850981146520706814123740224125990576991118187313055134785127651167625386672760384740560938222290593426359820662787642211485790736670028949397153541156607901546475886914854160029660811687683204605089263452442176307093634809602957476811536184735655315521592100435133689188173127757081264141853920528543980636760708128856838585650281168513443198905961103127839852828280261802874729147263910789285962377015406745492406750873653233129806809270387728389705151826433799999548758766662083438059529672941308270390634261924621698039556829036393911477935581597829744340176030395925540266737314417495696461369992602183525747441293549520916693754456477094375074977313095372616295573875979252684650820274767809134498762148239670223322838516549947939318625943374369591543908355260601822831404240444527325814365804575542828551902134411025437915155156033320559026968325706312690568911831982342032019856620087871320163513726514673341527971411284657458275869409040808037131257888022774516921926247365336886626295299361823465437975508586659202821345990776657006252928150949355786502455460454787537454765711260517730683259731004204342223298421387982194130236352361016910323616546065432937875104110576123167910726448005428141405997703160931451290064537345459172380636872898807354981854096639990686206750351924326430100720861218862283582812130327068935484715344248933258131016310693534413269625191123500726606143804114248852867504473125784814235460059251533326982331532189565410584285887505738533178853725913950899792204954861439305828606863264753220099377536751634566950091896154597391280530517526422136604839319499891339380356605810585296850037117830623404665173933368044953933499836006048245737192963384177325540220961480351183179773175805086917305884664642296346697857534882897246796723267343622389700318852052469156201707508492078229755090176717928821438633968990049676747558543249317903635461427752403724266008440167570111143954111088809061199211311449410328529318587786965117607808426054760011222306150770330416292465068082725173206122488460751163241388276539501154007481064500414175313709478216145200745840537229710661455264520898609021207830983153733973947006850224826502833302323061093248723486292917466734747509233019322712146807867882971983353202280234105157202807029825848902346428025310706884059680242445099186702736165054535831471381490578586838507156076663237205298547653705150500744565926785287900681357630694118818818684060304254990894891312256616701654183073224894706604215608849281331854425806720679981846300035093980833914603705133834381718935985407608415595760826181886234611248981783533820277223602742182202231753574550591243706942742216290584647132907806615647525997023184069182739086961813247459893156335792004357460045843602350833375332797751005106442369886631425042316287238606584573249546759696633245717166280987140335844609558196128079485821469935268521705540407201549462071699771818814220126139961468826856834092049838044266861826703624022739179941271111164426028648741427570839714835099741583309321895242927809349853162550465108419027240647554427400545378637583388038561015779377402872028514257774054506468883496301623780285118017228284992394390450277515312044775294214343066432050083052347385456707740772156396395714839968181323494552252071619329516831892614795304921586232948093377929366111621029125661186533511130959461302128784259506972509884732482843129957681420565111243690558907424419411113593734487983829644819023953061923067167464514961142170221166278759128402054577646105852350779229349688305791517775464595189648799706019735416689387337198978627343590657957267494633688102537333183562578559204687880273961140580016821561518511330743499832028775901659829424922563750739812586104385555454800475147150741729736234453949419390654956595811847014948386835333271457928472277920873699439289309002001853291948342365505548374203752437179318160873217008537925000149181820232711597692234217328251796532634418590166647369280459806741184078805258103196676278174274349676183555534652252467291030013881099953991665594315858459732808886688160310987479606902398907810981187281877891224280096482499433205347353802005425439812293035587391043527158339942315482215873455182260762413861538756864862980754307510870722231647054118590820599222028273263736195224893863880370178431593972123029159863137448690995862261105170325085706023903114186091681926386027350806729698434009529754207270485560731276129202552833343802319078913519461669566462673456859091462589453366426107995955744690905231681430331642136304763220469381783626567241955889799610741093058529446416833770442282661345000956287602298427291505063684831173758357761918029323026107341608622140304119440418127723599892236758930182407183538282208581997454213779697001423089383250455822515707040905241890669879288008179283953640522403917923628690905903726707927999323116863592677691385973322957642854597516424028713963714048867566624300328942619419258321183396349005752480033808987942421491222264101443431843562497081981521085072502888964696976751251851618844093391025073763442095623467698221958319741624965152290776379890765034291422183196803825413046148910599507029126672385504527539875311440272220489168781212866298641702257678736696140651774170057662372544909205092104826751738223979277998973252870441873658051273386648720938796399490256517360852142369248071575814177943333503014131634378685675001643549760476024567166816438598533034092924752183892218551767846620331918872054439472788756323590198945203364197977831824527266520402419642753803719637639683802797693529034504170849527816080145234690696223953640560834010268231754981844981679910730803090351297323429738611158768918186991401508945511112588228957316867822361657430412575457842353981226845029676626022652675079865627192571191451298047327183528261212988532745670738617180582097840954052566730931738692066043284665626598351425635476130526591247465713321497541735628589397458755516929154229662470851866121373860512409934204707097129120256564785215403026220624036406632875874694133707607062592593739831319665716833013737193709656616161486168028188480772948587934062160913452323139925669994284509551132538626304099006390067713093403814206325708403459873243779314710613421172829451433073041541998710019757263735831445490129163105974444177900268172052976596071653378904439530448628161223897180845843347658568598844034713948103148183487347034913876135639716787455217994320272693681779868563466024597954488130187112438187986097184455707937519280566736179001897493615544374023974856633527998930974343914310548640038393428506180847333121493962000562620317744449619543459678561500949818261482100295782334046968755749379388955433435083788641695141546121210993709941387871181986868488943751341303282034396421925620706180798651655361698247033001206723539872245273338556936126390506629818899889531854295191265799660233364106282764480560223434665462536446700324986593601149259617352465154822890562267204783152637343091426144980280153718264212280235328753378099542403368369179861791175100538513664185048283289244193765716479125340730872276684373265596909627508914148049491491969586268192520764354304378540581668402487839593645860159643681478136328874943076500370681552337846180783704375773580300082131651256955595528761801601812837436172890534318656126295501147852079249432486977424626468365833512481371263662549261551933027891812587366103574540013785190705471675583275712662557202715625225927774179329475187983396251189497534986076061050433074525538398351995358951075307878088639161727229009074239713883819100619411215797058597336829636664209771819656034530867411103879981925936949349568105405990848167962537171551225260569826217944009462341479296543015554846276065307618633132650387133351135700792187053946005151985162478117715436613060634520567640866425581440746454417465512228488046082212331945038144043757400010347873000369493550979403625542480379685004297443052546485032393102760078582742861439032205219217519560159546183078090205883549024821600152264779912163377717756521688604652945420327121033492838734641060762305014525768454935928238799919516808558859185469630043032978014699107044052435910350013491211071292104358535314696380171261473558560808137779240475105271098778505572735885808317374103240752628986113931826866012025714588350565140936583420150030441435849083694180145388559810167681942320156884153429429472663682918243543693788171426757416395359618523983365271413762747832044941080005981876840121889171807916155545257086900274060930601093148656070710197355149658251293051846844861888909579819348261148429790539930341941367929575987289810507893717249107078316803297697475237045101441225275544479897131987474286359128625854238968027023056568170266936008101268498576470402992540522334949433372922568331126719593208518713120672752837027040069290940467627881569848295610423239943080857131390750487895623501896954524607918737949207655668063962558510768482056382181877673680408429740455910566482092101822079694798049057893458754633445552850704862500385542430135354261681507109364517263388191272478311381314831960237929540178340396070837442302628656668607639318232704532067026338418701127488113181252181509464750961842138931141495763468865623246318772452846246861681526492559580400752331728538543651029193662860930882526992725628478536590563909538741024713625522488257537347851224445406131726571082754284091917134482306229506668448096240625193567294380869888549181209183215219633779438646209332893321985322876017625662453893648555259182941079313602354574293222937386475189694572709112872841060000895597578190270467534644142424786746440680021457957368347817246316121571148067027170780112903817146819693430726301763770698608493704543206909458432381289575893753226188385561008773022541439845345453136718382247787485641104606174798887933381663302396398174204709495456246467563432053278340188544676282254862265878455724845666089389073638784769300657266830306804306582342006046856531778935629882117833806884436689821854192271396257465677035081922482239298966388654800198335670725330229966973771655123618443757303001599468697314845454915788862111142595090427958802032807303416173164358781894070165033866901676711420293490052299455198480231299699659396974732409624372998058415864803206302281972106973998866524751874476582740128929201470727277442989209459248803135834478660253692860967955681102768340370635244317287340641247342538371156107350972230189565679585409830149241509834085099144464980788390979380708240212956056789411726313723483116538885815483434273945314004314645808212791403436951397530780294061942632655578448537399492776954587812047997669502966936091579471092083574771309873487813005403575599024620870708682650002593434695373060192890323257362291562742988867077032231197531515969981399226438746172500039604499705790065425306925726625453976529921526006185198652064242306609090541282699113317615033300136711098348126365289989828576107863987026048745884997500459187101041396160184283387258431944803078030887593533284821693252425681814879330735143503387143016470544718841175674177291407888805367878583091162205105344703571466829927229644041819604243626423283237158428017909473504774737462908424095226994494113940867854075666580303330475092617832688645468702936922982212297853961551077694442793258634476117213686781218293368170792187820913315304445057101874920074508761327711604895812508160666593121500466620896749233879606962122376234071353841225884884534308731584630290508331514109560770909427666842672322059737417081158217267767867760864351121262588256782991837413817737983182054853404045893353399858229950077307558448593717021520530647111389655772757202950957524797322716812502441908279778229694726917944445359321698428277346470894537356248959277008162609542144173228017642147368470381201530323863148550805582944114935711460329386129511118764748953831410126005011925734248971708360857815186087419822339931859548418164925197200773611280451746313291044868890900244559682971998959028256106386145568662355976956892661515137281379568795682359443677484201521010583949374499435642625554394277556866644359346749752177008874161938113555699693634799647669169380029458194379606972303739142895912019577829682123566810895412208988425478230375751962617516098646137521077912401783002511096268333372857043908998178559827401865895432218014388527388023936286436333876909263849877147253122350433435804303320372592729793933737367992336024171962149992420762560111218571967111227251957825660826224876607995137438106687924516825771488412254202779492504860186805349751013551352644283467058662226470040125811945047290774397970394753933185919855088033094691001056873955437815747263421150813702427695026145582127113136395161461752624804184613276178291135231832051734731070829625320627332726408644988851582329357865043031886150754516818020702288642085436277717886816543681118221994641424608101030956849683586949502196300577012851110606331549451745509354968612695627511337122674469943265571606149699341414776264775002484053604682753644650447836987904496173544787131034791804294523608278060832466689734240637152200852924248142735884447802971439780441681384103640252974909003119548474929614565179466753005076096827237692311091151594384804054477267891777940166740126892567867366034014432255458222491314399301249741215467928091863594538012979525317202804967961943020456760265552730336889036408753692106393177429447564339722076235553498394962815096986556580974839593436697665782186155468414572136631643300328717697150029292287032763452404375336165664943835677133472094541351178863357898000247991157423991005680482256445318035865539319597468701850606715763368413404565521732536631590475633777632053004829315419319461039750318995519548521097416524224340597970617335306884361530693179307143150417829960016254661653620815080943953318186084560243121641442932549898021836838921318970323417906856239355450761488852072928790072196561339413494618677381309465148675118855617749344115687876697001727637839226703361567872554546671938454489896150444855146062576767857251533400488662155281336783378545824783464379506283753736938811789179605061388242209493460349972004757616716095144831506709121632311523996138477839656592296213916753066911672934288530057015140189369052541347859972512730534130753059096100352702353460794365751197801582049374880560403041732431635740985814464793304102215347562386657918581116735053906188642382312993248611786586137137141346229027036937316805320263800277369886916172419649269568560632429972446526617557465904391406237682238215662922730995299554065654031117622363303919761208786519550911428061676909448741321447645562085108792201097885950541821807255418106058096250683626063912344010313925214921530233838742708873826601962097551767543617757854406832995157314275088451232668896246748723633405138234312243021377151783593287420058446217461000540203346620447646759403244728426518474006111970439609434957421614209486216361410114973867819979900769076470967334554065203744923829897257319655669360176578676844852309702407414203988786995037712099991663859393414388706740444315809527307311951404322583378192913128198164792695890853020636192049565055260823332797550786995180048877706172798233637917095597089756795741484864850274621730474665515592721078792057241652797604697039772276240284608173029094328896682147806634232311575603702701317129910841701941529053640230197170796962429819615350553999132226062755695308197456371136693376683228472270214600788893988245842656788497801107898132095263807363754924521518058987860109915560445711309546369873010133615317403502636295436524088030287668556234541103770207139551057241008189611112882863074746656948728093045262635313059307824748287596494864515817732649352680651250616018713070448007316322377830969062062761889612748434536124975280131425599187253633372038392125741103454628370925920662113136318726115919762856190842136885186340811980486949168091361132121298689428772268200688225636853804082068647644619858198105167912499831463305708008369590578880424863076272058484111423269813456577910092203195941073410215512301512625075713971355563570165711161820743849234261079149761907115378047686754129740984672000901027627997668748360763367000808056873788438781567753616122594207824973490978996630370115231953699656265301647936996366222378583633318690646229062059963526810550860163699091794764537906581729109846665068072626102791105016684173658053692036238206359767525653218842325626877363200214342176860156469745812967458935262558699777662212936004454761509687519784270261694435339595048138879237598899807858309696230511685990859439640110770760408811875330314250390972009537007226501754452761666847592022242852231583495416296849181879347782357827574160028864825785648465107037649376537277694164269527823528038400601052622768037570006726146878421385083140105096559381450366957592773915433385410299508563356348246357831459270393255855178208746671287491645237358400728376217591303613704717649034327572789086656386963090207447300421415837875100755515463510153941138375524673171336213137068336694486157483640272119043876209078485847697263856807443358774290452047275500769569041168267927012506306375970714940213986751331683306728962747821303498292159328689108606161296221178996765431717581261148627274502795629908775081680956141176786052172750598228037765377811798106021550168746199002488393179112357483803447504682052849279817410524927867691110863758841044984647962235075852581441417218709582736171309095197367643901268156078926265470888283180055715786199251105573412737633850498657388879537289603359079733956674511522107788299369018334904582217782818918523269808247840677999708221867587711196096409960028201137180546668485918101368790543696075327002869300575096443210394091006451016419915515712965861345679810028335256812202492441577764106837010385436424412954295592080786653494396279535489802007546257329074820234478261438148716165540439617735289294952005749800964812415898330478871841903383765788209809678903196947338889476145240618858191207132920952656816561857431022742262802137000768258491408586636236325312333497186622788399209129752297637282759446612558964221419007847441735516357578441964187138463055212091830864673906999532623669176632385377457554285082177574840825867656841242000772729075874897129912185210601672613486049716351965759402916527158289986287069786284330284769704712930353258268666945954400132811660364645048002870985401678152142369479952682972852858004598493926434788773188271553770833747048569598568966895473587961854051690102860491101608796554730088661540630644142226158384080112109254472560283351298880332766466050265847532919169198648944535411185450048533291887695936832634574680912390503431008886344183723532650174036982505413674356616803451420993784479304683966484255087418349367737785275151649875358938841021973481649865433709443716715032358273936900570400306933081666964060100724301700270341245245839790261163781363952019764918305630509373597359044934135569405178761516315500517690499983132158344811016003995047505352557918990714921097039673478824031509535909844996972818584855793048744772995893324545943067888210115946479863287499272451230829203295253054967463781019331080107735928537780173007558733234875698625411971410876187176727611728987452369198464957646488025208530532195402531645863549229961838649351807925153119886646787863944331993555065748530538272215310474078387739925388813247865167377508609517474434320440703063895697413670790205491052020703537507080805377398009709387202842135134723595467902707999661972708902193978745042998873577722435796610181031513895702870973409919942516579284682292729818069484973740542974034085109149599345134175545700178129398033956626879059759278918941270271291161992676192729915820404603666227181045796093903000730594994315293597190651469930894473212317610122434993156662669649992392288179888197164477885130301675350202359249266734037339643667832121666679237312454211948978690986188629704536548261351605019004689242488356485359988598117372409784518706709083070961075565196603001611032604027948748043505501560139677659778036317507919691250412303674339846573240796860592923165049316096116940664499601022750042651634627280544704479982155743899749638954682006829019464115667060198553255820399601890356393708099049011425084556339001870530077549275911340038212293524846455516100921203847628120324671023994067620330036811084249742791316197848005713542817830986822155708029293138895215584992816300136982445537319609742063743727898939235228600622649899095318448793386367123590702402090739759259141478204654477643881610035778783089912995829815679166507627890020559932350224134447445983500209648393250460237806483746531482551605427299500482169407489068595311394177760301293670437592512429305719515717058677602898518587691475287479952773798825850396337060487214799905231813039285117616361389165615422610806639702011547653634861445923432083172485865379738462116485665758348704511950157896601675608942852062489882551105269777122194964447988649647721153489972812994526568182946014865294989652763021495890735116956483840285846026395328740079071827391943745597525523046625670564610074871891337279006727276701319417776605599407327905220953605443866736804959302321574232901485533923915583141344761284969313890950818538704565228736245337981854011133850673947043122102764395806980190346788936845566426019926025520233396941263753201180699471502044448389442986211238342943421996180839036406142773591503500218570319909904884828978025840707942280979415415496776167727351047541573064763031237912279937980595744360307280846171255962485172640085015376138358932432762258051780574556335532868258978685553127462077945689664835001064126530055416965185524254122976422306862406034352998624156160295234894352962308336551900665714735518749227976940525581754682381078971589343598822582000327637458401829321366753027348273440069400941098788513611892103764546632702927794992767555189027701873096800024741093679785839979012932366592926652953244913467995280446824102070265464425105856973178322583039097111301896075823089102316449718068754702945674978359664270220276064242109662366597043302411924072866711158531329846091952115613789384358197760847754592958345443745085177237856836320384127964534997585159682850327282548364622003264548547083998967999347142437397371134026330715844858156964768291058040180811414588046165061822136003662910719402566447402754408864860379456921978369381379431279325513198752223448779260111759283210639408210075867630742576097354079310042644990253856478675556038267894619118564249580045797842710640830496434255013895597768398028945972082612122263578610791338052004682429407695999474974722480199612656893669853334883762559549115034289988460094654029752336521912571802345318869441531570670789451377385349112654404110603235262870530688268961225849067646240724140265498421278322698508736278527049576277047722130984331345928883599284486389691005277399561184804776226545259107350787363341719531339108101048692542092209640605544647037313506961174119127845599414580703309546285687833612504754785912208777935795816444908738680684033691600309584594189151261949496529244183055781543503459862478251384017194009512012758315643612968971971494377528022837604992644713359530141860161526957189919197138522808732276181817697281440858813336522494888547003338470675397938739750887891521981945421165514192162359336204886652995099896520800445679915743687944338344268125232240985841611764186745347054950335530214765853857535192020123052316770037531725330345720506345491699670665777432684722352298133756421569384646222989126553488759833330917195533325728205655752219129653308561920617966999240522973957434213315986634549218770174691569588072419309053494123990908630134301480229573172931793804076719035922577516815064462361588902088772511876180707302374267975420168220955021365885971103062009244955883045321552743086170500745613695544869006795708139813803426039816996597561023500790750162262108686842835417775711913315995343691280740764742742672932737981328931109485156336809366268442332125862329233519097336330181563940860206508535839612100701758522892060211478198134759666151453118142915120594414380695875139475738150456271718621194995173737507761341880220451376030419417106186831231542315367427157642706214408910292431632311224161279866759281196009272362182223883906444903857046389939604023154307647772218153497249685602880364466291656133364046088728483964876364923273866862534022030282203538724475199371324876587886990428296603088870751748551361840765305929575171056416023405013897428460804374912671192530836852149563182074804623940294981104175014660131251495513646749728956866227904256367529273319723676126795139015108948157895553343209974099190434737437864413908346740454235842374980173629625906283266859811028786421055339768043097862232739452685054475636700265062062735035918043412659980739481034352315503170522032112607376561313467842120369519866940819121509164902362904661576345560169745149474021752807859998031538339333121428093943702690459883087049343314575767136549526398832405299774605230927427661987622253057600635369384741982091516570691913552624030249028090959936866540227193704461681896945563517339537106465081233255864563364855541993245124319560804412474321681790350442805830436458153911081913094841780322480580674431173530538360242283139280374808826027475091852345024054044691491549486092796500809442227712799621799307704328822134441324119443171309211825930897292104753945100247426853530520080970777123297515618556755365552054076386066840596753037796412634832603450491893449947445631577430524762217352869127763703025450700271558790687774448974585272677290080400901650970724114133551005643155869725141409277420009797604916670716462942508636541513293860423560302697542037658674957811106340588870924191060594927336116801423727695358354720972038026450767573734901197317089812937028552970067345980469522558483666008150280884822850430346464414285720579136375074358972328986582912787897597843433808587636986297934421034892997558733243842391281679611053468568643944187810304525539901351151049851545459100328404943338458482799936740063216027365628568324540039291986782812598707406894630784109147241204692862685727005399069972250993343179446599391557949804959013041497866775216989552989562281883593556386103851916914068460577709421425073071091482187260577114212749451196041133102625101165912387750649169431722187186069198446475644752792570540402249116361284637840179735187429191264830166879719470136748492676024216226694062285603950400444441057080468676870326204842960562370518653373680454854551951847499379249184507088210584021489762557416940655031664608183621471552381176946754765935537199578536211636931312222867524254398529817850563697419025981340875633894963693338643760047945521951921872701246247565542332400994959285752436193444437722596905209466676366585383242145126390527948078761040840152520897755205687552364307447023535885104336478961460055033403277865126555503844848793913574528457521521717471690661132845857474818578221779731672745981627892110799149799398653373844486413447240700375754668864209339070818453060102614048968169467644893478323382081915094408134521859153656932040188023576108805499599993499972966299344104574895462946888670233373240510491572624401017051078008835495401126588514154025075338423157575827667501991320909966585622372204881405541199516842947251804369932549956802486796312728460821520592748800014284310096695602490605468289571534497177671638501914646497870234094792323242458783289110144744738706147331633719645433257252364036765073561266706998822759468091046468600904419475953975319939222467286998957748458886311502701315329960893384423007809833982914235420484665975881009552674590229011752295894679669896289696946167610184399838975493251758194505380067315541318104719798199513368101108895526315585333880864265369948938491359777215135660916364069403061384083258870947048067081857733471629026422529504859568740770986515808869604970914288406887618229054914707713219583818497145089740112379397583743361949835381257550710064401896440881440385609900325768811007427266302534030320612239072384144384610701710574189311790048708558412296964157685610804980820885889638777950249940842293096688207935166328129207915119325054568730344984290527770224441499236792509169081597771602814962452761712118093012448859388844844852092327137067801114067754302696379460619012657903558260861302051808409825386896586903058163753124890023676830610523220677705413953434037246873513063596734701293556895151409762324540657349061894533619731441509442937067759476009991792572932943102519949402029100664312132922804795193594608905788065043760329929723423016356297984165056703953673628802873241019657751571328825917733603475091811727861131967693816998614539194034569829161712037495269839684375880286938800641585806051097127077180893558780376868529576958655416147324357595741289595206065315477750822554833395251777276330296964814820447194542613798833105991841013607943512879080487938481929071742047947482090675448683719563162458634063864300257066766363059897382407577614768845059348878599786112952628456235813588154513027425512279601836786972036649458775904541564274120667577293054671907098490085117923148565474352784270929796285254821960592403227216051379692500821876391052139433838825392751336284532384843744717536744859544095126006673055417505004697794878954529018507347729615883563057856113176249862247637451417207845347784300964331474965224585343629521543116931652993229712177071423889439667134721192394695993932694612018252541560161079737811793988351924541021584703559245565202291927907528007085655693118521744147722403175531337671020303830970291784796084544805623890225311230764813311175953770176665147787256381181793763120070535044616989317853110935401565642284122258496223894614952758002822474532503440307186099077361477372796635180221291463744996853380573397964054380185551422087943275956296411510273370022375750362530456465882431640008459549329227819018170438636857211004721189501077351877974230539810506696012015512787012198703773935250059308958130744107955590458554745245115677714376051963138914320735251893687462969408003956994606381091786563983770028361271496485301951902795149189342287817252604807365965387022580824996589665862527733912935029175568739244605520596193151327517057986372349991976438331959685120334478683078440405635187438979689988141233043621228541209548923143657825025475113600303982718263703186970885330235302080163041421354337009252035684566871151642045560189846858247892155980358874762605406443631054903333797943779287883561323487308846912552894369589022523222331980681323678519077808702534742017998177588523555485655426504634134103978231272500786359900246226008448286118278063526431525774706271456818733158025394451500609526903750441624150016145234348993190111960180707692122643304679904538728059963963635507621498848871115644165407394001563747775980021497783910160537398920544654171607303356268797856278994571347814346349079585823002676561963904116658247340681756718943287326434818450394132091100455655035799275655181870242139563500024055739478162331833982621666393108550323934864398336432237937069702941275620277315033760074936229004946835407459044973829756784431329721823710295130703053393648363582310529435766493276540031400403067575693941231472112168797083178134573859927438479500751498961404372489916375282443051524672288465933666407668572499386631928494055840224804320028061406222327132851957432779681278113418045414609976202964703042520448408371838284352599351060752717085035762514079307697937813339159332597772126977940462301556306643656051205513637427110747907914049646145870473845824456445896530042921065901994700649031068719197543436815711349674408955855542624229176571888229339988073005238032503983077145213236688732913274432582459208454774414233141764057901178302348099773139243757195531748473222667279296325155988548146575837905852566742261788043510348100429045693981797167460700309893406895822640194317895660412551388569069901843032383622532795025010599843724247196447241653193035188091819847387708218224568895604927712062275391618259647889269631676469698928903464724792895704521487366688115192868193346766936672287819806528377185375890666820141116771400824225842565311854579015848428414388190541165333525641239866047310290360874881855157857813186256810857706485639121859787144315432111659994651949875142828118228747139376450296604112234969811919787562731431667149124072393166003394704041844850668630224298685058927846052318401132440748273601936437106984666923842052183837425920054613923676364032252235366034402172219430922844447844098324083009418068235849051135003367367479509178792687932938921655023139035687489879193495842788657566482710895422166095038339777528389588679005701966436891812586278797524268575679153685894078503207441149674751483584773428376818628713959354857757794927260190413947719061306601805598686771015013026990118560279700570955088015290179390713730585440299235755539816429847195062442372395730930270406915516579823725024155587558723400326749870930307849457205407012785747407737557920922203811579631486720020413645372311101784445040498227427252428565912555307621955972576932345900846030403352413168047083458315108071087689200683375901061013593664460744819866911333422436252610789750561510890186891174264497104206767093408234433006941252618070321609647914877521777958546762030310647595142910730528536761462074430869234974031913191927357594039426167688294927274315222567281847050609621910057512653550174945850762383144755085377309378111018746160375369759414105029633369134422239202512898849309013011803391083644734490135082985698755682965519954694441721509169196203515745716983243219989605364890268158363076099174611159924482766789470012521768781759066273509216677588964490501164980656878674785153789454486140030653473184756050476494098655327219094791187499348827420927407104335740517513494067744075091683014626586359409896158461302035535439302387757587648783674339899517910827710741038848724903486373529787862065099376050801281072246957740753990578255599624471568733558209321407917417569356017450128359843587801841095448269115883741559688952735707893247608836158091846093954898605089376469536460989042573716194938150131698552533743629832909260901878333672183882922634727203345616439092075098444272773896039330875749984337240095051085844792712774304100287673526280392748955656412257737893745703444039028466324335438134250578962904783181699178441429349828014262183788922691275262328454407643824783056595417066051333503612277421032118604247988563207410577632671062744887089940812218027529840318484088073536928914033420159575609093761722799587772810142170855916617040688925938863069295255473566182269506538891754800796698350886476164264857684825392947094069547428076985408186009909314494504621919119969626798398398490051847342408844267656082956321923337916521547747000979440812678439700851021612186630359796548613815394756576024839843103007168404171336378273428727872857351933673976982841011793099270047467529961975205751144177963594843490725843028571489266123291246545958976406190875714008713980424089505842987939293074573489365493382746463154133767070102509135099474851234662631090315231005502499437933557590577293333434805560581676200124944823774742509600808902281449171973764306341345364040240767721727237950318758707973465444329885740689140496858573402512372186965772293680343855640514426827607793774854945357760840024351313873340223399143863703287833681628722705024165061452808508038386542822110639625532961690421176904154222857629650716039197952335813652608398932371514584876178855944338110219269331069311102399369642216553674733411482799103012114426535307600077214459835333388507688101149381660036160353548213570980429413221449230746016709116176394397335327289956095859435247841081947793992144098110948730562853558221047006004629443429276245482603789179272521083568920871422276837807474148753784959827484243842392110215179055427554181126064615672204227787291538319515380215435203239312436894415939572455180792995860067530604526253358410836694198427412619411762518811277834712754553290740570403738462011892267999449285367653869043212517752798001053159616310054750252630692377340770835494779774587577925758377087583842960203317341598133540624160504237327691699772020895153888042876454675150501829730645618510681009377695567715284316838379677779262069455672433941542887896613231023626109798483097284416043287364395286704950333170503289073704109794120920946086703729993209920558500471811808450888609847585109552737091429315373817658678166692217166014818043797051716639740926793029285061283971948998482517817386479040117456451364179091213606534357387747095948112756372138016524308138711451007412808183483877445411800067581158322413102290847723451122220284718415375503100295882507434000533974929307473187917001631878638148322563721546359581211221200491978562483576728028032163118953974737223634827356588847349599643516931280599514532727416707913882666225873198404110376835507872079867221737619138034112911737436176076545129512956248661641829559192941904548139580885258115964307379236464217710569376105859898995142073244987979197700289772757729134486150127974229527406136353779559424001128560050311213854084969092053304428717219741068583350492429126086297116741393598992249786227172514010534322455767557833960205428472231668164332545312117411594380524727067183936838491231312056319119673052655753385044386916665787112314671084620393239531667827613394970772278730802786526236298448664624909504290601818411585557022657060217428650768988388808500124220536760216067831784750251312804330201570637492666522849708398291457430825169428427023460626111916741881046818590102605194059971754552473395650414073651925239581407963723648521151683967085188940834146271956797666702011625084047002373369654169123909187419931894432767666997439584409837893459659199363273336491595244912043607702217840073146048187973228234245627330347179681457201878414215501377232987745419604484205218997904894473861613264597295954140556892414199654159385398847123616576870724215028122192687568427106215869504775913719043061648398992973610190480572924725170646822249543412963681980184334388032642544488573449402951381021057812379503838681096790076036327147367070685065879158358172880344368912198765858825385116368417813350097394843569306694497061336746249130792770093720492181084840235043761224410442804680521570014702985864544003569192336779360492486626806272202801986138148358383975128823220572515352732645269322905117067113769835736037401729133768557842581541539618504731158062591213321877439485979801425911271653975129236449755322149268907284273871767163940826407067766267261963694337267106184699230660421860614932706237225705165581969781126226319118784475930325779392354276195200299635403137297551951269350781692467867417946410329755401271856964465296207713786794706244894475546735362746003699899027574968079520431117726121548017020691562483516151374827498518611022897078410454642560137865732233428118062669996950887552149486793617658231998066047361704002803586491431215334937076339694185391450284144802915292111456289114713636429202115848037964991112603860237301663667771035005348150744973687608558643511921221673621673952456717039219549153150054583384040830155573630520943173376115652097648391456441726878279691614442647939416167545050955891943154923906269590937953329357937071373485851039988324323789179661276858618182797904145698734343577522074804916874314829131146142976327784939954203274102060087858352696525857833711282369019748892027939088768370039826895693902335688083839362014873408426218291839574025718943268774345999530072063859574976598052554527361403627472346539756776905491820287760062894423265838171536317897058914187185010160081241970717041931569711555733134642398385887768913619075141200632215537747160252693332021883804086828776027501555815702865330243424139728822199331699913805883316927628441280629334327931721270431789784050834058394938392965195094933041466500859343202257191425426132917432365472228880981119454270479148576709560054008453560193158999864782274882861790490963339025530376107179709443235742183327998653473991752889517371267582029031066181856419740256269920835480989746607766742015427055295119984398962340686558240918884305587621854944679901115927318660118069463203222549089223372343664014372075146771413511534605161227255998191053748099227646215216402558446822442323626757338809934140304327302914748087397200373447020856871970304375839917069945097648947553500199401870304705083260614952389825140926064087689748566965785903145275961005531638966350478401094043508252547849299491683808517225789959766990746548818946829584781548136508092898839140875864725724972631403189516294158222158152989905206625284746852014369455044474140780298256634832203776906699451490091333987854300782878046010637650451592209248859781533412508108132342808674222577708864433692273815131009684640740042281424664945494871284339744282974826589463787495047628308951239764065228592348839681062753696612767837691023755495765660145289651642191849512200769352809772906443945018819952860125044633047572022184798692952060734380262325465832940058632528539962343824719955638797048421660745348263642300605189158683965897253115464021930321615107516074538702900721806972878387710206727721814850647093079618272128545254427156196218786663328296493310230550047114858254952462978776251106488365432286092067250897495236724081326728441562846801959461626591170971789960738731784934331053969337832383642805370608790803956209838569605298541879545654737926346502508457158429118937496162734137720092903895201077247225207184329022669006158147074694186285904462897512603411530620432443201146628195561137494677560213355551220556417128290972186588124672500058760082056501336646018646925428382647670215597892267440543966452088078567816728567963597830530114275287138542051604576173546153589615354622036977205052035787396076784949872004371579476886932217965165288887825881393877425042472162085671031380476429642219098576976391615225494104253739001074091079589372136878320323181281870464627311309691902705635732746119210937195293534927691188410569738355310781553588479930169419305357030666019711959284270581577784023811221161785696626393898153818507571905263210939833169824926415855661795296449978723228536551072927758708001261758721003881728211292262991816385845038514373159290131996581589255538299171921231152454208069965142453531059299069487987636493813654084651080075887729693647024530914973483545040453645730499837985878520326268379819118992552888068551600008249233260780792507549455949271585359328516085426386702715018169640626212258183994904294286725694445299728504132045365190449657258689901499690040272688574962314909045741847146899601722067224521228020672819227986546149592283153087210439200833238737255273171681430137899279397759848358450104809853864284665292345661345155285750218572835579041055753789846181641980351601692231032081980829569947406748703249241212079842702592216582136207246368607720884878417298668322255879394262231936279670874380781112234021645904296480026288564184321264003749404797180448556225781399730054526960959568604021876971379829360514863000863149776955579124506216248748681372684915896639055733702608671212215024145396282376655153257124409918497098277083418392153165886670789611984000602530968467950117877857267717711156457825219242973540130806188699857294597163471039895309501270897445388945061793572106849087660651049845367153722663930382077250665140263730315909308902861921479162631771138920894044663009472722836762605027463858528380322194806875872006701805949829379456741711004455180335919394549967540862910437012545165454460710010243571960178461000837787814199646748258418893270637990105998880354146583900081582765113531765552634159368369596756361842168845077204950370407174863922193257189160393815523727500271563921849187936929876570795268128756921766674796684701029686126472131341704230066050191383063196438125663965570204930612585733418714663260850898432762474371071852939158863578422468446427418474704209250076405811088032700950782358110227179401442895065077077830694993903611297170699939881805172396310680570850003639522111941020444549313762051634852091961059007667019660628000202252156381694597027796187943611387577033266739095741530104258651501578616630322214622861819340525979065846655316230782753102795150660289925457644858615318534470137499366824330201154714603695456818656099147759118004626442643460058719215700395424339663525536616622348468395714567259771618534752993789937308764225382916532942707477350956534626191174259559303097516517075592163634812441085704277235489580448752685863824713549707602022686173741483815804150668678137520636583742192242977208299671088943548629080098397665203304825308892638469481076972367367855784276558475459310991421551851333603775411801796756365729750324548567167321725948078387946927706671854547504267419259707719001456812590905451510186795904923866406796107619627954418332069330706816429545545423209648931395978641099869078746625364698406651492568687164568614047335570694165134818843553972259455264832785589148961238826129153999159299941431550024227443240801469727193248943288141962890385789162923130955818701574864098536489904051508543405346928576973965350519640266409495658547354425108072185323559794544321022103730995853053193511494235183965069838092986048043891089045280179836630204757515539925937255028660207446729947155575733108321720315010986026426634314797970971804361840375939393766979341885407959230844598643283412399272070332314508428430523436560993360935014287794691640095125305764653694688858119420203295856944384366960883584463450593257919921820818740190356021259786333607444172432564133744199826474340292504165145586241634812332445049152807562915153557388857533403309145060610745349827159908706343862142686998809154096367225144992161359305749529879360831752986390791927520194456402497956716361518527868356686261937763218185235044889324588272914283622428398974178560060539462745951913611282186875580132099014510358207658099683450089361053625249856948088130936242957552146966275135233742676118395079922870445148963866563248730083731451510862428538352545245310188747244319063307106963496071432293309268906444457402910730496244390880375406535851606606600890446559002410219736804977464109693357713843370365981260432153257663816803476774294610432778849389945349602787749785339716793210747042727199307780843815009465362735504360714679801868984856962589424603243098019921483091931065658807276018836435691125947424120210604062488611146999251827445190823351801504251938900039932085773680914936592100189140034185559489218330747313753233787028923808011780561671601507612761450481181891624856820254974738340524503393855216660102803747575546654989111657679134376462346632358589006098879138761243538184386061182862230507425094861850916480704823430757126430459379537998879592417142800611392301803195786280099886860752782605758175000369749027270243071033178284811154375690203381108060840976440760745324077895556604215467237940965519280270349590657540101831117763806624408752958045433956583571491198682836935601995687551457755646013837094314811034750472508047325815750249706656268713193673595513185500912891160664654848273144762979056145844519621066362173324490963875644628566148320350745944342962745390051275357717974255668322242661543571857715210215169687225692125248040058943906363960691242619335695945689770679711057641028323281187057129416907142092447967679066557685835027851399028137077642032752437486244712816097368443255506552953831378998617215087994688791788687333485141817537324685839710909514072925990491371925717659906288509574344441149746772955787110463084058759446448159964688418869861265765940850904180875828000619634952239754540280078981817615186132016350869411017596165548939046116590955766357488852704243503949875691911799397700386221636499611312613882621973958731938223784031611032824937688315852349365023367925392297530319788666692867498336970310720385949756810191658272576906439687666485689311225907205694997020379029623003133183724184525429716655926779237833070528605284698044857601126735041316734795208361728426711844893715186569726881512062396498624439066487140039330107924292960764067387633666791964559323916532562668064780114254992756140557038429382612717998803436352012092877778839560908485547943228698627036602761609619448027145498212682540626617805912728406477855770598414018370964831654458816918751113736001995844441975464856065889982952839217120599578929228275063279636716209312393622874745850596383345472185512122335228696229656213106869005877949122413464114257214291305069666384605831633263739269647670911216419507283918654667683839374764699866795907825589449249774102992969279694843000417342914559075657107869016254314682725008941789507869237395361092894782949208846121953777502829666620710091842758846902796171543331791831912133077815916123853229540387925727587969067321647899806479443089978507978363836806443365921199041197613665619846039241288557158635009505372460111654378150258604638722868429247566272457814378205992031094389913431248546838842172158689222400570716804029658271937797675471216027043013738767788061388872474831840600694162310064705482728571859201686936672069834415470395411373671541362360534091147120359429999453522067336178948218409334241840321631675905268639022191356044142689654454844661721620987090644017495786386228861836722914259322650297153695578407375656815786290869724012157602965346826102370715053240606046340993034886961002320595526283697635910476233658479769366181211478213756702587652336529822616845741135955105257507366822032921220066798711041613122935613122431948617401644880784580831717435321739008360252344462865197624134077632131696981806201980217286178954582800374305663465955690613387815716057364069104238389960519792229289941053163686760352965664684435650068427599422243897753656594484023940233965687424627086931849811064859439521982077623319691988414260295613937843805639465408000069283850063205699234717443067846845274006867314202346868525071475600248996489455927130551861199986508557782397552169629158708508592942180222102352812722988693887976716185291029683164423840708351574856470729191305495895226223088686037939970483156757792129221513934833786054130081090666031867207450167395894601301691658229872940265788403036342490643606274753408181840427779385431907422126727418415312309876233197942423452315778149449472406597898949846804795260696026278298131870286602835286036672706126747068325588312674891150793603018389590879796884780427890277234690260226148047708220700515442649628338967138927402777792839900409357878611666341721071612288041147277494452892551707723972554097958820909619682839491030569828790248693544058791673834966179984067078087285741100123317653298016079133885693934435252808974911083244951844555714139567386801564531252251644160661875991785917283495416843026231408929940223091929764769323862782895283250733040104412474873749926730106145263692886115458019963126053728020638382024468795985743914529608140004943573400046632526408412111032768742789439900109995577251524854495120983792023810711686966320734587510037406588635448401505708305653168581768385110010941142984424193047450046854272151668227428274610894609024430354308690762136519872570399481430443192356574905668302739415610770574563103032963294496967937023320957904563079290524125773200958269325342032357925181362953467833111620759384245055990687424473464743495567778350843509915081266961638864363818590936214181553949718187579229185042619064068861005589113357002466854528217367195061077842829041731924119423302667514154495905303147615919348255966189874055401358097937702325961405733529260697393097872441385921579576012828337998172876936854374813848558114898444101407431676501014310816410424154565320611743314301596127669958671819228274124037680743963887435904301088586666786925582950517839700501719723775893006124818719918750955602501012291299659385057609752027949358228135853388451893357898137053228091403661139565680839194730570281410738445023907610476200982614845501598725108937074631938644470444321155085143652443246860807358217214236896881584890647365912184864139969875451406142580928061780570479413462012871514900058535762789894684349012220425471601545883903704768534957678621070144369924827767925205363947743861228680888364715078710212639040179417927135920992974447830271717988534074445127613659558968089790428978804095555501340717405312749275215054517524639418908991670650246891506961398693379675711773716513141678349090045208024333033210682927521893669519281087914849594943310293177287977845594757689908557255801603506855925534804557167081709211144339978895763415376630769755366361230910854838645484613067564107653743382115311092547155171756388412385977202342245771525442094847166413563236682094882284302987934991350630808993239844376785751206592634194711851418699098550695236135617966178478287103156980675805711156852151099476159134187338271028886837806258226654059856292763116134701185877050951051083592533173544108609373553066651464840183557455887935696719894396137985225475010739896322061993395576739415615577333432249221789465619653942048278867814946843078959151691906468868321992005644261074858681090480479947141045295382116084495752841474494528805010374602516345871852346392420833522454244653697388640357234195397703341733900622601306064393218327880837712649751617576584836130294507601540431782618027551140472347961584061377672297048239181676258208818807773241090002118298958664257183875729186144346489565333446883642868261156846859413607820747873278291496209049058719511316014460339903476089162322749163068556806386858130437410487482084117259650222499760251000161483251376294274259478275262886754030215289291840027623640555720043075050993790790757088851875786316354080730237504382675983433496153216312798890593321831646727740682411377014967542705698829529295531589230313912916992156713311689341365301290377864537514432031348881338862174975618058803052935162204568875917229725297923087516783210489008974237081896346079945870015048664850053419524406048655132360708498914974338998411504820638711031623672093506225008517597060803676225028752636675767957893525333843867785410727100491800741442228631445970687162990467093459221678286293253784180379415919707459585810097923647639982895116557798206442969509518255046599905421876925176433717541769544358255596659908537277100717414578449942547250031436819675170821232990274014275068205434113286779820923694719170136404154243184180971534854924891994235470129004448929863366076285344861892342752633919284178310739235828008580550951748623490607915833978120061073225664428006769006708488490929445673233791855170612245207399042713466966403472433289614652236390734324051820661208576357714169556235158445530048561463891489075192454236607209445865492512366795688825598785867127787688079875055087285894189527707829121890267122823319125433981573883419910561028123301575364594940285687773344252995913894354740361393645685238647533875408875602869114597828575424533425853346718197761027235602376115224560977075945751810611598374144853445072607374912592956328532679666830626673908727271773113618517071278017579315461426142793603561985677789612266386723275033985747390723320419327529357794339890151848879618007639784022516911063437832983405109648724732679518307551370691698464153767995817993756807486733333736228451604711328954311433317523303214873849041086808965530789850318946752941579011670994604286081426887179734947241529145820816657419272178557994494111962954719344370364260009783917562530074364160558819268844011276140793834524492381283348205116982540286189809953677529763316819681598104775848186748707646853912555800962819233319145247044068443828736460247445585110171502555431874960261630778412184185899039035053172542837168761874547209877695080761377933330917778000003843972125053859187684059126447480735751843454218828671140546340196192524443129037870883595741141286445213701795545974934356766723445370753242315951312292251726705764871024204955695217054835089434114798414673849152041713242045557457475961386298610976659553120828245976441602686900319487118432082918145261166555008175201913237853446944290993116791039266789132480471502498431942585726808626339680457274755375197578979070463069620722740659278393605782936456674749317785128268522613807230711533790429159532698183468844873410945572386124801336172047866466606178167929895621939919625477776759289869890527226150672092589183942186397093834944910116428160538701165231908079160267155600684478324406392479389610363199424596107672121173826715662749184893386177300432572256785566520465286604290175761695021570816170086135556767210727851166124007832272437720622530824522913987380935405737035136035523447256548850839476205956343913250365456453456189732808705623273010059621336251192296175977632347375223133695862916531163518524916710151861615442053381583203211711497544200088770363177155980483129964997983873336900762338245227124681166024699126023226910023624098478817268967529849739448636555499743631989444804636923328387303928605556633666850804698768247522199800671894459834513891152396149466559522231372461626161425717768173900590915739151454447405872658723537317362143306317042715694439323739014833266918510569280929087177274749909390666284648836599490456641852333402090203016813231961591432085539732217845858562851731350493286398128985593689440827215705578033817395996657079267775872361764933748616054431720611025296955555453344369692865551621094490840061375970805067267875537242655765801670453599098202487532877116310580853373040241063947704830820865290781207553795446800930935563995450650453008667634101415017953010362542578679376345936057933228079051947590750322182763903358911787867832430126308728369758892845731263823676494341374119695002547553632740019031598379436687824223732025755226632189343647656378824565764003267042131268641313533886022070906574793256512018058122228612621244735172185480838334684223872549620980673640396724965484888820092855865088339300613660855331126669905095172424304050323319003163400324668605011578050546293371812602156069060938077845891281583429913268766910319725937994025201382898414521056324409511503470846459897692875965811661689924256698321125883628150758801541214350998638660645288843467834389338564512877862261670490905745271226047833546340694954866025246045698455358474442866077912535690933488260799525334480467586436829873944625259763543420699629919744795696672313136592105006990430263673098289056100432800520761259174778127423014940565788041558326743804653046404087345396761439777607375711434008073889016392618555054618510561089162711842109614787321468893010216702632071551428309124890827472115590812988684594647178037381862772045207775381107416148859491616869895862602466963892016429283751473486203739948535794504256224757960829431896632867961458004279072785672031696968448564323476294093286138631519675430519070169338998356203280006825908498012816148496915119312685000333222083358536213579874645816656525567590003673448816790532963630509813285222140315284810921688452545713957307526445708664151556427054551559823947646140862867049771593778606257221602121526212567551324548905541387570296395781923145306334851968513733131538744717191510009071467933064210647995661617186571450440844110810903071570410335405231008389171583544982185836624311140104729724776543628695152339561918006424344771176630977617676675495081460685120792891237563017975242998813122707158479736745985047704499884393800004091181745552540699111624249185881573084657242552162810853195111339208958786766625934191642759583898171611068362086034601756583586490569762422927183421449754969016001599603847044276208773878794878506412872110803906697489782869294417352548355781324955996517230222206784739750501171855087562816405902013673281846837688519784429985260058954084896538719624001634817767328685097203924438957358979494088436034094374465152227229088681079849299159265773730537153062258962537279245880948713272813312180202488745539541812304084708876491347907371313898549547191470672366776286357165197448788040052903239138093610129996425659820024830519238983477633749039398260257122962232401342665066628693434445509436483544757825957749603663861501199283319518816877092611257817699737349228878140699911819153810644900715709201775719423062416509197652477847040116655988129217930949244835149035131621553344833437511742109912268014282418221896315067288799633065285034574808644784168712839205002500655729157330821151809646358048868554223721263606328815086354933867402202073774556608143908944958336790216667226963561445403758318538839352594009488453891894222176330204936704812196312990359591918467203641477509049461644280839991900193208667313559172985652444237850024684896635879528902416103508056957321697707016964044478259589170503187144893064977127640296313541653076256019733810850726809993167129018822609065491358156226764038494467296358283979345253744730436130664915956623807524632325212271225572519302119215663125921142423368072516702183028610327478024849830164725566552302780937959213157610171049724324613750609391205457247888326029819824821327829961587411865240255555619944587059867002149100841698392844493033634118646612234132352292711865251005949397796263570283798294079329565173588540495436583532455858467974870325497398052681477648609648362795176398742198515429211959585623826447541081404032220440327366076322605266040651755316184613807824909898075036023738202328318227068625091601977686693986938549696520091088635585774979416110443665272222982826876988192620230814553663546570997775722697728121446614913913097880944537808285839941934023127868024909003909375011231857291328966401149327822674299558562816862306931359876727847675524419307479181270354983846512122815286675632355475322747709824587808180301453324764479651589901696433761002929036365607199752720758358921207407258417769530269417763777522811302514411200377763519401856620872578399024700521141069555003250779563234459966644675075660245728456268597953662705441357066755598944064189058732221967801803575772939773112630535997484236732294817390330782230152656393887522680266455034042924887991386517707615339028523296623536745806947449207861390607212417214580557874394976533960786271366110818313095816206687417377927254286152866019634438491379583522459542902902171567450863590571324455001069601045977979570363381891564718469740731679689460688200765894852292336352213999374491384666951144610277045194236047552572865322256810518854724427594120145155579376607360572859172138199774803004378284746405517588335277600782286347776666565496660351522695591780042640874767260785162969097805868788909975528237600235277893730913864466817709851112758481782354536679818874251768983883248063923806536394045829528416591573656149023595619650409519370887292343269171305307189971800624526416763290136015385778537139787078616876043172102763023074669785965327166909750375931763315412867803806230183424516628707472297905515689437911406992166182744245112993967873889066292402452532951033439789207333083640464075871314677951961394578456649364814804399061965397655996652136583622051254277985868261221964232608275411795209173363596809877636225220140080103955955996874379306959329666508993582584569268255823635652283659114453222134733620957081875929038877430470112149843700519891725890275435924044362286219020285723473281480955357043523669344350214043714403660221650212257553573055670801142721770171649407036935479367424050659543456629318030949381758851717824452837160610304763551660309959560251264733633382588318444318518276777348788478701065973933488964110559890177247876064021745177839493289174389620299903894357414691184470461473339231375471690048169376371569335322056968921086536527817701962344432569302473943171611829294537183071309902896491159008108539983422651033119858384422627561040869175829994423871682503402156276144303300978870725563819809596284676406451594893239539054589053599663557595389703141613707504075832881926497694291548227879481579912314751502608555786045032021587300029977224744900976146262629291456853049266857995351144667598098354337854543454292029115187447980066924802036649495768459673470287722556740189379880166674746574644226054961342312308519638990756217768631769623262625434923060668337153447834045574716146979582398104506908981793608248135423222956691866228236400057643678207887611206394773874888585936289661929181064269933502772126253587411278647536667713718567145762048599432491479635638380986739962026939925312781199085048916475348803556632344382822931147394296132348834193465776077577281317891023172387057411198060800718934140742096347983609075940297471606445824323845227556505312318004899249113443846433510688714770731816827863130265847308714091391433325972246167685330884126814173929964442845318831501580558800140692485810183090578734887282708179958465400551764072238017072290227934567430872780100150685703010709271460529089283268634378823883760078161040792916609991659595010235638995721535240592663114169451959874204455278688524363015657232656669760332169390613422512838191265402261124221788538787510936636739339132213018170603638464611659283281519407067800276576269813791941473047446331749851585154594844973179000822822334160006443731561707814932468563158948995108968152115554543138196465781449615395974880217672017759807355835122742662362574718508787344384601050836066958251807907932022690463263627820202793021388319722614192422046208385302278436433396642705579006450674873695899644510603831799278236630557167474431984036605340487633791857389931018800797186417725209674098080538176330029419199193416732899232590879596471889001089574643904469841937774573249954537975054505167426599341902873627138541363865095176756160496698711417184745871634959233119756779423771927662687705427906973610066783693445051529522677483632359939432922782300588410483490451689289664615869261834150040833096908233204469283526262137374107993841768739784975520800539560832576906483728327611637699066893320530372717244299181711033037682137332523418164226738481039274986256690391760359652604858231094236118899094931441753713321306317080126797534872433599646055820509591755955303486121129987328847812851695261480027415930836191224154975922242398075583947282371430708221190181294148240300476550683241936322229068709633077629240592091765472132341470512142943228096627409636565194332854201280468273234460271802813615854675992755478880559269121323445672486506550981736619880113691836223640683362481811927330766136592442899094930021223983698907690722176548104419156974233470703503154734497784176878843119609607293897377186713996463598163205511988350528100129710050128079201654291774063664251635049889585085743166636063557898784824060313255737308774672961934101232957335285306281513092616080127319429571199925570317060748866650199603290529815231609043834625851105614864391441706987650424766340027286140050324575137936335355992451621338215394067189654810595487603499893968872166684914286320078915568042292599003496086738425457607087501931705427033962905411417371661377230792877935480191141665912271616201340054162141240833199044098026293548702974400738603651088618724509872933289141544851182225050137706041931395189450461559975461712159690535088749261279794758181605027163965190384314909865047310895340584125717101717699181451791590201197078551219535125960503978910946659374745389976999490469214618267595149381928252431336864467670793915648536287892909855881954207933876639853408131387246559869477890375519976532871515298418586398462148273007257997370192943400798211287572206088802927313378309543792429750338863529954257625422252336715325213910343456782682331680909795874039537582865816049988104380078096988064490781044593184229037425545796267420380349697922276760374517794745116396185873150821212093383249674265018368994898188722346929999368093653618636917423982660676008165304114453160861198546431582029175461640566239717122907897849211322259779850335881029850281542831285888717271640063391217211912301405387783784888153916211968400905961423292965736076915409382680127843025874647562143666181103823507559161350287730480428596608239673845118718219530402122231734792407306864071992571492512038353759500157813402347050980524701420697666169901248194318763516369224784253445520407393371331483618116480990613665275535179182716969053982804603816920346400430209142714034751551013928012869784352671245808637964639346490484612947840265691000788525682771129480202143450043967722587280091023035405657434743884868277566778429083934415931418286459637850198872138350342214396953745566830073877421600215267114011200219238429365249501456373149287306618863671407135555830990691043974350193189230534702058407865965382745262219541435628504979651316939356892524107601853360063750206035104970095603935575040973161376413386070401528226522459825530247824460187349863212398939410552329893255289424594751999260311043103977761783612360225411730910896148344875652454388435192388156790279631965479430924572852905243563862640178372908823164003985088261386653046483669862740430385196185193366121129213179710217924136247542843121042485211748163237868688046965385076917449087896383566076747467386821325203845381488828519178332933155821743803205170060551674092911472328970199990855802046703775070177363405265909172697236524400432792740459307044809302307190127354332077195164288302456511843223100304441101064727945044769743441015239684367849366536224243636768565061211102404710925183805522950169003823042050415726242823995668379911743134579800660728908049284405807486013870690599654496722723239815140701393228113432258741981360275871912187081902564738898619626129966652902263310021464456447954026963159707914556524934256092412203574097492661793087644614409571038927024313898871592892320909435730091619311058807284609257763748825640276257504354052664750893856508759537172590686955220414076193557159559606584235278703760911461100712876600762954324896829182750729315848885856038878878111019569852101104641536739557581798008807835511264706377719792796344848829150842786998854021516735930983448664055591519821207938975705249091432637489918078439931941758214743122467579020786858503699663526702341738987937526761850687837130555976417981494338375304669089033403444908161505651540835804237297355545815162902566809242704111794072383292702955220929253590284956382542239279548759105431360959775248579630008112883061890942850216070467228142012663161600910859231709209139521170937837063447090149096013254094325415932326742156980117923659833598752916987873634221852537614251700658961562275609183351303889167221797766896806774031833113110715099101836339366548437818735834526140514285064540938252152915467046709825860688751921469790704347768494831905532140302854957207011554912046173316323264880490573218521298010227136131367345589004018919807377001438770095959351853276914781079589761616637938467459087773133274573677376325839952261708840576407426931949394250621848061645878095514979522206037705878648242194171166082615612918011202942147289162980585805312164143273163566331239972941144986796958779284613828355734051320800396660363163826676873597262085212442241651727512136680924431012834632682794850647884964557754923981674166908823277498346059954212566902267461234829790665975852830074160904500779314055443931795401914413153628514642042038414166503783020902027436554186723596387708320720836687116910958487292414845290695126816119320304796565766554542062233965416795135968998357101877349286514596126083731826710274368574978976943493877282094058174064851152812528476914382200471962519145545267119211303328352012055602239213938946324516383870590747955026939223285351735438750064881714525818826767870373686733136039432490826537563441358888133341529101894017325372337812637633329013061249636449206484871226727658560151578672396628325779085819349235215474812062913541642089734989470263703412552832941437056378035845016263545390340834620806227229198000384848963298236069433739710341955687496844736955682039003368065062828166568444035275193098665416085611345499462715027248489905445562717064939718411824165363166022946135506929192981591105993482604922646077251735145527145360955085573693326526736557094625840424629346644104703052197041519800359518149753481628334167258969419641059151097426516620760534871118745465774528134798971342307263721992073532588316460318084288566727426608974542087447890832110530630365839749091732648649185035674865183404304651743710062554819664653599856621207746911672667955783188365283160448964869527336499631946420891530051184047570267149343562346208610051069255872252907311965760611473219790396391434790489697164043849017194219499896512062304684944441517523539422082922127864567994662965767516308458639214443630055170079817739745278766411524613015521138327659061908918161804883044938593519847121716959223960239062302872092871763248505756392078398004576527514425002043330357204168841738445265175834617471212608297744622927901066593656310407522851710851255794102483322044693648088713955468793124065195900326226627877542231785640767523783980556290868942222330427124071806221756112541588422847708438502714992891643562135201155915092041257518343187791295260567102429740181187490852884510109415623978480724190122889272188083952175550639432052437028679748021213483652327350251250656692669866999303350820177461928784676543726991037481434196785437808903697622061583660647424676888327550216400030852155966778946587454821318739620437694626331977995343910661254814913359229887384939064937682344412220144799627608507224418893813003401168999620273085718478274232348498349028057574973791957903751222421574206637529936913768040348128076633357699227810569798418797823525308449273457586893771371608031804835620002908088675927410200467260835665382455685024208653711142924897866156499619634887889354446591121568003009162252064928755016883617655566486260840663599868762710674917644943670905984012775048845704867233681467290401107704994146306425522089361587627036368996926833282553686682651166445212389307100718144865523736674129345801663828988722021174063267298015870979541563680347675796592485789371904075696569403478403843114863619094440728680523486052746630003346603797207630517330524992560634636572008244071635508092685470369651284766655998988653758868994139130684389269311430316077448330051515445498088067573089900172961209203387617756681585735151855294064519089793481746677496907438766386240528203646173501019953585429797522015113318199207182568691812442599154190821857745634636379712585041351729171998911096737438191162839007447908127861009793062490012893613383949040908999673523551662459212532102536826754675729365629203760549520301767826687536654765169028573665131226173688512844263501993648724672801181097308541032482126140065752772998488227628425961605204706418135694524838261474486304010836596675618800273401411962999461155842630177125986955637766374829229715976628321728058216901469764928742596534166722335557856256394574973091777169440443446190399396347525712194156064673699411085063998075223062999236915665667740427941211676765645405389912433297386059628088349632454959648411498514061733184580662415956423079362330346461361205909844571271711659835684494897984808849622528395098211691385057426908213775195795686879879975578947210795562581997906702549479486396920923051758910854522968242681031556291099845595837080413842641076114986087046553709946807657321430136913635622512761989580002464154580671872655543423783689041316639746982512186857469973406207352220454397572128856631874533693055469355845245379704260733390348036941670415588805700060268487368331917164026468031487968507663669908045119158434457379184415477393154893226381906615400666722501240385035590728687837220375294388800530665289925139710014205113809831859107081478445121298554459331033261962283832435021925809072781901108750488042126707553839663518256053314024836062880814933510399008209197111438003950808987219365536545428283969877388959035227496692076270433529438627395511195365641372355933007509703607025932504826641786428554421677472095771446466530934395199036997232174854166018455884615849744034701708075502448949687652245863652115872608479305546784983752824714969765504710855531633442915388395541560866815022446555768809322462016909689829325251429987637752257121137576143115706067720671487641263689970798807548761517901720758982536866597156022300274980670694471369472535998061109561555589666185991441487337222777377325872414743532734418603851498000928290834965586312747476988933637101161971968616267731136457652455043711948813719756633148374788935649453981475075436039846847238757563009027925649175269866454710210075493383605776745430266965384440616323939284019083217476017201891460254954207021035500210833511736101376405242763239089071636421327004910371247202996656070690439231247503326583764462400197334916913237335624262503094418520741614614274059260661750364178862281763773142456001542105571073466116426561020633192547035273332405452030803905605544822593679919750996696994981433073754009429765945496279487061851045066002531600272942113557696266606871276400509674242231704159318482972343154564436599991176993941582011856922710564652195483510825927266223025079771459268245695663760425708523470881917165260001966096350465469020043377165755624423223879730882241415927903377286501518892301655589022606037950597876024749417911601331971568016466097857911930404080576927652946691748650644446726409169206035607588172319203782204905656277275345249351206569900819231076815574337151930342851096240487656650076645097509443146547138063812277221990681739504417325318122259573094585809563506349083469530588646246688362929487494290966992304287257644266609224767704279317956686326710585968913589465126795625240364603004195674511955456951041834956878229143983336521648423048294566175365929406492332365702236180216798800048678303342671754830042799866646729300256839339873827081964648871199088647256911948594598695915719408770681323981522080569913430821877541356693564698341918201814812192069082716479833544762247897100119345873420697762070837257286117942177138316148770420515376380339429186682031069788446984872485434857831758720175819657342018906501862391750360209262779063493168194552566229546894995873163318006450335303564881711117688988327937963923285629233051693963775486689425306559437097033007840955262239217416563517694979304611164284202426798757136251325377962064118372434141286125554617294240111950871368561415635137775575305868777698358257778629766838027549604073184608222473838787759689292653099464340293559370702319628509902790263301962740798433581165042026698401734417028134320970520324247799853059578812863862797007048997182658117139702762111669012107992170944734697094011744641691121602097748065723777085437264884713390336268036081084245874527716328153304594088634711207173984980231376077306607913811878666661246798428806942613045703161103784162162332814318542385681565153415893695871176378213534293004225613395677048239641023732747940437694210278086759373204385881970622754927130240570702798910686969867503113765909207742658059565944661380800868835756677326768767031109160203177577139761195774849463168724170535368902208117867000275776514145659283192656507299635964049052104643218594137926059991429650297296195791025317501840831647344198346173753673529872338571612906240708056039360139877390231253862728198678555416348071969812725020031596055343486378794655883037256233203175905693756594764171790139260488315914314675455399062425394903848982238787018902272008183598217749765832816105884856890220084072035366717355403746477557882454077803952089070113754035135399413009460709293270747445600525805102723809280986709281315106955563663639688535384346271838475880188788488630544822439743750470600358590573302138441808507821528415415659962063212035124869219258846512037937497788716643132538695354917562759773324298607431196378570021324565826458219713074792672911534664848435721745423172099923820274657269745442714943914665360609020882771048719375054036187000314230014347651436185384131935759511137382227288340466689040923479372789321203554803300154308055703293326523730875806043485454153894637683437645862153027329126004514563378886270272022245160603262435445224733764404762794867233432552748881002142792441285051459689312902968086680970887088336003626515464622508376588227562585645596977109164304614266845436707571324184051811655619785901815939120450210072621656095478894879512031568172853393192728037439480307633643715069995663644977117265134481658336021457339484485360827301432496040125707906320337898188921754984405161652020642076958540246738544673244996462190988109307440129869769364583232363849469685964025601998438936986736215464543925805226812063649036492414850464196767092989263402448026592385612307690418335747955554135833849747548324712917291086718657370354494762514976259240387228078540819410769386860667167678778440267717652812513756716221551969611734544287157250944345831001578675825788122173083696585271987656896807543306023124647778755030488763181406747356184587535113144276421880078924729254108304241939439507468517607365522740753303462293193580531487907084532803858293855689035101681045313379837834830994239535329998608254277884800812189086918370862830723667594683766564551345802158877944627879360131669821507501263252668473456699825922022943035796532860124229985593687425515461611420871764721081198009316277099148305757911556979087782828687022515743627083247270980529487206362207273641517383337275730806319964244249327909877172924687716558468007150730181530816191401457186918525922311539547681213118394278809715591947096569324521774408285735082886348993373765944833842851623215046588504398722176676683414462753014601762907040157140085412887134719412877553027705933629578360698669045999795656990950487837866365189463179530287108267186669731460981177477333215850245450398651317387965208119434525778071794729696792570693623020243548339910393484656784543021524660709555530443258114937812780667501201438226262240921855862863534168802479677538593933311487704936643258806674186795098164771294103266406699965827490031445300127610854610503162918278804677201862579633876514605231354216880922013033463401044719695148832389754118738990893516887658424969904094148344793726189883392631232585004057075832158334405574670331760537631276684054278344795226729709643640792640558247217379213281217243816428172134644045700819364870699790601589569250809835844398520914895319184614584344263616025005476922840122224686926320147295487265250452282976831244278896467952005410255470763070377990648057128395745926819266919417353040119403114757433677702915512426244287357768673738839524678155873246464582460261933908220452714066541863927533558866194962324867923926619239787730623644220585130466391372502229520951582235618490946905438570413672759414537078377914955390351494070858850738318268465507326737864906304831478490611421902025542978348937780935183397724720149165274370356844130434462788326503613692603032714377858930929191637172154238506280593805570180246274456767377981240484981826096466163467892504946650164327007757528109951150071503951448237953145077756701428065769503212456725478560065742508887011789073514490687686796761390467358855147793681441701585417620189583424908217144062152145547746855001090081635353287183776245834053612781037511061652896232695579418689244500705597420586053429739089087976663762032698780560178372932464752248484389640483635982549559352810019499910842187405968793900262990159358749019504203045635661270722691943914311383235969203317846039912875483181949943645985950665667471637620109234777053043004304721318188613140437032264226462312922877173926057730470970057774780670420908990514323585249102273474216013269477246067461605582456863705891476809642221105869104832779100065795856344803536581240199947477883194952964692182038397616280990513335310397228892971596127597449120046861110803160479765143723282367779763728136527178776281570040097136563425075906534572391243654849034836422693543600093555429790703329566383027522669761082463651704838204469703541384515879780162466958997939383147525171446719025642377042323480796273825800016249006747451296825114040337488717569500035890321262859455758089725609923274913530850213205250975257675943706659629635446326621294431700007441768157638895961143661866759267853040296215387138980727173451562881238645277139070512151449143250676777734515185063650432663247640157298133178432878039879434948966779024396683583121389143668705485207297354761717021341938887443676486291741008555322883686874541939630474968764625856412203774432170612160029546727129774137128572996589663856490369525086771446419979732183684069862206968745386745937360291741370896938398984401311337236547123714462289404561317094003206895122762467972467051914836041783957349848853244243507870187326345337356214158252490780704395970056253552561219212041149925405385635372829425128532921172958757661384114114144359524700595448422853780084030761561882076658518786025334318769121786384290999895023753389623765249095738611857685369291861381086633717292142949707086169625289301059986739709173892132609248604357847416047423809576939798301167288921785842404344184788322443714849392100430727825246979759253840291643653779578339505282109851894223400045314245795809190127361535423697246100143272420081178594088762491827131986192178409597146835665333525212996069839235616354025548955785478499287149836927079135708769005915744243653667400055771023206330405325351467907473697514643297225606844221525050701463781073038099841888113734248118943273071546533444447544548431840723378685939043463719953086386445028640044022246612125973444075367638772257035917285769482283559822719347442455626010181344428599661827633442856176372087329957593621692596133510177866130231888588145023753695558617202610944694027791533810836294144321850977179610739264588821040854279022774979140472229368584118986518333143827290547647503771720537305830561526735711810652958824317254847235626128162583161863730720494722996079023376105484282319291740893035830954791939374206096996995396682679268865300427047975284843287711204202327408622411012629511698512049716375512674083956452781818937838254290192982925428774996037570812793638557552379658286189334883184979796051789289015580106745036467089349626019100538721207036949485393842283516316306258514180085574275264845346882759814611725770240410759741587904919489880725450004589942900582613183756351674696995148412599778030600428284491674424259811276705536596449101705725602447491334269116169287515071086072999468901726964673232934869345814303065050280841193789639970006982808053219972578224406974020949688112807039867559522189965397883083302505386586223241701260575418951466424051691491145916170968698656563083365322096022341859155060077628277343281126980763824579335026214755406219536050179060322379709172640660645087279282328301865887485630628594315901696892488881444529656256259522572197001222395517189250171522431768854063932576705310000634921423728459217947542449285332857663496087460888713493620520941392693618078965717827406323086371912533792717282583206487475741317009240763886178190774592940473052262259779490001530253023740747546066179426543065329912821365488242286492339703679708686936835308141976834980341042134546841008768506976747899236790450128089546143087007045137198910251859262626212328484539497043297206577429944162507481134751474604352282246583434896426691097014223908269491974777929215142896458461149095403021287597691389527146639039701740840843595340406008230344563562598403717015909542990830065380440996393104648896620042417073391754144344017805391217009596671309164081843070936059175462874717861297433474113137266025376835507182955211983480496458215585867983915254111858049288736973741219549171653872544766821930303541987260462678379066867239144567780446082449009623701490646928859663230800156021927891650211455210424416802783573514191759067360266201662648443219501430428908248597108557735770184065333580587581556742492151686272210914061304523778008393474152301162289618953023701693153214768346426018645446520733810084939071498044697270817327918220830295514377523455721410434439812332488379977052532116828099636081384291693717481628630421611378474128732078214960267903950591179241197329708063918616334495907190245498494041303899475736242209418878175854988630226161881322366759433352080964570055473681482740306829005967524990941238201570460176677710948089535818459421093968174820444306607651842186639700831005155215808887347250050713908287330172328613709918575164341022059714325148796144515682696813075433001363351752567473687584029714631802013449650893010349900414278410793711564512893537591593944237883414035306222315240924707180586722822410811354514846218694730786857079839224006511787843545382072543888373834973651160820208006121147957134058763957270516536518136605132123704896256388691602626034999328388606353892502522447817219908753588237027090829671221947248584723914604259292167666074764907605224149515444410730288546917672183117867208302951711095619717515634144032068459465397202982968113842538717680984504940879123355186400560166398454695832502707103272677178564341288616303932187697951581459861630621623697601696435076136305326345716705903630105984427414453906828473055971471508833446334797133283191155087177235313827112898169885283424824305196098047405281305960941957300741536826605294010387689448587082145138605786233858747224019670637568218515968867334440714899354553054497900221035172487210345754363988307603360314933973360456130586679280324869923010462555979789355930733265799539053099551312842843567201823520572871847930309485552084402944008242971951897658845162982660482206693894524077826921342208544711015620710060298662012930713145234201837543266059487915000162324824796633323645569713843269861687035353044082635669701416199876647584439917129875900782819382876041658033598395761719798188811170971834747345669814219085529052892981606632642891857934685682987341953702911155150136900437482322588452430775478613012970915594746459820984857999082112390002107025819780006279893258408666642395324070445935991645010654442447795870430605694291601257198542066815526569842831332105214645263903138428378842052847109799399283088860464297528677466328997627059378910991009441962182991970573434518335032193809157414239835128076268571019151878734410959482152319016577092343675202133365689968582087292909599050629283721998631274109009384082256703409499637703835569009754308096301700622197151031604899928560226379056557277611011354962502406584888819986817626185265860998700675116895810708762469752685200252372781423197390751927347275852463918551463924879247956683119234780130660467304395158276410629045532831067896162844173579423114359753025240426282511863121568425319398194810520264671946738605180792599628662020387199326603366429784468882159867158217796944557056004067727428631234081759770343269136605003094702840006095013415230303885650800386530129388276439060492567401977442454310898581830675613385519266531402317122319422341955443384009976609158706427335014330904867120675044872837369435260717836720040740231289533491307262039320981963078817091226215272131753321831043151732712934419847392018321962511476319970423444506376721607140855107482294837141114034746862516270920567643021111127578914500102218446512253544434990214629704333378840172264243829587687864232007602091025349356453589576822742890481285070136190298669874407860597975683401801610928340459779552920304201076972071174408636449256163568822149379545634524944784746533995038243459393353740079536051742580459352844879969408176818186946951968927320363829090323203160365869646890360956178180153555619945863819921527504678571231318493224723376650459536967121574379078291013172122232928329282666546001248845823446795999527098583366618490837446479407664727870505999893241953982496705559405240355492137668828438252100290173308637917115305074439745762961847466623642936325844534534256980175738360827126565869517507108963573954985674076821399741526473596598394143185102601628728790288907682016453061061075164305279121568291893937617006701541191695443856931409465685547585143807940555637455996306479649878101935192984787293518645838635015514585510277423710778977217492070441396720111244794023725757204580593789721533656834119256114687235959188082341038297008773465909484746299879505089625790272594420622014025482682263035741490373790897288051416634454052350365114618782325297673176421708244287930731185615731596307882071048481338812089771861956176631897279781351523681516723282183176372552576817647297859859571215686391782537353545563162363391947349772335283291700492524881805709610112716924077142380910723986600065168136009445775558122233350313705649978566404778734619537316724838970206774159721440846986469991311359323533816726751223172492470250738338067253241647081182921424068192158217558202486214687457301088303771018788966254355936781756047485394821565153704542397731089997400297183540087435466999367750004599289760885708852790508487971906697558600571718367452092360202605527043663286543301936021462971932225972847065463641648467488208198364725256311877033628685658248055733759508223752839738621205718623932628624126452206565401716918534552855298831425671491481639309927070857179050248848952760761128715848151466175809675623222912572496815522475419259736674206500813730644848418520209200370466753705712090018437286148568241455061619335810715814139915113045286708839091879550076461108826806082486982933482087565923087469885863391357215216032468894667425572381393626515528667057101475014817722831397422807627763577254336598297907338193637459551935375732351231092754504132126775336628446908629728465891749414425067150211066870598714904691201834738733296093583544208666705658406646130328433620539878422360788039415266154051159987456610041847911980719970822201400791540539124225852726387480276761663342789603772507620453598952480168742380871365760449388694786746316692004144707816318626607137930856428958749732884883191859572963047110659901437664138031676901577935010960779551086700508990757332352377490648361743283903537573627619555795656711819406115152851690197775685115597432415804592276985461658918434597366233494955922769683314580292027866590577911877907159790131483957901453991046540210258434657762059510845858598155367882820148037251515192317561822126577090296972874858161272829871040451792896487163009079179261403804527089232936371980817652483595902560554404249594460040781685415202632769051075126294382067126099700871918350165853510911617913045922606867568076677027524467013416937991407677412045369290442479966091899196538881094593884920155041584404943319319086976916888081451252327953472574853591373433413725768556747956777885427376604670106175758164505980763721771049071813782053086697639655710162178205976806207918027337623276093393017752098884617083895258780502123355047223306843727226244574421758848263474163181554364806085776052696632617542500376875542631469431377649652620727308495275044399199551498987514176605634637880870653349652735308396553986767666501540712653527383875931180130361228761037139303758341148456108709689402111719251437250725285850651516057949359123691293493521243942899430146168150527644705435907653172836772505831492147409859898639290475602236775560767412629545055598167653421352532553807076403202353330698429959558262195886335054600027960241419206557642807070604757898076624190780947312716873120520510669064742495426525676522607085525055440301852875840646242285420979128602723777503966239232674376958672306292090054661856289487036664922693702552676006523817448168845422715293235096805651525040343447277178422151083384266245207295828687564040470155062655380492118613091687201763560811516762382080215747496851559948888164234249920820404295185737793142537084205414965591575860764750215382799140251406270013097369158706948016531087022674612943816285988689811057622366600439571633264964948797528780202133902408396185715858765758321440429523369936742055606985141917077116922967156575151386272938598307468918279762119192973102990994202200533915016969423533121527340078343788388296948321778678606807130639541142082864309538160463782042626897613392762022239281385690262340731560798319299024728186764637405460379838850871648472780312814061071117422553498895483507004651596975347600610762417011699056760702185316793438424907623269281024368590181814419568307757044127580747717599340319771745246084417073695514289187005036300244885409799770242660224459333333846851138318632326613069228084365170739431175161288169297497258000397897692318042854312831356860868108011607344293540269052524461560027483354803579291449299775345391375419728642981185243211095246735356113055117462708768261083937678577048789310350531792010465912127942805202365848081780328665031497881787701452233798004676968958577925605652752394979465818670080415768266932439127380532157890084090977014693032736266039929011357889848870229859072008419861935112713348636942376556291973906527658892961439587931723348942380179609437778334146722986634243711128997545313041156195058456995480302493578623297069712701113478387927698222895570694035014660284187769493745581506773351812392811342427828978201173005962483165996314320485106412240279265708793071513264372647279133527545685662402365208282801564145083655500216487016242193996781676530732810260380322234919552673275402229843532252946045860825327831136306393107688274780498619253828620538180013845562881562165501936827109894898013281707848329389777730624631365466085797067748790900943938451636203113019520933729125870161199471456987842681591854055412650431831880960588902051556879798481312343303868115666884980908815164972918221739589297236053862834068744518993252063446536985706257029373037511760756051969664536079650463938378638129945382099514042109405448848070062698624926351992656486516706615829516520923095790994779354951880076447478893039215405609661961657711116985702374045707701533145289684306707607385588229417008418734553469892065940572181941538268441565163979182290937064566155490113303074760757619601613626145423968585469418831974031261611504865731812997287693684973056653568259566269137497406907330028150606388571463765279368282650645238770618518224764561080894862248894330838935364555111208008842629739302856337110623433729655270499430702686924434274069050460701290716321945135550631793011155325900873989756667225415129880715534419380326342508241761752023183273664737372990239106909448880536404073116994386379639269439505050983153517593765030418322564058994810953106308630826274282758623010935888408726919349349268685646663583151470005155132937804195570855683679941146783586317712131652608837622978217801990276576675525688141754357308784723652279822315315534389061103625491132916937261406101755458323554438658827507731911716427914211496544335415446627384161600991747971642472479031535835951562209247707336380857630246090412788753951271143916183090852502422712850594816235683510374495443789976232055710403597885275827396144657174688696974098885778869981933219295564705678062945805908896428749445857976709885991850472001123889283567389914602850242088651589845466516566856402880888755929303676623354875122538049738804297542381502672937236489200458835893044158512296290476206113292137970832388762364516273199708752122536633973506474725021741966157281562721526167925139913436131292008098211014304429307594930967635064860983988175135208896947824002005338291973850637283436083058566912484026137357508866877290786777191426201788550234640378892173481338845047286240398477680778944691664016676345454942393648264950238730564538879296718934877341599006391905525686170961232309699035898915770702620723028594381357476833605249399426571758631706756146661380391488844662441791740497377411364073642670269945767016523053281894132020263087356520493295975756778080733860726295457529236134311566498985559118888114258809506836071179360979454037274913797028702519475215055255312275690521476481450624035781094706363743504234445581903711184743068678785685361501825837082227363351765184684096462239066001141354383324917836319440044898592654559317296887409937855549451881498940057945079828456603692419219377643880547116365008986813616404497641088654867691371956165448980726978167872117494535110013888368472455668662404902697806504258466005034786186691993150804401753719988568236434209336079569724887462703595424848156856854779419148499126263417615987275693802494634702166747561782869853379511072262420539635898679285423996091065228214550170678542576156691373710189637406255983441599171256802720990917382622321462743938450447094709748584255813453539495617038522292012219303555725603128135090107811014846830498639232400089203040806825558534981277337642196560738831040904557319794372339267344549846119553842093045336660656600832579280073637786644868498122255467894619204517532861769432393915048176660397076949068043495042950201777578462626992498253555423279853354653307066055455032437339490834917333361777433332233550694602714947431448351091911798391301925071767228478903258171523803709563978605693552262103474981143950858745217172238818026460035491935501303033502787837403079273299122033973289439553839828551152456348304706452780961573040027131626562193439648748079946778243559611117627274928143383141625913201430028437052012333837558006763969817539336578093747219763211582402785922040178015860018573488490258391063106964267157462999250276799165050722095505437849320859486149507330443465742022871795777314323481555034975680524771072565114591435922470589867170796772617009474377490858962726594305217781410855877932198276825540088454007078518958353377879470135735484339957259306707602608226035809425769440582874442592712175429968353896786925973682264154290305878956272499050340975128767039323894343343226681663975115648072365006836639393789385048159667387083371371958317660173088800472229599121084596933248805481761898654423096664066687365010332043393181825510715693651872883948575799278580672537073432213289893666731541394945362812295813309459633867562675883043430614466639505259615503481698445970847757703030190352830683689025255804989524654400030103126737267707750355749842593955738551796382645013448015171696362552958319442760051225356269498574890852112990034607280883763656929319337665396593319096329254513182980643130530153276330973809940161283865086365118993022000548670413385474452206358904045897869418475731655010082349570779977593120409536349546774608352751175360782474448979813184774584956676441848248821150178050032115518009362162953394565493783358799623451579655721199877292510018757196918389180282980258054635176263263809311553629804649091149008387332607538297552064092290521796292574507406021433704248815700740375706405296857672536501011421942835981646806777903348170924576274327179396009425807237003302285583643460948779419716954548308039410110668037281032276404343074617598226046573687310925090849835148593454512501335899292417525322401848222936044705362844472122918971530399878986035904037224788135440758767653831066653217371125443728347748887725470395910754843335466936107040441268417923237390673381430576287931675765237033923204270065977630625366188340771700725563733020161194130802029301218743039166359965804757992141782484270265034513327245268944371470828526579468087358281812859515004294080867560707918212773323167656845528337851286641712972981528237958155854425693862491858483166451085027818506032695306285686955484349351083618654466731965885702412266025590371815674486194964788954723776233093064201323862624174040187355037584302537095360725079807073056922565903754813220286037793796430434691526949454265828730650312801263971746550381602817069382834845303763594857325473829695481187788909958072095123438014338431299197630663155367942459163465477738285546273807494712600775708048978476998871470610198456979368848355811064206187969636582948685049779328128910887899307413699226592059231353317096852298701564297925309283612227223835390028939638147766626571127446773176387724182835428434282481088039530638114006380761987915842357746344060492952055335131952280328473369053196513150941450972354671021583150069237822304715504975166064297951953699526850525273413721047294529510741289482519703856306217626690709881132060299513149151169438333449031504188134839311867730353104264888793004545159531373714745328985839252901049786608995032223045387239037258198793438620183785065791527395414742841582922483952630846715975775416493154296886561499315798983383921381376719478264114627017072436309634302774009809084635021284867138185558015390899570047815431909380969127353124176578444335171265110617736460524571139615611144070781752785287990464790489781195862196398523461689770938529647214715485502217813682692848892078359391070291452597225177918167176111915244418772005001601773628155151917493129214738658177403473906751678578216001637856504160358394279089011640572548727080238654929024727906769561188422432745838352426166011479734660674636048118271902000257256408451440554302458998677250543029222850448423671962550297889773737072176664030685285997313223462675889437544668031439670011581490870630463698300874965230601992498092344728123406826285639928784332674650064571858872757138542343587534266188579299928252334839761782375625525887915437980257673500385438025515366832980687689709620570839283826173279991279253580463948073824493572378245299739830627195334669366389432192458066957448574162693472893091223747971704789272675522777671566418769679973660842512616941428562651503273321338710628169932947267391494113030733600340384027741927084017742863478034756543090010998390777005245028619495305078053347966852344804046884328064609839881586126118138935801147079723145365384637177228104060324616110453962136591318276843066727548791979425773251016710816935938330059456031450635331638342052349287932990909812311126551792591552521997500768596291609381769487703779133103824871957020245335748529341586564531061221407117866206487853440617787219983481043820713866523501817941553064665649655815802696676030077801709372914075587973959381293387854699192842543737166775403036558867412538959667219473038746514872602396949557627468939342051711747760171551081530285133153489582185758078614081859143656795490743455178924028553786239158384041687241038105657138765913607306777964975043159834458925570368534019464457915060922690741328246275711945543741971523796320714353833855250738391866789058419279691020186106322775650100822341534781381484716753584206320630465864187061658094939406074414303100619546062898113906377763952053821321244642515191997846039766095838841679167364883244037608286884752784628355083245169963655564984653459666531986657036745216394716045809725153018180478144318413075324713735060302698306307492054488504140403030428601356252272776972357290677254574222751192303784190244608342554301591999340215803833303279891304221902309708169317147077231759868139567937003926313344666256158369758933755031863939832918295998682536175179417158814471813246541794487446506737465448849445939659233936258471747755040280048698597471234065673224042850418250611606558385766599202984847037295831447091657959678542174518872226969886883123951373718304607609242699482307749096644318344271108317296373353438649978697657278103300238979363893887986787565594487785247820276793902614303379222431594366630998116549006950288809384659852533241885804041847131897835918097984423761499815313008106544552723424886042521869249377993655210464592227753617391767746099236474731933273317444492891013915001352000615947762311478923445009362449037944022905100117288139839585128029281053306087079310627063676888752819387912544341454087677569134243313943657199490484472075501426637273946426851670512725269980283021917272959469749220388277389415256064263493198603708618246397206466789005874371048065343739955756747838226265882516258822562439751543947139197365724389871318409707314032034019574806908334873480894609586894049980817177392272253788772144746380916250207888666066816595983114278003707268203759576514409929969210303780029117912317899053407246584910678229635143296879446598701020098951890488110592504729389997524665485115735120297423354152321597396801572956076844282690037731796104636786453709907475517139235210781099996936754306630189488288837961559270710697953851061033267215227882014612741968395452317949294666404336989930839999955222415151780597909391100058002090828096622026347649150522987274859333166576689942717272225011101820741086945027264588099717286968268977598099981702932585648494160294787445617710711436019544255861744355990901437750949490230245311634983414641658936234960325284000182213557413918384565319910019528550996389451501533174531084934797873142492472895185248171624363651854153995067801197396803043583769475038688866631407960407157772275208876658368534910477941957063664090536271769171632869079421412568648741334020068417829256543458842384048298635781309651245962395483836530263109782530293250039825059135343165447569289813691473888067330317837472991567196706293747736374945863151137829708705635998680846409402423617194360826559721367106749447739170119338679266533423579205365212674234608411784757303981555941947775531700335683693023224366249091645816850167246247098172475656422175232447727908168068861067387200972910680585732587866069105102023912989138662799557383224488737187765383882967987601161430479302297061929720506623669595196227382240355727407985665889437723488845360221370159378836664141993058069725835964131972618524821124885569523728709524415336309747458873396601221560237423687506898205714825353053395365633095569241454644545791271323505324432710960185323379273237409293179978314951466987742789754593592620120749367123619210193146732358948296191190865640226039153677468947617493918909445194803387435048913383949635862449738170357516643732308070590772670568817897900714586708868101551487649950296981314238506067673509304768458977965589274758292076860121841006266618534151088484113197892707453955753234763349720050414940563210157080797905357612979101917496527344597434542868915727438784845697482759115759879542551198464892454402113911448966395314811809230417521861321505045425368615241188279681625955011173472293191611998594400771928994446209955721156813260466953210768272644846399123815140074322772059801469499313824377751245416231436900164387651910996541608730452954759933355697807262007353637014062637316606158435008378830008200677621690403023429908569868618030431668016369593210672608161813038388996660964607331968203440855610033579813783222507849976696028651791067665985100480192852248029280175730238153369150220257698748850123112320329695753463501456485265989749862192497151252945790008388008887870658550902403449051839725363072648693710614627502419009588106519656873384238316581615103578688296952923888621504622400395288020579752281446783736225392094001986912199936025801782921634935271521494292548024193736043838023605366490698406069992201352940033891844140357083713720496857391922701482597311112550899133056315377764299513663880341868608790536700098932492906978270635928021253620027051865660472334993181650886220807164543473640819578937273913605453837805976570691251309226038094629154438388334435173759283815064918980327711755421779787573968577489660044646018897530800794617953933968654265154738967452358454326446733772716977593666448556509312077206723132490203458855383722568351676311442776846061388794934012212136664868887809817577728985350039286717761459098076171688683688233288826685032993473302773499105838218527183068444550692069543781981292892716417188880626677952741947734087081562795176337121763472686035564103222278130713887054504204929525570760586999736295183102428184187061975751037258599931334971019317122447018961666021752719357054282672369293114246422678269229995977570082750481670997865550206834826802784810317815990568913138749009130024313680225283202430803795443920479027043081748822595698476557554261655061329322125830159220405395260474359272321516516985861632407461390754196046363549838317393043701999129266401958556216353989041949556535120361640278591162769556645354886672424324509014220120122526425262633994529217097027978227668981654563434803333198061094949128004425302220777444806992198909871542540326857546367664125359691936564285547298471876169324344966860819887397762782881985335396146721907458528557780083349792365718161576531027219756290341848865563741151540413857332897621645339282928890425952475225065510125163018767522371059029180716846734652073756162931308587929054550529990613188600042697594653586773203186992298156760239294159042125945243455544987910034580954324818877631602353390693352471821594521276310496263671207620679232801873253460191847926402150702025402082280412860885091423352602091010654865108150160742718827221759148612103879280598083555936708808801804686470428695932579778570321633647360606903000086813868106400748437080976155008956285827369200484102907361741390080601180262841156463702961615520404874466679670233171062106357997255279998856257933757186447939724343386311254275917407667823801692216740608965744404246538662569454364785641673879277108004989715673512985970402145472753790264134119351858964106304465760529697813401504317982632465620260930692151582587517662309499691546765372291635697430393993239734017448210641042578021573495982232270246705335526289981610152144919093455392754771067682659876552565122646529335129994857376264554889252535536344607361309296151002979954085863115701777078957699421620620357745480436702323573870547696800117107840182476134818944632671776718622015469275101359238631126344477159094396385828118432165238674798135409212207760186500035557566135070422653300717287691030314461232734217659172447122341927156491218021197261372408869665955791467630608209580895582545893120613608644921879270513398298947169643749522796568992276199460631973622144543741527540236234801621705424350211769246970973315000943022065313508824154727382880668027188896050120784591233712181794052883788032902627170496667140159404413583171597326286115100884934598589765911107417552737860086184757645077514559795938640875968413770209473784439737460940156275892866414517199081810980904962429430415257902409167725953611241229497997117025644263546971816013193332611232179366556144801077083117770112855500658658382713079286336752754691737594867930939202910054216606372309589883029819579623299471403042263886179384169417685449311578702186478929095974645562360811652138103340441727250752454604947108189835427848933081863781598591956492090398612747903688538976367778710073210879296773879390685234984861805603555611361718402411536711920245164913297269482986932168759048090727117476763626935717701258622284916040785983438546221420635563740765190831723479427792494879827604720971430600031692506964889655784696441154431104122466058768954508926641207839820477411304822647171053777319711505670925351434051981527636456611665785969778674650625809374689917820359581746979369633393206349864493273271768102130170935427814993025870734235342146241414039759753078349735161488377245956737893125165362782984346160789818407085206587662809639030842178902477384237460077361445423686769020420485387858694513283945504716660669090987013940390332537405632716912377515538535771969357425206564886709055811638625512839569246928541557926100415249450747720243978349340900898457628108279528853038745106933672872201010307619300812736407589726985776737133231463051862971864338166067827744676825932626791585746679161889816960069674567825883666756947903141804655684943960298117072610595580713491491835885435628289965072250767510013196843077131447950347041073743126605293444278669829506849831003128281148994430878229243627297920888491231368082561429375096904179860742961449820988948343324911035027573968800255451806107001533326999578313618179310035778402256075572217584180945856774224174464426736520864933662361393082745237194384122527738870375713009727460250134059711767355480821641347122982185233506587898709339624807170061358668174126147530023838151699886878942768075974984193767437367315114038718951304808222423185023870265511994954973769375561020348432855037396496713414378078052612863392721096158415102837330284022149926297971779151572244969701941098782959146350883887435644809264867586216371956461471208732780714841455018129552534266888469726691568806634904570334268289759622470675659583867064673063045921224011785400757119121901961282058010318059771939531025669772799672893427373243589306443232382910757390819932302244664546416547681716201316862282261245193150014935705243028542435416775189110698761825255402545757534424181523351522756019983312814292249002897659179501660110261296869595399089409274148766638470510750797414080881443152155173766522427782960731608275362599170977641367213798591852348494446830517408891227747638755427337028827278964467504775000353764102131909199707634072655594020367678733818889468782136890024290790238505197679911475947200860780932646176903875674387482930704934822165634452568723332825090809501529999157736790506270156804900362117823797523565934384170192461343221604847366328591995891725933127896463874557831439093071090819115651436099068628098265407512360701701132919946301455095335242352766012827070879829460078795054392137325036443884615895885019733226697628643611527916502260200853971545277140209602344420068179998017566149765237379155348772731943102248984575252925743255957950345491688350501134626814935609346640285217360716336208325688691270424980986621600296962092110299108266362846277685567652599120370141716797383564927655051394907332477788416087943683570132089885841892969486531786141495199470057158119876401246588826841554780804988945178690706085080099354128325922628378627254523291926119796794773570735822306436962673412863438593927756835090579188835703246336774363148920369921473828520137029863486400749058913016474778254505106891985701347561651527462270928387536542764339258755240723568772691434405986267885688411741169411071845575455302966344131259190345859220212422468106463203474134161188076359521960289676873126033843991442060522484124726333263374684991029750659159525322534259853984345258393586608104082800093137785810869013273434474780317539084981161768167796906714711819232116393995319542304766947049483550960269056740751102566894817404487713797861410374874086610980948024703851907920046044169202094022472443828883157609991950310868336224984362333478620955225195960680120642087396353132220864999388550918648505913837927031623884523624668985516749622768984067529858160159856787277242657777167299746546078966500418648743865477451703800582491528245410448930041937244969659301176416444478667547896754164467333895151490686472468138164533113453343918855810174979914399947883352429347453929195090053564226166318580391534291419937690003317305154240735413866475715206232561035845115309261787873735958515561612705998585887215271750653321500356735609960384241594162392884991978453464870101909103782620164593162035774331822226003046578084382434119105642099945008024569131355300791666623922478859637357776068127337849883383344438052487904451502295158322621977689334969962334384365031064975690223698401371703477527293838023827614938908216995803680642462502956834558771160727637169784792851625687560615210843317071897276856828138311858191425184689536783559764256726970256257479683640525667688056547544999410928010596714083045593353784043491428927168397952543071587382126275412968065532130513843853917510615474841826883469225737621980213408202663512254528744102568251144055618834483297889788734315441777820308909371723118346314681296567231290111624637356558898464614290360427740257890291643401179805982910871959601738967702033123383452813691638550817197524774771651924819967028589228816221623073064032588782782958399426537008579900637720418116379385129084396211673451332690734778547634230860215127037980130523174506484599608903260706588428678439257538612173276896972111408440991747027454426887070517061200051079509805010237624944544498187553309090179572659453855749905876909486160992851692938129876369683812513569561769942016419035715334728200293598860367864779064230802329367592233821813774868291750332689559492397724710667516789616741134623380844851161130174998363674698582668872071478857949295958967579761126401090982297564407706823120177434923704646102264257239665642497918220277166961224230866229868638271281666825561823876710571018010998683782725595070803840764355155357844195481089334672506599345841417345269741128311817693307628446295498401498056494167853262073647701412703353534558488695439250972962099371519987345102636801733058577974000503428257951209030289520749549195065585642404891405601477668262389627172419428489204697368608607764857318097506199454110971166280391103675757615351704786603311818640368252279614309878312361937414243301392713601643248197922034364012278615714769456538850383243599095396945759598733342106077474810148311199895970652120791305625949092739112425601063988780147793296665700214133989293673775277084224216835377748342137767690500532260285826523748243100860457083994242201723891262271277939314145814800182176105552868672812073649222334214293736283399612846680140758845642669623908983462669272926725667149512048556384451968263864101837181078571735756020930945944962847247250614628499198771070089011928411713354903552177315468881222894985018077772845765165920698233731723039024508399097303338959462655372965607783075993347811485935585877353038603060348458989323769482129919773570290728882610974666500725817299975313486208851310676296145590961615123362158813119304038777823591326256347920334217362292075127356070061985001181961256047653290095984013118282031543205552066668554800606862868126813080356409329399313359086614194273555349997119181940881658790540844673894177642282524266540328352654583451547981157721049063062698309783418785584978962758374423596719616840110435677079258486754741737186939517288834450585483704095041341223759892031927912061341462585312877411450227105043171833465308422185924014727569755303266066112348387019165238672805554692824078416605931401346207062582056764280834497241223723234274704166055270812417578897899054693345514966607448948362063630105365284829389487598502975871123906991366530852626840979622171071324347827741044158076436443483332488633935947159618661203793954665415342962155738714472504283190207786133770051670302401654859014139552845203296683974527252647142070494650319203538205703090681399787024621789701928482262182753952989351518141346195600103617632102934637615525736170173736891016224225226431261165920626902211036697866911998364130610008440078146274672797100627331287124384137484237004857275127650121460042052395861293029902566841195921915320575509037238519233418249202141556809170021965720482678814662274016909374387164425464716898808900472920139113509409744340032425506554600836463732163986088930127313527117770343235783282411282789244845943882197579580084306448950118769372805130655005281233025056015123058547910174789997915044702716909173251014881961110506879309044595442400511722479222544211561721276780018164844779616690960243035772511375210873980892040257721607415348190871655639204715431083007216865393234640016427452465848600506118999972806836888012708494776985361489734297937635559846706442027060917109107382300610665715254557214429107200976855020296942163787031286867386162535314638426868857681288049585318641094578163734043025679390437761568565047802369332878582367825031650876217692493484306082991237516844492634688885765976511753659176943061115746931469237691024290015163584821571202007843704967023196081399015264913156608671044039412162780030714801177737555630462653727497801869487583050994283782390720889520729681435249787230550935503060125294979562586872585617228754162756976445630850268742980519951700656180108800618841224195003184345918261483782153607809684438101140555162967538819067262728729480625440525976501774905405179926890597026080598403119679084243532251860983379559548738451382392917223578127825363278251865876650247910234190985151632017345793697517155602901228679845931165058747304751369692165245747492991560699426164622162066426810638040081030052061480889334657503570738937599369144242382846574597016145527675713299036003410868252679893593458385687466276874154983742637814939320396905897480230445905971526361257699652942493340230550090845714713027001542433741443002821754961726781138655890904847021774650556509190831297027317735445378942955587332189673543021253330688652745508219983365814694956305306866831647439451019395022189060386587310823238534626376903260701057704733030046610751169342067940420473025372590656977673138378396243511561647063118390190083978929697598654344461159479627344526335303034382056716142790049126873517998289418737308544077100848950387135739737318525600719471807522501978840088718683232925403289924220471152708588375982254971612489192514350926021052147560416502847682027760292308172140372027921768899567881607746293400937868573393090779619663035157674385569950420600117548518636362331568396630582741507442757937792108979890608291063018356969605687667868427129917980535430212728505208356030006003527303268856399621465967321065753304852987862666888828398926682817211217530000846193997229616925281770615457723325791840995042896666842602622965376039359190242896905196073306813964825603143228374503196917076054089322037685141891521819006009178153772612706242968721774259851057787460422753699130628224351705861397479283446901651521884513508690212131026090400477745654150037314360390187703563848599787124520022590020439468275763404942986304165043545400548429242718210507535582067996775741948182785608111796202686816501579482373389870128248392393162132808063003513596687888757516372550282823671702903911556092418212688012525021810254877365142585473158379945936921643067181042440690515387555693540238980761317424192453562756744458549966628708491351613118122940610098819971242691180196872885469196205724429051866405658486431039573348771129979018176081049111336799682982317382274183667827475678533193167427316031658965583485666850095499625226957561260073289163577540180649372291940536356575732612365802383161913795523007745360378404157421620881468184260717386615256732748174860734082893330670412690649757622675413012939134639552130925810999001318068864299356668908357064375167231335194749373504413346176052594547887640187305083918356358669194070456199384985467362573000890629301391388721047220514491502977556003471754616068568229243120833967461729558032669071108360567698975059999164396405525680003522110384051575325475701808796729499922050628393459917419223465393573392981217435392323430440945695974033403510085344425897556065571011270271692622313263998190931040827302514633159093194760824352859381396800004094086173793221163176866658507879572256327229998188000620144910580452511707902015624459200504633975310132229251923240198735736908014398717071646049025127273084147307708837310612354085269780845617298527145881411923450109742086413581185828886629950075797956158152931557490707574083722429825196161024603831473900495965637386418082944765290366505993369749472889679259096473836644307474663304396895205882571031766988244164375165785614699942863770185098291923186193815848609070030057110425423096152433368001639908530193477501651738764054780307889317709490378372116040000653736046997341859342003569719319440083305391655086336534598502346923916511118147820824649670835750878143067264625742791631764100718812707611391565126974443858122466906061592059242725049680895321848501886206975721402868452434629527260857797466721105548918947001447164803054725708303359842528074195625887278596365561252794283320775293224205249605682165969771782445825858992956575188255968456467427243126597993738994229406539704015703142867302714417133524551401954770975327638107989412466622696611906859150810668738811072668982919410482453556309607793554879884522801733165189168726021537546525777455686308681265906836205310722761789864246161330713254703977442178200105783862982553451645725333447004948877129359683173206121403004078779399948058944258878208843532282169645193084619125982786965317159425539022392347113827004984049474545130392695098925697300538623195787238122916333064586169847212801148917811931079864977029115876515882584710665904834461387708716704519922527911952838651718966252470253531423383222953860026282880458461147694267675977650095578823652237076141163511907930209106929927873857842625433034569178059937950002426801418555200485645067206970580748636339987820957762379389781694352045457265750120652880492252964504577849843946875344627909882673589985165278992083138120607316606955976723868963127981974253506470357735926283447589782855393408204694997295985593324234860836124390275248422183116064421131334456331196169836563123616346570722917581979076831143706301223728049286461602561928211561726927696398188753261869864636643663044609506373872149448531596086506215576283929161915468957236242118235929299331060043653077720325078846337523600092740643396627202322113108857241201369320203068033624977962480538334931969518865031149615066383909695837882610646531024959638025443513111335339010572705597645175499153647695314970247515359562356282926091922420893208505175633838500814415343397658895219905686844369475961390571985123152683314098595108258331969271344538487332235888011852564335359126945996701627806595330093458067557816909113914954405617829911621091413959742875982589272582360966972843281849837664781725888165742281364635669255234486671072703301063542877111391411859208618081943834512198916673816874476193973033366983055559789462632148403079033296619325199244739088526803487991762803737192672630767702989352453498801452473512518879343414564254952465893006214254486975865486774702498080305485407575167897354551761305597700212922048998479671794922439784941126493060913361031952787187025426887941472484650828010656648782128420439652959268436603195684190441555724902218702003558618362405825615697184051371510919767353884696953750197064410964117930094949498048233770098997190880132209922143660722503770247391283521761570213557787835409966604176356777835152684958495259717978901316949410445358806262881507343447345457363738661771152077455851097375342216611422594458111064136162516334038120397431671980958439434236100311546408153637972516904073320241177465511093041679879250248286929330410833598568633739664843537871908157947434708572510618079536962568880380028805830721503749775911011679465178414967598048090130751032448799326565231975244391307773352716573995215958431917622058458969050976388804761598164387478371710818673075869373346186597952188023602367024859429999604571486836536936403101407345217415580181135232757124509568193638207553026181181848372754315737037822476279733339085009412560759764752803764644826537691894993979019631299710665825915171605339617686004249727563124311073619923156954596280890846783235162920247297496184361770488295789197054338394960194686801211460182989679281077041491646050412493171766708237531846282721823906128449220956588009864033004217695481075867907519438918798624910086095501071859661901091106617186927067234364787063509926052603417094765520340929432844401437992388323338473522378415445708076667174342793575549119840431168563395321689723469165054859029369234260910269399800659265827832861187972847576988366511100636001978823132700309851891433230989209591865440973710748187979296068327608187600942679795104953352888905267983278232527211954773260064158758894470397317197541504349318639368755643016489522747578134857940930411927670656914088375081258658378139147459682677351481324214226403508744659322334581395091291680007522641918239473786241190052278963696271405254223676713117788108455417867513615665970694123286970460708512472654479309971560883313519319410027532093875409845980133530282489755958156502479006939193230001226997425015994863037304678333402386898240116696193070320136535177896882914434141205449244910954513940461366142582686371996282764015703709981600968483177902119791615097175870216216907924312090120662608142898420441031620725701184434566249548199234268295411611090992027286440546137656424084108616814956170691179470460086661739293064955378660562100593982378924483797565552338188115650645616940832245131220115353698657596980946361242710338193328365696372042653507059937118481363038582532926569294708697868310845223194893279412901283076656319092721241775495356540021188233238137262841229038429179476140003253307074108763251224555707899852565863529784198784326750667825920589628933814497089965390783730909890809716670181004494345523644067071619503228630004015943205473880469094049052699937741308216956493467396368188159350481308151160805052186911574146771491916069692294703147038769689436229516505022687465166166092406442167959316781705560567302295832705567268379255043974199376901027629924579301116178143998139683221205174500675658797946697986184730888877091535417232716341003835174466805852949292964015532528301149467529458162744784323236416335218249463128336283479632429069909225254181326493142945814686920243705479380593126209821548326973366159474731980439010818388214944649236258082371763400318466031389128148743421546956637194383689331361462633520678988814157267053171204934768417747008489292737081424709090655843220065519021503404086335306983496328903864031541041071642902397908878105756758588427482454991291057862714095584094279895399497815126914250409109696692021269277995139019268523385309923100606264692792072442628717971250538491796958571112239563887383896021246160459937001347346444103423812132271368525186098801220179556761459409094425585012867203239648160223009081213486855610231107609551784396452899247991153779635006608648303894617029871409857108758773023768025761841118616445397892385852036191415290000926841988418747095871243943037766286991927992411573688273178147945032524587049029999250857672222446148005310335623315197439312157499184661325240063914160073436153491682738898315704171225305331801184183003907125140094122624094450819760740645007111558302194692479790751182406325563030332545715186214996442854792108883607902186912245353004991526858322567782433151069707262695554452681403142708070240115242537836279495988596287533096013779471398207834308284213648608623492543586780477996711485265877983419461872520597441709205620813319012281469377442951779534731683195865066163810477011026951635138151271046115897147408777997534407727904867066564180029632073610070774457902935550881613734175666210644948714725103812633066626835608883709648876518286028981366161743485649925415292298334787284300679242196268560244431465653440529995831290227808642033912764061363541609722418617324964056264642617125761988250190273749094791203007198053500631483304612602255407840938769281980216059820718962252555410905001792875035082461512574571483706616857760486644511515751987736543377859680426178928578192911437744401899830374579372951559725625850161474341510978595134714536372788020783154553444293322723351084848420336219051398078991427582554155678281946521345699148050714512352838940662395990567717182555728077675755440893751221593374542804902735516856592040764979009385539500081889859486298625083859982666605338867771409417700757462392164212181760272862691196091545360262189475300985863414866068332895846784682504708826163815236263709402491208331144181577117976192219029371066611027077051403550802073185594494274916217653725548625990548523911235439428496153036936253632401432991303665299350425867107346861432776056726728310857645657211099904751414219862425042011750328894322235662209872444540745952033319556395274361245929630981124467502832246217910487926669890558225899519484224768069472027004715365710655240750078571048108882254631236037089109292368674634567148458989460392668539313621149715536447473742943814505069370399830371240389525553959377265652574642288921581918034347231278935366454501736192792211402192235001972270253769491363797999113830958812795333737532618233758488999295877115881887574292335500967212826905092653317964860818756188925426515251307648406276178426320302373223219646993100003796068245249672480159820884961428278748198985245633974824347957341552541275827213224794953383944248616369197679261094781815813189731432361826393708732215075056928167764587147567201363746032764698893873815481670483026056210563200652305079180594384653569503848557845590893076208495471095446724154595829258814369374887854871098797448882174268988547623666251704440146607153139274119350722497120075541369243518153661658591007993739921944415306916513588348456069764922978268972340133858838667587273557226207005211816961342471766665549250664809501578308279430660727493029358022059617742533627673202604572862710744115054735703720871044405804848293576133976955241942150989683541861834275638289334707941388293011236048708243249934808677043306584596075391032091181577360081210781510179156279994573704463099538889593837655099282550015193577032859840699308761947501175910463338315400403022876818707376434901052198535869296562722256901658654052081867886752950469048892142219593396203979352984605761926749277641228712641228098708542107203575385185425416122889204750729922398868169486318041826100241107774355061648939790982494283564228809584389586268873496127296963889019367321892376528609897698978562211672577989739296209912673265981911469855143071776654009890366339988608379362426607141827597342698218493974088355684349131357100917152786834752899319305013398068492936044863950084423908793540561817576092796721436983941497611268213827036492217255742093532757261908351017225491446643538423671144175657082901217716315677418196065061683015008623114584883817826203484658929423403959517378132000035564745434998641867157006394357051718047351512200404404012258993992220054978719578117727009893674760914583577866908616783412875862897790331447245482144819735336366752466849181527640371044216594985592088510657432760905549175313033576564968020814611664627899742944850803456565084053672828070687172965064038711023986034798280547137524323225917772306414479263437997340911602490079315679312336491623785363237203587385493582371185749235912631906755955721894525584156718542881932239588901343068133543527094928441849265724623336339849634624722013321131775384582626958166329014414319432232234879339311818869845541807328614801904049642459472603539738753684183234133760622355529010082110035116245338965402553565669631026869610886500006697377491438673657234271392540128457837948183612729393214979275811937504904210264799254236594140784101011596437213256872476044867755114064484395787946974470492914580822029899199525000190700870821730086673130590498342916347749543343645899268899728844410350605425091876347215310909966710571919013809917126514109098633101931218614127164601871006968384310473032736341158193128660333124970385370969694722671419430149528306454014398917131852357115937894573809301133831380413717699870873435705476021285854975545323356924748038367715338589156094173685647215879262867308259321010788251777114187239982713909874004269505136653360679036136596853132677261347850866956533247402305583214168245572653434454973783961285689578500887070877851108496199980061228086666277561806941867921475955020593294183682757575485751174051774494384734281168494715531200733292092939753296073890542606389457935532992095741693719792900706232137226274852088238774154820750833987815234116828161285379189440822225792332499287750795819838157866269225493821320033015705931527893456144100297274605875127328063180549042326428162584419469008166836234481695105374897426750938727269935995482970711897711418950208240775386632303107135477767229276714196283868259526629575378188055759574902501269304680272610810962151753691964369999845752591721267965369807491481169876177416848039261497836863699956401708532828743033344325900354242267821235661871725250723514088934667158413123950733317307094404011448807113064370254668969483103770492433426153598153217860982653948875680571425337158060466700630444000067989517030264496727584657645323439733641209830955338440038824531761608241119057334591932797079033299156125758561474591125916828868146862060351438729099595785460211225696367708202553589915642983633797009897965224644688171373754817124171189428310623466884395319523035914720532667749108076671292131917601484967879278432683362050808036501296762962113724378256584904227676035167768323697212839306499180605477370093885987378828481873861692086535971977839849770224657226160323996153819679395235781496330312611108654772025981842694172667335624913658619421790421445110618883407129957974844859492074670447540869390709205714248664909335585120202403269435295941841063270711417927640443671500948312122740627926138634592158871506653324715193840151882828059461940783061153277443761980209652299279551277955154463927354341806343830944254939013248604693917106864184874135017943318064672252251923387743056571649250661342702270696018593511743339611062998185007476333189699995453626096361098561846163858436551735404210931882558124453444130882139865664290407112370158218862502300807628375483631041192424367888372439514620179351806378372784573455516139038422129757954283634621868602336331394120845135299484862446341357146188864291080035251358064999842490404561847375818485629557858296335680496792899508430476671220263060870030711735301460459959340925560447564485582486828510778254968426485198977852492112621816974448594667902183728551772924104294137898824054987433248828286415645978005645807844132372725180141169750590786423406990558066895175373535092782664238560862377331551995114208436905525968396308801801222462100936999316304464935618975169173466904698997645047860046290627663424870851540050037263956003697774605054155003348220618493216915360307225881444378635260726385326863792737085469197509353333922850846125627882729509548588410960162908589704600965064994790152834136598883889187145705869162737612620510093048825237865052232180235430711665323769935304474906983986820439638334877731514676809123000549647732592374807534586550321836761768863782623111138428502223508181322644835622689454262952757210830940535780867439426372293336000228397410738105406922417844686781710523016308846446556519838391279773262442711734494715053786211244323734183526510245536871581204335670166935291545187374306056689424736626913704902316208200812469174090146608748906135920093863598209463164230744828017348202777574967227135850563568258903065274513990172083707597596254802472577081281632548439402001762052992079329944969655321374089190511540996009851845244357314276116450212111458365427916730255297710738235437907448636464621938869080585687952651775837074331034624242958599365650907795275561826323352547552049320240569957837292930353385511916883291723822588164658080061710604539900244361684011417389909173367472209963264322632105480276995628477803751662249338759816180332257255157384929467559898312222048856950158109925629680294841913279728341419789450331305283771832229866058737775872910570915060793608671019229866031428752279437455370540116921510421527362505111316908762860391914694803219423084249272800604021391712446254123623605552759222728212618398637839513571136841821880854343613792024033238317270943685472038298546008267158964598948622970117600597101988761367670481938364537656213383833637800139172883723021347327345335247208408896903547616956661742255150928164856628628652034223764870556013663083209499537247785717006784799300823849495292968830929241488374037607635835370460538548349044669955561127060459903363528375019785570204654372037407778304143064216900947104762649513830092253446547560106906959804208357069215653613241007332131660255252691172500434788266126108749540459845383216095419778846806456947405641555396840308364442257296500587418738338062088477859708506181516751408647265109516888753799218121216968720171377470980099319985056212658260734434826573475679561971812045436600793987089019943798944749063112405658511528980542559775336191053872926166579797432987544297929934220969646814259680744603126580249988742612624113406105433458275287436735431261775339303140213519273570641479734994646062222881377996782602611029036674999323321750562584506741839610487272922541770980753352062176524948941528658990807069057461158742014139683704148139737702933068714965585202329072313688137639557654284678014839336394140082209447719102182113884915506055765044934416015277822308784135715516335967461557080796993821309194915455771434379940353411069774569383050785409830871470799799265666082028262768799414970130742683047169340566665228971138682615912477255862104557532040243926141385405584497732701287184479041531511543721627208285032298376587426088898669001062219031326692085486723274340457160793486573013527646664508726165181659876416197399860647767170353796633053993704068267859540101792748755048058772070411295028592792494166290922265349299786946411201216082436715126306732630796010053443502470686576701817076601124297582985065139113540224859665537976554841342975368583885040376612278832185823828036931570767845406572944990630660959674936243750958154773135071328053581434161473232500253873025137848836233200443635986959894465332083294127460086484402830451994508465649102472956931536246338700077711219056717321402769546935872929164551244700997617732975222846497353459919747164821050293222260425046816833793192717906096440607991140080040472435777554569654141800766661745172714473087222214881366619435615660787465963578142514855525213614626151651982998821121802295982161623928515160529034672973868630746946065258515435673954483479573598372239347943649579061351928761457349346818668365826304016176930367774656249572115648491829222808125711308911109338644655046945315298555284542840330805410192057379645397049752802265646924793440288025410341332359233208997665934161820907983267983467599313534126912826756003596109929328492420345699389248046850729727205179044392761972329037517012805340439920422993719968774691379674385035965407112705791690955288169193585015232519480254815148482117225860520163735477824979887400595311714215615796394832691071231543919908578746469922527689766578229406755965365675268773090485443711392412052760892906450932152928921165614492815662352914145056579360257894999326569089392949011923170222549170496780281257073904170277507096404288509908428280190151085346073696556039666621430389337553128014379075920295203111799321680574338573168554030374917327307056461260839610631986559273040334120964164722693234292284769853794142172219394295863372569947747327718877928336354635665303175557716124392477524933854833297268629469458786532263589210720687944495081441323574708611436010998889467715916311317563066491533782446202610054613595118178111745136754906250189552416472375280941256454657979298891054739180111917307362118261256616791187972199240016373026765555328060591719454268107564451056966047544366691226685749222268957888594651371804634131378628641046077715561079868787901097277543881663918982840773691002774754095350322466982879960132723640591942552982437488843731498146613544216353938755552284315328019368479475790923196794328052161028013910933835938995621465319322832809391641700799226619716649115368287726844063220055836124444576857196349564217739601253166523323035365282254223195638118781124043926578400681367871803230357780711339457161107744370623956973196939110074961240864785908772158914111982549980700678411794549116103720443951999018507218117710677411470634613537396623948383239635215625392801319605599825097834093552089261332762567943408026808728464549589929358797749041366813822127978017664225726800963665375543485287716160971598835203856162814253883855983017667779806293399863829433689899193383308340054046436372367867663305119536036421574649108470790140187406192273474858758729237645104012245071911614310255327663359533638842868036259808743195592766113531379677136797039750889750280998714054081018294522630662544156615891999105389962962370413980382914474122730192279048577524210908629044041977429662318725686202846275751551513387643659740634494471968865864799546502815524230741207706636956064526047492595568416946850237933126457368989771085088682939269247318254915628223793098680693097226703071264593819781724053067441751961053782212352811989890208068952634928184097619519057331673916353862986580298133033601207316830691019625873383216784142251116127865159737496491212403741513487685648412940825553458006981535967383200185667879876590206259456928789376230932219327182298840056982662999446318205027841823704430507599438711780400713956673162830467069747913073146582211107841248665081225615827806932570785447872629876893121477976189713858881750090776797417046746972730072398982825689874782823639495026626113734263427865186166147381076119620938410089758049185501214833582244906264812234240074618997502027842314568207760847400687287425675579932325772868563977316323609649934814118536051154472951131704823059985896530039150499082041008184940590432905462852860124920602025190499455006789045342140388795896784094765996466303886987455356235978439945291107445489000062403118822754852008111393797601630162035322953829525871532982176842270458838325246854880459777462079050690309552813173977644573265095011735541897993243054425692350277271161077718535468028013168236561378388207340567134202139642886289418541215354527909916238217655626698576808178926085847247990639974738259147169188112867431265272969954971408108824892824906583812840819351275130000648653817229390534295111899142586728629421503743101610566250772293937213713207864462947303359034116681236359082170663889987902371099042500464953662918747511104318342476750549356942090465327690324628600678491223994648633878710298115336708880117761256615361482110668547214138989431293383716776968820821297861634803724878312216356717139189121217968969210797694608712326495329283208655798762060695937566985982976761015900175335697998848724943438871905766396965258878419304226012418928298139240757213197186239019248848335233702590346245751611533169773262544897568698872610445565189719810778638530647400878072256218076661049563989516284238201364863090612659051157110204662388704737800631815698858525891566463795160789701337684585560632880645541236818407600447305864144974216075416746354666469295203962058932747117581361682705399197989836418350474604048564253507996949872343098234737499081531998852146751410755299883120066138551578701919332985921331183815014004013302530636091777907914993742418179846949547729070320490383626232326310887411819466749960532303521800017635791038833529281725839374362509960040805207697875844345192763950667395478409959683569559782725035778391806752239674888677058671986424636100686329777438891882036550273456057755815645346389518530043534848787267729240516333098084120659485535329192439356328603782974174449075564511630522768680721283515274645747405957627950365474331858074467102741552659985095710239890421292820649736134895219979548361230537335754535911067604484203322069732572411153974344398852279819167437940203864893610912902494583856228022691085789052079400438209507332865448966676548958755011833386432884169957734641798034997893551713693569646670897025972786321548512065546685471273342346891012380014367722385725328311728008099625445536569081513622884526683071302086228629899008931089257414899262118025954816887368120244899796307606187308201476602827483896642270140621332567782712658252716537179436042041657416833661229599598977555179139585107753524761448083917642730975502131104345849703085140494471099780000580028123571534470597039568555643512410892031892283765631537120601011754967517114791417384458161827434722293862544252187525596504007723276077840356369446542970186093198847295024974422891555936777419957785499974932349846554562839509376738904880541589399630714011709275442446715794485044996241954963879004184980145590509103212381520779779500267636458917102090571354817661191323073822912653115452802738755698323585333845406982108981634661341522429369621254374783351077328348799194301002465620465379833271704159473447396177009524400410756191656343348234171027532080824960401517518584101925410797744223475023026800871859166628770233256307344156806697386364090206301386568183374691644420262511482765072293936662276406604629182481635382808167893687370608484571709282141378168987819010275340932666592247332350577777173824487772273954849986403932974245173405586313346489874629151672864812395924208908808955078306720141243876443207870756755118246731971519954487897971451943716298970803493058231991295399021420211182656367174346839142778581496494953294287298296009803205587280027584641214471021252223556436036540909387718673555541708966243545129538533139012787289021979999157820474533554447453805608337941190106013676223882625880535839235389058670208467469890387799486244628480186271627253774682382774882759785787652887654963218693456153948015450419451466032469284044908370612985176713949080324783306327378654170353690717558022798248510415876365033658287444298212004398589659965934630622722992446815093713332730804692577966806101384246371478690405374839779316550857554646655387801061853261959872930547467436341648301114603129590511013811369935040297138083937884370094665661668889083443698321448647046617739194454700801535742253179622907332199129068653985733441559920997285829379519800561215083457861838670572174097671279619509159556276266197729382937395304178080078969542935513525103217593118451446771367056998183832620026086021765545641126481868922396638728828979549601523414213756290795094745651645743019779149986188877423740197616408529508653956706695673072352125440848918994838053215208165069896186680536741437844264786453289509162509892986578842567947175758058300289208913284676809078701105802828889245464749196733553690197813510146179342606320901496814815069392089941659257127218580185835961242787389106827992376662971834744390840724031681398600455436341005795881175467265906506112446736662591394417032102027230948184421711850778912547926862724834435277069481587204646485173730507660387611905021846025554374256484934856058545875897602548383257410184118621789740636055358336605481455651789384878975660296948827095130194189931694750642307496716428121149755594619241556187313883023561322796145232843563480355450629733860950074528927744628226232176936168762048290401869793920296203835158943755941295661110540317724922885893205675256115016534236171827697150743857210890683765708569907428309812517825474654046402590648935242545648317412556160199454052254585132701003124201992817809386047794463882063812033496162482415439022055363560239616935206571073060605470338982927253195491744482389679739914380026352790478654978722946429762158042840585830546429766502478621263316525962224692813924185989356388707858718933740484413235227881466892689876572058656136663630511926303825712237774864306499555519756811955662839893567064971408324914744400198830879451083771093650329912550394856138910265108773519698997994154935719176921491199821875495106741722792233615802512246886300255294462860210384715457336771167334822336484106116131288119882443393808870417554615883670444263899363839642122060476114920894265628251163777629901324269778933722771451860587616741450435192578287294401747502340766161843736780407446248415588664013741782504447473086551824993646905555633989885878986573395769859448241638755180824417667087312211393598963072359035466679852691244604945894969292505386248122199570520170809490345488613337845494817615663463670877688105160170689993859420881975912457543695743774545766815618658649058267407222198210095310512889326972326784344865342312180601605120811108073329900109509304335695270546439011345041788467344379000697646239077623888545934570627632956254088008455981242835209350131814924022571774622196539388512650322029036229343409375282001149103375598798008966295949216017178569934830107377636362426831300316933833291417265597777864037901135257444136754257732694019278583379192950300086858882152295523873540329584720997398532666696900824091103738696834835138570267731602709485259125107556361550379814598844576346383207705168440775640581936887540247495128311640304480818099891150466884845941791654988529926842376898859054430841924619333829843986117719724918819836134339702545175317847319346546824820909085499266698712425985904857679228567435150188213316351208033169774149548647768072639641283277577655808081588069935313435037656745556317997126490321808956163501216778239022596305026338572697557249431946595383420036171522199291548227971966717491259322774557448215518484157510966421422143558242377912381343874132482481005639396962409519634101208695709046636696052920621437729280976565946472879816236629935712512734664718757039563452456869992318594075054212973002727638822178749153769085321574677409633966873998344356574158666380827569811004872438589574959939033058271454132258578666330776488166715309458814372379908392220344937505488064333460977684134418339509441210578166591650168233874000620658358751330206715038026022325704911816024392092407067796528238661888166029607892695125173508830975329668781698431373429871293924253205690998467577123614748274344897056092040630302146185795900306248367732412369151716910897434836783001176773755606045181695178246294216996353346606764918481323597436488650030190410248765496102697055404290621717702964230916563118548266187988724683108497979261576484943786000496187131325335281377061763415838514870675347409802641644346711944457594340306613749704912699255492186633018259128393129026831439025542070408542268999773945226969931838919579995578999232799683560277027648887037620343885299302134155130899749334526638445230228171852206668650951703983337422173949753088083852819260369588337871043115727687304978439310159851643984877279926613434571845612714497887532054717571443247189981861043384736855287413570730533124252293957948366020049152826599176494066927957673850015805911630037922105900144871273702734189580975057457700990122655666423649266924003589055815760074462674580725200733236408896048205359053103497193959936774738666873658293009814982456860430617518253406576256518482900426733748998161214286123182100843360830267924616902447738669701362283975069223235514179651745020428056456585118317270135037588368336519892949056968408166375204200772123189217431900200506882287019811539274354752779063073654693094822688443192255130822921693058187159768419344216937680872481982031209234206916813693000218193340329533228583722994244013038478162625042032441728869096155602492049796273777081273768086437513575593447124948747586710511174842680126287216049246534784633086159235570143459575750667063348893649926656798705775662898402973185143255941414110090312333417851484045659648759511736408162339855427396743950223580095081673330477775130100805723697631255658601072314028827922423881359013847970950081850876477125322391722201782336693348557078902814680895663513177782128327240717234976092923061542171214436734163785627493894954979153227031390411971042139095130677707946976179122208861191945093702082996715548934878655767716986642570109250053404936250596612761957678665319934959467047668060700835330706352709270823092625663258620106442275255268935616865545001437514779033886592138179687458231256745503363531925762712253371861850856120505113481617284972375557162345271995301257024827414196937563156823736230106861222267083224077583125543813120524609909831902984457823362044926022950582042512357712759948048132204585605612898763879113358617347966213807705354198030515092969259523985211357464575540405834267688770738556819197384443923659978318157103251563478252000174763203865397036337976157616229513123554246050037259622717933533349764698029091074140316586606559782455205134868880697295120487649259292321557417992301880004390942670263773924824708447981599508523956861637077224458212645424983718302547961203774762785458821753928700603825158860743048833575781567382198542026812979834509594996488400115209390151257234408999822921998886163118399661442550517717407055633221882208150521215236918214416427676498299890128106558662366777319734169953874175398517807637301278578365372366347136716563465309706351958618114938593317143548235199931466973604753397852344114990900127890080148916824939785220602119582719005347227852811326728110706359687463127878870515276046782808738639588724053647632225806786532632532148146034838239469407314407837692277923879730557072659895665426653094933107005601890677249550385861755815478345048901709092836969027351947317508893320270737924503125120321425662398395354451231420096675411929450160162903183321082893350984134833746128832779216283692935469017513330092684064414915007295485818830745413712318429696793960975441047336039945736894630912325850096158915206014381165632297997389526938548702385781471042099446364230761543117309275950726267455729223133721210594592845422195479678328618020660818388638833535594183931736796997873974216908532158823114076270948107458746210967688669180458074372566716324427991111660913261981721207813658296954914332342507586650200105284410390931095992911914404475172917947771225414980320840818860851450839490667649099885963973085890547111355692178706682303777448424461165616036250546695951301084906972824367177479799535279091016595357460390299460652564980967041836960061730386025878158711798215295104820778428383960651115915936701233242066305277744765161685828687922141635998513995435990351909955514536025875617281116340750051444203433912698348366931664200951590173109016842825412856938504576746137153757638324954386723203850921523857637225779614844772384057134077868453982346257842627017858170208977179174522129547661962364057224684508279357191970914704153850868770406844205852685992910102470377834202513882896690986896949439874166648000239726145093396178943432390707368714766324151493534783448857142432153560247810216806034969700627518081911651456667937374847852516786529741066331800634687361252829184276793740406532244169301363410447387570242301510845104013125980047391279201250491268046013982528536010206731475253223580400927024434298727953615504900318878316294875602980071689660502267224088412377669970721021571903095389163813709245696369873848641400874222879689160720106536846243746964543410663418825067844331227576826212289054622890967913518428328868602049549837980229251994292583684813217093245744601188839250188693918147523835922922156806661245558950462857876922417876137775249783051239166233726772826716810745811358325793157677652498663870213039578309213235506883338892660097823149490422764604867859854872800122538545009979494654290252615902478161249034281972402785670573082353744143760882292280157096465546530057267139121266373851614655762087967340214711356599961175620992504070138956073600566568357752788988228420096510112384241395556851284325770108135117319797584830199725705514429531346682148466513217202913202602780196184804806495910964280464265710998100030266505434795600750690522711779229503060846836720754666332886530921607627088296766948332004347934621106371470716487339806347593622480104383646881125320132123376677935092993792817041148381925755380781574258494581107515992101162826014292758824458619391761401319643355466395143624574610764099479596366322436477216403055415397524931770453576801481916826601495595255779814099103176015634824884218534964282032048765907781902482149440036978273484106036817367341143593219764621985838948219976595515421847942866325360178766318500498378301430709457624494442776529292489228128519790815362062064782064668482238570274140707346687082780093755913225414206662063152079299666621469726969643843596277303914042177810454662788656051095422919824665243266752623884352964393012734241955583761493037733037470824385301535302228921246643253772520596038328167106031472806507849148111981802330687189314865638406407044614492200978447577160358450616463501995243666722083352951508934555634253952596928563202041540933055228304878026679315722364453515683463698843154883203272204477925212969641851660166112908093995184755772951786727882931640337696932913269508413643822780734462650349950998291954005798448396597969035172862142496971137374616554486843076414233452867280256051472183782824030284782997222634054773483502821150567243995303448932067162853016184763535589156524514319097746290922067187890743784705335508029515978691404425193175289215295951040137570102459619266031494408385068046519515189354822028897908868945556759100771154669282756135009704788057644944341624333725342542278387158597926313802886102683167155459901976278641193386771192398156578868719428846728362199743703881664374549322565198810918506425483350398696173107352995512308307010472879582100003109034286513750208884033076617228879659039836589864752940744179531779274116226256044031231887055287942293528667662399512547012163716851488593662105052629605499174443568179542313854645194608980425529097728049834231013060652470198329113326946748796723258459950324312434651288776493594306001307714931378983904401654290745527257408867550805149385228906879197064143348579436082363527385699450258618228043731237478856924428446811743166191185397424654190546729821485401379042396815948619563559933479040786318035143662657262284783383327426674742651660296871917680592396472868946602449558285891511874309532888022810747143049261778627949467718066068007173090562950620708133311382076612081842182364947772082894190732809796648650257921270023508989263858771051104631969189394468121792619564176987233377869782988647285251619260341378359950829553957602201978260389135772191634182371664363893577303438741002356665530054285989187273971312315235194916411280589057518359642580891808049108211006902500306502322618527922835740857907341824590300542709890960592331904282287105068327094923261829466475137659959101778150782187213568268462907477637505803280900212421931693480533612304171639074459029146983171308543998570194409845309753183744460691463368243992529446598883802102232812479026060957832924852142674685858425445582805291485800903675036258563272981271947937908954944198881133882414405293084276753413642929488790303159182955324808823621329936994656610676064283561903963061193127453200249841557681278654757673208870609503639753089692299188006014148381582089545712389839423735639149865118586622105395714097426033340471791326884603603386552274291041729046424141272634144077152671672749241960011865830401624251741430493386530714157488330636761587401418528308867275285817582962603146057643209163867018366250107313955800845481331017478369978758884776138766951657568493552578466643765960594261982940757227107940482178810841071377932932331644212474874467911140581020469068468812191650334370241481893887853806935624016587410730197472253094864173199631709229789076969744899519854515810694228595717264109031055100807932904707431248621129814715523982421047789808780243087196143405139705321665290487743822111189822058939572896609694479616016317824302196285997089494338174043557011579965750477637047982918289814769083719172421089943427397308958438654269363405104396906830298628828578146362489215711919776013957403241594783522383394226580829029714077848886904913450105945652534320301759500729499725710542128481042601367032542038274522077448148585921916710708123521842862212340522391246906633554334488780704367697421202331046392281831156041486344606967660969924508810725231840099912066614034072239327115845778326400416447479849186441133022915289040441054924508045224375452501338386511956447870684452054054974409135566232763018420147336520226386187239859090225571407764591025402218122717951183264334887088790753300070454797527188406216049102082928493442699644057057728803404562501292594368470914539747487155194821219627731153433736373161220713187438173219476575997438783718978353257866219509955279281518596474253985813170393683013550847565418656780179886351413603724012832089174364986556780488176617809934371358054517459066502493015734143691815330231961905137120436523812417807652241543092031128147298297355355452020035953078467568649553895605932654004902646878117661253591440256156974509548040990669331928938425123677078147831864514406073531377320511252195066660896023543924870924437866663938744222954446855971103818880517977924487093139098387087050267604010898702946450864273195109432821206713406208049453367899032623985883206136864790918201060130443139352993190772346140850318157161474153135597102734520031470185080329363636913089574213428769121333576200358975061883820988202516828935980070873578384991132207805547573622735119968477895647223358416636323792731531128498216685967585131927719895463149701444745059237165106252658473354071829413174086753185910364456729615084924033260752366829080362342164907749190762320740845477535419983295974742647923311183543186311403881393634146641018727213028925382790800036223527382806778614806673211146555281788203670877804296715644421537995356812139107356575099775816069929683284120166094074186213475829401776540840318437893832473543902935909678111153525881772804255149608374846266481235879212820785964662181765855753112330823999755412395180886858107079016198261444854174201032084353077185839878661142723092856589506540138971567202832744432365118550873307973632311786819188819181564359271331171105913175847555983220687071153528339681906429032441968448268452347427985809672927214546244010335365359768785585544618579541749475498027187385676516095518965827082749165629017101557116763048973351144443441452305904559340120833390463279338019657040447095503837706674153677472725533431329166606577501942556649836409137584267040982155778115222963368734169100525315347924760931572255038179981292963849076710966845475369688111838453281847096483878978287844926550473078755255829518187485725015517055390243925532059801331938468004009675772226666249113972315102763129338539584684228335428441078740316919191634661496714846877824303668885471494924822286126390442483880727986841782731149124348529014241728964324442783776753826188337360116257508454773334978255055992918977019129303871191631334949270660477769778254759236007180929042381517812955454441811338160255273575026738836934043680940452055184304852851053016083643569679998003785337949493603436001053856476182464609918513352870810475594224160559185651688736705801751146917953523244094242449108925328491877348294776314360122341403463236435046253324522428124123849278110140345268040474803726396301915085658993410502481841834416697539005038551005795135876835649775966034816571888985556281283846344674535292513310902866173705750262677495897990525980479056787048561690154905214788300756535116582887215867831642455594914276697321907323166808126393511637391675900703739475879518296771592067050069256631695376613287659925709035672598271790618398839251012309215377742819027638588690854854958928256154705295344514795475619367920558402393685816205751722043689440928521104464336344374644624880785208102476547975985456024459913301186770635086801861371598941591219843548790531158799005523674067840767195102886011392289877697639762647520423092655189898407813025318771421659285275980324760110810095540371265206809222946533575906643643653257857377612394988684357712117841689478897306639804840500250861313080965765233400380744775019013037226161519956417281463742421373935402701148158783379750089293814243361461750412606483797372737592558305663054188603247559823816021952362523884921014709130961610293972824839450008033339618624978059455978375079938075913583545821299554285078766933892917417189780007134445148743056441547805624823557358903667988323873973432070198014365999744530343428467605396468565479905295258458006584502956939857112534307114279926663520407415089540057023975679377377796049771042397548162138876497151664685953729867253672816695312043602029671924819037150781439823140483729290004282372810395547940564012550225585707319140805477416422642140171046466570076428103419538757194129630941933397811116312642709821135594068805991837360163281853839730311999858792163742845364892021716349934559427314440558662811767022229249924184406017763106030898583587755836719179100531265903061647327021427404134897621002887357021457453830520858416513630697674610833737042547018585922757677163077406617750717162019717993643487368617868329934696484714937488154720768841925110623646861540580842034637259564237787746606723884762646144903008620009464526317018380471475280583541693045048734730992110559076116028873742478213136395580336752224545758297725544648789013016848536550503435262604788961930815906677340850359147166696280656181974149426119724588121355058418481757423483217589765849491879651923642683587640039984058341492271920850174176406707767828902554235435237623859801005587470111644732060969374069062977924399951456425053394831457720254527284762424403022625589963262127313950387236517554879128634160824664083197152007012116180530626148969642218790729802393775271882184889444913175402917126642027008694233235021506387951501735274635528449860887764110766425283108761879931537505374835091053353358202087950630349474342361878261553340038095266968582605222929091659396851941819988504288641718120101639495376343752885743137610856292636262290739144440293979994859044944840163194101933186918041036964236478796614287937155613034394619798009672426373707885291562550190126898693677089795956278872103903620533550668985078228166201856735859140494169298326885190276477171459519678490613900674472618631934310553399797227880242807325480632390051359532902610624398038068527578159209018641552193481666435012599417609904101207567104558982969325592383946735995627897112867558111453912048393818706617438445264916804078943605135610415032307212585699774350015559042562647428528437340503730710052969143167711475203978113622371743708625187241765521266656322487131244429347852227547450151101577555216735207966719604404121572105759646084941401879243362751753453769087181518275264008377738556594927724282234343176894676936514786628208358132232239384672873858389044847008697004501319321827154640231752956415412793033767922893552368147341312031732931647583983301956377032216937052564142038962547124528766662601112443111712453831749719480185245526480808354184654921612165701265598570034251821325758438955997180545619896864650695847113952387584845037522486872605363036573426435126662660674061484083573553523952491801205509471665664501443684189718840731359020878824550722656566072249983664631597353248563202371882341229049165598365483453976869277823471917075603630125428572723527141948904332635939988461390192065386378424018082094347077115953004958437012639022481874460006296234231243784549958650438420459697477531922893926280624526690576315846714663445635378765494307105553938714136304220196518943043846745609716650289059963374792447338325231419787140967296206938701974638940389852060555012799526104705949918917724776321846457383901929526531171962573685497252718650708361172277892624924642097366461657883823858806177904685515489278621889017380549608231581159990549736051086527659510489943480141241738183524532450787610875216150652384056903404438251809597904354507708532471583778887897143843107610385807172105387823455852052257021496881536313665433927796835283487590113270041794868269004660307611249971251354131518628298156663108046140924776930119914015110274049276535376278561439637097577368048440041854620679715696596177898305359669546612568123176003207368462973532062314476845952130972754486786888207231768332487533092067043933684477036952308564203894736361517475450330955245127762114988612150679269034124075088108814978661652913295724527713947877484070350753258416065792819386429982251630941704335024811614927909194956972648588720017490430083447565700196791008603066369764128585014622308430912028834959533748769772027455113834504531178484519074315461575694424834811725657731804270848837708418000969324390589576908304617335686828511865915766168296344267055004653243750049288611864662977273721996167573664366943986468784793488152767325597259158926874618030219079188728806141084859430526621754618237978653681754661343931577468952569045085336729066914225366695801716449836414334095859013680164458210169452604187274109710265263730645192374440201876362531342519416775895347389477731442891591804442382315343524630828096961236116919036481701166911146586377178743641807501605258865472707128172105339213167946048969478740142063566290970940475362428852009238494892044886267115305424330967987880168266315672431487556830590632621295924274429434720231601901542077396895292643622429755240144544318035184165685329791617928128099627418782283576109176787187758563097049401278609185172400989367421475400574023788745757308063464453382059722818560859191056275767296018621740001433788311114181579539163297649464380887686763701475758635469759701762144071226710996634763266236603080224666477698723104844954661417101598802128306449960297887981126776602936844483386093654902777523821844009894102318404617541776861589585868956442658356043684771594724922648143108836435789852179851585247560552508908508636963149089691786053648321649582644568785499166441456652386357101745704161661831676679268849091066472056195868769200206935807662789513907333634850693313715381840944976461500232900213428677002959254500188729929778949265983883705759111964606527040530765251438352993134192799687755626733883148022198216233598059663656442267715251798395678521230931056046783452386079098573811777638687902958933993695115428998253676372524424608956060072416212814551920193718647152815694631464115532300080542937189213881824556442970304019756152188354425436367000628411242811979406740076789710648594023460229639719769256584015618331790941474394059103048932991898818137302691115707675431898542934566287247575258391291598150739105037602704611306955790319681712763321898699396596968656276481571018054493765507893593889453395114279236836485435577520660763571244714139740433068311018326294827715984147518825240057300022075775638708907358750553931902998482011299485113087137053483256593825554781107993954882396836615637299404184312719040221184511919915308472518317580177167438337015140398477001239010516433164586931091340812566617892693841115867241972785060132716343104983046998452815580772880597440037870238381805544109773368690813540970280083582621012864787592149298272745752086789339694968565294397883118640698266406006246800931427024699141563255977129616604568487953390196277174104168643039086337496150516399271485277690675693294480059837637111409998954678934518467649930949252934165355729212373918239771110577286208452858479536827790754111949087263579812576170755168535594634891192870299097895266748840265170188336557230907866720852535871725567861757798154269768165527632874971037021412288120840158310737858506442681364669073238190467409532332108413499042668278518327279802673753995183769975392856420940258167716203094740474678990694254329949164130936120235124808562597779722325804172816774323565998221841070908588880678105313307668397386175674568420503221747500576762756796179735359033167357222467732631005353244356698231235315772298754031888846282552837924635551156312899395594165532754535045123221992502667773224913613763898129210697723562477085318574769737109514643383523317259308964348632754640947699748292101341063919441341711163227229322612566933733669552668384133731980390717882267196403101320079690993253789211241624330863001979606971875766834613778954887733018965639044040197621386201549495406177316421033228488394526340447921321572969299420882452902541594852248473889499951125325449478590433024056453371869790933975381898654523021643776701080102926159573306727509864034164088242395354057929492858604466608501456381388589674665132562595035390232974397355244264243609753501832640736448499043159452189863143599448751310034958253622182353840984702956223859095675878487171391104967681078143670491945597275408939757007840891199104820882231230739839090958744592264192396818982652652305337224233189114190809439984364339892579750688024802575340168272920248111940209530687197734802003614771534340169637691693767236643928214690174957379450435519315214177926521298332357014568645170045287757494198255079144998278657256607586077731275245387456814223362711961653194009286138343018248470809170111498724509065065541686608777399743401703446625725533504281584359413053399320412885096390979508400834713125368220679568488908761462089333858775675934868586335707304239643444724005836518901112060768773189816532236502276883604806380772421729213640913975088592781889177075424779247102567820285870695643681007063479347337559431187184944606380202766272443533422601118398933620361063048673262420291820302478287468641722433089647111080230785064588108662569979423627162355701046301298269305543304293142870850891304933837828017420158673872147532081535468866432249160930034100319633366234797637697238193661661331903548278695096860564307577264802663315818847619478565762369711056327580529499906062408935877483016057922675121578679969891073257308740412856471982519564410305860280158672970630703411818524087772018778271503809555548198686970990846798910049801747584702042022542182036560538047825255312819571571973186065393573499731927608040478281934665903416793981194597856876864493028872925728461148925824828776465146252488707554393465932036203719585317835832486472777517665691759498585185921291764710935607587790843886601253176608741982535763323472745770385032145148266867004675589355576509377506915511574279718348653668282045790309992905275911255237176432360848740349485959893406793241813957116598516497620963175474598274002114993907375844025533428937737014179716166481504511937191267997765341499760632364046122941348604148326334913367005798177529269838291836170490286903818679468043342315686428333508943127054836131474120164481777385441730672545570840633825709386475569393159997536078279287274899122494506310676617797729910262808702184851143392322467174045218022566826573602363138052989114352750689471556771489775529033793767313248632779376030669590328568633093565181058343005156661470664734331535527475877134316466514369580607837691578754819789943586253589685383713215543772369666048435835828681170041793425753869667375422792162262900419911263857341114203583951527673420517889733529146941241400194813475909442641602518385045403803310761602412649621171688536057951983372226386166376820174872624303112333342606170130084871171753800691464702826619661119978463996281227248623772510555317248777759614275544183987912989627627162515350698138075830796821204865730267030721152445391472003507653744983172778407028030010232109034131962278825436069986052819861464855428395231585784061426567703229293182799542297351234663677977314085578490345047196105222603220816371514821946863207321128039789062674213677704766321863781202521338580248585292185872692727439489577681501794005399872875651140901128953162649968349268486129072887051127244659735470559355057823138705036610165939077912437372848231506381951503574659517089320256467837103108601886761327263543755194310434769677919256702584092985490611647711477026152576060106516886138674164266457401223979372171682672181966106864972847691229408141128067363391061178347979883464393192605954674383054389901041258167765069498670322045153101025339465653323331906270366620912511699739741481108840877255703880713954017364363489697788971778135765512850686001301978153823186851669032032967727055755790589716515249906902842667640169649357942981417792018287975357073245660461502307342511364933143677663197643531227518942237062025524791604537670303839615982884670767707959633730198114682173338611283647633595130004277261874331736754037343661483832225748869015257392344220538217689618936042947591187577726877858999044066611260437576388869990140775338646088338598763906073720669486442023532862064755159914503488393281333873738075729319020216585895472946524411884821269574465940902940885195744232476591200984179951265816529640070282096891200621567312400716968929919898298635930167491250437113880979795619565290002444299224947032685574258901866370486516132810870231177335179998430328539548202541437091107122830625915517413170732777119776375904518507401704016079849588132595255257407098815658632311968536438895065689515741465630494041859130080324701756384086612111888921345274074731781183272542671602753037470895231927678314683686470205072494698453110810330674689731742427293246558136530507292634548207468108424354885025811973398726903337890745878352084758147092295047962074205571996360031299483151255069735208977120439176147192326370399833438461163593810659759149171601226029236416174769932347332141831938469311984714942367283343525870926060389197958768889517702540714473654686726394118080738307858784901084796989117427530017844356038192947431870854711460076696433778845379870288050651329681130917172752940210757181756349643828514015963080241375304187729980672864618468684785379619541022068579311093818916417303204091716344056767205757714151332701747976724529109091546594056521315255519962074447053877363888537473398197267845587899725390544984509082187926250304878180635860144973757819347321097200120300497218224930536506900047297807318422818869944187329112755650925816546600033264276279018678377042743605434678134242588081495180815516949290464744994661890787765305017042462213810236550213491939020677120850426499742816781779904382666478886519232207666433104450540159517139605790610988071512635932426096712245826727935922169896398932663926550825588311170826776365606795560307858120942497300072206832949992652466394517094873463891265462185395045086411191733151734775895388093432196065991595854289739375344686273087549004771859508109807821721383937364856453744425742156381374587894593691314108823338648770015794652449181904246387457939425735145983289725011572801249803387399970821009974772507161275731510407384099164376035690930050820417360556791267072220018334514285014074764491139197228337470951705928829635745573035894428621164099307957280119435211386613317626185609474830291517829093670840193641230966041569475720916360811446278182819991346255195813516758530658952832616365365956370698344896230654590446875552999350255388166907969349011981282847910156879479584464250713725143964893476991165518346633430175891953411006104616614624674174216718049769092630381514604192329894075049501975490460922464141033750205166439665156550652972227879190832115572274438031435108407118229675983839453677572167640699574044898977274152668266388301241999487164908903670655759705373112966289942982391627154169884825047861709540126601570279146959979348142260692784902054054764534871705501990186571323357668620270448894654324765149343483340484362734157150692207251447697568651594135310958795897351800667015398868527946621951118777620403941893692952299153642942306579413707329823270042744144180255257757891101674843421738678321186051532586994477548312619200301316541455272229076111900504823228038594769653761637125736729201488726087331179192673033644131532439392653212083374439603294226762527565143712126272021884882027840327316603610323951991190405960341754747910592292016807338127615780438269411155184734025485777328989295270217416308416296883138137228184455311998626637971075142673327350762623307975869059122308090735058908759934255530507021489070863512915156200900593239180564148187004910782981800849525803498553372651958182845996146479113824942723850066047766450484021089181482925042402110092559686058035033662062155992710772206032208085100933668092414267742548127895352456297528982973757729561768089058296373476460139320623103381578877780040195913372107907252190856052453997904286906104415173303482149045296867471264367773365212593859270707958264194117001082588230947423789268390447400229857123833966695113607511541173219059502165443877758874714038697761208162939097607364386567849962644896804067535010203715424995550585636141750248387563866436680188587095737137045955627158620235304189570704753602475763086802824568946485089070050556767237385333675511349569584876438005283348363684112832186466585617543163134482793265570364758304198725696843101576669701175984641123745186995155298379576580018058343446818377468689252244917340865500712086420009344251031673993287650044894076947639185608733613237793738434276241538488244239689463429555468145110624227838273152895168170546317037165514848538911763836932936886435461975870262180455455788130903009893354872531124370979024323827805400116946138791573733166260407038381053751028757515603462467864702776098842882039152102222645875115566685523153411381616850600417104590746065940474710915735753810683617087500646605188203659762699913234087719955443054303139811654189053322255689172252292994503495681029734613216350704594834078138637150291042056677813399385784060916250158326838182552754232126837701067452679261934933472864354475450410409779828129715053155802121663141839478529367931473939606841221130486294391284617724239593552689423040594726097791188444868560616334945150542320361359302377998170338551170563164427286933377749966509558656511152134369416528970946841349067854499614806592643652208853601724649021769694293587519193378302770336088789208617270908336322540225605018006879270785231473140769583080122420830218287891744111563473717345938845171139439313239575910713094158971371426377775709333673202827838226291652380059901332340245460420399143924670564743072085554888149804792317540761559750435357759953368975410842802253916194828786285481244136674774835525393968968767932664445632769088743150814695842603953512286751084902429678835959488213163654618247408699151404866948599281731192602232922936708639321713349840957439568291808892959966847445048057418789945072420699926312653872491202582463129133020507597186410098268676041190081755571520413838207744464531890711352816962993422604533825046406425494361281178786336696099153065539326115684150164130074233597978625222517308357932867289329063968702081263284288874891012258350739691386309306378908251187506912995722195336386602304578329808627617107976664229318760059891343302191036705212991184528941681103795119740427326060124677958547220758074377379156699074545622884687275704854699501908898436510970574432094346892109208877761539623660416459104888383607761700009113995450155281655275135197631801768709196329572699043036360196314996027733092481320429667503583531156886973629446792173527469514862940126275716495612355044888591322583005319241210924470411097186695574915439883487348693560702857209736739331611171306407536278927944175432676417109673046643278000639787542732294505959921554019374476269839205267841556108041284570630040616340241673577113807702430645042348195035444831778808228751861720231648238432530612782448521155346717588052329265289147431822020604880140374096536284853252603909985276148933791401480121069778740710720274258483519023122381424637528026814297323226145663676028669717483931171011529779871624243450035600220281951364970360406665575661349843266656953790721463197593927563783302788969086266633833430893156850000926945765799956975644913607677861777286142514157989164066246750152103902571131631302204236011950738557724106805677152862838808089549166120130931780723160473252809181101037789199057127868971566922481096325117338282411559116760224041740454318718490148951553818317802150916081698788557262814452245274791902028759564718723378581192684040692521668362698128428289942359938508377152357487536223999498139484744690674328779444986793116971632708337044211128524366714155076448097281312901708889249507655023628561452158161538888611074907977295918712194883150935729888173409611335145751860102866727840357331497995782725523652771168473330081768534281896488923696344857894097728248034327197299606543041192460775225121135304965861256048930375738015346466545466626906897823644984208993037299298708434697147623755275282423919391378044096426159984949378378026585050638057823833940886764701331582956932832608053303339598133401152447369067560146124863417416333338031954528174113897719819205269817483326190032411704760570210228930983170976445862734344660236664416992773871718229641465143866753421186205060259947312033350357907984992212877829546780422218830149518986693668179753340612685405088823669909904197388080004368700151577272613567190740418474015157237315575310344309577702750044452447520399704532321792650611688212790297205303541695927732532874021140612488568984118682971624664698897100433625510989396202431718636118671263549180064467523121119118511410168334051440271182219723875220956851294748736075914279875911905390002826329129448674638035567221480103099477653717648807765060417614136997191656928833076638294368323180182086633197814994348674914640540188287991636343914755183333681257745126930777488252980524405977687158218479210041313053882875706733950078735623257745677844750518151117676176742246603533136704183978530199478675374760580760146997926090296411392288144197583883546272272349156134450836411501704230354871212546843964419983814859465418418410779808912736973967034297518762770338322099658803992315208046995422055942421168537673854482933819938326795125371450309957468939270820053304077149946451733568690863448191926210487093137253778726901284495512209667535685443172574950763080290257525610880557526559274416507114051734661579467192623740856467139726438559279152650106669100263986184878195380651185629196642811064179616993566164414597358900576358946393593464396857563882852691061319214039925757978825475521543731138726767660184368219758553541014765305570075936194372691084953692409276514189813407281828769456277965936183740348900081941212106485894722401405760370352697489074534653256400688356277205833418196010294367484609160626427029808288299792146613586980834078104178301211105019712720395361585283340701791343620634698214799863690713613179949872796709091469120743343523510459040903402368408868414365152524159432662171876594034933440511157818054905157880922229694665866071689628212868879376249190852062166564360251332674315426772310359331626033035667976309381251242761093663254020812308099130500698546429078913313870317653556605559952470812833930233553653482359285579610653389440283540660614880393970447848417185979155688926923018656605703379152992067010926241011326015727866892804069508945659243767220491346006063722865584188624328426439391072654086850167493577691280094884528356543794613656057097995440755442653761632263154322193188238159108578241884215465793650848370842303628113032229561804399538088353303814644355934642764548251530316019587908793213832723498892393871626419821471929986692896960723260414685917352481252217175788526481120196003122774453580357204759727479286052290545050359346101939054888302063510710584870853621318583754946302702172917658184872997731010223674314740803343935553654505227944006492917811732773077895698981520133343334933899291393644701115141209356658315799425694709349641277677162652180258499745717818615452129340569841241430048110791831086271384881487305040293799161970868681799817485651748944081181361496116219506140489211604238554993749028691704957779322113963096299401174474014073193095215211389886141130181394288955520713087761933223352539344175628427257193942562495404762538571413689956677812923025916488334683835436067327958984878050506854888213187921408394547921534620305440221966928656569909380614768321004063970747307181365674932617840847243125439441374205133732397161411441361732403001511952801438978976317149101309452015917356698192787429512736571543465394921940266256232828674296868316470974712265060132052614568368745707356986999811826702198198430514192549705452288839699704312401177124174997104618154992484922684499154688263286382515217828603416549327249913375761310893759707375425041077625979191981578108144255647048419993106598408981021392709707108157898127023402287888280130102832577494743600977790030655771833834097800698813565121079064552486001173391362042647026689228113282002699021593375286092539001328401006059223655091497333885638191724965264260439902915708623163379618342460228134834177017105181189362225519397302471961989493252132320046330744616592727986924518418872357038929019048166295815660499949358199434631211757025002710468053703642509824441402163024795068393500398356435215264753517869828812862694980525634431244397877593841773612155262042847264852454143853161341044782736017751474628998028712668275311089559029446991568759083885027920416436377453267482484858533620305179708921340651846261051154202854643490272200022168625303005130421677332292307267990361061052757417484708193501454501329941175814121429498419239693363342112227448986581443390911960241617951677687251829111123588621145530075641685311786212036219833754743559376231534815406804433765710806253148669543186445221396000342005329100816962327986469423852925450788446600840529307380741704956806313185674777239824388749994944999553876094791537426486122217604358929331474964370166259461034500750561890256397395248605351024957244474496164161538453402122097022899905773582260898431429298524202170514740824527339406481952169903888618351614784746837321120162209971666442723190640669086439361607962217071394006650098928515548941192880410231308025948927840018888132616328369779413161551203386671972418158082558926120603288656498223583435586614417104221730900912487153505087836322187732337126243873304948456812587098014815232412534763789664997750260515782426465015511970843177816070140490460956143966955352398154496714943711832500158104332948276240853055222262624594104911400972535627111776463904789115878804125784839242618195679155627576320673523728297509190615116540544142635818273163731200708500234170090650920866592775094969551042175627297624358272598021504821930006482979514251602972949478914252787761888110545281645760246088038404563408480800257606524162763654281269237106281301799134244492644316551287913684710113862024473719181439755378195587586333680005550199906087434549596312622204565598865154228343531384450011387260270618661308311410557207788207704744026843883440017182605898828688937378844263484701779385285938489292898214575701222754288205152150557533147629892347475358669680399646477853711102467941492642947172937730280627229452355876420615974353760416796013232094744400478009991474890485832354048581742885579944740277735995900492391008440550028535377301293053460652199233438366398674213823860168252448559933083392764652045429012970573666425309763150804028848570938600618681542399921230757987109978550458342712386188227194358234673257344416347499744470011552535604230463663145967175346569166719140230067209600826790091671723021903182703535762119449405935553577759634412687395887765252480374841110116563271332751832293724214177769859332165365697891918457545917481066249144123082402201045317128899020579309563735776559780623935268485509862152419439139865776382986889890836419511787480044059366316680217746528836048298148338502822233767092065809973561241005931317302045997505567028174446024400494329859223729856042226472882159261352302266940887494475221641807676493325133472532292861980503100265998587457581958674953877115855971687215495493962529037858716600143821344094989565373886728464444124266766793932477067545506936041719179653715206075475202361957872315014377946705016658127931932926446138092622929256167498701791931903587558090502059348700298804677463339357613113882299542890888882755198808357723480636726262295330428592508061806049516708770818559718702878898827779907674623704820993113437481519936301762535935128712912500944813211796217915210585108864000827380766871682418413591431337953496145369821078777155842642868488194260741691501015251899253518854290953066870643815088898835088341140818422902163745335807111876666316559100600304307014548412600005019524012913230333866383118662115043088265305976848091912126622214621189098277699680963025395254296263700152850561337960645384780139450262795467953275523848276547405229399218318761321555496435845700524176741404344805265468529689799698390286510382184254677820409460360502392612626480655199296186172730990627315389251649616502690833067270682069066888912864198479767851001161103880603633597710815916808076250999473931034882076124093164888167615890630339759760245791583188607002644158349366649586693536828426481255821886479341008519310825288207169207088659759021615449950618001654075305380928259567788326258924295854180118420717780141113174769431131093262357735340719716498253327918072600335430585460786679290181519822592321675942844446379245551140298461715197266395162163968861571277270706821582864137199933616352386268768711434980085435115814999712651744634478948414916400240839210198245444910342428323676570327386782749250278733190117243339397924219501894566640928447336625674173263721612940131636942753391079359633916199432337338432968748142292232123500618827726989564601429246420549664725252818501796091785847536859397823025759640338893011505662833818338411498693576883182182938804533507825154500200371051082505435724536421924186277422136768912957270110554143759344764027727321385679689879715551793240973896970315237341810320600202431618175326260348421650615801581477702356609497317955694784597522114610288430033862369983545892678228345200922346195593418871978190557489271157833430751182478052173748838367577020730410112716935439414264598136573774855917027730488041055362076624517585282490639717094212893309855368561060025373281292264084183456245292983025227543913754867023948729588579379989401812383463434179375692402375254644488966715392404257195386793888805653996614179544803585361272687616468080009699034015770107426038126753630838954156358599696636937799737183523425373679216077936526831540670775641344755563444717831343704726220781559208725295594115234009179978869257101106182577761688456973564562750237654347413386540661109879516911835666797270102700995876318890924424647020973002926797512818323911515997489453469372563338235754988175291083663678819704714440564498943625508690271131961183932620010170156349262458573935529937754553199029776381111586423221114345245497762855567469082443158483816397144447772662059108606338199229283150328766890606490317958968303945183958974509546379843777040072009784930242279950150483339913383599025243727178136492037789739344804915775072276536144415529466843198857791211486957728874977921107285846489999377023516201235195415731378101000770084843812534313460405702769221806837509271853946777889257308041539110625727875609404217188083942286921353337970073782186873075244444926563804363488987921952988272412789311321161539710209518341611740452442345077032742100667137828446179960736082045953773011717717800140547321917048033790914573685540974717453384702364554901845399271473804466229578465831704611267823728517468908936692094160800124392863445273223357052501463203019527830922261318853719551411466528616231365626916489152666119509315280818939687006507153842649177410625811767729794737773616044262919898269252074469871347307567896674223050618454487334855676645810782410573296170811064887559007152570506245402539316938190850797683470224583586895992040711662590034219895407799768658140832503508122748393474464628227530783135755926775672021516723103061040118862751549506711140103702284934783742909960139052971428177969574764641002608900641608832672651511142442142715561972374300483613608947554882427305078789095033390663960093249336679005825314386939557688147577546709739253084433632157398525063062756306811234966838457522196098165699818172291514692256138438377698434037513165622242994566609709750977919400873042330434717867502927812303592108370480815459452006031181451196086342117169318681636008877552536492459825375163083282626357164244958728749784585264530287204834521023236286356438670966853747549700582278188044590135726902565440628516436220338315413414422727423351805216215620234646234550294757400464580533515846461666877247929804735716763842456979286072539934901373340640676974982980634870738458177270110225756142634158272129300888346462990465916648913503569502884277677585102607521462368376620368582517754571271838046660700714483721579830623240806166684511704611480432845239702580975835206527890059710619386504769373584514050262029941799656175957531900166056302969232101638073599496361531277168272998864482442439154649548825908935948706794308861450988841412814085569649384006924334453234011941037171798531651066831485444219112682879043296914605957150931490059983513229043672106623649550026822805005213035679523858676652755870256132921534470178321243689701041226051183873940279953730708786152644167964141012370043448459036213502014465199425826745890674844623859312697668223871705887523294905863413268040826214209278227358997757862672496237404657752376989422500976207312885309163557810266400813278166325356602346411846181622799089820968989846625150493936221493235821036208990875854228482695618589639154712601984983029948306663074288374870184209870378789270653085194080559659591489767807879093298871319729404932033194084206279803953943980824291492406971842169967007636016815218003065599806475872444883642640973510335412136720173422928608382742786893018973662125751348132724899768212749661362892901483968327097500368867835681263131438226665540734413675955593219568092462733868747771214290000696938681341379696819400593353396069198556110708270513777026448766333408145612068806962763898436252716880145202943863145667475641233545314021317979188923388360717400515720315542744607967454023667313853299512353418635441996344866123074930518606410878764584135922968240342694550413561836103630018690554462282881618474516218222916607384121603208025672515765544327323876397864364224801524307679597427455241899476056185791850676411901479226305585486956018274488181065571590456895806296649152635250131572205470014492130710305831770701278945236344617456082000289190135747003194212003382448868483683087714054600589599400539709718691476487508745977300577003225128451527042266002753509547217876396956338456622222082598804592303571588322914210141652782326909732843877195404665906493923634240562165444870538869320050725267069959413874714113527649741981532773622274652655861297691639260460171366692242971609676121479841417927197558730267695725930216729994377852478392032023325554758244648171694343393645268562820718645340573980675421924391046449918154971614303014737467928514004056548161411785048116321304251707300931842931067103494761632231766278649487084179381976283779403855221979424864417108907659363530830705336358107863250590183329787918272455408317157167302058761167724865065203568154969365458933860587535582931390042656950028034047649148885080553594530633196983560583120006899513691933991704792618674754429371535397279400677475745392402088980016418467428950734404893679860958169232916360314256159305469704914545765159910432922688973862813744000807098889633024482136882504200665215041438798116664278966688630035024245621157590307567254130492168204600388072039210839305792193455569148582847763431912214563693988641556655279365542218678231335719053161890758995349629218790520690087501721057801207065529876849924639521894591066357431881906163061429648847760773390767564259987977076492281824424262867420118593838042161160455067721380110784646316651444146861971331345691310395851816696400814193316457170337468524721999195018873813228457129635637767346341696966353948966610922848734225086157455946483216741464347829811643869775304841027223547808758040584164802575194857267077155701073872655447243032271376775105216232074387377517719608261153454990933380817510048178018753465016322914850479353136907973322678472371725244522397836447018785884937493585120625835546809530288578318626952721602987750601192702322021329258515172597313993780249772518886016331122880258332401691398999870142807106219196314519898835734051802930175003940737465765570045604980250870166925938889419749189196670137222603527982973535034727435814912531190947911414943860335158518914149911578033016060372879095230467744256200416509564602850608929023702375247076614282562164287057234574131716033609672128891436088485459665671696777689065412409307258875299241304240635429874648374402757843663517690798733519594151368769032572397663592371330983854184275521368522476028380353005098899938429996195152848938725332392682764937713921021212756273470935807389941399513517050725986891203233671253033439252755502984306346926540842430501923913945299007212643135345601048144071852890774453494020504042920051814147443630859669801092763633319920382779182261381982975570983029946255191299086351968686445409337254522376212707616655438220563725123939621232538289283556574349592578697591548007848216192008690571394752756844895518798521439334724251068749155913443563864932570848538438325702690433131792293620563146938634732507171505028893345924635114288820270709372839308971950800048632129763885770504932866899082539600162642534700636318429347614870217335392655871137889920114034949252189270245825489408038855324165395373594909179660454278607782716720019948291509028372465930007804619554838041686964781321530347752714585821817234720442229671174283984148473306793346467496361697005168202071413743653353861883725657379299565929290646468445045816612047097216518081960392667422672713973481357625797585102439384704112734660688097202460329413291629882540241975660661225755048294457678661819546090963834294885523823712687655306958004485910868005904323228027849013620325061539348684828231472762339891481421453990777110010984651684267380843133440264262222422176121697253023872471144200113682400136184526818726040657143942257728662262231305280932224263006625685226933610072621193957550871762968550803881084361289445971366195905490269737610369109434825907351349323434838785650425982114100384085020616843629710070471952866380115514936880910423820440450938716887287794408927726590269969715089698383722824468565817870374172662675337975244727192332114852662801528116796847181625122082837367942890318832832335450981834062398771149871058787127719082438709191772814041604315822960039151130185108611816931322777692650584519592546622996778285851155592977885816841129944660786261788166989236463861021176348235413221647118305402929681318867595997301283089633212930027150210452273030766063354118195216087172554740671421431637262346888865976444264459661641029535572446735696496903390414572015551683759557780601960981159095335818687198202046693500040566166594192362384709657092937893042342781030950067649848253058591914096839828205619056144885267565486018021442365298031912704621047452251558389542635197117186761378325175773638796696114584502140113250343903071236110785606832241814230614533551714797750327365823203005152397951790159454439210365215253136696113342072374282028226303335590819325791159406746676079295392457145952957724632940045944306633708640551499820114360256805814778237616620500425150782728306661527275992635694931202156096627889628346242176157603540522314467070363064299321074105250649991868168827204200268203675629226114113531295162479788804796047485144404009774605879664076121828182348431277915804628414817437633058108737330096114883955029026420011365209166544333858419467273762451555851034806079860895881339797755823955664607317727712167940988344600666271408911988287589328404581244645025619041891385981163420888444130682896055498982788575561645209835149979706227849833020290912245493489750165883896410547789976847563477141866949505661816695136376784827154678489535541802528543834660274068649946564387571824731744333540810236901560728431397113030765180173536130577855910190442802063053663725591697323559066976807933540582291463941141417335072487091937482350575300392953437721224478801342011601456415803088838277999569428697949160183574365638735228727326259946000547203760950354747656678437983144257372740743369312895231599952513687492251914350277468269623539274177775302993270997913243607629442831396026029688347082287056439573928126240163036229920431500506585078804719715866602322810374241554626146167012487698103904273131460155220321310353036682562950597729372451239162726231155780426126233021190536277265078183834234095265277100895625117673199392281132936335792396389889873950619217077129080680652078083292333047083734216993517768559571091130897364223130888974512693681833921469790491934131507909782615574165416832099061695235581425401776157209977687240728093673963039278524903342863837886469584018990333088343040845145729433797301962835487460577385421184683333525005252330351377995281569634233739562401546953663104463564357722761731102409489796194508225136583728702975499440356757425538310934068595315778403978277282990221388624834823501537496102631086572517964474585723010542421895634968287573371646317328065113067229361024728207631378589458854508638609580154971228072523615908428500272306534907316930208646751755526367156632858566111083505408556838385891424244820293591417984698439462224848001592934921789024982324806855718286763983086990654032764339835946727901277168998739603358279352726588923345041482184683000260923881946873459722677358127479838665022514206471175367997055363970477927503669963740183391498842558474808930236819401551074831629058215282301293764983134628370031374438108659400575523711218388538614051537701361204729283718337804783357819625715367503200896426876095960197101725577853205714298164454508933163218313089659358099221291733906230267087626114737049616770067114810394155033674633703057585145442334340114574470211292068328634826477887303108599764672596814199394607652280615924774362590932021983072763806200128945431118741633588349554672397461314836988352440577487695609853951452024382996476205830007757780081724057047904120580899641015874899991688382398874015613949175998356994753884141792404491309220440754002093851414648515566157120736868919756215402142047189435052708097967118313835012911891738076854621229472660146898291578387526714151713789093108844556524363958447519237662811068216768058619694505187019110246242440076703424732885754680109369444369076063488564811000295765994319682586882876514346465639331929702261293153369742945352603124961109783780555415275050995488914258135515639091961468237598065313886405133189119073789947605416524601060435517165593845522919350375743012769522320793792244248880502837370562220656482394402177233336313665661291956342652722082133505360114372114870156058643348194362691987025475195839680445994814346581599673501555518997275516689641778591438214397443603821410351795628465297871955147174506177483226950592545737097863886446793780499206730669934926374394933193210865293272442595645649376738896454473927448179169757586588978334322648824914788542638889844944274137350846559332144177361376002220579439855790489375118426550454725921137710487941256855944066795831895397344433053755720223608726530841545249278783003291563509184799220992314616961171121311741175358163308177133975159343511743386442672484323066415005226023383117543427051095984505720494092718344627743009833611860646834398816017765289771178342165921428180903789337657039619633671018135967066111172350413707449016913255529789326521874745660561439240549570283624018982355949654804193154457221217621661080925202502256619111738980385220670674888099758608915463888902911884499082449759931809611360331666817448662064206359222846873547291020189328264772736693356210945872749893239298663748954994077333588646622726311675367383057924505925955350899573878113963396045028500361388334177321856629440972819019792892279399766130750255587678199359037716257966494239634762239045331329740701035315012637416521129648561436949889368098689056707685083594221373912304603275283523182148953778980218754395241533745669711109229859540449578113494440483170081673981166288221791016139085298584773415441913938072426638652697566756715007749690534460185088532578057206822146014930647390955076317738431030630137001472230039465090265526328556346341853429480614687685702736401998170549420248611265065596575833782309517520587792252216999529064337464953196335866969940145622660440647037522823475610047163970887884253621798324917773399634571626428920933597739161421858431401091035207779276205815355564575458480185729085470897994037167662154396074354640560388524279679414278964269362466106497022277848005228373199881181112839956973586464363264567708575515783378497700131154066637838207541890028452860030146761056398837486679733439556985356795808685175575496354073071017682753009055941069819318728991041002347219961869238132690024723628722021836146241377484508798408526131744959732374543798138772004130575744842878210716203289527043294471830692289938863352965630052697393839214684197212284112885195027565109718099395590119369690284355276359173646751638189102253307261319609259671981559577273480898882511269755076335531751085973958230897192469183285978232914369210530912882678439735302329431064289172691156202504839751463692088796029969233822093239701329095308953846462571086828216598139206994560530744238087646174975638518107595110239368081443819493833472532577066183535205421070442872167233809956884023407746932284912560452792455680984116206840672393873733475083263623888460672797229243665729736973915790805200488842043661699933519517167675775410422750844011991187272626097427714185896962880910887531453188788418693418343599439001693506573262242367273322928492054679886839647931883516204991856238477341747887380658721923626610227607296082582409143708300906236965713347968054190639271964757392956973928590957965558143049547783853650353332963963868451538847728647577710731408591832533762305228234703516245258614495194608636116464093524229527206395025870763931574094590128043677026040969000840580257716984861741578727551938852345181951053420662856368589599543128763195394269693952615945315415644431596853673338141975085808536846389301689448173228159000373893198810551901313701801275084332169424996297078348554034557169872959260174002677016768755911362441452824825720012462625129828700214228595575306757766970694996155467507770654392439516966113659955137360777383787941628343877780854230133183915660386812270796649817553637809616216628352717681117190853477567730390987417837549177551217387953629208161269658894135909777743660371465658976818814275044607269761201185343141370303432825210213913183206286997863326957475919313542046123433322808537513696872656376990111849576818336398273124317037824395196882824172913696766732525143626977519428898339887023830169460330016183990037731198504808662021107478586609706491400592434802811400440576359450911464045842103561411067317164686465198694486322820436109351483545935504567776725447340526695111478075703967250395747619230219601156858284627753440374511644498157079024090094837290402441747638168752126836686081898507061686838769086904006907041203193666470360742429481555236375151856772789799674116166320573246124793473515876539302503929163255072451009692065722577202660195221392546559984288030967148942770034239526493274279544263491347213046283771051477095052628373141814174370543186934665598256027312747052120554527942226361019026223361302632673898691517239511231357752386149116769620488116735840743480572260800454625529178063273947273225065164764087483374919553176071825471336228155851944177476636927444549127069601045730732637886276423362039367295262817023718099625016540986702381198914597957147345057771349525192681791144859461821971206128644068508379850135368852249736838076712599800195793869470811151470315826703945535562834584768106240779685081235473636986603156482877678877326987673170919960161785475202606174242191657988348658700075291396245357496506970044002535079650998886950084039077912009760136275346772181800856201774587175343618084399763439832913406069463269909713460569076807548710387644735007561357125217478493795314276108738483404893494803124766017848438967740205693376599047299346059328314455309742937446966261225532460500519464663173776286443444604747205703069936806842619772760154878113666706589006490119545364727539172405893044052539227080821095433632903098937225717592083984817902162136926738917547813047387009188972514263136636127453429044507625583123185948798856395296580420256918281589692870250909760343604904700999297312638376086756407857485276674335448326941218998269207650430291797135872180053390685126695032197975784360612097949076143384843681090167285421643267078337429305920556917013064780489257828081122216091974817010281043648099754843246180513052094766551855836575515761400250570846648102533997224281250672350078353808814428736973534508503244920098107969232220715182429219943614375186373645136897239573767783729564291497911137008988336182725727483274214940474926868405995294645889585467125554703372675525510666000568047952279358710993127263515716239627724685103508966150546118313337097985635083453945971644321993843429882192301643856800750826308286662223412028491528600662283358722615165926588985113808670971144696585523149020515431565580843542914708760732781134323449685771641348851267327090094308835801690387914009843360413530223842694674552898585080160373885917522181069191363187552636967517793551058513205315054667270373283348313449292629435909233387720651204225161870388851797674616301428288006534097223850245518158540829855690061584867944704063171546717042809376730328278340746735394957766585438113079034485616634968857449165000877097098473312272691979923930043637522963683500791116220395119397361214219608120046608744735556543494698142624856866423039223715355136764751926131125770940419847920728656623768829944943150227151928483743762755405679859399398826858939255521324145693344377755084827434033900481095295212999710819846091383882575188970923416685928946620653170793081130784064448922986518260234900883587146687407119775007211932057782121513495332043295645469645210943370621119292758752871010462031168426887665897866520984078935112757253436072914261976290677089927891242691443018002755825916312225500014156679596456327799522018029943456133921449064826096273223361180890106059442023036090258422060914435696676982869143935557079133269803767028383981525370299984715418421648152881480018294586039796731499879029865173591007604050394586128539402992751238783774736219789442222696562212712430014080377013553039634149552123377059611834566632467089868937859982310934443357336493160254937487062258321104285473133227415705023944542882739828448309866127415684079023671477533833652677241097156926350405897762727776321325346523472594423614850318648666153934830333245349013666393687817883488840285786426683770604745087317289243281288416111324504783654248917108602361642606872401607542540871874215939682632000100136671048818473874919072502278972398761910455598266469424408416809869672355984509648569542186532168545727373207852656658902011904232048743816136416549267485839945903270505283110727719013835111751114635433076731113070906444007606878362642842247354037579068281819673110279161546010406317788133363307467924140422584538344968544592540542703409882933724314745248035026606211657114405102011145440054450735560355858887071366896049243440890551278949529187289863588871478182349496483408874028343292515508944587635070844459747659728598937345984464535508027229331326285744036706379709119928038947951817626051683749317924027293348276198664299931806882227540373552299693652087037384172358263715471141729919028364393415559162204125895266554638760955009992626424309763132023885077419850968401445198375261022283183517891488181775168121663889213247686961456639649764264616079707025824888726118808867062281623382299008828245816006352721648623840654028256444124774203528581766356271358949839370480615187273902943153816332299861686178624120757409259455653899704344998519834370189069314041263229838087696917812988245315518026628080249740362389446959328971576829236577874634047668721411925581580895841506437374108070803689011761677441564422844914167734625884019572380063873747416595622004583043948836044363689941509091843773870702787683189477949378067475511828841595381195905792033870939861185871666899314548109207316344966152301996070620087454187882266787131974627873966635359979929351911240060928718625528410554679816512351613564543543444809882542481397607243061378683423677324415254906260663032529136962385634360547366341040054702990037760841868571040707609851751967048259767523047261114973071275756984479132818946060504154127106729802986527545935407984190845567299521160576849501315534088853265734173174259997906229710833567100868149297374395486674459238615494952304114726667118350726534149472793584805732189763118898629799165543734105252234277767545873362116582040120396209427509693319272223868605678966289934511107889099936616794135569898845207208524152773242929582059219071338762884733078074516205899508281544385268595216926393700123004797731177939505185458925137503365568326115678046981685170010088625507476361071551468129846214562926510660130721022326215673079737648555566937256536860084183299837012225133269604110178789825817012679206913388507396518127847597849376274046312828671758944707007797082848800571047926713513485725200452953069107539696404220333312827344207213952747581933205154613582958848521451509589085275460166737483774335688543182037367680452125107701416558043822685719748915640584061766025636253704358285230767137177567099687336305062449634481690186264084587330151420868612153284619035072665122020397536853755096880062573598453250002237793859634585389915782480113517770329447733784006331047792780847770879835640175161420252567809456557625905335107300728328305290332225591296504758421612174278167267139169694862509159245633587084607526331169179813400267087777243737040395627601264739962768871683123188537774565657039409622506706500698173989606163594838468460137049394985003912590836843558726410711903309429670804246481251534816696537218851605782425908630005242572061048449585366641621643464632584073314495445007722835956819278194848690610299842525825451168032820193493112246032515908894410843947362013127000419175434633058210715372826132440703789678139692839530909071783304424703129736560777112613196212706390925883173679643572079435566977827284471718396600027741450980894275818926746026040519330086697988641593253912352936495192026619960817188118211363912808728236275781376832394250388673453436645769832785586775412791608233417166540182334136583324879052678431320354905811812003743166817845123785950509550268352387851600838228879945586750598825861956271155436672173552029087346855996883608634061550871492273983002126319689574852242045445802269114235436232911947666958251558281370746108490715541498611317238676174802708071889672742104893528924103872335690857549923579249560753546835899270861299825533037481791732642888266118563749357366137762348846479332869075172389726069094206018211269991511471202813909943325631095281844065170216188507955083864915501691417893584124597145441143699744006365889335598223046184759408453478437052350641405237149961269718506711844870606651262038593619712143576384960992159752545394555403780580700944529939857524857696136832681055653005267698575299406008013542973317413051759467865940328832132630644169194093443507642756110300231389684998087553599248068892688986035165198358900884224133919373319147189493103314195722208700233073937106921560005434790708112776090283402210997449990998604559883587262784739572436642767725298840699289434077837676678083463054919495658294563434304722669454646318247233929310965879391618504354129240765366492379997470890171093096306741628822662272994804179335691684876379622056065499947070669175980797069810186152632191614940394276463809723325578831961149137206308230172277027427736711282009729158359491472804921690758602844550491108740978859474798630369588979838840521275693792911981105668328729142944729695566762165397359880979418492944024330050947533856176920878320580530825428354140219228943495139679981402520695995820963782944962888384671469435529733003305933756082645320579806521744263809047214498443837284218237666679115888498090943203004950253076230342345659546583584352686177983481739855237154158313282836740721097586130483297473363413638152897716261236987190385325484947282869726170046324228135766998013819190645314059202618784362657218074463734657488088199266765914438035921354564564096531904359441766096682716678183223583870690041700251250026034097162227767800052538047903846818730703971617340104165467994472159056912265319486781556836189755214397636341518873887288289403866216830629013401839424191451555668635109187597499580348260403635877526272468563157556370016923734263308876211654717626362665741274479910773315466745139172766741447030990992764249495592877782664540939745739311065409377790369791290134964332320001753245485342445695613942330401668923593045358274737423265159532510196363050331168550879728066500181743852844197448355065495755385540035539303884582668201019691451627088067749640007995822510149480153367037842261064984810334350776716701848914144286502692656237908818563509733401805037660764612941140777584030243990469283624563040592676878210228071623817562682333907286515618088646419738201893869629135737088821026276026152254976834638546506226471046401377848014114378937222656047433832691318158274184829007419170139089744680036138078331664816915736341209441963688562466055886063731725552333953458177821583858951191043465722009279419864735866285512598180338785318901921575147291775283970774585740901813414376125870865943198443231504241200170021132386059700061521635664932787491770070934446052613614977852481454877998523934630800708429545951704740592027449049039810140044128826390820140846770983337518542746308646072913470545355168595612895352851589697448549517444220994201231649961911776726243886381161263382806447971335341952223767955415836021978715024848545706596760557431924067942915262484614162652288659206723541636186529718673995873263105938307838997722120085211122105338230997477614499115820543125378545178117273951212203172098182033329981876266379590867406046077366111457383961697024748926080313302412581289397430121134900915158591646073867042182073128413736094162811009572408891527881240986005494059580160603488925656259123642040765442031593265739690294037239551952277652876147529199215527330368710873544585407601482584034221140569700678266581561201620537284451882817522770195083212165264738910984142073086417224997916842807826777017405951722430342550255804155957592874319864010005311192868157641589114032705411634801796198780637212592375383755356191759115882396453519274448654714103252814069447698550223998475661580825128570339888614770097884043673188855527563490090749552379344108216088356129329708238412228596031368407905069368714154193915301358534809200764055967965185659780952582748733310649983245094112230108841310835223138441874748779955081966795821425958201888705272051891436973523954336539240460129005453969374028027141131603694051044470057777475320794291944094438453657567919682349552521592669932186344712073292526349087423203186134034832382131880614822717122700267341794768434661810743350037297603784120500757234883410835106686362958696889554173736786871632918123312653962027074372933482166253401857440238286826455661013793459734330173266236063962014160794981887036270898498575423696555989765160130709479511340176700052136953933715054994326225822038213467874719992524294287257685960790309263587305131217487052109848120098818116774018808940238794719782944107734356317361317377009133308414569892117489354233772926737023533601355938012951921273930949657719194494721478161058039013866926011380116610313684523878646533126695725468741702615312120198764134314872482671429333639825825378876048630206808145261202816284948734977201914846962217519591719248129270753382849351492898121576503614977629104049042895695711391948404520144105345248751423774398585969812264132040899928600730575162658390057843072226590023727840665315932495180726543844238769114252143910268127366564442635121428188842964159723930316167393914548203545744986440388728964901270154802421627105881713731815035379684718420056234380463474630287741921853192035225563172260453714920411048171030432602714573767359455598960589105730404754015780026467727826690437088303205125949912204603050798263784449450095992382688274783330185658256309240213736858048865006232866690508098807691237203895674344221503253719385024447129389035102840206233428253147295049463679915148971427048130617977388520726369308144536328516344924618948650087767068395950964708366608402161482322654846908901422730501063082566990174445209139732376757967100074087538477675567501052503816321755055707741998404809063374765750922625992288184637453238753683633583442024839695724692983755657935734704492430676925808595960562560129980776212592839775034209667996771287038758411088965208241199156466604247442467274761591339395033287379820975351075326881180315635714510831121305703848047695609615081706634835911400020887286330702136383597677847249460590136247790109882900098001179855329878301069789585385185069139694748642580211281564965359543368115357266826998847328587059064900497907569090573075162062805329644812926141975837367896649361371554249638379194246782365455140890129656529433054196553826679720858634917351512532614323033764882416085150202145926786192442203423894943277663594144358039586705916573889739619546853670577869762544830279327978116916863359795941340808622432874000367859950750543707461947040880997170254943719203965099120310306018155812950860460125744068800547527549827893369825241942013947295252137774726613041994260883654500916651164912301215280792352965766866284259525794546656331632352243559059020126563013405714797293622019971014632005096406962904964906500604941296202228412552096380696025005529610855044682897440330735283378148106792329323300341042838522602918582637010511878934598853957047913640498895031409229231615607446950277624429375349172304894831013866155210357292862693000536505013717267868613887501197550119136844629261432748018984837962533812781956424762283951419091284049104558782436875716172756842694924007268217719931523577200209625380940036141764482200881929871368197723661801781788533382120666715646005726159549360854515688820990324734316298025665338815387937181932065000353928328974621515037452743402738041297973334494394543982336790817580541737149088764077582305248607861068493714141705095057594768948294491414619383176791546153258224588708720209100967086378311404335344330532120607264358636116573140645841985871538344591146486556250407957709427840915226254417159257214924192343402238524109529619587372459014389624228066479012082978561307429522795028586211006334917256760074243577813677678022986451176414521583669627873191230946107847206160537552767152054792731831657004388183303363772588226296786775674766703175709306293392953925962317004460807202011137650534602125460588409632354596741428276493504499891036749565877783707663522234420710570394926581788760913302350116947638119016179176690022895911028125165064706742582348849107041184938354213200017588801089129282372673677680860948367339818860089468318307346731923620818961017127652544778679422851154247250000230745024432269194816551270753001395944526254120654402806559285782116851613329988186339592063789052791660461255339519286599737495258587396830589285774478237794471275999025090809535417130307041562561770946612178392327824364307533395676582942356585353507636640075008591762371916073169392484049067965972957179187975937857223005152873093364769357904252677258211264318650944867568118295062762042955342546029967930124237075047930761049881229622673895068536406738576834702754077462772445100444779763551296563954258579783434862966498656368109807015308833896913794692984397937374907752350305669190691601168007259758051697776564251752738786279982044171588539393130156709721214856531701425324386719063402330526878738794361588628658228922377535331658692422829410954603290981038388438981458513001642172270208188565462872800977002051095987917496100883676943949234486547554712335709166560073502625956768799185292358554928027323612832101186348881478479507238191047224539844784102984297958122875904573554563818456825847099847207031390023394573325159680159973888872996397159415153965153416144000930041345945353538308133851500038693169697489921163958200050701541259769256952825031083275194080674695861331847586022682613690616288083759913821680460969136111831775932715127609630664754042668556643847702626250014031346867159700380586521759948797601163756394295535784264120287873089809037116742515820209166392419267593333049585323278124390212041230895234055041010598012701323779108235796853560271725551915848778381384753698789219586473238995721339241406589095242594236281480246424595081387493498326379814265851270580006162837316696526994039488661982932572293726983272130792390855554851720241674911727928130062048059175088336669895962869736477798534517352202009279620898804884661094373885873687524821845770537312820376378277729966119221005813087699487935463203002364597219671505354985675771619566103381900238486674609725210053920258283084129386953284040084475914220524824129930502473245377953622512315378107350830712974172603161689275474541588209461642378741388248753101101877626653385014092078890494306620235625544677361762368141173070684095277535155434906150944396552337998325878672979269562196941209816782679234298551433747267568213819762174519864981249653226391557058660431062538701478372051174869456303657571003922919695823402450710597193081560209571549947125156707330872051849824762925227443268780072259125713702645658443666974611011380275280443131880789614904955840933066348178632374476080012345587403345409549612056787780606573992471811647540394093758125563330269341312878521161102561429045587832980941387285573160915761456202811459583768757092595624970386364518772733606277660676189042223912476689516873577526155512034713950067608893684839200326692648015730263298691050843241500914082873941818373561215499671209745562578237702771872902797551026284076494209132923093949714637315370793247753054949561471168838999351327117582790281837997181976283241684483082903578328589137487184611996388534771945800211221745598793706050894704202902259650776341109243174656798724566334703443395455499370145289781535292770995177352981788427901631990267973163007874238984044053941916647933491011409118663485959314357286182299467216823264640197447052695877595393141428874458623184962266396952822262838303552579451071966160982274644386986753974961371402797110813903372000165931029652762817298566191556133073686688630117421808476190402816053278642499348607838427701528034022613129880930175395967096245527404897453667570823717451687110304143324645115355367734393597318199046202026341909843330506720806781373302424572156763820500098214239135452684456422661596573462313321510761847122950505707007917676217750859144133677513293201508942613145397921289737157499820410942849342344300533170928561441472619086374161890169020472279740112179380010822210048027183889856999119865475375723362227054331250184389296085633965098002436829225725363541754805087038734854282251406143182318591784789163258420321266211259382186639203287709948927102805998669702037348222047322261428140094801392178069138467659942236214594116628919872839347561744392055899448601893665149220312716988477050318705903142786271381973698338394253739698300786492377843059469076188315012314119893177175990738720249331720329370743418013500236431691226494915389946791901728755521889970442866723841283979387828807842718099835193030599903182505893233561306555358491287378381158653251091745111717551609725776621433905874507830821837087285241917966804176180403373855793389221785510761290881265367151986959147233312977331363797519990849904264448214647394839541618447225225896252119007667624470153610706396494298742066665984987737187787390023585262377534479299810302702460867801246885738084751615855407246465149648380256521177207793009989508181697083417310285695288230637687617490769245321016404893725159538202499940330614466816838276396044296437221401836813219398362253923427995589356152040197592926676623566859656196675193902303885073068918553634306201618501927892970314373948321494436846484462184625835095194387980275803892452719017956034438089092258020757333381095814640193820520553408071284602307067021189130013284874479821859889771016873851676211694456250151906748014192749430716218159637132801928084001371063858220331583527871378605338053693343575876068528173590432330297839497927140836599950984639423517269271473103104255647347939049174874861045829572799155678132357584389716737929178271985305105092448980072193712176334766884637090972763461444474277881388757047617069345242642752573468740076928087466138547099781201194063177008254940256782370802835224591616613008114882165402976566914572140424724335787992119450764472568293677275780485228485908538093726585829441846826086359102157470868673090712416218669331402971681668078640358312340060059305766231104979198414328134380072706001113309974396292611522076571416130974622067488345827286943281176673137586914552690812073678660435276905255679675126060112828952015992460720903696235612436275836848088808706692171388389373657182581658927668839624064353671444959989606799696007892763925054675301709210137036330143351225909640791012110502622635440029091228887459222025470469676812263656642408429494187678758714097097985814415488376828943102919416549998176480647184899049620207053157580877889311230024647677869524225051052059649736570030575139285845167317468294982396851555768217763254648272663224443352993421020440623883393217833941403501377620858242934857737411490235642065293681506244916046415686293276393266027068078951129378765157558324161340841984794080056297131207907585729020850503931193292514135240196631017020642479872325707892352200648752085862728138907402499378607404981904523495327366408350994259771782747203327191997212539767529349552585744176227652535633608984381681754690342779506717867408731154651898866571210665639918450076160406102948828441548616326023355133216715915774825794642812051723886523517830859334683446371448675873104133022384679380397762051111258556388102209473677237406548541257211867189439309445181354843801316543262359171228368768358528541517879414291277593078763815255647356918595527853948331993031648208378326128914652871268174111863421192314593920369327958657107234117068975398933266534825393518040776926025183235780191823740190959612013918962615290625461770628750520476169989020717826950388525429544292842599574121191053646243292477808297006969660811076081841525272078876824260248957699095728165507247764969350047015350066929642918371312279914516633402854053707433619591270889181023423246202103166739669705265410232093870517328868565044251060086362598756879371144949797928214864621814333788078303324144122364686347397066254991810386879133236152258393651972849141576833843188460485484054132073795796839227431690103973937716722909838061600264215409056153752652249284874135983995073549155644883842360770766432055219805361134947914239991667573175357306014741152186845749168776292045583346918470870432569510486278372293407513951362996917264478846177361748579000796686009854104878378844797763520794160973561134942909473618829882636267040431227224338939025784480075342204261913507363737895854115376255811345398332220570302472006639925516547928038254597325186776428126938672695871304600631329826234249040506469757332022720096415294981022020412369052056227491143198625281570175584775473655910152640781378264103518772037712632065009155777514724768738126373405397235221413373049670138235180395154885899531629003869242932197252431810514240654744932366717398337386903934559385882882051293877815589446747416001089108188784255404787156380529046469351457668182993405989742583229338065978503839405198830325245665716263474753573246074323689610756446273106895424922853775597867246504766020854273194749738380345821056964760728723446924307949569298064145029818881094680751636802868131317120438223814375558122580163684586807476546992879847414088386400553538751078267559762967109987619210364642269389797352034497224498813969698910476135531139767050835587423383831309811110662023904587959402687600624803150491269276444887345404137894739530618495353871792151238738935444405303932582319063292422122516475330076726409635384748180891002297567776630167445817465590677977996136248050263992298820754040198801558391628587074565420151062971852182780863683441115333253457939702637327664155468098302641376582005025068068545821708803928112847582356163398676226359762669695726875269132733960834997784714445162786705381934358982163528804030029841284352855920396128710444404376112877938723766271402596480298604776377952267809433040290265071414506324841270065437368094457209724369000251783687481188388065905953315368587081189147284596605656471812188265752677686435489077987017485283824560493932987230284829089534079642611701435092096052745259495713712943625345910478367864441385522426322869428974656919231779840806221186315764357866331900389712462602660000403803210369422321492920846332423336524994296283758386203635751564604171506354953431755733256103465647404478210296236862758724977443371431634823180103370638886726802695870422117777705209257313785300871156859195774417369991102989988404909479264752169106845255623437544481574212773196306884700568721598049620186173787578718589545401434427196529214916556728306427023664852542910367027779810583982776609954853693778204512318780536763674426829806291660046922833950742420159335699520875967488760328208782275685853129461569824749799865828175731277985854834362230256136102757420351515122686905588661284406183943707747826831226827536653304888907791286581699756788258149956405638463154924503220318428691019297739999208672788266566337640080924995397079128826136820311473949542035866188248280226336817405136349809814954514052520682035087820987992285656308160283685327228306894747818628489186712952698932253840867996041442215389263685653493604877840980948009390941847006525028150117754455228660368972083824118338003704227732162090209926979465080077909407273303440447058240647533980287006143911306403256936632162408103686033661139357085984116745202675128409725484971325591746224344451011024979029244699362794547224649637190724726559378592607161843315404343428716092732056627662538176590106734290281974340317819502977684078398968431383823865409521319629231248066306364232398290089122712224860204015838301527044942420255082600981663582475103317012462737925132715554135841674289493927323088403466662107226216500900582047274354977846540226120013341785843482899650305465130922008435109197665595949265683120561878062958029917955336327202314460673509885740580749601241170219103123951931425381646196724175031753213535485694305688844144782800443843517550867494686688960441310463610001201033540003584324325295121626662090446426298189442872646197777969427067512154379748554671971665001143718166051302822217838536784022555390120321777505793221462991899866235440939906088718098344005346600996975140887944089782727263007645124137064718536659828213199859870713202832607916654851436433098827635470961152042251745404548085087491913821144470462428320414389830427222525847385021540925894940897804596455003613556694199214288030644501684131619431465985868020145092481217639013841372272214151583356860276904321358585492051369396385090942596990381723563795781985474765629426592163092766752063354242452903586603136744083466397999847373345211115428148216893674282997141886471923530215790375679402460032205173219462390578676586030373894107299279718188014911374528051024703148639660089715519301981883002898567263115568118191338630727643807530441480702177602959642503012840078139468359008772157381379339214188868674087409151193474755191419407266743493033536798740598514963451972453834659552072488615359598055517849414065515692415693661372054483967359054977888337461933383246831473632418398459576781162378493718704749145166616786801249208734131461315191306888947505647807476036037821578185823320979993360657584623756635233750598267321417543844209009496920615986286602336247460249198541871447269281800846126793605113976316417720520135074113469304927404435300982415774825446302783245045118994068234661487611611735732881570461086558110866417609325192772228153415977212104850646047216254081768575965574971685718235522574019892210026793078173116781481934481444148815108968044737870662433467829371618250297814264540575271227549621700574231978416162894843674885265218376222271386216073662615970699457722440659461825841625544006412873484473638455843134098317738726144282202671782345827690897748342556984297539304329635868981111186171001805133017852695365847812401248773862049145218357122183594593992952621516704426586494057692793933584586925002691751648573883917097437171360814884117175520370774644044292549549598412051702397321178586874678414029737078648834811835378251452045826005212114397260739910338217456265536629767901105649131951112613268459815060522735425271970254180259856734529059404439540354481978609240036457545634370593471615744775707228733949430874027012339150808966560485182413379015959123336141966681515978152174973674872927459633052915804154113352748784461845429294727889150699675535511839053095819314985243873663763589645985794705550407772984245988722501914034030637778904729875090240579173154594261640936307958493525416661779357373520071791244711095889569496154347414614710920573673094283402673887440088408191751897077055216371535158253393426275051709976329929624776527288874612972962247346066570507619152454764981672973808731494913026748980469503645751399905041942600326093245888599904724653893954188142323419348773983236215821095950102057359637733803896159606223560516962578088763515526956199454952102605627944886998962214712521663295427071029853867729718699310495023690147281341880774115859567603290218734294697673816308976245535816928550997409925638894277609460412239240708626358238121615160208412034668688516800168929775372120401831700374646083486473139689423739720872407269775558254648535479678509612241560243659331335520746156854461576405935923629799100045844514807979965236515012161123392260946701996594470008881618899319982448608875417344836873115792060921782350771543742237340863790123306707221280585553204484538123308180372808758161885575692869098656679551467942177813369417305927224614982185979026759266622271398841565074271787605409212596712352279984967465460309646537819943120752115949746990764312882846476920108222363144351555607251595002390143721008522931885966463871150789957312611466897658432339281552599180519542733058423764293990446003334531871384487693967067150387606299812239105798467075946335318897206256920116635677602100819643147821069115377816523989964259728049711999171996829210352163784013536985232274825882116467493617444771692442519931457690286447971751885560622819614868966210224248218910778821160671444240892982189882120840208336500549975695654574619919661893408587639999130296015329891564898773953490617838159717155334082113021334820239265264955467228665526727813324955019588367419500407220161432972443105036807876624440031676998131759496675001897744793654194129621022801469134403584262301953073948837536251539586826377891948199782351048144537063319798697847030745287894807756928131052042677474762921528143117214111936673593829457250665155306359547355430237765452074706507533443934597285428201671864138591574167564203989155959246779223347634181806440315362110678524338277502532145704309031207082691915853600982220715666588220912259928648606354456427218855207479127672063344108546153350541971231955869333294845775205394243897145080451565180302096212366318746403220979455503850827478264329926311021924156633085063095326150763710642539236980976154144406335545146314188140207289817181156077565606220035035065268910532855075406220070990260916406088427659900980242727703776422616969364803621520086421754857795026916695388900953431081132529749547563383761483730575993427893253095057345386080900943614743905246183209387227026768433806655459857997903130814512595641250448729332464732512507958905722047077471488224820668608542341473280016842463688070612809649721085655608462219030213447493293990838587667532833163327562043513421959167899224490772924354526254451793418660116880390834460977501019265472006738613089667540289836935569215264690910726698898388380593625898941190263642480328762935664723673963129222006265393305861065705305146704445132386746818030285925318075910007314805990429890401740234636505238503174646705694794331042505342696453817788838659475153147093082260095087625261972038437168628088100929445680389697692456487374605475344020700497279446171312106016538358724849254293152618547659537271811082423987228599944390761407461474120123617331628086761610258257924416326402579699469610168802725546130649422098536118305796623241419987403468048547313419058888847285030112553914394010669568194398540339936384002326790465205103497687087069542542600681034797398007590898327301110882456010789146310815854504942277178507196193979549322724571893925833709670132476119819177984332396586014850518231554179566067101666446658830462343969988793330089587702949145497894885413627179901324198544732062435705099847527873999489048574740575082344269065381459202881433176731197851223742972098725175773605900654140540573208706702103829035094184159562578699868683824355936297953733873741931499103039503217372890778607095744147629585121288510255818899493227389905417552578608716121920111851698495238063870209193719000571259654498963141611691237621194325847710278828641632317706878557108510045483351221678880279824967245765032648190245394545898474930123138321383960082054577281424750080924009650862905284516166249931914480056481137942046095341667291050927327901841706134473178264599362190310629398041426334993979619099413002392890642303611694077279970334881337681566245684404640915370165621610930074386589659313519180446805024711793209459658269165851934885079926932352404967823575095022624033794525747915835743719722360939048003123572865368334553116929693520201289570642903156656055144697908772144154554474090076426471094994746408248634263037330602538315323954997459764381277550777372773387889170772949828744800167964766349629658240980319793799096189962484533022385302541940309164881516911760010313745679171624941770057418029292006459557745518535348112923401892914386919216107493492387404224946375503994748753922418640553751851721110249225261531404331341496864124597402753410835220795517938171853117551433790296091386680738296444502885274051556258250953927237680733792226866587987609393078603181507275954448589927374534755034801403282216206618899600459669413160895463090355617426440800336994777590588879109009311524790978540268718866271054451858016678100102523048365702818121565345698612705600600047859522480705672931792343000242511081337864323962450746214082675795527489468937749154321681870816064544478439544150202934759504781371857705939742472908488939897985763679359125245109702167576245040247732721495148870585984643651226983791887838544264419700715987498934858695438551956897468764312833754728647662041253695786603988175836348746344234088737348458752836830068150020883524677392878615378819227405958403251265156939608531338285080349850930189643565153499025536029609329553186625272100368291047337822575672821700319643197049456483058634002805284026022646916566114430466543804264027068251637054277311322650242176762872184750312678793080520512832340778184450410793748722188710768636018113665297075160345981880247047803366970060397818519246532147974112574168734610539942243499033745206549216466504701884672216407438983279204333005333765255864502009776708820627054771767081466934756368653973645074294050583864626557507232808259867156751581293450123962079854069552005676298159147668373017040026839719543523118431540733479413050428799831678812698825940597673443719600740173573731405866782839759382852968342722989972159213761748318269205196447584646572313139948202182130329768825640270393530973921055059776406674080660173038274056802362884748884159429362376431206275189480067298227999317608577984026390361356548005426922816971131039892305041978389282685489443539376710569043685081575830242929631410193253497514528617424989675191793869187944833982884088480728855436841698441957193316643802056903294281235735333708347656110141942065032431316080201368543660009670075061446658283190011418121047085951621304652894964341092363406061985727957292351848779366209663816019409083318361021567023139939082074709120284880434898412035256787440254740027404503018349262040725741328070358438006684010730182735164696140317844506847342785974758488695030899965190401819813585343057570719105957575225158867162157920368709593549093243773391524442946941122026834265583510068327420827651601793631330526998656583526506823436590889690664331695350332324798406142619049916179384260358451788799136250900828432564257983690088593190293390480365087542160588069332541026528114721807469498713207101281375215948222857721106828550837562568575108470468980618247567563138633750486485736176579766952473124686980561882708888725746963981818672603676157461612798487137426119549918649269500604444322003085932219682573021386911197422540657601610032078251693421775939688296164880532822948162804646670113312051515212190728775786177431711644450973208944905714748482713510626772500821888652101520482120553071573023541918649015709258060414843470557360996204301941578811629318994111081619640713596833923748813025962128132567265599103500718945636626262229078547815633663228993306844411271914405075787181499636667862276428346092467162856420612568120112533122549744353456011950225524818870568919237209402640855666305564632886036718802316601497976309804058114129505520946771962827694460431345680132211962243302246319867501737242650911335511371015431562241356819239177678451680118807460166793623377675643756896425105061357907765898161031406040642681118243329937779783414742564305142735137267626112380241862693227634204276834286993317297239607410269898758145520122296135711379105646566351546674589271604797388330833576826482014831759931114040690583770895624180280157042316502726837149288197102951875997823024413279273358854334137037441667702761424282797387454449906256013668488340919856025798160805531425882582695522584978215015634997969114563664514491852185795834338378968952019115591163516827380386476392448208609173594812575807100181500858069087739034193869945482528002116215264172460245324834680591767415095684654855622614343445487975085051158121523306253566643369344321682633263314778791554377576378932360399265995163715547853626747070581743259215402695662636205946484566820887752039134152104505248420770411956095069524910381898789365675748393299045362380017290493703182779890227888192888646205106027593362254925080176011404015824794469660932183104208795506521837251575690726617051027406039012036797489650539771813279285954819647940489187474079532972555894642242048362078427098719684232873310542371495314310472317266878958067518269533124608377918838570019814843907610311279765410380079476607800515063415293598918365061818730210881702819433053238778171956405323386427951115387192773197389465174089733640914920070811035585790121986760795402826371795870036750710553227926140462066804294369371198403832277578648887366737388809542491335757185905065241248092381873523578329497208058322650170360291315314212045349311378881862884097311206651423170974708784476739945950308708544744125770510109971654191378611641096339705896469665039586074900934793622968020405322227949306930441996283723397579261617679279636294463770241233758686533386593338557450492576688355512388298115115722584921262566928187041868793306135599142407768656748585946872034487973860144921016806010466404285542701236552805856813115670320254680679602673259178939348898092737615705176026879983943524263504809691304947456561776266729249328924469000399916568996642791561003815731188613303224591301938073023120879457878254027592225241439119530509250790736635338927331383883717625307832826837812707257194149937733760724380147139096230461910046952431119480523706284360896502820747385535501842033273944701642588931996076572393526474601139929443062778452223294273003321677036186787095413272125373705662302946053813160194208446748365867573520590978906239285566479536698251626777640669925918509213708344278911245302018127580881940768241155471150640773990007796074112074051077722717614631484349167029965020753471554389521628289717705641316663695799720055926819967095550498650825862761652781408879395810638561261102841485053555739207769053157392075376355299788597264604961043533594558873979202071050121020130266066385579800229683669875512772707221588416841593726802139193672318366843432682811826538636870578663970605970981289101956137010832524780063190717651711894216198501565394822304998799405504012332204340170790631494547394942435604832130719739526443776892543346295399232654216585840684771888138388311453690302099691060556663481360475330595094642873134275607666028254770556323477217550164064771470813722338168499146892426700055013393619781430622947315185364456528446293045425342322743954907094443719329656121160062726413988527443637742557419632327868951172029998432379483918593960291108838017411713080353992343508574274975963608956865726221258095701427479152416752112360528705222264769534840765278642962225826917199167819088426232529409448378367570543144552206160262474885785483334396004284735662510102889769775120640481817611220182108314957370355332160478882032876044127718869129557612193613499319097749585737456148968962741321879070541108565992566103317848849616420473285110933270466655166994183301410424046517441272177149550626270287584315155379348184273573866899327971111330215580816511199073635678617500541913909380275203990067657199575655240967589840710241930561429331904930604336399031997739139587234336683372383277968314199424280479939030599803318256833667112647841372851404097982775568426169431246268170449555910477120016796376172752957683812328211111582135383862044294655105322343656688156658874686936368590611873740783309841001443104365784765748620251655662560001457681040910588851273595675072744383144172945362940714024883995422871057049884500591173383899549825642876429401200535324408578224422280634968735127040259991618693760131044059499379466754616685326829666303271542861610379035458192988554449867862001213222346576874705951139312298602427404228724381173130475755184664749128170112226592325731366710408804721417278545428572685616470783965833533524435631763477215827327712494401212071480321718385477138922409505552811212906367670374083768035487027481059795489184730797333040871361763120535935216198916620788893805645915300276433387556312174112056528207315250987038279578890654074147985556874983121678373888636682234006617652551428851661481658198966814134881737131275166539625456590602431302522531724684266638297398259725924120165033716290861954655857214253595130951625207130535618714825804909024700286650258255079333311402265382536273549472271370106093784010738054257128867256282404720588829846933861521062680839509350554603736969424759107549113186858521199647945938084328512508512200179299533330220330562640010244045462125396864223689995164745338894982174449018812684601560131833543335458931475056728482895150549322277648408698292653120734703928995575330357254260610716195974068352503288295785960006688800424152358303959425770823165551816378632817370406590375213878918884502814827001389301419799907251866076852304833181434762743426897135367356808327555824100930175550772068505712994806414816992625141157520331086839869785575772466403182317325351039656881900256859878912340653897211387505155570637418428920485261893049643026595671849699781636920426204184245977740430581229105668246464098646505552505049649734757422985111878312624600973694490200928593729760805546963964505209623000956992074694606035795983446474689177854560275605510131810405371698835426184067149286267503758533564726116654565303189877090903680335016968855632717727148253763381715805443564784496221138804925259317331478673837544005718522913822929677381952672098717493313433502727329401224397271558189116360026862732795209949502386311540676431584992113853343912092840175125831765313604517709869861727205632063754218362944623121665774688408479313303188688737934341927553862314555109473881539509945541961650545001434824385447296478249270610827763079761989976643689025998206392009728895586472571207655240167532465201868585349062420690699199086820611201525785234212659839397352961317135115725947364989726463600298932412916023746748443150625717141530011601663559829455186702183532809478590352203923467437194746736437006839386401117789153438797181693324610889180000537521016891605101225925686239730629126565891297470257409047756144719699887823274171659000100270330060212837303645306180441470806893971157759178691085706864193050933572943992197638058685806480578960182192321062005797600877216361756204236242945314192053343076595793421623345151057874555801444861540719567459770646362058432503939173926627953184951164382856416979789071152976376344328581703994238311129223513558321786816754700695735525929416413950846934018516216377044062290553384595177282473227747403096279084241066381667507614792957429810198704432776888907851744056590087187261879647152820648376296974537954100098733926179738632592582423311408521017631139084860572368557011478706590069876297580981526716978158847768355304159829841525976622267928361206528570877056275362452549729381684040018446759394171363316897819225157320177076837629483501974630376568425454143495726549353941443661194591078017109490413257745889790457778272299073544192070626280110432807564601405725770626683317493258845782930963345234446041731988372193730122569247761184727452058468431394704685638992289430482759998756512538798602723326214537773069359819678326379076300143404830133322448645423051009325048554191250434620830255112679581643390882652346483381321967069649611743929081126694997449732592905526265662921595310135559852439057198368549540977538019522988066924842790366537710464829784327900533816000407689960311805937204968070161003356922409548391938388116193435343639770996280411792631619509827471354362038264054036356999174611580050174662102140660858131538626024184207535614506402006742667346455904444406400779735137362863653695169803587420167735947463685343749270284257077917757538916489301709631152928408699731027036018175925330927808671534634187105873779410052992058005703868313937373744378076409236407081403376944192524375183381794985462436810493416100542044434043212238656175785133135801565485335433411078580037137489672328276427928335027541620581987784291865743962330198025711918989678268671395384954896969974081500170979388493622561195591789486588200611087330189697319636046378943476584103878470488963581873128495448948415280871488030451661095181435995265464538074532176707037619398739185694774729172614258828636574293092985862070964666190799282529937746974966518045976585903761613946707632786252704497889314020263611633504803126482260681724676767300647934518874030561395931386451950902723737473011445549908654692445710390650356157959639754447019477702057108835173718861649057276934474044472082359347039811284845549199228682003515316660553133178044231803702191228233973202119070729147281367135264501436236175617912844283243224103661640515584816959997748310569545183001652215678174223160067402130349925611157290128117157580114557602870765398942766099712424332321650480901409159228457143510383540389511904009911722559487898703381532681402757591591604462492030992100115143766904307535598314878503938541096072445977492653188890019534687437847107593801652295306009951262263983956147077137360637995892752060323298948742315792834461492931195323157946402688392688929710261042430206266744018670001745198425369153638893999925727852921713419853356823861435840906647126724231837303130131023884717211574156949995488492619064686483559535595591664105798376791923488936798943551177730921714067252149404386477059172884707559625883283538047634062522290790412834511501473732821296245930016070925119554165769383374547563214410477987516241643058971355979192481610818587213436260516805195730991160564217856289782080476944962697950652562107052887739431672462563597411442994542963368614710611564589566495667829017304243761188159837214491700693634453040000923513080516220353756057773171181995440676855119965668069625990363908854877024727978921977196879529199536627312833187804892931492257325173877669936831776846914530936019071721511435981186355226548485622637821058685313524274246948783438636049361494219025800297074760032915472328126889802338364698444496050992279077993840945259002417585089717164862867022350258693282372246542467241939895191702868011597302860434286054795596434102273851707382993218752708524412598697472494501422901020920335848930669342444966627524213345703616340072587226294979581617064049995237232914414089831468576542720514200179841126025078861222783881832666908583653538512139707958440258197120682724787188648379125898356368836669077251195348199049880385746566832221168699242404932736219395435436942948430292181769498780656626081967679025825228096256516910785136904045565657469270700874475901983362577080584292198581414497024387483032021992158390627366816111142202556608971721036175895901177040248890866822276807001473310474196982889645874892955060727469794293444579234745097202073336612016625406078391594324883795299947867859079176051487940517921145442335692184679486381772922242970434285825346659139738614785206735087291694964412303730320014717968106962358207873438380978865589435644155769133604040215095725561969792196724217748703829923634022375281752493906325194103571884285618522035770565025381000208797804295077482226634215507795823666719871887627257478884261242032505117393835127607801220700464959698941306704508978490121347800590094679615783245013819114186860354008343545105722596673101480355735706189984620621357793047858438802400717957202992347834842579239507206943689776907038906896747826489020058074259669908422290574970379106601833352726138179755025925512084866906358313490215288873798901453051002215126501279253985533609058011837172753631290158600322079697354848667255133668889722269758071924583216315276602677062377608848803998571012423261015863784989155459657809382978959586264648288791956203655031137521990591452350768135611023704696828150316580201652867223459583044314353475367969968459301012988957667423876633982186996281960537764750472960215266786094161259891453015531549117835024633038424951849666025746639339333373075661326844876512230834830199848014110491674350245125442303709503569866129782174661934584645028393095012797561793754856281014577225452963270877660654197136217258817063266607452839865316651034117947749868334068803661821261945378130456300312540465821307027857178565171264109543461801585352846760892693596605165009984706829901562844727652972102206235873808810941983455981063699846510939661029789859000117920675901721762641282518931976611530475382310841879737827466536895176509672018790392618783528787518236671783369001170493888361796113930342666170199877436878361527167720942509491891590467601303122578437890868189151880202247994173733688079519406870932085316774416464107168353658210516491897184596526891447385128061081316333792737476696693247893127057782038001190640651746827330338195516748485955008029020280765463260371607796881706023226079174321741600500988523852078443952456314627403183517246770833466309588489796992537329566348422909804808451688775779237285383475315808392933475237905396534455432472167046439163602970462689287097396111329189577402477086293818617584931671920025179233965520331138931253786818092558658098061050528115426261206876249290072642990280289568939979278172844282923407372787976487254546394550160284324422874876414731222367584651291902652756528986236845593132578103836130764345929923872760277954478203372272445550475289292977476705753254187541950195163197249244619740839044957980654776074639878911775946471134497673794258338910834245673507605525295951774672371251977901520992048962175614363842779437813840179937950466612808268307568016970519239456385081250581926813558552290047178117280780159905342502456861981049044400898275641291214200774102022860218309883784992722789076163113480351483153332036904316339756820933032874756704218052380344478970983263832168665673464772955481714330268337061431206774587048359824784285362830555831685044784336350713531567997877867478743261525079587738480545432926284740857483971451554212749324359618209076419238463546086479774120308695099801996093401123006355334388354545420471134096008030024263959049400333616096727255795566607320994954560124071808559992704058697049566967412334405582847109231914885786104372076641075377087745588263248097813098566489552911593358297534387766602521796817445373577412268392771811046370430939264891843482400160665165612155922688218326453632722608526728543395602917300343098931761030992827438963911377711224046392698676352024822336208771353557505972619209130652073534314386344643342413670795914777828620702734207579222946677259872611764422948829645715428127351268133556558925361174872005816579118484286956907395008661601136312318342432502864905203875234483262026539968300503678519213620174804511934259891698331332640362646927666609591540180636943707057631188196178897669666078662265843012044759032539036948256281270029158055330317006173953391834271824085557024779193291958171742162039783245672130573731414854979296324762905070322384264385659386959463158082184246835710949764185124354079009744816498891824130056733258145471011034778381650133303201043476053000727139916593841921489158186245078934620241963573215191535152814412006783270898009911953998936745382324375942411834647384398707556767906294679435470420681889252670232630834144061810736159409455228923446333734590139047088538287532652475324806540001547065450531827701103486671278360991152366918153689137923444490550383685067347372361305407674327162705503887661885878581656461279777422456945141316807959271999967803419358287386501654514869721541580519003826660377418917486192536331285149566977968203165437046792829322338984712723874968901253269547311880234471008792845301576856491355317276011878041970801393136481799708937312731694970655756868294640687024812525981050999907883016322914942172647752190524882640032130139052927896484350676529149923735916300496323803249769867706038707839120918868357229818118842335190316525159726467637126889149173086798746094885274964282535959880460519869759151910986638352142825029065267342215381724092603260258112868610147503892143218654005558522964659230448509760452617372530137699295971540491550464042483074435993033511633014918139550196672735836852669482340301718013438976352273789131119465769338812590045148805890182129838333843921551488577641450297831274922278674127517113050169732607328303608143017978407398860485003303058973725139418627045668981541298841342322316477201313915320546698750513637127758893455121277610798781952276106443039767540303606806295960668056333030284982436616168598946477353299566176903120782350421800977031058733376581792204468333506273971119839122318612593360377758068786797523615310911150819475912249744562453357641876451704113006174085690495036662684967886677703701447831754363481953223125852653649105806904107164010954185827858847178884023337885275419453514923953167714978746059656091602448272898731932155155206190111922302143434577935646952502019797012692838286611708906849927057243488564330255389958340627337745145121277184064882236799616246421332923709337541284705105696684967499096353000777994149000347168841478007779811221253951898265669855773189173136259703381147577155414144274428848295046312203096851195142523504723521937259936188403332754220688379594888235403435542513589716812787836966843998342823983113528404453276784619353954447631449609765121658572092257641809614521209054951366806342884012701564899224835386104735838714915149280210937138131433613759165476002313163197231153144264096015847659042277061789756174966043373343941939851425037660578369599008518881138283632693007733248248029418047960366233040674924783366349327875277510201971922065087105951196276261815705992339386277698994735361723687956285352002108261755922396701086732506501192695762655405850227924471784604841448293301209034145915649006738090574026350831355431233762434463040541744176090236420527680761162837325227880270896469050107724106246037957902514297851184288870070650998429540362608984180083591611073923130550124099278586296975560994573681083750013720923510385645232018741002912640437880818435256935930998410329951003867886461847362408803383480116441692338077536864256084534127815174103384015450209929799964925833173645056195317341254573735754691347287383509089438144789764931050489380275645353633803333165910168952854664105925686340348251677930645512758611493911442270278207683865862401302689651704784243788108729088569541480694963746497789144099649921823576099893675594134280393625180900939217732828987902180462157549836766370467883818482095802989245849496391024041920634201610645796582559608546118796169462040900858441857875220673409328448096758869778859633817070214559242867777062656986987283721136123874243360900839100055637281856636109465710745328237317302434227267492398097284393413631587505648419929322551531269566782183891538521817325281492064989861084542256481839686495504927598415900629594412737251830075246426368530979070335925700011834566818249880542863210154201686298752081416525872571694565997102241812595062967735241395681642484144703538447111086500284293592496959703003583122214044213737693731983049194965984374325120362011824169185778499676654527019964473842258552669088116908629799825782450618909930134851605716796790259500667018300939355164897330729484094815075334922521006850153530777852126884267555930921576489868788342511455908534600357398630574491736094382590278600546611539762202781046073399420366671126665189490756921839509452937034254333219776779570656764035755534820109416595740734316972175184059564958715292098030392342288645473889420950766685356517939576775481845402093602702031605485633929788731200054392745075393607249185438304631767309361110849474605810205168976210097782469448554351835857360418475359784318877414326228274249198198991881831978940819501470328570077665092311206448644591004101420444194940233910705106689471929188350174329763686801558988904083769923702022477785295173297188010479251883106962585585159156713897208205030944754369362497538088306274832756923904465830797032045434123522885332842565926380198933127705992967217017819166729219862269386718856774468758166014577374584133181880934169789872933640192630891889358439052686340233727420083068204481277661576762624632606325212574762236731952846587725109591811639199927470973098614197225781794392904370102323042304393313227100860126132018761106098318008419410331271214353454147516243051944907890754846587336188558420586304159788654254397468387515591526516962240268227430907730588221401731286570705502655166557351822893720665811781852443533834276508294187654824806729533151905519700141742901832103312413811430605142107357832747435674852794509661720084576516831302212410283551238118289669793742600256530459107520753264725837743565503146720459499998313772308767668467326923403372260232576168739214549204956184691151683683370829584110765521731169137337717640875861847698587607422720308184628423603389039104269506445486310077107655907426091888230541516227044893011912489317877600275223724836074434022353060000794597515790857022181736292304502185405308676671724039372650072628543343114658254916925553975398152898613489560017394199776730058127230788327867227011400132949214532015984507178561613312800737728181491272705136347523144739195772980669407878881467905297472629344202065704061294551939650996302473044365426600231334185577707309666065012262646760569761645186106345985613833188671008579366463869213606230940654571469935842806181958971071893741763090429827469206593138085269519615628380326919266013445930182211383923877421915433797431533422056483797098537581544155333312336799755119995193499847712639236680994011260477655132140359395637306357316831593279328199533153489568657288120216674937989690794592388805249647253696147586743827941067123652508517686152173126060166190229201402169777460840809257620226850787338897178495042980482064880380431851470001742069698212783250245193273801532984346820723131616824783520547542366127219993677182577243103610935329606414889801684145415233002231515107518718573324462819907212028928677967173066735055068206392486405570905696422989358000086586695914820102794049121979961157864348359483586131035877107188416158282246432359008101152221980460733001239880208775929309632186559925254200204282945605707641617633309049089468369643406117396238768912807218157662231763585709518835149572713903456993712199407876790385063939504414390239564814747605501129998919562299062323933432018773500300141380458893143126217790992723002345401080156752101393706754817361925680252296411478074515537376557967282934646442160055873316224609008356760861448480538627714075044399075215778287413669022446803935940093811143236950326205224948925300003179120014584394225099825165798985178587322323893398842027455451086053746593974040252377939527751694900658114324066676225549963847580626241009097423454449593225726328210813442564963041219781740520930885817313124124856705527957685028051794937368403888544761351698439382317317739142627158016402589774977792537497100586030338840725441368999223919718973329036130048416131477219514592839342366284914792699460840574448632500949013811293480633139053755190367069119397163042176889335477037239666978160803635426897997609903436811102940798154675084213091628422086390396141803046378618712499810941409370487615505354076966820349686102050140437312374398459134850549106725293352185381290657044205273017833701179219011994249989104094142595844563695842517200821486618374024387991595633231922895611902155791908001923789653842243372814006249077864470642707151804148712883207703350846602394058012495354169919040282333429264180402841766951350679344437586119419652269530211087671776637036527247098483824323994471623440518448668939977049598494737090793051448062834570307380825121224140134570998584943286954227735488491481909158819588277269107008459628711089180827824579743871470908011080922367402106771977299012633655271638780561250963516782090250932378872290248842056329895964071831531021981531455189653415310958809465463721657350714373091855637342880427969766616934891366766760613978135213085393486768909030147466046583793051069239923273352670914341907462799451261641172757313030241544501768469873999213597016987502476349764685463751762635101173598687980598014739840172038123129697605707635652270026586457284896111539828403796115091930423099028375962109902254229885479761942517011138005617957415241927610523269176701202727667056341338792842592640350040518310537034764423113011038966903381136239004475303162793590095974038609649961682930006575535773889435088803383642265094329109738960741863190047913956909415371234259319502456124373661304294333972571496429829311470245646455728443999891514584087342307305136289458500034809598032456830955605366376551783195500875779860592713179741997261723391540081655391016421933247935702673485125231844701653728892655108839550806806923356328628790347436896572102650183496147933211522315327389352553581180764727387760187074090941031895501207399666195038961811911783302986734690158861438307672654903417255328419524497326782625610628757390338300419490396808244727422131334090879001131507226740569972448483722267532256926482832502381581616377939232733623156995613792273437986370088945361096474372805575940836555496920349788674076662982093851651879839064980396375800835669921753660279051883667804422583467008447147920668228132685877262026281196428052554369316469945354726569467284342142998682455882559392033036363530395556341684977547156872275960901669627274021986585682608187579033416982670394824067277419790697067819666596482820311061169036003933845711966939557053096274893261390621783090190902506816296164671357436714812745801438536324549034758732199690107262337572160780741350799944790402888882079426771973007682718490639147680776985433803394860286027264337486591274870256450230777911539994789783979740901638405779550613161056287892600610419656465147411577560661671419761372026865199189300094579793993412818244056304230416505281759127583698311071762345784060301824097052917812344533990740534037199621406258302796660598377399405609643146845273540806172022617786537814846517679924469769368791438537315328845818468426326318434492713878088372466715262606111569638577337608079395605019115220643993887384127106550766498389509820053578029828963215312424737417181796723228753408804449626329641380016895187415509329719001552599381292846407871175686647985948526748860820953192399354422588704171613162237826148684930933592142812430244090235986432524820257903321867142182043023973760435171944976443265969756173383356765987855566070334866003738173430766463812619206655416854648487198385132733801451170400343548471459134901008195856567616862500998041761844894004656332746245961486076010553514351675203227354186009073141621829954020967873402432324330057032286273948360385213409548804507625785907746429888423409885091737147391527415053829405519346413058000214814444600121930532327680504980087189171707113573419891584036486906890242237915418553332915286380011979468378177474451436973086805395942576031669940819899732402722931139456089649435829107035680478183213688873266138284074985352810770626611638725360522392680530708455741069299889968802862702902906723384225242158690858303838497045765793262998989375589226249838785884900188742777538187343296587152431164823591475743038020507024306878747915791228934288317707675399636686482965827093185226821954356283247634366425484551515521944326380820492956263380511646940988891739149514885847965583099783235863417286213786136619296342202675983832971554586086498621345629687106815078827120900212191076094310590589039031412784615098363271396981785207388210766930881884930083481639596940776229688573512969496967717759164497897754039566298875545804858948824166108253990110617463745681300726765884139338096914381680366479488152520866827936384178751608539025278537682943619408221011981070819789153053539777544211162773260067516989956840054515648807395072912081185893170297348761978585862235582634794729038466713214138736897366425435610261675047614975549955768577136277076464931036024274010118811062094590419475908509842085407580942537091763360287045410562502467760523747038890702385686097155801852329088871906511895573783631725945278234114176161281907337735077462720890029454318045428741032630723860604657655465307915519388598508614458171379363646169312029956877124403995035167617953544950351427710951264958867690501890447174002621563612812800874050532913376142503137498383514022252658357182632630546418285295559821676334905329726584841042505207724867220473340759216717916861419817586560897212463164939412283417873205249648655554044438224642688702295297794936638530662531421846199470217680797845685103508972779880214393554464900104945461738162256941621639542028729783235722377933662299308612122143397503946692719150096370503509293230395594262219912222922190826593130589701054151881834584186215092505534553724026464382050411851008785853320087260693287046114421161738467169002540769270360793249458284324472300157539172860094440218722103064833763339930551867460630662240997778880106527575213296113677887793288049366765910244840391398472744739432221944694809854200735886804492428406353626586243157561002257962564057712992897273832469014205088352439226183202594117217295190560936043212650428773996512032508757802452604551862427403875531634016062697020466333793032698569439017065116854385918457552433719058224284043849736692473864110214996648510515175827587411273995143257427272915798275298053709568817551724391419346111512938898424758517559283234732728953087365750177757922899214654929326638922809433505038184525198176679304282430029570536386018108500566632601272465032105471606275054457754422926486376551198376022886898983708553440042602540254389371871027298254420145629989324661863042977539394161196290263431713682908561053848055783685536863779488753000372330750652165232722301037092114493992071356975204613369618030855744086787196126606016915637296922403395103979016693598625422869121741118329456900095003192365341014188830210307342150913522086935492815976857023433440039456668691068416441768768361634713268074485187525585908397926504411975825366602040241004196943742850875629834005696963114560941901065266724063090085103878412542109112447218732085405989139666169591989643205973981398962536725941505640354495995413900995805049284401118512959057741727737842988093404479356370823974741212543608584381017106752224810980081906541171940664083007464730696503011520405454183504818129184068328470490519619709833018442596383390527778392258332807908500355915382492042178178239771311785718977921927415852940098723497723406144300201409515701261629882947645373072190145542576169092590545633403937895282242565333854032838081836664032691503521214161369958129493235128826481918952372344146426381756077691208781628913535905272877933715928120007922439665141593083232947032548809683933057687196802631663675097063088354806342384237711219172080588958783842580105769720922806561182382417718604645387631070598828531907044834355779545682168149837178579815847674264343939572384271286341212732844231913836458597401647506933642382651661824425909554070593169784444981921477598308583147023787278093763697167260934834161605926296367230080591781340992774866093026929243896984397679299579768938109476607089548150745421882293416042497873683418669012287868962747370470620652919472690729252139795538475791292860169666302613156482179504426403655837574597754334217698470457508811322006663191755492793324187009835677105231193329069782715214522785030318511556309773822184496288595617639457729852339436251294702488642734308152960960214033725241595948782021347502929003833897952938403510685102297869194128215049821142865305659854618951383526986736900010242029705559766776724944059793159093706804694775918803012310122705234571035163897818865505396723469227305281281388173866194930608630629241169947878136456077566136100034103369372836009127689403950557491777113116117043388091874474296069631235536390959732144266069850730500473566844718900574542705679591166272833005363057630994986629618111526062329835191709059275429871898667673052552992568130445088254421951004548725981970664807817435501524652185332069355021032364662236759922964704642090706863887213721317235346681301695493491899002354507197448595891674867382224655385127081996696970775166602595516529942172302111792482904035898574010869201991026070033224450242894095026841380086984485478238909619618678922458559774007138499366884446375103954172749880145762494241834965353382195048690446782115612785456111182704240438946656714203610614611909359623333614541117723858065167924903184527055680288935060933636877861604523501990466982698344053648208769274800057166304297726050352524866645782098129672552745699803985571880112469592616686016447352631883309814636155241722687701345795993917069751871737569011665123220796672689850298506159473453260414888016064400370884749858580589258886997275674027015292926176558969123694999586830444989413321546473314633001261928058560000164830778683809094971657665946584093283019743239405226685648697216553459481698833388051967019368146908648960146376618952377069910502896928325405931396318552323033568844318401248283784301712726265017642879036325892439067877768688784205468245458942845091344201193983623754694478144776325539755264840905360998922667810191793930366585626041158273439818050776137344329166899178672582236291388905114819828904079443671235804294625394642330872742216913598196693880786430372577570562894825899069554677028720794669138648037080560629672763472483187174242770992038214947210710185338009006602832894010057950920482498460904841311680018930297179466356928577550947100101563487660389989801688294921409883471957057625809221162205087871576726163499788828178050854894336391040472446391918042444405070586901172974392739431771780698637308723209503054339294391603151570899425202966718662042144200079022700618431650522731978723523718681352498821165467774345840207312081829593819112389072445995571709734311657061014768797721110401524815181741557215661780126252805183515872718170850289763041694904814820029241541563649684122814885502530572437127237389539417427517322399799595501089535571323468575460472668892404130834123312655838892162830768963768067937330973590279250835955737727843711737290662322823161713785382728424661679046213891834035668150209461175208905973056377295789002207545385002938963849054565387479747249820924105321906801863467800584403275820294388671579620206148377665511186043010383076713324741590060793422308300941002944386665188389732593349730204923108882822111174033635784782860365738010252338934783241118711689879563688223456163029207602148937342737929064201270759387262584943198860481382969854574041013194893421021569226860974580851320441506088528787704194887381977583281416113426454225251162950458621699497681885453029243229537327958514216920773383075240431951846659216384304517988103865517537061042497690548040030215026402833845609761002761574002312808516361906442376975658838789977774741631332409575084311956261898420153237677190828817200829506295136827821636498380539667979125223067310469558124981264424294262721862364371538797367019530276666715148642683039281866350719145802845196477004231222757877343494549096946951209393423208726878689871476306297596860667657260180903971038571332772401008397492614887358293806257033203746150313427841977110770595044853305336971469010956758261676681078614778601216285684732583664533448960102695282241663256091333477959749385499991765481303179158115454024235636666653475992514427781352658221005984176333538508351460952718043750342198231058820744150182995080489707275959997090887320440046690614208361865455268543161774670451031838323930635605853795239128331064398030682676345645519872340927367419151728280851361001485637196821157338862028745303377118689878365847511573003202050707185332697346807655352088211323189049689196200282695114918068942493495660005561750017706358094088585344557132274658916259626637806744118682186253184779807026426753487702454514195155047777147920443585255863730559783362146243401786576957191973921592866676770098181899776613724799120860191022026518365673224250062393140676777795551797855100929779842016472062237304032658985517874829462828594576818131361736507031356430982352345318758618631732289101946048137879345605281987703977840277315488799129630646505627557548578318100463872202585073942927013536528974394727478325133128717500047086375893256353781024341101841852709488030004531436210962238717165284920553206324116998376470199919332108478721611894758907922677627279876290696517930822422108263217903888185766122868883269302324709766614059600385884560228998911403441993780970104380448067844072201055843382956473597209561290888394666705290866448959106910645504397999793003285014878387957519051904988951182064650849131613412207159604868815625287270820010814330586065603147646166776215068449045899294011953054314611500917381935431068204218351823662771945922589420171583391119077420369783925331691538866311561145702797070679619121227913277458501995321887134049664976569532013592589968100799742572135991740971458747479846490264747326770168691675850801392891439125618230607818962937362907518335435369709788911859875477475849035632583059040678506054246614896199989997784774769861567709713398953937886310481934116574637419492707780733999973959191188153566626537074062368685770775354448599945601705276250293774870765131674079563510066199417300589382513586237732347270571050033408237458583221202143143176711094467673373159296670933227692786121507045963656823392141064182515714554892376250663882652466389229506835731136368947029978448658633163908726398044326197700304971594760953621206090403287235394150167772343241116436204261010540992885927118169848437123936841396213628607543574659411283556219217160958232657770612732343247487404090748148420203680153396549429012529950656880022860678514283905072632083425939823232421466935747063397586340133873561856505613687476825931316071054295014423627071446137962999141872678932283800773034803609581193265062974719258929370875845311223956210555549078344178080131450823262812052413177397186024457308370105574356397058810653162990503264474626881708364133989460962322268174874559691856481155191447928062905192317325420832737031647206384596661360395879137602785652066172358272123272394472088808122288568035125905140840582856962720139568219853428261140883912634815657337873075819993554657415832167924577928601161786007182232619708630532058769106603396396745801118046514023870162248042404314499738037883007099787934545207178886058794456519605525306607349851656826953883508704371319300958889841948368358753387897100163337892080335210635682210127433949297057562001156398053266896133219029552640924703513390049266848071473505491335587209831778612328812477972667548426937191350713840680294712573590007423413529750034134484640108822002353203877511764185230297493013117793700512847934588179016748763868496726183015696154973889191956698667061454294456221257398760668773027298979562429356049546915659732487424528702091650000551639486924377935464929635525604059276428000514106275119370165884902246334300524193613455314182283543573475901252322780104841310038576936818263189341117568499787739745706966188489177297548289682235787213788201863423345924687123929216607429580830876520980068810899066544310887380573605407308916981121821875229555480455140414895308961755431695953681177201625629161008793591836906148777485055959630280796222546934931316579639755846798358935463128269248290772827818887970594771502933298845447689138218748167289258795082856090615118336783888401161808282543155981848078582356339732644957727307104424645046610270208982251689165204285714598963361697457560292055582454930860973232249202462232838020207572716464459752967925888805948097911063324865411028189058095006612064114367270752680909519094744393263789376727604865895319935584650672904264619724029217920718306982520085153856457659998991377760247406259266189215956656126728445780176961025354665996247087939453063668987018770992173211518376844104735744770856806647008852641173128036645393132036197859531915857878945376883652331817888911555528996312487251844828214807610573873441839344913326246967476776237788175916876434791709822218904063964326805271170121668868441250579515431508339247315851513051054196475291017895160569977465967201362986499188488512765671773800826234617759763191407223610630367073241910928272184543049800619009209120025361171332765173123240906321884212334945712903627116591576989640769823447109891713741317435703670133408762002048812380011171132816505434645219246786974675614853901164661924575925648521888345413813032315795991648668874981520040285439518616526654825358830845011126100978384200591477501956579866859394711750473473278788807692119764593613609326745195675585304801522728899399368293720242653323140706427419522894559998894626878033789789789107616686454716567548030504881760032932067385431891685089756459362333705234905622827623281370510584336958619937109245219371538886126869087079720690839325034704540368282987923670506435777854175974126610573942512242650836512343708536887489533535296034548849145582066756696034935234810324572594003864086254993873408943278107131653198499883059602297979548909165755013052275178180499916509129258505778753650470110684150992888112546443299484823984043360899140268840049868069438268125034786618239514558822868781708302122500854440385973569906433985372840611024179345227696571141549076777334362491574706681441417662729669130098017205315113447422519794805140713024386012379008479684970257183073324440084594250724655312057458582734555546326291263171864301227963068701988525779703776229955669506825042665547033113537178918233551243270800909825308543735360460369461740975130073781506069659227364775082913132084676879252360475570298050707749554570099995053432237162376482392556802080462113518328412072646911980728268211380261295697425111634503986097710720758312534572448095487028201765814141143543531178131621146466161517271307163182711860438385748227503915536687373471232209467264781200788987728187947560372425106408048338523507607562357620214037765986056675679519859624288501971220223217391082279576824190098865875362412232467143232888887613989301210776393188999610104501033400290187758262245374733926235433928045560839281878185491895433714050113058606936136935525109671770020074035875422188647944829232046496106436759546400782049785117759421991856311636561381531202843325439960752689019564176693076022306316561799372152318949672233838701232124299219056865995086032017995901907539405984486805822218364785886745657782581643157306437081983762892204042083284756350425214116578270226248352039136729524727153286535285874121486943315203218541023214458787174549363177076190304156730560343733623171722749663544837574661748967309638156507988699510874190439913825663536675069458811005267122166976466967334341502368453800989429334602050391450541565040357311535901836027307312747261717046568091357033033899433162386772595963188570403252865085403121251506030890264579182441131042903431137951735484655101992766816332678002508370139588834007109268364863153669462845994200113275293303197486115800051923197776341619775495527956499006554412264239430516537927402584188846365389479319219606019637622081181390459485143377144869377391927657683165304817651442809600893577844180711951537254580077255552239766581353323602156199434295588699353464748833179471606391070433134409876148158003998096783566798252670721870762474065939872792951526076473185872245107337215408533008064200891309613272373432923331273086586737786869087787002335657842539139640595193534829190082673675388684594247492302871877490517184790524743295451196407281405927479954450373553448778372095696584241867159775801938343369046669389897639429079948385903464583694370225283189439918323620201678466878985156049170358191350601294629532872096694707858636969899823025691478309285571706458719382181336506218033613138316247192012567922483674836225325941583291616772965289115076300767301860903805876276307512710941310381640302551429729680279793753549676590610202823446392435698649005146992549616688210044204372839765146638581149118006684452926198884138454638053793466455152878879213803138593582286960592770828596887783685120749083974977543500285435065485753962819657358429841155516137495615500261966639590584235583532216771061968004838339867053921432436640492817806091965334979599894187305181883258006360432105798447031773059778657536380775682313287533057769714107761724185716139310803816410532796301647660520429395523001105395165846636984388237036612886284492766469262359428895771328712049515336615057690205771673445293545935580466691729176707417975953743627306836939750762754664834862376230380930381298807214462377158942149044435253859897034773607679533475760916968002154176112334084990090881250062531689530331789874466319541307723154118922653768238974234664794880733401368615413679165532129328682331590365357050967633508208185643401576672775152439151159540324402626843429237132251238757959353813681465818519238847669916595295301229893045119776677788937940184114535914724608207986677170408912210764437271959355682699147575319498131919065033295143193030975066237781080614296350447464842747615706317908317321119243130886457897281620300062735546874019405004786639942519205108817799470893167425390273450312459310910383836975216070668811205935805341455118114068791199904086292552647953391630692722387569799590788490404063253730083828689722863692661420207816139912749829637266041739934813846252334845917701416327251705643305167579049527473933990030132044119790075364409548156947613833976092548741689875011478188079646681227443166973566469484942158166248202998603450017353811999875210879588253433298168605823513735318015946046752321450581980847390757298065224136322040045001255000097339463052394042975629941726195604681864786054226934577595873838136539221761499470239986586223348453792386457866626263465267068160774946383700498219393139413118637897301754504340579927433191930826060978651266775973590403934005430423395283607981353795780092797903204622345941003784114640591836275957421168192058710544190917966546746930029209732599182107764264237813987666580578192829303757547364665271943340296514147337059251183702404254596721920972387445911040863458951107747562455491162405841204848388294555527154799735080357258517493762058015352595804474434719556478380442045373030257268644373436800934221693895892273221068246762941337743819986889564144414957557598785268139548150674488487356974893149132723567136430148024027976766313195016129798797436048009648024999671061989584849129023921422097620266755344938280546761166480750007130858772255315580501447958493913116886109078190685705103837918756529979466170160519218790039335119012758587696384305518587804233930416489171793418763941698484234561899264160539261754841621635355430000474118131893114925625773589192770796290546894306845703095907686976051894640037607095341498887133395257627276634923882519270393853037782018102770385623324468246817359632005071981902333230738404003209754816734300977289057524067461736258384593984805121426449629416921289849625683337364707339645422848837695220818989194674336731469609349080124771461647073157974952404290182904426528059551305400482793301348510879067418906977549212869818763296078611932102668012120797034479043132185999263277173346939294358369185920996987258465080009807642332528521873599589861368404079018497225766529603947922633097665470429252590267283083027010003769040099719255122605954905826745817267313205816779021020635950651738512429252618854232834406061274536684471181688842739967279184486387955644369521825360348976390853783951799021853664822380476193531805100639759258745047422156328777497267127781262426548390358968205988507942211653238129497435047459800625567936369841296833847381317261954879485868248301026094332723829381612096265351209800142005151295945584183289425737114659370644883910687341178646944955824931237717096541771646056368575264047934938651270347694874114480926887949455873354164903193062702297607261274957491727688859288847656698052890999133036896985366225025243857154389586118876163145883425733070125341558887412887395672205346976306352971210487128902470209981999189742358362175619252458115520513325870347040980469399288160266199109771222983952204807421334452765664829127949680691307198789724762805644322173024183932393588383665211190987987664555586815097044354499498528825322289958936274070013228124757791691194628890827621821013364383358413072127017738044929671856017393053782964173397765682910568091010819006725999999431314700872318630407757844876150112129381322618062256611296283458125890619410896149205532490162508431001866197734082102738140433108586843101056751629072206843081061444480295434184349330223313872761470602678567275222266661925484690532085605164194732035886606898993463721650597760708596369940026654200215693212797042325718588077344107204769130595354661478596395287103981947749214385655813209880060810480810635497298437904850512225519106286678487448891468893132960399273477945167499487862650838084826429553231669034800954342437081578142974634876385595168660227019113216670557183089484964114886294357611621442605794001326673678127320600245947640197976500552422437285088974652562106363148854526202111331723775533634872827578327896057779366259921050574286843336056307062207847578670802959163507952623658343927873422169480765943123386787314644329094265368315292906385981729924422283939638270131332527947296240610268591721719834731811005818467378880657718506898911864270824043525087107588598070508681244437307757541269176713862692336435106201168701379533665855989522561912029575941081273452749451552291063110090927961472967648496003170088019836534876636809008569559202337026793074491730590678127595646036756053802022700803065862132832650145706749249237008972718913018040231775665593220878050306803934737824992765878184228423772804112867324043933454146094541390077735898612425678614074572374052688997476475855424770083690189412454482717614206868400265847823977404961146656889513805057189875808735932068049910905915450834183915394417776661004732812621629530565482429175183755627504281000771388268782286970993214235497893754362270382364261828439936544780400359838428874356475759198173123875636623170141846444453455654329440261895600514172113039910706065006794443508901378021862902147501720254067021113316063827061489548206873928281821801991359872217431007288748673839093914392106902240450023807330775015324387450087536299964303432863692907688465026169427004396212512425945567479675644240734225890707606859415455382541745044142115151431412083045865783048445744444092616273840565675537073252925944769949079131178778253043735252199748966837893798572406245918418633981666168045701057597887919951191440246772028990823608290810653341844129602745449676327289469117657858096647394561578579288600237075138091210154507147822135661069225108644513004716200158661166776674397872726791263446272121550445307202103042715093755359612461034119039987298432321426754443478266084364334727656864690772958921133968504510467428614089321900878727928374451395418930374866849125650804529438702695562110973424111908648965936265118139935904882219757811645988016376438872535245884948074454527805312556406934089744733887574048756620446164377826905430804682759890149333217548220021859509761531983920389438728135204663013600669128298428436548499268008051854302396269828812124813821870488979616839941073661578404925803899814095488859903028467961251118487738208825326634738566477615806701946145044512225431943935194985622329177417364285975115319193495852904017630547616832644754735255024372872689691505223861980873873326674644828475956468916914642275144761407252770770200299530596010491852996377890865659488610860314091395729009124583669280400184656059627852114378115891932507716119474640161878015008950706953342904924753473007402939612444301853585134159451275826471522925395280057959446836926671087812661137611683001327519847886453094080144145149960257188888909851115784664375298291470744979141621205286511907889287771463898743250263236948077307548993066586540983009976566795013061478614717629878505530588321985390336310081389820035882800347291304603006500376093170516081842189181966037494728952910845124463840375589983305964267882159142890391832687087807793692938158041113292162152621122085458996693780176426769894121054124437245710873499638132980717667900853134928421037978128224235330937604702947836984476765348676287011116141233998723454212473013989939275860209720708916230737002879016375427130573640369726098841098761860898057327256256214905082895984736313188923409759034876385604866058763900419792566603129167066172173842797107712549798260550961762383255428896080607272425379291065158426518605794462414449477332371222445307046606883353018483167466699615469138302429670712029709312063027307420108497924693331377832460568544997351562656503090019507510096638324847706378730605938917541834613280434688097851325732952158815413231200081934174805398731702052214684805780035237992006187761696515112441058733746503395002704450680408504903355035419691220218954627329007023646763712500402946772595453121395343388195661640999338904596272869931910192551750653127293279847692518538835431557255886328879781553979470471444666732933008171497045270867210768390785876647693309654241416788335326800211982508732904455770293596073179883218054539965216467171054689500395816563370751812432681817717990882819568689226611070806007674565348904579424484133467040787803728094760376027006403796188655388559427601968655084729546710381175905714449622661952815419284589085486532086566214794446184723884422142239752786994942546126255278825660486962570201535128618215448525924117634877738217455636097553448234305570222974819642086852630943030675948128566550074065558610144559661249228163024249432173857050826949279566602696631605952285273114281220319626487915339676871302778529511972754497941438762807078472512204551148462957875312656660160357943424832111233250253744038490528391327560313130375154859547496421880023158544859486259212752786513756738428502004766218133672969368801364981737244256135539913663290460026388339779058442336598338359881658688930421930324173367874337927747695420372101995526752014484748869445356726218245839041151575234149310536144100881160285892695902521936303454719402256491783049933445063217238341422300469560667929140857873908558778814638479187878438232236843741800780936999566798900442370340925839043084928816191076883085366328791294023079123568593239725744823862795747053133125219920323734679520920021849241857836102498422861806392104904597619964843141457316125042099778764011262116797008303303980388593284051562328381991100509761933120778396485618350782773899495666395943572817657432721342311597614460908432918020422278172570944634886854106708664071980948011075265050205653381623919368611887759465089052736045703253442403527195853845026081368991370899109629490848701478291742848280012558217455188613357546191245604508846063392962775771658297887030919590223052682617347631947729558239188871603274853422880472256073932744868077237043301527244231304247820792785488183360995738253884597089264302187137370468910573988490925696571549259522978635658996506840787176930163630074865869602663526466965932907244913720177875714154974708439792308845461843653621274943424106314110302783086798290990423933995212928557426266596356937714531681120679074086067115075098047250877700622468817744338047531316463521363129349340877408368289536079841025144902356802912692121917015839173364111035010787258129679797833471878553014526550512756321550562828997316236235150548668131069030884846566371532138675342336659123348074694171200231883783178445491462090487722099545207806856334629170317191504195034861951907212252025459302077834592466376746330482372782190994150512928967446193969972555731098738467201146379832113728412841339665093037626674923089848572191103074412667234890050475816623204601061132771360956699896990623396540847511173700005198333417751881795728493552244754744980105490777099594191077572108624013765053511421765352476815141938871460366215925873743500616406861654564254090832113717677442904293285189667221429321267891989021410236044361379667953320863075913956810363194317444024553678274257781085879463489524315607116106591337209149674889868366583418018957692360260025750155854766551533224280849275306203096277451532951064388411618709558547037153077458090431924892806028096402426164282304543853358739124212860721515245857193833911820356886262086857761844619119177446029566520041894104404135577552452226908574878991354153615456369544188924755545346604051946410917937880527837365483375137396202660897145759680086563941877222019261500419562975605271959653462822814478707127935782824467778338770919582701047802372133963194957183963896779336587749126708225531653850194856587417471850170313931355887800210179613192014914190979697059410418462577563257955130383747647186298866075076596485444406113826459855219574733890264799027121861441832267368403782378943820625085663344512450960625264247063639880556687281398753568650491523225272890977872913063336830684994026641032429116261991763364657066954404426391319296808246955764354764787020212711493333316577361018945462489537962336645007814362064920879756487885139299209473584547311083448959825764788445818450005290051010561053849687275508784038468666139975948796686815579875341504793834635849570417217635893157310168038603696934618594350909565656647251881600373806741586481332758329778004179345809597298275635935534481340022443072307167056726002559392214312689879066930805700122768036999095407961848092370789070470989485565159126940772180227526299127013955639455864925486234805562718218188596854798830627719744422108064896840540050398889885031828344871870007316670119529086193302555841183299924126404663799780540181832446000372829941310725621007820090845942978951947511965229256400269170743741095735820929119548741856623841731093588822814470383310330112198845845676122422291563830872615764903034227178323224924722572469909214689150577916530344162150234987822122002945906250731651025324020014030562515579379776587733186599937819740753143548501441586358329724812146518487926210859446449107033944935308168791050653385919789316880966835162908959312495811521988262552922090959126558327803449825021244065054827746650182406191792280422125457009868506742715903182585766155922962474728170643301758328790922478753292787925010142275908413230901112529174093026963385286497236730644761687798483608195716441537786260562845880448421023861288768096801509683140309997715340383256487452809529108196021239202055516261582825511108086654073951892436154429438972904833976774569611859513870732185544707655380995817061487000017086884832208083237994082903382712216358720444267620613490955943029148646597826732921368564356352234742099784854068109929871124324633348250760544803161556461918381550360942283897037597228855563162378762553983791793810380585873869749558470696329496628112110906614439353368047819372169769514221047860295363823888495984859795713213285680977406781388607307071155595595783706713781382007707254867021556654192186808747736280695655135479812070526728321142081637136021478233617272532403951065790310078812377941736299172033395907974115838395095395810230865339922820747948529115023424276410672393284766760034198824811614566654359424091558363531314052151514327167464829781443396844740121245962685905960972892652253332863087445662930983225252831806857826107698130529238691591022306112215279783913055183133073780639924872341363113426358860868213861625035615570397392994244114197081519181369305762114575642079799529529862197076445629085437695298592837915750020322332989427140214396286962798623401346686525418325576875845593382180873636769364801881684905944591549802385451679024339180864561552260502706727042861108350974857143384527924253062758323020155112656077365009575734138741128704515666217654956661712416194822140185320921702712837490398756807547044903829197109097829287260365524815306108435888535259169256002419799778479264586360924646984801111867281258401581639465505976918613689525884910511687654779532611677403013738063453915251847704254801389706807316393832208423332163599697111787104179834722596146486896689281494735052615494497091730815627220204028983003294945134287795745466810690641363349318368052670021834907679162039753784645415643669247403735931212637148418662179355687810112736235658406140030316042816859030979957931987221918193403100068544383640096369787666707301458164532585732713121631214800305315615464362956922077976566386305969989216317421359451361061726863145281425056457544596640111063618515012980727722168755527867729973444030003923502007981481502256320283121235572801903384202049486260668109751984989484983155244959528162611761578675037915770013631486065982271342680639777552686717563804052058318625567757322777062343038905902951892261302857910116975853275012348173323101870797236341965617627981556463507889475922044562140172574794912743586760392379471783502393065659544862448581094308416221993900202628394369684160015013663818988943592526135698866500815113235756420099247310276214647520366314769913489167834207206965691461597801409531756924248998776978127177604775628168130877699588593549194395016116542741495241145193742918770628225336482147199120278533135490389903425218779947978982239688105550939070072945064387769861397673700860979467283631286171050583693338851739282789954163206592522725333034333613740386500067071042655741976350077399771195940450548410323589253055768115427724988995884224588086729080508461402605735019905457607391671471096482515759746218730171317491145937227705332785934646856783405594601583553802135761813313616056766770419593196470812840656267439455704869341856600394664709964415257221060169692599382685780259797547505862605871400256062653717102014976810373741317303500109337161961557044953512033911480363665786136233165715023758433462767477613541131190415608125030821625465197310296403630267793920097156246969212700544804248983043135917228259588026371491341677116321447765861009985154472791396091598797770454857301048590896508691401745042022836523486584316217439905016244049554279392182398116828569223176679607637038478587396027761449132996819740479329937644552107715850036594865603128502377175006073336919260809246828462893267481997481363291177184973128057149391640080782340851076259694790499254920251739198365638907658176982648254923920905057972358614942262981867458090881378915153907640634266136906555255154225690279386620922101425713921938752569527289880214702969220660264950618080583371585921924957087020721708016092679709680845116134389005861419780916173138151859975688777317025000428710161303083327492777269899563934948105464510596677640143723540932161649974878442815106126645705085497397048196545435495769562109202478946151323701664428499413239804823176421685040264160525677017316654762337373461492769792754982521869906781114759265002213295329680524985569815502923175677529389780412154936549920225072949083070387238441277014163736109816865506401040555621739814444471321807989987086613045917946198128667466172147244492324587557452184581579812349022758278040012799676033107751680128414127500867565870590717608963947599069294452827667942478284860747679526328294449967894634339818489483317958655933689418338680269768292095126547598057478346615765545256880473327482878803624128134093062141736554095874711938245528753716756338601085513583905463142601935716367288040694299023639056271541492624957731294188693922471438951538364618938195433314752990065902011734301026808566317992152417366429792927600703433822075067201634326037340672378194845998208680817905599552326836413567516893038284792859121812913728320906167679927465632152152704940418872614039650961809821126588331720646496149592652052208815255531545932621486055684795542134457293675510666167075692021637350734835377074528761708461226331598035484050932249664241780314521743150507265924527999766093802065595372561597691434711906306216905822498643915873252481644278375534479307659092437144298127209064193550121999092695648404485072127038901021583446032781367114322654930754061336451127236930832695196325557448647473323449756537771495627093345320149048399208543755996784012051427817141834928970958226184511077100895150867249143829603855481957997616590835938041091044446277054546783483408475455578420404733701055817120710136270859484145509037363203026795291615322534982818858177417684894131244702447182973068418613095651911979315580243108977797541519001845132961715223596379408856234666994866080586351354221567582203804708143572577373487890735911273062152047382003065529632463211298421511186668207639042400758730264938888872349845986784088015177017985598297283977445061591349280439925883923388838047977056567071430073464554901408691398050177652350147799624776073175354002874824794852130732523656482344472364675177056246708837983338925367108600970464064248534144753234860469964328029265929459504977529817459804836410187717835019993569829677380437947006134974702903468825470305898653433249678689960619029197679780645072818486583063365285623632869494578438009191136943218893462040297422387102011740846392833888111493580617727446074059485079604352628881172045073938804884194423629904848832490639574223236746273135704119555440418334973163625272706333939165371961391422120045012794137634820788709916117838773267271875498434845639958591826259599082008010577510257582627254040112329116278137865745969437471754855941195613965992259433659307661719546626161307293008940142883853851253090858864123956756264741156718540851043930919486301360910047705359705203259600466677917091525563655126809086957636829029562629431612317569429297516167064781283545487589877238832636165808851879440256779986018140628494296941355095324972430139193047552249982722013618914226361858545104957532061219674244625839238738970314150524773044325253865910750272614175462487809348739394263743464009637906971303515734556021862166381725229721976081450373622759460965377243932238554569029531895239629915984234677730529786207765831027478676393133884034381951470672464795829330913494254458021444856107815533106564326256811688525353854786892964659053878917389447701951709233874184775758442397419577744277735007773040263499826355000843767197540927610499390637278898524065981460162004487317449262481101211260674602463804661040247305347607145367293605802550743760103402674180159759637386887478664166011931954591479627654654745274178557820658650121824065495182316332718965156898649239661343540759605382190319868017550503107754340626977349098710946653826930543368530838793890045649661968867558906119469456786896214569406556446449269394269041696146477842689459967407580482330828370787732179645219772946707409663699900009628863187448863265302865254029594517890273632776541439261735007348981894897715506168315913234782493540832322064008301716651552790723668543362894424477608109435577643022444816215214479285019156271511133532954874353687555698688720328634684578492273163631033536330608810706154324739573404840613702367756565322035602930577622755794817837481813324126159914181133235009832718882996007977817014130361975746226173602726216274371459953438981796628600782814868072804837936415908997618229836926019645831917487680778781490313987766360584856511269037538956905738359564091785958120232774732277951839518074167336556326433815313297909219379507580862157875586847863243749262331576868915882711438100460572211994272994744715320162050238137203578550637887120956410756664288874970820754552911470384610270650344996570843470357700144815302129274798482972809916345008027370183695981512338499123211769175747351725467938677884307330055531323814467868018507957055555644812199524373694780274631499715245958518903556409577530155425979715814014206293339071591788017612385155177893429599704941098105917984212662725354485155060807218269924500280509049784331024894864432806297711861693430072016142194267266100905485691804004619525937658584802383482751557521700258741617012974460317885309460544492363795890259599170709308872624908310067322279703325790318565040713585196770054561923296124140422415306408399285408490339351321895447278301334528021655691584268563398039282449387056414297519460880033757346106774473434289456724548531893875577800728146706240599012475101503389827695325396889737399840933754029408294474993056881406538340229698505054340185337025162397655386351481182343056333831795731361571338927625541325036394410212233636752954542868889377873275605776539256529754134797680603669727539617868416813392050189957088316935749572020843847663637363689241069509465080082548992141188142671873107516996777124124617503254190829893349879225648921790786313834456199433186664562612685734304997550393142283778092495280462525790951019432916040928191944720732995553710403241085988649996821761863596293337890184617658737981437222041742496046691293660451342773373466064893313421393746700478169917454934644029797597074336472397654089601097414371409608154637413583887850054359802774604878725437466451661193094044107640359592334397186058978848911261334474170198888161882361209880242900414149033967798108247306639851277342583792640014181227449742201692372275850114717029045128785199474528396726100031885125807943652596482238663858220705895172088234728481139138119960819873370051085354701137845390094015118448692334209853450766608499475705437526595301398897738093919197870057266161885611929596393840263577627157872802943130932216210188238107810640569978330153119374950628566059360350444221440260919460715439977749036554230820850493100212264290173386568518327833706776693103198493703538082866101654175743928519450491255306107562076382666169033647963815181885613125134432895640233705999753611740379686335284551672482257614264027651855479890617043555567596830309596977658883244701598193363724738106574213807601087185192775368735192664611792406317067288712798714613547225730099058229622666244778039233316650474040057137382109131267409301143205723185898169961919119688704759379684867765196826352908330027800798508382489264288930873984731669718388003928376532406350815348997699244340298917579699405825172891307132437224134712704379962006159187116000872951314152420969903318813263792671313401800035036636572423814046669995966030544383147846514693019230612561795100980470781457726175356059238075693003131773210808140806613860994317114805832718260841487553864718087128424233618657324986219680128216353895548709091479490002959919207078381552372927868494520423019437909662274824811354405315755713799729489793614555878455175576779391536513584244642545070250223146655405997939631882962858976604286408402120712835606943602758410365386777572620591995721900138716086033259725768639401884338004424203000685862771943554140154391966997295505736591637669237432610633745218086317159247352269913462600509944737271903579503561044965567650925287982383749568646040779715388694719775417505941709919080530386819716552580935784666387815266389652373871201009866271526693487047946377450901990315264042748374315961847273189575793481609916160232932119312545812988666114086735550513307051518512399277688934349821871322097312125533037847773928171177655615401985558452800396466420999948839869336665594602587881095983887832913249066452212959846559128384594711105379651953901562376660951774167568073956000514838660848249836332110291739773880775654791613521062657575649775566962684053536074636409298017869635893748567869679250168307679224771548171271140897184963703895208667569955799698423250249939434819847284077957403912502932426064899879344809116544039989978826761242304242994523764946503425505135436831447763711628507987176950112496831864004783046502350131820760844862526090715281629164155659880124788396032051620508766961623253377402722234913797306557922431659545059196368325155592886891257388218156060679080071244641339699572942233038262494817804371171029432525271180811358090245267039253251033097623261139528098634271686182079246132554443560307443124083450750898493045955467148999192655516925277608137318154584025559405484597569945448255327505126217087222984428921728809183278522430577181270639893659705316086303736768908904470533333511507036347322962779816372789634414686758072744061549901468075795124800445757014409628438394282645826515509470603153086356033968048449809461150307074404996238900605710084192674610778838892851479069541759451653750721189407675516973668513399471906061241509683041049061627308047459671636963489526344124917599759790021961468783048297443993418953480192250090577506993843180271842640608525608910969349076854190200233235517670253312570182082571302441013002063272635738750233431775605583001794434231955894234692152892124264519674107941018856846054833705205872771233416824272261911724840315297410116300974239726298181439572664719200503404888387264682521902995984203668764441517794342621780620043589032326205846036303772965196667575540271727243477912617742537319492670135527799385921157815627147927435967295282029665105514418789434846261428269031824039353409991293657658728319597769910729185325060705599959003822748293059708418629403814626780632503977768951885238667861153395054923062209151165892013002292712862816416197081980201326947267258135230949485423965034659193692829304019393352997436343843736826608802653852561535656689102782905004197893611985123840955514287223863662382890961547202569694280955017752924788142387237870035976923959150046112059063642429788151371551049677656878360555187565727394242534545641775710012515125804932373497818677904134566169198127569189945397261397753354975401170402969745659455208253178061643886793229549964960875861531484291741712903452274931528372940706360728604371679412378391333402173057635271957361377790619961141232616810274672463462090099088646840838105222286263240304290260689441276069969419605598829216167074114955201689065336943957315475888399823746593091269788223168790941258345616660364448762270991061159472053935850769550178460234283095941879118334553546469329816280014454458504205468107617543047501413653485256899329432786220043602652305277152104730522916493826095585532351574476252210606743360428597034871632449820383935289685330128514132470857915144552788764888428303346541467111229796671643421547800225003183683160688319777321016905908364674415857939169287811149931560248966778239267248000034131848613948668760664721510627512653166678720953494962703799064048796108021993923332341928183564030099811118562806346911317028864090479607788511813195312271930189811941199834116662106339434074621744673307791543255505110792394010326178081348537244021483758593681321242269585550314641781789167730965235525265988914952251721433246361565404851698636942399607476498855621199484582234560833519777909737040899705117604734177456520839303301916113944430188982155047907148085287999103986437233666710084552216079152853645838365862294735524257681443404200085156168220610245521094863790804460569290187337679880039084566282231383546448506265500533145739806560159820131199389298511802672081212027730669019581866570253479355841556469232244951856982626231094766802763770180645047945574201014145370326354460278193231789176664645465432995204100753992044036850767798971256006517902701216816634047437543083386926863820919298319151451854855243997071442690393036375657579671814766279279004513732728848026119398948013273556651962828638913538729296796509882312529014927335732036787861652429597692928526622026816839231072000581827769002106100301575876700482624508539090081536004057012700835714483421140071665125089524406850231559614840633935230627459389481340257357505219886638018230362815058148668566390076075535367118047843601436575554591829609688894666322380502119213201930448545741805419962781884212796896534786057664186057366306053153898582269313822703714693052416695239090059136647255844515562922072522941991255322227681069938870553668150565561485419201950617463819987965135335375059361179282367598953185125391226433869383204231061155261937403996957292898295458016207861182749840688968460245704503752720032026649243215483709731054382799247213338909500025890668821443295427964810133943124377961297001027075764768677362207893561947425716590509096856674745579499484866115520402259729849045563805895882398730210215546999495165313733954726349774972295729961843470112075203048342813052130086451947644664863385355047040587717285984635564804759200620610080919723131709211385437789350333258411681922052391737679639562907737770561765406189976071105272255406694494348331485730669170042981785023154692706512967755214033298116754029629084730316535795457109153110310470392417945715698327434871311816522633770397925188379126534010141329355741201176223508292654759454665856223395660790217108265848201657025912496947576523980164316561015132586733611220089900578343373542296960428481855582484797744783911845785021531363552206351110929288978267448067807525806510272587417897014593282639178119629184423433143400733259313822496553349306631073575956557908591939925526073294815062672434591545090543973474859771600705239594675798007758275291230988837929750456029303604405053063304417723692117042676473226781530481555993263181895724681116942096920513090836972679241848381601815528106079557427787098145152188839623387654125421960708165581134085688494498860922927596433961868161326998210707065668066847480228012913739085623622681360297724552538304978470142372347860334219027470952007707121994189650889626596310971270477957137784729778133245159153827293561063846039314026583263654309385396297189704281437831930072042952210209953486716969899347714150198705912674887068208854324516906891616934295295754787487108151063858933378802681526671478026470070481887141996736097155599552016895262205027556750579983251265719232840038033765251915192639114438410415798892012502716652543648836617544092059467844889615709555566267262488146967748462455582925397436256633268578714180352612232869667520350365846533471896587770496972608266174218234333479758222493882578283294067628738900571113912149724577856734928290034068836078142162546492471145899133059844588009704255839607470558288865556399059543177411576960103146129011398772947111504493985308700766819694511687551484587097736771550778239037047239307725515876117897122822378551280572475819250536671353357718151841971406525835886122971714470486307005656780771018255816745377829421233377829726994071173890559403527183517697986745123165887023035420962896126086759894712966455007842257420020277717246184951466860168180348005682849684596086067003363770701905268505879772833978031080424961273748858448775042908124436516125128322265897064475588174951651363919919188963013351774166253124747764190433014840414462643841632835265003191721880377647645441778988829821950597923655087899498083234270794937901964307705646727137349688613559512851212510458604471981631204312164196373832916695427446138313406877380141829905145801746441060430031923149285966854693726598813912215822930528218647397794402229348959115491107935898421579043956038684569096365965611499005783400500043642478927737908867762376141038969056162239034753605414954961870544376571469501677811356439895819898503788096673469912122790126834452590479002678901070930791889327464535170587768743112505762906466162231557940200671002030872250777136442621892704209501345494738705827163658425282631674396007901531071620609334878463343594800682764256651526899788870361717816868897198486875850904309925711940086445569454966579225567261000815423617643418751121003236003013447017453828701139198213008392653936154149088628531822753558867010132094258239534389438542296929709190848135355854693023716177870504522593851122174053920313644953057327010687449193330322782280555131688117466932435716914952386548924314998897767775452516874383337466568561456733349904060321011589269730689262574538213525719004697088132305917646227980928519430233257047263642096681507355423957629179056666003222059342726189760275507071024065061980576128846999155170712444275378372336525714061691513117813730938921838641703538602817457000382994517299308059867936940700505018839593384591190109994129087587524877539993518888910971092345686759461410594903195697653662389875612420317398072479100259457481556701490975599292526598950744210823964383538592623406106590709262247165315305296779081282430045931227379976423429209960743386567399175727326176998830025174875376116389417689026188993277012230511509082861553554803536380266858146421997771518604610599375255592155403052480851279323067573065397856409616739315935260134971683242863592238228142542484166327284699463950968429043478486928179918782570848535996467887064631381177837259363557832500258609254993329043517227174206267742135229501347462845578563986214369572989054653246361013079464106805836183352678875608885337185119797351412237698593288080121674729723062576362220269602044417561396065184239078911297044712540757754781501959826158040708203416893970830106226728675701532250697819394861744845389596740459161299271248178781121718032125385562957522437475051720241868605123254663071364810029258008096298676050078082230652246747146050147736350163019990164139114858485605965752923017599572904888953356396919716678543013062044783268193711780467078627073197946460545394963584467305415987536980277010170037905088587154823747916689287440549151089992941088077300583968729815258967190340436929810367215473097297710067482180892864706363166994666445846301592470831318001567277933834415037252350366108408898877584841525152272212775540202646991039468122527912601050871491600506209576888136440614002428106541570797871758945935013449746718528971778963989141255963711955887778916697594246199756872956421328294366781693316416175266887584166634563091727868654649355107985845321594518172220195942929612712980205964054639595596692897385443687217541995966018198591871358276970974516912140172041196110626519362475698812803127165928162667056920705706635138600979082463852039976916109987341621030190942598468325003726442719562642910165554579530490439707681697890185671107668195860595839178223154582592769818111791116946291965415019749798974727328706878044345500059331357990460434123996443261155244994498426816539646761520950850080448002202075482920833116247990138574665074936661200601081736430260776124491072468568705777125156075822133461425359822694280619130287278790321948950468361686682368574978769078121362578647548172866235287904004225091100465202023587549447108170491692307061724979470748685874639541823233865204923793455051086405174192765100091212999255818669376318094614773870185624821078258189358025760732611974790458421380124579821923284317579931203729938506523192589158396605074109771488546160709617968932626983263900145423121610155778721789008109190651354166559661805361664867891725609605735527205182338843016231850654897120442131561727681340852002340032593615443124394671454139653106778474311027842352473840857923724532128539021119011277959200297334623792313761234181969161539141479038306178061637408594364372023727749812258735802149837526100512368575629799603815040158196484805265171982962643244606142341757117179211158698229672695123271385855045408446752005986742842275203371544788873999176113042579042901517373957084172320838147338439721192310413347277614394122369991875898448489690874427174399018728539072142518195935826290345206143524591809236860675587983183992819050100539294793241434481046318284586758756210034331837501602445616315490020284350766234067412082274844058888854161816821401222089451775261247045848767695128322120242094454273508942897214198599620761757439873298092109322913493963186759755174815404197187038429724657160053914106510747322062868894567725005591206533844542380206807661740423295712552501446665486846812316224834294743466436978317905703169294828607336954346356488566967403214420708069433368743878036578745590858716186470745967436511001870890776410239982372390050038628459214493112140325125185766856799757819173637419858756258933924833314361998759562949183436739774188888300725850909068102831484992932371506775397728294145099622127747900146608301757588598216580423953124474471913561047079698001995899904786395196142865423616256689842258349925239826459832418561351647487707075630697298282333039866733083155059342534408379392005081698699699619808133367099824094213577275502157508724202349155899934048681022111772991162889533582604153994966689565860236034503570321023406275223967898284657922045468201979380676310206464118621465463194089303943682319598477010082953645859095396215874401947182823973252873722756087997220214018911063131210285039234724443926563998338230067102109886035452307783163399412966703162271478807918514292589077301194285134366261615429618178465152118608982038421686027300740076711846764076716279614833932551640816609851581210668869576850426818759505877327430804322974849511810173106665857351846913499525174912116273758216816103447245944466274953662129690659537903167129946775486908651407195516907667776386153362794122520798871202308303518756999884240488111176629287758965479483352469529432147927307343953554198379155749293401525778139069235153455119422416181869835110388166214007447303973807287954178754433342287037232594219162859517988877438889468075578519881256920918280483045848453702920312850354850434294211492699622119923203102397659930227876148623265176391026955601207980668950924267764271529259517960592073714447344741903252395308577733035427818832002039409371995387281001634262986043653759700490811612172439259820135170710733653365198053603092615073406732418400262233721561166926518337034413192743911203038416151201010471210831081234805267331722329181841311182686733220136138264289698627829179079449609910069914174247313462813446019238220913233348528092408054567568657621917300963541733100962598084851122529762901918036872246527149474973790347503103889288682121884747789511442476709259923851064566750336887546827492819011088339080046200854128579576820812844391412205509292519515590119971453057799063543149296407780540877689552233174318043467738828679802784160542909786494551516395866525734120913180086714264055545353624912666488623371619533036609607968888713322579742667205949753799383280067257871957370660598307473481812094071501950991920742902742086910432356361532805638462671480087151213198420468416722981198135648239292668466163035741433499469941810170590378721509359793814959036719871572582726086648668593741281854679218771820151869425256566217439154511324567890271521931569493250052527874725161107393813223336629441938313918160654874709108219568111858558578803714581218164920276182749503211542570166526746573851355812667209568371878895075346664544270895447840623247541568779187435361251078422532204840128834922121755670879147411944051814613959510063710135008107059241894146771010311455604932767073202252102202390475736199897673324422181527363997922209713287436167380690240868583183837224265386885705477368184870531956097323832801745738619463340601682628346740879544532897719239365682216706168742402656599736704178057904238645590670083603335584985581008928355365366441357399372867553847852872037818186352841516074148622611783431764245996275367348210753214049092115742351863380505541451415127985896431978565664877373801075240785106215251926215817341115651626757567880067425803410194002269520744171631801927869036950553628585844900154577476982757750856547989107483381503049327046566831868113387112592164027651706462355487292686793904912808707057981449496380189960167338498253306630639001812188307044847996501933039443358915400466326820371585227151399533073460782930029471367159522615870761698770996803369834048864536857568088344430370066960112793332066879482710047329170088627542239840877988236649350595923267061438119961228796631326770411104620659975527484113067047199503939167235073455380967586715868584832439832050536292978264385205508795990849707212064618127581114903978743791766152124938701025797522797996393712659961112661528239134764931910699099102880808023907875122943354930785341423352102956261488318714224834949600053187640396486699472429906670448519023874880699521019723744725867667500608582725580053080333481087447000305353673052146737533556386293457418797296180732639430756800362299181102738852257505440626300098301114013516969184907499890534815431844858732557672204414138956915185358390043927429171827423660975617254325144543317442152610867893721723472563023891021804626535440658112079333585320414435210451420553280747263583226640905415998128570896865998105458570116302256053782057665936178941270811537844383064482744681861089801383162483273283342147134040908794953314971205760994651216332925805030290634911479512590791196983901503586985679374400651374921672440773533063195864709204177550456756904233910232000503458639059583626038176937385819246006252277421179579403771446163886453179106776880770034860239217268986996563696254264891562682773875152850585307069053357291618277177370738533297657241247671855891342246274061902228219214480909643573190319842865918698137672494082161149463732664888696118714858569177294137997437953722342990286452126708148310272080994428048953065794324487232601242284517543705907239162822687283350368628781636936817789973412596690814446187001463069627385227765173169845257101024798235218807346879227315032876279093690530465061511241872129513752029436777652112759029041325448542565899366297333805299262234256845129082290595923474435062128575514129560506268577117933453324542963634791602550439689721683453608117140885035323182415418885511385581038736224037782347972869210261884707838070538084261463171092442871173926903414309173804643819790633584585258430985216293700011446894838739009986631977946808932915799931031797478181302757299882183969953770858371542401362982375674851320978786551070951336237685468597982424052302438936953142716218001986816593284641067670468112741674186222504199270258170927656986493141407541903645568687018602092499052032340167547628406444731718844703899696826799722308904564458097041032440465286537896476877720892588386191927439235199473722054853541570390509626909749213064844358806998417556528446960292777299780462004729394000784294063987070525421989954706702922819423678911884120243948720944063175224528222752726384649396399832221428365552806247061439006896539014191074478038224551148830354236314820966846060065464967393486715221117594471861681373452528213405585584381431527409772250825666419291930739198637726297148318388237939377772694507794970569641132423158688247915039646486289873300558301783925398562157383948492230170515324684676986872754692195775810783288044026729793555525256961791922629501255955900176264273877456958113250769494961331181923128200487774846053471234177578629318233400858409226458098569541691709270433172589226164564522977205996492221235880890451930603586123841971359091812795101662127398701864838191651860182287474378482613811909841531982416020814338739317320285375801407380586228616139120845366893922074045108509419432080423078829219178925192553483368214624785599540384595749567426178453823951273915755937278260610966644709344241177017463989571571551438431637296676452013368653573382183462183270829723823204685459457285724322746797436433121926718436946580032556305817282845526081849148547023217426874272962772486935913722832383051986013526954300532924999832018159768052639759638109529518485121420221548273787050959352353099468052523365045099464231365883198337948504766682828827630785950234484657236618631772957315152037224461439739728511862479932571971349745488950228916827255584847297473679204224812155867671462022221323868973243325783582576182920136033716494258225164317228860099714159307411842964298779132463753650373526125314360934107876241988437791486433044832111030696756102958766386539334909741273543057375440525903248334181468050134145289685696331133205391210197022577829549552200625752921353628612741555273635647512410659873634139370950649641483304952969905694565294857103360532468899040902226739971222100635043857626868633649073882504007923916442561283319808994546626880846748711833094134075531930220875016199792482756734724934269840951580015520410435847159178575389931246008083378902587366852100045070453461448982276575203786007328879039605368273803869398956448651014788763284590593137209789333147418118179789958437517231024708385371010800224257078354363383817557495685266855909981029325567961012913098740922720677828411708697335088056872079768616645126069375195722454967597030467017533637340340892250353271279433993939479168191873013009263095527984473471124170374306648508050848521240840951685338477649673295059367439699205245735661033560040199594415563996616047571846846713258105247174795444684382764880448589523820450677386878634646824472778802296207487338048489847181432933617419179753654800432913286150769586127646094379957385920470724189841804867118883476495248316279452714078424812191366733948288016175662872954232749928180504364840634427642955239434855409584669654860273689941579313502090952774906436810034698953432992133669186445848811533356996865989356454524173243872890520511275786121561889451359402468966055318761519461451974022634928317152504245145592246641040760871640765616330323214090337200607688057614216121940547141380857004822639908200133503769098757619393043613212532692189430442530621658677346016151542814349271081004245292595218356172732457064354329526304609774013783615602115181113705539778586661157218116992708508904266437942620864155664947860411730299988767610188904158092708259117408189288156688174356218139770974993509979274624162607184539342898276499181412612146219036637735877973125831458554408570420946770458089008578693479660998769709776147225697936762977796999565488961994200374355364753732691052246662425012730435236992909847110007944512119910504589149099483131448382412088488931048349545200087722605017864803085564020777436735221616974039196016169489495884395454455324872127240650799890593111668831231747590284385634997899213649347177107145305721439436195197637756612846360169857755517238231518521381455190788763093870547105567219975604708509986752634082512997792056006340552994892339521101280395891433103625397364625670604746317981654950503306615376087645119285720509208581043429884861703171296403828393133508192392110274422080745088272119554336408074704832902618414690081669665572926328604031487983071216041425846412049716165534220314440438295214039532239337451885049763656448575335454451065947646386392880085821079794097576112313698731687837021205520352328957303412915496302647492072956849489723101835804090396156973829846316299019874569264535328176127311038621018086038089073587255583929161633104759928865091180610184445836178129620731951835526054360361578556226309415162610378234566173555497785578494472717242564244141692431498903056182435524550130423285595567784273206248282072971055285919472714667214798936314488111764815693463744334668700229178553701112866205673559268180684917402391037547726757153020800097398592869852171646464148260265555045440034427144928401223757995726349045919349368927720219585194315139433974226602622818127117096530947020386946458554439550304255436741580270580424250560206901201329495467842728183016466544796465193068439306877988060304672230721037218528841485992194508742310693352831943682724387726134599942377864479744361686611389739612294806470515085382479137408597936373529749766112656267324346993011214628702975639859840055490209835535832412086931107125500692576721700169266867022871309175889894529891902112551503669730397253420723659022889717933383019783733040954436101553988125487057011520351889556493841994928070343280125055237886265602184865982566116525033381656981214579067176191194636915046897418232209793026275385356609204343312349222479101762156888755657878242744516938795237830172744595794721777537309008383618247469220272239888656659086697230368312016351988745432346622443595770050674302551823573980935375491184084456026394403985565776066399564834730964374425320783621702753328888069653784255102781997600903935543026991453978460303241608570143896112764493825663960662447742966860548146512146168868664170699332998306750826693494593982720639736158814718706620960877087025100918409120618317344842632227958532093282737715079903551522449971219130447945334638336705427821854028176554977849808391539102948992888511627934764970465156782718312053388794143548956584727994990635850650397666312975355360394449849324833200496130544086179753484412756794905392701923546684357346821688814315110258666240292168106823057523036662616363900170374788230693168337576913518177657701954456761557520183396799200543690974111482256756456612667169622591468790078664010330246520371563605432347148568442654139419837696868778589197833686494883217352168626289158680124323343505713970106598740466369174507494616654236759190761019739747710340616560220501057135878435728193152067231148717646803401231004299404230900658360720891459509038281995812961091225026075473859102636919509169336900121047387412859543246613750143954994014718550301378990123629123283932542154663357004970562205981249021025090401185302978796419765592214474433716960236622446554490468370604666481252013966035153012287728121358681951376019194367039756786019364228409343149220412959364094447868239478163738152931718616045690800858609722643847179271719286785641378898927959510874258400712206553827903018339721958145383041916719683519834763569884750140004445950684180865496808161248269095285130340653865336669125325976056306260191776001764529506626353950855899744252858426229828488940079324889254487353903761198198524754894843470817108561558354156695581993070452961343056693837023726598345991064435165039674189484538854743022712782213852910038172658050219934351221561656430933698298713189281944218759241194117241569119300685600597497212279527383919132528295862262660652404181406016475722180193626308158896506145412769250328679128011596043215307883110195929602879914618025230665814538868590778988790746638938872729119917210307244931088334773440343580349588027597110330169863055812164339565196774477856600969302714526873288858147334999580082281927359771527900823572312405296460203868436114603563347283611539709438652102450107888224154954490459122875882474335708248293676456433352807244180288672229294449622808819549369073039612449626749717877932460118064985642846274183163248478544637773248465836045168614970529065249382388299565472231247066963699916825041685051932567225275733659570397252077515815970107605760772616510224049601654421869812802783644454830909862168215666258352985589930525111471689313208744799062253818582289796657489423766173523442212447856537875035138041704553047084234451482348732734036561831924431267494569158236091660147228341565742835828990712978193974934629012171931747151914520307046328540171098459025348216663986246369055190959083666591422459645079378485001227905314169511044410716127176504368126141934244653476566208235503220823950993439446580351220115612443928715544737968215293792164865230076953370178251725392446050402954835775842138751025366631391102230432062916130294538117414230989128778041942673349915882014482525260699345953288769771012212367166844399425482387705180524255021659882494558978421118337653745269537001614716158324477161340030041076227545806249011265831796788693851774895475301020208562120336918103043673742844774560454534140167815570299184125253717548916914111146173303444091405000080390874278545220768278714162929216139039930102221642324362408431107139056321479344440803264022432118943455715221190422248056962068480444619746160316270417489753586411661263218755534972300216910058877492771904651318909961800428350906098879471248747050254783269093415819635428119832192289365797875316872038517274580954381434466716033060285789548658193720732478339571843499314826401057401484781432836067915275995916279808060759567239683523638325955806664101924318310149798334854333362708174796064892920259210313739724823711960308565705347879183314093575248051056268671272036453203497576831741569072274770476890621342338815227682775676305793338787093508379626464844457598223461980798675785418050760041886338384453836395602217356688427133316839314550696772304057851925216240940234536655854090547292175491097272275877242425529735182550949108169076590333675562615452260857077905024930418724838206570823429252274413892854970459508335292196578445991861039310978723933039704103605709583228996660881398953719191229850111915402098377097320459768762559416539982748738846817447539934477790455263840004178656049512814997010132923694555914044221257918568373072873499294279589567740350899005677532515512147361388435506834678390003736891324163175511823763203917541762178768011447644985023621973390567789052866227383614806248189758796787222859697351605322427096312910863703439491042042190389754982003148890407492531404053179677693540894699270055592172443764417951746052822684629566579715535235548219248410401510132204494324004813201561098199584522605387515811749653057783677789866536439082106692932571287208560778717836776621232266460076053180305763526909565506800970710582125485356898469310421903051356412004296276146786492911676237282584593326118924931971164689859637544273180014440352725042227996380334345504676572918731145865319611514802411037887350895341429364807403335508314310024936125597791004304230903800531978585501471054421438068686116625200283200961531870248795969107031957430257469640904352128965259947122042876418237392548130599951085438705801276826498108164659051054532157407875112488633661192186121716728068264650342063573480020966213533210446858095697104028071464189389245564678057616017272125612648250675588367787019651615055016160988115064498176643832926569644185774449557722306868152312344283796567842772186856628515832530475935375416001480736532123998645047615040922987321465096146287255114652793253053757139331016439366800361231765201498892354356221378233615171401710381026581520677600895007186894388151776294022432112457224635507885927130644693049631538809917845317611538500601146514855703231357961681729268325860583131822924410785124476564188775507015686056390809006046761175130038695075431742779593042297216554392090676265726413233553488802490321461095541253430334822674766685784006766087065021916879791482132215094832670684887805780268915735179952396680068418693401722536885234885700013826783275040256924303006483495825552770394300042498840076571183420256859805473986044853698388624894868729045003451021965934749319281972629638378824300411260044133818610387915069117828777113996063532342543239713879756027334816249267080205353714410645653140864512769158166404904219868832183548829686681792527907764069589385066868086763543696448602710912961713815256877745444697113532736477225259374835099375321550908513078117154310856396539636703837927526620835185839464796615691942262662210495928532482898068301534182456232707726517243932629584607204787668424057955688952576594196273799032013146056329888962294737754279002687496217715914599498382185057283316900437564395276492078231466640177842259230747218384939174180231561448662785973729661685008442467793108915811449321834550838736250033160938394619539595946665622804806954803291719558207552566376369573583259516790414091747486303837198935994127074486614148073899532198755372431488537620557091143119835649503485934210362595021067667795996089635916522793225924496985149682864835501050819914676804495882220805824652461167149105548005726002513465748764739994545773441019871645253548873563364373669358311960520217788323572564877235906256052588265397164691925087340188654444374468484319362406525949353698698823557522379314315401350736741470429581582284352320294891627769320379773521578158015861633001320905091638164996676247438743237924880052903630835870642562917195937197212719109667141336173224712852957894297090851743330417986462692708824106918152794147819908416959431255903404541876337958492923378661269446908929471935462036682895090270327051493671206023899668571669418363981286121795645398844605478751206247316929277234782409319516792396523211560723609306965201899657163519457743148953850210897266061082922342951107535264396785891593599752562715094019774138489088791581911305897183192959332737244592865645731893896648859210208204454153653721153823528999974888500354087577287918853882617633699720023825459835638911150862397664956080732024483986402949178007857888480236960484651631772535718609021428797279900533187572781350051950436125614111568136182113007593460707681159389958691385753233355655072731778134626033337813883724355013819564981238970995661783069926030995732673566874331064376544409901103835941899502773312452703307911973879917530079870479813109705120507094915453871940382651241708747712835851125316234690709733167039146087411918459710127257318932699447850451991666214468778887910655565311732755992320015053960202575926856898039406520961661581813975777654805444521829693901412868324706678029053146519365230011020489869704366544396231484901428395881336735108445262641786086497947936599459561678077175202966403303446931670238153212184098445718129004584619792484959796850733077321940801989910400053953226935260740622117831731316921480394893282697237459911402680615276886890986302244078273377381061487595680328021155675233576274586984237074191973219187963746849661065730911461859104017517387011254070066045717079983687862303789031892294924118847315605672584714467728847057102048518613484913513632360565045529118711064900508170611358280025697994605548632790215624288063135735796225602738391357978745046988755394316133651338835295147234242018652597931780050421605867828895442795253219281287099234800472962931968192419410581344108150015005713484478028579697404896965201015032648788307767301724997897629923168019656543318161350718148551641404889062129341576484178141234778050768642614933370339883334989646087425454212864019398772372329784470932453564501614038917889097219442246252252920302842089361901826495692961848323488732750971376643500090359075593706781642333765220005287925831568039617627256186407534465582989467568228462696209657112114065053452443553180520754863451822156978132801837417662022235409000370911316099428909288147158778044042944656545587420840533697327272770835708127726265942092851727164325027166938268873003038056297846791380192167199506583183735551244814451068397506823199180152417650379179153048190578477712812822693053510986849162950873480312895181181505766818423494401267188792136506973339795702461042080066988280968200877564513536893663942595346740197372065993240689149921267514412424705949757011278104787993821974417148478096555758423833202970982034591159503232034752232887418534620828448570239832317675566336499018382501456715613550063694914777150094583077234887341363719479800138800389058899636810962823533303315461280405896713478068427662707898167481608297799171140873277676971897186492965639278781953579939896761033223605046259954136161361809950584601487383846566289119962039446599115515499679703205368664639153359388050793477849000846833893910733048866173063065667793400182728303059295117146953057296230737824318609887438798681577913513461845724697527131733178941669179825361830433066342903886774357759028975708859291256240520381214434125895085359313651087313460521109255351311583666640175019788165814138924679897800536225528437331020308542027194045765075822526336087135344204286119804354731268047141605570677054527573173877436947104547147443159308354033260893718681449486812671702569682836013059858973492040517292439616053967314360226551567525943225802650384611834389105234458907508394280557504876890860485097299217662610685155001964042676931434654888836308103807367102168686640548722595373890987087811523859429972879630930119342111725484304901208683534161191466998869996619085312716532304251025975521666583628930626548394715351246105860400460279164941241033689520123345022658943291711455560121729491145548810232454898919555720094872342212636244173405012431685315812824113529014854931624601806724393643253271441252197073063398224797608816657086091953966657930361814234400947863578035172302841713374289908764841951472835321409739265304411494375662254767401922962513254903278057286402791959254767491887730391618272051271637087080562570444331951858507738724146594655946423050743872078119508277934457813396689521648352493496332879358566091188483781167702144874014784881790558997551016905413487858049611443919872205968518355518240322159884088600416818407565191443231977794645033924459547768767435677852461893677218171842961277651371397235950884802191113620033808197677607401932082883829088303762854906703004843128043257015497524691079294935821267462791312230706126624821087962955569174252473384825858807017418806634691224139043721043481853222966327582736445594636540167628572148736999925812949100917558774750256815504139637136037392839725626492262655123203482178102964580211022745620429584039994157428717672730259609902104825305553128482567826875535748043133379924394229843485438503358021074138180972169324243750818230864691999923548266627168035440037201972585322414540754724764049793454442334524746920425031835748108347133369987992160638338285365587091578744243121897925361760084343740499677248085118203702986711065080556827900333830169315262542516732981342852420541300255249151818173769703625850058923859874942094342822483588009440806381831682940117108625404324527298748125697718808404243909661953683181389334263377896438836770250585284446516649123301664469975752289812254707152793993761701099504681289608894539724028638857725932442023246888740372225937864150006521262239333376969544090488820863461041413847598322811260563336868174516309443881283910957297792586325246554174130897888133385289004121676684534332226016043140130229305965776595247039344899420136935742905950949624511453316387180643427607910568919184794968100759054035828656521331194907019906895636204888562531770481255107929459460156945965192214433647815945674433188047865393932977864338475250920792008784036448870861286450791728680895802870636378560308492901820662488233690361093576314879833938240498798389683303755867033605474340269003707592958882155033211785743163584378709673271577390912977687439591768127229278186532665264581427137822642127542394731987911325120583918506904106350856515802002359430376769272238610024728089100123992870473269619354700597730499788777542838567303182097671060087661866071596578030735264771627389039775873068055401585608905915587261527738127261323073588444616065039802194633372571354737097122132639019404188846944162764081084627903203967515588110036715632179546698677798824364717884318502230155893623573482371909178474829536960232587155053779182166827334308857165796841506517076494768180562623068403503210192977821231505225889638592547836220361512613732029466230895846676279527477516488480086271000235716745356919909954935859197553105288412867021601471204010092257760329712587782856071318695642282389962905221472150922805491034137509926594326454604321267220016363384341473898880826984049717030939721884769000116102128090535937992409302703695962672385406123327320660020764259473972696979445936143426540471477180491270016799526716674832365794487236803227952030493557786459794913601576920919225238759692143104542388013777499632612627666605824998933382158192577924275167486167166169788009695725773546225092155567558337553759745439475302086937026045353910798179845258676057405282965150605750163950882440354207264000152692165371798804968974354112381758889139602497012729448686270477009450570102543274368754720404454688619437596344092967429702826070259381330238019822134520086769748856762180479723694571182154578417822098704161296015137150082603580023569855502160970751139597295304497664783627520928677118189629007474525540364487765210071184611584980532337160892235976319900463896000381491755707907425097968741596303815747823739081667380476735117825490720525876093791373257048038167370280084298553316524915658167982775752558227130436874415720638488993912215424692803077023871736196022965510487001814759291438857015911045615148694453474046120765619224344735509680663665723429362717539036926328370385668788472838363988999101240013677076902154054906598404365316842851437227835515100896047822545220254197985290009190798294663034729965325936511208020526360913860773231961503374227336753601696885985418114448943610493399225783538706393531832957608606659124809420977360176085095385002453977579257569252605704542976736240280717449566531090815792499342229212776262781700363477764420136131999969163742919732786189287523972714254815386130432188469445038903507091155063022777128191251395142326106693651682249296800023678255603314231650278306866746305895074281541395353145455575128433252513854339195106378658983349219945093672833779972507879339457164317086787023658461286264812089558093673735338885411213168315898845609811470600359441655171990531102621877926336403827006689383533464885676856852248925365122076829641618758818421863424278438685584175845047025595922349897225147940859548842096694942212374483271726184203804755954218395883296077356545121177621876398426741090813701429045546727440507175701485858127743172149656505975891697557714833511922018619074028608751357600003247661707364671159782007198991577214769924819146741195989673907787609705221991993325841510047589729213964711666562072891459522423191389886080898826944108436995638388802004500445326987927756723828041456026092080960011557299876621795739423455126636967612217205121569545403828675207175305054378779503477033373670786622098356619442012973862231629370359874021604838988900375691915707755750435514288856261215600052752464514160686988461904648582024702978244237732044626254576451636752422035599683243239535084875016648482790799062376422890335323421167746208248112085469793635984983901723147144414740101608340276756912264284696347101690297257595299282614341269538254796591987283052692128240034711517938390846342544350796005227144498856419868312115330153651808517302940709583290123205174519267580160598542930365507287210899343898322827468168904675682315828974103825747497331877788410771685773915722382653985084846074810360563069279986884168813623540061419958701034593078053241860747792583143981542045151952291488302110743178081826395263028949329311503569395646012445877161896526172265547929703035349493117989304217227285273590661972490432337903543813582127011968669484681796355348906154410145568885333695809246086103794617923351563369644515117276727422034487838564755587823084946498878721622739399193196605142152768725609911658938449703279350345769343619094821959498996539065533404165418779023355835786393704536319026780092822457897711219912839812917093911435379413315296869872358767011237866241558949988520561655953241601668119190197198897384347229452727070283289042134546145293543209955627251531736878746015061557546813403438225487104946223803746677284307176121940618812614175249187970271646359116750348826857904713394592207750623877080011217232952945016370663946934662470942815955365711036934595941267869080308662597961614519563317619256849772807910650502355729366435317335763899898848540515234890371484743010449649619964970786332440541715600353463927086142428526125477701700469014914553010372366068321402531501905642405200071262430401189298581643649331939189368360434915409375433445497903529087711178804807818978628013864158124182488386194433655518724802329391368918714288882825531525849335847316884792672980594432717883682035800625150635696395303931016653756808015608763338464386380276666057570215847027028011444560580301257089118868616471703543442215138737569131322858789185363877533676185225626506520464465054596004579214438928921979452936302869606248870765664580352666684623846095121446704955091521209295038246117326523626480181899999197513897829732749893317509100764315346109645561071421519595465500082341065208626442768681661242926419429655605735643992936259440930189343051344058422463210469189919162286840083220319453298744976136978709598591273776429494080568521027645388846832278024053388785572262006077949684555496595770113482034918744624628895536460678333513283820310209124116196826896552570266146811534582477530829125084728866195483930251245348960861416590357347565910511426980288491309895221269385057095984955636580276080968708291521750519644930924023826204446271402116435200456364318060595616449688167391532948083811523202451946239828709630461975069638154157652483403090443977142393139381581907748737311914481742989766025604722223691595203818787458364067594938702192576290306388144626520619853163360585825299524844766054924622412344513386235534043169945192392261106084170597920785719532016788786630091101813739667415236688092568396563441144029066281769667339003583657095984315873439511365031774805948748868602132960395608213853124677244271694101531651081678071500044240172251108455015309215960447128278603153164606927851175070206443183421627579422956302561878587372933681006821934312926213611564060852047225823457037211731832060580805328871647026931673130429320329168230381204988777612685243250264883680182593291900710171505771145482899311482855082655398320595652678564388597975283555722291953441636585852629640646597560717658514048754763371444560137673426756621306585372040467652071622113792795300258343206869827489113944980861092799740808319832777153381496748588814938100963154957806046104221106995639054105616973654897704769082851938241074250422297081465792218448099519570529727321405289712542510381104775057778032091905674875735822770182396361438317808374156784600260218324959514549542127387942060660542053694296149134135921051851328351881428209051176076147555212000577878219036172993632164261624156605216638678752329565235669597756665039510172606880955888672432406324840575538387261538200348717395825688101124555407862541434894799647729048203209993846522303326171547124465555416885516936963087527087853861748895965682541250755747842030316910528402868462217482707644799511844438453655611856822665611729108420550955405619639762300457733848299438763612887340865185883638807634168250248249911892791131136146223054988082755535567493732715372991042059884447946581768905075199984357083456224895777468283571481211101723528350945293472413893794936410362922619155978836334095638189782706028889621352426370483039046644599557441705030093676833880705980519409802602472554084028131313737270028677991564477417823467558780120650851080239559348857725097840996464616093642811798366870585667850389359469653552408239682529268209525214995916375416252644715664040451438981637243569269648854360386562701547391760396911756429306315159999695992201574193544843415294471379822571652709308645998583299114214843432057476303938877596436726835669900062710468741478586839545574357787466268106014212974031732178005966122153486553138029645736427298890106870821408677812597677681532675421362487716586111793810439154101884848435776172754945039591601704000897643714034111467637621519194328021854300390392487461122695540629584374203185486565533783313349941885675284908986448994291486249357055912474089331020039459153251866775188137501798500768899464332235371287580242949476331221920584378263055787421142508390245379128438566171630911129155760618141918885714657811154040881621136585622889652225538099588506195852664324314079078574033163613699559900206825462373368882191121687920442116482032639504127384476687421463823636424832445224276299817441030878573947291201347216735847600276741852112906711345769357659848704449141568529614527206491365425366375639283798188140890645519444146606653948815026479957032549540170601843876635453441647477171439747335242499661207587522235395862946356385105293007232003169036102084500140323454589265679846778553918902273817185453780752890756797444371389272338558733932835438744926922038583203487044656706244187696923340284327394018923487973204954305969668680062709077851468844280863571820079070417642831499539686001856977381022463127735079698075180726143997581635236311970328378743340880033891842269242992473651930304358609136345679389537408673028022789968857343965635432747232276154599485458689218590506180063234818925728949950962229707931140955229981733861776049250101685454881225242688059347755653253714116857283875800795598508468011030167425880614014468098931996335587438422882849278137330348381686727160694534422480496866054519365298993186811467798053198829912495531163622393921921488868345969716749988596421493958585419381648090630900125625887570824919627292437094389967606959645483852647158812042769106596098084667793340459155058138798556062949387150989563268144326417530558742328167926506649026518044935241344195943571467151630093928806402260632437764986599980065018890239690957638037748747888351281147686661763491025148463668365909542797935444985079257855700210457908864500626426828387008506341475695177908660371871030203447052975763492597644831147585375989979243225028284582875984789846311708172834019163568685792998990563976545915440932353272061594798317824546985819072574824941109925310622836624567731260992339797886076742662313186298141755103846649879781575793841479712847987190856614041472488658376078682105126571345593042103171167488968985806081313531467841216555323601670336488549162952945422023963787698957393933747881370562558716864068340043813453518279235236188081423104050318577172606851913588387091520130239023348052945622332884926037616131422046377709028489143052605405452607371312329410713467972295780028855604351012575193200241222481899875015442800610309994513624992695615428994148164957179872429744992762169461111780312323983938068704286224169348284922779587183531733434877602384712652496130921050928614571183664581661391394192213397910810836284134157796680241361242414332339925550022950110212971764485455849437180969732425284355804186176862240366120824635278234256224319303251011693422501707289197258465906081993152213213123077715547952391489048634315132627926221953287637859697191085348207726566640260956717576223167450022960035627435358264354117371703277492114219236763119571890689510236285247819123829085333823282792585071798125644435400786623124983917893167214749662132884369145996182980620243802706859945330566113725045117681286967586837482515754196290267813806224236978605599548855541796227305230725098293012898466132868772566465740875817771904377484656935703344556898486989197985084117530156440976103515423705430101756643315268519638154435413980444688198644193595660716886581169820864621588135813418867323878170226816455140430178268559446384143805998108661553565900957737279488906236359738459384292905510881028942117583339032109179880958466632122325813582620965829704840118810477795777945386861646754957054531306740431304283270883120929005116796250584630651302046985588368011310904497814748884240326675839718171239460600560542155618534501388440796006071988842724589783618416622358597696597229433299775354208108186735341613823181298712544607267380564244493824691712890200840148798527707864790791454276207855121787724052923355108072773304507886325519076678875631949985499835484438743184421750181251906388600993299958112731690118422203735824611478787042123257774606781493621141995757472180157167668209133146860481229263688420322172173218183235063419888534583501176328758190164026741778536620584249198438767753775850166035203765136308962685833170003649595678495831621751481168990528902105133350630220152591114579334661174548027825708656627155232638286200625473654300225805178366339013897859929672183417071248168793012343436770796201430397868881149136360072857739312820601181364135117271733366302928954923980329151658750649275631730692437357553543275704332506780785736018999206949824193596055018055827063646911560524506117797621167132835033654292199686424109702513274261420706632753118870974535107211013703609011585096901069493758387864686964742991906352390854689697058733496034817539595538517004537054778213353782636844048781135147759246036640835760419787349724599837951092237504067540554052361817667707144593370624125811451216717366366322206646720092539752152240018044233511160555656201888271756170371217356405075003380772328131211354920526181200132378661833271832525237412219532511373690055884074742704128139650139303614132057439720079562666024238285071243331985044153169777521079032323764051823437736405379208139722599638331686426455877663339223321567962053577816083093920736389226134630356028801796391857520589203885616134970829062068178035883427320404868914017080343586638856622068331193862664377719397740916758193290898840783927763563358271746829604783690757181084374490431912265629147767995293786102432986589815024749605413270352738409868540334609690645375935798343427051793451711197368537173967274783709580275495874467593186740373053144058339657555973930875562460207630043523790446502671027733994294281375017168752691635429557250059595125146842982803607801905469033040007077248922962945302898832714496629720967526108285081346555134320139750889203407567139679761202964078387982032774360080727551246449510392628733241394182829888071405118012123845605793905647998889547743464274008097217992062285429563198904329023755824880650164779784352480150496507553573553065679328560687148752234531384575424089859930872089060819125564520363896016389886020876383336791011482901874425744902451748607303629680690416311428997222826173112494095757288774266566188317972853407956519252110345342621454879901900380019281815626816149346078167175108961059694260942642598665084239731043694756116590502716303459981083638738468211160234596627555526402142992726116755281183984240978125127916429824771892207407541623332153814548774752282383056263514486680859200592112568310577829850615689259453443426205127831594616622102237206537481531399246806151345925270326932330016862008137901359085685000168402484157405643179505993389469911391265431508450906867630019036991625156380089481572407688848648879912314010412487155207036138783718263301133135784606259674585806266452766718676726249986456565364587182874007133585839130473010077180798749747685905505435766757776486836282832336671793414082473027545118950042385210439809117646209507396443985461190717695589758039473629972341894774039484395012614198210051849875048480616221670813029312480243099460402938809484820637366596702462710662450680557370050526986296253251070052833481559063643225981976567501947681736788033216423507402246050066307725826723837450658014504490893334567376462730800475945249594518000838066844735790110468915547822360160309901297834503083559378420854141223688524277314206668600623676881447493693555644647455282325515319306729959840094148482633392455016280936769135585034878846584770231235371861263251643807142571893742143943122956086427511208285899753280732025091633474568268231113710475048826649118621245102916439523138091502029218268364408689705749550779819773539847333684804745621048775695484612094873453487118050100313525383000573214376896740378327932553812412726903321212630923995402057521576296514783858088874556175574346320044591773941868809796439705496871579034626532401432246204731998842677685384770378594196653991229884484738957925909964633349096442611804775120933004859872741069212766496098520130870801470664707733385437208919537754624254657487091179768815416949683250396310401242475386907010659816899486344867387563854334756685459336739811159099981105448624382172855516301055915113699989661911044609255851851668493542869002590916910680480489146796709650253968058855159323393259561501073384939889465155904012193753392766327369669156959397962918106992097771735852188122387040283755594340986660200471422369491259014519349179486353252158202070451443262876449902264917242069549005978535128467267253180675742356639816466055709086927039403081455870967438600564217350337819617279613542030252737542987781465879202509013236832278643307016861341528425224763807616605200423301846465511280287368075962811827622542698802406846856170693635877414007919499073291339776089685882007947417979062210714224286347367836486930399985891620689828849242001354761311032111751293263167572450818733808629139574041184981886568130427792754977822426022962316329931815400452639248978030193439337898675384172985258773246153234437797181018906172498072973495691631428560603882092640023927114087015253162749054537369561218737454207031388650316980123272287584361654464781856771380211384982303223756024350071770593786325468231127354582720281766728032484737280827639466689801010201641247829852512653747374039195769883117242496352943112087352924576190788201397889743269453149284816438305844658695615841102966035738109103614321432973030295627831754827684525882673546643870968848972577070489969366157183299897737986496079661183693572154255885004329232986093778718039685573610918480556513070413868419193573823973352987965538592337926932810733665045230940678774203066517221169289427340842201300346058001638008018032815355569109447702258740218307269758467907632566726456927940666822302062958198740389703627425181284622390986621190079312005030381896664025548188551286288525813640150787118408420004067018275959844278709972666933924101526058014723629160268724855739744025799194895332666308408018892543678747942824817115961994676977869035916010813013365583205053690770590021785386604553992485361848734907866662647742006873978751629063827458854340037632453272758186624969411994482147825321382436125215405699450620917709828798882469761948863897484399895037801672800261076593316837357192059309466537421479901372795306536467488249918363344236256932383371540206639890271065067477266390976722827719574773522559169578891017323452148309266809443124048399724403949776388401038545956666460214804958345677434869463204253383402945796548957401031672299043362846679699094653186904950584456228904807174094728652275327479262337266016469954770815033941431970746038374915495064857088290960393416846997434741838832741926135417018128890723320926565462786693727983139707579758496973322463871016461458473116066147308309511690523450780934552472554762447024476166932355836605492943493330071642001939921082302906543085350671127544092534599532353367321966891208812581830133194001782621156178530655552123609968392689612863926877146930967978936232228167152683029287386765895814258504912307282533047761671129438105631827223796043756460473083178793162802833207700528846886849222814956442645858095994680348592095030088241153386899805643942542866765550334831812243947388802984226123656266799491182054751886251995146868843547254515767113058802748260598411119729130233461862695362160090586766249146875248524797914434792860514359615311240917115735523787717447916115123349745645680379600117160484702058438809437539367925692961512941395964555689185014245289054224454306718844823797750312950568148774758962943113740056975425780823483412676059435926408686239514671663599542934344506909561980936620633257022600024101932770134223173357754096765995944717459637480249876454978758350722421031052753581197965428931993787041107933294284247304362300745403422906121212579980519685330186276053459315417351943096539883339272433210591709225148830491998978230323745465951588918799569022263608951365683807066288073960671313763012406551280993050475756323161414050288632926940450538780480541794532964283429274255705821951172054162056045149608359102911052767085213963742142789308157675300439930392870408136386264501411832330915285035796383386622880562658354939859192654586079532416938653974968855116820307275329914331104199189242656313729682687300820322898678621459475752622656894438709638443282743978594848829186430317228584825377426702075399810372134457594215294968282657245535283038160269588002265690302798652074628780312078564830635449295008956738504929244515924202323421076798436224776090806980634885860107734265790614542609145395985262803102013310598035164468709660320173619271728771882321429960302338258744918179181440427674352217672859327213807786187573999282943820730092323762218127110844408930682565942370546024733423149627323468969238285364113013218177689976033440212772062340910221773630750069675173388516509362458805788918715289293412076246581167352389178628723307569805138026466922201844505469411345473506760776207794558909442715207726490418257341370972650816777775901029514522216568774291287444584973590766663438812846194235219682522096790391390968554887011444928456682492919442599963299821396778773614308747008160669712278693802028314782288534458012917847619137598500148403239144063314165649249558820628629015304870329309281008512692787210599675171130988061032578082528633203959731402250532236527777316663226920711253005749333572961938356916715690518493593000669963544118216117621586483514607494821927163093106636667910198814328668178220847373920412272317970455643674717506492143400296519865682515319652174519337703315208775671391859210359276975723449074653415032435173282289626377298728837837870289766941013495004627159500637510524078741228278437713920199881902522931016322078166765068607885453750181641485770721572152903210607601850997818175683807540700328486802788394285813138175540933363658030008638334024604150734873608269616066283652451669812094156583936967067930643633623262794945918508187533931058449898914510154781539704707591766949333526307749173846061993597287466298824638480646615280621542852357570677374430929122055974349666878045862527780630742943657633290695288568093272718750182456652018074011553705038982337287157367890303339109100268418648631606441337334629616268260318145310279109419875618026695253155176506593382913469952288519879852920829687969805403499622006722111553144776157592262960213999939262634914535020032253505338982201564859237561179552704298537013039467255495618912186450600611166871343674342337658624118046524262743968057671028346644646175481377184048912612343696733650585318268289402077753965549971655435506672056770216790425359240590129082224225392262334137979433712434149692926903596277149925709425576485235870759818337540522527549476040547378857827297102368425713880266416208671521489359392115732715062986720676434828657399266213195710391262637362816408465065621837744311635262219118654460943089086405565222631488757670509240459163789598693568462609076350931955120637661948238622793064066766331948823484625143212547689373675291912741889706022063135117719277079296119314038674147326181860722555135990419743513773995894729362357288584233509962759672972496037148670050727063816694449416829866084608100585788002472630459810595910141116902976584120797918291423883879953994606954579582442599755394291615185515691504696217372772187990518677569498030806884190347073826461351126810151424682523429759841882165864983419931365624713644841768518358902698999255362544547263833124446048958573801498411492540110260723139616097976638242476872626437448472056308019508610225845199926511857618169887054478889371244392915708261245649751744946874970265939608870088239387016171611768217654020124642035399804346357140699734382175435204275020385738510772700722435126935659172420187280508056052876524960502022208984365364471250456172830477813677492749962091295058404184834242646140023934674492483116967728939755321624238340281761964062108774270333858995584273131135613364351922899164701750931051221857942150584301143893805535727969290953209568963591264307096516774502261859695759400481669321323421166451105140739497306652361058364127842226485647572172052189828867160645791548359435043587787291914864877565114185802621000535016650192714968968944670681920831526320389927221714491495803407832620655418483327100081340217538499824756421081177336443858574232583821136836484875672373515726763300725045766306431816124944542940954951696761647662122844848547710907690828648925420080604935983479051740940167547209226498310194047319314793589323675830050272881663698523412769892174830656272453195508075296842082993303927990219627514678518307190016961255164738248409217059002488450452334472623400124678463429168273576246611911834095618549645782599305032499415680841095041458935794831874877489836219979316021052901581903755635161593197996537005667827400371811067424645708622983360335809233817987731645158919469863796562448070615682120695502443022516282145602339883214088025382510197243486238771192966153428821205414010800503231233927747771506690695415159406930528621257449761106417835757195236115022831946148604150099436596346768528449654400690335842388109745792829978404123320208231058763525063651415409945732855685121922934053560702689578285968496074186737977134904527270302934630714957877447115876646005765196169467298617028351821592900661771105840741998539294223903796482639018866591560845139237569736440640738866178673726758313563283877079930595191058516449081610839576384355496140172183122661377489110443166377667732179029308132046191313641209312009666141859999038364352573192890366471795366965143686303538490514488424565076182001046714899584091286393208098558099579704405211923190342624978770650634069115497716105419539980048087493801093418573135928168446753547301055541771017723472402930612955126185932943353694049264104419767002218706348391410847921524095417437566551902978837258697661942248772781524067732562911258701034917742208860778818817567174265841195351475729017259672547218714275422400509706029357187185774142059759022783601245118868774498098162725445593499171097759472609358826372112953069771814585684810351448081525484548543152802649470852408742679252988215860923729037475899366989401711679165465886633967816777021380832750362101045840351069542060417557366773771428017134420238209114268199275638646345126580058635126559517605715999148117072696160759326963225797845452871255304508960743410661970566561384567223291105337181368293371137284172154755453721721106230135623353457051293986923784690422794720417476597498233896940412039056865237952617153711759873205749079276353118415621210291028088093721657642151134724742276583441454516037365061775466227368877687545340892203887301345090669000694412524903763986325475873601115307582704366520476321520286020864003550526862137950143104728649375329725839472657948538785048046092837380837412582317835143950960700521412377776114633500801062024776348049747497698326241973561241172160440722378776316114125471088644655954647775125890936970009876864653896100949372829701818098872936997593749976243781810253842553166665675798049750620096173990283818948678273741859230216604544559674101904000622626044415625249238094287468742568591792671415834210880763721651776320417675387652457232598038392596950923301456568345482310383452285817950869844261484056634448252284055082610597447668628531556521733836209732500451738676652853089289474665513930377921372407962485776530582676421023873114237031119449335675425576025864918062416250353076692550737382006822509391250500245903716324453057931329891543862321747864285322715188988671177287475643752563087360872035562585735111525288637319399607730952435001889256569009267962427357080341270847375620357947705682994532690018869201887597431419135219947900231865405208987492610292439337590527093736112304802072040166987872420904069546885348954429489847363145458201006250571889645538783631309563799904747971404698175918319285188379454508810024074609477816908822517802808860177414882471618868896178175953183106947330781815769102494561836298138373016626037804121555660999696559850422127180737097894817870149221085300424026975132229340403927352300992024845837728125372184521543710758854830530000377427773430681992131660571875768790547518495880740350101986684345441591651403440018655924696620003038849966935119674992991285016891309406305129685752702190057566003099558108524189487935760642732556575672864083817716562802889556137574998476723642309945792380182480778222827625442507549635261519601082273936598032794940446482331639119098413139902160703068981062265134337279843534821618940628577878745247477159315215459547045973069370925780790270902983251742510584585871474059776952570971476058040707084635141406122203333385261124556907483849086386120705357495872434920936926683626026607054201402005479726679088151835517358949067244982764155980144521338706893364695764194929670742723135640843890680417202574301121200142967829188866077345186478551384923328093647177757708535401916216055800681222788667207363057431387801757258078121743886775148224312580956882293983538363210513256587371793476996867784381232899870223754804732503012721122950362528041399767065440476436612702284794786103239703597896411686439304057219374864115018645676143408507119484770182263041125350713213418682423541737321387924093355861693669629941992807851036294564681305541282515597752522935589079684982776534358922597829590077324688112944236203963859408651014717726496178622050211026960884326079291730142822700692455647088610968639290093021680611494369900217233338647497187991932360494212399927326484329890610775621521447153370000500519266658800010599986224228007452842832922393194215077848551811213492001028130870317351013058917277956257048422636610641876256359204939428340049153604654339821124901437996373520941530080988900645084071527046540013091355029274692653793838926291850686430380107740307944497492590030559371449462227894061243310622813434225426963124990283336135746992555028438271673557850231853037395499763193524769323115026285623548131277038904912625256863508375476416144284005660993387100494814853593287338271907489807911308915446170646061047646918578461411989351492028225212305998311582333102420236917759175217374176349239925132978344620272883807168562231482404576408264781067430977131442548540088102953062758963528666177505296690159993762575959136233500912162948555740868559610200759164056071290298335633928302544800651340986315333049108472299800684220080115067982666600859567422964533959223170518269529185481590420873315865731976555161806270311111133098248437886543776106960618494113127902156726327792828461519285275501797566893947349564909283738181091564586488467357718531066402026894947158641731776768640287916390147671639261593706258435913331689244325018903509998035934254026427268542065895914808897649453188546798880430274608692634903843410635680726348395061888836407144994727311762977038463302456622557403091122190934102734921850950094094987586245580483235284896782806340231974318632358184622803387194747098497258885441875538338824932586642180622915577073181374196309455751919735156709259567921573832982256380110501250822342789272895279283764133556253967549415689848562188850796683199202830407062657666149907960411599180734921943989343513628806174940432841313003067870474045930557520146914566047883544280184109902872229944823138315907728210283231014646317047470913145997129025397973661152919612024985214347664910045614359832543419314351185181512669562043924889846488465706037677495213923397250736083324177945820516537199275420661411277399954876223684919407281157276063439659341702638067204509139184771476825087712646617220663847704281811158919981605744854899815888838489461618998760871203999019755595061874813782128971939723362083983358803189237603853750854763170072769130686067020767300825900061886815748671744583506016903314234862373430444633633811442152645108981950510613513129050765337104604137133607456611884796674844444425533520458660555600988433322247928273165631380561561837389639098415167199025079233179385446401584164911916267785753587810694298692051516431618125583262131948520766877450920930577172089780306549046661190739597573375399598674537518900221366499569596034609750095299885851226546894506704990013402315982002539001691520356965552956012955168980579037130648429079471900908940052246240972471076666300356859996376997550689725277885770796862111769568837102428080057252960211682438340373948349375280229944043921220568768076303638054046691979611830517283879149190897770762081364165201171495626178547488095329569837384499476348117794892447643332302065855383386800679165738456795283254730525619505099804528384526209952483698490892186541111204535121588217076234618767769599194257872466369074652976327971177890796073394138349399788535704659239391151819979014360688351977193397726630800376603963820888133743853780440875265891612950130048118994031686238453776733153861022903368204640484663251129856015606878476329990877227068999707339448902116080485856033325359028395128855074939432476567204135764151875602442758242680365984838410969630422654284213550086150606061409825984610803945453082177710666785249541214417217756413345698834264576669692151081664274284523366516664186928775465981318249317535171583272319245062411814228891741758727212001125466183290227920702889610063976703407482442836956337686449729585676490502576040977312909413925554822553116365834946711169486172410779239102840182680444312381284113164892729775383992910062809480492183497456666575240521950454609317761585322325328275465905852324202966266534215869787495573930547815462981574992147658547531878516864164996283740877978976472150966181394303555793199432912620433389010633507472109955266490851878146647801694152660937978636175883455481155407390304880556604687565419257867938264016346126917869233648249376167241516246767318431771913511853239522364085121235006276444860973073846035875193503729201520983478168695252994985293941120758492673245210253997938047665207307526122054944322819468635923766337940026664199050354169057853755876744164191368444359842097964326589740094375012278008412392229517611632942800640880202704843524562758814238369089977814194529714391293132870280752990757449122564696507827390232646779998257369714387522899773544872558215782372826276244935264260998131447059070626927556746307483990041918344661644513302623882989541829546077134199136561937923514409078154077021498346736224393406795279948480206232998814579537988125124424419591050698101724075287923809785139939104086509736688653722102195238057606283903737188925587060611839426005662450290835599681338504702518403591906871224432461382483638566300761552650149762889914053355873863595028414186007929029274657534547440302790622853667496431638094539813986323038462958103968805629437201735404141286906506844378957061101530043182029494322158828634745520257425228951976632297605227419441885143646353190709986861666387079803919752839700670231990465273115703046463249362462294217947813473484773165407668332596070770737355272290114631047202202553730172272321715088145974344960399305591821924815105083331539825801760432229687455751496578003484259405128273062497989631083605180438513305596803773958172679852153451161663657809333053714162179989363014616568585860614447577052440892543716450153779333383711502773734752120743104160027471101908281306826651711622964776447345332655260353985829119297073354762771263059983060475274887824688165284723308881343837660243718732694487165440920842187327685886818255818395961856907005566394446907504650063918843517627808734727503100827469096858134509831965388987055037136026449403465060932914442054846055700128492031902600455662437248216104360399418075138797795335941275006285732738361100536457350858622490458884979790519926274117498602545935348985859096692883377678039842371769164434936142796121040269924125095922992101909065516085078574964820494310193228706376872204348284190841278550933609744134867946616962847648733947765977174926260533602218862790935830694943671899912709050439178984162664642797997317562609153800639769298255004257383891974433507273169612704673387246172811900924982109588089630020847534831404573574767416053196526044732989451583634630819299894448017771813387051796042548483114369679258220299169953193237683614249052373741166160197021692324888099117676509739202709102167191205870048086325540997454858745729634648547322890704642108167316534304910367605261190113729032870408558017054937281589819155903269580013504880843609045479544279567633489946676245795677192257460677898273815463656612963828005048029438324910956474938863059085102285094159131526037816818553497966703548295115895139668511417449844061986949406355973297450843043254085585052619637377785649667936958689313564370361118497055284066858475378254032695409457157249278437845621734886965078975183570811043137644152718237161111886009685887452871897466791743024032562069270279259206523938479578877503555741440407051271669575641944962629744532516714647164258442898842276556907022438164344791298898139457490596377561295911728948163571709223008798200526593443494644230173210161103346932322561150280558715472645330583669817236193513388318152226735536028553082777996214562890227257493166897927340979690316111865130354925173186209321702021314920381185301954534972938736909495579688046914134589315978361099736346677907097470271332419456624235594643420203973832298839366868962088212752300273057184699126316906899149434032780930285023304760424836839411960813288392679156514118393612075206428035480938796303930427723050083157683203213357313131955116304388100769658650455591379212129654432552577935237563518912418148015704070944352387851551576963768706306351781303146858155063044670431420427823551271106732623024656623429732240722865391469967020975346274003971830681306936179822696251301347385284168126759720452909981020458003557006723137724981275237739186769891839836204905186676297503070800951103295475995233908993074997433086410567628274108286472207103040444446815322226293636379584485652566448771751544730656387065098258552373697766987074506950944393783491002947748614253539753260171578370948791633625552834095223158002232111389900390704913203931383740985485372878906896917382227799926474086627673583309661369927921864991449324753520767340437710442878895898151782078619831099040878041189044547462435207997533601959423864426071236395688624923244021093605338373267555719065163073867118580114494584715898591497225559133979948031672802911722068864731117697045692976421162083296395508719848973351614316553027185020958362291867039400504734092141152778805139906967010539252996135290108304444077685146976485313539882833896486503161664253717236594856154798125009447367996895224043175091490165866653800060810920265700442243135456046508085388901996738691408133281523377472974920331158257745244042664612360639930947255677840815166192509429849579673525043271942311228299594591682027553195156060286910861854909953327241880600675619828969262473116699852201706205327965022143370878614346123129803896663821863160247891851459546237696243218681050137038453083613783252339472834483979522451285442883095531200949569018852456582369905938612879680123386282415287514503619188632319446196033278265098368684007936457078223472758254462770312982963536399722393702812868645671089973814042318898385071731437859264397564537194743630269779983473158323939161111338224318338136421103408442297968822749880398739181289468806211168231755532794769919121628251262778573365363924077017856854904569074049030319410894107433560604596172335212182904913947998000028129823725142645988199807139646031824214792604308544788863105228586699880009045258812107279688396412938932456140196648869130096405118289467827104941567898202371531564153750312377078437851142172917813165677898872266833389062142005411211270185488869220884790888059632947916250472224086019949803023591905875895380864751046100326605659907069576414369333142900294922385973376361470767540955815941916957802811859323633523583876274730840294009625547602225189484168706438781734969097002400401749588770679672698997824191511964747549394991294001919024805447735226107275043210334809955751630062406466803507857543119483129055205265979230307847142285569748013561957402559404394670349196747397309998314871887267857384190503255088070055624568039005214070811137843464939952477345636155814288712256609755488159142633140995320594737214355323942028899553116976763194964703623650300022446277582910186901256389829408935592184043406503992968469922400076100596283077622751152910433421197518794912022809928841141235685696414358751020379757286526513522194425494241901561152601678434778018774418529448648791898948700079119460086646070056041407023483858926393891496539169718600694452004114718896741447045857118411839917603524479507535690190919648410987771964107323111209464026087514820238286365446147574266014121732430623783875989344555102391201590582940795230650376128604491553315952827146142095503024742625318005233460457741410537050423254014956265484188803554614624458583111620677135705232181081793212275062340977792958688531709669111406910384211137078699388859444788988069065954926661581509485017532541078438173208999706957424740167039881458129585729242598857508300634032505043790614749319902994839172318014448160077768647008477901841228295058244975937926516549406333456729523151900299001398123261349221430646542207976145679239975593800299960526698167190152800312758443091455989038399855604867618767081063544671534865705570149054884719559576662812270006077889183966866534381289388478482972583496618470961445436524308030722467830420774959665760874735517825215409426443830946452045520978104950498665650100232175002856691106234643170798103197730287132902508287256486991133513521709248250603561716616845497615441032085929572143545940887890463589555512350530954329643977580431398866565569031279057275332476603709975219036333431412567293216840908031396119878296885653434663203831109060807983828042581962102429734413780297946706669753443086788629286649725418458728901910422370795194314552586434078775896741564636575585612510453590177459748526216490375231889637057374651098955903274807487992810084230388475286609284341948939863953455721121416685128605632055344277799649065189525511244424386847739829355588420720260689578408402142992470339283567583276748725917987720785001668541682902322736165487740068564844530672875846327827896048919410100928709706009970496618093935415032403287332162322505866519240187133276205269090245432420435314017532925610695253633241726602829787528931071624478367486819978034592214901037174360789582298344382341148632418957259247960869929884732307728707450106151959246556312922410161232702709665709314844103119672047766284825745854011037886177976541854157235832451789985884767067454868280003308903368153792567809748769170617486498442276482928669479114280107499003650418365676789073529886455596297147107993130344595529031370755830741144919941224821560695985884173103996190501623164499777167754025972571134304096780047354402513514535691619112893166284469135707549795750948247519480863451005706403334328757172673533366698489973297986330629291989036418038389134440715897852675201592131686897786010728781196785270919498688939753764664532966538731702013002291802360039806483308119638478748069854441370261189047355246972500693759804452190038439119054152272481387025249703481508404407910914862868315455369951886086303615887162576366432832221488038007341210540932974540666215595064667215877920459557412249000139484057487272630314000196587595452267486125515996355915523979842785493776291306140351232981991450652836503564001616072158055471954402701552483208892617713811970354950724702614929341984482487005068484183221049221371486493784897206569068989848973939567913107195946809508194389547776588416022402472232279902719340631894030934853606364703985727759192934139025688675104357771587873045955798965473703116496648891093810202309901335089936209130964818508157474294632334879536297592212086469982544050247734291418032726826765997634481649374218110484327675415151087343595459192323028386593663337344113360368807740063334133351090544613055575067130804813821372183232121047634259295888588642252093237476345733917640812704836216954218451441649211740635858171949549528954027433835178988317551012114036582291564275762129368133586034394852158727474710149096367595057030508442574088232218146246691801219258954232040875494918024634039027332190196239488373539454921110923917824347074703662176591202268245965164570660775401048562220475668843436585158742943035274980975406468509796937553744525553793040042773523900535950189499648420291958744349659915674618186392478309814297354181169285793326071138638250303380097568276932595673228136661418536855905931058211708691185091045484239286360169712993001983287333955754473751829165793625144082733323746232827094624995186510023761975071613566829508502920483528061636620589717119168147836015551253554848930884382170976173419272654421327953734596263600828590920533531158968109422335051799029830731599225667663508715279081635476457052666216059044385337943157376227535274772330096391648051592889722189074776193168863131266528054705837904829399864800346063455124068648806434730023462750089686491761470789259295202395258759054189030227234951751736594800102080212119112163825846636209810299263712919969751623297944934373165666965048950947961867453872253733398854791977276242742065104177119640194969615046027939315511871508991779510463066334824733934478341175518882648386709195175918009070630243409292908944968893794623276632352093756538831581958902640211995995766030671479666720754269225828131937484000652419202011727112393859626520392583645244193417059920292681412396254607370717452687476602592700348391360118846453483434840682110437383627954875462905890391362931903074238265418897026047220673756080465613464736966055756120930579966817873695260537846729979381027947658444571916063746127053122521773542619076584336176622619640314006218012983699316782151837777133746057794334517609525012170309504826110185099327553522698129208102875275316209300638351857415356540154971375374040805859626029821536156614855808753844031443081957378281775865401445282959330342229567018808627960867551894328269706504326069836521076978740103356181661388648825275631898880769151472166096323756553593799048137919250837209415813810810911549553942304004298808093825816965565700065708854370023128630111826122608942618375390639478625704133839481940728625671008855346984437843940385013555526597127409244767382301994110373755742270333752304169645141729716313170685843461279163090488324876567132131361920414176130631813685488010218802115189302508546452768292692946454878915364382223327246880656935133691580990538264528156825469167131198701231994109630515791643807555141666635849885542236303613735147065782148169996698551749570470117711278841158743309213498584741597607370194820781966285993936884659618793819756747389128348771605565780491967280363411267116002872460218699066192646067224237887463057594325700462967314142318189432565805956054659345038018850112302097579828069448532853078023023618239759790415845635874815280047657781418569162237665209657638931911028969265793601943709132340126976183182883725179453838730451225471647408118224846215444986809741837514709228696366833811413231091690036988881134509529781884317116300928972312482853429791071544617844606148589700530542600349785717062183545831967558407742348315296039247218945909051692218908204728116859855794074214808904879904784495445326050646868067861151300689640766173300945406049645147428910369420745653462503005041360674649483367203985396959180502786172051274787950156495565750392766975694432005510841881473444035390878578562882288785337390456324168188746000759799699309318155777670787314714153379038965307247649122335213171032029045078447626873139746146355792223948432961673219392960228177367226475270083024389170810684219259566279847781483705178052899380260676985308670269070878948159913154854661783783354548417274322087649872994926467054186205363647045499491581438562957048116143914762934948037778547998721203348421357230353284172621893221944938476216626055986107275170939800707571009160712604081269239773981142111221054468540200270008399025289473913037343530950595575390398676798338342934053787130117255359525665050038722708333553523226796345668848841124143304371652586861626851748498036308764685460367687884957011069462097018132203903158397141097489733466748713387752430585668152345457540386183692538217407666427768873989229041982247807316372235126071620411158233484841343637163079252105802778497022049129520515785799041829735686618720895990670022638788016540603761453910006843447160394667322203116243936566988752490433460531793054117471132834963571401257601877369377172735405411502084842483215318108626833305342272591020105249547398441146609359096644898297810330829422424019160435331573597014281504377315017783192798143949829038233124870331708871396070299509119443246068921234515598436936646203590654111180379192715551845742573032482643649535901800917495646914781759630411874156650713602987110705644681830561640923419119492545558789607466547047882038787061104384238529273693713182367076301390115750562540321351688979530932919213770789177467026140719585784035246143953068355680991591823004963542741406756350819727253714750190665338917957582493067937353191622569910840440888907110250599123888336303783932163061340258907938356437789410416977036371031033592512102768275982497642857930979382177272564356839824105080151040719681166450166182589065639633340434631218270244991984132454471202370241419916496189674081141480405436659834415775486991878892816313647413985522552275959617160849669805502450238696661880723550293259344356070708682396112354623912498069743013082430317881472129464817303256664798569448119165361194054952934002200353898399168345685312961187594991319552407779973521204075964360402092066031038879975276794532496849595634552639992711057446104385075041552126284099343768048694952420443576476204430565865222557673964614430534475622954989904181469868330023542480048043720872180074505862323913788794047318096613528207239372313603775487147611111419729306490191744237760846062395441962247336987601711129632514180465751304056646905095524445195432859969852659356924031383120634730411440797621400046106185126086232659336106252107608794857741896454831752112965921875338535513998990794814528983687890458333474983823394656860674759256622921903231135021636606606293452815572952483216880688097296328976991047295976157640625044648642815795798501504410196660623785607151557598217194632912332880208468406948111320641568072754437448134922266078499895972162389916500341440124093499223973421227746181282554531442298752955832635710988442779856423151256843976555857489542303456906735515143690011372416720693872645917204524332449496674541560360751037003102525299252565854210723918043529330384190772604143607933742202540854183213795249348069681375520138753026349595354440949138366759004683759320943437519618977926739739713086673385602971611015799942498170380297005758520019589263777337498250030018463799638086935170644803669986713308209539596050999895874226712229304730954391235867851427481450628716777099255775519046524436707625137121892272340923349153136333769429386427715223032017071051111810799199839466406539296067164522209965446378557134160530900630837343780350301704781810534281887876367692362948272167815522409289841561053702907200172262222831688284878562549364027674977173194397645541572165813936752944232960273980908893269878774217890859005390398555457695956824907312236266583036913960697339244700653792659410697952633289821860401098493843425125146934914827664889046081696282841490557433804411662148883973678558608198242288877533217456179903576138927989877127563487487138635432145391284354016544207434515438117965857916630784309627628974504382188806674333538152120041864860281560109561517433115571200245147911885022916691319544592891192468807598876541394564888239055176958026803299358265049913256299880313652717226335133998608467694773483973931785756142182598498921595378998018908306621000060128710859624960938517440166888012314303255286923090067676599265271723034094113339671482130193964991131541045726153987393236633003170857451579564526081427479746554402030875771153494305624340090540214035187638595593336430318507179797156934810657165503394889779578121256301063510738593570797481004471233855785320530496394211695100621257709573010818506472238153163572434959532026112093735349717742366806764372926242776043341749574706816056209462615489660563866535304839886088878674491542813577747627585889103501600636438714221521743417411960733173440059807475804471772239762270816468803307635464829906848905201274822468382089358787563897807584411063304608024184109597275041367521634362362907880171224729085269743829132158369932632634449351041805413773602685673354623588183901093462234723040118006251834980864641450621262724533270086225659654237080016457619421655266169528193814901904669994452964230840108967948030526082311501617129986395455085135555941601914424512830925597054510750535283718038739444101460365085473810964754682854731549322284371074463641114815577166468717796387054764947148789782329384450958692531480092297476616640426237250431315367390476456375061820178083997012105879464186506443875711338279290434436543631741686347608591206027319866318422511050852830261818860132497980463359461075014889336086664994227169038856425068426356491638707200523263773592163431725079013278093755077502720479027292227404920636274426941336272084427803720830808987100175150068519003299318581613905250434779263688540476124960918581340848239155631207229558748415541864755473669916720844140315578686320538234786428942774847795694181560460365219051054569539997534595443139795591162788908843343677839757894164529260674519136992254331055614115784712402896828954989536996260671401774425757788734570675268191089965358140578517454764550127761383724665452959140206837099512190805899475431833914306400857684765352124169934709493742445254237403001621651225243276311534487409668329301097075071976964690686236498899293225985477680471632796063032056117082658151105847907247746456286078411602021927061350631769217851747112783169123201476754363436821163407546858747596688027516692436467341387970516928396794750039260463196344825505933683887540525935755100702976452080169362858965523111035680768321389825786759358248584108846640847765956503489143365673733960510121688852564210501338931814112586961458038865394588210774695618881392652647313883749548318557166087852802313653256378682038865244116892120106791117560558825482811657455561861935030734393699742851228486128359587203741148707578998400298160236018053790865511478930373155967796711123976773567281531190820131979676587569700408662435126048596289115806047919408284450244403514291156276188580625643128460191744349376156661228765340382217291561948113211532719109280705692231130083022257651271016065326444096824179784241521527120026171073523637654201778711663147511738443310923047089284159198263675566877799727659233493304394900454625044802625745108981376680155501454896354931064822285217804174852409201455820706491814603919351251068823673677501185278045606644229106045203409622687145584907441370661698153568746336072814002661728949915487485793189694458793124644542798985398345673920587276269411597907481765649303921092703547835389399722307439366170645501707905393684607959280619271739315151900840999452888362755680179139985580378563405880408256392998126742732451257514349027020217415087385304797281855402474654023471983869754628803103873876616012277399050018510171474758906619342684820813767082593686194299342489579870574439975313217251879533302319428387492289441139788387869096782261049387709968153223480288159271174011247288052736969601235842010185713574968131877792972173951620504045220178170140442748383898783760574476820792571109654931168381791570771729266745940473637904089663141126604258543961466403151148225291692790484354660716061810628284339375126792922841820629309040790674063106789020659548157242028847307958762798186478975994652291259464281281121362524707666617064641320261486448922798373707387026287381711043344189658526748518715443859118512511089042231125292051984259527763237997533506220522894860243117955100669527805462216843420628560983180861661671230591978935219517932961621351005837412447628364428072299862163537141289832849957813207893057117012035150711132252402724413992089935351077678566124251121258332626753557965181216880193650225713873155382559461361826077762147660665640703424718654793677604159976444221697240046816328557984818357229899315059969143808691472005766659718311393762993313125098172421020274620327872387660251769334750152757101166964336628443165744510693610100835349454433153120561642238757790623366308554106526486402645900878382216123143032005232167729696070104538029396796415283664259532096427281511397710725812075261863165115960999118590535231243616386740178483062070528089071776685885731889182862625143803787898798056932497643640969159420183602946787375993300683370666237110533333648887642942751190418860664128273010107611895045764168943695778427687761203821752574503361410796159113442212450141001875856753549410472552741847016598625757469414239163609233278637864547868757676285969818388384071889286397786819434559245143373252818955882014096561357646195324406864361050657689594786539384651912330505988039414263678933168004300690876001906408306319231802897833731975737431690177621654000119615292696665862579377096457429275087900532685810279291991816487859576406228132721699253705898697693723014982098669989480981682447956121262924992607576612547068589019852747802759950805424186087871376072705350036938347634802490915750364010970778700822167335856408777814654762222005546878395690213279647483600012705905682428020246970140987776188554357311159234482311049190271279392579921567763095969224303779674478981845598556886495458232437296524888476117510604417194787122965828045302386981745478500735640698031082753931534424857007299696010597128544427444570822342596880078361170407381524933506433575207253832668002663419848285776328324245478119610933063298556058595299587185932920095923951689282942298258444316484803328879472322582049956754768555125175890869500912116111755078521388249246395276188006534272956485647505327135117270582980907118999192319233715335251989932117731782653182734086147906989012383596068009196692334163090448103503321510299943146520626056728739948924921366846118182848111413226887694481321362588304426282539272059136452735673027428809890702715711592446848378925787091631472003100491161150077758488715906115459177760920952292943785075454034893247649795498821574440517755114405857899496171596133102176221881618850603152523644261751789546286577731725880073008782758401546785598640497021625846210172240955026188268320029473709198680468919482901595589352352661715960554756163296140433365833224112683320430084160155084908918045554105854275885263526954110563537336756015200820990452512727738603820882506169227424359872051357249669358155912618751732509215382231884815286712813534135684746992733924451190340282127157293446412593493426610661821918089539863580231569048134652629126496972826594262970199627954073540682790031869475624308950250044279131674755601908863689740730239935400721601325757309705223241258179899324150337018846821707219845571980146245983279076946566663680005340863939335908983585438677920374469246692544805424103087109371240153363553987832142966424815350993138298926325204349205956480129491563905790861012897957156842092833352237637341020323270896197035816588657339953091614375336585443454392776941512330418612857540262512617908594222579034060204659202904078347971015624826327421119533514870433537070169856521176217788862697028161622297423364976246193317066613260897046163390388192259999379224261176309455169271867027223876602205916418521957361566449465860494118751239128873386765510171639017995782701693609011214341876612011070552639279136720646473303504780320890647877469958193777467324383855226556750807966834589797231493224751599030271993708720894546600773852284673153261579862539585566702907852921742723399691443980749412178064676472082882037650142193244936886365381995325842040513464162166577379524561956577177199758366579937815693141539945248059675165743844279890922924282026087947110910014714185732101458414729137807710693714937832160815498959562721781588168125998945282350313220658095196971535287374779664481250006491308613217540299950008643760696108671962179548146404050378497848120347717104355937997488794062611333841835781970323967022379658299401784027500047375627593791966020736402910669823467597883574998776856527069260009755649872235244626805437739731556865826101567661785857802743579063645162259402543767392394253064951065158081999614945379883475953520558596140539049820694925213642673666019882630237215954144443608126329345473468638329008007434544802025216387189058127772465502238420797229914390339568321053577207925275326847868024074460759078958484737001153820208107529498239101451467068484369858524055498976597355831537563532851877603962855268156537681700368842798468687963621592383308329133313967985849585662405376879569254905489170806701932118627636992411839534374755452215632427955631457871625304516808719328361751635067041549960779777798859247128195727391115866237451810929060315551649929484445729515661542470283497333194991421947570757499061586740239846873523963279744420488230757113422304753589321309948360634979081317501263036682010227858743218873980752580045580805681061949765073787205803844941058365576879004792159501217529439688787558717395378509603176450593505428729672496975815391026173156098470422502156457733817168157059635640842807582978793993791640224141367224666554288337511210789151528936213239947028690841187744994883869412022962232131138130382253715278785211262917476730721328304958484747013787251088396557310165914634328857748808622646399059746323637172832742632529479290053104424018388393631165332211752220793697467181890613589810900980485867232050146673100533035238649284622430543222143571155158414325001556809735423259912326483422043590923162586116275825265837837498950547571619322064121375402487997057291422399351298961162354288267612775403525264519166644613194318600915848956673190933462974882531493648142183525283032034444141687928275974214217971775625833292528586938773475725980171328769221705942381875834659502493176785742077447708526115494485399958399245930599144893007636575450409112398093244777668271356575782360275079958366572459780164277837827458132963468278320726337503996206290706412627261301599514182898529501898363368945272930970021040697047051384099401868352400610169224267983981258795511073875279803246069072649117082004232839987348434960886731986999317596530557733612507641277447549814928968564035205042842036849977014724397741850141842197623052943034292943006702206357424969053468551364222172986460463010948280194177047328609335442850580318326526445317894106221977273832812680296837070557066055245293123477773854376897384308698600759639357653779064041153538475308113797115211787762062962925534132672742192354828252729421569577595449183249220298205017792530586351656612642031095827104544053775740788954587772262439650882821305744583807494688893582506641715356287787917401803256607659111915211158098339129693024062644281577840372140212076030539681337796345221208195193049558942280316529862720752401825244922396076314019424332934585166490219002490319789987197269058413045223982580154758138420077519943587375048935300890147933295423178724178648948269683675691518675671563438351437176134370666931130186375197161463159697031061165270196271129652525448856497577625212362880885779575059943933550769741902323228450524533199198200062269934604684313229372360049951538585771525940673204220768718049704620680996210303058488050078134933507913356430556112377946201263496929496886508294101830080549656632823755719912377709975987992427281301269293185709769684908902177232332358637821916445996556824183425284623203167207236513704338957167181586025585154925370233276383218924693851164109297595072007804371933301903563730032077757210980100877923829171113518739429708470305668283111881266289643285439044252576779086632718707673602070064703463297738801263407679403390250146342116444638434903135755982135267887056589245238823333472495852639315180741848438232765351262881383091042431028145952612430273016568455887860530103393033820387914205827805817654483393087017655709597385928888437459320736320462900036552485895352671526111664224121623555581709074239544740813194444432642659442529843270948362693988165751665899088147001908106597984572922971006773731907115415733077910258432147836468220984724496877010628856984067225713968428221931862971005067184610377451209680121967582469615351358504021885616082150208144179974068720916131330451974280711390877534554558612301897763309294504771545696118095768979429153528145777649288025727329421938189814772128140299763666101909063316562709927201949394765939997204986326407080511042298228885273651448357845203822998080452883043507185800851810717966048266094955421320578427774518029756434222187173887084689648974001158499834165171590633167425736017988899706586124447684935897878178672456766464071265416770257280847005438307836346570727662533547040185429437965076094489943757446480400807389402941573721274696632479403544553899678406191839972322756160004205380657581714306979469695867501046274214888574819022362209221019955774256023961647080163397092129361581469453732951567523377180077622547085187170944360196028246821932687398239989147466979842063098188269534917096003832932424486746591937501253324758583892731259216799093454434498335195493473706328876611386244733918377224064826851373348699411673982131646287766320699063905450232596928801747423665436844272969396574563247216322520975540130240665492865616654396436831091062179438634670475543974349657141974257827105539783981660148450951960333167607406783501140873289609059597147359994961729377726180885826005746945256933217602733584804796983939192830607444277293606660798672619552709896000613963802986817006884479407970994438365551375041774247167876439650962666753778157971371287047067709946304931676425718914790219435380255240723767632502252307737528367847136273351273076706781505836228230659163470162580057309155102710712445993665854959956151537250890716432905370843205854592742426602905700172843080725652792177966446601373633385215284433137859393505417058549192535580341902765209349415480156218177917513309640330461317051133860434734659744695412794036483143849157133467862155550652537682177029989469500486025914236874635267580289789962530520107420639519526941400711032338346570213582265418411430017890595951614044232414102149288204806671794166626856219166035298443815616465416161117457874945784210318336517293052067755560704311756137506780531149945211886650276308138302731675810117405562286169995493951153548216294390227428992140025813064723124105389059215040673626974800757251356894620741534830713561147143701440184775078480535989896485315631441095631896049370452771199360697211264923203616560488171175176249060066053496141423096610963960626068066457950525572045612973089314164185155097869628220640024179846325588652331931701611270735770669909638711895108535073379998457252847396413181538794925385618275917137609392051745361063285681601421710681274551752088408704293842569530270689816285043278414971411808419553931069390780890610837770098776772776223819780871061738900735675773869332766931418853137115386802184444259245868885039245817387409406476893245866040952037302103417453181981438946807004167138784808309921616665997800411294661546011148364835311747805182826685290744086713447681247055278345781263630154658124205495213421882374456288720073849182006739676373969962839752883364011097036792446002346842595290170194814322009065054237387527503187052049811705139843817300844371741193393778220157444715311338656059179515200287413589682365041186971842964139306883768047158100092463839829795984182705051137375118590596476859451490630413414130499557430505584667907069114298227903548799794291362653652289839532292738168407619879745832234179997583991931635466869987703222990828349981895322026104197557441853255859265376903461950399802088364780390344392934164583531992023887495460090472311649433593581882001572332070853358035442606377980837729714340069564129988971242422401073384039318332218197112334338005369555373205124800763344616623560562264350454993171765325782567429301599005497160091032179340301669144267741139402657096297464986876205456274593273847911428400040350277669709234618848985883506911401156014989358370735526629393476947627939141414580717858242797318783844260406038228559849931093202807383216476704370436829730651227840654154158306905112568364019280998791024776963437901534980444821291985643553621949567923107936888863582789291618106550106595812358430790639023713931675487182294018665585586371004843434925933163368780665045738219910731704559787871936291032843143131603567024269034071059098884204310935293055066343746305441508821904627622375125830769295297666543775928054036167749553800389922740119526568231558999250964724854528179675053123379758941546538652958388995500832015356800312857658175795505200520364393209087132798549202804447159150842206613585982822537703330140305281247194094330306064210818932691534656110023838211162215766433935266619781162284651899139744628216008133515784251290965087392604166790982297085251150919369492951163604538328488806985081679796526195661996736582752901680586298552748580525319323895055089726621232872492732371231794044060036588228958078691170760025241711127635454787750756343342279041630874906787636585626688974932832753944653820116715419275480014163017741384195068975416279145030370994868047115167566020649108055225827035295927635774166502464268720183337295591362907543568958629686012319279362311253835779979277084000190625205290698649158492808817876782155053132596803157323063670573754941105179369014654237554993869022589199639886835263608387212814333994385166564856297465909894686214422312451952243217588281610058842413872271612134436817844564743921515623879320932740932543896078455909326265058812052413573798363916983353663616875983006843542816059326211661372210894573574775481775815586219731380473980850687240151709533305380360854790404312250651582381019980653045211640703069809031095275374723255745620551489194039170604497304090759666472959404494869105099027753471746018180996774137143381381386527088590512161365875898216506078519430157008779427405883992561645031042242005545292762964264274412345420192701457955608960872776398987728988479703471999499438890309578236050315054764625215136698064606409371605916175991899825871520526099262615737825451830137106646701672186396813106503046164631695367704770616128973635082308586408896581021993509470060932081662589723716335423546240054038879246925544376481555267915350870864923556689211776634508594771534818073784016802865057331535890504232669083915940188183554149694485184029539890846640363035881454685383626898237178898307063737311700351819328297597527096598394224617185656219361063978119651608883608203269909569493557056303363991386618789960972933748404654226941110396291039480948429624453666215111729557512756429688509980239987990327642095997182514927719932808422009100647155248247838233025658548773876305460259368417195429597074791511155085943549361003656731469463742830960631569509815738179805104515436507964975306793840439482537270934805250489854273568395860680871650332488348335688325679697234364458196046528363571032064518444183882366962411013467217662616621610520828445588927911886255060881780129357092332607410424156805625136862959737600909571462541888859522849196128786716805215016385174999643949133731476299352009554498976053231093271843024268017140958647348615811074002579272020263093905495366028898331994561191652005614568512476176106525224597456226729972154355329124757544020000194914125341771313221355919272207452636550664799417883759131870612729866333017935513519491133866590255683796898814553932797368041172274827393914069267193193351097403881778751907372609310213694696643890410706208160961719046662224564455714611070023944050295846769185304849840838505203352507144760038240597180918409932742419903709499966209978161005041603794231454374158946728009080528105435604622729405664862034063871471227352309314033910745141539006578863198629459611882285275783844218024107984542620929517763669174310395885815537986534497999925319023697368960848933808454514633033602526407505215440447768908198784135341255316002298529772731851595182352046505500323095952357108258798366502189526253646216243757159566216657761518670929951904387356529640253709741939401147441103290371492884347189770524982194059841511826455950816943992324116633078438246955640161856277750628269226417841026416110254743459849360652571638000710011653974263514451504399304889383144814242501330769293124426516350117986370847813813930156751251444297843265377273808340475419089947625707052656034260158105837232883831243549512555363918771095950865159031090600512305916722114416990070177570416012641098030862583024415912258468079937512077340794093583042376862840790614320037177205689650617163590773673163461658334040638038022062576395791073237569014159301532209800431969797379987463583544030537162886337858857284901311217270537557308588579238530487813820245316043555221909900574630605538799645422027936173165530205230328514097482693716012804353135793104194783874934314915575657483970250474130500806300524535541273416573538810087495443726453796478586751139326195614471531818383719210973441652949866793989344797713325936491632927677150545105580058280335618917849402476394658517114821257209249197538211686412720708951753351377835674624512338213426764347376712072299732218089398148457547155933573148423045124069118605047252436007363556528010976977525650741437309234558891914564923397253830915738190451111212244298135519843546387689415606598102977395563271751260894280872215549647418490504577311771571374802092660463466397965661534569844366383496061869541833604652011841735301606311424899351701781689849090526511623109217961156441118628556839224983138794631315391823865986151244968671455406619721745132862265772273773486617759848805723428301224182476626505433437546686412642624718323128584216736921818243415472708909166272605973990262598313441962807682549257544860610825910677206327260069371124711804686610694207911106493609960627542486420079159164073044324865359312533477996721333266258688782518428373416417166408218000267739291106491538782695141701396692760333563904034229028666809938426766095427319642847819792766191558782182847942102128725389985140364480267932434665135774477028038246013259800340422908462068258937425164317804936885874505150812574711213349425511468567977334800464872778288500688506503858169836855696066617878261436660607974218238133061778566744036933808961812344951832348642789382975461259624281904772049038030050980153849863567137264257015351203847455877243263778797857846282307678647218076558851254815377700862740673294411824153456015707465081330495007405928385431116978598800610645449484518003799990431918052994938368326962646885549314617707335985627045378976245559225399881621437158666819866624236459169436364288870236178024359045689141925679516330007921208195305104741028176791986778843392962181846091630932573095423134776229226362787610582631844358277588077500184519070365216139230260136229138783242221530613590209922177492389763836229206126028401423965584110292554004823485751559233224424750027913365707291502946388497312100077120780808828868104732296664225938705386311176861776664747520924839296739962786844380099603110718683647527725084675813175551746712550222245205056773367870351560726157825124643303843483009030239291950808104938596354000814992488810456527873154716590073217443090802354376633706485467259111407801642126494510013231693768712715201359339693247349595037939637946555569661462515022584908704347657412479694817249011595721857152081409892757513343744482448811424195840285165059410686445811620665005930409569997772749543449185599144669675606056012832188904777289591560410489347542271672059481135097472308764988934246309368569168161022821305613025233302159489285313697182542321148354005905646846308907355817825555459999685534839653039934599325192276898483827034811138151703913590751309234008985546842856539183383279772498318895816102148864865456364348672973986487384127457626378003824951040256754292174812380145494081442745429101035633688317159122133724794596050576266785896278203099183537146578135912783580629181806182134863430072869257077073352552378399654235535885083937001077409503354638915091575999328161815109669868405724469805301998758878503531716721895222689612465043277401641892515106224020738199694182665319105423167895570757292933536938988384304888578649235264891408282411914060085749940237278180718844718167456167466018519010440322924638928913403215169943478051666854847123132601866462447429681178081262839183923236142828249612373641369551848162405906654540532520324831337303867459858554422061889270608027524266805912140150251449147197214149655240679931941353942195106425259198538585253824719636587252306779000751131397416563381284180810310033310851994178097209492040032303713594896573733652543652379268096188664990000879265873588385617235771065991719333988475578725711443334992448076721451266732446692912769818969233089218320998837511618887102458525535811407458925204488074320864139281609005591284705958766219374467733903873852912545457678032542522450709241812897302066160475724272332764997563016699014607964696525497451215643449178406676342117451536359247990003141002821049630637922410387684998511849351998380071221958253011982949366549879303755673909448764575056237828427922512244743136061473256447738620961638441813992703783658773843726243695289957542909197659212369282342352869501739594727802348636218367433142451653012096198453124653472404995599414600661324274116618772351216816450912768937457401643060566991167162778650337962864631629252645542269757835171743584990436338359992408846917258683031038927326721049789882724988107102383480791964750626498194602693983547103716934302519305616875742682371032987123428426830248211346983875521751367651542095011769489883991770864411081510862393603916376848742787042169197765547619712915991110867844227339113829774341049173717927840221798709080219245863987258178320775947866362770440661141096334138613868198607551914990891573848267751013721935395552816031279733382384788358234130909733107385244671772027017575420989174994937297507356444757119475408795612108175963307559884979149262530005455990641366477002133179088704920852804980330216398501129417757779426839390715514743171378287144385361067284809349684243952476731182973187975948988763346792838698478930805758871188838039496189250409381473584980287905792768677421769856062785695203411808092574483978625542833306918851433823761783880074468892499111962032463992052013717827755313269321758622033279431762373314318499326831639972291206997121742928521428402245744315665141248377610760149851506674738925894303848363267827709833360570923007352643642033872053049218659373713583431324968570922815199769153156722657493619443782219308759529259073113652486403962466820642454792704483910350770483007170061736250853280310875190260098032961745340830451061096571330465225141859852002033179299454159032293580766399879406371834547716091864932934562679791271748277139428613214744108092167648142213601415178338094973576582096781082433830883376525536439516343824100543511100719062085008405438546018582205071692195344407944468807246454085708670502406947700702726031011288773022653453056862443050483090904547550956417040283287789480112205096518462766432372490323306582898778633163429894014329038531658766921514435255349542860992023114145642448151123043176820166510013776559352693618354209253439273598167773026451646532394571049760218609576591841243402588975163591911275366620985951412410393234828120921107354505877709526667934370731978793200101764600672966958792355384783821888736927990641229995291173171895703397093902361058065052011157219850089740069036725161781375478636050831575233248312664048054548509062185940222623597999924639053510857406884718947316752897039788700526976887243965320020892028158803093368729266965666985909742830688639498581319510884652400589041351921516387243810505757753165806248746662581279002398355133579411343758595743796981087896257035191418560642582201547595807465254522611654205761010637808735622350168904976923179768470285150010491273311018409362601227349424389436709497160768639233009036258058386406288623891022574125440604025994130052063522340469857117728024792354552612334207666715663577513788182154924045835332301223603978078833937356206191998000095393135925578919529118985986202228952886840332773842229085929080362988025667608864562294829048362906994384751150197014634023938767177044312309291717175156011150169059284445715799596243757734145314943158658782919343018160324726929889722820484877724082102211252194383713202555967324150389556953901626781293262807770642492445967727600095422477184677738727390658551035752743584325322965000159319684908704254245517484939930098846055780451260845210132894876761933404177525384092925003381043264411308499708480532004903014800996858728792100128717455164743384266967737075585854610591090958135243736962378234558313168911994389444452721536337292056385752097381054087939913584617389935837809694585128831519195664251484926733500002054201600449930936755929101478965728970565212617276767463894352430036473514411862527820101677988915735500021886679385728519995006528093685748011243855996859041710972327194826856142145358044426059425380890940818269874252256325650201198614249444876600936437392705348196213614611361171462450220387858789807659277237809114352477669060221104139661205394197557274407475346898109936011705273615346493731602247586603751868463670055262641262370257098064475619517544507428051500295506544629909492123349235566949396088223071586597081124266037999415699864836838616959479628326951598852512259127870140758821586479104897008416044759403168787419613269972449065482819226883539725727907408240400920434184608634873816926206842998818739071182181775402646139985120318774464414852563809460496509463227373098476156597329501763123315749184087485833057343351970229251515592198562688992851851053817031291756578102563832586856827780811376473822517929321066388398487304875221643950271279442163639558472127287135895875966145144304326069255401016812791703883579762813567961122220764609152098284501986681321749760967555803965462824448725493001774375461111616793195327457187667164323486817993720865353873507721056337401176796817775230306064092982969442224220045789064929380232126781985858049113274594034353587171104719851761630898343951150250356117955185141120273735502284952803261604146282107165052425126891062848275616627583590234652248521618741774161821804926429114902740364295636898157225848648920670628783389037939626007789362212713553900716087584326278400990191935831274027458508430080015686763891261862815332635349421223195270276460162863336242391459585263122839126100547893060777025419395599254930328958581820233053497069680934932218476452337630408875846710746549482165623662491622252844398234534784593405827603957186720902618735319961348414784254916598016319797143336166378059168132236409334601915624166748154521567247748315714875856714945378589533391966403574422225688178258857718339697862069303606431106246407452951246114928029272534166697253231929039706589517592724150598653082832768956161244184854645134748552814508725599574303596907604464896092470754371252987677300572039954057022797176846798371176655473839013195908609422889338478057322985931879316378457756698751812897009229142108212800290583275508613361267970775231946757365187729221846527542692358204491324821103540148465229195299018195771007754464227790130683006800194672130345055235822097302889211961495231535230838773072869987652169417532448961581457493680499396110826501820084221635647312030260535881334986545948187695570612737121452511536144809252568282622099498444834668122807383993419845641819331596293177507502445268834312886848724468225371975826768646547508177215677861527067727164238279367562126806868011109872085088979574117192405734462974098652368475625180820493714928631402819974844139971268758107907063644217761514442024094496643862150857020079764179358987836653380556319587638268900990853802900276571509838513749624902439557204096313040929706228450317984393326864959270597021872265459754922065872598751785388148801449540004191775261490158813279722595152758720946279695529855043049406552474591889697148433175115045608833444649637358778601888458755071406737878783665500387320623907624056761499956786823443335421577341151543976315417836785734391596632217859587370135481156141054411589501071737424571663002190261248995843375329836794617341196547482899129366707216683175770390110462179306739089335519363344826800562734043211949643978502796467354774163288804454284635507433375696674086136661400974692580553266479049935025127570681324570954576082866628583703021114888888459187563700360993128734256506255269246636792014940361954791826852034874231784385484718042808399905822275823364945993313924139641215329973540474214571899563432725633455369592393880076595573703318027907106599793501076765674582002382763228637303589023349529944123424224201888970276816760204215084270630946869525407128721949359076798072653800425720075427671713026918750181252681880412774350489601343306602659584516871334726946440565021814764010435648954522648608715738566557340880797846174722223563545380005955631670585243616331811815828757031650372239347910228004712817241829354806913116083013471831806391890676364378173056651899289447004626633757058823631476101214325406443497138838043647405369502602029161533670520799807821663379213379800523178940314396137347497300963445752608641411145300196327981019415641108766297346798857290537211492975309680648309287094545443094617219565677970405914625553445428791863274793471802363410867786779941524422300019627775136229493927347960012879277396221579846746889822403407693357623789605021360673281182416219602323905581997892679253886957481303086304571584350951545883910132131639170845731781995405153246831825386901718738525374933936289234333296654403794305888087027851236461142766298147155282077531153457915460159380897316401822115229937938913729704312853660574786426099197423383419632260522713035578800734005806347956369106757911725823738556817057234518773529921466166915764582866902506998720723182425836354659152097985802235049790158295815714603586882326594008926205037903992364618146952182550262753752721120355010462355479860093708932318974120619149158460851105540304282231008725570373004856159570578503007956484585550683917820924304473595622071682742957018469161670417879806324074848482193178364452354042092309879604425909354739577724555729699794928486013866294344359341963057541787929385479410292459195037696375342374179673849359611777802391165933063691554680557739733213554419086925683267143614609826107451081044279470621500760918030103523690467578289207711694923724967608916983015168931080692549951158506267175932865356540055870574920024256356853463523545991251598261499090546024768263245527814342643813754040121050739450603120653301679782873388854288553141394736115139355615322620557874015250911525705031342030430275515425964059622545394832329129544986160658694315800198346866303657645180313636058603962154369687299051590203035572895050804969080956030039999381631001679470583205849632631159977112262122271286885783704883300825430467997158157254050025017519898856499736742441309959278733516453283122713776143955137995982917730044686914598705595031756342539648725890024620748815489025504633652218248439763218304973284170818431360163324640582636235650801571915443134497827411706123080962695602310711616778874618621251530700691555582339908366717399905473173351292966233922057104880495013591155201965351964387835660477376410838367165027281323806607985151926647084730117385949961640927020221656709163916009984044587703342891115747454296949614688213365250731581923325932312259415498234905500295638850559918294488706558563572651231547273649777823619964158249689166891568141466744415192577124577487693435049504073059626126932911500755043173621545723471799401550252841935084882269465002455037487866168043263476854706195941695142539234127785753829873605979630940446179523639726166319258613418205432921513432305339710133139225541120446209204041175094219233904572843026822235555831333655499724178531007016293370268390057712341116740986355631666465067127622567087421548182428198941207171442040710257076592979229131474311995512811677882238656422122204066751466350371014469374460885813144038307082293166935737474549722683248902030709389747908857640558331028402537709052487070722659756742689912804300343542651840056750227074778737706338774690276805419843765773380816733161788154905838646372771488126464645211606747762489486881976167952270203680619123788091353641251121161519572284095039700837840319038709426585232506565578586076842191280776500907517640490421049195006466574233410477685436969173524812911551069045074460603526219313045204196691289039761792321044553663386969508587664064453621752462091892962305614339735628733322488692028340054421724525768505879920053968191129581295078922962238400077568190707118479875587818497190997934383373430950385647992230369182297284809175383293286092305649815938659281684633463446473834379169908362779054488237992864171252798572855284174236116450678862836905472878234238561219837437979343255515142195885273952881951304904719660794870945017810145491898826784129616183301704183364610829043297182732006167743833719831873690436329003411088265221845212503632146746442618402030995972924701791515213331338347012545641438436242634292371889692448180931770546229192110958219439764642298133891380692586647688943439486730119970563708012235055814317027394513585576104004146499975232296508897264678016004158012049870362855223756052978406694162947062659550179634122644274907977281055173238839648811985657465692941104595180815508035812878995953172972055237755078767517591698641904941834278417125920987293388313350928727494306316755059036870019403179278371570816407534319128942687947290947019652782290545016469431264995394280113077193871923601158950818499874712807579880438984992143897812987692143735485727328940680665167817347917491388661947937966495500092246326017369826980541270685234239266143918400651314076372216494742798750429337073004544066001099715130553353814428014131334789379715601383118877243754500901049830886308619754568255951192459380113946897657274716059116800549984794965838346721699083755410539494682696151664975295369932151098900499800741844923468445927761307626942777498312564665754964056570872257490777362099551130541103480415395591214192920382482516469463569381552628620892452247433832218272362087003819325644470544543254328367824366291341094073200344086324049612640421352575085496436396194599891389050543222490359654605847064975845772519936708883417886649392404473610067795550331932163431217788387603202889224002892864984106497176578549066848350229459870015618843419742888557271961656859913197818492954163708194646057906839018342880804078921556991201451261607246057616844698455674073133922305335527396190513773852386159341387523170534980822586163425548679301358591335702125897927603011791895739459292863704774011902936246302755769712338029806781880900652528695216328906108299230845323570740328011543606793878867776139164449447998993134438817126153640747336223093336681416748252816828020199195340769838760581614875906359100165158683005949300374626880970541277560878958235922598818132678149332739039839529248559144017939283534030029631134959891272695095580793448553150063542818968958303967505778603500551532578824607768247158619540685127470642536124437052708656944898478990761613186348781157135539511182261209426116579276811168990974983072020193939804194830350067168165581694419471203431913303347626008521009314127230083706497480606509509612595590604759248046379365332838479974794526929678157765245407310991712697855645230564985411483530343563481844345880528419118448870458503003628992931317019849204263732456672132712134394135008945665371487507313206627370956937463715495799076545462742678575622554196617126081601232416943845115043443891806398963393003313894095324003656817809654155413208209551623350172081259960456321683065303217100930039420905446249117906959767022293941880328854945351304386807350807397576368349256921664770702679077931893989782765426013633371505630150655032520113522259723634266342478359010037885399836123867393247605652449010492236416378573873513005494468040333123151627157411720713531540364276960985957151472765126131462628807222563471583690340166644007398318030307834699743042279875372925542590029707358489484226596795018751480182132762718865013247330093796145602291209883846681931315402450083843362228907124720556390531413245170736945780182620086592913710380478461885259245076827834063809924366490481995105449077843913110539279225554192630869929843350228320730309641394358963889753302014721792867944211607598099095682035582436413820250729795856238558030450614343719398808780960944913930575227516136194008039852801711803792364006180899372813741767457594479047086257816328162021414289714888514956049239857993052172780472115536594136413106825451070337825650792450612280361644727688619360117645401286917301720781870560964887114485886589621235673567794396690645191027487156696495586144913310131375985719618152212063119827888582132940112038400660442040589277852902750068055447325993317592387323824969588589207198004176544721313810581774897279048845076244787768274436059099707465803765165608446741853696916064927146577955431285230482692067932242754233274128962456838610243474657221029208684590798444055262812035896681756835224944697699886793696615675933438733208312296903992086512204807900048050219291766130625080970516848356555098124466664055846336562786766358268905937394249692220778286022016619755216514930802072667757995697200826306173588684015566253653430436346161448629143962023960126716825566755889445505878151019103986075955910307628376804307390644142317759685979866195725686761897767700201905393623527917809707534242587946308254486992647250715020510006082746714157199928698571525725874499062956242962772178370382651185387082209732248237112015124751305127956219089345049087046086260269114759924687896069648076691075096660477584098674609020465725820869046385507302706242430798804457814190183544669560695555963677370779320865605828500376328469169266852779933975744719595683528235882570068760148128716387010445911674588072566364883604413878366328787575782628130695956694588005478505120517151548569766885762111645901576930782141580432896795446557711675806336860176319088601847165690942475806711771894913547877392231610241548687920631951943193487200738607709218422648176925430012196427888045049695756643980827665693409588456184685589558720988020445147716790472810832242168698202425273604226232111589018053627365377227515087226249015433282850812261815567048062715577810763221691484499614127498226348631197361973538357870684343549462851671296512299922354960871341199444144683679749536478399632875538951185862981592160134096653449897045057116566439814331847013318771650784895833396075607017688842388921045401585203950869969094661925026951340152432989288032994138831856599785110637707617870430829737707383585301031360574904430246359862563781144879176300931378078621770654537863546068661603064246685077075993573656283860752550340821081027797052254833562190375437100161591049075044669883976499791503440045199625426031201026486135889457230556822154147340976297595122020999592758289047570688561288854868333599844935978861815047351240864718200552171384093537561108097408732417190988427360390524686175421291437954531767062439320382426459204346945490479090690955330641858927003902933607807077023292391461044286069422714837187690574775065092874466777659323029544616710918410841772895715070697941337632519807693361997943559356462112461129920021405814866119699710199684635612455352270522701558946984286299129987795460701114347183247262188541711812424680868277146894193143815829885359089761976189668031876417041300390421449633929834422595902137150729283190814357563320625834212346781542293852193119041119361394636215015579265639871532391385375091005914557702749333405197552924784945204311423396321143301406704473148244851447341043746885645991913372487927053351765470503073034612627925873375742451224590293505518208818727062299230303254178455851540085794813410374613218022007605736375254133911599743868493110838512200024789396926440076308175414767645196965795339300030379519131594120426132283408234211461277403480161538484470612088003105507836952537860083402784290993006837197119682939856647017423840724872392207542583263779739549339062536396208768267161015532686636686625979387052819292047523029840376939190033008257598879599272312501958317963222616314123729301071391700373812004719851843703277621090133608037620363645296591257733497430805907478397281156740649409029294589428846016862329902446161751918061499484123353808566332732161191224257871742471140272881440660093582197410005120745028536556778935505528957620434356322938165357888309512906491092566924942837386113408259142181090909764952263505559534782828537803268168585475806246881105356948976008598185657031985821055684620787736650682977604111577520667332977868038523269761936658968971735107528950552019664627603268263633189562273283826685721201124643762343191621473536501787935557756579537100925075351629170196551517344068145397678670367872709179705885803687074644956206393084377468877149749279839450825679871905462516800863133799331112619962680863307062571219678646257209364917327596671243512265463098553295929989977054174486225985517349042063960458620063223727318246844988982253961967384634822811732158808131494976436110610821577202143703024491995231327444067865205863479899598933383202686486335562396382521220487142861684815514632517590911774590092138704879253204755232599987819638399558260583750342944908440402603925478748167587267331254762591507510554869653102956408744030687625898781822506408075121867147704484912410681027259749911921712324958782576524563491496054410980267733443548502535055445479000268512811549220713056040910636357930877978394960253857470441318817739559074263267143973864200721486318011665926739697962280018071280193505576019045062542493032838652523299043350600120620322469895482470533440040921145516729612598716691577134644158447877373789715053599245427381198457887758196111109889679478375729254942124385570731919612269378212912227758449684508863112457371639497536912432439204383170461456724815908458147367765064474189937241104639049871603144334466694405846628445599563836904948775013452084877407985182627800968537630501625141405083990627376245462922536719926750547374883497820577988670196650125024595632189977698312362447175949120314994521088373791483611064357510555530829668539765621586007923991439614147656924848448405435851229478930019024020691806619743805159007794046172777926489072166447989904628868551843183011461250455985151995950996483227106282535412310720508598590536432082619045847927097460734297303290871217400779160655167599041053948236221686228418837883228531408394768435494955270769197535113617940247155119619921736389971556379760201589663475239558497522310660153299664405995323326978103090465613576196915310828145282410303161983212361303158301294731224998170287912642299271691818261670866926517043332524155895888209889674048989888203885696680321582031760557190911486818232641347772159995544052576046583194363030740777283747350284130584025044609362079086701164833810651579211020049343257591885496123281545177286702752980743535703992630577390134859710613576468467175268347993302398383352139389847246918127498784954373538799137259977639920702130765625284628340687061772253440982376505704022269865355563250140107355953407382973961137908159647730926611386726657759602942694505598422271635838150687181895494512861597661867510101721949640634321153501031039836311650377718544073832489609880058765633078854255270342313353174526250379803612839830747373869918536611302217297434023283179698501976301263919443772404562662403485631165441767143963402661540780526331520770897443812583869481770109493312067783370088882745042393061147374496589206787551920064118742378542138699717294963231636623440941120759002811810160235339108535035885067525270007702445009401304094824046119444268003697716017304736182280807329131298947257622705290813971862209013616534351859741279020405033743251103882639267093136350753009472345265378194541246658411452225710284137790297953490786198904208269736260250608538577764049851558044346753062237402367626304704192827090062991642625605570899956057374904436615823575198564894831946630453848323146872987426356687091977939487763539865829527782370063380768375634114003831541596005182542431106528845339523624390549103111870729788324607310089432318406122299120052117689453435524538084188353061256226091959077915744363123707516622352181218090378453365164560974149711431048321895121209342053597889824640468823899794624435306513304924149653774543960957224605207077902600006776317060131089860171465800202081260376770444989876701613918814467560152764243686834263796009263169512662370315738562375162495662555150179363815690258636670328995264969942302156663855732889380226780809664700280946169695021593693638259658234001494035127211083158794165171228610084925330970429203842341932314434840861311356128103331657018121059172786955985486838274173969681498997133816439675195666604278548428395321051260531064511490028314691500870805844151582378086400588858091183588228187892139545142329367632596797732413373727698119723454592536589654353522365250624403526288807117220069478736296254360184235402743162835491634812393048535759461903854832240877518999284361653747222822095014959214742665755670941420265017794129044995030967490939280644887007134874956540388439170247963686376927684330407182656574280996909709566625713304283372906344776776904922022843785738027488566198794720094594092185721863425313722515383532137278258141930958824022106337239192516280896276348499281377715290091791989218632422459167635467381865440694786864997290458666230234786616024131790008041855283070719393635627478459501417579053381943558315552011895476112044506491986471495096199488542661045772769687470701372148891522063097346068194457802467263987554487556012297358409597567804856137809254635084811731258109948869368468616095477705130063928477136284095921150928960210104279559377119245664318433017620644118619412307917442761028319256964917536664073203731477036246263597436806559913902476955009000925776282002390605649561243094965925919248250739886384571781085726180385362810769435838626573347207387529689081567543692513061598920955627795880063017698923683695762417544759955435424446053660534960592945966135033961108097490015451054982946359634519752854531500021903082465686454766092821542996866155867284464546379708544370024537108745709810996644022968796377269350373584111235696055576612271766383476480215520475256786669406064754712400029146473081109642367786408874144491725494094150066416948191912540216483728650356448824518098463446182445139324277594037673697406136748675239582559431835627705014153139101646345535022050379135959063943954186789378286453130609990658020268983520323547249726207866167988884083877902961440728766054158185240852000407112023551539965577342448703055058646069981151835269440821621915550015462832446110826290533167669920845039123441752225096127002289683496796231666060845555424278364823231879245453626487006149175757710794165679652656589391259560214717301832534435158772796578527271431862346924002340362359124958537470385427534830065757623762624403151175403460424260248775080706103642019880327144323467274851814835791635381734268253306147584421100197471177470542499492872158405193116120050585866589172388413029350276147399224819300555144569069347020060612939508458055278499682024658009278144259190730327122865909487977920705870703071947149759677200516541400635979989381169968878718973410211312356828725788465078303131693041606551833700453441553417253620972891925506131792651607498808506689193421786572313070937337011874002782398791412635071776879892753497067192731551046293260420353824722353324605262677640367291300870295225444221586155168746368268065412012782014189648955670746271945682091927225281959932670503044387593399218817514433537011202130008421710775913076577879522992223655354608291804454291929108153117515750591543261531606643275987500789221765818279212456873680877270224704551618213085689486372966872877135888515928387380114501049919784185472116331767679378888387883169645859531229540327002428292902753090149965236538256054742985181415145772008796018237669218027622414387488605783644591632728367478698195956128086738759891729105728884482253574911519003264192981618988953224968521498374071341059232781953546885028125663966149754206861087710354642479063444634349502800824675066013468531369509633989007336566393647709307640347586332415448943134159174132175003380985748995689405922054712800849853539387352326923849426198146823731505441974192645300143807250030436949603386945929961999026871610091524143239622069307651576988741689617386488317501164551155079936700754219346422154468327317762399338344775663076345302581668068257341133672531194724209184540112387058166267858521361546326981155063116383078255588854544432255792488084258472253433582900249668754230379347065314360922081855498401959750742027390511877231072539597408398344440425946643049759863222202005398631038957097145629600010371787365030239291107340745288565282060156006392946979299526339625115968607281654734266130402710405692215143116150879667903142551763274139060116502911235334544571636138674297684728688512323021761332821183005882447864732308139158033283777121727265885424278884473596971211664802213413140099785126803252917913626530020120539316097616476939245460248951243876837854906996016882854399933140009257249086573320823414616696781204608604753536652846421726599662598557275884127582067341128045254835253119145477710315409604362260643308586186257114882205390267080328200492336373657692956995060383043849529073687704204935986583877625855167053586131762743460805595628449476893916070052022265337212505331018059067280025607139059116699583381328443067916497582509535152617942602012967257101998065531210221290268140062435337007330309490708188769716947625336953919683826991814583661319859570340248396445106655870929064008025141641181263695372730831671039514939866009593279302642548051087270460771397797495786019374046182722355259117917130733206402415852813927473453357453832019195128022220540291453794626932069825848968626384987174742165289597951932670869881869199747531751966242777832755345796714811975457942569798713717070870383885679749822381167303265473726786570879814059460348286066119430592065934037544877059161493921420972595778106470004066748612494886704464754779324460696906585961634984092038058715054462349700045116216461238986725628511310002567112030319793491958880115567548536508433412389238401956077410580649577896595635737221897284512654286251374625159054838056016368048155248478076238815973704118226147363018627277641393357735500885732315683266872584955116797612576802790456220473646201888550926988740541510661020302064976140198795771469770166619801551689994406598119571346255465901411002191429814003390902346862848602637176173062118470824580525916597414946671218872434919617342841942478960427211410509902407743847247652213267758341145438824610463675266235706762613443651701767698230198435344192308237167966687086140797530038882449887447682261637525184163440027950047120921816705477731887701597689004350280918003088242716768055605191712690531484607079347386143546441094588114452144556848410511736358679805080536541102376737487531991885491079798471073295143825600360490747899708948214185576789024833070470440916961101790069312341439960170929863406567356399444160926980528045867420169872324868307636755408130867876101230286996711863171434169287298289662927966733637732789788590411238390221249695252416232010321352093220057632885922705558024517384771979367695690860606775259266148357225166381418194851675059028639489770869237779860800080484230149538286190017395614729757048619115413417826031540112342728210110265453734848990056850301253920616354274351154504118015590024577179383484422477555911981997094986404903557248293992594042384691245445225296670837117222622584392296630959918426907842317316233968411562346305038110495956633442510172098343430616834687642689926750900057857189637031423325748213528099058431403028757458291140078952868878301425675215211921693735124096721337441765666398798423520968914004562937934928914659108833291218034624164145773062767172282526978125512229694930338775880503366213343803897089290446258054496989670714059629322202953027370676423281130563374659966861746796519174036068629766046338532432608254752697614709897781725200050279705898349402024503362900951268226851749311722947404485202750625728727845891450913975509784718917749876377383992862826768758610154215549323637556737297051081568927281921045874483780302569978039679470157975134350706584110141811652475078573631026562864226949595992695848233138051877577993429551903583966994919525121759891115486378261766815077014447362298609680618442948807656991941242681193357120240895396764813158545335103324848910823263749134872609661619627923528922884538443080024589380915484762792467126254608176796297696306597437758478580111308706323150630548055291035024195352455467218830848006864735778432804315071617293497937763832238839433971032824289122774827140102770791938084018389575202273251204511075163441084028979880430863218585024311863603980500629430743778120198425162907042018671594561607382322708481392984123039727296041713470244707507713603634841000864057772776917769187676992385061351211461448747409776936763300675474916278068986724107976923825696036435573892289130862774888266653684548594024330870702873959250559153211992344788397225104670324240155954910366466851295004345766647331625105131765964175760989903492477768721077326062277056899728675661903506682483967864583104793098091037791213913892099150989601087223712574226201409629480742761685302918384415733682121622803240254542749312145796620816885648029862425333398583465702965438078278175617352652456647392120713227982092616823747108879971948128687912352607129319292997137806631596014988308741476993908699943408282066704539507841125807411292399563027399011798574783033132749650257982950175975720448973423540361615643762245943935650432653063408568050225683797508843869201174047127901028202480984337725015753143670123809660075302019518699106535862129511654642535299164857257398650892205834202827496671643588580157460210962792168985311306085941204522422505148866512346091039853459813778877925175664880881820942336208176821745519020515137747768170459826611003200657099431214076197044479401133648580115263640786897263652490602430293582844405605561699106869759935824395257407474279043774343640137528079594222362048735874674040585502888864834162721849358022026846327645492391827549118414847098026836645720319654138406610132109705250843072994878599063917654338449454280435921733728507177717423065373690379083603785561866993282257720194944173508478527870383935689133947319979913851651154991401964065260525146143329802420371683432758762537668985169388470882294053596971369917083004688871021685908444810812170096468269397001301399780307547561171416353717619374856662568124729016675660738546478486904207817878874257061146190442203873352046341608041164261084921190520974958884690040926284895557090131540660524205133489693256879936158410341943874760522719391280775763999738970120935825655213056030831453885071211926287190324347543700284617532662238368094318051846410283406027843480638046233838311269522903642884216252495449489370826719790361489178297957959649086167937064984701171061439586252222111233658699460786827694334267080310964524326677096885864294106418608625012244488467864353988046544894162661980716679061145673179935544522906384694534275874329112241943849689692974207194056902540826904836784128034492922676203342047690625074657995543205930933374892715882327157122656431895490833236831747865101053221805948276441607706366420169190589232629307937297244958758856390441719878561274942496434538543735655938789841065319159635962254811253069360902632384969225846362352275644888807581942423302587821095478349685661323028709942273885470165287777876527652985407817228711968954370279756510486765284049518036434766182100954505654495678452590093797401239622074425063293881515549432089823814488263942557559670309528309166280027006713655242977521919539455182286450735901230625862444571472625402623629691811628786021503156700537173656068957847424466443276053335003937585637412697427241774263759975716086808274969804693768977948042594057371170146395366159937148528241405098667371242074457529431871471440163671273723694405591821776069298204597725667837472366304341258304353219113108239091189587640919259587365383666224860665113908480617260462017528746224353809012298377107656287905417619546393716251870178104936374758992088438650223270236601051736514129001456747405262112780709807488519464591296596912473283159860298563821928928604464082461186341517295648104939660564459874614833281439447327241958540835231427216648790129626386740418562991800052640886273687166330164238459937520408645547860692922704052490295000072559511714174933807690869887124967179904743587864191240920930514715932288766788744282656051050736596121528962708885650436766916776901579787306441106219871125064521210354483217869179462661331046123131196265017893685224647170999607026301709649589305766985415926704010756501039444912968741219871688912884242934383019160637425193357047880468431678070093225848796367355473942381402316229932387989715945564700666805483462333455588209098163533644049939927037425422146864125895657292292709117177343043798014179302671493940379671293489057260909260142475488559863850977628174069635058030569062518067716714676871526376240482982385232630532919395315976186836223084152578171433807552052328331952985947828031394856820431511383584124514480670828425622153503945196717238591793260691853111911456498566678957374816924669958128165238498738145408605665151480050650318926522107170198718035213119510873618701359771629404925846869491912858348853032655298211165649368412942553339704930299706684212630591735906349998556424206028822386793409016693810849008594057282383886686795365133794002106169528044176916361276866152480409779281808358372836341013772103102210882697902253720156319534311098302237770080383219631206383557824240821892814730478584393550074228714945963002163076087410090308444882459463310651301242154683087315905756223495920497718306928079669473853019169440026547550292814243708029846125888766624669654537538068917641089285027706650182775082179442207565763251199794494359911694212740293901757556593892188499092395343065494150863039194035477894136140954832243706987828419688402814072446828570490332180908038859630972498730746874715090743587299423776613190451990902383798516235856715033724658249438578623737350145288019970086202810560436982602982920541755226503965840670939516939162940879173090892674182613749940539820662347475885985641958736760593214191363855366151395769678242743735009203001728141850389050342410185090209491121309332597860164697681910618688277138425138388125892626349125552263322827029500721780533527353619334276049778095918846333686292195515006197065608771072956936910880939039109421458688392543997840547567140550176705928475194552030398337186704608575511738396791771997474055502360439915623883290299011063032538928749846514557052546428120143772206555091427305287446747269007909657619807062934770173027705888325422849965599000775450799686605532113915037108885615955032894887103081573958913628360142885296540161394666138351884912538339039698772973069724132458099394592949881644534562442160317422154872411351389136665075840313754434697828041260670090649814339411189915438277491864173162874718946736743663285986822595928731660428867656674494121482865583205375187526556368990727979651555147953445396144784214940900009190030874269387598962458171561376000691370579941415249452991725560456851985503798795050455887686263200269489158734716856971127711950682706351077576652055803776442649490366667549950859558160659666122607991646476008668939964349539927500724102331069492327281572990956190322651976203834106890805739160224679156917853675490556362040460201119671827519161341931946458585036297366065175563151663725115175741304792138136332839740577607136388612933454292806345086499579566207854039912842154405879205259769807034671568057833795993813755426857179266524389245965121379107070465743024615201634568585783530866821736557912713264527282982119794615729922268604873332076384747478652008180572049087217516141408010680949584788773262098211792645644353770871159687017520884347397285278014967425403775387997311760462930524860312702513329456757586244558913563598646895461397432273778404998337831930078576148271971973980630450085550154950391863302994502818881179701898474405098862697164228042348018328972973286745366479082181013326116637892463567979190936742715123778907793815121758431648850463345556060286194060587226374475345612847155564561520514315027182129009881648437792086690362050274626435438892445475565065478185739541412305778673546205218452780243302494619290109282513512346854879023986058101928378195817613429069497240610015247928929404708196240123219402898484449371087844673937396564428069894673612421663120422648634003060886229575784193763443186864364988811926103272899611669992365796673810788675435538942480594753521251867492544704381730689534810085132754995664852764084712872391262886527687318620710178429435864758157527811573937400110304981777169539183629080251313863189757135717594875739884610109424531850717591733168380832891744985359088876719239416385407914214906108723365873275869403182926685810654001318048402658919479687377568764789288902610679598844723411813903362894433421185549807724264080993237511946065225978224854855808197308300163607405460527170561147819173565939492944539501776452281370786513638917769814425590435165576236886375273117056842542250682341060959234137637829868677590301009648127676391708957804187670689993346068998795110232867313102052241717497483384742451506420338634081683707962977865397038556700827473609706231736030537432038115118324021115998139777354959912428697356842231992634527974858873607812036686589127140146281604401630126631818585939456214861127144714933096793042957340384332479986989933225347135409468714472050202041980511852140412606161406058034423936676162999280170640658963695825560695340667203259626422841140862121062099245398258500766710510007531114156653172622192062239335982759430695851077483646467092240909598960498489258011373858704465011294591565871900155801003971979243594120841751831308394043161099244834688226008766111897775828128168383374817408864366340843067642082153933669292916534619045487948233560046481827529400528489313633692588236831625093010749654250423188690793001192682264386505470420168023614235594649042878880291636363850630672097905863283656770874009144878639210068328420239805084356282616274865182594082550577928997780483392622974707264446115633326806235864971044113613300965146856967504393570864691302892050906299724772899142128211842222772361483315084267129276266722482628211916194803760962545011471094349732596470621240273678747075067225599912401548254889322868572340010530110470861512291687713087315665179285458567803421451704682918122258321790639355274049091117225909147713000509609457620827281261214001224487487384822441775823405375220144251441742541414395491489992526001589697901948604661629305122458984509330574957231945788507269354472085552204060078237371718002232006356518429187249730891796985919531482980638370341815643104321463778535669905467657745917053830286701942802086484210476445371117259767609056168581581747727293613962169031224549792035565863687444977646758614660650131175896769263059994634488853424907842445040870809272735039178878980391220769724857484555653530007547575587907072371779726760239033413054002967387006947243758924791209578037477189195178633119044401089199258241915124881971839799712627320345680238918194354279404426894568615909090667385003953148914775437572567695782681659040400505128344108037353647173933425478994231708876708489661386477674143949818430385646381473556456531025027226467548327420929817409361653916551332701863676151086348565956741351052364850431157695080589924467224660870032830244002235697642651600168822084824093381234058398759425720629696352198227510943438418831930661182618477251583845719459953913100440748382605646999421774955986295586985970334529962490851979773566945221980637192610615589962082177506734867079832623613868030344238634206210147494285945355887238173130955201623541191949986909385338987072613229841393725396042108928174145597232243432656077006764714729613098398987186523118638714623755517018395163649428442269267998023832069985480654633873616349754585871962890917748774506537604232240144399470085216961128053644438741563530444893366955378064317637003514760839063937510240302090877347714072583128930703999601275009807347142927094606511634698496412055363778667969763433436568808637207040879395532499617572830410651210052897501850541475820946818063987316230081210151543001111609332887309094539273207424105174126319428535615671224140909743933234600522503089138353426150431884668387410799018009715544311560483576160918275430710577751657934955860185191814585774456490887576635064453114341155553431105611414588378045097416577862329380078829243970133771330351417101030984238292033241149321634220038689256410945798931719446498634479381032277001582695915237001657600658818791898871872569448470077845366966456738563236462359217744663768499863188577932924884676220008971016364464874480596627970237216507066034960164742558898128981466568499538516820966173718602015093020508290803995892248151496675717375047206814819945840696864701029274545650772347206634306289247896956432537542591914105503646614052836432687855066067128897850005083449535921925435338410498128674252138926254015171887435403250359904819513522006735964594943505302285731762244609143070710103388643617518955735705981382793021593029335931907626979672086735617318698414150387134953161501577546804554015106173999854985054750798414623028043807154032610288036286677373400396631837361172412404195171991745673842870352136399434978704123049989148517459317289420539525206441728991694289157721672457820321340699747934896465774971149031035093885482910694885615194794099019668113152092747953799243074706878133943927200813878870076760845388459418871562871513443139447605399491157633301429670710185485000822595347712628835674591305606686258756366538007643798326369612562101894006714372453415935777239826609706372779556158549627050586146406150250568305665526713248337994976893649775574078530090833335165024397951584239744366190556351720574848235780812217729993388676506902305382509745462834693051602006390813850411143132177421273320435882801512619698997118605452878171487024643252883539880424919742107920698367710517843013868608246679374296990583234110764990319806384565192337685474197991775332186289925784242278293398600769219501709792476574017161751991240845955754296532103477791683347587604545859745862721617709731912145522212074120166011638159846558574626637706982653245743947304346181781710706205265054362961270817486688454119757454249526270132777332968255893563154893352418455658661101625746604997692476074016121741696438067272221063522357170402455096790418148107335788373632805923916658367199980633587800633781885981646439185293049492282920538010686367505015435912491597689456656919788617138857604972890597661124638235517484247833376905821393215697439105523668738924238846799633500002953502989182659236763298999790672822541067832853644623166155351220970343221178777353554088906314028504868531132903583074977669327992854068308786049230945976675569768634039634021036723884010368099344297781870429786720129006794670505966605566913715417665513669134283471852142298928417193276450080843876189066851920920124140102993805379930770102923148145051391958570911225987972060637781664653044408317261416747847236620745549878508922284415729032957096803665008070039869145719681266756779289322606107290363722282272485306760555897315366479893120606206098311864669443324308759240528945969329409853982414442101014356133145665925324096005780262835347702880760874583992205895474280834809059321838507405206910614007645608807715364033750872046843722289906382489872968588771512355887324011110868816091022145425645406077454730050966354851132544723908096016273211135412452908231944624183786552294024490349417166397804831296346310315665628281592154139744749991789579305597514370439165083359190687187527355523317761764738070026126226296973984575314501504496422945568740099030564419453976073964743686270669239713612657578175527728819812750095865638816164337612770887151759045558617648790065274751736199241678141047221474189524146826908077311743988683466092210587761158569368202187138414316478892206509216633272375392692502057645129028525759434118120375862210554180120792089982480709521865111655413637696778881568002554948526376140683240626338087976166483164401123491469496334397669879546037790220022167837047185151678807051679873162345808305220572403897969541375111307635758324797601101957636782550266205557897062096189150017745111299192359311293431226751629655155928922219358934225846981882546777332062485404603397241701680271814610950591287733839293250059393131409193838163573173337499034528295238598489560562851738713636644988643265690136115679183563111937240433138434749709578971904326613217430289421678963315452360816028854288833232827572366349741579251985682164688000583975945128521676083843294622353852477376898585745152832570813562743794841830316224801785080615523643853763667987594777305542890370590075452787913976805583165644131909149713045674900452156344049756380974862280000795586473996265835778892730164682314058631093405163180981917356529057064211253271724023691836332697218500802216056294982784007454989342025734943501551100472442223405597666983154893892632449783420324211626784303348812831493850854921245879987056067424985331140463903508621112053985099869279049974097622747998810175332120524211172802879865644603482103767731503239805647020492372606850342537354245360211200800984740167685970695056642043811080634329745989504674606999849866679030439056822248960269852312602616854774404478683262093225886483305861459890724081367935088653302656369440811509868862492458453823622247341065482277990568193000081554290020553261801581520027800482657477256524456181975157179430529495509066055186998969979007379407423384992699357110878436432269937431453976700636398716522268973555903852171246060397639521981110130668033939542788574611602105687106468275948331368434268562810238205559937402406959327517688860711655380553497441632580206179913584363764493959021663724084660163970280472297295071107189615761622672513712544742718599357473764214084690646887448773760323317562744565049820150917740024639672019484530289268053308199445885240843087185020083044247319837357213637824291073692398399676012482670334448396607556253132259981749338629451262492248137487858163312542430307553567435705807609883136885037791506458009004475532585326651965397799280051482573720268786974407868591240685018676323465851228027645973117521018467992641077817351811330249621411127355946062013755455453474311309316131584886033488953622557497474330778885169052746115832695705384094464897591616030636484520003149509183792765038309167628932444571262036068846300755530830731379501401387025693849349593351949531102614258260831426634652372214652543472080227555471893860866452898232536207944934118625938204090676776012469628893023417939781785245224034610999635529205473123202158639838148925295487412456940809441414821762845433661462271413241454023716090068110413868811798247165766422409154506565487796063540722745077706606737963235546227003368840758493202541883020544639983928959039736062992929407012175630352796181718513611329201600920308330724779936738097737195860265864397714720123485518343775502628594409522718742852947633956712927288297058838482538528316560638215685301224659096762357029159180064326437522337052202013771853972414725211495620838657894239958963738258796838314726092383191586116627275814197162389877746608201835372836213085863399384968114386748345781993332824245864576048708829377115663978560548353958619501590679835827807730567976772209857894125298846267164148479204027838556830773489177643585066204275508240607761833189290732461757376213342753672668690914492572002412837493808825076598198612557498360792539652199968979683013777768800413339341037958953675092296326426281439611244690158485726505150085551261791928205575658308507679701100060595737738157290607123918898915717881779707422181743594647657195473112573758999810386138480483632374005646051056214129018732807029312899250121235440161300360499992033440801592831158827351181813619328654940545471229107549414883712146191959119424666652384035129113670203542750276308284982835670442966962264291326632590931343899049059926159516166810921885808851209820282568587360403903793861109901423179691615974184664918046324666506733444551893064639260557623738401514042181955807888791328274631599517056738463870525235145847235268896805639343960826043242848708580670453901018163468374236933674955130340996612648037024052931625138695427006706309677992935393986787829437577645273725594098009132129417816477758603489601431705233500313081475222533750273502019148529968511400033876026739997197532215403898564541090383688694435922292308834899372206153814677364779859043864183184301408282331543860666485023926027113819623577747987504863842462538312941785509515442668968727632423699425090324907810589141845523529585768817952495443174858658612071309999650309392988408987160623906233208516409241192940778047533919041695830762883803694383981509298400856071936572977895933497127859654376303106199377112131929183534390519493797239220193391120719932788620056788214198003327045561028948131171932003302234550994241207598137313591632184238113473136629219001046220501702009855378194658372945695594590628869383247793349043107581471465068980146409575093162898730765828879477343549161186265996527146358693588184031892424196662523426680181736576038813322298045059408874352549785480542507797464632571761006980831291929888699995737386028615136750401962451534285720550476883366874225019099189007550843998218312465641783532236462244369537699721821120599014828372506494426727551046742529850682136008796677424854656817384596449272546182318968156599295143907483504396700298494199805671942549587604053910868815956380978178358117371350369504980094582075894679384611056934547656147072145083725093370118131498064518753681886981833135820615820775523574481771349276212641897143163984275885395100321484708176662357021753651764257611649981032720531996692922286514666941595902463977089772229551404762143655871739710319890162310212668493779288390974598224435584409269285691544308792123102525354992300629989465579988910042117083300895691013058501897772320734300647285103298838162102831280033429656349466028739863509940704824873206168538968714329874686307302885132977632310154376926053754307057696884248764738683429733123730407666642438065410773137375098825007657388528891025570279926916050377742148888044087358364596015679240935281536434740911140829396303738582351659492331965823409278879192342810558665205821806538007702521883695348648541901319585684334774603201941349819216197054825730048292740632982398532372617730638477541412492469040510390753978692707440383615494797392145919299196741624499932896162567184005920450115166326956879835723444289126542854332897468885453527828937553235231636454122771881237152183005671197155184795172832988684646248533296530114053414987370174469361987179466942773583899239133502805602455287364511132752004438775063332544392783573085770568541004016397627486636166330919125219760366057495004916608331768195227125283667297434103395853030604027375679147424876030826431407304319899092497432529304951977994237811527955953246799494618066956852501926733583117880769425802050384334170747010818076698135643315143655912467057905970967620463393354562914261675094992957721176904119879781245136890947772769182406011917756896332932349476512542966256483617556464794534200144111292860820147347219304960805667829438940550238672885344141152036002202833242058802965369449314680661378571591288830807816232261841006895580006010835883544954888255019968091985187720973654475485026266907287239375065338405036696487335743121622995696700097095947413512654879807364503857902716554473988230833065164053538350791306152556525237074634801853229020798218649733178234351544465212598550879450570102595688327435288047479017847563881762313616854378481655724334369182967460782151347427317263308358738244380401650961167075795312302322345589373493891151579962728677998821450288772929537393970954279838157331308155196914174937445294727770427541257160677227545396970482167419075916346622472781642347047464841478214949519040231200056876460179622576793179586148247463883526813487167792674920692029281495120872677570616677472764329137383415812854480953472885312170473106432648118742350604992067001822079808978599197604503000992069891532164638275744402914644205500626430015445056911282817314149306907106525509810702100721194675360546825273197854307279566346731123900123543372000662525166701610675602576450015927702730807157571766597588199353084101972231308394496254230533770323294220779941174621824861855606498707605471578360719793548495581248646478605925925462445861676374339553117390153637811803749862921165875783654631566638939619052074142876502977628637881409496622427680763976915309062508034961311349683683995227744836905940496190650475857905047886452344681911029693539298809158027375536025748171165925271174963217763340933341301444702742678946755396264806839536728950321408680102256742877707215666507867556285461697108292233198233040999516008462384251406894140865690201136135205309335353885851200807542103108299684584475171992775762297257978923752328732255908759395244850236602456080731201389501255276221966740958631537162530584945960443824003519714634320994211698558936071797075432491184358730062390410041647597550613789984683921492398355757202416198367137168249973997547458835139160569310484772221415351279123959662293630484691423862848969300798429175506466235273906590265034440274353580860636259551225901492743731023845578012522465159786978671284025753470332803662196607942356355384812318966172157206920560972441902306206561781966830738506120097820472491354534344630046412951065097907921111049992693186492165379076132275961702438808945707782857046250274160183423327382043785103134638616599078005571980938081133519003791035967427614109068557636261039016844686376345661157924299072715292741522079360388809122650365143568592813693263435517863369317409540494987982925864083621717900254157572964950108296957468004162068936114104956732016247027304951787578489676854559849102252677615576551920924077311616884366205431848379527469752306838230051820709856997551679062857429968985929084705998099570490395194978202266484107520988100416895018551743911696806456691452926149930616413758949439095611073944382140015379587957811049985932671256364504890905743355129180986736629245682709668901120381360025649591928880132480385031387222851918938400626267887525912356142453713366815679015635490651616572843202313802843850189411538289087060079668378564058521940197163142721395980189644987929000790266621634099136505460589391498704157245420578988171097938013234115179344575088302617343996973127980040605762346503464945019672776505221599103192282920787099022000603732058774530751896018455554320044350040547302197752843608504659411968550479003563153109925996336085664222635436161499302128589218536479316817833761994620001826184902879928981265101333060830774329548765573524554973345351215599398214307265938430637105691238869354263785504806108428866334024814177632865830806046088701555832329928456010022308388505742185949152070733185944684902008482996599974818416525759995135337542019574688020975843365370993371281061379558036788033528809965157064531247213060443771769772296940743228172299751231841034828330347741267023937496003777349307563406422971662899756605799076685812058059221700010566898319834260387966599884975399549412491214416696741195931391016473008525311916472542574856932296046622199261962273317452907803051296835268484176658443712570703072708148517861285572343841760274126961655711644485425130576651440144944146591496582749951000817262745812267662312196422362848806076296913350075372639420204229256198846733468806852703346771065636993517602031339139214124878440986929947027325448807505051081246495857631466370102211196450223778308426576533363617864881887220763243140182334648481080427392069930005610415259196970665087004557770636106047496842932705245029377476634316686156401645976064932976807556396946370285526991729584634276274980622941462236616784875304445075633696011110456488104798142356387212680072918741682044169179056418942981210495984947335028546666501661696385966965904601676595757122325683817708071489354471977589265585306239193040772928203513638988916346285661084379470716833887403576723869605931436600931466342225449287134098902979040168171141001869106615327486999862855521444343054348739303340055492696898792426785871158917392052872485868871340414242943198980801155026372433080955337806561201001820491774197009607473680076993211251266329398599296431126748314489005805514306316490050283814983631416953868024313995547831364043007977199379589934938824334794687126627193378456144405760079081542497577633589545911449141007934555264099596342691354931687924271906920926156487544536029087321438181433474592763390604359364485656227590802502869294682510767103306156391338931904246620587797227383686603738696723357345427287727199954437479273178193525819789813048082854772779532647296206932170068535202558165988531657857630209936697783307631879443113099531015029462427915282038602873532367150372785372714731373070055780627766808775659959520993955842590987074114464280061999272896290106671011071219480402506288314230635273464271416144612004768515824168156618061477883246723676219510215042161098048244999565461914829073338269805908173208272434236603463118529625781628156191149916562995736062751785221283992110615313214848344228182830000656234798437802839180284120125396639071637789133399510613031955508839753848256952771679963128530250072429817394616611117902171031177733603127041713508154092175075603135278721205426824246163222738453842744257763813935079304562076867026103516587722940361029902833962271213563189933494825657456978408663313199052093990373577148255436619478269942605284687231633012481283078187867770861242792060508221567543921640774835280484673537481797430878726875853353698606538495893261821551524258458635828494129018019454386437091844226005145748632423424568613104845773548508350633044531930781261061744184909568292515997809862481924964138590952387869282555607703364997384668896426895556334176014909984084010980432795391504248331786883375592980163206246676389695774508010542915169594550293838485967672528603809867727370183802993591970360472222014526759496849646687947577838041354785391502589864992272329563701634497549577788620728886378611158645952218353380704471624935719911099564336664481467729238029524580521421725069239725359503010212688112845189927605587905017909712813799024974734624426895608267255544196628040089521756196492658291163055118578649746311806914566622701384876452979299571592866240422629320509459249634704510202216147847835419132636011493150348358610190239433735078389271351301389948852604426248455772448998775427169186999027543173070327055359437972915726644481820189989174689644650459774677705621824042348955193401083563917194478489603111125670730826023862538294476157985623041293169378015636294245947559240842085689704237401146323628586744661413266489723749551136968805652529170681892579957294901632495893770442886280044783712308533589665986537783684747559256744241575998415362134994040865226335459522130873166301790573249603883318450425209015918851271455510646941225005145591804874678231664383647052400136099731920978916156499075969237475723585840145069379674869275527426979344918418426426548035168018772948498749977749550789612459645556135042321591051489359471387726066498008624349258877647287505426068606468924579884742136485760583374626835873575919736245130163883447575027544618072639520374218645281606043835335166122945622918254643659253670707279099222741447729885841301961590845359096278626851075963226269928491650048574513032535444497074699747233887035982594289941192395946849238706959056981233181775212688716438669737925005265320258476639075223452408552760777282409434905538509109234917105358277713164462149988819134745891660805958843090522366441193193369929112708874514261495904699029316239448996699616807996754108100644223499872841742111499690290896023216549773507298006298664328944780569429886754717564648378671075510394773257834661262818579793678767806390918885489380754556516107576755593976016999967143769446758879092057224708181451958390859941187859632056713044843480407382319850525396168776376735024071641740924982282341209290240145037153827814896321445264179360699614279314944823871021749367085891397274789062709920741395840176358422132288565842714619486932469036900101766776617692592628443176455777522585038295868030060061098185208035125729595405710847686401449845923255455413770065817426870247683371165388915982624009916785627380928747976248462924180842232752106020510344006387572279291385949094800244751289420680025867299305342134647033223851240057644336343331340260146089785253843818798223058895535174544677991232692157223847377102288633176841358351938319026613830621527742174795138679932236300036047409233406800496842400590288751586588830357600090610386252595462929346090575451198874610316726439663408293975556011975740678728704183405874648822120646677649158100860478206055656844532117018079892556625244454421259530730066946659573293510350104538660799506230984638900974756464890829422116800268084231622071272700967333874424687179078868698665143480611244931342112261526057230487365997237285603846775913085841150721345255990182688952040543737934976095330557237437698628496360294541049028824164846897886801387083249294045072691599568292453674703343725175823106382414694134764256735125422056106839423019324758572099403966175064032713591988467729706539644978051402809816570745215913647957176603531327586103331040346218700289730557119726563262086508517345991610877820962125854185528468885976532125574772185508374119816228175465838713788160642039356530186374024168752044269535796658331884339774233324158667203512569765755361278422539872711737199044470371605595224102107146431130054204762765361263932271288605836140602286258779584621389579858706389323836844117272102579629629346034028140847188250950834959586296376438866611503520246669399492727908282824898681548586992006885206601846643811043090011301369285155603381989425101780055253377037766189917738373353932357493314784050837543294206208445434246612121788735844456396950559111226384432957423267572877906674547996538363745718939362927263764116856411150153056195208821200523112352693089803756274593636742805342490612907068882823670257094031113714187462200541614315918746094929928026462186801391367544261422877424137890059660527315488797899919359027544953962778667513055907030619895028660767717309599708456113738366423029239787675990798213525360561600094059491201645238443447188288277591207586004516914311664116892032836005190717527834524020101251980643979181354620350518671012697794899654584507632241696838299004438107277964984623306318699596190959686423405084727821565509272319187184507998994484292333132389544036787591760101135421842491593009512105898860186430838725188369454826254729740980931220355205356151600472398004556691505968190936929266194336436502880885652413292073784139912164299837924287692476299445181330465172588979804728860545317337102919674187611602083984725674895925013741173037992841714246359572406753437429650274793348509192451341230847020180851315101903914450827560770356926849078035734013524943681351514310692456294087176969873293235257145616646967518772995906651651518131091755110980999065035563535986868250920537216571378946780241350074132831365201836161295973198859095804121126718497157023112250444358273547471834066154081440044229424155975110136489671845907625877147830598739639177951461121556681458310566746372434897495638546430777023193177836862827751567659502412071672236555491741159638594793795820307705999773058492850804703798643307141855024981258553505122118677489998695103416359170233685789020043864227215299138898434033227002851054529011401719471513487709948553561305347353651051327046869922599770423389947439328308956321969882185279221511890769316958904565161547458391840621392132862298172274541201072692346255699642001519364087596398565794785338278134813045112413710008127428156425336155575798847638465271418190467563267906170425843586548966771863502700038090781585886263595262063253103074492816667476874809930950116831347260412763566445518030587799647460229482135674860428800735412703375047886655605319365351089447675009540359160906953765110062706425660935206628777582183030176525889408824903760351210348071707121306961894382423438670277099782877725306317463824514522553163837176191103963912072024572817868154798681514309287153265190728701870326639056820558855839230649510330525383829362355215479409236739596875509430788783807883127617778009721751319743106887027996085414290040065885032450364617628546767230716911540319197358300076147191980785322869349708910178861384177491172142984027440803609028152291113676729780604016139896591557632474061279087837138742637765722246546768177876895895557451400049757721219593687987381352708751317479003734831986952904561512790652454897465664422285967405891215604617218191422077267964210074632394095365365487954048819386668940596277216534099870528628586458761548261979185419327345009500643968271382990901470840674689760640453266085201049353111709427095673340278439517459415391462002483867766844697345033800601133413540007408584231848500036780344794895066777133595056785079625143947111129547316680167932294984813678006551135831135377501772440246500813378564672547063097306973916683995940608616676217758596402563314227916679727559362911613866119976704981237311683553588959740253818277576953318752577909204094758014154258292821359805810822868639802973949314897171651433626596533407563656946218885698482992620750524627018244293334766988654777708869713672676785410458320637705775199197441430715281053125984804150645791730124243493612171822230572744822186478856214002194989192708615677810174587535418463408169107107631921198648048115817330942183172592777328780297816473852006769038315493209524194522450845369653935310889400750656311451202787608896627322868437248857576314603485498813025823925785392853385032229354411680826619521969415659014005450060490905839972934880569076559285674375621596167732783647494558021213413541123814541418115618119102637493121045366523524593233594929560280181066204351793823189147894721227448565978343663081033620837677520263645429202751942115457039881303551508308745903856274553429314071481774766102513689920968005907969600035470478668947433480209889094201249744802383568669356749760638247983179288259195541326674137715855429899228850418834691845064650179806982311771241905192662006939031802749336321785664291052997714229252020668602170205694983142065785862223688282995051996877101500670842079771422053086320371482659115552255292163892677395909319029071210235295959109871290222687120272663182279403399585774290311805812142925667158129469853410625780261773838298991121398017269147578858593015970363088467625051101371868245630571210765980261040987719489040271148315758397439323208015120730860156276359412116224529969173277164433497927514624506926262675075482189907362315611693241990739661383725457689341721337800558181597669066285053141688523536301521198730727363164623171696347043366093593827479701229896047822983425364167464574533399874847171992176503543297445893971597266155412183128024767979061662005702979306623329931499715727525897973318275284034864782621414841563433946708407298474062876261542867097652624089646160776682863469420616601641643731758774448214826258467473610751032835535124090681227611952588895727515915628706526226932225610096826618252641927340809645841884306457091324523013253634389557213359358956882116535088030934075563221161249388399870157149040801782547568568151159020477526841333044045051695031717009469110380035342743198401236643656494539515913910867884761234439741957593531019806517904945988693921597279803392631220430929792084152178914674694103913960569936525275953640087166423529076757424780441549484035812325982996238822410946315376807748156013476386315844696943271308427714792611791248110081281816322598667979572385775721739624535247992055786879464095070456676463169772788532391482913452230531342011268697182189892318501415135106738139034086934860023900690640702468049553815305754688872799690231908324545739512089100199844672380723863731855733789386504961179797978531932995119311087499804270533107316844449270008824946223958311199826429028054143316413446908670347712488524101823734159926911160730835070070933183178598951976605371210355203232843398636988924513718241721303101259089514920710243385843077521504817777955208418071070815215485858260013007323976702350248279831080265192237933710798778978145194124905881028191244940576437162612906116277034247188821309954013171357370486477901625128080763845690232915953835193728427720801938829468138181344914820354633522450828355251100154731504247883270471068031681375747705705858133816018614038845040451321325132858730285501155925628041718227204376657043668527193023839473171354936481803780349143990224368402715870453706090534643725244400411454346765774594828376137583854704764250394742972770125928585831033931956995228479782162551819919060128580195113553958190232411129251150231463894905569408526895997749226595138839234096751647465931970098447709298504051723669780293090313662183215882636351084952456859470938924413071636520658608711988212122601053465983828167699325497260392272215133074710406169688953309537117944979790593909602586712041981734066071331283066325551802038177541377819362056835088719003869160395473787914154034180965811429222166530660296392754180089804620788619016687735105273655271449212723448951982524917764546047110551955823921036084449725102339717789117701730905336568112096506375697175193656067278576789298799660187325228693951887013732136639004258575345400120987006832904640450692416072738789485205099844141307040561871485017487215877830308577356307951272835643741958604803992208439443645729481547425628736737418018889779607468733369167718130130420135535227497863173838647160282406996103159179242763092696062150103612234856523999818508860232483556580956616978844851599851152737909696797036509523040322069508822876491656881171218325666964830644552556019718701290495329757614435745906389902334522827264025261798606456625409212171245644979232976205630383684780790135174380483097695350630059156201765249787897417247318542638686296743385181505822222803560020724998874320954612402234794055045550064963032826310272598039043325052759355404636907285020970498967668493197730850694142738244278496261140897512384696733254869241520006555099875287190958352532108732605733657834909041852474340276510787730308906196910964684954008557575844224021888434582150223762697450823158458185819994722841985100717573923697516604937340751070836196455557617292387284544487322437785366452681467266177338402129631181355186130069157493403186540086195422935257146291912622700544848675040885110060780211984887233519081112038223082779705580920041937196703620945687740988076454005210656780726801428375077232678970372700852153480052800443629274119821067878166255344473252477378082897664644790385849112993116234072669313390065387700264794358281761017683114430063688631773873682050679075044903804321649714247287164294943533264870873070798265049583780158548793931667666608991668069036625019933503282311815458283186366230247436243006765183314876685898888555066737201353449635368537684922074246389581535119922197467286172503279724580851913508672323480577511484588331927813207664570823557842624759636735731798475785412311610315587027604042741398635792237420004735762609086547373051460302269673796350201379856747736029188352521882930144560995873966323218834920697438374269112543322566862077469927840958473696401787871189857652445736438489806277503280958432482508993078622762116804219119202353427773451728773280989640449951696176213794774432726260308126613050511913954578325805909685477637656684804923552419307310764908824417270676692502734042738476512612458214043293272189497557628546615584438844376009376453844046838980775563581130280228195296238878851755649536899504069605915032216066099809395068716650404038028166264981015004049908627831623603710407234956765040063142853583414053292428875021962055524378558382390874767232984886627346675802292534507647450720931980491002452287071093418249859250550669641692652767527527416149532668376419213414791936129551681690613674425611744216026290842685116604616171739811800747936609594645597717228417069234532418319995541816785009132496037829812214280321205305566313513401027199736070665727164967167853744173734963845547065839846295201287904119153730114116466142610687422127892576642328430135286017892500863243820015136802954521028464616014171994224543011453494848134554171853351909393540047259138575028608029349845316719790121434678265693392314383008100071812421485832976415910099543254484849544790567525041051363348010845421909779772132553089726871120207460922190404663706768383197718445038850904149636520923227167234919311119610657142012991858590679976340783247672930802144462127173273382493246505374331174160870387021490985307699949943356838509711135693576069092583720814445238040176928272368269211063181284022991861713409912643731744621297904203905575015731837175926798436090812165941872062925849752451126870214321436450457836277286194311276076167463610101325612122281541883813489939667500142785379814633874531376265099766170519907396897760604720260619819971606461539998555005228508245523136329740924584773237251852526097501840288900795104353615800845904342205864176731198872067700195019724087668291957282961529851532412898838598094811314943136656589773288637273983078308040341677943494099349818808518953062932864338966663162355905530707703905209448050462703129092559063572393042423655219983232337571022865510713427848666107149477781471329599454690106466303539202085883687684190081253755301598352203569283187576482895808014714370681471877194851642670234124565523280522544480752816754010180805880324240210803116936124140351578084301880681477341037978561259370173478320497775428699864990021813825192010326958324620584673591823756142724138382469612997311449952434672598999817748877880739668885101185247997668951611288475815212019475625138075020936561897219277049264751246154579877352084274818145941505404101428618589248425260898377471895913950983655165336093452091806347573117828678666212786828114958660890467165582344108768631670219909514242172003796108596086978174673418376371816377656876690068755810122050706514647179401420748628027771381401198447431969452276356070554028845823084490329980584756622967616921305614497592370115122696152477743511551397482304613745737850292987988761814623404014913878534125170248226326447231038114966063833343318507060665241478798102850484611867308571026925858650011336094613029619809026595580935205587204960895094114189766329624320178043783012998889084750273626123581543136883648642015412494126231080616177402568764958155487937146249380514428269598286527330966378431879072981065652692782164043675785900326605151789728460214537880695180278292480961559581465185325173946704810694019596353160377394918465498770089288564366719382243850195065379112666895501610316647001651398275867364633525619114634811112194973848411241738996118906902509871570412820016755485709849603875169380361674189861497963442030457174520928513326620846816006073070028115228431749466848500292325361213497739561550327945562876650934950413941049366316444396001537985264185863600039249824310954434773733057266283929445285493570734509561344698047078953068444075752721517348763157129834368550983053663561639448334606001983659547347919654660677895862733056983531286962084449164684663870556847313286071754100757512204193398483147705989461574586946549768328349985174367291124961757499995773259905360033738827077184717292835968693076902480105735782522583372639583792810857191542435041106137591476288383229457256635804508833069142069022255237042039735301303617452279587405727999315757548684635408121497860666019859397518253575359918261686629369109624320991095708539769027783734735363247058601560419124646211490545762368614204971213865878174767954129531252109127432376902147363697551400739171782377529701857721211093604652704159444867715783850527717243252315596669067893289879324073528300107679896579430876884480488487843944249942129100946165343705073837999531026038947681717613256319003874037091114188266288706228207892539746751627194271826333201304885623188991879930807823310346700120778058181744015735220388534342162209067158304987930024721858302030140300543759856020449738553212070254262783543219839053112325851122281226952320127585616247537724457769377290407425066550460198052607015698194545385132209480532060538439873821441382555416958871478923854723412828295171714955703216217847613437050478122994889289887445687929949940810971326116693557243734685344010028773599979778667864075333512983104947125751849000091657932887179820035475846490614430715750224218529072719994855261987635930331830768555760928681995818990388096312463694313839776565544751220114642217630658779236169914272704142797568303916042710471940977530332549609497138966026219927765680384193772530323163734318120198651042906916838737427532254274702247253876179926714855774953561036608932756681256069249340244150716846071053670546759902170969182047140793712034845805176251426674414450582530806179167800498229302951637961787128405820991765372235133337288622031234234871902744368048246210783504303961292036071786018119913712977574251833416984033661741182030978519286075738639591999715034561275311097429923440061265456795908724033775073041556365518279221057378461606887775634770545834402374353612262523954610414816884193519676708634444010177539281608680652263254481851827286188347148422657710179898204223602768013618471355800251282081715782117597135029313891947083794986920202535452228003520712693084042879206079713729916322940479384722047227868418466763671238882367061334034385945802264590054919405055423471158010929468980053575895810093186179118258137955966786435273212814691322118508043731897242968314912046130610320716083719233172591918743237904898757644452623483345884074558605877017849736100025397990731486793042736123787115518443330374832940091157472427870447460277932278847881168896114646085499496016736528795915374586490400961898560431852641298337281539150019615688752372681003847072695291603663888303490138493520978308400911367868231730650248068534515620483085110197365624846731950905151422186761765891163324488443506424464664771404670971173202008944785037988671078902920509467133373925038227138012358375356106619526801550519123871403518560266733637589121031965696328333445835260192843852248221675264571525573162953254924961843339871928057041198880567745749958261393494672838192616145359861648271696355916485405687570244031943293505841677026101211008266890478420313115671501596356514077172800820439271655584942136787035604107491467877448441144626454562540228115250748520191159529035494371124934739211577244930545364567994470487352885109674070544738192210140132146682893438556615283090189057507344424293268898392234285933029588419493952407967207632966952826014649417777193927963344129559224856759967492706858447691528030882073633093980960318651539629340229311344156735973783034199066951395966351857083245704652653522692225198034738048364117992610595109172610566722617875697260826816910894222804687270221934610886801630844826966447719896579934465013235447959556720157434804478120181856098454649705138433202374535126966970926886729228781539715876968113496159477738197458841356944493740275737153627221199913007629564737877657627170935998546185789548365788117932326385513968637047325474727880850248512361365251861345849987753422056279744648820477499729354514735720246085165495107266326473312041880847282673743692497014876916902595724501501217771660361066781645745278725480659585416292732954330663340833431154054579376839886597022530093924657154806763513119161032166525538641897343760242301429081971244040574084808811125716653220284203042387384483725792880437175932273231102501511473223225240362204513820425511342530159903276098801285728811742761143441748683494435116938028617143346705992353028121779285775331203330053421008425618435412625953571904310832415717552066450251937818018451352373537986705330904359950246944075938925022228039278803126857208349086545273221666123319439827576495105955398604844942385596924176730435547822855775088590912476459335622430963397677236573099484428487754629763397109488199431859599170045676060963064864572873379718537633850232546184868033291871627091977319600140808482833157225113482674031707832799768824837896865597123765742835165244410780932096588670541292532219322798996359047331096285563199884142974273376357517844639170101397061298424319430906580076726022771835885692171458281138108031611983315784951397424647622868096617999903219775568956220975095594376879700050248634388107634984951530480388670576160547716562261234813916569931149876545818064192921428964885193285633380965744477813279579650906391915537529948089068923718803059278860575547899786663925682311358367362601978270107878515011422209444027080290749247542715328006969951184355734194747108922782899438239301476046739651505758258561769278965550593285009813544096257271453690537054446900011516538648356094922222286246781004552320877218269698950027213404709225217067925671090625317458136003816802965983171996233126639547072182459055434276401991991625158963566090924331683250205106596160190615026961688351860033164385578871997578295782367906597516964827266073925809657913078836985568382022588875984304930473129472709318776947220086011018249589669304143147874437028749344330661148066845118274750128417091265670139830046113137822978637781584936514822711108016371791171547822811520999318453046593962990001380912261726444588402093653874648299957404108191683915588772701892834563985976838339280683188322818742215785806342859884196350127493090308694048233817958856815025172909991776363327891973234200012926404266388887292509463910586338075600691366947717904142456966287028277563321211931050731924295893673564914750558482882862555421620553092348969840905287998798965678566625680350961037884676490671856326355242008005619630615862105381669034937496838244911710601991253910701800121885155373847029153201969039662872268706125005145923508105798473625465646784452272752907734109797437499479923414052145269314850925187517337788895005998903412009243064327614674299426907656629786867610982950194174370830694291125013870068965388201829704929948526931056760529943723332517997201579557768953175253968466714234166808349521087789038690974796252914755778177952946816941275522425224561750672251548620753824737753116928463738074310352184306432598134395361175283981983296057582177626281039018323931838923804441217355655823424494308375247671908619256981858005322764470983473352558357622694959162049922180811939000325252235232924140013969059171629024393281510329492287364850946481958944617334440276415353507850422109345347820488766556363058082304181185386260130863537997687120562455079659600757823413846401744355036198612670609082443059527224983977103367895847913023090234765434420893764126443330636412424308336523655253364456220311328482540439787986613346604827731693737447916181107372263796844083894790049966238505729659876964171029778503576028843907185506291912746132607104361068890398309206829519671088066875845269866467302207247379067660111759520972982721820968269674101636027615782891595048053905064173450496545124584835000785721108315077773900027783376671651026802173157932862911289769265661251853776543670094615133995811882498997732825353007731614916539214688900547070711150937029381868738302385172462818597889485365009138419950482668812042071115101941975500448174882006721773095178452612747855548617061581084504402372092894626962023907693369830494696809314858990108623324564496264401172889783508567634845538383471495091304617356213309026354264746543479463711743738391622513951659532112815785163232304238369921860028873574650356329640241482342926132483123388578605414261563639624714094520418426863819577834249551591450828667512699145994885258644424008138517965656568388240998837498562308698988511181785282037541724878237983731669749222275811079981531512861405046728621888554236046672152466082886938338028593402625795148372878542942279919879725098080912228944238156625129794215531262933007624389565210147566591391869253744388786729410280790600821771993039501953431598533872403849812277180971829140284604765736499794799816271905390728597487386666122093021708318002811704302618663781846971339986275225835598133844115713028275474433654268895478624526121006680795282452230251002017093444525810570354353238703089826942198722662660623062475609223389173233136193601161841909513954839266839192790286284548326384412539672948700768965834522154954774750806677716074353045353954669882124169496074252017948830737376912716468233928563080000355740859764125000840712475309860889792665542984266277196193863527932104423281462363923395936749837401078453737802848550454547271949097479118743571953497176709448461063735799219925301445196226988656268163659155453027760379483774968875153805309340696941302004237783762182641691985908399331981478164061870345609412126178131542619275837544521329868695683801856912203888338921428630615920591313454874726529934157573726634513851767820892380870063326663010490802952526950683072295585315512731065789598449969382966600306857809728355657083488576361877073637715028396486297972523599212544598792649882459569067236400824959112349504073098111369810586237455314520076019839484174543353209786790926843398220102430201269556545697560034451975715877558982638268542367412947930553498524079362383983079584339237437326470552985815653425225287667257188341309056665472849320197843961087894044698240818199145561897479949091180292227032807533753897530460084102531385268479394128749112896533504824454548802850038563025718841285017676903337738207481000358978073623197129196352296181357411043350602019816728735413535120084371966010152273289088898708674018662785626285176548558983329396327708621794303654309962641349957494390650782034305957318805319745136837987960593186466095492326191075579368538780739617592723928353429438614392869093991091376389318745947397355100495939801431148877804020483115319047848011346901635647733465786891427042384397471363426962312612701908583462457988034045585537536975959969845197706849300192829358728804357622689305461048583523619714607606956882721704813039294274199314676883392511342364986466819514607588530969018385549475343604082030632612985382487973467369497631695598113266642136871702343838992951785761649123717994661460521048974197042323041032378206368095937712335892815068302065698844697901718646829506489513728950284850898133105081482643139270901804511279067063552743227344850058514323218136195113412274576762180732171060463760650397731141428998426849725164586128383133420598903535239577662090748871935168494957762443688402589281571173055661903179301675599483764273150167179160336222788626260554746859581495298045636414061988047961390271578423430186626184883383230224102641435938059705633717875178905704292522346798847600057120065052177568920655559948665979370602534709162594878243043401850296370505293511960092025846632401750115951907964013244214406925174880021576300992369552286920012049435416467586618702448194687730114783791060922262693285662538054613928706402003780187389791502583274485355371796965453058847182869370362412805261732672629554783972955748726323950333876925447850780609563735244891125040480445117293532237402069937423343451063417467809637777882775326664388251394838019905286106296848494124055870312966877308159438169914215063325745445707911570050806188901377159887269959928587615590361780071035671979769784162690836059889781914804492074514925715511693817319310880116704950326547339798311939960361771047505751785672024621989353038936952329307758383730342664118279131880676042620988065154591880870027149815272299517184009728775889585523032616090209349267527886420417570755648698037418206858456414429785987039498930672806650462645498545592813247511189308031185322799216766096807348758287318744890857024882866673621568960323780797790445388282080489292712054109895872218062783586141025436696719188724818703624203730451750894405234810567871205964349787056860317122287766368663759624206693228031002247912161215247576988468068025685187177830443742675238537852786644513620636839674282412158062006872506866596664256061559195795453355442708227273194316498399339445440111062817358016972000698252599020982369822594047650331179432001230331319642450939582357256573344669616245201902290013279832675395293743611832097135505877946923957959496233174235187587876118222566839225279442421696482948890515214878499245025161167230286883109221868853972597775499715599377121084918041520557207429446189536660836477454515504761663547242219309003343247539890469255447523739290095445773779369846214892867750932794360034909454672209015889430046972327040221176913159380738416573694704019115781336752721292592952397709709441870717542461975977542442732157604614786210496596746847201660210231429640988364504704617260173920038174553006826304014657233433914094365396184197785876434913190428053520669187666713540037366553997735610388094358875102248918078901956729709381435972741515478388971468196456587003475108638411113662505731463759636932094416818052324439496172440141009507981337389403932015500834993551976931740153717955254271126862444713736026352703548491338565413540357258132624868794857383634514276584205779607308584435563612257765338194890488339791861907945031003571755904542920117645136038777376657961705416524513886872964187391323538744099296411508278199644366546225867855780207623764092340392314166932857433981088744770038966290895146408384465228845553755169956340823055792686460552224848311030932748403103162882218671373414500700652220525040095467414818595377911144788257550443958282654935647261933475266693325932538788543506180789457802765581804041513999822910647974949043220348983384219939159018228864055809944243627928139676139499822230498330645751025428791012926237718912677637155728770614720280854746408166960208366995905447168829391450083354495849414466634785754790511106556759967912777435656742900494560375009082675516212328088958731886555232012172241055603075371795277954581264234984913672407049280610676747704871116840721297355206075355636073100076896746771171587377481094488601549415981053452777803038223090106110295958175176601948891339412118469282043955902439009223929170634102142504895406440788467517192256230789042991611490370679971659776988286274202360889117940495164497240475938317739654338045409784639180811956087877941378506070202541735117674233357010489190008554853327218958460925966900879398879110931270784198414579792742718922497796332782136111516645622498377252601519049203740468531250595801137667285873165656975029738652972276271145456014058596206196152938513758825279071480289314912342505136186264563358291051348425747457227977718524145629792032267677431707002692481750951147213045592879020648541680975187748418220720417578721975018370410633194983955199787484579353610922146056586718929862435232819328742542063263978901246982066723768999456289050776309154637570374784151787638951740880213521402939223895977906686218117224566507355931446207666001051533407828910380038752933791725239821535034480434188288223709898755530181209416656139507840567358645861567239708833662737743878306995650796634173730384581446880315912572785373568800754925092646517620050716480995620561616254874289766809370250004437448616107117474335269512239311185127631506082542221984196428028900338377330623591095259096508494121601152871138748762760955604990940900080781508370954397586560741865396942624726409874725023825465415793409306108389120231351800589218420979647509130899472507664636872866507925331121816726341600397640959358051948960647469121249844851705781755885701230037166802251600586323298060121566330518656015377656594188517535770732361125470979067136938573619693802332120304438187549743851529159602904338668157787484466829897618646439853374356249734088021065152822487420913630254719323143852467269142910832640720297830171098047920082479249128192957454184513508003013100532284779136348673303817694555296222940068397866359110917481724298081779688245477542057286530965007564375627331763260008386793421806589703707331903040671218126599544935938605665010797548206211316685698383857996117267103032055771542866518242548013573682179509682731347552213985753418087827897212359192261597700693296413143643557771739215419320371924885711511680095303682500729187164422885370704711093696081608776144598399109089684412149950137668088128528726950263461446919387930685970935609850431871904792838356350203745743179228281064076538573376188407429099819016625633933198054968083340285860436493121588361753305522457427079733049976778007948345413190728035492590508419239361105952901284137040543723802108516423372953109906952161829347798909782436664845374265079005476093019687163866713272760150556521755918344922541326031446772715847111797066048159735031942314292222638061760522961483746456083803030731316283115359845297242313808805349366610112443206924414642700153385461755991870379931173995354499777771114160082890462031392882618290284935895424414561735385912893355665614238155394650806691468263506898910402734605566671580425400182962913936132300476816422264529938837945613632517642380097236375558042279991181483080885179486991938723608535117305139105192234025388772581433769801032991564123614678884020270594745549267624731931375822711562342509465267708729599630526546147291084685686089880916569244911062273229900835699452609912109383596503142154034101432777506366895962005963943764567233033984253295120337928450460269337592819036143029586270283252843571182547945498825026767658739346179037644303900028089083561026736405983018952039186070871508504868743440417921735001049448465868704102773907583422347773870525013419731312757112254781124400973195875711814189418205585147832297982574511048974445907062345701098150240609612514641974344162676790913520191370936690223839611160972551076587147372062458099897300845589516594346689740754997050939812720354668802791502513635202318691989207434029927649460218180616248272085209071030296416478858788872572690689394684209553243303071947976681288039473715161075250314466375818749337159900581397522938471836218384040605839851745418928932736323737086752260239361394026155437553871007249036408691905176427891242382600023379161976288961312787785020045310497431945248723709357769729764353453400049375575890822323944990564175571613952400991473910215579599020759851581460897735589943301479378891544160570726232322446629029298805876411700626706657296139836486029415593203028225427727429143828007571741462743278078461314184875357369304878471309758489450226698958125317399472151609230014964617849686101239227033175617873028863582080682909654351880598617574204191043322593367679468241067798801791085867822280978281175703106113836948606642496233048162791579630203123719979861465546745908715202831925605210381289162100670530519109192649215176746780495999557649787492235023815458285507368967307753570848623862265830965589375058975835990608148117395014551820816544744336570940796954462236190375252233673263001227911866640820892993545982129547457825535490932565165368441091333222817264314848131463157324462285350610706803511779667594206568354937970855771002337376325520093965913255054315605748322112862215305468705680341452787388962380622043949121150059052978980082196706690581501187394842019135984330359357683507911173401642710641591530335550682207935142953219741955590196782413307065250342226422939618524734084874478997928537135759246311330477225621310775175955883393049604878571315893416865196883534107983489203587143612557401526614500277446758721953296530622718280184331847610466550006637548248740113710866464193323041210215401631692947743983999928923420276037886964388680649321182362714933418526698051336165162084947508772814994179228208971164130390706926178800267290896236234528719710594398773833202269920025312764097797501395756488422688225425751067154696923865997325727104363638756068886621333293090610808347636892770586952824477186198640516545469780841163096415489621246913491321610596153634410740155335521731018488835133312062547324259974908845218475742978411586435956219386634334640806769790340286389169857189819402850524513898584121025754625687850931459800705967199646216308174717780097366804854377530969996432330635668401012414278243244921998095949508441066515858832720419525711995883116874400955739217402972987209989776498232023364056403774693384921554884313605594139460680274152990935675158088292874969198299990971181274193709640200213185920822604703104042397837998316786978613759822242093036324839665766238417078057396547013014711122100850689602339352877714968763572372548004068013482492441508561709024792594871575350239774856897714365418151567681089119831624095966222330023634638747957079726824177772089364581142507866161145940597103169635808925846476038248560531562284711099121495345474821611009508018425710982969229937552228145595584270522992950782085842815281823302867856757540184094517508224627717765316058116344339918463509082974385903504700334119021039205201679035757182263507642208696111046750223410405441339957620647189369385540159170768873385709494321672518859729450666292225934088355767691743070274729213654616384966550639229005312183044657438721566091207015385426937105067396564178333590364778854303566654037713887494810410129107680897297732640050837230973024530460103340652008566172238105122086874641473829110786360883571541735039485059787146672426986141629772901232154609450418510402928810524948745796588480703808846452452496160239057660216714811611045839209564865855056791101538727517783562995660092607466703820582338758626617499622108429119518505670576416179054556643711719162940839881060896995893510061012267945558272470301410856273357498867691792577835432475029727945237915665050450503532111806501742947847970854863970438053642722937062486859437792048431176479798885871928468522077725729872323817355922557847434351335912371052598023327820980916768504738084175778424863637801119972002896620565575131912518821711547058994815029485593206773889216279022804325685408672020816237200252180791925075891338354079274006864603682717105613873203073741063651246315451795615275562271186422928523632534042417542658898744715845859671460311371328435520079823935517943281433224497563042651685681167306851231132698127371632984638916174391357273583399233055752045650490529086289998748749719447351604919455635556407433858979904074109579735437437893556635036996183400860564810539600208553631086749598390020906118107175627408914622304510668603331764974187288870951444403254842000251283214353651777121709154921113255335205531435548871674509835645488360582515075873490747761120225555931153257094812922118422439269926598379470965369147070245482939020727905477199942093643507116984073864298483655997852505479326474901115110690843933083039682660695419612765616489174608726352377207983369998774027256717248244191028886581834882736892685288951372755627010754225824107602481129888485041952169501229519033023117410401941505783047393592071983454762406332346191617080857906367383885262514361853773013910467832701868493078697540416007398844201796613150459242798456434842129526274625060951484829637816972945185608342483456853894831984831750017213081802963349952652369940347973052165502318164957968466008921730859202416688630307825051547507460994882078780540855379973519761612626604880504096270016576177121941921237846074425598686504071954101861372971041252369964020146974593981708092661757253020186854648280326443473430561866689495153133943885170517731836944220452131701762287166886191199758352382468782808552194084502638150528533499406394149895269687373092787560736023973905941287089469100507265616507784258372090303812419030286999059417531673095742455184102885459576045834411250288950196459425297069457893944876197362234541247190416860801896980065388901844563274977115449074339228322803806491393612334815539291062079777180917254338528552153018647304890246120556421525833240426913789275931004927261312268929576471264002735994282449127437512014929693255002174510928417510309824417548505627376559548204916671972348849259121920890520123605675063153063626476609680710423964221709221856789910374355052112378737962264518387580652239627488374938880126777038423515722450220380546736699568206952296239527461066191487380615916288840543824740870196085828668209679245610191187572538148781586979503195420837181272031078563130806972664699651062284510917665940209484577003437945153456691448464017785486504617701121932064325005396470604289142537710975648239246056808768981362488614900740752354537135759982250615721270367586684296901385307690849118061845411618125607092196251390364622371253318523630053354505815725965988994088838052665883864251919546884071021017336755405318575988037514497553332739576771498843933646899682023885998947191838852869404255957735481522026378663205791184628219022977434380578167428381705574536396301003425493137096738644582964174856878433595376825030406876602585022988983440813436160427457587715301714474708643515774946666368243849304983563361709144585647872262496766564640223413001627330735693669727074901862080015513574806916258740511870297747528729095998246926227432170090789000061862536493367612334659539469210666343464603987127918500400195396002023256088119876171927838720642073271791384096334908189165658282899852254049677155075283394795194700844243496909655750419339245399888532674813822601907447215672342425555872451260663547332436981909941057229720556987626907545442562512049364169022376258863572904648007707937633938144056727170495386840074756162048428508069967660157795957446257991834031200506828507978571676209259003438827270108355374316535136126219325428492137279478931034488316324430039722522117585156587072776663577631292538481992621969197791833004822245223232386761260989233744276078436211104801235837729010003413558562385075921301149000448185002521082655276274065518008715908464800067770469107742384462034948032470027934104839248828178111444868650467452672808572027227374122221797289963787574165358259203862135116428142437893993595227713956438553755678206570940781886966804717794284161327272292436443471939284538033983416625519093034665946902861112583922892187780929395732085146140867962662797407184271886294654676761275812227044530159658750038951462415882066575403047587596520650407290040982174953900575394556440443431687710617811642469797791821189733076347617985299026730635722060449622212549530395491560973135494728629613639866461913860654285974049744065529952741975284945776853140952174859066119263751164097611388066546655568320328711500328769718726014559052957439234648277950658330388039761747359837601783042373479922235834407414286562113683186726101305357616901057952743607346804827290753047917245013317201494401841218976895327022094846452093221494253953318017856723231907324821045542456069157411998748513841790982044510300553145095126308460053742661978935495633367516951829606741213640264127728743722357293800832537164836840759367284689822676621128512419161966873354630125987862307202131012156742724351694520923724374349638401086619353908670944813463527144035100029995916851400811573399010508486406060842391257199341490720057977084101565781846402508174593391526462097279876583285067566742666227357521852465847378237110031520958221805345764546394425031912743146329771201662680793705421090139573882411356429736669672356762857512216714455460014960724008223395196925222310355010548302235150282761155693284926531218091186393183404207316941428202987598844489118991376950961027080015882115450347465595396966906326764732037663454529881815170897808981922648354836662917013477126029965605893635541977291598139491284275623433289116636139539880999235471316118987259065114916803584658773756956052198723941825090119681461279474938078531229852362098443097838011297840865284841782292920649475513133359625422435462228478199097559167704431349028028796306417752057781068272410889049948068721316741884826632940390614878427529298027838341961417137289088302581141305235836730144968314548566507650712076976424469778267707037583111002327801936760727016161410556284205725508295798151835020416404750171642132888024286036924764878484728822172220114529323769911000360265265198555652666753074923737411545274900617340893265358991899566440170758104616291391926550732576969325408163633940033538067942983385880746008648012613347805771731648783710803193278819934177140444209344545405473688084031403857530113487939021256065094073333407156732341937852987565526921779702799883637137245950456382493942067836730232454099951913296272384582942464994329140887852829183831914126094553969592509901640902778120902538485590002914994834870571556500087246608765000280207847378891303343290801084979610013212213924733473577568845268846253777339041020386823710473265743208322261992601356416820856589500560804389784912095417500654893197416952767330680008421778298077430901149830511743987910198100975473991900221320958982044990056425492825875885976104334545449181299977019285747967180829386024555578036919619855299712119767019517069981198504239263146327867171512902045605283656530951107289529175367776722668689828049521577363299027017050025923364539992305049770444433510175137499098766862582523985658930602384812532095406138467535138631956011230296311882713425216410885612763115274108278552883865332625463550082018925479458899552846948999489218790507796157219067562150543547156283711294806767733379498588779128730141817402578559488927878746096986633650767506678961780866446785795553272197622678897990974510461249161035078425129763146735633838788243619225490685269008661353685488213915679548964212209485798967457207724261819497512841135172766629363828706251099389344242831895955589813087644696048379943799653979163540304777861426915876712154155227233351053222888645012237875576851643782794401240224412678801150687572181536871238195751585254976316454062270904162095798815526557354106715015872865097490318358779096282006177995443629867896909972084459544364368695452926608918850337149479714582727520682325271589456177603242248124790118199826994872426320024500567984397564431037502997630788708845044107022072312872769347047167581071341037820916087592986561477318374385068096721157415868811343175524635706273314481217683779596488171682537536140466987016160258537735358538127434266406479102845425084030245305724283536220124829869287306341746954041304894856649594820167237938062885800177415786513024290186260696847223917485886400317465727795800533736130987874793092233771703463054545191522474978471013447888727467795549153340962924872097620493386923017059447400319476994696614691754401635863255910197661945479972851216763403314700175795295521342214859887374841078201406448743002856884271730044494695911652299442807199527375346563660438839154655021153678928843136451560935344499452279350768798502818132457938365714844456352015339556022140978397193188521139127614376153096046381802046919694413940901604446528470080454795520312205873347391715951963498308148441698449593327738413711619426907121243797584206493386597886870336533465384725277316222257633794651716507271435351667404436234233498533303759830835599791641567909713884113088760165741910504705103480250057958722166840338495056795686691325115706257474264849105670697630790624203072308811406718727381451468873949294816424555972537135537943037463167858372462626735807333549098241611478032477980454684220640446461876455312313478816343488093473749624797646586796972644740029785890425917319518150769138725355130624615683228061528788778608029649944594954567963786043337516309060988482054945850914570865248295052258051248589832151550925649031024012764836427598714041266846247496393074765750220693372782864285021149293441361444563506788332009659139872226420776451721298711534097333638291793520024401522104248562173180736283158697975510089997153533512941599419785209959957299947219020845062890369984663956031458628929900236948145271650631540496735502913417948045873089190766076319289604787336819011259177544948118118957407053480232102235951166198687779380808206569060730135626095324198528424881124634295755206036521788892352978136534413033811430340716036138020216990394328335803157692582709307670911544209455009562195609669210254832427313780821168808201689742044786307273107662915172047164734298502493143641921132990906383044156836990686165863584243876927461535035480779634685801274354714232037275043405166402077013366361198914093546913531241443266315675061162495677402827841195124365064961339735985552078015960997618432217426700118218600702706413414536644892369679632521443241346184055624060736583562784365471624097941948633496116608654047161629535350583577205356977703476166693957612292168072070917823262487859242602876371229411297024546652886314425084106949632246967393077209467667653295066686291393831175336618349864587335478648231645319523889838642208131280432076090636046447386959821269877780975877612819090032553593834550017678332257990483417043075807333808381925549822261659323971704974036719579052947407063733067996155853321662905880855054770867593106322198682113205418978601676762626564188499749275050223878617749206519918216728344552530747719711567152376109571200655475936538288322210936270279334507898022699118444322917865647993020590926024516222371521623105700702744344892315940387379451455923808184055362800324135264368067456124360147720534755116831881902502639312746789792105690241045698925576091882725974663958684688080536443431045310787425977060064519325853257668299174105547732888222363978947133084568219202308944494967676174245115830662892000418776931731746027618254801021052579179656369581752426575378196025750164509806788534928049096707182039456446523676990007896845252473176240871428879687103823984876232395880359295692098339234111640524434402924605831607993783601928752062306723007733616340323511385177631780041220293945281411399290257756344630115826002100215125090506508630239453666121464990907265695298834124060211784992080238159442928190680407708735481012405134223457686268008646006473349874051941969312922159259687128304546378981286392911413030810690238810255814285920548185244564349605074111337783820260269928554832428750456661122519711198765467166865781141360468968209893141915736154209691586073280402168603434539292759996088703503932612231240189918363020329579172220008687530996781358677434751504337065891812762536828868685487954949429593920747609306902826000283692649517096407400756884136641667672159763654712341423447709224437124974121239479725312602096869687217903684006894297153975444840125239645496688310273503902920694361325484062751274505886127555834859608472505143292677708345665723259606155041130368304190584331466898149165459805591826307284819474876446190998583541623506850462388281525157621976707103987113344557619165891187748248260159073769787769891139376861671039541816211621931505909575767743002750881201046644701962245357645359747065417182534265414617471170085130576550092572020123111668204309201715442599436551187118926169330277149329766627183525978191374867507203220211695800196514407200953921552492276692308364365655694758624979940334477483930581220333655972197566366301508148450464946047368782087238132875854506676520232051847691955064851467383440049515236299848156885282631246521746517630318877385787190185494828261888308079246019872621407960298049912141030831145647601275902451764513606110879094571774326350857404345391337031286838718646545851609908530758746739580338231315872542044401700676710666789401590705831102634370661334817056834911189175873195959699757496729499740871654407611215214516779639334406913547888411908800218649448410142353626469196289216718235587587213069156910717523700167468697933748829197599785830995086539292560357605637681646172875406584167997184081514883483855958173766713768995490084696966739525259108525030961053959550137751486752436400352441209165066319486030486320213923773183032763251098526862167675374436066575987133688392343759485444761367227606842910790409018068279461967394465973250137979425509787644211416569176908366049310409209759747920104701787407850161792660969781994212034627555205184134425026126587670143817020332011818828630278618274186680039594616250344212622820744600169426700062204857285406389415692379340022979973459982204932268803768885118879144745203428739843481304920205817155665386154751917758232832725205244427738686972779085506573049884412586204908364000671596349711998956582359937035233441601236272733770283561186978780879371068869331289946698043024612408645770268836524318571590800844968171527708844125846121849951675092839017216951998739939505723986616469379360148044773387358003936199546644459742829312424053471023078285814314303381302501437197967292464404990764380385634449334061475784111849330216024003994250574917187852502854802685372101223283949028089920975225974160713896418905095118875756143630388075743317917348908256071823761208606200530908797581521213934826434431666514870654053214041138379660284448350121947282464947848107404993434270983341005531411478926903877033769654534011725189935606619949126832769969512639618099003676721106631324019491792580557862780906508421460138581398268810717881730856796642991888920345973600375534143638060598666850603631742266962061606395337450266933449080552374906341259221212709101849996151034666613970888448093074936379759900227086571635913402842551043140826216496432240582796844442360187378108920793196472987292440223508958765998460187941821886691053385287260934462905493609806519011209130285040535897557553691524596190454906194617197946553489369697124396702025281316648403409487650151167570594269698054182910511566186957166249648751232480201458114164416406423052685336269176418273620979170460130119925152159708464459456600075787161997758301024094037851515716333039660459493405160638186330571846627866201718732864512350255888991535306289665862121527597412307057977487329411058608872252977174828866177620330735203190420467774336798137599936490015024558504053478540155511805685427649982099821671532883690802715473039116588870604455969943271114983521304004673071741974858542074643868939422435036713855437456514794444552777357556223846911498745010777009319130386922645348112990106854510320349937948894676137415238082397104143894296065364184571315598480814819845924785269346001639869580954050461867034255781642901087085909428337964874759138994531077505837599713274583260981516125326380662751545132724500951296612934835795908708531096119355368319355821420815637768283451551307719938158731037804534656657506595432432825404398507028474813287493402810235807892311139651590981349336323220832412347796691320174816313027429928237208703145752701898387254940921779433449054262936022621218849086761722332209595226878053188881935823265920430754444316691518695251635204737108878576395814868051068050151184268215644452077238977367995131208435983186459421067287707824661528406503142207922838727411351959180849323075769110521252982216881378797238097108833852161364941726828183182998039540120714036797537456122541639128275132572947584295155988862074775180039409666568903030496264334925270719798133884440690981004971529183664681191727379282958819843238078435418084856642306134602391233718302824721032502621355807431793048263799371860369968309206100054983385923658644907713027142965800986699073269677280579504310486036215225735102814428139443706791944378551997389970231474180716929265697124638041458228733990635382301836106896441361588520411433606323717254312279973226553814048463998773626660094403997535797265907931767192212543853157633239207809333119927008433136813353040267392538006832349743773481476950595678302903362902371796688914482979334244215113221005667117684228027854779836580560347938695075742469823764147608956498261777821466031015983925096224973916405664565836332156015054819559627271990517016787895339625414890833508339676741158072113955748471121645957583063256705398728459200953718017902687254869161578443285112588207361834514260374799441248597376101037005641701655423214803016406319524768094602798939585173498704708736049063916578783926122272080810944354249655502263913075052314676567696728075211929588018889728190372195584954801256895237972183242553743862401537060219437272603376043092396956197193257367462064374062649786175936734641632502834143749036623929580447543365188290414053954064757901291394608680895503698974227597488744011272979579235042823963584112121697478779454303232303491703044599630107653385419512789681112951811686194364037114550578173962972983968182010547897574529333663481398241350712381336606645055121428875794915950859270046535558957572232873604277742916069257955662485141096425087826992672086991651886663841869668900288623626949115639725394005453953731515440880739939259634546779817718237231485610922793936500409883504942029526446916094968491479532859077053849878224051409422461700290192076766023372226044167738177970887369521721461946541577396586910452514609721981633473090578851380680851049315146299760072626656369745215164989342839975600744927425231118190779517956141292479540977235848249386466791118239155826510441141462086720041884932889577543419290776883486762688941854505538124375662752670100165316868455285836376005093272713391362447607004478189982347614485509430026511503572593456537919435572921870693702913804938072523285981611752228841791404269702082225138778806441559826980323505616758307404291969105619822370042807331378531340011970880088852239478021795983328158428432089593513313188883654953154873724027828689684580950170245597860914244786777916996705040462672531766072367488283688264928951492661222599665506936736166368216052035225679766005058198056135785280537917952040309910841142846925167169720814955124478128154468697447862192926027643144811894033562912077325956423960921019715151270343342513857817577275469786631293074902703113570038411746303139151905325069980441718500502956095404305391383852230291532418873906653074956444877950803642807098985197136726537136334936358439838031847391446369265643838160922984025107433320290760934484552605642934269163579615913710385915753959808833477526581942782467481936784394743405151122102935049425901128663480565083481812838950679891608299149636334708342083762198923365620477712568290249159669051487959053698393882359412072473142823900203252655232831151844754133961907280710401008259644457474999069371445845869490297362924364014515351323403907450832927601435502370644029703495091687364488987542729061244692422219378705426789214966575793984859380395879547928485843554212126641656945714394336982038913986531779651978636711828972172920455480234050433869893450402551418232579732998925926964543399423153982368135617127245004084111104248980135091208802867393450933169114854429305802605584178519307168584255585337811097702188582845083322237412301344944491610673106031082873917492634045855109249575122281766373175601589712025957917135265578708780196772862444080998526245313790966525455588537889429026480235027451422230316817868121523361702480359026171904417457820170410853483555608000427827870519413967548134900667609430894769510891526391465037470599867507992188556101023445167566123878718859709522003511895051026769812987651953065769723111768477598400903391153973609182121900285104440307805246987577464259750823667797356361087586133968402680099263475969367917360381390602797063409808399452251722214831891235927970972278809420713525050769613394897431314074763085624722230615752582788445471541520192686161411867728685594913219149348553110392889317880014279698485302274599904590078171402870650595435879287967958824556946240712949090966394515915191121909197492321823427124330871073922855850134301390072323723583962281700459813166765882228605489570350058427416006780554600649324928129781842113490285554453144879971662327996893956432967431225950493130198182335108048602507769783420885620557623096128919502640478762035589138212114788751277291766061724514954025108988971731103270476834811657831236259444817861805977095973989419109455720494369376311847501333901966431039006156050257432501809591688882416610505030676771569967526681137647665519801350238841084227892980099683845109971877913173038949836654732016653822533218506390883243508267457575976567330188743755023078896037113013308160224714714585245766286966608729560635060802325656680716286710824032746807011563631467362320799972042436158359198983997836047696690630146972477386087154457364594591064683960982464022567093574758446636530139773333448102198017236793372918173219081235641551611550020453633142622611442458565017122009491454672935842712217738013617303664976315523282747946770441059593283184591166434817950398769496236456212867194625874692124870873690197470262505886064199526218574131025404756624189324071743869139399562299536187606281990701649308059534245123490196783226466902318672083663373611212117692633545111628806218495161582844835953047716178120238037442858357548799064137960669444544320887591175109108458721310486471527266358816009823276775664090718645422986871172844910280718875420601015855905325729151480446725483313245818466515935089292762995290316844243112506541111569497625453143681873404761208076957604812950508039447479991376109030552522860775885296296974622359913036521072050494500247743357614110983837333888338581204561962755645618305554213728478710572136151619021936338511907945068271687923119194427046092835183470381304187680912232753817895402216066818193097145478834273928626486118352395728585643353110711859393876507674461767571363716935010816093517972574604173424169391283736654409607616565407176420924014917182393989670364230075195575998408857926717485624873330192567819884507927130843307245876761686456937385677582710880288644611156369921800255408432199575838517603719362974554530852392128331749063327351826740093240309420367964945559428832690304121397741182458067752707197621760497697628587810132704365044019464878888762722969542602025367448417323286179210334525179856391353188806968156939874929796666291586202764993674548382676599727805580798381797932723494346180953051207684758979816127946330132706928174645314933228385820238345236494960709409169687041921083014739056706061816814669462505824465668801634822488900697821119114440991694451943547003213439026624619290378565173696676506188009479807129052373537511583933450255464642452935269568359612001206557932627229127799316934271314224047931249196770295668381732113760536704713862398052259313420200417154299006926395509683231048474267164567780456319057474999320886347668104172778851561746008449791806979004865260621533378833260217172897894782200339585956634674399703599221235903616261643701867704779973019609038732782368285963561530283221417831162590182325517311912180186456912509780463239120053976085640550215416498037572378413192523098144192057740933688530435905655870013812425457768857872327483799328077950502064132892758900528666289960276395143702247127571612903692071395297390156836294067044449057891136814028934237621237999004110945781561579794442463356979155700869366477187894995402370231061759419873758851716341398685328923817761938485711167445709772087904381354362505158135625518645760544074413930040000000714393815139836812721550963877580504513567099576110601725460096074820838256070449521457519490866099947065932376119485443399377631992281597313034983999544129670024440136313302226886912799713710811839245171420619002023698599145825525197876931856218668339037490757126413223215265822145699333026165073608218084425905375511212647493222341021714812784358769908497470397685799944628892334023518416620292154173447989624124725035572154469406981727914792117958970273917792776443289468921943588167841929173850942788192034375418047068670233844800305288460496328179583899543076732805737634956247652078940219217570850495331868296144785422072586200483539916737979660871447436970558743115283899316053421567327052468191844734008092186355569515299789904503887571168193821543771314663546450340895382008060799328910697802213622053965895274764206226482492112304090955092096066415066003956297544127809263930635771614976862484366111434537713394195267041188058740166792237493782562467171763288985214749840250905864464145157052205703414692708663040074247447416293939508466431008159562258392165905189118742727004772915629998258034508764844745533391558472525853339520568544207733845966689157179487396094636991649748124853257928354594971980189978030382359072609906301869317046459980938697810415365218016486082366525886306021299666272545655815663173762987420332227453139749046110644972521562342101846084731596938246935655620823333717206038385344023504916137034240266986412605875426290773163662117966127393251998672787736681643702246206235839993944117606875446920854019010618083078349766539774534863265973033073874896097475802484900504352054044703989028360566266932737564056571356592430735840650460456200136620343485328250385491309856706954891322332932844878761236535994625945518240070416650255930174370178862534298769430806563747678479507094426888149325919083063502966132968333239689752521331708684780545738286372175364302647374346517841338582426173652374060765956424115326418672989047659291296665288918637789007622948514667470697825949024524012901984112548002725808627318544419380950304593612346575318671924319834005152249023330965312771527345256866930580179981271386720970242370087239342359677497320424465332045991697538325746185400747769026641979145192138715670520585444556760878121909655992703715594332224267621648790118968400979004159310517248688405799694372156720580549704194942301656154205442092524308823157804308359579772226814981390198414210785246943545227944225777821396978892675666177186419293447995943683196901411354040748574719977621776201951524299741403702843438196299797230570806702314836305119429916045498876951104059993701491338059601835900068771289081321780008742612889003240654196852367928974808505980370989745439277206302511295496266433172149178774123020275310227500420045042798063272178973026733918544838223253556383109217705008128134024447962643262159086026421739775854775495558607511948785646201649681562394169134365072563320045392387664438678687434313565440773339043653380223547839189190326251377833034326105051570373718870443630856279192149924962682193874902086921608551685900601665915985303885473906885419055809476632091199672179533219235622929287705291397447804748122026367446305965057086380126234736043362425792837519427032958625481233561380738355156844369567364823221753529646283580829339985880273098772118558297532140408792727880240766317140605951959973645642350117114202751095594203990518087308324003573948258413854117260617244792869023998562051318821446435362431006061053624750846473481255441495766088057711254983376169099069433097864485093977384869180645521051900719937778854399352151482162027302178004581841733382731340406580986357116132808968241448119618480011852839046439358319175373605493606767660541495754820594090885572990499032633766910140913361369165981626647003977106051506879716288691186848269811339093224030733471573557716871373506819856609088970198669162205899325011566938718700385261178036953564616738470287885810535900223273046291400184396316466746739841600095807690729827024778714733583638324273073623465705220361115829602759477528903481592291906132162027078666400681260596343893024028433749490068699280927483544383865854977107550876000438104163699767462726867021581980552030938593035017394226689239027432164879801265124775069293513336095792584887936848805881556803230032491742505851434311763264881388919850062402733566310330215734428571006651423645740097533672619247615132577041017838661463486946581899118369728239311087327719989321689028339651059435845815610351031831985299465302185885333974681869696282517806623473011254552268663093228837370664106385435996994019738347058957061183499416490437633584526973079427899636179484519607805805611684133867876759508128564910786935339995201847377295078588807114658642199781455211116048814094023861475238181150202603353628362007524031684181514925715626009754780953035468184707752197582776069546967092355060162902056465772542974590450983797637474759566470213004433675342215753157491161418325436066729438469620648596002707394530628951205951137110538030340640284698581430445470584603106027256581145130331067544350479511829053420339659843280813396698594504394887918031998116935482929624185853718050309064617122267365875954959246984586068972926705953991427176231033808263809761264386083484423172124372543759498996095363715476059124619131486247608625678430711018796766690624733810669725963208051401639789557179279466181835862832639915184298759301613279729400314267997116279683833496352176462053349689787546959490782289325315106240969224343786259138606756429707697308399237108410443275005556200832835587206646464723708687771908430170442272269661355911031780233396571698767417653056578136766160736378249362359598158853072227403928049345778716341687548699190121084546714653019785041684839964275752841998574965243292986542971393741105459688081419991718448297337424801687236218395358662866951366344124072738682021172879496585178179410190961172567032409889303403274746483390869758603798183929959267529139415573452203603235190249539762428295823504862212563006859359588709847750519457160998650987842252277656742824104884250326461590909954731762025926974587589529434296175981400936354872986274450175844501331263439976370343920269206647128387792929307031085345131808813640351791732682384779883504233940261437276637144932939559573939890378570177443460011464626883453717723609822130692766891791496798056374703224567198485914548882809030351856492367231236449148886141523447081289857941345763005641229977549314033778807928743086168471280911269227755069699882773000994669560038250803166086687955801580680246748819994998525815421533582415882939644977441545301755937814222143751422857302193259809367137048490797660779624201279003553037225072606375008579878665211163736227764059312835793107882953297714846407328490741780876279573806224969596145081950860950175206643271729682757304077215265184627730382701468241227954485337814523431534208414559995565289104758612339025067536040661461234367326906979310516581101768004306840340601685616430196096823415752400599042431393629867946033117935534848183969564625349394401631321695857026078523575758441871941359698736045596717010181847762754073359968904370221380199619649973834047871471937093168396556270829791258077209398318579161004213289097441303022328867356003575995404484889705713003221935321550235735023768653180896740091355601952653898605656069443203637065396641375342587302110385364067224679213236141378246555818071155369953185248399873176867940582896747373364876001244596636033493792905048757036451033396730608870878948707260441781382430067432798902044523183872120476409762766837799155449851761883406299087095402794706024796353852304900156346328400126611736599240642325623185004272867876919727589244094442816876788641186482651062801318509028849100391966453514384157602565885670436118104335425109485660644460044064892590208162526002820614172313735438741594021276508705236453743659011770485236042302873316011607065453504686395202829939829928131722723571969044949606686517843075332525452324586108189835165367324721648454011019261617045016301037498415412585279981061563903516028073069426621238252387981087515559689230674801820017531219698356329247059623698474811825346646209876146434728643030886411095520645593416550119341152225942021468339675181171087857353460133097669351451450625094765456725699426674928661889611717476581235887943461839983050241996977023323264251544218517991787272063018029480467336403675060714089707251302686073248874424661083211021401768465432257355970929844461960892565526801253452225264269076119087320655493694193838605340584040524777678742766295510833045065045678088170524513657783241513916698134649116122114572961378149098402885835296073577497323895146927724851666415540761543292958699320944510759253938603146411467708197960441006531688417602475861859165436040561101394211761795071101334546414316050526394288741971511049734851034678892088598560828159293880031410011927597782638603741023002471475255365579212834696250590575554699921038438131360328557445371402458460970874462511966101689380971409083333569541403013541785429857871602058955104806860842903384543095172732591054108243830223639878417535984988177356130254176734038699992602845343878326071802330181128177623411728369908244701755309045871194457783178379642170530613193798842813898555827511150831492562972870294671398244176910683805580612219689531324220497502696692564734503435764855771086741685067806992515488491007213831860835814603838181553414162187734013471606793098114546064753197552632712704554272777310971053524622576077004000017821823564354360538695415771222672196619895365281484919351901314117680774924376801298358405963841152983032875027171493418431069527667593599805983237727153752254254981295261180069070329307066555469171443357443312323418077573584845255599857340661669624559190934225431509032549726914778545137771991805526818322288056408103154484482738298654635010592865760047908190949246578131843902665924222899540214264535315020150367376240853111246558570945617560913965609242959803633614114729285170338264761914994245808626478544506822332891722918363066012724626642004849207382287871381036707517057830730521505431387884852722954111715207965360427522728387921720443158647961058312421536372844555804137625895082174484316756753251665868293600413575493427597063070087747850169354526286043714700949534166599849039582377225826574529270652519074638714549105297821796673050336111113371580934277931537841376597407159575187183472788678536689106437709986372891660957101722815079947913605448744991592843936893768218279688440432490166202422998214907493255909682138872979404865821886647253889682298122356302708048611862906473907385069445025454989656513098496310536712465186236650062267522214747878180190983663546663335416252780263178896135335970880651643262562347721789641849583755531943366614723798242612799986323962817179410904149474393310255543664002902707361198046556782328440029242964551503581411591141142910330961248114912678969907883716394034306775102558683238850316598681952031620302916832084591553880454998355378493453655189988643760787433335835005471431993334470672232102500711376430293711387853172965322910717259996321253803708238327630748298205567383967511321164494432654985905711135428716260037969872466874160155221239420226194074474495434961764082027874903142173429609354122314048647921366035785343535114197421865201297208636457585913979285060894642369368665682977196511388919363493104774726573015800931152867322005074993942783321217550316969905844947645706129356001030337115844823877403190522628791730644563769946791540768531645734717022221183307967878595716965420109789022753757901295402098205059383070690033630656229334416594924102254139129629841641898179217103991474597729183428454649571369053038067253965121044539610013319888052483199916535027213445450013737552138192984691548660643766279164402184240634689151064312075861202551382137457035566069343523453593843737304523430988573079753273908731709422882083058885723302943184384604746860596488508998954311785789028037816779206533493194528053576367619143626162949270695922868359955150918271506012249636684635635405692557723315579005498728798731913144667127135391792835214022613145225290686672704002278287385275822439911607952859042706947205994392021333560284519960632552827109170288599836513231459200819895871512503156970999916264496114823092254817630160736460292724779580786540434994489180312563526589613027194361896821365257861782000471405210914983931110587783146411852546181759750709344243264185794131167128636077397690826811202570893928071455462667028108697535234485401608284768048331278196661148781474825488791546300458509151132419798404063193577903119919539715884592614683980359978794415176020903580723258373769474452835258387697207364149857062580927864162636187974817441898372599135456839220431489819142104998135331556222985946509031988284666060782825717273710624485979462746433707631410081361989486925096092632887654909208417297720627167757846611679114739405069447631786363445955312248377977693696671452988360057755507407819242885889511993019610054307572517920462983504982254577744795921310538687787239285292330464538311152861327109487198921428080608065497037938894594615344686142906519267980245873345600729253131659345197942717632681064629545093291135331784302248406745274427274175016362870124916054729474235216161585043578240085733844054497074679090533976002779828383575730737488281471472954043024192911017974899181987889557460449849454414800555488942306738517939079471531703258590871341061322809527528583251527961610317153953926140119894349126635813578413934804246936205291723285240670508006283275449829287388541573611369644080814705890895107477564434593705162617630357064656141696608556159319795094429317706135313959251305046303816250197903569190925525079968965563539000975928114823161073708376472651702006610556740985415957619529280296175344477751290729993196861809345729379762272508978853238844305968379828051572604139795005260533523288798243373615679403188493028795434036243679204999406885039597122370445448550943374935679865430377121466518003803788163596368730877949262506710852420744217638728370461006602840574166992806190044730095462493499343339772750392193338282902977079252489011080738368097608171085862060541155640767740276634376505648942994674163523071087415930944401578378236746545707525833770272043347993350571016459451389330916025249938816933065744284424625466863511514909404051817028635601245023524387879121663476969736495269702101751185646783527268353697897752171334144337297670454354960573222616717763777470086450695967937107905186633712823000986863167699486356515514842319692356464453059226122744154442100146072962483119677370289254238481308617263331997164748365471648647990189545879279095606950992565772722528201812512602869215833575855072815594198427211150813067920521188635929975942973365254934792653394292023841665165571593068348751980221830954700768310470383895834018191448042503564514994155468100127822397545168621490724126906289586167959416679451866817497556102688617921684155385802976882643038100278996125620458446754858719816608270678784302176287937247525782555252384655410207520746071566540326040889839432469391304239636024083916036196507600425245453000251857033157945218699156825753954383443214552132186349957068547516996453690748437365580504463536627165864897023924645860889476004818476416915612699448605821717901852198330028561369317928015638836990456453195110727743255441613158500163042154714884288994468352877604843082577681741377723241870037821874438003651796633594209385444144520458111100988172084978331455735108179007187424028441460956855820319022383612149533483529762819087585550384745990234616270380526540230314293860643131080883996328355667412175033341802705630432286488974456694570799293990942266721525912825189353862417080417115058852487094538633807343524895439313640190191346161304008797287864733798198914891736494897378889919782492936563553147152558750738421209235021598993249620710672633269930242749759478318325225171050062989281755517259258051576915208315390416617914191657909634585028856560143759984513335498553833479575025197535635226363480135746794220559812232363878919773241471098460913102797579224764554694013782736017071090758391921088312170122603351043484485228133784562505917200355758481626460284160620071072979704518296010652097723044809398422595847642023883236286070174549425368483714673360553374854216347254552200760057975551885785319164228313707424738218226306317784348882574441998211822555562614916237029198671903425780732145073788466005937653059290538462747225174927695218230040942079702094405578063993820995502935212866413139758375274029176227680270123091193440435524562094224118666469127690153139131881551813940652388784193137101820743077001975688453812935036388063781727589016331072781462398524920062340706899241006701207859744215559659387200314485279769411350306169961868181151405381610201903691716924111072216102567290612157526375927026838364110034959559541381683323454823494904245435314191872211639243261096609805590422801687856778752988597616486233261302028190184020609368585709643911974835937395727142621832524532075606662598895231330821031382584475952697859782126850152214187187166623314602775594192843421249753029236196102554309054875890310920773549743273328088476682249639682517570771349435796361885654238483229423824791229655353235007911930370500458885986648900284423924897548439857987621901493620627304299707286088200769966349851117402859505927996604272653659808770266941201159684411764909559363626410073856656033964320640584782189775024581673394381234767397876265377248106390371643644947011653568688900008459918489117853278806769909212940236437897282957407250711219564459066703098991790824433714989621351104451034071488486507718544362471521074537740715302692009845452909823097723018855461068188101338954894649031952015388407654469135349151417370601620754892135085808642103523164535726382161154954602613730346295081133474158915961289010789148331229041447037910566247393791996764255502354592982971655357882932330443968389961322527254228069249999731437477374575196233055830847026090507542594378406316936248975731571636249074702004141805192200119350980646301658687251508946634250702479799451641592460777143983252899784445381899316914432676622721347346043029196142058180804515833714655265138649217166571445199367842399766131843816858916970487997113568014932763868552118067179612376086705920429929978579448760005120447967695591577020560716944935514741844657553353380923415904725074961540335740298626585006558245541132865491991874101974503360877851446727110724437631547102093464032663654454742376282864888631567943799330082330367277562868982725764809095826079774631811595691788352401658481112119346940543119980384133257589013505271214943596446903972484003868179352260071626761463997061259786814973238183001526182178400545501976174730105295598911007354213651885295390325322307334564186473326988723529924950327088442432509198729609860309347521830922207204500244237491620225708089812634488982068898634057780442566029098564483282185238900654451089034896395034147904512570079169276285441627708535772647191885038716412642425230736388989949577650943614193697219461737657112772205725990269441677006038250273407086064816648920745972445631985970377569170984064285877907429949479278659151423089186363580822204945701424312086513362185401201073403864069975286952404633581256776877884421768738116597839041339659211691763709107105989887486372866764192690034083182151709063881267239810639190112465506900525032589381635961114471779208080710638635889005583571650154702411296542751189413059965357211910366087664998990575299455156281645080075121628831180242378602721401633605442150919253362254926769187385987027259109251550452694161134881778739046977771710432300981347036280330297856772796247289132953432439480193489714870791812919724916086985395816792470220137346984737550267736145293818947658618166131673564903723509856931196724069893492406004020365080330838003795303825265453384188339140129568669494751831312930430114127898643187927048157132178508019239067362906639224250007451274962095325152740422183100003380732629257319499570632641226916396548980861495121257102128132376620219682755859235780772070714292797367851290604865178330060966307415339626619364267234544531456903406931656108399324978072920690406217113015989055560884576132848167842161108126899542169121474447763222873233469765088714733647867876972513250625373941878919825536072789290680263281279994765994644030168816120932044068688799328026565508952970281358933351072454543766500076163541400327817907295286534038668098048601199190610441955933957954610089100025573276284389300761032088479491392186427532342696982519574074657606787427717380714024986886175919620443852959368022198877018525598125329525498989938956194751672328947330474391666119775963889989376501239856293757634715429723691038672625124230171418446065451591894910385115820261500606328891804618759330608054074273892794592875705689249720063402971342991692285609415828795399458586537432121196692680329446613317539706689683535971276913580955185648052159283057565263725935204724491622055080682806034707184472726372736252601853619336651841080801623538186094762341996153548324459970548600179870915578935826868040946576939894354815656966339468137750511204064408450440040688892156060810808983290342365607595927754438698433539411603601053862643607088034933676882243759049931523400816088451588768521252744629780452401372269479171998714907138770004832000047591629704625374682445513283883066929366089828416304295078086120058851326488972242657226699557865974029827929381321503639893818412569943791054249840883173374594996370809488742527319418600585154898202495655905416408060747730673360903356416635531017567133753441398353240047387583134254478411651380996191386260583656031410358637333772954615644368181255463035944945122420012598019690393479674826246940609083521430268925670199150735974694887710147162364942896323454600315952654371650995476080248152349766385738134377433327590111189990955579261683479945732156072316082548596119004741019991826850600381624499961063655295059380075495000545297912111739150493947169367507828128649671571244289786806122489237464548187430673437866475422791837146927461686787889323130461959696757154239993353293935906200176351851096739356432849258957374671441912155932361120142057422899162465779207782198389348953859624117796159721780032732436082020944256207888746399142244008615035926672301733464404677792457619444378480483801092695866421936684277307365835325336390481144468114783203690541848395666457066126564132485724283439800842662290596836532952672134438971561687966955104447235532201037220514997540110630106198628364729178456771373599599768305325040962978306089664229103195624861451209961201259688873988775134606453793584543534478774888157939343371287040020717432161762227081672472027072604543107382056080987435217531940162240794005766715681756747932824471524232966595720738141221150947380604721544635100972791845913328395799148156930329306126179724476011557473254127647389055388893452197730744625070353563681385545720120374724969498320158452922712098689467328526529556761438410124550136907086314499606716322176250490133658588727951323496831050576075902734583988428982183704135767357054903029001684277050123567407420306020760330376914091410238238652335362334641809146350909394534057170518981447080708034695949224428915313660483821991826387724101751850973550475931120603814966697112685020664716113912368869193518467048346004174732082590650018638994229590283473779850546616707018176287240532064121022738533463931396288148861562482496948656349368179007338623784476703781244599603128409773170530582819703350650179367602868188975789818105543865606606565312458709596945385528226286140771615164450068008658967765284794254882495561414737347189689628711066535511843169664478286429304642251248870744832827433664643817950908827766044733738220730685545504283727690824789997912360922463169628584400181227732812326305616087955001137473051071816394474144881339820576905320762032887777557003454268265880148008671730516861084321323711845136685401614752312338185792866791729746612638190419095395482255729011456384047112557126180629532977224398218723466886137048918265760884678226807829271751619966516326231736642629758251743301953700605804967730733148749065986503031010197297937153916402070452193557219236432652510951524904126723683703989284412683065149061899997214105054384623160318363318815180602484674586211836302883696358429239276128624650711295646458679003143830721553390992237468281171281781745047944514148705041629285483843131592777383031261154940898929488801343226521916509258514829882230503113254110869504792184829973200884035451638758174191884495669529735804081808004194165698853026202812266800745692135083632217470988841526545707116887443049734213178573970343732531116888407483921702975033069564303321674874521261499846099051681847806104031262063488948409816253749231920026513719889907093347887402242520800451402534600462653056502782070411749159205042529255178773660087550267754870339712325849183876753849528132290553235883097694969696833502048691170140064763343861937416082317534512808768147691362364686187350102442111549237219695913691223808236779716853414602552917590534932201431245168335143693694397689000234579234384943487809049022321688091079756476767285245471956565344991259362674610552018793204207358719237404018926899029199935703107879691215318396773595461004765374258486507267366977034041200004961511327617820670201688685320511079806930317741356488569856057816007304450531966749305159447424367538672257270631890859560377814835524631420011775615579919547429154552553306716253131666571095690790308233763828983339659840598786809219306433132389708365876150345810752167026339478790142811401536803516344324045503350955381240556887781545655833905049505257331959722960576129962492341718640802722352279913248324566660996599899296673446689581707469734569451238344011936654411707094751635660267935789249844527080542529758755398747942181753844721645292005831577057524218898135403728051005538882991664438771073292400059858863232637229438565101583966343253109294784380364423652099367210834099082469271511380208935704349521198350413546093148082437516620030265865553955137395591928845064281458873137426818379596512926880521265166490710935986968237908240092868257406147225408717961153571242466820749046394751187049012510535307743815773492273267814658638401341623200372614179690693954347725701524337928635106583582450111570076406585530355258981254955637628246242315753930949673066318570485772053936309220298382864688288395684427974428464016322332594183674655221862999447798464423393105894571711755655820238642325132260348398891767515383895819745418633972508007525583130650599070424429657687493832832278272975492142978150465450240700992292199689536993856958366625356093776433102474090837989053892592229509818891065017863077226577570979343893837021312961852696911000771300515377762989420189681039939964900251303336223841742099859132709037345937419440894095705309001576112487641225101016345464151139910296207812677488163519313255417476444843949919593102601493332673196740929252045322748845183445465473718425631460940897770048800660544466068203932911511422239446411198371658186385211663238919179673673367832796024796772985630305163556537253817716681129478393380537341272638227549502464559878115796666685713897815048656961632911960581519605318827252788062646368597407894373488598040723620161755048007141024466681264379138467273119834528245798712280403291191451449066391916510816654911326390415105228486445575923889132321428796386491659402805217024251616149345682933107568191341011878520949797801562408766656233487498485084226326863104991835326053316653229374174533949067282479890245204962547170791238221828650639103197519639283542074072914052379997621812444485881618495327087286326459483500617913664870850143623585091989780291061012999042422686137548591850028056415808784743639419653493022307262073273494949757247084651674149209593049801155648070304722383152310936493519600423879344061899911074489385040375513455184432511811426600467285737790175426138472282825679299787298159531467728642998873533805877591626058048396521613526647751420355267273958727249038710799159706367088747496148166943242556954890910108061353308474050127837505007893724209776447395878792160061954015441870709397061036104080704769318508446465426897533542248079715864067717871278341780314106066454624825340810126097120759831470833510824977117802965118729905497245747309876440748610375332625478047640969897799141396553512099559948424534805208035277677144816006444952672214557179843850143104696977862275897185937766539641304937698941090158490409375476175731111260061671557483966754213401143270230121045033735588535890515553116692778878116729002894813619759852238264230536207222781886444049261561978922811292398669373340437884946865169439776869910988515834408155414888647384730447758559213591782639084202865017627761696789643390672086230287878896486365727087740427106367513450845929790583696293343058581736348859250929739805623655659163104628624962328915523734546135370700839271180830147751942915746299333352246788064381970137104381307822093616518870925309895653017895041967149688337393231546131812716785396579857859835501454948170988303882977776676609821758974379112606368878360463194359342639304900865148933223079815743150986345015520174707083842303448854624336978219151277815026240380759394146120836052960432489449622869154785505473276091859775414321659011087901551511996728538080905281049805568648545249996244961132741271019736402435947122371921634865092266165350718340124248424646284545210445988840213876251612351510003829171303967398429290943104233355580744418827336662931458311005611062269200079612151422058020065494757740602165556556557349916714044506256202299988484125995341026953189058781794902103532427668987947603648571874209434135664341351346675894238904821763379160980859926183502266412423137789138577636919213662829611931330953690872832133455506412344167365944321990156360369291422041030248720214929668254681779539812844644398527507521002471287794292985283695260101062423818202121019565833835509436887418570737262485269047065999869530383611875634777906194534756582804667417584420910529993816563535039345570677759126608696905543658033460080550277403096295153596863223356521702745929662586003618358164245021942460978215181148682945491121494363180987170095485896505378222445147712943939366025710573160905218978754673895898725948520985342212508660714782003394892358976815983470509243686903678625756500375223458205977376007795010334068064597521540547873224590039897791668354361337088893551746209602239965587277532543394263151743114902249952453687271279245156748843960535275447224194426186107026528986811993616104093835298751649451811311352529666041885573953823019114512030994748866613106772731810412597578840027547847406117380483921488714759618406336251288224843802845089163906317797536249329575366674775108273211590324728076010160340607807928971922273326488054417906946785307791504641632245200980322239165199206700060877790946877213869403651978584341021779620884183811012417930834577925586824754378303008642414941376274379448660828024310554249768532501895349286305291475821059793978643107200118666054911727666598548268680817811886692999253060931960592364285991548375681154753741207572767241961076731262131953145547796712702553276936159681556970128483451289594948422450098053143050312166001153076281297176499895987177794759221126839599041961104110923677103719967021386874794195005654138338106188467021982458055659490495982590558445385104726192976872734463617774872969085266025365200099232223594787655054492604962245106438797920410027111563808209682837447828674525288084258037330009363285918434430086102931068767491958589484667389128654798601635744930181227821123603300499052817817307547077398196068180877652702202719663209968727956732959065475861638832446021266551968019640783106475861069751084259082983019851849724783971332603168375057693156285222145276097567589935568929620262133603982822173375784650687905952355109221511227984579959793774196722482460310626619855376844031774085120631275026308900894471266868917403549274896128288475848302449868397133032307680267044780202618135551690811913868265619849962345743291779726235817662557615391011242746888001532874066460111667121718457050510999881634026590709304824821622462183960607384942282456920030134394173783092842501514393409994535821959481153200759123791352238076099368308811499003785996646243298647673262066554561459594959288921568179308082988064108373170763576261970245934422562499544747620768574864561836133321311460957432182052281324045722235072988766861150135360699432111042511335709327886105842089217643705057431276443518784092270394264206560308573641240908218208318459280266730230568177263715397399798357736969057728886226810173542467845826114166098333174214983664463734743038515884916234722839250089947530880794245274100989030096242298639338461244697696986657736258811803172417726475665864877303938183768803621967463882880301334469378722728661087990322674909934423383737171402736419114224031376138425409538152914696373434550747261498168815369136562520960808008153986371977266839258378295502021504883672420470814239524049244838116120100565247480368142881480441120628280382506872453094426577627743564406382043008728633042435875185277391562820218754492104230650703886265078418298821747124177601160724549472218767797197187827295406630410777631645950454341967751787865450449907256285795976627602840162660032702083753296126352911262801595800124286782067878853391615488124957127789758346353720912323030693681371585516106405413126919859466731867224983808313460054753800751902266977153090202860292888825495464256466608780743956089843886168544686434869606271444757908683818629635135162727944183368413395012599940766350149399799150306668703221632097741123688231013472135065093120865485073942049156764200591203543594816601139289122849517987775078216115523043379418775480384573225266191665630831171753561965708823517343579878911237298128413011445760945596970420505037359352836270116554669464187587934171467943508557875726797581478966524853333351065123551269808772941298466281020574593997065080905120901502170532380713868373949217476685745988348962294278615030156872762735435152503241193162070313243986899761359482956023446380412556227825547173308027158469607929962869711064735346855486346295144208378966708092953484393861365923476355179089416463441820947753568278830114293987375620598809213821678151047117535800181317634998483029077468386921851518285756778344694875585151582447583827197948635063564768277538853194325417901692306293538342257669913184537114387031394330586592372442552694253069173873338977544718102582654795380943568118341864367818675759461302773113292901640710756086033571235125870272743119134294114672018654652672002997858315383171402650123473266706235233024905649433302042512365460835911457812647600814268071404742723767855469524338463170013329333921815337976276754852585415647775230199493042429204808350955933277551221973193092834148077521867476083404016968153101741346349313624737589129401139948393124901585679874897565446672651629696793136776781109799539741038120836512065496698680719888569633491120052569727097106755475405466957793131300670542867234215615896999143904664900459581948473850568453182746765214406689286066703977963002552505642972230497117644617606382785157688477484713380169846119681958669139944931829989442955705648343003673156735348333940232363718881726336628332735133246437717870908918846789829909231194595362110829103087023716586567741785033023156322256968478586958048255985595355026808595342887461743301103856180550187439217061445322964703801877481303899008376471398777794393972125697494595614747786853285584670795371242694593327291463844548725830580944909491090801023028245934751082377609533105783008915292061677589555157640780582778751263363917325814536422648947556051766623790104227654634107108182391605355941918594759780609432167779544562258983424527525478164295660738648774782393225084316981050210161114161794580197905467840521700232686493798337202792470335763836742189050246287404602958299586922406999285066146864783420408727098004338044400706849357067086117799915373330849010990990751478709853499720525782865776419593256503801883287307747976335925804352424647702466748313511127424253718287419692942104565777941403673557367337736822745967685917776909032955176325040516187196127617489795559890179912846138923419866573293694258639998406851636561699413415182724463981307020741064533945986927025988699757798039600793172993414093483851668821809128011802833177821424317855383554810785504172760263576932381384263636753190640206001459409481065086635350678718965107614221142560760076220784413342344554535264364259863445769196841070602110278190729862863085326409730634264315623757309426267850804537339527323479725979567615087814914590131227931136540251710846607771880860726427415535428742021106033471917387551275283502864946151060018055345903261265656981607226348453973413072706568233865380260959619915053252407398641611259400438293751961652773344337757084817412949399516124312509570284233462363513439395855381775048405208422557309619247209235531328053005567076772147911343669181627276018984759636524679687909146159753316122848498304822139716198610904752592922671930310313782828693827604619721385145123903368184291755732420319026410193198261075002799784064197209023283964022835761734358670278541354048843317347068619849315444904889283526934526893059944809738413686093615752127836842687656274192970120529689294561208808269606368222660448371150259160238471714684720208135528057693231420979845917458865703338285567179020292401283814569830453308446409333540170028236952213120550655509031001450147527931160276481527139471488611578027821000781576295484061645641307754553773089586374351161519221923025757662376336547387036198781366993890588794450804598989192197406649568190854469006891592713906809062589200566427659016668901766951910907699582580230529426001779853778985907326417174352855906948890842667603118541030143562805732872186002943079329970224090264313839068411049271971488268274577791543108673451270530595653879910827510802587758293365110056830046133309593844696000668375010142125530039828090010745903535186057248355599403017746788444665876457327293042744363669314132871872231796145062262186805761276459043203626006106120884713733477387456063213107755837111379789820502599102652524153439808562399121594826524919041391970911922829259090467702354704826995645484741189898534352482473081979479830178898731024497664776518873099571841495321390152409899396476031241473150418270934082672241064688423613028701414549038746484634887294350993163822503757459571161112726819041439766858306920645221556984756882571813216704463742349721172246142808590694956121595546587589259063993746856450015989532695415267482580533529473223085037174230938986072597164112536540028084248657410301057845717091486893798822098534236436035621367172686971571479018433415750785506248806803729225719339563387723500960484352831354685593878125539527016029755042819196286895937961374673227000460394782826122435692912698135222485993106628247973846865560922647451516946062927551122786242011407728465036048019801546120566570029571851483574473636170696205647741583122654600653443717361509097957163339564948293473054683219901062576390529038375723379067602141158193620070667565467054654683382560008231496645603669832127362449931542830075639767264478212472758574234967717965585173870480341095087686789911009625955799679401536647884925842884236135676976101862199538876590026866337272076694553237919478272946015057575216499550033581506282310061241251711207414982584254721616788667486699477397973864089625906540867887500791062194198452474843758475582527435548987217628012975778803949274642574577968941756549525588669624249826799626305940761935913595007691909975434843791351286713214672833747439952966308537674457757815032319694412075565754881717140937333818537826431207565130075484490267731617622941919379709994707475938017600758518616617522429502924597504092211822054589517871478571674666352840534216080946983246893207899166286462181503984101324710352990227622448822149659635957455070688289427955536018784236075027600025135803338632510208114229553984859879002423305247173774761263230091993334631973743831105184428216217322123894095820904606459397776697175014354133814208480776025732928954305577890983167263244236793766312798856309174570824563726729637323404206359172715777405368899941332605346406408833344040049540713482759748571642913488298529840332763331855011525362137091990764733793196675612662766098777138877698354105653800248307028662748478305899795158927435498136685418301328012559208303918322538820939649097887876705693925151185198833885098850316834707750642826738186711771932785432565678818222045695305287351782978980085604276077769054767923124482564003341351821625930605242962523060084715088131768521301900554364849441550023452677098473971339527667677082979596753909872161946272297689679189191187717923388331751057576105940309943498761689373034182478603826665565636171715073557547562592055834757568718868502794953398233875655702941242104190191908875844015801274000769925995263091440352949617749102176555779040640533075655748029565818150051426179092707965674211319213560138637781348174451609506992397358891065976779275504411254302916376781494210460734974519076156239708333949967370131543817694396680032242040791374891050631808456411837486549140348075372304305416356549626663747717282551696245783659744034928181847453670582030881192817937835794634052846206984516284608497029361638405592680875773334287886523711844333423584264211775360455366032578245840626210672177112434799859437758606758229355004272525090450133029110595102892639316792541137776336936238435416247806532223718009475925902647073612986798031496620907816232734142383979511196342403633636820291615959126857987528534189646807283673970379570550584624870530675829275625005089109652545142706959934889092123212074962263197617248743608363718920318938615540144865167892085406224229470510617637815838816047071376604686710255700737274576942708300216326001745107767229185559598591501476092714219116359954077921542055469808607120232662208625889104852375183718884592761620917190533283603868216100991399025296321469480733145279155550773237345854076107370463802039895292591669222051078091900484759385478442908074097303312672295896883002973010497588075569844445950544311531776194953968191205603130396513507141914301890767114593161973923799213258540684975111630014938130654786913179074172531370467040059823229376914083709168825757193596300062014147442803746656214895526647595047468930797153569735255574776321701209835410703802069523753727382204218066940465520390793166876010640143086913988508141630921439654793733483098305990297099686003608413471972241834330683606187702135563252868905032417030169040803203591599651761888841102462866421803324828325166821972988428833245673129279436982189816484242583840551861934661833755791446688394086842927982367440111291097603937711273947318751394479976071654616667223353313328926759941102848540299472307511498820971844903929401631469921948044809528587406513822363493439414841881990155918061854398912303660239367652808973738140654209271346048425360081259702263441003457793181899574669500176703895002090913970295967380357381026876300241772824721699341434797005722757691230374063388889175131288255103001058759167463363454708447117212434957010495463176486209996756877411642275532810546639594008394055978827513236846111952181862809436976650450477966316904399606643892584157784975838644954881254934693233618153758482782395048488982734839077791913423493924485368926716631308327377895969042780158091859546379445800784711626780084051375761221977964086025949574604659258832508240024612637894061660871661301239301705682363624882151438777490612480584126254822880121817569420694299766337003933597041072172569592056624238065236590453749265029139861987045119113678907913793687527508694502052266901346896888353996223604480106834188244292183929865021723054926259754233570933054291654755860779758968419552808842564990562368986692518117876603284648285593050156975745252283818192164928101046113945794939835755534558015646863473123695947207625652597817941116445037201576735167838283222674453441609055378401362446628384207886800143333097878798298457232071984028011266114611955663675492168942438958415435010102499974838584402015947964176016480773533549433338574973669511223095757066951071605366986617542109805904971249657718301536366430837175300527186199960381623717758810715460509505949725345219052015425576058442732976051832421977867867982796394376684031493233337561421606360342460177122543428119107970208278873583616220848512233825235343747412587076925619430351661337774087842630124065061501673235195210148720869032756453045749159052662939414345142538133581289542681183168384427742906702640406373042915132980946628538714070667443158610141944021118120032544575991447738968641530457126601605295766571813991059630185400501676754993692018567462952681851093104850285000782252859486206569072857145918110135468624459979476697769352831637794900665184646070135078159234397745060365023180613535764213738131190624591992833745950601727714246388468442542698686412649399481331949322661689426674282091646539918137685604702617521365361774400885092633322869426479437680699450471271425147798054992196954773901159839206761501238485323208534392795414105810570141773543486478436883458973178235210421833702219009383067277519733245277739100288947312486809085426208300316966343912762120091391536621884376135421135211687861858641795126071655266972538629883525929077676975453257803545483736882050622743521285967298233171323113394329694356060443349519284658543921717285105642578833398686135398797467770846053902806713598247113472376498669473454589068649602170705205295089322658329631373681684304525592821074661822082140004079107659116641845495927210870197798067079448463213815378906047874687686064873494883366498444482196784800256564838862364557776018815516142937954066076613758711680296488249106282852181354994629410111154158326078938130485575685881884814180657929600528888692794282978978972949752222465370122714235392560577487461134877421893406518943505162655491037466656699650560175423642688511904616382755208812868002644232412022778863796604013965223779334457549907187962451451650269220886807743990991184853936496133274238369992623504447086792832063580973788744262442387927534755773923308342446292896316273217356947289529747072464095794217380136893886775693565739259670036167149318131255094192084806003948759617184923355182384075950933781197624024357800946551782100739294287478139597683900015085734479966229264000277180547825651595724042941058927126167374478379514497275253916704453384094018343266165551162510759353376675371621878717638903572294728250749254144120355086580834993540584109249939715935091076195284333604642855439627051000203137962188067566306707265852756982984303688599209002607892042216847190255081652989293869447424946424535130239545180787178865923644899408618472698321560272741991837469361182968589500862322689203022809140459470450587392744800183884379623926314532926551046021307713928011748024336130347485367205697668197619045225730584606648656763071455519806162156691109347282924599081198399785723090579470316890848919776677656074030465506680096424316115160946522105382294784377774387927187608862286247546073321720197062409384912121327312834375451630905173745563514257112331303495442242542628775227099459805680326172663029764033691385190731706015482357509462402472502295583532721898535120545826440647106151842715587681079017515425177814557981552106859252644046252414859974994497471439277475994236676813496805145187142783685953970044507692987894238931304853600503524217038139267722151686390167939070815804947274006374552008420833501059242034015191711413411311012912724410348786125687518631135820691379245623311242245174988013943881388090408638214344817385863489918878223044068236347539442938678859662754472263584396939565550250405849776928957274825911272360015706614335457042644849867073730955461839565119232913353048130822610657139183757004830727121797983858630212151162491269950625715622510419837552841400902202504004614829180106204410814794770302891314858885258075256769023097485110345632386420945078451444981030011205954159840635423793340617828201119503390364541767151777968994193510202487143085222639943446179460432656048709751586717978612468521547384212331229644064946548754896454303658482857679540167585080817535859410702571200528301169639532159383398778588512343109044446343104240570605155149329600629044606993122264640470162154025963117586829418019672595597580289335401736887197123346794485063086981074781096852985571819961884394907276087190787856009349627163907200505840081620186437129345443977599980825615921171276897446627874527877895735524164734151554948206881348626684723751876685255669762619858446601249644222161962038762597713604589358293108793867390939784627483354947959781249286650790886244878115774151188509719373585161733124962538041086187960282817548326286474612898659742703114812526743472251940699939009617171702117853172097217111318755044449955858789842205291627085332436873664234961330884329189825939369420777517824401854150410100302259936475341430905906257163513998831384568475255333756227706897095598138960418774234541796183745113141031247643998369368350259273997646138276356435873418847170369606069338185601632794229566841459351775472436482528803260667981630710977667110530779318171654750953257942882724245020153785531846776583037267678384242950043770306925887263170053866600523215382056057051705639349549238876873837956257680644549400253374835596605869826903480390376693412813211042878171856131980299880376822851482131667489031112093343745621834627384819726719526335281229133929167851753375441393870133303073912315532161487265488898729668207445788151500720694003774237113248813746790232778025159826962389049919822888686059341052778132114829886817345258017276071883613673355560993506677893467610982163671644342135761956610678799803434527478255290984652187051447960839664888673900846483428380649115570768756721596112058584371802138933702348085099046630760617905671027489587499871828205542470356999787427901324858223818397365061502842289697821600916388775153524954350582773745813164534932379851363364881827283554961181047431951111140460342497052412699769995180597618598946102749892773363482991158222646801510229278602623951355621092013857765204990747071920418267710774923750735682572293634817435474250561920231525195570116133485057401032158252059995522598458455830970236389375084915940789373253061989249096911828675987242967177878878942537564415032392775382852245918586029616676182673294868937902876654941980150415743817588452281601534981981145743052425564311531565738645172553320438805691190221666169348194676943876298743094523127370035989985934009633192834690186255666730774725316618739513007765463911525616617229096889214599921975452523577766054503559713433652104237438501035919938832234712212620572026071083340240740955427123446748727647310882775857121929410756033978006493097048769997678783881540242756621313027158282842464224623179765496904841362244978215526850491625027343770880470059157981502563101416155651397835921909533858032964363901857970966840511502259878326403445711854839764391927751635551896763256884759123818169260349843593671520314157138884305199441571108351856728857287793992233248071106229661254787227433360799981090811593680193497433092475845016240822870419306795034749691683869381806090742326957467037905293365655382529543314535449896180909018085566135820922931798446760973929203046500619104079214777460952126814747059414898883668768695158613918405800380868635730371434273268616533214614312671270493880831965646884302771874619914422407985818359317352163986741377355176668501178304985928589175070527779340207211603969225927115248903969278815396210329005726189172447796010826808919151137053143460405788753489042798451602989420866124008612941102163432046194894078328532762073220272790092447558390556703831172063471806797703284602473412458263711446058499020449271449553847092120449794025889208554499966334216625848833310238623841035020645887604428310941420145669212053609875436056886829132142605182042666721382089749814059441684820826343220238271737118850036578842655752477446731569115189333592171612845422036272885928363391501614407563990817212877561083605835761578711253985941146820857669287952255085651544572495788803856177975354965767794063727966747452703881020029276782909224604273406223301892871798313295716191808228287020826607018107987005548291731948306617156150405030088392329728331707133315221465394617422592502297539179316243565747698367951609842838942489768854738332573312755736660809617663500550060896019962416227528096311204061613871016242951551720112328006454866509511668913556241920629560252530529218779531786314163608235254219939867460135313439553404471078673018269949140871942303867211382084346830316499439663029256570027002288365552344083299291808721791254040272151244421594885756515709723150855889938441850169560633001717201122670002540181146089259215013666913653940132823612231156356053930224134508829999229576960623695044553843444722703767756290846104426291376288850224254243190271359284477951141421521704366726674131368632950887570468152457748297808718402054633905652547107479624113811546785783651038469725878230331118788390047782717426980359331069311905753654091390196818612914894944647315425460696243637807737265424068108783111977463723133080190980572865013686976178667899597592853296587221635107196704055208623231564748506388321410013826991356174231262757087137481880242141130332566955389108207557745660867544316550467047023971942245907750012608659934519512229025622384418861822623418476722341934984052451030167179657884411545149219320184571075605334007531237707719292526817455285615356820326310390301127073156093731739917738822337014498449571833832281951436016247602504684956782765955165841685381972957710081247481448341723945015860039442910515584545927973147848537872142381072483579307955618569179892390121832734069968984388456988574815932123028472157081132292632573081568811937743783339170415825156609130838444587431213062632769441226289568729327576650678355946331712097332024153228829467709366960266752971472691839680061287753162796393794013765961468822488605147584875062741038187430697278390127661880600545188122127327684821187121302857244076734913216338632699614692359044577802580500884456479034875777909626731055852851682397984372698676282162846416114629664281906276519479222248017207075762403993140888562700689021891345542254371251490098082190288459322820529437266988048483849762924750185301070677186116848224823689451338334903219138865843042723073227061008993586245935674464971467446257584077793479961599074597075596155906117389898886980598873609802116276402210155377354216115175169867952206916103393042738339851751903986334338447090485435393538939005903006504097217160812371280858435559194682480485434345425637832593457427758932416839978200142007343043242044593720080643353312177140917854238027650264423258139496072469165513747411320617898515099254423477983135692328316193449521134524241388875148048362467100695009601850042542564210519368031693697826725561692844116378791133265495458006957931236015277006678333046735205624726585792226784524270366853403117200933976752011395316906786245067031464204359747656047132728461360918854550007690974584012651380155435002389529527565325427258167321235368662341021193256432433904885950937834657549655897029403012969520438597220142926909504597879797658327284118009533080776000222290564558173799980408940727159215416413528933968960699257633276088550105629139974882681761560941166057392677848147112275165080345820449779932455507094371888167108622531540528458141247381667023165053602327286767261981841832240637479843345950847724180668577882807709463272109619343254580815532448439669729826223533900921763705389211755504158197855207174733236075236248001759409377816401458895155046744518179586473510910766752831235283770664674821185477983866012534658254614041534739881732039909106083149075127536622762561064050180914580518886460204927186055346019224204410698246727599080466548600754151855880640532762567669012597042622723024785518701123850202206450926631852157051899770897401275865095592528172658559781673991008587733211403370901285423903189277739920088140575813834982054977613070039704689463290045463280878542711277306374024548533994167115015114554113979899289288490457924673969639271102359945258237288807313672310713644605669638520278767767570223450535032509247133454944061513350942093014888431463652477935682483279150738230677097927670668258058360044236048405174100242760347103528800423989256645823263663520157033044372307619312998826526153231495220192834269366497444678344179437825468305675696932178698861011312997352963524217517493088968165209271944096667541693165598181952012445663504554522330679994133529842709077517071142000931523279521682773581912011602873325434054934546835461395325645977554497737815654832380459785886851630146165133758232524933755858188541998781387032674989252594904427530714532973118076488202192151104283814715063124414174897017736783176776533528394649043964338919384955897012047505147372585189424649745578000133940834842475252983728780221564717631022598211954953462992355138138694664897334775001924000531847310176359535780956782275399812752909056777481321403552735192359899060078498595168892524219309769321851101027412434525254188892702916295822534994978813004605756526812173057257465093146501959468766409938296706404900871915789221209683132828301851634265923744692527658064378882045863723478650201589631666378910155503392783711954845575372117644888760264528916569996050007335777556191080327824579122997617650986465733801814059642646494603129858315250821182689126363983209787544937099722943563132576545934716882063305157812689403026035185410401171465757136018396067343221846550785499303382763523080296486816697910576232828888734616122453207690886680311567930937589643488965746055951451531330087114340680812181180986857513084593375328307874490819118505984573323189366272483223372482342361928987645655696277919236381107767014981130050868382888045196639292702180667850995776317376591287662580173587681941226495173581727471444902842649183379418766039127299465636356051114165106943317309510538361642287013364191040082172120609356770679218977005149392877305395657885011923202371103794953822705945644828170574595234508337352712722795505335503735685235595501188531136644643350421850232497747506650209404411377586451101262130830466342105291389630345657774999715652700328261068316509505643181376091193670375263045348880249564445776920193091017745656630613443667073201491735093033815044995959342299185894427930044761055976418025502503704996309603410931718574844157785768205324639944020038260028229386371778414705101191888368474095456911987077386488953155759605101490999045787346737401595899956193238651343561511263533911051379853713943215619294596901838868508057537620451468075774032570687666747659569232102031905996152665353565264000527152805295973954939594664014947469802584642018033888043648811318475190621831096159282091140593161423225151030108227973891470192434870073312600639139027117954139464414032510868917576614027776951231562215849308866229651904663215442509663882494730655321690677873199240565247809020046158600338857432971416687071175630027581693980210555971611965966292438769379867869925969656117793755409628146015019258547953992669715208912789699598716988310829527518391758943858047768150990704984100398280975514493046205748651409104585437210849621208310595071213227378506183766139759578329581455936971302567841910673002080081315643085615346718313203803263037292921537884501790306971806771769357038421066539847289953824002338633457023211932333883856912014177878230248974044147543137423386960362926682625462525600204001177847218618356614685715781881907567742614958121771379660780204023739779581434319464423564188543459354728103096299509676702629547904433468063908938626639463135217065495673217492525811763963984783364303985626008342358306928600945816464096803272116652073060388662660152207857378260150153269020800376756303768663332749786713215571624684560143247329676191173305519744287318471720654537997721660219357890781819029281706721967939451061206411215861621814346482225114304125842201400607559274612640181079331098139649585204312697551468016509036472947059356021652908681611611805503215141774111298710335409740787162599539321839532197288335218641777939863969073561978444580634435877617197526037767708949519533272895012659558792033332356656105477218620547903625744776595849604322755927749916501213442537702960926661386105837414785390295889261397999110620313012096604449478307415288133272376036855142382697627677577050967640415579788864563454652657911479907350452931207349482482836624638571407501714856905880610646648372001837113270115117737561104413861240943481191998998785241074347432184766470282381211665947328596597421145290975308486535057782717924055676564892443223657264919155431282527278708713073293605298128760658343345000062486694433739122581687090946604034635081385102172513747478540216657852146379140765053735117938260251498618690231678886659289608411673806452646828305929506944645854930527216261675947632600711225592911177119622446902046361956150712234606902681523595228220847311480995617056083037783372289185618179869297213315476286786906557226184700781455485624011739523080036625179396067840110488430547916189581280395888104140425332153965497925299634832990600636577138141500534590453241255163477098187407039114020952345661562346303246523164281581469538920140959714558608870001345403501236948234690618042602452239956569644627848971978691661603038998654579188017350395382384261808921437777739518460671441799161508109779255950746091598683438725307766919627524546944298657230934773787958065818723333632223811024438335064462284306376848395493405458849716932257211667553206572789344469037528445817240440200668758910559463296487736293269303447745199377052378348424778679509038368299047110615264323713292197817093803315007439643856848299481946428432165038127639469860599283690524140030483246485163721560642307047303245495005142739258571773781842369013913312796211630651330493099030584815394370855057525333947350859469319481851385003158178316067664410081296163354808578017384599489849372856666721369058045971729494292676059365832846645558890860475377083193330933305378149865223255744193097785856779380740824536034048107940175564737395755157467370641541744608292572103073100745919827641462768576715370894026181030787237682282831796777978387992942730993581756750375803334955646223713144452858645888094064804232801427138992485300412681648121402057798640315149904975839707926690476908299878577641806858204898804193422041392115966052904195166235055357263385323668731966602126212003981255209340147898745839424552523627925092542110612957612044152119645290957932296381348768047897139237085235648411149229521481088199390748550378863160422545585533708829129897746848272257501839254049923715018000201887600884599934305877860777044987683311847804204490462063060205103181900441078635991592854169121824362943654034119353117288479006868147593063194975951290568708537859042499922713059473188426012816914318892525536070940002248044217894058350493266751892109710401630294760906534199805424754812237567597621204204162192899785336265001316471987568495825294575917364037824386958868059828438078469890097638481212109494006330458053620046382647231727131627924421146973467392287460381840655922175912206163219777007570682768654672550110215424843589470336921192685548304938237473793985537931109442611708917437625106764772913966527036236464259658614579680043347620005558876024099176300401037246376883669186395476267876059987076188142903736511642701308675257680752413124067729284456816672767827345549015453313775499575276284158156886800353020676087562477479904558924643972570628884067556839157003534887430908918837792836992027834128344812220887232882830989933321943952415084835725509599350888865603049529600842600623916371311750915173960328788765944120664522531736168616254361006084183735071012303572361063070150385714526068936086568902404823115369414103105007026181300858988309273329479946606758930940851622784241526104027487826176788912487353297026187836799659020167864700892149983169335213429465270571553493333708436180391887376258726608584711121349352703249185489181792910510683452636823548085691406541510383182741490437708866471346517554081306631325377803171291265026825940032876755717413924343017951235105111403408272117182989297111864375336284659133922647086319554343396309691516881267927227839839482538894539961842404688225828354494637346001625285935454847934292612207089387328476652396030411342324364381161209267586154127850100313414519496804941409336418330104694200156273497162444562196776701035168530286739632529866686901275467320456510130049258749709948622844933509234419733960454406546137112519948722733540046718502275604775590293805389837817820581575152996539949808123691621237144646814526658213855976342521898157948851831598123463423262057718493433283215014645404816707416764481551974435669528511666856953209312124275071872835613573727660416096440321815401470241930099748031217869721194432604191220946993619256974733135926799443899256399442568433323305578904097540799054011534709899187410376054424128992345771098837505969569820488277167488636377225504797128439400631564430369026027310430961396319110570101758731116893329487858215518502374511643538078610116488088297913883886993139302762703547493505397582641776303360087783022045438426953742887638511775111983926766455076022320674897102756716652670655064766504808208475856996961275538806066890754382390880048245866195697375444694573315680059770246402870232265235502607073101999372386124986514666416539945415476591334222120532149901209325664830002309802626073978000923504563202144711930356666862569591585361600840629193960584822857969854942407268775706468991250647714475304466956460455735377427461904658314538123366921116332218321038871402994076138905660080406668578012126885007637175515637383532953714681496464901720022629388539782973415438224626620671755753545024074370817173848413762294542368473541037416470620321358288353293331214737763048941914838895242782308131185772604622403552166813883167761192196063851675757292710847877489420848636252337479352855546200401508370033877574866809091866365083396504479655195698651029561958956455852195775730482270282840672951569966961784700298773429600915617854102048071153321528018989680981122547023769600312999670609404192645678535028940076211117239547388088553341164671361502047997036337381561837951523904318583539845169215322632837633267800745593503706513379646946700304801410447747617501840453519160465212611640320649088843834381195849702584953614615367781213965463757152586390091491279328599963885748223828187260372468492355894977206188552231032433348825050361504612153669524517607460508029653584451056937324224294786311380629287108870214616727513293538742109737509213035866180740161058405878193409948382667107582997415185649126649917355077304411214637680295948960372872603691743904903862896625875609076481841615020381160436774329741485357820619634709985504542963126201978909242191645419805379251958924667591207098445547848395459556189022441195346981905834012544780188222266495842559579932687376623854675000525222199151149113354046663039733669162057821349389569379375384900499576609870832507498264116244386169102059147971737895895229251221185616465693355552946001718079941347445222175637257249310016136845972125278324157575711612592394573643874506742286385883900777801076130251343678145429731087323355520931480908381245755968299481622082387428679183991321071455017396593487406786783717577164048188457057673203169372616458222358604682965542737133447727104820295807517408219803252810357321584376997852852260509856035658310091434892755366260434294652760656415359294936122480398373404567459064165278484987114313571552047989870197687697576374520257798693368483433309494907512579636068637063949821316203506841134281592186083897617346288050773817083418324069626394243090457197138478407757458426777796291968642458088941250509566031239495373445590753565728058729345569396789132250272219300586092089019450838576081658268870181543198210361417459644954764870556956196233566749893006701243129939778256039837782986487721181659235823329037834326226572120284368532849025088711004314722040960846427552086942898011248518141168819961627431997682194297200071854199912154540822614623283029446744664652965597125130596130856947405395400938553413721849681149939329269739081590505648622814774960223132962995061533879823839351944086008552763400625243978400874572401413452750391095531668965817802163020025608206184602869694000949123664021465113913800760608806966807058486722458678133827557015065865692137327135545089149861117474185906249276859730278876496637950182050050945434444723001598741427479897313088773349409165837220069714651114533419531460756506940953948503678063992017003158576042837186733451845926776718571480379515296210852668593684202125897356466260859255371413487938938297234611590017682416063578277612557324839824573388257034587804450613827116691276315500076158708560372149415348139745451605527498662204247785805690034468627904085376545734081788306023937798607895058640001275149972360931121973826717324550974467121718438564903751592674467553766142523971115580986821607415120193343085629539836274911066588876450849006332426483484574634992134093182886369446083231172719933889793659561927874296137197672933207172073076408907562133592462994209788823113136677087765603073931586319275430231461521633959087332773138807808952050879878084040411546632499720427437776070510814485631178512755980023494510129016990927972428758071446107555785542503516732280758221498833065972521865544311791194434785965215983340093831967592621688798492300863652021700962982039091899188185077131632732997904984863264916430904715228226650701177757574105026925349151238335993954277005438719066185432735458685533204470917198043571971958128837848979715941417301408332312304937236810137482154985072351063658051442153364769423867109643454194802628847572055071175026719602695827538152268754293204392362401528025775181037776907213728282512569794545313446091718825536932487256145651484331340572610511634282637572478127821388855558259133294488489040731294383502740419434953461502116620373720396993243309684174619502842912539100646174886982382842795173819556907423677840114138954362908727712027825868469249251995415165946702372815247979078999870697969589077310718007955751138164241662828171855165281140849564566849974810392131995370681156365355595898268213411253042428502325508712027633345993434089219998370221429056924591815803379006708907433850248152794408720569964600845019388262369324995197648467001697083786903082568854135660821654228709727636996474202636878463260894625237663608883733425188694482364033030246656036563228558991092219030996740224518225446868349026858578496987076807307430998829653904843816340531239848970045089363294957463772502094133958861057624726314864829140213234501388469290036876238090985720638107805524043187662850188569913808838971863190161977063372943667416013945767180778009173395913784380987123254052844008620653357863036596460951334782731373768599562950944182765923923530842492792532772866070524003530405959002934740627249915457843664361622609470900829222165618126258779522521576891527585879425827828526358396611712230345537255288017067302612713682374242502445222054083418220449253562921079392407837100810641404368503510177879138758266823623919027224875792704813622327425667696342578886669370097558705471611823306007317773295973291491855560857246298090939016245899801985389699079471423420390291142119731826640854883725867257083774930781299479436244510268425694309360793690162435928130522520678497610063145131983073001373239720145615766980357581040345306953787242021727054417070203252669111908921062078307865111905343367781773504964342764759587185493898108016694923777102039808272616131066477660093884148951744054393479640514447986539312882129349970557918562930407909483584526347561467068884343428317570413719164893993802082826951732239876819336519564260730954904519370780834231329562960461641456004757519565859950229458663300628664669115261099734586417726689561367939983316443097442408634857809040567429129775659605141315966895753053860615964800474985702415968726266000596265065874770344495059689893888601766527694261616780743604484867476745442095359133909439522778501426673721603881252222140687692220161947317586777471217551903304807638320835971812318725103185311114682380296673023045460186233194428503575701420476462444201323415660551142428009269807748962534829695077283481095899688355028230420736616149611940271009978070472654056077820312145120329449105632941524323053582981432037228935377441169035526560006511771008513209350476170911245105627174992180318300553040510301837886544744803548709304768303315158782540831030548748811942289832482187127871895908621636715678924920424972256613331549546153832026117408830633288849711492225401314617748696736464947063507803139250921834247799803630242984118855357468668460808217684969303244284758080967624374379871175591161465898877556893773782220964158848685855421758288091603909891729444778624749028651840875324730435339007012287005200580201093140243874202222731491092368496400031469852043296543574764346747184819866578110404184009800650159697619285724889495373557127311818135981165700831985808426186853103542987124743326154464391126766668773292595048512413934971839676803656747179272720939976139108674301578046536572595542520991109545208822418519228063780374186220978914997893680528840778222799573385786034517427642088857546248098472960297254548068819490749042056307244906438431600119632637440591635119269934632413373618268328255615133250285860232464398155501981916592516203346720449472296179508199638478495958361425237906658856238543574842475619105677485258508279061056521197247818881926354476075099718491465114933480596218524834775791855011377372896859663237084710079772975617907189629974443537904006086170260194156868252319663289456867061508682752486162400915783939302966087239115493826270541277787313985527323637701011074065053174573333999313353221135176106771191445145139617447322113640708483932609488123231142984577874106569581632226056850248677060574308922084147856959855603937260550794044479626984634806586300973686488663580170431725628930392701737554286561469662056090880915905931375718647114584037964245502885930125263662139664262004021891023246189573392381333217212795180945280542702790626576564439447552948704812896761295363699584418158001805388644765035562777978665706128665345356426175325672681069046691007885094187712617693060665619869678084633093814492971719297458077999942946022280959052150624902533481746038976978029786920193930455291370636807725917843305510601061533779313442067470740802439060401812328081707535591657942422669362840238837150777222668490507235204171091254698175145512845817373336532069544893291199394215255507720658887945816417587716099460824005008245091021248691385975621490044540028392004653803379970847340856805667473512818965682079088407633558862965055798174404883843079457691814549034766594110192502387576342170933696691730949889181558407086235660018224282255603096358813498647330967637994724340773318767028803726207998439048061372873954259854109119292804363033964004836059553567079646107955143252425666350600244645393020255275212200474803419235509416928081296338428365458349516852192012020242147688720542203314019834564185648917327312760370369681184787479008357805790144623731760172496181822667763759898866052414033786523305792370843528581235801792601166328608204421076795926371412751029539373532509010001667662439853295364090698406690383629459319760181546430700180723954032721224454357235973097662164607216595645020732199751237638341633634368929913467034048362853425632288798351253426833297901078480056286470880054547630216370404880439894270849959590620150772028661000589116314028486018010974125912858682531742983314690143885208978406389202206085140580433722457840490313058817068794108103498859577212857591528948011383743002877800456703463578162665215969308156501483930811855309079476792427328847548813568028404737271114523214181000228579323408263961758321759673808518815731571143473012731799437906079839942279470328095424610993299086565016369657771809557010840438847906399694902487031516381032359511603011748142780609920764760968196678344412729972090277803304173206091757530174684531007659666259157864375930998967898873085883602700088146973855860628745687999408398198511658102233545681699660825448824926629613842119475502084501016726693509207705523845622773137770648939641508996317491699329396217110138967870180385141491739187024687150080391746939682109724293880528953762419904852143536240170752525040075904202392495134608185545933616855979347233908908262861559808185039190415390321014980467564849880267525034898077954461038914404153755466099745918170742763298226129043897086139153873107368934253747933783427842808818153024301255157095238499999144863677185724008065811414746438024500350967529143191292727571328171562222730893257100523100649769504233262672173104291129755139452981736619966410140483857495048974581253469702604848423111633549527210937293769626506638131461459194380244713092910022442585862406635192658768731190558711872028343544524532291031559679287622161613160832273960511392304788560166294211386917092362201636259314837365270430940938280624259363444066538588440611277917767608461514891668702221448406933618668570963311284197961652890074890896694890103652112375518795001868281051108812731146047304741891343072607254605119428905580506629413660712369883609392182007147289223862753497735814746446818965298640769798178682948495025083664863595025394196945426750207414675489232811561604149536291586666742429186790500814654565565262878954512508421075076446742092608783253276786130617545389946064007391161166064914172886114182143177069005975951000887806542187004305401850471188934334477305588206916503482189272670296457331099935817198047453047693152292392573242683990780761662162099602026894654665298308632439508029978130967856080740469771243880356474618837018668699045148188156154602849017107982530774351359111823839373376374214796215770346306012723206779256976992916821921138325087779538568914895591936905583747124639383687167889518829762074251839135525068276092450189833664210668953023751783689850219573159756950914900557483938182163189050089468200096930898166387518031759856713468711327394965176514858518179705244056541096183683180832790635170796944939701045945170884103903067945338113951787398925935775556713122922631650147720797298641717101775319229927556563836095554112617493563952742354028151814646242538954036798108131007502293137729276478195648577003879814577798620275059713664876149769420966194038588857782075484829647232565258124775627643342765514471089297184657906572246428591398317366364189670489686878905454353520356733947426672964306986981570420369905853374265588764643003088251884182427023427795602836529964313283190430068176070619622888183627011959245283966890264997163346357034989759600058834285400710700473415132893092901372469856800496095717783266714177190197534396841369974199156887967727590240997603060685932667702105148459314772466185655238172790037636049373215545864832678468357562618182650307402204048939135595601457425764894158408856628456950945896737762831012934084467518017529812367310458875879922972413107356369188569915988172756176687761477709413986110266782139909981489932602945196015360093918707486033016774876441871591964800806285943597997053531185602314599931406568754302219023497154578045382313575759909524949578149859044050477793289029961840969367162835864107814510397863238490820955148594256782650823620164656708289154958232005262646122125314029908097383520122327985359111184726225482171004359949722092424954326860313702244745683779032178637137198654263101582896902799959247881334609618288415618243709636162178514329738153737784099600346066140320107881737322745304934654890393477027533992369113937350481266196022896165644236875127448380331017953379820211883581489718041202049738246322714122246529235703699082570377828403991102067956136064692049592380458100231684049932212278992721470382439567045715187155072848169728144645398752469862461186718545269971241848359852069593323730112427508816492782553128586776933572985110552019734091477397267212348124659002129985249902628867166209858554511121311755334323358822397802259325830854241040746262428709856176927972848581324333377130993393788870143611285789990700569292805403000998550820555144269827662331122268844674991515895986485705481150939201113365261311640542400708424862920774643942539887685015959640748326589435610614957113870417778332968065510701211000876836201136354079476567509532642344845872283853995307589856957246683324943709802439501672581722532088769868410015806720845122286711264672962061323166246182417168411297210688125939980614235809526044865284972603727121044618405233330655322799587776182835337278115210330611022518996581228244991393216315185536375011493580908042585206000555200158672662013118854106208524378191411960569277851999320573164597413779551095153232486814229153208215865138896171995189394569282905423899454358812410137476099705242957059141898192171345730118385921115993757190083044225975949576193219318790221597032618080471190430227189927829629549805476145992516026001769626734963356777811178083458466466012540143127504183918634602206161398286514192323454009483154462555408498356584827892181003528480129145136681769419789228301330865555669097279345242832911209415263945403654823560085954131958886111542270033847676292678033033357031547701585034409299318961449628229993072205245929060492212916849091693736427370713808754106836125656532460941989030543452919771437611194004085491725654154232412935149114814806329827217679153032613205376947611107961366905237485371761753953081739644554742508801651024976266393051968144952282824291219995506282768923540383498031765879033263844997334759570313780987279834405771428095186686922782844605115604018463137120670547865850812778199175531332308673865401575937039955290773431628850292479658821212596802803180569180570391396103562092796515319046439295666583856194380781321865114179228899384868919593383467661204602450047349768946184919994241773082416677672885945710075141674391418868067298261750275443684761658586977844837210648158639755795992926076220383255632008606558363269794312881601867842790528776733005397557050237378611923359598359060489872788480677680578561103758181129323830404423087262294973974287392924280017354217974216153958237252864938329184197014984486182971714867506978368897711252842068267369587987014973465249474988615411895361866776301805725441380640783488072495441406825758530497955625235731559791733938157706667918586302514422935726543845777295527291162929315622085970557577892609729141195733780012163362096366993206200828765513635584730262858282041035186465264139803987679335552133405329903986745688959934320120466850815416817535382818564729749139119482869970305807529119809963598123908548333274485449606213068972120670616554070855195593551659603005538329261671163255090072762039331460567079130920089192840204288431988650267787806778902607162854261588357395133017386425555566714232465851501496936988072451702323760618794879596379135594430433438423522774780331445452393102557453425458816810450455827512780255924386812903029566167674954167685424688124690489502320238998541522768159847685586953432195652461753066562576317326478011276214496062865975780367473289054338692455490917039555413268019266246533523163979806629890519156211236503554417895951259878384396902509036840241009005285827783322264660501388555648165767651605508007787092340875610349768542957119846955346912403377660207852946367364761405084780105376662369022803157385545426651118437618026598015920097543612043026565288478944554793871063067819970627626427223590500900306751468789320260588206328117373735029407221805586826350757123637436277360341144430852274125145945667286052879351425114607034139550324475340505205738023237590152842863491795060714119205483429255358632970573624740326587177358972994896623729907984389008984657055279072511913588901511762086823379611624876992007871111505350860686885988193924999918340011013956825619646747561441233393571019909539773841769691943194944397274384800127620941295437354812983728118483938172829945043166559478802636259563482933719455369338523257169873374761866323685560670230161744074244069454161206045857081550323970188867783430192849825787901313588441772389313786961070457540189367454464024485024607399270848830166715904470115018184625740374144240970826217733591246729368208200562621022639165170319903467012846709837957616853391120534510732423476015224254753549473358258457984449986668196343074815959621739528221390196385669224148422107797644440783037032310587701346961707529465518286670326244346925337756645028424166399624738942544159003179453326323231913873780793114871702239051537277748284525311259211749871975897290001403070896477074770210395472648672123769494669456727282297152261846271192618991386727575443390175946386229222632970190430347345590300020701007345750126884894300620116203501423887357812245778410554585172828986385800146921414310210179364721821347176917799601717496329529860191529791750733123012404361621167315664916374453236200589856352040144982527331645667215248054964464807428380920036340331761642515235880200173945443194479468746550383052611564403968471181101547992310485198436748230774784094927524415093549106663190615791033652574527796089183625952493941950831248438422746871832254696420338555541155324310266082965532818990926791424413725247035914183091966271807728665517990096061467384708050940166739934820530357384165220374439730194448485587811492074506912812642027654387271043473023972705764397991231037352982320688686374221681431475749117171317678943835866435245502999840076121788923466671091043136604304759711247858349549158139449578660497223404986852414531032875958763314175051626287744898909905777558823062149324751068944145359460288929680407730459359426932655874350964188576304977949801647830999578996876863179273981018565867197051991034083479914948922140770781320996505133375254508386859120267251780238003272920589019692837265323423472137447954584616919042725563148115292037079752950190249787176012739555902482859134013340509650072544938363003719448743328165255540201312847500834256528674773658946981602378259385279991367739015248393783656790418282208932735302218928895825203308097506030136577134624882062213522378434691110067285736159793605142803436712156645424988184974920522666769031707435945325932982715586425130198156272270139280976862172385531534276177408650991648573738760152808411066975541691587209970525795236311785329787335900843167833031570600093613724048067230638937645496831106444200874838182380058559420491366215333108903570356244864113008714729483916947398615713601816574235937745092139493931929653341157616266914019750029149891420018719241249773703897460558091163358587298510645824590396641011269408792318456792953355753672664747746535666898812187006234274641644594680624179066209118671039625635542841074006478431162437640971800421393887599807780776998056128798502486205428985659289322970456312581076843704534358359259500935906601768662876530462510023274643412672594936806796075841580778480085933547435882132789972804470221259762404826519092073593908869577917972218217516940849391770729075367790429261111597202672569981848610461335249133606260691095434737211003763289908707395572410003352585099957913422858416744939527484293770838545350894554107111128112612882531715965654558991682738827380899687071315257791415682493659026843401585851366271429329094290860294424197857913951969571035701381121292193907574067346841581506999639433765540616883904070864683065446118904949893756208291663093440987145545204533359667221028971133595502663486628671302296662382755115605674380762337354444851800124278937404164500387495838265599779299546172073648546259598204977619389915343088987397395248342037022510317056637994795083992263971748011310034050956543733832793366225892805710311209135495642854825391219724429122858807569905080082053006318841275213557820643898716168521616378819520395050638525644607775374012934954588780154373441452887714174323859036511104431905584182451377336063438676535536251792116767374280590798379710831257812843175456121626579830478164243655574036800386957935698970317975114288348464502775767865871308516592538423649970582768304343926765329840657099847149260711046520758668149145247553138536997592717325849937007682259650031638706391694654169090854424065580277520711434032480718707738547291292521509551623075883014827847085333920646721698883095016995978671036528618477026424027053644907438900329725892910422367868734251007814489375340000863285675737984692945831178572789906402856122485748548251028552255738237712991408192998914693194745914364337912853047286539892148692359849368082425849102676301115984034689880433051123922641855223495010705747356291238800154979979504344757873691792342073556822564794780901552643227369200731666789670396055428985909216572448831955775776790672216339216599956592333529483659016396733656190103870353575129815855420913936747066285074333396078595600004457342649738649393451464675018514912862759348023606561999351293695907030122358051774816196896342562515727896007990847819395359482568565229469552846404458624333843817574029656734849129000171042516583638299605527199959212167357131651872860952978011449077032911592993735029862512054364759720737136260960711738994907956488941596223045270330645570739799647206058202416433962802747284395350938493620173102887273734549777286866815944952329886132636866314587966216894450519166856589779534386328091571087692737045912127871425481488711345457638978595856289101513173722102903235626687176326498973546344405570792060148908376699717700665613401221579788402800896955690639601425610868588502325651185733350211490170561933652458976503414481177334613557687684254233185332676370148176679563110503287800802972107878892065353313505515888222862593280633156352600154484223723995978137530171367607929626276671521481085970843456792213211945161319393714493354904015971927023808459483317994583624412998655104730730571735054301431253622795936295364309276313065753586014087658052751917039299457899970454988748987600496756265615968078186441130664332746345273319105842568680334242101615405045722015626051395854644442011711385229550627132611369719772465972639042935701124461277104530438051665765481917875394517857689923372561904729572945603224523085277185323545385855943896892097194851814414850620197710066731996482429737902345446544131473422473484672889575896444577320241812466404505465721150868606635668048266593662122834990567642000186463540458396843236510744465508045056232474661346182056546464376144393722974798597954051504315130721046792497342346122048373372080297560040556786699104450828673165780824248554661193531309870929527459707470588905597370180283330370951000866081323117999281206069836293105733891046190446935287552070046711466930102179653523720486442637222863911820909932974322461463918394703917070769451174596220965101076685014548262905925734669980227540310750591005116618696949266395520026663890452269928947562321504502816836435019046719550273536198917147655492215798582002583668502933980459534343787056679559961531660778583018287126265340183072525235716004854053007172711438876619528893914584468098257758759979584823720017775563388541335530453060582362075531877745458503219879499029829569582389915680183510223865408970843192843769743929858595731317395382387273654714619167253147405153154406656018211142081894850352764441499330600596583389108366747655363744336239583475732579028322399437411645324703167723550118120359936900679584678428784676225893496513524470977259238427674165525467483875102308709214985162429268953887211909451692985251585171341545649469125798802848272063353249587768473058718373488874031360248628393323946690056330485739663036072230372733290939221313774089868504148241063951085464804012275715941132642376419599701676808612941465588603788456316314234358063543249613424843685167855651538906837853738421516830824556172683568100844759813047926856910709900087177632978348535064741211181500310203395530037978494989603885707924884509264312984651734106448475793272980855299698663757757779879002297274557612578216684196547651598132706499378457180246698519423297758628231854099086607470594128771342210165763080390429796536131772650943095360047211120671928034431013432919355803168500228508903179363298995053105570618870343814661451124536577692127529892712211901878881419601097789123215335315762126077325421565205408532209492949959375607220050346857431252713071157017984701663653346516699608099469814882538909631895488127022950128897103162771226885117511368537842031924936798944098891520404490141750601253706121062621438643675413394267501905480193874780478325846974013722086264306033478397951963315460810399478273443343622557258360601587134103300351263917878252134006487709928862036060859996937020801047037201395570039843223111578199941721014335271760121158509641049350650153962929125683451529764056723000561347651282297587321067544478144670334590583274750505845223782739750852811304795610706367495688235488778851355137121481183332099733364438933165115290506895325646519614854628491382554317734534087640986083793032417043173308106968719052252752628765165770494631517377182898638946599866729269220768854291794171349361186615792879496873503297823377764093939272699038959322959668294176480410541465840623077174950464502905389921827143112781510580817642964127601301490564158709030279439491066729933418177643437086880806753230166512210700929800617891692366377409618331117713224853275896449973194993255790177386920285087966007633478459343635965280138400574188536643706329757783328167765841347757618854369510784581366248095887606604113428500482177462222745795680542396574321213577370746830572898879834717903447295797083150528663471993477370554924371283552451272073701612385438430726618594080565181430813402284729764523269562881072325244910538035925741794160383557109912498673765482363769075053983979499265407350716262713791269382839756495560986542928882716731875728062292380939108104182477157795437970485689546671882819366333759799027501139977937692448370717530631241527202322700217948233159604266771754821834309492793968888187764164767182325178279866475910805157790328672911238611074314626905042700010557144290125509351681465325766417966921308319138907488109709352771804773518227620369186376450665742073526271285139549552104485752631519391649975539489426809431361193491466962799409212996544412926100461768442821593039944473767619844473222609644414416529659832068200591142035697769425679468778009849012052231036460015261784431156835996274214465877743163435059289965443608790347289727218570204166434612713085077545267929108545372460333779498150593476442547328128460658274262127974466972760743078810767135069192941554249988529304770351373299889502964452184894314251563462600284765000086435978992171726292322529632398728091933310916446253604691060279647427240665685375950270064222992003761688036873027264327884854199536499541615580897485539002126358536739168370227530614342396836036639518753987997964910257082783842619821095187230973544351980601161979550664196951912657337471186975224201642188381870499478062858865198249082952752021425566381808218321923279078011917571644631151873014196462983450603568330017804165191698137771554480928214310012817418656810237058456811722930268790256453815888491742269161592435418239775026243148886694183987757176822037234055671033006962669060838940796249641613739927375755339868963958443009373500164184924440646399783370391681175938533717175803572457921010439104284527730527144513957188892574903438960839040368697521117130798515767709539216003491163981111735340602254636918703912031441948763565509953241913865867005187166033116323757801496704686587027014405111630219725779567883831079253505615223973930026986372010691402592071534659737798437792025837666747506834938832615485242866621073535973368039855704286834045250493181061869481883479305893793676668432937460511072620822090950605224492088510720960121623808440176209593205596091344996943433379477172539808953252448722664735788606107537409617750889957349529629351954354219955171950393928470247416106583598237638302771414461485822815171706099567980569703576974082666211440490484371572324221252746563281130227585227407454500532248853500190580267988914745567800286333530220458616218664552037533110892230226765805442525896865427040030161465648072873168152120514071525581798579552095138423157898408150184369964573990682904678770297240660683111200950602481363692591755057422576338652280843950120656822614444632840083138682851847796069948493595302302455337563537570116780194903742374850086580674302266902138481103495013698389933257508982852748336264439172574337481453544532526364638970497394563848173328736412996991052264589384703165324274813845452414213520999887137979786673148443362140910963366514728852412010941513274652739802306122479197952361338256734085753328586291919489133306164522033485478920565518016197522672123239664662565004698624554361916668651865153288539114986596648116524890094900474017317830228639181336424802636538295618065357217788033040695428320667178016885823777130791289921413225545794461590552620523372527819214712062739106494713249588612468675937373190838627341342525159791434204035332112119543116498212619596877725065345707475314394856735434300620155520894038828895926882894297356079705590219341910622846215835677181364113553035563640482133231870275718380739975466413873965133383697905124513925085737847911651060905492033175407228008215263252232549362320250407450327034338880483507676497160877852810132815391768532218034874572535109529167551168351715707094555101837687992641888859083138048452548327018508339320270978046014489672163409887896641677953917386917126756357944541726617594741924686559197863306038509080029119329924663574029183334662704587462262379370953470491213177966764204604314003337143220566130441894713504533467635970969122510413878554189085112354395115258961772516509930572746754214904770981733232493312209986882885889712804012901057893681976918353414281529464861373787319488467149970802878015455374249994609930231412605636722938271333680415346920083370332543660920200964533107864647925897621923663757611276999052423578495460571209741528373722629360063563006731678284007447255633903433419619574958449960608310966259486287057885497253616450965403661646227056762678511501215126510366801610943017585242776456390385730656040709812406805317442155143983274270335191196460046973352236782053899970122078517409085393343637044118289101431095284228232793924591611097679376177518831235304788908755208866311993816372422286381128844444563969545408165361061076873297096292227315713472403404640869479341727065248818339020522504901534910072658025121974586524782426668182331110896457627297841324305621870346435350930575249331533555770604191579983645864706201656424529340582779705818467182507459407383064679588955504117260390295028154381642351081231708461432993039422852137336806276869455065581919812824423864426261428594605715709149982877062700511651144334917087216919394119899165141262983732239309771156128262339108890819140122310673687650398374194412053729610072226638983729853055113695523360275826936320075106831465107200088198044565080384891072764932924621814604886597989159283326583941899012701481271281028282896342742852414302984245789790727774665274691122934099028222427459045225041141044702962244007816792854651439667727928261925158892810074875884426520051565264926646039476592940345356186117974991838132042520182612424870517590922747797267004987322134109167417571543381546305748922195768302674472228029412062900761785998499623047177306756710666678576772040151716076148381229702667463857839470353362475076576086611117953017188875241221888212264380496372085364103356609589268704361866856001308370483382434604261448142215343118408501406798571139652910458713496510993179963449851377191691304516621605101886107746754480135890537261839416566794941918957532654989884590879316981721407765634157441058688928184454413479353421526454222551794909120848019262653495670844784319920270827179792305547472273401030354867098373663326143175525102440256893024632381597834409137413558312703512913632195638761311680138258551228886681293235685472201581098676612912812587860780181375081089546053462704243032699125326441362488558875344181359414954743683636750066536149458541765891357659443080717839584680873268627835011869254976926659395664086879216766296962738688382230867951293040046764682646906862440253457850699412560563839500195631489909149804628215764167706234248059691083066001264302410626735647049740407317427243462521336068636317056121770553555198202332424630792575486108131991323176916818956774482934725988069717870149744846844194567210698826412052885589092176061969083049607251983001949292753957107089974108365211851022512339808364136491261249960717172748738420569066959579209379302049721848701404746131933526752666200750143495732640053403008885143111867484403882736362711123207425156628537442273854824097375108948152683261303539171446902432663026421938278613584214955629686063909041500879873328217513676664134323206243761554933811542466555645021959305880274758944428855247688239422633260616149715792824610053184986626368367002350694209712537323534588174888682509006037218235499133851497429035449812729099782684215108142579208889996768957808766342207409612443093922909232351966486501192285847832840097453483334602891444270061763173604717254094277503756022431741787520628783593214723050425171366570041982512137978915052663780236602866815662483568637868417321605063299493260636081434663945145451318281477052208305843741659216453596544610348335285649027811878352076324791465174019051222457824994594379282642971452818912617385950949372957137812157385752944925678369437348633616587160814545310383901588535337713322500892841255063626739882089255099228185596054043584811223351340417729085096872037577232206710678073737071080610753705264501449168669386389955540301059149782131721928499945402395048448830782716643082003911289740703252088008548089614265275129662731913290657782825738453499762727002599419273730042223323444908691686508831110507206682200969280981516380746541292991380572048526427371710288634740171835454148796517107647521032980424465880192602370654713790437052664489665129199041850131672688689535715698400979299420421751534650146401676055108598694210490167192255797068072278663731895154265480718536325940188232096292934846222934758573209152777684617596430723486384903068826144059989554924183685851764887120788613000954723650837416988481947435316842991578379870591189174092853524607946789314287663075328573380156369769038049845762798367114509129449191113390842114143426499972982103509874757203435347562550221052655762291116215988913585129412108777802179263463410559442289846824011897319761439649604116640552011851072238061350174584191039602797709016739433968944381966550300164612725864148778454515859525894361420730195920958815406297141977426183074860026161556763598932836789002173471530270163560196395394707858323218797224767354042213885761380019307499005749197213104760884967266361422408684211049291122136385967218580133838918361332335981798237802573284979445202774639431620971436799260217271421895719311837586703906019806645579364783249938293765621992795465299318207148460737682552059454348756934448485000114680273672430150421332545580669857219704428455739398834786428390714633560375164980146727129481027838077371865567093907252322105147846148155481164562301926729961919566337392178885380532793873848712997246614321203699362322763992211112258001993590441947182984476506333468401125941073514213029838620537714700442365182825797299599896630350185284877395644553848336790214735644348627015793599789249938642475915354247601455764343802587745622135291928335722537943011716518278623154003307432861890796817940505097904361863142399572672085073622782476273608074375549493894594815990648093470364689141417623587455188845386503275445694491508247121851963051115951260116293542563748537351266302357389589330492669211739956517406721465411660888984921634759608928778464280805580462115076837490336559662985287543519275731626625162738646877651834916659662333395170936357827539353850581175203800661077085084793136593621257497579647820943632190330061791650178434861254536719450296797377302761304613740322081417838476098143657938846458768886238519554267623415153568239815154927599495403114801104172483416076263305890506384403211741125827789067277191086178786313077397057641455960612991338913543596892809286100156116979563798278357394125385605495572894501713592334053941006530182704704138921825415171439553258820840327454198527090782298222793460184656758819546234248258321762039549008429449815975586958061025666996001056958053683867409327943711685452953146796958790634036373982560027053468758537967773809549906982438571651448476773937868953736782010759122814345601174196597230151559567193820487719713803690348902179767045776170123105140754190407929898796745798062273855445892565854748204880736410890808064103600996336887738783174459063941316352487438140540492180814271767461558559534972740400804206750438435677159854980584389616367906604443026039681576823899847316570668752844136487525274887483570676976173394960096058738489601981658751215386810623954596582098450614531785217443140260857634357824391545531364515080879051288844503048730267659322176294668671891994278273522457946019059434303462292213273438757809273387373329417730075472920710011157224216101142074395827883835356279816583266791480030573097178727931979611592448513849041843019869818425443265799580067564502967780124119229028177379166197058160683361818435796123695599095460330370448236130576119210498828016277660780622740014544576998485741211038374703816430204941889706673197513898758878602012505170474838479720250166025600867756988610472089887308958521091935240245076755903264837212078732102480955208619796578809055093028323795179983255740883379072349512649581702680460891249854462031456731767631765696193878345042897365506577776985065072107642278962583477128585363139380378675308157753566719527597625506022172624585360217852792368715222811291179100485806353144635064701496598399365599049367638000513603551863967143264748551066967692836630241282272290551098718379152222393734961926593011715687891235025759372378074545249382936462364554421501845983022739254178350469403850229568451178927127789164506551868488474714515616071124353399692548140222583064198476124119727972615260405972335426259098715117532528517165273510841189610059593082340705216731049199098299640297569267424023838584199790263401807218589960077660046531158554289790290631959958793843498037664169448483914597592727346099357573157238619572880960370881237570983674859869365401588327272510605017412283055523016450241203550414045458757369039584394421783471902411851835019113053810669703377041521419265176490522841946880512963205282975400092533679510095295788257822958738311610065353993352356094866334759432338608560698541875952884139469114806247458118981028756336201580902167803450008935442622916126486439344897373912555163525669540084647188190143691778167074594529789538716816069531050346189548820827760967894036663895105714965332412852826639166603078653221359886577330160328899470835211396296801146160530339244787505114670196259596101286686818138103292682758724493600960586171848024621650439736323459997613698804795670561041793574006882854715937224521105133244341644221770490465112394550675483660612219686382470860222139525570958789982522744404239233738881243777894529033804345037138721854788070950910835023907617826283847410492988194508928035273493978289080451218589072710460868343041328520389427892247853623029816808918101301585484278731880859552308990586484695549275583561958060181173184372546874652414460629955589492428279225435969232044083605554983533704918699195593342543869140864363738457330924301673737517719300266471881113714925212462312053554925246618647715116506017140972398140647714223474392760060396318239046515769800058508958425708045650858018960016421305753810682922126802536870599283185131033310755080037860414341401462124474442763177241676189396673093006603577932818526377051353410467126793027832653382929687699647763077465246291167414822803961092373302530216280517026928211827345826498639181542685650058351494066005118952753572370271167043744750056681792647868214138988837592820080848359676264025741053701131418101486210716275310238968482042064320929071932965421620651224321112143619690620954311104997490224181551722758017148961386935348736432792399684624194535935030732371563643186441583789263386339883856220728347625996211353631503503539306579354166884430233476330987302002998123509906817153032049352590777523810943275654507047242645719556306912876210198651399865694731478187672169557449153936722646828449167656465660460537052607419595584101923060526795268856514907075961955876439513937384315065570881087571041064633634492790810571029071514582228200027421557389144391567650474280415615813648661912360196910186008379056209261048713367809884923145601852436806158765569450658388143380227697174162081902877106932495453288877288525593018477763298147504608444795850365370691517093429947965980488066749645925175843384740381435306690985296653897593641456732484151115215147452467052949838015139824270863426308685506301738452535086439806519367260696332020950876034833762876364129099939415518023859521553755416040995730039654718640971636100568305434367140913025431875391847651526703274350263902282810165380610732323753513337369270096411663386132278721287911351763656901139961706231694823923588033663122048760572194714147123480921837712867539842116488665754360569446486712017912012177210673597023404416639296123205672422124854849254847187573433235496632888789965164631905983074691091472565481158965006260098095962997887285317269201872513798537236360134834523577255129123847527427193983471990481473955147832488042267624727360603040761405546948679402129532419251962991463599996504494771558420678233893969729730212166142592948757102890173145816573593593942264795217548011552613954832589763814391640843832187825706300242504198150716183218185773845712287084692926144281307217291516838946771778802719642022789803430990748121625161930679608104522671445366443883140918841890429956594591862352123014140042016138971271952063617044897884157973845211193210834846844580538685929408796032602536940138058109073866913793994846870959113126887098036556995078647943548739336236046960930451291760643648021971592796019793118564100789462418950335317802547349746286046275734219374329712369329605884838206353506248824344103555059269883850822465854915003719133554125135268019716485525141540061602946985056432598025338095912496652868716361828474983881688041623429253131104366814704583418979242133258145889856553327096368542713555984908088779555677381016731517060343231379446212507835788032901860402192334922564053534121736885248067772750759720573088076546785922914955855781536514834343245337413080448422773060153993521430813081295789203836379943097137877065593797936625472170095383274038678990875245616143216440133800421812601384694121972579560552901797376278397680755757710342064964071759800193868368505067413856935099789801135403789368608522203589850560284004081324619042228830850432724047531984093893199665941058777769698406642754133130626966717324537817117208150400233718081694228992018789316680256210662145015832436490454946414812568727466625675061718687897667574076072693088712919969490918831233461782287510782155084311632124653543980972971463010319912759499185964323083178510240520058990390948973088356779811496588506908061061096657779988585657275811734652633971077422749303308180129869265334329901456485159884420514701414859174146070510090370989383204649291865024187623177482949773160393974674680015259999427542973222190777565353123789350302540959961295571354838344407681778516456534700289127674891094186156048574463995471675416858024539289956525973489277353710863041549161477183171451787960143216749224390692104371397700912495825445662468633427542000481942783840777249383454547221692732906515451637028304433593671748539600058534228770872066250396738620158834836558289100307839201860540249730694393008906052994761399870015716330289060603002498934657750495038363575582694282463284457838902729858494368291705957150551899932352686650212426909714931541679015984509350370278996113511174227712217374120695257831853527607462137986265970970435650946640773511433221170223995327625654039239869228439487518745292898409824767417029552479682365105229250280591094515829261818968096999099324745398534792065227723761323634020157249297846365986553925259243142620828449795930787047800790089161030136822651389471472931573870119456709865719752436927300444621949054110414734714598046820037931493693964959859781355649860451489233649821962370761929211840020579158314405322501537951114640326336698844223140227512202189439664967193138305546950176327035415962027124499633603294594537965041499913661116356189742637632691024303725242913751280493647163676998866101606503496873131401369503491123928827539139228472685626413548811395772032855162579117051217982468526627868560065021695305868919111041406871117787305337630526561926801001710444476757819165826610816747792026847732227758084281949818620720793887323972466773883850577553934389986135556363932588779448312887328909512653176807735608085924824797369127246769513303037960367117602868372594199245679855364510301038873689659585736495345026336749111539451880837151498681014159612046045446693841583355289420265213909220732642187869870668397055748255114760339687865301127335509057905660409868765539490488823637255362701741972722797391801953142484623581553417913042502899851409066089699168345757792300853015828362750203887673248845957756289638974914328589828363778493443559361467209948032549915454898315355446305761276845713094439642749884390683738342440015634092397535989476142725892267854270206277317401096918130887009641988437321481925203891074062786587011377190266909581115069354176028133486371962276910376529430225479905266048148566271271661108463895993457402761074941656934669657386349067697896408543185403628845001301932514788595371855161350934529761303334711960692541068867135223799731307521324709391094617453814189010774895686673672023632550731488363112552631462802484445308519398250263589722123748403480960937090102910396364672777275556670034966277080997794858897766388754032013828866510697537115165905494661218085759824282336573720680202555413694451638175152828047594954608061050907563322847906556606809344479234198480089084258530496987346891128625984131041909439111070803919995557658636385785484150230636047996047938372031932719485727419982075571869191918563679619758753490466208553157473454525048858229440072571624198551271080727002670400348455536290661133090972628676653671078783488361048734175503562454147843209662221485572306430292605021718048406798013635254501038169137622689338733907776923711852334649960247799334122273879867628385450367299181934644943500786453669317252510503092921334081209275096642856129301968512147629728783665528901438193616586033721218873805801861798894162463463165679609398453618025908810560129967968951550325847901538739469245008452664050850266298911497766993031485156712894359040670727321252968938250836218527902539825938987084996066902788692064225745716484481059661823274024995929237863433467955697920327336292636549539400612512918915538436925214830475710529488683156091053593404464275695597076190042038605376554391702065152341723228017485017464880144576325128075890709870481116479952116291956588234678943196093003001575507497843587941639841234191123242019654235304304457995194425971185833147495360472475294288979362928035551857624077593003716505829169597149629913755121281013741505366248276806277515416453608688992925961869501156748892703130141294586801644931723846022186766070375301265790029036345969241360551825306602002563624984056689201880639382250802035324340409309186269709904097648486350965879379469375530449724717808816093701995035902763597222396062050872669640580552473204989250586757802012549119411495727773237919306134756142232109987768284079672626654906225164442129263499478294217866207036824469595826989868794428487458555557906232908654453440110999525315936739986135962770339429858882064050010929335043733220426418137931789368256017675996736513750850846035863166566022722331653623605696348586442187794774106943387136465852291407314954362462837011821114199374677918817568709122725489871688181571714240424071341056942780586366256594466454704640174711890283286535920847670108135204001998687952129126400814796978247263079299631333116716277029168551322620164272998510218583568652224442781748468417479943801953389080261087207620922417297659154524995549171879469092820022121616283686062669444126864565035534784972021622808586111677879639087550519346657303643091581135935558657455654657385327035572793724968514154686868845330168933872199670190012474423476368831173377882617525385723402594010442760473627034066061161698855718735459408405937349929368192654846351242881435543400064995565457376995206186714780745870481877576612803748852865701847018902507015383147840256306119306535286418631606371579946026917904709697396395828931355767650808342475908487971224215606454832653010128967857438291305138200773941271401915607457586955300347361087656287160040197091644554194532078995830498269456227375154168300502464155130145042743431166951133816211238156490478451716017630421057442703403395275127754620107942631244154730310412779171889324884885267915338140142028212613652767126814694939803201315316278381385561712924170911971353759493465533472622440777142227260916316882271237005633782599927246061394115290735432963104424383890283714602176862028750988691859540906746642793006196080773085250328985146329538269708017239131634061222483325901404202741715662712535968319061515445897069894656537100736496493778605299479757371210426856127498694797881482351090189513305790978577365192280811588496277579268067955381746861632565402094266947353251319716283778819497444042774065546221329836652493146763099248391489167859962540261056175098151391753713096355469777575413937240151980650061385840660606376415579226639854985959690322356934757766071253751306213314606443535886586549925016894743765430645418556291810388134175434954578491734576194926268069694086565740761593741809239711921256356993452449702672706696721161426129848290677239832767944347750875672786135195037713721452509076564888844669479368669365364720621107480645006574035536251871853841253395893538492085554076704510030520222382653934950399169999164228127856493387415975158647070707781349336990272141347313719003965991337097228032635776200340480047649825805017873849037192473671548866515751735737863876000054728354650074381274871648122380248139576359231772013963534984057896002015630537072020201331829813932811672424530582006333630545635405156112949491771818020704822348196379066188152695345723134348488912953512119090504293538212611799555975830766681976770295185325216383285593587033783363123327411500932701419511426962539931533658399982905604570914332077742067886543358447388721726165331872852777443205638658364229871544458015141590856220744657496977163007262823778635930131157417318227816240893515403989218542344866068668736440981405774051418296971864193672342367111283973511726251870910919502175595584936287534800391269810977326955082832643113737454295045041483098456729675337624047882441561388752469537547430942499853741234411509325183288375107593891850020746713449649857375502880649320673996300715632256977534596934108212776929038273219535564562735858064349833499550469249208357837937564577125447755922354146893415399602641747155912839392422921101936631143467119733964584905644867398218078171525962884274998501970315398597655065214353485793235120256175035507386818377301063882849625300555095612451810888496613583070303517884788648453083978493539155499170019026723863517917266647091184469914773443806190607256909596208869931134677899779463052032623595789326324438184494789293352127952070481552853374826185733068404358073791697010193044209798812946150983351788269328118044739390399137053063152242640354900744673480735733276978020277319903070122241274219851582290895221306229643243858534058543306684462853354293035694195489358679204719260319217297368570228060447065693922471072261132693993320746564309387598525790380390794869398017106332005244922406486936022186146009471913355674778371766974808481292212862358593253226682892120428240591102804726975611099626836355116965931405733873548635760821600906190529892764622110853163481713306956759183128402067181548500747465568482124005798380926641875410555317184048893186569157607923138334241352974695816316189078655969428179978958935995659269624662014673526635984252880563932323743971308676108435869779219151345423130602777558902574095559626572019397653822144575659019521592801765879113718505542991020700696840691515238500298413180670140601064610316478152019415574117207504960655205634024530962841065240225988072872520418933409767571468305837682077660034002736108179220861056839682342478851442591131764392062470298687874584055628469935778719881400514246385261334206723480504594736839520003972132088659474359131159142433716681742659908816659839603681867370505003244363216058801821337543785687004696786918409357542354447101235291699649065075061986343796172087455717921809840834396613433001958159281003125279491802090829772909691711837735146731913843197448053554302422877566195944081360757773668606110475938604979633333834540038467838763470083070145618866006174279276932112320176657757686339075677507042435597616011085569293355902506745523387609595595765666380269316540636897280640952478148263645097194026976014803355909411218878182085368098413262076361826711229470115447397430588413917563555839510382644542522067697513687779531146521266583462448124307847009238358115520843647771027490032501636149907747886825374833522683049486280642482962774367789594384965681926769070365999177221769117047190454440851285523635914295103803494848809567804948454712300793194477777043171881533146147992471760356097874721170758147130091291653725202437559985508515506236184821305533299521540134174916690182077328831149120000953598454887856026553701002039091021950119411687616343296481926859097653284162940750676392911553258578392532575883150470474163002290453867331141731684618279000294520695521030139308727091369865717176775671408064968739214160614580806436974833335475509508649671459154983866102193223072791854205068234385659830510632120900022067774512633512000165603134961445043489330366626681035560127553045056304309997632400183581579605479634516574124608533842553993881631489564329031052320741112354342208090808695102198740927595937048309816419631031079577104120659782207791925592991886623728071831723978425103775681498598784675311848900588095815331202341171342498775174652520674517457941547017896431860525286298241154412966685705667226111565946811796733411414630129357957883755168865247818018352846126380134787788412132102604154848876899670972242605072477510230463924374022365641554800626161342995045713914744517293155149271313205711824738824698012616856901529742112754339617874003739180891414422945071131656716536167973685764688089988610500435815107479834469600170256863251678970318203849918588947105148374380877156621857359503132484673945797913031674689999980304612211311318834545688416822456914240597550701292535437163951275064419361640700312458630714343826269078406816261966560212784467235669311664684659734238158468362546713883738956119393866307842236606875278484766483522927451282966734739739689610882055052481121350259457587380459727649266313747632267227340002470805954922140701666339297076384690386210790152012778280262956826647221057108191463255098178416189749350238203524129547115193577264126320359356005851920491094842981419397907256216609660016284319684546825799833997875844820370175694952968832284767705308799151340280866099778805711553643265398439324587308591894228073162196493778573392221667483896519683102130408930590633449508071904883835589351740350032717733315583114545499368450147149690369586063120984775959468542622638830615845065868998190612508398130678797157844288564567365183749602562514915626937179049552196060236695246672139559583081025438276238554863821909810328206225426935773393064903112197555051259591151656498140488202920605511431772661023805375547175661474475537182185832028437555725226115963496792047497835377732521598323598776677399539948959696754910086626083864217934214680065288725288313963119896033675307041081177836019469049547120552664945962037735441993150757539324205694073189732660649730924202032255973751741255238267994549290714356970802666148119609870993489965850092546201307790997540924344435137151444992770681667433287227767409411249289900478880266741473040917189132508303639977512511464765016261647273218793312147158866978674520190113094376200341113871749604009250343047127637531845401161636984376351498794988115934661638387479940684169892631695883270197442288615557357843505045273126840063556703477631673804364791394878247458382284684858738613779100979427909481223605919670369920864439889145199283516454324538166769060472761859711119446716725822294642864556516004176030614278410129258018860870820738463380212260373023780134966638792419047890454796178840262101629880933705412595837435929449398895902951365462345068973975974556195398544906562049967506536019583349375732598511875452037195573796633959324908576207992709851047171041372200357423438470698339493634781326960823599890912377522246267174114931269891967010329179212365056324090036149368647363815963344065987432975646416246024826030909161757375897836747097874297198389746613042221345218283637983765153373234830141124595510123802397206209763808607150045240141714560070294867720363669312778993027209563160594376870862400304680747336506659443703567405831247115113509086110259093631680042201368674479427128675584980463488117756016038969180816244546391409413638682253454490524248183982137712486457738292040997327190160688983144368355377334642346295985708240674761302768676533141619597636630641968246407328720594144437029030014872052275294780973963668691638844524823640823605484270025583279668143258267799963368810585568183738469490143488352760842871573614596287951877806869306274516569828282154282777638775794640764113725950914787521890261601028572162896441628819974347269696744957779076979585290731011344501875710998242199108061734285884306774924049472886345479438372057726601656016053047649057059393815731484484222320689562340203605394014356708614932909328734776022803118871628363563732699989540171003800397675608981907392697245357746647450905407316528447171337538138032322319535809991883661069065680094260102748986231103899043756775600784082254913695944956220954109842928078588846571714122332246603800022638226511412465903225384824753336354788536081037021229467226971414732661190996715386786784958212816432751512532746743999926680150197625361362242877215839495021943552244262918387965994269825419181809007788467287671279610032807214345394668991722099125651322785531444368788590740698026757271251688948520797534247794189601336044955594902770046301300866619107812689749431486117780092869876053838594983445159248357488853435665069261532842385487264477216781868819818920760022392571721424589477696305880156014358246483086597266078721502793698018498312945585968429542954406215381805343467630139172727565117199619243025440358580671366040817300234030798300217629853197573676698633278505411056960692227663512560006936978269675604539799623878752753999661718008500124563379585346400568293072780332238977496251556101949317066900437781754907231820487325418877725287963855869718848184227708875353081995918450578267778183624308345838311656098486941124394923730638157348841569609546299218973306817095279572925623947470303489511779234819601181801971987330166530120371925106069884076665335370202643793672308181973792324199473315092158639094250629383945399682009499391488655459781334613982645844396245723580015410040701302777179410227813945005525081257142758314612380218629141651808799544664813948312540481498706633418027961387031675662951199411326251750569986002505289975307326735376370124918017740859740850623936654581185832027193084386460937943589248130893146711029677112635881287607583950213938044762190473965403654597996350844784314994404095425835491153796993174907413669308297139987354452863531801532999807153395334075878745309232095008047434682888678630427175988378305525121276928950452640816338834683681043746536187135395899745802751894290959933139159720523688438932732159913036603454331478902230723649120281175962359354768271282227759378806321786904989446896383492616904382223375446901504097907233308508372099946601290198760874403366048885345958743946046402384879602825364776432582697486660690826610843828459339644214997957143478015118897713061938555687134809393114564557887521198472588346609168956769802366577766403330031104441817189659466550338469855561788112479939241437883301110521391278661263025711624012951178146537161978540395393680369203819001176700783844418985830572092559443488957121729006025409378650086355990168412933007873374884196362511775660968864078218164316847160626848518218820233795593747442580466127042370548897645523249670335541305462353830894574804992472811125125824461504341443005576579081691016271076511890163664169608978078608714457648117093323105521952339021329098458399555553500496099334466287250368494550119367952338944867310058093622717556451223505098450484568422436370825538016423758288298054226177724190428082338963746615894150880367836056999618613073025356741523679953938430042624931279686726339021323999276665357810168981442683306984229707658858764069032859620144671188183685156262781156136494727228628632193806040880053993784242609360875621138056554847567141282975273823898480884537436274831070342751261704602393994249504161272731795459823582380602256537763292077440857969282527666685366099235217678298422022091310477949516133270571479280443921556829092136030599490039299622846494750521699236266480794169384381104797284699232854311301454928482693110322918448470396747473076333490747027641115905970610626233272911449890872267937706335961631761541043676421289594752001023805251667807882722933890681802873872893942194802547987982766063873841741405346233675816933607097804392330518718867991710142067793567604457263039768358667385827506017948064464758994675487507786271779102979181688974133729504100193689682750693628096111177743043328699521337145468715036307739595219179675650419630310646781243907558531782917117525596852630586227821365172317482154431676674316367961584295125355918829981566464061107531672217251871585310219944911435113340413610288951772774213976397164480482590533948807353827468173509925124468898233482393178831511251174421382437805970174892866879905437365290963515777641457840973706061590966048756420500745240602629707073271192728072236152608751397068323955641824596663430675862164035503182647831730036188154608797173920692811765885433816100530249782629416777533886710276013696674789712389938518952937259718494441904837155218468705983618679906386434021310535521629438127036244255256160414413586212864851399061615170642289974727505647524018140850535610721719528180268058248161128949282009916229237919809983789561302428011671035089841223953861509188989563701093238944009818062133862212016711737336781422013856893465431755951431275461163100182692311928710618814227834848523330200879500136026226896764058100675069015491685104714237809804240220318817375240057493398299240932398545698370797582952917043214084177424597810514345929967021057935979154429410810511454305434810566236404338263544191911152722868130913435580011976220834665586104445598964711978484031370738883890224230746602450394016186405655458080293480374777455487656566498956648711352814662527688398915014888449858656030499381919161473127825325419498239361271989458440692263976058699932452849053713415228007278561796853558231310470456154897287300670852689422975903699408082510040811672005630062997549165756300689829877085054320088842072024959954882425832715527789891371895781086592353014639417503531776100252578286311112700996722727941588727576399965649945689905341803549227747362206167750887887134746519709958534465764522831562620765510207410768648953947725901060539541229990558070958462022176805911786487410845780254054076794027578188957948341316991485925217196715410539101337722659326346130685785371325208830105945344045173098485959454564991023104905882460747735871597019750929765391262048831184013095490281484337158212655920479423890344334184316600801653883769489178049947190377876306813579987951438568746566925546231330381740011552974593009259455959567927262437861647509574501833195875914200814810132705974087916337472842803101302057913788759526512770817850928303907014040437883287850762492411975374960180035009038074981868879215160248587745404948997048086820517673110549512556325231036348154199491541431292410088970066800084849500049837374029737351362058387706706333017675413575397900007400815693148014745397678567984328218321174689089737567642663809182828444922548962299731425667881242348136995786998094691252165241493219317960286162518770094293038824963118657772361430558940134318467971037109823884656082052849452768506947650065442416664294593581166129215408245562467057980928515518029518081821447680453675489783647208564108567301059904150110099798121362483664353491058335315187035631628024457176424097913424904864415158904452388477653281312465278744940891705166488878069917636366888409971818865663428954905990701101979315934346146080754745693908029567885814637077120424758423377085727193383520965198050406551102330247175178594257367636345978320159748763701186513719871752922505001141414038372554297709713186029101183572066729068813624532990707725688382087823031369652388047498125713829758593190086603994621580684286744539548908249046864916870142037158704429488761377563455448094439077767011937915378033975212103186113353912210036729121967874187408470139284803857143107339026604525889595554126330635610574530734174129158958093496295768925107206698020851028534614320304310442274597279180815767148045724295205610797198524408563929296458725006489184813168704365174885736059832234799293748141400723689082521486452365008827667939668801552899158883155152628695336327024334655391395535724703376476482196316879373408560878404610165022170913458316341422671739183704083617756342183773201947078737732018350973206722503858645802330398012340262963704180104751343533775511617799178403232498230561477292103846854937622208500518846638766237671131222506204145277243551106120771736592255347703989298973504856989288682359687217473558946403745637098215934220302518707601189449683053079877525006708356359081894907227115242563220935907856107224161307173110373180145047526508542944050774849002417466356406745237233072816684522474125599551782452255370033824106079694782501086183626086695596465797585621838186280095735644241179289611818653980569367318626415097644647612147996545285568652973095885566820228885024374543342659141979903289916545316466990479811753610680431967574884860181866186121361239130184085172610435480003726723634260131598141043924846745027784457858853219972235327799383454979916704391036468150212765722409242549860490080653723694959201264287781523989983544878373614264383601657676598836876273693235256830633822050477646984711846066550461129172577220775727411617726288194449226094419295456211872962063877220727776675072702329972356513643464835077014365598314260344513765277319332385811900415240471313539573985939789403864731531840546901144370806962481040659950897077172549380556070304678818801432768328950855106824532547328344967346325734129170821136514430380855502010503158286873734562730370561244814551191057078170394309951808841490483686441895909152927180265288095721945388393167577442942068895702863478215072358984546881390799467128836854505895309710887195622164677943753509046314639322862291641672931350442966784787030851711501420836666427079741964458127412493608482432593827413971212005083825757847199791670961764429461340278576280673189260449428546366050242881694801222768180520335629812251635844913887603060623550163983362495434070430781589295571768197729418550325093607722512417084169626385411434701454299349893875371002119904374054036877534733450074126588020862395581573711187215708135566652252862273962480236730899960567192317916369438631874338847794998862345426170133726815258767522147662808106834040704452887775314789321022377980876896411375132633655112641925215727088176652338230427649856698156650783070077745946448737561462119608684709229544780251590653153816584200803292819969895426983193496941730927627182138935199568123608435018436357041089728960720461378802458945822469639469659651981735626519536957167560826552904349992897117342145437290539011629560573825485997420804061630581699362562639153726084040753069191512270428801886704278447593619785714312877704378885901292673456359210055993763925871610299991629158674979871826308968910375611764222068548530076819165099815132676974317754851865679333298715363741016787972964700970808789985334979292422191076178433257403077600379170510535468494782582735220919047796882158036294358996400781090341532931994391846174250468524284679265787504143456453988148711146660962691732830261360579434772089502286710929756450938482038803363544790034027729223516626470918204418734815598387911884700020838259065055014957539570881671792569672759828741087113195641687730525187321812241595834432479065597369079062904923847838718687592561279039347515566352800679778643266273865957054063198250814307592115307246294571966645119351712909747428604492678087557196359531980352794717261231665351737263781993946812381582509402754982558129292017031088768598488746858656003156478990646299894795707591038119641152144939261405968756210103732741907132060986244428615792758220296819485670049893561148926977078544743037216332459783973946815026925354267518355314697260610734946049424200009750535132541017702569959364927689683362483370600513647587484210696827320627452219319590227165103154191759090520561856008207071504669137807993295497079086931106027813619966081799884748062926827073314038654982224597122359519474992120664948299491265902835128648512818264971263880202064465500078094833494338409143088728625196873424637001046833652092778556135620665180229927512855397910480066527146883636488742515386121017502073983188681067046546060767024474217728972621462746651504727384237740538096422306107744979763844238530257070630137528609331788942227356362347844493035182555779560599751954898563859788156280565884851226113558702904648340665027566216058118605827634215610674932055712502988887952051173276842402522702906881537032380487781206926249252157913434873540293023182982873639496080510836701667350350176529305816396730825400129093203184548719204469316392686121919986863676234642709613273009662240823613812584377541422442091512493697623635400331867852509459969396991911969962456080033592086882016058648943903497454481648368853882907729234789263851730521808457187605621351403714064575985083240701764486225989976379640092803986169514985316976271874741431111828497320443933553895413705985344811239048994031817208319250183816608199572621462180742521365910310800971935747143475683112605003192378995259460325294148478476892703653405071640701196666341620200453995531295062550468194848319096781955576089008428371250707297607625881231696036261276616373510845885306113425769509298490862445900694640483967692678791101839260408359818197486753203076053498583980609574320165802540197164426088456844333417309947301270938927158336457994184249622529255063742159149598765968377433043082752785716431281558868233453460037160507443622351135607863937412572036913487224817426728686269776682431338702990133670521082257550645008018793879113872104869217430643588924192080783499459887396947608027841274652882412057366577840401776008211759293926183083680750065570716178895987260201667196536054088402493346690354693340249130766185279795972396309544602591261284476665484688949087115333172976927515540691884184665429414637124210057279670303708397446757558366430451579514877396692404133465533633013612248573564224983221831436126856329337503056138013929677103075718262740819030868475557190906479805120215615392995484499792854000211451488906936615554517142365466637587668523795531046085578535923594662080142379618904576445217280881661395964260819222938402459071723416342304415235772314385500150948093298464124153700762203395328278597817787227010845055696436906002870901003113049598355102404001156881067089438535467761981356183442056354668147008753031587737125987737672713584693663023081833925654586577536348538211492653272060559522767985592341226497077001400966624460883467316468326593178006796084451532768319834682106221954571195038126741398687378141286866349176712090369663425981210804900941562599256404715247173817503004088086838676756570807098632223842386360037678589813550389011118363137319490060563846140152934113348335476161487675798972966626311776726196432865070956931206133005684404264860173854733599800560387814384161849158251024735118943496138158795698487061817196972049960166791236317989762495940033374492539658174834350012627665869493812422892881783225628764280411637441149171843397277670362852163496260701306663964082790163781080685050337535968060174442003187402302493378392226197219553008677373357670046638623869405818732273462292769670248776291047334742232854503812286121907158890220631264716248242621438023016377892997462277460012611084024866412141180510745592241123063696253607874883720611918430499854298914088777583204998755562141300391354827692564490299186230740207516767853540294709871619236506103588891581605486913441613154000415524641887061468697239066006253594333565395821106363282198298451484514082246467146137156002960018055793431030647179715340435993412493729824194772128126631671186762329684242741585136298360319298010897840711852509471990437114594629259935666888990823793058334273861085353900740288424024440100820368763585250852925856629984096097662070768743589965981450378463135688690515387103706436188886387406227707350676936503641712879162605867282119254238529369210487969071194761092345502876049517869343379643817703884570168857145526874161395583228633190766075742025956664990925522547085330236274704697715911694730836031670121684193777441919386176128776323536243814729926271815067449082251490353661331096503881118366960030310619347083645076268273107453632450421977866330412001736443501501288632946607424118087256213266228492840882867527309694990858631966687545422978398692480909762460823101558103707013678460319887797107578591763317715434292914976322743955165106704600293496450676620485564379105058911810168247652087468174564132826505208357202215666666360231271347853620587362223644812725927548432218404399043575667607368092886290530207643774042753836642341679508322037463876967682683278643461190074824050453801558300974949802071020413005781690987965223622843939958725035756146503003260393891803580658062439432816838899053300426725300919594437568387070235038326175531716292398648191732958847876793253926776025016284089656239873516289208422404209675160636332199890054995557330424962019010793774254256088500339300564571483028984685426146602094181459829687282090706306300351955098945874843213374058531819993282879150694717587041864515938304848036144279592183674969913815265626207615405253642172152908191688470331093645069778683837156758377383683800005960193059367108989114164611476657249050847622173886306135985883290523444562543552255725804446124541302748811216173654271516137204373122955982172018426098456352936421375388944726494682039848456528564444895955158865264203936378058113808061184989256392738638957205415767610646675712797466081188699081198969562783254153561407517913042940987496458544315869077837055074336107069289009517171522592820619065537544310292797143626588006809831339016066783236606622162024201426297387634481329178885516825664770963593250808532767213143792576025903512532295115434899701985634382863898439652639658494321133641918740915466812944068885598273990013737722063437293302609417599291203800741045461675601980970422204112242848534852525082878611833516760728843472997334468722738897450863269874985256632909141929755695083070013256736203047730472972086934597819205817417620206055417786318625690026798860703449100826292002460553689064408281985248655106007258060885557667229382583367544791361448304197472782265737470496258573349956449306049631081332104026448586937366267576554089562242655621499475757431603401477156857901076744902058228028378867710766077416989166744901536041059099692618946022089163173174555067156970270234027062017880435672814509551095530348637300140833900827408508702355962153202999547265547786580715338404750828367409990921531284811076885617738954379440182477431729560610120928302579272523315972207059846361825841103207851921480157632381673312735450993018448610868733219249073684432479828742118356492887423605145705330925570551201586337687776781694198722663643544007657746678023157816390740953986303685466867886773253770061128522632998865855543804735331717346819299090956141621406787793309199319049584241472250542582196882545102346399400914757314644144886742984776985431551856567717756139296033053288419120728122332777743599025905769459110654160255500951839918995023546173528238987496344221096670484479793010090798775228451429243568129601590280325518548533576603752635121237076955048372991687466376446849844325878209328142164409365739665418869150735299352896798445428940872876805170389656697180141489612863838498418331208229262101618666945843504957706675737708811487513218699659624535555827879175537448332216987887013099889782885285345630407642763987222355166678058310675131029504886798569268979061198995578386536111140984456557745689819908630134232185912639855687698437185925943866954274085265789631406826202736182580546262179203781193298613039870745450910452619383784026088780677394804649782081954636157995736526745456029783815638232714402599351998088854969204355054716469294022432475726746257908727151816259215710090496493114843198299551915728637748728092262153234501774948223070751576718615181942136104571282709988396056122241391005807000577005076341354108784284589125181691231112976326197054112661550192340151135334495589667663626142885530575578850614269162310754291132884018484657622790544323541355789972615655573299487544367825314978082286246817041042805293614041620484364881201709595457408266918137188593576625559375544722682686846522095693902316820752609649939333578765808565528151585631858982953388914084433263715297181695695860913095896824846265547314237278258133741772342706454098682337844091953176380907969051556472249612245201607972904159112243559560876577255966496045797479682057978801103516215835258138472016275804085682050064655227485724687228352466846236354037726857969630410546568402021384790602870450952735499102262194748420612084628258112385713587501890962911211873005555275853710045031427788184475016796861805326118205654858421948622633562874685579914248957152988878450662137376325280958524521667592233889064538745998455933757782375623771352407280796488030974747031920334075463627011483294021072903895175410318431670931513078946336012182796449959433783374986080423662750496096973233498015790905513877118143386261363763464008640933946457909890076562854784659555684857311194707577783862299440984206394100341976652554294560199472275632634545589448537150901475631454386247904896751270293543307742678095248170836506681213232815265543738700499029794516951186556860605954134995499538385467148924667582312576393971206665609764617833575128474408485787731475059863621796045967913731731334403303476382594383616530328646022555850324100673506531969798379019109386431613900469887754672027727525259807066730784751401802167942265929530504656619392106387210924739673639381224691399023089307537259434148466575805182181147384773536217649957677532537077990507948214351701382892204471799816513979705990923950751245804931795510880219732912033759442675051852863881174833683924567613028771124819127911848929070629714812502735032243570184871473321197686009069051371207100498558594026898758597038538310420768982725268692417620828389768024190489610723503496920770402395376616229252577561541728235505935495564821399716599787465890223355818757589333045534263463123968204123875422203915179750105036410581477222376376664551060867691611970253133337296621503598459915078626764593252727444073167943989780498710300152568386413565344517091553574618794227874049220177865966919512803266308881314480237512537701279330842205569748536587064498152914603508763774138502999027785055631223084104680291194511234854082426378889379914920726480841603458477233018835323269251742821230465873358065317842280260362920978407834241598585801255469086966186571501208279999923300713566487004227079835046838472727287217672917378616371797004754522729780750429990975514719929068026993662149964571739198948839854620064350880123528880817173009193606459582204539721457136960902385203220161896762950086069238715894342523648925405360055868796321661392481781123221414596027042218944264175640632224097690855019630516241579424892681711166437148341722590137524560676062780235563592847601388358286730489930152457669599567476103780681856224056907180009545506293492519481662993264190956281983397658563321773170079504529625962727644884827030813085131166078019054770194726993281096350736168025701395715966145571458123672020138791535612290010708647282835337523201262815434990950377389079758043975552583265068750880178402609406525090965361543553888237239863495346382444233870473421510875488102948722074397839745382629102473510927448522802983505140340352678968012407733637346575112976317720754848393187840840256685138869380909864452082516258690476025158581746030666379225863054054134505742967485288042934328112607388538620445055125627698985478018798163147104819827879940395373199465383773478577540534107753037892313535185709233798048813624305328606325892657876732900627578761831197076972181430963069925738522215228370873984767362164063289113636458874247529633014011562836823025728651386390038750820074256688104781766840686767009238088965053112187276558383438769711024225681763722680029461318111638761243253122790514355132592756028770802864491367647792339292019407763831656503296579660404260715992132190716837287927126604763587869506763690743874508611549812593277384159388965320242744334151857954496773429581965636548502265118017968674068283240253835084399574912428392101269977158235019640778212782036802566492828208598845343145692471205297676863640225003595935017957360726405445301142981899258688754268146441954818604778062873078627245271315031165353120583547747454752087029858864735219147456610021453922513554204813123225234305723578921213798995569608002271740727014948955162827994084716088667164193361350052743321998988549269201276436141945544831246162332600143799394600287587207683403228141864877057673338405274605684056328332505546364973855199849308099511644420643096369238862259205377162288002033587324136817754805354419471053429427288410046849296258047746897775404184864609529092301349975439882660272726835249523514734552054012235911442141596486509186873662513959810658517954102390044776659693229647682312943494696436827901760715470466934975704895034850759244905246611210397158109679809042207312666065084568915106322872540367123620764907297271650581456298727153699515360669467089997905555729630368562498945365106428555215353059281169431815255892954048358782956029156576282599185437187194245889220650890714469658588254290615506946302107149696424729330451925101569311209969472728456359122717350422239810532004319042563650848594083408565443882177109408359240921372483732772816657151690980155843781152413067781703226106096529606610879303116441447438711627109670625640426716757696334479838742660874264810296654718469134427558109539426565765451650362780835407531516393869872461023576012753161945964004891633556530627130735670059612282117162815766938018762693969544553652559067403821090528418749308100297892827973969195170465159382893911575069515854352338730158279515120666875686259798771027364135821112088824464711284661231426684150010549181268722253120603386566946401062133890076922999657536142592255119218854608697340234318592344391643501103786122322594748459218049031264694935887345146018417513497762309382990438597823118610467886030014654824394194409160740163139616966064737914473979066562527836139126279543918948385570422428542119143292364026940203133287741085969359198730061296266344306420137573410246786509753129173412539388665497856040306257307847700224474404811208680519353908111002132108399876611330085787390398879927183736166262325639628607031843603134220437167137407085202477878728370018647067832238680252350177418095923139336922149045190887477432791087190273123249526982248388852064670601554475394641887917882441805395467977342982098468481712856936967504924882548988764846750338207731513099128897340443465782356807208374556061239243371727997282972468318695740856511233424434447574076006355607414153762032409629807046236531801955301411995070072143156070584534002460113834822222769090450128550135855065741212779144451021022884340277481111714697030784066820379129265702940272428061528400127800591127372068614341025847355768963673613972213314931711204757559617020724039585545213890416923443232811694951629294176965915973886452597114018197836717041944916844530312581898487962225068484950672456097689262303035350589261310204411976374454635709380757241158652805988684167452038642424729170584144145189228966828725198836842872561313020944796178728446271385865494547285284916691344823411492015937157836469807278009681815940190332755903364999023791807232168374168622693429856118687488006251753530729772263365635906336418160181670310862874065757573586853801556938166129087239983568058533786115698128344466838183647089370898761248116003332824446486527129713664522024341457638346952808314374324446124095436052712296119734389105228979301154448679702450607000351185216751965613488807420814438287277085517066732510199126377789329721428729240927166772147789123947285728088616107711330152783142706341907933493404462466181165351976584834528546710682650452993313118469455292786696151570175306060237040573764850994609346756377997787743344470610620279325028783421260536388704856137018573830988917902010246464689407803569266328130593895696339622271863728341138587710908075125048408781372541182907880063830983227557320661745172897921786229444499457566212369276553810138605181238083590144509578746591251583006981504165862696233526837512367422410444223535837528661525121336944604326067433775144124516627655902503113346186632641227895236943092931048397539765787149049778138108680637975893991389548662844405043578269493810326208261675235265114058873533459730748078725194272927410554417657287353031458163240487126358379105852573500870305338374622457353511764029014896874341252461443307102502143067121227603915146312868833000232199783692115992070015639979897061322893867444126572037026620851355107672057984790096516953057682313208153558439130176702800505608166527995708403668128131480904767655054273879881850178936785629458903680473122954934318137765245361223425129426069460963028887262859365151756606592095559787580126485640255262718135783972851357823009439916458983577208057395078869909419066047731622976684383479154219076663062829659305618255100526723569973391304589454599875660878132655571399977625372525132753953546042889265813221852467996751907874287030677529722960400888665183540531337116309310769635673768420106064444819260061451579951499683408470395985542256204148404526427335220067524878223186062890910853034751977000723446590495189406160906515417700352898015235035257532169762611262097288420494859052066755762380724678268380194886683815092596865064834023062943760387802777348508745570376376009209264693615504263045017563474885967163735172218057172565998322041585908470563367679009285752894692986712663843649074335623133094842830936500456569483675018839215527640695777952490106770661295002992704904985246765406168081628614486085816585593878965399506178796928706254949678813856714850917969385015086841598042216606739781045898003041714247586067781315885832329453913968347118054009152748291441284512473609925666714219727958613861881747901987506061187972980058640538193294398508776109742842516865844734646353939777735514120770403799055654237112760177608129519091465241650649702037820199496021305996171349667496142961636685244113559668069973167567544521174337095639807045598939441775561503385094083143945944827435485574083445813507809680042048301405511051158673860585746830249487468559974732731914779343789427606098216577784646195828184726077557825511508139235871501757646030514128499652078709012328146608701956115379258911616688628700379142207884381177362326308914253142391006321415141299038361535050295080725830862690365884768046603061885932291291772024593466726555479194627483680527270318303071770797574926297891210356175390514974524211876626322648239624704729079683271173300947062081709835506040436689140850217898091372634757436910167331308262323806520324929056028471553175471083646462298928343462771208948569971806703467455994842964886186294464859667431120683149763041297049306836871478971182295484893690431872165431304581878121765608236865841542631915408648138427548286910398321828840333448245921477130530929025022379636866947292462841418977010809486903249620405069201466141330442334278799312091830629922373576161768817656948685265144791895831481312534659241971920717928788100609194352971958121745723522958647067190959914128090164087819612532430163947067915068530420616694599650896017148620525732325108613528521902728880432349441889566175332215201037541520442309665739852694404445842969065889210356500681466631867507558486295833566340070711569158150452446704149559311575739344840986285866534911046575086643655981377022487378714793397050490614412455363885462185662932370822641112116460881394439961652179720807754685875111501094891947123089111252868219593634482725377734528393846761825098190669011001285087579568632042339794727886812310974902706818657746209366668971890978172133851635521302238149629315360709901812255546163851175101645689347948410026568676378926881904517099768945232455019471878458402643252589141052315019403050258431544196714601528147120040133015085092155103829164341879903367775187666116674926431367777529367074548305216362893716085112092347308480703535451592873214802445153863531307999276304456316118732197159342533389352863012552671761537103556913245744466784299336553356200441839037336413202955344363349841429370761324759299409476814296730211022788263417273058041630899441872930529790522261453550875007256504617187595666103362411817227614411774220318356994367721846085805083011022352535737785408798904666749726918275821882181834575609534160290549477353081983198446795140177573531917920021085796683694422373801624535655899638755286863677841604957301678467695951108861343144200180664455441874322024866639757927017016718109116855236868324313981256868670770694214335495945654199330017659319932062701173727985978629579516394569095030539217559328005807028561692880443492565238339015864946513104926226649239371917250463520383988479502568514779785829313595273475345258302346451156352494138665942008892512731565441400980082527570418171586555158657601011575081205978858195541681637040399596546831468891723259686341200878115782603018863606284380048766502198978451135650624488386018271415479086369759634697316514363346923552010872826521001181609478390942011628901518708079619878864752986222588414330735323728092244368524808662479411159730781391233747511790337830662096650927740164455534462667825835941320975364522085365656591120074615510564301340447128615999543907864341272795518685036167505931906300502497767034537819212723114091294276076860114587542907328847936578083013965077893253859839367849067365075398696119212059827868507388133671772194811961744489956216917235868434664975705018370977180580047766294679185828212449860158136460667583069221824953139607786049475365026490815257431904491676297842406860603695871946116973576846686999892023235232306495567205316144811179664072299357838599055092387286799414251547012220021306172313496883609463570447130853327253899962428077404757633041455469055124693367476416333616173719631993182880853706453823132013137613683013020484055044770142856500345158008869619011303526300930924492012144146665249485039591008894241832024506625738471792880390619423910037906417268896098566425143770560052343133643542815223096960838060104754975961383425453670637479093177141733547619436329126282756982925746973580739046524583576881399824496666524926354425046695117301552940353849112041053743875912205350396811437172677468575964455570023523079226837702756086785248824169109907143270208652358219685677160562182629413045700243476355396411544969368077915573819175114813232961905713587900364050241380444137606682776172520157106269924531992307642469003828499446320371663227271492828124616082486494528709521291482164866631317306763503848228630776704186299136282617291843896710351451917901447472029837846735132426689554298436032800131980771553750923792704060704330828658700938733462157626531766920595488815922608245187880145622420321123241337229049788622568377830199444651384806652506468200872886482158718212316043150405607181437277545114186229738513318755808778354932254283056839843719621235645807347346211078604825344161637846538095542916034820204166349619149685153371887344323019999752931969110266915262761409233407189105936589644591429384669469539874486948977264292755042687015935136972937217533248274935223531395702661420767133542691915969016697030053789775276350436526668097997033958565249381073662492955080709095437760621007745947121063215781869228080463008640425837052240485737280670612087630064495782521760649888152900014749491538329766500735318904289402211065343499391516386381144102684840321133831707477569303157477203124115938088762251753020653274540132273783566605653493174180890744587061147686500977840837357733849897750185187937920207211782727056726200637086823047680408783016305929662735989415933820922341257861579230954510531745271992388325068055107468738940836445277676645881149426685271036341934351263711176922628812536251881087184455923387166999615051388980151914276001537062652465800676541122569164426373263567464095313942363860550230285198004402892784305346455268092198520227198405522133884777679382989569917196473862861949912686388167634703544287977120771112939891072606055399950751778445366854268244182601230296441166836825389627522430395397719545469559421511892590851540531612769113315243364221487776338621565001085763740327042416479781192051477573396779312458541805117883912490721926488964191862508707960212290627402890835675298365047355261039566611202884975697027292399312725139936157129024906794644247990490974068122833063681775048607057485540607993144194762992166839966010647696072536809046861264536010078742309309572389916472886182993364360409374772852253480816473872373909597595599894097715261715151195703953030697426847069907314730684817273569844646590026270968868259264956413968916610636385620183323475588997997976845199585113647522316012711942209071002494670526082247867398844613993472195115191567393413976628302382588342978798071670115278336925575247412633683702922492228735387650694123263899555041273130832636064578611852436985006331221458949380876994497822695538397532825186242358327330001640493608936261695800586187626004568774272057283637025236937064856068116442180713098500963564009756647333431344984214069698599249777417499237895292655430372568643384672432892538537426362279751271225638486376282288592073993878105471461235955308880491373061003513253741175532799600092432307186316893942722270453066022825771133838560651370097175007364932424062964026028970085649295493967296528582403910560007946578240723415234328589807205937242144924864809874842927669416739516779497429878791006824987091709926708701064469560194631871844772642505643337964424166380762539027629084893783407938357907618550973173196540581054023744267254085424478716637347069306951973471956310321965058572926072806022674525185524710840870182696836039615549430869500111240866870984101772131427335114328735066225591705910432010588973947426662957922383861202988939813846018500940843453414866628700298239578402392020058992283454406837305096633631282037311841267591750516956775554400663931806171025421014794453176652723954060700342528272039472794044067609495020974677523005940315067868225236921609250222361767911325451254803790751578347713185338116462044470698350801201518493867775028824732584191875262252795308272173694539015272394698740735663503811100697960703196934623605377902601214297415566176970015608698730617586539313469004701484755163804446408007025999141385082672314706405520625199792589572272544699583987198488573606552649401809078586740819313100576755818981630772108583576857480309257636697350974944494222498714919454628449119426151609902658704960111209505360771054642328874556895035062222260134444864466846281134810416604473026299407562119769867633235530427163792714374666281708757630451885827807352998442830179923358462576115927737137770159075901146586929651795326820756569319678924607548698510843704910166653040531545540399511979160315489254223541465131466167306444679911910801871746982498577807892999685874922595119538736208796991857149226060145067660587762074175469403034351314943028139736724652757859107405680335071335663668725099604523987439180532291880216899610897684714422590751810071620925707345401962641890770060168831132737551424084172513531628909004130670791330555275527321880067032552573489904684665170126073648690914093008044197446781837813806537832689446892137563028817079526400452030773409195873632798709131519819471657529153635115412648861361567849920028444465282659097107100925974340719652395911354183700323792384841706825557497055957989557822595872533840802497224095422316382376205478817417899346113859336465062569787598496586231113143822296212015251028820058596013082312755938355719588330250435395150515819870898579711128972937150432873253124711591496084654637390383194450499899361852215244853511027664743795538561729484103869808507783773853643181347465296615516313153548217663467679603319474449540829165845125455712481622055490632722215370261369144356298692528332079727954544923744050207156282180174198893056636125209560598692491888015171752180034490263031340962405549467731845279003078741569458297223801656946444122774794685672253505279463316195397375456665016303878126574234799560732984167741229225947409119736585394986542207611761650164548568802527953994445771812451701916249191396383936093583475749956846741422191035538663501326834326396250524586802661289231593493353570018778877509259443268982774839599142704524484343781873952709564596082536858332158584047475652517943582913868782906666663881711544272308987801375123147685831778122809900896443042868913646562549123958771108311836767116496892280197230372650374036393782624956683260516040722539323595072207939711993927327260610079409228780500975103776816567339527719486343849043070589882985051376280626981371670810396773724996354828203993328927902741844256352529106726745013733311137005413103408825717508183460381616949804985508668423918718037355531616927156359923531007732342569431737452501146074626059477711587070687762337508798306904967262206331444220707118450485448013608991287606873510885268577594460333192744135609021648502720993760706885749712996766626023974238558711420342146972863549860508429341247957837532927742315845044823797864186509598599956351519859853072363006751370775143883748431763909156381524150406170391132403443858786700880300827926058496708122760879871824002008311968710364680472584089380255832728731796249581907012072069656603721659715048303109750015661784722807769413258288887207873035451226913435168253782873292465587273409077186556027845378823962440695156715810539093897059510850042313804870083963080009015860736110880814885287382893314459390012963846673361637843109450458659900946004824618194877011986761931771064154787968751863106008954786958173449773988183181306118353820257829259510597500380563960550908884827112358494347330788547427417212041405379320862709085082374836750131058682862887061579360740133583682865354381445483116023457323566686147630914818257015878432237848873616172325105852607859734537528108356482680794610179426805086005154243320345432161598628396086997430362948256313045845678918812739537044774741283601388739559416403453586378214387805849486028588875426173548516771148239373330873458551163522885626019969462543610068558762116690222003114726559145551542367478310127948176772843306424211069831790584491638009660517911519028607334517886131478332315052914711189346484540350679316163458448503212899743691245791694383107776183883734396961281053641979567077476756791317415699324286358240062676388036177773184744474482576365785097483480833689811776734010464286758771561135001086999556784892410899144589833923807917628085629942477367736646894332259555971234750036693375504009748751228905749984703176468384571696851402241712212928932245345804066846589139789808284936624373876573122952009522178783031659448202983617119156869113271174679412549861364788163295272076094954060080610938394187438446646660255045839400707541264986597756215432531343184348717454887009381223938631937911555551775800880338499590061089921416935835127767599757358186539819381728275299744539656105587898994328308625686570187502521340456403179485081962392243617081741611958789289536283893097261391562933925731714136586316327450554697516403372582555046158601647963887457755032178104516666944016133470634536295294534198755154058413951548691790455239689436546130976189349396791587554631578599375074820060586137018411169931352602213618463747876519590083584805002733518165018311219234019820260752254276989032020254525195276345275370947219421651505685201059089270637814795600417306529561208197825387788197952246497307722232930834664463413102920789144258358953671366396390487829389875848702812927256889722566038650690580656258277155165817951919344997282097450037424267971253500485428979024051443618969430097692055593333115447548082489489209767126115643797656987920582040860288510781556335252752828211430791442610617992454790435087545297768307795799316668476886819256634271277879494027938993529206627860853947734357534298345694040163385635575774452128102445917802052732142329321839842166184563596575355012325182218585225613924101943935652917709789570403438122088216485984222019929132901134493024712536962514858295414573706624432572820007391830682833340526564663332301995215895207685937977576861169376488820707943699725496087684915965725559984506199893081517205645573604189614318321441884076257770981298416291654918303063020530931146067150119044508010482261666300414734808804556690793020766826761530225075923972644144387064539742537728014063676472820799464211584107855231693776827299038489932138509715203304008588554226923231473138581962919756780590575069963449773749698318595537580056860427187725497357767506888704603517175600554855724517088988074780220378575220233639333932653913437177594961671518204855457240834496836313359808452368031578782802953675784831828942148720936723638124312833769662165472829408767644706009528026924502056967131560530550707383686958619543186658504547705255474869044658521727351930842926520933053090613420232934076330990472269765462462672922887006174067307736423046746429875020466499668040700227853659965039965035414777914743484304280078543430655043330125856307063292037197366857317663931829496894950796942186551562388155507013985564109333572532458547705244892959982310472449694050180066400903051533102999938061846269625262735353141044833407229680001405792158056282233447133670063274172273033231264800149508631319827260419049494372586156744352260766211009443837649112285619489559492194265244675934409622406454421987330692704418654050245636270937409128694653364415540842563268504711067852752262008920433703161007555189509641078316001765376493181420252997346438257333011300918191109530964860197028592483959702130149641115500203256851539498833584789915157909238428831690106314502559606938706976683309104848081700784199223839819460348016734992043370087542310527451181829270344992895604986010196514274210337207752116728953785224484449760530195333973330794842081149732188847538010506568906925545938618764616141366131354531719963716573428162432360308541730870782312998613888270229040491351344272696188384458471812229149064729579010398838599849537773364997782390205794670389996003276512240158680560505998716779816873788619935506554077822200779876678936367917989673179935306457850705800192171119277420887705454110290673451562454906478081802321029070102880709832810351876772390966338815422849261342497486251557576883599460010875722531240897736934560184473468483896914153703828468606002891439353688747477708339477912515235362514920646431942486354032226964384345640045307515621157932978346005426502557064588283008265967227521169413605635766502785947979790624210491369091679471794886030519673243655021044720266129230579105117517597698820866722008119633228881781722629444050066748362237608154272960047760548518419524515691968416582592738795123504795837045602798606004277609017344299570152767552503778761822856336450477714220867125406475043282996964335459040833717072829250295200770254936307679957394010172649865492109846243593255343965164542349212765771890591242468898998566292163417614460597220052722344904442130719723151445125327475710943955276443300693761375134541870951368787437813969490703045402990616813739117713171616268113634675590812205357793354621585155476198927697396173041760032235794353621188114658608373350438018276749702580160266730801946562282712332707308009762656252730834420075406439997278659025831787219596701999134114460127729695495083082143767638710672601661559676306849173989731356899455267884699036355200356594325012526149636488570728191394277099094635805297266323798501614477375089672056811800315028247361742801125041655970416268972246603256885291064693048501448556977100860847991308750469041621880746120940688355122242095501710510479750322316508264053386783932757663381902613690109292054068047807494892354419273764102008339500619815982557534241194471745664413845299992390211283411160662064230101832587758487556036157614745911146254541281656936852055380708708088444210247372655666058795482782032289017456747660211374351771870098694302277510495209523852460440144625201678547624563061097037497826476952075860538513423657247974687778807825556995136302883199472193122793633629482554706381952783184977383379236393233900028466655461760389956896045812063385160804471916802903980090419409833679567748298869908818452852904434170146918729307651586722368113615609716761455857702577767575962324142146035071821373918930659628500616648200016995768420244031487789112570894509831359945141170014957328635264654185470950874092116374365723292524102531484756290779447400538784558381754942505838445975437174597185513136352911297434468973510520334958827907772441208662321034490024463513091647234362555096310965614930529114796632824084359099126146529346829856743944365695687187351925533157800711768292840892832358812858960722843827429590975174265747101569180134130980900941069917417303837851664152678231263243963667898455073911593897449529657619337780987708673887281771738959079746107930605203454373489082288224658572052255858597504358146265259800270140909410464979252458406797174980871312199412351402099220587937535129592023131818757138908110295845397269556093996358651224316909632333354918911055237335701011617567852712993265199547553558583615496802583671060039314127638354605517793321416615206731825933912567082930413002502133194542409241476834132081037309410630581131490616719531133554211767676176165287253202309342924785395231529569698099028390882428597815018296047548091514389263869852116650097921720380183217637402966764974851199847896398402542930871129978311123688611431994853834200029652640844061599401914069700310945321573293556894340595551557415182565475796819240254719424941818715104538014900279493316744595672067859089243677439579081406191362466987008256076979049514114815274331394461784160210822684717187377024978409501085838334562839155981381170846382762011132366004484664405451590371954828662199416192208908200717375191431045344291169095135488909919981820889577661197380154959027211905233904537219561045267125590072683974127690464213547987356191264470432762060257368706513739054099079993629447764197216076475955084167324903470777677182473359345128486550677545141447596797724824280752943198807935729146439147767236428085684128616816472088445598993246397320546775894854283216586546365852093626344365981866888054020527205718317076102973709981398861196221059204135419709985360029076520840742378862612813859751961618972958088464401373305660307013209726970296589231721836298641173721982516256447329856471095387952700880515599156287480224087019072391050895199147276923536329349010976093852038606760729807555013130293685997308894808199112433425563135659136825760452190819293629404952337549953484158102809695046200628310302980995470536128824246509282462949103232179932273985607321287001695148393568242858124698390771672743075977284701426742467761958629576832435895101019549899492188388208720018170031368563819498771756578643632281382553858792744975681149986282541240631019609731049262634020391831260213848515097152893484928403601637315254150323607557648589805042169887070605763064762288952981439589127481288361971290901650060474995412125947088266124054295702319697798584734720241134695535410348793463227479736234131407028055732406379333006397483205320285031606783693472361644160347348998892833883633729640017998615964979279814013489968860773595696626243865242709624090591726148710498828918897652616857476269245786393485863693703225864634266107301106869014276159788325561849653299789066819800988258810316684766009101096839378973358073740972463687318780830683936144732897474218842858540084104367394803962490396505124228045335892824019160873806262445598982719880602562641241295486410454045141730750245255984001520436951411339865586806038917812627697211072541448744990107872726417564449138508251457906855958993316309699355409649854335338021297243356587346169746805619146043721453806600653092825602330867196854282280455183994921429078019270427385259571974538832691049262702201388157620083521350407504165111798145943158994505408699833731015853941413520377624393412943053703968247407842596410140494814656898948685039086341734510312378574434570503509577913898318368307538358381763384308550252173841484779457677340365943569232428806171932663948046686243562656906183176785261306913156461007865548658206271613849894752020995688896728985101750545187227212626967613919172802547753200457091854110650709695571906014170649619474262921379392911298762984237504780567036690741064146465177619511125337312707827733151408431752380852662624772412786077462978175146269569555784077730467498573961069615890473397134925532905176336405573632336357047540753915573347080558761425283412226568764686539639775867278381679342651199483166254969612192383500632979724259049503570204755244928267264287045217312931222319186242674474924845744074503500318186542064195288769581769403049241893695501160037982371343935572255995394864119024239261445804124030316166892086205480277895757408487494072843483180159670740461086033080743926254439159860278790572155686276796792890506982132591461558671926836168539800439173119477485182091823397957628153058080921412928793691215761534698708673249406387471117062544554944493155817508918732734838868998417054908298352301070628641194380422993732945685030868961607953646890144325563756741039764453000291451678592249457536832114351409706419800703284470650525558569279467432313107207275644704129827530495041816103097326917982752301161167294875694705903068587515145949680916915338157567403464536502883423328764350534183559008457730909625455371277992516566053329972149691217823064434046738043519057053699268135949450796543541924060102176064148681950891860243803744134875523427506035369108057775971736533613958595396514714843057576944931065810418293096257555580956883978839640318663071824586886865965904505113054832907246915990255174261954289940022062813009319875331016424939617421559233004761597104329124313010519209737916787770244261347717874710341317381934059436645174053874765112184186704762399597997151301752949425809380647187487596109464662411141115510378806619565719066693313165658179503873504176155874447940555905380267856154813093316605105312922115624290556734940663856503849876426895297273827723431775109282963142882474840324185544971377482234838316340312951872094455685118270511630015645570819033669110325339597552014803346008450831307693467339971423339796648388398539071639133405583298289135530247410690148604305838301168650427429811975178769407144452786034093106174595948669362124429739516570331174194485320955685511715234487416337445826031960324003910036862552100479798686912194519015526707231549752097823216692444954833707528704349734128325052891239440378240236045946134778881718614747085629266896472788263315866666112613381853470627780145439515997038839501654675813527894350046098920646676520952691151470874245813354293502385240625477872302689383342839996029717880053156226829570005777076750494084285346082632988333141823939351961038058262572906418960331960363834535045180766103240524236435582211336466102532142466041066092550450444666590943576283541525025366696084983374804324447713752109990673988271270465925803507114451819379725924649033850911677520304453241160896019383615456527516931002406915816400253231622467554700674292871290876853023060555810720048951686599251138480938514168870936777376061401219747978654800215670531090767148406106238938049562968467622828201051443095420664212556586816238769394477449589606708509032209958426368439221453839531317931852526362050480924914801712156059564637089522152867646130871289564759542645203102811790378046342906416720305255706050925247408868460922913617554927521005412983592702160122143429891698859459348833959132956179757778050845750833442617869236173378670796887757516463521633115622710372397690069236395926010951097352277199313662991646673194322467424823856745239589600261347211840817160901112885017659546829280483049378664120850537808036727788785490888782206352568459915880146712322198371276424374652310209706096746723632968082063896725459798266067538669723213327317809812604382882201660410792103380813369370972095327466354387872995938604743618984396466438098623935544045713068264710827032198520703524544699809842397685279984317471756930784901611621018571987860354119503720521416878304818757876349931187299309243557365656317462262938294440490845518531272087650551002428980473264938162155615938127731057898432516412023353118950878127893702496126750177766896006391450281777003585964335337805749166802140963725080618226480232844735870645697805133185457582220451024530070022214163709443862958318601555559414032262476100112941615634549758101664894050134875356272315802589829642503575179072347410182296613846467761348069212532658879310147324322386169641939568047129371926791049891114829703369748213911450620821311450537521358992789745734793752399158573716062111463489910393458369622811000661699040507187707712870713965789198893021287237341801827890474086915340595380544955000243462916254733038469543308643521861549301243132997063147203250185924700514828718456935162715269137963040374605176097417192285515399444773376919623926760872755056240583626793877187198122560202878648431640484244356591322277349723169562658164852609626125310751392186708512578109833776988412121871202313183597969006105168855955288515210460204414519587274119416663169371541674043950656314261227807677618646315642809736783908503389884490441689603805036715801393737715573767913455116541419579538805799658148255938971567108317399964353936152387089582548757693335182441363392226976201202392394987059323202084519949421194295227691459700774716563456480184439106053325172376687303318794214119388369602863083456967857814104544450339878440742894615487146864306634150147759101668753583678287364252883942030337669323308264860417886830798301566782392042021607162048139739014846100035699360378880650595190300634312653357343042487932361823756142719905708739257360448959005121297909935009257778412061435257275359015698474041704639496282476439288608263852767805106852772813355275191702518348123963447788164817606709631477484573902225718234044843628170646896132190066474602736510030660071302848666515553510227162087097837424394101784602707003109588218973443382505513515044009664745464665834388425866464234762390736272332634835873752533521810866839223813567873108893796443355023550530176247282513838621589554944068752224021213206381174100741786412503096987735564106283125691241142912403274621329165421490654805211383020961167251643448915231580452811742106832297106688812045074108935799075913494567599973216690628139141191278020290938581293638859448989764484141667887634836895836123516829096256511344212704981639912310287686844672969662778699131979938727099600262827600506495568680297842415819031716553212794857093812293647044476309903097792105918101869153948588163934266674232152677531979650333047612551928214864516553878925066470152422351998208976094943633684793569986639709555830887921527932360741039864424922246936477574061277486429470329756286876075407422564243913219881416193907286454047714314000403168654416481166137378492138269966814561431787308721043313636079721543001793593857582487230433834780431697235088325100893990898608348193286982250071361343811131364609372283843628310100779407592322668459950879580016981790887168953015514939908129890426603520779395099746533382817881870103011375773105339166582976042039466096972962062718118605136455133803437302804797594312537228114254993915394916960184190041219619577316912173973194955953238989622828889509629053977738988063730000985811730724532524450932897009067636988955785517713030162843140134263051685575770775678558177908487837981769715582963982069162945786982926577113380835622373767592606234074105385379420680338999951215319052667405702780204775335822057229843667777856498676620760611911085197235876477376588646730084343917780579628323398047844922650768118361395278696054677697628762876305738339049217143885327761567615713565357263389630033302958631282294467944726459734166942018245777627191456371340140730526137000622925852221630379267942869593451612352869249302512195049645372228932147794790936310682473460741793354123374012183646196942334120654498941247309521529636512421791302699472999188185299591200737146160835144321314890587916456186092357900225557642859177607951120078004344643772963684688325035520936425209600461434339101724197396370882164020669687452809366549243437563181648922072661831119198391206986990116015571317798325669145069047351607828238103324049513398817677332139367989850440701921627789249296024237311589339588790152683383750070632103937841779035702437365942872568836792238455159810656365193125893712653767177639041632816667388041505462017805770208512926150727271486700744249793308619605534297795760939423798240482307849365335900491477252167638005471137267461848942545029919852157760213902187575843968571087774330669053677918008982701877973233629177017463060562413544449634440209112161759680222595295112277672371542211685466947066233704705116300400762539698802414309163749134513658661732265816946146712471340678465388810587088082521013843881765391339458648046428088732256117032732791889572937930521884428147496747404532744012581494572627821231914387506454072590504060665869750176564209247595568815848375214693497730089537737507538021449742755947127320444536349701135819857879509706077279359286024653302236985127037752444004682886240682735177210320738366377756476192509943834644472964519763089668969819908253631106330330520106745834984336301352063716381954940878034683723050284864578204332935291842373250595575848474713481276480254275761799016319697793569264304314074179012545010579669622998481938757538350413513098667308202019545949739647324634491813649915112211553301046115491495498475044229598293502991082847277247502513620476577874726670040332556957619333988663720713415597162350023271615326064517284835809056050188644954195381768065993530747428652809395863851502786461550686616781004100554328345105999562172289637641047852486398100277577606982570969214469809336115940524480291747718260195481049339332431297652664946718545347224647080170798825741164779148158638020011743388894731123649471290629128073552704801565081286801552292028815639650420598556840897545511190285272256589404911978163887732081641784679217482582189202170922838148461693891751648150897843272661518610259866233976333697788896573137904801344017979804811062450283902163584156421148430657776852465580196349301158276119799542051057398129965513587515086262827145653839433063738636492331605028591752399592619918162952694363400290598438184386022273078513259353352318761899047664823805753436967082912698666058403681896532752476525807822573901375659799644217434259451369818430205057029206480166149124298346564334350455559141779981391795183458614092325570590544678187842932324331866160012659510132070558225081247672532369885927025705335129527596345669675275589390269997521451726035372752578087839334704749443872726811304087300308302373656354837561921131479371083672055305126356417929872015592645592932210113264540189122983038943961283616301788468592697706113981431174047827394490267876288391288867926235196954598973672429721603551373866349305810329898461512715412054347059105333349396051374398813164516891083745741835263684335768852252247942904199206294436070704954323982608920180188443074094233039668189893951410896781707131446918574925687417709693751990755478089820464066666227617156800035492223675402370896017631505933535753892254384595155034518818981682862753566518502139225088304384950234671540666865796180984195104369129176645623418793933646829977056730337327959284626512184896612481992595683624655514453066774255310689222849250535659883634668715100359810874423423551280869304064028207275190133303302977784222113230417054406201767508350355081690260601013555318940335127647296269447730457934137132765640577763490631716840589005962821224103512201750755537249564670884869874699780206269809814737733775837728704941706245736951942259435873926361752193577635447930030720857904411770365408985016028058256890091993472808497287186143976622106103484929621165521868401250837465330535669660999902294089059612394346047264614541619089894658261093423027857765380451354597847868817007075853362545187971144338424433171647045894237592018219442858408586406147158646167832500041757046707130296956963086476811256569456445063879566188115937647005383102566600672557041701075853066357250884896008862251584024192756762601191864775614119421691085191553098056409966859902330705256740238203004345154927744642731300025999559062580408803298198711896133204621968451380596729919823953367156704197402809723779075419375026010582495615685163800524412137761590093396342246151416090606645062672460145095163236324881448555616187267438072999465092677121254588539275849819589194397484353429352603961572174437372176661744561099129297557748613052083601972730061724977272611098725480613965732924372934789174239429541471676105236038018627086370182167197601438393576072856907507819938616762435826621033908103135381606212447501961594964166224808830980671518414905259035912555767148127144112027995459681187524566784344382898290872661219611760029927067412289844674207479593193041538982735375602345361109590499459869553019213611664072659605906270794457649950886399067358001639373540513480236287176276737121633757398253619031991781976469653150715124004302689483069403095338642687754455174304860387955506673730386166137631487245689494015531598441754449736591976967535354195553494400603081162032154422236869634326615007768650579213518230693622833106935193819338903098522398361795261973613536710560348225075581411303279600388679115772197993447917678369287516491250664212499235525661509418585270580173288301510847060160796509173226252470062260041243459541238406587403396489481336104747277724197978403471399420603724282465686318552244612003717697856572555510224285196187538201235271920622308699438559927918309492246277331137255894195549174294185867005364255887038121107107103026921154132819081437939916629414369723668858562691427378607816943725063686541473616144012897405648530140531098773179378718279837239185053504597674531205199423879401565819820686853891830669827958536542027224526078455480137659110560460355414464338998843331024489462989728270892662907651614269456373650833194980573148546793929689909591144016281144609560605156631795894414656726142582381363163751310786772796039788656808949022830167717181976669085076871680848411179067387715664314075967535606862231559946542871641196591901167076442590195546534931593444776552731556524554071853923262785790117751518821747078161226054626198955719122541701124090791705151531518141757416340424181653519249726403030574182398179764308670745977027385337274362608389413786651518337661378531905454716223454514297507682283915259154883027916467944608019639241327805296356603813127151310560809552891668004087247472263382715369596895892264384838922863605888282621252276454339653372931725548100726915408503330217101207922057763617767603349065402175754914183737364031380868753475732316287060312079686972003976816901663907915726002112670707908187874182059026243370927170571731178086618946681478172914324668271403154387540404090484243353072713957232307680872174148251338339426413450175134812602664001919995589961075823695004108390361465681212095684080774442999441346462009420362601635636992325332315638788736700615791547633213247694863252351777959166975504020895886909882443008764283491807489780406188196305545918546839952880374326153439377458244064453700434903829052771616751006063606277362587799284627702851003026089582212395700588424645551778142274298769489424603567789386698341884896889514320255431672777511439121107061924823494632180505494191999429983810121868107196477211659160843025453311990245841054209828138841223733031838613432242321082824790082405428295195522949315926412119106444940947762395365873829098202494484113041453982825341241725641196869071369546799547021111562379016627259756060482161183658418849795859090976859212628911627194852894868834091121438718193067798346950301615280107820912872455170998137882372758942026471752105506450136230928695977451236509395656106889545018310567013777603897889179111019690786583455916548125084801185471644939322642229505969427355137946313728056271879417239557340056840027158116319155122852278473880356825677898180638257996533126311395789196113399184217699696824736493247868531186897742273224693175609085806617830499486411314324664220158365121430613888444833020668238394773453709260739400503651324408279551442965462843765533068126972635459031100260829450645908553234990696688374773228367512030910250477408697939310129418110285834559614414559950765834552718393253279643409117315379206385148877909065871642132230923758772295161106480744533936673256976637938329553694008930855176722272764629731410471223284283864102353476529463350034754834979142781565099553775563963258746302951445583982946274415653211088554575198631592477311776581625295908121974785880094726706904417988888216771916293668614837362261595603570561687180064092188855306847386167879775257607146623146059181438426865376516078418824611135918789490804850441969717154991266309554642914929142306466603925904122583839340006441743969713795652664047228267329697030672218137038733270481442816259861625172151722322644841168578337781822311652858050424702485351993969404409098305073031559475558714273450879720346676700615053610981509395486369379858596364991992852913810785263756588156925697841160953122398775712012832363021710999520686693745859261319650583293523702940353489065964802316457657479509499582205743330176886495142133526341371366882698893040564877721354983528164719500635418719287375360472882016893445822816329105967164953994008750510186701982337837032097495138890086827737209655497029226882054305742756287111655301843966463383617511412719933532148685238055172886981796649506870928303376310563173382736318822721237591506110270052317063414696123862697782226899479745312426176405307438288812968187647480656623492712838488676585356723735130581046956598525233320340869720938870145303650197609780690868122594075714535419085288893422201070401605579550662539651029303588257107836517120941722584615346922545961854599001285709694755882735065234504564182817946373284584622204380911391819926268026120169796542982389593477847624103624746969122974028785422401800500484890839567573441942545301642293492478526917300761824495539607593556401215755191369340447493350495701812884743002277439363219829903193702126815213680088610763489347033217442597015208326300845743043154669883117525066892716861244779434258605061425140173611427604331181534319093601837197018134359244915227993611622769607630934543322553353337162183649653925557730238325173856664112233342455382358000765893948046250087113024574881672298484624731173445482296532129834545131319661832962075589449620769564123901173636597335011973013647358116015669369568092176689652217670391776307264767594021579726501198115480532357214549933750114876312865515053251563334101106463294041116921619865895800615087834933275952324529409078422124408242451289593366300249890533718342355829497883614344083936997814465757846530475795591606735681749149776114381013490352089439770291590806812380202776036200266432666515874315683965128870591228711422344371673624086071294757458250239690518573226471054002973969042373886959301401071804548089328633365918132176739675141377811918125160457652385941930846580742636418504055065087964008652406679537954435450757120918968661364404884269505106468826359303107881589159170010536497367424071431910146860570411667809526712179061972992802091290005017343397395962672531442478386525360101332195630348750513392368473869594973892117329907861158605977405656213155753243482427904905586341162130237722600526305369752079306459192920215843505747704873037008049768521167074769004513384125575470220346757324699968386245563200226678069444908302695108464939835641023774883330996361118557035881254460732979563987407221997268834012150209130820546461346203280228409410012619489598521796290341998099192874659335218113561055390305293738429440741420597269439633014377448806709533472025539394810090156656815956589854494436512258080982657648504906239205235016281683556790830737622231002092597745704496834953183267483931936883461655468796566420851665732604805591881277369731611596484785652131379315756580762011590987722778975021659569301497352474230506549241223413261258086309985448354925253297417939717741340119185150929996661269034359550835072305492605699079150221958197975599575727409240529202480039912096465055354650967910717261884663546334066520212602628808063505297192190830175522177422260067151480908203905595882871359834217225015940684931649016145315334105020614632101401139361932622107905420978562428968193944410461490038651714935470381830708789474828916754160258315531012145902105259390485954324645633447930951987415197289763333664669588882276325144768998285326791280582498944983666192162899057931489152075269820872650275934786279630619332849380445174798294837700590022378978487777133753174998508634790548691383308995981322259092442516389890997047150354444315460809020850694356146215465238993883143896025696061165498881127178627559686290392829341752891305638492051673657653117567985178277560553915511409542875479395866761487141928412601371765248288052752974650843282381986197577335091650809815995566836989903804049612973747710627273816317645278882268329573079516455489393802400852661839509724178886633484808181056734513702961716752443402350998617839535516151843561024851835493334008730826767181371025157657508859009355562134252569361027155594358664268203123836568979234549637777111815172230280725280702473461620745435678098081959194055864649010759049931931638615660275021055583387688105248889240715408713873827086195591528205233306413907132569604681165056409762887668994840352790936887323921797204040105032989161919192969208071888432765408819819201956696448110458806380960633471029631588599362335126812164020734433416090034533229799840850000972378187715418567525893914679620522307256668025667285823791538524877303521964192129727637895662363113965959799277968479174612684269888629864462445857176732423547920752036782992105425354524605135649090613112362861725009482991053119302153282903999780749287227829079496879722243478540792410501351845602330986456122100552214483475017889846559090525099488173254631239460123076568225951740463426290971886938234230295421376434751146653701355817153895485646891796397586832698462494546441129418785231119205038131181488611773980350006718640835734097456805029718963465817331060930751592728311187045160772653215062756654029830692012833603823554952767383575851345716638416350677784885581076621902843898082234960206604945101743933870319840084948545133479356400689722639652553819140997296676235839322195506410910209103425941140357690239868817990643625710483149290046890468771676316582612934410228397785985596666680179908694955733577653462167789225909880081030367862401431172312096044634350034990833187890055822551660837954327514203950837964337231964477973179450940149823361391727800240197465482314161313786351495914678148128452585377661201285550116334702835260114819318219423631640229637625251818776466341269084190237878562158216238100281097938069485466187728757441118869560661650002230824952419226758482160986742252337444561331963911024636896902656566446699920531284301169489597987280765452522169779252519498919770595229272537142203085075687110018713968583502391632292618793852004274325720200262170989618712122480050080287263152079110873217581532993716400646447540556550632492913258803967001237719110638719871882104116106926560251150273645223257640665708760346355568460355956296152267241217738221209567662761259245047159165513582566117504493930175974675257481641278275000087937535656671575434100792896036088967023226619663366005397769490795149309719062451407213422783848851170041906482679460624528165586111631698472250145206976669740318260713179377513657339011986306565757851281074947107155654352133590461332848014049455378851886306615225635765533938752235038140788374602703525855902436317793989348272294834137986808439487075262776080430329442712229911645726617692015933493865420764201332873572185676330528195912897498805486116806017537794775446972258781924610211163689777498351043704716234643348628198763147363057702143247832381500908078062421465112181358133868731414764776703604543411655804733877126702139489164546620581597014641161570022133867368196729378982929829104348040394032502292399346691763380746164156157350929459052649138808377352983193159393531550296035520976535020126287125070882238974374874467380599786162908051253649692592138590404438861929785239141291880816142192993668815895223942058448862075570021749713839632900065743840357838062292708915909229644391587168366357337823837298594873031977588333103958803070722528129485816660241681405663206392593916860843790040314812811464467600066458030817574543665213273679284824153255178118411787604628656984477419150929151649809209911128800462434489883406183841432532895374461878248579588357328774610035227238060721741837297860302417901224367512730699483496090516366989796596295216663440555927002365478006738591820428779799134047190881309639447323149053612494687698737635096863639794031774839029945632492245380922225072001530455664182650977073567569875489383050628080758742340821268276759273261629712476825384722599429616407675982219581023852206562316705889101145250587474259174671068140964147773876145272784342735167089878864914155275915578311209653164447800757056156104256329643174177666427865034017730248042259869368282599129858123687512905246363386696769661809447539757943172858889591228226544260412508867231130535528801151318346869569403082778735707913275289047141193531794227507658774051742310824025615662903475503984195909521444862853819584436375322352376877332045162075000820818101508935687183826867251941149549654140350307925705919248976576078256800145734840687907130045123315355543459339792551377190455923589839945804356730615549186123959421910248649666051184775964364554812217322710626847078576551143989458174870303179968507923945897718172521940460330456530600383881452123158528224397750614235481957099410476855116603872978109480215280142644734424015032197986462078162245853369717624497117256145382683021189749332069526974285389526176991575477681755901734735043716367686193864774949342334374945911960108691818714471945763523123520697082781606270419308380558882158350225776621218980128699844316601225133151349128252898026494436592549137190389771697858350218381649174588477061567821358174445231058827300240211862864640088324116644124683117956318722418038566554676453106907410532564962460608454475879546479885598304165641546781986504760407460480704422177770398583113249274984847367695263139555171624826470438989075934173712949644491332238128472717442841186848775341003585493763870575125805140615167825560705564902979775181167916395205845992218007824697255528081846121961045540643633662140695703944888790109656790451704991790939796984289245710900454076604399017891449979677475656819935315893181282009832511366350030176920845113337890050391723812292887413917523987616146783655018735332233339196236795498065372209822259954672505184482845888442526774420741031511320422314073983765739221209619294622938848855265793784697178731696672542949086499026826549926747554184531225362279057119593665390312395386179556238298309152929481615384624130807282896869072111893451998380509759806410661856058041451551796123821186411083528139830072922191500534978364839979531983771550853238706685209505354445936080511718194902432533133395619311557829528316684061748203632153327530900510199514403523299029737185371401049011523493841141781348141690368599118862600419695971198764910247165006273059356253463366982478565403583653995599331187829933845681957952248511465079273787081185780342152920930398373763197133601971303931640360781009427245911738860124939801230097940245841489457364975787611727380412373930034815075342339952887439121530548486965633955200575383816288273981124311008992468540605073040355503565570859722463284623193177314582648315917192049496769482983702953927723774879238797511004310471643442996356527408248408345905975073726064598420691559398076604019930948690852597186328317404514330395725503499947532677317230665382186012681037720409595446579539810794429070698792094977213060569700257918059197273804829437639580154099810523888984223229435571498401026196732531245772522198180120911795411243079932268671581849687703940821207019314666153944147531464570575054140103633608307018677407725922513174039278635837482856208021831108674122489890248096003461141629050705298139662744970270712986390883750226229365936636699532083031406548517751892821298184840757906320002499755151085981379682612524370234967663617163467463457046657704589450219824488712048286617008117998283423006643289193076245982175318033905515669771780906586363389071885362445962389170082170143289220652898154978172549689277516830840534746966262399120893367244210252846619169929188424229819271748490713739787240435627228481503498146081624668128875195010754941371037884362494753716264675034090037070495131691789421008214602125067127722328363737620708742828060858936305705438034588501833494916281909645689311400129492905323982961816672064557411715101907868154127663423597160009926044148488778411736491923431210179562997938954741942427665671366352459190432069481594935949027786463757499525871384583588960336710662380691369155653083853119992710073812011369149502599565729301608674383713971468443482401495183531074466424294422234572216442928947503869203839410920717329106587236475765291743035055234579670538061974432220542211194619536741453538819957203731848251735926952729661382401574579529176715676319515059801044735930555128010084320249831926096092931103452965723136450108067309447948903431371054495058712393899850220062897753736935428214230875918796652192186013269879355623960724089687834928460299853655284378493162238009520266960119486172836366351038210412166318097265935360710332497050463736835183632673489332608354905063858971550196214798499041882408909588089829043865163932574190532912999901704168334619763755701815759796449796157823543674154294506659370702688078414018277373604954805196223000730521949641675534931578266100796020283482680805352918028816856009010756034317380509736354473168040643053371287766902768846871191109121486905854279065004802444513180618645912450384089980949453759334276513276982635180216419041689159787353319837352956138711182682090263766799630844322852195570740864023657343709377522571675351279784275839295579533414449613090841817124628945396659693484982433207095680561352244788679769725909944200410482223465422101135462853175272472551943332116719415504858535105521176870035814810454803135553298797621823042437101110571554162767826504807648204769379242129666971670886291353265700896828866920731859439345824157726730487908767857815865717253560724717568199217638672833123748636075605703928946944745251449872177346031322447981025757786486819839547634115969991064831748610583473309336582237914315658057446462531633846207046503425500230960227949746067240229789656997982714242462138638288401471756820222683026762917648986839026936714172468701715415357100388730071766084123805939263293093822994461117600794484687795234557224494312934144854172265808918391333548616952946203436424681359984564567712261171710611584024245136450797700268064427256722199881879741993908916067098872061216009932542194661496178673456692254172153209981893067216837572834422988174410606101464952709670406219200270021295442148419926255562951518303345566074163213905673927683251505262230197834076810127330393743286986562386217081567045054718710694308286389938853609277446934132937799399350274291019692761997555468740492701523468428099187815483585413084407368404937348273643059346759860683622884972633463109641468694718677715507827147649389523027736796147730355610406807450700198683878257981908997704980924998560102408969195735238075019912626749579651182416139961424420358593925010344928841945554770096473050122263352724665732937828106675633815288006244698384137202566984702884474319678843068463544350852255397592594026316702889958721094192388575761415525410212224211470320632014508480077097829102145390527204213372462773760656205870850950671099190962131739015039751113803225602716352663914763714686415982810784891821026216380084582264282778730308838502378191539479333062526306059520865011894550453862947962115727748892902336316824440086023512661287458318705327901830518304191533575484164984485685200616372926303504632769195861836126132522930920655202205935908002896742484282475006787662519377281437837189574919263331409280330074092604317208053480998182741595707795665775420460636925172908641155194677025569472342825714567830267781730594509636878457182875141220329218422265282745127408585889665958225759360226961060895205195888902307488044906765691979275174484496091207479447480226812325259344457096320103571455579217921511263678353173761224151439504093608491772963281118407351417341503497126570587897116103795618722546595280594156848764255291398818598264788230464236417824981097233233151309241547560423890500432596368996514276239751216256373369007758275384066091707539661210934342563884079019384112688296020508748109520095339415465477699658211769950743432961184178758777347470340218708665331959295346225799881437132635789517890966442426636640181493131922716390747852839212570553792291404104911420025166104172127959938986169127152252511650604091671767285277962349397981375521414870701123282997768114672519391196118412707844592912498144791187236662317304739763543425148958347428246141581078894859334923158387337950792250512658913004442663879765533277644381233267043909053789641093619159610631430953183232322231671755107983320114391660938887628418280904461098346361585894113108487578336911717231563322285344704383253080803729905851918900397942865772920677732274656825400160768129267591895623276438829699455614463519303774212790222162985529655293349984668350058234771589067165837789411800212261121592310953262672311926698398176813912618688001184471706803338711424360961722019324769072287930313709398222543615636728211557650147336178116320396241815031153997461826115600002301948184552185822637798003830241213442798584495555787218798443525487462710153489398680484563292074005319587078792848695787932033623362259477281335558917783009678134329860512151646871137637092426555534814203278794700771776897257270069212526670281642725944927184008155763983982845698209409670751579214024111218762445589287155659759370210774283036229606826903630753303788273266439760230458952906718204157616078510081045282033456929663649554466032594009501775706077235890939298711934695321339571519619779157619124498131868939271789682558687354035486537427664160541968451859458768909624652547879466594052462993572590760649022022657993696950608580184239924193562926288730837077225704542708494733991675823587089369000110835735097749029012201589795444802399908371026706567579406640715532302772713150286410220505815459001622136471752183329827328874128649375305565870395131578661082818630795133736760077322105849738184547773582418546457755513413474728775707738954218719528392568233704526591455946154222655934474329615774940661275820057128232084508830185744779103390806236513218157681297558640936191191686128699124214105597099641302308781454337818893085978107198936152355401847644915048290041332289925640319453242879584742538631746838380961565306507513521228419637168708234773564764340812802733443899606623690041597420163572384409207998713790879812821329199207709130000841798773115801072748358170653472355023450840047496414801852932520666131439218323772460983828354454963385424931184686815241192932485372139671177086648365159642568268386731630244136426951900346146070237253008593886148909165120094790232635497027074675845827806926863671470142253297521405846143930544629290848053156600476532458588536144056953132741917251937584709433095950044157496282375188223157604984228387429377691603541844576956832182329909241814481108754445408822538781641559069569658942646318417547110706861111957858570537690646596113651094968804559655881716398054379097315733900202696160122747383373686354002208236145393777432727404463149912155131893871474774881947584969046502907793601431767427953308910022399063312996396106760314477107870594422610276962964973151865041817776795306332814018836906249332023802371535943851589428782228133325635179917404913209939579609309817222495425140068692995640243146249485866564793465758128404056921413303557771643665942023806333694283504167814466221264299832671840685284562356801617955347118165556579694392735876423789900706556585587290442257093400905519592874077430475400620860695860891017507404478908442430447031183971469992664057122310015516940149069100339207529448095830758923008143693233963893483762039014224366231545149422024764644351286654891561225180173133888019171385318755744812160149505475472276945212972775453700767682647905070836803950361856654337770757273802071271750555414673087019388845645944749692170839577650027128007698518679040752972523335863435862859673835005181002871897037666486073098303801590790195006893959964335253938309635580305236232537271451945759795524085279443560732192035225094527205663670395256122608626939956160232279457134554051745041247272254092491144932375418881540172793817827750290779774346670769658345210496730838857662205955641731810443809761086663458161219404707580159932146549487877864620173844333753046567606821785804234395310260852914632580265486439108520227575347085220178096430363738884405069268132651831512017829845860580812859910152481373532733626811742865791346347881328060751527549765979056694480068569132036015427007700599887446027067888603996570935119814705798000005558983191970679149968752208707087820863988310759036117242822173943350672667195724081108073392383490593070220992789006510686418845664954246789619617941148267746317230649012801164993689539950067404474322132542910445582802293571173801211255386315360150014390718683735946215779469388803779140446194176839483301503639190502796197940979104712744404253795870058095101323474841555751498731028841188832693699966497531866722155664601069080127428759884618918563243998609600286977799048086804590916004360683672990305211654421876126671454251987288412202241196859947550210013614738784266744238564036213107641144805919428499306919923374179910250431321059888410130359738321099813792177677412257674233264276230201496881552265548217934005402207442954562373562493701290977131593516753869644064263378691169904574473047117276440970539163821465689068863580563973262093849830612054778917183327116910940263653218993402384378541571790845199494528257224792602243214084815874355732832640579913049984349979692604508848173721646672199969668089863590106279641482778200746129928755682881915161355744615180848522933297553705860566583789438003355957022803976576627022369098845718851885503863652145332725087888828859691780188009212749847278991872411515278055866256208996283358667272329293042875173609035386888807554537628105794535348299513321963907437007307573520685033479532959140401683139825451105136403006564520547630693845299728617453502736446420455073164873594650621003595860227862278381971923352595240979697595341607204762035288058145116352675588684018364250299665477542377314053986831724903449820787580820198746851237567166552922608317260917028826294209153571438572697153950798024767730346843601514435930815712395431885302471143404573538244357442041561436142114408642623293196966026440178175423531712828196684138746577153401796818614953718872615349162873337957793844023170093630993505594223484843955599960983761488890954843422909407467961299407898527154384315855827628753704371994785849397179824423893866010070683149576820716581662072847795449315359899458365771895510276577375637040642161899451666788077450113375711414898751294275171378068879398527187111300496884362380601318237837999497990719511018336465449194514038951934438525767345585180343598884298664856974525492158788699309311048809043748705064278647795979542546072883512886172939877134977261143348390476775129273446080494831884381843836190914685359648393800761154779322388944714896454800942923792404572599037891676980478234572112774238548033974997680359848131999916552464349444674742446020146666662572908024009573383591835913963392859236942310436860139266209305978840025180110240215713568245024651478699182561265608636886201057180745123333628635313951743469760219259484404646355345026001470051994569008572345104783068359241139070663766645498881905039018006486229054243528284620563584876926899526413864067751870111827616643847694639284743426026655765552260926624594192665556875990638091324199112525259483915086872728086816749865597417412653564609209751916886403965690631860404269260271940825642483728863285116217256359020546331540911499187544680262424707243426354835602401689771541735066249984520602685638881629259936577796059141000251392018434841523487292427017859735470277534203053805206801179957200725510253452013680325861923431870901036575278420568751811652013779352964161136638606509481155476936209575179527573632044467330306119899280873515858256970887700772389628878167852368682317544834431696242123180211356330487496180511812408578783254541455210667198244220178266328483917153714173289175528924240173519003294347453437723264076923433410220239344454900402015219178447163814869676390366406277588192603649049889259029120961136282257426768550899443034418452390152000620415945619706913058539633749447647234986393517478793394865170590553237161517689198303027772485869991145766781420804208586353732420644674358736007010540883004862329646436995896810372980025338336571491489771775645999305158495512952621862612917308424102932373053497431844689476902220346595665111373273941744191365670599219873354962621115039306902761006507120175539807138441317898173434422894284741630179634060015341554893290630860034402770860552811062265585873837804037438421151954120848908104635415811917467442544997178002962920290318692580660876845662023422692398750085250470518289241924951159291552400780333548084352281822085547759456545916163708246746923621427212161537061138943544620335899696944804479825236970989055071031208773751494276860297310514019502542779179656030109240354020728402104262634646183300729019798952814768612147539029925130140826083567352152066763150647371202711741181225876503345797500592329142256050193257672987943958283824292719158896626954651185963700903397420518361683876686509681530706281270837751311468918415172805472987518214812734928122768649652038898586271860606232465751347230741601625692175185719526885387696144253769860173226175496687950722916893104084496827970265575133021532609689584488219303029325376301064963115105328276675288573001243122717903990020520392313496428574314492669531273539539868146982170030453355995274031268565508263457847342443834448594502974547363771686302079374775152494157808572076184944452036361836223707565170589721288144658628754590694115561225655584168468546337327731330740689956626737724400065257399735049922826776495618212127151435319324427627910124572553240873393889707701730300736835807721737539165193170989663004982844871965708128503963871749155657749789723764042246461637094461578578210198481116838444483520142082273975273247705732816325875289907045927450117331604571698773329127048398736300260575763773633678821065941974791563811478637297316620246025532377796726821390788650413086830785001487354307654100766253130926034474234520240973109111434234319512349520027420345078297230038760135571780427511901770657141278173884088714370003539926294991810094971976911912412560294968448441874928076422671546935959904797503658899728927209265897621233266992281150290593505882960830423804546946562185330048641240156393468817197888181076600542979895652324505012404045755061848177155807760618369637266807834047050811444534485091350463448079507714984227535625424709752563566357118693923982218161334314975736908536736039199122370422813986660266253239107995506631481243107131221274608336637601984122077323364863156585283688316634663273663355909517217483358901110271556041848399642604756781826459386963568937038452286592809577056561598890447575469964476732982163809675340677866451551556441020420580675933155060303602001493650663092177939764161225270473158378998230568776036186737750380004357380332929562389977895834217905343434634037424829211263953521589757376074219735806910678306111853999368523379267308911910924842539486025157526917754311010173898820149689328821857124433324249461295765211594025000981836417002157097248468248615532948643205851177954219932937882742251168318673584888941016476128902010844397203137218491243067579640163485752037665542664161486591038431096990079487347270725591804774446479745716196725612948748986784001087877102565811456282562480325818127135452229299433554741690103127485293438274810356383825008950928605105682680840779931533936864897488967992121203511266970418200842021783354612374037426711070244409319458181284163281614275410991495629560209766586864817315179396818437947250544123796847416633155907263853511466357073285230010263529751334579224729719609836294358564702858039216403624668729693895759762580781331963036326134689338265156164166968537006698945883025070017085075868460179248588468939027861426647122917010142145502976854024525834616947437377973163468529923078857722771998118475786264137655782973781627913451967822968583838504602376379112129436762736772956852518649744039219084896014021050263329409542625376634769115904186702517489525019921166902827205507882277398442207147083718018360010289527415347632003793761990843147325950912430404687704923098803551599911134636245047552866324055265356653286932214976689688510954399119468060749275739507857005950841336097754298336104167998308129796388639074818982977736804276780452449868072549589190597786943414306145499277539951016633612320197617319631570744019443450495894974742517676256034252889973428441269600052704904587664876150095726866770169225652809780347103377781038428886093567760249376218949417397759904720352422772002808227617562773787994606267192114460032966894947742537095420478974894828895379342792874751554380281645524761946325927021368198085671097770757610843258287489215656685634198621254656275648999029009553553461233147258878027560736785221561904153681099949878628932565057306941016856076708691944829254859211727852182021311324121884648383867459529073426603808287069911216577821665247221014241037258647806411251343874413267894093451492920729285581714142136979044467277418745827394430494862446059351761511397925861844634646737592891889736118099580419335862454056554667928352756544002023912710740601263961659012108922761876086685269405765577792563242853549711608230011589846583139250740096849875914057226805089124007623755166291453903989066564230540422689955480911041918226998664924200356242640136374761826501926855804898523232813380635836614632412966565954885349553446812415768379175763868871274884618005984110211204796483766626209709825359448209227407059543704881095823170285687899165451094600131256678272488414296895682414490789726814158354175770588219979421965440937067072354753428099425754477803900408528441921384720714986417573964825355448690168834281237568132706707893900712393654409976494322964684949967713068869263378666844061050323828830198401970863715847571816914670845156489442413049900940679894657455843410865179765933116480267837008397817234270825485280398415677788535527565898001405754952192489361540345016424504438216173487721853130898322961496035223352706847719209156487778396999947029042930522916822859729689943591009103564188091715848927737158301863907250429302789648881020491871123026561312589071011116062544915645794177306611548006836768303583570570729634164020948792866451261905264182755398719313928167777633211411175635379921737660872330351230677466734214851353211831296243553566556638728698314135720638977731671768837336173312261788814051154591034505617834945006002488738423827795764300032288726534342583794926899660493290811951936758894174431515524776212363474373786303649977345260739115487329652750410892412510393717074614412407924854140788235852379700727177451319747538459535954347977381430008677882248073821508605521359261774592232432683634752256509423504378999674138391640421972481942325096301283176861479343578088636358075098619517989179847822212789025676672375947747891319437431609522982727461093738291600839121596782829731631755385486635845009353641667869463669974160735831280591581289287374166633766050153906772629876754516107875556685934878683244111948751584751513274485955999981955795583611373222562349152513323227569290676262377394540401834977611214822582350918389586998823962215768085690646577556149913293929212535659284568552713092078810070873217667641784958903182799222562500694357789787479333422587121679254696083882720483786932300281206007481530013712654468306363887833300529042884866826145276102417937948280066395350650626226953469274225353658452938444763363861878034250965464366934711139849833148762652863835745497728868515526682304868967057594915925968148391000975659144695515586354931134448944027130026164850449701622787387499904375455281907445928939621765977888878134463764576531943528520648720481983022259652721121982954963334186896241820601074100650306862798796656475137589479559615649398506976407917799393087603085729866944681657286539530928550204760134160164113193114807669145677679740858588245548795962739697017376579274827473435021627904216368534264800138077311145345798766179922769462748915234893112832501134569178709912529622699708636070056725096615139598150717664388546613556654480473304109492411955689255467325413947350194317612309170985290749244002471205417991887268377135841393582496144079206665448557571341776101243699110730632574701124659415637515173058183832423299032086694510195695498147199020460259321551353570109928924629677371620246436027886290167499280242539891928196957440605333090938393531550700267787583328760165001631079030203341412743014060380285782018183041856182861730425141086129419069914267697657906472344960284550648116001913129293836766204730205724770702480755527441853025374518571434836657739525486369064730019385084594594895326320291742040974539218962835943877801423094204978598387766270646733348517695145640835926885143929929541051249395280105516822197464545616651169730447918571071796701392237814815843257143788289100020904207779098822614344274607165936065510576321457009920279876821178401451604995346017584447968396095515172346967508968406972454626951917633211622860797252137651417696211065002138996338308148195571555546057455162411294118415305685657420920108607535976294765295383540468383812597144362158036887165212425886520841004796641319302806033486050800385184750917930815773291279374539714284617460572415192355439304013309018697617483986272904876582121170598919994516024403028173298483947769494203906847575662392070452619073395587193095799971530287886848123817780123058756726192400694921206988030006843942098625826574231324029647088952901114760296329199777907300703898280720755114124902632059176085032112932678912357209491782512208371984884941074754176062032629922398191083084763119431653459428394828778558302460077056652733393696696040835609965336117650818249275003460990601090649837927187759875265277505804711263430597478834775948146484373607985174816850363076480918633304675767790548244431421266267083980658593539764408424195966336577472514496293289552896223014237588863272887318834483611876677198820809164821873392319092190910049406592962707589142724056366795237968767492401115094598219249623001510461883709473615088380983839188633026583115166389370704126531263865596095665688412125193430049221389978229672943682391159541982326452496782568063207167932911178904881442380525423334955145577324447970487367210337460205717211310045007881451124595307429200861421887395197610803970569541527936161398929282356244835302581656601076581837383678897874400196232286969025908850951474018687531253483087586583234073274538848962480047271627950428053573692043077060909252189976100903241480683891547270465564347286280774195839502000953747143168610089984702178535073641940982943411340509340647261161321277541408925193621368508736754248756495987959704755761879495860856015977011491057679205774438839846243704388271739228595974528042583382159111318065129039504786592032459145878646050506111872008566364396736430260309310809092708789929737805696254781259535849292663890052185567823419556411536616980669687575318495017145733251003582690135170776633564146186876368621719692350501412494753308211666295590270462730504903472335552371294766920431987628680476117463380232031852932880076174879776051829270784686412309244756378185028851337766493771099368431287266052367480099669893955432350845226776933937267715580745627720550857252235919838265447918711349659195799174519390421010621195373976889133289786400950600649552784499984017448788384041183449261689985775106382880020130580493327586780803383302447033750976404490942003289660318717458036608499030653570785770012332709640976480473991683684558187531139273373242753179272341552602880345816787363940185454874544511565596733266487307459027459930846838319927440562568033937110587912654872377764427967838315936296329054796566353500839816356199920464667773750705768500631348060417097884463667605810580296365059405406709456705676026742926574320246953599176923914082072762728761230675843446682054523301732475633865826402821839686484580969774771474363148951508565029080942647716610373896084467374211805291686895103824470417891763612976501721170654682610427968065656466195999675715310262776170875236791322899437403015513806295857632929374665967421339956649948687158082148883551883264076702885777365582301064687159805184342983026110016191525239009068911825626537917053145728951737663224885245888294943193565889043703641938301089016637624012722773256804904403947545019341335735274388506124373516530180704657410828730939728100752071966491389580868231126377908823372620918536710543554298672117388625807831451146808102773921451382401655557506095142657853094360655905479594468395932206299291660626432521292395751415664460570729412998278712959918810697896961401100990383017457526051262144340324397889648249620184036849005340072054088306293660115165063334789178031818730975139822831217281837471545243533867396452386128421612829485128660010884927944730585599858104090093125427483832673536926622883795845329722340145591459003090526180667321296365241624350386916679913860967521824369609014673997986215023016781409798815339610827000807934427117851250175186797769317489133305190038091155579764323869503137051182159857767133412006022229282881362573044323867724998912446077108774967106892377738447250380840122290229307131383112701693328172702702249659846242508884454866064552164806073271380912676901793590323485346157217100946778532749328561542824146565323584293565293205339944418217770616417625298983780482454298766941814407556451237632832073919414587142832537898736592301438133479017544144462876766150101918963913863857870523654136238447530356619634051494622853149314920402091606508099864903107286689067940720253756552451640700329089092281248281898031788506935825755753320817262026260606773305318508355096802730522805419154128386092455600829309812292821828107518101846876875901512972945930482626529810045558327414898032976036567346993640027839920342126491858623553534091640114131016228143035300244792724637369374375356839930153043280974062254886034061472110653821636609546317515895345493078661417491528348105951198602000691219413651930033276379073378154960931418108915528082416886305298430013906173043396763980899436600095534256197684081573925284480707107630611089822877712835418100316546760478774129442548563371496894049985286637553845824345662196599226979626274825019792197004886068896040689905777724299416730729007955771961120351479414136035484015587935100432536135710438630454707702094587336672569853720146759452053808679234637891573424453733636233894609775913984007540506432024579000360357061455522614547220109781072145438106992008080114482578201607306317867684844245678988212633235712799197452956093214641617436059196392462885326758352954749052696887842338957818195233738943951640985119050413467769849041649971952977505654448211861684162257534580194855930516700209652972017584082007194657989582432569380184246387729474622690085162246626006976629252333953025710928377430898825570374620020053703077819086795341518888665213351792413817045681901003331398233490702341763889677829049303338205449452024300707058371007111441571990398635843345348298960550604284951432175876962164710946858611543101374837408985695628736681790029414980517735485695241140017466592757466630848552771919411360902292131851736143231088697507792660853239848062164173753235806168577263742748926772414697338813822374615528859934051509332096937519546418762473436022311928425125659421739885904610631039101873669021135262207961197674052604265053823672665743829540716188804349093895102580653925143226392031954016143270772536810344144168949883345319683830079347725888727602267362591434114422928189430646267315146456710734682264448038412372645356100330932525524046469958780345475062506864082549166250862893843989310900061021087950312481670044907416435561925278756451878045017248571887302096265567464527446931915031768020486279019622887058733295200389883627495678770664694634548713257200519173932088349328867276453296634539317893764239012168767536288610593679704472457116705828795646287083931903069287902207251604998687788942450896185628568489722872639756209376109726233650440742394427594799179361140066135038918055747739939944037675103489973007832409152875617902232298166593690973585056352979942669644679072649733950885500903566274909097301586301763821531072673546557217217822214434059153341628982181126286250177846251049032912019859498102122657654890969508381248332204044896598594722089438120875236400216195797279098636326833599027248611475655564513066830471419038569789284994175687181923507986878034111166476073362456586661968587769872374168882796372632911860961289642830890425795949238771313345621091118634658113473943559336444842040420912178860987745018238175487602239638878797389001449290462711226307146425937195824863919270894907304966532259444236300068182184637738622932024583125589378641970178699316590751449042157487432312063795558934763724852332800921998273135881707240604557381546558362439804454360876854321692770323211055087373321962327858249739346233666166133228650550979997442606399027612256944069706279840961436713340457495473212450223735359263109757879816762614460562797223040878146001614494159741083768821908178154072746359379667141950565680335591197601749903266102736454198407936945396405016547901602432256734361766187520654384317789031300680643151361426845946679840279408951413848383195844090121282753762084720053376001159919288383054681214548986148504438839473201696659439974365675010197000337580346068860596345406889032583176040129337231920875160075657502218227782297192638515219365290146316812681938428408101861079506440681527204983066878743186881625974995064669444665441400529196576388172542543665078875093216830354730770282429261053373643551967384794810773681168194511373691758433161687222405684759387061025050340727130398313932885796754910593896458032804149968064219321608167537161853692365105600234354500165124473165706213701325864472914088670401690958414823302791874962845429657137368286635308398334966786104827904989540974139543374598011468472352871644178945711318502958674859902291185652081052433131324823419990337104020790180579033166188798154707203744952379114542543704095948735246048150498411024589810292326995227288077872815103834295661718005523557813278034193757510199748677180149245978754975270736602608416801782582596970073134912495857112959314481893806826868823714836841058072475266842019199271683845532735912767062191591032364445869248349091789044507123583754785200096819255815981474863191189521710621878456987716172285341927776597745498269916781631211487225409558656646797099053590319404490796340589387009311580939630838040746467474498801822639188877595767304426350620541997180572695293508590397332669738776182207226967683845570105851659706831518382722211796180862844901683003723540154372335589204605173520293432942483215143716447261286422462875089772995329043225826833788874521649058994743372096960473715788805041846170717888051922059192927656333546210689242885897356166785291486661345543789003759664184640706570661972880419393718488820965614413260004163654491979455709766783216641623035640957883075618512392893892332355234830445274721880806518163893749149177384076309778244689062402032646038442197108019258634705569060724660886947671405582018904890900460608301281601931546635623041972957303944049586901381518182515390825743732883756892893356402619687555524122990622970626141968556289948360976557648525226907694648333989577461264617593059827598328877391829282071398066766332390013881359608650396327759175706621399947476305931000430376925460788148341993258470952867234984997470331499769246874952236261730808884243103990747780648416295062468785500966876283416260057837965164262717217882515922122204940274944355777135088656899051075329599779971847854250281720548303606608346124493667872062387087529135994146296718163168392511527814454935385227660182845773768487290202143263693114223098722842214241898632844586372298041243100138984649165533359304001290305343884889837825210375643579656350059870569082993149724846237476737885173188536376239589453333771229404777252691577245803877988920077467087536920398137302891654367419495470997015338763437773063070105517010799856845224832908138914831863854020517650788971274799529706231169842589415246262267872420899011869239665228222795502600697670412802263684080989459688569208112356813431113934844797561731924461214712493848970773472646744965098749375204953400955243023877063414563184868859677778820728450309316770618868878858655893538877657901129081005451474931976754692519807290592211086652281373326245780268678010552794476953752362334121629647901865479057637557405497988969655946448416588135030559279945555525348520068479650478678210258819756950318002346732671419454225712442730303611546348151543576954509255441954974850380594920986523509426777773127583219959345479870178010469477791386239100758656661388106717242593458850079133197823228075817741896977184954685472802550491043529173919553836478503378651702629548703981327307767813315192639396188791556404824075318601676806912057916569421390243343012749473686381225232483377993423586047479166801897413954354690025958240418903953134488922354773356832468091694863943446758833050084195430938670154882620005536961289603720190944993929246710460677351008374305605505923433505306146350205114856490690789013078980145574877338313371312358956876832653041922320101940636260438801447470531434576759587598994115293740118791803629372159008141494612928387174052655224492061354682443488270942021351795832073559196542055224842344988838525290778958675857266635557056515287341298987616363963119440805483407100872506421641573711474946189676036907198345946010153613740652968590971870030536115004520413122937852606175905965439442086044229276063657184373033954882393649427132288515904508964467807224693710834784916085690491235955168146486569805651178859911701500862006474443513376897353728856630742217761483355688068986440534018095573446490524165693096835818309279596141324025751292988672311863557256885235836680458774995525357239995683005984704812981438339854228142717645118767353682453675947371097414131842093889931758287647168920092039396469526331891177619122963543036737604279024798488484832838643749759728185476276978330815142655722077154157665291444022382086170727487574830646089301912206088678740293169975664305834413939167097549144874206043850003223862210223352987487618320632423223585579565154931393122425318920778831151603084490191359514288624886493525642721497104470816760792436758545896624019959633496687943041022216137060224090669350497494267021654889283265584444875062350925655738100802833727065435333486833564176150162581461368232437687072594154242423021406201235164062349524248840165849742338226761713499795218025352625824582688043189125309198507936355249390467416787057984046536938494480915867729141686997537880227955738092770194902388228233085627476607179060919194291613919267667549551913637362692427391850706106887156070970453517143176805822649095318156300010523138999467076295568777494557794582951593206434268833766773103529404371628772090305073302477770118065944098773873003501992082347886219179146083536197576782453674522250839393485134764909509445636330321704260351396214545901300218649015062274157184360841424081572171511542618820760663626315007717389702335251623383895767964050598844435645208642393729439171381216039792145702991666008206028794454099809239253234573578441738585904541888957746391363093379569715790449049265037195079622277711013953411133940704351353547737551298771585201859421703966581925033049518800308937551279759446894472322263122000961620095382646859538112422845110656539266820579310549798298726426988590058486453150395904735378150320043527151070518834773615427859838461069114763167095666916910994931750186316636102586583113038381504426002740701849568558505541071064868123405565489628152399284112320546658277480730248285555770778503088960553917448968825379171582336255006832240819633688424243752752699430831871186593968702205777366476774544965243728970889867654014735452196542862585166454334500428836335353192535453477964933315418380573885160312430375450323552435849763681645268825083710848081033249334950539744265259368625241378552784525172499585133221488868264810507490018532995464408584041630037317109684207589273335682051965668027640847104018177630722486130775951044996231930126974785095939069057211508377002990935559815445371988397731251937456476098037763208372595620349852732613228464503345768366352943932176735584180609076493356423695527171021407663832912375124875570193830349430732808674918364931431269870451430608299382401791118167296811162942632850889605176600431582365084895575936984457338482425254879568009689305138235519470193533994538877385043927095184978744066382465242325849985139274134764272640520524411179216199674563217642684134928714485453261277101431625839565685442650158995541381536098779116461941113787875606870590407439733008789738109867269762123874798520790466805714561191982987014335938285847414344925969636323235178253178730326764727770843959017097594275014312669484607763774805883454547922667680854469244357608150597810620697642470103738236510447179554475566892154092932420208109087538937364386791361194308117513386505241706561562729520275857078839133534327761748768174235582965495502440143520229805847023182029510627912037048567379126885521217970009239743880514993247634266838564515009020951500974606581742005972906334780776716307568671720653001878298093670508104788024207508027927245357808546330598088852464274183852073883807736739361394807504774099952551655764089130132944300017914639386698610274887084219986549677234892054686427728826120032863751183561080745909913043068348043942578586971340000970739569039691445333275354515572121176029053780509557549044006128976521431589190138608082668590107460975351011679705431164414991639472369040806666917263651112584615995490961297344494500072454121762055572426489867579989563054304712254512714101322633559289861754918448477990891570951420865564241968111634904387061177062248475821933347563470817016499867985542560208374051642404968831556913326867095757766501197927792537291542453563605385575092400307951108009473000115324398127565985308314056484044094135028442009357348563650849632666727168673989629934401162015980002963345042793203461072393095172203478980670360597252339003709336471303296530638037890924664041476723999036202930536913403623493510964775301358467592507906461147410468490042496014396434807134291468950883575873643034272952881757302400050982426075565051772755085882384359412479557550679344268827131945996199199990828583894379176053045192372011193064920941458527447275606157984299303184223507813433467625664818480676684914724702855358448017897329195183270617374153768506664464820186581100156418203905311039931798118763196966331662620225510480069818239569595813994399108132130929328204988809473331655617421090311810919427472056324886270664319424015247579741414142937400921010699246031315417319880495395216639653475532680346610296193005831072456641327024375566568451576875679449769243113882718304500878964395513759361663399065058981261175174974451674240381938341580380173449759977202945135676510236096971594820971633204052607840777362644083064175664393784301592521681957901600103109861821406808427641246066618898347969771303090559442243456121305041389634275535839097371935624182320950377484004553327186918338957838504244807333053946389109120836534690652635194790979837143305922664493401873832646872836549727218633940026111752309012177895356449038707455027598447929821743217259181321027952497525379714168104239662407539781418237544639489856693438355383134916512900370608980006082525061123797999247908199982150732520475180010545447060260315622820425232508738022382265139686157033357235687828714333578779127686517566125541147293061835206508036285487083379211313154456808372335015852525340608309078587983926293794628517256292526079353103890055716244447489039511913690206233706009002133806696640907200038227152530650979112150916508106542811418277681031023238229407771185112406552354717838484850493723776864942866564830207202228134317675946112854730007906213509673103380883823924959689830957927725221578790030361206416543658863079571215826459512426872010885396534750061682709804996284986108326201164674153699570917793168622969084711567413156206649970285993966472918034785744670453074344749726128452231911451826033721905944349790682404201414138843125360296423941640352148420291442850028649318866949458112034972566140376279806285500086331405953219004616680760965615350928401846757039493560074355964784100935854593582072447000319829024490973853150023265075027350742080210919491816000020527100222000936476867945485897739179225999903641997922942078828029340463256063516571902637355490398624580908865851031539630353893954997402928662685090093342103699792118091914251196247342328432412162230479735097592353915359789498965857355582133341553068364615095029042930377726640428092846177672339700308341706989630722744076540785806066318335740944462566726950842084512492964831755427003766505238226891453917883090733531462071367226647283529585927253811867817769389563345320838805913623504235814019367589997595266557933813743702460902918651783081784647099313676889589469934570662229007332745404459848030869692282566964847925131943437047959401580914317911998579246547632166188764714996924610151056591876933260189948843978190822469026023350251781802670948183340645523233734537200812854036173951678225268259171139237978657712983959036684497928001036683527012889493982803594990434909989118298858310144075945080947091773564973763671037682696408187191486684442627331595577298326720340592505143684736764144158699619063532644298631092685763954425141071620448221458129156522353175092469577412519470323206531863783283264644091417534019451729538404002329075273834380685111083871619075695905696247947467061774661911968398768499188924162085634934927358579173009018241320369331976749749133199939777171176789864407724497517858240137879246941991512249787910711853489889105268253586927622854399711164626686899226406012596221501043826669325922270464122933199273333495880929921899595672146122562739444583436782056759976997244596859413999601988851920774127933838798686290698680169022205155278960127142906944149995935661086357932442180937166672885141769467689995732694046417858000759843543172551956364155636910730202752614555117106969277569317296530332602447830510086002888749308092330007793076785533723717521955428772759538129733386754615894419389675698823029848646825325080678291041436392418281003824394259216804325528223669297483996604273823004461124926785549900557803416581853735705544144626539406735840558048473383708602341249750118727223214167706236050462446335322458397435451609718201111050856530811878520070844839329715894090752426476256530227476903258235709661799217463376063009554863114394094396982044233857747928473316870462935562024987220404654205969075178441233294579552121999175552734135526243049749516455681345452455129921866679888793183006185761796856810760320973720925170684002060812150313236719941741009578923907352416068065657363232935512660093058000446145733366885867593633986553802861185012806593242628489080180454277658319825668772394725235252555145322309902137807556133282068319373868665021451857897474901265766790061532251121117461515948200484677028729475552578302813415402337914529826056510034910609836556207817355620686330902776168744064184636689518565094763537050657395603146374930651904394384328014271099101122478265242648501479520340531767770694582463327185546526304504867949628126316148197433328763580019760424424968593500373752610032726147562528907587417966126263831807873305702297793852062080395203780958691809880449371567694896017448229501634929728385762344452849909048907624109224598715151843718806655284949356882130501579199718204896217787044793738530097885935959594784252171197013638582251886165870999187976837548134262001273989250757362139140659746147690850532096224346023123605383186990545387275598733699545051646777159092050566485791542148463849613354398855797500399244759671393521042563782185908075142480710743250518460923025386128871044468161921181947919106048955817572346942012804675196947919599296952030171164180243756750683391509750964428106420808548045913806369894643822654057629074829568744880568695629229715479767506402359275477399111650658787183715505768922930541406597241532538087441406905318328578609535370249215485883675037400983144844035147389131809406732116761672395188933762497535783216952222308935246318596144177461966361105603345742119030717474366231364866427277107486582593429911192975772148569835149009357313765517406022238316622001158527443673235364927478180849393290671287516521822325306240893616531541918511734283437040901232201989772478620966282995745439315418021765879779459145144320956090391728489891645552654332467712779287873902043375368741802016038371372455922624927353404078897521114006384452845447041539367243646735179142975486196597111414276004931623636212165211094096126754411729546177182551158047049996025418687023636406308884233080537284936141086221030143538541936959293504319735784441844502390859881219634389440434798688827292037597650974323643900160553161495075300544507795071717298670519371948405487161433872818463087014512935238724912840510610687475017800849421741773485695051946231305108475396509125372479059231873216618434391964270867983468468264476498010836732368628814453361025300877079034759535779009902881311826161314597835068346894309208383633551269620420099196427108289850484479303690287689536648541934285059080159554136534039299259719743553681119345499409549333402579999261263127547629368433274870926134816570538976008041766427368582480882833240264052031897841377480539390148090711739479688967232995455800470564547875389697204347458464184758613328774650712390155973236152916384145028743771526206932402458611029470367073687027719953678216385499877486513670355808007348034414587919267202317317047174034000917787816557258704635104560910381587091159370882188127248419694424157429581226325957073465494933194907501131474478214020110404095214899591813902984106419625133188581202253557438850657035565028188707174337178547453366307528383513923247590142811622545784737503853364104870998409292039499405366045683265763542056924007890300196975557753625306801146155382723661834870286044410558010033211502326798060487629058142784381330299783901115360417750063950873143090719093726085940427453027786359837837600203250258045933386316030562633720135266058738735883113421924085880702525893684880211505804029138491527327092134910128307164708527712179314151239416168781338115904316664134682754589020781992444318434754086051464944392620301437528977094172058086254756960558182147104429687108767878598986270524181377399714790444742399416156286518609825611115469658575611231746338318989989362213872656776115641596108722531142843731314107875002845781261565254149817594339253777958080175272751009642547258534426748002561410287044548309746496724060527012003054374445447119205945635325846988362167905570766800514322101726063082850762498810607481015671485688222534641690296633844316766518923791399796294158057027222698929117489871750362281950027555703444497942903142634832463795971001168156924051643990382080441324227922728514622563712854304263521367844941934357784417304127569080312953374390407886284764527792177108654020429029922116309717784222069207394944367121609617425199306911586088853204148855750154793251279012693644707536057406715559911771119845735938118778565355915382951111819242704116392818539869387931198807506299172057802297639773164902861746229118974598958621744203620633833628366923315565478477053646447788101627259519318544689148185886881626366865490056112698971657501915292473707346372539712391721787307540712488743108719486647521332147367910364061171513492053931945735046380880621014147428917167149106326058674094287113079147005426393465501361685895698526303769988744120575359117100003962795646230967370181249847285745846000611144500144674703570771827025693797758331316480245920577640302049118268123052898109769402798009647651709795656550459318700229686714339803864760705952989799130116649733762467697983208255631908808933390156879211154583401315937137016546805845352070539982344318133685289052568315374087505435637362186276818293153737603010744734277465696364015621087110283016281339223282607086564032379916342186967411804471335374595882264754201961169819137292888544406147115398421111837636507035762370269972702749470466831901533248873543288484475466016637680017467401294011809387028662460934154599979798524812495182946294688384609817777659909866967722528995179073138594883120849349269352140752302794205824389281448672104638097040261847134774675997341593883215266467163887952682276626483221076068157149461926616950811562591590985746598472786687135486366997929855108341744503379551706730158833717342820430238206089595034627026734166570867186660820593959497615335444332428066983893107010431087992448650720880953142038937683749547800987871714492429647182540514014474035942294861405937350166881092467304789617320484261084823627326948238289585640020018453420587888101439731353363484232707863475835044998853258748107527377747189896950336343031564857872193408945742375562471958697986449930442358357527908011792045020230217263091620750749727681920190663709001220644523320145674505024977742643894824082790232667479216441921693424854684528148815455873254882208506467283869839534697991776008977884755038230800595416766058972954322277126688943141467257319576453841499234485554920273054902755787333995899581723361730992100860619180699037626022125455956519383225616308758346611098136668157665693839725868280868846847335463411297043965516833954009891346276274539211328224052673132769724328792879178290111739733544818839135492628598262792108656738103033869445570743034626314203853055427477266728097550476288074219122772952108900387587566443715107556008802344294595501482852757875759837341030967918419460009272950828915367487229669826581515214698369440632959026649679637629553466512439103039029605008976976413222106901445356055756105256504492986671830934573974245451555327210261366024430192776901825292556140463248106125078443187927061780802321308173246508024334672817895682990333746658134560982752872096390730419006308089206424297962621572521920165790031288782927626446881985825400106057869338511622952216139402343298647290758511238330739940601284346147364947368161750210659085474575532946966819096819787223145379587580515604793903287349285887831234040167240070605390739708065353967317951144040826469105799135206691867885880960776708678683906945165624218163214945023969873636595018291779976000278718150605191008420102002645550808901365816722522398260326181498521564820117796208245542274658743463650377861368787406515715774189896495027773309916874002395621974197295492496541272521049338032863618969788487593555697834910145867021676927450908260217324399030830581640690870526719931270021274810801806705469860150849587410852744546980104952268147519585722650104725110795544544453548294250478325719250091455255947892417215157543769410420891224205057764113549818001984001798932570439876099751942916638841266310190836712123261660536610676204786359282284207186412664809372175805289223630447096224593250047780818624134627837106234598685025280344615484223024830517696314075836011845172491784208404375554421722619462902734378881673191721587564982482824975619530859270539691630739562558292410188990770329086088601919857716997369258953059717245501897555603455395740630786504659053460125890191578699763343689439795593235204823262220669520153463024411146835935810842428872881433401015272326830246593398263972431017711717216661007894291365663758011992381024061367680634975188460067739132351044052328884172991007344467832785889907161046499307455994394286091416214042462260648309235662951412585376205045916604405335152976684083428777247883353228748485030338248483281487003889212759964101226275215082498372138088433699237509916504665312881741658424099471013320688397939944984791892129458284440417991569497319526012585550078764190129421684448975047179391387793145818220665580128218590678473528020377729109779262542630297268554520160263919728131259175503760247935168627501419137112390329994064323290548462293213449922651860810365637692868802999196727642105402078132702937151294591003822607253956565993678102408394157306864149060521838043144781952852020004832305375970258065878796882524256171117890156655956985975979707784488144884224427690749610602572136241088725667969489266767040175543479370540981831475861267766570456662008728894733191430460404281346636501255547668786543568881436754972538065187233609754335762232765853203779088917408108539492803203498936743300913757222902457707973826868504239980750773379261248849288138626403945978751369496394101182826117933314768083421408379853483537837121470504057207723020297421686548301946866178760822160154380302010918692408358447763254921378650162069328344263755545563277417104961997349920043154036699355981385237100828471530775695137839529052490619041491602993647949099599011640117537523719413270584099135801188739026989820771482854903001751630375485264746955523834375066343292047634161038173225066104425164287145406915568506414080076201779403313765569521880573320731927355419314349311880967860913959412148064878097794850748756808568226971833148345334661090002129221194714759417164632007162937758285403936603060238623473033430579777127527658113622146281929814546118378667439418809169605308499769784711545529697091277158050678450146671573523287393513887923825553211429749533041051550310250367395819928549692704996464114359943715109017392905292455816532790031344610568421296428700563465472155348752535914680902087749379652908636103519023722540668986084861378689249152394735903253361609921586333602023559794109508323650904471632791066216894043966418519310118465496565406851628809796425911721127202299784842486545070797057897006057669874031360666728867582062806342395751790826671495685615837804352724934397894313313654391745426126178890586826531354983959422601142214222252638155926069307279781691180477755635813900351521873589907406694227506998522935835270159032437724106990552854607407390130757694217575501150229297368290380128670657730511889771963206073670469315479329092088544027251171669289463429594106643721092788845644991740799591226816567047388028363992155412956487918791183249543315129139065674956963527801070542582230367832782706920605206023988043882326512026194876125390526903985036972489147806536239372417809492434811979859170726202886181655487816916698885155771127969618682297058199186789566112172177738243880813643003044653086750451412487267097360970025602493091994946227750089759537105787245194059103434489171290400375086264485587912250558631824119910425438303427858947088861807207889116856774731405303948774755480170702156982938740004153001508898493742790572128853809696593467369916224224266661461349731534788243938456118266799892949172789178207426600045060806565855782121871642849762554078309066040738480302031716676799092676567430020297416730791766622022801356140237325507476290040478344256765148628791093488184392931368091908953944112677310642030548736927432336699306809487221403395269407834374125788826672458700321142041081669736799516059283516018039578954607272642339928251554650386126078915873541423934836391602654778567919959287091395418527522576681116832904871039468889692469372373777590099493187678335833527130392410142808879359558372110345980550896059093105831802351814555237570878390539617509199677994172679967501473642772864554106351403081130903226966905834327409464164324297415381557740256008599209102346829537907289110658290031429518705660194156495547151513343141500223675143331082091446794512317928637092890115482942295054860683209577577423942119188872686289200574675014665755076309043580280222681184315395629914569854318928941762185561037426611987083770663967896970306226566009436382967613448121710902394988112391895056315928805868068477477684454879685730875052427674457940575888128266762884218263420893608120256352712499682251716605403929536579966852772931838326808559464765727390888302814559158388100512530850771232409635184460544062937586247579133797756383127661416960720073949816791894211954567119122018195341553666031780838706174560690123372650230189308814963620378827184609105447798209065194615267701859241612893186683834967873577084792895389354889044623728532092654223763973709742579593157283099275026405247488989108489851467548345529638534070283412585615388319639259356160991848443601782291147160999182005370283422501112022640284545667976549759002558092378973490720851733921640215163299418330005710765618955525016552578511067009631032151804141854961531791821591352733786586237584682614985662617150047830027321598694947557661848755477183028602756096350575325564786676768364011765015287409476744463136994467174161865068438753787924977975251050992702828912486993794631937418130902891205517833130240253145131968087266457719271831309834256806811442826197832753502655784780372581544861619334686853998188692911005342943205188148286594954169421608527990904023892765497495466607168862822888764726604850625741544563906421719606119108091701766615737474699756530835345506824119303846575262792032509956710200359684760263198702268808552510825175316443920319004966366934430550926251446641123288707574070209491666056415213824931255478580365611983779282873849881353966217084193351546532782458004386460849296556281195962834891349965182783165796669222230201703737591576825384487886564260457120450584156267491391713424364304567056850716404585717974969947932187001049463178879853686612206575617414038188622792735822703426070944844188348886772914523807024751001374859689741566476679471946085354500429538410611412884529280407336898273307811872534034034522557296827490791677835583407000476368088988362893853377476788562824447281540380656502848626614710385920674004735162082132825213624159871465436808439414385293875135670414027671004552014688915853006625801282336809393580711799908273190833855003129282473893134369875197051702156161431412426518140183277622822407416334679101853669547199149322251217857471206124095037582110492548815804655445692569588932482759696367895086489607982133385036191961656717663558903376429059707324633198356279915513053884413830395145473943979035664815503850223251798862328400799750312946485902565029838537166500883732162934260796026072773940899345916860594665056438942629542469427656368964693077204684222251238467118271808978003473161349616130141631153140757293128548393564000151635199450048584692655767002695968335793548687907777766900590257945597846216221100814179018552306144904507096656457838861642210270770869128615555499533653745168201243491726118483308421290373003136542670899545027240017713123459521144481515271897619685365109759369305792166680106657965265633541099884219093547416689408572248227843720255785932610147207949431391266024526980491302007565150018028324559318036985434261639836021839795166074794202807662823802574256686318450953372195605973182211590133228291370401936229144040293259179184614783827839199151856092948769937221070517105283521971911480338521634242755884221118841997341768295199073590906081388825012761205283888017981711163883567543897965143796606935225432909835673076680900167374252508716967634714047458580684478660457372348321189135566520725991525484146975768403615920235154456528518320814784716344813489595363402267936985214968807217208552362201469178630028865049472805826903642711313182363067126882712939517559412258011329525563557689567412868207026546813093062117874388545089442596403117254014988932815860265567973771448828744443503795515599304120682316103466619023017653563059684851074734207231547365021130823895699926479161437289380506084322367558827157646160597383444207505794494585352207939600945600354968144763704770331138616804856820506115501124758031932390599999763286013616456155038478310845646763546626135402451276309263136875565295778068222660899174711337586246445824714830339898319992383377580171585411034682069737196214704658770786220283619172547844854285388440596339950793796464861249202384651307232343135844373886200376049630931099868871601743205674731720277057758982506134598445670947461580291093901094735453907281568312625713469562226040654423202296179546458147154854944866674687896232374834866551717577589645415282395519933031141023607470739759378008924327188019571645627467154157000112648091742608989288479609437320668896375262580178447075454732430654285637840595570611306732867512327846471823307983395602492178598931196899133326103246643364195919509839072685780225317460010415652151966272303944081949208271639003207978709692097939743423993661138405779959640040247186801488833230957795779412269709794350907094882160835640508078106641144510905532615229779002269980392743868033045607212664024441145210810632179069316862694604126734286921074215664043240963700052679149849900508683089565980394786993502126824712324424932272120522747230672426577030458799252615651374869712091909406427324648594548028695923398705877235394109382062606453317038153447596308282987079176689473823339171227839900350098640657856938005680423961882740424061888520956864922052512456683522629801496605106709110573025796014366500463986191108167969652842037640117499367773983152445701469586216233864814802702457268940678151737111398709477405296431850520910679114516864019107438590400741586766604330208021157341607227097161317443523621981723219683400558330565970735393592727650833007907884615242917429584863072320640142999546637977005238510376737452468297101613122462025258265853719740552040633911621982111607763954533282978583388293273303708241195038727345996910883185887599159838065287796712580202371583262155520415402160811464874960088341441268752740843195585476680708582304542639988443482128889464619382724032936053655307286649202343845647363027922957922751174091433971773474539195984312448247979548629239558904666387891399952743766347983668836761639333651244876938672491092170336573077485564151954263262480697609618818320987157507561211300925311949297575513981389566998880242506517538617746447779183275125175555129294706681977944369845942496549707590930108261245959752925147122294109604933640867039876336075174412538602497340847704241547904591735093562561867874412837640922931354982995640254345806253203894532305159969763573709067545430523248313398126087729869959473929188592522936441362070675574774012501640455967789963404340116172149675993966598662819232857959414745180986227398408067766362463082549080483182514094852166687779039714199886734354652995010689163200868287906496194494252860487093287410423909415736645150119659547146751150954683429885676624629855214856809350597010658101949058709081598266863332152021137746718540520186388524918102182621193442554927575706680246017727336854790386703204241509112028251872137451757474694615310756546074966901739478180034984837862891498158409850892453078020462146453958850933467401192713882081727500636759158170110927983594356868788762541033372032392050105530449003034689592712829230493201048310584762215842911438399201300281386137373573785819411326890628118441234154478989947562398065960658274196800375923571433960903446029436145617924021211145612879805415955965442352964200903248084590329799426098196946871363443301680045887037941199160316246855563168030125705486982807069091006388116495302603928635937466726686040683775873181423991401346854195552921466623230947556745905092057066062988175810096960063092831978861011987608566716122712393227278872018573188403107819487201926326074596643320782051804328545237197493107958961854193626924279564252923108898184588432528899351781119239802342453683294477819029933078663010314629018784758115053244911422699780668088619417161059828649151430583201767479839027004624600553310467076443778220693943819628103818845082610322269705156653815730526287950366565450779340493172773989285263376078941125274902823798396422498882278686134302882870305183744648771897326016195226789169141481197920590868703273428639369574703439527174752387843246816119139159722908473954672213362001970216821055876542909620269005028881090522864608112186886514609261073830765775286689374249901461441443061562691976864041875622951295831397326504014837093913544713903068912836939422390415142888478048020685200949711145966539152228636381441523254679491505508032030208180253067392347107349098098307262119676506728095540430163435664518198613373927825075788931669050068411065059328751346143278128709455799048181923370761881944281986386830713328238258285744416669205530312144917612268919659378708572852913719804295253594373095793059084293421492624892845098679266132565318210425271224408062738607270493012216344492900998292685369175054038302117471323304730287158715912057103666924562065128562544691959793249145421611112702032403600017033560401535996381160287318287706503595021593481029895765869578026159780646609147420793267209544799850518999589773016170889049949063925577012331162474501401419121898266877999641411165779735697760592588471201669656749251554839015484220579304489785667420714434733481594116483704440073723821767761420204623152575116860076881515993248446764068085148533116570670448970359840598638566560898733706994220574871411793741793967659569027262670469907147827969150669593537601215817828836397342016926359010145033068678004602504927153547125730513974022895897827168326274107872106692617745888134885071678693945557687738255881164928238445122620241767671162347083722756584471813284677217736194841316095486042795648038791683630362873483563393203282123418223525946301479954646754553306841667497689104335429201509979394082401073453123360693408956284478058687341201088001506033082308796571441828448674179927025281916565182168756950433551029833678930832320196900066387269105691530737851744000766201664800682937508257497579654864558453183327883803599624766609522996207345366453059916118866574623503348134678974260870544909352576913172422272582731871458954219915318815882984567840080146379989517289651908704897805914912771845547700594551480294847181765430063748890922817309167464191817728484576595623178017621450922625517138196605564393375105784508844659788659581010871435770379806357815199056683578318119109543581957482400738951086239551104459542296591039115276656423280699114866956463300426827291091320465472247735065237814652556080119978313555286888004914709876650884205378134653480575257501543485550654373451060722297105311901142175681685950140453194996282638675998221520745701199021801727318265437595765420015492891572476769696443191349313317188737346793899241175122612810115024354242077891429068365692540184236269358792755322488359079695911608444119571605591876904237928024200223141261644287476395456617476566015186549040006595737503702957628784582131594501281253134119034841960518938299393854570457663082377931332221236453009347362323401600161543654937828010157896843634224563465845283751872352227384804161504370202694445543969695565162296182545522523109833907111097903723602147948636714988478941794170898318306728629337789501235080344134144133884213555433975471119322851615916300318400269534542353886772491381166357024895506359431900268801235660990457766956462791232202359755920583476913502963289993427655535276441894216400582552645092023570151025746761919690602793433346512198771701859922703378861558184891301382512640829581728847502192700936061353717517529138084991366696058349225223160163622850556948615382253001394997457677389994618194393123275871596612185319110958602918310075870115801255220587440580483637355918333199896399732842257051479294854096787115223884856497453830690391184386387481962148798670396506663021216448346699421756280799144936941670254500013258577956577590446966207533481438663688372412001120195500481969670494225726216798913196152826778834972460678495701044044423239857894811635284241825839938267077405371994763889079882018286522102077364472796809006480475685466028295759643877847352681029371467560440475852029894112957103556167093613262656301611496180143917684690245351268853913213360508404344937826944569780614677206037539531881582166904175728082113121925509526965680842843382058363522935895366022935050945089304564590814313062125754676175879652200788860934661103558465689784110202650309451754261557778978204441890164107008824060172687168549502427923667494404012156965589538719246082654950043985950380009003791544812722434301011849927206807470546690099657803055414227960641187866557165323561114016373011507386206845588219328383752732653848236135956590503954728436891264295422763352997049356312308235914825679370193084413083506681708815678725721413407098845410291935323405275674417372604691120901376994112184968761137457131929297837499593348034845665095876617553761585107481298215732847450643989771888845058883675430764552618817958274768196800847407787067378797637195637352491413111166129225968425846425670422266610772681307804806232395432739323354622659776170255484417596621199234212577349588900773321294869045407150387086195500974091911496927064123513038007211395269021394150887894197190689664581107831874801678301845115225451516494691190264088715095325729720949175919827254394917306670733232081548897518217027272426728987400922640997836292426779959781410967002650955989845778547585509081997197766815119626331033285137115995979913839427703425851255785098112983214341828883248988889808069864735221594666095018602808586250455357921232616427318255883298663964580793882886983968744090108248888004092962800141908232030094207895654314083102778285906702224236837716099980843804765084384675708833213304866682773419945004312830196564050597612696359563854197720945103368314797498094379029438212059190819864140195720444837439734788218409435602700634863472671597090978603708900217306661786155438291066665121787512387100917302838944079945867467076251874834044105477187259128615584109024502049443761789471283776131659103113673325052971389196542617055368206520803842947678275734737640233151089762346543311400526858307109635112869594889994413520684112653552470804620721505247560444894545061931495005992017334338059317558513795353747625396474945788122443873236537507483668652052315848847055294882171443866691602483981323989524133190487353752788219532768299376197307877578053289539557965138901505812533043763699281275763167673772076404949016265126024941681830727981743419015318137869611890307915665300825618719651723444692435524342321507715990401612730001540498353229747188598418467193467373549968820897023215980148384069600284948035978903017469673263783528536632835777798408619439734597361015280259231244045354923658891917344294168359685044758894012932530254088897284964982392760976969023097817758199651197815777810516285319649231565837860792490811171887239954218524887884442563366157614766381966718547768244010543068925779573764505614039058372645281741827208541128256241578369273190150735347083081017509681855091450452100807676929365450282506982305283286734156215511561608058729457556385880070180821414442739476797186449866455021718494027488087753008883647491714446894509443941217485045354281524571362421094838767184560556070673704661834478705112829406374123459007801417721454417650087694605057643330186672018889262904112841941782338785034610994155849340224031565487379077206700952291265269875375986098309729215733580825112039446705154456426875673220772111822340302997477265260479086772809671891848316431945940744116712672443838124966483954400818215476976824182422245720482262813338291634840064075626100944760500081458776737421904805509090900705229294542512101863280255444606447081051694163273430244544538047279931487465065642971662468386058715733869186874844817912735814597620068179931959795445477422249670848738022869521360625407515671418089776620316877453521686497018092049793415035798311121041508734548905565041263006636557308533344009667605514965300518136108817361410500352432914883777060448324970568664828081806111641869789934586580177511380145373154970103718161662323376446910437293947455457973145860631433014121855215972392816468418681347206997327891703657657183483000756421716206613853165385574523853224741171530523686952949040183914057382557466762298616687156639588143482493976762749832196984991313862662720944433564893429104627548451062840496303070772100046915641100119074997464508464903569257633068835657012227240461213653841755533469050783557262131279215860452210155080395521012303550150251525269918322990870426766992974064828453117426935740263631700808848018042038192038387108872810721577280550633228584053276130462388862561705043509896893082467857130378546230450783044908645236221605579583835732540918616067335841545887163086521360877195458243339665376045978276259354705877753526186003673759280855835620681530705495696214265762774024284946627057316531987058850917975225495804109242589753058064346306871048143341992775490976681686281487917167126278162030238350053308215986025835267646581289137663877639033317448714476179234941524891709069628545533165454386241007771235501468284938603005210111710914178314634262803434249434663309071238582373989871929080759445683345261477281185542579096725373135014555361796163984135021834835005879865534523484674329686513692750055636537460093606646009370427707584962734964532552743852903815722581185490783096716790038398258906020635548972535935107995861994740329266007148359933168078433623251031962791719413161601992011337957832932748780327177710984733595319053002357248049661794134756125923544069922471260250914971083921627487451034063354824387479966985161842587427839102624991182552086159750241238948878357200356788607633070887277165956781816598262065949584757563543518898381843057900946298430383562181504220750690375954177807247778771592810577337265631237925329252908860374722738381032359745636662026639762780890217163157398958257522779988901026530870079745460673408452809002772906212932785537055280083445257712270234315811080786427218724748968649079869322286795448669675430141439007363360552228713224840117352531106277870201333658075277015286469974253960193919559711090373216778723299394590248697250269009904878353792312100493391576129330298977186129905098221803459827005197934798728508234546470687346111700609836044039477445078833195417918127301783623171611550279246750160546660281250970518740672881680417166096217277335219894741767427790112230238971928410072076489112220893803729251050763012878295587769969466079883837779408598940758235876689825817365330886916519705666737111269661269570207344739035395846757930042619680664408471275439384390959420026365716344305516042430321539632229238802245396581000311539130801696555155861021477870886437060048785598060302180093714352028457691778120034087245084803130409866286127786320092306039712320787493525302880589784964939723456366433410236030401769036845031283950202712236896509961817381274127023652020133969658760440540621057456297027477823409527606917492501978748695975500930478617753733278527476774774549878044436180527186850413226562785739116108890578072222732585675345309791552869065858935638825244246097120765950291265105206434293130560188103378512159940717061668445166435374293104721255949513488775720102606887023592672746841301872887439996163674231542717930880515444664553156954479147856175136595926543652129263340525338458459223113492439990626413414467146812310596020550402765665240032598317306109318681961179666321356889647058817343566331986573064183526241559160340651845520947711435480854306724986002875043757594862963273695479316259791167237969045012904295885474662020250904284211594916717699496433754022277134047542932045793302531892514969927026589152025024545788775307725075150923151593385396087634641877454976357670483909475996548809968105003735965388448321691545066900739994258121495815499493724543772782440141722753639943948690333026276899942590987492446838657561620979120446365253525581891160531775732590194155577025097873306645447244245771423014487003163787522737927047083593934657604484677989817643612923119003158042037042111235708609842879193367983551333960389368368078903809482091112115114269631840414136497885949238142539676965516249384915309432428293481652239300639355084525952931027324090195564481025482749559044510213569869396604404087851437121620827764485474896956953660569275432606824171230870564674276770909400928539685292593514466111906712497232575276421142334680913516522733861059869499221065988183175919175138135585032777452973591483089254195666130277965622195726673257308279533859808433717147222300962687548422954876903120455010703854775179807249533982628851490192808176343491258805182874135509182570972571374477148692224178877636552171479305831993152128250852057955711015290094849605415923553802622354568919899185809382020416555017131141106059025026811335433395754000727242563936605158270030916827406452766860970140579218141673854856690832405519676269771292987989112680626343948761917166889704331496788512411506873433582144423563791912859419147752092559657870892090364512837766968777279802753429465674335228118812287203477357778976026676174117471524903911302923215559738123713291027730149426245359815791219442609056480668372537748993193505203323868452555162674154598840004208739465878874730126621232899119693368992510099457075959576549526827504030829070048048271574124871860023572060081484448378579888902137509405016925811060313492834209496338376568399948498646935167410021403081192041800974919826721712617744830249035275661311368295251696597502574563464628011652377986231397844611048346551530905546340977300001688129676931379085383279638124123207509739070471962542537297201966942736531026562615500055387930406802960929961669526036637815530651292102141390267773783199334149075403765067265014832831018008864679795297484749950003406004952377008980749624945244000894027714262632184513885222325793780980911023887697378893281650353901988083972858327343457074470533077324608330248608881446833568862420046268761362512857377875509729099377538807236000790374808083987801906218976909977811447284230930971621114176049505916143574352589040002897644385103075559524175152960869047245737662086982732035587364044153935616221609641840463757391975461778663646632923757478110680344343937277441581608554533554222473399480720931537276595956152729082901090477314619699665251583098198273999593723592222573994554428263539827165913975694155300442384202890208394020371012869154029046437011988240658859671197997435862991576120464512319672676631857494345626361479597233854269533475462412085234788287483921904416371982247394252339138746095824549337829980889501807351801913769860896494802907109064512060174537395957867199852466562353186644668050971013067057314512904788267675483389425340824347491769555786566174737971703052439434899677184248315178563007593137660157182094872139410634250926702718670722263559795329521720489095650224983864564671052620398912267678741182099170529822396374951699969835191173655962396976818851194122502699082306040312295758779534988350905633927756872577734129534601304837792147406094411660881956945797029173695648124108020165705050940112465567879486200260501499606096623697667446776226931843595653855048362292524601151606420900049028158025194559992121635809018733280493900334884586904226935048228402797575407854188003588879275589571794958320497226344427233040205591405445828935844110993670786700267161572789482877011824365604835953610464392533928765067068112699736124160274278564338859127014174465477752759420157841968627056174166731323775869498170948193370067185512015066813072006845685447371343635112059321324199911894080064842858164394340918850800905875864492117524146588042551683649135117304303618804659721170468329531794416629325014093158789326097967309932070536459760473963270634240891993110984460118175000942232956058273672400133147409697953247574457752357630070082601613520052942651526627027223696130794016968507177484899931278886764424569764210311226080953379461479622375880115590339398369634036535716524663256935649000332348978240638119476032631927346211259303135056070993789373165088648179360596967793745856473753043697467586417083246979513336253064147746653528183637904860792681442609756057870068767341046247808866093929711491076530756777109901652742375265756847525381331078111560749692132853661432610521153014401857250178878933991723179933963366108822824852178485703572719107283109968045972365106813199804589693299626248381708576478562039389007506500152238403085053124258149493533883782502499993425411995500778651016640346911278083011868774389407537346753100655662868250319493140511104270957067566884623582045743011105379934477226003593030733211489802781248670190084702562231762748056813284641837271468416332689502202377846672834642628461138349399017599525024257254928337274788212226285941708856643737282801187826045895945949887870488396601944830647175394177024694776091531887082950345065165263545916137575072326453877282445687986612657015174752864662689070914786213286471661592385101147591918000142349833312475635358074890024163115546815279798098687853819538164695484852532290842594018562457099784777204529254877675801743255733806200058627118363112861674971749119882261963583000206184815389361037242376012820032005902902980802165595582255394012816098730773249802850855082488886237261309434807801594682592394556686237510150320854088091401981653499215081214542533746726869382829906758733740522413536176862529612064167545006887175175200953125128626872474262697407204120736328140348552160692483811666137437902578745874689831315724306121548207579423264895090131532599203729887712564289488155750802706653639661076731655684606524337536443189921750316629537345850839349691110710515904615958267145929267157050211256271146485917626304527840339712185364077447144802479938824281098174797264703240026795164717788620319336569624207734642172058679819548932091342902016436195720953768117288996769324471097521395381432699568805722678687049601027804554578034196867441697374754480005360401649198547418067402259647387702861727113385228911547175635316563493808492872832311600490710420511642530355888102690737218232224452364058656094498270961879483446081389485609427479662036274209104216090034713917577989857080726651323029822467042190207718133100795827768182151561077399857674533073142315089927092379557775868984441507813377053921497444149597563885908360817318077488232406833282032505575871403633774298337063219122370023253568529601549465632142879231274082824558331500953597510248548123855358546193817972757039510486789715708921477084887339281472820250784995385215391742165419145530115566997301419056355981527077767582210993841361962639073507926623835875648961580888137445678976113888316727501194467811842208422818573242090474160663707123181227576472678316711621151830164665756533348625472202849887201610897124045664776586295146525390682196924880583657355208045425071451610546057742785954407985307707397751469772488586440767500738181989188737421936850148824702141440400306789853396442162513055122432489255516150657334854417221715786533562896933972496508038281039023013400451641794751112685801155746804417424274777398750926871342968496347187350223829626440765390412661290625989967658923930565733305225071613399673151338995239073460207838893992009761606233787457829807504833409377063385547229780099804218290112555540190919804002578825995098146706676280462657676889264812046529178127118654114790379637884149006695159484311663401502532308098366353322670403838911738940291331293301716473962183208694478964476439979567747161820670262520682882557216792405647119437840431884168386996791737472143803147530148243534067279004314703470415171790696287930053184888489298480954482795577927660029477503488505266046313384376227807132790913197020799991780598555844496329541338320412246197115069454514229145804004634299274110826667195591472011371454478945131624579242381226382672003559571993645487498466119679684166202549896867038899152293507357532456073597894268799288747176165602065436244901719029927195422575980990430080561028011274913980076063093122963347579705008241869376237551794264711231437521474957195393397867654090055811835005474556465570395584925275240923937289021418247757060174534086030932447844259250953961436843953200894971191303533239353357899590343268535281381112755062023586491272104670351699653820714041561904612199357281042050195815667004628619281589205179269342682421421841850884845262215854772137589687657764595091131252494042220330125409297460181329233842529690937729134977130253726829448376079389453899465420777277220489857756255896209155562393381725902025434219234977228554527266747518076612370980671306278782218806459836232408221755993785327412544361624535536903873484367591442102561584161860696553225758479165983532804626571043072691745737444966980613701090785121454032296088300001723409145182865431903771268058331208969244398598171172029240919166746636965930341080351828055474782223532149524179140050241468660752305712795037083564222306597191108855515071049823181748388871652228271301716168818070844132772175557908944377127903401459883328891911622206938187932879444984328239347742093321342281715986175369276171950696806714764196601217467470974823643057868093167435314318984522973061587680804592961921442590993723223676541709386138228806886604647128472475566109737145534611067194221869760700370506251132796832655990382017910908406361135042203839915580131149580001803599263565734717525743931789891141976385261285216678155291164507054389757047755488609580671953510237361657466012820951992563912435025997735593159075161664151805603186111562164124949723729344498202317792094279182736683383929634293505663890987627870529352000320030043191735975932953672931365198915877819436627956778522636798158755441796470477744363134372693209753120115447088061402677599443961647900311879092301745211934078269920214517560544979867232858236441240344834919232642870248547134025975564432825204979333123776087991388510903055268666999693491460115885531844136360588619386859111948637661798671941966603700525663592997015620351589632369647464026132959052350261677847575131064618836719180112953958790262471487410492815470941039675729822301548798862883738132240949505277031702523523502979834471032515522134470061121941994689547072818059267008651675107185179154658224302533403175502728419698352929969610939949984479836180483145880877117730842817291884319386744408142989738178219788772817342038704401447410767097038791300002420466384296794576082550553121958153025046743735341828158839590970823082404010527993634646243210438228493331373336754665940505768196309014856798774115243619670250388684911805723812256347004211983736660191211370745048182447489760697735213383762514179252867859433898190245664492548435783055872163482260309942353415895766362454904738021679488983204877234960724290636869362267321948228634140401669799075766937581171618348488604515337790945259052348324010585579195243004204887964956518859476456131459490711972926720245497178627658065818311192479426577228895575183697326929735389197664543537741553351534183972184476339228248800959325953828296074225072776617991932967109645926098144252313170093672745432037292876724184330827660752689143598025035544052738497659038685952887133512898620882671696389371416115165967973246817012847742353494396825540330273859744296562401122247280128435108436059965506513461956442287373035934698529917484715902728511206151558778328788327528485441306735423510152787627939063024131354435582906947173081127503462305376626926183357906338692255339518480413510788717042099190480749959067720466383682313224712338485084173531986771961274510336301070289495240482858251922595382370124703969741215558640358235146759789681493708288984059066242969807844329920411991490643218403826852911213301779113450288429171450172703622495054657241840325883075737247573393410440379429266867986488322230251121733077675192266572195769853049721450129093106293188399944807784609438442851356468033595132041884244858733602080999534855435776414516008541309998179519155393124364817527505578376410951058940259151821674022566422610459138641820073474744816566314781690091669573764508820446864451869392838779223700003325640421863155505375257939811395981974361381696628154571761474037765613164800403176147441862453320566184233018978574591931555900795941735384199805214411448239260109362207981420415124597062311339354663615853362893173900365799984408452742133919265289013212994228998534324586012879795293155159445226869971221391727107866458850521107766306287583772339424388905853668669023643878007790476883328712795854950265720271410563809958935261964676013169813187225203113800636070430997606674977121547435276950165208465214016918919990315813487733067919231873444145319374360782370739445345312637249199332899921145842533150527012769718227168251882296099323598851872166226920904482523440270937808228998868584929298686055805908720353196387087711182458774268507847715920895389079643819418893144261270323482801286254479642737439678505762113210209488190937463252386040828137872476983731687702218478556968273668445555309525929177023522976885164037496500457009753815267267396965913187115249248802143408627700188699304060502589545727244442441712872478973681007277698591514013290992573150087212819400368182600058653532702362299555776394777276774378347562793163819791572155755472270081289123667067959166817998593109160922411888515837598783576066885881426642238677074302406490997212282096000984469209194660524381566930850205286285734085967518483541838743194782956825548409414405946663509072074842257587742287452019601518824830038726137553905317263036270347398984366573991388024528769736333358193006296429291571165035682201698095887720882051782886155975973301556661232807595634179134496137307005071595229052498063658364356089416150021057817255233880718300018757990748966953616794817745955147343494987786745682227420665204882365265818904496123089363482822438505760836723244173498273312836546215153844502965197540846923851918003755567754959900972209012520681664328988445519990543131688692065381360670456440421204196122387794898177612380533463803113760652749909085984552056627532096630380568162225250673587935443275282144744778347394841611766632462574732396907631457961722937032871888657440916457521146683540885670181822338481061455264268608691912268333958426921655659553514549393888705167330187208482478180550116520265831647703955307764626132104383476648986125757468559488703957376330300205910746824759608534815678521382745754612229882642896742203457728535781055736489361841649524744161675832434369011696667809923455059072475478130698196996569897272518198225167139369095725372494500070962587898207509347419098305341491113473374221005504208949977621315513732461634532560662936164788057470668404600061038018235751105302261802501840296464276112367721727129880215629700043310989992122477268482214820054880465481409999781328094705866175913414838729756016684797269984725168006195784445411566775021966403997403311339990642564878217404063165511912455217559322065447264007171176400858279457794633721076725893857877293533684526326247729726677685406613128199190455788601122182075636885902935064379914634987227116055404746269017022669283930523305456237126531684727402517511297961037591842041143679936926434082485742360510884370463827502868090665203020321193688888309214998260157217236936181121553693846299523546526421148534861246381585776874162003933582037862562733547564118985846537465713102213116238100179983042139063128918252411453889978985441445050367021981258941498143330587966497435687663055926239220359708097465032011095437141150588287282603906045899140518885674752404167717459493471162882199374180011852850509616442956779766551250117302845537989426460176486401660182971750653910623785636203239745033659114795564341320047839383052067814083154636028249536690444527299609398718267457943914699047434968409347155156963035067288603010451322708976126686039795887103657427578546660281166360396357627098053116302703902973089749964906778990291202156776258114832643650742853474806280487872888450608634663572563523900690509822597817611878751156021155751505272694439082224804738582762549086461871284224633693568147660630561611354081554089693797550025509136139247005634958202936220098428856791139709895105499005923004956783063962619895284126028498208005360761343663665648686474778553827373136818872742838885272053086004254258720680074728602392309939948114429200444855881093211757847408476963992596162433458673346155778362268748666752146846143412629026963623020962452101212677483924480597107371297209183328783394562360878711640858486310122890526480890655758872567544927089688350914829226679897324406459581302935442781088086219188876160173629397306514612817271543670098893735348867780306188182749837424057726050912091389355953536419203509541083733505423845281180737366944497331621746328695237644342511287291869972375552388349410124691895234197717002893335367072012703345715100314812551579986428156417094714439354350575355916478454246475939661245638146654345252668182286880202453249633386324492349707310151490977760020416376489346960372819726359910384927048880767856821534132322734861218386900544943674649101563340163987087147336823943447085482857842474519687799594871555256312763458625503602282172814015623119825712938741996426813582892887522627818488929747591902632273642212558232404455215734680188611041808385943614759268952265178454063296616385957143346220150273800502572661341152214877512186002555155172812251944017163379547552464263368351034611699471365402504857918940890010021295700106579815836049988434799522271873390053832740946739936599185268183634060147274854377086196711689775813530374853110368084093134905884895143699008392521898773306123226757551619304653002353933236526889071086303158263252892905637322410348149895269472888645946061074250310540869574973453595292591455009006833263924198598395690339977545984956399187022611382010638822544831408808917034457222610301187175768357231539021253093622520113713073296085505330177812648055459248390433621866074521498704040840884048394362093780755851473931328757807987508788388682542137771473081576463112754234090890988702047263370926141976315750583411027388834287396155775526996338085940274628599640396692553959146800131541366377788045881520711723989992675774402179883391485943382874486989385043483787227026158958335616647539962986792405445012242482480518072190745932140111294744962644743239293664540101805907843938345386859780238932854709551299065794697513642869529892289631411527897595386092926857660989751372229713146950835083401168347558368867272760561681129335669867552442735923388442035449701967255698221630490062759716604444797365655306000032868366388062549110697230282789493511558172952061876935737984590073231656879357027550818556552435313421711556307170488894911910261477637321336532384568326887365355294783749235443888372503218045129929863174359270062082984065269244827523321890533309140585379968421997474567114705643635120027248619171922100619979327822763621101092962597594704834999049809075220387228054346756906041823110096844861417320052054869050917396796838999823481580751142508767906468119891181489070134091227765157474646534135568892169478748936615796805978841978899516781721153598381803917380835520950128600666326078966966919827310267401840373680917948529016232922174413032231046618178552200597870892431095593176323526904134561131388730295986678443279842490526219155722234913440194909785577908106223036906567388854541737985481447129547638626118843145037658528518382221603412666992932638060104443494276960020266217897538818338120311876037868453566547764855832022814946915837740389851683659719078823317688925072447352803816555812398551698087696106132502077501334343154324191064526225156645529609160469620602991742836387258824992327221591617257085349663163153260771998311533263799011041136572303514376449348782938153481717549002746277759744162887832299169342977825933323777589878256936135988882349413294164757066249276821627317730771371592018756422129438712670146931771841648773313221110094950877823105457382843745675040361835328018443851765276293049895157052201072156480628157248537331608230367424597903256344082171148914558512808504612226497875038821742714280319752108052242478182084318369213409205298436696335482112266970802782767523572917461784828347206772979992770715137430750992516657877966069275822724678178757214310923294282898986447570340076492495826705639921373911846174947176847843895894764320159976181740570311627835699960774857711806172945439165894178397485467900494398782757514605754604641302196635056266943095698300526252614476970430390962775622026330913964504163850189447855891845409259037802902593645561381449949417904541391657526106464258944962519386880517986030450642605408876103686484231650559036759807060592063110261789785306331923749956720858875344941279519598794505225951614056161398918158500782369571614740555055065606037026939446738060311929910482925294550427159869907471765463840270715547208686824879995067851538935533748142614245693733366647270160252157139260748932542604924327888334830753516265612874718412722872076540538367940462367261078915970541986126171265055914122046801757306803176674992255281320585893120791590461219489643634750061749126798042460551923088500491008411356521116841907902277463252885418291669607870922641777902133572966228222298416697177744807291870541195494594252741789884506297839236797243458711768923773290069449467311290024378007068637201459381483189702802068124614518559946120008727876979377060760859557606991321764111091059855563636031731863536321201628481530957173556318698690394919906850073153610559490803208176190010366666277166035732550061740736159262023373084773628950437409710730771998892792148108326477450590448116507126832405305790009284343373116355216001982750620361493679405242756407083054676952329249346464832978996402368363083442589318646754883888367472100547359666573075131187345944187758392787845146249250187436507938037371615319209297554560565991537917166347571073781391769499043157518654374422760994404077917586062305968088316985460141787054527069177910519982760000879065195405816762193198284497539639181200979339068923587653249858414077438085072291021275660391902551092408653788018276682182752802027685360624936700712196193818108868905187703538751031181022336471657395540580369284597445917909311133385695477902414715487346712524963796801931084175204429905199948352148237900577585490015399345682368363132491639541885306791655024687760386441118364705944478496537370026259979301481011227987615582147523295658913440716473037907638111469838283107576237272876898550150469233222791934298103677692619057467134894052149458742204502623762474695863695665390574033760934342654675204226167509063538962703609897873156641909427696077165105492803204648785483833794942523517269265384069525552960127596872577423041544296167511815261910181225876145722760262319933181446329840811145045934920745493822900804149051475321323118565103930526649639503303450594202050019061688572499261738214631194584119139226704982684263877261764752469990214157887191812127783548529064699649965164243177016297511271843259749623338996158717017265077325923305267188651372919064052195887027119513001741693932559606122258486875744198697840755816984352911797715774813394942103536248307837183549679574860325371169478051159134914451916872494079551236112665711394366937522129599159628168211045735769570258744688830835727857994296397833490153549091848754149979570502959106647307705919144880058554832490400635195516273797990115048705791264221899402410159060392565089892654889901933176777144399693730016044298812326186872383790779625214508458076322055165174339805196065997601261603278985835313219851479131560425190888723089090467812113872410071622104331937877623739558790682818097599184457418344318840548070271565816995285004684984878541773403932568977010421278094286850414299952774208132891964914698142985450749328223275950345404610083971028457356139181995815257199133326989421443192573207937110201968684833401361297961302176370227357038548010525742020743350295160119668833408904039881804836108575465246659564871636265500156325098245253873065281064389486945629497445251218608364532946863568400836847175526557405420487303462258938063103897458907591631868002286119615704105284354186060724330116563531457118558805037007701106415415569279822665210309498589102442121105776922451885068327862051127438497219735638714018256390759469225451089505838852848324487792889433669066142238769130153888918975244749609853326416580899423423298144644760437498907224684165511881816773578303629099338606308127175759574434031982884887394535675752034878736040506952263279708746136169009431287754907104748048844928720685265146894126745497679345545353398012149941050364454224069228517078217119672356709332492788708256345707566058079002450454662415433131641735145891822130943193895834116508838260996550193834868804240219282292240023085615538094618472393316241946140394246280372148419629224300883563437376397198846895406008088804774332701046862057430762131049695836221394430759420943974615346751527883714036687691042334340587751050484289874605294246108528735408582068491768768840224521775889698562226974224507814100125193168941610724973700821523630080258019382313257833786400148963181471427108301847368912256421832921665086563838781816785987693952112928472105317673853758683800511787710343481175956996569250631872360071839501392048631748089826276867814703825019331835062048499421654422323409421820744838335890345474777416133933989236126852621549022653041794897340404975495070583310789271431925843821755733688282718916621421259006525184724054007371733654848500722467282533335686742330438054051142745715495939986770041642039691438182214108827087007245918111756953175101261089196371548895314839067960220916018018213115209326311582526769504267478266567819069737827694349199010350406861373842531208141119220020401085772169807410744317963805860222198176312648438409048089314965093160982949579164187821623514550074672464730426839691295259884479999222206701768653070238512915840816377926496311156022719477172645041571990600315428552498009890504126320139104675176437075328032585553130222001278331485791924232164608819873296656283304358908185972170057030462611920053572693853939592930558278495776324844667176521054888202699451395018439582396881719559781417221496333047908750028065929468229153608955753097440760222951267652360375060600407734951197429729384081069481952369912606355934906676434500495262035627600769115194225931565921198881021213536745529550579301540154637800677255104686227581015647787436308576306134468827707454317747865568998008214173234196347955441072511330833775468120820343797880595745279132218772216821627149023817859220870873979036702626704593313179579852743630232354798182021206978262241242139159132252468671274216578136188266658952082617185004597232554803246520770267429839852970346235532334619194207315996894645373092446863904699637414279163766518430687624138552328093298997869756289608357880201659128051581271010764276676492065484179185186895236247502836292949906345048780622564020215060652783495568275209907257831882257394194832689201607485388917947155407090317472580918686085298989787565871887713270795952256752839122412277184322405349360777484646253648370523721292540139451564487000536523844703165655932738453693630428993560572416578762674095265802033756763268491576584516680958072065524133588462957352611472628600830633436195608602489785455539111793427766795179996119864046918861429235557860925340235639506663946604581983367071462699002258159912573371513123084414630773066146983463726536914943229383170001941905070948757922869439858578837541586250466577414537495411604062835150926433421916163519566509662657031249879011384686062916855681831509128188814458240270385626147717131858724562990958577016726461601478267750599530601593042345944890849454954406336627059763897704055181686065468345629583224329978500938878261943869485891944371686429232794401164780358752732352368036680611003052245712138236453607481250187453222408090726035318755319898723924842767594780355120756215731206387674846985802975427272708337851603641173814135788195554696191331288079778258422881452280237866281544350777711136046045061403063130714600149214732762123962071915915067900371289050003679850421932386288570441896008853051056292817850248022499563747341491321004527256022112139777265345960264997266992974532329843757314912903634976371048805619218536790647192093211494627646474203156974052852378205290635488898771592260462487796676414311509135613344890676479053329283071613263898312821244806912543902637597442292228120840042299050034074286029069631903090630251756114718149464853635429101210658377346648514576934413867393382390629465707248852616743476282789351855731819012124175930441453865825763599538618841228559984124717869156762003195354955659038941184808348964466312711326304396733855467583545355077026989765901787740074624761628229258052582968033954681763531678494848271666899268756382968141512264588402457463808572566287775470140475060523769550540024117777185756234868947096951008691146488926666473705086311956262453629670232257032594106508556302030409894242835068011814478448902295397306302483483899460865572557549798482556222089725894584916760050480506031529888245940811652869590893783406394110713138603515309758694861565331099281611680254843721124853951702502130285078555432363981617080144675094639785948340923598547701505062549749537478431623865867938927402143958573838056854164430624092106934222945137420954688851434577373212485505974049002490564020618922617586855784328928875401110634384278769749502431514722537439929474218951047399258021363407424919969754141243878491264026090820349798562494981980860759682099613022124280047598027028475988745806430577017209289829312448382816590466220915358719386311423761958229922015448527216084970819259333054594811930456408262037736046238648270493239020242204053942521500702353221626562509545446056901928766131748569694272355091841024750154877717402973570799560793684362685091176793581557390177716373309258138777699096378052469733751023964536252971648563061603928567823933841183896403892801180801499717664550503590187441725341511131609256493105188495684649485641744300852433243040823110853120060647412874683895085159814100277445467443327579238727986573703478310298736236638786586534933927351381655597786526016568416542249081549345407169183512457678164191380448296649308654815292187749346764127082464520649189714085989601183983498457748974173904387106980075743439456822414674548408198656524515818940867974052270936868818076287861462006343459859204727638941047283862945076985418528124776381319798447159073189416576194106317707306432769182852834554718342430442251738635169528869422658529588440081701734960195456576498279941142619082592268755731926175958925274986279411394579321129375112088103788306801236445411596996893865540002139664250421883094120981328107410536462875024202408723225286218476070589687336594445354992370767568751618242067333528857595818301941156614090660025996126388974101304688722466925980940284335693486461807943053278495982010587965326240898109805932795838184459891223172051852292755877621267925007419945377354727787471293775702079147111239770818795600353134958914184230008559730503053654286960254732137792880197706177921864546216754251465198814718272421027980044420337127647128795694076191840644815004869635094954558662030055588026479428820975164045310871151736150360625210550293564788051602242605701071726134713662177080047951694851800542547584847038476243284042444074322296189359957401650592803226343301801785039372990017765735568890826930087550551180521064579012767363294396432066225300517914484455369797055522805090273476410566610908087141387357589918302237308539550950688317709946963606115816451971906109974404526525109791264372929001934478756658251427065083146490843072066772212156339779174321982209838035234597000627717133817366192359874806839911379253109824557838413033491547949650548953325130053122599014900754399980476818279086539493094333997528229510572825411292435934844346534013968297418324372158057705742634907530533573443743971393868778669382144564580017259580759753842830409103385423313193168035790947766038485873953145265258716183637043328398351398873207871301702825397283067283277831818399789866103157879678386135920888799164662356298572514131271428286556124586415185800981427358503944105272956826000981707651288380085780902293710148368969707498555951577558233501729173094079185966424030310726238750331977201470436204008836889340244097852306623077367777813826426724551680202709251013640919561568334014310719987248254875930860843341570532876366754785945201405090651126356536495595863053640180862238673560220198541029228458656804988930739262654266942045409281549716833907740614710389757302616056295363577647085433717250588057417294542086024634795495591536504841548208529815284460737304928266661997776096505181804976415168154007080333789975489711943321394108200455834294204613621633064564091690505714750667308308795673533150037697697823736100748920107739560624641525961896786275505311714630755702310160452539727323020557644420257162298479642075549137940502011519672233818342705085884617349635534158315493705675445532927491017278642926462709955788828709258736618327713723350681109037110400085856208287508606595378717984013166612514151485114858516937466249921761136222693692543700331798771001165440692382096743030504101952964386431128329982655146021610862472149246658962018893607893798633512549920106893563481240844805506328994952858854814488813523776978000615077149705122022438469031575844165836788158947371028847193347578761639748823492395864422126587406257531991275821872876746683126736026961916562880990682306548003039864380841413160469262552367031471445557986050685001599981254718431485295803386127488497635107352119209674764592402989915310507328036947215636317122946343671528117399468243543869864989962870223784072085220344041729523549480504231249934998373514649269945787785654862850330488096652088044023348617446921843139864304694345245237874973488638927202189262994113019306801019086600752661886360703207311838522095094132608217828376093897979109792741841218071896754836199993126763046443888104311003388801434292083098549712273572590854556360234157607121103507719419675693275064365997104417888088595610355118111812441239626602754684561506870555093648036759381190834925598036013698690719705019912711029063456340493528231858819581024001706333921630227422747755881155267249960058520722325947568143761704140747271118816329499596745333259856060083878495513313761541668024326594151879430447028942284012742863455126137307713299840893401149000577506200628534509929722645927263188313279995155853260073291519615551047786533097115433435268925909185572754156776274357496249116550975052840511344889319357235110673010111477787339755833369591252369392221448910331175778322616920652048231117764402938128134651053235891946741280556630740863642792569785612532879405290935866477508160714730480453202151739818257276151891015437089326579389380089147992423262582884169416294109136006661860473618104069205285800063666327389892497793186300980585031848717841042225462569648756520773119845535358321191266482575142695719402167598138717341183971419092772572941219175571980849926538707824888231077659042670061877023883214083640546761422977779453026438591784071362828713426481761769098324185354834687788189957019395372445597520088811122189709231077432384660621427777778400663330073814897869793657592177570370190141344862721604064132620525517356021787705050809974246001704734672377581397999738845459782816505367785862499994643166359562907652472310385238864736016550838925450939374369892198600194894580000569720343553768781937701071662713553159712766823552499136914841622482693546425804863692851317348914692806129873518254773618989293355745507061691178092511486965095024094378950831289824195367587752955863289061077630141610697340941647040268731727888797508075151561753966714719278593551531074841791942681963352721727689844461807001467289945364129069043111445789504226919739785258929239580380369528896975520099129612367348838159617427377172486800994000269868415010913617769471945040653529455533173620563913140309427471095614680834488473144486366646079030779395393248019938735333643360417857315030415960192961964943235978189799608224072985305896987665260747090763863928144423983851674676152960924948177709386421992272738565224528602423497835855840778674393724378751971886317438594778059205384384458889348100234977383956255078782889365201378469088374669028608363894210327497137099542967771009581615918578537537239321659104011224167867667798612929447212840343083682470138209235922167415717244084340071186142213672842554010692202498383946569190449477954810409251545631844424592026236794008614594017397990216978764154335159928792697028603049425925002873450350365069338329202325944726253360517282614860340086411351437513420113154344092842368679772450151503466855502850582084880754703553602360601605866410979236785667654113620875124407057984309066437958652961981967374534191748728475617480582305099586526169283089328042389946492738234036106081899322047524980113777047894388024777139358413028350127007517058454981912058155021956630127023946189920762723667731391544017137553000312183205255327911272549913713652348114924908541180886882926197857485291538252921029385513457913859562286569200701273415399770551318304480881226322081830245329043521615110891671446474676604542179624469131511865430639209324730038118333115903152190838372566197281882842435311251631288471105435622153135143077505745217082314745931895211350290856062805581777482073738268188328473425933489781978204128673363488443463236900370195210442639550354694979426694098426129916633084983406393062309727624109654800014426729376956411293159440725434804093646925829858971870558371548468378601122752668725191742191493389128688781184405745185433561947298961246777446956991880425330488730998377219985864433879835173722256717377533908384781500367120787943941236458100959204482171016199403620811182081693090917908215501174680493673808167040255722508393080625712942325270224932250685081183969256041309442715426924995221239288825995327440155542115088638654376535776598420739937928691403050713913517532350847489673490161597804686190728031211034000473417832378263165990355506267502071058121710524114719910182091687701640688108589203382245434463171337423662936657974500603010644706536699407923866725706813847722742542722523574494476901118058056924934785891876164729457122687870560493746375962623325089272120629021862547374759544695574919977990048674254700978576674243153932041731181578531786382089435655956140281282884912542540806398061568878823896784449182488669811370025192898083667584198173862954241133092475995595773323367136475736814521435179269491509417272262661485327095036023956281173679171041673703389481707498427027216966404127413308558812432906430774767984282388500294292118425290152666415302034039381975138944858015778524592443343865109323863678212075002703176119310311803903858224212886704848424371284415111647054206031721181944190619233281424920266453926276005202723130245645997535330521713657472250136915282819262903632644539515604580572410273505608503244935768207015332201216089377556918625494230135552059374722386430776117495338589682127417153319597353718055358703493863816064649961747287769690032874736301912768152552593056779949323983725995117585022158765158499321279480404638203161050650736765743730606472184970033888989600110907594837596006143209979962810879983238472345997278397581376895588775065057729922632716962899484683499749287888968784135031373199893894826737691925236960813852883510222611362224162223588577673294302745571753455759381258508239079097433493290632881312470768916136997942359869167220656741204018871734142182054249301086219597884244291296355440092734545566484220329149293755018361068044253250785581115687960239306087862875831842387230169039263919289050013742935952429096732205265831224276376296834560505787820494863460647814124532822714850292412135548913129772322307643999692890343608696757138682098003916759995004887637911179402042645779360946829100054651401953560990473221345567619949187570727172067248939077816526893593953530299642872682999293028296444668000266269782234665216799298532203586335364230117825531326343749622341249718106736121700713313380446637954629961705244205642015471069439745495635500586255164705175221571045382356568893615440206759540113120751341507557424496528463905912768337077255282835535628931098744101364167802573901645142633173558031540305949615749172239838348950546755485088918203079614604800010689456465670313733362145356373780596432336828343423988681970388078543817272849879568157289269601004915275354673635194685127291594778420465348330163835036573251611442022124252944587306008743133035517466005012345695030857907143059851099470329100290354074538118471257112591628532633674661146540271702511049370109873543015469509045615393339718564569142157555735756838552052024885572532197444429263462123048063555485617356128816588434746213124045171266739720100158069338623433559713470127357273732119728700046273801451957843650504947829390383490510120082002961920516397119854861783369404004942456888507330764194632747903497975283553222395259486388591248023288643141559851401235875235419792543168666238278187542002204713105917098680111354142095656667629327741415817492780030266075378293652227392656487828374783612314938595947969063576728303695016244029805692919032777195416619483500002179239547800079533744820537077648639139331875306168641147786616937601393977416858997452559689772438235889799641143780963045037553123032628259517679955141446947746800795213003563807536760360699041483585941599479895329629912156612176900300986146887752743715326031671838950002751997839962127762526304218271224676154513766023898690274779293546368752695565195793689260999254062645863867558923071427802755033212681284422979031379103161425758419679189150117762033559568916299226092392533687816649650331939994437701201545292477254025075330978077630063891577249095740743644270795115444177097973997618688772591521588788071434945437510138533176657799336270669411771775514852316951533378736938709560844765763823414993114428903579692513911784799336617329519043144810680401253237773341464498763802274862309698470637104612307914123363688176086768641014770666504927531487245764438960326694212041985704602448525410050116061300412014562182096681031264707616001016810597715980610895795854026950680453630079439235932790363461785846603529354799525510269673142573521754786607231910838932966078480808805073563438113999072178167094737919518515472850151041413292588717718040926344059959865274680632078995959402424270499897072185241670884175855328595144466360618523215114086989102544410797863787223476504968541427926652378240840067807334496757317644750378850588641668681805101881939456242500190597012495146745527755950757127896208741172091639048383138109712140050355230259032823757015298330283652179233520018508230785636280766572038444815531487872923929922959813562286059638111212361123330425104709082404533361061681824962503245055925008274345997947799711376138774783101201506289420831763222032109486371463865576522213489414585731183421778268395428690347142008682049910381060764454609466583891135950041107201831114569799027676100049152279954368866491835452778246768416539854440560633314250296512578020322799595518249513351609869358332720854461645299114886675926262370763213739531396433792524024114700351971260576236401592025964167496811105725236141914837545437658461433578649770853336306988571918263931635648677500383689931881709610598914034057424871835502213589508097533818155048045908327947003959401392797205136899800555291252104664331585418407799844704175093911920451189788465355723886383448711371158363436636262254945427034093368005783960624932500223436877030299714398791238224720436808641872806778102037180565165468086478911472559428563099967924920428062183042432880528059650076649214811746078976553360928828010340013134886796486298357191768460351582903159375809747946035019975050549797617077106041954745205410968441538421697561456604980335738284162560366953141904601112739108182958930564273596041491864957898356269854764199558719637612490575121350982628732850169929164903470227853783747337000984843581375787211015610545731252099057682340451701226435683624952947308582216227761314244226660528692119680445907034035084937393276563041679967884964539081889341024627417710601237947281627140921837244209541179035482021042863557705051297176189057345704962810114579194549722591393120543679733445652291909690664589211214950525174383962394182530734326992048448620956857991624809523496902803905922131493690440944267993474272758517143050710791393608250349326707830502700228805394133924997812767652420676062342495264444684505903106892727560055535196362003727828815120412977980945098934770031035913066870883705181248104865949630055124041942828881356588866162717245869948299727801203656227569829854276789460727254652669463450087129333861558506275476244274459376092762426510105555950195935050997080270393236420578060357676627798699456152718620839760839410112494420921398214085962395231684677137005712846676507821225157143051893066776959344458844042361328698123298453534928935833332919300182249371053131047117265213388920334181364292928317370449081209773337096992573836403475208411464993830755433946917685941084961596392520084332050134646768020686263439509524372755568693700199536721844765863686903860851463668366790098759135413623001698487115001076321039615866344323963384413795143441623771417866512835541209368932275424950375493043716767662688830483222970404351777686862006400693187770153510078588346837997962286180845940148326686580366884698750924054686073692473237991001771029862998549582555926261730695698673944255781847682389598600086159714312872209277034397240268133028317754389967846700681006939126467168735490922564480573411851246863491454286530293653118668123353309440341908271295134025140594634904362951615916267279335342907747207996115892428170418185959920516147080445441359354679450062332411775387413329026022211762457764587826556742942103217421204078240498741163609604444805260491815636371423595809313589256002610277239455650930102018989286896693298738859088376394617917354760304011857600229322173202678516788558567277809675153512993576350948061398067503788692119738292162197772463531851580539079827699480720643844284604770049923255671422047757820701423848648826197882926932471000094006130916585016135396489485861883927743286206775982079336585993145097938595625606651662695648618647062344747322292559326053562748036738482308182742493433204225081619543845130058465489387656423669144551728603213011311764862447813209983225100277461143690868086274477571604344616654522011878891364649627471807823604372653118487013352984841208819567157750362015514041501783524871330755643657808678926473752878643718022931326336986581634214698368253033313001754334600956133913430020324762866340361541581404454569794364446970154013715381177473768737649885788748256931193097234805471402667432408542454426476789288156961320740052319874849251777028330009065921103871184602771158978152834121755691326046327135189097172027112917675232007438070263272509476419590925178032649736777155403358532068902056449320506898807141528476931748073118510018869335516761307872696416123207718677153326201647307400228877489476013341704469895399380679139510718398704943853399413622916426163034579098707106349064995934557329189886460888746065892109329127644030098390397955106660224880149821066696285362470526398809286779638483496038051010519847497884320331550304123676281607618177569021635118232159836156297365381573785762121506992665479117496408565446426605261179504323544830152454831378451110440088169539842207004253477191696896150047065014107015664883466915874760812891158854110508758279345244125813117267173560241780160549218011774955064079272671757937252641421656919068020769623820511581801307399582049920180748892960274925559548012062517677774715958463450278359928112221313075836281250036070560711285906468854143568214720083916192170626658506567277060364165156444463673935276975987293353007112158794499895247908214745285037187708507705816371525710506193596197045472179828959045419258983616977775810812167565496366216332952488278129670028457761537375594844077256447172218288496570508291066452185108981385197025191436186610297066804451737335844170849639664739326696341118855580038326915463163681383616268260943122483253243379771217880055437350059476408396075266743332476553191645324209757382829699593650114780453116146409545643732712681554551733760139911916659401116835565728263690878136260353722463488196215506486693104672359208105402617065562750819833227718735816517906703140306172297346056781346888738889035712244823877027111678769555908661815700547784666027234026979507593782316554421377965830707558486419701949107830712037279130446557965389956967719460130178129894196485152072903293493913305645335130070663908013342219544907672747320111179026597176943519530433709807064284486865116627296037925336794507485062003777521592667637932581716173808757544615864979139821232785835150644531716912318713086987102867358058817809781330817560756316793555308815039162858211020130295374027404153509630951281286526641831227515568711555484312865547421712154002352126488291499660747457993142784473674297309861572951352133611301894738149456367018927996098008910041436468640103189995536992958462185614499989735086385350899760436846745025948071588848447422981560965827023619542152456534308516090313759775183805771956984570436941308715848875883697556364191634433317428916980388908592107630719781582580309133135372869989354465469651390995802007849742181555622850336776262768559068869004353972309108170653198134339462082328900684557265058686076588902615152642450445173980877158228973877152103206243647343742191804753882488725407131839002197016546726331194148576199956534463149263052219313159242280647315169356727081402157186556151834664024240599693379893688930167060345195609169293122258384510220270476741592387731131124758669631787982713395222683727427431161853999944572982289358635094981905411022941603407579714569281381403299349303383302056039415757707482589504622021838352330206341166344487704975367226051500772781036034077915231989076667974570948550161953019655188895668048834745451994551104351388542205798037487910661671582230626330575260743921208461366154759414202284273974533842811457693882060211076117727422142148726352573851027952912228564043181263603187979870208195354011819246745861655693550893830097219237602520884324035441272401065865811044194709932999984549329227338721035343839297635057312831375323186896263322809060151653783142944799559361656916140879975965396083146286873981103125641396949241152671921581910164304197423320126515407126611346607971786705352038068235775053539679064864914457353895714821395723895900506352173173540426228580306522082354906629074988214467363571331419963976757339692766182424798838909388945003974894247226047135613268555667615087578284506666137358908382915849058011276051157240990646463548539019530912308874116529658703303166886346211993131578210284735434911012467259788381865612230480849285042427313089122015939681834408995605649290424335043869865182273967186213907941314705808704289690750913405063276642510215375458293791156722530139680399643706997638155461923916639114365998411298940963575372610631029054166335300188156870255198279178859467063252671412153092934452589356912974597561084510985220636882640012558531725885854606876478964812254383298946200337874594637984911753654109606016893860829377951361506870513032934148773202522535299084834500311127952809799157026375227041864676204767532093718569098259895721928167425853691273026430603917631785178601942888510839181469309840134699086644038850799918393032924418416144748731942494418105073595259067603489948562592708004306283160676578451356838244585679252934871854670660092216968263641687297148945345057887876141010476646533374816259391319332006995636137272226329365793507130098294247319042233099568779392514861466245940420584030329239576042712242249927873183048975489033656543283476943436816962669223453089237043491872071393321624494707714170969194270851388354792573704692350926305614555260633342310400534207621468719795842073608123765095298561640768066997089037525265608012965169859087892518075720150876334225144999681406591299712532099639643676474865924886055362830232179186671368595816556251651253422715915842856981884183250229699518314507214721922221351488462551083724450733653077747955315245004129228297444626547086086002965625049775048752482216085358218725973486479718280740530535960019304306785092888225547662255633199950704138259878835309246074698209375515111439078438557827598502558020970864507314607731930916155170066554077493234937324639589209758139561299155338596336678489879463978043981286848346963803087843779302455944210995246083942457849225423838321293292471165253951196492218190982075028538168800236254786413753498322533660754266250254992243544280682083117885991233784380199272785248242273428249849246441628185343789713642947927623148153463913414544174431017627352759197212640050228350118106993285219294116091877973345692960186070996287466577987180158935388405021440333197503923647016957189053896895402865964286616824891049934114350503323374497480422325795537427219154963067735977983864965291895616205691644789578207433930401143911528639368996733682719243516633442327196363338026078874108693734130925668418575629318314621795637789365266588198800715814606333234014735112956429861445988354645834574889106172574395878531024655340930881988512729002249345102229222391537876894048823964217342014988895109748115125105929502047745934941882826866863728027656595509758589110060267980213542200005545351250861889877515263184407418983406195037632344328630985515685250132163896510354858398987018758745014475018958460096920452096945943684812026564046618504066172615003003981655803781882532423161152373029043984988547425415795029298104762770485827093549449699269065934443972506826183294672237502722929226395012536324847961580002992949112665615623855580571725026588287153081776625834001718749053011264643585193782762526374507093575745014696723222770102989745967485679010911056666092291145093972197864759683835814936801775221061171791846868037896891680567829573024796438322707964698014495856263946219081133745695468558991111093081477463682140838221328708272355978123517060744666024949748324644130617487423314217801043267710756587596783854200063969834390413945463489891872501625407784846544370521026899114354692522382980076477457710446165446646086289211381875239010522667615260606249120842312907827350135174237997853852396193496409906336434080816203876898578848613380541033268586460903022400362059006480199315694472125085077957383142131585411299041057508965028929192403867015943852248557381263414286382646380530027140904232954378198642656630477173007685941572669527934807330087053935864105338377864066249938575268547724284136829511527670777338037758261566172228477708003379870192932552889600643796067495424832969984262211409000652315498880255402565530868379967196982637111826283526335710095327801318556361236041552281147646525228964352223945605673180471814321948383507176175756279981101053866789417585752846629756189317656485589190016651428817062712721998805119869018821054062666190769435356097136034610764303746488178476127999892956925683036985067656004955513182924493649193126639341279616925990092065840878629901730254414384154199002874723990164815091102923182993886769205178091022070557001181958234071121283052006440452002646547991170191099872241697708464856496389443338092345083874096760767255363016384787909597933787528104445216945616516399059845098899151505882386269262505863149196268067743199935686572842347462035628999151845874008940631674241232538349303763745548498796138026802605489501248136476067713979590468448821556313085313498767167674094539269853117074063552927212369080812335059734940378375370231889818522802509744020988561816611687296945484307121755928768878976557478848735253143426579294996853732764539930253406819696972878800754315683995322693710080291947671123578965906796476124484716902310261171752150862721227436411511093417597077703126602104964125348353078161350190893416091720648465922261364001335280233761508314400259673298944978281869409656469689022671483510029415113632550363096339788252947176076165020056089133133084492311280657041852639025038186107248988701364163073743393526605589272451806373739177355822032930709706738229275816593979270181777038253843496307744759738733618915750880490814668095092737482063551211935681825557274499798946590342713625072857910613416277121258407315669653670179184299167157494180530592539511255614817296734419594728041920747717003433986758519272785402054359260879759106331530202125128949774019082425920847354152329655341844868376092966315756427180050351632881375661238969961702719923334804737519235405581163508567258040422259745967702352968981224335994986190179781961131598747963356462982130950527864494700334147791923118383135476953635321111663985887646463836027341638916164944274618296506885205226142723435361793388735911219962020179572573636793103693378902803072545580266943734517173025133177000193894851337790861645693578372958004945235168267212493915295715915702786458016719288467803699955410884681195731331594274189401666456017429222812039082632768288786188949063302990916744256670441877499624252719379927998161517546386600413558558070667868169081189410482948524923353566094018838674222730541539958074324476143928306136318292933508868258253763542182924723826193393919745877529702082177745576994986936483236505890871600942028027386152123843612007180702250118539068094829916109048955958843928994441815157460016202842105092052623713806942520772855916679180425838714110572038462276929962285910686056902740151927165484010222331955601734917681885025185015735991161784875838550935976248814021512584987324694905774908951173336507740949518652282743602453645451537102318404661539046623086959599342236464919391907443856144047271536673790261264063312622666142327950354263608527604244318604496957691025716865367148712897440370695346734560223205735979314257105791484593272857260679200482264706673637261912443079012363597438696136115105411699708707168553274733387522575143725957093508526807009946594064261309872582611628977422846608892108446789182156823421005623626148836203705483156772318855220085022048647562793252392124682293670335488946870390814104346062367893709108916684774027717170623874584747199492512631850598736242623721494946032544100790059258097713185918161937959810911313700826145557054967129480475967867375506081727724182947530252360745676497508163713574676557082372804969259186768592660475725709489074581879629831398198707780259523141664910620921914437238681741030263861881977075810719741617328526481532577304879573646054433170228312446362729369654423536787271517725280699992237779695801017040638959912891798182088457043903761433994232540101619979277048926210962944409349856252672354824289596052983457987629795108830941555659453459712095617155595821270451089078929482290500678519225949686575169654697805094130979024421583731713344384945717377119652283775949150265514444623229981185200182286043180447563205582104443824110079812142166125486230732818687648410484139503542026337279502261145779816633804323642875951030559631675817053672024500876925724205967302120149986560870603701979031548613479640460593448769736469718047178062267298546721747928422411777293085040156544182355270011396948512611327185332792403581664868399806065729788280095316977647845879944975923525297547701717622630480087650370035844661668695500528336874797738562093294466668387981968708480365747676872247658373597799061023980715450432893274157595328200034369907017272843023909945840936510297811155461120220482439959663319102946097536817574583009729198149583525550515517609152779144473715125184440864320461242726798494627486588620431940441681020024892032731489996260748448249257084526576765538432725550761149808506103276630331756748659605017210814997986068154280281172964772406131628728664685572642610310112800702914546607951460719219979379313342727411257711665126271360691625145734260051143132333812490204143886706959476733457233255322002879236335070658882018989655523365573392352339936356854636530414716083454522831506546171519642436536172049685559770100024215808524024604887848101574486699519229285788919677413762096291145762182292830610012859312697448557361652124649857980868982610158104622506226302043409023600144556082743108145999045035634283811013530837582925960002439093290266777937782540912721397542053819429108788520197427452543914361697452810287548378273584339423101448245319033815039607002017605938293500803025061057443934709271372828528891979095112269481296556976299137938837478684675491300623802484303975821081912734439063122446653714024399647556356584638310016211524358954715095338868626283593641599856774992169871648201690742783044245223424800671627409396922507759913007326134025723443200260889090496453669802487717068624944074958603365180514049216832566329443883172054980214719592857067555078561936521055146042377711011786746608183574352648673796412901540218772776584748097099611617482324266858103262183446265089073558836926056885498790064748299714250831238876507183570462265615442425213961855707952978086382405306589027213463669844119718491467215996165513629494611695235359847859598960668743457704041033514889115526257252367275920603216644621480220891455612484517258682320526781220114521478283549173246601072335327333182427411176327203832334461642432786731634947832223881119135074277809079701003291824903154983603877140796379782325904366141789358067345670040474962800647262153224451034164519771852652654771523338852725302302289943412284727070879231216823837642286003660309556418635686295851104885057531498924737634027064542125541936464382623246265785278895571987745461976870610635546876934486880997725178888019593934371840592210712030288385652628594546452171144217349775901226112010221425056424495779040232465862240554269157173071708275376524913709587853521557718905843786430992754674641834248897938797496446225099038362068754562688629612824882574823744518392801058594500969559398692097704843759154873465865818014264358205254920892314399303604192981550629158730062163562233653012215648440127863269060797751423715541833372014232867772220259377941490799374537643939668932768831716912625649504870263337353446049591515431252176152843029167644892586861432227372370009967588562203433116787385159513708222202286257861717167577959102581695890589588482153193580919097173672608627007563680494541072406087598089112088826336247708498475515781467478339821660005945460629852559205686431997792893486250139269052189944023229473808449432846525821455630494499227657299023847411597061921316393373954263985552125621947225013416809878624090958855512997962793146138772626729615704910948434266365590579341338918250677916062964200204348326817656424476318950119476588159353047546966665156998785693528358915214151733426076364891546481283901359626214033068474803913261250085278129050807512805021390962941613179927597843878997469688877081397326056932288586000119754314605188150017589148996994231732271534584413306508132927886813674020216993224863034493567078212558872989699653759348525668267845022451941638801367597855307360144758072987969875831863077791821839507553816523372070311882831804098610486390978536686224073279173383653318382819323805810531207953445475031008622275079561771035815449009634680862748028014613283224564734498423202781168895739701209486399364233479860597777780221079573545484528377109578307026210815391512506005802459115626028563465092259012098545868722904567188402624065368305627791933228822612984239587209464412261009297275633361072834390319940860362146905968106670068527153119344829233033750141717970492800804739956809996611345952113554140801321383156871691494490483381969909044028063876523401738894836248671270602365610005486954428031429471873037221532347207332317068185459193154755045199025745919606555204919235299596562189135566241956503208754251682934984748805468460469723768395723667998401569564323824869108331294340652341736564036400560970891464076643979122458314341563420891642643137566178976811694236047837033503683865581942403288242134049604863201089698664162047815934889621037226253068432571437689642380703438696491200113239119767945981945995511962459508589126799958323681399683029477077107524327071808868238235900524919741141062940451131962631367969744262145803195836200193197770388643562639293475551483418815594453894711414350372064956885833469510126459953466314200877522468726577311666962860082431956658293018610889606185205862623714868466610054394386673694646236937993311571220271423824655755156596320178773390359744821717293801688234395720744453708730489245891556370243485208835016587913221040063311379797884378664573360104264807801317203578254159859605756393511187408130436159854588812126777961013858250557430555316171970821844857623716761609431996482631821209627522030272604533734006641221510200779471507303208543960912765849065863834865435644190774936047477102572964798598188034227844193758253023290371128299832427768225261967270134797518206415566329336841020970284685918369278440740249747007932277210855284047799728575586585784381712052639991089606838842980605852664752999107763199365330794233463108440312714576987854299244445845100389755834809333710782861961530831691759159464074577877406569442872623447383343642002230394652301466343705084420216912976183348366684186345371941687991925284924488896168394548273476065390070824535233343204554748693338611746781767931077166849663215428497276122385990764327440754944685279255381026095546157673946410817296819437626628990416577271241002135261167268416643396704275140902785919214274988208681148008534402814619707421486812241067600485314851116566225119525779542689652332311090910584051364597234639186243664392282981812565339434044857861151511516009446893280524449648169111956859238256838357437901432566177683786753745804735479406987006880377958543290840688708810485485336214247526651000281894520658227995463710026388428660614781268001776009247790755273031765788280942497289620352812739588961766208089753964473642736928622247977610536438841870418406557239822541913656984478535240417989177827413725066052380670268613818470550848760014357565965951532619225990950646204405597675799671110968581776128426054674360375386315697311482993040182729486356066267646025618469309678111690927991682530265092984740884164238615563004535683125206054818906489488012620128292285522341615702846770250755877314197002201245866133203831254030417819002963410282842729158876980255950790639979863562478197837884078732998429935156288497552888066284806761899951500417003224886953730202330844401113657297794984303681312316575860864054571982556664674678026239440937501721776107676061876256270368558729483079034934521104911048622102254200802994561698778571263004433149562487922132083459088269925865688297319214811867538370564303709994842548837310638408589285334117588172953927557222781030642144836098423315478679407618592707126369734561812669932043248757375169156013648644584196789833802793127348536780064020096000843344695315374323954894987531800777180479298937953962896970080777109432150346759175161981999273495071024296520421204474127161788312692486291120850841131225974232657823543902774148457737676421163636366961890391431188930399365798397975556193764498606050108998853860847621359433013165039618623196623195677558957217732746333858090493153780192249733281963159576722666125170678524847017821579864489577340620533108589698396259916317132015391393341466907044531240418631429658488871300575822256328668266202539325941468094527952051503037017832376556063255673421175988258245374374862803206587638374490903512873784520112323756197514018726626824048587466982071635420755979072162632913085089156300786614178538410817159380177335877469658696355638906254903394148630857707120361432843363912138996120053862320697527304915256040850349290759405554598762930630037565909185127500432888333801527259146815053232377439523071525244717194760827954722463551527036033834730906714229090418660385946405979235051127651052649201477680037202535104433372437932311798554260091150625882961915170116890294317530668963480640618184654268431766676872355234794562755808882591467571430706888451414836732658171778185320821041325648932819137722590490066222464025310845706881039634897265983620798470340873827967761012123181293380239036249973500878707332993229824893737290957800215700869822193216961740581553900151954187464992370295286197962597405623648644777198374730483389242052211734076554425614025218060034509414602077839642047375577934379362705736064135809033624454655873294600996265578477253008348251815572080413719857619437511192789735271944222911612381927811163930846106398927915467347677890607948088824255845799458497932810998076502348584942681676212592414533988128634887506209024501565721003851229239485222265116890481376695964022118472254991852344195046929227672564139934747530979216269166323677242358203169972101475370201642514808505427730227963600688561789988792800058794694510546338043388151165830632160853447549275593431788802279424682600606884174096644227055863297115512302915228269781861731892503660886074638993782468032352070432696876590079877238732419305110205239079224673735521803264596173177040464599862481658947231336560246219428434496280148891006921553610018613603240304349043329168565986357581872471026828881494449885258407461870753992988811444219137887355460229528872557253826490346147670145629952261914083464474840659298802458688957601109095799307928863566936259160030990548797653521886274555301028881273537213805525073069011315048890351661703201653599490634588465504692757503137124476268693170322106142250819427944089348817454685416655066023376403681582991323498427734204363027455403833024386146395653880454814472363972248744493221482255734594873812144131870956685333037028118963353511449891061703001060193752447051999934152018808218097645966221136156783818108130412107179065023874351369745189481643732803671973597910104849989386278798977927572731924991261796952671997053177057266016761699698640618101047999777054115084273338037851073395349936974836641305097675238662946606551049185046630399406350829833235864624764630617576251260152501975849219516541385257250935928711043613435542566610464564069671285330701038538023746910840253874894604953618648551900690728019990378479281606840723596265444691051874086150987593150248814164148935808017773118867867322726639124565432743439261146253820981472113657956601899782823694372148678259506691902819127195083054209588354502082823257832067256972898241281721554869042822505354501069066482487738605230825978329410380219184904085648039760201792552179297168972673220924736754824732888409740335098786378999018409926112027656349918437333227714066932720788651828158150027123257927724760608474417402203316146423014102061922559751497523837470433830785084163623438539915002229762927123242258110429699639121533213063325505389294835826821267606688765995853192524460357143053269933263287970283175763851970210047427403166508868752734529838326451019768478814953480767092199105565898249968753444033556407154993594558898928838352441036837351088736460543572517623680966106534934861070676373365471403683148481860866037532055933417520213892483992233234386318811636146625098895497317115664371666721291074442666094238253574464958035483357713242538047351117096772990535642610310853231352803981559869105391919558466949053318984585625975806846651806362863556482362139381043651191306616625501723476878551859246235037486722206227294671094957660852374981943941742222666381887739648262432499190513489719111676417778175894063591169385171559355340267416705794953978310800124546080573358756947299706752102649784756544509856478912777345295075670347670510657338018909554639624487127304307210282617406835209329968582046459961975747018037440133371808948309481688570152197763719608889851982028660182778715692221885276800889827503439010738561924444617240002539743190137242928296631232058226310631658764405183321791997902649842404528674871149148836354417933276498568068380335157930837258433694337954747210282880455595065548796636235318049794231206908044359047996657315742363420270863532403372792721928886510104051608829031780114695060119486808926561635463004118216454450887533959568996094652721433311297402509125384611076177806908572466453501003518182711750617539187923958047659162972666678543311947958212701597730964302526210804415735454917617520811476386582523397696660709704938881050896236087167021151381384895765830694021717010170177318763909381367121303651361213349087614787115154226674409614608330821237042897120954154946548574376118215378562153674013203727537049426662366715001499338942065834969892232500292071999172361429255027610559224129799701784415450679663837975099620550762024077127841936010929546195121236987066045206183097866994483202399630114522036829466901162829267049962271592494989416989797091488121628066833406789548960227404300283742549924992356556933055270526521502442923332834455479706012417399430218542274875745624613152106272937021933272850060988775972173039757433445823102036421283383782680788853795883708957725667738604722486676837778078878730485406653165638228743688486893055016750112103530134946485847593011965153787345446693094616267418014794989526601593834802223078489864225255172010874554605249217144329417335194736624356798667972540610639137208665725782179095775911951425246073701250898442800574854898536591058179292892389997331491710857892989344248484310691662578297333315064824432973658825522724843949261056707973951754827286917934841602284546116248311467813308597297377930520385202325628569459979610238738261266999787247255912189583853464578666743278848482123819078601978378015507377538311002313022984298379397853547873308018227385302158846694189852730012495457226234698159694947532782386669957597737944312671029548757141591115494827206763259442178890010620030257389362445712790594741324493597769648128265978201519596242076734807113091208033207361959283384318895880153441919910883533040343753259499105492397405775513259465187281489986030917815159722217108951917815040174364642915345813893066338783035375803130613381322695151352297123161582952923860927847824883039221788735171541901574955846198772860826290487911052327968253170049151869519189373488659652805502304927277258437950176310746033929367288751178817468813687392120659299727122653144273014377606873133816457781163000346552920222927095980302055295354107392492525056134990240928177091053635085605037360872032457083802491416219514049609881848968346234892009276537120717794312808987563765483371476224573461286526120246312866278148611523949408363211197347316609770113334152818383107940247805904668993032684716352151897071738032092017013784327230683196875996440479949163628840231029280717537096264003417758580178201832319061888568483597860016198486173766976127932332727104924212977621946766558223600643509848559715801793687636473478240586058964915777807997910335170160916784324929844789272275827312610444379033663563563388716507615227377808226604837718864691131455316093042177528509499913192673667673367721242462637861236099730853790853720760269839712773932902897266348439980236151733684947420370085341145667980877759892930733668781409639468599965687051878182447399599310709541818634716332872429093159920303024090991330182285594943843838913733764217603762459025449851020717244564993582885581991475121578282483715879308170032509399380928040890973431736948110508629524578582841634619900248143018057936972381294228602944551894006078562453736583475591935526779724115064256802139286785274794547935412923180940391689050237002892431450996367673711817013505120237813638329587965791016863628858104509463813925510676771578227723389366765166644182577494687609182414404101849853302279382030597351689699671212069307972397272349209847069718151949158669407787662042465559666974280559555458985199849934893626643165055025928357872067600439029550226352907832038376127573823242958662427795629942641049652403977098895763489331177589558076187602314609193302565061292892637284760476770539864678863570875035220306738875937334026415097498273887615742765722175344179711471480995032648080974991028447508460241653481043616203102650422290202070449181918871503964208956088809213748138572021496765648126625904001315035404912575517486724575943121650796841786545966713596579120605169324380378649648327042444590576795516333206721520404675307673588399837727240608130443663395059626597010507846884994795111217801773248277498770858761123803735680935679152848186039486658156202463773276444709066495845944397631732063143972638132093008369830422925886247887649574310671898944979375690478586823981023863578498442399474585893250420485951378596872825750603294257068412930962392716230141048538448070404007777024618469330521586794776886467213638941073109711040337495343811816846445355876691933407014617409305196804674973073201189191052768614061191351599506342681073698454337144750655786593828470463076311284670439236804300997240835331465645275007368984515880071455372915220011218415742827450623137529219802405964789738157806271553663810065430544733379857310191038469471758816246107729779334540167465705758973496086530208433558706608131995251866979930633848829338000695242881243535849077539735263788420045157932776453305686078441032366008511170325462987584572102230545511490682486094177026156303673546789350216162458342062792984128153642397434102109801277855208090702817112303322353074038401002299664542308417898391254511508824870283235132300736137479123437464290974106468581246535461189327572698209462836561978984300323910808250961779443441862122552991922207990249424331834639619669866245894534219168083191096585398500120537917284727980618306961097470173272310341478518542594682668399579417370007683897954033213273202485836484997618108467601674081351769628205190448634667041330401119281717746288831667024320251912665488171191043884010046395717925998317345406947005722449738999508714559503715316234227683692818688826982884325630562116140013931602739383053290346113570783940101267811520823144338061131508824793133012618834184487190902472318713238364463446179122714181216150205961306780942984469004514620821280365013711807817440766486687806009389246650196483450716636505799374866221682624764843682157604814440662954176105035353115137203448334284197308384833330776571730800005730990114282249182074127148907417762955355592301959604788814718957481644909164416101423127668838261808616161608963759804496867193861655581790981039557486902885179824321075204076656869588037887622652914096560806863455705529274983129934455356742375221752661781178623854138106350803862277182554561572324172560139396186376922688977824221409609634523799480905924128182678835991182040329549155186063942077432099370970654991012014457475975664015795975252468757405910294975446559531341214960892120067124813850348217087994471298886707616207541142371192482473942452710331614070975110165222720972049667797848842875942456924221683035607871855710352960148160068017027274072755767227269947485818370662229951534296193996615408931362664482707964786610221450027484658460211178999219520356192843997814912549681712691196716039860382798842787084761811843255269928243252879530734157990069275386637321469599840741796136213224518289609502386746694236818638548927688987923022187342495783941827870091381270815791283547119351100639613569022387556814745145327014000082586838863386489570695648341349033145978044258429727012387682935184011754954021542373077550406838999549615069978179653488563939732294905042116160527274544131760753105107845361333809547388530249286581917342673230770202494297619852307707751366215697432312109241415743120067045590650854599841682837202252889557856190839388851472700467531372542757753766259795394460893502647559638130736169407887781534373845373168655153009023555836519366723318095055002431369053829193410728352366476364111085263625847856412083856939374851377308153398963166769451604535891165663526311176062966778547534241630588518749180971617323805629945629795659327616291054810949561289928303763380674589149586822422877441804647847076379339324389614602731263218792172968983363538790552476452819395025768715621118408644308914270950894356908397866191931700626743371054992437561079316460991658984437346668485668115661398104001901299488822555850756522956842312423701335869586004186170794598334386427437139704209658387907758195593840154431017415336558049301480308189179780135722689196739614494694798041352155218670611348260065885127961616923577495599415032615083946443633054019246689561690898777883204027722361412370191253664992077664166612824343385256206307558452818041490516211985060688513651871937832576621940081516775595893879337604448648311579601959070878103479988229915800174505210310838720168138746891544066262551018914807830631072750856378492971016373491886078112926176927149414080749617194385796709604437973769193501715082505777200430039309561995451075323673150018008991069612690600864459937736467277354162486193249503685217081681990461516519225416150822224075647440884816685460064277478655434594702599446300728128929052863603889462274227517346214958988223274819337410725782960642051846623708952884724021681773171312908658881314360041201181967469390424237583924498394116791804785054809855646605636779257677966241563570258335702372288124011965533602919647941994559618497659314178058979497303805028695930187211997329194755251452572053227280602577724352448913070016339834109546128436164162953293028198866670392901131240136404973718032731683466651062020167198312940983971942258565502513287143805499655721726142332922445930048766008882124192666114212768923671890074137427160326675758746704901678949565417454724468919066941334958173885112132983731504843989259472840134670246041849211582889073198829861033541647867894065484754591203118979218883466097714807395931114808377928931440483709527056383625086862035443251387363417529607578119280644777886421016162840820663056617604815527506971896016685687881422976055456331413760181905837996023397028594410494277301327714661928670068417241751697216245123026416311971936623946905201287093545529867811521308523987860011390061725759775781210857139132990145208505750491913529502955680117054958261720148677153824688459071678925632314451633752287615673564540678114549304960102277248694222742050176867897727391070896026781963260894246450534328045839223023970446963096810883195108058316175232565951047208547889592855615844034709568410999702152138200137577283460426203187533748055745417342741843882002719029249141348054977073059844190111785103243538783189101954212424733206304124345626509562205069991967613627358454577737104370610493634458845451827530822530131733203224450053458041222954543798547372569177663672894946325269116498969678291306761326760652213034195109264451232386905312539813274568236070666377693339449760721703437269648426086873757323274400405224162370366723564240844898660348546847091888645185176302015296860356427987761137109857667048041408342994075324987403527256997032120587397990874101079069640432467348881154939064530715905732711601360170358627057220872310031924365365807130183137669590309237485236111005760650773940272890784447299894560486785044494410438068391964005946670662165650439869416678952457233281485032521689935496872549366351224833754482134239096626657545215838020022647140379042871161185142109296848612144357004850282041202759609551780844381313827896842153726117512263889662291906788639686675436244469588269193254605086515682644995104615687677483298615882249756832035230953970426725372074004708286981334295131886726078806774026661480691804146009106078920144809670362270357363758184745187010353307578575889349152962137630756833177193829420626151800022135614878874520735984695120243358582634058974961525854434402934850163056529868235490526183527902398815101309544912515545945741613989443743429659798838481390411388469795818993028561188412879109577618087380052016287909228262724250670212842143638066773949437125918179728722263004487706872432937632916203969785788878113202245783427368420635916054926205454179518768610307550348559997602391269162128093737181411681881871744329310023823650955369916906777649814780180448503598517715109354212500722428268471163139963104769204712032841102698803398899000287437517374899133396930677826917447797181280732936682857332468944543165130418619485848246051358835323558629003985600686467456375139829227220618758403726973556806129188206510760340624978918240561288443216878104332699489474754348736358086245343515944489164880963396767011752185232085437740577295213164288007446460979535852555454334193057902877311411576486743394641740817583141926956391660959457160695196161716757820330982658315407360756689923526576934134956151916107466610926303142252216102195465024860966538391069860318718231220897650348017735956566647741276942792177301349021995549066270815897397321710154545985816298225990849996044554435686742863959604446073267763871158103903115679834530248106021270477818145159565677409071374939986492600403811732390289776620394092279273824587346477396474022461338192732504336101014910637760224342649984501265798831937151491604651115081791556520195644240921137607047394187864511038874807197504881540315375340915771408678598327709476047488482391205667518322668887171170056252062101963189074965121708549251096878946346766071691359875346471557856921905001061406372825859258433432908143380277720142273636467254100583330627442412458314254890482609041789263585282174357372494961545698723599180899296854307356046792785997060006637576702440353001174554018064282787706566496921731524353538112046451339385620286990755890751360867806579753079817688136063633648353972535586820608237374382666935387213431977798414692793016436393936116946771561594087583474637816491961025364891210466083379290965198987410654732343322743164140888538073810380059926784436863272001020470874760008868605500119856978475893508495187452887314593964380087049449481264616138241246682751451242672395182338288518957681666081783964664868901331606737094525030242713055714258746788970062217852878399899761622213664080374614625263390664056883279858842964264943034169779631563943988567398741034100223878348578530256548903843027196054824099606838513795073385334734658882021103498837949251984420670400143657295590435536670000671126571673647680565900762785411223863413589628393990289219658537281092702110839770754404747299670293785333337798176524856718834060958857623752416255157940651836757640502532790291089789362008608239219785231727494526407068006432935551835539797111505883255041156009277821163733206228715249306246269479751458241161033704563843400521604408405357757202772684932527072231266302923315753576437981699427142629746050300307197113484240551013583760315927400136911723697769512577211988462362589024806600650524811851709519985348201140597183421740892266241700293627376200393830183358330920006752447599261001555400640912734246570802859334322362685791735153485827417281721691654096455271091074747651859522346966828058083778736383464651221650204499821841289338373960958125727875773884437486803680477765339362913511531889470218116779951445615062882194436235589522674711258305293259086728304305454556494915772092607060603878387038119011338187836886657804043990393391172309665869793944362851774285277050706260921471609707425008041737041546362034862297376416736583732080498021226830880016263022030130156746063751795456564553363282544054062351892860795177065155576208388572600342701443203991759351829025844404501599559506710566466329656310616976149958132409046905355617047427841016186123227281669769454819834050579259174627686827007708572563672353058263827457426261980041251010432612791191970955352030783783700551328666880004696863706498874135801487089097785352497112221235190813679063831771053208852737732427258502670600738632440257957015207974991692474413661957151229454966108976481145156569181341507028268685248695838753893952179053778852876749297995053525307831022752562790633513168407407133561183235147254872239399128905728434363627459580385394897702544659684054231741022692215847705271349339349764536536548473439034385083052782990308735546885131674216530698398670558007660257416508627724257370738402352838571766708430336579994209391089298806088238178357147088990236423898476529650496750812429739732072924697564926720050259500515824638063584628780759362408987911020280554749479790388359765375238559086518178436030925304380149614403900131618028665362970539076721749292639422681717735685729396071945019375321838244385077766095805431801361164692444774217748655949601192491460755399471356666702782206508572734499631641209312854213470132376540820677114020233476719170676109173302871568675069607129458700018843427723290494030664489118122047668885703604782716012054495945437458753244653325764911909091393771084827437102107610916038429299125015039679744604667100986524332656562772887972737851153096827877903029288263085996622327881483830254064077211906144509862198899393471855813492990451900674317357684709170079433727642714567463037044845067312642722108330298666927028836199566339859941352454736278312936346604638417738025142292194835124201485442753263883989780381382460812915581721583944190570453545412036553941733400756608932432053459185100366421358913548842657030113879304611666130253196853620752948802816964630468732510809413985645567808589853353080768555319600874225373045994730125059592303303036367418467394141665480036676070961160929366522872845223932513718602165845651072315318892709624305826569495289277790932902049108033785324948691897453966255895248236703570042665139745647226234822433806497483148965789175336327501627817836693475902411054762416884334090535446281094100311158080465394002834480833888390478115450456783310121364455234889181132841330130899114309204232789937739305690357599196757129994357025869478662449715840504260831148480612796663555286230197327097062366515228727988085295541920125967445272326868571268553369869123767980645011158466110514233404996682941208085137778769062484666234692790203198667015748483326715169761086883821033495783432713434684571507063168818290511895324270086776090740691885292752218057682569576050271983341056703179108518913623353693275877406209962914116698064630967895196770854102693523984672801926836015785721745362545689053973289480406193939835827965182105496068939579576754426677671639827189101976262625361540242223486343867642818980531234678217661573026148938462472825170061207398270602057077345459525432017750252381345302776364732205483550365484279682483640437989542759469118154325099921768666162157001929619408880810253190953678563033022873662854930284678398574397255112723339435861056126236730651322357221916086386917584633409723877151812739081725597244448191950401574076308466126090185230558047955195896988701036372466828204863911582915196469301658002667811828176825846217096358466002094609019505352999696394677264594364146985436751881804798940802896085440279043515189198767298009276312345009786912656656530810242069947187633929636224803637317594021334848983162679453476556272423811138610600568497800018722190974108416939154965038436375785669960539366504505484199441601757504328288293635402463061230726018221233009523933493841243951770355384425746604312751010942105858977159228666507837991834341455448541999710498734818408656100067343727531847128709998895348281018177879293120112895471238476993877227053426821871762667621913034404944756681382215355470382974073834201134345223459831275890648785850804473011621771817639983083263789271827029684529121742421063684920357598567495124245448626888824093049744448916407286394436166826899874847877963640840644785213186582420507513251214314383387899830400207963621544265390740105216357032952621779274659744221282789259747221790979330776511823083060204862919875103322374978291618121001847446503789319061349045992219758839613977140318960878079519979385960604054533373605131759574855671485112919079193198175631276669750502681557675681760760735930252727243713776261842684619721035656056201864995346995607693932475725749641807914185389082692848936279442956091322252790025887424842776313673144675543321710149416384489619248501155069323974903553276239645100080496213606607496257632764221702820111134528194642706444132195382226439301087525231842934576884248201539187937809422912261977353112672554053433543682233291348799762698644787432924633451877379816949264658747428817207643343648696850356258030385030223374987460497828335628460144376198554408579536848715888191317020491434475559291656860607468500824505616898882483358565605441820755527598572943741822352799102981199600521405885623173034137179278667242345316291547504686752491997224510110202666610869716951911238706746167141610615920401080452560735712959074959791896220137653271578227359471137226064545031027069127877076665483539613562061420472701127466218082799643653935229862773780502193497454667698885072923584828157841338370292130752577142734142486432613295836885405283822206671646998377177974858138820516644199213508910057910173173693958946252754149794688957541665854065688818869574655689473934555994922113948881651129736702144314122652266638367872478927482516259275258741157209789545335016537044277424067265162393222691693564042656184275466682283306568655061839507321968426035586094442282283023634903262771882739930211035186872144765975436454163837445783763642403303365976869478738329169890707081623850389596161532145167134490576058478467775941769055662597656583353139205891753364606117321766133519459140041245788014132898202841131986497439848899894879249672470836382982921695937885847204720302735789743677662152720257193128153533118885039321293101891428124827504576874635903311011663621100977698157245446498760480014240055513606558392432616900108447581064375551362208452875226640659179131641095667137879080804701706888370105168714280385540136067905844392008465916925157502789167155399059653398288855276474512662847481157375745118436410157448361362052123328071511814566565669010747219159015964793633596447349016290397848067016740846341618618412277268440611058128425678529891943185568307770544322649854040855447423868018975012827697685813624809635849154009690559265305697095301895005254890938294021392783211038967761570835172229442505303763368035522514460604466847631862300701108930668597040074085807120180992853647205230101304683377040497084893893435423488134987510587955291030232758410374070031693459283258008302976287394702537878601689929878900477266971948784302380387174517488816956185353317371173528391641980527460222516352106017591204900631553122160532552988944139516494788817306175606092338899293343227234339929860072588599821961303663468120114954064446652554742432792709921493725802235120266372404778815238450536317855641894122823397028300374891831595378588577806221665629846206600107797237222680823882772906323720218142827175073520900580059945911409750401336814434815742431932224680305779792032983814709804520800648533264254433527017045403828628637534538787366744605492774636280878100601734720614980856375712782652895703056779084994295221792183591528083363006791529716805663735830528484685826953172001539444845585241299263801145083381923952542573838564432502172332331460344813031598504081588221143531081421522270073957082287029664911521612382420100477593763800215717317695209822469562694332846109424338790660221224426249409769388101937309964239235608262587418871367183313855610170185696184727243069288761498888273665185125946070174547392088670506791148431094267749189903203672784734518196331952903802941279579471678795916303537974698973187290422072959431760788430075678726660382375539657950793102813446358779896905302668716111152610318503082465076418424636755664078919178026195601999602316199579467961953818137935105260804879224283623139273349057334416054547695440844773164509651612957405280273330163499270736218463256733771427792279352068153712188301731826715359073500580594397453432834129683758491193965102875894060728525628181567084911672017196199138725261278213324947103528307744223465805756145739797223146177270033484718686147695628276155395313351369612311196113730654961349709591409686839209657588049068989034400438472614635075897991552785130625047856944607394399582014576785035451866381896808216494211574391587027565905293279112638547585143071278863263072625062274914226428410353862762281101154931526225946857594177687601151062960269803067016754793697490341637681539545966945756426398528031611390450999788044829383868209261655134661812274968649563388944337317856624809748887303321251102325696112250612926321045586572003083193393966962614717969598129812247632983658077587133493832532296621346528766698232679690229971714320512675194108849942266856578053335302055984205697725695828465698334200999637301300443477084053153181760753771580316717404440850919343307563160045732700936701466431059945039917293364112164409242252392742999994750105944808488150297604825396456496632787329260563439373368004572516389993783375019222813580848563080184381205020347070665170352758794606338957757601270468308704478348251018853563527798387498054686930019874911673012910816039617438756604992822134623488735649493125432143761696471154243778681150314279925264975244638133895036563502728299456662311752689838961126631485196223989672809834908032139432250200146699543654585455087159882961723438458935721142359970103518994739770887126120151293399485839546921554890478108711792277560788755035366150116033955896073026175999547334967513694207021746197008107129454406266891242783120883412384108393854532077253074504010408322945892277981558724530617693733043557975572141053408477678071295899869266784001996117598173930942385925334137506285286483615257846556206216744359795821489518486926184327473304345258976883420757972417961969206635288046401733745255071494735839664729273290012439200581752752395920762831557838434960875019041428429110039653322637942756988779451193784333972569886718057551356610893412771813064268444295728908358713880436561039005339034923002403299318652976043998681813203717917622131480703463201671432096320076631538800554979407385259137482263667870655245799675666884838878685505953365770636680659333649783814078856098604835406102838030810352562070158175725440348768696144769228433480342467007042197658658780192744243488142333209668090111068144895149136751899778898548714662244189996301906327143642919685681203407703465051308581233220842511501117807057457113983437143100124877507460237035282063487585139721477037001629202879452967935963623262031135573347275165928127646439245715454603996366487096262856306190537931031414983700310967525852555561250493974189570285612719781483112963398509888423952504674917130976831008511926081653703519170987939112897078825620311166510455741650577646249046584977506213215951578615508745639196302151064817821882121288311698638359751574036704061232856258111485204889236712687797351397184359590611002148944108941422388114789699179508700129064935353525406058144384356121668059156011268546035238633502996843446546647055908516157184842334325057789128790446904531257675145600062996343046217403545790077925513670081524367529431663736531877646103305302671952365903201182172933148708623049439106400101152877056886735254980755847939503992587261072034910566260135547551033842659724939608985483709582615544291049022169854209298283843566835234874616211219355487904895839091751719890637936663741044274067309533478886651269995264889574720466454992841686945724106276416875886653648925383579098971441263219006638450056548862825637582640203988183871125257248523091767279447884447282455263106567812537027756538250668636310097641759158936351039481647762353686356135719272505436147896419176706550050035303424092180830601568407719809731609735315452570252077700538347911099838826336572101446825612458462248170274889377937757762732381161120556826998664378294581089923978622252908076704091421340674011172632799358029156637449135808327462188310826367876836374318525016585125693692267335866792882663113462018210430004301739902123779323659815754075444667637461855926462285074613998711840466104676882602046804955904103822884293711782161423038353699531216235879321999833414686939458769278634566448885354941278616468213562042263421344917663098782605502264241267171868755802383754963210935824887943438018413101445155022685648579445723654147620622126407423780761894547245718357810778472746141003434430753625206975239277470641465908673607829108247506713580468926613122198825647883249405151534076819153636945967433461463627918361470400779242151892394648660476893819781410293426971960025460605979708614937825694963450995328514650771125738435258477205515133899296723513866527445942335299292795104333050607282715511598532140681299110318762334972030572673045646496975313912225433177012122165203116245887038877012410462177759601383872809852229676366348748550571816331306850777508389097390733576783092839595345216613165435142887648997510388862870661908035660800996290607139391688687057778701263587568615220800188630401891740488757777011599450217858102973598599250370620772542167254486665732222545376917119045570526150072612454184282626323097156173930966006283950588925144615871520070637382351365594145104102994845876309370724543454887011231696185275567318740511109389902512830196722013921050630557102261492240635222027138961823418662304381790936914854057191729304220976803900989988455236563556733026704440729470858543653501244478711164188066040248185023078373818471049672929957679268376760335954012166573858869861860219242804788998183414897974686614345049547605780424951349039999304140129481134389949961513242150299593893403600768566349233556714677887388327846623310549593696305932749377383422552685622798859508773295519099336849968480171885424694579346251635192950376762554320553114147481111651495579451495736286679550496075886492942884847823967373588438705982703648347893612537594020620676455335910999575007137753122879672329549300128837465830185010790813501621874058275503860176262914639834676152832028236958166638033860972843455296889127703284332406409314864654462968024724638557754764270833538207341522044729497374031901425295258864034697166426234746299375480062458195873945092161570979013510775667286610917910070809885293725800877247371678587463252459527412680841583637704686727793732160007411129382700498670737724569826118834522232759014790516215211686664708360814834023868818167994177953222468018239114994155537224179261853597442655054813916319645272333458283690734915828942691112534578224998190169353716830598038997025920114182439830506147633996980805317003686527574193088141069168888228676354710456604143751139976674763714454640987657821024735939030045577532798802591484872971991991838558985430975735520791877714933587435956034177086628790178205101195343440489723810288846586649956815731690059298440521711292635025648441455202132385124319831645807946475415911159658539822538894829401037074775972886470839821312363645653629227584839665856274754007362749745109191026058567090786075417656841550753755670123266250108106341981429898006138743283179120074162084352538342289605994554107236548163665893192128531106011044210814761265467061227803415216201258073143111536041123816808767975898461528001537622256588470215359536248947096480317302886953246704349214870429331414889664306871884918088774332278782614206298870629136573896029044772108765327364603487820825383683915251041057458321720938243503677603927502937147125267350283139115459137124474720929259911336642032437686716677557933123251286385126116203097049027744328766036449629070476488610971703382167019001409847548193683262881704825302746559124013716292587394420908011678873128989308222753862451622589608398603107364592528901258404947620433564545025957862837802836917377474434587119156627478027988902733363939767964069370660612873091424399391461166823909394274356617733607258172509918011361646359582035722458549552564718470956354249704597753010028598353952090794771348774587253632440987531425938291748332096480761682112163069920813968152836557505579564904387717199316393904274674677439650881793654968434886240120222759653667516397902245580860229694445492856964438115070590957794556584414897973684948062559544210162698701051167057492656250117959655063577685875729952629407262177106739481817288008908844950029780119455399682213333718237293980348908125942564692306123235274014846581136365301064299434554169214607349206981030348994028988580076740399856591357996147506866541822747685947497043556049707260062646361477290948058043448034587600109346475557147694916864691622406646783008383890140703229952405843351385516081870108628902441707416428492347216698278281356574276299551289329916256524574905138792457306991390015879294615227074225449764480211559029988565291130850048592472140294548503453386965415392382796673446292958512764551680936557179567673362648375005298224510187208002519051048491432408802871720747800886078332978436993741807767709388537119256884296994072260457420548748703295055788782388820339770799425127237051278194261112870376104480656521763704426163657059250234926441253109335726207812872773343402912435286213774047472804514455652666383928403097839560200693432721119569438651175765844324051831409481283395680137641030929217453485062451946525158847551446725104668103886742816540646460918629653872945988789304121217989047439241952263809724395545770439101347681094034950725483503911461129537067502187497976921694429517164792988650887688691848945748135596785904597995252497924723832887590990242912060898484003244623614430378549060067838293535097330593697321171944149702202730460288984058935590257410066154408549073894921027162401215190385364576760828970082451260098236005094384931305392833652817163472498569522933923416836510769367901496254972415336094099066093419522668973465289339494584299699343404846736036185652018828891143113552577243580935918191104348089152794972570653342644925815030128259874929726938084931398094768051177659132738964704651984466750422209906286032432457419966579376356308765205921074983423749808994089602696358280370937670684416894605804034510870100313061513960547924337799809185586406008328697096940449988684736094704887860985414049991916451203176107127857043788375520471010842795068870624463962979241761853194660371224214658344773462191935473540064052713146525246297222649322100248751206838539528007087623617509404965438721171004268904757251776988218437013809965821400235838869904557421561009783959253411048544680313748566167626362004699296805048722485963365530761380742864571757606905244999544727525278450473824201068294965522671085281255012577041559797268300804225395034956629789842943147296952769525012234226629908085102934524804225028237407660332185007110698399788153814947097198517736938055183200315896912923017486862576005853362375014063047349469661962341978911429750018370434621652688580898499919762203382207267407075316984203818847218141785912233873148308381099585467851496459893101032969427958179283483000997142690118743534869231386089843371493957105065221246019292429966452585985940562241985302572546598908426857673926790298037981218098458013341255188968887233426733834745090739913184525444030177857798788529022826307923600008765516749390952504524018717672432502126003253600123518087835021955767389862320195260774736206980023493139390669354992134766237109392897329169835905662137728653949422946403117474566342015720791388268091778505358201364653915200571302898354377523018224826748600158470187547163750249687166499348408209703789005216205941109148178248802892964327184059954633458756045462306968979020024673772976778750103576296103378377717696916835904630323012018425389472545241317280759298376885775239818677903086944809724335745739517966745840220712046817413753888841941781098664739828787625812586450427806029255897841184033624588602049095319990653178157569701809230395204654486078740338969374625163569203923128479561509150299882009246239052710120415140505641800567027271360118905572988490822850074927736718997260943088340108738729867766170302427781348181980477756883774622476824948552898917980344431412767355637480734409899387440790494571977508784880868770878465779615360683616519110799909144194211169777983715386141678477506445693640230213095337107144534256139439950831798873802040965195611907820044643752245808355144502319277585263684214388370593981091623325695004909586103216320289086511991627214703654854437166013443050034575996669229710143480568252929215914760025433156902080464436710812981704055821205565944945821981132128828019990919519178235963516022856649617850934280911334198723268677488468891421797343979901303679027027944664712395705142468336584121192524705363065850762832413859688867984206210509093452594573438231597032650756105780792352828476633740519074455628196867127333446222727600905122035264401399241550628785158114751696003660484342248763043144842615268600489872224724371899182421957019840990372107711725849408817423250892034712892084481602875757977423384444442090848771780290703355722195701429790733813692716641342907198939685131117991227360528119121860455984538660491979936471078345108228212846403442461932850950927753633555489555184233836936420074312832659442318166348885044191358383833985156403024648857187849198834977659074562214725461809997227979363097575391804483900035249766474756821167934004679087106801015039082073513603348100062066262069469331571553928987750478038049482784207518097320077787525944508806976456402057956402211517434717616574135077326529487597644940346528298056486375811002764899420893178979906982810293655545846529165571651107177043896282276415989720228443077786786841934467633740626211435887066163378421273879836510333306083346141871836538217999511863584278283042855384329217512833774068656612954774154669009381148835280619704701436908703514044137677954106796775430280554561712389960374209323750025337386535188818104613198259562674493171483850987555172251472900866351559849410334998970445813865908164437882471843293974091711660757462935091465601114892821678657809031609121162481841970868783766303441054478165542824072209631538307710975825954072581901183601058120417490317312264581738627903215364052724657426261748246523190104421386869989489738328803753230310632648159477501118054172987305319854316951886361993726652278004939607483442840920587037609053189950863085409664304363138186620290526783970040490780281510259566593982517934022488549322138998448265042671251027522132104144166349615733198839572003343573051342465918366231702210250025526630769381812373833811820181827768538440428379729023102845803575681633727680414297607551695638496552733941983921643194768592703121471567046724212970130922682669305644255146956597173332397291264227334944314839175769097930365486460184387206135025085058729342917166831766560577692612929089920230825380853840756411837018032475869286114939761813711172066479033477390475593914999930600806444351223417147061423125577670858552072412946300068968255118761026216100551918604180792398955439258023819737550282313301273730950162213117186445176234587350013809922180733475575836185211693974878795055604272205031644557536782974053554647216039708338582647981060389323520926598134773491728011955073060742181406219049554831592862617986105759328977187098650072472231287489151878158484766645357567521568064273077228756640794636446453978230662625872806828975087418697336187752280322052250566046933940923549503954299695412198749340399460679053228140318908507603546636408490809585967427844267170527674714144897795957673989398696267093885754792115797360676053249332162246520414710580717359809683479487910911784402122956202042647469922100899228919923878841479823759408347563879352728229903590578107040782931857232463794243802222569599895822518828281947293188739835602202777317435144261779291735039642566269969004237219468142748342002391523966486214541746399673246579157207345859618801385354532246094553116138984716610020883463193049606374290148112990962495641638994480551076567449693275469600899484219986927211667158226253476654673548289887126286314382497194066454516561887661268088220862870453793407437216555216325090892757427354292342156690117034816424506736751195935693405392060962273175759390104169502756577036775516501743326211250104774335544234626915009948618719797468342933115537499286567028440074188972669246146096167838173090984897977168775393487269619655067776759800115910139526072398451502636357899190045199011766883008943069170268659614025385413646276597750924967080160062745930419725770434168660030538237876713610426158984388168418041687572035419109848860287479514466717772522171326025335666482494974582133700990920816648387892225518249835447484268753824135568224501212773927125378671719122822710713429829547006925686901225827764740665731034088899821412749365933795783859810477133479281708216910216950167258795279963791014843414613709943510782845075251122809246667583240029363995438697863040665686876002209872192960817825147311654058459611530819730116067234123170040106967787280448167970191056995394648854307680060998641009404398434688045553932475559249231875147718936742416171289330568392553728562030604921298351380483224108932283013897400104714454778365960534457914332799568185500194108145465940456139718569051553332421324528544022301921754919626048706552801595142697318023886149228575574292232879628492215584818977814864499245320541857820035488637129552218725188213258091594917527713286304047697026141494174230951762678116956392003779645130417644549639467902472549209938235788550835105054405137138697595440774362687919522794575126393969140436289857937082063239360475885361221105002968196557497959050905460767744546560966089407365690184723561805601225993285432880650250967268442037118975042598649151705285523622950349266893473809365369675875378819477715836155952481814573553448132844857342982608855653633881177349284797109585898716980903156032589465736410939405181223238433536906891149791023992666081372884348416949370992020713017860330508529084934873298178516025363306730417821903015653626306502948843576026492542814257364449190950097369294893426266109028435870091244866844450991258842685496300764456670534360685356770066767889429017836360445569098769651604384521513375185673579002737747421775191635398737747093620555819828390321950044221047458284940314027263109552515832847721588291073877721415568665355928869823946004604755112121542244366088971686257096185696918669082063469141699486448287309285244499614741142054882751093364339939817264661804873562633470961796287185748958855983908044288929123705779079988077280378779501402582134463385750360220090031459318332674189975502499980936367442809309557585155457147155419334781773860570661029377483934209986659659434102961467161977079576405331067091622971022882521512989970678138267510185855847476172339653899440630039519932595274590979896013387165936316047491450552037356642539102236639229526269341083297627343047824995662740603512723223591830769623130077750516674655971455790295022863618524081680022046432380898830489010654177805089709632995739095412214135191395249431441109947870016273954942083896638523952705643684967825055614706425795787155751711121691788023206911084272120035652708928554535697736144604225321870430381383992124736387343817208522617846527655432113024279098740115333901548848581246699560654655254382281786170967577733001783208803002774555335156097622879328150750305664633458225827023745425649190315514563622908591672941128288804151508687629068907754474823501694815783531239828840431135675496170108960034029187277079507512229391422319959121529360480080753875370943115704576592835483876771771656075802492528731691074502142064209823438752748612360821634833040587982305424276795087904568434579778142176401836307282068371143313329574754184171588710239459286026192865990452468230170533598683145216984040757594254890126742787215678060598654804946312297197201929590012697173300880600191411691077064799783060345848601390072473639881251662682666873061116701436204637343970444946297851258780623261064700892102965795285178626563394706723601511450441137468312821684478176987339802280875836096633629337562163215652232931162117046914054418060723207557185155294662175622877661129786707027183815017399935029642886113799110564180767788378994284725357670687594101312154586598933744123429458966230239749773436198956037514988669114002147194672869570888661286058979320892022457866432109354458783981828400166229510885159765786204512625130941765631746957224822481775404813602005341253385888933030679044812460036626585895953244899768673096590458314558898631381893094630864341249973514624530048839372987701394771734166495106382142660942632992441464213195059338232914733417883974662527912131518971468983450480574396954644743700293989811960530567484174041369067661030782961270841339666000081071364103151681080058610808288634802554863410532701568039842982416535486607563863917933339483520621659690244799153046076618126365542152760344744722432987258640780771596221452035526916537925916169342415972022222274594602212411493655235335401680032273053168785028180555028373995202529608474149593505687186728031229450910898954675842466190782710114754060516715035678234953177236582347800600730461821904740975584743971569620228248057132268338791549932515478097327063768371700669677313451405759819008811789991634333810258347841695209286441294278719337808575682566724095770203053814482107912544702423790896232762120870787232762331665817612495145597154320157740354743142938856913364980899378861375247333829333247037596399129590526563389871405077736063693790473239017208318713964930311065516006395129596790523633796292693547319245263096096328692664134794719089380231250052933540991269089062971178356058080270221130048902897962172387247720420518516913148403195048051792194515669009487943836754997097392560280083489013403963586957591110923877528303449108005658694826878556718901107489525119977492925941719221125775231763339706386538818976217159539697838936508682749797187138188637495062001986104313825008847510540999691354628598411537691385266378691458736227485842968876363771007471289449490454837683221505212310478337902689397003929774127122349088436589466996326267138278157699219944588144863241469217759911020879359043130677120298680789303056599141575157275681344951814859732614762453278037490522381264168084597640560918405436415419253155391493095148493826753710025086436407408454344638838989744535155967900706376408238496818519375847554815887920357647410018049605633553405679800297312960151282468086874521073192329324737182423328625859775241397827310768674322144026016348753875254567413385874407061149625027253045834981777838554318848151566117448370350219211042353983720670323533274687590929924263870325686708298438974274398097954744222421958227606216563117760072565905237818650746722154165622707269892212787963005339262561795574402842155362557678584770241884930137611175421524210123134241293611357565655126748108210784911628919677523704604795777752842763217853774036170918670264090996181613683603590467723571278675809444462181708362766810647173387543932765914872075153467242519736293149555256267711284796482500930076227669112240237858695841506628517156818795768453373538857397409879662006096501391334064561407365117056438281558533513031821846333290821453760140595668420755664370171564439506218737480068595548359118102219231958790512387528428610362377205118756915471492609948649258642529151339207596805766287301624536559101051968676399529412564116301719280671092182547770762687500249934749449025354954353710549075479885215042852425482519159624431738298690514615797016849231442035025251827521532698539634576035592085351291890312356076044263851266222481639691398798760830194481354158930970060919453579207233032674960311064997258627252999741606774784810885433049583105003686070612936292664427444324845064335071925157926030979063358590295185241015000061991170211531389595778634799077768642120570211500890958623239020244879810388854029828817847461705134933187862943524071941500591823580716401816017248312867156916777161197028105155167160452067806482285821037600031188672354880883677612075407078742064051608307105729512040023181453037660056875935234917864191055227353510579287772466995977754411092058577002040551979471190935224141646355103109363435086308321080105083446347346351707363732322917665266474170657043094486470414349862423411122038430271849632386358273981384653348685203344549822619528336000600144208140023115967881949268044237870437273797680257462813652501482340161616115628343372668766085506229594784767345353396564223992617169429527745536146555348559459634687948401010808132658584896178442006633652296166296817660017658007599405361285042418315963050930260469982049633046488005462092048691816549783488338755631160019423130094331812787098014295176713142637109160304677251246348437213459655068768852872423139677345711767452678002666543798089950002996370867487133678785093875312970912349014648011428676680951560140071763414186845216736540015794982866376630573902642408216919127437768469176614013272982631977064469719090177808232794737024705740606301724604554697564094486652000561876184470215877184318253155977504759130431336424178080458931249478383808424543376629840777776684272364912859186873649156688008865555386121708113322007049226712446644339108221278917360652599243776033310470010993698773631467573103675250320523277995358615306479863751596474920360552886746390551669678524332987369537632522145906120792616575066469090570998616925095560476789403596487910927916429038882487572444595064586980181808938631775685804361996391526655260543669556774694610063227022626954290999473850660573699178677805940812688687584920027457141225243831856728702897774263635829479688078752279412316292745400662458957321541029442091003456325025503246305923755012059819363494853333180989858301067064044922248358190622907644856759945149705710058969300868392462173802912489263201690076487517196821040875171799024116822803780220515292249143186645772210569305979722040546658375747160940578385667882136664775244089198418974952687374202513801492188712241975264099399857792166359290150741166578266578844488208668642765393613163067202316071979840533942899385780416731882278253663349015656860506554035541043696329717224520146687278255102602081223333798223208210291626916969359767295274184235095312183317157128861921451418882465728026255463852720331158294695193447748827911959282481635239484487853423486159048537306374726930275543396797263377560510513115224683168047865534674397861655793410925903717234287492362130035506393059693509980187759803262868682926379391592790058866169068581554218927743488117475438146993985391797857995331931101559672474842545219285198549694268534843946078316519828693586965081548295354790660113223548402122253879991658641832507302220881815122929909492888150666945621121451782493017969702865193106084641262827041889110699912982464220625832377712498603862058186054714230649377843087394223503251713060168600822945909649303895619943256163800517142537761042780117248263570940230420715329598641792165076911158334422256186529476639274178701980050241494955830239971537759267510923189838369947975665790272906851506673225582192800670868541828216087189232645898704656838220222488789147111394492714866975896832110858763585899933555288395438160457573337017450255089915020005596994599669256105845190825307735732995593079384018571288766858252128745213570528167867996330452178002744262601417734377678788401229682525452359613430527152831241859254586431988909667597730449459125237786543168459598079029904015715000742569683596726062108555521305880965846195082622998821174912164618994135574305300538525758245327574052592569118036389514048631583210728189751284714023006260259240772705358274736117546287694865879111703407064632413138734395387268596043089049577275209967101915543804182085532655274266950342851108628187580963874138409766855320980730708875502460539582688847978314663831180522855708747704343385346945505899152057186270477040920481636065629924685731496415239521331363124451187095113884949201443399714808499257653917614187644034500714359025543684959845696113071044541020998579005221862272001476602251603531583560200052737083880466798128357310427083927617064596069475650235826557047892945288369730193262084220771607557439919236356828768414195831384598028690205869329537934957544883002170038514774810081025177173585727290402750109711683555704258282190288448862375560272240122010109062372584403759494563168980353571222972479240231813942445886558726774018117126850435159727508957612177186927649656744777202370191326046984235402886772102562851757543668158445631378042455338775947901651131057462149043848992520762149037141104999710939051466582191634322354080308300638842121111604699659186295090569456049861207027772142626643908305168472494823600685206128285811598917883570280179065414321112253902281316657079475013199960760192004070917414116118913270782727485099301336915623335304627044354867328612941503254837547436317969546297234299132323388671749673077079307815443033901995897212597370395297661465207027710454253328571781255073855062462650969004890344706616306993131847370041798444910705422483091867874437209549431798914539657441771349546416089027377954527417810723239431012464644294285231585365105555078784009923374012735747455819619736240732412972198123262949774726715868720700978051833884868086681747042842353904174718385579941217967468706038371531327460480541517827960846035246869256421951717343937488919497248939559820694065495576134399874571354897853884599133798731541929795414313798413890865607481399815502269589239840555114067719749636602655676216576769805074781039531551727521445828373742132874320526113736325979674745472508530121099754605342877196258038176682722630563483758880792000276534383960568508259434493432833535566312014822241254131646894669422643693019026318975248326451199118874434015775667742980458579618913665819515991519677473760774830071614448345899382740314229768420286492013134207065394062488643888127295017440436051735270079631298214402467281424458439491123296400955766894456854446825746342224337004081479444406810631037042113953683630335891570396369336437428895217639063297503005634498231601233756767135304969212908560971099458779286941658062232512994394406105611145838121898532554256255081748119594278815795605498515046685254360806509924852018905531733398313514619733900487013249333398490946549871998128563813493578519608758130378033496769123516212363421228619242476582932971719549573363807847081547140536540916443267155970087264723075373608042738184187434016013384261187549683652481108505694223380700858431836160869018400919266972916445316400995163400650302055449877313601241266540814725434612553238439331101773134441595470631805090148660179155497742791908471529076421100267548255674161774312012410750120718368440419909173972933618226433942047070928827564403596930882587585697724461133482440081358416402975751346677264524270992035033662252604283019587266586274861134299631245728688032897144294937610705313239435094039440646529910120509695935658488887003005066620848164259890127803824977691550782673629776603887261895861763270484183179673565256395803181814946285976827854137945499084613444169165735722293805230913076975478094464893634808639178590433214243977064168699341604207109181991018888507061414853649916956614644468085614318925299550501474006624606350580934023945403613402758333017454546664558019709123039985336126588658560782104107621241376930929083642506720759072502687852133055110510298604115417006566518069101033598745885860651357317291124694648344947324243829643196947172660792325379328146811975504152512330940016397032780977104829780293226857457403735656574980045599477377999205001974990476838996963777292985589876576727256702296423265548768680569903480103335154877822995647383369773939861021700602547987156942343568803830104856968641387959469467296695232619482320206497836129833021738351422406171785163181197365304713799122788278905023942513336917566577113895061180031169268348774398579939710772670991921654397195647770718219732852876698415262036562036618821874669413045224441125813868082662561691957616691231034334059355639463524326927672918728941716328546751553834374065266645355842572900311631517119218282137386470378165264587648917161962949394557323473738947947308544849994837477673310217199806716173031420088512043664585103388210131487091888017250284909743736229445208847895445490300041569170686890319385570054333895059244996928543122331545115020894887756560155885689537617184435198958025290211328429393219058865748425396014340943154333673615241474134586725534775623969272602773055376249082802116549241725695017172209919763384067579233345042662823451477767047871319585551438771670779947953638710964495933694738989313737122123278286005890404844270076683669140302619798038581833264720224064776357411975646075325833653154485752103034132377708871715499332456564116754546487240042120566770873901620517683491989388333939381260196629262420459898980775703767900770727321343752332227331762532191320291412613055233334635863437627319603592970987282468807125744540650147210191624884482892023856498759056787840274784985091802326802610549184886944584444331684073002023776524733988105746624095015409191404329193190003963093662356692644216001397279171851701134844952051467442696201869949173023206444466726309567466204407000095667954460426392577884283670681055119734939205177663566275309468310071396263555357894914937495974530193368648338359096723133148686701584791139104150915095183610776578398172292750486393934682446015023209069501612793036714347262861070716517585904039240678407220522108082111828544118299389111207461832183590158476511428842049966892163361063913136215053235137026783201372272733472931113361162049212586285955642907240855231040827167061573310786116363232141353868366070281419865459236248892468269308871579757263528359134136321013068107164848458278498504058810843414837955466222681635326722868918646233036130871800953093186271775209215205883328087838363979982589398998727888294841020377024570613189203050623017237328278461049127008468157592692699925677077022914543581426480978490160800387518210168840963198094220865853913382593228295587076598746410818033245070867328364894554364381591955372304673023158159480732251694885311939442681548719696839210893237334691238353012719238908453909180147177621747726013123759964466106497089904154545926062281537940522095534861802364044964955653096422598598617573951496111213742905071863016537358120473322819395967776329762633861442069897584528898514206953463940933472279283349411160725880633815961058921546699568035540950440183952876438173312960467031955186509583670132512587308567418810399398596441423000172094482129104658068948730835841732711124114003543030522802447262931447807690960862230522372032700225056924393316512985152507792276068525690726814788338520608530532334051751002178854383496276065499364150982711695271734394305766622107053801970788731480107149486709354497092648433939851731246724480431055149550339099260685843828752152291228121914519029902045274702154801829166090267651221565072300217844386140674603035678675091885728025084116223252685248161456273966966705316290216890890164411380683020265531734690207769138216756245477652739833147128249836898119539287024475499747555808493238882760490051593017106257625555451275074173476085158776215426530728350533653690899885160430235211163974676372602583208017769667169387688005160293725742397880813772520552001272238932818746920377396410267057304102130643267983678278300944332387051703192200943208946916425879927415519646115440285795005382600497237182974380454336610433917072553904392666461455782350475310571532143300557185978690494452219824851989652703013023482452219652136466595263497936241806620078641296140139779194341026659591940863667669762571581500227247864671667348685730523509249259937047763041972607141133246602149811310404408140868560294689165246144889271046949290752464980140616060476071906823809190350956127601673875182005626541596937042165881342207572440139268467169046401890926996711981119818468919991345072606232120145444777714406561545049294860013894604303408141967277063383348144383799396932301748728052893008998590341096372452559288721189065199107345829101144453848336101409577673055420641540329864538161698214059289774437819741653867074849477435132798108188572719731587379976172652461093876921773758228705508068969041024260162052253667919544575105253481031684564016939878538072414824350909670883019632724578379057255618916486432463482066478525672600727526338048633178185606738271678073460521363379767863105698742798598904443537248190768217371498941822455953609291233173639698471874665814792121676747659606117034711604509060172194644992567513070999968762210032501507828998488979565043068354448279784856006399240838170257013974739112172085556772595683433872928312710110815458603832723825304021317110026330746569188212060972357269314830173454538123527030225590321156760100149779419968560461955731388701970118581640809633721560693140942447673425930024675652454600462062230667728754260667997598016826544784894897900280370376308031834409406359723931676293257054332256860455173749341614361752954748263994492884992941036456125475576722320169881716042590921102307519234180673220459420457820314839329484440213392900892902866208401797664935381324740891252866576994572566601284644007624914063354208807828567340554133364761770119629814963142626228391197863914021636137602043987657170385737548986972333428234460286730813813560122908230326517819413093247894102830649216151465610574488348141227554126834147227716196498447692459345603949091046262195719440959319959919100778676821512541258839073229669930404030604245562049460706533788057270023341211742668240176093424326319084738208466132872561940958391293609283887395304908147893636434968479278560007144064940640446688937980490702820409543401557350534982430791212025315712058760364737537175066938069282992984289556817708218806748771632923226474702835638700780950443356852425045254117173641854890525407809424921042042855133744097974489660450812822501464561596063814044351394645253896013264197870155796810669697959112719316968496241285898466671009908008807573699206474051476973638373532441449513724289860307506462609297663768962308998569770444188723358530173143980698158095234692810372855715561062696717278430579864782605145087710647170265337901302672656328851423346766085906873795395484946048728457865751417204523726628311387049728664289050248450551620755445518718025753577972060033543092973133150499222037378042617815947718440960370073359727706832141454942127352132686811722914467978434273753671697023672509238203978920805422079783903817238050350264641556235967914643450028691384891484479413734026393157132800922847404708688257130669260996810837536719702953517042862193417907270211021299520495086397359803253737542479569447349424998404279192427422454477161437404929188254302662364391788574943468609438314452394164801804382657093444250914060233845916003461483642460812290082348402417037198295995691055081172900799319181939986596284903518094961800481854022917401803478436482298896041918477640716040831519996343380007423675150236692446872069624368619300004099973271691605796574397183069952352763475116567524049561911945942353513156683093722935735142799334130395705114447965031889964096981262354883362946924936284618338278953821294169442862008555006077470631606043732870522783242665188965536499015469496775463128448462084297222577841697641606329691818721432344329778598277417346387399968971965982678361022831841474653027579220266295180099363825164223235321110991537119519558764345752705946289163212026966469672849967662044221903740674444685421627720509799480227643994533653610431267161450338347591380792655269666095022455103881588922748789100678794930414061993969244136478510974022186559032644470081162939144536583434768783538791158274329667876652844261226737749466598769480148852461631010077702579454864792314361583611307216609586113257699187044805401539984428445006838369284412535447446039789018113449389958232455779054119308072951934491444344798017131466573160157958310621130343280140751469489632669674971277089745274360327173821737370043027845773493214889178535743282778354656387295393231512632349513358968199245516543627747783887121562860120788402346771274972006649340289336587709182295466748973862833380829623086299648086766584114664827365876907467314702668564871622359178764808476478175721162543470348599230688217855197619272278952180653964780399987771790796824015107204146343929868145902806947450127933950210541821287037600251080551226953225495981078720274011567529942962436238890362321939798981015687712596989132340389188964695518153829456499858609781819588073392246138688816566851249674320505431986123548926591696695570671391992485129356209507379214551384851977408015254989078078465457583659661507028650406580182447939421080596160714482757281397623776799743652601098545535677315911979952227099237511541900697860418025916337071570295513504277087864487893234998765992579554540711632809051557676974040344403660902591000220575049123001524324568224036978955390592831271192424533411185380377528413432673613330469698136267550288215220771730802341894775781680706762926430385892481991261711883969856321930188121816375712559947481468295416890212349263485535835790773722048272398701641968199476731452173283754748724143819872078231484307171229594806989747901046771980271491345173240806523730867551705317633993279300237340657929335149463810155878620848013064967856285602957124680662721686327640323873448411264275555006650514188603607685035747968107388558963098534045787525781380419218461942016670771735802604919469095466525799202193528930026019984852258236907354445497832868347258850864557019603544943535655200428796289561513978211147583432764753317469364090812452358398552178572422326011666788055821117928332442218539939367731350725497720205817693030657903736298444589433733063134556656123493018553211489846485307268391788611196987243290985655377911512930333406352520880610198500793680782355208393426134904737798087542290447825691480712045846827982953905846017073603534962352898612671009805093430190488946089263889259457129837406480992975537485543351546366794429917147129960260783770781528496487933774478247992488335185825699008904116127909007923616602836956247677618013854230635209420287794474311296391377267071969597462728586502938654880026302522130388976606381060094435252191738876114669423999183388308801954471333558225479523463128724656923150776834825622486759487298320727985810985502039663158723558435506232728114811326061488200506249422332378078927837684058849391070891400385074836962699034079068822783218179134255072818179177325413634977526920252277094852379441919498368202104572863639993876573698058203910883965814819154498652080122904254206375937750299842862568417978519087728936152710881494277414331833632222479049052494742555358842412109673786814106709765898909792644226675543220285232432836404051440156549197469497994694903231433848620567999825862435465767413397447218004447679347784690954106352157692076910673499506091558863229578955514459182577665864627301311815770063183654814367303129534782309424378946641530092911317959454218930398959912883443298125330614934560998950127423241207574276277026767663208386596588401783651959633434359015758994266409310110786951317166030197625812781940824073514911232124504626527372441675275670989931252866690884052354459788996270592410299246273750841665695529878284234684783921954790222083930772395749801265672193141278408382569866939959160364167053197555959365127328227704871057831167799188329684661347486765141985249317933696398926835576118590829019091466773356449774580751244943300205618130404844429262386378541053786424357239481145542779469971764157906446878120663408308355832981402146002487896590888027864546844684110886993177107167660577643340082455302115177875963589990651032212298561998909517387090608302211698344716071732223560766415913682850097398845124223403196778786090653906670702142487495240722831249365079880294715684915752283386957720405946691935507268055308902372709474437997505031351870843606072034863875230003975911690147387729121282588708385998263075332315447632677190507011922401515639221277435785406245861465242102470141092987976787063348512854534274191839699424912052493366565904729354875119139298798415448810117103356595493079145575734610070370065287531301865089016865418100789830620936460218669571916457063419204189032023003566963607888060575073158086774476857373114769326654546751467976523547363923903177449953971045467031358831592732301821898680748545443895940872141723884893029202783625760250648874996011289315982139207053792745945178576265806147728133072112761195891928382794973865702203656491712159159404038244233295914366028044853449317032007126116566908211858986600967267934235227726720101639097655898007751242075458620359713431356038956679478345458933116588428686833525666150359446752744084327551656598312679695869337682691916959570183056840059188042444397789192492058078123490089835921975361988275866196009945425146224103183705081466300362776230752943868393450137088187669285168391791888986834496753993864895208869382453491087794428408848769252665112643841890605332270911371850516456788422421992136002985174456551712451425490545890366503054681017139279245103478507495461248672326635167899390510753416497548184601388434621979910787313632424451973313926503977917351862463001811487075865850297321860551055325259926415419491558783748186849617199663520348176544556988271271990647109867336073003400855997069967490220882862543598583939650011484897413107922812308484377144285571441199937165032199864951028132453542777890446920463181068153364697392474501023834586637903753750051350354290540579037199290913959514614464399990687062405068784892482431160617417108193475715269699007698027856471551859341183334217964705840260488197412169506295291621467709109085041607979323688098121053687896567781002888264358843198767100222419860908090853831403630237650344280773313518845340542331532414428135514505585490298647816660242994363588511867625856803275828883462397647733886115305479212026048759491757661744718751734484994498305939196451960165177871824445005272260288402329641491115385884472553013456928481792878280899247865379464849332996913152313075619565158257848101055299434742377464976173759243445595147436874626450916126208929783188431713391800060536312908165259414656521115428581683887814737170429914007777089624430346821888503239049942627928117235567695213719549886968614024756268381653428774592727799551229966558150524031850419703999090911576353750235198567687616176823665601815022030720829390273603350401105269888122538625730091565908786232424515677408860235015865742054114612872933935944869162718554169157335352955733015627566113844836733055565312947949836533254875442528911305616106212275709618008623376081149766928987527160257012900177653374785257465834738391717376415315167571072113085702397001424393885312894822897896536353395254686772201965749257383214344123114969411796498086996359206942048995803787026558290406568909106584962770979203121081912221552419355083075724301552210858957540800387396655232863245781253395341255687229050502207855990634012961920980920603259517190661301211877142406526109606276835039134461281093204858272486225889805943351240249923293502594840328619170882029458411632807754118251402693588253794698358636621420455257821385830519167909009305743878696352870261178569142118421919191867254150564122781307791491513319434108833239225503755690282111145939080988041623003954171992376397931977813248298198804794355493260072535483002460404919803790676776861402933963970577299102776139941880252094850351989329953786241766849454225024135802217621616346047278676931020361552336794950356709710730950238683648087623869039770586248280720013502992610417460089790927482607696761385104562615119344369816284955452280418503265497753114693558454728317145088569079605836174068268326382099774618304192463428565842022197465071627745159913538503418285267635133246072387074481138531484987029921690235118076625432989739797612899943081647625044346463263336196744830560796690904674046417924509515308504895097488646791229629865771102147951446760200965503927606232847520321832571383059440010841319027038062420186035713629988327239786819121865951449203854146170205412947305451661851861974128098635820255641645374194996522026124712907591579046497479195470131683531300294483969376041079534896164166717929030506238021925264273543087587651428355464556909579834456534736339309520231229962229403199960739352907103387798059435052762065998218016957381106663760016422656164341546817114735715338026815290398196890978195137807593481998604166547463809180093109046520095023729020038119970221862786946377492599391321206114524636379787540724192069486966519142222868360012467224220383299641250886302740219259555537002968626779972781257031021695209637805766929066697492347493375636743654164988742105311114833097296928217790387878457263321160477175045594043267772426840060885623206471398198662837666108997630507311055067555585513827530769634596664589844405247291448499370166207773848041564954003542543191831081274152703236770946355677726385013443012599866838083446424276109106671562648116903636388863545484932857714715213174647478082045762424604897722100172283234188406806979402230193298519803338311204083919131895572839793798742820767688469730005018451103015459380595172183040106273540469966346071705919540287995112140867504231125217588201949240219473019769389350466673197747695718641986565981411053111783832866877519328888259693922883857447687647857864951595883650832809598812090711308801744799235257227159005102765518980127833435501289975217821350384579556639988339214303774751724317015527829469340694875993704806911551198980275570443929125971352991641639392544799964933244985099639157106486356622155408232880041826821591488254706427586590819093616922302584566079264515095207242705599030066397239389804782302509950636561009397028761575476440449817506520904740973499149288593574927016717699877583485366205477322154569611355214920569420992045941551803672395237974504455067157494011983954579405468240099436611126033355718674096744001472116185339711104209700089156436715684033938522134092360721192298695351610213720847687837163230020303605506033309233481993281547498817710535953729862054747637313266851337023121775974543866244740507633565558353792863269130971146546709298955728260666114244864848601544668422184373743533115617303969628670755028744278083470223491360664031004372836372790328300820227621262513715488288137940669977484097878906244241330970932665973866406328393942683631173237950298376261885772342732851071413375780083403175118937939681434832778228060054910984602796039602415596946108059787254660679286658605607818473318395422689014905103068379614528808332029551871078396663006574353882308669207545759480323277936334342786818161741229684505223260072862451012737123161364167628006158388771791359627510938904098179885984635920878723386019085206263680482177159929753947972854532403062869049268089163381139909431835551250180376803809067467280986484266649275743141368516325536464592505986889838416765752206620902926797080001494381252426789618364456044417844902584282562658823760045915951434764108416089503048060735681817670213745157453338054303822465275694376898349325549816634191805305579188757924795910752955176927085167875297808178589792172915998038802832113972482955659892820143511662916901513030026808852312011507469873619323809546989315123798947158971265476625352954318630913513456235372474965014406193052158559224047685752231897300493792857383492398456006945599178886660684142315982252067427869799300394410453266101530892977006083984643093072649036225204582333275649878977925477360791542642698102470162281862666528371112646869123967338536222030776355378353562368759075888935212001467007903336837609403386087773032409110943645262447882837039110057031755776401736887463083645630345820389271366113891381249981901097363642994924429273758116420868444764934502965264342889298578349207569912372228583224084065898751148852596346719410316220562228345095796218705985984698885963786243454213173193409470861311548365430335636659348906350299557646978063329667572767686149113522833060179483994674678074072704782687856515146527636953860914906431809825430546496081133059536343551011164897895697338199030213062659511620316167614117178595151252479601989879794002969975418000193291729993153695396525303956866929674806440429533024008166241449088083724463269363746709758964051373390467653461351395988933331492937726969297262169609215276830995322697128258805578742702523752144076070528470970598992823558211668165579591255561337935973934925272461341412741477071813441962894708030111092442198841153776096731623317631506942644423921960803256479442264012235269276741120495521122745441917507004723087559809935923824897424383669240132674166598547685473511351758278220345946198457108187783207292380485915164427540741236207994008584050453079338543684347636553680079303767276815573776434079928729079908002866342779592581883259418492946960152509597542930368708725741813969177503430861581742633061025427120715237277410789052544994699634512585227938438881433990890495186065513831863651298009722822461968803150939493749614875653387718558392215905510761351548020296968911784037755145937841465143094269991703835576194495480431421413940132913530784817835551616612258829714343369689572117125444975724002505067928789078841406352085506569728982330939143395038196906435969936983753339642061105608797121114868393350154778889046957232963756791040290340117967739922580906689869834045429066011280805390885590645155930520309976845978431274298905191489697271370477465920125089919441773462021999346672477971183242193510389388219671287168572753163172552140006374177502863239303198379295376312923144879798837177629700236641429841870647681144301898966057072066503825031985056249878871817124454766707338575390135917331820232850092878281812387895042327706423609439266445926775550863630400399677926696968617856910180964891571842310242124202144765406848194282295949904261828410828179883546689962183342480444367639373432138147067616572851409738704227012114288946797982157266247043071763119126692573929390023692850015005728358566345781514727646005909709999473547387330973430526932881344744424878453383820368801788438308849446085175364344003657737458229353245872803483770602157104052678965678538614378155884550380098548691491368420171336280165517589720191947226567844043875058721761429562959728687893340532134792530213529733861418997485264860613303460218237225079511819174819385998331438146213915458980661961772756535937004861314358830631911608014690910127204869705860457765975977160409292959475161763630117119861223048718340078266970195069476122822814058989769534003087741613068690164043417978962838610612963903872258389417035379717255883512755156314608281100377446944747556655537407844218977618013817760713011384567645912106781836736463623951519100210176623795162964783350544293379244637034365989469375859063649549857581146104016934023581455885757451170549868281282419388225025445533158865333600764743038825389941314365650605298512820380466592790332139078522807605750256727275845447215602037845804991527935489993422421702537151874748471440765154623290658887213225541374275937534164862399377174249834943354120183904611813290979281063581870335135211868636627321547902341997780663054566650506216712360577645517683512624907542367135366950385464694508716210641616072423174318571650315122987423849485622922236798677349797757906801049875197397167440628589179111837467884968560110428516253111974228079345954776187822060451813513000284903758444505050175590350463380657382375604518049188597291288018174470755900180756945440534026804642377954800395859961808657314586416354953370798387618092947537549105938236151739049685837790669963957860421610783754689746484525617900355938911792314237455403955902984971951897159391618363312361784343100666768692033494875014996467377486426109181961515548523785094541457156461090816981852852542703676291680828957911956281230892477615976958558069036594276296923635356594170336865383588645397492777514154685353550226406144359226758896004556085372393147541762467004597920362908199630842760822664269968763761064144379948276859602243685311531798953134808370931615515030308292192176678843939506865599242408503450718735245768791317331655139777497399054080420321188464242990882193491031971658263317448468863902918476239519239992776780791276954077729421458767542678110439974138263772471934138790879319757454112777385253066036518648863817547620782236600648615693073799653425638606682794661805935436942554391864339203238055843462418998359577785418619042220663253130799800144881023194097029422983506304725885952807336446933221403132056880608376652991276227131410826947114805500076326524324039870022191568602520037877212051510723728922546971336799627728681594959441192555046413438620133321910043810236400391156210872093104352556873622168000742061331138423298487135725306501073678048707253950757860282298378843829278937253341873734774904213959072929822324251429586252272268744216054676642750073360134469111637338808080706524334556619021052979879840124509735143742642832404168504214741260401427847812725077618420032492789307260345831970589023483281790096723812435176994187126737418368987120597005353882959316103990991805009737570027646887173696176715358629986664228511671003267884769594784478580295378988656023990484349377599403519280853532589019437273808288594419050981637037522653351169738717278309140086820964994509950711890712756124960618762579533886908335872294686483762770937857579246576358330076465153678445912149931134532762610189494126608497715464036623042090155947669036001287471524094195411757410936494665593260403780726518278855049599062807932922129583744146427134454539553300717069827414270843368287611310173868370706155097922041803178209122305467040011725750013249436128816846344919027308036330159679063051333862679033948949942724517276513203357006388442940138757769627853502876997319934314537363769165624980036777743090740886517597837281362255248964609774370817266853906543405161798290665717854176859544078788046844940618664790953040070525214771551591743539328180879508002466714630367142395831363168253466892611055140987725036381626888190840533031956331147049534251110386951101648569636952611287380297532208444857627418154416992657863385785525115682201913062957446367947761110602936569987934139747177090875383551995609376757915918707619571909779363195711254674605773866030220339162964925092552401066095881462041820884100773941320183347145758150487112975241890298437814995860554993743094358343474892132481991366832920710764432051357779659285765146189978708182230965909872540133869488764769902593186420084547967571670948500814336587571076598960514551719178514418962920063828865840962223777880417945357161197793176617036981478060334791352046929880471860231422708246339082948928946521115364608800311057282388091161194625480747870824136549269840135627739765974167749512666795284249962418402030146453260764490104949075729099480187514522473461401887931273707941107716513013819067453781603021426382429346633429618501263951798743293703469562604058815807912912260828869386877021990572568363304310758893400834792405750762509949262652464190772997911133312547350766090745215775381258603901687700725910525332795751593310537024469793637968642617305883977178968714478523465986092661936316544082336444217421947926432605778273733403065798059812942163226968087438166768876991222340056237825111033998374843247059925412788819654139568781472213130470886281353494117352094954211027760834664704895924091638944010041254807817068825140144936600859429108107233225567131991397744094786759690676362324674048158366268970544258993895165979467077437440169008600436919674428906692714052734767063505554136689284980004939923478309440660317987950043351482004132505879630210815722722418979744765569012539563754100549576252453332230048940893536647100862993479789095111325871787890236771437555514592592845971066945136976244188304243926917572293522369204093006939904507512789962378725675587104791459242963236272632522077143577674570304539587310784621525886205758369407330179317308410243182866469260882283894714191463029911823073152263296460849420639544330612835725922540421355641584503166402268860619966514214472763122728529867714637686313525406684505097277270618778516679759959862128866913217444531860628179950514964780373189296359889088398206573370519391793754232541880555529991775724372070717208702639409156635759766966031578772135013522265782953035711084937934777933992682230560479448561200958418088937756068723676815553260210871029287629080132096282282116361493910004492629989395963838228398903650901671320517473034925315276834596319268655719285946199645734772886159735072359105158941418687089300302400292833106216411428100744340412795203055327026418699770757500195517021265344094986592530291557129109901482025234132672697831205524611901901055022971119295605219304827005048632518633961395443552372296033806695648999801717437251493144942989472020036123101521909529333574161011470365828059996008371435720570017208697787771623384718217735017202744932425553941010489730253035325197289163492508020595157509200742041269419518030387538414640604910269217636753348470312875466365690068005827823816600682453567780324843628267256992069431203277438207622958724854810894673975857947499121544260280344956500627023414054225131831898749261983724151682130954658962849135158224914690050323648457264079199491416513793275767141710200598748139079392235082752762540780928892362867678436959230302001803879763698375737229013729550842079114500929081816320725242117014284654122216499304007439173749265176437938303572844000978397596989967963983837569003337665012011820162141406009085056213969212784045764976532211854278898250619442996044759324837406788520394887503179766363084808008813124061971623834545551273786733089861162879987537201590447430906812118063426717747143321799550868153042298114874557047005543802317745970502233734721654538082176929203465483843361550563187269310981555759400220420420401261300301949935031946805352115724205377361782777536358827200250349832867339938324480829526277099922173814319791751077035432579423998873233038314549477232670590994012246534474499479081413701316623090260258011975982190213243887427117220908790066015812427309994357043954534702947128440072223464915031095987234992063084995573650121891124702657256021452972296539025739966857935388572593311123077399628745919412660944248663940787006545706654546352356501167962319337527837458071699419393693054554763566945020751898526233548347571524513967600146271573197565132960110469830044612192120159794001589272963471343889238763446923557903572932297022454556923798295361767202546508418197959980251211256387364023767336231943735647366655378133380861928523634703414671166207445103237373141424651443218181486233998884372643087213362307377629490473749315801514630609262057681674891820799784608815358931049454362986799096762925112149733544154685585680951470407235166738219152760606420656724060241951485056958493031849077330304952316202851870880699247930857507523008224280727176600930405846588130093886096065933544759593189899136966291381554723425002091423871848350558701222232456265389109901425390504903745744391310552123495712767901016888716656902952879463236375062441546327126228095806583628213989646876589886022635631567928611150202024279307510143858347562642333067947437742819433701322906157847066430381671146692228633652372412891843432704039873251516898012328274643022266732490772103488337439099523894331860464078181947109358558412226060667076381984280826612891832547319607725635423609165832338932425121381404546169868428253980675227547116265119708503929834510383742383381082590256214649974794748973909941624315888739310581146883037295287182848195316693700634213179818328824354524941182418516331697755856297007199613013103360310037366473983355575438694752611763956480088199001986403650638171090823902895309805874754444210654238750408776716017661278899268632031907345914626548142873209198242267427062375799996423633677117774453780686190742269284590976007932646236958914243694851781797757103202269155955628611270328648056554460963416639971681319216056730726455131561923630569093677618246140404172671914076820656716048065795400081012980377630860923849006704993332396558550811400823858236805717639227144283206416089228657432235004225670001034050283559328524828315970382856111478311353411575757907846976896390626014020018646441124219900845620484381068389212073346036186959541055124988107746707692979006061913509322776169093826469795120212238192398065969712332290610774747083767433790322977009581869018748613485425422049155973282674983247633863885394328175439751611325010657050063027019833319106491554234573274595079596523195382356703648945279175730795430611599045265964943884667433630954665834101649104720881539894241070805292864674118421671628828565244972215282628850208751404276926205770914470224795159172322642538072482728877968242512224052856724395096406204809924621575890408616867197511822042595374374121606945505344962434494293127111092160118765695546444556495124753711131661728456408019180112512315128680216777122565200024083948489228246136222670116960372623386025111853615943279395658707734486741049879603545864069369415675486318275590774491107516612919732756948005487937758721851187343114850966477862555291027496536826461675568408228776284272917524404908723007396603809964497975259914155775981829773104787422624392422520589765640445425998352968143594036622192447547624797142345760366563992626171648602204813443464729037931804741557702730271903456711484685064208602553194420755778550395137621276539830942857025990551666536110092570609951751493354848471069385673098599001119704833060537019096535855892070591528307687416817825565609462784892058538094328095580200646682522693246580399567480039777794732683081795383101036567491926988662074660611829848935916408713308292447718403967932456437422578249900333211436734653425234456254798232627414089678367660778917318795186128384484037230617791940077136183152751182744081127658462001697043791351120997979047431899391191103719119109251285905191655618873786406480790324229631490331965985329415599677001710998320539078724105812950835902348385182294496874129767818923585924442196789188257793244188422234683315681963185781686176231777336193827016168069226487614340401599474577516546958115270549529552847612798157165746563710098546653870393143735352685512738542625948319303721055677968010779299128242680199753534308044076730409191897451721047531205051084483926630562093817621551072308144228981896521044955839282777340625758861758326348912784593407271288719725970224432170901989732192508087540571648948494537956544231496932300610605369926198700837666138981471541861899000585697636325652747447552495107549508395354959642781081938744122608894516538102072709418782311209961734117259270570867304194816132107108263425071857844858512070382971665126343244995944850655508695976153658572226703084302764958508642185112999626371219563773831760912107884475919707728315239849679452063596870265413621731177384590461695156560827572476221487088933041607581182468307010704667188856779440443736418696524981432521107974645657033808496253787031417261560192830982743159347673743993180364457735863590184965552351448342348411736604154139812113860214005379180498220086871371790308226439606694917507189437042488008814407148392278314279969677573700569117974002843891635445561788880380051582462779134569507978520754083633128669389410108326403152454851029268926799399459457314891668500639600964930915974350263773731451233190963560038522049001080758817198699590323060392657401049612897486920440122386692163180436411257892227589877833625869431584868872857220410028762521162714673009010855774059253025216129797513247536515668107925514838752569765389699803838032729115502178193665460550122617598472254072257401514856381682175776700409047139437052119466138413994757160626701404164125075211626350071882943996431492444967317115543937684886845160963372103741129856812746679327011228827678459418847093109290888197920689597784096593859661026210152929962451473247618943903536331967808325941930083134387041136789821827681034892022029143679325717523362098833321713500273587280250044841369493069198553507964336817109473907665647020508234344310886962061372950800178921567757520797362205952236723291721427365753778491957617391839469584619513051883308345004927926857660401886592470274303364842485976430941835034541006915082431875409860802985621165677612166619002923058777821397621314896244190136176061674924794677280733873434682648286371784742919057392066863782013315247759936190817653901358831690994206554171987752798849887437246048911780426595984440667749875815213620837021388265546039240297925708279334986106584477481975085386222991167245361630238816064282129728490711114712754326695009668540198484147758574471429838030338300017003834240888464193532976495902805527995460876662400780446415274444312003689528449508926432369707579038504524624507068219198326238764587708645430805164640920137801493654352805306150993339566205499075366803921340334764458438717851377590808593317460325518724957871632524263255224831684037261874014360475285213748631520643237666148668071859561592929256130679855208881391806366419238497152776956746394291070219985041012886679954688880769995885852026470728076615286557451332985697312328158952142664656343627934603950409311762971614861821126769467995558552070992288924850335121938058566834073864481468441334806438976318475590373013022065311399411414611985731994677469303480681440879366542125636455807488558950661176730748262619485251814236472948892525872380358086908374964236335279521183698142079673396894316740590968287638243698703702150854241092544489351525038921657159860695451038564858532199177011362826661588345790981451826051533860038334566242785399662800619737502501314019820614983368090131721415926756780800001695782028999363114286303433978963228591808944147396508096205805697861459951608120405758285730643478937519761317054722494205999959190006432531449369323381951820011854407735781285631944922969471271377318826683519052004696702347817339808627321530637719716292110830499622969084421594005877170358609581294235071146475689135028413561739030086701304160160710822307662416297596599261340773334445484557289063699560738060255643643652829277393565891590273180211444593803936500629683935294519360758501370516358621001786527615757939111877607342812052820514222772321630782581376347555631359087476681584545978836017046810813163834635459988545046861306147536175892676258828935511649102488535582950559333568556439182426748226274413297640850909605469603140686991866434367563791022099942285630768725346838316665437696698030734661826231681347095590625188259844738288242983542826229725221656963278404694761510886580388419749397742905328794309143055470973989605283780548904956987436356145608716553572181502977132406881325400490908962856465204832335502501809847631071346400750914056524699585095845296198641025185770087417028821499950133617239314416303022146418424977059561426559620015288662401918421066506054120870901857403336171004181555822241987328385500038463033892724346946791475426380900799876725251458503192125054730479079112383640869690305649342379959206149942237681870223793825249510506933317362661849746532090695831139749379823305897163294778136886892955049093815107908503811297194032333616675031005408028393114294382822748877057140711849561151401964598315250842258509495172738998766942098750846766061622289090348921679721598292628381942129059903238007262771599714017872536009108287326754756295504919575690943453173792755454574239123883379072156567511856696862801001589411964247746651699674448895196931027170965943643414652945634266136229063079116231590049896209123333049454166693268152183150733070446784240357099516614039701343174353685353782762334122819524537937280354676630225675627921417079378967745592888735614291285649909373909450577378852298966175091398719988466039548756518713470112252015910824176684413253693059438017860807633694964340409504529977362619921792034335968436550837573164995109105283701113029696356946613100475059711828131659287263558518294855156169653482712718330834782416950052426315380003064341925412879480652476589608496016643685490686539576615486747342583785066661355560229975272561289296001893867215697848260138574975494532726691461530337565651842849264008295792138897355696981712304007241348709114857395147406289399194743794006145567598814006854957249332433747442344237315849966840476025965289388284299031308460279476566227429244890801638152452598243806366756362442436162413799277094026968721860765601402803410326902087497785720223471811698675398307120178363950916850928279417828098201603140976808103974780927299586360288012176988791157398059026806446005870444854330312421593108209935745158422353278747142753566272789374030324404740076034415704011866777070079776270653575275977247930418028730672225862714319571027977686134130613750430086675877673795840111278256644861366458215484033385735756441688787374418597572103220364593869411285614996907685662964958263022166376502226546383971834858409688956878044436337237021360969190246280749958880278924241891853209649834215484593997712747525166775567266739100671511774054277063436637736787643081346230622791562327792143859457157409658822436977904204561964522561685568765324855108608971912407637506843017222470979774242010485683655076109153624861476854534881161473569605019277682430488200618841136447656323637258527711136601985407703138505935151759538371776757748162476111980625446323785857910406556715116612268086132386841364242394837078123592589300255466868351719489219389853212156552138843134643138719279418678102474404737857914880459859941395700207709040778303582615630909679827495005635485839209073542629265310464137437640984334771148315604714543170930590491631645804045305897849655585104353441025895514036586847904687047512822548778040386325097558603944505590973820479223840066743870048625788231296693255881153022657461330556905533233651351163660290415309675331115250622989324707240855183742014867376841259809808796836395565639119556447832918939776515563631040944613509372122475190418806935741571858932938302660608653175997168517243535160715497157149905883567850553846577117750383761140467485755676833859837966028185382348069350897275825824063527133452796905687789732064638247995422525041385572491521003471305332129331150617497928957334209757119099496992736114676322211717548479451092766323410184975365431169793063129375537636231484052922058294366431452032424212876868113123639659069742173932717306197526181084135701742224644150488075957566912825621844006529158426030820498436000191084802490423692091033471378993155578992738212431393974569183056807879866244768306899410356159775839001252251342198526950922746886108692436357282789672429713598020090134790595273692753540907241608190857892451229463607960851732409256488969822879742185091314790080482093387552464958094474991357173047570187331095436238033036527191035464308973109118599406357276807386842249623259939473540863371329352164878061050798954007734523215360828121336983245786762152836846776919313682735604746561391143205259997937692159546606286046871446872860850121700092295693666760414273155358176013275432500399577042911598402474569052995324333937621533846095786179061170581054995857871868301975945250326820871585145117719168593300385388379776831131002752493911322456654871122929310409661114102416632340734997023775107296877114424056853908655776814871404292644471105547098660319143420753824674038403134008867198544487042589318534060002047447050601548673958932939314758915663901708796385460916897302658901166192342064398299421562527446281759852823967868022932779695615433115105687704335794827076304018021373345261507914391849896505622036624977234026819636695600474305749125930135043833941492039490349206609200969350142267744061443782322802822689536416780194940806244155359845178390435736625908500926306103267457755288403423492244915248678358601597423908238866687032511651170570305847746063282841304736275442685854162864137266151894987153908851288468446771995544828123293702570157023617817666290870270959750626526931805357082126070151436813234355900908182160554222819097748519933292140387045169361335438836546539672758029451937572823407636917107915888899461401104860659498711100150565714991473051166333257370486564340083674989213980219005247342934751626647754794230258362800187564747257230552500154222579396251750081716621753752448008224839842283251075508290336532377547580746662396241919713553264788072454950782774682905875738164503943429759065412106186783392186705938467641022547489026652146177793203282923745732755661053062428057795129058502315530001996714880969470399348216048395965693664820297546036096362518379472825845594478514550624765456678013734260037518367995566176616412639283422413766301544344851414681152810117433804741947117268550426323203686481451218239949340202547736119365615654363433731785665020100334105330998969926436004529564149256124294492948745293906611178123339624619734194911154290538589836195186110990258393756027421283076094354279291651857304020219041279008484114148319632549465574757089317013806579203699732550395474624643807794038766538614371401417218393504628586031884343254697697665932070110120172218020080780430751858025188715950893681527486523433824759884577592995247706753269427710832998271905063178231063287281482514821912912018186176293434536371588474690349962148747849074106239137792916492372285700663426850180398968285592824488226963542521565850551257282689417537157350867413976115171310606279533199985557876454739543765261942598918970961543809034920669738557479141383776402776362512959026785700084962387650401971400009039317050830197885238191585375496268524021885866268536233800442464132906213263090442813199600146616383681638380822089456920265001417728465751132883938434969943122258296820661129057276810463618676187272652499586248432956240254819797501920450478768127898910658354396935060609796438121862327081408289427404535751150048546758455127146000243818889686490204661250824112141598757463171521460262778004415891670077787156327106562704285942985631041173946401655692562814965209055973387929839034402443573055588456291435631911660392176010649888182431589822242936675735954820787929846820630991591650412775539249363165575910506693656663481656812148774618088937438507506275116427725781599076318834463146153804167112699061926535945216172760785062719579229318706813122797420469554806145079734327800195991006158473255803475583184455239087708449150384340264750603036731716320173574889240826619133322320630934858447285962231763317960754954246336609639077547876210196120437457148088036081282695797120576590809109662504953720571928942007866839271043791086245469549799282419690051004333477296572170411182469180291951413067978304556017347949732345746189477846652200334590947305812714307340469427576096153262572498744108326733722678123149443207874106219052884452556876295760248730388481853736073889980257168589281355580705584527998493912624150559956197068986182483961694949751441891922263479693656897358184602919412175028085453877005326471457204550957079548713188092382996419216227306247893712942761751607310361736247948334618982321265787362050371768088999154130405374308230490085751227322427349420103087855036867342648211741305720292858745872949737235540817667537291143642405130781390822458400400705389097751902411618173206714546348199934934944380627674189895698792643674968150904270033020712542465394581793252292859448868313072268943126904519791591033936793253238816692393290663346202621500022362179548405819197911367546709099610754019237806796418067606855452932636978108733098463798734114139989467302219262544365286030298626928813310563287104652899844418158799109394811886223444922513360337984815528852474652752301100915906439665921757711301943963920232408106881999047436137932035983147582989132853745970714229337540758054103986418297828797078515994570709332599653915104028092617483693499055971925603704457219130396637688687112321130231721409508488294549100452443256441572517555439572959267606715001584604850949192111999979099487566724169040119622385637237051072246716922001248103992735485701373003461194793455070438467392313066832817682112561929782463100888765355797397897214522365880313695172922856774621385206062969791359691596078909481884395513660301437983075435915847780091543977716877417098948379024448731302168041257779909056692988967726156114214441924278313658541014958521445442149998492689992675968989683429555359188421477949066620667976591674833616087181970717196340512960493107112900539839056143564257144361357457397715384426178110320073468721981430149738569957437697379790071654560238331151187371630114621659770342864361146876346088636103817430874453551601497123678810921164243931105188586496141785133792564618842984568279461796328002805975588457848726618314362920098333805429957349648032518957298186389103442584853015261270603026375226099017039707857329998793303130916335892169143976456276942275003613131652043404593000309639342080946759502267503281273494639178108732873922007845657108700775443885354282438945781201362115808931959928081525886392622902527835477458582207456844064319035541088130163990551226939232552976045266117921443430034516234589016824568772229807789016307213981556824854874277068808705105261210607712344507149310956863140566185374982541450961155757825150821933932247911098386098908216982596277614240789034085575122907624727035361504303207199055372571265158784930950071957249757086586382337726371490100010971284780376594758372189009522491172699069712662201864369268725833484079525959403252967521288237621453391274678427313802929234484874635121502166984088614323670078095480324895470495393909188610248733284425683720476048773207680848160304416919498457474852354988465757267903677088120312692338575716584236928515286963371063365038448777161978790901864949926762936362240458820792062956152516604648516369442206908503545848683007721011247185154672126321582729138301950090978191849501142024256690146361687076333106062078304969028334057099173545513518388178471497346961233264291869403796636345338294416664197485528202929481909544285451370846075018292274302339184252479578476265228619130495468707565392317485236687503836982612940892848680708346753325165725797383777856071172187209743642834032193671223243410072923379541016326536467799324987660534617481388611199500401744385222614165579711847822999999375436491790139168803064043350180920540409342654485841702546163567303964735141174038201934344267986871774299413890327870744127524661541545247132739658501417296346462793800391623806081447837570976951395222789871008056150236271230097765253254179317534918082566985619691570026416692327004025156422785169309679578847895208770393537005027517914922954863983199094160525089460084463221388336718766531842904404664953182710296179396729751497696438266890107113729658501855137997405403765035429359526234685617348913961113640919915767589408273032707671154396572420733736928757645792298397587223703416163514725449359003418058348926966641352683469795740531156464593281694358298021258045217548461914932031673221163471901317067009099430793509245138742362172007513721354731983996705852343088478646541902331040735792558327623450028024283301224624697616437196834340350491815931338179745356634727956703717059230289146686175821528324409289987122936594808866398694024649177140411569947625275387560560463694831853678459601099028799726197171473062562596233867389268559114431043053874303827840758805638697301713174190430515332958123798926665294223229587239130167713861984511572987301913524954745303824485620859203957952568664124706244865767258053730641624177697484459021303143523497560327057021197870741669453056503311943409106725084021765556295427159382585002537229032851535653832725519402037376322734528603196152307988744018837544894286246540134031883740068133554011543328116094909496423893522858919404464047753736804414615132914486124194771362519782189653067821206509310726976211405471143889253030075710874570552874189611319021570528416552648246847536024775388912850240440088601053828052125346821555030194795161267904551063580444877678367082412551355564258971032100037096194781164081756978555282187826613716828547506276688446077603478018203765095123557864846754147639972041485296772816416490847691420639901525564343085823941049867122153559933407430567105240158685968801593375565987501421242156485817833874891232305317225161777152640397643979225529971057349518777264422766216864619221944453439777225586030728882323362043799141994523688768009694665314215297177767088279977764229505222538925760360342930781064636834084554845089585025647749167539619689796931200327231051865421173695195820950338019893651766385351471039098595300765716796728722735053550877590510845259552816130162756126629807678787962236512553900102893044443336773245546862155042841736279889764100561981765871370001582734756724101286476487738571316232924511837250574476377848848511426642221940082539390143132098751783556566688612282146358825552366343946243201835635698739808775683706530151991991282851190368456255545055545507342216298271986104365568420243310256270229705961316931217694803921474702320505521456762291200433108939967508497866431017910275858790294125762830833790620548761207480680056180259566186883183036227339468680520688636163864982070249860451953782935328317509328765965756845151263486716288544800814761958730785349394102881630591429951323845706811460867194190698228517074317524784718145384778622813520935094554242127608642218243802198903139363297628130110124833080098821428698829932638126681640759979143268469089547884204162870342884186361045154497901315581659859577323553687206554071247666293474390103070983887375481028651384121806532045350081900458552579802081917850944190373650228133672341084824319820098467318058864952025091469453402606192646221274575620465518991114664521443297725423199548904343995181482317015015417259139332022834704389756647124622567531102209926573610872250465129891956417951406449486641733782246835969629508860954666559062417784132566663463210704516157125351626973066333819978184691773260266265294885846303794426828170083373418479154103096019074441103922107290152231925278612545872061328221720943024155582113142781670855490273624061480566874001491481485280491520119055443508206088972574727563799216294329799086646636470160722045033100844432496486562803994481732399611466898981657754510367729722087438563197415977819716104372475324196047390683933930541998618018948007795770557488111914892893278005035581559828262498088038579952833857958818456604836314103757457489516962201355029336552743077856100151493641310300162065565925690756897867648724732722442454775071971659157383420794423708140908452096141077357394326331322940227506736072284049825188115254513355102874783980804956818819259858801437212728030420601577340828934660636923678480146840132228153097601584243079115330272131811803096095555395762538407323052213865600164978368128771705847838364146776883909951416929461694372705461072547004531715521637658240027788093774490328151730007611097616795963102959655508721986994252569080504234491834826170750155556269871145457292514538545237130999465316448952132725929637782916913388628720999115545033571144886025177859050446423420092875789462482397000043906606293030339724780007686045609221692024333699446246504710918714052348614970456446263878274310470756360340764486434779938429602524279674755013355522013348391114996096846695401645623553804245577945270950116458915837682211472685423223133292831436889895580006540575037143933822362577899939166391919668801664566419742622498400838939389670903396398067163123845019350745618556017534016498413238881286696856775377747032561690258626330380035391618927109555418461891534636775302411872740220106265988956633371261615894221474992853067970851055258755972066910542963319551489161900557555282487078787391870223351723012130698140582350027648192852388927413008521642482756723268575936743735364859639265884439206337714347477582858015329100657017850691955471581741222599135762749011513668325720437840853947903302992573595374249828038610070859735075287764672772396964001718113134598476908155543155104998095644646678090424200549298316316568911148477547919651634547606499328871187480679671077202448693111165767448005793946635245560237019526144472639985703377309529923052356138499333067058725973831333791824397401233653982725726929888235263442561011925828916432711082580437817320880812870096907871683360159542211573311830758964102609983156519737178866696184909331507370358303638267560457676456534059941288920086842950106162323949222775235300968408074119810128721012141773744680239496291252773714971915621071184486564912237540435510485546132666211428421719537351323247455504980632897429362844568235497878960717280274959950402279979655014544352260448656933560747476126116528564138410905006759009487536297015874041268129729035687486690513154905848899375919352884316957487604728679066899443174279261509454751542526835478196291423908160721339321778145023648811181263402498370995872896085709889945957347371127301160301001841807623778314349496932416890981180830216134907058222838620397364799351978599701474705741210355557854607028859829107736744092228808997972295466880368603641152422297333737116226479768395098210683130399706402534621577440186410505796264392442791677943911627993499354747107343714570191660761990693097947762423720845991519254176423511293482896338829325645085358169041318713743407151060606363779393258223574697551627278009210211264368625628740531559788622959931160418076163631982904060594633962463193640030381845290150906502356253443702588153123866941585034612532550071067763294161348435704145150167699976369149641214437457923660487646325095720329324545266603931656629089624842234842918475382263223988080583189359646875059475659269229261581842538430416543409415295959957261997778012415407951211059410658354350110050368133300821079399443022586067160805410471784361166122285256006770307687602922884219344283728838004918347293780753432108920507645900205107989218883168529814847554533064596123247355756715848455649517496452599358929651031103110720586664512628104053505904933413439882557130857213608098896650352926568817943711985017761095649295339018386021070793732562570923723048879379253597266802854491172033755325073261224736079439258213083739321173401023128549317080175813309815018229249811210341295371503083996600816046470109602642711679675970585330069190998458917748285786144586617494900645512120702679006821900389787569307938509876378597270376010548593635218272486842122946061066755629089586722130629211474027005740674665126296015563845143914478184625599270664414762630586885410555473032212531251378401691782463328024608570089585694194062664238297535379570879934829792235414486169418850203166423040788065480766152793061919488610738547591871168442043666564181025548925914591259113388180153142234685044782862743363359077832840862685181722801568227277495257755767699102320394278951486904389258660638223091776018988521687748645196307647768793601824406200472064320406205444694189658850257558993783625993042859193366444933395610580333129471262111471519456888322425181508186497918500593616196615148309648246879259669583814317557574925877183251298154179322937557143802255450009187430613637753199067129801467289699911085080105047203670919229539383300812092386603532670322981842500920557558586377504057295850157179444483587139195156931169675790033119324749434891125665104598345283539248476085638100175662027631523311837076079016887301558766401758619891434155230215173102048102222197904176717566542279542706768002048957301389250879164428870463111252652516317481054695984170200674796536344284268523959094763613043854935125073241929247061124744415255874826694502875008348622667720097263161194010436600703228683264639156154517838297272338739781274922873006288077654246946251914980307587614883485771648441891172215504931240421305236070568170117168265574970904708025550925796538419691481635979640702580347537284113860238883790256509406764223601829817559353655223524932338384011863878981162455397179430748443857827412584117682481773581329869773215414817097726302778589398537760992500722671733877536751044486505809564385082329271279176190442847634364922515603249152067716744040482083576711950598836641904053346703165523965958634412618998772749501732212484846111203198263397721901750667105017084229669773248750344977070509766428639106822934489487702298379388850079754152712212518937001180057498511221735917663304038037683974038360910579790237662300432613988362710869164688329200898910467754041583681133466241432911909627207782532382953711178784412118434509483417749816561960956841826200019978264320565918731368170494496094770624874632314735839344031489260523679582708062172159060755780650365319621328781097437118067303574807476456020060098379773367803341689314124995350485337726021401408035717318016280282624528536850289090152229264090719224748499048678655315549784237125802876027450297769785299770196904956635567621487921019096006233282913098180377291478701648526199662852286382325475036537577803791217267856461645830377944896119527421253036073308966101367608257944659760928294720133805367588360175640520364125709800152270426806954351126574184876614969956287461513907180980003645167579383391521528419941392819893909381876342189011600123294230974015581637152824297393319705031229589658906337934472787851625917665309036780557100448953026664173522231924698996711935277781409200193481130145432749325152047756615390682533534469395913071850057378134705236260131047205949321449750290702361382909170081307933177733453398222446665529521234553508503865241365106537756015525348331531650878766518935813589597927417385954332826096628160058073188097371450051922260631418466664898958907625669352950742430313869439211798958995835316666223124856702933156085761581816455555383919276340444431003917258871386112685113544587406173584801734011572207276174434094064931204523090913438823976400882450074663840263365162228072810030599444727444290274174236561582111839592639794831329756552865998804751322016369495850371969199032453956165114656033048661879997200085483825738309027487078448859762151996432680399473112972196569184450854963705950886437636631026205984289116643817431186763475524969991904211437238041182702069270915720261923320317473028089140744334687539026865275968316595240712590918711114769867981891539364148499621803809553422971867076189943533895119245256609108127745627424925144268910514833656456453647530257785406387456628547855301092199404999662404619218848343248540836216415825851396841095142735496020535962280211776243236260602927433404227848613719916236862134497563613207965056385614565990351197492849580370503010088089304128433932707680493660963108152311512426931684162582388404176764878695894183743769837258818436701254907382653769924795815270816597633495551912604307413774614802998572781019517811397294753607152589523853149044191495783445949348556128517322916296178181915036592043852369201627736404045380117459111293145150718629424408505892174581057631606439038232214072963225161943013363105868451433203659149862916427572708112676354121277062051398642348808650745032730160056973641220665104137395370412308381994521726309939722935703656394160196231038610157536311034579106212986261578935643280673294419011685863133061090431069743010663728890792987434273949352158672000345313763008495822455898293779827370821575895959137156736904871135532145228518153225293997137314216658848220892851717152572008704568842690211886666281619130890763452000821053131167813610244206397387414166098642110846980488777468226082166757315556977350179243345343627862359512669195624836730913135927722961978719953791921020286670736785461137438420165972521059150451251137208456145397292925011191296140611022734063958996801713794372364600048985940357422971260024217005120987674523347782982188454148351476930480078177735762966202629861755867259338583684644626714416147245563116912091854886970637169824814685287402770608827492560591869918492957180678044733132254104084920592046946842393326448913954569388001342784310465482860500386863420487652864269789445594366097028616672120735423272208990286396999440081492146666803804094312469939666170336133991871586978992659160011899705052462757594480318299174511858004342167042507791526155672471162946295997683422855369068085888327965908996095148817697615069097105691058618311693007696888668567389243819285000501857735512340028170279425685915213243585150776245911201393567620257487788980664485250685149084327229924018685154119142374113365747352965282371607173899288627826328661450563334491217826589203827315837311938873456881410706287460981633747944928958194625049516830437079266065839008939578122738779863143138210478277588622415339192200946194478691146962889328644632892913770375113882564893456823648777499580622437693613916481192030253656625779060836780640180026086574186549613600998116935633887366856686844142862838705412689328753707133184276555033756783193457533811224237286839587614253937405919560651432266706811144915783658178377883374357046505009208917634530360370271019521073553916386582060090688179481034515931612739078749096197146669340870418166858430146585940025488396597136006878883334038747986762985497022787209184148705844698848183674092232688812186100763555482028240307691710061170826919989392522593837180353518646795908047663692673146809302087532091023405329674398655740456653361959512256963179762150782790577435844201240339727533131112232838266512944924396174034627807508418688030744980057164695836946987428516037897060275293797298634239662814108005113339678269122565949132443042795534991427703484162266005314938715578832557886708471959039127330991854677482271645832271024007028306490508564923407154929046795690595115237431024016370753615223943581651851863937132808395706943645959172550691556367173500782766781224033894789563277641536895421851699316276044971562854496877533001740702214522823988291462836182086028066651228869297469080711066746840019852117961123639807662576567048752320328761719441027005446460380397096754316879491015894854851069412167677163882519121599000858700583743837362899228368905979379273987894000267548541350437432867681342909332255580890128895186008454471847866872075865644191744457769134616635900111125599510820433804455358054534094492815606425586288097484708885360083075117748878736319371291680615803562617912669566298852157064710475532372867955604632605358441476945638958839222280749938629373232728351364418812026021734862537633735843530480370388225884048972936297792341749488321779292919509503901843997098580798433493526718668359750153516454469367483556322528460619483567588769276402883496126322069199433299313284700811494506709222925030718440925677780023884647219621295577118452906733345487706541746705558377040243361427089730941584967634010256726824147994996534920965133679997974917195368665810915372577062712867835548954113692824984438572056727514723428658057419126717133519262017245013508524065625828951790829917530640600867842295564680802757262615410330933679025960178914998535996522999550640720266315796966621347669124470461076410012637378232052710807871150249857140066345244760012960955491330557131176633865832690757589663371134439583378873867761935760339875574111207066116470489221466878829679522325860020369234809304359794289934145131247278161174280734998727948496141058117084043071368590235051528962476175784462874153562513602949996217519653874307631847969196259146679288403688823860073256709101543716451836971634008519103146355831235051534261654799378735609987807202392870119043192796642292471846314890311506340093891443407857469627669418669596926786075009008708998702987038783038882261152891628855733122915467320601484763378423984565712898474400816558583945623307584892183476651182692331051348256466762121395365701052684829972365328522819597743405799213141139422012401783234532396294402655181350178640599690580399655972885000219237529960105112456984791028863275660642165420922128387651775340569181550202731356395173292592520641140164764172849103370731010392055759647689985269204112538185140510092912966838777627857614519233162156297505081319698956861475727214112166642213991195436371178217044526491642031407408916893545938595195320066798047835701971334513126144907660103778607852644192056560981044102435884194911909464825324265842258199001326695955063497257733180006131077434238910759149245255240367955198521782610062787044785592692005549613260824085051137340763454521061203582716672897273088366815794411774320123721202948652858100727842369227061713899176124183208447913080122073240148139998192587439026461789103561961904783982541285457969340266350023245630947830165945537573496978817285653858056047192082002793752039706453980993273648911487525305522304012794668435764612566991503098837804432208958128127478146588288998823278849591258052065712519951785138412007295664245786427530651699445423882788197683312456300774475614168524417819941189143264383802226788850222947551877950239537129668549574009740263077231680524941376759294406021658995531473387823181917996399809786519802618215366241453231473670388944334753042950714035850699823207932951510123183422398588756445476727696767004421064425224403707384756771393384827608943785515125968888918820082188129606381569050194423589879876126990793730272690573855693574083312245496601179208341044911405147277125584082513180301220029409316243240984665783730266797098431521032670124225488076347062077620434035263717654434406351906573951152003352633924800766707494687261250306080755775167246536119222593507674116393770469852863971362473444854720153038738231275218341786549890426205452766739102435669159004013555125449354486509409548505558361454457893345607879407862014898596720433027815962878887112230897500830048641982943180999034191607508987047548307890724910941169970228970215000079420715586271630652827683899808821880064769622738108230323648474101146647935985800299130285821184809069120990128272204513398691019494664163999419714357894802345467560346243847425013971740089288370457231835403447388382438524632927862051617408668894253430524899366035264298460168576484726948822051857069078490188745602731668463390435017805230020710107118019502519160883988660695394533243684501335382575128193785321002180520569968669223209010037079404128729670315099421742982298126986275623971795326391077049219318338935786355501023533725899156328284368241940645929422730219331944784726650658947326793501823476187529295149258642685321112806844387742098862372588822723326368085831852868438178257057693623114746661730418182096445857643718401698594030014539189950141248552300638413251455738860462509852866670704379035626814588606366807506462909124024489163857282791407404929389915753870436615288374824678059912827210951431761688637480322575170709453731550588668031377071170953514293323581685979461618474979916616419705249174929795850827443544241081109718854442781634447480427284134842003586496575962858289060452242334271923040312812696745397582968329479307150171589320210003118414603958565353537432690613164938764790412633897661284797849108654403840937260493989460634353111494094537872827722818501595828141975154696971645784161963636682383985754775410291031072868991686943906055918815401303186999175637792169454390043948217495176940413738999926911746518803963023043025351111623705175391386667489019468065343113483587683753003425119545883489567496806835857033884898474903182400821213752824124831513835788658342330214481385479214828567648475901311958959383319788735195679169474904961744524070847876136679176181245662581721888389596372100499203363613337733256400706551632682458057441010026484107267840589040710040927615725647119988340378222661079254831874352370810158947933347655857777902831571853870978030365602620540556791480387886864665547575999169530662575879929750117759741257516900228395798652576394788382697982276701638498974703959642513672708541879578203174344658883239337548846206997894384654851401815553130634190554986784624895175758425589482680802165128395561953414502824079622768688839515304433014865049168362188761332881163993041388239887257692567034552376651316561117501799096608313617902888234215196093769914592216365702482050585216135583278003784829489814008864177305403891366183028546295700881318831338183937211720668750269718063096958451191063176564743650060878268233802992218952260650259658884414964660894730097531319998504868432541704529918917310704339020241120277135215989246083272996558667621088125540049802632782842872334599078599624352347388996033980460381983429138189152532611404867809046942691619243631189859928169727613503777625784251218484422768507852998461587383976999098724134964288855418043563117960811633359752229955791988464100865469537989295129412359788051652918158816049649310836022364024304772222540147070517625951059547342353789517724607724829185546205401330258472949965063661352770662846806857843833923214158404433324229385409038401418051968835017457011518105364496363647527584320158110865357254211925206094836297872036067978058050335851593331663297499777771882321586407269405937730110635989739905043305262726764404909274868803215002114904706658542719851004148024463360592544154849018526039522845179346190592238348592357159645777898985154721942580946093830696665532932614295825576004847654909390436623628616948023705914342144863967680816811904415036280624665193369447146746783589442100823809070915548721594140881618220571911645638807183472043154728893014198509217652373568122912664091869100604636452721964870830075527216092561762251139482880997569995854113672709923019481355109910845968588378417396718773598315924301876614617427139935968432790652721844334788306833844586671631596075869777699373692125248762674727815623393461502201068244681221270238727956433903455622333577516470006870398577949395253912169919129617724263441199080017493686502255356436874047564302611370339910501146596191020975658186351506919501553722622604652131006104072595181314048425464002487270173253329711723467939146540111194005620013278295839015271201481638562089487416252385313791588848134434039216806021880001742935720867086138297115148202050477040370497962635748778131165474981759579074936452147322044261067335618595273553983979337975602298871843111018187033661781059652088505503162341216132984509333949527414397761370109683754955028840323755543064814492691940272247776716296197676830112526966484959626181981395218562200595313848234891449211930801207155552800996569915236067115124479823938222583349113539787069609467131895443898385271859610276951031055983521125071281360384477285571506948812748938691633343460104837776713828089929460311248415802557564428374021585433945469536337514957093854717605790072467477447274318931165415185893005555237951746805855086024274715636628200017547273884773307442516619476528466934258598393481481175549140706977684309116342806260562082138441008589846059258034327128473460308104006736342275690298580781110964169004510503879907462885581974207558998469550300562009698481924333364099905510387509336681296199126028333882134254321611668932116349795034580618586125516073082420069633335890122195400063377176369770573025166242611184708562144746234967980923176494970842091500347258182331574937279188486737726739585210617544250744554505817554272598481448745932590847688254397667410333314119287790771064932031468898849099885541615662406869950543523681228197845928030608768195859075184819179725537015429329650959204050356053414196956117833454408032576516974474937513283455053049533861493051035770026971064613302545249370024763226179661369818323589467006154467506960099352535378016159041311509863195588850536204465254853154327116857150116622473654579789167283723329862709873210208845944147450075755120631452560019061552814915301638628459428286061266038997276404290141458208000040304294286796809453752809877356071273764051181150033589324005608014505488631339283309318597055865476399499323040811144074528542906237893261873107042415798050524321429105363711787905945019941907879394252741721786681932629306578678582211057668950848014778409748372271757562351427333191737217962837394776127248138962293963181001262131900839167306876509597931463776853426505764796985414150725002479123597285670347633875479180061077419753788711465420678323220088217805537104067688727080172556531113162685084209230824663636430076555688718134773164270104482319291000125827054324289277277417036113285729006949279097221966362568864550976921580043355620145768578613744974339853327667193778163956574059473961484296481503731878616323629738984385140558963995548500720031347917389344747804256152065103924424775017425141616508656059559571169759833558277506056529180691268132463377765680072398294583931415813748768174822662450331306111318901720479068983324110256459681438141606296709127330296026458182576904037885509951510922903641288500583220330072842310130951884202670793110833914916645642557852240393999822369552151865248467325952376726426514203210504529608826202919630053727752927225173288960030016056136957771844259885071492777354079885963296048014316834127185109904494232095788200501889097542313280109455124731636693019508164584751482379348289368108946421917820712867837437133856687805730817955092984161083354958117209528928494075442314106603110549968358509709813510245415782158048612451421402905432209118333696006409856858719239636932362023714460458247394516921827297075418817022201961297329173876855393042928356235730090595376915905379032887085015250731930296983551963790076219546611034547953860354752834202527738295229763253285696576918241760747492218762378812922627874436484945589820399049166200081476970005808988715090003356926099431397876263955104286078619697534460771034263609887314012747662192825687461726299839041614757941882079985196567653751152359912853269933400396326553652640599405430537581650157050281844508772110910938100294463289778586091935738229008269911973392063537566878330079394166598228898336803235438310425621421902092402676374440402200374412804653320762517399637570446316326346051314641971644131753189973693326290644932632864238369169017722727811495596136943463696749003187889547126967800232361331065993289381034822311347281013052203063835131267428600604047868868407885065328201427127121965631307052567523566734032226403284855056272192640850304418309783239755449156625641363627157050829010542441872267847156567231570928440143990597302152004090011929418717151156569445537256045867173023188692881038477610444582675833367865849671934499564479187633040868761042162131486391944843114980945590862307538951613424421927462842915507954537313964779501147053356603552213209091933280555084815810820456432540764700654736560211369316266293346992838146557708871924679531986392156709503181751383762669810023916681518491321020475744185188384399793663532418605214456180540121326218022937632798886866343170862068338762513035516841596886707826998050222993143502352753564043905809189893141975932335307178604544126253688535884567282763355549778341497195924540925012148705978542475485409546247068902641295262222520808790178793562467107479063305903621772712198975797730022967704511112377275659308132979337783819029462880919906106953657863699256165444054180038062832902908760927510987431241689078769411638653294455037983459504648464964800239938819027117661183694562223455817885153305223806102381625836603818345262492389459788033674729821867406384973663776673880937127076006807904127638980899102386247801617849804160111142116923926825249629628626834594751624935600747908508782326110135544915209519591399068795605404032400896456358786616588890081824427851339998728722528261515900620940021668884095155402185817947011126584803881593090881749324118651648013724436025668488041537420899659329628498476858390979022760045556562176705088203867658715255232169299953988642342442676050492372789516333320558227139443320963273939884443748784827002841052885159546049478854435414051207332607148771650457111738032528847364874472232522104185483714362700221035398905386757738282804978621742456646760920738917390901387963660606166682312171651772145537255406366596886543098813310208385220590756079854914747344656913885361472097438506018923411453406582183629765759850729474001242852748381098805640581376252057916273106365357920986587903025467637535835657762204952883741296161082171117765862214140484946241211610699001239761471081087759152389810566285387481980814475781485618334287556512837127308287726728172764841488149469278996726219630214653194760767599982333976505226192030771410451547102782645651730361024682812825566448794708528252972845914628200083048150766475897247028910811184014773908468358310031676009493740649913427359303957208306717027984644296948538947658289978172531334066550368043705872843739747608765446152499498722565004409271493553092103342583108671456585205025740407192915160930115734968374691689998208556355173837466738308969140294243636894932902798421477494520860306420582403679446774289285503818293961458955529621070614114975353587660203554042613792288584543087332746423646777585475438322865928339110825157122440225156955586245762067470950672332307021894770206550217216049408645842912445039214406151859619416824116457643482677404713128234423530028729901841823213513567340247715133783625436109219161831818669138877818404165556615018299890146519391181059796700994917033083260830227026673938103527089777210841056546342137572481500179855481575688260623696030872326746161809107767427820596029412447237748176386628412035414756579421733893444893600419777718604897230450026483358441652743559070179279408536867296982379457465481241168108943988504852579383967402820570625662538755111702401882031586997440501961154824848380653607308820126137121822967764229258926141288255722030610528756399534561379025962879557914525498711189128800512612132978625487086441865751106707982316047082716654771961079641961328770542893028715298323885821788743854023479935142408298345478929170830521808404307162435952357946537895613798157692999054817196867533777199725937433609968773669198390308300342101682782819924735325718384849046492876169231802831384608706563606428638344302563047935855974780853196223860784583484065385072356836769966209326874787848411560928851521608296110740826484121701015521889442817383672376591824604120645519524874526447264216354866104273789833881317535115470547534239875863913201172812755020886318625489517299618122333868853040882039790176644025110331890925339658074230741385611572789847615601419084181786888648711965249172080319210101409730387906756352897232579447571866980799876897598060654072585038380848989944820517965363311742331235523237412426607415609505127831229091953415754663908681642976985801005470064454201736373550933330561971837638480286777027833748409946500698888070622937184352371303162796840799303503812020324915224896887823827242679418021923505663795178009661023058698112405358597258099241950226687219909937251718270138353716298591789721114679311346995715912986010308297536535824826269844192686875294883335685532198171657113662149603436911744124065892694291006927684257008649096895828382894331378546213047707740791435816185252098806034999992738263865758258985392259143682462929736184043454473325807641067284653749041848572384742908887076471439887398741746708976258694347685789354680236100440377335895109411217823848420097771567530779782360384843829264894078274070667784604826670456201305144744603464473388619146178564897905228533841893801124342539765480610430645360858094577578602823898820156202714768603377854789529559580141519421789355069890829435938449723172896942250870749385349312507489806150272023057858440423888747885705609397326210911342933302965439460075923963600213704244185700439287566565868665524094571502598588878500976620159447639677330518158000488746957805556807464685553433172792573689771340109348492025375537528529563114344542924299134759289921248870623295948462764872208346947594050451062084028999510827078212033965066875644360747276303481625939272017744829050539151372964097828338228810951951982259870247733641301165802468638403404553901572125735828526675701285341958280128789869399773003402311526927154123769320342005764312098251952378526531646094419472701148158990478118036789313045516097877323154408568372311922337048149403555050842021341368113672297191551028209293545248062128685744360162908728410712122588446829902968607046759909779827442969399544335925859996766445558259176178749052519258948300253839831335128540252963740878615226006478075134283545943042708865791926270433575185997438817530745886650177512275251513240812947121936612163443809553782120125124519976267969846850578150497209130198476428221332426641396262162296268024962808676589014199984976130378072018304638565747924866154824954986537448288948816452424247809181849581179758432670224521127559836541428337215932430286397161553278397612187739748100038836583780361187098467527476767815328337857991766768427999706307082053194491388893199800227839617501215418580134730692440640498635542695711251920111253009326405686953848995270665082842240308848691201176605715729890489415937435342855836495062120954265608895673548235931690928794081997724276276109130829328593837164577116021651178374523140302026394452181682417026723142392943961471938491295308727591682763593100917918434217956668046537628695814663658655106836057242688699186972980948689748505554272854947367659541719452966083409947280661534825287141303381992257774323471028048787417875775158684337759883923240622642890367714159676891573125733530807799864571106630112171180067739183151250168099797569284913279627579258007245485021597561248107603938267574462480903816108506034948871646396554399781563155914456471661279807329977755926352504196065443273944583914192090242799232330289576834352971246569063601300309030975718012823963749464970212125402594351719881997521423240386511562657188209053154725662563455225891557658061901502827238374943718441123254984366550435017375126657977106952724831446715875703996039830817538813877946465685946086594073262458422909561555541951225268190904090865371544084964325495378432674602616782338875206621519492255533561396603256008062763183971968837381081637505057937521994679677139396225287894465117823542915060026546657438472337795627198119848150918490555228230212459135550072359852205971398217807563865724117287984662644207661878926145652480750245209966648290186068023675179317940937623940373685880275722508442712821274313594705377502704206901713210541607621223792143353088211094484759721802672398800502662283846255003907100420222407961785057289874339163427594605527616559035780597477543020711227337311119927782231063520971147224259601366983566532568289898073060764937026358211219181170383230017581401288255369292240756002237227185573850667772427827763366026987779083485984018912330292815579261869677174549806098201085818477198663825753426208996096060097946288152303007930998766495859533569135680381713054823817431649524806379059360230763707280083218465276954682688729111791521029650211270369234210821418776512685125052643428053263965826967519368469357485651578149096798143371506726661478914953057338007742910280468822595198265406800928859685672426768479437234210405263857712177721440544558780778569184364805001435278138640938902556205663103454054144521425460322180427175085930287670505371019931993956884290858051253099418164525341463108053232734503488050750472325708873126264022151005085194437583602611444580302064008534598438799043842250101682750467584678936911971918357132114402998113923491654697292322085204846591438300484250893849140768083560999826966752583538280764886626157291430339345477551234546771751536822749596626048045974584353762007764973411520043736432793315500967859615217561525706837204443985579465799910704164318582438943292241370444241642240954654082288993621132086847830858606058244301058039426912949149734353891014084292573324862397571405425502616757964300064267315169678192758752059201762822033083485627500857228099722665515365606132388162457073027971622803511676687866008760831653732444425820298098128667097466098183600966958926346391613646648735511969783979320679236625214202356345671779423877304934554958044741230108822403348945750596875599763705608268968454796875126070294951515574602436265226529256611652047403327291550576683083124530610787813549012075919434859472928264162837208670562342296008248352002049108365805951698441931677505472046418563957597363812276907380943834330202632800214093268315288116196647871593001230874967482623852879006254937016291746634358635039608675882756230439373997486363629575555206687985924125961582294566272662252582342957222473978377194875447943027826874093540299174155117631803773408039787993687774964624570009108837151707669440853409188359639201119171006978593035636244599426454431741612721370381449341637931063799813879551378985478071488745727673005146406735954386235165902261872472421210383647849872633760049961450337049119498271825003232068528163527785262433851170208774159928511676265851060284010063771256133014794552554015667014466928505569323218302905866290638302475139514522767425575286428895360230807448601447382155237109343075017876730578377702326398684642011277336708778144720326024397854653360463176736064496544410668082351250314896261730328990183989573860106882826457501987835917856065280528318335084936200477484676492886869326922158441701929556527456502149368531854860542277969579061867234835237945165423738722191125145624733659985977203473598320201452487230362338071937502759209755323655103761287508494481431512884668820564681420779152087251611039071203422801478891401377589197114525693397013606483706764659212795399959816479915426673996303991676419948407688685750939089655618168990486583276301831385087721756318191993281012854060156485776269710080522761342192339996466155088947213492598448568391144451384038348929300096922643736920434498174593155133869853247249878033374000759920865310638242218885222870378829126078813651625492256139321182938978191064619625217977782743822887673412414930119786748434684752937224510910796409555711994845763321801893471630749060344936075209378438000742331739004915883848558737078514245224136597801504267149009405521688036441102515985949223111598068959801094192372608513347708989350361200925427460296934535701997836202164463604400064845909184268256251819013464686549338551348359950391264627833125427663494185230560817801648943512746172267337063812551460450718262712537697229725992906763892728489395329153866428587789914788820179828355804584294581326973139097730605340544740175633589363198888548986885421280903465966506521257414060090099549328679245211392190545299186145055352660252673963685718112182703714310892561077498729819132089078529968419721512462235439462857140823418027855765078027949772661266101585969408446409508981418290827540570927233158132604036454373883913643684056385031412241192358645809914784155920578258092895284612712636225284270085488501747288219642148614613165092143797344495310184581312747488494816145375093557915471319609361913095556130007191315412533286810457049558555377830302331914377853168147866219648773354653400063769405252897103807758324588667875694780375738098646326596693918697870086496214263697799593110944368782399154444321759137287585072587464340031561142989008674595955872108893656630825405496993787541820131867246486943765636257645011885960130993377963247092331309235194403930275399701906188502053040592993161415409345886898711852168039521954601526259937530529427611453084341179856261112356822987029861564584508119346775657101235720687192797308234113420822814324356706766430607049499830699215628858326616770837133283772060335504890407777184059981242701439413481945054745314937726183710051542591163004641181562824572831687565089405287127697154860234472346161103732526005077521574449038316488611798128389145822092209900691199449240857604564017901148204191805760922482574665054787844437825458729514344463202528408545102649599612412151963286393434527605280395626087857406732341006318488750784006575110690932761581656471471339159615928336635120560610166227523377355988737621822812110701792694478853012034989455357103046403704808494917064857689631354195344607065136410655382522640798864809590371054300314433110392048104464055187510036176873184183370459256536186636390438423214807219665200320888608274798887631025774715921904558512720118226781051536301979978814550802592929591579200070304295716692533089202910025006903616070683348205786795002881888067842020799000292373465576792444747278831538561155831821656304768233345690274244048477410201439505058305744760164121826465231605015064706731640648411960846853445242199489299207933336423323630129243209618549822065082865740624802388459846883940843102581483660291378789406947979902471018928229677911596871655648879285996789877997174099620322925044827541981237756350194124645961852142691625761253348604430404316300711241152758214118083344628444301971011186060776780650540576017771408424302947792131921585467402730637262527752463375219215875195335626192490298933108232415396306010694469240751896875069063774082350599661665220179078075824368600507281128697090926897968797490197445408091838074725121121685971147195520348320619784681440764664964869697845248700835160880994207084401309814088502189821995403643776965952270451361374190864325876557298317593931341013260924148276369548954683627701528788670040660091865098469960515506032563288960105590981589954261903087145712733933517635174778738144539885859376167584465734808939505280815546774252172342516425241756056549413353406445087613731190379345055384730815408126618034624909975258335416717922904490608431210904741247715303243537501341452844747802088017460008839942018457466501636206585823827212666207993310507584365656372952435855275296307669633569179441337934193663997288036125495789590062273017703663146102079573341429401280607141733635310181287786840459194422830846167635286829303524394727328722735979392731314233557208520876984194605164188281297427011429892417529418263390632829386138428439711901464832044020846807144515166476191692052925745962045789438149571610498279002073112575348509592704442573816180752598526218020963155248373531658817965468631003337056693992689773381518213151019554987544407531115286710568813695263853266186283789257853711407103462889543266635743768778981813560135575402787207949624620234985654391394389910265062460261745316090993205173680351107740761183470463863284281811173684745369584917232650883148420653383351439704375075479582916840773198417263619137323152885341652549012179937818105123106953570576266765323187382729294018119648537100719938150084912705828493543218301712720839995564732061939414772893075629051241788414065982601962997588371670709896225679535475612138967701264553913323486791978439348234190017564268876090024650080164735973179406012394042374003325648727550674690580591127673456201305006591922480338044638715919014735598604102431472248529626651482641691361961306780582703771316358496083984125427351369254488456501712317678998021577454502505775299742274149519762350411612720996054132246157944521141729218620985028725752411892996946584028563788171216280086302278845095564034807613150769157168390882259031605115414765461596229279963378741287092351672044505041152710406429111185006190675651863836065338646555111324397956824058625835764261378094060569460200162234521895441787690519529907456526540687675648729116864478527364337412972488732963106670237434394063901208101040782334376320123379451861126411039686645592083613653870250460242406142210598730176718427927405750475647518161529911890121867452054120440412988379020181545673488070024896890102259018630230532180196817129280490441369908607307352525313295721086671753076316341726221723232312175790754664758660938641628538745881282861313636384138149497391409748056461508174600210815312604953766780763851214633761911333443075391655990481734304895056471138661123444057950270637407454374577937461463168457209986460322798920527282505066155889407607811083274692298371676334307683679392109731300267805756178869584166370261178552197498031342262960379871918474850509908307439505456323430048127143008523146756425479374217346003659005546499543197870189234481998784810946227708569264829152927571717817464941220399065175332113697702856603818696297486706551586425368359571152649277049367149206540464348299315309685911307986830197574817621519749009012607549097035565423377946099000090325059929529833245196041732969917366736943487703336844524091867110752449384962354087514766398059998209126849173870719473704073328461264733124541635876311452555228820516439184070365550549375679751247001981470342548426339919352926600253897727722602480697546731823985977202459511632763887073022384432708913511436612359181606070884110876519927229230402338748895316675523422067315097488623153070755765708625502105674667910855077810996284259654806493269257571868848556104872180508125752347336358738640037585317196959855319029849262963512133645259533797147623925283765652948272665641115159963365094275510865016162499581330020536080370860262865569071049238290495831389822861131541339502211602408324502231954336466436870727630502422247633784273026784914274420999938485877721708981137695080417603249587461840923006293377072548985987704779138012952939285469352378551684694174850685812828296296286077622819366514208375876935660977057875766264454721196142090481399104555190302081919539521992924804377262261759339070693669228855921348278879465518427538292425373762371957007056136311393088572040143309880107726815610446721886898261217552922080263572226196060870134094209088616031781080087088823329466281956046581943331903319741448979146814040128723585518854906496753781231783643409563153786008875998602006733366666330304069161278927475529263801112410469550877963187392088909089123495975325564152161745115015405380321152213474236810509115575698539037938592152317743649371084285509861076932123543061740982550666586106213824761155797723437673650047442042222820153101042487094313452159799293216073439777671774108933503608093535410284187499310129627103938725943260990724839022855852951019018976547104753694564406842049969704785429188141824174799087457025050887657680818723913728960889543233323390594319557652131397074863003961060720983625013380872844592710235269846508997612686112049578401884898281884028689413438421719502122764864590149020291948380628076049359895476546730600342664940814628610057957760335204858663708191832536630511100799902482539631824791756557425759263066814247454823617844148432418422706317635894528134277130302895147253031093271037761388458011673459576938971584624515273796218102363134478370116641920380413429468817319778160019262326749721615598980511440188994810245591476954803630826956907605565672836754828557833618480504138275267085985837213256963984819018598218674547438069312399543751040047814073350989914107930553286803408245237887903875913853276662610423074908485798776583330192516157756381065281764160546523168272155081154331593874501744548095584934328236062583025046871147721924067581183098561651604150846331039664791007475820841063456913966933593560225186938121545442541396567786461113281969782808797555749948485784326416464962395393994159178226178399595686426240622469462574586944315824368799119097964492096008317708638724344444263819874336896882826226398765492109037877236223854650061419089619538431247491919921861315205607890019852953508482458080261587709667720723311924008858335495691484197342456642951224434079867328607857551731059953583123072610376313614643602993203919444208581121881829158998780645441918608859230781166365748351428683175900770738633859960401306188248304233953847707699459687502541614547730247740044679572898621317561164288306286793274845367153676343759979588496905178839152007426710171570429328287190765127323873755051201048028237524976317177363595643271618245383589128627657507037694683043976896163400395197526342933243760383362946536617286778090524053457925945940685961308197673021907452142540481824378327612055341369768664598137022778922069300721885583817606511950196093011684614342344224609004767985972627438104504707512753684192444679377658637787140002221572929994854672378332327984558535072012884026756547221858081889438279795470479524195257427627067105344667618927970427948332212957723735073719344769090551427683021919117595102826348858016335971616729071330903451538951005292806929228271964115467140198325838769940056701533860442741344702583903354665244138403643239738991334363994208379829117988949238247478565514466412822237574727901124936634772170136310498575657803146289579699558440713855510338281977729591026075870670500915241779817250011226772290374426671518735820499207792831479464720524188399366643037750793150961540650686524865083068648943183199468274862357665582307932454059458719621926735367359231171817477507325696142019476252714633988719100343302616393100530528815500312395917040853737922815012530640384432881559870338333711353034266610407694235138892951459067574679119751826048161948286715278797259870104935331212598750637120475535110554194600174822699597490136534973544163356393196479210820000453741054675039936061596299362801189859202598169516188922930196468830817786052679112436781408068784893905812876005595873546550030660999923517503049778527520464593042343673947485827515738283389260830028813359498574693186472637886273673185358694580084306743447969735382185824972811380184176341372896225688458603291744132290835909555778793544264129839146543671266704752196082000467495001489886159562112277120219374132551667874344650588916601690873317110941430276673243501990287588649313465001039941089779458538054792645129681439046195794504968694809937883158060693567269013044473776911422627232013437066899971596852338623850631617544524938982637484052530866353092056970102393848592478671364255328258482463444499624986169445334721629979479269549553165495486301062029461515743930065776387899327680236185940373587347578871598602606488200778878891320727407371032710436634074862934634636082515757882093677363061791855307254554268085522079236653936689030795731610848629898728543474827381727425293595810011359710832039628206783320424525307698739752836877348392257913981021374692953060552729708536142018930184379498888153980217547587686467215943216820583709639734233776776217796064796076505393517074344064586992100458907431723236734763195634683763057409085597429185220024123744849788418286505866031298551080610783876378444549814103282479932248048679188770476533235483950627090688947285300232598773869413320799772300270226986365513265075996346127109249910291108820871825583540124951985749745830489101632569745474690827028870889257492727160426474188973540355822617028314252550364259282163957649231717185766328824070935005654981331489582386561939186203458257724173058654006488256759944411145433728526135857663713473257706217507455863142647805475103009404551036494979028283516594715714500370277910750080454290252635572261345010507028858458556169514923564466036968094197499397161342398096338038983512724128073186644154736887325533435039923672885011097120196825154086845670199019176062335148494995914808164922531802586423226840201329057001590811956465229262148550872407384858722982191161328297093866984689513372315022149706083710585607958449910953797911385001591419864892675604136772987468827702565976201511835721725912208582789314531935471699967016000607246990367950092981921826777279892824849918399706387155116340778706633932606044152394822121814232807777493876902000688551173820856319890125292301082415417515081861405845376888496841818824048486517611239636440278831283951852643452470568238098244020347570521109638273571950963099272404597744202816836311295641425041376762640279610734729160945345522248294092581985610031907531772912756375873400400218778336927749139482331617766240114178117253038587335504024092290547869940022028239627680420020583933091086902465084590545062032476930670363543004944604068263895357209776473439203896838095804260780095905856524399498175533565470623924899778325059172851602280277909297403856517906397093262918439354740587253452780401728140830088068343140628340496190548593942462314150424315289565950468208577487657966964938357831825572974684915790931478572679733081053981075344182357483709851003242563593449715566303635650414860858068339260634178687238656503739195651312345396953468453742302844120340801780081793465447503134446700136347969632657598192031967542372594100175397596869207910493137792114939570553559471000517987588630112442873301489412529541016235809177387402981077387616552504234690282324182550426869267607456269123778764578261020357674578555577074319682667183188737673172676344978414980319490325216155891872679721209527524109408955983484997242016189321238446448333971232498030928750099495107339556700239370137914646838950470729182245246247584345376384463618496951926411968514169802399499311977490986775225105687352260992071174583447953516284680885524163692262254919787725852635803373300397651084255188138578454331154311338347461258624710353295855255687210191495555293858411519106841443726680964578431244473748267848462515377895001625002101775647794846984222503185733429636877029580465746825664520433091062477040683608094509470960838444224059690550538613884178849576903801834348793784634714286851693639540804879433592989771383598428328199443773751057714439583718583221326893525532051715679567878302679019176464434466129306171487498066913193863465308195886987870986642988858586115817383735697167918230796655963785119105646876787994816470684109119686681297173594703062559392911452294329535748341837796313471300147254772396250573390556500608537800372892070524082275330573590765278860072245301978154957680563249029550712376096457610612936906325633243787136106904757873281053463230650506786996235710071283602814666706984794723717940801347317819776497235264135709586469186452000837660570472590533583861965826979426828971118333235877214688030096040862415619768430706137192376400592902129343222130269562894114640912383034083952306123159754346359622923434811291501450227724822763040498539815152065729659906771590999282588761367311922449075965464136890295475107923434582592206773678534868315289350598990842702765081974251170821336423765791860918256054395059976796178997995184584686026434466274177246237562858832966842419204271514992851885478317805452647960222249162983313365519870673023658939447412763060016868952052309926149876181642183907542036093634453308453594646460540529094456219695745199053644335431635748097851679167850753915077407220026069581597472215978162347698774582030828623682102635889300256276751044180819878809981351967787785671958303382236502934074685184934772665737804591488481581118073435727390822960646888829045918396963156652735569826584555668523438760069073517349933735402345785652626658129861091627576570051351101902841730078009030565698631519478135389804891103969072877546709172349401078540998650510462671363730430945425322366681880661030781226960358520681890474515998203140212117149820491940723836370922440266106957754353841774699698778651584827537293199376660077369671739955811704962153640396108040884905578238891178450399638641221638286936896859438803707041991049591109538061752544483750664061790320475515171173167994029679349998386807558849891647714321469318853204813437347450477541308379345893066499962106182262557056702779067598731211723505155852906809265531942065905856834991940471125088335327944466685220580464201382519574602588028676369259118671434460434922923182375610393846285089561456197484369798904699534115876331201418536170431078439193365109433716252291489259138519200068312432616338005662194174299030622978052671245864650582780077499958693527395021902272289001644303947911378664474979188744095844550994932579044602541018655681279053100707125884979462168066002654131161025371505663130796103393354834644848956428254079782063578498730219818722527051436872873785462819601883507399718779169872685340461003291027332549315016994411345146334320272770612400729557894165707322423090240721282307221903640618305927427106506758256573522724359592885264470545085654182235941104574798417060696425108549988366678607697242149976220367943745170521657750554632761100996742617190558507670519758143769801899828987981336229113520846114716098238386875988527103848353436219805975243056546622248117260061077180473910118184770777434527571462181528143528440537135548115158908673119991571101269040203557369644248404960132543954134886391225659459482170880001300753407146002273744295073894713967162086123818599818305153812897837514967082318476600183624348479847320619272036868065733618338783817766932719928345650452274886143632033472069959643815041635900232843433879581642894005339115304967420296653033758497969421625708021555575616737945912534663600871650302417816534632647578888743961735304018183745912022192683046226410358002258732657505776064164429200517927814085185298962809089887699464416214595940019895032384212052700808591113329067898312486068024437266142967195255139037681340120938944038335956263568919308315916574657927995639180044546534692577751772291572831072588691080581103039675748169899151546239263288005904077942344819416034247147308064727463175922814855577976466301935033575279458506420805567774465259475378539035518386530686958763172680517085294918367971947019234710610907786603849121747204476775674789379586576239818217265215257603205089891042491405150185500466657081515986634442792110666537450896355690842342247428800938104144422508888731818741484624085516095106012816784957585738534752299028624482227372894841341194783505227722180341013017414780315623910002014126308883248494697771560096905492599027008550073568895554731217941006204320701435469881309004722073683854435722977107819567616124685010808050851162126201547486665992084203048216311677195561195938328267117690650625384570833047321842397700807251243464277694486514314631894312875707903418992291828194396530087871703407485098451478976584694799465475257897945839465309001804532079110528640552487764440913135126028737947367420367001932109585885085944960267815012698695389513163461569276159104762277370746242574927924596536943717418086091097523546084519227713686863229980669938449242316197341759074402195899006384310779040568998587348123113783375769201692383320517635344436565569493439975149039056863443075739430714076821947052058781623800892878669565502009041725292265492339485825378559671501981249735137565848429388557746387795537503038152110584347180228827165970702352617819507713658364714850607224750539650603425853308606678003242858466283350384180889235458461486209735499122938589886481856892117514614747278022240666195928842656200097331339498715868091507535166263456797536530644209721134465497745334960127230331494600118467372374423491859443184875020171990973202891226817465418754078604349561102447900303632262880973132358257349722237827906586835044008662922679773227152632125409325469699609934321283964557329124665728295683924589925809119681074262497604532634334414392403411498366510466166717886588120790110612326015076023015076316105615208819538835356013331236080568030246299201308290216294945282254301517520927200288183950041505898360678281675326538856884560405508301725366173888842168186524407397598587758272510079441282580568428479551603262088334785445627615127614780975855098314331607705316634985955236714622428670619957225059155231030837663553604612181563228843143978825555582014408266386192880760392101675775724195100469959239392433824899411631184115844636873710766682542957866098325869360895080539154541244532344551337513206958437308851156285799387570128290213007790296754660545535040030206160971543438637148452741310901888611140588576508513989808867384388467831213811427605940430991026138020216483685416686026834419848281514523991283127972487500640678838648745306158708201004143527086586035450932306252232939790727365996245816712917776287358371368131168114597217224203672587091653894760490697993292254227956357794031547189187806117360957726795218875889327551109266321112824870675173554713522686562456708400623431059690078078600361608621366731425995539962387378596727451930372420180631715613744615487942345423184222206706775634981461261941041861605014368854880232580952959560074613111338464395718805028674746515543208380786042098614786443893952146891028602194300453177570156099468421363332060553364200407663014655692123713133909953760622674962855669290565116797195362823552720268797565590799828615096015625958603203034058009265568501732767612716398916190933369756569447026642613583702721981766441902095521084294574376863314387893609338251294316141901395459221992597821658034802135355876633529242916524234195134241210059273387515681847144218401404218147328062175124764242711025448810458376780697902783044982453792117243853861994830214301473579396695033318585653676187950246402099333575267733244062279292421195725278562213090080343962921816323023459644586935655696034610364773176399216138674395481327513947075898102536331354118976222784491328209175887230630895209547402212634490460717577115384189737897628456721996506794792876048441715206460678018251235160268273153317056321123920300968782810317119776847501058395527954474704744846322454545851704544917330324313482833186578354765799599719522540928826553562738048267748368231996604587060443159358949777742633575470272671508023769031695489018029156325340771936340097307776694834688499735256868024789868911912851372956046235778768243385304880701851541384465564967215720633776561540488919548453823170861140649774050440682678878550459481868622569798791062042189714913216457984793769728802697136329905460611158316041579536468686684459508849025286904332483205466866763603056375011314256328361186720409794125704697558942092182159774393275588390683826063177604504499587444046787167218697036661007307094519771004848512390378011335666602460127352125461344158778183116213348395782902669725190393394951338621966687512013949508724970514233062936241617544810389165929357844169099179507962747386189358443950270613493606640547558615856709823793941475926745546183695146978636170835415817131478420551190968689655096269327576586613739505754520526584516415959381167145524784888152015885348104495963735491142459227797509829783911549122777486732725064000404712500506730000195443184176425081957275796693892201751646905999544687283201714659981777583471548981384320967105130969306260012488752458241346595726640660185443812273777021327047815115415349595957810976046556446917572048306723028352370582023783423797743294204840783942829921292999922763204800584781987238256452485727186812414555033490676774022179377910520832793621287146241112589483056181028206426356698528282954042558567505533717641711800830515779501101111936287829784628883617238393078493231440760112919787014960751670173547162972712973327462516035427725733864163713723436859409389739672876725477747245949813201824580294166635042346854144751613010153796404236892480182321670428140540386973948282264045472433673354599217717926093479290480946152116474949763320100807009034936126735905977442044811866550728791230547945466421258031434994179091698477208184805189384150629903830959450026156670208086935463568378951588494295156382422391978314559287382569626606260879591634376223432409049449176908846831679768114357389273479462472415659495341976006595158974854086473362735381513309035296523053449619866068114201410385935045596499059001615944927564798118567063428245873280700381934728259321996884344567355520202338353767015731957950605287138680570197266804355429012932392282475386567957192089042359819864536477113649620441258294036220723094166676980646521489634277525314875356724760105374192722074936436524939817446339494367921848584118583560760331931551845067744501703633982175398422418652987200591393129173966479094713690663254082075975391910968957948361076499360957281480302224136022894076274621667250457662648561461370300642659071984944597458234216730144036013851627779554345196541327086771931486409851745927571536324320868843533724760695733352031420445594418580763352836357306840420002085476786529196832924261297945972535581857723640379002886485862320327423469012437180809638591582710833581409291432872544655968961374543335429766680948215105602950558649617187522949105757749843855970951592683897690218167904785005817486162794178230475331675177105827278971429027729652170635024259285669516284850134399240611527159938518133450804682188498699843443416472972413994886269802289675583761280205835512886060599370958005593227589826088982632510340693216792799284868861463951591974081625209988759604084852505406369665840755209643199997414301340724436220675298193421676847893115239416654779273166930696776182262426716022143845168084479244997785204680878180363187513930293337578286812690251655258766777716883401346969494615137531469372022377894105534146647500598595711098298397291237128841786823640245162728646228718815560237417689451244370814626109440665832650443526895694401863894042739303967466002769701361188799749620084322725637266054878018393402121272240322201020608010370847732649803672993516213346166626258944113779869835281222749735203123112777076135158389142303527082560793820159049198281301421319175245684317083883308739517522920827016621177264608309697369363918225700453853960462549603352286670967476399635178262654594651736379104949942686900487735656932488405027436657599991748157250997499111923247973669114158557016794005694228953773470368971263473838727615938746437569776266979582105392947420424584875519452182297946312586663617034138061425683608461016321789978218141427589102498423801211140238207830549115021146991913333490849237660956869576997929726832211448235928999268082153234731657988275250289975928009920820146525130794063357091857873395754979125207502811997978622382464023302032500931872868543634133235543298674502929961633046495668625151604224328611005102297063817546228254827217717512233730308619874401228409009863496962164408843879857509578187678706819854331285564584041392293303559981980499970666083690350192679308872195564669113431771483881476705650795051801201497274448074733710757341328042830727020459772891005104447653744324503446685868721647875121151215540005974411517103924656484660546463117910132931232554150540056871677690672132569874145979212497218174036365789140325586888746915457451926597250948299063289120407119832333126972417191782093483794193832167085570529787567301845621384610114794967757305923765407417691854406952444493454824184939971821876851084551066202515967818716303888810112492602744846548034286872203158227620729539765878779633070429596062561816932572530303402282151820305777216488981450732780504092398873257142042500791888860046962642951014378883008217172546677803345550791069848650049827943440543498722505212269657418803484540986904396219961950738665287505580190365637658683884156776430065240585703206225438155804349232596798271047685712733642598488126893104713931503679906858285826950820268932330807851917328786217863614141944452355465678962948078066613710112206076935017107362604374057929093151724536990661396257308703531603618995978143232767027634446552928824573765017142511517227877549792076820173272286172518747649127419139374356908038646445439651658007397677283124699512670837664302902424572765034865127595088467421500789429778410839556039979526353783783087734408318293611616973330742940482273628686624226521241930949793998768232075891964920722121276077913791218623407289136060594355415311898767800783418116563834813338221373111179541140199257002183792221949167871822021496824629532102827945093103625157174352976104077143237247683639271687980454361625839620255618663657114820972725833040507459061077022682516462358623059769982676714019986888166768594323275162528791007869182901354037405985983825637974573464287332833746930731684699349199508256298046938562462719959231292379649925349437643636151749801504342359367229136950529714934740692597758033166885013636866315304053662613301795251618410645944464323627777934433511679753553110240342958619205461340592410427260916449503998160906849327422216912428928655431379820024581482776267171861480210762904224458472168780941243215172272658242099944539667312037735734730114388408612670728801312811054589168534096795379341494567455296149038522992239131091222281855737511183061570654633887575313445531853854742327878137410356272311256683084402941597577384957446678218519605818673756440914499117656772695955406389645482835626686346711897947869922109359513591137826425275354610818016582058315992165353656392811797354771589014538405729640394054341619097765208884664178821734922796090518506350566304336026480403414040324455067384444183636095806010803363214872273729130288466965712243428848961583159872891391623707501076091233603758104797898267871311368841079398323341368190244896850425651703549745504133031129893880187896923298645381868281476204315938149326305500979765897562795815107636914790927514301086138440748766338455237997971332090205363697010061746913329415976947034196813008468547963217302783653434773568010224733401278639246761121449346984925409683927028746270421588128479870093476667976599879686946270119228821029450602225638608481709428884827536261637654107280839678745714774824602245757961502366134000251558935742035984804722459772662708615158861250965130771356219345190542433667570901892726463322653769610169943429725482736212788950358402761307216221592133444842717309387161809016533596589574032011703512249744599945498807845964123375699617954359986468203331129929550279715005498236877805330824557417521706778018167799960584345533700294390929253387187820885070556732822318443997714179001271088814331689904847322433789481615794537611903490188563249596135930442100749093186660711243589670993989496926039424942122300335815078502681313503030581506824696754886013432635768315605711585922987643702267160528334007305262001646629495098721441883120382791099581051839394298409939016935783019101832181646937354699169316751818215594646271211812400315865636753163609401455578267173004670394307735263456621630490139297609986194043915327251739086056697559280625991301526327144169825086753764463687953188707933307974121548441952692803872810399143806370568569876979882416826545970081615017609688112083006385919577160988811382909293902724808304784905940313597578222616036968901775700979200091446196314785826894538419408099446141908088256939176519795372042578861697509355043060799425895882693923187073650370546859045087673265568819763973894335946348512747620500158209865278621012497169030819088517895192114101768090066766519815994524458002122763308803376359412682503956208028891748781502630917768174214374827512559705874854683676530539393909136665377769803349722447584538553735244024496879538036868810797987781036085994912664180634105713631351211771582346157417439110206034621811415974068115292476692265091626210885902080889913795363027246055806148674360710725228621759584945260458365834713140853858631558605169128621565625834789219116351635708243200485604252225451087899909016243997298074712203255441252986205604002956555320876124324095325666905931921608532786240537518323974969014655134758079152791809139274692098354489649557737997900432387170595975884417472971538989716233416605589144703101798014175776608101204960287500165173892376187924203524615147607750955226876173865873989304176667718929186909821001080273852692927739263505143134100837171036758770077465321692891529882353316382918991076186429071619156084246524805228582317425278573742491650377623532620298057416083319035320807581383419344238531580211739777863814379252578279652759278437051544377553687939187545898431810979337550410171583409792738647685079860468008412332424294643946727810795147303586658397303079191012464530518974680804361311596107446419252799393728285460740848384890497237135433010458913663380968020624137391886169773353128875146499010843611873260434435749060256320097300414943178837488309786739875295296314238270345615103067902314407205295788763254667953356454230758824473298963812944547934969470546153462187282409323633284669893065267603422780494359580592788654950385623397508852952529964794715682176794084688444947282569350788595446209199177109117137694888031471301875604533858539363714229971616421306993227085682754777292462332843307487980927262595147638012849924961227231533011925155867106286639254328343594490346497635011291218451504856474708795651765157215958255801611066469855281254154277552499658274175233300847165817091856011394452137022691149034250649230887283481308111332635753331639891093411112025774860053104478932743196272058105590354255229880781422721007560585005582195346142048693153906675718537151759427534355150747934227367746589745413129699340014145333016396122402098377645519825455769026542419106197333416846002639936244884014366514719478210860669207100479270338386363736883982749773363317041047556628415960192441035179522546089113072397253099967990343028520252707851514733657033150845076838492276376836582532286861082224410800184882823718895541638687135980124024079082223708820190376620848180256434741498652890374735234600490158653447726177233790212339959029569034555100256235736509484451061737980172550978971701460517932898782791716548363176870405054902409740997721055315999387109837251643591792546008977694273733480257514797865361400593213300414151847250727609348580519832590817444012748443850381217120556666447112178824060466701766353085373299806401506223490134653637802489293856652982242694018575287745341470376788238441232906118363057419284295115031759084238325780806283513554744099068657608345136051492610815256835039427608585143035620509659278775587814033191465943063173482473658444235556991506076890026671932961812732054048348561949052792568900686666571576411044481319631530954563536108816249151773664472396289984950240608460754956061521451527441044909984518279188175644532215699948944440314907752705027599554213791864651939748910632776958144315482364572222940628400184847834529577527495467963343876037386892296316172078351482488944968985365645292662184627949541572904946530461842104319582009179437147056983730749004879221058348670762130401198135384845507374557581529140197133082712466668927616822421769253655114684908334887391398453101995751685822938238113030016008234906232081845726565243793197554727772083969978860764441616540423060833853291612793097698332903672885128892256782916985264733251540095611759766134878564389868169804728372717389719113423512464995699972595804711790315251154789303757717292501868797833299096881965179296563988313029526040068960995406704886304064862458432813612025287615464246797914589083213479884422548345889104935384782265056649966417670625748269151115925896304787094131280884644789645191421893250079990889104040422884821879649310610166110341898378311133648603824970881381315478853475741801232738707978224478727886509514309097852138492549016930245714872832098878411616006114112459501571462720697570179709322185118315191967076499905207748994344571314812840561185458640454465757630442998925054061330169907509749584848792767131689810065654609718418249186410489619382516263413838166244501454076397663300432387377703146708156693460479818412480417678178509410297621303785704314200990016168718693805835639838243603583562885728605237971663653373601570794998969526158051030461226388108887908481695940699770428088869322564783469913164576951841986464073258069154760510292086121901788667435830784739836351671639227906081660875792025608316971470031258610022760460969725637397502441138597729205430085956999638197841243278146469405917496837013027522562115844132182724121300922342645770947634285838237503967944574612372193350766366893624819913576661205031907087864359570747190460463718188620302674975125171926208485451742875260176156997003729485092713712083950842744984238223325712438263004280951874888695829702514851619142586745403380447609706287716451202549370490509999487133963377493365994732208908903803950230847554252668089460465433742125763500702569955414988934636432122931390883600962038063696815412498386757429622654539462976537839893208801935189547482683051717061367581762579785927592899266807422702127987504286134345563359112179363564209691427942964136224626374983088269331748504267326753910023783061792144281790658209965842500650770757841170791238265923999760175128904083922576169403179873662356882866773391147096855151667669429138241046185345885999909864861964802636547327687543877902965925080996446232885839736963479252835198327022431846428484175631140478808566062581801183271644995029980835589100085461876054517767600503044895425551739234396272445626582364081821976608730788020102818981056396211285580027508756492273479837074209749011864080440601850800619377739895561319224416678210937195938332159840915663531158059547186158947816443316957443247122028891383346296945055058819180152370104520443468846422648640738246972637329777824068323328893860164637952241192178966714294741892785752613104168616847964459415402416198174804674443613663414830348547360006292627981421276780359407052653876097083660590566468189486894918463226369892956525055344700332664670749252636755252972634185762325228807123382485475918372206458175036096657318198961330247295128921186658477332480169155809287195022743800913842738815082424535571371603536289462684891756967894729023290353721815247575120896701158574969376499483245063383816552280978875743027474270992374245809387506955774065089235707440037280933819167085063960911837700273272378866930885787936799059221130562102223001959790369250267393405214092804317525842559313216670704676243734974791343021945677579232458279811301346969594416418746043053295040569377028033480484125033770345061650658596299986594652584357984328975054371893594169288387429248974552789011172748440653624389838253609251697811108642238990541789632313986035423215430709999778278906195610510532435606318129303621581564720564727287291411100945449122646077068547409131261644643938040238097396281581021834868204964787048237454560803812003685088357685305937948633519529423877510952601430048146598430705064623400762047903373157754808843997821907624961109625946685752353636988597763158507265412319940447573124747013981092152240512366686695754847138400284427994916408333342364092035190372451532222136722049359654402328013161325769426142442855323767652798679695054111745511115870178488434680178779328144234497229776397618320928445558319523813383111027737839208263172815510947217791174426769276212607687185152606342961763707082789857170136269117907708648601476373203367912267215184397599176422753083168566456518106304195612917894505788014968533538094854419083276878114622941942104648646829862139686967845048305218126170390471074026668409663619229361626092492319741578604552672355486463390407956736045950349536919907633051143385634274483086061541736221311275404306745230800553751120591275506142430438783498422252104250838659009215108708960131424824432062583044636045673449508730267689833284349921383292318673163557513846933624958488015656467933070793482913757619263398156555424679240049019937092725429966339015843802029109222642456341867131222192938428859437783835431752296409430043708207876955207104033703000066147648000375059678190192548481133350013485251284468243812070289931155273727379327013037257732567143137709199926616600954162215454858830777214982655976612373479047126421810429849484456716723805648972964727981221518272593846072365528680293237725037298570469215842299458461511013040614555484439086169097357010917235438450261735367739308986416548292466034381087289391563491946564194669682731923954379544007939894773378674601989816912414821446654094811146255900442891525751175196625358594994130785581254018177907766554750693333121079804128149228272730178644539348060103821055940556532195535287498157462407265932489198112194869513647195562855214574926273624945003399582346664162289889438880698840109570292582852724220077197532330174740689729508792085619651501769325406326748784538997788508321433972536051499491031204548134066407913111762329909804067516656116678344043351271268850776772270794920900435143053492878288541493020404987944858258076300455261915075826188428041468388632398165616590632255980146514092802804392541731282037543450959469075539481864524460265861795753453051661094180346348128536334911588458262200746887121420910941647583488664942278638116772373676119353287632592694145918916062679019867749047351924527117170100505867879015300231280357582170210671122497638429920422395680452030411725628819596844849891268679212046463868467360653142050679318073650631318663177303047492164258233411273791361904711100310209521491142974137870230192489382939050674490223178687048785961920742611922147537497715309169101130101045224811511352355922269978349611191551742550392512512015719194043491699382461056514970125939898321483980202210686475606449433714232908996926170484966553685048402101198058068141473163750294925589184858196689098747654949305819758790416543558087747425525224611428108126385763012856074158795682275831097684813646196784672017297129985941098470681509859844474090626196441283500850944623377935270272239693133225468137899938966656604993562794833677898740066869377639798238347931064276298250681332365723016427958574370520431092301198188055316206654432118090187140031710997087492378773086576262868593035483491419536887489855669731292221325899697502335215301901203265787952829815996508859223387567732428020387269959837490686294016921444525306221935544414918015307118130722736556085923982040014049417878277925300352342676461546015944008799994654945551125780990321748445280534019172263091296300823945607176036809735525020952392107337018104385740904386775950415859235698632471367019211280726759376013567787694537540761998971977731568692383629511288803364733670901465319311116976787737959540277244808262655533373203835034638786674470752685833269246119447539549303388094495488153010791998257735599454866067724923711445450477203765463343619497942765435494344374974606089511028902037642966210174352997419479023626478619055603773781524732938478981246504621125889306819956108290038122426032939247695910875095160762405660699704550922675163883494915266610689929554255169035031957770889383091802480986194433181909876138460245202061814222835217750669419049390188084678031690424512488028896208919208576367070326164800668489871804324674047792589708444866959742634480347196961858435966418083751582805835981702037229703069881263200800563199577251521014382924607014229930084609668620719001232187471207342437661972043017334391120502485758838511688089358434254903703387300277291856055936678311089510007492994352102525130258819749734710696120813771586784855022720742545010223110288429770586560545955072410972396092642110105402075607455384278635050002708553481831278293261392979694066312905628083637664424191276636936691358795988333392618051885633701770606289161739843245590491727815639110193688208259544912509368449388946889713115465727864239974431817675506745295151410963197060564702901405474208327191456735581958652641792108293848951948291283869910660552063971591467316913724394507258032738154787459354703963025905018201406726627268344952127174094628668139019996132359598507910712958458715039621584876616041509232902302012969338661410218795363013754599659973846940991449884379312722233035229607648088317159825074050859065096596309138796875964656728095322112153762384100153958495204924845160626148343937331772365187417814504125290514300552217978856881886948340113818883566666603491063747565912240083965098166473819444636223826899355309417181311777430641599012302724393670756143193690912668614642411830554919420937446228056255301926205794491149528261190331306521343073940082092487387068781684684216713733431257426135600713145581166313319594879957362402990198756175357946812073410357305914259934629748338804226802737444994808177165464784257646057036471190947419991593323906397685356385894530184486604040177176056547321806936470097007503859828784785238915937117341325011467606287996566914076839372204369079630513483861595365920017908606261925267636696659522556827297485523393980237510835132026957364311991111829875821136699010808119787152906771643925521497486954967193619065327441308425349680625819832449802001585535629966358826101610406850480685580185631005283297257865407383490583142270121157384444828487880085079235457909620624133120748330186525446602652861322663720234153106717621093604969379523529130971387958472836917671480956552568330561879256388194581971836147423952455385358102281731901342017805217193858892227201868346759226313780513716275845360771012404975263771030873711353077873485005732118700760426266915103733948310788678760805946135052302871111814343460052329756434895001423343964078191549444755051882248305592749019612711132695484191639612644178392225454828634282304608332842801210126806369068154494848559748504290163258501233789421788683818972310531179864912931138861632660558374519977428174671724079126722714479799315772179875707888034271221897690410396117409255069640519238067467863364922132699711742346077365159844914098021175283631150497485355062575430443819824021469410682569722086683992110827393959498497757424436039127442660652812173048734096896887413915897088378511228588939423344149864794435800768248988996452203938989020607113512172108252103032883440866001345819849654157331067529386827581708706597354722241682321788301553437151926570113587399149938331347200814824232624678307308733750598850612828835759672551647930535874177792524813150276416178434215699141837338067626678355753535450642982460399143258879264005362495507952044319124419576754424150561536856998644688077648862819979435277450301789986782431706556023386348614734646690984514182090649245666999558124539481306130585710047499168923326030687752374583450574608486698940721163474909623735943828210632833994020999581811431691694354774302855223569889390489087044495201563613328384537121152366320034184024510487889635504584936847875306933190533540127101464958993455310086220291641086385280744495974985804860706041793054470851732966966753423439538767836096226303281706520100976749033004444860566851001886728946758220493580068580238071556546005024006154324481910002759889802284800475917545479965993958032282491921995314929554967737600347276784987887885046675831783393740659923598243991195630005560646414190210096727719758413020363838440053092843644199287853203508497060349933060279564548859246899395902586442245335436862077916033864977138174751491724285731814566370834611451308559521710018369796430275811627212257311194950344322715313263924196791085553182792854488961382852634562065993391087777205376435116441656809623535844592591023945318285095777952431767642542220024192234165841223856411038718018636955138510885516131295680148479831638663249737531959256121759811692757000597938149933905498137533981916306256658690150923438058003959148663096630425184354879083195801207171411692112985190142587037700445812311232750423596142538162412936734895498454930672104195904587323541060995621619732855832480714821055028965414068397138654727774025491093717453942113163008784758134741388908069313002651086204198489938432416337462317381244551530501007222961923702407767247209506188165813082475817148507222314447620176454644678919560958828710426052823257595870657940837180668396246946933238799773617183735761063201990887836617603507623184379332347497348688844747245254447293122131076969018288388986115945840878478941980105391212519063700553406491532471368803873033905665064803576860024455861192663444052055710853489885195111236224452395510219168705727923371924813476283817029535504806361652703670642282554173931145364819562361456218988087311147805053125525152330501905139038541742971151664338788193785485715314677603844524000090608833271866632192228101338373209071487772963064913808777276879311776084199964941346390318187091406538026345806213699272939240351867512657108660708758736593658646831033223335235376529849288433623543844592427122694690548829420236998965351105392109418926715956295997825532561054897566672612570710737364358018098842391498757653769497424339697308627685004332741586492622677850090208162047142213631242440659062734088972572641266360939826876387254433724802153447474962591940267210865494254798307452739079299220630395012434976863146395766330191857787790664309589885476718995091176464952478977785629522276439062082925883524075562855628844830588906125555170937572880380868541957471365509962215626080954921098846104422568774800432625312612382982609167785485239741987176738692372222901325757771598619756705661587664281552120484836772295655680293496261569170854121853501526514293027801916095500083584954943204714266794374378255980920582100247564328943059267599215092156702662102135593675013487874995220536700269571396326893890526374962683096497338304619772044578616821225107762147145536425377722688352796505731786436525417841377841941150131106646798357121910196052268764620869889935076676913660590471776923942856398486047882978038024376901935980589954573277502521714367046915345883139816612011951407174874506546122921119585449706933946859279740213914178051324916865887409907244622697177887644024387961827651087486559057429847737687628398851292202130962860587595876403228286327311071938808803006480398072390968802745751796256187937562433339717889439246104979703297163194045185996424527528720878884381769075838996590807605957037290597339901619534972121791414432092935803179276518728962207204110576937453883511543924045123249783266639020530411341054848367203351711285946805963552177872200573948461178473335545073579913867679265925680176343835096464175882048303734981496331376225324808095511116275520243249095338937334295738646973616187519357135681460916859788202490359457422539713631499361364188312401195780885951859911902809746253671223331865313147470644435662947570774410122518659617877705227132187958386434432352113915229284402091777010101779604716543309380155988998952006481541782982640858233952064054321616699053416441109318517094983803344792572828358077658431009577412572363618804184546192033626176514617320352577120341577349273057606746207757782632725768304581534172320708005436253563978111939131652570860956837577635021460517204557603823395689354019088773370495714045877337018231195770753821277234768482349920531790638269306546380704290443666835287401150428194694739916527937632665684289857546499166702859003067699269393725092531932913949281426308719173331667300058022070550970111343685868925509618674390876131946992959832963883594521811543595371193786525593048542711367784592233549627600343356107766213995136238594023110917185291993799557109619521812742193323406079875509340968368054580564000417052021298057940450578230217014994713953151476997790323527797763872446589734306587841275556892492714979128755774601834028661747099298181879535576189200683174782146446732479076463203505305724066808909732705248224912246630045009496226285853493179046334263933945684002241530880959008694700036702361229021344351438104440638357598897403104645742704969480778539398242594302906215520844214405888091237105489177952382038881378676292972064071128838391266228763575170767491186808555202197492628505287952654573926566087359616679648816853483848408115165697776776020809665522821462510991748022138681858610117967037661347906090866874852126566890439466276584546981408145698998834276325541947703933206136849486351385933408905122102317782359285099547544389537583237549860357272452214690008575680623540989883903025492684501988461378497509472578685976915053880242882964987149701139660819936336076279346668960292417550009649906405174271620874666295609950224288114772270197103625583945106235779321899236999036222116035156526230307748027533952312409723285071556960040176978610753031207293912269328829441437759138640378286572560053022700025109495662441605578590125223715036970390784794168492232452222328228585149782657376425903000898637753819246659142205573465897900762027894710197641420827691759952402210874224918302608395136700745616687604374799393305361637365914601401922504975659725033168840311287019961080958889593837207364356325229576684986447657390745604700223723623383258853583355351109769516760555230502785547133415618145618218062356468562070157426890087357941625886127010120603124789859798705223471356436824667975192095748041067697636057169847953853044055136164694809834438627649661694951247067656585078366350406716126828850310069171501119248481120524750611533546431964888238561675626747174080138414469543496598793595892052965957285417970559073850661138752371772858682187317585167614236144176717951898353997498778506315910766273066937848447323366164397159041835245653186166461294092620890955016179201360711652214242773807954914913919762311002334867688508184408821939392684153281537153839609231520879489296037260066217670775682798391807426377492021838524933624647046718785236081872282810729379893024737126151696599570766434561431748989214273615982597602006738180593308394510433894388800842100794578219147854584240751582567304599244340504925930648989585214328248606126917265080911345060400178751207525168177236424611971406015687192325075525399922851298599847687434092697281627538015307406062557470525802694930205698151308792824166146130241467093084529909980388839658739619825780224425360187022121876881700740892282154470510403087847411370476659778024212852824687783303307817130621387851955475547684802072663541863552542887199588778162202720444859333287390025760092807223085385476199919300457199315674500433506103641975940059403071053447019728319823172253978973897364186583122415237734495682157830819997847247113130557538152837216643115753143543001044868385376068835412726503463148258526224945232261473462857277977557670447040043708860676636140499557478584767319626626750308992489096655106890223869801032484171028740294166993124836079782501064031463490273011109655945633444035619536335571766772017184244143996879634197772888332574196593561910990390773930184974525749975589771148964952074089392841527285967960389877240595708202015799945444626504495119150723632118884052269651826890924272300503987756122463678152024549061635848724292875107208010858636848063510901448500015237201680507595853123282790273479643370459306806339799545815613072246536698764577896082494394022287979817163735649282141905092991531143708271373933513532381428172758453083668601756196464104290283127575692957975678154006919669203285770391038468680671942470219282314311300672751352042959769092836006445041819991307605933020968955760474343873334625619126173917757938127157837956992957642267011044110303449668848591742720323513540158764869875202674028251687667393665724717810812721246254962475640197394912947191436244163605815312069834576021894209974984579160669216192049020320380222123240298807257776138063967013401298610331650965321521635170267410452755877472529111824907672475427319895919264113046534188779587365453846510867434512924184710139454039678543695942652068062360906541014937897765691723541461964400180532231464003413883046989951340867848266878865750932547634128094971896469519968093084022753227812986919711807828967911193475451936956227380131312026216719266244297672093667694777917706292132312228251064256065175868783803877189920633933074888131027491502560675675447229692511626441906233006023866517070953199766183866442170274501714239339562396167046322967318953419848709327395203292108030707859817923854491094743546274593949639090510487766533530009509969561562161124685207036239180626210471619757849763806424827176884623087257934016612126198394746254658490657603295235056720766336844081563759017968478996535662576386644901430468938401114924105763285346277930724740283304389302636810236734882885089715105105798956005245992840671512215609299402892650722134250898555546433645800980418303379517842725758038435329127226032153067446149030313386090577087784389386969684870216317245844503173251004694762169672486640028290193579941521730996828068029948233596550166556765729801395116383553385073334695616609334386909274666405855216480025167518355055530138198682777511289297878318794605896555553474984595441963141250443489156466695725340356161132028519737195446969936359021376297460783976876524957162352506186142979036229433921046132802789651476166091763926507505942444596873898028471107324494639966901237569763520567067177190105829629103160153899154139315415101710820464653518811558509156969215218053216610034749803377032143279860953914011783013911903756631257312641467910874119409704818835285259142355019595760187271045814368282430353917633945992810801831852521545186543859118436496218198182143744304963594637467774713545325767119462014859470066114224912903254176597644784551869054641277081145424111016553330303455429556805533571449716890558557733044816102456567605997269459829388946580936035183727333428055329707000802858215322972538618972156287199465288226204163024911222220258573316112407527616577383923805514236318893144353044987557782425452496364320899227887868481243099866094725407508382621567636233092775165543774397450549150253961782702028219078972051590372391848688857246450405289061722827343233092710153918552819441083812184571806721068345912498215153359092402090034060917566212832368250176820699940627061443655810148454799730350896593611788876243761659836123390776743927917471467915997047344656098997662479056787534084786908139024550832143322700168361842702857152998555539253731863600668832700955994683697703704829958591340876213980058401146826723821883846290050028698569228874439020321376880536933873136323279312185316437016006491030633282270340233860896516653556487717604608116003922835123240659520736489922240129998894140324890866702227497199530559307935695175213099809400182944684543551766615031500219881959239057457759844729493447781369529134034843658145357924283323882379815606581561246614754075690823414056795950631822808127483829648763890522902993335341288284041958268801516898852949976529283192570796254115156952150248371660088798598636986833711975947408974704410554250364431334538302093784889250977105296412145047144821687272818420636555707928453855216804009225582957698899193327556611145215395502995527295806919406951741163899278925451370692544644115995355895743842801716163206966178285291788435865696830348534470050400528136899726287931306999761906498280403302335386687409517886026832445323134843547883263231824914299146409800866242172540453372893929622886990157347863777548680993217957715694407115261168271939173487079114612165277011048624626350487207376670986080752723632996075498729501914318085172853319222220099830839863910153599534336861721446348659342532488269238610489239609352066816603137168063781151839665703295680124896189326070755870152115884213076048509881286790231557812520997121666851987809575710750976805718522562823804793382304087954815116357139346842793241511067398386767551322259320286407746410167988179886431700884516320463078915630740357623722756959276869963735040463531801829281459894925256192489391534212335541849521322272949037825917209953267296405309261723985961211379260104563461409075257888384520797703527397285220897145289163122345451584671868640869153862796201992755904505087778439399773373438502233076404086071760044087472752288372968705040516390253470581340327394651888430469893333693502399366899859549714538204651166159119185660119257353215952297897142375010646453180620309771674184423540770318722404149195943298817655317342731894740865849507819675873114647612625419092664899132305281049010423089258907939451745325089907410535389779534261917058215987846357064406852622151069207277955042357123750207275423337457276616891876682945384730021012120711977792842823281739106656883189139656314360358716892589612927508680725449823659384017348702361780650752778148597237284776541624764088511233849255538639322540712943612436855331147067684728927007088609968921237952864068248522918190963081201681825611490162042235773060030955628073689105903778861067719798637336434537860763693182917184806475729975946314007039374524761921708223043531109865396050081771810398101824099757727840655566849840413299056642014679298898172904203489657957794327979279222913964406784520320423070924854147405840147460599041935459282273166192292106086278313070490594016108092101231258792625036341066034385666372045577873090322561470996814285172038606745894604843545785576782069473580681087999448814660676397312696013905588826914915887675992286261206311024443920624208386037654385313209447183010664726038145679151907674032410489968506612196577702340955623163271497043641857785082342097784330962287742877272691637544398845960308649380245589279152927000422484145871483002234196437349886702272308791049499956684167421965153897195822598829572553565173784729162269911044244451177431088666316097696441385045035559243987891138970182815559220453868063799452360945106855691258178863762966193674399736873844759226336239795605078713599111147653363350503638934977319367600835636508905131548655741367342199847486195563967930264618027214449687202863929304114098019897098992106493140334680496816200605418404721485530205567387106728604343765563779072274160452897321329446177701850168937735232960543268301477446360222939765446176030283250600509151520561287772983650233984306498551879189699393421278384484230743834260915787997703644577207070863842229887108794291976562626467758061669984881839916515199232161001356243763993967619151996104094201698747221169433432106937833478354768546032660330384712540880408086627455562312417017666239999407218533186121598928413583681652333258888884357883295987474808066474098191466809022095429127480842409564647692423328334412292249048966152318850188014442032735677172575449823026305617782713795176923982720684402522518223476045199856410321958461068552425217822005779757573538834027072091174578499093018700340343793167253974884508044663046661177487951728901628909053044675501579259716027482133605030161847440825249462725212531887301020911831781707799397632512209539688253920385918418882256003308081210687047310344549554305987615701207996905779109674299211500839625877978140932720443156172899805119748095350108265907949332917935870940035713532659962426507129393227304025742117454218550602323644165740007620673575021709505200682613792611125364610689835231606641461334728440976762761242517925967453650290097654809356200686765783802206111525779000910330000053020855548288911867929029280140602766445283948220679723027485810251943545511733557211103381148808756719932741850031686743907229830568054369567303337299684498154070520254203228465979562076049725748461522498999327830428435974611977494994473466191667136304184071216890682514061239127895342060196077213642779267587922639736016224923294528294363338785141200693839278899526757009782935592319987270804717936342554862499200380807909977937396886827381155675037617739516489905141294406908122726818806339511308257300765967310565898797353801652924844526397021165456119913531033664799366868321716332340420677833738503220979123489033431545171161198586674304348692125491181107936239751411113641092327807796571426887811003782951364600860989419134527367341602676350502969596639183023632490985088603598592415392794140380446571312601721148525990001836700564081710751787384885300738097155532328778045969439468068116190743199880803592983588067573085169821754268189555614897915210984448747416025512851363235595921673958248332203792915786677245682848436223773814616956030169563545219435011864908841053856579119544707705830595561096650530656501146263029263530860544012858715139507495705136005393716468447579137761943911180595543242423385508590949174666358706113715622099504408567506797729836376907110295595133814066153305092816556375368923607068919815385680262494150433983158347088338887917195662283723267727357841168847732872153696999550470610240387666263595358955123198465642460440812912733307646359892864635122730567111318858003075152358340256184091156823218357064270233542309243626922595181551629778309763804550697405563969906228400334046947433272451983595805400764325235188910301669588658118820358151069840989861472069406541354396456591071798624813613998063127790163621910041881413254818187957253422351483466178413098449595376988116338420607254681887903685318747713949270990880812756078745765471817615109131681479968222607057571982559071473251541262660982803692243018578879309183663076137959442956673066540499992705420083693500261554256343709413146572811743362621654095050002082941883432027603491252309171765904872828549375433981405875210845751726807552752614035077560060496361986348194831244973424484817371360099301234751744947505179404912620162715354244050856878384647916912070286756432441424745609324059226108043045410505300442685139566155386899833609710429315854763674474982386427655937377384233184054069822096570667856350571815058719073927574414448790003187066524642858778247317288083503546088313825143909066845418568372476390300959761106662149954677100379931600022138119522117491686090354313469315736852768374802501431524700043521317081016081692264953217810250859119910720590728247995251684462162190533878548361367887737221409001217464076548663235092863645644545993912277746506631959353784957331585594504708689287158477496318978257677354325326297741118613978849673966252938834966984576896992703978216722618870974529140062685146917677512477301029996536443411972631821918111849269058299641784425567394317661567062598218070039520332873093004000238410558762178649062726341810454013325110193077485728415892270182406952129292160298709264736218071267763415678932677100215508454763949124045077952326587347442055657892966025627750456383000810048712503164278154553700294973890853745227140933313832890024256097625202656190106870933715706966282979616943466486249725041421785854799025954669208154213491431752669627884007103638431463098702477475725236991920445813389232357403592408972412331151867020279973303706676350564549346117394168224788203853181423174193984671621512484881851512976761685851660966788363250624845429701729044133199286627918439798300378052979430147216138661954578095100849758786943967511117742194176005207122137908129173892966027137213020238642705351902353876757061672214529063202837015312729505550755737751192649809495819446549143372829528334485782868544271608472292283184694417533049093045514554489740964147446104574154657923399704031724382010536878876405098173126209657940589454571417506039600307357396413776006687297082952630606144033082403661075709742930166598612845096944380713648360434759734802900901053754063521044463465044857100645328812652231837627113999509518280033185120322338982882357808351612531451178231092034273221564945033750020862555248790602859089348615348369951298187845192634495955256540818784251046797911417193216713757894786548340265852981127617675690749061481081380639302258676063255786326147271164949841020126457127712777833366964291544590699025015004031208774205997470992060622887289104595225773603194164985526718108087198908513022387870355272488788063569778071328519994359466078901326527847541461103779209909806497600483520425286815426198154921481762228304067355132582748419384428336077055348671897487977702126227293756947692875238760106349786967796580437497406334800024492562944827565336742680030714756112742793671728668554869083656144012781898207621408387799103794527160143085996324021561451083472524638278845635771633844326766060988141922935620039552452566533381564989086441244713563544614099338822825303436336539701563433958210698457093209267752960260456917663362391026165238447136733384033871800044094012247298458849330160191940539600540864188969499520492196581316085484305880581814764443204572912487617798545739156630672395797738315596984158480904196585860636290895910282470302995065286670542833669389181994774923572417088181830832523985192244852662214107815416028332440778392517743598916063771073143127225008014871299466407160058802559395765222800830169671685469816592350505755027711109185058118490369758907428090704671845311213185332652934356223543035555261462404901656664585929341397679828019401127590544959581426509272890912477802686562705341922765830775749542893979352394296064702866702279824952743742787993991762411671089959403925032523948124851000395469255039148808752474450872613578950121117116265562023355132200668641432075945161123016944460422497284714092062355499262195855054712035124858249613764681150587643506542453606842920646859804837161363148110196916228812813920461029472759082502411428412901095630778730484927336371450800531759094321666963226820666920774191341961602067190267173958061414386404565171406675935467484824678965338559906456681527861641655691464727283602132381180208157865021228995993056665784512026144728731098292758975484994017910028427994892443604317075552520616181995971159196437694736095486001987581300087695845225531389474068340618928249682744667398794864610085156000187578601191891771519850978996528033465470876668440894104286062782275644266608832237209373891834800357726915102603753431739451681398978632304898708008021027421954265913686720236569107750621244224827143702543510720410179463565063608102424241682960240529714940615263568194950544757508360070371352570965315718935359858952004488566912976544028001402633399327547520376243866859622967036943808973737833233261683177317619549071444209543256973368464750449062854105627303200387977027913174791073185249334127435233241845403132960856811469083832323794652568599201467579789888819349395442740024404770002924092775544378380283660672072507950601650686848873965842503061462328375903060379534840780975908945085497862158897530307341134335782289558472593619715738874511650777715042768823462972708166189380306675677111444213251287597258627262767028701995650111460486616422863990535937388399755725311494409002738249114462621760317450773510985019799554471634739551916307874202735235336568935908760160939410515880937271040119478070686676911729857921920938222168191053567781254675632422911018712878817783825515080799964064462924407532180105757728145746975705704719793130417522359458328369745794938364858957816783084824106252013916056502601215231484614585046597118383336886475329262938704320442978254532572194549481357970507988225929675480966832837609872128208357799106070073041325199734393252668213127795501751454411219287174638261985634509723334268976253027434459476003567173695240587863168093900213688146940383354153500171530604119251966584993226191614872746625072363637837585362526595576553627143847046461558501504380886774297647774812787420744503897478204569407546196324331022313856065112176267519329575118520065113360313164028976064574854983848367137187571737061135134735453201095922859337720490472885241248054566804953167390256430941517775574666689915165380621999839962368147509742149164488328062554400507874840910226602501165191340104319868336182426277635882616503900733702321859003902767136177191440431152705232782730241297414259344278316115697972995953130688835795390517644394492673033302628778367109670241201068302060274595876143311488335276909723333193790223381327772506213866740824988477282504231238555292217347248701783987621214536936034569065072735167293676820550475795643705138318421804946059157921866993637760184933022289605331012003705464083371851422111731304233776819364863082261570034060777990112872927486072398334348467662141313691338624435615161609760138326656113665144122053606471251803373217510715878251953584930113750918314582158739213236735929201217096194078246434204441538519055003263364401356392420019922060289153651591515768946641624264177746516364464230114920045720045508410718855196707852307087569910001640394821835807608711539955284137529835116432424788276848194010113300550665000789026409278641564802802414184709994750802083738285614735991774343224852417608760398091981639146398503915145502075013483215327768085123078133679596757640399800529638909759508700242493893890430767880709696122700784108092617680390679032778991361462837380190284475794963397922362634176458969195872415640645506836280839020103105717364819802876597295962271422540784276209055149109859814215200033643567492718141334930231782636589631902575526978970813202274444349204478026912069004103083971381377878713832685613962593659111302911747710250855051787331637076654599554394571325742787717724121935146701249272100740853338799657744092789866291274824488058084750890161676383296690136700210293006901930832714549801457855275655607294739170607288580969146458139881494308555912150612345369071544613647889491640670403169281239105990593653525948818120187975737010124837595654641857634211884187998662581591917136039924027993008830131297562282160393279557683950646087960827761777021288336932192040815850830994197136030492193790988672543721739554488517036124093372209560894246448663893682614990850810480901495346939202253625243205477368962818747381742690707403576670349469753034373666471676372010000747579984513043328805501711067511039304259183155742375911672544828570470179239179334830311145875495812394619613602648563685991735544932801257047689335567813152556318517969177526833979955666963071146788961787089673134014739610082250124199500493849074268901560974697749061972184399430625805118194586471425417857264759695409486187469162901277996664064811947750382166723313213552055090364807416659558724464800586997733823291473179170154531603065312565008758286670264511184554129203774309725868893801181076016012150727478593766067472909577310672657539527016594937344589163501753169019151774470487489030764668195019777937741237181925479343248682277315762592621162990558185882436430698371642240667434225246673385989930482242261201562971953407578207230934959374474130752958320283294742446121387564424969707083745331392265841776392808113941091111867287461541580418121494606497821017413673713288208365461262404428426627800516497809154893633736946336311470815494593762325053687071992593151819393544966696648538923308540995764403302986050515501510471156595709305159472371926230834027108895717301204840425369578934101593812695720613292410866855092268405749229661140472244879486863497077124575312001256585446967752283660034256414375793274085699365451414891928932806342799733012399205538421119171238578067760209329212073184121951494626570089798041946697845002080309123029946162965852367478416559024223895888905458981265750742245348353460172198601877762798890478434597548248349413770126522267609685732244102728286604867774243444579935311938118395317915531710402269753771164056665284498068778774287141204817858302880038386926532432530114043050051162803223630236173129206437767586937717403048051598531479590590336014945077612257471251089769625485127520196639826544391875303918753329433440546612924538641882621074720462635496427151213988584257895271078714055734761353227821252925914927970780717013116442647326723847090787377284845382926952804628452370351513076199939421157798966744687505166663439281085714084721276943763034176974319012109449174032594476499870559922785314555362023456127484452462839332023443128296299463484853073716931855708966814563391605668176808731379742107453052139088351116519827402228077219106467409068503746026235915522311725037508862132321663804277954057854606908297190144851828347103358926391597337378589103555018993911207695279574679123110412032820293885438259602583302229912696651644093976072257384093423115945201487689264526684573381946948740361777324768405388837752017569692168371796488540148016366900290929203856636237882224358025416253653238377234410725904972344910903131909463748797300169743024294558742838807736514040578314306764540027554665215766800852575649750517184766207963637440434948255728912634269581694255570703592030081597746607953995522164683106862218767823220239819291327657215014330537463455822523491823645914586393326233934694048276959109797625945412860405923714073698647395572829765285508181267748808118652779263035332015723621423468961884650272596160543291018059602340010428530050042243513719118360775530132446035284419465384788031194203424052236915050457618655515735153412429414355818263892791501181253780421541778379169451807131067727626146279506312668476397681336996118821869882759591140217332838395003123745867356604585608901164281439606644796355399398368349425351397358437245178430163718654582425063151186643551239380536258216918103807556678677961316817774402935462047669375614463368985961055256558904606665702322009671651779925104242096373702237529370680602062246809838301072695265479223858914055337087177110990660371898989937127876291758441446591677211416493417623891838849983693815168533914986006074929253078176688886681714142036206166946189906451093753221051077718280226297261680761774613775617090541320090612612340668450343020866561564735186968580275040069992270558070113441605591960707769953612694484962391707593990010028566835557261118170659702968137705113112464505076234252771693154724792862544651148971449656536904207005690823323181657956351058214266106015195197751153328436222466831158676150933475807334154066274192657752425866029756436385786227059327571953960536174862371598146316155864727678308990951857031185934982266871610238869001847562105050107077252699260935072757196316908305856848962325589392249936427927202873956351941394974531868586186760822859993581869986212843321043284721459171500018956716371837669248234832282164064593917710536766161579829346021001665760578460570834865376951546887013529459699667041668988971817821697289491518956803853453547192618338054202157891692030391815522339792184136626390842876458374417899885110928597979683454896342976865090612464993807138680701020145844883806063304204884176592459970592106369339849048518104573728941265105642021075701599906666667723490446371149648678220578910180663829855553195231892678831908287041162551988957208584679389898475690928927392445564094494766255541784728393020583709277936981718628681087642153388100220452039494592725013234294130392718327538143699969972016282160491212048591477756652286315649146190479220942722780338892919856546829252509865671792903737730106504707515328309313847907659708583359489337813558882418232941769938253541452347048905326420629316718323123205263145472524983087378192276743319978154348332042279345202498348244234993969552076932319114260694542534216692854970462807798430165971072492696270240786433434368113007539711814933672638650551286376611538722226269983492111624231821488900986589004225209294759163713219208023967261587526186797325875523867869034174319013805577458376314072000716895152781787898853284788516167460840794408561084243685039707037851881069097020490277109427277536373675422991618217341223036136223751711172143548923155680265111093054989769789112793806150583142321125080188906160879363358031848096982468459696016031423313332652387039632957499743884713131117960354069243054066935456670169744945667865353173469486273634803279516348618695049782580591369827469856419050981299964705829521939534008452737412350376356382729315853068486896099991380250296877112349092259654979919765215320837660418232539097431020328380660474399475778655245333450570286457890635167757168577375591400015624654083834253333333067846707530733735205477100142270120703783628945856618086248553521440087663334715900132916547037630046566059863534677787195234436856820489897343476608542020067156949160844284544629044108509018802157404309238233229908464954499708604362172185903676862205572875735680759801617949867672839777391337847164038685862888446615664751819596112919874185505131547575931203995933797218085077827559946131696518435100998188097264732328013044530212827378016189910133598339724370908220405871764321124770192888735079313153591595171992869353148245465111210024965330583674798083298927970652818014208932466439064034303508343805529906203141523682464635193110170215327362626087348063532529038673389982016455729352058653262499659274480300249527481352079304866010732830393563694766627229776278671775914588458658330497861192974958524179881769279187676401059820162498204046998994583183537148392317161165382314749279281559448628857028762677204091854589243306198601040839423168414273616987141246092837784197157081926442424702264286056565485348982089430787600550167246174687171638231799734804623642298359477385254077296865179153939472331503813992151509777324413343251714017091778991778503050448646522341795163144400584942533485068180331311505558081951694336968623063729754151794840856381440309976740309877385872113842015550818437118054194433944060984722047453699483924374453251073239228806995175468731021839748672005812538206704917433548067423449074295459112049910195372085430249235019344302087566441250657070698164091759767004822195928243501611809480869518114763500964238065794264326571647663272382018904820989162760141925454860578157296403412754101494827323438372268189354184687216812611101010001160916315504132063962443572015292888629523106900551873538439198268889550927435195259826916094536946097651948585377755237371183546634266807167525987192256685594128791544770382963851295472306339182648419698535060910569576034024091166358478937405649241096649848349111949799482331518517982118368632061988574519769364993129233128608520379771833322144771418126347745849692222731718490917380084767437486289917741027880382671359252220756438479489302630228217678263535469193338844295373597552502321433082627042742381753821057326540155859061856185398603195316919173976756662446006810962306707283078044836198115351977984442484731034991506869431149475429189327992275909473353006151914678670859837751049330109121512164168567500383730788461733399279944185652463850058569741274389128721156388927631412178483444814116486107567287187336833482693963308907883740316323483236531899952516732720847466565421883380219129559061162327457336085455407796539854572879427771776087720438571005650504893769543998945582948344952932400762116845174151876515172065379219468388565760826194371276911226315591398117550802996782278978415767647514683387548990994721877206790130608329928642977021453126617215737685672638479693045382184276314732671022846367608901930344790105187105017481818771777894336175015072275504855749788291123578736608658767777552282069619158025338029811171008842899884945890623620063688554882275113266187406022321103171421842294458981540864111499774565981736016149399770846199518476846174259692249061988213481462940543375966082977182796590330558764579804560747586280015103321729840682997500319705790299034483240841077823067472444961618042473852634921419852657351375940897761329524771703238100109251421345209575439643151034332618301105394798615774241051431737851310815105950443142386676668137186468474724041806491041636346814571242897746763529372208910767519911881966747363904994987356609637761071703610321966680573665483885466119951417457078307736150713592468632928230524626618184811556186752434981867665652028542743571199037937430593761504245815624210731923836867224173119012214506960867915074020970197591301956002282642247831304319789292227738542181748051313317248435365104846493060420549773439529783958326730118243522572350184975623833225432711253741911911079829831627598019168781837854465420642126562716389616909489176594337958426162284030288042717780100572402491596862044734368357681146260571030431104074240290242678016322280087221770677514055836630410190957837207948381372977450671363578680833320379368031095985880132675098010149293820397141932133583259966193992500697794572546752933554232229070675493432949201968009395879713714775207042611021817213452451377045440714680193856700842159550908281052406859307883156266602655820421730391797749250046038232882961138996795890374670942596522699132923189672353359990219768600639697826166949724323163625293675896852032020670675843652484402451832989850758176581674332100337717740577489257862796286853626507707926718816812829409587341700579483909393749154806933706142565792342988192256578459992792139872272680292744346634919241007767872159658157119601249305683018225242115085879926830551117730619444549109335679258029482406988008633850313339408656544784902276414812713255735241025209733403068441194032069815065770080054126345525644769107243254632813656249756159150165868674234871440658227776074741134196068205850743885119526202874693821283406455969642930944959210150043853515540788424871954058240405877385934057525832195908050600376655883204057666740965982414413753661675553807817518730035122880395528701436845840803324386351097094070158406267826885619806786508044104069224761084393425093275636916818539483221890259015230429590726445740440457214488153560251883313485442853633844265584330367908862830546546487847731069766875275434800577239981855948588190085984006963204975309432874102731834106891706427579605278400541520440062984776889005770856739142196292661739183561636651353571492787186647781761868996202580221403815555385072709652869444148060730923783044590517308023053978878991580101524167642173821416570008025216312187952630164477249420788655308202955988463509415359626352408015223653964218159981538786945420815150954980820289642704105258632528818094982897112894273099396503515524350845825511729196932110714009723582971760828391328213202858689663652349007290245573620976678774696228949415430147966031693572342486072576236543365875599286135266658186098506054101799611766795128259469343639542623517131367818650539780326857034781676857560983278049876656036307539899115299319982737236303502417845597556623855835856847164382555352615353763889288902591974094577199514810858298018498630168449167910844604358642338043232959591513245202518948083477005263297541178438186290659827571346926494033809726493869876758358013065775665658944339650025573065197982195094783207632718514732133871658508900908117365026412009529745190913605887894417771274128661399661115342105387829380254350204030895448117737896675199193999273950537272691505808910753285641432217873972210844448440659911455283484631647587533237683326684651198145447782361087788569469118892376276892086288341277879767460223434705294518161479641372096323819797803772322473546317045587702614738996400705221862615931362650836134352405718742612491225871093746755797409941683913750521763402954918003235082229442238024074731751923229387192055212348862012616923116515178642520222636855272754020758925002027505381205176841177866234286080784986807256880215569622905857401936778382440748718175406376166602182109569558129347608389997729110152168093590255229761543501282853031313565480343723235341741514523651988345488346992500648337457295763028820514310254527663603203779870722893113450144886618260516966231358260785799173994993512507668770465219146406430149107901699478104243956475568820364091431256064751242950212163613092480897873135552668716938642851619293030276490950483268685573364672903276871905903431254630185254021578903234624487809799076806625903107703351973546799261448475316437235020529459473661136810634631256466768895014880451329960037374722394448983158765847103369450064758074199854206726142369522655069732216721305437061548595836153021479388410194006551878561118644614463476784613217904969577207426792307569999852869115762184838290804081254278899350424471501375894110701799144744160266038302896362469290553091557345953718638138437158226263290699676123728369336158930278895469120742350998017492423468344493533455778132655084327064646836704578686169299333739824645194337634188230125318347936175171678737551074137277588163712644020899109213866022082813153015348830019132900764143040682079818596961334204209586969489189744454617146154680351568558849953534467259280067150400773011408149845396903942850030488171262450335179123028881052625276833010746310133482059144881784952034905768570678829226310551368495800152166202327918391521605531872222653259811681539740557938678605879415337148209767892520915189109337432493440595140486681799332886442410857464887556143478491691439790757951449267133820184485564707598881560634641987530660726367056817402103933999145249478232347811644890730876964286628260067558370195189339195585022630658120672794449720656641498906459044836240894996111047130103935181110086638730795927750092749924499963761528077867441258618185089655193388601006061513276630279961767947800010606384669645779830887411524580176988809049738252681921544193931944608059075529220750334690039606005649173661679596396331619850969162170968934447716691824890122995744183938338818564567491985035764407212100924219793692448977965442104631633541430354126949897244622624210627043285953984888900115915700910706523357711787464798778023134469174554514351146299016747095925637757370461410322639057867998165369927274411901609480907369859814448471922991675076971125892131151791488206320823861526338024738869673522805100712434828641486674987384134511801088562647184108487025192574225269570975438788160890670215245915817835813279010846256678635253972718700289741953628485808503556546530783996206357143289392072696226668363376403622394974141743220306298123666537485682476832208547814608027580286124550208949015798258053385319312404439436194581213808837801807820151409206781461300455223268116627343782721742852516899465009292533597533321654250125194890134184620155456379394667814159117266047017033283075042017055689362830877151111290260038289636480318559983958819806899733826085515795678838639144885425822055431864141812278749924962291131443386063679728455816548027760594209800691991429507036728937912564659015041528659234639418413054393981626576595035173415245182350993330650356635192903685027140896291418558678535327551604734189809682008426217594814820226093125442143370005022407330739612570503137695678285488200976847356260687900422461323189758522248505961981971418723678638299659170289074444190318234930289105676679947709694142084651967471236608947254057511579460597752355725889204991712002422182997701427583588691556483489409922548873619821643510034791229312016349040473917134525010811922000693338801895168529260147695784291048451590183134523547373090277473060539140459760264863646088471073370121955508812804842481212378801665571939415451418999814147263012634828363184785687680536435017269301201983496183529069849572033971384044914843319666354798711069714384991589459863612433253083323958984085709524031947905933906118100068040891781577521460782631559014045847157858081303600899856301690722412151197040629039911378530374583402569134338353118377555001867294521578171575314099605916121903888803794949940505347212081927510389058614850065997209580045916284636875017256662341670871042961262237724906171126246059056678905959415096349524904850210382853951701881391673461076028034186783384975719702552598862166608496104726513175160052653106737773221743011277535273779135451990325016541107784440588268900383430841887008767315765324068713458530522502122791634643858911590073342833116827047839283581314290259458818881568546650377409744922389962221665697773313559843137134275702851071119634913088268532564851874534964377434649487359645320342007786988285780918761603622121828917998869401366509620636129178971721821094771204937788522782869404890718292372155476092411690830001249862573350174222181525547912141248348068919259897808632726663856643790143565995792268372107898897716005419772034937561150361447847638740799341110717843267411221564418697522719602138155036517071773822750114907631908797419874422074310911404405550126749762024713757305380583841328647084438917318526001691095432219104601091896740368841694061433833919133493652823548936028780177907290845906501953444552184784258219168770743452236144124978590860477860127834733900681079372395527793845461335228244026788122412319026018159563623964696748641493383758477853916621612381837052207989387740268507809687526822158983978496428562866181880118338906063869624404939153481430181776413324680496619206963675860855859469846612389718076909824125527594311985131134215442294565971041365279415776744136942475440446181741409055317777083585352167236076537911154349421457553950813068703367445500597487475986534663628493175006011565205694860069579743688534783608782848606069720385770502206974573490662598876634080271967412853101161079064977481031974375580060350736208052135127778103819398212821559929048353320720118408147767843546996719561076588044580140491570840819392201718746717138400361453865411483736762592966525318998033896685503820296286221242163593232159059469990660199156368627537882411052834580651524676002907308672459195132836101718141217321561248796299341428855793545003600829647314967074862055538044902245405903255695853287179150145994755425125256581277752943194465809336868676086001660332805309273405963926466486931558552503140590100603354013876018387183362992454299043762257116656354036135050448603850390636551196032873638691174167994954251599332252140700234881081875865657746981265790573418272643245240043525124463387093585058412791704380760215778668646971435297988122731515714052161397096909568753730314786060076840186942421911689274242820236635962339331500705882827286468671574877126097030618169851111864874084871740388623028877653904221452983771407378276797334812839226124657397728007776903599613834891885634319866154889613828162544129813269605974495337655280306733968658550974378692586397076126943885163191172754974422941286767834474590460760024897999934612078344911054301275021681738742709144048483618547606545102854361811552149106823085641351325724629765391257900247540413422665610951216782888291810880064130353416046280548145069034210259678794451277761234225211542873004916138880978899675579792769838953717374656468580843662209299265303705940335538232614208715781438091502211277590370073499760289993972801626766001929310654194387917948584662256511365130147562550917889012439118084171923250191795694047307638699241097417132715540326703268404926185599787266503891227634662495244041987195087370912024437154904281889190946924760282935451632278180187385284055203017803243787781229434791274828690728000784895452001736034241121352306992608109495226155492563051914332180083982152632378993598799809880769575215752160355257887119785331490160026277053302616536491045922622086225785757421268691051475837451814071056036692139737357612658435232540213272666711237129110260973735706665448896060938147667729469177791346981577223536017322488346198317936837099940969131732642253234728893923880564022631654462862155371559556680991919134854765031405464141324822148719012138415556678711011429452653352221830495007356144858489132411630343528100722771715918771611142968817607251701025512029431078997842982364502149922023132447417813049252990705341885720329962091603016346799480979286386899310005724158136223083862011699264930127095078222574853606849457644577126738336592949308574630993295313679184276276153820237960133331059128227502953564403762212775725620821925959862024829854262920009845962063112725148268024255438823662797824485300769295941951749969002384080166364310597778089391698671059289689523696933098173615493815401381976367975513773408239115245803931735256376557420657446363251363750156538484782581344576361896363189816405492456183561674912622060508300242864089968674473006160398183458777475857975220865307222652666210722672813175798706400359464679307163782112531844570457768016425842128810046781159424741748892718908775554807419970231297660589258385871881810594704836147524698265627977312305351532868329375924717949059386230319469589936763469848772453959633019241754920473042936303111379713906119189472226558296338001000704119547205224222303580479134933851408162446830190142347280855918930338614527244440428601146824634636923393918673347748802905502873821016596595774366942944914558125267654073868857509223070124823210504144218711793423562885437265015128741316767470389413739503524130509896635966681460884663533406170464267217409719884061629374319698464518736117884260542002317371841717440929101209454889229530972421113104332202526502119904083925784105197119395547743664742265100155410583211442572754347342376680258075343740369270034054141278335699957970257138474678593430243755688003878989763699792076817662362381994212888436919884843316653344774137364605545359928024411496682159441573499936715298203201520000158707249797487561171428444829761682727471598041093295677038484280067818414764618022052218707301641582527792442086136217052403023659755589506138233399759467681556543871061741508880606707788304699442201316212470007727133948008358988214192330484334077861218177603120781063645545848969307288875384775541185183162991959463544242031869214310538193791000994812498825433400420006020722451891458655751476180163402942491324850350937126139272325123482154558858581138642284045604552669404466674247873698180025544431233504056079571896104792019424974324651502564442694353043383722973824816631686285995370709347420172658310451265950993146843158504356140756107333742088577344065460271706773148531204079412575644215924372776215942641693254009243430807476158065438638755417146309985698591805274240058611794497159137233521513711038663034721370962891361156629842832072456345714642531215030170149706289842262074295795783565311975509657824762053982125156313734577717393569199681574931400699348828816535456259543644800882798631113172575883261290595263824350231818411043396765343449832598027647970156582410361100994410761232053089349771812845874005222816567693760492635229091487031371254447910798849712542477936295760902552922851775336092665375783451816111304315243060620930611957788214413940390723665071559817161894738332326528748147877037905634229840386279876765166705340141344948211993008846240615900214126212335131701892638925845868552148759494211146848453336086973667398666979472774484952313650592105263638116837577476136214239944195069847977213137611748861030217625722111697931592454323827813607780553822344924514834556077036648924031632045919358582935588404063973510559728428233171090246683499583819141939876651980867352894003796256361385801816343733853106032920155598049202770472812738787634856794710644577279246235206407388811486894687358019095872006985481491776587765308055474846039234131468410824829492343265489917669981455609409139537476858154461216275759426734889246771925224850672832167088487179763890993523052348609742229021517155357852505026285310146436520513604977375232938562970559379295655221908839931776868523572087491726233598922637959836763794297792288203091156400545796770493152422263178630010970148169164154929272823027967573042291371082946422796543977649260950188697555748791517300398195276747392340999940333030329772484827000847824731199649747435506201960350820089017936314529449130660463437512925935393591545964981272623551343289059411543920826135263401770478311979071585703678520561792808752521502768730143906997584018018212441405955257847748417232949858876317027083033486971759214131013900057791351640104121937465649414368950022773803690163933154515262833027489995860713461526676413867332311070660309381750245600596170343802724260127551419872739043716648431972592932043897558829758044487982569699560814440759591492955288420036147761521130241057598278849644392389669001928945610067793626516360821653935518390886816160693309040483831889804618577639954069743650004551883724091148668773046197562590277643991211272694956094780741274906848000038371276622256341074603673092116489363316760579553816029048253518574020976999625056693173800158452232256957497152129285267528288760721340974025149329427035051330435790713245837803342575575963044762628811807664513240336688651211851069341250075203230722513462886743180418591864950034052309489170202666638440961531860070137132414897809512686356803244585691435071962945452059460987882110210548844437417359108911261327831402460299430164818774580659992578110699936063531307654875481587009650495080315070768510649874876310474785753165883200401948503250002655405814843054165376474966351863117257461389243392155867515611911661589428115897589363806780682798387237841885272498995274097982258301248820118327626689467706027122029588436405176720409083262633361732349558257470463970291374360571712537836286171407846626524116233606469033648874425643534163316678479065856925657653962474086690130196461524599310300520516618573704399099007705043879711724769811616804216459719134742201094370095102281772700041905414822288238593677688635580320659656359482699241055555761283574622292724539787719404389804345617850676056753373891137275187480537826379660213493560414316560826312984387961494639614594446429041610084696013875475283297950546616035676407287291747632585897756469684531205717033552304434094229584592477699561966392971101978365834498496673390615221110048687489279547197186078564677311867887889652255840471752934166648617316886353688063596251963013571692130347485323066152696032600614492282846577781389247304181040105597766979884748993586477642660109413946988935217827420276938969173717927961096929452097298685750198863299902546211873141610416661515475842594407237950132231413216834927226344981713698075890098976997612445786457433631786495058941236661739375690781048117729968714888561260983922999674035106951203090456277965695529498047333280237268450672223500207252573116889288744244267486871031599718451470150649344285290080228305377698221925700609932419343094297430908785845019054387805292984726825672332850704227305167789103316671984011216608874548262393612309214169591089941441478876728941625177489263956083491987147391183395253193516327015965674506399756042564006897164926763719817928954015418136524457549186046063348000293918070488464620729199054546926943374301130870258852076640814795792912263766307470684065159601682412371256818605915247986128547216999636045604768351576318562281203949262315060015971477378067815313213602551193442384035004432041778021594684867791513672030942223518403223020203943445987671059417146257726298787504831946004366643274843897889040457675710905293642180166873267594780925799874177051769086534406144711783405901534364790415093285118222860181608832750137462308373285424449654768990965712852073349908224429122694929990449228815748645907054639407732199423288757537675966536554452795172185799184101883490882631887911975927905226473793478796922040098250931978494124969350042605337850345114728321394278103382924478690755232829453642596932761589772500973384655915351687882951454717767902732222547606842428255679454594165677674104993648286079404296636021214698911853195092160274390610764984707750473642029915637591012425765355810046706581574728277218764530195888010063011905125435631925077015346877688767570752110493183741334636896737042593125895376083196485457937002677168365869457145412152130765138055692574650846175846295284936075282341301458873939133129601726732040944451809235508227806816603477019352202029025550576088552509783519321507674330907867594907383803585199329163960815670323115791140433901804673725002052412052069276690589633706031332564408316875347189356634816070675915693933750946619525051876910473085031174797640026616374353882436145617710610245689679917138381406385739014843214641891731525624025218042635457781221868635404238787239999856483511991504904254500585335079099409680918662204925780972971245827691341337182421273968881580815429609808695918331036810017652730130282336432771714817121017362179642027731892952382696905046531668932289474635615991213641892873298425908373646950594027518199200937710276844686880510601249309672525408212485326940085444941349565518846664684880610579643938720356894774181114098354306821312432965602693612773819310605271132290204615279357160303650017557992467152071682962681930543440870093620178148312999936730240467883380039919349671095023558183802822183202701906561035401726259762432191684997196264107785459346031376395958210909002394259556540937227032135535939331192251019132111774754450795248180630863128357384195511175980473289571494199354792853391707686616540163561465643316024701345607058788966567737666854969143671357544265198015194377427220192149336335202243077740120855805299253976836492815019869636957108804617380378112441830719865569826235426268616682944519062452190537105299618642058825446491705169134647176787548229813553398015117416539854396939391042594925879071015742617765704934284583038159439458218829743916068615983488691053260049437108877164681759452204359774087094626828851051377416658685405297681752120443060946113397315084583658930082043458553184636330824872738826801686992614523257092863522979814068368595117226523322915071682525669552138593158748902593879553881969119240301091121499324314645238311029190551737566798198753409862119402366050799470173524151642453709974170226296016524321287892849881513347555853441330724448429098568714603339562874918376361825782579498115723442023096361841221332756468303185381081835902879882151458711884932406984027608513635048836232014460974390407746164453289506963424087970510193083843872214536713303203299970831410720357817279968184604294914673245794533567002034549317966194624673415162558944017595147303815675772592026045681394898835749635593331092335021536835120090212035278864929655921606478133054473133720083474665674581312006473944623358188706162646353789443322238006547893732009998586364749748468900024520547912881303576236703077433820273251878630163620620074935752682868803019510939394229585365764250944342761717950054276254556070517683054078568548745968763916251546165859394314345195165716014212405119720715327573409429937489103086631016567829688928027835430292942559225020127825026631399956239309542492133784902961354548715219190552074560906874334356478226211472192139719317651515535518871239852243506901098845796328301727296589402161468580745400065350883818809747402566461254418219527936453435683390255917992875378309760779113316054448711626710439881449862716436598191001622533386944243332353022271521553233844452669498500213836327628696000368618882819009850145130151245724648347492908093846069483795120688616197612494464282785074987744532942358797813864653950380619936920940353378582524937325283564964795893717459031734159796902430462648871980766456528430462942323747249711210216585793108553477129218734009913518568192917248955209613958759819013203748398879647294444538190903648312010071955612366703372673876742266262165882168347831560888024755586601744834734987461829049749917726877273080625182409868369980006075244341660125167373016501801262188188740864729624941347069071006909617621941689695998807415987180920645782568498849329535821913626672744548736869449448571684228935710604168498748307635512084699748427478273375743329913090444074526906282250018888993506202829889521326781922900665655670097158948382875132641188112347796340307466506197479328183980695963875045740077000690714161349566905399392313797093067858282175876134010986896991769366191217109970373871487837551875582145852947234782601304696389035491893970178570674681299562215732879815710844255313601846538148500554745765112921625210158199475710937017441926287888376796321045601834760224104574210432598848936439078078361233164474537294315963976321028370307661251186520319428417195115437491295994262599264562027064035273645597088889415403171755093542801075889626056805547147386400669999201633430712538018271224996087525501578127696613472528710289424224251686473374391842632686337165289617225656322753397872854392642969693450380735637731350692425411757842641509152910257437320692282233210553194878780461330453916024026661286696825882198553619153335342422481056026117318904638783729788380794590538604833984265793746944204839892645009597837385444108113748430739056394056042760690973102851853336693164709231274706101388677813596685671925171113335325848389938526842422585524766840222918956112493855991258265494640005587000766858010875906869955785406520482106265398844019058788218207913024690050489724608171318410005957234119130863344440712542287834864266640142155458393013595488517933032665542397664775691455793598966992498618859499361856099253358560662979465313578788299598556129490952635027586931095479187844858068232666218686467644212897805553299016130150210661268904106164896791207984714837603539206594432092649120163507996648671937325460859909480565094886426926507813724409119084703330778887723098313754077309673240952499628252927654848096084171597601270283042399478512403934213512296397246318565210097868171283710855136900258638479472641275000282164628341997576588783846454895516043626216525788737199418854919864592062797261746424995750369845986540243434534606483838882222626326282066304512434052939376665954839115898464254192836157848620319292326534457196740731769976341944230948619843168466951828217473740280065911941014679065855195624192037228690319683856603698091534851498776332559080603333921917079808413204246672227022091819967939048654171226853731485740620397187312874113031604568053220670756982685607736583913979142291933825444611088614069402633462442075978058854702352247794057518934653483358273471711396005688475312970918137504403729723067413582889004297030072142894088619545684769249700569076719596253915778612242516958482478032679435580587238183288635135025760707114166401888423279173420958576384137061724030684440111114662956111896240556065217067108184331671608948928528907927148850440653100573833930462391869493325630839639937457024735803914875787666159649740029507958691231554579086344546521903466620300530471482698846390248429419583127989956238401270338515337561024734604551542387621846792661137455561868020989203165717542753691474569945927117103717892550636761589839415365231357174048875237271746858086886079472576428130953748272654070670153247773332659972670701140574703855507930323190299641196984209285050000908967226334309728785833101727141924795392580205525532849051851037511324318683829021259180404895801075245061772347360621765204526059245376935467722846524183265016450894206256106556910831781384820733769840572072622668365135269662778172200044994369334412985278763216040754767275138639504577990602140808986897876326381637503667053491066792984527252978655140915742134377994683885099647621393555108569342036931745645108742306760955565453175083842892357834702607436707729192403107203779712328436117899731184469908883080814656726975204230556063886890024008682282581446201719580177756513745959036206605429756849175039153849387949346015322199591228908508359059519359363419557256380814643749884684230825213949554056910628485080835328198124985462161211468356408289375525869111323174689951293733993043047460968551816006918614823985867957751020422477391075838531708961011489537064777444238844047555979140852485997534420489742238695537180595749505158601449407830876281534318074360590777823599616674883787496452734937883755289417901233146754686371554729850125384711667076971045421679398845539742307149316955615223191292714005282565521493180272511628127283439476236325804916896205064858270239910530807911512651747041620253027147955240203996372532792977083119928373140597899321749028073349385457092179970203952196206838730369525180556336268458354004600580838763995788053252131162946073395946524486044076607826685057730239494186004725694720920845027801526572571082260207085898046115978522518732625682959423680080522630109341932940334093331418429874939672358345369912290633298254476069640451240441724956884997991927509955283235358145749844777550196401238614062986618996831219038263708205269407771051271733693813034866931978741860905701190901762191719828249026820677199558769773289732122393903885106078010094029487827381485308003716272180840885709892393321081053099170120724889185007532081849230242316634147589541069447135584835670052107149126940375525033604683021296459311458420885780565348011928274207608875457203707448864310857056611631370811124615982478342717075017237946870775316199534579980381291361635238371673078145444093383987321891446329551005453286068772491554523169056207938592014398055779858949843482576367299615273847159763162274931231562050263593084407191107535319120425469801870829710166064762921763138093354776523185476425281452351378799467810507979179050469915683977996190967187111749283440474946339558991667600575753201783440535528504665660948962856981536703309997653515580061648701593690588871386951217989536805825931090758228129382458023004886757855857562987793943901986093287191898555271384692763284006192563430340718741217320174639541772999168546093202957241034041724718769696686346746053120708451187144104117880825432500854612286101399153851099423215431789907586310796228217355594321521526654965362338324697549367742362029548460076633851327798373795467967192675552319868900618185718277487783381217640183647303545267088699058394683016363629724282478740467256424363630100986833531583989996735605991045453730722500321142435102308427964492610981478653262903605956025955417482386808482748513001604383453706358823922317277283390271034144091034586861488350295864738343806602924822226684276200965658938092162664542827168362996102436954760742689908134200282036808058565349064121954143287700734980315481609240566723632772897496495012979328079453805864494166383183995463030469306231090969014947255169898651827726188482342044549052342171868159485087068518570590547476359500304024694743725805735108945391378192607674340100812192700850647005974392993694883615783234887431936634446240995529377982797745134237069277365493927583102570315717665701698979630323039457889940098689830748745085658849030470749988344590871343882710865795205351862438558017872751087750167645869552347020920732371201494753420031816312076765360315957837030265815768926185117460753505044697755699006265423105805684206417867741445751882357387861692357634275229389446427126453982246573210639570652568033098275915860266966969147167765667190912476487866228706660183878758241867396505103463902800834740638614274721859916819585417476736777566637105494884113611374838388562794449173558801862857907896132325325814660533980549658282296741813505913234287875550681750669242209395030848350807853441782956729668238013504766659365171583819923994218870246823909237097171008669016222552005436257970285170899782961274492721372941666375135570649005114734910173872864876710287721638012560530265842537442070575655486988217453610033127231660621927134535747515679260488079772134245465605904765845102663343345620484296792566396024369539012553994663244198663280383345780138421950787716296537068299308795996869594725768727095171324127848266734077117559442102489581175974464870522764847865834075171246058876999864889906700915613281176912498238542180353047466376421196381919746169134440951751919066643272896442628347046458580639610757185077860061213083322033638115641354706047221132343236231819669522136626988967983679555892889903287224470592693631331392846954016049950883355468097950192160967629539367115487357818987454201989783170282481548051875867695417739047810454431101676334844561548804774862818085980415969967423045971152472382118593984111246949813705526187932299757250354026349175025361444607566013321953152129278587901090605178383416453714390061253173157818016775875528931105070458943204378188446253677782021208075426805523828598386637194231611672631040081291297451057141096490325620007645416611705798301538688382912280975729922133538812620186984085173277500674140195996394052971287366269489882066703530600818048045402726091435366599075454546881103270501708236066135004743219833837845710261945563578307676441929373108763779270725547690742888167741573189575938085620468705193258473215657212989660172719668774167508859358043275229725826192174368033131167332673119768227766384686596811801711735817140432294258159015225463367058819077482004498420691428316258213792674067684617795508171176513548500184421204670377006197593069649523503242013516744111253105167941196263393463918564620373323465663655992683107921425160115291927281230758321173731369062144744825205502666053032999037169921901448080051742010706939746750650677755691565344559890991203339190916519301341522695745625484299622499844520605876512360779777570347046855050079473537483770753465087670334084947006227108649825416048255837782589756001696748193561173773743044501414855380006695000906638669997435179738731795409683141014044201511266833970979088305981055764918069662824456007869381006628271447807969811939647556933885407198019590420804799941939902924859468043499023166822675161474752055229138111769869957162884595631200496384569364639167231700933240487998507131887317435422747617579088886472000801051543755465251427131657011194082042203983438275701973262326655819504142350453182574758544249584745559826780159287240055882013097219631702773047026769341303372400153553947718299209676734792380419581508669600454832010060630254258792961861948095073596469973672539462417487383065405490909036750654405034420996019024517838228425923725033451327827231151282932770813818122361429224784595406648331575282319543751162309173681722619460194873986114085248002076793743428038810234391894214827999172118160141102717187957782871243811275443265653179979502678596023421819432979938078641721455053986355648999447966054210572544689975130412294432593034427451624392807803773670137488917824677823374555761687031646908580498465430476658938511295598365663067264705367827152832679668971048684901019545365285325736151448572596721076486390634871661237980863301976752027498773925334920532909173721154676797249411158674832517448160267661228664606524701957153585976247511336430396825403759608111087739252538841171678744914185487911746627995899447765130609655815929085607133753454523181995676239399149060512391115772868351259714531522458262074617821842835704970986456980122046755070147710414291865319967458222956879329377398502008886000955094113104887256511223491164747932308582294592864876012418348928092773807179593887931704384321125290921726917367149326875950368876594753178009725855756609864130059220970933474849191535612478036300392267574308566085346486239890617905147508601503619378805143219820289755129419104254761701566561027253067831062107181356677740494950966185800694201194600722326084410844725981393710822251452253737365758499336993809397896119231226275325616015688387459900277934681552418281660290102940643755076780696334581955311315775548780431705781192599246614148772054275059138445238699251083847568631260891049733287700889407160203002446153385499616500199502421766629457642452345693461018839981657648031491083931211819702720092427643529409616500529927543947125235452960636103946917320138145154160833293903541944612208440489976206299735934759605566398528935742223768563543549301325855242336790418600511526908193014862834160937897728215769891117310182828141577385732833939697210769484181306632680969073914673330751561412715772005721226099765753660228982520819111269879509912116705276100663100375684252608262017375086009244636710662528515184090123430951230808444568915012440221095579585639437938109165351548062301429872743908841440425276838190560592753167741391291542526418183331022169657136869012628846076304658601280832661559098396406661005456331328507898028384365093295496159138217665368599158697977729178603617619783198522887389956249703332681398488037892621694348864505616704181783798939664667541087117669413776540687900666308816536775263205823615265493831186156589513050702825593725755139599361904474051232417177802818872228396198695922621463916995806689700515967206716547161611566423277105295699817016142529658970608637406498455547562609146073854453097046792677091194316627353271059595851987067573498452604247394804326695424994612011871370322609943553921444549976736879814964588570325505569584302684956168872339389769385125179869449883532889988052081073182601046540596076529626086241502712756665582209574584830242087507408223878610717323447729311904746332439602268897573506440058835137580013459307379628673038804118041417077533165607337942941310835799952583979137288850887966550140080718713316034503384467317430582171816161013600264939310321882961116112230017417699965943085404407474022887461489099036601201705227659217150264257996348259378471963463074190163283320495190863526447471645311101094066657483547995252526092978331618472902648221053013467282749621678306338633511681405551946356654794963883847105474326356255228539196558901164196309942801645437879759873524281849221770432652923818573304846486423538323851889875858437765394068087940033766954544857063430156188419360427855362881543490268950491955218722500293554016518375831864606944978162760797172507505430372408154693258311327044037507658775144883926271106033356620086444694531850773630011297172356646495770716776336110734396754414673714899168584958088039525719189113237855802868004095077963355522132283877894554607248846155203027022898734795079177277785253962619249103280916519747083170712134573001759991400373114957871158106904333045323004568283593133830630160491257184022946701554355282385231838730523938259627420641980562072949978771643976620593436524284937720785164564136594005380137688731800781917019453241576532949077799686219493757246674701914477108462616451790210412443767622072820463369848319403101126880472876221749443235936839141425539968668267183750206179264963036748591422601535837967450795234472499131248793657649528418552810492547741202873654556498907703449507963258229460398758684328822221809452888153615662065373890165189677589952016764093802218754287608706180896305043023259084819360269950219714036455720863851841894690036607492068948171118176143295289397269505537311592489310584883617036039901907781676783529930198577948392279355442194325080064036974334633115394321082393918037479341529681535067379267718458807305954414006586918946971780963394001717509265730632105529120563620691379511670348852903980333108813921994435098225314203504940611847731949390127822528404452411824734342158617744496030762141521432568543395321021610751667012883642620341108162762277837090002424202896688531558669543907502310934776637338824773319000481244001025079334130122419529970675783362481904130516710809529055512793252342841152322394511230584784992187380816945731931329265472909746667931152539736060149019169341691671871771911824845840210538518978976428197089476217041171359728703372609401058027602331768192898640349366309975981133686747433952401774439011600798659383392282567775331952646863636433934226930012196212753018623673936151512172585572490625630066424352313327972900477233989733638741971956225283731252733906721721815186383446465429496520353892793159813564032475529151347514936116114696072415064605972016113572119837573369647132949454168459176525328713144240985813161706264549490258644838029236018481540132056764948544482487135430921064426766664593895615012469950973944210573656686463276841959778591644353155273782831443346755959102484914248134324105718962395807274230158979541474793529421149097812823726520981616131942085779274048823695388490681503336570024658332210340895176201967938301203304193013356680193856161083542060719168596384968261542296907875514783145241650917681356474805050563628415602958300172533227335437833793731557075184182178608976675334506519783077490993242763446770590744356405212012194365418478976196925817278492793735708812248086847332760868338197264709508289227569568735519741869907785192107712915767939582357732518226417098431591113733863775342041941558989174742218807869194288622041283101972263669833449106903866939061713145425429722727232282898538533914612953657609648010499817659857834056205205695616732704154404524118657329540261454553037873702567416578991909114998755472005562721836494045185840001349671447541965079690215381937425977281657594409901361621353203191187566061233027871090736301836976389942524350387430411971376838327300001309766498133794808173201404402356495423154850883805631378337654262814193860515556972771408446731703804623260202349061139791088298312172063057471828366350675162743042425522575964865143211906222706277762540754534271447603028317940408929362494688399659077333637564383156832228810817976442236946075293479154003783060547094235745299975506302699267373317403595905373863177756217943295137729744058819595623796647269338990266003386246319315766665428838707535146837040522981024968407362700616409484556525376317235476827705472079755892309802980241542492121760937564936731938483119721254666797313739561692712356823066106064551122834558719552163651804346694271984728866099240242144645881241102524410957194253291533727233688073052993526966623665834374592035857094170926096209540813477577297974905273737269343647308277698132040510034073275885180667966255001577067361926601031823328117452831737761562047303711983496151747901740963427972593737145479577145634497763019132045631583335473215512402486534616702647360826600820338415898365542224716613816731023746667800907868355870561043648835329419640363624455617303885658598806383777269129719563261182741947275541495320301194193833455727790708812898940588913356355096928291606038912634447689488841624928789925484166856782648594550367460456983824167735613921011969700693918481952563548967617809401136064932244012256294812005136500279159102342668344755859386365220716704696473497805619528161848253528200463317348455381057011497024711032398544105498323701619352727267838658823951472936592546968188707210210075550566204765723791228287681921638136877600320409645364274908569591431113145391118331224157232944438556058338091846495675539870031175504845114709437262316073670973623497939849630911482705426074900253801828571293698080327537585028258798217775668239386187894874538659594526034803804153205517681100215887700780898381594378140932448617442085080777243850082654320788073922276855043148628460702010618079555198118557232609819170101058614684406160771757531112551226089094673573471136199378420093918629792083480077702768840175778473123911833063278723845804212450120929260281178369307304722466081415234326286151815330833582645800774298244420650423680513594164787203973764428961982960632534425038011679202704430921291379823715337781845100030499999377195079957637695930197299456378689259041842039796237249981976265856529681298975180315502767691354863631411528553520295098197323274667500496028510512490202625475932749820251678849999439593443289575919942592035808801918488625285900438970737215897577690070309681462345625119540969134453202829566110545883545633795812136717995182730672051567359317496214566423406008991812062370619996077193473284662733174753502648971448715848454792731081389878716345448420460913574767941852067828892914197038498297133711575969567408871184837667627286255468747327999243831985696377842376038451125645887799673577403253189285864788756589479194541768296938654784086162102130611088132755196975888487736129025040904947160451148496394176388384299374648512838863599250965407970683135107554252609759757353409568913019981524162220324908460330363397110619164418818004579171004153838579408414874118717424017712699879537256030759320506819219072052049992029933408358565377511835305729209706246969208626879087034645133321366100365303349519994371792087422605269322257918136394267336323138800683504824913907465322193215259643922785021055741800482131506077546074490110057040901347807997495120464013202843150922781435959053544901365368039032437023247180560393149061007945788091486990415536707544474550074640784745900861745064925777506835677541480622720631399546987057144966854028009745482300300722158825165704338279210767349332656005512125354034849035368712392324503963181170845554499370437575647090579526960506963760601628061120781818471789045771054086954150119507665010580666533169145452309797952515446223324621802098886642228829552402267863672747974887490102273336498126164512308404627591593205026162065736937185842872953956188828486387696089733931806364713478086032910206111306193774098693961769359788549312933534626668001649711977724073603346353753226034420693134630856367512456826388170440888108286537015844606979215394316698559770992868676441375330204558341387952380063748939069948271013417532973007273952316103604289144301707730117869575815606450199934241305017854090986149942954639347221859087736136676079330139710663731598444436191225992634493889243575790488798489230284181867634862422798504064643117337639127833921713358525575584397874163513112757693162417369156295735126283227810559376178529522017311061252250805826709189255689507296274106225982572032819496420819721401951610415075016341716287109365309553076762205917006814588851096624926995014719848531260018221187644597433379566570381862810010653675879836806591009500532917573691206365458035643171553101018488503955438942181855337827818945690377537402371715854280723302616552764424627616984358403585381210491225429365611039650812847281370634300409249709614223479896007156453172351194807459046691366669080817682247076926057226714183109910799344140103171302357022458348586794494379142975493452829314291471981336995142782193891831781813700778721435190305001581567712559257205826369121740117689790507313282046941039635405640979687233496906069932428059238311187232644727488929462477490448137801011393962439464192300654726718146549883324530690906302496581577852023640949493796412345109465777396458805160139341751440090510458888063388177738173521402207663194364079476038283509680981056589037193927201605669020642546294076890151896446940053546401318786513047619485606148058337296682644721471093156264199813000048812748335879433882441457498127073918200488567580181066907325225504098714518964140242585184666551591014677590939296599672721622151162312848477334567137057580931565924987932725317228375312942656401287126423480094691626127186695566650124881857764057680128868680956099663233698317329504041671076709743793248861116005617017916205321512706337514697694333257554386968473079935051904277497418275703993815618784227370201339010002267918433954221319085201660024259389695897023585820090271677544494239527994361061777246181045148171472469239835281819119797471993602488866795316743684669082847435377031955603287212557532442944335538106397513478659197507469299948608422709014434840638783455499400223430857399336912462016009020224361376156474048137904928122349977823334264629509514948713995996206957412926870844093195677194894194591687403248342159360778100363826569707902476830077749071579309740453584745563615916140309102827660040472667017480994656004074757577274817799207199181238400369380382675075369996146893899112255806641697510223144171466556242555258923463421067498287656769790557062478742439863653589237405688995021060759181736258379404652942894164364475292993751967554295378669853600728345562973399104862145860819988062457310990967732351250212906011943818827432613841614701180268575874799441113584007057851764468474299715487308241167810213643045176755197836615697931534173764359401569173368575755249284353941487679559465691034634855996312814734192948212971721209675729796855498242908460902927822052907739424019609344943023450904058556768700961152301495067357388872087416567936519887415557074217942394456579007879577964782918306068905392457439546545367950335969424883355126304686435931361535911846215352731894069299294018604001723556077158123211045091108557699314421771097011130328960664535446032731410317825736352439886503951623928547929517948578962029494893600677354706813351080348731117871066108108136153525477433672010109846486301514251771288634109197328429301893493338913081132553205165671737184449318387583241965095564782003340645627865211382596988794463842893385515413971157322680303336906954542458627627102156883235088890522970388908632420795737451737586205326117959895813236735063083304246624040950349511633937511829382444416049987081081195671189607224828307383539422907488239363740211312944540650320368565019618201248941654792756945315282713540027706202430076507701455032422109701674240509660597152420455344627889452198915927336120520602257260986285258050115422102806397930701805010024641442017460287031906434316491641545880932865218448306591897842927313360587744779678094100769271748286693074923550850105269520061726626442903139820927330229127695802423125472492712619140429484214196806612300785505840422357667320880330495734379657608857804928059962963673310360918881140665199061140128137149194743991751131534297261083744205899565677959681614705073211588952942458854097925390328773161917004167931229938284532126292595526518211749393264022533890399582450554409139947749726456994914208920567302800057374316700217439262342957848719729933531505891921868031880128057206063895667894582934318517945156645248600923677972893854332643383162572941497256632043429772948639056510627733041964480843422514204805689104141426860978601199753149255132320254731409362967439686474530022281779393264071236114625847398948756618501558221204020852184595446960500881283940705827968000172867091192003249970246474847374091374234080272028490873097975820888139321692745993109457627465937365416398806885122145414674775951494030444270557745580823944166656825879597137709415657121561545799443915570762770857931120934065034400730063899239263934675535757410717750140649462953623173738325370698604496711471530422378455324715101380058499228090616609547696763851235342191501447286424890407742087736832951205951856380636230154614478436760768988002565471015585057914661774364548823710688557208626954315075505297327665021664247987342628984333575518211487182338731616658182134013649031824009796410512468942343783596258547241991215986549722398275330645708933498854014125039537323022484899787218693291929494197929311334881616647153916393369881817455220657893578828391659289120160757554345788296855317936452127682241770960967137903372376385833268307167142058451269294272529367808368384033966744768188257222269144538335077960409663435613427405967527013509503841112786832731275471286186528166897502458557129558794304782742768558290658494169905428144165784063529447947554331220012314654513844658493924399239565464450406514706931846273468688927554473910538581623830647581163790795782691223310530144463118204121464827894569844277787172844087581261484064018692894561496720795866546188258726075782002591294075880897551610918503490844689386496053152679680036942946237306694180403957161805448316758754284491257422747250039502041938165467153220030869826017944825806456489832451318494840750081306407755635443158721450515543723262186277160305681508942786857108834986959618428659091475258974115052750735462348875859650211645574877495097732842939125569187837415739830234517018472193833835053104289746813381937610176519528960793109318523845747553333034495060421912590253924811819779466119795359435772777437760892850417891978557179585871294738743921452186656957691249909144846180649212385534935213964226614323143462477987205291518401178295893583529883200433303580891068830762850524307361960409789319115169731468651120249142295589418306988774966543118253485641436432153229496328174012446109536670721028135004941271718249053863437587171480105383064342612007130784206149600849829016048037382379249114857485717541070257886889391752982398573760742564195218757268961281667251443688504162317046185624328571435187543953748754800953780617444808058571281986619659978517848360875347765584478480366614832972722074925995481831991520304977790424577347628831714491234047845902852651769835966429196658637594744835818588500478348889035546163720304765962327703119952390995077297596319517976945835733980288524272941939585692069509151752168614628154119550835689930622963449815413356791857707058345379526625618653680913045261957662111029975950503386426085546109158906126878159817879268624788883117375248560661682125591912003204132871640405666681503329528695136453090021328671464692863137050526056016254537495426763512930199059940836565275412954283421772643152819930959018708013143655602498231996098868084734443822052424469976730465664645857605110545563076440272510930716615451577814542076568072712149843002401031742008015400578488321080543122643362867715863916120899293631018229477362009957853022635178666678137185421819264807621906431873195668165667103945641512511336570039021829481315219808889218526125984419064723453521548221555151184922452837517635120077094907400138510257688250870766528354457496250001926591412107734378004469213880170452477909540057534168565823303827035966809778529510483463414328960827222980438601832478114182548533573243100615109665624542482630019314805585829563147557373438459039086593042536078869014506930058053323096910535092058570503714029065610243578491326004462381158907551888434530342311001040586704852066600706520111913179441144853150923331940547190891940867397201813059216417097060810974107783073195859965528375595061301590161486936150705841150049108649445208323947223027462344677457148939108617186586386961701592271193489737150852616192317294855802434684824887678304708955168072169766555002361505055572215058537183096497205877408238333990107529615041485536273927356663798984894974715795326913720167748234172265424608817925162814908704381600779230481310921524295360378972772525901145986641812754511242184408276322582857580898264301277687924952786041465221010537202162032681893686683348834935373052704797454686316839411082211444259415178167876203233699624174559514384492799950703243045709325315460745091047318547345954619212551573789413300302470263470114366394684546332309401173710708094448159710574408301467234889293063045442058831758120514494726810447480607566277783920281354322056197359241344860065072429918358624538280457539674140228110699577432968254608238954655735820627351661512473776921608040585826630155825025927883672861906144216341170213786094879906843570040333635599646450342231911667695689139870070344325143581095493927966992451969350094012287241505547353272237789440200114585907318485725000168497328301700163730908538040996026379696104167315075304451130196784904558373494509285151874409190940592890255483131966798522077050955486068991262449104685932969736856275169193799773573850304423877637609813495789001936440654123742001786005917867802726931178919528117630268546002570903544154259890711937085542138351731817206611929476926508815952295263869139567302087067970709966574388363819596772799586906105955358158414411289456755403941321357093562406964710010567650352052745654671636176868554365145461834103759111229865715769931310283083080263061703895867464968064778562863474191853477170169269809799827883887269929506656769266660368136196870497824828190777711272305817292365645936743073017101903177303446711315025309832423843839884034353227697973661481189932960287009828872182475714319513336387087683140928849800295418409776951801310825855599260524318045704230621951842724878224404807444910491996651121655300943846701505272955615310795681574660050533716316152658121105691532327323634635611901337686596423253828388061355971882937767759597035873690653737364652505286181874761969015960964786253428098638450637433270742922198011784356421358467588598182091361200469218953818743955745104974447539397959864333660472218307603311609047465807966971991578956157068975063535385697728573154762485806849664757947188965466400729239110585461096719038269080013358895789095073503344395464642461176260361238971291376110408260149162239757870121354326245322432076232322950362064986162201882522400969857097144379426399990615245198781578902802177029700025672315069503275532975793140235310774319395428102434068438287516981037147687251125509385060084151844752622174754588007287085552445119311851200466634797333452661700798081713053704076607253456226046063536488760502376668260200354144389013679223992894599026153238960569587654562539089220189711859065099387602842364071978772847761667551148941225600831793510713869455932884684293730446495642181188424257748914462059364526156131053422616145102061134874278396654547778114695470236673915383052353117607885035654572729491633639508819102574855593274626094083473641594314642237257452882511002832439635826925010719975263843526773437759097424670210980034585666175857508855740696280101137166875215393744364877491821457842463483851804568687077181654354944846927524137284601536141326516283232680081130708165386253453217439142956875381882253613918182551959521510280090023524271787624658913222403291920159463615692852344398648487356860514244785941864282739435297269334080580007746663939701105526458480679081869806706835865134786881631306768392446380828852394213722835196005487353615873145930663920722787619688268497011419234718336723515079701161671734392513640283468643714272586326757979237256074968456596114489951141502447819549344808683022388713997127537527588970878048936066138207730922681999755686675824811330066432506167981502937026455184541081003333039254325998134193488746868729146843517211909390644143732363800417270642981919069201129590142721102634646852751723004782608693780237156644126645149002520659040831739372465136937286920782778261926237265821244258483495157872054045713129175174087483543937377013743960894270229876668890374891244272576916288444047771065549904197142988198007969829986746291152475620656571538120909753750731266733602831513695797321998047157461158803958235995324123548757220583518533694562722130010617355846925277465785311302379765860565965553599938612171960508208431348271840147183020343086391419905549942718268547823161955573711073763433600116930178096762458351541951738513637801156646219688104869287065810820157496654855107410418893458200614614543579737332493813863644710253318377170788746064761886907422804900842023869186023993443069409979001183631776037747429281347634991622761096058333826337115202614825128866165967188666332670190522403728416785493395118614774452661944502471822766377468543995053271563150976860650121068566318430630211486340604544884458266303203958719806663771760196729273354183373469923452404043844311978610828138054452787012525594968677799695828968494239510955296408832750839924819430793321243188866934266938655900790423763867343786967340157965348783245821027909956754024850975147260532924760826593240720161182719501239183291297680116931797729841767860709095656561666340429679584360652655097784655433665586429453218069873457656241776607745601440531907989851169854645310085000394733785120742134469725293264197373873207077266793339704601757776419931091270592560767201513450208764905916234644011422268759452896964344794254282469920581560205311990999831038432705977070138647256815651497025143843739960359980077343456423097979014135845571305754224933852281133349013710763239540788413459604563211299213384657060158926549206706692454484479545716571663852976535278307256753278175039115213674043501197425669161878018358087115382603334693888394751082166767161471593510863775427195912376244284648961480399184035129695286920453864295050849274071866812882616232810842115311778227346984351797818373371814965512196022635646774899995090830486788490244261303948099475821544254869648709637123981245034652915790873836337994781727709392023108223516490734614613358659643710106746847252486460274184290577855821128492950475337515030201173647201871342262712539202553263227887632782568700467650808259359871186049151438711230545156299859052889451710624475044659424849530946057081943429262151533766640914957262455710969532299092744776744103652230670574118070128083449755514367083007852138522763444978208723629969234934818905126425031748037616617410636489086698893651931976321738356089583836196770626372980349238465871313608994708325507243930453794944101056486186893772810804668531323249679304409989020805125224911429574271642225108000581483324760967647577021345928798679124143564077347177234057226351420518055558227368382325706811210654482463763446436805893081987840825967596796638397640186507715111832722071993855013206939543500759595861785646696701048426244139947867038527748175899400259222706376478238694662140840561056945713109896971671349161420235087741836578211784852586453460862770889620950877042435271506660620992279881699172336068830612680243898795863757980256943596704807544955850438012558309264782598974802525443824619379213279754719399574068354214900266892783590291481311150720320825643924655702621940435840489230529811018138006669899077755871065767975933350176286897798755062513609147202859968397121026072077432907543129674979138582429808246687697959445886609730414339496414217657053925814959744426773718039036609750977636597621678805689813244525406530693381839616810752662849847060232114950091679780529314845515411869653019681824163328527968329481017388206635574333029576239021786313346724531274301933076130454834750437240967220364183509058427468236749304479090342129032679797180564794462645367507796947180013680208266433471019517197810450138015189117424421460733152240942327920053095989713025833073604207882223314697262892446477929486140758369400724485383859662006610594142861483924247070027140016774397503192513986924376265137226311093045613267259530750436591540481273143645386934587328465720161096729739382749094932923980927416541547369741496802194977350230301221074600122448734950472990076089016384076459194520845647005590760822299949452186686426138663400741963443693853743400568426663488289154740430039804867814096577068182668404754079107026698522166878519468596041656329485244679318452948929982985301686924879423261023374493758087304076256236643325527993593830856823699148774390829165612165578059083417737343431516913159641957270694901424557358202164254642830492354138113644081276723714832123064252697964092149027289214009573637569939266070435723586239426594808365964995156650387746097209071374879140153050153115728137643143522617401658905821067391156208145482831467223638676924587826247021076113539248246915975154646802798142882985570107912796484406505517296969148515941528603328871461055353386210903449595070233257959690714669921038231947289949550801638871800399009572845742023202923395990076357422924864184419304854719410619988055284569098756826192917201259566780170346696262572438970425609112841538656442128021070732794205021792694065237503215301457731951715200813303056665323039125359971857401557367561865846167984939202742692433540586099754466729385020736732867190246341103073759436391032731394971794017596732811401403217453818090905735021380721310763241435548173770450926168036580887914157672983589741863137912945789531334474122455299996578478520508167307175599977440577997940515281678003647951417074741147278009157907341518510419591863803007227556463690975043416234672556510533583187408509994301199412298682315935935114729074212610565790740131905253358594943998474053147647664445997931050151550850101420137356866256018107187014308321247455490097378818420874846736875482627258815773239081483476044373683729736113324196285609752744239353463707390685016252767266698737755805512505611755168856466453735015977167447125776953816762194526523277261193964253700615948569780299407132355526784816167558627688195326615417689346101989529743265600328739227536418729760727173585263924480759371157057576805252960823370531716128052640606646665977684101266999307624253948386049656437277796109072066326519763287885350090675311770869775156288226608972132094143957434457223271796142211892605382509590226512010056755003301323018962486333634635520042426830751457404219026260939630183413751261543241194582772806090211077217004440994000897409908921387916009722648389726555019002599999609639158473051118154954834819087275932671230580465674055161830640433888544403557876521339222619286850614196219068934822232339177466271323929168386882630145189149482193510820885004277419993531890847791300614373176532005509949059603600128254408472015644356180076496728355495643837946222172991996192075987631794019382060898449009398598129609189916241084066360599201902766071343532214437828094490518139382879102299986443957947003853838622247729617039697566655225524736658409039376310623127996636503454957655821801648655988820055907423619032107286557682300102422283340717210958406565207162528900804549706029132682274008684913819124946534378128044052746055933829496089811107321052635039876302078418928690808263892518775953242049158471637093774570216450693159039651550239785061945187892517897853494416416669695336149669837527766274500529688559418420928905255554562401791357307454795848605301451342023560072440619660333180137220494029199437627374592359938131934505695029304449015968914050857603102470201472380471216898055022344007651331319835680000948187787841247212826102777308381085142325738373799454587331065958435725534632377595771796489431362266816888842236114352676358636064150130523982026189924143999581888572627121785645631312846547660288463348213629683223089837982837197216853346589141600963573290318811053355789993843037842589916162109795955165313017663397089870505643133528308918844155679364210456656023682063352950102656170053314502990081369182187661778014873140780524057679746760648035579989920262246382831199654555388241955922190459897461666511378587477977775613108722960732268861208477650553748118231884608123450703714719983456746484483025203371826141562013008278115291541704115847807494384794617765038208255275974075912835038718620395840468979223076277174388388976094598135772409420847762184975444270652932889880753230759840020377749484853404651070504921706794166905707125170883739232291398202514513135720040540401331499303731182807497736059139505256178987401250543437151966557015342756105916804876588192964460468498801596198276222774280679582886218378360086812699757654463716181840617486601728224507061617576644463958780416171840329235601091785548742347445998580854629323610733284269808300354574453795773265140154354893909615542395741119137546333565444938677338386111122186298853209983275914169048711567105338101449897580171319903383052483682059810113680321695380498179522277372030073036818733848512835141495590151492914417535400445734816503212300200938307008280103355707585684351814369386257456955295958094981543623175834514691613185814460414165021639220189150199315701837004822416580265800590165340496091712490291489764436885509241732027161550000390655988373962441357991811398840106143614054410905186483857490864877613708096681173839977209126160835479991576132161312604429702407822771670130555740314407573941970611931273177086612302136791808462838902364994878624145238939708054095038422183281604567466298887550926995774152151206045560348675089858855118585346260273331672637722715876775194619199873450199641065786663489937843770801130581722653020068048118594226788664863394551921617876233858010132950742427865413659224300435845183999790837369507084889323756870716540642082609751882403309078548203386625087298882623714133623957816758957025689692478147569016734385643550015124597356478878348425025792205843297705577476620059177463365017764880503917636957968541393443316708531617456651007180513652153352105280623095211675643665067938406128719766960112337261254439585892316256333975955792960829162730620553372673159597001521565574547943659092505858111054820358230222633555849334104662993859317127628852647500255555826274777271929393673536682174590552489404960625991312535122496541830540864245279956370533164623345449279885577525413669056764324234048024350353126947308896908800220283314538244196068780849814318481637446840834148788730544202031657305348422078637726831993628046258496888527336891449166325900572103213820719698877494988480668318107923930797083532744453243760299869445873592000860849182148312905563427562412742352642929618410412119350597979366765113465858758195402553929115073739132855439623216792254042401284392742703021638033971173413705684187970213014348880751508581797444296379918669476799758790346814518957563818827870578415930919004103301959466507316044561464283623346511697801709155073062668509660792262299462979568736707673803113437953037078119840119045656631767708978401576883763599249334665923142537977966991193824463547510639017871977375270018171230227838074580370858664555194529033156333776000536831997424765410101387031374381666941471348224712072118550666723569128215401972448343282037407802949252250151238936897439073976482023008380410669914268431672911421321744555670064550070607778925405820308372649634887760241300729380861843007721802105352676311590037119267965161508806007094199405096142934842283828651198497337928408646210178534897471405610507407905208174083096182808710875044134376843121547117859430379063095521389038554518945821650723598584033972651907421760294669216562972404710990817147662229650811545970092764482797099292143931034968101884254507812458786960520846817830363867080729451878152710755009893093318659197864117233209099518071451912985367062212813703792299930528757477757232916792559437089079010495499546902546116237832236188182994287753569342478350060666187444554523146336069833054642895694861791789570351668579161462464149456973819872494488991458179818988764216254360701400209100391754564295202341540959573960918371824372028412667648955393037489005152947877443575092999625382169414939223843836526332453671830390140128659192169726323083625454738358065914388588272395516629375338330420026218698932924987860969688056325104714209006176259774096796602409156797514708137825613034651747843923270924011537755368188152123764375456864784613974651714747189171081154848531493237312335498328123258137604632900301454206140349937360133020025779502828133616400206594959645355765769083586826804879593530815722584028308648937942850342431190851492641337298809835298326727719350174201385259682190994757728664859005864045413559152901427595409532393968117753193075184489043378327689706755252362795025566977835493007452998110573614932028589565908237291567865729844940787255691909133299976821905171732033135161779870816842502578866883555947674471758719071724370901907792584043839500190539474632385770639517290847870256240414386763299537012917712200939472137457138596971279576682435563337844153381811426306416513033734740036108208169788189827221233611483424613780733230342090220225307864271149805612341907335561906830563024363927604296067142807345555467139363357930217626669316992435044595200515064813843944020872921230082279301826080262192549783430384762424991066055944781524149954939464011654588970056195289597446782142097259633495587649665743674677657084038827329951899190089316642627662994450389620952493235948538146488531632118752932295742665705867784217964995204619589602877375522061760284352562094562771086921997607293416756942180124871329495690413500068376538397144762919468229839238504417802247892580467982873796955668964998177864563944822331850672064375621489264975468257021867794190740320220640494349013554362753826743728144506298407955295364805341131160795503179255315721084586473054906608075258864850938490220444400228506426598077280456692138777240262043729111408914633301969102501132729482273592602818586456193813815054758877816143587183328424035769785721322990218073678170482419074601333681896394659586559986483666000424600646992479399703138429609691441803117211421256207220687746128719028934971203808564935964102088868443950550759678810845927511625761281212101574832801817197582038727770555201747285598458896421587161275380293019087932324928262543391661524896818293059478891267219089965295898085254525596296987661045533222753677271314467346104345830758023271771697657749053744157435960248280291471303144687355118170187985640905944172786792487816143170239487546782250093450030180935402633699606903180963447289487557524130254494929994757633527375277927367206389325721230539064402313455398926744048891956450096626741415638384470268319352026288670767673546989955617250462886508628839572548013640088867123648384986481635865971647457040030430233872307146614104163650512883339974137505495456820913563135991337535082157230844603912697115762181076451396466935113965463454424797589368385791002738452349405701558310826358289624854445786580307793870934759227700610999830495320629906682124411251462921869763071916081566100476985311326319815439986883726791948841325481657445334856173796559949227528467839301095177122611188120140732692365386476403812510367628655792742711891601240146757662837341760485782135999585324728119558273676797653059171854966441735443574856773882706230406413037996029091398182942508887633191031488602771771890868087565253742555579459173303311336521787576877786168970740459634899480003741837545369608574857596050799932931536144961811644552338442412303633103065258855434060410357447854732339959697015799020925638674577313284787844570303198414845626108242809250377728149623994929840016327206627717862683552343169839592550111203945393234627317779638935072732561799349905185331074680319042050689712355337866424534160111828025065603842207108085787292523224266958507985138617966085474825966129961162118753802007973077352568380980311008591207460471211502818055461913413394249576774343725017669978968674733634656947108228073352601746505555415443903742721441386397674923341549784352743028697908127670195103852777770422649867734369525194949299877330303269047835438412330468593887797266533349646022723776374818806581844229607240874672655745286180511463471098487686220420581214488405932852094353885170284576190904073831273179238066010035891174487068185630912332223257104356655411860338468326353635192190099978234518479367380182468213951319970473279485527925457411629091268820589575860036999222583981947549962332600893669796590536505850750978914799983482433288720428003681367215748530557389732449784032699057533491619825259318556111820259443623206378053693018383060080953894082298311784473851388983661312867460203854724539162770247400664398099015054563752177307295130756972247686836913541348230624774828385488439812580400661822828945853896731437978894358032550199429784981625866798918196914974441431132595953920778671378862432768343933362646100937823837207537424206251525309577356747091186827733596171817544552844964913175497645395394327008284001427112931731365951459545726794976812048217328611253385856323125150570560720837207312524966132718717386374054894565256806659190383427609487730169648262212643144462764368250925894959182652085984698038012442403577812867081499216685886288440362701664168705055020002539372954800861076014704014437482549713876123641928559486757729063120270909533767798194820639345827290931997189880679670050891210006470698733983852342243666167256391654919172611336429935839416953435589243324674469076137305807383176547930754971877878136882984855291084504772783147711660786965067676716807135787499576380192570318490077605731206427851628005218313648767717610468862773124563889694895208207039309606498951435304868087190365931430418186755150283037511523117606766436730444870006651804204090360435549202346388295121838528093423439656726729531255798738138037292743688855785963665007648289848136071056914600164948741293990391079173771443201728037356672934287332023296092993940891049131280537021126267503399586068066642851264393667230022831670012476945654490680037524405474339081930815500329114317853724805671884577287589558866261357090149668967979604950005106725528091115463957593423688399133529210294489228701210778411401840535328282490544764112101492742842844278340675118350440887849249706483864487707360670840302109736040041345617397266294196004434663303814641655891045466835351083631791514401048672373313905119135632758745397609511284078866574362201575801987395542371465061247450409765822335092999081084478200577313870949810003171347889629192439085714001472971113006565910075104495417120340987600747533165633704628126417283617293609345085112646902889919443455110664218443101781937870947950897900185634992264774253343148099650738349973048093010269841366795145123366530984113386337029809826617551382698586322852168937883039732511620466247325154538849351094849744222039957073770995261994002281226895733862112319305647671891800419516335822192278574211924369569636566372165116926004055624950832412232551081310023236542757447050343652605055552776739284118896933760098842037842118163503024063670086081123121071042439663233011357062928921816926693423297018931665633319724113815573318421901633524171572619684550404405951642787304845229254229719221556843520454962981729735819781324916862080342371124903303676583133707672148515565330167382031417907949313147132195990194558241496493199748624663125620610158494205995094291194999764786760659562496280985198994822355320283853613398566256970786977165873924384025347337014003997708027949920310216255626517893392290441151298549912975176659381219169580472938873160722898656958971011182578096899927112765520013202967735161793015326794782370724279619082624794656924798103587743908914370814783703842402251581145033620467240658550482763811984589493509439833612134238467762441536743666446888429607660813298791055508781457463690124964726597375071071562359651260651035861824629366675522198974576154587648984210853715766546427663786977013930795040472953920985771501671798684479667676791815206684952473656410741956265911659342260974729299754755537169397972473955562650052174137811975217104988799344989109873534813012207847289554314889742950707108520404045240491212474741601397582084593098577046440286508645805854171357828258772650955934928830311356171607103913936158795951427277532499495930575112520163398613824724755265590532229060341682690842437209632747826486177552668419325260749093118056637674299110365550616709903648847115863929417083122720025176278810099105326294023469818068908961075416296190680071481751195194161469129801339065975316334673118140797874735876852606993393931231583056249426126304628523987224486042208788965364492141158196695404854777407741752416046863530528323467553040221169012010891106666097590594140933221598226065258359170273913870514241337220100528664283761463756893198248295503075909726045945357247660130913107958053499072191230797197826450269146951210359574610345622718135887697209924271388317198225976265948776755445815808864896177365608670358853712279266313862811252679219259830199837251422432438911863804598698568934706103502162540213647225267995323275072377997333362299207886848479675928805624581295716445781949674763825800972504392593622949545640610218713446192150285967424938806636899609768062642130663960918798921548265401526712144182767685455840654770618155703019068566384165778507893891699551695602873360569959284358896278191957374267034921364869747965188784943475130888658944310801895902555808115077746404691062019476553739629203030259041119515452966963237259405438312311551602613043133816975816187888608962529664991461321523571067879557079359992600470743186351569079882325549994539201522542298394896461403911148198237076791662117522317203693017488264904893541886549029430746463450958840591028461550060525379417508782631474384040754480948257982462614137515623563777623856136965739813320892640380580274062725541317548814459799243159933464298708488304994450300483509224321356464456935266065693658930203131541963311672094643212629564600302054765508227210999485255770207359753312597251411919660787796529836108264119411320857585086005027772561944974321606345337289793374698839403711787131560095488967232215775254744504006192619134155333322269840777159609901218287781319215888109935430167085995816091555490750910221821228688006884271630849183358299030339271074738304412168940923068433779310138470071487182164689491069432493510405739216912895895337651175109523687744077998716004347145005575249564974514912622002806667152773847671173933382036468480211467428338840110622951819612798834957619090574271414796906926233997555116897501895769073271054370500756687304160972965341625964644622040257793286515104362631047062973884746192333065366295117110974530864457389164845825088426477749894411507694864993024343230181422751930364852763075555496648281271630125572827542066683450971940691181584722198915985507390731917313430725397004933753065176581327473897428378742976607464015713348334692741011111338735210214232348243534141496829158520736209694705214685081080494034852451915010281553598066001879801836780064412799246756051625729431003879108044257075363183847968275677057786312680004396975533536578936714068628554538329323272941373285707296842752169008735233373761063822166373036092664811977570261299648278099654047007905281783449715646179215246870155262856172419982866348780084554481846185661401323847440706947911297395187348529679349295673012547034722178349707941974575320874512178531600868634884857813242647186006217812545850702172332589597797750495879780746143489747870458490020200222018392100256986756701358411247917477407936319095482037361918687837048536160266356537466679805241012836580850879725221467106081018096661175377253741761784238926369258439379895471128477484793643950992690176675960538454863982960227997355552574162164173292815974943613921278026695020228362183606068061225759186173725859728405816815322850998169193760125715139114527532462986506889488513396240599914211830297995558616783529596228207117292906893215314924701602412176912650035252073670451764337014375887428650003349674324306774737447945872125045113755590672123428434174198971311810468177109504532652191998415063072031009322396361332908295550674416836668021241864782078525890330264054941440054762191064998501710587012185150913467073862214761270449156999257695436611975145791396392893615917710864992782481323801614987387349620237873374638254212113185728101904650790495133196457629369826336996256482744675092988453077589142985486686210152427104451936851314863503179739408055134061547629344193955611418672654431827968687378857049852553457185691315116767932249962600680277237454956668257221410617007104576075046403670954269381545108937421539491837699993129461776695812919739164412390339067111168142464804093499157265789380966224753852242029959887001431658990667458749202290063754261951762930194153051820851412534663274452881877237575615501069644333740223177869574242304675114253920452415291371591554108419943766479723505968852217436006025386242218706748593502894477513377917225373777672808052945660476028787995752048169265285010329795673967488766242617921219644362042307517178194703979036095616363371424523813042539498025322291300000191575591317110248196579922209329224236121033893083704204405415595966127497968943638712526412562521598365890249506593969963812474512114553901000890088446763313964939404858049037848969936132356393006476434209925641414830542709823447585707891125774834131726620719824889356659960572998832326742568966585722358370456133405276318887413786195762176836627976944595677239587570999150767111576510448703099801114764950947871669572155453046348479517981903638701454485275392993839279859299720938140895516871874782230831097555490975881415564222974034527247986949864743818160272012282073466432880491632352611758402186389542317988057592264806946552240284818986819801782354183349465156752821384123670359630754212161169473142629848991663112387677656526772585212994273811669944138839921492457169132167845258125394045784772926590692504913246153124227861275830345943696035734433286322077761423392436848825025516243745283524561162047243190700850638722876330742595298904260244434522037956122059213317481162912955246388389528942356833516845974024716289599730639025034962677156369733314427795528492040834060686073102621209754454954428461858625451283032917846479442972396864907994788059848256789492094851059563127915107241052399683398687392028979162240655142082894994649064956459725695352534669111379628495710628108733357515969034413991723667438288688794363281132089071026869141415316726252620963659155157243486986990722042814929940090658880606792115288876318027076338389755504887111981965898504342693475591214742129633577946039751401714325176074483489786468322456831608737133667599398058281916389857511150293836105537695808104237861639888678830861647277939944279943546940441304655040756866245591953079220047325944101233757576110019507701643502988929358819458714636712252008949902420681548748425256760283836881651659389438897060377184413763988345825991368158178261136440304596319221205145915272665690012336690815389687524624319910236156514244142828152753230850736797541630346163845266116067647339171741132806533854184108603603983364979209725089302241608726230168074145878604063916824067408624224343916493698433500202313739182448024475686822563034812994125250482641012745256954804262699044594033789064706504562144507716620732688197033991559050772560457018057590849105676552010233626740380600910470236007882302482467251670778928583006828377524462204938793425653529484485635199766803240525588670672587224899375771968502463307691154216326014866498490323539687085867330077372440440128922091621715854481553446549258080409493068536500756176297408333212324285893331341742422668635394130898714837577134804565305454509960157407828503359365125872342698311279107575303676360466342222827345386556863171391039531535175762094115743839963610185251176151322936658418497249200736927988679085205297002558775255186053880830547175413119353827562354324937668573995224507641937445539912932100228939746375134542530063037311813124538855848120517440450242192946127191322807550096479740551841457237084704134905615313746186242650743857085406979935257956968787440711490208588616843433292501425994763735492884614795766200070727900335487592689618749819727648063498106733692860965946205163865540836177445382570006116064405563926599004405837468861562103860789917880688557774217255131990766507680080731876542086854751812000134814715111004475486606142463682266218375669768904515473810814884203295516124800621319568477633795113879574286156182284291433682396986878581916184590777952826901347944197886275764655105472500228064814148908714881492976374979190130900878240235304075050826117929814644069209693110772012481364704461525672442488979034351718899203362338459503501203831167015292243602807062252126643700162347867540205188376114517392622288194752650153121849855328902337836079583617519588594034389417291901486017299076142638908441994947366479188431984205093025001536069153069065368170256211708201293951218120115039448344500342346897992471477243989321842427180432710561940422970623186088258460601576192067280519533718189471892237313336770664742250858971065042590236498009369690021366459010721804646857848420858638781234793467372607407971868264512726725355775931544338100921056738496714511908751660602955761877361332304666650211304274951627404324723314831821243075763897597330344058084992553511117712114999960586995565912729723339535591543216189900804253579553316206654066117572375143897904743563964176369325968895965377470183359458079872132204777577618874911569338099248549968581164238209338193447819646644306689309403763330865424759104753656993505493206400279119371902163005717366459462337810201400606098960322321890662869000179478334380123341505647016731468505387693614231114063927058954024398690374961038898627639738719560160011476546969543458859161659253026385345405699718577205110103315707806743636501801950726104819969963474120506464198635658167436237356157429425608244017027331816661388980816814089641349471597389266466333858823736666945449054580240705005681097285469755072340077889102266851597846276796048908184438671892397919634786942706201049006288693615910872526756538930841794872201234864133322932955439677774991694687798294603792577081458640669196000496008339551925804423441570598006788127688741164000295772656594172526386172864866692468396855493579674783499480862286189128379034134239774817863787066099442907222787703476169333305750122723794826914153640994427035788537558727999266918325064558493592301004101113745932982928722787472131961019351828696278200534431557297599319769805935154411315849602210880859206002914873504621176029890343317975160425859294248809113988510238021997040947508805615296322297099231210790601024559840600765393287647182365779767521209517037997985570202000907359922717460915955524171836351031970366612102923518157394473447975819638200559883463414069192356996545573039155833854005033380967022245913975078536934302258928980374659164346007875072376041444290234972111129900102955689673629779317102687068813254788264646297983734874691786864971285192829246332209219342247794887072072040998476877202598103236246183797749100986859655567628517595885348263884688826495135990726590652444087286155107350394120674394130886899942183861990009406838327525165049558232406796316207460079708211797154975216972639689502002417480176030908687621049028799455489987266669230866504625254806277414892029886251670807029027885430096138375468099307304051693253150755384122350667869026364012242150915446468571997903264657005539337164240262636549442534833133527424601127528345181310281348779360442301449938599332313215250165876995597150772290725977206402098705017675621949029603200045407776359711882453872439768240544370286893131083339144614102531196244706950047961585010393003346303447088434981162900884508924518650782784881402071716881529934039649390465226209253768993037132067765934784498331512249249741396962220653224371822746681294558679899566696415609336971180340472907474223517742275712362655194009445230808174120498667138563103678274199724709678581226108504219417053724557927824683296737339561605079781120840899905123434740681970177851105671620127705686980908353187451810493948517656560239546238181493876645424677968984916329835038867727463446935517488234526051193139332910887313812405588517343866691118047635093348784798896175642288830608762367895581801097839782484404050074820828500333350938214134048106243911969275444280602216049568771121658476177061779091700579254370054023749645049605544788374778518121991856675490672201240040585797624521859527858212686602423812985066725218226654105787034510874489025067568755694948501083830429164106420421519680086451932353463191305656139509148202006740062804643086823580325548851302358778525652261129306880732560820374942339020591138494475695124150832807369116990658499067214548619156307093106830701652835454098230265569826047470464909231825339135018238666926978140783146603589448112044065517881120895194722457617158557782963760311218230974375096546713714999238327681013810583650951488630602942654463789760155663085203566374137476885957125916824169446534791409922583739675542798428328537965888672188947987779423608406178257333521255548845180454637448653392923334199615647646919460605615915476211394931967953642884714485279102478962867390579318226443936218973893178911116655064829221740466871600027347056083622615718759739798086091714761963935043277405283778300301195622308670724589349471641750858861080474901835447453408762934937994565557410223116769835407937796210435404927139692119266565707218074194611862904423024025557681624436104827999455754629348625539192038733248431286973728134553374362055007724012863296063250675588005960365855600979520602326709363429685980827095373292870775825216946185440234668257755303410517989706116217623303088390221032614285218490846295418019406618540228067351495787271200453409531070557305451020817992427066758720216167722304637967887975394108758911463829259305619649562772524379843939705649571198026632688738105259868922299825265949776868767611707189346257909767927907457792419210209669017477841712363987003268325889790643207714730543249184449019478103392215645078839523440479518775030100851696054825884557280338974477365797276594837835605896875577994978155271532336801271362721504526759215984455864503095897561808388545646352747781476724564306408901051018264591297211909749318344505711997258534180188187654253475944841434978592833140018521121205747855502931238496506737570594827989329650367128432349684880113150631640023549214113336586958510193451505303566442929161406536090286025298136591921119454578149226622323954944065140960824364512876172580809739465239550215943159083496359114779587637386159155373472527850670052008938298517964547452909771927055619856904166824682178887998532389886387148980754517687921844683889472384374925052938358822833345716574736032078963615838797701854736375650466418849084882857466823970608927716874557244998558810079932550043776672540538659315543081797590979340998258677567828200113733147281903595825146768733184081200639230791715837893137685039049294963730360440911936572214789903362381664832110272163455134001025568295241871112588272591219304821949563290835051701061699789121653879993059028216141812110365116840233586746868952754420670113421961383792657279026827719897874432153249418034233252586808248732597102788221510383352107251599606731875751747012128985991806794256092832221670542827063962072461712598355534743568390168339779880792270712627833044028470781978887980342853531144218323049014441841720581986631616593111151634178083844874180349191695584033972783879027288097377070980912182816728792213093591397227152518963300168812438365227766460011479234210374263631508836421541156473187920934726235483959633376658134752627570614299355227404875656074003530194292305332265396552319733253604756647586891943718125590334473906309656224447447335280397736568377344759948326892680862380222056869696029454114569896388120406450249369784531767819025362491855251606668022388787807423740292024461967330707584833735013977653356136626606028979467472529840975191544924045774917770855054134827445507838042444647361035053397762850484427754271072900827617961406780940913297252177183552200343737778495950964456887034612044637428661725515811948569124900994939996599829882466095930973334886905494445275202865636364914026207378628056107635527152254328851946971956282793961011084563292786068834384564515373407579621495450062790332388146961711265829246079737077086540212230240393020141367645999588526139469969499033735755158046179455690497932385383054723875184868353032284166993530028733513594124120001101862340709959060630255718122083127327801911840198031068440888322545678751357842225932132643499009949492260707861828544027083111245188843642590407558519508246707060560156398761414253106988011735650368701189923869140502207082918002400877667126134128265541290242900912333424558583479213570415297986228799074363265382911246307270337915021270866123062358737967738655019346819782163733935286749262976212916498349411105606766538807499398039514453826391087281198437255285229502798306073348492207414640381107614739109138808978990914915965424494740731937985833859149511377763253798803605694470258331206893784953917111245178298172730656404821697465593144206743872866010600447303612228911109626867222352493814594214033909938690883396244829112235288229196392407024314418826991406607531144398220551235043546249490500697739692685556788432147878733145759637340747314793417787944130357784487506841937466544163766185620186323137536452544867272179510800647488762354910624558045051528692996337742180441977835758622820473474917587239563135057936368584289684991691067174735232252245019082421190282772068827895526438321179652575764681120888904089271360691603884978940026527957324746479556471340845021621128509486433309055135449269304562363090552298600741530807065110170212211222210550125249987755981925539821183662774901430432931510380382681618592207591906325663606864055182635479101331966820701072701869484655949341259430845261030363296661175511574926275541072553533980216124453599431728537773472602498747144566523127581800319079802774849708102789118780132634130045908959009984179715589378872985037942820329965011374906773750520538533847039704264726975470796275778701912164195135124526447070316772253923673949319167504536467371383137060302438271949746546502570224696236957084587302950606162236188607296260977285896760967348185898320300288379765477351632903311325262050758850228224773350470164076818741479780145379195164000335147273251530476874369883881732007022089435191800463778156291468866384353745261691896491928558761529526800013207688078039521509748592145147667313260932725687488305606764383848412366203180499852733696482624874541983616529133987579044542226647337466978246730228460827322953820858379134989294872429035362309127894020916807117897938787963626945370523592161975173600782589231542832430778994450842078569426611742122001751042510416918240575449469573647423077048961313541912687236557807387663321245792833005924792553689466201401133747904184201387843829924375516624524889213061235893613907704716121387199048015286026030584314178026559900490390752819141847640740060880838094330220219924077194706849810314726612366994956661150517007248197132432572043003495117327742792821696851400246395185015565598594267573164889872806188024310523113810538083191854699275696636263003283981464763565470554295915246297407253284279533376959933738569898796319698676803735953695309080538892694819462181977898965167761720132856327031707651626912907688964392108381256970181783603127595453281871937362715146517687359938846168174380178273845454865467283716119776515774333273313149192230022184471033990316727067731268772207375403212490823742354095392731631458941602830818960779751228911528204103898485511984533956388633473159362964833514727035972318023362404338761084565151621429472864171669399663894737431244035763576460179586945345861038568948334919588849350765478020870955269185195423420416846516513085029977326473996333368423675900492992411300789173930971338854996833389873265303201540028026296495992028776801972502882470422445309064912722968517688431554398329993594847573018570732695071800671765978125373108992241662366888459978919589368933460721259521430884074920887697632656841722144642642399082865537451206185948673126110141828950917841614403987720568659583005162726350361861961360800128412865628302092654178298892666167799794628252492551665006789906745254874435142377025345874357194479203752025433395453054423118610130145408903127031951367395128260490099279064296857352990625991097650189482907983884710843224189121836875532915948603660350358179171369912929004563077736195476460417123527152030422648258714597075963761434991068485879777086977374624603238512612323900514395882422631918523165686376308306533308918651840672700008112271827213476378012127674797732026068933976320523211048267249627306407910204997805005215740791305669891363475541070153316299625600669870745783190413540193106058773696369433857597713579769675511611454813458799689439986599680745372733685345530313260624375584512618189574700474792698905611316339449997282554762180370689135462851001858606801681299600831292829390270534600147696804786761744590209729674423677531935805127681167908470785657801764872430317493986035337081858168656052210746158337551138956454423267374254336552629093775996622823581753484505961153422171253934303938230359623141945541183658851832450100581821363670563729028995378424315063262801702963916894775408396507857949678143688679854940607756497623589249751043230114085637484595866682353076493063365863446575354815076571860143613997296131000546519648186804836391517343166222089805779356728084820738707195812518016387213107483005178314035138649944470276070500417139740290692725876897262866026685125983868806822555338893463428682796467714405301343740152570404514804730819516836712838822618523596480401853692307564777700636169858301010443102811837125564118001121912319805364424789678586246690625574850909706140839750813038898658441427178449594265332796748979746761549659277880958269709939104796817746157150483077723034330372127899180757227364623933233633161278881118209774406947820991260402466177287780602064771053079139922354597474022097320606249238416258450336593018012621729623268776874404807570863925278670975514424768144364323540689165892888576773516030527016195041540086079157896912856103694019265963552541895547111504455919511762776651059875213992597754636659534148624992605742413130306676270359683723238131067160614493223662517645915176138016837481410160631456793824199060842093006654765205458808722456165705645917026314404904014650222687721918813269802039176601846824715458863901184872399353175302321697811036525728788244845816021128693703485054346074541142641409495602980948300158588833592056826871649106655586213555312763421961914529080503523016317962256265629882843673326822727869490663718112186165297811757362898380657678603138014407921149694078247462584250435189380064048962319704819601235557726941943073739580224987338342134706173533403152213409673489936456761097708659676890967731205556480307082191724938314016511947216032190957320132223831887488081062759959196066417257055544517721679239061138079332633626198725329708891171196048453371932478060046521647348985878506139543228244286632738109002037074899668643274066032334756259082066415105637445130601202092022789043375192908115997071305277247187275107078941233425975969635769971270760676879280453083454618347372222476234631412530702280696127705989005367875299137856144372502824279342864392758778812806097672570716598946716356127168772699154317907754681136644961084415675858407425087581934852757308078990637794852558919730718182263912778876338485997244936056695328070291076251758846320345021573926251076853292766432245809211097801960051037419876143265116634525652208067682755982861195708895160100514779947643305971947334275526576510315271456226890140497082759451580867999578258353313154595417863279416496122581626040751714702600389404373447805091988018802639200139200925214108667242121791806094224377204620244076314586985324092535344533010001448451131464464678052418200148437215269878252380774989720094386774824235712408508831519051159379392593755480102381478818984341829987528782406242587888948256724763961911652110563356143293641369523409525497396739176477680953593061350195228467675122257908394075454269426873485181217731697493028531417017704622992219495215495788411050340685439986484452298311543952150393772965484333414464245880882981857453118583032629482121010632449219471192090765734241308294894495362619424681291491417675297864201323088303045266163953805811323771712296237498116766289576697635982587828418408606784868514378051157055157694682054936991373607311552374392563809381149310767824721061136133081488090638832713272413722390231058664616360415557978197468622408652030333063175337612733988519407807494082090977700407829472745313399576983797682102571578665658658178316942307672587475444034691841662417564734704401564280116693817751431186437935194066935521933326792915413798567975954036824153966536514234914731646237443378028522823945295922867751380500548564635365152024074906794596306701086443909842177477574856080830612941812110284478453522964551851964039963026569801687967442860414666999779707609466400557822575452898544336269261978487734550469069420731450061265506202462758519287100055606619179735117995241797243416126156643342282618404881295865711860516246436555184529422130829926801340393243418388089882869670551306236457918276387227389623963999160025002907549529349745397523626011551689415027175417647585068306813468895368363069242885169969880516600100441828181458381044142599972277926048896657371693811912694112603822348897755903879082620116266052883060799223264537754752073616268748755544550811455960128081667560108660743615589228398465953653092379310708912296339218560302245310622849051466271037085081223661622746410372682988873499989738464693688420978320999903109271694850640275041808434605891056117827429230799663477036368987289190891703614851874206707772374723231498808085426585549272929760866763696555815656825060880339866166010459504307498858637426198462252376284833519783188920477206665006834204229333557126638035443251490346808186994995817200990045607573037267461338507413719691058901427089142044485751342017110176509768512113326233894342106082516926714155195328644147243328119500567233277564408894151348157172679945711336458597079981087269612295329434192452108589008345205319532023074575891812188227060571593761276691679333996273195126387539061080132995526623338662536383921545750947477315663638019035157438460394766730302948702838506726922530671859648570329993256606659043435485578473222811063779623059357586334987362615342096845409465903606517304860712943066478153321747359291406169253334239772371817941476850225889869931826288427324043789601114274869209903555096298942171633086021197874928151364033132697082944424792491866686783334382680827921919287150858144132522024139389124804910141456016573063940291739382342266516927183461807608211776263896197134824635614472252974157099817587032582099494433369659888690879702908644987069110538609792016668234910680327914555034129044960267862994288912118653001831236651793083863954421393117384775016538901016422407666294722495568241023403695236618511301272339180172573660393947857564147072374014458023662976092835762591632797613637241295319482665342836081530120574144610241934706985439567279971144882246137987804838080078555270510142532820800040328819543236237374557787570264114537729036794432686558662109527449956850319091117848264996684688956858456057650932808775480717253952227800017837215309536579809543394542169828298889002127017196024035593115123581758790011163170844804282703492979211294277833307616351806663937937690848665352635109747934204855097990914897549871424075720355762130583728491030149156972489397451133353749690934398917906621085714107430125394774661057842048142263514685193558182300115090082871773390120205265003056512373215242235979838592362383633195678524354795591592310930045908399379380278402989691658290623931739120089048823360209301406677230238496722895389784494813593041308535652921174657570082705361678645070636980961277057880377252245438946563965988936068697364807850575276660249708524438730024059497298787622743142007659433580895750720268218933674109962205372663227015665041983611333705637230579259928356479712243457213934806369194036875514495282004230777284569200307273489541894963387643150633894310213186325352649292191078815961123747892455233760469386240106453065194409885995630219800408650373555856127139773960423436292632696393721662349009189751201458746055579630986966598767976167564304028811902182597891053823281826914720737735971633675959524906959883251579565272520548239486493108495973266569123463597012794643449546261860714781109729356636640095745831892782071748463980597641184032360424797470307622896667505555221921509779208779911225411511540183617577837580661806682961561103674695079671823313735618623384874776898264534701510344041327374276910983547821105998197616497071555582216478329363466825286177778438644226021129687912368659723200934672815477437122292178345260550652432244450449225152540028451238637514888349924261014341087203785196336411696460827004860709526776227695524871475700618120167928240737480580678623764673920875374687882657203278718409360615579551267779002985720641337263850361402496402997627191869672208116547750844414100790158531465877319744122770119042848139980837223622869717562809264286776102810574049350628967581798797387871441439820089136218736125175581004738725830298279992344716866433038183961100173474489300563639047259403682083892912751262859264638110210904655466823834663098492752388260408414680637898735024694423706236951491794224734305268646327199762879791594169996589056159147941084231234503145286325262514417924794775707155612085144347496167564334577141151411377938787267551777764366921765085553997951308103327704433746469365649354668283352269581688029885388897773938417548554348674404909935687002232993705995891370046937468791431484402923287830047515563417388405292701168634603714174042593662750560875986268232095224366263545035150485784294694290136598615074964878406503767463518520064488631133298077641454863121867122484859222495243358524150340584719520280504800035167406133399869515958614871394584216756047434946738583128248245047987099744464988068614993184039639627172443234826388088956572727110681714482098501457082311595393253658415903357879158544742919827248443390142214329353583818155133083501577265768727229294704969791671829928341652328173329631406231565184304538621139670495208374795294341050824698446340762042630459622283212383907975610019229426714146606204745618638771775995234955525410443142690706239840021481580364442479199187425570164928323912958755808117023593130655563453027843976533934879105390777654789641767227663935280051798173792528520400246836214051553108946101914010075924179967896877458400922484117626729918533030104140056532244925787844493592952192526485529363643579822358867289331919268743735154816759395355535180140559702966158419776979223522922027415737332895362834303492649322824675540931680504832088814056650206547971207347035698451345678923294171567281918285621130318808960521262330154902852138361098998341715353516243080462688870529989342372429444532661842701341069755637332303842458313699966503360940994778875711834111013472357445777255410288182199974783662179902287952861851603342987786741722326802624608061557144542349886861736429856514876346394864388591650077506588544237201629510517171872945957652441334181092950745150251033195397193482402837168589663398044662130383070767578655495836039811985430324529284607649853505307702662568566249753026247851763011833121904382929431340144009410464185146169379576163778160494283721268645260169656350352857992827888729372427316927200455756910872691903112396880565078179576456390321514130863963342161932356505800942699829245685783157484557911718201565630264217771174691208792162840705696249569249320962506975453251062026994122201492019948416799441574389631945460538379053005289699072852600125021210687774402321621364064288672362171837503093869705013176455367378750080983727428991109355237363804549196837245900545172172944339869454802463979880780227632041731280795254320981842505688592999659718948438669242591250894967564181011405330197297465420511778191452342146591207892491835749106120707662072759923230490941106474721693917749049957254533856524824200381383656732668739661937328278810179108569830589418325921308634786077137652258744619359553552398500521755374876888274491861928910252327347132991537000936271062312568568235552102091545446868936811836875204231922750426869844344843386740399248827864583708337344309994493637069461712264785748401312595661170564925907524813750218834107815780023459968605466316015284807651721821463750277658029096500080168666697411913901209435015854989074252213459845304682428253626764844765837157155554315862704365643347882835513675467735354499492897581294287355019497281241987749480705754644770282337076819209908025964506153294202603744603126499620057465557763944424882638938471869186000161174987263718690338101704096944658190283484099323729076023970039960051034067417587615248726648877708352138556282812925704313347440960359178398929295527412471702805286332560914970124009008371817431188263366085775908240694566370152430092937280626024099821507158757160507801449235808166204418089190893099999688747433786536027285915387246401294650738557237252457073924212936278705172464597768267644157848125898519938767391319908328731759791475648255356190148194191391396738906606935168007299535650688265233900566616778129454465308106232704572045608182134632380390250984785254202827741544646817315816604078131721992060430034671997588589337245520867953157515548949158183079942616200877585029296226604725493311213696393893312046095407117071390251803518507281278431928378759429794475908556710147767290541193495196366913010562541984811445091577712974325201376256112756249999471739505926441707699763286195521168089142287355077440297405999384181249997298358391101681216936520412131384044873330426930590151468660716849846302607886581932669181735446473968051163648425747046216026176901965397051471586590341531026737248726776171153296485944963230981848777045178214007896399144844167164687153809872879197764479572093106247665128299616390968221930824544663517788545648975062028703502132878036143742745202101689237285234369853695474442729215513368653418412835705230418588688811621271330731899843408560643065328828827492701951333216792922321776794859959875894700859729669146184410173673693568824491159509407237971133695122931259381199338860099386739135209470080978240804422164366733770569083816125809288899286917699541994850544408252288659238141154760738600304675552823847424702451176361119061230889376410375700766094913139754856852280103613813076719329783527860637144111322539439700084939163863535786125512191533021440528478832309118502518047273228976861326082423520246902271565636111773338479950265494298812228763464813214214073923641172220345448931405852178182324130844756682920006692027086213480646591846584488442661959133914673471362339779726082884080516643431081549040414577493153053446798729396650513844346002921023508524270154762738764322653678833055781851480657083572742469400490133658909423780417036557508792588665860352518515599062868776296875924248739572771403687214120860434586615821554929357446314473385117107617077872960987796928625192826671404299679174420385820801978514804214930948546293299126632760391244038977343809753274395373691621483827745841852081559302155363784052705566954607277025293287396618689468131591444670667012001636235917560663016157481856195977024967209330139976011599261445179553903086622512676013904175510682394461212251748948740794300729032498578509132324856723667597815719404382777825612249436533247705841395862205908021909957844109752337326687944027884685346178616706296496633707460831588516451241226516601975418723017445833429631247043120762163626531247179620847103751818666490411235502356495827672383861911469966036644571015352038612124814937815893930532777122978150517051463323872842712625108477460282326474059220313232576193953106731721203269160738917820727521211867122596000429128912765882207351721559205354964789997846456450619561890587481694374937571213141096838631202514920001047396518705340497609908937952574350707584046241709480624272268831645239586140709807922812377779411609264507510153245405438931671005397227278784414530624494861709922959899420485798763607388483731045936072072160144449638392695627784422036503855098980893951155491394743886812008849263244062549442731494403372031766288102283853407986897024599567867769552853567240828740878714775279740152131690715413558805670544273734202834691656617637067626785283425205142158817095308948659140914655712016231129784400115562426898550387235121028667495708211851413441498990325458624191536295623833228312338079464034160058882236022625180602533782119424125167442701710086798076886360921713604356232206248286511100298597726143959015504432529462510671662123674267282756362416187613918265076681034505618151994076012831607526797210107355723413306348060846405770585151438037548756477270709062189716520922153396686646315435848287644508075288862115344772720386929641628801523756190639506139949344050439839255565860339777980088576227795001717672885727407908096415785893855065257230847573001693242079689882853760785568884543756513099895724096358628750695914288313632531817044100356867806862892464102751523418265807154721093810908420504435270260870525966695768048880160854016519885722637031967721821218923494456555875406767230853695510403020856359654313412959046156299822226603199570474491897253108240335102143953417038615338905089849670756084498083908256013532236282491171029150075254788266036797270093612693388202009625133893430402513879003203621171574908230472277240584205282645578038426076589090516458575554866329953775157074945304088398716234940861651935443640451780327160381325741113412624947890541924115087005283014920069711873202934012861109304036152507781972269732683911768858312724432063615504894125427618643850591546691054675285300095899713627123196778262836801761555709105451154688614961425061169644436971540175264203137851647105078249230070635061528767456918244474824667398723509723573895343977250617861540798220234549720171703864313339758944798159613573526438677363322649271911256162288077555636111703944634483705214683206456939452023387690448492305148381257054232579721476661430115105186718317885767754741760443317660661324460408626648090145470979621314991752437174479109433872365056771765660286939476556627784131287517459030139804182851183483805381776528794120374341461222531060383970069307876838377320490025376776406019709768042304461027837817744670893198963429782567901737271860796527888761984885993891255977619496199344760888125817729849147162723771713195282212802689801578230755511850787266924797342797498205924573051147401578847335111011375176163222789421143261446078170324420682338983984884989597713196587728705018835709756807892315716527222960846493434433104937466561372269634537358522477387747337841543202962091107063484902527674580256719284439016549998713176149374734586847769618261929159250431177111790980349445737798738417133333131654193429209890364484310212198621890447730390045314640194983591740232594188812011515445827759959790796080638271036554148392532353677023280560807474853428333923316651674108638716132484668635466735550039621239351723313693118959514026479460156635887813967230232924120911822203711092835816520107512448693532459651998752853119700810867116003593093809396544630397114819097141409497419056042986501706105721185158403830827524059393244962602998234622795464895662883548176602883026344846374885417661396332789604358488989968753188779093160748653805772450948947762793841392952028395022193243882137908807712580723174242653674915372262027379808213089671269575837919141389767497695565784614631122414059822859778741055805320905320694889699327397184298391954513640079962977488164116229490989709258387353352400829277191837678070140685621308558826351526980172075978764059040803321399140502683633279996487028360429035240007114244118697452545453908267911015799538193440462767812613987618151548990643710677998887425177615006652904024663679713204617022994473741953292997051680901614192241131446247646743907532479487916093607667697159536055148825810583975766820299018214809545243957039630636801125799349215851870928877318271790473579413271644670307737896505804385130663773873706402461631032113977511887760246690319516429862683620821062379961829101137193127456626526425226445914206483898190424471417615549541285651434340785366590996353470563499960462692964422535177855289831779616956923985733163734204995661595931019254372898816393591969474681499426443320924695237449292156668766975568202830221658537951571454403857212715584772810887539788615302263399257291044577378076618646505085116515633154844661745255422827746191204835468040027275904817442597548563396051213720266216982294364538491540298278414224930031024556111843688444967772084689931384410735441289480542216422198461302488318967634235222233676959107683915516525271020962086373666794100455161582691060950268981909254082381350410603860809603072505009419390971873988980923189147295446323264883900078333509408469085063072905153693661406884841451461200991035947340098056590934309233595234578880329034091384933063757853652814107365373554646335167814796680068056194319110500938998360201577285945485957534876752088125460330163946550857060625000519344329760278882188348234540861705870822071824507791266043378292000766369879157346616107715843467656517597383134478053425436473711760362112840202176111233562160519735430794880254806426076748041710734337368388422123552319104260983878979364476260497289839581832754664326584449942164700366646221943381603001189999706144521934900453016673535463238002038008460562875690434062416127705227430679631521842957692311198100336230532430780596056756143294239980187033509041854209111625619472256476426325391714887561341498906307688234911269754577883012654825881546851285822255718336375803609177980132115721695578828194727317064203648406397461285679656008714108855056143649447629004681552355842404430682071576551647969719206599386713280135679522603727063588336222426592661622855215883207017874912750265297747656722559634903147309584519153819601640099847077162381370483988459629969628726762154969564423443677369754810941217883417450366324859640937555406322959965167857329511221422243438424337650304232496591276306102211762629136721332413491381396179462639645074046589612009091221841107862460288266004567449956910370413603160558344302085621244576564527363209100787515843311641598740781573976293997287399669290458749376013493377191545365808222684917387015922094957902633199052929343385440016892319177512703096363100744654057456878693703269584325985038261280409601351607288860337191807961375475525277884619603326543578408320856141130204127139774013191091991869276442974762524955835339310622811043052576264009761795511054932292461965136137290921919056042313890295098100928720904369576819463512465561131010681913634274279847391874871184448080633229655375737894620329632679155868169013395241014096867494529861473724279732660024337200135502562717892737952940117800636085973403180868327389313640010755274423854291288984981371965211019968468995448043455726673358988884171842130574830269994528154321965142196032351689869335966781461716159358682367318496713253107573552913074322155344150530802657874610588716322411236532588807569334244609143054996475343057002045233785586938334916770773559539306002786561203765166249820548944261895622251364571439303249956332952060597409913295737816386920726748587130546774415938600063637087216406730318349111164844606693209332146137700795970171198071982820012090924929235432896628466923154785001648300760345602264452366786280356208945924777904405521755625348612895680033185092730718094639796905860293795639315171970556728376701978230758997061384315754605884451150795974401751816422233342442652165195950482886376659644317222109070234622270421443926465624875599047483877335528929682158119329258555141441917417838266219810040679854547654436765345624606148185161227536098986345626403188540844735237811923377697905188971146864513074106910471725930028049019264254128429610884011800722300596858279185941808915016747082548674525841066457650199790370704055857571499772323508151394675049961545044155344069966775622923187150011690374018263787029989336020428797270960688204766032101234502728621048098955169854191060199117132543508546214817106061946645643744529028716367454313648138484670299039429131320379257465990250194251112376685237572099778388213387006738460114550228830728788142213295868290951792154655257255144974973034751434029044849922178307471749924102912565951666145667230949479644497056245841707049302550950730942659193761962039891864448644994010397379174283528975260239846053888378315625797663500204706884306824322522740302653825001937640195383288011402617300452725705489454778589974761435033092860328242878583046295622531830644177601032230332863601064912971985338742273328346243445555207629175072711796437573182515824181110231569805333827428876805167229511911890009959913298786656723258277904675654019982681837216433133999565526747512422257771817601655320388015704818178037541098644141637652391710059152438674733632113329448956087664103197377038546174889803443562808690504326471983904554959312648222424991799103115697136778820096792509203444589727932930398172050757589422867460081383705839765993393189764826340979933470151351430080534588288917968854447666997988326412384605261613584112141241151549747750575209407097865892823855171124444548424574106012681779073629111142932551397921107719718822875395853350040208152796863300699201713575761501174693437193504359107268594216684593615721745042577271173074031020771892874771722074602544986989856265252175595930908501590510645894796474211514321973434104702000647511108510611588397284650730517247795402842769178418214328720225816038155294747950477794768505465440425043052200937684309800359263499360757868498573922395424826014767833262944830558946086183099853375549565763522142750793374446440250513284877691756512175662622183760648251311783531920358086324189968415852669646607651056515852194925862171910496446296753280656350057327216260654605876469863959097658251187255103599585509123992007083218271177724333758001368876229204088084772032508944352462395495089730041509415171115999890759576087151935204149850211486394235455738225581077879229422784507070251124882612237418969081935673175105160521635499636815964392794899027703828175588638960525267295116846288767508711302613490066905292306537810897713443870315679375976699130649757293156206105462216667194502862385229028390621669293522684868559626174666886057725900544867503340329636439298412771227662652080216172513858538559809145590517875948012001527855113852951359428263431176834338703485917332300568902135827132424057078395948241530170864426735117941908209852538948627172562501554438988665447566925056623323563829767094538927495972033945062189901951422689482027956196269328899817164890133741781609682570846113648559067427375331254669705989755325716169832647045239658126716401063520377827498480266184756092485880349202567735960353752486416043306399229367156390291046443852833907162186105311491538337680164605156459232174761944986899314746157986912201793691602453190199204158728282826062400855961108220125592910207427639618428162121544931482200184556406371553246624994809082854998164450538789014875237763401774698969103474071982220382379967944432132412525389724807313278010335051519890481872562793486232175819330889721396485548049156909305194084062313588101947673035761754257713317238856620022534143604650693437001833437073720080458004503738202603734018931685354970731243665251339200478507229793571680505100208520820344254564990971502677499539899937353629083383941995112607105688128983051245659723265213371169651916055740799907087326862160464926173017837065066590284046571598909789569217662804956200099401543032606997195586186234043115714576544140336457320124276085217089580978111674896226026232883009008731753438333184553118623688642901514853822259358136319162220249893337036431177223592503492026085439873223529168973721809887337613085937320916861891552680538242141372954338765430075180620607400661105339549736467048567352579758939591894892033755967471467649070812857193129312157013825244580371163093751528727589307993911151121871001263158201841637472892944841909136220769582960333925699489964790696794278041991987906310163747731881427173622602903953168979321470255123489472682666507978964964279892143458939265837774873200083805823969478016010596006090050074284155009582300540925506197047926621448118148879768079901276037135028788664444626717987178970808075287662996507320754088803060134284375210438631345123905769437125487190532067919027094460174756665923465710446025781976492660100777970690633055010404502869061723795549363478518495110643037681037374130311576327249276343889022431409797887742257025506997290066957620217697307254632042287499891404186956135810490674505335944248195233338882126759744114324768394997989306910341135727461351795055906148490540625107743607072913868648212315972378368717937699713462842035780580907723635195850016453331683115095273765138070702927835881500065735468863941424514827789894546844462601150690871116302818359858928764236984171731167586841374767026313664304200633209631721276963327204522180506294092154546626534171993765516886907755566603523293715410484242389338726712713932497617013476316852665406363493407149638795571998593130022917140413598477266960942842794249056447344522262972627165378979862465762858959042584139685186010862105441669196804371471691680277005472234396182310564142190171170723329359597060753130327894146521429584150900306058565819393272974115694178422528922765717262586210061573154621659612246351267106206418775765063647054086783257493197441208909631832391436735934571707164164920005463575471423312920622577736528718284575466125337201247360729216142301105282283257586373738304980694780489478312535030205606691747149012423695000510928064025912687766017248510985738617175181907483090452649187580844074110562037035705932837774471751423312264832241288991635298426952105591295293344966833605506542325268561151744480038576041707227814788197653718712572654722847414284061991296558785335518973607819459491304744479316627682590713702266075077806479401804897167487487321150177266802334387677506367066762157531742345705972116144499462794332779554193230553292818353192130770292733111435714759851123043234392169229772536990804156020002206542375475245897712122775818933968247404124892718691301875121186527668273017690115470080380618766222019796463403813833180729958758376852524467064851556709078418141016472424568845734678148240096537205272602547806940246976142565353852210459622682224739502643123249601214509072070587558544760968497956007146523512066023812311013429557508715836696891312699887886278047139287333955675562773456378734405073549209890207144255041806364100032449056255751582073329264888661328727686087411724436672468468545970020832012249454096058097531329534418633805076190220202167694520991652595863489823920132866350092272537770718517191970209072769219844654791527864052563715086291883928077436113706761782352265691592606304386222988189506275472020141768482855174691861151549712965263585543067174958725047727966692876604468619981358249552132565457707086462698541144217519117453824099346669664120832005686475944421041263289887182728446359730417930710323208728462165870230834888141155338097691512009064018225040463436137283925855512069079103744454055763441012980538640786048258800972925498314553902761806818885321868269934745114410587215191456334809228005680806493829778177254592383124891568415259556000697332691524288200614176971241388090803373736276318211650768988686055870477234899929014663604106611355720833665161479861889293668273679257123073406256326167809360776745301921033295105792363963823531655508272048016802352529883463125132979414614100553569357852886001812308784295483356515308474039242634537089175527161363195174916056167170080449899428315997405781440437030886378837037152280863022832490509277898562556296544330897795781234528207618240056177394795768838151615835985398025734597214916164844051142383474857892965023571735250012197953835723576288467934225430299663142902150745616249850468973073863532302153443212454977945294592710685600392085847901523336955636534264189111063971025254937260071836226018925352687091679758928623994103466216290480573097408390308332627988690378697776914531898592833207546022910173590503082789818205182544361618088913004749365114786620293829264664728863167168236053568800566249838913508439397644875334486220742313524449482114546989658571501393755041172964420906553675639707256584783248743741243005680093481148980975390228240693431628752689505568301029307413276396114172701923871634573996554634852706983881099783648114048530404009119447552138810434231620705047266666068693082977991038076438814442260288630013643857403068267087511232812852646932312815415740084690851581852224212027991142105375137182031304173966434707839155513889987865535265035382181311912710164991204967383096369993079875481400183636931233705417567762133691289638258251838080350126984857453202765920972567042818285248908626036140629215620890413769583442889031154007589785216144486412410859737561168893873053716259285854872795286087679922323517492259440936950334015348427387196994798337738645943191655825510673120852386508256348611542297665313965077005230421236610022335135917260569813746985183686302132838069870034562603395011156426417189552183806641977968967783375237812906223759940371736851027964231281757369878912095710633381342602957925882618174508036255166371168525007267974525913489531652759399022054097801843644477149009732582591393414359853489940005279339577788811050348318940719794559025598754156341776929186371780420310106605619284426236408343191833248610581133740433042979716948011706265508646971827455357126059514232619043739354163641782173664881567305345641351535747424117888574520908715312232392141539202987279727653019673078483981004768314680862339481959328669614760375187872714703710917909329520611946755332816031512579389929295332209666300486522520425963298445032125332047956912977976983719372054555276963336684408113585205613781837676418813456383303455870515407263099128182907972976085948970413199704801128951659856795283867264229215128990270694208155094523740919798457329913235528020175819336837096776678167791227151707186436011449605897204781085739231967667629264829935934469915789010102466898984630127120739129851854247669697611406751053808655185004353707161551711350452349726637126200609058068593082082388357184385225939804299914731190911584409455960819603694573501116603718517631318821668395276993390747390840130922008150721795713936873211548861815932980051265047010762409569512409715327776586875968052924685082288460618843294360417223796349852091858265989248496314978968968825346551513935421740421498883723222710285664822562889244603054552161297051155637835700024933699178483018766627946728738073409889007358542437984109298119411526718962303503037576050100667276798068668695765368741039627796682853903114950119180864013658897413654529021001112675493292837506063264200182586409642601835495597627784397262375265467660847699019787274303861681062376251346958656818097885025679088755002883071078022321666649436707154028162931938559216989504204044619804202745305075056140870509605715880333197564375900458812602577021491378527083905921716890875362295148343009504376003712030152663239419141570555226842169000171011806348574470095222676324366419560243569835447346903672118337158378120798269268602738356202450541003082512065829058536177829157055561877688385920677425649887237848617518087153934261775464321140130067527654550504088516456315651205459343929422854565295900063483845227463006059441056693945008396401650902696339452170329712798613694139812474063958597376653688192255254936767836551071247641864480147219196141502980875069062066445376006370459945192758078128778974572929132598857758359959362980930586838303074037318066381470742778093308610942433741352161468741399945901485295295557066257798257912612667541758059978532175874797787073257137744501693887114696591920632354519919648685740639078290998245349575232044253048646830577487535171886573065877080374744104676813296163805843198574295887219154761664671541764341991980890396086039549577226359207798448429895246527389891409769514795625089651388252969249471214367768397590451857316317732009846123243051208326650066720128482716891728977332404735881011191436292803005463831721729861637015270645828592473863993133051455866651582902276095825919797331885754902169987780115096510646067764833625235607155361723396200598058900809011907498712986136279381761790824109845351992705925836884529070959043626066884237079510624945325511280101020396441194040552513782619101987023827766687342139666129318364164135959586967625360609683567938155373718091303371507422837433899614412010239340646675545410317322087327127436517689821725369160138709902185942204243882780234839772838545127777232656712155998827019952822039750062429661516266274983396028194168828653878622624367008602814726064479002019430036214197917007214317678929628184322752938942675983331752769597329694339424227132626702722953716749077942362393049225162950701921205048273376960831425193944681364822792964665184603958233568801931361761727690244337121497252481747102031864440770247797116836097050876834669850217507174096418067800116604752338391254010315513939373550810948117570064339543857563695314558569677937132825734700500501053937575530496520028110752596091124929623523408224886711456941937463687624334285037873291364884798110121724579654246565905925537787127310820696740984099847986385362846520525357400377662240977451782485822279792732124665830071529978122235124194385398796001243877841565447387212668189399540670296300554374313913682075079990129506962567958702012676078562442076753232239404491692083986634102946924886134274604943769790996179967570396975858125751330054688135241434778073328139726552554222555428197416575355856234825633790558305536882860514687374464228061371878728013070629315506235326188248079345959182370446740755134526717510586885714615808992731340562956554238052988437454058333356870980670261127450640762867683888422780513635640572621877910097819934269178147807294965122608943530834017762878244394395241067177375151536350297036056550786588519966877994903628102504760274234903283932100376474246952322844985807943461407945852728792838647584694024828134699688283903441312795302314203973715618756186024285169035265952790119455103378750968328963684264338708581055584611255259531441284719307232367634729384853445262083085229547015906527560816078056968308950622335814330597557910852567231176778966265551657723431924924959461814926150165251991295787968837972765677384903059688386995326769533153635779197577668366126881225153074121272273122362890861093462917777775822778358621765620500696791241932480680100201941144238039773836033157460645924292742637903103570982452048066803955648595895648009837482431609711699416499111790049249891340312167608431666942708061730289316426633178099278193344616643933677531627888697215579880660256227394894562008214626603739324400127107629881203904241567020895578969171399978115971630360707077704262630194802478356512683377347420913679019899150188536392840060075390595334944274121682254011095737798366403773951762663808615653041536766777931683743464048881640594669459836251098871750329120370459630224482992553278795143755788102521390589682507734989337876688269418000156044375416930234454329893276314169234675645118489134973187477090998377395944528667292741806954372360475538179298566499062390389781624153917760721249276229679290702072317983960378593374736859341163751098419733544870549316592385398281134984777268002955331391858286905269486145071910083875066283826015812925946245002260499908703499258338859693742016573918143146598077390349159770342706670538867518677229822896158478349740671040622087793584819896692767644663927922833652253150676611268922643024725372485246718855325803763927056173648116086776209729760315569610857533690234422291760650519380248874426620528374569173184330481956480085658758975315460065365550547896984247419425198005542577178505754638118065032857084376466100240094616010735059226972658164236269792548561700616014944068137059141290237080767992853667635643584954881857510256751165101793138811102190412263872524723236960791919910994384591466690719938497220243940738607538769208765162780438668108252981861011811103605620005384327030674672167576754606273801812965337502097914691397149567712912001361447611671241816610073306246060352036398076140368510511200999322426966102878460428060653013810615471650704936206046070101335836573009438005334112298550269927656777266330142581208145692667355256255772553684229263546902215838247846181557801349361109266781705779834847218187881301122896880859115716345012005710260302028604895532559853702133997444004447082276047645353663694128288724074202984633215689113254795290960929013612236930603758668500974133937869111949546538101685733116041010770640303502863539845230702819601581140297165561258255144646809382965919111784196094351341149073730629817163192837580038404604514147578099878647927729688441132991119351608925420809243286413123042659703163572195881716992531611632720565354763212849394498888436247963073947434680380845115538890983275736263103127604821247831290859584295216041915548405271434112479203457172672814616636660264037000029678045680936067666411397801164855900872403703434417879167090872782152179437215441897194820026677751155031944754196829216332615965518727096075953966784690736034416606731125568228728292730103198610699958433180898307135027656933113030402078237964337017613643215542565047070124985583598144041143254833062851461504291174526618918921074939893187041805167474972538395747119083403113533978944741022924496649143087006396579415779796665954507214530103971822892719878974827574390902287041566046028265448007458663121648113804746022364656316565095795513113179433552874781949967067844760906040224139792026150813781866214691945986538532966694719734734065562471284966795475600731051732191274288250904297974202062540631538340554281023138264305957576936469307318716557465288870842346586547169123878036745832994096069429720735266298721664521855365177041008487509586987751603552013769808305232197900408675065519962978447151017647736643872272533887598861904848935877838926519826103352930803138327409188188437697106052767027929193503579860261506650952295052783237892863957011013256010045615559739487567297950243103542769656702789425275014746995325443745110674241760660435515043194993134379936673328848135016857458750592454850509859635199545097270361417376806960201999523717826471284232854221797769674621669325622908826879857507215430985373491431299615101150925916795641043485740407875712320854862433233615492068489137511888109426457597967209533709762817000226160853161101415930347517107173717668468511193032224365205229937992800801344801881266079523631219886993013168572229937529707734956726884991243005117394546382649065753284430873823123616591824616212193268377645447021091125826258881669813884296567414211437098264806606704309924519533951878079724918431879198709064136992212448398206320541453789865799743187932341356684137780953019022978368496758379408969368816018290104939707149933956145126580641144063889998338394542683547139365368237397156734806487722572317639072958711704060439166137758369779516735172316856581667176754389097143291441836348898425536790163079196762536168544388393073184945848563969496957216573147492579658959310669108716126139247615408583986825953966107230382941042181185139447661791471072396049653854484705959051534810251248471491020953865658568924343320164324884588917234932448055328443032984105482817956679963632138436494380151751455641919339063345254957783170363883011112931316268733297289123453642516418073606598146796074461173870936767487105682422712118954556052412284063368757943180929731099242247311482933629423567062700336882565349304726009846249295217173072917112778603100992093670790925719787388075793719746194602880089056616555479454811826281319159712021803985404055119756881644717029866152782021474959139152993071615740035116087773518821863791953165907073406594394636577112986185641555562683747645431774192242198653160458017023556021634578363164077610111216224076128784642771940141734001484578928244728800139496713897680517706997021386260692281541765516853924457742650682639931969155530534528861080371309117087830399922264319730297090345352611441123986531064682735527943414855608657557717266485041603638782791632616146563710525724763669882899853903318019553871493446861622651834862617461273445082619756417892568707031128349578347227748249465982055396229467323022944863987212851384538491106639054710186098058859672361116729002003677436749435399233069557955900208710241738218390850222932716369142448074088121727375360434320768959396427003365037491830672625869163165171970568027454031094781892366296836684436804367772007204477435887246459519149597619730820517933066662966076901164071896091638383593003451449235951432256779942228926211924933365308462924555147992081815453056820620827156480351005250433735663145928339802786659176284375662896763692978942350802627430893800854484072707949497812077510118141831186630389246231457634711331477105069118683003358362131593232116795382504313287279251554442308390131481285405096586832182607195443643610040872513330042489062654804102311598115581174039232658905741369527535949697281229388256630475175831884283956081408140464736903668130575848665757252740613665490142321043988693153085511829629633774613493076752269923498804593631510655404939593223494201380161082634740742685625671332944862567141940158831945761296234548858432299280347517015368671270749861152771890163040112667493359268502195545157545626180321699443781356705117219379784934420046543914934113907326592780487427940456638917886147260623501267213687756198453502287826524912189750505834977903565482469894416518008253489340946733534660809376118885137549041908403126473843821058113637641892404832489073682254986187522034069792828995791546562478185345223241353492074218424052152579061179063654427684603401793478013500551297280543352029720577503524614663065087704367961402867449578271250627057112821719685647470208022167121812931426401839982929738276269329807280105838184051957347818909599799929711421773332962375153333417316384756060485381218009950861781252611437403502317060732073911625267286528974145798791217207822944968289002303415591051858850477323595580108098502428861619810589583785925516064682910501647883440609789769180281593378697961363775157864156620785880709207095657141861115445445732790169788966454860729913136533362453565069272739161399307699302089051818221942476081274016924199387861916452952887317649366287465668217104433214143339169490896584193862610253194927941317665586151592791393482400346727510007617742841591478508119717216342845813875335171108854473394718597161862372906154211795814785575055171798095775209163123054594531665048438716864169921010257982159403796431259933411665971123836934204649600887865281385763827622300130490538541015039834091127723247833713326069534239905603012397692236371520295347606461515698590962845925548407073025344318232684383277616712548162260987146475322903121032621935776522814156973106521514029033216971457930699582802655396770063649246076519239214775292520328029510360850375068551287208771883684345158891961142422516440822410138111007817049704096892334117028815187573473758337445632655225977875393632768027077966548827491960796804105701320196117934133607616344237282181921564422408009475118375225502344086867101444931238755159430794024822360543700351401987125401620286639190158091476947931220524096701558749761191654487883528900565220048850675546202380310093187767101910160193788558275318212255130081753601205348179763893547913913716977901146707898129666411443378556118673468513233164677592587986558978862747289060123752130466236304755950287353958260780328808790168159283972307494231884864905180180307937725650128191595904368025604363055476618063735494938431017286920825458803355808445730892157757332413159292746454333241463172621590692664477219315623464311476689161244697305699972641410044488762594362494973491609728771251522765086918538110381481846321773317675361137091382713439973035577211514841001294132493203648492032832523388181202421006409519881569961270613803278670580677694022906921122664543426708067078857834107351740899754020249034263906323479861345504468458798200678022069497512604907584748742555585100681387712192556675619430185661966784914350072964917817814810475395368467261368862782401200000858767787251495960980097654832574894327605972387384077047235247154991646206745365627806710249680540780194881028089154099778584512397418774001458394706151120745766993475062410032169554010658106487854750027245714358066482933083791002456341826751954723789246047620421465873064226249564412017536864706049301973062277889408952700979631711809132641111521459600406858824186266391054743608297312860796649410020142991471766927074747446687370735319681742804659291769697271761499764577976155183272624706767427794174726470351739441969591029130574557251095874075844770088686872311391297860620133208007120153460996515559326120859399932799630813776681779984023540975529367401528181904158067189752364231208270619703635159892924971680393264529844343824284771420951577024678616003092013220882854545930273432828924575550216564237447757456220741625913599212128434081416054881306256062293903989223945582562657972544658966640212174709202588656285384833814073325754306334363489332897849195990216696890436039552534276613130961711032124575464021689351784109464653596001060819098836332284145428270222039670512801737833251688194228059115444104401900348219228014493883831420518453889560112129033310317845078472627216745706394952209073393444607807949175929313411460867536166234448800698269971779519249752492580872739394981975638039447947816921391278695605822198926374817364077619529162401178658134507744664075368490615503327386591273285014381821801625588869552618909952220708557760701929816104087387845642603214586197582319689258583031298930300223539689923443858269280442808577442413202087147687179167174965140163751818695181949587315105224579352645010594109930619751682639115019398645742478461012239362962148566676293060157249897189863359035253740729892390743451282802336754349817509143465721526372177159982391163049289054924915608407616658029932052432414623620414068592290262892686706104538247859396111895553529939423687615186358898944434785445041050375273025433458282222422515249194965185646426273465566649304083240723366790136929333841666764304401027971832907932953906487775358486435296459311042494924308111713437715604581729845414987321059252830470498240663340704554730713033365791608036952143935837585315079855477668143532411176785526242712740194453834438854792804108029748495783926948931211050380301277691780446315628842869796239064561270066537496410472206140716781436107691532666023270123824672807867030184467265046047760626356559766277501860377713818672728567898176269999086312571131021980673358802345692715139829676665138612008682655053646435401835775000572124769333547233666983006814545268760255295330050118544543112760771924835535926682919155785855909242508397070235521340838775025752174283816004442836677690139071514494761912429747745068991069599432471255545273666057550728501772114239063175853801173380633455170920160607035385156661025060387107326058692224758790948222631454614087402045539362003500457087210038457653562028421977338399392672730443472501287465997265789475149369712293879499616853883304269601985953032943576230590675007001636614708006167742188650600245966418621431902667151200105371350774287753739476954880847693329246572895170277772663622674041609711831722459534538497595455259704163010068047325476914765017034685329193892969144915621254660238361186173180032391221111437159188126511276820822303294760885895103432700919485219511516802475932580793404149373593648156412514280320469078839400162620210123062824389489846707479940030828370768195770639743297459972420476155213592497789028314510126327053801507663846644587802871591806135120002872929572890528706091975098052277082521486186664787170696984750005444767661784666087424318534963888190737811518640932748160970959655373752186864658856063109396723413035472918027333661241148114679891554026366384199288820903270926773260462965336682282702562753376944102558658848669167165958516650145118339843251463293433891635367038176678330891044421976785792008517013715554975223928798237170658716830139508752518806709585691323902163786541185137622250509156544921913856323849980343883477192061042017466052537177831547855197196912581249561745133938136820896867514772497200681902969311385475072914740439464399034087948868750100953674179288228384932114071244655549843212707797238172425787702354313508078717389843437957605400433881221663573729525050780702665844446244950242294674648184300351336022407352212026669614063539930527359499548273059570558845341465214543842551438060507158718651071022624749453822946676792282768250201396607686361679526495448746607289666508306620766833802796353483377105474268657870819148848360639394185675193458905638404322337826392721682972165015003809286426347159981924027312115185184036352629111580533884388702114104379777240416939634419579681027767399431441394815742794883532459133636859990735544927053501194851617545751958863590944933096404178961300908868660745673936960683065134138041059389007274034833473480302002311262855825908443030645016956701880819664115220800491637911279438207663045305401343069166511149952956839868574028554242569376128924821211648411347988333265489164910135421227822378190155370273053969067878876415622149210004226619794729792178494965149293067278077870821182910626757836477471674178571330209341408045895059466088914262595267683571489131650591179853011696960378525567947604147354852268011645824733345405456742810283648520972556974317240365196437655150798418537731585956294836051918189694658890349574568243162317539547865536329052398673214694549128409956741579970240988703339273610536102779440788886283025342938010634352857704723070919238031124620619763722281179281504300217213944471986964818274883282279982544679695611548963182827335176458639515834635427450474382282930114350859526989515628104558768788387775846933266590413553737586624648501415198621688083265971421231779431172553520708619826857500363038052769500660324408457420208715415891375508187350222061198863993182738156735005288235139656487286958640745469616708587245977713958817750613412305535222107413356992744540643497192104774791697187047580282295658941071646005963859838491082884320453963025510135793777114627261097490753793072929556241774931006049598941113586056557380148966736004373230561684112187237219475429592297318142743312155094263052558748843389766532958693382315638001200063444394061446438607308797761193545458533684730418121357606148594316411694399719610178581524997834732674060574313219393491492312646118515886954850405802970010205302715385382373076537162231111553897662247294038496996881899849826907022915290252806114520848943753917705144860469589012791347331418868495334759235231837058682752672773507476565991980550886785881583120836074682943927980004019202588472333026968660649217939737733278609948537202465526348882574893139688803322383052344626347326437061936513236827345233283516467572368430331185933457989048718792995530753812062831267609302266841250879879422112120716178207807419543888092557086138351788635504264683521599701742643620247073601593570836218456394435933053564188489683089733753522880579343360146278652258150581506252915352375360816600892094319559070363410638491247000067294864026813287741456400819958842603609120425329503221387425316425680907701998162449170658719059692488218614599062048780687093399800157483074895113380997626161140793438068264198573572264473785605091547850622557286115396231217820582588242885040869379099603389902681509369120944961786230057479254220678783616058407931016159003614231929899419307910933790437648904458827909118900712811026565875202211075803089832859213592404407599386557252784974067411792835763465757803161705620855125237175013952568999341088891942859372557078144384256806087860431999276070954915347966251599268142818088215437771938652272825865738277960642264736587721458986384392938690348056555259084766380708502171199140223541697651421561126605448727027729200747180114824297972675530751613507410600245996019352093675351897095695158040751837789650203013876813513069309141313739676699299928712132925856963086055699618425141305648675392456149905632646226208893317676337052357060761541358264451595767388350012842521915347618146263556378144578452081426170910830234006460488862696272567285538080511710336300568019824280089252352035604582258738124059966080190885274002198610235739027381942297239673271820376328052564440666175341711019921746147365608705406107140394806489001240586675772672433724999027100190100338868342018339920671131935947569560643574610313763267606746837661125785930837147376931752954372923957142433013146370935771970082259942464436311290051481990552384631649924286420586758586944193243863801858003818286517117593649307439731052293123107726179686630431753640158100939756791174534035591200114765390778022481366797305431402270346177779049034038547917120883546518951424265439492097989285923630223481284062021005510662267709242067186774672476920719387937756397197017152636510846143272049585953147478507813016999731025910122486998819613404149978450432329359912972017809037423749514020021364839703798993272768133658688239425235790856751132060719595206718784200998082260919178564381153609330241558589707612099902581889148050441388077309977930083105224820068130035769305173200278328494180163238797153883942602369731937118405218807892086232949981347864161107651846461311542959675666749294246283638863084838909590287513304317991373326153440072098897293983943042516227536233924133803257219485281100619715992049768302197270372243502909387713986488894397169242253174143854526686582269860753166687379583773241513973801264336694985041934091010965701186298253219923576142244681336625018109736318732144080546427893973700048614199649426495911231326192601016355537184087833950808680219256398855173096564778895023502889312835130401680450441191697375685647645940875145403453978352686135958386320428844366898409337163829705193622103369906929642267974410240412978983528212399641926066199845062115365832616513963840347190553363293945365535032787939219516192391701859065315311534864529263401033926168241598659697073855684424138871030368085661761993282096063866315645389821083513246870835287859383261537076492995394530141942424786838153626596359572048640907924237128173180649322159189687884931666360515924692296350814560170474427183500977891621576201344476613524548650404722348298416090079254796836305273437688427976475854270935472782931800956641744171902890436091083928405324000040184184419662437240901065857864658290764345205672967757219483032156014004448591006937428498345683444460020885688114564102350628309996812106487366174252869288947697372187645997508570955329151249022607427579449677038278849846225866404672885622004617514858049868766489702841277205738549128046067620018708324495024500395751896024785380844391371697458398343437173750219391212418563911982059788983695888702432076561881643272187346326650494880772583442863008997822718854421213488518368385068205168432832366608701006819938695647754369930882232797265799043536054979597078306584733497547906972061660197524934410881990898249049638647072370928126388027721503593736643369447484356743196393953351336671539389056559406945981412202782264654899773071921489428398840166879721141568765869865203573350203065144329182907157397181297764702544709180346458421842363052000414526472814073660112437246428120061255767244410974103487066328618504527759584446366097440586148597979882263494806379743677657634183039067932765391005193539694217943423650861941034624528768819647373010010414527741999839506761179748558228583185348762722621629182649436491446697336413422131475681920704177516312528434964367138369248888708381584235346195582652333945245326223639046091796125487514221868089875580688135661885734362397720434735002466669660715493460164763963928202437457964945893491235974454854637725182241484852771542355879872298112625696396682799368089239445828704934478970809208001073263892192659019503673438005348864923275437360970826469284790929152745527854774565399803073526699978997530957806037615925001389554161880623035532881036906143722443358205466328125360642340975005750899826894943768495411541110102975679178884092774631479535970922008109318519109692602056714019008172508828690132454954702332086103864091071312559737374621470179341025004540708826910358565278758011757471235973183579344518857016580610740042227807385814421666268906686051181849205240639630024339872585691904920677744513149343131073962656466271607517338431465560413013765934952290070234614337215854818501015806532059717958751495057222339613263172251550014895478697471556412861700647516497484388241822823218720428844577165711642244944188723138761265058510102475669462259430169013569763399277079130838889455013957403318516035541967845314359275559530536748195483324676932105239275139578870990104037779864491992969718707392610624024998413470786509661275534017553682878551607636353273801459515200465646689084795060829881135654827915585171476454720668684645886605903761043805515243774930426419969134626127357392406399120619912704641020033480690072972437589503833702949832850472980490192219455848655969499111692606609433541063722288258443479034414594845717955061762830727983079016292623336069996915821980948031955856133049246443970891631299287021886651380563147523174602318018877148948058161516537202990440812254296240345339845208967512514508226317427322134732378718821838259284367509122468498706727241427094341296070789246675001734392989416986277923440701806412003815274527619001139750315310276409948414196391870786034515359604718118927228580565848416245841379706171321583720051577609809343030631981791770939891205000775960261085476557510493007378851661191695894814169167968057167934030208435326953681568974428259747134161864609380287459913514591675154944104823497282509573521572502142852986150767458409959278172064426755283449381789827501678474642650687241977486796840197211510879319627245430728283978445652459722809254377320349196523268784390264862966752860616509120581040897646790387911052855616746653406441097328421528338311323676754150315994800739927853071819403585921746333883954344911835791115374231182710961758660707864997969140784512711143476490836288729645736398908069873584926520063464081344909353018046906665913510762073287823663062412083932279714424886996697200650059315920858924192344145316134706885522169863422089610301464064589701084781821275902428850182199203563654216475187688222179678622921277472643217202492902061993551426200778040812006722414310311152186869578476223039628706926578548012910324138785285782049767009043883602649522092847175638741746650108425349578341020660092731224329355364173684029633705142581903521387059080758521700633640079346973551734071144148583185260074207327135664154515754870907568546654403747243128550987597354009851590899839522759232013503349049092323892538053269515885050502523848426682093583266087299787175172647784971863869913381254376783725820054642090302231944277448962349652214784449830464714797736476820825767570998780221644201462768195755771828701291053443095890640852832264261042168226023248559606773475995382616333180564355144767905711534915650729189752118809335408686533690805322136799354471166781358698544659972602956340185686355440110996536388873533298433471586758936110661256633074586414336346278846062050748717578629309911243388623569496876651035169323643075299074086837607644317382870859645417584677778373235853246017693340825075962180158114525071709378919425158947949382484869506311443130378783273601504321961317410188653678852546098092098646976621084311866959284928926678007370563199137810729211961997251642251067865410544580913205602900825142729467012121874209999850133444603726014029776862372705002256258909077226663741525636596753690663183244596731486952259810253071058033013134160961808887536552636595453761322447767841574651830277152940065819952296833706687244408262916533935731235530450392387947592806348121347355244361577359608385637993770620666467791336535224662075085551503079688263423245048993343176235217528209777583296675044730668311001676922742503664873174409666365231184985370231404517674927987115400746341472185468334902391054374621322456362043537286483329976808389689561088360146434282124907335371250157310878729690308524594920441054697115135905963063433660117105926689068039481722595761333381138868880114189419755961715020246953540004793075684143956474894030703382723902336824696268696209071924316692346570729674442449201102895447253090474025246700571403548331284438272219791146248947176270071616876506196655532834106814950350667329841250457725163180160039918159307500885294744921811400423024602793368797251380034658463722272554236202005986838294684435058316748203062088406232753450591690809935990199635402168459978776369393556052330494581629320601881814226527260333886283530610774821768177552165003477893201859966558371908226705116843436064991867271922025115565495195955439804886997122276464419532700890082455119879746692237566168004218428374633436003496380930259678236906029780356928663505965590529919130922731300647811521362095319518976234185821021174038551004424739637737142358417584111506050259182302480467321828330584717555110913053024099306148048595623180313856585272811354899539113301236469902987139818512851411782883380029706943839012337300614756246444748178656479172623444605916939433911664057530448562889734473434454087833347002519271870575728795036490646175421995237901768380227766271853210957204307543080759544502446092132764252724271384398558254894339840570056683583317423394901324023706143572322629398742760132888617841298167958944089891150017837665721529375313543267212926742117447627765836863746369136180246193673099346214928117092237743507656752178810531934279267708685399896808978658653857911506086057265534072786289467908182380083348345093710042201679068078478123020044089835096800757587410167539462663298047727538143082513855897469580632637244961064202458839504735684803067963787619119309786949024968263891015884507028349577063000891209395155002934914601179260657820115624798383421770692448315068400536428620677637279513420916304768955939451981219880562770559509468026495587614420073922499399665197488424150716299474956964752964378709688019616200576730015928718304939558772947845860106398786406717269638965507956250030120231230974926300332457401937918237952187703006096436937312201265713363042752116981594161219286187102712299858943684594184246893368784156327428035385119438039925749139335043304797055878937245927994741274143030804662256441976729123941740039402101592685146237025560914205175137056182082272420940799927752041756444091154154005844495750586155500673922913398051733477180318606238494959717903577283498424706612835531026547288978062391748453561539922415898830893715375506512445286665935407007351507589835252798922933948569061759727037272213573279905840854775154007730204616067618412698651231725150075426502463851014524850601166495288986417687908399291490642297172102966254664226725363896203140153321315446790860693481463230682856887929826334402270903306602546957306705314235029546055500958914391938040510365889740145350952874655250573053053145053440039470042260436404911203276671440846151285788679314724756011565789063382676616897892604683269696908262783865358930969555818201708732955013090106549022468841074431394403417587899465203939642440877427291316654578016928689382453009289963818591509561297135864298755748574959495381753777809719624538636402595898607761865242962893056554007660459780846935832156172729385793499929949252816378412208999051737362503611317423579388556134664788227841594367440773295885939543807755110483613857367794916386342691174654649630730053695194390993380154447441217452557490580682256709078000168131610955040682856852746982239623644003933274923982690489401700068658008128374716820040058649098732717712624536836295443128112571853931220746306412092524671084296050506224828792703468160598237667920574822116921233979704113080750269447303057480029209407936797174530345346867014646652192020180372419036947609006906605619086496992935243063174423867131229546596379192164970069513037620741257989841049966291818320503219839681419532638412225853277522052544371952612127157649635284757995749319232343805052517960408895196125450710533619104257685521177179487485747132539841117797755368639490825773491789336011031882831293918061720501220432235841628070711325817237383147559899288675125077295472559174431789917106879999828130576490728332155587559632930830508141386791488213538652455716466196951922089521375057643550572322640973873878886016469137446706086492850121548076531954261012276516578122719698092015118237583029703656365258329557484585735224979801559795751844904191551503238887506490775512839182403026015898453256282632490973861998412601653296840702582932726050578995685692395895940246211908665551420712164233870665386204839146478502404406423448332789410969988399077665450262750764655961164733743176407524467387638797077864553248325746433405569236417181981695776933234170290071122687024328674121450975958053330653713529948191362663642890891747255623247906768774222055515580109578106529287284192657977616885106258217250598321652328617031650617682576404948864047913044347452300862154361413238261959806394417567528866064055082362123434238370792697080786738734396922038343047181642761362533832018888795098900104244664835156822210238457325338997543081248973716501946125378649900016437486315471741411635970001704623475300069157318279260902753007456714795666399659769281273242819248967771989869154044196092532315581906163563669964864659777958118308821441909242189366192388948595004745111392024541428833217811817640835615137540424393334787416604385541398790821906306524966418349292132840227994897221548573596671755403304336195796147131209372777950050265362174552457953547726220344466167545671319760782309907162435098233938908350664000831729787915310005057652595943387478949999085468520397538319564110167912256228582551284322816653006337739349900492888811274804874662953234634528164372062347637003040726049100636029975687449128625411812469314978723154764698222493468521789126983591792436985914729221857960381331039323869061460739669674912311838205608991125771754613699114645140018286258386582974082062510240523051674913380970528832697346921388077000089472179125863395104207331253483532544374512336660288105852644180590266069512823951467040629574085722923799378178114787825295061660528378256556571973505540401158713359906692543443148444418739113989114711145915171599694895475454865852777890041021283240014087986817015581254044666807129433017691698241882250376142632676911791544793103237514731394133729676807082451883080677235545302996499929155000447280185097641037560322926469529721969244077864038123169896391206210418012622064869012102668443112659571261874063526288617037790538980498612562669993195983076722404718250494834020166650566977355082917794873997450065503234025253960948168360422052654378359501421637440105509799472228505872692110356742912951217763264643590257483866687009202481109684846155406769912708927274881145438492843022038037736703017129473653456562040519630645624084187239966708480465176969798672954278294656604472513675175948167596441578513767395743595991434600703356769306580494439929102871887363814232052688480917073830758839639767844924122231366465614464667910935954517644878476425891138092145519452527930617162028739777778731133402566563768450607160160672228327195421667351375229652655735771913499234888908565548227920121306428835443095763299664860014977991195599294282243611470186366879049607055781541056377159671322969331185593830602280214659704366455942790704875237461155330483389671274971870045856991584021688666287576915636130804454070829262403623903930437690177219920558332047740619153592838345089924893098703521554033934399865162219314702994305000606347651381963905934862783708397358675768840709222571276288329657199340436836856191658031011821744267551994278269784310008219880267618490760285827044067401246745213600708465056688552404086851065504313836423778206086530620905631872562021508676089332319345227958639379759378106521255620770542890954199366942545347207551073366567322350455368233754930584266542978610784042750031906154165670096841105682895859805236887430689654075246834532100999562815730008303722357620228088755589434732353281116056017473425954880817671287062040144719345156680463037650491894330148953669795300508397583527218209815186085554866475334236723913186273119290549983395950941375828757673867760281473578557914928277362080819327955576426489692588236409788543183087947255755432969832705105576974123986183640487764962788598697450102665968616378090762773787425851153270696222449135994816113180940085464918694910015840005410932061548448555652009212069469929767626848044323606591636338961320840383513528142371000397632437804832089724870803461601851465913374650098646510129626700578426525706584427558912040926766314719901943712885788118364976497687376247068210319661554711596677656853922459360315580705729274974708102080084017172946389227616974669603863803187609023442225775280765687869424502352771116989673376660262595046264222753855128230012152504343577827232016943580628256488249729628366226745897984220095994887301253998988234710879630859423416952600625412604290318357657220463944779838329458289862271461347548129360406451292130994669421716627172565040068419943711998463319727709786443592010581713455353086731178838366433384063722547850916935887245411578357736949691015631114010080273257713991724181958321933106037912357009093950241261178447254185792855169615271562672485628805206846238594042324699668553884393406582624422632154329896477290572744443971826804312279637374019750477428982969955282522264199691780393658295879953025174038432909001690992623037752981218185413120998479457098653265660478774251000032282058010968753187478917331749158772966989830413938756802196079837301072951228623721772959557147336118535433996009179790736458522288938933367110817462249425547322964314261916363157769791256748167609021393830108058836425275805100252862123289368696707830134549179587257358169860750187244232074204909189057341129986845240875800298615313785495693725938328041110141899758101841085487931159945437902036014055466215534697540256109730890098296999378719105231197824992916266109902981540301999307845877180487585890734441068574326819914675463193818222608083825651067606560368844311395142975663201830732957736689354955232460798052286415858032033632222325194200312918269276889784521286783121543776443758504585397965615179709717600746563398829041079716390338949410448989621649582681229496372038978517750876804422708924139517569941471821353421266037516133290962318269100829888274876978144310832070549530332333821515761311887201946689317145063285772616244270868398496889327032251697568273967675887268331485427716940494379833988181165476075199662023457356888273083862805213496920024461512580710020846227797741768927488761429598252775683938422719705505142032692102150821626345756211942543685678963942819079025060875313856086953820138157276179373242475071710898571643238580708736140079982329675630294084093570186551444627046272202822665821308963561380833045234225138027891250789584954103025178880685038263154841194794742049775664893571306908445515238004474714055964143235725162899240566504755165431750312965820732252198303217128438452982793132081806169849019392835380080357865192221914851080571696745489779693227843013053700702111352652579336585032541478830778658349943574567359185923109469178021530431169320288082849559293594100149692540192224108079830444248261091575144444423199716700632262928403128005648547933148115698155373918347193685676669645884640783440890348784213700388220309305398536753645700686044936814189053926363432874061936553545083243296645123504121385824881827535019009559402369006085537047153230997383627171043368992092010311516634700531056972211883970213872069817984608236950556551966849640745184444551358774512020531776446441265663271840839419732402770115922361677482821651432449720390682279393582131229832491859232014944176079009162112099689054472252674523116154765359151797587904076082361549689541971985106043670459941073595303044336179166733310572308796572836714020121107495835364046000395398127856188828413282570714710806422786750301998449451760221945207978513074226112931521757028390690732231834355122925950804889393637816627547193268154402340123166954896989201191047969823870194558393498269102090991654903785222006502648837040085461572153896237328833183181239420291279760530706309685624083030002988794661643109814050248400934070402441075679315293423260745899303540457883211376761540014428090445051310640300240199785054243523887265854802439922648351522313617270665917110576198978749792278470658878769435680635431956145543626990544264109636227164815489199438778209308662724421779379286462891044514133867821952119748800570131390642255980450842744201914482887658274048138005962987840381472799510060912841674203880473633483035414624580069194107799733885324200322293381431015025916708289102178221579070787873198934617749437549270258298823633147676849378303454355967676426988682222808513148546782606731580497980218655551483035015528223207537721635517586337221394534397085180507385707073347217800827845923885706879020782208511811692919088051454737521457105246056588417209646688650471137514552224920432525555655156435060514743378847255929111713983204325973386764857358148878265756839311852830578098767095032912232062283278555703233082562499608913421760485350990301035916467331316824300577643662830619773822055110601677569409151493712341739770046122995111379016515290494374375225669166440950676170896617361249929758657304767888257128625950514699830696848761237591326525860228567123842606804314377671162103491217285034911830220557936329456457891158316007106850334565609455610409030159647575244194618388508097130040219556256898883028234842417772309332518289172450572073877139942134639872657166677550750313624854554528915154106686373381531700423912985024096794781689250185971624390564323846389204637761558988789472680057834512429059853419576538172590925527812550594154058119593124552684849516639085209206094237660264788499282422602756751859819226687023791278724495696691240969292124937506180594805967018586569540121561841165857352254327959389382220091194309425875809932034078292496975319873141436499545114631390774018526947526193727701503518353631999655861724022288036807813098332431308837983616301163884531011078283031941594556636456447694985151098919048587866993605830757093088854835238560918522451371683482158406138676721161305825336761146322175734802812262353729282147567641048466834649266710224944536723366825708319450288234364707072543615021517660288899489751944689234934169709040240201850695663577735395047769561474766230741713882538557253217010518154371598185061714243089286685618422618783848657628790559024459218774934067434184967085418893434496512421580689299878260795368978295942173928628218849684745346377486897560410467416378626698899501074012968795671453773897986494826509428707502670598237654703420774436966826905375716289641145163829517075176317814822811934397627992203555395557700346086395314875865465986044247044241442630022557115247904057080327248177190658287046806509609392698840924873058938654964274290660125460552502256952201094069014793763571104470558161627982087921965503047723747474470217435039645180766120517344742752977902888474413846011005637246277270474523880045096523743682049363965902210394752442782267152686469728734067021213230123027777976791019127953327828558253417717116159605400948204680294065093508445088154309511951699909105958378560642952587619818093131415890628437217726990919024941774299669909714695572037770369487000723803576012415137133516794690088309688570982716371346926837853307944064887717364193621949263690905442650829717685082632147817274629781974162647082428325904396696672058943115135366150430333574294532578990754636508396093198266123666559327056502151817010314026327675671503679164858552597338400748961994585093701242128572985386538094686141936601261257335960668989518636086910627071046074157148138920649310790135711167993187003731091049123350872889661043922777453282138937640732647411286459576202973267554079504676619305539867194842968311264209210195407039886110849881087173133500601011117005625659558441012059627761309341750768473695949063472208446584910090113530667229424750612100253686383885164950167921853849379134047536120299559247576983143141809524889740673664033554527907991762902125689020960661093843813655351680859024472150801859231564649928976266833278866807508797301716329041093748160301260520868804743871507459423840798927729012771161567749117398931998203377802654059630973913812325441850893074735746288179716089130146571456541178214595612015475845289417037317346366400597957282163397520413715043075164928413156451612951540565095030763271019395793771456358985747204418942154424154113267896104864193842235137919237623320321780360940961588332346566186270447436140044740858197962857924515489494816405768490693683885881026248061302987834311419503421397610982848175126847450219505197064551156888747999464104375035331125601838892292302221696979461498925902830357071097068807381345571388782712869959987194970811641666780303462240029343173824009878382325002375053248862052593416416844665578084528021140375069668232684182889015445379468776059137128045211584950757154182713301765519614098069868958415420625804478910925824005796428547759175183879141718857746349265116805124803845611194870129812145201350794638804123786833311138287782671110657052890241484654492441567395148007656212881879285214150565782748564050824313545793145334666770226127950537805909068211235211886356806737163165329153658371814157567767826412264541293871934554842880400733921770194972519201972854025314324849865613945830741978313493146792607687317481151581441484416396088855476104932565515046502487783648424409477521338883941779614619073537079709002015020590988846871533433945199395055190028928997377502111243707548609918671966488613722237918655180850106431105576695376950859167797502425503273384767740375606854293345487386009380566446423863159427147490411312082595330268054990300799336323345328719282688811318687245561419812149525604926433351071245559348160607535269367336343209500093208141697006729743094617851197190030606672147185028728968877437307452390264933459104238322676572967989844475310169040474194090461775941654534768939577459189631047931211658834914144529604147001685105583222123685509498013097699709293866913546559126538560780462144413485257464255349320408624749866438214091290496094597069567653092626315804838563924718614828572932377664636666226717058610140044533873813220508151673488938053787555951050547607602553101377400901762500708667687827109650020787480384364813329959991585226398896374352682176138987294332633828061254660287291994192125177493475404739049860235321297418362615197708186886590339486533045441222823464590516758412744697746144243864161988535838414542183959245576740234510183426911616920369034731288248523043146595746395373937265756447296075544498779505484967814871147112499479230669355057125929294953551068559308769611649429539078698189846490078618468075042545292349262389499877271803611976344367703973017736613944936456317095673928392205256407290695235590172005376904238032488637159747518420565394293105564072986258751199647147225961354302675564176143050527660583335075137449136219071438731383235248174848179511138333706101414776927950060665817713545324691153641625274191071833425006209381334864349982727785187864147975098114881016630220113258392338697288802934713865099771954689925441199032527221786960080205934747335450599481086070154609297943425415043475060071146726079343922459670599065750657735030549668128867050796438147724870682784047020946928491358536279854682653646075087594161740833005240011689144179731335792494597072652493441257927736385456749660402103746100765096573120707178493587815204525168059170938932115282982396202212768906369534331204868731550772052350869936464158635188753736154895133037678689508490600779113195875948566158739043760843406104589742149632203230014234744574340289504052507446164845445920469514988140662194637494657242275576416400989431846480587965108888419924896263170757013243586072743873590587360233570843061073527845624479382249776465488214121127904788707896125932077119072920429286847768909041380075977711607433505686724564562740168484654676511471915084306498290502305151478381377851294914693998379228858274943293508226366145046757123783864683230289832111901348889084800659201519242106119811409222206149842976491585874426453137191972268499333161489250905458875671438323978962812162714109194410139745424850292240278795173056376612302681267031474535590738721267305984450068597873119078810157536819275547546751152597684626016667706959357458104064786237148183698104972032063522518709627245668942759787567291027076544560042131896333792870250824792062089847336809732519850899060501884066689409486042749424038107480760138449859748585131303461395679648862705688625419788520614632233822546926309564784661787321905167250221888532698806292270462368635935289006282020025494887286744460234752909285268193312686037381770776867766150518792619923705577323146145941484141626871440663791328801105319650742497901489441512745917818711137650832215923240811911039334960927032364738592683073988565139459715735620740244882642423634878628335791643305952278515998158388180749035716798925056204283338904515267938298410033725407108995286849211042661456096167159134015304829174715775360815810316257251485767649796271748251961489261718142867374699709725247661854930237421960248618141856843279918115057247348228734703126364961799581340452324542966580101392979981964459300708279118013464994163123099629494798993119053436965985083202173444424643276083281857183537595549475315788067462240833497785292650536204550798690389793070872000185456339451144937235607265690791388866508738567936451373892349194204431994602328245271916557822091044700792652711387316198901849061374085513037155156374986621513113102355398376001747047656730618815920337846328709432802588609910598416378051643568095959607186597144235596465084773398928562899802748989163783851079226999632896338191598572938315083118327835834923989960666776319073698339048875452851786596447099077911335725176985689961726772471648962588108163162103644657753031132531993405574739946015267332144498306846531793838061934829067121342750046637031745441340594882101763137155513841353232908799779502353747378022352388397882306552289287595797539888215824145253822346848158629532091968213232152893509878020631737339844582173600542077716687307444619463177569843330944307859111423490316168713607451539346220930871455826082429653619264262664673703480876194444370132297460623574796640316955372770664843091078643848830390674274906032727278190573581459095817940626285509248528526449201192998981507355861995752056239768984616544549028349778082663958281183353277822910226734852791566951820858258159727664584566153007656079685414288618825779843794247580797084219747539165719947300494926044709399081590990680048874981550520029789817205926919765996685052896475368626432725435080488936480983078028370684339787913560931706919493605129644141003428158884518698035971982407105604779311500075919844218047096969229068662886420601425039332969907245346721173076163857020588142544998263686473254757059575715268351871707857188156835032728152127356407111357309294547809077132133571002250945653586150683513158643668643407420453870367744452747456104968077853371292819046291525668347502775202734797012537134352726744486088698846781300381834503108831902722130827433814282400793553618768213754158433866781711113150461411724987180234910824560999513344423073809335504408659508665090123378209870603783795187404993820424553854768866703902396925185560726249962128712794767079575412049508139134230921775255290203116008097173129531014125283412466082245149103495390447700624430082055015257832709580225900818610276005787033850406423175259122291059144557232733955620893246680280425960670350093191979030011394270136262983800088877263335470400855540430285475360713999449025736810589761108611654301220713892985790279780270630779665375738117054743032718075584975530495140138020396730596914775212657683542598692508355627957439983827972010563092325822214791297998311328720201888595427925717420344479348365752282310493169648054453577878613865017541590427607226958338723736570020517213159939115865997826707914362185003441275019611485197473738222514784469844037514395263661464516743693154153566966873973572949181867343609835441877201244993866574213029234324644366521619082957013272111744829864923194108413119431389388250538798785366310120556834117314526832791146218718174303542863016675058609363206868969523920224082350360170977907501802269316401764119161499015766134512241492915385677639396473345405543177797807169309457171169496538007220388456914060636503406898959192579157335370587789814042725288030672430415709002130569367528870470509795191182258437103114294916621855210900110557354455700745316478695093250664929607939578046179204254083981756112537051349996002134675574575875038679457860615220519286510622019304995419940127785353370760256415788269775554857123707492251135756591435760404206254460975116507007588983239247818932480732930161621944063206557335106877462394124655884023126737448738048714981746934916305849282782606110671653785451405929936607918907727749517898487064443663150610563792204843664002286655122869202294477759931460012244446128898475571762963783640743329266281335690636910886624905363911490652930428244570249734317938814992971153922243271113424980939784352851024722054856107315588507653634596379938446325459408153016944754241203706650301179022319443603464067185330747677151115966112615244176461334337937109370244011595261474020453056007839502392854840444167995797434869125111720136902300383004433239644592408999711648677985995530233378869764179355637258684290797096456241237101416595696257619318530173363548277415379474810201941887137929957698177374185061719506041475803659247906258326664602704235920958285907620544631042430190571944529399143559216502980717313096143357589056470296435241203114944549177476046892529333009557555243668945788868614677511372956595976303224651668361977257396334972247314725407520163465079176530907501377727277107199287590942009018439950131408850751644036727453886129870528577404288634275858484005928586069694201772451782414986157666105332550279492943025825821682484669764537111882623326076211708244672619881950750995283630249056746545958574482355976574630586218122935600762825912671964776211048990361696412980392655750706425200690584603096389319151065983235796745100129178843502129107787405206101383916155368906002243075040474995338190602520382565011121297368669202045287460951182055384489002119861287824982352114510891886609106146043284504875209048450410244697864863556300642365208795822960154199124859729035680359889507010944634360967554069319247824414805973175236640597953741883394554702393431462292065837835771246667715469424224749600694020448558145407556422798018994152040267232354969647867005462316836633287056104842247518349145364501183572100919357218445900237110380812989853831084050753700450531615326157184673379624571199140029238179896015908956927613292300644823307656069404195423697295310597336997137771725411240495237306254481981547911488870186711554662578081191936667002845392166554244399762208742449571594167042889154086049850927436395179714833339754339619924329613959019707334799964302848794581141847933286690635008454885878782296183685161268748563679298243150374941755504638304086037019974035321593560058789658823012031263738768761844898945212754158070949694910883195801038671988491455096426705303904446558452184263158698872690533939572844119934480943355126325281324022736150265289433248801702356020166663144924404083815767049974021348384522165363448759922792318500635474753013121986012062512862413481892544176321044901603402258148453382530701957190578501403293617246898232736402493523068452487306211164467638625084625177239860148147211277899160751819528723607560371801390239523118476643931350017926375233733816273457839716054054467695616414983640144593796386884731902139120786274309498173505510180540511380482749532225006184949245647916421830432571523233837322668633592267953300904274164606494749136807913656263710891182586316081239800362288504216075363515650131168494576077829082686652102184077978741699518054570757292101606160036317324221212282514632145733437630172206509051717815692456884034272039855044679267118920646692655078045500139835489485398605022006887659352201438812712906581391950845410470455606101397192111307374571617283657172501188154839352976522830685503105193621735387226303061034109353011391340600556561573375290170201069587007130091747839986484829232999991339405106767498723246742436878728840348606916993202810359927497743073280606214955640700070110435815884194307288387109006333448147148784178636926950245970533580666637083778118388263963840413446662492015783042383842199717915779353272770577685035748271409930240117843825309506563590289894148870896379707474312242253826546351551290541436566523475709793012403201018504429571387153493256926198715431947513382646431468978022445521771898143334857446653600043124533635563254489387111213435039418796813184495822625675435170778768658412941673842923406825870493734628861076752252588514094274120443924804368597005605430133734646797251507736233286217571104907680882623992865008337923131807317559392480492394697203980796514696081243602543818910600040530674039772629902922323920912034757053644257750643023698612703865437369902806373707150876457398993324060471943862474255843657299837550429749515964245384663692701500139113685164445003047273467482179611484326741669762815132040514089594411969875790752460250591464060177189771454364201708306197600790917010896178671829503772785338223520354709181305465655359082807652919850679195577396283479490487643826642891677565990103451506717541180307121404437945933463663569899791893293816112647171001875863883019168709906012056155819999511815476196778069780969323397882578346712339765749230507235022457731274430864380272634862796746017336248959162547392112039716054629950130236023836720579231399628638100302132347168389577788725395309361433921648644168193166126019151347991485721822472525021198110264683089085265435235904190422816433343481469599213063609692616802412068971625134059271424935007733576817816196301510049958017998205429051280319492171610942451774318631941697512772246230050967698535873143379638232697094400468668003752488369091822213019250438262525895533146781249518526717283829278542288989874787971919961806195143566073911558180094143127732974158943325097791121558604766273928628896542469878933981541597169796380807703954983357944836733851352387553965022577909963934791333037328742411589449055348863175652217366280505142038113893556393910401841829894472496869546885575341209192046916754393776369903947102060391430829135334598877544728197363505709098585995816007465765273710497908484170128897960532351771493501093807093995715718414053229910702131018862771244608958214330540959271418794021670170404872808997326899117383868438331156339823982606033361011303708738645671993013378215388241620719302574469769862663583532349101165613029364483118392678601918741165463995147487806248795606009057166968762780727273373818187951260175399663286769968348768668260982082045147335290206827457036010108329388475278592667236915858584206254149486177893245420482449942080712468289856909624465406710878393513507807218458608085010349292251627256209504908571234617951671597337813330899253384047023405285315605736732468270442210291457813819414205325981116126582679264605517948360165904316614100276094295281696877660249485436206626875445924213774911942464869308065871565457570059678845713175362612389028652936812891582898900762756951450612631512223698413373317533339385334821685300702570380649660009683346440595750023686779504733642408638950868731813529294655208924106874238697642473788706296287067155189707641097982499388208292501677960794758901449705166701914989160845634777372565061999209633838943344247278503682081037801264002332148768815738773595868686439041459913823000308270910700064690475488915702033099378764378327107469926290294628523619761062753462204293016779332017581610180392153134157140402853079609605261633167665534704668278901248898564678687373037441335768829131269471314571926072606173216636276816537413137718357331090329523037331104819108710142250439914083078532917119385465770145027223377486300585813564902207276258173143938613430736459232446431907225116008273839446695649672695194418258450982505510420423834907274558898999101427964598239276894476250438434218093503088573982119414111044989749742512615112160644764766638412052647541589630130048796862858309901561408777636176787025590443999756450480890348978566125474957541003967827972259730085216442005015890757095707497832434899207773151506607677353832540350709235065639642681114916518538477335278777848883315343769435726225075120548335753924966508118725620084155293680448275206473881771834718813053627001096263598891386431506974788264945036988401379277252598376715787542180871993969496808038195080133130105375353313662890156560766042027247882955916041957544775424086583096537052035053105279352691553446932065250249659187397388003597715023000994230590474446741649403989703336340904703326081213191913102286746924117876156327760166552255536541530871950249722531179583063308182651587660375398241456519013791086988369433206691466198359886643689038699754313209005781476891999156228293445710342012021057162900909374002275939017359907046207071457588733832749576610274354326788513413229968545623311778840047354259698184755556452643096745144980290947498071857715541383583536498652987277948131956462459373733366164959809162544802034373967407406674096595774215143748398191287009638444345545281442727918140733452671077152954649762876502566743639548404104644335429889023617264768562156698182591398886975813105793945192080089545238913596408407701220190519402728703694653509274221954582136853897881576277366160642416435584944911352887584148708884409650521337697182416412826228137106960134772411152303259659867928995629189683102760359621231468677803912412880309986874286326641999221861860390736080385543141454031844496140848403394082936345161904531247087455871616182582327115104354402361829404222397356350840423861657793570298371709065402514867139409988457497085345796103247445132790346885914838924574493115058426872671112730436551923900809484780400305642247238749506531284733554709058032144802095663664955848208504422432896732705785784510416643773748059528539956596762421244129905630511929873544243370483292472352511055117235096796583895711414705875749090766495709349414811191656817648737413539177574399893416999719661235177555051009053102040985414015637228872806573093101025639394903275955840821286172547643348083444817078063238739624295465802890960644746575287872852501616116111464466017331302295909342357278739924881880251938204083147419137225789480924352427231369852433276616601977386829455854113825060735039058462475380140845577358523180100497848613206082258133202766125456451252406612372418973519424215485398382780105457411783329812198733346219766021822666279526528954796075421822564605124600433744953841584959855605128683247836883354950856436486748524425626462570536672095278104696072189070243918403432814241444963889299351477770483011960800593005906720527133611384124504897606085284967569480820809806020873927790400944739596478710286916859726180139061248178590856761508237448778781504106056506759497839587073729723569218442576475921221916973920752470782461515712925802581444856799651118998604821915836258480717690661399521221229672238933215397226064192710204059768278654171045098420395295347165804151549034439678337403863921098296834929731814375610902659867118701680832626145668506264768237745106479113237777507103841294388475818856690986089372163138584711310941707024575714746044365709894046718656227084199116517088136142943973176453675426108605253611431274525415433907182097777683095086315645675097953549014515350051178838040265136671697887379841459998600874123192252207887664582812170353563219918532479593569608041168059211543534114809521020678294488466305722707259561311962024884679686191008587551130468877869524862722661270168880826317155135603160704863525184430875688325259997210487513084757723215115722494511126857866681395352453600554067213854555050388678707135490691530306111987843203511730888067775766868902461043296608209366971833196826697937586565321681018833402250806069133065312776929046799821471822243419823505346957630292401149599239657395795351289738248214672958039373111001846575561529822244781803196772141904976770255693835692923213312467066842795623032198142321738580911296115404924807146012289264204228081480415825499216437182126908727192475987905359693625411370748552909439705214370822487037838533993022243392894743447809900358140004017236040706692371613879468684139705344062068211345085692648380499218217412067278393346451592324368923896436265370726274110776378663535063193922861597020120869845308784949626635508743680721700066845132983134863135297899911611722889295599677297016710106973437775340507990526026797623730687130779996441447635900947088521168474175453969808618573765409163842670838471318214338742333828336025214550857624938280207170665725768330494296832320995559264953564723673776985927442654499182528780691140470220959784880266914906610459146773465612703104431319044157533043823386207868260530896085930503715281198852631493759072146223622666401166569560349427631865722730231715614809757022573811147095612750528556331059191778076529320501741486603211834316191549159443567408982933566091648792911255744807013125166653937722709699730852627541079978769962031684057888806903537341018872219820850959345896048693371070904430060874990311450113629963698886675344972377448745384061133361258276716542192247981132932183528951014072339850309582437641997199386691346332423660709513796560539956554893560593505940019809294270083446367316961907506425775985470943759980314339142358671161071682498942399198605812928461674674154276401906383917429321208553398747658023513738809078964997518243775404797138687225328054465645979824552240912612161651313536530435180397511698945000828755603722835175982898582058749694027590508019214929548407851294542508368434637682741327306602120169431562886307975475047491065595815390576614684580302612056756706749821263399641600535829758306030672641810269901479813263881732951086168488070062393130676557056289403009668432792078616437364127687707064997712542523410177253180027548475218570276031023262865145704069693931957860662152364991333228149673798723163069756718072182695658550436005177526152590140583229092309781636905953178527769483495112946381310691706817412383560304932170637686056961319332996161037653665083558925809641101463421674958625955433658446053010931872545175621217178992944766691419729330957710103550284702196963114977343997033115751370498901889024932156547765939266000837356082747142621392063011219931437871587735942552435347294686534294519685349305685026997491118942602303052510919074711742321666779983721539633533459581347264562386750041008764859447429491663854995643937857660212947368666277947778192705655819330407649691458693655115757315443581161321621217653004418571162780016279032867681289371282152595533372947547292449102268995628796752823450244452092929251722568818891873158878134387348369921084816680848728035881115773336450830250658221946692539509460492657532338886851919351110750174791112541702225142802713407721928070343980267624720092471990820123174121590849710214642850663978524803313239631517635508865662227537623317237523133550401855273049857883065248405624318090998786483122818080377333171379284733198610230344757427818569935423729433566675667430695051587358429233018772973461756585581249979727272337687250245681954011253027296552025160019129867987155398237116265366352915751418652548090014393135075693542779683241153533457185622841018565177466273314127385851917476698517938081167552022273409538901244001607331679983332635978008381763213833573564124164605130622942469024344567818667436547531612539358476401078296528251549736317460831378117816353208298350659808517804430017506641915026697788890551818190140885543041608386100909082956741538558996126812769947934764070381728618675160205056584037817039860674367892248076922029981170530729944173993668780295054210849293708298826627237266062753240977421753186261101396540916889723696185626033923632165683830656266680829258854203360980229935956650859773040436115210486122673827712171654109270315749771333869087611429220760835408459553468510114037102868254985376535410994204534382504298915945427402769824162300375165681175229355759717857243139788906523742477562789278798361495825305490150111389000184041277841438732856442915225893625763746564852684890976122888962807218679355072233223382172057992883858245855900349244342885118890644956552829248364558217854805845217513565355888994130235815084440304392847825949444689763813173453131601749962586361767216542348026576739347950372585353890649466106578841003799966577632326769438955444247166841501611830612641539301294823423897624139463800683528875354365654338271170155414588780833527076319815265714701750987223760249753658543693432272106187981257531526505863960452097395429086252329707515487629761065919025776317544518045825192607820489218343401361018041423904240703124533839240594875814465801932391622930761294268441736941366441927139585661152238589542788844763383137909811519767614217341922112423204924074184323738984034624439792323453136757209831544772357040352370204047498747594220615255233873489591325519157464938898541717675656353933213271009217540043879559987129288028229762200891320143257366321065031818497278916552177660105154118805887420204419992903080829932484350224544738780843080970135396218973641033997581819355106919348758662380537791154223523866721608506934899202087064566144387150605628152824919949057674001792967188225692230593573234297271281360799520000791025378187765918617344368870895815967807952284178284329924782697948253682417498678138458713456681128368008718075339656096556451081863481023512420495608892655820863193581468129639982648155634351722943648379117781901940551802691389579595580953649477847273008603037023351141306804968896956488525533423777200235736216195613119353831454756866255240920544090434260351370986989369822174403368431856050861122573802563952352869103608986208245950970513115389979192751305741238482669294228404894977143516567296336076612180592314932175350352735760053390901229496547290429976843632080973994954170067513252861097788593327965687138232415833168407388408728178138377024621238299270851833077276563121392522507598094803664995474640922636948831176962160786528189293421714561110811050616559394841861778439601117879911221746983581839651941176003943241238538163192829253723662069122895400269666293086463132501481529318270835092955052947361252930657716186261232955835692443656738715063690156041891832985896388457655898196837969622603733442125262054021274701181024083393259749901373232894691499601258292558321778828691104887683621737854067865992700266957643034789273092566793153984706971946618520215718682578953928226255957448983055096655116935302802613082802838057860342284073671852819657185687830992685279861090605286463013722502249390890979164996348074912034593737369768975783519951044968241956557682986362936203796447229210091610647216072059952006675892784405878293991820231089750836049664298496548095696750341160630309134372840643771536559947873184893958042535700883789275705646346739823784245707634206659942950481414470807369047498073016728045607599819778816936487300044659695548967127779530787210087218908290457281574137942113023870871183260894252815763654585073728640212136574696078674479670206769255434067505428404438132487897926003674427733662834131043373517644497177594417911206795375147639049068494279081644046128708571069495830127248715976585502380810252045704197983650101121077475170080932158230313800902346771779561561225044880702108370596206397948201420657555222702305313496330148160927162134763515298713637439402254373847075872036801695038790265390214366043124909904670669230475558516693871900690613527417736812798134238429389834997603389450613697073128684329156813433637984974402789566578550996906760442075775858094964318200749790706658439007279457736192600217543289072511287480597229638658926224045626391431809715317846830132168361082975313764371415744558152724083964491335312512297655715036020542524509259550038733663599629807147196064659080121731312281323087422136414474951249085863132797412172724792312637772324318031753670093772273318704462908202243130180467090058388360589177643262029478296235407275537146512530308506488850374898520101792292582931703722571238962883746968147399067773099246305136944060733700620314931023431253735760216059730008451331439286540271846110814622948085965578904458655235325177851963545256655476348469685926565506231135139523340248280758012813793510077263293565040465037130091598374935753428024672332477850315680103776642783001156147396341428161014693089747642194500091358681557081229758910926366567962642384966923664665797566278624301388834960251311857626801268476779941344115525748390865444153895256613442599955030975560552775845306371451818294766598824411375801699633856407213821844693134141290350206497939428449062457913664203631158445086983811191889775818153338587796495539339894565009463696507653742758012117851166464741260761194103727129574231539916030407916494501312822312176585841826840715597852914245282472682482379508779789322692253099267864051436841119133175525461306938859236158323378086866034528070471094613779726777187114758102663275501004389543900411582451862318520559865592217629699425923770794074165511144682228414793876983583010792713659385946330799329061393264147055286607330819052466439993958201305520725006521231349595358756924005089592329874998129315092253220171317831438759951849749348484740183607538605272847652949519969195966355798657404952686419291833706356574387232948010054821806453904508197517859782996987196520268433004419266329829624208814022071551839629872663102855333405775727500097277627636479514140668620051086413431504724173734801195535961064133820112987772081074288000116412267907208027302305386398949067715265718394422733899599852207388775503523640080359949589137507681894604924119480267233738781742826994716036418988739690935727723675857639328933523644875968604258192000640121586568279571980437795924561993309482282969083445787258591118203884414479307077018762434414793343638516881632924509860079489338448453908021683000148353084008505416823711519355726769565069256337263287309692989190487283000337920321895189649949484500614693440683180349128618772613719009761836456012678903381702060935861039335789369931833392538256687304062223651240638589466860972150651087106487241154409204248578754470827430292664916367340384019200424885304936724798009575528096487947754797451381333039424298159233346753129304290239643442037036914600494351629527565262164388740923886530104232199951888017831873267706888249793830386109215854748214156489696754713931916581224325230524336374110753911870991147598660494417563812820774269172965477904621612098312931872548966459576192476675685162464003775923560167205823601324938830236491957177637343619153266550963101647140345795276507620344385503878854631231544242138323991145844216815416154072541429099983824266161957509327085142327173224628406302488703992278457480539070412341958446198070418455830862207461787052578299631153485019608831898727306443485249156437861553095194571723031496242701443642326403891856300373903103887372979061590562643752523890338666370913334291562965378552322617950055046553932714302768132414952257197049583885499165713292814581030625032913933691716544470947377081828742026026577954229486064463041411547847238536808989207224477682718092614075148687048013061926516255387039630413719618737782755893027709314592010382081667843939878750764412192586433803972398164268762375567935370254668360882741160473052261435629092225788388209691653220928043095007078156201373867565573537740987958189234482916426673495587147801531956373472156365659614869054178166998490918661425991134657613072563350363637361724299376210352911208059240506285232802425600665979760108346984515145497541778219621238730227458389832767247228666949997736509162798567654189439531359326593743568699318241558328091153726926984590706055518668619146539457900331156138139198399354796361366036617547177303162057767165614711033939481280725101484428133307277856031388097110986255302242201433414343620325918621705044716403656033360144251786082373879998179341875792407958645281051780800269638700870574172164635716012962371860002701927482691066478002308526615778420256101040745078599888147234332278993509726519852870399246329141011819358597402041939802517445863744967841432131606112832667417884113317319485664957190083803166614952663830367934542817120430533093800647076981878396648277844207167247240833047680830992655203613665379664992741749313817497693306049343050261975186192251892447261954359093186754076935587714831210668242255510087307148314658730356814371663774747041546545635677124461826633739724738738486349909819354258917881470277186883709887396545189069863290805668194230869497496139623692881891296816180255178527922281589541240923146759712943100372039998697809392481310901673105518398060835324061302625167446971397935145513498746707864726401595621684966278946240303839069438598989546918138679361923290367189947301214532696239101056266117300059421289687526458938521935422143740366478819593089521519941244955240429058081157887793327265407793560669965834108632285905362654314659329361286399434467854306674227565479057618892317689132325068357712544582525992724924200639145746399636459341632644837348568031507894118781449382852830135098478919121506491818716510156422573632617742059325492363668065976786659254561957139613283656793179194626019562148195376299265636084210472348382959367056692484114997846105505413250950692179190921504464801601870274866542965262268673054452203749336157563701607605348616819949688550737781182684344763236720273439375009517167890561502741130056199982619218358062914250592474193999168546704493962773218749059454214198083447244861272553561389073327411952369528068101832741695664895695202333227981042505038725740483983857777383808628822323917523078338483152389491533725767743315423421746277797966464920956337086841993788352607339263025882319401061251237483506010593785154524854395249155417530047724472546975649683715294715555254923378840275781762574455936216261017960012182986974018212594975120571812207007785248907288525368385667009326516582185578231639717846613451047577331608077558125006854443914722434563076777110100816458072057858890671258802153128335090374117674080371219993095332280133932398889036722021484639278354496683764144403882545408443209700034011696660666368087742481014650572887546663469273422147484272342498771072135886660641058490966198788465040162834056407042076010083803726640965904603716199560476759274368612738804170225566179458151335398723108771995026715893937133949350826711749813624475609190997572544235345499188464046552868037074254343742579093803092808264825097015845612293379580540066410187555947699278128579533542044908456175252785461814111831227350007704798572556028189725716717676253583674121347440417720839448603174179461501912479718251996923896196119006226204897345729778899731129212172387257651123347082070061685845461704216644817618165861808581452917206378662526784617943222546003038380020635748400681724536438424993192711201943713888989438985728376597997937932547973309762749787273872907488916493248495492443102160032971156947807375484050013734365335196683544821379849786035275836729648826359505920050013570853957431681934466049776839643655715282167032626614343878911477136329857522250780151969304882474008522508016664882213784774590117821832412287377255985729810288369975436090479543674809133258480027699124507572416101835488946481457222324035756330089570909688290397144666415164382345543262955991253698654326490282592000068836373961268878319950553412090263980592635555704329584732694876601800981264679146407433845822618825783691552932940345578890600336082765503118964257615260268566766379048814302475575309112024206685668634131522604678542699145950953900021692450627652741643362612725870307075807147215785721379326163938801019533291559226461892038406710711638645118324610776405082059878421779779220806052584740260831355897542206728393975188181149765309835363365303117492857166190609283116592391078879253518962631867073273923990838638398653128993821982889489081364386864000089952572721610105165921684362851021853905676707953312526617816392871036921739486485888274247439917255567315444737884456035486249045919893964229595675346713641842252454936559472659880781160025455582572590231377494326855574962331534478367956612492152101655999619100175381988323410034595209663185504273552947072834014600627094798328413065472959744689689136044985300728779276880410855289870077270008909980313888552694776372028749071564927203154844695238153316163249835970450548513525949049090681998213039264309307186763327849735298171291723331455802853572620523369253369719519429613753317075599003338433445866469477423004197864123689538100160366504590371984003832623573406817947338982525865638168408990142893946554924750351120404435401448417707831921297235966704358705431738921301317893364748176903244536156071872879805426752711365153109111661024772584898336878107739163699423037496231056236638241887705345123972878647451122184073707180697878628349739535142975661204133214806168740604821983917943429480176601980497944500929081100722399850752337796501468208118710748961908808641713457987852667713968385598566728887541985880401348624340404141087978005085150694107072313187166136563828094382256435986749660119583985330824935280969853218473644497116392615032127085212680144947454959676370543908807171352907826457247842091576819349163313499656801906151031455873569392021287352543430700285468085239414606913009377385524257569101106734683646797399451855722224291895568760303765371794732714749625172303698336136091996750622196742418586119661888945831784829397962735644598693358509819318118791834512120952334089225858141782122288890301472323030652367290427459106316973348928474614452314410048095245076435195928600334034762423578762417239787287963712802349172601635698778637979754095852759741906523805239014129220159945140397452162254916253189144354405693595239654298269554029913094916282241356066277171600222823107540280395457448528348686168955865163265560558610360090727888047947531966185770011503173512706430576008994613514813297974605251826734276234711414609938148126848095013349559239829942212269099944877593708935898212875144150132343556981097490160955720086837451183761512703914045812628750385725931225611107737142849317081142113858671191826832277963538118344646959758495758385774606905947852123885704239887702042119676400357288420686615232766294957675667627489144806746412318870762449798574675711478653084165187874726444529992934179682295585423336942267654919614941180626369567362090654205546751697815525366865894878513092972385849809367568115067732536974767923930656100328316986388085373294960758277498375118535145478669145519727275020533307630539548555209879636418188885524313182044205766817113037161369468677978433287232047024671741446658064662560448752370935979616117584426089707692769247820941894149696558340662010497280456495015214311210873900792559391170447745215785913951929694916313872887781052542037506785480188213804522315472945840041580710942785089679892499175152485296147756372377975950092903245715806859120363974145052548195021928293682262599357686896305582275455200860870671821257895180507902897050469893036959222125774878807659984677200124018990733249439071681829742152139181443283206786676826948662845470075012270215672893590513047052620961497106580013804266763395280316908272167479699769344150071169460862980937939218884427664587783328520007578664070807763630890217292258542645813530793043701384185773312922783465398942050384710879076489977913495535313746463187400598375893968614142731522150852656180654780121218818249851320922573723566968828954417996161891207295512080772576848318282098781063950951487088220110852533502710690419946271167008097272519192286511808256275902028183734530294880289494522961288827836376414986249651915249079860932581503697238551572187434152218254683989775538454174511124591056757640491684015194040406391349818057584274607223926513131729081605663617253325603139073658355425765909812080461783546085447241063038447708264122482017088843893854732001599869231820346982828725292396843791256614026627564885036681400623715582856896472904116048297566267289657834398521328786221432501376650144737115582172969360511670452021914609070540739127093840939109483655455109973709730805839695986556045446536819062526660947520973393324406051074738686957078773911054442133874862001234624624409036810259262561307413995899111594507279451583411830207935218082458453022248442835541841325758957362809689433814899939293446725321694905135358558956180485774671626984571772232538316942497626659492230648107470996496616148725880282337660183995310448419421162194231686037760797649660503180464274522385835471871600106382626478718104975033721923480748396680380187032330599231912163596979186481052648013933154283542442026398360610468563093366267940113176010282406100463845254668889793472983726322300043854144779152404136982128711543141799918970331571927771970045909543928769533310209367004955702534802739851997213986013959310165529330832972489641560514378921247147596601678768175633981809933594082130190753719725427976713299914708857826325868966650307893905992673770207529305369660669252875186523356097935444493076428726535899939613179005582118037474987309708517314654488807217122626953347709013167678251787089796637238895402547917022640945676150420155911527196270173846323390050274126644127001272497925767523815439871224360932066726012812426937564520833484157890287097214223399169340096528315425888339213020057265372910987958509581516602517783418665297582711208240931549139435829725810302428591080729256231781673037756591147135646341341166490181593645667388758599314282361723914136228931610320337338405512360183862598073740262906777316585639853186313637725174711504719635059935414610623151002462926233867242136220317491539878797117827905294488510358941389433838347023252865795053441229571657138096446764991899825620015492574021979806521753491711662125635213288338266535681139786897861196591944949118317526663571677301333125417976417279421232142414454463186855722261696362024847579636871584771057802557722931937774340273558302430334447823427995175989042532941842823552148206729863594328175906871724310489177070322279467153685996677073005506902883364837678137631440266320700474712862687517055221805319851915695396418911481963816034983500904335624120994022955366205569570870952774731521774735104379931486130129681462153604379844630796040758291866409447563377613273708296998834905766295344042980516255719507444877174480209442656808914347528304523878684417690911146939214035677690927485471788115892311036845898837182602371301616710846679500338903188148523461577381430078288863014965599740794076084392507297972556773633323429444313773540380424952308966447164714392694343550975731968749558516497612044433099446855705612446253117882346697979375476618390369114692232249707402312599162000386951850716347501094101409874182096556164947997780683250946708121405008805331912304178713836251372456618700165193072192343636094367633616135856394327185652972078430038534817452780496500245493625769084594772545491102877784731766435172632260961645056151459112620953830721228250255665317175189348573351458996852100795333238724418287385545542287403039239700765676343518664674080727873654597596723868872356184873137771151378470954634343624868159460330017439028780724944079346539977406354089650929393272653461923322107801773021680992180964081544311619202739039763048836504072110753255096819495645700051050030991298929687737325941519643617107819772564637457852356328834262578394128922936656879726091556438913480579461913383962270197067718002100739552587808115161466801638994531276589149553622701451135217525518860199105254328061461611432141061094409445275631057196323026756601061650285538932339470893841890994810448676284971641726205629461943180338759587460479737755517317022953910466487937513040889441166132350716716588233743471744215638055925221703803047954474749715427116437089821762268913021274988515919738047234686842430637093322300781139483983699786964866181609521477158252534687443765973792357178414329129560128382298879258248211313683028966216250171810078933050155577760383452057650360192233053979819119880191160242320179459520199025808424952747483334298774845160759456668558030829423774436250664399045978781322098288851441894809466871957896933280558331476377340480092145813933240435457430887589790802875799316478033208247380448131571192284912987327882873255728188098458406138738996231286813628145647114107503512722702655171421161584410793441501036416451532010007971444242761897749825334333316169710751202978439853196825191519803311168442832348714986489099558011250963024847860808844239195932550492384121397123244802225773960169029110973767061992819684411253867324959431324917787748116333787625277102138176653909764132301902446555060610245316437344790956646913496458580641455793506983630002976795246353817923143355721434022739129632876515387917798136773481297005987837447184982269698575664451352146825452171101172544881585878697846098372048804147884142084030593821427494849822353980188508695929476631839801743926082033065937650639443433927023646055758191222138525654530762509987420471161844703490273886290161313653625962351165665412489190089145277363075970018891806335859762480560665651445351904236424983712518077494384577433860976419593368799597481025897358884274412427310556152367374328116585765455183104515179299627955872624468032303235809876983878164274304347939136919155339051251958014997773212523146665850905879934614778622990929744128320252033913113255719105217522775666954395153005511177780863626433765268453351973232922756126195016134125316774681484616845088323912905619240769814003802523593544967371006670681565877342754594500290256977224065868308908159467485033016130841106781488341634423450244422043007570104597537569254709632034809136788038968025207139744031929361831342192688917037935891221037258410160802613170211147692176508993736911059880188896427160835456723477723055906792026690542721132985010269613670251647688892589217142376055363818881412096780388090091416168761150441124380072509636932348781549125404199897188120985049495782309926351040277893423164455127076092168450157754279349235940069849856905143105307885816980214295080007121731216347620336188626394751488128788270122544876811081380626900053396652721706753145482643262895279297697590612991210656900488223283526652885455695420082908270030908475322250195886087717776495025729589002571583103048446448407332096223780783220653208078859982264561169460824710437109758988371167763171825935815999207295020514600055150386894219149043948609810411295650025081317481284635344676053243199375005193785629530993971617729452777224522016803784092702783643686181457938961663889174935271355159576457488111754422993352923402872604031405572102750736881356906064695309951795768765952469154021020630020870977584965235746604530560157445015112766944333902711823307559559139693201007743414307656201964224534830287869473509469005349979136060754631301885550733940198634462462484037180425960874024934452587416201057380989704601248313271844080879605848389111240736495772301241769040050675468805359289088323947349305815650470702457946198280380447016590471522731542927091884338521712226493178107227519638809823767803525617108032483896970974263058234642156015866222233645519282210210913317816190331045704407591679533941726637418991134918840097579065969699248946566900013137355036946340389516328954340731678679171052173553082928819034878237541861661950405543376886633402215640684529762376332341804697833678924385695726710834020169839922311228942835973667880855329898021531026525009660367729583764399606146983973817701315719254966492862307028404582152326816608582509172596108044061086690274937858795223192304921840425306078951687036925054719405193161975827270726890988401695646270828175559575947384497295270207220587148214209652584571966613501567200067755885107363996135476647262285151354061782301696796780515651881789659457987740700437004057946815193776625026954018041881296993744587648741347326301422513695175395843403750993730622890484312135658864184353828873748219849680658185611121749343545658255161887193927038459513109169859880875301502431281123691923411396119074588975209371030247622114967933290744278875217904781818974941648073744102215275090697530327283753177395658558426122605744376463881697237484547457872749341248735165543128980374785486945800212866072658887623177944271656902153970650995380169410505505583196529449764131586388994238854925824784944117194562387639736369077212088843587120842489994234126032930463008070955884399273490812343406163955370543494524578485733428482592299607892430086792399042002535640629043881366984035265670211549343867914772971527941079663837047520180168384217603629684684143388342545360340516212958478673602470984913034074735212894361766608549172664284338399309634811388168105847434505584063515536083750036508370890688785357494851467569568023491449579030422300424471735769598886201304297184045580468464703649849801298145502447947950779256838138708938211906386527827595396873629174355865894023048444284710718146029362065401488010924340433072089259045862445576689405232796402643910312091588692675546965803680808366430093997086862898608917684084857155819192808772213911182519968518221517886249713108208454369710542770189076466977737944081736458783378182721082659764556625104505034890149048798366644652680190551303341194040738761282597996416822484253553818545187115347347213322635477006361796923901002380518594017873781746032060441607507788750157925639063214581515132606802228559824474740459077811687796114929603862504728413556711824446676212632644378737533499609992234764629650698184184131148081025229365291600297997808046623196438985275948953836174086807329281965048064382608845801849742266078571989037047092073790469569143046865078893971401446109133608746475971665801317510351827328482045826332764665184196026152754310205958717938376375750841165111418617716153237596795106171580878940477062068276317451277990662040051522114481827225359848863343888074768373163884895625399081825002486627658266464875697829183840709686350095044336715437051243772138707108699709181105352236652225262454708495628420242349781539177221084476338232102581161331199006568707060094490363507538504451393101611597601469471017124182161483957264419996130657191068224975875537897010227164865022210921044032318934277659438263688409572064642845354205654643790745151999703402915678503485951871134363974148139882653884175932295329252514488272900218215390120736189989336237525793562657543949636441268603379356528693222689370184404871817620142364580826474122443454419691235801039127646235306686935227013672982445928673716350411443924824291797799849604619490170976856898776973091932874327192425729275206332983322457751330540075235464607316881817563912868675127966640458715980239400307514705020705265117975051169274211787181471294866892282436830428845791932507821279490408184040730806290339422794900453491169148565985933097282356178252303090262461226938325324200257932253613569536251010666414554351851776069289380045351772143663465329494513534854332293419540081937165534850621336011808959655597083721500024321179357771201144320920045182777464881533857267558374222608021013463143447214504231772860340819145513740242346612598670198268507089849707948573998133822089401038893353282300757589316238985005621609299590743564527140970959576185006019483448014738329091244325143429894573671916607642072715729315874440213054740313178596346937559521196833030079257557622066617442764777630612458849681404000647766529765117635709832661204282724446862360232423383335453949838201834920023116703485945896004746764022324221266134096287665020182814735345835450502883721312593391191646202114717952458100184919489843301642420322845047566407560831310885742265853918416288773171987936957389309707242955362671359539279383083409762767617966413500051273826604477928887836190311151867757545914395990485524477523442187790200135021282341300864110304192651671646123177528663214895153229929197796500052249336821517707161662824803885861117684720125309497867230527214268681840856629475335540245150668742242637300380522560620796732320745854318499244382984834011750121939231234422302926711720246788833465882562548093398317052655407225495808481630650627591860934024101760282868863273932349812652194011030438782320171997889931147817730356797210391503971899295735051718318045087550206513895553923375038857097527299716368326139283078826390382588325962525443411622290693905029728610859926458676865991915117183993504688453945531458960733438283043704181833871685137887528096612051625006592846912823329321704965933446498613130316099519430036217540193214840767872925327568225434602318035104916228257898120543630848612036482282813702596334752466873479563657195585185355622979316610911841918713453471234233687958636292123006554209983515359286773577658138203961660671049902735943202392081536126122587898126297106311238291847482329139858296911432652888138922857670342078159300253563052674874369539022119175904642235591708789997554015565622921882067760718387473442058395435305968707905500227521240268617219814402299528504991316871492383580706595665518609583779533059909976382414521589995236189684488295147630240654945261360086863877398922638250306496445913789646527663984297518449212750528593101354995177644825301337216584023395838987273134780070336327090739865760334143599147254987771122261106399766992022454093595293782675827171107529634657098475666936274381699237921974573182806438866811929114200536254901076876845286069715917854947189855494382783827024646654644502379219044704388673907841548414002335866061127285174724528734576845127891325624514960491746636290882603138785329083758554943959940057283416844722692618366304048869881663382658411298628698514913356047516396677780338015299466529832752729083300877720464960186169649262672907060184288501238552764745959200665614915707162580962511372106360249126308008239492470690735975213905388529178062172404270682755656214620021679009614072583596460899618640349744569604129419232486754686699642541764123177149029293045231263251058654438675560760296902778829247028236760331231974571129398702915603692917893222564711255356025265005811224432233434852980733023454554565416966523255699426898902894686637191956953479281499934369185721750763850633844667974256506290436672847831934629978182649133330113738282106628133354366195508853142824464099020340685904681149626764569716270570623957795267738747325580073779616912517186103819237071950649912046034671871359266629991705562342400832903160699259190899707686724395688636486503167103880370380644366680537108179546435772940538528563661244964689768969503134659938503509295415782559609620490190968223728867161133036753330028235616706786852731942657352699254782067310582198345821366837281461311098861315017974215908401427297327105272700531607915152183316424521334037110993196183613973251775196612309841485510245047120175453921915470400848053322325601917989208356869867283879132468377760921612987643461726940170640878847997702129984715598088512089197903230665481094935556478500554832197915023530905568690675220970741219366786096915592346731249513316088940786254340528874984358025567013722253002185502386625565494488841077168951428506015592514861976253319324552983511253004061371631728069272603490580377885891644928433155575237966812952793287942468318597318863597363157203511997554909333022935966724393669029823872956855425851517179667887414865651365431827839780508310853541317467679008273806054911214857068214158039486618331085124148951341097132660129809981617225306043823282889091468819674884378389552225577136482609283813046485285930639030795906351933273545711866946625172339158961345260469890133362389681440654879642591185663112131761646421166981507379400135320650943029306557374027146749329364211450731470328106318356047294392732731503887021282140744832125218407365306299365378023030988238940526621816626115550534650549517732186288487635571618709457925854698803537328997027285682623761938833300636259577743840545501979990848815111996040265269811304863187042527767755726021597320634238908159207394501427569843048573457153042023887906900352594904213637656525319279145631655458349655263439871297129838334515072979556812977016991296829375557506997988935973027368028133237661280402192805631807791466147590595940629269889575307752952616150180769892025213178381457912325730077174951145982706381410701265536919095848494566920836271529500519958238930466192045507910858077497332821187369937395119887242484925879846721792258949430076544651929200128396406253810421744718191899630173556031110999764700299299150526841828256477138612188824840697843053440264151711252530776492664461764246084682248986411696375614440062197545167188833448440286508797120385461414599018380310361533900150215685482106212945293218547410372849419731366892119061730084221091899110548700159633168097455828481136823245890123850075808022488651625086034593051146343263390391251661481291953867768584701777611006213776928943970396345481323417490789060950137985158462131596812303719676429867333631663803598971645603198949406799878045096279782824975609766694916305931332371143998147323983799463763087345536188784817784769944813365186243653292910363324225542396581388792714668667260147337325070891917914581682472817577529948691691180597500749632746218510379020300247296729704271185532358001745722847338976687288186949743062899454635321644092656724368944654069464528188628845421476421983523262632556224688230737050699165168183360550421301038556688081872681648404924381683587891054052677364773280791143492433533217216335169227692715176400238051176408641780097915008983144985357803647822342575726111973811952129687047851102790765186900367674725573446531659222928162496092796075842808770078824346748045804659017241993657843106748836876591891443087455947919048477105688973297685884746629311790799695720027542670246281250792277814894803821026622634118975888228110953301371867604044569324946026813588988934081702259000708860758287833169759643464311273956036521820415721733778651065621790355967028354995033357084837830022603304626235959455107488012686239517739014136733972576376157237143344951182657789064180339270277388412921812495257131491184121577731832772300021970965818385248169687091075024638479526178706897590141319831302284957391912761180452667968817397041823824115625191672726924738284915748897088124322376270981868208138315701966437201830463080950781527755450578872305322533487626984110209667256584673650224433577870728327961084201414476992616921755839108537648896242002498898256221427476792891123387874405732482353381946677120111991656671169592614643391685174627950770362700411956197879226975281975434531884713088716987441291033802993623417069625412445240993457959292976453968752750915135093165080946357985009788835787531372228352553440155599140776768298029698929831974463275024320127718081108952548162534612338649726567676033475299615005634407196296208035651385855596814490615232936703493254344617463869429966583020908196776635854521798132642017286472997944462344400750077089980563289228736234546566870614148566442995305698183499921615407047137284898414846367615126884394561906386492270068812438945225067220909209545186030266961093633134773136953307180902766293464613568785086255388072209862638225889388604215949537431415555932028000038255437807559192117284409837579951280657485416311356337107257705138098080011210563335097834243645504166377298400510440843419325782492204235296836049381694145637188270340477422736531351041675886510017764388256736357950023417731805062761283035035683844669692986280259793885523782229704341079764508431327238812753504253380257502137731875567570600315900612313102634872038270875002310596746149764123490158884829893048817441588532829522619026776567482376457320509289765971508017268711360988577104735695866482763546903934306000053602740866356847110453560449997345155593077841785851861597892902217279352677272207615957701600395197739229169936179756890079105389782358134834889469641034655126220778284247443203786568094835218204743643909956836319297186077834987847259938942061515765577604537602335042374732314355669382615518883722730321679652962569841594786501193494632068823690318686253198132328413942038131422355794296376548723379078937599613076090344318223641862770716303880650607088199700334613796442491650576756753799137309448401151529502599077306104771923886858281112260328280244427838875042452256489099727194494114093751118841317761625431214180327003223191963598620329191964778906323639620356074405752042815456255385842269798505632225424914005033483678749380955347762806846299112845662783783741066721478442480522396312854001433608537753738915017307539382151790785249866208146475301706174201891043365107600940747292471502344078767237941967529575088902858485683793287638181359451877990691993966939869017933807122470213647840527480908486829194349171902994919030440294969602714599681108212338212576468547255799063254045487556824138136546403289895201129723342948205237729541409542065952097046410882124897810186817539599708149607596025922895869845664745890348561909554324914017074239824902697561102696501858467381021176546168717854732932277094619927635684441179307364611233787826362421100615219758074836354185552896752880907256914527838061412885033256227527577846735016248533683848833316445355759579937654025550071015955150728193313824078626459198650048530690273907844096276432957213504466880727762192485162557340664481048358806804360857756262886157238368258227973051674119293111595857209770596401608014060408771232221316734122920128368944436787478176128670915111822011568114937689054350749871605794764308354590384105477336121687264903091884702690537566552207664170959339932709626979554715762606656195070368147643501354908782774740439344289811467886712006226134191256481038345830101734276343195414478002113588797158327818149148858571096003519221584805193095016276540690951924606987033549370081355020491218958488774543241672669476564946436153774688863232664067719139926953911405699905266430052938350633393163047512767366995237766151079957424449244492479054735931889380372971843225385104960282699897014422809978175306263024846400467586874023551356003881434636766592143868654573715298787971861425835596066235181049837943139590380846600666670450403916371044718704479320350417559159059901053618513307195880216629845745837933654409009860747807813181259421038504575107911986342150751732567599439093894773398673097389394423644695937083639837312253520084412750665852900843154602176610411762209417658193002234915245254469204483336888257494914429305588435063186761330166481524632044129317415162449831899670592374863747432416158130005910648718629171144258012889865044848527834718394180741959158146731509370485888752506336784555805650180497683073588583138275419546341330468876748168352836648492792220657341160155241867611479601621227671988743192578152221396434856940267972113300899232184569706715880331093999681059235909841407432532907303133038187125215863641585783096401465757763073256126006469057684985620759537641613398370627701152746258646340738217986377639085114856206829743224049997653017247385764905812264717900553121407914283798421240081055522048316003708609607557557840562632506698581424487811904183072739990930960840666429939206238346930753928755444107325421280636693457577047032571118075880123404099380967609165497843337435188032282947449473317330805884919333469208702002249794034444782353165598917670529489071405688226912695316002351135138857311851243492884728477862215564279033136266598030351844300044336932467710113709348617570229516275671832293252961538007823050863902058264133646219769899959389051873566531306993526994232506996343578371577339589884066505486271645935195558449514658839753972161636083008334123523779370558389480257451347984549054254381913762669665377733709075630641255483803625052362396941793870733548133547681731021393956680735700036038725149530429587974312095930062310064963764977517973893785644559774524503122428924907202632867534075868798037973102961980039714342819344666179332561058615573491699013735554024650611208839698254042958489849167186885825645046921800587723433560283223141821295296046140761370000821528706894688606086857549050279348113986201110409710255196416081736188090803119021259071857574363719863022801434394118075071958617722709865171275753215278929701096972699188451392234253221287001984827830547038049520364229968994149050952862270384397467688312232026787084521408414652168837457778616490197212128689770264069205423241529718466467949283188561015079642315290988444079370146129362578838012927716228672190000810770622860859232168197459908157303802329053462411766939654981206585412377809959189358176134538424730587190519521493995243925462283807757316894684813672657683493072299024076083656874846144358049869899612893271554569863206257576683089880749031950056086399544078893818713814034717476091891845024468987844201224892515847091693774759977568511123253385934956068463674986038178730889722534355563028329112046956506341570921184803835083032723922672324915487080292055364741516346569579009065663330020156748275353347130604705135412175620822740040602500476885007907673823006597911832931912286342683875542739963723649685079668636825228660830487112423494166728213364654165556554657727519480885527741651017226502231748033494047325977051791958487556282737920140874054023367464307101417267113055564129291269417099874889526568220478183534365620340485273221804915852213221452297196198498720104155937333583573737519137275241340214129055055821981728862287302671793593024398732689596964371792132381900706042880101633335147853429237521091691851190272132954665983077085325089919245025372745217884606820856925631711938263638875665009978692368498156908145844532179859805963634525939850921251221115003368267197436902875954687188502143598920907203103857206531552878089524075455730940948372602825929347914421164968011648244215355495716240883317273061128858181399785677504774863018786097373822469314974335418631567809682049071163011541651170519750511364746861377294094801308905633734219161587379310087232070129712164015583317114414221114513307614459070049972118767870962787345346346044471028585455185391479870938462777998813533191702206500766244078096807960448008523246481980215559916446394339316494183161236496962483283193200618291976202841416826446825650868353338446601849652927490842718959568217879810219076456418324992733006275043616828040452579031774474591346297042529758157831130321655660724255197403366032276687144644835338137635230634081336762333744495322945260916816400893761763151852930558431163232444237491877568542416335629534189856524736117303045619661832415164674234232424370270837248268011203097180239157526905658181841874609197716099937263619313727214304996418180060905406784839684973681823475182759708637724703564613269375700222433558659018344559866708434130753687449053899546740345592606458024874955998628575958900611205691830307951196902449728818651641850334379931170565444009548120550786912241140196996363012791524946437048634761315984298818995757103062296336736136094212061230881415366738537726132663469866380320947903463832526751658437542831834726649813518868487273181698706379305308188243718303584368088912095293201615988167954562884442067938675025007448711089757045353663345609610461634283944568245038449520844568983386488713820948187920158233536321737590021046947500774206996125642566671273692800099559884906680939145927503314283797074417202169867531694046538501780551139841559561851921105588590018361721040847841424677166014401753363708083417492939187256655182888392232696679937953522047417880544757443204263142145345497322722193021091727693022563942668001296798329088555281554898442405370861170394647333893169328602104481543196863077339090806108989978091630533800306710707910613345102929760329250304940409472870053168186255484636553278102824808157340132282912907756442471293338942360604736263154797950692549023499531342885226555581656075767630383223687559113058117709503734106810841351410160974152677390881736443883478327227036117302173821794517875120601511811653104722246806895185433752000819915986797366406121938805566583298622122296610456764726760094626544554910485324248557673724287509170882387745465377496611677743317710323433273120857893504590278766398464667536783149965030459838041720511160946456809616543300143498503402415440778577332140962046665312223463938541143054754020071120437725753842217047109004565064543947464324778459106668368976173991526628482172657768360492787759883062747801147728889728591154305934906958521516127635746679364182922554251260186231621626977577132178134899884271492915680501722956636435201881843224383488912578659540158203747734158385136208499220899452847148306722149238577858012840184347441554430752438833396859193858372703018899266175367648348275707525177405207146504637419587692882275689831374610115545364109376210953527652385119967857578582808346963543591396022828567319223788708505354445747995373663920562381365851812925630581512542445414234531599820583885401659277603954073806750756879498201189017187724049970879024836209198941870743788120280517700947784142020594689882653574907701268663080573282202948584829846691701581111678789060818796503991532993215162712896574357995938423809947419921341536984399074396442754780751065089033888746591901000298790438764286127505220391779560444308207940330064644748999214559040521806726343140011885359596070908773966001170519952668762847918569014889137585554570260601805737880084632187619950421898241017147415698312284008152627079861828526739233461752474693005677713935344394081818076814166589288927954996259356512092848638814454512451631843646778186590130171208090440549173557313323615037856156958954769625325501693593574452106268395012732383366842821854329827340143830028632933159402336127833410742829973397330943327081849769010413581062041217116470753896156338078769509001760399091603161162328812738252668149637768399778948170204606428638977301464549212524534217910232386991991924096008743975327643689206561625346161316984420288819667680058335815064955185230536702246887989523064588858676392979958189171008000518133242693600378681518774354396733009898782950423828828510011822964869263671598764043385384631809515796804552933283971014383110020459770545909084535713287126461079186171068761418024662791852874794301857599568507012552972675057193107019899012882594014322319723176824272190160268936330498239614354735671608608360563203254820869634222330445547746800338681836463778990276768792893626988478275416192492740103346014623072110480727765181700352607296175317211521325480482221121735915818376325330028402142905305583571803449674972949296910438377129093301926406819175111134292136216955013002273738821381415585667983965292632287490751383859670417370593303736325039609563780975275899549585991064414189184488546538898355520248635379730631715157197000985912686702564015466758978566764569447979836303746298012944728637972265468082698274410647985052451603974600298155747261696658927176976631272805948378387090504526267408401734821080267478931746008299153508525120312985358537981575705040913115172010851378903575374191605874643231032546328333752309341323084736635443098596606094503926340259468774624235033164978894825229627098342932119306068011306827907682426831101902489624290700412492221614220259954823874667009536421635081818616259238285510463306765190993210072707183675831409633993469217619953460674012168751664159819438575009126316045510712759121734004765074855859098999299834249919821140600652467191665824955558846570214596386594679929830521268841907731950335585934875768162275867642118771214361281218976320823926202270710485029793625428564866402750764286757729251144344486336834611887167600182420045445801057224225900635056072374261732503941697952095092992017974642114859823296594747477344396276332602034891615354008427816787248629029215588448898744318726266398862244694704927396706033133484243689095708434851850846482500618328803871163817263255852864653801576349326137839011619697003280971832921687312436039024441058072196732636813094238594416634924869312219904717021462356039038703224923318196294685950713707518586879768028710400309642601417922864151351030264070080307600532091559979795615215662968265633083454135283806826892357361235752513426040051788825338587894143308063901783641581565005826940057630079776021731272336151531869158065681997429429039863514271605136284872243884908429148094428456357114148037485145686845380837408802721598088580602605909491975108744646480944908100063963234308093073930200456261261561891737766916152117237936117211026502456122198154123122544096925136978671706898269727794024663396715987924188810541388240147389919459666779572949428735580984759766286761296768156287851570477865155515570309970822534281757835801602331350914354210481371940107521717821414671169096762016468090568982440564063504590827879066946855949996711302176064587137847255097403955668799274327727412022568696522966183324139077926785987936552717185428048770688325296651382041956515162342699435937750829043665717691971696256772677481502918473676471981235543527031886923164224885706744682374472909817800852361705534933368230986494839547000746620836912897676836368744671894100759749126177576504393832986485504354420213025775183905483120075746450177112041646033765756600824704041121995815752243287156061752299492540601304018575565632606452552454552824799799364144128213476336695446439183283700432554825508519588094604443587381689946689494819481099084101792264054254245112654352144766672998689986848454010097265290648464369971988772911334074110349277983299693327578614529026715681212779429839090479631877677593668218461595816681030860592637127487743695818340006355003616857683475848307278462945691737488868817750327383999074435517427709131154115070657930736987580595448775795415903006186100231611226327225935523015997968702699927963531335315129220842007481881191749067300330841349262229497362692834560496865391641602711264302963351433520475147722199526954993883472463141286792450330009391150540714986922374693965441933834534992082557680518576443670520439995617642868025684707738783678061404193555286937434866716701021564593340244611765981984143554894043873332106424222498479582327320223877947374845571058834826228977564958176912833962735707024092870039838212085003255904135051141481946965152669398347389585935617675996449502341331178821440878403463048595789168808910816134956850056193140397727023040367502356270793408173988990097464553335796561342096227040231738819607756717775481645304439068538084730522795086266126032847153702028206888508667500796497948195493972956475341379180350650264980817834449221805330949938293584058554645141521124329753599995972599559203729835038953715555328668299514275166272659966076831347328676743507142657760721515963546305960334072284620134582254168264746820059800010737439964380177160451082354318070821532196809807718531433540236199941269746831082797470637252499210484517844135427689009422438186150574487282497379103638499695278919188726195352466286311410443604803067341465134908231872349253512065645967979389734682790910191103430745125423569448096324704614568053438675312619745081214524508291494598863451376919814947410791897289656103780028011874982266098480831649082705352979866919867131952826773243173142834312817952279759013091004702646322314139377806937495740636471483140525393243585747761630227394315585738534865771404293023484202513359190821405769434301733327104107522201776337199880195109209546326668302434377365222994910752602249294766841260604471671715602190432246661155568366316197806746070002797525998630061065464627032645189556236358434639481097826622698213443502221861923429771598089969808566107171844202035733361289524366652915064089930310363007067607976222831150700855708604097841596891034780089511841842536423852764345229584318362722235567693419805748703123462168250120161039323914742129171379987198513006390222456612778906802255743032644443151264047465578794993102310847780101698408453379155532119869397817531387581932115846259919327680426428135989286324808780123008051243467597572542508759589496891770233867278534625347210927310801758689044062135075849289932094930390998707325273071451844109293805860754134615741595519671950947770846307946540586569523008849447594514304772680840492417570906089911994568697690355452962479932583837173490418067937168090850335721330806861005607567733298610936133185011665406845756930629837870886094166127483789035223582708949378805642553702962832261920259410711844949836379631831479839756616890644913078326346254061915633327448734729997090119418871119205785540967303573187571077380545427153847305732998713233647674311741358870893452485329676626672777785173125884889434222905787456068940950130585355089244217881828426045131152336994333360516002514511437259102483018241148595393305926212923076776497593985244060553804459832519272130876316109847203579160535008594999624664857005395231840127673321571150995391681470199070969823505507855127430084593977726797649614269701930617689146555286540511745101527530241508134718024390812670465797702963599104612674511149867427645383657618505696115173048436940924756925526723904475662013789048870452403649240489509347936568740736197985749105597702001228079874018078913617218037154849851105737643541092226094273285868305291957448598175180738693449574311967417784551510638217438596563883834982022277959652643538171886830982772933954217671814463294750142259824470105415951041789510789904720515722951940867355522794045370655935265940392392079684836455518854119533743750458738410126223133002622310497337808495352326515804767667420307635920257904139634484631548232087085909121791968181874902330092925498085510546711440266717134147324616937840993080764670086889251910989666276440938188903031210463569541970205300579873388767516917931478122395556244672331851361705964434240608201361539837135354172484256017277771220058422733060158469381308365020662715406901901451486832387761680805264599868697518647857473244880247705528519939241209923946372738923374725494467007652010957694890882322868886664151550471562311295316786002936284307475679630429597110150377623638311409552269613788945209375303901947538155435767347130837878707644218589427987117289540127577112924274103817225302052756136978439075088716890518093619217775167837525422014425819072575303520976124597328352931383705904938605496483631925580588045280021319620334263341456367824895064156812625158080520354675258557243204021744081722470419521306726269056762153310308013630035112301960531051318195900386724013245123040047833449695453566319927449953822298959566223093942997319951541320825402192905384758794490357656385546889866198097082378427282653440267115518701928055980246146404262850980606873459672031811603751931143661516431598933348909394088786532203456589726088044443848436712609274134968751308329992978789014506161080990578271634312626551903748787690970447147208933349755355804987344393525729393639919798102359290707071526682161086461947137521427822266057893434568716955607241707787510154496522964222219853207116812897430753634609248012516342189166878412907824217715608889536217040285257168293515379065660725647788810328640038476988945555957873622818829006513661983613355280934372069766669637717208370949922231358573914653580144537364671035694495716335568678094578728783285765965411176844078426118402159030311768458711243538209263502614759089340127920851584326673948457056696159970246416215897888632433542161029296380931373579220260318257864122060658267288516066015496650444281209260919130993216339090425145759299473683866804880699549652749209895163916668288505142230851782414140692212485399733077238093414927036894166571279936173830610632747123480632946631703790848104621548782731975387084886931491103229643399853366208034347627532520626012645006102319624095053672516829032167054361167540072197356084835202919779511189561404949132916159823096177315333899610934081927166739100238431133141290256146039241324409606467629733101397937144424672277242187082984799682733183413576459910190672544618320891193993442848884162178350469247090167399084986046435118290099723405211323641639307994150359168259593008504749918156147844010500339473043338288459970194358030852864315396709467486408498959385485929965406923397041996471224150170039658027318464268628184879493546580827090066432338428327639978888344582075553630712314612393483231673506744782631210898632622934415855557979063658454469736679059409044661066837929659684853115969942550344102844069050707926343844332833125516940499084602962164121880868706779750925455611420011328935235264711051180521934317808244284224338440477000174371920368444623115408276744136847728429312876881380451243798240355513149809231086671483455726753602840125861661506806157784912473615857323897183993727719531574974060985560618153275885865958537999145592765925164710186427191384447844497236988858604493689576783205934279489328578532272960413192131557450657270672148947928096060387953325333317896464623433437789917655573501698977595483593357463905604661008567211483712841655991155736238915846352582763658781862296222088712950189064580613669269236306887962773511959709194376256317101858764394165725382439140439197262384073638224966577697702650463588740157038883650714321287864296346180087272319423619334284107075690425557165029470432285739061544424803622409547603246240887117230140571069159738821847852272457055443619194802165699953202476405131256078666823440398008811674018959695929741595166724891506158068575630361107387518026576983330653512734239139284289782699775964113898819172970099721059994651465987326054381466399709248173904405227051300900442427825252861520890122473400831174402327598773853683951493292206351091968359201950065195770855009863156100404020590199575000288260692744232091995814631806466015438155320911871079656707432960365157387161062708962228792603393559007489316210863247080183605774079019817221066468940098431708288797599650317333863869217032773923715974918955044409516980888917772107238666325610976230465542896267217840055680626216921428808000488107149138614210657187559594516226469182847527438898594277877432686657228290142073622668432643897889093036924325776277997963677738119998070138609577691477104889092803532062154255637104385776223345565463379020754563561451959690744891559686673644889097447801535248366352201281692821507798288923641819855562389183985697299940374895335025094278754442918137149953357650557248513023748492577066622259978509384193598199283327756424749899669413608658514843616213143372283448042191744541464827397649418351620927306453299798237644021922636981971373677621339211835893034285808391233327061208766142145427884884369421523040524037839115773160622423832304665919343063281351631180521434627408912350068851762664299943158995734311038843401681425490483026254660368051932852739789300658395330995879056285267197770464826637947570804965172814940440352187739847230612561571844904407298155969135299929114322103650351687953944992298597529980140121699787913522555819783381263207601252737900460103687794855457477280673150658520718039229284060050783787964225640228340174882191258616622985190301202363968129732318272193085370126231330104322937943470124100184662138218667291123931777601432813708865412528573385758737287661298707758877788537725806405569187518914367822441152128938866505567386521198982797632949593339777431595608086537823888314431025386899580238798457553734792882921340786563118464040697607700515884902753398922269826141275303500880783146150452469043690189497227315602156761199559910560807794146080224700900386247524613180933746129678634891464483236306243032432989620351447392403423723787034276236835165146752828548565198301469057085168810921432522081959305491943046593324573480732759132350160073819971306702347893936185910343259958635290068992836397680060838890058852592230334915899257309353720535897661273082248041394008211863267997753345590570259520269270104925281044695441377697070140961631465860982655742269270506677448953080261542275854415920746196690951834823425722773148428543728306573601752394892786224589202438280706086454914424874443519580515156751702526485879539680590018441675448558334902823807468960300568014223296982711776843267575509812234950642971998061194563638990475439961931869585817502252821839491542579238114368397061492121810975253344966627414189282312030504711693701372755643727154678235908649513011761956432731994415865175021152255715384343620294583527357705253518796294617036260672001919253841275527853394935392493094460072325291671813039701999521130869876279385964773105273198902112768934462899113606577174973476265920206458346293622428609706220452336139488326366840982610522260833982309493517714143340831290354220093617416211784611036100011861953158192192168695493729042312216137317818873183008262657336776557631691438474168301037522231326458348631328698710232328286754617302341588940368182364991928681683891386036958168436470153640157647227833563237576067497359736729156704924798440735020001386609946548455640569358657839266173859529006936736617112910756658754490266259267264603586393865290534224838043381716093070769082396318359925650516050812830363960934175465759776471508717002999995979456735412355395968019626165029192081829495246578198219078427022288221910221059849614325412908061772991894194241973593385823214816060254502063687424076009330648530904957347027679882488460379220660102036598668591650942324372197683284587085155102634481820150940840192710653502779602031050235907921494849660755319740624708192059808715823257036751677721748015627797284972359587235798663916649284830495204068780273514971352836326109717254999361276621794160037800718300656146114949935148626485755172026668341980938469468895764375341400281308501477454986106532766026813191498469247102998904870965957720072978473650561616307296063302031058090649053120470249063048752775720902907753253593956086179667770218906510666052622320692707220772898916591711850582878845192257959309300421849995715480605840720235064503953792584243491422085381888391904298394226135199122478454785970158857555706006210684968313080959936039980095720764653807872920028119234430815688772974813179978623146101344008817569183058694009704664059283163436385135747545992334235852039851506122497526343609379714717937995502016475176787147661254449648625021189799320697413834080137479787228752017689162077273977870821163328838125185074820358883225984824996271329237749216191239250892382015310915591503893082326648808771673420818591961605346705645945282879422582491519154624644792939565144734229665483419217666013222734257442500770823760830762579666474445769809605702485289096026263246462131693517186577095680723389547771548822127599287206893000832909467053419887028610676925798112605925515490888522693086076187125948291420942519323056070390608397802825839210672213566139715047695269986833336012024178326048308474678895111752279710661904205423264708322409821468832318812915035830977861136064492272838014269452676922989626284422667651461112081057771883390274364163769615817640779391442152535765199096808161542505971634909894089182926407077180400160801421627045023811317030058096572004199175291787926390209142610100808539619566834145329999762251256727552683794425704538065942965415687003159766085742394241906190246714140384417171193118468533696485466318411313136115427169575977837323348551960033037131551956111441964618183152091124133929288054037074185133656929869501757307520109533680967687893146118515012987563965784502526724767991012772977317010697319346593799615786345999421786345713869575787652149425966903682292118893701999986981891055384500652886924968302724296075365745369811410858051559166750297801209268150090693477630134456368687850775496916051753559744454467143721554595925112230378131247068911179608430170993637837061158532226906226567123849460967992667148219564565753864078270744844218296016304218830900444487863684689392678502670307640278330056596083702346089560079753142439396067694674220147017029352462140017548911458941168202185566069368537159472902313627251628931830185854430377600353778457089302114581430931421807119270382685411247544834475038418449359234559607644047375459402700389310093055583680130278768630025256712762967277830294904857600166926438467048225542546327232108886599806749684699672994598251232738733622548755745821678887953836918451450748536066609356077841384223797845575670302317258284130701200654787583808810754932567674206751348868989077423439961955877625235261185565927020248059297668294891563334746282893174416679507756227446241455209225681441851469339343542124357536193628505481001542480896648352715661683601630709778281856583949079287527760740901741728493785148936953076139384189415706914777739813800183905690666741805146665958958637628772465266950328646497214539399221706156055752034394618852373464412802602772178568065461365755185874733279369139492843544145840785412928703492165153975329740199129957919071937090453984138269675545959226700738627377988824274635268134624231083606479310436468062124246996671845290995306903688191187784333631294600817940394961856410595024342827171109277223299816012596107837977648672051642656556523203888272710876395711525099784106814154068233320945551500297267947309803008117602561191591972040339688180209667612609344549542550238478820771753277108712441776653857802207912277386291602409710641652896262628969134933587964311480735229622877892479713879321724100432216296981268298223717405722070831780926844171711604320531670939546640746721180770466270771540816345118935025612548914395691815345345896852312567027926634941922905923617594655499748366145734742310312568671003999799837688001279340230661604891055942751777780405481061248388996879766211481297866832603414570782889449488075710073107067222289335157066068566457132559117322333422658310865956165180690070877382791176190085156870458402786622065317064495176831417492992284453833421699603669832159943376299699887289767075608642901162555539281012122196089440939381538782270672371071712958152893267707049615558255341394017987450129301362739725552576271980089158342828582984897118556262879853492625625713782967891944469642073800917243841263014508730251081082273395055094844794672600187555603735000770109025699247831942324503693851636243131780958787444022538275971931878339215393983986346745933927844603470122201085347737429494170062292155947329004333902349938458098634823802197764512368744713402364092196217801696346279774261779146492206017124154388779970855020845333505682632231101435586623831889617131233186680548294354277334467493479758227041270091847242026402589576787378358809586149197748982114219245591567117142006235422507813918112051519979849321927998617569976642100241417609392070230219967921733440443671168432983892270605670980715366835185739779977907832605159493358772329016419631467079577268786888547098324688961654028350496749550146479057096811428018143441970852405417678587083818519265632225165918987063839148952874778589214749519329944913998835030251799088885865553966302946202395128078710375588965951003318521253622331596792401798047495461148253608740535145406272176980017451246530961278421777668315378247370271607567826690903972788341314575888317576767462182004966692042781044435837868667847015464722473785698420919141978948229645911191662774896021623406931000703328290114740875507600491670555239092848525265210623123032335558192787481883972332014906211800680495448693063333247198661693497630492960368562835932174314283804374155682426693455570270132551702362183707023009865279311517194651196806067841857354408522955859749120448924543685807703581414956217140375076892272563243244490971973200353193934751442365647927919036197044626106557154495628548645355699509485270814098862054878846878380985204193622062321921426073669778433469545866699365377947848223970516139849360261563764464272968687686096284099719292094975093476553108078085929635806608943489075203996524556806936859120888512345888922323586152316476334396945488107858857963058939820972325869175612898581859199097319330680513910392948304746224708428444540980243236281088501041749170321850479055582453219332962746788684032550113275996812912622276223689357134285586485057565405630238332847317643470337586346721933443652797702181360016229066225194428845195374735633215929897318942339556361848771818752858376198672137103945900846496441790909748969862618872104732352328272345071755978816573408904495261550083094334832948604317211489355597782291205466653872848349960508672387323099142428954592734618930916903171884896424150307043042115272836393552336145269933478944913188913382042333343348666204237091174398236707112480550019350247107329645277599828425946408488692391145765233746161519858304488876995786120930095555940590066972500378494931082331264075201816586678245362205750309522645551133085942796451706060523700274494032368644758385285530702245760858397891098617404137736915782951778190768052216313552891220114369317660725465405483616868225243462882481722766613162216751380994736231711911304366084953318726633872879780949434549015410875786471080917326611851159391579304650319057571821239488122105492337610309371868318839740882237699545758887697025230892684302555797284470317037219948765023865036357550991136987841872550077612034249779438050156119058677139949494441271662398550906196353841182519107989233488966023799063462002074271318155008753912911648872220236854206718631518837512360255974511657247688622711195112641682044806838253280851602439659749636285530180862429446809908703715317067886767484249943833173997459033814000998735827241622981693930104413408973329142486523797574351666872354923317219017484454609264532884709963959179349199720121772913685057953682788405455083922259526110213196500618816262527472196345645387642362449968435569631999924354151235247705927481809362431953917370635781066984874024382886395955710152623019733919198442909418941799650549166684981251366329143189545389455317300247448005278140418002907091492837391727094442847947381002000685739041401285685481001018020566542096549394232409425235299013585208459437031477632820700138728415296258039962571657852380167608445953050666800297759650801170805537821125345793965584996298423616909369270315975839857821798037308131925733281124214381377675787257981921932756097455492374356086630501401001637679551565767700688822753271660954192035147697873088651697388392839285837716104006241539774774520605530605669384858634051234093584082886094127846131971224100720367496747014303515071103503323765394094359588678749578888012824705026727689364896194514510484810895891652758039064093393462924673870816796122625088440358218756466511775352206250765295853251794304739938102156903469784751094760351774535818344800721234568590183442799964781649496788586251067801845023091952921472012380287360372115815630311757497488081604594519469835198527642812492192712240316985170717802071615059547189913120492268576635551061524080772507275244428088509533306326987732804979315678112374511962671559133512554040132880165681166773846904882879594817510163459385874375984560015933638077187469393844774939014704147334783403620709853992356716444840231127698306239209077901486779361263331429142877659043916946455070356011949332572534890062095672159965142790699984514018832698638688618256579507760152915188244485452528080263219040859016506622780130843881356465920015126971054732764848467490118941575326555535493670931854629506930033900590147742198071631151511546340822066301272065438323202265105853235683320880549870604802918582901016065567811017604587100088794080875548540243665399780692679043248888426950293854882148375802253526984257813917621664154329984686468867028255971416631955969372154059729692692114049872344561111100526256230497629576282270554686366321903303837861988123851375396050888133564757223867876031194942168129710624573556955090416891744414370795547956277036876527254166902429498081590701355294060875307482635136879119891913639638274211416098016646192398481820312966793479375867123143126408517172516201097974527930130872625083759568292466114690936601840933169541894050756533240666933722204836399177001356032717815880164463405642922568099748422771332282811106876322483307145851816254851714885683436142975453312103893085247260120807084846152867395137190913313852206151763713223590484516696005201082236931189690793427682536626971293933598425470225661212271833992512202697022078927544284766656492440179158245384419502384689194188998293828041329188602158517099604303676421513438595140014399015555389280891843911274341275800548806700298898333071810257840936600876757947860861560017584994212400234300343244938807566035765786660629482349245252141922416115608603487271228976956148614748615873806908798939127198179720413603509556968337435971859301974271106880797762014309855751123711186376633397200061121516040612787368704640086324893997198075889267139835428015349964685561922776509369278221350517914411895728051642294726483783471524027991768663574831400285400920161791406740989962539074372948366274495269890731855113370731748929079305815192567974270322126627839755576138493098716622930506758589490326327712536257684421981868976921705327293375781218931265884434365774711438432771660562803629936156556703636461205317313272539777139456927770275440209144326915675289622236868812275082658180200813947266297781316555027112021264516303420945243839989987589926272222544084424771040534675987803374053400473789854848213751678984121860518430195819275112130973390170146149642619759069146301236507951279401202166135893263013664250811570194623059617528743037869496795054799146149486666953398578787981676302508948877356012530360953853305183905063737748180168526607669932236187157913142708765715309364775645946548366928502106441170471737068186978126003426428648596523978439721238620467781357557960110785672218115178909369485954751074599373669116682253263771171362267039258233876801842441496800454446119927364802891305839195880141332329393890990571990999177988853221551881523910263811119147462573196663068501021918200700078577593384621890427770726918593385022185531891252555190503720332212679685815563601301172937999157689635122763482347403494774587728824410065275085307092530880752980378613364673757020178650723879375519992151293500956908423314631663599475189336904761884592350195144434065494768284748354754712091598534873796729553980517933098126628110846699663343697143699851635308595740661695546366068460676799182195596266140791954414051945741817447117343106762711401672168831843106397237046272095831067774528900842584544963008964852855773304858875441503779058332638291302585883682684708537126805970130855423644578994119596627912019815278132163324680020766233580614845389784584839780393591863580012069097227498426038620449251120728132636169900923254280584177098725229431483245843694747943404561071796563676822844269546351533737001909316508928535871316298647226031825477030159335519037744921905303164391283402782914133133971259289584172286227207206005465973033513052185118164357445435106354736906474313428889381073226745003038857149028849655988248688754287321440830140228537964341295703373331827825941528441291658265222121587988044880414148587291980716458059298610014223990337743774560235811837672677274199758789701356423513543483229567524765882328033366302816666829917823350641581273584619358343050650671196985208365846357157277961781602708804525940792847848731143280673761722737890773779221916172772908535278208460031290460903474893071722225728239573855578016930024878841224916810251988646872692913472214890464797626115711820712426529192806001096638445233946534795885927395974778685456907580385882669337112486973691638224092606541033339178372952716788762771361344025103186155360233748845512860781434275695043782991439870729643674379845724857454556352481038317120502217705519954966466499141190521610212091971005644713589117514890327763224687834903790656927325824857962921988750316093706668081244399647976726714014469696765406309254599510672785766692351240781363709801887295957630357857234736709423637929640632674581519789662844464012702648688297473142573458680268368706354232774884523793037316087522279157425576842524131279233063459241195035506380212259446256253798648995310500148263325228846119743298068900152320655651572994060287355360527886000171911419772379202806245075237107553925376082680075577902125428266065637269840848489253244062517157856778344900657743285536899529518376108996866618360528633237442075853838167546431053685386565815290847146677094601583847840927725608661565745170153567260030946959548396716233707655371192540662547287216739194368669637870999664258610613890491605721420817762048776508896341498093116412496072253424714913206866846650203219134425203186616916467822406284052933544839457383766096390674209413862311557640796071137377327157554453082070946669727738389286515651076993217801802316728003580064446787506424578209758450238281808232398493162271142526992742957947387974947276473008416938759770693223710098752111558467089380957247675113193367344476464093051842117222667229811061324188332697320092904008963696206570133245094657418137417622468485470739479760260219252474458848456683031933585337934572729439968798722249850990996993317855149214487016173133430254022232066678659052349513767201286250756920981695334611720923748711135039331363778025899073102503785514138083654874588114005274893065706585972568345843547345667589406391054506140737850694774761004740965229039046264468509816022563586401651005939373866309898559365316555078041802169319568068085429788172876635446249244538176038500963736735079779851835469971300594378480419227885476906002523547147479254316488267169286686893121049567107472235283503670951543743629250718435624322069034887202405277879850981005494315692551330234552341156091624057502320427536161722261609279938709390346707479260186634448521105198964251403453602803303760752248843429236036827844233136318917971554829542082374709179629523211948860903517903074668448765700705788896622841496615280045339597892758977259324612055089640444122448603176555812067459784875290518907764189365376610576323438666921502467869614574763797293228310796660163883556230722559730288289346324624553934843095979082715082318314853226622422824329646354651137702355112518628173744481384391837635993731450366008598813518970064553205991463945525271015745328955380018165716652295418492426013776613132564548356021361392698189252701149370090075917220154315540387942544068003183430539104195850320639449306333385534935725878568931940157706847346141342517920758134674773373461641585311843749272799663849371003418426975201368866767485972120577660126757056293963679605280957484938468694778810249094039145694412211684804489373144168630640755993724831124066795771666133338200052305390399444078408440335537837101824522866035264254626781147265905632923144202218470712224102634397920718500833846354964695419728453359666204568888564267285706643363390575507089675655763568987583073234566585864216713540010073620097288444465458426005381503055455186280273380165984796624543097675353292737831830502302008220278295917999995320832296002848420529275996416045992077959900821574615622710610692897445258613698211123417259290653193905806699938147324538132872665454880222502337068252839666010908623559678099246935503659887215555189676838654706840318399378891442610740877372439288788874261906231433996091870025762057371221732748696927515403989848450539804251146974433625979894941975595484366772363658334429548873480556632921265684795738085939192374488552463907001481988587629489776342446211716445320614114773958186494100602396784454710187526329074769580101223089145782153300390704133252093493120682406566525601908720723477040231413995243578028738135410485965523141920612931522208943654268727221138557989187166125439451214440226792215703682210377446384778450112303601542580417215759558497889343888709327993743859091014949344997688571384774688921454332157695720262376505633211031682043986244317060755587352863568557093250265751361647166189367050164980681174259574672351174844014085992519144519371764879290968961646404897136084476937431952106513055855614887897625830561998500574610808552240402719563992154538424459791529109474247613147389835234508947601550538008482904566264039697359670425813963905019896200751516599184944355109676458911693188869095530980983613168304289840579880428340879983683557417301510963676027158753235858962693437467224777811766678559977069698483684139631249781336873327085342878326279834657512478398242462568527881902714644075658764930464909476448924260313513334864397277072314048116562911462915604518001016267799806797868412356273611053786300448538829813897093612806086335823698188493151404699237849264629215772125346395699954889760687686248056870642924466545626185781136851670205391224166971843864688163658932817246201837674550032169870785775314852975638907717844070774875729523772065245041226555096911822522249862261610893996639804585563531558419951839385368525810413567550873071186008195792694356260694726041104267606319714846760169161663741498349990699763895728266789853134004527636095544780216272501459945407147653949993582039171554089230127015712795570488713297323939118862716664213136564554622454999356255804188881158903043246327549348403385230585985571105146993426294037727047022297364696835213689870197250965756342386361162130195276729782612662509327354053110985692313705210570913905227232037255165338375263919376966962832304631153143918381849497878505702134982551789568125015537564294669976367398108223504282889702053293420399327389379702937743866678859628823447282349241039897770910059739285490542014998073888160901587392214226015656306349089143805175337760286723321687125210396700081763961870964895785524670139205629958867981034865802931314468371463327974515836068598087470975614031500516497567146370997120284182713949370424963905422280921540391239967345041008308607459952735284017372007380375264585462605620147340524585166558343158892009619640375299932447158030030140314480870863421389644779390661254150531596416043493818309007987159410177117405061855192498800096783517119486232759447896498813332295706717654796540837858948567252803404965816466809908384756449893459048618411227346994499151707964240584629112982860953194035739012310928815777631057125597433384665941490207982504057864993931076176871343855184702857355965954007649523450818696598428546885447494334691563102168369058839804724646264599515217822348866925981112115183197387777194710222412294818587261070221167034486119903436093297949579282831836524713330657227115340773007773656868931602908460015875409353379063598242321853259065191204157308842406174949013173181818492924001840692150897705671809928103946321297204886553297596834409685698080095160067979605501718575472839228636154081679149115394980252733546082957222409692887023738819436469806828025145222358771590557802435797548563335357043519100594582265461061015180562701782692411176678300886151937746371397648552955024940600474044673122130324789346163870603204585948585030831950375363561691479591257012575745081661885118253476641887308233612366056653198674321479249016361436404667653442126135433122658784610339264319887841467244129487834326567240697301692213677343435365590238298343088532020442996068016953136631696826633210315064783678128421204395202025729271909529170213747568621267697729038716609057079817277536715733325312820813613408285043446326846636848527517167358521790633760362038695609826399020735701701416872374648239573803660625860442790985915072999389927570645775445187131479032945144249347228162885778874938361155021505941172323186231201181869301701884275490390172934514658147875602868255632351392340526094752915061338905449044030270644216567416093974190026090529264778034044532311549740553386796434212072956257052745293473789163587343828780325114406042570294035173279407436449982544962938933281177805148853521121080202348507357093090845777954845967418279895783517338573224920180711734885293272062145976742684293091308148698255346210044112660094497040207928564600336195231693791834283690586391564045387777585686665234904390015667684659181826482308811979266200307451332759953847795549242706589733027497427076268285386250490332923045171092693859298869913048698326771114231067402762039842297345617209210236417768440434133116334761315649886463495905087515219835687698451009702684998649486948984125477058941011720057855255479928994997775964513018659963349252914474765157841690263247358559792544294745329501766167874587873583166868220799918049200585097017258413740522731421074985406652227939210968979070618371576405998636195673914655648180950598761653847446755781201421203181366023974013267336032258621272266493645813568770218504321956280528586156694342769662285947662728027830906848669697852334134489025752549889850140179766350165128049290706335869389612373252538821165701585376652663274234670793860074636645611901691172039600763265334238861169731413787144838182192336558380936811370356483961575386703903103468827811816854708791564723958543347549362107438520273785281913316210432144056545244259544974063145540311124901435687028807197279722241202499824561759756525296471223793283263835288295245383687340116372955553075057065401046738792095119151453416326147413735963603565559957036886549238796953824181102265431833185264625966124956390184475682248715226777503916026717824857391321670435517138945788965302533719889538254447464018053442811353715778793005526429993203089661554128429347335640356749888731095503152670828691221826919557702885231499821909986668376307625764386640118129249882300528122032564381499975631884759328904398226107069839203869029403193668326486987123466531271300249722260794362450442868905566418807959478000829482263127335565998051122359407158554520768227996557369205044396886406187414160440362106970751071568928192241819044023300786860937575106038445905424381500127698652315552148330759939278102938839313904684787188073931443376459847333910309901981347397663838978382973499874695114036117502742499083592508590332238865300986345855978700332443959787469136343213252268566555487507488329605200693599341048079817962352372838584056111556574107177207695621179718896584852956517083852836604392964659098666376415705403696486352909064972644301877903827643874135360899907244348459057563125267976758234010259009754197831793872813055923521867946928912898778473712816429160353346420134221714098246303115669435830657125359148258305659551376695867302963681909405159704272922024973511889057562996267071037746287530051164344468341100022172981330714500589517555944432090768858281447200615741287800190200011151889590770391350190813136213981090535456271039160053960922136422466499878789046114832677435397118874581382738120569475215851699155723435484778670199003894278284346436867886761817873074551990867235812215867821147092051704854909283692710193932832389786478356927213758837485330491711773405536772335880350871863389754821046794325854547274376085341580600454968365069547427277051906402959103274958751203002638782722687260222834795354934320200690281457051847477385759895565516994110009633165317445418015721958632322449217489947069565923288701854928241973264328474839853112513559411430111649635643553277614335961807120547235288728432652073625798164865562103268656803584025593826648595180863012650798462404938685968146481083110886847102898348530831822792444600768377780490258938697955775589491880048738692920741291092335455055617485705769079926169062405610226362091423383505346820434051934098667175105020359330850045261653754661104283497167991090818236558160927709032829230472388572854944664786404934256333094695138129245354315817241164919717714434173249563873733599546335335726596147521622349066735510369830706870551419855667956877559628922084891533517496579314031448127750147742670815147797722523767259594174544152635836098471501100408498704704273363857495351394973416993034242731845130359592302847480016845841363678308136813434193058573231595565830415283955723999433610078300997163820156658126963336181204392661808100598222962222984095505050335590773206685420093227947463386893409232410140844657496124307052302837881405273971500703704244176473026467368287687089915667824112416651768221701114255487172467277516388123096385863238825083269241022178026585433145387659802086376895607959496283048909928314083985906532885821893312835416516818161223218753961240711686283231823960232859214363148623236964275002268065963527266324425018998015432963173472971967419346336105077987846171468894122580235675686298216962819013424908031826135261714753177994039576887222855324352402989469398625998701296359118791140760656508678620818120531593433157936215873477682399017712674184703148281446743010096517435904253953746523979971394832105396486904755421400002755782502783887596021224111935490562546158244471038390127439911651047549837975408672930276584956624702657896552967147159966025935994300048570052480963464238791445289871689235540435382946475656680076799111661008550421222772730079882881750835843250431464980480682468459718414974721580351648821967708159071522837520308975184869873472567049016529283370988372244446400755680611216002948394211530762033881495392907798498477398739193096129960595336646506229414376184457069633819198603052502272761029791907660229522355548879905493016069555396400149955367392122380667572205298670088493660383100670380536924833685523822806412000639958771349696004055797087158541170496284054271475515275311720799134892470480725054745131780037726277637268810108449371894204919293273771305378427462451395406135654275779001802326968713970836261172542546816811657748850277182264653350631181293367989798252319090288488410495619062489536291607499442349376407199487379645572518731118949915748914965395677452748144370358003286647359617802582116309990688363885935667505705563434180228810691480054810058955448238534819675035268453760293160946315871111574852172358911282721410415402849017186036681965895293103761463484684069988147335711703578661869023827015892585506182892382348924052070412196434856378606240834746886167634792742248254972138221001761682014546565349445149220328325884799427474053191096691762551341012899995252715640738285716886689363349055319223936600290568513603013622764434359224045529923942450656310376582769035704162625080061933681218443089985663920569350278372714405213104067035856301364112268074684440936915296907043242972793293997254885971382298017542973455573336016943531409264740590261823637514873824143925770806486832892576802621112139891320803224099901247814481833613375831228445091951809993400417072216775205738794989381452667778590100195057700138372736167571223999516742424619372479104809027651404994613577116851835167537269251370295972210036160318280137600247222374063365235872726924557079138563241019524922255072907551603143274421840687668378703370827588146268567133200156346921592174990065928150824378650043856718121079293360675186207690644514297582461965188153726566980943371797996553077545371019405420216195725033054313224910332899398089270485148173759623010859004109615553479986974873472492436131740373715885281267289381562464438072197474478264582217246403130766433491324654831309606907842943831940758866335624616795802690231892757636595196735156487604633069348898991916864906089647407567956970305783413778835863490853879609425715609334540150149467938351957065227531932675507039525684452265746679819090343182205310204631962120351966939648904102415659522683001666737645271684082187464317267469986637740301138157456622402617836837408577940352730181091304032891938912612466015578123984295042497924866127574027779766595039831236961643493791662340728325790726199327040114325238825134208156557692825155934717585092892117699269212501829455616101358150266226751718137153639054213925584726937726916766845258836066494111156846230441319579688888109220374587253661355121706659257689969641139333596792898324307427812245405685011623079632079073823278580216496429079784886285355885177252012413116315648724014428972833296230847746458689921837667250217539268329476331647754952104744742488771031678297983878644472938367445378676878930967243400739053054550773409005422546071600784900441108853503977380871593795311773531015828999930486925658758387359624867043158981751272491185235603665821396721183536111755325485697723711607475823726303151177908507480070315194589802395867391672816553860979356482781544982620552528128836311189482468677975117366043581580848764589088959794119859403540923074501169689926390463533793258085191588056206622221870813631203435565533825291936189028549948785089157792744368758793663671478562447055496465784567933057837107327678352418850014048145400171963181833207923309812028551912118325854769500381637337812986235538848804316521937866706050183131044977784011183138394717472948941133178519736965652666682772877053824960640100707807665591232942361248011694769306003238796183259142423249615723439820703627845812839826140602057579493608278511518487700956760907015645986061049165718800258301959661139502577988254179041691527577152422536751147261325619317611847123105963337467484971405709819405160948302608055445059909647074563599663850522694564509481594729751155779960675975538294737375440852078535395933512279624947245979995344887863613163987129840640981004391779228732760656227428283091946419479022575821542917480891965767641740408582815741056515035175665870477529712629614279841077996191406704452490387982519093987209794164462005376279552934086309310846262470870962087945679566269418942472605709670036906447712157031556185581243026976534989780711223435598233148244139661998212334634096840861209574211114731498539881747412686252907440413372110888919944910135161219030789375098917607114967059538572536882912353177350956324420159340767309890277518800731744599687216781205571787920840134905432840659771429909453655273057258267744595782670866251567035238161758799523784517020531031638813084585274897360680109843891410412660659887779440133327639867080835157594237818872166322659507126040847959731785765848088225905852790813037456789291120038042786276074611508618740551573501522516573367093954532526070195394663570714322282211340908042036756340426549718835324865705276782092593287477133459431903824257583274250525061874961326486353132918765853997687775803294421330784183707341595601857646234531855837048147861748204833379925148098590628851807181997177687462106408294849253706075310439038158916591622643915202506029790144779120162076527145344479188948849043127741148964040023910724955746093371927536734401414206331579223878275377294593724517083027909670157252695797557600385503953348247883717482609995202451908347907359346958392937276319003762914604579099325915349755499240107587474301780489776097414968457353458245991202622577487206531358626467718795908078640528216499704312635201863215993852090043035251730485939794987370397852473633534383498236096963034474571334303563666043201704133530135116702154709204091450143700159258872692700054104805119997969154577061880588030339573905024228389430815661862842366049072621370683973066718675701653230469547574207153623005217909965056346495825233315927117822661909282005164759727427895509287429146391958430923653779710356210699692269728529076269877154437895040656427956728561302338259432060248312489086386017255102388242197045181547301741597829250325908574867379245035833815739846644760094684072064234620194067604608767861569438285464588915473980273853331811004215050200303725080642556313269012901683873604127699723729600109939056359186171938281574581966320360390700983579165783934584261689175990409711073344964788943175491950612700996667840356578457874298420276787283568953570295428056773151656244288803375983074505301411518673276948176499589882840650509503320122769855334837595485935772432562710993658700664395531321491141251411028014457686644800621651875071437313846859005428676036861678502413602764470236287259417579494662804357697738688701629011537734069388339085910841111831970556168716813489623170877569462157048761015035720868957133239389730193154549555231979553159859286319508906033613480746094916298179784023183663317457652467011611408083904565551211859384396376055939715436423418715886867352834044301279696918896756082361890548143391743341771697732731325496751912306957424596947022737876056453543838814583649725741217197941629676722256612099482495556828797395748287249006868530986927634085260802368776727152023669521057229472221105111302240196296596487891915695535155059050246152399055266549466506939299953096519156266849654715872862054901497892434703627797371724075837134212810118035572107598398414694269019503434552512424030808701872075640183382568574660516608381035516710229727569521491918515070823346823519440004453893279562671832195150618425646418823496398390303703843127283932588828994398872257377044583064144639992894277440698461700821649340258137954292888498282858390700251706180319425085201815102364709624200302429578080019652119100591948039850233861014823202025742610541281401929730735170433389329922109880795593165019013861997938590423534884832571383715019373793167238444329075495792230362478520130960252222442105085064429071557946859770200190502114213461449560845988447536344634445703873803328281060877202789284568479531707540328681124389234078142772189794175093311209112458700398134050252356381194080761923169272872960969754578944697497488945917743915248015288704713028576441985797055920404276984386346504591488993362407526970531616513632544057629199219214966363623485939617062877010664516573876734666971319735032929843420647558009228438447814976251910610850152864583693376353128970596683745707469741667454565387652707801941666442702884178184647169859466897033134313803653083724216911482078689606737319936857248931632863803302360869965878779017363651072161652721807215366465473274508430269657687952689937650845393320375433610415201161628035141754746775482898835941333988048057945856558997451582627734590471140424487366121843861675746351024138922701364800888273970027793965472000271034995658058971517441871653865012701509028677071309937138324604322667954091762893515234392650978007138550561619854873990143823540345896179941802835190948105495666197948834498399747919871641990242765561624283045673607777803123319224616398634367515423360566232716509731930087474148899380172074325630767404278787772658382476242067845513129653434124068276307650887822727492904498531439056777915555001625460725391977210573542008043992700954788158281036930170415483999650152869498245926911424373404483990819032567493115919414400771959874770891833317846204912506832152671558206350913554047175151458217860850512972632919646356922612401388556304244036096597532028094759984082344166530313559330064498673435778305822498949314133645893767673837798131812702747979894222068955161523792296481177683942712509522215684992813179148053030164467056359081989667471007633311546512657563406816635161989353846001662017811565224966449672326169868054657977291222068418165923864439181366138938065418071587072357463516057142651311268386005431604017637209945849100766760691748285870032907575039280757853530770963847551875082448355812814941193839528113494827498614685908062972530678935099455596248496531575263631677240777383478573563855988395579295475790087771780583856127268678636855879025436579726086939383648905648296063225567362712712653485679537430892591584727680671983823645184532286461712607009361708173274722814502798966201625540415155542749005007657670791171275772693851973105944182708021403543710372294000339696912713307737546338033784864098236434046859126413515851208505789338860684379719892194954846954931592450090614486240366672347773186901718107245932298516445864632884898149211708392706603985718696034656395313876992909731910689801863809482609132496736237011024414332468276883456083849978901431417466074457073642335664572447291456435937003296632701370331233890576799132351832442183821665367490189688210538133508049620347769676243028964300963582858206416405033151438958755139994149424937636707447927040612874505461348197397500817817664869457338439339478020836310746514696530461481636113503756840724718251668189672022183878766573846158807938260513101314994767126901275293625677866172694732129388873614993352844686397048019166212685213155401333424983231434173572092663954842164990141725352454313362898938404772723923491794085515453682100613134550680788816221985619684950261089765844291827137197189384436975342266780494015953667116235257050001205903151674961191881075681667253823039043987333009787580913819827500575188117126171012751066038061164184133065442907713544501504194136947518401804953067688651212459522540315814169254087822327604225295073771087620965948324607361267908294542666509759167160343154573294529850166365277488976622340016620538592096636088565567223026188271834409525500104213724222911819416095124640589918062201726947911104654424629629582699519452709179008466537627790604762744039904929787886163806775056614121003063539448883980915133288217737539786729778407694555591604438553688377940114780446767520944341276533083444986298159235543869337207151369605383676928401978139074350231342919824844725103936231099160516258199174042678329707585132661666889322566881641989746135160078456017376518627093866377138715373534156883116969647236822011734540657667640190559593975377227334438928223025124215911399223073166572799818220921685191784702972165113601346489917233321870174845380503389317940259585207607690419252082511721785327695259558073086855006702664734171604913347665058765154583237121032082835718814033135930391571080055442465933537686373088046866048174606855967432670220759019902832474703442312664584930247726746810354629774657599473481917258508045533770080959202628491415975602980474740496889490169226961272618957921012387083277997286878542862143563649502690844695044031987851076036715639826991193689571824650591012593836456283565896559587638522242610563378425923993639070327535720719604936860915100709530264800582069861561437948844004303030010075595635701540328679299746142502024281067185961718653498325808509256377183857020076743943618399929338598977981796085935748408511476963404089508420320050149573984918536222447311424273856730359187877937715838036261396456265408590629437966321425419366173039581769592244184954484772124607898334826992429499596262503917776579601599814986918146989521134258534521028114119104907426584465275135900081892985719693607236595771259593114409667782832395778372256115037356491137186287627849002348190563271455395938859130153440973321110120247558881460655204735342691299515216848423105647326944539583110958580827649752091633604591798440784586528263917811673616795711310904102439676136629108978178871493650502948330756635717108882170953026237712239079126104703567511891266296030920023016687638369420783385718894828494261579661002794656699189721236885443033938044753443312837026633352011175225274730772855250673188992093377114979191183508619895027858074415824484539396494426508595161673486765407039674881529219833771420190393940937865966718842784763231801200413955280848321879852883979637154337830965849752950371124883368884413802297832652358188373741745157721917572163825581257796280069625405552662649758221577374144299335204012234462108439036165052515836285012904656583836662235187864212887305291081963049466340157732391492933194679606807452106985043823128651162151113288196530991814769259465472077496347073434261486842434214510612029981273210581068132214048218285385008530713171529764213729159162131997345327090184140708652663908837444516136241848528116111378278354572295310766496471288236651560587218912432298530350723914204496193150144048666416112301436793304481691790103768457069451215514803442440975079068800292924942114031972208847393630012199535683272119612530574777390188341846662915512575962299585167526750781375031279815307252683259562587896374051805970429640391647310144661714458018091133510489860258071105419140350276433838465829975674574491810124818821568607523804223293410110624055701951805166383317323652912071370775362008934179277294314757538746344676420588626304941409322976537329431360774147898174830061903722005104828298247467170628421692049476583854929227851385706775332728218176524546724893552571427730134782482820183105212095517075809561907221564660284151797503192416827244461820069932170658705602637945751941633940293204448339386845622115303605452898237013574934364390173202229037263847703716201905378065856966472205058927394285462009107192455134573829283780717013342562395578409229675962057228893732084000815103245954952544041349913887370214922661106624544640692910587619456640004052223616049681788401799892737260147720364024970886772552790534072210139952428994338319328018627257131249167734516680286181145647687954035303153053131353060431710906952002349918878635240328279672710672527165867758421438558954883916760750950600914429535338440636957839840929997607197778633723037687404759346078519086971876522290390753916699263049321300670613926424021081207383337660954033019216828926929840397715425309235526157419825441641647535560061858436749431917897838858806220791198772754628744819635729980146372557529761641253968886330403463741636426253893253057787710336527458222507944061713287159211564961371728267760684962041741301846356870234306303317250197229151616026926939975248523934719474147186434243996625137505628278229262664525239715581363556586780582584680456343301751689745576629115436564289690619190919289625974731340896808095912386211208811665904449448278254814689650350554611238519733159067054901381514042613681578012698630276980645620158089289381948294748528347699013720708498179869810620690521039061078466793964084708467687335973233653706849295825146898737688982145533317201240480742234690305362403671699644833723511290366029576421160763414618171784945017508520173685220963865990149223469059892372016906203470300543620421792074774174109463528667295070938223573776836873930594599162416453295172485690922574279944589323255724286792697472419140847589984332957341310812648211638707736756818959276457952596292435268724903115062762584599918839304631069074914567171073155707857400342664278985670471120629234470245331087513482319940799793918612210154096821123177084950515484855865782223522456109762110688248832268570776969428044944087359312093261928706998307942622078540834244848486899568702172961936078568920162098854240322072730047178814817531966712405261764487659889705210641785436660843291441677405602033508303470736181387459357202808003856747834497626139106881195745974682659705231285369494379117972983041325569131386988497524842504631107500368616022105883763479102308734925208996040853217869132215018212222893224946648899525789188097522345036638200923549773753237275627331418953169774472450910026660568207918037951096641208594242003991894539872219053891427081257282007996847987296357899210980235830450988471252734722179734363601020637093879452495898697256358693742050233819137987351319339072176899616623981313450811221659954453892969717210114993242370248348229651021537097165425766508509000994080451159576780910767337078799587132111027315900625140121924442845864952379534274166128563209594748393709345291034424722995910205968410217741412634262098741895201914876703552067256576075724279922636582032605938251654128945575857582135211345847949545722505553102809973244503174126161629323842109738956432957671923703688753121819621433233265137132750319715129854882691137190215418396148192130072268729170543276234390055137180179805873688475812541838104123233844725908198103064839106901695094141540807883840860232986502970170673594151364692452588783455808524361534786372845408685804780267572947764334674827825010814530408209896408444804460503030178681766714264594406775492330981856088119546522708302871470371275646163778524193652099057821013034902752097743826662241240876317041818404025015305048256337305533007963853810933444169904528492681066203043081773710406271312426604713851208129899713952572235656127143415735085061737744754694040080734335936977205734146285659025004754114771583246108406923162943474604071167402724296065535554880560294682372008835953383512451144305700396725655416311418200551346309430572306922185100945495471208412241045157830101459592933281717921554936280162946005187195364635999003745704165093937540905797183776941866624592430350719156967820169410085690165140533564235659916026010498723459710536465717491617654055066502027946181828398158308118116292494258913290041580530983991264033043968061035992285784240841497358767123138756892447644299272598611873745007123316112966734732564624101177413442155493594016982879227622291647446799070262226728553461477160739094835094933012239358428468342759614005369774597241473318036887746619253479833789364177933397576339524610326476050795329061308502065161656417143016580397762467641276079875188362066090162613906003564701066577336624809081581934197644733357783736886669400133580767832250623207112852182728656189121103151028778658762487947405281410243124385227254284547134960772831944790743438783180380291058476635576957559353169386368893616045554670484449266017412502098073565351701712642195224560258808332651469866886601533243650708758820458230145831940955829083636689061184378278018371738798070532411292412336955284594208837597210218233913311290660703793930409161379068677821560292608282199507454423649726567554378907102034829827076142202776335754470636129122864907676152127436985516975433831238118266816632308229987506662611213352190376127712647261091718519369023754686575829207094304357887530626102361352435962125426065433667197009738122740375344925574322068231953433715224180807819637827227036638003690087976034696953670054546293891898649269518514636121143731938648197947478667206966382619693235530808297793801693919907878892461360632397016184128783825288815587673460841405382428637487880923824276119187941833084745736675874769181198801546333891559324158685133163039782426344494875127659849055318309922782306708004888674552536261439299988312285699777589417818638313961178833751638181741741527203650184436088386221359808700877078079445336863914149136754530380822816900427712753631890296770523384275632674041734116904491501947555206349942724791278351921138810108757984108988207555652854851742074348677494400680627495750595204797330739981792020690004750812564054593037220995166074430648306625806580139408263783506379274487631476069577820828930827812348061355103802024893898756992628822921055383808696413522959866044812078919037499316332789942416253084245562789768236804254918018707802864297769257261257051556105557010518405929499918677283576979762033017242737555149622994200572887446574459894056001873752349445526005986411593160808026839845877991533675214988325400597952016612774053588027504585989944071630692459906212243739093143380041113198980941511723572977087687754551288105730260649954836423480574936656611908273816506649985532595198480597295042493140605581852672548385246868149041714789111836831901780633712806169352137328480012004358290698383206518579168509168383393343666659091038512606030769212555240182570658189175084668287440242035069987483788711071517614938007971090320236484320470214377096341368508873504525328454452715237865682218847412130502196196445827709588979177296871177911003117989533592795767454877071783253558261653821973756445419602660815884430798151856955536890094547935584273462738295434236351129195497049333948239427542444143463919732180659093076608143675922317259169584997941730525176459800266491702723355384178401592048950645825343273168373695526033057204321347223483886464709145719374326992327356326547931529189095943946156625732346217490601858542002155373726992320094237901951883693821570996434779867280731916946463009911177398338262599627545721242039807891584680964289666669615594471116915045954540651351080528244721557228791962289083220045451603777091092773244932838357582280962288000433966112855915766494654550254574071209019838001116808792028319086994105366606625190176885537842263403933893276267845250532586525620934055189077086265156760977692730446748661398677574021478368539238167808900969446012835439264856317242352387231743953869638860308428588783444925356399693991810248424150895942909756913568032784196463700123959818748653884825696190286784536750579757033681162895543854247546705926248167461261149817963647470295277280323037432733464377793895492748119462502854035784258002113024420989157294301245900425254556464507640004834950054061800535275931135662010671851349324741257677458901673571759584574171481516174524200876887059699527480982446805377336676164498050770802962194212292747145704350306394770266398309634075649915994788040401476910259758007233725712250140258427786004457312227245667308768532686130399422079057152630755241837816767107847871736324039914654877718487195443241022660414823878578563822791889793849137330218984479351319156538130830734432859378065349454315569243384319969390890503357476526815240102472794209431537199124177799829249521701426151257783271332510570299126168835574253018748414757472926107137753825217787646089347772659156038770469242801912711692441882535130233851539430331274951838251375460615929209538483269045584054465338541529434239313071164101382543766630390153719432574237491768956860856246440893667827174317328630092179598361949950165619221304117310372837445404163176353423730136603666364503003453674159542629395271731043055486715495425498678971497652841503720792190077277609115878302432739938136301909877161348153332765733817808955102045519770527794541311486458623097032205792024059673248575900632767102413780324047333352224483995215264338481677513017055565961698855491860619393992716146142759377292405879488829767567816371654422808104759923151050791512885471191496561719257909742284099260566882202847035372408998551779087071184346662849431957102263363212030127389009884269124828829352021248034155692977884231700465433426961325454746269471252754770162864765828489573660861633654762306733132442937371587868486232011662701032883880350601251758358196424699567285893855856110347834294763062519291623790387753820094799804735076934362567487218386137028279945642301430027052613285315944968890469994903543801003572584078212301405654243823968503377630925976455200805861760746606605804776438841458972230451678274206642466354266510838243939299623752322432559831277646307889029102277072208249669894198836040213452624378034305762853103310924161335605865682162761165952787568588073324102765453151837973299359148257850101539029761846004991845284493808914468410774343671878002248997915228079324930480014827786905291632752580841709703843347201435208640501940765522428692654569613633684305380827961136086306734460879809144213994177756784602662746169855534222008416101145187222137898029439198257290555022128525620476203158163595571984655778057331328813831857962943744395916408422105795117577475546251126249698086774659000836960859035944902453109437654683394123768549094102526537253463359214904422975105170328322519034309620051881199736327569037909655877934021111631902899716692225796452086283125718609708921153549975810704681664275080802334737017447627245838454670865762325832114982229842139479196533420626794479889334579872911999441071051808359449200644312857624406824832660934630144739539814477731985811302017272757472915505964416037624356403084461289335851263128560697052174251764163359746461553129656666484843029591824329170882356660690783782722661190421895057474610590906581413386797697742061328992154034694699399144578308577832793331086196990679414692033427510757462954321461679042031260487206032363766845489126927902338957996459004609899450018248544378692523720127942108066320532343661443336907043372138768073452409383032703822951164809488025167926631421140372239503543590883820178681824931358156761613447224024736606386627677769845760491550496815991746988381955281795690911173406418333767293124536416753418034110032424733565717221033207945537887004564115956531145792374073990302333204592177996386465476432270676207704840598726357522143395107934906199407601408860739941842475108508860574286389196211960896853709272830866923041644595403064433811442491836693161382056136233752659247478519758821470216143053184139056672941842535533778097289475620920265008747197534407405344241516971728263179968135296638640015135389084587179006707456578050428652309281801513577706238052552669512527755806061872976997506444544705166908115231504297080633019742603823726530958664032022252391284938451525594809659970112536971203963834671878969274172641422408482583087628682903479569911850078237825539859944505617672498692692284139483019428583478069288417812374461149187742370311755037115743798517470128237485371224148153335062170572085614651341841322235949040992548516365479825812155354656109874934873203615967130947359638525222453143495086131817277037512776031179244960441913954341331556798823883149231004505877407191612869153118457083777915816879935140149291360957414996440568661085794798753024229945482586615507393210890752587404117909100697959383542846068302051432183217773570405567379120460659224491639463139916812216522875124062174351745572335084014535555129310772993036087548339825417205665788946049963596057146822404848093612093852908500193990641907153259467176034392927369856848237143314329417527486452366815432078555267422209545274493122550190818194631401740829050946842542728805477739180568711401116745685735202841490854583221438609641639651022692858911873954776993314518400865192585087271929502198148405946719284776403813291068302474276634552835512333572489554150765523522948940928309112610113010476062691703404327093143704817568339413871303157152197834157060476386485721446151692593995226106181123447660106403500922161153917636004052600447599330809718910876903531152919986963286017331854227908471997935173535497511882910596973988548231334481436173446758764131188706479492995614863272367610451006725727017054573244360121030829921512953182175129438437366179279246489986990022364613619143185247702017567382144742993358898538141453194992574739956531686555108857220152511053031649431805170287552364565733757046196439869709085935764157215551717984713655608731535114042358247992181205962041706584663681579306854964540146239908433878065319767693856999379525742681864554768334597484784584112491405421071701380161138946979225156704647006746485026016268304109056395717324235718286114860911094546765013095736574034766004353876413254760274576291969130849798113800496621020605874507646819201076555194176868188356777435057346022547998535262882842198089686746094228389208348221957150831335117577246560820732578620765240704951477841330233460533642449013542343570320778418816075844313373582959460927190469018567690939599836690491359883058380592940203677643332958426880032159149899820455399501462391030113579928873471108438505529487653806790903473707192919736399045780067339100988256140795556767431336047369354297133474594859040242913998228976566590458139804493359394697954315422069726804795347184150580981411381076122722224342488097418203327017169246177668886610073678841174042852635475629148831930808372930793475670061429828515624211958513493803753749267407572888971962191153731046181781938928332782606085090923351876185140744835274351620694018720202187884248738252245124188748378787530756403108556835925258515556807960161005774664353925198695311473780133608257918132646911059446331573599017486990745728079827923384283911587582286338335089177800254773770707880609786326599864646082461855343927012645476591279465995715803984051885812153489465060801639539934833651520126635123270546424908643572843198761521844135085225596566965273515508421363722365198687921886107894776826603213411621266835831715445440986971431005888512641495207838296829898280770705933350699384902283163179375496793641126872249660273551737290480122983344854304504863873166023081884225880622796041153276574741941546131523548117456153422186861836915637120738533775970987407761011298164118928018134463573584291938907030073628700537300022737575945602137201743057428660929628935621442857494984155426605308510214941462529534419524065611852774525170079210257252690039547905675057400823160354271822494781339746247364552795298064100112134213670048361683596115444481354074693434442368214339134280994948950232333071831666304593622000725157690750906295881296373239678342453048358870707958994902572823180422696614359556851512894924087161728543037093570573680506585770376044145870549314194615313176128759160451722021962271429954026464079735116405390982227092638232989062499828000374683428452527902066583965889804438555620418949742876663363914962126896348086681000674374634780220175530686735513346615237789333476997583121303536287755970611035581337903604457541602779330964634437876424283818514030610577791200512528625901882030476491132925204347225455750810406633653387292638195354747535321097884180210640481772679587461919770485314302642301755185616877995318111208399279433700734135722985643330356441682851152603583711816942649398097017261855809932713043282467518257405653079923926198518981216871907535826493237989436749096235791437192546274725901750790588861850701804364860979685096885977845383961639803375773792515938870619714444657691953150998443549811813921358061964031901693200910112301573104524605741482153886542371390289353530078393954788314120760611231470414438031690370480209019941351454002578020385131866685087864273122556123424094797801674577669943250455250848576975271984341587678372741208716174364606954354906971472268534510844892600758766076812841648856353203873004219221451305040438121520851023899106615837736249068153751948339644143673228458433602468383113227428622211257446416340779481528685378878473375293739435485263439509289000874164784607503897243925599397379293753544456653698628162249377863621839536002031368881486374024573893261118465933968711111261138089258807268652769959278174177161370603532205169003532030815854470232136128234452239822682348139440979058837756532614413674835083462299210602588705643597422628124851010182459408117161183533398408441133070553531399256697667719810466121591008192876356714602789937304226771405369263731957986497827604652893942313436714997514158540628616834201030835621742229720845291695730059688014738530935712668452606824090597088067083085900241973912348487195012624769474819694111321627079482040583725791505197374620044231982247152909850330805324567699937503622182673555406804749225595828448507644360909897020106244412034635633569319125528210716614758632354464496046443525469511817616025135672929924096629947064673713087274170240809866415350499937740592780505199202704366566232799613736367857215613034061528412828719373638990674139727001118302890908407084014180057039782301227523434039647672414198770093673240105342933277826238428026973804923554766237792955841525499156963670991298179988062154814639616349564166219021414855351313412065041772836239270631146103702697700495014376321421452610366264868058032979607077796155219027395690621541144515217699976131866476042224368557443774674934817984544034566755780179915675647515010540927328845277405939198198686394656092204211287812585526870774621630886269493404127227558605040893861853734812250865026679892724820027628226576228329968148124126213129507119197983718028151688252510487902930689247719401389944057496057086944899492186459659979834903655091008067014509727371128212887091560042139212856757861312071390423541382443337586253309587431050854129921733636105989248029727419557773803060775050314316383796437217244118131678327749925664512766040068480958821246770101418823765027197417430268891236101066240301584916873392720152492967123104114667939938930541782677943631872081609210309033860581255908340571797075250192090953524498927340187866376640755461949447633047723581991786650715715372015908359297308105091104508259100192018013549268768224866248508692527305399004037126868300585639767716654348473986507125454543602787314826596045078790640706263505249112541312229664409631801907467026913795945151106669500742248872032115337433755200920695053086635191223931580736815405108133715506769075569884147610465865442770530070507269706139763290552578097898052152797130552948359816586801498873594013587920481330700539804000585648658252383966262354605523247466196943892155219508200935632864590943167086932247240592219765247601378296421022235109281515766235795062976183701410765137021917600343855384536421837333437898656601035890228218609303202626863953829582229318228386219149299215100809339265924159742091990636539887887034738143034036815064432347258224401627259499072299249758803337110166910507292760845071165825108189137619468277334287142428003563025910859874606032041667996583683030593336477646544400491915466671305516853589783447999810574347468857132511193809369412885759624027350079679593291950145116369819222703865330698234268284028356212597077380651148670588335753433712424891852666007488219050809051575582481178843211749164946617190266699783771581997480234550892875704803301111764334079501010141400383525594848572555359374740495581198823447710917540452216239839035505543691547752676377555663780041744495923035582510765521515395814333031838777522323232859965303890773342977086586595099450792737468079647166596752939249065610024419810229022102590032307819354915659544293111326539084237235119537328634969588846476454311717161544908035263014763235509093918931531136691086860448086753702673316231404913229326870937056612556506926766191426529920158140908673373573472131859842621050564640449010940277191573066556640633155722101263777810243323694529308299515167357291631110396156430734212992509701679789013562397713091757108584125985049166308329675446469001606895347098843371320686751067353570324738473922015104717616934853985485084801555967816035307094343678676084653788751343986866061699316928308399875891041058646846817700497888562605230322617655339137603311614530802611921122175296495758843455598409349303550064625952902374733248692474762232053613734474647941508445629030733479157943132853549201588827123695770901854537461636326928426790849796913709252130300289033485903912689442375991097240229097063174825067407093179582421229633022163505858147881236459028458014291221177047349946759461252324775026147078429416999969770272898532888313779505550033121742238087590599129022140583270300253499063890193220165725637618516057309647793493343979807565935503234196606727783514678759082285509942123304087720350186481304919573690734080343839572049725762989358172143815637360657162770199522644552157945064093566652502465366141821523138182116391151915972212437516436908572791878846446667609557465881390259016540611412313819855442039143214423440223854923827178845632113365054628555106084224455889662733576261616861400160778488379138098535349237311051819635955614336700756535782326338131451007046251731676903154575784589848162498327381329700639735590126164720630032178150071666893136982087389254081521624638648938057177046040489302943232801491157034605193924400841461627543378925196565526794935158516205591548639145247302910437157677511792742673582529551452242533758389360112767441515382364523944579863330765015346420831213982703197688572934124404386471829031605505919954243442063853470583682397852801279171380799056839967647053988229804243914512491231624281500598891083745867426938353252430616990375204108953599341247655222115277057647123834280883541765855083401912209104783689667314369514901760545992325510260451369422787455107663092039232371430074195138659703349923374165731525399469722518776365654698475286095738708659113983476076883646195155114163483401947589616066923719684233422153955083894810671177817323670129126216282982574739884178565366160891667712511696537807111327553695743423959372704014746761812399804046892043280867713992863978400176104650431333600665832654610593993409219717800509788886886424646823441635024819937404811584136393823794693688622319921280971623547220967963748912934360982518975764736984209418474357228313877734083356359876166413404739771967854000126244214081137325409961399563333498321296451795682164871307566678371360105505785439563868861024678534448398804982006524728259822504721302878325346129358621882488705438978002692998557533357061582616293097835890649088945509048944022586559283431103599179097456794244075470950290231095490341309442170884277036657657618978413174810419710247455925447358156230177708060028440256657204709767651139927385526899389962033792872370987747352926495372380539920327163629940077613682830751557634179561686960827325607033795643735916120511928492516996766038690227378177316875011136159137842194694246982707908962281464038338972441754601581245376707259891249957607293744385182099539876803002776577007978214076010624547967364348275149329770453257666601406617335300506197101662084133622458882656734230111972588153502821719779831904348696139916247236842228914318150469406754082813001204690398458167572687859517118979182078686205672483491949820910922113625163645270550977396003021008430702696094636441997902617630888046197697262767681955538650584149055133380342675320419177121991316628929060066191793224645111359075896584844347261992048409596302468166516631201668531141832950346719494865940182113834736658806564239096856278499183392907671521551730630987921250840422994797208895339853656646261452754828338959772332260375672022696369313391204307083057451617627845127704311664687199038653192589753771137545246786459108339495958534072777094301516098569144448814704314457443353769997086435979196852931149834565793120747920482648017723317096129145794759248730620169263206099410795771585595318055942263621239774622864783106163607302905685813137093094584795563067868583681679388671499593371523738212757792271117019522606181368406047855339850915634172030663791998922476926139971037582418411809591692617251736084174184696801859744403387151990303648750751769135126034024194790156310002419856117368201948262121881802280731109647596789559310357216301045566027544840811199831097384486768665837771486014334796456521775784426868976030203719397808263136059209203277396820682926154731405329282839467551314389301654341454902718323981197301641068457054040810887833175257920559849083210927954850294260804193812877676336593424580095860477865358293615198927554890082810971076796076948147868551019234284431655753878322833357534662452726143996823088902141246664379274264861972462757888811076100436718722280596214964289769628053765061296862380951766380372101227420160188792420438020927283986429710228802008406816417158202383244870445810662146492939549464476410219872069923604357823154660266949408068737176283406517823344727256633380274279904306744742543437781737093104691014614963168385284274198927847522939377012073816265406287720616104947036107492865673530644670661736581119458926943410142722513428885942520803541637978611432301955235904102424269234670599523065050273069821476580471389614386909871758677288302277825995812573891902224561954262540661912742376733397735203690235912250465352599247162136560770400783105972504114950766285513024602851942626995321304462479447140711490334997956594496238264730990470006794800029459198534641908987842879401002437538678560210457042713049322325540218420926287552787862988455992131707215991832888168983499701486201786801270981762378568324580720072258670549113054803871051253985841757444398388230545513082190890877914297880665387413724921916384002486106186333598846200652825970464453637361815083688756776824917181864644883917612898028162056692336823161894752117963438439965676803322097205945817386517974554956809645349646377583259276194054795650623975270425627132622636540747770055818170006171893193524775560338866640551632036970936055571508474988342172204369782093290611131705206192864870244058227153442897398828334050239399211728054062776069623670300664388028158638183051620774090168976678946920457115980230922025312136460450474203851435147883558741158078152824806778019440059941514311495345322548938544153329961839175174327135312692820311995935943251653885618815830573579811374532658201401151520425749954204129310835058364596744278968481930381824676156396122753637348663670776933649440148938406938778427865216833976065017803812159321364584895396047464991211145085531957680349705687513964760431030500699442372853526656493807467568882015763139601346138267939877061826378691456003778521458144743053115840972974939487405990361355716669210323530051941120810638039414247994862635010715929564425215571208571716042227753125505317776932358441976971265524908443221709770300703941196931886871650188726376494711685235854204100607319899870679270273856589882511674045393952744440355177047038074414344676654697619028667749307863034664245210752676948334368668793232851984449788431679967478480480885557090636301684589496454343384736283346817348541931622967277078346272519885758664929306330352376331440346214939764970244731847630665362084541021207962633976990160745866521674049055801966431665646576803788912107820294429504614634878510787133390376399140256768489031445522323487155816525992285230401098745253081990773628032667619620976670349954468304820659636623387918820191483528097413103522971023292702337740233738878770005602714989138998697027160315267168646348781526132483014917752413797693714119526412344835956551389614382979293362778632073428560343976334931691294949254714304637641736869084366710508603510407681215764647177987447872617987629738320515467916441494582262015485076674248314925511375580315454936534219794304697130147521240381522788159729105073477197821027288017111776783409333641323627947557168783367390091059036361277317851149421122053929458710876681209705155460124569594581203736997569841763446664689231976902757498461514306551902568808425858114871841842378334412685152102345209883873732144161712246825988445759823363979320541325134661606792480558062256818800413201586496436486843103002822032430238534182500402323420961638355219956186612084924515239383524577317615302699111642518731349319401938865999658079828266192855729617820175152376725378739326687027459412926931422759292177365309841585417365170371638863961369118508471263664094838439548216557751810378433864716115808172426277778925964939536804042933349608862828321341476288053458962263653163587634601614305671622787086586674280607130149084109568004791276812011241908842677658051464770420002718040980017225546758115252955972351416971839428074104868219517735829240343502899372417855455362616077770141485804533141400104552670662197224565977316033239026980831596224913743986767933489327333023458509127887650421369367981270364755213360734369867574237059812588985099498900903961386920999513328920152915269705385486719042436921140344255768956965846759910236212546112538185961075540302452176064297148540022842267103214444028360229265193788601779314656419421156847977104241071880701029422955502297289455869127446000290262031325632889232958801677983334351098036980754809131819304020370756866842702087507980783119837153529018137224788996819409960207009446369957518375936164966876272728436439182793866886304477513942955176882797693322574846475515745749660969379545886580770735598858358140102400257223972187135993566454325626939313955324357127191889174561066174004000585419573618136554497329888914249058120514621829209290136162628672606915703265712399094395597379057075810989481129987683039953019631113182691285136632339457822405876393442782747477837979204160915711278045621602530409954471247164216641273383576753770462637633440383979093227373493718106073418720956131353431976527238290389485880898983413967136814581025989763960497772254569723468073447848102550945229464912117263761014610714139693142473841442070914395791923066968173495532279433330140521781242421545886106651151075355319429862146141183424528890137090545364057237028832574456550200916085597361368856570543654321478060469469637551669749553277927392847773394045063232089551603664237605916643268076956272062895699212653440209921598112448079327761017942418062732201135183943184723501936334707231645386927421404700498240089541307718106586992400412989095661114519054419620568797353359852875415060774365858458575967111343971099095460156907810813939893676526388512666883542302435160715057892214217486015729672681278488377716768912925733387888421180580741400943749091902108859550842364800814355758546866918649918388860762450075985332735604073116498215178173902577443351525540302502178028036320523103699448799750245265227017480777807876070790662124705503741764793844967013334416726547630512135173442112515517648602153384257603714572317570154877047873811307398288437922934584896625035536264631244181117069502599417622658190619014592279892644533234132885725993779888425295172270188448110632725672455856334432307784665294377134726776774138193090395974194651199817739066401774506339422850841850784231742716106053586334632002755333565209754929302063050264596834450147916819365396413932906272562723853646556744035412111044048683718223378358628203077903407759315016822102383028844214588020693628369085371623883538447686686798631533348517717869326043922645606131173521792233039963682591158893223047840065060978705098873346334679305703607889394091029825595691620293257951312587910493919028113582085023544897020390485715372151477105449487231549489527899596590072870367082696862130672377742989071256758270044991200080264536422265391213648614702104849254942504222257926544326332625625531022682195430595229066133660062267676179503598257110132689454814835582333581564060746180073652800397758343846545599562792433192536509639394653631202300020857890029579430439811029625767905785441892783210677587778888689236124397941473341718333861656990354239400527285367311980858498249657775422693718263306039620892467654142020442291839170503210426382267705119604488557358522106085987070835154989087981626906041979512854420533272886694381190069609477537431505556856209650451984917295459454567444110220862104477720561666747700281383391601427546073990650112848448215800293877909226471545183524870909868741556463476661559250164599573868016325156744119532313376277575552074059419834044077072046897064560816979891821652116128792773786427800387923007687303805187280822134119192820918681020543138899531920529957999444220417220381140619638495984517657914576750785640705813962337729878485120542916506878111124474518589062661995975022134378915002625541467649630940432478181546907528812042576090914492351881470083565133048048700041663890465255009739562007159308419417142909608518615587637913825620047421202683459303265378735412631925265822793851799506630721726003750021728040965922604470121812527419331792643016323068370078786816465749925705296356504522286900448935072994432268556425333524274064189774939150112544361254410402321578130965531247710978048500676383060980018640789780930947577416495270922452088118892159873375220990885051965649058515613703934208218553247583597503998775350947641745281390094009067475424500900427234355526023978820553324107607156148047047485610860656168768621685667306615544186306798958975271987411407847581486938539504461717409418950055095879015395181238386791895534130561923065975404527827734528898818355564071935724664478466961980085293665563491523012288363445308136463156711368753732112309698935505751901930543197865721302446644628352130888788860227108743978196032502816338731953158262137359061465085830671002908110383698395852320671926469612474714993860908804146141159827930484903903509953804415694078122944339342159582462468528268751735847555927551908190735939728018813153732750673492840338414140139619457717186872286899349792576506955164073137627475635488728673535929800441020906139951337777202583177503652613868986007149494077930158182287920110305415055153482217110236056308235962925288908566534063013636898329094827136307024243763454561985273980937982118290323170888832519351313480473216227313664083787105115605863717045944384286565995739498425235487328880324944055718191499021676832101758666694170330101130160038920675764763376824045307997706731513564931146686012104356655898534438057614275133854138962751532481274048548182833726838691320042441522386671187656283529786626003504421274443912782077377182627151141742062662040927001040623941456753221231907336339864378359439488525024550023134547844401747190721736689749612691837963301781928555746069182197796547245712172362521467100765750572529484608398613961605013288887701977301114884659424102757306184027446160132983165756154107658650167426846805000806177585205341998829374747823984881021894835150534941498860255867018592785035823950540481697486172395037885847883891029252310272513151255864977601345059347048580960239723877474712189208215128038581088238411358649145090650342373396271061658478588428140388421518405042437115209586868409236574895347680277249247383255756152875817622053932094486563934874721507053434964597755992055795985130554693636469437430931658583385627795868403624261959130771263054727249160043413973781494439283621310318344512723886409692693017551434489533138967874368579419930206432739415738658646279192702088726877122571746951610460696378890847396311449146250280734022885531992724865729228491318715761617112387387784818111421736009839266876116297623859989097002054887658720957972349990617998601194673090952865534477004850242024547111566315616432141257905379161157887936376797953960882169576888690857572805809494821016789335294662508767923795264984497403731771995781048252569971761321904887590197046631140322118774499784808900998776224462713869464484783812611390271126785007322656526432634638334372106097821370153033668289523461154469838554171089091490963542026757364478703189219774370442830112368188648302668468518419394245921736997866166941157984020807204635195663404344249356637955273806375475307819422525013536341053679828065825816210776539567857665001923613546028223713943131840742107342592352252595220676390265520026042060552686293196847479577545793765427918573615523597571984882363325334053825259563519992005562176532198155660662696685414110771115537759851257356029015448695450750046033961515700058650698840602886572375724034894129215060057205801582599605085796377746931393706776444006312956544930392902241991324192115443595981440649120859793309167410652705674389095828175749109232709361306051219220719538579605183216933768933326994540956199731228720171117061276435682389142472483508044487931114629512741739094636103010422016666984191781080214475648144127540760663666896502790289814564949943594146108042096977443926261615077732346154704659651227803881975225394086438256887688437168461698899802968784282845782785341255252989557098203578879625209948466470630203611785424100010372907890325213238485502917168200655028308207260547014457826072129024539570810301287689662188087316805832833021991886959139809576255275530087535503137149905380869334381043324832553826872806545033121636714584087415015915584157409847302446784959684879561915029845192305907690157472440943910878250538179821866415943898290078771259819956280194336629040523428720814661115879101045479123825380044488373652969682067535807745842256685454019692534393719761593393235125370659263118718768627220836768405098552093303560573606445482670692912933872781144970406888141428677483858093465314027914436525301253958965053283073086145984326005863913780055118684823990205805319540860669536498305842323263458026527230711614421262721728413797804618032452553873908821741627447586612066919004358957638198185041034629390051300661406940829013359614011866987602495003900013875421823320428596183185933020336411365661148767849471688792080375721809776362709649931952747719985651087466062859222274774115789603428815638025534403022001657361317852539881758988139283933998540482296933541671738100973844379139426398573674504999299920430289445741418682842515709371658108013346554796683582502462693370336191103339815733491669211137522043072129296512178900257910181022384203529828895279943281381023197431151176599746863995894346663912172338853370639442177983395117303611713713102402030457855472264913408104153710210059498977748292719353455112491282979473631496844893183453222246623428254843081296856720711990693479035472685553402363743553924235697012312852533060319795330322664516201926351070682279982044983163280375334302731871919088035875304294385030848312792877194568799405330030487236679190128798185099529550910606412339149391305116780534192673750431815923587595390742503437071121988739606019005445571958639355881992715551008746032847675916537839235430899659860768795395448662440312547361742876487277752750275074757370905224150956015839170479765068381406369588956955177466427799894917922676695611503158622501421512464210410002458576017622488608993019565208435379503993867696673943144909861809327820561581331713999410901944621507744458719504933916822106650261135050815190801702607470940438442288712139299170725839821444232610756556381743878200086066443505178498035850730748728083906523880222714577404873278480254767862059397960652664220028968999243432187769631623590090552714091034773996169150007090080646474754123624128396697937505610899226648213167473435699488200439611116102287844510192858305971742691226599886293409375519158378459650262583388673811060470211392572730429466152646941116083668195927352486615637658649359330752604724888098038691614114493561373032717555073455592590912499114289901720323580964914680824484064262956440844150089438566832196926325060523372083099855078507135516565255281388500410547168777615241843285177914189718766123328674569831116722829989808008432625209472873437422316953133555304129208100740730384539771016960050988842324847994926317843703849389119399708486194888005479434185234783698066107097778060604669575134898809112193190261057656325064018980811532342670380316102533949125977785140242758724794277097845873540640165236675616955556125397771103160493250647581499352337390715387731407969527120972572108500296955840761974227155288063229375262516393758497286212965149961309545509817578660382159041932384879365366861258566345098872467268005851644375216554280677669698105519930470812167092312798973116971761710479450233932429822432163088834345054061984848723671122406714372432360108107587347722587348912063743530279985000758268455715952493471838100635660475866203666162124642582258838522830326209731639937663019762087395603913016386578488672350811262233991963587325314031356611385043124285933271688396184656665857566407863130661567501316493231849226364815070022899140723517469834474196700579942820663736994910482338508781355094706966892097275234232089148358331094962137790210383292187176094335394236971738594587850193006994108222683762491460803751203391723004194309650349452975882841873080293257767649741470414846627973475974478334009162699571680684968433419248390952990997299318897612771600303033631873500134464946465454058696555656444082748495750177428428858172606367888813025071098108871380664195143728261695093344258545510714335677426598169700319296815822684269242662973137878992776458870766115726915195060673591386237690626490422092537660446029826312708260896021978586127142284030162636159382814987453006970308502545142486157088845981226878263440174195092430663203488940660701903257073350745094700877325544404177421669961458223797140667891964262605920471319377916872169452206341783938897358784726007193731648255570774468797414095561834026241372550542082215100620048163047224650235564853372013755538496942739798121876143554063659077687530813918560409272396708639358507069926519557429653019841669091000400011934116464500680248466863352645430061120386079309924836947703280515411046139178611206806969520150104623747118018956798480353896531967976567233499850848796274095724706306141346552260593544548977165500068323576063847558267425878116888361098731648997142105136058435347839442686490419267789309821475674716277333481302889937851617653304365050210916834470330720573072723667697577225124829624304543463905019577192272403755301693155534162829216392817913665030315458463045817797265448520789129808855875298773850951318728894723595796910672659410436868791861872609677108812606560919605467181198335839928229231273109861186717951812528955702522113710781832125186714160711269112212699133772926844604044714853597783892817634639459687651567490888992586768974555228896431723017465428991469898510093937973396787588972426927413890962695364772365960466477597647003932545696075823747439909805587165689716795226240569660707502084106544635111434214040355402195451734449666019027922509701064146925226086596866862946222790597656017946232095444769964474828030720729394766334369586214735755423422058668978980237025095433527301738775706744266574141196792239307059958767812098767964488150803173499002680049356618182562119003820074069991322485505833374025376535894993040851409600993654447142437342142583023074935058136448133951553794983101711269470948181165604737515330969121454701342819198817175270335340872912622201563555301748061415744519146500711656067158957744507519063230323360870149378203267695842479650873912212917968031363983868440503286955708678919866915383921923132730506161120348458812795280617745963912374513003707279079273070800950173653964096445266684036150937271496904567587487715301128529995869198403797744823389973718146929316705221517090703286722693071442575160086808116459418448671664186010813335428578193021710789697295121945901041909255843735801368154301107865986440096361719324912162674545784022731941820472874298085745946617472805544084859590367349636116318701924284391879579383893277347738731717179565142310233961299956147235481742068499585992212150889536989726244652611211411466246327968397450066137138479896361882270128819149825322284087689653960698196142759510395524397721996410326202660964522186476394796494762797282475736497378975495168907994162865942513003429869052076684821569244897115546858801688842488386631112326394288994716160676510739635802671374289578669855040826578893203836737143717955491178010087622174394039183567669089281960975271322452932220590499765204846712426162375582616212523632291676694998557042217924184262184748030675151563831438055881921518545562705491459061040229222815412741080582485865891373530841762086531838352830684972286644220276639302813653354753381056923489017930784239998156070792652255125197736521600074043658374172361621178999952612635970331514912331526997642281148169889627384101454962734922159961812489674997254639150827218166874501946674116231969350990520973378684339427493952549839777848478089977328559687848717570049578069268522184601644478499574495462792391136412445285026110994396400941565374367289957647807627104653086151266079068695044835619133793390193185242464197854014249134870946792766883958764428300644409047777244699060661632186169095152849984358895924987358331941320671811833499909610514810566387853752500820056059987452181576589057547048524207999965410470022878286697267039009151026047077750217302189306950963971444120892753378897382913446167664489644514279365779044572937660310829603791227791118367898179368171998110917237382108560063052304749109988782576288505857511863095563766405579000734603631025084978207713848552286321669778036129321421928827468953168600286229230513027297481238144486701154914423356047191918005116687650544635748161923793933465394966356705280858513317044547874758864537696784693564752657875217324945231034764789513746511105342446138390410076940131048323717313264471624945108881184242611677286083570339136983939561592693062039720180996334185437373394198412815434575199017322497494422819193614961831266111502054640633485011004344795124467994492247508091995514650359450484216489283480208790491089574541315308109318522954315050298575267555470108172291788897197024925356851728766387509009788663910145296532548923137551422498627273932265800944684338664737862173087423480433257732751887497093051934445484113546953845700250559413039042423713753264801702008013733401918311325433752316809853322448187906063281890493965579304446295502959875180148454088627460107037138487572143639274573470797354863094792860297428017691666717568204037069603630814283345000153898271284182227618482695342458060563336814190940633626607543680372244390937782275372955169004928696638355944044566134200202166532008791680566480871848411594131055126422209454521548061716392541829060949013164967720421904179608922580773952297066615423766474387994622843789915136351569999735454713800273875715033810025454631114851162710908127791087742748522582667762327940560095751181202946236464487331319707385042115778857164132353054248346162906440738043709235032556061044221834839814852676510522819336297888583263966430817480553376244567654705136741415864442769055207084038721967175414987621639360813251361158860762764634973782781596219701241092789242841187986978623003029218098359825070923208437680232700309116543636849638371689303542268001659703014552780661665937771209032755911087985780134800072279376720857739991787862465444603357194961118040441378928971449642603706821565052629436462550234799841844119473252575509574500889241529960889715702344512301056345301750688557284638440013691179007875068477451648524037778740804101862171897202445728660856647663318155381084398477100732824460233647053046818435852069760462551399997574501820171058777770943654486327847419834002011782845908417067952707821619131046533930987181313461239026348166118763979286448452712532088774639792555827963293179330388445662236436130002865839617016712445823221671740381040209932445765835758794886986562466680716047336846816890613041648351789796452379980710092210885842437272609153831669768597133792182943660710829383153286264302834813994858939999112373505303047738697188617773221606693881233138849318748261847578386969340537622570584666125306098698957695540901788731961809611529295386391791330569548004749211456357626313373751664960424380766961975044637741145737319525884080084076941260417090036055176406165888332998062977046299124517549195721538782266936388122943225626823314371764482210679522027778070908803509780969277105505469161432887319403780805361605736429401088234565558127952842356573092890733034100319748955748387087662099015483909102415603359390637985920114261329174194156595700980431399130318000010151241951919290646003955930092387849175066475803830145545481705071678088943512565510520546241823651857448201518617344060890784559583319207955689317931946025355753605311020118786841137125009149734810496761700896463643523146825261049757992314664972579521122030142367825447571111403032604714832538076845141763825249551674292412171331808220249488784821631518076436489716889153868696836016808652873528038804081846556431373397928389901308843624657885140773178587881552828732129906269985228542120071239183701290295451210403477180570496263479181925566812858099640742861413009876859194815969247946407776312190754334347813819901423520627388655042684374000715712572507831445705620008389161313229263546094409986955331010756864283528800872282911995622543262284802683153239276344017123832604125738910829298220020005119340642127162895749831006366999129199855751969756347037544246271883063135948953432819651160848937694333183364350776670311409307840145077720019828817899183309033146413965013743158689408592233812688317085351200822595302916140810832739014891102792071724223660201699772210725436407177311502936002109414166035593028277177606601475958918365548219682647795415896317464613180114409465855994193103903463000135375810743377539885105276302051998839047345606400140539385180153084880784718541258666403119790808281615887483267210814187342580796758725498690364418551316566635027824648895129845765331416065472793236499614336632585092769718276095903141610786710811450652377046669058662562505690792170759117429243461688767293841834348813644148629460374694937435567682628522486418757862383679233168794448887251504368386456638676631836890592530513780640337779618591705424530392173432488161077711502103832150218125076553487957336564145792755453458156667076949689609555788729565348450430452799572405967619435116374119471473848564300732995682661512721752061228143405101682605100293968380610284499395938125497685653857805871372578360735589554976190410589034986943032967452187481583431381743774749948471906890240338577985038970212571334812882635516967551409134488687154331002166773626616869639534571692856732520878539059440298867749808957140911574445980104137090498377914381728044479110463551027803777952838856618763307292430924213169453428036471131905128678252519999335559290632681052229214888822647496249871051304211780815078379970756611412849251779360685859840242552946715801035318786904301311746839174459843865063878031980795165089012846691233559574551889811020312456165990656920431118811269191189774805712025187783247824552442260045645442250360709773132693731116136566448084706048522639294899079615869482430683516527189398409509400266079517646591731283507376577446388991077879581059967937944726884560112622541554759227544883430131754929278076376452572784263200947030561968852463983473275103212496584524033068794288530230347363386836047626981170889543694722230684989548310802716036852190862496500957793590980471024057091880499389982718713383414721082303660695494162637525695983336482193329842545625101962148280114564562879696325509528185997533006650239059515334184455075939076127629661051893898394553822810894648481365237111048959454452968530922979907917276459265520306420561795920350133988189059142638834483053100999649799297443428937899201218861530730437903775187318468990049837745962089834165552731438974334910650549476688573711521182020050734500871683637622617327832730341391172995534887376794685221387861789214565536017887435502508881904026753074597268880536729673265252060511194960815087418966331191456897553107502621677863436678838261768202302603747670215745968003815709357136364245340092813297187037057640724546217269121855812206028875735072511612127162847601017381455765143852041731898946726694408246421951367686958336073735726704065168315683208924640630380135153118574986855840144393131190515003655612141035372616209653523342206411216014825977244283845795668587359106037547272366388621457986440191065623641481042007192762501755000516531598579763344212967429492866816561858984657914810371675326174409198913639818631301207955912138928434212483143866003476726062357920347664811979999397771577725998825488338913568868779659540354848194890492369556232444870281972637194445866300915693456293385507348872154990040176587184930651381756590671292998582287866168055197534053582824547298363249907367589897524716003629735429991781800366865204194750526335481743983408083789808695428902533771274193579096310199435323981988760284272988045571398996124619133572647272646848907862598677157823509672578350948854244417144493343749223560774747669009649996067438696555724063937915763478751786539809733838362428898401684583848708422904047370214058188595818723086341244585242420922627423254585918610779505793343901487212411385264994594954306962553839124406454567504824987709418314582768826927546542608904563004785786500017388779919205127308164681681854169691937067705124580817181362636774676506299907833180951385936738646957538106517591077756807381051501731547410232832849344219049468715772121364548972575674451274577649846440562211757297680561096587903989025229275545152701264262401992801359119380973834234425478623308662816483230986536486762726440260111493804032451504377882196549354841592583107088312304423804990717073880438710101465077891329314053055023206150485672473247236060039267326250442201074295407986214564591663558856952409869848552494360059533605019236252437319122307902209997164097600135003362956181632350020369559057740897061199442460636160253776880975393667768099506014270770584617879762112378237752114617265860208337770856708388074128839423213048148891102442634442338666000262117900284413158984557982793284578490395477528241813927008889879891154629919516224707454762516761556009724208109689009110611008159801899523211244537863366160649010833804729956884419898167898503344568088242297495030591091417007853341306120196959739066594186795550275128859415363793818227410744069853132357650619936893751388745257733790543789288916655275461058736871263569160287263275189441804291097142680911042001375095055621928642853138365335744221736967631498105801211363086677177433601424007791128582136293202367958513609080888410826844490467790271908820097826139438420820255709053263826354246763647882907525714673038487210528889888223279191834663975342525331128072970861015982637854428194806269827689307973263153001272373163543467687159637835999135147302508450264524168116143202040457254214793450217060428818485099894663503710868162580361000386875173762366281207073855615387363367025451721543731473059215314409321624609949443286372759888194825616021928608594774801747402952505145642642259725675068420411501222917890835165931618801690101015558288645403933714264335656879212040572721419640540902612119354305466411465117172617239193244848129523381782648715395725249071029241682998786833837037937820842237177779714108525299102706775261682648755959595723823028304880526672456715405978262165517609805911072056115429752642392418990178268427810980103070936160043472530224011089723950178630452692521850230794685709304762668409779459183320326884344080916638763381235403939277279868677754852660497428033881662114222558939260127575813637915577260540322530367239638203486011496161842182213449975751876270241698848113032725265470991554307755355167751622419506454291981354798154209956294832235993220433566905417606827252741337910774790189171491798402445450996483155490448567303854416156937678997949167458338875065967940649212238320770190481781525157007740124109788515863899202929928980506027784053950727435748548237780852325784187685110860024946868860628205124779608680950331270488647288549332709243513203968980568669801774668339110165816369052886022124991274532534374339060656751661296389006460655720206363616545768951077015450663032665923303364146430060318391365790214307485312656604334392978555054292817019176048659208719298289106592973233784960431471423650561775609857729413390634458835739671757664014256749468502262468340005602829044250565368753130455989709082085311270268690198168429611000360446668005319963280118260832034912716368895135084800124500678883301024288880556973343513597822668596832864866369307627247261856992957522589867520498281924001519969611730708818819591048261540080537194409927092826439758703963451168915255721886949753381955994969852230791111481492340719721287333081080697608858414929776956404979213597659107503133367629513361162325353742931329446435201238509288219511534201368423388956952731007023202770240663936419003155972059993874519163162687194569042538403798741765083513689732334821527057544673271238009884837680699410340840090668568995620464360268878631963900307591985729298916402848425618405985615975858764639731256372404000049222752014879767383165992535737167920164311557755767955451303111267563340533739069035428795807887642641137803058896320748497268294094012417144222333449724725951974632297990811144999020903713481654643200630529300052963695593023376398580122778801437839689095691946119946232264676636406395340163581608017739145716505102700689356082736016300656660561426225939940668246077839417957784344371064729853408090959884476488791269851026784388167682343928248207283039292055953021161366441512211385958934775493859897279068385580231131420485387723459986229351406788573001587406352613862254246673284021527244717994591530572209204495152861136795811848714526839794196034688374296651625367526678029608316983315684962755864788138227124511454553421188677706386179209911292180394267283673704977934794776640256116695711503291573977665129661931345056284291003595032063179736852947796529156754053170841189360710403089533210460623802405067111200424084345067128209852547231551602851339558936264373674771003892437751210069349423218430492685804366596226400654994837442864478488803391998824677117232387680016787971930234746908057957711375047343609958277658294038575314409323780542874614699531966140752972275556151879187465684951867724540043569208293232631779254280819222015520201642299671255658814131510013573909442238162025954222215549553720426332359313459193310584736316252926338954528125790372973314039921351889323535979173987061575415262398034908613504972083663728215897176328029344785647416613744369440975163371650857008394420242186306867681494957505097654605851046733596364038035691485232360094406116905241761798421374086654889135900922045737502065687182399919315699177267135627050521923152728719952864580447604995824221001429324885598387058676079693860303489728623312138274348463251969004524666929940813425438771418979259154447177381031732480660489028675286575440016994990741532481991228939554224571400860631953158373012880985290336245544948342125762640992910149394224271004640868529858838821405710142581305201949738186358589567543620498080098777754780235522872474373653329903150692742301859063949032085060206334735600134387250072702381337102745105353019484808667837871243250284821439498404459742626921424435875121488110013126836067172042531791127830166784546324191339737019178100753826339952806462674452506322225478412344754790155635285466862707500435465267396589196888751747247211155608246178694083619533484922301539440824610845457828502896347496501149737408284184887617042880353611080940391889337940973753074459355263335087941751274394740292311209912112412093655457814273424474984086691716013100013552654632906062579736936630990041486367671712124981787938186403217196618013823918049594405818560926158626298883620904375794463834536891408202339439701556672942799981550542943583489803198076518065365963343109972203271615269410457766535164435795676602266756977558647146551575948471776530985935786792125461583992005875847807936329104009759979704025084783824481287592140173380523643844833138898841074980791021591123214854237096959946304812412572482791600383134915939324814639302602325460942261314250541996384349420337302287150356276353058344507281302790803065469219679135858407462803453671643907285811939830527432212436432762107170391964805962647509413377795704436439473957409467867448652902107583065082847811693440753329919013566762036255667087153335255928177346168749593011417965584064930809253202577560447805769378103018729578868180622131406639054731495185335533433445079093117981161165674289799497759466452993501972405520917562020058704746817323757468155025467720594031494530742283310877897867711827061052931342728576058762845822860260862914823526633917397481731802519590029747983783838921739170794518609423681836632694728204646542293499840563621396870346216113356509353898345453672059467394734117586668848580555671580899111060337583727249525083042027272056472235280258118170236841302353580385177299076816371620515795220727364353107369320603527115166303760569676783009042427446944138248364697683008926244254843075756639519779434100965058793550761233272769385280607247914549671501678857572233727781123797662860936595077551870206401588106019136077558242994317450149473450657175366065546758737274281462466640944643970081588239559994796564155384152925830008387649915532728473865838719025316371762873055485834560755001620658898573595598216388104984550986920508201771880094121760144712188099425186552869765959751662053546734382758663668283470921168712754819570220554811632279462115249197489950362315748287691722419228962118279748043702249134613016841506125985614503516146606985829444588829882837180690899629586140653074939883342838377083490563215522194581927435027959411119042249781611725753111648603864331444738746586386350587523488922177179273448020207696569028418287382292801902574720685859079564108427437342830643777554870522631124389578470554626265567182401639136129352996756475163011603477521075029823781053842495223094959366361644068718181098031025082410313706743659160937313692050714803086768388061590294087882102416384652445921106425284573577806833532898015120888074931092512616984636778330889030435690028163237384692740343076678601561699004044963441757215409052024424292574373591808025107519421576538959020729657771168014230976247671033542323414450319121908518403706444615525468342153033828993258641667101488545201067249055211199083423048896580978629803291741685872948179165207313339808391473349740386084695400136316157788635666551810693333092520389371155813476883351473991660166755737842444620466565697731826731756726471578165245787314869167293634908206116599103164300123640732532707745357024912629215615528433029825059543816498439265040303113882282125682472768058506635402104593896754694964325134301726182453763058893666139597527069358436154587004043085707688909198675656306204433453183045060927345097429330514400477215560175687489921200103711725390505870877820338732057928250948509237850239390644007451783174196481273258226966012173815198488229217211362193426566693491043234585952507902975631047158379858932314732137205298433446937060380369097862866014194074417250374648520240820370449880345672282171823054150307695147363764268424938418779267873906539616147098573180969897464397530358511725212913756647734162321600756835820379501129343793267911841591832248328674885802628912378145119587941418295344085553536812423171383912072660807581937815291516106105480418030473533033127495643005302536563279456024040256449833063879651560732655468177256373879276152113945302102816263993636608337065973647419048730264692369962919555815415812001115101790532008859726871198234044298326094155498947098843105864726116327592204447491026650297155795192561421388996524736748841433478071183769112871109863471008168857513036210227824045406481848503851453600389871739138366934054994259553833092564813881837720229146786998784094143991230090013125430787347830518047447907191900620263654089969034017648950699062869954128887409310618899988028747724451366939335952058485664977525548620498199930593197630445824725964252961380443121980547243116805458048527669150081931442304870470357461345256961994968249626336560602269769655899008451756049875179190208160076037330915892527257361821051874611157685375745896392761609301933718858575669771773203836260531594978815110033616469076179417799909190724285187162569926745880577371245388166366871711930111154025584040841109879858215410983202355654709763930426875344313901045445454611702036982737739688042660169343519540294673840527386079876260925052641811385437146200782260361975866841225434183994454270366263951557332218215258370540972354968548963980887648010997913121416986584256282951205184240598121928539688191859236347561559974596074143332722637298853102228715931234467203474488947825177131393714176215128944496906974045671784865250486609035864769948818380445352638733117583536787480347027431219320464282901675551031369835505219398173587461627762170090008605455971284768797616633262661729849900618638409286362530489592331545250299842930860993049270331461216207182443184028635631074965207454847956288839846074254354962596660616312972863835559502947837549818585898049371694007072473520295786200312312479187720036289175009312387506960990045122231945525020377095755752854942605270475381281844463071465750896595246717504254798369262469960092955726164693995499940177978657017471938485407546376493836732765244387774912329469162642657390114650636096642525460538169229185383009039239994903408378242659250472495822437946535652802903475682356829011570483551873076696066363281402270193436506726396786922191654915480555379054979463708470831785360123244138070522430214993317154620030769679874889181841731440943690078488923181846056052992699565947295253519253326134425957675389697083657027267062438227886334265625133108518094730003156911193377065004758397123907934411179268448425889925815234325434383423500881667838156823371003707847923819446621498505630381606282172155168793952222763514337632719085098877877057670813880688911569150744700998130618191376361139124152510180349753040769890921949736549187604610700771548339189662596948796763389718024422418774513855018551910732488354884180673320191310715715135357161696378142672405393998960173033415863027189177645530197873942736988750287431996853593590715292607762813608449073414008971366349127481858098151309709667725904112876785347911444221242102297892153681509745579236280616036524097424793122233738772967736823015008521055698706916528860279233793329056570739972522377009619368330335651855805324231889741650763154325878968236532807405602150242511857261185910671187419879983684409590175910360104628879828125613739613699040122370464364471776896243519060057145769795954137059590538858924171667461950468693984741503952069091824460380433828253923981395504170200936781759769038109834237816050433244824020075996896465225738154300473180201152854206260264430724164333931444643499668910143313416828471286516219786605112749807305393580372646036341965600186090115379397386293953135005812572759129767774478457013505987884818972643983436634310328327909676097565946754944382615009792701180742919545194264543173142496396227763230768243623433817637735560745460399210066646504996117565746739565717672378959945442099704033015619046236418154420750063906817334184008528255447997057833128256476123176972845619375720353310404712320121121721871084204789386907902405723325716539794847878193644642887609189520631893145371088294724055548475249225762404696595053875490844957582479343772066863048694903552409136873756586127255261406884772023807126060488715530285666090715853476800513232720705319662883461764077315752757663743466964414887095056524286286340678736958175809489494252676467603529823095059335599071181958060918088002889200055343757235418318297726311427810499547319344458226079336335261061252765313097191487935599087995417592705899565101089327616494131013195060414428542685897607641782276489507670257618125612971840487738377036217236490009262184371295946283351831251903873732310001777474832511841745727339435488484905946809910404977995498605415893042774559718790259104705840404921264722053082160938470216684749250347967700008691673081877933062807240299080086784532206187258029822470141307484583906320176481389376319992855993538609622489061985333597988979525596167128748225465118940441351055930548800468264717158546037161767243926565088132372941363294369713573227153816113766393761666188022320777090872666719169886196058626746329408729857278939551570941872689870939327280492131521284507018620830583756395967407534320684151931803802605573721867647866658395152793221033743736238525660851081272593982490920937465698692176590551289833362955340364375593822701758045102119188111562113721289726422395822777006603703644159588549981454914178575366439599124374959440187927060544048766601208218502798642808655698234190987055369973593893451199293458676511166915403503976154497246706800320460411563436424628414151698876220270308190422917641157768803874171349407902664064862540330950864702589571025810827589891418208405049061445241144318702286388455953325707753989131711858722075433357038958967988052840042477200599021132190932309519089792356710482220293378966448927747616713116447804700015794639782827585024283922035545855306457181051011899062311023817516181123775496230924016164723078407439770002699980252519445751677587747690299078951772173504742500964848584294699375438489895373725522940896231077396333651683679185137463406760859645458554356565861349916534508478321528754784069940659304339272919744702663285035422511926781909692432670279273410024530363749058881652941221909823760109429602864178130569096089989329668609428932062599966324835778727596364011991942752061802706997722398288775841733292509349027602340913603544112807255157840179955327155639174029755687395004954496042200674080264584486097544633066522504616774172661271321332457612372257373477009465911772566340815213030128944615419559512225976804847058332474605629238377666297813883091379992927533128978991116056157670976991165918588994883824278144600466242298355359497648275872294937676549986741293022580768755855923608867131464326129643304622687369217843123760946335947748878437722881185100315886160953996302580427407120769709044656537906318489106506759725000220631902278693823236701892588666434661650923864946184185017992094680152746264198599792208016304918279652529226665037611442897814917195326990551973952048869355538541908180283719373771374930953790259280309921129335232959588045623822141597200998082520271888670869088082164244146495191631810117421405336951161924797990980651645318338777723603252232631236685794722657688358146167327406045543305150133926597038751720587032557314062478408436068282205767718712336508845400413065832476790260568042014691795282262690673919219670783569975200394373049960120502321247575844085277004766489328357315195393895058234413759469594493302852100966464812520614993000005416515434403816671037935470150664412113160991829983423214910925059038812158042381383894142875789750076994007087960747254905715168035166733841180559914106658974810938826758667228184825163541009223317235527125099086027585403174126006592696421127863346470458069275907041703475548097519403645377097417115901697178605426559838690375649224595262570956811370224675189070183769177558925916454321890002942051418597401356584694394752592235006081414644210580897068814498396220993901248290105599795022524134209223411938025324003419037884765079820763382989001468044598257654730384139372033183220153753383124496694740877033360754292950700585826719286520110856518165557148671409479619426649689307792939180938625158367350560596151569591677719504788733945269231632914654543307355103896110294267908898049327722065306313607982033146497787290467259318750910387626193680818117254321064155293120065659258027478759807272139057120354898002943707893051775208546373559728114020538298709513644845898596325036471976638168999054236376360631082114279798328755106312772297052668843015851631291635400883264687764826583870801418198246631311434532938170987944369777786086232901573228456995485248351091670554610952822532093283410256412458911903280580954874928392651205452367950292699771990661339700759369795233631377933070682462107135477561980303129010219554216629669072264020558479079356478906684542231866754722471081634927202257409682743833416041290696074094473293986777333223691118396314896700918201103995909703526825855566514549248075766302680718301687908572499010723321608927866190714511385269381885977294572908250694729820129984350255232356110398068133425640164617017465345407043180143231532651142721553595510754176113232219563074766307160429150750565254029823781610878330315477242225025922563858483860491441274091872465917184214413206955966090181391670903878572535216356157958413473500403000650203150743829742293557810294931442229844162310413608388134370398914254574246320241677236602254749206065411278602307871335967894689999886144559938033081121733589550033861194658823579822474215727338350791278247286123772149968618218723313159854651786996801071613248762498705146425770287978540259860864700047147370907412403976563211983400540506065305108876062210624965664311955021004515514888852162592100874583957155830738354792496927676499119893376949889498938081907663196120311665849546651014502088964971384902854075027169393256157307047569914052164426162077274008926253108932948876085010386182439411369980109971432676351979266441739124635515611920849440157878819579131304736493875999200842305971300988077326034546401722869468719411672793141228211924160744665909886597139005856978620174330368435989131975627474255875133662439531302768342280187790748958075351865489224331527206578261789475041876362990213865039631583828087402641672193723511078349722502997975683725313590033199799885762662988126613141076449742797106879915221785441100944229107411570809129451931185161634050937834005963976816681838968867372386909647513741291307273921808524845967208350798979168878767190249809937781353750851826477780379911746415927756105491692048604360936781061623387966993252148102401795904497889537566558050883489125811112048117413892737917004076157125864049471719167947263222861890140740877349005500513768042818200392281184373596480377224662980024675031254610329941856055993401925183444499680240135803711256810081159326303093138113724014960970927439932971771196133998555042988042680491954684320812478861951288902288470319948533948317289291066646583307556235860613744435888001064600175126118658736678309089184877972845936747315779894939357684010016765945106995665435851439129004236796937939187573442484967527664416297033445425746197097438304534867429023354263201074031732203429340031886735598656406597315873384493490996428139298595466321210804887403348027076002302606350656080826212191602138347141650430288348117582687184094301856588019902142116337353410700725686149566280225122686458970706716951283577492200208392581775874697671644467501026932762487015220463519143470313442763015592073735849179025246469504436447598436848860636781457428974596227024131249463632633538179051009473100681484489178946377775331061370173441885494354420065506229286653300061377591879906747778163911354003344910392348554373792939860150992649987140885829574531309369310307033951250753977559557125983961100407003362371087603168101148017101948415267658392839317332348833782696305810055108336992490647912357464883693606203328174348594745584400513339785239892948364953630368660740198179340580681066942667829836547410364860173639776384956964730445400354548000361498474162334275363903607004415775842714096401836461417709084575389112140115338092268795952240577087082883545206387020995882210345883823445521954888749519742183481739643409015213080430499857130105780691960391545918689374369470686695837469635893850811382680790778841535737140765042678699359486786374520314830872919831248184891508403760046398695560809335716012418546330593136184741996415736314941202707137008379147040376207052328268956872733845075953508517705056366585779200185313161014371599724555963234852488320657086396379674880765408591486835108229054338360318776783656244211585316549204663939296580999294876856906805243469137032837014920804050189068915120165414825219892698031137164280844271625593380127861607558150146710588315495894042115265123036197823534049487672325971730899922189123594231352340154555101485719221929097988413511076908017683405137239956806220157821079338201784915010865918863918197033044819037201605671637846964774671002324469303534953291678922896158615415957390868537576790660944822820111753775960821614876897808280831452334008650813545122509309220268656535662057229653249062470763134629723068036875617519823195821002900695367013221815441975530359327972599038372545430489956497593847972586657222857723601730504719497937338341748988768267236415010189315370791323829142025131023008340544590412353906583842355278332054462044690977307644595210910172693278712422882157900615916274286317736870858286468007964239165797493875956500821970751672174033202194536771210006064783666115524153947550889145447987640704458765426483827080207407753710168685493449661377847026182150843174568800752161772622715017123897657220850448843040105618648750984512896072506153133040678504285523200870882969890542050446747695340896318438303536749672845268019505792170695193662102941603118693516540013913884954402885502815875928190888809023484522869714054201280181809310670815074671111682354386576845843964138859060765526664082652500463824193126422665045231071885164165481049678528911619986296915149433683367824465940784002452193965091745026440004259911068472486273762291645559616388819738576513133109631156463154747915756517906674806318950618474734907878849580640936725799642434509779541740971500890664332412222662991763242365888118225281056250960896500852773074655696634938721725631568230580077320294088495930907447561579286980173944115038666250103907992740277911149637124119906100974810328689111485228625085922877496348947786200551314734709814162249382663488559109554883392485239146445469277156955980347030902668768627852724961585577769451836004143361924562939327791800420659013226170491361265096274184300452905676934416964610437391505235411262585876224448090920182426360313986349680617940970875368499216830718331462558573591386164306403310647050525096398194516992171661645481003791494852667617433295356027729396520828921123403639113411400767032382995541771309285303381464864327520201393291119749356829398240727520536423650690731310185641226097505567948239038794964217919024489743823840055164050303643103916700199066604809226009978911699300286856017931900442247012707732647630008976419882285426654486066520246189261761480671209508468062751925049655043058538252166559316884625219894985886344772250675634257206145048161507273103955675556866514296581257583508711379939600467847209931679723652849709620207615860199216692224413601378155173858039228279049297118273140324624014742207099645242725228740782997244488163995942604977306280420792488252322405647678599806399047919379227191132606103100529031231893992900482749327350500707656561450965815438960636524372943854565681182405003603916076920254476381127336843566493680254993519391705932434292314450760742609433414887120362078761053512298450884996229721481988683725591272571160299501980749097518335651230321565221752508681979771368645943957322126521765852988568131190504020691636473977353794759490413778460941721811046995004934967528880733846099980129211287537277130043481752689479076671469561091886199783528988314048806744298413855550907099559615512150962740602746410576760365142254260090890134096986510446364173325189233024616149146138162866751731693779074620789231150197593330140189466509533262451333494041769155845013591681013462451419395686146561847403463648445202301554969624588125534762147121097674941502963337344788782086238308891142941280560920397133197041926946354333618357197430116089093674086919286893511549082741714704821023627821406557210965416624664536369413918431488160610367730138445016977987894270812607975825666153120817667309896728181158445121504828962138448222278191572897379515073830691166117925978179146302429259819819579243888972333388341067897179639724880964948605961304866673392760395336183137974278869034679629460494114698391076140948552503153663264100143272186741982026992657244447289800663618099122677975408761693379860856200709455507453630590216697999942137690499536088727536859550817556021429213172415511629237181681167858513890387588853237473619539161219567930119856995950996502029771806517381577124441464483521185325855640411835532771924264735979488529813517678458022258317502717261159876708207994045863790384707849439919698801403192577420505196102847367923458040919400357989745412616042421254887725380495020886692674897245726969322815672702927932064317405145724461385200585201307099868155431343149456302383503310140244130761686688849781609318328143823021988100594207836700793972227655929265030101142796323560296163624438900919561176977533872225460643782376115483338404535164587725440179815689241487279264023658701404185131959746960384486025853418156414027314641783002355061706723076651660170558212740663207009542964439630983001075987906540334374801696626687926482240787538738303222118548108583019674105709738576946233969856230128541102506123498504933195571550288896219050009133286618229842436869251408591215385660854097284300362267986779788260268717862405555609993349204243327020887990420559897476236723271370084803788027404170254828878759720460384678619472560848829789093414356154188194832969584292945332332091125957456233447575775827429035688187579189387520707353730338322168943055521032168584021322383020507114358164229573340761411430094334780227077275164912222494099271930069619566659156386743536282226403319060945061908392668474946994014352475549619822889511186367022972451926793431890920982649662837120747414512680034538657325621383720602418604701233929999779310272584578412743091941814337180300372407166436355076850359906139885314702743594517938686617660098601488583416352203644534022856800020911505976448668272908219556011548649827885629966230984782239582483503434664279984087848875492576859529206092808336322230177728951228264752108693099494640326847916675618377767329340043371754918891667374676595255179850788778933275354408243104768612486958648014947166636226595137536515453255592859790387004672647020758364314140577569448746819627194911206642098588139119543141771533410301675628456724443244334083588185072281071190063946415384173966676028489616663292552149655049313752260083496469553081194325759010385782414505233548729551996429694748920536650538451692359975736953114330122461036698707032244585847815108869317346279111501916886941018998165893637467582440844563753225313397315296425171399064594020642387187446852007186253839321190546613275689700923737548691162666147727382983867622237905659410175863024980457216460506646298841278410905890348720807093063131161213480990785071178824119390009197394153114430785606047718610791485727129938904656283530931056744347350778684028021219212516479250065128158009401974706756880662639496178342213135553416909950900963656742976294204693032810312401994287341777248233181749060889208869538862428584586277149474654348533908704625775631578335864103449071517120385063765158761053730127097666600855575778629920288517600484871555661671803824636833452944330122230132071616338884895625251122747244623737198811392687248248087225693500366604803442281540174742606405552845139639339612397161447789328565950379177494058358463107566886745490811010285396034417404787934668278189453649599047546819551055730016545716397243402738133306955292867755508264743936912501403535933461370467925479340124086531456202628397900798295404649484515621307476589478036182916936222917425442172792309728130205598955895891491762728948569106843483210638389429998779933388640628786748146942317810424337491131008442692076713591026390869027737421763354578051586987127491210571946352130662465878113385488818239943902534493573865381898277809750559375731054817343989826706247852925031976371202511813144626573115540115797872607179417874947085796424064052098393597424067652571335565319829154685459488313502329416539552998712486919329525079757569900241317684095961500549348723993850353364868438931994031312954347119343587394889061036711268512335952806274836849936850900365842653645811007103276680029711693473236303672650374311946543487465230261383908449652077223948296674533188745426520832868757169945013163831439074338075550882734606233372594656334245770742164768597419339730125350695808372990807245145493982897712776466894127313241868773445769982957593952302428228744945950277949580517199461079458096037064513714412800561644017170123975887815595311912951673956789223220137971373367726607618132180811564963637044230124627408189384323394597552052675210169944308804229773957338349203593199155221895712167895064610253446539729238142958453600248798041059647165466186844022247036513250687018809343678518830774180926861399344934764913126965184239810235376871679794428596904742836819379020200138215855674711639130133223165731769648994627291224296162390678647458756950200388765074608325614145546189240796112873938734462408671412043112827194676371099714532940724595155095216952495451520187187738529190519512293168456600689760643713284341774974406336726211751610276234229750436500991504704926563189431272602996934088655398247100327339106011046819862605132630914996162020043166695898018959216988182980328221428741420003722336670334945448056995982579873408684342960193005839202296051920458351494079714857722585399281507902552491105350480253165799825661253781117312407528289463008227322707066931224532500043985322483271053259607579052551947605192703150495468292852224717032600687650871587402727976024567896240630420965863779071671533300649641427628353077762775948793330672467569389303148218096181817102381576348783797537841019798146361334307756079614943813746024797228333251436617481227547776771250797938234520148512865044781475145401572129140792388199744786031357385545876646539257771742271369806004113422055766072954282425999586505370575839256389607044835059636448188677841106900033422557905255718603140143944358928055100498442868403736803083587540486406517439228742864768453055255523122532229544567235933671341538678461692180537932640380417971164635480303163798208045916892194783546655630250579714035621399243670881132578631646059558113813436443909556919959923248481027812191508276923261697842090893643682444878865558860034800991325117031575618355064299481672212701464986131620985693720969992569717377329363105006356941131579768615860168682070536315145968125088719727530060935214293928384721456790248150115758617408448319973728831682564798697540740429037719570898504483076865446342156493581867497277593230945294669434429906817197989972907104978534389481449945085347536899577018738507256809232218233974235661061277327710687227155768766863324537353213420257010151401812837026255167142439913873624919439134102471400113080209756760183908160933263241408061906390650774350059321569513728328882513458521906107548600793066693546572611222346945214432127354272274067724518210194814546284379109974244028623548260135326272604966620763959749561121940269068299128973078244012769314527530113753834355628033612160468625200060472299824841270435417358674693676357271025514531885138098543900381182164202339415711765558784822690244585484291532326649284251335299055501296780460916192908207339829495477299501248939541843125121373765231515327614624024431502279274330133085941482964727690125288169595251267775422807536541800590986203955867370395141677899419706451884394785935843559628089978908594993839347875877890598148830708172894335036863495463136850920559399569535206483781829713163187592309050235839659829908114016362486421178861221812210755282362879073231991598838405920277701371588634143527658490636994124159115903131331851519820439815189972563239234838836562026551201736722129607333744240385553789582599818557240723525682643332714229046201141600714037843062135013654341719348027481904019238843090331856455962646172551941087525163560127575141615285953459035443411064953707095423063956604054383897179230734316028447269340738924903113589276163061935837514042434342614028528931520231649152725953459980095636330906427148977484130341605664150492268854813440507614580906577653732117401115553924341340511546107692101970131960137709816189267896691573703380117206727977351781191223156681857373311469498373906611068229407037955849870173620707044907587940865574075869441679392265595376492061637756888299874628349482941097699463167391137621825842580973643743085437602114949741078583955821950996315838649879297646627128438138080873550088904989201228638496780459415860155270103172498734835575774780019649794465996137040319163870605913154703447206766456480597207021222896459737295169402676634347343297875121117657442472131405808477737745277325913806795827092845990258731163153460175160380675260271261623923592031754688639480865999529755864856274453343793250347825462308135831177706713934882261426317017919501494835642793793987896353261288708495349489517532592976339301439102924081668316331891592655373168845442941718393045891287276303720968002593966139794479679118401955660455096074972778372018234117033055474327187501895914057943221505261195452384730892416306837867068407736110827953668713689943346971633674333912131075275061380861746003019080441598527388358568160186531012089148728645464941474010401219338679092768973487063980677947939677607655048185845758010617977918275332381995835238736203405809833077684507531385102501846102955450067527324956110994715769038718987919334398300352580234936711296708855969842655507747144085035889745434204316018469194129201277750576241835905327286057531889332020990462964768967194500671127726839942919649948744304598535765494540834682862732132801595996135335913856755586142341182019690320230292366624342513121931536567893573347243313584308147685086232165070238129450350914714250264380066952297700417042482394543916201293668948625338377440753340092653711145850746365501456886076082807054463009382931115340891892656759882141759315792478702930271939591077204755606127784120280295018752142097340272051060251019076769827230384958046040580939634751010697045770277218420720807040312832797109691444189437762870670786421611111979241723396211188249042945841958087320273633430889536161532768773952311510390396583380535905440998517063899694081077413639148343402258279999715096511938524303869750391670640473448334155702238065328699515722594561035500882661786375856916601091422191893109899869830630699582287692557348291900506860614420227059529938477556895759585554456998918148266519971702089588726029711394021888031289766903109101036484403220245877572744491299881354698317903116816820329317031281734168306497811829266651030994205522935130637620714853164327210970781251567509886606546314295017303092608674713697429516269618530942112348521463518293052703255523285797872670566969506368114773664437114049382958327487461262958609217211871782423799088275599658924091457251880970291855790295720596165317824609409358614722388107960701542661756003811167384655995163453022415227577860966694254688324836668836293944866126721493787539695981686871588094585641863716507409192064956287478353536089626748536699061794207249094119243701107754700139986788946620624586243944918390958069561306035428385515656334347250733604406287546718746606218397548322896353060888157350003230042513526847145259804262298341284371447373869782120718729657307206528885233907090374493113359474503677390873050201762626882326428502147333192175081372174878692249179573642493950885746652241968991731276867968460372155095381852964380943704060779624097137997358683255999118412888129313812128726530705896298791094461805284486453591124737049096745153244531914124060655275847683491725971837108007496389459460821801338067132809886904069107607281617542775693456158492079453341628427285744829430107040507654786453860855880211294421221158247894164028603714375739312305025870551673276228984110239790594269121676705531327687518040687691571417481855466491645034237705082504458168191786234357220225249861040315188665429892684126442600625789858088174242253413985420665827784796175622667140974932323152807710101409404353326559024738629598326847200489345260914118704427123680572951997606259182138057053160643994701525608993256742514206775706321006457591138737043491512470143096368435321697196724614500403002851482780686468304811016843406434394959822530629669044621389635792504978631895226409082078627474817372153639911766087109143287854601305986162535575041307204099791853148199545849264422761601174769341885265088443062398772860858679203724194212156732195121277512096908444833209747918190497769362236282497892016259886001969332321133472678247826252382068959621387119813514271061488734395878806302534561958794725765129418259068194546978058560941714468402675877727505318765097917852315676976181427209680555732137333243064873231141740735663031482999320841779038024615514905248865133031052747744350309787177989302485486135071360484503309745969988170637405692074696870758333440705164956353917281218489861248105228205961355980650064286779088753292647506172127607528180233310202937722409688259806484214777850018660199016890028901798271653862850016192276406287019086039366628054472346399469837524445746456097824872668264604261064124306134206679021928481573331907285189203540105624872203102843161868381018541663370475897850969614348374357561181782870945592893967912764495789294392329746498846450794244741490703093478306641558051870203229146453019733252980257391113834356552181834054252890201410643947729436693799532330175029084724431254772452471537230606127227328562633853743394223201215452763705272095016833859483389796674508268704441404847185184840429240902947189802000323563301344490624436367947287358309972846769251502655167541405582730756103193380866651663870386574163650471207881720524003812361537421687572592409660566010818683230350817405877524699056028698813517155833089299007119599866074694940332305034350786533814381554010770230493627972190131673872755405636717259839007815529172739965937625351383268457885684263551116723412287516909712418851297724641534806907010478692308389825019050736404145425569627315969152240622191456430326568545074020043644476423411514902509012112408492696579299195154920585189546111392119257485594449530834338353929750318254433500605567425009731278887596972881405820109635426088766324833352034166894158704867346609708287295886122042056546864289671159588353532266813097208366110072113683604754209968492102709049669124465704531205494401307268449700289681676114024618547035681435327224749723980556357721546319483199898403182809258606388052141520210943861233142951989259579106326367944360714435944358906454620579958283849625654388856285627964447900976836329784782271439085400279000193904231718295444898975781385527495685421961514419811300829031674221483033384242378997826671417620429709736193554829106006606944134663493629746205229816926191964990924968500575738947027406855288789809554876317404014084176994584945621862059069833254555364253044967040611105354893183555310417223676873391799211317891577312187021628318036078220159922065686462121866486346491491898678910294207143401817413122051638130243515681828370412222460163162284369310705148398553334156680086020151426831206362631534844955961316226655873962881438993028462705444863861994524785392538835255579142772276040496603074709511382210995337810830553289396909251573702753758755562670352628393157568441212213052277075898443330362118281347975220034447201918890900731469693120648382035107499791913143603868443566488086567072750527153092169738349991924005959800017973486372515898124834945058343677071916994016245955862045584503607448115481681490516961616693397784710363798121457242307493590678999662296745312657060010163748030117423157851851545899010233864550721154877755867910286214937931816974117158692838533030616089053852283520793147191846785325618067095689124145165404585838210902216047027336622340313387851176129701070302361785345871026261801601211864048713246657148692095435505108979351381122800543129277233489642680994195132856285692416272703808692286588969213568968825427125323946392277451861973701568807255808310247159174779077105623982729975264158108284481070667204526015627803403953635807300153985042873673260903766922831527354415339291229552928849129857710315076475495009984527793927735222314126682268388671286459791424576286697681401421250822033717246291393645620082808044044589527952812123665816383388254102066660494005967845375416171197357314120524606057581248507588709883247861982764390034619134900960012252322133407128965569173106714391310249395506823992616315909199531994893539578825205167486671471633017946902599859531702435575620743577691561130472440206174981368198821083593771640063980200349522848804878168669235519672631032507249870534633983156830356057533248457974957657637933486226148345020790930857091278612253987908735335525525620143686326100450793390040776444457256287319371472414633902145889443848603362015300965670353507797761672459376515564820522653845128328202001943079525139773693451808726328382736222000392970407509898776659130773514579699957467008966523393204116082105482581127594210259682664643338342962523707820079556441078163762188189376249230879308856861583612779687276417314238597114875873263915664569975026046208144145369474382329274814137653402522050680729190924939307737843306892553106143787560989570983475924596761415598612753039095757205546818793990293351324766357859941774054377838246184482648911659693239408219912488187660655693210482212244018785806047283969343204618162530550141141021053881225193327941921367155796013126321923435708977632488512390676893373259982103521459601940072036754569827067645339004008116459512468142575903594350135571580999302415334938751760303404955178633712905138207511233156979002251907905482187563821301452536034029142183930883795492235129770995751211036972588975338337935434815663282229684533129049538849699998283906021530063242985122558154902730223172587910471116800279591518973733847644500844749235957809422506589912313827285934230533136027393978435525346105271283846710736024119373435138057888012728808026908467016253610212396049350312647830817810638335971613093231825642013869490769027156070612893156273779756382844566111590344483257292120188712302104398969088656131398284457819850787388537690402328208439569476839586132306696723920585576262691029886480792295802119042208619178904599909599666060371288706695324222840186148673608625030823134396741098884683975651897332635369608075877611434190395140556418838556167227719945863721802438858285245318939829699529076155836406058927806122412753033136654991961619502085767146815513879350058627665136441422193179156064149187334688933188965633685383533236935856680214347052665442300188167724816650192432548273178661879924893613397787663674032946832784891336660497556650979352200422793703841565163683466650486784515593059555087586421087631447712335071893470331996685057012451993452082381492082105449594049551845540276173189008447998901099028621908766813901454779262819298115821211743053970135305537305664327477457287015713183156669108097911912892258056990230778637120024150585611523459291281336390802358830461818036036429321572828072196352844079323363104900549431457714879939031618691633358942581196993943111827770394559576613576509593575325644721129317057887038551278871020628825429329797453284283396638941457329414872903638472923008271844639681082196838253166848418950545030856945803626653535357089906186838006936695828459395645270766566305323073149203653402487131107605189446967035465221199012338978755856129230797935846993042023906141558860430590667207980073700820705439672146738881963745392295147887114820095839337759446401856200995676701709395855811162932053060180830331178228900037454577515980790833249622421268830186477948728815350735511966769365437298912079634109371957443096723383213218370960216242615425778646454268988733411635730687039862456381682340283949476087139961382959272948762114942785367365036061030359267311451969003230684056790149951009623461305143152070110234268084907297246017587508775910972638951131044759981143378644987259508718710351757491935129914697288659159893995936584358882751212981367106693718376051291174854729906437445919354477896513934643517739520273588525037157129382668950043182966744850399630689402781728086174856331496237914043837113743399218625247760396715045201396504756185699136577165214850757603696949257543041547375210471903668353519591826583411688715462592224086448997957098728477814112086453700070181405133198411199548727348575200201565123241105187720948443213088194256894946273976314155902002973296041653771315285591502569247945866987699259466572419586183934704293858319752667146487498554282411665631780098005606785873166044431356907044082313111695951975847671323581638463701893655631921900088234466401908711170394697895888754364267840914194355867949483471043584916846577801871728342462062883939234319791460606436728165144156426156255725087194422331938254179939809369787653761663363885525273481015572491961172910590849450459729081773982783298140113985721890477391917402214327866382422004303829785999978708242677970736681820578881049398342977231349339983856539316412809809865342985462201436936754574436622163326949165875758073574802703017408251758318728113411239847597002574071609138483204943076952626042038985243781423988283624762709386418693142041927894631550065064864411942239937011075093027850707104202177726496511817620027064586509164781453236211493454932668465414617568967043080600505584273605433396133911150979400538678713890192252151071258467178652657796835618997831719245041755134207248539856821924899378720075472840757890315190550022114547565203676312027387390846680344780979068795431564115810170321852214852940420012432553515267835837821003873829697552855080188305616651924534285985407512738032500035241367757409161800938277569908658071626272350595264414311870694662944336501837331734093442016112883347652793952412355036553947211500945314823383988815739446103796886300785428796920881497498297884515267618632658544740859239559581979709935801222773089015085705973259663620562176313522926261465157797520874180349555596787667717610754509603012236512763211474717471058951850011314108843717364394569953134249652448904547043126181662181399603530141423450188195051604809017319238038236307720535612629699584638988060595983297874277225614218690972645472114413981242431970142283356172547718864675858367157153848103144299527472767977187891254751372107365453243457343230711929157842037289847827674318440915472942142009966592601981590590485346142618402799934133641088513276332979210475430781793006504139131933942115006705444379193131516785382600995952301302857536780500509501283676221988252656206899110748338806184251496160963389327084316279864429679271001844970487560850994051835037830076904230019531960029214638282516352438847357475340884666993231625283547785972594059069159708906380686616366320109204123700557980529590971997910331385803893649351761076884400248371286449350144994341196008091158453738662650924302569616776938266500584482378594626177156643978386696803662127291931975920256371734459728156763848565022903392835487725787449336495356114963850257440659734787669642995771209412805711895982335039755419334570924610671728987954108266171500334573884191815432775147151458827951852390591456700858597916171780043225518413428888680577960574227932216255495680590247685002271866190420848302659911678474025122026005365027584547912803485774375741650296778899666365384137245852285665292623709770307352541132023869123631468726079515065669338570974645116303223249055552273629376642473087574852152977898713270809875259704939404264420248209943548068651179230640910385068717775631596289719491098472222635701128609442569202094283685181589179088113793108094293306359426340511088136886477215108060227379946213277624760755280458174709688110949562346851996179500664213942489249692597167044315482832213243601543525615215279560163310897110090241933017425858656421034768053342972109535777892515921422330478363686487778963769167384332219811671710121804863299104930651544429911727318115747755633377133058933322735989236567192024836061232951091350018408512886822933475811293991815838811066211764938680161761414462394940069897082295999130299581799227406895138802506423314697815518620418064683735513343249895322727124620721667435744970683566674246319760291095176185486893230353935329816455467837413040572825772484982958285250212001237639433644591632868295659120133608465582275893286366562074674679946276464670861271149404122178741341657209100275599375156042327833899636724921971324731900024765702964171568457753915804053508028106842164544587723955990115336100913598309327529112614517670052418686535526106811534248964409942963783025447412004399785232227219669792301130740546088447050420495380451008463637667014409413526392615132962012658651958486491700183313751886994758530789110306973545660739072108295051965849165694003711729518076677157000545589194495423860916258623719110827961497554277817041972973348754176973385563581826442066526912322593952753589406574545368838751602916855670215347070915798769969635527093955491930917671300175262255723062822374180664392645685669222827605329612358676006529224524867788153644778153783630409796656297054873026581245127747505655557227230696430770280105974404955409081383064165218241602602323999112196439001157633096617700575045803094556586157946222068374807631718351558858502590902952521891978587380927914991144891616646572619396770497374400564101605195313863739262467314672074511101754873716374790216683112100174331664967038492706531049278983752789005958100900477685215929117068416357051961266841179432874042554686927873995358871884696241045774280885982912672471791212908207632847845457009213480264558598468131569689684628820064547111773519118622704038428684466991627449722548127906105655784736324574675730321769997685526580654655160101940678356958538850175124115463116880844911194927253716792248066309217460586869042552344374988968790118835659210793585044995883775505464896103802133910310877217081429682570651667053595452436820220211564836016979060865609714950821124375749285915630205988322017719989217613983967387654165242351504534356616140995970654295269132526989520083556503875294514452137561965269292376982268826039056481283104367752040262489997112183314220781263472713323194104761531808273220658450124841973617990511663421691811223671486315108238436846525848218651211275617373672260933730022853417169517267067940857613784606351991438143908445884509416999389922767767569775333180994075854917147743214064305392646119249171296950332995348614767932304385770106078181000235998768388704533204856764470745941663343479431312155827882625432819979465240222939180845302759852685717891795486947236489206286168561006055251227448006069990645816947997889743283373239437531569520401679832091110501195662221273705719641099178888175271200123928418094837942746937063531505719242655878181282909405650390006907440851707421560586836995570977541018724506501711174524746240032184412432394963792150405379449343089264785442113312711397612520297597614052707568160218544275000930504719749885078657781940731194694122927897940625119370182104808041195412953597728750317936918358619859174525245669538668617092633822634298437417143067809045687335581923273820265313531066398034821256022692802975045198033702137377063372769456296488629211582913793535997278626624211194045637798403489050482277126651750952400922304909479204912906389127061440115110939912353147127550954012686832031631700228466982484881740342903067827961356821101952665209680134562234358692149301114982936184019510215184993789405526693791054267797582520210931615082967865852686007671174707858967298954397867120008986186545659977804963702782922795541830519973863607713915828455536756940535731771380265711452619580615526161691386876882535091433531778314506382936348448980821227056876718048952261242570387057531225121070383109367351149840910419125486124785281094063147052842665039431058200379579375810304435347216589029263440541252868809127095489251541886624712594817185228032160034075398562049852985769998898587827872500254817409461239456919106616687759153790916922236852551578620995845815957235131883317643475370419666118626624864406836486439596187552268505449337066583140441731742959876974478047667696658841918744334577582928278885025537100383580166011123314690351508369903563500511483668176967487497875550512368479566432830086077653596838525000124483319462279882429277651654578244467203733596164738168898229592383068008411841390081978024725082852774005480904623116268974360945331323842863280462123049733471821485086654983601550205702794583831203366817336457065003127906841816797984258984366079349372261889494831023723082344869468081805017915099833531280156780478228667966106671660136844834292212351357017987654930575552495536939492622746367758536359979413102929549991010075778590042576335031402447886855878787805811079104451857543029160584704793948926231769396351172553613862500014017203687486418987872743155102378912526282978720214572007474579326551488775976279665897612113914168231539799873859160813162696305962018100123783927363000146259884160989508823984882261031545890063885309829075378708501380974431948968547321689411500441453046454967946372913330090141853628787771666723774120438461108502218688331152866887763360629616248328283048739933105909933854147098340285653623856787715066527427298198133638280508812606486629695594302963532390553063191498592532891838662763121892305213171841032348659343034722986038529101349416583983096937121534840342816778459483493754715096210086288170774626219984144795919389920324944744372407631292222033392683303326855893955767370578186719488105962340020500689788791752598819495159028625764478755658122151218123920553809036465917327616159776419514103044292786565334456258858717930101245910766589327012453016680777413381832808714215175089357453760388333499595322186563920957156688961488728446918596903195990527122367255801909632649283565195553772464630394263337685025756632754532751846820327781646380809026853307108129305567941557079139150458255281086492720879004991267369559046468428422126694395389912259843366272480435962605006727037699735321867767079992346469137422982223232209030966329267105679846557770882492613600162727830209912428036728693276551845760455452604362412940360661615271049554084147302403079573447587685274749623463795115013865551614221882859112942669093808570297461437890573414000897207616655824569354364638671989421283332737246682012898670370823855308312083134153082255486453835843631339233344600885350758703319030666536826271513976068332013785864974190502300880218891446042981434073009625823444462132855889612262913056005514946273478759257181040006945922172303969996353269875228692436793789301232396467397874326353119861110407095806214699841474273522250553578679531106407714457428565776429023440591005414459789243845193059463284799091664707755147085889497918416767166813531025568693798743419964682016065402816441122898423531986421223620722016093776791631812232658911436088543956808190944035975135041773558871141714797562006175930476932173996301432792298992177436806210160911323233526697250324995093312669007519228045889808748800387125344788699271282373306161497251365642782380418907492920042684983815758433448546808060425632421053066237562591363212946461870594017341710913517302136245548470546905298500334714402827573762629283501650145284177800361119339324193721068474196783848257803024902535959988531862394992953941567519225270700398746797282950888203162992555858435781698527493654588744260081467697879118410095343056400279389670964988863837430917579113887633550546414234301367623826642019934762616157856438776770325131664125696081145468898917472697815439418272820609216275395559874210630990820182401211171218888219236819757973481824137332169859442307790429557345268273259544028466331113429156840285125843810230128097486796895395860002983706841262612527125128205514556276010711906648269742813251718731049474627963471273963410732975526673437064507629847580067234447551199289364167773371900854470381478359003951255899583981819532638830256537847567068974386126420663568521817160292219362214969290639645852676900999404769749623183932664063890632617331132445133280054707077850994525577542679851941481235486374099088288482308606137934069756640223064787962990840466452386332980304172217257197937332431755552967942363633256604403247044343325039331500618073528747433793921203161203606445488889861453241820614504993371780632520547492942286773621520914911546808132224416701451454976380779508125852707695234212739688232163674886882601649265830430531950888390771618983194833901963743969227519732846158863847994122660978112517330506236075830425152743584385519762178554085924083241144755218512807117905975460716090395865195492017074101842152206710655555007421278552095166019430917156448348126830357869119813100531239848264437447749551285843844835391644409109838017920868216707489951107479699522368348316813471216965528732125700087899486501933754221448323464745029290448468979986009135144679850479481330269885587009173655641459922530145971824994641722842053593210340028235636972054100587179982689320401118768586413303517509695644986162675385611352858927770278369183529550316440140152519091447691387257032762944717744786795611129000426733332148564250653647210846476379327302248981807102995496409458071067610298308761728162089612371222542012891486991075415658173743616176876247493714556257954718644315270787579652996152627345908152848735491260963019415067147912734554937321500299082881478925064838660323339113614781824356898951419169072500346333481107425686660949685640070452330405577290273248594828661369545209906608128705935458946319370115998346439098148990597467953671920654990468894848686849354047944188362422780218401860607700541372994500456055508342080709892177752627416748237176010280864698756048489443651077063362223858564502321922294036162925679176843176683220140114890898897958051305922709980591146516003889791742872820093965598898594140207163005560634268742345124311491962678916892801631344697795316451119872055607757096853445741594203184507853893697815531395266041109378058345272434156241394280486395550368732885882522309031763649876924770377450505608709049335911292535434981773367398114259928362515802543981706873318415139563878379960729386485179375334659880365961812027246570078803953276864250684197012126913140338588344828256629231463128120037302814617181339016441362014171209894621321262714220942019438301381813516330783904179578381316852431263816148766892247953150771713910197386925600500621465845126303600067642937724415872926475228145511002082626453641578603908193756811931322933889954843379590838557149879944291905262761783991763928085314316837694696104676728047898536518277990676070988807742496074856443454053183603370737770843397683589470955745103982494861555872048381109732941800937740389651898156926848455485722151487409359713902368097847317198078155830069386043606494116205673987132379210222682085456991629239835940390451991617521252087485036652893341428045886440215486600106510571404879904529843439800910417684419625961485787358491315731549525924226099933246887940598450436131246046466337919713914049460200952909666512483941796168705862720230729743282432314578792989094177229949759716743074196458226156545003968250937875878780933571847024450379398618461181136736647853281637595403849953872900199195668454400222417035679352860863981446427152055147398979798562283783372557968607667466779696515796949972357015137710090676175029684012059262642784457777345460025343754903823321624529507560648388471734363285158443775088262301370314998392947612846090920318190290629338911082655612162413433699168500718572406672214427140816948927133535893243588818093676851254970640273417914359702389305621958850913787767142832752254773074691173535390789829239716754144110796470498789499375594479547374486570565551213182723426999881673137162535945961860574706964869046887061640548054047288013318733340201222509231998453605129603013792014167733880987186935854315515285610786759350549291907794450908825513911978456444107127854623924091736713578119025011951117376554361397169199534094262546617442740752428824426053955451374060850301129247533860660620663315309729276176923775751994481436683049919481336986570751350476265228154801392580261107399846069848131960984264262610115560183099555432713616634541350905829327153975232956669545987891710499046595956555676251617561409204500811546457566321013711232713697268298116407131066610655447521088341016819200670095873474113190546343232328272537653834969457408497080751432597354090515980656197886129584214440456410445624023031308777533165732459856002439911044390167107501307068884046164609768624577412058853764646015891856321671145310895828765767029408198004657926976344344171813607379479537898666764054683141686909452603310957961268294517196285176814708037788719037751379121221213859695649127161985120008339704366331420578776826381447203718816024872673714783436222437781662336989561966266597346371449389839354182443118682862315083314326779498518535164136414163694434439743299268755126763752773814747010272931532985431461651798648032795324181993732114913765835225544351939572609126010184599516521894779335316357096234354218867837050352986165585318963005488980994872655241768517269449766795338246275315393877268695846853080273664743530733208492916165590071236229994527601108927680118361289157187325728483060530544151724362226398016074791309921802047801728684501577085629119008397332201964191117521996215510829955667233621093411986278875734550821637925459756575594211922794683875603712592265805101181074968640579539613808063737327175307000167961848708416826569059169893956840647226922430378495349143103682607156656979754471171273767617637071545354346575498700319479110238984257348160988986150098510777329087822047839214847648653584932030654958148475539771637059045596603323282574833617951630439770986845815432237713221502894054835101751244221951232750117078304531404585478168747490168181895275721013557018855861114975671341639354315925148720039001905850733473299668755425533838312753038369166220377164398475347339383343867030958816384529832168231995540060682090646194320327189107114428425578000705275421806304440628158472175990314534640207190881247741132014302798428178129427116946702414418867672083209166049411065821840976055555310968637298496951448193458634038689099603918792991797648283011882785223886494999414205164595770134567473692187417739340692682608670745275437255879644833310278137247791201521885944751583361549723941097276220747782296831060217273279773776585094797796421341202836213655358866878784470659148267516960411571333095163512994769430229531588088398955882920015198598047930181804993101572382729305528471619936120414111030420644927244135559612846917684982682512056834165014678884992583412719604595418858079378592158273017410837773735583970754762465777581296599253727336764323443623180585826239189272697931349180345347715231993612188974595287078950941375415436593216343439524026283777214355076799119904450011654249605168484614878878426446973028117250584714288676939785976788509050031789513758262084511960190206231049018721063789762117617176681429422917953574131296287570352228791943864504219548231390395913919085528979851314461373568537215181252675567000751604215665212533538627376554861311936521389813301916527083422560938507882347903559293904620026459652023448983271607509357220530461151301184813297420598181760632586424319887687844362161839416283231239608816347499915429244042730781774965480264830073102158069283099253784688098291304859973313039942037347743170200321552477380402471127052590444958410979979600058567167359493799032038379561219695963198785518266236017500954375003933250629115675444264591070976224463083559925820989043820620674125423893745873146867108294475399102090652051894333695946878701756833801898025842285715958529857097735845180700301590776501512617866384682123976022692465739179916819875021624524220555402160759357835492244152713197640003843295133376047627020208236735281380300031436731435595591010330731566374197557375693528699105580297253274005143540087530738839622372818490984793455662800917606333974381008676442718232261776748678580127285381059666432637943575164983792251374362247801085057808205667662427373165850569583092088844533928036085054358219471999878106391965157015239156893129820456647282003187286992942104587914686274462770878983519198442378857493613532458344133046325578879653442695781412234121988604809072153159889187131137188975956744510724122570236984316567015860337276257353175653153789429387800436259627298352109465715757089732157925905475768463131332249475584675355632555703988165397086968778622533704507255484072350851940854936507493260174796764101811700769547776453389138577916204513806040246184019265888376617100776340084575237060784369485791627443630356008819001214905895631656025526658422020051712126488619862141386997640727883445741992458762672096586923371725084459938161756736854784226287615480487332309080464616127571264274591631466039071470057950294805944594867981019675250156496586165031898973995622890771064524327292992820442158583630959978438532612552931203274539520576534887379414712105229544117041709560197949891403461475950649413737839409958074475060459287805063120966264566405778002352413703537556169258646456123360391860718307396246165971574872056302269823070305429381983855130595319660358067050046573542065101018988175368341180089981026190222671547966774544076750663774417695301403636839215046282099079836320820079720518292396484694413580980309410780430250451999286768579043256661489036999992777098664896132911069151193604494367325570545567697993252715586792193807427004165816833161219103503999098531419554638237933858800202766097032441923899917943638712481042463035740780159264747607552606487929411761957098689351918408101781907084663124358449185776347170472127699129290595511467755079041635555655160111266988325150749847388025909522256477973777702717079634634097152829787277519670624624515135321580736572635354372347423556753121289354833274956409444329242546585872758240339304089312599398575336672664905008252223485998388610698392154408311810104606156643916344414964974289083844816258689483368281627726742024819285551879685428580599214489020986514557477522613906000494527926857671080186325325720260501271754327820721840530969146823411624932648245506380674970891658935141948416860776769689794530282341079376294696804716861130266820618992985635091607594387088238984883658830712480354944498673148944509396274416345379225363480999617577142767753727896973223345978491169289026933347008805431185359946197727346015290294832565132787714506598471538749965465240096642277504137786504415201840584041559311300307244668276518352836656967839273344647960265221910306468697847713299999029992696185006514028539850720002660632897803846002655902280475213466088415521537489010621261041414873733940642341916688944825902138574512568941367446267445810432477297445283122718972984817715324043156543553806108046681388601406125403957714995863998363813854626531600369676655235389252887028976003824938518017836138968467601539120616742667143813749918105257559018144769457328753074556194118554298991178339421178762287566879981981646045916607837692055398616658245992542168056141511639377059346367716077957714810207241687833928168545338937070480748191974024150491276999172023742806526654183014144252184512549155168012415196551735977240236553391517484761628958665725574643501424016393519010968854943339443523653687447383033548689487863216152934071580287299210254245139833695541596105698851739798350755048985080941138017523326158093306953373405564811351260001291864075533949075572680295343364710334985827336259215012260644815638764480547842015863626866072538360167529370329760174073416960974921978953178520856277091202888870509358956950576774262602831457223150692518597422149752902148935219513680538724517296427967659836967045247129137056797791238984716039088900600544879392585744975161069970363108316345292445404694391626239499129986300502456116662447931517769614456554852946034380360072477862768941507497880224462223663182046436620641869782796444412072262335150099077216643631863118604863705077407123512330411540748843481228886156691824489801417170780876866265486367729641177469883168518757489258841744925570892781620907857663838913110540879182000117272726732387692914423132476571694546188093712061838239276729455980176932134439185322636988173831451948667331059823505865637596230155391770360368839771099631955093307417467345244459177583850149927849606190590993379758717337395320019433487841592858453120269298600038873394147082677981042799787581368253776601713373201319293039778705243082161318096188210206088753707227237959778914223104421118382268527749976765766482400979986925433321604408666981196418420407249381975712308859200004608489933338415914221046462433242157014089702808343468231681527664284242876643061985217353683049087585733624327511865780832127206834603540031379303979681678297073520882380909217742164263938696694643572023127452177695120582636977742300567237087833818592632257482178660193255879577317356451251672253051790652430613667334182165991838235266850180843178454240119849999529436739554377650766755027008801603821020940012875880982940616035659452949501475358559193819198544763942281765169181785980168914565783849008571277007403467118943448058383990040970020239803931524281227562258729420204462131155945268663164919652940437216631027222759231702673113641012495200115792748190603561428677376673368393129708293049033661835182843303116630958761171478345994998316565448015343749194369677123160321478058768253407618414048535948284795512406973274996648229290501031878234227249745767860311514311508375891007282252911452078401966942866471473757155087764040034127882079669903717301376985552814518818435816240233934275790733321659612924212566814440221556207858806943746965909974975326449253772407727925454765888187391657315002665204778587628976385377539459028298056803330207275677623021291358814629339330667190298534076761721924695727277264079859876028409602302090530182977934741302842201473923358253640543641977823175860768335500017584014727312559096396700152840871527752248467951348203946282931929226044035461144078462617102357804861585023342438099097323317163223194810018886827542748087311747161474818388544535870623674933069627397896312194502054623255425951184363643047200714144532209648387561048432592816408294793822214380914268008810159208928031971508021698170631807538396116832274776037872042589503449434282063097102948617349243281140376250394352160556875622773835920090563593577217394602775374534675068062518773484041273710698191367088158153863423632926705397061627089982043924307818870585544747011866453567072532542974198976887725239481500265852284262648265434439296809457292073118903612078225340124139811271281156562923543076892897397984940605747565109471531789100177031363894005895282469429989274678882706484959079474071383752157836221243401340637056390664183414407049860003457080487687473717900185428483971245045986660030365099078394402234854046901086927697883166349623243037489980137254270593323953112105512264450352420692757387638950141096942971258344361047518476785910470615468097111850781675249027888737480953861437139912254436196668269212167060419983018320020524675632364110328407861538665329783713371443834033745768778246632579107166464287624361344312596283312782429657338796931395582728992178257828736268479274784234084183019402994155353067827197726289931015382077266003495176084984257182485300791026860066203997452228502877910172313027304585079742127050802081001457805565180220703211937830265513960131321802394628959368926257992081189261051790528164661838213658379937026307341320676531034550765862153633996879228996434801182486282145486208527714432009380762228702535608004416619749865997055655057316538929283186263874049017647059657096583172699799875432685692867973221131886630285123916388389481626812786341644300456026289586661357702291889410658746964479596315907728380630500090118350066236131159732789171234943084032578131951250040811715809638163684190111330357800960213067728802727792272544012160865346353729204602266494515316384008307417032241206721544057717627430237120051139052177195294074305737857349927963978479681851711668531158406105775019537863841575635381022410483160279932225187739548643729088505899948661257271666974140991806312977749797344222382788200098162645842750751418405886973281039417817959722702007224222967290584104961072527191490629280022065774041725196727856405484245635757540335069312054264090803337689196873765883672735116143112028016742177644366785507978741618300996863400462696577628804978779570283741725412824196033985089329685316238462709022079477734525841343498516999370620646738138278978901435429597129259974120427408483763229165226066620969170923165568891906911285883615955557582611816764064474442904168942868412661007354385748465455995993479983257440836330501564131860681282918803028558752983739043803374042136031163467652690783081458626092815936155321441127826551256390657705106810445779785159016572750428831958127756450347629750237009027321306935809047510460940608833213741542361242870250508133527336032128617466302622852303060939533759836511339614267662606614348457079056017168250155912287545784780948488476155254312280756331422305915837832322486277770923622325481809951186860460216407595050781644748454786022118046685515057767882980549096004207129341521143653313931757190418403405700206271717843284116513110665694498169725919835056003838877383330123799207786579048590618764387027644618818578089868388139361941450628213774840657687095976586510115915976286557300036479871413947344593392830428044297956291700625723593787690358748994838430288273942706387860319702938181171370973913755450059780532752220536807824103654285144788587500311486239331477082024775849603028625678686276238654051535278217301429775357300764855465730476492265658775049126498345731304455118337149822324913897198707655159952686695944937870986478639684269308848254588783259763776927457060644529831172216522309566410460175530992649369965586984882609773107773793933879111066271516824705529547808740745641688230944973260420480543366661590256150354610418866945769495006492838823821114731079286050627391718913075659203503921288469577364006751020790648819562699818783536219851586368010146318190662116571738076795471230197253022170008261327996381623074651151738664676207914071244252900232045131244752190600337352339795545640804457566407542557108422535570383838812226176440209573738046024934835650642213988828448122691376849129644182984860838187136688557761275051838834934614065636048675749986777540662545795551577696479541540734227870696311417603339974732343499952646623784098891841275296430852464879203224164661592969902378658475865563347029149092884509153687024588048826815687642370472818015289128480662128511847791772580435472926051992554260768820325549308189755298872131351588424700172583077833766992435523396206528241491805302980100319830928934149087433250124151184390295188600151487638956560270904967803887624052081839123523154725852037614255594699908063714543781500108802499888982441450452409319890083864062007096926628883080933219673971104284190683813913860247336398805556055205590255154972853957374195943378325783417746595593924857644733192293350532445710169023511758039864447603878625298085220065538316130488021959642782312881080009814751137409159975247764177395338661285008039270858111613821361735725898846566110825745580361960777752925561086585277183441209466276206749409783660500093264598011132591044577180276112837496276070530860180172345897153714898637328480542382177815923980859773598525414299645965489764233197637889024575125594394902276588153710907342666867324242535755267006415130411057161255157618331458665038635015042822721765177508772213684882252668445175841404094987800642381424605796101416898462342086348610222991281403214534452128576690044643343373411533006444355588454188780576693379509481352090626696087079508567951149525773406211290520076988641539160364069477759476316697711937254224813854489092111006761319140259886317948631011425760940771780239003244486223578772695851345441367465712684974372135619349676797520011797099955866911620945213412814397128431896847137867307125832914191807772663252320416411259203536453812320564819249935075778481367683378843027978762652309034880154731912230522236206494855113188741270044578648817860822789902625512256230916827345465578888760099254102044178539808458741334453700172835441484804531638316088241127919849866723369331833975820142445194239068146970009000257533866782249115329510354081097877201758914520447752403512419173934191863278063161583018379185803397018718525239787128871631687936744563885066558855411871853217806172437350389396387586872498182316556400284836012382250675546405452680822694116778609262788919596012143129919759631739925442426792694245346622852558993567196192080145636366572431498359203561462062402586040409101094632031202659376747907394657454028982860573016476460051452820881081382525033467523762449866099293413751692318903421195199088782296392811603446643299444699191462203987710686155420656616623396084678065001340784121100761719411787908670674750097384543545384486661233753513149422539285340383098531337697483488695864705174450306010187873441407413402962508584313854522734090701768172851076445237221811194313018094920026931324944245505974901839003670581635264814196309131479200707450556853500277026313100451938894454577338245625988650789759239853944660264005839535433452921653432057378069319977430319647473185655658714436125582707874323280155224276828138609846221412832361066292082924570627663451147473786884740747678133615613433969060786435586983889987598664949376135856067080910641296601466384105664352241000356266019233823389433128074254954215736361280404272846588969637985124320075087232008893664025762603126980684760536159885053440544406821089499898429232932980974173828820675313108417217681619448530009659711224715588797824542131705844319951449802618850567263569673045389007826659469404464959401700240038752864195387228500311537443777105203450196961988753811979172541472147677258770732116763020299403134379681280939090753795114303893014167864106985328993818590540353012275754467485655965734948383376330260349829338857508919858715749262129726212070358053389232715862358463661942664618143693384615182290355025630164295135641586068979409156831370404574640563083468251540129842341288149649042795140353668354319783237200672356171986990145596322453837313992724766423674941156158488391253815379162551981189935354487564478030279354602811961166730855498916288451905693087151961294444309583582492501652926322636696087002074403439479401151171145433408782589281716207888481428616697140952348426395838429187156321142454804754850406693458495536957560081657369657076864614526289123537791909413594802094004498015555722707879689414164216111852925832294016783546384236771531657394293027477022111450064329690767308405758480659158387316508480219301714153260073221443599153197264959229700944238073609580847465660979349946860116445190694165728830659585672746920399400976726082573754824777022158722207940669778281835487235857632390918882141136405940212296944231519456805331551872578276702602320960217786045015145307298759650360893573045610135699927621647061639966014871146765121675044752930784567630463320961333066243648564545734536594172701869405718839948864746130749522123524457972033891742824941499201467884539240966593313378234577825541107193960138540216909774241740770284787855894273601718091142392388103243228736690717616438518583504883838608916781951570038634509431924498760120996951580020122462392844994813615968341832409606010912325044755745380007231779426465426894193140801012287513072462065818439189045831717850611392151723046638974670390442096916298838313463959737763685436186092020247616010589734676536640014879298279889542968938960203810222269574652351342119639885745805350533827339032738616973021494861664217959417563661108357789866569882309882805011368713098142542581411914195060605480213165669753830375391502921538281572922455179509404175119955430256480959345041688208390147898715019251437196374631261111488101319889838356048415336427405852342703636813594390303861940283227270454416241825084607566696886506490490549566174769869652127236378756335979960660944704194705871585759954472888274090177533501577394748450660612186545841511819231943571978245783687744892788817303434667719067877976646653842802421872179799484144224992022044226657282750696690147603087661236336239046174079643218516962081959987840962587010086815008962821949231425199745320168650232655875186719413083871266941138193305380871863458955118570983192681427252234742443857220568451354743188350218005294196236435996023849602103849521979757140929640478837635369863196380789711164238962886199807243105367771695198140357099246606400645599654096178397481776645645815685034212435568573270972848890544050112412632970522630458741605651467094546893879676415366174502454531858328700514783221870741920312176621427377736756463371074462211070322152903036631499297769367653562968883490250715199079252712728289259537141458544835824408655033476730879018357857443190453339109811258130857776907153252222392608047391781725319760551821570078125236648181310697730512641059826354657179568026518564355590702709434865262799943653121953156108474993028714877438102328319499079694286184301341192224391560857549097570633001587957435831987846813057472734856699877575008590587302954785047245789614360802295838893432358767008445040199631257497980467481164163102741415426900880228803295935755943994346664378880148703792411027797499582363472422776210774929843116074334158994548811890664642757001215618865016797292798059808840514778209469759579517849815955238690415497271309368992603316097417783996457102490671203641010894159342379559809166886248826392046813940640190076669573008066139691006066621273789569858380707345691278959336862828322721376212682831194208156049325110921038093895371484878124299995440516513880078894675551593920897276373382916334556802507742540098676319178725433292336963190615740786154699633091466257992441270096766464648229827551714335141841343257920918029277376105923723319218887699046337889839589317600951159391309345643333941028752443526748135206584281729454506568003733206182379459336344984149294144447129352917509508863997877714116217793768861250400795571719317512918775916062211359400655393835859673631053839356464124417528130421954426332743392451698877856410291168830023551622769986341951286138901016213186897088666597432270440628682667296015120956048176374236955127332169816685840834608781196660082647002953624147199047334765849465365985016295023962225693681730513129301628358171284401601082184675523766414176257528206521111275652204222671160435418453539367170304484371414023297587157748872213037812122779515771268442807447015284728361169795645514314652011588769837625603353282952647309655501687563567398302518088406963660568439330934479519841260566747475280442160986105641282044148405591418182680108488326875933082560267630804662634752044115973417019027696397224047683210944352118846699750141164264215558311230231129996051937722756270814679658446895385208291907910151149917220175721520653405820139545456282454600833824456274196742632982673804788151713495393278299523238362975956717399621441491757353676516100088083158120303070371887189060817837024762166764793271281147187460319168954025156824386006294027423876185121116819209642116671247111304934118906183637042992625271768539506817473051593073638838543181146886721541171384126221108908706650905985809344772287373749618029117125892838005901209001470742656255669818097071004812656711979746990189549040563145557404552299881938814459077715926952136375396934445073037758227910500215777794084397659165364994490594678138557237067710420715552588871828528054500870194866758046904252002629999769476822509357655771641092514566452691266790245347243819317244869569854685295435334826691594136656871646540498791564628538297420244335855991312725854793172769565397379290436127128992077845211994682693750046421042849003672056184223762651579667566813276534969557779429498840162391873119839622406299156154943935765025284462383175045849068691775471708147073052399213565535561894280208288687762597426079237449219942549033262230547337625381014358162308062268005226337921237434037202924524768904508636770419858827651355634406591727991069536611820331227254546720170793819354086057628290708817291613562373772473503540618488748731682451706958432738728113025841474130291058352135205151619675317422536398902436212320866482534019719117788740324437217555454297797071025866740768213833063627523998595929058653521929792663618632806525508757326850251109749601797233364194202377331285340314252948160004710367376279969904868147558878119923094914207526032422808942635541887240854869865144233263489089054856919315583675467627413338371580354086592067306608403822997265875646705707056724872259448096598496279485970049449604784603617739044116862105592816108797880585243722785980474698145411988502422688720989199694056042924355954468073652231297620534426098820294009327762969365748289176855577356103357953960018995190468130506455028924091138070105969541140810660734970884224150586876648811091434944943029255030065797378758728055080229096371159814826268247006772797446622450650371483247948603907154270766380843333528554951901640287602823471738466897094627270112367395443230614628980860416704111457064823983169680966444854158051178236260578391096917529886479242307886508048688387431573468982911622867805761413064744128559015989518535560854276421687495776347144772008522457477976329730178876951784860058734223182674470888811925611652234687973041351475648558912688824247994256273815432346321412476537818283421281983597589115836688491471885967528434265539035131269307204513839464521011524116385069243943641720712436859744227935954578517082765365469075692888807819598804110024102995478048986818440477546649206331217626836471241959757398745275229357462681382000194893258871882332836125063910789964512620096427152926887512474586212274502333341929681246108238520456378525602859462648884131628122893983111198802684681660101109857730233658294693079603402648661274645291549765025283947797025406757749853547868614680916398941696299901739170211140264069761034014472690562918193750550293454140085095681343455189504718827912332249220012893989339760936815045611823227562169719245708490850353771329049904234320446822916853023752750290659740489545971903790469919504214795993964882160509646354360782925709824664979048151826782988756376090934316703356759041975600901205285875746373252364031442917642913386937913726543456841473703862255119175115669696471021923503514477382271183033390682025565963099498196306941413996561711263823480308115409928635090775518225049571516141959614919479835929407572065024800008342384718388915735072999023524803676761420049700649743782258297960972397075387781203302103302465683481594350294489256727628725737584384681247485126577466583515024760384539276655136656278037115943659448401523275022283857690423700585708287166071531415256257345440266933143913604590221237264148612264016560014628812094850082539783965614600344513654427410760643832692049747162166570670561149853281819412643172881661933700151086197380625605275859444116991196400957168989525606922213733674382650592783467192055748870728688598850769604684160733027608767465703500471140463664916202464542041065153498247290253420083082566949645115983753028566386275204693844084936120960784917522683059776205466441315009567857644751999158095331208554691145373246339969648523300145692463030839524186612575289686842279529565454942554965784942944401885253130501311639047882223719925280112203963588039339373264246289076671534314668465152618473343615689789822347608017107828795344932492991166316876408643210968043469770030870921449398353008097018946680546011435657560020769865047262156344135897992188628033337510374889122269963866251173542248122519513060998046289012905283648492612134209118159895603831379716220246289735550144343288779197971974100628120666928311610960149159522947108802430949495493620057156697265573783030366353448584371312974615097622063042645044336271494784092320852160518303421626901939709239658865489969521147115847650768786922651514834400215012057845563842936670049347634173638204470257951215350274694696247105595658579424504300181828772911743371212147574247795071296765214560455068133942209922595173626235987677005881484387292850654784811848427783248534659414164642882896697665051312466702383218107980683465506788543233746979619782205683024043068503682231227421789165554316946674514372340863227988394052593679561857724242521639550938414665983255946862012027448012459074283346162998066453300378920368150316908901333117054736498438109827176409125965115504455411609213132038712614396983205555529992519552332535071819265438726715253111360042499446752064120637327858642064008228724724827904211859213894951320368992802845979421297771404219271149674446219296199209094616328010401368163114691714552652311704941081645497078346829051953152207563616904037950369349794567267604922590645572228128454973114374683769115080610597894910979446351521288435588808352249801870932734049623505628943887853274577303461148010665868322257093104239976721642130548453786253451701359417869832444637155724295094373437358557419680671767957904587554413464890755157438313725483827517924797205958718034295004581461973104722323338225746113828728474146889835716673989637500719000831268050922875607993657693927559724778457319451961746800754138162426381669036975171177545353935057962026537143908252528216251977647982289609088806972738033722621081407198830517488956481605107219999093235738426083479132208205754638428037802096417042302779822461687005011053163921529575314744171722862820691901057610113924392244641868496793638485148741432233154258861736796441797426881322182417053757377854965148669417359999787308681365943873118397743727013714889399843255166675939187650950592455713515146063871239264329783818745821106262320116124696769555234743262243287888900949857539359962345557969243339189950509425171498583587361058094105486680584957995268421254353113933757856294765144770084797622235152669225699835778424839735478043980387613742265331226065107903614019727581126071974339288061623005172715634028233935217936018394723067494256906952667784255912788411659576249267534534693952553524123018418924639743893397960654181344716474498303694216221918730427978163033391427280164183482487374540541959270246209393270638071728652834913853038965295913857958097346518186003361895121384391070787661114414970168567956926844677552031650527725320857568939489044728555251488174223734570930735850439771298855394952995177225685498326584244968413218209398215192792983154599206093169151507237026740484377190411539865246976313820502752236709104568698432809336255505480767446979018043249346154654005186646997477226751142390257833438686660313931741962381497991123421844847392614265598697396475519581227876676707984985281356878243567826141041792610597156244149201802412212762595286282468142748320594634249666060667172234003996999395823346502427826686640769814245676431159687756945662174657881885069083517762879571411736998947710098579794283857241263392779415512201865754286876701067501618180285789061170589521206012692869733494191714460998032128476708273236285502935962139328958862682681420318414402695160318666264923812955973856272988051210698980974111794171709361182786928597603219140067006022020764573222539487978706917784745324135878521120144345782541643336843558976128024318790495742143554532765193689012492224933977522036544943678202271611008058537598159604447365706127201583293044129025914783099186153407923061343589097849879482542398025073330098600540174551550444924568907966007601416437535185333919292305229546208981658996771974599438299423840145396132493577230960483233488585201352673630506826347782618077066215779690028435594743784892129671518632937636851650775775123190651415855993523398216307152818494845952345625073332843718111527481473882464978853056786258540807034952012400094746536108938437304060337614246760974730491890663572901971311179618072174089207532563085563579194755281789504975764820721372471128087524694963856358627877076193845750439997756516762711817167679446255982683196054289279693754257236428451801286650550244063181238868817781937929822877407359657512371548216827186035015022645758326392876933657649168129701279078468547797552875096088057005613942473992162367204375743753784392782564009484571087738822057035457563542045713277744900327523281486838016590859810610646042609676927404302936704911866598716287102418598198893824255217724221156392661000268808185960082328998614006793087600219154657371467265411108835369341057773907480013284378604108906855150452389590760886270616230075062469141182996144306096562868690261658851939490701830051258706205547289419510688359593665517988792696818450519373132149613492304234768425455534794937227246475628957523550286679186098073681519177512067779497427215879399921608697151933011880216906159771851341006355155984739733255469601097796399921216581499437467581468890077584306772335168636881202296771859381306128481494108555096010635471513259980751899404739469501610113729843743842342312914623612718010417810081340007930463131266863530722028835322291559776187703490032511655309570971338383631320046402312588174468330178173608197561669733921981298710051604420660297497514649629674021712316120594363036205957888796632645513963566355084954287836535903571744142307851941063694409153334877612464291803405483338047151279817845369099314028864207483726758219809912549224065206191057673170183602436104166124852963687862239916625025192410863184393436441273618129220444126364693614820204686740632105891500916384460663331870562916255148677113910726943523156146142358535886910236166093931112451156862924502391088252268859265686592609909646758018590189036060156898776610505734212294197981135219751847829624531613955450738570694107924107030667563641111338515768444843973027514708336306752812175971608324658174359864510515301353595218952852382649052646897385056782948173955819506982303486707313079705153301954645500781184161960387325183173504930682341884410972265308958301685208705966540424175000238885436388601543290789649744786752802411832674849360954369011878559494099242180267835955817992937663712346118431733401180626633063355620331938064201748083438240505227585043651165940866710701201894736962634387950517051495779628033472579183185430919025229860566332788744461216152119648846875603854371872852619340269082274530117568138982891329933393159305828930127717984260117352165898146914411781331737063524054260506196511262120196144279502459490758094645243394515787898415170696976738768993553212631425856380241100016794763241726426638054509656694988946941188505858465274746670266851990732297401658771885211029882229494850588694470317718311931385953468025073518874732382534122230788822987463853196889364804115240529921559518268120063902500131304038715471958404264519614887463943271208110254684670054377168783082552461601184758488996198952661157779662618292797624655692526625041788266415582467232911938138677408637641515117744657950592631485019504104563617154958025682563151672621085050959246127942550986620416650482503666793882241102825987527163935893555399222754073506706138076481298910019829765062989232747825553677895366690780361475061149647397675724347754337535129065099852453550207401697359014407846407979321599684395575822867312417508032949583178919388236142844393875077449880381489983242263060971414545940478356790458381516741071187502474530155108210333054938895413146444649341537795724580695256460669984593666979110858694150689852043887209025346905550834775009199005163778596711359178776391708259986229725151234032993612308322017714511925392800486620157031943870978733467841846923666916635557711234876001098082142518512165002376891253841223639693921155489362585144882219447546481683991496030966335754753678435320085879161416930293966067124979337372648557886035542587695776658345307620058595367523600756385886608763873232182618272947018061537259453562184671048816290493059053003764599156569664156121683197726460612932293448349667962366809904502380842719742521860945218782605854783598082043898622275262121300144391778106962652790187342183039125198462271259791740529449372618503793517255246512603745102820208697445320760811285584423676835560435861687974410749049031986060486653863134039883967610575700231857855097048617733318108514112515203526048324515654292307249071161984268923485274821472683161472187851444908863179635540410125270163133372768044790798494991103233704339263416902113321729979200474546074587935545710257835470451329566232126540214224338334601640266951866604777036440936098163689561614646942324586813254376083300615126008476772078231756468606061456103438148169875088983057585607741175692318486565942872653427613264531692369640835381360581447782646092817868712780300437198638208327120250067669036023666631405325591763239114960297988622623963913433923020189790908211672197367695557010411824885070802517266608910526072863734250008598873670771999768904663685606041002034317987159593197119351818570603508962208624837623097071542591884863568653219319473706654579963220552779735797461681486624763632864584569122288261824372357885442703413348475378645083522793084473757107841146786016726792344717370215331491230217331411898571412592442436727057862140272924949527071154174356047404410164714983923848736267786647678454114550582024360506641004052499103957592994993930669629029560626206559429725440096106398262801384671372300799800674448277265513735463100639822836070045668667753701272980111661663990865402102410968881105718171746555676166262574656879220338403633145753697038723673652411479357836711998294207720927940299287140163715163411676744377463969972657724848017143073636615546372869659510374551905258182462180729970653039633249680016780974771910670244560662777595340641232451185525761962587346612985324883928628879264333633354191430924894402587033374508544357405524521276781482588292702188931623408323463242728782242140908584861717774907651671868400249881098443846363458970099678296890455167819781537845492491305158225553911939737913701197534611618594275738149240144140247498239436091334102517404579678950415144717405589228478427912781879739293047517186045949596481721044720939234462203916568028341165343686913573211200263955748466472037895686768301093627717422273883553536864850993466989874847948780227162407674929596965110550909247899094215867973924806386504402717176272908879418943415497365776677117004655007486063082835853095248060575539530249026084306198207204627011816406415495788469147218700321754937524969293742047498991572469646801558289473485555454640189201973620513010065752037620321313104354342018948805100722406900071011671378728366357486281435703760270536319477910846783847757352435429131016571272273865450373506226323220363961389200416081016548328014676245162411063747023343262024863728164984607706247848625861764454037638734006929580050823280527568348560071722885269010028431605537915601387783979413934677343244480286155317459460692814632391062362646602350281626341885784657865306882783886674350173068020804351147368512325664133926740871099198581169729030928402488966857198317479620080752114348337154182428577386103390055972312055627975438983540249086088046357195654234557137621218299751814060835931399563523461503340219274927007754648012021902781623077421057659020513513050828399544337666105897134264440459247482354278767459841023664214158812353633667817240982411008560022552898803544213164128398103149285482265521608825354777879897094348420902664570992319199413164028495774604780988398063552818681335889312209984161118432205372893540748129993873767366074735070998098197605522587449470828184752065515899051389063369212509274635848543016874225167742961847337070394265704977806018834137259015783039846331344476688053788115515730064933131770264922004939328062028350593471514198988201407027355492830164364162661191748798292498884094481839215495225527792552875866433030786074897470492246850552197513081514378448329047235870326775084704570035028042779636002502989472874346684707858383734818616299178455603662259746583386033166679548494985263288448898647712301832879899098163270534930087672180972888262058131718026891383241468787431393251977046591852784437724152108312531804958001639273792214163681379465080579217035613156517891777772382103479634778433626850495383993132653139201787839520920563414031174705657043147786675499226864117945250395147878648697423560515916095928455297214339527340845456349935680438762919612547348967563643251955098789111175905976571172717266082782972501241121573366043489868248015767321151921938027330430720499547561869853010960851693885048921022211613543064786681015156331273428272306137319829557737730531219252003706423065486726040218777392573770446480869042979080329485466571868277950740070523891945052314124141703247379114521876839695045146201142035002921638446224272599035521729871097906984688967426189563563609443772638962648085857050135935672548133923376481787656063615055606103826759932273546207730094492301822324270761796178179138725916216300221703320901625801666261145367422306913216391702856947687800050299852719417613337309042702202446336984092729388721670523288479547614938862827186123409634281381081670197330004126346964852216747812195965969990912547223477988756491518680416830969925606050758249409258375901279409900751202222701893707544320509314697391480150172646466232200530929532960377450825634731054093310900155798923509293041894032781117633673206411151767754730765137959060783927638608061964571193104667601207995682468896670594220330949771445897550943149760839652496374312471175731057091794862038678140958588845839040018625722549572084879660410367290513109610096620501088028738906311010667121265492833761417064354005068566746075334530533364106948403400639023113198005138295909009602724713822070515011364700567741738063914100760001519606683731619827376175702979817520145032976316927157244094677575184488189316628807414233440341184506791323421955313948656098522046204682174087495221069910602947890080868471504567972070242019960462884045794883420690222965998131306624750350690317217547700914622009321490344717968411208896492855937884126430893798239596955785516632586640598462978847896542566327078255060886800892641444966094429045998241478894855780170827521501820492406502952517003493605387894878124334822551814941825713571108161046102385602109248955394471046002787839969481889479634370467378187316744639292378555451753056159615670630293522726048301247244378232423796903555589920975603197185889882304194786243099246105039308442669231483557496333501216388145078401456214940112587348118833544622386820022693374575387835150048758697211799011500201383634558720726427316868405330711828510329607886088927034381693539868417740905170547197989004258943120361886006680157182162042508714489805662997233991573933068618621252458211906609334120262299476818914443199704577833283612679296867368907172664541632520966890195628354941757331439700803277020905728899961863098149408776870107489085323155633275071260857423328626840066109875012137634848278669425150064981605617553181035435261452501661325935219765212320442483456852317758254589797452277252440417828212865410991782601458197408457067565299549828919282855841604519363253273525915864118122953464791594379073808861830415390781613709450344341591887778700012561884983468425182914066459104193104629378827356583221342020877486962309654858445014193769552232577600414962992768330728291561515672322636003297040497901393768118228422663434628403027058695750590252111304096175812490451574117934763548411962419262957134793063697364835751598091643037371898104699370913887620831250003200498567108399249602751657800479647112357868789897519030734528518733785849066388181048334259972900354095976611728448212628618596387083047624282788302495046921878865210937690190664971074395562933874682798948171274210032829160492960493305936746971953754339572490311325675210549700771264208351587929598892145908006878412829170016642269323914685969859170962639896908063739091276884983181630798201817652399947175839659894970785778054369787314253962672070210522456888415797056054367540236410228599189070377849486122383643213993033748135478289552135362999493749984190339046909137560071111629480671178091448567818901932960303763072140026807280109791310802331903508897426219728643789326456837045278298065732659471103231715263955080016730842135488768076986279325805196937178530127950562244428757027416019245554346474077903766172515039280905036399371312563491526002152590044091631261543912409894946647868209409931739877139072371337420604106434973419232766671967818464135092133263154794559805043306094297747926944716096700158948341729304444525613389871917687368363769742784075451601523416800419656622472872019772714446532832680663236113908643574641037644764443317104592332351680558663376940036142328599824737808521090625978795044990964864632766482148775745261818736849276824122838093276267344159950357438669099507785520728206034799753513863149373650653058262572497849039027227376721411782686986406954866718809184765555167659488498767907607633865446129511038291797871976581267178337824363726669290140533708885308102060672256179687761480440464647220479412175598449367054243910240477006545161321204914240644466195967340299550274240871547419965122090208898808824138666413303535743789904915757911051960988456813766040633309759318263484179490456117639304626970112810951377433228695470293646707307879525714874594990705464904040772916161756992941765574877843527057964283329781314997956258159711592951579543330862422123212592693812635747457044352339877768543405432076752941308088206115089178708184564607716998051844480084456145080149959956841876399806980881659317238099023681598952077966371348927754583254136670481294236433199015809758602635350711509119728354113228741265473706542220344954600871351562864189726927487095700059134698731168043516767763359456020657527970220324391974138473380943933691389630768142106724840649976989644474902116063078969820878382482816456397881112993008171345410917560242637452809276593663017962744138111731564849761524219798697550546394350711740371951065704288971664524513545647278606247964307100433162160364580616568817687380506697109215819000425469026355195489742039148372112113871654355649600150358568024036744080985876590125577930912666257858578487387703298545248430625670746179805265351146844194478808659750104040681782632190736063272898829682805954998596265024678100408728883758456219023894379743979838397023445686912254310039544944402166166013430398798713759213869482311951896940602931936915775767829182825432272727677404482791936431350748044894642288935733497461986514082878809596807875912381706286130070879992044346787639445745279498002748916882274103965802249553155646185711433851529220403264202400460750165276532559554653721928055201042811715341581928410450389470446044273135361393813102457052389860707729092609656101250764567671295625727047748951099513244949336658707807850584166155557773116037583733051655340179257383076570626891097309309947402046674538283805031986793257560556379484398435509737060837650226547328080357575456698480024811650875202760120573628551460355289664976095361936873841940751176196144431025182081099258710651164008546973013872158674768302175749898332067336259016973475108730416171029571466127798290431516837191377523571204541245549117077238586175580080911646663542430373787894528482155337980814529628022109313825152130438766407938623053311171643854277673552042389652673414674296932030658268776623877684787314170253055736139919725911844182435706497026075774306162059213773870270398289756868838190012976640453368610871801516023252815966006264276994200582046050116632893581318171571929898610061831439716432508224755601480447163399209161243739251345132662083147539846654492319707255415141479685797204265635115652925858976241629177054136286427091843699975025420112003088285488538520030801030297686072333732668322026474759382988756394877108932845836673968778052222461266638380167093656281336344063103362681573719425576053576837151564372608067301912597134754596243688880449989646696185700327732454701699551009133379819194983001125860437625510436360469923855535993242745357799774498809315131413169220763841957204208582876307264084621642564219445257151010318402458398286848501493186687711637504251020252388388312765054073811161011811565787936079631044179580048508847661870787473691680205140052616658230032208484265228881972842401276387777838038799229648873721530565855721124930661855571925843086155866968611666789618010064181023368554901670481329236725510533003388914828100892548878555650439116507713216842096721082260679542895420060432915135179652070287999210589515831620753304306732796133202068704006329828659878086650225410803452909971826999326581929208674089335546218569867030743042935242440335219292135340227355121731140732050531122166185632981969901789278938141043253431170046972670594874638864912045944593971426351078056615381615491901354991089040718314881865011118851036513883766786337107497748817377061176788111230306886778985714627005709680580963518510820149282445655163621847401752794829494378509556331486756343339556185912558157529948359740316046371140810062400668064104110920865555057216563746376050067614004645536257506441913334099787359896604146374050396008387898475138365224141669756097724028894019376392333668319395881451474250915868714682957131635498432498215335783522305626466461861386990544629986549547168345491657604651752053175054304505708975578506676641694109081403422944586230050480150459665367647219553141714827664319424958079001093264123319506729684720726809685781550763761385063049534514049753065471065081520397699392244396505475980794880264481520086668407136608432886991363634100204667443993861977904581242965028222466904851252792376375589625316800798846108861819906638910350440836415570566488289100632642857057730039304772556179427626654511600207780498288387397126733266241509452630685818578102974988783207098054516278128389919913936951925078355587115137048336584611478774498199636046457732093189428554792841726786668531033419995426948457393519589759773303005763790017649226919719719219404274476446281275121980574688198078787371811335065320141917170433737355832233768194094511575342452891251204915695805791279202500272372051524208557504733160232617437113380673111263614893627558594693837212684147534756413422500297671556939155538939917465912443958426849883456766924482415181065217525139845409175398211266457468002747280780019289999649843671720233094146924726721324809993888313412154357738935574513613241496052516481230025594625199927401000088209637846969776744450240514362007118162920670899174711243957449287562510452341761273952611417265985486455430617264612251246465715902660662979765505490693884580273048897214670437314339801644791795090653656285160935159110121805492281068895267247606262583197304896471332119894741394178017404328200612667717134021039615013512778226583986542178419684785731474861126513868755268173639567003335194471439702708501594797219969708974673054267194003169055334683845480854893188153415222026684142881277493521653428061110302752775517051969908250209286128242148748050225673046994944471692581075254788936951857020455183211557079591734560839335634792062102177197648776555365664603816663963757427406511509411464380200753436863811846695996914362357092597187605532534280700705997803694284038207461720344663917146285578229611531603716662360210959715627997913556177839086986469230993670237510510797759871682484335566168352988789890600611938550099436427551222007580960315962375114418702389016959844546916401114361345977751241463186296746360868371918282574196374361703433827048973938007840078608268157414451475306921564151496238634804957000702074200332577358076563862895932078603996109464434249499039934660219641535652687825817837379625281087299726740612524980114076541424777788122686951610291127617746136022712613915319800786342798859316458223542117401610213799472826918046551586112115534700749858981184406591503145772942495168327195191530343762815329667654956232539927394870722452428608313023724629369980975178350172541371961830163590615659075681601670423494594594719379075133511273687617305666563813967849363907188064081790549185616154119495016497371240541974547187356242530386535036799679340192226265444842635983607954561513131795425967710941336563293209480332301178435891403459219763438436410395169466838366443165294389212195405063032451062189367042145750172996633561236680657555631831146254623819267018785944877516934811897420345289837821318351504708501355780393951274922299328763970650236522395051135290691591640454025103384613636501419313899110721848868634014944677960910159356775894378394077656863929788450283876193004878072827615350158840941428792960716301922962452630167132111331768779679483402073726269249358842088055101147538175031732945602394682604041703534113808418236359295043438145836628278211145739267801616591568469810927645930259280539760126233936216166229795499934260982683924207717817700203798963841041874730780400351986662267794707166644808270025869657937935239139292148804198562110355089665525139810264035711190806751465196539427765527675598854315739619788393820770697585518561188617848450463850803397667300598327750324867026142812142374234766417237221014899010795317449749480439260658445681379309292961177362423620181256814430706634565422129955653943392155405306918966318991190545890351763321784921286265913481882704617799662108988566015338655565517628006373974020731613041266095465832529715655869462801159973709087726691184572820640484430456805178652373884137099676630405388318466872721087039751610407797735244629417306241828436982172156579262420596305979748739515632955888344792347426680789996780895853500308738327593132800358994638536254697531839118220573488353148116798642888022321114535293410943815171305510962366330252183114318432074472386157957770687416067385772012222286522374841443701824064633547132370425309817435696463826593066562649356146464514343418478454622633913000745455507854006965285167588345715875608579045161908540320351623775482827586401497652519050978587801525851786879626993612195104342251311975386981828382241873324647590611884442523264234922163132005375740263592515136885692443388366861553477519292239912266525841829843277286476628265994321202063059924606092880094794075032381983180102955756601538780245388307632394426246042274120946693105580506519973198417959549684394147908139604815916280784867367142149213925846528028036070668019560295004603429745438582619722601259378191086624424972911359560831530763219064191260394136301765451809023376469534536784060801784084145625201132572409286187013347375708119889456577287990610145312010712241877311682115687266728118200209292449548819539133435036212827323775635216728532178814374612491601134951836264452559271262119431836288453074708355619286581265538281825472660309750325052349874141210757485433033513295513460747898019284713413462277264515276067454522833082650387267097150192099619815265933986865723172894517583032733889263844461619688324254172956967147232580201197344543745280829051696220604803443474630841519996490177763040858771216946230380777499206862835980395521104688955229746985710962952061595985526146395397231543882594134590806641593199832602539616047597216419304788506625359539424981503996683897469136147524557135314791439975872482844358343227049138436573027714797328429035510321990571184253729162216745612302061513573394349765259023037919119674340890035126703525894223637776840169578335801242058338140057718087257604794055254266362316481250200665122437743521345010192112726927368400017381163213007579510331890461270260339345303597694562397161156557257969538841165561681572450825699103553823661704106282699327752639045134106515861984860674141417941093238214469455413119021965523360797001491546137855525452205559811679679753527251275222848548107835101462783806810261259030822645297416397639299953253835251901845530802583416120960232759873881618880742494516839919782977077149367971188807516746313516571233453551037839728068242075693148421025299130331859676300806775676054431988163713529030281189219014024629075371576785068552880583202482965832793063756908413198684025167786428814016670265986209585852789029103932650157297501560743349160593254825280036957876643173393126576131224971075495325166159310162435984039168690003430835646464868669157357302730331296548307344164127638176162559406387494278797700042671093887474954360578086973765294865372303491172634818205221553439376421054529023487725821741075410467209252870291288986389012272882559743777799370420348865029084529079660161807324215670214440533633302491217203414554751281629393157526506631680421456724840070180115309832491790836682781597833018144645261625068138717116250831989086832626249276937191110270548779905327680992018860865554470832121416110444813646807773929156488004384973659695723439697535320791204177892541908535344630434266674885618324832094794415855618893498453479094539493179510112660666762359018073202434872710464811706144520892123489779649320025365954442215972656051518079686438328222492729284833214161229096055270714326933797024144462955573053219404478329534336470642952030876086927660511750031042875050281308217178314544635755024102574412068675218549491107660206360716851105453414856569785905304381398041527103812905507844422059704981463557169473158532160437043926503941805363154025156153392596859480737827523506081134442183328491737310757760206728734063603887852137221933686845834493531375577763166009191476791560062092979347520202243706602221512486766501169784329227194531425540882154339368931114788423448682256898191491696202931271031098245022005343829600125792838617581672915936017122669249311580512922939811463816352632057847030125824282270272003940969227931295823539331608434349471841233536466396017537180788582460703027514691111895232133112521066626957677540892711502909862076876606658220498014287635875595500822045765292914022647196970655971898325096700011635790349047046527800512003593898199439849359033192775021624365210275237114034050424874152046548424683146883153703109503890293819059662735017177468198283472654710671282802234178420520890931695974142495834933199761742244412201102642787370370377500065098086141730481432689162338969757739240068822630227329722582407634401720299477252206444808485862448153771338032400235427622552068209879401328714196287483991649603005523360245269056327897849247245054079030608962340375911012123088541065993659671165655782271894515958024357366630543441708370808964466051681803828211191002819619000937539217609960645804902268270132642721654048235194096881419252601271262874464796945801792687260732693201278372229733309796211698655355352746925216438154345449883764544080547606995171600195512668568112302696605454450998827761554560965732230311804870203039713830196738357735877362107243456068224535782599626598878181759393997323987826143465738895129724192867881345989527607239421391391586313625033053477391604977666403637752721459690314806221159260905486589332045109008292616447713639851043748166409191279702467345308490845670940279476158502586283907652213763469579839688963931982572047417954963867846886776581478091737066158302240827608139707432906989471556295816197868315723563651299187612908797573085018921470945503700789255941146003993453560193532676956987947936487288432967721332530901875306549616800577398830746451601916971017526557389669335107668792343285913570921684460723352085857485892640219191936487010556459311348258785304945198861940217910523953481527835111991743742893908449400885061959733254658258413680564984722259768976604164907970852042868618061612123608321815306338446714793534160352983374861935474350657031219439127157521008912720336164242577876519172424462607620364660351826004757202610632628340862417978065368807851363014170593521201060987230624889374303375884001088165723937814381250624715510504541186828786227871343659700258243434294893038236466999822144056270472980784113350389519878652636939617242023166897419092153662233159481434171341956443616091350625209133826011492806372662288990724743045816671959498053514277217260770852844572438464104373431863026773018676570360040700557391778576036517342975671751504316899961225092071453991198476057892454329241795511231109003897766912190243713992772069777394099391586565184664344612395444402475418003427100132852573018815290391932694202133074588200980196182491613656302821895771420329660400339486795905805650784254365888102088437309330302399610440948753550317673487344976242156522720652328335077811497739012274555166431532982366551688761745386416698887502090183024524957218188857797927031273660950207540385857961250623740684453488455196795586248394795854626462476681374002246012293900309609117963406747524030829189589884191251295206805043945204081040141128577152952334575893480195273290800682847055171500617339604954246725139582563964657181419862513163624828204455943461897932364107919873237419306947216454063797495419517891711141568299200606265211748106327775103245600677524727729082259066517799064183422676418606548920689552134514842071801902676503928112579157006975857571001160789920788030570044951775742216377090532816625121958605627364280670033150459161013011961846244398943703365065288583650933814498266388248356168518013970997129485961580298466802162407225181341091225791438306640967727459711619516612409559214396733346364129958821925508860175577559342536435218123972850233886631879639641221996891791833463569759699220163137661999809498569253076731369791440062823725212101586137419856704718126313562403853095585885339619485389361517383545530099024282166432965176074188889564362591781108503759030327211848540891724356467095131750226743115877468473794687818438072726308664301064724137886259039702143780846315319670542347965265464904038169372770177444466777105816350080308457051309666213480825344298322812659283839435828872595309969174388494147747812318066813174815294817752945001001826403634265828476192855288266058609936893940199025474981618606228938843743186169377461122569837269821467757687169504892890868194516384741771695851752203582419873793939166548360251788626235917431195888386949176513795765247960841819469327662061553499578541962773451669294249287228178826543828681393558215546624530862036823834378446943551711674667154180321389890542025720625036404441605351624255585227209318401034693366026125308161132304194126178525690007070745168981501891535464985078828895060806601719006154151156120480450584667327683440499683976815391388933864730815191153213506909472298329638427476123005532496983595551087847769092650480470261222499166720489762414103839076921328797900049809029976852558707948394957907470006429512634234509555754707557844937962999875229605417322475061980719193599103621009186942788971858378768013018468874030016382671289743624336314406087184544765694114148667989337433291409965092510154915141612352957629663938688120360051375526442107901931652244181884208345002288566583072622707389008454549284779275303870832355637300359270734122743178732320415685579675196693406651971215625170728982398246422891995391298228055207218360255159800831394070653074618201660422602738860032904343946476712319745576636872667497734876787236070441078435780170603167750274340077396685442323579462205408967900322274499527347181605646518511237059753587207894283678827808689138913974237178511479856626633723064706373194734193407890845682450301958648554860611392294510246409135511148095957050093654107034134747449071133476534263150605621140495906493040356669387243299908392042282473094513887682128787886009584103296834137845509839923465130616189682694153119677627683941249520571643229544736373895586274159212731203011842582472600092841678429114060024106054173531940128120731895948222281745123923282590691457259065742684507934210194484325205876435433300339308179434661779946028399219841869783348326889368921412402757843280224553346367604679312421879932127622777573505244672967869896754163148012231144632575485720723562901276983099456762989765421095817339528791503998831967578993661627808924397790226637598465255160773397784297957202082971379000454823821007266531327742662822522485499808881623868076214222330633913776227537410531852537945743963207743952379770803071884188017809169177494634459802004023630879461026338414328620022893818033817262271709180209377138976755233211958405207006273137519633096823719307313802492324292023989108313332041383643686279830180237091201132722797892569959890075911173327636700926551739367298996862049969047612784201252126303255922883054334754308190672658705142914792658767383363967142911468037890121643823867555348831215932045674443280214503894760335221413407215643486094037589569418097740228909132599843040457994323764746300228993745409393241490286778368150413268021751774651163329017667131471524557822082433693433633609740702012113222259290640476396246735036819339640887485665033848728794263061418906845690536645082920713456941934409015482815401904938387375241293093640320292766559827245559660876583189375353692549199358122903422581523221636333787798273370291851127071662468400060554223288725246515577902181717511439083579905118164211599223456198916035975861302383041296234268796021803869349042156420615902086599180983936432941204693549693588592610576423633248379301944268391374944987290516799295429997996612507014903872242775161579263444262243082519537291041122926333323643732165931274997304885445856843013966452864456163623588443805633758775907321349876235108096260041460021274208560934947573243762107200978990296458280985957349486963201026139706490942650760577369835544780282589416427601479041476643007898480011688459742585969999909454928918193632089756277628177994979482539968985588532382695289788881378124341113358630915249522834717279372151296033588419970294080239780885020717059530149501219366711992046221051696664892480322196163125962997023698366325217690369987988772850363114076727432550902877131066760772701463866298886876828295700165352045150842934732121931050678102478496133053306509582632615314580249804149979247847743243599665828573658627499811691336930116894090276749049966388033259890523571460073977656749443447538149679808886408967015482577490021723553783326995033456173122035906267828151685871972337996387699688483352027945159965160882413892056584128311437329034890745971342845821722983661961968547053177741203774490576540843517768454478498417654974922445589290445119549345459273367518231639245486534087982857059699751613181944220215882839202542863507554569891907107066047964903216538394386419898848288576282513562898543806256993559688239868355904709240317685687963509969588946948118991333541076917610934874188925072926781129723343707373741726617438622127222537785945322378384507293443468615025140120672830968269885739226417842831277472087633224148808675002690627276815231323530359410551277243033299494606403578463920016038067540566569217701929422935462204705877967577278576757873978183205732982151001304384436261497618149652435687422623181599934159143499403142085484660127779881885002869852330002741721480687740345016652389180475045967043475443602235994240867324600083194580022955023555850572080537894542781254852558545733795469004832804602587686070115295436548240666638484407016240057629381188369995687278355441632938550447755009839613279915988251058454144113043618497236929062727460957983220224066801910950318078849998371279160656590718714073334415596672388543506372368742827298584088195401249138419036336720245174962651416663857341590159893132710146100759145909335585477167206049048980864719617920720484700323864537067643698721599685975855012539093316654337873266578715161541223264246917449723164433852949567610990851911289821373438479550853195654967104713899400886857871033300043011936127303800365756851477708825619402104358294740205895340513971094308981838513812705805892826552864720953482158648780705417025672275030213975702724867781391244172710017560644911304364660013519959544141393991284283849036040016213734758648389268902846523179674957122650641276619240979025067258408451646439726098879166025346055490979087356918425771438539984097504571147495152297164153221524800988100354282037627573819899966916552022670778857356983140458656479561584368872929856067301170501849239702987594809785982190575204269731686170754625057102853298421631203095309853550353126056149239064540086428304883520986439800879600855423826263522088294843460041633850429593440830497861657657832149094988659743399497415880731623458466309202088251279477446872987193659573249333732349508098786347493089609745082351485256547536948687303199824782975165332644474260325075325651308231581543409676014742291121740463070096216335061803202812570543202656458538882009377334922518211383819227296249241384771533782737283982709801726497255779464760053735756042099753662960578628024365152710919089156826839420386081131937871455662959338855703190240424866498976203429129027803940077797776489373110543004304651362558645468212839188076422311444993746115924048224098853154313946444911572967227658344419247486472940397095757274071519205992261391249575456539174329281401995464392433117194091698585591419194055536739885981365997210581589180742306443537422704415771563523798651874190872381793142754989791354621440312302214337065410913139679372495412842194597992743539015902808294122213286962042896722192231044517722474539915518775432376382966432009985699797779004445790570461110088858068557111234098043554724810337640585286229173800743860994032257207228354637821986794749036592951711169910885374617436756627984265051256170582772206465718846527688088009994955790830212531390035243148707527753855299304164652056504249170393940887003001080877155961668654743995073154249841686647033595061385690036551608174711526033033681930754779746088482783088522273920641482433672240278473842412689340228314748689115772316351439341165647860968387852804331252013144663083673313100657123532381779600887722527284476938803696833596116575555792674949687458193287424553374400433853654244975759709196112812531652988105851937381797875025513756373966800342037630684605488494777809499730751490377219013062072939661717650335178084208339369907849623938181112784300659301144622835287405322724025220323302668414145852037965583108730961798717648489823209958460183019934764781577107415410728458551596862651141662075840145120131394683024174961507081313598818210616219756503431974248878096028557418811910185530933225935290068111214159398034907713925928338959664224927082808676279182247942009769997771797800024529609192539887780218149153226552171715974793070727528938866448493207028411904324976537745563842453113885332298348053545577051281898516468330755520231059924536844198581474448970701633999201155991151098407240510789156722068042779236437782791642083100846261887482080078050096634154742639526796093407219999088752630978435516646342827954186205373838021940209629327055110961877146240517120687730754459704393165635138481732905626789108834002770161930540467605132483778533514950574916162878217594877930547412242353126915703766219249057077947859082944298974266375514489213389001043795674668304185956358861957045687031078067449973385557009070787993674607754336616503830465765835231228573177233541564554085633064232029430636830567455551018075887016863503485664517958273536612269656266984417822641228816748836441211971888241419236757149975440695756526693792362294559431933146411452659232888799781784945291248039006766104059219678720959144633165670337883854421468077744766853420318601344322087319834054833871498360395728872851643797107580458821598491675954972650565936171759421677456453501539472311663369844602379313878481632031758680844437328930730922841992259764732410056672122052940751330957714309999178972309734865756001780835926949452528848692357100466849219527172251044195762707392647112840130199060201420959033372894761720632227723787936899716203269204719870481137933029495843846621846113176883451346684101704778675976991790591554213115669733847455962075096443215032189635701651961187769458781566587366647512937419850130233510984823342374615887485591883460863450651554291084191720561133017818669798882294912159945457252502345578442418405602490770215945393408331038086909074519595346198292137754707682094346310732731441188301295626894731748918670930681963382916012493637905821401813915500353566804720758652004131550550958966043967205778676961716664397252823815197039972161391245826231077196849519740158875775640651164003992215011790335846799051129172677647454501471959345558462140231605763608723616695422357983147299322277594901648179993878775019157059161836636436966402303364046889627810911171281542892472125057606858771320738189498973261989828994854190092144979033693726515422005529278657482631048854702182688179541210316597961299287419378427984360935103734456292431172840915586213458466504242692644935317867796637240744384647053882558115925113893291269547883857971724470616619213249067972280299621493825964772056248017453358166348487531751566557541521930134710719214880931403637865852416601446550943147082688887890776974009093883864988971278783491684065459400382130227217757549542516657257158977503140398237545597198032407463562116242210262688410754040246869269050786944194697169010730258558178027511105474769380569098730101358484593162762412412740158189328677188839290679570720038183830597072017927789467885080204286182791384407769875867626353174103294416933464418470549364418131945240142011048769823788430254924611348947161890825688518503829103821335401861986049831452664891289872991263978408902655162044800748223723825341682793638205509261119914901279521831380762624184840587079084674068264711605339876600784389172548056792403674983102934734015785295091205067255363428355221499582010718216257404515600659501860405084457902485295280516092660442218268722181451529691947489566294586282446770225441686860173449449445147423833860793536829447392610331059878759416073627398576695384057938190603159988851084139213100035333793359677207267375862096752984359214422683400140554346659595272949177538360689551316668477537322090166153329107690001937476031099213901027329356210368929669956699473581109862065456492562289862029837254399524573335532763678307650070623371275769070375253087223372663956414355896915133045379682788614495418546334969460817512997817765967732025334595862825523014282239445504768256408115347483571897438168112569904861136485874891114593241555294095197696376795648870891664114405202247880312052741841703516187393051365450723334023445921164239681651689001169786346610688412190793667232517439870016151263223871951640372928525565306090542805145478842499765660867921088986380490079086673550920533259449163096635933562223243142417644609767283172613778385773441009620276603387105117899626591956238699429969859513224912324333339576234896877508934413045967874572111437331648643587265592434896229245793676864969383099352489513222825459721024777335139817494965531452379588929458380487484963212799758427506209055500883410001433647508255732586217788318093275606562499111658807406599457331190414337744889194276184276041759474213547226703436743551293597984072256096191612085124463297827260796221925695850797023435170412230763366823072310696978185620894833886570717272831937979229015646338307369418342335172724155848314854781315819227026696929228392789558187717222761576337321610789250669173126427671516645539249597282231578229593420518666672004832292107636275106480178332628017905039606724365264937428969704234506405394799031495690737088621290982686098235209979931357808870791189520760312990289031132932084241051960764339006224202640377861384172681157275163415818956475852123372925526822166617256372363898654308414168018378741732251833640929655261395356558956130861397956343403131801390402905197982808226866436136696201994084562670805864580155317152696684646202074481254793017011909417813626447399019527439920422519291487609507066438049333827634793343022910187437794172067440470989196959041853026776822534656087975960093401719772814578412438246952392099124359428458130963663726851944505156197342735627130850231013868908774775227797781645306939238134789466824806091916673208909658076659022338466363898765667871148076473008643073345486215536146008718683864515318936446168588980073636475130194257020595721511366723580103145985603982166974009972795492881533954157295273165251205153777484227687246199569192537821987070449270578548990028520585790230391872522837539242134696842640808394862906724008593165238824156131496851107700518282140307616626799522220494449393354213354476674427899616382281560183987163739486449788554018557045887531579316612264523874666577367484931908827172664476590602932068295229561031772918428060370075170955842683096232152741392036201585718154840159782360133027584214298242227771261525856140143072048424555295361879541035930860139289385780302141228465737660566267879455012377198786178890007928579923345282949969664886134003750848159117646676662028686248748004197477028655777282999980289268469335679890143426517167084676323420180614129767717480565515528089337662908066610934084700245918217916575210053668161037455261662168417938391582187437656465411843745891981486370982517413883595054524736300107515506865524697981399562586226169771164421156582195327879363936814706812597153438546248108342775011243995908581558935740578893317992475952735767248428306148693236925440199150097786704748959398941240144507783990159260243360385567223900020167633287981769213521122073721949663974447033028023503519164002416858069484492876356245842039257161067269421565621263090997571962657197656350814296768627776998610778498262001952014606261438419682582050240174650449782132221835038679821247189422325312916691060565376119313846990187930279833187822935769121647954342011829898809341442965125413312257432247403419808053599744927016147020641773444204429881488559032965050797902806362091979356351047685641955939221049293011334600367754125325218532118101248559347559387935621763071136212513730763807469637301112276936173988605236320393604633682809656687510058196594211159010726388127837319160961621225167368992281779920773767508569220938482774818506000184374558010104151961121691854487626975564467892926845493192730607103223033526219929829275771239654826792831299319670245098104594398868622751370142092336068741279344065828331770291966324446462578320330132379495511249631670113728969595828851799104200770188363279814914013633511111444681425774667956049391647199597781622314190127207568521208647835517975142787946898962087421346921603398399201446311924345430172584275116097879777839242044161943773942318318834744122381141645358928223832161910574293546163450969242345923697528136970804143538283710250994062548334596986447254903345719551887824229540678614625661279931227871119174749681430268129804383444488507218596420866981704196269324517380692301687412084385679455249342482623983918583533703747372438732225738706294033636953287184804785699081464589200680676133287538426756692394309278570833966637960536177550951837140396797012349008467126009680842200112795275293422581763011801764881413080785299428284000310215268427217081756159432210232804949379253399198237124475645140791155412552833048708334959118455731490262288026267173166546374356886289815855941899174858166073811449571613051531666253175284956316025794954540542867478151681539220457836574794472243511220359875019217547345560278528302044383618568259996417907504435757126577151655136427200056794822256660088629064370251004807333911451005032900999809649210538066088640558315223818919078114916782452199262377475062446028176689275369666155860986263222314248103623836318115301991811393830089753616388146901499685547708767331819331773479338295311232396132069361865909634703341351702380888333574975572334474841612621531606257097401181895179400819807852785725399563168499597515332552343244009297877206435519858968416736765337954608572593556107995678554701585654568954583032490362879471456709211830496081627201103787020849344261932929400587407995509855098646297611230000988875737281539723339071081323467924486486300711294696974565752748269352154445134309065220316058217663011478080245218327703147397280082002232129070592734915782408151187909342353462894970731237375398718617711931533185332961994840742668940490725530326002985603214493200416856913784707168351751878389601924124468623111964116851918621811480565097440207574889793336749784999451822618574378613966139286799643482711670708131978115765331720907622316173735178081081680577936147877122026441240913643703485291050298923884408324205296373716772091134006806608641356459410006297748731084588393126542256325028339081649632387728151408912677050984419766045268658451805377989316520788846717139578160195081600091593462390309530435556626959436286207880427586544076419101715661052508392125191936404002667392655905357899818176670107331751269970973509558280388047225954295710508826693882776466676930135646618790600495351478857651787929595792169608238190090070932018928021886622884162700372038597568198040199227538915907322914850402898763455991573365406652762406273854754703724387752723296384631848069778897545167895580326709232405949745470361569889470049785628031749056251140885602607534453454867769382534503466936984059280406385833722217171648845150774704882410166152211208016631593315941478018720393474717362861161724916039952169721508071947050383997082972964968598994756416494676767803159187684447438533076761614085918074049797552062141877731385528948944125549612756232225026421016767672507671166248956910613762871244246280025024202832839100912972648192618640259199037149825460638368922693797209295872171115272056125188197075237759860585155547982962486592935889436575715833413669995009571841736561267431200920587454264518152447682130461966908862219261940095794489581654080762228264049299351823961192073872500138859371401201547758414715939743926035844459726303510622874404857609168736338542034386046911349783745565802939026413612148659059368377500155450250138693256840838456572020446918477398314171503613637033368737035063568992089183152075361320236797351573516552061236749649716258363245881998837921126576365438061356855226088569638390827823868548962180289626166811204745082163254822882677947112991395721107476067143879864327502379775175280933096006597142131748630578207176436911295890918897466291389788628140056622525907510064043179417831989591816852715397665328455039136885082691920903801448890918101571815717629462703661532785298502403985747360296660910235786006476534348920925359273035341432748331016100938438871802705036861424916638790112525500393404186149143049710456807161843569646023383921826831647707236490239875411944443392070879000976124909491975858810330831072424198061653111840790468512077315065156663442713618912825273727908641258069973077517762430075476781809208303020175769587850448167134242694978872997916168592365629059277844036614280396003467567282233064899515414070538161281976411682726921535135735787857667543582137523409921310598162653608828222257027922047916809477820961086281811425342919480744955232689513820851496957068243526217653576563733742102560047580479076319392987631573595058724586477429738100302863185378485023191297637689867800326485553350598169134331676399106053444584705335859850261669721340429869620145119701001254280656604283219962844047336564571520622308463741172505248433191095030236246434819523651373580849456473394915062526316510184881142356303545264183443859506124837687616273340315044290935144182313456165735758094713328459520956748261547505735090098373550592723151930849824552065731449910071564732641964001541266767538346192216565555983229377699797153769042425331491134501407149228129252407442529822878603479589131003334138656192464158488540302825540657256723605925890413539812110759754461862518483737364097868884822070019465731046858467450074628538890534340721528979398132309908337790223572525235462434015761551262546171020515865660290875956158947610119203026771870407328884155494803540560208860788822569210748144911754574236251521564932866423535427663304667792224220351468219674982162159393879673480969041573122615580859152663029926817322954083016400000898671307489765674062031119079439796963630557106074988458125212225557830538753433783722423580635185535546661390392031400046918167836013830992283021397140101285103213857271694036769564656723714801252905743404672779809044116133804180444707260523004924017829021588119500864760003436285248466893455796403885312259763243906407877217206769195395249280834898656041199347079834913799396647585351667928198011628778154413010294031484393652418500597613670834512763974451167835801298430000818709221255784951184119149014824343825204730921131450629532812113754454819327607517289693742875721783161294997881015793652162397754226084131144318712437362905451691672965681148058426730734531835655708160893312119103028992809355180948473980438789860394054817642982622935468952370100005728837199804717235031552569659794201652747918498257876006223529137305242591509248523528247425817150041783365800744785750181504383562539075401907974301054868166115301314684148814632552646431419307515590169826403734889764994077697540682363658970271948499091990231111959425139142782771615674691581658740294242556806452215561499322116601609367364550510177498955872572088280220056373246456391299834523424441850752055787383494449094281217109210523416706831599716367465460448188668534530993372598667991574130450477693442206783691309334847137901406126036314944780560160087895124224443905350814931247384759999543064349718217974900365609137734970473086500535337698760123604416432839341643103748924449542341598971063153504422343416870053618420613400366768235498193145874891615512444132583120932594938580252236745573322672618288799930796345472862308991990880298538710457802724206836544885903587581055673534452356328929499738152376975117541239300368864629912688368086531732585294693336363741175343642159885530007048252786724169524748650055521225515590907671725432527750161158225953571241633700646484390472884272294511246001128396916356308129501885101190089072470443755489124639866302199902879748031956578746624267744659208114498033220669174002020282168370284895957951311256177883834343166492384196063898353750539970098136710525482213786128019211901665481908838980549954616157017993860505420287078672356372715850822509567514069186900449082163182798560139233241336193793623595687684176382876851695604270466169428066870858273889364883775733848470706605086516440599164474359249471004451587917051720573078520612444128531232015972623577609757725075267452266665748539431108802273900550272149963479914497317198532406253553153137568111280255869652257811163687286926385113748455882556901707678091843393662497968355827521750909060941027360980445821980984051391441643345487983078741686535297915511672284814139057725367686794535978978246411443601389199565790193233287937694005215896856288088570786476713501531489346039391102003114947936032228282629588851965252812594248340044246034731895296146097333459821677444648330356367017111135382543376757826042817627317393896903188934376942471296439756498828564115065251898849464420177915072671071442994403187617442865682196519021887617061730438231181881993453134684122841154487192978380622225340692830548146683963277586069668989497799248186859945232711168591311723375980918004366845997150620091560693655606319807431984193524695868713790072909400097641597057330357824580113651857660436687563127135584870561194645399200454748000916501544177023277140249510612109398314706372491727293685704748721907436845803682584902708452464604615068921180511993501139209347189747508990507223186929580035930039755399854664606785821956006921510857197057141772419126511939535259191577956719893309352056414438697070944960068064020561343207681407006414510537008502209258029077539134008740344243704427701050848433683144735318186824272228481751124431292397731829002649215718177072776161128241049283548238104226412209850411860068741988219589785879734905046821847524172211567958646308202593096392213924182884227701063243677749650673957664172185863566021824186073152126640452477189229874103488299098357685286527500349897475197188128149867323717236790077666757426815897833413641772781910706039767353163115182716131639676450310086524998643114876705459106780005016243975113764796475514813916922374738274041541844124292488882135131118852226534528725110932116667625036525423336889457526930155393534476641920507467899537544933679642109962000806264506469726511875114991583617585293957707314179094544125476013327580633931529663260028858975067085594839352294603787354665416175764201512988556934749120812751244986880289059143203589498857776148445777392264474068912654426045536102858541075763461146694186247473124687844906381745401978709528661279975424845691405111095273236630850695690838648003743602075450770483931632008292672364105157340570386633222336763500281266796166315377269014611208118444619301552146725929236248019799784034051461665594734882789275980027932482789322619302844248914087100913537016122437985880183839045145697109436392354949290659800524333953139276015270599448678779543135225490969527516925402450528236473900504380736655706617916189738994085339768478190166595768853182748715793622655530750762587556038594271780467949938912037969701638964927196135675812617400059581593900401635235656229138951382572357891461469762931841123662606899607571948488892429477079556882897965139788389794241593590262717392608392818121520600338984687449961239175262461893135314267707744252928877333545067786605690082676630804749695817713099698667697893735794818140503886917618299324440094635972802164253027215263927089060327343070522123896006475640650038907443680498068447530584135257078266498678927461563302498386167771846744726097551737496437380225437651408143759402470397846163101852311954657083677917201770812855747140951186639778515125289782174074733502607432403045412605367864507513035448443679551312481400079120981807378736823419912852665041452077460831095938538829644073039951811418087763746128653486942940107201075214072546046261164339905394292869399741625031886551755447698614068385448728347673713898631826367865665885489558540513603538899469448923206873364080349547025489687749543681471978146556794636605857201814208357239610521398446250861932775568269189867347609721804702484316691791396063185313266991827820880168075920146348225146334024968928089452196249369859604192550244013658611688000986031830988339714988184856950138358337047201182283630525783636532329407074236426125154248347970274378919004818057426150888857326387900721304689075890874254931884759852422521744935688544372419513222314323923709726996078941375703543039960839926805236616002232115187334722430881273123645626722182162679165800473011898166345322610409263620782833838188737452537382456914279815047591498404577176260471097753456855071427422496953797880501615175635273056072322642242300566052528016588480384128116652069097562903068910969624307574644891518209537141043051978852946582199135748191419252096416574846112713150251847238317486748402117330211216824515161826984024928923294390505442486944449259694013075462122665572171677286903801028781546965623823127539852580728162721331281228635233794416983221168580817415861320174288405261617419210151228590905546933040107917158254081972899141533651928899101546457224906281252321344567989095808531825212929156116649762242024412675936760256993165682023302256736703656318697722142994257929813575229580000512538719260381385567018386457094710727096364821549705186597899988697065353566667138198156215395471744327379199934753539455879084925810531828985602618362374772851903668631332624939488481264261541516612688648122867826383777097312659686259646525226888190073273871155940603469192856147137097747500588075547999509971666520915039724821978858049766186150368574643805379683819207445464551519097538157097426137810694809122066314020865131546426276241395538057998242554745782787513824463537187919502939118115032510627781763370686676052295347279621373107528112555144084229951311648962808906924045013558599252318459586578512663420316861384265473933546780022585407287113443755701400644227908877552051245075726799337123959296117790560058481155183599783612410561934908843304199053830110730767119068251377186957971119972988025939674599098466419793151127463315550079553872283971260204669480227107620274710323217553637008832643730248953707069677963483482444164993393529230280523838871087122277556223405109115229073769960751018398351520076878352533697896259389761199726292012981328490291306088582293023835283681499125518642043251727984196470085329235228479180480802812346360950664590385739072635331369273928580555259122098467635708095184414968926202690963018691287106044541934981768878727207162730091832995998186577916044693824622528480056787346793068787296660291370023889679138571276427875406495035370909859936394915567704692141696660691670771276016914798053196083699061280307630988574070738455362515042096695670320929379277154052796331754251389453372919119238057890519900403277128409954288894298720270843107557976323765239396558526251583725764329112020325695802094223174122347133090377623435986365958521897839160486878825387425288227408251808325911572907107354019722608350637027606649536490488965100461697369734560938691306361538606886728794205986874818935472400991971635869643278469576371974589461077214044358955900046340546469002355593251472743161575134262784719290733645742848956018868626699481819445388806952202204779114557574427926316539445150429156535454696784529585277931127657329451245438863223890534813297344335002430786716147301013516459867530649504283290627755373449791428776454115265431687071814600495913082910172652990763237582220220059673170747485857334407648766407240573075180163631833617197173796464464977619253015734712931831529861265891475477056138702878132025700935514817230958797473365661265577609286896623630528445820565390231514852673772003795758894075819489939603553143320359701608055737456983462169621359559665388729058640649372660384357081394055765294085089538483230496468830740871065945625427805201348826440766230027877355838218343328780563965749288196420374133507043357725063630398555080903869630185821314854696015988110204768123469623893081274508541928297011052319711249293670263941988797458534304277170297402537463099315593532155412926444100810365166618146023584092375278833883668050623865138936393062333912942324967231393251563806312865075842055454879646624086200273350517123937748755543639085515957389396269795979795976339199858848619206017439506617140101985153498204262201133241751133933206347151571481549520030920106935578611755564688126680428144088551775614621809588396265780568905763792605937115546183581820625508744457635287060246532134359066016410747740234399317805375548272194852722852344163961117970585615767975285935617650382241469459706961483508118200459438422001894670370194322196404442046358123692512327978885522436004398170209675428132533467639406842145755162121154954572764869164863705143174656008572191150084940946424602494038718376089986720684366820585009983511901619342200469985957747132261027464759884294044684617394869341833411021567349031116505804232064215595113348673090756816634836039484385531078854501434789244208880820934950264053140399039787911808157239055884444394146158470348562421140006847524169088612801643432813406979805747776374559633556281259684642086793143964239020234838495772216475918173358325087770388509495227009878947478419032001385202739861838340290427671690601229111562589290527242004205238142079961745128545868697780117837097924376521069035416339798081868089214725512985592811700789332489858683956755524531409661021590699849903240330839139517944605491413500327739372764514722027864936935770587073696079096792841923148348115882277442758778039707175683927574138484468367075031352610517439904203280505293436369755606538473533863494577321530026065635065227823218669697974089131608729605466654911688531822536932090949642672452712885878899970548993209436765869364333453317618965426202297288492390819603002072412176974305820130236505028953066474770930810787748733846783754246885932494448173511079196576663039899323241680726195670152555306595110356690298179064575567602756327216823630165145648027051941371649837060906120646473639611588898760023365607992869686794379401498771891397239293692225049748804338883671082296807604797417525335423935527981917298486446798871780672443515773306701700576486505635945683554157027837157613954617104721463575458904884645379911611082396597559362936043525343069161838457450002532167229860439370364564158177878075969299295388169028209837351042685429258974274018425121527306023940959465985389527692310729222426403784219902065473088902615993673656583408399681789875182436241263694717061390170088561369160780898937454467693705301915818369002429472698750401964003425528585374483313564734200158908102529640182570108824541501429814291213598969085752278733882378702229598506332037206697104342640987619486268507506586748835132380273838507848007132538208228560923872682723030816551492082204554967134747906745726452966917475869092397121997989816738912481132821197690212617593890600913836761140596546232980445619203571326268477827448376817084596773258430497678539798484254015784626772901435057032980134128816487672589162348503965208883117162932161311934829630039943902899469975805731751296430792904057227826595979017878995123360471726083212875542064776818312009595418652357452259262285408250309795481899340022727334659905570690694221996870376832830604064701946623965633891762924028590025549343614900601896175456735389014088012497617670375523069040362295925030443671296912001703754998736524765057609975041687750948533408691750023636021309101595550258573893469240276463136587796258527689751684902564894859508377748775091291271039511439687183400170639386464348807883132435420975742540670030619414133542136241014124857027648461315381758399393635958405416149419177294725502903097414505255510054489778134510063425132798508820084942045220542424804084362000045595069280918656739795079021743431834209281701241434530336221941371559970802421805316490200963637998064565257907909930031773808988253497595326921104553151093368406242672400201017671477487235218218036143764253358140755472372188537368607733461445079396284981128169448626072886315642723869983492117597935305461267890585607486227893504279450339161842529951044297503064619115713518427646146839116874107267982895837485299649478824398859997724260113250836229685499159503915172586220302795321380827529009037988405692160699814416712514921328865089483769582832796594853644093390824018710679758836897179263343078353939803494669329339927784033582309243788739648969657263440544394767070472419551214906477163751976945034423973565341293623388314592979525747785564211070959345659559642343135017242016432465319937908802821793790478597891286645573699583382810652503779509769851413057066408404354402876069256966848193642717380312624982905066428970106982393835586493456490301435256763907451414151603967894342103286200555547747809085661116897729052688897163855271567970073214183558166014095275470416854383857773320378775907755743700914406465137901525786914282705674308756058139138218413017940324027966067711589366986046024525239964532791482289632755108802003567445340798529855331548915692697252308391019317902403552105563847404988219955258480621950303750435304062920578557476156750163898576711986627193289659321332747803627698224057017464196112114025074802079486067633256235806460549185857005636520668513086809578192602564481088666251489813073292712929195968409797125631344811626602972705730351914339854462344318284184092702876805613308408159581059096627326892154404727486044312005677732991900341421114492087215977217975863166827524142440280953354435923198656497878027088587429594312509902232935819652028232055172148210803932063333302681837952125982053207554670001377159307611334179861698616071414455769338899439776601053237090033524233895569705310671006078646859215130946438692085625706642131282477413572131320007866753911077648598580928565150712264001569816231061056545234039306070799655412669881422548917813670553887584920950236749161715071933913553570492122542040235798628431394115980992549825770087411804984865456208966469624511964330323742183706276925105021296751189871994817932801551863663133914703576533563897727361579405242599067358995838122798568206720142688753411198097351264511398601386345734415153492390378428714527293222902535572920391629453170753586512593817724657093522051180281265950605665225195283313931136722219693938625351593593227868013357123865898690112098786462189125986378310453989788325328076894950289192909230255981354829790409030448101229370795166809153083654231268343614908612866677936089576482231512412235148194583140331574012935834673516601967856243999295493901149815093514444917309852488341048205981551167819903726426333588293750254507114838817086573584315162115713667182622192504085403690964992912052531282298998753790940097754274687317708504219674048237398275768468026831374270425169501972762371853745712520697487397888026575918660026963677976376211645874809877308240451420393336318360956891720239202678554951997693051569718439644074270730540201573241581324037551440013063960390734444572015365485146485080889031427165959866989696622245924257662713963388795414811789796744489115123031052719171608288933833842221741431652877688374935341176100264955735479783053042696142177411729775858918468414931819975818332185248706047306994960134637297986782287532423966900510813770122749633021449216952206645804574829706261748523609303148484720809131743494032540277046869713804491701083848820707352417734929718531508843706327678261742446620280688990792628414607617541598297205435095067345330025503969452552039067916753568920471827542304895061550912147421506767469438539934709928714837733376304055073544459414101676466268076208377169046826435987959566263936710876274400256488390508471356045343818942872543196772140471566725435374709180758693737180626845060836276648314841141338356816915218117070262439626865520326916634558987683406681982271508366506479534556458331123118229245966796873041743914374082716415893161257474147136374048331982635603730991988770634607114822127964122827560664808395920302152431837068729028539831220014497867585557591528360724435777206040472348293266313494514442591525002971156320466482364012470006466611847178931312630482396941929401711206599050196675868734838899909955490028314701738277508448645802712074306912620401792856999094842133354434803354719181575091073137378203846903479310856499302666814887668419108566862162635541015683007884720018071451848853131918105802856603069649358410119739669686119496820548872408193782320179158426411009068813588075381859688799877121337422153379284275876880851976380518372501191414125955311081119878368946572016050768191864846756141462274919906652834875160586631704036858996016921176150751302416425298795268128812774798066939627318332020330309373815675958741415001109264588305548046893775866033013615684461972150647056752599651488773375470770770499416031291448779889870479968579586415292740243746863340373625098555425365580620213709766460868398728138781673354138547360226851716619589081150556649956122472778525802441026980550531373805458641182230043984296440271306972198056494780281740634979556981984142829246753887239268698622806837687524291978344676578179764602436786489583030107958909958482515645942002919105971285753342366599630184405740076221023330052033603452948665956704250929880657517722615002157197710449263796816675640992116086467447483594702601705222779357731798629805431331192016216708885888201907279660889145096126375516431105275910347053285833535606365301358595351734656616344923926757158914473395464532651801081832989186765914791154620544709074067264786767037210207225857224712239647115686697208121643309298053299403108167959903993524708331214436937837514961189155950593256668139603090749335676955684898946245493076638582886189652513156270946496056881460724642433693041472211835523291362854745815388242217549148989675856149485543688323993322852801738420777270005882280576078269112014864300447221343897817533854085063944102058031676756667315935794349632279930829349513138055045249419801368183297537921279616386821062756828121634315336738464419725337616833666846675436453969005377507032161940224942817297084907446165016799798608113619003695052557130073972277594833323013577417734037408108900052430020131038113241414377745254766837936912609629310925787936117710382074209130331670297426174517444527377127143640722963584855595876716785269080595295621718179539852677376342750746997190334377042235003758444601534083226551142175111982174529313146992037294633473706060888763667614170009600031818972655563174443294101978635261395409711959059351022053455608495562636368053717847882888214911684407019992120321635139185468303687917680622932613548921370182616342237536027318863633985906570100599168426596708087767767920187448860038534143544534974953267129118581855800308076555130417739488592295365557617510867610506581641555516624636427942419467505344962552821288078762909712832037686569673451009083810224430229301683803514791190569048013831308927254280565875398552492043180164354386725079189175452548669105576417628261771037018884946199367501177442259648122177338723352783814580014392495985389339001045297660210447732273279319254320528273511971177029406698850049995031043088260527160608869846578161719589560721605713863990173007613536553003938585309738052031104556499452582158729360430609360977296491853808313088694845377445024907200200305401775816389321253154050540437424870060447411925180484735448972402338322443061108510905519657605049418217400366221661308151412774013287295023901099712792187343982607167703791675147047753426594362657829736635585042429465258099721729405023731027613260071852936559002431939119841734066631527513365504264259622023697617224089112028570097903640253277799253367050198487706653007717842578501405252221918116944829388205820132024472628216976450945279060501604628096267217588232107077441737052019320727489924408713875695199523573409679548262186121088505622666618972338285986065806809597387308695581773842643425200020308194634294611716141407713412347468301550762409142419550911494975534800850787884104104498871026325712991808358901698895819400983869460197668616298735764270594972392622170940072005280242219588649408525575012587409453674299465472865091748295147074230304754923470006606668134374403034643367453629956193257444346211703950921017760208610274366360877698418047231570509385123662856332626994239144298694452364356084083365695338427177696432100378026914643996065606547184634702667381156495440652825284229814274403739865295116598210051186306647426736968613820495129011457174941402316541406323485574121482350440559709510559247768291752686054056117263560292102585741672064416445312651959483526843551435082313222545223043016069024847016621275006461714701219023683909800464983861449486063829052578281326133102754759916979918485331800580061336245521040457423051022311698513377611515606332539253255438728845861920008087393806841714276184637184268669247320215584554015067512051160244729239581659762338192680294554558771935392898002483077580829998218759413197111060859583929354949216965586244709362545660838784565594969561494880937368785045428716499073291333247435159444745417221101441679138323940816620368248486724392998465755369044694904515005330088332650800178473677425933395427325952187612594787151435648915603540253141491868123222683932741550010539446291344796446408742804237555798262268158868390007541395913017291053984771002741191050138273257756075396948495364193523818284164251933232893366566015150227804229825716217010223570200815757403975207107408492108427670093822260462833627179486880084395564869712113573605353068092277689667547566607141475089980354112867479967166076363472363546797009942829552634722204887089116724551399788364526630564257350172329501799843380489708829490947495242220785865592867927421754138400908551051214378422425399884567787972639789023715885039812490479863974573960144338311186598615631430561839881298715926558024336551150891212028848405011443764608763708478677794007561458562949219532773672508416264062745131222668301772085592319086706534510586641320848117582717728411426679128385578749917066801776869457609090954453279715755658618839377950547350096787939270855395863498914568049177466404103915843752434741054009898179267515304870865773296724885436345364789399479276230899681917499531222924664829411752107516386405059662212483026625626913795594758941079661036241188764030536705110432948839378060766303673941305505434294880122451950114300780130909672596799065795460104913343339856189473806422037348505754750911526434409970058157953085040260434171019849744121429785421228977208639564857189587928451811100248113705403839408080122018205783530104136850007976082772401773288697854857255971704939796901548002018593996250724332037598103088541098029188893271934682132307404274636307144459202272798299271010631016832578531807793587392347306525339392908899061654579898071982511525132419703673789190365321270164437195734406218979865343706918063386498901129283938468650203326712791697558558599794845932601652110403151101191893470388607303327916881753920806482976788132854631639110769938218934889846332698000056785963829102054341679473109708544221346429214651464762961578132955661167994970660597301340718289203240444432628049990377033457386473055387152205792943153040118058879433264355235376612399659996617961161171836964835792696629896338746295230439456326246470140522523942541431976705942680323532806906652290936859943304921966093601844310368667201037784744807966243346222772113702510577033111249705699911376094040306706524474985825386866565162716003251253208523604402315180228203990260903552183063531198685217171157467373168532428020498678356023665622932330193552979201976201162533599133767044277836354288550132622896581357708253122047503940914666116892259849851273099462255331492706602835198763533141648758482604488933211249193799567334139455957078599157007694889208086578775653788437336866765050806507479472562520879571918108257572229160936801829443085107288119359824562315741052203065169130357479758155451831965019593500862461387061578805610509823657309899594305597921700380868689862462865968776772319270748166601364106947397657536941596396699746720390020739191892079630475910115272681127518057479738569420896295833483974431866089495217118682928876527265673753693728671936755097980732284396806778706496040350184932093694739344359315594066228833433543159769491650317688329056486864281882544036112182453740479974309167733967665080725357656455572225257084114194122375569836807095075511461981716421829475773661315469733721512916178643138698308967092039528263286477081077608871227036096829031338522768178040881820212787301813267052881888246779299749434719401798597196055146499425546052818519967728080851652241719034329572802353293249861363289272235427280965061929297598078603780323118958104208605659297431367059122211008432553054261208343293755270886253509741100003644570356002340277998710651821957762756773323190662105252878181510754808874386538014245926803375804249053402591757560718161175695827783101032121211137151818288820325883378885536584856195091172260902440793499108662517699882061843957594688500522171639641396187271676486212051713027151343230080359774838505560622867827305225707218121277889976367820241966472258508779598173722784905063797460997605466203505936481595835459130986303712967771639678177820057249339194739577572214486345272149021007048399254651639941959215960146168634347571730997872648423548167557381020587502914357794116715769644637221659174114340825670427887324045451896064271709785813007311045287402757984887558590000717792508831929627593460499700629706765518228493284970901834451042576354515899236803820252455580297420924117855232675800304010238788454746421408391264688056573126882306182634218366036265177340139601132158350364927814250452936852314311446918591799781036169785848263502262157589841515229405238071814776142846104865112465466993004600890855535607061398645580525788402275017565837107872255938056176059554739368794517560392042417139015440242028386396669114731085524472572292673102330148917933332024363736571528000903990203304700606025659927878166851107153090690537019726771737674312475629216196544394058191677175368641287885985475695488756017101624087049234948790655297257603680263562296609395311468102180496169088606087408211071625910930326018411820790873325463289521501431764264081169227774705700366782678014862679375001040333277627801658514912280538455373199364453667133912267128001059443186022698443540248201717108543659471679647024462132315101761235169606184726471634241740934159755249291025529346553735853877595936576257323817640120090837232931039183494507535899349133534339817567202854425948079653013179837133465456847821709505413028264005903958567407491136822627293661726805488051356191849890064773179751380913569398040589662210216294075691654902093449553743943595191778475507168490190651297606823478823063926935163871848818022140912307914125855690660462186399125492239531857429507449593788456500337274267272480250998114402532932184358656676151660912984838083318569733156527789780977592664081590784867316140178818182171658164182792562691502180508526912748367214037336069593408673661141115990859179453240150698371465703496131639851433549800806377989796130343453898936617238549107476149508191922546779520896797045922313589991836585611741102798386390596411074000656134020943721763099435075845383356902942087797004293422603009549783806172186643279184934466818301174220831355702834043560705493156429249326637378131090766623021543511162054720090979706294872561417028894704749444528323650031426344179721368581550984568187880219259392395608390171203723970614381450584127703314206857815184000910948794743540200582277858302869589409517792035179565362289531179970455226791071482823722639663597344366375598943975208361227257864244052387055833311194275676590991869986942447639799288289092419349407342444169736124270910518602092382846136503619848118820551418746252346109843758689706529421534492342505864963233056349548674662624394980340290015291611729462353040067810238407181623517665629955703724108711294991401749685169196088286168456343982380231112036228893965420921329488433078635351456020991593358625573035073959372867794341205485156980025039843378638452278243902643081030200939098915981414761711457744394891336028867041900541708426767861693323009967580746230457484501493795688451399533518182128740274796912152229482605150986245056429799690103135089311072330030729880220113782200844189918714199860673792085579479505244573765492010727901887957744638741951276231674458783233770152655713938407538521162767341931015126371841489803151666455570813834644238701080933750688955989969131037684105001774962448338921365778605736960589796986613334296883631290852153875939586721126067672049179635100782691332674764598129262978702548054836528962157880250900781567109719531966596236107508807992077721325854027903003037728590720821284044780773658317723290892696305662464412702215611631152046286778065248213099440582060531519709000793205209847721781415768057311743057268961942501885157274464873753342721281027266998470870317885721843364291834279191501515149341969917764881046713721583011682729624267238170763388358255988676238920524478437598551028142552083084431503802945528898836668712692358688159670381931142128230638265835119103868428637148535963549763370086907962972368713513972812353842646344281428275670978420533882993858324796994852159845989367975719779631617346222115351422139207258346483600157910386426965680981351939407415899682575020758933643503447330450593838759747921230142682210661806697636679894021848225461803297881581725413677178426897859042875220684230119882346622879763757574700426736552341733497335240107282940976698947971902245379742862261576732611900285136444047209008691215562712781540348104803458336629736098603418990871681248329003022737173723499459243893682758811326714899122336963758909363388132539777012858284904903794246146120283754677117716930232577780047396371430103203149028837723407172041209729616404367215569434097695411529712577824695218682057054164229468458411005491481273434291185419542292113968219307799979506607400596279792999749161033678092479376801336223317886724814793538738643757268429020331710964330466932083827075812124898717114606869744592714079927456608133815178696994241430147221084252181458422467084119175270166231553445198361535190057315608332553195150313047997124342692533187677411830576669092403996368882690630069499221384385575769533021142837717374298105718024707832274219118304153886926867442830885393126613000969562610832529054733878498448014909867396290419255242384215786677490554705034156895685041083508489566534179208386204119933982393819193049086627372829480737540781392441327209013534382814357202443104760097535510511872554895059944585922642824292389431332573661759166616822868352688581155635955848928160752744971494304304532372019448395152381939025773961659745515866575236474552435153555953684254666010248023226069886066805475969988745385173251866953029711249395394831823946406378405984257907315086123611137670034315124934216682369804686131654774362161676685179339591127576437285820536267667484008367409125831644942492125122785197764732661776135707454712083293288508452618145768051018979938297025931507132887638735175162413845571964850495830737614721836484586531842417633732475769588335776960155305466694687556034842843481384504332775392731504981314077336246495013417733171988269539152657555681712889917877144644569071867213310479701917052546070804204441286730578586804158790867824107964797222685245029635402537883186288669104536795014647321032009982143252147808676061941113892114010460177785754209478198269863866720188928846427410335889867000966411836543521182437978872020174056404852072361863137742455140310531497971771588496200459453143898386311454120275463189242495743239470940188250818170591357394579320111957251213048551072877982272278373043122882639236790185668641690792318779668285673883632044432837236085762245871421501125380022486185268458623345289160988109166264362088997362080874046346275437735649019430920002586678539723528914294597611946380939442909092798939468250507803927763384105817058483199978758452631524871574543513579103000319626291152159237676445483068088791208095609990946089822684793914754134275713324051017381194625377952280852647288663458594959724892971146004799353996952659616919288329575186885328182724341668020708502731106593362154919282613993701586277421259192660997831497070904744591974568379778382358531916880349210386468248739989634688936888021034091439222582390832717617954772275125537424306142953721542993553987604798139638086390002819649708700189712327125269442774864355340596044270606383430706493619523164086368963933386542300803192964374945523359368643620282513687797487220629471469370362616239745659595865371775428217427595670585656585499945593972545929848136768653881063753119251429824307427498476125681836258917221595083753736137215246917495788546290160284204761257007524899525045167427260627666253744359367517007603910201297524419509412771670570721222361755753550540046956649371315240026076024886860811013106704365101711543783870924369593884478206426656080394127377923553579709541736002636551726060126233917742930267147245746023990640965148774811959433397059235789534594542947621317575165236166905776646586290520349316884295268957117927754235701267164987745677837270307217597968671006736598773762706011365783143766835076695116588949785564896185084002019969872739911740711938015514422576608559384198136354787083549922058796790269785552916296440237735616232552939570176914981467662669333653554020881251040180241405039884933888378225473441203023769087415631658066249328205721391157751373064619637241671038585548877431841257671296882452010868175418075421651655724213258798948176017367395980562957642116872198640284849257185543479366483480815543313243376049616505160975579214504102115919857225357818319209068575341269665410671697950762517210407338210301134969924339872667828523347561716236354261966808798265478615341480457264420934293091031452531890999415395020439741071141933187971535572282253279519298155592829132985384105744969888499297482696799689821109233276320153738979893746516068824004468368850267346894381998951241996389255940895462011153542992175599216977538094154678088249887012850223119455964230993997601528847765738212229773002925470405673226684091664215501863759897959091166074753340885564893747906756111791141097227146094795731001689467307499296051640404002977419085629202173211522268791355588961918396123502433728655718857497878880360548785350603276973565154035246163177181638417650566882152430592463511940465967060053321571486870964230309868751208163140398230264703507610152519751848023528358370131470108663739104915563019937603681772753152671510659713664652810915487700973504558932576939641399915135612253808573343559520570277850005219406655133731687230537750134223524959376463474402596380767892478780433297832982416565746354873372404522587460466006337408802422030704707618893559708249700492241196032249067294825892841896498461273726722793038043262762340972573858402423683904136232398681030112393961981784322513925243765659933288896191346961586799368205029745516101030803164534220758845935759316557862000309654697009939941142868308525155606152963828716037249214498152011089905886136224689303687695334566738251074831315372129972804186388829632753160910659337332962663341648043890903893273214033526319264239098921751706625700109717210721127042464523854286292951574526586037842249199379898774759128323362736416789190151303075193698374268450760815309223435702929333997590168998802115410808101745470543456928669591844700233273361572845449809149274857523078218710220053607532285373993880641413808952873165633890198146564680289632427636057734376548431824095139916055079867819747315142284826842895646367804728327531732022942201120139122917126745232230947406369166517084968289620163919902187836539850992170895108963831525927678772241530147078828608995394695259659758508213264081894344907268869588252839347697554387077126248289735946734542394426847490176905266154710788672144593535205632959055711980876597384825909624231973746093995649011083242086674598870006734565958301269885158645808412381732919533545237934447470282800482321800693496709062523364705674021936465779216721771161992185424306342144909709304945009445142845291709583132994011615015936035325703331564351535859225928405767136215125461893369669454477738724667539196384447910388446172383714424729050539005323518668788399720478638644633445766903463371852698800631053998025645910368020507360593291703235252946130852978701032809816363612751450768177465938677180625502319975210856175573373256096042728902411797204810269939847072266575577155901422950324929864589804401255383784120251616881370763111671249574350742032360782366574731449758173085015558483499684671032920575107117348006847172680232616693659432516785942769309405729919483203509283957721971751637532027711426088952798312847219648345286001880150752793462579807775309517416349815216521257562209289624105925712799835512678769468252016259137383344977693890282902458577768987450732974925144985430337425599139549564195892169258251175040726769064949188455685033682346698002069580763574534810963786313731432354318550996729274322786329620731136454084250023720650637132578803904499239939080752158305134084011503757393291616584449221720469914694654435649812771784242709249497197104055522844630763174149082799149911182672518517047157621627715747253477882678988169085098973642000242484782010785297270779230339986248630685327635048571147577077717924162603829614834235060581992389420359655633433578933867599726518430360283283858900038721873157853618004104000898285865910516974023120170509084596723132379735959928982023854294118121140777632471004600403783944532556986659432685866074902423393307358515678232739669418491067089865942527070973232217660135654725228238881595236951065373552484015204652946633206851193698663980249523908922926509866277939557171506629821756929357494139615044880308324859237414775915635437534780033392650130371308265978365084367654728892008958485886423926976247770424214419224510947908157480743800748025115501466196740579652599484079563232899772056959069338728005221470224500754941166825517049699139378054802553490881610099973540169055098165563701346175704381402346703133044844207899438876115918855760098693630333108084988086436141877581266778945758798686102674314266274856061635653355103007594231062299110863848425201545005863807208552555560493963910761223154607194245428209042806097017066227122539826516818298325611101147333697163347695382741345650902317591174270862219580147236131588013630310325271052991337362744744817808616937163300493829698208334558811547682771752290554711659215437135246362547997495225836015314390476659637497324543953411978130962441100314776534691241240229922040838050179320636011072462204027038337658335771075509023705329993046498619499457446160853468336741555555102349327241909261619450027494277812965515606126699641116935418274293209751597011568199065947564190436342250009729829924395446866573332151228741987751421992862772985026234491123320007114034396753564582135310393118322008400694363647039130690963116993098428581568257479974690126702256767225372404545428254953936792847324921212020095969993922038602483308438116831668901383140749177423107362810357275866338843783739369147774399984554555270112735709245722886370192855129223777369029741775350479184461246768552165769259514472121756911131114278446189211405701480729477761403460246522526994760710663207954083177850868252961385145091901071428010676879402402308128883763486855490519213238918359263052001282054816074148810731133485081907417103625199977355051168956666460314021562685209916830036285410949810265709323378192558680410223555754585923674931266312777748330430793509614176092074963560332474552983098596301469200787336302890745501760072953676616129446432601829084681507475961363974117343805699567288378119744699756490372872267130729041895187460427235074371277147098293544307364243555922142991635920429577919030209633690131959370646811110042261891813582338410166954558330203603481541427092805056115514528946708368860240749444100941013252111441769955711954888310739282367044229187792606000548148363326847489994499905873946465842899196212561037259883740677579118204516980144572958906299629162088974945605850812579974551473589598093189671473589537085056792204323444069286956602826766006727629931515735024104031589561871591945720081653020802109692397444011762899523658922574347644178067924128613941778829836934541412328725274116947348961437407558717950176411063035516116446491731473871766452245235307205141307993744497467999953484985616465573997275016471459667703985265697009743161453546014123509400631661718903080983735288881327139937881861011811199874525261682297648952381383367922956047574204488103127538001783891750105602569281538654423531894672960233409996453755584146027338999717494559457652585820615893919450614331445733685022387302107634135843583955774217087589513356649931721822915041712795904565046672727970217300034902310070675894370602411734348525673189600767620426779162341873654740912030664674849104016514590098874126832928275771581779278553930905536652053542255363825532410099540332065471583809754036223807233255603519217173655405447440694476647379462192609651007170044965330584241259715736292645477301350081000649496619454182720705122477421782316011651496468768945327568064783404147430874968333490687423307964715077414436740823993979020899764504575165462233066411167873377759268734945099880290016882928453493394658421689011917884362741908820846249672645843349203036206034529909688429342368500046010188377867521343242395041287338170784184637473384614193917459692227581531654934045819863411415887542540234141305363372474969366764133376350687631101782348665834098296975965693154714095163409829919867371017514639172267665610530746585666026363427494502127178527212228408476543377642247299894982089167775556847525981392377457559932639255640672008841975944171747596141487885879342082225438297426096594442576572927497485539185705971253076031173759502657524167422602161071011501968319845377425981296969980143365863589147673687730500653413771694291956054437192156231599461662067580481643287430576623171833641341091018228885648632222019305119976504424659880134936523332796481302841774463110777390260687820028417330265455534207367639090957361280812544555672322682706256808070833867650390284366784224324032073814346146326417035080481537632358176010537436265888154526168999018000855934746749011986745650982491116489413294275060831523836503832942987953111964899723370406844275495218062840677407749922500151586700678136062445217300019481407515361384612003678501708208959938754200281993621527069131122431930276014315759078629529788438502130230711651433062758931537533355730520611393719556085787654918192100323864858044927651817864067203394480704600504540446665697848652343059600200738707169988277175526331072669952649155778984423986588207448824571596708074715363697898915378955131780710031718011095337521424245807906929940815261320987914832935180068760298690733865784609556367460200878423097189698157849556359472110217394237003991975436503197016153736164791791476696913821448529377548677091760231001262374093600518024564385506895571841601533933433373168104438998737962253347770922017253354220341176157960189490728634371403025689099221721208682809021203915002854970526756807674658000243812652654585119807826621092317685405922276305119077572357251141846069819515804071475136365067807301945863813680143614359259634366393373310055944831163903851800671466591331385502941107009488234999027021895101506218420768239898930223109648885949521375436666926252446730752443099873057648265041831878217200658179861356058105468615728621724762245020314553605772323898287522646682434838069500561961431877336903357033449313340744565086251131003011014132102665777692902287650284224470799585648630394573917500384740464890555280817623979970090564648593000117994998247407583987089754054526088728215136691572046810488500887460769079923498025956442236207587177428082682363230262025789038002005039773965021528113021310721869456566948270107889472226293436717195259237849559936614412906461313658281392405995068912790997322337664927667006849191714412775010290446955267018960006957348668113373653483434850266362868447180406493407726340361908270248687664934978334649793344980821382243865772377545107216949666484968485092623649751810794492128492707076603867775462022861118599734733050629557553012210342099319102247741552439754844253614132953138795047122516191856941205106930232136692591869616471427530146549005942854066885629845115190018889553531831155140830190151882878484606996649954968795286540084620900439972045332053841490904623712039122529122479561809364606652743799480517927146798476824150697890365124898792045805001859892961145762678458776161062628780790845471651309086173416458392700444056555147407188261696450073411104225859508582184233686859166177828391728165072898939945010336237063167059637722315515499069140654650367709833414666546764473101395429698641841690213236291991579630628526302182219265287664645082006434053495597805873815928925597583798796220797879814213561667425778995187861659365158516224004520629984536778701421476723054596549283009623907877014084274026326478176099929310715585925580439514545092986097779897513613873735677791656454925479619188397855190641908896596444401500930912912441777903977190412082696971867972692402518928957545170271891195135711928859683931027689967773102133515383174414145794481658618499805655573697039345248001031449712038098428365895236039038516748062337367807846706357244302538039791412248024652524292679294689212032257683369103550945525764263899595611562013395947953538852955670955376077528190926975150639768449444157136163830732450112196970099585546806035163897834475963495926138777728127949458088519916277378910335508278981996036016860704290258873524723852256841023289097804969880102978182118760892848564285860682962770415222282876985907071519549846015050693777501280256217271579519482916873813633316242030901686577983435014564879014969422026819919199856924237749388961880579419073450810193536025981702615567480979292586716900422991299390054945655680362448519119871785957897337417256450311750991213973211364044316082353414243899988382853526040244940035055234950183588090536786495099050893662593965433581088689212974098432803637402645083956888189343911322994772566230227061107722660818852082106749572564393403553573351899792450323960854505132313800737284273995351117427221000081704335156651557934124399562269109270351579220656112832523156603018462233949312867894898621407801137838383495154636428814202552291528303735921702483844992101584262735111955204583472708109323730569401020909936597552144388867243801990385927174684655813050537350334152568234419614586700697739557877072175154996678767326192003186089114756264351285797844874855594004078164650585686722538614234810886350562697659753612937967390315441316399515168580991185590888446374166424694677484491403021920981828302762260827658272739090074770262273268870052388471820156915583967142707865804015387875517505156690027992449092570842337505375911448117393523470342885670243577804015835464201829996477659950882055120617753398483117420261639725388979647826291134566526795190262472191384424687382885870917688462962941325972644422008372221406575338728549432918317511553683732243169921008749053540133426724321153629911974104427199735207017228644001515444240527269265312190324215308124264833362521804482849888039351076748700848628603040326577837620632151055717277981670801527084326077220453818963111031758255576091440900029398032996284756560400258806910007858796144693664235880846740396747223482937615490540959268434829099795566107242160828051082430653730194570017062738890281894624752087386977933768091974046373040205298187983885249209597142177509797576122359322664053614579712201184404065588575341487927733260554022825453201736813222815033016844631165288282963204510245117070010332664278507170245789327369756828915138953461703175322091553067203817687557749771903150502731999755031504301181256109963148910639348066318363175945727705748829806049117682474375615848748841222667767282939103923081131377440466445064650371356221037210163798727465955058417509662208539932455628851648916988863764225809243969717465354189742778551176584655719221191021579693559625700996076005172975206038694875719281560594326276906367271076936124440294166356158482877476588229978867408838161604006724850603756750441948079708354262242912118157565430601442532176090809585493734051677197827920767944149892283016946277760349230527814050398470557274856438330963214505999647367112272759143445446042945778794861127658674817186619761620851462572224442426712724304835025882226848223980858934931719912397051994596580863926055939960287005689909343271090877541447362296086482077080518462496233633556645071195390750053194365997042870861317339542431499038178917371675297328663740117274929456350767569456463871567459568198600942480224765126691937486124769948577899849558851947452832585633647965858844676671520209453734643160148719174624300926827489279830294499129130099971876641599439481531601506817627980233809972117312626545585142947585583094271321811886035376548003104231197393506729308284813264783773994770052362994271075075236835849868005442263136695590798596378441482312011852677009355244561800705863346372039635114160227068363351316399671946291684424640817361960468513555325822515797647044519512104941761956710750410489904716826365510560723240155586141272130473209172363170843797672418872710600759437227760419286593485766402835678023441389699159382833196148917374911983468352850225579575702427825022791207224016443498943110930576710835669693098835252902971725917851486980723012506043168927881465410662177081788928687951784430485101890801555062148978035301006480095819810789842124800211265790069349754397748500952617162789487207056650359578823824333665793728095172141390610380669820077052106707738103515346364672228138736345002377031957112091091487957417863333148287848528761934064610804578741525191128094989114693533854794034821081186538600208576364278375859200788523264493377837301159937991319915569452461658016224831741558761725060908325907299383223018946327752351033884459239991083256049875767149910913473130837782861741479315793003208148802568113350034309282775402594078102601703324736945498869565674175987684961273303980632089676924044928366041416550098015815791439723912799751190462501563177172085234512608587795760953464409442049777904417571221612715115059645497222390832961600019442701775618918945973929180138003445938419016155078027907548772034684145783933412083416807138705678238250064622416230995808047745154902994839342721109669641169684550095209772717860041926161259589141731294234559277002794976139768318380666380972023686882840797304543354856050771926182507319363030984437538921310002859687251214519732264516448452282368259652839928376476619103524500332205083281647616682756424251597301273897333036492562828189657892988358997292039309552359907393955764666001844599334493412170092626457519328238552572949141526686992894610480317289391845206101053408624650099814016352181166695513027700288978447623917903518807284682934870616752500632268681157169423784602072510903750910648782332000715697829539500962295358324037503295402443862627157262496823367724268066818645793260776156757184178746602303638911830701434627059419848330855213011352729634423911707565814922888331207727147713676083923412904957308570274970298295253434123296334159604878376054825749872312865682069251986857370488709341402126061229346632533978736522124790153198185491778461461709480593088795437919071871529883632770077392599299654402384765099931158879626996833475908291460274227004887193978331364159491897316877674393796914363274669822355469490914004330527535611452988210336851145056934328002488454845711291840326915674920660092410683528433333295483907070682186784321656990812314593798746031727635425566340941178774013275229597584178453669479901194341185787105730585120828076247917703230536121557552619087035347610089190598675751892855781996720212293137621042424568660821098860726202877230550099431929546316539011420517555076280297081037004977390989384984607748163303301333389267705578612163120519559597646918255319845324618376251778930712893704582323924480056319729062787793323655732036711116148956091523451882969513014646000655048160259553143680817439544969033277137005310123945014891687463457922154184325935402191831188937894403558975701886163418334071747984096968192373442337512213014040267033566503207796240424911920357192285668631729767434909477844797470527068138274002364236749448674475671606092872058536582903881553624972926154655728241384428846080792293130912026140047806943506705686636065311509006578248854079618814970366025980945099787020366717280211333797026272641349191183368504114895895950603335183756122701533080729062329177167644934421119454402854575828950212040184555162779886881583433794584238998936579968551363406558749465732996891688168501358888002434812814300721201128251230735651960938064292003742287603983759923805887529009534844930802466383865240997045409802552836238250780894663672720789471277602719626255050783663160425076297009504569888447571842589469355984290583999328570723933134933843379857653843433508256255469211743571387678471656445539533667653510815208530159509112948470547707282697748558675630933247126055970324047762774922302197862707817033206997184685193175610540429078421400705018440641495011015882797712026190561715541460135258042438155789003958170392535093484432032956215398650873899995467580683911480965759917236263551503970512539372890879719682624744983190354982129515374946734056836988765217026631835945770533169458720666790394397494186676424686696126697362965804628599103311787359753361995784663511018232976451477331394756085311617227574712509791563936332059940721757007357502554972369058144335137408395684881440976522925317353193771526883523353886379616805558792612908802841903838491049246444145715392423921949035322243480008674640359610016122510556071822771215221808166994150568235603675297585388532489310687194320481302299344466318162364333879598022450544541263117319307316877611088555207769332952895344016977039704746148646298277844393527364914155041172993078334215475426648364414432419554751667468164079822961140443114924541677652377771296985936923764717774249256658039911761689941876708092900481347450783674060037717128964467066178597858571018900778797604359521680840437795283534462015068513922521748496456898102040320707624820566961772433274534836212307894124890908158782962946897963121106314667458595754120357103948704610107457310956375632118103244623009522835867942987620732370906785536980434204595939771081979307990779171185802610479346093372238737239602859251393264360663434856830466975800515205917702475758846534355544689722412057404489151100657283686370504016767878452440615137709958402027353318142447689706006911356429478667382262835018444785740455835393552520330143009173821625707180754834266730124682249766675067926899646359919441385210963394933722022975597407367982155475984844118420556752277698483180286001947186791374778173529625505190235212767582938092326591124223443362843252785250094517333050377269000986704061581104856829319036492012267713061780326280887288676062737245798539986962287605287629955626527303546925131777291649976464612079064150357053331545349452447590725520144622462151039414550914921220584054688067390646283865923240530349422479281607992960399871381374985177272403918689187032397545709171063144580726614591338530818290144839678789977007872009519424420041327932256626402233410381587195892870633500771821565031042943674651871711262348989155893437763872617012899792611576199357378843883421644656436616779883685940396865228636107162944414415336167027896866698409524107190147192274710540131676797964301827108755162071176127838019515894122098036350658522087401702685539614839385687152050235233811941699716318689137797769158967381876057857672670827833944270327381053342818866453320247852580656243768248560335979586195420977324618790974297971450505775706575405188332211854752321830651869316548974217298384728597874272284624408114756899225399067190601304463568966515631451339883562099219001070072154344442279260514628320800696082149639090320510956881831761843938424895094585341861701114855827264042521794888857747893287754017097267492424427966135016782917661471336469953302863152380845315057443081338426937761058073587233162860247361966763788666377809543212456061035328524810570454608087320215441058811109226272846275156958636044410788008169592926249966192574754971018873504414013765745551673399152481402457003587184915634538872968074175601188937213141261094330789429914877571194521843949770481357259563426068758260321971157958090222457591466965728499550626309580676012004699326125538885539371102571662321652437137442276137344157096711458820920083728436496579036212612730180315505026143034977375682184591643606040788614320611378673017785477174799996220468198958752533663780191405314521449003271170806602731770574305568147337145851815065870426662251685697566806451455033459860136670420140053625202305144488747394668717974912688836157599526167741807343969952728927347625337580168113449006436941418525032549422589056763846000025848500313521940220491921134126460487052242892458028772096761829055125293969188801186546527512427561173155122953360092841476536176831060350771825815960825800735820995185288799624338900494316844302971813814405938824965596327930720092660339571712833507669121038038155461618749562919113781498472718057072634840721347825144992500267744342849382919182344878815430422562262914337129105302677026769559420294343642976776373130285262154066897063564898839861078177261585345879703892020594781709593628965054761777050054858759120600255268358487913906587637449354536692777209462133797014756318179764161479071551384692427550894759474981859164617220548719859510673892359175042438845065104101194111278563426666393091700048436477538637652340083320800942356761053357186049654006685249950076239980938328282285317982355516118387428542825332385229057841410988199957264359139494717538568263279279879510872243057982658564037095178792369678470772212860473313348418601625055280023383713207321481403836782341448938724184209195668900466107250362273269989329131047236040643789698089615230166731556113130653034542193475527179494636793084271319806330913492867532760953193555854673921267741477896061962456817288662328533288736099138564955358023252047953680222553997002444260119543671986901938071402976137354164853885983727473942794194392884874155674844927086388187972522286836299883464453186694072771854672202746944679485281568858348165770269504548177689361630283845731546981180815954702339504924284209857572830595008385678765057993866083227352369673366146639746332493537536519705638259783915773950527080032729782775074047662554572767755213156982687831581788724759311498411285264574949324359121577767785886461236329191988688574800404022169394420589192248897826237678243996093323828212170635860951800833327243923689089665638028372666198320630305932130413759998233868652381748678058603764118677731136631647577395193743667427698065298791758285646346521550028171996608247739633373536470040528470803843411027165291007275371884247645958203043776482187497891479462244807988136632797865695596173116590794276196855735626394220730054442980847462975634293113206314032558994891808042897763744801951501599688284621403193225580578432201153793350373868352354511576824830254298414568568098939748569811455584326287968210214944712962138673961545990632028849117577183969003885357153242725339633215975034435434882952376304118290567566336730830773095604045923866217210808276432882623987402135964055094571975841509804842817784182735123097987275101656074580550515146665472479005913781673714991938739738173383264407714607520654389101264133386810578145475715866370119740489440633083255836083992621926087114456345735499232037830914457807362569580640915081056831731722060120477157683532391163067164892695541236585454155063556013859058422040648075936384597169553628864439893930608972561999988108787028512819199547982283900141533260007298460764307744099293074866514705187683548384380570532879898111014200436481052825994739298601084234036456666875974463217042239187052627929977259872559462034763835500678387355905066587452300362634040920162197717059786035098897902685991508304294837113441049212469047425355729614362414431031196236632074559192607937796472159746979810695974609111716820162089723863763819388301527934423841006029671948456375085025733733604085746135088346916656055314448898468015557889924216705582486822925865808931388743698143570417385683949230767228347947215699962556641224647469817255954903187332599293341904096895791153532322640147844649534014861778219988423962358018465051611727740389631003792216703459524416796126376551906017140982929258327415859480440463585339933135859667677507154112502581672946739389785397566120506102971620426215029446901858359330896054373859438619535522719933255706054911278577944929667117657510303410830848462416043110699501589926980878363105098978743050302074145600099661093865250609484069424312129771785865937931149022681622376610020339326639469577712176216544713672053545868257593541690590313995286879505840510160450166573166130138991579048038168300538459799826330742926364350923519091557153753914493316884908781913361904438189915510219942849865782195657976086558683322602101004545147453091568767401592115118215782552624646157391636720770626296369206629567069751291359296514343212340553877503306480789759640840134612787163454788804935275499505995032977534613550816924954485397254559697163668704645972373160257384016643250034137335206046105873312916143039128698716809662329873151829139846952881659705134728619113724469328564426431561067388101874236650114827911173280104315838212022869930717972950618586630439585965508498085593275094810052725973466012025852867060307649429186949279794324241068303819383440616675245486869372555180673742071578457266032868346543209144281307690013133593141799819928258272378808151678013191813369044045159477522823117127978439147842965601645932525116575891622172006229284468175110383892203244626389424136262452025423782145789838244519759943397126208063593368224875149677673045463099393743986295400394409696005635274167359899069103001093333010672634150450074601864533309447941487196903185376876589736377597233831258867137753211705751121651874368971649571930199978689188550398596264000935120514378529379875569647163302046904040195613257762279548505652894687273664486940267176123108401549739350304622087975696552614388685737973638568891104434581539959230983634830810259269970313828184176551729235339653030029023760445384681281724632592553352639149310287385797398740587792447760358521593257359495365332291784459853842978498818242883818114712419552861893951895879512110168667744455249278813455445558679668648999466327486163863370757561169522401651453344409407135105609772143844685571234628093303391634806425802159143523420751300011062769128762705193140365384019530219220268927284900619591184923514369169757287000496770379457967805469206769943960465070968301130777847089377697423619978943574199194233847201316355165789873088616692240596741772778413845968344389136455130834386766984437597230092407582888710385041978230666577779822511819599119358943808599967823733127766119184408926566562249805235621085915159517049228405948417835647217329459030064654171494251592402884466174813695392549606610195321942654457383797566265840860247745867692325125157146338321288594522787205978933599305783790160983014682497287521795141561645404330682199161934064197035374851809554672244148222141451287924587186950015902038470886985287644745355884489556162000562794464696129135959100620643369454164370918390347772922617616988995262375275875390518974320531495140248329831157724055924920792656533372370771690954254786416646850442577850760611783889930957593749957171183874176634988101913804165283514198807619839090288903618145395540001626168332715389854706705824088335887818478076850960411736342425173864685642143607659803306866857686436895369158881310721436173780484946382008960647712393178033571864338873827585568378216572500265550448153877043544656485104738195908722579720607822426085642600443287160266492181332603303973181214380334360140118119616204373597714353258543685299602556812449090191799413950874331293308572302009768755632279044478805688177942908655233632881871640187655420551644312011993803310854489812718587380593466110534525788809513234014587990854127713003768269626892477337022955563956642382135356610580785511025549263175878422107950643534249984480313612894443986338385855702182583447703836525143958494218614796476461699750963052630739134095899122903236752730339111494185299227149408119608591871141012805546790026659466562525515690452749228318689967584301133001401365821474593901185812831755251809155738227952487610114509223976678823459870529496112860232037632819370883553107836198499484391523017650394963511601199807399719992693435495682819429840372212749746962157320491021035482101583850173942295509734802663925095604148052812850671951780765631034757314953642404388607988795192116310446434454649105728176576993194718705870923303614304509719708139491660015150595498554164572773783457359266936909646067939039369184055673498136464848490811922869104748565257694372776943995279214108735268498153304114095143281692895397036853065733006728495075646076043255537123140684104201970807104618405117728802429720113256299655322696037625518018928595527635846354680198207209823241373580004696371104514446555274356743969846687438565513334165287837208756745196633824562445198562718054247669758204796055208866347788254518309413249790585165957656478257723608273214942385898192442865478811964338295463532783964110884496093071036778678943980296335792129483908669282460080618135995060509175433534758028832674976134761636280124267073723038915235586068526581079395832461374726752486388593938901220783142260605643498007542899612105783006286615522853869138726368189454859154997910509344789138226142537944448391284797074391024571674330889940973549900346661748596424596307878129265562423422373521696699777736121754899804339626297510754258955439517759575495330576615986670961782761193027376001744278180559387585439211729945131607124814563768974962498949878137709671863204739363582748049723250214377316931176773197256818038155473215569092111194882959669486327968891710794271644422839392057085758055718196102522429077593281409866663839827588276200088737967224101764451941783888019684208563814483578668645459361912181572629765415489334260204733497933710099628501831277811681201843610298624198354818016010342707562533819910252883072657191866578424632071733101923209396592624100974548710756000703002990225005663780521039446075203401813482934648154653386705470861369178691634236755924116795297669629124942515781191049348837979448472059277347901650801449901166409374138064633070460488567372509936702535000367959582469280558282727092341125876816047287721536576373796275517751083290191330505464055065501194797525355974395485309051692568331791369703630500029173396030252078015637583526719138221088037231240618692732527929202671809212604990186883114338880011972323727988417350302989722024693054249605378430739152744786995888751922200724733789782637604956628783905738659845018726372076720147490929387447095353627870846316247748092622616920123364637521798510938668985198066417012266871474090471259383305399434684725435732214971797087132773259478797630736507808909700090966249869384227877824199656327820256731716094907540817747075001470992914151451789438929533982500405938152579974419922696114722322483572615996178290166342309610382668155525432684368308018435891685759080922151198039267366542036749895708838598093094468776256152106180938769700414251737896721901353059611191376920806107234799316128473476586438281539483470076217069054200338121677221172357813437087475898800192084627880340825882289867810897034039420061611793487866053829617057252113916538486730538049786737078688653829102284849309610428708409300281009469795282626338748813190609924928510786619191603133660887870507997056581199149716084155984946370554753232395712478114795482942905106174580961946778577182006650591875982082021251920985005222681241143684348618093619045936541806569004527391409749623804401244289837236288065993480921800875481310911197290814894152247064596681782420170610138796623349104190197944608120608977365025015239414744861733519917928403044014546213852177442929766243507559039039735611755160796939018527210940362837964717444399635729167193352445878042916780383860783725860194185634954775782418846496782246430483412080272784152617110182031124371439782825208040350432604041217074239839330323354393142807682209906346915085603184949909937821073744295557318274416925294605173186612581261182892324152457578396803816240946575029512199480706153023874989601634920281917756762927744433366626204374761946444549354229104829440221662485703790564558413187345026646292190123802895987587690443540048452957490178331081468124581989612522026728998372823076094097608801650711937716537362888201320414722919573028032415009103607577307252865385108840707132388250769563887414596479259870780206079652747374877263628105657890449482656238012155479025409188962395333525921468759267992589134643361787206791539885076404693103308621578132269043611972943912557792530629908079616487801946905468023498567007844026593048488283648689675250106074042738455827241644692590371295491325058078794629668264569999876682818071970942321808320330248814330079814605275600550235997086086566652531044000133633875360078262124607800408770795986025973163019185578747021785623144288210736081115147471103837506046508565335829768697319732552834847424027396128638569617129223349789843914461893249885503789552477269665412950692035786074580570492772467386238974351166771684803857217448359339991985170510013656915287242789254503631575705386903695176465460396230224128229798817618774326332637091888699751565810254263644622685658954207845173043592876719344136523225403011560880566878540494957450020424299207472087597592402207118465273946165402205366802342999440505525186773685233480106347420039361191306515703334992307197236788458178151714879417397034299987013075554114085315609031774704968002258646299189019386863298264880005904785868377570932030457605446688142710507260777010293231918871459462818174201781598353485799145998255119922967985937448716661533090684585398414263389052408558900291634552173470640200781426736354965694129388046337416244478989478653965705948148947749665778695785520612711106236716299435766950933468162656614644276609979812794585831572173505136200759164242922572306134905885538143353784861898734893538323680696859270718910831920947793837746780235668663104553587644955879870326753622599686034605877912776657233689645379144834061298970019482026794152071392065903932552691661050599717790005687829211640638401937488287111737411989668329742631637836621941603570579980220425071853992824126837322450921039810236342348372900170987806648289807485927889162537571505524937652926583338099247406181631718473604510895481631932900629072377766383382441118194470172016693878795619162779158218012165671409504393705968670927635804655706836088278571456933070671609367721430203655439924291082256316117281800894683380384310207735329721434099725400405375705401607278258701654040781470419085345088100627002565687504097768626570139652108488966020375519487687296164003966420216550377922722779846974274687143753344820114407239889695455059831163412654373639076019555265700052934243010374866570649428444895493096183755188227972600412913145284100232874518048241314624616977958385361597448509802262317406507909932456736420502382745174521671984744932980265895126886968732211986406358559622766725741194807440922966547227052066534894826033933262441970302801338716446150344714247474582159025219769214328206342243685890780936770730924492145255417639812281537413642379021149314327205921981142720691014464603785886953187205716381630518824080160577027443206039929265589798625690095315604758823158311377814478179078231541134096718753505004762123348732994269146854506500760054911191958821911056414623565428149482754733182048616899663864608542422846491500746559899170234862648958028695847211242098796637768547526960397357244107677414497407855730982537192653128025687023170387151413123496470168523213342044659569083987203136281448920408813964973417430270072621541220377980912479630740691508988141069490053788977296783084728364925961301617732615598590753043841948293971003837032777301319957867950962358240055766173918088785383722679303422315598491731002533947207843972230619705017421872536945199426138732184811658760814312278640256906628777237479959884256159656276700884340475701812542416972855377297332005226062546292006363601768442224986905887406855717439153718758638415746939235359121807946986982683622341080667299807081192281964306389187049216217485157697404670161883636946592159548244451325595969511391976942216555000079050107780555771515619474314077501933684477960943404810845657815309605716101562971520439068306265100911986256554619225444113758422905236752788759058792788420529768252214246400974287773646072311860872024445286020789304199551236659169919217238388702025850514524649753851008683032067796842590867638031534807110128662176276465279237615995249978210908318887808690099514494550401198648642218849098444091838184551009615149322400617617872921144525960942049658986181816519034817383414726807737143262828471420082698751907502342215301512803489735729152258889557874448205597156421300646315505428893573523063542698204025490769172770370812746323504512742598936098508390584589481970493789972589502994834570165212735656663265874415885707767511257438803991603096636881711542871450755810523207119359643942869450460505993272058646137102403731488423193935063951214003588584367893302630720466347764415831553991467113795811025165009760826131961028143053937731099406641159370378369927116927038701661920695855556556359021164156353281761255830235700463778524186641682054672371449091289347089716511384659309438539161369940501441258220951125060461071215062288375534387931868201752203740184774711864009681823759381775787623588229623974436166463569389976184163241448145493093243333218959040894707235931596169281461004377406599956199533646835768878358672447351449083054584620989994823705537961208112424225931834203980992253476142614259130142866654251300918435675905929667305260114947807256933790620277114759163290100678640639566748679080144908354729160643543952231054250729868432636028450531232073377613565756275528020915706103439249437685028334096135932611354817308784205253296354331090982862329183943653122218648190532086832690477668545508681925725251988956853478258293890387924313612052887075600558400195837771301328299259873177390986429584700828827905737368272714775232915028995770602830005945469479725238888557114628792462351720427702776800849336533907521852964109884468866827210040781276203732598466174249987414076067337587931138267533088930679606423041836661618087989641841167731571414611918763081938588201737515312525699130107308876226125584997322128952392788901258946072924745419691222052964630662063999382153745981100054641753353711011607803679429886378899934888555351923058520175336081311183412602938072935479183968918024215884815480254943688925005521796312543912586495342848776222899767439872460931480349450795748469158931874463518248379211565085446417942753963684811998892217525927340146300640016357402453941181742275050431802434649612982775215462073052011694066457522703939050761127625322594237750387868521956020817052221555962504418708026791457802373400953009575197880139166014539067499220422327522043105029008721497894421653453653602527238779118655315582885415115627763350782911478729905802390079241857778686085927815670135067458750777165977256130693633750605505333087627940525071562844804528633514520618846796871632498570503680252348393015157606830076583737641660602197699276918604628005750782021018253757650999691121200373782273953541826472038033393347283058392515455545378036246813581970186732525491449972329374987832769443548431741670818527604852216648943995773532076055626341492260860598473893930448837056644845194735273666923584675769390616706626894329568727047493185729844075442482788471033058542048895963162487206870548297368933815771671212043037458870125225117387197269383520530507108425448123335405641871436556395252115104768462256272399251767156066829673416296765064836756333873837977797284824439788080180481018632325241162517366426923978683904257460183194210227657729500722904565800055498648939881529818219203485816638288982191141498734339729512047252448260082405526513058367685015791443136441315425762211652006415404954803555524620489993147580058582147420914719440215900737399407784140672283256238465058604707189443050012252466101149497151256665592167828703214932414044833638574750260000540457929036111814939554058954429507206286981015505771323110108739688463018207853019910587867126035605655523120628694133667935372992632133105905752101402667203702072290078195818364258932300707105043375011524054749543440431075371056484696294459477655482275280053703736558425012593163597052085412989633002017246107001963360193727000896038616934537036734427929473783237768643565705909479244814006966894828727167370942514572582978117684642903308529598670892311263153514438064646754057810615858679346568378719834380498446097207902156708659307333744130913027976107287156956631909822895908800302974073907859115788059254041523627660178559550129113537148218560637327803745102091337158906453528434132650872429638828458706733005605565661029119930493988407424027368983719954583891322161068968110001214047284921358547425764049240067291178092098730463438680460945568278457572660668787396718679443285068703491883248297782352892653330511876575030516821994437236274965783327937582833657433776181130715143012413578975960930326929021646105319655575212992062292835079948328454283207032702034549287481635075453625866546095460166365675411926237452746367762645249989546828747287698914767708205607703689605037440365344275956773354725602252869029657549313890700452319275949257260852353606672385932826648111662350761878345814335945727757148850911837398409667982010875674366243711369862487072930140444861456121982829626763065531509158406238173442917263647314803221299426018000358597607672972519275407784972615608484062727580062760549119445432498087787316306535016179938161317336886532822803050969871086148755397413641988994023119101515573439238607471482608388288907395188402010520729275563509602938841540819760022637507773726034931225497149279775994468193779730916776605712386957985482854813923175339191810030359608186228963990186965984918824431808753708634436629807793731517833719878363305278398447310893292561673039551007672825743036766988302550499060923961114934452578797610250035728712049246676926717444606384279080498960638496189823369545106171290325754230531652230373365176285880338093790419572061967268432846250217256018366225798828223716138167918328450865058293199879473374461886668794125548075050109734111558113460207104730992988942902545005316845004270770024774015327896981942727361110985064772291568144696851162989919716665924995899334237498780781081318150405298979186861343594802309051167030638502403571498097788204124592574468926115746851057492138654040913269508783604890922428994145821023599709753566885376137483622619574516600286561796117970071946534519830554147223517564370554218802383413670130669153550452381269117185183431834404630614413214587361316270317218868711849282661138915518827612902206480953137729009267210971991856949476058757327455763631369817743909486184981341021399924371901303400855829267839099327284383584412186158364328894735138817257521735072274145832532059259993091877587866793238246314946793629166201399521079141440318106602171406507027670444088422973610769096597992830746931592075039814662587716052204344228564162551686174624454828143460625816971421289173733137160931140346885642151765889493623598778749569548442955321268584435749367960144158041343654726186900049585978550629682642240742726671861663392684034821689526189536152768112828475980768381808749093275541951975795134737150929320861863613464301158299398343008981180618791899616438265732444778380771252650140947947842424512362058980104538216864371398391824016392648937232352692616177435157211137137735000763269339898535184951717851440397046883901211701823186816215101581751380137026453660546480917851034810059768039332786744205503355639101493121891859322247612708082941310317968189110124196490594815790625505206761778342905940132602146900193337395798618255046014963735522920634459687913769983895456493320335848625112818136474856114619365606567112074463716217202981619624095630275817338725168469530471563903598524871404437874378546146428480763691176310451677993444776135240833887518236399041792757067718610296753735131384880734742163278833391483424972027723948646909546744837234887856304253141820231431674374991318391667288196848961613544900854660526048865217964151795520541732341340456822757753526022054632188738677133946356028699441592944364899846105637463059694287866961408925355910514508982058238678750467045409174799363501294230252918765933222526666372352684155970158299348462504896658174788357952666048360655957657575829226332968198507869266454386112230884867949777890243528785917577527876182278839103769730761975162977118879678350715774517910844565015991113748099941458459155227020638378936290782714425573995361921030196045014090525525385351038189693834125331137186704190332974629535322294569349153362506057666918031873118965161414054401850475448808638700036518542034496771456295784910158196688759501067762450298710654367616776270423385245461337957858937882173143690043618869590463927955176041837923902786011706505725868532178025256130329261056467637146892219194833660005881714433930307813951526013950982255404999849832015473818151361164289821480079422454749484093339738885405387783148211786737077332768294596357346772684521572046224140504138301874207121707921017601176610728684979308288672324414577003735993039252910273289868068661754988996653430414558355656185824677169823604853020973018106650089892315317842799401584749606400098529380525580150468501541652812902434868806988928169338505704789874868047479660113903137924392386576729544650598220799339098469940477485618932577428984590311556889256472566483352386554287519923433810674857628130340516051773476949338486168742866024334950098201692706280996500435705601139724641639962475453272557272239954724412430315371794473681830004969044344826434559010663575022405652800283173662657273982081449434782463516584432073893808887591239558498185615099548202736817301074055046556378646574773292430954773146225784496799907197047212985910847154381265044552388149577799863685609021514845435649207375244514442927680567619058468744244704837646657471959848859634933832265835917626010419837077083819959470488263836565698173582901736024933895283971091842886138640001932592627026896108783275088886779273427636145655480328724533457920624083559465392399925976024530949283229711689534772257192199652179722527508331838027154885436854132200433090875007856939762292975261095227078805330791363607983883733438357223487407767615765007080063110438549160001058692550182571904072394920634315460277617823365339815388559901478830251075475265307295748703807167079037413026077229756189928884472751881679587389459964582106254190849118940417828611916432488414403328434779870795820265880616727906430130951266227954099286243937185202670832533149876238767042373340296449291188091813755070728332080765051871187837944648359589434355353982630514700361464224750657587487782246172504921429055553547599196825581915728828067761624548930146573202230641846504004244704719610376709644079466064531514739939513311420511647867592416277383712818014104901719348401215163693967458487265210289319099195249098325266905623008032760146670059331035861941550698928068481226815060543402464735929729985805834230712557047047525843041295259490069222908543490180857898063978062086403350073698350452741581882960015763691335646960090922968226492561544770815197140664231550967174789209462483850160236965713519132014647188033982185507189484069748317497041618597907012227053419073667764543650180994089071062125941297702615156462431378169940207726810345500511514737740632167121904953386472073530304959113925367780317322639462386637059628264145225946578970215133306819915487934048726409419932739772779754654309009438360708337952890229807115268267754198858799396963926877586274675570602944901401656540602979194973077757531865091278223512575780887011408850311318687961435325310859893843846863687026332423021031050676055511767820986853437643446457189319942291812749027834178037936608876196511665826024686848926162600830888383633296324963894597648917759231803290453487730981252902053978945627770099574250155423567797673545716643039856709957605623381327173550389229901555793200178973173785837725613419458385498025852968784979516535834539913077273855302640571508209519257263175973079806149350988009758766452789641167729581760219150806807555571812613484707093609347739810530834364081066597630901296885022126892488527628439028557387296289905101430663825607892359066381384170789106366737421222589755655142206615557101258994901569367429973693037747138241589055728704211990825531478174743886235345545711864919618239491554195762063314379182626444071463962853563402662916465672746358262543745561061574397204481019425955113274609996923998437091757629957797394966723352266538185241239518890109891922954022253051105413928289337972323587949447002217386009442317168117472709625600966404143204036752654755488082691891951061570342235664864675663186996163110125592604244258817255107793093995472377386715843345609440433518269261640972679274151264597955507311641905910655704227580809237811742293230167747148820279730886409548928085403545985358978432781643371898611436879463726220332080405414392274343852741027514072750479541062645815048421442769332058550442432940741833662228104750063360999941808039129691932321152276348929758242351411020378698112862700771849494556870621865875228644455082034524301072570437238625113383533919219836510260804527826766795419109918984979154617819036218503779789519408697274416530182317760839331427547072074192571519267005017649835403658662300810410635950646053077945249045798583819140601359084817212359812287812537978672756894577970030340729764870652397544173506425122975299259575430135476938342324736227887745201349848988420097444438488033244937299276651225332616501133661070762762445978828609263626030236896231396197969454166536391114696385962285454643482131784995026283118452292706708318290390896213789402532496869007009243843612100383983742470988612528663758614203075675412271640879569426279938049908067117316998317631757050806186874270416669757702198460524692416578130108055009824910511820194240311055619095121331178672065885603692717901793397518065924505584061826966570560346816839597667225353121824064645405896971238415846593685502386653585174399388312623960300203039308372433247424255613204332122382567337666003342479940274905546953058918648032254066446332503737717902317508863307159538089720216222608021047379180576806352174711534545218599740235775242719723873089606965008026520999389900605209021905443819957103827838623453511599993882148750568458028230922586275800879489355818855249564860423149093985421484570025547866557873146910140222525441617613954390413453329441227639345149618732783920950018972326239573682828133684790747538753233397057402289012375526325657587025307815366465278018507604602638553127009541276024474969142553919345227948830627243861233737026020766820097324764172627441469546610477037037584301302638690032787330209318787739040372649791785504022569648872036509844848740083687111299704762865885760114333950167290313601096167785405917143765657909504620195466779588787733073895831048753389539574988974073610225515567360450638157547610853724125800203837325517306012243340687557172334440851501776005342255107112684195760063268557596598055553934337237194680214658800013219356313113922293752698305926404431152497542288390827247471834883935980530704687379154839245875394693687347264200937944151596007593300823957436436253850037633935127656031193654360468699683899849200029586177035213795336280351925100463864352099151524849467507334387781477791366131975032408253764281920699591744942057025576442969115391236393463804034155044805953316170499813907200340197573551434850724092159593040198938175860339351825427653662454162961306682569779745389246908390836094450053671637338926029600645784119115712997965897661214658198108966648592148893059031248099405440678029532518537137112717629162214612428009014841895539088361064285793253149010429724060215186337660592490354130111919958409537662939488058723575171225238730097792743403694563033742916158524005409875580641499859236004159174890040532977193159031661390844683732144361832482437757888528976515492010189590680128329497647171407778440181543786905426288347941226316998033229108148762041225722735374268319015130252207873113563802186816687158888704184909202188718990339821129573650244049750864578407664308930440087241232407318029438589400556714603866489066317733204293213408131879625543961874088280156191659856258973523932321942559943809079843160282050153613154419684771854038360333482505516327286210898682281646386690268390463408589754233060906029876517287156233941411451934707769448660876381635094100389743690696658822426384874412716052578101279601438307185497357422524898580293876002502145532982485831290190219772509553422058621669737889679273228353580529142455083543995352307995569939299577764422354127731262878363792752872469327148293797452557273596613476022968234204908598334950781830447270067202546809108251712701374091570051003849775673560304824170929585457231037379859837974702524881256377963405319127619821716066956399737959027320311420199360585512909929790608561479248142910792389289708348111836872322865387553436409243858725663158817773255337467020530157637166752617086154938297294007120495706217095346463382446827621511264275609195858671643009129708767639330800306227721244670175519732062499570853448505563333945969084182113412512889612558169802121492413067579158726392480896668042561237380484430570037463595509545064086231469114170456012300720924018802246525726299290113288416034426518483661731952349274395771938161732253345068505815231545313240616038747778264168920070973938636563296675295549790671618915853910657398430215392140944701570796186928971767254541581759869761650442630648057560476721392754314154297167470436583306171462858963925332289899121050251944196370010431086960803463923672774537169136891445161583072184101779271013141980913483311973554784041171213932887848466076794968866396281728971731592807856756956464718094109256205026782415072254709535579521334968105233950489129630900338102692008068746642527082064956696908138580366266734943907024139281260987199749388539020916183454830991835602979708213989046742541106765687113425089668891176262375627533112899659018530375626482125322235864930360647154012489354164349450545971430344073989526486910483829410570287071851762664643850107103286053592971600246705259464649293033587400462162462253666081567226416653620187962952846118235576941041851415946703907009311113883317504725772353376602486304293954179355152143771660000333388743010823917895702977363971680274128793697460528328421042515237807720853239617583354993147989661942482702865460682194831665685458011634872587864292388139166339159361214051670710964669488219857646460883821843435350673702078828792242778431989240266519338439944354601825012963173182971870252051723626655130836435750843661967756123965110143788615425736309960388897979788013998862758804813595532463105238926776314646239755932237764062386792831296915973878905686561815049023615924045680851523792995667974711532809109174742961906723753832142653031713686910367030445296893838375708424409476914926769952479840719582858533687942320251313576795851700544011732777708023816088196302723218955731065711658152410468584031003163723789693656499581253377016791123055053757794133865389384351049532052808735283020101041485580515232568226982353134171855691269181607795943136821955922352871898677534597695459658719000091364348821360007268921182184903774443271760353528335910540979878292601590708309171921594733082903570777295027741749777060371493313559969793286980716596294612955802872872598377821366674067312582970063557138891982261575705868099240054551521181552944005997270858723296833619094904226988940752449971919253365901005665837127854974730966699578748784112638804673935956857574419541356360230476047456065589971896777375921845698176689735154078708978659126543181801947711781721323743763825583815218313634943822369793913915149273657471159777126974179334766180298253155456070412997977253623426951303210346461872986651646889618851780557227081392663879783032470636002318660492409973899301459620703527355857389197446300793181108974461513501654065468070178328474467072377374748132270920463569209745481284350946060433098388434088466387182101497083883362177856658343689104986461853999905034754828670483948702571701177115099493148627981448967422310367669319981129644846586520962841226729893773382259714652200794708158389245144509708547719120733735171625628629110108921317361897767393143171418220401298713997794803939700476196027357398661687967451863681250602190589517574996545790542874291199140136311765766914470557526853466796783376553756423566222827086909467716374263834475003422990054410392202387028965735453680152043364464985642531831614703331130993114412256536485905955737975155171967972371276327538603186205800520101711991819919912262460328670305587098517750073119220137639882551402056718289718393853172837309426334093749145580522144055385649678626807602798845981743589094391311955038768462498405433482640001159974263170794671606761699181129103151052602845367257509388643117259478595652470153650625015327576354595904849911324443058680041787112729921345987018934160074554929691654591942935761057462720460339292373550746155890190629295950770682280197826685297709320419100660816110605836941472410586181735807000931485672587562566153882954377366189780326218969576697410859763203069818665201148732584169322137087259629718404687337054460261770257292859320839263817439285472290747704760638542754475687935079898231602464934431313915356846349936885056559773448947629017277316133492053709714696199677044924908126433046834715777045369145892465186852402683071531252616536527094150203134268838407323024201990649268986226005420452636321094047891136586725957370661412375167238775921785279019262556900965673892480806083648057262649514653715522376308905473652138389025168478831368755795415189714187549424953624554680655735537709100896326440025325643358803233605311428063221862115397204721389515761996877312785435182108067238894522203632068945046097625666392686976073738292448282506949428723151816608932028574839659821711862497347609153477468791400701665971074647773116035165689878353827472845906242085288078282142983562821060921541559966070565756372046324607922891944769625420780777724694364670787846699315310278271221245889745909610696943938420929135651197585692227798325757160527164384325283625835421839264247113755597729572945028741129464787180883488639146600492990178205833465914272344270566116130036365763391362121072246568767630773537868539705050493639401263054875204684613768093654545323895578925431740086657777230382249835237608417745775411743052518413014511385273133419184008275158768199872582825006259444897946210893468179400681819734423553628296356132745748429976425126235496678012024367464385265334694475358040488296299899771993011421866051776785245175164424872566797918374151347183579284598690422528043633353547641778907677457388149961444885334913746105041548224696476584428451451353979855851645934167476768377058142630720038525799742651584171497312220073539389880652288939834025332694598976689909298527265746756028304995529120656229453202806734754806985700250630802574342876886089050559262109372009142148025610053890657100704411237027283941431828711379876373170159553051443413103920978452017740285939399599859259673158813516964151017130201795262126702047411058754941049409275280925212572260814876701989454476246700462387538203663915729837081297292079632641735408360277492978400077807644928132795213217710968502942459035661478543152706543176582710641003348604096410091039820788418103812513866596889370539315605316690584634453827152158581574119453208622400099409124053225112537801798703747154562570021705780873487279122206229125102953125576135998254230847111646853454478519010798709834697957063087921929247292648947679644997585685077669477870789947224376701255163884019973738151311432646984543881826241961506371520340460948807860767965749266909974467702109364638273354388190864129596621386345263492492985836675649599857521836943416694415538183136228201133111007527238989181366914302328888515357284629148418782696713199994388032518523316742520026667730194765001505919517460087107056345478191124188324401254403909526429091352316743071295960912725691287126591332455795894883627044317201022032292840716439614606413556605935489887917554859052446617381695112990996191014134426606573711665643140474388058993151205543522507439903751867816245015089297744520330685672135709075948625603935686542116437971345720877571954715026321847403235121198903287643779956874052227144106828366322121182190833022037476769635639927466928839368002407328267847141995636787807383587555691635378901273267777131789377731766024578179344994225497133177283086951068505669538519758782481495080823950572857289407869724468461141023073568428592218562447756055188239149957890122905591328566184852139900917426618711371343736176141426122711238630039359294566427481524624419115028139751651591174077102695876926419085632598685673850460962524497504390829942426689307783450458334522354000764223117622927996336249361457981527377422434546769976307953906290864903559673420095914657416555889139401596205866100848340749362115612486895083842944724794107689572336236508909190352872857919429847517662137193931436365951366786834110040432913740139143124657033869834463914556524600494430196749971827665629893096158913517448716076323002173039622237525627339755229618856912350911327187803619665254350054092686790377771930029151285116657213407162555244670829265482785612709113374743592537263318330694675331006974503658204834033381567899751147805821524676709749325641893912341793154586543717242970970231108891456993344969425228895331667864452301129509936545763020871468558473608817829566784612154788330379084473113706693608213875977890801869489112614360684471262720882061959232661905727248958474012645150286718208119409082411916555826656726152651218256280649408608264404638511873042544952739977128616418364778876422935638953918799519566318025135594565454525662140975520455871364064643566691633671653724387225623433681053167522393452230746433078991457666202573171433483862308645013540109798251194527637693901443965326173071019154301894410683949953220748846286326444120813141886087519472811371604342644020863668067827584381620085116864035826017015955926360108170569449744798953214877716219838339115500012587931188608851708936721410811153124430105447966563607303232265315092572250616275602106308956394288315649799210471423423481681173840971944206700771390095491628161038752500725532017742241268042946410976700098740503837785721237981790108333760839539155045737502077976361324860507655616565263633644302560508812501150479034814891759767093276596883104665130336560282042362599600635895857004832940038858760440587873897053018898503565220976334411299516400261490134029912675184244769725714996541373396529608217493248925781328006948734360787669221743744888707935974473994376516003244006019840495445978969796178431605393737811873437685555120905698821482575691869540474214633765114243666203934265891386483767207270028335366222679818131907906495444563426706688372648970342363701083013628051110261027300709847021519220879111390219283070183041501820788879279532468328953021112599895783960216703693325544079371991826125458502860198850274982697774076669309970765019758496223864698942484368650576242146556247906088282865934119458667992121254640475884571913221537271939276519551958390394400843662279855923195785022102270138944534250182884939878275314905595076649562354086331957469466880717825853113860562081635404990098249161225257269337818056827224072731192205352252937844636723269620349702451266455487633723053200409591358300455934950458518739019662588779529320882312713913460605788138238139685325320469960709160640628062703958739991322486041582753625463370611090057305064592729304344063638783447781701951059206372732392687769604264923432295888378167959092495679441009805965388063130317206929854484849040576037172841461912635304447581701697566505015607626448997966168442554193939036489409028182038253321192386932998280898550843143684872045747922509005756746303683622318399115883491039109081150010910340485712987652499586965541983482817564293861127383758936477231051995153844475691615027921335087314614689987764723126275890259240449337634585998801260053472640695545594855018071353790216229974421118495147735825409827172461428109052385967401896513783195064999263724145155207402384425281906420602029963253100184585120492315725859920426994829822129724011073423078557108001801725939861591709370763927304385905664938301507875548248460397016843441721357743315292325497282654153095457948699625922524293355067519109997983309436255132394316409192813877340086492230319172202865816118806583624132523956808939778981747029379752980549779225452369660061463168233593233194106132242108701803295360263319019485499964381302024890141404771081808729059984187348589976697790331929532197214662396540044834361629903179576717528818953588677984687650546242761280695843679516016110206089558380398436501336708842477409263495527155985244877703365791172707163219687528385685307910389095894220491540791435503605822305008229790553156140234693782483411267270172022327242202036163268018598621221284344122222215323753575601433162186388269884370379437686807880836433257424961268644127655563483400106916731164248595354653146193704027588035449546523416103231256218032725558053146855675709483296487511817569703732124578058991352698064376754947909812889841558381037555717178017167798420875933913499659545005222871330319142030625774752441071081632841254082634351671006429291588523340813237016292344364283990879962916568807457246290524564964253957915196716274905320341574934688488638687776514654094072691483675697215025262622958823968552173806894637729331460353783956183628239917944529379719298000930316769371403556945547150062444084289600163327125892779196342199244305125126505926504947586445220912303847464674000855497291258233909564909466337299099784548260946596879091154180006410543569675279634868251994410301227467751657702710355784348390292131799753287286926486984470701369630999022519403358049456681402183490894240168902903298564675486086494886754386043226891173965993746436843506982012504140213132691868224403561876153992807737426817746201767312397594173625327667308316770112684203550511613992348406262088444219579229091712658383247582656069400190571026107901041213471096941091813466582737437950034495350888635124902682656284115911163412313973911763286622435091410360121621971441939269447662764977137661084289159109983495746571626404620872632814958758935501407591706784035893960589330059212693347706044994792442389753516388488927887466179606149060618696250881413614860700033240197243047352895725587608184741422187574277098794251456627345841888719391565251778517532288145874794168459974868946218528090067651078530068008039349559993799273421482710370244407838638725266790454262473887465089054510790101202797773410016150168362459575663832636723687813341421490410055513808863724615775367096008507716495857781416796453958331439299609916090052013000783739897493447458751298426071154441604670278000123181076534439525661843000344577360926367382747876586838675816893892588981371179028804583088937065568178056551154183996976142769519476245507853647286429874731122152054426348700435794462697741765722737404303239086446430282369721661380467308278202562360803817038788859935251788664837473918135386240901051981704984592727752154300684055824649672427498941485635229114141427555520141107880875565915870865045701892927672286145635332607255844075564445111607928852605622230470223393990381656307329470573837203355727797470862244851209610889766058334529140081215170508407691709816425734877978698087435279025386121362920642763144513685968731276421097603909508875545745222695165261220421672731729448305404203425107427602416548269683753806191344892331737537984061295596249643900880374746187481978623263061872423983270453607882850031669131264885905380163098690325060101399297403499492380756430609987239615281654129140148493680286631669871730798788804839451622838198821660471893030736243668863426474179413162475882046213952559261810935630917038740844703660687475489942374382356233929691512032208834599841363386752594472157939063024948958772247384695998185727276159223201629497267986382117565841926780414575247329059110932870821198247136895865087173427421627369549080627136068539253801387663119268908106160638872619970257932898077790876108803093856262302118997697150135344394008881274878790369687621117894353312937206871226651813228666427919241192796869986852580412381621050704197132929063442615540187638588499808572215580535772137203319073319600998637388648494726755383020312223298943503415731333248430620448231403881238491327141196749802291304751262518202346513689860927421186727964182794150266214913979791232376104109795432858135255960947164930482742896217724469529383621473906708793195595119909028392388592287283476718009036605584979841038750769388542260448818622177376305520077876357610701996074053321025563609564584878187135441311237100890191044630615220103725831585019234214802308613396205514725902176898009950368375449215866571336200677773881800273412622487388957736896514809950351806251855771791371207524772595945257326495612659186832663659737657378684177642173670066057844908587894710533826212526305829039065181055488382597856358804147676778868115573580904616198807187751528927391725538750820851625212895278660888328619422087374387946022349434067925526728369633464228958064129251994886024967322844693688601059498010517366689135920469525345229187231974162695409365194194025841341351737190844672271091390175881243834511078740127194064144097857684740342283947230795406852549423130840626900567854949059738184684700337455366705645583792021663336113329244229689936766148834093120554194879105075399298143769639487626495085868097274223550329022683667801100945153558154626080803174811779120637700939506714439741134548931581866900826033526776733414587830385339801200124774717335567204418045485277742560987045868016638924020973240833906248159522100997178089052215322930956443247949919299009628320720348786437143916181859052872924781340454534453960544927878249731640494918792649388539572335478429976348867548551599347683502868644913901304473633772009235861084753978621361893082692976501102786396582374186165702739552353798917149607735760197719338146418488247639898027419423172842715295260322409759528880518283318677202641811348888723105940962900969061623221933497270685911274069193220399744843502820712758539118250981154526611772657829875684654204681301413240419932879480474232401614793729128198069474374971591201943506903205585782633147355804738460559671292204928515072161572762443723184643702120078212191448587832451821563632096376749536078633765713744704323228924926352250987210425391504639029140185618423540699311194740617962951890900240344397479949283465505556376149839142413833010341659640671227968043887571609679438633860979618339998607896392484501565785666450555942739506287063532289051542743407441025682527626139584945540797952121981556288310591448761904438032893054824629797232728031495551828295892044212555976864104049898128930422898086682686648341719264641486062851195604137802102378921144096318330678283184050578065639760093072546445516260518195425162968718407324800227122321501936162102577447989202079099810190713749338558463266177684123624608460179001299067928514433365059356896120354453265229100537511002148625464302171290270446708789905401968753445613776909529043304832109409106404705853049282550443489926684234887449236609642572556142094156230070974893335503340009767379140254678469712224251249398716256473540248135154619373896474664803067918504460384470662273293454321181560661719468443910154448369456847595091702115316028592417472853394917517036911760361778454843828687169700784173862716666573060417632105560883647557738108034451549665697956180498265004836677042234557330790057445952132774439519713584670925507377085578624924743599203151862234140574088875310205486718442621279592155667148624494525033969330143612434716106786155762441412277326066746427686451029165072429566910434919909320337886620255485858645692831721199260387749375874048477781333074184836375813681483105402421910169821177523378559399945541220719515648113623006867077374769561399516080235197777541750070003401305494715859355163779985822589743592850859029718130142785961352590887457498982746919244676056083618657318656857631644381156748634699956215693916298196281946653066078944041085105340942235159487100021192102224896504874626045423661841992334812332399198975052953918682360291264671581640568036120479680466896525617568112480550158921863316272188228514939865172552516914968096991744046681952210869130170900966285937499452757400303849741086619546198013052762921607754388805785171068662518491889858104228843225013853134734437912685547951161616877617771218273699896765974696559790371867929641042349107918546563106929421569535083806492756757407779669093213012149274647331871099540415121719054061183201390819225385506602190347969848222880657559810367268902967966319584034579515293643575001121293946721300257167796204268464658814492605590541091001679683429698755942809584352238792787830687327215603058409971963948194677463898819567202443570213815551160278803100104012394529901183020099840569877045712538661489196260356917228705722661760438971654781104160854895472526957545697877342585731679633515683122415520446460362939708057453962602303165744974883746485828524409001161970359251960737435523938441889921836375690174764677259567387195979961978036806501081086941525627667286868264841779716767570551922872673891158344289143645009060193655993946748355538256549956062921368610980640571708230379798956559417535025615552594989843902668544530813164275706380626312969369703926920696808735546892155420137133919664014280593066689829458270601707459931349361912390260166527909475966758414229390650918472360248993935223535013349968788112338546269698478286399474537820577142339182286327766717072306836795373440751660847785496512863111055972105257929420183640062843576235516883219880125734563886597090716049452359455371396326427611959697918096925669708538706804119517407779267599625504395185509409324153857384266920540081394070842173821625296486189954671092491897664129472649090410359056661236929379876812900282107027520223354706719428010092668223468196053687110822352754139660345156012982309682493564988542771589098750385514712112629526265458383572144477540842689478632710311425003703260397397495222893948980767229770703713985121229874616311803785183899596692938523357578790194782311151658907752146940041675409400057245668859870315177130278649581124327155651845146975597533374986259516242569391949485837278978917497719811670692374075847301087258809398487688522302699786010186991231623437238027926921971298030458610006717623430951588585978954640918069324893549050212883934959260121536008023916187307519572345157763515376404675133205446225975674494448862276202626921928332686008460503105016676558777777334493924771388585335855534024045460252207027789074199126855254598938236078351137046277800403572383883015857183186778359164413209773392742898576654397813108133005931197378229279774001679869183027006711748862855581821267366810758557074543300244119990412266059180406932732171589305259856301094918821226666549944924314688440703013572971969647151880828849728729606342755587756252666721409174471452470845506853381286240233997413185342445636378958543961189071678141036085586791147787461176510502151364141283284584630662177897892563219620470816215893006484646801103889058579375174950347839475423445104956378268786704190957431279585880012906514308980109452597805145397192642574281491703648342109874625023261645533759916325386881506861029077743834761104585217829198041981966793230025714427723253271446703362901983896492725719163513689759667821900301898213182990220300112369518831748440521920637536917094726416858695475848059562810965273220125879194323113888847040961071565728372322296068997701923861008874518926770052261332357255293571721116712872285998451460548269705654940327919493334211097871712156964152538755393553328739338888957189611445470047250766780792646236970141036137065336916904488131795802800649277522036637250862409052845586372156716024380956068667257708939886289441781365440676150022616274206465332665794139146766168865445517582000293561397148835946779298541757418530991384275062293100425148441911754471067589007836540800134793110731977028240511069257831297573756804236673903341790698038432285838256557147815656103033801367775806781888992627940309575022707613021119130172304747517742898603406591251902667618944042894399452270479609190101403119120364541604076956755918072461231631915702945697684813573706431505194944314128610930962071795518019959399269608397819942338193105248323453423520060789147749597749421368267680092991644280545816072791407243359805152424498180479713922405497765897483580991962235610227352268899315587181191011306687593657812983405056849079654459226877651796925279182135919609335816068151257702511115001213819401701795756497776388958606321622177945968701389927747677364583103673768487577727985200174138526779272895910592504452603999552618958346404921954629538982019630733942764099412073087216348395883481566001353114619570907300219662898279399457083977649027589777019586233114113913924321997666678192154559851035873840068098532511138513896681847866700616903870376784484504890151661475901371652268461324056802481186570091258609538539366850577678622409229531291821334032178551963451154234737688508643540987890335171876463069295950533964626847903350304706437408022362551096123219577636900321139628631189797682415476960936967845499352006438457777898891085930948536107039999578634817016656693284215198691975090199505324404829582290111247026597351196387885498906590979961699023102982514927465710007105071308279596735685114462988224732253799115613251300906381712444245997283509138400000023043700330903514745617135149005812935104464788464961693107424547488159245305133014239114159604207887447037672083528974299723490015186981219598571778020578767033596078263230806485223718600069198675602473029819222040782254268608795049832975894976176344542119366778910264476401393906839955723782622902929369840551922280282932996848239860570008499796080342653515322669447127781287368181106313459884165895933672864160954700621940210420519870940575288926420062341014692602265975656528008130162354715366352249787168010360983181521230738765172432394651282900595873259796962223440702809722076149104348654248460289571137203460196994980275240976867054321907424668066741407941604993370020686511175763818410459464469284208896422038420256238323760985062955509177313162199252566841299554625359220036340552929851671491240986804707421674887903718477949809972611831887448725025344980981199943209461387623490481816390766395572716193198513636266423744495818579312707847447812336084099971616110997938285089086069211612812695062115716903013154256396899950326483553440754558677285967078794200680298049265222981600535096973116006343562594809778066677922400875833039298559276396314748292388545513559322513693313032570332228751201900244662066977757726603709876111763459869229640532517158549662759723313777414322107721291005417621730729608668420078692286403014779205853459704441739925088304590455521824911693815532704364705625029606712194489868122367539677976922458742067946785267911683728723055005396024948967470609522817235110824995211078717960857674496068137599198630741214360940624448046167477461128549092957686297051912047927255252869541119063440066241695147169307604713404913837400678024786782344338555758931091388437648438918349795940956824257438989131021648303064587573257475017438668988065947641571744812382490751875007757159112551787110674399934424173444069675920640277180937894391296053929710550228791053418208788726482719640935053282565079789581240296306385566426326946976930319138200798235380830954865842644784445366089312726221479891179578551168902479696092973473977450242607029618508468709283889676325463323388428436962220411968411205405312999127138753117550370391114956613391630491564924624303525894689973949224715345805614402958481464563790375318157217082208921588164766795149967768528137885579308425838690877132213553109958288421251478385679548484125685175506065783259334735724786213416468948573784111564333984596380100988119946633976664143289193478720140398941275359580266061025432205741668056574705020238303833922186451773106583555768161239260080640119444607235793986941710333140914837662458606902533591890258852313308859219691779007727831844633865608952946106170995950487167112044236411381841431522499209529313906022380843372009642695197490184286086662828923129793536076332930874348042533354759218006603159013702877375081159562602954155854365249714198649847960048564533089319691055169218957425639550402447028819659345090794403336117493815717788147536801151548791902042674549969765189282668349970937184468088917675016969721713029015214462839621895471912420334605172700254113280140443439499598504258675216005982141764816039575438114745607393443150855798097405774082355161589348203182780616930271101042757795634551909283035821417627805018355724451949188770615235504036122607256145460619363225554383236978789631106305945263076076674415661809247981268135752757337099498279852008427385214981770195832759999132946118730649163711517149042041609029493198559192476952608140060974588351696697895167889373880360710428197615547502353773150291965330584948499713939262232684662784383456936705081089605800207714537772207769411431844032791691480749961462466290683380788744287625097623365738838121322086884731272459765452380341547327082809918362683632962290777965058751065359867100700544738260686645819246558017454810397923821406510360614553104350273367739671600392058236791394695190549568556386924867239903119568428046889525761069526754659875488737693540700852313033541087275982111326066999115300737027480542391826772641869353103581425018664304008600980212942150642938956051358443489422245192743848339535112119863579256126278061920148547115423602062079034937956879796974194639102998723145909441370794821966181242543068298074729531339806989244634680265149183017630254497866398525677645398998002670733210036329144510160871239082940585234942868893075133428290141011770125587872720166911699894206422690551784593819856693916912830963548308338172077579514188444462553776702327871732218330204612924176660570126279547305003763564061103593861287516095215179397813347215757485097463993032602275764228095175003353744818356656702988598313596683309410880418225709217390936408305397042645488057026649865534463776902868279371705996002592619483283788190603273956372370949245833608285933414459243046124903454843425505406955811647273498856553520569186966504676516674864656339634098507719811074773455408734126295534851816880497286556030701842844831193804392876900635536872542887948795065193905949629832338036089976973445134928596613416979254458267779809674029503529026041259765766258226968813563170399367081944045040152882506753827234999414321917013418965955345518860046694020055774773017399919735904249660087396717778909843902614168080498266226048335614508257057830747019251663350447864472042303885026323318168601357356148023432455900078889671613175355556648778390151359749205023414292417768243488979776427568611876825712062207725493904016850681241604057691087204789486984756791283910795231327482618999994744903056102304343689765743665099080608477509931940162549236973369854348781295844010326032800445877102279846448441778622239241392693670165095025477837309389097609406876133704220633369185241192308292673011321409031573455291048221255118979099823146208524751830564704754629850717840578237082346808616255029490217542155872464402333928639976912245100944140478726330129350492058096414870047122417161570303127568293573491426905963829407757658601393365302480174328191535664727502563279059275697616932769786665168823591165460143207014905671472607491020585683697301586886404469141826326902132895669073611550936756217270675417676365514433985957343745476901387174092593595339359336595755919896452488149057734455922405641970715069746322498467384765542445618851968472276209167168815470930943714845298669460716968336989943940454774053030830970256965162190299193948762882433297162693928778640073618672318425801228974407368978493896392832160446035953448285641927264027875620766227961820737469366398141405216379754853901788942370274817860472010958355752562691886061512736875348064265388076487958323848216571574220702177697100239219375436038190685706059478785235998137557590829819961263502180271408209754000757958820932153439939002421224883512545614004720796618661016282753222352304934653379271832741906445381038280688224509964674508845231347818078276405970942468513097848035069334765291671220153022736441940720511120106693507972411151260755590295248796845911668960840008165753158131705579900880277792917062030972252637579207534884372382010195523290943247904964667557144380354551019485857047196297232837793976071869507033783961204040300825733297931147681669684046069832567081236037763311860459869435929517555481176465127014876627550367597153076496362524234928399913511605566200893601207993415190685961697863787950280309689882117274472917464932560940018739590055452211748284918663878415013762739310754244102226163070333714525037620028025472819034226238843562678631764484034903149022397528505139706811415521259825357745189675410231288292726443763174470360220547628667664582534047569456275261622487880765643281584970171245859733356872189836646504261746899722005184566648990867797030698232474024215581919800273999822035137331640950537407020958970334025590051626594148363425687123305520083215687429225108873151803400833307973383832760892867637183329801757542654953307070503288306908840996351929381314364218036507687443575622212381052001037751602273331059928600583759549976133241534775263788652271765307569672620610612629804614655970464682932333191753939674148582517907267822420873503435418706326773274519656850597627000779947115358906423885999729336068644045124959304640519791030236103467027850090589355318848146917118650407144982668155623606609217536842601390863218723023884767332102387727680241918428519711495621190073487988855926431241172014974988137182300166688240385793796284796666872483697108774598461979313685801911339754829857945600495394211494955864254515399794964876604942102804120090877380891113268463493118736757793728845658681612800975356233923823973860638856072528393908618144254177336117196920067943273494386159747938245524286997125206255213195583207001945753380342511500576342773098713326754782028926407919823179269682584570926119297933576465016674750790349055935869211110609639738967746773795565586554701065488407954661916353588198764551708145014288710253290386977596998530181229542360985284865587095903416006670553064289016994896873408338377002595571069530660821743821079299801435623380718242905680203031895368626904032553419476872254565685499091528164400869410582119328034837235432360625317632947822782956160402180319166106457032930927603209559671363746073409211953696484465812613908140292365111384621925814189475187503126378287987717178589038041703894110944005884513583010080531879364666983736655051660032598216312557776948578290997098219994743625263079345847790982625706868713903028583497001472251182149788696014249784607505609624783966886177439046457575778085692899781712125993147716607247702159496926652190350583148333176459715745643812117162994937340580081084281369860091268900911941683799704298309527613087171234860824271640311705551525804311420217321412957821458190595942107917981559119375531846579493007710758047264793791157073042344046056726150010477326637296204771472535114912387918165977975538968016634404815869126305311838627398827406438689386630669725049216604087310754930526730256940451317367346262110110192462755561280860664973781515164282469960810871808038251592441361430080722365622700385519487150798750881322032108441905842423745656253760589210566661172495962209645362445079606753210672852412153235351620164588953604102949347342164302481521445067049991012572078493852807532565956299555890336475249052695573240571408464305424714427903778576444837766579814822368245066913094563844955368429950624989511346440453006024713583691206900115929197063203973334935029811826630508575343490473263761856353448716402598925399068653863708116001438561657755981665341224034534507189759867434365964634974184277533256452070457984591538101600296168764882677803608354196344641616168796133881918846006697313762035884095109499651272651046135521931707216899359374594117438913652337309212977338527000026572832951694629514529680110306311973381255742757279972365732282895275105411931262132394122736164029026863561362976360908410558668399465303416745063954837919928334486078932942478146698057555583197826086973125540817635874161504163792090411521492066069406313566931342561807160382602695973625182322707762458449819455735195232584972850780177253408785537653444627409332698709705979245795738289121847494674330531892311159978187312828806879746252797162180593898106459772403963015249938286319607746843275473806431028280517268368520788303072895527207936540133101182747949186479206245134555743023196376813035296862141432328187115092133049725788670958329035236976942816078877154302109160559054491447667997586773198074721246298546371759355049710472098525958048096351484240335594602712193583993636047444959385107147139765475251468975348350158605916988232170601439397943254389984365345403116742440996152383153886224109723087511285433261419069223831497216631789791033270918062226673497036291480752855209967035028320972578384724872139484044136583830083295702754345776963307612483065083182160829477255597186822372341101674118330517237267347133763094668193391001239421091269479703197389663621250662325047038528752054037529725563364403372762532764472145944777214687810957974983343459459734878394611331784309228172028808771495295726989873650701593935754789828861323412268528397758687791510632819170842216087351242794309003075049106722324661608504387020457972397813962266165108715681329926253780723615040276223135048322224526863146989457192592118875043443678872342504826903006076183170178546397364861688774599811741942589765648495700646366258757332002005023484654436412081798413355296691409515756712909260493251537017633901590849790808171381190017040347856667468271070571209314493661201383594840246835166470269441659322894430594285783584032189946137308428158169662709185452354507285917824034748700965926213591014881338259316264372642005863884886753178379074513804119817236249443569957388358275300749135832056881768081515291227542438827180429603325582257751428587675581167481232301962439246931058037176064233446928091135545801684812762688007265963125733791021837790987181364121006674107918411530651292723685291441588931651126176647148938735925237068537551508135986030075491670792857965966138317098632319439258881576721542843576437921357695144663629410107130585960495571606260742624931245758874492253022419057105942043857290714960640858640286640426751720485463248665173622435895055608128870214480372725830598251867456642119340449136217234403371868145651170918220880062452903047044002108481929006605097733402330225838856873147073379491455676619475894894831959803528329424787764862651810440436125676738795958311368769855362571460728929565543742675469428412954298671100328799166380067782599860075803842545934933210431240160224363109441137942427997068265622425452897783147545513793797057201382457712390043095126327404254820695285461348229173254115922475155223365626589808543174533577650281095890336534067837946170731585571795667881345438180945055927094703237715295595511396718476700098587404028157029999120471734988876516354077935299651670149983975170984996803496246289821780622535097014037653097959372266337000570516483722602000817579343815065679108695032226878042004456547940433046142268969293221170380654795039160232065017569442820477079586962375299593737189777746625714789879884013205591642362613005065412622063788532735076680411265463689065906567126592226571361475207991142928326334207543146810769266086612433692970129916061908128673560995551155796144292559321006603406295210087350371521807998535780705822423974244789702340833516455922883640018948290982388117831689991358054285090159373217307497357189097330768339724483026666603396027986879209230467745435003351435823685745413268270937500220515758983487983868014613443213039765845942081661153188352149256169638489323816197138688411210052194128473557839455002146062812324686680573263410959561964969494390326498709332656581030899762259064903383466066925037943764802418911122923377339036241753070979349404142974993710162652649107184847556240207568305356459450048916769796384694355721482816476576641284654405593551272023967549966962379976548319149404814551846372037854287976950535273251176476085209613104811856260999454304187511401569460040579297076468190926900590500082809588961414747983950842359490108389951595526615480523669329870487833629003044769394617019927239509477957059653420575299782917239177711657503746668425312721514237248917882870877618094296192675109788660919580131055334806260459176969293902317417813203648433767733251240307234153786368565127097575456758940159683413113317414234830228477698844636571880257057472301377523177911325816404184927885464710015440643358745396092482314022001199550600072673616666241152842428770721663897182937063070025883731418852954100207320277176491930874037234978101289249449384300578252694341150750451066882687876363203132932050720032007762034578429361925896723261089611455499772854588846017017168515077812824918431786867689813689410319711853308854082905880944247821607847528936485243497433429332801452902584961778277043187822437495243187767978671824198804505667821497148491044707162579663042231134553180096985336147016333696998066218222698003142939251353457286298350914094639276092247038512141183459436030584752109001418832326995718933357260521355575069763204460510525839064699384765966945470622784816664912936445395187900380966831274780317274126236430729775519266048611382806540493588498010836370203298029912167120820289435207475256659390886953203923673058669165598960069530556040545619661987153652008179875634714657577742481525551244598933435662861850736091599039333261525682227088690460423227867068054081890750219340553438637008189285857190421426324056195303616804607148910214699910110706260473628431870423697171441081659367195317691352919150790168400263368845856607005004864260527213472910563288085229418789637425257584889088761271861717465890020129518887609136421050372003781360725380329038590424152465704630926230849195269758722587141786895784517212583519841875055326508318876732348890550881038757189120982845258611588478985509376099537136876853263138312102778288648061222731573957739595162221624529082305518808300282773567140532226176777122548475437838935252730909960141717459941409058562482007022429081327019564987253571014385532983417966318233238786708931830975049345320479324096212986768588107689541909849314439603424457790967678620365089508642295899102806372341902993027305146513295886213015139234868817537812329140161965083182123473552676890603105767489768348387276060524766089687989817839612091346866540179411291969683913997982255916707070460396563207487965529603251747746040667013414821336246280338090268516684547111744567840038446451265270159929893152092413172416336142416891085872940046311832965114058095425656071285985206608300759285733062919545649072441561125989977685894703396942099348277842607032287119269192205677983697280847826314443167876728652236135458437734617008814699905493588511560747017959023724379432825902261240829102415396196084259685156444800812963472493334031702937430678648139461283311477872706832369159081283400624893425256332871713891014813294385852381841691767691676050216428991741798072807369337288777042962283082445607518276349360234719521978779458678480327723509465079021640728567373390699914177632930583957071649461130637314955614820993132758065348416631059226151018748085148404208438806427279139992461235750605680323289389733001001288283519673234953014945184647150225318556709187756053500022938466002540092025576948011261162719674728476345322768785207038932039976122025906765322309877422928963510523287466450505429935709406519264622418806786123021326072791044039812792541161204090937196454623384278867108809949947272795976736273525426123857247465202943893229637475368278360632831110565424289395534582118228739718848272394709400486674923393424044128071192698166993255901528163450411709647819561070607039463678872779128374979740242791080703226880159668509318812608373078573251571337589894531188843404497821720861938724596156907608737998173883893314865686464052588660329923792470844394541207607371646234767341997637030873523359201772241812301092094838160275385395817286596624402388515945062288172689533613736037500504707232543210619402135941051223902002321345452063376098725997087922285545594187240481489470721492350812250681775764925879530519045964682887611646320867670739196814770341153463741380686108254250994962875610077679218747585332216759237456202217391527276842522723454637490203918562764717228554652340227544178895831910222250969270589738982601125704394269239999623219212106534796903042360789534433292906476400265942539245708246615143390711807292093538348332270498540639254248997693265145739481613479220529463580965083280500637331948604634615496158570617951311919148920225928255902017544771946746856948406322452556933267374429687485623800869647418791627456056679283830221650322219632610251734174700081575181434884883889015950423616507936044546937812484501793981440603109495325635098871936950711053757167301394441593725010113046457877489275606963459371944532183582281598806028467649578137923622761077389343329908056743366680234460014405821472753994792099093752753961809478481889100434672265894732245701265472452604809484630559049723716693173043536641620605285807065016467626354880689265085439526478066823341545908336919926768352313670091954875827303642629322046577056626497711207438978325576972011970810016848476586109210146709830948253339058154906791963191898929512583204238286940052976210788149353103480440909773137538967715461719444091328661507922353019712163785566496085999073980741120194789860889957969279275469433338362927124892940474903615844321151729167152508837594811465498272627486649774636589787756772749464473961447459835164851961774957566710295940344239935944799198786704413391404869144372515412914963692003643033563873164789200516178098313420624723292637024462729969587892149442180263924073096922931509159136640364260226494371202095929987654462051170135070766745443882086632071511653548557909699340137727244636057327883340456430702860718965270604132611151773127459594382380057523218478430742399343535597765106855785810627061192508927137140675953705077202166765135298611059809370644813709529861934547817967264076018596548027380905379263716223254126573668653871991550490187858360963098145794845744650334758500528005421716717827895817883166571142121447959653975191608955631285995949981929369112414724583300119816103496794308748216130831813466379063613868051736175699061463814385692853739387507035922783223823050465955844459111504444370183387288887679157560262166119987693424638659258219054867852898983581345029859096811506895456606543868367328912095107244435081837350682219959035600290981605387243343132492485928397588720079553110265486995492159094771688647613329265635361531768057140398846594664251097128403763450355252022288342956058718749440707542620733405373713359734637248170462320112613745899409817110554613403293575100666773696732944805012412358716113787917454032763097934351002227917732387824743351619326705377527561477125054789890708362508503735888202643591377692152393442007147042081953576580337746792413435831037840369231438932355023999583065839887121072470233943249343007662120894464465983522101862138167825261228355225186182997901646515285857472332813052104312200874069664517967956005735343668243370389130917433925311123895780574622523233452619731821784674858673852082598160678971618927597727633917584836988829899170023336899199622906819013786605794039661509276349875234291591804900518710797570143554137898899112985791663302143591881409005426825516738252856255148621252304456480445862774677501909726398725139496904142348522559659265164060309906137185216893964770682913028591033291180641655249795180238192683849205047440727148909324742472544953261883315072744929398116175826267036908004346911905858768981676417596649357808774009758674273565975806467200556791862494028374129083231484183801444690397321635904796556745693763840684692313100423206644893415583199688494356462785771153261583511178700756856298126696124587159244801440781543974907855080489996865146085170077536527860637869721765801046679596236133501311674699611846584609365086024118239537312439128425078945637686606711671915931402549757559197643485028141952400124255911507438286504065490196625697221076618012341464078784567122647411756191765016247690947691397643939874182727535419232967989601986659677472203409422827699305594993528716327334919499866514303454036578531090802485189778512605420429957956725688837521019205467955284135841432441482006740067956296837225998953662518219483850875041894717886325886763499621375672098660744564336744396650177003646334137728774452853227843174173621251998810847135115022667154262667683662028480516136565120138776828147621955148008642655517684509479866298918794713327230415262324745536026027447744100009442869320122597961947993375717584920471912516615336349933102751798745549883712534085353834247031969143313146647595874971236060440701175765111514234700614473846343789054603010355037349327102589942966536998371547908189184691697771761380553559872847882354526865775201598439434734983998099912752460240633694632841991552702676832131615892145683042310575286789686746890451701233196769028385114123201578308064911993996907077889706879012814360216494572901927616651636417240070788382035250355221301808268100143890953263308169472876314137233856300457081926240373640437348176988925438603799000016364597067964307277184005636638818823732749760493009718898866303901636346115942694854307665374407000313677731988975495966955753092564601237756617636314343853621522381758818152811806026832399959417656983425133216263228165580327281745282343610886583774541555783413637155282108018066593718008002519593412198214095232558994467603608546459854427404954664488465949340471278869172904958303683795114282594442379839804966515770500603010818543913202869270564458617139246045584738371787249036737017900248598255376528044269094342782107672274126509767705212944176695181240982114844110142025603704715966777979011945889340938966557532430375513265164235340497760046382053673811522022225132861191662385000137185453697503623611041297130388328124163954303794544970268813205215632066647038634866876510753967172011067455561415561462290933506709271199527448586986911610820784107196842688622889027271042387621630713684103022168863394438714873865064515642325089977787958471623197579917967403349872924935374838553875908689024008263823130103862320232937109378412003721983967305611416533385243847655081116993093591190916051684699551583163560858677269790284856130060763299993589664463331776426421843182030210214216838230008087790347327478901144813926004680477177391865415645706627441945166513373913958161508867214007011727215135622011927439629989188953805816757796306617718405372998301658522292619091328602118952472085860112330452647548934719983647601586617937092283850506610942982232223856291428334202863736361024663001515182827453795205915331534876326548907546302073364972388126597365026467799176526693870502816046513461167885532037305481372242166017045641146137117247450649258738922037381024396439695005417832983574573804049469692214701748891489997327979724620631884570996122932073427340118003738062984931579352080510061829520933731132807222176419606505385643757610838123219166636498111798662479390480858379463495474398227438002033398888311561606394882988818968101702050911338595244319257705718918798466128923132431379964584558970752434944731718985714461932859927065406207232500938885026032196793640292736361938324804204889104187813146817084052428603653393255309676762226549925890778265594626633695814729978238999962724582150078161468123345119564390058961484346664192268530694116365366322961401608747656263626940767302067373439056392599831784306407213572003312891634103789974650912812835678965372266782163753509423465225819521549557134306416525616652397083060512702990647570336026243516085833874059792886712260396374088626116035042823266209542770753865759198317866409241188088884071467094371601579977537660910343986828341860441897840942758994404630668135450451351134919102535055035917365223227741627263118120297839338107843249683430979956326294946852571615671509141624894286802378432149880853422493042527408694205079894147212121519322478986810335538258844352417088380342412778443273596680682620360997987033891029844406398915734630049509377695318316051829859117143895512711437248337548754880478418004671475167111674126591041884740087865852961296513025584875719349618969663396729994388452559269984847211501729921244713933292143777667065348508535626449781542311824568224175429469304439286120231415288310856148091419031716602308605630026183677177686328217052708987654585354980538753085132617393547837582135448338652914772552120045698990740875549771870250420575775589872175368309511946616500312148123109181411330999641280482426195825280255139623863280493718592278295330750832514641981134996376415912697198166906444533615846820433434659037583335516855348394137282524359252791043537618770789325988270550714628572714107872396681034912223907512944297487393124171722444555961139478207587889353335436334528282471051339029188392735072603152824208747484853797326514636576394948067051054544710344792121899257402651952280570367001729498066392552957698259035998635624247162971043273291424699014450722243444486785780085214496799096359769388374485328480913546039547391280193235059461219779918780526864026403528676454428498079829907648844455673847577699385413004932621561034860500603441162698717096135496200054094428704492770980481811356515633411537225011948015343234057228381477713557883382123751116203162955062522035715904549447421507112641629986066224077329488783435767484736926169469179930327557733907574659085496320093072606584030261521939110128825528702857206671944241548765602311159900864640160204728809040869874164414998587331917097393337788743750983278600577197288853086804108817966300815829449339848696381523113859100959327602148872486813760677645175901072643664544426966641798130872114157336758841884525854203021115561546566386036703276524891828461210491055982063848964485216965057310580317861244530322641680152011274397846545848722247489053516581104014357658590153234412364481361526959777056524617448395036928654678261902730555337848644215534025771002769929509203974863836019483363347547929930907959302745834011192351062045918906612024683718479692043597044232207065295771218628710247921412301860266434079462099448406997510575323929628978224875075826205994868308097467396188109877183653615626400449024479324557093086492060036973007386010924093594622428995796465937109890816035847708398445347976567829742539312724940639302159741255826076834273941111051573327919604932633993461792040303574618664695701133483331315440824419161549194477940815453459953130656467634630346691049089955800294016179036702801567074137686944367523232341224008439832426736181377716974605629152019127271574047234273034333043086535882678072075483874129500057127900435106497224950432690864463935537086971249927622727453390858073712918737123541739807195000093993162526580830431797588107132120597124120549773731217924899017391350170754332860661145160628354465924612379407950233794662873821595892981208892148841128580324278315829157221892584268351350873164292572503763872908303228466606935739452881286075228301171952047092191892645250257520856222574045242811702288222026815769752991444526753766024776564736349034057100149519860834045558916216602144345296509788352096590625036090712143304125614632582782043499891443665742321043424501609469345480632803130021470358934861510129770203141190946912567445437993576397533294215758429462122669749691452818625204778610914826548760527648175665792323962770924380618681172800734600129241791901683999107988819879497886350458741580220775545078316794811447199330967737323672101523474812427692557397361057800087048161645562494271967499905798292538553346627607045067248100495070575803270237069994808114698144586577391934400500185977256877343078203322323997305031225247150123929678299018576788006014668412420359713144982012898347556646978425597384872191302896622075638172058514386987995084950703420644740464486150987973821774629300891145452661482170279200523563053788260091959261484884925447117400613093788422083284012768446123300263096495468984764528477141501642446503655921247098251461174802572528394538314209701029365422429878102995832389502935179929945218140846388379324963454732549425441004449952092611246056746319024362651541803895351545515297265465699987962903649892001039742438141485697205897702623764043683063545022294340622062769125081781525515066793870124557542485419594212077342993212784719086488924360678780445509746488529796404193027679912252056481477764088148041732566249347272321657923629447383160778912199564666834806067095472854462184695591619610648647050637365273056829568372385789925273110636434785555351695696340600987361962629237856100007679329854159492387119731264579039002759276357540442913924029515160667186141291230899478292049107320647002428192335214538564395827141136847789354041730714881814009084003203607635707511057719526179357542815067048223841922111246401731737247582250772368697340226898578655810406702583450773891129628262583878757242928543875690398977197269203621867126440111327525220513599903529722149951120517002206862666911514866892939038735100262860942894590031417636304373963314998794970864055647029843283789162934644468363185561840585445968943605356817557997199360019744676943555551527564132315077462971895102565425130587230435577462506879283712627330167031297964698946708381523497179256487940151499052016303600462353262490677121212933516232284864629958699453093692053861610154786882212517618481020834218818902358590460237978612186760051263184571934936146919708781941951035423656981527869978366223588072144892514969599045195934801423044984186586482289071098767165257531908883362115356443789015412099306646289963196981219988742638984756923679983250321819525143053556529400518864622420099858797784988870569072322207393477924047418204784247111986769195892639573514202720323225275332839850369317544649609032522830893303988066647445862293293903637951353013233237054474570520562966521043416055452328413909230336290455500760957465483886946816774510846092360387710898762539571129667300881968828837625244778202259404221785552444269423121692045796875556459941458148056956733541971598115704592261416158189242910689263470100030018588719549091881383641892011628192982469178487497923918739192011814254532612739171085723184079685926086543574276222153530504974547932590675296130315689880798425537843140594080624672256792074061650291061528556967923480543705031045723255039103651308063276777230396894526196171196382490068623158507830141999817157758846496115180375543632240676999563004942059859517606738861833156847371909575904305002568753832620114026078147409441823297244737658695262799623262544681501381846950723644422536322359282184880541591474902940241934468390088752659829835359596983762843075690547382595108946843798309901515993957108201612416883799873679704881208411676619158573143838065668874001748012041497840081458557133866228635883014200430807236444681002538068343728001935172050187162284078178123363865904542140871098213230078262577350670194640737579063967620963892548994691984208485675931313530210296708188629993764803905822649468372679521662292776111004291190300136276947049860706925475718040625504048784116299292225918713767567547980077219228704721295497344111741673691465410197222772377562396846496927386024252889229998860916491351115101554578252379928760993072491010916595733279206516809095985045168512127813292231431176803760077938544178580905493022986241100017250645486561690967796173964208516737953220906178186359952358821672741976820925661071716957749550236232216025402007125697030407565609539117960985813651969916383692286306997503399942466107985889794124836543756520914609017174463954322245649540860725494157590759390597133172324591052859643642028225882571456051873898251734534187760527536985622340827348015342101102359615042191161212762914335160473679659579899859356478760101088361632069701161990230377675067349119037308834594767204539107047341753647519401256823415859613661796731202928480394846580183509995854668919766426401844670467168769665234810073116227852278955606630322502888923409397660333411277834320538355119818527031819407948848524995729903847443325511505587998553502241801427608162086695100303626778915295869412429035918886693489598230937632909628931375915465663241791890923798880377740914229677309623755066911594340782704878158542238961752836477181147428303836631742003383702717978748885661035140685837476496772376823759096709574057186720524597670261038451293667476557635922917237946255688135575102639923971747553256216202755232207415165495767678509055568194767144328709138238344285217150863584761679604026663019995204586217573317962843247932180790590433792537410147763135469777905457891487337081692646196580830036866372363863768960109914837995249113384578890158408236027302076549819258004834251909583060740705405918677393704913984063579067962293630698551087380476459933277191686454447558359892208515611401488842706021318153936286653514210712120870402405220088822529100269999200748093602481502126736162044581615244341973959437253159719347355182508641148556706251378879349370109109650381902691992664969405895825440066033220480895030554459171919183469367377458179403414847208139957696648308292436271729401289841697892261542914315466349961970914998479299935098254730303384473981360389798870610408899674803928560724911349462288770758431982519045706456765841417043063071298003943342885859267818124316294638747403448871144005988482391132058940748515427874946828363639198580415469583472573737700208854640478859650644435738314037385591320117133503056990948402081733316386121653249303016848726409988025558262349055986062818937881358424547766735408412039596904770130765593457567686259289557427804018941622037047727896872339170377744697154101629858798878867747306892833188437621927273591422437606681751374467956689291856574809769718530558275930821300496401723037187387474746691217461071030153136863445359767495190269246141511775881355719632123902428624001429696766552210980423200601995088967658277988559211717543472967700884385682898004542595499522002855438967236826805223404761042740040401339983440362599703976010927335180782224225725879436860636334838980621953463239793509157776190466515914630071116922268020737180662679038484974279795398196615586629187566511358617589286769713137502250943157430690682989900953672730382290593628390388226915430148526663733531659701672677494627646850674534637166532545242387444210262011701413714975777431739525098128225453140788948538209991257282911528098224606855756927812312153847965786786574083556195072767671454123025968319048101812026418635346385578302544051001222442942787845570149914697702202353240096468243498556696813283815422513518746762573768004784023873199916373259341870649359866343061583521820452318734056976031349355249811956891012324675096821890593465042517705611311813107146383139124092194344759766351880685267681576362324570759490338211573526792443659710037427372761464705767919922483198019698385915845937307060977286885461329491307324071434971859018793725920782295343202852495253357203584909456210310765896360027074451010134115017077229752560605945587982373176685340565767955296912742777462243796801653880502161638521274038074937391876722679861107542907064283497037071198678866104017512354897994787087670268735728562930278504763536717858935901228982809663888100174895986595053297323773922686431223904813671141912622258121895087719299559918505707030061394073592899395508406649506275485758792778346289029280049827662380887881433242753720780110325214951554618952559424311142803932764769831654074853443917714879899021242825783931459370774208968035330037249856507447785179467359659322765802977739477448511714162888644232696650606822653451501268054757741687475513657771779670979006951216430953499315819565795490230575985416610384892780596109360342193702258516469893321325223845175648521035525351359247937733011632851268019229767103280600481081647158926281835986842009422204310918322456384833464957503808763052819565538725311654168788389861498373253305167923133167755563875307125521931138728832474448431178305842341022712142234786492341554645248131340399948777880641586167553769159414399495151852532045282240444083392149696267503995984989379328517361486415983365820246021106238282044357157956870166126057124283161360715188917627739970007070707623583197561266870524241716224965261019702800266673572716669097344950472032978524303287857865346443805840319945409469527924491384060555813409934329692186038028725205731905640918718969622176820223625813834191020494074965145289955289517864365967150142236284316871300793901429368273873881579745432902134386665708175779260386403594908122101006832734707702637650777233470103811953520190182687394786031627802230628225142235060200625249476697559942537067199994185677011360815744682660671143354393304170472243531294161314173447819581377842700952145932308966001375628403751214793401610766246438751354826880167616603553035538776278981631818164326298871028881951543889187260897326879105298422733046509835227500190240211787800887545655692474887658029585251394455934892899285700523883376726583741467560004219370747708811074319198140010058052783929582881170523174340262753180226358407566218522596897042559529649060496299673660233853789273205717616337221259209992412038664592838116487903870364705536383101950220269517351393087783666872343669197458453755182504281007196595870650504251755445826785209570648394889580043474460312001964919358211871772920011913791116894484583289394436175326436418692452134675769094820288493421901367030627782692839168717347025462135777146383618914898394095755310613666638204702892385575067341327205767642952731728153968956486457146733784901508124697079323300233225800962507920898420275734176959214047029450050657242385889736887283262498207087260655995373441157752854551074890004172191823522905915846257874599050260855274416443565995405700017889936023734874270447284514964856143160755012149504139872894441501380761597675427308705017914468255581885731812720621211309070488012662816718941815936506773781583198502133435888533018393197997830318019044298655976634368536489891970591628900761475923583806970551257097428699838549103358614034109480844912060419890274280171547761748254688486572734000667417108592770325277618504184480466027832789101728481708265382103125439222948237413574332790149168693777982031460246270058308540735874204013901316418519272890954380205574204322843841366812133858371325655812905795766698578464619571444895094493630875296229672725045414286007863922518683646138672105803909924182747995226227972941051941787390063845044898237940495463397242549541634546608502909978132651424612760174710315606024680069956797536776165923681454605272727378615488952344135892493463403354224701703531239790932685991520962770245780222365071309499023524906245449609162242032805367626898136298569803422723708626034135515172412183863416332837163574813224738003904284712235842549827061852198482762521094733554092453471544219157614788903514307273595389070954072222085473042691009310786328540558356892629456268885092594522072910187545674225555111501429389799817339689037790162837208589300097873874633904862978068314018697315487831868799307117047330413359197807272546822429154224533149071222891311425216932522767638812717828882955470787923886824061334394070576523322066014616327839683709158794890096348220689149070876487545942626568661824794484514069653503670489678049457652170899459610395351120055253172270443834001458194990511305269229021234750269826415922199692268741775441304322545716402135163276040996850579345863221263053299284161987531340519190184228245069599845349049901970836859897770994706714831561353200786415194029344732809132678859081794310772614234544222432959478328873127534173595040122368631240470594369270403901996676028226829909009482840811912706022756555084391412494998440379118392603762411435374022117953810001851074460949195659161803951483272833712528924446954496678587499574344214157410197276221638752940181195302243430875192003802574306022294079659302809180346951163403506223555378267178417482749679310542531238945910470871985638049433415012405510784300760383110267511540618493872715662458382851984353801745916598491593015424596058345379924156052220298507792619465773468672502692251121836030773157111822230611922503727372768019133352368153932281621085720462632998578311998358702284258396918034353593747803219001691332570668195605737199759755648896320068464278948603835278709403865202552073114623840057504965584962714427202253097198147252180070624848948974032100948249583453641584028236658597002920377711138804888052226101847212246726630934325869614847958031268933568631512610483397388819495953433386567454685916283168491027856397453046179268970137340989873352868872998051105367354794301626942836125442495790490647648382137274213624585881943681928658738397207019183306980614927328155859189124354977597658339323985120315674791740240817377238001670118189291494694754472586670760549483974209472893591675714955043838671766793578425391287714863247342069705932817881799249226367797769743419469339220119769722230607088600576999129822364332873913031205943395494741973554694748831702197477453988505138270714745546825734769115435264165595544410817291355026630696514418649466293204759694086686022340505330706426502808862992773756335164058122099747217101171059384503771287669132524634439267995847873915795316196183594164477675524184727305726195684245432376211289069596909171717847146249021406179959561348015599228390824602188529236901194559228553897908844433635932156693575394070682072734342522169865238405119423127813402020654538611814955888582270203836222615854142860835669693047427454878732325582666769579383836519549613403299669897743894165705137189996137848992636588052483360750811869690878923467009951672614955651590925860829950214260328696750727587572364533779995374904311342931332131731224778550281620008484385442725361814368615436699023422176103621421072655518386343308920906630499523265026198388643645778268360929018542079054543682472559026482188150678979578356100442264934875574891586181056343472801011126197762790865491096064027564633480420760773055753970834356387451073976306875426562101536813670724974086774899517733032466333245134572630534283597758522501448813348307038701575199294606679338975023724085527521135761332337754009894972497136020360522536662018921368572181269136553209668077500711072500425517772094126724177546296789229159814294150865260838888509003616248890433303637111127318229561317951361935798726892574016157844447867990612699424983447541378597373101925631344781345104426066190301279557721651164335215473238811405161159036235452048506800780835431722211819587658927364888499014726072181588663723802743263020972458646128425693882188981751868513226995652313817253127505035603483880260143679248499714237007163002251578138025306917218210508232972906016132045120179321099404580987773886722812304958525541246010468988925128415443594514957904822063915710620263937472186698559953405690860950210017000881703243673185559091185876548275334742541752732684867162516282217358835458839244846513073282629557768886132498854166127052217566522945019875412312568629953631556502376436356406398667112493920893866713654845072436421717420295342977935075179980782132552155575774512518485945742221654117498869821405987660210366070927800765839913614447470811151156848799567126475873328094204054204034352070798748296627860335477023885481244610675175166087144774453251018987566579082688002339970100600461277249999090270522295340282463215919755393966666786804343110652291215175381572106937899918391495961341797013168766811761136278577440750108748699858178225658981860532916746489416947450628692614865964900335342681570081872920278741460995117590393745597464115799254945367728625267834738203742569899039072713207171893648605093336034583689727886344352665536393446602754314933273551684067668998003643512996210195242486130229097458552406913292004763094412350476405734000766467100555443172552012493989865104899382191851269555240703347968793602510460946176050256625547039004928964193125317650506740596312879366433859049627694314575543954001552578593562227023368406018515078401255576075903360394146707570602716799751333476306051679562641431083899523718394413901402846256523591894937082758803878068587094244307648310977389750351156690853083791437214507177376319056317825680885658090064260962474844455428841132164289323627728082589605134677308263502385719812397604626678665890328096557597735853910262588746664811190286643786357601074234256112169464817018942577852402730579205869991864744033480814683967032392403310969104149966370093991936781733679834144436728707391666742692156875716953366333444752396604088106759187264949823905466037802156000399667647902732686203603625507192952932167148154860345795132868938781770832162165926759269334727956917756392008753860145729315474875213635897180649105463676293499048754265679990839514705298258965610238448742134322871044613130157447951949663312369376049436144099453092262562880049812976425963997025682272545951709623081559255253915592118474893527449781148994672954002727956306944421453490630126714286539131204640923776363583712970563857231616427222981230231183041081690724124911421784362985779705228062723662154330897274194674415227982671811722164464096849048293244913885503424364302030762017154699144078450726580332954119902192119056737594472205687064373111650239307424657494918298456876179190558390486617673896772504846034890352295163180530795912058333969049463819205332243905146269023764640961016975225717631856896737500018566376390894888273309670901208033222989525519716039490764705352418662514700166849887145266518124033269178443969227196759158068107087962716922791051647246143192620914532840075246044427540264320048193389315515072033293474094781810345631715518417918981287820866554041634827979532929561201760104026570003610405977485005683365062819500424675088228675412903006002302095633532087749559211440996666984542486586192641161341022214513377988072481842786397140251316436601067678867936151400214131974014018060932814556598081372223700915551763178361919364808376833987960633540948482077226549576703890406939973025783202268792679246597983610469810506240621147794398515754060937093143644609835466769277408714989151697879334849112006345577688978270144743506008539926061062246205803632741082791531341833265716371333435733001873030308391186934012358545842941923450048677200639564623870684227775821363623079677987974875636779217697585183478067416196228088335510681975570033999154153509233357489726983396062511136887764367354934179780312558385202467785720175561178504744320738070018535314406810626207321484412751177291620873203434654503066180644133022749129039163376094747693016792008795899315894725940509220433872940207042321741405789167201207489735349673593690823394198303176972621642990621733759476743498057688539449262337973335090758246549587680463718755309189619316098042224069561976440212646592567449491832691417035099096841860579309111485472293488500838600423109587574105066825376578211423462232524243776816607447950206215867520597938250793375421637741861204505518989137959334945633921655841154696707067698735158627813625114649788633910334025964121486943137778247611921845239561066585969794831179269736242932921063859411790728908120041725779933439811040915167637960214735643714250238444468520808423667959772111217096409195932618240567382398135969000233167017966310382849562707092195709198854064012623299831945862835024843742205652205148081855699233659968044023507973187875224869801472424579223277500975323084598661269948003484401958876194261047360428423357225038950707329398799766029770138541241752214774905041422914879922576982903956182086743926240897866344381400383622897907627040988569874376413659645526293220470419218753718768387934985919094691576109246657722226504894156559620303536565848615578503171272574477254149962180542324301915745195760329524195286133794410527226332017123893330543221509359597494010181429109367787590455544955744151359032226440278914229369596654458187505905511699574312016976444320032989162986553978214256708452690485518741104895926732265228035349405117300165229131502204492939899345652332571827360500568211012706087372028825779010084804879545456492411418200077956679082813937858422870663821184379499498951557437093511207614383793141898664494023453468667466214417271817671676191207654142264460705578940030309364994797700358335983536604439354720369207748724230090931593606003097226408017668679350892728350867838216178135690424844450608969084009824743179140572399509149432716401934010483620038568299216541019635957972642517971488244303009611450944954533313546423244220524459587544912316623488523273360427969487720517128356074748213215148050129639272868123262112176510384997797735784692290508996556470074803530543498751892892981227043590675973355291369517522472975287278549860185381891496625650044280042302628487425875134315250316508096519173516179827291269948952937291422591129756731304478454630634323251662729646080872323425595252339216758547967731255905066515080867214476545985759623132277185633228478027535980261752802429339941635186045112116218495599548798145295499829842225060891050363352776565262124716305992885813055648596354319681403446918030456530632421560384096961838521988307468692317175223714326527198897093209029132851224339736419993622647778227328665338124213148829770457455208835197404932386442320330345071137947099691506719422969054825758717802703552073025406006113189724189160954503496681301644453397000952310277493673290984168664582254699762588309693946245933749257409164727453210123624453066923227216248867588223999910667612085844077830352941492349120423869501379530233447042641433427863163116217911704389391144237485784530973921905393854554239628830826886246847723525401698167937678667923261474891891558957718416390638862432902218241040116700139012217511186277870838601451164294387480555902781511877349791871176635793213667958988367447149938998325547463792734378407671052935513198671284958113802260096799299003121991737061204005018025486744785558002051713346519070122383038911350224097176916942509256394672790587912477294759892452243102006583170320635122833333437564946273203030237283826288784466319800215591440922196398365236911885705416885119475910168877134882334740819652331348066020420066527319992446045989627425972497987353427819831401038531593735956703386749694322555475996620689891399939742831598039124612942018906192259279771666239103689901464876495897777423882615828075629361801958421923718956930687468864558671037223221386343885880793028243712207130935564383555907924544661632076048739958694962480377187145319716635259576940636556280598242718290820793888525137958259408352129705537280428396692818140251109504078482793788778866546732237384020955041912112649774573437468714688108003472664650514625792001395315269011266106103040134581408535222013806111638941335190832172206903777478520975875692998087879530588745520224152675205674428422647567624065922948663536875802483714576880001545871201057220233285624757321317610297087384989045443428249839530483830168183017962146077834189714215871797696319675633913701275503656778208907073858579288884381958587826784058661873137996666879248885810825624300760852950473939363263835664772094616806368907801635373363066739810670632910355497251052343748074295628300885150225259315251749217831072017553639830022220793858340274262467794215797680152751994950316276581277170956583773773503196201056545164996953708543255276724285743115535340587319091323381856715933944637795585754799001527132411666183779547522874255755338871153642704478379505667440334964457573664627617218280299485054313476862067860255486017969244188298704708077399400273309288287249795167054029731307695213885378200109230231435694718283018936879405996589288596137494199737259288527546797678091590011873710373749256642482623129728281189807675592409310361181851153926758016156671485569458851726819418744089841859591757312035852567802743362870514724158715711934367161416140976661544270834079621090852549777528167928422822332770859635691150328107692621767233556393560678935754079497441286986783471544187340158163575513313334785321682660419135657650366350198867860871797230614673569147878233539340839552922151821133972661834297081208818459071646734854296354366753718804940657687985447993795833400280365650635119857607674344492142943676287849505597377871943437639865556209996533156679471838700258690750956631704977611112566034713147256767359402758491200468369121023570244640091142306704464956634057440176532683854717938229357052398473979279235556762345750092972395231325200623076632898237481964706085732408744937098718868203905536222368753427893622815261246770890806436443405080184883833673211346698716574112469742128315323047418852472496721196029765080511390119548566111369397109088246621185216009385817914376427351087292166587817578950891557437983595821261296937200449148600036226778174669955946602597877357699177973123135230018648312227365791986177066464629608468196713752950622207742816812632618678476503362754914815164034787482301114601152311318854297426844758997572067575156197534450158610428508902374874184632643505461464563156452314979704882359422064004405017951127591177017559725077554055846553074731037261029266628317865813534931968139438579289966366995170348447323953200404651567504186030845493911918141060024234407615859303407139255788484109967849951004489396242975993233310495199620185868667238714488249548550811246061344533851915476104465381732939204416050929429133646033508091647321803107710900842885097768157524074508413033594355659819670960124573632837750073612528304885077682887541526527960422124067248416750489759233750147950397682152854637239157242638875259175301509642667282200476903834279669028499276511619059831482583911285205586171915608444605860858958840040464958800352794683465178619018069653004673204038942272680290319742183439616292819604451012806181286207145523775380058855013844619350226773955288570775032404598178898728194961353321217983549921013975925593510218062560876378926738577527297336821909294702479596330334364196347312153816053863928179500214943693653783640778004171591045874304006741764830694133835996758844384995768425537894487852730251455397483026713231424088612651817755612084441601032805504795083278017736802337770878924851653880648150130241640461659328112896957753229877343196252037102796492076233462942775612058151255843145093878566532329859634442090883520871271370252459292431395684626693571292758979067063465815746765502397700632273167201490764930327973399676850677107323203966616055132014925804181516446147272885625547304127660833465718674324788029766618581164259445098432923223832031506986079102005218616534018444738161307615660241008921374779374738507633643230780196889146546953762730482904591098758089082352188147879618817977912223541375260560580435339422664949989030621610835885813237143926038471358162946766250864245041240746870052679950292376842596936652194916485999319672387354702919107004346368128127028861746074094690339366728216066765961924055252986757859746593943215158441196098349595068951390493924951140826080675276802934188749997809278554189643436820618957257387305540714852044502651239089565976839268617896703551952959861953217899711571226342884463878653890554181958703779284358541093059925183215940301611544793624197928945223712249217587865395198468714304575369980141995864769173451093175545355164123994683933257248961922448806464915677326072503380853973988378986770420943186408495496315820028339106463667443864254441683019290250588232128843558314840467068955835614655641855663872846596886078481004170405654531371196605267604555376453982773797935443100873984720565368507242327675089070253199247430741039602702735457871864730028281976032516561916136039991057489287693545212855051326466158351481539359283257279456629482956972755294040965902576663796243788814419470390847375873077962797210029216893502943379528243239613141243186658642690000020739322225744085056261717430563986512654169574280482442197034680276234443754514896629259632924058847633000052575432559617981958701373372413052305281594906229048193666759876849801753957894897203862798755083728133443463480427886623349165987621804708709741217338037150264395915890993090492216902986225291767193884690868737974450775682259207693308330324116480735772718208073940314380271940939270102353653259534429601457126387582013978188789165729015751148524435092230673795546557222593368591376500280819180378494942000698205709503784312772018769455129317073401290089316680499895331448795670911566738819503105217865627262338687877009509868096132571726028780374253119301013147260376099877128268419357248682827732633217409731276391460903257894838731975148213937395072917479865643747525900889293167662860783937240137848931198914990064179462470021377089623465967301720992972527995149982970967976314908965379082347875489188404473220905240249293156116869589644596646964571821266540187544010942368235240301595416343107424745708926453719582705059696652279544606261079505130912007336463175657571271776809067971786398266871359847690824821195507140029204108788510364671563997545192149202778939472892347220451522216262700430217863016013961130949402274450198077988631463019163722032890001850857880484975437694320214252765235029111557259862565523935570642913798743568469232105825429615692944207765061092277806370105805664279952034524643237009228579849558679747720078415256307920777775633874980133971376809736854014023871284151208403943733297893887146131135070714089428808323955183052078575868955547433289384506254088244360090596572395413192810044625402875115482993980901009311659307625627941140630764590237822692702441275566044528553560040994532342832476582368584895779964760474719133164762973180596918496393409427925310772453532858402256586292975595024141094376761424035029620617849661436376325858384925372638534644734244536169885630884955243801945628788408595362524371879410896062937469567781083732794924526112437047044160412848636845256483519991167718583348328853212097870367496417800428638734122679719422565630939197251581757344253417064338801852630887637422501719322655512090004580338117271959488116720596392411960339433496156323498720075311672824637099612458080658831867173715531147378622108265654339546079820037413122588013637892417946736811538346133562571198220162178103534709565206036162769700383716482620535723283248471025995697254813787490079253293740991554529282997329610143633331199862914378869893054871002324377911310999737339203561698871611253768394666156295519987034495497091949872908498252721735686928153640752244637379557087828348310951199761403343608569170941899610124543714948847332795572565580933797987388266397094413954318239046735917029643290244384895233006236899729354648645402926024603813466700215123666731884047812265018665072837948354900733819508539653958536101088796106586556676498510582227965748596103103071911905665348474684941581927158783110368943869784168979277487698394378058523287061086552379616953145649284514940310746249321376918654098514653282789872744848287987754889304463397152608559250002493620442816741392783793983987884991851201150804587850209559057272918595076224723378567168914744825911841507858995090889297785623336798769550429678747363129395305595943781410541579989688223222480997781412999838264891517674106899094679297214506985103226478399143578268207150130564124358487543187376714702572081023714301256679595862241828133286039760403875247632833749135009157711866554163706510855143281830252305448354915846937036170881004165643245532433975100880426923654344733900531456928732322138366776521087220220655697401874940979328635436927699781277749419664285534327881627229423434732217413875737015810468775165457141534904940025541097452127927779847893849654440693490108672555664714856744469893096844042507982309568728793167852474924561825268251810988335445919271917718462948723105854876798029172214844980493024827211724067769855954703466953582169230850525932608274672326071008661148153917376034826520968799594455468201938387242673848322415985037983869757167196565352690164104897740797414214391822463858735974917168168706882868575175582833709308732413963600331556642518327133005861604387367130679061843240457715319400042545340477419162373237633496533155676067039234702237196443776968673313664087015712181352196952191418156907661269179447734122265512937805282104518700601290599862942156823229924608207702411118241762967784699271915946710163310391527405531783017594807579416022011324172477325580929353477103982611896316784245884475806940660830851064728021977789599095795565586178908079000210611645250960143480838821274415056886831337949470378302919380739676828854271708602436359238640978303734021176287198957555016294648019576950853605885454406164640814967746745507254737574171107165203684075434775839536875389676205730190584738402400312632416186683569943851119748632617405080054123481297411091831079935499106624052320831768559894209960990787549255462944408513290657913213716074871329155101067791677545887490412380516482180708409518816669592785935712059425440516228217985180710649206836908559981190040977977126971567957378096311488465335568257536798082863743362601547566901038573703061194257604563167267651163825804155365627506806008978806506498334443583927723609739269546540193307456666336460678520140375608748285296509032509452840637142937056172780698883972410069243612504498867003121817419030535325439026074957570423521390302563157464714061298054789547314204972783998457229425841665248698871584390436893812179918692146501192275307686562068750775577908711193099271066230933423291645696983461354537980100615479602512280896959230224472922497768840704258145999666620354000174363495619875267150916893226190793010581844754544047594262755441042932646693188238645756950273810199326035071214694468864624875159313403785221205314531071937568458125671409256417209931862034308694658534439358629196323063794953406295528097060134894710987382762017089247507410865642748425378386819467741889051986042623249926228612134690661596620921348486059732958600486732491840327664909846611492299029976385576535074075719772756115556623943831481567171504224897160710912929040779191787974497712830330799472475962081388457287145033962510963826479502894511941817835207662947541180775107991051710335324104474063019146468699498327346033071878510929578965664336831980919653264170557570466821725467543687646563789212775743146872680412205579717007508699156465853896330581593702622275347355192251777213647810532341083992566611448124102888574640270883076190435644184843162749748852681571605441150927650433813517110549935112312772053596623348204411115646844406499840240752381648070567338325169796762667902503301563213330726332927719180571608763771534782073611785489111317546485436833466537923979350601412993980507224594300905841602564195883412037815641835878504008896264840296049144729573214929347916227037678435873362290264906293307227728502567690986128087979035531547000168049002237785432781128100566891639870349357965152083035294196851694919363216640641237803916766663259543025108285837611570183648410454133276108649918718717988368546716584511745416090197310786997314426639486612763683604904740941600845546627998833407790421564631563488570562678983060686211573278717382809113608408740614975983778064892248947893478118240682123778099331799682527070261450881060491985829810581462751545612290957841318830573089957666132984593503021116548187873578256600184499357025553885522551219970964567753505749370950622865997919437113588454042362852170918979981794018027212157518249619263700674704471542218471678993795893443783990758050400086885773767930026685492485447638337359782729049902924851911556312961520042410104622183818976762080472652834491019812173004744405703624133919610003366836087731278549322407475050665213924591283219460813585392443802747772446272202625475278399025759920212129061983978920794699641664055336889397374392163973821490304838848801682603070231892297879725339339138787797196034461150208958933752648512535020346368022944846065986958814846702499755973194795337071763139399049132393902144628575701059070449202201692370254079519740935423628554058342178895782419917972605388105660063835405107992096099191923908216177600751100722317375623996568945422861081949354529592181071885460387749241156347262421583954230314879894030878338720454715506891739142181615968490769404485757595155846599164335233079577868605154033178476814624192956674322757800156200105163853401959682277657227166059204037928368964679728194203134877975700720644581444193032732108590432882997056630933202062905670089197572455272305064506748811060237814512751832598435588859667735557181545835796505035831429970216444464200544240588143908114536782319732290753966203903294721440046951442203946348045757272154020902232585505085916028059368730531941203128872262751175799983564227809649409226328880207730066877254666151348423344921303615276429303178576778878171047214435132702702212244146938757967522324507323938833484236964867229536196549345898686574401239866613697512257261074647650222499950178099697658481770499472676457472991007207702525045885312629497511117760563911174422351066986216958488495737672613797470245489834341102453756177421751370433610022712934188475680656284230302490452440212832502463377798615055167707917353040924934400567715332966077872296155536944996626486636165302027468283876981750131418120006746254244803202034037357547500542626587156430728338693481497975073559423808436043060355604334858858660683647297126484610139969712384938265617087278088337533653971623124271200834717186611437494003568281944561848692530815435903642390877060808694736754340632695726787028506052097878786455895393789283558856181166988414990418191749457356560246019319770519623802567946011123539533030407152220081222681019020180480896293289816909609285135855584662539494445257237248694677578448814557659160675521881748598944462890229395103052980216050855586296904458006363486301066855241062236464957044992924628659558280284923971068529290373005094761745864066087907454609630560496712055583320650694367481250317641968856423341465319196409641359802258944606007675461611485540490963257114542343982777105845868464508893910558559528686667070181257228562354202001807251407714500064638656588270193369443325193211726238592320596515184946371512859855290158790697951274021182939050732930989527958454840570032636130819673106636934022110296818395903006053006749024020550606568967119368668696710305055372592632152598954661040965901821877197826380307815510778248929452254089215132286744933634195326766109892105018550164615934756407335132952033846340525717004863238076669355860913181090373450980531942526972490175403443374070180342879623478929885688456914349828882839796912400912524231002282507472142085337394133960982104968603576769344148364325541059474446209817412764233727994762195897814642641853884926923446201879670109675384478443617230936361356072018477235213279609955258540285644204703418884983240091168049343479584077805912269847879624941549604953703675766640380076413078011988736654426567775001510272173592094350102637778994739720469674071093232105820619843160987395280297711801513303702925224489287403925088368809226462865167520733201659734349314658471660554196803948255684820381983031573178523906485619011940444551683428314328879854635170173970702054962650708637852803068145640007420045996376687819853411065718333189671713541691146435532938722524046197618754064012664165400881774299879085305218337526938724176585348415887007777688331356147386043834296931430022336395664349324200377657243408937083663192328582119575336686193160833102988406931374229105904346234628167016595889003342034436355493895606720756312204626207347242260366749373284604574596004888983196497619398618494747371001526132050529841126213876118667741908713790561296534103872220125483813345058882155275701347682064381592650735105475211896634702332211469775119347683014171546855416979638757212184940384182254201564264102184772028935346340332404646545670091794257634723649728886146191886468241426263945649946763356380382909134824064324098378259046114197871793332499416568904760241815473283008384599979429260908136175646912934573018913713693035183929783062042455130960364272933234876622285190123235966934897682263565924156790833614909953749617862757397597162770619589324293880983962134164476008757875321769275776605398734521174125473205962030526151452793124995119391184073644747461973576224728692452425488618466589971439740385620117641166888411551926765247916004396483007036988396482368149595782932132028026406034261056647146042291287714567960351743953090395023087319744313329617223856499602289494918734002755642996944281983860590941744222784300244624639840483571162615850139338591887292833960319383079577748055593556226647137665636024518150041321715655811206779220579294012199303583841328161967578656042034750065885453635207886028866334195748802814417959345026290520174755931121721722519248101656725059290749250120360306902447798956788905879747669776881152292497912843904782716691732898080833936585967354560094887244639360416839008993574627478531332045706194211946910807385716835618235035045181950092710556918787255639922943922551313635085473817464435500754749874780024048205197868480371405230773292448873656101485296717908844095812521379047892942786921807723395582439851647499818227414595322629722970692846891743416289251550625500250869724564792411771142472706579518307924102512810080733615926823845583096587903070917815354219846830186981522847147668984602119235429971301555429554561453873069434854546755819735641543448526455915876847235736534842113808652082601203907416821725175808381602429355190447545870811211196952623402770722193429580713691073405961693999564209704125994267763326052739299946878928819613748692238911824795231702401460257476475481226284103319177898613459773658386952667709562590007942271892220571388291083756313592115358650707515037815281074864725709187774274812349097043831091861759839571010900052914943774859141023374891618139442723240323532986421949497381202944944398782233006213672440410038179223588476621757010554319767652440465660998369246870726979842809559071242531912586012805513855666039447287157420238513650095218011370571210566529659778914018764336476087068062509499516427680354178994286861612138283457675291217278039223975249605229507086499451534837148284603331106790441344401536433822762484463662709103106717315155422815640745732518612053119224289472062790646221497637668850885194550973122252015799871769739677019198441464821928909000847086436959870603933889316230370625933968763468011925280781007674366609714943761221186129953221609630382404050133692824842941598162295227040616614389624247833697231459475388817707806232866677138278291229084836989247818319956332370165525464576284843051400767966785307533166161548543699399028195938989908934844900532861989546341249975184212823413854545674929328674770749693963082912206770261502161812236487790114800619411443336714483666508683412379556374718616977167650411095099482203390326780513425469628719183288549925132097524932205810556866709424375096798388969200622340336706778977906947102714531347689584719129760779264318089736390829037649611161869937308960174410941994415018719546107047433778114197959815641047588690595053890000788698119855856362761007218128666427346087897582406461831358943793859831441120261796744525592198309711402979507056501896643213248571970209571130869079500656137690379052679998251627188799728151612608284755483676019450081233680331140462143356954047541064056504085254485638364467472363189719416897328752480053993064461834902651442949347689509177216758198006669757301878923889815066689423919385383180192980292019478675865991302061388137108470621422800470665411854650273773936358428173685293148358089213357372504532550076626111933366418371444300218969580197253929432731690494923957597136067489570271695401366135106980188462554987037395922405227696984874145774235269838487009167556096678671079966645809361381471161602816108443979782023150306896846246472610020709905178000311329015416438806646287947761566961803461648587505461282421868659021874475881158169334505241206871951451019677626740286746240184786399867846074137014326033026290630953427943360762786226204177021371288233661167480704862072653257564882249493563378605941087862179992271909972272740727161005839673465180790328198054330510980690069739573963042330647332997660065826021175066494065272828245687787883255394718667044629398780996619769480916644003474838878051878349546331997404066211180886276246723126879771026978771604852589325197188182227644406026317161158753593808945290128544793588144940836730869754723371731677810984707405558230845058402347460279720854575811074383119775522615592166185277007568617419453438470543052599256840904462592700090509906736358431159517579430346098628562086698785560216836168315407377227803132758693578528945892935005528735716133552779297541156349663048323491718137906602323160235169154814272406796485783390954250518995200042845932821081182792604524020819153244664038059933465643788604955026571582944339183777436921117601405546128999000018165603532299781123556088453598515982670640597881797485655755329412410386897599496545703734623554362630886093771139666421048151393642937048514619313422904389662181005252721665775993938095116063670632315980569555732052182571155381891192211066304770943436176554088745237822962005128044241724708366672426462235496479170529217988330699049263667098680577796475967483083419074725580276566895145489852573905080232062248241575484464622544186809398378041051810363632603308180205409217465587439042282604692108349370792162854123809992283142098891554490408924065704774749197391435377455237355751264213759616101552103665742449385060164318242860462410480273640417611378163604934152174429170633964476924029494224019666685055632210228163482075980448379628190293758468833190324253564718183633368575048018138588868505611802510545695520098815128068862447454204498805882985462816376178888915392946918472320842657861079857517345070706019770570993088204703841022911923754832174183096955533769699913012742748763008775128219684667554884806974972850160014451286450782593570423965023969540310824941997262781235120376147987709780206942140893511707177593122199031541038687876449617635743330234980710181010617167392009812619775198070717284708635854732263488426290875806778597315285296266378036775362706860378921024519869587475839020622581708064920593262749295283325800985974819795141680231864284395683890918739178755244595800108465613931097254743941429614601380276582209875251846131773186252411420410037567665668490912142896622153059302995121935209919811957974277682516371743621103352282038998867569891988269552710699328720083555048279490413122400929237101550413709256797831698194565491061463085700021608621319946487388995863991364139714354556396027782880185168952214980934994426133694189174822467187392950607820931977511031929068125421852242309049883781556558972802291600341788841864996321411283075968639152948050869612853018561930028952477417492883363895274068296094151660308167728741218135102507975704636689304444161374420059627829250459462538590989891523814335249772595108877170727728516280298989145148850478421062144241688690131170748507741667468635356445192053431924564246514849559675000355497276374326299116307152698609514451732425082736891456005755413881705640413171425948141384663759098288230850837866830826960091277454038202157752471444861707496857678271957715451025962101202770783091307194881416914641653196176091712703380944761211170836387510596650609350401068265801824529703060813795609225289124062088986079611900424657763034122174579595962874985014486594119627916653948472722250447892241751605264125402687406835878951114420560799047309407281854608249641320894518325417994779798384107739263876097247769324066219930816508571668924854144888532984529016333723623751227709292383453285841057618770845478151548294094324657125890080250872050483961032694688970950161837399170473581200554024976979983478773381508395611313579613455649068019306649889853337911307858124321718230728144223514071893549059498971464310928329131912099667652578284923639640718792023938439703047459141488329621624617133602986125367883998398410907356622743341803609459502011803866374590133997750297503635553875417599340196174211010596810321095897032721295060853565953082654161631689449919267398367461617504096899922946535028072874742790677090871892703228175799974587026457390457521628022966282509429710641526215123478726520592786468259198330755849801484623679389927725122151007487173828311047411001325313718532160366336912358534082185186123892464243678976767789758386818674262461965756588523052870152701152278619177017940432414123449256512853645194026131711360801633630150825787783471881707317754797401608642356240059020925180415489711508100555481433133486753966358008935750536275314305182538596751738424188758496224241128767479729761234359072991955374861387146029225763123651762254280368883463987557249613050839290803058058593832488250396026425398877132266363920208548034297573408559008022491107194210680282105434488300963294650071446644693465484363948852084994767998600038062426884605207307786802922801435947988711881090720545013498131011474003940758133107444275128371625840268842783583755091813652527639094154721107343940599613568531580411478207708175989265469364844030869500521283102138675683258357857647593330680623916562727878804915449482651630348133987457857628996848650935005366683503483201695716117714675605547811299045098550983721797653057961726770840742398345732826178100598625987688236190653289285643543336625400173528051436122506078400183360650470369420964746874555552901222129179746423422745300210965760043733272202959257492124718357579980296297050087973819382410402252502817833188499982945175148753419437827649895736576421923423998761280694722273346062469181984690452063537107024339808995249014948002170347078909996457669313267241000291632034144888984109078822082262061062645327105468376048570528061035846754609819856159592592332843889042832401865461216330342235005745222069400568654462996652019138019165160742754050206001460489910825706416511135709664296129899820592075227568218085221795594134764474637430013451184093166147729512642339975200838408089461412545832767838649706646564277232687413611922258120355838681221866604985626166850466931712101580572987790214646757104094628581677619780342651328540603037375988769030623630933081216236201512839993623901151671402164450663198985157560129514097738665327857923479869192935250280598549040533801302721127505174134363051116127991479814187596505326403867487150588380977511700265267062627583315883462626718913566862473742502640265957710594050304321396935061666286571610974576598303942454777251577687049534283600777085009864628497397620983453426484948413785064249669635301193767874178647274912264415656082912318544123460393095659416936644821495832665985405868468615192083338896056584088085993576485816896657735357580336165028854549063109585079444300876061677862839814694117334205316493488385846065283315881933624339883256091901054980864048846880263682024630709120481795873388569685038887848088956557748955048294874643748923796488210862150955254982161012592770091073009966968177328272764104839522432050092772769415111407848344788726619039449760504451355013606141780991689094038365049383336024724587675107352586669431257174512460759876123682865466836477752539333908720293408578322259047152268755548899047407831587653218965761878025999660115101211272961147818700965638018579363956362113509119774731944961947982999789380810728994298202193284461988704327889555238014699217099915183026100419178184694650827977656891825238101483405884039064583177173823064335864138351696400600077345583846010488742465548569873578319263856300326692081996091344528069130091465051656405961116777497582939800803645095092425098862711111811153372942972944480029938538905046336477852913627706550188725689580438262197612276711106857603817268609168752715183904703885222152526854788161540100609981964811649379290661009403533315812326422650580900275259361379978157622689938763904016014449371777807008840564052092060430998702805516018163830691787803150756092454639110122014107640362228967147001920863882506624152004183205712234161953681433114933828662552435544745833062552619765197215835018430819962299003592484622325462499476619885818612995369682904364745811925303743021681279944143276613499014592064620436510916281034588465917338076870258323972210839832906548468136068444098635709167510843188219131105450571596948687725587102283987938674580151367104198921317337600210454707291837487459227614706651639721760144256694723112425242717152473735185970965969523789308389647042023037491353699529239167188593865848633182134827154403357778325799029774283436302369704115023317985735468790891514278902038267041398000967596619477800971300800937141072204432118402587627825879109585639323787282367680000194806369144141498914791644690738238605063894668520098914366338388176908666599467387306343783483149128296196754502888630408621028743051976479878745761530042711137660361496680947902668372702231887099966704819220139766380747503333741683406360863431332991638830683931579637723258191288613943099561430429182467782678030316640244430610327169007415118162953605150449016061384433972523841648104783730111855232116030209823426112098226026035685581176762799948299503278592219101941168780771347164900219047470443503167652258301302634379632857641957234517178589028187010693323774109833014778220629112577780403516382755852852227931622218082499393818083488350558177661068576982238630101684550801042365941865376472140534503661981861037061804238270944377296239928183703626547671396917459542022499104254334453341379652333752708921588751083962903461289102134732280654287039773912182991905240619285930845700825520110652896927838294395113909081868082214850444104294794222256050234581528142360291751469051014108004170368467227799361087428983609056386550794629071950390693510267976537804649849164913874110362423364388901951940538186605400238432381072249590825764526982589913727135886345249506752055447877785041149376021572976084476860976472256766842495129526737077439835045567549984099432050652573857629552352461276295793291021431762600680185775126128890002237271745663040176398705925002890488114243325924102945692064462231583326640308233751609810885009627231201171124785699175994124195397889616155321408383766357335731987042146317977404184787798716437837736540243013251458470555866692502247794358499686427523260439249551612016745731386447853098174590384693560434025090721516322712167018972622032588799840163692375123423302674171038788189715686077500719901203290192158666704675323232583051741545318045390823164925851972856668854999691498963081662526066644233071024194037247023467910115212619345802694254938269885669439543023077172460819105794625363455844198170874927742745147688544730761707160099641339907164355976059810995399989994493881916924064336894479515554485208538145696130369833578842839872854041911279370552867400593190397484160263705503042724610894978288826601023601650861022682334161043336247156841629413085571594998808600609519285455945159618597868901718670281443677878476988766461719996005122945829302914744694136269374134750449788024334513109567024664235630786226579714010143437414526751711546702571249399969019992116428452802982494239830532290881379573537080638558796174090909077577982802483220939970127719726242269832352798689809653116115096800134348006278205414291515879486247572192068430170169944673826418350008107109365915903971440139794705177312854008072504266735010503102906451233746096648275849153508315528698546866926188763491274246263906660935678628970280028716704144770714155539975943070229055910305509262280331607553778724987196188375412278740612280710418768280383755140746505045561430266389644059222926024858658020618572337036195876120956086152063024203392958582151656156291017958396489823459554671750857170400680603917409666180040400897911079867220198386475003624374044386999645640334432766966340680790610137406701890266182381635107660709431747354622484758527263097509566067117045880929189479891615229617403168544688707768861077959849399676270243581740098398868853356453551000451048257016835208288125739146300411569510897749276499325711421894993608672718275848469218858220308907435154998573261448130875044285279371831308281404270787500614917628180756889763740980462737699501372243549776097590135568666111152643867772478587675484227671303851425235914694591502381034185315253746258463514205840595762834872527208577966955908995112917768605056589131209220444611041763629635126726272189813300565906281014095802757720891304511743460425449531864591359357490513019703612422641508972104683148387787191775506042978601402804102988171108617927927604918231705371784382419569332952618466420665934415336678409583100932883445626332376279052669398269098193213412979949789544241097877486269006418453173449557301556847083800073260809460703355465287066603543665636606242639187058867535146971575119071034563709696877148526735204346307791655697779608698193976088316148968614511858135874490535181254071946999455771695191275725476931087772261370671000088846872971268797889798413666931538745484053031109262723221766544833270819980184430233034715351908350813332788437898602839022386520852409858975394878254589769751446734301561531667547430137382859947643471859891406918604600841200457042871447482623816417028973923044466834437646994818588549867749571933447867348272988947756269277539931762744901562682533090469192797806391542094097741523871545244460597942910398668964520581929097606918481591270250921715782578897656380188694933043517779509019427249007830816753207954506210090215169665150928319026025929053171367446918041207629125337118346638283521697978684529404163806886841102099850762983534024376987969519557153672858850183942791742007966429759803122955072030005184019122291727807419110957497721755118919766000848944916608423286928208191992071711532230089226690016861646893561610464837000425976934678526182824550146468850334335258186903437819998649186431993798755552065059592587173180339535061866005784975638631315847186157581815032836361857737636361228248313214496489835822371193005828891038551224852399218106823790594454709052551980946856054962092787900209694906546357557244633122775815829479805822536036110076298544095070341267311890420288957327549665931301047464943799316258692967325247381680519009380389936170955827666816892710389571922828481219517069830251483028669513423630042062620811731576288472800683955438304010851612677161014635352858880579184439243561650299514486178252893226289522422181127285724773853896706167429493335467241490770809380197137959552733232353845211866475277501229671526092027341112825679564745414487801239001921764830555036091279989581938967997782456479554281499304082952872523399177465263843654883787522660843001064189454012032513964722824300246065468874896001579618293053486739847899833358230296185865454600038190086341850939411580003592803219809432781986373821381822790692855330060662399223205837201408700637919457142379502952812945453734519328121866618796314787981531875982173441366453590598157582078148394157306009764292082450741485957580495199840338067016474417731712307065179934216324767001740333435207632825652998420209822957111795659863071006098853721144171758222832127149508000290177467597172279300607150051262653644152257771473149675349395109933497983613255513557759601693457074864644701165498537323394002936022580427490701322294882076379643269305477189775437183221403818232947521764276669312826307994508281928418617289221445739189048511742994697621633996657387882496685697084761686165768012815685628647653362068326522899789121857318258693227403044574842298226816059729622480927297410088419749855119297781645704484513678387184399990150778860865179137302650614799848059622069071400602365799439150086888283366515084799297006291079409399829133913832556613714336625311957614250675096534585064078761358116633363012244136695896493913467640599704203823509008952657023825693841456371721178166586890985349417848207214371023064500640921256405153702314632903603708434944658792629672527298884321073540014638660941047694459223815502079526540882677094864997043833591883523216325749804113947049551408365594841682559737057863938660576471155294061981631581952018907887614710777042488106881864576336163973015975593436032638053033783161171128443312335997022097951906184207241045269391601750263638221193130328220395960539919563105661959143596503611424224076248258500658272140940969238345776168824131546380165911149789349821596495957665593342145063421283842501834051139664701009858230121610892639663648907255894798966223500134286230669562684887678273228903627315370511827667787821920410416684624800529093102226374275852820543424110991722220800306099501500707839654618020596564920948095208586588416099790993494722834427678522699688894836774718525624970732485093981460572044088404730213649183317545982718787268720410436963751219281569087182540299279589300389547054785484307553958475614396803150479826780284030158549119719101342907337954432019552146039213408433928580240865299206711220739681774160189374134084251509834323973461424039521177481821476181267692127502016415412972658745791488684561495903596505806694789924429854881928902765054554491789146160574884761109429774531841048674732868447885480641505095801231670173925971211419151521892979593655226886279855434220594523238620847289914107823819409963851517067285624045516047286749696413268908782192182744746857329916960628047571944297429983206648912813493104752118880632794280640426932015075352632233926713207540231180223210967604429408494862278077277636590492674008115038777056885798649351624550869643311320094536228135078011005939557244180051898044838773045955862565104643037242816973870096752070516065183721607799635746601988315088358137639590849362356947607733088777032237662859310701757001861932798936779175582263871254624740909607269178159224921482507120475878826960200905153131069471597532987343672570954297584745618652713647319655727290230575497330167062559402560189480050908172971412814745071980952267547917646453979687955179003440016826034747922599441262615818416510863822056619764250549596752014914547651114433306627178505014621515222626663158778155476327706311074736500460028247418772929469896078275436455541851453121457876452610775049694744050232607395195402995849746342050613520687163033408475641725922040292080863313303908604406688526853614881085169873932075490745862561593898801319245994548732878365193575738337312571275417719258831085744810942530906443650567521860380041696582445559509483580177057859909332303122461807180746662869904546045969586982056614801358588947126232633687150824741826297205189810482872675588638010090347320890587233499681987648334803342109166498446968681522019540493307017510229230625471292925852331609058177366504975283331968037059943110125782387602825428654194037780040679879252755093676854705491934958067912344243001298139952489697952471253665459242652967427444405258519770188259972554648863316643197721524251907927739995063438238793485073847216797279721216854757615906695042936064252856796185080620945003231914972274611708234504466145010659416689328238623347282519091675294160282796313589035552859636077698122314673975080671476309202096071173697900548429093254761840610981162176440017434087868837203368981610055963839049560363299387210250570805681757118250689428528804015414521128159324693174579995874602489824191958193936827316392004411066725913661360390597200474236673451563397856933656424362561135867674633633740513399549125994044636566312580623773612912974840556276013998673027357860276557811165916150138493102446463235157032340857255022228638826801611931985515644047626127348943443634427350106163609047069108371441755886191044086216774031535512091561600534778432689485011790944694323244834271913888636079381785481382451023151426820640507190677390890614610898583558691616411246068794981332681154093042502112430771994346539003627983669727478270273746496799711194910766389973341084523799123749837285142001919789926308312454980630119100972110076686932117847949690461724827311929489018226047511901834162469910498431406716013201107114342284552809473251023806171141781109215721563214221760286937183628091773706491502430735260513875302581185112158297351614811857351824774907596542618349468164530616517533972882660745175824608478501809081915026783984600294302731144629594805521712750544513839856338854759027809482968818444154188091358352721875503548436566447592517923410525277971811816735994558540686561133173336754623299112774614652945250016529357124256380577238155365772869818374145877029001345219980765735714419811601279598443502825989651032785768361094933200116439105637458680173404894209425141985921186775533840411399588136258257672236220602735361055827750484430665649005352412815467137237125499369675399676632496264951514699423503316942270838809112819854374295094088675314649891108916796801768224615488974359328584708490936616845007075554859531806814032530920707974174808906606615670974193343096919227556417517654762715991778789937977862618759675371934199162436273794847047260026230527755922694759398672144466636208078611434266871607513437218369479081603156609372302343039679529126731748396572751739459590708837946740763310293639733389223846808065343617922843350138996755469369923572095630041935573364997422720374826990551730781084629466035523141477135414291932479203671956282586856158730382058837012431159362750156623770371814506435818775520261275362346839578579684906443944810357470412885875048313032001733241789520070281939409719292329309408657891263019573443921614542233896865463158304745537453737322635263606456035061331299881338486473291012197147396735294771785916572353256597231787883595350579813755992785258767445171003039783201788999476400537675573112203332427832607275643385050576317738898303170687669434740027282581914226996721753664780996417433545500076942468102976992576843716518222537060309766469392337502028198999483112336705220552147574577313465657551494878627213500331045554675516561674523247501404210858547592886521722242638058256810300151636780371986391212001045815184948157814964670158452252522621384783174178899063420914830417538675105200498964911776979810573250176661695072603812769296515424311066935219102299131872786360287252491114658276727798337738962702405038034467047206043794555373861631023695526459592601646195635887937158549158026283331427897092584995578027830788339591212608856451551789749355648153449584907236349068495753963666150471989482370863589796091073408690876287752456981716798933999208106858937183116107078306233621742366914337051592719349175239529106853883899319118307836777189294845270966712692790657530781530298474276097067400833330834041808372256654788833422061008392016635564078502758343465254361514764847694170549538809006278967836034047657211210219922516536972529799170969307399787004318465427424671458265552638686731346816287564279169945658968595604226425338798690150677626409393605187680660127715064898296940504193057995475919251129882317274801619625121701679289959267492498211527784235885148425046861006501715898058422792910811452403014292836043518920905469954215196122025149818122714421400301742943185152878456446434659748969839580022323864409608907081783195675369832097517947457354729800073489692593874570954837155843933246152881957335625718646795698770564452440112479514994231886927524938423786868840352164268230319489830936573350633150944749840923891393119965025040837892961352325417299311605761337169697592151243186780402777893572141528722685086435542261860961350797620644134536012189927194470727838546519561699800991859435853274123480477637925519439396393562878144319206423430251469202078327267625966532927628668143716813107083207935926419723478335023005496930032860838494317132765406396095052544617008639133134175546322205611312391570696268592373347080806402283605555482934500139287506513034298168516442095185214811716150703479522351024661997591139750066867097160488213231353678558095167855424612883500399254300618872368176978198330119792769492890283166600829391086302871743751756501751348198346997066150302648352046401804981340026105185165650932961108549338509122395277192066005851262459214852577926057916843494518008410917809938760643958344790048078559020635977982701506437812677364022366547281137585108078046631784612547735369253769411715619217110769648039303730367492844146325782975586177648996383887314551375913113337737412608212141526957495216889397782114773915458224362010148270956557155414325664189707082404831875119682101561283728277164014228371914183713317460426756914879392145763236467136375963516452329945022104248223642605652910235600349210204705543976098310678333428721044560097567000161329296493247258857571458931131181003555988598356178056535423509640017489831649324512545839415142418626935450777829464801037252523979038823662983512127508428049311782280433317422708197430754963156428397105583363867492227820159624043301222603183691186892861925497386622909366977491620349945696693928603351535922165378731343533181566963691284447044163490625861049458795691755408134959443392350057304597003035226591798287309857534413184934689608298996912570865742796260932755746193193830640849134808800960039782582095035286461449671054561321639380174136270686705484087748304927330205564152201851843298677372645465188992019105689408744527255491493044144723446573864974126994131759955123287868580949827793752153028542643930622564616682001161757633310955825533283370866996706980570734593602038879568406378265631107582639570362447517661084140499375604121719667833485285324705754640295056596928005174967382471421228120029691761303959261636163817888885809780995519212123468540549760265941941151497861254328795522739641887017607084845983973712856131573201466954126819826301484232344934985077926537153176104513738124500667060776509161125357530883083240759109294527838564542325146827924992372725903036821877017955328993031252044984138555342900753144673167769391771411955049562588477179862212137987664003082400940004771646346995438934552442988637245248230497287618860765923368412195283668755531351848667558486326750664975118934849857427582941714357080794497289109229175306641048534274658955136618837150488473834407418890778795841422523954987611977228059210194477313964644126140190410083147054072550493827000855185955276803669526899033477343684505657587443776141841610552562339887803864675216589355833706242351004974433148744719933145705522391524363633303118999965125794781060506222518122936675152354645369843343103402664815889855042097047407698953739309702566536620571737826135621084095555212222976295478909931110090381734218275805998077758715673398326514322387550898751708371678947261118707731121348810521654957315168918547931540721770488707751962130006720441927137816888900922238454707216273484522451945428676730464917860667421553946831187172757662771075889110658322630677585087836338576010566221467759969379508254956490543304166687134853763910748333337237601777616827892963212733591712735534018266746741928578903093217272989988193658982789896290772124381354317119220868427867300384914825235867870748062270757224054124025285460038133046493293314726442639757768467231665843795818184721541937757147153841380655535278444302038861660654594735410375356678132440349545987803073014110606735316819818335376228436222688670566193032851334898896762224717417084030662202143497171894709630984082553558446473654655159739824948063506088918424514771206715726301380136906951309005736553765919488654069893249275194447763337504657708466039143073580203179206207208817076362201438184374746254296609999286224306921670283446215980168066512864023517259486654107973004068771372496513768547791861246023724441155072166754080444088959533816630827812689551627378099931936460892080761811204517078331178309136620793928350076450742149750350608007210528626814155045884173421312471741468762892185778758966772997014927914879177082644981386752366215068651258417381627920383133642026151722902351697161120005877610580036779672612155318245800868888951745272378164568304231761501084309160725456387635280779663457577368801602567109470863441420432352483995016805029956302532817355146693021736848636887615489244146885883369173543887798638439294849417419586366879858461270185689561205819232331677486334145839880183247391777678780956023377158460710165057164258250593000909906549578014884901595595131726837207512578028651561642261456508635067447091309347480228391259817106756485848782078153830742626565208770528519631894989279091020787035804431451360410391061855470281550974494366663308264212628635984416002844089502057974146296986214130027033177275841918395381563522009458845016220956417061789098782013398862490454781830391519790934652460299244135207543900986326432119450117329618923378759998490368266282454275331342944848134133832267413423219069456490683942034069754227381232657891911220681952849814016278381840793329717618132515186665346843489081119484627424284939110798184782683599978280997973318864498315246033379961618143338969200688025509293527515974653456542579908020905961846543034874998422466830763068364909213142693841518007105846779937867043922802477208881065887772781302726901723987810751730962343322839279812872713552750720816144755767041873917473493486788320070243138677244550131908336620594734731820659061608703380098014535966920493908877127526910229341836031409433243869960396419244588316266024473783372883966500320925003236869105225310247124364915418487049854894311816996104306668294905961690794088432815989779048235481823453374404496047294463167132374163969399930182922080840573202029403204795829278810319211661850278522807881228151668554656580290764294958587644005265981325400703829356204993497254915419000403508561854476279206661039639466361371992949553871302923783162792405353732309143292386530805409402176887815263545165747978736158042279657786599819702972011705837297492846693587584349437674882435728653175760938094810001481821360260562213993681974088044716826952985385881340518970489847498316564739133341809933241025259245975956586313970847084697730785878196240302309221863379186647121919640896757563649039416464242809794804239049136897948976968346408486345600010176182106749881415905419668807767828027571561032306663604657780658244533257915394508234912737585397531443036890970715041534424490503546503187782917876427497440681484910400034903493891899114489768413519015503990221853737261654185661588101365801957594710645575510814712283419142884757854383020350156139347282597586106317358507134126651431522710681670793842849131075265360554370319869176476506975934396748841353899441150830881095427275820565952698689798868875918500562083853516260426578064734846037286306493686023267448896588481744512238871466162689428452706735075426487075921900863624678635081342763892279301903017067780165485097154455316295223945583983061135222641585402325418639574212402273921158560263370406116995736396249223656529175719995317558591126060561944916896899639370784157787816131797181803605431354332435404694187049005471565233233892279061869552346133402389360635393314111364717871816346417218579959398536792255243283519344460842578759027991994299854847244704720485881647488634501947723137918912811743333488759799680892163931096082503971622435794818714915242773957391909177929294501206405232374085114352302742059043762091591849632965657153074353238122264031188678571479264850353080793461705189302012655821407093148477073834821393879900239038078549383320613242837711443138395670223252379756763077675857063297958966386839686006327321491490516930497252598732261230232779604256915875516417139954598104094190453313474503545286637428239506290845966607370861306983808833144734722699365155053038943380368576051521110199785771901320569919618216196467667774278800366359472152993549501851078204656458411957496727562850235973569768219333784853073203602403997368247795358928286871198275628100766657536457627568512357877959371255023858462032272117736353865665412527237261670279194066145292435131268458994162137707762673012730791797329436141307428587096639275682539502114304928994640801952743518653986498519302423881741675663195603322893599097383573470410955362090596944436468096040885225885306065431092301166138824369043483388409162369624609653976905707292861449210587591368226870894096302099218523672486232649633526301959890968718081949261461406089028303208556671024351641021089923696220109341944845568743045287032493278057092262640918146931687083645114435125652522796716072244388110118270846930235426756457720934104974321012111630084551499410783522217585907170245127598580811338569934330838893241597853170263023648212493768925956793672894018530797718246089709003955082507292422680411136748364828577213835311728426280898517755133240208179084970797954804852213112802195654262057768491192387355120091183893398522832217261667531389635845832254907635096352008059540095818318516436476590219831701215761537479075155752564331491708954287029416939470169894957956874695583598028549884101058192643056062136687968468938321947383817726475962491762134106627588225801932922472127817147856354143103092031491577182489851054079860303588792983333460272117588687092078249530049023399326476309861856869446262409951312810308630614894167237286639763709917825556486747036706128747291355495900200640751563596706991422737759961545481181433214516594615186162719447134103435495982897670282557285819855109724265662913314943741621988461308409664551192127822534254640331971760499958031951452094259533665765535560691726060512914323542317993138703356794035740400256267166410387769845645827615125234713390853208759427412269356734779715652103077696443468598621908420177963534914006399363315791432766768820379391610430031229444016161887242316408393213695023331771821715997214747535865488538452197748508284301802712721896580827501433174258947160586424931816962311401340970960766220386618025808007745205730303359409227185091788090336243672542836090168599763545285542310260596342624933330418702409040191563029514081981261479994862423711262715538190552578074359352555780860914199536987968734284080552887911450953092723200113963389080010082692500931411937868137133953320660689938017019012245843275053850308195594538994911671450544117522074584984854459876608481350023150247648166677985457064456322350183652550304004529638530861961186237178531039552255787129627501977058926110508759348644255002320714424779409928718945719582262989813819129631086227695137974168085721864172968119213861755023588973941562356558993313843428509424284574637933783495063591742101099786890391163257596632695932469582685127466786457421127438978560886007281165756707150620993742651913828753260654167960162267586683772046243837289446524089482213350681591202494821222043275455723914726066997059023006732949101875166989701868929892366275790614089745573153504405185053338418222806140703739819664003263916416859527895872019558381753621923869886045716975278965406001127940521886792330776280339791968676191288949579744828107372261034566538862711009959058106423699765878912601327121644631849016916360980578518803013489424439669515161917415997983501749822211905556628808011957425005041922553433464174162755700655513142509550485102731942319431365399382313292580417710606221413334868209814303547178532971344826716249810362657099436760367071077903959629008445920916340308710518499609949044973475388796332384609555902888675248648237873440703274865050906326879050188268688829562408099567474861930954237838603415625716533337258913171263260230904545158985542768809498039135414119218791284732675687225108285718368714745749862546169844199032768558449098629323257015611444467377946944265635804758915080902808889398945214529195435456548522337385631422329150638305864870190066913318992131192500389084844451657673971519602213977107605701865552817335567897762951844112125195452214585197243360935362580658391832374429598375070505005045158417934958854374763318469880547530829151708580100988044764698787380730716056212679520993770099828173361290387064423781273594442034977753130011655471945994057476684171559263151391812077357572821708954895493377764337103622164318681097849056402212523920060143257498311924237727275581610232891749692606230721191782912242358607885438950258843055235819407494463217157113001229403107997036360749456421430376684763111307935649486569386667966833759886617969573403953207077371712886852920141112942397676682870830950218282201167315786823618830846063586077421575282212397398143535468786449138662780461384132902421692878382020898890706587799479295698794887498721276466581488107762127261855615296345895651273176826040991605248306949712965607520769345673847346401354973776988129695353657270522811611586898649013936183064416183710705074219548321502144344090702723788804548044203220123437819230196020016496820467178694234262656729601479489570722698716218413206458512759007967705052742025626109861254452330876163099893829133455648675819075099970303596646971627663222144652193481044441429584640715719277694928753634427275680649453868483513995159245122989238014143953010565304847693174871144363655751548669123709729744883112546165301878387014957963309938424293278283262309220800893868115354932926295445462886886155301985082460797556240715110691757746467487899113589120099940647900746990561192280173010520232099721073959766417417262934758611191285261414333616281621616260036709631830332302179723053814156336986659669198469378183218454399761671778476077777429952533815622721415197656799258420405216196438971715021933185127348600336829181237901046989256769247843339569936759435470811780779546960674474208823506355596051672230876291724170771323917709085186849721212058188046087069484407833574473879501259109877635742565752744939212948309090835875595553596964930111816744153619030288410579893758962974250555376440551534494041322382685549494851920815042022308036201877710613287316583095856117241771767897453020578884954116146420796318612210044749652500230362464910103497017954153878435872083385662811032405384911656764263180622400305831344746704913916272199783160378138835989342337107217135669731014973869359642971261328503808470118104422649831345683200954535121731098527922818866836830636839175521949210291974966951270110491571672724675801463879067188361310596505626295222933276446876850613752540851526175875126501931065336136510281833574577303663417615842736365427759662405331439967407439125608594089877225087351872542575692493373099106742704824877667176128612852875192532167200359290864438547275890028742148316467108654406962917038711356620455575688775427205095661178299179811527438235495823042192321393482224606142839658745768696397290890778336111793741705753465180644181046673486651664073909708610967969201347737666841923433415963680819217577163283361924908083007815625883323357496317672426382270567668064423963580756089807456830423284558136356864573505708934695249634861522448159532091219738842340037925046421237212838918300528709475562570087067700041017364466168757899769549336490107619719820231008965072814225581966595227940338950356007073508059342725124198363619088781524285838300292047808196351919075652285597088021570280207451435929631524708598209609320898975628404013333489901693504257362802737178749814028414601397551812113654220049509180133842175997771969425768840218561594633929191265671162207490015926968733076454786003506648138062576430103223587383159648117835746574798139472941720468223745540751418960357756308627639417428247236826765753461892110838429726793465334059507128222766233340493880574702771922558484144053836489706134734707319835633081337925850720496009258054516387781981402986344057723435641792072359997875234579267716301533184062186730706473526834215370067848223815020276694178975166434351372691741768714789494726626535541679691012815357876791819271646950264917089651171862117622166811541934857082781538363983062092347569203135677450298971177223729553669306650811153354361920468493817386147680058050223345208965872265328938336163914563233014165013239891695363345093615577966262820076251818882197956128492897755902148408708248753300321811161189513138634106781442858766343627225009059378884013824325026618541576345077009605943924313586657605530865409621554560279408342647863601893664261264580616830716217642093334686751718953615894496199818844987042831691180641204791154550051325112438391007922652720319984786970912245168325994576162386618374037160228699161027759421561892735929498354785884269843233223225473399226324031774163869634647951106825472855923070231643185959648516204101532228538112241876397183357083693485533373600420273693238768208036395048918033071888123748415787577693430349343242446876108869931122792972826020274061998249206718473336562947381645872522590197646980665525015375190014166275673502663944783050335077889454462522028269998627594520811485373778223577293816929121589708161261264510680365214327574082034000047588544472540467299479808155906117219058336622205143442331330795433874239168523382129340062244206287725715478133615970445581438511019036543082116407829857780742644158284127302968130265084630344191063384975340692035457023711242377262396327734140511199287998192472351066080986408765727593100828835827416675444314837716352260997066216598564741449247094431498901590838124796126359281409207235377093511008807949709792324820008844047811055319785330917421488026902250997235555424144991567811817804572773191747777938864045343503130151470902444506613584728962959400070384863418285414022802614105265409012776535594548870993616555064609172977524255918615338025879229762941802133252539321370665265721960698144915599032702190074313723941489395132238073824053805533182568965483334174955925362367799385086484429169054802749733446981838584869804617439669422379111393638339547649840033412722849812935887981147886888314595819411173697358358440371433121171702857312977638683657897786213326722588251841308711179899173099903604143325116010333517790576475016598288380472801577527135865497404108016459934818927568233091349096225006559799702572056681571632895236657195417645016096935947247162571106258328762456816428326417085311459715971106420269266724157537718364954959108594621397268379676504820620478156363903153619595320714105643080436087553320548440375564590788293552864996962133992661466747617975956352343720864011320060780887485492080719345936594721931260588247850883371995514956952597960222624410178450635372612266923710720646636867085290066203805490487182898259813655587498149605837389229237654271349591000605879295958708642473144087854461807378228015099041566397034178903998661069841126634632250028772407517918391680784702829173755478599366909847455627384867296526220649399285727735358666466668349826443290965489817020753224236656545141486671768657080830770693140897720672846081992150767974561817804339466432218073442995375904888879520415221426648517121162557028307428237862440367199643990722431545805733624681106440869450876917140487217636220076906242864322488722661927770620388708381590461452306700528930370706539148798787234108328092764677706260153870708867408015684064137392602451217709230891131845747211178961532247213314077647236290085918068015626620619606403009564519737974875763461542369023278303817390210659981213969613188388253588538535008293389650655104154334006584974878629808192793608730476610853275157739537865176048182615299288811836650708151380418271435775102085066808200951395215573742904170199681297417216684720676993625817136372572288322827384433427319378995787170448021603122124237275933582957672426883958346724047946044054975743669432854714309663277477011377208649010673066050950693811187669132030004856697877271399678509888583464322691462462493303433914479024412948250922670671879131233377968009346705875275439789965179666280262692534949356266909508809577149756026778303229842006891549171688173275957667847593126377623697641135548472007002537765180739744376855047953322013071584194629961890356540620837837791889617945744118090100927144120051468311842223593648660247398124696198365659437583002448825354222885068423322758714060007590311753522768551307044618985310204648827042727895731735238769069134080202544703328785138010169908904618377644957809983883295301434802656305653761189555567059191907847846107230365617881508066158357335427489588848074203695807981061020299007956402055358046787368471510243650317399999104798489373303559773619982400718658440165333345904094645685252351311211541544002321855327869050623528641561527750859502201407841329977094470470277096119331502121446341353084178443589631189600829401605324484037448922958794763643655717068423105013193433922027263270223854409302395579797552551758240773832364682662359640246501202548057272243482459291528642330769236243832574701490508442698861513964057826953709866976881345418094306523452743889110051304711878242666455132939960667394322894923288907856480912867140445979033993717469924105032593446705222467500854135271316373548682540290924848686080930203564798483928435937222143192871210384442786480684398060822982112279628814161453919100933455172593219553543933286699349811777563004266120471851386846375432672000304401278413077002471293397372462166480837824277742727971663144537063894121470870131234267603076974449457462888499679393240260771396351357235386331989074817329384564234864346984780074495641400666302151273503119072760869863233375244912382675100409631736097406457518246473877688765971343540357892339214726317830044191908014359546544267092083891303912810074360917321046520030958716217725075224000091099319176755777737310500917219406559270887463880647042810362540812926464560930772444931181476877237033210464218345268556207315139351648112996076444564011243414326407710985292525428609586167017909147463282811362953710657620823186957892795023740342527141996754828357296025416100244549645567928121289399454246986668862702364865599524617921839485484016599230374855222036165860953733435189655135432876337957394286685098549494069467832294303789585042365956290216313285786972563580108630881678709157156523820489128664269293686745591550276750000502022155351655255462543620541981295817810135680697572818741253273692856844343004868937311756525823956846325095584532037010531727524323855682642276906350807615941210283903568127510961039493492282608150229266928999247760695217140158898306580850246178524394762552528108427243099048513899168437885875919812772542192447584257572346462749231746961924367874129892087889495844522833407233862810751181947242740928783514453251535057534008958418905398420423741728862090652396203872345712168454894113159949266409604578682728827904063877915616171609330441417004047838996834577124059063201494453782536304699526268054563791919021902788894418775517780007880842227483821378210133349990419249659672816164195747213081223599522691540326126373704855357138422154016904808565184133665662974690954649616870343845901311650615522896588713764793694990139298873247844229619179039337214464050575503007012014912947097860334328810293351333832257827780323635992547625108545216423494135878829686161788679500280821672949417792952273777882929728430441242565395852715854801632355361658685771855984776433729874830807411783719701491449657580402029118351622475624256999820251478732112521332211634138447852719622681365695863556506784307805829517158958364686344055844102342456958802959673782300556473242726898303611455193087051950449005873208291743853213467177325266410553345680555969750227557313701572333085413637879062168221079115295987891306063598776388735093415608413332913298139056163923909493926629573317073445500006207708980373561162974212124085254779543225922175816593386398766744435540975790634175397578401504908383765634019654876808252054380024324934143131473787548160370015399907031007068950347333428743768016816734557946972882376002335281582036257382165564722912101787305824487480756824842103167771969748058031093559367695227202962859935146082307156435547164170264704087154814692360784930377674357493259380574802903798151256842664450735542622792689472427820467593060128818427188944224283521685051438882300627382282381367366859423528278067266083438812334618040801095682513276218560300490043343685811166905090437879640227868063222315770594713345103826784442170385785664445231409344957331298238722796000193343606379814719966538426026133949845458406558973837091610091888867309625553132460687355778267956117496921600621614132723109142490875437119221333049327608488496744972368758358561686734930854074345287257127582427657533491578439708109769736336848797448538605170171779225224007695292075802149045342148652753943212108486998517498019078021190482924968824081755453188246152820687734953032444826640461724288447123555540548392658897815619380829434540610172175945094205556011681223046593675967262098313546971290562340082376575257147832315380205654943743607124875721416412635443660887683665301401569000698551067215567655334630378887729424454529351809624351698609194707120377721596110891435446190872653958084656072588525316345217909938032575589798105817608484951803175679929827153828082504554310653554066434547957142123638619220621516349934078165414095012303880861277670500009162983181139267541344056679779883843962697950442752262517872289653981102625540839286785724435098644346068720007028792356181760620559477550765591184500008847267771230513974397700378447812397568845629361637792610287304836681217899793013276843111024748006264440025227970028290663609017962586398502533794378673828955473123747232104336171642776524187537331052862253032657854055598640102964932779021506017625580155091908443861616283114097732326193707244965032812909597016154502291599192147069748580415624460272413447845827510195135106190880895596077098610420080978981236466417518444068370156327137071019667379119766390877227130420910411762497643456382249784388978627029024842715144167757663598100738994494997118166101520546642851399666413763302914832187214762437743393605483562919588732473297448241188053811241616921933939858163570153262839925617436726663709778889115108070069094681855446749357027681514741341500491483641495676273715354649349494784843713979147185267647014106160925558222244156000861017069272450230873226238047364702724883313485436908034938541834087401984642798828037961963518797560334580798119771722196234132746862453406841686635383415441516092796426661183131781623820431556393131410935049037365586065256886559104107103003529841311859437996643092984542258513941847902286677606662719204577596491956298500386363246560834013813553424327024432602434651204081069606223047554897486620368237460051399967538149454985925673042832015467812690138551622388757237244400195693933629122229074421899995755641994480967473380562142526677149817044645587700281708898438063041222424041464955819917278220596075093135895372720766029251098381727400288390242698459772164914200206086310912992574651521779855172293203670622164818185771153238680338614787920005654811983261572283153586922315076071452228362222526451406382294838066406394173772799428842300635675957929315426703675723656515590890842932715687854139401021377639985039408504945688803399547039840449944015795890883347743837924667370168996595843672301186847506980216195643888579091289145534767654514933206086954812335995790441545435759514453708988845281396349974030707749143195525490783533869052290419756903898022742834491378380390167107162089584345716987630194283588610808573867850550998923288680786735514190959396796383425322919658978302308788469775737788779830064728984297826750020527818101767874876291611431047481866523304464784888114614166095535183032312072001025769739334253250369724317786288976396831240251925435342815721231373726358078202695564579787328364376153961381973765013683077624290398185983865346292603316168893300155488830278014004682663014920516054789450430988045082171832836623559443003934762048769185846553892398901266034437724081533393594879429238434553731580439510286668580074650684016563517600702665214333785928764889828938171809996350827260748756868026085101777641349042532295597146448301963954158808018210010965562447584752244335551566896103197054813065734337715435149463110064967249871378966377649923843543082424725720890788634373006584787102254990447499977878922611418960069457772773272621886450664010123171876217792510877584595033054083605061606810446613730072318887982216737066476118577196306763159221593589664467467704818761413540868841032527408947483695587759273057637246156390284982452293327577537574160243776282308376368006558027068290127114903830202836735326274244496139063267287762775920248261676369409375999017824698859238546486874633647872784114584377478837171769875052387061368722171382974582819457219059877616559121384234246905743880053100292327282510166076266695285049576925077751411158035937474892041682181217460416336437106925579103131717160563773896329197861774836711194024244907574170345087966687930711798073557293021740435192455676458876048219434638491433736892298962171982901715830361974801462633568743062360237230391307979001626401882552070088671619756205913902772453284374439205515482142904120398451155542504855773393880576523310893033890311604345545528435695945003637177084292060775867272375646418803005440873866658319675517506643865718975750800216425417627553166445175178724222588684882907344395488671054829468675623809068217839200279422624226665665457605256229015750509899228985057774934209381215883702619564573189147626799957516239717550523742819136689377366461302253142378381500479442005766819416279150898330029659356800130793164794799928721218157638872334272087681829219127904924831474682315042582504974180725487288934444413888268528074626115949562997566002877919312212141814192673647522368364473589977093885828992713614847067833261281176469340304716516132057059380436564943953403485328576397114239937228246017279403785512890890440309710053382274304807488645022450000971635551776967554832384533979443842331865341611653497582090423379076113246832514592391163617910104471129316358008954033956290327259039645901836705322290389946055935526062865834017680718372024515584085911164054330890151087701738993644896507645481685765229358485029674621278620873911735933595789219869818010986038637309620695420928025982076340041104519215258595537803531849918320405433373868161833256747345603765703584104656287130738421796806140729017727390870123334853378784092857507945068268894270042451345759530642377583628837261021905227704850854138642358169086376169116749275339868325651098526951222172084663917301573139897624858277575738967259994051191923471461669822560738867869687690005711143074540922330720670925701598344109205960102593208944376603586737952746735926130103970784500143851742920394819844331700162636815618059996544369480639171513479845188487526192679941020623403160856617704624099809397774789753443184355610636784521397567598671566600015334787071874021089657200085067617744316080262627847676138298899110125707409032406969507729710144630513180353799017724743017949676564678423920459164587458099525605618753836317596815307686976738848663216267577586262268190669332967197886778925495814253217040753130607650865397887987298219374168155985109573976387222194661419664775149103381868443520398365467149689437314579968023520491690729822462154992177133394408199396921388815033957242946130990112108455030607755598924907535602901255451608587747757061867400038936873076898432856925823557448968882099391108774146294796414577834222236094896764358261875973979503252051467535694534353005663068709926163095554256570485649081959445730318178760561520780105930709303679908726467893657424526196344890245872586507895929209756099386631445581026097411691035657436934166285491239286910734062067332636676645394138288776009514881176836655654190046152984759084968238501948428112897038819996501242118989434359311033991186607488224488092664006720569101093327492755899077487411556198451267497056816702753415821830277325608860638974493475987167952612921884489908130293957896387580441137502043310541879994917362748030365411809855329918342003264030210353321629888315737139186101985349639713045940121142938331839143121949009845384914848166820156451175175742804305771792914887922444967978858502189863778214626086333235347921178921242339446673151800247697715967775880480890771523288292309802247853645577683870478275330068277080748850582201892183532479867853430802720061189122628693515451063228456037641451358656618548204639129668759897114508694241880413631479627546146672696520526177206309134855961999738510475342313291100136204116644808676254679432765170873540683693976797618882689596949319937849745325313214743276890154603625168880012680259762032471485010370556456308553374387745738940763797264169942305817460967075127820052131833183096989463823786133036783766186216469084182333197093842682715017824059715607084376677074772494448389878022859154699876733540480166734794688143399732835941933049150207571144728111024046816363301804859013717406480575478290764699505136886821505804277641090784856586033247020490387156634073881309573411011633426465028296528488785178724317009448043360251527651958595025678543396938324532050693945860973425654988926816756071216748021918210140699593378832502447602731686617147015290666897409190287063691226511285031491664357409423000248132323054686095837812379310367950791511160786617924191331830819233508628378063078264289807091023354648778994411140442037403670765738813259176800966336694531601179812742446911412959215060919901743329303601675688378048120764842239945667718312805568425612471931174129833604025532038902620288545967118207594205563968275868031526539192970571466568429171331331370785316782814398927395892288749646474440847667829756805249839852270304703200290862620216811474916818397904207496791338197586593742795256238781067524721941478236556367119405734488515847487475502265898861608661628397075973105642646181115275888843523882516850898435430766288509095243545480375219644500167804234752912820317409066886373028530087058254841351056068651285702338027707524880665856950091059012248154457814886787474395083409870495351336358594564918846956849604389607079262164048776583572778508350767068304751463835433887732241858598835879981927271955765402434355384778359039592859558888685312610070024061581350461185901247785545345812395517298332934282804504430339469290572134296387453323846930098909627640781348654061311170519222777194412361603559273753600047220975310283194341364982280894332683332641061650893314332595363920502484193828998052862234150377536731661763200717880247125836989194426265658520990619746023134006733435425464231855653507442569420961543344077940099151773222701691501847388013824714107306175526951957191957597266288688545753881490042191865902508966076496523428839295816925533885803837493808774791870992561476854574781109414366185677261428895385226218920893120049476065026997636980428745729912260106753731091397962470443281442507802635620167918312697700858143192968939766236800794905293323088115027585196638309698080181362233364105655743322537622608076688635501050488699319368813596064406746717390242025311486173927616582301523114215261644274251915862977230134699154262340396076383073154216981185781971116427018528840795030704598886884839427811978483117071148864384133849191635597122857934995037597963179028703617079324914897342937346634807797137392495892910110674065004121288881387269155099091447612932367144700860236093673523702274905506416802529414687313879034654266261889552997263018012288157444005508824438156249974126559818073817307066932426326553744257019642055540235090936289479920456883848833358761176633267407526290835922151821013875030019897267351740900897729397138748193202288787849874152416913248076694505344673676977476881682220394724175339449847967427031123049332201815507630171561674443323718289845725600491263082110993153340929299965737148345818009209165617307706685728237019659620162823560185937327310598897849091811248866351880266234046822708976686295496677252932828377481837457510408923901561227468481335823009151871883326920101007274331063229877347872902197148119758840594800772393179165942444169914303842645524679322641492331656546664264175672117491676428777850070862760719564912663730534571447102682101802630337139519600045937279350084979922312198859367449830915649750732023847533001873307514341207718422627107199332728856567083909812053545423956371069935379719383116623910330994340150093020548931616225208352638896533763902664098265976166080009933438134936252841447297162432222435917230202748219553433359638433600575616727990843693964745445139164211471244441733738612699966079596689370132074860084976170159867359921336317303514353705279860339318235056825859452871345112877822737494101012378798695109833967903158433536337288162834309272492332989910689531716578278577879461603558217663132935571834067640549764152729377722396987643894071313936921866905680105009693394606801814279362514064892311732720673199688289106749383870086365686121923609284664744975047837205593324278479941240738803668845297543950588840478098349228079937286313498516315700913741495517914905101565793803042944185918925262308580410802720114399474794090816508676522955662550056508233780226746861948317011122404680131040706371520898409523515526867174662419650956925833300160441161495049148488001297606242111277134052083103270875334281724485369357870915306743710488694279432151575101693207061794181168732364286292755054646535412634242986594015115222977512868027160814833690080551977021796449917208652001580509891640725937192392180695859472873371155849539112360376898897060904887979011225031435246154625362186974980039899605881000308170575628542604040633850506968636450104701563125943533322699325967739292573114320834669106166162414666755601976579110549856806514496447219177808167557201697774249880730490696504221325827448008899588401857120298659707075837813082019185413622562015821142703959657498267475538096171919340194727160939242121699111249668637332362425789070225804291620093221865722568736127209866484138567738818176356402320641143060502614703710733429975420676425911314050237284145779425656956797036279988774822677173698578677026872100393513501667583517067183247639997338570554643570665025781803157845687973850737781907485853974546596169053354554120863558848760442881265664115900868587874364460453719505585447779488617161602842677667261085476051083114855269661344218773754251834984590878343184432658648142741506113656715841659879665399403495745101845090574221440952016358601495998774382103874719168659593290340548086841761453311708632537011359883525009937534426826007270565381354951177815962070568539707645984680363381000744143436888374050749899379737952734142584223827730573125920278495959646620018699694561532086969826172674727496944643711033676594618157611181916716777163668974032937706272051316054279634237928701818131164768189048859933525647858556772121239007227842121307110520571489245540582766217321461763177934768538060629700196039071483208468072711969784929348970870469761409383572088350245130611283022989309966587774510838715427196556700169885168771848873790146388276726229839315167581600794673031013575574795776290090209778138421368104605317113778464466170335349279153404711264426231688075772479381172867015283797583316536705282838383048926059349024670448702739208434552750674544891474190128258557582528885745592892848953316241015188027716561421093916706540425613839254317507435607631060927155379895863953676182290428188838392821549552069761209913408087971860558217852962079595455936873238977689715217434607082430322237832978964271237275221878603190945249346273546706515425863353024037077694853835429722083735113731912141364286586700733329811444481868551532276528971063133351656900275400538665191831154112238738740650124243866505537229228503973972731717029437116155770167699543652072502953426992598842581564843446674953236066317996812321083374250102298172476673294954264588185662360571719634099158058539385569085087067687738093959835930357355627572946286548255333155779659732996171977235714208433001445280132114189049207244929571117800099770722569887413296774882720530279271957201823675200924261092456750254481052592350645242916688928947641322299777586162680607982233077761939221789562624190217547093677079175347553290960659292161123148411748029528610963951762713294072443682747392106815429807334449938207498726610878721037536850400631435053690711320221879539020922383335942928246699893899405086527651255922503155428910491558950205934162284164035102278910038746101206271039552967906499824455358677496592649449971887362324612795877635306038486526056788455613842045740178174522661103058784114780276931354328266397838935821725099153696973117578087683829019484278854837277067061807639378734093397526622020317745593046198792450973393945532181886660526546435779541982373632579070674561848698519742513770397894063308629873826653318307715510162544395994821192706585017859823691789168992818266885852208886199217600963504643390349172927221292409956491238775467339722014898214285289077827220207100184945748423947822064654211759935458330472538177046499343787866445402847147359980790497157571157121635473062998375641964497629250041176707876920830253017278839447052832312257079987004519781737974934513188679461935316863972586676733258311167076412696114516167186956877620168633428727418265082743062328600401560561018213676484552661189752498944280092176665884730923901362631626505049593057492169841133502177838851099746918427982417789930304781842622455489305539764965096438959181616402941729709663525962723570608737270390454536653478760879268446597573050414305033308383591987047316446539255672855322567410747438319035434012438890698805033050879667032990797818270680873772928464490562799501156088184789882554653963357396679317936724796260104740464950925979646347161639072865659173835183326639644437271386152747782958956569617704548293194858685019597075899286209077098476019612257168652134457355699559509637519563719416795898976139910875804912743297438119975905525435580978240461665860738080241955561768325811518298555510233886856392289244988691271651126016075743959466536033907909771154514791394100469153831184666249354669200587999027128368620676684991054270369746176433501832457059904097843586294238011825771678092242611754128884912776501719987381470051898541638580049987241178591541818410792461536849726664736967032774964674358474962459489885643497035433649685210999536549096992760338323890364070914437456753830482314679404284577309729301905915690106563062221405216317235755396691255667172973097083360668212292733249434478231312194360762292740076998930357952617559950617777942205266279226563898225651227062901861021734504361076336261410038268292814496302294674635579776872895038712388825968981188454082175904926511433538633704561250036078849352644790374658085969234810037104131947975792721839021671208352140025746589908529802495588571139667849000073647492913218402808879490310730472610710118659076927889836744907781241010449962748740150031454532674503793256847748848203663451418050673097521493177550498140132946470436892753362732200349843191339096974367521404474470371120677381717896915125272835482273993631630293606403361864325147439151662392544984171979909009894215105055261432750796834239434229447446631474184846205948386455256601954891406646149023625152084510352820933533197827405649753764884123169309522112035212345354119881545302169916043183944125488863151106922272625881047078379754727649236092314678589787208786714930727116014607607771868969881525324339983612117697146463002004816460586532085810501917160236765625535549671610162059398608641022696317265802161622831930035820058610803278561633758650966197053690853144063053838189890488665117835109106836106402244985023994436335831957747722604840192629049617691579264723774492633276605546046748770863676028757265564780283339778770634220924772106581635822107669423332968760056279859804345260381933830599417256029416556968032372372275745775464734480462991989189157691963779155156210468587626689335253102204746121213006268605758873962186561973233997268803186344905045563355040407257097168602953297662682336739321717893889178616465321488854688508837936251678256955827567967602072050804839774706808949984141599581827891190006576169325911144751952720978489538061062093698136710307010667517680459328607959708032006797691122634864659567679220390198300964159995712123092810214274974817715179787841049137352205014946686989568562928667673985584906075153024858759492874313804717024324621887763345670831980002018159346960512814137645106374114856226977504862955909841834844089331609756808633738406697033901742295298305973454821220803653549813415627068722236414332574039970425577692577506357558102135046001215262418339252456690619145308723785780160048861719518953414410915323974193483517647856238496627517424307759048411872542816950671980657218586548442241947532011530079528449669355439156260743376296754905411863546594277724369811289275118473822065497228398695862688055586023836206480174859993100242289740628713920682462751001588007889624362269652152747996893505478246699873945770886108198835108164718804829217065508315655253575410553052082230769337686966021772251038593667441180541614058178773938552642337656146749624193164510120579976505105448039004954300569158880591161928536693403448807232346494462086685659445636488367283940661237617360734550770368730734705072122230726859303951414641299769084156325391209434382249944461671295947717370997008741588204561496518769977162888862094998529629194066225317538416212613445854455809705293364716412289825970193400607221269733488003700301552819326199382930112435680075268951907373033701098927443687342297000955996582778349791299582579975307818308105271284691779649670140353245769190857374329570825422631744795080923344864784370337102936371264724549139469852311469837820959247363369585197995599344725286619461616663292965757723352903447868220074733072001977633606065676870089923912750562235287404371492685923531142770859838374052941300495673205517729232914781288876939721305588996879110640977659950269052079749941453992601064524954590177327008568092088025004237205065593972153200873681059733392613081645334681373827491687116067144015658708889254407158901929633759982952675751195684761632905168653429929858163906151534084278596397831667281849137628089558418834486701901183894517295722831393131907098351671897097223516650184237563231698707686679609948043438854904093839349016073162775871720734498532034485182197744572714230856413823029224738204413124401999240888403142022247384996713896246717400882870000296863238994488383537887366169297746393319191571255266103995691031029232224765951697352595893889509581532216364379230361926811445829610094982033579725606250094107388268041757563369200151612391246304195416050912208116105229710581674113434619086482490578137793627169621971158570888967689963082219634471270375752089347088155655342167129201157756486899825911024405503362750777328923797145999481877128398289286316584681137909684707288365132007681976084650491251627440588253098399014401262007235851016836819966043038201435802944423929453197882688613470467102024854175712224505542252937256350566637853141471957058192492272753920139016841453876614021400500490183520112357069556841808061481781418626046173424743574994413858169394751643009274301103385038465195818852965213895593839779448825887506931207041380993385217984335579505672237896155045892062537139310557983288659589797820146643580211477976186667244216053850372647230164180144600985286929801598307481164357410486834256853951498019379841647387443235033245450042360442063133403616493093802829904863820934805261711116131522424715185243446214566123523502613203698020377051972447930731777322820676352335914076157318891333845865076997059958580976129709642780845908088561057556137817729425272169486837609221530389651925941037729605922198560574058625751558731609821392923903757368949954805366807287468135428500589808159566023475883328252571334885444608465410244924899005151179815904038409016237134776889274793232292946515059182350584267246221628404297167473080203705471582154161589465157263269304291178621708060791702632852186199326677600000247176828012101132073268039307649068509998210883172708727373310229320367940702931361945268449299477875453135778843411904448027925962063940892869653119760466561844722178538320977162515425542651395546299044159691452728907592456674154655186184172520347570139429317362452295132181834614947515778243864610314994683875547506331893465080811584509540616566462003641308902915100403144705327320787797715487405043673304868256095113498804967103833334444196772873179991637723357437774738436482530311850908096265675090887091560470513314433089307294985138859568073540358595341046940330436023984947299628349513365168292643378491702723960170731915071780919030578987246625920450074383967288839917294790717955723242089982973823973679126547470270710923218821778856801836513100902229858300955421820533425532430168518027401151576407862784784565253471197337537422830706414671707036561440084859363165828092096719580958708443197978096005349792195667376839719693286482061636113312889738419898496522575788668363682483416499533000595695438577112191647028235472164951049878255549950773430582174758411006155023041544297674785851763442960236715998418738112547701594699391189219330785238178920833954126323376446793396572378851971390418197317313222248930748574499953496061439783792470862319944399387302339183732326654556382900209639156536756269522450517198479503714178602461682787637695294835901306006492653679730145255120900117705425790350142745076172589015607641897665929461257407842184199091544417676285107006576742528908313609728805393090245621521949484598687708768008575988250480545722729298019265198343793046134931951191395720971957772521348011994590150183459602575579888506983977150615099609280769851084758180694053309872629345518783299580585664549033422268217292802669709234039426170307118232591069326397898513047284400768935987373597047563596705777259069275862867980900691596375733360530182435740721932519302515018930425610944814627678252095598223860674515427143780348277231231350252594062278761837200417154525557282015749422427806541251091278416986603660605948265560613210432122938963159680773851151295572942608188363849876058132502163850880878887906790174813395269993551671995314289887963558094164911498449040167357785062208965413898618295794469191637422155888821721078418582320475256042132350941560993327058695752339988266471632935616765723148788729791026341553562452775222581036906118649362366277305132224202807851136067075281057053468931355399717590004160441283674874450394385656392531622070004460045918584930531475856336403805681729399585835915788466503841590780775625304941177984910483916594737543573640665078527935206304069042925788209790076646446818087368187502407397891635378832422910577018595861813369611968341715777257864306306133410385397490503937899164802295883075119964682738774098272267971791678269785640359739077177422598601949803144322432983072328685647547569306781049705040053207218981702023696563469546033865381568431875918473676757924381115758917173843584782762399510039279333918104084718798602935675764498112360225239073699536445769100941406320264905083475179121985991942872260731892011883290981272929486278181686931463140463938447302414457613146425223130809060136147046383335860967620912918209086890399960318992736169411123786513582356076847265162267162826869302156241350858838269783130486468090120181777885186539353547376578228878240018228961680410037785729680875850801789825403699745550793366538687334083426225751251758744006890714502011280451911188229912721258245244100046142919285285683000780047876605423356688869964028932858397940412027938897292641035925859745346487337980210094685158346976649527550090849197222195766220340353187728194547610715652744791108187909665784536767598537901599799276066691327034186866929834070681374410011013726689721994029195911552474462927455512248397726575458371278903700273460354113117089800875146369795743778932831464485678971384557510415025744902692523302307291271251660572759017298811560399000857323088398148932978842147262947847363998067093979632499711098298219189682609745825807780127317434499958822095240189619087861441592347783551175338958931191399879235699101962998316733298303872401152975865386241609503564710669256524480268574779293973718786063017181135579229140081097740902812699635472153127013264171165380080325674265131753560163855732079589765424713764819595611366166619881330583451998138268832809325420121210717802300368118009443837371647154205561893220440709718951789116476045894664151919790648456070105328752400979027582260924343995130606396508589240702805568717548408452356385410318363586991674437736663475535484735295842508867790905036451359659512805419835444754179788650342639178982510094392397742898084675006658324901226580249727583234394151705519883112663312949636232061724556321056755761013408280645288133483615739020163379650683429226586740070207469079593298020600025916976040065820041107294728741645374037856287783332854560842439121669359846432656460168944702468476369888561040809003474318807972279048063511498219830199801933903577931361346675524493029132440841982613851376906201718870138949334616097408756812898760649556625931588007981110808359116748838961575891359538078106235625664848498901964683522322436466322194089429148609985229570066677299188459423289328240628110748265695825061525441134726761413271287057196269205610695587492793584580858165274448020087754944901912832844705042141827536756854359882951369740748579466333969225656977437463548476432913377094198539254287907968775412005627552392251315316460122345274542080760443323330439093727049343713523824835721036237024854598542369007560869366746909465924924293901569715734607168496450636163403610265108330833781214317037955790308679918810395788809740643572701096089994783349556396020950796040299104784239205769551280437406136818856840683120180174296924486497458683218583250627765606803909491077069933199856578830854676222888199128544291844076673050509587466932385090129845001424012987047467551869000704727186582610249609479873859128360086292958434247545098202661156552716840354768771190564406597295495916810100029849442963455553071826255477264295113085934050752846493466785119866674543744864879343736343262074528842055158896441693110387218172235353785102903922995435746795977154965852411758103682324193576256410288253623654073420310799572622436310803178860770401102770190802849521136208797923245995481543479307816061522966040768327284280110829917219570385725107079856957292805351993716899101421797146340581522912856561013173703333618730885696958767720881255377746359265925786665308697598108031579806466067474780502094767213770263560447970536359987395225596996593958123365411314894743738960190762865013914421115350672313747237124842256949435977162596255129211530089299704126639917993807669767454212162670872255785217046203888461901510355760757546425457650677879466667449625515597888585894466968693171427316833123269267061558421441041400656298067358397527769127012471094538081159472770822785223771020325838770164911314095251344362504495412736744443238207087932966520685663767505546677752865735278632556537901324225566116863613095736718495104089580253689989936297199628251081717709281154623841989021996062319774252542928845214460160789022458590634964734800318888429088687204118066022789296169629748917722917668672616652466043003771210183543553869902723790337275591921651218259911080070472955900666077513712232441845577770877982826341271209315522835310983436205337713402200785416405989921331691596047133893805779999149872137751811783100304620338664492638193468343360230709273668423379425318387098169591075225374829887008412398819556659485320703009122771169303576458086613089486963797663686448863523651675392066815788704159475817461582968056132946976072109290778116899926376483842795073630038836910782627730111682670091222383176189300408193847860698242991194572035678835855976745172590217019468264612248022498826716688702904587791002814045615511452137612787172707182225832563391881842421216295568316439993159465809157042033288122506518191050759431169312714026430499908971322156944448489489739546951959506951724581039241110061222345840816829166529673340867076283725097474451806116612743436306493976581461865115184034377166618656854576254355013435559313924663088132507753061365687639484451494973502439898950029888450740684458975298140747679154315781898638711612777388634430040022825724836977071499191207532830651744897391120609866227623491825190800429895157978237362136402272139897383850765831900854030077827352253928403905034290471483483226622274035902813910271788720217336780187049087167442229273330777799141832320111770036063324964861705264592764366439229837916393501861697237504984701780610329370468720969074010060543602871852102109493427188778626730381458518182810467608808383062898571412257534293870024614450411292248159912424360909144782654675985371791466859840946058230754637128867006980640245891093070790205341994275749627113709862681205497613043172528576783916931226709831333281604196931304366858224616338200978901380893460665796725323387462686085323337661142640529735700942395368566937116038020163624780777751110269165939056286305796036250236045533768594478647306624433794365586620259988241629697615957018827216064665214616740174895003222091314536418383350204290497914444661107040438526127617275176981959440223455099321259205749977433971916930986122518943763908458653369149673075249734801842422691668054070015442483967504687585921746899123308525761463066337315368334837640505648425776953374023865419284868466082040018186009144249402137882114778590523431784992577461037260947206578885015325818413743398058407014415593347290454572839930764003093666801726350065843341780015509167834313600769412677357825795659141082890250934991143805040924506994568786887729524840876964360334655224568093007796181941945101455348932194268356953610059552152259630944509062006976479050824013433311773372612130174632293239156930256260216082155375219234805476884313457401314893819728806202406217186797836296648420667966919130909638508948341302699899178056614855711997822325962330123970968593272044951340591405594411379656799588343545340841543967303338095073923043024549587278881592488004389428822910295875019418590472805366975303955436439583835299307560893222886598947980560913788342218935997602781679607846881785104281652503052930037164876423958301207730304386453010402930379345186613210108246737386929052665685453792281143651405832375238076407567161129312427411335847498676990639113978770694806693897472876160056900198239394073371956779900639960738059951118481286398746492428988237987935243305469671453158260049227498509648079369471947144537272553514542210143106487463962591423602621248465857018710993886901591280952036980252795601034081029110222812428166969273030055930857755614948499894114426838673076196249297528440486057266423722634054701225310472249996983746257861325356810340156769992485451322428113776662154240860801426188629406826905525964884063167347814697396536244636867930163848817000470479563992875524632132984670407329844736780426067794452639018204765055636524073454910871247183475090978716802834491638476452106182876333377581771081379971297784604974053962853707962822007338738610300955643001309169022827397371021503511356364488097100776772582537717179283340135802221352556878892127433181964542913308933439906257845369207536450916182824981628241958813815909966558930488215404391431693629277815627089218051515992077951330000292156437568791883525382698503663761175456396682369337041697761258846859158187506630938920875481709116801684297093769077219940954308979154827776146820612748151452032585689664274520688866790833933345038586522484072528333270786175770995643452608245108224070838664609275685554121466062129529024413552851045788168173080648232062374877072873659096860576318627830287034413098211766981779803755817887959666846262016720078995179577327550180919189194746936981208421063708745646359854907935133741578163900662594285733039063954734601901917106127864491820026371514072342102568535534152366420567256300483615975837489161195351405707053898341603092860175279755134994488694445353839960577153610846530777839662000948450522884717173440551714983865939319248507604988297700416237130058556630726800747715527169981561375905356403257873739334775184137785095284990792065664673579624411675629839523226168590355231650380386354604253859879597699499310499461343123746522829115146309566281626532762789541527757574737156452236217493599215790150322976406001129664492018929076777303127743218677348018310853282589747335967234937885323602786034692069453813437079849646795957729184455719291618282914102082867008236998914980875745539903977978691160404700121937738534340792641993431840922294664011837843690057500515513645882601019777523264980442074150026778709116114397555296032686536295815343363120485838679030689959057826745070409737606597481955062204789810174255372809771555366624467239862741557940260804416042908369190305747111180039284186869600519259670454130885809994688110470781606887050216958068683122420637503262778896501365182491215688363622625771832682816330462915705354800457117218431238076649872774705990546590827416426220599893999347405764419674551413352876443741401221642588097415972438404317322754160837452464150061813122457365903977538527209413866343191963245283237480601115507396930041511763302104537346551528468089434747121508416977927717803096538693188206800273633646218825618802742116699858464853308474446692196291088249898454497987706102834562892461382917131148113736163819070523292491242896481284539212605249674727217243543875990497599998412536606476495170073028592293951888596016561786071877244852547618952919485168264820817771981048365131020891608520462149591781604441735622385769363126948078640524378241262360749016077738540412603530896374755504393934316657322986583923443027473111093070467552486245400608873455571732626207929666983158668234458830024101411562306882379730868632344732258449966470322720578989053638546300719838688331312261815516590984379719909928194898634527591929802797977685461231950432362610090457151928054321365070863495622210216590746526611797366862768865757486079649444383750350839257743099023349927502921816439003845671287172823501865690395349207168249254261990429625026749998843002884926725302520445787174372413383804280337227346997610994113737326691410567729418397990456029212374572598777829297861442692560799536939819256357289092579693479552915475171730620883954796952980127980464037556131133035923216589955780269981355478411114002568026100920841556293429104200328895534736712225824771388066789054177129620353074589022570884948282046031413250944415186989462653175347426948026859984224544844667060374464846219619724677042581516942862977694889394102194404733790166734264470010214725691332679520947370449741747253781338934096882611931501196587535131229621988145466287701553089698298417481441498695508496353127337838264044520370463721032901761682435166857428893469598255584373955837798588304464701241598037061747491000597877851121620284874378010014097234919900435864644240501574461015821645143729222075034877129129982460083414472965460952644967068942030038596468976095417807074393012098130986974753745656472912201487821059978025303732899612559639433773235885720063308715395811505209663532974356256643492795156165226190157399908211147488195844956961760921753465393447204726618550987035635756485172582985374604889605694177515069999723936700189040556318830196108830790110799351232746230739280861298640011151514716148463059552257116802700808904809169666455236946617799737563232454577216787482410676928028288056188465494339874888592901962510296262163259043947635425689135035454904482760072180396352424585651946553965969942563668811510211695747088347023146699570725969727651844860217968567709358351480490179706777919098844226360200546881588480720390911654253071858566408068648338801928854243661624428640064086814939577926212134842864703712752746996449009828677812097317442437988731040599805142982725366960245347613780892200976568704966903660514948140337352223557049599490447323641744268107794356331621259831201727978877967882828651778063797243858082296052868080600030203620966182941216368342049582613243690672055131416915008325038639791704482559393657436495929624909958574610293315961872157474191602401083650504303712053304457389464724470966986246436633516105395108978741270595052221017382897750555838158939942808841804581130309649790919903497298021042529219442661954331046442569110705455306397953748890388891668640559638339438862307445773411206238855002454257780560311310063838821049627236883478150893296657743435640914168582808300742482940946091851974351266128975349504466080590740470413344317127951770259087077284768859614737312882474668529036727137337004923800444274155090640102735582151902997601592076554765280577055756606003588730932935731584139050649352158960184997710097482292762155186764101968915852157813683908708829870548104710806609692414248440443527149438778992324694763605731003245009389220789830064222368981189037425124605743975958453437283009279651478648794309844440342466040161169962114900234731962328526932006175950383021347518099267148615477841160476430877119488274249808422941378535158190000075329035317583052509590510594931746101700040362141861862230090962534430870584597686720834133251591562825977211701694758297887923521222905700806743281543488702962196219453203550834720656461212515061023254478690031046924807649592896201541548612895965252491079769638940757420738220853228911274309424306711656077888219828077280989162851276390589125552166661561326943982712767111297929237260838056936673754576811895129531929819070980322757776533624245166045174561314521261978251955534805357647034167661689180760044811038277585108733847212834299474503627600724328270053707314351110728390495948118506963290335518462442161500017321405598400375123076447063461475449287392629903487897883720228503779851141975295984588303112631795392783996536153778307802071705535198761055708836097762748635703907921918137583342158162341006739657968705333780162631253739420268904733862816101549399587173132987755114925524007839841780873315383308638579535630008199970845335951845367514610563449023001435519693993452773316400601293946776256772796837462294980094456078359028659156468655655155665457019867590665343452767856710716576411317022406871328657529825903498010055591446611023146021579329009830681630572979720632221183560733520778101176578404482094553314381544005304449627695865705302983743134688126769254090474330892216802393134326907002965898195371637596715382976536696085217768044732744059498991902320146818960264046357462627900711562192780648538959757565637147683410914309619885617977019681924712096188042319982358026505163561282967050576023952371749614705435555385307781939708627311690352451449687195317682194077905617907133633933842188933415002254317263967801759316515856807367334065015202926352699441434863520272769726852580710622294339830048444973639827275291841836307983009795054212424622541152001895132669869645613102897635776505594689156451449079619090115480582430375884369786554297258168241154509301717754488022089794950488159244411794894846558883568772734959843830364834056450281688704434218662795378493694973346283633407828702488268012316153747950351151806366855454374926234763025037143213393728216655569358067932839402258406091250919832959443639010836572857379308654762493778861140351812802165805159347685778657128285382270911294097474350436356495539044431214431234710949565447575189501613723834390701957450701162147683700086606533152089918665792613412226784743933948909207653359635876572403500844964502767306059529941191687786337315374865913431232688704213571740576523908419349516150279423110245824798105777414857459697600837008274181717361220400406282548683458846818653887377807546552801782671400322384615704277124497072140060786459446783820084763742433886625721270032549565815114164923002266624610984170553066850126196750930086292803579277756733086977705775072835672153792178666763194119173211420460252188956466424609196801341814467704488778708714296443761974252974491566237134038157008717634854599201412813354124833870634411688437644655099300814356746922832107287645604144049238400040304550362048064810161266848396034161500888617789159928711852473386873888606138215129432588912028645540583657461863413529908852496793294180920853766563458092588246128634505710096919852907394156462319127867155927412175685406277241481297604920163920095411916106036016208353122758173490621827731591695893224625850008303027158327564207161496821239142253795435109650802137545854893028063031854974259713578532881740974663081957703683717981862247403744079191593406360298972235777885178243033502719565845904744658997437789774961206654881339847171272789116846232336125604476228337379397123485444406684889835011533313318378466485825198208636592542387888140531759908373129349391038896424253355086260864431039670708656076414288508828675519809858244662654741328851209010293693308829874471708817000920881909252102697383811901773428853403652726190618328543365212801510335911960876150014845277554906751164370915498257990040224625453347068411592402241523935686302749482111758666572776851410892051189923748799510709796637677020810238415850594015840954979076111975729903388444817936647721237952490215079936315241047720339098639998077429839183763678617557445637726361096134942778011970582454080626451431029889755649509289300901557194910944607825203124192723799112911819499607318796634267428876577810399085580510778474737131058026859774938074786098011175447682260437764470387391207158490722032281594759412398700079116154485497927469665207030051349741487720066609138786376115091154281409837089610336741576714851553477603734593144732954270782784381560596171479787154644404204449880147000783725398781451748768840148994283356070783737752011590709947272414825453212329992866525920009969252007731307068614865244070249628890872980528311527844476668941327186047980130870570265339860249882343571704738968235963487336737999995393997482232218837652553203374976316613171494542061423132271945158767311101834984292903493376295574367159288693916123781710368600003725660481926881550752227292170652759087066371081799382309696989937714774686557256576167478732522936533628258160358134641370021794170909801955049493746060216083202114734370716546432269024523507609800590924590198760046881390028750046570615980585054510468024624224436486623422707009514618051982025239070834646779784581308182012887554422371129691607096638024107532676545044641549790367035028285281727251288631356142086244056440072769930425976965668950625363415549636027214890961033443414984766510234024964976628711520416990979806155820826303539197470443206836257127421093087327346692966749434467657728200519282796816366787987297680188395355685223388652533968218135656837463838509483220760878419681344467738092570260060246432510564632199743768520951619862049284537347098347641303879134117386460934475361607761153944763920052407040702611146809038705995842983157236290544348120195547675395861668867365406242525357289567311237096011486642456110502667199389183316703566392917064739977154450669914549458180865621044015886687501668486752335286654562840074257233630953184516488320878010106284461946688582043935927374553121463406089191340447854515367212048090992542206688130780760065514085083836884079421985519238259553464053785982031883142627933618700459781902813709995056481434917736765464561428133259779785041082961249405183603555707173760173293155457298777066133204120636495037316168273604847767956855098513502043076315404575556440060518778542388539249393660970689183420045326622097372024306166276403238795459473981851374114847956821025155401661904357957812171497139894267218125783850905620908634069528847050057845127727100684587234160987036848354986699200577442898005185793811959642659819131381676069151557193025118395294148084974660042235890120608071772885918565869980602730032284302073144019062565292457698086735109482223796262080036021705064238516674716395502502994635867530416453282937130654469051652698012160434656033008194145785246280802018206605376149583945706269146100241808826132822446066492490895220341909375970803565796002588525014295682039042501540985835631261159379100696753362005641354918838027338090205291803964396154640081282695793089513910662780449747312920188698081715971123657951052630484527282402736131715917214504850903002821924240673091258583887074708768962377873289761841408612348665395319265683901348798021334327800274269515543240953407871160489173177309678268515318962080941493102432090597547972120714512809449114090783718618828998212400533533378976204907594225615415816365975621686159714724357088282935830364012291937830535137518516487680072470598610986611712817024424552466447440325925603023152964472219200528693577409082334447934421718259715728547356749229350440385007986665154057814257576799663346031635246451543928521597191180530808918604411934013077481655965061251070720386597482773358420920826857647568011954767016365780031297208627526341887292634404952385611253434487639370081534104771327462892254170079015379234933812792421994344916603121978591003600639272551395298125354556494639831646304618478044752255240205618103781189743602066710234842437121679963230413971021800297460921430937303058573659859149849958330758953721355111424751894749993555177909637285849307252363427108454949372665844294202774237816010638864961883484717984836507432673649243535437633017153880898089792062007073447422202607827495865959488073548772468303139424195306403461404228299407326902683396357560263153164392133959124560309159655888409222850342571400095172389570381529460527116061384507119041793997228939910690967429358188307105451240355246857087399511005206407170469700915719278964162555464252506621354430809595221472374195199438312533012811299101061808906440944384371573332379472039078854014761950471003785046114232206264728931397497040431263519772038447929333261103066064449198361504719161128369072702529352663772905181743594669283146907480648492921948174587990841531809267148237003509501197078502924613719325413719667735515769894917417885104955230913310814915461398004216919630335843255356089963652757964063241072425137920453144136271744147820729456329171352284744902805712630170121415148914517416582797986225974348719138367176470473492224998177903284096822866575256269504093450836824003926170096005336057554244204704310270067090954184333645566768915451527845766478170220728259157917088404449116593091440020676811013621689752315323854848652339384449928041228609380997220381675026114308994805279296863530732253875557939974362989066598183359764828392864764053898876485957944172572333322642148698164686113355394535751972724839205710993289196309448203542598485603158107227589328281198335787982099441425143058194679236518251809713059632060951131601708439964924210432807734187770783535598287081254851197532537415044579354429544793141610942426695272353520597420822572427781256064776533606776521705242206907190648016036230249138823255237699439539186370824649662315007202751429347904148531537938488296961444235995843246345549874117652470009159080201985580739890412567650487486173881790083408111553177379620886294411944083383809375082152560037108619893777321819614198004393918505863397221655725355204893397963602195386233077985513089337269938768549613782430532186250728762853556807539809487975862954806538128851277359683134461335373548103270916536209820209429989727501906134979044846672683676312266635987933707956226055972235892002352775786097409351260879169081995469429335648651006096642361331552322422683462999374360204901913276793351183446943466010457540694361712004351895773598002821974406396837080480474988108826674661309954096443761965291624692615180196356688873836513202865820778260417639924273880813095466533017278344125966665973918905041909752421338990917726274349910782579150411105964184006826982691270687516020479908361462527605094519552390269073704566880862831386112062418983606348626702149494822659518869338867317104167429805701866070298562513523787638603283481080433029256307123218037164617953497626430980390489011929218267590340162667354317305261941371244234894027094252180205952654041939173024831540194911842509480348747947117052504687356291501813232620306504368687873042819916344577045915639077834162865850139857522304509627035149662376979817176094915290194541537897460488959434899381082107290775746222427420197385589428485843659523936984978585631856953806882220336799829533226037713894054894748413082175397138539550893091735359348209682923185136401623063309331688668112485217848668959090681984292759474141233751282437549709337766818200122016547719355277264774763629485660070759611916222706147329112190710152869290039906519633080879975903183803293745773114408621475579347829008771638648303673761848000362477899609344616429120190457303754999399287365544728995246876628060984625512821891819765386206571910575681272472514776077587780981226359962805036437381211094219002106173243627223653540681499861758749418406206939675089259546561617197954122434385160368740859337191069026004240621292470220431029336747567564121554743506172000843963239627868801721010876837655890821288359002208124855730001785481724185286801682808534020859132971979735184746394103899754267024418526539666665579569650232895910398730221589125273507567733168722418572847361816446193381035295958998737110090004049549709349387529342486338890923605524039283598697348294708369372839360626157599193251710494624087375797935261850405305446575285995248139658204457944364171918209452097553058362575445746828877051403404835080870580452616449660663591458010430128842887864321634997145151099793479811903246191192679071115130125663325777124885220744332524593399543266803240417712011979210495357845017259250054395928250593463425347539088042306636499295173284779315456183029216746857652127986187544283780328970043438729992367218740304177602690657284371722143830293195263868983810207934771238850037653386966068515154452166620401238435134379141462922723315309285263994806398300542426546073237898645245438883291368320466237869634895794676519612306186615053013775856777082567967089865200519593107331164173517073966345426495095397016114636901934196309393488045659851434292962420591313681207491259787597683361082801925654159167197523909358986456549859221992434486820586500565545878763857813523991123741832047425673107474809079560326151990412799308386363820254796064441751062424266537385382524831331916950723574893088142409468029217755466707408810981809973640356764921844679395735034220884756146081452709663438965670769360931000565293686026192414819467677390515049362008050529040346986209902663028637690597595450100926978492312113151441786788146675415815221987018812564602358706673992908215720228898102472512344752239993458925303322714083604526032596914384316379165541779396949382758215173683091552342751854238347714020242079359968194931728095690291275955497823259490443985572785993617933412214187686690233334229827114297462922005806888237839669921186924559411819051936751240823990679839794306868316392647871947816794179064686308194490598372020096278426428488820211890187993078543994051129397241895124884460578270376324830981673566269410022037513145179828530865194091668958922567694523635679236391141503662954478385452273395201543748045977094730658003674477758744148065732196155711935095030037440632058646521540956372863570401416235563341894172685489826751046816132205084679062291832984033613381468106640146212936369276076065028626218827923173447474607105767093659745568739655591355603162652599623420976711085410709283010048642809428480115106022542632601065922984252053752983931002261919651819042621258199299240989856429309658774376592014859258985430102851135390861003136218615590263798587714288227595154259513679784957201970857968920706639835361283729964340277879054422522913504266984982586648523571088184415464390561824730291247244230708948713641510066095678082289979623482003620104981408640175453860479702040516527326687263731042289892049776692254140515035506503663583608798437842037003882087636142840441746230891970514398007210654421699339406754355749432213208764226721551557405687505984677213378170134170817621850109164465684202703718904302463098435836746636821355161246132454760676157138089874364834465633683933028585569476531218801789301643538929505679753869206616138845038629596673656991937874373019031307251598088494482599526414599008077789762710632708106896991388691157521240649877403409601438510278260979688760343082973321912835581474433154470580403389122010143796428145760702902930145057882487356053871100681255022123943209961818226011304106310445619558675340708769342582059853148972385676742165258979960967171020945720166613104346604814762015160967008405552198232662497414966026635000755483179498296487678901847087441478773070928023989144419382257491765308030606231961108533101908730265845121008644368419973937611496578686051740767582516530628371028705031030883196360289062485564536106387779870295714839550684778947097987033399980019130351582910067177432704486764109589801842057754524582769764597313544721210717368466013427328569152267658855232130120791232304818841481722015474226866965185636018349895297603803560244093210869990182903593677867717864839001654323924534233155476743529075717435030313373025484912482265791110282344584526951345664355443384159859913832228651517209034367578023208348970545496984165424587187081733568699159439102608236837618452198432138069422369444726473916294954926751050154350616876524303795015801076190316336812932501414540174904293139654503011123476750045800304279246462386431094901964355202090811682338390315538800684702634900246349198874595736000290271328047716556234352792494526384637852061965038504138192581890833034518542884662559654393858532106012928243223507541539502667063325594547200894943902951903148067358123460273354789031969299863350416967557496234486354414251653419244346407837881944304764505272633524132946275267319232339499846303114542296872791438526451493775208775692378453136822007929248169469172725841799840178024676350845608501250261171553005118118361221826829164254544157294295211763800897835557163182480228542782473250661813072677490103969969660574584368153195818300212003263824419892430065635082160070514568116256495962920532557816621214249955801714081969855579241986032098222766170283986168760748705126255653686546681118460534700122668513503488743002450187754330349240476528116151722088378498483198362013631562570390507141457297312748631266064343762872016466182671138897963234674338941243322364261586450796006772241073824789457310555880976150765207745397379613975714367095608514142442359403690705727633886485271364912167974949999213796081584936527815187993863509956921245646998100944452163773417102988780793971112886472079778451294690688550339815741211358404685536598872675164508431062888142345474774864603026257175735832385647844929797053560261642172588230828761354329943234927103642744356369891425888567478344095536594603185284149475820437140773928895410379189439874375052152746687786616158277117412341049437940023664893307488659430216357529018030348338770997313943899199511727680441597998034554758561726885302020018101196658556404748065008084937611190537018641901736832493575427269545292280863155254451425313646822377021320061154938454781936034185880874043547073742411929108890625043963665454144723645029787988875496033323642714852181657659229105059277829245056172865281868177607651640849544704134238680041656803481920372160474724694792727958551474430596924228435273131399001342493158624797800738690980073026451273194729976150328325936111463986934381582915533603491492579113896075299745855817237044972369241406697445511005356983617085605341870693150442745224818914066449341631881216576537262548631767828535023883469369431057993346886560307656300395371876317205983714228477780815103592588522764182787788140363354470557595555919046907778234412895541546302265624603676115321235931445214594090273648687627784663477690918073314474680173348385474091419125517947501944396651226212471868482347671833213497761187249209620133251619708344034719695661702691276469635337781737491242694359040006271522387870856884017540067707084495486936835605438467996760295394113735327199375335046967870454996117111531037779496276206037490737220859715944320682474910715007360734224473642791306654759438035428963197477475282695742133110762137603866820843435947993894303979870088534347701639979034693306534053575328591011672768462085521554293225211474795161303305881126550843585614074650950692190746110610538353345754925950227098297664122184173086843616376756127857806298104725358112879996666848093736964620333289011735924149494287186562190983595837852974973476078913276087073545294102063185642837068732746149533452456844428477634687788266897820333823310949182652077800302691079059736382582638558341890283717078141907152361321107891615161936718025830839384293021035138255287648620264999851984990396790962403183674188929402141779525067247548616099305610329059353333401938392413997025007816813914776865498058842779234285028317682381649711991783277624783316162425668578115021653746338608942409946969926332450690854211611040009553213242860431017478701306804125209971811839562620886410110093604226319423020019242595820404954273131757440638205339658533144148475160093077256486404909775629166921939604758144206937647854598342837411402303370610250210723408240223335090583225160866935982870200281497698799589485032851441778921571254618590049825837338706828540442717259058771701530803607422636648866097727575629644821417178062238009141913780655091014080976241552320304202386374915442088218236449653344611734395915181382686893135570574283396540404487569207549221248896836617712604132510945272110541999763139419502407627515844562881084701222558631829008631722980550004228562346999361028752483463830889772421543145938013454999144905880264654269762578476996479809814439470127609756586565052930568311639138999792326931681536341727641523161147567405289086317031528080689651111433504564410623441260371780728100666793830653606656906416632412793589512231154835665123140875900531245334158910176210859723212050927775537179552075761615293724607954655246557678603637502660457890577013060385389966475271652719758163665146565339375232533957811392339369719878580557998999419509234640876746626236605014422327512704807147927085976735992236436666239518996174523964327684313338619699752590621668255321404864261903007476660279028203580907728756156982507370599847692894498040028423685759359893947084610496516075440553557523613124805094780832283504308033967601436636861183408191791026437393176915398843414940877846554127441157927388172048250456733328165389903926697858974423571683051124623924186614420121364001374125498418586834564322878125297515262145378495585033912199650319929182455864365337811433298794616347713398229690242777731542217963570831230207305012488045092277311642929891799099180260596094078360784711497133734701155324063988929177064902171161943916322861451887799354256512325075306405374922014568684796022333438116720172244285143666460351138283919263350137752488017959027142930274353610153068101377073847133575066231437382657345276036230240893179114112398082509108996597729573181764219685497951884216508287802429771874765768044101709725332113572112211440223435504217577441819399140305077601141165509198402098237660133692204492060055128843962241917278359094674002830218809645621522312023857708696734469451215974981833534552425988029801113406966364445601068439626525801827847207716261948429078689207915019629215238278369168335500003662761970687181094128467699176144388205963192221774954735569026453151797076739687362397255428812879172922502764713832676092137816969940423703605474422029879936401851446932641780581647834209462843423848773078343718547419185913811433872845601946390979015392871476481908835064043726277443301076411663253430842257341213119716991950699760524982535782836181460794246395004406357073513564249302981487443133438009776863749891526997274129014457619334263248466559790363029589603109934809275118465770474182870381660838332156949005967955504736478241666343757357983852423231531492917311799596440009914188034069988352662759149536269799574731306015039042196435160917679857955883581550634934101954271741695249550787325493525984566420369496115203863081292212470342142516158982836947423262883750600067878285273897353450912611117273093075094948980527647421287895343834228149400154875925659621561895399900073219463237084608169871781562446642225912647323587145182704916407866668374529629628307166676330119007985700705008537524246207819709813325041266225279181043547518170023905513379902527638336886573451740189956783887906211309474517371136291300133296277825352347598999979494329675283170144697168163612734398396162365494772799087357636561911251081176128355771620863924864879401618727222948003220668321874764128848381496327955469370706003870810506478831384609003240256997282524022024998104974792655306381773872604976629464897612090083581378092821832879115502690807725806737957682714466173529881735792237174703228909922084285509827935904354274718876254601396555135878171376666321366179185780360876101704156342472686382137459255236547594851535455661719386145140574717308756406354840805910890633441284543764055695734283337197126300206114910461910774623899550171689814960547353695869364142089395126327627890239921256055324543901647294659751318295657125286963814099306547558428693508570444338245927492476582058543190950064396224310263824252527035090785949197457939568084085694729395440805117346388929469568945465907344897943602810319446460169355079625567971991514141816427468329149911481714483748226582543973166712329297900122058507210099250057582719435130774421313731234994465753831562274529838874942456014114719097587021588437569642096863654851785154930753115086130028298690033555547954641791328618467001948510987080126487176372782024407620734549617389359478764148738683522245007398368730710696434306881541812103583946423983187387922682959539428521632199271074449521577660136026726705814956562151449590489822356488258183529381200687018046414799730376117915823580156784674235141822436699058610166911523557938002669948673235370562942100176346332429811001093096928857740699968311337320729673763569011413780071721672102194999573238692813321792831436382695523835799942768466017168857747860309919035562527920366607566878974020933431161008357790558899920971912344601473603005370368132805516532605037987221057001037303884078342027548349834700422775176573917250952058597554733552441269251143770823069366191146707655141954838374965819888796510580059576127769761600356325236183127487956251406538284384690428086064730836008676092639131262315652200705208047129837089080301540732156005147266583721255434945245883676747802366918430867067807232305780481296766998419796071473383511302942823060412638321183285328189861206059336720568749774401526311140684703702773969793588429104076556064571357579113876914257540421611426139815505397737042241921548698950358286402052187255752922289355788453373833042812593095315652754610780303553028256367456730879562050183289313027497405987532769009805440178250793603242139020453248224789201453093502213087493480715878069634723873675830196963147374888482933947710973677557525111142332727839839912919289788674711553218965683368706426261125425980333434633537323369012985073549710680488330789067642520432128982255795778662105841089300955703494814155223496582965380936310544491349410717956105907739911174943692319038730519480422734132613818417532241091167950178507077085707141626775549423376183972764790398491700422169781494063766944462185574905399953984721336916745799621261659857263493813481851658205315565014109624100933681986144726061776995850925801602363359473183917750545606598990479310839900828727048253837969388961970378293373182029810057009641776497797467467926532802511077960503931350582360376947720961985351110284255060395992913169356301205195644913595747152948986936960745873779755097598147615901237428042841071772408028269085253545069000523294297678601821526342462596657147942880514392177918108825928616902636350951474110289653612941818688553589131522456642042757878018706967812821321176882065067820203500852613079844607720180032859987094571048513708340136760201059140593562133425007423295150717404482199207320205959183035176026547745301725159145627457729560482209831768353241478509876197536506262515785697486600699507722784017930683677598549442736513313229880409572697476812354872367246530676828291915003951354907938382818801071826221212205792535453882788995521175512967062386522391933580878492590674055773943736390652156930252379601343894940249475788986461046643007778092250685310948773867720352763172525868280396828150141019302285197690136472039980113222786087332001251913217757778062561696324755501021082832358921236165899439351590462384428698318437897111144646541071827032153110665771341982719021333160843486364899461769072515936474870927996497603360582522049310228123508967609394914774142776845776908897697183009618031528594626213113835586241767810483909750360148268241977237495573708275014275762835507783367562306909924324717778451758321542611667282357549240679272595246389048866767108420926265107980917084572796780165849411351958824146437888951520508219190483350017159486621609937615291880480221772887295017678335796234663120696304915086784964201682604237006113630123470725244181724508747319796612032972791906014572548561678507385815007952059980770376285472767710700564644455236155608020576196749422592342339073244839976708592897921405419852578490032984892731717954556701008544333620483350689580003376178117892070484398079384195574425659661614326135610021816149473950219346717072783852569178374904647676660799087010443241014453908523123300679047337999808160023495440998026318185601400326229235531541893584690603743751814671420408154886023864251586336442928131798996738961293722041353390858016696284226279721861739907937131376618325629721576474668103330754989468678065236592838800192476001329824510020661085199881801113358007160362551473393252133746887840246811257525216249865042253428756015623627295950321605566896917003954298691222741281119790864324296476891933054595117652421144095871185327037422418887274284376866669213700782313626174885170092002476992994909450177336031626340001096233306878112453305962915548644670722812021244472302077012853443445290822966156732418046910553546700588945869221015753820107848182362629829023584161542365768953759453094448443498241105861359401151992220883016673521317367663477102419407614107386991552137534964396309193977184104068771114566685087021366557170557901636417339198380971921343083506006941682603283631690064052926229171314514541630360553461523298878933959335662408417578879007168126437534876147225689329599071340814075148319503530813613316333050221872082077724793479918684008042946421477893551492186527197438999502678481424355753930322691873092768328843549922757617163907458974203932482280378879632809468024542424314690547149096057721854577118433884328630793716388989977045130104890713633702207895249566143263631293407337218899769075381041072441818304038226300766183970750890850502879710300660747032471181261346754354758360795047267114859207439509472518183150314849112375425177388525784758808743179099480300778482026568063870554720706681617077304293285734085686072874282308699307286280170777455951635456766877643368542123603842349431066903935303566084236548896978923938935281251195672450944201123874211389570189400345279743089861518452857962966915665629667812655375885275163267851633431850519368006646741278563062200324621865410670980610147971711323452590254375291521108640385552569410264156021785410970902068362676158802599750107316888504041341875073012035184255149345732747884585745180165271796433958874068664811940010162608513124226022366810999784484105259451307956259215815011220895781528151926163473898367421952112644593075856471607785862316663664011615202308575024796843642816946683537991351534436135151919137528260318481318407175512089488698776143402884497650349159124215848285160922358955636171804316203984176985586287335745848201860660432163113108901110897413085511046003858396213789658561475251947214283952400133553027286348992681195969848169705958445813043416098266345252139547994297074814086066110595101696962602703287502477483540667264759338756084331932782859574541329383360274166142700865500524951450929748551877274204980609543461731354059199739614345490448130955828425567727026137772104950844762758447738093701947339071062462523514413752091035992107425286177338541214165487478322749378299148679358900080523856375888013533123013238359318552832287554038189583390034032885424865146309926728695724529426233188883630375280198954195469961448354079020928111872559729956536516436281067412038435986149283612321980365141531187642438020170912666937865090228947895946106928192673882586495586818096159164823587639879137215643247623880310548928967727570563765411451570775676780696657394676914981507068750393592138981751434032983231830944237401542913352286857981162994942121687914881797881091868138440882609930644466597264618112490379466903638537013246994834876220857655543637777425361790254354908205300792726757391467625561598767949818252530036719365695714922832453006473060225732436040990185660388067867710627338040108391900217244057550653232683021811172431176823500070025735969922378675899807260938739305187716317843525366954702832480805354097685657333614441973237673010572164964967024583635890240423487675545802317474510479325781153459236010007528845784441724160914290653779046233825757540433882489299631304473020523121796745066784324569034405035150961928042807222467208412733869510678528250062618889416570787226763530383886995600074063546841531064997880919983526455130618353006836526525620232289541308087515381098819506065135638593583468137021129165975073361202376099034507242159123946347734649103409521242756935811166902755622986757993716160924519179530209706216970087027323169404081458306091774751805749262675925153632936184374001970425091594096328219003599681261706643767966257362485270976605179224478750729220506999912663439403870580547486165839795530450462373965189276925988578943489257280697056758176418215711629414233152726352537618266766245399300913661311252814983696946213029968005424060970266605811630649737475419597347589800730747976994884678113318098073382844160541922222044680317964896374023739060910899692105223212221346125224973279553828402450674108918618182448004946321492640469948050095743227781278093893484321486458574542139925931491813360654152696941623235605341437528202946210965252317354573199023372630223381182767868634178275892691634625400821541605661778541112159834579955956477348166115737885280087140195084816411089204265267126568811160052444349287662486002909601402493916981206922120302439927695672062371441963014972933363854170004826885957203224085205935818923752673141670298328061034420787709140867216722702426386860006026348620988633625151455626577189102946327821279398865837876683383844376056064089957331730356871580051133895588915266575394393796218517343011306849663866651001239790751413537083124603512625748817181486490759648368333427208260846171154560903133372385936104001587907383194122170503957680162757818828012987769727523293249808304108362098835530380594580662048858226741905170210274463064646016322540416243364602621699262257982870768503987541725386390837559712087726339756662009164641411122850290083374616547309911288894006921754658590323802978552888994483457022415042002268828429871495149372322576093348115384176555048746665352487807269185074814081534772697336603101039489930797118018133924615751852057693403103932586229982924395566399835997275017834327615071494382948889307158762551952010856651784023526398439556805637390181160303277514452037329316434424008288327217412867358033912618895335318603983621821022666305621558911165336503569705222656579259590154764733450836553149977688587161442129937702575958168458504403692008951799053120462113572116442713171359840408082529012113702152683498222775126157132909692152048684848012553425199796762238812829288144126313051556238145814728965572543209087442046512207851774282766108882316589085955274224023554780911713349462166573423669019007465766502506909529125058289243713398505845319215472017610695477699408688161783579564516220575251675378875318115726352508735846161488681810874666041423804329808140183815557569386039575137498818494691880658779247813135611877519252382091910449659522635094062524929238573671174157140130320454281418901887319527283816748432040405753650353335142592456677617285273510207244253562331539684716236767397035670955791104041372068296661289136305000095146345465692006158930394166182316521723161606227365226850537866352620562319046253638522098198452435527714399805184320892976516583942771228175529303517023603187306161020060789975891437214702406653727902397703622415024470008630266325939714271280576611658186044844524009169295309886336198507882243518663435503481353146296846598460860622922958303912521012266092308202043778490667661770092614314825003924707626156810120997972583796636907299580990280840551266796611720269785194049767100917264104711835043692629591486988088232876722167072769909622693957029358734763200452126185303737380521497678230806459353434095963717579800055150624996653794969844308704160644812109192930304497077591419277445440804657576728156748645169733009543860650566054986629646485452030321960433994766504326335069557676638552151335173598111320892023058727620382546551042260839805444561939211472438566470151152918402048794083952985948837458715837527551505120359962589677154342322527719589504465573847934915660006754775863213151190666781196886529532436435717248839285486274415414096756306709595006149290139972300430466233614835702369050805937553086522097838655305942579707592217907894498351249395153398857099490853065315367518098380709564236229677085648476185259161649724040181789388083913773112792348349099253633373374088530335691880468938994609380812469090683657459063449533692370942543915436721327322104921631020238974321109486324569594908632786545804831763791508438200427733196790633618522457536344971225445499677073942909219808367596858100084923636175280088632863071082495769803145580492209126781013358623526188832861967380827524851390877898992594418855013441805006853669599777618078208740366635484406064786885628305313121067485483109265285304610282844741737938293039614402719399410102913801512055340390093711566293042811480007241224374048526814263003708465835574858173348927003099935238420944493410451668692997073873372584344255890727264526898326821041247493587300203005110109909398124511910962695202477874399495619973065850017785777546588928221542423477783982771292282223652322416681947229208915510838670819954678907108348397668633823288301683110896875277739387882963753403297868730244542146419758340254771550036609337857909051786554290634942131431234564957538383832763458340559675813605402743702487196746461857984503829268123498736261338872364826048176354785399727176811012382384249065048444576752912360120495852157690284816878879189471376205798644917528615710409792852727410602890584562494506557948432478588875497645125692766519570227912413666200856391667276111115182366001201602314633382099596562741325212808494995274216887796874767264532125083770075536193154310036752478103919914463969297473862304047500993652541084214966877996383672970874381930302351767905540053559108603482298822554466844900926528120489866669363744353468785688116592646668094803068589458757384127735736092028889060846947464144498428912807046742113342168729620755288324166732158415954609531181420625860461917060320720377111637680378502314498540546817188809950919696308972144915783101765831244362455050357024420994732380921688834712079156979310582628301403483152914452478812134161701399881056061182266477958981265585456977665520665245998000893822201913970927734120578406277870248585590530680379954815822629512493213360755210875497028370852237319053512649366053118074487435012783336328659819214071390892397136280144206944137103600676581497022811833067423287103321168537688586430938109479175659346399922205128742586744845299851737540136471611259577797243062452785150735233489388230926863787427124743916075955785577461267105186336394221228489289416894576379132382109705497896719751479094942865581272543214198447226260242211887197051343361610918567708036100420527185964881883808298667182889303560998219518535091326759588850295535072841839865626674706826043821634292058609851313647340589492022297146302686811282769536431007195802142175312382434359511909125863599410448232689614603359724994718382540339396009169873057219334256844672179730235930903737761594916797751668457608352465290128023498943955076521894240902491670308568875962280220088977002327982855464051480705559240381038563294515629352410947683199007207055244156240886672822248599891120517199229558570621084315996855659425887551834350702303931053175167567623454553517298973723567548007724462008756127446470895163730625586404371647224472782671053668423608089025377936403664985733559754102052386971022567878930333153597911977260844256147568458326603281077530825772363500960180779144099863406180742464071458675442769650844630463613164194076509100538890442210304045737142711854511608801966214621579018529661505617960626889801069598079223225321464958374802059933900061645808954293674961475842154214587315139699053624454965721710938093810613447918140098452030658683154950970989097249708788236217515244503203894269955881477172468686566054507889159272086970671234398129802479437971472489414106334440465977554452543834964566380806281730607496609121858067355620285774196750071918998370900199640320790925485070089962868082361633246079674225149723335743736896390597556951061599257855188114963380690869752306322885222240729662690544879568314116653903124966504654613628132052894210949653936557016929865766206104397104712014540679395533381277371628631901398001320472919476484283085065545692858066649826774684021015810913034519518473387819461940896315094796176945355933550507633474372648900732654579935939767794083106547866061026496756748796046458422366846180210434788068537441708986813003886876161627330360786273196808224150796382047865169588142485291397386089175564028471390529487100036525843512845039218589774331473175864273320601932305947800656857168494834318910107161220534838601201974666135920304279850928741189913196224622879875396141739225947462651465398546243855938358929528133814770136956271695456460527338784477581615169909651202354251820278024413229032816995355723663868753620596536398169295211072463453590166266458075502624182598839829331740429541109334630690717567795950655103174267733334539472650666207015115535206676358148662500304685189601128525003565808134801492763220560155599492605768174318531841367663710348675806974104837897894298671179324649927254736630053449219437786288790601592382221274986644926514873343192135524014884706286095790245682815538824897427169758272687694753377352580673670963749643431250506902402838517416704690361846119628005780007406037740704171392754294263088767687058753072855695579276804000280397787948621851780013524918712525143336249450577158844973091933420019715426690955500297920428520192970377852944191911201454822509911175416103467450064062544118119735809048451003144854152605112032019623552563749601160111098231093642335530413252074212662956261113806335845993825017461562274099188531293211406921273512086371746551618399825850067780325803658351755057570349288997735663963931121223265176826794262813814919573735097003470817869811092690485294636430447873967046081172204547510728805243286098127340423202914590136922939668856753203503769989420946415544307316049787508730944314179940415659585653504317356594986945045455796212312829430802920726731761877140872763549620162818074887300081701374581985556411008879685949957816376753842348228507656287102036445996038767319822365874504387579022274207695606496933047412683892051569879279118046546601018553996138439504029078690859467830512685248963742318650863913412286061737348720892129367679030119160315234849697167353320673382715873736855548320828366581519348071918291693110724632831270598438822006096905120081168975488090349661707451450049080165407943550182317503298203921978582658687336500407433613672102715448223055600011582531742836969612126238392403393668781887264706469308458365567440788179885582261507122890533627424791357854851383333514654677967139767638418435093316929282390361041859014260992127499132426771411295836474112104858696895445937228502775199850551509632970633678533795769583444375389890593686462172975683402909743158279467177137070167181822111438536079172109021124922141696508681090440738771339745069004485110139685076918624323999293928765597865903037122479722208106487135473941354282961236760991030883235341603044218389347571978011214506854031577162194895528253509196478240824354269976995291288221947592496197740971045629540820396937721036557894126186597300000155983263340709709917805017529883223954679965704381958523880768991099691208248278094103579675373093509775226479590975231505406850928742279310583607139584135679343455404793379369151973527618797154753133561828896704018561894001251772439694146777040679792081907869288179704679114729754457926252290466546442015022853607012593122071749906574307717357163155407039893949073875541780924503610473408240431733635424894411055781595705237127120955760545078027467123374155604501450619352459782049762992501595830298923384084318501769072041470869326423006910689467580352371035710193745635986840123518982074958435964276439449584112963096703919627412985967461563889878175954544493307463692459158218875901999608908210713026642250310461158025934092483100665168358788765134548843083949959494501284265550619325707399919248248676905882802578207008679811405658122706576317923785967099024872633112088853892174433714372892823785276343536735394602564781866610192918241523648387899675800362992989016461250535236290537123951212855426858918881425995419078584979565146397249561604693546247821375586804967684473286366520616237944126012527333871306147576512904424261169771669619345165675126929686520250974712813599393236137910541888996928022254122484962232760252587923857284715958425090989412965919903242102626542491800194703090085242693822096299617832773488208928807770608674798591939832658488374641517963925807811154175601074940969414799830508177877297230879157216894525644864202368993361657699932605331166213365025189096950677549537787715427063795888517611303491241038028893065113554819629653750629257986845474210763780820547888525242000818972325167999187019710063796979964871249203635536158324615054768867270753030555659608893935220822882230836951648806872857300667919118243374725467603743544165249978354186542230515142377753980263274513031197126584702769090054854956071552468962313039935138230209488174444940124099853576207001578181442556965024028496985267104411733198191567621686955248807797660520619292919566685719429552348897203803648784905392121871700380515062928974822367071410474867923928460627265926270257118549088350603915644647010150175528664901780346391049581224137608231374747372417571970719989364658255130984478280585856005505251443609625205595848674326126825440025510206956779005124293810683759664369344157685943757070076456683177823490176862941484063560588471682331376778940274261910967747078405415916300886650517524318676553034014825778402465457141950312973609623295865884144728317120612212684107126060227674519700169627251129183871386583147293237322197967402460144590825946488395603694532886044227394044793832719670604686849124361594408463077794726995475821831388368755296985514815319776483401940678363527876250829919625418186482020110744461431418752195295779741283807290528289768661153169326538851916091760743988392478475445215859406605172502504591407166823628222433342188108245530311168401624578333186678597633694575291913183724757609747281995518438541150435450074949263419561951003477400249061979545357771328137671529893220653640969847924644170385166102655743939723089738299408252404536678657090264758831176606888807684668034508351784189046972668959018543028067256192350263750594166105814062546110613325648212260592796591579197373249868598170229991655992106677028966739629766286338003922575601432854587759078165191632465765945110254649847958904724819434851660430004091970473749626737234512181295581276226002528653885887644242336569063317139431932169060545047061250255306769344038941861447464101686164234345083924926468432301583949747036705855333307419150365909873099218850073212062180272476636415465122752695625503934266412366092625901276494521658025893284010901146858521285540439646419496734083045304327690289245792299868471013003310419652425802820090061126695997342628575796035625039810730724927970948917642588978317661004573222798785017440904854866329492827580521220445483554818399803658451693046783632886533109137913757769345638206843990485920869460743932698531340765116435725312062755073578532604808417234222217795782145911748551993734264367897204271184582948451558157361612993524690017310036234929556517361914570630085085979522361091802441766021625701331898034513726572946070708487236624327370563475399022021311338485132888439102516461499796205592542928568858702991120639303134353846724041412270712334330256839322564211870023058001408476710320655967159906115166432715828353741621883986721422601975750007517169922039505095189538214735387328920488584555578540462746544947094522734206045733136883411990624731212218838312651128525832370599569460635611428133373749994053518035664884238722577272781381285077613818977133387207724222816628364275349385039335518805656213722144723520160785415869113410887199332229740150349261977468223784624821946333597649734654956921261731748717083437685794225227371718462517639685855410438981034519597721375500129011220270807870681206825369865422916336572803004651694613877199588996458496121057099999930355560959583013969146839404387258084077707665842494839418229043530803607767139140802127956748784560009078264888830818595568274506769955244147798532153903242476396306412978950394931472004534268684320571131772389282283084304099672331851038694241635977564628958974922898340117728918869152780001372245700524427128347609156999831095107267006500527408849040958172390825671477603090424327828535149474650855363670995492711990793922726572618968288277861631755487584481683005594585935919941272805863269198793233350178658223232801424125330467114551644538364077665144333451421027797406256983456357530951208512234933779564683190421519275222012104895805399579044180005161046122225424775150841014053039423273129581014173922786738024217481963291410875143095692833293020608907514506095486115594046428264234641297497175755645220618775230623038220514045017050613727551389884281683069191262636004025000373536575818239605847034066938824382683208476017916616837118678069701478806155352435166575388114912689420011302568829534261381926730897071777316492151045643232607685585230160530949414834401796785626046455783167478651636178205198632510510669724456605226156896189326091842398008584052891471944452951508484774877959066630558381112151874255615335339991571204138714360031417892936837119610302053376644510908852422113589359205631476451621346830315013928772266035990310515393085747601618168602044256002554384486016423699974611603074775323479172095820711311237174768535295799746072545991115591016859171940602884419951306953352956257800119847342829149046123731500713620639694964834919015927355689598681492893188521698734370163099948722400980971304738236000954827757868439525425309926814722953860923301537059287838226643367779773082471861619295202406999152913367690021004541783461304498851586783851212163400654974688710603929096616307733383669546042819583134709340506138990048711523151612846230802812614923598682994543684987353641259401385034596398068236609095731071798866055027532056425425872564304749468485228912167445302889895004047373203418930984550809581083139051579713896213114132639254553927223857763938401597019274784927427239210800979360029629524357353526287341472060992335024216285309594856627023345011562296457567796678031956316238778389235042822993486548619003082616769698124402512854154902492681457012511946544292645436246411156919145782710466368828307205874299817079224343004657562986746555397927319168431202577255759665486742178681263443090627864681557670929820841270078997287758442905497550471223494359822767642657634944459529531955064979334426286365445766216531185574953651509287594030178306517736676667565123278100356386439112729354393782919529129500407534474671827924835841674565642796073515355469308975576853257279296243314507067488703960418393507325760911510328680227792894583785532445485820419531089853444604401095479770787372449544936628923661252325036052927681470068020490549118826481137938983030822178228573506615579967493285129960087797926360949663898317061952240452905443943600338125540697088883630718042645558983508516889175964536791611261530497399165410737705848448384271869034175475292453635143606120890025171979901691916095819655949403486397982768746250941381944705754165222314838825870462621959355864648222703750236503400677180127327607412964085263773497821394241138687941965460764792641204561720241833804542888027224585732748640194626976085535691761184351659995521509382927392330486080742640528527164528861215298445002616840491157745021002828240485959770070371732236199130474714078827717249308967652112026668221177599767772944613375851499901281359693359050242662163883730708443444588148490552699579491758102779751998683258765767429959754112337160187512395618837817270309729185098712890065768521206669954015855088458651587557854754221530841308776824901485287017753700971496951442260889596391297093272586586506514813312349238720448178490148598454248049528531043873058313706532020327563550728103055281235953019863025152417764343415392764497211990565337669642262721607387533656191490161958874149771809138792723321550814261712664634121827825497383930785631461695723268600453066375700279603956714041345280204022641285824873423015525571741111818467476845971480903255845735255612936176388097754954236556032127153080634027173185302617345186991249116311213705804716798262983529948441103610381347019539863696189128661796063468989999376103446771653902633741800535684393053345695259021663328360021801364474927385815847105090352743621871912793711676165139895767809917739411698120285431213648212349139441757200456472654569838796395198118052255367793622091888933377683945968459096063576274243743347059047254358664634584561921279816585733084658753985207738768488507776449824485591378592957989012477164442986802137284467355541397449817385917843576684371387339298272075983448777702318368084028407935800098406984699176731113644254360825067418155519782280752408137350076633458195300560883473850483428191252049109269801143721359260913611398995247567342651457257405451472928957762536755074810317609300326216006314171432285185444011119296511632638582569987507338007047448687050755275037482022552342121372292694132022936001545908101261268431020282781902247899635532740314511268083799319658757964100970081093165482873921628536103505946390021546425903416496743316504507757344041704344251957770133834747964436379082037445538033528919977512213749892164550413461779747993319635196309449962494339058978091226157763804487587552788651618357008855937482942676464500589012257367293237839630633892142876169450862924676457394747237586869607338185789002077152495517252112996738022837796129179977593237831104883880042378353975994647292086200056607140289794073744571738747530103945390161554457484679262335814426161464089015922872128595931712233680108274494918509465396587473084259896587224392215320846524839382151977792962648370797961060644487807892772943950126735674408213079079159350948542981551710933860956661778288013241585776346462891859105174761772535413119381161882194546231930725325670417245347460147942642570900739493043579009493998747847553395046358762640143730606489324938082992657696670114710432914297355558748969249175774513524487006454156899737247257920258915604469161624365314598559714942412343073658198613889424300735496684247627021338192215734489142408558138482635402805258250688649931389757236541207163910610014168456671252985992127797545141294600359686113315034672989087028259821085611547337010104873961224275360380508288882952560798858569539987673497953931412708851840501353679583914064545112925741337397849374795489724728468752021459207107894482323148272055965003031202137877224117004286613949378058299646047132528166903802509446835593296951625074513386420708675866413845149356340801925770941752629536752091859528491442727830832994670507475895851238905209958019514773112100852288091985614764396855056725382281176493541514465483819003642142925370506707647468883228137007433279152494775610510657399951894627890725620497391136116386220235681770493607854821068162499083775451460704054851947932116687936976494054535786611517031308436153828309468360655596923307339239280670992813853495846838141903489587837561750001731838205747677814725738191423158307588903333786235996629395793112283884484806972535284058940713816781852858880338124493056235715525742483024223145782860216903299431309493770173640404453048099118322044089315062040706940899848394308817208077292883822042148991454803748931894849515062079933490941326550133024639106332078594526547359773804738458062059005741594875261917074689791390165439595804671278724354975941512382067088387372815646581545731003150834952230937732761434245633739765397043555533354960659615313030412586399192200411961497757020009538139886474757472084876336235232249337480675453794269821449367053995603387316843887024432272907299544376350498743026882966742793553552297135158694220064201427567239390333198593680716200779111686440722181036758755701800038378610248208484588727046310251672669701908259893387531981026046917943504034112584415545977365648994491935589308490513750699436865215945957176988459839390372978536274606973559790582580496966393685941487509183280236890182207562952382194543062962238939291843102581283433487479126504189088869427833312756463497305267640723256402122499958122893521757666105984897402109087045281733823132103805694655501232732027941356158574407420095223343898865112898432951586609202415863429072234680945694465643617844383273402773918042891980039815112312516545624150036135910141888881948220758805478502290169070915024952644867878262612562532341837883352877501142521285455824582132086814063493427350958168490930247648002743505565961260528052036521600364253054927056893929413039072302186948192099472381587247709463467034040331140288067033069072210410179425052867122789117709244006037213170012848225580295714102153043088788836169879485264904859326885800885460401613733113939663843007214941019758404288135009083742745322860235734944170559965188627450000326086082908461120497479349406878085711891698019984020149991854709740518184723821319871361094313597982826796091437279086865300467455845221715853291750743185330535211084830291181287363804433531306433396500783079710947146115758821846775318431405404612899528755637893894450625972491365251292389081055654941839987271518954825474064402511416902700096531863849224545410726261394877586963941481105267293600850569229698146671819148038866598826796404487484601396717405841263818689692882155520145095483805627241016303459828359239449753920052721429541575301674663792042915750259798230865355480192544068070091307925708881352497505594303687275044849150523967246624401334075273422045371750605983496453639797449998030861444899167173495218718675646946960156548726886465828929562971307990418861447827497420975674666492657376318551160274620451589989414046203876054209339810124902250146988547894644830539269764567726076060970024712836468623775328570520601157246344031249682702058499748942055234618940280046038306726892413531510450587811094698724981378582993082912452005327980095336833164996381742515708976990146398573819992177842180651469821017498223243768015917155212699155230483855826954668480385584125383118531301831858632251638068547132665083280118550989540220264656115572470653392673705417645957703729256898649573995078074686521578428491505401660405340279973352528946194028389125159222210089094694367380988061499141980943559490416125949031205665372819224109837932447591867524612425066937470144323572687339570937518264677877993757972077021891349773395155583173712453760332078302964604010992358432192315948701206459885056425285382981809077295594752358365558766157260636803904302770072388651976068637645282280503360603152494719156280780154579094991180478390999752663973688803219383655209349992026766987942055297781741368111246794403502024413114977510009985831994472576479214428027294712508608871515751090079190550952675943347935741476408233084129760637356339917502725131377812361841854736627961717254919703454097627440207784046660066541312135792989521987811547073688143024717815942488123319108414111924794871152071926953755751866778699685321461843195480502635424349537636834682862428389670090421666512794334162026544093932827380724562940868860600124888815914722929572929798233821067604032228828204883151229477255386122047138556831505914232165954426621079340629442586087039214554118499842097917133114149633201667699369334403755715260164202656385472648422913192402838937191289713945112122725344293540465167725295921155365261216097734911455669107460504464175244630563255544040984037459421041558568005524407135924311626832712234551643029572771762846136406391876599290690151756017019836796750683712931063105872977144678441396472127138390357989052635674429226093125074377741825620503720285916354874772153257924320267664274349404950945098041304846851414330873240752339068381567773856782019051361206532575321551343642176622504641602664628337083209267580346617206179682349474542989331485576921449457412556011069593173902030689593019515427137810709398200608172729675409946580263151945881216138700694520473874730497151286767162761277164687935803883671241485730073224993981262544489475944107578277823590374830362136759616289150505702658581233039014144555371559276749623279029971045061155741949624682341966661685756165643012053750274885332001958762879086952243359440210369552242390028989169653716643982976545351988259050714610551824741714635048121185765726102413676949516195100227651345338235239921207979951364140914379348453111344904406698953869669656085516307622746370820524425562294108782786978027055400760450805043667187266165222924349117140655869875337731970612245023809220349179165082493017265270854655801376775458087099798722730246755236659280252954447200236331033187087198380498491459819482320826581374709465878134910648878679850093823648503281755623796600714888231318259600121932159914284830599664100630652780259357626716881544055320577797837504247687003219370481352248671033045378082772604491202963372490064098942240438314348180397293917056313764434008345500762077636202951661861003553733277841744036196972652027426725574002887448316798506039015259106314822450806524059540896825407455785707863116684637079022430683144540028150727365687785855028867251632560801189387294772295940239917812819415493044529809401529927150357178991410412978704199522351499183774635374303561218836794290246758643131218904955830472673791588914102114548746958572625491937330436165446616430630126500795420759563230786501779741951896180689285236843412144517149488587234973319325749196652319139355249491868916360546030094082372851150561158940640779339693334170045041150168468496713697766168504839868324034979125809609462409608704326852952886915345109066736238622145651707858456517521986440742326302132507622185212173740132849322723455295962330781554980630866547397474623515622779346222719066937207134651992551345794005342218180980995480659140771591988482125154979988644346963968378424574233308947106252873986107215093714769392013803664124464131977930302427459691061042540125030733248148284645048569155002226571851236598315287425519414259044846383480693413628756023918596112855339860939259031974632178895394112632314395000172846851889666367992468605319397815965642415450079161971043819655404629494280122816390028733114832774938300904801205012226122722337763470139165543255826688545827646577793144087783953925390181189796086081228012868224760209338009247623014810070787743986685077237183963291231589545011990799019497794841518077064766537817715315924456144724518260177018432108449200542977575637318166788705047734937327704759287765640081684553894022838543267674817330360508770703022793636894712437757614764594833311904612526322937733336551115082292495294961537117194395349154593259683627769554777703169246201214896910884802014962420378679247189089520833362566073412209000387624704259770933595479419005924222126429948098272433684244242529496379424035843578882787076571571752918928208867494264756959482990826736638356615361202018101468915645362269045921559521462140275440978517919171931455141899141020813392957454370611338115716459430702156607914990100854728013958956211371840372623397037086028383633000119076541863742870206926974645741272314285297449437629148256891506938661554918868491114668661158186574726954590649367739446530085070414966952437289244530144523355978118041041071700572411760565720444238245075979978849107316176495647337311563386363585314170474972510981192940957626219385976906960331578071951100915143291628905218204437552730693368251029266168103104581440289265975675472443222671817107421256189021767440925150719030575572660711890144079216384335611908638078505604619128024355633288805922699981421306533652395018733115820540908962274401975307400053205166031198838176632075543012962114010995022549621732855532880364224841698240703710085539588473586651401459691117231823719581217041531714917730009623913576140761421433887995509425794413194799343954891924128991180381966979436355758570981182283944262517408465489610472289465020766852378021185023696433957684662767463122931604411389016192074487366050359287290896283187447217878152093578731542576368745029208817997143789539872012309765748416531419370183485546814457784673827394991014425614256026240303575248581837302491034978903065619036729325184893722778117856129954173684859257636022562124881066329923846150375792403751386287199950743831174539459257272149401203223700803862963389776600412479127535033808450207540486033506518227110991826346562883031209048152525056816012772188295800980320574801270442246366915498856046951776821275734198053001449751064991462434849832409382661963256976827730809782555743474383309797933490862965511828162858646675312916761337653870699219892595573269509374260670863504534386913459752588036795337038438272014849813829512742659808389241355595516533874953257730084446903535523677677824520881291332556425229396876908554513848792267806985471909876069396884783269487723751482108849378949189270142184366044082690520915120920717184954482831947326581200298682589464798079778301770626171373642073435019275392303927122989953878372536579962461806978533008554757859671434266589849587497049365878732199185401783163729260495233826265659613040220463746257486620218852939592024554156323727103010936357609679930117887027838794651808250653576885083577053654323263576922068023268832875298860757872944485589126044514831528976765820635382591104441715420953436280930301952112203318991816118347030709225191827332121821862389142601822290496515496399873821535881689699368009619812300908424590975671829074026819347641925354757478057209419798709942465680133371756542482310167723775985314721423607357948639195980716313868851363854006937851281886983520101781685499372987394015868441748197792732201467060590453505041018518436543657482144359993110622258545862790959972483688017190263319120365734123998722387277484358784659240522714161514100652565955620879579329673751440110242428247127504862161899901561018112141368474112852123086205894541202212380919576443250865014602842659238226983404846775206038261598770555233428552328822599759276122306412490034969715230330952027049554067912608312057685115405848452967841832527409810089830131816120276544533438467285982073766020971394222996470868967750099050486252988725197822378700565860285963574071788158075617140890427266205804949616618542250072746819827751227596819535517326485663164673234918505504459744805767188681149408115818342808182102855791476384395652537922810058744536821400250972852711850221035898418832942287931992073087038576819675601910327532109930736893779387505427823307428165469013929683070591832857590069794721011047646257612128584491136374149423717610677517043242324659167038492139215916138489022172742490240191486344665744508936757882163314512098101064066131852272304670352516690541380399438553588945407296972905175646005966759728609412533379341086788756382681546866959523254541520599821773916118262582434382953441227392226647353609731582536259611848680508759382225203591888674243752748932288632778091905346712651596969716644951159009878624594615683489950192327728725947635048642694265105135109012398114680769063421478234693717949746812476584315793102190701194001021744436860585163103398828777366038201621868128909347746191698275128077849069270022120238473452779601733716555331283248994081690701275833867518805481920731160998299376472642846508689958611407459230456715427446980536779588633182470983212457754489405456448589839125424880071335333001540283243792600655158833833115448447951246007610144885114547306337469094163420370008723703721230687373465473940590637766854973322696534150315229477230554768720397617881271805498709462912285130785254871523418022056913639967791248222586226106502951406308630657328048349009731892477706912520089607706345963696228532746056489101225305198925880692044385650998647522694992722589194435558879168855622436027261785966875240108166405756177870265063821117416446273881567424631219292081305639608666954612524556423619671087816710928711101331646987358789300709307500269704154071045199029835141533952425253787280513196169078717461322610541295834044142828248469124664279548426051928274179027800930394511220990489575782792170837862147123703518958035467878161870234476373247629772141942310855937962585299709554631716147903966513395096008992453363189507724392641634974624316525649977408468085433798083180568457314936705350660007546064749413295134049031032339666494649853973046384066286319440611693718626096909156469403243029325278007125841593502982318594325991807361525105132563073366425241554547681314384812382109311213250171041914170019721468907073143064128281531320633934998598658905899704158113237129944857624661259286517526721849271484422912323002085125246536570260468996548273202387168927251442407578674934782492008752874844402253055965573012814342326401656416253725342587057812187369404676187917406597516510590303727308116824709078395660199170903935728514909013472250585154660900959469362818543739513577708452428083661935047558652503081930477800946206984131644779152660094528451551898136801915586159154867554274115991581358426223201241399161653612372455589710437917571665566776007976478326191450037354738197259639169358313128949816350285566576983525762722633339206307309437082145849263391955592044244444789269364184490871997001905031386429390919600288546400666436048237441074434790570207501221475520925418067019684722940251371366976835839313512873053342133713767744306076260555223660034045397656841635184062356077724657941294305197229308414318642058287979603199197032597320344044491322552547685630640113240533129651939132535512483806775644448987819958092147475675307867190936898085734895204298769479837504199238873941212236504184544413194440488700201115315963033372360262266998766034842533497283349237811918018496358162782805462749485024572906226131828881503977897871991178441655858700901021983662603483421295946411981158915484226574902918606262735924648020929353386055676453857480839558866145643918544036033720390857278209969381144149020570984488245406767289504794918500121405392493797807261636051279938406385533540534568590348249006746660611477172551371914260104111845047862872611485775331513091763988249504273036000051243612517045845032868970936564063245706922580669971884393230745614577631911385411196311212934090858355851363621349365384938535455275870147929764730457399193711408758386280801578453615684036296310072943906864378525705556345867879936283397059169705795808074705091253834810945968035569942395981362383436850827136250689363517695342534114284874733555972883753295945562344596395228669822186190989379980575866538737900096483952529388665055729614135481501622835168408728726192154341929768671451005452644899002961227817692379205390227463142313712144994917574361794782185778222215795979981328683941739532782801413406577862026818133268080684246042583731319840623300559954888969980885700503459125560802465606507910218262097152647072404747709893655982630509075479499328104155249202384407687982675949913506061379785483209549509541315124065309646873243134700955195011045714128770997702130037234183562279635907582858844989361955744171569934123682608562056236066117089569595878353532462091583100385684527240844710300357679514989939008132035392582560601625732367704908428263649528526054598814366654148399364598922096519165630060968370950716140672094660312301539093768470184322757381415888605981012165661237799320020730621283518885324919739773342525549195538014827299818580373628932748314284201740893904668536024086994000125493544719402741523292962820703566381196121710703872788721385674248203765884578426041946668821742785188459187719765456229943098404875702540192249720952207280796881392025303885825902715528550005402107865776801729497705433371191662993690772535210543724685698178600406023718079178990039229975006045742336014094362625166957104303079557843930114110097122975797328057122305324635383107991455688454626387404762501513255916155073479942129524081570280560496324183342283401487013986278104083286245616488888148035702805185214332826740371264765260331518705737424662400708994378054842603205805563274665532546776588583130350607592290411352865667954494261630698431833948870545619462395114275339957492493081660787819043692766522492541588689244134511996267547989909466893594475812487976142929372261723627029561462413351383779712887455293084006231574943925841017323498130405781183109890635404611137500088573589067628584031614220620739423828815631093697087569072130117735435133390428163039571587907928133730214122154076406632563033021500555908265402675347831523642632215337303090488811774753043502438425089004305345983931958603320148180785337896973625442949495182531119160331404538991910942571848359612199502277151467400741600158559086094343237803552831777934161458003244280875022205755400422431101588981187813831965753443156502180163273439461505119126037237661991344126259617292847627835849003962515572590027429666048927046187555952579452759952920307727220093171833058829872549013482959764355683279956512435100753026927036981760464147679690223090620172088500503678726239924269733658560187839937282476020065561545046999806548281810210972445445395039237502415361176200082992767800469512730019599257358618457553710775735733657648567255616889244178221457704823443005130116900782960416659318606767622925339648767609860582810769798942035049419902693436359438343403921680237253277588106990921255503984707402365686155732104007685586871048497211048008743554019151940404539054411877909723803702853294354393174560871276690264670414147937831470550888661941841952993399173923069154849844518884759729894767513560729728836437057944159002237623681978765406490146140365162152690216918717717860271448701398801328413601009020014977094176748793492324859257106123610564049882655842570595428730222519362590318805998290375695499413923160847553303722168824566685767419255514307926668090181768917439519908472104744443651540624671715268283172392039636382463903370086192813577004392110592404674186574358186564850271096373344609718317204991951997975523860611901868659059669691556966051444813589092390668591535882292870687480777896915898855215076695009402146617263187188130683084646455995232457435951869260397273803185238902238467970037228563237277820862173529091031417622429910365424692350872820253335353200414837253886553803214282815355421934038848885123750734902434155558436520192407085257416287315482686313215369013990009858809090668053267890955904812666567068284174880482577066101734943910084842266188808197232618426594208606126078340280526690834356843272375080570953656135745193006984990486002957652275797101355479871954092958821562751435686579103398953797736104217201504785457607946769142314122252391192079652445270573584584799442764839272623934769158747384778816830749751976021255377382452434253255036706469930249184514364866782747355791413137457059765502146254131641663096856640699683032186831514766780727369357904924284772608686731354502778247620654885314064992298059388975462480140343961016990144651194150334815618130302426684343533955232790950139603706625307440664661206412041152134685409875549399038260764460459616539969038010251635899167372268834045089535972908180668194064892616166043713590175405035958361290173994576388219299026513198758655456351963215384387204200459192077925303182229764421354820054293560177352606136030101421394571368662869431919465192609603543717187521389656477974773473333754183806715926969088433179465107491393912961743434166868963508779267711336816026825821942656270959641068569870842162215404079896205659148968654391991901128259322212835938353772526060970926722475899388887020320917308733391677292881435069313923452515566701253216023732352909702289814862611029452836170537462186373401417219618159155790586722822525451970665883134008490472181258335273070010530654469437955303786645347599511076352240196256697648129933388822689658749328453778365297722319725813001817305269848412180810722019010144656017627521492095718277730088036455753505959544755072868151218243432950365770877886406502347034631411681686145834154077694461524693833844041050554367503753267168365894167619433416126721623687940991576545005410637082843778013124460321850012255548415866900882861998978979183930134976761491282003203262836178904169669211350744596241881332581028680095820571587097466498183424231115124039204614739290845658619168699840160843798820628974582245728045185699321684877138499113082106492816631926952374768749947074087650888332980449734132512425594100981254149688765008842812123103118107433079252343797254045005661705726519395907507962299044814874097221972364596882382013198127900581847799133617068281624987082268401428904887777624410081068537338864563062850047454246377812711703879637177132548038831059133929914282705331681698589702884260212857353643431686905016546470764792274852189707233160753704485540352084788053860431889124678678027314508152463850144368902885980624883142501120138214993404524075836192707616566656331304198246774111471867087375350008020502051298699910201150334335730686573708618148783103478099645598844080850037574140195198698460898264959532125265339595341239308182367725941133314635597354416369393587650442603705758274975592516081234798856182398110342843491109863615312793168385606514237444039018220568159489363236156505411413563986728150265728267879348854557207778200145898269071202606529794214993414250683519749346910503541706180043591233895320458381690847458732272033097430578953871790045991696422556447144127561016052299979220195870422410882336362943258303243622914410743999484271267586253141238928758339790448181676303826657008897268343453299206870341760205183588422715838106761583140715113124683893963481752409432157999753518172837197083489259614724054895608485660854151153274265201891942167302267846051833537990312635147245560206744724801914246309137136430863357669101490533253977335515030979953380261637716780828280731537727906939406224765951459384790244514970455474529814055870834121381464409677860839252799269320519622395182918322005983006723327995928272314271072583221819527024344487969322396465278596586655569727771098170263766638162210210241358640134452380092693581949561986025435212810343425588762408344146208813941814966906656026579952444287777317732800653960873025887748106269126340460855517407247771403405777041469349380822574090066951951027330738505365000944405709566945106647714923900762505874742301752733894465584187716042346788022551338512216827070933750153786798342179204090877536609385309347673352299562108184559484734918978749322449960909126492451770210660817398099677509599624786960231129627586908802105526169708798749038854706542448033417045597569746398496403574387366974906766738635490371255607738772256653444206170399421256870707293990528167012303196655290766510240923225066575742057475660458624936412550126711892143150742221373175489218912074958432243956318844488340917807050353665601737686330061887892290280227574793149021476151844562809224209846242289562537659119308256623847435332771749465150605445474412995336180073015926868515919564598114883216452386135870615157802081464961508529567540573366463595939237351931818314702506513909224705959177386845409989783091688730747167050943999208826250759363616212957507804853384257140950974254448329633146700019230200503515895378185602373824923999322479437814281710221711725614021997863427042530385372969492717387898316042719470077903901018479642130102089520736244308689848700591649372702114693887600549272172459795510601926465549424362712873011536829002707536811566800424893728097382783074401903094552744223367817609857632931935469070736975967953285376354390546607601436295229852767528437018840560901873085248544383615525471903123822346249491227548183258052766522590376703792004931263439566695000738889383440685163321112692962237550895737552671270405427117835129250735510551466998942948701625994222395644057367421465992440228273652135469743263619390163502350793979655445186036051530956852759608298323934850250029986551425899220229896821710153030647796747153563249531191730655630279927958540077957425912957525697406499552752584527019486220411000769066365848340057274262304878228065916251664270540784359221380737712030091771620702732334126289037101011850849509609827863099039028550946763417231778309344488113634926758642892832773580391589669540559832957274492268165114476168449304416050411270723577478600298688416103153155558385199370494272883196324055124796656405772996009590431853823428538370726854731839474169290399056474758641955281394203919808453787644086317954003500193686167942191668671672196653610407474039299402594426983163788797877632569454671894836259864877365195092274155960485650685486336479961332953813224516914059619255883921733269678902968085452918468958095636388312324226511534845344654944938822657723738642289386260832661235666994898466880713118294949835671388560756549834660034798189617909005294148628307579688191901170697300907917279069041940778279185002156745431195428100045470049987456193567076460191536756229263800000765393697379463027422765157750168635279385629912558038820032703693028346694517785469469990433484902806826302383293694482650637574449934786626282010731089747899871009774492745775820436099821267587116031270805379671021286356041818638666423334817384053640906028687902842624728259457569402701180421315775828512941454563778066319846957295208088034871882195633571643692753023856033509219833913245592005278570215597363808752632043072553060645570339826316008707799648362533488066118860935905819132914863475159156965641604858854139287357575916492176299118829453793834332765925366868146360465480053673179041063231193778053171257773797171807367476001288527819597016942525128885990704956747513989170828550471966973481138067978588895759252964237830250891482856325051008280871951540050968583573669244587831800947285540716791384756287035371140514863084240222697253037196679525827513586883531788394640798971141355887917957695883518930343194094563947338739199771598926836025208135578045901228398689914976421131679131488543981728561209709903202987930244210299643428803096711349248516495955155504395292367951810349900073898244683677263202358878449951715737568895796420952239686401890943686702134964260854234521589959961523804064919309588252823608079777905631249510814218840542972536469756497029748468549352618761873714306357608249305702120295450858057767981134462755652469557077940162204119508834546298249924970122336031030433954562027377389739046741469909942661049802925154751958184407960297456380590951800178149057730309400465250149347908825130950287311186889389213130723495411865677959216202228611879970819822540262164334776278963431370197159175264582238660829980328959559820900648909373212660026625208304927520850434577701964966070521316754556631018655782683919980142578322915423224585482456744829079028053180823036880383838466566674372530268219671685327437849901988483833442804279923545350476841683901319048567028155402161559623157264842393697019862268472852098654520096523094916361418818901762072392545671226060109613571492036217338165818713342696600290354739302963422131392614405719569466413011885859815765651344175326936126963044010260182602307418987037223333815652526459688083385222537182582708031793975728986905006140889007748685183538067332073788137562830371632142864393648550239654501782026607997625179364580689734303361608167527084633708754522148006099360893780896337932250780879456237059683258281974542894725042138618168403301200991425195152472963554717486528054341887223286716201942899455656162197548096283267944181255024301876429464781484637249619572576977253338399361511373229734641311580637965030580354819854853020936166897920818244124620135473567712753111453713865780371997021152906143593212180601080342827842246803778854704519872242948100871589943534998148527255188967222502679620107908133998596995887079931073061675608465843297585316553838945377447279192856120137881746296593134982902497045359460404625691016055800882411911614359447484448937048269304386638138972167734281879366532771143135404833966124343367624422828994592565680611771200647154295198249761366850373089508026591902571248326990410342136866503740250329912870712488139438628968430905640393634122865017783090133526805257104550056653095019787362777026843935338232302817563369820524904388782344231344824674885727536516186807412169818834595333637171690562146361757031780383077113690749398049205399289405524907680534435632319892307009583056012720307006259074932458162009184180196955430681021540687237955636556264789666516364134930853753156998866758613707136837557209552981868978698915336315170911214303938326108679915588568894215073837628936208300098561940161108486705304664659633905346312272510003943020121378211591324478715623072839131323924496383377992078670438070862267550046475546825509331477332762415948576102490206542506381953743866724670858612857192559728446197914199114900740438171719332314445214121762533193716660661923284133631235866354245542875373150032622148631195249131167075433171228560823701313734685918036302230827087150603878874098488778540245506997751163554868582331759058512932749588108696269185067079620904253584823588152327388513646785938129101897186140839635768347381450054948284354052119252341567759237506721003484582715845920783408702925817390063422528753592602950664354303593693038923029581280573483357940711525852061201672652895060707896928199828579559772756851537651401082612238849621545690630337547326493295931316517903223229486295727687351710487397161770728428604813648379731917329953947370444727436828074843154715470222191194947306487045186289973414134380162520849641327243602416949069982482294677200938130426280852974984977814134763076462563627791106797923039716103637194013205813163679715560230746155704091562538027161549151455673395621518798329548708326948110741989650796169409496318533717073406815995470137461965283652008328480557908479872445610463749135988407384083998357131057780244306803304639245539281857406730214765072656315749645873417917932480891353890119152419336716625586865062058567949381132602798550377525486747026520733639188735181898868261538451121310072823678328134473027772887767326337662116014793312674319097366254918394662805955861550616984944932821390663956439333798689355576229405596213865680785485107957423828944328511300310735635026904954132868488672726138955931631721974296828652419355597595832623242755202999313400735576002360259867524981667419373257764214382031929767555980466098112339300906617892870368003477750101249868931143901610484163526009039696903024702074478532154927922821042224271802084547153912819399788770933784998931225053005017226684533294689585542911377845373321102426724821070129700583056704924742878963561772022002399564721172102004851011204471068311012634907630582720027858685105815656748238589467664662107306279240712756001076730238627873841512719225023545273339715447212315697983274328247627223220470751242345937516344066873135754522752727178708536271140710184573951864695101962120832110675757757715130705796275925716157705418899203534665435335408836816497228993130352977749300439357845274082449202918200822939593003881933250831477735808645242580196093680776198261903199976721397088313709043525072281966385003956638691710700841710219430382069965587475154153194442065150766631472971750253339515978320097445098043382048244787991077784244634017802221736654874865687402230881433990100706053431447143682359771791969599639737431841515385142383458760558894416479385887069018792400098393559711351533513885159098849532149379591978981309124258446636512126233638067734435507558057812255853322605909371772219398793691586112847370918785020931117235445481472342122863932853034360479476222055375926436874453465490336087748079665593727259783483713197119761728082322179175646185616641376657546085038344787951802950515463676585092105821417448998348548989145872100904253128753617019878128941896035670165940400319646720513871176498522487599689895338927458357380427741406059033003873174126083885053104181796552249793387833577008642217012909661253160508362999399437537721648149408387267031089192847800508949814478026902728691402028480710688889960517802644988092274783212608091978294720017667168953210764264910844909104545202745341454465572322891643363907232547343228672448992788615008802030356598348935372441378254945624576647900451814970297244793151532495934714623772803998959760982019123682283906001795329859028586260197628481221210043362090672921743841232419604217124105544302162291549353402321309961125983270809657258663348080391511170937764174394156305562758863736448091100393093638750340193722359188033365277362929607093449843660731248276045806508276806756652212349111190245455336538303827358479451308367037701643798681324667299941563207581193806164419932815847826830694771461132998442190045883497573519293388440844419029994228866308711072483134191501991011490841161368224010991369696283103132303528762735122694041313204535903495123926014378044392684277715274869878671922061511943590269961906133954162290166128664921382030287563619416527451219183491369467801945344434831025492360405966567278515757599281128936865257952672564965398250121933646782581935546434384140462625475672447449197872231530520780964738815815185879448096809026134154818110380030191460701009914094545875024166516925604363556881808075041051649696948364962079818917244173034315695686348480624193239035440064454350605730349101073886731026870795901477038999855825041553935591926615526606400745919548091236845621799024977517912649938653423360369241091679128655012562712914760368203852573350349869054536653144568732487754216760603514423015742753579394416164129120017530085910216127328307650608173775255199624533633462623148396168627094859841023902685700930880387118503310497369278258626278466723427834143677311371128875312042123628475016579896435888933657286971852663944004246160504602201858220483288197605762057768115538856513907089303633409660409717486768170859096877190117301986349750364327061937701659097690601917302559130412469164592674968457790280370586883859529839761048832485979590449508029424041860134059661578525019333691593176468210993663919741276135959302527115489796503143458931712347910802126567172157865786824418205658776733951719527895428022951520860391891995279509421607532119071140417895057382215024546687215374204622274732642698214676387101360572756030572002639078168134118107858037049072516908194941194424297350872225115615455572695962664990288593745172773053355857501154776252088290672190563104363300024927466053337418730947474172364564709758819448796177004189409014031202192814142025069605993237888200131658917095986890362596391418364215593530592247958580883951780817500860621491169869918731421223145948254452706803702364131646654835093535714625844799650027552477600403580298135970369851071529985208729119216876100650419585022412841361257475530740821854373926413342197418979106247588605860685595835166509983823575410183445247160339351439327878534664243790373892999953703942588609632398918093220840618899245143949835264804274330871878302339543528123740422455445331972662359500234976540930219046758437184766743589052804729706681932612528636812240179454925616436708820364299511022343879788458931215282753200765403489193847707986023259728031917361865904215765557477324529601108136773352706468020359161308096352501975978444199269944920940360667120893975814803984909648808120806417875625186587492900806128755491438388177345419189652075152148616416943766366215507243236187086953086094947260769936003042217832327312429085473393078810890150465665911416516511036309567541039704571192666600840825577143719278673299318598277768370972659618920456222136840141339724835730541824041181869068678310461519305265135779752137993364960719195857113010349846109072651520666642277623582637293737375394547549819654405060773133338708981760101387099896756415868572848373812233454836094916391710567522927262410124263418425155486323380412038187723434934059585152664710089932278905673104460744939550360719550558109795036571705789805693471104767267550739683618289133001841857392234293123480534920316354745582303539045559098209553984996315181904115123379303847278998419607962593589124462368741481422948866109007938094253453754975681593940564417294969408375228130552171937896902067770693820294523326709509964584252664121851673072075096864885451006234042335722034798197032666393704607508362116930830639735559765191277550895596172013864473870060592793695820180717794670969756512752696956519515693872737699217934212994917298915831214472553479098923165660112230347960303159288103455725052410223265151019485373361577608164474828670796573234541843011715619551909357428814486010099131811900324611952331797932757553987354446024635671006026736940262090480047498490861384370243507129107509437940174524321263638160939831581537189901059665545424217776980953125037672183960557486495780123466732758967869810499943813706386447833461518970090220813226030132228916942657707646355186505799555447753698742136421755289692827941260193826932215703386924354968281761853554967155750317997583541354487593226955026968431811648528618183321570410649774186344512528713577598830383028513866772504196313644612857016977593396464653521396357829907747753830193770852394054802945122352733350861398697608073202780561497382721841038478151272862234446455929783716988854349575859934997992176942216020883131593326096897068463752198796255735778461242107967353343785806472797847619386815970592006586094364595644474112235149005552982373949282198892959266665226407330151938743230431288573456253646338433956466591918664704300401925814115559602157086922766206069600050034217965980712672894444750797832833517085581515101506254568728407782413496097069263332859555021891153447336173649701933836157224154202040375386885227098811313364549257569124958815027787758472095398709322248480042499460143460952054237413672129378174859230811241638080595080892937900684246897089058528335895908448155923899150946572235753703751651718907246440919734077630712542923100905985529272982775478837023151192816734436550174359944575038378159030186343191099265427810970154677311216526048144030871248626778564753767594431916626101792391610509580640302022663741711420022227980014870268797617316089164313456703518009791012642115383774147583672353002416210914600867378052373177750320184630856828653287341544341587622112820287409772154490118044309066368801535051816926855400359694198581370290098603121758988784034220836030813166246782915183167265731090092843710942639663649602392234924716028652644235426444298799854837146484096509543882344359414018537790851081026884497660808761685215637375428691925735733521003114622512478981078931026893265399580950621626904691702307082550250789183932917158010939339046897189600355099405306163730153249527270215503788496174198320389167089284612756916685286454211127385732193399857257835554171181873519949088433921877759294977825305287974267311064721425796610103762130770167119310576597407012038100546834760808867283491346123040236014650106317414770345378625081231797370134155373297881288092549389279688920439987424319441952857106786516983742747808776913811806215098354692441201003718920416464448813666035924645608419211071216334375954643007367083279954371525452318536226603012759868591419477932886754148693907647050343026152881371941432421407340765682841316949417237303484243911579859848084946452880508796352135736458059675705311786357129351437107415988959286597374348421075529591853583324686991108816356994553814751014995600226410704711760400578440940849977828523377314683564461779145346720492828711493711711716985669950832599211639374586340747918757164747021431149909134729186725543261433992921011155948647037196935414892346588225243846456947067082528476683475055774912994524003831990923318711732611341429300826723543422775409397918813549286070446090871429483639883501770358560891908672009257328065723531877870691058735529690427495473323443074631064546719988976031792399646583115049621367696130184424537404384622273406312842927480999531066917830403424685104097644890817901492475333601566990477915685077342866057216120475820313163394180305572090726519141227576525825527715015292035372870421482980066434948983373145518204541695233785053023365267173248608338203885383760331495315846972548543892355184123580696720209201566124490596493322995880864268563673487948055719844462495723088543553632097613204729065873265333995146703189165797816396304621684502526612617591425561293395151385602601295574820642604723553851103820065132087864922138840680892959848177281042138305362434028516248543854366470306230374828792029923348489021746105992630230681426902189019286469590595377861734654007205480207356636516144863240577686444831603756002395242260507063436516981354227432461914063570667924647288425029711258802916221920210701568997058113734553401637160514853808180816851253612051028997814538429024819616812016114188788661247862786081563045592836841172856107077005861687674177977145862198528393946597711417627452778234091305565999102380502773131879085877683441582242258236055679772076345565374088760113287423414175094604079653111955338204611786441058276248608368616588456358510645417674331307992220311582887905470245394238721965425828925314846473074179374840852907548285978610739996706629241413203236341554472272562338837106463001337855943465359731368966506872887163574870854568857604554909779681801908189741072568409659400181805229938562303078499744377490940326870334876187359489634994234291914661175466136358783911353341538221684440281152603883291894600504309638576075145877973379379378481286965056214512066288917672099988980363450224877859169606315650310161524850716716199597900449850823712228670932018720870634776946420503331325351672533090131812223430997217571137069405102687225510074373629117024512759952025866249130021040619276538112861801500183996836195173274520011514896841427340170515809638692628397200805673992111917518476953586202637931075645472743014274375742434867793847301723980687222300547773394057924932326459543729858634968793512287932735864812829833473543962288438954716911545725523269954712355033469585663499761044715866603449547227558598944799560751138495543412240581895991239782981616878843929253286459485598996989046576053906159892906222515557737541196766109371576160415741190094189782202160879082701756092489788162835518543398822247373115815921119612126859966616053428434460103469187423671515866200354703533646742821950838273738530216117104085887509565582720478659452823731436409116844128835131733164461494500420993545642600147411310884974449402111631768632456870701308336266115315008653802008858551756656823189946401298803751752115119435586898289797498017865706144593834337690346815438403223764565707252718221946610055133337175443637469771167920149725844308753533859140614370023255416128158118083917308672713919959681032294354219506468383074947047582082136780062847884781195394334552222788124158440451564327507649666336391374517423331204897602859941403086636414536247584343593313141147205451302783218480360884354796160570078325843840464843291124431525328580074647291068754708793385089955854861631694556924308803519955658827940832910428162640875851654357832009558571475581885906966601137362900414233592157836386372566358460613965530065887911269075430027643371563942777872112639508646859605716674433012765006141070710369906096148416103965843032063479579980638570488558876922809571501388766243479596962506246521777048072255073819665668436286290099295784543836854096390015265108781281376269699955385267472544416148951995813249335482055518838142818944092696822120155675395105231679547480503668371029084888612613568972960423651582725289861420021649239709603477662217627743786559321707573251196696348231761568042384057807975390535651098989316528840284338178043395354342843105576190462782239067254601478525697021483171367842035719986798742425268245108768235340025859759415977867373398093332506045130572593887852338370807196758914171406354893937049044792515287046371830428434552877857813234237106321434550248834749964666361865626369595099393138976571543565383404802951146181824311578914862542109342197284103510780860750465100930059212781893566517575915602617007324690910101166184263292829253840322486270030518406151541873259276438488309434353047228290033464960311127809924026899856825420499317539475856336179250565718712016044050544698252134345267320223786030837893486451818040403080981428399824633827569726912966170344448736876595307711201040151313888632865149468758194449660885257665285682790549152418855238600560919064337164006399347632274438041518858631643042317902859460944058133189183266466463513831013469729372174872537583912507120930229635755810464365806259203014895293656684953210029463816479213552481546878385925468339849779601418514229461593133194060428411808256526990230993106656319725389101538364778890066487676312250835917854861094479322519515440179439139793760807663992411964019522462356568760233835326857982267547720224974768509701000066007970630509166203448819803909514533627199433155056350733984866484744539382014710907978070167330230210247002686955869668689644786076331287153019915383601304870086121292753019672382878852883426574454587728200105087221726830673283963963496491152655714965863042023743649900282022863233532611649355302754743480863645513323062736061345614340814669047838175106084440138910437602007009183196681793852692913486284133972089984727841252487209835530163864913560909998667467137689024241829731140063015968100114524933343111457875226358439625537805105680305043285969689221038834441074974487127758547578864149061485619318318993719194869025732514222145704440332433449144013521178510248988093899832797944091630717660328530153047466092584146931112232938829186500037261581248793680034826734828018571609212714874984739553667323633414987024147852882462485393015152704392278282073015580861380543680531404103593251879077649994828486383509448414839756663353831690010085380182578320117529935105564928329842954713820513704177036891184513946705541368405147239645174570746989541882727446642541645382937543030060285028764552424603732005794852489216762571135635369761227914101575961959537235856770770491556836888439045028606742830806068088097922182304828555025221496328079973636882580781882945131631067957373216885313492880785213895511737586498766526582763798460303371713519647280040499886993824244816201256045554157737365805496292329918267867760683620363664140448750191065497249845985784417448921321734987086799384608901079092320605251203640904067165786579348404750229868574752614957751501019717275363977030040854682390617770222341663696217369789459620042594501884328833770566032190060272253781444262484859934418256758259003187842482620886670532804212540869727245788696137427648905128764380925563807765973661325372760300740268490163800557733074885907867053134241203792407631804154921051152009974027767282332351705700128977921940963416121309521936263136508937200520671329223900913513821094181859905334023343335225209115746033273648950506570067682513091065490346659982362409188390403889758680410308723448221998476978440880456762758936800784529494069544364231199979952077781433054288964400794545931615945762734048007630958402682987674678036718775394900721502047343195968720335668168959504073744509287268045484820274944722691420803914426139713930381818590295913729092591894273294826076903461341388547490441377812358089034212773819539728739503270123617043508815578203494564250386169522270985726648666188157032948393859613611447020873359798239223357425337558779571464449724864643131203558855003163120490536626261811664711272965235812004287664262308327767805765058838267442403478809435374396888436277331027114988476483189668800412761453667066382992336990790283394449149879833765430356449973467210876509845624597099014996302365628558393522682790428942008021544907367375633369858740538542592178764173919566008870827968618684650498756533013675642737904423412564746855971134985550698888704024065648551429563347368659685342713757493263515260061733519267894798763497347912688171536919802654284102878535102188675348463482858029897873794029049528457225968461306132498256005324798177711183507697797927690063881833919268765306497086387931448377157800963894160538190189197463434355234472088671992657646485434851292780624461238125893330257923709013759503770350877379699306859639221187602244220440603388695050438682832957642872661452830989704575390192026744399763808540801583153696762654712477402111429506650391788034333907746774983611801403327021613619656203752778217962394327289495813520979468463171004403419456888626634417720827902434856477344954288105875377703518859261198561176668916937648609055367705030080764903282600705234958827727415983320017083678971241154999842931453355519017462242152892212133667971641091514613170588016096178629024524598939545784037636341158579066860486933879541277659180164475278240239453922337828817904721729422310202652855920394371458340095002819718107701991404031988240662024984453186394238354006951393929915578484557224288100838295845840527175710074602001484944014378957774968281397428061448519637880129727630809516830930808985432778899505115417869932360886430324667342480329973512916966700688808656054501440006907644338617079521789074641644054679722572222934431430142076051016293362292105936306973788312405238105095042912682833887470317411433621266475514942922904146972910164783777541574580695576820107824129505839220576388896803336271420384933610875524526795157974775424457474248065292847900730980078721088788322071703249097022673541701068764878518654174599314460685167960932677828316742877326262601301567558790316203835251073847040922740062991173502909478295333140593953350541824474753261758923348480194833701180793561613437576545180580774345807666292035539147466631941256557885860674403339893050911700368814487577579340133850540721983096399845091362608391465216375664913186030736843384097163809068605367689044723971910112903267546871901761480977188788625528868985191973019416599471618128582347268549361003965616569399942147600782465659704160835445161884996539880590105866606598104265118853220098388238200141131058405669680699983345579396351135081406851050536823712565881278149667300302580378951691621402368214795868646974085066378385312960692045983280686728196997578814680347684351042559787881498068087636061164946126511288172541643349672856628314373878328124732164464852872665201700714192364428256534200322775563242690233699836948047700314951056336390552483791146426527610597920175970630319851956281732467821778159374945709728760118909555935026840978712988033515892495683567953821947284944378288858557800997335055487908207174682876648249136604117052975056313177383882553451988323204245188236637539325488782156803783786821707382992038837822293540646145827884152179267888332226877915868120837137341876349242632379118967808993917737693805597254375123228835651604425440734995047618338770447091712633194928540098950212337033413815735149380229620594174047472674560364563443196813874209577972994549515199642786441317662310413456606878729168831461180740646045753942895371436614703894970186540763698606010526604712920318724136603996120535083769502731994958919778874397946414015100861332789055032704647978245548321266736811016283147365999367347788179925541717447850630968845985330445365347459585378750085984888956166401958792470491850982069134571631274865156089212255194161979856443734533388554411879968584456563495093947795464186995007202030804835739537151632355870771459732974638864724279829857939115338329544183700762676481689586132107419673133100599643229811463677037261718413209141288908295054744661495704377217760046302887382466470211011690537239591050331036384150000390454888731571832245060795638875849464243957763865093155423285709745554533361680531693738916475532421645141938502215229750185690698757398868025545377200703810993417117707638613015521411242385486137887924163273464006731278600353940711379253211389779928181961225206620251197811164413414305436357183508455544198871146498125742064208450675372403177752381668321859331657709557272114920679167781965080927262970997839633615257114008625365936256024066009548177577534474378498796932519633504155194303153217857458925851951040491404906246433219074166542607621594653381644316346643705999855360358837873748158410950050304785092559194625193254175925808850858434723764047360629777472732883584412457679766888532317133428506437502048198014237508061075652788085729826453138076946115703888250216828766969651273331563519232244259379251741063800057704248031489627351222647328403395378282428467586993650490768282919771163260800967804400881417069818955141665459113913287840313572607260458905367375181367451086930991151142384555241734590841148581612274857085415438199926838250252612655622286993017833866163986823244949265095441515613210069237807368157379319084869319205090357262153246986915130540715892844356131498418804702192521480470452619129241650717569140134073457102790149380754415871286086103133588488774849340058297421930805517457904065303681314048356662593713572666389566098430003841681965019722858128210960135716876289538432234630994837663565298140094293436902154774751968878111729091334756327221518449047604329342623405153615577205521559001716263035710510180048287597035178213352579430717958320300910427542880025512019008109876338315836174613431158930799980839400955005843061377877314950178127649600414239914753254626928051661785184675426943327169185347731089588354734475132872293913223894495979111980465077364926578528485060934046399908554722236366774815959850837507115735916087969705238582179037662174599707758632707492437071901971098292959580033676076850021733497029945120371730844119274965096202082189190202571305035118825596516389473365050505927948776714657837898893215808835468468848890790903984668229046572130806268953885150883847757558651127449087855198430333881610353058576855737154684195840546307659201901542723775968704456361010771180668718533033181346567785424064048771063675485162866971684749548586814026119017669723978094235765029160405258558935064107065341805422524745904530042481979364477504794413621237793438344220262650648548013126938814186566449966795216767706407935162469976009184871416086567512021594941638160498010474969242891245422066431326447972241515487324314358669319721841732269338385001347784803979235687260637712556270946651856388020628420157185276729249422058865073301625770591065408777214827052285725965034290842769937982171686645095826315495621085498325132353209182729794096268645916782660203871560707433342927123207762485421324937262384227992782078526522366442939986572612705263974697737847970275617622760999153760935487886716304247168986883404638249668360967623314751728945761247956683049357299626728786617832454599909387860770580104563937360134221286518889815449157568889639769926099638510316902391969649180128504906828861196003425327102892175362208251461547109155549855859856644993517967432179098683920467968490564284332175525667326296112115709773419766576056595811771385134055747103115858066078317408396090200062878924762793277306393772767804638768233160679174405973636883317988310236126794629786010568314488066338446695748468736310913809896489626847616235884626785956110461875997972354970071972184384158441457988152956801756022069337882828771211942270943384691541396507524066424155632138548022530747526353939523959249279498967418198820569999708227902554404539200627074221282372475587986093633920844870563555168777384910015182943234603801916148433136836498423034792531186492337141652521000788545701245536495571709096005248994271108914560116554729339799729802156041021960010373026981589471376215551758595061402030514781025445273281366700029644446519666465367489590369580084491788820526416427734718252936005595704698520734443216456094880335506913167681140137072455034921295299333206985962522964030803162461030609242246674313313895066683654456854898503477154252148617095955719799468765879783150645123740182351175503959342308957828083996573764668276787601210130123618482930874319919054726579506789773150771115305378155818180026597936646663401298574143758004982373309049347397748148638304837880924826884618295623755132079834667143258508478756097982676545361750388856576579294489840451402039887904729262730931381221642847020660945126465539917491046910581078242392185519040751554710444435207105780951195152044390295028785607884522575301490152033274996059445986816605614295812767724507123721002016186536749519792214276964408567626584953444281200473596120391557791879614006439161629975743787208689039162590010025408310719728126751157152089007882290594114912611995923383898774651966890355256535343291959266294692103949737841725624082874950116879533669205564905957042343902312007314170536912479801745811846438604731409948274149240991834794653627619566221064425961746750500867772740337726694217051325440287987727134135751847399266711530651452541483140035162369003195787172265374472766902966697020588051091192024762554742251060308119067372822030739928785702433801782847554901113328933838252886261800118775559564863968657974004101489432953610825149555600479124655212738676248896856948176047777652130490956648038687558834391553774572820189291633552949240768088099532553191575092135697683877936026159551891535207065096574111717947261702692746467126216574576257262704568277753195221230669218268968606573866401610034985944272586201928962715705328208017533762845093488779218792950929243638043878814198785018034802288736922151412117759557530242621710881012682610349877217091336528151842408553136236708982648246724911776529474889600056702374018644795053826572829024590222916061394894164837583627577147068167862878598762762939774838953246105140869692428744426011883757133226272712135531778871590137579501863402752614440144684363096045526624624261099384198161234227001910424115849977901411871306555377994845484002261162201895035421273041874919045940643300877004072512425293367087990316696192884326278511785071087008364576423118932826353486461636527893864978567113506960724791707709252850259878946180736498557712531519497394945792079654537664156049354432676104123595729806923057473687955459196193829909596449563983329889900030172118071284973537375841830763818455812582882711268773725628876939897240568996464093636980466718271987881040948429118745919700307262512603220539662765439912741197839310515541586064563211734553561450809566355903759085354046099338920501536920965882762926081191430620704745178996718619863032450079712054529904849869812097424613606807153312682527527394867064384483044021099647538643121026209451594957822384865861206148940525935376126258571972704616835751973852394215382229069621751158517031412383123849121721154415482136897605355646750340826150555409545139823198726097166604240014854625974161083561099479357241729852867085409156575795078209658153276831348638575695119097458182598080648713597242958482295170100101832660799311326019974415671508112114821349683740043063365236321523021832026735592351307420229433159241276694998256150547180516516341450356155265029819315721501506070681279452784405688812222316761368158061396158238234227210918771690887453407092133081712146695147563350897775045268875722384094318576750260932729045898576598114158963930201268765971749890744272604557891097843554267141918928640917950312858431246911330365074407113317059539570836366795245825561160922846370883905854591441563813597787086631333805639840994717783723672605617759504601387953783926355943438552364666685948214241592630212926846438423824390896477241834362366798138342375397411271241900011488691580256376594383983506419057016118386224592696653262742439039057491102926119058309459163301494687626215743360209443171582918732294758265152187531388889732849148450860140075031931041819508895033422641582325663278186127422607116365424359770885310675086646013575230472471257373212871965082380512486338341025715069722894829132870656004753508454370626702246678841185947054044041068525179684285126199370060955568946544008426989985820870622159304125315226731003269644349593736427505835786617122673406492923750551968337345031525022276385811086111818212322019152696502379927451504188205653354026429161396611018122072212338599200378366150962914643825265686684327116649193049758135089578793844076256836260291958944824430373095060244958938273915056524522247649098659582096567361511372700147638538967529140002259809375378590830216460217933534460313131547708592870094629004033294397363295867764769071957576985316705237695228813490638118162209790624089860858602726383672187670973212623218757937345710570263780119233126915560829393356053979424138203060532113953114648929830883194103686254093899161158189604600962818574227506578813525257381098845869054671639940043270632003319314433039310303365904880983368744418117853348312799527127223551634884284385784212559287625235198975760736801821724966938350148266584891128358124897592042094781754168592757967896577845788325559409698046967680522481621012553193311344162981533642379996424144843284074133102124188135699286186071471346842632743156209949138664606005009437704406203280515860946541873674825995036627528779017223720452644835535351494938174969030832104537743606097039421103942166046508611613688970125768068840793953143076390843155420892432192912057355697172586660740603545890705130235312157632436567820950832734884663635344875246677758472822899821637846696896500103714229899238627833020119942899190173157253277574560230838953908952198179494766883045489760151297533148342659956855737757503347554111743100176528471022206357253155162649217987467226947099156324810715336329076504678462900016332815774369522535062123041017355423342872016133119098674832081742574236403447491671454267342866565620397566687125648926154826084135141189434477962103126444434174745885191026276141149559904452863156698252615414837425748029318806171355490797014335350303079800324336990357729758445253714858533239930543399824530863910666547873234748386670801203200223632197775508008099464528083111098637252001649930317708314908627049845313145352972833923026083276920943580562536616063923833464356356235433759370506432602155712427498158979587832271206259660527543512925705565182696028502163135508580792876279515706993553800140575263049051402741174653142662366994408996276600117676272837156029881938196632980018009668837297479115917174631576200238804004993860936187333541345109801010707275823733322125778411674269388114783787680334183363498735979800553330215814749813410426154314221567888679408369494784956620113732985217959933420803877385966386019307790607709082356937185793640304383950216298269612160959826127789340146921817010667371125539545236948008538570053875754832621850213562589646055306549839246566712885173076352514767792037215623268602893596682753500089033496004473404138785428569770963457994054981854928238229767187524118535523429977610230718405117425261746953076272250895268083729309946797553854443419890927287153065445373194578001717215603679224507063476185209479319432287048285588665510090482483011088861876612932954265219844810592856249576567941894538179146161768906078211174201254639831714549397663335266393496754385182131611278341420790780498792623001087130697904291086422672667452026989281479479975378271460790144863865848853164033709749097831909930645496115148735361307490791146151126594005232630405290896926959110928769550798665545031775734733097926829010735047333370550122756746906170634716539966400793982697196757389314268693446409477203553093588329876114974191719629064530435408461393027260170176119865860645448863732649460522280948747220117623999265137426516288006489959444078513672814224211157878017149603294543018822514423232575831591342520994440405831759368017868296773629109545753364844880042993622375825501223512728355439217463592028304038731553041078649773222471811021190016029413139150367167421369363420256640443699779245631118218820024028601959475439970461058082620213718892539596999379770386247676960472751334169777491342692831378558422276832347868547548877163076119540720473881834081315294844588437924505523388599279997320780799556774802586854239583327268287131478255221226054498359333849978360794840151388955253989715547887110585052551921929330616193921512051106280282879698147507768840097258423924163312576358775822078449194389913899483075869090400466232438007241344364832080707936015848404566264314906847080476953361627847382162878825537954608998082093932565038853640975832607442421771885498237515972798373000739513926480417669167746127849054954867465925686369308978344219019122320136637461415247026965560901599358855022679542780123325796531059992986274443015941846463155542512802890284204486717579558734994039282771356158302216489324458973311111981667726859611836274126147441159562272493962118155756507015486038536711264488430806916050943621213413798724746571750325798305241490769078939065831860890783066646401112644522920551143609547457287309412256362158482870130137216548758157474340561077084313306344056476596403569031702852863258498895310700399355853374449863754901533431896065861971677518477821007607124579465492327711727980804610425019310253255492968986991809909996022162043803625341026362551910175339738391596206489195812853381270772674970552796842052997179416395119158879150016209896652503281544249563387601680628689502769362552650030432533329287093344867090217935560905428289394220095760017970261457226588069652991802031915930579608233127350299411654711455565432828423788123595335683561010529601760075890998328054779239122567193838870260554632383408609356907990952138190183497911700879788670996612639611818583629286074807472319404612403437452921072794077768489699185100761557559277469431788413923939893691460407073432284655517927044506713714559337641241694638567364888740834196990906455059937290232515001638165376665682184909767578104372937926739887057879859525682139439929722843513737515445373470534914919017632944237886358899245157776180814117832642850315736576888731484659747259175539390582789569791906568105639974114895438241941475939516998509775768908449995377626066511639199083931366872599347836437778490383388649900333648353852696990302371517359302776419177960217389518199730162274824095125406130121363697553955228185517117157501544132964235963248117644453619344739123281220263704949398310864661111883606288866319379735403919715806731983276239990074095526087493500439036883528318041833383276144951839103800725795793892901662454465944347238822515568644465515786618591100246245811030501181993387470248672024092712892234441105827126731887562370067872248919003617456190507103021894852406470601860853358384405945227174158154010810102383368331607484208673290706383335671418373465736370249502005464993516659167076264107029622420673649760840832614281804115622388932245701504444145388391094393244750598714579543056753419471677961398913031508572255056403293836772569602143470609564346188138579858156756534967572168018778603752084263847098038195994056943026006171108875523671074362200939721185870022017557226954051784802709593419432965507060080356491592250029072684768490595335101466540030293973202540441482711148306939786046569143766270297294453685095250927259918573672542861673677738050662463840834920801439852594535404101009845058695169567292071241786704061730930925769638931120525152752298659433121688376825813837693949998559269618150768672593115256650577026026503448675347848402176645562324107289341466370913056404066768823956364706255105323483177715357194564866291355965741901037807647316261491328390115863736781383066223017881527538318759129124566059215029241060830781722175892313456893701779009427390885932040079793231673480160544757998203347458069143746820381381414590405071314352684305685517872957690575882256252270210049854716799747833025087356323533208180963766324895929090487643765833368783130199075325468712593890290932386801673165457504527156238507189856546978575168083002102127837321320741299401291323143391209670279824733688202012869039874206601936524939379379808883961003529304383021165433180116059989471027723682689809199875622551588808933753921464447730128835651041062226189793678263094816186038301558217930059665962118407960802202404188904795302220691152369807882106424400299928683302117958139916477985284180399922275395190932091869351817320458722166204280276730130195104314456514898583408971619672685941748406595473832255008303194406357042565288723510095954510540741805407903002519736021280437459391016837093922376231042037305050088764049247681117938264467701742451061387219178178443485928338046724221337498872760695609561976306087970367141788318471617339928690658183585600184863409270663785986920273974952173990121000186645708175013538357026689942810444533821996433320471864719457055241362774351452293493835365787228067257664047322952293018423839345517823732106519587695224080045840182775710412699477053614612501621217611813016533755966261199333841848805440070079704830078452706545160439138051862232790714682352518035475475239388027316172463774533717792562598249998759013663168931589078547301214694690200400654429742039043856335567609919618777728729129927740995329634164599619971876957313269411969544625531928319779218440164858824634843449541304640385627103816954863877483654663947673584745868543826334267248671252946426760944435085557915381153610884419369271416404870072183515014796152394073992645286388722688848083690259800300953964671504332286150875886268823846314840836217011280376571145634152681782468933728500784724812180317359288787781268714468555792995862322146514930203269334187179074202780577627088342779589750303551665813770620706337620497103968763871312772354823071498107161717093024203238783368181038435224983518109471037797479099183186772364399086175443853469150381390901953385466388957845694723736460188376453685437281310779180103095771300416888015638069603468279982466745520802854929411850440085349017158346956499937694941926364193890320953989824984393026550335732997385605147122488028654295462747565803541346556227068395349423323297583922838274908883511332044759025217141701928429470303096432541117123321315475159160683334707798947521744658835966826892409294013839039428402206277609017885643969654689244189732320322024513908382002439587828611060974209100195598161222950051729132039477939377652686183086696285125628984944659744798692460851758584077733937532560570226684751726059427337886185681769173986626103224719245614420285892874455040253511852942282293406089957587560203668210381141243603304941093631108620687807447314047980313546262501254676533075110428819642806609390603476319292523080918751212042758174178432616066601280578584782158989566357899409864163145436576366541506697375021798637753990671612661966206974411350485478534884578164977820623550457883776733851692559775251913717406714096757546805095306298860090461748699171823592153194030204314682708412560266881113595633364219960648531145861712932465216808563302019678975003123634284246706442274667485749082268063465739595853765690828789918527428040069051265644483124673546329877568063275943288845164576563775060786686153545851835064331036999865912730107490192752754488288534452866496010187800645047814774959044404129619341043403341593978007193456956333525861401163027548043083440327452072857730659306742657271451781386293931368160760306540875944487411123300436888722702001812453994506597852915012980047662921878632136508899425705751856992706129685996900832301674207751613779007803454338738214293842566911617965852664828645549703634020132809660306644519676276882704943806483595721409941715610010627723092613636736533860635036856175263434480611325426132331065936668083002786691926513491799005096978021952315763418255207100206081432709006105166287360488938631137750749278485648542671779870001519622734309001804839620398714069095988366528022228103778813631091439693295069427366169831201045220036081498061838070731085929495255058867331416051304750091125497758423872726232036021251061707294990796463041637512444791731178190770929340568292240153806049659898612506292346348123435113213671185397134667953418541301326569172175574932092900773416185134683146342037995918795651753254456909539300891327418734348481096019070654147345484051235590778356101166368260767320175970797139111057936646503639109145072140976317546807969008057856728857419339832654108143572719096781157966949062021514710881173264420289387486035977469069697370945370518334853357396051797022672283838174087815346065947561079222596835864839590480994040577764882490975492122032757611664022244933353214230039163296548326469890189639099991274353825389330430693315008165032961382528312796084488192012811465130849883978058767763338953526398383177212528990299584344604881068224830236170494453901006405002545843699110861004051832243472610815460662309418001039071488443277868239473379912230657891756576530311777429662136006350340337757080537010453621464142499505122914091882621616921523370474183798919954140561735950418913051697547752311547466574480870674118061620722964374145046034126534865609940599736244283034829647908770473057227553892167625363337865720066342243118275513500922990720399009838160805885064749583418509108026127059671479265261078701946258732584187155462188148837788850096256838253070007369130883626231498958649409348001337674709243910864492201127680551213479561391413752084591752180633830790181515097811629413204100521533499631541303370510493359340607888255433086958411174609604627641985931922975679300260066891467416663640801160417833549418595471856953180965745164744939472161558220835853350855018802963655686126156230987825007107712560079260140806620139441408146537839114373776942819252792333362003498545575992953762677030801466764797411021077108890179625273216676296717646315793288047980125090025620059615948705763274480411537766044594979226180518517418388582396662812402498693772625821331653998057786084188699219402603482676360438937837120803793553596100904748380242897384241057400445465560153897835659972382581996541429840441162892464920284313891591466561356922028236769408972670974909601850464773123903341490818125302275878455748797370299555795654066644421236038304026302343771635022500735242696672966534425469598389711489849863133770213511846688740177699338684618009419883439069319814883168233182037192192246388031747366234893595194306825707822709245436987492585499438346366372145754467388243568867344560075207082363652696667938988176440660373712541907443661809072796011799885796210454250146351312067365638163675352722905808839439987973345163221794807373874554815187465253772233270947562695213664938979335571566371722834891712022711221077761978432951286297617202251708208719560355848898364242798061057916465798285564391845437312745557408811651446263801738995365354985237957013357754333069860897290205486415498608015802265080690789485032529263388341873583900397301426053922421915181967682937070835025014691293419305930466753783681711793114701494884546923518615572951520825703227775093009441509550492337789560952814583958712703835249234242198208179797082428542987983972157135808737624173690650084613014311550832154775474996958619314745770456693566023131583971522783589364299992847309139402165266867191364435971442460568355742040963156127730631060775052854449961412830546089964243815501254580411978718568465112573926090567674279336716615069621342611896908134925097842036543628192718475628846144332399109378211854477733540816450826469033166866516489958772799458084309187854855877524472092406848885798937344804331181703165353171946377477364723431789606627567060714045949854173644233066852097106592739798071221954451800022590782408620926814947172062614662459288503663207969505785709239391554474373219307485989363494137375643300958542102502229049381353644375328386226695762542028434944825951033254044815996303500189037232609994383320740614484410491038833355534848154981371794243188838008761145014461501287724854335218616903804661623162550889185819187014883157482456217529276670689725419806298535025250630241371607512512034909047736694152008838920411122951287841228342789736774901900288884824700686135096468883750692331912991435858093513784134128082578167054584001742971666318526144245912597108947626965789976098723147266506265652378108162925075301890635692837402709401898982327260673859827340652811070837635575891165668206614571328792749625658011928686320667032871560008524397011095530397957877780300251514014979893318416139701605606534115506089876303883699042317684761742670240873834862508516301995889041975164601094909749764175104103228434698354727662791887570738275753547156758354474118919137573789255660389307838153157275232858085582652537244621555068803299648373520746259396088400372004142899724802214637512681346957190003144121757851946905376056038602442944937520061258341623276681652815325976156980703121817350750867330826344041332509722075421962381763047157147517086262407008054131144260659616394834277993226202654091378646356114703048439043171332775784986610983803054697727483239585638474555575900982409191331438397739579431951217251353752653903112968855193580396442918702488437643773276117813029627606309468978584224721264878173092143997960685882514217252484157415111614317690414492189973303600959235948144063318897295505743730678648785830939148420069696089801057786549445268050747510912347425354366389565924624991310202735158350921810717140064621382070765756450338373956447064994357375309403571268438862165402926895355698078064687365312082321353434697769388048983290648371441869948959015796563232176171722755177345454805620328115889851460669991339996507435281183243035430845066160783821153937807607019487884275415827834726652276191796433397803085158305241943890449086013615082425666582827965979177136671743214543568686664259856111839421434192738585908646063570352008551133665722792830519829983327858968428579772015129589461338560163812723794586322468105186026477103168601808164272056756018811091453078161550955377274558982342706161225446604566951127986634113464610119939390145210165332599282028770447670298780988921563088803855725489032882006973436336197323722145700079223976257852615082475134725252495482972242824304316022808275082428149243874789960276764844483993132563709932197655017270997609503630774933431295761014775716928411282617724585294713762104679017590939999219671034009693052827581648437810636110433562153767427732808369001292147684274853401063812184452650441012801989209098662350236300471665408212737627135256552221612829804757050979761125222245391297878073942155923138694343762939630701648184712261232121010867133316027329377370267361696103129000490964696968389516167407935337264158879300925391250997251581493722799926765626204267715316550479792011725221022952637464558704602786092020035520911568991253842820522904814199184507056059192298689252981452842332838713552705838330900629193376355974553973180886302259392558489129755504339297832514489105156031729917129065715462212132005845714303964478813854878655321172828075185127093467897177710686937097856944665138226472879067272763889130765371142021532158492636882702924523075173625533905875069031415818483864835979826444412574585995095021537649825283190413616891142443086758012698877391913573288329100590681859556747082806152453594759782539763130125759092344993328300320972729153850801800428274701369947308045128244477828758200337588431138989411396674975026424896316281877901502587798948621060924050260799458975239200873530576063933310422093442109040880135652143776257823821173929248735630274699881387178893691130644539999257229672990595381935883356810284883775089169900078466626725346814966505171093904031919046546583126221494810160661709856837635110515165278461889700778091845431270203095048098263559003373114770275880176800797355861040263063834063684566006225732285845358515340589955240204031610426623233730958975826800185343726366540913625260001179507451661443054852585372432837911037148332133074231696824035315295020094951169504532165886772016677441197367122588198925628056248184830268372389691230021298310007312819309508556542721978518232223481135245506550240595414136573227023407863016827529739099880173927309257939671566100166915080003487785221450324783694721110781951308076607655912899796562282540933662673655499516242143926674153166127364350557132264081476066178092897527825848925845700390695971731949413459493465918957182885331565516992502177647035585760900774512094915932457090351204034734573967462685802269867991250672623217927964316542255919556477796155072060463409443693137531572989770175330311129520998505686734392819554113597747626959316144209983778640991748426566833162697305315163545369625140053950849763521191780218185347692392464007673990848351992340643357212119435225919432558298792090435630408833450145388977813703925925415913101326445577612214253829917330161590976056536000160226243126057540182275601714105505527986842066399969071100695234934052934855737973765244756816600112775506094442695099581920424977541274746328303615378651374251988194838430638543785285050282398135235924815427692036592731133164343679679752676465648255032556478710689490651001280305422995187532161149123579127832513842145479092198674939425596827229793026012640122485699806308819612146224201711631285107904795458331999449723281963527126828787255763719725697733327381768060344758565901374153638881345543811063232769754064211801336071145080295487183028893289430411047464213495059386415363779663646940898854109055184576960880425290369929215711309842124094853449527502458440812336696911223783351562831128794651330795108819299577502973093168351283932640203741427187139495826240493024351606098972562448376413654962024217128527070204604777527284774777531458750054208937759125467824953761040878044741028853323505424090937454353830583939896243880695777214032616262599577383288078923179338295347148056686952582739349572987271082929172688290796386035973405143055559134656236722921364583994680195802447245998193182404277511082448774648507923764349055187650864040679812749971784615785708057283833785269954172850214407623881295102810335135960257689331670847163676950753816110503606660528920495851854215896597855657672270853090506834453575258164252629367194637541076844288090099738969281995600569758237705203239899512740778102431885759205822311460205980237016206429505222704886226289275762576157674693067599375770564374497488593514759040417221957353011314615504791524468046023117931097646017204379135901228320378582533038147956163603076465856025817060368483941544948873308691077900352717826465989637259102361789285995759626726514958869436336198358210372683415252180442143081168629629060287609003006674771409412647968263924008902334230199180462422334908479684789183755842029111888722533515764970885493611455865005795713232085353411365446716879925138138459416512836741921548354087149101225322287957592049701918095771399415891406142563394815629872894309084775410586695169342018694948305869507598298009097039969504651442404627556346708272216100692981667035541835646256403694195250224217265826410040780090425240333827421776534377166005671711710688362949691017331632942480788087528702894492127087761570172673578155806021141954798530181440484941689213129166964797812594116446940743897122521008862835792495350455579299217828894515977967888543771470609913383839357771794739038153919367034398578401706529083768868919349392391984102774765199903086820045781770629318458731101964394706935532455695135462311630814669631384484674962856001520892184566528778974141663161045434142256171052025753471019297844315374334991337693304800693573028372156308377643098264907312651593895239731185639433978960897231320144216323407838597681160827789381748504284284132854242672860947341565673837561141889471706524933731856208940158275714055608647315364704880542667290614656057446251128544814034111082289020430308235915649342821221379712828458522578536903080610358290689688394804181498782552292028884231474929195055877295557152133775835648106803473884011795025383620674577278172903577272892437373955671240225280326262796480097119682635713086912360344366250131686614954800176352866742018499041011713548180311205443186183660686766044595150569163618914466077481675731865542584872537889791418327258574657527305068402089073075534779635758443103022715180629655888671681780105716256249761598790442273291288475789597733501086070165827785096158786411546259100425373340119528460751734398614281220721770774060122628618066649860427722103890961741776440695320217239742146305440539748208195706911526420528713485228691663914192130081619719350709962174029419304818804489891290108522577948188954374785235285641861237943990756369157259262991343746397335270250429578339721378061581358746308484738281098374963300680658943098248314774289728236946411265915111887721629766645322905027950276091634612132945733576099739772512277901671306055486376833907403464919788278274270689523753415042421670409152817158471602288664982842028053051908036478522255421793689391661421773725873615726433173502167122890701845841260603514520463906049161158940593328628215169884009833878743347250114448916874399530813796554713813704762581289494103354361529658072197860104845986534185931249799719791688522154667262045030621856766593176232818603297038871786027821079184670825931683598357180366240106573493011146606935518680417845157022793483030794169904470632709089732901764852785809679496761308361998576785739886132623669342650369713446224706438571883326329563884268583731119776003453291721661292521411808332837916563849908828605888673541319821317937349349451549027819889684340999460814721222293478890227398599763628894502627474038695606526755560501273753299528000823717458878680839025649767341237475243984305484512070362387822870770052144050405128158538686340122931489970153983209922246266868134924233118272615437895337105541081045557818809896778708019686038701646621322469112315034463924902856626853369330207351961501586957189074065538784012402537426532833303320321069733836476222166845189285980151338624037775710661868217091261129070062415371058388322564083202191121961139504571835683170171543693908237870806010747339951012981877184480699817593851088166368263188307636921197336705024054006546377846412026313366000293044356422933949237790599082012348847908623099754593661654906248382974765245868433550383829763542468689333645772103717692102303082551247255219587518964797459241592920581622076714022224968431158086067126376270504886078774405091974580113444570256185929192939631168284074900850911599100986200027310469397400633894250592319155652883055862096054228816041062694690909720958499496120358777908715937979920861617186575776324974487109560343517796585748386721682145363714800486114709849199803388976435814931438936342350895152723395664464385400398028007298729522028744969996500554366788215705661968762542375136087461111067734949294902200048592588452949055725003266834890804986214333272037876953419300922081106640484052663198546647905886216995265893438302293382514172793911978649979640770622919959063439678852520908832888655412053735287857892605628845857982732443328818600162786232216265993017723470494798707018254695907420119022796130914684181037154464105698160349326205120202759992918286191565884771334068419192688396268554293456605445021772310551789303452188819454403223342327609655443094597671863652171893279553761787841696037602271940730937931890205241697659011557284569736224329470098688831593195318274003973682708975925194226785375935564850030152845659952415021471076272475522392436254376769094627094522789299753647151568112823076211757205090889910591286463481954466255147475139796906718186697132456566132523804370933244018710569073440293547290461238100254342827353152618679189366195843145066215080697626208671384498714884377755412120733740754004565463942764732976591063634159183639786147309896883005639596805673545645683666441411607166135223256418149865663773996509621251413425944831213980120540008196966067416259018064813949042299521000341133376832100887281164160212157068046997730928101799535243920856572691340364849830111746044016643038500519965980678299506860505455777766433659143879465155931469455340364294765280741480345824713106592639425027947919858984391188780959787207009397323785149662386743262107852918991855733892103723774328838133109472632501661730833898805186462373559711645253280066335088651242145142786590236786491782202695669311244806356961340791335055246478897768591148505211656233305975134988150819729833778198617283175990033407821272713009300474561132003997291256706615496637111790216848790455326919282092749506566618322141699084383000880678105615370448743370278277336850881436342641342805217142217739795834339344230493065497653037819828998836470946548581077016320656182493175079218129684401131179554202402853452833038607738818294570570008718906292274204173315086985742126346510981302250160642611408873032707999265572857344335450657045362593016458397416479792551998846005206719389809867367872735491841009094767810323863373293495422079805757735911029497623143585428708102902915831805239991896827920750167336314467267832996648103086431724797728631297665322632223721187089288670679132390854241473795297184488928687183585812432968257299288423124116939122067792268727669314415626510681269302890627642415065689805516167488305765140747187284906363196252902898212031547870204839512873784272153732031723569269395309481032185376658282565926984634144447639360957486601054812943078345839605900343906249689951924067138774721092368528112120370970708028197310229161362856854581008578929393137200407247417171142909117568904849761521963433912349977937027974355134933600508806711701164342872480427243858749795095427895196527617943900649385693537854581153648693453594554876675258094833006609576332991235884249872262790158736251466597757216119260362167181770146009585469991206531608830239462541944733541008676127543631925832416975138654953678971426676046916960075625422636795321871502882805792354493478811820050543206377592591332713414314801150990655512766922952055153566755298503581489751944869736214696095034658818558295473175560186135352432074260651940012648460605551606927739471430515990537743540486841101898406403545894341401605630029079613447019053961476274254004607484622442642788519463775253185536115808006924284057719339606231651939495031259037038861787633364446848664285509733310178867253717270878651624217904511923739286864776380999380081305555511763291868491759698427648288248753806726482962714694777900867430681118277584765708627487790542584919116054207400904958411748036381894379846246110839452177291253319116320846944404702694980451758586592537011044481940956442893156118689940992080572423639934865870121495592299342965050920535621776652234350803543281172937745139724719569171428313147127272572876262957403824810832503122679812544851877308617094719362231377190451054355093633595681861555037025202687525742219702214482334214877802553482437987778481806229101230019531067476139370091022038223813466734972338760890300782380779037410869002097539111397481026747646878644927035391386100555223022652526427830289836508802636487550392446991300072642158871064736764856065680253188752842245503550717843668908674038274906028068732827025825726592653367006916102736367053905729706557820841561361533092341136035462743911892438586024531058845675603623591315627332217712524039960380635912610776602274943147777062223157287764969281526089743994533323740612743518740520713156118893649242642546265554500271034270373338307259983218611344966365680493601499562885215600712523112705008888944763429596556301721149676688003263080320374149305339950953903775138518044157874185649657097509158599313260646762395857941473841875787697788121265391302202637116537988316503220430550063207886076951137896446601453710179623395695646949665559457821723283766024185220852037997507935260638972092394819042117627403868566545510155846377467057677829942567995829176094363422989940550090265844732485552933912014788598077211352107283729326799302096946219848423831254063659389670820185759789703617887656887720720456617433606095460034986062808999054265757119792775637473612176625123075028840869023261016317093362099579693300797047182855080709352518066242219718027475474083876617558435637653753724009438328047804415593358075927257876688492689632917735626190813085265508244610826035681408408620820299810875620947111230860037816174849294873498578280718542170433123984523121474512412960433603387623595950351273759966736230832859465128758487469240628240183536255241797932523126015712326623251271989259986513717045708952650652083411945420409444148583831146141806872798134022946844154592695241683114532436930077219536459913513180029179166705548109893129215510153551557437589219404240421243775394029931561771051860174527280862923005302791391728499309828937458310382787533854488228532367244672728837893106201034141196033006654781098354973171858576236842776765328933014111662576763199945462163929996590722227822167841031921726613963172577795724578864868545340821982147708668088818275287918048310848179862304937728606411811578552255594819915855134232239409566567507791070498988663945935942952615088944720252854085518248617354445286174820115297493079601539718588961012985751334274759887241933919907636689128561009122811956725457950739646295036620839926264887441561475593825195727139215620797305210841533583894359819022624089536533714433761502454415571860409536850307359273817994114622959569782200940021771528011497988244323846128606185858465629522258513312424219132653992495242563959466819098207510999134278527911772728176475125934487247956068594047035304821035966087876876247664435474177086751325438563138276384746257838357578670507081932281407504878926610502025479709466751282485501761832025640480714340553428786804199483569894196026504410867981460769019041867276906738512495473121553612650138430241157425793742113941524661394539149291710726809986200962902962638453569095556413766242968665658957773294473491563436330617118662535098724991730998301195937351921697409464763566473959184443719058671646268121096889269784229721569847936053371290923872128480809445017457228604958024755417920347406007508268762630024404854193579096401425017726403426429941321624885140281159875611335539407614922818694199291913234493489966684350303770985422764927702908821860617609194412836809453289864191608039085868292851550426610605581556518395704800572740204343267047342142008358247509967518368304653172754298582845445318232144931113600319178328394102588165219759442139443429084502381022267257686268470494071675216303826718757458447748219910114148368305409400742071590051283368721203076502455441158492827842520093944026928366400907393012437011726682800371058260764601121459164258634017090123160260005805636059059207435279694764385396257225622173558351908748620828030105486908183748146315909998759684613755624077972070102793344684749343905944178113942299058499590335309061698277239960856475714814482674059568593189510751812553240962311319497616573408791928179726877592916566828557895594212551259828345475966150019568022716283041630536604783509723059495933061231537759177542817287892735110963943366757569357476064622286590063401731415086231074713698120648735796396010428096980329535533099795499357702886021856892807447013125477928118586143438828331536751608849392553131600191308740017570253149027677748383558916424384841945944988811708372612584981901565332098239070197983582036455283704425532433730359823932451430392483675876707149842591865201368728025789787894565831144854007742764550959796828377756447655302579490418989407574383138472379188131282986626264470976244830082174797820381805962021965637996254415371976954710541895880071821657042283765818004743792203913349073933500755410315011340073499735652740050322901681630168948022182542155174603314726241561760256271222151245575674648542695893593027281039625541555352356554210921415350388860265475874561346907293796448713019541297036906988189914393533598011775806237832601903129719903999533163252962680892985857251893735497504540501976091395047352248181881113206284749545867257251580380416637216182588208027211384082488860353823015872076328285287744681827304601571703415075913350561227642589455063680471710495343712250942367955564219832744029536888872786453059535961090655686583864300856558457815437975152434167318524029705243848594751053010049771366303869962488790365651491694293063284635023014297434479573732548490720202688040015279285497985344251253476922368648780406625268599160888678939474429204265489552802946801073400318408387104131136931976357798329964659034523314674321457544029015343506052363052209428119872123300797795145333041236042490406941913061888172431123996530023419113570064903260503587919613007655495118018679207473318405180310922656145925980022518800066114519246326708400411509570603816235756772750284863596465300946466295080980248809168658337318875709347849009398441887222343372842126930213891266029700100160031121776411626157810051670271840724571641743366871970874243018085435211695658348344225096864582026080025187409991632509353846223588185078241067103081733270104625075751708738541043602155808368778978290667139069246108740558103073992697757041032923849228521608406108140926332913144763444030644469320007528371690856864892542595942401683384828728821831830574403762195304160928339593607262919827884990209783077908155685415936037559730707462986359022238100586902944481387914043019654816933246883148188479473747401687507301133971258672844016377924944549195268568154744640888598522687030387766631412651994470631996335207458139996142056045141788012948984838013109496414577782191884086714476409261552054681357283293015816762495172582423411873343383553945045492246606820038753704454494487878809346097006983878765500216396198813808915365387005304188010532998957545068012750281572064929636939718521404536121402590137508472808790384135921940341059259085590889807290256826587669773715789428932502986242071311764296855107390178303505282523894031409630277274046112042080038746518516335263406812450018881412994198504666504924529179048345332224602351134489430929412988794497861116613867792636310453593229965262515280350908767556255728343963660430734561637867144592068012563839731593407940654614475772658613604955713005444499212345776094570463103530184724012855202412463933571304000230121292735565495438797430786470362773661520887138510119176138743312461255323704897426316658788807663789817269300116401479168251145712041604781145117033880407091300083649726686379271033246922682530858221296310735819232447543549203637656067424239029550657707381520100838672686140303308563178641779264017823466969097782326975140924973347807901879403444005570232209556429496308109860452864147422666024423119270694968503885429118918069155889455473732952115299807171290929254335479644451816344796885733617767562766115069974344987873622113261489490390666765490815194774124481348594713182960277763761880672437458065910805144580369886855806298890833166559076486045784881231730380122208176238088107367634521126492409140773770386823340388354614425517149048294598007561953230821484612384801035607715814903573250332681524675877211419688073618197932816211831182803559216894370019493884972293593072526109852680231134044307518491473758026746601197898639053893775188646590737024357523822997770168631591695078759258564537447228719968374252242248486354950370537900614384844096602131086289285026743488888519625332458683709747580378301782607165104619683356579519762328331613664588043257519624443255117096591802073060276197941412589009225314893320182553138214017198241971914929844254669161124020527668841267606421020265310241828545699617078437473164458557652544019036272695665263621121815498831150944393920533767160503929352013387916254455223135488021002261321224774129313608195961873391408289425264704975999787955397854383663459986333907189549144263679065663622750373809303089267917901355704865497793500419951176320034859521612629427552525401427044053429500049608421596212071204364058300691995427570363996996348740065966736299517754463194536449171681319690174960786342464129453105668690124782922409686881399770202923188310890477990298795803216331300512492863049445426443729187585696674443937191980498288254718958045922917604834052291493480118524134638439310420139348710430811258213006570099292352637488384868678085664120284147574114281728871771095798222235192230352690235521072236249313514308249687567214590632172382934635961222196010080177529583130081412792640204870706192254034433037752488270189166936308978358670578746287743884890025647213329706068874339722588390307929602698532647302217267969432032056798363510709260354469969656376313817224050680769249109615151960107701554177564996757710974680012532183259176524472610920500525086726431581062310802396488571818587182061674278963978733547080216155345379007144430453569479962055357697421893329925891504439723948956961515282313206459754867624838509898929055921938315873045321217985220601041116415970257380278466681289040790373100393270196279019961251154430882007911069881928476557866190859757570699193938940088354380788454233667834004987014406465057898854957507986684887749936678503769766805564517499587168036142906618266371170483279850879255975998553148570066598545954581793629802411118065351757118441022432729982290495307000040628362306098911971787937247780804133606716845998685155705558539877639412924237402379235424516192622479422293901201013639959217245132947539874817180122497355040823390574445648913811942232579073788722664488527673095506087826707022448623114758942296667256425069556847143687867614389602015242536007367217449736841596725850882196521899316850334042332028653126772569661631318693798935275101035379180376930655993678267302664127953971422258559267405015378036446902730537704851439201342396181091677248441423357519524410566133809534257472273375526167525885892107198001550719932213645746925038260408428530507104024436270988210095760572630411261526276375983664625496185574772657089490952283577028121735080126308586989292190199037968898013658004437310658846928737587314149387657613234924889548334033418471774573218049479203607300352516472919394119413289678670077010954746495698202778998493336185207387807664131975914526642216004196572126731814890805014513620849821879330770801677104142488210403618098613185679475942676941330422167629206219976827506216760189449714522731298559593780740727722314502761009734235497489357509707719557355464157450139568541098229652133369107334641570823469521901134334278385910407082823739953992249523970030841319173666746788109478957314154737174607473441645116489909341677845090875322497567797128956288581187685131074357465436845171990633188460486355774500049482138255787091227311144780382537661849057244089805850974008815356261402597497879537385543005831473889658191694198948223480219363091521834354363127871867206183942798760742316273744388476986171385422302408835866251873758463952824621809245240972207509517369737369194773253508279225852723540074211800487319020064777106301763208865006981151674204043106343253033951012555250041928421892099318912487585361490392324916513965301067065000912480750675433175179532083502965215971192682612043448038923469454428506333673662781138785960152773757186893041613492998198993784259092951443301402885270752776721727674268272499024966390541195146822970055772717071825939062445907067049095038124908672766593505260376536748461659158343749015920829396736541750996158059803763234275172923426106976763335527470487267671211111734906318315551246550642423250193819493320755112006353744933494815652365219931686501768562801032350220066007799061582693549802437469609297529564844145011471775312475763991567728167076729390368247555801901329201983044174873856174801708925903925488867891270504150497694143247172404502303645068287529235163714899646716817829728711125932992696094973442981902468159672421335189972798682866576382657385223599075091071971781002364802117714808349923975443374486675783888787980213477194616821950041967810688211749345831756104684045786206427117530214274400736225381964620081415907454615368500716970435194140004155548229297192183134252380272477534287829256041405067413550677924168515865684838849603734378469733670330445860930161077517262748306888212612101655855527396582026572325471506735039658352028727927328012465353228143288355550791558802985677063681584828292828234746461634815684901052489398028940575180689657371673671422378438545586981248381551338841241911127150272382820628988602807418375194691013823323899054113928371469080192252115708616580771031411490221698771090522279466053809605124666365142670524016493526239352756810981647365944369579005317176488463068320189714244679051388931671821473205527509285716856460656586979515554344305122875105269618812614602224056239724907703660654036171931258860586275547366008362859641633685687180652959455564803206474166646309157961908159568961084063431397534138113035720713444897534125272685615518636120710821159361769447208282121646586020027964057726736208542088403233856493282705179379762580259859149655074908049339465429991721551413810083281678115937474050502798205853535794543686986537928045715116958759721756220440444985611403309082375288450735685276735943822237676824426989502209107608844624330046957204425424339040942263140814361713888804973612886253266414059340494296543954239900996834994015303556261593650216696505453055732138620985071501933804218878046422150620919006785594145605220279093932787798272344170312492491468268491794873166278932427754537196240565934423633267864568480988403828263725216279706571466369060869507511142541714969444802695787933872734274486495159347606565125956883227080471659239771281928748839158177104228201102599155176474168297183686005928331557450341269752164104133907724423472203508316847529694932961082793085529743433214230191238465027032764699706859407493971390292258550004750414430513450556814252417619554982691433149035686890224015145542886783800204282526790383254392472149422498699908900599723217343154995509773775863844080601996750833490463110385453682969489975106005642242217413216846799774477460213828086823648754304035761323703711970699346097576777195058006370650686900088412303201623273666879358567148767225989740469587043270147077679491674770520126334066012874821169365708904975777000391819133164624867230721470267603811155672582559479462653873908369323673906341116276633024577721280316689878712040641923124397499287626936161266306179465545651941460322486852208920338195400406758446336119838114696016063413978391275569675290422164054532437339785718935123016141129342365493701869598146442197609076192796936961387559285830437856520573219436351865943285037052870465308695972850339897362510845125040118205107253865155253956076849486692033706773089289264880941937613387178588537162609102808694498898356861875331963531467101306784511224954995620523723677265368969871306418584571331912725040681422433772103027653600839707696133208147230424034338275429593327439582162670848444071800129391308652929152669856034784029374298244709456294348114121518625700316825206056053835610470224979664455135809947162256921926084656418445293719898067528145127418039011593493113245904583968390292709492949536750284668352778288938628267179414705173688381019652067042052761767910994346629484944856406027341274916730821248207484522040275669298895602325565278659457507359130961716105098131260390535473492934762870838740777164948206568217904838979057615869137693106418319393044313839459677178726075766078418753981241128494639718686482768690646189990973819677211244942022290567294278770727587950378343449020619221677475223594462946002133272192219225759865254556358660208348888393377871485226566620260938076585425697052915556485876235651452465073208188910845768998455949806154972047854402455966450415189996071612708370940474975571556558165768221248590989391696011800662287077204637166167489496272288450852263754019825423214974781362424171420695514009617142800946341834042240162975371266013392525698049311978916197134846634229427716626721680719637515089049757435675903328866298073725984330809616650364005290301454264851076762812555798436480052622424966892748895357586332075539728741117982028314639735797532776189208251375297977028871066819947032054081054323319429987428095541382006494230235903655022473521798895982090913295677366555222602045712153869195299124928785351817068857956710316493302782787717974328971087944420492804209354990207714330641176426087045422459811859401564965899515867383902891681162335670127053462588932035353455119832019443228055882908206986542189650182348355942398342358571099566225570625345301403364519511204470718636138825117355985892763288225535379200643321423959249467353319663142408388721064961527913470037180976943272076689568037140662701824793353494172840258394046960971498340147005506617238431253150471509375541471909042931405356060651129445053800031552956716863071946264566168274933760987768022615987919330204003156487810043991460662830835274392280563266185089333312730690784373261612562483731530238466070476698580249805474245893850448245226065857652972820232655557490208723881232396496082782761500293977867205240481941564714067653824413156500660239696724702397732611690891475616398658844150737587848255134136682309009157641382608122300166046014238886239358580925959661051996413561377463272942136081843355158890459803976744028333344629321666656673640786596321169068088815638770380167107114141540794976343186434636088016048757029374288306956545658320992357185659541446131387910350240246544568542212187467376010980701868643016202920890463360789898887084680678414044926213675312561381225070115755361537540263866151734709797196151346135740021232063735327137160309499535036808840075765306646777799246943968118227142199866388313354355961260108147786072141896103170961975649778093192833063217259568110331249307150307288941757591337707901952463418830108220564840898674145220347978165798123880126269525569304244416338137854674127285616006484665582785209649100016265804573930664660008589164050089063436399788451145964174404601346662003804271430408262044523931874275780587792447766233542716371816418873859499011312744524902602130643160411799311006548433924627239508795270617553406041883296672149827143917320406541190243191245371919190000657324358712406078007734785652220601436367807397178976222068594297565941104957673193991534501516631458340586007272861583198292890295210733989687245639816286575032755212663635597362160510275980918010630080589421625680608693801682030395121352627973667438313538739612365869140211772586978134114664265153294205705158151943255758452156362777264925924866357731924401651429016266157418503602376297912942694018657808826071689099943784450183757808947407250288732750803215959175676782580189637381341978438418764509514441276302744434825238090213445953118201319806045826241061466957040285665939465587100379632883640965941879991853250756430541104354189099250040365968802195659993610351317489235060038657796639969359501284870335033923846653405656465861249167522918486377082943678147767402004529298866480540804565214804615956564462155304712869584074172243936595740028327825685406926974248901315388764776757627994363843741326779130308295864104643270767885605472110713444874125690397111997228757316609822569901652491716866696105448685431006984926592086105519910955251296557220368787974484621342240451693165654955664821524296270468017048847621149770613332205580223849905747528451565271606229495735940964699266217837745601776826174458003205666534494315204107865322115195006482208416767241152412578407494409445738928772065637162479346486845916204577706306053513593962877906474929084197723346201220481464623085359209690966951065535900246571405132166906314074745665152842861463800419521119863329408037288991033924832790731790860840495720780954813885376929888442346914499166794582615551420574192727678026562877518648195460903270620540000580455028115868860675329818548194883600763966432223430463897441053378829188172828788380497865343288276938826945693512266202155683143181373249852617770648734873493129933775871883535453912247269126501524974554121572137619236464226114370931070921342936787415511782134390408348094884292828826258853960752960380301533102537879817557352177614192148080282027245836841770075899681170442947975543951012858838027667660155791983636118311403665405737583077807135627091907044728449729199361940691438785215042524624148044540416887897748731221648383665341415600941236887499765918673938903315590960657253920828501783822016475664444269419425164878123149075823484376720283483129913843508792601191659766012510182558302446009441153086013042437891965867937117099858661550536743544341032036207100491930051744766291399933219007945381122653530892577886499553304606007401237096834930210820692099898438515788447684515031602297549766122124471151872860196677182711481732647107018613399848293419627232620390590762041868277224251052133240627511481174801678810187847083561492319464651037974671121055254480597321106657693944034753589107662500326638427762536061596640295574317804480306726572967024657634034873836825293966526479622823080698718235821257347683474704394679421489024801796996563463660302097029814384392890189583354593636090876112003282541496851608413523097113839131506042873630659541104854090080375751438491708240970960775029713827158774151934420110353831502461958423744344447116800664656072176361110132878800986385773436716643866277367749958411247994855867566434057948740036167851906085538810410242416593509828679798453470827387282223037489435897764989340780906955137796200632077042365054115275390410855337047898441363499774683359540973049884209955252688817310191808743445179394618439124074804067611903871284092947585219248924739031653475895832843057059505411715457690262860253459063527826137627996968171716273238156564222336379582988589245832733603722569216637989778502847845729363132752125297506068946454394473183718178010900724975011855282526658467134779393086334122318810268617700489758148369851619393134909951896257543483369347122184428238790500091449514395237634648606829743710490000583520274816589636053923261056235369853778815930772039725504240191980514115153293503985625363566698264094086647591695069115689052349663026433798109006454656596020983792759067987530908264735910514506566028185332202253550000417206401612239964442024006141797019071813179901583229395124629121584745260059754160785968814517721156543705011959895499101221661284969082979594527186189088947896301540332278496292849403826518685332977515321730463239221538739607606247207892408026063683320264495877276558195760125815082113285690669125726495107562427765417526014267358478415738095695713617336150250708506251464435228852183677638644141736047985509943500422387260835705594206185981678055225564313822984141045681469756759848773890805989633051701442570357815295882380877026011575321925163103160341592634122589277816667001016027665288895447491676546417488470706307238322613406201697983655165730798525056092254566917083718067601757917204555716859011729446845939575172870651173754272232139466383464331553460578267889133207089544920538143642829351146247393894631495770897983056268498013106717101634139406954518619512338444088562818147895507828802804334177244440532247673017721911414338495550013581779054488925336048859807865418587573629470186035383743908208492441402038436926346404191941148986139128309113160734186018351207789503253271718469255594362308024275745930750331391733027885166388657815485044702417990415540459180811619677903038645388352259744243055901038016766001000274605778059793852179164593503560055487406959721099858813123665717818555628210112020739658932229782417135044778450852380065835319379648592997930712436937889048722529641272411509035592109709122184754160641483877096943440836496858531413728524787270717811497429738243433147049688800991486449482882261384530313511157409129134527897943124425989632897642909563391672851192551573467755686767924981458581513261412833272880661199302927871527064498624479473741137158394293034105266577409978126729424146085251093376501821127509486428456640196338940497955013964804034849550170017442031559708385256874868833368017434742692672809835007111322775972248849554781671641642098445021658122131126269496053088125170601910358178981610477237450556652306274472488561690529053003878717999669739991123790272930858545742912835557473079117768202703780016695359697885464528503031779202681767296352374325569474866319721581741796981582112582669343855281352317112303110154826668892590913458376897019273684291099762070918031934522436380050661717170250588523837630565720252477197387119628500817052524215036741037677114038150089504271844143935291975338900274955753480742311178501920752064028051154150378078249373586553770894213203829865758417560749781813751990026096296044999722577158838418213158037194126947474490905075089046741884072510336171932317359939015151918272761724579559781933410396108176374301153398494302260795646338819374983418575810224454707358067351653093677838245646949731553731711435138969776802384934694370712716697733927123177784902043363914427928976712270951133419561715666308824594093681371756829712634703348922049101162599106353650788739127371474323176842859160985783411809305605907625503120041489176338729213788498244060639673629308081837010309454975463681945386060827402804954106019416280903782158942019541387031380467665764038340956503440525550716959852494484273063729395320646377322336595199758084240526564295171480758213925134197024508478401074282825975329892819511764329664521817448485044050309274795079342238414824854771515318746688689634855801207888420341210342142327654802071574978593068379017629196619595367672425084421268190457284944260180392330854842938932470987425181108861195979441752953896608868538292803183196398269945513799994276188965235048457037062476399201135802688610182739495602614677745850985806963495910159449434508819714594515381712513645335209914157771380965983216149868044508798490783927960362870619790596010278643198913183089841576083777338995312826186642902068770662348839574377249647867624811349638500396237744615532446121888412955260152619909401282317333816346694903281166129238553694530515745050519252228505849977000023870528799193023022859193921597005387015532828911939869591653556860724403319710252844279704332005798366825303039572590711279018264062846053149427715021852356604461113628216513635651713633005950011929196458013697800837882352146048936556360468450136505966794309077143993055200505253502868175707689445949568410320217920831403936552631861764585239994936900485692048401135893723330065174414638062954411918932772895605011943307011411772887675981230031770076269394999457401577066575788174129744202099567439080207045236802085003141428086847432254645151252287812301504590630945102211370674143622504662530683525193122497209605576019642939106671713876377398563119936583256688821365580732263196493022699857582029816641767777766931700128799912527892732037172408427551480158491260397388601773452560556382214969528455026036811344367246553829539161619794394251013708002020583258845272971350903424411282653658610624565744241236543046278889291145028056379153318282646728075112581419949365526898543544013619447233265748800880595529314993014769487100677729008700079627243741908075183567721541558858083895706801535408409343294882463531288938604782606231472630375425358297754046389882091297080642767244375465194232942701082826356233162971791832413572695925637417614798866003124118356233588950041691429081963086581049333534163889343536064377114170225610234328809865423941175083187921334671416212845019863068674014019869250015714151814573993430137459583830767930749463625261041170996634070282692312374870378798066800985601642745732373210781535921205358155825276733517614542349516022583812801420297349548517470111871123137720455466173266435555008634455675957655984611889024188302154277243611322889071110283970778364011978001728784658745674896481975858515499941543937020974477755774758302214138613086823352354648025625492112959783190450577582115526325033884528123621201138906236238030074534122578554959961346386116213992680893681916853217653551989181446528579366668048805152758856562664887894202498824806045488129533948773252655198735232686550112687639171273903933252598827920668818549886745609194902375546214249774239593622424073449349530474185500152295930994197012923999010237375766631252011230513034371741580222063173288129301856205600505005985191266500803857594266250178085946537424571821628497749666937405430519583654095512427126283785406024627222509140558446319836540308821233739809754343695529175469587200011942685511774812736696688066244831204199300570250366618549677617024695869554241577322956103053126375529970792422400104762562247324434668364132154202318361412867754341825045508001116086493808141953849166225272581628147994082106916891756815236996972417782991452174210841618271882760890000274083807889688263973541725875777623999195225939636199426785536479140013241480784316143675970669871372857660987098306803464539870786562928672539120006437706887581631035732170664935410481424496513987086884955303320223973018016558772028830161450788861410591534182137147243367568654083208853094989721252169258374488147249152203810271186054877945250618203160372567795882645615475100468111462841291332829503119364615726759644979557280489021299071665256139681781042696986927884179379899169038471127902442543042658058204408353334346865764941935837007732082073625964927109361079507872026968985128347803391231328022117010979356619673798651539568818505736513690666110561666770356798417623956591783294067865369729593774323909769453159127145075449011801585653429949588660195135807549726823859393861432209537417698009714402499541945636247329839566082043848563264678601599888018433561652161735832427676110621708917247844916666328080525199921496434618599328776223977764947765006484535910411818624241359538651995615486699182353581440175630690934870054211473178832749216440084394764678979545557364710648401329221729894356156959176585249960566228383609195100459320446458770356525905033654453300109141655978093267075020975188391989847957292141715300338168646789816973612300231585401142698179585107896361943872537626928496882368764233160836047367498527326463139646361826300034880623921163787146652392617177838963123140013458879279249234889525879517471844609807841630337220191833927321274888826803776846660317767635535140864473479321002694782551597669710158139219328787647274302228630062296269921538304514874617506150007195768334034876853961678889043305502799735790747844463179502164332074789487470478192234374096623391475820258877026122880040786024080931992069667364008716078195436704363023623659381988169162989267314532866031838210007003937514537833664630293785242521346042679171564657092443273195150668266124362910293237137278336005171144985860136129548097715501463782085084731567480483636680650403549581835274985893629426888959244896842645849153933507759116713989509670561656252485668839854760144413407466686573437753941212135844373667007080907513267200788407150709913539523987435155510454987980212837787546370360147501623135249540278724473303310877231255207304849447018610401224811410224559309485305726138938401305933213692319204947075902277728414430461164781861537098374897250574691243777404343165384682271113299498020956335453086979719558445384424296477876920688243650256596912777391917482727817286964022769449511988777985356720807084548516835699731163574869166883414357462932363438470955762750444086586949072758824270156943333506065552776916016696890641028513040435295686329286861404343238242844570828030595980646717612394908605652535646439917198842600215486290847694760897845337952541013801988582500429429268070781371263086218227299171585340672331858688961660948114790016492916421106648619328095622386847783184289209211067917892157734987859181341828879524713262577726872061995256322050578918211541196907207865450453778295757713684130142587766587361811622680808511589369849049305748301177623414665984200183997466948397460165211316168369714340026763468739575773785095823652438143049569205189904659389281119638960008716507112855772165961868707564560678876491412829725936613504955031838125735330539885978439200539210499819845886285477631873777794328049578622683747753668157704197335105170702708790218235171278787347710262102702328854529995611992135669541252180350086014690714133426521530758312384904044561350034555041757400946737603318362313086017112817945932974314642627262897548406145692310381391687648905943905987146030800292934166425065426358457626576184942002538086158558759819821221765291514192894738578866448943835117652968422728418055393048674327469400797098474450200546345897968883829713243245858286168155297178522850067816136540107943289211419326901144064977959074097892982059176991881545998706514178995005165606904120003686280835319575503062527341880230750404156088038828944944310227357148582433059012121362708281721909545638781308708142358311523229881286816017720222932932774439839159656116975464759302272499014848870491671769660723921135505501086878507701629640279952577894821607643715385824872224382363198994822064935513176943028050573067045395268201259457479070303963348068768423578706210423250840351455870818731851242878492943481893910206406907980147991741874055600312709671553691212525560580596055853968314016602584611924301203337332289767831167374209081753144491591692601675464202077081148977461299521402638913210752500120909298886970797975276379824623894709611895630136937788045166912825178820011324275846402571069835439053929075011666587604092247727745767474488828388288778055122613678653745188322140343974513548734042986758081823067743699884069122386853030634911077218530354170550240436337806324302177372025422420032551388682872023572687736573970087831111140764798032472084767631621807180117187780275985307228733721297655904336044144356464394772144351203881809677779635794170005176627967297442688257371591708522998225514127711689118334301430981500931754860774663528677135283167582182449373264652744766685912290661585782050921263873939253720170094015604619700050209436782831048822129200545413511287944852359997157902904476926665925241088183744248525459062658406463657820338050542328122533034147799128829667059824975981570438523387440035624554021672751862387801719492681732457239782650944426386449192575347491881735988702813553210324778936122005056264082410125427628231121438082820886846882929772730738637468543197620336171677113737863079551086646000356262091182930630162965385247778276261796219312030175699887777747767681635131925539420308075685289634587166196171829555915383464772662663302071581588890306708537499213637936853625961745747348141687355489897920904412484905127629070983495219946361008585099234617992330440110044196197999967879862992833526642129984105225181138301332448874088987582897574120560082371622246643238321710953722141614841423224469220212660189895130520860135874276654856088641689703193656275189302306405757437035627148422926193691016937322781024255280508251695702073072293357763743529402145065733368648230037344559484223976406852719376935482791530665005194600865353431176625824719597646688086613474301791476149502694130755520813014815072359654260322355696886201606490472465168417085605765227407814322384038783804818069219898500653680899221144745332709089619033873886695425008794042393502529705546354239883507120008360976331158043252909738181264688655154145602493340041422966763051957129820847054179989043945498278788009670440882662162719170903727628876338229445799542549834778575174942347467405946273300962998775997163231509550820121613426239809380860548195868203648197733575462671252103219554282752969398800167486073923753423652151272017872488177957062979685176749961401467845192200740834105421615442308314606712620207711770043955305555875810931520774448387739093903901658040988260188793106710358924175513529769035921876464911710935767961047456253756998295771110407540351546310216581264785562937108837363941609105813367888590458937383400395749663291720586658283699245735034824606773383032213916426557337099163164550472487222660253175467159111443585772371224080944069636094380033178004276082965976387018583537971138336844444771264753169451657001589638886827754114681346990601818263120650971912301940013881194018835540774893462151466727180746134408137406374796243245583763764668983327357519207544712045091812955932891585459496668226385477922301277764289814054277589550739300976782267688675487024459582463046795287863244775894686087329322604687649573231191324695850017343901595665392632521246422514755461104564243786935351919401900190719149076760270588233179307189901256468753283441016664753167557572959759224541262240428881734522907508071827122112908855837632794325768266507706390095065795567860023340857019437138531446702082713799436755998229029907439393184074908990275431253169507922608362758601149551035612701135548421894806706709864798182209416840862337217994942889207774595239009135079681413733227969871398264954453966939955712370898727618275358331596475637440247007936144180579687904135550220379471972894946407917360115253507785961705417567058460179149559197415194550972433683369164236670722257204421862520924122509470456794312254534105066620226921715377554649420801323169255420484410214576519899610461650001074485650732334206550172641097325715746197577971351074649982319714735487540442211320415000552525283592192732250011410307366220686522407634674403054901569355533867018258349037006507044295480764416011763371574192141390632447204057496755251604800754870764221437157409510118167610751455974289093179126042386293602211544345043227148307241152401241521535438232665809761204696202939189862374803139625329659915886928392956546040139987811786026149492090023933237748801436058378021195237595301238004683865996371728712994898741049747096790966848920210144731588850685312214105632996446638103672158231759581347678499928505955098774465297200967794203298675275954587957240843728428495509020316521912065083656286215047848833455619584507982914443486641463211813089122699934643951424930468189657749800446458852099516187915799942010212379743455403451890826883340125106340998950557999632203255072675557294857086406012061421397590425818957222955098258375804174892461981809892670371197467057124995690072971139213468563229098501123527794556154793883879545183139019294792418832242630761558551237820027766780720160171523999760270987238957173429086364823669447287664022972915681640990140220163200266438339240008799406005775705235133294672129514578111271909074729636348834897481868748917587914474995482296047311766930477728494728616609990750022520098323890200760700339458067925246456128597670947058748357746138449037733629660900952265756547070650236938680853080507841276420692427720015829653021655207750743223887104021552124322492966760491028819349949065485833677674445993272490218475766307249172038217108839522481932540541721345158398397546588744072528709986322712016479202987119905857941898123942119333416468620223106174783436399297893816081160567839000904474546355291687966409732640707400691158411864257499122823104371442210432919472661632946835062607882641469993556371474770443411411950948442639983565672481660281866617340182686015000567791321946831153979848425866521845437043635905046210048401168833008177273541166568693686300855791886962905924608970348034861505405157035040383687454323767450543982122053254601781011581764129129227050832557577141803840923119039491602309177739542883854267749219815636457794946945247313868662596823890009993439477073645044688176911859063687340014519067239314724725087634387588679396029469370395875404032539711923436549625664774861023529359626783624066213957044271624609643102108513450408199070371854535572443048676790562195444987077343642149539764760070816311877377325164488997168235841485655483701109197124645713638794232629737108987702262206905384915641986649932919705907226699279102521519914402487119267098146605616852502426320222651962652731322613119040434436501766408802446081942433608074184520841058862932429615140014379933101362261290992202600301724991056950973789800436489564412865403772532410717053711806025556967108765739355028297465511161846542629461703186413780380793791582014584691952338820283908428920550058660812681364497710712758237277977785860941147603555465312838831376333533291142266586366913194852159236854735251347531525682947919343878112526863796239119959131345970584237296611274588441018659845215896258513711303711788659662626486498126217904794749558161245242655077564019982238802252555446358377991603912216544018436041801651282497119186511596099089496434851757410245729479837053224185606806925715564462290932012323776397620635534745966851260148841507228542493938083534733877396340190102905238763338507034250566326276468328294715988093742658194967690730523014967667317442366409862654129426763098508928498907979288079978550945702902538400404289053697950952514763121721992196454658284528357244125454176955759065863370971923527429311544782916729887958766158026270720858229044796521469697209843915333988798834686177556531631174838280549118396650990591102990793034355705063479906116077155984333970934530417758432683718229821614689488240454274593585647654055081089845639061254303143728487665606381357762933785927025074200751994363496043884204676195375811919973675440543743426274801750654961657677591246896438869601885241071200512217289256655530944487518768297023140606662663586065574411664385822425131283789877284968785100389134537134177820413324540810204106510399128643905298225226592771605981169276003053440849585774600971544576333951912030350319973511658208251769532282308867023629981170472512336893694597810247925638964446881352148805600979328770987339650891396463098540854667677874535127453044953571242672763736411721876161356364770453831997501128337279118883442142835553967382555258333679428412519531056333148621170151089207698137860319191203683402930318853024848321850324365188005230735464625052141595113597630242944424006009165007335924911009835702535364622933820776952762013180863344904098033263791182801318194430816624836720981825538648740169875924153081802520155416475125873563311542806659980415502017180916009932744864237362305555806430926951919473542296868993119171332691341522870285682651323542794488407385042545435960066302989013267324470724976624154396009444964343279580731135462895560195430710848613836204553160824081739969857272824821765194757703152057251065907719755874232294012168107685768453716992681033798812292548508653576320414027814239796108153771863268107736947318251477368545413635147522716832898184932640681833608319740645210331664822459803241329343253977993849652205496139063164310577649621508276730352595505105670918187764298867507817119148719083028796086169650431335833907512768672095187462853454752599811967951159119292342048023028960734500713646233162737614584921012535448708750202970309077953469280424210536891898887001924200836680887117974001478355299631291418261175985907804366298864673654904558501658009693656612117873055893699917777259082191605804926829872497183162399875882192947030074846322527715823499145225540894438646017687562504149778803724364070666721467043352729687060977699409010472887530841007270450734664467340395441964413936689423465977790160598407193516277898232253638956577798227091969813141274689210361604982809691574250704001147448548873238427503438002688160137301166890129992543168679931352687567439474607181862492371662515543968046522068296491489760642503610386015060525177288181629532592259515557734584547115807756875761209865287922493635697506734078610059775533593334653605317450601309220840821330884376462794243930177509196500224802743011012555566814350069812633829654737341795547980143448589242850281552441209880990664650663445962359404734618291234583913951179653510293808011836688431634969162023692824011996324735221424579777827198347853090774082332445423798796615264129064333098362894389456051386813728277054271651452333699848001984721296344877609276200804734182536205697795202424334292896838339480189180056303990543668204347660770387069376877428202370706269671135964244429282754572213717078858908705691630224595474222769402083527067629363913524474534498058322672957918895056001744592619169089077885061160966114928192483227293061511151348065174346017895171610757363318295867141006714136908591408902417918955412144277114741660758277448654762099936996229948837615954899759371086543564768532892456847822368611723091577387503984664993098891517485645726023467602814946992294650444157089412553917688630623661018351526091040271814089910045345063986082125305234923943141528693963201414412654796731075371701623673880562432485982345109781472135006434168681368464365705628033296103702651710868353900114265502141246986695524747459525405672110413944367664947664754297559580322629646304356579836872558702838505079823306504657372349606131909588430415222947538091460877715434245982309060648250558413366633908484658911518129771894385355128945397376735242246410207867078845717168403929387469214703580443393476794327114099324899845944517780078331994395161112623495532065870237856397547386838562743271410353811901059766548925157869531712800248286076559856595527017294649535841773548094162772347494384015247625634155294303030284090678693944298670014056881849893819576661691839122399764887534651281330127323877511098349489725205718792127777913378456453105112490167064303074299940749481216360017150290261146474805821621422950107468100035239148411218047914295636987702878788249769546763260918615096204250424497146965048321179602185109158814662101028148421563636188176420928542359800362116194441369798956978143136367877946691468557729291989536622750777479821488918350075635159233328561718427039871801374928909135188832605439054188407492864832368449300619167765094855891331102953225934997512939427021735488262164407918722017349951467927257846834097390135144860913660357778798287464688718382116357753118142377803701223428770965994993125726031280927533527179185218947008700785091332351735592724300844813649995541303132045871843928694696623444489860693491611150134737463263041882193952943167125598773243935990839909511483696690920505254960192610087543917950523438588664998911397077643391666577110868672298238996573775058580527308046570979208939646631879131623208258740646871018047388799408510715313970274474433287321113330360278440088888608461934970310601537594268097870439657493641821441638687403966050798558600230595494732328664752354529940780024955290259757444991392840939021423933337491790591780110852795952431468393375320067537055022126498156862626434210018469819171784941599717603018573222429842899226971621013944911743995323917507580904467499163202401228983922566428371491433433690558509269409753721694761912964461382566460442364375802039315659855874984484799703500878503109737072146581478593460730213623930159064174281884004747656361476475927427349927633935581372990746295530746516976273259947221222360597569076090699409509340463386480027088884841552427012530740395902486649425582767674513759234672227004604122489580639469698428364834765920621476441421861258109838744972822010379623620533207459679219955899615561498446701202899673970530104116847530313430080819974428534264962358197555779776179098882950751005917683258406777485500286802800536621187205151187420358306414542441978009054238559378800298174195375639201000390685468529172671849094012553249172937318272546218096149916343438832059051238987376798757513959892647133672146488528233601807646588510219407570906526379433527038801754822285908569717599522035218810078886839069269632572415811296960246913104364979518867611895670027727518860302492598220524313815814331989635995419350469605884227617634283529230740456973510734420373767167095726981396166761973055884923695866440626162522032982206095710960761174058222465802215444940817586137439339659210358877700642621244754060637059880765966383676060213667117233387313379091702518994624984468945794165380380467548014160340151367323272450280709574218875055878862696992125873285449516334655069846784269311381126567154850968230286869968210206692308392019326390793382191088259342148771440425734155799859009288354168831762036084534152377135767039730630190713204768060065868742272912004274852712877957169863879479352926204121820711967360247820761643679336473024550399433185748643741621543917836687382029382254673573277285939518512969525018280895658107073707148902536034060469667032547756248577038347409718070283757191124522647522022356867818761825060083537359889907965365891681323301013926167549249141488867633621399447564472281254107198970571955632962361950748965511355804785088805604955303034688870779186692601536551035489776732128759590545223249464852287869897768684620791609766758927294494221367399942541515834878349429572717419108845053198387861467125497577287273357705830826788077687214397661287370022088483729679110507510218611630276569206835563876814670763946556993385599605898752997425720937211057321957878642143323003507634402487536726316058504233130747035492814531543168201545552536762289502821055137481851603934871075117339688391716908170155944032789689474310242325035253312186038644929367289675646191974731981841079202425637159797474404278399432684977678687798911403119236978260596378771007136516902478559964851765391649137841690688401845985241692024629634121823607233126276146538247946967662917587933268923970339937526089144450690207855989081214120986843859788733239939400920672829472285466064582642858135797004887893533200613141659050365624994706060721407646301666134911322567989241057750495537615295663775443319718957457013172934261728619265063890829688597643928444121382537317413187990768262426659661736060481687330139976517818145996733783456538547497946901115347958525404058672943015422856866891870396783668852198959139247231315205813314143832586310401336260535895449714704001564948860937478299515147876359022574522018181385138292122409062745976374843608081519556626194817906697912939315903709250062210110605747417481891071938643633549902910324540288548337976538230196126756822123883147510844822072566105225191398894485938033304897833163045549617921160274115684797564859397284267296480487881816321710922546919121983406519600397275218581648907625370749840134242920600238369748076676913360618225085571899256084802823863616400134796381217189252613056967812541627856084816489114769236424173491753635728326959814947338535003126843137733967917304267688562027068917385594540857327175298021350376632760739601474684694867084680599260478458068102607344705074354590428941317314451022196418851806167177311901776311108446336214571596900768281045053497480032293525317194487170728253692780134839315975963597273515543851110261750134945738015546358877840098313190113227260515060643183442510044842931810446262233466522223375922201176569845934421630072680363436433958853817016406293791962421775073134801729545272724227650350926147734417774765032953373539326058831490288882791981632624237288264102361958883772654871012082659876577144512823106687788932074491638723166391940670613451320463076352303567201329872154413693773733047949931489502988409826613415120596768630291546574777144157899519355554101307656130526376705155588867963561495832884179866618592811447446643782824571716439886373978910757171872308171137811974325468610086831833607017876182193520644939628905130677620802392766959459490105117920676965133964808402352094663040790363498109918865778627336389295679605731969192389401809902177437445955498440799830517817592422778704281963844459913195202555474109962172371812373319047115115548646281032948696874013283381529975014795055269596364790297778742096658092470550410183614066406452273394934768744541459767825153779359556828494233418966617715896034149105607846860783275842161707961370106994953109581749203739756636830059065811969941676948530558978679286594606520818091896453325271752563033288350812882244505789373976718089607564703070164973257549826203728549524930069601195163268400668020528049364276982311720747011572812002154147520467315614495280156285391743824327777430900359051069473470566825218421734851309490574567934551788708559135912272092714495410484973186699540087503044652438864455570601425520860202575481238681404350065239355452590063308189302458824357830899473319756511299443675585593695938757238925999927775512853453347755641627732124196342292164945719322846331227131201590382569805335223108597359294101573540888250037241037676014512122257240145859029468012780462334049929153982333710619373860370359903932022679804531991805336226846257741742033179292499759491791849489103818046360851494442419746901960074934019609210067932376260410263780120294597131093731307856955536664791440177420920566929126062458832143794867956209759232516989172569735845570063328826305356604692569389501382881584349720887812368062442657977214591354020393320954954622720938435253942638388627181067974564496162854147708238882954413137747940671478218762198038981407528069275216572392381462253737157935835617872384474382123100278318477056708751850511273224404165849519761063936587890750206998306374986365226846731401361961479441384309514297630649532968387383713119132104432041218161133613216349121034239383669545525688169872520100557070667244080529900389859269745360015553092849955037786088145894615882890775107415186741912865666703543518499337757956340198472279237048722801438033143442205734255150314091288775802533513668156192139078104170953207688752371362425807181332778630477982040470636677103739139777833888470664307891283247209223764609889216264726392950421619549741639882269721903125333390733641797454689819029894501356427947424687340877070805822581518439210067524011199563823723997509358554355040292903620718233943468867809727154563227542971076444188439674629575074396474910300580674508158968906327696243780128754590865533157281892098121096687020949429546929008032852235537116531875458494835483803772043831930142080046799587863268211580531573733996799468284907455887175373349590674547688433428418114749480788224353805606864394514676863493133306502702369585605504547511614672427281435311665549682750232540704548047987721516262236847851552651235647107769091250196630415691050669539245623135450875684025729746170019154932526756016095709210931132518692184675984259576403735754950526078980715147754647926673043836810610531507292712319892933510482831375268002547019731722562535740264929331178082332972336477392663842013791301181475541799520046405982064561067083233533473833291536087341528013721768861135692009987209313172615116477526101391370225869554519056203858871206023857844709495284379813979232997391696838540784699259284818255719078683970987617477174743153260811285945071283826330412798074372023867060076328141501304834704721971860451806378224391607472003415441702269635669406506137050911026359378158678179768459577874436152863143691251375131727680986165087481505591958051423202890893030250802091798726271080531487153427133599166912829666871547234459216700985852448923247330947669401463165172845156817834007820976567601235718875207710759111771127768634444892140852583868334299392162192996352550562942306357798423644822326457668595651565103728451298808773695023940591242616025806705036151769033858830773359757280358867407657263342876178693484898032050197524603814523086172015062140395891829173316785908326671388684234524236254419395805442228011056497598488998943269200211402850761487947683386742007487212925201483305838930568081297305057677977320251992101455626389901482770260919869636425715807681147153319120554080296318637978935083447357375490320997103969055165505039148773740092083420183857725854000335323660292930936838503571950823273432757852146224244014898502111661788011153013469964578465157280291469808144995083845580392823935052302238632191334286654745384381518151688400999363686482723036851349954426823722293889350488864881766748808035745744406470957337442457146556594069736369421935844176629971387864742690335529908256478799114194532725201665113479916008407528325445885313687871199261520987065313862222072432676909376824319740464124843427555106876553997233639382760920920548433539788416075216799750772239675193679455452667668479192163135076147745525278919347213776316750385917124865342894879931392616657892924584219499039198841079909227078535192370527553166582616258119919629921452493299801157503719350368036430687844700229678036703119482951711150931861132165346710931533405736867402965236135534063303298329061116462157793725748857835819273271632139013295625896471562609449842553931697571736685464911607534612572940073963471842015939581540356180466891418475554714067331566670465357568566570513902722605662033960172405925640476361182551533740467750173546773091852650901981721532248945732127543815004833522895589329002619698752256430509913794352580731107510078739477611539364766276752591085939746085299010333187751623192685740015052097353035679877416321790819204184695885459398626735286370570010281458158229774744924304995696969527670568691989752270038295199867519240932997678724894129566244102950005951761214240769261201117103328457143970025308890682573716127873406810692758756887489477812597126703652644375928060611138606556342166765718259380690275075934577611738518099867952124102384401688819449261082031504081037568322669760780506313793379442158560954298384334888524131137280733981919469901268453877679391941920276656047694313623056839430983170507017354261949588972072769409932579652206073786064593403298564534514672024184067919802422642695024021874377134123839202942868303287496825204126869348909944827109757633180181197918376390858024406357051891454807814543128071488868308037978528665553265422237974910468229971821608932247122916265660563664690648451598051172209996366221368125495898701970013410910074319214787475159799533203841271360173196849188583249274279705296409483949376643845463114314089183633602860980519725851445194625718211598723123740960300429091250979899594368793382597493324735846491258014363601485132614531120599471288469854610779055967720596323215176842674168474009295639363655794212876190139484904918024758935626805832870945117039400388579803505385484533513168890600925862742846479308001935442025223960193116208087934755369636861563406598359780232265087810023507943215722796477856521359063795589544632718142517255639292948678941952327563690230257908734305129161289984749770798057337076197570314578465099018070540225028617879345794333265556870600527212730680468518135845896020637654973571585806396601800767440405186690079635019196249768213497441859063197451924938761878090547983437103525048305136198496095222550482045918981975152987619250394508433850150335531455992568077877833330156375765565234795637961228477096315083900810660278709899184529520608096685668584981985994797815752903915173939619716611291527931934924072880125365683002109102781461672631246787296072710756130084685760077749102322127237126931109622846652653251893595967047697557380225664617135939481004983256961934672102669006944571607479426687263457341558600668152484699352211934966212348376766248917386494630704264118675443983482511357342649913135995254247618387144558660865176133248686398574311951516066431043620012681919024539841370294679792962218223636503912751856043567758073679156697167054952123806157407045158798885996166582670525030394176087136516637425601339381042528375258829091870021692423637912724918625467270382670744251239226356864521553030539179677970870286591944687002088858355548638174514293115077902386708242574578127452097435522745137088339818837381149692847251666732253903699100521526868415421875861807209448317847645758381059087408004580434026539442334274841129466942968456330821447896238848191515030439815635940780600563338213842580071416235119739824384447430706471532727168101449537669423669798071415950754447692957057431099924310576952725077999938086825599566272278351308863638853345621846157794460080143744609107134984997227749565020041280353792387748879233602883546352857455010374901448593182668820008814405164477617860588184473525539009960345782156562991597835500776954935661266693778389014061463505250141471703853978607462382118852550758354533443139183073893458479461049359648483167960419738630909952705651418593349525470288482952749882217512116244829611086463204201740597567090988391098284506528156140207105398993676776338793428995297409560821110610478552511910352343108578812702777473435460525692393735994612021458980280835605009909604642986045315396186192388416026020891587058877951608191352709305469260743198207466608975560695236255160471920324281328839365142759940121406787897692151120422105654707829055758206772856939932656417162754837966309829517596449399619863472046921404217869205392369596530689339249399966834745218332798271531895877834982605552264481028546903960377710603939382829661837040939483802817541271485718856027048088148935826714407368322137246843390074709395252216304350186070966338616222772789102770229170904123337641165803395068808984722316993339483725024632965314103786129343551140430556382467315747434699830123837319405882871458751630816386142532975563567149224386357530889042900710545856868952325498172913502023747571651544916399149218565338449028435954000175806842760495761639573657446059909759237895817813676803988423857971826239924798585436912186766042746273052523208381874014809732756485573186787618282159867895385150871510135918529156975733317902922797149627758787841230737772478431694277496316995056516595619138768099699208477332775197873029069162978135904729507731501768470085391681263592893158462969672457926374278818075931692587292906583257008864192587696666837375380762142256709237685228155164888602847572884447604963445416752097996109789209897320820795436312228130375928435070176937656989069545090864755680969486072290366377009553025568111651598139921323179611888825023862948275474048481960396208676295709265389848552565125567978040975147780469448982228352660153870441600033790357267927568106319439974238045293063613051988402813486374639273940569087976798628157221594150092990705083159089658936547159170663563514981794945352609912678254699039036121714106295261065726914945961277782607541075897233728297878077845909209475746431007163446436171790782098637873205122285539152472975228586170034125927007073365926236832641968723151694310883449335853013394452431753514940099416463019360046045745204734128408464869736685107242740745306052204181431897480581629313952366589076607654803512117474139204339285365529791255144816985168718902163005882191479488325697730725351241529277459409189746085683060669736884915492427195293608113021577626050989794764255892346229407855364278182436406230167251972844117225626501877193953446871568682566954176356054692485625661960686139189838546367382761159799338130277381331346027025443681268637045390894923431381411928103110438730737409214173536447034832055967122936082915414540664264075216799859133926520046512827522486688496177443483783721182563305803926908242920067057444159063660824147377658470449598433991328480153700108889776250237728878913087596592162699794582818634862590925699451832594362058825786055132009888633684386589148811515923644430429377989776980508624035283038542364371094286414306901890000989683360001719729904747960521485144498633581634162038973574008382433129152063607911642708588067973952637763569329781268667036295663130299869274664563331739671463029686937844450809403908344780360351554088180645798014003604376510315852410568373596456972117488940221214273801695254215112364701477156378789395569693908194601782611044066063403495317345011413210816033570834771205159675429808044864354590809867578550403141814670949566520933965241709853813451677350524146995122036629503353949207027602726129601117880468485064381454959580997897239029271767304273608161769625246145092466536072551387503462775948752734797454967119571964783160184650389080003910889007422496120872302425316464782763886623483890617236324930410279362589123579663650978126328237252660847987457392053946351908797223683012238722684230468730573072130902714350359350091104440165849088276214710135351344349630964042367710333252921333423040181511274286345867568798433580132453472826923370780388860500798145666829541307185771945540632476771147651334827278998707461730842881305605846451284485296492451962703060706600012440595554317536059374233140770106609740616803516827254526290143778935670845505340675431166347864138924748231045513928345875693540624124003935867637420291819462106698910415496577649178451030048312236247340609136273855427282304736883542491096671895428894392371832684079931536458457181542654966523868737989566877736147096359626405888670222290114663683503416389980498358296269011240230969657930770242235423703097821458124987855709345720192224607473902065624909152054434700071849462456930793337667195713997193177145641984276457267901575725682600867532732670847819294469500086960938729226232619486551466374558475225500615993601973736388761431808541173698985533752896544165344523971412636120656195983586347053966396635487195219553868744932302291248572847208308388294759447382205952626351065961408304439179156997462344165513739974536991057809734533727464973535201664003525387416551310836939604818521414021864070337080539072219888365235851418650467770405117154115045206700923320363811337670320892522212159675861483645322291124898468041868059339413409578693319886303505213805976644047602463369793768314828090429299891953592138354696430548454283611019014699656156423256795936728168971492126461314272352345373321551360933083739311348465764328172535422636901631727923646463390008534436338656553880919418243906860366864884244056004978059278765217942513333951883069214580986414599160263937130716728025267335145917230916772499264716006254525841080195470320279509995231205173530852051487628687302426141093232942596238168050768673959742546196855549713677827071587486327345525759720335521849713407065226649330747287024358158515629919021535688179838596942089667029283085023960747358975825124690210116613196075536300285613775226021527180496562687260517616984878319680033689936967626865228059000038525994901935483225518007077775482044706340215330705873629168010236207606964024474689073789587815100982434048513117164629862968492354023474676763824205575984395170037766080928600405555940212031290442842939064895232250900284637367611565488343294732138852799174816189679420010242178117177285635937206267850627592794883840346528990285130801270868135304918847024068450452412250429568318917586224398604182293449029139554382609806343818715435713627110977423718569556533101413130746249706328874720649750872265551189537513518015167600370163579795034865277047642659350543777887091780098099952963195035456631756243527341969171101261906690957577513165167063083707310497898324132586370188817634348587000209147600296985677262774522193448837788731899463513273104280995914501392975842362879671706057316072721151474200042876678915039149976040578676217632396330779161059540130366534285785459531333629199580274240169318414250944093930841891992896247947630345015299481256654516646172619911247074038089408049748237935917877668768465904237686075832540794164120132967703454443431859922892411880500449856869653038447799259485767320942731580432212485561221607746878212609271351337202798754149679526457167955816967934324596702975727750717647289677606877451528521915870553924576042047274493554782132776882303689596092997337041957519218355269617251535155352023663170891643125666048697707451640143060150175211424904768909468140786856730518052648195314864149827055378904944631240037167699909187242901154348390294253481057920280766378911152198031898405488291589878870803908094463994633774163034557625805196964477167039272601431102324018412199801599069696480792029082221903958088479791833642037738386763968549495628311500161010061555941097267698905932453479771229906141603324217326826680517604478631613586073923388804129113237742437805875644360403133258829217019641780585600510661559451353206538265816721786309681480537261043474708232195545740949896535529918593429962767980772514830926469089567778967702259240594932021940296734491312612989568120398906549175836417460765666975303295865066193829542034344774985208473492819091682905401248312173965476567969236963503349924733391573367018079305405274729533746934015020456717074792360277267888424140428689059410769731635909650959536865696039879793948613023943521602833543385817979384470811102683851672172774373088433815482298075586157510112675945860801917951930316930550694880299812349554328511741323319919638507358666140817325940800621687771395338648952821585201261859677720877837735740666900103537815002281681390730128801472869067141215067991297264760995051355935535327236238822037105852889712948077342611746066391800557147265491453033143432103637923354238756480694404755870739107424551807825557341911356899293708597721455251918680528521149391030744767600419860747320917908093038031940671017195257598953875164166254237383061882712025653927482910431126417410792872049917794811753584271142808410058267096957836220522250840697825362320165926796945712744627735897986197851549785882024853538244691412313970504166914195378513332951691945327230911491518566835252167358815288746992795330256825218735147636964253713084993472413848295672088959113695123392546753956114917615321130872372673851253408515889712277236651745631519315659338363760066617269164286470949656689743181582235950926113351791005751984256706214992674713866871270457561411412304045152276730404626244878458966722333573916478907664702966564261546721877950120690323478218405289245221072652984219326708273788698942279153830681458746516081632273758130019280693519937007100707785787435914831296730599296023046235479008572499931130419330745902149033909068246965898906905805298058363252309546337129035292576111010089512394293703289629784321102561587418005466605833933147457738197862442821448092026986173186158391770046925770930623654123289353137738319379339411094096601469043282862315695705425687792182761468504133674424406193501919328130325347095319731437598651471136986329873451416908653846785523634175968856031949160326049080402969255942875719984050538450146228499856969949415717260442162708822773909652084531372133609153946663586052448513929238229516720021968799579242780194540757371301866422446547025157104204894944393916690108674602201093338536099946601069627208401262309590035190419369400469058036716348234191702755681333296770187354490603720034124215996157357883077436009499860266186359015088805568187984634341997605170110721911539387341487672509592445278208584157560985468525986030235557280067638556013261894003537924680099441615996671420314835535636033211716414490319934905462018412111245629559042293103776359219614908846520542807544572393260204942887295759996464700129691523748801722263245508054987233429962506627866954190193436399572330473157507411352381174320560061790997668132853822668608932479149868556822900304377052459524478643997415957528389997710673556312384503058074809916860584459679537698650296873650402145666352481912719166822418379329637387972838900875247713490917551331967331934735543536207085152620414221306211349588120134237459652834981559139494702503088948796990580259176887788459033609171311503838097167846587870104802874883790544131730587716891516886585765357436147936524036509253038284947159094764605144921408139998009285298474205001309882385125757597122314876106600106427825210209493724368981922397102008562427690049339469968897378430478521654600384648415914274234586367598728381089237624456170481078283448048849207106704041367993341622708335438994568294294101019665155111670536261194249320107566048469219532467338061599940442061854395310313744811038881045989165692913947045762631316229751091616286118669249040753749645954240436922857335648942973486479495661898885027089356948972498697600035521284417518554216862465464963507749494901386824208725747834086964743323365106593737368665762884505352628794456644988092255301690407820297842897790226861140535472768517611418436694497121580625848937346126418096024027075666614062014302938066462050019120185948031581225592773383986245914919542963002850486948344091193052093401665463117650821650131874126180679316607650961841432165544924212452027009465388841305184889528383465484158985971727928387088206328616725155877253026703619124922453448900978913803713227836763501424541844234735879518985396766260039015027977885704842393457050202324754510260096887281886532402547839664555767867548469838113557932168835016182508134874531915772231649661907076149281096659921974227334037460107418834628297960262217281422943534167109605320987231704259747111902878619440771168049936855436795204725483469798607333991358872842000525814103988723247343454659916399618055963664617490000906418808404594676773324145722083305518787125626160551773064606099730509267902118249465507430430763948274592828511385701096129394955337626554220114421244731260706581722064390367271561613018317111274970595448431288184471875817631258882644194328700688755378075255166720163718841154753417727696205421171577282625548877736319236983478403467588155541013518613099858363450545430001206625342658598438673060129021112774929550506401078881436253849019925969219219739362745513065726281893218589425014404258198216639826048528062444171061707376767120811918757042688319327172215035465075981752265045922974163815598957273736638175204592114755003449716262281533681304114021742180920550642486173664334376007420339813504163508989743133210865157988581267721963834632436426542941461246631597179237281387421601833739993598587025819957915130891974854657816431380799560257983318135673256368556977199756691787076358830188536137979513138364746713516192323580739497982222345349659405410716512190262824607025772536815737852815903505800305714552634033182657026025296132256289263030574758363851569447406055784924679999328320653484791477061310853377858082941784022929958702974351627412024084359929730680552001638425641099361315653837813401674207146563148076944773525321444809725555113821356204355162878694482333738923540904691981082294921156094097135869663078675823613329454676945934831480801428368460670773414929889117385388226037898752218417200272230888422380901444713882864141232778849908371159173680449903928909504539600745151917178315966156213596584078103351105766616237894698326024780594356101095418082561320554151729617808153111308086415703758695462950460179882989624818314051505595379994030732255108999399118370472611264250788375607370472923154426742749425565006320240675515661573322437917590155163596660932356938863831289061516047721008670036475961557235254464347349912188761320691941561659372706236745208680353251661935303175261338040012010416065053071197799886544845278703747091588989006027421626302154641882074075176212834362262851145913432414507795133768841721333726710876867239299964572048986160800253997382996015645502977419294672331038428800507587355624601718101731826972412582166846561579602259540193537964138338162688354978319622181796523143757323924250283227096524157761111134141985576949002285987923566196623412046659621592184969609083205858605013177557049688800176960886343937920420179607170804702106675554530186647567108156947766233155681959622350012154724082511931460040025932162441155381052429858172684909312183782449644691026949333884456257103581038003848379590969725988677077306674764303658343616611544196258998549009048426312413311175759892738922316633844717000128596381870739057270784766665353099728121189183995439397817178320285449290818627878158684425379854032645606598573713616651974072084593960726593810928562659815272972889479279100113900873076691545557279147214303590299960156358442413079167026923324410788977014070016068143202341870215895983374232624394614128326872564633660647367982894069840270065548087311636383310979614748376611268695033125309539708810926633195399459768027308022684998764571708084034512098540296846933195221069224054140900847293910650793725217096026806029135873049744749570003084696524154074895189677022257847321488282052438639756764261001242737827675216196631058886896972476373686766426014435210579641190052755822704225821501255480717749012856909081572704782602884730468988810848721969382714458195668899753231613446358537655495310753729660315136506255445649839913001867801797797864217010599401953317540977063719248776776178611583024084715866240322454710785624913512720930940221282504810460783051731667122099864725430536775869106505563344266304855648146787104880523469784434428276027716915930314983339707944552951913311899176999376980004474917055726961060700528533723100824488627358836435181962291682546805462778351817707451058466324849155370749450448151991799699853199016827312394499451550421424262468927253797898060063276978124259878424555150487357932177699203133898050707176771961447235866363428481662145868570324310416854238294036950816189832446802202979477053701312458022790217596907306588491782933876149797811161473616905438277503528105709649414900908706453381883249765873048245978620562455483051904349946942951793973160668000507518533450680254670084533382118172633621952310415841396121686717077942721495771731384160688047537093416176923464945173580516068310434907095473834441669241835496354287273755039366690526266279777032728805386232098900583116613745110813633567032535555034503870623711032434325111980241958501649969946726502432095080659426755712975158986606111712840400384371274996611819879063104122289428557483008868528438987281576338206074253727605900832927568206530952471830550327205940488989218970468626258027914165976609623318580081160160365679787163957502601337098063750349803244607806871284773049865180112201740065484858170336346399357939482702012781993059420027483357508513986776387716215021071440261844213273456484194175012126367345061864349542159265343793839481405606308774391161723742792575708857335115422257600615123708045742006136291419184875803996191009897188574337204086238513166576482561948251648428988264183365061340776727248413722583873831936017564873619891742983458897745246956112330822537131511756261687381897546004311769717430446098256894867155111337330196290775824081605166400567345494078486098439792404849319385778456845393228505458052211667171882959340550384033263564726878652802876692042071814104596411639705932521639043998413905616509847321350777669088934330463182906903785999270284082368094323691646092167110310964128816558220466041396576721811910138674447036201425289472381048336712545833397080624158464164953922417241223740172157056933898821058075956737878447719243230685973556668996621645131602079799533025286938540365708659041301943722197332243605620497787767913113622915882639311587539399260941072234575840377932699255406351507692281446930306178818544537856540272997602795664561733585086634869001527935251563524521215829408112828828043168149544365883037377571614976203973603374276489398269606512759890568241144074410066289993006807083826680955598917912749410281841475188645438737598713051600106264705291971961946192420437171791364437402236251701692828791476749460944479084471920156323333039663922857154088525124893093550125841375705705652750928157969379624437373960498335653107815442085167345775749570610069394656123865480304366013006942850603087304359446703977726947800835209910455065649363863265049268572518669617917740496609184827357130216789368293058531515244399912126979401885550399722779754476224101990098246179566485590032389366988359968595922041575950165411499779992421386535678029036579236740664757606082534475727322612334440864050853907919638201300305101106164338768115619773309871276891607712339454127199842925001564475565497985609144412272957020079878323609046738994803079014313264151391670804987938263158042318529065911672698734769339658887827215990229475652844429575584152303905113231977293955494654411524700350328400981971841902980721813431190736129591381024947467563555665360355916586172261886927087467688715161274897293348128718310951535249802219627437096050286040311086137832811392242288022270058612008426223171624536173230376183848498838792019803035217224390112541749711292829809473908704762814497026745461514200134464914341137690754601420763461934034097227732290690233833342360404121552029781286218610824172665188158131865033981431142258254890294626742278513982022379716035354753393131802047640533545764783426915475596135943048389908126772325315267192325063907122684898295212695916568432487400055765550729588067876470618811010366995918435319017418488311536541233042948426646567771521369563163855909938749862894858650665376597711339156760080031480636552079940355064238577170337052802329228231291147942946631366884671724420959541476094677726272897251266687329031268025848743880500754908953420760676943079908154066990777427691012545905693717159865792886256454115884053003317945026451508524207354298119141056596399433425889552731443711958042922780243332082650283228279462556378029868951889703273208378049231016203471232766403840520662047911182900192321406032485678046191532614159593836126390257979510047063511343463427599637752830728850893558803641882880142654243585441872866015706159477778669192518235810045443101577748284783102488855018396992835564372509755141818954541166160048942205165565042397524464510541212202823790262891635337449753406074443462772193863405245107324116860502957209324048685365701604003147713385953569124534602651935485474781671515114353268494016877136763302762896832825514098059753062673807463937878393939617866966563866559387558455410689898987956383443489375160185788625877224389113015094216543254939036943900967684738825761018940452220517249213471013368990264625729582628751772223089177458091367699317276965483790563503393754396485082425092672669524546985253603667128662460559212663804770637087811681892727398045933517251423920808563615862037636914019695933496928490907724863803112994535102733541299118285777183899129027891846992167005048345791976688382221111520462642492512603717436823434217658723242877980982888257372705776406338059916748711450214656013848669842613318790231944786455762154032522459846736050596231204140457650093963299355833636335589009853281976269083001017664697743368792508140682411832672840432415962739450088586446423240907280374745926425829530643037697888577554920374388361382212976970449900667660728783756202444540203632145226774824504136451825366458172769428924017765611887364366295130934854376086551245797770444712269804385763449671452962073171256646353752362872418957091583100514585948795105797168265934750628893701927305831258437981948990054903706385129694228894816550655540132988605369098065735236906860410748793156784862057665835713294453316231789809689772300341774221179597641530939623644352406344047735032143652190572626211372620312085274789599035284034064620511523881266953200251770488359430848968306880926273878246378231278142457250616340772146525480716078659825898299024789192138398131546228134668900848674926985179050520151124720046159699195644025257478738896276989592763332593428683971382735387542464783445141117016394824462568452360079387633815075399993344045560979344300120829335287645963191804120803780110423879863545856933345050788151770164555878752015913044431113630034163170491726037280500731368582408042161682027990842235705234924259516656636813293816256407070666295657112679854605839467223883908964930061228099739206153095292680313019493210672880939420688675423264734538838834695015804770288791747173548884449867598706611193169554979249153266932772399812171444280177095635955454020241535380830185137059227358120045637550746524257158301294725006953246892183852137520068840388012145166454590977345517761787021700247586696360194672135716534193924002593971554037627360491054589372791594651935735905075624668804471303003951504698334746754447120763494421981501068665865551284497092904091377987798124951099300173011381537738150972697127747866069848800951661811621975078159808797892925604379762860675917168516467891794382574322120231427348652740035246104111207395282809386048338085466665130624700237825537866428755900402915584472523655168456078334172437985217486306720723430058548782561162029803278136513195075561215787097166674290905596541467126312231611418465832741531077855892636658023584924611447791987890022659635522075743027332743818115299073023993613555846560125640977322581144859127291315932157466414408038011222336717181444513388124685058654355321401270352365885107104729220845251914500567690470471223471864649766994774911206979264213268375280105081431606439240123977289639530115220810004915309154064353427441438865305456369392908928772661029804810323097314802422107521054480269562110279047662184207100589442035925902598934291108924071269808790133803242049726656159486975536186640406958235592085448836840484679342344406012953514782431894613174846483448151873011970745692826730432187077473581278434964316411747279563640332106190832506352045233790926890131824354228947036337040576966117157217203025258021549289813618964970260418023575941471212889722800837658598405759689747095470813391016221168719358063994547263687257594411057917969190283440155871591295511501487282526833437636107103576917334338590936255458926631411730012145685302128489136643708364870933813413895639098988532185282536522368269975362613478543599997341865849591320483369494621635009991239514554794411170819745659048873205530014514777276958382220930790877470543664400239159315886594482009534382082831873643052222451419389610225376935132000864516881535920436540088721912341793718853806147505809045531212241257184381502372505003250519310042290038813418043263132661943906179793956907558909683914520151489804137259018052307455718207342175156656749177613101026746821875205129048955525526092639154610351849536459271407142925403607109733142321642505018984047928695680815673850713768599032519251354274308714704679934935482235977123907334365157446400143764373540104239619740600678873034957747605713531773374767766273134165821545736184139565572469130947706963773197699511919746212836350872547856840156868633026460506224393652412786824265217080774260142398666754176040013744098467850161852284729519486492520470726963965161995948408749900804594997155666299275509973889184692056935916844843893231096029067576114217838063078316778482029788674153394462356758075717864452246314077015170455152474179181281309781378012714709173641006923606143408769150932033745249157527410776601409852388151749119955221279803469895999242025849907277598519100244196955572368363964289870834259275189346515766887699640942564044495305228395839248090187275438559237820496186818622184875329041573874807513074022343375517340271198455691452892374502413172002523800881588720030561585644087836186752180276481918710664228456584295673756565622509777208639691740146289994399905119396056606096425366303612505103450501752255042172610147485164471329915930296989850957752052008858927335244986901371670498425661371726267042651442199186202397448232722292442363047760990746769576994393068409779953452360524942998084557505737635886663731008349283907848725122643859716652880569495882256756208072317654700757689268098790442711250436061546373554103261620607984121271613974950547146852161737974888119065256399142433878931992512553133715519382817752997627116502085054515472924968231039301472717772827836590104598516047538633730352338173757194599444418131356784995116449312627028268851206473132871249644917821444050057935862533340071067322353181240669285106941652447799885995716589573120791307617382725517118168178313575119090504152245214387989450682824071926626827051429181261975362984240056871619347697981898635199486885421911954743816377914480495533604543981953080964906178224348932920123777526994995800861869147848509770228980187078721369906542490284676519564527073251652770193919971456559474529950231501193110351055843846325678129081112140463893977430128561957226796941391354120145724701510654991655538337153469971735911942617370626550240313901926303326822610108532939786065690618080691898363908077162214572743358491683702526473955929375246096136290743006375767819876960273372453371302417008016102164084528802359460501694322024780958251155065233884911792117272128497570996031615210724289179368298573073411883472092519934910711700488147048594791952672143087844104993770502099087647173481749947957959774299563755752850350582754388742874322674664076558231912050543067345689726250604072296661204252372987268170047567671311169772504955337288885765452591742832802888332736438399184017968310217748802504842177399072947297083880350169817402902715732015560935784917657018498825392135619274657076704499454601160923991264516260984367186493713928428951487708082145330385961947350240555632466046477846728668305084236202936075588359511973807911502572493777580323220247952347618575113731482644781422200677227559521145432053273086617244398135813534790390083608844667669820345700011339375816387701889855974968298500622979798752054902859914688939674280265451138715144655362233268438073522758087089980089621330696617788903386221988299599602934751033934207654722257697552426377352873715062964779687931014639189056986446974631823329885924149089923534888119050336623497289899419490420075427964755524401274227893949041106819376642131032215841560511197359675302942598858169887362825957531055723264337946570480507244924247546261368492400076127533373761583749427721026743431348652580929797225788754232532284749873338070149064670691039989389009140765516016101239678558047488365848090100633859493835976362804074701822184747783280889664605701376327284077576015585900909458125034127558777919693778681836188113653896288356531296353001414737524991581440943515403758148006323202985974400166642643826573177063817583451333125371959217480415127279724293790891660451577219571706412591439170539380775429304987409066895488721555966592549826251442828285329908339094540783130678171126875560596027935188581479063952180676718648112315723060411997457378127120317951693663526356064335410309568860942887473473011287083489285997811297906156965342878847562795205019767021812096955142597682303211060164216360414485022650473142576170488825814406652401930564726189800452570277823477549082707337162014370412649409235828938627321210166207988411932742003861408247736105669202437011732363239908876243849439580521692160647766523051916213957420337763671210390470645161688299062607270130394713152521306586372935640701359193417784687385346964044663086582123840556325886629993748599669394505551553835886600171232009318128908817773071417852760861362646211968382747109134098617520316234778250429097909783708536902403254777974060362515887939750018372610951300311994904195742106163492389800596174422737656464086754289988460863767966927052695341206734819086483202975169175241434361750955123564382845827913836408325129824270362121303966490789251677081761300143078387461113501379331189592566072630559261919909278505920719178873009509414458026273742774242013427051169266428321148302332403159832637626245470273707287019068460141387189454386061524394676326672829463254827969056376160532729086682349178349833498640660799125560281887584971566653004210658266884556852563008094902383931912083272833371152165986203846246482274851354927498776388499721501240590157559111573305074814231994536252165893484666728460684229619654181228942269047936569711105752019770692517487786834778514279416909035814213323916361499772822210793139096849405996949640853326287610883660229513654769113848644840580602292044839272291065655931006125464957652655780048045760766525427307678747328370274856664638793344034738339001266005882938893860494310697559801803450182235403159443712034599668865194175143515004125044358524958805741402280161631629146733051046913929032772604032646973049519257681615016388188147582605917089591607873427247597728133806608077030219917950265182376066039560325113801893953786596744734557688585982704680108350746003198160243024707880977778557441873451731928342505914682459275501029175867122654760063830734171433454247232800609433935362091888915895645516715250979123545115156116074411193062865127199825205729206958374171725559765439463181734850863286297541862924781054484961088117788270241249710249651689791256303783497133288496212785912102041243172838005101398889052234197856346440938384529855283047157707319682503306721801129766967570044105203364657160327185185508935111393381333970993594591400134692423103143664066554739521818838434836592625996514672365941823604556433412605231933637633952761434855709127125094525533465206533185824048431538489267545440146158160403778697335849569673200609642646256716378455660514862591520402995378382942715639275157455732506498103590449229468107174147187351104557120040768320173930581014847537379016007774048929860921518577520659851375799300623250728062376838342446703821532955255071648730131989886571079797350913155279205552854078335488539639683605292687475229248749281448103312199073304347746578589161858700798130410792732366545817576636102519200610513115327637700820962665421634006416140369186154471770683243201340166048971770907879382399948218341130776076169416218573072570478570524893804746739442527283401242100074628208539866361051867666594742180314288033713185875595372775701725024240897964172829073183796314558828777326103220710709976182946105930367613439459196952363989223161063874706550177366147831615034036753511869552262878564380272672095385299299428869664266734767676865396110950692033394134800200057123232466266906702458033795491264622488605361833926290367893212328427499936311094835049486205850297018440730760983897172602751108506486832677586222524119611961756947925850943088303055653970263956172887559846166951347347838367003882657334369611275019606246788710487179440626166301800591061529318800296389369213863161953732980877632569140365110597357749850375483510403726420833513539034679275030308286977602846243597112796782580441386072406444620205599595645918760416644646148728811145163720645354321899353411003123414747335913457172278233616812938830953608333895777210159850957577385522799193362009863643952334274807314929886623592607815068370129569049522202908949446426787616903191856080867933732986785316030865838561935309979188805832021842486874095338454665303747226431034957249447255644394467046709434591059538980006402093051854951668544252369461433779866234530982138507498641052295925218093418329135441774358128630438914329625005581608608897053644887535160095472465052879422005707906421975585689878935267094381470763048696142329059881709713162073942314951425849725465854616972323894860919178027371168296994454648531512804599453285050648216783799220922442285831858292547318114656792957313331541910209403344775369558778521916876346378424776730716835327530889596630609449599623123592016138245241275180690779044089977893835333089928024218690540688998775054708463173089258179584596928819490783509758999040476148029654489525928010569847940889924577889853141995846364342295903435044387889205270172097420151408859110599793632863720236120972954939253996953982798134891068533337252717237882383011197925845405780115348357968050373283366028610630601722724595330524776856027518131875538116789676682076932396638001612473991974560794749593417302996285434307927193962174172338291856469412309309159178555297048455346547305368723194013732240641912251603045213223797042092151116133033855009971751285108348083461848956153314513624350646101979548683159567925748918647814729481300600337474832114066680852377436271955821745797446660346718909169315990081849632468380900927649373222637031012178779032751340943231967348420558010359139326835915642224732595816057564215230170379990830704444791507754521555180986650429000589266459908157001527506354114723066313741358028380438669947173008528924411822410263895973563828940868754831592526638074319682177795888097162135824234580765809687144926154624927986370438650437148778728011015906663125662671875679077332415682359428996685518931416368079117842376364776453181730637063721915965335097022109178931660265596185791795409867637836261570872658130225043856936349620922285900352271118924587766368085319480748585125571464986534019764198429375043543622521627634647257295134764248404688384725352946122539611672883617130771357375877332758546973433849193498031733954080493935212881585955777436509510456333134179215364100298148311310650516353415287685535422022068024537631573462008001384317397482909190963341380880117123268953892854509376414984089905790918408769375071808134284367323372041489870421204818763501834849762594365464323161429520235328068724311663791185711048187817658403232398623115367180285092594204739685789795580467206001352326076542725127208222478170708848503540253432566611038740559241407715071928320374369956609546980869738892272253502330771302963719808373537351575645023701560090549320396503745509843758240345527978629532768779589240801321490772791251825377491651020843984549483125653986863406096636839822958043744057379111320545057026211504584001361559142346344073989837410881809960157671442527372341376688733402989359503273102618839524680746546640741044750403062362819457978985992133037564410733202571208197213728180962300677843538353043742077564558700191501192656859882830432242063340794389593944426300089016842401257902139939852189948057097094718721899203806571338271314929002045204797344748053656565193516132962242128036173413495505676406167139618638719853402831300168090568469522134163868444689228837978453987022137348701239466372085445811529794449576487902128163241486838110493778199773271246998607824608702176605489238724622176835799854025955157340346386742841952302441186383938979263135974292490277025411152006463497867297870463129754341785409722848777974791856945854585703115545328560812353058842737168257252291080652736712376794465074856461602636506875367668764001910658035008129670470062873577773500955783743273763073131250236996421335677796782141051816958193801208731538650732022471192141961816487642348030826536705389301487179210733789032648543704346180089253172217692961533944372808790005633529760120675819614770418745695148561378672569722803754179477836447560220485924355614183279710366032997086271985494370093660771182844818123784747793718825873268145123571926859998659556714255981027280092130434802685456049211917142161575157774330578619458583377228115656938892559192756277222351254458767618395207846663164262729092005396770693853049794699697382372328763227114177982905252893184782692210057717921467852536248177174468960820241155701063035646062941164466151720308100482634535580198594721016268406199631806621808694064595785026474196686957338873580019626966748291083442316547632981006238817547914342692997456325464302647116204449430598580840680384461658102311682059836080127781500147683525457949316294627403970852267886765712732419641947519344055155441070311229167495363351868230248109823884814955692333008437064495965001093110273499562431540885406481321092141457553331714670092294505462128716689331888550403456897678033603891282432720127315107510255807655189753373363674045611724479670966947893120592296978144612741596085395595161309049044072723975843559143746888533423392213468241953435306534695983186991291175392262631917942111748963274993945488852954054857611373264965041632286075740398733809907189417109544149338779687307766280046735561287936153278146535553672154278737591749287463139249707623670914185588734388774180836538018327084995286057270166477373944952794094222026937337637705293379058351761397099926544134665274367841739164837146008548149839818884748599163307067705312694400982946535569564057918252691061300806560860325117110240163373090608023739287469135022331272790799765551470514355915332018175780145239461351911416865058069054989435302609026224897742584158046264132042423057293379116269191806445264016332989397805051403274758312792375663733161377255938107876991105924297196305719655641509722612052798564388479781385880861542771146402680026850964761736717704350743431072618293871249435631158202944080452154417891184045822693097693678206655006764220917277021637489661587620953398848096700377822513670812778810540033548758338831077486541613748935722673275150424086239170356127879968607786401761571161047784095722630693823054043249563123412559642458639837007029987227899123710130210871990516568225886215654971209919658277004197887203397969496250196118143278735644982668693984135087287228265238712757987784115736506164912319842397721940871176195250180205184654408955944376030025887066462486409092259595415100777197152840097420749764644922167136767269132748956415797467174330207549925791527357766361090386199309279328631669334328526838447875694904122002978177445652356370763327827546608810065018610625361514571649259881264006108156049361468621880608362014354336681800745837296789971377715224273353182774906725359760998680445092268385948717897173606833175341420903562088483980398052111863135764566153886893975581446842194511419187530038889725876348479377405543974957194040020196240405153183804969901400463943350436517554536780062284673317936438105174289034962167252731394185368272884064885213028627373300679885872769157792260613742421437930726692306527560861361636100610678352349658784287114957334493471462400380684680941728797530270079966798849187642832562620590486384660841559535214455951140651512360925588963000744527349323406651972290756511679850816429718520670183537846240216981298075935685081392317113999803525455754218223903105605201547654443787184814226126987748729449711915782915382435175131212542448130474628858061060839894281767570931445874107311369026133193196164401905455123048026668657429397365491665633815846308964971977709595124078772805762639546749013981506004199795544281829829259091746439670857765777590447949296762670316347298436859581480480155935974106011004388327092263019889444759238954875243502045070903453838396033875570883873927907115369588728502994563870727491277692576412961942014315194413081915597213047226219613605770896453401399945031681446862879108710250542057466637850916407282661951791845455044843594958979185812527765961583495648774656596243290631119675924621882236405253772406786693662375320500688236114977360628781344819473665472555775834521432888436555061251077973451783808773048592517257359742327672175846005790596722105985618388087436956597736482332291303261025324718610383378334131728410459668403534445451282411654679003774546356019172484857426213509348180386106053788976910467823935219456585146600210987578339173921787960288071774560177023116995415407126618320559368405193124568980478971333699516854181726700950623472123826683775008302377109983176792358583327943509370060931931706770996559042917918860386676472041647745212369819422949683537194487441141931694741665106446356860119384806543830571580977250483070352617870585689408844617856517550110752772559857314379032735860870349620817266135174380040622300849852722059596874942162461731078052972874041582297919401119774200607867424838627759701552248710777705184767665924194680818033061363534315183668256285444800129932177105846384171744640448253664345024252303944623210097751095041590040317179074637960320990679152533992397014073155623186842057075896187923823069878995824236374060380884397133543863155628381351459008610679888689370882391904460212948202029350121446719775840962752207608044393627975557305038081107710908526536757450189961265637695451275860913649579155378711093101460631384741037199785657429634057537849473958943887157325951314534654889244999129473324931170059824080586852996785199025104763231281624470173355643778126911068539271293682027824765629060292482408272123562784381027084472220481937405031944831190657251821936010015671310077506859075116111326331555555892040875683017229207954120476675159551693262439802888963988742909629111181310723482327144693925613035550491494817451394052051240723545908553093346824125367663760478635606216460293061357510791059826391526097344156566591314129040633474155636102369756663832684593356703229543995608253922088107082113338810391713346425581891720977025586870146427183204399493398934410740931161231443664796300838873964671701274455529696342441306029690054189736001785119139919692792145047471637962609315094461262831502522227939335881555184841348532826364168857247676325793112624366710104621011438271492323640967445787919134149387995734797016783518402645288543803714058173638062227656876857075294841498659403552474174641805927823299961482949622405097038177121283386058467693604417129725049132898587746825140029955509395224351483982793489142234399745626073851322452111769228476710495899681592402894675244420277151885438865177047165505303011335294523699808936425585819396885381210424768517895016881343578735932658336627735539565187006888212422535768424969142894393192663491284569798486332481065620354155765065695129124368913591794179887029214153742226170252279153964662774320941034507445056707784965500339239565373846590075031044253651002913597256425235287480882998320325435232644788998980952501419227764018788563034674961019953821790447400593933529220217153020346163159358330720797113889168613873045054341254712702462472020529581254954079792680795620537084314148622674385778414512928898468472525346102186644222999714673099620847768353054886463069127346231136486953454346880552425740559335209477980443923067676492214297462999411513639737923742119588688656426122323773592110880905050438375313065376099322590140233283991696925762159958168787132324758852678138979345685351770328631492249661853748056513845807802684039790614040848423400145425345870790549737776402708114114822427507776975006931268775746336122860767014854313590097946285985140965118397242594294093605327887826941732700465475133428498361172150967857062835830262987474068005379150927631387985464002254643478026935138975817687173252224278608042942597923808345416613655374403845148648829201465959886338427814573408370341246209269735563730665448680204938187910852045529357054070241553882117960066955263763827045091791505384591098829440801645768847280792069430018523732871509401362134788475871571589094035448038688817633268915290414504587804190454837975178232617830169489761160256670007200227528314109961086609668656061280732335903976718615296821338235330358264929593153626819828027019168000747262605281445430852491868541328366403868818377185633879378646048764102165297622037640261054694092564979821442930090827430410469044861962456695326291158697554331295814970453239577139012605436336934983081842489447224690876812296487828026917316944184969285258402492161979761392889185709377102946445679490714999828761914002054582421234848275642884978277116727548192813366332723557849852014672790775583333832856334349019326199798776941650440095152769968233434161006834920307739243809218729434617073101079454445910936233077739138943233030924188508366892772790189535803125789125969285594097500127532846831346942043236840201990534370651854133092609168900071758268219054927331162981945848175178830565907828698942153069015025133110892578017777685709426425668109432366533977260537371926369046945749520336728742440458381764774645785125696489340930735517918942891762538412224342201965106914860004464164290038128274515226221794420302300803873670827114663540309299182107805429767878886053236326471965895050386739683501291741591651989131213742209744601773386337790056617992071751734311136531377903938056795605748412609208465291683075714480837288002659397132586494152086359767998208220718371662964468759017298192739672355977799383547613319074267014853320196856283561651801404332614945319317202826588610315185179538850206563486896591229717584044189134024852361206797660464956057849875916313211071648464206781499184559502332378751134441954783372919386281576996253357524544191569716041442794943018441968847272646128221069655884857147188224460963754921514804308344043141487138119559440087762532394882862705019458263210658471565266056837411462726340470704994996046783684715351255275958640354395942803920419866912819561235978713442254397027046269454364570375917173685936906594622043019465154686095666360394687519917473521304318301661255598577535384007930978052434654937203465246923401555812524581899909455721115892198677168128473786230994161026018817257212808693990502222392007313693715323395826574851215971161599721954349250479674999628705933371284872103557106808574679039562308837706105784581131916818641498757108655484763401039553781468368900523599811302153192244189747736946348006078211289830797934986689112900550523345687007249078862490393553029544142810870139696619056217834039158184350205371094869768546500363659450749948945098792912761944521307973355145941319842942853485836790006115541372003505375746319638851716428059779292199054672016260089077301941742433764745348751609722942314472419725844634732154684285558568725414751003829538889124821916471337891323221023434122133652846625004673912307787310911980255611912120248738328776764983805018393570757303431624468810326365608597193998345705408921176063324203680700463837983234210746733892770139634014801882184597614592070476078266585361573557252996911727833755423058598320951730216810185310881151843200105639454944069329418951860926220148492278289342206053555437427983470882501580836551689897029012204173715785801822044987074190457650117652626643194195396424045974741428895616123599398132114166589250149618634013161795573883250296094594498555112725710679710755605975057828942081612338887661470913371442768237686202471773332169298390467769460959071796986930652695898456069517009800858625946289856334596757201283217968578014849513055270000745740237780725633977123636994615245965456372010108354468371208966958875246297567181002924248186378654009214948073923089383315707630030681431451328425748216806599042160462732244734541030680014034448386768598104447283696164040611068778182120702887643620322742823719010557745029966656221108117768329309258767546357598289273119380626394569843524598753374827088609432551500224955771492112376533261684959711452544903045307518283857582941492315067689892339868858249927265266503148589616711617805591793631305643190772955048088827500271626929334199712331386398975356095255371967134568292362386710213507226511695486908198246288606804205494524549834656193622481599529008659655687770666900174080254712757893400516614292746084820933048691645459917464920464902746592695324064731444475679284985024239341278475304695268213170627311178495166380432694238594525490246989676132587519541499179702602993366483189574322730889934191885092832366612586158342168828080442903253334485002896732767772144959806467444907241036337334619475796005108826354749535789809921617716000977633403802392301272714102289898701137296818021792113210958907762169159397920670504539781541702365320931558285704026138464766852165674888872634610038091574256086820061603157202433005731854577454626980543164255133619947566432320587617695332810861567791474314711714433798980297484048096834327099609116231331003422195830173646051877343389819580934552035374593715203221510439253999581939861456497868746400570309617775358770682318983434411320190814053732351898214586083721360960527083181657023326364641208135865120792610845913313400402969673845600110443556890092396060757989465554351133902871507009166215809885721488568617358174121020010331359562395963114164907046872066102684281869215461237850950118524683233410354866927489159758233573486860033730688219686201326436053513958576536920394958391986177171160823946630752854406787769699727997905013192268526205195462801703068375718229664325279439096810367696175172559568600511010570633004382149308176756786819570575097029613117932588703458515319932433906663287229231838739352569818569707688684340548004251683569327287609660718942794614753349056256133266784440407076365583588124283232511572025666448277467632175867833743029567178072117538259399287715455524238278891574808860239935711706067166591178310084518798354588930773085927580355139521646422861101821057300752787339141609792346260714077071407462335273113624478683912569760865446844483701769768308732180879172751340613508200314595419464145063238790629179611575867519844647049872390953058198122619543206229320227383524506614995340472350908589758366905703529624468572516288514034614498742661051757843185135905196280968661787468696075604453631461808017132643201843329836355353994514229985330279017565351366035825977029786773989018708692616789062670345686017974096648107758971420856325781881365925132212427334285082806212817559604222320020757907689973077917366066415473115169812908740683640877725550746428628597823589362384306025664556217423817613747801942177000667405242817761133485773767386510141590838328767721784348966720324244686925569153281437488987743987325211461151792051186251436086644825882534279282961012485177558916201380682395078446875918783439268071538400571468537957631251488579323676728204154849708101770490297557531170550800725772013675310533465261845714874766297361442994649879294474688164341499964628351234149107326752342047755166765205762405722830003207986052912969718948647342529867920551979401793671289346826902434746887373172269202249283828176288927809093941665651254838492549474534179112034941949428809034495692698929366102730473241166132089905945169677060090547587622768709755819344343555956287341914975610244799066669560703123978645395928474135380579948290858471257508661278194391617313815165196296263960162865038565570189946990420533152207002043769237385124927688004385703874036909360743819401329014181180017888141222960885050711613203195442889736181131787698375702618459100537176101359882389986484258454250867707252676947677443074789662402754348129258242421820625448119720676173367371057909447903662931264865335020641120017447829834436762364312291866416866868280787300062952780548212936903075321793545818078972071056764813018375787782432279629725866653655405846676567547898812993421047864863233045473563316767307425429194802449632676328511618228971683530408119147408938475818361683361576095459143478685168470940960665855814116102454910432170632370588326982183992756381607511624930945211099616503521980542470420777327910911539994228724495019659042161426704100739585343992487282477889184575212513322512242091345101137005852931187964319674991570371493421794142189506295769075826497337459798637181388856998607371252524982226686950112706376139603477064579855526185028034538331694921737905693523838538789228541288217642689780338294110085622835183353588488623162365260648595556529386104036576323424166841442314851592027176411084144146922169842429921947647657545500639182199983960145022421048765659310965490725378060930133704863594705562258245253149239484169166487998174151409830462088850830928047472095178922744064406640347504172553924614317580320869030454673449625124510382998172752402866524795580094542349788376844469639255699226075785494225240755223121357761096561342297743951143943904233522230870410698307946920175286575136269459549197944183286201347029724976818355715152953442857706890720490142034956935672555941685905322860539081831302328739118540172808944390121596109799961556142657452501324905177858627637331887681455168528215554921061782400910809304974134105646790046094830171575528066199774679249825083663781925895509078545570492732761896626233499902253941228849899092804018137827682671155449652963193241030497780794335343384845882060290035347304598705613772656491277928730183295667029231728005273499629207291495151659421333940019490335695728478166352790861385059839111336965156804059683331894199834177183897937436334222667941165382032453029646300047752490294546569712649095232549816742463358901120711498137558173853457225952175186710109439192072112445968072692158392652703530864163848188887766996954707289741807212140729965918728200170983114640049649465812066558786970849953309745823228403525241483001183321414121448733048250684078753464284252872789439059614013668742622118363334262246600037104597403498566449580963767575326130425855040950106334283415124657173953450423432024031429668542145237539857736421728647845355491509076400329164706252981793174717225955731728651570516113775805731022459392859624807766897709375709200412408144730117664072418811744171056940864155175431658811899303784157496544988283029748428307448455425659332161736960246559831041267066536097285863863992008365267229847585745526494560895215424468236758081316796305925480088020213612334202167176647079695747480917036649245803961996635150832950926949357883571546576448008932515605626502003899129793242938208100054426347680561820335370745134746722915176266968705011361878621624666954164643167533380273290453813292698001375433168504572697166808342177141845137512171912264947431235435320177631231430491569145130256542603143567413590815343366704333274196877168835338741278621004395596698479735493608660051569676503065304589840034437196446024321510720504418195487965238858739495126226313278497662047352438451500404149811984297398158949382656677743129694708884639362497512500175512323701264902151637325663228656427533428321846827260892617473584022734523053667803502811876365943925227306076201462160381447432173736437172317070469413276007954393575016436494937878568040884872223878278648775882723324985859663272257321799811816442673229225523634766456468820038925628065152953776808968312868161275263643681573352595722990708894964738935609776213428139967643306241919993685651586281412365688347294266983057689566951431144934085132480463878047880078753479234052747111178635438257546158270123081465589761138870335985414440498166929355940716982839115134721569771158395970325337945529680948470281612964684417062370249244714358309590845572946993058901150300866825091484337441902660503771301562001989202574378776405070734160850109527048144845599014331455904889992211898989482440372955341700176419621803035510793922263812098938809643723170853172326505988354766073960360433137791252139043995628584242509072590215342020325247854657334886562944415021416335253917347878503105255763700998328973772082877448107396497804197503533163665058482690029764498619888933117724284293022807672818367069129803861767965180444515084237169676819123634121909719441509181017106365082170616967321427380548168770451494010441510123629856470582308463940322848215354471903261044794691271323062256238705413542807672130571971701670667568839992418078992989186296233859762721382704718693444791414196320059995465852882261542391893245187684871879181547964182831308224791521742755974677577467855069753617152118544185249708138712492878504050309491174619785368459672341732947057572672605495010852088264544575165168923679113164680411900397242872334195851279339708563436376325576783857712843218348840592378979399995794057967286303909675110609879534101635237129353779711098501774711746284210449191103331936130763520521057517963646761807074411802987736966349194478554838825748738932661360014219095018534007532511932031025353004169865618309836526507571594181829479329420936043916945797983698542536285753020885802716953103224996821134085353682600066490904487425955971160134787779919290498899811848339207160459529614123668700889909938479601062362784308227488075078121800123406232173601314910171164277034589444952947147499180794934060733366972725411393098223583248585739569193031514073727324782193316909564748522557709197352452814119095778009329264196111663897429943740747542555716161523518669432786837525167935179853919302927960212466929467172103420813241083543538719594951895732198181968090645966836737768496019343500872135664785780775999914936605652811731504923284582067647047291306095030804411916564448893769342508758614212820515393847248908216155783137730834699089009132409462628125830850999532601134792393549772984424822346838036160390458931311167504232215331522007853953925424136840296198673020075035170119624460469131395918182854326539858839747393573125690912485694529508824221392231467080394368260386238924643485060349676177617537945166420725113063165334390728418518926760559266388495851506881853327605745844474262696741647045510461863941911617631571059115193171299673552652402470822933634593376041049862912989375742348525691569388190136603336032558063509307461782880621662841090667379433212339967100291896756947050589818671297499225960725591395654615039115063455531962351273036547931980356712493503422427858499106390951443066396146202474499623510294999497789186708584266358505791093879338472581221347687848662122539344625740402544458745232848214216003653773961972921942740265966524524050377578250266741167823498365091088866729201832551849854752941287679482518521065829204775359740191612601617244939530468095742539855739813168456425557424021873383832770408649949125115265888749424437473466387259212034511502078619481648397291988705652760637016189471418228476747713349044379817825726824938438112104783851767311796598708653436277232374034521869544136402805116902994092815038749385987554697853131419236120295317386354210424628930944199414602596681937322452303538601418405290820291792680533067313237208018030352438738808734056623057796216079921941311238689908276648746059628401858879860344691765862682789557964340521885979561314223890361741972403936835019174076444381728406671787227850646796954749514473287883463295471324689989188748295785013292871383291638374811661498716218901221296620831899155164140696152445883717527661280219748066598058709283445330558279930881967019863050039373759950170183149453850930152540814949644066201408113291824059930785636728088063941507582537001813595755170141917617604729410592979101588983538814926222018345275913031031760077719613376251235557175470301268114302530246024828053532685124040446928142572589602340787932199747794966252668120143042125185744780545278347373688578721105427361009865558870930076422179338042079669368924569126527690601154310508619450331765985024230842510402201610839423968641352842988948641373055823560764764983008895870664073073979141291099472743278070123703992058303255140652887895947543152559231362274603813536375448035489625347534980849495583210212857862337534495314285277375154621697177194661950051702410293598631932366680934559315615591892410722864751756413127412980933801586829978851280898268697558224532047856436169297185780662237357094399434834473496209414770724727879538697997651364329616997665763527434590916723122235843794164486234717156228675656973763700873165079620692596994586980686434736370739019430438092212282578539290008712971507141630780821451224552718141065296987792077809109060037904078232717079330465840345464226675106210748001767834365940009418089238682381213955326085965527578945112379363773125024523379240424237326435971633544295178331027076365471979775475941898492488398369534433029141138818163391185317301648664222276902901368504862978576396122516915102247042387711918490731559328419241789394262543453042648062248414300627200086355332207020135924035846517925138960515388953420905651011031986344087265324873860467779590230573707150562697203052716145875778110125222106188302461997031235971179293846333037137491847780242487503476754682115138785424637852585549448691558163189762779295651425359522891573710808019855138596287575923770223516993656301106569438103599094891858841189443063972752837392277053728549850586645918794633997332209013603213711274868722270626620212855543082727402480541915463619144417557148452664750419962238069203829862509377816454332851503472105296942545017878109028487234703928257755967939569643245347273447885632720796698159289586601478126073573642920356612263468822349535007732539514854816280254201245324631080226790664156168348194917959398491753096569940644839372432572992835552345498438727986616863757418281208016800613640927304718089112784664088553302218284106711145588032331996605608083840969176069875743412672629609803194894402809312595272158810273249697170943851856885079289002578231769326444891878598766294083337481591846866954024427880712623051126639350592914515641848094066892494064234991433892770899362081276048348626710765235644704920840910358847520806651199632931647680175178311465835041753604349814061465567974215297253372674555691043380021289536530271595353243183080985328095915473248571145468671280006937668743819456294376476386234400559520150402042892509618305897419191315772327444990812803517432307442542537601394686254708844874222278655829159707822791413329296780261038316701358540804414163278343376998262220647730319780932701573819106683040371002220117591428108170841211151945745515618541431441932195887081517169863597598449994686084279866367234816978226794374093893010280924572936838750030949039229714227974752266999064416925160512142639371554979859050146110764072042076919725870221770278822413297188926526815907221049924367113055177427327437284955600086599478549579917371750855705208269074842727813699618228891745431940120214258153141796387999220368563737673375765490113660897270643582159898217643335811927343794985537252259689219947801735603418681822306628300148510191234795249924436895274090222474516163313204371925059401282948852643376961784395655522653046672851564037210584243802654057993501034884874585255875785200015636408790270188336433035653624963476648503697688168210209967215701458762329486980749057352487768214621079719606039432031194173220014965207105900430224519876821600133490491144530690816878544350496160915195658285907055457656303196576677142382070009232225192590418447256027322676597737396188567972406897288486696870271703438095308651303921477980839645898585498381273690654307185995766282570116740712567359517210477538941761597445319634928914502665141463911920848380668832865751493496568021891267220802241202591601257955981385670442029522065696392943404855820070026510713917776156023567074995933878812088570388339392620349131785588774753055740579509874903030790848941897647881834982373732313358964124687615109534751686047368256987145646006503162450181638826099497970609240303550586524299260632980797482076529700620210062133970463672659420302178834459737706583092611116366711963369578247428658902695242616793728206479523610479368297941912942623743574882004492370909766223440112599832953564011485424964625209608628977568761854451603248374246656085864745687319478158551197262522908995138639708719977110903113677581851765879812325234827983611814472423595030471585433419714845879314726724774731510887380930154030289913176477043736500599114456500322746728171458800145507744055168697105231685663286436173551456848635761169808601879559689518712195783034763319818284106647215771298486404790992470578481066575881244825315710729471307246584939751563658501585308867119093951471565105601219224990348487313500916168982884869840165310537089027352670451479500897010778895260002181326108686751620444934092388852868850486962636764428937326169479018813181476318416617996744175967189300782129447483184173794176155793862044211844041196752714540307853425103045184853541163403653045630432673463576051564231866516628714988612885521631209421201601312123954644798312003229460336356274629517362954713038994209683398374916484026266279102137820218146526903599559047085557374094414264267359440965356065420694557801784882323786439304482459170361833517142776381003821521820145211671857575025798836915715260386193457121073975086624108203753735171452003184343363779097831181667984996695075419325362461308784897793405846687823879196941111180158356921013492973240896751418273542433530704702121347870165170066771994488884738264913776444186699246806460600699670973728340868933464950776048369944355696834710411748746300319978289752831770100870049652487211415898805745443463707169026122009196901614130213767214922883688150237235505200427265972237389286662255834847263079788636909237179263377417185149318903629814337633371816206311625523940443474847302121598382534252722117992926020233656807997163957732497159923389198199149803843594888383999972049143005975714324800993759939208807680305228372700506542837828527536532603816266763547017168405219792974269977605068850997729491144276669467895297925037262390286498081983716508950355408915439921059002304441738534967285091980872345219008460049470747329244578026034710750600390172780909351989924657296974759124745581273221573083835935136253294539906125593826417683893562246095728235331974017265725579460457937107728979585800224412378959771053040599981017319152509203308258472266509070347197526029217777894690004131762225867112257564305666480656738307668621961937463635428238577069646582224202893877550961667519725150915947660438261139628811123088666449669874830428215744752949528974632794131498023812897171299198291836665976115894294438240965233886315253658567811382793672571061727404907278630245627872689319635973583256730422365830013463878593998785062701854551152748206312289708234435616564137499397577961692409274096337098740094773126051274885772757684562635135347567974145423971701498546484887334005784240570025122970723054045952453954999259925766234782357478160081300308872719997643343791713755304927186916423574943037480130614167093946818595009519011973658404220264444676415213119357479889251984071704816395517400862832751223153232834592679268289153407851202108087773607492312577159653161921767436868181168754393169175062121104222676851020943391320660552007265919614280539541382234962212682523992263853721736771689171928913415096786110533590987268731308732578086321567363059223494452362914196337256704928451635749374493376802486826266482128078706189395399830764889226849537997469309065313533220457516764332589541465785552659575505293022538956084114592847033588239724496135118874731805961377357178128406909751228159651223690101465596443412507663085397894385466915975312140485623734774133638093437193220963952728837297715549419077950022676719776946978854073309812269718280389643036974596557304821776945625857761024476952540002585416455905024226490525827976521957640849547104167832894105242072342929829517307356290575843999175295715472215338697220668887919640631790309950900463692940085785123479243787446292818407759724111767803102389209300872995184555747628940913278154736397936903989499458718307489034657114459918568420003233237862067943845736396092747141820224599331865771773700620284913390459466275834308636836678945860432807779692221065526468785632841938807873637683321436580872084351933811502861147340546608662795247294265442684332935586520323173681618918525241382497198223066174497251183048615464342751198329419116741726245616804321685290811838391100149157490685857003127801451631231014695305030496051683462050086774797265665709219052096326844879345629502791957700453007982363265048354798186644382141998954575966516007945913778546578778861998399257297035072999010301932037612261204785003201264621509510594168907978586442466137016067877687724208276147871484216216794287211728190175282608718610036476471080983993013241578438746837208532589706789926868715436803569902247747427058514897554827689360200957169811536140116870627284008245624411087740291093473700941833421862973039158389046394329360408516597971924656903263423200451050722422358689586914553978254614700312209420310020827951391961744932373748158869366186458965509319247259759369516010933333884240976779719376300754186052066591446191423524757653658519382216366216892086741671039671596424093318843076242982283190542750333620111707739952320745813233570785654551801847722510593076159895026020294557085607063640693054897559066059948098777933557123250611765764710103458368857575602476639650834722537497697867198000152613637720780543804395293773763353026055590102803182639191306642282349176347935086046484580266552572486552955303066760327471901782112511872579048482650166427252395479835900902171746561649695355602109570228129011268749610855022850256179651187730619704041086091773029335256299319251869939739329844966992170334823185728709473584959751395668553739541391619911149323067390671579922592890303573450030714143521690565193631945431268677508632512525628124815350166181327893609853843811738880288498000190051436766503220687470815763840836188896963891324315603897589584158703838485514270310008045087698814219455955632385559620124500551175568024420042233598723943176837446355588210589835415926969767973632259762246144066646513292228734456871087497568230531838655136258676521026294213558852847592564408584461689830906337414086532662221983952129381769464710335659875036958393466488278767805561806118732117883856826131229372109552980756799877510641166624643374173585085526338395770530069408417968853144490295508569984383375689730198559216294373462858379118245265260545311487843609133613959473263090108507677205377541236208555237111243731996919122536355741883342255051058571741162755565303857821466544207556503598659561369210929331422382480228108512306719631990228731841872817465983028503243799526088419034096312886076192228884453032854391048439157367538282242822916417737041759849329054947092021244774162550899344217549479469369820990832650387676764616893098669164353618857482639640699449670124621331212240962582285080349168400025673742526694348620816099021478177539281767350817125984146094832696970956876742516619620304647985686568495223307864247535208016504923059372121670486884432513599416313174221130101103069798139743743481913335678640805138469056042849542862584753612897666060769728501894029331083770185537016475125805276254382361346628264189522512009919872142507889528777420099357503487910651823351959138461620548791293357129472052255829583769719550669878527192160076195470273711427383675182939258733572978320875175068772637287404917190788950971179228005602557627195228215950274414201475954073588720299899688931050028900013950803047868287684440588812905122812698456850003515408743671807706710624997991570925752669576285028926306632092285350875920415477534327337058549621010891605095595576832054344568341137962439200546521920772699783227740617711231388845281464416947303030805786801908398359300635730588621656027611075103719300758141222780846286152211177026983890933703745854332498453938559756703409548373576730377976689701143708448071359724890181117431763347539363177716215087007285949921753128275671988319145450354343376012011688550861911407917827220707198185115375784982820398648170258857107582052468489394249669163870481953284454882035418767433971903906637109637418006718923345374118017206250570671430907952368955095904306764029338188938387477191337880272514849933193821459096045628080245191048152839320646647120953404344137709884756089291461602759549012909361445672614287216866263259663070592981875952844145634250293920138027385314999164980541349243642432226930290791434677263157118464639018925749265185065868920870183072020532945283504036507986011318307880722585385960299090871823675850425071648511146927954881790558853528436770014166825289493278331052921897510610663035109927728850248444335620697995020131786927859998557568296418924433876835403917713456413765976840541543128946418440598831776082778474446320682631392834055225869088570497518941099463225985532721856365680479279861201759867738489047433671324768473280212566886701599970026372989817167421301607588472106677149710263689285600799799457994651660375465932054077555879673663544775123362704785318688513614122668258248148256975243955143918282674733788194247216026287756275654372174338612374809530255035293497179709824854252714240626933288672466113165867879578583661052022125948257300461769424946833761064308398945890043801243127344595727697788842981398684626147911378561398967876891893226370993802603551984305852898456479256709687547296844954681464142211880159156180198413022837540955421872753531172774480708631311409637808509247839215727761246299854959969323298261029357011490984861688337466682584229889978712057094496071420531521951591481809905424766607881363333016737548137971308202790498154575806367688459412333968284186855301862932125384438610645823634162884251533667653705836576204889161273791645484531278684977286833005581787715690208777037953699659297134815335482587294216617107673984168204047554032183286164725411701991191118863409093780268355883683395514535415956470580220292223774573401488307186859285753939531617607979622112624639930567971107875661840463129385911459951670742946796606121730309582130602788992969669828074107132250054477984644994714304409815153212873837904593976232859044510255059986670458179484624795451268318586895946617113633233258102922570166653499480991942297734537099797954847544243662987377794970551123276001716926646910304685368513743192285987011629950658011681316402033459576070656214938689358766747592907148071932581666930853006750340733459164507317763631455342761299244372805656883974206743506247518330287913311223836879554580847036137288016432040338019772633570610677690614523457044656648611312021981440147730813691985349120237029944060407574599293343628668089696707519812810078747280838970372961393261195737195026606330827681370943065602994613406609139153655390957930828642652401582407297569145222008929948703203667397923675784825496550529498543480145017698614881672967734710159790637403567735553892177458528575935505881644035965394012623160348808306978055141942020307474812561767699687313115652991118921724443470888395438927873332295994253267359327655045892948461032633460340085182824945235087410156452716886711392251234332937388710338657561049534054480751297272395156708514042839736869397881262534303654300603845819362280684376887436056468140362714223778880918166319955770013044290811157180400889470463384151442504895202662101503187893673826341136722996996454381602246915915438529427737740177094277252916834925836537188412915971519739274626290392839099740073804975932478998293348993156926869792785165366031443525948754392990288947342017386270821744265138195238839238851145678752316042784163718832208592155653121780911437678163084751825837464035628972497571249617099800684334540020026565122508355711015191770997221268485608080645727480459371850720535570244335963161693585168529251586338488163710347735450694534047967961354653509271429858632036536426704847506022615947538459532060635978953969795529310732328055401410899891650634682773752270029150922938522784060787003994138191552489714545748102249095790785742246563177994815530608482505385593734431573733965934805767710718902906949974477365617612849295764690296851256302318272191364554425942703844796140364861853256702658855498108949831862844854783305443577400432129232952996404348867264452070814917379248611466412611152537019360298625121072661387091180730224204760100966492207151570375364326210469467163556511081826977583237925265152451792993894671016284907838354596550901274882303152706789708497110957247789048017001625122398348207439952589310982924881657362239800295685391786738119410034845421021554220747838069232562582892154407109956431432745106826316103598368478835788614392726803533655909767241539803555820004938439720441389270118561588072374907159682739228222437037073954419583544418933646797760946172210616430613553753421325345992992811376760422920923732496151438439385890729273180964954426912598894271330918819100301513311241970921872456133676597752635105949562470274491844989905406772585623163426053306817248272893060420777620582917664919280082181514083227294620229148804155674505355527171091074033025730426868231517037281245057555193439290034631573486747819494077628032523940105134255626916011196612677227816485997217299491287127331662177099973525417476975814093145353919510689690133785348749897974206272492706929369816479517483874329859626234890594902717380654086163193476658240821322137613616180464319611542283339650712550321524235567455969173546390870252242485258816372437631353249300495153073496232362691188637268695774325961775019104265477730912376706259536590605145951622673388982292997314762647006911548033081358250590224094355943628184703150517972973817082271183872574208333140486561378841486078689503995339143635271899707698188647551868201773002535613477022852482769197984882135587480156115804286528116035242520396394589841567172340975754304794903476059005877041991128995262145669556453609122917502596108488398416691268147008294163738051216829430045958890999705170415132834259767974064392135750548770628044927741233724781094384562116181977736813711690889066290109349124073694581978489364332308200210806186394301369923937393645076243206470220630809342378030386114308132548491150505686651891321847695019608095430293751997529371228253392339872193189428644025040902088075433698665332165594869358010768592838852836571217047960297055640981174078142652516111014347949302130446169978191736944349639642050969466930859744965988906824528530136116589051193154190086836100827414195967154798915567543030915291128999991668691665354804915052677541916356485237853546014586945681814040692278521896503210697398419628081856413817664304862136013068861939163759067264214297047866756152960198764568275738516836690250561693060552772038996704065927613054959552980021167045379152773342814172748511081234200241093628846391996322914332780928854171276934609862844279946374722737246282976837872097062821810080701951030352654066632172775432171601469907793294430911844389010225881224537602575730249036926935547173867497118500293297501781292216911282126592487660241678145150578877815226483528258892036095391212391539715758066275075214590939264930575377788047992568465591201207649133128359013978169081574229028144380326042548988175852502414441458231299185542395329111488356967563782305949939666289933736098749065771179171211305991391900114797282822463193791793759673405509165208460238919078245594371642053363389479530701055610142831947536295692040946119069908981868801174398499105072787418459092339403516769076993638102562873807890604703078524463379060988363195879060232297781147485053864727765285029524241041878519128647917501487316770849460502361485956871856722036953450493511220625197496865116799889385463366426998644058583316922722702369484364855900312472189934255154030565848381973213526018351605764895334558224457288312765984268328214512306188406086693175008884809310065722101532182460757855141407943569886502669252220304487574212301421392701455124312440180538797666665021657325710530309085464355881983337277565769480970408827259366836096788282621342000205700002853867701591413850656706336688207423858843644407181028201411435665295337065111042866685347893648701301770723902853561997481738977047849371551425871920144632964105199086480433133719601815934480688908429644634970877547424780955436391370864942036422994851369343307702214513877244248342404941777624258897560222366206881583143390274652864807829274922285730262347205868380777543790642866602376365081577287839991365795681453720568457447342762977121506629318023831206079273928168741375842908726077956873039221398572410518025109388272220009408895156998456004967708851665579587980107958949423241706555374384608691420303887140726661071833407913460423562798463622055611298785608641016044768909788428139206173684432501349937679475280367722173192376780270575260453669190903343643936020193857113096580950676380877217377073841965038852619684533477542555653401646393657343261146798796893109883943676200915291561455867523889379391310773801411207913731420537396729221501269871087686436991731177547861190896453217178492160289619879052201876243158373221897268927129119643850067163054438773849804601372846574830533933703357712228606365242553506691803106016001908419636017994804834271367395935121910744347633883865373851084290941710926418817517854405826579619321495295996129085997927194883437717546883456223733730071947651169583545111002208232577936994852852479057943519624743018910044727691243965011556241904949182399823526865121218353190990011485562516523720118583761017414814318015764266445832341904822456145389004735255917011504294525357003507328885169678185946018391496074792216874913237893379133641900388457986545116948618338908992433650830502138940580163680124122126863893297747468450831945757170047344920222705030623449939232158749175120605487003498202005950624479041869069654138648915283444908330196022951170440919489039846277226989240285426693257048102338221137310699048137150911562690329208580591926232696481099544641321798179115460793629062086231160499919575336039595497581681017186995033505665002517811634237360248930916685801620121533342492119883487089275720870302514628233663182898400689824100445073814751664793140817594151699253777112830976391866296116824974471878127341131067081877698607862586650131455808524218635269417461206730015809219588916771069906039645036518867211207397455840470049944499624700913082306399347840865610041297068211089276837444405939787090869518395336150761918737695988188104447302951535063291612732341426092152240169101355333484946587335423614925505698318747044204060690233353801762782229246522504817275329593004633800085107464698427361891330290957835975035624896899171368577342017042256242217896556984320806334757543304756761723639728131934288288377848560562125510847764328728790808719478335137836613687451650124248873922311036800390389438057462122757314079746832372182704633526089245415029866160657436013185057582222332209288584910738557089306610573055035306151865141950269293583127267501695031113850963274492465355583535708891550976667202504996302491196800300363888047020756172748832481224174683350691349061303244120060909985539730939881845325219474509521425520833117692495099048016675557789220744272241866236364846277311464790977865733390418485069738450195870594689262394263404172293848270219894109683192053449862091079980409359227229039296084625635438864012545216678944931504300034836830852237770349600448261443170765098801715936856075114385613805224460558808578842934946001870861787003721581263122042823769600203841212016470126487650992371064302275021449773945179600471069787233715784912848187712458728138431287958260045851724282766573601036789634725435675269808160663845745736502496033871318526252686930173048808100885770181517857932557318311954820207183886380245864364458154376211883536512445189121609658377263929551592368154409167710650138963480166453228064302708007024755364399909956091938014408402406984123891465324741880475067647135494436548981632702815316947264135238443848247244371909662665292056641492356012756865306497856754728981742112503472206203256791343950674716057120157362728543503854543086933274683416516268777824198527836507154634641775427162804777186774904500827218989897604822537380133567191123468440336777983438309734324106062846138840583979625482294496272921280376201749394987063104489630215203398709931386734543510522202086506163889069323440592663388129334329790198905304746868760662408977383017879975825840199439044804601434885367173618323427423199939245087352072937583640790034766772562960128804863252412524610921135387873334184508987799472303393035408129677197801224200540431019083195788152116073075575855430992191676204583808470222858282054362929598808003035135260372145314634779137460546711127668485504074870105418543451383493402131354712867399323292301479327222037128295262341799808020989701347304747174244850265519818838827952557707175792663432964501551450383486184480088015312202632948682050223816381846520489284896734002234944156865658950794363926268947729913621748474393587646761980849694546492361120780560922592366529119537628630132985780310446355321508693662468848778968185851222863928868741721344958334943301323022179543772921440641659341050859049577381460199429014790615927216338391944643056095073207088374432044316586610618330410055972461266632285671043568937077154146229054235724091745741970114090093834710028985732867250021672257854982891909043873416737947682005189744238947285386549928815148852597477938702460230196016660930609919670000682251174871878139679337541444123591659987113499963074865644552187160523180473957319654671428322376796084556616764767191088891263810719314616889426905957061414177979744084148410080106473601674151079993789094657398640662812248103999447122963073280392502292480368900954483184847071652949098825831594183385871088059266431312869887862898821283231439315304861755686949477078568822345328007487181431906494132902092040692278875387725644246545589819984486307476330734050813254391594650127111338457255492389098841655149049083018530591428294374617767005569403469064649121029206171937319849022269524648084311107441631203301372659168423355637540841429244129137870783412222415918848366415430021287133364785689489090363232996659170431593338938943965779986355697101159552020184733049373848049244450425375638495190964076019025963815418520296649635689776700339191511839347657019150351370045818886794469660694525582375153128086527673769718834713387440726269107205439055711631625113682039309706755119129406542166829994604588615331345397448757609508948536492128106046932129482938836770605631896779995054680310103839189140788778293044657551304954047120044679100154851032835509665959071990586374428796986176467353803440011195651536869930129642687363075151045543217557665816169521136581004951330181677109885350856131964782951611428124358419627907111558874857842454270670761631414431459804101920473295783666132954927211124703565290524408274377035867978825554247428714224484497706155217449172919024762123306943552460411929861525857558064447714409653895789752717159292728765615925366593263415604347116295307143491211496732603446036357339292142656407198166535122266091197093798240405275586496023778300857916473479288599651560631755147847537046945394237399313461283237048487966328590903443854692617600019474840663457636688308275719921231563368895155392873112389222704010559496490344816866722579163758469955555856332384438817171467787797312297027085520660261036318123917198769810797276661025639959968082719776123723083439027235041698902907619154236211785534432564942163678365169855944779862120139632733907071692063931402337325441112724151297588944242689856205436398157916588341154001315452154670162626093996635203340630973953899270118341763432762281135448697941930380227235962958158166242926500771212524545952354113841456991589211578552272646081960980220205635070352750944897024330394673403346941829664417086983823169676517115308426575957976064168722578414463219166989534864092899788877327995658150474559486388691133196217952564049612935648752873092572440965102062735667970130199032782235887166723276558056686788706339916490918293267183366562398806395248423180386594616874033321612079181686514206088187064122791130694607312202885079007613318850083239924209362891958169262858242122357666632621638055234797987755037770926824246868541327647724543317696792597007453974316173389661928132775806449638886700750175852598335413534910397211654992451109012652627455195673451560883342015817358274524015226155242813317517779081895104238952154264669253481710759201212022383533766572950366680270194891047869236220843609482533910178169954760306383087593058155899717854961452600513387133310599368699919930339422204564587626983113164425282059287603886442055682785961914599365479843399356927439363126382985298804606904411237749510484827100487820557750815861060920138260308317210324031542389082903566057920837616066532455564006768438471842147109455070763337256857227689592960049161974848557950547996424902559072634234196838687029060107780746757898381364863218197581381965431036419390157198201112720290397734169523334083039289553071239014518638010968942423735954903363215084662666527734424237409213432201285596904626142057525269345207386184982097456156004406580134198678373801884321236371070415288611449317827937594358797467760311049854138749683686055080753460139814100921211027943945033271074171559944871921325882995733506766817695764615733008859004083497955020871816587263937894928985923097967098208974319033765927976447347235990296904626884634730221456640733119555701643960754494541213916789865302991435664102687890466213585446347682148187445048299574895240910733094919126758695247896013390731168700052939608400864434318187995434776626402468432168168555692585251857352562126532679439664083500134727357245426763267854676558970474059595489340676195156914438346664778501395313252240052061359868703348640175634435219796569429037873533774573574328297600297083830461765915618360463216276898939195717928499502814607815839939512790154384325558350657284146720415342069181005268318358713915743142736106216974698739137731681448342267463575322785709539422367075286966421542383373791495579728935544938092154102401569982212506789507188932621220268570509247288674085436652222941926380647059036554639603990958766047498390124095289695296691129449155673578964027747014104455752386278116481756704175285216473362200557268651564944282647889280282292652083317178694895643842409156929505653728543448487088197316128308904449564283312184822466365360277914436921919275546507843780094637311883859280461116887881514490648538945697195885109695216365063019099126935156811554557737732811803371006328444623923967620943531344660773642946795471106937392138893393429392569194659132819847378805076728532327471158406942135362690289423038381459729084150793115600120799809921962558907057688793370036952340005667787518657288792437554134119211638129027284621676195428141227078028134847439343152801174300276967422836773682827232897911982422676520594220079970590065190844119838810791784404173420529568093265187833003253950060601930347371728468515112431773246505508195269397242184048319151234934938685243328181657010661453304251901181670082607872483753288885342171787889129053004771542099348808394734810828738045433012486090212392046061975457388077238159042248528054976636387282848716897641299245608244397161840956647083933669125417993139970265866571256523157629482852015482094366119054483434975962912496866486276281276751920357428723216502643106369417423250772078729071354413536042557975475167560882220265465953626708915598437005013991601737428661175998303002845145027450225690836404883098238936522125489533651602813997900468630405578776510539959875305415081805565138253328084790393592158123336354613611230202862480522995260375006900994746463376214306598073225515642351141488019626725844510547077847126373629511699698031869081702906395492481781827592591114478069691397264064635705810911391042173676641164186393054946778219571829473904900341062578784217166941834270488169673443051706560939259252577013538906490217675458710346929018641748210341747287652619859221714441732124177752416582076069330721964402835610059986121090588654815370969173420679822399500917389428198597515210992204598481234512754269320999531627734419540106663625788311245870558544226568996611871900695380272457433954254555777327794087805305001544860763471223016139055514789537578016957995240109371387655088762926168185260246432542921946819118021238285713444895915305611135611207746497413726047660905073567313400642122152100841012952243806553756732239475552052104891421904241121514727724827217775333563606695890288824145427885978806071820432543028849846229763475108845022587804471773301395496319698724500989517267117469816903444064514084979052286062793969764286650424045728263303401194623043666484968356936301783510911590118372710829453026250165144658384768024118185618582219127246498040840023990132311836656711006750995677367869368272486639494219309334143475375028559303122036055166931305373807172805232434817148459024764590129629387751893425591204316740497681151077923865924092661135239038177614136645767691525561931262813761529178413210449591335188567278284180658941336425306607276621321410392957210276190158313413928169895891200915933101586116107300189313518055704031223069258064527558539989041925184050413949480974881119280255012572017740888902654228464070851704538413664001392937347883099604861073119641458752916494863776073243891837697947256015039198534232699622391123055586628826407087474773809582785743210955748706054653685411519795601335115766551909672403802319249764365845893254972860715757572817466228967391807367495145398941517587649152215961841678940019640032767304992437473833838022200957969029074938949180328251240052086589138701294291613307651713138460077870142812810500899334202392884945873591054240616123182163608328503559182440631717609118656609103325820161188106998254100496877393403993459933407218162605336076377727360879255544788361052703163018003390823725551081253420949538307739731994580318407039028137473702424661330705300420566942257804067277763772206761809805624312604950475529546347747212705447248454551996863032824624650237056828948008791220650291105122126741058862923589246420778623452203237649953679509144383901053838542772043659810261171566725594476517084771069707478596648749671320729206852004568024886651055910702082011145241219899301903395543248117112869220271217785249004071322337815432050675788631298937105950294657007780158768088307158465297522715104969716168061269381557714932111620931254157123727462070223268074532362975708263415973359724894939988961760184514476729561476155104415116566826492341172071163015803229519459902493307281704865786687741594975091737488526040948945820138385917215354290615340419642492757799757628776414462867109551746714394775218732724279424157861924264994712552990407413398436372955730890070900591865335740007419956492881162441821970755997572653084386160745418939138347098540134564818379567239468759970987321295028700813248605824156248187822980199274861929305525580671703294692229380509646844824680048897553877216971156728136512204476237439765498136917633320178354732166357741814752992338590617201520988544972683078429856875104288162079103495799774090566784054530758129739977257708171101433920148077183779092768248824702335557162006627513117958918670806418886172620508717997915858142259480212373081746912404042403202888673114491728560458373448010471677256696974727479905831716037723024320815957333274173110728326781979693046932259701944501884179103056808612576518068978947740491919557980992171496778934420316078813714828240645593161403382822645753499080834428895118729505270664664991856046474876799116969146243568105421047907683686609338487903905246998934847313137956388119552589361350788694915094452380804721663940870228963931811044029570114237234161604325469439894465570707668734880302615135317285119720870792704279739588092007748326429361093544639585360258852537903884490281302073905330736583594800016293453803636006123723062015544654483347368754276955608310263598007877693180961310407835611824425994242827155021297802144009321138589382913125308077572542937230149589508100883961673604347703730742843156558847041847336012757097325616216575243573093210492009278522929664977118388990540085399946903367508663841905076788674392244438444771975191840378503213172600263550099273673201451677469463122774146307356509839152880582175944520511513176347184699839683956636957683804161716909627081937099497767649387139333081820172901215554876462602110001550325683208998989526824404686661148925685002868910900694273199720449256537571770184484178054691727301160907248727433444204898911759713985568976589442106108330301656763618115681560824898649932540072811627024068351036443874196437938315275357003862779206048819026042593970012506183178612188262764076004850305354846818558670944081759597583533957921398694533573214798665932731781164399468907806954541126274564625195151984129125216251488315043196381532576663807887909169158958496797304589608145740311245769218500817168903359110210799288988082762128366878243262784105441970941790415052965744423488101550608003081920829351218200755628444101583935059572713526408877191890978199118685396701723423556825481035131835450260165320561233013950690999344668880191893875259596093154419942353033281757635817478802175905183155646082182038910415027027753100703808630219101459270539399759919939047165288078315582991010262867511846284838954749409667538174300996682097410044925304396164286943937524826799326771199950829899019099148737578088625782948407162746940844916099757063550755708585907752050383968984725698198750545631942146457573245644317076323535862937372374916046457730506458898438110278624394856586124471053040290612449860395190715697859012011408721258452789323814474545366354385029821062881747167769785448083973939948808276016094592410861771988439103689224683469857857473924550389023054942838693603864623969445383861242386486155424169764598000050582581936012760420378470763234262831236419077161049467361954865809155394195609279115208420823127294704474142303509319205630811479878111220808586226410620796982679187557666137126050323113330816199125127545152310673897922863706656330483469433354807727947918106626618396347820616391447006765552457211793240212549897836462065819543466507600606672381193845570807308134859199019530371707099658375431538693147782307759770410089456739948011749775892864594437241257621378706256337553628548962379493238567242041528680407398037023679142916659583467862172428315152562325579713440467326584430206661633502668068630287723072921423788012917769430290119823454304985982857216080475380122730059823986958941120751820341920258784997310850296867168500570768122578451611923569309533916357899254228801325209718742032401885791061026790929739397698650223117015439382824628324531457923128486860346325734083386235472531961871840745022297838591702935472159468258794450509848238209188807777764790980335383337468325677095431488765828468748210842497285286153193808062041983717920253018012072560436719924846023953881116037878593358172255326753546723666310227007072207078491156136333720856876200613549856833658412960199637420957736669529477781621079856628089038641263621054756173567934576717248059381620361164245369851099649853683496744720693367845117589873871114688430742473600312363564973573660187480381841908637613717199387038575797049350008988103036804664937866687534277347010713275119895746171396690551511264358105050867973266813242037676751633653172747034292923132858424231347028933482997679388431680587276084416863691967938135380714788120609071396566273398319557943898575479015044188065175176286083064785182005743142337963036521246075452783021256907839268609636605623789326024226203364565892541560926800834990252143894868830708075936602689029963102384044654592381381861960264891691235526750445617256288984006833064027065805520064317896101875829604455257533987323274724391147114505639345513304637111868395241075399796593290957217653194382056221946205693370843137584173379301803194765521937321677912867157528812780043192281316260227297312656498139735178779698550545175668999299680577782178232651156637798549547511566514922455854827716687202728771942328292667756588488354169712635344943468872622843067586424122533699571012866194284629224522708721626496816080275406314549906557029993653825797780759335615960363991776498551102727843898296702094764139390198653332141371646254586372646822542067610023748503458001020014207618904521688786042079472645578873108256448559166938743287534943643564241577354098710216113508530937540964427444228916304217270537007449544055902193568154391229310896227130533621620242121867602999271110300184929980422472849639914156956319818885843779491596933959764258023455851920063973228426115225205485001674267313734812339230155337231343015545626659110330436745607698581593444523109700274550752955824240459742658488117439786874281333605420649869481429746327468778328596350715936388032853393258478878190942409004271919168759435028788140691226394494438759711632017922430399436516309776977677018410083682274809990081171280769924154954590634074400270449829517398892565632926781383097699473280999315644036943049219250674498916123672393565212964794257009689352089662617573967897259975203385880410736225161917425195907386412615189919219771660697295423568130562499404400335680109214056657616592877660759970444288127626727889813887597232269483606962705732824609102686288204689303164955278919635243209111963857595096987831939740610003176683782927464736342498592035633228485914076454226137585706439324683449719476360041009893623914139362311053466222706901879983691545914979346281321807412468874426140867845378176056393409504464225487705787030487693681950307553398993368187357242381536569446903972662131895284354596759382769793141816593470757911036920256587997459751874672210926669185778054796056345359626576811681145119099905769068027125318846739834868841980922564257142616597066849374180467499260646377972730320921547376432077209542521352844028360375356663769664368649567023861775254715969038537906318640344265139811242837273448260685066935551762307300064366021586413145825693911315169435458371085830231393734587317826336751317863326003598994863668622314284130997493969114820584781614668413817478479266412441966701250324191329062473619523604676143706520231631660094062804652177228806785202246151588808361447525242511905878697130292132896319260772106006311202827109034135001754103120272147320667543857306805873122312844399048035701145776179409927552224638985057314187824853710837455335560255571026807990031089996613943580342375828232379379739521677705819469636063175596910811663524638671696875973091190148388608713411483272971750385209589698967173232239243014998210183815786952509377345846330012282723613718071508945600687724984393428328519168633211104181447203717433059620173478631299443528561954818527867602992759323224660540696420961954495187977422072681811234631636915500994282761977897600149080377765753166758828851409688652425940662988418522091665760796914343726258377900005852094773761940164367666816578980412150385660388339297563299133365870737987972836618522071976109626503594267393822416156098003810291083883960758298247108313416998347046384864193104211727437140004837681143106204013306811212458229062285796550404781606991946034405673782440065292919473381975201658557134024596031667406626749944071063628461020703631876854597108592871508272379178624141207725681155209416180186454003533870957126029673183490062130016486384548469629678929352340063154729371091959377371236657022422182845478669104462323964974354380059899582141230562829608818091057173699391073472299254315667198111985384481762213671680779481262345736998072224592273187619501407633424219827295962587498680416290272965756464031322875679829113925762125976710263413036457590992240796800772822380565801320555527526961123023656226149401017716946348126397220543021355980129944770273295083549588521570337930016817210095297095343318023031854822907620606558968158767713127928874830552295113901701516139088028163661929801191458540243239391983316192591698060640026323106216277449773860706403820000917204680241520880755022738121580469670000106430909897731480292528298314693584362967461881319682857075640780199641322835191694300956888560012623080857840230076259354882039320035722723064883098073745284406872344218621339185304537611128122709309750112323441811159344304662733499825581347853743466431191973683743043783919217399489431601768409975066512892429726789746904199987867093977216533204871413675260953159628965733171806958106504778221077965691494092525767474215128621731132386719768582963611015053844881526872502795130821933870315949074477909887184179346747159561533673231562072533310479690851756523261417885150441772367110968259022159682843370183768844474700593387692021528637520731951229993086083223176892208469377905858163437733154661461141960542069391540016502256093226488859746856471057464387021322234368337686622847950709255897352123467757121544726345437566758813688094891256570721649482093735899279415861805414478345613378431917465452231657021016752807170484319667849761464838831739925855202039597380640479561019085144953402394998388415901238470735194957118216505058724028660001463634947773772790955660146344572506703074783954875198449038260896490735532041398452138764048547044424450443381320017361313465872963663968467337532758379952894130800114823993016438700888990664893928458379360208639896335946759406620952841260938351619932422615451014396174293292898190196393804399792549530249105795859594372434807831646410910055123346968693800789382956984158558503802643713754037754565467729685293489155982931229011149236657869397703424383526136374395495114726392312605267128969785521894883761150065325764339865598159215646378636892872694645898069911181430578586548653181894639684604394748678059879602543997340149334325975289452903762187640308399693550456054636600395213567346044006071577823169107755090032864967281217612177839804161629736922352550586436460520021458368313176713652019103139860500026447969511939109595329392548871087254749012156408223348752935737749648559444511976587890511203626486958428019027337047031598654097792332427448608807418982943602866565650537384654091714266997756920803547823782033062986588965079278242226945468608662643885214747823723320120783925314988275719005245143196554241931701697091906449842607582090588923350147029652011276755797235390060606400026217585304050824167312877570004581767595549043751068563462948997706179817029080084777134963271954079942399727037569237633073478800107646404732021532968505589481780667527298835806827619052762460776198153263461558905000438548979639661196701797198265250905684970400539678266960468001287079478315798007596002186809526866851252910856809587928715839685151026163749501654890361670025503821256931714414244479579988562320841080013839927204916439187542430144190523464350349484319348620588810410807949413332428088076246555753853134394590561393760759848236281292647002609865242450614323212435864946667570878190932657592384643200703551796583810327875375473244711432976552728336595849057655382444051197978188820072561855970638758150912884750159780690864945516094220300279391526211682935713079253470888329448954629460317656618237729329297842523259241107979125969689868871906503121082024633362376929356047393596896475686144671728525396758125553945303659229578890977186985223818241789437726676307174927951344899034735263525828989426851244150945944094122874519674015998396736034359952262654064967103733916976465185458731115113047814790600611245248105317947344181455909105768198439887692141810619529743763240752947283261658204483812388688125160983019482492685306206527852421238828579052657296070535059631752544290459155437973489455393543161795085018531311975113720761376848408732114274239282765712288783963686017904691929265737182194671725466003275968000176855482780894692785179522697608634873752265525324645228097951340623880207324266032959569232444667792461387214805295285692691734681499848629804462457580974661221930996216155940124083688630075192358909059772538842742881800872989850481062764947395930046313846021848349142991235203673665629801597865001540905066628823596550164303213427692578930323725277355201692870558077898393119553860079796421621883725996421541428281805512298353202245489011518402004788031856732142539095173276577403426365905554577381111046895750273563424897329770625839209669757208157753599950808849711049548707757317689241714406635929055905497409884163163857285433302141046744316050103350101696587594817472097166579601142976417947319425236284089808830944195939325711710121676326105784110864828837730116563336168211691164045300986894271356335181891118175652288042700953177883080752708671848505459563790018557476362681024868137407326763444344307833410441993867692996626912533685952266238950739261303053072392986447594336684445615224188478356486386792118345541393977893485456348886662589212156860130993266384358559220829720139521480015411174332800210595774581114295027898299942534398685938748271408913336592281204034950593129989906773059630313273544727473527610409171315333750280716202984602849954514024632148510124928314731386584693919004850962688557271429596950116319611936935059977783731236872496247509822047485582887983168419824915435370157548631261716432454061462707622671347452743745965582419077369853077508439522207656831000127523974660216357200188870687058256959671550816018157719268819262272296027591064727213825794717712332203021960633384515916686979750084330292012165527445868212394866832038249833155044819134408645583282519355521967989856723858826081659049569744113424398279023686310936982850931521528325471333124681805573104660271467384362519128653871013801246276316347520401766594348893725207110216360600978172179252400085913165376666613428953425608132305508904069037964685397538357814734435494879780245474358114632655897623972658576134657573332111878622394959522556719124040036645905337648261410643574210758164634497160045330139769809508592226900282324017651302974419419081763566401214212428969384480969561567549493449590203430509917791244300352493156530243042372352935240715398962659908618163667795012275895112740388347549332113711048770177749527205106521111968561871437041060122674790234324023217006050265402776641360943619717005370480276636069525408431430216975564856048505190625729213527443604242877882498932215489845576304290965958955109739056876287296516099136118824340841973048764029051932438961825488808114813791358671890880751723325791754782673834396844863890312855239570233223097940699609704143504900792225734099992987716870332771195357450830026084279256557504251075970639462905901834020423069970280045597491110786826843887057037288427216538001419973944002032119484213670173736745565890539626169373617731055451206295198216671667132416199035040139484208199871650423445174775934017951178507467184907877907894089172428353970210931124853134852240144318307532067479355633866627711243327218468397963915220965118852561948547254530188393174786170606012546458517355897537418756648628258142788283327057021429289748945952130770504225809141913025907496431999601794023271980655435016217723586888788813166762214217988351350499226216110822104086882609104467061870484144463988471832586473593602911868313233177031217507399420560843434363013522398617023986667709888104539088928734898475365330102264650287649453096087891037932449874384620954287749395959840818296306812269642773400679701151649296943993133746024371567254679966884613509526540497980510657412619224822252079290568213290823180565066330964146643308478639103029908077996743474506967827229129401056072018498267709370418939246381684097180889152022782196761713481888174844702453595959244930662645074590821260108602559403852039529792033525809374643543421694207929488604294857836185803744497812839376134991339306325157056661319880696665071829109281884159408517626442939438512156122828316697361055846931388866777643484396269390050819094753108837532489809298337267282497271869367982202446211877839466073583330767569440807192118185188216922923381359610077581365806008958968759329357503734421230694263485068865207658675450025832690082854189507491797616023504709663236713816674699277725933550941538652390915491557959214513974009741013192348323001003727469796760068674869028524026054152283279391816309905456853084405555462837494805374464013703425192658153577986266096563994888229684007132806958062109207122256481813089908183769045980875136690182072984737491492114628988686278125119073153710846090704524894067085623400466179436272741933229777875794744429109992859026480601915339477510228440192723840496380480810152036233309886798270389295471347727695195534713853411444184649230036287949406725891521358321599396273517407901522709320230571431607639873513022932669918458712226904388510654128272410403535476959770878269913824649194562686943539085525133699921779781028009193986451619642337994610324382679275873213888005732308993788281339761897523697499589182102948706182541420573988312083628633992917379747948496384035603673683755365826313551295068525106087514564020453310810001625212731406556547793782457363527866897047790672096778399536105793721929271778973732225693539369094974350104732700167566387004891151605851775104599229448096505284717044770177325736715754717161888117819795021359983356946017632863629549796330610444433805869208513167496817939674040734988851957249092387564201570780307593459603373054947871855628092873679578637130764445320593070634989718061838512315629945343409687611135958759350804148599636562773280306104385862830512317886255177320558456386060437600558769704199392949654105700271288701240744166070198985717492389059624018161180414776262473643293026680795090666279325923145123218718775973221118799610806967014022484781496123280043525300701018926232003494103474567680001033329688524395047628018131771619618455866744770978798479047092680946928878304671746554740694885364443983056790148363850200825718542624468576204886830599928466351557568716171508741008750669923028705791863193409333933751171911394919443449557769142297292496455716951332496780880174353625367024026580841316399032140385542820215145859437754391723445939707447605306373477718834342245740683767811041185440476096488646956300859591310999199054047766083635026698720725880980778768163389590786560036436896798714945857021210920440535070094257985811284939031621023196462888819271806843694621144456319365623096778444377897592308464621574736498753472203561090396230559709709299442090521510706260803270680552952018130288535314637637013507025840140572877519410150540003067802044995866887994033312712625104637515811529132275426272682959366326642465998595556998228731332523684324883945946024183217146561392268496400935976234641749592856530960046249636142869294249103559948363916741686420628208675062935328769136993777338724137270609052937862364065310371432038638577346601592620238828276985880429452674804068201711694417184985036227365230879979247777878035637789445263641864474887954016300076760312000826780160902985243393472262839463476204937089145872656439388259170927829587790742189914564003758875479735438787632202920493847849538107848224928927947231531145264066125216772008662978121428094535083500394630808543052962028590852723632986886009759064515928158512315314698162020631015792921080423295825110960460377416095631414799470230393166928387648006803953786968925227108864215042895935794601412928904415596123904689855773544753992618270046767455496264531517080514883611860622143756731073756408808755907670481481937243408011952851484984987557861706093023518843195795923200147886042706222768713472462503507074371880707743748154533739098408028967509285930183577373675684961926836073856021219462120929904495752384887336599771634810323969292306485348523331439494133063365460590048442227708690073514853446360120886963336595883040359068481954917317765164389028627619592299600709338607968053088141316068497291492161629876332647370749029108261795257443698440612102593047460318075784580632518008551648107298931645921760657450239225555494369289335536210747386676810692159177976333353390770453225613661427125302148506580954236831824527855219125866130947522623339494806305810380961303883588186357174083141183710826382519210733321324457734076227104679221735151097874968970852191453813062882940367937929536997194533558852569970367343058310143312976030035641732346966697226053140225368939480062358947375732393006662569432639060187551968808612853508353135781565779018338769868062023969676163429553319686731049441368611466549619709469037275936888736286230004753188266087726776152078557881461358087795179860122741684849787619411258701993601902297016000140449316695196447938964445245214006599107063423429776992169398478458570921569719473510041695208218505600937620371763062573256391026908953815933597949646680771005107459238268700943288549526755864578965152784635196641535859490172419404144878481036813503500909558010140170216582575866795000324356123896956263826710468701459933922297147789242590925971793992134893294888828662025812591143263689178297732664971790005263711419909144281217466428791445782894952589147975517266938370474572161931780325936884364909214619370466099012267832146452604588869886382882165055446685291420433311778834759283639257532279834800454278087288280936662528567733005512880711572103427114988731324447733451442118522022697114456958699342636762128810797165156154304410471834938429959591871680771584010880291198705369083648407741339055931884579346830301411917080471491292982971032762471182927752107866113115765126493528088467813957788081246906382501167736880389687948226981727628000957463319619665464217101008519076747158614780050021322928373391921420874915879791853658012261264896037522563529354175332585936098545299048603452336203032401603196318861000621943595424923971349384907632020362847254858047341946555005654236815356352975140817972676431499541486296879994138801126090348242716685910449049398928131841994180346333491156344191625290269947892070319745689610819093708943251963492999897597231693322941645378283002523573578499525778058209484167789735100205791967918737376450012175503820759834289987923179824593785173305581268856263857319673217318330069601178006726482742127938790133067781673589165586021424300706403016654329524676738277660545212554898754186384614893001842046916931731143107449005956605475814892164503541210947616880398304801323820518958256837207390990553389351796768698454262142411434544288640750660413247819757716964788774827057439793945071640075144933604555709634897852914039728593236006993449838039463595913456562518341750276740546770775182133848143479372458271848833270680050852921602385225663731133396375957614429811952261189844278675122087765133803966551193275723327571543909151061610508167734613511018916298378672496369116514593100693476069864713979543577708334680016233875308201520606963683222273843472224405954879519008762643656672823205590225861063354297567201813592336454013271128649740370818445489872843427385528715558050841335835898805754793117588850539557769347667378401859541993077984102523327235913026344746936092510779350952024967459842759759142679118327068150602876022215649207776404806525688944370211382553979006236578843764753901226063624276342530650823986870657214243426848784675509493718350815024884994355681873462841470260993731538519143250612889618907959666657931947217055706170480830097271706981494665029955021863216029364772832407726346418173230354576768538895752424815992929916847053463795896048286365258710319112323621374619089348068883059951810785239093732592499612233400887117699210001014990889606516075369743573163330409671043851800124933901371502972876780926106080905657798802811271124662553620750379243167451769499154641031704829637535539415071282032416300258020063891116470961823260900222865201017878522072681595259434475869189812491240481620640954203390110313345641523534589080811298074031308408066438588887054708922777482173901842892532336511141766885039270717990053801481084693789292213809234500091657211634622880205207032778921058817600067218310788815993584287339992883254479058936613996575790562447119918791937306790781185241998561143935592218697269270297949639281706066811904073863810792604964124527979499651220114165315011043139326352982481826153625398291944516907502714228614467914588852737313591263267475376539414283517849650189440228045975866540157185311999931447164595778570431208011591111365196735618777164857084910269912312680296142333549021946792751744535764342532007151300037301886711122043457196237357021143032471827626741013471032246914504578041415061727260565505632381715604800554563215679473736939305050118810423882749943084663806603121161695592579001933165757391239884879418576713527184037448296377764680973026398895350482037842680668253836789725659052912285204797833961997142119439914214338286390397074052410070627968216317736015118477350690510896543223545213293089535168794656647898116486749302178151652167701429358123739750852921253961548832655367959384960734398794027893497504865140761527447576432812022238135685990527134761524873051468364428776240145945453048660418397999012535309521679527651147354355481556219982927206905380132863628980279985186310641287720603428977941160628188641939664566915515135516108227382355161221524559044156929433943698541110322442681594715414924854363352402370321277641712324419000990081274567916758135296803114634198075179178210401896289053714722274169752202965378879297260783791539406412325679218036968611464589971662104106977903351555942016921470912605658921799852262460535192206417280680318965243601479756104894682736426694246368315167572080836454971006259789440528992340453360524912894812200007721141534995301789951824743991099345041078748711247481706090183224719530812477148942697536306919779560167223212871275913980372301147921877386980047154739807064923820151213723694943818702884344884422688855891068696160564022661925428647120762724859571240397340701143349326736001426853586664681870596986670403268054556909003516625891220343728747881285031713957768054474077448556729394567848044573428694046353810271804543574566823723112411268050846309827240161593003794184301495824044661610629906169942014354098863181973780954725114740239067267183856989978241966807719677084698476514279316321223800846375067737832765778177620036874060063117798660785607351476388358896672985790647965144562693074810703541588498084530449242084163305712266005168813462199402139995785685508062405637563205399992474301837420282028445696879970253501332410923869184924082436367775080047754538402696106798895302878986753520553110180012772701451881250632191407161627737299046844219848246841865924233004768106221852409123678288386597461071676476617770867908223608437518058499420892984152598182915877167655171066556670096181279873932610326610595541948723816620858374650611381503401815737709642592687517848796894398458958458745101679088495794348812879238902544755825741366449215713654046852552513303963679541386680836108904046224119861354453933131874069638323745151029192767005639803311778363539161412139564710273527703988632446157027881267359635467218311875066464332916421327721517938958282852088500151502162982674755413225252324263413345925083662308691405595738432442797132166538010559555805529054157116132509605440327712252096033487477586148166862501249756073348084642365600884685973085752235859378466004541976832768904743812541348965375237256422783181739785748413478599822553286113632509541791172594667502212355520786528387190800269939370765445410222852991455911415518148638383446370051446276834918852552907301461277366384652862077032707667594713360232947279260411436901056495186291056789160715937860465586795235654393734427582749271976399885709765753940765326845744473425005015659136703980445497063496659057525374170108577597936239443575742369500086971517870385690816852862876752284985675762285853548102917167932088982185671287840000302808015513931382183064179130863663126729973850998949414451067842660457742201527680276755758387898326293584123208892767092507759509205702323366029931164317814594923416256504603230525903664237533142241773001042963786531221690822927531965028310784022812608674370005487072415239704708942050265836883263485705306988326315576047928253238968102821858165828672739530214509811284434961994797162120480451616658232561244522555792578178403494374080703575596328788096627725923853652472560950469493589399986885747554786420584429647374204783792718499484942991408207095898093966349186488915846653325364279712929111182796313860769733443132032179937796511589201507455448079633024609074641060901036927330292929630531977193673119270420621009186013513114394479546369098471207451714007327043366378059730224065592382554474187687909205173205529466803841827941812135478600596388639966564496408855447142830227291622890249482977563280578867898657652294947725973027538742061745259371986609548741714063654161627901785300880932886175849315926036729049118319172243333748322874067450814540362058924912661967763950453941666971763767957217626281070349767794381199365524698439387043492886725730596272393638826229845576520229973065214557913572554162975205472321162633224701340766719972279274749902815525713164801906747001188808604824996236927629704197817976248765798598201341516976202349843923309228777679826870210541492285648673218254670649424599349626019057940445820648197998630594719765044428215743015914306593494370573118639498329111768084325605780431330200239991244968741923076745031470778960224319807166118660842361398427162174422710801041007229059494991782054171663043588432267730427757186606038521101974318647626446493148694054637846419161357913614334549679140272169922958931766601306005424756437765962484108731491726425942740266576594730963630954006896682795091659360797173879918422914477520258526846819110068326178253624495072631120375900026370037322921532018187419091092311701244926671666282882176822321150047355398061567438507263142962817825191113313006841640069892406584195276292375101109406728598505351123028619565229708871237452723811266504593685974874935861831550602482317396072845685249289379129348232515006313819754879449814776260014271520763722230976218505122094492312896097108927714266600598550496763699967304135962715470187622383003521764275424365761099029243246188133312831805730120356806776436135880311419722465963324927930282776420630428231248732735903410074297529470555370494973729413921006827054824569492104785465743310754565925087271105815795953870668292872938587992394253599715988513813708477587044042840853347739401238271120896807911286445186783531746928643557243158067191209546860130263526255409493514177924460363091895215349433524291694386833371500956378648857893831101168777449131875294333830024644762082874746826905242655151015217216601776388106516733280336005393908261700769231772406876433739633541014175194948980566311153236710583681268175075043917051401522496296317773053280245001157595195458431322494400476299393621370690881346679277725528736523483024627995214999130665103385548763788379648341344733186007785000287130631385950261334001856230162441634327547186573680336596082266787428373911074041596449854875122348722742614940321990605058445368149987243189633978959674746072483821374598429478766417834618897890442768803894141051920204439872774516731480810005785227068242351768763798352437484424063895981194436540461138896475507559065887141914404724022478437941487386104854619958909045655179678859377901985545800414645270605055527654339664832675633059795602318244551886083127098016406571908553902245829051555312780768558817617120561941644329487690775811009227495859166262006283651494731500951449763455871510258301369401442500514945242958601395629451439739147888301059262769660332068226346214783684297803481508068143601363577290294290939158072952091158908653670112630846511351545978350958902212234751557739488968705107236021489868651192100283969958551089313212955661148471748942489302793696475207118761098881566923090974184374523056645353565194080370867946074421686434100286095803566569526170844587887092148942441074822578816459502334780025133127336212891800423704545798710262802938825638058815887499785127450298945773568364100233278601045530797858582411037776050432221803916302734602968763157637610659558758269112708098008355690422712909973828026112175678945952111608150744871572725726724145032994233937980304938642515297394555695056435009893071402704665696257910213651121970053778740152642773706359778138230202680719427089746006589638076627722371405630124120005570838275679251393497501474814575748983528372188953883978134805648746565903794165260983885821576599263637289796436214618210122842524964874683921475962136738692454207707845171351299813487309173303446427104935506811144778659660561353279459315866446941361742179453649511235370318203714346383387967746367464636202765145647517378622912625540811543590984266636116700556668576937131265114141953846189547506902844335067240628685192252482343868235739185475414427884651000133099357533976577026070089693462339210486424965717228548155718055465553586458715940026896509917816810963719489244067365307309159332494859449074024779785422490308431525704285931081253566981927439885183863724391884444784187050395104414729451706430492989926279704366117247600024881656168665201362824184530269153879490207524896828576946446182824122692807774468792743951705811329973674240924621564604587145088274853591236642888042603218754286617156059213214575053962944854640623707220584570594379396519129569015978610940060662371136392434066408150415385921304150494125402425362252993762680987545662826219843280938924941065289411377913178260660261656819757284012265905142474660022412180072191296815853276295023891374564258775931879535986919625859325557904547623605955085982156969412173226120007251470474825496146655546764981638418647531272734736156092555203347156589910450217993571238925009949886377782393667454466947792015035895913193557542540006211172888965484422938922703724751641242943009820638335730961958064535940283813651911746276464685939357245778599657658075225734539951555108026570648770911452796448000275346464451352997802695508409037072024773781377162213278999506125907927948722451278025189852841765616768202629236566821392269374678481784041597325030251367326313474584717896823106049748607084763979710009793594227077859409793006485794076943691758345620049463906674626275633552034023058404405775574325713402978592318400217938495055227181699630805601363868414093949415779680775301762577941745081933313699830691505627577790147245990756665657387356648434125092350132217224820961536596463577791087417272758116164955780309827518395122974449252175336228977432487931719924360537805076504959283326040935679444878456897229550736967462002124356238956889994689759180496825083701588403061058487954773369026276084991655120878032834241186897575709407004077931841882822826624787168861102056473199882707867725068694262249930889208184616421477659308891789519459280376475935200846846589253945670812959776991340095352423189901540934640003375884049416028154545038122955610352503374973885602105777791851491471798520129989487253775566185701724491401909440114838376047945241063852945908499554052860827091441369489125863969715054602409071293612126942397027044198290377465950394385412716506698316849398683223297488034430859461597543537681847622106596768869873092966549964823718137348638970066559602197711748720360478952207779516877329633182614844292730055890013445980944236099406165244170966600701400356215292611955433895249610580548049726893675802125180284005653136864273613592001688632285066011160770035683700889045607093039331841797086415123487821704278915713693189501306001872576370186212226776534332904493426724808814114662407350575951808447202236427629657580775506566394064740886659466137845373185168927604775152777359166944738189469950008225919795266100693271611763142614050340459461530920773625895030405593829318755763412860773954809509405638579627354124906315644281480962093533646941713947658592938870780660976571478819252907885616337782300013661652621419505901686728185761216550199978079623482466596798549404333004914338752331177793970460613586726701137872091591529263594191012347813232897333330993215097862957061449407878606569854777031652429466113382743872622915232406117037687363616369325387834474367405816399222940339964821986526897697211472926951955399427103802420615832036595323103915576512907304317766938882105600350495400368498220690901830351735474059863300221247218291836833572613111351719152721897018009103845184431052625179027249394807372800911533211577075085633463065670084249870264364232425591090137054376007181034286133183996584879584400208599843127344097803183131929626287139890626621769613131784053273226459571107903408686023221400777842535315065650844363068061039773938886448360153771888311420239760881399874809491476094170439876604140945278126222787653281054323041680648808863029101215632411835163616657447561933595414301981813870340188413662284550210573740074820593969925442274339143324634930670668876920783174289173940604285671212990505337235356995292742601218412175826007864517823428824435003548672386618421628341320166674036217326383220727500220550983542615433315538321590981618406185730791609728247555252803706830953675471613614197739669309449332339269660924033123617952373031900882333111511106369951856783853189369802532384551335015884058386443132573294650423247726823666168581043905275716237659941625762325960606931152830224330779034942183826558275350811825309872426975279974185369071099276354853781924252459344500165400342063258873040226208538411823421962317349373120177144088958546696524869738049011099172074860271335604117223944879760064551421837119847732085769832647378487960376502670388986802133171522739121774748234569423915453372017446963502760021476938421064098918346058096534791338582358139530501600305443244352763677899949867526086588639982971556106317636345853898237917565009099284160487580385259067620041658519043249424347679317652219249840175869416548481689985518391230327411011170663372825023488633084913018774635424145281018908587418462765919728043774116986823827140088905368764673328166140262661843482297947707081063084479389267396635290202993385890882007788571586974113768447632367730560537756739064096024686225690361680100847242533350276733130772376103622177149244797479994210237917136408050624156047901665907093495412088185214703921330796226889614375494872111841895344048221589543133909310575664318477555189904332839068463306937161674344467003728272251583156868783280041137945633261296950552966402535047509479127528703256501952653704241755781717482009317618947736039930612517102455109814539431397315058009084368713331435899709920890814898578827519457303921516064222038963394396138566679157883679739707970794869270886058179802390648929964817324671936682229595197976550511105924009190453759242361520835574532414099754298294254342791204571335020144349996369175913251022783697562162788445564785384896293766780108579901667394292303659569663086566658456792102909198379992442378192330604152948213228007332288371957276246938708025460855430699044305883219700214243660735984085150765082744883071726755580847609748033248415106718483929742622765947703581036495702323868495016317048867662671674878448737069047167145214862988471371890667257108520459894803914512192288642210120116312152916777889130241502249910064502381030050830812747791616145833264350457843587470286289928920212605603886707546181840653462362860369017460495303307186893127256377011249899185927048580276171459041370305418637911030021957293542013217515371197100673737146823327450667947613036222065552428596299457581054530361663348848328105478367879234203453363376494067016914252701568535208146134399216916721248209497657813939801834611549642058845029166146862620453534634022745765435283832925013791322051253930194765171219951004340693794050810192478720346186343226498247756131391547134118976980404240576213678133782224125209527945261288490011822144127570704789399503248716503134165460655814118755770691369772590117427244109994310840225358602985986627878421064254679764167561015561513643317809040531937515943169119017226991818410214878166849455441444889925800296548261477039989134640297302301591379846308432167309510433335775337713556641821991052749276844620016581989254611424439682867053487074662934516102887869794741281484206188532639618460462448012756284008414002951454153338997584194374701729418796144115762196677787005332674827880444073651520279134818100250811484530584512972608123552042913326787781577581131476592586854826148307871808970444021594582082088614421075454751700064104289963218130559356936671559859079702162687017146259281361012527735943912533933828138749910410190532558726427995111761464560838998007635056315430725316825683575163289579561077927864484999537447925288450632187318906315556123981826886980705413632818263752219492778171950655198196883466215756287624874852133991282088139958776178068433589689289438980412620201109061492237716901122657780572020422015856621851562151858432039760222118897783957206503520203070518615242565981380981280990569227038293992029108533100073923140690425216818085694107682631245164270789195208409685527983876701795901562848877541820670904736301742917452536493042313206644971305816250654164581574856571197683679142833815336172539371453637170271526813629668491354334795536503952550271493872282482956551557858659311574791155795174972975909533369420341604333645930311028713371096951483386277830641087087469443929992145895222714257978088677190093911656258599133111353168714080571294384278473374803653296013797208923347155001822333263651232086892249605469057445441092114203101243867052822685244754587858063100106254397412514741174278750123621590864906911431460410656213222569550230732571837679952058263337925387199670552296599664406850384736695664586811450679491061700548526577948166691437528972537618379847070423208222971441722391565798521974298025330106701249365916785914844005391410294338491265146173658922523288909764297961025408424045748863260984671063971548270343842610897001738564405577108534223585507562568903152458982964474075508531863379702470549950811492528551555129046842008703051739175668064512285403606781687932003194432289787491557542645719344353932344204074271089975606498326609695388194273485493528729887512951868189841686363560318980777752116056439671048495917451502380649842306638573249499457920938943646211250716162388561807403446488138503794179975855566373681709902889116400203726590738943218252744655070324121908412319226629523952664301676393804256040454581963899719945492887988854264110425573603168435661603320246403247919795455835801254229042253934689150819553521719075701431027845623741489249175579936792144293129795043463010337754431503865061857894356457207574031308917162581929585737604940256547072931102174275754583632084824755967763974541738328482669440893943338096581647704165171271509855804240844578155605746743321383860140726233373486825055568748572398386150981671565982545715832673463698807772424110669316082214785719708363599443013865571945942145714057128357965954219558462311463680281446355316171429483379832296124822525322932054561743316610100100367151374668082120002570940011077082318697753195172309269552573673852023648158333819050878979462569538274542080746978360645919114430530669006032629989513216576612260603620058613827761756820031632438638585877514412388163790385905769176662424693004375777642138967155630160443766640209096603611480370571340481516968035640858650789023584561149185096041533647767552143184036915632470442107259704888322240700476056210885270296418605742127520890347482781271395880513922255847664078780174561051792767275683871195708154960174732569953267782026686871823778750561997675564642422989072251697915440328940145946387093151890583110817348615990396762711821453637021865228813967490117086884052334526885151682484016458319746022724560604451091644957438462439163667796240751316284208168867771617617541345946871107273074335010348022944609516074618811130123324013553329539116045627794491857292066363042857601397980826026949927851186939810640274352114509894517722368733998033933982172618942749662460802450166025601309355911866583775600567978233515643151697699415896135784410746199158389153791805185413478511588712793685779740948459032833236819568846493144088917122659387869020197559972610870943143395698220980803625391695406243361477144151127075498526897820497524440453241074983395360133695064962699907513585663394163346995670992573297520754757780155580711630986211988044907621032304145500551744724402137164911492788122862257060191701502418780070922686197932899151261497624051829258369677083473067067913085035758571366392518940262381625039776898153699147660873054698989289827682461992251645645099813498648558445840697769017243734087966159086359698076674062204559461594438935369032778208352646117833986737709651273581232079294170112653354348875283922851058566292161848122562619278436253830313752788326987490309027280976727340050251353204693279499683072917273665975138976138199519433488863555901544175508481944857672374769034138741860124223279731401167661156779788844865782241467182276898380421589402874633432547159060196876296035099781824346279859569680012605165017853072778996833774233024343372078967254638964440160163822623864082944857243223547048536359541148160505074470583866896902709504138575028244380901913679285620837286645389312206406584175025225233105919757910044329928484355951905657725576234652298429773923417438850710356517796501262986061016946420213437017975630235139816308648422763457117544672376923458966487152663148577269214298933438015400312159590522533248261860807437865311783846785072152545448547875194032823011760573319713787967309543467647324840948938311240999234981974852674449803567603259363712984139207738158066684319031820947592167118869426230374774280644205285153214627246448047636602096270337625080323824958175707153315593028729024029919247029389857846707844302606518476389213388274947614171277837355351686754104314998590348500682746223786367985656559021687721336281220491079714939591045613858379986741897999988897767558998757134667781928138906652236801263153873390717886521020573938234058989897862380761589581363918553305615860910649253777715146172489223958572133727031180817954994890798575412385554244219994850548201070894353769429744037892784132757432909445437193662936065239320438478331942131459241251757797613997635487212891133479329947641843317393898511190749150045897310589873050731351390734276005640717907872658946061473782883901494848834168775176198997216285601486859364883418409488582527068762668282591075088221596308929496265734313702397221641192989857091818724162345306754247225742337688617457201541111381266741430953900589281586304085476597309615930295869190415446098938321158134191932578725871716812978237355261221677414771531026619939812246475907190188378108488765243769912082119006788908950578962779533819851019419997052535642297056358282825486490763706034548784175254091662899814964198115320182916878106833574633879036008030962307075214649248722723077359725297933909905895503184060965053366922245097138217912724176747765468203251185586195862815550233044592852652487107507484791494075121371059951746162128154777921343641950372332143233332139126424607670353115855023567778480248253192409683974814810531792560637954082329854587903728606348576213967233149485505372472580153260459806835176491109607013473284617289749406198699112571335680527432510901317612349311406223803516245294314677861082602250295917000406913970751014583793103778810349976972462870122174645950439328890559611076643618528647200840664840501777093762357154736772460758882263922643312285413321930225713066892613520636951523307801390865567689700349796915985193471194172541319885578602953164252272282342966964304410103155920027960736992077896935250818735129021524110823435240967308753504337587178021439427900353293388948923783158215809326631802960145251543951179712871127953265076822085759608430217163501847845309421032183764894632982632804107669065320657525777903446242333721303339946482737840615887350789618621691040773714029521575272699691965909264418679519297518636548542485742932915851691235730806851713268279912859588799439147469246797632390098399877431301961033417066697115310689742254297166925456107405395311906836837321423935567262498245766124930302995669321377776539862036095689702628541267474096235913158818819781405425456133608522891176143960353595214418817508605207520443887321093476192284746964718848776121005735126800462182688190290604998785717534170926983729205716611278927534777872675352983799315951009532173026493034267744163324513715928764015523531484111830146338572010068832180085555249259783416717819989794010762160457157213024461165620774948055815351730183053801356816201229447315083803752084452804052702118403807229164329083783416843090971375434340503324863417936992253514022967471932424771628416329112503168110563169920731274800229827785321095215546500932719418596116581257717473316101539882729013137852571920825832552095230513387199195790461475465923236439783740904459697920172457655414647209578076439856483169587938432989817519725318935374938223602482376787655021757846888347020324571271557382383130596210692119424940900545130927142101994568173044388944548632647476673647999016914725624625129469181539778084823901364114355408810620172215855704392462071629635159402294907704269430183426552025227445013729836875539802641428043076609764943548823146977127459694424087536781778677750382737556358203907422197183054344169007635205758425563407006001023679850017039034310044891179621112790298900285069335216899596132980681238689680624634038713688067594616516012517618797396738107413572770793478250890789222683048001315659218930583245309222005031817124012788284644441122811143573253527243407477599629097171691192386366170919502172488530240481486177725594522805863293488801785696064786746300333372312580487603362738036141408952286995107410732190812766499494729715968871813948730163348828638395279477459578900837281045316599074492697938948103615583295865077831652585056783763281950515669306614270790275623147066767628861914092948481547375208845305723595375633833200339514689132799510723367529873609951498179392238417129731726688405064881807232072162331670226215333756373451470347624944678929640229663209288050566158411803984394607961323015571185170748659553098983990537575804181012924800159283124695962002569735820122254056541335927223029934593742914698190710262262454861395912428564683582514432327359839065207398622529218485821716107231483972190399874284428003553171918450306403984328941551089284981074032913734559788613095390680933498395087606264197304400347476610192941195465559887470524425890616059061998065141998972767311731259196040650376296077955466735619250897781828604902176321209452797169585401738831407939352726079409277626812853140927337060609743047270710343894915900109662737744665246213267594886631736140611593324899496532208433462042531956220151856004300114986160152763108495514116670799022820192412927868385895655444762841991916808592119812978955235118948415049115456754184405859025166623431599209323059786744029002283698628235125819184523883760487145503436365812706604976282154919099482177342591545789640115900222682280406415722749252204805207092198829549217969288310234656235658762281307180603993155939699038782443136566747230091959563154160158241399147063306811418162134486855998985969134237186020771913013536172381064469667235956431853592706314247258182259787856558054913598481412694511952613452448753907337500204111418710452761834495132019830472513686646190755320857999982042307219885396258372796293805673723510765649346111037419230172559516288998451999150575288547440843650760580966457473831185156536482161450265541404286342371021863120816653664506363178343077083900910808952277676567130919592134313571279261346343973392628681723694065035942590147703631397307640345364658725927370422279633971699907856375104925545937844828409623444137398581760409587023402727146297516297505309999208603046588561999880723600966729394988316825112369197074952356920159744309752300830989752565721398055912609340163585788499005016080733028184490016490683720703515096076421981024672127921311976628401045141417461037453948561872805218947984716631800540629675569234746238124826202523840558624337888216484496201449690970044090019551803926943312270986336822153237166673908134980097687516402139943636355481184224117357954619516540375274472982183001324175623516797479281048033734992811416993497880164213277853641281558397487956462060030105721227613838091355075880447369780402652491878891953383990125149789854642668122902762821558946199351476367856065648090808566869632403789419197963362324731442383687478311265661571045516300883089307709691840098664582956675906137712893683688559099463836158231225358138411631830237747542552002811319721072714387253100998924378331100752422761803558923735770558191367217688609101683185049106926045510868158361382909535826339282856619678641096316620702786213712879465227490873305375611480805095437064464811071861884439260294463668110627947543889275206846961834146433117570978647397051316895287725620656598474415440180107260474718555131730528388304596433907945564325116288999152954055215657413858505244022797484737973575842600707389933111542928849875354230660873272494036729526892657203613948179211902217284234355090644797244671353951136119623643573383944827334382850080577187008524968420716474569495381168061918596971917835205908289939918045319171432831818049226151858473147063937126624581758152128575889567497241202455074487256923987283947177640393428252115538618995890657797195867065676959060447700524760806877419143064519430353272883905884838583018238900265068513736954211445174987333821857983305474320711678083646577543880992478147888331126299548161229461569290931824228921024269888720097925298045077459568281848070739086295746772833391407136215892846896966556971008946328105937696189374276989804064770466764824345506625667901986013678402373203000932761980116140245492999887736255691514705088587062212956351044163272294238530024477308146690359676045930128591923415963594593732804629972455296945060999358331502945557509514845368212364342096635940135674874075613847010992299033401810883659193989499852364487907238916542940644611431198628175788955768063445565126802921106171133287508095121879900893535866629137186173799243235197393479710423370011427801218766738639751916875039704694399102478729695711180393354979359115361850269815996406926911029354273697601708549560483734320776089539271075674167707102797525539324529356598886865141664213652483746406023914175712188649356772502586705788914538964541475593438482322269985810786766185252121408882725959488751679031560915395257467244117865739586181530236983156469409061069062149159127116198944248498061868499133717442334750411911304090642212539392142591569587096257768816021097510353456738373576178863006664399021926912243738784384265094383394937584789353637207988012717085441968273114035371672382730129680570263659842953896577512023044364037214055645143415232045614594112507821482822775112257813545197385800517442253108510047496091650764857277879881111197685295055541146808118007917320828589187818383934449744451157576880236298442845258444033304804143478727373064176216879796487313138582160235115797873375865478536809173286218725993587637927059171587751900525173927924226660290709889433133038611315363764644264466324149655478374364956281729466951620140556756257149314744635253031247169780474745435514871818159003034742721147094116693439827437241723998053335893167051676554970581091336880043418335002671399269122554753411901521628592802021546272281777134351719374986856917576100209979399943249460091648077890433704315645928309566906829278901746805516282097153501823858615994363969053003489326013620136602928842277293653468643392256245205060443861949628252026659725986835545239695408126754554400444338312426758563896571614062810731447174130065464737063096727798279010310265341523902249759283853581008007481098081965070578594664943295584827818318900528735272070789430911390459382739004711737085317491337380464913905333210893877121991746022880845449091024847667307944294770930903029078699976673341200494413274603949252098423991526111057797248653008282293861764326776748420817319206141404344456514508453780262077026606711556122331250339811931424729536448470251143501799178976616773133314178649010921285550952611712428549406310846153849313427806301137927322965562831818321346053361726388560899449179671815173490730590443583786444346064300073259523587449236063613748339850700365242123442621288928560260496515929035398640447179938251837691587799490582236847640628361311382955895448817897790566935734803064367708312939576080848239254897418557414936293082034346858486399190272258966699978607255909513190210715971208690801544982186985478775500147803341472688029870133659158136620832945082119849794837296635808331759100500172225602386872009628893336744993413568798377414773987750229158024095591776227558443022505468987351158321025058282885984380745142149025736338943508332855517100948108876895972435069361457403303568304599738358245215468808107714288371721834748868968704797215176031018842947530098702583895156778718190474801459490862459173050514194328142559921105557228150694056709908212685564573246786569375709191924826654330908588099003751342706639003440600732466334772321255886502569504501827901943118515481067142262588038858626892430208296482520547414427543799233413856571252467146138372680036211551014893961829070546240295312410022454169958549036281962953687961466171991211625423451087031578745451037684416617534438324912569331704825772807893324528265773019469153221552376523750380543846810328502789491832742246242558180240136086045505442938837935698250400932653910871148471597806865332413796028534294821317455361720720337136228283765213658731025648496078186623986807933471789479748861686244480640341352272666452864861792580750625700479224704535844585258130694242843117252680183651916952860686300259748848947408340092117514419280659254963456554580894388943856469703468475568722247023530043242491516766167793809203019976219727641088222166774222795556967864571685287362734191053196434980306325125217555450700903654145099856212432930239885494717068675582070520613514012182495035709295214346821089365175664035555713790026822275643428521807687710211730931753441545935717047659284135627432450448491310869635842531303461923405575518050367367467969736693519436282536746669588698460353210127011122882578859210496138565247471285373021922721235802793168675902110519097904080735393379540597847214452014361042286205676709109478712860655728118625843116781943873826840387089869457706913767492506373534751546949190781871307598688424330696149025870003351636055515254319718033322576073315611005479329450753741417872069230733221377811633047219211860749141391774695131908843651354418627570736904559355803052294946174033059054293913270604164603156697356875567448750112526632789952792206105375933798419673626764580096129549294028347314374793080334553475657663900234280243065824938243091798071613737059137079094966590475146513216147095724526315985843845051249338627109016534492342751419139776781232329647307761120646166440124684508890736895173019126617764813322256960858418247032117295721204343307743200424009357831886845667533562572467395767988046012269078497949413236207266229693386730338664682924120969277627895600116625521001205473619046465235762837416368776533419813095552065927363487725013829932654368494301328866564713388157415037750278525636936838501966983204960511979286031687925028693471782494849606751791309861854310662690844968792074929380600500140308961902224205298655381813346991036029738541162822510981206261614452005852824979756078080476578620664157580414483767424052278236551997131585596628482512621696768915886782976521305298400147440987260285447739802280805898726379761395611148561309257505781376909123744199185312024502693003207562990257272282614437093055072494537261105827533961310998510210333190471597705338099391289018929355150489137346582644505109582376871513737799715589854017619978711258733156705664217469050135134145168648330681771041172485126815896267311636112331183440626937374479770333071475517916683357319526215258637186720955871581422347398848963628454543104836426027907936418577228127457064184843983927536877164041354281818995802116960537525175221734703232215395368914298869255008874925146294701306119570117360690429404508714294138434407126463422832085260011886150242742179691400411578202175954180436196289730205295769863716670853666833611235700015146318212176597078859211552725157546420574251354887229395969659816339221425940374247404897062064684155616808007847585939280707110371852213949527197722538080092748798014450604489757013314546032872673336076913288951547737819219409488315480088665502867913975904269846523237722645441174510180312738513040988340726206968063816384526774138649361847672703596520512655129360218545011271290453165991047593296402571323505027957804759041495907066380946691602785302868170174224017754451573728744878986445839611872979218202098651182231243384802646003596074633158986639139501000811897525582335417153183456034628462502603316455739061473480189557864271652871671147136749082442105236699837584290497304002821420595913557522653938494253319150429441813475936385826530450262636813852515492051227822823063868327747293396148769943520060885372104269352181455701296298589557585547355246199415604349112545267614680979174532392194335656426375861879170672359664580670159975428218237082172384052523380683477522136733006060579180106297353441379581305586802851332932297134387213943265904899785101064160189742989663290862664106732939719324943783943135291643690370554003123725226603825732885395291204761300880049786966719942629761715928794214921825625241266603288335084303622882906136948722374156702015298009412243919795677430378266561964065353339191029477931307972944666991608504541791758016845392990326664783800015497757940189600169600070671849697833328828620635513279423208178466832552695238079239868361514927984564961436150672798690491443505918910846859321342333767275353026900518393969360671985303388567888248699566553003045790812038222464661980866030318622466428587243625962005891291622585605177545449093767201961725537619514837369795062643847809435503840170505914079016176080323857843301455123988021854759426302832326693646389671863984858626435850191414867845703310835903436193461155797291278196091576550213328929757940637248866227808866685467814958847499744859724564945247785104754853946586587651962932158047223221785645259698005261062094399655559304477761817727370968657096221921073649012137265251643515887653057645580398627254632269478810137510529679141798180661125549513834027683167150407728042037308639629088844920706562566422663217808478409163916203244299041843649029709443908500923878798845068510281288620996129843622119357238059252201088519402515531408571970834177298596030391932296598294071282992998119851896315529994256269112494830807004003180299227450127041186086079561638325482203314418409740689147811241897260887996930860183926706236676332517807426766827931628189413868822601014731259985531381467942385008696052060265858839484620972960863802805681306507644716051310369135751884780221169059409589856591310046870253179882359758846213654988983414769318343332858988294822942657752331234376077843687693115114145479313395717360012659950746839738311417266277557491589900090171006813181095970757852653803343475450582567980078932960998330505525771725513320708815004270758885126859484875825911086637144561839845121807860336104705891631009168902007511309417009619145812420859283924147119304124146892955865795288052905833708496288450917771393667290192343175750640858743931292540552603360567918570805881887506910349249295165891311322836197016449154408245500386293834829265848033147539059676275290298525577004467112109822443968778866509144882435556794523102705103790961179441097255357960241331148040710434644452831879084765397645542622207808068680064899288146476650793440133132497529265579657350365627804068815085295085826572105859880015362192951568526717650255448108898195402901302733855414300419832248514967400287379379667205787161836275926188361882206571545698882855789988193659740257167573090694624766344861715428122488534910316718123150198159539060025199504615732244611323428301706547750478999760676127337676902128516170550582232288835892078247960927832971944379978373628196481838517587297727017129784670168349866331874640907251611625068757569525918988185036352526042238380814420246314261682547966628587037017926150320266479587165393672499723987194216549883512905375289042177825152003397258313018907706339933108737093574341087618964761603376515621343813505968147862089147358107317867484211648063455975267220446379040481736639728028357059313428055951507396102777348647240596658465764027288275506062793684275727440723900714377159065756071504585427520969799803252545659907144002007660697658753375632030107971264696562262411815971076374553991796587212217818882979774308977842544868590858678617798165116786364469892074594531994824633025416981214263299880382443612686215859866344826128482591176870240679995680090871601913119087126129152626629175494079161082459572545078315467846789931412414026370619673278105220572965250601687697062864448575841032238504411940505976004171279348365176078734381680756438991736525872091964221420063424111331359068087312786601133452932130992004761628948346364122801202338485728412068724723046736970229083606567566666904477980256863623025506764442653268076316538335286387166331408386303505576909397095290573608404729117043259165153210407021868480243750694853696824488872298273507750533385037649886604648178005100386028909384133567081216376030853194438546765791522790592715917624714096941125986015919310516190028227450341644760013424581300580362090899563366264050408753146231610662341234553548645221392328810274849623575998077232108965163507523754268994977134330844585907052682053898594918079670099116507536521985609742867948228901006376896487671430515354898757374889508394223861279935129786839614890711098885188255509458070381897665885350294460715318760862974775780912312351374356950723940017429643234899126946538249764982282754045190311759199446817483151750055666276284050652054555689353496745482829724607116862939275880322108754724065968242107759934842315520620916627617940724878866285027309311278554408405288194347082502284803446610159997550615257502679728808753994514853656633794172339362173264106339948610779267132879136479646412233520139662913900593982566207278128179415667738360526868062813441826029296724001694918154272006717244318612954055675966016450851384721149321357984250689314360725087883223055691003628698573628521223924594694454652653757624685020847143681957663475035760617595557567033565294869153267782995032307210220583903393852667556767189264482924922488287931557335308808927424888796170415105322131062953616689486290635985841290986826125533815796766829296593876436383728351231922480963218605569218175562203522405101015262054305786747457236208679314272722108591515178088627826979160001189989043664267671393975653479871229633234849993599197037211377643698128197358279413322840703048851320973171585623311592710272852396737379862918391712638182575100980939673992797449292231771697609928368286960642392700349919513474409955084903583957694196294951865699301496482191499135074779468608809174854082767939523395169854702365226771884198795628528241540345668740587742994969415839150813786340567865436046781644301769259262173537233688391990086109685473516298177716554374214731631364505903594564757971284176187725751281882681264741180479083721879267038584978242176920347313728131275153059005456697731045209809584719070478475371674041102483224637349238426035888789977689642263283943279165090416390896841673930364773319481663179714179625078286203251705768308681204243793128046642463416632160183607432860299434804804393714520640854646719891944782500778831857783232083251643332358574262065997035987723769242596398101551549022007799791722143423059711363294778162848712298671257877645424500349191796652856968653416421821774662237987338080371496122464106787941413852033112155053582496895991897462525011973301637111166932622804100980636855010623353036339649928947915243970571078774476256972886527743307318789147277448122524313869974282534319283155640727961060138225480678783604845860288501350974978286368943884679693265472027545495076911158727981459588334476421325059125919244940642886402573744943719405283533444457618202232371086774538263927119045284852264248313284251453060185659569399426506734414962301101743756756775081592774475760818286860956850394124774973595887663920040952167812861990527428928131426017655541306823972097940779641496786663888141176204549057496444198941477188763060324035367083876188422492919373417879115684895101219922606946500041666863834557453777536970766246799153972180804539945471047398956677458291564447569527427773307386694857024529921744615196114767172410564536821244727189642096459729008819873621953722383644124086792383870444384906877501780393660434540417791414719797251493001250765278110768044987137400706412120803689741952382748164178933482847363721230826087307319168642092503842138271767677685084738637802343205476255144323891096556387379329057450412844443440674615564042211366113653744241982562152629768270285080672297266663440649256378049269798398899195082795364774565796884435531397994693367657714965299823813230493891404632924603059833966432645827849773568165353431518808466071787846656629548061836947904943278519638616046912920251273631345437934330012623759307984063821180752399714137630842698389296679686197645300390635321058989716336416290342676105027532715809701255228903159374609506261173558463100959474757788010001765750078484986494690204781454594905159117024408417699134140635237263089122298646373634063960879802308526101144386570181153426044305389767865839907628891674044349372185115831720597134541891446922781929551523522771591363501813603306118327993341814568368868458025464586100979277744574968503316984091091576959565642214549551408335150837766602093829517574619163243610445506097001310677845242276212094965593136929382089422293505518983982892607783768074285138607770182146445072540703584229467925550674937650436491761323510346618293369674978862633686348175645894829350502657541439317402518079652570095513622893015522108566696579217569871698851807067738717456173203304643014730976025598438059232094936370898687461831258077179352600547845539261199350209327694500858717706281882014446479223564429588243741897178169167460447023140933963465144017475444404950771064782164340305521405845034007821738478045978721086730624446167743482484549641896109245663270797258035521819796845898201813302772581824649016073724818897752423709111373292396187890852460832749038822065614431298736702325133926759065030373226444822158469967825033284179417113173039559794835023647598686055490020167320878662242488063481712128560657658905361506063894545994781712593904741274620105802408026318211676227846575818608898856781312731974364830192412661563752955479459208397418241833826993147339830989151177734102769619463704061395404847383166503941603053904196220747393500757464605612764305811706495747923392476755622908832582314114329522912762927009917990993153285468898257945304078054212380307861212671610217219053343932503213367533103622197441669196854021112060073981211674725986839325415241558970630516285856816357586772398862686267579594214891607847416346481501782634922008417682578039650371209154178747508168823473020618226609134845625458186946586393596193928653909725706223800485487508360496149657265705160899769356664246669426114763712729128212799974968541678644403169835331025929046401761210576729178900140966937949048103771082020810794107657124690137269253531925738312210162834455843097820707546442613139317306501252416394621723194223982073166649614812005871634880761138849568247770696941123590326681296588441098800425481419724191921802907871276035601898421385585824718211679034931421473768781503544530632370871796619161342001959853091420058475251438330562459837827271178439347381505672550371460779782793860734388796371463671676471419449120493375928495253478352331694131374911605846030960494211104103553589315843839240289224002227416439697547281054994571358265725567717777087312231341645117916561887102626004616785053847745556655846091509045642337416692218542810655030715074515126833209499095728697093415771075857519275224030045760177569498945818529784836505050444047791893799819570625637092044585595351370557216648774336189561661507787456601694822262258670529746224783487850434342233626185566670421986564602175406869474473073759013495226473213459114208798491754633467771764335018284210991713053406227125419293607750308543503302176599749777759502847731480882741135734745743509201173505009836099436859174857122737019486833227845202641901767642159459092550507129998860697813522657145700968236161143270229973977677558616697254645951698482978530419850903412688360175908342748037832640182680681329339048375082209969837361364956805829445840862225117516687800654854592352231695707749859015812383678765261441371532120851656259146397738556431857611725917126479944462791161020783636617556368182960903426429943128158146836499629368663555718364077068177932437164923788861565190891540701319747434523575831889684596419553758592627631882776672437119022974305330786267316484497844925503459093742606659920404490486469471775019241126954357294914661967867658320090635865351738761031085712559857757055803878371936026958718525286039801730116344055361210980079624692728599177685157290298767634882627945909486059547471081227105649917458093196395969739906507770844499970945756916905425859631899855394907292185383432440042374121030131966565171339945139622756833417194161560541340427283451779679463650601974425284446167636774401439065557496638102382455642049997253065157271617056276358050554680448577118826038214756911987404015692303873706037661739802124563766431252556489742442585254863509940307674014370489767227721316926336229855408475314868731885407832144229126740076560456420781519845697598553860609853180845681430772800065736244982324987823314614285831135386639582772328397639668357979255770883602548738721994947657022665095182422522414970943637514447522459381603659811420276184675465915651740115151940395354803733878733934843607561159808414002050389149844682805579419679870097312840712215999808352026658999149754426063314142939539051123070639507382928578030435216571823633342167104083758615175908519147898410898723608835066621265163867832073302474306669363103247549812748502510490963611679017737018419282078666651880542409700364780446898382017295042111155520031947147097323990797234473800746829968571833840170505428743166701125570093637123729358938199830213173750011085366307314900377276766777661684465388290468393458618120125544000638887544496318819565969578434908387689128891932149614083114174049434452484870900035397537217380497954360355902284436468891691393696239592511220314634881705291525960518587562284182445676000238969201126343006640428547214578782377947294495671456500284970813904759753604054054973182643809248239298912530814232668221760026600919087794933424477685047760515866665284124296872504050883445472769552415512743617587799056297639542758184868088113851846817264442933644406094719820032866703975035334974156935647073487360178961082469908764449338446794517234089535648367954195746571502359239260266009231813164836725969836051666073480315579345718542724224726090855672778789624392908009506186726687365195317907200905029329869064749444483999198245813586284513158563595960402771782086501764991982922284107695393826294683718182315887556486386896318804025269124976743901630604818033158563069455239001300986780118616930072561638040755698120382333593202040439508456786040600630825310856473820840701597147283549041111819952487359846042679380894934271311870795247885865240177669511874797731229620107723630598262457962038103874349329963327362288616663647553368920909865227157436711198593442541402083959880066806674767693958889264035348913693869317195912599816626072248248682400945297143420993260171030479817841581779904303481181951839635844228663604510752000688030308890843491343021590888501363550354076703990841878151427977769699628378102015034884893897339401721446474273829634039339611935827955124972779188702788130359522887843878514560585459209713898966827614078644767821945240553969327786744489212985637304853441953615180176201773281219368360341231105169543106404075223089651852941352576206739912540363439789772390366210088369109397504275831656395344916852463234840640575910294078416954510522145712639849357455711833902444059555463513572892827030947264580676952780275942361757894599874140514246210938864181270208913583031169435125256194831369263118081014648327412288656242708380922160780615606894937398025302968497879589074933096775548097733785756598329903307488632660369861197312945611144879472973266337625001342816638742384312547931963231412538071639882159005426054703176005164415272266258532226416685906457116436663808062352580838968107974062044516683146224344614349343919195893207124476550374722458431838429819064906563635324926162817588115135206284522925594901010075810936440885503763880209296146096558490036597427335525806636659981616598210640077966828971354303540471475632381730821226205976698944945657879307528233346334285388701978336900461745304280208585666290792366381337060316454178324641573572281481256779937860838983174812294561032071435146540252088060429707557637691127090514601673014504374796674746875122555648487683406823038949164021817847239579512003978897728865091858505090665705041341360310787015667560993064554044035952989598849349167073924311306889444431767488393418048472707451849542139291883848734640044655418736653693297353912113630537796794400076850601021564718655705119239462880520339242182528052962477532221116896196555564371829981419428042330146789135586651968746670873675934891089613395496674217531247836453255786682533669316504737263034602439129529021100504935708601340296453303976856587459110584276805605279936429061432298516331693844325472657740391736978507780002414542293845187212487720072254837091761536072551775163487319432994270621216212615770291364969711699573032810930998467423906041470385676332831734754373139734183550552821170252672474509945842729058518736165892710487067399767450751120883418410207475701550780684986101972653613042230467834477790718820667999941341577614936426358903377486413909075580649945927824795725275697961676278710766928252525431693938678156195522632012175536817783759566356188687134769473715267312311992181364138874871072806880535076120741462465348037650765295711526073029762384339566836292934109232553056385825726171471146856211604671650511325522071610307601885947963820972839270009427108892356377854778675660121345576798983934015823993308678253700769359254938515846839347945495085141659957093656766930005918419646692682424959410356183643382060103551159434045506291047017937896014410838722294340318106251435070512030299849147108839009453087089238261646872810204388181406484824273371514028766393434059887976524824932764459393439712613609995691762023159716156761866326975953587179831947846184698415361524721033020777468392053008914747888245101276208921605031530031794873088374956018543390062879839940284010346819010331399853491292728018496630066583298428130959123783766551129081609851611576041096968213550731458633283754110798259971889839168523249883370474346141703248998212645751894309295860571478768600611630317043520883855310151114846079263760164141445921154921992655900654606211914247238428633538613413379477281689739293330884964763198956076700593817335229429731569521225407607125690120157691325659535219134284797252863698779846467575641662512988300045868681080438338539278302291845367879116629936336484053140980808773018792366874075445615991944942867765267891018446920641797998263341245853498344914253252488729467087556449651431774488211066100239011476440549902988713313876929874709376406510908186238778215838237489691603054072506653499029739226913424950956818236926085730782095629497493687686265371902185757005097442928710888531413890249545919362866077465198483831415033967362047846046917366116902670163810898617853357448039037899171022701926219364089949091047066523571228682753320172878058904398809298309212196789552065802468160023298136021746887148107528589864100123391960303342196619709470802649383331000111285331406351801548586394368876869664244587306002634403276410087914938105427509912351249959074901460766386251096520755399278518391952939514312391817512756060729392346444651872546419710886581885929659483431575788050946191813740117436829400107600471668918468633728768802840686507627871921494428289028773476000103768198296139852646274677669573767469119835106531874003004031010144322302581268803386222599644001364157952125768241555723651507547011923556908465761717711165374192931440369615242278661264293146718421512253641453473906187528321298942727969953422835755333807688564533753656898967714144305322745846603116278378462633033697995159413183238408897953836657135423201541572040289575470294644629491655428874741050117547924751874455283435354844792239792750682857670217920653100135090234508215641465963015331780123179127442563077723639232970642263421487549381692768112528682956116223810591358459688825586544970850147287907942025388905060186386946615721193783244459046312400564323927994173555415404128827208489348941902396321092941475076419078510504648959259311613707085155067338934511611785397939374277521711697303968084448918409635784838364300419619180465378103843037663164956244399917132190463753853176018621152333508581212037649948810534759814607687599122292335642547029477143725603638679155706440760720462853924226262132413921047956695475423919405378274004191601861435726782688067938874478579989071601158510970916475960142750329881477908104666307157621856655992444661422577776635551208790477279239446316972229581129314501919856116647842186343601421513210734868144217569586001805664925280596069922337009709793529334227358859675198778547483507313007178998097430201910802058101528785494298633119820854920485440594513276608853058889002566234946269823659982808332261051121302072402450472535499798425283421521164513547346293481648022910173634601210652773705632440859296333302423827894647038549351323130353226539304444869168182297404135146680941921631535688806944685922714858224323234475072016043730150034367531915796544939647844804516488968575214113807591480676827346448555011512672676825488857811405223219526608654097010844527974477578288149915576135656473761447555198677543895608928190283446407602784853397087206327382389530194533607719253142467539131844957131593317136703240574574556335878006625487329513453962849370875591735528774600914499141071972324589115117777181350967622441134080467455541315046713449569114643496743646204685062477238507788260233015107212053723931611163105678019118128857287049511623973750947703134058682611623140843263827408488609924282416380864527268416488354265339669965656134740527276601495025368949672662522163402518041384221517630815297626108429328013978566928431708486550245665164385964970251858881599514717692976122726700521179464021623912982129835803330369133377816298824602963400156879549811601034456113283580282743227826548692537464893888481474929930750312022982359623731902278289409244451809116430891888745051891116624932574286687535097382381937173120626659796755607042667452897397988136870856050565698084403291790806635834973375270689561156362704918579009201768075771985899994297899919336395996172236343936191279129773838183802318028512663769870381773934623090633723894596275772728932658492358996493928323973911780539774240181189459894044023117901930399094584721890461862039359805141925126225836391322813426635326638000732203903002581358086535699865979434340874056093625496636399564802480909643279545476011743629646495060242051782918847412450188047137360324599672923818155892226420814702720024643882450499372377127010053169354565771057610787717860638630774729432095020844189169476393482950713303181916316274186794328891687764271472997360246554226669042240565847245463206002392347138779267315176733590391161394237060901484333766100443302892138285720360801983632779550402824980003846882029536989725689778274535356769013369488323558086998657393606610119237057603614977940623900987667148634043430408880442538301737324150714479763974704531922476156703125642617649413024982918342288700564843714214494373013804931129671200826546092094220924512341238675847576117794276618887762069674577249422150176759917715465900396391224199110587751428954141728022528974565659841330757393919469561789973035039350332131116015889984059908286313089445282585308227989872290959050874971322910531170022966843251196288131121495620296847926257375107133194267867721441739323819267117021688008951864785924440255854318224806356314703035708012251597200720023032842753517615975193964922844040881221914032336879225215588463680491657150139405356055561171224983671487926378558411194709019570379420228117159442349054311809997754670862442828875557695776269609037012098690101307992632053254638071384312524416756727394839361519584250302997912474624597831728549318680452165350223824219002854893215430284380642896273268671740708712134231392285810235308728333149434159244869607771018546338057960628392238671039533727863435832126245055310467709111189809934399655338796864984408349602850358142833191738493555136293502170443119350095472363233294926381085705838342320682150398868582932676537278777083106464493766928154599601258656211733272959722144676349845513155049055446465834615180922803408407615488106397011549586655111780019277200507305335938307023150866390091913995298693280405010930997383154024099986869126764448225706979966041247912416019794279572783434883100915183110523223578515876814619129978153252467245103118508970278211081309866128849032546352017862450965509510287002239896755788397284562227104887393301720633964365020829568001584232963418080022712849162301213928659811084858584917049125643898839176335618735574601523480546648661017525471199044285109589181726582894730267347771612245469599701405303473175982459437082003596758795842714496059909134411786081308411931574570980365008157676346762384348436534526207614403372817205938431085578056453979670266974604880706303577904042635419857402835493233389975050446551484651752680033202525643355827719372854690828577009645418120271752950998929824383366466376833070187191608564141855375902395736110913975538875562150262450428240715478197204845077592713310129750395120292580941370790060469541312072537168850392276795734557964806043369476123223867375112681106753692519378068453954605571710505473216013249002896568378365864199002741647791317855620493065047181199043496894727412566820359292927125490854263631621407420206778625942003577337578643608606280959499095570362456161023207079823894931755070773249267950113088306577089820739343617256588705762619468409420949108719645526075492864832094446693783914446007868107092264069121924978376220948212812410649714471553678240639217245683383955491744644957062625310377829722941200365541610763879015264474969088978205663739251384901967089545421261457544492546779401711220789919852699296083372320191941394139891468775798489789298873796021566244678105787400445525101329726972705070514628518891138424582163028120572535384768870885646996260935779259361242975945005942690694972873363478746323191677943492817496584488415194954783728411894689691198463090361709817042685290074099245271840237260313536038192502146403300774008059513511445378967146703283105409760059176082198039701251389509357925516917473457374946915577176184127179979541571186505720614120090443454647267842343112538385944176033045202645773179368635269778189912916570962601221998419129009320531083889790071592215263681069314206881077419558355229184579902667578579273361816019381246665945325270807758450300429467381490002591024090956796539945394729297788132592531186096564059129252472492289467185701957782705358805012858589647930929409390215637511576177776682798516575154566064974353486070044537807792307899503556937951256313704105878423181362158040901956515375634976063375385177903771229545365947557589983128642917558635750365552043111515816902022109630836750037001480051316146134668860241339410535823724417794073665774852115229439052197561820977478446973986038409526658414138389267829451440481425977465894914513231391943009757824367731983736036477565814536919635158640728258588437544221196898203585360468030205303116624123208385260915916597659339323226234959399273225178422936739753212412590430790948477261823392933741872941339893269381253053298926289803208959605295972313704737856588573138539358509700463611197515849777971100111106331151168353806068866772396202932646246822414636952605815914472854107067509560704746459648873828555486323040261587516998847477981359805338974120445512731326336447530229959757635240137257469427483882375474519056229678940699611908328735562997942540108855222563326489288310134613854722633877797132215113632194355377204783685247313439970739501334928545485348275166095883550065085298439769202016241757719865412142213474213203304913646519172124758514942276513113668003594621958193526604969249917851636108739155764496875387867363957000027365636779239266121551088760604821815002418356002658200775392531346675028313221755512499313935382662241191455335113349994081598906430060943885839822549664564636621047503904659439713190616280373308700010003268234108657922293497817347944732990531876207181211670803310784079495134333185027816039815431796314957292946681008365843045449656128845684207502697712875189122109523575947650072772855968287299457741012937931457748302520662352159864037657617576392551130224974859852608845482924698909129133335847599563113817527473860884038849584386344251191658274408683483949758489636218386381222308829066414298356255689126304718478565831860266329139995514486402602864207088290117588189053383912330385019097816666392748224535674212898333251630736400671171455637338906288570178707281262310480446712437903584280908067982741212354448858416567763339114692183732115227020497955408484010299466134759717588914783681982731819142691153686585494779658304995443422130699335203359102845950597296710147982451495963110971454410299020023927078254514236964693839887486795061923207881114818964085920868943120477947886242361956033144097553924227549800752226979810689272753168732847976497312066225433774918383036379586971000277671356407463754609327377793231156157575661931657745155708347034233191428435427125665592343300355579878548028889587133565105393455470052406128076612540178309836197341580603626364578746549646299706768546744166727685082781399788675040848611628703153585191930875400819840315566762904830180793860593984289439586328382084852742150444699490029048861232516275833413983357262256631752397656599959447140752954433455885969328166796084092092939289968563060212419354738398451714397726956313134350848640763618470902527069251314446572199945350961020552097254914699393502395084572846141671327096309959509785512580198095176526226503113980733858179975257771183287070170831996792287411104473072187409061308549984554851227734092915867408840370220292005898643341952227266402487610173901776028552707371550420330553379752295927108305500670751313258834358675235364870985576204084556391259828419295181111472938779504352624497365950220186906249940341962568935192667900544087211325471339238544485947839441316581422284581086511703213001177690944924120010952738670943042469253573827681394576209578847347455456211917226167992176969557582935560151642393566648326616470185311175142926964790344664033657937020977706243149096087335589321286840793928351570098978385051535749193450054331553651127795466515115436940533975894059869430871794170652160096250768579955935056937871957121466402380960971172502694234348753583571164699554333758598461360311570521244530410957676290895550888519108359758327156815767158290020911235390953740661473290546861491860222691623019259819980249003023223091073907975423305044646908841412017377138829323613656405179261570006300021200888173053577462904589522950262766456304119015600661462831179257797730974996599761701988214231265753158900442041525991605130364426194603289505131868446854890726623224872401308179776208324219892314436192956239621059515398892333888903846191534615355156764997431267159507137934055426330522565069558251945529414553387469922401408691298698945711041031490331758487007078619991934677274398317221165990278062540591294027854447851624469858643760468771693857285177619671075558643580716745459751594339463024308702178799518219300913071047288349724901164951528324888901581854230134942063638454974999590628739387492913944948139412507057481272999071300271604509360441779917091807789536825818288795131283098522903231410167214193990910562590207941000249334343299080578032356017287724116670616532084662865035280976166132245969132432817261760361253734072078607218736887356947386868304371246573787168736288127385198416882734853288761936560865790159495843777875922493039137911320154124730444921420434574072383720980829120931163085465620553458612429896823076187943173099862505540860741730563273088276626926022569869964230266823181962361282640186196210380960179231761016323257682509275588771592195229638530034394799056358622445369135661273555172260810671732903075467133248906468237304748657618642510002100264463962957571144173522078373785950357577864518752532878705548791808028801210257769918047221814950227844269847196274776663342516368947826262646055713646350178456362228181076199546063936071141454325957026377595900345447620920965594482524879417911581747981853992385820746593718889373272002270845541515749635515018587764003698355247591626711186366671219394471572357871718300948762448939689134025233652687386915809616443423321651140078713022178442800059475475942593977703263268614676184013488285442670438129567138297139237505835290025017374074904919571020141948091942525388725805174979596769372123006498842095052025480722563453700655070830623218800885447191755993786248449487452268319399004381699444683966188042214426299138202825597188114345860908315424461113023976832668644584648514073492400631559752399085795596868796070998721102195441575099678427519670423945014357259046421472415029318461962749811421482750514606334846455260216468892149737739013085362783770696872509651130849534913355360473934304764452243695640583882495154342835311917536628574680754787294552261513734334006520576441149226841796761698921541096429550507899597301208088566919206274716701902317414676118322975228205005364717647589400487919413818895424991943875254809520335308326633870653066552632394858633436534602604629422428059608958109752275423017125172172526304726528762031459758275853248869684640009136153559143022129138484110364238855282422300486623131737294393454418832410381415116313805629236275552313853505313837510603074073716235293964734934274638927248975384275961166045802459439113231919167773546102409357297096196973796016830362267452395648408942578537152213227876481127015626380021295451253183612450438678597783214043434236736252869112446746397609033257781961748625988343693184132050448850176436615127121324068004020993261339041717156314423408626588374784979941389846365923795394048991741805087835326042644256687055915534020959764610429657432784823372117034811040971511889083666080342234156915318207533806689473039277503548953570602921564522387699388162977287359696978944703533225881360644715242251410088199368472870539302200522903131137592102947510413175275604854540292688230690650447007355121793298685952198402661372959173620249784202441336266393471951658667576312447230033127393293252876057973301831319050032487321116868892729010839377080237440815457230395452010535183206732750236196121381945663610312002364249382675981909772757038587405401717449364202078015639843660213209758073389990653483259469312692159286074805498808571712186184314397710071656909966897473964657223335942167583857155624481490895100499744969474656456182866871808308687194351322011631851968142196407829569561206564001582732485831418992728832600957358164799582489378255006683441321735481661522874285402259461058023988830025622271462541217246297724660054944205400178822311982780166639812988462317355249969911587316257212202057204118200180636634288311679030057485499926327086793712406142183987015812902563039574831860629297009721386245421568142887188356497858432735829947519452178677131747508991648018115778797260707931834906028962989943881783874163225589048467314464420660404085737127027747922333961851885673445945513608654261745691859255152557097544917388712927750576331762092620087743792172208969263865342031330318337039211770292220997083958317155088167057069724507651458009301801641105636580950371823043301123071928319626997752171154594706133221849825141742409142804911243463964785577303626163885946261743806110450376707761630241908561933648881868159914925342616836972327865185965025127362922895163460024420484412249063297141872160686583022669069880046415733088256987931016119692613632688360503587123023490806277544928791951140788191945138741110703381694667145480155229315159872345710186428219752480529435203438802297923323461447599359445146120051770593312342391130617875994863814774721354700879226282019240840965920334758762168856196958137529781885526860319134971352982417888915676994731640523008600845934846855040365079483377916482191771367812418294077665219091248715387047331916646777079018239494134502024331602331548487659153844613836058486646702667080270542301582637912154743091083693461290009201539390237849423958886709871020882255309108861443377817482066882904956786399900509192563458497941215371509472062231817599157187852378341985047143692020712205670608330764132469087625027722227350849393730565780674302319491362678569072277830875366253291829696784315533502079359015991894358803066179512248891212963854434615963667252349809001243544925940259358312010472217866939916239393730767785553595046744052786129583839324390428713642346750215665782343866008262624633208817944061548926818425004936445128418523513475136427018293463177761793391140682836910455837349186563699142881578602819593170306916041296095026341962636843189904640195254846134201989288284498574037806289678724870324285068876376127811233736803308684664380579846698021105133919692424282274209249398552369824453659875712237170337570810544307327040155902203263462181852085519316836183747255683968128612295481555771484234069448372705577885065919787039958181084896867440496668796612299361341990576577843849459919377311004779168950522412447402348867076772955172023882541061338126579456046161525268143381095307185588139970496770239562500161746415527897150245970611156161437489931131276271290032757074352502054640208710008803554644295064565464992127469804093887192649185114297385414769945102868597753035991164317665895054170616478976850416924353084247082973694443453433425313168514586257314236555130397881227531391674541792211395740708306634484490729839845473059433159873601952984957678740359401927223147357933206114616084511091453463603102195101383226745675938255519941544098468172792907156489910117320804003141863344853354915781439822270466813085697125817425543317493567726279930603191017632190665476382182344445217398922760142076109516804279901610582597477607440297851601375936191947142589701736464760195523656572451514655124678300666178197084597548284268443188835800184933347164672895557516751622946745622549555505854402492115290410594124801442847767918135669267823115477699586134117823476459313213901125638922035186426463946952663115129136137926724162748627864412077732798954890587860259656716400512738150457252843988538629198803215336110789552840054780078738428355847654877848560098026656173796941619083725766095331696491843202536379414793142587295702656989680993968603310714292312973962952037090926603887269842735091937251944282279990780075767742850100255180242561895981613947281788287013049281795851475317317084386369005915849369784516461669178399997565219310660243140879571689387803623590424525667514160695656325372527581436768986767649606222677807341161329604658004162753645247065499752916384441701779571270330036105336897729741922230543454091728744136570414767536289368457486303629910645563869577765480849577310617169531684577998825773184808966238164285930330116963828739822451879330457863145428112081677258533737142787207335441504094786355640603641212528169947604565790228469991493997793488028007147512011740103482602473695196362608145083735553102897588389244999558255719922319152563100256145531211845085998487075546568032183352182534855959902260392248914011956409466558318939787644279439858142031014986627484371567992696321084616694803078165607281188911317145032480727804796968831756711050924506594913706506316453613829816752956520753041573271793688858791788265339075177450189083028680625927120243928452774167119096571385303744247364898903873327949107730380973230373708844778837216331690075709808413074859322446377376136161601565700532322405793525698707761096159388028549791258718270573808271905221839229284569462685581904960813595121880358185861765658998405163368182190283923313459359763110693123761939283380740531471946248751451881724935375151695652772779405834469197694468205864089240649938255776655011135528837602218085438644627200717831329627155172030017113418393083582055058881780095040004528685779040262841278273136911025892796606891956747067219192195030042988896504221950144525029120339251784580335721775026149430233785068972615500825273569674931018678476931930622554180022345774260225922580824659876314248800859488506339049705680284740127062187473324114680779598837049808434207968837251721744194966420955068965984136072395165946441455441492872118283543973321450575913158555176299046398246507568125675041097527616626761251186485681014813498953123292635174498000267876994911316452911202140344807492879170655459334302114126088901397155919169533417817481085403616709382617335051109759762483704187716541543631643603835541503333378436178967130816297367174093750317958735026232505732132575516637971816503501700097016296909119427792623638022086806111727018447203367468308001004860340981396846454384020859208030731570729441901105566002203264833700507261662817932334344926546602703539061491664906645288665674699950695741583440312388879779828696493862846550726339786322470319357934310729642966712043974546872943649952148337560671642800633968293187187147439694477841103218068827040288945377724867442991547218746406517272535928296590102351203084049941497514168001170225569981666396967766571887055379731833299115351361234981800715215961775061540082687773084922671354537083387259141627310570728642572774779205348176394631901584763197595629664079431632097912511080592337897447259392716094714033900743970926465693474057724799737997310119084815699612299866108424758748206750191549501308211820920653151509289753628290907229941527838398739126542413523014426434826380801442017138646956706253474468416227514964998369712709903506863435733029929158431382991224430775367142033391169240996630049214618703984241346556719269157533145240026646544376563940108159561385255852478952251393230216460968083767225641320782998720590908386980275284482478759071931389754868020267642867052722507067018229171553302391252653335468170559325430166214247311408523753439547484434733247883315241747428519871508285254469846309675239201007797578526014233277063889700279827765972472230140150713100150726498598794512330351905654142199397756154051388246500959549778132602253654542819477262448780720805376737902097885921894694009780416256040418349109882376606444414751314878266396762324921109434239885292725576316055525986927613036077305412891300209855901392950183677809814106003478530036292779267041565946834741250493630328882758135095895991068669639611313537228809013752253288406176465877145371243753579692441764494683228272277685611358635660512744315813155649376537811694251681206459136765253043728137358337976060788887002976280173357857258537826095172742840303450866741225529307959276189202008782570600845151242999663249579118779769843389392607667706462308599064161202441237692530630630708667633833675971535086726896408118576916574772877478267375638576054360197323283312742176310775872731035466821611583802003130012683781881840993651825854818872168375835572633858032445503743179371244537321908759579097927069354964833418099929802839734732549623717766905761644432998872247276782926274613262157760595045093140965529436356137883292617854261747364838299263542325573144528841807312287071943738129001040423476241796245053771785872403382180872439365540697115401082407585768039129524119579139905861103417961059557515177266836022992585605556070716612981690572361863143415436513308552106392423930383743911664796666934065263764544207806083883010494526427523200149109638837049896741548801071609000324993522251417302057992282467287236778184692068960766777947481347607894740036594340707573293949746053328714163668722180333365285340493428178955026447764686623263745636674711881809438686232168580837961884502951517013568954660810445003348167167505591871357702096957699805367095417693604603857807536214731765897689750943792015763952619680028993512952032372010553167086113383344695023828825895836527845380691831177474557488684017334550497128973516882138439649669380521494921687453537080782562992740860132993351872576240461638819860525564979808798325716829345547645122460166138617209852001914344487493716627437405357320615886344246591975421896831482801885847284769849345005630683880092690139927029901483284016487846515591273000150713955672087772437931222612071025780331848247887788627541296247430764499212799103766792615208863404541408204512669403487869088996009743152230685930684892770177006348144430745773148568281408298112037345945846659361785164351174695604381281553445928793922257315038275853796992529926424533384999710001038247335617495399879093887985122641612614525722728677172275602976553525432155245210133045103681148297869713318068810182812669701844895582692289694913651307802642604869796431016027104409696241819071009731764160743190638502137100057533530506935345602022562752698643125580888106396186368215623582711457179322962345008040183273776905146227584957553982342567222487800538207553361304567717690486037785446548433611876805411501883403444668857562306163568384073232439285794459335484429950550048737095935735921734066449537112400386463850916965750384757791493352990475915143504113828453903223582766612631030087885294508447533350876066595280323471608461167157062397641209141043504037755186586778287942372415081783795184054490656956716485451266491846233145063035983079564136003925773658543040235950471350167157436060283440565530863309994303596409312103645520083802323918168117236735235943385623865771375817383561578936085280341242495594945115823795478049952208358315568803204041779397600559333725718507804714807216290605937707988760771240449565967788040091434992850838629299552564044739229659743202358771870233147050320301708260148474185395938705944062282527459901189209493196011376600125082160871461883208437486445093738561692839995811310711793234533069552524982941630114799142540412992922656518217689977565622913294014643079277814428784402062142053315573571409878219342893927243485297375177770594500290622826945287188908837300477687417994937485701028478979012914901934749306959854922646019213037458700426617959409835983854839892235711110799097844242752645235648937118248472451428289723680950091465054541682979335933016226627717081332937663001012445467278419300221083752456513077904676052354157884996577285167929807127261778000281439348897832068355355675310970013886599372004234544391124245378219351967869783484171920588915568059238689824381559589126027660212444488908449781339998688779305342602732349858232030538385033337084952273990465821276569615857038662289217916329671359291890607470860936936839799115501875144152239339934113738218046193869353085616728323652435251472511376796946075415924191813272998411068710936899875513673282379534827081479951580163517215691048980369048918329522439041292094596994634863855925473963220070659295132366095522512498781859468119881655117710213868460128324483378121642402790131730875542974773626658967115301889407140455785250761577638258425089895292071412626990255142143465105835243802745901935177528370263715539179570730892837632625846881909570859210785401665910914632615536701593727933451411620422213681662632633216025225075938734387314503936936065947152287610229499606005077406757045912788311763482868908931464271116152402860310645925080469296712946030285248505132635236340679947150630385666260307491795366443912558746703621648301920140519168078872360733181720544023988861939110188724803858749958946458507401913977481835548222475969015328061956026347616500933659033125736415652639636212116406667742991952012049899751621650508780309207545421692249264725545928363935654645565826637345499807269992980814769410545307322842133748055758793542208927152869527039681590583185070704953477366618647264405382977323847628103902506831832939579323300551373080974102805393175574418862151054067455850282072082625406794257306183265788959769422621765375678229364841502773547047590321133484303859527817588925920318538943410406193055522238784761048719911398292194955051490938122654505751105741930701395232808753023734995470289396568541877780201653030567706044900013681743665729111305394019665203727538960981297592233020114144543363533776534786301994947686293861944334357229814228238204856655892052272166787126738795760250303054216272999212276817309238203023422754610913990000252961117884171294956781257925624852092564847611954904008429940305983583111211721093973922731038435495386963657718923105060674407285020396863599240597578666867635871671157494894196026767653424081999631476603822777455485220488420481659328430177548056988351630851743022215294244873255520306255920104959938283166184790953543380353120985418033135530967525756786958505590655799341026564317659640832946541555041097564164673639546731976955652241622539238085706737779588550395793542393813328570867932927199042633784084337786185383773174944776893203453178788756841865144912094862215206183361681743083899167868039921109961154482568542133389661368646922147459603992874230110516944752956434677866186058033076341133456896339465315199904786342828886123729528594591527771316074095555496843577798582095181998960310523535755092074357850875671821797221249121370914701096071542410694550717057992329620609063767540818707024540599590408941060485265128100158871337119849731159401947304490728982988223110598380672198846843452402699769251268031080483267472728467185570954061556718983931882228208663742147522542863277758418302002962427911404673481028638874497230489833931132114571244299900209557847446727264757226252269411230974952015088072944343103611813411465648476037893072009601227561633077213383897253417232491509726095436468210071885246333390989923131174534308821226448835285466899847633534502274515169152434774788061662519034216709591492813159058003851691419599338881518468830890491932869387362274191302143506812747949647344746965563543168630992433186754888636331238516333531357578064810731967884407328099302139969289236253614815788085429397979698528833400173261184959926618251630743907650485658672027813982182807990649644033672529485607974393530531778801005122615547543137490685199429817370985056666950463323316276987126181413475025026900942034585265225221263579232648907973532932243537384845876448412226209287812351685143074235529182870582608228114586326380116968724318031319343537067814549557630611126290883173346820402604980205463009977297876640790589917544648417617662416862435838856367456075215023553438579130875634992485134181689139607053360465735460438206624940601419093923232324078733465040345104235110464270877022968041348101208299903167034866557358080767026286621799032485918611050399440825191727265771552910081205418860625552235798238237111505628687825393508378616318081568794028637173609676714182675978914634443460566896014490008501435066256515964006906849028699666481646760137286792169565320600730619383677697480113766838896545922033290797064144399748419711067375884126754734085203034147409182062312143126681455890294602907638469358372931929965724413560766559753933375007716568708960849845941128839974188491802674994167450714421824516240424852688725787039823853543340139236690137580983786155341562556355374364470872300638969661425693208215517638311407520894533499907285615511106507944330825177029547788974825953967675313493138987069176355126022072355773745184659307990346709384987390023788190043773215107745303314101207818360414304348634306717681527542785792670569805960260097197944379933755104702315834594252973333448019243662268125645792951721673010006409233744572278277772260918922693322793462971717796466295204559660170364873555732125730846242799775518350226958872092460281302911541911416339077026447612089372399630138668556480172700571272464091690060563881655066713050832851279090584506046780073741627665029672350791881556609072406947207218472737490054090887488996471755497223348795134344543141688246531103663935891197445582032027049535489356856192860767646198765991902368672989770275910526791399326816561151951760547326553722545044427095459375895186994431803704864601202069836231330380357930649420834728667895918097414921725809306200081162614452599544426753638358144470331965791930775559111285003353670097421990891113488597954713263843430750251556220378269553070553180025439382377566988038003439046355529684979604193748635352360030627148620513093377964614002520453154340964279866303239831075126751342894752461995457719734863284111994580993892216489345794367379270596108769037821133671075706216717948476892015219946333452472215017859856965896431193783071576365432120251715649018985835826521940449628500769239249872178263901066082631690712603775715414796754592757089193952569757424615947769580049154220064303113178607801201529494200543198939303160518090407756276885434781614166839415176556000022185768728255914525119726912230380785461995559594222630844970242045185192268992332701657005540564389574874493185479897898152498304368478306699874030774293944819750774942838473199078000769937995002258463559845482183383018723493473458725654027929745721417210986744859319100340340926677571684822852936161807126658441085529130050372952920758735602086100722357738480058195193365618970493905193997040557798383428729272268071287969013151166671433851835658259556437150910867554173209239627441071221712966242428835790253997714382944155519211138538037334240357961322469276067158275079153467488050209290453349556119301278933490064383435285829522905054070035726724896977779931453357768803750412963001641534900610341614184956436193917608730683432739668447141172719913196834735239121657775925546506762680975383010471998743094458758635628957772351360677630189558546225976006589758082557366395087717424589647009281795403313804983700476482742687918760692646282962480922274241610432740781059169144240300693295348011397827243790775695962566237952756594379980956298066707400565826021041721745267697927612749760504557576130634574735445822351053822825120700216936332562184830435608489655972728553468344375031075690519694098835867558470107587132820854814964456106386149234854348593616800254465281332325142358947479681529035047816282769745322079911568569256056233782725167142878601277833303450540912016746893434765005294706586607155983508122843053251379702924920287410836030779823851022162205608734510182076374350101174599526642480294174139273237529462155203729754612002768331481862872846285577288276232525154523495727885523617609322921928109157294134898423530477166729249090772434818296835433156373626752279620985636046980849035917261491596997155140649745582358210602848523852442261335966327870290032059149249820900054176571974389723696786135769120104466332960135678660451321586122703950338465504736730519519184528464494967867317905463565458387259161466278695985451571963862571705640767213453796600173466835307098076777033162400429553319261398122413208885144302074613620222345876741651787177215330473525931435550833740191694554461978129764094954251739636101406877623590929358726157954572203728088219881579920325398344631065809704256679387546536161974293973855269446643582703321876198418261602338930165505175818632452830419757169547513864951497561002061055130794579613459248868274356514341989348774546404236443753852489808489333794993023923008847897755004913119021285544971687275046611175432828510609707704835892132967886648278130090538258430123384508520746807202061873458746123921886631224187020567261391640802434577123615593605500362020127149342344819495029407744876889195551660236045463148647724657362737136207856949637244390072745811113129835680609399981188681417107344085998455803951543096453707826319988182362157240005869552904539008233038998259122235866207847924360078152652608967024425786144767804709520793905065375521861870613234191189713607224269051689557520452642072471214340686815647702612357231537692216635937486061002502396551709326854066349385576396676233671174465572701335989697828906085830199276364128121832525613100684945287061953010077962646465683572013961985170881488923313008285202782455129240024924306950601827919673055742145406110276686645525506488510521738640557148374578086175573951335329965251474573764986515270103308623742454823521338528562795098485204053726061205219260904975920405426048469240118787582485193208891429135149139569014205613257848559333374126212103122494100598524384003891328235736081958245245518809613305335581305116292725003794440494845799110322461269038256555832590918596532176887531364561029181201727836574618213214018992426329200248571852843776271076022318585163607644522412890091476364198315709738741374391617290650432993651961390178271612231227345967722066892028273527395123109320310036197896630070765198308750798889233483691935768003249533523887662216868430266773737208843231497101442464486598012237890645511571656740786072341751436477218538885746238096880750585682972636298463150010730276627950307527483586642490671667971544023712145200848329725723297764724922896154107842988545982051997635845571122702907791758980163642664057814682762072349441920300916659553560631059245436836151558705457781153798791928169052902220744053839472013303554232617696486741044701572175000781527561600087064436440771451823091539151615090698904832285096418954760610413981955786639692586206476581857017179525171434416718094894564227229866025089456165859505351522169547395079596918641852215894236220349502866624117857464865253264939960277656364872377681691231760301847539246697692361785436769009038418041254506599389515922940805088944789483598385879589842902266283214731636174650550596765355583041201659129693745001698684879874830906683030516452215090986266217702062603452201119572557547942793248180107082935823982766722886783029623492747612621033847088355397281869770642919254917829064672351136717131846910774245531189791431226444431197035905772995098937644683777662823965638943057592977303015395562839720126934503473356384984646938148788707671144547274142330189705535390611214741301123065868643552612645882073139484824177018166072620351214635201971940144708619405806553853313706883712587876309500828113957394431726093636485770697389766662713395201008948414711646352682423470192942252233120658731388777561353394482748710700744968047076348802972975975192310222256326882240136799237022402547447918065472983977389322686055662869067646850635283319004214755569299014298518261446495919123433860183240585069277654343081462240887841800645946378467084940434723728546156039195170158731950452723657749754098896101272170460935047792398315386052235672201231270396767820894517006008505365464228570256354139978286400305097801673791044741294080148553259010793235449177981140440004163481443034216859896562236836698873587173515535616957120822353192493566003862632731706915319573921517025752730118086805951065780066780373337860393880974107099013956425109464916700477380708349303125050465475695952476083674648323448875642037039017105518211266389648527251850207690464267336281700959599099760798982007752427638003744163207167289331447580380101520608771574170119334222682452566899666971479355517077967626486289067368679557917195112482305413313408337300918660828732673937263365049632035190515443640772830513112684191734620830974239758906494312913901720895279948186771894470457804024985819839927557678525808723709953102987806944837909389875936600913717955600350401289372262551352875835316329762092292307586027766702381410546662088207079200935335068741409158794167717505166003912546474125610008929110137333646432376933638648098455426618652329707758489927973145124186888138604965297193014559470668960847036696693853677350573326578828042653825283850221061079220026620675460511357618201347278230754847569807095844117901132969070990067531660890756788397677668018456822997954843644028385569818884846139250879256571042786311463889713309991381694596589674799493862474959843362155593112022768359399852627590244661581429915196301226169790148610543777593496252089521297111162938462469061694652946766796032446929294880334776367676250536427474342307809976653187116821768610493779841544986633431197400354026781043040577008176703670070882484578546662257890223293286078621798821313871056101913515626660938712691273555739298441074195523234391944071535207958945494218124362603823544986631656588132743867260120693968571208141566155507617189194711248955678625205534846844404681124923018458035744415683985153153629322912546022067299348231864096735400192256061057083611298416044596619814230914797765006807955768915987780638199973043550676684766738288785466491175417918952649212987363681942417797714975751384736358720702497305556029085504766014380793991850993689645874076316640911449413381101335990427137511927760797249113721190376730826858308282288984631225505174593929148544516045353914323878465636945511992202817996275828885467948245719963532517110792812105201661208587501553325174456439457201238614767503329176377719718729630822094670156413052229434989189980305445299637176225994429386408323479554726298871613830463450987635535760310337093556969118519801581678270286272796863596348841893593442112728549352143641620015357339281676205558297658724171468418292084741884883090392493671436491752914994685267444321877008058630629142264942152828695793227138169613703469171286384425371555461481030629756429509475068454477036390936387158563351546604135339304366021655973739640324305047743693189104621141984808403460538400837034181027040414081788234712675122131241914462787256077318116673182212612599196349541021686527246060779291989549903294090334403245663795326091678555536343560014162719292172440675158860326819586085959351010252903007386072607628644865730181159370772250683296985202834957849892304024763010795506509029639718479972942703883358130387848382600486036932074394435199503920276666420796826301002305652159798310873548579628179159095744103340400268531667176179563949715415957255545635031216827439864456739918092076074629320744605171431893702671786595858294755688881565752954239994587488300199798852198889714897116110664079878626842870997857787359320701634825168564586578605009804466084196997234118204025649761810011500221626195116523456597532233069670996721789863894624822237162462715367625835777006667072504198533853593222817310333821024628043911546723418427570401366786711487078993813574035973583930783656833299604021044662866717540483524867915113393228730191215105757683936213448131636152294793724545852141389216323467506233727978278407479911734695288592176138259245738662961237011198509469613691825890616463613864234595642958724966230811660916200160810368537695939772184165161520783979754083694824388461776834942585222179786085870265293799031861722989575408014670628034456853475430715518850416610252401967773241180122970155743167797730266754032909858575873006706897607911679202223380260224541707650371055576686576061809365727779296616596203519832677721923448414120536265875506988076287564958974827467909720156331436530920631009706081859134032045904821819585173689665484210005450502980553850960310884335904640958065543684053587310400813174354885717683937097156120547119395833376990871025117430139694797801982519550368784008955873423962433433606937911054356780774043910208035919528852904894988404475637106456903206492635036559475344901341004899362970684593012182398130152996230687516901786688614603010242000297714766847609752315893060451388946623914771206982868415161067073848409663757682885387291495461768111844700153748360045240819265613378853673517519534710890934810504831780549455861537567417911964994040819675157424083867778202344216513833004456613689317749317321344115303691625817609063124648751702949269180012447978568239501593145931463117434015011139783311938799711577310244171084535816945480865548579009738927208776221383334481476590165486440898575488381163134238917452722102187235484871780297416831593093505280651475415249956528457127438689677237901567018207317823327026757757761620301867394177004184997467681070600980783524652869204964924883844721507746134866601102682100798344246713013330165223420194412180160194935980603635345079417582628803599730104399746593152121143069921434879925960350108746615932193109837079397265868246281538259827387273509480192401385756979697261238587902577531213485424065521079549075833816916863364738207652929674716593668203538811007554660385658905857086159527993880635220686866664365415596113995008674078532707874647468128339071228367376970149431007006138138555581535919945196873872104611294096128522292814735150359616091070985631029688500590060897213995860780747854373656452572491308168394939300828541686388293473982697099535951665925980335145725498362139402581522948961267783258078670071103321749804714042115579282968578275738025442853033549113110909932700641441001157214224942961898507942252416380590854374519046086186683497820694622854678748228976644956202704302939644502052989411444480073693971697775765805191506410691568214127948603934464012160562143190830184502520763840431285410658399793460202631790864258583490939250705785435148686085827092949674669426750495432175271602071861931904949582738276177873819039797076776262032674977245847807995240376038785277961978699521560552758401619899521961068067641511886739165107527876075905243867780427777210175354392225964773192397022527611722996323462926025708343271320766080641064948560971597501658343671282233296617437284657772980767509853024154767493679088802965116674984077043008002563898771118310580978416235193396491580670463988520999243484029164692602187200270451185710210198700849284266509633364185918500877797183199626838120716847869507019894594498841662531983034388111830134282598654236726232706446774878067369067295833877460449837429414908530220562294975493966713586330414678608875386090403249060510892133433812790651595135566912196003815815371182625129573703311517319848488204180264962714547160767577131623581891548474367140549736939161978237670720375124736672254673193011696322209446882575628686814643352356618654309323217015962182773252259751981056894469224895168875787743914922096500080472886955226691857654548311509532742114206709375776457643109346358748393521373348867726274604294450037085952645608955535500913132422398671054222554464815081305406213135138122853888733915117757873458237320212759193307129963393013833568909211962564159333781726679503710007934152686162585625180530072510394680308824247521808228673314894928132348466198044529791513092728952952482942881928079961402678095676595570387736922512730121577870886778906330384816115705436441376788744290569794550672520036464815358934269523049947966115831193520832696963237945817358537922899740875316870174677085720990462293795737091613832586452965747118544507747600573475299166584389653967664832518180033162777029584273230011887663256933027477029721238850519564226777751160681142344212328773448394114084896996834416571035381191786942916193188688565797861703833628608695867558034619976932904928035189121649410431628172922677678859042789497844211595673240521187406030238818023257523039643729905655965879251135614581539900969408039866315582142637618031198596937203570097001520100207017070114070648715065814511493844632471292320613415696061016634138256194042618855313733014614192867826244991708803934516553742660113478410138821283837420731226874557309598153007373207796357189937657197252244070818768461081766780100215593739174023562965214704819506990130478901550606323113200633667226836629209957723672171255523093263672344740014507246018337336610662142358402289824137709474812758397400207524093965238892976863865884079415523000689669736186884287985857930410866632434849242082931382401883869900775116844349252749797891806174163992958862506185145575765008746367174306481233948673502266788162797984831261518367745289565408051724457786767701932764789654572339279545210300414503198989576070035616521556321031579630676291492782794449094363894071185635476532362165373488158215736052454186112876613145911249119200251471626844051568002317814715623493587414073455123558102477313377297951879887185579484083316894687860235387217563578755670427480750546837752129310589383082780668267636493825965100127010092796088352118781353789726375099889752656263667746656423549980391248196533591218317343751299081837613483132687606773590242878764623673145964360378895968968859652160491453111918079501088003378770693173369852969602036060238050229607057789575665181351462306297155229363631245419456344543206035848136005799559230143423647824880310496897782568104119325665777206285215599123838778591798684979478263870437563224009433261524267369397526686075025517215087762405164250453849387856584221620541124755279174460088563352112005531789080087750894332517455075557013680163945873009781808657967618867062804951956795504818927059767754466407853017552371756214960634177792549649192330376436330889403634909128653811198583713562650064780841394361156924019213629420822416742041739226696818159105892395152773017082978175229129104749187476755752945640082280853683013224685693060450182995334230173635029200233985026256045381218212181388535092568400355367400196257338992188720209987461803859070866047124194499565707117628785186572287570541517396042193303952473550055383517459678879245217013739351259109206309366216771916296878939090505281564762337191130220280823914472353112296435392802397265585477758123300333895800598656032213647886885246154716854998670081572702813720003160184590134156869131896384656383168315010274693032771662101974518539421808725115456253199006367296080089927417898394140220952345334840472314345542459121095403091982269573224694789983896879853510486790969853079099377637798209255843271316207988602283699945985971523037451820919669424304252139896130740628960386484711923996849847269352794305348793538406533178317375346213888099387042637397164979771467159964285300741972233664822089499350211826753934374786365108308918002922580829605067764052185071395278983126904742081491605469515483451996974877915693091757536530975899116918534259975695646350462661579920020363702927350098112371801653805531714904299547151959563710880547321823309113691616241621766639840687071380730829981312998979182772330256190799647138959094913959886188961247872674710513830035305542695535878270347850707780392788847683448694588595412834232707222769246353680502138250362730653585564459278448476422896980247345736471226952527318962502923338197487467627779280457895892761975152149234588392507229574100432565994761597239830827636726998531499747114912314012466239002494632119418836005790103757920449615320071613001616182843373396038185839652211358507053274346488470360228183674610150501616271124120874874388140257833203539985302787340617195862584526501327282582093912123295402501236035039475831503905281095507117490013396639666030902785606048337886246230039518261745887791456629000135560299142936112131521488213910513368709296517002356045747358037457708254944109287560984250524396311837388495324218464637818741199424864222883114356446588785999054003069267178427614398000387741831008061482187785055877825706858211720227267671187363637860313964801073883265960331428218435494776864682618772178574120052300294208734630863289245404397620057103343047863247355762519779201068001915540863568566866911851036382612077953350922311888092598546758800664304854662972954571578102992360492969996097769289956345446469202670211073475417162187851031935830586999062285713490399647545392875676342067524780000942056389066686460970217319623909610973616699545985373983175296472035757963637251541870367154922446124128452331696416824767797036243259087245432516719226557832712140270962958393798594452585081805690402512439363607020011231021416905533451919945398782951166568856602584135560737159209578000484610436678545852529316206063011026864424740811705043699685570948898916840165295030181176050007171609565785616635187170920457964942177647105819318567119059456567883358988067410307616900439823790981394027221220494474696392915102485939960868126787622627694586702719991916115796659747084729554796490178537963872302745912000586725141744546425899838512143726460494876771375367693705146087828874765293045358469047052888779801613159751595616066414250523557539653875221231482527124798992824283752699829611292119963201300387868841925684567685106011915830730435607598155697223830862163509440987002435544282916646409701693414822035146840045784386030067426540658398064180312779057281296368607583460678784523604775796503772105677779670984514224957997529702129564208147767610301538393713237375691658082962093808451535473500723011816727561461309613215608059405917455242212261536799733738133064877508447634860030939815991065581642211224021587783382329796433577972221824078190048622679194898560555854955296520173332607535899938329500129863843298392471086507077797513602241490086176028258768365589336191722484253215683339019940957901995477920488039492290808655999858985829547579960358237252331356249193668293471103999393455505404126225332334305704957246979822751477562848707463307642271864516790953412687469941428189800252925485395007591874222731659320295196749408789067933106834216397248225321410408404784643097301146008596726732763818251096296581429567683054539756035186266116612464505466084942516710894593160671716843805929641294023062884454919980561293195137681910576434979981182645420733098346071969954561382484513681760396719224772126667613422043316672482317684519092800746313146476298355080762674233492611985128196491650368349161379899313134489295426960423056760734569260338384386742560121255097709640933696504004792484139097209243345999309629988058540025430747313690067086077209994424561047853274151024527258295248306657832033218849523196166434925758168673086567537417871081901020770552539491448094649624062248714101058653787761522890958340803996682487284108108789046097941517981482640713023641789043493295588512450564233017157764031077430973780167747020490001621677794503364414653196941444837336745716962220595728257863874395123668178947608475118089783265396454507933530496348910233805528923731888082520151774011979977809588683647521629097497671740241609564440729452738751052301322907329935909700697497107884408711402025823704957319015469376592193783740805155278057698296563671262030414956318552124245143464648878985781575448002469253645022899891972243613561384813159027057937385679665060149292502942256785409249523241957012234468349502235162813226749120091188490563512746284079086900522256729016682997060274154960991259978737393751497586459318269855879528437309573845563828694692235505012420539967799173240975864583421741341494360148551807453588417544121232379649794320196598920760181336856153872588729556285364156784713241918330879210102699327216457199164609464621206666874458578985286570634590922507953780968355110106129294691472649138005691323034496667984878877195312666411917375449638013838559459740114036879105547780065727959669299996445111476146800821016978295206273898113460295314607974428995919559760387916388920823398999169329708119547930158355098579634831043270429981605760133241624122470791587090714058636705036243288311413765574296970446600568935674035638855729533813831860383012308365519043323658408677444250018248118554833092853843063225531473684600486001435735078253801519266260385576147842874596652908772365786654271778475365096932050206050062560570337669763128726874302787726948113746454897515024365724985297600910219115124362307543352026432266651276258306357767330425166935672401040593680013591567819611537887009858103042166838478534332153014552455612209684861354108029520957106343986252868251143692315655333170880159536085142397109209121711413426881466516184219967265606635498503740884516245833770681494912159522455376007094218240636068862751700240606437255427190970948108734118045286992262171476800193776717973058780151251184736576662433745864744423402058350425397876683715604799962461431809959618391740600015979765424335279618541684817881512453154815589442481918511954856455383580780955588714134984057278801732510132239337766120587638544146557596327506565300369853928313971164348575341436412468782993918511482114197543586884078122140736037722915545772926387639116059551893479202581855844969741404065625783783946837439734955184043345508532779941826894828915131609458549158046065643584484890883564680085713650041961917167518650656523295676490600647469274386251313944424937822163385113724247473021788651537239589188033809540660073832494564209359180176625916496819995389636530506922720163264987771670932878144761981594853047255785600194724181391694533921234630925886945405529968272354214733262309003207912779189339537312170367506337525415959992647797608884052656396455035070229737263499325610498127683907188395266446294608054451324331562895166929637514539849550044672177419308725854413598465288339104757109604123805074105941081245370786863800165106209419850888250907389881560024399484936218282993758839458062874239628985334483135981921574380218915670137754176716474249689907929852827719415859733290845791366530776456069036460760685155013392705738561047598226897190941353083393042785523158130869458101786931232428817942788852827966690651636595041345451863890989483382817623297406259700406409029890559399672489948776071621008003550240283371987635775778963264266162508014769877008585618628806506397514252179700292706118268789412726366724138456719928650124052595197179422405899516582249122281696280802369231993828269256487003506243324633755634528115372038968262106136700205652854930289452195482349287108832933778841300293849991439059935109115481980084772448635849058471719105487288134191864387921148424116435677871392044092971685756575342237744314229317819818519229576187146528899292180215161147786800474457966806206127889057568718269726015188697740742858099108684053212731325508306378220139914406019947451915146069761101955678442366886454996823932859446416087011732603199459864242527606501712438303014752166227275254620815207454522563644423913261787281549608660450270900902270810439685474590031040178302352962819963677254298551845337967960078177228645844830001312993573156063738256074880129392580549248132278594454437013662924727798015337649498430880554942479241531422533132939610774759769044342732205040328462052634564373789038958101521701462870955503471907876100825132814541500236528320774578026013613895148110673277369763220860217252868828472152214137130976820127730002243114799301562166613850531470461849114690214468118631160788928506351872588929186001525030601988208456606993027781544295926742282273329096333368974220265223262827422371368733501835552506921961128934786509818189027967419375104762272691314366617867817486226553378817390992388197711856881698164204630557474633455146593893923310974593367865487695247031550067758862879893778723523186729229719654727834996310486254319558881552810447437638020552796879859374399206376567665013359587768223030079074475696817200435813759235187131939765611389643994502998690936028645669562914930142382813249398444644455698781974057592814249665435906582704284146583027437592698077947397221241149256143438142916068476476950914382208872167724210671591988132064531400208679319085443080575502178961381123517564888199262303678296955193815405306311648195088145717535924924581811812355216749510578526667664614249325398640523684928704758495128505248365559652379744221187196566253145690872106385610423614091315280201214372683894787247088642108469077775452036505160340030078784791881987382453402529553172999958512600276748569059582906300406158603571065422584183412747519438428508916513647083331458327156880724093445925170126695097936204823614716676589549216047814942286762417421966415890946761856428900395029618923136040911080318270492220817247315511602795144642932585073840437713015987255129875138527080878106357688171420806182519831454914888428781761161982387630181628745784449355584246557354794025504199877282142925963590192562438407530157236111356724339174634068310118289777349545753658667056980110046226411555549381557988416992194075000166181758738804720885690958169541335680360032264164609564924161048489250806855041932478340504509429587603831150701954633257610068256470885533389179975109675595136996027818264759692966625617743474884097424190048360631582460962326472682216890856509287404964395255845589588627565319843412478260606237186050447555330428729909130487473892991992369607555678045602039380979792487692203066505689475954576380248122327199723503538830033078011755902074669517183533560179623182293024380996465273180776581299319279463373297557803270038065564146596875654191936195497385229314449895702064194782263907669605786995096625626719279365993356185060595411400711691489921327358849816957219495330280228701907821875222002411309541639310713778377964031253916733708690257139012041958015308514039584383960805069963215958099885971115836053501635958780198071255858105033259913444435342785285601590340793688167106715975880635548159861970997223434048161529621837465456269797825569329552394225991728413512601550539733407258082476328452203119933113307899729197699377006067340527175216040315044483034290545241834075708793931452704185362311766323206725863996697909990786097586954361950521940315451868746984901156641700747513123089210800237743051036962357612900061327796860857654406987342128508092436979754553511126297882093921421246305908247133535944069361594368477791218780266296207212981856444476961245279047736085124397702665021273308299243478037560375481058353088829731482895219631294191597663254972631558880754060832252801560570688725126559913733458389443318508123186406039722801740259174899296480382181521596000404600593809681528789931441398575887815242187330148853526183464368106089783053270810625793274659740939591812164201114055965313133913205114379385730038297770034824616058276980920476331192333886300091366823263192613400918812596829331677240664626578752134770721399132009782697287372469101714715795951076903703139396305924784136214659194223330573821605096078766881466194370262896430345093545746716064529065954260861994182478922217414989271211932636868774702802332664618644969510624426944902195257675011249594089754823994470530427473159532800394389139485192539221536990824185607460591644031355163593133466021897536428294452365936870697788799539126353263586168526351070443080330060608721012137895378144488661947278714405880477168696202961459231104919143520937373436731804683825026422512477430496457966474806260692859998073033227592007587660167316009508175190137337787126891745602241602622647178691796201368887288696051923144977387213845106473859748588136263596544404152112324161975286822276526621343386622087732735307246710199205575519334157580802979707897403757099630423050725966551182974311865722282658082056749154986154906063089029782346033571515907531937517492878279446972281166835284364858875279866573921927399981704607686656219960891189413607925466745967920172004613767203772364269684432008410898351009351720269913100400242321681293181339076807760542716601324894396743449675446740786614160323823283139677459456318757977464767099421020024340056140605695327020953107337823074092738351475475317856730576146865003819348008097826798657700989677951923094776461588494862586878660686837187161972309875270586511077351210041400148073115242781179268782588236842316951360517331573024642985090244315545734907781388769630989303246784531096154086845322122597081636691518701746442767472809319990548714372653352202353904962197861728247366533948874486809794129306220437960362957248495577315218545813701898542310836629319184901404883883842136352088187566766038956131913739506586937188274465812754344520593846066533975071011041313628884546210274905525291943996798675236134621684639570681324497759919713426173827053710032146328398000958735464006493100378520903438021466934024354326969699227563110430217122287798052880424387114809631388368936152201475269671620655111878801983640032488515429155831232018255207930440458964377391756597148602280309074661552187350868351878096609807741129728501184082241691545304469085375299385985598561596368512762322357196949086830585335429215806108600775356252162567609521045727831800584998699165349469214793938786739278455623958676261610136704443267150334975706137935239975495816798094913684464444959569859437753989889780757432426448402563407403346896837174878594886914455788437828133219279468287518476334152643708511687496974678360263049854223642929520398023078023610935383096155790968997621864811137273581120327315292096075661792550349605279704529249142330909493918868662980916431167857234723642764068639229336123562743769922258957176006342537082418090137838506427940734405749866295205316506471434624035547190298676854950498332480047068786601644278926728042431996583286790453846031579236240990985597971892824540730428708177112470777572680077009024389804306852907687515973597978064371537893440957377023735391307044515269007931363038079898465177921973263761400691866943594889107039450905721933891593539284099904340544769317431625105119800684916172174934202519016703471717614390790764865274627615038151592264920826932778292948027436420766771959587253306326614227542711525244597789026896602379979767283200315688036329368051883253006919485802078383293266951019869256562096816566560364314044494203556337127019383963218987514346165716330580294499872884716363829847310372510228774264003208360592395135049154689650750524426390486586855307923704861057474377260865470627456906212921104048493544911986860373871290173249135517151162836138432380958887038166175006154770242774693047168841384856265357043113280061321766732180779426564550212602320189292460875323437692889676043180789465400322539423197621750327837912513989141939481574111518992341127957097247640575370298305965077527252175693873296273014438702560215581233344256027325237921174906210526761225927683029051010027314511298752442707615138199647927370796153382797089948711156906369768513095636029257129156786345936597838381545340260749996077218919875447688973788434089400838817391265974783303204472729511610693106186495712283414052364749421695826849262890506540788116898122303689053413390418534626811799248165319822435354948476809177069274351813302665816580139863297172202091956707020942546668734433779350023924404294993022525923563787448092300538171593108840454628942141949922478542979272771614510315851078154848570113284484213203517346544610552175513200351286392046498837864548341985818563609750640987055926914335876688088609450604637848546650811058842241753924675644422043214797891773594960617913318663292339212365063361702090347528190054644137910124779807945694565915560813248433539956456415823872938498649967424481792473999500751458054022763421932710033241776366877153602499837448196041659028101495685193676937277053856550295797834899855490424436493705562351686662579814692990869112179138456181289908562298402394441940998851990334346449539714100800120953460360150413862134626672948742583631069336966247104408470700628837613265610166613825234707530836823812521420970810081281319215370194562961079853081073060163556150885979931871730873740471820079335991589056725583892804316124458019023036636857452346054319641789920516436752726222641348823914103197175958039093717050910112669754329700819149122802040227521251351846383281158961682636495127934955845820852152877297286832733549902385341319185569224856209967813674431184523383120086189820346069802072276508867979573647785358451321329670043671605964363882628696274047892483647398843418973928491774227505454462637924219063079509323642018388240939353063603586393481724755634270249924960738181968610615096530103221105592528719532260466582901227710248066324475125812669729115459815759492798233917800749803151824827721520398043984048725884762294414144831203996179979313402392124229219425544101450410415755662508665625178782766224815639470226710439968006113721362013468044669881026176705995066676223222251931475724470464895394655687768807326818035580494528044150478246859164497830926877997497958511271289702106956510503750205827698837732394319646791941644259622763886203578015684744283285900401218691295602742691410149764627125303430402877251951980487996813251169368297198265096398976804891674323329324945359816828303616518753498419097102074033691058838109159354296761703767023851585114966397810689277763973653713558000903960592726275558602125402889203168211731579922756476790368100013047600045299765244003098113488510880692766375236964613464133838433892482913008808774107629789944292744705901060423312906181672464871428535069009785631976778279051011772917392692586269575290027846927739350328236556905579826325032008928319791115534661346816978077157781935845417697999868908942714940916550011405844126479753856508477485954836940133619020146561357191572054436880856452713228553213324310795740921718525008922480840160225527173335224029680061539876753736238562516218834613906567016835829728201544097001917679942855364429967917177134024748278780230994763961583012260390409519045552557067901781825235138098307009613919999135892794753103204761794924824021868225957879296027388511773474880242868795963680281931057547622429624126016553017627514123983090243969485578519652629069197196415388924215769604782260262403468207887666550783028681380609363209900996658618211151850981965307781237976220433421441054633056676865046140679402169705236127742020868027346892934772317091171323949881544437364355637319224541360399333649082535162348385357647392917468776417888223279543409403926580391207745957818861172690724163902049146110314192676217604912761965094713999466928324783344604281391069973444077365677037816248807253311705665918136881615238345981224476311044870565664263956050834458393960126188189214921210949242417743983564723374199321268647701251496027760567671944929646591091659385623719213381770914130814604205414986819252268239139022851464709419177240936036298999255744894060943320940925418962963856464391111745395266088353672870786205103047366690611128503736340532064104103874624130889604483521384230389443331877130666589561943336766152260571620496617647268747673884785857122698509033733621615358710713203220484464687571236973370558344560942305196348211379236699548717582470918062650488748710886681022365994476124572625525526966270893310514250361057010898197016324591041570587488243746121429780985176005028345445443572113484965323832360736131901287767310379208947640342080813278532965108493933329176714918558878734711348386128705712243668316640709078449339994276147421933115974924627247865357308971496486744093486024527933366562119299125922442910532669358469926253606914263672251033568801554277574365808769979212785780161548537394844548195569991226022873162463090205169098828545887849826319553141879382122024915436775931111877567655770096507322047711828108536589667479179431803132378456913044877746758093382578677099052525423254461981823260030500419615990911350104928119198162204100842186913099904814014377731008618559142290421433164265771004804137389852736756252514841598206626677902009692178480924934869958849768882687751951205539890504851050622476775718889634135818376044604949634069556700863109648592484629717620058649776051757471154382831757847501149386972668882896755403347681458555666712017720829828214418375427121830146581539691287528008389883702932644337693565245674813121594432809087835904731312716213147594369665486402870029427645990690874004123326920864833970889003445290784581754558430026744773899333090305934194027882919859354693802018903091669271124506480687331510640393579653220450198229519017531770840963127071159958981465333532978379216259838620289017781214796895488639059091516897303674025368587692021882441138200317761571024770686485289748461137045208707969639627787868826691563512549873311154705423825091432044240867693161639955557929894352664955927630912712602147317936562998479454572696811957282649043528853623301602436874995266664704219930820423738321417462776478534552768981327971851506842979498957437415458800091948097138290801496015879133182594408588410150002585836259055366705231928528540227611252288036811468872795510746118561763400829867170666211221475957812698539063192722018571297232890001491106564446521140542117164535292730744633370751998732054632037686200682519605165297357635700450487949217531516468537961826260256245485320731615686734098215361398965437810505709745976046721377212992499503756745032749567229659349060233155321238878757621047791109496266869745320305397376946410786611387647975421894201869287886923739798769849766731519783854993314417795570165255293937215179964546124925062268193730792476083982785348402728857385546135105601692468015497754125897450060465053771460297474902564140319621499002716955361941936502450267366786356717001391679222519883723927574372848462023170329349209824404266066483527929997683277270290151664504498307334611563748809445180078898192070296849933764432640541905842426432359112766358865226956575665097339397711252572986945046220134111188241107397749740930818281583718035248690128335915736144436030393389315328764559513870190531551445517267065924409324970049866984549236431041774537924754402920764842476139886155283967817441155368139415313563621161798225093304498845006398301544415630883677729766991023179271465040380431686600864073400803722388104700741350965303377080692043797606621041634966994660852980500086682495320783369849215517618368663796852369000837047377209394863399952697985337614362584212144797366887006337741415276310735202275785575987655330939047026780406932513044786109169536789332357643513060139761141596072976431953189769390655992210576596569244995466772829286197545217615291798557207420649171008216246316652796280441435612160553472592389058893732746341864019190076318797674089649227198506064644560648978801532054578493132833173161131380291783530733542931517032463611169128636525198967270131444971281115418921610143019858657489978346172445994722283045673620439701199530782974498919257510894623378542053225785705327858583742689361762940598439380411771079831986152498504353529168861458470169700505225215294114600392445238986148430280785178521508504802011341068615839872487750895853362408583310721924948529030212405240590038678718782371751418405050409000404528501261483787915892162326434843510911194279562192252300657077120906060654774636214740555753709130005056976373954870255206103398220249071659773637665435479487404722282894960626091287850038903298567032741535835910625266784893442499428197792777120138353499535194562542840213258552355882037077665359622673611938562020514151950923429805745329381523714948151904175932306967392630153111472869767686701192123022410606268685748640369887197707597591611639032276875321598970310443581309147228307658776283200261737494126876647598509883809898100021817107034636269982636827055617731848271617758465257598857032062546178927414885502280201086545129555546542478784945171755223021734284177931952191881220109388994184236943057829610386921364740530934477932750091661073306618783411776665217182000278417960306455689144075419500632549964152798499034883530566216581669525219795735373061195482948771322816253186226083166703451033853015661144881204702545567192300859967637310139912696546916035493637595358264505851857198915082254426197106690560588659002928394694058200900097187731942058779199835320850525348875877612793167992933652048488814846033911562748856227950147361287896708882427740476442134147069801026413648873340361728803640392962092960733614699124726390847032253515713511460047139507998939662541526251500834394596650491230661890554308072135103545708621869803156609132218121160302975663435860777707307446078948158141773405772755228402945789287985384731645180032295086334147274311632876973996281643297800932595631267707231923705273020685404195483726562541314110896209332961629031968075751729423281869170867815207302258673897957669795408398576556108825396857108424631679468102739843574016876329693256192052828641086970911516269269992504999899404584566653838992192867690417249552700376738380931089849243173945897098291155575824635345711351535337509622986623935519182135190212790050172479245122704762869622368970502897919061312140856974007042229681428919289701344569058696419940418472397012064944265798291593238433720533355527298812497114496637411406891175150011678043053193727621419485155934310686419560605788522307468875118757948849383054023536195489110604728846669915972812268838559842372218065178519018919749180371813548980705554869359651551307005956666826329995069113861503383703002382566370600628542463611655756061255978220840607726744115657097506034570093029634744413401135763847843186092873109674708183123105831934655120352890273148172123343372238402924623387598379942019734304393570223688724275510556010798022849371855567763489251664184416162502461956633813453005750003075588601296007613230729870076483411037917376689710912063020709468845620956118630032107256317887305002465520430673408120232583791371153801990372901691080185677530478649838918451085545351062557123294035568389512811147205857803541554503783643487826555539128288655049494860344325158587786620202663917085009082411742741605783211665816149691082273136747374997499384640657435705010479615212578387465269557556720867580125116800534566834110322452829692945256466152085680900361362204536499656082244035779529153245149754509580622942454919409928885250378905906271397250439913103272136990018768890390424163395313260859375496163839100988922292793002156853629527720525619595491900485876017787958372652003736991920033435556300703357536198051423055620305961215093321885915769714977334377702528587836119547342786323239977846618482718563509113136541758460395689187893000106452293098703179399674784501195686395318275707467799270678748748169497279868586453988821120828461572844967446044653340604113710066944456947245396955416714080987381167740874205651379683613938548964888666709063406371311363520148274170451426005878966254719574116983303454749991866679246262927558482783739677604294801362245292880457478668978677568702973207272637069697232186947773650422955979348949875165577522238273666749335160399808960288070678472270662875079401040740704411046615166940121362113159670418429132829232732182145178271547968315649534079449595890173454478579084835175862821545005134127247406519189388422504461219485953782829491822359420899719629562291800008113110784946420377530994818729282323498081177217301011414114322100713576918507152522946340540844692850759228240815252632564531880648999678660041263603695209167658943039883576195314029405564549353799668956831623401753324882297571952413993245311926434412056385740490816680984653524677137353493698580176499921318671434887170845074106237939725169266695405741562035050658929951298094049072801625196286488039614047993988036110372351197190252686199155416492748995184979472094339773515299653356316969269003820931385427259885906435104056123903186027831156122404683277866196348477183923215140311001831073942623161052735884080868798384024903516378248638794094595278353690801402092418267844013077490448821813793807570015457031733343063928561880034627798918539313537369504822484651128627721548592719820656648225456621190405694921021242214393154215775324148157795993801938838825629112594698121660723974311462407259347457660331301598054891764286339948363119069139368812062451538553356380880337102690603976139106200680005893262364317849736509973619525291122937845428271295096033295331374980799465344553004516632627713046301864380833606453247098338709809488561286973663600425676263183171421107599911233964106808254619816106123489710048340037260879526154226829494660222570349358323621383381648589098048151559985253984373419506274258629094546205963777939293073930133219363203609444241755437558564325132328315751473872361959783333465941816452090343317446041184698619907779368423765062581336619532670651641043702103706470636484507775686695018512162901594872354129803668256306137531309136231899418480575134437614597423680543709420016442445535490439131293822756415073810571403366885393940694388975150787610896491638192283272129589632457140219979903637010067250977856317135456623202407000336412747908792272230191675728044768116038872878507819056972741837757259124975930596958849005193436394856050971732144063966519657387274109365073804314908638500099330814435350418850195370641144124532581524789570120114716004599123442726525684881791060532393672997755318882638415886568625440831977162624244652276037466243008780683528313661931476213627188828509822181008017759336453834662636320453862731978220553027282510811226699175633113875848822919845811011675345392975596737725661949612174754409865763259012262425039401799250602782572928566911059097166346205078705910653127411933710346079678695174945567199325939458053230320427090203707402643646027250426171507092942414405613676320469748150311912191816871783971667242306286339347705405402123387971054593184820901693253082853473930693540740487750015595262670537834524305659817826538943995949736269057409065014208641819431111080749507517915287120854892749933810820524215723453821364750643209151364498170372184328620827945282191119226424545464516407563134102017062974978145625672315736977011783038913014049528703237874951156297751242321906347750399590745456162768845183639701350873756901969984154359915715851336910649951659032735906440274336454356813815436354208153314853228919819057953231725455365377490680729292066882565742648495136328103484537503616596742757826268159579942042720602206494051454561992098611917593413522296275200395620169160489604730438320315200978707496728142608652573712602579419394999419432534690668348004781809298690108886849888638381479974566343801456871782382723096979599167260437875829588475265704966743885132321961719842706540873744283984850815208235147702813636088260391519707845915865989972483649204583010428302073436198607019592709769282648182531346825541669061730789096472016400127847679373133829084026749583671786526357226177870729591541512583749292339818566758801055364924156290430770852868805405650426967605758376021935112587006540674054464562288356089787175907505403291678929807016156103041325444125536439174902416203919909024318813077448403011348839521526933387868860420123444697811518454550842937060775366580667728347085833215048023433281119189830111555256091022005879441731694615546417290362071160726725997695189507124381742691883605874171853184405280705796742599740073311625357177666897759150620210018975492974887477474149767277954026102467788602926437105617042940955232239947912310908660730036662174576926406760225850901533098551395229959373340760220511641362485967314319147036580864567806193104294201108839518812410005808101113283762792676011939054754328727150429392157199250989346508703032708223415663968541063425330932292036264367552081697841996429748672860754427614029713939093247043145223399127944059858615140068107219475736221966860459133146986088797445346230582931897758073449049450040870192424729577765529921700727380784566626031625070119015232397992874719852168159298889936783761589988652043163799877238674692651426294022379426828322756787519612916255455370111793927574685298789386021831930299945042453682951380694420994778423265325911924126149042576576405892605078698845183933918599695366152606283041582278715090762686388598674338242962810653814206414195243244276059251834514046490840712194117244324061066685685271156294109537488524600349665055202879084642214198896355284553228894578168568907949684028791304775722980218494568199309358819058521649778695852323403721237341064228215737214379375737270767481088073483890237635583484543728198525993242301554173170998494735095462697012493038823101490720205420600632468668477960316699440539548627998656564659104047510034707677647222454035252260517283777079959397426533440248575762748627618382149433051307322943547273124025468441583945302092382264615703554204899665034217723768623463526330260817694940267441576927879623277205706175169201483887236310263553572943363244423980640554483978326283269495216414913548081704664062530879130059236687455533044047561495045193163051451674392434745823528092730755398206258866665850068823738139832698627934130378385553301319308192772158213383206123849503338941623821090082710369676913410539437344956657315036139917828830576153039744636752175105751085960821084681665047980564434805477792839026311903507774366075934040347728439231194948217434228154581500089109099138325928791641190575581047850972937313483678194558646539629815487394693233705983829422071845638554603429137311531693145496534626993081065994505779890810843154321684634761172376092405790261401274057748002501730402831299102783720365843678158902444546724386477390342517140625457006299615499940234760500887137743968385120031239559132362955326355183808087219776262669464891319953607627599198176079890085613422772159758027496944617405392183793000062854228353254211909880081189896579445157471809429117097843999043024483113039988074111200281609806069779306014939415021909458846979870504427872633397965117706123063696622729484964231660522317694457567666282820868151929125847339738078147823524638609092587397431166502615041453309575990230627605709135789761956235560319133126625493377311773574413393335847506337597439057864077829006466657409089085010991018617602426088649856591135293519935600163063751413151701524724283335567191242634766827860568190604335431532048407651376389923820668817007624184287114534472515861341312155889140893583339459610401109165695969364487115694010439973989081625662297512299458801869416458502230004375370264423040260670393420470671016913366256173021640822900154383564461617869479361288444252945729532681900751689646277771758405203428846750993010893775125294974442785777110478891765273221783298941221936537421417397783644391635502802382527205066251605395775883516585178771425757530954909203429482774010774528253844392355497159982832603899675008895145686325054570132483516277292967847430870494909681091925123865261095701397968068810522251527483875537744785486337003202508382236225061125868981695007377199534828010600429722633072432010945231449053502553926620652522716660817771929134432395558085844800602628000395426253678697493261358040674362394878537291691561679023793408013659849204671204557910984823945352394448129822218173620440418931159880421535823755340635182858687337145545380598641287409281036353026712870298221878292907794444687504640941989689632064461813482006717064256197550974088308446363717032771267246403518949796738192527001789845120729694070854945996584721637981308304698850908398303584476005488242199576119021598580834977139716459887114574426001791244939033970222925872880402727388337004324653596285204265202579797585565216423031193684792228232241047482979848493022728300123828100318377909784829538364890433743027105641757578046197680035944233575847432083311979155896718461453858329422840785837924510043701207798547578478428189916638949573903473382830044782859694946820839374466361828793245274399625875356095772894462635076182620435932671543612460222477289397742174274102092728646876783277910997258379889307699877532994827929070865818487806588808758062145763810103408059484438407800890706970742488981887585353808601797247091266059314499257225058047322232236625743929098872044250944292114576734968626740200885366384015597212887726572231661154856508341480454833362135194656094675870962094212073810355308273382454588165653901908132824282033877727857785294236341502148899152774825562488049886375878647295282057334720932658843615261053619759901129037494295544300363213425554745137037410643079325730695816287325071238333807590989550705507840225850707558459138777216904775637770255134730636895508427445398132633898920301571267266498681270547385820830231043851545409277956313826797724720805196861725518754425558683175682615528020492613637606891208451126748739680430019852732700616463582857874213207132315380379043507986411031142873551662937689480516211440711770750637369390526035648985743006631733645755593632704047010958057535793038895006807664353213608302463776425811353140914716234238497274792728815066345203062184926142908251796380415329396755560987235535293655405348412297757131083162920416621590094574999399268343727669835896323862028315084549643999431637502203949764783068411016203260465990394994882645598534044176547893056997385238791325785657287941805698741301358928573755627599949410578015573668082727844410243717284419792251404364021708753142493631136560684327687730806617450102922840741626766752170496813291617621709621921729553552713901077933158082475915546000709251876407352299886868024428684150963881117963371313970014196397439767057288972442637134282229673487818565739524093948280181442928463313409750016350750317807638550288373833761067534500315166563526045755883106700485485593087215139983070577325379746161736743759194729476005395357979952986516720699635414528716892321260169315116056129927842240455742652853581145848888088728985220475180595456522830401114492263349657042305748394873101341676498034204409986757159236117661196005234409947554221769282213501423345467945941898343265090342472885809730619309266199086297150309432153617865012351013090372793810351747598501250660057613055640239151136860247811002469232537793305897382923527809127538623969151416992594584257625662722240083233741744963027810006952272337496457843693776637282758948163882411253208351799812172348371066342277803252879720261186760782309753421197050357679713951495138305228244106583407812543231103502723857683364093230427048057843733332503964187441847692799766207954513087024646249457693617016054195738726843261902809237330227923684558948461019538651161224841074679305510419617927642268203268658614542039786434483109983045810238547683009300810631594033431724839400167225798679271649146812204939171287833953970836177211166717151806430115883396447145200971933941462974857775517386623701698904996253486363195998454866614896432111940894024354390928448637979394941012831814877941622184131257327389089516188690274359123193580135381780877252162742569621707333238986824084438593291390881160509066876640943302090231000061503691960699265671459362530783252059338202595279119290045158828309811228048232665083523569201983351382299926887102313287643336777607808283751617069653900893982782245854756300422971241530232965678399994790949830527477409845863224921210745664825976951818877266656935024917173313690564712251487564603667909895566228389086280150660233062839806511241756059712811488458457406608434563805610077215775081239163152798239839738768369462196399278540700019370431835920632245079936312628382798392875573456620884725273111256240877999667751762153254342543590607115723456686950596291532166022743720603312442804718284076945354500931626874920670286949869841306257303216417238276717632965690904709556500373845578096013338141638847745432091402085516420785963816062147839852677973489218441912773670988135456399271418735072031755670863885117831977120726301267955973958970660370897806626825254200294442617476412665106718163644335970395550222849996718441813479209587940014189623540353655986615184308345779934646872978229333111203159891062336765040468848280612833906896954783431389702091572878323007024002557499223544883229112176823528146741247492168624495088292351094801270126853685280685403609782995815938998003221078473396589571565538820289498552133535082896805158896382928409846301314307060423646775313769409398654387199499166483920863110510190185335887634476506754252060807285211092370059434911950903121351732723505340209715069696585710518294077882685964230927585289881996373934376524172484676549371586476479001372225978025055752834050240453097397591597966309707565271636027660622448106497114763416471935656326182983425290110665793630623466724803689838330941157156111205171591766713129095881165999143095156611080489519572104141793115051237627308316251053810905735460341165644591318103973033600877955847516276406673154780400245950212765984538937440687342209162557286564845811701151301604704524861100733850340870876662314452373175718504110130407519493311869873671928999937716669378209040234917611014961410225332325622924455705023121474216243195494268332956456142269941137795530505459954312301877812949135503182406169435421007550973277478080085360111205374351427478982031315772532473559462552351351108002522547019327135729406186508016985789442770427714318783476648941458283019660310198633450717481657064184505426923823145116068763487672136111884261444574653474550146414901021711947934174958448358423031641119270173749369741623312843986911835721159493443536576777151272259888870379314805727627212850877269023377939874793707027993587390106391985755627183757306266139836096061101324458898811254373626761361311091758909843734220808168085652926235667425545060752683814680213775239846144294419828160244470138730113516435483302998186117690503714484158911591335749619413037106406500094543215621263862897182421262514567257782635550260194981893323321768546319369031909981177325843706712189103459977817925971326062418847648919793856595588595212727488478460024271960054424641988110020135822698426094044741514778424381639217485777060292785915741880849802246378218173920480981131578454860979553746699164791631826957631799012042284351552061266624139729333392520201526704657402009913471647846343208211131899145321572742783094061054590103705257123576868705718099712651153301587273415553072403205340600823007770645322996739025516955098491175467797396498804120645978496799109249907820720499990065148711222723520124351104342361457368727155430784715045482757625684791954062605646356236404941804616045876502990418964957011617654241600426845924603382555833284580222612472169069811828804957235109836367725758621491778779649820324745419153323564476469228955568117346694172474800274493346925313579896696246252189415356435656359766591072407991724803679069179920758259590693083058097911794731483464656386055915756765635085772362709879405702695186657272514893675387193900185454264653282826910318526217991881650685773412746445393984002425406666217759984867441867883692618329622248028470293358490468562188919105092084562445864211510025139992717023624943648191483301534939901184542401636584960781158068885920999299307079111535144444428122099681111016399482642394189773940199201755591770002148623828198884621586308221153262789369606953908976237839076174922417479198778205454323026075857581458416865854637935451603332028423257616566883371963163948331524259956550479818803312331972425569902799449390589329934107283263868160279431042035839456132030161822512226164597545478206641605714651298262958839240185323476839799755630860679240891844576844451547307131667061402879790053827047893246893713216265108238027578927599386368742216553148693340886156554235635809695191986669819333483487292165396806536083973407484883905591177925736022267749673925648005107988527298916246807144225024869943850941982339862581616580926722431090567644954752255411050098049685887250798729168214177784253147980597139025616901758161075751906542607916630668747474857478950122565164784334731108272491294706211492878319972614789571663470741453181438038595209237214065479629334129700634342101978892754891808764164906795703731173949311809583478793014750712588432791348950372869729117314038223267452181763769064682033357525952658039616805404471640354834147491726959059446388345708438006779293652092142407569484061859943762414697620302230727857961884005940146195520160863528017770672712585759736749293574478766575173506860448954209326634906401759799377932287333595663956833841553944044974927471298128890822282935641139036765495304199800372930505020726713505844642152331267091606291246648277100383802748881522238849771691300515509206995133261735729706014946049939023748892785432697344745710682202412879176589558752193165599559349065811969082360168677466707202992550733331692554033218121076745247354413259474070145977826614701286107343893602122224471780775135790889482755101599326369882828452129150592710728655487979200817365320552982712551407549941992384330386598350927670960851167393842259203492106301402363121394839902702473979201160434420697173001912927459830255152805803280964682484671555090325197044482399937557689878741786811638122845175216543089546110652211605171444277107980748773718465955013788731954295018969364299263915481797088285514424774869088576356263500767726789297302785350332317141105512364586379565392653249602596778853450222171190970808096320581823642583853877696268907714815328375308255631298185316065444097974536536644480241890430875970653690855840879509249447037607812834271479043716939058904649658626633904470897130800225105540028213533070681539600570577372060632056925119156030532100250441757548030043235290570349790882514783762173396684974699746977605019995902951946402617523995017956326529247328236948883679494855627773195480135069752357821913994816829648380360418363866018111059477417362709306015196343854309158563768361079765727902696872129488793380352495842244306767729472747821703505086608455353215824706347944840850456131950254391517398564545512513288448538204629040491571842955770834215718902027647164734484318927665791897939418433177372940066387833151709304143453758178165137129162766485070320446339329168587329297138948982267323852940880737631943192178863479572082877558453845375810967974120581926273911196584386114261687416464827681822568761353273889145525012852356846139658235294617595063494590765503654658116768772006334284836319955475139984841370551755311971965314378820555754574539346303829890029659676227324820285921301368739268161291833795050527785865096343796587936831877752990193076636465582313690802007102607475288365682822686013947844964423089643665431691293532563957831154956181036487376344481083409650317150474711002492008456863771255208116385121339987996715731789636129087924061773134804308487557495723166002118117469155350990637459850120422143220201362477860592767455984173068611101196845374061401721414476214073092535292477743012003660308078431432239478885215042024028287260052289619959063915521577463104315331608082553364663238794566641162445466853171655788146889084853065806273629572930114350262362510434180203209263691049511075974465982496508746913304366174522123980423952504502028173480429226262879294746518032925266915181787104049718105979779758733670961605224002823497794008154287109257892698070274217250215254226401650088341414760207145315696315136941190975776560549734527897601314323712523157108041399560396376669261772595005054865561497913276750672764562584046891511828600281762228980912956026214308489969582112304083547411755378884041453091645305377525074650906934746656051504755940861291616071250238621243190141114787174130172891459398896540336638530448655180548431501114437449404016487567408201078870303695406741895166374152320438182999891114945883265044722691317866805721955487960820575487367665094887364472052621470231554131796235346952389635473375959094192997817707010161393536095101622930087149850034467476675317949686835995357203645278906515541173141806200415153187212811183330758815275536621478446162318087300548410498831518091503981371495273124181707261072333941529417196090256702983014627836911029714846573261214220672954993098492115058076891307839140384053666812606086977710484114464385611177173055224635101334641427293180053466345215533862360751941169657241211661746537868375975443893716046434885100110059654242021653592924658505811581855020852533897929980543317814290850993954478715371508233959085882138479756416062834554801469268270659450769575305742125010136767084441405516290869996143340217223952732829594055090609709287831891145299777141755291701671959639864196954023940174253539827730217147712645437305520290042935482319599630651291202841917074408403274534176758635871692035398712600240631720802478449246410611674536159879032222632680768407592486900140537199469465302551576769440766662247721666979714282354058747383546853081483298136429009103791105767797626843765592328170358256144305742073331130083651220566344673339110041448400049994426576104683458680149955411892978695836471333854368392491243890706220180680469525116986576982123953069240580553962085460376016810837330353992532142442935939731261528879125356771048790586333596737897730496568743976646420649690836722970372529744581395453872317248292297533220261857152674508071156758710708825027053659307446011584513553898777417943705356277090809496129194746689011848903480813015208130699316509217534980442156877167057162284435462450679592599960231312517044115714971029249516888963731044407924977451819735930511101788583314590895891756619954036237178156720762561361666451005424463262105205785464526663981353404089117909714905560762723906184789364914922897010490783892087231657645584079412138788276851060339863150750510687879188872565781615421973972451878726914776484307657662090017142220155136058161980211441475917475791108497111514192308665086777433146271787743195537658243974220823387823149278991522768304254463389131872661221427084405367827460446242896443254967379760971040776434205104732631632393518092773993276652489395843410953063703320114261276924015089742338280872044635151215729938836813820943563057113409890783583424141932718226800784975565509625294137092566799443383692134404025446517924012895867770993435892362418338453471091430994383546077471352462134950309538808197207814691413877646858946097821021968002149810385913960150711659079219119392388875319624426852340786772716106369336587978485832948959527748013310338741732224441512472701662968755664745818454719022907951673719921841468257132266322053501967464949095411252819589337905659706947358896720026635106222989739608375639974674178567666701227430797589316881383382678429937884639676704448495119025631785388529521462051489465555946423333937553288238484899003918176618682883570321059740946750962655202083712997621440508514078727917213916719298934329379973562531861654441888836792043360591048252960442434152678665661151436614695718181777433267611914495830976979591364326706093241388057760591360363513338538271230066841224742402198303939817230463508092732745726633257657039138173360189543689465355135081838490676247407694420078560431262157366639688355558362351521792468383726246665098457899300599844770321283059229764039075544103311427134444958988441210043823896017043226131537198490634065307695656323440354956367751053053875951256388021331835190062217136251257200420549568651999361534295077969309587514031530095174684265335583273844485717625112882809881280610511791384294256313419256423928373683884862866670137689933389633016342756020024492410762369693238446366244812348237767024074548236129617615157214376390950388301957155325359364177342624834336049343761081193800017632299940086734901863216732812336404619476728823666872125779957419264716304581207342433537672865193283487543489898055273530123128584185685087167125624389733601985237680526064629069406607627980580327943963462854648633284049396097191697859599493613095298091438973462605314523939282995592167281650829382916265723396837917683428758744270341615497412016960896669230474321964412017118163559010966073698202509644423835756165543034808205817661446697344773082158461268320076439519854611064208837263485315099329431199429810326073531556741195517914372015507129227985146203407634314254743628401942947084405551205167082119871750885180151294221775998191272292589116701191536827627550179292378751288813150327872125078131636329410944246519108263609397420491948877411917459765177409688146968404833519812880921096979110842160997938191481316027970020191954741124662479418703339211707459165564829410843525397073100322010380865265255912487782069159842950654659262922037226233038755446010458085208598883151060562563638006869555654907519019454032822523836427306390155295058276153977974436392702460416254815178723473680297142605638797621912515763225451791534390223963913804213891806400889652130894156872661557966878883238374458306764037027768024602966682972766701196937123860218746013024378332126169639335723451405871541029661615863391927777334043075577877419698530410174442648154081791938928767619794668152853524248638743175829137182623851237549812773915350389018477829923070052481403099467615612125826739832189986929001731561938463787375202098702730502104745455142020307760455669493209504981874064672714302321240168440896112328839525076443953273489213734863179321905120952399310062668680832369166319602475697947433396297296718140025160817152158701383606935589432134633655847237889254815970166149529827322000239799147460549117243882311390324840033279085991833872452270706917022980034500608802934642374915880637040612783663077413711627714839409418015601898914755070475967247173903846498496173334797329898903703892391646013646467970467723952567263677977631139525077536861886476190523141156423679064249759192630743924265859340690927122349186370194540424013915263757207943349476231900547322955046493100088318595425429534866524295179406380312406043745086530825489822369749924515659582741514091194872785746438910034248598898672515272857351364590207648774471331227076859202751607296803081015633026870763816320388305981729018928651908505585134243510415426611828106635494643067081724137816266059111461332528075709958889292900827388130717009817591574953784089153035817263818782608036923329348991732205210252081368352523159212466214285849657708959511807267737656215977105064331050006380343014909162220413267081813981819305504738391644423718054935010306235002461427751492178844569978052321392858482453772047797080513464974260382968634803791587791530027066064933824592171180635105212555331281219653354178482673328744378803143810209930055732156355414978195595127281077096162647824786512782213056041514771053542228318953738640196267293433892640964030879404555430035320720917398742370942003699704097263313324507881126725361589622796087644641687593301583397615194027241281197642167175439897217287293276108184564673923643370590910159177076687190356477787152719069767335031180798189345349457093141819960377886390451568888367810509630012735630986017849421240054636211839888182391488500084246254403816370431216905981855946547355958953453365120881831044148541984425496026698153966178310541918970364165848698479684481023489593707477381848549818355387875288907868405920051089014335321797055288047104313322722655577637928031660899956267744156431486599346203412536839361625456604218099980289420384777750557923077024656450366575955167011179215806066357059115636087541146232003507408428092006794886277276550888743938552246178718890698566167178138541624346511785822991624390090809988095908961517880680550113412317947904929248817186554943678375134958543865644935659997544715435356431805719188503678972375976902066044554416461876753962187699322490139197340686679032203522236324688891662060714223473921607390758837948848089899041695820650604887510013585888882071665053863797240195948711542870025472873634823661872347363835695918164875141603191839325721533728957524435026040397737323911032703775962451011433772600820039478061252505154432110983693674188025464476856982909856683269975530545644301531708265632574287681629289386388362382361792873978101018589386211623661137253552995556522542085222949766086215547772030037810171690313821234869841567884607608895978983165351855492479095934166324660881868380263850176860088124862797045640445456993970505644811942293577225317156325496288260470337049500526308258010123691440002849418345343721309333210011838725871078353913217664128076813694106120309712614614357444300381354724799030126095641332390850075037146291098673079516251882341344284299751903902564572437626185829773443134979111462298399322102686111608262547874395108631114900476358216334605965905740393693915365737082160348176402859159555901751157607165544989738067845441435420042346890056171672597987083493028145906883283229380347091820884660681045824035424856463778913047087127593653055829712878795571558746929133559534645097083070744458307137455648427079265497881363183191584719145435200116741809377096969848230259562530772236306538723174047899705490571235067909633288621246719959613751887601788096609147224880317774284411041490048390271776085859000536081657802346875717502079729614163332444888960048645004301378611889433791358738847222203373651640342610281406012950067989302094830141249660396256227828885484352846999060907045889346350686265817990541188652870075893324855296687275407678586157344093182844057309321818122033367840724616734784970795497349453830087368090046233822193673998057062603075484509091226762793972985151338975703063265969054768775194602656615957128762572525342608400342975602968950445469210328347186890423875601185120663609605459337791072928358374111228284884355396946011027742592011945767902235861649247842709523061733805818750929600985069576355307561608198953389953958860110556448444127485182388531187607443426691870810840142335182568686036218034988332577173202234042243525053999194167453455701045449856444575304366279194649123222592553949243978393868543102139423155713318365737781558573796014992205164458724251793585931962703426243511316537624547954012507288240374026598598489378498823365073491432782166211962696460051641623868679913626472654674735521617132550690881885200541742397934492964313025019552736554959648872448610148098496187812091384898676565445810135950586577716031748954747162660235618895097397176439939755547779298897593516890485245009414265676926623765935045542835717638884425721191196200172065796054327931130399159050872594323988258281448744581528971551634466220556605464726653611763879765312058569121031942906669266936570169657947741760073139296859686502282089180825862784137906797481787009033256449324388381892791986998897751027054258872690085980406460449306875711973814049913908931327656549453102306013989740617525497532297001097831769139230984526735603227651321801667409874994579088277440620113044405301020454588433551067921264314840211304994356096130927078365180728231863983144890656540872013336676933028485860656267120612610906952821110990019063350642851098750744463060309253471405852869049042110862301298066644407099129800363654011675487292280574006518791017220236542356676036701899365566639165884599729098965063824546007455776998036341158655473245436219401549199516135841822186985236597073626776006825269543681827646283946618404402884795335467618834524392482971985543682678668245193060155238011577998383085960214978060863406174343115536850662854160039502513099356327729371070726528249196037617083020527182202847923609024357844079536326642037324598919195427839054705355033679824524991584224398548340461723262853592513555021242848586575893670143497657981233595086125895962634677661254574227669000041912695443002336325537140043167623341818386619659587634828047118505942820408332136530171779681067405925784550794987609104904253290526658125619145332377978994604435051856933667162528976466596217019634759003544231326957899519001714411523406187915079604756338923566844720438574338698678073208913467429904661916023839282074286403682259382161152497316889148928372613962266425240850624029135963432917374320508134237611870831926133580387742904674477253389503826463395815294414688263551964295776671712691690052637396848402569821241186908760925687015900501990505130260649672814126294880749330761857917464939900430865687340308025627289692333817841167255115906118310279530979392987014281090837205330893127604241154776602741205995475055505505542611642438430390719494843284807634423908519716148383835821920267006121226811499162313516541598614239178776744102297203394890969073727788379571506365600180172999878329325777765529128650470084011136552328974325573022988096155380340850348042843838293842246184189260137604343304772096672665552751279295168786583595676203513666862396712733277263423696518995949474770041707674532097609857158453153768286898681735566581200297339273876041900740218726554664129352255653730033837352415699368476340584898090394549925989977898922185405389205702784409879891088600932439532627186906707080678913459318742271626690715000490769142545268588308777476743752024037761779063054430501362321473508811882144612240778840251213893813052454236048601160262070641827019372133071524918356624389227253171157150415084939498713295768074801205937376594037594690725642940361609574779197878006889936162909873605924418932646462989716279580251893099113872927809828215647792989949777712654043432311280159671071000638666552488548245918607469652294157543700689836766010075321420168596545232776194630975701309194942203157803078290668509396932269977831314989519694985908305276440758868617138249572275416720465013796147356064193602944261675309453826946584489708183745902362913477390868953413209981087043246962868333349344900573877249433888583527739686836480706600769211601637035621552719719711665835732644437471332444906713792708266852648034366172951312862256597892333539382746372375675210682479599655805020725611561878855131095153055036700251942632580303580570219159668459305243571767546667337111515681799296563777790560621841386460261681055744652066848943214745786477298849740617053843028843011093939283041963434471082341196648860830670079293278919938440922477996020894764257709328145869967823857386907779703776972085070811715524417810211167906503727312534404430943339200397510915488706539055411863024584010120143630542557649595001178884976590778512981589360241676787279021437832644025407360215239730524545958145623899503048781204622724865051722124394011579728929411683336056129833649735336300601693840530429903229952118822454598517999731901208565952453092395195347806048438798973057033387211887886065994888381515961544845893499455756401442288879654361280354732023901358486872040410628763017068309953030763122013149861970557938618098271007293566085675728452280839546341616056938586907836142765413061708095853853761383041329028402051993014155573520894914456966711205939262545342695015721742285497110025583023565101504819707222286464093990031963992033866290042092620394921505348995562941314519447003719431758091018499285266516064416288154959049499216370258711504843854437724395797825493270845120048252106120836947410424832256691169931604596092399053315513597113880366266305981087055909555702974962142270942222484640327274070043990390537073101824071765686345143882266577028479257019208623275687607003617563539866950872308517743177139066135307597462730008905682479053876594377526332833564862334299219296327021546246337531275989708168376030941515371916928574087433360394223805541277865334967176088935210835851012389432733492342848901186128983787692900422638731594505288275899611362994067790611145052410962725917968111134397088309938565010768756599592028345560682603380106998993890940996410022194496549108102394836189647572272872351906632939041098384449461397635680088373264568630530101412109659469154706588327749876907771489371050931362939405609105227672257754124646050558650614168007793238451991428830226758462796026208951326404782976494076065805132318190434772139318157389712356355917143809797918939644895794658283733408477767558260548760186551319705275934647370263012464386429154360934088021964649017801066882894249549415459956635326447648154575910795789034309850812112101167890835943295417862184436052654249529512320313758481721978264837929390304327881499432009994951666379986905023496982222487566666241919926621262610387194509066739433047426389452972171188049730815425472296653673972018572801102364668422450875054470372012504299964144725772477500007024006898399387199041165176510156754473513205422925837625376205747078908411275662282049967420683690934797420225499052453595690525256037084242314945290155170929112752389769073154640669060898453661452052731963004919362893525189288803320151005049960376011695915772174648908052511174882566031186805636915720997338694537211692729121176270312105673103016886719719185932333168242953768285300069124397335041929571273898315119947279397635833665580017091426306811642099297847313520314807401886408650624951437077113458576432990058518833518778627404438848964333617887820112923935451518593154187005107997666059098491260936128274811338649764121209521543699736443349889523652490407258674155644788704624221018199406704271296801292252867026507697671029427780384104944557325268133860791921822250444868681349690597205254170772764099853801298989282032180306598125635440614384218027467436300416518374527648780388338956554349150144289724615556443992020161661205955311318855337702156778109366573329748319624371823782786085184747945233208330968352389948384938564759319669078969618927880226720838227610841750506645858105780591512804155228314818102193358438747150922537931152993063446036197672604448402394678232244788919784075222519275662346298214200612023821179610199790269526561461563765521829996185038734435966073084888782789009868300964261026373928557900664844371777838687601400725603492981974236110491980507743123454610634301135116638123532447109294058091827159573930018709160870000790809138010595258465922147517297713399648011603086629368392219074625409399729130619094047044894501259633486239127345441637633218940354507104725403336458566947544369378491048537604375073414385401315575934979638199442365480960812542326752333915215644288149105932421652026019605464925779169893843747943969740328156201650099130674058800687514054764578900255315750649808797559153951276251227867062773163321180257059823614410012852240947004947369494455607953998009829466528480743086486908954007296781181462357677834808260775422512572454210900788118763532909163758059408471953482653696925102788192145349990404041967062832978530742052645048907981509424632629078038413350672061141207440522232799428962989489947505291040629093507820175866929137119754880617888687738761037913146548172127415732779497443653342120513655102532087754909981239349638192012009949099029515233757983031093884699569685188632018649366299269556051202679591156122105160974830029332244382359139332253971132408093960466699166461720578616599809032984444417780472032718133434586452126974737725118388858254484160988057118177267433816060540238941545221819694751471486130416875304485807769456030663470465403561006282132878789489021205796801103150980833632151179608548758234536490712203579765533096781953291125709064380362361493508507443459545961198974601690995372317419375394944157399152476501089711949397668612826717525231225659804520412721270507163042234146725159588038719667668214995293095533604504987417325268831572659379689398409997094321647600134547727580145847462311565156620938006829127688518151726079621941796208325102374705176756815463482873178951837160335762445568643281210981486472259571244768189239447536780963902409130543305158286431453133851378179623252272159497905513901509759832636213484926239124759599515015930853077916441068197317838649055011442665687794952325281851357148236865401518649313193023108617838429925515753171776195142214244494004024644013426473705236413491398664734761210448506646626173786931651373690193754413544259472846004310359882328909875476494887227747988210148632020239802465622767294159560305486996441193524694541510470629747719765249536912705309138516956753188178640277645144174466587024064891499268739655594664718971524589390340710352106026000197223400608431174799885362483592186659221456331259584005165907304685369620357971079269905594089694762245027475209826288191735824598859115820526481589953433166436168947488257178275882199652716955209220312722054536450618571426761361985545178445322929277020298770469158961859624792686765475185964370594299258853286732388621587592333664140281879488926590046986780766774809905890362919040328489819921571718291363475779766518725962100683776947071035647572931022862284356041272112107022754417399854606138646250397644468832239884284598073349751696550709206618569699029202016350764374728335492257900343178082057728332586188184505842187561929673044274586800174898735972516237821058176426945192593056000826820583992077509465971433575696123541912148063531924966086081927751718633750289042497506277782302875160144919593155183018593804574941656038173631318881040381548618820324983897542468638707269403588655260367142187405572612609257497906025963562435095125059985781953969296317267473255482482398278071479155876997719638849701665257800777093948924330356851976462670204859605900916650930810328584010110471350920419710004518451675709256569631874254946915251787559193720363113430829559811845352212644605973870049601255118314937614604455371825816027574559246796795365757932723899370099046156239882469088771984366132933890015068289187179305849580578957044196580128038353174988555973408135308025365548932901634833755013853279341144897792016571959713848326726934884448409085900618353883882925651202811134718423107945896967545483925380629311446003222954386091912536192984665812003602232011955477425991141307768271609836086435315908032599949134248267849760178613330689155684996285399231987364970822131833259277789104695382080254191705672722974343927190644537034878452038596697293732558640056338749479186007730281613166024184803105753777874724337605750337593515436078443664044074171194545997400153466437400491440958602767292395066665126910993059535566921143820250454225109947363258883911502196989088537007298422895796268741488672999193652819292225624762595463248214907219768556122635326653833658602550248959106174333159764063758771111223286779040961682694336579079826020042015433666733123432562425244818094906578028757321598401536199801578238101753497939819371450622840069348374033860370747641920871824279605794951778891220598645040625517822475880053134550531449147706870017574884097007095428497707814906951120228269059877034371667965994007904238406699887119388105117019935603027924149245375359192490052051532963806444435999008417363570705614469059990867585616498239671361753162432104461368175322560143237993334363155086353187789213131865291822193920086265287765383582392967276964644865251137062661870625272304141456743656381059524589851011998492966333343569834198161717691640444603559923925228126217514906236427177718632229004664579971357162999854190143624649945305961429175418961913677452619196830863711647758529932287115849499850304000422750779440879592705117564810316901085212469314963680208079027138640304329176036876630861179310119621284478691551570023258696905414236528138593302237519498467805219024708671096012619054635507474971564717192918451628324368041481081916723307605493924344513361825906495058563865024522824793165364000035925315713913145289858852221912355398706915040732002752715751692726763081864695853347945154784466858641257212828550823679401564567493197102621271640145654913253575426781182790955133348278341633537737296482274567165903062598083804692810390878025835167162740100673915375420562371869943297352559789133819591004846251444604950962949204899113327558483335955033969865570895623236888266272114784362746631869882528957514661457475536994132805685091843555885459412624575807026423720813087262954004794037311134262065713512799461382687088451775577440292299902379969104164001631345982050057635163514041443729569434997616213131310569941828904831033852384758921121754732740871279104241932639124122043010347535856319333260086959539244062731776208203667279733468989087821494367697190592416534191527166380035649239046685287471731565437983751821333711726341823644534736565301141073803776784639937508213431094063558453250087467680422457206436255169336283342689490347604358659642833928954787171881657084423006069544502639947386828674228453077476803047823656390581081364240542642703744161994045639634503054264940187548604591406974783350001829037989913744347021779132508708301747917186131923732236767881925442206588368695771184420238531722270053641743935806878183933080029591693595537283632022319767124794007570752396774154796695138476516383726658515267672742323678264784418451083618526901618447022339773263466371351427623069201695757766646410445542090044786652879189515704727800376460430251357794941369642406344879773461006784739181362744708917358591511437129469839234685308745797221039265494638484825806874067303480647908138915425467934064509528422858743509357873902132229404066361919439179668434672133928418543044913561529652700219709149208318597225633533799655079901511381139385512677859109094966020774129141958426052928426834468302136758696818311581686113549277713785591485912256554232047509822473106072916990132298257307902352490272800434780530927939645610402363919661850899496410842099051290283448356985001427511733225559395823168792808992105149441262824954103857090938015463903928338864667929425876380338368255011310264118717259537359360141568523192138004681829420297718526903998092021742395528870396303420063735838045896048374718014083233821953745185073870647487623834828657144401872682181351707983198807927941970190624139563370513360081397475747814623835886988413666896383912095366755977289384384757731367290280938669051599232342043211670448228851641940962741779733317164841296208895783177665801752141728918557740513847341415191011223492077670388708388185708077240798798128517905802927769099528597429606391363752073089660917831745115273222340035138571453302195790513796806418870588508234052710137749097294147583428820155613152045149409545599899467396278202707347388672656494962399786288744629902051695541284069043997272908768082516403617670714002948972643732783958775427394591649300372873588350826396649004863332123495444033894831454655007596651071248354171230996553183903743153673833874014809759036051371123066580614923783934395631414930520310961971679264927890933904756681223065567024092012235762127681028915746047005659980263223201022469101862716778868048984863678264979057951603175324616783824435494228119708342402786093630801631946537674994519047794244963723186830892047828470788036326206951692857360014361484736705035036293119877395093033167120824822163585746534597576166371327756394447203412936238768008826860680395027377775841486163339478796519022429504563655526578120201194578539732137707090957150213156557897029920877229873823716891467725164866400302515285633377320619183218114576024204086137144834075064526755461928057838662791527154290680107366104286591896722016306791115367535940415422663597902556609803290299208258014901104011952860657360718840148628553370449328883045946408251156829715099308210394329810359379050682900058210333272251039351675069631722126451007402825046640010825692311918725397211743131315576998083491048578923843581072742948072024283654306387210589137289155026784173274137026870541613011317985652076494594341424664815277505276900750479404070811977390726336381438261223384847013571156557565925026125036631218467669386315750505065160725610868203793288638696289888515241669999449540973566555225722817967976202534972243070406403202177128504004741095471194989761177318722986378239718920499925778200876204930363857760059890518050661168287880214664020887191810915027535802904158998970214309943865600296246474438522411650533128715705829460813418760052397125057364221300827033068447923324320980323497122919988062334293204781807275073998982064307380758603280175164477744316046460487236675300290079707060614015303509188873822190026930665488725560998962764280501135447008287259085497485829280498590776770416492905283148428621596730661108327892306706842011901531556346095072605093061682300120886202810785716285005135721959182765581653217607342794820911704483914420107779818906738774465138064352795604424821125778828098177025911807190069523889210352788489511914754433581923769723754790665764245146360436616783594074886546663545208564820462310634648274099517324704990123749500956018456511811480074959610712497879268521926174068284478293709201659823183691929154491008531062147150758130550510310554959000180114934716079386854135245531633782272681680006176498178979159622959139686559309762739425402670371301710430271841362678117017371374361189752302516891706513591159193818864973161104502992338834819735323055272447956888571844069712704320028609914137913457413923493714162530824666576196745865882203998556613509088031162093158204918690615521561421370758208239977162205208962678371143874286886513024007797746009377250577552803965690238122205830846709101131774506179271124617444513408143173338744226342389806522959125164515186617894319134731734015452916293703994276059878016461178515985051651804329836880640469980679736145568842291718139945412634449317953397397007991074924670930700564201938137855722183867138458739983059794104240543606742849519542846738502519348716998521091157249727470656609601005635656702707627596468242697530920508677809961657103458441175668827419197733876318980546309745154073550787918330993785864343456708482453088044927278100845383009254549300586895344893484449009428651625786904428977961851843626054175725757667048896735366133450092627152881229970926011079451745987416881829908124203755989551331409934921449550427218964600156877516807317354403651691489182640702418802993809684281128153921575180511920594038229431293693583665735038750740471854874774082774244463898479358961344017096123952067077827280630687171338254069047723940142413017585261851834236138865433950113091290631498797978175949776672226468216294572868048475627570994907334530527591573669066423653296884806734146596630112138008482750911361000912228626985011258792584118876553054982343186796902332492668499533161860387880017432248751581560064337505104363995116550822066326546618741608689392866647587069926697583082753703160943448209835485345114844108634533438482032249519664066321253641136635609023761683603165590757736194972550340653952424287138330137379573615090758597196352682446857733897836033769125701368701032884835108607889263319075299849976772306458902230201614174038835228911878684856512371603873799510916761861242905602929159325197185341776448870517124459466372789654590464773268543251676110147757490790218368729377780622000346614634231383236220923118049094109603689348049940570136652448806346636627216902753404797279593389182481068961639785554257892836187803109297468004182709525732273742373884536718471215439696184245052146952765186413484898343568788496250684059596131737776446630231293345634162095642755994770728448491716894409207023900677946080441272640928215442015993984147817955357744192969149629221151967752587092456206323255912028198544230985174333143545749821806327310796720856021026834031172343027851886126914711920443704415374977175240248790311947283528490141861352415199387748167394199555073779562959226925754260787713748427266276854932737178466469571522247208607163692265095342904126458176494884563603091271168010541384984731118102620156366112915522635482411060984394848305649008283125686436124678062836351606879851775572788999771694423516710054391326260426186462912742209672254326270902941044616145407647014738450735902834112388862314077771899781260235989791914019120360460717146129851816953079445766137564599904915514798276804420245453076900324783612435270882160423106743183240489249596724363073377313703298668030115867687583060594864354758794957777413684059711523551349638395380870071461277835521939720482560909417385107467694948574058852498373175444294982866819702983510859413367812573839899106091079820251457865334589679631159839873072227647513781108525378106438793267950618058351504445292426486617422734226101666674657961106034303910784479069331730432630461294602752593990779678790966539027103716800491767634723764299424929576556123816916408999561489088650155099245923305194924971432994962193327989677775949772816004781472550173496447553178973586123805758744930831699697544487543157105836382313287112300823268214480981562937522077903115167799702096774500061285646211320810007045088015898052079295099716937608059806842815834889325400753534807358882434521802459811900010065916034924881657914507946121123177698224976610912230901045607696545958748753281640670687801149277032955204111957478359990246515171843419819416811936314232732543708257517882451424846916705195235924942627266728979721148504410170445681960663859016740816972223382246636112048023868675236159382500189321973981025238359062442525683136484715796664706993314013516080982300077424366471572451751042909896197198481170221652347779839079189524030327537673310510788663365838135675801480635268892029290975180804496766450411830127175020192813194621285784508008970282584809825821565100913142028185350991014934003159218996384124561013744227603922771861201607204691833585117217584907477031310380759088910830336245310310235176124699683476522646143349994721478765254907529343096054738485958398405784309329286652218301665909087247886202290520985295037833344173779832941360524228857866225163669871280750747659821939884258285240564301953141223543793369837996083448488298064904641634775238746685956443910311696342087295094976873086213754791980923772391726128231565613882025053459989185892004550165803766944655572026133358964556686263297371678277207723750160937410153156604638539517106373994139770959130060387549371851740123369907933697486447862167883162195582777481254418293060409307087889142484495329943520579741892665601595942668013945557367531221010892761881253392876233832064944514424284087307171428364669939349449274491767954344377635432269753120039995180099323375849590192128264579527462542985895841019259289523773740863281751901950213353266700466782191220111393341071081006472783359688123168432473982481138407533723471684848713022370264884201643279251345107850284024627487857808127642015665015572986506366280752334479861804133269729967724352487820850646947032698425125290372272537536217924989792929546287094532377251001518979528932879723997314649163428725433934902914295292353256063835196008196296497876407179175138314043953693878406744018589876100880345251395266977754138061783149366000087204534460098967459745548451405408439192124403142606509458957158503112401235110146180017047099887820830001468563715096105243197313575773032336776750836321297548666038591800417220941978722947269830954362814739652033212884282410049585992804933785629804872148560466225099717539264697856628940360358825971001926619100168738116499603087516220848571332796157809936991626817766022074962862095218816941307703838270672825778355755476397528351594482942274007917235445102705839573217696679168861958232573798128756153209959533905361641775235709019947747947644605854987191665098281599844691066748360405330081040999673693828897198631189134435652208594755058361663842869965643795368599365633279262621367117361855761033959931090753581898628974055036377556309882515763577838189623722318854655530863335811288980301579880717042230384624079153656267298511058286945718140047800298312101122625518578348115656434443428268991319722675815025216081838578147870714468747641062621598442903973731162530517475499096956174527828423870565540141274034452104119729668811372738186515726029731538976651572395632229290953364666796556135817674344712358995323783980174102578853056261525659749142228808584000697496774583302242664580000927000792922813943959308919719892006921631311335965609307395155850753932471438037784227000854262250259873861446222709152414952236273448322888136604224085219775032932873197864947366198170313036464680174317887180852087498046393819404747475353914738347463347433543987680228243931046371352792820353030014344906465595810410919676360807056170820351289614083626576268871916286410958313708862298296616663328968663170065062903863894822767961669095799220141699943559259091482462480359060703131501997350891799359842397614436941501509689172153036095317363201942730007676550962751764472220663822095411422146911060521662626479116224843241071153388547408978129104169378093457929068509394637291945143603189600257405923919464657748934622981229422610072937099977366901012101691286131651400736118544386573655979909643230284944854135923367933370559415470513923445879816719074154669075667739371992524141663265646353325467125835180144473463296118767511766446286594570130614110773609069921818169225894218773561179397176128733975793815518154561074365488897171705437369735078300821571245164300429948359796857672402680863768208027835032231796936625050886945637481259879806746784014288595910995811956082261565964932250798427062658255858699079235480233622030053995347239311202974907569100704264193449968841765052417665244289552979521197753294509836268804136039359960033866078102275372418744142373970393035606337414918592743970486339082484745618449023283777897606291734121769378491290747429983761527739229710396193423055715889867494627540171929054560970385256031332199483998276266559702948066153498844174768995035115965302730147807608870546635534729438776000633862400377721011546463483156646057711524826626102852613200434486776443940738009445513414793615930919825287306165007022805858479629050947341777875599855984278660567781889710992217539134982745867887808929353916355152690712476899329552079719552389421286175823139243089949103608849972790227546770849502619021180811962890771077791842252309592230054800419752670476414708773785736908585336333829691924337020690262938982649660709096503115798880371785828940538356903274048074985634414579331867298077703831001500002474802885421495795450125708378636475855650026006810899745392137979198590167428988227699717226024055365201042498268196834121637266548423112332118473046461880252330208639404078169866168696776332732285224387522579255306477985708484562887006076928144322695307458112860587452577350031268873745157797434179471042515873877788083270445773520194198262123476588072149308561865100621341361152014351119609486813328320926919687054789783683773614584343603873894162999707432298867678555265330713622195314657366880951839685711626838911380866940188883011160997564587025288726147552944416810477020100534211003566759630320284021484695406473845358715981175744266770229900846888914750205491213584472924890386496212340420778540862614427038539692635090856573128743928828901845916186550909774252457468279925772664412101231516625632641393236809628197382850008240741416910038473510879980655490815107421610078683211292069223957798163368658772954327993276469492308476110333338032174137940543868456801208528844834755249977019860024852535203674165098327785528256927982855463585429393052319938225054159939234031877698644715972675301706129060156741695183884519903208279393246735993935798592755306110302203164470920607447926120268824052675874110335255482338012331179243012043074570733584303191689625874040412974590239134590123160106135370225528071042310851170917372928717764233681828575844141628773535208487187978101663937410429432583101991930926272181792282023472034176987877082231557273773657654317017690409162995021513704474069134784963133048978386510846951197291969980095559216099634322413060047321753579251061632757216846099345896580071381951409401746529376019075527232850365180292817589200236763957226368073307105011186412479831889919297815565425078199671106135813202625782430790014065325414977232080214071134419499459901702077668483003567931172166696195696787038415759518764413921161017168172226809591349485578315417839222780957669689022998736067402596395194114466454711886935982951757855596501141540264736029230924107329635013128371989059732887854939882987497135860169855218389702970486356295524196024354357454721949892280511234163919796044766761649632387588961429115264325632155944359339454331604366732316191459700774069802452764190161063124126773556031684962051023561816184254899871966262270184167295350322202968380966583867013423906756797690778731564239343269188639132975133082461512592771165984479871591701089854865475405413099999399141266751775438512837768892883896346780802374894593122501263682421335336609646559789292368523090090947448535807887196856371874253544043585628324846840490009965224815044160820289608331046483600400255826800768723839935377353092313667102398742247208300914699464127168958111075445066482744464832953805179692484883425053041417565383975911572207848246605069680732568905623928465055864585892143809907880343519580402097116117511449653034470380799647629475534329830084963541819417538462630868082081142895959830381305132595053035683719068782353739053075296139380453835751499551856540464813512666948564715048070696508237108313860492521097209517283115582575099427806844441050904473159969115434923029129475589271058467468631546393438249740816307555288707278370935072701025980523982984029218867205913900020902740186612718753554826945289158901987408716834509277239964430230794079163864681605794167508654488901946757479193137280740708045048689622669492551886463403208144670105041980032778868399093340359646182833423047861172532828189032865251301726286376618351560750172873329249135665502618906374097768508191664188108302351441975424914664385983264778837951363117732678606258469256193674031788211839682838943081688240118025913804382918696678673957008736792986714963582274056364270121494900133794845571835473943251212740224883157616370027650677058650373798028687089877127122189370458743469443401730970551307894303860018155844730081442378886774245462911400559913503998557071387998831712591690214786303202989422283952950812360419273074530937201853051964320462550746325434767975473465863337354172684037227529082280707314584404659975118714133742885958507251419361608609578366581743619427167718343782954414348470075415641403695232072125403561479730927488778799341164545162074676543175384442966696279560035758055535941423103702739244349420952771970501320623796538983167829126938475205740702857687290658424580945030945206462336788363239313296789543080247818157333027751908600135247098184723194208645427646712305765632788012137032205790126314358903957930801411130620088384826783904278922265017786277153107013816790836313880647765376556865695547861070819581045431159160711459250091758437884361133061161435688154383098192205112849328704480039229738563727958829893535945178122857065131333947306039704458794021696818342262124445153643531104978794679386848682165123634681896044959927363933034624098312492192191715939100306813173391531574695524677685241695042689695423375569405630074589232613358937035008312373429861881185598805112852583478321245869011973166586173493849503129099299425869552322690842213566504193927727768834975427840555216159815666749559073232848921668770837223000091337417058103497409332497645927946894034035746684087682446168069105104734445878609367234289618053414099831842005639821527004024078879815206586220357000405796074485124495224074633505716802441405238163714304492195539911568454906744254003814824391733870490456154133463457698680643567660531145790258125980488644429940503470952075759316674783804827935623272399270948372128617576395219171231980056428342272838725016816349793798781370817471887993912587481869808906337630541993353344922292749980388957630260788618692200663567017994929540380051493279097973386633969994352722263931573813358912813177170694618112323634090132415113887116382652299575290952136329476499813215108118070287212571492056926680890972075342005705213174048450879012759991161596691928519375363254740968211801407568213699749735911909410226475209597081844424356099143031847058414939928869243374008263401009129173329280027832123281453381477263648935917941696286895488147876805990069665085518810752455953692887416594372971624295202242072893324650988696089612888697438796752045202880535611551273432486994734662384464257555695822419056617128947313996575425381698915114601714134550542650054727940403710947119445660023382972184321226513980598878551039943362387664884826705846806147215933795693385914079392388700019841422279247638577658221693998048534380974515176216241719156471325082351402780673159125811805703015241955596152360785953035187452044931131703260246066763483737001049638741899485475075230921442247191056631106201580498204944400049226803588638353833593198541178022632075887321155722607540394317221973291846429092779381329385832455080143777057268156881668357999558528281018993878243799990942578437685893144177899202643196383243122519352056794649087460999774762422378683486843903671712146401167464467072351514348495088896601297541648728096911184183566909867236931843618412367569470220243379276306458070612955164715973961293789139950583009213441958012523630570913419386910081392679846466858759966793954764127255782088979656011303426826089715616415352016622189097080475054175432469324638295649765679504235332541966869979543003399131789439463117813061384072649227482563058894892299123159801167041035171814690018492080410061214450188547141541014740395737173665901432768186510500555558075624260510494395353306421276548297722819192427261275327966818096247683144035008168599918539430082265396302176600750702704130246898137052363238745132941415705735801467325428807747692202312180887502799026200910243106104897153385055323791300146682526061348251193635112002188207395669569556235426221778652584565499399104620679753891706774646995685936224564634232075498287274022423795354724170653819650765862421026817879391994816282122706978156855772832527737626436005115498475734252840910486423049589362049243919850823726598098783340588589107729314785706928942318874279917319731058665300747902370461075839363128338842925253826039844923301295319053575111884314549043602786676830394321555152134969953662163644611584015990881674188273817694984302284241442454381618916600960818591019146685910205058379466424052451086522752988472627628480109959370465648208406389192232495075739898278854891715358936251678312077629968639623283997803175517922345531833390411178556528007034165404317759555085420687731898768051207240610125408794699306942161093204258349790311790422908134591306485253499795842190334872604408172620520492252818067399060306552555373858544276371865525789718285436787147474123512144586487910508130957400348313402577938873425134511593505208219091081339779884436573260150578827296758245775232012080031548165375306302408616999392375911107339970853429493740020790561993440638022167663429804331770711759712448036434259240978725612023177975346608163407773903014423273409824975941199790009236051672463885873161691678135850302278148254207870531884631921931399299411145848278766714696032718665278749346173046987612629928095032227549739018057802509957139982003861354402483304203922436278512966353213639223744028849717423962591959897252548046421218673145024704790991774113983066596154364638954332867039513852082924462580815378508578749108066311974758336942818247641038983361649990901027580678113373264353183630404799948426524094801194962664793387336549881316886607483026644497135104073395080480613957947854485029139395499736591579568054192083558110401348939942629447766644880610748579653755439174007067894047056272640802936140282019157308441972602943739655724434600107249002752619517911926423117214842110090478767248202618231597479311728633296614654430312540142775912572229748356879283161081276709281914793907700242367707275127741355808499071891835539362264090097204539579589927678084300058474233640829763713737769440398424593872957384815605795597248679918494699331843860230476114630816597163444173783326678827620155369627895722103019139490399152199259241997491802107044443288580174733161782297694980839565525879814498977722326917091558882190442025438059363673622170750815527995559412850979853104956572627138400686549646179408134526362112777858992386636564760731310378978632711603746540530582430658194084851199840101711051343847021082633581528100897779293502501266725099548620242269653657756775690847120831342972821494243729595456425225535598541926997363765325141680833990241381358880498031857099070681799453074258462747977130011542375245893504116223403233858628101520211488856933890653703758514959152068948257145269983410709349223781850252319883391443870732537519319638712450013497076689408306369689560080661386444490737783770666775510115871338282184461925043664871248085470615389070937391916068469205197269176574919263200127395678126641560993258174643118640397897437400337012195153599505371601759561825637548632614321005922925577131087915540901423562273116772919429062903051755230676550557596799073536922589989522602088240014414273937065668229735499816970701032894992681092141160363016053412872497999337952238315677591445094584064719968714237357195338944634619916887735484306726283194839086645042637012042682981108442554565316383409605843661787329120599896136619663382442292517362513586201414917951446533244392769505439949208744650924762502706822935641102085272261391833771204680548849397240395344795252261048090742498192118282163223459063021104208138925364783037869793565791102818374387671574592008049862965945094917505483500334405726957393791997093863031978123925823119872384522676371415807393206787273143874939782798073024588839098793474910140625129883922724519487757365688606101697867837330512794100212835709177366099871351480507202892753580879211335411135038918346867140030609550156282584499530730140602184896588776813913732490507962516727184818626211920235012458015460069832214136245345286794637250928121187102779245327573585235173928262393683997890911395479181535581781174602230607769629621242465763238918537079831475791014621493696965960777554355188967975285331788929688648224832088324341157203619168974699983869414230684062034078830729796732603255375434304502904755690957698939972953187549480005823185027674492976395470709204948687741851117338846778142612420908888837278311341943760498238443307728616990356689760985108395863482859457919628775341053778727616617965374166981115058652458222599614420861313770380066095509253198651746012642001858334119218239933332630822234989511723145703107557167514564825796356012483092403905873616425843446973372278024594379016997644069335761039724360109106192329819115014254495431974418050496631526170748275368677446522871757265508370090236318574843501122600034062399147469048913323556353036928579760654714676158572443950973776107200889006825692218694266151167275346496936768099413220060607985403765958040541491172706637409823320189248152750882383024520582359812932271584783883470372466202767309814812072976787467885149700885998857498774959817328735974489710105844254410856574717874162255503324363499577206326408857397545000400601507402305867690804921364054368966967720941904277098736079421634297951956135066046215864361971958074073034705348943303117676079313471525063771004956723191089086227559625821437560385931385725100844927945615305739727589764657645117919834890322861844005492584855840791053400678445544316159627610482945554293267498232880717741454474891900337374744643861616363581395254279281661706999565752375572198506735344664917035915257239469297581521888307902595352158187581940082515124848863803996891716714868855219397160881162775843162961178004433409221340209353186164447411991446924135999695964550487277918843588534205046707823036541872063997207893861657160411245261969113000445195026520530787315790701401805754498300397302827266094691259219265931985930562538781411790506863968023469483034333192972104652190109359751515500490597409681435439191633027444728214774398268479879033538806057262391342063528055904325162931520763197860234082934262001212745590533200574690699516004232797562272778690294069375591558638804372627984454094759909908122731965127471905971041287496571548801221286005039620919574621389909086352463907720546224695422470643143208129383401667688627116680253955903407739740005977998034990841104883862496889995849214313416749717037703479544010476905866156870421017210936630937853027462238413301896723486295550409979961721628379406295471948162011028419484033574077248882074245479193463075885463196677634776648713356294463862303543997525884113315092893676578725700739027994219627575453386908213788702067794887285673674262969181364201286015686431038013388010335253381155849499461745800170139787704319814789566398793168167138364111753664559764406385594890805999485887847749419703521429845886533729724326750966945624077516850377589845693462991862464977257000188692624533621308693289660466318857229293774135364425393567730916876578432852449158760224375399590140593315298792798674801913447930312203380931684751782702560621723369426546319441368911601106266905445803595525825027582932017649232133507784036793758320274140402797880393900775861167674135669578977325474594383725456798690028327828628818586559480478807514692260479129868559564995133528909310754213987604713070413291276410837892906343841831315946583392850745337677181809811998453999584539912855796147396303855248653567136454696364993378491248569734999412590437834988983570390570911674265999533189391317197524895563187423177361131554650881126106801056062073630896253848082849604256401903667234763787977445338630952804800365949342598446048004853321498018238146777145401766618432360203568245532544531676588505788969231307148305151071320907076106124935123403237565938608861547663818970081381821214448363650608598488597410672789068506156867790627827794375105047615816472621295704890923680625886158822805581535338998639413903049343562932310065958767149294254078836516940251681569800480072212061020264453413855592594608516903843414689709000965231902724575255508268749495332387383388676161973255430012900151400146897892062065091961804359989023629488371118375593610982069469517779331345882985480195261830245030745593585002412905940287615107654413818626121695303591259946470919892694012528555219133680801763785718126915268815544399014638142589865390125356112833559501241934854439684909367237569059083860675908799617077605870676436485653451456517444948013671703515584487831803519720678522015615541021294150461305535998035402627640102959487692993204421527598877522025073571218537596185920395241481161237722609346514062540369550461169252859737166322037153547515158723687113074876455894736662631579161689746475179361828541974722425577894761841048073487458219541446292788994603666109472489580633409818833296483653689043628056220106110429085730192927464378113988536949819915184648251188458105299738543498272212012503229526754937807646460730241369538584383438738025479205629166943503262537136743764989371830375964271361443321734399467168655225066302791254832977802796430657183705024956060048529172898808867105017914345657958726035839608493255025989899096137142774903753449886735197478554419899689906699806017856890397343458253667505177899258656611206538442544755868413670847380882275053783261910075446991031786162959769730364796715696154340508268412716191156476065261418364704259475336331006076260442924125928720221985130855461979236214344000833583183779285542313088993979754144286574775290718964145768379018514475953692458705062899020727627348248536089223248537815793962846101688200312305825803586966042807110904340193150271795437897270106527752821568212049949171628566177193727781090738502820907496143351615590528382950136159991638998447318023678992038946901850744132531257501799502921516530705232426755346814089973158993416500671019532842795435026612157512551579574311042599087891696480737511954098758932551510677145729300732462052966542509360950941507617409867484033538368435299628627382625765957325894277363880592741991552311041468703706927347556907070459905173342032043115841155219853146945165589860569173382505088602973194071426012557246938589529182847546471332079756339316748511527182696715880027626320579546825196908047428612010026180699119030023771412196875674643906181942453661943131318970837119798660506938645363180337556887602916045896662915214409560255478810331687283720419853363552280576907571404624845043360033559885019922665809608180364862901025526351226040207666530024792776633601396471956560139174001539470667189321476849327143124068182461133873119516376960939964957152718492405586267064930113404963155904392387342174732936378305748150616775223611961743917228504238980598770772927125903834002453226453711556591889837677643098512416554551377119107147242211174063818375515141199018472592252400240142221576883348717887490004039693335239516244709153048355183059632079030596947046183301283131609340682329911874620340984801067345102477987996047010827777522732056561786921098408946183460586715466495639332536808134201183245065807439197703193952100379071852851050441243035034069657007001301498021015285805694078607519594123369386148543490653171039787198453814185716001320929650012783371004567513272832281417186648524675284280662704690316087251065230436826655284253036163842152376898406856716976074029330591022347272503686910135272769734987770701275808378965246467732962925916954543193083108299671403519129640033277188510474850224910915807372273698635606956122714111688950875663788785238065923718849929802923337726532894855667302968063819857368104963066895676732756733166806319593842340555247291437936427539158589262105121374374747656820810981933725555520200699737262161188617552175678435128435704355306094975350564321715443987458861607057731702964368911904958675570130422824577339494871596432530514455170429254353119372759052276046692559183718793710153075521282800657819722677341159529784655362157794354630633828399588391777665681911667032104218775068262952845268126809422602944238350921887288861626643735293351556632241902727284181737306729640244275073230265942237275649546895027535616246338742052765808932097964661572448382120458201993976662578610479348370135507845787414686353488535333984987377192605323383151507401948666743739157836931522746300696539301217482291621082387151498299534533185750703751441944452554797439797682182828981817737178250695745895500464483094894078416080770150310067173422358781054185295460046405378352264276511680198939965913983293945870232963932523329977321970427029925152438518206951750744543942875635293028840375926538341624167302679718709599747054242873418437863216346173966799491932327377867401315303655473033951395082688294395452786950071951149415764559261999204862105140186389213439794124231784990151967865896076731214362697032217597869174427901339084895736104116927941048334786506232234494045200788528078753215774407169106538004824508739777515941447843780468692409954070232264336938814357028753984438143070721723150879434675356665398226969950129279576007116017568064634465788032066308631121712001264095519590732990077658884905222145563740357744592722838957295282980239710624689219617840980272354693167676916697420490968310127661988760994120781307076983963116390799575816458351033116755857095627921000088011911914525313662846381542478644706685580278265932316168588570183372047615375707082816224408781598598057789476818655091438881029968184299736392390472114942743040949465338640746668899138023038805530012283253801340367714791616654422373601354947346785280000783478826341471955925140790449856298081944320044337409646858220930050416100604019548060677325306413636960889356627492958223156570146348193505248474905690240598853527733687397219701166959951100586260015733829952962902038357374510066008492653656417920687413770819291397257792151393600341185056030839879692449529025362794789288809853785542216580401110646207696363300274330281220209677986076892990356398428585125234484647177715692224892197974441584948120644355121083344475599576223160374840953382199683327200361918508061890673354182582443588422432674893879321421305518723091906634624741229559886098321332874114746284220593789791840090816271583823642813861504382278699503487869007894752147147439476105150959845596747834870692098454916576798045275272896085051113913925561825469949212910212358006533839342190073253591618588627342269650109279135708666976741259398669889522952865833075068154069614853679182272269298144475565717203111623856249902670775291984349358029833193097144545247214887090104028121507779987978913409324993313916390501166276321645899808104985901262407449735470756829378837443993847380834150289233242903621830557921535082081127510451627436004414626424592919268816217286269966237620633867785907975087421798879943124435140876303933041113397305164643499204319063394748124430825753173889523650156812626713436563122071752167076841461519849394159609011458642937833652039584532575809980623761031889942612627526445503485575903164453162128840692816680286048153793295296140351332444183016360826335184266408268757521414121531740632141742274910654782964043648704041819943049451553171235596849432003493213758099676362120198756733768468919061567285236382335533569346646950457384006402837057144790709874384043519048067935933520672970888824908259875064131540779203959446561392190946269014525903328303794026629763268160482660180841312122737978379876543682514928762557013560889505018896836414321380175605028336259921473560118047836160470404992724383082556940464690493285183752553433893439362084657954968957896557902314208968451987586343650291741002395235376445535453547466489000398745103839696936369827136533188782979709811987329602884166019156935439897494935294391059251923845266699350932573521745588811775781572831081110759868048217521339882043293297766087358283937212742297879063534202598176053848158673608462659708593306259072748233047149361192708619740946986079340769559016983609715671028172797326176083026653748246705593312289211204397211484646745758510719097789176803572504846670571190473167075892348631286155627087145879754764595837932284406284622934613692549491249053548098355072366018313285811546851246069010426503899735347102043540839699448661918756581066091983040327914888252553239432927507382993362234781372356872860734447427224672794065309686992951414914919915001666369177565963551811419048901603313550810917825502968529361368789395816039951454397204486166652353516596934299827132656524743112079023799658534706875055216757906641332559752987422778711600048581556826098001599026745351167943615651935379800641200715289017510748022446474668312318185444620335737031782590320371648672874384467459563607830555630837609593751569182276926053121195972572029168052708075659718862995542311143442171022894602488422979785001178145355723935454262574363090049999110858859592039802846690138437426220536236056387320241060202180851446968278681688380138563313389562967797329074009122840642178748730130176148044825972426950588993368239722383689629040866388160169684192700626805165974664831518178854447851452911780972795351523150489820897114146497392322437444465185155497565221342740192828656659293196526885388075905792162933491300143494906376628689743970936788400197024951212626925960715628085946331429276075914300655584309019835546085101085750723344595146595127434697215907424590279145097478554145800939489475327990556183956987650419921408705631459579315482908938322995810650420799778029690620179801700592956917647413062934268216899616990752594650709753643802769364436816937329130600986204592429023576865732887761724864934425707563954298924616899337592837216388241118185042910756874667024231613116993478374097694059219330768896149816620458126145855695496464885474730952154298596214733209052182191206764104558886365869640201440833643989079742100994996252983845034470434609866473701391841487062327494279027492128381714608083640174600396902947652336457493889226591243909626213149114078422571144452433524063075928870062548982798494944038669673758498893235486069698901764577337625723459603517787280851133482823167928672389886203265759819027088031730174651950160843226001501605058221033199923069824470319273377076584309744791988354136309950777781120892304415507227209091182266434161352758271651967269532823722966703109833826343776647320310159432205389065395548013848539909109976376509241270058179236824044801978476564986059357213561563795338774938871689869406146488364010672436236144940208431082302418431242080346069132322463320478869704144845207292059493501659163421439501239475822006405738782526268492961033018712464692003344342064804748670663600151242374742470694242927197401068452503457082356117483597626546635814219660664885150548502892824603853363397608191594127733719847863778266385143362937576100771698006091505533503293292057339146641092766207458244092878279634038878340589883175329511700952949956851042064115701685278125739266855046472260146427092168705611498122192882702372840059590463572166192266579462083804949909906086305538844006942916789185411197684314279961780401016692941254370063524111552676501587220787532795090662507889798344794352940350292888659033878114484884119819725623888155818966795621115290505108117005184033292333064823018332856902160649614636726383524493946835819899571851347529387725449204143459181520059790552756802328029530420906247219717038893082271233933811192450937559212173217177595871796901399221049526487918059196968200252495441850698672229211206597396980006239393207834175004405216671444967106664653331987692883266674752125087390995975791296971881431934019617683745940854563580562966913196979674318629004725530861165248090350042653093942179916685000148814954600896633564513245871380104873778133074684929192947246175722560124856471643693905623981018805316492941091697525338969360971117434014149679488869596380935177587044610651959776010315418995511918428193155817393514826257525774006796137169549029748736584976220611903575955807153886410824850197910343196165641385664759796427332384388994720804887633410733166794776935040667268402207671142445366827202357632944590116070337026943173398340012289485316167839332321709282634715005262566059705357027545652969121530188686350270214636310387099657497986121353696964084540908685991378318884825326589165803760272572201725237770007652986070571048604361608136977203303866627472325045195482657612820004324029360668609088507333675549097285703370524895018573931901844533839749430097736255474291210736716446024727380977703317693006281698935176424833319289303582205415649427958522393866136994381669106683854622314013572403901217883548632609003777449230726907141074520189975059854036981179798934011803371048844409865654709941704757718170415039567745690397992870914708270204695701979838732411702230018129811163624234008192475248582782954481496521871394454027385655157709189023526603730453842590705041110800513192852080182035337973120401896977910197224822190452865535530469648322744694374341029766511058048613455533502820559520340265043580441802045863354286024092302355916583250290317191061821321308254045962301865745339200590031596777643451571641814526855685502915648402969656674651198093882994144974854002332402879068445010376158547874320171352113230213741414232217191690424896094445500981170695689604690821828536208215067084318958817212607472710186608967930380684732214144650032824601327511562054645048440090200890045910713733248318299870484540056091509534261057350763696576562444449704814885661467167238485931430285808543131375648348370709496268427128201685995024062630174076658403729254554194083695756394652461681412535514565241877087455891165437094853906624329991878550456263692026508754003229320011020146105182678535510482751685939749169891937353100033934621680569922140147720680534908251364444459419116595128792951207583389326644100759732853120225294104240643507316273755499433042758984779767542715374909968461368123677777987960585468561201620510332323438334185797551890973520530914848382793687412909384718760693427808328072433352535813871250416792947016224182795478067695019064414759243301521311134096322576801642633554856432018474269062000729148699162808353195886524303916207645270820905693521358475093304250237951934239025280452582203194196876488660842455225221895672380764493815552763519210630964531358479073644821214667356560598232715524129024077263985872166160045603584727726368169155129434558283347728194711648936021938735235455629599123321376443821122221982647198064129209117744005899519876013369991284597885484560285908420568052826672018915581975646340561234773707887976935862582779447909579257108924878321825315727416347313827653139374276696569397912461261570889812598808485217165968941759705555293576055868814987870606414890163857370743972312468264901601669667921508060265839182267347897297490980766281528287450315851941245364647852651795607695757255971064751813890106014578227382336159026355316022811588308486161346779395978263521397695153751262075957050618190218431278260868952444755245604966727236646933694656263774966928013850479559764397916055927284864828868002212430997363287646380053395174448824021949571459939666177685735873256801707599047237310072397177008275168213809544776251975047865188459689426331232985991821896895416177581580365051982154144342101209642962262551474760142323797981714745844502470966330732611847857113783665188663403811190816214518812492572170390248094882544920518246084938914293163411696073336631428064038058681176991843617858373213798706891125356644526485764378890796867956681473505036363858271253819459737353480142148423575646540314078288621967205617138623903027019447846485635530725110342056508159071115049683465263971194490466445422728436338809110764004747757860150156392662334358438751829597903557315117226435453355680115437965559567090612764623400635148223247727279818890615578278713348286617030981191177136086702789087422389637452741809162028256583110537356066641351677626260902666958712741011881328374420577603146665962072628082110903521000009888876247065434139300556063552561171848677569586191452339261957582800962698811862176525690631721988168009071536581013898147696689021667131959401646933391759602451418176403881476825422572089225756755208836292037945887483299013007457750210134089521700928796155594403000932981256656260718276867972505751331363055579913531306000322112993593561416196630477833675480828212956887487679727649155188781939788990142044999450150622694592183915528856636951907898572478797675090650695934590738290724390475859699724096181643972978267721554505105965174647286927149358573533306480362363497340950139181963578833503435816726712685355581929055213226723510238695459336981689663391966662797068881455363959086982114375007690596792859182858422288533833824719924674585677974044582412629654441651781412095634693072149531536407774206222142156098739969978506624718574279380430563953083042045960218088226164659727531384353721182938700308688752879700104514323488080139422791023415353159381829599135622418346427093804450392669579585507609343086561674423839497189640043670914103759915291180107620145832864998847595947960799668771609314194127489044379998295850763000087083564127437085539967899741395135385698534257639297015385778258208891704070630512192091922770668567198555186525747195948496731694696650535608488468439271447958990996551867848355284216852717501322102815373636002486564543678037752007177436917788489133243974106851490429483862346112604663339174757324333341583990636310572011174291515369869053672427478331094517910691029556322093662030140466656204455237144858774413702740040958470948515513107734331466398296690848282116025228868747366704089660126256325704718036255590995790056025166191004638167480128415502900121495378397611808632804412260716986119604944320170061474091743305372437354547895305787412280374315196308380927624553261431466147942217176145303180883030753769613155983299031486628476568733573805567585442731753189742517426953061652226836229448333110924739252299267078994648473630577718741001675765725202445415689125490568248702700962516212500829736065719920991126649406560101236572707152871313319038277874739497719840857594703883048381625000264117279141867843575930288420639005758503784336259526077225556788268396776389212085717151123871872125416338128507688441854035339510557470932396467008659571877044137372972057342533215472913041053480309037811663413340765416940492758101858154168876658331691447600622222059685430196277494172350865607834525892751424839417429643562097541304367285045806787974451077827444656762603470091793123107312452734268288815723302311014746853877237406620532363884856882999467915480823301406213887395100091568320839906860060043838529278096948114666490116493682058676605481000721374043234164211649025465376320966164376929767824794734597760711407918166383207037391740376834397240653593098343853473785215488374607928094314428024936999092987981818695301916883388480103763979419422631593383923313138489890128280974026776672392991635096839293070162973961494615351156934250272263200844943495096077919238368982403414887073719395628519415134883991479404684910677851067326701264640622210515674469559577926387749991074791764224745003299398187707436151651813679204002732870623205686746591309618928435851658179521178326144668847219382937254814098260049660057713618196875210478455604369505389745625338468780363859289726475175902470518736231672352029198431802755272091108793348612370594846073756342175785952629741545676127675443405779398353219683788636993971637466337754768511560911268916386695814432080482125974312154893536851612045458424034317453781711568118611704559788377634944774817983846528996295334188346205628858711417377981423633242167549518854976171457502566456349666198612790042527666947856210749735582481883732265586572471895941581434063209103353347174734286222288605668843054880679068539166836525584365033043921763807831129990476275928860045642714481551273581814856700308138899884006923458229093620966090469161874140771303062736054687716663494280625439006112820517924932268583660270423857389715524526885271460961781798119566475790801060300728126754266946944193737249011410832816838924144031358897800143108401927291332919423243750125440989390578814464997015667067837101142530216143956475957676232756609896273809269658584250592536126445670256824617764966002294689204877440420594828155309287788133759147489572833797510366152030083655253139870785715019267799811087614395351296738511526992005397992245815142772768215542633647546057514106200834359958791866331284691242314360347485732708653704168742315408287980354575997931150310905948090872339789758722990855173579323314488772466829912242600742241191919000351414267344044439714014314740417163724955927167760571842964245720146566542100824489435004387865112962027875143653134523055977337350465461177687717227466326109744623035570982143024895234006996353310298525807073446817131246280126596308515416426105212978430105119830733905929355520591272511057885015150247735765087035051693070585667952795707550208998741930902329386111185131572659129340124597555091011886925653266038091725430985329175631526556276170746135280873759938001148578281989522257113487980715331949696610335428787631116846393396130147506492881991297690689217950081143468505745738421793641581074793386232750189675201211642474880480634979203895475403256403111795277925724948002779713221704483010235945711342950572818885162845808021826762881397881248325208809463733473229623654125380194488181406579606970050712998067498760262661632442122914657542393015301313283669554618949375350731604871084533883505698113510181853624305553021471366543489744140640559513703950906500498429034877987995425791377806426783563777702831496474295243560813739620718458332524203859525528532022317486183930374901166362274522137201689484034531009687099285287038802165725794337317624907351706057429561373413328676002193123418066509965185393020448078462107036998491102813002191432745326426914465866433549530273264940245852937881154492107128502188212612659174762452128607757288400073994002507476137468121337704550242444040895885609398930365518360724917808316286694721697641708879885985488844845977536265985684880239374268440291925871920653834734192517657705295105280142331052773531703844306164571951911313758432384017298145423520993671357280547765726825505353172442432167957207478267000476335492389689171796790936783475703558468578406386075331496729748130920380957041049862781325554513576250582260941941189760718833101768101493384755810829453289631458738621600936465854738922715917437862889716185636735185487519185130446679081688605987516676444073856620502612999979552319929831830004618041160367548392440747804931232389921555480703096265886510617374009050620569274593487301824849215043870340323562846933094076382222321730412666214009398829182643560065935773823749961748915932890352652138348794489751551012559952444181710673962613872217371608602355076673607524064340092486444399826633694047960700910120433946760960499326089488535812753547140636882979661183342740447478736270578749558104442789966036197374800592170720956178805637965469551385091867587265744642783183221187911157524376259713017073454535849853746891104054395345968279550919602118920849878406330912977726123408607374889449222001707981541815974005083013031766655493764164379714067003539077470744349222809744234986620086588175365164282343955462170443791593379295979396495751983448960619531162323162091660586265681647264811103070518702049479238707161644751314848259847775530529628806260486397169959742410853255624942753037886981355091452458373854516132338508747202238527203346306919589386579336948341516736637064390987846853660544381604441113185756314018061459913446243675855041069570723760633875538746761073960999327297885569713451902902425787904638631569656565478840054165052893413151356908390329918660520743344978819716005755109785834026858233928746029607613972244701403845199646017566392538661419153094880334836246562976740820149872523926262769457008247019889398116422114873478802155498842332819778032057812743174587849074743922771635906444335179294467759192369312192926052044146076967284507285132827926346911406203933450172443446206593181132032070935745692452936579609196971703375725499169493366518325461222916041642482548419879606873528815511769268923054575361430419791115520629691949509815714735956035606294966589654996369969281184664822821284813525156858100536678201120099930983090689482676875641721407464310542755249378799076125533973154648122941062255392048953486803430388056664920179814594305676066306600120436968131135620239133508654521209762251572226158819828927293739796160184481358753853418253327891986808814802483887334726328707886682429802931738109585855706917263068039260705335509240605517612151208920161309649844296886614971700281709417627450209545258483944747011916505186641690124303289898285023522381540536916307807762063587617659821923257846348200232159925696361893561594562575781376034436224414075230113162748471753436036497487852404658805877385687712937697609409862576295283311943051972093380368484307784199257113741393109441916602946266177488310452619489582875898178916620916773088564672484643093065859597923720949623633901287054464293059113920634030598356597079567125954828986390395602840280191941142592965535511505805442911407016828626834881220009869799711351503876264793828203583022990126582825755189876626074225036485040300840390856129798626094213285743841464551142512259353309034991323507460107801331471552942555159736368451016550892829208845011568110413026450920305493669415914317336309762910842338577144460946195839471767098459330871047701601254199260816883885344449679823777022351198929886708009584579199790198056829533076957963812995665625446493269758657725897550238381752699342747083092485902225626129672982453102383898852641784755221320874728269601591688103671057953578802669533032041459307970485912920350690058339013973708219232459739703838058766683705186448126454044914749192091515375628070037213777061531608641246412449547055602640048520407274209865345500284142682832582673044740152545204334773996409122993472595916828541867679779576889719575454324242725757778871014119306151170345855754552844129386661000221706532899942055131417568344947214272090878413095265667310420094537732475648769828520747123390838953172987963141830273749788076827505742485522901487300871629746541666078500780019571689639987557208077152783290192621885196806634793099305823409214816916336806212330765929547753107854164843078900658812946045257782610716116012981240209205138735754865797847399940515672707883776602385647218935005705803223823740445790597682127871364253446440718232403804186468861964703351466149272903858397392263265044932131911506374693012759282852358634017170318125101153786562134774918808202203415378559746908963423516452513221295231322782540336429368837294880124383949332175101069244268517512633265377705143451529314696716320905971177365558210879562068764146970086861131663999981364564515570366629589691508660813582248003572559686096907537504470529129169730080108920640519460059655151135411777581803955866172054955771902277948886860575910868693960062556419924400747160541283923489076575675609623290035792046394807392782803489259227767121852375136592137827473723369668005238037173275104405703987928385357002813115155815024662282665005404811215249731783926164148330643257148409717657757815763006192207414736507647683325342772880211293304853682980143946985239920383168844826813910545655000568466255770435115132500024652666298763342397688226535587745435724605360177098954478798001384454790832693656988489873943474787434597888556838970880231578831101834834542363917368641244180212000014076033084039137669556066560757465719175149917226819761060367402234286015489833545326541164788096186815265366015021723532228752092156515479980755952330746203706058740829544961046024551085901964350940100514735466946602920848943044928331165928122380115175009228544373808136566342589901641669628222134354046458341173190388333108813738649865745383550569602187904320107360172157011545547045869705536586216542604714737494970265812975511862451308673956575562082332227768437853153053967363866861027682285430204851510938511531522292443327059873188954008517290114596250151145096541234471568422422616774170403511475924583400739788842609436719375599714276635671606292384924083278204773158750659282590502138128366740532850044866121620834246032705178312651739191171056567905634907063071105895685302920755886262847982648738614636650750100451391596626447067729770647310032039552513130189010770279746742104542198039374267191041942598598648931291236081092563297980932325208684011104254869867107453671477947950036904137442725385945636820543902047713544457528020773100429314580574865272156044180952452993839848803808342902592799598748464939809456003090019393020846272353573871562704880429447024428597530912498582715569449593916701086564781692268659596845604751672067475605801239821126144693806145056835218165271528677868578620379582509607446898166876137737207461157309074186003774447364011503419240954469495392710494248878769103346209659006318391991868460957972337564060937994903496099103168424627762414710561842134772362545697429710342893349166067990898232873754242316512200432395111494560501498838168512079268979660970396000455182844856894285561620657033274589090880439697440619260096482025837977358803497426080069098778000216014752951534344108274830959191736631062451337008652565726533089021353757378875229870451253093709006995505057415029760726740287001501007961557428247475991302001355851996444849762437331166455462124061419549643740699698129864940092406310515241065042285233853067659294102476035330008798346303824601156242510453453085596900773041892116632753687199331782766706620281150413456350892212479782582720325206282015176692734129529247343791231908609747086711747403412060094177035164369092971323018353099404583143137493171768745872407327571405317035079006098491583780252011067610119236749086755760065351695431912307653918178106913688535872523881090982473092416334763438400342520310994931306301200308852572637946896474549010170258450729523848407581182384725886989957294165343638893732336194469014973309824804843715036988046042213234392422578970434671002786941016336921332194818361038962912330290297738027608164248748492402877860790168742050077049354670374400383254716057567712873545885823189107748025060766580412023458762905827154967093387129130424167569634919714960172077104035815287062175500216381460398481834365652197809182512817063792681212194583235333825347371087957674994921497804881332191049560648623982721167476390781135252505073395715562896567219564993661695238927861828821967570232997256610434063832884753283602099819055734655889603299495573993772144000257996478412605904380995884299059603419811807775927673919836769799862191928798545250495491270197298413223742863878214727548199627919701811575804759888242123244981474287900214826625150951951839417865063583594160353414874427999435222873973503116080357121223422988246757407895577927728386726688122594753807856426512317442796056883134497984959238944281195154461523180405431064587794940962558116090572953173942432587714635688749690365261477140517061787388401379568245238508346727394688772897118084079028502316748563661736386603712134218474035438173076581010396811792929311334722344220798351472755582034713670868291735778234283350406721116841755566790896562806369301526591300412344427611590043322851436410054897073422887235153059059676944649770579656305261751746302532106179203074613770008001817625822673352573828172377502573849387735247957672253514899358424141636275366689735872883000780216702803691241167762199836806148062523695798470116613245304478382491197424658214688403373900677331987709111144590245495884384101459482682586903519267470404267401696645181290373445248959068828048082041484598229989073033157367972259107685982132760368095729246974154407903950231326387480599988483308195550724991770131473388897283305096388445199011736327992548775224650957874029763078634251959267983395132955878718603228030650059218499642211897537311268602965159049519572336200726935560971940690264949105560334748226344362349730616320383393180815842762721903687873268147952926862234149582210999411750486963637541242781722403485309074914919031688088185243853372300820246689185171286553152363325756906293926637850604817309270173953718413757491730702038427336902987446126837413635200156201954160489093567595882269478713373886881683925436177846213394403273912209417910719878802516402961661924346115643744270107366463184609612517901335159483729903099049008310609982577585841242737687790752196303084972625480567906566769496647453093629898305728373068194272568322755222367191590178528671668240800060625624459074621889741685700540193642247477348095356170616723921522219258588004752696155517162848736594605901493771811753954000904372247133326423569600174301708019203737608568858428730383546541837625884845076651196423711755459317861243338478504127367102816388886132742713319206038440319368099453398179306214505647220854441092934995732133973900956745435843692615325290436202505687702221064785850846433733732439141540219166519117191503765441873654310105791625754860256320151244674982402643130256919720129987008905622741941673244788289866912574952269947327466344538788630435590067322722948949767810161558093235320675688595803606915126522892868008295250747551207084251365064006097548680219825113376401719049443106753358424501467042412867243398344277586004795374505651488251973611663062004687714848390320789502465409521577479791158938842542133811898442161040633529918221427979577303809303731067440806348254301440490908571264335523502099570157534228529192165884104031388072893754300996450900118558908530962262925614880807412577130579491670663476179061872749438005176632783050469291324374875037399573652885297885571505699880724533885053729736574229761964050470423699830655973881068632255284053947305334139344311319507381112380697684766419758247906109650839231980146391103813203790027394721614598531335159597477306746644301811599743294683209466877703721083836427365496181359433746297718297521336969456115947342964952342606770595091207178063178334915377572581011039642589374733648593297718299641469998632762905091750463818294706854578380874423915091867215216865196346851421762467214648008398844839649607615354086443024181275579744157850352755015694361545426750796370560206986126839599655142685181573361986464010790158585313834724054305797012551432600287124471833464349265734647909696875600437376858326108646927555985806276495218699602280632166196861856326419733728019837252595448515643982567593356083033056933015173004004934556516860769159920237627335059154513975114063982018740428752456330390107922681765515771415275393355327434947883764990148968308515490716804060033904866254548227471949692087264345215639338106533107681623390297361124009424115588534281213437019246760815063814609816080413924881145332612360442613174872014820634034382841305000939392146116864083680448892821015698422159924462097035749438740012920460790756138307630534488381808068335922316806795745764817296682949699789527129608737898619354539939650264271574527640305738243898163478275775280857256191159917723076243315570481308533799004042618584828032927784226587853908099315415227329792434335101492584100558474921075567994985891683819112317802257120445855124991959925516368965376173588957314146616601797037010163778218679146971018991360378222833407759818905408775044838308577060133813629969516127616234879627094785046260205508686479941788609178137123560295340591424464065047621952383584516319153959011902398278914461151707707324883914205701791020611997619551069553019092495657865045863518148779851372416284831323285805621973398406841921412996059285355564453850988164472732735005290974532219297985612498772174208288608620518496241529941848943182872604227934266599304075708818467809745013841544921302767547087607000409724444237421418247560149113472994514444192374913888011660041741943653916827057553355547386245890174739028160670072926863377478275857653476530166409497425385218741320082640350158886173439512824427286587371489109964018765226394688051907286551854855517749281139255621534805766118905218384340348924292806523243017475014135866162662878378305942718808159237245885989780455561671987415536829810573545245495078762493994993411777537536787512837126322605330698031484050642858444808392371373341970295193254855438021582589487405731168645780923443273811499289255786075211169176885924492004445651281785035557314449549243543650619307318056162165735354190478518129400274162366190677152526894009689422794707442510602805819123203132059424126310167818239140753540939428766734810726110501559138043589867617234719917792817829497820945619931871986665350144869234352112036710115234215905672699580776290024133426506790723720658361970180264712597189460138519693837604417192272406962195974183612037658488980686336280800092861035149920770683369624466079998195871685860181900179788079284146440734454091017537340536323577402280697345450256902759838310898235344305985547283934099722850541509302073530538565209050786824464628343732342881953253406367100852584158381100398192739920882225422835062857928848130071473433215863241415919269610146024512432653657423728216232814542447342602082285617143440914521842650927573179812620073937535691167976383520152710440963567149022837792572326490070016026553988932563944284866307028630533855184724720812225985770950090253734027205627525420644155596999522366806087720143042613433796659305543515991632289731286966196508556835823321002104332995672198403197391090028828494918005268131888016503569825763809886068556853988377532469732091306121798210728970882317716564581761349724907314467767909306262002779358430266189354944762035528486979270543356221817035038447757041816158474026885428316394870532804321490324325522639443030943646048966478090943796355421103170407318300665483587215682728084837759356678243929775631914365829565386907420569706881184306330560942301881784124758214484313184519120951240089250245989541890213164058830217690191491851930296310059159584540969593473351909560665744043507123179951768197783229603300041048373986149157404891771230003361550325218176685714540777348915766622564213038439658896992848929164579631990360124345811966492680717132887089081789601999122784274860722167385512485578907943755137935634897519356972255815571382797484692610085748410546946968419352524316214990988788914415351873018392005075991300969076943384497695318924301569390053641897456781933178846949395833198536697803900574235229483319482092052636859062804478550154290328363773670378106174158382666569019522696913688337586787392322549048209766983889276945026799291431691801907815760503645121031093993626977788760782308988929502271331583111571492265046872756530225474027749251110446329312789910539776544120312325694874539436415601490798918939400990078670559455801561181000623819039043955837931729915981537068630590792237387196916851855590468323432368526016250053142485780487336880026196072769656189443696181526142061941307927168029403693748696638230671314698577937416077495202833308904809867889768039758001443670615724765808111837141551491996427245797934379097176947753600338824115098061307748876540056117472948627064520627636746672881570819369923291828127259674646086576252721127724281279979444250401834419662899825263741770658105506710946619574905673364786799712452573332409580676808672292421445147014540581614059823775974685716566091242652572368100736291431105543925186284997413048919798613746252102968423091121881393908515421926868731763799253547356295303584245581396247430320239873674623638229009515540027671366560543750410904587352940821238071000627259639472385538874894008034894423745935537266272474052158189765849220125950644769216908220527363399642462242216343468235414684194978884182208263033375954917620291236752336001089545663678591743608507810921482538757767260047967012220328547128677456801555516974561126324109349438237978252694764221406875677940085484798861184989932217687502558161537940721207375922413441303007970691662020373043808745740276590784767199674641271210240565647028389075229696910586082158128198650645281199223842696606648114764450241248083635218704798647643678330603092069161272985924611827179193860397828675484159595663654611470118184758616743949908150411555805263109912183593340468836170437848430566417487882180408342118458409802160155752230805740753227817794818517770164236044538718096504176518976215313533387376168088472841509748625826525497428991211861458947402836682925283504189096051655760526091292799071978288314691835695048685113114889472288655565068779018469913745723687773600855062612007014077512486850852638946467213785530937775845498341096784675167525673040846447882056179703435830643909239315001517190516224017748993358191681888417507026891092825522472748592766589509615754083116160383373142444610969951265048844699896358233322724516657335052624369798870390306816023551083292968322481430108002260211622212309348036898911117306598165068096303647371656926013459603415285320277380540220984392829002653116981457383236154267083907549120223036034824771660350711671523151122168826536967740953075784312214259307496200727512515545619682011842499976744889178234862741726029932390470300251242153982654313780935376718214923987527708391967261357017892228821079749042188848546817655814408798405992027725472916004508926095821846263496846919641580302263270895385683063605946047430215301342123906743038842818827814941132168482333077440118824183449734677813761973361678107654505402773596814795380494976992203732033721121335601872779001161929088158979561468030828382510114403900965113980249854282716685317263521155532894300838538551909034722267451348003121593151420495185200097761282852200498100123729789922739324611016298115773870587886797699331755952973876095130628136026587425091167555354502191889720553468875203632880702965770211396169270689748739132466721111869961671614320364381163634116445233326104841081205004286239542126774467611363253442655913091552194507224641304289422129844923505743410115058841721043590883212366198396169124884125690904977475451138585587640782193066501264608245522059256772935825079071274027227216918965297696921754587040237402122533803848985490645053173666799143674086934322323084929813828657813818403276316852462104317614688540182007973068473433541360153168929872394752059667844201252836697913973356332779746150823929315305967611088383585269804688200741627153960729523510971176863851415920974201441215810034453061400750434950527041896433512918023577186886683989120607626720002366462059186855049010100616726315193682397799647947673151531487759864014182943058510609075872208801697780619081581843619504801163452565732022332888026724497083285266670453654099695446827765499474805360774156540304297344158004383105946893863961051272246414336588176867165126554521493181711758238196017712932624381986019203624495303264581713693399824545628493953697169868771158580493020589515866927408946411782954154459568237271141179197804634076924214685314991674676385668180912815430629071052450283251865520541204325022828239668016388267770979189447324762585011790257164258077348014692435531204368876002079327595783425903056056861578989934083686727574530078792946702877354762592429570034873248317694021899982408025338860589638494280667034957489241343739154087210090429916196367300132228652680890061958121494775212539915744042461835622705273222876014176857986696903456395099152029103675088913863444509684112607662746649741416118308225670314754111859936769724569218650102695996762916372944509684944978352979476277121554996713681735814891548144816134623721503540233952699427027479339483371642557331512050478155981816985513550555912462102055616346996000886480785165924775810633660059498475330710886928650302861685520961409608048191851156634427672927422956165854281537870920487460468073995314353716006553791049414549002734154065664327947225721209127807819695498742331743055782922306445300015768347475068404252097436220883806967314246992539721557981925335574536654745099043829943731706698640433039380596037395853909067980150020988967347408651466442246901081091156100579555567103890507590517926522552166371699522405686190633195629295695989867878920249129093242539332780252918537443234663897519074942468024565967827874075916356381164975430836626435924646226860795901672314374644230700503702671079939981661273802771867828275768697509171543336812662901712443082851614629239786544318123301132193036576019222595912952883755355021153765208300263056552266956708168217387334311426702100062371020897811474709503223123669729567925971508079935926357376195453517506031300477297273022022631793680260994298222624569511331863513773111728284682908033698352477968524426680124169213393168416537066003324124105729512734297542635461343205897230833625568283283450162901961897867397665967694787503533163504758226685266553848974660254307982596398855646618418683241362031074536518077437902036183236259933737170217909303377449537645997931027361117092821149393420664401812933950081983162458091900974183301331475204635205715059612866043780076624786604457489008615089532429765409424424788514770103429470363559797794782974953704974691611494052195302824637714137050081070443314972656188761736451358364355541577012530614593572189339378038006653114970723424173490616393104383914228802514979255438623103528094011473114695191953381547411336658897164197585334007294107893922813191629954607966986379121262058282059671592180102708263936414231235451012009342830049036966027539422117159627486371748187048694752750559017712690680033683147990954426392953449000137692355661728712962364707570933258740688046680788428517157038416941478969449068479864933506228590379295362303458505395252219558180007245678659441319865257278456202155636325146874975971583118751342844469329411582165054019375221984825256627958522077087225748370198139714791401506509215439218556864952222757330350372230304185567456696360960828419888191850907749609109853682023816533076845199612274255527374120787020312209975260952683253335125075664766701791427750141034610113494358136864440111423279693045273978607885708992992783685566827774481521769242615550905404797986476150898799754195661979297547141111037011375310715310551431731184898054277773605273751965346096163028045382914628829914101740562601256319098198787500420257792696018198497992386864169559707010609339110328631929806790485129905810594439806393445858342137443969799861485907345782726968708891448572977864749177286215114686480284291019424160214088189105776792760583532026166505966607387252193451762157637891346453829886408879839389682676386280712853997107710915646356541949611970876998206246230918105212910510347721748760491756103736864453588552252112633038439276987452605343930912812378394341031495539772151534519147109643770571053483025203317415042728710572322296296998949729161026178243761712037035410385856769978083839265063679423655944926951772616761193088830434475720911026586367803246130074599219562060396772133757778805439496576248628470708783866120090464998995280648572245289733641998692464614347016274371969938965443154504511281798175025542479004631512202732595818032549670019700939909457478970486189805192320517358627174624301348112388740636724407811323810347675677335798959817310037727990868824254092013744791980913964481800512501236950994984596017800375699389094148439865765647938155432000066527148140561267728857984509015852433789121776476138722539272241913375373356904917239882014552209743719188903673544056620177678916026778564105365687634316987066809851040234034399703613624756146517980782419988222262874121402386471844554562340383417700959578988398533840195800658033258298828545320977434130676584734397468538147646272178654064990921544396729482976657170260530738343917703376771997546811009697489628682916219502180132641769022726617452522304280240662166095576444183910730252098046917102427696693783021759460640843246900614534872047642179660114644796316369393534834998712210819638913873692844949647448812599377016755735446310758802809445515611108396330009059628590814817301420573718385154919631287571671819018681033730886406844399966934312524867802565977313043543653930185182621542816822134161450721315712445287575476710119471035639115359050740237213607457310509241230510809702956353011149092808667185995162416260063102540209123555365108809852670964989012467258406361996523914665809918194220143664985318965813398050989799853052806108424177516058031193484496665130029514597404670536845398804289616446696907323083744484697128385983993784424477972141646945931947745214159617699861349523305749621912302070591464153804845959467494256043043749591289718151802723721881971770018971707470593553702583079614776118422842811253759109456475743970494608265675258555816172024280065186646888320801663240325360888802238107527016439719158145969681549397189160837721458627237362169723172979619211040476178075123888254445955411006235220783827052251065578174616368042942767104745336287784275524709158323348036201892151225856814538803021611409572066025390080235310538437239735692549066284840885664912288076065156605206896873988250675153629675341796225433662161929869929026697075943340793877837494803591354997413278126109113970665474404571148799628770283155274291524714361219801129240117153542400314455791870639815341618641858128355267857123479751892218032168974031869095869612547314646574292086584394540549116399987292114571462800692459516362906314010137741615428234879081766189619286627188478184293655433002390404059766476885362883082372077792848943267399255891292518147587840113190027958364821990575950437689206123197473136657498264621472772706097761068292279058174192372711763435271030836265057382075012659565104549839081063456070108465423727438800388681831425584110368438079587679831978125419030286279500630107746260033645382640822427073171908556140195295220592954752854208726147481722627634294590704331138725920519759647155503927351647223515360172570367340632689548526103435460370708191351578362581364270433383296574705315273161661113920653280120008768241792502554767487586996254755214059882924061289929699645936798636436951881259131438010810896125546432555120358509334044464467023896697086302060503009711450640335017593633747976464651400354722704328513038121758061967854701907302167886615250434378377016056865860215458963426361955917540289830543491563025707146212476231946949273342014542958641886557078355225101518245423298982253496378630149305334560494420434383348245883996151000595966098768104691245026201369161830860697283345400114861658125344487964099753917037736651903915132237416790840596980251082981656404634321098838732854516407415598222864360485065414746385861207875748598499612486717832424530761014397030518008251097909977055026498365352122433188948914596226375989854839358256749232192661038919752418677308463008515752172216161252388139295092541906198310765686556999620190867437113958879659989017879811611075288025010916529565865178271952861640499862965854599760288410888572966957066845968598796928021220201381556618627605729217635428988483371023167687330219851729015700860607392160968555953791683433028534232441408277241124790981127686967895246036904062701670139409874617387085114316909500812728037859799418231508797922646501700286001992683081635805844743380071179290225798851135769321539605131953633706536239097605069371578194705571492586795488674135988443808125688011057266586126262568294304325535784536799228063602083768602040348897580463104875848104950363851144623228636865728934953610066913463234877995548708250831393332962852690670330703751541089369802404748272439496587675542159130744167816167425998934873835586283723553747621618603943577423950712664997186725776500112587459992882578698529344828408660846282684351171139350616590550825077563406902798375209848888642732604108263088506966244726750306845349926807770577999368014529232702928694121424236396941486613105936146198797459089789119248214423238785386419136466453914817215115556174283996524856264360312892107498384463724916313864386691509924332469537907045266181145609611715898418729428759615716820741935455400975171960660493885655176285300357141896359573077249693673000362176895296480971676046062032416063051555503614246777047367607701482364127874447494166276467243496808112950861271818358296662571950684510409498364224006608598022067242959506924355915616938757729928028614380529234080250568702448400995905536530913781131716271744120200992888810469622092182616160512184263447315745442270427410281716097387828653569147863700804729780436218584235801211968366670368629829344987131694605532650811085071382348186786549247305386446914201038783184465028725785133265106075958536030808755068056930949921085744002019104705993906280850498462294608897430009455208876841218128830037618225364876353069630381619830121834504398997253049379625451979105036206928132635159882479387017316694736516795886009557775387122613140551878634353568449424264070733693679880844276884873459525782044304977668106399401806718793761283745208914561069986133207279088184071035923180110658378664519008574540993423632281712113010571415168024467455051437274161800683015767838342049981804697533331543361212130733413636698744929654202928672368283974242554870073519264805425851398665049756346074452518300314102700880837664165519809750455880375375200916629321780651074488046100930173344393349836307144126132774798516288080157711687195238133797145856174278820497356547976205618364121058646823439470428007121257736902657640649837895937719597023213436423041721786570557176411498964991375985679774169868808440425395178064816835435462869160638815743363716615916613961040486109044166812711594078497990978430222581648234912482644934479869061877873101196240566556224542671767848138141802131436499786820787522455348809958592394967743543120686467935951446824240812327743736383420421210943535644369362734148868375734698708626311294346468022581728584896291430983431673117853574459676512925198489262788096813334828973062348288485868611551355794842228544359421912988267121952836371773177561184488445314691551570859080264886021010364217887558511996072728970578198701537061019517094624110607322598502933109239108293890270875898354445618842529849923350288748960162753161480146685461842897855870607194858512148625128908452339850731956913002182624785034238807979138453675524650617333143057491687289807622508206350682080562781492662741652696328096309670893892642307177955452472171615905173556117661479949439979875992993172497829493725861240000397846040405768433912432063909394363345126240098462456585562093835364394346403674768133095459880019236443447948664124116460552058958532467413047396554298267956455113794820498769042560155904494140452148111694912550655492004870627842236061913928504463969885803986809406221193605773000409896754336005431666153997170442480391225955435308000053775169876011367626263154110752851537602419826211702732639314918622116637888464360439889974364979828141622478916656545832915916984128074281009982940353717298608469759310066197840963899016515571876125735538420852277571400778402534085750909833718240848477991000045509919500159556199628256979535633563860102061651087052666607334084700822038799393429101266928178505688182403132307550681303106536342665018072921541034938442506789027316840892592743954701519310204094898220235721301482166469568528436143910403901096994387876262118694571730709229321318157845437587477285473825913787960546404749077333724476207025966407125526407047899461816738496605909156565626582811681100344808876475904395877188196310708519990645491794555978055680097846937031193076087088822078811017320627009440107848907464737760160854418008083381616061563300090022056210160459814619075452808758178873709804868545906900837624687290919180253522640380830436198493687917793089384658483234431761238001209060616170981556147526702119862845208054279968305526233498704597551582401172077592596218232292698152110733057610037138626261728999661198814562028965818838007041620368127201586988881652258438564752247170500151424947355179821092272585638279390567224644030295564538759523439704804413820299673144346261385205171412724449902846928001118920365028200789518739071512461784835046368690307254501592794058809455676475625413763652013517973763999434536251117931803047383559564187908930214433892262251098283988679088155093071786577147636732047012587748256264594153500019205099558092451907529536331421629301612602459282397511457512314119478109602251399493924972336527922199183010477099259389918508464020106881904804364313648564417050281671079067410679491377971104395640072675347090481049970230724271859828827589800361577869185133300960166763222410463865230638056659132080858296410623316094042751948753238313788894027437314250365042443047903719849153405318495364392528879051052274763634680607536665431370185894418675168701332728241388989626282715574898260198393197192202273712664672415067115559445098593059597281100186499149578931454287593216976244815548821340769598977823257823736923350099846073362275772350405902159176413852902344868779372490918278840743219819414534544060271847894395892751512363818777464853585733279311061218483712427238114313895207869862101649413829106352873615802624194075843592969158171669872791521986289552472177180236708088808777650550104944251537322644339756374728944103308431084452268446540844273762763511682258210244077201583388849601136568626252056538705675763106585317904920023128454682132665997129825548450587080794833214171353752416414459764758991272983114383479988506201012422457324968985137239199665806796100665687040190837110432984815821181225672940788847252660548101880973217487991559973137132733314414208347891385285590940243033224129458418034674525281977237521754327535620638468091208029994484417273933145136546228534382974340249739257092750558282911879874226836421560078584079851508092312701794580306697095346028876957946741204482136883308669607030563071770089272197691556031422667627623024091867771306986455907498917457352366660918810876650528642434675398100863146877667222864552724973087437427694598077079547284204017476069392496175957879034770005092706648141893229302166553223259883949156525875874752247396439620566496241721797873810049837664072819089760726842477787410807281775832660725774964954770549918268431753742201742075444833510160785764485246962205014023720521738109016664266877162645971654436538389354440172126130772127755466138520286125825197298305368117231295748421274413745034938183241393753062333024759177009033747032455740057548999671201594276778293693559022727085399286642129494731527443730050451194533176666745901356876480919813183394039441980102835233369395613177185113354976508596816494981218850562947840224438828749781685604100276458100162856941801654340008135753881662182997307636782519357478216900260382327297666188660838161617949203609464055432037416589134128790416849786144238733321034736590709211779721079650409019326382061172804475716125881331438540352886655552900277405582158796084645509832776324382664211908427243583941620886264054833229613066068714558147853883350322786969790921615715548284140016798030993067843782156871147520268052101334908679972475955283199130704539480888916480827493935651822862775854498849436671581753962774858358751688517134884202790300667349267317037142864006947496475066266829855542927183793598303479054551250690520211752059683786683158868912744454315714617892072618429645003959387181872213453333209093400069571182841456279170599557489785062122626119154166757612687576631382968593950194508817737996909771463396901509624051077955433566180091589057658646510137438574341615408163862310180278935285212929092630495586034110666878535100002012327842258701503030576653216399733711807309564563208435807707067818816474690420566020648921833690329467307435850964058986182214335046208370622101079013239840348984394407775614145210313134005086398180560836997435603055925468503653679898978540338782728715677704143392018193557229295445674213068325542935591656867215486145209695152132883831178119165335460775907168500066971162985756375835836481221439236894724551034232803281702967282298631455292420450423622650317378445285699584610542725190000055245473114184988881335291008672898852687743502379499476533623410238453490546474871030569723522213656105263029737014444864246268688703912835762759317782065888838011279268437916643731518657366479717694984298245364520586963859110852659164284287253274842462319427387867631098423930697526876863088419513365868999949713112210038455451915076229347736397302873972412589053902685152598078071486994009579117255203437668603036945422253510962418874677309988010778408958693475444181429007769395418141051064134276993886678832970411701358714981764491662802525180059062208271005525859056564936392004476580648865100098203041440187997792110960630996286271924310528615945610917116273339333216648162486403678735587422246429545659983341442344299853172175867255936309714283235235664998065730417397397920366909153595189932132689572275944832943217006070910805233843817034684095918409204084135011382761394790368266583622316894931840898297073515388012404493508403703044227796407366755709280753857129680112938977660621285554307481937936227342090990081669233744953771027005458679694042501925108249381921710386671631872794206568386487147183662236303316107344033444016580458259497789690827770012625643605367109267202549385021155913544576832016720876692900725191507717946346895197879157908683672230778835396998492800845650569461142567587377658226588080133608311970595302369694656225974011578313984292534446681501915172716790117580523397873911462291240351220946335750636809105493202780871765325964218846324913384594920029367574005499782745926434063585694982159524871607399813020234702733899481382610039234115067695696660337970576346384206721772138137918491084990060851651268438435813952750512091228807941328973040072912046304521612073365330948122801963464925423299015215220229766909501654075470931132507079678784321352094978333227272542694238865966664101986932089826122461796671463988648153642236849655397450134978963908053537504257006942254185299174214807824629887449422542802119043674926504720690307129205560715769566234228011020765003898759022497666821924386505760424572000918001022116122079026153569547154215196330458212810392983164798588984870454451497351315159179780642102635968479814646082691347960974015913149938707865118500457861084277108072002381916666154380213548131343194083559709034110509459936882708579379412456229754262513897883219277572738877360993951312875561630005893907987175484212791206285092110831911336506651945627319828600276823211160868543358327832340324043500635522974379651488755775777881213773143781175273991110974574343764553536732367410991983598677273745734582933580432026297704619383369965920460991351634944451081099275806967855947831530341130996998344979459482930011724115974283334111257998793879808000201116044777167896418323769462341094416760610812921902613056188777165769562412648663190537515579686149321699437713687571353979609375503960442324708462383582052969165277390750959771856313633273572446821964380127689839375848280795585585313870677940997286333160708782637101533573189153368989544072056676785030989662023950925305504770041701520841870208796793789391970399266710501492775551038538779496855734827222160069274750443810967107700223394226441419956731779045473322569520835960709543790211348290200577356398774562330642772409381710895167057617887289668642284976060046984833387951236473325457535531352755375541188086164536853174269649302363357499736273234212845648738816377867804480167054263377329152722893225450138819992075890747787430512335517419418801114922951195994988200238582934065009593758785987942349892946381121597980952573375149368203975554960040621888397432424454971336974836678768760326876255320049608376068243790382770170026953244058410854737324090584544728161560930437816056671837214848746042823494307248337248228972837288429890275160684973974567133474648034437702673535152261412958451979524826243872555416240870032611089067949224991508683737125126963806507157802823105695540975073282223480729130893322181525068204243426183355897451252326393158014048592750082323847930526885438667548721495356978337087488671554225040475782339984919810013479177509775556117884810320577308390375946960738466809454288583270565841889956213694094672338311535766087072256286041066846036127683603504958195323315169913945766776401629126897839753514477501690357697001894505694560097854429693749347023930684911963894117599116176232851619387158071915884283086790384503551693344007493375847689936469342755091103153183727870902458747724880847001295160832499546982353492139391559989190084588603618330371402303310604582304737048864539539516471615612905171718518958553041112188350163003679630644622563516377648372387207964373410307059962820724425902401173326479327183457385282364263475923643336445464177395226866649171525809637072762840598217949969288158470761477758919215772701261760286800851621849512081102671166831519618749310801561993300662352283306324770500154418147263538413085777764721522054944650822439011936220694332889670306142650206950705055334076176868514933655376493413104937178593761354873892962222273712629954261695717720622048742980299649794739633326153433173774907652587939047857015640211184550936116738264584501344148437957913459302888576066199013581825756240750127466129806425326825161563025351284444544583180211566812156275917368526517764120947650742082166890838972960277940412076451242127118938054610537992388541098562058526098989242970357323456105207336528287025586587093028478112667628961879803566759290078475621493393129363180005086426793140687102755626938850039521465778424362327385319638372563177800793491595128899805301862408264469543534477887368803120709632988113033268354367644068327046364946594322114048224305652715092432817876198965050600762699196232075018986409065297882203857796887401008207327938357520910336941975717207270586272442941698641815527292010250069376637250123004500340455058240629811607253791676034706337738325880202816953973461669553999140730879159778665650639923102513322634099983946184685981874945744769885470770453257829626766388853342136192131772376981016049393379460600123093078580811954513509629728501611311736253355928805466712163446372778753636108925599321464896191506450136592079739050966733666942561696263461743489660219050095301530836242669014162627501866636661538767274173589353424085047007293345591280170795250098040302685935681496732905114777663071833867167584713116366324401757009132365491139559814480615955550316487416606264737447555444894157786462240171044406970488106605852528986357555657870150460024642846507855884461477903133014726432207972965713366707093056206821651323043211759474890118938700117243772620657133601618285276609924036488552846915230220004471364010474539927170441755069293280576940961923991296386503673322462748252780862528988685735353272762434960192642667622062346143098124056108597133069373470526244579097856649029239016325153137042487167637198485350371206563414885630136762253068467492885255326442257165991210057273321352706957382730887213108904020011923221953611756597296707316324051736372194808879655411002991415641963679862374629485142541327526879867138193031283485685070645181194547842070980877363474544645177732399355637521012658875021953381247636481711211124703158435677242866787021267262175839137803635537686021949645285013700394411662950362286848262603750477803845403651195743445631988930859552244625493921365683638367644586547218004086814644193611122746558444770264279076712357184950661119639243803700400448832506901645151367843056582810867249582278163544884046783719886951584738344053845655954455929059135979464959535582477566380326261535705907932684329425018944703695663025681009405500017309554479349485931487109608880473888658415710747712024757473201555240670118527706991837642432456695437208704962411431407059163233198307473202875778538247240432355230696762732752138361345223451698905654786443361752972861412938247979854772042472302080798668150700274859213617176997800160119412668935397506741444591802201677656565102769854412255103995032289892907066798827947979386206610899444549197923566391799765399731548332586387044458402082827119137583508052985082714739445377420937920200550453353618980321515976835995954133873701166456114965746561630056081830861684654918728866994170984697175450467564719989587501823073008755481107860866302978797398727457030083361881177171746245749572960669966043139411813613017728266365305881962328437968313374179884841653969267179045277239773065769432341076082785015040399282137158104362713676493287236802751203728458288691739965288743580727315695117852658535176898914168900768088704865410837037054545422384815461496528947288260490222795977816937403788872384988143980693165188232018870542570675318317262527005140911819024487586290295987466199716209720848347709432660475919289948091667792619549346143500752540397271363949615579374280935959270845489644936930158285353342739616997640285243402606945264313942687210602634796806779773661289373849146849044869042839511304797156351351090540292339203333285778603742783676214885467291203183386057525929683223968052777748463349378532560737385686733498142792047432400982925976270659328682535067074996197512476592029824659612800214511302642033196210158774004507333484667707759281074053802850900947339202771428235237779511689349360677386507737520135926967907986058385269056829878195304256346073066117670584732887441374677251769591360043626281608073719950762835058721430561361075003827632243805387383977982967724420074998909286838908432710493135659833643056817366368863933903084374392367170023562075215095970588656533412699410138306020842472961759380642431132958081092449963433997100604037571208599829917942260660107003244143069263229129902829862725766580981290070322140941933558094842668043875386667309125502375829289245993985448772854583681259164106818772286889241762055217132849250047332118508700860167530181199838484831053483969011239239856496622249343040538415246870673162639976890274207449535543192933819512476611672905379439139470365619080228483871896722677317827224389731937158736894825143698125653171240351368156888573384537769959860726991234191361845400115335230050809640061802973727124037675562534522106251260101209145504995824968835053269789699941596182220853860035839681021946513732635468256380761767138346134540440678532373892043422246024636168202420642353114395464853297196992861003442315114870260136039705775491631867264758119834855772373989512455588786709261540482680187657372652507303281351517157989164998022984296872834370356544445440353394635623330555092550325134822398122324258934206971024919067727833938366176580422157401232067004026736065203434991978214859989419164066354487103494059967704242378415124772474333677708295304838814125430739274938614173846171691860721971083728357025891888774782725073739959877035251752701381986748565374664210421861702113204336133982307184192246718935796191564912775903615484349397122908683038527944087567414741387885053577179155333853382144341075548445866747446553465028672354118596307234622704757579013033466529397488080412219289428589820305938524116944951168353771041554280581399612688802722186182656457469749739398034656786232702957809358047030795886200990236274716591656152719844454377320892718066877651988799134272156838538142157193599243940374584598594874187346712329867313935382575920359928005907001900982395874655405640573398028029810523261349577359805797882365730851305036377002717962670759645209573562306578725902244128823254746168062947049347289993535680529734040686885918138649117751980836545046927254025455480043734578424548156611788221134113383235528873020353410186061415987013791417151534429131669894415117137281322885268135567596345508435396286472429741859891468908228585089806554532003534623466359671320115911105775237251889505081891450129674446148039906779074459036027742056356535341349989298519148756922056579389635128991578018845428120755216918991103415445481645966554902407075896449493565275031949248411147392384354096374068697845210999620801055396434852199676295733754999201164287304569861892660436530110908842916626565128937927334936492974291544938909732753961395471363549676335586213588960954820090157799825290475475206680966265122465953694514592281928679385149243178932963421425430645005679979234665478968370937455775862324646176731663953551995502899174748162486807894075744779006421122259186300933252898791637034928162111692047278462430998173981967915040449990684337351168426463700850897732277585356651985839249485053689553895272963436753642403708278766037999198867642102486948173725239564081795711259738276440822871732313025120948364571618193072521295130359570505012409931352506106020547554852676773401206363277228519126188110993833137083897695215420442061931689212297292599095590562473233237296909290933568670172072434242063242334613630598793117362647939021131755848196343942161589741623828585082276143087843147334134524512520695892771014642846284226725095874030247384402610791053392957009459547148440549406816135141305523198488077676127736522932754052472404921956052118312836149838598419350709423196990857058814073866877744481375107980514071723799554187337846097524676070316022080586154760490783944687421078420003606272894965179868207424377132386394530225763555908930028525167451020840663560816590663074445294344993885689699012805604104418592462974891653086062587049555090064198378974680679903313094578154673780277922519310632056422519469126451712333241474125480995952784217995715778888523687802143758224186118064894675918254366813388654978135020593991822787208530587174014719315951143837736048044122476016937666417220171032575298196434805666414665886464779487719094282166486006903721801824882364250691685032192999049106476070127875522974622313441570009375883154538881534883681077940502711866915700481054970852327877365068948050029564588940560868515387725967170139616247343660666812444308881269494306772293849582043868209609377634073113336373654906781503325202094373862640483495303172322025049294748347782021497957567179175369871462951213786083506524621881948000002766142582058975200034243762668938812291122771174095078440286752618864305754638800432826037495851322702846160984066441855432834335603824316423867644181318654855625298383075038144625061475854291417597243070109633961741264229135978430359081937375638488878805625517179898422893344258876538939697032812385927483795689393796598276094702977876333774441503127375189016915395585765438624666573138463125418721125723328381134124196037782447729521764857959579277250933593393627412148344149350721160383479307971263722931381187021214681544726777790603195001080447015618146312482555592820908518963975742910873398046270201671275994112378020464574881400276404497930586749540380575848375720340680733427914024975360900124548501859403697940460030816802964145066021535044868304756422256098826174153406825182482575341470470538657759063674367205071113521611763534824481671461995861229687411354648656017559370659227616766337695819578731805225835060957455017164772642234739467401073403050601684163580752540096663683582250801690630837288101178534314534447277819978587468664955697607083170268732942917997353142666548643845824242409209111669795525802753532706102933392368929561329062309565757913415013875246487077019844499243262154679063538048477543423316379789894470144060997024848934839255942522374507333702304546373630636264527386297716511248305410027492034468287091229775937814536864457269729907737711674802682100429884444275273826156852889928299458170907258881640917886121843005346766943511693978754883888298760939500350779652062331137590759531663015389886096232874238885260007419087939062427185012702217559433945126038703533464149341533554466313100402589862593828341387425943009672249771180665012624139748073047277527366145895357189399577497343746554514318287115242550721852293775077431126020161646952068399187208013698633387295399147831242009725210253548834075655548069883464621564445528475381009304863035817969465797854381299897504466517320029077096488921957477927966300298439667194160149817341767626017520250335277225555271555684226899473967825019324266913888627462233100187933715109010575910953493666890155453370671334585802477338452292195553273464573425800803415952407169427887259649583710688502512489590443903453825095442189500957948742594407602587793759009715820146077346886605236402829479579713470710493430889540180386931192613830324202550703140636295933828878490356132432752784997745333876475728789581838879958389504107293330560894867147311958306832675367468514086640790317906966543827955064069226544905025506939582289358438126380958330570623634892567941188201747364385491144115818926628048203300745788116352910557110625280883454725919927607836810065870077733566578326412212791492765678739383735371806542178850340262843429719872210821817958983214583466897779682892459910906165995446675669484540416054173497540939512497059051827347981918560966237021636806077849784434781727585263717457695729616789654673775392539632713567455909439013665747674351569145290551968008498456517028897705376216883761440491151282727841712983916368657367670686520164059670146666409974397730542994557315353031890157127839889896326175297762009066165475901066043507816035219243185347979748879799487537216864006481854213758917149250284641973571667227704392412266669393210187811580445127083197924254853011416854970971082825172187747965290403858527501275915473474720544723561710120873260308726161783970093012740545919118065861185723528280785471713605484150630134579258799313424116067877410008985240652499579104593686764602930562180125089124356839962770033174165831915487166415268466038591854540461405480851907707162447343376643061988915040282038303691051786065260825997857117239115075947241220277181374744153853921113001841739726325701202575877251288034947723357838272445417590578717305605029391497005131923276477796357402399467765233859342987588699042180223242790937700760791615855373395095552675638463700204554936447376859511120096122614304587062295665987338764297493987960100475239950791024018830775822839899003219842224175244811024316173878935015746063313376949558091770628011470156700642693178896526775933252762131428546521377231316925339475284271826518937578306008284587262492105213502185649376339075033761220124847260249075557393507236895645487375724987078031457403707939619403664237483248900565476761583495828964020386037231711162447464579901724847403652404617018214274451089225706008362018946068409025720027330198607504014875405420685092094514244087932722452538764959808680209577261242231497854332986567556278146963499435086975543174522819723460264652115189330614079867692719631634630118408583948612416626265514237863242675321866975664634272464311733491224029757924869705611401760686771982078090372627047839126511841665186408253524640612194548915073504712900352112803958212771272888670794123012482378918005126398243857936947318430692370588872052208836689561223769023620783149396684274422516682919965264722224272108259399193348793006960444118385725029543012261699496151454923929590075393751002017334569377779824957949218723791241542470908847311178005958276831266748835569349956239399596304017600705161881793684709291330645223263163579249320147965552445196950726399353134391246103866761559459676074198960804999648505174776822141066670723761986967115018217600031929988991176673678571668389913702732594468807363843131466776246455961126463737871958047521087899321920717816077704096902187586302261844653968685223137833088367917226157564813965243178037125390222686222110503631842436588082671877002238039645989562909852464711666011607091880523005791316631634930790133820127804786098108565143387673984762952408047101634741129998510855216355205471995388450841014589316314059790562385384732182812297449363217665068290083731452220098491453557013547503616070767535408944982613284888807529592035838897707302567351851652617697924722273606442517393511769759276464661441996730872124097972464594635976930841866184518118916111492559206354465784027785638196566974558585139033490408699265372121821650561646170157673089745590378227990110125531097066945291937320806604558824189084219696576233318218736506047022906832824986850297169712465635137007951881810684032811072054930315560059825268015574141579928161729734660647954047508388463567762187736527861101841066531243645115347168030133259670738634245322941648835697832706881707988874887822935200608513375762340887279353194625154215174500832116191778219265966463161537897222323697859531451214388410356734960461608883920069569026099017069586818411749383007642274306292944547304157834893297039944666888507822585436888705318917642927021190808840180376928206402216604928042310480464043407622803893655212042798234954195772688526212649411112854048042270592805465372323300798216320355189969790014669298690216320583096577139416613693366688187654039454369025339624269577310538496534522865686144889172610897871253159216192195165089731767587054435945440879173817672265373903075164853759931508033243863939040451875179182947432591105625584634166972827656525030485255142958823181218831528389752654991433860023835048178132273059768768817258046224895394766887987527596560608882025656694856556804174207732213494646908466282079350229738012088401929008722755312392467117694673625344557459321010264221459124791559926038651535911153085126651661684550279261733768485453335132465330155882703817064063097081603022652500672869022487795175458209120187055120054336215000477246112146274242692914115783242711718938298731962273877659798562885177536296136640483184823466551459639496910371718336036404175985730603410550392684497032974018940652429519616367774929416156836005749582883464219416428930798607855736116361561611332651623380087067860363221896674150715474006604971548864643816467190664541044376719110933900591770678738406761499538481551290239107928413466558300099615682045174640634619348900809388961601373839523813771490741407988695089919057042526785735722487255835129343532481522560344313650227953078903564602940843230116552950660177803114766276081886755782714403889005499448652051827847784203664694825601797496649478919171896052952676772300945055700508068502138363927405065532987462030320211534813768652960855293031222016424792551206809734934854117112689622013260204836013548650120016345779585530301312556064459284747860477906868936713810730659161205396798019562169997218207779234760993678391540984879316599458348026405915589462893675404785163834646894338226627535147673188952425752277878527541261069853635534250177616032417225215134550325181126038828284654915114035892913945670880724437199692453450409969348408577278318227175891586440070219725381816720871079144462088840067155319743908480350619457233255901292512106986834209329613459308875255682541599856947854515042700415836080527726518513330643270855529351472828249545273323414489626405214299369270907803021298915523077898948878963134600835563672559340547969597138070415649699201882940896022667909295683387040171668939362274861194481303154655811972790273330655756356236309500685849106228614019262895991330609475500441682731121737001819619305204508980727457595326652296560452720771765467176700698544008365167196592591925274950886480465436251436113356011916065624260284389347830203402942675827413045192387291805925297030222002702223571129423939880289226584014127844493947242098207578045319675265140240706466779163389572368593027358016581643986655626099946617188268207133203429352428077027515086698599849764112012670285222033620262703586014454157216556852553462410338233075053965584014032154320512014427066640999961036960552508174234310648712619942729401269504559812644724127807728572559661865011779897870879396919168666072011064567910542618649638065440751491326521610498338878702228129267976984609906223934500879210838913609645373824933046720845422469643210182980430854292445651446855765237772813929556035809422231270667815388766617148931855725595465342446022618835072321618200017836102488668513319750409700488795453586047454679376106291384033691883158709938220837632020674087489791493932011698604640079484173008078839027580031764302410656234112950471663483277163458112406215059010141344954162681920860652112649031175972804124937306993154512325590946379165931501447150464335586805571949052668280099784129778486649356472368888451555698016529238666196499335960659756403399235889684529460706033198389329489455101060888919922602862335864024047511522561002891835151072044618585342559115406812264144030327689546728433318347217016431924948539218907822893340780457677557246775341370460154755483028136411248951661507340458137913627801533588948568652163750579656474563979924852559210828420236289485700677284526733372219491310047697540185126293312381206358891078573927643053034952388558546000914250337134676941894686836312600506833014018377450568634842692931503026561750833108916317286434038694878374884062311355906643340333839475891323681239493498144739563763332358089072095932878744482006459419763114376228921740928376184529203678191253664205592188916828696640295458142990640690853598549147248412549426097037586885578216216042331632213955914950562013145316556023942852553605082880018650572283155484938855318755923117950696807011191433217809260812604688472443013629960183568959602332563139943190276292303706747451389663373477674424690846493088564518851594097619817747619406254846469726723210252844750975727809088275438662093825867313855751713090946005687764573140080149613477932300483700081824468439266504734727952313069091137948619726904778698616623319870804216358171831642214849808084772895407221918877166409943115420289584040956029359795844617759399836622057031793107982136076981865473575071700415897254366629720194639783894514548769861452524517407714933117773182256666721245379813948756330154244917053095268761641485212603618815492706117201589981844491473752283065541794176585656618646577811804380563747559615058427174737852534750753132454137578754744770727378428625744500074228497844199036565248472292874896474754156198251728626305576865271179046781784533064045291592435158132631220764267108383181014807344250036685715363903604040497922001713837929435491691911857299741078811939879354988876007700787619364365168256896615622581318025227204322060897902762885772966665987726958901661823544610836565603600924110746853625137700133152348470824521491189588105820621715061172207691370569355251786574751423705345054555571072277097013796580392430153183519633261491917942644187713319170912827404526204379323986692594955408026817953818386063457778199533541637864032134298938603737449408711242943679997151841931838679439973908138644420581472148778082087102634003529906520819917194871091329528759276540404222295956725499979230802442561457271177287314303841623425038848236386665616332056225552277603432372743114763689160852028092953072929086071090186460187523836883953621391328900942477453835657048782297123697971633219282393034120764232690036462074174625870725190332968160182355692699934197842922640577538322638112586831821793243001160697848924158656244403005946618455025019706132764742162060117782886885359724437280142676672751869660063316499456408230015921456145813812674484072769879575199537951762459986429654727012661624229468627586413978012327916503200150887931429174601401699350463248567475000543906727718340154680134630153417792398098745197209477046418853501683356598396935041123597368302342458328111503047935415026972746289075321488591521326960927436214548054743683304699365518645403457645171029167341185113362908780956008275516409093732124597977806571186725334925462392596383134812066553368419646702534356490791200438337455529894052944655734782563717188843348494435843645423949241521182608717837844656027656603328402688393917555348953998808749434242617340508548061650870410389944908839559129442062238387474184179269604369732101642059591569953564590052374867317312066134664948043063423201188995886233368949417291784521077795389522673932730910554387890437811067631308635575521113245969332948051423978630107531788679671787798908709706791753931380845085558624329566889282976281765757809135435990901561725467005390899295043573655420094983731723102181627781048182707301346933392251083903583090918220859968166994759776870031211752252754518319658519987317556946361157436152884495120551132727977023893204298490227212849134474778041083440166147602933250019470918681434823996149331679020948498636787763032388552593768726737006560739432158276343896366899031571718275263902613362881520685097674567730436267043451681041555061115049866053754792795458156820831930779045498230601876453460589103734068595937981458180777959391964834981937273623575888521910778300162030937868470011198591502021288733733319467188288431031819970770164631236704880100849031316428539464986503897926230056994709398295975914266665171318856091472059949065050619819074366887571605508968960086243451581967446396970043717605204375793263249423956719967121821020398015140735104435302412998750543356917198290018342539817261656031699002971877630156156833128898438274339189819472334658970198989463139408608155095804449270993518713178939801390681830864805930826826268956679426778115294230468812829735297725343280260435046402359457656252820342071189667212859975540439950892842738064496094770804777449246968330901138131583720413871294431997405785740734192175269214712084177100641015907110209568383117651953690341936700390494800308070409010458461389521295502946138449835391919587477706680014511879223298539711850093395132852732792661856969796859029526511096061546698610404609953662977117127927263235122074203378147845882806644868959434160124171224377219056187062363675048965596064530698477183865076193877078092420388640980402541840088655346016308015000308783551271076707390853417037345855617084642288350344066607863894480107578579789511589727550069098500352745959400665214319366571247674377427286944075067052641688496928269056992727289449007834256227798108883140676291584678071298735922149161794071706833678456769518682924677363380302860744227623494760044385201330724292983070857590986416170073620006023286125147103828591690657637567427037718962687261401677946723982224742892267333362503182703393773593729590305980810710538723964932389996415233594304528453997013810654760916255004782254789082956010749398258728165629474805121458667408801467806913437216004070116077710965338275943777685504462840941285560889797347861762187499209090808297519768647736688313408311132279715320741558138210576268973163826697018469252699169160407536010011220291526680970046988445531140916510516710021895378542397340598301447443966619732475549145393203276298259228291162078953302148376927068847218566140819224909227520341605215365831979512644744657530065007498879537850247959029853026485943956005601467998570476777836542422137976624336806364150643028484439505995500826825916605581766443279013479146577071013414475306846626896309890090041521551729492475535065869555792043246710773028950769939407679313015140147362410195716320727528804588114064783741918567410133017519516066827526847001013831592790391899788793796920997988285411035593714964242169534777243902399051888294867834333928206871928888721061956211990186777036568724293257259098607575562103315228597278048795021133822966959648377639022292850413561521856600051495259472397160142971236787809182418875876048445378716579215974573540215332053791695437054598336503275685837510424541577414888113152195439448570074578961840307977144061483848283193041614685525617759024285090587417207123022568135436666770598001521417350501614518550267428643079092844987580561214424304252847759780183844003698777839613832027035596459177458724277540220586847268586973878698545235610667353016111870739868519595912879473422266309468190195924909515690597830142677315730780750034211806125500192197901027127474713517275953085695149164184598443420657429580434790107507330478285681993833739006532974297853551804423392242982273809467484073664023337108555191067362647770287564585823386154457467350127527848802884095466249146274739512351150175582194883754518494816565424047654955396841839837226274094035156157455815252387618659815034093617902137870821755944589539266117508577072777665625735024122629874981964317873566047749130127933057565627145146780211863377513780888733458014216247576932940173312858776416381191432816333127364922269445764345583528466346303306165724142224626636277714840262172344504950532311512090388341805298453856298643959102530826152569656050637776428261946575072175512053445267564404022638155080457277163999689074658001198346230544086443547411765172787759891162780792233533723214158506043965654726133592109663575942067111886005904581624254925484513538019737129602779405650311793232213269544838332329553893641674019080262482381676077527413732417871478084206351706106592125930587715007004149614046620936580024414576144442599397916827549685706245191850699354917516856122416104213031939165786756948773262708894726701851834372551650664697123068917519713553502401397654171957979228377773308625400720457253800828470939808950893943609814156862246051036058436134121341829521197579282158702224215923139306633184590512357072937918953456242693491790031073287305615346402376290402408500846869468447562206542671858254319636166336859108090359822008688625853434167333656440917307977879342422104586942404766008984845050436916677131635728840656862792551547113996484763802624700030095640888627862354441677274978976534866734602276117919473863609111970718533842554470088489280859647169769221362355607512839375503758076280908562967628905362713890878305725350988967343569199240824657072748851772041450233037372064846871072465270336713062176936280010539252167161815059787344475796149370337986851646415900258233357060627386433340912284478825808271828010064007731980974635683342480225537057395045530277925058902980712479859283804361341903953843084431405595082882582198462074990005075249657145204657675144177111997337691216732615104914006530907270789793814970798708288199893334315047635469527439126564739191085044365958119477309185059870289377098368261382187886308212769875821687831397080282613601867650387873719368642615979485805687614949907262995621786161434311950087302494879583458553417349180854085463878402958364311777300778962309858065251793422485639767107020913272919505702121864418015523863769841811670768205275921578056232224177477599468688176706810842472463233482800370417951070303859160123171339560690724335754338932242570610975330646818712497957520865594138647717286428122603136893632753661332859294312706859928039888346127569657890174752028807165194500799769554924631559326953013589723201472624173695012114274409187184710742385603394481612774596708234962090360317210307146861591543313627764894471218459482646047495436945330611183323259292616783248646792316333308202328525670148724647552038817252024326276343453362830851825372435079280758571334949526383536343003490552988522000846356618553354453062941859984763400442045602506126509290427377617004602448910548800022758867665320828825564633542280010226251570054579926870578738363091328304927908404875532157874542621752249694383797462111103145198591407753334177071744141798066234953399469896948814067080807663967963265653426636750771676247921728059982943795454673588755355081160202417555795490249707604136946928333632914244353184312566872274340368130823784016534462426226595656951171824702058364635779692343661410934975220609339948945372040417916668767688172359105817827545318518240730076471277044865218644716050541633619535641834047359791458998063532860319658786849571618573674458764264346559760115964835252572097725681460788204980735609070852214814708612122691102039596904989005006631975472220862041422970594132111092080701256785958109270372574705723384963248080675564327489131048350669872931934241133756421694305197373581346817255231152630889999931919035476564001510434729499632218592113785455072300977110682006199004421242731331608641001357942918522694847995548241294153233480746520064263560757031178041261715576307563388081451524436423541111502483062265716911925645634250086610857221222637157421261241719456394506872033015082287589015393638614926969772309585236972276861532060315313479700436036431861044511353421607696381053066715269219723765335448698102571430962376420346422597344318847137358701532965291942696863905397323530521398883379672962640178408965341438191690897777635206744907125487635037416519372623933058039127416965954110331854497851422678446573832602299426987254979027849712604287470847836956062943847857513924323508064886180437662936844744665131586368663348107609197682753274778044475851094916148198227621099338642100433888567247302164421230523634676714508592566699430052868683422905579536710571925334881930168402024851092130215319423726366995244863899722988752620039277392016501633223963505867723552725082913817868457110370149402417607324667288577545950059333894935457535916657704080112640162617430997203001273150792574568934272968376202832419821592406423588854991414971098994293068777046843905317243904573200539857267493054625342954435157269105442992835983140050297945483943561179349366587244199194702549791792281323568989519522006612876609627513587761133174391207694307963716460274426148367318210541230212412291704812801008707370096983260740238367601152251845151625136804946636156417618492631178791265517569266761819209567602096519937155574206491811057509810450033173559279054913868505619020512263997992820878863007812097178874444049971162341068765062062005663870090405558192061665723820031501179828840094454505968299566742835702573968268816445711991315606123245095662541507028965389275889225243395329308041163315544991330909187164740939520809689145804727183136914411732443501905368135621499149042769713511462389744616138236121209129143836169044110624710676696205086994361662876261675695244319390408324509496742065131556306738637990136078894454969970468038016695915389729102663410803334169133085275351001269693103298788937750090632025196645273374168408814438824400472778946125167123788573615540341148417485769785674720616061464713268986921064913489333160699011176933560611632135663341761083970172424151940125499414812650167566044901391871689873695517622263782081022398521882271232449174957024115169856080152422292606952169825473371995769024911767583514243411641127652234287395441038365702530896116326049274707625643927968159632899134571051622590598776891430447826329318785899809042875068483234505056522440641425998979352481043127476431587178289361807479739334134153669126362366235286994139407962830679976957278660540712175933144254271512255433884901235947242119913013923881515056544449019808457323067623126634885099066624089379520319048972233303093236205209305822830882704469854505311682050188836019979494310142492196358742949409669344171257787324246521043363265725575770702213230575993413083213911551726025012436482758340636562783557407814756754914467723306858770629071571448933761808390681480575017220972322681395898370211076449439775954349381127658598942640907264618283451885120153589384636049993800768273434004741052465436889954231925942769570496162199099074660180606824188003402267216559193858014818271721084752823535006297082507787173043127756043472373551965672097116177949059842021884615821652786239884827367630249608977289677745835466707923200308435855372181338705486770955085037325933644880648933314997453247931388393734232738226300137059787101753192836651073385152221623189623979610494879559439104759750434066556056753315502574681538519317360459963675278731032550724950946760831326552718197862271588357152640813115903262388715689204323679119903102999334357006344257532896373472704598257831593952377360483911060364385548052105115108053303066296442927548450624890683355757364124332235151597586955137249352151299676250193565686282413345984391756704135234444783029639245588065293055291193198382418674525848516673553390574396706636105886741488848593685697681395768767510319239523970929506458254426132186691329693604701065349540342636704031248612134495206308700529629154287178313446598106816703177877983086114954476110869168644957327845377279854485954656289086282955320464087172949733307149378610334929066147944373240246774930823963442011196360180257911800038414901010340978223619904905028818132021904229131508435845842829071555393411555285113616506939643699836487917597713524893796524791099268281817464982469929568090787755172279028717536363350246060887356604976418990396307610008422384751970702839809218105817605758764719551783804589722753759445236716328324050157836343088367968319869612761344553771627392945662769070806245110596741122562568081904169108028798740038583243303200638074260238722269558028570559554430874060747186298127194970254729265959655383753613885784484608173296655148253349763700257076265119901817751910928890932971877319473319409018862404052600113101289835208829858632373707953069498465590353711000322775176561296733916800888297984066031853733170318130891808643884275581580939933477270351113199873791235805707376433477945098385669520778128177702120675139046045384530143765009016809748193173357057361896430162058365992264173156780332013739935732410591397950326041433138346207523385635268971059573161061518030494075767306253753341261306166962233580693688238063771991813309477031746281968126611205133670433397108061830896643898992459562422129476057419292516817107618135978491266599369638937817850149464041593120840400080347752777577522533994692220418613933077807562827076195405283335197883713244840585613404832293769816592722908424160751080544237292580718739910063115625500303222781568675862953899163776301481656616466981842257393564866859253840301475294758436015813288152773546688958605011906396347169883413476117387352468532615878109123246457575922963281238432926635718680434153144088707537071641547536040378693134500659348199264923722550292355529852451447131330940373093041962069098775598479953088453622184985337826957241807206720224630244752068582501358764339893671195057901903900669714625615557234734697486696672687696877021342442859038330692929654707288167604132408294476925899240348206101157437822299127782183817454813089371876766107258299051935604772202367209625828046994115814305135585373201310614177427993843034440512981445815258644157197631274898548884538706079469973215145110067167223006362667208904259184497638999050378634442249378266438355876518351422482065306719930830933878778605321437584700249584461386337817790922439397899750677886459604864593820643726639448530151979387000834276097493168776642384196075652433212943757586715425434924784008973861189659874675541945752195656729551756467467987250660429280107738981995493072243523505048118772809285866126071256145621720613406320490560130606544547921395319865140405724494079678178246103476618870407466199600041532575516947195468417533042597337499985978027955899043881274176362351467378930794557044973647148090701126325008333907885861704700441548495662915770384160018240333779078876920145303354627156759590275389526355079967776620767160496893706465107922627720472607983088170813444526540950164866773481143024993001994830980146055857674196493111133190808665920532102664125397972612791364129548465727354966235237171782496227979429481945002198358291464661866665111272272967209353195801600938988768688332772269408131252940670211799749875999024621641710650805337495350316949756914009687525914220686447062427251597486283651861394119912564836246924663833209412229713417558052349278824266480006969973567460689628228224611899770186086520597698204549293927125731663041134417952684653838239298173697779974014561675507517598428915577018274736439987306865725443898184076073176215532847607914180686102414047885906570441857024972010202279576057105052270156170402726421788891296487926809952183270063020403426270493538391165383466055575692323589526616895191220792355720964010918971136753443275574102007394298655396506145887959109035518780555236212354468718154795698058178838699880896762451879801731157381058133531498360003122907824167841224956679231306370282654895526654223252614362844363611240124810314251739841078017300630410856438012894597599656678756761736992886655919322145378519775620556287161532352441329577438536878828864964336871638490322485416259586764033162920887417105892044414767277080393135047556222198341672230727809895538255257851584849755181507989939267023193143204926623261562042220285802473274166394293603498789270011921318986298071754048660509550255868678191186254959520558955266609500799360379676506833686980077739360734637218729734607024072288070543884841475040007444448813136896916376412959262582177995688115828700776024803141454658244556691113169537963250844076987536821598120726920678665260208271001235154729645174162362561555292329364885123488799870527980924178147840131551521099181918318255933699628245011188003231642545138375584218159224420708646997861202249745710673848689003928077780009483546450854816314274167706817610043956684668209921745058994275147434347483389707383330337032300909697312238503870250427900702706311591035945287936314013364802082054318480381346632093742995025030890678069177553810215517025331691908678554075525124048030706508737679907138652631261086496934402264391373569661856766622111131379424848696264085489344033653396504562093057167553025929314376223381973794738266268538218328970958870358823336062919716763982828041396221605257636162578184756853353208359448996793338475715364699092477191496636186544153481223337066148699995033080257839593743666612909964737432501592964242452530680157073933365933340338539421538572150658051795322111941860963872789855148794087269388543535330912430939600859549681258924481316523120880568900475369872843072735068967355211283266299328584588057491242022042059259203851471239748100991146496373069327769740942632582925674517517670776481776867867001593848358388908449068815574969695712368234192618972382708434189783092355178493848750915516732733478491364394893405415686298768386107484974917005462958586117801639856748860244394072354264000438413411391338859101850875573928488966003855738459087575484056508092367764507120769670709514222645910502084841112011377966780119061873376556738884850053727693123249196350098596669259324213686339069946593657938856218281260535369405678269925596350821200966358385799117149640958028476599981029092569410791433735913191293193841451960714346993048014368591242543791282845265920381414178920467362793580008959064013366524915562765679328953249527007678663955283217684155984255759775140507339571303782228001784774807943265576730703713040631544199425854248424307240751116613753058661221030796650242044694856620391030192397275296307455466083057481808599119694263970346264309820989047353275770658628936656898330558190798240740254368848243692625963422854847372670292055506182724139818951535108202730069143412617086674724251382657198698863551931248059535618120773516891036749010051428103805015674799871859619323623328760233818052174185297170506870159885296694447083199990493955473999873242755493130256480066014735229028974664388845073161715203563401097729384849425950014331376077726442347207321772261035893945310424671737101888187501058033885265804740117542880076383570686138260394160789080210312896910581354639930398366360780671744516554781546792603102128783202605306739480319746180107860794275075566146719233653569818525556225740686013022475440736698642211660200626131052708392267854252761625574452157182302001091565342505415638890655611798345086941337460598167693044295441144725549783635173641604084511282251811091806845923101863537589176974950391609612437652281823966503027034310107548051156884886691620652596904414117892564505775045211282930514995178515797760884398073467001851144823542414273809100740329145074555272142915200969218644930690604223160737475105372092393705670237425030927216823269058287176604750668004590052268073153013467849383427686452780562351315739300803417536428426990905524905390260116652405260183083630550830595241227706017046778237019022525347063338428115582894599123441226484259938561311299621577257974167066763723320953842411845291309528740169283262112102804215506521161453252414296716036046944266842797677535841641075867708831800150701784632519037938218360137778741804138653592351205194228399232779328493519765796678919077154747378649456767167275051169121725487136937953831211973761015305591807203794359706535822846555810246243329013817170203254270798172513583324739082625409354219740025583451105641191048380309510496992526076307397685954157653902372948228327482877465949129139968820533307662311999498703210662729057112747486094007682323140224823630217564592868107024175665700437846196133359521434275244161535866184520229599613481070965916560545925399879328874824986587585582042404902172750150931484288092755354227237417688123414288603446030416864519312241189812828801626952766282351156518734069951508425714372870966368800444696074931226686393072871521023233524298017068793201824008173029115443145669679626035111012311059828506626500818191058408186411254346106312012333244873116963118539594776937974262200858342189213910019372302899229023043464849827617935246042576337193447014657210654751081303857939163481459553021468907456849883046510131140222727179179048612844126034767178606833171247139528998379222830717592106060490209938175682251720787531470473142537250381317894655550233672877897658247810391923059619566567213519988804853677125060085384496720570207585752548830652355976213811214946856882136438921293402255726871863263132987426009968087086882288708129648043109015269039103427761982896812261757615758037119145921595147707510960366478189697143223378244238246686623059023465176549645071718787097088668526889030164058634115200352180303935291136604589575136207582295396994599531202490315984725737009971297427756429852070315269514037684681775861985033317095264713367403337735582593984854781681449066040764141560782677828544738579259441856355014665257238109038410897370875074011813262404279243727937921426263113230714174202361920934351276779822650500897357329643367550687102721474741444850531596984190951987010521477116404929233453074918511160829812132182605809249586909071564262908789991140567095230623099336221313637603083142122808715637083687137030166354398218180395671540408827568405898091154869082159416104355683417829320183124099193211789494592855413535595765871213367107160100745804801998781105675179195999851844770868801362149089851414697338691018569640456116479946121476130342532412237431880784037526582818915625341781554130766465495784824910414232818399431854702971870580007480216200978436936493596021846695610726960406255190739030147718358567617755759272517696597081324245204034826371082623339694390456633828154005315458907158610405059171226736465971389280150913005532747520616794051660813096689140028391655034513497157315100901666925631501147412516883892511607137071981221383300965152150402773611938143346656333950903557507908534386391748216368705450604937918515368594639278605620567119924374966602563668372836332950741513841040630204257025668699201216811175822556971222651982556134879964594696228504977120096347192218966664739143049607729028635903232320820376674100935546293905722530717584123292958373501026720605174209771235608993363654526689075152873548250910906108931585745812562644163910874289717949250933268905064484263227336269562792810112956703119400148150156612888031226779326581010467249780116074134265366126298876079257672721399910766082164826756408603217561710459851178846729733046987272222714273227286926943756328084474732237938208046434955352629289140448768429261068046228775262926366655875416246572807013413880274144182971852630845434838230000167573595489320084895253987680142209899674742142536341767570264508194500022858362010515321156644043636666686897852488953262938887466706510543252376635257188747528588814682077280681263289680515610019748043585295370974165145976376135610497113097644961165142780086208798446660619255151904634628143159402775869303629975131925429118229685656096254773459435311541731679592604739617113451869273950367318808109678081987022430491367319204973601041797898488233707263386143466430349220691609698688304974118076307330914206421848045710954678394496575393088979207776687840094690274361883550833529560638760349339175427280516065656527964157326877915425617100385240236953825097101812741658614151935947905817416069657487885852675042551063976898930332758027154338812768050322106802141711025420253492291210857989579202029767798561368641637997893808923621514382829801485830253450823890002891184416453491198670477132257566439446168145188532593855370144643548631646351225243444800669108762836682877617393032423858815849011793224838206731221816928583519102221033394431762838795054853449712000423501995676255117485423739759615981861914372466996854576698516189614242077466054462841091741675699544210704037704196404168190870270134302514487426728040816391690919757001516393333326212581105510504732969310145108409099839440552015089818681800030024835866596638331284390626867627068235199857480279112439265593018909865168765427053132098343665319026607244346466786852071729199531417244775406178368532176918947194985330718153138986991994150870314542662794766365071307613076807637886057671844094419170172080608778417517778549829690244754600690294113169776467631635896919140706208004445078297187131380690411596580573223523488371056923735361649433254928093564325567510047264879644303833365106489038368932327992225875939476398171569384501605749244954275420580411242815206316816925077593369305167955243822714990676608892506701066672971690506639377813284590645947278654753704929527658425035251204714112792636515801230506803509011051167010268995115852698490878916589421255626623206801385145020830406594473578497910596642838536025213573825579272242259766517793693708057325628514319746275892222422904357011450677216416721459531311903887119579237611523287353704127046654715264950474141397805032345548667172006351307407672570288301153494894079649103266808041087573274147912564429950356053300352702199009493997951502374604837393307287656851125423699488677444743748406429676157129467673082598792418807859794184639435396724369136690995036069698577379741698502482950652078311045836332390830263326270332601276116953892268483283764655236668047706428987023573799613412181414864801944091294655490354514408161811559297033030450894151824394089475609309489592740270634506358068522273878653776527805513301795110695573106955179564000068103703160235279463496078719793012781189753448822681991560976239847743840083190969232151679264892208152637237408956260703839654520197722974230927847304924748186326941225451660323728407661935208902755721160927780202012917612454711002313065643690979590610409230977621720290683692331058053951858895143261704127057134069610930300988772745277867944746065933066202964182913358405447392127086549490944635588737329288489593258164669021255309223962968674933996880933916027334561604425181093055173437642595593944818092875298805454535542815822840845293504683412507313972534211338273853946145618721701391150672447905899425727289164400615551678027537828689420517915981477708550568010507134511701139566492784855532874673360700303787504096336781371028841319749381560782782058429001626868148250993580812770524876770992150225657857560415614070350247165380756140476807805357861861206854229484509576089476279980975158121680206902320426197926591790044738702336362004381183897831567802844575990125767718100247886770255677094057400442512735119204315591584544855061507631566289559534286575113373174524955516288399501601898939456814245278144671363430523418017872584401748418694846585109959095096194948308754171316694464276870698315636826050306469525344506570028887372978152391480712198624042946913088834334186279410403223109016631482694400467687730174041581222463827765062421373741661641717835346419543782667474951822721491756675484190110686333416093639952285349355997075556684880041465893971527807041540007575663677198260622034098989176002763192667996587869854624524894732916441996220608504621887641537737560620431680705715764605730029602438301467898214792602846629709901084434945037125244755020448619722879271378596990164985630709613701231606354847361912949615557114001642876390535115125384847553961323765579578599651469905951648049918751378039217943463180820743343553935570015878512794093669129143170146588445422523091813109580017217085980873692649271524170542249720083493341715730238086639185086988685863442383650108908628859279982778518703672064975675927068623677835254889795242351701622550679941856160104862900611741649034762052714139013750762344461805847328477682832986567381170132182161244370610881092217926086739892994392001928701225406060765961149370758881603954217384956575928812030737702720111724553742874890368177048446649766068872359583556035109642511092521855925421757581219775292034931947335340972296909872742697397797922711288119296745939498254626459219076081297013861807770991209885167028986331714707780100271853482863881780057411677126158637846811638472312578007460349405042407803247445710128270975328512322617410577513573040594045499399653360762895869974013176148843193908687450914009110160847445361919385861444090017398063573520454703107497158443131851928909692726010355601677503319234365224122118233887063909472731492446684717152527997342719305734447351592159828428127670546394490049386423774211473175738213814826304565574593984634758153372086035836626246404792618458674871059650891333493389564782095919949577535786541009532972030842322257743405147265288569253024081496985232840880688317203893953354908922673625717449800795899930136799415106594949165752050762728104445500047659059478416836096021036005594886841488769075853369760810947864497665000712511533488352735008795919140320577799149841879616025615306496694677682067130053693272542300139614606373360431928537881055868524439081258008244744632386839166830979572517907371053277943783118800151784593671163121253039049813344342130461128637910765876938047928875994164679147269638484807869775857251850628063491214208205499442210921911822340182569639488592046170519466844449151327339250152316410927592295192486554741840059616151882518760108958283996660376031315145320370108415527418529047403280954315471097910450169285930819870480556184769869222031233054594451050606413309804442960042609317068785948955170967705619208351410768049342754677192573292095446861478267453424442366928684998026261996918954791816738017406252635422925181914602086213494624967898580185691429440410488209795416460908590813161202293936825741667025251972770285473010514666549884924494207627623538616860092124628846912986019583522713292630324805342939482853701113284488768429678225022181055257541049815585333589335813378614311983360414243560863224950896266643801234301330159685044384497310992035563014829257607145951399398702996211969679898871525027577475995215810783810578509883986035197756301973974916566093350000438528863198769449768979173114981523752545261271253154336756826432565389786962307344799817068404733787587343085803667891158837860865122225578490494472306217752861489317705393759247939176185567760219510335971254645655353596794723941308663811579183085190793073781675659241985741114313743845848066189407498188538539579993937327433564465730158513147494848856454791688032250124884215352131037235071449540571681221405521306391490424566288454850294721137283930988862520842429012486649654728180253861046411154844039498356651845186744265316624654988909322205514954788747694275742947166148657385986598844584076706410757100300114306911294328427212304712805661180702000311309321287964639010306026574164883171321238113685602366172845841491540039990926569624520880894017025033134738984464865445224144516322276092936097485900815733578878649075533927276011861207589154889814505603688626444715571260858363010684871014462900480570844476136705357027627004522682937509055472788718719147675803829154174973133490984652534086610003040470966305135141844134438312442346872927521090960512101673286907419902397474804848425075658037036697743908993673635921758630035089803699277790729433051759212865468874658512984813682448474899037210732522858999718690854414058616728462848729937013645469640143157253886785903280415881402028840378743827897610194894920889920911452116727415178437725939035135605934991870107835059555828437375895052504415208885115239728317676731512040615925457545990852968968465772966537340459009611027116120630516256930168129960416520056627274505752394961600619503045948603860698476294567240952987272318452761516208773686701964205715207216932424567416081060632143032509852921034758866611264354301241963663190369706160499951026427995684249837939858044490141636976694531272032885336740460200415236517772865610933499532655533396035361480481725879794152133798309917476021406348132650554836787012849072578824575567192883140900154546637886499867205638398593353275218963489818518889450797940529791409752291776658108703395485835760175144070539649353936156347670118279821901792975875995812948676844722606152133965060033367366176207115365992390688875755495443392157371618879753509454244899431898816917677518249099337949137407463645143378146325523239679469414728440133159586970571859109865465326552161735378033869447498768819331158778343709308712776210766296268793948688877045159731229639151425017665640320278919936976672941947525287219879542895874382273610177727089650460470954529695265966144817534545617746004696676561204580597894552967806586302202429805153530636941482008924514906905139274968093185073732644912413229696952430067977391662631118687284180040567851351671439186091802979457959958954568889235926252541318344843160951467817390923935608623809797920508691337631203341999196139344620100297682426469283528865310752090429561253058474118827093786203415845995851119783036895359171266945046012659386773745030028424847047618368439613049168167553918007463879441621272736606012526329511671278355715605165010390173506652951977591423681929020676740378142717764585689686988175454684847977325595398321449064145645442179860867643661035892639024400155370035080174987533832035329116082263042023249096986072322839620433025747513852603780374421166406485370298332017473604303101706748117204458554957110352005397536415502663754673390801027086647719665203974714587651531003784576716331760405999958706521991061290901158665499334738214903248383767692447309333585066524413605422878775109996727654801041522430858258248770138424890278223673836204612321971077165785253205652616137937854175873308603738514454699073884810157050760483671074326908950754999413321134576998804210703070646433894992512707061258706760006511676531243081746734758387078292698264052955025344751754194599005924573689185788571406411782593732461094352248637932101260904352848242510320926581121259304121895738789642163442646092969288791527185409096687471233796347846336269777676851071492555839432625236261457263104151018315051119663617024943919283365598453006902085784785886537031354678714894061989093778041739571098254062226843932992077270273680366251252239380937142390519969038133671836701679390519088646920135630383435613853823342012756269951280956834912577027068959152993268520899509486978190549567380730362997570849157496229440601912925126724230164123901917752131303003937416068071421487507173130823797929643291420520077864604487169711572894197844646255390493884445937320679135111239948321047627385277445367740450136351816144846664621381150949118559251267815510313735414482257197137298173397693381261406325578516136875191916136110302985298059190402648023873101785279944503615210290310524941166374438378583838725780977349666289403984378921198845957723666638695277201910972355326009075608309916880594938500366671036614133905797957290992890588032123771931168280465563747068322830480789190196922389753280006527136180626145600515468654450367065539636004482457052920478000641031391604538823899197162523165644568461186252434650667951637058100738017179968052372287143840203202998064067060918858079942984327891347810082972302433142735487876712880774293307971728055540590523470257808207405366492295377574019833481298127092668884045069204960274880115945151221969793837573313211922306777615751796408325625649424774212424465387704546279809637075319628823600465590407575534092036240908336527365287949489396445430538074782171699452591166059135289111857619437014217542107707048887814689238480806234237867538929042703000567569133833732484210753517386703068905021653399991110506445124475223101414910411071513484081243194010158073526076469773274906825652402125868742600405708314181205100242163711599468832077339601551685215164868548021803356280691282485171698642587896799314150686127713887761126424907154949821107632334362680648447677197137647163449986091517573521477137226291985418436686520821040904109756447532570039879248533407464787254649631662328702469246015868257461296187962293539410308706025629472224206980147472285283056650014599353614498183966718785158069870449983814860072738541995586562546510827408232731968603871845638514696619557601060259631006170166653731544185758107602159764421860412190476795427137264607332146911906436580572813556519963079580655071913887037934651059908988591863993593096993543665516073729978729005223737199075083064738583699227951916371471734544057863942798096444082651510772123605108864797956098430288038287760536070838138699428585851355151208037381750273689832131533269571137744252271347025189767151114585125302958099812606108986250397342834561501548920831671055104732150703468554562779545150972550949316147000693916355537476437934225709966521717802544818170699953613532189024335026578813307231704409815601673604098755614816812643323993355164600923423904818404179572916682164026123205243259462579247455681151736939181220959319238620961954433033285772016721723838963880641111750868700801248593463404593196267194597092588322840418077661048686522162383867715729546272784686282580133505830502506025958683385676672388784920191200311566039705482450889744636667373198824217935329588699935032478575525425879149666947362356194084086838359965752850367459150305873998271461431280322874824069762815795558966538921432603334950616193765079255841393078816478439915365629723895734721112614971115954432838707291201664621936125107300793802709753525667497988673514589404429182993587075232036477326853360396382405136091686255827482161853335427226831983720254554033858303543398731860348594019928316504207361338061556236477847272428128821792512428285912097432076581544578734147671954075609969913372773888985116116676975567452609731080323444510833916635744814623591917160223754955820716995516806910963769927987385149177905886963135113867697076920988078628791920533184435333552377175528307067634327584282463926360311000873512121641192497490040299562221919434873557368851758905317705293125915840045924621160386628508502164929069447344629748659419991846269756814004630782614912553501387613971467467095489983194147064551439521419517464025513278719136303865427714403621942373665868886262486347873377509425183315417513244577942933268072627710790391470280441991485927738442096975404333724187106371386704571960678109772950878071952435831726080721737949898345007962392330822265141487181623282025799399741893015557218037006959335216077394859156527761420872341466376161039079735631132918700623303344890571739683006586039729066865261356881701713597732755910495523938236219087475246659646647008801376710644898493931562389228774791482820887754812209805558238296335144507306819637346659614592543546944020854450830875944961593845329091602521616273270997678260641972937216018408873905725971508443694094330695586598164120788197027289521967613334826754132719069524326330055053555578874873985988776669465386989847214752882426148680694738715664886246739341841578511769040537062506879676390886294981740951980191995684610547810447992257894051484655173161410707375990069653719327599541993649652201212352933122582880175524376911156832255180459380420786030524634482292309772910729416904961296160836617534106685027579399551166089986447882954275950629591622568256151063702311124727467391657413004755362433102835244802202906840659247004893992155186443387385833091304193265950573086364961675868803973958594849119710618023442688058287658959592506395982062016031976186389672484333534063577678065360303540476616395781350350129033244561012950888573936755879626586162532532789054961978613375634914003823290435933779996606728406661703768576399410803569660570357844067106778966977106243518895842315027932349204731796909441039218445887011468671492842707341844434272578665299667853279756410686623333248287175120206044292240994343342532000002226052695593957070018379023307905031634780514884540833473119915463700461043016970956308964344131351012291078059100444341781180109435554625794745641159950643884067563905077830698220436683722610577451327988712746760026557427439585427460571607054732872071563108599964261429034032427320375478783437937095126005511856133501303723823616934674309103691156137160149380839775509993215829485292517948587240227456360415136916300527088094791483201180482317930363098139708752653487772793942299105219802630342626587192640550946670232818801835494253095901259932556459870757577236969233853697589776184733434833490636721676077905896145744007601365976028516503494231739649499873573983385942086049825722636120998708359184727804393899953457033930334215907849659156005886149726884721639866362209323525263857740828376378378181312568840100091700469578897079923496373088921823977749018155021673652593119609694383530725938394855712213963311242989575495573966460024840727104099189105615097200715617428561422667294061587640936825645863100203874432089113383983374407922625252086791586980126724397208398554069262039913945803741924383066347261260712943389441986742793361654177009134791060124788229255816299325794983681184722288231311326042970710918669484252159708307898309480807266190941655946243504279480636587599626299402218980992426018342397972826424307429293881811085825393031338008567192074662921833397090052006851463216789462290855677612416796766260149983819039796770479786414144508069376914711179563766408095124627527274476952149370533987385992184544023247622482707183863425797682469384867578031285462284582144430128239928240925421439740394616297178614496583572044447414530834026934895915250557454927415382175274884519949549483080445251146935539838609332617652588814618434439382011710588521711923622568808997499696465306052769959927000396935225150316950917397954475420989397495484652190550051700826683742134872221253322687494997438007493483623921071258207351488871039488358146168301860265581196200380941416976269247852369775565440675688148256738075332088968447914637335624325731843688679824916511749795317955557943835650498370319879401088398038248283797025382021244844597536823929025005860901578515952574076386189862903778683138407759963556480677223552411084836721958541302938481899334531852706388547485355804954051817026213292857176371566035815416448916502126253372190159634595040311841060567809783981481735428097794357688156014010073704018432072458376351291132031092741331873034607022156653076631536758753645726237806663705031277795137433473798361493765685845770573058144094354270323225442164307920252415652775538614107358449918311950414526816178057782521390025531168182654180177651925323748575005016621444183760930222063938820985217748285724553633056107289387897870224918957574170768834044316143600436701645440405447937445564149577245438767144044285690940327674741929809309108983523287881361756841431514643085168104967958877941590709312013103443180166190599960656827343287138143911651575192465167262499595764539584922038681666911117562753461493212925899305103685389101293718386691500153628590061442823861180841231717216202580116056724318136901691768452188456136036646537048410051069519597329633122664242411755019701586873850776907105094181516336606762676844980098637658938714621296631352539032591191738145572227643728668781836734984966716787870654538126380408044714081578099896006078478539135775183727607126427998275820710351801972052218785017673831617289722051646024061935244837895595672329326023594196414077853185365695740305891471054760465722771881649230511141823523413843008569682928409441098591395679969807280541483189757349968211358314280629986563784042827319460142728239536761910755647101708829091812017326159394565636459427757688024466543939369323761380364253177359780730406832730752394525399151083728842608170149663471645521748247630865137131677725415599515086210832914361786755239453078694877918967191075188669246861605786327403238666846138856266006693021005285999798375060496327183502896772155133386708512094450119559864529699784532402202814341717960469932082644295761398446744582340297426922532240713132456576350936025385885232139061299905158540790460622642437099121322304288563951742013107673080089561403046730344051336015740871327047889691207482530638061290063990057133185250768736054147635991830674713971985463270918201385785761374922191330324716628246736071365490809128180222614938642965350324977837661384425326736595542635982035820762956035130207823706413742726874611055041243308312276905524893355994413081392968071512116091507255127860253611875629500701097171934838567172268823490164654429576255321010974293687267170860308042023252625424516334274717950978512375782482274679949525237995780051631255074325325518019981618870655454846401541445204695446019953444969955029143891694393736176668995167109496771681223648432414291128816213219840725574646922926047659356616857656904386813055207818686106871508064054917014506994919883305395236215551198987187186126489341016553805832649955420827052808261790124904459400317716957033184201388635618640828906663234299251560448878965314233644966031005152572549166672796022141733586710082616766582995828859924565989314873713286269265101012972624773888764414326284193866671212947484120380413589199766808462878991478149164052389645231054280581736601237693859233746836217410014117306783390669857066928597122387275263833813661895340395905692516293101887271412190207902044703785449244821283138197931417490378062331313430352241740627960670097730245036155500496257437383132183483133625674394641578120076528932591755138591867031976399384054788996351153385961380594668644083679952861562540703345325591219791803483209763233445590156301350543153333038394422385529877609644693671394506317255094371752951677597192138803963471589587635280108178258831111054381732281286411472578836963109885951105856277765019386622603582822911491942289873138679335627964129611013874598900006720735701920963448590460384415968407318034270837136883615325847389841884994994295415565451978267103553082090306866692774217907266961595419646221537079548104454361006171973355335418023503958833360321929288756559814995845462997203744234551256260148420342983773140790390292428531459021185823667653918021113136061096220021255822525220684246338848129333714212829539523968458703429236759194235334234072188854581477571964053172142283335821552559506532526268410006892996813521256681460655830361939056567558156644066825636614180943971566184954558767276857581988096315005090890595328301272206016849967502208710227762704490007850768021999148286337851289678423884738013069676793653108330813479742018898635061167549894978214662798295968301824386312763254460737559304345351625669241690375127660933607928585750323610508905233303135545145011108956995026938599775476269866403301680085933969111591983929915917639343496476213599374431090750489505316467049510925627377276056631128276766806512975715850369429651513573123867053062329439943550195691036088765017096285800202862989448931873845381188233698260628890984888552993023549641259432332526133061692885860881244980027515923186133135210039993393434035368435376536615817413919672864148452114683827792687952591657978060183427331238530982505986232865744261682264546966337197315142416861818630021178836754102040711774091903681044527248279956617508892214755363971233954234661857700463262913401403409447543756338979857335145447923087400839922712550287378882226830728196552646470330338739154761758992768846853092593998820056907198293227321295224404463407442886179572830029226765471190475499059752092049554872134633697665899042853091937051044042342898035658673804557655705894579719859784867690786667190737797148537922159316375737595849995969937068229538773066012756702559452735225240178099135038480429232160770571467021040888448047263399444465317124104652735797372316378846798549752754235119317893095903226617890435182304360548826829242768490515471685485805076539765999660604211208055294311493423002814797193679921476387158767436425905040811676860902552753968965215754332607715958909065680644045084975400453329637607737625955208274381192103761986233051528899123860527785028136317374952671952422989814579918986478970610683138187754206816355482985612060622589696860777087509934316707150645027508528721357541387698400893444757408383151718664515572224330658308566561510975532913376066723282279545681505076057351800009620918464034760486356701303935221177248742512078247975283538899949365251445998953982088255996329256867263491692826867402760858181703777031341032107987178141951947542732002170778803721096628877450395558646537685287647323704491358547562946000906933813028114106335708151536198616829248572195041332081152740318944286291858284386331095854495189894888416101998874775284303447737810472717443160657691042693267052525758195973485747552228014434265100856377174822797315469789240530021880512522464184842003392679639728997819838562588960708962285239264566075320242692761484548781579773683206956347071644646261043418304644833656157171434048523550556292658149818349169040904350372694678461876816291932940097749206997592342689416316500931392465661737162090283748756472979615044989718412974251431406337974968495389915797620652803365866170232476969437233299769305916121194701414562783052855416070002348751995357477236586554446411201898718972692675666454236365799854753718001448926720045684970454638129522033175122456186596063372169148596506298501934496232714908286314159063457657063478024168131950005521281301277694334551440341027261670303638099402569606200281938864593283238334481286059484671084364269192540001321588852218039024472407641773529123788070217984770301585479265989881025724206479945710160758791654101083482619235303616057161296118188115762067235719299017387198155627585903950441454716352310221227122995984751334616739910723921378604885792501585509023539484682292291786085022440660699441860742206195824865363014048514226890096869387474668493810968087661003424800518778371879987478771163412163634975592748605418416152565085494262043885200839925207593953882827315069069469008347077708468869968473249952463823796274164767576733650666304135118417734380970896498840610384664857787252399204320379036267814778697598416372220075805883155885920955956388865656924407838230597265024155772157317331386310077415000370132005081814184725134979639720672428843649496192325258273908628066355366736071625071970745348874756519136739087434341879172774421197300325206604287939216362488203530850038907107486712803316273639985883131993615756571073839529351554482877088890738062657404048707227827588273309608033931184614911554277680508861961520346149175382775152919344388610682105715556142464063851611386309344856210943688737238388582342528566537097932209993470540459125107514619030046870253752448278857935998399805644231460737181301177254862574945940882451702963327122159876600619251875472322971010258706734959224487597030455156501008065852598856820728564746942132718585619690259706565036622519933842281735092270476650546166107433171389117428675129585454324277689583159160008973001324127860369500337117476246027742088601573129219706722729613380183415338689595736113396437254946163838275516590723921639605351948524181408115002932838295236606313356847865577329270500055142578284640346097902497240292685092162538088223329822427809776768754933594733603881268536529854028991523405228633556148608697490669479932614336441227583423739911411242036329850005439289442604717903634967256278096529006323259340183887337019589505734748427194411258276107708467300672232466019684537657179396540328372315493460259196369004237387315943558201692812326754604611394468449740580649414878084856312633102366634214376465923842206695465114080577750956460889999432477110792550842340003526969652074507659878491563091806339291439108125280536723387417136973238357905507558921333396267054047390803536858114291441444090006279561140995658923753901659826887652514398445952692111688491484597222370849138873713767091945817796299008843732942641745517714943489049794964719913270379529412987156408519533951922043326052951313479822489903971627441032197025373269473976468395110385732613380945396862920478978425512475410097375384401273258259580673725028041000830055247773118474922987642839354783975429203175768510905201015143384003965455695775554935688375608375553412264150833150630277467901397076503757178907251149159399529603236022933849712915751635978342267572471112803736415174335966526819312049081621443718165458321169061892577738508936107680621641479282541434006781648170528129668214137856504229943506685453424266946745997902851315538654224692722117015571842781911257708781150051563031359022912695484810262175124157795155953863583156994558283170867036648309530628677972811611232110839189829293358949616459867030196358526530976592636853013310150742729748928418670421605064628177527666728763735714335118417500672103418655440744778940629848601103944265923150417980305258141734921782880276549209926136253915505555678730646828566848573429745465686993692282049911291831211049255769213731314602349071042677949644822292133081369943088898620370177429666694702511179354583865152576459483371386105273965180581296203929587479861600173793473456993040956614660546689911439728594376501853079045501532817021216654345354690135704761707812482391949594183226144720419553704323855420878646485149436191149249554162764815232931681471618216123510755746476561978449463210762332842733139452260996469886685732757907077421074733567086960370095259818244844920804534833695217438540908567036712858759713040616477437141594701964574295937714958621863429475168532379752521315795256109946120010844695356838102721922208128953531684230319260171418018684861602035749337815234278765742248967150185970784561695152583980508580057709053095990416230745907355621067873421797333387770832888964668166561755348827041708788923738308934141727017445904900500928262540988631340574771524737187701466463430593077116470020156877325106684115171764908866510812870377571147069644264820851776895719148195653471687895990214026750596861445948749812218992026932747574318903587480288503413323481179001892087925789077964639281543211195726970247591116297943540200526510019115845981905069285889995120739510996004570822528873605350990702090743348324024763321074102156582025439640971010688982945929251130373004188186167908073525432134666772546919439051364867644283564596372014294466487138828063606699347742498802319776390914014356578607409161635857532005976166150049598000200120579009054140234256977270244003138532117690662449655312878986583495370156280836153592612659090067650164786184862950777313242596927442490759853106294368980901483086082872213501619913889672477491993728922784732066561947142530840763818231018812607548539630865140207403330449783355978803483435292392223895521216230912460163570046037373702388247839928603140533026849626451284267958179538210683105790489335471623859092991368012160741426350586394497178990119032556814398653329271367039227903734573077518127208101338376468979565099368763173867740986031228276167873886728318485501198897899224479784088227318596230287269816968765334250628637964923561394354431199050585281129549801991623898084239290983486928439782493204566335133171430697046502242841798435867101201722204566531416382490587950770826165836799684341549050550101695067511216658752492755117384125469864345237269870443903280705292479351798231080705566454242413347768868931752091832427177804829632420099009980649659912038866480057761128201588381926644919563610023384206545107582033218905638712310093794693466775248296767262149295775978977167750254760910856275961253620915691085033759495080743481127047754111454050881900710265246373535647773112906166865919561599792218664076694369612049146163007547356380262704243351139364857248647744419310983443721236979900147484828987549931946942357788502618876123423448068539513693561939064860788925735010294048965743537304894474093955720581617067003469789327458554190252354175385640711564974137515570251385736174863894298498708654854135812825520715196616085391531674956358978983963943595368721784507069874100536510336390259826023277962271115162027696978061715151442612839503108822956904345427788650515229906731646724735074214378577266990656607347250867872090386023128779529579196609365760522613014782275584897960916015425026501929454341157613564898880757387918836197030990672124115006936395718825284285746311971783440209646558749973852835664282945293285339083630463405361127022861008618026752027444489159500074426601843833273097318320895690344227068581895720674838199522909523841000241680244356259540339021769352048782271256934735610432156467165298946032625406921879825455538398230810585320720081489990050219240104565986193725904583033148142872277805333711429746211857278326880184861983328877421531520372147498395485277150488241312162806919144106400607562789584202910222919093949761470684447912856486604587520092975030155485019721977244882352772700473413872590017423511426220192599335124674540106738341405804393623585480821611099653669233803480202151612759492024549604320262290564317778612222031673450518543721110887681398119656476735635801155830526294451955596599754031824770234908859084259495088878003374879673721649790467723284222543903398352580728266828395889525550292211614473366086166668533863563786189607774956909247519753952134040573065372213279751639491278459282485586863745146688747668270029700169877077918540480487455795389051541765953077921792872529820720565706381995020807079776330733427181278619471972960350373806144500496512948896149286622297886791766341725749046512935197555093365624392093671485345372214531055223236685909841146032700622349996340255168721573339931448147146254316863686542710538409641241843875079129477865897299581507024035728929520015629449081749828319284289024386545301663272342851469913841917190012344389099613749520402223237438983342396707210329667812291262998722593774177709440933578988361646834036367310224723691528976266053691180997084582865910970355684546603092600741884057388689388714078756455466629960869502366984070721007582177536674306282374797431260415772747505419199738135206489822287896338312025936262329714474170281025635235399168527355850859690361328921197793964046688014630432985358167079463245055711303852621694009273858002911090954688946536598123865365250486466730379131502515466221674263335471194596731065978847249627175301421508017800567315712797379777052024298783378194986770622667118057647916296874488192108729216694614441738406340534675172268456398994351386505425292011386400565763852844375709141176767013028993963731794385664297675933298492963257826986989380890867841150401930312930040408450475782723316013879138828478396091320818218804608735100254662125044069386716206741687981852891991631361332944440078939291323562456760066185617140541782032877987395202146779359965234445860066700075649887902630718108114113270766867119083485628969397165114738998505704983691813927847201735157690318446365911532291586640481193022178925805056739479268539605346554094172808651769243336318612398988314039918642837374294520645443178815113326458887134429718761026292974503735666581695958431120035598510031560739383860977431626773755898333030742911652283982675024920773870967137520960430973328948182271389905902005424880775212297105479337653555954697135211387582139554052101971103057799803173058911219110896048902233831677036330188234052582492595996747234822423468642498040546027072096129218392999085552671186057776935225541115320597904812186139959009643966008547240979924823669716397738768033563400366805409049642490817503281049671864123381761585695505074122804882710692236494282687484255859483566851419743817152973862430864725220389138573584955335658451452168010698976869771376706012279184762355435375112359830979013591480870549044869868441730664419550210446744859111182132052553559812036586090466111340807250335044855716880807706908454775272733303636956783835835589079536894888457001708410061839258738177775936894027651293755494358602549368347273796296995014138201873951169775056390978914673776245232859816626429035503852024984062019775791905057832507756587465947711023822579498430875494618869542412868965049064848796288671005602395901392656154480169514694454867855577923278342112065145009062678791695716294957030723297802799641751470929692344076403143708174622610017610063985659397436837050776972558197255496824573182149931510491033044503956033289340133570379643341334090225297695650115384725440422181959029243899583076057271908934334395191632469977204295281325682872618209411757127563103689576841265087345762385224199136242905757508716231294192564106502113063892181248097545536455742757905217170224388550123685245296797424250266303235949521480198496432588568941658252584217324379016649107790979990778793484083323457229700745384566305296478947326973110616556078279755008171402434303018706271933506693524919775018413147040796765685283584456642968408786866414113252585890446482087710250157186997423838321750292783564239773448757500064783490667510388225918722495574561673786138178785409650268898319729378501309601224924941907766573102389531895716606390845717875893527750861366301355185028816513737120780784817961646866896125183550968324637912103909724729735157064833246115301044930145611343158435115321447356538964368774445820368005935919256873326825659958181205691736404099212035097410001725947478557242261371128045736560526292458846300451615399560261542817504631204439554595609232731245950852382755427183327761031677484607138888656486645514054159920244296369944656222980827134213711372054194771775559240550945995519396698233614354558732533578761630517867449838927350744360987503222547569126413560430324716193737727917494970587639134019181694174600320121191298741015536393260985395806593492401928110427834141047189252985913378989905957132816570964987594902577169041982796239190748846632261658952870850095637123834440530811153353981480564732200943031222943618554019622521436513166659166826077938227491113337514602875868783942307368329043969210407426136992739652432071944553920147496464463608092619789668579068361012198389845460392075822917783659965785189512219724946133926230391499508315230373441097747821380401968635584233631837496683341683130063315109723307367494923350515370391757153098548934769630747634992632000734751920990362761763619998510491015658394381308833666203601432231662487612614904606928302259029824012418722786147598086147228310635114529345477140311046341959554455774348183175621966060176209844727729195748312333933916470474205551512707498892203493862585491814875678355244709806509145794964530676019229837425245761905545555544502475885592716722575532653356245468757298571536504816515867985439431371533412143861359762405227367206341916473102234253069777253483456575449730620854752238717171388412208341256800311448253894642305266486105159831576463979065457219910706171733844186815249010541843771773892180652439731992348772234266727288695800777398669143977757514636392513745633871388141718152945586388433386578270044880241830614840820236686875692338153932114085887158563740939495152449089513117527463900222792094251806397139358641463098572663839445144955927002970868570575218248294440652590236140754763795827278626763900106661774627177611084315433167901250309121914045626638281900539195118898754548645497774468043164385095764465501306600440636966161803603928756095227666960722092572608748674427704541195704253286553901578047113728577611421321871859531825499305393432786113576444569170685190209927884596200944926219607623619646706222253381298642754105126677777107234800649394799305166402911175682782713140337483076519092827151928561051680416477547481612906790212341263843343027967495038835863148950355770029971557912331770280737030425048165934827935107990225998704497432702256497068726722767142715209799279874899888113582332669565329027536680935156315597080743035688074851621276501992444181628627138555049911919269322989079928795004278253305945065454524298851983018968255822523702381918661141030043805399009052528254054143558828142757032594244325129198550751263869530962552952674662203250890680066415041863041031772138908309651247006784627745235025640714639269811490418126359274216199425015028771425206432422565567372023188809728736498259695733166644739398951093363334809389080448722193130700550659440657899845507486816613180755775385306869227661430194548083562519889555933406645544465943344329161619894704688412389214361693079018842294775897484195558021562636028869630913789898444569974367000973277752891076782919968664849954233747073682502036176945968693908708722991926975424790175375235162856762157349665295582231059799212057174544746452154744186903681957342309843737350186584998351008055519105761326512296805490977129443186747721433350941578975593859870403300785459591096243652322228597456344786141604531250625623595554831194711947582463729686604573692073603053600719991778114660272590072841287428792499149455593936732922564319628340450409086345373978715163338443222791846850066346801147748088185291124132346699433500000246214185699273569981885271729656462605403687105836565738367904896132241256173282737113714205469479534301858627743174518608324521599211920354411566705749980373496288757466821955203991491491605001414991504933983746141047066159302917024823510443414490886391259963602558983142359233589928515911438316324656681077221134330315049403418537253845290006100737423845147828147105581948091076777439349522005744628233917333950985698583709688101083168056225635717722210545289808338021953169473857185748715285008201379926471475671328778101099015713991893725832790024997256932711933049731253821195869721554505242744814604345674403966842308594395673376389029418346327189120363370607031117667671676382184700854662035877250667279713760805117310439751013651197367398519453973468956946010564628374231815306157410346157473060686275555039794146787487301380668393170356374070755593367036218533107132660646079982700185941362070725753850019380930776574424580628754479864248937413425859049911677228383585194027035756213789603846235623805769992043231385658842141826343728589398080936170720295584415372666390368866469272795284709828765611608674117730573317640004578538284951670511563284250591902006540213758213371136702598239800349980179410390628359116337325450204907954888404581510784378980484520105853627242382840535439986920263610634737086569540690642069173847757222200895365481754795761236723287375253937470781810395162852142844208750567551970138424385131804130254107914077272264147984306189727392646340653707761140766335332296809868874549830843868267468908102086850643550516170154521376749478715949284366775967535057702212242651781734121369890604291558514697449352755666472201204241652292816576876884689314658924697296297021472717315078714510863784724077852227542257152906413381238256805396397227324055148005504089516354019027243156659747974275445253927524151156721843663614697123510011834779190765409832917981803404544115282113865627124455753960683943835032749748501097368998601350741108144555282509025131329841975929431316436084217876619251921671644152918461047888327058686311635203065483356606827002707131169723308040758983751139970522378371990622410162427787326597064774837264968246105445107043677262229044389620676844354342763841239101729136521042762441983501743279873853474343105904708845831328005428028996535848458354073595196726982903006030469647111619537511453994043732468954759450261949284220526490196533460257940127061009080841157848773090937684648164789785889242208342757641308877278423900403586897708950570409141650942516473203476505136841973860035384797356557162854716509554413457207953610073220161262885121126232679463349266147013216550466115905919680867633263629023603303182169557060287451971488418494756341917758423227756155806220575149442296240863911332617884161915907457267700334068184098982477425921608713822067770702544421923410814539051043052358516764215648300551296691291777664617474978920193535504218948359858310991601901364673879562018012238381408678909032277791291111706482198683116242557376366376916249449474054625565186739331828462529036050386487904574453958254756115324966616205891951247626833442189705231640112814654145185071665230635091084621857110062582445438795470738325269100234182380733056279871062243383702162682758785167070531762726378241909934776369001393509923450545724844451384484322951835355572490435448741436772034582126474476193536886490258118194325047218646413934572154252425865959277573237960272728920093883006832633261713756606110527577455205365226208809200097192740673074594451213919768139009857468384566149098050429728711199469346487113882659898507039536732149891099859944930966892518672479724797372458381168343303379215921106014432316720669824460696360891498881681338518405194810338901735313905330123662902572362216360463328983248198098456531822106941664468284608908821164240101978143813483672462875444051762917504388832749346550516596206047651163082699683625701434285931680478095883130282474191768523332339574636543136978750748970814822374116302328436387944543655461671055632296068931423968207598986766409313234672337673041869560259084497796828886918401650432163542759631569751959541729527675416391236907994937985687594155500900035607488081879396484211530631142250324129475499681755902122217587167265309551416070467313857406100199447526123311845405729346188672966234612343082722212495154863207722203498925254775606402405368015504985790103801759725082209691043966324931053939838543762196840420128852561554955210238011866174392029558934707446968378275618039970797708383870726210445566347918711555477597652924766925030199887322700472781358162086223698210897831701522231466895324173227458719555009063957852696495845314624027107693754809593178567717000290696946006094571039782144184194354808739769428541778459614646999094461021182706762905582867312238189184454411308153777237442274571606131033289230176043957721339787976587171999314731122168199276853374539282400913206609304483589865434620712361901183429928836551048357055919478746961913756485592831291316730285437763090970424555520737785181050027222949893794944888653804894867841547079664175666857581091433092344293875326588382714425674918118217806081549094315184039184464882170888414929817937540732206196854523027413903117921200149399766885181659925557420746483771697346930646477413056780942614313577006876788898634867945998115858283387579396741084556827330076800908443064308657404765900526161658978719363923942475916657533091800649641500732977889702494766565754035730163018883476072604118575168541045802773895152222930375223094093856630204414350302474370419497914553884277268266579513294767507017679777610723517312879035339162685007887693773155552601822977621134520756008478473973118053028080293168146776410129186968540781588429081165667521272903698507385474168931738750070428815813040686752840189701743962777541329055712514382326555403376994405698820990838558118782138008525553320468568399566561413443427895511831146607970685285453588963703239438785523020706470889916056478844101616075842657210311104280917724753523686238103651166868276114014913102128269788255575686272956108937684145777143360203993684421729690861367266459088201884664692751904987283848908940476558073008131743194167507735656497655055186353169587479208801244330765502464351054026104522184120669716885928160499570001003141059512524518866326810131774348975407153646345846009781104257385910429185695143899800806533210742786815283613780180410131841611314708888736230659885298320265042538982367472487959635942304380061401233901677092349551779842678015064419548848603912972311149170863452514808011725741450696717716780711904939045634459888027702129904037592048461257902007535549228477473205690900654402611458168971951231889626468809304077229399445286968573864688750289124418786851746775270189840000157870757067628266047419435143485800708027781989602736815702546547968317996238831219596802426257739864507013667954732068216832049990260095409791125696572104078112952631198057379625938656657839341449963820628258456877691066353887309367605908293907389573770523647368253549542040145446234000958001095427094538206050059820552734381986130330748495011435728345127471070831154085030283656810437419350365267931212322501187234957491419036876080316171350121963476095539528552292032632758764290905226293756548531975411216117282665244106821347880653119634252889607267603956664137667405066627143806988942905700755740230992678559302721942537867229366110277541494163642390307294655820415569649754159274213754761829706757938087793317550816947991044500123142788683142576217512148669771831439379818288088319669358660122061354475958221249912615401078558203218625455402582875248249126667324032654149835961241458181942164214774414006914062277185342820338240414747783261106437486677770251453061276758435777405168626556386733727097571876729094053279430189547119230113290582642269356940966267356930542466886229613092859747731197068983341176692962026213325079468187260820136583705542143685558380883695975874080225893967215565337278775764341263414607967055457375078564042697187381435953459447011116764240135347810855186017705857382971519882715199507366966498467603751764486403283549608199024957278643266134402722260555937313522583415922256570413108287026248875581085646398804756792638913045333163297959030094600976822131965888048869513383061282821221012810395180667355504504048713942122898075563823363185662039834287632548352648914340626031544592812896252122300859005227329637793529285362929117340171108273494345785656177704619602365102324022939910137494809466105848858855493335232965334210810126937228365814494415380839423212637594848017257725889805730138445322213686855455860093127211135882467000176646825962091107932903749381999378269151066920040146342272349112648632858680395485303354796286456051035746998424167549373729410795755643143079111244667321295659237928148107738290892567667850675223180713262824635078130737003182900129318150975024919723454115397319140138251137856835494583283889249493981435946935826837482217671115664774821663246296101148305479744094878104824086824671582964180833648348996502039683397966189636001114657296357252336503345703444344352947219802451449666862628014182898101569704448123443943837683386657556792322880302146653492280765154614778733023753051752789316109701420462346289056348033477510091293951333917148550785190967427626851547857095019364000313097655406366388719464850478902209727025044400306321598055793847824881979109317224334470604159337288174189762508566869885589398205461943190135694576646000054591395461194843526001132517396579545770929422611917602835636300420521239472130836538320197567635734242270768964000784953585830803584467166823726467357397061014032959914134084973501551271666795914402785349133170992951685419159647276370448609557778764341773450771621358278657420643218586344805197225286379002736473701703024774649886096122785569352920319624033569938762669002604534936874142662486136267954801177121689402822237384465388888877877168995124023895372457532829266522684991243444299382692855643790311023568374377804830249026547712775570761060042925426847831343991961834853072353384344696306133333815840215051205754922488850280653215332986714857571461764723687581151342933024708690746809374348923940876902735955722749405995559330441494049866852038702000227095031501416879225692588003638098440895762291964302657483896208204690207861165792689294128147890324179713530905451834755630270574675725844539334008152113133508580984905344092970624915755065756679408717770583955277709957551438303173142709829927530213580763208297276760894441763999082511640139256820012549314248120024766778420212635927660957890902297583536448363156247892082531248764687745577139335824831112348976243095446642804155549005986503917115780620390699598992300847205001338421645432917893665367018570202148940871409662909253456555224313815673789479213791465008366149497208778775873943436920286233841925521708148174719384042721717843852071958352622783052276640464941085269186089098573140768864834298485064372659293013363254168215029885800322808750097501636174437736355704270427299128174915513727911652354849404888932362458094889327412704220657231206774430390524128616199417151748844251301279400458140811104048087640597282281205425265578065511343001035658220600862539563406008003189787355853782026115843616140675265122079556423630136436590300767346272386996715199114069329654998810522091381125945645547604585097183031217680369002454381993348987019212708098964589025640363171802844879661664780525725027858592814334516074929319425568254830676078729659498444057242358010287824955756706033463593746244584645244245639321252183901283630205620606334860088631109944533975858780845089350442710143696022453848888904403817932233220009755032202546458879416834624876540779763147443001207231252422360200903124912836175194750966382416695747662735597235437887918386498271807385723645942230663241635112985324023740546639803080825541972822586969148253591397002160060382490711487975620066116246785130408711153039808268616957420139116988294727678902337082953483019820688845858390710959368145155483946745337015188504273664692680100168108364495924226017180205865627182738703780643706316104349151279499887392610906507966513440997946984783730537510926546836618582601363849151944334142546900759880551409908575542661510080372535472503961723556473178783043637798919286625768926683885989755467537937291717049905489742524299420897056512302400344587546100493250237366222667962015057584361819078061627614583066073289916053160644279247256597638371276521406023040781460405074534506799089361220345521155095577333823750827075034393979809006907136474350601679570749879684360337841653912846107259244380038736176204292836001121569096977467319603607819166628489822154334147725244577611240310442527503349575063884819164480148878243376497513689611654561736401624958700830737986451530726213043974523600149044869822345541183236307944602986829306803293936022347260122292932694845666023656892245343387390356675612216081673128974480545295240168323985476158254369006408976602151710962192024159238823650712513923212360584621227715223588730871520585376514201569349024718898168598837009382704642016594840065704019550878818516323689994424952465400164193531845281118179446346556366535524636267495977217843431515530998621889605921633366064424393927409477480265777446244843826739851634299866094188673473436560149846522281761269947556380876007258018897148273170757342747854066611668534902841787559175130091090840211651966391336425470220781466779547517600193522040649306724570599616982699139505598606289374340180499825522338602154770278015871727331241682062883804437645757517159013645132244006924697380524323028431028729617673510452620357108744450100217410342308554969537946912566156502212974326087465816710096341008724997255244555839254936022194172387529007710247929567747034431696847318745572128387581143762380833783389807277003070339737482927805130513166491209116421496380046483110292340821484981447221306694290962677679726930970518173578479391788934214498250635035638451373191129720131006869876683511707468368026524247797641880470295059494587657425038153650648506439292134028648865605246731085423655047950571825013416103335864562541830633492070248316338205623831476816740355897073958382801904952478453719051757702191510935776863894612576230660484012024959461878640221881068567034236215352401873383605051033949183904644433736965702678264434071835520531685414028451625783637242795285370774310811218071413773235238025277713648817537509761295945195887725062219566532457554039436259896597269463238247640119210595788210647943082538182101699576372468807924102693402179567951408031904903016948160525457022012772242682954265081364275086972143415876424136297291572483197080108343229913060803071307182048587660361336804810103671405349130045909353427571932280879004837518736744706129902608046255525095847474880533694265419291782392015409248858386774890411921517651366573493624041113156629534798691957417361038626050371441004171577394632600468095284062807673046816237618842948818098261411798854154893371662398987965328822141800479039928468534209143366455573546210294953301792909563155950307105999800084880746984679085955462872835080427351446117467103285107557784057637372055909263363399023624341747557399488619209725352533670198404416895258656744428639080842065110905610351824559694691678424926516742609199372115771941410534807418019087185010685876018896132691583272460539302947904112567231962230322831559679570082710145981435875126927967936667204044450679714474077233418059545996536701422767217701363417507930799261086867539174913287889909800858615167572452967002067499335732521860735832876088084245295802571253216656038789878639400897584249270283417774854305774879467915044922124470793307720215805448342723034664670999071693840499746166278584442331249861561332188424891826229706188345286832681413012818009868980194866715723775540820382198206985864877949793761588242461583062742796218337635134818331684007190470780328249803229826602029164271049581594791004851405313335872905259878149982741516192002178968380860501084091535536022703082999980502587120704549276308269818597947710559620294711938816489430358482232693708386217113524608878318196873342099377312930185152357224572518259997294492700717875446198236283033057856994102387231950800910068968712130831109556468261536818023755356757195149083091000049528072072391617896518293053654705468222378616353966419605933033405072539267433182450400032473461581134597080623304396353121047371745605472928053439658536422473270100844010352640966798356195503743417111129167569626046176502704186027434329544140610387460485110701044863235934595344728412516527038978680189230158856380860314871135005825394502144673965018729128862804383914857526065512016301099572190637968093240932328954303889592600562165774237304100204458264239532581437067351144271542756538012411809298723385428540786023899057391099734439860964813064117976540288160710159963182521699720211643451911120823822882201902771226336262889037563127914505756935748301534852383464437724013683228170069610531423115160691807646750863396525455129383619999197848920693150547137292626622555618395841409467803329445299743322518713160665511438964654794246762895939829064365145716421342753438991018932491953803876631599873870720489855510190208405887460295356132739926235508880808478785106928362027600944841447564077532810357561137010790063516780889555374449906856135232309674821719198354141050114446828890198240605735539088802319056555844590102654391738668629141387348617407036289076234787315273132312767095581868791131340263860084016175677624115048268951857316952334225869417563066009457722001780672551463798114202228422294303964908125071072806311788245824166834320393263156925352205981658137215609098801145209440429668207236731851280321687376785651584842048126525354899463535973510169666142996670357108965080343265734274548836874549032500370974526082916090222977574888888477268032236233231110342715049624991187208640258643861124363798496526223978189951499942857033087626637377785303398819218960428011858829742663883730037724401360448088682246762866416838168604252830220002314062941834497969173538710794623652792776719000828343739922597521088592158572370950442562985675728135076776687308404780841049136334360611998952707774963449803410412839491620359089200102202661845041791411677593643189746178177713443262796919747460133399923609477400762999248231561787261535975232590539487924041033189351508595715400827761249415660924403866538871103747026843543030584362128105325838366978574086906962671146173088304953086172542381680168726847996123056397741097067326165681063833339758248803716453945974550475500089081294733043159592052911886302594851776865598819615990185221915275543065709343973537686242640931578799548345338049961437152054551808476970828571278048024362811068803983099912330928920614605054100311599355709583932783576790121895035876528171648854169880230432742274719990005809202118775457765351930525572971108095148022055663063338625379414336867973757999832300700412755015531998714548572291078472378807786239930735040835618786285825148978957241371297379416831375392672789086474879572505835454160529620005699270377364204184793891255797332951508706184255102878265327748902995840353497965605967274326970593348181168097436892101369554508591976503290240541862014864404626469067128680813550900091198995448749733394269865369642761652075347889169505347278527886400182906044331734954420343249083631329259851041716104057916477931028050794846400366827984870543944535215980600998202208362374623187781242107112028618458637207580276808766271205488930382004553622370946430899671659743553733513395446531985008423176718654317738194390078120030363493505897765226251367875646046281762892985506825516592239882903247218511891921901317968893780461901518022397711966994722884946230704951908164201482788125488526924449155482847312519295960864572275419644295978175583233816326398462483353502748863219668581517476105050487180643602240630893603041935467814420373503160321619563415536557602093077689848415773378719907863074629935436852629125120708883460259252055722682087720568664533586380664855860189273984441575841104045277767522696401102269059688060161295681563288811885893150194129251808974809925012621599925509788853130732289141502887392731951267061300505182062267422245079929438191410177855311681751061456040797553234112478107117195706907757016430018022940902866505683441338691647166494254284774087897887781050265791251516516921264407393491744910673401371598026738825689363467624128077224836267602994884602431311894057685433968421305279814852594580522436597665485563180881775606938080699064317909217031890595857929875147712884255583754986881921570498275203275860950990585071513204992389697094788435830153431133344343510222221803745651997512016118305331675640758812923245129189917886752546493096501829304657836329847474560495081138614968144297318128054864470964615328979357467568031548793739455663522349950362391943958344203622887936929424708223460745417879353040552585435502406536706025533497103412892015814590981172788279139728398029998385932952004635288311229337526010272211407525482879106986947862148509699305812180294197990594871339497187287866357571626033632685783194304744130100010607353954454155557600048224987879268098059602345789121823310613477169473876213374516934845438220241785687677485995392623926988773242425882774990251406709745162880626869816388275947368772737979920255939997766441972251200037192989036673673761141510198168643791849245614121831017377971040294377299987441703634296905010459841513428561508987960117263415019847791733345303010777172031712711112042076529369806481772292659409114624491817210218062176922297205834548460679481711049828883516633346777834166495293529818867583346830775442386695434507139254585387314856231913126478513921631450437714845131929137289114940006262745343492978711916352015568327521272553136168505007768374610751838198214040345476310527811630909494027504216186338722359756471821900507801721429256319713674029304426416552096479877482764066020826065260241779877306533257474055238960976996255719517143559917439218205724404042814685470278077394941191915583794776632014196093026873413239512545559593447525608904924404337246055150462032772093352627471650909667491226589090358747537836351987241045855656734492961896900065838033689584040678861356011158834691099608660594650981680012149500476807016449119485846164768699116367880105803186749878997286423888594030460156325567094874078588504397373220107164098047630565096441836645752526467407831365989464806720372029211983119177865522492169006148926555704105668613869080077641218078630747450967074298943732214631133040938231817982758415704648452372735692219612320545230618330740503890887150633621190372026062339788934774331701867660123550173824012460906967129939281957846205266876529859479476116278481835198438751338143359500159786641142384251255158211615611395773809197037278445758671167917482445583839613024897364199310530343619375640759259319662921686225076192522829438698066964803046984900715616755035109233806251026895034031927200094186456603007832788724475422092842159667904947713107956973006785866527141362665689461130887503717756895543719055673069756416062757287523855707191291314131909793931870384401985584658324045400004188047453955128904691683036173424712419642241072109168302253242834074865317614274811335655891814711389386134782171461057077927546315150928904612692796700963289409677965348740774182557894590951781488799224453721933786271061587741841875551867340166938085210282328656149890832016790351918719196537699961444538502000251831146338259356115745626484097694807123480877678357282942079944503560547461590876225416945879752630396543814597352159566029806126568398633609586290454912781572555856926050414423894495726654433549312145701875942623745759120659395149573779553988662978895185378953516829911589338063565568116359560145362462717823508020019674804960739410919936361026607312464705321618374677746758047647545908220022514725416060002005495058238868705576289729532115605726999138486623005372805684542513367007681408684942379075200216122317427737543109939495579573320406895351645404216094129655978214872329256289970425779256328437364610656682179489440100158655957669281183461842712764161309887492305039644438160163242202439621255534009844077389585802576596677029788890290901485127453543897358056254248646640229831659148915541320708354084851736390060590917314764161054221521178244200085562179473768081843428799795184668451852785556385991320704980074385532130458985723523059405195133881726065963677181346050833189699926438734317348816008706412425347075198071445007892959982005951530016789996771427826791459429994912793417780289105528718398110693108003288732943449031140314613973819460244748989412953761688899966484708296912139159790405844753639786229912083709896284063348795106133187779322980122987586871675846539852433825042781654635170223550498808665594346591279564648694360347930166944786850842612984854853946628170567321111275362514823830268320215560407594072603651763882282051075242186410682801624246326056983174320704399959818084990555886633402058474222542468053162688663773288176315468570988306906694337280973758039277119567738412536049376380475465804478852503727049898243586763755375062521536506147847332498063698238908633009247954408037331310767312921102248092135094931309410984767521306028004990540033932307524266984360038866469886666292250858744806528672686709531906286561471259648498701194400545365739681946391557788209097185507417305926244858705027858668044965293030743692150523147466942551081964922936627780023077544444919092539022847080112187514763358194082932850370159353945536183113798091021431825454989487683740281669888193421635010080457204978572637595646723762342364016299623689791727091580931783974672722720486799258402991157997621581272758406930009042969426873585563949699780188162734676769035232381423443956698711003454028280519652717424758899910478730720432931887308989652231039978109029836169649266677045729069405697442575705146276738659735933782213628338158739489007360173761273841305154541674321709152949954018616679953173073375437782825996769110859958816764042118891443963319266872037086569462044173992203984923255107398426599138453334296751202094684616044050153690427722460822545918619098011329101214239836027781907618640392366014699676913901910770652617730535972457463193818969876889044547088007831364176090995294449693216775364681999107565597235662431834627961586988425267218773270987583825705149724293823841483374208735739817632099886558504313495616960952748976626871314145191689047323061705381849688309264955772541238812309436066011503255484522279962570966935773614730744529675013772056071494362933842149577307848017766311026337956185810417445048660165284496717437715883399344243801348723090098958660337109530923055101684953207494174825346336595915625796239893067325783237444325468348105874136734319814128756026759389626504749481867369967199031214038863485996986653592394485484094690249382216641949307736236833865142481434659692437389826143540169853102040443913019866562543184196206982698174758211453804436400564595773113968556825008781433569672794980605101053803513229134045612367062603396648877479509872550251807487305846931438258008502972282732486531316586024893401792945432860992341381128121756760676731298907553869087455683608127644389505964366711837924966346443851745853112921893028667794652519553619834618105129901203181350459217441475890366533967587943104152260776661099292954887090353329833852216997407639424286944737980841214502031905347757265142171981149230515741312484226862650559809463569832627463712931284125661963797646950546128827768679920658520306187245324535070794948974243392389469892925955058924722324104998041833331909988036735486679170581780392935793063862059245695452887210403237619013865858552947341038652472568152438443804862205981722778474957386832272990777857929675230103894660504233867534536813920053351499899369466641860611098896294184145328760475308170158012538673113766692536464997959430358181749385715666338956221406522367397044508184279865076346393275827612453201426889919773170707422801841826441979010283705917234738172628104246608766677703824909152100275033884426192808685036897018618620338069392410183340429929015036579749252662343404663104159905434259885055083586523049099381090261951408173429023343104901106749718084848713621866097892482305820674217537247389339902366538687141983818137118784971888960886716914695099440560664737959985098832514479319156415588188913036324742331611907927871291255827525757200336005936574845213455296828465709558641739325949240015661962950855285940038658116091961725542009857446629516860143385447730778973333346271270057685499154837681535176833971631746903054345956042254092780659469355597942987174432060542937478082283867019003601644609416563295679598748966730179002407274863157730597379918790632314170134618023255484341383824319000554882949293827934666035362592717716873434817994195988075759348668548393137682578900142533336087280445724631716415320204660783518883407100088709600363747604140922771241525572567546692551152864860728082766603196739717855892279379277103319887154778609186289109776829852412133628451616444919354960855677521610245013193686670788483730279387149783656108717536896722646335190936870614244484537193454170145867741014403980908024631323447350060864849968194477780508856571201524657144653181588590133904955264985467014195654836610746699317756242276288508564915940035029050418465336093709818990877468815452412091107424683896605533171762968704179173948166070124643421494256134361003422026340048045734853327691160933778494896523281707602819117181300640160114399221517035522833405393237268881264900604950582942798185190575501296471644424019546839426765959200177932951485473460325399890064879731428835995883559967411748783547362672026145491288712781382447618321190583094735292413526790705390263397787097178598360353916655328843250567738301908979851156376390817374857906549090896316058968249617956578257252324492263681295615088475301945011723704245300494454232973832618160114992985454707175678075241982545643634474566300838441183901792141960035644554370247547942186122321992781081510616347188433418895477218757053887868703967015563787282646862195462145976468854646277816702869180079350148545046029614760400581689901063001884315528452817298895189385549129666398994914040444560259396511509199588393102412156905557920314386038009726243470448533619711497594028224949442471100925485175436653350550402451749133920419831377807648565576322601278192481296154617205693527421661475299541027465526480957786470570355481829203222663442468128715049351054636244381829851740795039081603490419683097944348423829002764237239191955316865442633727943669792498258995431112221576980176767444397284520988430273842440373163390113684322630495721801157808478877415664757562652829710930245988595992784482813605501491894558790618992691690400629221505216486524909649811758323583495689120215834499393037693847616732979976120305259448184685089954362957653884900213742797656502599751358039210285057492861798233803682404869678390393736687496718129258038114114721545523157553578467455900322314918222918274941092563003266376233350252483473812428703019667193729379826907622831083072891968180599929589657662462651025601852032293151353212741368975235828305131134414544965118575398298637591883366510242968612137825510753646724250767238598418907017588287838378506976315175372539574647214553876652104610919688446184177250398001814329783990646132530502011828862203895742619727242986582210993274702371260584049239760648917898030050876376737610397351720300278903785379343575992936279802437785247546635549836936987704631333218058992095560985230692522958208850247703937646579218838458202031725763694802633092597497041272685591873360680816211798314896332339503168955345829622940657680546444592781183896028914924233715255076918703426296889588647495529373359220296661360858563669496083723087799204749745777218512552743845559230829196188458689602521597842856254021317121502628530405978790996177640742056544326383231165796287285871367273942456239678442393149226703523910520905364745884920447771226062706500481066207729773461607757726785002281060408492523051358257490625473795312315007985355256158073884265232976465613069556215988886530843590518868677365107754497250777071855034285021042051767638316289482202824023533531079240064726032864485521020585371300059421286445672387974425886201036567975280042030902639473183832212144971957958109176952631440985051888913418373573157251328632210226403178157576816088352890970459744326884677535926901209026135686220470475666393312096951794880027250671959306281800011569426015958092155177727255101119200142910614091160461794008940988851138878688593235230904758218877900668341607975487673292041507515007181375150328758559878468672028245057807646255771678855985513931051792097942032675287236370679004665380179857653532989239918948667030448910180996809138721377001765863372988907595014335752321223574933842751083790606096849558196085495296034671872086322755463801402528032001795212375665912240186772228348533259348185100738694151600820145425959068575853000477699897326657510885265388143718257063790999484793367327487739873081408440498761793237524485865721796615109974279048632437372695393651249779658750317374515269105168530868787185239340106356130659223630504540545182813068295070237236259503131698853554721571182696962846146191645933936840450509487217386071915808098303955368631547148876103984783061806373999112617684399749320015081648613741275004802495891167019513473716723341345795027826457191911740013622836390469962024725152821821985728876314175345896687674438774390073761152102175619906391785163978133557823810359873105120473311609663537133888885301083695657217078619298921100539210435614138441818707885224376752039834703795213858916181595215215344089184183589052864780105752405027214998197848401505105809829907735166948888292378748669904360313890370141464783417717758804157191031715035781581871239457726424854762795207165676687003489047495057071684791409396773689655901743534206653244351521777746807212966835848600160095630890538662169926619246761550039660344502362787033321847204244928816778663604727094340762345905740819598170229060986697424870418785473845417142202751927550573077292378912509919529796959169494822870474057753559213289259693050176909588572873641083355432753837249640485890236818616178906699339499624712681057828105596762311063795436425141986592091066139145311483323971667231971495456004454719855137818321005537777941453263079243293428543855688966898800717685278355072596144711713971775919154030033050539903817918185182020812115958690473197428117423178939332779692633249081241056926411147944991133233440051969844315477956283319349592977165161789476599945532179005974932927497181216101057888494956157988016343761220034140821317576708359887953708144373374545197199315044318086573902083563600389777239985800889562278607881720305070241132093746371933564445313380466593577526972796274960087597305767942541701206214848115461203994885178461255988026326671107251950837326299991910111643155775102389787197656348409633189009140167258403608545243681406630644573036992732909826034865426566325494729474816439828059441670674889533248364259806361286764569835824061948106318160647932190274600380694382728088383046878759908842268769599586701590288937996071829960117704653590787527315759037394427150335793000447932459522722616814235915928612104457512563631587585086372205578539105106486119908959693834496849574915065059646609678270367737214041326399566590060170281014147498029916675852814610885274150838515973738715387169604508860499833874508505242396330704640623654418166547828248869627003062077621467718020227337172202660679868486001858913357254656120138128976179179276973532011746694536282403995520831118234087980286413072378445697732562334447435794031819035189128617214742331723851178492188528462195552529603899891867587418445734916746661469814922002188917172693048240174246807250207330940829137362675173020753000991280605508002141864590322846806512251261125124553328506094716072148227856134528371442178662037779604676060009328583060955691482396612496565594123121150451679659130699344587271723658175107202975190239913788258079517912837134100320748846515709280870818981851520068649248903278583144012638355025322020077728978634416996408904321616652813159409366039933718203512868325101452951039018582961193410472516396034425699146227044359966507155366103094627104044875363661189913310873036444843279962062237283904207400986665620616229379652709340069069621266703441477158446589284752253834953810012660303118527663563605351848913320402774038025872703118038349249303003400918405243988424793826155048125506807327452243569248842927552250333883245040109290311319853549616890972758884976857108347368207128812509059949885798956677797474637952035343659856250620887869838786932474971337161938219319771487761569662734123056309351552157878901170317530677175129354998049394676489853884620721650369832056578883503562348318582428000533016317649096264271441051261280717422147259949651422219596306855221982712276131556421586288263208106428050873703165279886568755379442108948981870954375642322634428082829199825937703946754407726618708896052849078601052034132137080026396274949849408164651771481536695353681786298012881100598503004083797953327119651086606111486426071260814762358115372913028479110565202801209858964819012944483630885190771054307681661351487469538373871297060309260371588987023784243021646170909561878154117513934678720952619191586525770274988852010513453145475925966399268270869797032427653509254328616117350339688222244214119111397193441956180310094933910538965647707170751195825568460727800530011962917348805886568890278398712154863146856062854912929475204108856547870368187140442670818722956692438117755638438503124722794242793158286845460878459928689657200883375790508783502867517622313672176751142445215897801229692939473800169852523127636392269591834563685634409574450179677928622922816570449301929482129323695740818291275289906131844398191598351440452430866785705319184541332161302382325700067648134027982217088044124356117730000873718430799293021002690892034139028426444731159958757139302290295870307752753548134347977690667497991271665063254069025103509804666684401049389040881834783736241798891818389043979963433466128223720492220595843996092769332050762600746735807314356824246081834347519716919693395043300406632280075926979060733187219415056661193254954423957431334804879114618183590529099039504851541931516446913970148802088238288379955034452917167403891104793467219147931233693076495560926841061427825635983029723446789309494787125845833250384721936323074025878415466235524374230821704525107135644193333215541152553591311848351075504622206787376002320747071968805333964472169880405983942908187870149316700601742266563007138580682781603162179131076269473449628158339920877692527882740555672882575977727615030072104673493820718327243922525167469127322851814130700929349541138394901277888810167180299175941156236353058605909030827296438890019433669388223090175348222803483002908098132283971458401575284223625789865787745581091315132998114586912420791566992563017060166090059973552885416321110573101972967401509918660661343849595967749355677318348709377004770588779255806179777135726732704960964306335910634769716034504642158493578028525580187555984907306830814045351858273442446613351174720927724494160610059303849477242806552266040824087696411697032677490582729026820049897710167484556659663376781868915425403937856077839068221621397946736146883741791978444568082790979139909517591817991843070549494191728049442360174909376017938825709109433563229523444251567219062677986634264020658869562769328086250703729493830354611185802083598853007893879119770853855293670244266063748730428138796472995068495860198071423002896651416309066155119138963746022159988162440347692671859882582651445427044881625405576673731018517881527463995477839476965371639906619197124464262566276752632091277668466200800084586363311262018054530897995249344169454403375263923102884880861531534752058632481920791165498024535498777217328043105271758379123168238751156700897923673318004141900866872400459261015120469692126207503070228909756533063237573068213611195059062470390410538782960117971630993870863256221836880589615930664017426928179968949640784368587492512221423727411362278552166379440564895522947404148481118486053167443076653805379475994846535597741237562736896541391792122549245104029308852593119172649465037047234153132516287021007114463424708629759306661573913419195334626276357228797419657529594055340425277590873397166299622589812976966908393895399739715347370796537364837651231642152951230386417107502767158214172566280717377963570933834450948862374977313860130126635954576409793470519048710219414418018058282080104677268085456893659846144133819895740165711720525340492426051415780372692277677453959471509254491392326537801073350702026584824148916199538604101766073570326539655518113301390533226502104983880482156021354220292423850284041219678352805078785090599557415163194027683670664368021093207592421324520553237264412545187487151740263557431540626612938911029575872656570884539734508754817807166163604676348858704171244002098962939250653570787946731403096998266074102762515660924828716276181654603806727272908709999923849083102354642073854269082114058511288271318920619813856936557509058806869372377416028738054322803837846305754381000440059468383758055984010662998176404784841469296396139256204077448731350732235156144026817781643008559969490290341730595462764048925772493312944533787264733211572840344086726921822930507971052041001739410339896955954534348387473589455480276515191918054210745199462790841678173248547167997945645486055024920648352626796273560075923417203300941110788327105088665811302751227215867355217960251278705979192181227249571628828358089385702658725910969831576244582233799148222173345622920641990352295039064179243141721580185433612290150131465555654324901823097324774692445864088590289599016816175554084569029666729894324705928288999817561539147131776163028180374928309437730344808301361590645662845644543061179433096961002564630518832553111232910695412681484122897921662493097455489173821546193911528321933022150084887062463794299357944682973063174355979736840868790867909194768947696921946440954618541006997240998846306120901601214626563583870558590904196121066411083273859272151235426158836304708054738346883200277340978750010468288950858661569847224094592387330988944625289537390047548080806163385039984889068176359053445914593221491328373819835351563046571714978685724680459016393040647966048721024211558009998290981050486446542565356033054173654267511471899856818717907231220009145874409180623501728692659166914742028490066650776361323894246132789644943872721197283931706383898590541015486832960478389566955414811992110893424783837133733718931496111824464431152100589834263989652115620184672110988572233481207200234973851417710005691803151275878596775700184461226827454927339586684128648043854605090496945651555664403750899329883102153225058912503356738656356936697770195609401615230635917078364605455325585565274172530822094619945229634562259247910655788043264135228562265157905396283827117050118771609257181669104457028741381408281901518943150111449112200872950264938936911159654018928240190485096758056785849671289998017679355675755674482577190512647675967784089638793657649181378010740028449461231436698279531465129307466091196637625442290891851171117407844021664088799898679695282800988998315151623572580333093764465302924311171737385671494185116298844451080346523293734537869817864228066793416019145858588153966905816855070719073706109228998312738079049851811679507029397875735130567740244843832854768580877893053170242648097353547617042889942404840367881937867410377092066673683362865973242538101365305862855009724600361105795016492920328990666191163920481423417963791568629484134525788040634306033078127154115121100416019558630144728586220379307777793775663207630245084514747958656338976250406478254682290668316207170967501079344584686814514393165666063230815741895990392694116657775329871952984863145622883749654479831018786112954012543775672625556032915783681983712717267908088437423189298174284598668125847466253914070582138887535027647885062709250444070062488412411550899754557215840944908796815241959815115713731889141372745154638377574125307575374411435182900495515444080017300527517729243069730666226051064225977765262851863624357742277225698944620011639836734957293965017021875574533271461076685313406983472765526053973260417480938705774163586835778580530826766936763424425194971526694792531951229000270752444444539970633410558872086987561411275405911637199081919296377833121655601927927818449674782622224546184455857248106251332124534343310598991595144304753462391789359724960256506190698417044574294919938745779773754636992394343023776414065119719932381209306824048031249820276514698361322576379225206618515433132251399445813445051401369813379656974073477185968320374866401783079229251588074888679466233983499437481845802778616693698506418416786434772013927288986601644721388147486026453632949323864912273839515818628438458988101202859434236510223843947140244587579759209160930729963741961899934361513085292178086239563487201665100015718603730024500358271859848059445070130489724492835210759932967522491431933504798850454760972739955589018688934819711742240951100824575897837139225631119685646173843335134489595328966584802289212388300089182214317505036952703201181815520011860736894471227415323147405836165934190096689932733817563288293979167348817457541936693409351054191629889484018549985665488798217062507470421173708146550891014013939513715761955960499537740114503277198635460248048069321402831065980023617345891083272582535872030296138007979511464526748434060186313049207417274646041515241319940165437061083431659124461887816970584107763988425376625288888652218106094848719758633593429223382849814647096974484818424966763227468349644566861946881877019797227438151974412716176278004406676813882387089100359899738600830268605823913741448165749276351347108763097727087253161353089670166451063568378034638881470189597397311154581132580292560676176321001423744964752863365428000089710388692024107561573699871479582271031185257195629249573509674549135841471356013424653218035016804290253057346928079687829407946243777000068012465941722008167831361759414929664639777155915520828806743958493714514365145375215010443446035334100189777245682883709327114622752520480297143690210564966156669720160645873501801515879508172208798378297134099031598193333982563520429664552873060780674662385274988244731848497469110392521227385797494138483926780547620767621414463198185641731080009420524351554039311417107111774459154229397301597461198319295850256378176798272517921645462819845916727706090196617389016454609671663260218770642669698415501253756772914137517215498204513370589343138502069969388247989879516384193313980785750984040817407697950856547969289245904387798685333931452020222169406658178041929070962120227047776932563191014530829724173534849472244480215899120939767566211927979809563597521660690693565574328583563902668175815067092090545773598689409966566643859758195633995474478676171570070129424719747028688109275984721900670392793384084121111512783570044248161320019673634955251145976746055427751015035435560293080674920542715603662998731262797997508938105692013157537548082541364275005909557106655324608742462240861913802483212296512874459828327749521965135927516611405413553334422173314834720288061375373609441645936665691029997707503093616693332618852076719845591692979879318981617892257253389625757743471985676633456687206749175096605755348652176222186821063452878547247912146441169965231771729187794522789496156097205350221067605351894750587177818495116730749854701922938354143800830372434236187181466768210568630029694085045302472787537488493902738165067324642587428839091776743138732805003987611780464136907687543458265411051404666516427847513084513494197339958805684606791120569144542225200010993226921163372557824704605613963333744374675316514135389682052977717406593955510144783790701335219450594579442593054650240639551035939875837834111349547961722458481251545960446279838125773270875292028077745874119924275923883621322743530936320661325161049795387997885645875129392172349824923336341713043751976359417387287303724582332398119293375098242064101605906871273143746578035727217150077043507609926635028288805766340895645691020197179276954711153418864251697815837176935250330482432619524144550729033377057389914591030471580791535188929636034428331499589486106150942027332388402357286744401088085047031097566700116995695083498909738457320878657383610882468798811154439181628648830081404716208888669446797274422909124612590188098110757387852098439561486946391002959944572583820813717073139357008242873630030008105032449217427360121369583467328225049765405314527636627506482705572502550910501867562596628978204277887394358255366732774134995155802897101806512780056434863701791143387380198114489757675269236538969342315682160643304561040483872806236366905895632557402127713687509847404530833908032627047995296777455025567189472178954960578396349843695932556764388335752955945685395112915210485902809371341533138057569026212096094980275241195237991590334958072936366874001820452663345161015681103901436744589284917238389503965389449767262650454435796723823612627719975613634050660987396397354977642318311734361740346567868788358799647346325989812171632321393569532766433855530206125526964990610439692458622324010262288132683248341045065895342959847860300270219252711589313013480009239464512545051500947256254601549109510586535595775954983074909528420662122669963718174950179556114186330326439939817953879777550777055100617467722047670330596432660885070916842597090228684825609858120732060240822769858045730048637387119749394383016603610527490069804618574490941113167363163189880012061686907114097753579895409845181234810438916947028308111579144777943498631898360390810349927663997421008488206385874554379115441574537585713087263509679740435289879539526137363933455657702432628627622303431865691983475157018507099227866039777550356235012702413966133574735910242077020962029312962481380867585394680896114725914755920505182734980559805773627835980580685200392909865928343336412127337425106405047412498840254524544730723054253557684256548091478015685544110699165639714017328694604069262180285668019589494605999781537833575465200110988323538690294632232615934561706413065181361253145122748080592943603684231228251847332183883800688554597561838638093839365790065267834594312518170934646341426940054252740244248374786698787993366579770371621407006363177818942372497146462709916274845528715936706840460725211775541649916206962658629587096940608337354451130426008845795447801767271672272497711690453071424763890687261998628989098904313326444170558615911279160307060374220201071192640671595395615074514324397784691330928846112309004034219189291956344956075767261478869680697225208386472610416811770103010304396297106286505699503210267498897809629029658467200860409734685762483391141130657433534152147225362665118025485102350370499626995046238179666706567724793814561545394956009096881675535021074596704586614419621726645912380440371584376271998186688650777677370844498002250906335555673739021701061274318822233793329797830749988548678919905173638268621918280056185321933295500906913583010251721707201065250837510184914377723850049680168379670339572676029007424643406501627668481320652134069933306362210189980973923974883514689700352649888316500767263724703669404210419989491229233342303727431670788417666744097960204076029872125128247198735430253554526213772526806448186089796657557994825543613121298939554191943642494559685854261010063833019676360070990720363378677564969304304402526706841016793695069855850727469392369468000181665159422452581837971660322379616706453508580622250908437843801367761578880740477661538008575677849117572102164029712813589413350819113845068084713111436409697530982644508465961150385962164898863358391413217097549192949119475431887535727852631152799378303776081704457797068620795250387672994488899609730776630148626855256664609038396979469589975809865499654433586131023567102608824361008238607571231070117145972707416740634520149266075755615120202380297620300589452907291135266179226445393407348896152265700223482612510327331054561904690512301938319665950386014978193936815481663436040212240696201605330957997211912568299123411289002363343669882481208623207026287120391825960151353017952324614012928684919460196180026348194160738438548867382546922696548204179935458804909409220414242013702227967584268937871122080692092998877134673806768045126016172326344875397444595717741691539797001369299433169868459619535462541971236105684834028810313272336294624019327078892883632656716768680898273976250032739858947446793537009157567036654034708513621184936188225662663882606274975418329369566727328415976016864412910966133164680686060042939578193463439019932073918279042522876009452058690543867005531681969429384449126155498113230305371160999902271951603606202720664195325201248277853937618738542202824069775048174379752182502201661011702012896919489207197482187764811688888092058538592781182606014281388418452501343145248661195067813134083104608626227824470362864554572108315686588248471714644196400746341567998482833433153418797644258718028327424130384765483786045283703468074349800334003551978854343220208698866830335363832920440057413816846689304393720273778541363117421327493584083951669370774183565957887631323329815774852977550776719752480644501995122680754696978297456430489345784049698604464998546458007348393869372939948045505108541477626417481112686750411842477067456203867527257397834728756837714812885880588211469265601095261498950002802319137025864747727777801621933810944744886169276347940570694875608978245622420537251409778506090853192537221432400772259727769133518701433734667367771974922824741366202043041661882639929357005733566980299002422173510983890702550170515449775233017090367560728840004050943793633253123710000470660580248720243923849223002642844175001581839403083068895929976847791349560064159919593291408753235058402166791894460286703849048905847500309279370702853092360756938568937487757396140511846635896739811658479088688550377904950522206401793756120936981079893377719784863506711476525132706092465613353999564668249588685774160751782165804297680412226678009577556447818364758164959676031489607620312017571030899176267926796452558667111489796180373421232952670379884268855738349853958450889167382416567636642355761520564279147113317003062417845102322057566676742509200074735826700705935724398937678171334652654778330449297104626480517033272993249439800582422236131397150552719872311472073495420175160914554277888501293427795390679186546457094449141397910935278269060138074265511999923936003135284587862482433073920276083504925729017601059187012846520652577472252527971112458847078854417930918396356904836547606433204722900976741243537310536739469576127335912385077713925632174735542081934846579430332672995285262559994399824123802290886114116734288464308488800014622635057111060533382215391774775096762090514108374131056948271838532243515950045660840177678296132323988367492816597858362004930840638327456431135286230909507355888950415611591765295823952475189701556977853552134449468494931597354048928590779994596256777291616417605011449710293409932506489731168071485784390401781098378568085966522468457910440091235603005188885518447395904385854791763037361317701457907393838491366279017347469136315420307500862796181827615478125128763311053506137820018840403094586241720350379085500366886502806555923533066967621347749923621355043825385242228441782364805069136854062069095579235505416362844439477473507953530401756096677831242566179747171145209029159242813349705710218537871537494832824706917710232874248718081823349384828027896279131800482719758067982705477078076614305807709594597476511758746938303973047649665128905440013403150256278735224857323989213212839751668870110965505713535771595004840133924607563934827273920956160172104006977199176345143910182487844900912855356124155338922956051666065058587473797751834437255994262883661074186854469718009392302614521565044213408789750855148025585170791695740672822177994875369846221874728072469698691828949254560016606193990497552858131530287387673249697203301316589501616963533997963463788240924895548049899824111162686965712768863156799984752465677592945087085940390993484061387817435490655114483822618014303584877054044067624384951607629922977209151432153274839923156836642988497021684556313403623248474594792053973039649165987003636597295533854891163465433636991555514120747010823105753496066841922720615122234082998941592667660242434728045023753688357743214947414336293418060335871719011403350959676451508583330981173146087181954114184404951254115424993065243998156335920853278897771988979257141877012460533461886609018613144566634091018816417546226612092814646204273948247083211920305709535873980701699143070398259442872242775596233857412947811784184338661727819904692774352728303027252183248224964019378253247575013509880456326526373823244944659168475645700281304167182269097344583794144057604615007769032737387147935288781553046166584014431512482732631592239351567038132491736642302450091929401520540478126991330932151183603607031991663488485694698836272687625463607467773883179759316819864656347730983826422330777026286776206506108661751415238223998768610074968977316123602982521309130351146581451291714304771889597216824496906530742526732546678501996578662880743373317338284123349387503457351070156181795125425992845398699392020356197738075253410185899950815706933355247543737422560371487226276661928144339941834230062149526038617564419813024772054021239702812371189558283160764693595304446055381317054543823722880055079287319625599176845186657275256289338450100932227034184997085114358351877174605488801738037927416331081882777190365791217389340863401616575330429446330234250651924064124144810201192927089026937494198343054731545697401448905784919147703696819007492748791316091929321755144175961169148526543367923954589334503631554628138064754779668030697997696345775577869443694691853580928173121786769688816985160460173407453238360545990319473245966883576728617810881148668770468865852707167070900341113938097343717229943177864166892090877096351347558532889256026614101739563331742392084290789544270567111756456121174807965361131282027839466555426625103690428772001271328474861567008037146699271404207640187937774884919270358386011416797146491775189464642646448977687562394021919451678989332880852014418893934150321711478051128405692116700251045576794130497886749710089619037821250051435570438113348815940319061208103113709957640775128477609490589666231546592462211563305999551548109063847587153426771233554942007153713656292128531980837593626178552883483988708870664478363044670232835843048791258646933447920738560306644747226694619241442911600507941284385551055304529258824818563258388836830488220573247536117282333416639792494759612308185476793642576047066715670057220156247637573458711385576493203110385867391809285207068174775663646320658822450583729991740916282161091077345586887152987886393016724570245204157587508151343914989090208262073385067176468380093823159682683872088515070837328353729023754401088770073086420311130317343110193011872678752771663454205883004572797454878557293805933135561682838115228972103105105492353919907205123477307333530472754239907007561584321909756418908781272450093083663534100598063538985948034004179919284706100197997264916022735717888989608407159964177077160897268350728037534088810695946030666776564222105150917818991041107727581751748874720106134614713503664486892539715619721421759647098266153430105880270656693400383010270263144523123462988795091699443666002306119736974949251081159990499413305939853813501177797894210924569590744888555045891379513998033234286514714530608185312818689098068222743614271321305387586018372844070037102376567339192848829130129943686944035256247742993748857216996080063820559861851106024024533256443105170187438514153845783574170929145011801253315319856365790807863968557617227653450796004618195723458741030471385247982094311236581129508127751008566696699482273311731593899514551092026932355154194834054469176001750997803257338740701655968772262888701172770731542423579194717639463910229700177357955799059225546009870967995500251434319045322979442513700639827226261322466566002758755157908346112939407488775948640643016343395742323801204225054480442637265588363870129133916038739154292507932853158056430919956903035352044048194833624997318932684592165817986659383968637689078709039542886025455523463999010729706866531194981363899990562005756672406651309906343280397388420509802741729730589149600793825304119056183963373087039624025181296275646824249754789181145046623582422157389715027040392141383700978582650469068282092219341888855698684629564122448241073513187171966506919563189982440027317956132086005028575230395291764003748221285482994741213271636067471377794312087864948827991725880898347092106317333609716110913042833460362019546581743960847563827746807953442933681701894105792209165079968845001547812304867816935498467579340171790182804639022886233942404489999022343678068443239626697930604643759228011472785120474964736051592974517232816777277087437711161310459613770448878387565802317787253287255906055687146009255862242735703062775748528458201976873976224371849675680570439332619730347347697807676300058228496867960085011386493763766077562736337864850523789383446904764776522175917264630962552742101972663261838693399267116114617125796264583995880637244243676188012458648114635745209728827684355881026607603384310756033129932737694698339236652593955802172887258445994831835018362952641523363644674854797695859884621981552552337424039772102026156236431425223946410898069784521473423403114993999497784882727100436345106495652982461315815173955013417463744930196364025132108547806038241969870674286226084449397982991683194423585493520893301581673385510680962180446255588755507268753127480233155351764519652013714594394555156942443320948061611894829832915420689940534723551008236963494409616667994769935025491404109533434496958016787424453943042343938946188237524256348253432305907229282841736512576152924612020032485035345098136287108377403871522357944801415896764770232265135253395775016040450147117817963163728634365838594234878505898649030248898191328682448093471405180605213464863326000354371133321528030686154688196156789924330832199474046671265166949951346792468071275701900869250069134547938649488665306634007580067123113577413514867923583910470783055963192767727535893442349150562740901359279848392809897776583505215409556687098964102057531903405682754877589262078905533031889142115977852808934915644085224269171818882124459669184138561250835305156226044936343140045248802448290208425576171577734552479881181432130649878899270500883849031994297958981133867413890807226982755707175277094197778901135112952268929306813420809951182097683710323422246179401022933387824075091713949099199248916415467732164254661977061803879784161998758792505752274906049743092891675212082700009532467014445649854563132484517637269873281149375638193764629805882459005362341163135563912200363197272494621474704775805223455641040180592931382368582820869711185962927888882865960908584995574448788060404285945804317256084529499842567461154676924894123738508444384595309180093034959844751497507560339619332318603547744932208575044469966835693009862598118996372275650460268002189603388332051984415433943949204433246945005380321769328810890713909498241992476026542790763682514611993575726507395121333383732554025796445455313691604866051846748060539136841952902863651564305789689634510463915724250655875662861547250708510770152926096388261717475908955851527997457230441944645513493918723182472678463940587689997948321893548088008566856969683053407073120457616360971579833432353137838647271842718186320042242605888659864318224236295121237909164775599576903267786426996624503721321368816463487015363001868709608622913001099059448264130198344345558212400743776725086321857234692158153368881283132287916058408884627709359787682912685760712084458788598985624875479413239963259467575731353505109672049502391344356467994127865314106293558830763050815931992856166293707125667344989963763001772414083818596931402030235413890470712965526152986956751709325670894702974749967835411373159269026041431073444019601265166889196279645824062390745578212458970845980421244552814587569858423562436913181704831072923630455573187118792010719277314970265441638265469002980730697161535793076209534285119767329907188642274311010354138730700870745245552435508244876837561154296004195151015077339957707202148161257456123187008731009124974030197321392043432100597356273643142084285995467559384756431120664946225135692217433176067105149095364744926973728694473054227891504659571896940040767873983330523656080680184251079076633611807553254785041374079684553624567059494422280378810936785982455787526580985805477673664595305229701965195349320955529892358964248181467271499371254959136074968169832506165029672148344733717873985009963807090569759910922734813994477312214342743079616005307092550504148020858021800377754459981619089101047861870572795694531136631260239207966217304115265457229202584950030147818159094752542055028904308053151038932938520559150812532949856488787356170978329937310398696795809880701516500821425382148395774517285498429314580439793773781373475371805598129666380735070693678420860508047548646276252516665102503525861682309169121466851574784563553520470235725020345300450175822869394039351102185546848472569111829166444922649645373912050477452434883315891444701075539998259861165249243141579316449407174417299253237373254603514769797898356798995957908643135606685490094320054417357943643621100078520886231052854278285331549037965772963299714660244836488106685374406014226028923347249686702660869920429556042331752696572738675072118849945842551447613476497704200570333742706313484767981035606163538177529034541703247648405134128704398119718601910047870622802865752256379186028399659632700069303809016426722666993950076137437720437338666233040509378048319476848166062673998124255341820843983917750653483670222389655541401945165852113678916827877357125173464412922828054364399550634034889509168897061470947017647557320840177335848351019620833955436611541496977395159744891916915541761892623402296509630486245737294322062604969093568073629055938013716464319117043953688806374405270162175926119321667546417842600195471273088840485019545517444150150102595034073643026310367857524012821846806302087056021275076645199352964592915662777264787195013370879510505860182043835899600260399884193604150822555069835893466068904954758012788557002440140779057983807192903718287868740020721347979936072873790879499494913541493496902502166454422518118596970323878073856399081411799473517699357648029445757066777645242740004115296473793987495666696431652569113802913576138232853401117684628706081072645915284656919968463850694963153502770232637662079568057255515620812955908647254644824495414314963601964345555908653668334648329728319257458998201803063197508300214285188975338217978807447374611432793616783956919598562336619827300339393645363213570910153880025421038339249134249670841902145293739154339785101916698941299567889454902952395636139173983510963983213882121902628168300851107555564294484063925668304512080774821091935434460782607737422476915814551620019867246793946398929545980610215211836599987529685203283543870841000040630951092426641656877165827441402750401163553079777247607925421282435299500002589209594539852320635389097974818450485622437532246485322277499070933839391477548103171323346781259701812928478371380308450703208507490008759836587159868715614372391035836715637290553982441497101456288265474439281763128071706733933846151403029754054819264112713970891678833962202096443007502353872772806989008545896133740125179639541520271304972391279105761216694811208847094577347076509493642671735807587111010280132010776093572790248291139558778645632908974751983548613628602689962180723354846724436484559283299186924199814684297407010490660758894553770542061581946281772915458486823684851254933726622348400234033604442869982811739872077093086999491966001007797444339261292429947502741536514614956790478380285733154946725186774963265030485060530385504822465067583264003298729813357942372284090649268351742415981129469345638173882700440216931516083477134484136499724471309401354524882123167879395328558302800416123169317329839945911294289157158806556817052858278036307875497203807289031781493091144826305994166423623091803530431725086204058173485404407516238148628098046969575477885673148299528588628344039060608874069203902774894679895884129769383189109581232388154816042955645180300783539686683668123151263257884913477991736190981903997899068441528810515044115409516730665584506883551909585077487875838592998389905441395790443347261061088432198926778563926318666099493019848398174227969565937692760940386070652433638454259025052711083621786655615983300334390834781504372821966285962380370170400349864754495619742298393695465871687302096741894791130056677448408876088495970998561415691830314284367965248873003013423084643309255413359601550282916040962141957712585377271947898936942076906549217048402960341412139097617141518782064090642319756481804553669660356502288062094578387076223293698552426827566080309189273336785982974069508091266980224753762736855107295829318034688713693242678668897666487146485674521141961011709107379746101740784342815108511847141092332626004338056507584331197824215541803925976146612517952422257732160215834589714541851967932558844932232037404500410383148280736823359972583951734880153859882151807946216437778437004149069282731886274981634559023060614550861010597510561937993948632641495059751938054101174400378880723230688530387675905389443802142820649263337444604652733980133706884534730657999515469431579755891436919753385561839782155584606778796173604731864516232857070257584105187681430666092670471120439776777116902543434887194250862412528386508677089866909194220655922715502342436928137636370513090126681070156119134195282026990249954639448137472195034138994535368701184063049291648306267054272009820146217511483387499189625871739838201793911580797607411665997606628490868236207912201698130293122972548708364825060396280663805350462636528585916812850266180099943817166276981550688339756096362480019677942098967660518527623698610135748049223326937406801667102460864866092559094895171059621421460819434528188421485452636138390260401046513546349334787638735456091333250737322076888607254711957894418897305502990042847112325211440204805826754216183960691208044318854244511236079063562092361125379832113551467428157699070398121177804946060131747578250133580520554254830518520892899099031408804166511683932235448825149811878149501971953941990344100958134923226295828331473611626241677419412704660934637085651520860605172653968789696630668706249996341842050888042264826505837641914653980477917096505423624221647039155359819739115649353479262894681319019654768071958063704236552073717306149791693395510969656417524939911095341278232592375363064884037167663770172284479374420325509803766216341082874565368422523543513984114229187128720316675091058481664993796509722010230436722076032851932971262070805850227231063786084605091834508637248688984113998108512783911507752951200028415783040458720049557726501567528660867766717625095910946018800432760943817905531089360976682657517046969841047928765456495167693630241397752234140748528844195115916359281095034917316805700397180142456169139026840613586976378999336101883321139571492012109042845141664414732309577296300958405287436146012660169802273289166373570442661602843090295677909480563908220661694767383673167092069948955303151160267850316343647157721697947738188662337397695022277046203564903108993931148936480254052998554366471821129626084101205292906232642141135994401821480093624420584590767821186623703055187430718987648824160317917649114786134792964297410204814524962637278560501786722634637895715394389262824911913080884805735634833241443354011530501427613952684145998017416788807557646971674412939380176009785262442679443769546900759951157163187437479205189631673532750961630517531137362306720893830411444266169193470307888027589458061390032074866833864950551701989218907608482254615663050785323714374430042815779669689870488160788190803113692165996136098407914866176083512805032082203643334927270686828396313219635215563885625942472952471113234596352454816310655431113618462552141489849376503798408563579640960390080463232357361791172486190055818593573783522087195303967835306843683694788257788850904083720365969974588689372560012323876875316517567615858472967244102348138723063710070126314357504969909614457834888237800069644730507145301109900448649007428507724846049775743743898665170645180056025184243919264095661782650401228003857944551430295833586532057557959613601307929864693939735199162449079149958955630416508732797546667290880903309719772238967597501320785666947152535483255640219441161164271839428564853457655559662974704472793899172844146755538908631955892723864039878441169560850237204948493742270344850548467598565804886308776680744896728516849451679922575926965251055367892344421823589567148391084971941418831286302620031150562969969383283200094852256510843550161581172918303737516174085951655093253940994721572230588779102422539959071994847671129493601735977649425849419944635413793295094606915229727931751069327251133614081977742354411872235395322819979661244767018536919615124396945238694838016194450140464598695035253457298335991144341070631005799619839397158742862916282061290913947796218381600987801270468166184261044412729022423787377953889036678673674357711482696714653597991729577848190228744131096546059537457500801148550812758551468341094688468888754464786395030412156748702082923936133483950619584803034288655878848664576535218822983409224882587354664347250853574569689511681034136462076903666986985176170825972367142440036968511469804587834577814447681550494612727113514969315478865060011614639493096431037797305823203598287607866613012786574454862721920960802131855761001405396948765925850882203640523211912042103157352020669692378267029582660728967500002176768325866867866129967265609030654789916494844216536886869561457176831931035636130440730102239334267742204225902437788759697696335882674088812677751377173023443036106119581524507764793935069624265608504080161119851019267039801699185186922707793820030932787759679937812383021593729641436260136995143750745439736808463669510168006553940133402786584665011865196462926009657039775660338323236927202276145531605716774816219447234044341248707663629762138097845892810512846269226152088068774767774403967957526786558444730720566151102434755309637553625760859422459568525980359556497442753605428362862399995935791371902225151712274791197054613626388665417603473124338165455478220111324424858711352430884655869558954522422326542580134633728571887107449556968276692272180574354191637238035515914767998080060666281096399252142808457321095810093388419229550979074562358747498113314768905530948917695547157326789215765562606597915245198993655632009993820664520026214826812320405459020071279991371946285599372351749238436048846948307217386975438997503283060269081871823325511194822194139153948831144071170451733705886467393918382508910930076961200106648398559868325446916478444714122465918357262569528844196948398187854719012771074141274204771071525027430713962079308332744814745853871122081656832838083656290814742424320924927199104486049732999403550437470558189640375442471189037356448976188405069961985628439530393269481755835448921674397491782418836612068562156894346896863211523375909878136530942556072734538997716926705977195934307255449319593929478349863740323184820719464236249993472961395385600092953598375485378244330047083238445326404703930479279795368855033407263060203927314556842710468088324527733544211126529889369899071377239397053829272046860522690826029628986820461403222711402006789165311198947956332417507775365483746458317199948415827618572852759227991770444992626916649529777754405148572656754440753648225249494185310845602931962004068059994203971421765597756196059912946728792285589754049024614616935747155981664954397388708806766953640421134641083002514094347892537890707719175487565340748421724079688501481088302804443694200245624126516990653834102675646945240902325821169993816296875058634504025963252550932198952407350227179561826864201330598755029790263414761306033127291366421080203312495494059788999574358815057886220827385312315285474578148560707824786562258513990555090906667948300307376477074951282494968266698693660095147149735388477208339939359704417906182781122782891851891169691446524526780228433590604695907267043943682189709995271415823054576097982109892385212172555878751917737406300451761665826605239206276093041969435472944458502893169314368886940864663549052373693285170248893735470411420216827575251708081107679501453241108776422961985849863762105124267291256227316914601574329044581365577826393158768904219839862417467684016707445911271510959715304813324776052607108017933307074064251100588008618353231870365782848747885877399003762552876217966145913560623218782292780841839509508105069761029815623038017467469148229735894117681740773140602098348401344341482852725496002975148006267778550146980886502867624797014507283987539558456528370357765880565098507390125574411897451625942434140867710315673173611206337600723873202146329931323527175006962829408481233761553057440059730920008727667630352073179205646710187503071671912191161139751411153469279210593888388618432207192593101844847783104337429906388254911751527137056803238269208620817983523996619275517379700944451281273438003407263763251463878038468871731053478328526195097385228583995993952190398914487211327225870482818574220921476006929297462363110632069618522156565224921200115132169490549927881392397750730545251663112557849549335385679903907366298819336658296106845113704274186278315464112280336531697339066779728402452284146267874849155440542377504801827057347192602746206364038464760913478018259933501188536879250868789973770615563809127151313822294643983874108851006686821364202155541764545329513653957635179691656718357894649935451983135916709215277439027278365683196482502624370591394028666384016133821584630611607900381734875678613164312427781183089172203546921659130250969936928498031079047165051353430874714429949375079840435679585954848920761047474718292094911378055512671021661060096093054095539980055484806146143159926252777895573248810169945106266216715170824030421859790202351161586573860015160968860653158226752701255649694679800012033054818015440048202618170881805401242210805553328022582874197696941703657599486490175254964583129097755610635763220736612885914241796368334308627101906795285987036244936185797077786743956146297713828522982125207242832992043787459453400574858634622934597870993147509050328653742425123557223652246527801468733197763586100507073070988401139949667310520049609711842294171239141247982704397347073182208520103701447179805493219681700325829080409517925740094206363894497430522924151687447105918207459469437057406430457387006383058394426198060736904061481363400872639259963858645078638491185365930814550877462471536069167552107428968372686349883827191533553351788346999984553785696882691080277507498282097790943422931688577037130902865094147169882710815994037110566435072796012578708367070649969765956257628241693450429461121295168232337947496465792479078167891755359372922130889896997065268642168359288300974834368317474260980819225537770374473671414082906698984526482324829210391295213758139602273152913221949074935974239306144411830577666472954352154838788491085004053211745078103908971160942956888993564760034489162940609628610236729724650171036262759162368642089543318308629888327902287385212732577976687848945890472167596480442276814225158106670663348784138467447190398071097442112543416435574673347865476293116679502851354367069105924932088669309378986776621267810090000051720935657387916518236288191009773266745316133493119797735632454257172657096698655593774429741752273349192192998317359047141584208281905904465895895565260196172321547788534767523671004964364728326903841261524876536499502727553558929328572327715199914391949376758908169108030825058730945631566900687376621444030068920548233204140801408371150260713947933985342230320711480477208842890838611922079618950221040251757630336555700929106344247507028290842283155856036662714571508450179679261542244501364973418642681265008497704296375078129415667539542630503452874459388324099301254639205794098767190783655176753942365642898891834870327779220978643053579650857399800080447899004628004029072004227709096683964644948903948730293799209548426019933319106132485705715640341850505931559332372362880613893848036029903835320864304647711073512741049698377000435225982163742907454215544299854603199880006322791856712636269284964592041920493527310623399666149585676816717559240317843827371516275878816745842196383347787332517887798851079837963149981974814928260761309040824268705037603335053596913719194729208329983322695975428553876594290818838247160237185909171205082756676043544534845108134190679092280093196452499159984161797901689491155110792080965196325106616310049212606100008659136032894753277304573693550822070056389391373020804186644945956330271026304014831293925513682318830199878855097582512893636349406809778140278140305223837801452168146669453662534140783515107036465522630851455323870330462643287165813247719757468936131362195644025521960668778997495123227857096077003409960110577011430873100442200370955543486157142200989393594178862419507894615122309400477396785517032276758246759515337108961234351290721757786311786531662151638602609338815821894691566509002150524785433058715269585952750529310578310535478322442125116803065635131342324753787061254568702423267850988004178258119693632359424697278318795432762383731167469376777058690644478053178384921039651727062011461992460909372488671041771245435293806683150077256819603285409877221357533751376521943209259461421878890538858521813925513333210404077413937451378645882632361537680517728441800729566020118734961846683152370198626229431840849828527356583631787951703051022756358357447187481122797773435484525030022431217516122562469736815508855523186773355433185800355688107087178952764663269785725193522708828652339904092776640922473249946011124524925573418947153001264449878149191366170503306993444522522092791313557151892251532683826735926482819413724136628903788450205466774064241054545093261322361364593419753263160472156970937340915046412042057017793658808007830949339015354427271568238601326300367815609179735470986342617657079942269656061445612945168975611761560607275232677684339414018536284699040918813847024376861239485351386672127531899933879702827176641779574043903017886581674062744434632766044655516739500043571969940547959576612723497949104230257812646649000627097827013463694543016576745180901572808604323084862221758140872152058524225877117793780988211637536372215044667515337644588156495054948052452724555962739709571550698649507542370209184283806471034236919906975191518363735822923012249311303097942568757977880452482571323628194390670513960249284730956967055136027633573193137465206241488914416412821396442682923930694580078003876881434030992909274552730919796408173102144679007363346041336460185375811011238488435521644071686699942229955677909028232889712502999965570054301419868311769489126630727020475609193627713828950660107542903414708115643989479803809471880221506625338334704818811158132351294311084775195389001590081731220578484089187310268731474210782480876339663251994404656026509626285622443036426855297049827679588023069745099266972824517615592317291554664319194170885689063142864285098863639936903568943771823171355536834714562819437509775047662970456128890160395541351145757155048869178430696072653234625304691976570411447301134725565461640643503886366124807640765853191129747301511307935958938916778249290301898711814298974162232178464168189596960258561743761838444793417884976444525361390513813999999009651810050479288500415865734324111246018668102471608519752245045360357693583088126891058165370681928298433514658115768417228337755853919280044528827868163662016859950122902657998245432894259744538476836615769908407783073716085853423550366198151236401977584876515634073643315536785452405394509032198823421895789172135133015836543738090076355605143323545234325333297265340062524912096745918515613287581366919513056342679130144504312897993937593019092152388866991158374705681676118645112145822802683288672185005102757534354719117547517815881143168078950923484936885534396076147564996267733560841686219980812853949105838410825149618020495491920687743749749509184606547221959666741747435607549295787182621386620784281784981044221255963438775232168651253009126332332922762070714815395099679775754931495456461443907565401622367989336836145200544155392090098391479334076226243956876178438956418927876932077661368410074890764569031537035284153734698451706630598200198556520690651922462153101400233996936754036232897551089298504361553939466767437765723642245492393819769042046553445636140923296489853267079529370472477211327533864360852765848823289428521328924692797550019967061453262116895758777304690439526958470987421973303382340478290989035269704991630546787334234726783936193723443558262912137102316586945453638207823273380448612843584176769095554966044110055312820461106651488628416972933677942167268940926564693520573340840826791666330311261695492719252266922162807390643952039775714794099069802214031184739936519738425755137345061051900940485663352465139865178460791275997921402003025031895529418955106374083679791905026695542610611994270577672134599839546631412230790454638915825803013386166886760658391203289862439933179121264301324359870504026290977497876519613810437440592038476369911347311445065396550403088842067320685464408140534869821639280840047686287546930208598799321664241584344553334127677255158713109511385667411954093786559993532268161650006990543926793600390585295508108917396371119054420556501653100013927199146733056726710798016598948350384131034698641880195903274519472981125014739586922151491949574240491529329964183225264828214693558017500540745915998925348039373295061183391229938559423788308774682641901725738703282725312900131101681958872648712291484472740596666385605979237412575522008707896045292042419972856826532242540423393902795517090605984978411476596717648411475066437241631792286745279547531133352059713784210741023514353517440736801940786532997364732520434623385457878537858935116662181639418173892926376613750044026895254280921400473430787154158473995464885444717599860056969359819534509086479999884210848773852781466287522426413179885028494012075522808283840028285693240618050958817665144426707432864042743732585802211050902664545924533137268024120940984268667689843117474098755761150300222614698857529887338087804777442106376656115120171784699238682082710288662994168722455389449675492905605778652733396183737393016919862606420624250933865481571432336042909105238068988381394806071162532918224389704217806435887399055671539178981651714467990203157187679046248185271981097193583610844503834660646042019146714850175222896464527168691087602485853882291014363278276968986239606150882810678609282421154700475294246808010343224007745853937603975865889548230784058802255860188855678325359257013219952794785585595029860616286691171958516041705461033808197728899019202226837544180754832234924537952606604677113542593319608315360279676167891708703040923025519861110685862366384013961074235440518424075598931733558426077577160940361772453238050045373303536639549358999081501687483765527057741862175160968901385705216221593518649515928605600928124098629416185151883573570832431366082297913382569102538373567791327328435935591708711017542692632007973583739475278790017634671414293126540028887259254583351072448033304543176589373591258806852794205370765279603879085819500334024347610752106223416049535829021396029558548896468952698802257160216319416786819732873100034060136018151542882036170513807134363018287065467486557456487209494578704880661686747032801151139387752308473335944216406753193099495674423852873346692077749176229234537200022105468854191969538954872514737108550650088680621132215547285434342433431478050011836238926112652299638360763187612902249855969529187900162771177424108471257368201715615864819947806177058226582249972672399768788712804585646744354591908250518903019674722100109758647697295120659125072546928044852346771022284479774210032794370418687228373265483096037391768274483982782340023689094924961709094008347956443670474184658449334732246992523180425193090650522818219074837751976671654319973909920901987822713646962989427555214667721736001533403313915106692394808047525127899709015416219834804140009466796878343494715152792344146829274002507825480528790934603358322835592401315082451990049683177884467601760121039500988287377960787049761183463361176431652649708445240781388213565410950090783999738311750763475869727121205577259294903843599675978345800131288867159231192125762759949456968376173781798443209483976730433501471707296487850113636750456338861084445644350783159462649202069272016583717289351957364258079298224127316598499025009970906865355141946370718668386458477054774279575424086919257190719147623296666813567975551598254176858802628596259459172727405395886711680090982747766743306012374595881963522597899203100350314058306682268817602273217767055866024156430839134865854554418210058499304539403429878643897302402782392710932970719062171068409435773039562668737501175370462173050980953550671755618873904058322029299068519707928423627404370551488055605472557616146069179286312017434101138140767265375797066780263524360973360780845254959750242224349945088436367620049748111893321365079069148623964462548005115262322863291141154910363025932899115473421078775804237883855228081161394626770105867068816800705845929566782354648682833272707794025593873355889012915784889840165081183428521924660982690595052874055456856366498901607044845668696953622841987611524065995673775920323530031209086856595967045788051627612462148056252807318219500389407551583029879669502374354534516568106255551817387185684697044257122951881181610485327806105192195740457347376523741656526903326543268359530261761784634251383293114333458665348835010202555885500982171272400470670798794432711416536251982164918974115806150117673069020284781820758911735018117883347673299172022971712524012582293740440217606689901882803193646287769701841497001391442701713705375410197761045249894450496078947979790541015452176385033183967979052499928215548392781745831780032417524537388889526877215340403959897237575410253768567907680372739954387228167260230400803571884923074165402810865785501055665570136380678725730988886040152170501519383471534933407573152782692408800809438670380877627529694118470126670245942974382347432873407379756952277037732492579794043357418521479505338794093571387538698521051830793327390448122936137442883910026981974479494042901780539950042598538751015359815172173929151129125218129894735269442185936655184070020324809335908520058501421057791167494364868474854016411562230356689878196410606778384414698451877575852667635142863158525915725834897053878012249037194826213045957280082547571159369615708828506110209642782917305773913911304460102435474772597201089100951579792928088176408230913923412350884407826033677793255922628566239480758481444781908244628542643906914142782861234991874711261397757620361596561765486635847513353562272625216370542292005289880185977407326017604429777666793038793171099030973504249283075929954153403015779890217446543347829347221576064461987380917973177274921569566798833189939461191647031568567117528847993311502511765535833450055703205408620922631202104259938592897178108963477614123234178974386592652903490467609025231750741321791470874196247450265788029084365545169500678852656015382534416104870506668855043657687238572671985369289592335941258474798215114513773149670294886294910679896403703030793948521500850208611095253606097737107320726558056243098686989372972201979410151498300469982627614457569281503847738841279691442109121252938998199625110355087178076385082615109512713080618789493525855088145578228591311304021548157923782934282227619905213111199595568657375591885158837754069086491755311603854883812401043733606331575732865612595637869984275624198560418984421220284348768014989006586278440730002166518429724314576798727913400076169598177297091974282136117822101133658309066966336809251927657311711891187549983518289640627638014658516096358804845307124365837886672847345408772628824750609255036438099219103517366490877262482209441469025508986780208525476425454906120504963403295604798576869507711319088630401909778566359025060779430732834000204412544032573030814325761450228386506443058900594559109528581184147952557610797737364028570054518905809128467004430050338932462529555587744460155276852861576435332517761903013153946539952359720578093716587437781213680626138315094103331095659585385124292848240969337358532797591552269407130491971058591645563065927860891264496833565239052319202164279645348316936691170781517062070850225096891102534010373455634214446974447324509595309549260713839121902125129985788805625211196650759129286330983233247047999404368083030515695980308124480934226354726343190829976721274666522797784413786441675144441990682308616330269302469035440960819383640819251614893269285642510424677136095748641094798931247729537648675345027943706313585982996344988260962137099380916007608922477914499206459035599970996485461196351228765458203718330384824918770174043581457144997986229773907026612097798427476793485685977384968839834350062938276197327169279481407919006685777701050331773924109284016342991345776112994911685789548670948395902309493270907677440479454583442823704580704416816350044559098376914642688267345227663463944637928732831633673537331097246704714588524154610103069795342457552165723163925117528391435089017142784849281007400399137004039215966577256714216947621901869937494602516322785283987072359244901627550070592026513827999813570431351091698069923557524793943544610350276851397181290954797372204878499444548291335215724404157338156873749724325035862714596525921953672805876355509131919931930447534332085985893462738536120297991733209053433708657810376860346175958598798325629843993952031672025916692192787805225038447779719109568226041183362830570028716414248946668242309921831801868991204548108809470934210068806888142273701747726528494150449117042535254160218091997754510322816123019868877151132647530579092659045323504179843918501956019608030936540734684954589867457231187629053339709683789806702682466081324180312039355721600615874639892576134345072412816941795955386266935755997624442099533305982602151833634186720417355569921114867524337569456735584578729483799495288611893701244445134334796574254718204885005581747373278165814599036897491559022136832968051917117666524805863257637128111997413993868900913917897261550575851000261303936322302205636271504568064946480028211721233508448316319121331097971205966768048535631762304707581649909008648790633017194063300657084080620710882309457776703562046496879112961262988852372311992770104298643257281695791060331164667642804065681289295469153623088893262209478749728574272590366964259255282108744681523957663544277647341252912519619821302224536993982714972316187441060432278139923575402461293672073651737982256400682275810909131940279921585950713764827527677897903618267665475124329294085969962654470384893245108580308306881565993877493307755745645921188067611415490475311355240174498763671676623153372988283399411691075230499035952992279604472006488087980151219320164688686886477033453466071301064222811765971310754583448263357763900348663301348566875215919817734452986533265753634801790882365460732447545700083036725394767061086976487034373282276918267754279995127416072304363178682075421248574948135634392388910077222679268751131698814049487929324422895327609612822986375500089320949236541891958402913137970494719949474420783086308983779535844059725765457905721102541954962071235620147211969826299792352246460239182306723510094086176377925902968101458793609359963364313863277418373683937347483270349996621961368059554395671832104755829231716480069665249839517904364565987325380322936450518519495331444695371386656392504690294279138273245092988329688734754149475920308880616421860339027655186800553859515262759599505577545587604510281824058247742063666250144829085326654329303456722174906487299188255116590342368482976491332010885094015022167921957709337544389791994781233106091667576955042022903940035856155098433016497291921213211944712655800412244590242891416515178324139866848185051775079959617806293544176452404147580336184859525221595277498779117746321234334884443667509600685043748687530485820349022767415391643612479378257276724094731391827470226156036435854926520526302468179025122483347247615396428921604185254337176943253426569704761738836273439077178342663129434422322196768221534121560381709871626550421637654030149011952818916794328999460614244385759499948388855352658136634353572906331321506212274250277531821501508134849377642033763942015136835267457930284351419359697665318987587047126452746867189438105766958094221402030678259925821758727730698373137065315787238303906210265601292540003755412220028793167070378761730725580572013052035738456393618852020389097220096929850781848509009382897082919628631987938771730756008362853846867304603346404440008539516871672054408003135792091341387916844518974866212031143241041997144229339092619139431770073356741663486935359303986741717831249102994390507047533963997330179887565243248958466251619334255657015882852203009895056162515026109571445417235218814398935897349648123537101341140156107292726396811694076343294729723604389454969824480077018145522502450156377622252455785887830589013371773970586204184989820120901895646242005963005187489049379367393390552267171158028891953734937894914994383529137300038013682935213744944532625828215834366604004936762154644213889206785344257041307302908659887963906397696532008930454410617244523204673499764036525808982253018279681518674076797993782661335604291423368283689916197636716275273972182189226690404965685542071201820774381076545369997337692780385254950627054212958370057062887228782995726874060067441117059955907681345416145200619795518989046261695919814357986225924449394169888755790734108580162893457238315737204841249319251563687857772171050907901744123719606642921989491789835949018340321975894424271407761613522367470522356052427195177746515685595296731145595114936190772406911062193265518694796993230290163232861784386270446641180001872904631368260953904308567443961275164621443786702322871709589021702582850520477600015552206255667214271555060944110470395821220399121644278005546485241523464732655593583596165228284027813668208074099368198405320713816322492099957561015103784178758540793920469496075301826411084383532083886149345700684805523113015251049805687838746403515313473726671758402285810471967517128760916070114267665753542967836328026956416119174758547054370759219342759914882227736097204671226404172636272464362067902409433616274829072391546946161336546833994676796777347290931060107712146309530701197956620057187022356079052771399999537613085498362805959057902237604997017535458685687582548647694414747992485132416659711622431010000075388018354905971374198796865423908600224521628524607614536719460877721798418648887281894017187299006045139419322673151728358606644538279609449993959765870592807402052942946881509517279329080308147033613140322693187835151126123064482773708361732280438358929423593077590599941803157405713343641809617238670190306664425318549606745635463279573978579143332488894065698790344406967150840364567360379400834352255176750182373678695895455851083275600360657674829759137141826105391622489282139602473256249306982586488112829250727671981410379293166123423580753210632481435491487840008219393019957963243655856203253781972387214901776962630048367529760397737704440364823440243115098946134687061019000708372466112891467545996624712024450667782839883545357205690834146546234864018614342318766514750667940104936229148946657241772089419595614515434456122511535114228425941337991134320310192781941712031380500853159672469780395155706040359182184039270765275333101671871668968222032144467700738162322905955234747418589208641747008464922870809460085671809912204366534558390931189575038969074732678182707700682383992265028422240936772489472464828986624945099745168846296958604516486206303600565007273187637648999326403820168585985337096707754584969387523402013382410686528398056879718647726249746145044178843514631027007347275810326797837716937945432081466217378531938392366723478978860167534752419991478625742819506089915948524869893469719006319640876898709651865889578415586830604007145373131603986910471861635309131528818136836010799606643319388697001413767888195785340019857782845325119573756198120986597450236171284993344289132604293526110310823933642590881681648431796184714081441559076543070573422974147374431611370032704105028589667810904834073292089515182207439869637874046270830149364370332144474824564526702686478369807338658819257248426194043086405298541646647506098381161799669728820457763469642790529863782981458392837389071356255277712019912677026988525730526037004196921507352986668035059558452828177538689216994859286342894135586287670585373549471826867729089594325103753926459026521464923651211911045149473370035231567963249647037721781039965550358253772784308886032603424674042037995808869155923571422639081388985574241123072928054459115539575633540048567198766446136085941746577546068913165688367215112948285970395753326374624632143582785363645371027804919393556877299761737152764738765884935588882028722716230081260490025382354113814176467217121958705590364207857841938532207856689592897090950801713578061318712712420880771895421077927279380308941991010614309242075825596658608257828376025086518959384685506988976718343980124921817280281398895803831450663535002530560070678747494492437658678059872177865428303149322401027123803955307986854310609736747740797154324425316907884645982618668970134753657691584875630437396220652115534253059177057459770001180873927192245816188066219947464845270176084614696305930686897504320208900131092982632696530271574448685230864284546318860310937644249023777875522266029400654924120898941474186443236949600054067133655032829001402439713274561268724597060936407174023341130190115637937672483495573030857110858858903057780560001652884567545010511461885561842480878918241535699671915404409673176748260673753230246574809819210421967865374905131103841729375190853077119269449018011057032289825082448728395387236027049594202989224365052829999153751413877095627078868270914298707882325236885198289856810531969550962399420297989332512398246867637034371578473659066255529573614710762122610161101679043177071521547121288593554139675285942290332835365210148899120045143946148903277956841631998184035948414463596988042664366916700383075381468838253839090488906682719861535630802901503397014471085784250809451792344350483657328635612311959869722855951593876091900061871765509383199965796499114776475113178167949464563806897844670589966244043603918581187081646895529118347202834380666943055683590662570843465629992357131667788822463223533329361192741721553541452982678748540536532383275976150014935663233130527409019183858657217646756545344398026047459653659559770598492582126584181566320272660536880495546065691017381414654223707735334180157574786243472229353121310967836832947472285940692683157936080349902984703650721872006549494350091445371632350297622861288348476915492776177036471907108257955991635317758162927411637298172930915757823785566440338958319194661670653532988789766410403085642898769815171512753291497953602882260202386256226228599802064186045861892284505340258466812969261994810042701141680951554892810823255240184297667824031108940550789795229257053846728595078629905985089757346750123068079956537245063139548338413067898424729381143304462653765866412298397085270385125113017538004343729892382521033311495895144664078694128228544665301803452247116516501742080957696103968734929601536042769103209531737178470199913967085068381665106930944727816380200026976105019435694638425827756812671950799543675981943802706057696821963282855378717929453405548021135398412572540573278551243189327769747943661537513606477755677184202424152283325682576398563395884818125667485534429021814917411320656770043104548414713202197526119526152001917197821369119749646234717745083124187988901380831530153992059586343594640827177023823555907759095185954585982428436851289363366925549012455647154025489552554077665396118007910365379795034044998870694665511699986739695683689462274430756713944563669560720332689591931405496696832104098141109071954658224280482409942238307399369200712594461926980257145531154075408384105180043123017965959475651099984615599571512116921114495192140776618075671815395186929908706080533816989409720472294078108644885051466918967126881992809192969299025869468567540175723561796314618496477789315594927617475391698125141654098331314412259661524488426653805943140363031789780323089461551670654045331935120905990052275543782303054377193900779498109085001116204741061071763048553898741518119930511307657457019793371205346423240279529640939606576381474675047757550164000334546843468904779419191731956114317297479697928061472878257837989373644562798693988657808547231320681759771786842477099780834220230727957103036620330866741329833825964155844171496027153014273795515209186975021697126043699520015359249033340986882793222986876465552590641085741627018436501515202853026632564981060115673520357500613271678139970340604271283963123373086967570429934075815414134706027830798343064748728682976566691240848511423167822611218243885721208837143742951542036832055114851130822148206961537395675251923227465739773983509350598782360455644233529086128276029218028125967242980106230539344745857119072011595817356029942403804096582298501377870633022825066908288544781590051211208596589934581595002955894765694919728388800673199355551731839250007881732741098059024937899371104413747604460863349415819564402281569927400775396146420743128137646626926889150731245207630861379446624665691932165496785529331268677166952108545677594839610852261116527313805951489362490765985665169426549759916604778027145021973751819756507675702413951918757670900860154832832436320610385010783898415716658386472249054585494615907350328553827958638996965923794648003464816751972253224135288258941908777593412048367374691822533324250857288706706338791036971433621569761525068052412080133906661336015416893458789394763913863761060582447106653790909338488130043423842862080105019586078745790105411496787658687149468469900829608545165098206091059688024553045735858804549923996940680459828238965946616514521533894470848229438157396815373358028674390213248304035721157975048623785544105965901440041969635627710540866569548129537887047876853106500234367238492026492106134618134615670131771901874411103462121325990009224440291995218059098608375257399462510131104687909121411269884353283683901793479044093112997678340387385713447316562104628396254021761155102329885371571400707301011744450239603952423473955036692826060841173928237889388712700069346038217170694480788294564650414291787830215953300641032936234626728734201570620697594297086302940855882377826323812718295198139894599203542757750937118279841136547304213444124135622152845055609210049051294084966946512018811287710011907666453578987052129075359567841499800366125699808497069452814835266158310113795831538800440318127083472291712169259986823918295734889280845497311638606409635634449891814870869249038432071081156453545350842299363499863203512752501896710493683845247413914246527784955954399466675585431020979778492565036300435123773669853758785048357293521930487257127305918479595689303059925766243245865556325197793843083630006603527039476207661959508730608366474476146763831166742015538041598434659554482676134199183777906197628041558357774662460806621067937211028959469312060440977379896952379911540380667421874565422060975851372796733950552874384119994791143515760122031920825409362004202787129125569132774820860455459659539628483288273779103492388980215317062539640140867227337084824686016130215674025768789560302537217458951824883555290396688364133253366244177379019048497682173788867274826705069533275439080747073057368142514541618369223860764319718402415639669458330336206543285640160794583128252439465279484602262508354868469782177088754894819050800733716691577753692752478735144093741417832475194170963921938025063948458068837848559318612493993280325098469061987589596301295930391625682001801090192351614114624513484582305022599519005177350866616094769390922394535367538744031136308044592878700758061394426563206738713283821417566077564231719978893510894947663094126758370963532743400579614332978334122866953767251121522390797278255126579100388857847995486717172648895631925008284533472522956441161174715163182600553143810465416764528163169946709670185729145859935960447396811090493060399345615759115832501965933500576068516018011358589357825963393513377642307122331350199420476202367688958685434943952669610098078519734522275175375648926333348766408262069799249549787677620505301578737098886029449167532577821264972645368879660177027172535716077198839597337183531588312886930719963448295960789724296418589218900512027089300954223864794376798848294333942039514592692903993952560808139010075659992731346034371720615646501905878209192165407191687802685629136457399934383021996677019057067337132586840757906775969200084463749607487477763959613984123274681376086447381286279590132919551700994864914388848175604589237420612606737791034371729203034695725168540349349040586805907515875670012000124742259648354535252090175194428758576701433718036142141341351777393937505211889772809520873964302357460010913050845643959541565473814758145282623804249894671869263854629662312823592205361536071030360861042473887695241981685458989352811490347304785824200267528117607332522035405393576683682264390301404437974798693736611917218059872527508344248848437124329219451423571402618187586007352520594986770436575961897871434219129733026909492089691360007070728524677082075664700344797464293390968617935359627481845773717927349457372279477783830628079420906579440506626526167060832383366671899651875894098185102507078048444776953285676775496218101406852204931580030197429057271941284182173041495145190694872517935875236590562172097959074990263535159239937735436931629736838999228261789969343263346108959623407692493497199809860403041683718342401378582526371518097823696074852460098266081504284768725529739411455526015042700282478346839490472227442565313012797226891554923455823994092363475753082906799204909628855248662996082296639145569180945734167753827919613656355046223686315706982455175828949496684576809076599671947882857977273440940030766126095207638124003717234922591774511554408313669183672073550251836508943819876540100002448135628383085247558798823863796073877201709627474097404018137167414095349632933518710531864130030937720891495662055588910414489306608241953486407786242894979415001938743704407695961731811712750353702614170438677250632532821960881688982125254248363511197156063197982890534710471117556015396117152338108183388969767960027504585360980125690322910608023005769608258232242675573996980098488489906346140473601470642705815331230859309941144437256653593050945751561567192287477661085546278002091533989801092108853599375980793356875651316213484021357979229411867673004339705444743694643425128487311585722911982040143210538662796039588642367997725055586357779153187763665378143185260114940877875903099933146244670802712303409897913542848731609413106390924643471233187945268048442631203848194312550506197245823035003439917074441872371298298849613850342880812880615817715717174208819849088429884507688894642257681874973142212227108213934107125183363749764535054216597105041648995958484691370238731526373129650657309997861792979450420070429518714512919684440191300152512897828134631091227747369724988344215723994238978361062622071720617079655468657140321135358560991953190188883753778144232720313008537412238040277174092833121568229624282794750646476741288814481657060945294697049204881571660163934272689149600852607216263856629157198689602531472733479919343171264578194576787416198846725952400214723589160033856189184494156301922281774056611621333850919775589880037783100373567397234444935285241571702824843875277508141940768009748851768755090528344289388299749966536806405182638585177336759552393099159307355494379715761547087978767707524647031685985842962474077080335235791983158023454200170522112858853794846175011223578334747620832019944955877724734765299910226297209499929355372373091557863556218223995437807799081177442860847408713689914754778625107523931775452239533426708804779354521102345157057165179601248288246471360730240355405678135707548177142200310013341213544738763312902953959971163380744302939189788566186787762790559483306364753224106475006440011516521651908167513634742812964476415301118501536810246296466738669051570018891399511115306249852029638031300931346294946064287834665996213522652334190670185545660526990964028628436753979704650931009857698871193310868567397376136153931919967010246539964976014623444870186557238351342321885660174933076501076031376532922081927054178817920078267872067445866254085113080786050059341222571498136367610704408422725346310151937551485363265336902267294112012727240586152389145297613033706649563266478111798363013962921333411442480939058449679759834696803910075696188427167614802400980029967287660144784863317336801330952498754332588310025267195018064199478789849165630574910783817276703384328548312239923020009959244117140119473141391106728569473531423984635107488624844999690690674205144333200633473187590950069292017733457366696542422549951497863678022062549171090760847718005048929462463330175166801150907964042201352966912416817277408537403827336444216405089336892362481833456852743835931866523323659116848044453888689806751447257772139850173712113105188484501791462221335984574990530771352029363002539957506859675970293993333308553606444680892499801434095427579353432447424626209137797932092745750550907771485519923426391007098490044689873309771129532811517487645590024789762627240048461419967897832661795450278001361936373810852068313432246627988325959824923379617784334127184706591842470017989959371507624650924623878823029401601590274957444577080916302640776007034372088556318748944599360601850260931757413571812613188400921632243081850848484223208685161447523535092078499066139147962098922514774708573288454029600206721732297374430056073719252678184794545416673966953340976212305910854521427158304409485361847531655425624406738046967301184922368263489320104813735409980403670052691630271271818253779888615215351942125593563208723825564574246693442579327421296610807612260750619558736027755159251608736091124910620027422288553472979540398027939372896677101778354292380452811462939893241085730190575081358369974608597772952114217080781154028321246280727190130543667716859156278697945554005801925389225570793354085592174530225876955360544579072784868067547184073329696748032103964473266121762805991005944204542825950448533728193938410459613068168087546276091370026327820439814369230276655874213474685302350567712331132599258023201808820819319808760561922631937074067201244699050833199093241103333098224265740817290774414293181645449045881815156236497823641654963868973460125093973859114625185174671967529281428447936355741401134682412640706762922653125927452322617855821380450049124783274809699957764016253067923553946327137565523264673008235414587063529580368231369665022568625578695839886149265521642326287736182556036429562043224447201797316164341047775604489982045228538798200694742370629450107149802156370565979515372154797263131487856782399786864434462986363095461880693895635486602622169604573011452421983971229517196017378510545955325176897083228598761548315224541772422999808089749246796113311804925889330719073843682677533625055423224691944609648577888566836015265943633113427234930797624387626472209470435500409422728867046172270562995407542102671237020596125102266839630034838230926064050170578975448649879869964026819703381279182863534568191318106269749628393531155464285578709872718633305667731514236287083721095038614403443183960820169186248308517012319132426234890739209817834619868517159760417570782526126796293909512572028503613037730517827411381246170174167444939962890731422393194639704646699601205819046647559802366859408771236270559914938050420398816615617856704273906165340501073264431891328515535571863597450215752570433213816654674710722306351785794581081665010568737732304935884586540453801615349470162294885332749371050395922938977237247007887756057304007682532537157749907622681000040521964220128907761383913560535135256612913337344141206151645119852065654357473596914670191363202479129536204423164546328049806970176403399801728746807261265037626750556519275422457212510030709325545790852959776125531248850507932600891741305038200816995525027955961262203220372682649334246304191151022732162843301465827146483326902930833923953797350691406971082458268517313121637605757801390890154391651074346809485217500549816960009632148064670494812440057993727318998258038507798254602526963298428354181238680080790008744466649407664331561349293524517657618399339813795792474381805473505098227506966318228970001352564413499204024717892364374200456969306496537271193408652684358891404083894027478864013215547054633501479580734230942224262937766764127129114132575238134942268880726077476221558665890458135654770998562661314631398893285965721889892254858297637822384620798642605924843625598493965868205521337886116294381437529166745942309002674599436745867695877443411091538080610117448082970559914433191636798386483227837045752850739775352585175751499370579571512808241791062966618658060493134639260091392108490510712939332733161064899673065307622552869145206885387156541909541949179986019126286501139558460333348337284218342464485196368117204318576118783414363672229286929010758489909853548783861898222151743762835809621372479500958533352628078927821824842300923120551377938253956960648442875466537650374414012343648790685747228886108006294317511530011597120244063670794503319630785467884589505801079104375890943327122133228937206657062588281002127822201948064527894338821487525613425430072158043118295567087542782602300456916703106576946444882336460205883499076253114730499566597112276807990175781828682045041088728265699722102488836378946786406849898820091305697388460778837003001868626192477577439156421276803884089608584223577259596401327522345728410357207468019089442839853170144420467683270394135727592732603050085360367743151373781049634817905994111209515100089138520194047471308979452685765851723272892472383664478010716768027302717738284431312216182367298250288752110331547819751563155870435921709671678595712991580732501469290193902547299752019504135643805122179091330094993256419854885365285312238747145032277460560740247538528306353814624142743167699559150314789016759753981811727124350701477308844575992024828052859119821752202678067674415169829045676887941325823509367539360036269266699669005307663868253419946596783244210149656677283871042548734580091151314372832142751848670640682578271262282826070779635386949696203426366948428981289059474143777922301274318633754993325860340649564311195411373841019355187935977140057552360662649220340447356185983464020813624711525870280767311619867179843620969293677890854093575625830270033689609340450185911637848211114523398063140473891910848985954141252854834271795575594430010588131815459953091561665227953676793694812045981205971595207856440378190705589535459513543192538552768854655427153723475581226906316303261906503118863096503140341447251462391484714592005914660947802555768116852015901507678339974221733787089778034746284828608920445218251157323253511796621610690247529476471622475938956866086289054862202752208435989919811217386884024758571208094850533891696028087592633581282252274101974816365285607961032357056067160278013242875546845845202637270706912308330705707127248158027306367267284282725434374686416049814792121753996188851175444462357720966697288240451311193551794541173247300671169306465706690716327985961160344958786694227676668438335789671395225503392989143114905612565110469637184823034588830197750291105822128533514554031553221459494932542615556652868326964847273802617901719092032790168830355193161174539436450233033567972554292430560462011499130865049038678251550186937284692619627863225551022693848917227100191714445918040407558875346464611660376425175061891706402305440472933889029131224003288896714229648015410765314994404006634846945599106588569433616689366963385622408120077376560453188957241166354515887990119529727509999507362185139567063375751649064030600913668300124398193477333080962610491385941337533355131519781926494194412586864586759776781526979336783059544151987651814055430243915227573270361518563607528387837061650514521192628085456522539522069949696623953094881504550492031359438474103970984861503558152568834904971356794860980299075122908118737668650367309094655218974864853352997659592071220392606809221326318088736399441862279008510532332809289160353188121191894309484010335942760084082094535358377571622334339873548919947006625785540887373500161016492930907725939637492989833929785347810836102254723098452659090976024005323259901138551960259588196961420915243127202130796599670189553982818613049509149703431595435458497699234064748649389616729399185552698186481099727086004614675607152658831629683836193806207189207966016337186263689496520860095693863675373463958499532822169811925055596067676024447328024129457366953653831512827613108049801456433662680795788832845320575145106506965219313313989749330796105109588867086251212495134020381914726384451266555260014149394370923480305917964887214213005384006264965346917735962951939438064817993366304627373093680711470408171243360442690788460482114546350560172410522924184912806846830489271319030663901204177102270734270538882392758358822743554334076713030633265629486142891191412410817637605623952889763096215180691211099641929990330531640699800509530240925453389928403742330030566904755138229247108654276024190231452059235430699706578109463929822494911762521240335456797562002832033064205207618871066250612776178796009978883723148100173010954896253829527256273208694187221723050510023018612827734964762148307654654173296791135957593295339506907611547382646102724997896337205541303213481519023108527739075269703647125178806320295075683552906463702811866480991933455595176574426102444911300272975487750945423579633807936594938582723031465316126131663273464715974457722919490385397634036440374907674063343499255353732248995490670488500001608055926332941275106827093567552148502169395968472555780169338793316432169382835654594139073607187317535834797456160871535894782674674301595443808777217537527073393906476843704812205108253513249433567911145459354796858146385554385506035998458967854647391210693038677787164749370936250214973317327655354435835726288549626389930271490999737289462656097427835763860198699917422120081313029018866480913969076680515780863870378415527789441035351320532504210597423836124070814377082428022374250331998151227985387039106989831136894619747301318221546080478760925862109603519019794208324981721938066369465245173738077267499640151920806242526175263198877067679735576954241849899978289527129027172602930319518124978753708591995766691976562167317613595324335989378292662337212843667763409311200234369525051415881404840134592539604806605001112752684526292132141391323096263285258117315887529972831361628213137151272438577632924106560471999587843194024617921295054377098691124637463806482388086980266306710664796515646864023844698789196968832424817603191740547862670869493885073250724350044466206299351265491416614321515245559347451659719632288589671459413873364564737767088383062010172534158317104356427957029412785000299200061874095627149484472097767427152598512024390569038851532380668462119272661637361235534768909709624924959311889910043470627607220943503954147259006951233879663728908360399770133598852950379795508518070137385028650819800453568192746403067822182481888863021106873940942899210559033759715870746926116818145003457813348313102705105559070605623413008135374504019909057254485698206030139443979173651181824528255622962367189403844881845939205625612007908461186336731590752957673330335843940419749752750071634232703579643687964658639220970252751901663256549842839999193315264751003119749441035828635707941925472145028645137506247526573394453112409254881450257282089651763617762621285215694829041844112423530707354600179927334207245838664923397104265912787383785069896181571563270496692494379880042175547864619643279898458623172997902831460992411090203744157355540804321655461301827579985498308879858214747097686853805731307721348747745048726761827894202782335004342424319501263603282114582763094774578655570440168480469617497616882009296530273543735770297998254411867934347094736541088865131825048541689569669651162309713318301469653329087170407183305831479982408177155540003627652416764406475733865861848232832009981165334858772360615596325258044327007826453644900805153762693395792869443717882795737987402190390327254288561339237186929128712497604061947941091678032672105828424445583653784951923930325128782864807755767808621420511319568610509523267285202282184120096784674980465605164444743707275037635069982720793882979621139744410941545014595371890883543353887705389402825173499956565062818611747776061869385968512221152240448119757011499784394438821421891821946061993727602104236193790139258076080064138432739327074557333751190862145031214266136603773985650442250536457186829841424510793762562895331397278536597724687140632196025306602271001292005898108951069441642465675303270129406085886435605010615512789740101816317349826370802137376301658248467713837849268109025324643288315444388545214026136684067820788672080442841209431259369745458893031688540018136880689099389482125714158508019994070736036718256269195790704586502777945086810973947401543017361949437434071634809845219844211419665063413395299072194580071020557616160260813656565451144834096200711316815884099299797373436920833673514253440528444944184928537314194222166686042259126727330853618750647558141510137213402343723230392086342555961742163732918906646305677786316637873814849942963705905601096882970317423802192395804755107128967828014404015716647483784731650912029976996217837610440797315435575027994576904745250199070266670885374455141627309246156471849466342098276220748116960466897540765950175751402186933642418363596574984326259948113828960207865575604477017056942886197835068581913154395108169707736317299730613551386835363766358464438968673511631398995552776313912030838486245239634371462665259068862927956581694048110005644197259377725044963784697655833444645969665211993280138781035232049280386597379715395704947852567626399166372768375727157680188532350722004273626995962126598980338903970300169395330175908026804314602106712969378921359535988911122138013803762022151100478898044420318023386784109339264780921986508871642773301869579615384222618029243509261325504403903999742836372482138591412841758326044530617397161062464215855719132380774273938366025243618497879646421292263941196119393486982431473524936394909255676300017302949867064910703895805310544827462905307001660221421286139852162845777139477769354466864405344329873717182441083964829809570200592538402221811897510306888787747540692952456833299484610336489801505769789217124145213694690213954149448357735320848139692117485952320918077906033119586561879679632444765631510646789688037008345915373960246746620729504903225436099069847670170219082876600848898570056791041571905788445929441723761837779852937158695935394667736690720440641088528380174709254799120280847132033942689067485741390565815807243232208924631772314703353867963320987557074649535506618266436868525052286905435957558400661834569839242054576372610298763186142734317432244115299449111115340165190676371767184832692465648385768455204392347982525336266101969851873179209319894382414638139571649601850179680849679060652960309251770099545725955505065022718272237996152089752686181007371551163006972526552149517567661115506845991098353562707780326690236234347445059409469246015010555933310415911198444398572583065104215737080406098041662662121235363304476157270967681829486895199911246739218730476764242647866071853050658008771052290857377877549213958341023348573276351884480143525355159949221494842313558545667866949232122344778457148377904897744433701370967414306994406382441973479449757616861770438412244785142801048815012293859542241409460372390444362650430500089979528497462102141610387929418344563753448188131364019683545046283922417235677471629674807705104515724268316334267807265607668204001142757400015869277481419310384786631438292296323262265965494548978083635791251925398428012325746133472568395333482444586638710708231355404980910021900543530972441363520295042753632026596305413487928215639901319084422371187313354693177673668531634373558150079932463669841705366121164564142910660859295773337688819960058842552227671152497093480946608246486275823729820373454706883077409515994071853351466763697813053348417342838575544844304477283206571603403658083976220479944418653578820944862800235874348350608392301512405329266014832655850130137837813534042888153821221369286716130019470769276630099344175148729844479448440981773060500646166420534600663141483705791461154831299374278301302976425219615276327796694128396141520862459372131886879887163325245046480182762554931675601070823000440224312304197236846753288721935357513911856117475654603837861856380602312411469257011664887446744098708103703102645499065910027397088887933168005441960350030858212237840004957495015889250009549066876610575614687288042658656441074955148103939816669366484301771724454491486374484961472079525977934298530510401433671292447472152176185077551599596229531116128847151860207687085542241958041824973493176236463543346952646658229426518730127270645635924749354748665075609409976333358931034622517872197595700614469711837809209545457838740702542509245304142354448561482405978492016651462320514210394727331078737266206243019702735284568499688381661224060334065067987677232327267979877747760598885496729428875141095571358690472860934979994563013797952820762286233210962598342712034299805918301391661254489186457095980709006633516347185898012792779152787509644742951088618643793445193958124169945958979474053297754853269500047903568255843577265915283938690888336680289975404762385285909692408146723057218469996110732671542172038631614619913292665640149212816584848766991779279332459977343297451836222776861182282878922015802835038783762946174484219120535648998726695354364918952175204926140540043872527254255339829495863871881729772944686838809742195038270296513714727271557058774348572372528415372134667553450965216099384152915471393478372425728531006602413925831065411817530743491729683076590090927409815248181698460906296517782035094901480526665538172847308533129824419017837048218793323352095824611678085451997220313387492406287066128619468297808194154918637007136043360314215599860078530999014450693311756599422995026273004224982609800424812100304508253274795611343064862771713496313123767148603989439809732882915671934608063051586860079608692823562981946662144733980425539358811685291502082992857114145171871711604439596815581665526958838315239123610018433565552390050524850251612253202394458620333449234939130802552932238449766940467092871840529127908421732722214606999602763693572566353307261269723964924132759683825283079535300500874753885001010575287843576824958616287628165716067173868812264023235085798289807925103928400246938131564792960307778210330021307972427081539658001566785550487077442728263543643493056574641171757426972367851431173888882634834919549332035817999812081131802569858872210583171958119456424819189796549206961709255068222079012434819479690861513204821914272968223353393426363972702692923501333169846011175466985838386567592228140268629449586868766157111826730914129823537153674736004210465038835387935021361739290341033492346357739416337689061440414344837750648117040096821466398507398783025057920710958352088939270160674158302363358644567365548968785264255531872605823920384267631994816554691050867814038674945487219304407754055646273935704620487271653478573380292087871712970167164762256672647694769073616076286346441880355320291749191517765249501540848024080785423848523854855587221683822261911134709925016702616751912442994570788304103725308621989589379425687086197234070960391803690765348590431483909359072770601536923997755342881774053340559393360697401617574304199759449104564501410877233375397847844912658656319932291102051149663745980892592917916968730329479595990009443654661873190222964740180907273171637359474666486915759328701894725590674983937985180540697800316326616332724472745179414071193227279100250493083506856038564060646624689928029492048796494689172086504756550490302462986239661364553821753376447912186149031280464393174624774056473996924275677909236315544780260109697662215143952779920680137313075772297075715318908289163773810509899608983647933257827949819920152472449116665092994478589784817716253487395644757685369433556998756354087475455211639987004544037359512080712403657976976271965839500655447149289553653682889418554945846506987322962637174125907999525257596774231733722292682049454009997020390362509785733681420001127995468552167193110497627994837859143128091488061631080782707884276509523696059339293829465844136485163277470545802827583236378685063373970927073023506619696946688517648773071689951877635304814257795051983384298607863155844459558385100556180405856438459141937924028241436961161349066742533579847362164881720977189786568240949554243220589177351794636855876871209685843826517243576586843436489652912765672072412219836716967499534714315477849755432182944023328475257041437483110866352968704711629801327053505256990226186905032481656343484401953785467344149975167405428886311830245472530198524002258241507724357634937037133413788358445823894248021220890059727120462324027372028420305859034092699553373709914946094034109650094460979126743770901543250459862458326991417622605848931455428918352370176827308322766246962463864715427014201844504111527354348983250007603049662453902685989205891205972856786240842018781177803853505067374868714536930906724028305730372372982077120444094927540570921578249489307365974861241480921610902179463193384015891459917803020119585821217239456611075438660283775650804957525602805301384171542174921143480301515727735248253924943766313578698453896347976248263449888170307888371565203305346975099940657719620461491481069808194439042715327374316638165159715144483868526224009775035473331434548998213886011512963251467294218566355558280704397808948713476644997073566094664326148051023720281158199879384085934186632093092590692884687469749815193119349650056091810563780222450701133121232433162326099161568414171855776285124607155926151517439231354812229057788652750944589365913899384437465455574338473120373681143774770323013176044927204322736207120493495235102005167133069751264612502394103742234080056513537693021636957730016527961121279417755503801766405251481362579382364823077184655556320481826745689351027288205339226647706236197648667907284497522489001354823547895532227861088247598493896597880244771767695310922595260051034011532462224226226521318191678694112041414597410865980012226618178215055303594681246769394818255387918781789454283550628899546292133282303071589166340889151861649742038829136747015570174173367610277049213902167561950980046292216444451581333495842530569796183213088168097948742278786639361917925127198475220933368181686497475058514992330430915275554924251370977898242978608648304035246119657124272336031068263115151510961107361610444682160653332382706539109831369176338790582737840198523406850918699542349188287838122590199498834202620500209288538630380363471922269337863632989090262764871708196529137565211457681182311720915400859350860036361919323227232555043444367016125402059917178727797339268785836555572071596838783510793826919136841201723064008750829474341583134242813322021651689535436029243317733170620434295799493911234276284637057642671329415921438584667189620630678316613847842219503552753124068600413950145418374315540168912628144085463340953625609983297518101686628611787545480188590739752425917134961234612533413279362423870709366118424682255864954165188145826574404714581576152621448919082004518355473272436684951105047743117147879144003862869843929386073469180417413668581442383136597953173891555226321204505080525943649707972002809128361362386032730509036283842135369568404891968329123271177942145928632465582162820043611364487304016999416620933300436045165882034664870682741447116860691439487110929884717127870689163245065367656522175166127002948453429452767558271886712716309017194678419102000923781255087331323809663967481017150581141796366902117612288349860024125551347835146555965519557753282862888213487050526816146370320566163803584047337091219040470055247978167919184100276520025169925636151421417936328664181896184661563555066760316481000952673241854307099898981340411220084181215480668729708821980343648697822282369338913998381365012855641426649560195019630462913678808165086594850090851058892581340071216040072884739129275235701119789224099399330188918576222871608756986672618475585386707811475720323284701997325400878974395869659123708946779362117063495185687820534900758737227071448742254233121440304831252051590166608217882362906179285983236297768153236721100745880230879748145607461815390654816170113944531568131332357892533001273776428214523050515727241192491016940814711016797562234339564682720258367623710667004171995157733103134924416368146519391053978204127583434272396055315757143794331410421974243628509957509344483882084687508985183059093934511473985814897762173816182533585078852948818123559269506093155116392117163308099222333299279710519403508099856021931001653576811416487543366652046501088201445840723543265583980960314723759746655226088350345555605250515190302258719584297754646090252294620265573603469318281055049722073060844413949437924857625211288783499617495787456486364122254876327217370847942894492245695441198626481332825868106427066890580425682792798616983718177362549712972423307165224444971305470397251959123365864913259500535434502364900991093142979129289383002391807540926409377081348392840746443493198968139514998001498630629235061984154746415837540360184558167210249519966686518548122235724027761365937986717728175371689193969109307864967860728085168044456738884354678148079872177420540680308154473032906276812513028895018005464481415661107510892055376373092508941469024495463017159317746472627929823790601591974783922478398339982873178275190657345409779458539906388422149499595249532880884104112477959426941646100119526185480354782877806779604375172464468354696881397929887959729536009704392369396312812234427640554228653058743160301900102611310476270863911657487354352984123254502924734565441872700858743812808234926751434341936945716056414968557691278663843610590095297767954276523902264759154964614243820926778306392791294899067602859226107376627406146680162884400151238482409370543999401137277046045840802467731735613642960445899744609462171347574320053318708773296850732285260320149083622622078028388468609129872940376961531504245083807732991313644039939295576766223915077713116440473458507195699152630839184477436446918548864892228591964277109753421615582913052761808278869023800213350548366836198998340100694651965480136340949542687209349244007649947046531752351092648769649663251110183151919648909268411417514806635188750169735082618769536105202977308935244462756007343624528676022224194667213518000716556554014963223156107296869604215905736488776365265526892821020550527712949955705619243370794253272524310082343471364430952819061584276058356211138182351134429256708381515169224249475575529880970304566305918865930029156990371996972661117912622351977648296106901080922599263501792142558408856020483542595688006840886219919972186500619760415912133317863292744648135659446943520453544738769607179110556558271055539082932999149431896244364170803889733521338306842587611267562347380373451442855953221756394349713767974659873287519544305102776955570184379166313895842661944792868026247963375038343563346066157810668576283599491441476871724818902478511505016605383300149982032209749474362553084841562919972389950375217013426294800858770151781594079370822629318546291917724639694843256220291928208863567255348715831880544734743088290089454540279672508939678398355462287688696474311569516722542806444328006679288455703602082673660788204027683860234349089849163339672154489709257375316800308065312374133423601860503711761019831644044771144631225732906056759138106600436403239213649466125404183092381112047714119478593005782522978427745966819894080389406944738772670594460991448314602009121057761175665337921145889907202799421371325281036860793870967226551974155197814374573418339719056835355733784813704924233614132864452787767774089321579776707059989367880617207851206290055112530373761734443947244456833892550840124623465263762176040903345933265665970710807890264284407256903968031535653729609682250182798465311128195408953140445965871104228196642878295881807753032158625393603006495101349685987712849298966403135684656164892404753093981758377478656250388964135441797290234453967814451579357530068031397780620055635347141366138483815463595366704859421600540334094091616332951060465802434498015482896359933057691228811826055812303923404250812853357217676690234428740078767538922944946909650249403499791055217022529493312047098638308700324553401483559507812605383253145076088762576642431514361750795716050282245274368951127448781569823283481047348722431526103611029162337002637528215968715711192358428163262750767751861539022070587719151920080534989328531922371263316038505878827125510970669318455352244414207388714265413236480501464300656352538897934963591785599104745284500758787186939953431494433522004020635153527131545803346004338717370047616546154752278691220146293981287932570205344755735166456523417588919435430611165836720906368490764588080588405517563179948039109404492537389277459651671967507595718904587372221532028709085827942527841703993934549511140383447087101628284857309050725757732019505079262778557651412732947576410286145616374523413807801858768522202242909985968619269830181913852256706141938568952857452117168299621614535408932098747246230243495272149260611750418414353856055003247572724782194673881876464175503664661484092848091341964725606588434602751166439020520828827112621090315717520219172944011416193502804139389420399332689345471911300715899503349635954387834701516208325232965365252601789493895645477898032675541608609148211315041488023455057906685253612258933217324898429027318384253225541288898708255825543789802755911999587932200074073976057415432702012883068108548296446149047663163208039886464133759969163938154313735611673174568482005915660667524839703973066325870499652650442907361850829998889309527624869329661036308479195524368229917183585822973973971240335371283554940640323660624154950833558949161629021383929122008724441092775596669710982315748777464522073803912177205983513821915016775590685432511666841367038254492773720177332108843190221671222815291615421115862215517502657210072431293821414466431509384651993738183674260203024978865910303149640643571911725178018723802021062491584892578764482026561376336631401964823951846863961350462056893805796645241458495553363870178841568187191106571151082838753815272164932483840003471552454116159355129244068772840446137916103455428789178084658109248729443498928114071864003010799395500921139317295912781217410727679338491678445254780175496438665468139348769879629067054698940780773076237627909271987268584378721942178962630246379031151135522228643792774704547655926964592506130364147795344375931023632345965274389966149552175442670901033273176960712137280549882791680601654746285952478403790575208536625510467038923892657907618862880658695864790468526191076289548962438731925755343298441749123282926957248603908468429337059645688316042153653941509879280576676082538444037351663988409454608358784731544542076379220566772816983214550274867343503678397221403628614078357809045653710002699220141337883261373400202263050593365192071361094646560432957854352112277605400503590547109644169329406992599293790965715868845338753343872574361053586979237008661125775399987611644282808753042556313100162677726836109899503920785206197882068562374102080240314368035590667512106057861839075401419416304006702360407697752681389823454943032965178537837867566054999989757969685553646810671915087390424082871874343188198461491643774249712320987539754658457122308475979020464986615231546016102632373637293285732685652816497215318902072535417201683318045321921684603624229169133508115112615809103995995225582700461463527042851581991808455497847353559795487547938203506115135852611955451744946384479688262787277820557934927451781768093723436006004230101067176001172140972447759643823482801376449013156667534682888081119465979083618216791828679577645430735688882577796494494039295432640511390751036901831791590408704196449718591139646429112669135450377133396496146273968177055362887467336968902702260614324148540980381767958054252124318296736877789085101078832664874984973682736005546205852311189997357911119123552799015176031153362040799433074260367791004837401816271214956157852484397971491516991450177991932735671440882344474162605416329129529668510326436860030304186930584253300432095153749920328043105624599843815444731829012654486025225605705526667023245437386120215097093080230604016399876504908635744706517273156984248868947833858519364869038753998259208658671144401179089019716905221599652735906860863568613604214976322867888293701303570721045354453300579464113417315552947162897928637373929489782265559076344395602708501264742711509974630140094535842683786725312381588400200513930090487220668900459086911099503847962043671116277013865282467072458333744731332124840979949788150525640244351823936567457813916682435306797672457790129944428126261109672939189416558100823368334389845478857447581504980772174836108516315125944808018074046733355017253611639112523975073300518086196840550332703803661680379171211370538227356407112134784211778084249904474826350204869790575106488668549957229166530256551150539025186051702362058065670488035737827096551384887043715273953855495971117495568463490014322336665173686516048596206723398182179843951323155034759949709363281027296970932280526125260052240954522287886123216944401830898498275665801596142784733417309013576808625642960545902943369909821072070629845713381532175499237609345238129234416772012242759281381075342920491427387983644452009471761123546134696472972923042632580795704335144155418139446115635021418518063092818636663365418115658519854020594153405409981449562314247362294120260321541984229025350305728934601201021018327585690283656005452532238727975292203797479072696882064710677336708794429196072344120368402292362732595362136805254219345698391001229382600313443540152619195714796029950984189097432568031794081319883671142976455334726963497841480051065359097440127250011483887949420375666655459315760454048778936429938202096508002291928047480629734357936466023119705293187683254592271706251870377101495272324033124299080109193813529376336101605131425964119888238003619448912561409547334762471224905353338670322510929342888808232741803484373619318736090871719209528222547606713230680182783457894826668931843954262975192241071878863575070184432430457817620795015694242682660925741324104438864173950171080202261144936784939949537529736787131802255638366998226266788892298588362353902095533572469897872303571689108348393955912478943837647138044228190798167412525668871875981330542935767163522461257592871967639926527308746285694660381010077515617023493425305180544716173386187812349431022129355424411129140283458285569254234819236820254474555767810210977020386979254773392501078186130252385250701594298424601828833830068432603534041105262611042786575868983646726111036323434592419989137578815718646824201493245892001853326115332813242914283543269274319513566687991736586195444900822584840577962208587368596374982615468710753448053114453719166396617174848466832387522043272962048512102898531207466849002295687958526332868739288471925802218641831086273365122017959186003175842270708593949995992867419463630928804788279957914062902593337627849241746703396351378871185323837806912202107367804473835434290812482943650908694676133224042433172305740276864611062522572792077604040208506578036668136608784322193809665009642714597771610191254500921705406958945235839138282062615463270513155910970120720501772744184103142545970776043555090530979964327203614650159943008027675603128192141125696518488750368910515993391872726118675753318867291208228221008599990817790626937989686431363125621970817777040095205954438693227794944643524297623423384506478096117271885475218216301537127596493868117585911724932423136679294595468406622072869513639965522725029321406529087694077557682591135752355263239803665885277031927237624481587097572267195316378019968828083686067359675826085262160232405818067815771674664897960491795276270907916019725490936045059162199783817551600095133918004685121675946475160136854163983358995880339340778818774571252315072357385030847984572432190367689763054148255713392560105097587479478505267676459886293876294071918371842435037520209479638193627573393005170403158831852705107971168509617949864239196240094351207898268499142977666775193380308021118803237073768857840349908555365861551109703041084017438145387438283850123034268280695887142178685808118774763263417546599324855908727587308051765112784184830066609203809608035911334823554871716500751905312532154221539851149412593316815951361022550252926508784898076316178461487462991703670861764548707163591752922528781668231923652331635667684532602218985313426559013313832911966450379518385543089932976760411686124631286997758261526900827143061747382496207607785705610132565316181285210060619900328467751736002327101870053094763578538388000477339941292567739986010438993176559189808731783819512847180876802276293014191699261966811784925870568037191715604872643743849739117873834895666835027451535064849715668506460388022769610778578296012052381277669667425019317487516676179515684676691195653953143465157186299216238281345955123599277422176150380911839621792414339549971088560025424971798870868167745937748140526603226523239920532946583817627185764699689394905699522187267604148660873495623080143843619819247054671313586226657160738867469047351089320091969056665608323624278043321153591576979928329348160348884927314921414057062310044604133667481262709051629145988708980851269880334076019944083274408389095458243983449208798643377913149939591674325364810947594500037094157592388930235892561268958515449325585054352366600917221774411896104537991107608539873291978820730196646061939034542008971076567724264969265244173096008101429983604243936439697995537441017280216147514609121738868419003083352753145880195659209218899208232960227899215175733760214120908398847130817882633661924706736594422548368171723639950053424398728892777184000850872867723874950924011354462356937697369760326624828179238461013964782543196412167450674816641567649678393540761025858731047258386912096306026718333733267064545676722306019673144817999752893148039330486623451112442869872331336845215373100696097626658154260919495975810667421844948641602225652432349366744256481040140546262346165362784669639605623750527422618854538918847427094426159171249152335544566918565481172431283628688491900322704788963554392332955202376850024682725003519413177901450575202019032796908654052653918726230502546236711556838943477349246233182600405796136332021377203198399373295815875634968375004504104582530533336740571975768419777495555143187872768846024130474055571181374395677341372370702160769044562988861413560799454461286110984304168902705985544047155582188958237795204701997634534823954590714853902152936658742834678614848191995582688880425932079724807643749082082073611430747866663406976006256320564874873913293251310994383200958926667582771850172212306040340117045183139633217594755668454766181556030843926568802101045658488892867918780877861491632246185617510961398381798818841365325474349335059265717124121942622645843600741115881083952669814913294916647080702021013886553370359832869244490304140203839707626030725612267350183687479769434027976690465468573225676958230400698576836452126859957852990705776398985203645279701594931861912625889817422002585675352335079691460746319649611658743932910160933501620243681949628023525029150988117760456195702962811319747937858621515849047811368422333307514851948884770221834641363780858019343781182064422119578525123108695459382504236806482696303869381572505098003151252979245534708829182988703047191998277546443607541376373300578658628174398340431279964571680507230893716097694829441302504152642638347029457531247820376140076866184437217468335284124641786047793494997787393422208444020461059318162987140568460928941179551954437946809521260223674285762318411412186949284086154336405898161115442922121484206926972149037804551381074741522192944747728412495583840236303612198807279232086478068609097058965757858619721763271202360555005218264827844138233752483096350530157039393786688365141914567759859005711459537811369616001041931980983103888646740575273986793839140786880190961025389684254683499795898918319316402088185190441965194699360175036358648279658217695687257935882177346940940597824021974159492889409126322322184832715833171336991106664297407812717531920100547119126677069751653694293421476505644917854004067956702938151960192393527578344384137260376094047816690830352142010103800166506900254809036197059761130289334920515506980573090238787067238176641819738250739369147948222719019662720877604003621564624011297334267476374519431455715454522417057407689044493313960370493319754379099077415695693429295431029464990661487509839579274658872779304821520699756889033931240255020612501889751291101755098705290302558225851180109746292161970507073923075492761637735995098837386401983524183328386078842893816566566275333102846413895246264655216685042849870861029943246881289116847232151078413623702107432020411823193902925157937922735253201854130313634621228840298491655094813220290732618246007211530840108050996713915297210489048023371652316039104610027166508143599343338584565558194853910719373691332804467793228458996966281504045734412637857214055506122694733141973143743747778837042691942558755443310962985449929795669375436195700459446243989706294961447727549034798228163856524275516777252120523514004068739957843582138045765897455038849789627218085110011304568820847064135477824490481044386038924694089456135984734215615981581856771865625636017252997149691788756869303643127280205502330096001944338197002956000718564764650750267345870941559612807593030751306691243811078673475737184250753213765532054022262554327819854453258807868338433757894989565717311982710662730135436470887830475095402892864271401902849322605550115251829260597032560476665219311824443414479924948941566436186375109603251749735219743657848764670067807766759491387568421983679049866462219760636385921483006816805908690039267563819601896377835501919346967496062514484444272746843832034495559686184150729229746288542184299691595464591798782121254242360803167339671582682740508945518282492607201464745446245035563114095568352313281034936981290566818949369588494067578743466568952468964440224412833249601104953815658332333345324544469183985323772841935087959393404453619617190694008355353185521995322544254779048594910868765450641452189836949539835986539834700531478157041090952759170268885597843296310976979009641582847648849857404302023571117277668055214510681683391142226139507086777869233699055604849021069749929498697885724753759599419902826515106650919427110223443649794589954068515361669101173343806837607233182704344513864200123267788878400900954682643615363152808284910517857938312584036288725525858841868685073254717306453857840803328829370912340235836895087597176949503898873611674241615213147110171545141460544099524090844363134393133214127427988999432648108000866165429029970860721984378528217256524767024349034657829409866667236681015977051860612621704039097864526306044739539749083167437885666171005494631366899075931414689292559762063549538338370219839636616020325457929725356600325110267213566940398348975482753058843728745309504433577167088856711234244450451698094329947418051304416740811785025751265573794728451144231386452916034449904767288155205141284091324715579099553505166367001781019742924285808186852520795617523384734027170846430162052595958356283824194155687562946303186902997185110527305452436008419834531592128172662951421400516237619001112816370176755887760925560197809883455048270000787231926828438631852965421602286157269854128540768802062156284050559318359865201242414868552749073440103949293632328534585913428134189438164901901580591752735066242371918645766646966563814446608276722820577058498974379647906479214058830351333654175684007857508641452446162721021560633305887613924529876246066144928308856430789728215993368275380623800760874693941974348259224495790768989747385603496819605052257136212696489331059590503166303113925602161435271937173722494897421437838283443136677471843162261125951789928422647207683399708270094608310043004703352631156622312714083807051041975622474197869848518343597147038620529338945113905942219749798141078251139528496028899782971767848311603897357822382851635489754721052504095100928161662368685029129926322496336954513266374712942925945177257763481160963634879294982384585702432172363545320753403147590872548121157205677056925946287181516196070418614324368421231464343699999738392295003624578825543346774976158767377407505043233366844582565372332538464182021751262838302579841596263703445893553138164379292703395669771812807525864138538998860681661368022448734833770918191634076697513511945339380934441525953327339034782825970724411363714159428941543054516077145474542757874535365970910359843707512927139695505474703760039800052302875862080287988945798979209565761075580871818939732171191240333067714023740336879436593173107967066901444391135921932887689412440169927236039288503161807369775030759624480739829573074267053512729198877037830147247084823607336989997996712396269020018273108236241270537701697033028394146576215429270880099482419623876201973196541882682893840154565242009072076451648370028208043951347305353254248729465120885295690464002688233770628564645241048043177851518046326572549007636980326035227227949484525962721916657283678039411132336470733702785337267784956199112495470576736818910589021665911668683502533398662844685085560016750256848007803535863987233465635684499686339583474332680821260336910651182318004926668031560349372670742219009430617700052626708695121897542438727445838853854223455077787556174552808460590729475606881107834886704604993551538468314946322938013365029251948859543287808701946707826242488288385636980649684414042080789724124355819690909698993344387533002020824859733516800111074359981519835376941631809306435615741572685165826930053289143488471890487223991960301287537475363731391774273079703768648699605226566075985112866728558779190573872388114673362755318083366826013123150707782421175582919502745537560097017744291170369646415264137544969406541104915994538422616705939632919037224556455160263380746310403767235078051811645666561967482728917605200764573640124511135171720904251623203456059099973573449638806237506724535358249306359007216542750639601651692814388022212730040292810702748307362239186745492224855284434680187966307158029159816708239680289646950008831229398283669067917635641139076425783015939298928637194231795085100148271666149131017807904210294340582560493513011328275381398628493027675421208562248166262043862098811305114528913440853383410216467691339898832407437086084231563800676228917762247492600304303332318368778077826112909802118704481365690626552851201279384108167929905476686829836854085043367458452639726836959445243833032152514452063831631117305736186681777224797415922014736903210615181746112549265172302089493592373790290630831358168937880565005298311295284898484290514141884618775151570513240325663250259521256421521228873307352362291350509315785025516274877287923772442182993385896490036898776087302663655234882658764359703767138480427630188772111456086530591808752594952804648679525225502948475215148959150392933131678398543907155100501110737977078517830753192993393075121841016186063135931529362801172420181903081774777005971058079281983373226659382953204230503747458266192059291455828873935014765186313121435660305551368574371409774758884116892073048036235208431855284309207073664784890981279249868025853817428301664398194711350797728757767669211177887425336732588654373552580319242462355544834651292332669744004748146578565528636665447711460101586630535951594513365349779606162750908392141356249045665961813450844046656531169497351538250523434469274004983991355836618107294730826481946798169470742807243509231522930619476366671320116269818078299082187210536172504778180760401451007182163938794489266222476060290802979795048427193423481871151175866929180538302651300004839188462689823784659716446748019454127736507709480708278908496198612143445001230658041583427219691711060858454290197983064319412568503426091693700938087327102199387969311553708709939309180704417542223980804291785653136922593624019324606116444933220537433231344017907181675109620487382779532713425736304922194684658913300151108860458699274472207680844120270473719390865642217914054692421104663251566256226072939663938392447774266153199257057601455238044968559967777539816764745412314757856034946838047257159275587105944097253146284324228612999910654318619295371114426966309663183619017452793686438398085621372812663565900406443617138332376794898421146407463361807324523634273792899696936125714171454935324996547135945341030146749372730188754074265263972890552970131398262371719751648781340702473271603066126644116745266857165484729068561764994667144300413452826660322332115963066054732623274220633588192090683005791425977799225298667952845469726627908036793085270381199412651699678151219458415339833966792038031939542560087319084841538038430689143309985459621832267642720971807112545020103847218894892615975336938402618823672598815212070482932243695560819768077682547740993367015261194993686985752568114871734490710814072825030480953874951247398098166454006638537294023319539852441117197731463999235443518255596816563865214507601498605503273004167999539199219765516431828225094408650756863258295955277464658946268987732341594004193641243866814819478049284555057561642036086975261486186373029493295558101979204158986319933652743371181176600097650889705082117827527366905271105105613455384560678552072958352475700057782099931272244718596531981695709724189948176696494438081263844625425567745324400158864016341958699450028882509721161971837956228159221521263430122292433959122666550872499792991267314685173185885385915498349702043916038904247865159324756089227828437616131147225577982003269251709770274891613178057438010412789208564017346778524530982725270170394814487716789560654304318486573107800229230752891226059307725439913733003450728750787527675626316437270147043325166907287818394656871209499339204600476643977215515526886264640467234052201075450008952524921430636366873025987620369193892125243776915345794011686524589018777087165077010503108324879171739761759209973901976476390406255065986176127677123209075335145856142113350070192764401647311342117222355325133909125042818993234222615721559248614628920541818650892471920141288565426766073371600973658040538970429262967138517993856409242207677613672861943776723666156052417019633079488413275031149401680990699562423464879726723260618167654624354858654525278196544975990648334670146900396759127405565504578916173434449495461362639799655583483278072888868441462802022955164880331709032743336869546262938404709547170841720615868695583530145611870470662241621950901232923014761938567347532843200830353703872070475385880536688237874379565749902356684209319897889150779906055763987842365144197417388798030514453644003338532233288340216076192421742670975801279558337203249790580563444574529742300275678986099216512886888695122014599221343495322944351898517869676767220422882338433943877800997411238252942616833993709953359303314800605883798841003046350826726362542796706672866757356452670937536804884413245951313128057088628256095649967724218573756338601034928380462429632363339855241785044284958408158826884159747676707570223944925898769991814746267996121207451667480338474700662810593082501542001658673251052771678417528979625132529683742357665979257425360571824180269254514419238152998084995434966267104388883498018401316642860196416257302846165365564147227215319063094897856248980819954541959607907302251930160428653194276282902203979258658106357402871947696931150141017597100213539426365351920188195088289414468316644861398598155404648085179223195998668080796933953299227030153971423035214871488031386054401458467462979140193821121991696589543038764355317372282705597462063344034735020358000217005105654880178216565442831888934712843522249313857174943880497918493745456240943499098622317547322882255440343429573703562308362593025948229522942597846553617698991761833543172309448001310811348815361668474270633206321847823112545925231188820736285762249883826551315573393283960437340755899131598062961870390838345289483537151781662100695458006380664558684837301416135770349348353395993279082301426747652713808201033785104465082041797346758786427307429660801167589460366592602374676613686765912346444229605715927292982101291338209810253255934757697162244138827303433319251991635564405762517774737772103108300583561866489078692208502739379007353581000154160084836527733622535514507004758490493080549325232204313641788288443627670304977029611128219749631606961370597761072982328833070379558804758278805550990902444288211879719840629525222871578639152690964428092899904640047430306820467509564740316993666336164008280191070970526361540181803543625501261412477280153176264166037450794956494327581149596311688111527123834483255583685523833927326487666006532640858672945214022178545713486396035229905387310959290379951095051790418162234175279595264398495055153184539029780701839854255590869924634472502931309755145210839172396341547420689992438245199869769840661573846939791910044032096935291488174193167143119992963981872697959333477910071081964504672647672180994738593579794742149508166100370186590661730169224673235471319621840450705887939773207893856467343337470473365026522446523203522316269624888179848018401402410403710475017247542843684431809088608544681145927667143394748672504960794972051252216122982971186055591255713104463486415525446240231992415486390302603223959310174069084543451130150612931218039857828885006662024498270146802940877096791258932826142335734448225091694210462390197731853613977816573274491229604387682120442279411717740065718181946474330727083017376052703459270408930022259516085847188571676297621675547440114416588631645817642602142981670732729483172662478350013186602304314027548137773013961702826020094711824697809877839774110884606385813486332036151292632674753747220519431317240802891668467174206887926092972841301590767948972253956958599146387260322280577196365027494292097649626054056036897395770911226288918221755518623749902701036874880616272500600665878269243369517795041064732097069051869930987653756635637213063173157566022394183383011560560449850653035856681818747877688670620992325083200224089053738075241704623547556713355665816247974276089533484168729259142685004690419975307655112998835572666854829732384875590253587102196505920403686396869012110626520380059265988722625407668243452591107623929123330088115156271745273356997939448302502462611887292852431247884472709193082156547653210971472135500552319995448488616618241220080998665954971328104148632918449437765392599424659017228283725689145729018587193704299679669522376345904154312158914259891554784669698896090729977225814639673818566450091449995124218693802873386243761524345874059441244530054241762964591903334701948627886026708888585959006900370941113223007175558167421100295641896017676829827123585025485577988900101500060862445974181694885424272991180562805667955135787035529619070902643340539641540204164932166877353532664326732513614461924316414066777480218176096554204119545175239486350088335697499838720072647252419376995491442240719005670243533484793209467243088252613414488693605485993250231205373212823337842147438609000924611245410429262435124401864900304096766198621267323589748433588042669758590715583946025112032539368086875379006450257216932535924135784163389053708305888951108144448172077450060774057588289229984890619566360273576006441938943662405962040758893961886381899955555435404581076005165318866763890019133699868172201444441603086430712333309976297909133628343114922684282985008162331340370343850119073282104383204446969382443969479460719091375318193035717200126191576326248596790011266176462783826498821318641044476561892207364588849605991884420255873076201409822935425824862410912542698647405656427261707298046925887773020840291466650992315372796725430611745482702107256677770323135458880320582494786078206106643813219013453388322026285422721938492127445282765869165183814339084915466184377978292464510440522754693604084973703365345400148646416828829463858151169359984935404701059500937263498425023777049797185620425220571834399046483204207064506265338582200065091905021021947445715375475401350768734045657355570454292040023923100560723761807735188068577022265521106182251525847018825408353672756618620134656771246511746676847058270181546311529756219687035025514946209708968381754192814044614645462581551939056565602783314883512150402523058358492139587842469743345287619887858455798505736013011547923080047346923604875906380199518864169210465824996163706780103091700980818932913991507272402391909289256330123427317692908470727494440424712874905323624852289784349247352694475774838872592522634548357106383105465174705151352395535898877230561475444684930897179318332855338707702971824170681553619778789197764514282114472869202202614190678718012800297590339140976721655945732370068724267614104498436283685790167368148776513003674150469858771929097614465791597784145162277532660279264572425159314460148039912303965632690422391391757300330502641139039609848038555045143690360747631971813655196157583404478276994331074523874149152607985105877661410829107020163045351404694917502910348634683320670915619470046605769597552841240615638325193217655926783672542541921264024479715792496514192684665086420702638200084275866993714654875918087929929097562014163129572736344652359583848385152130491897789882047522000249135543303908011308775282060729282691910224487436773804962562862011292565081397190720924612663032202548517158082622967000530707344793689814252982467555371716766935313779972201853677584776171039010448130487956332709520652565881216319511051077028780961814191420048015994671318970697100040473768525125859099050612377568562548619150181434579291849911574761631433998041694446277194339722338251634296908062786364835580923859718730458034815918377554695309926747596122086993182903368504778508144155309717293827011989174985562699387281885088329920609646059802552547273742057362280171289114541065655677433035183905917673586832090020098251039698072205201719830376599495522684401113986387791173080748589911234075612284744043838302358839704130690443587746541126291185763506663623908349638607146746852102802250588628326181872274701687044960517012143575182548001522276042145830007165561946110595549380382671297843463405166615609734211801591850020424964398878898733104989255245892523305000465022263743022643322492609881842580878858387994118486698001774315166501249811396520129000702027107050356471629985745867543686874550336517765364678591287920136689973094170830665556799674083298740760645713593561503793763696116780423624413606165317407652230927245004696468964019204867376114656845622975805894659013508903871767044448179498581940074529588662362090617295927367542729248341706478351697916141550343515573389785633723390199710360933955288013219495186595362703333453603229546208706478092845069640591351638794917120531786551108327103515452116335106579228253261628194811250864947474059930464313895862017038366271217259057978398172219681468945558286283141830896827134120530060816784982648860102424751537082001804972360157583207504918589231357794173924174148999984018832683226761535932910046055190098049806048208266775061512244433369512506211771820181075845650441525824344899275619829999602163585937153297912135477200000725485003258191586527863341291706380221941716689813755433982693067158674339057356257836945953214833634456195637414160598691084690886143589031519632770354523248851096939384062471933597305795511584731439190213576298098447657851629950323301890174470332374653543391458871096896352157391561608971669463576068714147507280206713440108528871520556683876479466612702522221774647975978372243730706079020528246330573772802545004030438401099032345886814755923862754894998255924625925213735160098400613988561089695839185761539182406160123218598920282651492115117777328559351022219349198676125984808736169785152833739929845043318755590688610444768320131257705110677879723960320094834641123108361350530206051029613759330217163806996491132008591306015910568647970266796795851146291661730628188809741017985000016727319225119477376833122627305741145097504062663590557895699868162247590451399435972160535034494060328359019861530228996773997025386172332228125052975757465308855008777260352957615289902523571042062415726734339442392184250163812661870071337616496107939941854666005332758466519899157628271151851976711314903370526540140389632404518647746768114695925331902116417293619424964444060983612626455441487139105813500055175474676673552452812391180193599305193531473385507989798286471457743691507440408879764090409698079093456840033053819424307817812897827156448988965569098566866191825443675248090854750537351694790166557093142151559330400782793405800000227478542213222992942175271061954132719680844509735944415516491541995818349960009612459669048865707002219480469514391798705069367798042760719108827289101676015379272401615632357757769196789360185958499771928372919840487464593597424789178385963087846155896306422178910255473811656932200638828649169241946673842734459382636822735890600811799909589673329859365484729720051146440359501919361656583083147421308915228796237640520130251375713736335714643246796092953633942235965242038540622069410931514063831577028795373349428353130871785177554850448101766346090507718325467513521130443139749456891324583298892612027802046211061546734215933936392040882720738428097171121035486426623493439698643327867762738386095214997040247212242153528934455820342176008568975800597063004726452269399560659400217830826074794194084433550534906263125918361950973175546786657040913736623264895868578441309858154267604482434916166580809021125355219562293872283983664041964634855230981827902303334783622866368870643643197663105429555624102107286459559287256181892519260241049661871431507927189064731497026076535318485451389802944514684051450870593099257021451238664542717498829321501409145601026200603641872818399927000350620738669086913136419453749375188948841348490289900421614878794522951103769587211820284762382318154942333975739490172314489089515559308386611421366715298532858840125739107562876335885618446844330044289789512336592887207311596771007644188437583539438048582500581344499072026901794553459344727632945824592500640839561077248485796579661236375252420594569153004165094568673508051654988794032485324222581934807988179815147560388133952461281555442063552905106177766380815496158099765917392688557358093501120770693994619062765398574899177424438529980348170829445342067119710559801000784932154393691138933408658004064261305179862816586740019037311803482026085992394829094062625893172876121063816043541332150027597020329246912214067228993609754279330414258801564976024963636016840027797883087202271704669883494219910788630716103685405129371874893477276629540254925862107661003627780561234913951661589085890477102151216426064187394809608390406754908542190168662200876940664624668008067712845056159325200150716820269060488598875217513748938347769109282912744615001212071587132067001684512532537258535842440406373479869242046084511299502515751670352483751892563758493790489415574006517172126823817919218566385194186128802479844708589704009963127152790711142571840312964964640233481520727457793793967484268815871079712633844045431120996445220041855719759619973890248485092606545657169583240257525213540426420500932339708590199196266110259186496535315994001960315783105565667708940299947664817706889309485515783401717727168346641286189982756915689536012515327858880498126736336484040447481477596881973452168031129085531287641947499429502955499245302981186113508928203184665501839112302385292762820889354857400540591372266181793969275023109557837195189055623313603528629276807767907505750849854101189275181306166117887862605515841920839941106184719194793444252413473108832848117721998385651313729514768821798398819689644713446264267989286555421535012098652275628233289199236865427817904451156325130101831148255388929716952472686084051865077644338604963064341937386874237963751463296975980856083755610483703328156940598823896225820074888483666166172909346627070915627562427413338056191138998785436638165599278894587357367659988294476868140348036694421250413737199102775033907164897368550324082472323913992539046775938128203830677952453681987226692897765866592262627840247370587344567380613675421665137594052805741444133284055166557097864187237099289612683097594557092147522263589365097142808846403424214278988871976933161204302537796936426142590276665245464693408174437970427253427509226101697513224848575966829247204618854418285383832272961924362110574774685511550225121159264859520379786117534692631219998237427931968937581590003742268928138707035563196780842024175112050960048400386532791435494164645639948579212048366277752331481871739218060140526821163246847771992287141074840833804669428903456841649037103680493300073272250306040958521635895404241335810421047211250824373769612762246376211693175969287548976136305921749900838421081719200093993331004429006688362428356518314994799365646905708211551800729298686581658186602161520919974284985904796562786827389813258993464267060936354815306530902912888894189493653863387134151633458815471377071406997745665693634083094422851036627289908305356567509832855294236754547062319565938984491958486227227793848275327961953727467777819535810614227261144193123950269843464842208373589279340611554639091530505446517454601756665679998968398967329591394506787360702704102031306942578232467482584494742501951411213006452532917027930556316294275812319979317269831503576249953915576482283093014448370492190209455125482113645798943669131242785704700509961805103709811067074694397160194119076709924717517668838825109527850138761751136709552202120575993175518739869353440765001570172745153277417266621681447135692418884940522304028595042098594113886646344918543995606434982347806148463195566352054625705236233002033268780069604926000890568417638206428155384699963852949049679052362506885969058095296145292398375566847696743304524920583958341861127567983099117933131622607833615831978543770698813408773127483911587795308518915055692555289169270435313209390620493380137408705508039637538266445798670464505473645510165107508113006221063790816407563770022058879815441406566335317560910237966172269716616275515375472287922824661395100675379902403127387635507908501955395011052778583115497911745531837734311323130108516646441925456405517623873543090881747378937224758693055119841703071837381851778804237031269812239544159738464898407891044137467151677501495722599158937365006370515047521933297521256733505368154647487759488410363802606556560027052640109018123356168868867533024033640311297281134341741167338814221691443575750474699848762522819798648603915623800890471434666114505659092129008903374021672960805181347109722507637577256146823044026837354295053441178004100869133348234213013688403224904162217810935229641560384113705532765996225063260941768695577022695327549880523998401242467234676360576517320647960177408480449856183522559975109031954145345333476574862760811441539188649538178486961467010322698430360056982707814666174694556375225559902585025221956177076170956929104024147821298101749577610101609050122571589647081358336764782842737154084288527096167706666084967610562913469391106269582908866006979188176466590193861121284496452411196981387460489347490904861949501731932950410882586255241235550091639228456070479432247824505839096650689505856759336631483395158916549141141857466332426347896722352232747420116926703209237597549316792589463717514236305661352709498009534567353350594106728003235771548625782825545044094171965392459240596304813334637928686053885705400560407526376237390386699670284988857824368281493680801673036726767208273479885138763039954191512914187108126877328783469678349012053993356524253203779271916434196300666744070261617367804568752370495098107794715520950128797627111753159033025305584950626603007329717043956014532532057359753325710216877940447258491376884444524533411615776302537817413898529853069628856919977520980986264404752332426008676347602502388640527230068110719416927968117625585636650837410485290724417363763461332367495959149839515664848004197875005727139163269214508245394306077641578816911583469327020637623751500897938785743631774318660002844663253453091184863791002423476222184507581733080864730312015293299161015976308189951984409851189597720230953394138005705795660649959321190015613546453041780822068765951937791840149211290948089669718835095153699733315515096156384723177545861441579856525305779167153618562380306575160666991996386578455851673518740558874061635764554059883500786720882695100330756671537988674367163381487549759408177223913718957084687331251360350543629392647812605550510733738028462579835054657289408206825433937850850148171337413810411164036140523152402074017878518386542140168859954153045368802898035680536807530560584852765433775066838900808811419627220784396626868663088318421121751157408002680377116577815149985245432696865317030721418874871761821397245281485164882087575454762467164111101865553773390493089309009833702897313453318004097078934136676674028306213831450742642779513294272551685589808394140885019600820825158790794450365090994677412957464089206977031349819579698951971776674093702015541398252325950482621370819586411919901219476292398153704837584413686310651501833082813333358689683993045292707884728006129173980582821172510009749071257151040921960363513017614578294738634953322263257919720121888489140606870720939689320069129882841848646426605767598968169092551538242729427813819684881178632065604507750849502328309796281323300384503964258483530312998634598457019572408804617465690471891626348013694274378788007362935887462464756033083820479994091346395205061328500896647259752845503650225154074131677041355592729808249700757993086396758762073766306056109097188818217010350943404511267708682180680493471505376347748703884649855309687301103073411684468500578078691228546771371084304284631632986329451926198581880566266907141256524122768894714967125942986525259520836011516334441483346087837566711281498884446785512117475138283505226177944720044763097449369452967662317450229289554041203950808075776621191850138602165220823115463788707691522851383392080223461361995294188239704499779347868196016714756861421471614204460708047400235438055587263649398859759686889496978583347390500355405152641451535215299855531559674635109327947270745469799326979571330667600241548867738579372379782508309462593189005502692781785488428642865912119800436643304237811029561070201542790333227900316880860124886586039856637584617792589367155295851715073481518601652229450813263532706761790927515505109513890228675524942238181413502919504842326287762243035274037889623857191908390541358003509463259441624226098613055198673211154385231127025863593434688697796738781290390632186899421495701071253607503269680956352169355012035432166626843843596948592979208351818458664261304200686410083134822406835744509398813373149157105518586071568532300454838413403558288306039503599859787208357383176389114051411471212852683807153097636389479266405334439458545739156251629765836659460990890107484058791212664215181803032419711246012095438437522009010448792789088883657180782307556259867845360016660652095232142753520561643852260634730369257561989847240917044812089472882832542164981100834266589775061064649996125612178858932432711500222542669409901239133997262118711808737814143577983503065717249222916981425370139959879593174311869083974584691292183771244847214956879408369015046537829826064063019964966519247420010232879384705461117325418997761257629259406306266613642241901581471853257095985911525701446302474635093426628376612301540144094437513070632625279714691946812032645762596533198164589098369116687708717724419316170901542844644371816664698567950557773694689997475767042675886550100957437747934468670920651526102046628419122205969896231974447785799828052811327301392279493593339185887465096297894577683236877766001813417426688477274306960654078059225131543555833766525915345818673640095487290023262308665819095222565887777990983514024062828574259505274411657727779606225207611149688848609744699912578755626099122301726256120179519245462308318058374066057517945655747537530487838732538745398354263167074936001422321246875800505357016748634883063083403132401947481240295214797360982955724499851629188804379676571308379219879750239028074511435082829812741171548685012001471178402507499830489896325924524215154103022558636247221305579386124735764640133355516428242915281067196564433198330869752475019900250809180567970702810345051658848541906856327569161727797083278288866577550847255155855178480525982228181330093770616233232144368389526907144759733701629032057075836235313359174225693189881980240521377708122289793874906285308189865492315632970961417801360353620591554690884149542331445236951391599956666409980392547472560116801293529920292976864356834766289242117900669979448461862370462378152532516618074314573407614785073292187974794846545591789155071874699071540132841499756293831690849582075291252564512863622661030348681962045097737517382345292198715009839439167445192917967676793720442005721955796237893309897648424685239303693117088712168635019495616134815128626254334401193359191917654394640014697204417578914965650257193921148569359920381525757939621523062821039635726490104894346840423197233042636907130144869378717306023034003935694040041443021794867915279542166407528840796519960310607915383413111682785944908005293704344866201021425052907279907886842077705440051225750299588945985885818772584168071036384936295713142962715417442094222531572434415208043353111807698627652734241446266939501091289702905402208144705115433352295908916556886386042968002450050914882213065166649445238121344567778466533204646175832697720807729043122791089611705051916741275045181254086511705565597118108401773240858570470689386801208613986037554249178924434624604122827542426568431552626214260258663294446374509435543509188829323220067595089499418895062849070892104403801552170931136328653187607667816102969111677326877751911658062616217231554453314815223873128157315232747234331354754482575926569810246369091007612690978308673781978760979400610649673080949099068270356796796764409844445945376173587614888588131368797942701644921746244221770486202742469024971449919695149831007861320032172562226728843742587658318555360258311603953581940260182679437517399627895958053400346624002973051074900606466268904699212212561414558708500130469735679556949378468355412880398170765138672633646033230790161070497404693438992258973836181916679612031574461871859525967249649041958103982872010233674673336148565982171931064584164666503974583994467200832425938287538522849702240064593797242451369693653429293054028835895772407525016225527781656403288775482620728241969106431517445105494522858988527103924018112487901148469466804461256797997547927606837505262150446588650451188676606174613160123588596826675359952018016809290342347441614346718469928916758644169728245709937605110604086311098880030796737251743236923116015092860726315284820858653292549384075509404191361280951850122316452103814446903733946772774709245837080244741220765277783619226009957539906855446402699412449845020638607209489648413500741113370390538210696187530713135551941031771380558227625037778677904686270259359429864627351251957906030195418052398292911929499153068860876625864587590966010939586214341297964907071482180810322093319954399939688116791739906729617770713490462185826160175694000176677601808288458813118437975013342420435187993666580240457794410297884516186094100728795112281513135472856592524769424588352907717097672235250336552988985634610188238541378327042330061754423732471111972532695129016151339355085298654751860387333784313101469884396645756959478295826223390773193983258523817714047520085038397201031475060897350101605402075740025236594760255418000868123405660914294142218674931700664035067831568113623075991280248818369576655912265137050279904900976442193065626795647037834288901776599441645212960302703051110814835029033591174650294710683240121827474517911093000047754074216965830716889318146693244231976418194244063849344272087549697783115621280920807954461815196438981114931146499018399984077119921482030993205712371199303419839184231926162813922549896456789926191040693563982452187543559244972227282424457772427222638720039234403730478884128128168506762974317947365684059484192086241843107959505119777445056265294571546099150245609707541182985376615017104806335055717796577483582952238627715916562268933765675976728322501514203731611364704154853006471036361403075076930250912209499227598398277943365034365016751508591956800673203124377386744698065814239022165254231349203268215562254057675603641800789580708696598448625426123722548524778057892703854582898307001450593549302271289770151731090013090086165062664094783096265955498629435788076680416975099512704410077641526873855763263075348707056647080881170306645468377515789941567863316879374886482139448004911099168399917866753225070731446856282244894031922389166291980883897853294756900213701809598155833889750837150792136555601672482704974490230869729231997480703780537472959805273559471278656842744934896191739293655013753356192136748682033469709020224106066068497846756188705091649847385101974351336946601351268518172596430501208597900235662656641837811721658310141635808469325406502892886550657616649049290418757210420707964597383310028072430743329322398741001237690578082626922906368193528574907622943076606760437501171422724989638608868916719589043542876121643162949642249883928578689930295070972568199775496995782171870191647567759863109874921107272919798230132334478088967794661482613458312666454482664165031461318661401060280116255921713544359022592538899688167200126425385008212796656397670632263305390319311001040735599831664688266808527244428869054467578938031781303194721622639005293742882388697484840805682892198843115669803832301110201105059367309263541207526695870991869886768841440462629401010519603355227097669461331522770525213451821363538095778134457841134314409788643712412142984360683520927716986092105638776906773959675013960357522251858640189639879103877570375126681903335636425194849431250831792723741154783409996302334110338099745834339619322119291617264082278718938017094301581726909209653884449148203265145498118564571165385910793373263809342291441631264917687251649499254292391909882765114015101747062532869017238100967966804776846203234816047596004026026754349725648436086904042261589395550529287166408095627011166235252544570004225052334775832631041939085261683456972019232498707726064312187118994455773363123113602031661958512370872272787924603963983841176969335557153239639699048480432496802438735821423524553382589799510363068545873461767765624208033650755640677155404867236844388029696052677148719313702682860523728823632033122554704346661688017585194117728992323996619674403564018875111611061692543523857610639812773351879898138076199598905026807805717481909651457781396271111907608375740405239620291044308819214963253089740437923469903677374466291270154588413472164288948236546068929734729584384330950332428207932935215571801288580140545069053110728798752428219575114242112059904437660974194304748668963583674768584246193440123646143624357840340173812907809124373191285555210495170823080114450706386133975378871472299761172034960725726041655119856642870627120273563787047554049244300751640676241148868173600793297288780267188209710886902477165449975518544772380997683322086049750920893740882540242776847412287700319500280977887121880454374630425939703061445983559355155438410232050007869245560849354591504181678973885487635646870817026771964988011951064617907268136276791635825813062299333198893225518594529541890497998661712447855529009845670353083830842659008426857908226375206530590068362250421117494061050207044993783807308998741202118403709143365644129147421358207903732961725863403484592897633270139209708328321580911352134280570295139805413250154323898497491673727654998302423903503491369955420733452434038920731810466682707177426859466921041515554034343771623417262223183002957160913822789675979932173935907078400515194124089917610966728707665095249210455640790444669545260140156326431016015816561116975349245234469337513605730295110888970498421827666458604518188304668433167716043047876116878328341006229394288570717543103513737429025319678165516071424073139124865972048411362669895616952790489542918445119714069202192542519227298514135896283521888695592893222279583012387903023472020997109610129359538458277668122281296015749044575056952273736022242721645475386758758781796218725512856042585483574739924876623736618521937776430071472544731849690879416135649973058030594527935314283952001936628532785031175188819661530160749707133679751295043398975235886271072104782311518790388402214242412598669222637425854834032518853890941480335732187629051719067098876941601599691174706949149709513188305689632666997070184761490588785660320075394543119604409699743063711028457613726912829196801227476830444999330828348688816673041896027770207140111131908079866894340501736014656530464944794799080104624916126122525555511026242595632756741267597400987054127922150843763361815951868783747116467619272954122757424771914919169868004989226281338728112551455023456613038668329527379399329407819939469774190508327405858601601218826005116028892914167208398946095142383374671860130075914638034419332073855242553585703606355785573177765618056353025259545165412312744633175712776653141852004545280358326045739792503485776837219936951268128550114483381777853969548098544670007726568869345604062826082767704844240654541294791473869117625536145625797158592557626949105268942543304582627681241594924824472252918471531592779851009837828191688474682919186177136663000387490238005473767011600671728032331171400579307429695919115343697184318082537112496799697373866507658692088805760565825376706103121234177135743290599578518651273586273116954972318195272680254144070613597468269150529786621762962341105041647747333358045889186655166761503689404747299380598514915040569909735101757203021591796414076969210634422242178453428860664222324442289370639285686356959103118737394042026566516931746268947263270996522956068296027457219075964543078900868102427993557381417339902215198353737366517065571494682079700794954663283014636047164186732174593585528698572754392057158655643180246276798322040156306265778049070524268586841054963937601236205258592027145565907716305868957632123066273131930484307826298941008894770841482385665059291076605707244320598708778520503792315624417059037011764045096981583057568340186793840127040052921216715598828976281889862447746918470019505628612957803312597010928409388800817385121132603076106464274726792617545701550895360672967588229098013421808522176185176544962091435813651893969361204855375736685587565271561525651956828804335080750839548309211187102868857898414149373828682407118370374001337029976375455716662868961066072205402285423535213520997032152611550527349316176643152115881724890900586015998717893278850873552892962112176009208746136633088317908444777097177489200530066157748793807130680374612961652660585009335881516132043458737085561453447399759869120376923736735183438573360026494767487874212484336190353317575520561494713296252062297434089509505078192854181712352023640663303028828790838096852152381936765823518712789619057229149393304686103635279408525491714964268296464212873565307418939255491770185110808398249101911197946273207364698305724970389570088677669635199160776890045254834522014038511718052644935815441681826044379177144753181644253563913999564042818062830996965008981576351250927436352779886273826060108184166699178576090472610026537264503857179942583841604053679802957225248772862145817805756847622505854090474073700509531092122930320399983469427938686628188955731259130086186729049259032573353921749190092036002252903433088454117622167112582298884977271273047438224164226501095783828442797878858575002315768004562791501628293330329763285522409359807401501714882988790780368848975581196945979264621158648725560100993960016523167905935366288726950330331536194855047602162583230556788847811672517809893130114914674969167809780229502728652726327273853309262067957606005866029882850488749044946970964842477676601095368001969312331434503687210198614529128603811257290369727512015235277151542802411027386490691057414245878396673354852323377703922818112041837312810214557148510778163034800072272481639867595638876408728320402277450655493917026123990820073113952205126580969058240949100703066279324099526927185649894964453669218651681794414292707489114011505967878004097699103599213092148539947780460457154651575251792679560712426567640890743378302419060992553854570640732045708105382163193752300918907200036332046464157273594471490968167446167331400118279194847251862116736019060870999100226411057470124405856538581026407380912303468446338786104055993242238437861907410248614862989397417353135885174536920875547341267047290957215532283732344412988197097364069944740556896842688200617487923174078708621251436746148937530717216075401008961957283811954026839884458529491820429806184890470633857565919707005150833270190992203241375326856670948436602385631911659967161689870302247406708281741888038436992785660208792714496198378419207807509507292370829307837340455733913858756543730516618452061444782551278782257141440432499964338866415265039335776736839904155340556315974400771597083934932648366867871618737439132101757578723401037185409107791403250200966888067016218632180604436271645649331892931286436462316552885698854213334353724530932101409382790936754055549615091628197634465122353342443024871806284740522873369146892658249474851469578010084624709682984696564823451414139457696041671931306351484646047607165642888012381275788848902299068473036545690141030330644109470706440550271320998853781958362845196072743667452609264832209073985674059379108092127000449330277272404990668805329194684420101751975208121042289039716407843634106428251802526141574844029865328431979533250483770939933018019757546336671664047433712512518122918792034695981406218832504086031840480522264599136217940380864303311723354373061501273052854719087028171742021166948701477955842063952856238888415800907269783784056239116629535496167364689050698117292813781570978014428827193877402156861290797896035266276108712053252543908041112313584735004962580773173345098565001722143164871889555966191983808623720477405118998457591124004835554560171669694728428621554605037750362059904965983215514534994151416169900353527969810066648027886877966616343952713379446848202719037708809788901438184125733841210318261387471083686401938720950996011155430670670687658786193880036349335156575837882322193354611495976055912648062755091680697862878700618880748419005850386507902902037398030689377896522126126211338670325304346170759771842310607359686252394506493501098680856913313815709168991576858151360840376353725306509958834635743755968648060196291355285124148954068681225863211872968547085472888933896562534883135079320365458071822705292852950564681245519592866330632615138061217799068026599063562099063062306154873216730827346950580431716849315637096760603040132634119416478574660437548388691416169264582170706162215240107472525345026259776010086248107031019043050136309346206578885095885303869142577047507438468681287629354015507172898713349639430351201972730494907250143345038690873238312731567000598689171813770089051014427130345512608618971093103358291062423989894015690154380467070697847565196313854418626205820838863230371534506530453033064958461547575051106362985001149497542906423560683639457691255973646824338049662141871882591278001916138914520889026912658001166616794263809430779783256859303268793283159030572263181531391097922512227982740402662292448820745156873214916136678811254138561322856578444564117268713996347005855338516601133595253863439545203308687125696238591223542410558306778676206259630521821532338331755392201006006536561717959189538826413887771017562655431263371155699881514633879335327414102212275255466534612092326589725302091223204060024813928164441151393376339003104521910501917207742390813738167548940416524374721091847160541388327088931500788418517121297803112234090394308860037129531509414336778035811048075313343824861609412136822434010853341064386473218056488212377186046767016218117545558362474884494577346428184567173236311952168318732954419915314077394541125817586495954630458071301182734870648236706992906196283293881592916606527201416625415365726985482975041108091136048085945216804073646809596797875764142804170344161586173777843540466715856895721520643770598224665029158049078850224015762678636806856115202091125738342418268189244506798917018481286541784904036166252383678060054787162792104692802596190908165397733198881321122313241224990970644973071828125739263903719962721300144587034026778019075652673976170846895997680701038016028895887711077778965405381036602478911844812792716230678339170382376428828200040496240303147252906228833505878745295366537085446398592045329692488265680934361235334572176146475964922206629811418919022023758395529495637260764703888123496508489131974320125432325130178336632967935384886454145630603239705205680049150066459719689294814076457902368914068042524842655348792376747478277250693163743527596833630089938496744082614964750128550039577988879187826687578959492493420799559740964616294169124326095640647828911440720470770708228716153713021306588854004076420634947348777092815495826852848018510859945810174158422566951941196998797084502257958817537568459586399168487664514014035694924280729122750924339454503047003128349514386650635483215564684870075603413069280810710724476773655270250660151646063997091406620654413706462486191266630452023570844458965167375487257880012132874833263225342313057205841370810082201486817121541955519338294406816662792570288067537026553334828416552463132255576425823257280059172384358745737307390747512827683388825095356749972658976252354488880914264840318785295080086607001438629118414283439656249655166924208224887780828694002586085707299963726865343484272882846406810739147663737907923638684215935553413183988489202042580143899813920462145930700655038513785094979371935125604564257506949520974981179044468186894469024180167347774002957700221607750179387059732774015213380489088053609710896755644500569589858470168345185679082720962023986805112379356568501966279453893241518607047943274934574181586085668667359579879554391277028986262051670238392131660144930660821203826264678060989505279649349312506245704032858389306592987916065667683585494346921384348658788673914659342790416057638776388582036920427955435750291486429092155924902733122855855560368065795386251225360054833353053471758776380198062869376817863118006965899105190881520017210692679050161067154084397696200260458873183874676864203777726780836834707614695885431725013898305597452374502664688900340229259182888992051787451100469789196949249931300958871595609387641145560486637593461992183927819358032662202077676320085414021676699116687756164340104613652635457425951667452254866301326309708530750601835355562970015266600208798633483060864435999682378723611896501217620306815104373626057257703548108563299601274615382564914565575816063509314836045024332173238083221347934899729947661838255502497557847654741457960318688911138773691045640660235046416150914005152032711431252625792531441335691182516180634952248658251620733563435320909343120947827132719112714053118424066760864913854309152791098036763141243116846440110350544545382376970667420041467027076824040583188810780512956649927948414492512831132969873717681182684290961575822720905239669009329163690861141324007254238288593945764231772608564099247814164219156951604403935038257237109247350094013168969679412734433266580396463618681826124847366601457999213023796054083925003026926938601279544658780648509272801441865798896628477377226981136505480228040969064654780593980553016452809272062309915295528373650430066738259580091672844672718317425672617653363156171811223828586397350734583267588909400248331009857983271231650744658813644202619681024716558193561210886257444232376098005848430530383388629833104385165885610745298827425043375880033961531091860467479152630503686805640752906267622487364324851690122835830291126965055373008789908959516620811452061494160358073383722219506308548575069641741107765640955005347295464667344846025102546772987149498757338257892350176821818335897761609406062717401581239081060173794014672182788366669009853553471247193129232513722713028400448478879891454091688406978021205464044350484758479412530591220476450551611167872641209880177601477307725388159499127887204745068795709973454249283359671645361267911951654176409038879161378495185360978254383179591873872504665073586509878082339534690557729483885548705437053957036142155336419919973754744125661128904769335764717052133980997229514333113450728703923448459004338434906060238696290459030576143340982450367190366605816662366818662556985912940173001913374387130048615761412271427478946314246779517218314080380468424684487126182833648641361475031583836872999799012511511207084618343559855911626671896357738085896881664558060543920975057256999624916510151296379244918166406618901514996553726669699619110436993204205007930314105036096701414941032253692400762439318276470223727791841979058114647004201785505099057820924347589479804254031224739171375219503882525786371224751345237353979029680567123779660259764590823234660354568584751865264885444498228629008387359660911061663571078555766850139368149334303219196739293951419810491533502244375394937775624489349454546094940995806527346499072379938178256593242605250105326102904285906920862014349559972806708161268406510013712037577897577145711573454781939497192404019162183320335471380146669745120943883646026530451942703824785985753375670797310517534974857072198159635114831773099919657569700067534040234207138140226501892201047117956696592461241319141882139504049005565974163624509978210651012536175108130108783129175379643790698144980494652527700762373701345994370029041998824906948807411251150572823866420115932521220978620511395102924078645653929816579540626734534303919021806757952719993103402777729055604635410841629370908759184733347620150457233142084458789952545231010258431203929869547576148341462605314652904643640083252167081701897586804963882812029912305423763589142723388578870601600874795026981486065481805763805361032055921882709608946654098331498923445914673956261055917560204386199151543210875606437708791246134904071662055023733674721145676072138777773683690319404772560790629816774333387986354473845702034621117932427430508991989702478854047518041718729135908330911227170505579537282286881640125122398167554462766426648282624875908400101609041204907099535464374759537874022962048527631628067816679200896690782367132221698832287083105837091081602661676385960584011142609883690731916079573731412973434529762558394846772945467406411141948935597575346904006280792496803049958034703787481062403833161430964404363491815559044332363585244169118787057865046777512059328816875316387462733230725709931600412559920995164430343417116616495603610361181524873767651161595873064839266495262956043058221269308415347364142097516540578967572060497873326549600232768017845000086726387413135123972644562782128316284569251017496790471338156241195359955497787358172703991791115609757156971850849097444440718579316792362458801819324097369616428542162067467468610903419769526407780905947669031611094271666563581671829234503228624710393953983222213965315854621487670124555759895132269933249230869354393011206994662139098603473414978870276053004604171696809880749792268353438806311727518015686100438341032096824359696404282263174057050394648069881986055817882128860778115832859836388168903739231351152677607335356329826126821070069209922111461010516385867162150680799907292694916347925543006541729399620184406261849558376506545616330205511511017456798407615674955873490730135418993296145800313986298053572431246803468551246990172579512772921905299354017925569735462789568308895487200441688067488007385236245157352612386564112442839482120051050807986596551105345364688582283867582424288568937442840512319136593047051581387344737435607067388966178826157412718931533865052916934701188435597255995062794312965864509408727262330776358436326587867148207597133326358035178790781945075592288336727815546907276063675113625150586237363270816856255539346858941921698345577901935694517335052903044355375115531140706163634108268309814376106406733054844830700548536058691109530832897609546514511368660398710380344962812905874548239146923931865270326950333807149865804906816983933039762931905350255119410894886656832163438131544571518515689310843223133556026866199167232517652147297194393839232147483504542631397407589063693685735188845753778955544651886149913782932685528582592798150357297932755191025871559905297549815346645835751179063940323459497640472893200474346433176291190326137054204129502415742837680944894298292075367904866066066861917628077551447431022056118572463342696481862761207850605501132913430524077253881299846800221162098993589738564635135644031691555918315516287778983228873837997675299840309311467016684148982626539979557404860232637848316030393200524303516735069248561385712562887101937158053965084994513729377588643193697232579381475442621524715070971192098660331767048554849650359609518048150413868688580694998003403666630631184930845063275165533261313556029123289452836933578505001610840512221051734746456261607615946574192547314245914525582388892546437921156959639781503749943347040500079242481341998239723357065950104004075037845428108972277699278700020615029411920041911935257534332377038727375307411052702242926670305195165251333911918349102525467491365402315390026213070372565304343179102526431273127819628594906007122367669304515372939999163451157011309802057745917644960549955591447607650029499230051685088726073687520981598555368872070807644082764743195500589335640203345864405988934106822480085481774604885432732699919191914174006173785543464477327258322523863657076969951476276094032748516887568537580585345545079464561958888975879215186768022211419585600519826719674901664541682404843401208061300133053236226429285632049125695014838095496922822389535618040282998571940075202347115623094523615431265278518538546765776117108791186585474391530717284006670318891502557373967657888379143283372003233610107200034428021391191328758691854527225203608252072644762175823752706023045876057242404632830780502905859093138467142009351146685567242150273766620888153740013857743163023394868545870438178688044775723149526883266462352233334076329348280055927101101933682597894477031245846524877427655990756109404129967706872420955321101615487365020657184837818232435548176117400996284528802691880874343709970704170628586567013379598727802355154922549460032278664306395498394816255442932873944949982852175445284671773415511092623787516427700928992218635469953661490968214009188893375104809252139886852436456621188972605061603952998335196623726459975489589113803097880518143043356538583630536356904107673476036863436812196256823582603372667658848813506249274911284413221217922395914905576593437148326878564466325363175990748609440275097853006258021986275624107770972837519910731794418494847948558067858655102153603705818566275493726421562035875848680770565338990483417270515874208033957321828127278315098607289313181928865490985073480262384934797678206317581608850366169166915501639501384648223593261519790762656821274611908252692247007813015226651472603413594206208848068021473944190931053019931063564526924014184302801218257811137192808454121415427826317635380612906363521139043354808674251425097762112624657012193315325760487360319989866197361671100741137116077867305909220089552602949527341919354629111189697805260942549689317560952767183821438343350568079621344926559943916411984408923450136916325980128618248706323042210084186708638498763264059733578918874893289856301046341908403029068754190018451435218892230001920943754329013159873984772662657567350871100363180240795364850790577465352637086487004342907566983973767281690046069881204825080821774568679140674013404188897042151190222448009039196314061065940867081699971177885997110533520524718588002999551370625176280690413119144196439834114014990834778167867875098476391747501517471140949428100070682958063828477031137800794501507031524051289913009739299295427658459524142584604513305427690400982654046928027341323206386978950913132700989205759610609527384336087437951077424951609755425362838059798678001302443873462001853042979634637393494608102946733518109768544200907461248080635102230772426287583400309113090891381604334931551649946370288347963055306857715743712328469284391751154724213225266888844493331413515049108552497494160212220361588668988348761964079729158882752945583689247896963471686357764112544483809463098546837666904811495735196584941106093639964362553251763994937806531368247309919558366260186027440245870356495536142367337092109540796475332626481058858776929236065733672639062262847168968209567828825383317944057818500343745800268825196033497847950929078993100049244585390858353186120266384715296496745047676951368266579017143844779893905497906797701205357334054320416600821511713430113490718170796914371315457518450353504154309880557282785271221431491662339961816888982442971676183403679074209506927947988802716097513768670143693397277780571664124192285127418816246384330031128243477667486966197573228349681542437626062906500059552187821525000441229039383858291586894044328358122760690793757885124624505101038609398159491825415385826163058959528582654423202559837966704956336525322034265883922161920350521960801337081291414239929420644361674926023557074334473499673879117387709528948022216336185305206211392541498598725360369990578686051906844193650416758442062016119284712762168828078006348659710525155323290838467330181839700192084145529392436482614557135183771772024670515486224914560988618737549342552249797063498387079705101498311412315783470705577327349137835169657784216360302351836905671637589325950005183129959544785543969522242522292641225845006485825275261938673324701084312883153044407052940615445975920530669534237279910807236597153846904583800460778365859363521328889674754820701074719796662665494853373354874092322409038430355983339640905401815570683178633910299623676571648902467338185614101779202531802593624936637087496544649199302565032532989539066833022139546422910554868544579637235264680825079682947159333012584724154110570353395311754860297008802228035457337250263216101741894309878169641926389969588410440888919417693101153616667940907379837527737211212279533901891697989473679145757423429439718333436007084119710054130793014624739205855052126011219987174333348601434896800539955138222648642904841155802664264392089429192042697290685998192450919291287747543638278445884969028960550065430586096360591066429073408812459336370528165854206999238156177626119221156562566365298019546933597807498399831188103790497479772732067634580932846038738088563225297541917796885902624427711671237634098866320596991550062573473792208392626820296637685061410893770804931851062074282134841007119876482384989514519021427981742087046223455145643372530602235332571097039938316944411910000447538704740446048496901944491964687716243494876153945889737233319531044361537389051160596255858834244487455585524520134047358310258729225830733943714147418549052303032472093504366875749711904086907083283643140883822663464099891716885069912640745239103436429422943744896835739493745758298573593257456646475969408465584380806890811436640331425171054111032552411088714888540119057999298351066612515587928284987658646192604227793940994453978532385112445636346657130245117320898652497822722305948422124049079822000314106382740216385596037381761484704782021904281187347090245377113733436858669283205631993467884301304035255137138323715168295156719498708447993735985757751280820148860954506699891584592240016040036034469391632486508822006916885893441905440670910369520860909785254845829549871616361959294986457939497364189361538224419348032483946343839838582858751354773208421701548888492578615425813872789654338078101034541673983281186392426129529186898270061142831025526999173403042566863875661561967958273518865156455935069390358089830768741752004962990720617917748622024771375343889026556942174816095815298946456822531879533474290379541507015108648078801448937526752158237668403307194581776992293199619576149175581370632875241808864582630545084547160056701527350085461847655214767889745866568328157250293675301946104860970706268567711438592243655667779349371652121432705266389753934747049027392717407668505660131813352193115591343090913035497969735692746395561497597983123875108490737939987692895618530911580205788966725822303890627788049138148641990238650147392618873530351056624926841978025863003120015888964185504931031375501442626306603559960406778777640187769891301427707436580967681825714375359513154497535189928537043056181135574420354376701586638751256448260583485564939912461739764346181119994699702706574486486892415267441042802977682577436283674050030582369259937743826353277634575340085981205685451714126902836514716171545092983657053322459536292301460239927494099937638563160212704008464272908026189202054291977368555665101996581666555988433006809187661856246021152100065883171558427139246811147314693810830860322751427517909516290817710973184391486172340818296412870227670850851282531618906787254253656640507045019958141640711097775658772468385621604092272439739760018764145797836035444971075727768711305875118832510993022788714007253677319799712226460725581119361551407052680226417699355006697366280023056087720366623703937705743296935035019962087874498506036823782306694280379576174337343644342245429077055376045911252995838497339636434716818836516459141112675511738393761054210026972248627332722708457291045180357348638839667235439738543884209022741255013290011191101344461227961401899936187841446661327098969339084537329634803921624265385589113077509768115332229094852982734776208905791368719245793067454908582786006649801135920755325174084457398919922292731705529617656781551017500712478009949175622334179930868429884273574083152018651492364459980411631999320317289511719216789996865522391727796657045488604227735268465117258128997952326877488626205560780582077264437426831972112932952104239492179723049307066601039075595208699923396287873423663019812503005634667487893256305793812119231859248374418595776937243696519330346527433335919452944471142532688920020678093707426795465323782890195870717940698967885123678446156158984976767858039219143713804144253793536901442788634711826642761344764398859467490902824066712893737922549951450669720938130586686945309722951977136712374377553527632828239242336579099648248246200638786882329243532002094337821607316079478727845714618016447248988070619874096416921050257331061822246246184649326689580867563726685644211244877771070232136468440537573389010796322517039982509336409009714207797639361833743917643093412079900328680227905091626027103940570240854619894366217869716707772065919025526116244505963489146051509999877892745996082201750923525631532625060958321305759528037386378249749136703623882136134728413057989745349038278933497479968771976856901395778346863586242516257825632222685344841238126568057149445405571138242489265944090886744194514158359495483157279177602145179241577875129048295358404679294247032446721587662951190903716387910184717048219456711038428637327295008581820624981773807125756979641380511568714765052805174758303177847385651909044407393131650876674341563540285059650959377504468050697338965897977800677731645027774792688303678023880809329959307997203354438018233715938548071613250161676501596700609647025668941406677757562391570608298225240652368008495824783031693444979531395348098320817630879391152571946455477013167835485489972465211957018058190663672143261367420701562397502943380666854914514907936667922151369870844102826886395606418721395456809099734936684013708690206737435782517495684235716239054722772726334980322793188957649399271166683999863088198281742731864535545183222747076038520685059568034288032765652027444350224693836556352087769952581198060364227725312871265037047842191712160427673783066681603483664062341248540737738484627073017475087744271825430638813654255027254885870545287616486344301760841972389393827398015869742737069450056326855775851630777826293916511342682918792302464262284164651237819105878803473698792214212519062702758811190727778664920546052885468779134665242736196223370269393243791119655084648206574223477183543954680172231578797348868761496835598570891406424432155489241702473401112213638783018379390649659155521405064968772321976135285306947746955771436838326442232855808674678806722960868561704206647654411068512183903235959137211163123425817885963786780587099674275434849949230961114304510172782471401139415416869845134276511926639129929722662708112853843049758154366993181379256530492796522738155834005931491526796522341041652253234689252514377424595049068077612990510073155282394973223830563695350252087467115498752556758041268416363702381908625347669868175288907254334471431721968370120216564867102234954226403069517027833970627447932930083731429178285636310455595611340015911110823404932856208177887311884042384205411692701007847913012877688041579747175297851733228086599427381590829087382937709909853267857108142365119159163462783375922662140526622518497184086692975982982222997604438180436972776427662226422986772289174198208512410024921843164538575165108150834962917075434898688351454245120230144690175316021328707933415264002419148595038384513646957095269852838073430499535083038888214753227278842145159989694301794608815579209587836096184358489590732261407056630177124725190672349949386441688366760331887260330958196609702699944567937410639732476134311779970352650546648265771445145748663694120601323608370879259999623146467333499481678396133034853584355773142552597919904866586676588210362624197871494841881251097642145253976478543682978337396269117141972613947706496791458853791362884230384865525669554986893355500702395988247868759219436467053570780323369784820373016247329755692746533385290321291343996126986019848055178102933033773937714455731622060706100871749356661725406017165368727770083871953313748263598758853772988046327388802271346362970114010555662417150736549827134549631832332187156005252200165857279602228515806695595805360962449834548622336489596132504119943952058971766734834281746514922508714247972268448488038642621216978997031618400880409365927299544001594568014239246313151600009983703317306812033012578069397061412112189552532036054068031102403751569741282854749320577570413913132808805456623990297265084425793909235639394743520056325011740393004351118352195578940076829953465038134537469836411274246307419165573098877823985855618241866645174109533080050277827803197785927554974144597407249116568670020957232945178556558672696885818988082869692121821308742129205216768146350460077537474204382473836400290107893560149299686550552370433870343434880440731387680789457089830760670769237174418010771183706413488375742786949188545433925557965476017881461779119844517830794706889977262139851063574830255688676939416395671829652667205417405309245100291744059272236017041503004249151592374208115471542591152640572111142324448346359805130653399984007183145000658707902941954878789109292231315499494377344755735114691904580245092566021384463843676004859685227806628820716662079061087245447684516120265021542242910101459056346979146483861734710845536624071050347650931478963548103557999673870217020610151655073763864696873263827811760086794922968390118152520146019206852386971269490296108010961048155266776528028920405369976091308478864729466725240765006031032630618680188528105777694193311692765155812891854028461106791427934208872335501188610448978164914085385383518331172879790144363470788244832577259802483282845616079167553357894883050384890573912563276156117150716737025946470289151437887446666272641612292675913221428758018592364050768105020239084616680211009803603748898458175557948067370065549088755441899918499513699422914369831858171382670312054262194737461263895908576864984379719967184876625219417509403273889355743731313128934150023426103150857510471318695811509287795695141229514897691821502562817967784569434437217522227806603648452172510132647790005077261103863288573448185914186528322157038607472225584311950937770551890550234170361656967616097652898554017766710416271092302460876318877777243445788396077601846832328931246673401600310121952007722597441202844468959705107548350955146613254379706681467963267535874267076024711379520121624095123540706282041572903536264667485566899907695634010435569740976872199774121699272119241222713555437640598984470112234387731866219234027972751217595733047558283787919917303173969782328731735468220321631362034338395422063746410490465478607602089971590332610905282982310401095184348829350492790086724365954769521488656405135023810480160816622950409313085831842399920644170413160264057099811567387925797661499614855991696789316151126981845729527999685376379035453036512151952300516062754447212108277107067403977946100278802454255055361716407460866061454342222250738742926106467586224643801401391647874383691281430690235064268440689990448666056638315455853571866155562682699090819120528956315801474790316988203327324355002162705781546362839014891856596644139597177558180811655438058950696095267581906923559530671917148542219863734076207309439280642889439870921249107273353977283808327553838038261538099152295339600480306221502065414049293602317449370477804614814131918316529850943756553378860075031432441264566199558631258697785219411059671348321078671992856665505509772736115099045662381881845855992994586322792346384918658565376212204311750267937915938536250116877995179999797335480589925015897670012647941743671238077165066778328050324163940926167841746391813978912623593234069001542090939338276778563203157320227596317563102330046640738405277029219298836607373403493044754660894102790156307441189379135846481931911730754246380149787971584016718775359301173447632177209154415871266461181855319293420061237741896461529580013114093522645125227302678853701798086510520737554507392954790254956785355187932471186514733528557080608504921179819208772588294622747545292922668129806216408577004160970388874025776313672442118932648101503425730674156680608849174975522691832088570686332824067320617332080116854175886733926043750223566832615409147509719245202251787284750209910903727963495980563257706611476420672505820187362839006874981571977891539288171080056803892944687832715360068749848745913046212517280247572571387302001044759243748779284127212693322280977526701588646983998366241228045407664807424606184130996117747898235038532665740368570935285996977371542231014310986393308620287144139538443917919515107657657380442304199381650098593557954313999501697588475759461311403783759307682626226665534507340288045720554707828083013014885193732267784161493852239312280954941738731555870619721742975326091414523424657442841010114742456123089773871552128977447977431699700651530148017339139508777837012097097683105923828650607202028906214492318278377252801848519878272394979652678112028945051411686718965527065515232188469734596127528520566653543052142108848660926317665257447039722796944472881011774689225597065963649422618928903296780771577899460269177805739352049455966486390503961633626082352176615548771803646526306875981655611014157218679423391702340165057227740063568899466648975148992157002879211425640066752199163581003472628126869909968612262265285471522625008041313369841663059403229089037987980930104257499432573233639058135433448041862192510686049750748869716069288008555522622425615244450953514226738603101659385666891140224609698411293973270383081901145647856797341581477708645635613388801056213523911128895970633878360055761775436093376417557904660108885424847947738202135391028869730118691054378395265277353508204313446265900935037939252291960476204300587828910455546416255275725785167421543987205785520431401698234566839891138587035435593621855546175448994044669055167242269453481067012929392960037086272477242825312499523075666378774464267010488897745731274091121054901800590864959636099305286770977182836211021653962978672178880417747483938298077057430433340700531197124914976345864500224364082587476389980636541305900658450402361039418106634864871805239712307148121287711978052132267137340264554290262944157605786371906690145893069552492674449173879177599516174064725579229762690233978391562303130869770225699577411167442013927174522022419405798856590573410178640987131627576392180584505032229720461182150781957442755706374076811561031836057912737611340234552536431907147876560976313456414196353656573988213088326700714016899708228947716704150753119433802308604980091239432898106001032474290019918137124561396283884780809512334833767932662131176986225312584945814603880008096760187459721299751807613580224648014515060456637123740444138867506327443747294152466667134947739343284683811214080486094785339154477138091823076402034839492829221015982672774700960085749932724971214184493974743300163479638641527161961180308401465518988467322759015710643287081720821558854186186160777064095768445559177581542350273266204525670126224291518142813808443593094097184129171223864568620880989562365402387781694133141155757073826611552555335844215721725743895139570005285413154079154845292098347905368376865139878072845428618570922717167967312054052883523917062827357624640810092424001698500252954163057746881669465904111375233683105479290834709274278596906556072437205401467768315540131984803707577092462344633277478270173984405982307670334459190680209698875496785662041702028240439336836734915578757570790301386955801683850485299397476312883948192453036197039921563469144463943719693231794255702630719078196862074703004362656805573264640069873071015691809305094288091053284564299043739526152563073373244332863027606581333964759974550375050315910251908100079930763728918548082515905761575479368407419458823949968920942207123207069580197890170435964187324306472260621487198795024352426305284647581357118347502679521734094073761108809438051741581845482087757855285583510025094715346543116277092015632885827569742955388101801444641126684144172872730032481218235138841042197159245598889159935122394007538342156331763778546314829083761047249029640184562525797798931357882438670258410124384051750544127710421508565295762664704340867759044536766721692312582769838344069958167829943690635330419538959355599170041702067032934188959585701192908592306586439118954439787854170037765310653763430507869975578306240089844339056349583405814089276569902988193671673732981802436626891151033352814079041594272097123168137489262877816024012112730015583853997369170533254291247815029249498109249551511443412462141145051196668107074128226667964578867912239461554514702400085359161359868161326898587897879746300949133797244228736572105027578080403707730657741387081793401154583107773782412383791481608147994622434521637156817172978736673256558796092927868218789882600929444561651191128530113558900253316818072090807516147232782272042437501631483484430933264097402938206192811811560670708880667995105626904703449488537975368879192027460320291406333306477016288803016534777859471223828057562972022832164015854712445649648765607141787522083077658377924743891199268618133463814996122770246943138714231841781285803186800050108899102797816339947631195250677746610800355478362158448840046469943179842320082610205151890669705932497983117947459106097741753913874571227455685132328074177869693826743468447830792365858220668126383981203545745930212050761543027538841931343859472734491178313936863207696110557359016094464863841558666625113150161091967751086326834279429814135981124219391730309092423795626636884645271977028509940378898867082529420196754816702613026563549531719166213728794902295808957383394278803738146787897042259705804223239197227490973148002496176167915077614076939935589413622130040879469508971569981116170583223976384619491070959860506173706831825478595845747088083751487293561233704254786884084763183939536254159117896405068583488212614005445673662536102334958861661439784863544187634912383799357603685829822846445716337597343076801396272619833195492776083118345624378757294256566498596279917273465525133311525422466045613092707584071289117876083782224594334172189288685619041297293595945482128886099078646383419982937568612910346495259748871624946047466422613252476342039079247091567611428204118443584146888410764397108683201062577442820096118701258649337494889036727694389283178086571636703046982668975920214619844842065475659938410647470561647047108528580679206418587866423841720026176033876345780531480981371475087895996471995179925960698689498900682360392373349334646575611183950169829260881593963966437847989908155457906669310849186800110558144918551380419317191082433803327418106528361646927374643390988439033256691609196507740606240334349700085466677218963855179144572739139283366387823597980138177465790584056841707661865838078103462018136910954502025759538717597209517006872590937304069638500554200226852496015524136873427971511680228137731127210651101890453309140919051648812472550954995331742321777074094759147595596771587231118632675228879302152014445783029888928146137027592408213271986602557771271836150618444362160279970587121170855713000828528421948498516869509641498962115336001338169908984006442957470538340770144658184500551340213956631770852187474356149343883171673762530537540237667965857417315404114823069011980462854306641865030126966824401352969794800879185485742158136825102645374911359916666292028783639816670152612234307866129676158851773148406052903332718641873971950549944677759589740281507781944038400793763795600813704229262820628487142260915887332795688605824405219053784660167882157537778554769926976195866058895136541138014603331481464425082696791494246481638876435892281333172836082181113892970250376459100656412887046355938902258536337046116143035551427478291984618892252197082596066537312123748998518022519541768271292017727030944756814197812639696695750150517797760296045604811423853682326827193259972147321755633479926157073717977755985956205835900926170815120542611401773904799106381215271351792754962499762670390385322528643139168078172209878431801730975661021996687755292513144037006302037735646437807344159783068135263423370416110053060079621666352190753375520425150133498310270979138805625150572987616680506352412088503158755523094462166023564362543886011309499222120586020375866408767088787521609232023882793908613184383110571405578700675880291793292124496981619206837899411338596536912934275726474750011548929228072940816210656192977326150347277163588155633610918333571740150576043777223148081334650608042765046527070895835208759763534064982456146254031482998605680283588737166628822778165478355888667977633292752384970523243064073598746188086919058197122966013032833906754512574599758051128148802854855422285933681325542898042847640832665104266525839002937725900913634069787453483435203655684928806056206557214193810959198124207521148077669980882923484048600643256058871057729309737341031475320624454797301126686743168813512663355996975492989489114141540152397369572087944001376341713114907158005980451778396717214253568483676620191097663422776233145868597796759508319531277270398327781879600652541463826301511097549621980292490119102082180507940764303044749850346978637127340793638219448731021507025943961394641500802768137660604823909353653145623472266897449019801588008117970966718872315277035136512334012102995263650473173555252646714609506269575601735977431193900218125314278813131749450858768962859359187746415615767591263619049951573741841144902803978428378838386064856293407627454815417704566892370520747239453178029643145383835715584120270037712402484959136778345371202741687837251633392919152835863693495551674800952758582044264845640013393550670123791961758219887319180670126763791943402862124961396362128416693976590183651286486830398309442119533478933521773696016753097026105214439020708655947019177257695484264415636255901071689897982048364275098644095476753164693774268745508100291171059294262650996933155937239513044925642073306659921774181819514582349106575501921961359346129970779163415312667838190869391818362790125701684505231458604118432683979408044315843576122379696034956187397215089946915694596769101447035278886231173163761285841973099149865662861650482695902629668500966642716339354863538457014316864182315145360766610493680254756285637880683092106422152023519648257030568915683517250691372991078827704971232180120534318148008555479423561635115324661829544532708854726644046608191454475463786479654957349099273309360837485666765885842775827943106788687415246664493956973851796599871671730161896981088092292696523242139119830589193793875164999957270144059813971975319745992108906176629736359547131591801048962030130415773911665441808378595570505404641470024763569749633622569334153592340988710425130404528098386895120115048575419768789662753592546043903104488748822847806233623315531290668856440098532283605448350568248290840024612680162950750512514838047450823262773029213043320673023361522224159986917077805704126360468402263941846846084365214255402373559817282448861266281742373996713768002006144450722368564627906715701140301301185967377421877687500955090282590021375629854376357147485898530685729629506772921051987658238112703638846679497680862546308546436433505827150820941370629462719235184298249436653079812300945478690356504882682649749455119170562699409326792528467009479826875271100027020064186755771859965663993366677303668272701324988909100093132211930911819255493656957719350038526183224303723928382758657085364934036545202972245666850055835002807790055815020610182090486844281380707185625991078003270872469333510766962072811542967604385363267536000965433465427036428288942907737001356728216475012353809302896901937576256619017974709310411298203054629786127087483276292419108633471055199787950123725048643289584378516514440132736239264924379930977006262816931400015728234600971845031901581776344088829813597300420738003330344688193253715742622198035615069228349686480253099950420269902934907894445998121135444785973030680731129322375016987069599588390759234600620824704484624293844129201812059879991057182894812933709166973836550518820403972821547743552415238563118904008034459520161668360949915013064629762045650314391919716539689823067693923298396164942711203623095303957237228094973515764551304837324727963815692163571631522777449766438719237006074913647973632112881160636793573382652961371020939455388935000336543441334944669966534635082288972037652898252631557200144033073084708827646550882393913501424879552936999876823410013612172882989860183838138982848922025619614774063581019770945917782351626654933053043427072221185233574487720326874543735572827713504820941733629373251489703462379064469403308755234761331276421377481960143701766684082218472180259824775062394009152920766983810293767126466943550143798875163160868885522738991535637600691941020408564999297963853849338510179131491874051873908362702728086115223830609143518849755023394441621127597340003483940208384208122523308797951067620308912537763354566308770114228609983937155375446168029541148941006518170158963355144284013908830680535356310974132795682754339679291989019674860093112529568003800229134775229371715152020926645667173754458910594121496391012103122647596564389702814423643983124515737059330502003348613134367441154746536587978621413836047974052028491078084698260317525750516613187543539995387564160355338888060243616705585376592280259083045414089304102774941678955781938075480191044652111086704489149735879990158955968789952187608254109532625034724490670501413121136533801220442433369910558671172075991077886031126531575138340183408789896969456544841672810849760839801471432121833058716483836060129853759262727870318627738429738640486212600991171984793022615283120833024794784339939003792343383158512077853485669306642317596231625143007884159702818340843017145980758505100546764548526836881380926366059700325226845874133614278439893084951963274334758691581081568527742692043147496879728195792259691796014731510338998479842955268064176764078380687510402202737107917993663690123040277487089853015932114440741199381716637796928474289221617903635426982829670580779181130960651622417891837187930867129243885229619601295637280502930122435810655404805750478892896092072028811180545386112346159738369516761746992503622440593923956765661818626400159150824065434515830626578399747801981355675038543370274279212872890271277213258583245891191751654906971084813577571947637552293132339319621431718994651356829868106799565688111792043934447952749605079318872728841210931194757173988143842606194277441967910460030587854782431211424579335163708064688299226015952426001921858351596552095095592786480195443422738085865408563695206975864068519315985725721182267150640945307704239428868785463927962979854606735675827465668155124762320755839988709861131200843306980776389818784299172839546154937169594964677586072529914641561923670284598091834097490857965875188478577693851280735465284258913242282450284238332113195694842790525692003024122503477075015298239639648418238100594262285614964525447407179372250119782418284096856061672626573306666899594366212638223896794795315845902369367449119641920164327379053851704464126515277758637413321851877496218566383045550710875172527282808703522930772495974847211082830089129914585083274086957211334401543954361332202200690110927143520790774263794985516759995613293546567525053647554227187867562814387167238250524219827895752747038942482093097075026990019934663372145021279968272951195315346500868424448022601505722351547341439116467791133879882814790085633299028403921037008050930476323009271192907737817416034173219534170225916026486272674768261163132227764173723096212059596104896272095841665541966968326399090183896647436000479051059357351289466404448164539367090874774666202244098774951241343964037435069798221616035797990679054930105209436179408540411829450142355383165414788670496113490057573472629170176414291886287779628949236160327870920255639087220306477408022481592740018381292875281124248319755956347613616417916928395209181512574252793663199889353983969565882019529609779704001336396714118481689077196920661671269450662946024125547395092511699404686979688982203184561574536666338286960171740689773849048264860450949302611560009505277149927406573751320152945449853167847122581195427968279453182396167611698431100973748399717993119003860100029823002668140066079700953329026136563162848920150095969382523729912650586053850192880205224304110162570618234319281388688287922937829948093011860271083104542576371396953943603757258352207381953206500938694738722385504801090553564947834377753599045341781852473114498513493845155047033905231919335000701948424672055795424296071678987317002497992183191603966934370091581178174029148907856887597888902656255456534588568562371398442376096096874677336177441699590022069856500342257652364592633744750060309588959413536278349966347345123834055552681608272562904408101193515058082354542041922872681064430850837776976087977506072511906851536284213582614073195946364039716182451788012493896061071350443943694521195679737923829525222370964972109571050954200688762251009472303569384971535809975181762684699157551601074268877205796465803457416644226186872095736301815034419083777231455255704009474001715564049277759632714530183025046399173546767497508713674280285141316127069413303019095629592751455866638597477887918401204915645529179978686487578219968548676041416653861682406648035226901018240796631953474561191301232632005306771603584702978818246273759757535017182800649632175466788167485222422894453873189825794215006868597555488165861533393080935907614317098287521629920486563767246775894744034638518551630855346576631368766999293534757012052720247541483622186811546224974177144115993801585460083449442936392063125975313856866223039563574534184075562253395907390651176008309371246548475733307882375684091740536823698859338185049918725980585716113091714797536230205840582446593783553548267329463825725699100247780653351267077427387028185830681837832548642474534032669376974253541289563084872800707722753924789546438033212493013776005878402537937701001193136681666582824745866703334971075031602327881778628384166864798913487847625238369612504667084160275419182165121058349024371059172961370360945811825395505649800656277403186784523218038877077111506364086772440215710338865244119158863352718039541640628611491352966914052986291164621830257246050132690019495464900376129555005434891597610433698270582336008318517480647649878133389750218190615875694859645223528655831264532086913410985923870415568104391644867298730297609576260690584599994310331343208447277241745763478395616877071852761793821112904379373492767490750680922692285188958019503173854586816744031314608889508765119294074607584952260437467942520817285147534041891599056721312203198597595482343003249229475773577501416299459712928328813320512009339682326662158455029568477427574438431910808417237816583940350446682914000844543754441077069798778163508307390430264732893430650513927321790361880071204396857099851899679659784171753440327863018792551676518025529641841238124792413127657418531915929164121730165387359570681121245268809959273949854249733074825963238396292852531011862607320652968895306868128506796202489063288061176986153470475460279475956119858442652787888923756071887330450386980113354341164420966596449838734630755802598222258033980497273016192576639183658862024419591546774163080159184100724135634124975954452455774599163090362883139313573990789385500799865564996130379904808589329093057139879074113327006674348031597430714848451575166676560532673018067845003032757709654881040208882399967710620417980433301885946418453583214252512306097701685771676184300654376215052305210117719482197357999274096468107513965094836963843732605744905860178463250847346224571322031794934789495227946952208805433617481889694892811615312322217274065028561798887681193524278251833816789984991488891259748498527749577177229517958206529668116438829978944997837808287945691252895657543585860838541821583735543681426378221507368828561233657232362294026655779802562116698890756352959595104651586078696836900197705760094693662945782510628671430003615017969869589777073708685087828552244082241388963808598968243018291119654490460575990041747087248062857421368921541163848900299004951365767120679296129835761775597857838582166007160785035351733196778766592895982383433967142593791894459418593746811435769262222855847754188474882238114432560324660197406260677371375645240671667047879179159241495755501439182474310164244278601373126306608684657837246311885238789590437002872369735721530941184309425773286004896142830136666836509311918785558242108407152971780002104440829700474326138814670065752256348742878036378142266707263632496732972007758877462426920041252551323249505312797691192949587838804000130778957663972495906889685793833829492830663106532500709218270844821833572460010199732277057975104155861528042590264442775195826989055472382793728577344171573618278582042904626038663153671363506593122394371058363789653658683784615252592174044836109078701660212639013772293871282018339514541571331222390947991369401441804951989660155259705193501968009000516464443303266786144018775954751202798985977463873953447451551629336044821001833383568160810121978588678320224231885981279068143286824344364471272843842908302072260993773329907208701609033225968890719944994804547345511585722216791052528429831233967048712060991079848214025491299566047927317625412252171260940141657995245900810797885367616836725596249256810292032879785969378123398982140320588398725167713143683100888477575082617603272736392705647736012985200504961239295220207492829018168608336254082602699803710702069666010830329344766710724015353291039950696486673977563196773918719621235785985491100548236880051224207235002432030149341034283620789420892770218106745131682187110682724783226195220578681996823623621657509022280300669336650415325708579821513793934751799823228764419258200851174238571514267902900858076696070896707053901761937825275066890267729792384905547490396918151494753253600552902373347195663545658100567157597401495619048055880658040017397733227069633609219393293523477065945383670489384590538986754917645280784048935302009748387178007869990953842042050548444508476921675969976188803508590505791807616757808382604513755203146650301729157806918406700448403855959825503986579627397150736601397430170289093569571528632740422323803528258663928405209211952667304809255265437470400591212778878194699721141123661981314915740983737605274459362307544131184194285623692326333954090841882110980355377335107940074899837236200033446622727186200180905719379458978004586958455450601235265280672574951771936831923486680593833575388631209301287573764804157669458439355985113015507315685621201796340991978985501303646210672380406154021467301488623113567837160380988947325427503710550669366049439298118598895027648061026612888622331441146207172659223961705158776216346700564728895881395217992868714062361860472598316095614220400514582011068118071501812732687597549539807709137732379449719017061136374179160545942091208870363252196049687773733081856247010656276113108490857088625146039335839549462563486382831908266707379731238852163615681477011654346611375010747401620596435561290779198502694539686452927273056591592624793353054249870192380598207513973770535286894633337494827957291618909301653641635949166975159979087710877483678190760915707583283083077483113015870278069988581683522305548219801681057887159837850752095370165270627536161485534327181407260239831974033573396881089741861712515097946607328348223250114981321652175720058723292726371684681127661334823264734283085670625755638458221732739719529065299035494390454336525847374435039963031331169538231920361472320790792471698663657710226121263656505385818989287682113149518022231142428310745089800636519306590476130679183916969463077195785281224460645128029254308553863094261911381889365156812541498036717966245358331981050756234127490512500873793734443109314538836735613605203915949029871465358819182931393461683802390639051487634712047682269533877211387587739983439373179538471628321766383211192810181429916626384949871186451652271778291848213415955919328529495738233687776453396191278253484687248318909301742933629953123547776414502711861954231039734873693994282086098777680625485689581525023379116180909035137538579898048847652631137259385665323194470194091934117795296526238015384153271507100703633633775464409899120841335270350024710437491231343116316581742515007154895416776163717324977205506926796416852459956425092308622759249107751884743963753251373787801118437875314383905197483024502497415686574845891949396378351223886943577744877555665281342945564442622409461240611602761310342473671416556722437787105378656381049869700086866805146210011415580216591032369723936248202724163231909369548179317011877672421856936129152109635641589710319435674657095969315326856098692437982733206923628735159798289159028033185903738628995296100052553600736236574899779551777784181082543387407666798021195250173641471686701416326962882422750072616209389617697793877434720096887810425421947547214835441751622284742624319316624970258063742825277490303945658996528165796211347218678067163228182168534399560415598096973046477600471037114667236236359783364057452794342835570220975035655981391904319682493248760065855325633233909241485840389108627070780304867480995973845680140857486519948656152101934406302802991291938903395555495100358435911269986999589977454458010596741942590871394796090029250891703066120140535108408669227151053771799809953338677302905587871629723750909675925926026329939167683293329605140609181743989700282097220770337626600235415890440203172838580999452119273201498507412940500041308745416244128132050865047093669548034080205128667361399027051942737795453206349409003388907308854240031537168584010823772851799513780445646677882473855729737738830969494386913012831444868192664804876196978134478898506894133778021238589582595119267229873818975262234105064410023889008912107982419967576135732308992489614521879673361685494066393803809129341661712025301772194966377214625984498577641512147200507300538181622797721049188143859499250364451001695592595656860183678329281289027820970434875820048225503075828577098428200125581090983905196430197429415004796177971312475085056868702938512056079847004854532235345731684147099633789087783401185184961306219828263948061585504527196213911925986336770677165724315500602113188398230271495708588045905420490440849409135557088401322392970649164572511141533115624670056869254103399046070286065099555162035916467021396693213592879577702138284627262082932855187179471726429749451143465596210217244525785593630235284175917735610100127801528983779786140476686348072993450487206598372678603020004671352033890728149167498367263581859986676685825423364125322751150770788300054533248569666527245182739411485252633915262561534206113074231414992474466066867724963613789931273163929390057635059771513162765676342230001120914918409020166774851625784704809215284041395949326428170926402334997562257003732268350054430268685213975947993755703837918269742764003272569296214189645633783102813301816370123453628371582426124666312204002680954880772609708154536582283065404772387834066552512457122740817456509655369115423310362356003777795922892714712415938779878912941536639362873867568593781920230499268499258546937020649657563748178107866379465248651232344063537658303808370411465192573762840619036542724922063492808491802067831098298525097091582038632023916465114111451102977799737887738473909951009479198632798974500309689393177204155875596149985793243053400136654653183216682614450152321998450496118789635143508581727659759157870201626902528982641945413963244467888638001306083391666687191511475026751515021319526335516689412297185643142235319388027693103350162045677331263325857977919975157309237120172059825023567206492361319770227076576312737123003054722829293540043988172597411363092436051261574916486680532098647986586608107651656788365563547701302128786510683466819841040805923663471222525637084771163284832505945554764458772887852796528671530031777581509243718071356594999256741746183619244025541772880512415214785643815171089765657646539513877848323895210304920256103152636293135808010974027278937485535443925259043965552149587294869384111604957059042722722631255572726382067226905758457613598701481543759351510852146952964942735045647590754699999837426319021543952723086662921374736896015288546028781467592018995988537414652883980263184071752602756930689673352718512506770236767821546268638750857801958234060180492342949567058749780624919080236399495752079119197695411996445296381678788631903037999948084035888878681385959601264010604561240052362610355293250695546898407631130245225181765439321771043895235069802470341960941721440055275895287607720872148803961441092122697788943443160483768384306726048335426775143331636018646328174933512785490698305486080176419121924419474009586024401889475836863720848245908328305067795191338690662439250556961838677559337079264254385533516349104965915216369723305138088781027493790953030265098410095497758006436957784485812032057361865869272062840236023102094479050874495013303468206125092053926208982292501652600259515204857097728811531575201840786070002699786602399476263613078620779040581089395765064261236257424741259486182453765461862193263230973738650486107141327731329313935463287736156789386740367350760372553252037054355914256469123091842219934035172785379763469245421293751108609786279615746494653767962684970412050227066824356342434844446002941569374471917124119024107788233614408067374895662869135526171250635356554541783576347531948944128345707868799942817754190733050845016430497200512958319218803674814169445138361510444246997782554760658993066362209326830381249482241918083275225903150355093801358779974831423296277864202867917259216046523988500451420683488943391194002497511920336121914974326047870319862696127484720880380850324772410415259860059511848496028767967365228728023617088006942733211673274954945464898901191459223285557474396543046951133621386874467253209538552954774620395312933637176054047489070897054441225120465339604730390359797553918556265720458612297854453836856530067688875711971499468647925188345128885651214063756464212087843716010738072675625288663189657097447547588922525298010803923013521906452678251254062990047495858844160033703819730655222866111948808669041140186704549191009050658414132243327037440200964730530118861229880501765171305952926283802273728165452514838206188112158297172603309585558418726555760612161350223609172313380275656062151348730628123156428139357843246475587516335584968717783173548365180389687187007499815161675917813124529384670412583634806130588039792447081423163596883871370789961934594173397637746687045843029476059963241211682271463032141265967587741610626736778446483035288996263464680079368204458179001040089118000183102087736650135060771201553734989450678408435440811181202695547318977838875550150772527603597453496776076477442705827636895650360454623267446139302868674819796313691068489049413626179961808166666775299048789946342240851638574971212779627475703709790076335515973149420518694623071508044214703718256786787885819502208856899291831755019800840102571912252764137927999341849815811691280495416004539736140192515361675785308877798769652585438481949374095308129759851398092444703673072820769591406049471539242625453360314130735895055625196899953202487513653461974358068640367077259712459642864303902467394082452459299374181919826885421043431449718324119396449686739081622158241004474857703421787779035418823278797474572399603318767035338918834854547259114128851804726311588327844617321989576364638175311571952061564459806903549548145367503118430397906770556301645210960228917661887784305837547001792237530319562038657029442805525013455878518806779292228988016509413693994302309633431013046954607694705082385826439709549875536163800533222040068926437810207836354499873867072913342017347142963942911480957485592942168723534129351669102449511399207612191785397855032712384505889100282743472419048420042084098166394498517686490535720934304647021156691609351869637137206316072274192964747276812950394121755748927713002203336794825981242133610866564786267697924045759036084200876182064606608856346950358309668590254465932628756182859978277020447665334784123397247518724344850536613130642415427365700901452338258346472478046431374772567359564095091115921332717516994443180448619597455517781113476402422123236773320506425346303649247487478654416541841948184206215908397596365751261457080340396803262488688781247583284427731411915777182484287964088934405992821810564773547528129002814407730839653568743026068675632588253984320874913286346053951114727365221790887195868214582464948798374575981490416532074251511148416618384638157483877805488393248764246489309244430169068566203513573011692288581486709258060558638897837737235618316118784862929042967167529581421318422690508156436372327231723168504025994485177716736421246086236992032108240178868679038206750414668333111822816097148848642072652330405260831917315975033435163963781007175548423223055970180394943443274075777601664645901692117308926945601347110628076935081291929416564116913092070200819468293609947208647246771876607281908296063997583501835123692419619348282110497893320304964691478202468823203368182734707720767029275205334912845749544936275525169257481973173829031404206435984226155822689584820658609074005882791330096903809668296305429652315074532221012299452353810290614235598927364729352350362302336957887948210916237176986704219558456357536394331792533141824075912343687209550727875280403177152238059066449685749043606955500328684202114802199550493335484923737918732514394815481692487654941908471754627513100102982445400004758800046201878775119844834244480428507010010395318960194764497301313239810412984796744675046594730493782624070570341652107202981593194657160031226710335949153714179460940323387604609640108879821078932508659229995320379707038101335635756288476163644644828974608894237421833894991963466875972079136774620034818210783772277995832770403690184904447465481336474997205754412842814547131476002408760663590946009060246475366569841457740696422985677992305518056325736691493431010541763943207853679164161416943031106923933688600748948046835757295007012396289169872230451652101138439492222853437267308069999962407423052539959517847861059962756976618678101963988950691339557154534077500246275723531265130503741838730278036347232174172098397962650453319283525839798204858948278653476080974926069485656762318265144831354435005631261628369632927322504414926724473345347465799914435161306717950943563881880699123613357428345085315811380300332612195558935414692197825409737815798513222173755917468360849952179399426668667002291188210512514992978513115814203958589487403499259689381885507027575777003128452503911364165712701062313458611257669001162573140527595315634484904312554164278976476162628107852005254928837525634506505150893527017180853135739858940532623421041683492042723214001237701597660254745184632587006395378792178752552147570808826351573027429190161893019361244432807848891597189312140554708880999041457341483365565994652851476618714246183064096893581318678787238222529994595359020549747322648157467906385251669219244193350652630163805687922674502542066857645941750028007662672926659463994229924270890787058673048982801213640522947080730043665146761750519480279975544240354696995743254772057328242841265685171154595985199568057343603848083949535161254278467564016864942803095388228649773127140682749637038452808544522140361550907379078885068567376673187352609952131374154610180999493428798814997317731919824871414956555073574366689816408628367683099143208636309363862172921288449731832872530370798085872839107983433299958995337898214369982675513042069522793776191468073247400389731358537013430776984028483999765992871937252694707180213400871307393121233533125938462733298904681249450535141708013320852883259959636062194346936710994694991719042273734614645313358324044553155410330852291755224657790154257080043777333360468145893550031547636590505928407262587989104169638509165803718322530824936680225630264146612844033255244854488161640144822945455369699885105533881458288363271600270213697970146653493570293795296942105479607112235472946068122517797620930083963941195359216260335107309184979129560740734354372486521475157362313569623098785658295426830238990588310345929991313323115237201917085652872899013944688372633255952154354424981846103468700893490820593694212014938288245676480613689478899208519840378457159691972804874572362606039461345527672116501523778092139126517932525549889139574849342573872601273354882430094068567556510492688840088280000298586182696645989512839718926620781900737117762052088862637644594515869804520946969527171691293723755893059806989516627058360828551654446405057360583181227301793174337258988519131740379747169365762651152561857565997776271034096590586306975767427253523508646192702219917227040902338311793638516030388795624003516049465354190070301081488884771764194972012925077049342193472649770414376888704944201241704281954920921265471111596265188976757134181982028486293548618881520768243780796220012720155347217708915383103883229282869767658524648756492739774429957424360517614567811617575580550145048695869835557112845413313366393880699431007072967418346018563554437991779754195602698086766309883760913419248593274711634634377644414646394871990676868988466185776830147057832698855076797753816189920511864767632351096724862285607441629531906719059794591770007124565852486593792070182343976753632947669466379056634212534223487541017578955736759627597880120013454561446550149329987729121669501259232226778160147245886598770910020081645053154156075998194997045264582388196640724504335802210518441516509537654700041374899306982482343314259742985633824022828725349760223203382585404855560692085964678994631081718223056824161218407629170827232955426506814139444454855402354974786782275927174996752278994628387894804480881429375400882334159977764845212108243996417322164512008988727197710443001768382075782529120893216587912862315825882749480163149940960493043826716407540230905760714751168400071469345479808753648846301357933484438629802435381983074009224166485489993075440832857011020732671490566999326816799630067713828483111378604566171603803326254138683896701375786847794731824572890298279772380191694314271136149183820078548814990899936935915854035555992867895289936435428783867997668058065274827067753511698461339592435927236935305035750145724470569395775693096664056566385389099905750991034924233196978704748701533204269616748304161186121166456821603978866788609089791061209141532093517890686200489636768857105139612956350875111531370582632631894817124115940057114004935902336049245611774102757543463866587146809679049855820361926010223973533839487512320871166591155407345015994386938283057116486407784563421665806698445903506875387799640120836012684584030224591309676154412691513767736212301356405050738230342617369520248519979443716253341154919644781126483051345528018729821632525748034292533095723954169138116995139570957589750830885633786793307187564560893608301345330545827890999794980356999227561400800478822981614187270509697702950016751522083528037189138952660264564707784530306046752153643566025040185932243417192171382291895920756182927352899293443853029309738563262314746877886855916011871954914561137034465749500385675656175738398835413115630648871693176965076115650065709787011557556479623410652078831571038269484582356451953248125119796238586779377645733456201073032771456468778981264144052705389574169027361696410064994793109048694335733952658082621980350214590454263092476045086887070349548947278306932349515299753126332110308506009601302255958006749690334063573067989200068336508825614970675679098344666481098002934333274443112298503335814526625468813457752575912107141338396091794057324308453396413388546192500737428971709554942089553305565551028036361405296996871351451390692817537836679516466282965077233928669495582086145135915509641566157079848488081357695309263059490391284395174619276261618724282797064877203311430634459404136295962042508155887008989471944259367674507022226089039169740732354558656302831721937413254005882484113750514164544518733604377868993925585948195476247599114627412395425586754244896507303229222127802986181705252899909800334637895306848924327060712049654942172164425026373252203549081177640645463019440626786843118401232973095199210118594153710278894944654723165833671630897707000602387475578471524836186336534973108782949159931162102556359803386088091954068792918774092869970674000559804569176022075319710525271069601788093643160519682369372392613159306602018486928638126315914001799057702291165740159145332951109732875896040446145360657568818957523337983444982168229938518688437207909038805833670340558882610170706805016651569020237522559996233223068201061573846872082078387241986662839613757587051001654345160847453038771446546386955394757020004504868734118209012674153464370538114555249650680914530706133204003735976728459603849439173378590853064980114721383928632490704384120312906263769956704843966236374229753933483393129951602184886710449642985847451834202506964331599229562788463703444736568591356556182499720218840900538589555898953277645895126468903753178603310486202283328157089904737125304410683844505433035717533457243556625070673685142419822261683317350618876258048349989206695445557591943027183874933928697477723960815102165215303917051893443471828081419198701450426701215821622227427235017762884607182229587967896431557935351259205351525130189714596882232163840409830339562234959722001205121500312918860137174079388396024598026062403097340440997059631225288447622452038254670764602710006876170758243507149659903262827698488154076369182663621710398637750022333817562808731282289935922041830540816512560108326819466491921708280856188602401349100630220141364586274166055030055186648794350928831831818739899434618791239624911745945096124214450341384872222973648116013212901484824288990779000588618801879105047695989701168442380118432345347969032032032912199979284512471125446761452644732577849743581807539155755362058447184903856135918046123081462011490518414950297306528457164818913417963085337636930510478242709525811537754806017012654190437637778660208160112150841563166433266309211668826932369048337828006083868586559155818616846802242888424708223530375441130907357421178124841778816593717499409421220208580770052176303798947319751796027785459230344681253371349589741989936888880712350257282703153444165061868456058664250138583622088103238874145747207144629189880789148313921297628096384959479500058513774566188699205152472938274857458991208163001533958616673496254870382201399101209774803386429213433249675487249737578245820347292773443896090391196008485656145808119049198594612640195620759558426861425277148883134256929957032069900363126733038148663238382599008162395307556210973179457442959540816384870462867852740714691753751396740256890700498739160757973113783753955172342743285190085570271396213632309281918025735964461284170768640173524877444217054818550614917041990672270226826612704773552482210495965961950438391701562485017622615964374906183571565995950506319321511948200640761801423342041426080536850268558968554104883014941301094627089435049191024081182621490633669809523077651831851670147218970868156936169597620796883868484004372632960821566102631305130105003550589763341883557570299628942744318208446149179034373592752484129177878695535292026853352682859090616118620429737079878788456101043590974096626906547824682035380571309434975963190413213596649713402136059595706552325360015809220626878539602157635130930627862757534264488568523572430116968053468307664038467272591222080892118417999939510481695056460154668203913746390802697792381589997515395479204498906675786312975228527285813563940945791062778773425693929060322688709571828358902261533657159582512093724575410983011582577333979954357294971263054431943146065647640634101908679297669764674268202623932393142926405619257425384526345585552250764456204940624164898008529346474060986666676328844176736997520763590153073352806137483947175452720487461470694013707146651631550798927386992858694010558061526800240789254988558826262032899371468699686208463697492212719906870534105908432801587756353887814522405198806819624285114730114818319890966680299659745868979222861690811751067971407127546889874354790288046406169274433654804891755333538126155676547470735334399252953000383401778004008930840429328602191748903757728004606108374346857284595313109886159884450851490551521712561570198601098932307022106060954458687308631900643296392773879921052161430338491223896423997291362000926424701172270307013542984284481288846267062956964511031341166918838788291749200758818231482373592914176263759231023461512055070809954260771043497266488412857669731574720561079589025352661722406141245779253106150494729467638107905881171482433617184166001131477465073100882143202600185816506320586504423785293527390622751066498299645785884318447933706822305055790002496073958892936481403381243946607622326934751005126949278454158746753652003634113001991894417627214706085265468156245656219256940827935037589500086333788962337078857485105507176135817616802015964046108269217766781304809485245261909466792575988250228682344661529324969627875509173413481432400526355686042006619493563403816823292395610058811717039257966821527251019836875020394490225796595179425478573260210232611545953725197191553816873807807653744001459904864567751533908998357446293831114733292785381449304401848381072626661008746700789057389572082148290943490808681741522728851788243498251723301646311641875476360748204413849753717629348407612770129825899174848806244500612010789593012679437744357609561938734303470745346742572760442608178038567653984245996068375539215563935792429357054433883747310028885257662826237927580326510773106162286970663736551165004674073077888179278990853013155843261244112529981899912669376753147432194100261534345799799410173061123065367367991871839476057341464854095807966283410300685284200322103524138733912089805256293286844742109156510492668779649950104264486948806915875781203473956510081182938120498614605161366886648803588303455532493960147333277863931421992909662211266765830322234139793218885758479331464682399134767816698200167597704938248800921796130058632303104158134506790274693943305917940808387893424631637014050601933444079868677846807683869311331178516366385643948130389110077740240776243790638475162532260911091148261447925105158036229728214041673169114873330829879492346410514670117296008266471790941499217427112375189245177905361920065122414498481295543066965920581802894336001175032448474988710182074468076114738111609683048527083174583349532322145699592385500927183157870421977209628019142236193347744191671259391556112703671000046033547566666835409716277135604421565352810538902014555875103934869557975559707961802186300281328474897724228032689979064837724850602799921546609234891472739327083064198809035472299464389164542294757648572465116685853038445947629329886898333139538765850418171382764929109235952859978270164297478396703851561759187722775906386715232427572836496470364475455619641258501289181538953857077846699565918858331365707966976918698997405297216360362905364892694870479437945506858264469335649107240326014254451218563565000613654560514010750545256652746745585227964446655363537472402083676413720499317564388279446271074673477300870951604849309382254825628269838314905662970934816363106486074807588313468324230904619810473855202054635386167402969563622746326673191362863944570168000537313743789433537744966533357069053263263281135403342051912396545313986039131189259962662448985778060908363200141943145420009474203930800432449143885360582027858077963896549485509247913327039379893905403782752952729077653069357850918580421539070894910689065098669599394131138914814828072881006594569052088189124808907391555104684958492872725768964373500110095202635647937293205069317819964924975710978244510086603335123436446836351845467766796316224492527281262582335382673223580176832296109086072440492621430344320896713675490018086534859127353158328345288007872519394210796920693450014020629115456177789476572826178535125881693986766466601624287964342115998408553336208264787952668157231872107287084484241554241035628390147118997833747464551395392781953788864382862876389567896561148933311753770543174244118986487732468266821324721138227512169660899096076400173555312155544706466870624612204685544674103352958331731562551260916437556005268087164130148880462664372328665171210621608015255121647822063193262131567699968920873812089481551697700447406181803599049996101510771374582179835234109353218562071910512801675292054440560316066352741512363462813651320866214969384247326470446011614507424622823330971703445788593137213659736494236945949829284536569044514655954932254557873768209965046156991540097149495382549820682084304505807967266574376539216576374623331029645451420408794093804111700995883121174153149404591529718291718140130092321682042594395862662015480321029033537037375127753002607605958340478894722429906145052024307520169993994312903945023437392398776773368079947966388112894566895680224058301811116600484521141461155512910907160875068769193345827955875226696889621381594129936240395849918811378302433612622296760339589524704152754268584481626191483051692678043678197351764384679712419973178877692408603537722502687330407557933044391419543871778176700756141173314618775933962798379167159582147763322259597807362565907511003564850808734068914353888488051655033918066456587914274379693542643264753648630518874065104578372646291810504665894067115230710602536202079421599514894263918969562699417087963225243389313859964366584364688903637585923902613548561892860606513744553803047403719452779295396057136315076747978960646046329278281698685871421453667994646074979441407610167719024672429358191312693096791584030895303441450186852548778899244690578197940488748265084442764359343818811722433920788863672880031141666161536990318133831053844273184674007177047706045591618375779752183491264132916921936446005518385791719834554747223432914550689636972768095628427663873969709386684158387523126003001337000923950661499466109048326761008538736979106157926935937796638762668129450024952445235437293480112711400570682456122607739573744566055471143996842934081840768339616203195024676992462696767183555388663713175636586582928108980535803638978965229042717191319155167081881804031064199817530769774231753530841480582936751353344782777080198537202923224241212629931049734551540732216764663160229281314218228730884844325868455567505399373917528996010131741134324768945384269498227107862560568942263591075789571039280421061429171463127715310625592268547753592989694628539523010028252479929208171952636683908467877510870405687661695492305020241111578848536709254313879638617129682587122120563471773787488473992302362293536564137066180440068355219604037718283285024924799976840452998768126872206990808069642692316779777714763845528698942873739541380026888291866472411641761217513401901750271123653955844260144344477037312653861412199046972891899709497550329692363632350821712270156018512941285328264281213378735563334734957683146394847003602160998786030835541121703327008853937968943664107929379170009380818696594458123561519683625955648562310621870537798194403203090432100543873778387214485129575292670193811180778070991944364530975346206633788860497866833726141610022330949168937831222357485659413615817651783201503329867145669419136346139712793947420245861528452207739147832013368728119764703084693406230568677571956676034422082536843970122239275944890031461060333619292399210217194548834504215184472317142901199996586746660522077793341442548960792049626762720577979969711583705538658149767079748496445290481143572153368435051272523991412998938548431150668041318184716809278523670922163992493156375786879519734962686286476421333166025136850230960608583675264065118706639294154676754085629677409445424811603930540256437791072918742481554450674714118112416020121816434454011354861185954082729647624739554077984347027047469752111740974492857326818595957975675862232366222878481777955121985204163333926692600609551258860468729975946386902973677381364656212077529102548812115041716112335470715799386207834281268989126626355496448865725966747590479227485946117315185485832268386961003017926236082241129972941692906359281029743694711882115404397361106691330439730472947745934141463483906054770324494348324944835367128259463807218314881231655597847138205176855962273548951390761401425660531199434631235644065103593759189495578451253078933389012949340343894718724488768703314460929286450900959485401384432191920631373714294286435316592075296504907099058635106904590138203291223715302037372872052492986974575655187462854039952440514333119577529069525231517088907883924276592139433311473593023910826570481318288002737210195285980080882566375599167941319418726903543785136028829965192427737438550603905670466857188300416060576155746080597762111403502386295026826945792485913325675521583669040355106278031322407265197751254933148183071842925635163684974267676163982500629800691098142375098521188884540858314189423592141796582093623143331004560756403139793279080121863712465800940482217176152586093822740147951170896091099639918599420330415013721764059141520110689822858826574188860394075241222026835049749781561142259952021426449450425122631340477215918999917373856281740411037836349136671001176745077816695597993979687186847916563926126383856495105204177964641827573403814523634425947617660193151717909708546293326930375249039506147345598909879065268552409029908656326191713939867154671704837077740055016762630620754650850317315352124410862155865556625574208787013812879775705876087356072482052276875991408007366233944761301934652348460260211787877698385330697576874575733799575002175451989162077518144215572117379674084638964271332232796240398932283809027552125472402392897145899210171135581823861092326730317303504684182444221475641809639779552835848895484313982806912648197124153152184355939792410074849427841349763918654042019512320388244557143293120811393554999620960704968575734875053245163005398265091463988541760153542360117857187181255030845428785453656654296093715760894250783364489339461138903222442666486424557662592929058974908165570749274605724250343309261005650015297828458942250703960622111998105534305949939355313435810459915784418764200962263595715496248301303201090532901258099680040605227085909124643485467874073376704393929018738987128423326091364075022193841198684885125321311803464645689799276196371755612086774568093727097825164414140795723863153987660157658930196864126407560395344451524374997846620698853840018045757404749360741000949288214523575472783817676861380215216430252885739113401970527253148607847693975851043710600021331975766987360914300724301574317624476954515486814886975838744052777972047910976858058665668836032365783556658333175621477189291379363013482472939590151382711486064792401691450680115942881081817088762216061936759614796724460005291744897875517268959688759233903826991705311365960025897910007500343920332479158744685997522921820261645764410575024721360746134863031185807938568704117390462935230029148714282353767334951945554997031637276095992165049142605105467628374786439112943900901708686895325176186405756651158773753947499981522526034857125748629692518948664117197897685872202672215991846207614203495237741233484442308701582037790211142517982350866299643340919943275823026456791858755264698491277787822091273918132364869417992641525595820824039841782221332493648825207026439035345848361403026223299139024801264890079630617021529557681963630653476458509805917080709417071727755914126447170059268187151805731579893535155071357681378908728837408131671082119488887183314534057232958253232000229645189014700926294437926342892885532996362118351055142273775573135906314117743601231052215306704559738677907575836503740237567903457238241088167644230559185647491152300869257982724965815517220540833723150911014964146813474957805126256983488907885840328577826377785593680052387403882626283930875409004677909553443848955994761713196914310191323424498935378855719541821051609017734957307723748797701444993137382517491890788524033853792100563372778206086613400864086101050740332397445904474444816264064313563720462130747421532992332042392193598262669181396002709438569687997549695595766140689235246799168203231991857011094029366491143355068623842542650480295823947307593556969402390987926571837428554800124010704515276785458450481916687615992047259406561761208761888536980714045632321770114459369922993563815665384133778322725978159046133304712186279190327011944793155071107502243597273121984577220125045029841927720511922736483187649640809314929012443993327683411921230410888428105469264896682816707664100371987005644675941997812947071032476077433034626583260769840718509844922548538443777179658078526848376351456955445079854897450058811994568301493272691475648038367691503692434355704684247496944120044845756751322207599823216211517070253775886400175314921406279364129833353759951268281682191597914926312162063667799104037021820272018991559735231613328838703301792039343437894818986051488199280984517701994114216013596981818159173030439750583867698340140740046507456674277006311802656452762197671066565299626529816729771025639098421644085195621190095425379517947764549353030870997282298575112022268970772272655559077785887334768279647121005114374870210866786544922179766327715340900675493938294177839498384116035290136134509635297864702406413909552077881155515755908017888881911676839292945260163181320023965903568850657099495676699816422182345067349781647768497302504231677921583151864623916026093524539807202118293335229120271143302342097258984589194803047514165486156251376300814852200366211888135585450929165253404775452719695790927845852890713162292763360125838050800821668889528683793067633926119706110145992304491483471528718449267611982025617666223526278835522576927026128272668319401245329012848303830949518937456793819414452897286727350393309044075450956801312856709444269020441714663157918396319637497238130650097884950999556582869257351599678588248470243555270258937784714006359696289084374155605900179317658511377289107132012876263841095962535006042056734563909031325556314941587786582929527947881571266761799223177755358691135788958747447896575313536594854357291938428033169872312895804729201757203621374115202647411526036232183601241770590117818816853654088819870639058505521125716211465528343189779545830827645278920656546541635986180913706204206275358504557286395577793584265818433997834642730714635843775000271595609619332769537119681435702272660171086765449425963630152430234859610495174677130956168854948398200378928673531607955164450710006712412035247639547136199716050725227347247194135880229918664534453382840997146897298532283661065465686407835793177123861842059315651024194332881728999097316776503913456654241206812992000568913957702581659153011200845284470719495082114917322426221187673286437604138744080457250586901328592010192016513296079661515781592638596354818118892626557979623546643181365440002561140787495911450144152556059435993892931560684283284543124205496431093021264567771111772437520901451426979477307206570367794332165805578396703922808352193474936231527178150389991414873386918269175422598866735208511275298069589542137745444362519229876388210440589716053812523104047174894714184255019329101194021381854230679597005266154460460804787764617527988689849302151793621161183044812152757127857001793774748957065455025812507458354483467509231469938342907432510274138007927135579371112019456654297669018987797161701366276907690434827679496608177435100258891525968514107472628929502442087155418202338081883812126944344893951020620456182179351371711110080172356189151740750569823283793903481325855747628297608715375105169126625208671406304180008225022784148314431379680769650305832110890061016167099189324466758729002301764539870276999575384507478291914983696995037640872480734215247935627352176095589961453597211835152159195061721337159326102719527255893172396781850599111664935877298986568235105189730495793823414828568070555259293914978535621061404756382296474598757228689411974835163866845188252219559699996186567115152645013580828141957767071025393698242189642842143611807821472557917258422524876829482594217095455693830773225004207408401687980787587308046741446808103827366185203562420372150650057728450020248540457737790029117275963186834170975301580690945805907537835811743089089390787372753747295456861930867104306002398331859170625719520410366801867185613391464665968099760121078863515282975108235455845400975124043319162213132118493440715727107991534487018116145635174385990042691008040731194254907880344840102804546661627258474035354830276498396951078166163047659227097542112599598925211346774108459836142247700767524101824939551410843924913716514719882386074095154626076168523642310243666018338090707831055571266331629213769950847442580588183106304851916990518486303035040049754409474755380070466292246491422883889654140029229047879664411623153193120484435605659438015206415032771703101171952264265215001520801268716161423243952102049328516963770967088804214943638601696452239619444150267539639868136266355527028817458007679319951601517884044378429055165592902811435611123309075149106199783317304003404648845738210768469127117357969414825108860986123528791177631821503970049956867627895341775646414186611874470952626323686562445342158743823334330510157898091306051566586474797371001522431081241010791111975965289258808078910466015448974687764867190377651273039855459899809970747203620976270603883069150581066143208097078952681595285558296913369252771296596183734557045549648338800683536670442497776787776178161704747108840799754753044611280474186536314615940269857289476208880522425122812899310689754500438547836146131898478768803240140744094584214419100105759390659495297427469099285836860400925833922478529502533230794177133486656704155167366868668620485904486136018594952895734980908258304525932959875291663705918552639919294057960149937940515521743311733172026688022882788690822174648099528192747787638250764878425652586481771681891530990206350820066092234475361745128780916107582138456899595575710540485444721694690586316755976836632165595649487074066959327422174801231118154450221426723280548884427991780396368108892645119749713724899314317649650322956523524081122034909903882168700141947183425675901043696349342937677061853229063658622087953277795413872053416513194921885781206707677557651196282967107909658094523045252480387282557138020876977534374836629301888981207973205808679588936992563312297385051738699706301552035504184205318400150376600031864618587903335694169611038302211125929195742056663588366726655131300608194063565102645624074574474410081015731156191812727549701692846858451083677765548937954570103678711567442929713941228212225344101708458739541063589176977281398998813282647459136499150299797096513653004963934873474245574706066789162439278576519582075199865540974944273860879226089903974540556109475586439368103009279653038783995037771201555156852044519455129389341115960666564752690059323668724390258989608839169227898802466572859056942306008157912195219227078095581953447946182022705083654044672133152892544286992795571251556558471595927361407988686861890315725469716635661447176970081993710144691052057294168202728485682350827376139977113323646163889535088074838034473703706146410069172687537731621374745281975594940775456679753534232804489395906454713867603148290413443848964374588378763461333205572872096594514725415719884230849794789638694535442859046747574269351564731115067979227188335519585017153286718378929032285288909414993535586903744350136206333521058938049862089503576506589419878853986836753911035147840869749587425755291917199771161890431304807796990197391450502299069773682456801634569452389653351171200758586281257987360648376193149046261977206581765479820850051095950369825077030982024823922342023370471380526458805178126025065131279268575888240391257236223437903043422744564560630100897767224486665693770061565918339495566142164833221668112939268993536082641675738176557513776770796082109177443235574868728606538408438170571096001050745620564487740204247523587445279087679996736925856138335832869556093471164619925585372537012828410634720570606829068182836997289771434160048255536088936118261348462137434353708184548244472219811404824667817699435840634835305876107648390919448485781463629634330317605897028570791345993096356772928147789028677546211293986866714466064029897545770607718392888283571528976987331496246410928633888923372675352607030234387608545700412231040199769825490397398708737278504376968489419676225120387384076569511141846754725864497396255419524653962999833830520759798969504805328855250822174387273670019771040669728218036267863941024203661046211903599518730696173376957827602019041271059045061760582573412434403578690102462864660323846112572137539564275313898953343681401030551477035438736787083670266678220676621621937415964836645537685945653678160507220997252412544875316353655304513535952253157837646873814734279454169981007089246545131016713633990731795139857831302913564626488871126196921721331337848064725247029309911915198843882784475970068163140473153046094434286020001792506215413753743893874039429115270427991530605586918040655122590688513648327868138609289902091985160577804480254569681685428210186223621640117488841876137713663829255455478091352986388142330472299577373435155836559023164355375516380420075017554227915234384411897808466041869323070392510492660116456027037156775838155794213302664716085591174448699849184646237853094307631394942256230793038541604274262871431687989192613783797777700140763234701030005418246045445652733534475276053899769686008065328369587400380697880251437495003463590497764562401268293374730131981970446510703352622798701619114994084053633844464624284609948807929205730026473631228711076271764090594981410865194953103089211411820457504943176403621285105569000739065935666058759250485696627772958644010416066231894016314459901373767317560789050787689625164409088237085581427953817386121394482291587875653672216515072258320218435384329272643880822293914903557631304488498740127388578522772450553806428000157077497508227875022062668077964445543571733728703974000098369936705514747766426904591095891137774940382542639869143715275244245613857217788065022502668553845312435503440192152133354554500009695088588335317941704479391839506418015007401713519097473010900401839123107581444507545884472569009949937907619537094620347654806471036387936782600855830727508954925794892929565721213304100670628349151435493565592005526406668153373403342488648647787316696731359476981159753981979213912911173407485763800062364521379969567326030224320766416042734894392974767023915725852165045572722807223116383188291484653790534229917360810957218621613743937217113566447738272077057400467834849937060901635746354551108177333694647209001347528678664967244671901126658929717448689293139587480632296622694685681071870591619401225257977786261562746982911612328169325190199522821575935226379288878309792753989329215423037344544312464456549195074901216716590152587005488600104876889895923085207275186728594626644745859292576401868447897442414982920851318251228676719393953822212956506612545871736666348842766612315235443954470249790261765863011169198612694884175685548616819860224911482671680649016140997599480987129195980758184482362985053374482635103252624173148608928339184144187213737307598748397949550347891044159629780703483386879361675818109404607312780438317267308229505511001872725630823129076072446755555566299847713308406807193047723515278390994082966519029937180367461177227898594066365143967919483316074761114788861590250070448347943334360186830615374072385549072904377124527114108479680640995461100040052968543019894934680841794537484450647747245351372281157950674211254457852332675120271138534252182681921640776195051490187962071696678572331056492991290393117859016549245634291684976630449604535025306563460073941437542143809519309680143738657264571413133575386585401247344641578685235005888620194578253439948110396566787547442097049548352547662434082101850227245230372843220572765202042942523391603589242019353225146911897867820886902269868111435078203491992847237262270322491066663709421910539655246941053929126476805761553017905873583213147021454136262110935436687795658792378370319916149439195320026666159503045893303034186144830762552925803806347616512280548180086928391215295374155678779523396476543321607107072516623170558780948320562296204479167111460997018549401429543572937146406350988047324230981446911578212521542170981943665994545199038354172569097982990787006806854778212006147960782833869809087079601113810320731993490568432146247499593898684843483167379721296249489579729839801308191125685464620100944474538421318090074865891104797203948128532534082248815247494348798766988844387809949026166792792830892414715891685371351172642709031449198640574319660701728423524949020106883282104859040895155366569241044013893348752805724723650228814438221030057428891092834520666940534155190489650601338936153776149942481086322142638686818447782482434394907138762805757072082184545160719813649571103407161371510627173678206306049981947070084115299780405300740203162564245624669349146335855840011927146251270588293052975910019618624592569715443976514236146210852688073057008485045041213108395081401598317162561866070795432573078808092880638581447588023497068399741377658217697188989942855564797649532606952265314852753991101862719735028286221232329632852424543965596798353216049149985101284442156231543071370071296321238868780928709205025165072308890621856564965477454423134340080912976471275460362026243142896319749612826027755634249219537541353749248176432612299488505896215761234129812641420546100471670989377108818910456219511418354445832291092920740692971754382457754547412906304181972949160910970094134204808987331140225067200842110789787873871130052458041160436715616019222836100637121836303581564859109845697607486932854871015760382396189171314918966880039152314115954726560820867487898350211625172995578052860940235227247145624102675965231688855562411315755869210101402166286856750477374008596067861922489128657881325390886575424557339733036587111693729370665039791803593513734945659219035684256286489145180831869917711476975826840282083084930804751254615498005664251115345015538252356044527948230661899811901508267684140686124204279996770691781199585393334825693622456150541470198144654271321086598437500896275647333189939433328331144593511228573224283816298409895823178714624743492116398121365976453796736272530733085996438964549994453529291351205140814687553829403186283224981859814103642235026893378106444698432468182885883201382437883350876332011610663971832835503452659189362847969761642625315052317905385947988448399722425873557148646112340785134084599380331899409078973088717983037033331021234260159812082329572811577113105612479884052260947474370443256288528329197200500844914102114823566251836340304928430343069737605094252742523382758685145671773524285660070807313132048391580702763372921337004105171852181531543566853742071333611053757002981908508817378539264425842675807642266795973650441557627206678943375447336471810633092579188516227124210185284563190404003214735854974420615196276753730013917764794847588984778916447228852244987721468717923867522795264413630913611284943363534697080158665773368905841426910464309508853847216666857573431539549663068727948104424996621681869127285767303782595497675875110630413733752229700512389375858150703257815172882111014754780396048490888546763997497085695082505393119649736666079837391820891565124498802788129301242742243466509171004613601525637833879775109383212344432914459141079338516717725346617124718546054665271039308357521056052815897620216490834790430343662260765732164756369270389522940826067490198382178093068948407480436376685347424063840869731875417981906936427372018997848618238162799241725000433139321683581871999923024847458927311949777732047455597941126502513079149064841916649977023673533833497120791096094527665367877200397682805659000353019366856440986841841795639234296145139538885405088901198844982606270939438914755037882384514649148937205430115669962165895955291897072732158662135168039287555151970691917405506300916534220544733515871003678526342009883176908073190917851512085026404127317583169202128080882616224655214764482509735060487565234409819811373106286607973830312508626532138460199165182867621212793817492486003066267182153639462906837509855805112409817142669598128697953148896807464624162889907677452113172912792427297319029520579799932684945221596436934838189898650702487646409748905543486476589938516996368108142891811436967292850708143668169347941722469738164067807319908207012780937194393802819367721661951283553928749714372751847475456848884302099093853170265813212116755670571016982108203217890370249720564400129698187748098891299037777968198140506766373337549205093882746627370435352992436411488457983551429054777602086412323502355071967031035103667282746275988111687138518339418867663476314681347123002226439793959212021609131339731940895177859284321521658789105705792170303543624024109006368149648093574657906080245770068196293989303687328280924422798469395718401730764090695938819069091523814436085835506640861509728269002081597464287542098617622639958481656277096142759980760107988241359018349959935893485184954090412821863517799370032494970804923908204162925839910485361376329437819472917900743970205195081442809160035595844948278808318452207154293695114047048530103958950413270684207857922529649321353633739639716110111245177432510925142885236503202643025102510954950019473180046438952963822204968126909346101887635351122288658637743485917852122469114722450351655656255905377014974038035241765352281324273190848824867054339788419010043033405252906122959429840304773157399265091783980201201322043731461542151466072070207367247043063181407490863847704226974824410468939608905051232752780181891583874473767838733952603090813678025012483534297465523962316507005476102518846610345275159500111491323034845586572368279978952336137120135948539128627309478030876426211474773123569849455392402803284541961422736132891528290630840267512256225531864388806563816639918588484702088764070072146290950086559957645162715943870608917069231297717539638252705518797556924619991698775988001138146926492253144940062002957910594222354883005248468662213204489198229704941200671193094310923348123508960384485400506411792821947657371164690086499612347269316288186508081351032079959591830289133994729915514112676157779090314481983646073273059491921422432449052757446982484369851401609751684896803979849386817127486108364443054911189491384863091032864093545706777442766711287030077118599418230291986513708884060955350502571254286637305110539642655212600556696222024075492556157409391207652600807607728077941853085661586660015970606662937593073830881203872116207940701633356626097594722670296299333581854330615680979475016677000824921670368800854123106142240834183477894429981307527658869393907995543979751847640047574606830117186791265471585550120255331668428524913463760434798696618398566930594996211889526270543778206063511227135495897535597444895554691448258476156082200273589098227992629051037864258794600562846698669078805958545923468257090677573299769918660205897282898934887590962820940089541254367170411440729928159758197388843095953157476912564429914316533334575061965020885148947432963632535412066678763008833879131773877021668094491166594433606840348600184068437137035552577680078757463450592828187367337516540653049216384115896399394056644701987058104542595857484988435198369067491627801002101179602456232198369491570890591410051265610656780709497400484079242045671591455939547635490981429015730875207549812650081273599110185915938153465581723067371838935510220179340200412179702409118268623762029144242662795095844637246419811160392361412520501801440173919766543301065213461969495830793446155198102299479862559775523237700968044916599209866067966529268019924150068034099763272335388346486779216521413861540089379035029348591522709647386255999714944205027000547553210861353910352916835006561627188812210484277155254689127915576588581842216040094428443337807224078680827533970683272312080808351845258637453397439299123801411755603440593742942357263665187524825834627701545643075135042669554414588616929262388285843941571059811067825511021036329630840010098179947674408905760722150670776465481339388115042589254355183862449540452677494987016011906511235765097055721573970181576040588922704307697474270900262558043219234173908781466060528868358180632698704896100363222610815072328867701726418402920105727690386964803765398756273343755465091363568409302712070808966878686662904275205498696855587231941583280540785828858005447780563914543025731769932773149882324108461786409951458218392107333465506633452043699357161112746342952241844199225870600792939840167286951847003605699637875940484278942351547160970131487372822564398423773890854747058810181579426208679154582073859430917332873035147554381108694184763105809626658246641081874250859133587509114890180486748202249784505768238064274478098623023643567090589557237871411673915073416673324464123052270513050257963436230249107376182287644001749153332056799819347575638190348341664077344796141330460243104589449981323851597863999917979792955392093642198108387267908964416522274251796218605324919564351619696384023533328384647131095002219187123952858282005996366071127683527705917565117741384077440560254591346919524904617033558271338580725796058850939796865529750427555494171206264253192805087577658762910101869453580534634631872474373421241872402811316893451204308263737476046908500700871635454573704725551724390051804197682221407318581103362692684633236034460211999823362892650522825361119468368870614733720006567967623515767940657991935574464768972359127856138360926022738623734346615776371101220475852499088007072947377217430299453747773178675558139245653366467953151147013325906268911275924681639410568197680071584338160138482537659590501348420396477788331651167973763447907943580517155756068911676200729377335895368603011871033342290420971370807096103489670096529094598742739022336223999038010084331954640474888820952320698468227231607875211965110627554578209222698759237845589839460776431929513734675258282626969860433935566126983429400058082362768937184922293784216980914056284399822119020174448788075258996231749393971943822800297325597269823966373262108202658285189238005634716415994066494590885097121912377172035144510972502865138806793635642027470242235496574157375220684273978549308799781564925509955599243987185548971159930666470984705247875502692982858338541237964708606612288568666988692199818866066862517557722137094583212005393193586192901339935256264706576707126295092797190873655292455701425527907224793041896246757317352841269151718471486057431505311428799660509209123617724506244839588161599795664427868875710154471199269461183352803704286327532085439277089160580101008427650019255698158758415993394265932213051753137900431273269289475240028611502963848388186855267987724944669036596573511545320679950807431616354298756590162556199822542007620048025224967652782212563017770036616960201313630582313388445609161716781799322951644563983773466875371848001229323913932341126457215804877484949421980489658043961615874972821043307368118384812534164259009799079144583794208613036695193182323018740516716148860189596004699421740620714636799754068224131922819579264823798714788989818246716264069105696025661406238524808713713310859821829664732853225214448776123160830260073679051116142599828590723251328729251135792988628866452731849386392581588580608063727781500317623801013971765984665949397861275035648615423272537720958190981560516011509437004437507961086592350263018656542603711971892669733212594189568386622377003962371207088090069598817785697873844933294136840293227343062831378524385947930142599989682492376348419064037125711634195735561047918382772488446572015212125756983749206797210537445518081548049411814220428860872063024483980206587421322762739772229970655443225742817828517520740414639163091160903032362222522978377304872559227271777021006116664859683567555667487922123118775664984000612966187415465415330931217358737421706290399856172061826555655400958735598094814293458800179845772120072123157069935867858380570125040721116694475428578048615129071614720161663066677061748734008532105574776547991132285888453935095691258375296833823087104322427819668073186166878263952405081842856817473768444425593670082649582393726532542034245829832167523521977914601600128623743206592547618942112133454316567749021414867272654460530468022276656090662367175673436094225083404554100361582527964711558225414742876086184429057864673505796145488729114372621992632076743766877970281292222542171047343901842112226153619600773467313274866150059331138877663080323729714082051739781403565806973235911306920438619713592077027528445465023967320597065685291458664482462941869186632659607239841571783231301266134691471930786458755658367560418251492224003197377519105706689204603795115298624740154162410122643157868789607045309635777161294269947050301786296044699030241820406991035868993719355462832011359317735651881634265237023278624427390511228893979346145701165677551454761542585320498160171615737668640023004799449672864095763817078286653732436695462552546442313823546303112860757596422709004839089522965714110989502313880888569207946860923767399798184786651830385061593111862943200346387734542623333849034716837740355335585275946330124103831341682526427937766956112344817629565960539079657954938110421547524760360532680942001231437327462047974343154417890667840161190356724062927881796002066436015472977909175070171477254757782797974626803254769664389261433598112134381545271535649758306430949328645473715015868199676829507165588527268931511273748669841137283845460173594036809773886989805812848273839948138303230277408576147287296756482056311694134346522666947559140684154542282614583731035765357053748262664062777817641478148779363912649292978675002529922719387718798337433605745070321426932325591644907191694313588092545254341697272600910051132502973529854679066405188112006396261189098835480617455525605907871546176139083975170559665996761187620693498514353285591902377434118733808064396786046381864739839021580733354277140190461611778189166299448426761689289155502828125535683031101440952612328085959757922850119035675581658496979498957447734279204007285357491759353500535172836481721269816689078734320066651362210729571280969645941857725784365228428333507751347731482782762000684285328695540859551069762470773516348112689045715256173036900856764897064361552554346580781320886917601910424108130855707779112581805491359501615291563611138262491368463171253074320187562254415696723252969470994986564081771299772784410026122747932979459870457660495104378531499350039243817635469971279437658602372066240174524460583908283410075036481140551000223237664890673913644487790047181696376821204398904919575829227936348668714944485466331284209373629725786516956087551149965730532742657461805524919492291117164190727537710107308892034800578482192643485086904527506418728867099309871416166434979952544100310609646788876621763559284407387740233887896242579036357570899828966285231239565450709683883359442438149397341232051396639644539646771482510439248320812006248929428154614472827604316591252716932461230586006745961178884722133289930034204808451876094670842572998202200543723257410976296136513497259363441235901586645618236196726319762208149613699493298800087976694038470965216967554932569357890050689470334072424833020626872677825139833295398131850995687671575524554002756609752424337366589751291420186778032591223486363710824399695165706624495896284047504060647122212408106344621956948461952742180926415866099915914561631308455547532487624983219103824126264567072084812530915571307198275502307353676777901519329663672847707315542752241261391263649771071360582716976792694356093926363781433633420840862462308229629424497028263267054041506427553538944468196558068809600971257817580185596882384292181276264639712831961331286207509648323096665555158687884231096089968454995723225640266459760841405945998590648248578918805738788173061766546962621368111863880427289225744553071413305934425132095921788155915142138581760018498311096733109111299079559386358786690216561933243935370179608270092242062398364471660100175992456262473360768050034848381577240600657920906863162017658018796003201311637709681347912425310398729732552579886921847976227195199769613362254411471729444833357390289072239114040640579818733525883914221365334446500758635972850094975782279912979542465504128871500876965211293782076136845008339930980505044167537038912557568422241549009348405686330827137713610020930890492428474708834372367874142212572058010425044629883942571005617175268710144233343164549819367182340843239519484960783326783116502854349064436064339024616735683317160321095257651878747936993325395133024134008080116299945745716565919309470122405113828927856610891534179656397478254694437153077349914808108569962845357367675002330667774481889032121848981627611170915464552246014688638622149869044155546973017366246697961733752607127937332928535351275275834843464828795341322716040390679222084309066461018820041045306620579653977704082518885668378244012168305442321801387347824555685733322575025214972441039335465425564713003022343357313698198530869968785121479224841779955619337952120316391204932945474803487962592302307378009840200790338020181856039188049215990063388352550347085252082374650797256873877458753495349031414924891099555968766319422452706596290872886335999734158128211268416902667004002951943748458522581295460992552952614130357415747211281809911229799619649834492974557230991931735039250771604894610197085575407437235595747390524316151135733982661307817450660833645308242948595952692136417165375957014707470850629600264535681112820061057293103548022756253178983770596455890540991861184355295197511888680952032689709182331991790085679871457341101824334513419103709627750206931336139595063135401233789510684243735502558184933681299757292858041751309705586937724529191055946548420361583796589425248298455779878807326899014693442071355509455071853465010009470362693952355002549258768376718327555908851474090709160921867136977122656542569116321698541689284189411991098824462435781539247629275300510119740020792063434538505788744950883093304819905285794809622103767543370815073174653212480014228137165121428919705080534717579164436545193917646240387713194993748662170374291202417814772439253789811434073155938495438664740709499797275316820670801535800547528127060630865641113800840141280370168120916308382741173117544154236077790811000389518484853245671269172694317727836062442520787455324813650688419903440302114273525866951615651544049752483718681616532382545233385697947590986004309298832344008130753338792623202626877745972513417283516313954361833328816673725208600635189415159216923963745938869048492256769226547714190075084492558116860893052088723195500046558541351310513689025387932782375451112803007477831152743221454976717405895009202810941132053811062415573512906399632383400444068308040858761238428394824778206576621638170012235077707096778200404585351118902285006293036729679762870001432574131903467077367701127255274446996464060067429694696829301614229906869288191225258939373791402088415238373701407598785763591160454229364876798091062777038857248725932714639264278272895312387457562053007405711488209697764989868146297137899953506246068258761550404168044524219222854351610760329054358388772814540010333816309656144109293897017750451487589155737345291262966854660161478910770953856020666588495576442084465469873041629927200980322744970400999959652981553226238729810609157360749117214358008109969900340259587410319401626597436750007831117223474654905612472660360375678586404585114465619038236146002823111770743103659562670221275415016850151707024165748015215717928238436255242523362734126503851512946991291342187375959208727781581103199223624116395179450708240455543224836021142101808581010004621662835906872166422011471336842385406250035600629659392027564430893203146455142256255033799668736544517662327836265120810349961428620097279642383493332305095159572431579613544339488022053838189673358644105063460111918789289657691762535716107013923213346924754091436869398640426141768144002066739831598316208191494392133427370474918706567082516088626348095707713995008875921389049606141053563796634698983434618824490321159330012906854531562582925283936158574999262797400027711160393956892089165251843246338896716109299428100567218702095545976308616694451261168247433429196115578747368848841070228987413418246591684856427390264505156694905967568029929387828804008332723518809727846126037759166928349128100236106087466904878780921334018790385961240891117553738337330051126067434450416553748974052229673848357331732781971830166190644301113251196291454591862960266288556530991110572208756084215247494415992217347979440722376899632485612822867975822417255136854906288293786134087282916750263954225859150183430052117211901940384243283615354834108658293781266279808010391650661635947940173342901105756445348338068801975357220697618933265156347393022883214994859198918278478312060948028950826079750772320748966898665661622137458613554248128456640362894654950456495012532603822909261828617892042259260094398755058527094442369812970925600905293926930060949834721331159015873509322739389285349629102500981901980862921991121575785980356641202490820919452324749763880397169042332170833164839434408269831954139533136467827141309606599635638557268233345907862405977343771185274403873017529740590977829376109501753249631048348973150906707627060555827912503337978980028505051452452305645780838620646735898311052109183308529451995669073241873840172231198063845583450873456097960232016855819945507361869476505138336819344496629325062448972025738445541794168938381638125499583935943199643441038181451779850456028326284922438342190868016404786569410036480814178113706237655213673524809401479271102085683713564949997091849696584068889841265474628882287572353777407359532987206293455480483936858452031573032887720405724419999657449004859047704673865649814373836110227505181022602632361838625941924540285873990759276283598281936822985805031121424704347745311206132804056073010923051881868248151658014182831799407851633969503031917860113493060936401162707280316642343212531585247167853624665187441653866606949072167381401397576482816696867979688396389549177725241048730917478474740807518706832369490521715644589794291835466117606671796684781389805098058299803646302080672582691127060797894830248578646602942022469062554331275815703515633669682195869432648139603268003456080268666597193252412910438268921900302287995141788646598704294394033753491897512686960822076968597042618324982359815302666718182377729246048967720962880418274526374758648414654332564774396088477021550632919588414418021133196685749988545214252387868969336673276082622313133584873640910794292317399767887007917181338222319550814670926413585286560126248288407267761751103622469817386783144401160311474339347332936306028038701649424137296403796260731523029266530545893133312191205463478927742355984767155892526526518535372682863681959577136549444902299068014925665752825003105149362685562059626081176180347861321362687764872166626622794311435387247182755375990482436539300627071104083709904418407033044836650664791726554609693529250293314992500427279079232132925518819285367269154745869163183418861376640322492893284041755196559460706500679719579298820078942405609880222142384380993499000782640696707790159211279132814153244078264112612556881623757400258691553115391843881633595759251232445217484394724225390291826589059177052394278952001707049077805059803554184405556436379420041594164252390375207011426292065624905556670837561373003028304588497217457524203123163193309521170123029807622415291283376317611678725967636820589768994064947823704317065652230593646790323428504444186657809517040941418408791410821514031142632038747664667108415923352184650035649560463553245295198624950545628189537734078718129842841229507845262326538334549764685466664600887241539714700213603087503674709707805849832970472595191896557622668911228031312216606236725109778693095484706120569728606730824784980111194340654554110684105094485560414292521110030831682460023022961171255480396791404106902248579865523056236284538119039874198834912276729207894934560248890018258697352458671980555251857845092239212460794861720974705529208119716034829514656552471287081372138601329118772776859576634860803466034559079531752048434155038840887001495172262012158140447501024125058423739747608051440551901443645504088635316845648967571099197677104671073203557278225787516160580483040500728136436980953181072796279152517908405720268282447855287008164702966529960772313953941255532164559475240449865315429107134825238586421662712907314729615481230707273639988396744105053449584069765285426344058786948811641530886917725170563440828282237668841811160300062168152754946661266768473616266013946890709908827464142302319309487696780516884494180560980774572522913532212033980863346635407657064891249313150653512133559388516480026291404722409884050293556932113698849696241822962243211101719596969385866321890892120055429595126623150786059787101300068066256000779050302872595889456159979240464234904986112067865646907473490492576621963429612834086234658056613272918759471672649601458111635930831540711908299524263090184517432298225231675844662695473018106289420996627416473139553558825404670904114336724243211101875678575412169659315462306954216396121015630973508017221638931836207806474180988351702703665056906900413749550372926020387235145102196053035224655279334310522045511330550015104452240116255149172558688424103553175780644765113393772569327978304470044827600476161092396935561893304659803648308060769413704048979971161822929369858122398258246856608238979414738287952742399709313656207532280453068656526509181278007497533379762794375648727791286496980424746939619027354509788084139793990867394152727115056333744447294017221035759361167894949915991030067542165139229786857445352514697927443069019117820097453618337895581762041821830461097936261414119192715451659108250470091183624263831598472015576911040374993483838658934194579968772120897710543428719959851777170860014081531617008776186481394711831958322143530211721755144142782455134060929677365984370454626593434720004648325879729945736830760094038036735708294255577248085574863510636682667078109460460922162151922299663273707603789977608126331868334204958631720910960022468383475968419089406050687693797850858039186904053854064823132831772398207063268514685499684853066283701897163970837187465597171991560990922006094299569180648541481933676719990832528589250737556179049873313968949766080983450916238934192473137535923369175049543680724512517275879885877997363731686599473301641212831867701423918487854683372827734334128660060314410024471105422830470380828830800522504940090437012697036708278142596567691725900561854399384977401149795288390245404782592789697743951077344559514465774286967972597722094010369250688809179801967195482490616725952647547722960785803530751546918379859115349773003194815849444204225738486057445153067749454775998896560145657044541857192311301141311307136321893520241020511508988508117841277020929395325027592102945900457512096681018250375186275376028340769828396082078301304925565960845697064233903030603596759477752945786500087853393149750841507152376307421606740176838296196118430970866849944423636546538072201694997074865573915740329825938480220451959146311562296022277069520019775996565661882329612069474560352829908979121419730390731748830553964083152625451278174405820921486997409797523886280784482229913540752414364915044180638864724550519809214749663988014843077723392343997094951411773494315381780554181443660651609201370056662771437825764163156028110721588210921798238153619864521614197818010090690923537580111276582515045642132290061436798602083479928956221511234334702999512071162041420473820664547361868075220203560724348872632870508526287018159344211015191150937556297763579186172402374217294205119437671743939473460613300435322976711169310527181658428009963868148820605010662255461946892938403873464597369087296750399443588486548713873209786246583484867736051955393829047612833382779197243819510301738942963020793446062953236242517820312937584682322681916496074654474299988627023332441541847531722122941259461260808302377070255264536529127464967275465003641317680773542039964396367601535647489195062737891903516964109581525968718001613612253659651129315573502564340428273569718204140121236668874331389725591766719486689307526352039682731484638604422121583383195747439606809333338019317474588777665918384893176232801573796500016621274530696128315910996076705118129767093392685528685619053104224680933097829468355090908894868934677448970070878062456473470253514129138495101365101810552658909150540785831361674257572493926951669960060252555461113856367039673877317233400159832199143570743417052659365889999154859667776716891259073041666389636203227704430992202121521444428337564839896226495612193731043431477482288374224150562096327120398174187812218069996032227698552834258529098962416397628241206688026810180139803391215031764789841328913212321980246695770511915825902782313442252953823300820421659977474301360006926869477407947362824252621630481328796285842104564131229820032210414003493934734112023305479340466003730911932922855319787657043836205756627504299742357813554207152548243468848990305700095408262424627849721266520841978729118250512892405027913589876288116226247013995983019691739912371518972872362801630029601169648000442742795747577129616483164417012199194294841456467895523816337056895545709471840880055962416812946994818476449856815617933893646828717139006812336223536867107386205591220033527905797454026009228482242179120500329100335696641860299286468231415462423906300776222257282135057860396401206348276154622738411723141284363075614161925138783976824140255811728100147608559707201839853637318565480988002162411611540892001590115039781880081280006702144525442539716978506685009095687098232116136450361532516430648283368724688292330452311950623091466798331831972066268016466585556942067150068790419888254169584769862383537114151661270611830120209289984222527938220441879112518703590596678769353742972286364555103797488401475921664492395594650172542100949276714301493893116405413090001957340976139508124830872143352350674286663708945983373360401412617983220376569274438845751763844343899306181389560169013425389339568181582088181069186291972597421832114095590020483435074966970155978097029666210525523250211803154223749176290008360368981732246057191845292008437890739610162315292197450721058075873641266805828948285047657208890059903338619908006985242038893383482893137148103100080464418077531254113665205784787887094884211717969209682693322762757117381425766242049791231098274437123207951484032225455560961831546102735223484945939424944632730882034416412535715235950250947522134342935997244534934646724205399223338961551515274709057229035657582957787906184415406216873175607689905408431420979032981604553878146331626141360032836899520920808699271365299481688401826607302905733046600694898788747425689686147061028177910079211370228719692937919452390602356248505597327823431765681612011723167339612423032188199191289040088185821322083274412416955443183535001632536504462853273111717610926208441418836069025172068632677580176022249142557239396654341807480531877124401874786206386051644187928582412663590382535826914604533332766212522467289817633638851911504665039025674695105804401234570637617687279483722468977886004464016597713942408262442789063676563535348534337481520841580677137476915479991804402988180942894548269870885123309876456661669845104940573867798479483628983665661182945217033172740821451039386285716238660335056664682813547428733020816413447992961810885141720321778189894376919241126954199262800396165420609455316849382082971062975162294375177967817165752678130972342047949358821831893526712915913518006262140829529989362083925376269414061830288633317539773503183296143034136825583037097108953952434114643694145525701901922367366581990864977518010989942540245142719534792062245752104454040852136768680918867885688409356454950651462565644778704280102578467527374057335660769558071846244283989680823646743900474750028069791130864919954762378392643255404975973235277709363810485015319350770711024724658136040434016486924587897020859043541464570128977109956760660172915974615082716653016522101397360150482657940457338606821461625289888169097743876021527180971314565046276787384268502059084677958542009986887405697422443529350262267561527942679880259652410972866204229285661733772628222320366528798358545132495099500813294983578621897067848705034316001637973381075389872308750526558330089789768501021734476055953383269782996694725704689974583879183351142264690464975333685542033360904812143305557622981489260145149127085181556353834172121466122650110257704158259407188353029801366200725527835290382436629981127590891544496609650752686397416867257570509343826121620793038683684815665459868475281218175798395540282203699619488337401325331965623258780576990034737916495207281326262505970013112344965089949050553182690931726399124044880330099071041103036871775537563070541231586606094271607149168518299373826836421994092053483189851942775022038835184980372040743668745821228719014559637122057220758125527250554364667376225620255543076466159648857997538887997812626920846336871504623134483131662842862890058283505584453086131693944060112033151525881963452649739178557077362881151127135889325509022235458775683109067113491979328918334134352520995018306330389270171918658375473007672096062093050118684888406533677873624513722578322826785534555020054890280721527354464542555521818620169410648984497499023008576752305777640340472801700753530984128091633731949170211269335768037455382834042471389864147241077667904438126750786819171108487820893557774427794787902532022698915151301765464949650173632964510449168051980121955536636461522801931866418864027906716306326236152676068694372479251488482092571827068493812843645725943576844737015865251811214749415860851459315634098439770120670473896251961924922008438276082899958860917003911169936295685339585167616942941624686322415911556832975326628993064054821954103342095205761622216329216101924603436830805810416629158737119611123270781936613921429146246572323988332018130135532378753980610085399613156118009572275417687115732980114659352241559274264156501979532001103750848673381192595711733550172913345196006167460668953995104928257776039754555077729257882415714358020164315803041832798577459326450540023216866058864660880595341505974301773137600471554548685084635065804640424829766992763724912033596969241806475551966977346451725122333998862235775449160358949747585129594714734196760289762925431363930984325618960097105409027471777673263820474562163801505022732170928747830579144753869816599692012991568307895983532455011191481931581921832002350349900875190133057017617311309137420789904056394408793094270446932344989152007962319988701095360251515890556080685795335395557914765150808307353523617639215953327804382637214622466534678111337395450969086653792441632816585408636077506490393012639844816681411811786785282648776485091633766021380611151656095735712329922824237777203507514877075708839229826213531924739729859117909442876056905111045666393073245177007679151429037191505452770213542622776384012354176593801442475577689275227420579373344936966780843317668790595770805938971875955726193885382076813949398853075370960052354933376988302832852487546888024208372167349976450391968406330167574821406883873255375611513430972175270583731343712022341246927911086859601666888838639325436487792048989332914115992800690339154442155783400122454335351753107689086514078450071547379129728006044290419375384917165910769451472823774306379742436222781993602261951004186437385458946780215334246223677445876115730136539037819545691735970747605869557577941823891609572451721623924036723672687269498988609959749539202571441848738911860987237922976109314122284573308777216324152616564007344684978854098508462854832460846498070695664193273122167680412881432923772551390176770381834973138386751673936539106118733728529273782733548629434509407671072984437867725485438511714889824856036453853639519588126894582670073617058494263141534492853939278732077826587952249809355171925679585545897370062334097926414971098319428134072994378202234978792553973950526809686650612377730715222185989348718453607369743730517484378957806257127902589614843571777379524635648570159753673812621332764648562626678160103938093988012994222127310647682400946882610023936782921828154353947284184606426868536784372436036389491526509882047693335047423458458775744651234011062013500748105028110825837148122507286722473456026123230277588979255776458747278435611432641809679370410914866282573795570694585961971175607238836888244412541021289025285203819641978098297026511879840217723091122282184070746201034739750178120372420120809858234515908835820533228924111628959428259006229640840638781293700040210909522929054682021019041527084990229448558984711274714055992319552927135756337248383709880577299272341161378477073893546649074500008829097200360288417245463030835691062326994430727572116260415416423703286131918976686284365501641384234670169597413605245193752157811353815385245114857221561570158287458876701559596832549192813795306297451368531018692988345957788737116478053800628022526096990509945794350579940541677245058878106820189667708504875546693577199317649003887300819966913177343546123116645113065541814034955791929752993612591097688897112727122198485867791444497820386470470599938633917022570139807212293587997784773198617352307947231910938736288974977518955295418449036695210824035738868470825121138413435985023495837021484812695635958280764929851722579994803118852303087342343443883803162558925881729142249604576792458421466776038574815761463821181100785265511866922757342635215499975850116281557961317049789862110721190309770872168334996513848352661883894511907666724225047629728372099794646963716202793814674348048485569860607257012096847652232463978761056015637137070445206428184978261833599839832535541244289851907298012718251156879549434208136713522577697086587454127456744587745943723304412452011140678905820291030668715349392781772326386850350832407090560125549914642748687126209323195524536362468628820646186539598190727206784982647189857235886437172621356102709867023512055908855810395101857627541168880624830278745007533920728351020695352656574490785369175813732693468762710161844166868873937787403454354640910597392151508157509842815633661599280355799891070884027279517522966141999958223426574290693699692045632388863964933482553708006537177079270853331223705858500263644303983457196744031549818678691854435520241161033088968601553185306813832186290681668656102736625452909257848198065890065833773216082795352006304458049542797831472205246553819841974672335653451154539381643344446609243456509522804714503943395714662624998259694750005582410671433294426964884204695851298285070592393970210372481602692976909419728927162052509890370165457514996529148616301913983783763049734207511443342871361394050890746286140351174821805994009260422967442448060376644464397915304559643981940951170854930848477421517818333995397915332774156392029484453131722670278469252910595091238988398687444995376487227839597078791703923958523598574042520846682693848064928311927355552038624579149879608659670101723501474185606626919773034733870678094208518390980386401234294449558662889146238894518163495507841689950970986117869511870195353254794173696519595481926599736217463982782856843269119333642744981712567526810880076205858242639538670394653833893155323979118990533576573610199143845246968113288265221686187888937343788617822506459414590739025277469997870278359436047388184734085939018277565689004434189496316186694384288727741693982046312303157068236328745135925927333074241133115251807736888707308141956021963278211612170821367730098032183444021307238118265746108026889640978476225809029835873790622246270691133703374591658629198691177127362969597420756370629123159335914592907224569263124918287170916231656614303424134771821769052159435257765679680910427359005049381626551915742091953581063949603754761769692730282711636609386545650867231000690870588412858200490130961121363273034078827599066893934372612047537614334729950175833709564660393605220947389186160782591782182218467651412988647398744169451742279787637566461266245157632572410283173371823915095935530584274956242114024718893698961426986233070200143912918443811855821545413183736359101429553655679195612257979758636558010301353681459639339469358056398683361179239171583605334246811807366438751683339384932853331689002950704331965211832068596902569995636388214993712162652712649578265926628609781221710467963281636293474176829616768718379344628808746852005041126183671355603148625919002021300509457224478060782415112476416772784684213370580314318134157454558423677927673188757538834782817810460388842778419852087242915441246042374942798669086579256258149583550843738935136366318757323142277015964556848082968130334147823380498890956468923576431208860965957104050802986581036172195691851175496146477992787656883794178412035661498703426864256819451917129899772128119182893310045119685846815498807890485505770666162661495088857939946348622398028767876286678999357702138623140758603491080294220994930002971929700681317265846645936336313052747748421732481068494531317959412843243315395539807991124217280265406350939721020123298580213423063459078053262969767978623992532270719417882610241556387199117982929239764346664210886003508084496014049319639080782179511379823179782309199564998688543192618354409887561261617896993041132218144318438632664345782325299873952290741297337376052515866161656712110493035719938618218057279086024197887649466326922908565128867945624397869152676187802009827286541592349800209506653054890560288441397440426546857891189442082441884362635864402489526051016800951578076577507546707648862471612002971131331179756560524670231317222585886119697946708934962095369027167910800326796890220779962404818279791356892092877545306703381560536239724547347324087205659176275356721868763693531674367772764175177052449460262308098078758243534398007498570219114035602586574516931000945386767171045651122330274141815937378823195778079238810353430366063204342765312347548788993378800627912744025895280577349684236432208280125733015764922929691161365242480016100655105625834467835422475021781395007471954971289226037501423202013660020232087742938612949158446488974442501969727428529983858641034413493680443107832194974105531226441471612516284043653444056252247150778888560581936352298207607288569820717876564001311382227399947150782898062781052114407831263047425287458835026405132532052463690550047613650161464731075229589770776080148866985019828400687480832831975414622509902617061170805527776292041938127695545547344879812274529593161023020316333474546637007376133018356636976598310334254657852793824383138956656209289992902577441015084454533430857057862087429568358382937776058440700331683090564252817391203632023586176686599641094878154029965594926512706999877307551573729939559915601940352647079197920440940008700505101261292083546518053144350538182123825732945460463506545226892078856034352667793889455018860511197084576326283233029893812275669456579290520529315196908597919851042765263788415667644428222346132573795621809701415578239770565433422424429275007303567814333898426498477124985004041504475882149463744502944353393931226516568435001840601097084668112015754812777005966552988820132301517469836262825772194588216328912098492109778262441070221393092514739771620389540405812894756036875773663151758903002870732436708153817478322507412678502244735144556905081484027518288094108434512929036083231082037298485634622207359666826963466551825453156608101758588632108038892212673227133825155692440180900744894153646432190669073146923719228735302066907698230373378527065248286720028472861761544949001508461073826417797623506379447180870991645980311235527570859085297582603492114243860842238146574976110963642754830117395908903010063321346187559464413815785415892965752524466255742276530159728143545208177086608266823232074042666353023110070711088368466523954990691600037121814088758150913949168833033402972821486891337086002281960951292585669263337553613657867308738589312162599460976419251374362266112379419415905643523760463683813185156613700913815037273413753428603857260022634510473021902623502161607407752411251236483055188263144887797208275515772514973278696360791053668866515521757806823386040484025847119690461426273619645876194845263836948468893049140992138852361756143877870627614146753124438570990676929269610525226238985684431846412472815416054288199257699539793161608640275438691761171291001411059750065290538784935946496773291040273874542752303741818396642276669614629476002093189486683871011622494043249201756070012066265564660190745712816086844722753601805481949024331488704138974824230946925404940889975113959140452420937094673911345179598200632455462519553427720267189473412284709707300594732075455099265996088013525831083485369811431295069742218647444454895295137464829165118410516294930849185133424908340626709704250528319518646360790667939521783695077666984701383324365015658273884327664351926374866892142856432887170540277037943831682769178272685998866939019509005986928741765076587000975132031780548070288488163277692763950562471524324313611828186697532556746006186870024956954915039060024815462637863981353217658234899129270219962554291846317693284592667064112707783893614147423217987257760799844703113449579305798530874067443280662406932640177089063981144131945950887218721875186214649286247603477229605644987031968369143874472782469626648895752302142794249883801084170693891978547612167111796804303486977336293580907271911235319260438443056423374331546679358131691929448568758459668634573196202036063453859044265649881054271311200153866176773966138970129267851750426191158373398544946585542754556996941736713952982558426400535107408525706653363111596660608672401521261897495424123655860128357938488320861554213917065425254477880391818056149034204740036576865613642047751331100863425676295727026963383473994537237378123013708878341983436319326695596208290196500770808745303799693989030344849911183793932488473308455012208993087699819729853298610956225490572746472584605068660446092099444722951406033044248070045426365328365000917733338365584187484136063173208120396254076771537506931495579407335173818834647212731950482286273965453081123302987572762802822104445209835843092628361744803380998543075495098615776941798731308511278701936877301895585235417526935660716471279591974530360438171024733677073749592938221587514705572775457403602090358974671519533463958567593308618409140809518543418424454559291400661993070981311861422946510682091225002820648378653266308772807954264076732083837490843912730407490033560977023312852381837086479615174211646620237207488138835117146292131181939884647797327053129052087916075822286813120810635269753603349758629833526904277136431733060338219095967318822326207967990637627328603013191968165462189302096441247739498554579358004691017884237754743065769143826307804821293353363061398349228703969871362079287064979685592870861083130882825953371698597714900928207783814314886711089498862770445410078387840251421317173361950192175700899014035947698766671359441750112606009428387911281796808700831326657561096285121620450144151873196104105690710185558527303697966561887431060138583121285475054726835675220332899861671469095000391551663142954967098433547758317506168121095555762770176717527255806989042427769079930440449504384183067726795773936998373086284557569635170028907972414624804612275405934279192302151151021010628614836081010352476321519202511068777004153166933149833504056187273556343989616007353713641137800614885940155973503219876689748442677559510235338392305814528963453240588653359838244554505669360846548319954725519868879032402685556869218041322325259775485163186750705217214723935934648003282493908705483347696647536212345130451100274107530564759656504668009122745458361861753047231072032669718699505300848885678996583068012452956918409626554298582060917758025340084527375845114944998657390831706099978073573477956385521115589992138694352249689915604344077625126281055624685538822588662198052708229049068145930985124684052311690127471514746543094238762555695406803406994109673807320038492243299328248914326268003997837179740451259582843601737384213014067119210707462854890627922290965380370243048668899806191734212467145420313820842030978781688155577261759073814345884128536145739988083718126776217966851932396520201162729331114188628928670646444627367585171985948471748864296347822931413689198386333731755882256870033501301842202003454085306793810835876106898303673721312381853646542559933411903858296925151582899982371101904943722809238446767967982673549681065502051090523353500788791666793261070462020697717107368737551197727641035761947556550737381482880610069062934166394701756772143929782922407299747494972882716257818002654063818950627006159025699434924362493609203022544195054091008155816985503919883230292368066523706419679630021677063498837896842596403432177937367402805315910798334590081514846609240755024741334516350914295815061588975491141525352405747818049199085931953007989821350622625433243326793108886935609608971595227225755906022462505254863448359471037973577664397116453577814632321322012176566526884796492916651299660409083884406662649369124360665341427552142124357461596353255117138616947362071457616031837298651651752788742069131700398206772805243140406430570751932710519860344204879546759892316028709344453876096905086214206918261545847730015786562965803442645452805681321571255557107642409611996022743298346973822047747776667374681947296250337240945576468481516225323573561538442586329488324757099687846795391114422975107603973933730717233545810889696610029832381807094038472131948568942384343189476036084917036973678377748836882357446568124015342379360430820378735253957267807053935986446078883798550777972724367206355061824075362813662995324794409344048620739191827682792893916571341435496254140199187378815800593699435992395355598858436830717556851416693886964139349066998044413999474503529466251784054714112451947640227160622919415814522229914973601163047696515039093123581400299382630110718020297680401202491344979068254200855422178633942498319073712695419588736885820724300918071202974001526303915118016565012676301815724927786493988387091457888354775242482074381451667214284080207835516727485717809900259669604223804036053660151026662868549042464364123210061983102664023310477909428144301793974309119538914007761683337607898000804308999277302232205436316333208894287333564277147234128717430894016549504098360319935217194834574154969213730430182618608747226681555337264770790662467312993214745946995357325937077220874790927163183560860142362621036988516105569711179767423824051843280036430666421202925281632268346669600205347474972161487793893264725576066713970811830846699087924262675903520343059792109163582208747073600883876210902633384720156860824377505768350715326039254723321134145075110272980163185134998056723808758550103058887253255560863454594244826162209896783886828856728309802045176759386042297585611259780053462461087717190203459781640648275592987243602848146972400288712177821769069974531167698978750894155217655248972202721304762190096557906133158605588524148947045096254293557728909724292673377463562579735738205139179943847722041837358308111910074181820596371691500015166590215947382954232176511905301331449450843409279516032801773793222545076874491342428509630068373418084333667517422490524590969906531438288216491066438515908638255182743056673975224897588169096345074210177590337597849033352186034227760624841849318873090810376400131107293653182853442044560522502669734325934479991048624421770526358707743715870822853351720611830378239595778639772981347757557544779432044189592889973860154668712248462997835608954525950666248032956767548948320315779691695682594737166245509860940574137331053504407159139371535364258730582959817253961502093039260757235252321118789534245901478223068103720207390592607139918687590669234842129953724748964790883328587395659991537328304106572428691421851846738821007293449337426812180099714952692015662444261483739426776948415456609004271589175883531590530294432581074322423753297408278960245219123735512072337396338451530308395567838554274853230314910375087586930913963347640359608716224513293360345977779570815502589126194501277000931502493343334475412158943385373498863252108703984356789875039363737385430667605472595239722859136018638980389374067777083987775378678302097341051210569079635844094826751224938560793185052175154719452577564179427504073560383417563179599822269366525174541818039675173843046151235691455565815500703490421665610963727471545865017341567295383932701790313719169564970078993756838408930290622373232169586319719951793391697696574651373592967963409338343396600927995588579673013300489064449437820280364862006012103403115216139177664601270388380374968208036365567458423376276568793299428602452313938107419746070252365919405509295897355230067005722043309178544747385660257959886437795515382593006813879748824128255399360603037788187264419207157722795675527332356033901167009846379444412623221293408721074868065619218127691210972456005505715924110558379906117557888609008433764598855706738462252722433889721914588828195009532802355288563688908930654560765094537855243797480507022425277853141750406309572143482179990261204180768602689844548955821043764169013085388753065794530962974112118459438733926519620853640954593526888208587450305142510774455309367577828950464406093025227405787394600872122976512588706883216710707416954073019565003563796032142869778089117894089892836422569511277730448580843070519570315341576599793275648284605341145948546901738454718078185315689911458461836450535103763622113716298689936015963659230361078945190608260994362770720651013091550314676701523859052306648750648527559014027468687499638462164298549166127094365702816973327369423403370769914523424058152750073533277840922594683106144778909398616574128465000011074830624234840644933160864117250914175304529607419874404087903552688573492929944644778625630679271776727374701050453501229419550745998008654559882519244008275724724457446502576296168589213783158492555988375341948230283879236276639051315532981902654670391689442856170523799557252276099813319159182379855431568748667496344081841721859183724051306633712779880053274762216598923936317783175360347283619241826609916973411236574261210332342343988409893663641069757198677274814945450880222447203440146337999326602258311115703795133884979150420519953232080706353948874083085558370806798036715272124912498088067801046510957308096625269521770429693195241598438345490363518021705936761291482221237806393063977631722854924455798137899013304238697680862143294152677213183198213407095325888628765825836118473605587161632047505089495380803750225865208337875485377822655810617372354736401965836091650578510504984762663317784516732900657297570678178678214682870846319303244678600787991335190298757017270583001692305515791639501229439906772836853712420986707036086916491920250372947250469674156000326448256596095903977690905466915871979383193403297104989090326564938872289936103008740307324379036461311228232089012381249923410468858651616031719113245961835240050007243209583274931393129615231224879605801694840551573826930799371123180929748542612310114699464603701666607174762887934013456407101118668959376127279555207228203944774968129862385410832619510961251519294706229340263889893104543779432705223518540437291749550130700536171926745379871364187706958118147694010029315886240065385590248500519226023437927260278915452556174989624752273270264887436966487356578201842424348285195526931621115305707009215356752838234089237428914547709573695694000245674984553401753766809774484448842208543872996675779388667052151994973021831724262799158486051714886030530733038067170604254674849471594533376123999928498479791574764833877964098278071569123022968852589812499117060528501788196410302554853410109674074540816028484573534579750815243886534016203088653168443085728723429181058941229099608787835053854370567851982562752534613246977437151558824323448606010574113537428575778090341764576184827183949253353736876054237582376848260132602982638047316063506567029197148548102170847140825027875231195497404192191085253275433525302018812211436484872248722561167748538093194313356173613522198111318852183673732225932482493881748622566846506833715426054585500056029256370360244973968491882590422865677236025041087607314480928648804328123766666308908453773775337691079047337568057947676300182273884899978877738309757092028297952412581157049806717531937130913676851021611253650470201728349632898904536198970316179384101734155893534326291629582868773120767616308250179100216183978404751413935044600287349652785455160750915031272201390603283777936462548673283438626453552248916767544955462573988231478821322981702364417930146083054495535348564458381311405581412427329141531179986062596424450130160743745123253908582082580684681585783805551886885495623055803712022960152119619397817703319023058119238595467524830232200022422379565861068485098648759787400734822321790032066542568492605071761123117167848312119687116000662038616578439936653795294410018666239886597022616310476335047275609867599319295450501881760666626899797930752464060056545354964225735533961984977678155433736133344630300948541331865703074135431529686722391425211574476807065082406488189047036543132063371158630838035548721999588821765235182597844698122681427904711750136639883811648090336785899101549353960469508922218296293072927904819895239798589179595132937884340776783292724766666842926753858887813262028793879248343478325734089068175120071750200645002252778329331314550147924701887950221664588731040377357543563798149239954540148519348652908465607153602202415077641260890533366881808228258419413315427677388336864027106649379882451075646706806040054847785951316331639257931815045076766414456198344690556658578827814932106675507111053210160740269058960559440274515825399207243633770302977986316267691508179359082142580178134058670243809382604113645383730450636915436935425006604178193939141370654242499137472035068148368050896576624707084521415111401937906196394658343313994189965145645437894207841195116883570264796219649579559086422173888684421312744069314909377792859519072370425951983870977565346562479639834209317433934813402685456321659158957282550423291861894331995132760894751025114958595530630571881832292754708486648282871216604271726083446772114028815318015254397266493774451015215881707089610334313473308186345914838770044135446203168730999726287035141438954147911046486941934739033457958508570010216493008283614538045627819939913692214439922909684471823754679075132302682967181756415035776316267801450908196011895652445998753403763605587148726436729287337161748271374633511952642332765261520154267610549372889909547935428939914413311154207446337782640146665981420810973396331593106233505139063038468041668286632205505130801296096600871476514700204182640154674832753175089494983246952871399602788712760778751379780051153929774651599086351254300859426807261464075143655049671971687649204120405706905682713626015311810543304015060616643639374496229557170858498866591032979123555217763570759859542385184567629338749341210369986429163405279686556930417038186797344722731951266680822257321282792865824542700809547937968553194659190147569672624731929881958848394405616459782958416653151783331721933872879695778587277631719559724618744984127206526107816077264389348319289369095437056294804110571661146639784946407560708671353901408387081272967544364065008205634694249291152418824753463563465744222506850693433297012733888531635993326034339969856662756757863490011123454957930316030305794354295689873407989009011842010651249243002792779439071305365413413725547923139041869256807682593310238996413084664763796237421274356628891627594940226451142282413412575578799662324923838661871926315339467400004503805889459590077205987507313970144047101437566317661723513694923210894716359983999644608447854869879934124828383756171449667470407774032352641861923587128364907664693648458265452970093292964064398347139973474263016368994572085461097915569707935577850311359443883605526590924444609251344151103027539900015338203482486634693794817842145104346897456344624035870028542224018323923834499501585350622345103856909897826567930311840169924030688620813110826689365509254431533969050866745832802065282046133793199748148870027019496129626065088215276934028514611164293257993958238925548978471905107664340803765702623505254032624175188371305336212862159967594061503655784384683754683425208788427538013680147344614945184083804222749900259420752697099655172353084161680662336233796211335779904682609093550353284229866041578787777464277467123615563498170746223410949744428670666874182605922915072978387521688994935237791683131714166293325558133949005027130665498431109885050524480330634883635641910683662116956805242694617691529312876487220847677189043285304145651752822440860916280164799414758949010981497382741467520916313637063102276965804695319414569763827758236426427404712111836898334670083747341143003889275407556930868405533112604283748267735758281357186063515793002345922467876352133822302980358010581208495153750720407723226055308278933279579340875455311395401775393845196075121094873384693535798964618318798664326717068919345966917021341598346636380925704115510800838733069140981745123261309322127567973070669367348682526035213334599901821414929909647320955227606192824457206272563326555354178517568323584169476692689456188883027328756511338039545438604241765848083621280426008324346871627932900829790004260456060117866660823931462058391212635439067934786263118602478110208661696394278820999407873551623675759567942588094727092086796203487847394331242371145708424706440307524576985731174751676764167502526952486688632473799853887637258379655813278793394464113446841466202248081335279163313201401016454487888740598952062119448237229681717522926091774015383591875094628464663044715643785757906500796946385944214760349997331577274145634568823938412305540389904943102521223663151396410122336053957166617716085673707134236853373393708027296968249037941459243631159663474332280132731005732761916960132568231927168443618605807675888208748926050982933717482225878931619003679878780222846620899348321241731889943129738472432190816861082926247947858823743183579110913567732607842606813265394708846406591603596045257627527835178480474072792916583868287390727772773187335784384462772876889576341630672594368514568248558536413229769090765551452866444895905760332849527885488119108299724323121531387685301700270208589652147377008400073277800414580221690414738049587984412996682407016821419701117287767972982543843940168915709305958641521476733372730046557911613079538746332152268924021734344215184511220912153108401933751270358529700657445578942575266922181550089547605709831562405379829624580499444900556118317440811297980637435955600441460147965421769696287978617303986448853179644279790427721521776761641513472665036903596873410057151691271059912495671588611342341429428187355540191004288221557875804574360825932716529590507546701007832183313276369565542895134860379732800599884647215372550166653967744470030503687394143385550954129816450436771286804282413492981688356536109788932092656578136451918455668552811084236997012423143968314730255633132338484436227511922147766520557991895039689438067147611980786858882997666532681191870494265567862529168919475495272311439833963387505572718922843819999582722853367670091522944426500040970890224884243894673123910673494092737004720624375679861841240153429591046708296822837347267429068447918350609526047711656706326465538262403293318817620914696054960182277555888323146023554610076000790874943449350670459834593090539899273470060188860867432993585075731931537534009034280725704716186057389932119958754158046315202056318493845832062534894217610777093893765646188660554689271458099989930020688330175809070089179842246758552964677860137393207479885092917684329131112296303535122035455603548987316487678366669895366309405545736368708427949512191026242279411169660888013906814932355800593203431407223090881466245754024497513501136101128746787233752110930875669301113087813121198608398854825033417352969603175859082590615320942490371792290758324396200249110781879238493059351895143297397245571621272660674185162190840586700193649411723809476484214607342350133990060306445498825241573606808380697274324198197311441079208715335372567657389423612550319160205726670201841493276824059074955002239998094510809309217087401337143582952544336055231127388837014345537554016490029781807553649121293339468585507850986648857487056053545643166407232336528653918072009977601928639209582860867839394960129704256391075441411428830745381065333372143559474776596886139659883039177749164542842239621902189080164696528016335268942892343432801333824535211195329779505927453099966928177844961809046124036572125643690122016909322127217426040891859689337693919008436903218829934380415251507155198640246781911566612055825515576059426633415555685960703787796353697852653801645589406748769424272779475036829522786559171113306489142007991625914105807469375296855994839687109823050343373535029319929919517464881252376898786709323757302599244852211333684793494365430660865733588670616838387158614564089859085374568056253370955490827278088326471365072079704167600512374121927218447249327867914878565460276871487049375640917221895774685420858329693400041617793369102594175062884826096405796333835939186135717982624982059187631612078171163599018904652039619470515727205621458355637751695485912635978123300670892792295489032097596546423086283313161315242880659222140649929959467600589387500320404341680562772794126693798417731152375710483114823365052805469618784501379250065778400847478664254371433078454012129020939408865561461201966626462278628342820541736528700211146538153857400338982169184389789324993963616975054756497788824629553740318583097634952268108632406768754212458289133882229940655698598028609919083858930660184817612922104551226460389645325832579730639105451385624216428014778170250660889636812649360843527915038768228891696346333663387208287436033519675160701405049207201467747019824413464972316166574264506700834173559818224706243790249127752790011321080475063081633796588279332398468785372353245724207349830357886500564069150206747237604097583758520654294847928656153203832293989635179311951159795016755869742491213721477273945997974839776249759605635339120679730944015824194472991963289112712456446324701553219190309577629572734062807170320692334723420929306541521360028954271577871520187527633466106559384210581505419823143494917198490872353181153452415164600965157647023839885985243259795393062812897279730690082123618638997270450150409331768267021431928675969534373284278895371826122617908610194223005765045068180279028388713997179951680920283126549219189216306192481070748605046276076458627429686726817157701898348070321111054486672972033422978346398338906938097730228468703060124173903338120750631471863582330731026107383102880610675582931501974364416237964892663062911893561943133789289949378129452857232989692765910475803367921380674737188570671548276293720513658664799634853409079249262654871800186215452807982343608523770406687306795531431166390598514906623580257426599110137589507598547146603568065927997430038531168023602445261311637053281663602031678990962348257846026919291334957817485365286650544021673650119913539416084695019375093806180952323848110247229726881853209112294368557221828240289921682612116739840357920315370433196496472033591665224760253733952648848047600568304346726609354341090044774440765705210153982102619652185857691516356513348910308600556698289990668685078589292470329860918890023373621644510084495082277301073438779670094954752266932007646446018859080037865386522017527082160009525849024989883147340829063065223631832416695070977950887809895037186002094729534552979601968667999227904312580373655602347003908901407270678875582512400390312867003706999424084356230152465049638896953684307638077791958525320217984616738245329226496611835700200615133838969621042449744998257909737677966951142613411415499966425467434997090126834261128709297447987790979082198791677876880926734624512720982872851233013418293562157394028616241775665412963995825572434461497465636119097251322474718736254468373172546688424422458606252971593999388873364848758555234789304974759527839700640755911556782797257475021950063101314746718290951729606351689202319371864212690626780369750580288720811231415571692369124040157786460345133129067392382479736009140748026927321880477578499248993446346852468871710072222250457539787727850482901516224381496731960015736145229907982503664877158080286195319897605406467441331643331993172541803090188694144000545563373259890845875109349124267154799173011922008022463177528889679099959792360933788050057380965321045860511944553450417020602323507061988149351081347592470838876915663999526155304714390616782737128995634299192578696177157200978240759029315623047667579727148442467968100968434677816896332102042826562558325837013932682652355896386475002833016158876106779645037724900507103457808912133838035151165823249128427312925531946017042389570600811119054379504882466152383561113071888308219175723262964705952684600308178837944523950796353983474720965105010336168712212415390455460554630597197724167966225357036937580222865570882023458583592116491758398201011658349600682984410700359147199258845982889134327011376395235577504720757714283825565514217533268755028729189284595206131096237960802726744028895623898701735302090882059009651088900113460222253756982373420397648922495814156920395413577050867533500902860354221525526676562982815983285183709123415476395075568130445377804654666171812802205810397354189416383793390283468512684520917145999450270020393584977608597028238678317241607617003314993639585577792961409484725823548793708648689073040421148591584438636537512089179109593276386863609256186467858863232645738894174656987038831209369185024473480834373704473000154159671880182360236085841493795954164387016422210481825904825394063250208284422423262913256040637599727646834628431376001461115321203205400243767255264508905137870823907370429298727007518044520657569691733370360836403924569350530310714876490663061938656767243279059620359946235467725574273947000328299132197429362135855460618808162378936729759365179179689904983640930760967103371546777401064165058936444743501349898310947220380535576203166272452838876498375100170534120340534718834372766251611278593069942121109179717857938971389256106967563879833645250275538218406798194939998600529280374110685550860027421187691112789868166987894922757940562524796599483390009713561951814252736973301085880871143898189177847631037963574401023936672707217602717349076363927286116712447547161051084884323943156204882216664114784417235248752385920264373700171662804787411621872065535098694456483937956970585895242894534534902192889846217187074040650455523335621948827823116317135386346185151583387525280216979928525267316832304381240327176614419035508969580638403086928222598140105408596460197049982377076700547037883275690923101699511843429888001141736600533105739716363423045586342519647663092767697304598460219262151430799855202567574232171714896198871583891275867915088978845367795567160357489873558427813219842901964348206459049017440911295195249318130649525465757448993191591184369441550490259361726991875183251610985821354190433147567066261575184391019073377339659069689897197076090049509231072654392835777464717427140648125029777690135880460161861099176267899788517109496848654186598272798372646083422945988164569103503313135563013260521017408266494982527086400790864923595650289717846647740153020609825375615576530389599516023006450212928133408638008564616770344905721449718336946262310202897853917295058621258622887724302978512938350047930890046711294618185980507322810218827738252456883497553952192559840845127111271874810638061734515024730204672782330413454269645771650489475914122052598605517940094632674956100417005904130299414284479854998631141998519581508823565103707511630152885473438992564291229767105806841496763098339530437580683165517021948524290016985916171189947038285653185622414461647326299705701607587350258476828092729804797017676091910140405242668382757078786764690455393544913725359638512882654897063796891699638987577547197577234496273327012847187052823754745792447841203630511237104177952435625394422485843435984608500428670456807834765599659004691450380120833889666572854418433735396939209204173720816162309903782049286777873166129416097750543600881017158893806388348139726042405613555960247352123987550523608551210398467333553151215810770877772876550052805379033991142913594075591803923405634565697160617131008055154878482589660680626031657001955655629354294100304328833509355945464986126700669505987080956016197880304704280086743324588897320127615142817269674799104500153826442409529981790826108607492487830369649423636785131819465874367577848363680115755134089616167573355651636238938952642101684688940359898070675117672342089308297226895170320769885251404335393481262649584917128901283993139405198011496211919290556168510557675503609506302173423459345010081579651561279251382170061233454936501275325707157569142075389294912557636646743543579205562934229013918004782046313459972833059726856719517264120439697139797490049212291304272345805936289469870266123316336794336125270162974437486682059448847138364845968886324562986042747641793481123488033877646906002046409218805232785861514298610429285814582261548556429172104070319242912486664909592721284387784967511913152592333425748164715351212699329256051986340943099627898879834653656368749767728121453067592353052074271721112408084052133090604599354979235747872363043712988671944285588333095349074905202756254786238097644271509487862659087309259602635087436962210966633979634315581096291161329673193474878839302502254299585274068988840574267453986094674462469951005963421039254032861344738135580981848224312921262974152719052353716501614314798379675509495750677837744834967995143075451172833721894461001177004926030191524193151614424171061021672754535276607815336672866007385283098115017737825531343115935738467658381127918680069284488835315475515364708976431546208647628763531394077852390500122211008447636878487780359381075971677453208819784921078056171185170609214671334017959017674256905608127826827810341920592885589654355299326847256491612446096859681298131683131906086367258428080772416724907701366623990687957004264124737832231544265782699992111609065310489784977738773784446394660379035274412235653009018554423224201172070246853756305438343808426145219575836275111515753592964314675058689141913995123763136920925863032519552141841398112590776462993519968848808828643409443548390412582878245372003624555246612410933238315727979408642624574963550108045597877426617700969279769707550560276751572128475390624507698919076759586911951342225136840028224106361465610505530035310442769195954684457087657236897766268270973945731966520915409887787433154637010693277971379789439903747540188980254846643953708676952714861703126475152651216120942410243345291948451280203387222326983026901194096667045098986242340009027317734171180887381134917888343952960159189611861589668806424532707252282419559164545438124854973401466575973631709907556433402141384038602650804910480193525639781842861331888888597597199428554827165021888796936840863321251816983655699297220468296451113759025125461965312550549128820106877288079705672905538404306241160093877054459217245330428150510526857064636189396188838039223634130653121435637788851073603658840456282105069536848376347823127014952916352045118742745594691378751540594638540493976511679293053090899870259197005176002996333431534967841883307157030487078027540330486054751053930044082985634169729074551353861651095539349693192110941420791148814495787454091731575812775079937418113430624784840795506655660394569453970052126710322013287531254615969079422809322429347965843176000776262632150566056242640923438359232059993547897970002934630061768971048114201647715325410162216236638606970921240079218137099775789693083328668679591607400980024642181254668407895084217773238161469155774699217202869799641866024678899963746285361244310374614615525967862098523668638419395585023281458251692675188540575049749515969516115802532095672690173820990993709753450294031699713474928916528280024159566724353607438648211941456393279518149741994286591794008406781223882724947729533767302097691425373471478671654376624697198711236263281390902787780451308108192938749355092517170931120019123969507292983370107948172224580077942006370074653126470295788835498860744285831592230232377355330385963503866778877069768112984728963125284440631665794328026370691165127875596957055353518766694605286763087952210770201427204925656851631693464856978826213424939295525030706102428880423971593766042373169078976178008295151711180368308829695679391836601641868606226280450940918617665631821460239246351617185947451799586511725756057647484002606464629509843816961213588281761491699935771405849709705314137178736116150183020423081912533407574795348321431260711239670128181830396827201818170087066160290603333597643984116838191355121984045716369878709850458448483945211640649719621795551785125047702990384753829435283743980697331660938071573612634050989878373555319174599204194284560978693302532258539120191835367835955363653395123180445627767428257656674019902744560644293530775006029175557862698522549482298354023436697754552583772669129320295469016233083833879470098322921155557354539124368872557833694642688712248384293611006677180028258093890919679770253625458828965933899984910237797004914096191301929446018585710359039096034980604944571601428394144202240081453359758629982039691442934112407402517296386036832509589853883926177596250651142488751856477928245834059577757124445571767067023031592767933843901618053758072592349843768456087082742660113451128281692486315510240434976580138760705518882955904114101565989742670338573473316689841920972445524603226046625023237957371680706179928228657413972035177626722463170748919684771657169239300510275530263508955139218266276187675490961213385144927342202322308611183014083997856237354772376406606333560424419150978608571959637219356948318684729246017564156218514416278339781380795204002178600904477929137302267359744198005940265773881576366356724870097843517466905761903114802918717081466864971770321381865811128377603715091298399589253589712198252610659447751700096543529131907758611942708927749263523947153263913912306147337707683016326163195012326909403242152234731546267135138255151031963797940479095682540192065075075864208951183857781270287000086590332115550022127106509495600287363326933269644691653796320104716291686231192606265294077715135339572957473997103704274656267726047180646381312151150651072201711437499296215932273815451787067870489242325675097882366427079261850677650266083573936114713956371775973876334778253615332498869281092736227349137154269322529205152236180312956287840025687070511716312096089944546239527357372859650635822745368447949190315615630120946391049722872361106642321609935377926982096623707494963953515908837932180201327348955539954334583943627579119095201238531403685919035989289137176969360161875634062871270648680990776470120367555370928044166670920762243687699234845376943003402422909730835476170796449040336211083821039932569905556068357628371749993166948601815452448528198062722540752011121585861268817373173548236285613621691580027569228441860932182873443823138352132108323901861601649621283071866632691529046349669284923304282843132022654671416145306330890743184325892084698433420398875425118827005243861875458567015187135420331646405526918618013753243831835769774206235417615565275594182987392747800707472443591372074268403267846262689246937789177079570425676173917043838187295250910315186609491434490365939634360192884613429053758504809344438412136496579856141222886222331501196384147870136159903686722737656985140792216015062364602516099573014912739352228777344264766275504553954714009336948614707739011064920429554661645203949627426317942232159283814907016605664254364785864030161870331151888714664910884270425999422924968511684316129006535737414585714558628986030986578349192775585574130318386780448768524180190066538805736207772064202062238447416069309855432579794564371717732892201059611774925303983913652755238484601052568511719195476240831912407026636964005415199646769010630344836830393620409706240705120590405882597068697734135074798631768981555383802668002850226198011747890616829873984114399413316307062207778781791478906336507954517539167824595763812397705291423929278747447412595887886999084591228346572203287482446589877409516512873220577734355614428579891723329268329040404879981984286943958469698292215342758743947886168745276042860828445686267819273034964897524405119395771760837945042419076837635555537845941952888576053151045195401222551438528009804171010149187012082033476290533417335397268941016669344973488586212058847089546303373680650036189054347914194107073528783483423907897915340477097725531702301458486277002599523044207934677273160908296857154542403346791888444206992263906888018685956940990910973673352886007905945960411597035707127004942615795531627910506820436041962966999902792650819705454787503493629759803711614356583477857182260193483119246919375877457134566644691995455543227754822094705649051508671497248331747672434109326727637529056114412691775008467061335199366320976659979859476408101143757245620105297725772705585490654554998986969608172995386525568181063992240578087858846475455693373010176595428522505558776321557033581157019307296288502344785610530464671231684339322925771840716520436951905652854623405092927532834214075100859453246326422911068017203261900233740147637676611398009369122186884982750518422150979154885718278955890566313178120500875575985054767876416311523832447335837874311169138264822476713711939074381469298601075363389447757684215879735897040498607971193895077293806392150903036941786247717056353488107225404116931862924793653657760928891618647018704751863586206786639575862465783320127553356373179931137596657395079358046826890325183783296584944456572602988673739900500936146068713362340836028920881679824260608502129600518319200557970641828263403673528166309387068085774312277000208087943507116128771026360822227203698670596052985155999091839571865070044898974325053178642068548256800500230511205624108616111668752141890137876851559385181518698681392533356288762504190126117074377059690916950208288991941356726836031226505326990636995738907772343770121813418310902730731806851435245902747719576747091738321107166289470449354498654334869785965240992750878718224241696545329662112906075075653363624260128265782598126831013392174590585120805722348274389102569546910135049173441380818360359571596225913200832890750490263518739813966776538929044745584338065839897070753935010312064686156221565114276447198743499933490099475269592963773107659166774119586788934303850548643779324124362863528793004737536526742105723819277756702078180007111265854000855409898301286686371851512200911737052082859789240802251697205022250566505757680933205067111421226590727445943550421759017608807167856182042358646981295386411063267500838519302844392826933118701102568378906811738797001707703150514663447655854059474159693829327977242719077616618673323457990909481466231469970641361307167191967896370783148870851478415442720696947093484714496004081546128444169153868327320474068994193436543948981968553415475373991379510553844320315473359968954910394614043892678340208275443230289658047183333031403570044363708077366734987509524733027060489342537099776273594285620833020900217979092811273502231383036956491653216848820653427942701977056514072873808535659645596415468122574223977437760856029847183705990768985235173426383780083209203929373281506483022887376229287280828881116319890563663616368802767813611937342175644671579444416238026803825448749231208541849729474724004532181015719762395725886026897818417959511905804443211340570499567092779023330491070289554768243724564847589847353156432292974789946515128476233812872433307165897234193090408718180639039762611847046460156977637793761653030736007259335137950745771175993166067993430286642093304644098109344391522130872321335728953060157119679431039372347716795100608678945339422549786745196126542639726957461872874999796915140593924525654840842865542224958103889848892853895464714380873819603961711195730585953957057893190936160476818876813042881778203053921966987309038724306324568594099493651630371707931657998564128091970742667794442132450189671303823014125214596279301846545557270690129779982009189038598913943271328550583313602944577889282795839308462434994016842672166350828734333774344696721992924614340556741088504113786266699452289275824426686395250903775602479553382653831467459954374768445160859495496214731157535901120419785836943359743861835957065133940617100325081002119240774319047992123495568521900291947294330286688354309577793449293256471269752611327353522933632912535466279142989637124978722842580620299791638888700713658316216868881671895812093461300992648608552544498168879666196310030735521655310943209758225044744524964835985047315392069197127444630585330634809651338156399347180045996605677687504055625346637701641783775910778235266125978371916865514543132520076713509951546671934642236870842373864416361849471392025313236824505214806144541815208437059869547467899153667752055422630793686655888847455989995680573839676839513414539739479689005533889920644981287977626685003705125645088212649606020098960753448424219097663211284381533545323416825237780385336301886683669051266217253921618621031335724300607574170399960342854832294069343567814700786968526352085273000514469581712904520947792867337592322833465561858102138507354732280768380528256079393987700526763981559811420014850578753109367003459821099554087011004651559705890983217813292079991821949358547100453592230933266249867288858579693710967113945289228684777378444847328055868126545376126601525208910639320786865127664341273247216849540759439292488290314776133075049432510502411342952583734440178762308522411459581255994780057762867655237330825128174441222602267998323560580762157576793768309596996017905239753341638374016394211565123743988850018066060207008638430198698510090426845063607294062682138505307223524849255815365480699384126717305778844295959405265559378554490164226466252782656263952123737575411608158086280141758014668950230725269691782892331459082134970771649040304983446002496925037048205063853640050536212503065692284995857466998009048911046024043928134699508775566308930638370041290498563232571820080281764740429992378734922847078089120456579449816920280503851777228194356135151252764755084619154145759589819887250565326421997937388716967666989971334083245455121477767392378737817749476203484220624394909522564100142517613634752098469040036119206389507533491884940496604350898431807469619848832222877007949502845546231023986384214341133158351057892069386246263217747444267793819617240300556608851430070944315904582446699405551748006427305181691019794703852638253912803505528625346591981597083178483752193162104820390314978959833053540571619627187778548147649456593472046877602119370062787006854464198137525147223064351002248517385978836794922729409374622578001661196796229518353014544937932238520343799969625980538807911069126458533214202941097789990609427413061376171104402853088079061264462651385320987906999013914953126648205826770389841204649856101826314314094362649910147478343501530301488557044942759950537697326581849437040463450228284639416125471491934863805871880130795286650553637977590698333767147644507270678449272046848654946357910371801755790302961509986630664207491077786864942018424988105790518106874919673055708766944286403358093027830462650282816497607565699924537191504603701338206489598822084011222944297257211405976129931602165294964938915329320210366381666166136001698169396121531686742594635943529475590829471088547206797433821320176371605450848105781624846913696876543418391552828102349462680552295382688144013463677555485960751098905236555850380878391904615392547450103411891717596870024625076474734525817443072843067463755446773863588983958219601013698980616776377550870174727128896700452610991236400958848761641806636612881420641863930593766418880492167566140042900852705341068226080922753441095177614830447183041194064005020689246864287605060475655495299968862444354774351980493258791738090388433001119633524070615408574491802958483898572080397288969749292196300798557340808180416302122582177909916500660794323959191931766166123571271970260210234295774775741472346748187019424885264804931177389173589384286437911239293556384044569980214346787276835794803784172986027710327715432326446181185544422707790738328591979389058732852668329172898860049034955051666467240235241468938630124608364341279441517126460947097894459424292482949203315606162851877958067918075628633108021812877137100709049966190461923391931047697744147711479003653750234520038943296879794806171149106325021795570947179762328535748522481446379418148410700822486738866917611146530903174242288516007790866711687286901553380832398431096600065061978866417424888854158838831350356422223272495902465122335190855091590112222838968838689526438709787682724226842344192370087199077767497932269657870247409842688707972824653429629694857146849477896795637840110657183560909084668631658146348538471975654235025780204938981994552286053703175384650115915307881448294674674580528714397312541209375272668169961785102623417844125644609900917979010007009798997928769462050728559579844789513218008169850313454017691075176235681248564058679726787697252802714047155570180093261591548393497947450251728601590387310870082475761473136899699871814450877494092280253902131130165197766788996492557378299449084950317698131374338942652584238678466289023414986078817196705633049767741396682776872520312707903693880692718493138253854768905677931510464444614211702612877357273769348686321427846240663546445976074774249082801998381728147559586445598907892743350844350841391452465722208266698172049640091814415443965657100970687177078689475445578133205983534171321336774257421025787023628760960554127176269285503127159662258647656164916432232214055424320600526497019237424367748189436497394788120130035402908829520638104853587181621442814323473035934015340723421783313091731358240243025431364913573941842021590693675230973218903658066825658515807114306422923691908954554968796239159367515690599231712874240664860752805971101573635891890844494359489963506913391577199955374262415152274945237521327745439327455882667398208894283764440224812837038709101011126901938713487938620176814528047702068036751030647673314144801520456421837878542458458446965592507563200273342034763767912455197945531080665699785691638190745738066125005340322202711899570512479454944807326247654916820492407575550113312880788838557787056610190493617582823673019068388756931855216521230395523745180153213880081946936989949724084177504460372730505979949723977761009478763435893994285085850019622453481070543137030293873496713413123355271831310075543998675585895478921063961682281214311240070656674542465080909397582142748327857379104185054640335929094698889440099872305790605705084821635987890980910237424924387260467749578796715176352395596605899498858563244603643584261960113764941388584455144576294123493564738410859844312987834711086621940298492792563818552806295964744035146022526237517348498905219106323793277239244260932522904396594561210832875841721269307273503648491421045635402643534796051295380242328785755396248321403075986615204543499296785441561527665701138143957500013097199916899772671420663534808473584077672245552928314995398073339461973479149290109304157761644812615082693353336997825530719666201175279156067012830040078647446264808181936182856233979833917076293094627524873505572244025201750849865667473874046194455188496680878435899799327325006160838957815471776633654722954221733004166235223346840560670774552865814354513561881734443799081216291813104809147202417749049196236966825348639075566745440217907967129520077229018499909667623870360810613811667455414067861282753347102648255661087413656897881304003702681907516922469850390644558756907659108579235201261423801580234606436585271512406468685503876467538748336723701672954183597222626287678537026689946648616900492892715185759926792610926050350732411097521088629559155082649162383516343382544687421129347729121989280721211841735585233059551678465903994675366579345620440630838845296596386141054035709506316423935905899094133609536659685831341370409070800031059025450950816954663833155727285714881052453390591884538248867833773675365351088947812115108750527443922447229466883721268636885992466384073715014284362262666799999018092014111400302965942987756508763347048514214821383632094422925782660613976052300808825109131380155437657459225489876607445452322290305832066757919871815862290571359569285057340358360979536237016461506978715854700701342861660528405528927838058557087304310005002347700114191796383794956854674362844975968570980174469179568961961737667141702869615804941704638276927461552978112935017549538271721738213929933366083577960307646658945795240716657553956725839381203184834327819579475692456428063091905171532977204134841388426069123280864851100393446402422973551916663657306318575415941714614155249565384927408825713735534153926533866659830748914913082839197450371377521579777573887275750761761667852787068885409853182564295915872807009014239214650398632789221510919762938190970574392817502475847285933468392753699507344784409492676035977787344972362598053330337280278087817583800511236553042152668522017756992726142669723075502731409588037083861732232437325151849904559962919369749800116606381445812668279938938143881744362330656795802173518636282558140553508212139285873578483491757286373359158865048668057630144408058603132911439958848448154471396860418758747424732085943139550313677241755289470884480586692638909833867889332321739936301910130888626736805087523221583035278961469918321055419770590971615084690108205774406891425228424949307629210962589577443764642652282188369824646941532323524721747409714027545505133034335259348312809437333973920928648279537781134287407235203584046700482722035351339595841681586088837874348535781302867955168721154110418191953765371834589105199669964243370248558971698317072090981988886175830001252589032201711531951067470127034762808404330031452573297478325717564681476170213414030514222932646246533035713635677380403249931002702791867283814237612091262438001956313668558923524629861859977543297462493319575612142067290924726049985758113243586588603152045326595493248598179119663005504218672949078201352376224192686590230203370896116770484355716166119506636792215325017454171074338820159491126898846165598285439839078904784074777435278359176364496471211081723345927117929693670958412595850582389463484150388673297961465209151228059242438289474572174491770122199440841903489981352823876215665407481374062957460861868709508782642690556428776391096605041157367105756645336884480697094718215002746394288532312427684125606041700718083825281543566501813151574579823316810067518672172008468824541982735714548721947909651270732728488362418476771208656377723252538983117743154309644515984470401615885022405968796312694815915039905264521210104944219831700520260342191955560298711651843664908367551971747597453748113550631275812614244572597857892061026837972379563115321884507755433484612291645180137206747745697119092952414887739674999435665237912385368239951284812922144238195278089760410456076409293018707338360400626568997579621320025337824313836477755330709658131336659004295673695584955611717929094626065663504988369841992191783855480042838804872447120603243615579646503077813108356704486507150361059920659827118567566057897681753401339095199890975985040985360501690974359736277565179939423983278461107954792007040887218149697245459765277757254505385359817183617431647748910640316569481854183140058396337342961748239081822470356048932796684359253356628339861599377805265685874256578070654855951816449232971557462887443711011666621013599161411971897148050695945863148046304465853206931202852339699519516753124496125412601886350948638850244052969861059937132448337727650111061212761102854571017449633691968006509097333807529612668049762676660284002452432046906694127286877274671473783873815992000016546262318442046339965853845506778787562107521926953741011087200084927049395665452695753371535048096758133523923570626987499610825443206278713981833392205657335723200358586467668804187016815008624828129907615764455975480556652532814126898413742344281689326910005922309208234183739398930350328165716172608719461764096083858560115138792352852525494414653214844473293036323811446262080906872239929201868054345591731080580792926999114619964965117300481667285826583464422030241537261403378894892581772222866468611857175715159502119663004720683056521080732954233115077266426970155476226325853739483887103935475164860302146424861367297741359233221989420490557435549874584574591206718492685214240426856217057287578493376026398208046083093219422680376893846486565241318868924714947712114521745562415538331892609548580559010578599250880853153248520078219779400212767537485527921144651842577071372931258534055629975660679130395581610950498935002833799280927569659173225138842226467176857673935129204849270027341938353768948773076932038660723234297024710424814707567137006418922890424522049763709765505892629269455633495977601060748818154537279020497607117879081987668251366835430649636716347875327356897129129517551767585673890852811904012085038785487847751429456165550759423513812091791725826464675971450248936381456001300768777217229218823803049514961916896102424143374236369695993156584477749731885479120541314943549485088217667028727784004075838087527551121035759508509894159118590622285828318442554953722196355144656238305496779939888630749437761122258336781050323690786232128388276903997741442535759417949344454308560072662327457751598275726998867649152506214856326224599085542081349808596837660721181550637878206581116819701238673180009912583173527852333054597391948625810059808445481180252143977812344565318228508084234578969197232791531051322064987226165417933671489237030705973022198888224257251557704704910580195476598015733140338539668342894913009765932843309691600950833848878298357425058674950556210741708152495532162654048185519013961151138506067606723745516321850579653407333413509549481549552392043028375995634673791326347181320544142317365851259603139988583406338535299356293133565890017687439779907066815546236317755710046228817326770817947327956450605399301857744468349255990002882578451846810755826848495086949501687524895888804293139138506574772336372259237124252662075027604132481874370246030887082688170332213114211219123630996790398872560281830204555184763923013293164514409851635530938536042541533813687490138895295790788915974341475877460332970414915109993728756167041112164593416049068733583801681229221536485451792334349380026189511289989983782622451649600893629129688079517059767866045285373374674910342866510864835499683197490802598709154732240451597510201349801115462144239487296484412408286953240444756018415602902885890600773561754133641933021443668104706356825076614092713581608322843501965712869145225362443882611510916657366043084313239855332980098014783765591181309838119747489010077831255281733127211851258001660602983430540769904247896480191213573021122266637187243963737645813751848343543457654142695531539302224258055303552007509608519823939896027730910909692802752166027105826454609592236082145003485829569481611241300391675848194808804949197282457580630807082712115741556329095658278373790905840980794917630272057218864802714634770333793557842659613776595312066387909354522902398272095654492708059972201517262657676610453960470556026734128408849919925229803925094206473547713518944716567993086417970843800754124820444834212520963068065289857931842071228694781666134441185312416627550961961507923970423782935432937438771669902114439094912622219097925000705557315392735886603244860168639126909690931927036880410322119967279522637250163789359517846274966888717008219669879896566147639795510188931400731934190211628611800326053943460717734917229615074210729069224310790076685342318199403859721123843747534172038981153773696860100058994192439159790246566109165780492778720142115964999939964110622929102445130309255773631686283903984388293726728996713470240304446134080880466391561159972320825369867112435094406179127877932059380642491761225026827549834523290881778942539684550194885854544303868560582515311993769629762642381928535012471619378726656486488267631191810798710688897333105193052580183424803204894344295552844842790516922820482688169101332206549997560986136592633797102145887520967784885073734462760851042370474419502636259563243689028124475594951167437213959244171813446161821098171808298350011105334591772072829726732819650856986682583332196060159747113640774638496805957549930358020607045099876627526695820513140951838311816646306602346680411051759052999981934844489359277592323250995817895123997948660455872003996804691231288637228972207470971596888901545323013626508623623703926379807279572277807425001901185835806706190782943549383306719958870701810338108527640899206370383303037433418311346380421051223295866159698275777655330698280404620884884374626942250572334647822767683323397873580153876301645126199431734614891888762987084307433835739395973679967431440003013908940078293166450578538802529039719629609349372772602193195810309226324562591363034596362628014898290418296108293249904155266910723112030049073990438846173039541376918769196573502913405050568454248334507376231903247203454459423167182712950642208758336402857070765278564717111351717426715756849962730628632744443222616349620369620941888907993210390398807985844749005233734517425009433944832389803686774101287235148187908250817219225916242011001398391208469717488985347154669877146601753935213293864520569240939049434901859310415478276324790931635063776234736014173391123613456543150904741449423406492370932353909478597073057521383713891168056624407209939728275755762536222969224756139815350922786896904403995523107550712624855062006873627280065733240246437220842103208171401786969883425009675298559093332384370696486049591612462035884521467734624204224131442085801274982745258734587505617878123397974418879435502456830171537791814832946556437533105002147343492762845202029977044704820267715795399245300914577693605562027903436693154107863319614907109645986748121120070981051557917281878576673588448209225780062960596326338179381814035472644081182814931723129798476858718766781421734653379196208991096972770495979175760153797520421827287049745575875681710404499417201382425037791592551719741560600037264783595896233767111622376538790545404892761500371017718717355063729050986293623540080680638376691650679899744808744973519801501402687409476378832663501629165639431463251065608722988986627012583354448884331169614418069314449426450197991523503634578993170099405903162803541130137259967799731487511097750347874880163896818665224162429928484301060704721980369827305819011936905645515558562334434659432902471187675577197583515514937443262317143175763269447779641999807878423727386404651205139760144331548861871750248996821778996375164147280690688431660188643247575369081968049837038381640902581014074367533337303019663092292668195028821617020976472730917743143241274847746171294132111286416254979365003189448242393935263998264521695593242204828770198338168068207447100954001879479450810348030306846504590654658212742269972523217965559481732472187906104331685791819840118327172061804233119831187495936050551931154511872299776978698760722076724530319614025429372167818159172619294848423243593202573883162845182704948591773136286209367790298486577232994790951683817499336818974256570751356034445276140945064670127020135337803919305071302314618148507176963931243810599165468623816477995418660399045332931997646626252851356789641598157801201534588494168426569968548940156127682897044748404095153236929553722093630460093187523803283083566715319354230130126215606864408603272731654725098481640179074823148904104487375710297738687429863462713176245960685861306539788075125184026472861838748382522512420809297045235951536677410615018525217646654061876482891702164622306949940479737611091362929991366962163566462097748130043079285014642508043258781401545415097812151095465742765787202214408753217003019454441874994598282929981933320015580499140397147034535992134681900210562078434033584096662663508540685056654272407746275363717295248377835064253136654554499366142884941767013848649763312544552818852018936083885092402378528359781569666690509280953568257744488643318750318324741742997093823316690648330829600412744221546212765376642767961728696799536720655152634119294123799812597539330344716787297592412672140041595157570473384916856646867631182697593208767502638169124406186831642942588930306556735097459003408035306972818718105954923793740787677594734096017219189181182593363874047048727658637857487666443037189597145995895673857235203872120315846825758821263906787659058338065657047520670045443485301094341196437358097866049491427914299337504818630481015536984945963912377350397008669099268838083204683691580483380164032157146976400528886100981006964567231243568457313051421632387335661006583951960211095297714090835278152593741674162456635230513021036081950861383333569472993566317655875767752471138046848085977311750624398515341216881666561603467724918015025838645342932971926619052939515664577449591070157693272591934251592373788984549900994291892050136540551230420951839218157566007214968511892825360475043810624313874149749293865565595902112571882645026097260966879472125416221518675137986586254951743662909778057013626296147484118456772270267853077007525560894491724602342461374235155954928988574868750457632261027754067192001026710344767370526269833331927150275357777857774864709511450695046976579414338536677313330575765980195708191305785563118686578789339476391627043156397132856934024182642578019609723557486975019462761223580364780960187782956806190688006681412008007732777459081389590331511369350072729373759082082794915821923377357591524950807170212703075175948079470045764625086158172792501609388808129835596587615736559191716220353437865101805686719577790466059964682381065011402042642998461123275131057600049123502018373004722536887736145004617822151746201119448378066567092463060482240393816999012319707501533966987416402557102154029419437610836062976912185746409483599026413211002935225138282890843395067124319688562526135010581781498711842273675112305449402459333414113879751885449431988642936730524517308446514282793741302821250958320312203765822298005535299965143213703603574225885656008905010663836584005791901993021941302097108294695109048599740737315007174310076582326154554318903429277062144154635066635967597662838600280296622347694984985337184921083799624311076702288588110722699576573683137865239435205861905199016072380548053362519871861864995489801939844624055415298888021627780290895903044597646946010897033721026516963597107597456771679557313712904730320271445409977161368438025913005864168681830046576993469694798419217849652807580587546091882246147318697683484544724145130155375419928792493606399419294944157682855681465849249796062785886017336970307159002154250366156336457769155940122086511228989878221653033348139328943416743137520462582772472990288374247296015514002185053069210528578880488092650054397848608124092536532120716649834959441730901750433169620995762926778301204865732261809282967163185669007135168861370812967541454033622502044820911371143160638844002007141247873204562733930219285204370075850221276090326749306196604856335429904857899691217825691784413323912528577225732425499077102849450107998468534451897925171743890589639105086249560121610088138457126303870602897862573705676584237567771191936173765004340955588241827280039376088748936794167895080012640372816713544466797155868979158840813964817762819446519434711270975769775636936288342135784239733265276095860903559530186185272682283394529990045628686878444798856268786319330214278620233955298333032444715364136361571091482105732817397739088639305409348370119234890916775963170057666109080808414423303503089928957477955260661081940824149288326239851964312947744766979813626456425231686538132035808028218516152329252289700276437147698069814608760057250569075467537729934140281723155715872587620561530818304838111814662403872703627035034709645640901095639391803708542117569649401278729379754377294446849721748032364628519700082861354659287315816159293340327899815522550200210123585833640883363510632312846121048805376791218525160496389291349622972400321343350504176067861425111362855061363135382024314587122130180495312980587026241254775131679237898901116901987590976968325781402017424393308881113606179549249643056636002640240571110538540535339507804337707879446271061453006160264498903595735596463896598473213809562454663918817978797979644369827156789038387609492346541795404006980996363348555341807408203873050160180782870665938144592844334457206149520201343854024000776884918739201188960585617219178585070824801669921510855152405052478762465114738069371752337244688092307050930774741920945768565752255137541417044753357469951884157993007716431939684127338445376122312978955359913255774830678624863926019228210573775099208000027817513967767170878824464893499711778311615698216658891918449209970658692286996359673268109980909339750071884744705327028776487188536916794935408684929781004687192954423516791151322146607188992919987755837308796145694658296976542083783411675510535039842631321632243778814606748877864013815981261398103382254867223512603806798299507423627589501339745804169371236706100375670201205819778198763247663350410509366129558318182756365199127990004982982034974236721906604599104043632803423506695282527043207457287677063294863050246653186167809008301779613694633014256523346926439506002046443337709748773365734787270951287904170912584735417627005534169364493231229849282255472744190600251499402671629967820806750433559706385922977526299852323178581838493042144802594273987023648035664219029210549826517362576587982977238071996040019357153798733679256552163510581099347078749244468964560633025661373987731565464096464724834080002232206342027415217773817001273319301686174622574455198529461809561035513135383552404531053210916446649896405173930250308209073727734798070354245435078276160405672819725074550391955649568674246951158901798333480238457254444376573053619913302811231735520076904381976395603163160958062088124995849228659138917931716882070642651318274648156831988834070147525951371489824486536111945932715926341171387131168294323553890070932141423007385040052593239450085685995852016391347136254509397219052508154118390726209955974071483662670177503827389257132098371331709677213935461934842029781784457596446872839861779493578688746706330358238317339236426468022625282266206497512007080088754242716321493255643866877726421228530636578248049948315304859593190385059824831789919383898023639744131285338400678221674645448658870071578595803122897701283594893898758407466296949801494768292795784455094875011054121702342709502920778293154465434770818368768922317281119236894145701460952171380405286140012585903805035682072421555366894018960886028499893985535789908188221125084174250240749685194644711261163595787081291908406372642461184478415454207472095425612572637203126581936210800039837019483120566503938360835400612498400531156028112258604272660533611893371925450487278867717140822741388074923186267163419988022737165601698583700584406986027753605940301588535758588582248885300593993225346516170281266659048954367422113473978064104643445161386475885425176084528355423105372283050457675265570903927120626591738573538160958747544038452565897514948650284527095521790586877041997605042790855746086893547428751672834748856753892601893829475708226232265324817378054192772609508675374018009978754781332398619468944009915558201374945675272385710103105405387127872888000814092260034433396954237644795512414254765023867932613535928104877264090145696220069224629635996536834634482717927911952851224976547662278248789013248301097661101134504120970008890704977643603014733976135068707969813908231797590976731162592157772321224376351589098817138360063709262774370167163165361930365021352535779855699030380513464827124739370032478809968357873821140739404572385961358701693134387075524007254343147232967409857825560514441666553186681401672657234141890347889544897110404601336081090007291031220590843882264617346022195710567463628822120235729177794888545263968634843553911777227936013112465862151788294223609542484814135481455354464947427135658989689698317127020880344961321625730756096944772764000625470288506734679582545242999919464396620107246132713697484309931795743101532160242686821703773312352032812584022390413775254559439373119502911102626215345910329303655517302842506167808211679711016292375199985674890541224922862824313185750319197208431882129133772749075478839721081164158884487955677092298561607787595833374515611575546929323465961690858089536370455636943271429682024870528083996129361897479884872602944857181775456244189590624328879444598442818040124484532153511534287105716673917404464351929323973588603879614695863173262429219715019761541343042882848104336210321988382286566954346488531168782113876176609667498645173712268341714005449333189865819374923943887166049331154818902434037563904649056690427444498600404610954651673397239565656328191081841360422131524292325811317671614088390263237888247056687434317372267077844507256103994070094025622963633588270497014768708359060154980876609292064587304331231635940172098472180268456503763977477833442235351117121645717415591695686353529876714614774160911801209527355597979226664368481827549248512726648824701443272271685506665344929248319123360757624958700378637193098584530667568479767278210384081978253562529939372151711923278088590513527173232695722700826847431445345313226528659720546586902219077388225362160716341285946812061558332969217827426807923562123522397281462999604118213427983379320324360020790865361295315165846849143575160807886464340653218056660864008675735694340253109038553981577532773106000252035521443357756565255738381762573499877187019514552640416244444166221911189968785153174852085011914090155805111131912187408324837790601743479548076062914230141460898940387572740637452544469656446087047289169715015488668835001888531225638612926578221484179921739693325854037023761285778540982354582072453278286820201879895283643114730808082587081784432332933714815998362431503674777024995998314671954594487113968209799453395932082255453312037081408645022202983672465284484829390953140867007680589020053308350052584744221875371482215572769537647496184864301325803191792092900856523681875503625087351098835991941534509143238295066275070519751676682616360892513380463099519388628354092389167790444313134182881748147376735334088794682158524242618890363035386367035586826222882705329256250475119477444463893319754448745089896795823898346904004906742413767732958900640994904582797194754836805271907152586420181123332878481847196211964469740673272224626453661141230405634293921052863471208848538772713075638310055371423812944678772811624707283383075836700381319171721592065600641059490511411750530066500916819853852238808565691904879151344908772432146244633070747326625717433572802311720939564969895032310287056251463499594626198313575563268298593632071779738109043477531463963330896863163028192785552071117957221483202567552155575929048998602838958833598735088081708993499534006718592960688249037142094911376119142808656884780642090459363884250491362849591883567040440031083259094851291385425131413415004591160329693556013068521998734932041938369063083600286924566333559669365881918147174501321600241925192504571672595884564299090665811618011998993526863922467989193223830894676256710970154846398704623609495865349632981885157123571000397882860055451721127752137117310327856910045418235801443188665856820585535878220043982138300127441819312632624514560985541348569435290815237974071903800779418683713220836344710849701790422242448429752059675965054747417585096683807119750557522558739750704708862407174237087093802888556533940524155859254723040594306914712575790922461016913413082281947506337643658215583496800152075619912542597322407294084428783683054244759719772401197865767378681638790710432564027428060340145864118472267097888580907606298460210640030381660879916437635186814904943097863877289881842232104147049203977749032515024227246344675153920866853507161643427656567749380530012206953958775330220820414746483055825890597961372595133785229914810218857825401881025779520475387149517598649968068641625389918713442226428504926240929657663864675988145713933816972306947862442447791267439832736566929122783677622449251734153205336865188720677612268050819471505262154413516356949033987195384346275068333085015851099645310372780767031781157196124505280317505951138436429459853490089308536499409049611210579985860439119055687581137297811965314382161908103282632526610494856202609681857865343512795397371040000055266147406084281464095614427817327417965188039634235993200872252643632273854337027116879694071616309200150603606121805608990450942632603034792547271056938510814078095879676040900059101450668768528242570638189368685881421783774305853876487935893485273266647192530482524655960288486195921322834463280979886953005853457573587117667039893055124253060339949735144684838168311295796901596695958229770979689191530362302971906306870655371761747267475010922995899518651718573130734029937603874695664074422529811644363209466956188274013869605899304299464705754228172118405952847539735201019558290199395807066387716469026630034552475741584172460657696497272440723826007722254936576487971926255394204128376982476220274987587152327765403285154652189087281686892707775022025494087691992083855482442275855626567201978687091475560344591318948557072958393378586013303202624383749656617752507027039365458151824372804842857018800604382564453824614921582293495393104876830177816332791256205897501077005583657960112269244424440195334613918595594763949789320171713246799393311412151972942971491110567337882725190229989198254430827370157714119560702138535768729882223234149635654656500062651050890583299423332573876208318713986038381521943831669890084287151166701540356591992165784509402635925348793677871478046285642433605729369306785136242249679236253770166129611698976358407203785299199559284670049374039731092378826964106907338678830063647286406573184276729942343389726977491370841531603014284519135697106930005839766608650880812148487993426789298488287486438169738395426092378363251752055715620662369974362609150401007643877814709071509640049716187838278203868240354990085669774622487090250969096322700270424063112020548323120128083433724070386126735571972018380900528796234886638434616523175014714024508816332358842151309448353839290310749762017640422033276082834993331683185327827364471476232981882046548171924170019209530179768361862739308316261599025994240473701101738220865284569470412419276250695495099067244663480206632151747826138096637655802026606584898953174722466449681662685489948237812250973597318127194952358528988849078325763194751991182419680659082581181391235711037852856507806335911946189563444999285822914393287281834006154087299897224301926236672039770249736391247660346930517903925364880771066906143458949543987820971228319229521564152973576305915643755766134311616881641369712350251848175812028329576270511153793480416077135030690646188337270139299653159834060675256746175619931520130265464968090574979693521602221269857509349158376283855477475736196116418431176613004015328438245338349284216898237989963410137340979189476939764169478453097695116390935130578552909377769720405729517356840992442375366573286376809766014910177001374551991111049955327368130988072761625073760582837840419104192203292778837373240395115383645930443715006160054972050590904485633743543936304319037491653166598045451603403757178826925003324569951372121994353451776865970761427426135272370542642245505079276894002299767864114310170989262560933202486488522245467876339094846263617296954272461049471806815401722201126969513907213702829849226369150569277694732561995660957032734897506237452510349720374203492312874800404502337306575485306443744943187161422063694783063780561417687383747817066954390094288111684354297113835891628145732633389923853476740816538257726226527337666911055708706115393390066735233162527399965639363287626716418421808186146127697160931500378418324094510782984592269450590062789658499127359991034190558627575809144104360902648096616753446597053336091111766158028389532870702128817254034560552490729615679517228979998403877680000405406437894236086267642715970578915017706818389747012327676068561458504026627480192979319537164495173192380596125860477739933232572309352686314348457025587645374555659932988480728496720643254683005855767700951732673775324306125369440835880005048861296183943459333415505521105191051784704059421020544514607146143391723112703912453460122994449996449078639536307316702878343086865408595446273949257549896523883157474018528291801625060691352323112157409207201199764795291534470062564857006804544653817582644918729580485125121501524912441877522023356897491714894429551369672254548881643473762188397880172478320057819759056962185818144947016053738166191936635807003214467370420003621579856477266616252340133916986749607875298347929144674083966494331201130332929631439969860389948272982031432166978305462134095298281368170740347017937869751335190099477698355209947292306101037526460196660708545844632462093955259357409183696632326313759491241220022745822948593839407753678468114822103925197910407389810219638617425724273775133726141060358793023711548895109382799983210519346914189396044858249382767734210030428408070016263328491616454279298974793702189182708365546716727430755105763518450443172124659432025060040269074111814894795733871093225806708934139150116107832711532593340058198731290068517897678585840918331301730544187956056187805578248869750272025412481262267034459764878083909482976584814338110054332961481417879128721574007570584942282317186076322169496241036859472383014485353539038649755417839868559405641156640855542390381202815472795176830204101871317755523922805115398216811137561798190106889070354614734914510066026945191913777936928804157141255295221171404835153722345957187802139381110925999513813826401735747257852445177129034619876296932849019316356558015965195542778069865136756653867745482839045793956762499698901696753613346832196885343084863535803105233019412171375490929360331061378634755627769246390819884062840811189811142256987926064438523050213282014503342495947214748672621534496690508167354060230579603573089109237769439457192357826930566682516122347674388403016186872349690411230175802029187691395609952471108160603851321142743429055163572927312793507877430408826124989760069101272460278562543159433848186422793325703007180159908118728294655524066948597972060629713232919901600214298743392048486005360085950936196911345315205523021886334149804222493715578392902857644952822994962472943443567267190550425233445640263769829711620678966490666710077453315786320821170479822980750387858781675404024345196248049249562027123983945001190382989515850990799275113998752654826432847764993717591563359409233359742419926239346680756357749486786572510723384205330704480417515807485150238656798420453126083382180886740669363312562620100857075722469960333116551474380314592558083679454212563906311078516176182246645646995125258693875551497301867952685501120265770358386879112010479337220812833855504107389770209542700348848008475632598001410669451933528623118775902613623806330398889672696513665465960827756766422609724944050532629882238819881524358319189025370711617080865300736611433596596686978290242645800671442171147860702829812420411485037030120193319877237333125249158060114332350163105536900968231889628528355524442261652104500631357365898623721782684115940176027354550864913178443806842385888281759482532734298711591174474172336683560080187468796566791914495698352939387946338909402323722458513845814223996271612408518615350222894706810716225771185318465027471128761918843810297224146585997301125253728934898001008492851329740388337394814663668106374835285713277972970750742854982868642305580012582585854840322833936725173900086582538323316674000198035800808881637755957017359393024568490397860886382366755491613015756361156646429679595590363196565936355773701524759903256022930643453172180174132087329240828333420624080105999608538608936290290732082179560966667694403283932065445291110553397079717368276431996816305346256144331882651611373716242899661317678069710472596519599168531418293324443498392242300261898006206530231811990607573052817867683663436985096453177567288698599320813888400347111132461504547702543485701374361002872678954754505375463556022972733589334590615219156651931108295136972059745609664317720764035478102847595371841478423450007628670303633580300700286316588282308948280292364389489490182354090968514516877361317407016848447563836701349112182794387553206230549444158451199845802452819262547673745775477514205360895517820553439086132216720247419565815869782840778127134735564798385585235423333119242547901020101482339965815465138641742734469025406005847296876384277504430838708432896716617502423353760909515742152245219563531986953460620520406405945875723528295192194149523062131740452848246309457791804135282887754141735048161218182568753792096726972275056812454499725146572344727948209084009253228205518360917287496266235750098485484821192835085975229255821191073940657681695075550574982386327982559733894279473772543758549641344969607946028301464922132307329744792175858764559820749049209437725225115344602719097467037262940173323141069046196002062858356282519214485037197559010611468617477438489673856625714966723154601547234608777312426255217748251407474889503397597065163187612223565205160933336647858770981875810186161339955905723596249462897580952958156617847709148218235992907870596028134910186566859469108652190461802970195091208077261245830774654185860676833599067233186285648724818988629189306121609663934664518584827956215306312121527969377704724454182992618901759010909849934054351633774883868712829626595270251157557442521138318676157826265385551844774766573419029821086731959475698508779770069385935993678450946492294156383221520628359604906281338748901490028238879345754076823339681975581356885858091431203900602950220486374230177838405973007624143120650088068608825023358042999814600573016944960472115163348590024990846319259298868003103403934803758677028519114951089003254515535146289654257197654910204838934675377651531223126098026096438439700802356017274563558536077389686466483030305096803159745915271439202584783785703490587994488663435286241613563994977986243732202916289947169375122655626548383043847078623755914222253913841941869767135390078655987122677453415138758365408954933776502398681384584225888891110653607486227759090500168555708982061403966214200652627941511229541128055939166192943779948419399121519906988223290128975918659491514643738741448096316028600634572016668065712573407210690041200715669829003858234136713983709875210987513171921846889024920090467969128277981659249203124867480043622592970073713309747918525135940457668053272992383278469670517921431119317788826435171021961369730660270104584168597037721214607719613817008078868538185223646642916725977107458555767049228122463229949071621512725621361060489554988736659735068037364915886301535432517052015002386104814990498190624223528554363945705563533348894277301111055862285512767446013964273202515057206603946887392295566128042613316944885980369882086585367755470343409709732021788835276374925753406010309763063478429538753420922391241525895198561740501500261484376982363134511503334915329351988433561650812929821638399255853486755250486969614751372255570451821591244716840120449229168189279738082307813042567554324989389288890966931102770529909613691623633557079641664263653169434739730717660834062019751974870117063500973207130836335331040853338947458773989952627337965181033825291019146649627431814750428638338868167477365836053442696955561617854702453759405564025696623879984589416440686066765190926611474579860930745164148075993434252820395619324984849314035127071878650464531185011444010528129906543913653232495783920479758123282427458078735270335896752753935921182232619558460281275071063409594204228432840079559647409828486813538974325285274987516941077968893080478480307131548714487159625430932008651287142181159839394775711959831721987525606964093397029365501422430231599683054953979938611536627045253832320834474753415446071780273630490929947570486180971722931356696655166709940857790132719663391388874594523163218358330861929263270457323750328979867171194652722912424794605013810979622008967242075663431508247943528789244018451545561144533364971093962476362086825995257161971728690612620583335549790532185369060156645283778507734836211800418684083658715423750806855537386475638176152115112386689080287231998521025865481911379392649145821475052077192913170162806351217041494269522779334163120196435767896740453306844997286108521438929160321452473087344455946541316370185904890765725734642655445970362214875512820527140211786214668786493523576514202217314697565598415454437720525896973654771015675227382970763584518937225637248301665739439368652866871034885833772310489951693183580379523658037859847326774095231718480691586487782335003421596755670179246447881394473273374073942613809319455464529073303342944803049076684807776365576232717021791270886538219106674462381399885811787844880502110952322618229301113679478523168816075118643455936827863904515294616634106344974998405438405377981370737140595806271890321329141139021056798563907522711359562076762380167388198621371535227800548951497159776436455360430130966367948763617449492125976916111091793266712131850017941121625089294096413703113310717996776129098537169323963479088839483624059843007255051752564819959818274781814558762629646331334738045113260930927384032131909395283329709494075369777048006279270695833148612462314443802716503829114397407718534478160828741549711947445837954276135122814687476850840279014262378831751492754573083933329282175762177623763964402913614510572433024574781032383927113171258859854187105321933901292502415341667505885629138891724320043274811846330591297022418983346242515306927203721495155872989936870152490625162773765585786527230259075476413471936455995888412325688120872227318881047996651146971440466012394905070227712811115668330628073579474160208424243781034099605921152963751296500073542286839627918906109756452212657877914295149801183821285991437691282459342643126805905479876303552037571026059433182546433280968217313426687554238296464162979311571643705478470076388660953426528082658288463487169676529953362767968967550954176498684882232814757350130899536065169678885971882847363504776648799252566991439759978268180678378576737441746689702947948111543830321272416892893543921179456468529654806764485884616613930846043651818326981973951828432363479637591876847550191952577938030962294370828437112464121539845037015135829969961422360017342590734699926150797623717934154436651097535036797207440492571653173942823545901298002333032423049781916067387454954170163983534318451183636283655955252094885377068772308312902537281428772909221830330126419011148009897166005129802189899429294641615632039504268353153925963800305384132011069100777683649334270344735990612474093963020950889892664893546279552449638008548569905382313221399777247589200675307278235914953187962565761452376941233952525467145568856551362458047546040071114355141788562706492556729804270525349073724881830871518327691162919408579041702589775893866969881558524281531548638897627328175952296500581427094483168421207463393720603782443495109745032030298873422074443973292967436182010800783103381256072639642838786533107537385315375650721716891963225775511919728858734403141988670874007014726163711585556161098274144741289706853777572150020482024753706342256265397524046426269291611853151824326009743125180384865361798673265085558789031541432446822794830548697123845177881727865931395887547405371984052001014183716042691535193703130666274409982195044783655346061017240369672634374794887532863958441878820053080443666047500506891052846531813383374725958799607293604163608946147484580654034951593849323503638255762943675991751768754640325034531680696194106937816027821408097039194336776028705991278767462188934384661694631323908616341400480656647672551647707630187866666589558831152154778365608541520772671391000592365509543455398431022604750304360371923617322030979398914066136316165416020046076791925610917460923706699878605781773011194319076404960606614596462537179032704392933325565159206025253823655726339135411283845392648023639279725086025121178312262363346854908579585149403935771889979379333220276545413650629830088825808318369003280270496600188747697619388872628699089821905497291313536376750081081791687998788415938549454516803533244462107701340952079477550817637871271088325911968212359538312580352108010561676230338085870901924651065349921284401518626194400515268759085661901953921557227834348529305500869054390339144906358134229576913833596779457149119121750742429125421991222220872361416033788131206472177912519676735857741980933454863088037327559694019090732724068374291713382799328626158849588898549166221209566261124833225850721715169620853548043168792891529197865848970109597992932878004144005272487990727065629309044440290760079267752997138381611876533748144051331044128886377145403166477085427481830851303673115989196134529097200620564828721872127841073608664368868911439745397249137602503843552050045038162098028674356028116387848824676083618838699051154834245995012981930922960715024172074336715640292068757266182177769312378627591457144816352384116737269006730746625925832532640013180419409615270390502153630112559627022242938445315856686545075208422779052672712563230048612758064085962801109783389787054982116241555167539648061859646689950368589322734928783260945195395915465105816698812980999195723238763198893185334469082995729477522381621569259094932239425310798689497185950934353980129890991043797297868624769841560109672605064373311109319029704412849830300143960405248992219604996776732175465444300603528934275310535000087317012816912839704118553585000895788608104621350062898945386089172201509417870100601724023019156456825958731414477509066545556374769651427477263956385632570748845174753254318895177440646999259255824653852984788063912787294485944222443984619454723748881387819421144993534128278397486002995279757461098915422986818162650552498269513859856480952555408751105477637431039562265513575818019098199410133448127238665406283144962632053972155216105264794397198745699240558557283324443468734646527368331880332830618310590050553495409588136704509469062089572678609175330422286781950305933509927033583159487582831818282070553138088336862383238229620162835694121364041200636898330826899128118176711556359593455253632781809863459979155591225154004619212574702867800702041415463774987590756834384217640550925692072994327710958704098517563880825257341106501271533167975302602333178862507393797912789523976813311239213595953900713171273210389784918908101673191951478941620808825284998240789080994940954364282933349839850583868296376766661490716798617852119125884448042097338252150780680379023266764472159481624017698345470827723016303525472913744313592973486524154542003446218535081690672929795607450567704898692952530577213573230790918151584203363338757625145333655067309806129113435623170844138722668627791290953126992031633499388737413007233059000712579197681314467974238470526088431699558756077439977364110467202398722830218500227136246887692458219204097065500176067463223067873950520361346920688284059565797795328640466370886667342768140270428679504324952614612454132726673627880307938148476737437294893089795540903739297951738681605340616537152033407837849872691280995491652629196836802966309496985171618871890773367695750461030018358255407805181897231433280438232668965293393500314588561339972308745640224630173675761147272566443443350768626384476681087956250234244301734683457281194981791178397585125104784246576328652907472450394201003657924372307025800384890072985957987036625085322314246213870259398358418416004576887769000671133455133168716495257373117337397314961858317734156922422475083269874070074966797093564862408884325265199651271249851278270814541054771196021641346072545398259616969976214042678349615817125996049823972659296432444663499151069604306814994236231687435668515708317068180702007280765747625358580581464515583887687470661104162603521412048049035218310892243729582448334469789780696603072673888638622687248417586545910633596879796292630745296878698455745235375800232495073446561149577241145803297103622283024397865702907308043309541944360846255224343160214189399647862258157685962197856251950357697060104944268352576663099348424893572400481069019292829494806370307248577973257204620288014983686493932233724223739331896270262964419360181788205093300644933135534499352737639652341219805195506187884445948451174576929519846286709609059390103222834551783924644169095257597206888357453169274685380303980585215260048904674117239407714679100656664777758676938602953788967489040045286013222616209659426231401765000502079472583006942161178454464586039083572190865955540155531296413457045224594368548945580419797798135609321181266925641754039429385960734422494280268097667152209923956119556944139077057018178326234788864128261419138353746212379586002336637270458469538199692450545668654334788885605752559295507284093796714923184739684682737601921600608016861677938892674297693356091737460023549553949281668519689401874509106921655848558404251277443497789253768921496936316089504739429997479879014339361100017742810474530317461423669504550328553318310216973975182564556617937059908215453567962629676342695394961862150934591530651644007173161262565133628176628441311738052286418727255824408170784225181687618737712936993091590623839222779031165561436747731326931242815819538534579115018811631330337134404888303658747205508496883396066079527045374857257288992279119821019745597583858608852880866835402973983808607199825753337324809629260689269404002485109302697953381530842879294133879752591897511634070018592470474927025546564898544238670887185217405894860183524683643955847539497644400497752301677831405434496625414752667827359968872011580309366493905049129373508026488596648889426740469830130793738820241134643554022630710353688807691731465560536852341480988663339063237247325198148991315048265042704756980689838054236811744391375978796953309566302366143306993672426610332463133708692357362090583262319667825863232938881266376364687680673804389886672731845762336170115358911844038469822484305978999467106251856715457468492294740680408627195953162289459912831392947747492171420336518782752897641936134494422597992679736533324975817581628731104668234656845348625987737478490200376349120925398091558457939668730839390888899798276731622146236751359623476069331935372363797148306068921147591920168303827899847300989456373183309211659138483306774479084363507889034053864876448196321753109951520405408159617756407068086053649623957523923340226645017378558720938950121719618757778045982038678390958054693393676093092805854084752559633526428284240591419435086087767147255648411800376247283298932140482119585300034126634260129699736971890915667437230579546109398182082227446955113515972312213813736670354163904221995904925453552248834515511583960087437343521980859719462119000417846709739318971434157043488986118692473622688971238280077548118520451133917851785083427631356141161492839727805903332769317394023885015446194869765341492031175773322439564754124152186575555692569545974573245607926089803036387024169111254516186623168842544277718370180386532874050420275790356935066728451399276132454525581889389935154774533547661339750059448878811436446634180422621573024329545848643189308745911113908294602825752759103965865744709227880022281843914989554776613795786471795156876550507551042389820785293731369499482336173127369194943573899853896460941150331384078962158863981559092340494087847378112420432198995629207170998396640899194198459326131193751551357102165068366329609856930121058557033106250112944725570150602620017225205632913946459809480141697886583700808250025662010280275968907013672943205514332165556199430533663546646644830337932150757887780050672822379689889100476383268841654575550900558818413743517530389559941011162086646665540638873646347458271507755607065593732981103977551438666519173068703893527054339589623015242940372966961440813632087291444114802738955722096633030547772504964733430289929447596685618951464796423969545147723499081838641380079690050910850500461951413155648901306130393124117597037386492508664863545704442307720593334596217791266717834718823158742438123832270164175716673703522048398941576593526271520302530808740741153836091624895993304583756787915209223478991197519459414219857891597742809526146841584185561498463914485712418220103327495551717901033689835885207665625857798961111505878921010205821225102974580884497734243225050845230614964807362110297868138392647974858248850806860279838623457645944916850366549072463320911834017029410412079613864294655874898600656610702574621715960200087977083550012429993268806023329955649137305968574966213748900714791182085401284392952995337484772237726942911339683370069609343797583265217314132952602729142327053829766516272927011926394355408168916540539110425237867384177587593856182346593546849552215399130494805832850610523365180831886430390934512354497229498259650365411429013339442867833924754140699999307536854218690892958471291262302851957970072665135169038215223062336437176980261730264086392851362580662241445593305457471589212463612499543290462329208888167011270125315153926000634118117524513015311500151989237905713626979479770036361732316177228009371451997395427932859382775482301173568617690669690765205072617278825250937782602092083556365218325360652145231746620984902453401117819135132955254601389184964155034639855129793641038217182050951807156284940767679372467304004400889214509667944299974609425910524111983458086449123099611429797583379443958524317473213909491602707309686445945851084024480677513324083095076395003837565382179365684833896540146111397558035594746323560926320770270108365568655614202429938788790554187592737535005098510669874490101055964295221135321381577492951272043988261426386375218751861809485632405276414559593772639949760806371627762865067537189203077305898099944737552533651844316626696882176235129982699575842434579074362062328399411051685260011815297340184810252192846330291307594061447611228093996766971528539097231978521309233679146542930238700329030491965818560612489038354083916064686925639317028863570327161084400032403345711645887320453538996092236370712894423294386465942229253136438476277064536081337211615902815955824804776905206067273510948721649415946897623186332241050171412117015152690883919006358339118086079849265871811620199381094802178822518821732727869900254326456077747762188115606633081873960981002427323101924796347619005142679983818583256004302412638110001112425713934228556171697955943567106939646762467482330092766556110784703488263871916762386569274014964009584645318282145168547326727439433809397349801158535993429230620514531248324183277119729111385715749446551935925286880312682182507262339049012550166591206835004562375144794887409243815034927280977368190552323267067092860773420160698014649737477989915907856149495706365970311496939803495672840436258689724638332558335189568219905001382436164983079068798600200079014996098656885977085334341560864051547289464643851800035664761390385829902348045455904204634728653849736936377906031404210458909955918885359479658426427869898518575778467364836149641645239390131996937350129134079866228561623100577036863355983863607491128081128527579250744545360700429688268038816462552334165493390846121527644121816494281201708507210518526432082869060890097858578198331182526833722667874690155660463116198174970904422279105229411707556397288492443994677931128990505226070998741673881988782096853130827959628710039162337060530248985543151147917429775286188579400254059729286944991832600405275268389098817413050607018361365989291324431032573724355031885068563513200986173889470672607772091137479776393374705516357973941619376956240552294054027613714684138314118294156279895771851371294020882181355611187111479661280448042757853276922943655797338216064706609781355194530937210900179119924494114254148277910059358129925983822202357658805958913454527448975237722940268251523989981580436678059118243387632168586630938402949980651816747705492799049807975528204744899741019907116130950683378475467363122249612019321896503642784505633438054468832221054009056957248767754536291554506282460345957747041972059330534583144769565844569530455373699521581101691440896545365834947915464453721679731817063149355666445846977439498767985105243582489711068453438624036973563037218733384341071122246196269330233116122116458281904354090577396568107413754347072937667569057144142663786757062123133932273593574480842296675389853243849570546954954357070519046977742141156771783578318844989205743623487232486605846654791454243826016259737129866848917584914073582904089246528743600267470075448109042887710096973691809853840467035599165084908515919472692015117132292330988034166624805545991667466846890046567194172895468481084946173666649871400870771555232157856546095635876624200527756963085034897811348586873755495344221434120157296341444307766987982530085343544549668516753004373136154248765153542705383708918626217629752290248945914705710248005799796319523305355553017580242676847648420873596059562922128531576925839678038751314334208476355101342527760256633138098306248560290396300533484110021956606251411246426452611425419802184331213533704709891706354259144507844536792328157458953563686583397267148107109524699618122497890299398263090154540745499832883131968529726801795768421838140470943641667077246287004112784435377980649488224075402813270144717996403448491500073828435765062658553139487400837048082720023658814675656699952638233533938572777069305874323612893894533318371988983098499694787305937460992886062527645235617728855402545436861965511707594251405894047400438347001859050232121545735878672343875698010169009960838710067394136878150120227314941537406898243648532347701967202830327813292755011084848600106546473992769298307464861385285089598683567140512970019874385845486680697115294924613486003479493535000921093619902782962051246501531800105955610320245297566942222654341558911022981025342165421628500439051998553051079035249383595249627203459859587689610021230948711732782847454854434454663755769449990324089891465867463285129706032947260868321033253215508501650249889644938957590524418484112524749217093999429803467240572423168478985852162601128614972679590883684449667498781595805989338064920102183403968004784586051941745914145939581582551575683285334393327134872899956023824609852354615788681837226310363189091931529345871184558363292476880082807844493645892109410563563953885779698902873714687122601988658586901079833605637760343753912426486785358603995569010590737226104539832326619307846824645705195762234990739632186859383338867294545352335361735751844319496146817615674321317959491346129459744262392519847233660014088311367081496535344300885380640839860349756409440036809401612658796973548149399181672443957537695544073217361234323003653574331451090673110804392277900924584446755575210457071835048057701010755315259808265595408839625911428761920395936382589928637756819452040926689015292172234768858158015230159404866301951896099634200722548971703481275157736833007954001190225629045230744207307459350391153313808263165281273474828657680371356071194612942955617844499288569780555804749709085680835301449981257119583725120812676532398704693433021482365484103638041714290813706987877665010808909438075229287445075678467578610047258602919919624233309320959582296805086627900386601213459744393779180066868603141898357590682585746452761969930927896768803551044087621991654654278751514170492767067686252532363035300995822378028492870606824557228201657857460790380997766684717890081963820382053252453194812737530273377161720878902409765731183840509837067780243497209262282800887780971328043209687668743326773756292277403161959495084168898178567079537035523671255740306152567868111984200741758112875222822452511023234263813445631118094271065852473038792771013743582472376621386749260999183852963421529512210814039686762096710481632902265435514193661443298243991013154449426987944484672795570916100493348077298082969987088705346524605198094516899905773336002186476807269012160464708203232617987924165828778052861842192295290858499701101731653599447093067926508110791527188553838691174676117372602363114130096266752994697287051466637178866020751976928189319333284916988467298180449145870909795490418651249337990741238660540443924082178182461261240636716979184489804448755462228526093773097028094716514690337421042834603494232010892818802119008261647857640208312670680328911440175504784159773923438857284303449704911056574551170072403753287529071427246436757150226334209314251184828666049659557916634639002015104237077860096726165053044956028894907324969741347064516307509170347214336205962739379377335862225198640306465773869375840101487901972666379928974597395060275699291876375077582943508784230982293951055953266592702657849888935982619013155134033704271721604113231765041153267928751861317659643162586130598117283544854345523993645174926240285216776810967884593915548896968219124264702476278907650335511575227383135994619086180234193713916695783458634835936893267994603816360197617994779317165791802222915986056526067496405914117684503109009463305744337625152318080642264407794237639040835518635256176957850559656621055741215871194254853553430936730832325228894017483899639782117480647438882985550852989945485248447081279411165139522312930609234673541812965417651401939755646846817128561346249785857608484836602238167534803525458319999901020151905519083753430121703034079856289151500445500833170006991885829359189991199687337528878855162295876218102728363806899361180059564826087435914398024972367366293162155960244706578724104964678839374527977622154548907445201089722747229765591924069811448732030320444420278178131575531576417647633209455958449848796467550994708244241625208423042911690880948825437247217244194016432289231401556226202641186673341756368483800108782995225408287044075929241986053596512856275392545290154847860831830148242020795117397823477629913598590708092022598173666985745209805933228148607397387901839899607126226333695030400932126164603547996338917597873814669947710163270980684635841015998552472057986969463347592788346476508355644576988328617254674653508064193913397813338640449139006134595820562293165003310883746285420208199594360129421307176694294494526568892054392156786398356146893040576259299624241050613753919693258050441832476415925684452209071527424544343153738364626328837976733721300449387102805432414854979315420153371553957546807872593799240737531236169201350878734438049604464462418173244627383282325318649516787016855982720920289960325635027073809843233278173041673003570654202790139461827825295906402716354415335521513528088471787957593234015975157972642366470808981595357592003282423699002838088215487323709039127410671073623227150292696784051528886863372405223368115378665291481161770742267767618367158714954086094399879677939238565379355779864627042859322585178313140053175150749393011481722519268020290314723641281918643857524751318215462405078113270718242898206843338095953427382244809314090979479262478775447159425128935750544535894069837838452632598093575851892771905149486458502047846079710360857415681141305798532467266548737791066256867422043359034006099011435952006488127352367359328488665920799367380663745989013914812843702802570410985420442874549220368501949074109446053813040685619163202899132934145260743938051859895992251835562646178100752954829308730931021048542037149301449657018381988873953846240308472516137487288078873511284466493233209887572686690660892472167142651762995706744945768538329269588066334751677431282897501227376582293923347220386528181826948650732326678752823282763106484205330879969013292434619818285376367611055767578968933629712045932400946121177300514936681427034543991732827704358198338681631112055666715611302541105549141878069072527203676741570520140192768557903953251163444512337840597271628960174908631020840011736893071623291156568964073806659325487670237445978276225315610716297695938806775636284324760500326130334298070365135292671558200699857504875317597830129276731633871497344778597022229824232689407472964468036636988013502761024881554472414030706791137536321995098826043654197997882699629488173917555797002621705703720694528362753586514603119217791696191511538435654939690921970662308237689978281174163987029219824218493382790290923839945885510741450982400595909366430019513026459085288254740536235347702681499990809884460999464224583980183235620720094259291867642327354675636675724315777466924800004602500150008815961828176543220841090728807939536515154870079873918247811324497858915956306534595365587274556345550804898091069228228947758910501365447973925137096069337803782615566525273932900214708822357268235218933589226902753867250927141771791071847613627269626612907457822799524724228725778922369966834899734211612607615530102033477437741437828012120401118378989810392156342451447043345561590559155993789354280503316223272267216167230079349000643414177380495488943470765729844081056621644681475472197434613120555233424962890334364134846986569255486817522036436901855450619547471475913393119076841616491393277682273487110188239953765641747661154359580737356934568865114003305708009025795262611664863177278671998454990885719359743097433101230859809221310549668903356288840807214934320949312555100990839102086697896818633944415077772631217555107041709633317705650577779338487809042678839031590130803799690904428592268965165959787481067104462498712313220167088508010144717894577513557152460920668607409935647091044822424416426528998516778317292654570013371436517163566557310631024652536795965783754495880130732534582320638769559517234048445073693595651435215583188974394559533652093310920613866801078847653159850556767331820375103492461657381432191986162110017473923175467166434289401945124208981096028678123762872618990925163527900665679600934021820308167962348431838536354145402445485731220707825302899158304551039015762378142343800506797003627718463736271010717001866767273756280262754438658439264920817832907952478553119694435782658521405215017925770547560683132627821161631841880444604786764484730167868612347115975530283381748771847223500550538745438516249526410334212773006836712790872849220328973252177514156606898474059581700484774421006039467157063548928550242845600958667984441946733751371416851576957208011858062727990076209824181378769212662643764459480042733906148872040730432042042655368065806620918054972405128066006646553824740876620779961427863280900970676721822218636132261249283332530972173318024819717245335929389548758953195183684734697392686521298645420240081226978276964770626961230265195555328872969539323047797027819605916785107363231673585702997788141707014050353694214089385400470332723752087098684336570110402514262489077224988628662986400051909500221713660861788733704329060186161884444020795903678710631629550257201499036371933503094855691232035855407283374718475475627102015375699169352642523663400268193369440593119430882332657288052337284576353298715227235562269039212052574255705641099924651749775149798388291175366386010596984810275092959298550334544950702293764402080058555646182043277034762780962864102834205233281821091557105595934756352695458402758701861147327537826192010195986988779157260145055532136200415451762269098594233581637876221692814124326053273691952007483693910485226054430272445392964518088074624473728882288991627296219322718350996085321351476106258980874263307551574867361704925351262444831771198350636948661328272634222823274688554078595241546371085277725976951261793640397107019351538814552515733118019631408836505220113172050315938956662423870590480859054473259927438887156975641892054589597292230438490920670096981130582327471064946899964934555299598400831749153238467989592190714050399101956589769870551274977206883109989940421308532176818947559025873412363450965658821443127190676968559218134625368800702072365555218925907792326754266674184764521884972608575370557290662561112211100035231052367053316688348443109666951390630090805547144631033921690151283061959941695687284353079948453423676479054630477496378503467720236052772194544892610240649367298795638494277082578954963346170113456284333185616261659023035857930130839133104999190478613833039669555457616828764560140000662898737453100113457299649966751020567552172284326994138308368171606998887465372370115816220542022564400983506983148861575567873622190316137393852080210281210660598783252186124744192980431879057266139239549536939323187143545198021522414791875288022613486094764701566663505837217434788204917184578194949195309947525879177993033728443497047567016414124486763884002225406398785419910359956787575058113978262533510009852958734914253897099640795742492392399452459374748416134157569832258700848616993747850323776845639831039041301593844533748856001070167102386997310803930447876938427663806900757699646890688487899143697676508079814029144515074952483541088812077312166318948153035493768995293840793895034318288548594817296485401318906134696470571735693811531785483916489314053917934926005905462652939264163232869439603853062124662788509097040261910358371205428223541484287384170190109286470259693743033854964733237926633282944790163220956541267623032291308902518021219429568752054804346248850099223532590499855600314554771010838106043368212662534254125289953217003901766636927568433437677487211265064048172360658810095531571238218860865907003518463023265490421625573980133848717421541449400005186543801494680378577322504092808278006589559245144203494072011819495301712287417411471892036842404978725427765120080053168029013220288712853513446685103215943021190228200424728039355398413194475220164132163847138267037527796406689574140150212191173020443227634266516401516159584528015362821870339242966060771403206673152193803033247548844480883626283081346726295157782745243661940025113822093734620961480915715776440937399819278834898231871256645757988561745900647095317459379862833505726897184515103540633354467981219721719243717467192264115388644842171899459487866914026040514260505498906501572860522564032217127926567601736050254066968360223942160700392905427427350280022344154485211326080731272603993550131666028876637958693347513971371023097457057035207316540690522722773364970403053293370380743834268823215079656020015468822538432803484491242454241030227446181400697053610367371776936567092455521333359820861850720884856900350587745409071183692049443445078522974554075449984704181483950686509709882807605939680791384462831567432671219666849630295248974342426774957690380788506391385781294178280003526856932497555155052163509385213132022580132507734862345196609958196467155105993621198071208524265243362144482768876541683109506120430361398116480305902640977136166807971876425016756250968217221431746494656701712779424215393184471896252596507407910279190277661813091489013830957521654139640724207739919641836968750222130850884976327086111496324400328024471092980094280252825777877363065106376262301144630982826877392290639543311035862100732068977988557396673527882659502494825199101392538339069390699371695254177128550629169625065612764368234093612477243824529334259483988229030039442045059313350538788454258262145877326626391861889863590155853470658352826093125090680003707662773893511189136677979134625940909686374920159519820882439423580248238649346856715809451258852551203082516453178672640333463745130429532787238359408352567250744894468632418182067391817700783619731170819351743492035444634181127525155303625287204496001701709598364622402401867634784634142661632325677479729095785041898041619187580386932906522661442613985732589132740557952503163594078079664381304012899865846957553344997061337548988713366780016284401242602678467385853406802801426888119416990943913206419208879955666981362307580497057476566452426092714839293894921656722044117754128444091275946858729504839909166312543706558921279775910920544974115166015669803023611443907705204198920569594402414187202844232056986622637848045869453806424611313514560505737491652322400611208798321831789689962387781034378417200573747553758640590411975827920674228134330911681804002855434031510992782800707786222946067117484818600043861767015414224885743494769593214151357027961103384041958920997228030420579307449215050007782033674039535566238308664956286685154972613117291552762983049317111163889111896637981824655489594827369190815904564299413225141722722420193252251235640660940611721568720348428391192362493264912891295993250188548850266561292064449716144780946489783541493480914396813705007473694223580179636043759490724787408231311954148063632069211686151746215337444448429014282744386213527518335804547708527149764499562322284194655409899511280492801436346971711761660489561365332742429788944708701249293643958119393586897407055601792828555809858348553715101948060262495583382331796220192992077749527753436662284622220276353573240017767678119268851369526028613355851881245297678863960432685632383463725137053479865547766659009923580477462304503600041536196500276561988044330504590871331579838213171557533673481443105617933167451854285817312955393232743985807964089735741440506959315268142403723835895229924790307167449905972511642158200826613593658394210782214281094139155976849209246607011849374778863752583369097569948006507031518075198091422150517112133841992918027026403869709538884263051672807364900468490236698533978548182119814430451061490850822522090322470938420533519055033843875545593896610667519696054354055116477635034747713357667456196985564621971049104330825258088064106520830152368937714320454652031020943235461875636213635538054731229602323914108455870623721234825319248212725823199589803086096061481343086106070137980127311257742607952036165867424361087694389472332660667511515546167209641902046827537969274682764058757144970883004417302241373259140455280656300528061938092262692737594918821561237005083196794510487627976406843220424583383775010072932581739511307496999771226631460686780652427128409070728672645212961135224919022369343278485435057392997068830535775039201849864364714657547857738872993340658815945591766293356329791261955756793183972110494694740989582419266585371430922149903465172753371222865489277250616563552233857353539973436704200107932304215265199094481688705445699152523641563769108091919757020413987215283557519752729511066740941785281409076730533756718042165188831690107836735905332807592463731031816245268928943656067318928817747330811880491827628880875709445525377689552421912454104195657561198477475055576873511205898695620483749925347458398386735058202328032741192870678978086491204189760096308996332209519766662383867681253097425230800505471453399749115009150466082993464900560469528409410197105698860031208995443618325296606812508572478814884583927563883742014238007985252460283239402768417436061982475800707743988206431496948079865727404650944902265515773714036468599409750175438760159049069239961217605274878747110313819104621859105253646811827425298773608827313366277018423203394877286416764366853120900990881353319536649731386702538261293670371653714612978180602311656608167952439024547335602357284906935544303745746102675956839164770433383981906568569153922519210294782343169864529798873420905408950926649608596089437746561820854241552092150478896106312287372919031949642944415234409623758524891628215818237282140346250866934453611310239812818021718575041512748659555628065674159885100795879082819363736753116852328371824685428603465044051147804775915604358578244698491784111259621287002785323400141765303588251621450700446106881081851687657831189150720886073438309039299201261289756187183033475093819074020958750242083841789702502448521342633238999655065535579002838008783541047584631624880414191961002824767205251180136334516436886269906883058033857294909743588165936627028398276693352049700419903426732946371361855077968017493438092362547479620720161058109827682620331224992727540933146278935518460435060184582804751175289197500644097163118995376691679219853750891597635589042286096800859309167216344438234072362103364790859537242903017001490577039860633441360981023674230242184572598523361365724390129710342257652902732073662485140961002444601373863866175560385537106555603801975564497776354572626823232878397892113072409493325291703334224599207851365390873949003379857251583858495239955952139719899039807483249061249064404234364503929848487018011568791076120628389242011102943480377296491157626161275254665491882153326011929903857177464873334428017489642318258359341810648665173484429137608857317865672783524155648744900645684687498422722556129094662542174898212733453410569690197140586821734630829125466231351011361980850498445773602266981257895675713733832770356935357374010789507525621601819461835532711768331629637675410124484310868433534811037708109048895234509653647200600303629751860100440419182350077132591883639282195754635637290528396402970085345592313523846669482072200645068262756348294524040243207951833983160665980183700517776103329766675788655894896736267074993328818528969728306403548424865619992768592599936999816931099701958328646046156556309023465417523452744082688086816531987245320137197796634549228726669625095596424150766292346136524890912912262216490258336836490433073119613744675809063552764879734485875843843087538860140101552894190103266173994516802046382911530800928826665190833450771842307021511923470838259205463369399850329952785397744205306569547745797556072356855240575338964829567743233815895372044601314063115720671629906782838673113670792979476033137496798588896971257469391816491758131678502150138930787775349422394706875242546530802643032744972005029180391053546242952330795040246047776876868610528393239054779659833092867252331231424058589332360875537773680725420634505288157984777601704831505930365991881779421499211266490605566075639387717394024429169404256594907210424925059819040546321619108623712004900050670927952439874486854206384825484460769444881372927392714119636354970524436194483459769918164546317493926257775758541706264555285011526887749710335212217049544345452188777113661520797970839476359317004998851774718937643004657241771564846623368249078208689834163137949931808574663205041561922672643005724696622643759631931515368391191776622871432408689232100610810709255997158652666951133477256898901179957763924968979667825056407966098895262990318862423407673371942105255803303298821257457850877940031385522869709642801148240407098904005556445510298636011927377934550033739874299189999394313045663868348984485898760791351842911369260474258147835288088986900482646650530933093313329502743498909821549293442985649029767362368686752457244541009454771604387689117291450860736609824523108161479909500717494402607272540868469809025259855286367453458008655612428828703717706381189368684421735363809782207216974610657501097569415397123213436365353941558643187467796129821177872166796837895081135090153629498318816719690000961435735814431954434095036902542047101076747292848874164521181990404217188166798998536271837077007614322804083211829842971421541956250636756397782333041269647250484131893128488178423468647828051957877859014718480158006205500840063822178732342992104796931406326113157162713629225913043231576438388037383138343634737895199087950145687918918152928897085902867021271535359544816895692389769444844188118132766812071156695425707146082761490096998020223376968201034478538000622155286280973049381220324210298807452372662690799900826800521998044352000243462264032175945561147090716571152689512566698243298855181580865088482007423604872774323652744332730834671039891650274305969443582101771510437619678099903104190652504637668183864878363167458896371879245413894043694813663293380095222524526863162994738710304303715865368867277827324756162905552528827753449117367302160416799415243363581008353023239974653141380293452533517985609110926364372974541093224398641862148372254828574796350662351102594001535922145810508772029339428614956934761308935292408463989345650905234559334357222721022830258515479116390979883539443817531266735894497776340671418446703077873079018357003006903683459779653915844717112022282379083525819560066835306288977185531768134568007281217828223089928936109329580276414967642153685309556841632516198311590363081813851270337948752527557438622521847736315629173332798410629422242552950479645289019098566458689239764678762538378495536058625597559435528635920833304514228742312578542423456542073585495966786499402616149223058198685262523495011389078636852834426707611909313018643746314299709617232074850222866273675438822335913347320861784181810137138902448032539738303449499669467471494979073352054062019686926873449506673499832972436413599799017307340989198278513362367805574466651774452716707884796365807820651200035459473142038731729990640092666131866669464977427746364926625843536953830987880275199244663042712445959590772893533785531359713604480601244209200368584214884340518024894955080235744091151256513783113452825474846349899491505025852099336670815931795256035114991175526950386834814112417290726256033957792247254788619548458076875580881966664685082675726563943252591930784084931078819840172880402989222951238232230485232656997119466644093309036385248558014252352737590161279638408395127437941427646045972045914772803242452366227440828876603863218901760707413446315448254501084499318485488226996635911981363952087260683521138847600080101259881896204172886402699635903444473483787730548101733820180443421345446495795390777283666060911959146409904304035586607658666460700300209783882591016754182612019787248505012075724704324207196777006702851411373471439106787886715788528119796978246972488389394392302645701010955616145106657776782707017342979305409985542421184486509776132944857254853490199523475329590278662599553033408377467792135074557847748765673366749105500583997928353250869858003475619705737087983877341734631209023157714659302066843457985009470623963101994571591427079913144289804268666134082726549789647910781385848024395726579175361014522474329614410380871798721312803629211245046138949664759809268405865726541900090305248455962451929756436377418231655982323300889570288790138684371581201563829070227792433377872400798716855012125768849510489799271316780399036429880740004050269325625044107833537977115547192872367674636671352897754388021761160788820891332621424134846585625714256529597900663016423995507456409396416092117917279321467615874352528009242409502830738651020552370658088341933730554066406259171423017768354950853127772279704360231950751358430184629248202080026828919419066098407525348827937986209349778411577130382527669899505109521367825316333503806027408696540375943271662448489350323255150658747494717548431024657520296907962902649436795973609956812321417564413203812128400278808397341876025386637212920195555109739167184718232699467286923172124423081479777742280000528057104493155422822663825488784588476757322475132720907630558190497837262758459234532744727344116782829675857365549959163126571310677547935064014860329189557378133221312239790755570817283910587005164881595543702804788203294066174283157606547287112849954029044822594526398342317156239693628018266129638994464448155378605333982336437587740029100667802517850646526888251612991273561174659331936048102852650816084350211375582421030349980180061628136848300488829853900106132246931544834186789775986619063173170642893835168145715003299678567729982445684348675750640330430590019116221223205759672646501893603802787550330782253870299256319123981394380043688108349395377430404589114214137042554963748347076074916476780994294816007212630010045252064212104777066424280553644750884324362627026529576560974473009035692327764069524017047376583580119274299600884966356302815906641605376557405395686276434846650601523596302418101018748383505885393246452335174934057210432361567931745705832902947435772943170597923627637372956428032468332692835959879049734279191058296226377234620060750650296212774526637169628456800952482908175317388381538318695305877662844642101209541100413849033051072862045437648210716319509280661692841788410559451504347417013844394912569878143814403205062213781950619811728939057687518709690330991985634643950016222227069447741612106506843277106205582551757836285676783679681424853723877523561582942527675836571514084427358890757260114463616504701748008090950973625430246706843222999304969478447208994083346257276720707727688557352571008015308179704363538239249884127960453427317607030917286826121115656067817871097516955563327435860420050488843214115401774789772774528653579910652423485976163242685791957157504702470278758814099464934591068842130373118229997262740225439283114921673522090135549437417000315728291215137712825677483711725019719722738826757042496153141253404231682668710104105183488786180347462386703864967985449302510216880860512406694774246313347053935959649626420476373275271934479878838420476870819979859623925393726399351433166320289708551437762089800095639178181794474766869586301089486386367518135005481680288686806501687641450420334819731323632069389387312005049533474572484633855485298280188673272034265336509212130868018327028749718947591850451036532458650446342782361203105055063082869277250963170569053290080946680122813170069612692759796215013458877142822027924846871920527819732346213989372344057473846080451587470799289176140969672959537173896690854459275207517233158870052911451365602739303907942086256367703682523295010077520956788318095301792170792059580592693254056574247684041290791716873122556492478793847765560315944104008258518162227807171394148061560885202982717145832817607017267354296805638393150117951590170672810873068132138239666952329790668329080080083397679276867205737697120657327111719238680077787569792726504405203986897931663534827460581043187060247397741724348481486345566323246749197102392913202736830109220892037932438426647362222439364538392384186157456022655342766554805109707271243971827134228089717976177728309006591267183168828964412509274439087353465467494276230514601704280195206319401202050980168826639866859216595831353470765495912654509879152429500042588304966437641929122310543126491270737385225921884195657685854413747495932601542823339097401482728350288713129452370295360489208683441741857397995863012618427246794716336120880397031283562819657319601207565933899528567284268566079592368740340849599125575794423342583554120554877850447888484548950195425901203732209444467639689049906990876097416508491120203913492637606704294305144001366224338312865490634429531371341300815998133150988172809150658454599648463029472564331288314151831739661646772929386078743883940440848442463337209975806490021337036315075620252132053679152724353431466906894824281976261268201486595966881818833227771377177319063005670299576339320549800586134627423783904269437008517292962787598209287115204345749490919930860477447326363644332888307156413798717168542412571932047077026411197562316281853445612980336844576419306917712115388549894054809284652969811529979503031856345855361572083379178899885656051220991910648605987237913022628293805555696236336728933838810961669194262781432393701681066272923244070595547604406444271333381383395739409655598281766877327714358867424841002818359059228693116714541917055522741831407249647836026633023177516790856206564338171789501295062319426179812648767552399971138476935268677637081194190984424574967734418603821608560963870014802477998332987855624464133776529879622072339672556193457136156277535372780917860856117914464924290720427493202137089325371252224081282227334144267939472007594881859888038183339410594126928747547268387623501727564219539721227565324661130234797586274172492273714473749203395221830388208198631944280727539231802736718233384128832678952777412884658045754884427146429663645058604969235897457455237543317817239349469775092532082485679828699525940552908033848694560426468894915790541253612291996417629770389146073008134248238957976659098419664066955997385007489348065945309067721364057384982983763258179584195514367889461441756056471448701090506742476743276158646309340949039877674869727075238379941915528334350749242233817783240722279778716852502331074504637470847790157183340191592036947068422576531349942946462068365723781930628755757235537501065802875890755131925250674631864009290360934164331568690818157752349062404194266728320973525565827406368547198111413032171142760812323854919583286011167058232761668837452658059890304522403268099266463906924894666504624193949777941233933521063126243786844029670458907778034095130993084776503120458723184749479582712534169748899954236959032007581782465948175913325614293854159815029078416903964698552018435589795800697374172694747262492971007507531013294755723491664288106985817127090197431807990259396891378381047032094675171932991330769117574971143175470890766764488196828961634419594795407637372660354135851138896323960676602020891865591346987861166181742834575392920008892150999475094429969615965762152906761855188100377414784653821417255293179967789087048115489328197183259038839411818306414567638041350129786498531529320304483742819546731101900534009509195249613251899867987016439414032884253275915332320992042293379681062800420599954222410809990485956953812898752569334588956014306434571086329591236192418991608431624192181695659980276531342466988871161108311808497234921922110895431906273916219038054610493377106082398776556340304959968450769574293261036910151107834603478159610424939140362951580947263561977874144522059762002891971307318188636304736497047986862939667734201750277871275035869832341836357214417182086662729520587580878265852399766988823132372794533882848558157463418752674919191898779801037051694683437703764150695972491766189928783254935405384569698770361688128340691684164863225106295683147568427137557283012710371621921450240474437527373846243099927199472149191005175041915143971488490654633738768085688807491518684627432041890887473532220048095182073820723262086611534697480131621511950023822105231906115104701671773793650137600059161354182394470951621582479501235850587505058522491738132904191316722653516079944646505900606302544365462740945361161482544926276197447766266062766574405058111190187988767645787619974550888930035209452096912089007266560866669997915262877397002187084520073510851606635099313717336425445735455399403420979269136558115943495142454146869464978920359915837521537688642549853805587934359497222032113674229779110790784936900336589495656396794946826373732855315993732208530007324672515427354395874201680668445255290531841958711924628054825010920058055878206994667628576977826563061779751742253805531027160547336423859634115301990484001326591094333913454048898402337427892672768429178548937884594778508162701350043258159348854648296648122267083543372800528845110951956580037983846357977689332896837511799231340100002671264160349631317153627934429354504478136007650240852156668941169916501547202370666910230796049354040700093340151721809979094185429375561826997438886146613630908409815215097480684465077022058646149994568554544765346663192771389949304768169982676130462309212536044852681257585900095467459860691570014546040623057788617417682519461644020134188621430833879590057578107337770231205853893842991244340778106929753293697689440895682286065908846394770186885726114757068366537264836517912218473647762834091226809493996419626998331780746749227503470890240842136903981201441172466673638026212591912498313114680422145805945158047498857901850777306376327920033956474640047213885699510666036826054180034263311771371347564223583357978546672279282773537415190966907625039120567208428911672244568070823597520367308791416274217931601735515943746473637934863720028634148080798881145460910580977353425512264404891887946037702967491789225627544149155109209741924334555236172029052610292134980490008759173156073804627843126221613900189182359919952116373955141277883382668482801377400431849007309713677877958758036801044170742891021881673186969045456902268264751192996453295868394557320358288247297088906612524530404736234948589450502191453899366224146865421188517807077841944347657412957013014035215138656926988410472504175317187493255149325289225237451098204017120302077159880004038103350633339547263654215479007807148145376173189525498371740712710715822872612651188348026456708284573181847249847112225019389906441506965177149215010473243521448286759168205943882902699653453776845328641854657708862639162244767870207683153386487177295572756970208897810575236511408139437055946830628855614256619037299297658581336086152539778807383875578891140187012433064321387207945816701082795249580050622552003430746827535209221375405264745439702158984317935527575915162282484486748477914492102759702685811247799377559701674340116486039549364112453163830192866239623887953974115510505594195570944990330679736079970447305602332215785582545483894859789470235615516683945683099688258124947991045074596366949638958988864510451550123733807538424842525409851866867390333111153352697959500284005810113886800286874559852952677117260427531365628308920746810502310935952909071226384413761935471532927052130247917461524948076321417203749678835858716822617894055123142283207220567492587449765430809090502935421658429418598481517396430040074921693151008480013152079718232595852831851567430963536906684898070644519871384423734722895418369581911783074098056137757711047821013707418149673722893484045486084968636506214674444225342371092808863694382210847258088071701475587894815389627847269407366497132276113605298377602508316573939688404865173170419943264527996879656856538351261645432678248412787631932034359660103131293943892389257697876325488687364095712796724058895517576962204476494601740146146782070146162694941092810523667395722926356115076485343438267111382921593073141647095586315293602042160129159168933406458676145367122863815381612952703844815340311569814687743572669619496611647749830646890283017557922201903786960558178821796480141318929894869830925457778607510720958764443142802909087786315247187577251370776257426000361002001823431448005939113496647726892957366691400363059867307638981483529975383629219291256750975604404314193232373096342117470327103238732719392952312151647381697876512906844925248975762449256791593158550094552656773449810538335998036196851481279057012151338724891282186512288474443981929319686471066708903377339688481575341561691823404272381200473616716052137705050225656093911581463991921528737164020721279682359884190631372755295690774836287852132878591418083676473667312267387886396440559367510980297924125796226710302641864435206972442156375854730928119714417192932075886900171153245039684858851059775949066473229590591361992777778441552310176458863000332773542122997330923440353170401599419490293234104529739078151678445439854382237753239290147984810359818302824696950889881888048042485001406805707760965665241770526143880084497327607321949636849083379954826368029796924731907595263270341495664903673560047589523333974447173390525141891789543715619233186288569025490651311055383379599715436064198519938399300635017239766055442657578689345108264418847087694378365218475453570653199152902718118843563997045136553651566188188180169612610589889090632108432564658541878454938241664480366526018285077944816737138004036916642626129625719042820542644714700872607794806092823996536168396623763565511174330119521880579577994530088774140395399331976382103682888939400359322399098951426417511611527360685079020512577053385957311822380877831723817673978394467125012372067511820143214991764060392418891800378278494709358731444791648547457279423505414895371648663602576455459189809539974434612414743949963948550496503901538055629067769419042617539933268108831633901195056891084781991399481611210851744509040722025664042394873714519619770429446542274190172619328753356301639362229025513217320460153229251763572270876901637136964928399574747329538781654712406885069119395512432882729622767509045154117727641439057349448979382351725242746141135744279221123879104795946177152276045971521169133155648882979290135307515648551013748434252650054091866328546482432626714302914451498143835222363692904035547273185860565318204578386731754806025086142322607063773826405344356439574478817975850162203870466740570073663012179150311389683477415899817755478901858825692124276718637296865685806941034836602335507903909292449371319677443780809591233279899853268408266968875476848753260734601853591207894431091748026778366935602629853046683515017960568261787524520179696217128483248997208324020774871823274209173006317347871035464267340539820812143451998933847893874677419506845239527246709880018545357328801087126411381676631968612589483295317964369314783398890423035537072386635323231187013712572147643161700446474750226056726913475687678214215454393738051829625288868393427409268864287488895765548827663664460900042683879588280575830525518383075802804969379845782656993916375934409145342454295484239004905293253135085165846653818800261382307967714564546706141125624845441318017661971488412771640274748162854899417644475864287917015340872533418700363997199301419804849431924129024659579861991412376905552249214675966300365486936065758835910769468345721680478999529307691145280546961193990262474664490083680538187455610000206751417853749035590829104475234766431555585978109415319524681008889695092894032948158579125361213907404224196900078060638944168354883861823422701006982153098118198743787827541626164368676235545522204760394479515394373738924066195654889888444794619986811162418426368701082929460373984245410085985570027422274730504588832085541413096323425988078717465441458593042180756337305985193966644673340293681367434932242602386580871601815963352810216258532477651940543218499035464554498453677371594880477186139022805332935698183319511299465475597462950080031133264557104810242109702021843386514748493666720025485989269949033130908233602681679194772709974040270924399460216649506552388791231709895148708331133507013088772977972865506471148120074255295799603621425418826039581946650453304806998333276458999064286704737404287885578790834531327649477668087958990540658734417406416371358196127141038212157812864010445107844314034067363512602221237438283561002425429674769172833786607230135885368118428662136099331132387025207108365776562102132872678924150049265323358654299993747887888804950770975915094137452861318341017770287302419682218975673415327074997401524590004808715983214243224122496490470207395770001054987304008481686366005422726180804020278280831114512578787181929519784810670337019219750674088267850121249837818738559637629103929631091980363777978772458221806016270445680799556607971161244870563245872576319949257135833163792775099414666137322721954601470176923828978049566923905262435242856263272842128978806014426032736729794166263751958184817812434315135336577528808377072117845676712268291080479317728530747753682618936880993212472628439282643819793282300156965798794135172504560915697824335627234542685602393115620684654716437073707611801208413478216864553100089265179330320721965818092186974304713666459894605584908674395606078457112395008418243631835599956406661973317689707354572929387206658452710511130744472857438225868040953987519928280958788921299102125786623893171022250850378958442519739014163304589184456695451111213360474496606640758819035248432926632174188508163889306446934133492933904256308604919033279463996452180479660109574452560081358073922808470914620279641930829985501221014707152825915340274995885112402581914195384257447472268691932791404020225102810463278561840980508226365353732744146052124433220268763278767609281213331603362726254356711334622491359708041218731661944869029268340751664468670811537700459717427371706945969221115852093372279789722593907129245522706974956598263350718748576001790856726215893896109416419205211515560795708182544229583213332438659503161312542536675161477823249050446352241096104604890472443791737261659959519018333129028552921353445152459438882543470957263166346957349882963677735598157866236246441565712412211288291861947935061300912418759722427809959963497535116865633115632770676100271139089067227169867384004562845568280313696916841304408131946507788862590668708679676049690342312288688094808023498793695398923442703966237571545781530054217378862051393397691559532487535827105552941001915716590735066581831497678391124828810102631280556264562650689140351682721841047216148994688019885988474864613635550182766418037360556360733981777074173882825281707665811372146863143126022167480703098978387920358016702206087502051748205423769637712534270718434257222295171841299319461903867118108522354173872564581722842680347486257937469756743682001068879091667202870510894209616449672827728807592097053137354671865562768866620331093059844317790526254733033520615895439832721488475347887005787280959255913335042474361529647966189043462710635484003246669584240199319205946419056831140831382419428229143781556630307620713405309426288290602643162421424494835148651057838442973618258080221493078546045007259619860430983455587974636801635393515290402863623971124590938999409660513594090029179652426841259375765134166250200911032630434944939518554004241048268842006656596153411774310705396298707163279955265196897220376902061352143008612378552134153278058898186985121424543321400255096119960087359367441784771958792053232374817044367045292931310629045160913539087188753281199060672229195156214221328033060102299998033034548658022058605507903025399877904185163474465799134204597341894674643275425174314033962502575553433050743567938667821732651327139510974135594437267344555420999246913253807459820985950240210728300651608435707361530356631809904013622549864842524065365223354372544556499204899273288814677109995484376851714845376314403194280194041842425314072860625395279252268813375652647766448204900913673658159382831106555763537133540043865210390734042080633963640809471914861483240042589622237016235794575683869893426782705139580246606104810626865687360113208070939350348188340393999788232840866544064172800795201048104795443256113564976427247196445790206108083309396783158970128135139677982113003555953930114021095517692404735888615621934858747261220271551477052773026327898438424071811121519452644137950912695265161717547031909822139143460405603225851076448592284735966783521131910385292807050221784379896669633779082137193963312841801814491191586363007442525903355993687785945069451931797849562597581026011576357873457959913826128202565301622541316135425847654387520093830860544475031206662040482670172429574606578490359001383142120955244496646277251613074166508958849022665869672225301340733273369240508355521196638438573966028713972668812674488361390595016664120712602316931264863773432073072626779070919525472023688525842394555764995445685805219873716815319111111118729154889042884964264852536295051727210079516801566907204915635518020442264544606653165315828068463073640841830393574687785921431798581315862839141620160702623717151362466348475029110101628104103384093226540502686432837884115519334357463840683147157700279343204974160475110142510764272032071785373532426327351167058945452995026013377162417751397621377743870222839476155730707520200758999875905532590763885668657071848117284298250301476889973903654947414140777642408617765940128953756298566504827134329499849262199620327288449730323470038918168839673172704386224297929532969615668603600355908571009206009521995920673113055147972372563672793379347010410995668984922096848229710435653699737811316186655856132812287820707910766650541104355531171857035902762348588613505348171304901236720486923959121475943119062436907927274191494506754820613567538596963570364643003581188202182065872935944801766401384102025768214318646016215028339970032624318294206137656882913608537851744783902948296901601511863617678645910862023031195490150102423905024762264329621361486505058598898485532213265598953460036910025713892995820720180675685024184240930550716213385629167582426723382493103097492254766747024532065963714109861276204234454155060255487302858790647997609177158948228160370520378032032896989973671955730964080929889269465368759792056849903659937867953179224169984106087947718549852195530682184020326443811444640118414480809034917845451577370509452425238256425916212889119749298867116451147192167843632364610129256353930605917377176126924203473035586799446381120454353135656280027086716040489953987149150212357252594313711637508721437626002731473212583396502673731696515658131126813129232848842729539521910845288840665929570818630494538951245117617635508502112723026417956750850710464838874650827144816091497350039110200331383854615576561185919539887601732745962262936968375382824855985140473359124735892687624830782252837114429479914240575567614316668206910577075490652820408335972941755386850894529295023452531485846075066525451634731498730247065783083046852669353235549567491061756247039152043508689574515694390524545717089636600097404806695086766249571916630290437374821604308856369228376679257248798359483721762876479062875268465081118139553878995968091290247037277809078214886527632993634447841817844111754579660830419015262156904137401914008075508123274899279814541513210491790893682579418045751564049176464731481658795808184931885976143474035138672354582331203378814620825398029922099253807630548749192250534344378723764618102388550476356419529900708063650122880403619449010490317103069075004569123129633192595342956094933119345854000185318790371087595952266457943225570867512446975141788446215448802397370949537229292917376662451802132432793754524489981150444636472860388241406717910311864465065153759325409122196691654749387998893111236618906278148911075529320410773272112646941797305120091518088169859148373894759939490777146382989433407680359757962046540618227797277835657772315887606954625602641313231579752091196091265387689194463005099111274978524596407405222406884050515593133867080178331698045475178889828769868196206425211393594360254384626807384114486795267683448336930756219046404007672024821809955036879614212352607719288085191666222091289690974684385811521539738900488495521930465082659461054022932634010148385685778666256104557104876051652402365975665472112455401143947309420951352829313263561859305035392070941731664845642840074593901747693512160898962719236628156423591759769999305468724664217516167021290979910199373173692297345331782528454474976170281749827348503463568700432079466743858667529894902686712227036047657244774696634382493463056329146594907956373939762654129697393327932793030844428939152901611924482140134481393910408451118832445910242595384835693611648737586229497985480007429622847888598019731494212616381798336592489233017698617016818176943765203578097122276883159901301760712706630136954936941000432328742107111658289903277364630748755290251822805121602230876620851849533361254712067591661538851595128344507132666727093750363582121309247940315299948172376787892797777197464331631946275718591986904683567930463552322611353666289106460807537660503024023430429057857236553906861431430087706597949941113513631046141557400018798747609200257408241748268881217184821619029229496683757797858653692815478831690518731159901789595727483284030567027429148737714421134416231430702622914224481835167874616027299131564455856128599419058074136277289071015041229667914290239071160785977123268186396906415840339694208649558752529299017540172308685833436582443999101951831376105754415338667687929956715590094903438877342473818680562051598940778779179974537739987117905722583825902605080799331028635716202688150259805034952843637725539983249006830097095537749817411758724717530394386682951453240067518597693405996348166250495668899301010324643801754316354223184254924821834088491418529613931263104231254261257257432107491035121975944628121956582414416283505896452240029885683157610790658235991664880748058505123636370049898505099290032723573740956299310560468613774163668982461877655908933111819532984232145777429275203644913973110039117418184185757228735955518545518913332666577291140199986257388314283991073401550515353480439072955193162638832016022123707286851904430740993632003594588948045171100132582308482989142230906671842729808206469383144303550968089575743282981926889989582751556253692272212628417165076342275043778262170571663061165803553122932625960354268268547310267167453894833366846405374191714338021020513285124771639628194842356022306233920873121003924556646528572193833179826894281032972713101478479700583560334096585292873468367342317491497116517034645376161118920931857440378460492029764104667711432129782403722510306874622616073048042316679072633400954029104702058837464213704397486057725414630185892040578540717584874116464637622554646810055483818051829068007906275287799580624643399812710645090983802155371230121745925089680636898790853542928442153494542486396139927741829424877960430872084367852756317314421269344501285279040388127987109925927682464899944611596000649585258312594185810618472196266903594113886069005706337861923251317018042430079065531941510808051793813346273568833789752219172986103537831635351276065211125270286901385696316868223038572691782083943593017998805383714731725674977978325460757135002074439521701460672265160741149259848380123131007526390545019520621962098976433235289660684847658736479731732930010298901400253348928417320299209528761626401587268138896674514170895364502833803344175231364666468032224608575523021060532057255739260481731290082101124876835715589426764685414910381193557302027377395513040644131655565143991632714716942931741361349665738328431025934881663766697396536637823281647939641658018215703807108874931919150980882506880121793102441096607901960938898990100947232858529859190048324931392108220066189051466258739819919501747188443673554974577961808188021426987837986097656953742299060666132315124609845701650764718546878297603735715251110177689616163643906381582415485518626180033016682440139306037976588126952075120127828176171358224949373667492581486238099765387810630967210755843808569780169170692367619402624880534958603000625949011342117709557339420860473722620417057924879983136551810491146907246952127079987094887986730695407163791239169229609811000665854555887339109517887465585586200818807344919961455078201004012082637206583194618503682707462429650736197576231580796562682977414515639410831610840326974336572322978763293095618992995305502162142023888479072935869301067017258751367627606230375456045430726373918370985611469731663273533378676877228035901998028950872239563042675492634051000147623375198265774487790260030178783218855003002048552155664260958401506569506914191008971752613585867112927001733970052084529339210158371736475038156625241265420762213745073823155848474919277390597135303621789829631376740016222494618384438459993218688556839290163164308739791381114955482817623450949603260564927902383771098367712770149965116150398290683908198016000754820199359916190861008573104285875854227807925694909094130675055973007969818518032230379834836102889481819852684749827656495772140342008041651621462640906784345814494858768112944644905366406933546531347672011365038425842821339838954911735021775638226970389962920997538730227180888846687405312516478944634148600285331070895774319082284925640501610116698414712765203508494518004499742552720102321884817509154039842106714408929316834210392247084330771912974522354497855046625543826993812034464550880109452597696372814676431040507832041985034132194825487068821470242125584132766574473151638105257306513691101332087554680671862757186635055633989892162442167960702776124313769642360432008113262726366128486346878051602870000223138029647258891245420479531714734879829231923892162093592189778314869939769656762006416597565040910348148746007527428120619544557813753839452938806764739566921133358182671253482524783789217960066915919193112660103650427345230695808642576261642006525386751704514844219970692080105968870904519239117207891906538340758548072118670387567146105762514910823677824365524355782192980118860540133771731690412685798890693507242316882277610059723833900880828805125396994419910472198260337729832717403536920730836633588301700981473120453269008472334338571017973642210691616218559196185767592724806417229855236363052299384606850669216210558347176172769308978377887425355201658535096513290237102390403917582286160256940142998813605232379652956151139627507329200974944981148469642270137105624538750097869855220788714008270920555374883803633101265124716967478058719104888610967661022617409948032566181513775253874817436547083246217483353605341570531009185717186237617275313602577886283113464129624127754937423108270226491702550397301589174785245873178901097947951657457039066365594919872669414745085155348773172378572845340927583486116081706970704826812314893749876059836369106697985693725133054644181056971310133527227357224359396083471353112310178754578630718550412570928481328443903068528118892495764752588646183742997729594343118802757971868124861623151825315463329853858991306293407000173721564207910072318503262358000116657424488965513539178876638842207215080417467824131305534298360752866389802773841989979143855916890612793935013175331668162514739421228270405751020559924055739122846497297236133678960623201994864230325043413979406268192941834269074971652440170111619233898382677579331889869105114614397746065626083578580610397810849205718430611082144476354862709654528761407055981602235470068368122121468682612126999540983021151277395592543054088990464719697717455068835947013435022497800891472958897018999560178670710940226621754073013132985414317754863273240322596713348163459726112562031352615930925754342866526280712566633133601757378776071852731050229683760993280810304461125227890641908777449726598138061065145184851211726857590660015979616361590619409891423662571436252480909789530063225328807365539692753711170608170684970557571429238975949911152748241979253720596908494085393277740848388469361500648560808562122734059100883251447149398847813686340818154310095617728230899630154441352547432044093239810062659243478561493525042435751329552837776907376155437315242522780372026697262260029881729201202348234956653689961877660342120946086897201680556387136403658290340797314399534557268161326368492427617585686413187230710302505821511729303756604972960389136515224018766453874135886550427025643522543377804776022138433372112419214657403676982422397490168866611988831314387492847372272318739830045688493700213099123312956085475435431214041104052778738970394764257872474323952164925716791418314439329286499104923694662086107062629805415712823183119039321699248279093328779216759014596702579546179060483343159363713662885369840771011850252230344685868674299689876808572029924645147106160489434281118748472302878621941634866094683094176769711103177406006429302664971855855303886155387969098687063199016496599920407196615875175261297816016734554336056608408857104124160133833996560936951278504269182419109609706435061301492027814222050053971437610473628206815594903598570852684081825734729519514654423543637069552984302532786123468092353990630328211684935345287333421218981003751979399019334535783698248202117311194342388923300757050921405912444564767265949635212311036857859493961323683009620591157114606408997424336836972146442475822454807782365697773327271024612239054604738977782394035305282181338612741432152937162493786177343765592534086650163832958006866012564396658177837359305255934334341100392049115659648883078812771360076307397828268926150776181715655524806907262280224875756131985571044564886864516512212775640471257853374645076449454808054650484870943740410780990109259220083146027339454171657352559070683093104566212897332359683226344179323666199936215582573129448298848300409362119503232779721023912477557691075158014882538070179061559225004119021671364001757407673112959717276870928022744371659633090193888885634235910203685808560893367524286863559327112631736666684184389977387599055123542627693866178670555601009671432874311328304309777275015118854971526872606866641662870469080909772774227137369662239470014614480214737632074943307388812753718603938651656587981658792531205267882871681614827884366053264087965495168583218167023744410603007182917667879571148634258917289995589195958009497607200187112933705813196824718270461020624025287980273991474412502203381680748496242553881664552774557669214983115051412706886940261956529018332224739563321582103935688632585902585248169865709747475644185461757823216887815290331654104271447749813924491658515117603792316720875491706579264393463642030363554035793147376576441291549628057902247721291553579501774354905964691470979446574052977152730329577269990891386897226683846807791271167106138681550219816117542314217259907469540547052619069420614070937875125813510610912404672464453172385606590868473625058534583552492942303782238358524357537282592843329211535245115779346453532837954957852001044524232181793066161464871146526452273540623721941006666740132492653297209045977529317035021539570176962665047198856492215776049292323802834384856809541358165759980447852347279020982147824990275940304121648824586078561247039837714636410502631253692030376775629534432403221423711843418749887739515409668045423752130715181537388219319507090064253878510663294110173381119501715190710167448377060686129864878797015836251035998879451081031353596305198130774890578328082952942886483492692791409486962495153468081482462659087128365183223205404150620704372782657154686762793494785356570257447167101271718356405743540643894718032857055436236214736226118048055822313767629627182902853875132931462706345587005033465965095000505292494995160216808914139319623086932182717531324197543814929168266061385838652878323919835624929236363039888984686297383676257039169773711743448458714223268173402124657928473020233285946977083894851926209157073425990583590253611436721631612538184660258704422119842678173642350722567566412045590260313107838007365008472832805108454108389196448956284705107760432156846210894724381134851310153995682690283336147368129525791726818870311821747419926601345498729780127630296547745764378946884297353157965078879797226894348736512472702759340085162384317648601503660387635991436260502049728681774127291419076871900773808912636620846311951689946037383687887560705873491204119996587513725848243745463810154757192331390708748518702177966237336818023800091937164066056568902607226041015191146983705228109238831042282940551744706553962916507135959273446770082799207321658182148356922918768402756173651766615460148301838410013268746886020948441885159399291970005078521860817366508260566981952541988334712017572311256733878158707508221205814981938909132007841072325927957253378589322553199601253053415395953066584847286192121463880206567648272183148392715478130490997835337063836237933538938125926714018917031441455542388814148347931611810224958244650492927494037416041416104087348133605879051124840622114347703423623224889649112570902535736533343677378007653261896942657575320572617095501179599762549387893990356415915499149366950049242089164935610344791718232658659298687772482682891355465757590611374721339249935332285794659279311210185081127720392311310249812482360500210646653142078819842999684257604006413924417588749738048100714587005256266242734839964035668613257261637634273828868827016560204729370199448198740859052635283848201066229078417228801376708857993092799862925359784964293796274209583287389678131466093072505422324750411741210838911435096059643464463346131160576719895008394527455337578255335245651635275237985371683051552031142802440432041318205306854606456296972954389612787284401680000182917098075033906023501700364313429487608490318838636329092415956647832233423097751901925681822962763898639547105082861871967525024605943508704098392609840739952229958021856784520790816338924388490150455688497143763996585693711810554434685855781300084624098447783784898904804433712894430254095383917904346357548858750672932989062492263000362763220613287505464787987057111461421329172043313365977340664042369228952898371860962236378184547150718527200874272355037644690542431315354453565844330400557733076898916174627560623369557462819253551020063094296325695266494472028353612531721489912547713559356725926226625963100679796543909901012487752591519408343876976947743534750619591081982223362829971192291946225458222870299079889866173445934427967948698559031623213635812481317976239681660719103106550889997936059616588789502618726330135302360569377259374427225244610792167558307451943782236804189991072687871871950521630711576420308305561176760446918124811593330316383243807249187210342538652508738984178472072804367148406927444490398642967300110944296154343762706295305025729470974114567830753347295515743301523309266912195484083159611014115492554306577789540243158688079268245031751939828440645642102189592689500338896321855198984937929034688083893238789962308400981834144842750555356029765520085471162376920779020100994383540519792356521146126798195282391338892606290141120584634039123937164923327597453241843236171260319839881487459121390654758662520521313740861993366266476288393709772893185246032400243723603789057656662727405382672837648144233244725923493503454269910618890830263868517443772614765648986896685591293786918010317722482534335862604309523294751743178331239907470826537637707175071120955865795407996349024996280878049758627917726929341986910686483321384363224272632490417162744675391728181022244604494818520099083160491289127988345459205832134355668576592260240346862835324602908287413557179218437038727369434224073249732895845639262300067689109838202169367542443380075456001392307631663580211101503273204318421885681967406461638389837629339432118228958057308001908111611024014031434684892342100712850464048960571638975456847052479498540511301802510069671636067201000897208297719839062903027600614765254017923311174480466165233525919552209922859868897292788718997250287737410188665100387957945370132467194267225347648820853358587422263311540004196885114527797901898474353210171173227305722749120154318398876988466292492799917037834701608640388115353573223486285149094750323872492989411867186544600445453394546345690423465063063780573904488186255956413040787808021103018263360994652542275700698002796848988447261353817179600850984304690846139769368970121406050596459758407209446442445283606402570003109436894918302747314752306873343855648143121793300041048274127670929651931657880285875938902779659225862268304588879585321409690502826621724229182779354983523699747306420304346194994962081065260248399993950797778741396843573678978520913922346290157850774156647601531145629058447936863193507825379394164208813681259053279393047239619386750113467696498381032009706273962210077340206237308731177456119841269565300922302737713994555431006862033066606549097621427803357742691293496499105116815357933878971675337410084931227963525552322274810640871141472685430378366049794021592345351358760242786533993596361024664912452348122648761044477630882392193232268816402874888727551055465817844692830283648466964250830285165004921021309306156073015215878652554472787462697517720071095865403892090084139182465141102168978138347192706506993077242571653365472966755856458003808642808187728312296544922499668621487373332031647369545539871407009764857833448700242034806717031747921733791025489775841719578201702846872142123013785890801188730985048944172465886093410298713837439113103045454025910446425138478270306867953797792853279522543302451127874105126444140110242803474329345665238283393817154650934044991285459063682459951130033213071145866691545797248579999137243127119323801772484786941972074584742770237586839276405856722190573049691711694031890960376818299457904609083515654002666961166265507255399488924589157266794587868340908175779133639912738216105892526514598492604024543210723760204210752776258151307434164152853008761731191841817651320107387572394948249194239640840062230072039486068720984031054278435759450058203149398456227158386264741433577409452601243868123567147246018836395344827273213161722551620448496205682187974611722667446808718870691886594031524914293274034445410013568643198261071993945508839554069332565702200217798616038868361954432237997922667150233254663597520149398288378080048464959957267406978086615040551605857921630002308203894630901759528773779316409546846628289375883029249625276758482060671999529782752790336247937315003827111297997691896892356270460170664145937034882711458397067788368913552806230216357336877068571161018349118797510277738121039931547065149973362767708139957050596397484759499145504913538802597115592334471253791538805267293359570275775209668637856561823131732580236251268262336404320335528078901536391032468493738152594393395173317253619368164729574873733475253841130739924801429702708359723315446517382653744113676953605235803313596067692327840678637941180875248138345355520626709736079998680517805631776667984675013264923586095679637367626777189281323413500047418548840371668549570093994444164887092551033888022170551101426655502203973336289090648326850144921998653846862541297741438714816104441499655352818108490542499321739122489099011360020023457600589761136289706198684432531166792926163935704849843367728117250709689274403861110597874778226086722268059437823371807348032743621335766777835296007387715818470430472355721214754123771801112179760643440078755164197447381763012257416209696056540332737558302508616148396576235259014805226652550633921892410338874864949775211357502996355696771493315093579385510524657987814265526482857311141620757559548978661580055899448893238223104806714488741741620141027802943905268171568477604873696185683258326226377301660389049466838142730418805485897581072057093842227136192615644473224014747323553407542929977919422264337914583660557418791577829088371593736750394164361597607590831034250719161639569319252134913442787362770772264874184898174632485541013081153524507922772617069339424308658639068710631271560492679963951583461529970853666843028034680337162296665749458922397734744966513879233646652626267932830701548857129293810129156277507154236973764289537554412676903489271556782630626675880403148844587976700207879321508817985506276002831428642609516112484861140109661946167446787100673111619528836595916005197602538880685099703327948636464222119463183680347094511496302540871737898193723431344576725534230208838332216958921362483601748224717309910073247086830364621809500203742147396765970123214227837398554464824620878772909257163662713870979371025203269168087882759930145862252282939599236043027254837321064451190103575592439147705754398247933753187496660683588567717891900220421433883893045312184515456880242732883793687646632502161733548726964245339670399930535029594181966877188541190458204518487980574680203650753482755667649193640318763347698678368116689358069230543559327259136163032465006107406481454931947845648637087040678860390706653276048876429483314629793677125087604476553771302827140356468735434803547655012862767733559302303873735994187228203739905073372493346755571862225650385395372018864310132917001092507041710375116508005967298148481772194808534718652119465628372128654788016432422776186305175585737506475149713634851172691088270919665241493636882591395137529038998698790669833684649164519564314793309960180539493500556081744513250247234339291472932302389663323897453240971821121160073106084735878200564091759348968642315474030000968040803354894913866025679777760718384084499012978349423985121651654416140986474594562390764708742556659259058386383324611553146438203379801112279503492193552827298726985745697491564509367299761728602056273680180966112181797340274500917182902954348385235434874872003128900054752126145321667537950559019309964872001407174155781785523890113171852296834777946511132394377295158897251387638172748985110657969603665150891717076052057677113291143736036129342386371273217802665308696272876525327586394570832185904257241758228640005135742852614002860230934742439214527942073619643738016043547557973321665653000551628250142372532032746734791560590955799844535583411254000366693778200316855357263297617184734550490179393669369330704570174984120295752692158501922951354562367632279311984502493931776690584290631601757147212531079007006957769729764459378603068102921037093515097158256097928450082258100019197337775799177853345015009025111384087710524612289490319803859270003025814766359442826045218125597858323125320104439798641635537854677020353510925024969904308623751007857513917004780001672190512237014864665991837819597701206054927444869490166706452225467778056382338537161668203189122566105114606459988918653011061895751625917856785790856737199438387427750208271954694246120274252788463859651433917261228081708110713923945131032557903844989440727359522476487138369436077383326569913624067283106585698787639629197240647232956866583463832773012836136365647586033703893032108992539611759705703285026030344913608585017900891844075793358982459957089107140319020210591824396311162149870232228732658552697632006249893588648016706949340292412106412698481609208973778672788523875011910670880255173700201884746254097021352308097270763093649301514804853008559808349932201306869708593120108137449882928700759489519630437621437365124755899140597057063649809405367887910276189539639487025162257719686403353260492248416338898491590954197090909134950208112712051712566719625394032430575638348909793712272999472890941062390846015844170965813209356228962556509800873368201984074683515481755902610486559797228241910996118438475130553880444681233063695279990272446688498724001405225269159695160738482642326981568506567173356617095958450669094101411393734018375596568410390194685629994880461422304937600772644193182298470398560029134031307161759738390868023754967327889064282990149946900506097066092434281143485504864643854624997176071451022210498626232181286965633621950737909894949508917428875708106664489769364350943590644864876665024780435946677262935355898207974932213493891894884034624376537347875573152819642407366213518516275574583605631999289998218609494137941441726051690857473355899422641699541457294128941859573521547133388652677081232710160199281356927410537711474232991303793371914622177229866120324265281731342013946313138991458948387049959133131816634872112297682013756882683668847014329407831342430646809628471274966993361390050717982890101827619268642047798521214619922507607628041716972262780654098260847230467915317289693376185164896174357162715711694282311490746546221407550603631064299165457958839101607763674655554468112630725792592399602110543272435076531222224862636553493996234103534892202232330704531065495183477819782647805064918945676527203923795233282117674552624657397854322526951215366263817569795001538962095884017265354987822900688245321972570752741568459440962497408850277012442349328365663208704150912951588439976774621136036260293387892364709102491226583762264287466153236291811963978639713747900534994211583281668532085176428099588052526010109075641830056817279678624035797727372588796139316364830752812776142091385157961049961617302306685188411013431239980518047520605598507330052092044978338207176551565231976784338259056045279608302915333912818153151702915389019816699834521042956442419605741869592126789309228801604291382422496034016762128731250200153575402341635825164535387223021183288515909538361003112623556208404556979449086388857875827872792939663191763752820706911378194215853175115107180536281110784032323940294272732414598199985958339040293822540420414603078480433744260863071816456015628688050518059533796955924326396851077602816383939578203182092236148633102263747930570145517192430268886987121782824108387908358354432831895037975087887413524262107795139115541575108981716532963096508358408766189562041491026144035993108662367689369439009052520044572241163516740067895863889592630513212495960000119535120462081468292593960004334923012566233925858021999552271897538711337159247785767446749041662405760209956486240852000509987044665633277170091379386490753867429016897373151595456665484174280374442706181518869490264666492396317459776070896645245722208717248875622010687642591776923741274453186948958751590315133667064898868208158123443540598540207221563480851997709408362655189623206490921437569312941452815271152225240760310222078430777607934465287804966214246829606709264749852553886352402805434947653819140496580968942263773246976474453857211578907318175901541575318424901841913610675322627322968506931194059128884737440033621232598524272319976135172994761257101484045219219264151380601300322211220061048427014527158981369609683857069028233902966490968197336778502860267679654287491409572092952521145567980748899953472959645649165046433973351773933176006908613580452147987881212072845317628459442322530423608964539902900099879556738464545242785302153438401398372261516976547953614878742550451446590024300162050664543090312724960009304811624376336708344227986635254460019527792066829889196631525568748610298851601916511610002621441193389754432090901844912108837319307265712648551550908573941865638942822590913798394107213067501905673290616010734824647706351964973252534387440297994215722871001917728283426244695834613286283751320954291438710374790011650913693532141571302287054513195029700694141476051441546961517115680554569198987163433315207947961007342213137792696107948046915044927695516918936409308538871397386932151924903919796165972559708757156742457064890921732480952617045905534043784108541495067024942319970351705644441929904883401124313856355085816810330815288351245066130758037915002202040341831903807436839916037503286161949661936250435052622595890177168931077691779225943934851518959826008378285459202021718755560950588514137415244833061156112307742027366845945085445963882604609907932790858246501077122271846363878258372652275892524205671050069247982420645959622360190580018485192815551137988058749583437162849215492237105648685712424032204270379647390223874136644310927443479404359038810399168246975118465064604505882033594565451061265234482886456958323163270795439775275355814112752807325827803560495634446969459276955454913771827557702787339274943036301599559069782432134211065457309278744728458066589388308167976602855065877168843549240878918622858448883093487298664202176678531126707549286798456915956637050824626069708595259344141957535795322149713568579558254410724346359883064335108787142185029361604010010118688701932203197567221568103306296673112087805230704468944373076905699296879477366352249395254377004174505982050175591120132563497756707536361232114780266983383972408788330327514743226839983676611075319573447713891331468881338627639971843379489804840257535783966336157865663159142460957663000419569758137255809054966419228785993407035635202349835849129097197224768499165922575951492815278917062688639776969968063102683783365351466977376263054254421833772328446780623182828086083475080624480383525501768842502332684340578986916022544084728320252746710145855860945070717434223856112661242546850948166994685155288413505670414096709771249233107571217821152690487327177556254627109778134002002599485404726618575783652932133383345872327098515451434876274253840656211899668474330490770582964356481689027360347626067087246224910969502247217009926352171679909005255705234570946891873295235163379840416900788540925554104161064651796723681910505062463266564259099824764716764590739038761564770085259819543735537902153811424029083282856565731724251888471774672911961474595343334270100598847885790572328329421681513841123818042720598540592611096928651347113698042548746795019561224694375907014341865941336311260458009865596686091302462945992070681572432705411864730275313403623097044706197345800106059515888862240736639941374395169140637418071259882692065341732762666089887671101583522031823096799698559676200843313815519442361064108792986912130114572951037652830459309383118668048184104989883243532961422392909800096482794650083391662863449898119210052325336554556516724257610431995833974353077031532415352576325542133731457462121106848318253252790011767085741575840310657715761873936925104727787571264879295471049852231938153193519692515852962866402109688846336215183884576463211067368684192317432705309447608363510237264875463906078410758093481447229037595997860567894833346627677567193784738031403297236460169698055218431111866385698383001399632629112797829277005718027355614092189636598905033579809907649168544940743176178220605976211321532969907391051039336822757833933752959267217005520909988525766534829429694520325438537863138573071881595560160837657825019677079136916272894270860170559497620317494420212200690351464618068359275054747442109493990942274591303320796837077344461586372426070464632610414560371255707916796291833972337447086670648189474839284959177479645268122476000686712249453452285326205036170303501551981937599687047520127302269170950896103041931323660367442755549753997295223541273931977757535818457648351774269864029223107993677851884075151662418177565888796244710960633912079754141025962121557834861389199890162056407820457957735807325347178898604091116642252937785514281897810131206072266036521290876176452636819478462807867934589710445967633486139765213540854652715424226822873114666601968267523888668016008863829775208867677517396747632980156395609377918602327698618208244856846214027266624455875961018318811603490236703193758869946609185265706526966991319663940743936362370656954793492994952094994343581210675949883768490988733010337241457157778973380716891692293246918985638469071124018002227624232155906972721418280554804206680568241091227016291459420321501883653835640520475472730273421906143456757513996856889677875107439640285268521407033581217158071318072704404273473301058966445912123184587036141046691983011347103068897159977840410491014039187886448527396960447617053829856234948423559280279348623609247884332846193248987615465572341119840217270192831695560011142189583780691752657063255737429257673183340309010334055543211811468451592558898354173970719137661278821823995733385747458764479838981221180386077073750056133850224944087193217446782748573748055168185496086161529590566806583938290444238928161648237739228966890290357436323630409753050955477997764090446214164818409710802349784165233980583765109939473468400917472063218254202344799025459989172219778229687237228060456499083463941946113108425218760768567730926977754237053159936213312386182657577469265900738776214068901117422396946263465568073791775622451333085261312326452052153936315621538230257411920171716744509333735191260953600769993861168730753898359904597985629305574306745155849816813763846093548720680275083981829439121672024383871711110681111364385014274512380886574906448954053232181056559339792518177310772949656656212070249069439287711392009249471169025216600729320420548655876765101542393093713809923926546061564471358095037284914944294075912862507062508418998485304402482542112920916313586892447876269530081488384154462368876998202335393304460616125742006865812260777305462130537018161923802301677102860292428861261836083296092848998166597329089144091806610775710186133587170146395550906279565818590553838544381514302446648024551986429782569588982218326325552706102404003689291414341878317455796064620786440763923929324477757257210916025601332873148506719994560055816141045199535564088525863796143687835071305159491247332632352812815645946148130997336405383183972979941632486453090306612472086035845506405471121870208207603310993023488154092155422118512042770565740289159788892841314832130649767668427239864864815130453541698068808630952738450116038384788235587908920296027164094584973301706512592927759627267373456487778683716972396740235747106304766229451650730663095861050315894834680502918779166291682769576063685467521147687292264156675899248445725437267649338253940242421819945856903739890687169388034435423151591652725533209631523671606679450893515330604412832606589579281184042376938291136309957119135763726126637131282555480051454632218755508979425059170176918287857516810096660458469992957964191392463691372853330101895286310321606017792913301957117093064567347653641119657271193492291718237599775139991771904501298169831901659316679856152056059921151488778573293477906948295708657785185984989943664140317922872844314058104675004654956622352153123313082975082656961348964396863589955770043572261934701666457376534706309948747924132676708838275382545682473813317621501625348229293558626423815078540587151594109716766860535501484614220517873886930743360306543815297311158929489570467238143386032088145974015561414968310187416579977445009983639728648907085990682789327724630466460721926170104031553584904574493507321681462065404640072052107663740038574588871281514405250833424725342665240545819995036688748734380929172730729223216624101354642933326504598893376460273085603663433001326120912554546166279014861117026550076969872083636911222472191645302822738288056609720688145817129432239108782854066465086039467496553951802316812167113947665803992527100473752375815412470960375290872547676611254638516581476410763987637733750007018884038063170020706784779053521836312875564043585265746641396799411419692224049654883353427591170659560634071497536683371469608211182799943817893722000565506252253821777400461028904106784217237248459584053128406796921212625115954016330224679876126705777968789300657858892910941883414656522243026314704512417000986938652485958229153286787758222174501204586686310469172690374082367909773967207757747853144964458940961121716537941788076901027673348860249568120157757232292333922468655720648152109364666090719129848454119581223714772498564945701346993396186193079475078327775364150486593500005558580030929781023121780473655944768989876339365790852518904214597284159741894762482427559546153690521133168812894732369766619750544188877259273337671750664864081023033252300654804190186408367030675820529753532627856377042161166366346572439415304408377716023864071508850115129183352780827152942052184152068819795605854751993499819390692620370544636557429870716848447751489495755487457957182928591761534899563867611150555206538132859638744185768449117029832339810875821118644578474844120190912608112829146137045733201155629503561385930333212604635932544296639235889415866813121470113320684333386941979100572894012343808246128362852778281649050308868312606647084793229062562674838008845731302668491895438585404138551636243327489168473571906783870746284650158448704720948931295564637204552055093253851652192939321157876040682713166093150514499507941585911067063564978262522816844705702650767734604050248375838079602139672510863074425222355874822318760418676933492819409292599884492060320263550170409000724380725108027084304526508247849666898864439624471849471860799329881373992409836121229676406842710615508363707444329719559016549475339937646109197658573190137905929812676496069180890285140312695698780896729938413077614672300940023988244841506227845573137844382055060509130796499264954805423172257351141111948295118186111218647792116426689043605377263884922027464760913513423044261323514676475599721042905468309627318516098212731156270002153950823138192914454762555524326505562401760602388662151687743651695939278344849126722374263904631616221873208208591483297455624145290478775397400631321654295445194762845668799786704396671679539366067612146754019225235729492331407427581781336820906500402714453527257374052169185289720496145894083944964366286817868821873351393766530670450862821334638077904917055867759985424091382961239015680867267045075614949718734126614457143582610487957462734788620714379335383156718425661561611753724994059894914265362059770694511899413806668832041459115479441952542300717589967693826152605914212401334748886470830432817872183946398322075935528972283927579592425756968164643366459438314152261942208097736824716718102352165802624756595828691645502564843818063543169830596942427315018453252457518262793582273198897752734717137321845656367931726373988012792080281450699532311946106696175735501829994177918662093492029863059836966265369460515798256587597640965850802829342409985852777865989697733807964560698439717472770313838422920081935949466545220874641600215468087224253633728628241755481637343595224394700826251152500631396757757931881855932859276978941614341899227929982139534886408274144050738212004540548892673493953196093195320954783616021894583406829340881709468038760711567233724711371727236784336194286534325929901652585422153676155088392112675331395887619210210183816021453521499718018501880038074942692736730799333959210750608684758778662838152052364999147700366290764407597349081582367553478198176394976690756726738328225988039437826046754840124166220206618483632318961364218620810259255034959305137343696334899131569342025684908910312383200577022613172583667490781454808580010822569380988620333871251144942997503417197727574169272095682057279668291622376523009542886195792141488647901801242131737039440694655955606981493959859036182201349453857446546271473686404635746046567426628548461614833990554606848945999855891388975572155383893987458959687537279555028492640017010991739197998473800973051739778220382150434938759360235289876843334100081138362345084893165893941353755152403419444218251981666675201564339775665961926645297181321820111036698601466662331732043068766764452273744303203701254924183797235498125918828014668110061858954865583428694973287156150873585743419766433800662450491410998744283271729498040271463080911404678574655107080347677311201439708160066333028926070131715437017102252738905850433329840281913147261969191489496628129982218857042494388013166142887326686526298682604850606464647583604434097377678216327213328091244797826197976861173241542207100894169458563013203701775230356471928575074014325256448029995749793767952565174537030452224813757373343613663636983488899626627079310361088468419337091898491738149580565068235530397534765294251457365905218168804901444508340366368107476074032228706560850321812101133131679999563998222692982091271693398468056460440136410289278415572893255125336611637097323567720968126700055892595213180131043132925657259307636955826660682935882663924231024577585527551345037584510062618613621422777032226319407346897590678397442343554492029220137925921681747713959639324659100063496643428739077391254987909140966314222503491688555344061256125076490601163253971517023991506330513687949150112033596061671253432647837819539976152666465053952138483207648975269212610037790756700654655259690097907421030753409511403207613333715803092614478175007597421263557337757068567000638982447158464689375064002174019151984296500576043318285720122097813466811409646046070400873846031497841934059006899336610632322367274679070487862166217258765883076840365790052250848143742243192658541393258489520335698784128280717867816549626967140160234436805968289791803101491715632353761012012317746204261303408959980752472119062104082864965022435285617198857642421654981078619800383443702723305104603933115315278328852860374873223418005500935437282417058221307709255122690284395209199860510617077023440300053447447623118189726444761078558521520413241082652869382292980991479621942515933410269697551027585927411126790269513049256605280166496505905299853960025407067431367650484445382995684055108878303318355037488536109874941096868434800953891132144493015094626891528641549799773581313445000148618627601369360768101739796765454608324026789994828060910402769085362121309347865740081708716709418201002931956181790242987654291049979501814837786604374809887162182099824738581142451389290342832833973261661080227789553279097924287069291301278419117236231237713470422076875212651529709365489746113887811957197742036083045954923519734665513473031840118186245620198637963197378139567805375815902544992729175324039257302943927355874476655537336101534069724807854423001337797733585944045401492600142931859465022524773875394872008244467209633924644226843517198258126661485759000422990212373471022347346435492024141910059093584761997117796428025745099576568863731842243501516502246664701177228690918291334916094854686849178662151949102083901186451537273257008549608928514913144512259188378540493346813241072787999481977211390933515200487080735889861612944456597132245752285355875745082265846809457114653764930596841526389696825814775181348089058441722845389243207843079326226654109615349596029047992488583788943234644170441014617327079497964097574783819780988199288355388164534011335486089989168129658231494773413245066015007645627327442593671408928229669827410269095100662541027994148500865704762645262175625542660034609515287290440277767469237097516395337978510552377893107834927917307387959942216254226088389423891238779070180244701700590517863186295082497773785446181070738944952520437575297322934608759974271827153905721409846597843547452302949576966451228139529058724030389691560879374751221240308943620455194066750952198456759897946426335715434458565570393696972961304816294912166246326531759203708651670235729436754167239373769087565460985727626819533864690205202808797169761157183455865576120034241092768406263170367801279224133602858367977913355490368973984605927163873473604948489362342943210046958505958188104908388718838356020689667805084804412749655479909375381063310410139579733935042323574399161071190957583803874688949313099557919937297826120430476210702838367974347354250137823029061515606141496281311790860880309290576809641115010294810081571529537635430435100680899703654446904840660877953051513721998022362818180829800564196617001447364693488943346013395185735750096907118517470908595567861101886576844544511622601136357568082583426445101908620546802099722417461785740621077744374376167717638848290972694850614109445420862637860800537098780102807066808715313193856821513260963046991192042857978590451747684675046233562194567692998514577784045614795605148016584092859972915457598426664838330091847828688347892945692977999013359037677871839912297031433632505789686621637279721360757019105263248935682714996315024226419739040254606803352626738885594437326859671227073440213886421218251022020799103735696440395975067278305892336703653754038596739798914965759166083260494710798619392655655712310150258721777171633991929551180383320190159792655219824544056202530978726822575130642410968178985182604589804358491477836492642574466008444426450677503421883641360382988659606505956703503311205282562394977346079459670254080971971177390197221080262185326221098970957228505103573485898175535779832581456701207645084209970061250184783952643018857868040597262220988445851519811583808591483395068632438482783530217062309239079279611798857722546707190907792110714560970422664685428740204426670107585654208977991807010444997322585553521270465393956380806988759860852350225553464298556505757972600448766244626381277149944356059665384863401033539383838559494400323266504728977121700353890329472021837894500058209216379398348074069408686356496808873458268821866183113349496855000765071977584155258846161940805166392475656195917521362997099619920918760700279267498578886456436912126563654755503300069751188880513282040362263689782630859580072587037952446692484345711659206941921485494605262581455035775839740504677863467900117740711839288714158428396884909361241072058066524495007793786264484870498127815593346672514617041505466066979389272386256377200512687120595925284273589898558275353746954572980956919618570847124715410458711908510208966562037524749867633853139591933840760226979945931802349488697385048555898091517833381944078442279051349377706800346988206079470974486825364670530153710101030696606389001184972241688520714097594506053575841707305749384156681389859394439545666268204283024898151976540755240406290610055669811570718437050238132594518920844987264223878350910383758774399127821438163606421903837640256790672913627843300139611001155420488205172971235604040773052189495585213640660407287025910348750786624681479239420080755101201774913247937996694970193143980514531840121204359696258010468412871124404448237536056682405179089886592975805459498881858704736517453710291958096840175848711411393865251258240052996454360625267921358687557062172329173865258958168221241343811144736048664888840128117923913509080253665458524783377778552638630145471220530972368495293852716933933578787027215004732646264305744698062305632856918626619612497395244483072865039722839957736293918904568400377016874862619337933675294754798221493732918476324072884202429104331051171118168058410924011153623875310812885633268937107709238068849487422110204911886194517458240470521847598370470244473467678660779404408556563797919071141047603163109547106008983251364262764229747814219420681614838685306525423128024005972358807871034780981840038779888543286877367225728074008727810263864142626988435533797124504597527212157525107366110425535577043415543886191755582891838282587234661788575999729644211873259157771332763368177123814673350670593943146935468130932963708252200154095232491714990296812926155878806989222527697475194629524402059865111862445660090854903116553690242688283294012099830995800205600615811856871193024574715392454745653328222371852893209306349092607033736402971894077946108363694261118704109319701927891642634820468989774326524979369999757053194023146651065875325960427635636524273272543550315325075113840793795902351194193763581060991771243076077630806293284499086340018451584370013244800704401981016731811161223404415209645717774682930464275586940994162823127815634163328662686947884243576077518494325174686696429821612107643539223829143662066614827016407233114130176027041460269374341725108763901145494598158466586971286360066038076434607337848565502510205379542795926530736200274512696993289737689439232633007666155564685832459046583600212498719973620747463869953414077172744432370065605380297957212433093295036499736557330205180955711107304291798232997366633198878553848360867365752885467813308612517236929807538316415500852704767067132298885806225126521716496410486349988797678544877101521995515728489214111139138766404491779738638216650712673540895033682051167878634317994400815490809858302310852826720268182421180704030232957042720045772579156798526799775003089949393790908754180314618330028802398500905101750713016731789895600785566395116039137871511399423434904123893368889600118699953699186098439740807700814915045563959617785540252665631837464892498634974196489090690696365414642777410431658982055928655620930993762569951040932097014291351966268424721302694245839580138150340957116886175185516255472522366939980129275277149618588106612115735816497623111250497421582184076916186293429622745502733647167750021975290031243673093005033260337612979910825931934498749322628043085205024864935275117121081853861710691006003009987887961583358134461838171543275876218570047688255487567181862119349891581189774076222006047800467584274078354780379032980947513847059727217499887018816309637889496857898815014332928118735090754933944188716310897002819961865072475893947578443330424503318171757944597969496655794507332930114306703772797916836962655040301550914848390811678181602063720089970941312522819463680827140570687736729918158926175328429186860304430162000617420657002769913355751277964961522990912757533131776679044024352603648218647268455876177493581457077391411642716208060914741238886871618007439803834730760223001132687505337454018269102799583519880101669848066394908334002817001087858841628801233497232752322201077440067753858265002548290937591615408224759525463095032662902175492768992593759066858337888879327167963584677369573400147899296388663675927163640683175026979881632954494404810334787751231188398322395064958811162871184367462714980847379528686918689668586724881905998618024104242494967884052800934295695498218459979002766249073420889709039126878065346731467966301606442679068677647580178791211728895771506592010905639443370641605665596078544617550783939055320088927074286604351164090600478678955549336606678828653540566633368348699387358759720352911382285975499114869183467099346446106679362126290601834375445307092410361953496835351079305441761193081307722115283785749517108835718732136294650678100083836040746258304643370243934894313691507383234529820627114440165092303818090089824671935159291544366472950517293691506208295246687069571979756975054143977464424753216271100421654966223072303677624410629660355386148986591524415564641844742393516385552699151046511911779800583484905491776294333488924078774754669485627508876152675629867140982417077046287139660156850948301880015287569525942223157558955097957432859853314555028958393284962447612851047565839263057242613705419163894949355839312068736535673176522903678535034655894446278282230582087633894383234195566125032980095396172617472123918217139024524043225860969050374983386458709204569545948145586132781604370349150958398045708684371684588534782919959406470831381638829614535395019301808864053726878275140975054579034537763810109872131669669241341851488433498123372785087961967568283949115629054345876852402495471174693555243890621888587134216729047153281353280198065511257965173529365174048194795618632338017345451094884330487285851458997008700807591839577920816408002527050328272684198250866154911312293976590703860714260750883023873264186035840651150148989975167136883582459029084943406292593663751988569100667732881368422669080880235295386783817924546052582162432829070649941791124093144386545521808118865331935114529539703560036478379122490688031100505367606687013104107056394430855717537557811176160862035149340958392894120328377351556751608881925482921370053606856807292335506015012230022603713316894560751380912060070418839829850521183596163789557525412291612498505249153666159361949552901877379734738415192806712685379659632958952795752885082207381438910208009402671847901197540340090848060981672209929160885253896663330684448225042930352241185193228230564488205374094847301501174365520457526038242597194524136826644008269901954852112957544625764224247266821403222811924219598548019807565967048064904773626168724596431119998670880250534288870450535284200678314195833130151800917611493781195385082442391649393386115326890550094331988522442978260871181303150540551481480888851724617249300769564934327277006103886019150310491367191222849099560732921339071019972388206334663070684203934390336517914216806994880128865955155205628824865607404347041303692352734542944253042115202453729841853205714540942554542190428403040495564432585770409661837309874674040306622061934312849400422767169883511241987164861080526844996910573340077853748598531086216862698351625570917210696211763406004146095636390731031243772002779474110554889736014604034968080497171643608456461182488112621977319008759324075426432661309237160074587774350528671559403482132367931894000072391344830656408684339667593111522099741782546121072946255198147732206062057345758797287406685557546621250559200884660397255600473880776242704779018428101481783802102704861019554552340839698216193845694903473613354953234362859444373455266338093968912845190172000536965133274302128490056173478645615128400409630566867055602507897779653954088585155895479745282725651286447731817242731037110556189699939477004439073369678172667881572119995034698233755371259421527168011283006096888692979105616489229486122411975301942007755492531554407801306768685437014839332928563359199588161560371680341248314164969204206071164391527132671596875766615706730799330203208461353873669089157551252621453220586406934716576325488340016275291261990215787516077694942220588208327443681041634326007258281850237604720437838377882218512400320084663371407662196989279569080387122235568386425431776033163454249258405721608785963561596313101381795782260608273054635792102218094159792793180745609379494941329775619405287117353705804155713630463617543487196449530249616130386695528509864857551072491455736051517647385494258765490175094145076719488067110952064337119439479505736472939045852100557175720031078119843987285898252010746003654601060386852398062829571366377302608375941587831057845078737935349029793759841003231387745328884659111482117934622292558348243396132534958667082294568807027309710666620320827206608309697685643664589887257740117924894713880243412974583441825284450655989170587159485707715524041544520718396405824369897717412668154269695372574363470184867223287258084593538834196291294111824036119337154465081203949277708644997245326904806031587120286238853097478722702986091579919400143433708115445722607953765522823483829223966638393419650975665613152589151497066356420528430893722794040963508742396866321595912634728592144297321489422367972328625952263141694944748140450616352289364110102244234908854790045446200773989154179325629538647576599784870755323457915070229275109661195972096738938281967204785974751184012794705992185195368538799976507106252308210259227937198441087561113754168469689899662849046648816618370622558809056163807035814220187772912190893673514790328665106186843071572631275985148404210374711429478915096299508828452785426916003925489201763866306916430195124111934192500848550728676456076658860598800822409810110076672951115805096459494105384865609410821709857173840095995857171429559942762618060641760391652939410106597274132016288268048556868974921457512499372848388269112032971603950714508871984054441924349388571195522496624799264155744515042709040277383062596288856850816632557351039849828709243505904011543387077528818544368136367578403968198074930997453816855730976829402065775233658014765610294625411967428186184675678308345450372544051855844982840166781648963852932020225478940434481202957459794464884304939028472394013802036042902776969477674312451568413608946132727000337039521809345014602543347123964544548139698714907281985386874744604743796745864739424261308837887321460242149354491058672550423025560506970689589952581210639370311514444971794346410102523701541084134844583658732245047070513602431472658494947967908318006053059393708173345961115793738801136643935575086963704157444017845449094434443653408256521916342676597050052427766585032237945469578190170146568785203310689803384182116110846959462903790452380440581283932247367041379604142210543142786322529524262743764409797308482509147603607143123072280704748125859014203608781722408091472381465898493345728653149363376546009599452925938355445778161057011765287186069678832820283569097286334147727488789205598307726326579672324822793755475696775457917439395062822815145086544731715844698005422182659994723369313623793498355283240364594654336404183647611486389373688682272818595921580384481957773315915127772357998767481587066181272587871934408545795984110839861615703455792745199692698770169872365311648190287739453970134287461361133341276902057711860620916975071878177933541256538254933695290107443908809734064182464661540809118445387991978951716537969274091876229708193389566192622810116907385583023883143864139560952006694427502434114555915849898441475583420576684796270957515010704130660137585630256514155996628601805869446079168618121211806301404286593168711824484547583260285773991071550122249538231519081063691078705541239556350940032833349814096120239099994028016197899966583428521568559608822012886554990660246216622803965077637466619506642169093299154337137314930655738476819793933574057782586128219692745868038631286511275358033789571331740828428786781343235792952252559979169940969463067915575123872535116125110881420523249201202718601918208668858399952257674719227854514289098649570768596517396908541204090853510636870732856831074911738394405786114850196788707503903063172458966470531206074915525149537053262737435114906577285523197850946750139419539030988882664642170390293535428025847784914855276473915631679269268984692445211602440982920590045713094946049378933198149231226752271730337458677383156308768642093402998272625629960827616901573916083072154962722320290535551454043541745723525077811108096518355980556170382517980255675660144213558405380494052562802953390310959879672838730347002510510890084814328575331485782049529375766768644920356325627415107643298800466263217279879305658738448285298328423151116832890266523148979273830645349928031977811936795568625895395043644241290790827093656655329537716335283732164983678327857891644802185470177565934589849402717507988898421144299016509865861283326000595868133153059884061623508262628590087667125621835202524271952358031544265530271465685535293590472083243956643981942587401410350823884012177460547184316500149156446902018145901656725482492540353814638352650165558578854592164038518280242236307009464742267412657535037072537872970261284170925989544913975568821201616609098279523988833293779530171402139768814073285263837703615132626485117154000019492468604212373294576571726508754755851155273587533459882364251093053566873207655302292985345767719713084857990887107246254234460297806838975796885378483393320358788928920713451826717730529836488918861864345076581281600340934755693113190471038025824654140470290101569858223900232824516090929412963907740356142661794726732702666343822785659594764135628977032477161208032940531240671237715433996133854124226364539786176377630985604385059472421323179125207424594164196373348604436248018470845035070077592887037783669348726742788558903593861775565779002990184161657228891652401487389638736650961210866773407422474491615631650288829121960830187838723579855797961129904433778499281378022933694049014682783233598708674391021567226100904548624666318628766377971376550168547502184984820152810672882432186471278122225870067658558025480542340604377503797426740720664296436761595845105959550573070845202181785961213289421673972368914208312789074316028748816579340652040931970382474632078424712157686659258482995379603913205607359044192355687995348014946413265942732929990456967256953596656293867797666795235425650857887878277310600833874515453404889634726218072391290153365814143808457902813613773025016803506804015366386840046571996422062055806719750975744834304002697423942965086816134675624067286005025037956766232321269866953427226989844043344893233425655035762898932177057681504405697633936057008982717092600066746561857443315655567567921298410173518053009392032116887814909770677651110444964259489897082084884573690894060483253410795807424924532406610395310500071429378420452719426156109324590979757183200205642162368447748356972536324347162495791334191020253842077493183531761704924722069608524247085036730697959084373425082349094351922459400846048918566839383646841386226414826918578235239561542465649072128074566180383545990617022234640921088956845534560275148263810004584725726030046328703044057109072817714881888932475856736156047956971310006340692522222504867785635229520586668977271160042273827769430691654688998636904782893952004880993977888649690365254062299681960050125384434069898506977377473105506757804942574653661734135848167930353026633123580258064991068223807924177049699166371012020633630831098812493758525084997070723713016853966620306092742485546944289379175336268734333726196870646469149318050169825592253070998466380600648516864172956175787405524197220684306742374596074188565411213712108191346511639286226115998425564262758768676893531912144792014742239997199979856921141506380498491993893775134169987045508382785641855970983669035863293271020434588548080736155900795601089774974891276940638422589878949275563492834310848359527468635150507872456339374411644350055063135928816911365808188030478970195158421232048727107573895563054941779707162792510107434752655145463423059061205502671476369797067801068243836461295474593041528934989213956087393022410619838284331616562074809893075274170295642674283909857758484839237811151335122122862333026774169561429365218089643625991472099856948332070136227143943468274232265859285495352416484804310148967801276791508637165401085010776617033504996997205859145372147127438915057570719904004911436399928432344870611491627776870993368705612384521034098805122850284029950026019296261879589563161333342434260366955259843671914360903707508729085430420896546042772793182104795250660389823234182977475280406108112613036857376104608141018471760303799521259055364083501191182508948439981541947714824898920950741523341439515966957763629140276757593813089870397155770518939607277122324835077958930425724281230498326596810042458679322198982686343509596614310203096709426149688265113890750971801265739760062874043139231202156161133639093459287707084519289780840942150692700896973318219779598714749416460816227688590724675194799621742928096251644132712612494570799599151384985615431711945101970435763839622440180242737321572139476475083835844723228076670263639115490140403407070793540167685454345226238872632622679627148003440635767478678500810050355982080461557333355646093055537058066216152258621418253449944746597449706762930715071178738494819805583625008715214345664235402479611516938278082483537966045828904818259477513113949735919638247057751896991490125061857997055055436048940854084537993367357299151289136404838889814485973590517673437748458301393844475100077103266073223649494407024706601365674726837059328577652945671480450637126330901444738501819311893192761868099463478522167734993323319453570084578470796758453517128727487099299534201891469851894998372080027792007628060008508041668765179862827508316331248005158500627960582802838829643631532269597314263280260878419807124945140628463232478215436405335454567963522799653535557389507612762015452994697670691994115929289760464137035999997594689154686070147363391466314880525917368423564898732204698069823810914564311898687757529429239752796313441589102376554698507933020075290741162891367778646382989004961611849511316000918801253329390413647695548930606507173514497861667103936267607175383227890040869530996850280380313862227467721548974191681000551094015167263215330835027376684378336327369211464503226530365610574002562983605202720893423391431544513973036884761104628417951620437432567478133961715451328161439883992244736012375669251663531582188281657327939571972237266381237314520515593279050666264655378792882716842862277964205248547183774185769356468972524360083510905494848277713743017129116114502388964419956227742819171179143579645842570687181114938296352399832787781529951429740760055379792249563855557280194984701364290333080013180036926783067855052317875459064567757622469191446312434707406418208307134097131642322811325161070574911909295165501568226260182709797669476818370572540704308262202412414347649992262970986894843644485205603363511338799058468475249017081858941684485848047274316753771727650718047841722818702776729211433646664840774410409251154767808277691125846426799844367756957068787776828111803408951067188631733533473272777825782688522394086313202549816445657393425109803952165355758274194724296354940001162295311475438910115785028990621009419359815348928541285995775371028613410884566406643622334553189200197274698313647095644782240605245701692329137222294676776688798384473255215882499212961347098155590189920003652005451549008407124125480434161373395792529552986603768973315416328821416183628684968758926647372656348177060384795138011852004456533242994739815537601297264270332718629457084423195111676390134258769731515004749541904412251207406112577510289607749594544848954716244464432785934696071471811675560931947927972909769933655986799342450503048837650988035783231613678504089574377679085954612375965542797226298287351637588158296444249321072687368465838142719459868699409460158353817727361716018724343561670188391810446450985273427180942587517107617927103336267733067307842220872683269351722922118670967740762186115585643790213598982366993681577448839031213769144044417404541710334052678915202710710285630652217158861840691742571270099847472541080966618363398508453170537697158562569770436337101282925732995482508503220930277712277645679035996520679522773930261902712918940173883601292463806372824747008702063874410851499919571214093958594014430421219083707804809908371436121613450270970119426217832219486975274284180229070965943028008748570385966502985005059736016795726642141499733167387759835377744360410966182847604159254514991607653539360840624599646609996695665861120259885771885770678891055145761636431295225560727347455403630752327630808258103368066147355848343829174117491279660633677740469956407986541454552277172128232284424121794444936642363065331844864926478983915121045410031655543781455926993272022578134748360753190164400212030848474619577748673387102375963601919382417919349738228201328568868840934946024893047818724659046537191658083120524495580133851626464346380531468836855967736636512132697891179500845637330961222535635403693432315479061923727750599010857557125103764453004193834199842701833602537475032577853616949588797495846475316464883408894417986877442304990248362200986648701062934303717445011274883039169164965300707987318465041744189413374662671745576119738375524292641216221290660678719797652337835958273579113903913131034813986162403841880167214885619704447669863942932258284471001418343584711014580638269657417687974749385564927279944619640508637258484495267008819532050386926830961579024964784748573437391633282583135592518187448421036252055861029927429267079744452659418580859492656559531960133292532628548538231689055615895510372336220528599000973663980896509050290388394128912093204171981030685894625234914905269632977111868218504398012966876727731235534784177580410913233825886649648091282741072621892212707568260899501354788566354726080060757539719622945363252352628624430177457878938539977073169468907565225729363043605798383101032086185688996952756605251512355760107702276271150326227989814290306765630266964012766066816885094565140161908654270507903690053912197431279639220166346286449014809152533946226312684552422738927275710789294400123068786576757877448951017892464624955717609653623891768147866171168143690250347351828944416214672326292631407333741592791569006527574919282838449612279052835484213222597775282768008911333860610223682098274966709890323445676635293456512711552888628370221498963853968506349199873993697029688034382707671839876861668663788715346385027798070889506979896906152202246759560333636894345870551101617644053181208241047140995309317313069982341241227392789775021265097247310682452079690090829155980917350614309295814330000907330295927935169316989350823366632851396482847797028017887199140969959893152145858404398254018396232551405474623689895948722495525553313929165383700755922233968849246090447547976317104194950608655979730716351960675949772784583247157105734011103782789724360028102190625778144059491315919671239355377038454093029967506789549038211063091691399689237101195990642950040668171751205782911266095294992641138707688203409275829379335742652169889746300453785614568556808221646433314262738785929053256500807830609367646545609565601177370670514284244378290902161098758933254946207987997758433470951465119093532663104639640699336863958082032922858814250288228077323593618991751531852819779834775651319797115003689984489392882234594996685164899728279038378628148716000605584503368184222267752375663193654808711015547815267041111957834954458573117296660200341582423883278294660179869721539919636532600244944368192002979017122578554850834257587548346256878903548570441285078287796270553208107582588839525426856003622570559842417600033097404576532737827115798397128940071351590541070174721041376448788176338158522661081041123450467556702144971649131536882002032368326687903191649748735171522045739812042662900922411729902095187428867409733421869098394143499064418671000273169551092124232652307575247305835204147347550632951978702951013965132182263036667395626807291676887589395228213227950689793523858756935672820119348595579829164753677497387402424633083699765622315626750693519401633910756905174406311394260751615902320182783647711405065466564736686571574352282039348653992419221405671325245804173225257239248080081239373137386454920278965599558660209189121064020622398645036124276930603965979822876739289303471325052303545113496998980664870710785850092488979477872998590793529519054735830388261295853284677626763786646405346050218377802218867215802652293106550562805043995730294708470109336815022743312443513568146388078731181504866774043806708352795314036763391150537665813358951625007747821491847178359424475715336294618300415207001097283411602522207398489094808069800429125577829911872859295591367937338549946253299754267221759533923194056533797551264794733129150323979282967676068850920430437937199673149245947108366513964087305359176563419305277126868448650198928834951212819948166342053532663046948528233849311468587105464038447477319531694865644405714874447944729791585372730698169385605582730285583504004565683363967467988225428015965534634231083500951778194841191699429389501623594693316098008701682398720885388577326714303148169418033563939881653714153972057419570351369260238453401184295298408578372307300327094079408174029747302400056760853541918230102016257451528266274534386163096912580263845495331406851694566659238595549316270284949489713221051410685150407238721712728942738164231415340059177100730381655609900130016270396436508127600039298975613010754610415646246646895195003573979421337340888499754153025192276961452260927258430774110316231213090484070172693474686118745288090101440810418290662268521932729554255879181863141581743366960503819371202147567549864206771085274256022863766738384197242068350087008218349112887336478496020617264995765682792570946170433309298041748473027838365917881948082804855663286162348451077815221340317473507613486600193856360630350663045429070338926985221394978537759602376497752337167865073820109675859425394333437550305770350886360209257857936650040462032584709000174447318255267852209346578071222047531370083380356783842062327203053801506235288808195651424001973511816306322419148569299570871319580293426830449444716399947813082306950295630535467426567881584179190105928877425019157306970873407769579907414706398149108162724909663152174126972715415167278212130043662378564218679460022545311281034553815168993721448756546838346394250193728721485099511915072866562862528008479578440921711867944666597996282996923147738866767618808567726394454527462735470580972556760647028058644426011007864564614935129314480774585420228114295229268176112725438590511634019562772341544996548266327407572828301014865584652171613784884728562362507003295536452203208925304720462977862276004055500231511656834276436198685424484108002996104222090226355853025098443043982377296758948735293648938456786991763679779929244006684804062761039955260850968304174471914675618806201467217373454796555185458387179914922520200248002064851128539765533656508724311447586966560435399095796190442299493162643822600634879969668054998580840215147722495943344072802942890359955448224276740463685216171918884317208333461187371530825289413354701739361651482371968612543195164505430226051601110328533576312582739587795182295216124293077864653642335743102376887186996228291634734050041556866540223090473522714503872370980912263474865090932125653170730009781531673419796671712922246889371677104902994279264587551035976451771460240582181752680214228017314199583937580648540043485481793070565806556530065123100538989350487947659659518321330567729666741783684280351918102589392279983997447954314839440548965185599159239733735661898088311910381599165360549581672664925905222553193986241446935186683521711765655329941209861963245112034812565371862498840763651259780408382272529412141419159433283234217124090413294221936328297374923940972224601944415582542395425864843883268266479332246914137655831406344498235472156152556670224263566489055603849679985866314476402369378712540464396536065035674939057357739393253802459763948833876425237010498120120048846509526765453968826520324026457332150353528689400453566430766768274142046908022844130378596285500770274437998452503700375146267310722248550373315784963895808089735981863656914711156242832150444443947804089706109009262710120765157661319498141670657656635842334286299990224669593476700621818332024672076780435768926565603314625333507535498959694091471190159357174399159041248370536574006838724247301959187100861872029672253811323031337321984000549442786122410456202746449781081492775765331341364839468982426853057688642706706805502162135634574443789862681260608306680986935441820987855797453615849482151997650366590065075393980010872461686201359959776263178784231738874792644987000850888850329174320045681024515922189475350204422925092522810844644766906442075894960211136543881821183955598876614370475846588719168574514063407199110446552741116774223821996674522146976787006858557601454325931972576467042772492488475903245148896801329094091460615084852531017112618324744686761854409876807802277229966372198734613669784325979686815432750840153793872784772793767608717639103380819470146168659449429170630109092572442473548045420254443316134673946487033725593673455488741556647408736781464433396981094546354834389751454165105855243843594547794186972637236108189703815625249452623164863976931196452222584771397871807423958782600467918450667835037790244487679926680243075011883829047295265643420651571773761883947882004572011733186207567990483237579597310624845315164816137426640326844559592492615069600208517870896530754937872017476324451577743708684715660912674096773421042424268288847188570035389815608216260814813863575871702081167438368050262948927979948432749713416758437830504854664851743874018312981602937454527589211712295471807614002868647089321175904773505015006098662266868386906714955861835475611803906704284128132429695753526643133251987793872513929241163751309862050759194709480629506737601827317792686367332933632980671893501846616445925258332019639061511011012631735702452624265556283027515165934388552097547982425523048024722041873319992158767280171742464868315565793562335281294760173360884355209129126173670590337152087411243805578201472002129262455991633478263925985972112568907084551027250652898322712130034425538084292863931297759775940609727826405164099915584149518173293485905460919086101284766749322219421949688973604466263516223034124004911851635954062731997743056753583155652481455236601996454396352000329994268310697251826128180322664282959930562943091763884562281658927844452663968579890392722626370068664092566284978947152242248835577265219128811079106741789189117622873080331256758906352130096305522831100857024484563269300072001818949209950841466069623699750615663572859525781120914836806472553199696795564283665086277962320332898642306252341217817530749155087365657866686746855646351139724446103726398443041921428447343828569443152729675161246125431063936034601029078226605224775174648688101857262424084700394531415769062627622236793887784837554789823945829376435834905866021803015038245644988964127286558362401948956564696847430552538869766187586506431912934358263823191202417863136135093665682660155397448350687687200777718774805959140000009337054694689516104844484766338210697576752946263829330996052361574861140888354392965271791176556862540518925216777688027697652214698871807354020641526040389107028480457488726467513985502207455370812293693525227240750625944866604688286384721681108845996227037896797255332938743806395388222184522902716605763048826270627212529529805326689152826834651682551889677969293307407436684839309215588192253882507019880488731412545341081190948867254862328552469547659425256459441845083997664481734174558770086311196902756853984882815302510039661089324271146423230023096357667783468946186933335483855556697077852944418718227236441274177495706540494562706959606680856821067178983099562357229088816307085886852904264347189663786516783390080547334977973947051423295238365301024566382188921304044583596640101545201395155831094799968792327365504718768322874258585415376432576317050643295370173913934817313016401837836597458811472979722338332596853844560143348792892343846536846922880368676246456263784327802709184340299174164647741366966627627600532357652705082487691586110297285665780707438008141489206844663748971784371771747351089352423779581124660519442535208711819987664688156856809489944221485421549131630133572071518549005105571509016004123594120611437206908124562987617851083899673003554817762806509296364417428466973133000819926368628520553444948789530643442263200962727472259076982575267343650583532573092141106844157747465990063478990783424591019258525626147872539285756377461387413571725385546591737745704250281891167146552953087222823689011408355765464016381835821186964749594147884035318675220818961211352975241206805282855749448618175431297954997195512676461275558787871603943607793464224390229647790322760225522896300247298447730795130244751571655868508987760830403631774303084548430548166042802842052388241490793131594940850055320905905954563950888550992721562918007677433412638751222298592326263647052023083113526785594066224925491667193944271234069186993519703953757740628666662554779867923137578842057457766148597998128120094071389720638733957011152190049145637704254517540351786311360420458482950402310872073443689813730795743226741893327909812702549023229504468951478071023564627016135141572085162734456820214773275867708977167828101255448144851378348955844805305038788764075512915593429871711888519571918803886734130877285463281453044507940549667558100942373781286741211812660829384611168556343168891933902368755668616720485734228299308084495208578168197326490522510078534557686224298042149156740204019480170078232167756650317038242388674193132484330277479260151491570153214844509437156207064794342894189786703064532897949556583593845273064951045202122636137999698272328907097341909021126249145046554774236683049834365845991343456712350083297104504196112112800772411611764334747595344095077391893545045891820457521158920540406401627670006801034243675661838552579653378619533272990401507557446696814288717215006146826220565054214248546361474717948237679233498562610396706990383945998514809268639428924440268491702081781232960163220020702071749432887368347015272982323778979272159150011253660902832165465167014499001894043946068451033874533715198985352967446721611108748094345806191655897639892677539472477273746706385298851732261661812881230224735751320021976704023321454259425973786871186192140883604530028802586900996806420350794730614149145969344237004876431489427309039620405254065317951980422741448413104195069263295162508503570075870085183747813587403573929660582142023248482487760015678247749068019229307821616307739846244990147477646153806196940716954072161284816335213882955734824822595079621569455463061378469743646625801550226023665808240115439778823369345584305424402765952774200637873182844541271724217868175297520585029368077942468518041313011573696784686555505463833768769873615437725460430034449333695806842677986707905295052543426498429989335103366357250620052445562524645159299334171783069452790065760650095315032553696463971046960063517377398998871719748635768874043212898623258761478147890687993838524406343703576999111349613340554726298399113135694638397162689760495625808515504604458682180596471252461007634055294223462727591856610116505051495577084766681016766684663793273243079776745807443346877327683960053283738663689351288671302688988032695440725740399389635973626247141148119185745529925222773394068538972681560999276586169107457361179659471471968980965807580234316454187789515151166134655777334643630686672134908549875363594312163038264048899322655313945739921921883558186518046304381442306865392968551576121521382285789525062022726350935666196444366402177312041115082945124661630278659076817794088058549144901776317618264375657079652827422933497941496698762189396843338957373557651389984597063994601927585771819173191329778264293035003012711144172367644257755234040275350531629049000056225972954260961558037741519750207447151842109131526021153089105718672725941097707958496346221375351527624530925852103505142068916248460808848105521065242252748231656221927905152805235678125725817817987579568672667539769664517124928288090931117220000880548762694503316917392785239756161525904632670375300598565744589004945968032917521142591484755891941215699876103980004455214798930015017494480301552024134839379145194506385431189011732554311679999722789416752942853533796408997343113171132156532536812899360053238708966277582208007474276078755366450680927479271869544205962188177993067977545232392302571424666949961217315807480611190864432257562046463602903198078469221665565187210913502365797151340732446035844807663346541521892654808703990049946989391937040750560273737885369436612062360259026787793214140088537273632819422174737653111731173148453886098567521025070355260084184600269044643143715512047906603215263788888388709348721848461262357653933602408060929099219963272871088641944526733611097985387986636863390291684593311008523019820465335248389460281366329846149438523328404478682056881296756180056597726641138533890683069834881423185571082605373845697035133937422568825444079641707059279121754710137740532775964064473102572313589867343676295655883199579888624925184310329968088598102638339810907177545606062495495372385631266936819444718697055437572139343276221948633890239973313819130977574124547657036021235832660711839658831223732112962301136364490375020182591469584335490787204437964509772194356734399219801807864863433609173224601661526566892903851077333654198496343730658626714028312821475447796349607188528705253804859262085995488429652381562817172584204665864639180790225554475261606940836628858292002656485309476600121932131567839353115326819832362368605917331102372329539201620234117041361904595993479033662197205402825633298014485833750881537566285911455831575114373314495883823821279878124879390139405491281562663471020891677406697674050128539403500676439512498964801887879308849445154123029463647666005632073325658158493616438566121332969724807412558220624000947327046006966279743670875710577339729680406289382305926891006034167109357792974651924791056909505460860119171329959348789544088628131618380325606576021961786531975042874772482014669164209470279607437800913551757405791968059962868127033267761549385592955423985018401739375902095526157365907270712533299310478800230085941487197573849200508914946819519742869909679078523277981215941465722260747861809914674238442324676233824963688852039459353360136675408435878338764401537992585432529951193117063028045469593944606475727384934827100799242289304177651836436142951987452426249424212989502190906373846105508697121223483586433063496555665154374940795222791064278688674112949123051979969621108399209669832736977916905426990210033025017016776512606699501582470375513530363771062609689933400375929611723100611997796058747077713880077778505829332678197082079736413786356268646608001002028373567824488329601680676096078663641185066312699837610182296785098839893541380725920506596416990006176953823574496171576666817038262275101874612115975188009047391553009142631458107081709121212036376987824557985967363133927860660276935229169345367692343491599958348192438280063660167369232088108133875363452809543288218664444139439748619100672363241177328195138283493889201595364688484236767566392668450260932355345880828549731341270965856361599323092127722478144236363273677035652174332488092115872648125363233202490378388762148954774067512253192237442630654898126533995802590925615377622789629549249784023515749136925236722488801278452306081495900778368144429910016960883354397676364547567603090436934748029817538569107694591815783192577663645242961686446180495068213932216710579557933631190068601865883715461797708640141615916857200798786444843077262407899421376440729806364448485535959969350940054366084600603705666557170890301127013632559122792709472508661553658211165865653467204481103176499947717331983315977624779496378806158494622326626967518760187806810877096788100401985247525187582730655310615443386001970494511340705264024781921055040570196110839286161378627014549993087707313601469009258299901190264497270560011211390330684696290124562701212175014272761253795977733197272927370527819134569424013191177006579595772229366314427101646792548213074743950530972325062189066236526673925171088220009057942271069047358700445180197784058593329839334548937213817179306629568534444643058330105655804971982623710874751372295849012129149059142879879906511541390473657820539723086562510753071642887573110136454144197210983980961032869766539164051757492279887590206539480357199900509863169952154651791717964588771883430618654568836765535005037393369093524918492422338525827786341207829244452163773715065647238835779051134257169894340288987275969474090660371763446820134387984361910338277123621300963019384255055243188181060460198398936918336671605250103799303079438458552445336879103124831406716195774586240507061053872692341996847649747939966023934827024718975660924066813275329270843760344830518245939806140029484488550047798483203585494190349928387929270014350055499633328408751003042764542064260022463089995668547502650706577810992328243695852737231070535169941788693777576544426249481291260281386198003288352058732379089909042058540232670570930636174564431323551800817052100330892131382660102176540682449766644007633529789120788741971695441656706315598945322047503854204547935160626947296724141447208905716323399698343675300648171564789407545732863271011033456800778434395229778114771715678020741094169483570892671378725378107763640780086001450607796376664814312692797091965363060231919217112351929982559145765627961711539324868853985901153544937789673489504553420737271446594874506969662974672301885658683606244187925334227027142865653208463752831560068885412674323145236164390946923501803954009938501340851610044655036891623497212371765315147330508744260911352798800170733996960136438861011191297516234938526259933262061815234293265124284021905891349946700706378680208991137813742154744912239232037619402988150579182748640565528108945899956203496269750236136979905892828769763568356163001648249795576304778915190022294083542322039994096659806506864082050626859545413534176795955652153202283078385552294541598743715721601795728952359502249496325323008573102377239844775408929595663483286139096758611983268378996954805924374924965832626124982188672716256045932461486340941036098033498748974628011667798496688266776242338236058055468573965771220287883917044517883762030358218641422761484509209589853072895398157289909821484924711197898798571265619442145704943170125564717282714301552111313078185046130691357574630441393941000578183651582067243623091877676759021501139744966190175902616777927702072008244132144173412912290946884753323754944394937451421916581770388627216715449925646877266155801252594163079153446537472978810087236544753819275583815797177910722162312101917171319027346947873678336723932094232842222677755754670302447249598617323740204046128975780115493677747038075660189894366718982382270206135993515343775325924174313326207440046101027082807518842749535602715438213122374008197026279353234784609033058124508279663461197920473958271636079251867085156340867710283638773450301465402101402322826192496270169219126294356914990440670680194466448907448980404851667989032946336265400619704581126627677851498675846584613767683553728343863997604826328835083070513015923842875971074732498349232073704639543741583017111500146913886782666381825725295271130808732395502321467595927501424894211060878570939127169752049328466812151954790461622758504491231292293047861910943166802313736585041387253314823849652319318151496576922456749641280930345713017594166770164596676740426133632873186597529472421656070363069911848910121032606939265034014883893172806232318896648949798990016030902935474573151744370087911995667508851167926721120672020938576204428218176656270728486980110976010867140939889635212380441518463908122607837830177711132344908521809460895803122564071716840029477947972637021042789140181487715504210798383402827945354173864788800878501390255416474872694841232974469885920685537985348793431709533531793632841598237658584115985935125799996791817282220124606153284847142275268535743569003255290141319659612395081713268307431349081154273123465741840394655274795405586402137571489575869843810429732658461941792438810955403301761485220510612983781535772455624052445527222231470816879235434521764511503229478599412426137750314736940201372037537141167708004284584378274761301775906877280711829701050739717926419763708545987895490460717567734214141702026555653581702163229762572320907164014204148731453591221621421632695424725864173645151142192509711763352684346692082379716980985824689913994344181082353382780059237120048212831424693110766945781104886276015186163112483125592634192223281391119306782422654488201618150138301843646067383738239662974339909691082678317720858003526582406389257104948962509869744134395316540920779765501264278462714425428476597070266527287849301593860514053956797852512493332235482383670051809839336382603016597403071136179032177128812038577209191541195521976123746718567005394784105344794917595024557403302443675341757242204132390890724460674622039634419324785959651853443225959296766731570030737450730481242393083036761979659519158499544150427711969836145738362242513228945590697489118492135143202642511650518878227771495031590511362072247756461589814586194514122935295984064096363637979432750059683019678198821808819901534029893814575404881398757578380245775331188930119091656444347549389710449291149020789452270259952930223685317269885625801905425381663979313578653529572360554866270350421900789254892062414829620767264336890739097336179243511853503790557573002561078133255833110104460780613497689801500874325618336125410660937202448686644773835312563804706958091777167817447102638485328433735110715292316684219424825177319168067713988211373181237333399270856971999690331403514400308827115792783924219787636922385985664169449007853231374197842945634772830687074886689516030437956229512289022167480319900185542851629569081488717817783282151605058602964605337760549178322676663370987065327531378434985996300002095853143744155334941421336867037143719263429991673920552252588100326435257776407498575509861056053595069917442961355140732962577530185833036123110685267924854078717881670693964869801546961264788203827874048561946122415957826351988856739179262376550580125330704342124516491418593411683438747133788720929172655290120313124289876602874729187418522076549187285274655173336181633185389017716502714193682787966764345967411291442211349048197581470434387746214733163514923942842317993255253438097258441357030209920800216691355118740109956218886037299493362041216172173681674059972547709210771510795366144833869606435635557485366255462327169381649521703949397830431151662071645921381653833712804223231114151348197294496302213308537786106790371374429103445248004849998689338397563908466702408975068340156279661223756849943182163113099337482027901254927602786863886167919965296950779209176797326774237274163988685323080008624868157576981837228720839871074228202969447782228490082162627820516945828410087457446725483309957200078567869683668703122354839463871735384607323733766594379279578763803892411686177563524236105570645082218329360899640050267829990311624099655609284233449523928912788338599706055565978271918929895269664281034050654730309075615742619624997868472402154685831957649600848005388598210139210484999330563663267861520074064492282715176729782928856470182745763054291264259058759522123856588078399065967279155672061037999927375719332594905574754993073952583767375715359319886966289802462684694709528570679441791215547485101014854839393931953584315568029994671334310857881343404391573695831517442089868495330692305284416311763402126714103892739698742003519804147298445205355198298551286515304435589534975181324330948278008478111325140625436143257739621383265218882641395765029991183865768847972241970849018108286295506828914238869827615751516217693951480444274048808050521626039859287068256884832566748782593343313878239342096477732434919935861310220779448030660164194823257742246858950588173707248422254511633685412933604935087136202579538769580642528164765875750957940734868125386076967858908393577741817195877609037707072988689782291106950905204661531816963879675905310275252868376718216169782825742567750900677517425968688702913595653105993778929966592302056805968926768770643823762147485122531212842347763890807138747930662584006563144296588448820928571488627806564618646643004947108240055181619082359947618416317736303097082519625255241811185273004558686723370930939832210199466327481665941493036146224056581731801010023318312630046554822849559186760218989255408850338042644527416830107874946039137563436011330273367392778756642321249651061988726443390248388960506525425649336618635266354629695401772745827535632445632171485875708193944171546951620717979742738629080903916722250617967183707028112663641384987767029045144769000808810809898145730443758390935284769015108875621133151294842193285227159125082937626837047886324718895085225785965198325584555806023520345089160175183795866161357558292635284627094992236704684008979794086959737263430090551928015054432725144560558752759854639826334332901719624145756814016034267068324670293221376410743152354704359423434913122663033770857904270800322701706864402254813922063814350578615380138190056862299925633164068679568303520709973190526656677334711082805178183516651264125899553832448187376780681092149691638166976030212640731495808089720295890619883659593017683597193958007258805192171393535174481478798132482144088694800119674333481030498608021221643260112660384228479779265083291843748118293581482783120493826735656785563258452975414370321897798277860322841656153036971159777017047977130849680881367242151430297723522865032703625839948947277687030357057940337239600545514266695262967564942142706014425066964660264410453519560446051779454734162622111812782049595110050396030904729850373534969387900888948074692470244621721311371492598545988719032916007013822503768204176417247471960534699316242749071399059710383894639467145238642312828835051832621751565405466846930238903324266314915375326328202669641033017534516133967648329434053715038145933859561982122157233822298709692762412615459097392309890312305389355696380171782675580786000421239571185947385325269816633230335226487207603229674114418311236155427381325029427044336312106928771292233591608866054256460600794432015687805317295678578263004500965736582617606437167820724294382638092348037587724059582722611278647658706276875230305040388275008887238166142834834665943752922225998295003542421464048967877090429530809017516811998185498265582762300460719729718344106062501198872232119044718025064336192926535108037860851337015319657148994411143615607036788887857325226339264544994566993749749615487193987799918374302036912059452480414293545770585193790669919182447492020951146017002137312308541630709421566608903065728336736177798422686547593645923452559251111014374521283884423323292773407836526433561946768772921686593592249774543031022751054925308182824256026200424928682476837539541334228975517604185054301371154117225590735758872995011234167887608245103411919029417229428344427490555337234115113367378496092179572685562880223418885046965981366002447097844665057112395430666262966988651940617642229548471672181882876244453433617880670672104113889750544714667192368329693429964251075203718933415499411509856465216034955754413601732440653144502386744839784749004877882539487138590557720075521024410346090710390894025576302433245385704388096720661744774457343817694604385180436852373087895226372871946045386255837912103714930801037479626095912689328425283801127168117102542649231449305172273524200518383775357703382797734180762342737323815372789142689511337523540839249048441926432029279339345293581591087741154878791094678290769911801139800947413116080228959580500947112800816217027466138148192867843185475402621454086794242893965499974785960479354421672913958249307037746097154240129084577652268768890227428546717462644854296453145776777711722962815812962856971827449366343687186688005679906560772506006393472992866137325360646279544534072415052629977429377772207224984587192596545959935679975254102848702286244830662375083352444245421131216557488760011173397545965350262976958287839748067838363353521718032747487227381905383149858372193216605167609893852225016629277765742073523803352810926149459755457849726807823141214397756093793493997475831523397824726942226350462366259110925777223513781965133011308335802781218640499106401085003324464787103929448310748740745028215742923790914921949219022972271436699571965891683009113297499972097708726811919495933418465073097709830265867152662477522261051730068304896929387003250744674629553336958293097503851369531476398761190676202758212973913400841787320495169956973428011927372876288640612639366552028035945601313943396476242986340683494406423025734398098771141269343759927147698758842388586536362260732161590080682040614385263947222002203661645693368588093748868376155226244579618170579963632224389952986360733241898843829401234964621023763493850641442487710058756604688955063193313400937589790069034139456911706083943965586032557609914744324545507895507343276582840465075895785237198610406750925827604278476694684217837942834390394727000816586580423433695335245899341609926389631504438800229137706965867214849694571091839495790438385914244119200963450963130550634701484007491808121196742793282918192447053846609321078494333919253400051592927064082592154869790285076547366732493047749822405155352975010665510859116373137910629847399532778714836463218629849878738979160347216190090780754765857897919608157758845905369309161644596999343169416422572658372369864924889069700107954686805901499365385527882117286173354442753326485060602959045190561705897834442945839651874798772040380312466043307703186188819823039278336148500377084190178062584586361150571787691566759453606514456154120636975234941854935821572025878382167107684510289199515879465446205983273798132270656754264858591564960957705278639395968490352255285871638237616556299331978236613006086231729683260430763819244183295050287629546503573005130813966155598633325483672441276043024634341227297013679963837977776774617972039716552004436071618065103239395016232785543811873633352191148455238977290071545352290844887944299585119430266528746627566070142857170331951797415547050762239208916786762931751363908972521109218344819995209991281411603080312012250721355858426213132378593844010124096133551381677665868408422048760261566443325225735420313901573916990661921290433444418587732702384955195030474204757726709975207857847979246718472054549115761105088681883358445130048411716127781983216107299281896528564383046502871531598373470626751018733922608255454711320734157670008758214052307830842094953402677062836036491005156784437141618382325599952814224610921929007861229480828790041846809089153480066648198237093584572371263359835960670628348317228860093767402528784104063782726324481668722961057915463838719877067458797760930278468852499861390349309107331305186086564704639109475486902658775040943893035432375270823092734064399517694503813631146734772966430000341812994619063174833274238984003973696854351609050401079336469198773597389694317386049407599220681806629299940386776431802899814917949136972620526823642512272607310282105440490737096882187156212972910337530185891025140278965433023521184506932702552343809575929107491550868680025515288143753977669902524612774687675206109381267094496827085091847553292159438845458264993926400678246870751315698185408365741530790179832191293199536011675979044854592923513953071394952650975601297353467377280077720227377316363073460782532958346403198246019709691858240453061501551737358787790830817744903298193800510672478124482996472585128951091506949703668358716939827285519965197399505982539542319784457875156439195631714293243532954032798586963874312397664317589504417262111989206680486871853569457493013702115020100894156981092407674299603217777577964759140928296172702177624076032059135547362355588810952198784784411499383572272222529763249626690423234951146638369989572387039811748125258647966592742580588965489399955515611775517731282295753774666259806151848261806572864115936013330354983132324309953025502023594129416218383529518357922745382983063919602751689064394683812341848180541203854456341267931626290528236305665523519601973166073296614711449410893739775306244074151386531576091758483397660180883411585724958987771926950634945285117113694970155704644254209886169599198308011681812444042166546986161838525172413835541343687632699305380582901305066168821964082381493789668927711979753843655557574581953078483736404629166465078534412978605736850377938809625180497017448067521736072758096835597210356321846840956286810163286893382907862102066153204931929838645841659131970655157850062991631873429965835327040046141539313515098335133831541864172725020098333077426280737660320172989605344672749227958157313924402053865448794741749317038040153212001618372591402658066788351364096060038755212203419886110963906538689191370972858727082530714876903352951267859917975529847228477482241502446637705474659522728205924820931014598348691638176084286725105758835788382608879326770514261277095480340924218203158341092137823936674451277509184020021623663028649033419154860008174555330797728811173165413311730094985755192657534230448387496287446091172520725508118681915702026497715503255189492617976194272035784252915855452888276633927315420994695083993567697162272775140552545512240924409420722734905627943410906878113711676299767096928222778331992163172795774794921784976451868915092915079588344496120257902736309019896143113180519101450752798955810807740625622385355996288373333641967897410685728272469882120875591257898418025150102054286697311329259046578469774412815169318267044585380918822579239343839135533775292467909051608422951617005193408286387605645202105527713884534153090054193417170869510873970068682968287860802799011663416162986279358283921188621443858446747440749278201176995040767181234052217030096848356200555005022679236535327670442248846059095963503610562368559153494928133725172435605217784408577631195569279127278390022989699847182057596619126057735795126057456159620526434577757449872192832938213610257194344302335192647272587465664589299206679971022868156175791192100583217446426652057470941588145713608937826392556039090988749665359353573659552948147015899634928756662105149601153601275258717668015439285698752615468638310191483849587717528176709246180788773461050741670117416122704718437699540263693614877281878984124614265404264143969179258581994566953839389727507460170184067238070180435814285591795863368956797765612246133247489449274597231187696861208082787073823563967325586913626579188394367568838917384756271280580120854668337326486976620940755049224251400003669371950997808356300123171456615454375293871728186275092094417052961900716688548399569064263311488333826853596302668141012048603988100817975572479024787870393933604138719014276748979190862618786934005381084884950906119074931735518656540118487484081465676832282420631166391399656961656615833155338585528889255332426998324897809436819926709152335750484829911547342928466904058481650281482297567528966153889295718155554564808358255137112345761651752126192754931802525578304410793140186448904475281647536711614896608752264968319664115120959077232785866464030577374286593578506945744189376814556802353206266679733134350081769056787089122016803149367696677059738098429281268011506407268560523954007474614190594041140647976187351648386573648321581142879660961139311663114977649037627798532242493440361948810993373112305534359066695465019382626945572402829845192840801250309043093147005106307889178490091261100776819762847542021582791640236451545240359637117305634016996755682244734549416291935842560784106962094113730997979287951115060788994743147512336232364477624601032703674092125456860231347352362020345914887762680768004091188320047697588790336502324923482319659889560860924712798772742313969292649563561908315856667113654652495185861613157102751792226035832264013780575767619506872421380696965960502866631663709957610484806208131418418418724394137988151050533378489081600404818581776586583982493072731623103863164819391791237173492273805089025011139146189987975744757700390788651426598967063355694249207202983106820831840132470778300594438932314865591756891795836318182623469704177610328224573283073843841304554176885226270877121861338844520957332458296423968344417356226281090117118264772307742535881758306420420831974757384860956357386424003731973438162049108239849231199993475042705650124083913257426242894593803576532065377343733068380407016147484461504975862139415180843927585060171670523496587830290496864613117379795664558667364745585340548070997227534907465163759748965855760064151115569252435304300783563384934087674856477650955064964831014692707606691303607146374782001134017523144821833939914777132049564269752774110031912518488489253161919577537238637866680131389078430090444027206883129880622930577028426359503904074189883428874147260693594048563828989419035051884069508227887199855963579999209940242118538373005611006587954415892060353339844442416542498112318196875275120446327222310758805344812708462884071105907543404658308692701037029260568524629683045155574733860473962872338869246005450297287321259100688880190097855885492577339809281779307295823956194046104358282329953878703225514026326635684654924279345956967722869972860183095380052801308043012465374177308279882065012442986561509385767842753971445275313224823694269682400395702664421640814086411716383019291250181992755629924885248962515945576912428229406865354115445116719936430388458201348422772284023123254228916095320928219415552319834332197616277758967318870602132380065173938667829641161227632994668524478176843720873666932074836678064849538987005704501763338921899737106763903993341472586726642595281769764154422096322786718710489378337869286251545360997125493574378238100967172582095883963785233037745792829343992681218723626682000441309560882998208800999379884978895793948166126450435887745590200475281451096927957856663602636146748098426630898331458052572459335146426588688944160608931066761425632515416225120422468101507730696498149588589095545756630357489160459336881515067199754254128135361168807938529611211221502499475550341204637071506896095507312873997022582028149406408326762007549345053167355203487594485882383154542337044549590899442937901265259088081004966600996304305381750839875317107940528717698764935615338806558065335056496464495499573725006737327853692141009782584249407818465435621444520422224240287200254431750309077885892867692603470777227776507343884538018956839139483519069978192276118358489960647610824440310947676263332521941334808245891539006938895071686587745367117436656094043990275067213102906350398479045452062324180569473261198975165792354396519321187320729299795165078544976479574353403166831540356556544571671215068629797778087001257534821892965168921438074285258706704475781333166002661268149659736202422388537904671582959851668339244949381181384686891629044665124179483033550283531745163911669032778886828321205129706094956745820222763472679430261643304994061471894743010012601620726871907203307504855902528563177442803099807400845293514510660115669065512466758045136595909821108414392710028234904306047016811009751416816299929881152860527283485437613368489546405845327381860496746551779156053667558327238267503381791499124845940090979961282470051869095674377614642774050205833432949685923005094013313830834459833116924570718381411977184665733141473604183233302730647018827089892695978020320303759731661343403169557422898192347733802649544891775443212367290299614654060084431956362550290701981468602331479473289345814213439941661500397556384059282765504616004406098451981001539846697169498087631510915465911408687987386437448058774665104362523349525791545059240554751202141408863599593346713445131406543377978014925188307620211055103733971003376809275305445434199783160630410733578252820381848367087061738777760500133377358041292630706303522474498996250877166201787072843470197425503447970852273764002859798448655723455237673832686469097762480718072787834909028852270815351729801060089712897441204538873596950022374579693883318251590983262716600643301584076152604335355523446355980125565609199418747651581992370797493161106390039216210599636530347077997522039584449078213170467943558379297919748046990015408025988142494439799058233865697432019897417369997281491013922231463769624880400107686501304493202348854019374228211602356343653420550407426058792841468862696031882129864245156678764424961355201857156964365523078921807417077131646428923339424261081531018092755309748973259320631169603784428747919184491544345470279331404889344875628757325990058716167954498022792414133987826994309628035843884096373490151636719378853284131247122905062698303531178260798872096978328418273679061268021287160923726911970759449746735165532746675962638796262062728005364519237179160951787014980521463843149160348536738998031558342582337442760986373082776596016078535783993994850699364828599697834792373299942016862146254566663303507291108190879457634767592228322237290846009011120689041034082668783453520291955810768338781152476651973527974273034905687381709556821756445458032697796765074765312624753068682200624838162834960652093127219777251625824656940037653077315503220818746457388196890101838694483144106188552650728990911912275431171391031327699157719375165543515125525704368437190954968733098727541717792595336545224022353335005616919739393722073536395206101771530175610843392678208621336355084537528470108229080500290797994388212329350026287328095063052866725413321169691560882407551329750246732680870315328801553085544995195460148037492683357817779727089121381136922167391594414054976840404895469734595176005273127330195109404670244028149214674715042954315236780617611891011589956599477478821937233642336312603412444874242850293635959520642737113545711474315227552953988973676864800470787952964953004531374319472094629152447561055815960501895740180700959347484469228438159057907046524030640964836817977841212361826759153653714942572057423659279959278765551231875664292138882756988914128033548835246509833548109349870153027377270890361360250265923440858196529306069658607962955497790927166640792823886040686833595464403146655467631422033684071878170174899834631704410890300890911784895257992005547312269384585831605925762338498641361618449599725360252741463092713160461072988652488558117918216083042514838342592353183619613642186370201588188384489910805668420102882181278964877789902891520222613707078089271039125222852090365502740910409713598058173356437581895628660792349149695479370263995347443295062241072476704790266551730381134768790952303211155204046956802993733149822133522040120712510948626512642759051289569385368795805640718059002414768291280631123173345576819060574435671174220636988841798321172984292642138780937953839994590593224800895273310012300505512049852061568766526029937986256663682953873499490044258413725595462444609174455275307379084058151392730939612558538150208255601849515713506099818175494216826496334836357307059651371435481847440708558662262305112482870406533027129196655274792571695103218162288894884149879307057634481001743979517129075304870153578746361358848246146611686675399841414704970330759053533383099431872402310409990422979118182730206982233292402896199738582215453889492808655830954338891863122226266796015821399700488415854063243202396852272323708910512025361031856784457749975137566718648775369403636829268321388542993611367141597243346234287239659410513486399178054826967562864375654660573808456825831540834437379399537271908133567625662543118293755796131125844036602079183296218488396023649966027938620567183536963544229254704735350270150589196518972936243911883008328513259448389479909185714461569231197373398880546839617061536232275003750031767920087141011739999799118489271353492147837984286851438455440611405845271553368091682106485709355739236963419550064594971553418855605137971427141073983834580161500793863535594846121934464050405175006646177942241980740019953038536551360039978960382827821303145562678584049092172277718145596116146241750884255833949705743248424041035315059833185679579398369581360606791489014671396718762277570115416670926553928190007352358890744575126768026264514022298782969526441208161967249086062806689417502974894788115376053998040189569809865491404193007980873895543044747656109944111560028890036928062727172956783407292991187033289643709657909984448951586292433488515260632087027453702372195918830222523215499610424255934764890526604443627054750539714845731219257557854487188279510540576851191249993088768357065179722265282215080542004526994933137716143444845486612053298853440053573198961631614335786189285007382610189544079784572865612558817520842055168261733397237476706411189015925889014707825755585364409402594369180056885367462016136899085017956330171632941876271856151551381388279000603309418211626667253118944502789627352398455259772374642168391169308560121667383021480212365814661726524568771572558851649055934301817071136319717841661534321880172556277981679278202390929880123347314447881142473634898545846073293614174427349546730502353982768462519497016554823496567847076023087949681992062492684723323683941414434811105876565737454790601312817923159002908950417411950441538727958950651463219752460287985178011276789645930133001210598212699060378914636515286466387302009678905109648449748234479520032077280823613423717180412478193841048410270601212044085789297960319641743544446815235343407427324533203396692311257646420713772385549511377674809648075587289550855653171352937246325130328246022589952981573792847890012717605447978774392943239737162731856163856946105889585010768609535066790719055976458249667286714172044943676052189154621026651043968461519947545280457799609378780919753669555098398762223148787964116867228123208607685272663446617378779205403040099775131476572457319251824644567656589009579078569941992703082734054421499955975468198967864969726763387102763741006250195443597149629597509337243109864837167339664888913538482621030110824013096984275824957148633372975685092667760685617008283096133318651948729718263298605582677795799326503170648736691688721078258145051087921847255487056499561755797063319163584171138744076619798634560389508623185828652366409412597128782151678189111308918964945863428488879452411389075193631728905076470544707559943099716847793543328205548246581938133441282303938561991352904356660999461244082514295556868159000384976319618816577281269949212698144344423572439616928846644581194170322914933075593452708607924637925728465401994071088337663986387477500444739718895479253167063234274548090790510526082432742983196744771432493751210395386486898966136795623618021383919307993656744402534735897583955310710322299995118361848692920305959121299405499538877632447797694661468326002791118349640627521296493218387033545901492565549882007090736361072184752975309762964534737830011118591086842398776723648359231525452165687723904904432732395634205461138373316720531284071947835515290652786246098328040693239475436061732037940661182026528618137947417993402015926926309577179585030873765383799090141477309523547586776468706026089355697818253519552622227523511615100297458860134744091758356561020515923851456387353715127925402032445008479289212608949446971823696651260724784051403827629914358652659087637936012460213488357074731386147065471935456624932949922220504008009763961778346914670390964770008011466812690376771468920926681433033973267838170966795985477511634884661209121075170867026366268945088497859037926974991736155166924466405178317557441487915900901473341015517474936251089625259145862388121750140014685930125656724367297294064779488791098150107341627471303670416644986720985292597311365748875384255574141046738889056961248026872262561085716829555312485880330812400031923167896159324545202360354471462064025096501705959451388848566622728952609829521113568481921135040598494929218358773098806972828826226877977018574131384982167779320969141561599335450351206819142567376102089451487849382357735772516502114369502417300316973191797006092403642749080666683385790173018802384943608903592925249887264803705435541019182379989029591914616589938689841736085662429328379303326239881997182166903417721973538782997754044015286108827368423865516450843265190993832759204852926299997294253081336973999372811435621909411025932796115323289125394040140855965892230922240428184057331552238629341293504387135767524511427522587009215316209074451778480635371213940713738220273644563296199463116337809327959283173603118761576566724836804538111359996906921292386968828429068589914037780856938077527537296026831725317206451540676564340111683240846773459173121868157208467765875268743780415615584170507698405321348984151749480504131705245194276643344502209211835680509255556490146265349343885291597613319685178431627790222240729878879367545384753464856204153926063737644562568312731389163030877358951397515338951909226531125040117903284111136233301795030990228307568764163089562613344033228924724553228932509027677870701483718948297260500957689781822573701782162639302351739216675726845667700872842552602356134924635404062331521936317729499923410461382286901283122134616652377589610252969177128400151930207853684691341445531408844369707757578228064365770956199109160469212372970160075064487514581802640559323990877811758187938275541687927409023770986387858819376277077170282290816984356996648749909683116455667890179161279573197478345434802676620878971623316625884928093894023820265617590496253171577062385232173313971752489202475928424666620198018298413328130005644259757813629651014277767940032654640351053019514628211476038772055922807799643197887754027564661688426294259658989211687296376186480033849983670784846451491925274830012078285542406704282443054659901603676308874524410450659556166117444019473903931620753095399717524992392487041839405338898037699863411162173290823693379586883218641431713291836356417215831858362464690176917774473389351162475453334281968417177262253955835287975768575556476174787916920212769076188589933043951593390791968397786876473402645530617352912828597561527240878429980661201894965004100503477145584693729219686863365180436663804761700577152487694604442944879975092374653813335233511156108112473005023344873517275901270542484770130060465615037409546983887637289900665534818077652927714715327898516194199689507410131283886346681902206975423995506474128451965753479937199008283422304501986409330791747181952817885439611282172696431857132038856995050945861428289922430972406729267381173051658285546568591782447176062681670340826680511730720062071206219013624549899174822336057341631810798424718228975328604671556957898189672389027684351512437270161193804370948945725426488826296820806479431333214951152859524717676143484520475762913702998553123739923031457425845371345508032167583549032120891476654705757259703513090725594203641698236004999160485974674992762931644374228366420476531272730925484760339736372403483510867421946552647342217205423505177684133720195293549965800862442463566549510976373952083977835968270048473182186081941373104196017795860930880639605697004391571525159636000256762412241740036064021914732725981973335649759641312207863469314276258634757509145436577562417210600179576491678892832604734995255262194167466948105026466928633918489446052974852276850187278194467901759919863964808978442885629843996127102986985627412831145285689037876617878340091038569216547105831756800570833336283607410106374181451226887996786660071658393107807713579437071450454672651334782683707549859566358939562744818994322499993884697660331797599287896732978166201050053362269440357511353156953130623816410867287087061855653546045797834946486377079003290340342477704408357780206607918495053712442441699397082495105149524063032639043801055341273187831910997598399731995680743412094795205276948824667542003818736702350110754513146943987035555680602169409885010912343711983931724584960763686249734712194475830115326057642721836490838431337470499033105228316808921895878326429244284178679474647123440121517892581264843876482512698810473840818120883447912996562793867900627251750824664551702037127123415500018966935815417834539101160318153882888985648446049793829152568612428527168169473989521085537072957546325985650426144162061957503066354289839703915766439073945333193532338262084219947386094132393958436507964352747150999855880289465138851346691411634594652619065784423956070841451511123278074683333402711323882904545973853981431759668733329443894911945312438511803487300484005760067126358759862444277154963499441102509646583105738609637724041094729316349860558462033720578191844436318438000698788040431953748301288667838666217366366732616836243233803224938285323986114426227455058821210105680973266879472191430249282543167041638590845238739515395385941701370875442180625878753057683785079279495403842290055838411656013382026206409476490690275592834426713885291921173487247452717528112347176577623319963894418498167946146537246012733476574568594895680098819303023412833497248593857118160626000686384775329517680745879663631441991897105562595529746828902809400717742061755974159320723920946459057362419736075599970207450490366560289543751441044717351218269481473546032632241772424018318578928577841773391384803721429551501432296766692222193332285895026158736478002293208210168271539718188492334400602362593808194807916239375147881127740321146951890217235515783891509981613137138910759375203265149373911629074327674851299602936278629455429117338890388817588079586820290540462526901322762967311897584376899833377681177308385282188913070951495796745489683703550416201357670123190414591869591609839484434551657116443203920267058749493899478548379353506560090871500972623696196456799112706902587041872771389701044428436635017859732576222147675441233398787686992308562257623459503099268150605336627536073416789486976874742879888299297731121262074286405993292115674625735420838532048856258364205510989657055557924639629745565453105659155741776541453346601894005221372067776845197148169075622466851922772195820968195312183223413360044495133121624540627868085927859145116770746922127933905929952623317778068775146862348113862037109627108594486939875651349805531879611512266364162049683339730539500695714044454903417038481652870876174572742446064134196307567694702796480977654791924217626336600745576951966808425490049331776628375681349180739637588993747550006093680110240479205163033336462948772573499577933998335269594434103744703195351636237641180996252166240642100399640440034663138401768160105014491076550513419958205599913163195287243604235363113091447651907143338888847729420977918278059635402935681977809017749327066355082772477063074684514050603264517707371288669631137123129876416616177492153271601777239672233840484817872620289719626236188792675990123411957991016416898362842566169100469836948298686456170019855901400577499876333634498813354783811256449201322677447495783138469747176958218767236181185190412215057077077424285131887256208485526367092476782922896302988369101015724342610514370739479544460434406405918983035400567705118701805881801152311481038784653240903585547286980225601901406745784896719436835553025100975347115662775167298426127035570924895970427829379641174045772038306093122534981703727610364235540984906869133063687135887742183851133592361900631985287731485937830579068405948164000310584978090039093589536901627496536567507519535376013994732594504822962474118741074620810149203937962864331907661480815783605252404310455989125469402761539678618455130121170023503592369163129157068780784648578850153165523070881645314476938989018802429329741552125513110371419388249758085801869733225987234691693256699477219556598548001681522530946569877690836016802331263010776743067097093445379546612241765679267039552097850461545796964201986411391463584401880412602568688441583832594289260422885217261455372102787038802218444609277940251004760093381828535774482919428225775307992829645727943250432542423556537122334272181601540189358074331382201830357931579652034886495665613342126530080652241526152791418694791753689478889154715175868776549442191223028066793914217044257201988812373808008762222226536505778252822376440282590929720358652180506430039010988633888725785802951324260288835630725272971890562987863829206046326964799840823276893494117089103016860998337320863005899823962492941454814642117034308506207059572632317633184680971752493538012704392497523397355164542602972753366740715521789154515033312509002639408081177600423235933344859631046149496780232171286353479272872532254751785163755569368105571163226684224391283566320848550747534001951375408162960105769162555372012058265697223863316462963627034198452103701034832580221939271570809802322834755503079944127230742519642030585132268216977187437978969482561677552202563603488089315152142323066779570513281141416974077688325709335830376465354785834889379669208812506349831553620662829301305176771805604648657733388605012298546782966665705469960266337688626512924406738607466200466271852633867753949265949723736113883965480640269420602208148335583510503060745898045854980211805608168806553147263407366719150259504166324179640357419227316650465817304954682581041664174610530754406735060933484241546151525809972484385352185706614360389192041896822800245462453412585862360329998513432918132086072751347983856060386128854915611712493341843665647478695859659249567594036321576759560379432294543765303433049203203498264291737072198972486275827660529977722563370682910872107688167770685137143289902601494850265800366149279433597433909522498963135054293498206050327089016557885766171162152041435607035294724940221183577989102985184506425135505046538023537963884198785484156434285250551409191886041362665641113348246819174182060575357132384409953344841867794973063592381212721038780077174730407896440734375332844834154573094048237842471509216196028440180942523448007783899625425626710346922859427674614509694798150768093881531585401396293775475836555053532591750946292375623919845528963256695038714012298802656040479886817896370922564271562086349905427925614392614706416323185329416042649301773480933424629819316310589599636643281645725304717777573057465788850989635825266682947751344457587633388952733475053129570324719407735572382386305837645358221057164028505089954767851766338908078478229548536644234709659653658339801139650811326149583474145157130115536223779260837830809802029933183415201343072849880220526382163324229408544301082143203740512987381644161731097246213848536875409719729291813160201238722725639002885627987865159440623923302580846886758999901065905656475227450234447334087208962186518704961286442482979615408003882952832598037375522931307018727130745331522781536789037173965282546723319085836638971238366174463202227122603068892013764409678581393554071507181302845090009118606356267935029347949844237122286207624831743128137137759746490069127631203717868730763214184198558845545998447965798512202075941960435312710236517522340822336502824526439392541656326285569343767523002829580763499148618077405350155910484888506237665001419347251580169583179620046517601673921081625174918252029481861675496950260406824364883196059053385891295258185251771988947251254277425173103652771630232197680736549188730815247970823184147935780853424020294003161634573902673217341781169586359767433225483782327437676638106989658950543681227283089248128627962623155757813474444989264658591688500302524762710016047653642066998669389805185193756986506118184537886640729011682401676393613035285908390611995214341414654463555870536028665413872737950682123589962382589732633032544142690516067267918395962903217424141953906839629186016621123395643265487317587305146347974368780765077544606900828203549635849078996830650681446085256160037094975058168594634822510063931042478802468540951532546101175441039022145383600542386103173621253598500764108220130855008526338852059335828209531461272635764353731679274174223349231341328979429719557921363414089647888533182445013740402917792520175130904357433782745185421825019412822832980402247056607809363817417732942583313400416595369027397210458350483207417244545912379262698984093287652572247202437267688519472478157939878031900623719859320891941521267717617852245632375320402962202718157795162899681984889041364759167343291275213868368988265596942573428163526316547019650753521955153615345497978401183790705476857625806332563960184217223615027519883806936571544983289926146483452595602063155013018118481919669639686352996236913537067650628751766292096922071423022376449472144916813032194758543668375050841538455604902044506844236347137199038374879054381334124253605150570728922257611237539216170254137422812299120127664713141921783511120649281872243195158360216922567146224850505688369730868095018517792023660098182199325721920072634252165505634562566753528348778595046501459454493190182842334567243497722011659152655749503331698466967965353258877929538770484714857948288584537414744778718737988328263190930120818603792626746411041052508176137017368094057587904370032960139853644188672174275680967023047673700374848488728181560181818922622037570752487813315099353864271792118738345310509214886001144743265686258025031676028838866921812924311334862908670893951643749311186559693557196194660060312432513250835377454113072815141425383339389944834980509223606014597919734096355289251094209556829686794396635794515050083734146422567459480820304542292907535419038081422029853619927908506683018812529543844847141921743710455015586428182855477037986209168692805093831921644154506623084326652455425800605765337780040458622256272352017764252281805073683472685063264155304224831701738488016661825445033357544664778926460878165025040254209946958376454234207119135443220963911891967319148616673180605311062063379210101435691936178628918164943723336505907448257443848373504291686155916457784449994506606834082190973765240500977853849873743533216142328349302696205514243777799712395327767448481953801927106002979188678613819920251148367214934221875609484605207270752901917459634502299576600195322443252882193099991800009713899272531738542790182948180280557803143258776537816494558085305457046641844025181583308202384397588908211950726921021069456065038219557859751103143927958532829200442886104506842909307202420219787552489024676732330272611257138780313882284319668484925558754979119542645783301695992539902758332547631244806079357342606698199089459411221709698764615678364368024421040550402527696652833668226099933906580548427542324108914931034827798279226280483039115179588425931928795404354716341163444020795669525270774995392101620077462902635433740156540138403094431085705135261883711110796451692100849802305147873585532074788482542875808769402503639689549283518646035239663529459700968491293748341177770058489372448024169179771750073981663792429175226730529241990152149227068982002157735763554291096766032000579806250621256235293750196562277570023598407531998640279064351843085391373286596378760789775723934507357493734472627539217816115526042447891711765337703217101324970213218203249527370742625939723457235098046815675835440265598272621383283326044463827357029989865482004545923692657451870584202628134092689519599454186891606014496069416796178625810861481946241532470584381941402272981786343651565811462500715764754864967940223526644612100377270797970128785360737601680891393141971564368253481565424033729089000503872629376974907509651851725898059372311761339685677834841385902404954070694554722965016711479196359199193596652272402700445847488123391800358520038562704030136696831439571552398573565168220031430552926409556534754781806173245402151508810212060071064934929782988252001314707560544521154623281643363506424098898595701719934614338784653737948910927301220344294242044816524478892112591076345201463064173643463022972211106896156120246293827009832537355657836181582816461401873146529214714929010402615682729584842026044059624746400731035912465616184612459900772387856085150380338266595294035987963328741354756951393157584632465731648515209781146341050227996310491641971963393316358380596189389565117152404525205831392061896740556200143428420369370286813807009786929322989357217212958349817335538661511617775641390797922349072064343863753178158805817666386346642283345684811013753533367406084938709437041961665321923187711230472818087924675833851864469024376919000785888938073959761243720533211190975403709149639926840351008285722808511089983286921245867949498277241248070966484692624322273716120661022825194436867322707141683270109860847706058657534376519670825177651218093327794936723999293543701893732769036765857082190436998854770740112702500896455664274827471562833969761046715801702380703869703184480763675083051872547987018148341255818439522569518355473362088906264220352445680029195304667408585681051044316447864008292564662752060208194980960028934007724923594590446897481671059174782088911383013762144480793386178792393966597248520539709796560013436454573700576753998229651923645072086816944085981471698974297193683224950633679996964923470157486317733978927584683775337320659421560075769315505137933637119415949647732237483318057114821995413354251005289368351377970731160237464658461634732832362282202813839120976814906300189147814880278958463600130873911602363306556955840792372678227904751450070489638598577330799665821166336337205183791486383771007216936168821722076393385207618936835680527452504817395100601741225467480781477065256565436346187849790610084097740417770661484503651060779342609422749878396420226269316072343751608425387752444278433337452063418211579749140408202570937056885710978649902611484160157675471806120989379344022398267185034860165110944179444560333250822022509025378981731005329652951528114177545836113793348848113743539930635283766757512297585589159605720478046151874670407335403668173986735145448358464850017781998741147213771536088413407664569791709186349046061780569089134074590906487006667684452386061264413563942948367008406513353094981956881316152597580875913053972344899894549706983115745757502171214216893520954299543301308230020144077216382182727089890974406523936339712630309779349385902483575652918064867702377644746029332457370283965140319399481665262021747740764045346555437548045789174917303380433378024958843423034625945873425992284306564245719313176532109311428929874350478377534809349819847818169471996623557854070272892864493879313823212064861045820593094429916089177695486111000275101633608773134288138811406618572272174402960422103951339398585513092989818025751822630077813801692320508861251070448039622191347552387056754936638484440518440509256519207442505368104367413470536683939294283443837186439350867857175966101515018957088464359143327163699140938247448265100772312501561958626349101442240818652982010203952797038053300783182485698007206090514792258191417325546561155856228235819997919972564234852952750711586248367940301285506005188339323546670750897118278056143883081650041674622774183980057246329593065603539732611907115457480520647849695334579864135210452416205071955581224286895319099470577678035610161692175378941294492599169397305950632131196364914671822215090857153603986740722120381649366295288766372771176224218156817884999307802430667941871577753261335081113435811218176594718669224273327188285944908291433297453914893645717324394203163063060060754757578868449728739270816365996411978148971516378799190950759064759348074886478557196431334422200647195357489773330089042139814431048667854034835952839404312025519000760190850539220732409523068816565651051284425144492739371077518134784809687977832626605710771165362159277475973440664553688832681720622735615148972621295390210029354795016765852509639405305720461970275078818454858812678500954742382557662955510692668135716549543015150419357782822047166606898907006496397193803943460139728216034105678094997469763341117373606801586629344290858454328971743167068615457401935649971730225811948645291754097757205217808435978268086240154551677121171250460744717712976109482883231197614587686702588687044925242161924175552949102159523041796897992080642099084386774333323463014567801520374394741174689039151197897647168212960258621688191525820917257477636246135451885470291453537875023470866926097507872082512467531552063581698708991885444251000174376175274800320178714365891135206079753889189662485865223213554971617948663253607912644233051051960120060839230183710868654239450016416855394317324319581826242925906013373141757851918485761686019497501689751709910235889827418851759117043645066458423351862277435995718857677032185545604409763900528874553564916071780506893944507995465838864045716387312120871572084334189046687459478238708230776667832508082097537581770482571954576671006239357756998547574554014413212268882254907123004694213187031007475952602056795475618623131038577299646465869201518569350182980026919364911569901268078536435634930699189256895505435706143748552651087318665761556517574146268839691377178676787246133430283613906080640345939736824252458748996172973824635660455146652290155672366102350715337735872404928014445718550339793044303938537538045363483638093392032323265461925083369008733115494261341640474280153004840444361819745908833025093650844566114845418079042801284456683112622625149240107345559241913226119977775087699452923027808740135918732320863346478528335781279820736652778975362682619898279160603726529329241998483176498681338746282129972711438691962645668459641011757022391665738024899772651583527443839935439650288967002358158646842129580166128145370305480416699233193219364437264448172311609535025646956365623852292226311863152766692676631354482348376725595927391097719172090276924493174211280408851041385614082970830506878444210091740657973616049699012845223188585497522559847880776456973722625607139140170480134583641058670553360897202716402499541731497185504492668931757569988709307502371864722440654857906784556185586548654866042984314618422160897755973301461615149190581718793819965076372358276542775531214233316028617410410755117572742657865593663082358062859452614749233711684389335612872867374681103384500006051711315971450790763616292518873872058811592993601018269394900467845771494720022338267089132069747824987273361485081365006120917165413675711781747778611085538913203821838506941542863532925950938160915215375169614838877453865285909195986881754174651403360311214003796512967479484544126840451925812168485469409100295596076857464700620902395615673234257197435121735006928050856109544178716180162224539249884028013808599558882185576785183479190272784006544021469196619809373151389664112174134616576864223194732610474649113793643313184246274334143068914884764968549289239725182522067948391966993144202517395361614788935521442695472860934789043034173610551097012261052700282742665678744705821039425894823887454979166897141544431001409244761743304289869233431508903276491328089572690970198060219193705436000586776452591025736679209251202313142470485973356094435218146425615191392432076487916980681418764779554192577640787700333852238927424209209596756674975809831565860981025591883602284075939310661417935234995936228198048219773877217563200729040970128972196518924809135582107105739730858330367309222433278120025157120233277324216456590666486147850240180215815295387012681198441667873230386404071262548014475240272193465363155479536541842970815622720682480770348915384740503843299163636685789143476517975476204097906819615498991630203790939673701440227986587018692234489766538948838880061801365821824150952365101891716612037323978541970966993945814358697633517771033555519449577171106762044994029393432272483409285702085775977488967228730750295577491824667990250912391914633364521828726554650413254540727340218587774787030989187568472238645484544724428577023680159868781625730926549284908633723349194652010914097772664715926453206849877027269258652031109024077066972941281455767657154187327472890290202413383176797525323424112824440091718891842776764198798893514576068030622674128116946037508908984946035724229254219653619002318289078058652629119156773829256462710933681585249457171782416765787153336756631364027654535019624515689004441936464405131951642879197459623585300572420356873958350277726147809250805472051094879764300388871848001629289359789332242979069913170819675192727483289666980646816885105414250346000338240967390731325230990229913886463929803255663547376666403358844109204171221795819765642691511137768781735872936862181491698245092771196134490498185607611025186203870633208310944315962952890721784517941011413562239763591547203009743681159096260418969944385304963425915686518394577274027729803442511225909447820317260893747581281678367210366118564262419851382654022776338243584333522926745364164267312486890199354716677559074462097698909085829176652025967652014518749518113963704663959105415044437013201833488997539532507353220530016057079921806489535818539531816318108114619349930176216050117312614866076718829866399567861742661492843544986932347138558123585205043677398601872411667714138394427521386452607451068720999913284278516646968163156401116869464069903284523229514519963632718818962675568629670805258015481962805499870548241306015745253697306023360314415443578206307236399135795495486044564039879483606126182404279418178802411556933763179976160733987903912393086876694752403270260143875674040089595232899670863977686545574024465775982378051296509620311753933949223698474417325266273521570554487258940788513203588937070169823863166815089080413990767153744118659746654768205457314961308382927675397052866122875894568378612137291186527300290855874063677545143724180760401860916719271897117900045009407338226901329994931756152762546791284159262310096301292743051753290266134744025979710998962032272438634776057363476178085478906476778026428488704677751470566287683982236459423330368527836926002065334641221621310340165704941134433588630621421402439893183143660857202805467970658257549021280321652627796672356368610882302283649414411266181950694152706084087521731129520553773333577892069872498279672035625555932889053891545854324027713251461366468124509121973870091813724123124697972088942020418690689098052723967276825010225061673406405924990480593981450642034343660324998563477668360215799975400552960487604462715701904906474683440747276042297950403979582313155817808058384249817215623500110113929850757783738578979570471753676280909590884687099066600467082777492473935108240062767814217429293831627942082488768411167133973489559811957910950669500299143805547994753000793825985774310198811607553516899422387453457090778896057258993122633042989006418426863868390323897974671583676722812083594474941729534408196395956417075837844890376547482851843000330276394468048447907233959731918063114156386773608056559029826688303681365623996748612765044678652974905817744699095911287700879486118656390841185582790071362454916010683817545061010085939188124293153682157212649116158446259087202444012321164966016464887458253301562732184481677716516641756980911814687215073243134308855111613671694833494751578329311219029326439222931417215786318088000649717266697951876937602645146752365280035053701952533266237084013499535620969479240064602579356162822542550572358191781699843199191842987393318725022394358054272352245331476608044830800469298675767097044173944914347559053314208656129806943046994696343941569831312782265698020909485377187566305518326402251159085229827333559373558311414222290160255921946345201401043271612151784675064249010470526021287435198816901777730785085163162692848847706769771415456586310906482955515058315897103915073501455084400257642051389610198207689559079681836650703823792484167384109305555798707714813216324939894999374065555965726149948722828942150049483215962935702819640370554988644119676764184037624537082737341177209328327196302150426736934843256315890777548327773666995538749455677272529160172725428896621866577722260367621438568337603360712414719025253165707488725689245364792492191445548960163013611437326625888651341737268196760363278985626225054026102922584115781274552559938134872720113672102182464700273633711296263678317811985622703235964513472898378731876694165427737540075001440747132159521646422921374493620231940009406464937512788957649285286218273035415639813489164299720324061071762726899969452009150300449739273940363125232115368761982722031551789658538631975836432646624128469110653329208947601143116419183766673394652843943834299495980839787324782303141821251549437039570205941881386058856095346433567665929701211384302447788501248823325414420668593321602658610892911117175058584863735628159126428393457429846735671525368558347998164710436515377912206175096723592745380503099302722305162045965346308416850125192675684389045078975370512194391751838115550940896418413764955046223798942193058081985965202691748554855367790688017882126752802612346370248191084793731975114756953213287394688052821686079129817311650713239173292077759509800496177630300283589625536535475005589299451689173927053018772574695133111100097835407777693643717422738980019355677936499275511753650815815230983455627830669140703772124984050115738466960598749835836312986647675096234073906188440483663898203445283200878169800237345767496304813005537409142170325941123991876989085616515155937820753225738449182706505087658752899854686265542608436237727481766201590482472187161945484562708049092463463877414702765392074990510216586891483220247737618601339772663730651270566651977807664503876251532946608309654068501707254255572705604260160492015895076723536739259573173286213647050306165134351942816253104545797330541101912052733320740082198247279571113610633839984913180442944752195310766384773395526706863395759671238370873339314263790654345126620907221985214946344702044385686420579642696325849907612435957777804585500823041475697882743459381715209649886028781550419954444964804430187435558843200732757827185373675740379102023431484692392102542387781790170522249025749386046890631583614864240834480088155747510058892730830697211346370731619123026803357790356761565310808331264544736892058747397966390455189495722331465839509207155450821310097548137254494939503999007715303372327901445052867456854260976961497561506599180251230311537654140420421171411929766654669125445153745462457475201411978374383924382805891927798289898010513474853015683576274849262811861210573246132897798853164887882960633472121182351101805751408329712157705808305591966564061850983482946228079491265335341696540275917408307677183942699859269070437879173298715406856579532226688530337638790477076414006507171939235242406058039002565922119793116564506721132274624686882750148168556225913539575979749762139984969088698499697625520630348737266479490924216888825093491809527615617654325873423307800894080672285917280698147704746316135948212048378099044343681609680509707467730976693646712070711651996982957955708263948699696996078486746327953117139289505523752630859837020474883200349224082112882657022291074577043659870058597386343796426444961007942911047198324699842933821573722659395136205294404098380244842827313811462048106259408455012813651812144887615537225853077764530639965276807956210320292494451820855672177915922730046553597121640094064041927690458088066328435500678175107775543542091278902393600666443109271844861620995959763949529718638168530436516926832041448539157571628268286781904631540987530381565148908952822586910657758154412418900778325943869092639719747471615637037729582542284650381611234621195413160842028149223175856361531463937602486045373863946974341342458376501152507348264850899240815130287549076447389833606568479602768370991739568147476918807738693291288939702550693989279691795971711374034391264226866262120829229884567269616498933850853511005908548581839260236704309523929768034918186188496564071255876372845554784258596801194003846872880896550015722061779747721224009343403793340579630681803232774575271763279271293052844162058648242444436923658015363389170079046713673225221451354608887155609686589534988575357465492770322232350008739943729605109192041081085375972216368794590162581578544755940539899388291434629670678627710788450270650792076197344800133175007485136524605911875822952967222157168705319918341704365357869309876538206854645597360613301432081288029718334060537684284489293336584032191552062134143094421263614848721784474871469577749678414808644110274229594363826287972116294730799033996445646981572007382710729221552170170529082521295130655373572940110287363747184754874174829472577589276360793843898010435707262769120331586209156232035796302709229555938615510333739305116257566000075273298873445762388313142901411985179761107406759744205735188626218930691071299612967729541066015656799713129688376929254790932440150530132764804453827290907218999534366748734616990987855935402163995739173278404096829301052006603081350867158783651053019863321674755041964511811206999838714650810186034433509973063001988698149184200513734520124853351473972949081066983247910165812231096579001817005993082034482333809687353401319626838450434778404300431255211549940455151144962166062070856051893737164111005831048616387807571205321869607071822889506087391395983859371862444896646558810413734799100428780308752831105818167229543176457857758759280539954864754862287626234490504926054807755933285310822822986802044607800440979346345694652442269909666376961854433030324196712677335721269208042704082137074425356292518017301931674739302560239024488550660568909160312889236216899014438762780457652819632920394591469713984151901676751095156719365236241578658091436200595622926369027256539772781569927808215773593923080288570815445126984672608908693469904600145568675538909502691696879537711286384975736773914716196329992160762410077417726323978321707713346451661037050026325515186255357641364872466287113249751069028597120037436002218202719911649405959472505222239592066205150980082197698128469083691103010286358323364102738389093334566715522684613173602296906488915117743896546741477788086736665757606744491739572350368168352372287240112229283859434459010621899695735578979786490197608505723187439301516374585663315580863471916903430443198841480001352382156372195456625047115299396202456195637490253045120050252961807395791016583086995586033574777707276804950682904159051098634946161065623576043975193779907799122056990827012891928067899368959142726435970655439548490550384526399312665922106373765269191667338791563365965366847249620518891564334425940699923742540641174893621220236740651786075394090899594531987218878228734533432690894335444732614372545749658020859160977572435741487081217351132663544741885612535049332399243606932691931379274615574989020284291523789065549033755779051999325001980385832630380705926029521937836083019995450957666679963119375387815254189528205262875534525182136294195664119403911973197096840476886609913263351526846578933228218651733753999273455802789621137450621126465125005362043154364049064771790449655559617992774132910947624984810087074380109276729420699699778274027429233246979396029846833133097409254986035137076208787685190219004862647809023648885376257156639688725735733177697684507200888873731527146573928529528376851787248624647389906392297937612575261375373775347675502840161439508264071066417188541437928771718389830495698380161809815796042209791905634863147358652729954950728398871582847761165503699217427601431788127369786051166842871329941319046413142752357284571289521382418702569572555570200983447066595023075733115715230738927034356417275852258388322001247216322042968153682461282332833198982684585774092903410842130584550981503864506048765933433254471556001483205396294013235819666312623896956307477553354318283773355180262717844260660141093154426047506509201155743581293545609348667463701445115276368738408761080327384396485422195713223796669746902661774555439499971231071727125767702852251024928362697227277326300777858930222778042806291596772477636064816040170462663483799868892629177008255505956044067859769510677235648835408682242079843374891015636412537919436365974727242094530641494040192454355021046203519277113744929735456991471950458211377154040559064292477787295262213573402966058106710073612257078236361242215833878217528712238734895757859121092832770346558791437546069769338035123493041140232001034108827744762607531863141861533526481278372473369923570579811737997051385629866612503057530217990383959974813930384391191389695237093404446166790445585378877231013333339720654191917971031462811484992764626661385444544139891859970552921989752372856608703986113929371699176419008213308683463185968027882128324596605416119200610926969057841368276420021297051721062967933215201825222555278624318728106084569641331700982839678620159418359310733648616825480604898389787739258902067683443159353771296287010990953159932820637910718529973941729444553053318474760941456448983429305467363454398241500934331987745410300688351841961808122039933361612321089731415688316307166406863280239158465817306520574858198870401049108785260267171012632412075906163427271155488860547301108427989350105871782988505390159179882582743692936417955582890075161811174735928162018381109207651007246946420324318264690319276120394875658898471880572942715152622353722431688996706120058952651095027224400107724720881713211826762437407622471756364808139152261967150612800597352010467033234249351197001040667723990952743455443726862802682783171133939257620230657970778239151581888845672121488080765136991895569596653664977627328785381548771029132100690670422645268376767384588334150452299180308638810631535435106556584130495121825816045834351189164712147480140498330644987383156263440758688274979031000828705268618131261923048796042471570370391591137568522666228713733673398477417278835112495345056125013907907123456405090835495478738208656031819345263340480754559623237850700631774221850516790813701929070603355902185110241627036170648974037856313025926997235390028372743727279226858977335407312261427350325161273159910105743122120621965539228800876726105675728301340939517278951690772490235741733692369082159025660585186739368553946452677660890531456346322903882546594240720540331219037837314887661516600074251780946824962431078073009588054848132429292541668502214095531118072707542183142296258535508694416484672153168528829627880873990544254015962980400146415911105763641761024032753107011525557703235668598447421762336741759278771465124645105752811152117686913126054875778531680411464452195507783545826802809380634381316941456656771484976777686048820235368123926730407240580641891153474703605596231714747196395491053272634087214367401629806940244935563577120468539862207475952604481052058578718811661644288727801710430187963418340544203671528237549881112409064781943800984562194344512234002332548305469975865545310741613528117223854713831506457578023034175350607719079679578547122830546441579042045000649164006691243819226739933836840266262669144379920882723619192777593892340423998582718635632965120305992409630138440113398928986869084381193631058061426939671813634002533170383860234665718505015816909675728982217259309811976112238986499056907985432092027533389768144826583639852677437987001805151944692849110440798323226889726930179276417292854844317987094634707711052525452644247899078703151554585663650809539317782870779791862094265254365213599864514361135562050752567814586718279704542420001212897531807194186549174541584163970896449186380527648129354742301166691554939613630615838292716531247611548193613722818576520762219669806535862158622923238759300290505414520125522831650247039218373425904527398231880519705637683895789367774006933312839048045732199046067425522786615253961606530682003021757431557983319874150434200055296920574255447006146213803890289619230209887694029097925526936730953895464788059817434372923924898891149351171831939631206160627981238932319623089887796853134972199358572669932149294852337349837240926055837068263869042320209838521352004362145923992741428638099239060116986462521721417961098263427248482569921565332475475579725694341760577843740787746800355651654706760611174212692031448806876225579893634325411095820128235790542860715333836903157566000643310172038358961726569718674386428881007214235535253055619823373926570822383331991868299780888029258726586977396957335958067223856327428393825291825136206946913277475799084436119141877432893714220112899623530483947834643869583294836954763139535224015957114307076914141312295538748749464851638880442937370689594547199932450233363384853463477128088525315148507522644666476756559739153979245401414191244178343065447573455561648129890560078162021778369446849189831664723219010310310749788469541178911161094363221437852039933998091278373776157734538138310821206568202159990642589708473655732994117558374204436744345762924321436970477198153404665834688298261780660071633159502669482283596018468753035628572030958268488450814462289628930855122873995651497500509944556919658342957222782810344149706169253046980375904149284204579996355878734092841052953974624338288220447735161243375824175387009777838527399389201288648676825491852658887342257067107564550158911933060844655192449188872158476461031084300449131606697195399530285063566305089551008426790034326333420827183304007632873645538966287261682020991871772461624223485803055534902463962944212739826276896428245405116686166563841524514130337943719799242458985666413513766065244608559290103517037240915549396902154362164146278971053990003826046942794019986938971533508272229222499298009756801123633549011363788544532262265610537551603283470374926530479513159829785487280587714240605877555688803717059377933784398083475034251136201931754178013192629331820257278284109910606672560288158995468904928161172690466114185383924879087193855627510999115945174146104991192326993275951276642365489734219708480401667193995925479401987817337416355467117680230047178059447753259355885449739218878212769953546304448949704206964864064850698079779124522322025702139289567464434534533360975638999705935688074875939042233205828459010172531462963931386856521008049939395467123486457884370870174108337564945682297537659226256952873962583965784235202105546386713462683066015602243313224481479668532573747182258503771370705645030548992165418216314903395620942821437519349220372221101460259269730471762378379604958194959654364520544798569509696285116040249895125962758923521027672322815199646456576249510132001490847559863924240005989875558634791079084999237368953181490232049216612165166917369754000874224177690798232543531729199620193425825473470962181854578168355836590471755443883518073659230657591833925833794652438016606462619177837672548560584942866500788287170159413253079671902797066919328548652798099777067079226874641565310009057261909538515365069479112044308085059797526809005863813046946926346954066041398639495856021671926626806993786494680511914234948404115810239496119822431620074294401097564624842519170870819807110450053323262389802557236086674644796091037455585364283756193003548247455998351792259429173085775050426194136862881027051138670612610234848893456138109295936229154370478282791145904833640034869453321785984235712472349948622703277469432650816185763530591112821563016376929241893927070762001268833215240117892298392254790208711311085252169934190212651652922209042315571310152995815575817280558805980452431226702598659254482480302696109046377329584066775569669053194358323310358371331885306650479732855943796062715294243121706622508591637444743073559011344945839146414254668095880276273321553687277076078034803446705312560810923766384905896163715402770894547294423189245966373877740404427280161675263882971246362799207620123491138780905758350620190950064647462635918140527593231993215050482578849348474877008286865953178231404971534516875370938997779789025343214981173925150481675667273947599002117271093929371185999750750244001544183475213490783510952247699856788016410542530127779711391778831114818977949175356372145062442385696540279953584231103048144016038029369782875268711068356915074010550144039353873804351282291650404466725233198765866543383289966298954386598311036618572670022284886227114999497050502401745522273800115276631843259701794617835773731171082320458630577532149822313649102329937707545233357797963467598757391370780260189539802563662919187464876634288797454968560386814778866969812080942413796021099196001337720709001933469278539561646068853185043626037302879335768780419480202064038099111571576482183014833347254495453272962307042055887646793336933506275011330771663263056830224705639897818339201998063400479538536528783070041430244860784143662478263804891781878238098349611610283407028509917057514207108714681556478390750662080719562523446351326300567139639147313057312201713876461682904278440159093074603648542315195440292283349083478528252863744379247491638152757767256155889483514705744803654798255512303940456608344406894401099612300683147920156614580329527286440436278822825393566558420640019543051340062180771687263879935480978070863562161053844881946708278395338406481440397380139552645733502701574277904061984116093757678046635373865208828774355952700224044209384478047812883269901405099593071403844092388001737075152922298516259220272370445484419029205586006493962366748636066585978868379109767237186641295688431967093554433740781589229072371495091720809031622206233603993787230354594390676073041314333410635706130377944970528279383384370805982028141531043080365808853819548290010781127683782578851199411377550674007135991495025447469307577224646787115718817276176886903405167841315561289329184261137270853914867665487529528924129497788211226252005747802556384398530733096044204398640583198076825470663616543764581891610147453325532165124375109763343846511894191179878059645687026952573172269269222535603015859453740395735126228284791700337330146056820055781853494690763496056290753287441517247863028706714106759944625106048216351426547078163740747842130188475102942562267746879637107758641557080165971987269838250668176707699756535033608289908763614743373545972395439255185152886842158721533577467602067422069507024290084206836912367116664907739806382950330508997437672621854530121133644266310877158550771110885457815187631634590476495457283931405118014959786803678779066238860750274622405983525895723156834562397548705958986895158437317510326398396242318226907710286298427180472180129496406470439389217098547928293076613039041531416363050276257635899152605811331742993139426818491073212646293412566819310683966390361422201035545695031549415653333523249533273759483822136346097309105415439975985272945557033412139877442225185587417134529061828964253776116574800961986927463154282970252273398455472010658180754946806793886265652523267799907664520115814746227848987110879125792619294208481140269031279949281913749995136379079316394890974814096191538576726828747553697264668423324947976135529664551867864658874672738638191466084527785855521875190157096722486011145455242578189862025099973957665242167576131010601805372308149349870117661123820458956424968982126657891512361702657696104148611584072069732137708687643930660981537100164034369066985387587452209077628517390406000048715618798675527247263612305771631970606747776055740228934980360322752410398812299244694644234520821300321638283462276930995543010503145299046834432779959868516367146991475992179713731188728364536188141894463936411735816402660187432941035391529393351806919166695404971512787106610685921586546935785764800423166384676038536469369258690216045269668323412001896621997132534387245189941721868805483910237161275006097727024228609764546105516920575087575198799711067843021625651221972586075678751042323768460919018927176597442885988097273053481758529905551313875340909963606910290890676392392595954040439611405314713843440216736486103294161220683691720905616733742908228356991880137437017773930087828240653652396468919794442448425093554992712255320977670152358652762735466140231431993909508049919417761221345126772710164441528982599973395900808769325026823071180215118053462715464133107519661275316215222477257082725747074169390232197762460725575337787397011938226166554495105596761621902884639530207382208042391197612839537107754529831260677558988718909863352392857763830304334679304774334728378456840447563687282343831189788778427452579079694520245379632399702565948590980257357695094110567527136074664736838738298398037561355585501718501943843339099645968932755300329146869184407020686230625292366311240464697256354461830940884211620692821171243270947008193794710464508022182596457889405306709532495534188835444369607007780998025207122237996119441935589454125418108823839507990733406589249060245237976636649595986929797038503490700393633282487120842727871047607909915728457620411743028662186152284227052674003418989435974326442790456260055091785527602110441960684890106908246624484822241847667875860053237067045666355166066516904918581951605289501450424988965719921233745831632517707483135459050606793812360781984793960614725488922069695174932845626167097425499150497497785447590567794694004644756872667664813098930270697367310257655918596228620134800589013225924283047410719726441536277105206193873729280977899717491656197874205543471486752593616130407603969678808645056269526231016601955879246968743708379334650651364959060225058209079401351658501530221878847233362421883449697243130735859560874291396177258745202243099940323318616213266158816936683665799666547722266079317240802332863756670954527301530676780287707140522613334403009169407987770710068312792223015224007733755920261236238597959917484196849455669711898940045516822946252038550349812014927366488518140252006007736555491870360626429205047380226935227948490967718518137185871985596741644184652287454358079555358995240157331283235272624246432446034220904707452086160805365486736934405726792137669652131763956054366971520070217446132061214744717211633754038965613362369652870872666876252737958095011936164410656795054749121628535512078430427140262542345617048111149243772597259629809257249529757789264440111423673058300178877283649483233422405597880247938500514865874934548262701763815825681303104580732621167435859447777445325497950447436480036397052564111316827572737405852010415642772200067059614232578546437424691939928579573969223046134603126283606908042465038283655664667966718531643638822310217472480575624278977243468513500431087046527517296232015842284485570717059334660128918518354875913037164505492804490507039758974182244177260217906127678758662028021735516157915946596813120386617505591662003194743772179605281595682406818467116335839605596080249713185972148413401833824883856671765720756367407299624436792666285850172706991316493036322370562028840830936986298843809503437019642649937654754095718412940315516464456049935989375546167584386735545647145187031144883415184494636183394647565071768290394503339407819802341589303024809399482023091171248470464784848207199171508440685346387101884746667224388673342073900948954739791323742855500766744661605524733435014474821158277035457807690008831783037976866063435741418253618338783062690498911287736170585983709484740607542639127773251391410332598360939317033807714047488292358221515627643086166746319737222454488671683112399833694938546702063108215396369398672053615599175126776946342411241650553908077010134460853239449683241832127528594930429454702912969490163915120875547787004578025738902831339347012243788790831953656010302715864768132325585541574886329934118515539314982759506503037392216296994210090244684713394421547536627282692604006193450356083452735605672730086934368295499574419343129759833580693340941234429119507953304600882263483335096983252039450593472874625006084408064851864752126982565258719597894319113918976302121457901257401390353267093841979068604425269097248102814840701713358777877227126658951003203083101840934915585435538343051161200831124283944803478022742143062573753595171977033546052124545684991791826651589740150024025722602562695510033011133206332251995081196372897298802407035974232832936324939219872007302528236479662455409815404021757569869387483892098993596379390353608175755564164224299020056434464956726156612088930917915122150898143363066069539963185592960806724417528698269933579640547469486658066783429474922749885900061597123817548341590690479893236036602583839527005229374129828208736436757511808324112779550463306565078834750379638428447127206342296168787750326900529711452013228571031832059551142901964189850181961603228797451604386090518738307015351292539990620279558585213980658654598766491273875043682127257855769764177827205107686258095037316461497822611166167820405101545091930749813578071418488007183084658804732100682190640827159045189419937923174300931909321392804658817047621154872756072801659124609258178390162636231422593884822816716191938170555753284962711192971484083724028642810205535845771747347008735015829075110819840377112530502534601370289116790544672411275228408359672412295833717579455611027019595175880782412394550566010318797747870203411286150870920424594534692662484710729347969728242565588312563075853840529540015527088328010122259378294594955110018297486903599823107468576243606918682011616266054262369843278347445023511940807019608330394020610633416564321657560574728379769781524652580456498503563240107741661847894982982675247398198009597313593836083332319892804346364953668090790697754687196559328855770611704571052215043064698507337773429847209447805302583691564425641761603109077996993487786001717256553075730037757403274275324093788751341243561213332041589548400256235506682236365930139273332180447660273991915229724315844314977755021554004902313112228107480220242209200150766018157921833671152433344588098571577199724257767378255426538803337670573060318580642556066223775626397777044872326045198591413398327505025249759255268344296910239513761909628933787417298814063154135128694844541254476481191067508941093139467231188862219471461904123847698448133658558500148088557596797064533645230911162461381929013141422208131460685153430563363939904563944380556845432696161317074552942785292769906486997754138875633934135398078426261527934741083864680600347032154654518754442910931372143029070827487676323930553414418910779645961175411830201169985117345919037557989050686363861097013370414326652185035017232373626046769900935231297396074231211724795312493454684539488119391711028035027777922237454844895151934092170715254233395608767584152638097107738259337938098402464563282146058501992997949993565692007188852794564267558456658584585079118696443560284309449371342980181598330670070244579761048035440981138358715270646502783894854009226335978992098835100329012083893058241378777616940421263358413863807532524117363657880069689446303780168916458004592139655669198789538710688082284251815039285568283031604020253636724279636854274334671422269873548687347714675298987588232233828303095572279873684307592475032536578585834544441557081613557060144175926224555417131085495247871058060773621891474999155877468522181730056839787306363416859562267757649980360615671437082753862213169061791958690220645513143802290471973518115752572161173703071543831802509093820513039925700598648507350983856600105536911715829379897189028709275625949485267921382836864823972629299889962826490308110967073654697260710344449126663612245080248180838315323401646503242117002709812084252930406403542972520370112546968285366152975974719782420249096030755644778740653799391267284843636520146019214028872330353958120398321891035619523462119303874045464394996280348335307675018256470184827687763347447683544813001752578950107408408233280746076075708768818331621675041351662430265783792884164399612833417739941236509898544689823605543178536527641967715743261910057952917881281282793699570535035806887843957668710726744572696436622276580809248590870494943028561996777307353412595498785203735734469664483946867113173629058211740337709562134789900285301582219426186478133988163858737632829093804826816121611478140874844749693039922206999316575517728055842927711383187843225106325627000555965863443384724020715623618017675543366286217894495798969625908881261100151371099976654676874479858305019734124433449053508476515451941297898531466924093637669408784284066697342878064370404168716961321223865221845766037424906991730890466908831378547374790551932698425675604237225105465457193513158260515726645549326587494910716654978970940350940935144380576837212127863604243359612520862617548478116272658133389245977512964036448163306220002659769944209871749630821070585400090243153931405411102465148880326908870729116242032296855409349289326801948845859908968327790152266513173629335177303795446420118896708375393534494831142918806879950504747859009807228187332088967712949699824451939853523837545582604739034404728140118979872686500411284023582872984657238344502275566052446243209762135436237691769760858233467966792508952825695871887329332787047675667362378745415827117083375652716443945427870952827281911155742419953584458288097983936234077425280897109244271183246913724214045900647612394929045651813714660543915706775527569875633017402144268836519807635007963205101392061340036126323825582803063946587753578035603620762980857859117262402334359018471270845027561891038929813802553377718453847421536512860706303111522500912506011958467940054781980743057314267795454074119333349112953636716866629111079944522473399387129567432365276952507697514402385422027128260552914895673246352573201215700501462711242010271593100897979301701359696239275377209268703962303363482711405712140728833104326989002325333335644892419523898484359242201385368899017049129542225333764654349887092174538736734073971348076418074951189610797275571094112422070631729047541956742497917957121106859875572161699880847590786486761662218045443837679476854938895227848019344065702814763494875261652190265003454534975827907494688028630805674349443703611220721940101175561640199667637768674666030955450373307768424280676264693909862070313455219350131295145912444178703033467594739070927049960612095883073288590627431556761281575282375285622108529624706983045745621772081266372949947308768795496288242963107885854180826347935184786198613363741527955658239976467615999783619990139697821513218664560374694704330630234424397053710274454809237599527357948881643641539396850972604494512746201401929157364306325288339668186160791211679443102251208821015504951521249887147663959456556071980503830794544706166903670064149357205655202969478984563443306540572435419756290761730971879057732794594238857143992958633221562031923362366427165948651622947505337117174027515027278756415313449582864905680093099405312753475907567582412009198704721361160435684663249667144335944693638735033649990397363950671168110934836964433620374734285685848297909850615032108383021930694794137392500329222869644721329558960864322312552463128588986420113729674826174526851188883020133661382066313281393833361821387077278050812122881723464281757172966802787055849681994008106546829193290705700889321778325026259789372561938227420903958805056078338705245247495781046346201500366360980454636228273701920615979050840908006786252949546403182424318912017111695032999795581341640977871720048031004607989274266996549723011408467205635061683246844225469465583442541652384552948954808768012246067878146263700454388053736197270055293895479571731875516397047909979759603436491042006408344011738573887093912702970592428142488732360431096510035241166093821092509429485622192012215626640939187438106097374500255419862078555253288225027553116806611396109404023765314894158167047310922340364310051911904962261248077438058755132851928212253015750934978087914823069529148369365943341569733203254669389989201988102177282531277651468668424208524881402942934806965244719163993538803222439713751995364314563896621529863571994240706767160276933313161090754994355927407781852444428446358149185416141036216479621829613681974290526118662902700464623928238966144327333572365649251310591882697190907095635013860510384840782435526568438953725181332961219566103501075446331734716955467211586696017451217591313560081019389915742577291022910773848790715325520368474668611190923242822585099801566443090346934021060030602269391217290349060243472906877647906920304734196956311040308482262624947755222650770350931375119370717944128533929636133912271853740140628495310187369457256409156911776227790692581720421551766345727479591313229135901928509182892261349485971829148978529471839354020457816471299738769863121342225110808983599406435270130536666841331869185386205130564296756867909487992791812283060677177968263210877496117353516567363678753992571376965073722466576090737851209757635452162900017505457322759750334067790240028525135962142967738724362869947882533658857511517242044744306967862947812725059811710788036253349641248943253797425234672193569714242043363615484117524421775596842057037147369661123904371778071875848420801010256877529365669555133454091069342615268609005215610805761213385380337309087444448368378960496354885535534776032573019254674160214161515779172893733951576885211474580762318101242621990202993121510258051934207842783786734857155129678992356253586326743872367913762169111307575549710664774221023447266980058908203843022223621765589573415583999993067295323028340968260095779120294652262911777293324010357506207533690271469748270051751308128180723769757267843332431449094854038511981160721141811888481127189730748133007257392581185998019743011758892942942884909851280316158275831453381279441443655297234876069319846544896513249053381168977563157392776021369695168159022998911790053302211355924457531138550125704677135933755796787694949577547696566965380868095559227621438233199713254791488538000270940266007798427339348421589594766765778709849261622832128629058654114363386727276852211876768828417231719671656450749810224275474839438818635865214180488249119028157742940073805336999057941383547737192150647036036703335141291909476587091763967170640458967585357631550732122773922779363128799093517798934997432558974805022511629148805616473292983763235141030511149338644506712238517296977737477562793524273323348855930598931417543894224503458830769597531017001121181375228139209260306031276550100870496936363700906782192815816446686331467762771241192100298490532806707038174627141009515473022506183464345179903768494581295404476144578509005194959294130581922248107846033674090463508484885518827381585423041650576875989678110362726242655572141758153550945026386029687173896737950456672877174115367824263849920685251958290043502609217732751304510101641367023520537286482504317404506161309237661315223384196792350642144696771231967585559202221727824391158144118258677993140564874373205327462343143520286499856803762600005036588400917267040652904646659234483780069492850280216226336754035873385836538507587472805291927838098956654819256685598987581973832380304517349741223202290652341303718205667204200301376173816689851065528964120953237916206905624486101350083080129690049495269143423152366721754524466975015126596890953075229276230652778422148910348651935389893956221678754941340980962257057091419975402667983420447342337289816410597358221616060440835404486633894399604581028960406568548625762632816094636692059555240527140671473836093526684679558627947095587767803437112138380134653136181380334399844907104790663083042078925762908261253962501815653775691026870925313741701746275607075623965251188738550805038357899672564854823017550412426302418313889944656529206737144375327588991737561105295876883753051381653656776980370391596178676072971413046733885103452309441364648360503431357834363842270658829973662021882987064990901259894065472201531260863495841480138944821411907420683714748385142920743277344600302306937362933044542549908148611729747158990144718660525281546656793535797249750798130456254828297678660340457035138966235844222950599485921536179987951028322958300997714017108326699069830012274467628372766495763467742336811761949441708506771039525660423096346379701675375292181728143650925275776754740570746026505019589061016731535796057155467068395042334656469597559337206267952680152676274531270663309534647857007811141333657927863663993685378255975460005066651468209875329363729401705860236499075940589813135473724364550263054604322318080996447751640423581163483616279444758023229628179818973768679314331133796645735887200531784631148208439355402805040560619007301134507568175115367380042423857480996059414360606112909948935005729904363449901854099485659061257542949035427681054636481653554512517388303817705771566395894996138952469728195988851161152466344609885340165326679363511445627980238394030925151423516740692437630384355806441235960334166304316628331204123791385390376755941909305850126106668725526823285139072313496354407217803426080273880752407124334805961564276270093620196778018168305587216046097077679567581036151558785308868470743066124165424241479797273714581584151027043914392272987341650960049737642963122740997701941093746536410807696960629634865890109924037579938710024832301461993683534616627410837549833804700918228042740019615241228913647666962289487577013458932706423123706457195130704342062408063927664589802901698741916510014873836001899422709914001575541886791203235761911588694908022297191464100841804540326708580776994560573537995643281173116288812296945479742415320684087765121853431242576366984630979971407653671048385523884063776895865154064182365094457449483063758918400121318027928353088184466228024241816832562975372798853918378667411260070435822864611991486795966906601393479692863944698919574174808485786367556409373923398782985863790814536984877823772064457612196571174261551357877007899721153966088259920201641678256314584311884203094540373130662555429327675365003157293709350523143246765748027043777914176334475360393108141937100749247716322629327667505245626336823217362917874265566448044568635201043676697334920086842834681764892519332700103886702368215159875700244833424301756633199039851925030942056433714024389578682577877030394289299142551689315085701104182120872340756884844123094974397758836260456002584330213854038502419126038751778733185329491516782206694813748667156086815832372978213697252940944812016144954866972719180254387463220525144767252221218147646568114510468708528613837426394093273799991985692496271804126871204642421596849005689522339188963910314220552682003215020302769887154477437855901414403578692002335214395462508885475516864785789435607774540385829739752429044685730870257550453462401866709895337668100625014181312809377855374827081483937294505560457566550877583188574368604566536696572106871065564089139886898971415176739634911402487121360899519630962721976295045226514028852046603291467083604056221078226310899163633674331811362915376233405569346612548396443615269159824962530074900482889236336867204847201239478360099880712060086444455731103120571386950316197381048882576577498976640130533242755373110037342935056368624039083870798408471370262638758223329796535970856397228628829855294781171907691795413542335475092394544014650523752904616770656289678144480260692022033240769297277735596098310124073714632991290143263582045817883596902440034621736951504476182563058340173324480341121765430868554406723006765462685056415142889414043644512922318044312593035278424729412170699279962680300187094089722728795089302013356398827800995076800770039369203496030489440491909564592439178152237087359331294132987583941302730731053189814208440986117964324060630181788354048272694605761802265971264414156333044634014903512469192575536870764491352877793361441103394934782049265165691770163229284529925813758227352893643923964202559636303404554075071846812111260426758997218957179608936999752166927168980503491963729018403330547376768557199232740188672260691643709978875025161856925963067172731339079751681478486870273667183305894164351666359598366395810114027986664235495070725849974088825582655797406674301871252274794562502401630399644537390358949717121168813288089791200562744454259875166837929316878448795685662763875468850237163078923222907508559868519739802797071573694356342935379398691097214715606829289788048694534679918730826285651425608440207049383564718067314295482978583527125962417757864723839141542642599241308704503406974185623720209578887694849662729722061809672836787834487418740717771510740680740923747589667278459341074817223301678773625099289669810171354442054295929331984410241511721194061766008208230124012770184402506824396901386785959040082788783273786324666104515412005644441113859143255875067834573244815568227966860041725045950173301699129776959806819273417019867516280202820285662785751345480143454164379749658562175374438768154331488897164785541157813052867744268663938825993331489592928224369209643773493676795046811517732751593263750224253587333586021833037404463280257603516102504722956543809218493401081850731695038652552638852153375544551401796529265073202782488900356113105101597035132342584658134386826260375839054736322739093566455830467998170653709701856057319271709391737303704871716973976090629186247801113841572544757206398539788498466906587383521748431986063788660082135968313039122701178027132504979921922543726341881161836263930080444143576138133280564847383341248337648468996122791263622558737902668786922164551440075709308343845927135011910393693728331195206342017676563774838224492029521516936261976340962201761654677244846425077995573359152005839655857358593564589061912078380951690024847490985739642052154369804851298766658258714657669319322587036502827230878127987108945652890670090568876122342509199749400377690673876817404931722563103832356318835061860068292268977233240614949679069257861114462868294163288654689599788451562454138506616892195164090025512002575781988853244684596419601166307922689747467716828145495634735287432350282857170040010018455165252906424715048308819091631321496193763175253875151020271189180017769324276884377860573715146037231855508467240268726327488866894683383827128343209582209269351080375209117992052613705151607718397632458164819328162600578412972170635601422172248870441853630488433438656037703971213681215909696317047247490562743357989000582042311547687698556272833418331463280551033658850635348146207809046951362335239282990425580447598627225511318804601811025868266322435731757714337208951802535754886641307588080347378427426085167394273043171627743174902696351018988337289001124558351706368280789430124688771092727430186305168975988011554726597060680228465078468414125970424509936702641757521461569383048138267662754982962000639843921180856321111477403396935980991143752351685745504337280464545213339990680255014425512822922775311815928273435548082459174485820360741718887020269162930781507158832421759658739406676560973728715517159616477991144786763563529798048252402862293802815320475038395816881281861822328242740852110808841682494864246078830356671061743831686703989616524713781825624813247418863171616199550603362268070459843800161954470584063270173304447073910900762332073912728283478984544726244441870270073483006457299045271480882430779843872267107827807468912309109005440233001971837863927911994456055759676075460472356713870844086453081366925677592183319079268946261564771847313400587653705622884986373626476151006744464829541169060056722854483297556832432126751675850702107337690072263504264215916698401970624327286074057278576212556453455076873701487777643224993468381715601249773611690570755744235111700248898589338111242722745189068303167929529422524905533351585017605367586276682411721810309222037481418289616990720916500037206339002819295018328895787996336461288037670807860352300132121792498255596753517761218865075060883289960769040435179187553952750968444947552328482889439092916203557439325753989063963605118686371844606086911484560373650986051985274864241603963828158317779262736131674185063810709699630677961625449115189768888460226656146405814633706354502417009849081443577883834240992586318851932260279308380510475967837858317138153431558907893594251287812090563000485269621626343372335822799027506552072320303297673397598800760040823114868335962411682623506395752077295870341113054867849460586596051770892041941819449651066741632691524881429556598219420222993588764214390360701145703290744894287404692890740883381715343143465749851463911599060889333280816578442207227542369167675899292644853583068190880578603165987317119046572356810336290838648092777237791531310781834277555584141364385513784712882011317985203137444639487069631810883410841306393363382237926933399806568935784871488387527121382343387341143146799080984773481197852877783103700609251686251689127917882907974994115678754011861660294270240899131761815840737716270779658984928399000742476378174597048250474337998780391086124671319521118921142263417413095369312219353640359810731311701856292552327346481032986699347000078434895396054554646561097805824983709931415105441051734825232208452400593809310514656246924902088113526882925462530385493653924807007975503697873098884489165526411713554114648362574410242540210133841021120848026983634085429346148265978821618553207694763844526092583804986255432474817094173895371166267672849563946116607599567392500322292277467190851520988730640242002691231710853741732216528081227864874811268653029709946311973069592890521235014214059339368659248460229443882852420484654053194388049432742398540366610876317023858273852464380694105101660388787895806286761298387236359811545916227080517878235498076000398232883675704155230214203328770810001578112197523231456084434105835474540619441622001260166142457521510443880225096539867054720409926544130308812737135115288051976747108672427176639090659607303928470941474031136075311500207085715411274117084775809526210163585136346099835678266468422627651071391605032106131898013151071187374412321653996318035749477259355955927380491597045220321344574251537324634337133472413031103178826024118696237490243691585772387005093760692047433044823230352283218091776956690601640424538066072523023716413869233788346162658451024678507980195037185964535576481051603282838449797706632109790846114193394883641150183058886426763320107860867115537381519461078636980179922746000226804104763379416989843626900378226589749802569855132810929026724671705396194195891984670308443104756006206044893497793537069243839923782465958649528206419787153934052534903390177130821106886672632380694684911171426782259432207345802885041587341415455454429444926146137384413401563625829086887194252058629622959105842876017712359586914616145915626635399514212496833491201086980087427907913290932879634008828622162987169604478480091939112487017293065823942077991693864802064344916163755789143969079685390315181394609263667578723392263866228417950858770723648537220191896864978186389314520359097102208593873163607449448401603834803834000249542039608129089516783696905903359199448393960207960545695716742816896089483480485620614752362981192428905451806651947124920851794536737333768351690228724395097971575056409402199090016870064926058247135478175512433854019382301903337483326395010735165518421921907886927493142786279654316555812141296100374096538526339285405597564241132331821969767989741379064246905408668303448795536394562718337145332899828803036461789414401809914733307021644680814622457726255083456944672699265143567150828892555013953081160319101025218229421013882207666613114836133230447049591203293715947863833031225367796655449090707570595898647486045445862507132445180009594381441943913215904641732175606595812620343313734683579126586396478637356217701151161796342621108274438994068436700709116401827801265842624652638904203325223809846624130865839216658111455725303740937175294142388060071451879035629752477644887793212256186125261295983772915392051182046237905584481152745683495834134427618066467106517355694312926630680733459523725396533882182813076863863229326302555730813902221518363291969017900994562826657483737838791959837484101622148696408993015376612683888285414194658310037666274712053349117608455736339794854002182606039837986580696067705515513150485640665725343112356387577239944190858568830906868058119600173512811352331681410556587692001163287651205162913458648902490250657303348716198636770457043476923593511613902257689895461236390010112746077627360576507895175498702462354755468692051583858485653699855906244466513974648502378124070573343706857979850655639471542166470987707422347128583583853889448768514568427932666458732352463680360357499902079367380341687434600455768603446474642232141873908666561055466559046282452222672442262663595414375621284397422964091976958242068370758673206330796088597074005589513596608777636416667384055596636538318974305532299392480379584804872726664866488805170425153513922282252651399668057714854360031961411311227337452078550111699871614700966863320978253274704429257467557934710240002840096892106038171200043507414437939370891063179528438645213085440946617394648170036193430024366648010268781483419385038398003647442752361237756824321858394716267965780057876600344853564288460104039687475447584479353977135649866379075073267014932908892184902369291772803078456293902416129022733652725035084427169457976568832558758790917262805613304673228732340971763872232932759356687962644928915041579979957675532933987981235757000778516568723826322703923638872818483018844263745310719622757545740938581174376534620738925323150207916294399451953676779812806187003999085412085130156899454778500166526128048811463674719244575615039983453121659074980485079241967056482164474721788641891410423768120787787020010342762087141659959391578191521699004136300749918041482036045024774583128587652087203849015599510662949996698448953070327030414194502029626625709927340283216638598859157418399379259320962058215062769396728770442744899542236053050761675176841298843089200236635368578583249925264406435464664843016252893174372564084761779286071319617032383579815071658360699537049888473324883179487139349656955724070027772827053237262773818433243714671646819371329795138893813740779856644067063560537240273488392783268055996998206664142755582819649059500244411809107048665150626886292123506799056108651123786235503512724803221006662234808480843035791151680988865099631764337789557525664086397788373064012780664421031604287357032748322454703462092917868495916983074886595620786126567377980039704518378433224599775629358054718164072534673283747048725360752709617098481314604348410396605646374563614971954397674418163050476795537848881463073639633152349563397017724005359587338212678439139405769237834646351462257267022988211620255173918082378225329957611243058661585590572742318416895294868518980888121870022902162108103285610841160902956266464887846088214574050788959114247014728068492058360693083812674107219745400786412644405768123276467656505404422902856636925684430363668663910921951724017127757173011079259091444033870744475850263826137199481890259254390628808725386381973696083603858451821799225348529263371172928655298763750254922443387868410638029575603405806455747472065510159866667978426365599328682512052555411153733787436201693132636914755588195500655077141988161267091573298845405692839214347293119452982528236624986887122668300292978366350243821395986890911727088758290043363444089677116104150041878899478910452291310535097659240998324889562824365453620323545884542142118848467977427998996326240596832924695248528607210584280301769796730638150883450173716734471686371382005715054801564417512947408257652842309819888175150777276324271119452600770004018189014413318450997586272345482057541753605095051473967715013653698843654968818874929152048976448205248072834683277368459676804268752776894079087799274970791237915048379316250777838366420957328617078142973684676168249147583219351636801243609140451157643643012578006532002011974682819749947048798219453394188056974026551881798256897267140562462419897710181650176683385034399221092409504280946492162661352588126771645355403660093766054992932905996592751752699143678774882299391377022169612636202343456848701177449151372021018591477458297458886954581680387901415749924576727754507859483245128276843339859583105747081849300603914216658084825526770846310423481890537584159269521465810849350291809479747736159422083596308654275166086784240833800639182761132410604741551734036507579830142664082034921982599773873802817679265164740971589844536515312864908033797164264051240955205801236745491483084626953137986254700627560107368734624364730466452834763104086968815139837286892541974438586036329608711726398517250339744132544387012650439796623285412530386173313956491792226697642367333271820886671888018231716577473072473766210105699798833505053429004065553730407406368194922007366140056411291232712462361157907888200601055856920820326290804367768572363564469696401155380522723465782136309139659894558960718027386298014761457735152888572719515776418354093765361043922645925708534810811832078056861312241498910634419266971934398458185036273601145735135646443398443853778094316251564847760751529639788300358140195646971989095613912518270338495322909376746482488085359397523502940400527809247710734485107075239350426585338923892821293630252392596500556002626309529453092364400784203821536953461514049110375932639608303523755721029196234434322617946767119654609361431819342737647884811348694776842206271029120688979633326709940546222361396258692816333255189379957242210419072580594892893976472663411703185062890918987279049852102663005672703987736740223535936447069506677492193134273340065024811357782642767810024406951584253800718635801486684008029511374115626542093139555286904450319000218560042766842475944540835194611512290191114111453799724504757478210879054547380979947334006555726922396050632276020455870880084888600595646527704136544640572056894476137298811344106217035504533877217836834132719418521448152804093629441965556478419316990973457912787672537245497367980349492089320898668184616845110195543518770433646527981210784386874610584510768126762669989345054460368396456925184330836007497710309552236437058741569743820985824144998883225331107377911466113841676900564540519378761963689975185058883691654027865041827678421547984223273794293431244646843243362268082908535080168555596831197613993783093405788542522101742034059181945235353045993046968611923192292539827655458578233368045014050496231773619592837619460433443362146755740607993263303235539433541480388426349636245204505909583643054679603425334869953865271842300125160306683744009783163646259118714624504061947189864288184513759427965071240401014250202281106052135151801953400967450467597438412801566367471650517333188093268319631934818362316897646748833784657223598186245171336901831003972977447889981635591246425838989322735550742408953115648081474838448309535317177518229357361583486932354147170904981732904043333079569323409050609370302948785724981940618459319981293265175118879062225611180238907572945534374843266665528228545464696978529168433728180798108047381871726735805519517044400163982024617664993300652998634134926973366147891726838083167101222027121797711704883752300843307793802177248958676601302870546134887594076386159795638753755271265343718278598201158055973552539555317964300208087337005902838414219751759747748221157601122069504572194896950924940543197506458588847943135607650144941213196281059969388253727646298015663909967740657383977556500625588908102565008015971469951814790569031809861991568217477367314900631763520618269714644931052744364672209635827512014685247150181950333907660929151734784466749146316825835434887733382996876961030737868304419404963317657983551315346282051163213726832867470630018418749475553150501044095461993988709977184910122664294365555966328610370112271305476428986734217378807096499359672417289923486529236239203717249825956601358076486371076886491342402763506267165616106237958950634362494397960119836392946020287425975824315681780801801998026697306012931259717170877897622335393896862083612804571619002215295102792343254272707231178432307794285517444418865162372922421709906947635844478646438989557408479818452214129568457627278908358110601891697832030921184965918724266097815684339700049539172721175357225648264557087644486272371316742448852492654285378688179402672728684208482120197940407654746367207647140592139895693630370721711392622689024693948386153939194160946168112263003749409295777005220026897755388749907252015578579887738169503410812603266306450773492861586437888372751013796699936360083130166322468515563735960609029527486555792221148110346473435285861647129597025480390007217447848599642699342515396654716692544978202378752706726928745090286553090207138500328140718114649922173575399971116175377520625794809850224467943702627167795711548080914308597951460727195560832168671230614811700662540792745776804479985023841968023668438085353181561582401850179724114854820816837707763246142990833438787328524692327870988900025051202003638955183189607851261427916729582634796171137495697316100672979358629403239052506561844235100832387183634972392171315428561882513275945897606208842145662465606308217087192899306601687447283596490329890140962138933748455378830215179804152512807019661516745488313701590161981965840241338137495035458626677966908486104328285828716967060001326618863003870818495240734469434265323941670942260165112961368840681799162234857273104510062162335268827917728807115641001431984845279449343299813097314355421793256440161547526202784448447302665096648013816466001339892943884942949761290967129746958686286362786342056774039936340372032264457762694108185764974261460139053502895450023554043825017183737239078541357841129682057327569084143251869190398143432422589377528100322706511885318000022867942679601576759862659255217168494600576271465665105760731068436000796621200098768158893519031562942185134763664359545234736912330668662033564854915896133487353434682087319775813563768061519311386285289480273876797128408786014297555795407336687444199091187027905255772913747904395616913880923965286129620892456903605522559965166654295561609653992364331766867635204182819054302879866748205706012309363348117187718450975274699140710298784987229289794421947411986755761624200489691884215198977642261103568235160175442867657451647818703540039587476759406315972647601728626550457604404904041128981314926110612731055629228434145313364604472270177861208878176813791501557092043232238160252728813195693027827601608125494691128985813171145165473244258486617741558678759258220900908271150875512613774714019053576753642829358370436888367916382271137156250918649332697414298455129265832882463012291816530804030998579646647065728306279243684062808564527660503602926563925398559478692684180702262726035274623179100037600450928889474480863418331942132049917188396642137631513473313600775712981836650981922767405560759375165664857891239728833851123480666104732276478234269544089019157336726599266033570074064405124863950736324854334624740329380346392491844159428457755741306276980850709719277345903880926426805394065188498801562717411486338031351228459804634466989937956101169134204581169892369233043029659997696208806502796135852548366435115651103874624576119179354060875638608775866863736778514611512151408271824232697094715058869547000615132097727069153539593274854596591548217081895081474285139275376222821713973424849846204885145498561381062898759061773177759058968779562332594649758466898010983493226424112480438377775426534765275571272651090485423743089875003879324676618452708320541041333040199057873131758268900861872799713504765809467602197091171526516438367173662744572136470368949787663292782935569214929346951246790181834876912046076918447013118344403730510561225793013106091038023351982932467039397728502830723680095993052553907139219403879227090501938894659229959254338401342824439370152094728366795305903069174043695380898039704869736119731371548205922052604532478242025758825413353549170007555747477237343255947213936389386854742620880677714468377570516498402684065445404571616283217492562951290179103701209854398095405432481794657538331795771168684113994199143869325994600293199369814466230603654300794620946777514949895941375201563261337233240230335371762287802907401773446121782260323709675850414393362686998698485267487238146136025042263415097138324449010850380800283658549229445288072168315980965523014956718278306630399182178375635032170930602495302500789594775197266947545812723781097866848221289662722976713156963068686854825766632788575227100084192391033053117246800588229638861510997823170628244682834561792661210320274732781420042018082181751674530614054383252642552906676523890581386269990319007729910932478150473363710567096745754228276289726963058969121473121333356696870725697566585122684218722018662301486911541305634607900162168767677242360750005957073043472606304964822845276892556425999614384067375396400315637908079121719550699113646785982911281131562111131310383820785365313307622515525999082772592301439900277847280632788684618513856935220327446611922746483096385797498105557562451938856626797772416348708345904858862773151146474669470956873064584452339418085200326137915778466297376963373276539933425130287593404110916801455875522319425468818862016184320155053181018694330045226369737613434402021028289670756258150723964919950979356553312002552228034868600826040569614645998998902258391454382480045472736640237013000033809473699644329244148246954160503085204482383042427135953854226736041501490104834636459033581553163991694779726080459434339989403283912587520031950115891486003302101538160010382056728614069055879573140057996325158341703451237348790257860070814879373761160697846984365590336246436250402153567582050598049539965827388107014777729226708881536357109966025462103500413046785832765973660138206253893122533049342904913281535775308115453012609646698256785303465016243022402000436424948580841275863840446587430575409609659426176916597920164346665930802162416881943017244204014331922531144348037395538524934174830573584007322148586592230024979296105013194972395442855070298645816515116830413777776833844458499736299437763350365264051660703742477701946396878802533629244380435611864351018798736353088435780569732886468687858203137945928732785393540452599414684872952119195282300966201626143100691120297329498989447473303805195779954014364269214610392243074701195671172039607423980848490855794884035475905170518628776606978194934338667957888076079874947693826129096250565423986845946042902011171165936368235813232444763941057925053839747593706316543144861168266013199192353927532199600132858248909025151328601409108060326671514756778101513208453029774989948560853732837679925345871714642548495530090319894836991324061676824858150406497828207079450119619419816735072387243414701628526323379021941111681282938260175690221028976333724637368080001851737789768512873849719764039908982518547820015734152499281691452114502857350692418393427967794684723764937201915662597939206926388767973395367099275691032969380731872966164200024847363753997613374430976597024889039800957041840086139964849079636584436377769302739727191707535152793584580484899675304446324630292877657956500102358084401169005135820429463676083989755760336089107515189712290120065602404105141870147265722319861668891998761976117456878580446185365458966509985972414568312739665602997787629627713149140307012558438713097929796064823790541907798147337686203630363885700202707646261920910524396393356897896632751700618452104066532457754064489391846108801770063034703019879628200914562575164551367637560572798671520631037126922790500711744063742531745905286942251651277333598343408351178361134908896981992897317963241768233251296414501689634799544120357675886852105240035066609950719093804538310388732343210113347370168660747864965546829615678684109196533476291481574022317581480581766443851498443082528854582293212432014732706540169329038119899638617481037211038395832944866706953072387908295460380689639902101594350549626171032325722435785038604821343560513781637496391002272423297807822453006005556906135729589213311173749468856769196579921895259479280678411126161089354873875789269799703051975770386810848441945200203985313309438806536284087571476374689529373602107456310207429715439915275368722326158503354805263726562905336774242851293376934918062218129087095372063193327038913913090207168915158602015031528614778401869308324626475659551197698602257429168828456004227938618401890750343173811875072393078733839246425398149393009919692981751477109124482542304089399276475475103681975585276238433155204997417791756247484276666682428015477205051752011724939491764621769154887830067716473185148544746046445154120915915830048195506216099282793368488932635442453041047976537413543222836927096506134602088856245647476627466190659047759454214234732902098385263980853255725412210262184050349396676157706335537560112252108146548306533652359849567491659128513001930071625822539073279397819842672079501455527880065496807815267760430645742159236304443200939214064350265835578076895883938209258509788836345142352064224838099838129346086188335540251129606381089850164997731889504303478308057875868097930181402730348652230385593727230802299902721431996984736386277167447811074735666466191840424942004254601243451066332891797751083866527627413649356031742089946082513753992816670431923872726050735946545410754207071455310095213037276309303657728443751288069620909166578326622338211081141579589093672968577011586391958878685866058841948754914137271655783347776888745570481347045535351418654984304732929673920630082416178624813924086798891936096389877468849572256211264056922674185799154475315955981452673322632990458116660416511148178897788150118361140705360808847511225244345675931300336241377177183619391911709791187655337427111107454466739058930091892625288169272512241189332978121368619501176551064601087088255991034263926236768175990986920411846471639845067261049628534431041761565525895600111633198205135612514708985785125716925588466082663770126397190177199570271193251573449195336489413871125188244032745967772189997217535260722646196052996982170361294234508645919809047354217732789344878591333788641056509036090637178070365922581556437055913796600991271230658763051354259634075361074190258217122428759840693603005868153722762715415170027201440868574390739250734660712079504224445436232590668293801281745798443689432259724173282202148662915823797502583840618251540835657991952263945417050380474060377656617602135478583051506863913441910461094428751799827676636358903599325871238124169748288707143270104947872305344799140031286132855688286839373919964377229882165477961224571008035336429173775776517394716479452223917872259012078361260230702658512914247293000461682268281603746733854039223862023212744339276833977761848992546752873791119668478203562109090968033609759212998602126621583210604827378495099036678203087388870019459016305616555759101150365705655206542227612892568589085565759970987401616118210409978098478705184813722086085286549484712114246998997290035783207131072110092388177137870739353800621823203226516308718320624372379219195946131296344084176322986112199837439724726673556597202266082950814074582681734165386314130092980825130036870391806709217848542227293672295448912313438707555783254321693975190126374981175940669920219999863324757993064637437596011101543351460832563934904043545253782378258434519619804408757106761687525702294575148556543408776117933480195808942421504515117027206101406061089712835505623391985908304395101526650473216683512133580277338959425978986341690909922046617713874083198101086436588655629936745914191105083915942979356786008788985542304024304455188199725084013661238773230708560728022999670341295088214749728165602852198763428188609823982198490197451854598249168742909377366999106947881266215253255224100248619975035649585054690197058068935556810746296444425368781253718998497587199801225535366695294314906684862738501397145361303787073699403322757601030489584933346210076050475114964745408085870688332456764588129984634512506682587341262457058874575832745246620408663996265451883262614577333713025826399746389978596086049445310273572563464552598146713829991334362804307553724785520859179074878897495257214850853389128951475374969680335973036789653438713178121835795570250148458304393765562885491816113426255307900717874539151327728130681513979824871889258964510437702689347111199436634351564708460898547137542519787570464405344861318502169528711020367315578379587493703864607410607473208256563508995413074533074949931419860758369878172533696271301863267832869311708612492070419220983181819849324812102435524066796239867818636867681402848915029350883445922163095996493931729149239567900749303027639282846280894509787106099000173417890834764034357570948631810706445093879216272210648871035308318827337602290930756628536150597276165120629351951611103434082762125512908891281223151049480928090102844776495076214489659822038654466933585007719874704133462073298124723174783092179213072172443666866734195731154973237279868596328604545542366990526061106161988550637599765618314716549443869848550378815719102746525932138742928745925930806064047665003429572778338980346133356797357628738928339186735203704772770442652886995111106049141763703897310313529123762378609289634815400911151245659273690841024063711960256878489397634462002187978723106056626739567542116768755206410351062425862494861455688752891655037238164624276791388857227803547588668482677569448023477294503204028325414225769778931443976089936776201138665265731055814377150454064353145366601067130122883922857137173981634208656831794980532901717082810919408931629927352888336226656889651309588762111643646844926636839046295673081430902553574306527285969556624579813950992380034445840325723988357799527399898590892594735013580056272772037793638463308594212176221222532002900106329092059847266847203859611831704024264830327968902198487569564464746350302846129801156244501353108390140666258822871062451033115622499467760568414591465110164656873780359718981892396305542678198244262401003281864902843315476775551641239882835756453620413095192006849832383639490671313008313236169242911352960437992092798087541920834661602153352606307380743248782334168106948653230972410761205950611450892291976007851031660763840633391332718125757104042803577143545278138606948094842947683829983163165610993215146945669093170890127635100265480481368535355106832827655416717054084750265078187822944607359418682694049597994244541389255666684718981983575909274673105274383993153866281819941379276559255423215367116887376086866457404458190772304223452466181041906335910121487739868683667542055913856140160064357309739774537628666065702727373144842846346599792073225103357427724834337807507002391301581915188007401619202552073708827296664452267354385070965474911196684122189721285259820729248150690849872659347540902112371317681787196560924691588071047740867485341847168806368623779955162914232628092475261552340745175756247162701527796245378953944393747478541160462744133142703222609455816577672406232350639725194779760265819744134605215363535020690722076924471254628519720578293416706326506202144430273992939390115319536260137951753991664279006310331772794340171151244460579759170940701291805518549006844701045439629023626937306621622487012373575341252655666245337995927444521685770259669174114233278632544614367381521462948145884290771111085754538226587505500327386143446260367546004746763057563599788371587995619503854203419682393773167707056199909959165377701037509594749265243174027127428550231206286247771281552209542451012642744414489783028446955736026922014650287087466984545243074226977662353325578696329305252912632406438769164542909534263895890763868916698855199088516720624629360950168839028498559984738251806037579116325120507101112374524457905970683445622341134979900376998515498694638079515079478776972020741603219525348566070048871418417268515864804907362832928483588506674798452635877217223654897724799533553306355490649991660095718783482075101205881961597454463885054021652066668486801930177358416443773016984154752811400506792656427578903500234758656812287164014641477290660700396925465981756249665208213485586955102819996916641508006830199879938796046362287317413080351281608501983466954750966787725626439033799491785710963456477085618716343279246689137706304740464720184614772216258834278897915728181921739191365991119323098939170282137264291324798343302023414914245707198085431906446337395792864705333084879916021830470770853683843479001929591028869483097959778743428966731510705839799224560443089496149434458860551088348542146469437054900352950412726799937588261581320837831710654918855972256475280995602683010669557476592111697045682498816644869664388789073073574507000572629688155753434131970909700218215599863201855851401354754972315962119001240943304119153822971734517842952471848849379606725559685458525582088386777778808101619169858269433864220288741016301035087865895116414246177242423978195593522439362388055520142368239981804562656601691110394780409098171240728161367755506367347672032733673197792697843332691449316097085614996866833698735322781245318882073249496107069253176257815244874031636772404947506364199413549310045889896311216484130631914152753769895973330826052599048971234430634185437919534188292313496151750206179024870543519610885003512407984755929179639868369982906206560678145551208890243306525645788714801183955810074918120271243778259238200636524593289310139166604291400576009352000046335419080376308873336279171665468461645071704700735179791259217714589273464943272559205912884332251060061476800049690840798245345129999627194337956983611285447331838259177856291516484423733850107928607473638900361572583121435451699192675724033963159755297088679716610126930627794622786091679382845049594014899923823985223521773996943638521136439591183816067253700766095476964929179072677970395879047830860815766534011188727422580568666621276972838022180717705928870262039049012839745582885186316214813591715602986184352758060445148939905540750421535468924344352431098028388337846703566561755438346569334967233913381683155608494165500774870798470550911711598764223166454469115177829441054910813408051376964883494496492463891963647974682386268568671755165771491801670510761271286960167538287017495872699607751612811048342010931539344220636590907544057676106661388222342067433335076500946020008534028381280918479220090717113655202263484247519928364427429789304848380624410130521902118489384619711476093944468334346393775769651149025145862282449562680951505583026302809340701764788081009550807126303072687086155010074470978225282330557342514233420062222809996105016298593710643489776060804829723684836969693174322873811447314070714663971514231772407418505576135383271660628413559834965044668715666880354956021372171123316163940372217777175468279644787237823292002320093507417869803841784784923078142854438960366129443323118979895166649608563256407082963177660427482235709081205597143209835080098002144091004466564917555754099287932421957280608013401368645103192397098436469722384197751183904768832031553603659925844488608229001874836621758904713743357152798823580931118267283954982797169401218782668683709378433224453482258998025010614057462958132641610109050394711042608833261860795835667191079864581725684609217993442838614694017014756021429870376843070342814907899103596554652758473855001255954434057820042911733192890968272610817795722832106951575158168168771972386375078696441683852107892351429063859643792957177067599609744581024345170854456202946343651283053026809379375970265899579562182672790469572898137777578230262166171756426497201366478734105536862313861692384608256827019565247475877586985304766562568933098137016615222558456552796922083222014265744150877308914126646206848178926293359076597393856595750795663559835640270763572912138626271581536709802448400312059841074246945736560125069742643516952442309274900342793851822970449993933406667732984303643304765331497157958862755321836449395806883372263019556524565000145309039163733150878379773647946224962942233471744935032683828021474870822478990992222723004633249212177579559405267803990536251466746871285848745922404640708814133167091388092956318153033529780203312791905310835290729430489488292714790321589930464417628674142234509971543592671374266516347026818354443496357844448136315939530357524558620359719716348469164604744825506053284836996709553692607281673160130219664479794575539655612688522036984796043451764342790853800629503374131988071085297759403529909914946217949444889401295353737681578886075114386471476143120372332063645974698461877951668606440703416491117666957983732652345093114872792440996426632262021883300038791046463462353284818687150815252042144495325552725637135085313874242901881892231584641524059995674925992865788681476130013790983634183160298735915963264159104428445583740289425515419321106238932455483797674287340767796485622781811242939780778254370864845846468813387883044930258038367192174907421865523336072113089586556108904270793430788329695880530938023163468873469920043895922456151556586349628126771935432727723487107638192446951717151773077076622242354496784016168319714694051823014760441302246221643819605088192282944956054448539557984380968539985332236388931115889640338632866739932246326593547745080775368032593408863039063655736850300416509016347574402780882518202486813646074008984671720806450986758497480205910805065942845511489656629311892374806279356516206767930848039860537638859051448980813780366208448483712025901266867694474259691762164852531886505104987307611547903913171342761664695089467106094080053210479687633105584381787629933272530399140870839456164526501492374163889402555033927943544770994374925046442519740138232227755621334485936530598641149333331226675801139056649656300752809955791767629157972565291186593746101678928490430729951262593630835421062213417336109222558229300234654984168020192073798282576319350344011243325260436246491001545074911596227495635669812028902994415187340276972744086793779657960477356880496779024869036366287967809259974707571864077855346927212510944449228840108227645659726636696110222305749048008364022726741548920673847947632395371759628440197724014556849440973458331232668755430440893910631504066139491674502726311368057302230920243399037395028756656747476492887814346165432189646658149787256118916255348995392308889877263359685315712906256102605874705143483835188628128360992257011059755211166123044920111476254754891152418484859482765970874150076964000303817044225177200873653261234713487086266930780298506852461673664318693193262231789828322653293813214312018595385817210790213108521422261908417634992011081174858629548430245712123886394774348093284615227175713041610522904851601527846232960570191602570880236769476710848676041630139306370829757396424043260956530410891737467647044960821477113969429127829141644449841782563479382556748261669223507298013236060184043348710194808134935051670113618200041313789630794955452148263047062884134816688424576960348925665165669415719031746013514239366867296096076433268898352428304625102863401777408425127591692842011049990010454684795784618501782062847434475895443023853402946935058006276359563977792017422301174092430992888542273320583375081695222214620710271359016725471056487051156952054531647295900476550375136725968530600486302907159205100127188907288599935520399776411133876055407839740886016249658436708898383116539232412674078906073370168173090983712036340840498548668284000708637501902712668102192752677406992154579439438655201590402425375311144202388533826411066150049562892344397794288996444134604108832179892686864610313762420101183107629853547169040777703485516966274251951362379889244858486239445487252691897198519204695692224999460907592506777059401821041310383076668517774112667470314591442722106908966970793629532765115373068515863784805321355623709712051065343774273961780440139533553802224657413957686357611052221871037002344813888177085373027241286770051467460951261508383559833205207064423067697999246518109377435563853487238034658827303915159090565342277686383270155188108233883654844566902148613770377293772144224881400756161528508640588737525871330099767152203892691099828750969013998030554048147141347547711491012700201975454561202031639920343216049337919944284978991060354432694935657141237618644233081613155410256101669792866211561582264079543716161230891759609385372292863734310589333165936417508211368435464506082126325126883901467046320170287510776807076716580611555220232396567914307348612148076600209075480326327169046030655550516263416447998587701852351582245226611626927987118458987672136158727791693853602063893556810433737533731471188272678933133966674783134294785481607162216459115499587616816521460219287631499699207867114389434418471523046741483283969272707472793049049141207030655272981757985959701967567606979295712913621235708103598891214884251933267783082886161536826087643551914792995796721870726076012382397763946821703344380292260720903677316387373975055163004478283689870497765661754983553321533283369239969631255596820159627928645037324062866637885574825653280673232174965635381296238030309906308864295218460735464056059545360663941323138415488886103709743565507735871774859880838341168727234014353654936403633367925920681840480920233684388529777331832307362459211013059974458579752066042750190137509851652852718290587263097440602797241349843493374317161695697840778998810533797748700758407690303701194504556696587498383412955232921489615165326774929063120765106876902868130339579998296236280879849840996081040974848135482990148294667825489184234897267242220560930940285846915347010318871974432097603482696974109862430856898934371262933059682772298901052925810881841106766420014320731072545223354130451083185681597100151662042267613140621645324027714040143523253847682337282445511787929931633630579944597032262061549921561188049458204635554734694915109201312009970016195425045290179615468373186855092790061659894421224658389705263092960848710528572849831586117116927065071016906148741166518099180154314783767715387702027375733113770788742950945635188644388810988337983613327613870576888400020468242179436808273985563828911989375851393425674056872906002923512791481837944909994581405381793581451903180743774957971211290621695180400663559954737729761981111752930747054335518915072048669235459127183155636983665990864086595205863329046008364864537026170784467558803140238648326788135723796133857035474053130021052296018416310804821408123269988334042260718977179649321175918846995483525311910841058596267000600498279734145738923977764658936884333032310627580460854223890807244365003660675143396401589717128914024554111099593001342527747185120148239180765101740831145396316109036213579777360896267946209299111478265857397468497601576611619559939419567193716040790676469867698626295902299181460058920958557238277840403908574263587448033058089757296699315297049946716141024726897520224170996788481099524161819789816629437474129678516703805141181442076608880269072278568531608401058783808455922505361186011377095164356779864694519280361737814931630929543908694819996052506314420934278912260407849238217720363728097200869317030805752114271824758287082366348488531163058343062018359237579445174718293443180848936621293629952239067334914280932727142292215809740026707210504693595038629516249461824531142048401308000369502810866531835081060971487306150338122790738852247984909198046748646768861266235005230024128576685680405022653502772860246672587096446487223452313110066260487638125491437622766656997904839759233756066930814652328014674109917906372845240240633718860762615402718737327271134675571441820243240744384833910257517600841527498464542235992085327383096105860191421276305910625854410463576316010435331884710621236370882983176700072932173814749317251774311146635863901626125297369706692692487711985402488453585866474190027281917939233203114542793217933255576008750359859569053449036717326246986167881372137539520875456844342395584579204068926633172056981555150290538115735096513699072211697148257376703362697496416773006028125292226762045692678699410355548942328025385677736481162490783358638059031689404186042593316023598599101771610579732460304933545621890602547739760327377616309623739084788401375649051807438998295003307265014716673359575456198352933831528689712999082698403259810299720193483142766571248256713610140269401985470697260312060615533433821632201646195166998040415798201884189320248850562890588223645254600632272820906330551805827233819709532182638146726936285777767566131095535981955947002261538381850258573870301676408982778359841391171065787137696884690205910694578099982052495307019491933174147900546102593332122650166145400895562567978937201006649387994287849156059960333062425861213182739590026137398814364528273300644462335581510048742548167342789639811167400741689398794527979054745471160015477747695422215930793385522272968314987398083460152694438896918524861011929405075910969328864245463779423309751607690680664109720793539978475929585448542724235934240295101074411268975302855336567824970147636120372594302911150716047613376615476690333148595923935814521884694338077854952550584033603389111071525208999798862484696739826117888945880762541801697698221762373351953975519701200799743562388875925570400470839267543081195070412757796791389255095707713842368288180468800155607052380289446349042226464110711517409883570240249751849530500011844193412823652929628085191092713471499639252032568569180607807317925122929512893499894131763853144312166683355248663811987501574638568263745280014170110165355354673194005499239331246495508959705653124478348355315747208652843348122796633614587820859435553380656852990587700061997534462228821196516282358527047395785217984931902705468064470908104477435564514629771769317472234460918822720389751607174001407909660092240247855168628379692431929362171193342869108118123337267795180824397813144004223329833899719793372271707000280961916540041363773839926067357320868578279121600176262249824621512644592449794301329787662279158450244512029357348312726448827094105613957926716887241120793709310707634860412335751972916600756924035130213832652532490648687277163306523772520112861146964059368099288154561864775784372219126438234247845950225167994416587210120814249508977658250381280848653840824241984435443256791005835515686630617681971220021425381198030794969465186760186118474094074867149655877422955644970596078404993771905987433091123069509192650536420581741223716414670725975688807786069481146735557396867009434988695151383656823863073295540906746253012355557055430464194315055214844087175628984824942812166750603089400130357021571685756594054410528834981458079418105273179466419025662033035737766314072417257457343882731007672355514333171989189576989472803234048988221311214902264952144988340336325279510746162233093346480491840604383656976706223514173643905304079854114858498207279229219113648639142311275324305093949552526722482624815634606338644476130316114921489356672251345427056891943980147334436660488490525025964024841862978121635519042023710733920987234938927989311948364130449652269047064914403548195186465208084169775464336884245327720041351377020217634824686604243463432236395265274759350391045913763063967680376832689347623590523480242326293201344380031790855288022349642487002597566292282726514622787843149936396477382347361975557952871882023370390267686883333297814650468083645538582766717745523709069467318616905346023671138122948510204930010714573275339832856289795388105722042628109488214099794429971047592522169839010771245926292500684278497870999658450003334472256208275170868042628393651482988689806167862921351403739155130154414505959886713660121071515649637256797234571191082027628329278849098535273163233228725197924296667270785889509836004821403389607495834546870582534367722898118110717908395874400626033740595865260206393755342194865556768514086600234936216250182225494838972255744342207622430395217031525878656406776040673939400495655918824028465425681836468556720630574934398252797589080220630363433826443209414482204965066490495238823976287100377789602895518879998470422860158454433211721365312884763861111567419784811565444602113079774654615325311459622228035197390381398711884688034463303738457904085242748218136758970578390812961191652468335349722121140863359643586303141003037370069254523347778250768348756241654540312913288722716923893493980045696208200430075372468079974858002806983891971806334708669941151347603202561320195173581109979434965525216568641406401049983936750222180310026428670419739607131204673428193585075539750643521963543733827884190350727139017476203570567893537860620663727701268461442575571449347772668416551636585362155185970860281430206650672759789945151376292730364070369559826713181365494916183753910224463281250465103312926522156324248664554676846431034569641783404643268156364411385592832546309694993542758242747650475035914406042619590184896350867840352493498800310646765567582894502215232953337862453629505003785508802464851689727594343818659632640922430053226019761853648846975727732750435691110755798259315017458671448070946937159760479976411513226446765980246367057156271894451657936431505641672401284940907112974681085138780905894606099284247728593353222382090119417421566893348064078703471859450992817124871365905717101271378415506590493637395504050281725586259930389182436303092840423243131645779026109084973638229421958221387394642241601623490195794115741375604505523711829799354296556769586835146278146612792246767881957206364310953585812902714836386005430558097999190645132589247062256356284862462217353869812104534795331691572624701668989017589990091772337610044513928540852797315295814208946643478204701038799800105193958307846125253589790639504630613042690920654656754775197364995849457880115316615440336099641564381030636601921591747649077523774445689927485129678775690925468077404672010417814318085544505363957764649188792973188575809973138205525211878489351587641460747301705885978495878689169241989382320896168854548723765149936147828189924981709193266689017895014338172622249153934751786087892037306304306972933452756033281874647621912038894043586804185518112281561038782827508332624021306495035316589509539859610152354148653369651869144843814932869790402448231248867848529484697513233493562660082597119430007647240157594544999606335496007361741055600382131859972680811812292418491128901037297025580622544701202516127473113932331028865963493465162592622110301460476644697630510109917535992061008547740435609092505640478880421523828622606454274177871683445978187270350726334697995431822740501782473289042785411652867022688029056100312950122304152988473342662234288891675994406058382281782228147641982542277280891553798323316043596806628113595476713817467162828511654257034070185147797982774749912482096968681775025175488554369417346189702507206783518395787135003520424785565458250570012257629237096582786344684763598533679634236144750258881054714271757395796232957140416944673724904658281047197668445161762414893449221815012905436828314070771428624347817419703773639869391302542770668615236269900222315641098980573945659627302694492251071385114689270544030852483589881991580728974568185918522397379014626846356769521992185079738507676444493057418215475232416868361266121160712991905883893599404382584609427647314430451507191191762991076051614347720973584168019263899591566705787302768439596796135259148800793966292754530861960301240583301602733344618679414134783556352346562503886306516462115473786010737550821327840197647044057889426033928016797982428306272980318423340292815079647239853118675206147338244861950068802657508182620810158155148963873311552842127074415840345669887005886291514043543943873665053022684958226647075771003684192345610230202797634590106237811551758470438184685426250753375078196021315660066668991493657712333703860396194479390065890644817413779791973590700812571946104298397626244926960314935289426437441431872344317617259872887185805014461913524297099503526754571590724042831827486576383355248305531487639332611571231721185171965699152176918218629032519025948777515951342800288659064538521187236995414532673933415895666943276958392127560220600960945573564418596363645655874581867462300447437377755343172964338487891532452126579355287867967730581101037749338829511645863490720290254991629338305233943105122274913153697971810159544998923460166905023154000432059128596043631145766293174979966638700716737117826711517527219719327397128862256151915340271791033119339965806376694573767734614404668848995152395513320703667859918865750064587913931627638587429153232617598110582155346025640051950738151274892955910904885816845885351277236286204670279785851463859615519949180338013636657636790583414821875656044873640283282255648792878815738987587214945617662301913185038758822263064560670198572732991857812688234143933439319676851781392072024228455639926470529564978252710505725668298873579139166810196347642629692728401179394800464128964907725444539094499209731050003006967830644699391721049215158643280525602117835328197412312980925387519739861667935214246321784741757793825961724366288610910666433256536615442880135585127778526213587136653777645672099741945697990676978478252089006524839098597892757635580375605715178430080031285866275860861645761691058129837276561208468478160496823809502296719216836507845425966590748060600932137337217577712837511176684503542647351237935369699426714446293969705161384324169647895480457415493752445403507748223162251895499345224021504961200229610009975807160803798604758007539010277350117913720423158647219190566145593908677324374951290124524691672131469754843921800179975940193515881685693608451835210129491167137396337029708283401522900304569599537674619186785531268940614467371287850384820291154634708758137757395935317491433015159314736763719962491994196135529946126785333598675618459063755443037929807024753966404174492117038797522820104711759521739792579639613069518229974328633776914960956694242120735664215872762655692547163661306993032087876189680861875842181255182176363133226726610170487090208071782636419171608352364906124109403408218764211824707456978803261306698755665548512223690212790772905618743861337526393151226025498458067691738708843543858120157515634052065561591480843265241171218313948320751949983595643387578875673737858556126493694458223270038880464646876765991196253636745693656241664547418917140567934385769046667831494475535869596197967897914827005794647809330721992491341894886985184693945321121782604436651291392395399367978339999075528982297085596113505422370374430099072429021092258832377736541717972278112148075956842926000584847859168925389065224808197155119169954031427613421897512345638168043056981685783679335524465867252134139034656508982928522807336451582577482120763609793703837672998414787677832250004606952484720957347204177016403653001833825364552716961842861740825126461240086522356587709790223709770832834584749655768550504239671445575709698801892201326598215992754338820532298916550673137467824487793113132523893166426780614860852218800700138998134299414567110218314370100843057236508820508727843883333033891750739027092766143933816179239555427333170874518602514524244726418854611909715811355717188938805707987739596939568536861687668927936773967544122345722061596119768761985299833424857535425376379570254203665692724070568645865678299712840952986233590695346701129617971477469360045910541230077829227529068485441424599823409367277272599244778085016140878437206663890037414891351750250665688270358057582814140644012877870666179809351849370114807142041089716662974568359003827767065328298860396378233131216744885141849467178338595683432234524078835610745434180046898166828374345954297214178506503492282792805346447291754927257465682189886157260811059767975902348027701392748154123393476791534757451044834176106124496049593930317055814265847730452048949718653877784809470483195839801477126738724419498132086229366353291461496852570861168441734782645870053125058656250057742848668558096187689481676351170671058575267208180342221683045143746463642981790956771005988824427778571222760995242669354119518905121446328577031206706386004156160346336266398528748638286758681578995668062594208690029687386475480198994056506526044402563666433889977027847490261641010163682784805341314901590048589738098623190141309840427272016831884754910152338786855383225216097915312931778284618067576299590684563522786158053526667251280650315727021603344165126034813157080203593650741567766089896624783622899334485236154994514604708633106984788540621762227261197906712007210651562787242097643926014942896003004391445127728097816525871689022944775646578174182610972492499605931915336726806955627369029900008774644001199378531311493431586337826501296713920605999316431076356259131009743840162522366430635432482577093430813078840323140389968246004858558193380934933973757794478426221185889469832864755545754763531965582345491254614415571057684256495972051184090043959610893992978981027654199580515973871437185339000846912445052936957134078621339314085050609650527547175109026149282273451442616545093853227271120833969853523633134758561583805051200103688311621018094707358159064580136425755805078425742574287161915964591921920158773556627586524736433622927018687509883819636735104141154718309238435369855270677083710266431436193964351426482707212085719677869670184409262327874522147608686362117820851058351179555392652995268592797987639716912516386283035747166176176272259608887183589056613103715305134869451855269274174915735447260375858884439239143262063652135302345262164069703311905876069237168867035260778679596492912135468375163541930362619282543782693547269595837564106136779138924562339723736573295362570044183140249483233851118407903115286187620464696182794020919195822041059140470499400983574702529147962725916164143821737794468049915368503204795417258086175623508322493551011006684127316334580498108733391638294044911391153321916462549409659522907330688883986556255229011025266829892381419327282640584397198022748706541919531411098248721085571046406519816041692826811010772811310992116191262090302183847494774205982519219808762067351541287104155841361440551520731750377895537549828294518727968001563308584938755356867936216238876292700317818572874329290137238957881766295905075101978184881861440150303569667266279414432659950087112654559075233746022391413481887773030071994610878124397097579415285973292745131901180889328129279539782102132841857164561870251383830878049522126702329760493043113162019430359529696070318957776609508823759389322166846856193908342338263138261909118926453108284111537251256539889878941368190752085792476854863445351262326834281035085369724218086179114956881182826592934128134170281212661538260037480103531746546485746888039788286519379841664457695798966729789004943343289407329796364163586257499781392151492491419495706954272080699651100231614220138473957545709281401635622339616211343077618704703819645188945515366827802761955001030619297007293745853193065257610468832093029928884605926402487710807639760548054725174404884836951783891136687673846777550286186905163041037981460541831093010282574073489185176304245897222163490953652669794678078368252940492942803361371084742569352413280042327358389690387620591804978685443004096896323317928823208676935285114781546690226389092235696282295177379882406780550932383469613803409648152748235559025538797944193351690868528766924717234164098055791252832039984385563004246365513256776635576740313178243069038977753399975674632123271265846306815622196986263429615841244034478274646011000080995741461234819016460331041273226457225181921349869459713838116763560050724765115372038868367639557858070046188412239333823882929936036770183387897449085978273978708181735327125655558753037105332521103718831322874611209922841458049627801928004186956591789806883215498713030531477501032300230139848211750672463417663942851642836905544413149683620109291226774909352504623287132025005747998482793789548298090288267062815435454443767730514675270584931148281744808930167072398418084101691060447941561569657599086443542440548340366540462044344231926603501345920094224631745643139823632388784436264092668830021913967983116365240068329758310000952077598174545624755996165502395170692316068244152835169572979302079299943358468410195256611311314267458760528112794911087788771612359942262452265583733166803891947927342933005638790611192822775721602067394877717863888474682139258953590736341600536421448661663338812496024247171429794818724831646488762865018811076270497748144391685146815835871482805660555934158105401620195861764221033400095259001974850487448885596578635917195102242768951680363908909332244787273527938362244990221078507585567280624433453900119796833232500715745365812953608697815688337173134341739109118115281114263078964207391057398313195382458111699000241290445498189824390508104482002589183635901331809751610369068582984015223887686732457286718901131707702199552127305426313639345125958405286173311915011998345232751043537668241753129731606969335204285345788579794583429843732868234848919073149440187007970215801853531156970600153182783922919240243159265912392143742371852519615588128068346502614638599285260448235714797911685428755553842785819594270112909550577993924206306913352931614617152841532754054855720619692530794584913669916227684907469108275764723528075325534529102506487378155271051480293681500974506795054630889366901165533847388304532300445064172215218466749307236271821205348233004879866094093907956119576742711455409839580716346147181040333633676485058596529189447947497724691653776707340296192426065234088819878713715806539363893124226633066139554724563444388521877834196478086311736013920677699645900455740705607014638804435072188014416873222629863261918094455136557847186319681062877879577152586615947398048082295520939033156405535411309798227475955076736886987901860827118294125189626906382173378246292029762750152822175354829285250753886916343359649272133115233727177314218454929127635108530214528043689447081294091584054699850774958099807133739261864549638243884513815880030923418506566741882578429938801138873447018533300457333642435884243441344129177819964390836233356105627155640419272642530541927817023181950195867996695201022059943498413575236388863067752247475646784364907092812686115156073854884052346144142160412526456381509905164592877519564709075790716033533229658584842336773294269914591525630109989788891739166193294023720290509122996358662462769733445676411623820749390591139389670068368945270832758881979322844329415814968462624572446570445377664531503908813667701150184641379165902512515267771234809801162132860987225344699865581096506391445268201857484442634556535517726653129551955071643588431924869329455164516357581897120475763820377975060802605229137063245386336186689395674990370139351539766765123124371396656476354548629150012726620613377814430682251507307988333619505940555071932957002758663687130561626815993787011952653715001056523315054142161615647227324532244955058899182310099039050767163964320647924617042786204039342067632191439621805959256205252106870299100099226886004635655286718156999306135720211562615063217534574021613000364767227872966068946994406366550737138123811533257115467965427718055662938946335632714202327241702758482500125944009870914146985284134288070163720675712578268622562955895448244057868148011563144716175104744733601025470379934296027130786841899137272142065822679643040058693711400472977094770381107251956660103057569810282306185502747510490068976701516118600106070735795316839199094710391761955094091102424643370623111220800032752907836115509998058660233010642018643311548464968766932634958574968830177757119181929165061236690561684194333121065918101040971252497490387872956106024419792068345063985302932289928704193844662588554816188679503234616958598830386886630648066473064008406497914020421690736709575185833293706089545470418338739463453084817662445546887185936952748331351922154807828969934871470078421891919296195099010536547115752193222687645943226152330247627654080125218933437875215546291819915990107643126738734603329674383524434266251472957330899753635039931007603245362587303033169170049069704996013466447495039024447615214470752910291063462331158371455111383628915746282249890828114175935765882198045221132933393043607967410029949224966798952352279000098416597231930708406892636361280675840375436904569192567104697811588041388774161335644263793188511162592412147202409260671503414886135687614453456198338241760076063249717489501430582697811047305708175756267038058511714277002415384203606454508456269241461907118133885984100897489308683732470910316752909504864964987342701759031178754184370086729447377362312232793096308354337381709606569110774302313789515247782137923551403580027820602163393468872191826674342954810578695304081747821916849737184488500002192528658044760120851454409044167034310605581160710688046344313514519647832605397511132830359122833615025185282498153727428218478106203523348909050651852122202028759496812332234364112430112249040665873505762948714258832603119483767182327562820755140854511749186659101361118685374563612349240115277407732682721584514545027646134214172559965537812296939690575757914933868981967275542093833926860047779949095314544014125766464683182894478440656462650413519697173498823479578930432266338002472800390259486489797453848570423053366087103935331213159425158399261961264639879423987169639188444232684363931639517464212264556983708786027474866344554819231058550313525854494049800284152354562199333405814238343614301845267043592615620356029493659617908848561684088962843298571440702997446308915210261415226280532388003987689950489085099196650827926500788664885033702177358743498895692678535842854546324072399660896924567128926005697291888422872041093390612945014957925286353914357529687400520123290792563203226022098588196707918686584486180800212115815677202769370663853668401923146153323112083732216673708001013138572439475495852151724201448728441813067133948743455743526848895635934031804169855880834761392269804112245660705466393400652694617699371151393321200590357240218528042598796439052942939651502510397316159606722883322110917144380243636410496281981657242319104261567594212642506717573534957813037787875899982146431819097089310277807978891505019759308535702559532345766692966761588443583327564976569331459944390518596100418668490964519023729777683914308208205813665927481251294354447351550125986322606328634609458824741898260623167801331713115656341072542699504711811578075250843808290822430152631865885082879720240719976297382705896187502021057514336290208508316050050261181883399881774848008171107211713157390839513611777142992585860972038535860068341416080885301532744665168423634316562552542919599614435317580705990690467599841715313748981531623285543292227248912222458697095647095932826912650824825210606880362564126853978740255928232511173919578300124183686778852430091690563996474434647184035630274904248313878138268861093536347250254178656117132562421701962380582360170036567000042723034644402052763130714598370830268416906566170424127917825479557148873828039885073167750663346978950470099518211141166555575453987491838699590494501143800817492408845814852159490469631271678716471778261960593792454604797221990671357289972373783875013300351495999426751557234798583367029178255207659678068112926661170677592387922286655569691060329258122733791791238009026772136975179017831577199077771761600849655035907507927711945417910768199500439063740051072196364499780676408739870209243184506149166043671279918906115173029801560254465373161970011148914233191015643056420637663732483641920263161094830205424251871648004487747655478859374947825466646185871425408827309370494446800068157131561940442649337197956576449235440449052390660475895686625889619578808188582654802217915515172893221202015751278606679887721245924216537030765862173218474932140534845444812200745371061683251774587669003291066520895066379309576666925773850797742911869584243661323187907827913057062957018224715715705801196700997561596476831869443203356361205584328200226527250445569322024930185669568198341321885883941455071026713981373309939899320013038071773986687907676450190798688622806425829784780365783481117352758909104820509320347069589822490784732466506759465806689535661684019205723063401270900126027043785417771743011029501762275338116960151620313526137483777338421466553392851777602205727036924222058191139351802854726402261134069164336891630224605439979620112541988894627721334894786821047817132453367591524745961788166529920180869379065058186541859864765194328897054008235780692202619306217388175540489019183909331658849743065329001995125658355798436772497557086842199850196721765296431156816709184992695842058682991127658003429047652126117435067194273327650726589667339904134550954141431661473350723250288222308834710703492269834642806538359109338656198389018325211696702181155272468868385232582527848957926427978558824654099270875281984264371049888902370474712596325048513152398879226668030615955296280758594823229631398197797178243214345525311758317134080467472421952968934089858327341137980581846909102383191434865731687098870924104140579132766044590625959086219237531053887467824907472405645129537089521708483941664586018791989368005487851346397988182486992506203634218156553601088664114200765598461254932368905660206521679366982340261290880337270154751042744141301664644617841750493759212684826425320190325823810863467962343488141810479211352986522442870469168699335041875263319637696638305830501053682794226152160891492139267708528600538834843255096744653228407262556710536982352730371457974277234760305655435377410320948571985733920024095166253956631877785718313475534551347937706623654929900657877430595222712029196233663390342913159344072915266588268649769302686534552694471037913667543359636775973751634088178330489376129528720571600709356895082916483546482813396295950023604081232994571449594729167457285466245105591427159765720028804283655955864293283233160084180215364648449857285894543387818230259081014672570020013503737920920175497184105855992499980315924273046502275263834575458729394027742672020655937176672853666084370547516319180429220588500164162404408819839787904950406129282384535442454930416943730237654405965091028841301568597797168963258002732887652171942776676474741826110239384424100262570572167821924747491077619206421764653307135815492417443218840334915389440656471079444640411906957675459382940905553810532652408988451574689178610705193913491171474240204603175905789752760374628554728886577261458091429567112896838038881065015483728119563097677698524310303303513492933505347143389796748913727959412264884339689139158137206253197117990860753564738284617404171120200619885510409966242154057088700718111239268024457797806057747842953992077342813868876345242893376334371708496943692099553735500862175137856901198228219362639789173238199489718962854869252928235657674946068000581213529677991720379798865602890175890626104481531409561691901107267617630161642631847910358162164726355922305623791016798947490949229532953782288314057219472301528385010450817625509476407885950395985437935478888536878179972018467297261109450840591891970643824326869265972409140926279430172361469378065081816384031920829742519353937707301227460723398013745165895526598428672971543271692095983128165535234088685966015015321062755877893235974580349031492272423780580814298175458919549492985311937672761624059242365131279009666586996556101324667997846033530360539425944071275751875936849165356595375745429304019488743699417001715133927246387747418818425220873148800980519225166309318015781197647153717929347138190487273886708525900966065573923564159502361883110413105182949320268908039758435654398400478706827984447334228029851986784708785477886827708382837489896958760281576865849787429350851479709635970129207415327931763894726340313198701196531397433927879713888777332291208581808067592692572963456778358407358924706669299439209328475197105371084326407507907112780889907644969452927226078883082628130205912553714232024771686079039538456329356032669201555387854076853530747793842543011240442414686029875526509082390176159836246797219619861700044938384506764560375538776016565578791940242831564188205546540221595211995596554023914641623794043625161300766682428481304371560380278157176031709296542806182252589520328881744078393274250817078545289774988469965397702741166843135927474321604541184022245688012851941496788985457445436677332911977136204648767687915931345504297040532395115023841022972608612608667270322153977473139828847047499079948498579821920903472470704275831207976411240138709656028187207914416820713243626265020889598437940164445803779952382832412176457774610051179104183607612157036870251600281553350149878068953613733261115379987698311121456004907886113396996886212111475951480192884021777853602396868052708724097164282412480456535191516971752934212919319010979480449900330731369591258816281278273889597133466257673102437591678000623519733620616403409318913814110874171758259927746532143454675463774505640158618707891838330315057354294203889948248733515308346747561268326584242402554627692150130749553818482931091122863800739109915424227454249968971226432618183919743888198766275179909556484462961790240726987289428031839323235317751185386908287498296946881555621482069467813486733804436293791906342188995816311235771612734212558801973270819434326169946047031995274751385086173384880429913469492268955260091327193325899449379859779506148042223972636791306589882252106832804327008106402370667596608753069571095834495569399189044708051721445309248963212129995410532364313520740633220890857542384196863838214972631644866415527106021367460961557710204326244103167000498536711236956649423434548965437837970887760649853579333071415318430691386762066658299909805564804160479300445123768827363431571877676367127315658516144696930880565563445400986512577717394073596636499139558767628219399094636254079880713187725107590927377357518784185447456013631333013940969580459292638021382582460666962903364480515814229657434384656523600679679631318073775451571287830747990516254435002741253289610914239495304330624777303900836667662682884007472544788675451054619166389571060972444489124635515859440938190192873099765903418577979124138454050271137635920802864014037476799906123349783612337331909769829802238932538665412434700371733674899269027410590435798573643610256209591400334510253532000482654646864654905596996401754069146130666847246555695254139653674973145653603175560485046390022588993573383066829686369155512336724590500648391481225350508910300743247491236176955455051980331160894006526246836166262720750698118645358272427009722308909814337213443345751071731785679117459277981328422388837523519532766308728858778813222773736844944585542073975306357363763247512241960220702218860316034815026678537590545577893576743612627156622802278851338355331588401070642654794085440465606386929627437224562733646328383673049615982004617024545205661979853769369102848126240844229739330033658105199604028598076370600711316577625743355084655405425405634465499277109104487839476648137081446426155628067211189056213903003994645510880781272799474518599020080872345901374634469000707589528707869761037098242725324003959939912227286309034147068326397110238274650406563613361347671586656113729140652451337909687783218637633175465247587827355788736194965625831211890598959969003167699757576386356994264366828292920171950922179940252127982597915396675809245403004549267184088134706627686129040748280708194120692290779231738256415183034980487569132237361346447159212446592826044918397066967541953993939784915592890033967655623788989535553659391312332863159851385359600092758887324444858872032721748815683853873827015432673489734329452473500762531124040348216829016067548027623006501047143310466968294710684421871171927799142304246658425490341978216543308340074429105820240787539976929643947402710836937350272193538065672252917802258078389672538177854373343234657672698614249731123900937826343595495680443141346821224646641839718181599840634345157849307782812359592566879124326418014054853552456987194450979752676154809371840029892398028942567824285589113164497710654250083815898806559749662829028112315334639236257320710016288217052570016677313635371075929156084564470673271875655540485667365842995728549471301095938387193582097006461296922920578468814081515252139331669247411321915468186593111165242970243396611833609159972784657683518747865549679459248620922166406371144693177924801681128942892420677202558636258595068351713033697171107593583641989052338843356245197273206474405546673275440741669430400895540281291575531415830380732783420271119466877069946188217246542667251341154617813585131935020291590520879683007839780434628510481116395152986181406482414145769580306837943373328415473336719386997813685400941741980924160681274745348979229715734452744101208200930337511547656938354880693297297813056180449732977577773768283052221000768465909536277216185216235082098324283832194447555294219442376404619450370980300252568987138208984236622411664421872117537345098520600986787515658970424634408742478037444082364718195935348542243535534782585896435904305511071425856255203099346409504838344171257323246252425834768351705743887260937255922554676284780417250585104506296485883446166738193180590919220754244769139565340653039661783580831915951799751314210846302853091396306255987411329877555177685661624171862167904017983719849280228003155665072134169936541306979281990208462906271364207881637613162357314705014873280703855714249707112891080687295829057774829865248613328577117738460711455907640283970175328762344220709586543955661775172621066550241559969633065610208589486120430946544273793923685070528559797830921007056084103175937978759845181399106559104562524379296280094740950830082891463792053014477334135810635067295437098968786188458834032248162648208314380778223267690160644663297593825808731754301396549882013489131338125472655988062559415962484006298896458137392459227937121947356473912807110017506785571467488115709358328208018126195824169043589690513521477969262430998214975283148694220731764572568498606245779973713109598404812603925841823252138812535120516578956932016007498860685580020770250250172258903697415993778046723235130014936608193998504397790160255602177381687276230733533980349442208295706474693889589271049612004230790367966614273603194517267619209082923519089305023055192892093792402904620274397202265186427625387638111875666396358358832645395492900536631784048918766368979352547992345934349420905845688588663100372431637684068879001416711594115551189253000984348391197648334281112948245203187790553662927060306892023401863454115663636372953293060037206022263340624837127347872219444503563521451272480884790605703541448194546515851751461260065841024893288063973202661841552150844535871689226738319912599021233588553130037310688428010675204690725857304535809741891972742277957546317676557308704620484015318836491858418049601431869128117879592281811487748689015884334324012896389383315155092598735403626366996793474633109001992940258247370251977111851360390921925293720711835608376540889227108239831566295012214146837490866937468462010294687885139344208283371613649515783806449328050522811404600485861860250196718813920319893845476058057880864748048011699933850784054794776840591989578482154437579637626871273976631944961772536306816920280325831387765698475050037660337275685109589521009354240647872981072226394817522536339290377169585148101603665471304922559052333060568927665102060387419243269302036201662697897048788751737716694339558904598469714804618965854352951583803006142198622649255434463493950507759585185852171249461084865914082015705366896048516042012954065158801276418314634010840220509909530354251440425150494192103627066866065876684461796143872859188071514209389150112918105017681023437575717514046610813343203388719227122653193403076828440277311026540392010411103938293806679316180785337879547789065852009322050900711891522186084057551627456031032066553471062442020314869214881793666272735167507036720086912746543849570530345963853012739676489196141059034027596616879684196516770734085751629637205746732623424811173838741430286750235462552651942436121891357938896487936803064100898537691742377915659575001591707370443732351935028845062216708527001750618221752210305290689585282457826357682575028989143975226619803714016476231002781050442874566360952709682898927607314437643001239663518001040232506039148991215743725373799046840478227449603460534569209019505774482813482734333411797335194073419360569496178316596917707017085199181630049243456308559343857664230243230353676324872715257329462647697168777932980743953992088657889689056941362885315545724382285825061346451414169899181681509977997402526611283869972850925236478675565096795149666234615854514417377874322529247998542028166302269060587600742400158777677402550966326649915418548414516477956572495139646352288375662695172937958590193423001579957348413158024687301274324058581381008080136875283906805062244109658121135203557598744545253451925730952939674820631307750186434613541802640597129585793876638842386188204821591560211414341253906988810723194212541345916077907584192340360480368846240324150592098314775403016200581875702018991845319092934178099311645922299816361679793732022198988373439779673610445874874834866818832054501193126132300666112420848681198735751867464492523072848889842430948040106081755721287378127225947943970998022257991813443306089545082536183320126634415928195136588238753612311049840304812023678394098806648128809683543760472613745646070020278886403489837744904798927493918789511431719803762473540204804361263170154452245670136211702593114370767093685968874354394147186811073220186638298866854494996328510880907659620052420133038483479535170259917248205055931434175195090451367104430289333119511521363146188732633595307974004636975683371155156049195741797753284336404880562560124441841241641270197765293103125202099703511610807904826495219867566214904068920462346093973317536723052084007162892106654700206069396060416607969199438803249106489377601505837761503971878992990722739407980591990716290741992155906267676730624084289497143904461016217846542266092396545372822790995739458667052396735719384855403351217913100534992614374306184857430695644556950833215587232571315168746247817630442765055301151334921358048501149631416027467801416168682178951052426200612368578299789384582863190336878643575318896005089677066746137463176657393355720031621319375587000089587249154035721014169164813395304917249048970504227054302042777967393098036437650108473400310069468154995513940971470405393889692798494484767637835784143983992491472927734577577766390780092410585425120440565465383342147222549168541586100566820488878644111701532900552004178166656987573797788905650717911645835934494681117637312230211203712614467381237323752677209413255510890593201614829784379487562422849275141399743828432127695974877699111335487441188519032110125701295841968526125433706604773533675225048569024543689023072309188078832925898723842501450470550345671194415634225552653024234591751687260777559279149768169995031119314120570551395149443289817161142923626712296809360492345982096232168302121435510847375590273685546895733032661249583434184488550495164469139093423898460525414093022196901603171895166758084633749644020261700706868345153130788299065148638335610755981578526878308577816160784784535176350376387860075783216933860562118056515296386367483466035926304909498449810018099965152663661416230784369454896388615932238365416773188202903946551260141926056064237105590299384463481102341204839388545078057873398742913825353237661217845690059866784847994018189874711710788177435430037371815489874799244635045576231891696609233703694392317084509698221062791395406905771394765315475337376117907890458738828643351938399153038649574849014299859004852233481283899994186030148613617670864147005420402281307477659868213030543977096139127985782931777745641693884444692717226053496225519692352664465226655073455478381416062879354035701445533195479449350348265839086746319318632890823195230492366652913449954677459474928056867822364899811557009016716013367258595108612696916489837367749873475957630698565366807140645615532360328396734734034505683532042580863767067283238630980805948293099849889379636721751798579502019588165478232093288633716372985649277485652761389673835196211085859271262987631809916553803980619243270846829292022842487455193821277335287399326845163099276966256901678977520145506512872891019040639946768658346947708739581160278361850720320846746803967991185144597589772688414188349583218414871462277899958275717041524423323034076446374297123570744094431197035895019624187796784809305917543179287580669206016678923999220630322033855303366044797952827518881160479881604491774464155607386015508476183205473987717188254639757961583193246053282201758574293403479865054038090306919369047036774514963377332005357249318838596443195075130645101471621682780194023499732964025326905629093922554405921591202766952173680142270146252302827124139557086743073245885720072799584557732110909367222172252159150341682676395413640425033559567951488284331382249906067919740033350400609583154303595391845840541387279975366767182332120454822703299266185093702280610664625581339303540222742973661546196456008983290621443709068312405757290889921408135009536142081566689290401193821085795436270812329575972481921963471562878022786964467499444327459823553246942400517162265194559539221861417214969009990977635772392253972030931256621766647582121350582904896117921803553374632691121795620549681131406362516926775303637931246993729456912777635019539395689988059015988811653655750582901662882442334426754510227638228499169486094777842053649363296103052415230625285420965894169572030998493732777823693820431618678807663095843892199478591231693173561456530084576555496935628200341112668763068922554819290028475797835288602721371777671349987794152345081306245602681106393359607177705936984489872075387517330188960537626532886569595436834865912402366525457486943094225750562707938198331266744827465213835993889669820324010298483229893394771711715082920520848067224029198872429258730225389314597223306811778642733655304139072057458881159753976528133571463755142525432699441957088787070363175097864209530841855610102910008369432047734583736169901608904573790413419925150529330515384750323919184330484979042512146584446762897006955114923278672398856667606195209243052705728053185889053146717074019268201584406176617212112697575035281702367848689094242783883507622953591329302531492298523758205669778237652114029475534600939266927989629127992843592136722323448066530475681744542204603058465551376040797402816369551037895973591664999759160546865660962418902398442059560939972590563884744739275196119848596977399193221166812176479905655146689152776449331588313847205969037251050026693780074377873637316758108457396022913401919007941063578911459178123854992493739496606342339100706917560065398059279955784513885438717125218561173345399836807422139377049389438940956340332989056302800922677988017711712612398131678692046731443464579880490718505342526652738961139238253698436969036399660050865177632467955046135720637382726754824256207276789366462985171726984415721273294403733877709645403738159735571542512737229289051561704583256978976256889467520532704939544491952889055780140808415793795241386608866721677290572937187804063687986892782971785171795288222425399724947956455750449231040135569126895344304735700789211480948216202706558376817246340143487517576813141342629628296592666457702989945622031683299728481513584872287066357997392766885184901111186275850028977595786858412540598785623417342159275310861905023539827231785013197635436112617821868529713555539838084415960758213028112929464575923719646420582980688307373206129890606939017128166067615785552395872641467965193842799918476921190253991833948932144356578720892317589454799605510696025577958983094828114158642320632456170130874900083317680433374700759860455253068973980347433954980766701440694794144224126837157393718279896467581511819967326337398919357751495052533495012710441317472451592353840700374107672614846030293895623186926409921548587640948861788409054137239931333995357112799602291156240200460908980237620544192566378140270706211545451086044147150500946097330131657054995344819388970425632425850527509018326651749598499006527176796430861903671316218746882606365270007688232925388249630488957419831525342460610823822849129178578024362720192413863445432780221373122549302606521948747252430343167360450934863504802658426762047012915253788502161878572406185976919986316675436526019049141900904016131862250422462687259276878737457847041260663518484722606896008443805902480016439534362105473254691157469369921932863513709568868922169238003532860659710316261927639272380078842638001356373864693349377862408222519550243479366144514516644410429347225688362462814948359488570833394272252580892374829987204398523250289389143720535987087576421997381048711968299621312164774716355583142406245572878468833035876651899599638129736232390414904291211786207115686088712546428178645143724564086269645130396392388701074487535681034726280800700026162310788774584351760448575595583110448750358981614714532311755625393657986000421531037616872588363996291104729134354243874899411969085164194633314721873479021539936573802619724354183255506614368161869002586586177880453210981212874672550508838594550872726529107546043714119014473891042291971759796308273285973572978508723694055086572914755543709977344770625576869370103243724072780816414259551240195345362222553004530323967013330775022740398555971204983814981412706624045525237213241118446853321579000428356802792930566953741808308935943388727068504043700618422896999936701536444360703339299561030672026164482382132696887089533216344188833883392648348813596804754614553663350183948669343444249127924426592529663456462572191640931953541940790725747941763486739766220727219480346876458782557061763428196989878201377690927135858625774643826363377452768258477745745831443767465224512497791511842034680574034028922520963705532557342324937084811864803175391351900208390799700622792663455333396463234665140204367090317406697021106416812124443904756342555524382042757518712923201053932342456245441771256172639766675713513964823812041222579604572799162050266122024084294810221722417808691555533128972828560746221781640095992294804007043151669948144390738051147187525696954008222206023698721275747715347285607090204085419886856824503694816980861787753469463490103450820299399248329068997497255178153686127324722744725278825344494793174212862797712241027891839915631243761669126125187923202797310903461243439717951702216098966025146631143387047906580630811272367058095565375695227706331537130271330204802393898668779619505566623214837805201470915496094982602992592040887704532751288277905911448441496708017331755513407968380492501375312497936075261714009031505011343816125035833378931790210814556143080535959196169612023783627226313852494834831559134851112594639239667639560525032907749133753981706451632518125162121787716187314679904282617651669759952332653205105050566892013997499753871091192639158009330111621496006742069813657548533807714388821763116213099541802874205804006159491886967067269592169046238562407688304432931138959162677654196912779009735681309064937946070183636209057795810052816333015188763920336043819559681046913264426137838943978987292548834223310808908548032015967613057566452245602510135432010855312310654929562189139942970364809836259195592700782939478490473500001025165987772890681894002137530644614255320499873214093247298121400134707711637124309508119668683091462211024514300083528782660019202314322373039683198324118048370793147494786744005071916723671920522634241954517326442929139565283390280368182150541113062045260787725561203296490085635626880223155271628902256163633695840337144305770854985844534060699264755561844314207464602020670238054749120944351033091353212055765838493227533265244847457041338985697182128204010197801365532592975240370282551541619319893586057163815001908712956169949690415622871707758662386073313946579147447717282021764341117141486215521457753894382480258752505088956049061524138379607398647927951658739829800562791339262930735437009913695659921499300363124131159513548797855614020183169527328775714477133654770152182182203299909617381449414240537979337537227917617906056362807801057453632338587304599225947754083170891899672029351753159140194942056717909775887310265792683930442513844743615721438566206771736863045485516726407426903772802669336010805880756529808239933813479107118023593645570571115842705720825022743972198010508013556165976593775024933472540205847218247127978205558996759486446330845178061206008395596123848321887683995388115488139873512480812022933577138466487258495868862600975016685726970295419315032783501773496078097740257368763277200483741241808866853715111745954346855812584286755378601434979845224992187730705903357657928462487953729827273975664499561872017155585241685158182373566632356408388556664779208234517430313037882397652161085540164794019919088192241482941701526532130750557155042809288941295559538499958179142127461060129964047286792035387815272708161097686392925017819759879676702471547164812433336364961441510213801471558931144273796030515075645773992142729069803855106804220630813828256001361389780723334671800899620020389839694013383911091771197790528922988855565075843590161647955507709046619143567649104413104291720638469363129410971447689550661950587074713370346088267112665292303412806566605637410535091065165533848342059690044895083418460694892116926240777922351012244372609673660687402926526461930645744573682905333981979006105718702326540442404697002732596478786212702905798898283577014302042588755438720789249582650207480837582750224011154309741235358623266769069486234925578388246930228438723718503800793176868482656523049815771087464551549567159849188970900959152220870767941356552981597482025530445150612280242610447476381988161307122810258204772204130994306332771989324495323412217931203051737708179878147660919389207768660612089681083261578502973532384027977822892183664654913262362861492076156932000818720930926795367477103518244575402694225347448208860445189712705527323517609077376152139520668549488700051346484630297687844275898344653187866974872949849103050579408596085297593753398462277970328773470357414650501855723212185771796427005343349783320032719439221481172409328526348549279418200793250240285135313660983895938826310519139645619915898257715339854122546184174915891096331110195765016755316965957824402255149808134247042142813958951743972190484611344695410154034778204820956015374150849827317611366260264711088451661767258661432422623533736465120343977061468450655778415116469366221493987855272372637770045494717448730086973586180711243634787767055285377804254008350338626922047725939919846036468678038802745068193822348549938984518786599488902635070357253876621508764383987897587697217666345865117270652433896224400813444538791102736976622606770818625882541216525317184499530254239769235537551996323465344768564735918264277681876104018262425295105840613112924814440538268997077027199203642816100806391479144202100513205877379413724097565695509775431592900982630320849643163818873970062719949059713739034668989898483372778717321829636207863751665551266685423109727577483757202571517420209513197250449054505802056133571971548560619107676682146600802644321723849741898344914374990965433060715462678431035361402354494783088097171204545759743548228546482759038529223033629660728861667405896135182711333923384764441144026783044852465167118813471597270274585896069726596794170824237308181488533229982367078428021185350712809388185301629076641063434847516856600157300412365880252905700830057918697184139274772248729480322030007494882172341418171293118167229856840164111385828165421765942087934909833911726474341669830403893547422859961689230018158626936357146898029156828603383657687888048357740216086459123963867898601194441977368738907205713223046990810043525189397070269789329267743282402539647652626332058224383025834716883773954194793596972723726361989246677232343430476802093361145992886484371118003274730529940894673301167867400023577384112378847899619008054553104200423029011583110599282972730353473522737444804332529021172893345123950079576250889045692452471200661815657175658833831395039224045289769195313334396758880167523049219407649221034046335879452445845264240204309362427203653492299990321569605667452015355420335193821491399398617532008954644593868811633933658225144960252065856448628580270608141025746779972748347035301819400748227612327861925815129230928246803362739257714177422077209265299175274316245256817800268438752621393771568460503363244338116240363171502646951601794004259870725796871945075285686643134322347593628645037922183427475098501144512310625308754170919118729244872486011466944094370752158563705619953115898210583515804739726358658574647751922280891857390199361991173219741849299880550806722877463532979305484366701493582569924731821135919360664315196704453524284525262560610698733077504292050772719370798287139314947537479424501626631428078097463489485560810360869003725126198077064389975521484016803707025072787786492303368380762804626786755602241115265830530964046803047839187013019256911162994593895344706857139354817416447968790666551932209253056193517074988345518647197901638270900930815961895189400391093010972217967267802996095612750906745094434334218455200300729939952658559157216842041473184141650428105132335570723176435432648260534352313104221560291131915664658955761661446033879704334792161987901344413333373752355482817718835566590022911034764572691843308839185731286318938604993928123018433374890397892434731474600915479579353270438769778479668386322309776362073127026664475852828665001383019191173595965924391360264195783053176241641992627274318267612403951947223321208808546291843393607385334878553440815865376659822706271771046828598484293275281455892437152833392370539164366208083111415918481975164097719654157644069689607604727951910293851166986867497850243091325855355235170283078968507942486898431660978758312273796175620788246448799223087528694917140473002544292570020630336057789223966332634128942208265624315888234955077618515104159566570438311857287019923009270072105886277763559139880687937546609642559660190816855889788475326867284312109785659136542289521195928974716552533393279860521571174255776091732803910025540571863583335516074312365269031291619601318871818097327766627721885225632267076051887273706824075749888514853007555687041216166737016365357777503880076552663377468253451062624047742877387134809296945727716423254070027588804307452530388127928528395159161271455366163235846819622014868263846959510681944091427985187603978728669143225410565403724750498874541793684566815273019953765553790119144475817459677574167669675389648651806666135712992118814749024506484347230245496609357875914430974356594187921182805230560282418628329960218503921429027432514568054979510244610759755637093692204272437005970882367630686016026229739635681458708648785692425588003720061155888386636067264669959930020440553244506182298309264764466973299253562423326613004468781756544846854526671855864612452413764449921948850292910703923365379355768994989511479759428377612109944272327579857588587152730264098834921652842856197837908086090929701248353087401396889195835319977555508141668410900391897055686328972476251727244723048046872838722842929668823090598968397615890564547303923764067515816268526041557947344236001993454497049736225075072204736971995802162908517851737375816380979099420677043905561074388004246760004184849730583719708134018141702795669255866923885809930323638230393031333783030736754171156898215744906393045556349358824966129097876640385591428506586962847670439754186888790907302832425301596606572430822819450592704215999101211187039100052119746511602019474174300890815909442993538878257510375599264573224414015558755349085585592600553765912832179921679930839565474787349075871531785421889253270906882537384502885683874751462362031540321037728553447995998649619706652685000391195601260750848395776899236757383789746473568574645637652584099794685858037104366680851451733833636189414552610873735478316185416321006679692332845393596588113881460579813092585383926309598536558859812947060154480617316657249175365656349609198150813434478661059132391271800924894136577976170827417411015927887661212012012658842211785102105936089961524923929822814869084987019773011043379324484263018142195871242640258722578530657965002569065868716376123957125632241357597607757296671323744151539167418006122765361099124625747658053812332499701000570128240498653452048763503851086077823884988494141839887940964370358716687523884492484486307354377623812765864870846997754554954698533727750862415364730083951887154034688716926134886841283838934075312640991352643556321691293333042138214249960664514954586400196534517152229500766048169083725308586335979000327816632420023801410030232514153138981465121530964619038854166653591444446385561806843513840816511897404212879577699341878200023588597437428701103570868758290317620601156635087378378528623257479347161460259327763106279416927806368808284480804267121022640705394255339417314493726417851803239310904502298733177768969663836699240935294230908064160850364018222790456377530248657812629776436832009233425841435455637740958672800451728414902217062122201549757810049776385000365511512257589002297410896748024746471540494709729650116505288336198911513138377070228271558361215909639203040877097701069309441911846937050593718728626682107459055440727637563258776499389693672258459064665061040026903447731798212430302981658401233694651184271773208262406459825637246116424737093079779666570623817582848398629997126931954658858622618262822196546829725695338084166456331789725308982771710019186788397822525585622871273172015495318225153299658724949777603489887735516477057586933097381939290741781220497366398061230805558210384006465320467187830769562159813362695950924550468828700970475215884339363232096632841488940833613240132991577288724129078193824570871186094804713120474427047777319215088263235945628896130472487465465753113378785134767962632191628732814581048746053830522382290210852426200433288174403280074029443363679392433985358405918455666853547491385443227511661848279520175832997948915699542814049388681514660434192958043927952492638887246237789019759497803736787863545541334591340986081704996666260175217349782673457081798898976343062686009747711245769506424897950818885439434808030620572333540187977694197132847108687472447609909538734607626987351624633341150482818078114418264918984991286860560015928278648902817684064252113101352641622812864643070101511455555853892166643484695961475935660804193389631559421199339075878569965105480643631077771388082757014404501807751465808873951850142409789227592781423283123246135888276410746323455418292479961144529627866115069116049730100099480878227695552660139112139666054096373519378149672462224021522788936290259238432346664141693539617701972362187468653391230749655713845923904718759369882662472337943799381632967486976727847897785362800794756352393483621789940572754142666341063596261343118691443198744747930727477288807485944765076730389204679873843133559608967024330376637025931558835874065720954160893999654503976079011629918024484966979798699399180654211841343115980424377330249000339686593542101856402776074822612419277459534841804792044603705566799207845823577479865836895400188623743815694069724749086130330956784620396558954231230930709484269540082057139336317001248861565279132214424336816900702513441719310044409437044283743719467834164168998627484846352010276033683205851552447867355154169464099977286568560464307068137713660852095020104230271393580882313711188591305258316633537592407198492129697986773010645936781350952076498984451696288993166763508969016691888280045581548570973814322286226259745331352356535932659947501147136366111079531026722473102184738364434693616108880833108819801988140457056759290319445547747403584932438145150266434996297442626350852360545194547558623916090589736381303534985539934654304668403016320057544937490300525268264363427412877182350311571459072397931081033219490543539227661316105260218049951859444089415342150599497267785388410644592893384312727096246932289074914240762171545183399382764649508340315112430123215280441536164563715575634287749056906744863795190861918241253301248389448593760575263933039414414880991547548132641137014264188011688775762585498631373282616855945907516666162980661501118241008722578835325925246475829535359769322130217892720712230054571459819265557045345021718747915589182096843915565216352428712144542043616151125224985593001306492780455044806579501078716225058038559214953890365758109564499058537161176338800297725185855436292882617940116625303486634680190568634615963521814018676765467922182982753758460465738566080184588367431365885769016052772277287496316037966622737620530156009121965761926259196639421579614304833936959244296454559860057273173179024301254079087606611546009715979886380025223355656328064353748232338612536981625177544022433008481004555830463653773638468373318866058139182435121208384368820975678922118612080838372804538456554680503683332875668175434062961189143062249399424948865186278460789346163643957358249644922385716167907623003005915149321653046808770751297781789732999957663846306798842502671520182987055021458003233372014798580367313970211905783766034882207013943758623722284473598037578172212154160244908598355308868142899773590126458775363304699046799767185616122379457223875989297925554797016735020501336076158028386454131813124432294297918374470939457689506806401794255987423259217230620143624557074845241064745918952570184192299259406230883239987285865239139093597434386151152094135050260575399904189689075864110286208488944394579903356709585671285764099115832523990490902530316857279235854823588627625913032778103266032845237685599453031196771173191462331918475178943074336619226709302149408991628932309051843017077742209422820444354141384516832220403476895829196727835332179922367807429482266956175125665372109283034305716692334523736851711359177956123727483296150157637749876605184695039485824222515569601656495623021836558334554656761833981998800769022392931090571351978785955299861563935973716629115602249578522919441807845592958192998256518299581621429184632087232773453075808907239545584563209645842169015793336396575033557994305731844274908381280201981729288367535081247858031323003305389249708691807972422136335263592095621354836249909616771884334087962009380345723618114679543545794006944811217806889548867554101683466961440171735230336007939540500285105428053216997773003116577265661594369516671088398770341770603297414979996379280049615985255219889891646572165240305431874707635714630039985580480190173479731419435946102579390363965829820897508599282389549033150299973727766560853319941058150307318664731092127082042530563810544737278899009474279847975513855858787495069733193064827621748373595753811775118585196337575656232440734602674638182181932932900471157649934230755612857237654815231240299565044100713938892875434168288408751015409471078529852286066987060800456542704351384873109568633678874290169032243912624738441711369599641950776562327041401686802310461244191438009759521320718095508818660079427096093231841109296369287953749363780706644649458190489073233582458774017874994614618292817119816029652603998635780470136923124899559987127256277026587519698956379411011748926283706717894018330275213068116466454849745238518258046872538275940767126259736643175723731717768592484946148499146606485865233163810662394973147908495173869640466924244230848813174906786095563068192439484822857093246617758838409733827344811074747253416655506737047883129732237052013371131339295965100775802753024062621868621622383320564474865415675603093763907810156979037193451968950394635832737723798904307222776104891327815408435210211469149092888262975621888223636181411882344964444456598443287945852351343461613650606082391839899292193215837430177539607599510681989082568504263819069726332552437929068410997665170084047929462985068747209645224605593128702987641931733707967020688530531499824259058191781868245902353185406655843924012111837703417355697381307747742469336856272940448701662330172974513928091605262584497009295691014589583950238221493874464215310791863931310633170958425744724702713956315074114671405219825519315957460291513913260780387255121360932169274263430725790788615700833646697822532297995799629625186846247637203024719108482250165008384204206802447720468327559486702792512217657585162446025889407063518089622937843319544971665330017002662301005413265655668328691779918943332756599395237115701166010985973911589983238659248381825685790559425591820596866614108941245484079599032221556929963361667892945239254700102895478165441121231472938275709695589714115038601434949431076720927288983686908188104051715179281406321683030265196794097569919354704273981926593764863150536671405837463628038686630156570438860450737645417596917672031333273074327197192765464895397512433460472645400767271590564311240075230279275176919150514205624714352765358414531673375060815014398270413922020043462521597680172111187668702145778533916342971827037058697054893024474304019636472266811736485366876807584677202704913786389598580753608350248156583764056155122328809338115391549398334600013519532662022127021879383817127404653403112676973140905634002066868360453023474060102805578295076888562900911249834826258642746343853252921415893359912135403279212513071093040891148143335145881175101070418771070637544324932408675484857118777010543873476577389085095842534651036573912644974265900360406518460863878270031666907766971214613500937227165173947331916252456690032813072322857727702054300776200965776129895932633031608246270285659355604208372318028089142536427276757800732328983241947118946603836092105532184187697588047621306947631854079114153336234098760941739280750618706422921074956494539584129483873897860487496240866262934175376102391314269428793796862475194159372389274498412896763021064632230434826610419934093807472998035002349531473416905897728016632997642305415646604420909018089264655698108995290603558882419954958782528742928878717177584391071982286984945664490761961727855994399028667678567768178494478708699740651299086443608041859679267737593255220685680168901582734444817731633298047799393562976461426153766020631334375321339295711759418857973704771058018868311839096542623466090689246377938992915115760668815987084836322734167848136838803360459295825348829424177204501735346760685339243469683215736385031593935741296316606547260776108011440809567999625244310445666690863897488437076753249449857188346519410754983682670021366789360057967484320888560989601961770133277220003331803378027555725576981392968414975950301934252877420608773938376957312966565583721181686279032660733940086717931154812841295080571546294176912636095052148353197205331483732761633624930173503954345261626636675642148489836273161666681624632166451464935408677236929319469933389563561543576523986024489063794615102923470284322761106206302949225540718057827819752750044425006288931615298859766239444333096078627215130828205141016844199919030740130810632626953539642168603335630469703065189865673995071418599930714623705194014648989703383807829075628996930321948577561909958807098071889771979094684470605229940434648178637897442733051572212690359393274748939891096447375130320650719939652784345994575405929844133660027630144778030025565220052453577267090931819509466357323995550105091384993442244955134801565800650058749237178660280156505325673658024957180357996314810354932094780849321512335485710339355596083759770806747611376313670276127970056699160997367839317795575333969592384808356191385713256311409721638968016871258058916157852565983870447096628389911579527780335997852994885228648486506468472324698828770678523128591809776612873913041878450089666878553359888942963102273718316934879193958133139724524317117015573413294752232766610172903713547550004820976198936074013859658171129107458771078285155945325418286773604782286235027876124463350915383213040879519289943783169767204440415053783380423640924074917624614493101473214820349905174626083993010349775335511150766192607387906629120892953943364444602356843326604708503859851036865837466742985520085774430307293867537839994505369912078899480886070202716420286364664945301613412112791270589385793243684513892254309177827876389565567931123546222458569130691906771955796282375650445098705054204493601015161607689882775103791483076566835898143086941163562651374023533916479786290017248476453249135308116587800806243990051014093800116498278729903321751129775284406344644481081801389721058473612178925293071598024467825763000750901381619193295421111020529488809917432714148631965842306634247454363292656722539154480673064933807772630039644186908760609397576202263219014995007035549288399496635728586915974642411438869161046294922661810015008669124523743734205786498391507260269745426865597001812089850105211991835089689753667281314246647952433973709732791509892615159862434117120444734395561128916087341992831413086176651924165379676840829821573327897671076951920863285375274351595572330955206624706473806510568199356855799682544169113610176662791638687589286763022207485463504350723050682322648062757195303300549678647484205440456370697162577569816862863538700227659432125304750819466569129524169482551758471754839596597437806531523695429025390868496090345234989712464155778616705243304222580308951938641051424138134608763804299743533816856462176882507428628027949625113553802128136421262891211469305930239340185435660531218486120217586746317684173930256915614128286022429863668306961570441696633122856353953308826112143426106681991559626468669122963188896617876098811655170585026207065870458594559402073227826861671318715562471709505898496902326133211757790110643659102007627966757540474893221159157474177800080547833374394704418841935068540811985565736784273222222460724466717065973724167383093831727675002352284813889930810581361639029957941590074374916659145343525612525074178546247395404073637909448678866875812981084251825247918446509661638152197420892896887948858683082047337355316394292904656314597866253165007314773557319414624564513479960348874193937161653556047180653261404096720117300332043544116327420417037730884764489593133181659830117349570354504927288561222550341651988413721620683253999699760842301753887381656411414825736693640860497095994850461943274779164608449978444649945161376143579708786354852330989891485615001635779868440465944790994951730775184293111887861755188669506417629639144653689685086760578328732990900506191042724839553299569091684263302697261228329395711028377703319966135104648077510039997444432506603996544113280368293950820952701871343279125171971116438330921379251159083315165658285622987777629693512576678725524698446474021183794329790319343627262189168086745209926225776304242548396051507675197220203808353873170323636233393582393581545166022519753100085333797465301471575242561771783639389912883626073126575836469690941700235179813442178069129624546307840125640292492518178758945734266198315561581014241517511243885195504850486582360964927348261423497870966436629279056567445150702091636440636567967940705310933416264729982939670719793016968959592003584112858400246984323014737384977738679264814138629516348979294575176020633679104838736199437124912904267517003400366657943383635949215771988203834514348806652822742922710835789708973488387294084999313986536407887022718046310822711568801684726690413837786521010463975627102328442551858395298706263691722834885801718641633646118648235827371140854545725552245764468549884642461624377117014846346216512816938471911447388671180495236495051869505051476247967759582185450826015485176443731979623853867906912480265270418079918161459589313310386960898422175193305859767654142653261276327708768146971368942398350138723589768135824250508864759179394959882721974361610219510785418341766031354172665019613782553436723165014768514867794262767786980959771565722962136335395761514513957724397100321482875698246431565331920309086984895717465775770854160298438843360691753655820704060208528031808946250747638777905563124900477355684126277943869442330910773027695748269592678414977867604979049065490627884134456658008396211698787012835407221538042685258073761627293833460520927357534083486252711028408484213923681415755625151537501119542750179665024592242429334955337727568144826136247539818714023995963529714791906437824063669829156002601238137147148679240388133950813271053887947074110575990615189694227722981480337006545561348507058357214080824509517122445943447980535323004961035941835020284131583825440495308401828940170556334978521179262901134575718043414867525048858513771605255020503081282678432725902114078600838393348895260155291579086423952891635519387610565614689925783733690009350525017067654780702264050702720108103477203048690360639414457752739422789903075982638325967462557282595433430720839029862757180316649598789175899773420410776120102835057336224853247076162610921691880613012344376299273854703865858963546516728120812358926228521181112169795809284784430824431478863308508093748742586201909879771061955590552541290077197313871598699150174480224210666529363452090865972487180088492790368984209938721713407067580573117959527477058977423762046842550915849294285347373338190968684418293645067788226770053992621311892892815440229446050157587919540300372521479220475533459652063520049051045438608727564554898851613056957786006821297752786666886521650651506564969909430812303093088172265926044909975971881891550640220721183480014275341141423415567024038025825429187004388756262477055209133254168755979894500977781412794224919221813382929370103729315644157196495014529241638236857886732645538200063829504198963337770847993699017450106817466997239137484876097595102277793088827986838265968224766156588026194085843105503721104313480573612826036075675973641947977276269950678589652019220032682086278789884911013309823666404360515133006768395260481829877366054645655419499371620107807796187723751035368696088891007282406832496167490441832317659338420198093277735745486761789861583926280294559960999849145260034779487421593287470618588311426015480051366207318607181111014389631521114015866111438538779588743052692024834330163220344812988579076841266540091673331887266207225537844723669026670998420023365276430319942222420369108800066342442632519702145127454262443735837393935712480072128740595239829438104848210598231490323662438021635284160673972116660334734413967865443300301891444443263104245867071212275977074857082804469438010021103297881011179899278868880090607888218019199235781434617098383357182505934980198592565974829729091887177727477250282021795977102811706872432184627121809504205037475538115425135472639559297589125581129918620201729114748529132210777098967790687832820413244859940533601661389328153503670704383924656893356868537143830187596303354942804229632691592820121182682143036963987156012838094645251328383414992775748527396155146043727811412672725458517528459389848191632205788742403667475904463282451780666728795148117162176317397397769972110314139119116013233695107294355488471201811339857346511683170116487094689227996772660914134811780682729742688483919476930922588548944287043913093594198266264203309852634850589560284148058049535269038782347651615433159332536457842710775361765332350002591908448474506862859962057966821811478251940836700692674510959601010743816248495001510635390893577261437228822433344017095089914282514857188378457078460738731155628311833729528218666294889569685155263996853037004857615088643785958579485677443215117034260664526322640816660902867560117825549576967471457849625353833365502893236880214324112738225976874492820044208360006832763627052719606729839238558254727382348542459573225675439639043553788948567566526392705755462149152570345112595447777335103263663458595869051753872012157074013036621598861828970329552034459458218738846796237955877467268899321989222348967393569550935698046250429969061002734241103738802701895258115473961908521333130064819504370566730763061017764660467962199981152272961804112593332873415581916412486349976527598652331415909920554564256732027692284705910903652859487870202037804349856209188305764266875249847171448574834693617161927372218964738636628315425811725016761823588559638748230427907709818440207798260304430110688194148389118208020290182689733454879972381818515541160740357934062460304868145439832599840379844518848890354696925062954379324459508439689666754429993426693600709062512267757665184965620025109268904534888351652076727266293939524711066653057520063087306119806336805515382045962667325979880865950479371673363187267199632868300434457714629692117052173267049863160457096221302805764576554317881628126555599288891151309643998814101979783620613246951734490004147594209484675103066914378541547410435124265830687904071531858909785085178709980601721785200160407574633138435285768324170833385478025723623344840004245745631166139529603940200504541386884690321851835127507350490198054254666330196571038342981540799016582116084891905574479878446562358707118055596384808106496044996802896376536364879656457901574318555987902000937332680315203636514215429682867484567885165370355530771018666809895938966203581003512281252888102615996181015865636235049987046058316044696431555351509100964742231983024018139335542145392560889459390150378910425991547359433801017608035913617015302598321415771239731748219034864346497404870530025656838613078184002479367379176252255713723863880141078222979371121890028544037555850342184538586599651420300035469736698776547150177407165973268099857371838260622571200775757027276501385590515310893420442563081548253975731720041689573537428074805323297626734810806261180889884662548274218161546994145393246869119253335961287850816629347682417665694104998259117975247722927314394768733856997484858412491382153366694167008232346615238654099145827216255242031595616658330142027075895383178546765144328152874488981033213632056720975268102118099582162832436540650355673120693833247198404294843352261002793620622641574045329997320921288659442222409933783355662249851178546127494979503621501168884755277684794775544629434309664498697456259340125093175646968354956278748313387314539636493382983601210599184277716926150226603810891078488720788730785872169944854348565308254408915615410410687375538158410989311882137221083990245383969470041986732331051092434808330493251216990435921266823393247629847543733069294267963996338749040416515099498552465790284282946100570209017989929140599034250674122474078339203121038072582988354116775348085424773745770079693702191929827378721549121575267731243871222693620554495083944320536453171828921522113731495897314180514741074826380310358165485699477453060556420290960610418364921862191069212006159133543330630307236454472008673262028863114819333659391958776198271789574926937547489320778308864124005769033570616762234886215429419120777154451869859695897586338677496696158974982960013578400110937059326737383023664622259060562887607403357485158574423370326618455190401533555095631147401808002072675303656898218982151376836321094724602757469435663291231569364492182860678925903611651424569469150290634707174219065303049381009139119029677339177542424780325508290977874643824655443197725003407612005644725764036141083796880333922042413390886451035484070514795725714820974414655549359442224297401693476116051593755130747305405550196715997151642039938672431655324171892444816922229404410781706273911976898003900605236094295627548323575083466747498643225082289313955722134855606833845910587107564628702059126015062981164563327377655212475122263264279541750280622636697980890280227438135496874035468763460988314237666732133444945638647364263810880848037917148057212119676270233879968831902075135127385107451726397158946452574650386405745589739088790394073633140130197143696685123057001002665368092019301199015625244827411733189713144882546978652622811597983481596893606145430553867457363355625204039740482544554755466064802235134380650666391949840051736960577924202105596577469309550971999923634183637390563247202251541353529111141048695229828293492718709565120964998319137315841042437711569241180800246119223518261969596639232528452715256920009058781299744924037679166632741327134898928045527131950680540790323089079960850420626272742573150928853207627598468154854329025585570657520830135270181728983372135974788421569997379491836290164720060033684173795453580301738380135925519949269376810486827301211565557415488235716593918045116256639356123409120382962846975434858097191002031170992197774815017036436224689102120026361551525676509492428764136892086220477517066964948413476546961025577471030267149818945512128688867778767724215659107885695004873887523902347924409633534294275962712347490339203168170938106780787394335977264167876002868243866870722802108080267226337485987329817214349018886841287951655296277179696277159551147984117405149872208557877535397548204149456247840279766150289005362140601252036970605396360179865448140814055230141711262611964324159797506208989693372338301660896772802557210375686733350139822684264964854194121529445758257285977608909522472989839934085334787784151866322167822646624868777323283935496343436438058623172099997679495251297750423862536262462695812118152812332997282237330525290622399603299504531671834294700506498338857639334022471336675653545324243172914275096119356811626851352270727422983989180147304332783108752058607078787645217556657005763903655110725293824569728755465346820417354815055054549070896788048592133324144651244655840988552606999553881677581912182325312694125097377651292750654625630901046565969736372335028314647586147670694680512557450537371260072582032925482265213675994697653135831452079309357428422568396201832585443548702506898570292454465089418659045196045961985168067485299109613884377670037287412410712430519713255040551612207227816814027548397086870064490743809517310460727881844446250267371109974776672652270592980396849092959110528085100398354408316410481462534647032508522107258294913942030580429759264043267095199044010736868633047382516584447907856041505285257153626133822687432040441175303543281009585495743299902374588359141715312593229933621815909090798371162827332928845665201103464184207927876950431243388481148421571322576590507366187547055395327907116361239762189059580562882705756220761086870283151108476862103441190600516362261659922426879604940609309118617175938872146985573191387561103552830455295339894757707147923754656017563761043131060049011993130629336294094148863485427547565217225382427017595297181272659504198670468113021843702222468633245183338281059492277742213314162497031238555077597467102078480808953639302254931305930127671008096504521212613457247689473090324709434409081557946190460456893690951223907132790011675475738473088722866807112953486344876757504765841194870032680120495482871881917689436933499512171558657325593157466950395076173498265333329441966289644814579083810199289620485217678817109937055923840672731985606933321333080374054282337547498372249444886249650162482683505788756894911992923486094194348676845698365571273211632782218263169735167956343198502956327629068521374991770358323498072065923508143388637572262583893055728303824807094077988619350316664773604919462798603545429715107263436901910367077739099103199600810523782621666244927584883325296750224872129429268284545245879304866014326254201846219539837086857278172321535191498347502886175524364395589704198613920349114530733696887988010026129412875041225737427831861964843980618601163563308555052188045842571779161315235858046192070985092386478673877382606475921828597876277347901110041459864362831238242642102669071311552582698931093944017056722868466129191525437458993415973823738051423622449173368125412031131858925423897837384753054258183516031589531114259131852662531959495531073588889212541039925943312172673635222433555198928591547328089413568829927295009473387849895193166869561260180939863037436301801777589607117606542281186348354004575682465447958424288012748926538278688196808400524878564150977470148824760266575031932407189546290068764537965903934430261435820108533841920381593342203029658649331271556393845074346475544933474743460578903119477933469326024930215780002561485730346913529995791675081101185800852804982662568850169235420424425253139860847837217061702984411122365270167966377208578353106391383040137282276331539903058739030153122744206594931771428260165648296330587167698851060082414671086015254473480490055810178232161533481754247648526969095905334367360218001463624010029663672512983554119359778589971861621974034650795953713731057716725687609151980750215948980045452116511542327143273688642128428213245841814923503137362591299391556765609085446130796084315326722849672350670080951357530712902972350012508572352420552314762699176584583816618203680425947123358723036435976234091784459888321600041234804870657996329475930985665514640987643773877229353504433547975659645229069153910193741242500645644597400930540883011420382626204549064296921258984081036872719027881293656034101978974164887099505017877968007986196994974141723858141670833280776304547585994665369624570379307912492335774675014753759653310860270257018745832058400285968682382189052210061672855028292815588824583196360754667207560340222532333854616211892343927661475543372040184525225099183589341757253747023063807239548546572561345401789451098797464314521204058338249224973093989504076209107930959003338717957050846027055827647239678319564986688571769914057621173918501890480745666564712781999472393018576573768084477539779058101104105029250045974851568933364244477346731931750255445564100236695149259748117070084820263079262235315244282587025519266946805352564458314773722940411999572643801955256286732751647302652109490434358175750006620915436617183631912568018564171502806698710154374511433986505650222773750171731498021752896765774865414046725770580946551878329703074867027426756737799222936601567388418460351734205044527202927260453605537748181716950644162879151706462853065951525304238433278022433184854789905824179061388929194303529559052513055574122223768357913767977878875009824557170575016369387311528972741897743847207629687590900184645314685552914353616287819938425900256105955880653250855082828221761895528425122789887171662633775516223566563707912828598197064664120749385635906789322509136923616107891006780650822091869966540245190740543858751379588199368146829172803073843299624146437699676976238015619553301666580589213166249958022702574659333344644050193494749866973510719566005202414465772889873370900337474471130355354783443147940139496150039582124667953786157967387908683217106263450689186414839446726931104440560561332111903852506526317853788057988533967089792033219703760118429530223996689320976392524244380509234306483503134058870139002970436016871171765485898631131740003696753393524046678793169534765308064049878041347414258443057837907426757908005548207001708182873920058291347055350180128860327701768823818673865702932051491533591518526279203277680511651921661133734710874673386719582406327796179390107950407701276197413075178017892102041395508148099953627329442696347119503752177770250601507616401714742882737181166823474006826858120773750168426975620983473114467905657880076685410391232644615941780484924614734030508682063341083863306258440605866492515187031394846305820933509530492453875153434125469567138087135848135501109135754678335378007812434860498143271748212494515234540608848369430316345874883630981812666384581581372294724665566987687332316985589608568378239987314559440805896406847629611830812291015789474936749465435190410368704918289129642649539055127584328989087918944048931660588048763076720487952316709850781723041336494224178822682966576519273010184372401689936748078407545077761454453541238518035065375498756583688874557139459614427523069291602578651979843164348584723207317761194179744241709785243958781840089585565833844664707785056236606859607888986342759397121166935397521326010514935564516129619556581462893826618399213729938162691252885339686445741957133638296847032772439279193622264036754428422707303052154570186467447735953332343304545440252040639860712377168066037235752002474410237578521921345046286016197346163584010140549397935032142326538624550023362067365941329667088344759957787906311483573187281429931984606169591237986266934362519053495064873490680817087936414347282974982880917421004288372059800964286495753060320878686953143610891796934347134820900630552575922394838040816849855090748829929191143078066513759613837712874491421654941367876994409522818405160557648479260008505725853395708144582604163815459122841856313835691274647268759327431933369847372353082276024755703130241269818229347747327446171899168203725005333103188284801998942499505728840638735318779524927390433008723952073313272426323603846522686393068597362236231853373412557695529634163728607066888312598545964652121517423443208564547570445655757765048044956847833137652791471490655349244850570256610063764363567413688096155567001049844694089030957832643173388681863346829394468906951815043703617461523350254019709762941555194157053683586342819902674858796897985556892344665095011850678341371592880033706766641436591537983695997541217074150669284133643326786809816330717602506059826606572843511120949089768032360033379307713686862345753975001897721318772972814524276585560145899619449142637944396248682738323325307604695681290622224754602455593297116536956366920781978943949563073699044390095753482736419054001176108228680837748700944986433515331778466288828139415319369830373580575682229452669988669540920294950664634838199638271397079470320791965032800956228012799465434196341338353153468466897383829087917907751319037447928018642894357506103631911422364091597694391218362033545084400146153765046339864572056045650071642311504716695224583023316465608076222419581168785570065743761930399296379205991346920540164508647613668196143571804926317208401138805415985728508764018803542573579469037953525465441618702566180120984447581510408110873406198912093584060252782450184577343285565235598768477682554237373791806694436550322479214934135024615932026910308799496191886452984943865192432261905348860142961687239032528360150144886183436908931856390696913446699428306884288369313528259478675915335481093859459650606693893312312146147520843557783157338604115622592682691709873009081343241197091761893352642874912587919972010891618520885707619788288926669167093501187225634602952839966780107474942619584049518328895157017564803716909537051278142559513398630814282049741438924380293564998924278876213787349155979132902282483589181629362215645463994733720278509137333228704181884009636237338715362687571397375288144357749264884691530089480779186735891821125124295348115025149360312124623812502977835427554071889855846871626919473693867887543097097520308660941026862603799588574249314737702656515901958620052655923946221278732756473759459087371570387652278041543089653404382717757480786361414174258520755475347333156007816137700405884688805963800951062660298006313559363827285957389452693894492927452160895111185164494600331181557602665607953802706230669769176114468826116985067326880198429930623276550284271207705285474232098597345108210149815833102484156369870075587626123494028533210986393193189503083517295243192154047405892707603696903741374439436436463454725784961244085036359313075334864594062045814070445543240050000529860376565836028525936524648730349148444205248224381465470318185382883104042064068716251776507779170340321817772299016005930039293325912820740624468752648406290491977108000102128027740526538538837185519774523586614714709989060547904803592120502496596047700600088657926128818235550482702467024233861035063078699456600035793377434897886323267209915018251680217914189270128674302862555368159894571505172822484903495548567514868382366744321320520859920894819092365132839662933426056467059184186251167830426372243464335001445304279922950667252127561712400143055634655045122653310364352401068034101947064626891266109815291498458683618578629442063184552651212016899149848153270271124014220587657370257590347819605049632700363932071549102199416784875706362849108110039078317890366766354487885028256989286468872806558845134076974393012992122992109651303043945776967466131989113751686959223214057131306282381683451972114055260557887889706327244841922912078011895641080091825004868774995246679787861301458671766710076804747898494502681649247445165954543258413678598997996583834997567329914166688572492771816411567928374242502884132271680557742815108522290044292645462318381065772702599608560166818476946974923704864259619120003206586296874563391765962352088034717576598758832783353024525155485450039953214036832371532542293199332459901103193148784498516582305957476603931523076691805341794329148309495604222899489625746026202906725332735847922064994558704522803052199939572479868820592436984297209712250543383334463667774447201988297385062534279456518665672168794202965711164557042309272336032610137667897165295096870560781386483251589425321727071797373698044553176823104146730408980988902215989170934412599352132450175915646675484986549395468627290131504671673917816172668684811989254371449352318858445977231976040975060396063347576136134933938690066417940688839314019117574653689941497871853502979189267254550465236022787599557916943906754385826607790542307046228844388892930813356388988344081252148347910978710970426629706895460149900714781829141295564896599372113024174533623593778704434182110745996080391514258458304228838642935532911835008207587504795388656012002987750389199292826267690236840903451502466888487483019289791647420804104673771862632941638976785864871122447169174774227832134419662648286872827759229744118432276222126055952107620923860833539903020123577636596444215051369502009650201224670433794986896847853748187273169237701778373883677109266376789150820976530512443548702120157411070232238734466398373155658206874192039103095293981731002196271771252149523022470700574934802680623061856905059952576384998827584239099088141228854238526951534693741241995444485828283435497324493418042777191661720733825332128279315802621067865879099270588576080769766486630017003858310496283557173808323614134362729623920803499806166221532950973558180559089031150959474932575654562285588188860420299426641393558425154334912156884402647362101707943357282216053658321339271958045647066524059835600678321600008587408885659519205417226829138130527943694496411562468726183269039782749558801101598891732702169733290427781874702925213162823457841296440186532829782351818640402516726336761336580416445858126538823529073812308013956959713394825830786604294972498703755188688895216825813053044744541520960123182534111919055319652114831434402644220297103125630131163043149918835569374211545675983148825357456884052942040893725530514754745855148930753155468952086666047928204617761744961647833230773861412224143625512652712295005018534918588308585825205749175506675630964049151637263420734657624016374644687592873234081629856753372769067772386723941743423132612884327491962589815913193824033116295361640985799275869416105526344780777965664682937221469347938300100624900637811704911687552863607649552329653117578278409937004695325147085366436603981116969798502103692717539674513014443694150787199603690343191206080236551208624841233843870097666979119195777810229237396062529182277113683743491225132686454571594619957476109661779228988487956179492405690179626488144212348581095821215683826355522748980949025369035603177240774741331264453092867348398574539760350695706499369390156723581816778506569554960695078967936927354775254385104132895159598107708941028172465252984284351763306032589087900141633167904629871390223077378759616830513481489373860393793834694895237420989711408461487715208212870767535389128570107228363892089854471786004563386288702967927710662371532896801122694974567191280188491943260761900002236185664735946276682272476199645935898410262105792539669182945106879149005132061513558506393598805394707195174757531185638047432828277380954891742715513074606644324418303233552445860849169498872022713523711472661636668053135470529088038713986133243078046518895337237753470278921553712618289346674252200735154697362046757545834259643618041666252980837529876502840690432161155119964905805489511859524516780108925315329908535324858805233817011380218728651170649987709933960262067044054979558264720699267823838906876030471858280408969128364789092528216957306780080343914354784500349558858720696063304248339033238432685606892928768927097491075874983526502073198263198538576812643785472877866021338765735368985430382120790792554545399148534843305424328025423637609316776405266606445322150689372218563745339673538372584927850293362100243074411621765525537979051696494670241740276664397190502064091501705023315211938168776637740731704488094321101758244561804324519786582846737336581573733662011924565458993532277835265818904354350764051800447434655933819366293362560644005992815887696614893552542054418556422690120623650716818333151316930113906714681877642970165324032810486249879836983156824849257796000869895207195293194025513612038807960864817321361009129847278070328972157992273348381315987708121318347673004882153010911455677101596891432387574919314623772534434078935570528840047402951937620609299048670748018280503928448302465777216208544040662751830321697238622973374394141001155330855831892121950838664228782968859161556344781357185961099156017779334993573771575868859492091833858615019077966506486662798021546979528048865318166702044414422995285028879327193964439290158426654397626615012970424581704660036970252420355407070338892829357585409998703828735915934255439858751932002317178776339234221951834014284929971469504437923068075659460035084391408989945463883770527917139717103808991103788365385671907322077635009979377585104344216088158634270455884815941530630837146890767183635459846135914370956206218802553352019819601218353728590925021443436488932566833023906983644147645167133403626564915786892180347598524221962193997447711797934383568933510960963183537605456214135598271776488617785428897121869036630770901255235570595845439929272340088615768951183085826450297488839619177239922997356965826181124280425299663003499835892327588582084543019069902252119021144929812311776640855656881722095614406305684749550341032394875070235219060869466945281365109005205735581222779480525224507847540913715013239934189673120447201814846408972374275606288301271971134231656550278083629936576814079500872368561022638577108194965140968887138487658017943481137479777322294075339538169365241167058765824693997512931832028216691431624748981766185653679815699498688072364975615480840929977312978315842373690363253398767303766967729570802866160534902025029419148158842149351826570436350226582601660148869522855472688903477952183463293128688171735678212532110515175024556524259863897049926117580994305381509609801362267006181118930674086225809129407652487361320786659854413931765726702010188377690031117766499202967439835837761119598838379660065875496664793205499957888539454201309918832985410609375773583204204736257368535762109396652042880568215702046057093417821129979881391941062719475480027325991807390361238067358107003768115912035306166089636364807923917844328751793764874652456316389796288792250487652931536156206720834892577742022952037966089147685350861538580358508780903224803374285084837938910255597128010703373262102803080572067688125972105503930511742064607943113845978478692861678358572283839706091233488341102908523206262001323812375807383627535225287145990752327331376832436989782436902340372156205066524209996262564500614393423482586430906560804638969706040172507032524183420721329065469784157654278686610872603006882896266916985648132605848415063499139470024463573357614592449783780202736660631407880385913327344283772049313604747606987724226729891775559656995706441996830863278607671866318470347880319351032056597437033306868232758053299329914961473322325563945332065586890886054051709488090960273600337853049039237990858110488206375761983307073556208484410101739102572442408365011423505669667620823291442437499306504764063840364362696154504602045102035101861888227965774761848445696088717989351627686076871202588071862115605850835066688386900033875890614251627852342118186757743269698118752502708099491290771710154027019123352415941688963649175427417935778420608074386244986467453310610705139096556064478858630735165633451424262766927865813782789145243596664104470660102349771265265318138743799012495174413472715567886079984617084500219532553445733754988583095637213147755739564686984145159085027904696047476179549276019988973604874236110937862687742543792390641965406048496374799574807125888999598565838555011008571852383331684530198099498675919279056627192176564031794993403088785798937548163659903329874655390383390320920917618645609348348873415771048565088815176884127893458782107351109319413896584391827636746583919811560683161440776017983152903992811738971847088716159413456129969661114433295698529229266797583713541127789095484956073601098378685113268368627764525725407975510091171459219768726780428427365355076468864951069623284209351520628612677261450010759472261509710311374560297862721548954215154493722229235803538209583288306945748545676199075797740432225333460475651976040872263250881434953048582364084718330941412964111410553789540079729363299193415763232353765168752670220195789119307474406603429501512637186300150679138976369702642252946827562302515729081876847617477254065057552349778480268731964467598568725507837299517778833383401231505956321753555371723595797018277246689396642919180808634922906139916780975642784898608235566515765475929917054855964147017064387097711080247452804855126187859149764825248387859835071263525344832611157643149980304022242952448373227165182842884355026815834708834018036179748239494778893497642113951074412904624508716669653951064737756446597963487782320125936330751317132209791710679235047050588832851580513353024371763409375911535561286574851630579848963581478085415145286082279077652510311349102940535460715116297961602667824053646983056010888329370122115520408787569896949129212273213551664706309376283832282227838601589163910540183658029502217139449371606273308814734727326434740655618736535029390228116167828582425406546965465428431168301362870348393793880518908804910537362215092083889565075423615564973975823375662443750585073976145749035374909608196774264433305270953587681986764955472229262440328330411968151505671172026185544028341861580187386418759569107683009616831577166472041379827447565038823428386159251584902824622401652867527793649498970315279804780840649522296169967547299102390972935481694858647416573333220585039963211811462953196904737366112137324979035124655612225828646949909433003788993885873528119413700713251263983703179048364355785701347550908484722130926379419599801867741490415231695324518484452351023493763677841267438332794566924178434724524326932785880632718220645064888296116682000960872306201659179505526619878648663740728506747046755665564789340811929525226147146437114731983448952607884123998007479918426695577283341553566569114857697296563594447625356148272633709906237959752154291366456587944479904317863296759485624214553498827131005375868943347268248909608151873732799329888552944877956255694258336496234860066536750316630150728025125370820608024599160962900994057467709594459239205714577182217234058613984673654547134470143618428905811379653469619675547293714366740666986507311026778409286844613028440029903059349627979373946552293147094557977536587517711253821418687903098642627628532332693840100517930193872220197362580153084164434498623901594728566433661054475801182444106408662102139394200162994149901618183327574267184632268870737506331146145010167835284849333037002149488059276495845991421613154060859401070646491761253997013520916569850348651404172184285041653728625760725563782824609200516015298691708076221120413424382214141764793273673207740486576222536820936070575428477730350694492717724606769521689102367696140351461426476426276403783323380537832840579726320103042454715990575804276096821294924747317213603551594940752279038955098490549672443342332491458471425489116425740220641043018735377058207552250893322188678750451732344134296536479076290431103877575347947794245640603816412399311931506828126679496234503842460787290850436331957861183373020387821861052379413797132213950519194894287716958164536524519689863079958529401028051089532847758948650231513517931578554592671621207046603785220426970359787977064236460582495434898828705442290405911824917759282739815436804706526401817788956640098928856167570373674382819698810861745541969729765019626200309165561963130016579255399903618944338265428568071813162866930906020511934269323853459555533244659311989019607400302157589579605416225417809373746450138140897762535556774673677858633389521757835579902932705436553352494938606394926910053876507044768848371496762543211328487898462127575610864725188488145393036734978617894122547203698031269146604581328053309250569416763091154057877972164364646780004938435406472072207780133289136327033976001847399112524646787166802252456473651156469470471757465292254500984497933153993252944579850149450102260556062326391904510009316870711838902689185420211342473440076696624082806331224172969238206598745304653834582214026380282332659019313780207966523385537075339109822464006810027050107762510241457341429747255346477080970926478889973802362113197527870552573530486943688430383233663927681977975740378673400465003429468651794284402564804430335185425422897030190499054614345699132347020441562301822552734560437183331079338442979998117606085512340077129990470254572902428985267938729498574980466985814791907137667540518835574198402776133227767312701577219971456851242732198565804559386905812159576783232452195805674063863621944903158269792024270839835065539618116495405028607505944028417893937108321162974796535619864217618202474932572682110996552791754001141493248173162877601599801864573672795277715380739478529187207266175783323052516536831099356030152586691614444608195800592299733501143596046336143404446969301196522383572036187123327319673639453246901288135581115691804348195172157920460166339002393433428557440682349495473426444823422641463840865946021350679497237822295094457649877636019726081480729067246840450158877048060133978372193070565586583384405077419214241666236582830173470744836850205294951441472984706527883591209594198945515991044301423551613218112137943039051507018526241284594052849908998534090403867502328709822326858743253185655254620799674595861741083347276806916532794943409296191794487480127810747645457972119571972653275715755871188218126060021879593850320248876049605327201672179595970309594481982262520688873219685689862836021369676386664011026850582634039297907165467272077583185774957593256729628845425840016411168099586853203248307438745344863588469504316820239278057261422935057535815548974788515631264807900713840736954514511779649553861956943392425909173161649132157231031985969861839202041639225469653134320158018815136528970484135692424717076468795579759598693903491320538374278760383931187633720838841736731416372988618116492177267298340576503985102359383651770924863828816884218329576008188567806468658265060572258652447014140255061467045303525706955157287102676925416549450101572316502878145093837043089003406515565476468277677737824901841284197441877612709608731391308061332768840802691529731607578215007729265967422538504881317390705770604574373017310418465914368585018157146010696574263859162404648929582462793075476826977438363401981344639327881102283933198756611779547523696474868287062903661257811901774892773025248289252649664094061324445716493584197755821107672517604192674690599600907610065185579893876013958705171022351077580467974901538424484902689218538515409405741269479505970205399321331055863713923787088241150521308874380585425733377917505454495714145294078816979292168529216886300307660789621478759504308057251555123872923555334999841273435018413226088857964066801435585248965675560428337674026893853884763982279388611034477029222343150652962617016700122540386791677010394061629160982705388950801145812047042036460001914241785992823437637800649480558516859903860574836575329781368282892633124225403707925260822631031660701839794831288729830023899414936153110589356804605314903479145441945446976504551489194163593849462427100400474592487792965419183322028363294113193917951782851581675885446411878022459437961391740043832649757505175050409965237058477128767943843881364064506151067004659779300569469467138754003700147539414304704914613016256709899967131191434953424068807363416150547659023478412417685812712414210451421673326735071679228724973286554818590487603165920483359638258976704449017796557013666869957736459243498488693393149467832303179614043076086031333325227760759359839881188485802854982141466028650319336861098936166996854718171701242895140249681607800609134390417297918432301454177990274460785056064781362571224495289740813309850716060665294710438424503916686669945301755157752271051600393519166687971779101229466857780006740480534281611039166591537035719972301488056126259056933097497595898030595815826675011054976101352347368168698901206528365144613387577648607038494570449708886072896429478934673154203587323458852970988145640621554353304100466644073850993430700687788294732533873673943769616973936992207860786787700478959640598550958943360727033560524321491324071272882012967774008360789402102336795319499227554435316804468003970400021695558098534902812584164825942751574104793257836057878849719932433959553770009929851141089908822974698336048768154118724603002180166738589097559793355041304889550442455951860436975479037822782979247751442054405733720333246229567217973208886246060667264659183000116587468038444589509684324277127818600122344225146617013777671543628972608800083097924331353251517483371326885879423769457947115522482576831540220120721281785547884099945673380603177177382537363199770531023560418768487297904726508088170164404748084713233452759124310970299287442058121955174687208061042225424492437285212680875873285582163658619246892714932704228698724933230200131090506946838275479305820634068077254351164072201974740950117681976383045643640027443382536883476186443368340613863347662243744331527675212553307585517458137527941899880100296296840569107205089071060758915606515836023691567196778994825883377772586293101265815808262272832602730563705391391292313934447721771859021120678535102795586701928416287482570373677451349994889156083825999460764034915353835975993445576512783802034407359728709808838313852796098128030245624114928093247184029433119996000349366298021919985789828995047349695877092038648797289416015134797729259701668101785157675752413313896013408250360000938156754363486511939853332488522403025474643634894754515020427883073173915026350363004379220018133039723652574026337935019301014060651665420069129612042524907862257406658667147700218980556558160184264121117444813877019459080806105050499713362412987242623131895171593440182044350821374233739230959732036432636941230755723171846015700694970657248504783084784049061613839677876624734729525930510529249236657380544209568893710469130266242093764667803299685090814816656878906920622568814202610666311333252923976198409880519628564294929056637868914318767695805257164736114934231159686324590730448154717265527620062746866489531749579638361890363499487303529607492430667479347539842980312623928901815421480675192319989231410314856009573856050209871579529930766657562602911578109791264683693115281378084464869720430607232206683037669498800492502303400396816701560048468996423628261072128302815588154646901912088214109128798902749236159517101604898366646810824394122203685783210529907588155948083140823370165268142334630797075275013614510136167605888457530658140394620563958751323932849976572497486372531849569624439748504565942679405165440350399988410319012335674537697424395969053005793876734488552406700699001247184524052426208477916717832670822572664285973238026174876357655419657318934912765791277066530468193180641350278824564123594513578586536873353865043212735895716289732101547069128948238807739993730104790397078976156926311238735759132116870404016467835682844037738492219163763070039259045057060217004507418883273444174909340229576614819313265848451247255573938470540561262042777672052155601621928025584335187629299270474104153974302869924541720073916853524562633437975815135254972493412668119302672523331581829064382499938601602598069509028131559191121769098771456487461846305902780150803506345897644232352557138990471756126648630959195548427066716187474423884508440231521160499424400180897471133992508807296972211297945820033494366497550954218439786683902126001062679599273481002670167349314236292430091022706015703370364010746013322682073415521164066715854794920828529225226829174601020562677122881354131455668400043059267103212013993244757750145078442039191443794404133106667454107117410390339958073923102100204596365910042732518925872795784458936240179165623870952760256410758254871054574355939259514771070639946913788267411994281585041411450605035606231393429713227214258166763499010917876633355999504288035836684079204483843482661883973089656853595329890677208529642412145299062597354206675547662814443017611758328812951245240919049880048438310850230952876663638483815006524169820024347479705159330284676693522532781408179126754652682846208270779765607726712659922242893405591856937104702870831482707032500971768306536891131647247672550694687880517444460867542346092493893410791199979339463883131038116119510760284505937649851436320706474082011221632125467596199127063632375067862824031723963388218395819559900978577646144967293914085427556244811159932223061161078354942861368013389519749151010944527841828203254462718056394348545293940169158166145567918617290248934458206906523503110267924199128621247324663070559337594720872340967581617336969968490756627349851682305647131462505712229074240309391474429767186698088091748050549240612545920682804593044887528020904863849367835025517602134673398582734220897776998484448179593120911838222082831567369562775570385269055396745764149198479218482492348055428974968778843189648226829693840993364158220595941629723197133536222906019890478519736201137696063802685159772880655607726502497990492102376806179392936004547982860335303869621378076166883803131491645613912763045923767103842212769928373766521793652487646672146120882499261342634929705127042994655244147325548904206415405653335672367737265115958638747170007208735534673792972198992963174710212828599605342327741250623060120724094774819741423184573792032017887971579992472964616688054500397839709385815445762405960894922999637260243632008567576193785643019802898988778856743475721004331993029579629447771143990999339777179282912653104623862744430902461450693171210907893128947888390170147231443997558198875339964358777381107680874696857911689995132675680089081377414154350457167774377379645867502566423816627504350156421084576502082447006390069698990555028322623213226741691643921584330749003364099935031600875303376816437587470536211899574209907201695733056307009493957956167645483666581358838755696972328996812203959680722502517347472551184621596283449520169603859042714497643615511246124341069631761413749366400291694969299007336173694074426358839575363581923502661480230098252650254159202640654440490411975869298295420268658006478911908856482006630978713714411986021500639141567602258525979073007513043683519282870789136983673189959955709955831909346477176648257347110986949725563465609132623174085040253931494978286669146965202820408152389168073626739503423708268179567667366553246278355112531283433869861497159794255482590557945863204653539646564835958836583888440015035727012537703284127459258332144496528352918796965605690880146482382344618702310561686728727777439750552164289801459205541222982657547830157310818702835637959299282099634839926555378675557075004644750143924130007539686220196741538621064686806059796044391297653325234028778045996482046203936865093047644604042699654290952719264697024472702684096310317054581110280451983499827294898616487467194098481724945269331294707710789763491666151642997014090611813560963134890078239638883692339728822148254539655725153852814861613141056009394235773733966748216847665659083102980585768754265089799198712722076728949167261785173795554227431867526301269761175647199020546149492557118753699896706911460736416181710872672080343041423760183341297674628893267890222365711429170867945948244414491501411648704892686362276476336522846583493618361549357045778883156512532059518311081009579873252416986401377076164165136187161190432886752530491892402426373429567282257679214074279251937974941792782375715247144418628340838826961397169335725717861697077886822150307842835959522564467696910846288582128842963683946910634160883107940824911275818575093889918747223356080424408045591351193960777931383167928846286683773567863071356833036668258553783192940979356799621636232466748443904247761120509816043234518091320793969635473874666611804190001857206641824368179240213600579913586754927873195280837452642636513656103057622954109048024775056774100902036201799120387311663180346062531367308055526039007164993746713175599203164706987931822470603023170662092317787230587105649409292112950257430204032465025168446954933262469409667118575872865909362174553375465143268697031482354765242537097661536938166666084355415188124833442081170027423145609091015735955292994415744290668057151027186945358169245566578608937693480978496233954382430609064900491372459672870628590924048187088293550505866440425383190473992575420085936277639250698862826159904202536688057450012908417996215361925566543622004587691186946548380178158750766782566530714823483303765487137683329166330207366164885148651380192720802317633466949532755786948790819436216893105074949694734502787074824426030104205572032466438043836826154003311864277144323916877831844672101386270422626127951100052039767428177039246419610544061782644999209769275645211339788575086092584438398833948352143817416455402971528509756435969617650279412190406113139093614321047751677324355565585621325539063511412175657680922867877524391815525031834417451329186254164444719586986262949595631455823282563283817342490551474154058553158028261975500915902557206056126152461763289405775323378750489661767837924833325885696440842894285920979229020981926236828342714459104726644577384016234828129351575608715449374250507056646834978547453238262153907084090272085654279907593001754854826660220659757404000980809178762924571333973729413178734818884839554826079056537493215712647757106209300209090795582338132950465163841361414233082980621548429135783140553872556901284885774488544459758224811412623125753403073591329948089094440334494084974031883173011756188294601443184058610962709035058978565112269850583094389620054556246392711424397242580430057742478158657804231710968159837819002954713018695152830685249532735639554794846338819404279988655160616057256908967446495534508806449710284649935919832881072697096600354406765676366006332578196493346232145505291338064182595554719109111339000991438718563837287903734069331260693503742102563794131427215586211708096839150648606417230823069835819356794138709481967722694870734149946991792730490726127685838104261841930090398787602640986393956174703304005259034457949666264284791330543771601694983716091742295942588445809153661797535483998075516676282786314970792266359083052513898183914967508287287889574662840090902719065113755902639795437518749481606736646408783294083829291248452150095266768476967686561471091230092673157060218661790084730754326659525233946242113795123127143359893423182529698854502452003393043277369773959824044799616421815516905288736300765940156698351447789389092044370172889459956065212270752333013536760905527652113050450280293098347773736651003813376180988139168247554478259216387108364280912146617157827247108679180415434898412348372714277895239145754097507447162464262459192001076752544155013941160828262291894630618976973940825353315001054315560380794157053075359877064232547735286280457901544481757606644952516187921268672490315929823850683616653957726047940094675218329481447064864905218240209917917979311669689261999264481062263449593168883082959139376020428892543146998979890478979704856781478242763095816260824001096877836234271316424349354328189341911990767897901929789264435055563944413924133386368485657779208463785396186355882938571180429294002785873001875916496307867834458596048226130868922339502794420086195624814049224034609080410418710960124151640313182277300024971783581455995928949213165591258870916581489635358404816967065365530861644723859907880672701806351652963676756371805816581372529085713052499958682403423543306729738130749718288624846066852620923885224872679685640580175907508406613357275843313909774003595106808830585271240745825250544869946129162547182702608554672100321074472735739199563600289831967078426911028814631753038998973898911884661389909468192179628033044283988506809686095922539370780374616088357410366519960867815564862433789021838724973947518095903154036043627770854213483404489283219693686904873125927743769695070853824011397069315373875583396306300574749354546274846928078588720558411776059838077316146042200949926728743881710139152361912891444410325905947508229651018398448025072989649601313982093295921702749541568582212275980915182419813255011589627812143902785160360512972492944882253564907398243141997592022626414623490082688575138324492305559046438496337220354909985064805067049785565639925456824120609055588109694959893648304626901010352297045287823435383062836516571239828910151562360471063409759980849529123643244274634116447489738208663546885856835234222326388569653825208227551237772022337285887508787322863824170138807119654457517576760582583182808584345716954310780315182105140495436688954153512341288407772238611317091933293081663194677035373516502750377559858788771633394883422800017890982831886990923317563255002789900572124462977120880628191489415731865379233382644983876207393716760905119898146483994144609234004189355855085049488119646996094499660292400297387123503191696144466984634160959108396544771716910781493950395008816463691961399802516378307130946939380212411484690845552519175768269459833464972173265942965203573873235482263267710646144097741498820256820976722701416546752587542751352584696638630817958363230537004121793713880171288733533481951210106520850678614123322600590753046640237898801941558047797451919959741486023413021217707231111600030154686985889864493526952176287174606965780761819649213213998220613881961609725365323790390739382094137155823446055944968304255091226996760517767957988836984527527982635447648545756696353330498546928153548283730051434310961520729349991613271715739072880079870086701572260291380531957911680677318159694763279020800062396319638736440081135878169594229708993448357023010078280828036321106226234411053276166018799576110001676639087155720125769562655455510750336903569279088289897646751207963434498555592707218886110794558314455345919587745884259022793869077654608148907773895954539572941593930209663306118930866150149107375922735715008278648263153579750472684248334640304097303673519132541904667077058141187752679331728545249705814659642682928254307962763493671131203762413064610722482003016816740720425991497786376916260809111259927071178729334343164187014540396528814755303810875141498902552360881932058130913900312920552975064820149896084151445115942917043143685766101305160146279219740258001130461931843794879697963976366595646922950520144966438509145770226812875857994418863765520257696987311125342974186195712014493720013487110649650363520669194192716661600119537348262875449948143467226669465700894841244252147872882815320247314741344319489982205467928931887187738588983721192599081543209959105778054433678872407287241980631536723662834021442495557068329553584742669559867980558059316033999771309623515111262428755260341356164748940018153465238488742105337934479558844406576650548986609451698127809539947216154089372129465898544172431200760137990554218067869640818897292215969057180190576701693889487898655823883065485317244055761119377601480816656733101766825005120494994998624749261121427604287027846095380779012880167162776291218465659422782742039698916892265083975063089234541332057542037622948798561383687527146206518935765494182596623747142478964267105530246210869478913809666726269341574996406543265422410255140660622997392614237585113783094941167000595413566718516926650202205889965840820909877983013685764374919721957161013429906575921671101683488855616096199899242188296485147669534326810397413149304983775438106177499195959659559302533606064445320614369113000736588497357217955710478580603399280296720190002824120892575668173409602826732155996496711580895399113475842126135437462817388225363629941461705707576728262239623331983107269283835512392875528935237947808153369440353848288199257255296313583425955984011749872389352843723186906761839641795894913120080929367458972894907971235020585846987225469529369683301319166494914236569204196750030159622896069610238483026389103996996844115861066112303567177232916837098963993775553219720915148481013447578694102635366859574732202888840483092703563096212809143764899222823268392930974431782285218023726621144405951710360274107741700435810906093609785010587661813402271877279628786500987414104321361913548974582837268829893073949263072770505199413003221950567136896005537310805766425650982233991212104178553630354751835035238742990129433067883219945109385064512282358665538107462705982191040006242887888096665989024018934604944901085065843758757800608375164066819819391914025973569812396701045533486382141338768266822178152397426065066830366788453953016088800921306091026201660040849909837410783509189832725877542319840831144252886936431851077229395964707147309447436867311306254567646797694882774988624575016547318442306043106654238915621606572229728598485812102754504360540650108099148201205365533397756382630956043985644368372460715866317360291178550231061498630428666406613279947839975739736327275215154782739195102905247470091181146451107847362512381674452684939131777667314582678499922262885456991157098057961888773869139204542978647946861186785054265695178490968968757255206970370790673613348744881827784619173663060382743187045085751959258742606161181409501515575632582179792383718169392966343158921844905602307496933160243101841523494639820431169082994198297948041449262174412360023354475767131618695665246278571931124976258725259377297917998857646100016594532069903347443378082666088505151369611502811932991873125471672253148786041217786323739847782796807673523085597085151104441350986901803296069198285103264072372184010809450214880058722845379773535272812412446874706564973596927688363282077574238375782740704887886177481377344895210937974228995339484303102992933002175271579817390913020219282346756190498180447702554797439824986416675305574154238609630976093668858035190833868840161388674584862311653378247217839941654001010087888901315088761064924185576941034263108541882448754156632394686502650556323606167410654958882806939877363619554197922408774842535830012555961201375060885731677509330730530284556216691514292044133498123006824933373775270236420440580423372844170628768792809502948417645923161590347617964211385680715925540193029892380406846052462010826197516642658264400189569551352678740181464099243386421174940074644533004915960988191143022455638767518162711099225816784300675681058058955760624633966840165707995980483771039503052970652239806191209059855014599955708198490465705412623563852628907075787649038878910689153243594568678280728129767344114437887617958748555462910981360620633204042011728457834738236255354150641974165011068311693155059985687703862853702101934904905949031640763880380678545465505779160179326478986026742825177412468667706347659696077105817099185344439895999741434954992605380697235381131908832580234305631380571937966620627747683578230255022799606904080890486372849366736045204656212839605919289407068436381813383163909575496586417228794987095551613148551701390607616111188781634587528428608360600209997028415194215515171921259632523409632213027509884633997940154485967480215499839313449740276766066620982536630924866778585466812411117277644934644045917759145560861449226179398004880102589927971105782830998305568710286695639489441381459786864380867203445068689349368992858353820374203674543161160746133742374968652077590974055626893333008415567696940078237512598949816051095863612944676557388552633398635537213957499123943182661312826369321026365656412800943028383036174969323676283304058638823993729555783337342793951436509339324298925742339094484595950588626039433080142673343518464996017968333144190893374103887092573462172715739692289602426306104271057413806171955629244660548028409686996351994924485990699735850065096563818190612245360166004983729086214527816620985388229771913875393242059757083396399483143891740781805030039452226896915503241306565930316577141748795966262406984575075287006258657032514152316130696588114447750392628139106893043065809706122485673301855242896907160071187137878449330414240267190824817209544811014123970218515103602039633233704306958995642991174757675702886192986247834827496526159493301046381083718964147471799457327986269097910769113257772292378074723591209074709084488393466995414843772190059310536492940117470718806447671140436850727991822450621106672119091391702902249244664504744143598558466518205412159923734987445971950707388249974172046851847930445911425355693490835829792956906565720898353934819907584013699790279658366588782888176941133070394029891980700889826731601774823912174537166602186745235832511610323238380300433389904067833858320547371747632226060291759308180961396182919632014798510590466851238989276689583512136766811019642998837883573147632550108599924545573002528098430442693179502659742167502003668071726989511717755349213602757240185697211364692963523021427614085635643052298292546366641016305093390414935660178935272614372644902813904282596242620320522652963129704241753002115604404911162759354518443880447738748389141937391871794179057979857978300688707922245872430526802890439151529442470742867865302241117015054607005491530309196636484696479122282537984163759924521160969144000651389293542515454015928218812956428552982331738067060780691641166173648908439520077742043824966683565617016490510974582319020482877947211054715038068574386428826733124560207177571764374925058029875889623126223589636691552559567102521687781730742258644585708785677236861331482500482747206211343537848429766209532149366834445419838154536293999394382715837467307089921829831139241864458247371827737082943061918549727883107313151186270560689581931055476886948982408616791715352571944755656087893129722268422557759130127423649992412777551387299975548723468580286494765925066774519298070123869058912738410177577876822408236213231998900683678290114226951257369450523407381761371956191071930759595410232870883807782733038484028574650743387910213409406519890578439842961613691853330831156632479215306345281141646864283021846490681094760302300837954253160478445370439806215372837080633262773211852615985883698114364735342133875271748090935173708580986392712028999918185344932886981321271737148466906569872266047176888800646313485087884376779463454675179091562322414958032906117133481042635285036071233878804009856174960269172233417503959398078506052767582789293327111151076823135185049663536696338602308092871734822531200690587485527948371554070495900767365792001037137773805643128422822886290495175054701518477208549789222611495943763157109476871780573147763006576634806994134624146363444069299950145368508134421445522617384360694855565230035409334902256505111115707809584251699228777891099571823439283653939062311648087141347478682475489317353639809788170562878380336394557928446815992625667299776368402498780229635867651225627183326847474865160237684805908311541002707716788890346246559557655454903964868834112004664647027534165322510625991164480811973737929137643315521198448622427901622678139685800072772228977301734211544564638980303679029067012525589692120040519148381691205233560184695003793298977141305360464588191639577314682157141248028765485154659651302953808288034184010807416224186440700856437344910977778066649585036108798644746990899044850847282672639560175738479835298164566644853137773532536610044524322369600444605422685750311394263044825554673250484930121599348704276001974954172086794317894378412554154750110372435509348332956470281094048781016069385196028497805248209301087173072702312683557212162966849135713267549342864975121191106393842929658059803510838402142102909157113706182749291772318022762631662734187934544609655818779853394363647524581117609512979737978416964761869143823323564738919630144736124919283768889908078093609416832440203421905772957448001889786527327711283817377319553305692081342839746350465117206404972044298157718525768976696107168697517860693304930325020615573625943611352160886853982267552017401544773880995017369865056751474481463522469811953616978902421847008913498787181935688575586469658507134294072849881158103100275867998110191951728520380936327050616772067085016530547645118820303461780855297703425438589158987163649679150859141145187942310914945401147855335756480640977716187199095192854777343660074152486385583665504192846840058704016189218887374112802827819211639489569057607565244901168560372901730272989385567889775285835460423970064662156023935481583012685590688333480092719717774105879567378125044684636991529862345295073735069807960764868466163527306647208416819187687699059944943494222084427018218363323199783240984349737054221910441921435995734362689949823876926402512990381371755064871925198325472093573781812125859112704286873204283890503570090472687004380732248112387300331166559137848435198652099518873003973684299244869172179503632344577002385524755457511719910136605984239271495186838857032022064573855303692861932204104466396262829595537699510532326200508441128061095319254331455696415229902965765861676316336649656464282245959511609752463157055291004325431465361155072864411411721474738449335081266763303821566207021909583363849466256121812334095953071804262905951739981032167294510126893385389049863129244404368404747936071030359348788668422267093911519576780017578614095399353303456387443477222017270509357000974873933504690842230471447037041448357769398596860185591918677309194194062307414167756355938394290748291748056583329370611008967780241621458323398434162328590656997839147091305660969565719647089279522064465813670603042528280160502158781120160044135989811229162180961119689120240438080461635763771139391539754106677783551695859770558706858895474246177531389414718580366034447967778660143830867081889218985032657711188754544612632098210836993025019664575456189317095868987662030054269398162931330643254937517654706343186253434404981322238136072397828495075857565866407156290186424181837182585635378937699202178481089524442173703150603670483846631464735659784232419537041682008779432599922920751375841941106243866055196769854296270099246058039875342714447842091345213402631054439709205190660099292643000363107591645037086272452128791426531825382361358310985200567501688626149366889999200797493894223453390551030577830583681945074833063400590722594906666183916394912561299297070841710631972924043467718919040941106595042649226565074918918492945855664722597584347422704600743585989345395843718770222026663083744225101758836353049566945054649033780961456950642660344311332718591480424604877956056553874116681736952447113553443179627482232183910477306872823150721857277321330386560190881168222542631548239273619692805201850158130335618228977706140001154954510363291794548075985264846717607050350334190284254473275135866492214007528165559923100831753760453747087213752770875824481103979646064441290706619103870923840739960711963528667124215815411100011860398955202295351494552110225130930989686447479080909004450798168659661763916877723514288660631538802732961429372121529040718030376122379028611862095128729479598322639181184928482580459183181408462225652645066483406691963616561209491550386422312819731080514455428129540873024811933637927916576301952447135166825001100280903596053868707748885225321282140775126376857801232258814724472508524876132925706571732202605004958172891034613229212819359647673038566274879885465527200767292440424967190826822995167982836229065284494623186200494129538758628722279608610908751620199927354240645969989826860167903918371825779944071566575111802255037003812977194167070841718139903415001288696614957441861791753661799704167401243702168235205181248750938590693038841476159453649564356658273930142788196403889627717053202219371186296955170210109815785434260417870452425278830544396245418117903620280365018323764393430948360956130956979104413566781021846500695770087016824155869861627135678674836971962521286764380776251563506202854355190932936104171275943609559942808111705017757410711740719243229524494444725853781919057868457427559234557744878280346449990116624246227443777006880018467133316752194374249746354358221223151678025313013884542445913724742745787785180487193542345838325781013292907164281411545200011442128427485676499337206774036444817129541551528228503204334977424951143864967410880265933198237111776122333088278523861393969713334190490936543237528404586326748236084197578632042399289983491211954607371821170706478063946167478058000917882779899486932858337723209076415966165690416187702143148859584102905270663799137924303584221002369058999877793956774793111982248873956973253597323907277062785672879915225298549850309432113656964668287329258479645156358807252058259023478341445364845159243108646179945851638986441094423020146667991641114824659853719623605986617410023435066580510684075447417787104846341371547256353076816583182110515427848289973941063528646741658544881586986390476994052240999335718483202980553225459866944061834439007215320822204395135895227348612146396666562392126180565461350541985526942226394445965217013472184602615406616411468182673310516428416628672065523424427895384764436571780530417372107002756181983676981212849058485461215428881746444109878873613223957546394346580096673389424131466122448540771737326059320477225773900550215207534976951381232179898826561806361920086705690259210790586616749562271729993513888248845022465066795288744467273526463259485804490065411943878618924165384412196654196140403513338360512196547579719800200511396621285012744851003462856981601440164163627919176948241888836614168374213343575267215809081225713133936691632664943823971687438180029038142531126797655531336599532418251897903448887668327188768431019819799601198587730495287717296246452561564039622274964577035634516572956186979268916831347764913437263587799473921076674369987342737050262677703770874206193336701164910501682321716441094661373011392100849123009855563761439031935750548620753504003933228216964881457876188376587057599223604707562889328133832664497486274692865054657287802573060864792615745859645067738531943552733095789540968505677087515327033094782450209137578142599057701195047164737516798097185151966082301275811386751813902115018311621490371014798256145917724973784555790558584777079634035491540086893050586821089649368717742085262358890867859338804580098048438876865517274156531544858477669433552751357316821997722831756610262217887441724172150748520272222532670125654665784729145663524494298100821291722892716844564971908701567955225559073830019573029278916595988678550442675615054438162685515634286510052269300450519081887912652458592969193724248033315022756393761319588164145226005010297665027137604518123811545916048251200196349251852914738145705536934161332745129796210048442448121062586695694657547038674364566734964540006502987338264450629480454576209363218515973575145707292196297827057114629481050100307974648393902651498741061599538955430555326332002963539193251027983638748835217179739799324565079943023621932232840487899760992037508589749691179848254511834466847544699888206748218902747352715175044121822780825145029261043771477785062062299408057125654741397421531427426496772077363999066007892353559341981716296423880032112427787792416272202714455650543943982795396200643214085444705104139198305999812541179245568952268894142970553760061419425250575356341663847443748177060861275165124112291670622442015404256963280011803164778239046689135717387751695497373464759736846153138230694755652548500511518531283355301681691141584211781655902808904561606663188007024409880547460974451884115645788814445967791713138494987957203323233631009717813654362131978563336235065102082427153131559915425917436804747465901477358760746935604561924749156779104384126847348078157755588240129608033258869742938872185260753633199194133156844812038660169241845654482277392513639939085519139938518808239204696478168264958894703245321747851526685692310223041084415984147387279316533929767426525963147932627650642164058521334092352856534046591012271811707245915819407671917878804564950353581756576677305743062707925688673834749005857131001042941773202558072500889252526267356255207765895213244625637952244928433141176637478787841272121943448319926632014283338428830765537156413170929716670451546629635191433562977903085359923946516415197493942470811699740755114180547975796424499594886633103964041595129692650533893358536963106104805730024763356867241831795111762499829695730247196033522376391938002677516012297551510476913943952553904009623435307207637259245439444304636937101427023716950201914614966984880365977958685875482854794819850524106347285857135083778485080278101752539226579512396182450927265873575001904621088865826954527819810986628552476765045622541894029114832926884973286940177014412278052960469402411350673632953041905712517695030178375452843876914098498769997166243316534496681959619392315516001792997406071972222021795527435379797752456063672539104016515753346797908390623014210711666063300473965377034754019830493669635328424399071356108940565074022455625388761291438599758586529058228746635635024639782979038346662033100590634550720802215460372907120287001049801609058529863203066892703902466611771404128894527681187656776492877777573399628594249493616616961812985179834081355572574842502341708402543264536019320557079971849488759834052060737429397971929158429204763736545000188102901251365723774528462203746257164975716355999307353586191859436630784788463373661427085812350886857016953969908885222538466445935150871879379109233177338362904832942245498959697942827990032169367912972578686292394138102825010015208048930401247783104933302900409659499593182823321714147663731997026653506020436082439290668713293677928324620462386249793525010382046713940463138103197021211355199543122080383765968797823195242887333830899962689044795054372235809680211345093660998027011778859301706504599118322825138454339283879505354548919624676949822999388608124158751181275794662433264464295633220816064876002901714879735915993209312710716481051360610022784670972099525385708556799843828347599141678606582508159275594903709156395339690475349659333540977726327941477618812570592475026195083869172050858540264306360616960166335106175277896350102222017873213371596684151476769909580736353627085922822668734006584447267119313070918098526998843993221930568557572652635306497596475139652885888644259762720771972976128397455760731587970669983605445322618631270562085762933124754061014436096550517449178435292545448283640692556883576263757832924703992290489087368798842139251074977837729639848273588125974389101039484404743139218978354106064308830763259313369102845603845651585008688707735531505501332246240988014763404110493138878353497353844894012644840206125578765711293516405915599381948920969604694134509136527646277708102110044567750249373345974277337650394023964387396238041071322070733226325243553087863949048168632541130405251959908216354718590281302229739511673471611235129660795449942952374922073951310351857709910215112321214671957693943831456010831421944321174761709895788241851960918929005434651547835515615173192362775667187029003827176144758392702852750387277369144325145175668969726932899375404399068478524760732533599825598203560885049546922706930682743396261073787324858539112504997460880508540944114970151656809203065510074023163454675077397742662909029575470182369359047748304713204672605635299626096222942539467861043228695931907589552019920572243827453390394607843841044794713119773027003137304449188954912412749498495642449653882758641405672675101004057622432398944349012987583203225529220538251439396677812523674268409760732081425549815834877946411626966521778490064177013082602285090013755491049168903288097814044537765835360505799134521788340694372929043388141705399183691292830597783986794954454108785895586209152419481273084571944280298283971674994402477206375415910504473865190729273305190620553692467095447566052755223926916304381858126982155579959056211894456895972339616502663324977258935117823814377875688236433920074427621166581973828713491328355813037218089958280919683696686522420501473299611207165017679657076648126659187111775609501621469316515849320800860943615365534014426009585548126642347902097508249952018807531001189296708183509718305631015937560451915083349677347118756739397154404220922563021494582524230703356715321379153388228071338851249231430130161883034355322807414975597488762788213910838048706286911044220770986700147926810640974229079518086557783856639212718053978499028650571086607108101038026512713243077703845940983203474310815513712731229086760252466803279027534018674954227182484777377132427102863501446698506033665003558584052443482581142280877718513991289610906645930926841018128476121060027995179358301462572932633345593024120600639002206381841878173103821444243172391501741378401992053814632041652047082960548005744676895470809854364113612234215891437572408406291803517946151261524484460656422622401721363287542876389312204191555835786777388677957399886136557943120349456747469396519716880081464388960548289437073088741754036831580592687157890092865776213357408362184718448289597833417569950815615299416501895061486969388048437313301878870765453332519859048635277057811859549224336667220685749287080249494589589777606478337906681070590134021015479054737450049864653573073537169136445085886438359964436500202245792127079275480232920337765837962094215172929492427474188668308462863301268251260191101696214247837171734684576009027909221411968857792924191515367924933034324512588734977496416738395810481658537038477990323460740397095700169312064740592659893783876281530333587155926896747679494012469875922138733626325177825199050006683313803286553091283289064927562039743830983157240875976028423476520688842278328674069375135674999763048379973914781809168162686761358587868144626043821286785846381852802858367562333411480125807121407141008583087726316176894359252502062958008648243218359060376304342500378501802944202061329671202981480104989304390020348318214175561514090823749952499133947240033997331759668261081052307963529728456845349615910674560212171619850217012029195096564938265467816886724836660114218283363946759920826614063517496679554834792618497019630940174840156631769550359441025269362031988460398920453796965420921978869586172261111994361888619965824819246033783160469804391530608185943449460591932431305261551792564819059341431089099770423095704468622731833867007794227168662744501622715447234712126249099732443738757872916203114097455619279241252556699328868719393924140425609383471929497942737549523621254534010684022071088413421557288927746439202387522576296899189518040417572029956908748799722012022781010212202667554428307387429169517877141568497606662892784541969072877354462397466816313627436832033455357600770455570763053166638059143071216509673049473052402000232435726351303311647346499923661714892820993197499845215626096549225562294643758161783858727804674338388491880777792103104080564240377716116111819244808345897471932541590026950383369789628367281706579854933688328089837649304570077454938754967274499564199158373763237657305835224560530316849550703629183615690644847818943605159187074651031591756045184574224929183186619118139394847792092845644336648197364941364628324457102263671453106633246794177459809695965302110386658924633974108836107228726405966605566767100093455051131670713948403172067285286060780208807172102436766540629881392677758848206012511345072026372711008003829203211527310815021452144943721593466590318355837647425511548627508488614376117101136727078000548422499023581141257211297275058927399937150501478997902641259129580295299152937687088729777252264099355987505115003713787055431858734706382059601299814506315529403705151730356125858156449087305099072976438108524072517787529264539719910978740478763091428213333627106438906185844394576954273063526536139654321328426173708176512299760411574828258673437347965545801967190872967644286974156777959687991271091500278935623709304420240906912745789480341330333436941663899752989335560982548528815986969918469311945217517614755822580495368145974070895146899596095791724096744930000740616663082206180351724209931085128770258057750459144435225018808530865887990378196392496020308645818951256697493260248653880571890447389477892759081068281541978128844141451011525446899621958209065813390059115867551336450911556290556797428890351165652752925217510334073891999589625890511868218497094984567628920599052618375954833076388730122861613736397245164819355315797343778337989785579613298997312615691327492342228856226505771314209150021510107162098569111581910324948133734405303304138387068586575334700571566992333984967039280391932340734477663138810917277941240400046878876263440100784881419681772295762821651792491236497177228474070872566852128225368014261889801628606539610903688807021024458108662435432639920010376857760148336348086717249325451920668670028059559980475965748006192261159292741861067450617817715337550644128145838771802176945697402429027330391610888681262175357141075495146196901917612858397506813222560214269905914353459367715153057587612386993447278160481604829756230298369173115605160843216810815958250260398800240816434686084757936865630431490282717766645641560541933838982450426628321895100964235145519331461382188800864413818652103159408627766331138770360762322215415935783033950831066625609858505913930351218535155849571837858252620121094410893723274719943670012293441119336730541832826937091742257657719820887679122876530931117183717497396115786515095941303300866768899470244020295400477210612561419344311105522298363002708207303355955474094009503888038310891143483521356012296823712971314827692771269735663159876729068093549905565608276521909575959252582893217305085866177352042548794377056030236306409402196019289727182564042477434338692144882000059354239885206643794293953202429298900388152812721863380202739198114716373509600693559710672909129378947139667718862714660462051505938533688275912159882905234733369700294363744404230303142623094714520446467950590595632560796988119077365954698594132056821408565060568452675517370882525723440478674929054945997270462963503080232285052335683066978420973678696007966255424940936205052593762358358975684837791836397376637084637488849169525414791909652192167577745199892840289853926814162407869774193420801033501408553346061725822675006547860805026258241207374134916926109059477894626204938280752542907555651372047790616750049651213926357158744865402092308419066126364791214109653731987139943619859668127045047594090850627881384720367984818023630110321901423931836632650594080513736437724330334379884361091877101052034789477003833536289068917676212835471353672718553376976880818001356828586091807669788575088940790853496133446272627195091683144133874652055066862215534513041771534999844245274150362964831495330702271507460267774546017291766314674631051478731605103413819690625008867130482601836153595915935428703762426616773952618933445083340167101930815947097013583645593516813344153640424781662562626101721299551511880376916466678659820881047390258802682113533617199708758770267595873759096645334076461321153436969282889736490572779149152643878128508186416859524793666837027197651551611973753147820837303948357350799449526789668438768620398956036942091889916528231341900291674150490842299804847310465514937416959161533422819937945542419480350949847661442724923111090541078374527064711442854641279644240308474055857481015354251374689897396422136425508902974996334498679973233401294184408291083311871104914455648356060182039960344844748429987314138812882777448775980997056360437086394742684561743236378916006879014162526078421839436490575991554710276796854381393511657530540222953972687322934338629575785564605265382510960771764620909694531903955561519469460171237583111967003984285458630386079930254997621603531666620991140503149537898472108661972996045853589631654752411472957407858708803626545162442521187267309400062293051011241050580463919803536612716218400233789153357755929031697504382298917620638088481501665834572701032526226961161004842759155505015046884724647669640581781653371501442150930291937155397417672830066545485257746781271519452035538529092314025837408088197603254368468794587081457936483274343068730469118557807140244937194177106588130171264783328452759507239838573456163872312823991966165561562702890967247406840029112229703994944621180192286974831155983951270479723835636681459007036613280498536144049132398010337242986640947659784872790875860337209137298562659199678492615563818787673815682423928577343244313869052488590655424069874169762740210363761181850665163896811838068209661577603006999023595098026884267792390439008007126923086932645393902673416366565529113177020884008847828159106074676258949989016951031827766475122034600480715896314234967175877258016467107244971512849750788626383761703190636037647658843409582598576890677983914538099371708014083413212552067896085732619472452467958108006768499367367785993163692942749464572205474692147863422312000494660794984597709218261342456189919891693056348125174187913102491446630763899319220107856690667585456580301199822257566774331308201571773304323607071655750120541937305357464641055416935146123952319849625572957032422130936960930522290986490043334885520195338940693610299582092130546975681004052974045967148734487507471158748193849092051089131509432090814114083286019500044246629829474734949922615361050540214655523385858645253714412380409406317099806537947142319711656500579040576674923689135013330066674274550560885687786508255764693259699615997133477990545246495883233428320587709863196692341374256287032092571254672174332417930899344004684542841635045788055038219505390820289998995627179175983736490587411790585541630471253438868227373181100823958393839364836369357135301792379617608835380389354594398372120277859782414778006687785084569620880973312093642144611365271128323326960785085269722770440482568903336510708122555684884928419185864410918079178143338588576545751219456292899066542854440638133075302333976004581011548185398397362188499560476701435818149971269112030791761218749002637442548205386911312035596264958093109221223647544368964550547508634396651802267176649625345991190645103777025786608297512678875038295652862957426357107090418874976702520202550379374989927596447848694354520944976485530107961287235432711654634046201843869167493799845806409788028781871313801945869979193640761389316890511453271272289737958657125173941035483449983696231931279585721916154120709701150605275826818854306046139997864190321833303184685966417388640541840905327837224960872346695677421509445346497932153162928690107448392642547171478288329763677767848483087203314814529782784630020395228471413215197625151263665595085295981701636101444730217548898634532829426256559284486115711369659509936266603317867132103763378620162105528021336689853003832974623088717161340997071665352080962206161536191131786904534280794014317409785628951328402799338494670262742501750608531739622810863068443169953110915683278734963470757321366415250219500521591119420949351062009531221333825498666507396834359439005263290956523082106332163878647875932637952658011996725880448500772908679296760816715021272157893635522371376333757139310293287457598813980942694701257447072057763038269751199470614750671465412676713299470425339732313317123759834383046804363213227026946332334174773105589882656306076355468072372169693648485730143467334802483199492724621882602212274354263034974239732178373150736391932468526253513392301895174392317056467645659572504986061761109703705373843858231282680634796542454710862007694299137698879557381910820509776694693041949265702772279594104124550228502279772504670949435903757869965563543354852958037862712933295410136010965074237061243020993844082097415957300080127885328025347096505600174457834124397184251545294166980900637896322217856508495899696904706924487991585065522574586617452828717041092357229116127567392938742275010376849523528888537937744635339090724801949006005765383491220778883838997670808432688425226899687213570932487073713693362287494307535362206836055087220891370385650545480474527872233808599343881054590636955305241691619877124532489109230824246049586287616486695875970218459239792345501908540347321653777907635613799396601468651999789251725001563149886304899962081170809662003013016794450763784708560504081129932664226976077278903542858833193150084605020064165728776188517687805039470100766579106040917778731350642776053914095505942131860943552856752591145806550106644166923489308948331691283215966867761555583271190706301966862899635128744705574136933999072988776032167101785750529753400850605768513649875720091130098844225205459409474336328693281176633154422904331125623450745327222986861379985682855062893941517486198600855821519630933064162540209873097495084489939050845703909821362674137636366268010624430821663365700898393871859236611274692225636113286020555038547605686970754697151535654423484379357650083402578726847575609281472117363069734396340682354503623021321696619999630667139048015790578439468937940208713903523642284071683919351409639597061663404456343136328712209369633836812210444148496924155445993053729199299917116359655383910517589295807188482946835374485363966107487892880947304046915250749599919604206465701107507197986475546209545752788682641023892146578190186037055800114513464967623765845738486580403555125592698984418224906763032335304291666518006364434628183809279442152666701346032715972261622519453104879758778077716869652912536628394182042325400969535022603432706364503785099139942194450688315294808410176057923544554718330101120414764909767983560358439200854918639339279000791949126140341622761065202449653588715720248223313955936727457828112124709106745183154415841629404514940274814455717323936756692198867772721663744616798736525375584407052770148210416113008045189519607411393197683780908434267043789598062910542531710999653353692977550181582173819715172791512318134802489255243857968719627096731120914573970114721042857084931588516227636003190085338289669429772126476627868528205165421631393831043533700579760012484786614016802046820797459257882280505923393233251217383452861109924333935205954465375507457358478000651152359926810166547628266650513180734993555378835374996476430467624902043302247864378539879453061073716893406081806073989562177731583291587101229437533300809484103424870552256036044955286472790926721284664237085487759495823700559847828970105239913873786683044581735935047988540353279373870173901356613095423509602590007399131045318468498311251765528335008591001134249798877536574186300267114322155877115686674181509727849851255238073790043132166260877866636726187503910528245182088664197904516730696180008177284670467772218899432378378397910727141068664395774464972449374565435787698144794773545496509890549944419754888610085403711373661966394944394780333746546210277864937308220296852792620136372875731776617258198416219219695223578472198043002652591967656965545481377751205410745384738530168122154932476121725192070469246761895940707149116892490219122333434394070355580226889126747174631992576897321242102709830369865930473068313687906617924184970206038777493770723435290105787653065193591766111447965462764962399431553864584901521565294794383195360193029883884356037378367788809757154947864953639065874262165020376877266661763904494040054036652495497322595010477352822262550812558126455921957122067535839263705917276607568606242526755086218433778390896262204535584941128522059845227210048732308317296330160419309856270667732474778460381945208093759458260407326666149633573356732895457383786863931080254799737126528944069192432798137240705602721033100604862850743876162250299186670139121747269452736288323588175857997737169964588969407154938883349467706760043625250520133633409426395128039461563910056318931430427553414229342273599721219107950234210348062905095149442893050755283243210649194964732053198670835336067490670411804974372702401152342083821414760165489379983511057181512288074062054475145893358320762707151328900004845374837628413515433962344740298932082778320915757109425717298632933303891475070598514949539835090167294450660436920366210762423330928867228487023548089343423126005946277383913431153667208179653840126040353688216777053150467607949972831352827252130595834931235090476350232540599401596631220612555536279671011895691123504861125656287041880335500543232038842201828644283896791469290661257635001435717022791689365341820318078576930188460549122779475577207510907223127580335961320339407620526454670482623399365486201043033880618694953325141061638357150160218719405764193156341007810449706834839504275479044426214953783045321418258752113064592172162069227492301997469136595568526626835266273038418596289429177850360166474044237885595838985467708268900396222176136220160243562601256817282278718818413341662358919889082359866253801464355834298656873990080609270077843073638484982722352150530117412059063990821049266694695640516072495004483373768565121841003007177174987613704578134165059403229280017655358710666834995664859885262997480455821512793522581930386812261942777661033303793257605475811507844049355102529429388194493277900607910340759123881739416324957549513794828684001485796186103087739960144523547545850258115902382931338456409145794078822556106892163362395525987454324393377169310235953431218270075049343981456423032113149772884334928417918244782765947271958292181690800822970536891119942803081207568141558032385221358695064211415422527026591711588393374954084398714873097417315709813200632860677531332711374160797232876108916502942544909160897671381405936223863375437415233487092452864172063522457336262238860837332341535141137443614743726215316493529957821081513420797177716643476615095461500334400421349889564013571420545335107519954204992733915538947307346570761477075942901259188997599673831106539487123625325672709401905171316725445249924078557564930208156288962313442656167303384511092082932465698653703104883037999483888124370714213993699425080552822844474029004041159399712552848078094406012939517797773307035153693235063231105034315371764841482949251214109866135759248196832194768021192348093905480027978914383365931318444257576320684236306160967329424855742559200280363198028594214096111795309953426327161137688471587403251121584658382768092357292548443243762613030930210353753108137190181285649136400728301837249725436429585441357628305421374122314414789230518729715741507992685862205821057898953840316082888184123311221269572259192349238132638669269539799127558781226921278156041756491570270374870186712448978706690332808163940638944226050105103208630334439898592620451045152923928318887765146771401937874977461565840485254707448759928521050124925921441497499743245340723309010056939494809850488376708326244134529550819713138104851024849310837521777035000930712290702367823855628987374283843450434357518613815441040527541949810013114637048543454330589910568909911029127829114498736122125012313228664368782340282839795758554115121712722751889688463283339497973561716112431695846119180276430463243132349610785716181894242319892319539345607259242772202787884130745869704170054705386117336991029379928017970386175714431437952117800160620421253785554924979779102751236624208940731189401183018297080322860672038047862945575459480277829295389225952118094668008666604173121125864295156882253479041270464462782026371300357272956814408931321898135590770603421066783364258955966331374947271436572832172541543137385982500722978618640586476193818869553862774858613334046646332451169952958545802037910086831591999828724251183266267227066071472925648404569669806231427589695557700378242713026948395879292902993186347054033167500516063645403563749979515904252994377174457480900505101940634704424334099695192764133547253786520700206008346603060355845902130409139215671687156959652166310637774585807491555195974789982876845178947959414567145177754815906642417997503962921496366127342049397322800302992353329865640787923407427161560053074967041095062201981735865202363747971736131564256650377823610911563396079787921597093245435575107802694866799972342890534686579761911143575187816937643776282387074996251821004717680576306354070945118581943342415031772599669989435527212203856580129818983237253501616246399373165776985767384200347612341231267624069882257456027565778474939632995892953447597366192402627934994758516337267627139744717390856624435737257088303433457423268825217311261317461794683564353019979008742317241904596464138913739258812004366709624906789036781043617595732170841534064481417647535505558481546190419102201695740926732230743299621473281862915110704843935946032351303262850094340447760715051733578374756821652877981557938265000808468749547710636250909507962521740190641278685324579169301867897904312664649476567553568680764112139020774437559915436064350815693114977209500201403207544621754978830818096048919732666637324580093521509419210223017592329604281307460640223620443358660304364531997695858511032153515533645845274371578083048995435883018137955406169572106076327937680332569311187342178800674724452439839969266822867161298219189883873843803148375072868568792709577289993298344687941184334867917168486183700702508192697072100792322056731793563159682101130721351670273522751582084097532184075169937941942160888437082633223965363587730347100475643141178629986746496213918182543048229280225907881711685132895030694263058675842916737396553884405204475730438571000835822862217842297262014989960388743325121045797679751875754254714388548718003498595354108834266488408595194749475502705982332573004911848558955513554666420871259562016494099114724145105692826180507615452981461873707975890507711849699147397432240065634278501506391324773498850224522703386255915520183221729697911736000831595150364409555667836704821389847400961932437279793257641734079666269186821131124407936397169595461571059944207907221048987191584918023389672465709347753669566656952457161104000514427630319289531822818776475130791762896948458232986855296367740975586544375223678109638307993939956990642849170129473442703860750577099582689872222142403236589375724995510524818074707445896608392852590114622550069742192019513453666649537162492892214324364593112604193574994359143798212351246541620050759070013247092380483127527232500667741000473219840990551864545109162813684886924505793755189378157680083646723967582662954937387586549342421468852693905996185804526479017775630399006106256044583145002347283047803475215865011746851692681236930694613325221719147352023498711283987024052037987465498837317130938537407767825448228373985193580552452309583784872781849874522189051976889494818715464869833318461118447546302002142100724325097883963760228541373630724564365551682892477083636590604830954085739338126396803275754649099892037826329570121161614046947767274217272470028273970357392307237623124149501090380549430236777611706172487978526364054263284492966186835004479362811370010024006100106417258115745584807978868066384419260828606320736358796864268221425298015596813401253509687124783488297611604694198626599210231247263698777822858592398222187955052131955981032304051262773553921226571250450339030979156695672193787583187154634358188011164221832850388522011304371380323724332431538549584966977355921493848641484904284946838972585499650497879460254190266515621260882503576588338280604896679408720039350006905784474281481742247398142230972194029228223072724400587270216340686915348016933748608488718482949660013787176347337872581672968325712365596652739127106000234340056508528107179982633017692185591561608217816702961930554166138540599153316990711047827437978545495058437605481404435600570040116590806315929338954157658406172554369481816075473482578826711399630768299840464702471992703979492242596401085448734105070953707704761195546290329083355178659213627717364960096693339854689305174676170873438504087820859038165707225100881396449686752388605737997424914030465768139409241747806360330371046345262967648919691503104301906827344344645339434915715897577814362192151205379133583481865773338632562628036912750996187977407678321564504715991726594458650051566584245582550478437127548940730637686595962784975609734514964907801820998911271560470315999707530721882715747774735212906752310825588935954516060768707101266296243936887962760287427549654436295054858465688472308167079148929161874387411524191854543070232744823515109080025672127312894536753586029707645366880457956330467589816776764851248186840969676439741382194502893319058013651349850006382972059271735510180426196455096577811856176887096006738392524437972512168958484935198033059228777218813143295871497879892075429375747745925203537496369399280503606875397410030726327870183277778559562408633231457461882373075915898980778573148909411130826004458689325268596170398901297158441892917869976406844905093047785449288574801486896588634264236203490265715700110197549250799867685637769850755674315113367358345490379838043191066091435090051792958085552057856733844026231573549437178639847234979697735019561502110380686093915442057066820888978083052295139069837700283010360286644746029575139264140904290633063454651369812118447277107982691490774383796833731057285805434040311741211984116330470450582015462235788279341838004239340972750982258207995251361197285049176601471423405393469490462615670335756667703500443493219570913605617920266220665671594580275437472882968237300086764221282063052831327400339816911767061183059542023046844778918896432110596451611789338886675436123827014659920214053091504434313791926448928443680061064343226847214910424526184785647379467163188249865667211035186052233678820393343953630060173489349237881822018192142039409201543866355138485409999662007824759812611185665440228224935643502091732743547250241605877426429413520668082808178853257321531145957116979134155027218984390901736767396091262510816539842030400517680527555489347727543237152415116941039290623459012001009760841090004400804784238309103984911693115282684701047601926244852340927979536850604262502562113887751040369163164554536331180811054593539125585442622194143584576395803473454433933224297843118396210662709593108169424103992291397802915100367364431410854973576953736021275687875952841557312034907261228323611441726254183548953269362251094080653090099892761573897719074984006225716713008111896370705668436089709082351012219404707588755749248311726745632505925511136680163653323430496101355490136475148310936420996605053926742634162850150342514576391114035571546591982859075833571687882761405700458906312761905896695788508693418713632764782738495152241455260509903519155093760412805322522793912180056239849140908442476280109340129738540942671759760743223678425781435476871548215905402614673295237816471804984479282826828963217987941292076930366853941116528152370326965741883170773367208532850740182233450549139052495581953905838910357435304623650411158555010495122061086661642330423089004872066886826036077152007812354293594464383086807894557170621147051223503226923489761898827333771905609837823047582299966682329707009920625088968518668130889449734343314991523373910672331626808632888008055199504055230947348618855758445418696872351231341264993068830269849990726574244565262098160296837408534287987293078561650812752468223987168035165697069857348308108349479026493699951992974018043795170782659449116828166079789108983963130120276775271901471854091992764791455034566339182244147259041986375989776434392098739074952281912738418424978765926889571115204693073747133543798064037625330653816413041814157958418094728164674313831632724344124092568311741177424916519195988155229740278623824850147560464067958784027657044313062452227294132183488823781433503447813281081910615985476848243994327339285001228448688173584077663205036937271206368197827776292895777717521813995671171796425422969042701392912831760555743851112697386746582062592546661872178029003346662635718470366862598398437284028204301607204153784458291942012813722825591793670309681042643927256267395736370943278918780760353826952632013087926564699799430034519415221447803726269149225686855541186809969044016059923582901002714082631570508581996060006685277469992759657788983475452856233976011038748521184568846410047041241468010353615204016696675148519253751171300837645419467241182860337953338418048209385654688944156935434191582807985440146709571442287296836278168425503884498780452390781330478436270320899597879745204512727885597964546291573740296964039415122357309870833177746250209742463266114224398071047810096888589926049309957733438814092875683658612388855947501449281317802375113979374676659369519631799448296341008527090983709760037986574294024814711125611778855820126789689194226242934840741175700566052941169771247715419901530561635963400669799281748711526982664586846672726031211973818305067573396773374974245124767445832306477227966467918860487808999531546300145090259747048146688702199443256982894977663657787320850429839483080992756752213764785964377869074990223613549633486384551089308086906142117990138248342494208780149689984090342748312913226590902839336515928850318241577075565930058024356370572258514361913409573656809631401007598284721161021733218052501849107499837285178291939457813821589917906780487800335362483804779296728212566012079410129711234615129730639044191628918413760491576140167448464725261924753898673789212437299283397180473972315079498849680999967195974594383277705599334806561077418429621067009078107595780921116918887204623864292517370444891168654212887105235825849351012246971086413418048369604672692994333412616077540115546524676921358950651241214052141808977771301215152162231162563750499653396316110105313898345560436183856859583670084059108989470611919273164773523006749059062297938025246270016417646260328038999783898501085582422243564699465693250500345301893622487844745358673076884420811890843341105073462598006158267846029292360264737528292796227598463972380655083848337380899615543801322164657954112909856256879728319452694845686810150031784124827072201884242784163920584179509960481393391189011672697699740070796881216918340208115239859986496866948728482938311507574599597516745413116237678292808771672779812935843432528020811447330755425622529564132408189976756230700163029690744642066073816036873534411281192254189952453865836051530289278754734626294399262083591275037030401622413848023533863576051077225249423750607043676614147387010770109102364858326688667380872347653022639077906437259670683443385657848743520079610313261788917212420212701324891906565820350988201185259359868919122967751195055066097632044292381820020726357943166624823039532543323232598576775759812075447145725944811205961256356471676747131412143774847237902923425479586346180327506873493803105432215837204401424526523797400091862569344085621276950720292007723191121896597579610691523222897892999723819671668374932439259290279103069479239552128470425756504193638057927216105285814041317714417941797054364901043479698483685299237762019585737397196245736254367648158507276606337300470502113253810351436578798391143154334904961323999864737286884173996612904690641578838516303814580913048577442167126643473913405106766964720656000911199078146798509207344674182190915319015169642630974274258349076121605995377716087368776916133022862155281939919692044373695105984919227983671582281730028329585406305694929729465479770274380527699267657934902435632296500470356956485979818884916078794136821851365405921542103303877550862619263539263785652691662798633552682727109568043697928655498886835196894079851065044468966246112057258107676619487631739336392687336533461592212264285194752847815513417965114172229555749631325453716634074805094381874936640743839030270004925442755730548240516240193348480615968426411295348832353344067953875084818617623393344621344081003525490504820566982066792248507601875735531830460640604364569544846305580240660212381657265956653321732509283798374576319188063756923770243780936872810455335904505070302917246680553188190312176453219232506878495122726549486609436880002453209652494889462227877810173405660839357633230805335318979816950430354508097828790773867469888116455202060067600291960906395301371723232972578106977510719754543982996701278154539192069306265001145004682804364665598243004855321451879413493233815058996918831936633457035246960906638731120144298155014952678737699373108398056432983609768895198183365564341098548260551619874286431118098635681904821706523917162023300786065237513344770621879756803845532743368662972438615752749468985074722095668644563759055646683730519300045078830797405818432068642315083299366204854112901823568820848988025040578143252335968119779873369287325877407038741371472842197622765734675871210061071032114653846381113494807952561283561890488512319714584427827090369403906492548786748114224715784600791972395182749604652012425033926308138409659382575350547259537178772646487437508918235310274043966986260531360544762829709449263829431608270265059346211023988089200862524664660561588537940447463591154349385693474587548905384355362541236482486313273079464248963182286095696389246119957088063180247696134152944727011038187056546788506113357460172508533683829663499790445274564201420525852036247773231175333075124514958168466971555042371924009513098736918756436002472642841168942047219942020833937909326538583399628702533917751696887666087108218823300743732902072772182941262222577316489613518927617835754163322697680388643901497554617847250498871619036155990753339480224704927063567421941398813518101898178215373309045905264852637182498370197848656290968034047739555918850162276884977013867204681561351743164619976616721253373399584164899773646552996731122104084509235298425003037704370103713478166728880653223809841375362922598117253215514992030418890228722786246997131860212021581464361558680862030966907556778837538071140373015643414400470499746926030624937667823235077006360160973355724193200384963530545661012413437546512758146479257352355763992833436053771994647353308641424429909420710531162480068389983606368954009764035445571494142423245253050817437971202213718128139113469978959297500232787263215027358373718612501968995892708725639057305405994741960406282998015736621134100402080176337131751057292121411524435822556959777220807545134043289779170902654368232074924751470054467698684210275844496922938973828391317983202809945387432931452986773577314422010748970018313717720544299475535206505856984127544600666805022889471940042898262077351036171296687110388742699217555077328037347064357783149023032388919667906101055813033468334417837604049775749300856291886821692879672261295928235748336859285618449291807277963359701053636028587885723716020860031177370995889543679320810324196316616328902839843037685439173549570328345756548976701352139793053957171224383542419409322965222700172837030774380577160036694034773213862081872801683754327173102192354152891705609581366573415669823203839431689108958079929568541444385407352321671342903430803945847989457604307979775107950370823466552370357632185878609093001866658657961769069747333551130691259772371516708975255243960983329443879936250729021391392038864316152470733440936345588494055023508566065128966344148248814473822303811879542926799413119363881098367798766863170023698152924037131503715804158891964264148017707580357041885847486106294927407106070456187767448607535654051914206883230549420289404020299453300432565749083280940141478544273180954116567108964672615014467388431301519117587230203079291519293938553405178246542847121236769112220656791927862166374038447610076358611227048400007855530839407353392629500147613767544024451725055329941010173592743751657760848387001090611356844617002196971144454241075822105123690175672051074443866192530920544881975521627838031551362057660001196011902588188715743898595459886700249367878522603748432831551401689192589002476841947561233602131118068891337764532067419380699412142235123980006691994855123863796411329783863063726905717963455963282740678558656329632275765880252562463054902105096569719810282727926333309145025386325536867130533434296467900202906459168149503935185658264497247582407009018730637938380589044867544489169398869662854847737703423918079219472769818247712173388347813509937266411902543243280745127532178262476392151398915606750336459938846540942576892103062687762880328131511725075667366983025564120746862232634732797516453931698235651963518884007564540697288833919274479709481750128978327590795211989857259272158964187903153969333456645317993911873001183163139391660065247204076196764727478611207706267458475549187973511523088038538162827415413317391566472382664685285357076396685020438937978836376083003731968087173833620777943852596614512739158792073261416418935581520762616123142906343570357813044599816365075324295677656510686530833668939188239461038814622890950906394391986664646344742948576775797239111053393575565168142857234500552283603277475509681391797116366625917666590603633478661006255999695703355553187365179165762862836877533949632083286634593419517088446048495023440322699650493626134050737689202780464407758973539061246336289018374617210761031596365557228630905254308479326973992227788918058415535871157893047830600091190217132801698977292907066813361967754444479711312436074737093326212827386773618727142964023877322343421216947202709634545091051352534284718709424990270349635777385331663282889835736186710979166330662963917253869259035768715052246283712087966457422702204229527662494101244728827448906085440816674538921032943692080874746665478997819783354633358509963907228124176500993427934503670614940353469411062130506424710280409093200149110371106164140210323923414976363029251860615299349043211767958565917239368922686909914534823829825351771719890247973699976335544545975577856193216878683728453212357504871973619428539701229195952537880649287897814561964743252259086455844346818522325270976400642373435670152562071497256554214433117894450886661579095858182137864299365378660391069587217259373478921799126663147246244857301115964497502490121627411845727282456734761963156131579726650920170325595935439496040587951403702260787813341556822955077789082555415263408805036191574539898555075825566564274002650109087925646293878051168471825705584356529031621290813609652229501019123885057853395609573387707067520575603775648277432811577311349253800016991434433860419744789064346777727878049610086779932018759952894191162338561204401401144855342878764024250225760610673125866178673827965203911540728830723580606527682829411524301493501351544236329081033861520174171977027166863864804949958203428721430782134081225395457360661910801478034785930638612873592929371690843115264600897081589567789796937562968934962512961942165573580500560008441736403010594573881415849408791215299549039053126092219809113089409288478383060626472870465140154694265502851830583770034736798258886222019916241791089902480025522442145510669317028303759817654581691829281452401804045903705330744220510420955336039940107113983693862167035045117037392034691677825995583962289463704741550378965193977177581915213970827820973348672635559779846681465061445565935046679172273846258297553457471670539416275751759501880994476568310013822106981458851219066577044640852215856052565521445535912078038352397684772759250484924124680032270385721689989850714018054030831121937984314885132630166582731330274713051104097964641661196570271086409126731743034295823689839191777026654458754592520875304435382802322498007145006324812058192087801046343221420171888115600859744471758413246287216799226226496520519488736822345130950610246610557338661583042299908828666647180596416429286122279582202479574387315361944367869955129144420903845290697854090850007127944135560018211857792623465444675263373587768687582963504363833850092009072402992957013613702507129740594211789900685228081579982032948358575777194733754244760166469805362252310315365286681674695153963675824909053136437469506951058167738164789432865116763081645387323663888435099941786844930575886850292816468227739964595031209790442321491435888985148177746953675314816520169737476386575550396344596569040930860920515292875352116319269174744519353423858415939139819036278256115899663807605071959574591513188787084420670414623810550068093710345800445492537507642683728239953860570323626497887975851348391830493499265256334735551177272669174504242267569657468199236677583230940373174615677163366720097484834661341405950533830639210114185820030253061767230928619620864436566977479918737406279426883985258986112481657000744274434387488944877439071121436355738148990424640820045374281345150871602806804029553098304356060694403652066512206209647004119130755825689577317517955608231676577634731003612507144300672647993858159224998096852381867555478147802257558047454785551734285126799051411671964370646590795067333502807017287932108841437470292992028256672752712214963547714596903330510277124661796945510602510269963230145301137391331212301064948767664085788009072753612976274530330308594039443577907215219250369936557923308916043779753472920206506728314713891809428817540445001479507174805439438629030613311521870707638005270876292048433740230351055646287455862006029439365074333164536608372020506861283740589160842655423129557711307281294859552175398660528976141034926389320016265468657233608462381212165817065018408382882279699174324104731733010044672092655420478414683309104767076456547120796115344758827404191126761431424212001516769842989281348008514997680500975668175096427591468339418680635658664341728057634258298536772808264965694100175032766702498612690193672246280882463628877043498321383025033324351520353934118182686740821163515217744742783954986896057809242366391906988339082513967992245992895136652272352396831328828760658686386299237441722494320944668135184458613143831082263084899201861694487996436320659553330840136655246548482337028800635742930009839671011050603031767397368533088508785694201799337394582950253089809396443966371358276018105489693517261444134862873968389279719679076112888474632305675032964309191427839322471711966708346915172172881818737536493905399306261807245047332365548323271519675441960490669879178192772739366605529802270579046986827666026100041195871996418833676292616180916564073149745714637320281776350169101719450653144311411652585497006175845039713274191024140165612186755230779789286318231674901672949261501047128325306620926129415935638948497638692765886272127975565450884104773382423674832813596607488681885739318642982336188476150036062278129160154524286002178256637296719818956232546971325429692683628243841282733927212657601839570741176972916532997364111829498411888605934976093276418206760571806992012085379878244064194242451676742841238515193403040380687768619922814593733936475108154347549941180126819606588979719769043962392149096583336519593018884141184178757916636296991297789186896540040864572163174781094730184747600877200301768867170248556587319734877492855887435928039965018648771671059245995140746477121205845101081433270659354238269214179091121416197077692833092999963270042918754496223491873803441207799317438840408652983745578071771024562594599500760399724410448582868176943159802387256505085718406392868394370879811543083686732536351004450339739499215761721713255439048623876164626878846143817738625871647945605583996698371165542565656778300001947112881938765367867818876095714539943378678863570606866345094485851966800846678598279009208297121069108064514881030371415603974784397792663972577866804896557693473389467061155629688393737302619514814950389355428405160722489334702172270377100749990977993623423677413914155157517320959466042585120199119196989306797230520698121805067121243831203624529857463600319678959168161562950171940527113262429454100705733997615893656813419107608682874684338805138963025726218824110742510268970819015051467807167260976612066535024523874698023248114212855392080339572079961773073551310482570722032173450445745580312643172788171988555654410537854953363588734565867282548066421718561500782439447330489210162068173608629215302870056465855373227169759249016650687443568002252995926684299818711123790446510812511413432499572968175773801395267587957016459408441411579897803346539108289842160966285145421621277851271281777154730333213544265671404666495314843193777737351617132989073238460774312046842914576767087478667917420246946920099662884712002527862086524781648415511548689052837165424994450687524578954569736212035923816980684480628696754718402171665713856272890809631024282763526292369578267759060489128501640254903744357620698270983428552545791597545736150043558629781412453432908116657349489653206638554060857578321668097861286186264318437726832430136233880120057949719714582565463030051961076988686826570934278855114475896969418389971184862624775397685470773710826879780089484266921528481767103328190773450514003835846373874710874431129761190660047318606859494871627823583789430640994899403355454780660980170591474980902519155892610081693326433875049096152084556074791110305332533495186358116411050279377571798996745799085042629147779211781614545978126486811111290371284522548657296808470824580452431389329627263434865007197840259478985251906379995952821583223394072534697371777985071120839554577471227247084636330573553350240925958985877873201351772501498931107265471877864535408168056444540816442865813023205894154443421687739079279128144574129005629751070799859450860961801586179071249666163034292718246425393466087891212452114964124061375444608751381690373540497849295504644638821006854611813778221583034114796073885361896899229027673410888298320641453340932962132062486727682035466998919966642504663628462499009223300724162252101102006827833520851356352653095467057714468376181502793559155424335321972020698748484200581470581181505405309052009216424071151731080154536329773550386297791087805728113217095417386363589517167924122982965417653983929332190679463001732659569213859884484647112214973904324278527905215973540314870775816110638109068542418065912716361228351336520202703645877938199546560151043226080471845438530365278147575144071291884008215095647560512135439925195868151344282798353002341651823285111924467896419159293532185122551486562629111199328878762328431701856394196314109818714668345596353543293154177049925362669467802498814801332788302805669318415784392395656025987828994079995700778169290644278006556580333467994263066790377057013867540037386904243309748652272053408863382076966216438540514572681270051779538647122873252285955320035092700133108689916132335831571685501846785494361432662695532809213225522033420153619768056150463689845006569973202496096296698070151869812417157530785745164823170162929633259985502933641736383403010831734171911088364719161257901418744395317052181828381289064243286123125103474310554775986137402772914853129574349902241060079168887350564133913149684067025312229800874095713714958689888375121158314333279171689289202796887326814348760504673373867663418027053485689171608353347435086115803002329725884252319361693845890422965544648570472029725933087493666911566003304869716654940267386057142408248906601607426435623235980616036303061781541283141514449840574018606331089694369696693716940059687607224362773752795643825730617139910163855901224605711997094201779926992741180069242706116805930217375159591314253255623344172473319604318140767615661267442243691603030490153598497626913903820771667783507492986036659490587590067126427519345675212930086227474338480994386543375967080433416861498738684478552908255450629388304345165501515634155129263178942723290070546418155229292762496192916139169686736396521465083043531286920705615754158898779408752173713980391711247351334847917415540137625422991537771339711905902653727819760268946439332913605239095719512981873106197501250159229748271902660596507657558278272880140710325812822703205293087889800198477019427619603942033348827320774481190773710180174222043932406314582136584353869711697059574827455282915189596459575640321301689245550731064532250493552959771913567766616758882546594528747506465779443794074235822894228647746006710822526016210689059720940210372008789913251976242587416402769604331651349085575551968811361426608063148085547174704375898727592402479411394330989620113172361606808777227931935952418102392091718046851172640146252788283041158681761002628603051509574138084333524043273831485471051681208588665789465593658362243589797262395232030867571675619946379364803974589598528972074938133264666993235230980436737731021367581309674184679053035998060392186290428769519548817278865536031505784191275253846125032348800723684448997654537822410717567979802734778547619751706318321492436394096193545111127572962873479486230415756495612128348313422332560786480353253044323832392463147333720389699055061177261528352124801516729785777328406988049569233007588189563645162103230857111027547292946067483420163144310683036738072913284044992883358921880865401783381831004808252378659414410186258352060752644664483210178367713806442076449313456172611634104652498929407552333028869847432060443356223568287251950597077651132909032888126374106643433478362544391255266320826914010415155861966958316971499925892728770310387916132170033599891113775764237461156947636876077141067790143427622742805427141785431259286431612836057041010544673572663276490153636449248574509094765509989066644217842918923005375869071506188736747854003987341069800978154080761403496829152044324683262950157129794251865862897987509346296993966830988481441720096803393019819804854850243745670895411420273634340455084569557451802044877516938168028973191754319708280687011106615127875087882815683374309912772186441699088437977063366696973121300616407991473464270477696626283268188327108719223644752569244413661726406883269509383111804405802701263734220305328500365015913944221477420170747920593251870273491711135924098076552638464066716351424929453463937009016556285985767021489818627412759184591581138717129829894499332208184104311028486602853687007679167482496613969019080901657743346045440830340119776591839972908241299163833975640060757155381733885338795862891867004844021472552850412865665730501388091622322164311472220854673070592759496075017114519461776715884912954638387315924746959705912268074484950363897784810684036189844340452332356080570409794533723625429841742034965015382920145687406543225044701462504627820081908767136629312005342295865435120610345902054204634756214921326949274768241686301047130742904853113960726471384306737467221161797857675708597420311540976787558064931883871788677362466834527331996565954208794210870002047365820651443725699706293397027028359211886867587294254924757476302680416482839989594574272062406361581794720353859547922550165287876500354780047083771139230937221706648553686694647949343141313492795102033730881310284612145226069339484796395766512505752200242455227130631366694005892372199108770444864257594959116852906625139674402600244404885905110953512664912098839168910212191093350118645772396345259093804458939806750186214642035137401200659722425018393502486401119276525467343648195657463645725761417184350789255545923731147910721109337172036398350333736893565313566975923018275047503748980131020058029119728370195654283506050842708216502035293813348618112341334073632963407182029529020437496606065170306942018362214928496937357605919306137656142791979913993732726008599497519502005001812691798629886538612184233919700139891725332915113984556210201511725252459507879051770135510016810761174290401057969061770062827183722559361792066670172922243094490798759155647003487152523553583465472213005073983223698203496546491114798195360026014858674424338717301948858110568546756653114408747748506144032954319979838845155091314383539112627703816562584634141056361844449677616636578845167909878221282710000544323589681577544247835722497185026202014870291437412633979463685178845339000146620918175053312720535128251433358457256496284630313787513820639014120907410410899620912028258384097982087629869805234190762671687539047866100616193993797188206793630598002234963594131457325041794041706042366438950094243921848537879437402795796206527871461034178748668468812790802255607244556683574193728714296456074174412180249969581465039826999142778190046854988748824057255428460247451998113476286124481783156698096440347360544961124126075958885368522369026934073856038169314918096368001888914030284566822632785903431393469329578925449260196967021587619931859742289089896431839863176447291118400879488573444235527477686626601944037038078789952736240357403876186443157052110107113248539464237315196725905786875529956046712603994070654996958065330740941219534416978917711724681451087233641129905214123890202419757006432795932923085991649201519489218771585542077564045150794960024466144860676557467315732269378153474980988026057038508819632725649965676198076041024789564315807418896809279863918875057086459031621089344727871750616677408707725285946248017751090955238704444737828863476168109735017870229056667929723752468663458707565740270052423835108614672175715343693234755544710569109233039500773316013506081638114950854656556745889707320742658383453734150433302565409855722172386990830284402519508943520421168603799278225751540363426149185055973094328199355365201075299829711646486782120642541885911911910386570760423730286409965496625493248138742659139343023418661265484224936882842993032683997116572181597945081012915200734306353917312222773786772261682471228525072299127391485028235220463315942196535690084704272691487879273099290446129721078370748651040078582667156325226856012663906188194093417633468978521594534301510901762331101232399531592410300045015186941668291608281167946061562528307755861356874106831941853270047626489968341790793701646008944479261376012643827664497571294669742461348891670007674415205925889081766203044729593652180129130980229008989435295413334724203018641011025776876622761456157005525132797303294426787131141178763521544981195148369831706105489823722506352591628706281004943278221574363977122220984593580248032723954594554323503883343941775791537373456578363605892521693965282963103416381211051877645801168687986689348977019804820043799872994797766710757031856749663316954028250698339765878613046186479306052025220475470408443233447176830963816647836859690225279632021410354939670562879233460848933544821563625114909407197856579115289611488967604358116399122463182406452616852050971575917144751243487704095130822607720138158242138115859682704048089016305624791440735556728896817383756643525577135524627419329732261855624026771114980626918450201168344788244531204462996077166064938484037343794665230307779878362739913973957689157536721219327638516824950493136385978827134839083931603379832615605804407629914242918726991865885479284330802068809947953928444348725084229425497239723411556286412719158215400360174750476048276370310855845671495818904016849056831185584737146664318598819532642462474568521278331099241500051752975483998282191233503954839710677397611705956867305263803209961467647911144098870240123728445847216172109542286999638365156546850796643166147904750105539050056158011353804710838094795960818199025510329626734657497996620020258080239046979854958166428292310582369305001644414292149336853488037084376997609698472455693274263402124503733101281114445146426911338594436676688591818423400161220597788156446704277414655389798703235206986774039404648080247458000502733658634392546830689398724679101694971491326359459382481155939673609368921796532702035374134871575804460021539995663852694174439747271816396376836524597904805328121283662390558063949424492247016296289060138806748358839121798268755838277517265927957188021537688369308335598542356895853101186577168384728622632933207381343081987044497206434764996844089697148769793417543866246175846181136824636275959565426976633200121134204364673085935816979643191600622107438848540590947892476108191665005853821253337683158109489670783805178515955363278069487057488581240212394941934027610659591809476773930325546202980738520705958597864617700716668527564384065842438632378867151302694014561538697214919169899834177022830660571614236785059323868783062550011563726842919992890983719010397460828524383493607153762455220441083383145267749159145629687948792565488419883827185991834434918510511163214564673018205182246037210054803091099489560452954284097201806096509585361548009339649417475569308374430571925072452686830106390003391394261001284610024936068001789649273830294571072411360961357867318985310672372828954015880364416008739553781538115900082459260370747578435477188094637225095297946795576216087881224749223039373306099558157018481253582899196891157736202461986812328876493355628424553863083487695842491445225028086043457088760693034955919565112230977248250785470869370934953100822191482081853536591188283945521418648157532714719980568964956533481965399982759802274678779726504134342136589585800423709783264838689799565713528811618565904191822340702706129406284188177929263013006504390026832008501927713642757120608586874646533676258560608139579952293289668866448508218198807034541781913449117065838444266199527284441785666304694544244165202387533456882220740130223231126111629877765956701742551429581439073751968129147852950197591846731014849931236107316003750872483126273462424517462304296821464173134734925672106659335094398937465859199909270135848812308987785458970366957115073814488283204316516817138626289337305115656361370499501079143413602344535966695997494521343401120959358281160187083159317408845122998455618626525756274753878565385464802890270256798939702380965088027921568721421109980264417116464978698387578766729779528989543996838676122757943983354046627279690509636814467267075624302265834702416429880672170080995643619357569988510417584073998397761844931189634313395296002063784354248331675475730410728380715472803286270331216545775232646128129348361025248780562153870162027331679255150981624876824496836580239671164394125809587219546707837366430133782423602734219468023576305915472773015896968254321103009273367860002271669956020441786948891385199846795347276470143443970883563974035179165990661890952233251082559460773128805401277549812145264273408942866204418356430132692704304225735990450823202247227812435353204075321816395084035119313731519127700890732258199508808646400435850175695256999487989197201336691548913143390229993791567942025066554156549267653548477720072660978652041477867226455826752504012163121901015858208396764693813258169985246836787845666848715592926197727970676516211664327470663094610597218215617323796280361642164473747051894673336664719184529447786039178616396986575726275202088226370972800796909066070538293476244298565862554222626627075984037421190777790636556888078689825303800649992943826759769738479023967423402209032478737507095123417725636898606509336541009017157941505128033997778243228683866644172835808107223497211535997053685298113225595394059921312206650969163820253918414004176618102437417510726030030496652157524799086297542270599070896962678217403950767484108274799944359218395805770076157537303409796533073614791542421279262285911669958647004621977619181108608077582839819430231530552965821403746907230704318952883899612916686850560204679997769517166968015989514135612036711445413127425153621021789456371256392948330438852316527676175391993284530864033417512071410398105389039947534141089419734881446545980558875890208161412170244997130497385897364730971846648868763917576345267604074748455043016567708958042460124459231649411267525628896232839008339840318203775579414601706893610403326507988354571025929019014209494921539836706553202177969415442099624762992334253131657896522095782163939279450806623554241497502478455167398279014584900703026836059087459143551382938533576682934339053048210785528722274812582408385834149486586132554249576444587784292994696518103891670934300707212444976346311222236395003987139066193026342331752476860116360587961902848546359117819090893014640013853089345954058469158282980899034255750967767860513370969000568636473178274186433800494093573335914206256320003861882780001507824341100494541471106599750186306374114771712957882162385182932125090252286851749163092219658839040489372780637491820696222939053124051558551979254773858052507144675824749475184711534584512288123591351537198037583915310777301675134887331903902785521293722245175229947487427630708747471652619066660226170619079165540418780330329955038973035843380853526083698556175255191620156583241735802789751533818552038534597917924824777448987276473062333723171351846465884986104651652062736174219498908164828803975346246863814597726324916417976399390948175521519882914033758577375955286577805796591272659005886232302387340460700633239059258433232141429687776455770029320599161874057269031833831373179606876379979492795012976768406427428950440971899381369973034684623007288830637767918796998040507202291112514887459361566686549045627145506488434977766404035793104204753418836507089996371288117262275936499175148103509622483980773604149332887562591346911266897647381890643164574689025767865458000774753840485070174836500653269533967951369381138294719246534814730559190991131544915530032066492554794292649823845512295909771658564194298292682010503880543605440939444374320515012562918895219409604348738499754276173970589586179548210036034940654987013283209991879229832759033869922343517831258313962252912023156754914431069267155154212558139830375784442239835558944570676332133396108481988818602154307134316485510385712552452180661466005931870413295040077949643961389328042940476910929613963164509969857439699936415889877346671523090985599244100234821440560038696268190588827072176304780707709056918174780185398923649003218921168388085386059513545545056620111179546494430310529981641802978771419940560277399089840012904840931559590676168344095829604651566455147866323312690008669401289710826967698780415331074924583002926561686207308350684751935132402123967525406615533641834828345230055857280536264577076928813301435311495499179582700397576505234494812956187073730321109070963787725083188134826761612466742103239737549524767899300939791205826563532934072944370155393403433617667531372133015397237804059838170662172176214004343303011568222693904938716315084680809761413291134584406298405591467892873252388377226926811162969785577964355036936771570031126390832369976455294334956600492354752565800289824732300192496130736338513590607962457377537785075579845020207345952654694858515374417236052978760680627812274430218620879473852558827373760769234739671090453295791494627858592141818531114185802245953763038746739138593864896438492284456917725850377913389074421314250669191159027089931771198579860996565388640391448812858593700083726537136111853068544802132072267935341356686028759301566082489592917668548774227580226428180061006885212388638385746788381058775720982163357590377750694581437307742944741263815903724743224466336217431177536370835480728161261349529897646621680443247718467242876947504715133049004846529201488066406062076186463040656846550468505427223786536445314866574176977444760701394642982035438109211019462418148362101234409209251826154701309018848400247844250526834205167302760651543471926706413115870120445227126359209526916601900518068819123223330619638701618816339571649416705662363924209033424460921897737222036963576149476684882431387358284431344645326268215473625325228312864829633984707628359685801015977028388056413059778143333060697367918815873233816762546221627061384398987546022638629590275586057120101561696612591696867686532990278238260007694445950278643039829131180726992545423064937155508726103532451989944747216939513923305967512789602416436926447814078862512709999910807405220151754084817053275107041901868685913686386356147280767751801628877949913707689058750056001135199870020137948560390708551884817198683253521217811542854653319634300655680388670874805662918870777890310033437443396566204400339809078311217602873669141787034793644269300768726035670942785627210004719546282854582935033543951663782706159943350124607565487592412568239739469740033509603295634244603110944585231452222153638924110743908095682881187970777477716191283818938472106415783301987679570037152211000257066572869771135074724525839043173556937678658517839728846370469747034580579670741594816884796209259684380309440376192783850404808668562545832247705717082426293027244558188561940020595806373291144854140150444386323785382469999158939428675819390148043602537249456357078699889810119474538300729011148311167928183836168136340479973221841471372053777232355653859690393111205995432883075225594892250057864640710137486553273935504381492591456937403011296274653954040711020872120997321531217422104916701306610090957391021513997689627928770445749849359602250920330893164922662796647593744771593975822214223130515076831176344681197800626058701752804735165459222135964271627995858438644648219257157939576692434335657004735563845353234397649360062043484057129661855137566965367869852275361479541324202402420642049696593650813337114842088395091068181955545615750129130130705640339276778761964346640692031272936228714502250349222324306963561011115600452531316115342049944267892124207584835798040190915401915034802794609185956581035315825176776692178094023065771595253982274028415795699588675758312920141898817585694015567277193868254012406165998801836739699627316874346369735493181755150592348702471420294157659673399762707364235789379574323532243228793144218159812751548599899949040637402182778888025728530973593736801148348502182754310399099640835397327882974681987392085840286377300210077194309752486803939037639765337977749738439900022153054167800007667831598228883149839065929460009122477291910786499835204073976736574127028119901697587206506753235421503302838518513919003708537882638425725488385855738564605252833226143085936032466947020523800759534680262465953997832169711618978088712275297192658981864604043741752456118016144149400344771662449790562221103768261413831940386553122882933231185608820052770102207672925280403521951787388522845328367322424015593408009518225587295360213691205531102391504562361505001620382098077261901483073446840537650373200424318972532850216788396010623938918664701669705011152521328235860162359500765112234641576646609161163804338260662979928062336675555776210281058098829371303108917104997013920327699104585859696902274389638600029664543992135135803109043252239334897798844166022728123009766812431676262220046740944262614315302186030042436537949291751180050273177208853216092338703740670127883574042649547493017505636682447921488568724909810009562390254669305611551412927024880653608337560321589917255023298147162425807808319384302228671035519530182226477368210891644470507705559511969977523862301607415347475557112340723600137033781916453536930636581402253508872473323441791009576458267329805232815133346143258544849723860167336916172364297762495228412319384018451413148896554194026637226529010198779038478907597810193044792368598918836975370662894715477545661393812181362128052452382217118270807129300955330968813767895734607450312236469301505713363962138965893546779634720903361335751885067725898180748076689360356723816039200417603488809360885865984954567191938216307730516101264691535787237040140774865976730973290797105988360284004900044268202898490598535759664906420724824190156537043151739653414471877578022856003267954405518521330868208074272060230485151004998144753051187897551421451138260276301470993216654009251912029989430498186113147305568914853462322313132373728565979071872997365911200664800426870240096000232193654837216649178172643189521987859598330670391902817161710886315009779911755410449460358922769994605953653173598820161395857659193727292406054443497722863604686556349867389145997563619701208824976633607019391520467509366394694685683926331282035379457667266479361651805614446122829810528476561006264427265590632080786125487993197652033924906506372816886695507781255176968953249846016345009697421559169045373739525071302979122655027200271274248262886847302876203759415593990324759040746193099553461935396410980472429231740464592077914320388100299788912304486394271745474795326941458489781030925713243050907202064792684579258774748433269565164263784684537197867463777632189810766577702364876233050225724602641426234265254056167140057069025559271398524628430879449931169207125949772235913847661867866304390665634808306762540403302339217043983894111718123888474718587534301188522862554395224075698429638723644208295109192318640676588282051438594775890271424641519769533420345943146893907873599462377122625349409103188610468420056621052235713320612238929261224141848325026896337940747882695462027079250983422055083108671005436853820667844337411146371229660229696138121564585361458948661996615129969068243868873387951271622652988956481597433739163912238589512321879719597731726464641831757199932323993070492474060258914170392937961771898397875653883101520104129694061294346990490968390455380195713778073641260273329794764903249820446282119601515460979065275755307444075985017117513742824980063872054646272827465923049783636745819132207994309730425280640981839991526250767386315250193091118660358194396875475415333696110117221867597597016323054105293475128184557746438959397965802911575169912886568854884743375203872777790331571744024905620471328063707846377187865682233263763554154342353897137928132779610267735461448115057333289206397717485417092624366675430490729875357196646456801684115575148392876890473814299777005241135031348748379105790595518872655712704436484929392491270416130420155045997888635187160211376810585742938812147188512279380820582557587098120889359180275563017280167386781678211581286650546167886065138907945345288082367585422183312671486312735897811964148383967143944354726977417001173014716692750857954211739856452900943622622313540473876853373796468357962521543959286575429690699088658607411495591257666633815156399318695394917811419120740032620659994360238005202710290223981374850742930305661373702257010974951088033137377867568908841200209780288705076187943725337609535066057066038323143316023703658249520350286698922409084552746193829483979152889453305651933681394523314411116879641091277847712037756203955441933166072812751572292753155855594184948042108440336544642466499500027904681372287146300453466366338120075715294302323736369316874246880857623683966878773401634213500231711073677330775399319636267393922244766610720365948977336467041188646625060477810735192413897804021345541276812720000806481557976615880373046866663348646353023824568954014038262945343647947005511311624468110691456143470734229607674061269533614719416605437601909863742208553882321249171369325978498752207224214379599102425090604925297179608328955534058995761343259619453942016389207444082392940602228883829533463192253027090234661273845953303850505081463696698121316081604841253887793179491630468945018138570318694799139624804018730423331668921931592837566068092010226800132498541532307045118820307728553926608735511324634948934046773409344017821201132782890259941009690752869865419105716436179700187741080075274128760813908163160116322758505236051396842118798401793728414072067700002608918721573459484084902202203347600370848234105892380603061663353067741227049251030906632246336092681845954926160903713866072526354539163602928387961155278635570323475570158438843234324028961620215836998859596958053641506969550074745126199736688449274832541628949304167022838264968869080416169420740953884835912671675180724197317278971456763039744486657474761792396035030641682573771428441422190373661165642304792909955941959933276049347825034227127947031761729575212625858245093142128137521929122610493530500991617823281072998256438814288267157248373713808284109335882714836761339064178622550705711115536459346601781433055633404909091765558291222562938859663352615570966646484307483823011148472749635068598637335582179589912830399374802653340401084847794225106297329017437594342304164145275282358056958146513941226386638714710197776039893986484808818222447870520643181487061322226743999470617358486168961407181413938812723639665554109437466454131391525275708495481848010248499225943879082134155592052741192511323529206858267494413175343009579702630773865336324792135640836739867931359093337223389742004353698057564043239009591169900201302841742885993060951611971443975955492536017275143795873031378775631499466799409532132947332486973605134097771416305980423548266745847342881120253350521461809045380935832651134286167062614096707620177453184758947857953409369726248149464602061186206818390026965792267790547613805462998581058263872476138258526783427647773144380846632621309567115818130550043309508709451504256209296407147246667917958261894933358816409045705806333310054987242578483022100163229798896378111825352153560091702863906304773271941974534398659329155822250035610447017517066186258369594096426606409240095097505814332640797844919520991790895739961998106530685787969157986897454718037203032132227797849890167267354177078219816925966807952241806970437700865151744871914493865844276269756400898777845095201207915610311367978731158592485844637167873134900834888340623453420501389226407264571944548886891699502839899540600720043646740882610862799584900037288685763228452526948021844446012376017947229986078517912284737994945367291773050450311095666720185267364746343962709084359046471727596791672219804043403058498325132647700842387777959060502750177048563028230242343988333783076681844712986870389283898598316128606850571252334572535770122327241447347034491915035979126202215641506088848486527972571920654884034111520531378758727317707408148659194255377074248435592268489492011475434772482688469436654876383837931277488188514230873275945532459649371342357042821325119359676140130600576694654026169098433993849138528512969697677264549324571812670936094244050985263096869576621800730740130984445274266705382558653826976650605468419062829301650342315460450295860703454861807418268134641512139107837235638620130653156905756906244300266664801607117391854056384615007136538445590009440839896778955960050304101063122634169182580908231273580426940305882867407432697601167593205946232523302105032683160546792085697539238896155218179590178390391991748901228104460668185347702505395458739047655371130001354993474160552624241675575759801479257527744761988602241278986424416612368653668368425439883589699147724283892292486389381336028076052034711667831376259767672068132433226490958616999231437457496183145366270989883790607651341178133867737514485370854138613610399777938989963204966868101634756346234866707395410583842697362135311514449142576222643852770102759488843396081088594243092164793535134216399307879039799435412604278644003232833627291415236259430686303309697048624248981864885733303876748133729538264151248330596162481377773835530080782056047034804891489475810002416512414701672386894623010100885752778533132078746025015093371216957188700976288687145104642911982371241835188511109596318944544361633954930709163684753226019995074167406039464243063671417544802870531325542001891966423752860861999438169312482310109010355733646708937486576302562225544993141812403874292622389797996286854607276325329026881448425200626270087768820020553695182773601381778192818093438452379535176023535306645739119818874911727180009556310589690553101963058211357475011537011505893975700892121493417185823418224782804220321755595182948059828727799930968258398814109571301263545900018245149765297258717637778169986964870915285283923506238739368612417709283928141325089553518907937058595129613478792868812760037735161030877263893860083476482049240992280836962462488069306713012586605382639627760643620231816677339168399888273340284339698604784652866302026854662364523779178361808315505256119449277126666565045353068357858664259734569794401078250990189596521388670258423935580774655444206075393356075727300760997193740607258339939255699612309394694251719152679389907341292792970751663613823735006888038667990267979884298446248507019522614630552245296349197461686269857515452923348088681167194466696771049223877942792260935494629541050993477516443875118736303591121401773711163655981375003985339490434580327949529437403806192120932388928370324209778590846238662182500161078739122677531023959047809447129900162340194116839574948474939600497200303688492936159016540644655314068583708664711426824314588213830690362346853121845226991429314505983427468359145795156845426888361114516223981375910437861534903846334809292713694904389654151604342221841539019252155918393568838524860891796936073228795954934034448798870959134605336891357038136526889402725144506273831021624227885986061627772599287147583036348769788373759883926901227677941711688036914021435200208930047338849995912514720819080347245632793973583453349749991286392767717523805290151929092007626332096531347341651113420969806812125440481170413758390223112092344233666028590714579168247056976899165548399907669614506000299046516816654024345972989812498460514443415700207327613564170275733121241501593514845661739257082173730652257172558740338194836158786896430748614282927295102814434265100577665553984283019263388001722679387338706922043039706683273866699212987790408135221014524602776569233433521754670632061874731785553994904977869232255211514857571737767820033009949785927794609222267042184096738245098829545451107920138368201473298714285065961163808447021439775150468171550287968354656274119342939133484192430454793173268048386538557939268256119860223816063923723284573221913185192396381897584419385535275819266364975294241219684290984225459998905963606160776702635645296462476995235592669376262676352377266593146566435156137559859974338481477842653031448052266370080643962574207186955145072816433052604057500719327637455077767743848999117438968722064842409586741411431013647186658790098129858367535429604239334400501725847522254609073071259763417175167926118584019647205834625473751423490880688877379564948759322991817606995350794929176158821451320522592972950092510051302372376198816462186855786473413212025702469664936732845719661327960744430884176217334498861065366023219162534632450259362927889465102966071802231284244334388785101181079295524521375547937515883004612555889907859296410052585298908077732923601095148361560948083108239951761234440721461999691688894093424019340237907937856070998021991840535108006876287407566977885509209735474027502763001461048143284126015438504540573355882722270175705994763085645197463991429423384208410297213128399233404984974453089622411990090442102160204755537497314188175383092558632767376334372255946085653913437477407667863129334630624845111200787189679978121221942284041679739541701797788740017726176718086633441809052997468686762254211066234866245662158932342421742968110314811461969166995834454894420072347828039461630974344805884834228277484223912767747793405115511663764360411446634241370241943498928070318681307549952639077272394726356583174262429450899830712217043965704616596655785679285533812692551285773974964801030099076846755530831134860968953740111723849231528377372067153303587689630377641993124713938902067382808418703758643103299364362735956647485015013016628058794600498628935410347874811798495558239293193000002010593451609311500357772325975178265205401170886234347046489031899717480869694402099805044800250118436750624782509066323513483838702827912243247087202867354820720019861908315242862865255671615013641161271857447838252126300145244593505592516036165304058199108890045047616770919447151785746116128361040323022984583579747142142424981429747423991676333527321853400451523961897697134508240084148257629643482515696492970725951579074027843881098625721516286107946243665450353440996631622961123955287018932321700259723507917605195530483341683771847229911685323207969957915731641276225179505735660060953852641041647387978780251686364827064520416065230783303338719931583833777054446468765281687500670994863870096358552679095406326488652202876343488729965484524144629877622371096285897716407600341925655132152187623961575367072766007639208649191384300293567607671680943999088529764014150355271192251296706868083285090074085364851440932528356478640134855109921939597341193049155479994579085005238378835827479567618283608089002128643956416132142884897159221870358274218725862553226053328508100713356322731583595693205396043781294419122831177724314285514028616358001632978009867902244891349250160741759064643213523960897656969539637692395599851646438610539723623498845101764072595341838904467015300233999167676054201435591175103742439900501162450807507881628639887354979445825377328976805522222964027223940101565462913030349768707195197032521690509226487731347166476626248777075040817824041946983383924918266124569224300536335844232769134880333950344875553344572233775453224569695196392414544735270551485930958231911314560357329866608161307043772113559574891596338532223091531900203753337106896052055329266593305006437844321189512751105721590570618387542649138239289764171468794310229373838289584065796461170853195195875242479411156221003706327652020477701427285448380645107820879012820918513834594185129154593486623389836721070794779729643137636251176712182611892400754015589022723149294421054052342362785313542102725064880127622639542162129538652202847622301989634103797153414917988425276824504251967889656058120371854114674696246170567002806658054521321880894752769872042837585409227882056200281809512122031093261733804728522453422416222209789066605448570928111753607074934449595804526408644925712134463980294464520524382281418858205187639031858343117664956467251038073849079417235759249756901341863135935031364529152696883422679064570833445900173650357113507450007403264460838917666145130351090642418914523574667956237081355165174312343665014976174625520058247617221437046485025228781068955730623321776291147137713677358987145355474528441921066445577012646696599872060404017904586730264108422577140206709500907122649879013147943839696852769233684490958801144788432721307030492504867516469370887735194540555163464700085149529356767415130680405086383689459648915997971124725635097429322959612451721983327383437200995019953860774146640562304335153761043059377484397284583517950664061626064982648767852550644219206882283632832223731360387838958856540629978434206660517491178958961038901767316387502402544845350606060247857288649939269890134561657900656966905171506983058005226806555067796648054972381823564342128436049231521487807032737928709100151473025771140424421806089543031535560891073991353737835729635810020739136393215069053328038664801645058379909422922773127555804866944481414545937102024452116077074068152925478388317498679409667483462394288220652510354586410015141440477579605345288138036838076432264856414779118806729089868202423341871353453266829151353384790279566511611314699430518553014138901687161848689781078355827363668500349656307551350434194915938232021449998952418975753566465249235894748816587595147973508257868071330993950256870840736320355046038793314220184569673633274533098351439610579762346951041208615334885656993509020870604463945591814395365194326655768898565727836370953981870556272120822192780148804314340750468047829843147396245653329612947491602581222692960586446906218223787048809855421494598540340424273385694504106418764792814780452811512301712998609540294960675072107982580409586080349307390404334186642648982153153781546259167297196267086432788121498034583289648442401800746559018576627407282808859127883360544872093172440765735086011112708468303829837165441365699352997616739477208395415454469467358406371512511334998854110474703592045302230082030122701918702317916647849160874400465359996027999096928588054050344237360186985795623252194960622067239750603182339516381807568646458045731103646720936259963263649371928840551614642119374527609157158279641582336546868644475949496274128441447726223764225454481983066043835525695637789627022989351781047554637480979393474147963187277534474528855555587179129512233849390820336973783552904625619039257836224938831183188632430967718735257851539128819044111834896925088962268484424298619559219706055340808018319263412818338360207725631449338124439354628572014216962089352343628952616088063143619305083061268790018349786588266704670341085012400271259118669081296426626546055713218087223070824334796010896948188293752970015194093908122995114283759318668954548615935882050803178248191630908454121787479681510875323334823753160676889786020333725659803465883450377129456483446106106444117801070416119065497437122971148538681786027299956870512167774721378460333951974689240137857977348521416111964427513337894066446460416189769692847511499885037256344033390649107698456887665097489700851127440504294657400697105427069535872763158366448911018789535699592390825035654843669423059530111785127725974427370802882409337497029321733587092743099546864026437693844950091333921298291477483741281899113476525620038670999791518993668067462111626961693787497348766638707640659829126252453960702497259646260406509613258222233482414084918676988374209973397476184713872079870096148522903404091925737048295803338704076662267262979280918951307391673623907172620090868692993598807366800549958337585792719796580552812831125083554266941171207826939542080404001070060756651388366080294236381945608596706804791565570951467237676081115341692960893380581302770708890310516718034289725012014727335396738591912265171558808661300176420442982945269127404776668546226702718474049954468032966894272100716132749549977550909139239508210911862157648246734436296021865856357061694244833546991272504653653275184289165185579220033754497242239874765570116565432742123126984664758894952440328098981931394597265651695250350514546191443813904695345745445033778935073387807932874572682031311543489748955411657277475862358909578515064215529443554153052255380641156580822673811972674559199388226357002640472261756857872812742251286308248715523679873702898689691091347327850404937695624449802288736915375360574630016137998119595685541334789596365102856356636463444010718058742216758195140863167898418448276802917709900310198771674284127706004311810583919353677022774873924461547571671580420466142606132512098026823305533465177132945287237921241981189351000490339556712667668017947093184883265088209341706953237084606611592675499287805369672275285905746731733067603908934145972390195971803241011948583309110662215903194115791559791638558469214868945642909770415393788564071846659696659313148690288566188599229878444473598997728263704718130692777055142161584141661331618771548608466170409835696212241691903099055208424176415791517087626508705830264781892487952966240719926958104441232184802455934881888834031537328869130403339163656701543872107516364206801882934131394221912458040906782790207867021420827377351283835504062461104029776246474005884291018460522053431600423431274091454835087041790242644751815417071915460924315691640205072541445575598477917688409144493759018917111912839537309616631795851862051621283248796114917489520752834720700774749732525442344216164332906359809447688711490878995729218512030208559448663260588762623942791303965023669764364927379123840216997467541678756212341085670455696757778052697841589464321037764548897915416333392201067434900822695740799864057813154397355835684979009461038799430081626948623246818759478070367083614733833655609509828877233186896491878085467320350038094284942462546661154716255574889182696959621436425064245507564445929495962928051138530513193201877235063434265115322663204189752873961748147085750505806137157756527242113925485759347085711279131768222571022164650241197649964688334896755952569214084595859112404309354062510421251320777682353564387656685454072220175889424840641652335044344782360874128464478885080284840938254676645416020907601801976850428376064427440441735851576106791857326028632009718732302519102659333571235701993477443066782976260634709860687757283465458347516309244984858871729935769184268105520791432837880269569430670377942086322736700302136670517168905539330649538568177939884153688863004928561011557115308474488592249486045778536273513635967052740303253070803729453306479360249054070325485690806599806074629269303326379165917678015465012676979992081516947516671459847700889420202238925329107637841324451051777109128744373004417866238863962962292401840088351710019621700406819448141364903382514895924093936765503511321915193121070057223455386920480414019200451128188185142082148921724043270215942735841717322627122711548960053024389616766721940354331238908610004835293674314957925320795079699177242765504110395906775633107703346766852066544688886467457592101186834907053887196204919445144077533720891643357594267358123978266562442977613134692859524359066554196963067921795181099595930817746807187519256742692185461141584583421976557828645095904271726701397388863394814425311915225335191564191235512131992367904607752143000341703474670520815010795421957679185581348263131620582251537353221511322881082930233477321196341121970221637999015348880692180893995873908071860174905967523697111441775064786630381305530911571174095535621448240308503560994989506442696117805389934391810139412603120224705839417477711947038663998706220815846863148357728016352366007459137229345055161115525244163030900172288564232018297691769968235966006602441452612405189029242468571161846946812153036976182301955572272186819384723741900487856129753419893355311547382131683214484646204678648007295343043727749464451276076345327357753924382144450681281755761325828338675788939152867120971664168303032181028370125318325243653281239938448869525860610282713775786349491193636393631857124189473764096480692663255161936625976918297205658112779240995172645839936818779285674704733294958580236046034478558373809376077358401030449818709007597407191074464119534060049172540560098532594870026454633115370576428627706141577628212396663794970232539700497402572253555714970077165477827835453040526945492412583060143046954686999764912326924141578817672548844692992035939400454378172337041350155141671328246291452344391172517632462352388332059649502013771375866323896078436736988157731146584342001456912858335021418432616471039576212321397700929235276267376998447126148442298726153490528290171892698392245509530130085718551517356093720179180700589192969323962132439571412045693530201359627847154094014999881727499459827697200491674531042038995780436289850887141389792244671974343302368033484325089429422636100505711760212447984201008904750114783868175358820735906141033296695163123727497108454840711261505425488864535006646045211618082281652685007748147830686996947305009352769315649153855370874267190612823552648395008424156596043675405231594467493115808803282095103045788522183874263031916795008029956380881380819441497288320727931671902444298342615084112204338646388279143488742370981842031607328091357886187203538533204829013163516329749666019198677695426820268241456218874076921352675743234666055094763821047980527610018296046849209691369068497709634017346139657893382004532843921404277932798682132694991606628664120491159100939617781069750666837935140122227379660378811126411568739986082134527633022119828052432198848722845868146204902325225004296617815992377698699468002003729971050512524023676864230974175187371201643265330309412792312959930378024591892688236244306087456835079633365662946608235111886383587142542481974904398140209670195397893733126322442599017517969390379712071629770900267844883400278978421389450916573542844628083605006050172762563898851876413422543694835430120749479423949960271709069591501529211570702860062057609349479658626492252793509513544014896188094543475381547554113140536975280407898315633569829626760602701988932035803784885063966973730899611502873092167883802792032926589328731226709107714654640825853018885864784905832579435482438527415888886861771534264982639228552155820151188119719326870369068602939252936789855458356942721378903505395882745895655402388844990056180342155040439753351331244713820534743103303837409493183377607779379462493900550355616451677801227941054142885251917914452742027431535555845033107507921541322262475538871536479301891288396187754284140496431498879656015480231647594925401512196894276148088102929586876124751154472731224764824965488299189135348600380831511344792522288597275500265791639463486636710431509198161280473449033346742258812708864729510080046447364318279448344859692747818495480718181662318556609729077478422224172338746734607743337182205600400140021306527149958780410654514618647855704416684747014670092004952818246129759912181608083473574243323370433412791003758523785283274809838053385342134784427474697704731762496979178318343745403521151736143065848157193584157449518742777057324002551066106746532164795091291081367735614485605726692514611242057055367043882429154507583710101604738753913063411012491860628925406331321755887321724759308926895453298841313115925268996967875222830301221620327655686771618458787360822582144253895591018600281491886804752553862812283780131576918481381399378691202592862429004606032674027541739916308738951221540526133094625356759292458915095357832425415655543475561312539581107270723789562188368980356793139314943719170958860436756543099014764622044499324728871260488878038238717736900147851207956283417489564725636565138338984316756786580360957930056927465966443806219381415842773642098597471308770051574927378159915937852122718964516884700938738902929574922637341411788264073630322662058054114550363900926790931320007606527082989619520160434651741512875916996631036871998983535374798187782760937595434875930201643567379531798278648016240828368523685161963388564440569418138962844413775925734551905830963514341971965492586595183597583099591963524200677765797345627231978184524780799052995683090734403591556280778661275340786873115947792649477063475685261964561329077026210263770497698728366607077573781796859532946323204858056004820117398451199356581290134367559515484440054288165191012203576750132502448241435805018157441277227571384271104811055628242163448451042838585949438821941785419732010933633240158840688430625633722854753516014369521276330032926866100483033920118705967958016788117050253969937619225148389916667347860432669640463027772572262952462417247195689369420933617441666156339659566736837701382152084994050565673228896721044760424816350141630459303241789096463093875886934956058141457273652282296766588115307483302438241509196565468086511437467988786079902149879612237549652779307688850336489864837121764645684387736307425472879342376470825377245547254624882370602004503117848000498064932833549580043332247102812291994527569959924800579087581085938394301877856690915989875968473698442194213827122361685414572008059880440565661538715980129439499726220035880594649948216805050480905421143120798431835647277898062795558702253954609371657103856017857476509998165767386487985521926561945825832196781158406110329190595869340987629154757874749550168274381429362015931135734093420649148774740035751115060172724165807112939490209395142692751205572209323995499551724376936855576593366239519149904910038203498175714518038129289952119127643575210894130372032509579771788205908252385065025714183072371749888515811787165560721062088966175149544642826920631686033869807814393655871184506108640785652982613962745427059453550273874008457406332528957272705918134368303408343885614187683213160058903917738917013474021885493174740628625813333330894878125102349503085501030439341978911608190287675999823329974112364948777445053949477605619465354164436258070819274440851386272710101478012136306133150041783598199700291741415486874894812920507669627284397238649105517830259597664079189549923443103956872281918344565616653177794908036013250601856838735153999032136645051468128618275639292512658789075070794942002318219437004795532019174755555945757855412591515114195757600861751042703839275911225176674823054734841568366497696514221979348442574521389510383913342047625267192963283421136169351781515204271805310966556611209907379095571338790654631398448882315713489161181551062831389203814799771858964916096234813697368189024616055674233028250178046598587396742725260959763618351317221481965952682030213099390859334556079246147837615188416245492099587585704220315427659080963461840152207134118784104673553416506465657610620391546642356748243679107557322376377440995346986952555274272956472490173986285698843564869109588606212247511983632837957099298720959419950708027555639833510966934436519373427546307538083406531000020867169268763468983464359276601266405517546695477536791715262234240183636825403502403397047980504865568807621223767500490654828473433493020065209044162659084560361077213948994181291282615422335627704912879310679976447009178783826457973253958316193871360122098231389869185646116221833554764512946509500826502714918665104800934661849707469684623317967180483329457406162217159776515375462145201569012691582447394638663111606635569854341444570319826693378460424134578653597890478111369069055835869943815750201346475589349774587745938644215128255739707964807165620684804563056360120599658634693417770593007817189374506220587737497892547882655476376889040694571212119130853606844355581575915693934740113183214189338672060294334906445489175294754614389896328918143464072040086951513216265159425794422630044336040938157011587196908292009464963852829613013215413694602092176050290121923261470823992575465169641059987845552775268376499432666666079719792782986927276073292160886524202732675891587680123193281701705660298896846040849472198932346917072756562990439338251131428770393644418911821579006736670498384826436713818811023417848124734503107879349496359603777663604236325152315173784026819234368960361444409394806125275373149367804312852390332218112442400063022139775509619422744675706831961662803763303302995574779726429933819406177379736266138251979538202365873682784854002816665981595153102219326067348333013873961346049028305462682755911050612804482214414381760401649338526429901254997123798700635616230887745850800244966571161403625930622301226364990880492432446027292856397989272766710184342975953962122465665047545786536302678107710146551032708560120853154755738868604889512979928269521495907230466271940197645099566564221220836031936450579257532757450811506344545246263089688257205350616662159697129548780129753272503484927672464125110390155282419209249234532499455308935466273284559149891171278413980136966047588328547385625171996475109326729965972450445367050179212256147657568958188300330293419383084297045364653824147361815024866009600459907542563676647326307659708803533367902467070065019680368954472494305394648708492527413602323354250317098416939914487696917208666438716305812716299644347691377253370170581308312741753228284305204226353349355365337405198445983991492639678587907625797592834580018275854197384442417852912529921949160033615599278908620450205253466354334299232887604794887181089219829283810199608111457283809782498156869481297926954538381152629037451098141883700070668863095475870019052628691050721509171328983814980141867106303552016803552318574916749676246446394673165968228229424878476195095027888971508744020437034820720453223634732403671520176392014942763625614278799972239455319041385048677692278047720936027036156516777953936928095434899077636815128291213603943583617189017502711751553585167374695589917221100673565619207929424717453321780502885894314002386140073546992960670884750292201577931552256979894672535425761080395360552807473835672538686619446338921631005278382981530527675873472617379143583249770761026471336214577280969852316113151880518257375196651137567424997175509160921925107109065215492142347713918470913879726558526110297161510359931102635507791936553068120153508655821586891292924708223267490411365423843685235313755788406929308003726010844214170572584984829961047648011642378396565195710863223712943588657326149514988242313311539184732061224629899371274323441501329570245822608068998484905056983398858531710307382487398955022205146376423195320370172447896838470279266165606886737147490844514575238844090804514706597522531718005151332109399387207688141012623523421926503947856762079442197869466861880861575263021584407629825571824301570480660753657542333992916611615911343746121964250855637580572783781877833795417305921338516220544017160042880359565556481885313101150073468665233049188079271960659468223782269463003189755438408523431543442198674019447432140799458850856364355528497806705144037956693662028039802397047841233484834741138747874001163016866290509284655036411398273577958519869438815773556650073302963667310936957905946042876186655769423995906487403846627388568881899791657679672374364071314790392054420169755176898834821604237260166191127712647462707656161664172906078091581991954998681866765895645024465122663257221038213996197769977824844186618170676672456779775348740275421177793850997922781603680295134229406588042269562844445831329583400645390217500060371265308347004536382087195433912830961547653958413755069247421862652635109889351695950010689794824636783447010469514845100671366806319475572637349064751618316223891675994227020871631434391434801517555771954015050128976418418292912518922635612659956840403776050007956008027214950674338642511045651024522272718595420932603889354706081599941041982998157154894150534878980471982411138030905083323244155463373522246062177307771186879877841096050578538375475942619609902166520833254800697365097563693106036024369756928684437191396166310562587786344467442968088139551788021330951744372032185473502717135986261967348677686826532686238538029536440090363512632093156859854154616962961414287045052819848734133200421146197835285709753857959182943104337531780020141619963403123287598712993082188769062827666081056383940492534112986811707355935511835377569548094216811690486719196916502656810262762836634317669067884953983735137055819038574264654545249464341776895121573477061295898802057310178661151825016204499613454916999300450182877858284914969090011128651052001894563276233897901054554499708955039607685932422939517660842134636297511658466955975118992009841469978176228870267691252590212324598693232345675035602890697167263663800817365231593757281771475984448205883300319407477997559379561980648107397188870480507318672330400557807717419650733856316148175572314444468406114816288903112136878212668108047500454638269413468650482797875651859913870066881725482616605017552849882952654797632733986940772856556222008029033151832242028141676018348930600736321104007315258426587952512458685400512630200303880088752464879891504555743302104640243684526076234443709425483834508734095698602600076777515285402143740462243970516156617317946456083927369896816093916757317857091442075479820974807512707626312705391624928002091781920329338496247064870353276394046938777540317815923049818353238945018014788048932018211979799325519710959202135947015053250461308224571037341792456582283071857442534976786341645048197383605049713041090601848527982193776916370877396318441899040279356813581918320552214796959232459270837467029729145602367531409235578670385339529198926458148810046895413650844060331912729530176534437630607195050325155774535159977888122901077663058617414393521663219982279153437288737733283701489216340632918574636262855490600816219817686297824559084612013350077513771980778901558517984912376577853000664848483083236548083636486851001491409138104146072376331709504640910120732282115712279931638898368110211641318990050610617464802482979653188795859010238965818642375043902965278911159783323342589503599491414729599419156252035017701413271780770966213261567321791669620370016488686007598756885017625390052598583009309960633774716829719722697338425972800377898786052381566868465417492790887681042636785735957795927993526564080446117715549954983666495923499391639111952993825516428371300691525760891483791008437156215397030720021174992831046111062891736334752631166281079894962902038508216132328751671567824198598945617263164147408534577942320844058552617683448880308834179982009134274184061866495024307655193572775376546992983241773261734245056210439135808604694088369411554177189066783792323197854750960604833688671424154065564521227973145160408784548289553050566816785724860294621343025640740584563714675407722414142510016592827663635035426023412176148406593708527645097152952138433378610602280254071343570255595666163021257009266802213660454779466239769513578248468872865814439306555470079961543052625042471446487463482738795636668238013399884863773271329876130436139642825524916497707864651491110463447999431803098808273940919309783736089153808785289343268091021001675106545310490133123765754903131932111192306134321761486610398373269350062967007871797501665001892001557604046304147790669700397215635357935499899459321435067964486500846407309653585149071218064720599274246879017546989402081443798626614844812406733703176377142509359123306772761302023146396467458049944723758848058361401482342311883216676532555020479475317983130813059121626738990362738330828781864880154585379646679090490443754128723692417071368917761739906766732688553532034092880392997423360552456892428182738855705078738801103656895175772289397672053351008589680608499736035856676679166009043749770381815066587986764088904164545541775891963626558069210375537804198153245692818686782665664424794637086237991172246242829861638707736378174508079993837233026053380003486819722241975169756615572411892048979158444500680677872776357089918733013953807147492946723201434952664113890764425189072811843614544802598586093404191564424581805671325319221869152686048296646381714867938669336416623241584881269376721515783512732246280010250196227139774630678535818924432825446213338255389513641755643500533336851295566807894080182928945472287067011215342595101283265517099090423830151612080031159045273763233355352707905162807876544899260411229183664048754318801230577970212559823447009809558186700630337351102430593259305271647618182594364978784344608676654277158780523236685671798873871588275798881354463335661823258237889429879795021260920173134287696285203899569066721590798617702760454378712651844022721624481361079082799893415798602426842279028887751054523963482263844726136419688269971049424847310055517697783807419984926687505385544903289468771202914460597591842926443307733268961388073719225691563860568745087077797201743027497327256370609302122223518435997893425002454517890115278659663377512611083089651194128988484849746673282973881659739744192198568755006721309960974313629868767415589516359658762648923187864357516962472027300650505048788455149049242875214329067646872122007542180823774895825298004836682134031177439954333896554308378310309680565325629656575823702478088247253463439365487264578711583460220795927580600151081634825075896047464114557804223860654090006329906164186276202293863418306519799760036414270316052903110074479024821683929259376636526065061943320891834911373383116441439522882268849655930643864056523292782110452594660576885744707013628527011519925967634828797522061326516395172551719470939711872749414260004506916150017247506729868006186616077164820488687546225365194928433677976032356775868674275711408702770533582346633262130032884013681638393258641171337977791442647434088617209598986890701592588276401321332586549192820835362330030603656844832007573439711983874010630148033911603051983407503536969226895546380663467119472738489027571869350929961489524098040206710597470289812484956626471998041660893006914471275366011137570080332180676571940209687762076387298896104898121194356739677332409860754550181021648513751554293433755511982868775371294574518271811380872082023206040704951961997169055663307317406782604179833354377855846220667799168275139241659041766283968784121694604982609210810439597125037909003003677748910056650136947729207436679381226565750795588445449804026649062173666472727605343655061264435919809170633216748419464221582324813276129317676087540742287028761385228721477667198870931908006332409349324486620818222359795141404428580449899394648070616583069169372697755234631861976209681396129474308060113921160855149882953166674096454654981058847079731096736151118772498039890358864162140933867855701729192710293244884492792568357677575277338097902055016705889243454443830160734827981576059276813363347771242489653068567347918750612755037068063586868743485210693143279940427198282636861710051919564362583724369580016532008268399185909830681390327524800241449171729268030063046124046718595246880554951272026229577725650319763853991464268102361398418099751137118358568567391128058098073022743623751355043350770116326105671022629985660751395833131364351791999092069804247693818109836706713307100688812859313444415460713730260209869486251586467536959900446568443079784337268854322485178405813236035198613725052535551163515945962063478258583575402708797279583666325526971630810415687482167578256955803276817057665701708265505311045131655863052319264762144174635336285015427493118198042312675765177607008699692233426204397326979422064960777461008142513392846334199956681542611659590628732600115220514893870847340152762692978265916028609715295378903454970735590696346329341825929193413518659198364565204176066639560016347161380976888082193124163350568291770043546825910427968305541460438719300608851735428848004257682702142393883390814994811882032341135344999682886422207290687088614934137611715650380199164253633072347494663041728893376808423626037949183503516997598776414052439984453808182161097314587161881436755239456583997186472603737998124542843581949762463122060434087940961368617842906748994642578636199225157841997087748851954963999969088518121264523216066981402070886088114269852387470662328881552209513205302943560268808288092425430485420201668499666252241596358610528779353136493577498732866100640047828765339203163007097008449727190061204215749309766935809555013066901955668365092575007777609243826522990954255284954831812182068306913911721317913893141592740895335291063366634635876022284079374363747648113113175738897954725222311206720711828107887594791487373494771471952084890123969582806601444177300032106039041442531152156466980160908238357736325155340092688445412637909676869441605329213346157997117483723190171095535084431431836556379130884315608481375741039792644556880908404202103424338027585179152436547191620311209204348016254541276622626395440338435979510115683260780210765673747450245779137637680614674639493027599171639440335290654161762158107578019262857244831470824385281832880275612219738001372125279741848000743141308056153412677868930727542741770804646236861181891078310750055189654052374161298411180342197162173501814185277170664870344785208662823430879407788025719627409566932888017982374331254867147888786244115771627343599769637731621220654347548801578714557777374952908218571594275980079749151110639002131004501070336240464556868201218846453088193300176141495795431073587895362392515861252773804322875728151376876811700300741757151695775173193829686482249132644948161806299226419807749164504977282591703476659685688120351545323903064578699510043397019501694669902875612069956098635418314294562754528320768965081145166246263132369753413960306762527091985365557041568913682558131776703923999797165925890374769946369203449301762641305770106853485448468689919846889542756092972539180640831483302235192583080541790997566752273780720869378541035051700793284512374900951392788102891884020590657908408644643645758238309446403172491612572158637911308993537543998669512508015597033934518815078778102526533150058245256945902411323093399420739906575948718347338165154780340142544618214824542077115174348051032405497467046658490970765936046057487560626352705254042143839638825297825472906834693147632451179713568360538392134901070506287258619692861754796752968817752769521002176792972920002489954125546087129842507827359946289583009402473503112885903232941941370868332333984682286044619356835489674114501386856057975576976200484719814425910835649414900959747919530041907804951128875234443949300136733304302139413481378529378528546621758300615066235125536283660410809830262389971549305144469427381712398881838936894940376780004839193753705692912316106647801933016276860626159191108030168491478994216805512710483690733640636524771460590023127367912081047792669913082218373813914367852351688726505460933682586790167160755121748374999601129791588741835488664282825197802791543595317002752962598294706161123020503910669074417645438062602332997669892766440816598018534307677436569303713045485386955083636167171549101174942672146756910680091478188547217714782052457293180833903853087357088354045700079564530166304978152571231482223700130412984016478779010558408011227979608943019946723072754033304485544537718860519642422332378206171632043065910428166475965998523158323590865555739338135874683695876945624625400616824241128159877982938711134136336118752277384925659770991162419967202611368058023348619776889813347096963358957953121489590604873837147022276055555435157999554086424324078395359158779812166245067541080067989161790150418711987180910463454745097768438691637049000605402834275615834397170998731798317963055782873194251326808767935963026716673713522602987841256819463859047597971599244414545771955816396371818687981719013102218748957450076713787797950723008686720812290381375745601656740865050066481741584804539833409899094831600444173025634887537334894339159352182801296590890110128816570268287435665015141150353116339749054850422937594896868360735921075979749587517942151179980231791904923337022599651518646568666153950679324709358994558801811115184722137672024612567256621620176238766218032081091662311001791560728237630330124910762353811967983512925450910423863122450288182921119565210862867146891183727057862765279386415544684277800353945882766668287175437988903778439905390739311851640816634981581552762833072188573135074312860246218426546751017777918854954370638831470855337136985931587895497213820099106589290445259926946392565948401121319000598537700252903595882145411297432777023353392112134103569622792195319462724906717940951656775729445168870624345284116198646430635230617876893592821690272597937168780424911234718187381165941817358593133879334702029011006379936756716507725092111006719456873731198255885602362344936237862959699596680612164392903782974989257211906306889173121263557980776557116836658699020901690045667553855856102305584464317580227657001468841898030809785656043155493802472326951353030757091499983917467276794359494349351799692804436363433568825278250505995330902031522423002054411433340907992861113553474890629143246713246137017567228000462598735293278528255210686423445744158913126714157101467224420959065964543773962951396807475482949776903216186920120697130353031906939713182189615299334607418601229215184582051804473079240504857763448508439773182497013605515101496933666297018181829784362443822128835549151103894413295055819757339371501756819142939878279300552530151504334596307976640133533917467517646239709067940755736064558524224717052013662631707526256573803775397809579426303933388207588739694388049893269345673917397233148949516756177647974288077409202475256789454827409701021589865566250700959301670391149578853183774457378796161714733446817104200065506757177362826934006762653139569000117650123918958600970448698048773201641315029865892159536876076513710787033418901067224298123675963743511727579567996397857180720838718805023202517783558744374992830801277478085715422469312730822027787086792598254230688384512921065474128094169395301227507755395989933149038424380144027141128129173781687571294860154736282199550092651882560921228973740771601079048988513930563281371955199367736046423856664737933153238108690727479045483404755933043138313505468397766251480101584038776187658207910180845781322138152463567334440113104786031918278879772322800243158594984219046907172383735837554009399319603377794638548976222109656370395707592346005323419481728223854578946426445273198175220211844146330489075048850590258696787557731469595087289130701558787756421600768880866122125771820406015216021918182891824148740792885616432083806339762466162545701178048172920153789680553903385940223997663065030938599836042564199022521959174742093207419348938268769215298399313954609576720441257517563365329241760770677063456751196015333429062951333899887115496606931063190287189196548678808519996159390221340881875969895186967703412326470361872971800089453659348495211964583292907549204931188132214799049879852684242104821964693815884324085226053547143335320647953696762652088075136500785408262872717323525691055568388549922667604140002259339108800003078838212730263774934302535818412557907697917618402141996792072994565270237701321736017405026128733411925334584657118768464008149846676629625343755277113301456827712171566911557176750537829217547035482126299229723231194243948628413863317532740518825387070521942647560014010700340779094332955445996533496881151804957819756267269814366086064519812112713008899910457720974546190517725013873177687204527512320657565384579367372753650296790880178897027812036660343880117563865305955529502620427214051538501420031258472836703502075463857991093400401151945348958222395775801235382140946310016013745731662321198784120726863836697507424489366937653589194455185787638842691778167531702158833373213389101579449878629179647229144741662229889586527788808966692472252247019070636721546481311680083959354061958125430335264754328147183552729119779152812349959504544999362748626147104228043136027423437550412543914017522464487772961543349639573288726137970960245220639977810919998320052437903852848256009838781527950270007739327192071051417518915865064995991991274893611656982414087264133214862807595500677444448950687488145120187835375093725921629394186002255473494448649666034579236923339781247479144278157188094489767269964344636089998620847775477146255664931673430453389734066895795461098246192812506732119581390288508597012743461535047094202473600246384139524609927515419909126863665185025760625478827245321146085951882047641906107406136492847474188985425320251722557200731024656581903640838911508584141611194814154720186009887561658462949337195717908151589810963349480687148370036413064108575473420753401219305314980553065170801926078093634047078557385999370135419192653018296349172993649628877078738232432901691107813870922633151445919378879815801568248360843553937760690631656547858077830113479055092022715225834455387158479033289918127633730359137789652733855837353423585012811745119442320678664714922174767797274869726533531256711244819952064083195000411522144466793519445243506659942073384233980328872594073136881958763299203251067001650850548884512741940177463571932219206076476587031550758351026926328626059568325836796638118823486217389107220160515282998921906950229312638334291267286286436396598373545633705220075907638204522412444988315621644526332949330308033386525052118503911896547253734340903804124691104380150974102577213910199523982461490057768680157994695033750611913372291344726278807906643110380600835592063942434722439121220861640216586054870841265023877651419659088022627286950372416636321373418311201648406694539890623052705072197053355055504569794346733385431582381927479555206553675490503825389443524313547360363501315140135536430716242748463445166463841012077639891861373548570794400437993723478892407824441300278600805854061708631071030557496084151613924120464294016148389233615402057097015365315838501875178987723492545163773725703737997943035450051579392230569393184842886271694943598157563449747175437887388993400513945530219452649995237477037951389245093779814968178327860036190505266381259773053842527162717249301080651751301398417259383619032423609808386982357207581331120329348809797241807340643115305068059402719280672604144804978801130434794333553307644867493368410896408057028060263453039593774057340346395041455568849740443567459938086901496793870793894656035256698405021707839221004099471951969787609521967343620188651066210993341534969531546174293604410371897755957731838826761043097987216459805906899683919341565301493844585783653021579298731010167863370921335222685236423323941030710971206094231749394162692504808833993157578751809655802267584397071935640920671016227462087863803000934221790200036922562548953250665930160965075208363767155332294009825901465634908861284668368172082789078839909641186056479490418739145076713595769998751130566088074344644435465200594896322930594912299405556186454368610662469145908427946761029223474476845457453332682217204863491687506238825417573247446139075481817783491984400941394921007640054835842094387598771681528405308382957737660414805943875679433078907427194284819855859300402074955998635188526882624431765969302534730872433113597736916267390528382005422448098749061932053344593418863596938207746547925719461459631285129084925738118702149767928200732993447834998464013415099948294949580905377681722707649084596791842393093959854164441544509777237476001889852316688238342425309167860103048871477022914420582389889195286995343469248996641848667398134977566910087591947050540824557514756818762253602215954999902193314990429764495432464183109341583050155078736423767045509811745963888572860304819542865724471139608410895904775517705843480946912771781798122867743332173382651103850329278311673335702507342884339417619472887277287978231891265839132929502230675896905654817031360638588857713660326586393627681076431039806606749953601889881093075815070879148867241999244346404571452749120580063480189171149985395563590742896997516066917971451034428784090469514772865481992695975679545016151302333517073032300792472152277025072189172445435948952939412213843493821791199058352322129327302891691553907002204359888415566119910640833486527028923004549212424171396888233021082580254816380206476247872710829064496977557313989552536733282288157078013431218520760940296599459055107484202832294950069636096217224335311956746828620135043486834946281600788425491698353338466717585868621340996675286579335795294312477020545200427028206228796173689485164903610359747658571088540778876302714515323000172741281715674924121408807166263802127936137435905290757704809310408570409918239551189304111063417501063019536323743228709260160468174697094657598877425777539916253319176089352257663057425982570544753506007882193753215258243423715798193602278664067805041070110622060320396996458572991085655368659798550922876677607012745609156722281272664732221726030458113774580711040822363925426360402480732607361579294003796333098947018195047887299156134390744455553028396529508024175288450890195941853563183181405785627908838217311409996781211136794574559109452131345517829104414196916321186916483502585127476670455777694151341294992828081960619504224537793562032633378905064832025350871722182372913549619583365231200730359968489297621845953328368432020193641213084003032951244459337179356493705179946362769503477733460906493926114189941705058985671649940110865153284467324578225164053706936240438433393802224352375384541610989218243296165448124024125804128155727464329067122831784391369581057846461783360461950001417827906570201960037196347146231391110619055355775789819186680307538569280951200903888406758279282117990095738864982857022393364942694746984724413476566409513707383929772004172449236241935890743342530073414567459495396901497755205362467835126297453235593636126949205259742282676407987561896034408995274184567896278033222887070829949969070797736081586859422025470521688965547633214924848029913972929341477800940203840185919379072064234963999629672717713454829171572607365864622740108328042572490179115289624122040941823429645724415557840256982640200723250778847998245958672499880486063309810716160261100245576025444766754706203900377217147088999324952173709669683192791752756665637064506231890691875396388163293437494990596847707633038393676849156209874132928809154757566818511825990643948965174980253928486750830216239884746432241045377456090983777411792106240262544100403143544597189926499632614861039849289824308035697643972946634513266269438872478157347540850588735123720390227018025191047765905518745574731660623703981410714005014338521405166464317105749349073523543625018507047615598714623238195388167382508764337570946710917846161280393805518922273972130656865519266635909489385811193543567419283475591384671085816949043015242678230296350250270496410288931219602436088966158117940443869874338668588559566219441474889310637031778184287166310062792518258358283921436249284474762138145198258405392702441295037343377250009590898247096828265768259721672294984084279643384425018673367051303241280641299158041007906599511043800210356061629054546765412971408605634599287761460394276655692466783006424414871789372795003851342930739610460432800515354035887500734599600847715025950842753378181615826764394532502894474054149210570505649515060014348766745499385929004945507848115091723361777360050884219046581612494444229613188226486667795310916079172492924079260230367668686303941833681472346981596356588680422299292562882931733205695762614333374847752607249028584974670080432384892484279996553839447588793064405300294743723601004980470879031941334710101168522356771186296299986971873626200265393678999134388468797629212645060335478298640629712915294310621626385703654796289576280506988698828271534774622194682477865938789812776005683850181012295393483736241593887947677271017536204696899586994920796005312391251292931014322671701102559651860373629689734441649541102465044487971694887924564472193497838234939748148205910278290556196980144961813418151630396893333674106422915123680389715074105413891734737741601168138314102410294964853108882009092813717739247889457527884236156204525295408052705661649507998112335851114555530608119389202456937024401123557086930065022071701281006776938245515883960147341177753020535581596470227600898874799948599141735194159802422036616749649220174040791795929397251727689964800912259805321205205223975631430795246016451799683237317139447369971683579126386312714518056481557487130111688466845295950325596651651984286055525877200131649042695719184991039188722082203099721557452442106204284886245889461262009464672975823108760772404156474586497048964596465929142067895091966470212530744658892818083709712586581575295647066198390358253751702128234913773928130900721671278676363633649150523258316136657791183129415196242720025765119222917336170509257618845418788305697179416607984715195359682692888960273216921906625121311783044109700378623139700565114201612632728071993861579633422389869771161772142307224926589749052922043551991470726993599431598059882941038684331628268879309290855525061117442192276274607812920852592869351785477166260198830821919552399389495539280693050712855730516646759223810019709986649618563030938206387099098494193393292263327330304337017978895632630762769854706126197889080923045350695169288000633946254627796152955074913028864155100263860235529471996498218863901464668461772793348418285863555886615172543517997037305363378408382015787157955374719266219484139418601988897713478701342886246252583850756272684890729414630129058908230746323593053982045623474546573529096183008160425688318018329987892434860349313051907642542077647816174940883953263739423665654030522370884806003894776218770934623552489168339448518030166543825917784357989544433452040811078421238249131293453714182272001981883013076928991354458299256650168490404887031948858861480034924839728024329333670818756016141352571772583915403217193040166808785510882288061182238812812693866402865290007594952017256893204325380500922622372078688500974761038550570300704621837385155294164254132194635240447185174315999453133062094918401716907901784436832154851064072435089810969092343063436696106133611915507143633969334111513941312496442595110203089987940805119962676674981729441935695189979805790766081583989743005832840904199312789378458170082409238937814133598682168595071046909638435429584503590595722891235785391030583684497285159634908347869970846983052886258131793094224023236852349768939581557671432320220579969555778278337002239350100449909823771250693124895066343587766088969357148584700870750795375055076263267102813259777732735944480622895901132278759779582185226872920310545787383545459424253440101353279770637956005480226291269139206699297154999292242961992916589815745852633486669953077194066477069044325400413505872230905152238336417951129918394679873730827771415194059185143953350188925038710992667716807785832766354458894039632257843263209772973554373591013360967916658635880829845924674984761012495031155548158118912484867097787320836152390031557984617657729251025953838255987163564475575123298971975961554600033795049339816692126929108575894176488503021006967876395107978303580207497569625803428532469401360872081283643020567632151065361107485984590220619686899548336204791552379058786860435556355854913175806738905626168352928535590557957337625815717872400600974260644043749387910849613390141313880857851846148129422323556126866207429146943963503925221441060058613734930854381287373589266244282377110462019060828132105599736590202586386624117392980826428151946141696456780486042873348356276135840324942281929547052303501420122476382189621827463475667590451097154901954997273088881716218611777005818930221333797471478306469381037771064275718785827581996534469027236551411971605644565192681542812619083474578913145424823252477447165851593483327952147005586808667133350185573702638661373684064714509570571870814311210143016302346287599856018957730904357982776235472322486963414950403555397164603896980406139300427231162701411010285117503596418564579264760771607359314962626461316781387561929205506760465068949269118043516408313393778191413045655949476323689004982970168563169665111390110094584855904214827955049974426072924839629649481612005718147574819718724030641721345793137102561078597103679021924789884363075653615448726397019761868535237510375719825568881083027376567567613573027093766008248150268929088185456030605820619506812148242710258616395592878413393342437752435954434988391414171789853990141211456669273682025350163019125278280881774451465824396772537695509341985766204631038070371288233647597406906712267173264790636825881169048005248704362806807358670561358684483580370242963596799643425253749437336921782382423254243172163080329641654822782634663579117366444517035355475800274926350925764806475892564420352554043435331586787044872969218512227618051342653635005135225186357807229808348601767799695619250053235516027418965168317879721443319064556969038531177595139858439768831023400630631152435071587797627346388570040783961288780083056990158197410801503524194995233995781373064803879823070830361499012798230774693367678940146030184455914463145939950384013422684304711269867848608732501415478931315524351987215449696800971878971157512606272518899108305454763622366980562616825850205607199093527603480635758342137740453407085954117357582330299813414151778330071127145927567480231805440994388737716350507097016618300413384778815232819183752015849721540537337685267703929385192865573593235709354604488832643715850708799855184229803345840108463064778970183306380373422178718017946648262430533824478353221784847165226550604160699386259215285512458738306353129624157448156033315262826002791760447003776785432335540388538731489159160669384245607519466299386866174255357804810260743315568226687946510686933709713914339564563335236277768354147810275824242652847652721577201214773399102686152631314040315603844010664967624392139111824339615175401127563828388242707608715279877768567197767232218285233838819490454567820304289014057999313080212805151091933294196596017843464295337607155697075009269700250023418616040235971997875600465789100669213673373116177776808460422539673216582735555653776437431843105869928001763268590895590561520678319594701498596954335764963256500010562331113826410626290903871273909707976451772624864389709876012259153730085863186296459940489270342405173378153098844262248867481433036686345361038509602832363024307798830470743743458183841660532313247819513768187969903502931199766274252657780604189344449516537496144442019122736758240695901571480022506466652771815832768658902880586784194702705187280244755827032756014595304325835222909723392219807716602960122064284950039812845642617388806571526460878953764113442286016577364071757797338380493224426898374565950954441854748741910845153098452036072796466790844654779941899470339304182092482811077254702997925762210722549597930821243444947510377372775028842346334152189169523798203046368822581417224851296210580080819679492993879327418711213456222757222172771787138649908336140181280333836782684692282305502873224182370130963435297611045432778371539198386967032917788696384839860323180749172789004310800469454930019108244994722820036028743932424236052760925231880403819404631197986716400398901043209249437853105611825587691673270769764016956392984976007282500575113305802670160061861792731968023079371992357852673672047284661562795967503375688615564009006202867174017385818091038673386584511793768515202478506980327903524049910528902643767279938299013470570369604735229950616999499395405469207069829420279558419902273372614592660997830326547245289950680290760161893408090362785459596828157600518604586889799417264326360590814335547893580361424107697910357769241536946745410122258415155646745660363420771682815161414842441202022962681573987839528969606822425059374590321516451028959820732966183272582294208584724209093056516338859485538225787613675204412607861690697768680501838178979543853300869879237931074796888364115598556586288804030645741897255740531556375854237189415645361065957850837940200484256405949438400032483722963977654764655298576349283183106917425846392850014120011080072353214773169642645097530022793526079660713175257626449380771222263010568979081874052137688292004973801265030738050668970381626596263632279044604528007309013526852956723205741082970825759723134077468861798780496337925909801246407702804542846811719718357676106160920195262039888925815938653099291259229552861591111385927276687592305667463527847327351203059080829550446287839095405039038834534072411600101688096856898496240623661894918618114758748595243977638143446384780091170270800789951664359957779128825260793721598410515941580357516656696214368163732224357475716240248048809957673738550244245304010838867457018760990936788682818037922012770412379179016491690769606849916867046707307065615734016673677575501475420486404595057321819130001913932931883052213907496127545857473466473445977117204688555946843566374499823906349318935990813792526018717735919771613546786223047867086299219039216761492216189636984062382347466286122376471068496368857428427902920122272875488325963210106778607457412915555235380762116412493741805074086407067028253844381249907845136496672158334854852805426867573247211741419696695750247085225442853689715782884274117774028907299065116464581544405663552728341874448082840230403601546973089790500898744358265048136682948510011764647733637866729371903174657605846786708700148417069514744604306392536894802837198168127076375008680472211746010042632615914608142523662239553656240821389547313761349741623304989414525040410036937693683450538285815051119707118984616771500287807567101096206981281328048420216692764300060301033076659620248365351703214898009782223261001410980785443899669926261346726519472488124030079058115703917222971825955178764849706459565728033335780296261387653033420343473916266742116889728468023847110135186653779257923581160967894052900779804897307852920002587654850369238607157917828194456422847149602243702138748522924920175118660580050686936569828084804272833101413245953688098848115405974240668604494278016465526693937819716796450024652345710134502669742647417061636804738873638727571075799025557867264148148798647675861986291910321588011703981322012616349037666805615596390827647500436693107620647975351391234697590478587615253390888601669803631478342692170480764345486828109569295195535136889657247910575972150820167573403944399516452361247959477587939430556291599413522893773787838202374595567328043750758593977031805651009109012973374925752583682118668514365425870907053631851600776081560620394525699722687693726700480053093188156602685465986075713491088653104507652198689077865843996831329887534902820873316195523222396048484714639121151892982341924192128829912298113952379374806546933504668483512865044065507026751386068963858009884010288366459896751889922349791529005431204775234650428698197198333225295674158404383732450620414988932582772088050204018354657473523614263082418425391504814557146183327087176360402182517513035110386963302417472202377370827529570068644821607584786554325445162968060698858263083897170589374337778641393843695071464188656095909243577939732191949659503704534597378408536010078986231707156014798002960575719838431252122478949490885459266353346619753070009161859846370430563984585523230877722350764521046772932425785173681662848782718125016150627102442881651949248148635513849766995643831457710266155864555753736534164598767114865106945391415112081101410799468267995334679399835683905393327407408079811558479229896713988533207194619409031727988590576858796555487324865776365161817459610700414140283719112478823283812245317104110217042583985399037455746439923514777736296574542106190751636445146276564839771454711311193413787264000947471371117306964821724912839622659979786158940716227562110119820516265402277153767295355886712742256248835774853749666861201983344318876149740498520803996954038699924359448499114032415924091296931186823129918802131999734477472742528401477774538400295660535158866148468342440821150361754432735403756983722210028146674831143439297798009532663492675418372106040968408907049510309382527537924653524486682675704222719282161441587477836672911577962343692721027905964805939397010402263275298219313587359651920037392977989064234758673604133633456294611431342990862332386075668897768595878333844245378195737737317232518048064068494820494049962456948876636431677495595940814569393931067209589420435023482013914413918406221228126531340676311091925934560959161222914212447355876301753547900785878724308926896916912572691696796894338597641321737719169916338259379334991771262140734274173209731954478161830863361143274766645425248131050764614372090342613443046536186051695851734488809212500097735795005948403432731609112800601751039013566359993565991209668670725619586979369165266070277390476774427117204044565917402835208275173529435049752696419258329303653085690388257325505179426094373509499670920998253338992150621896184488873166098725515061205260284513256009616486062432099121461474979426403221579516684074208266743486284657958478218648871165521418535426678990097236738826001546445502892133281039871785548217728204807758614224543000158148568235703617574635796810313164227072660561287995298592443834458990764060710156970862240588501907617533618513741763624282484735680500172658975724228201754336219611202849928839047336156066384339722644043939074198745697581918903422442231499236497259883592185353476966359919576070159210269281307840510366731493620517777405670741718195869403871776462292839978899372655193588983179271542442217120087580819985424869634490754448734893485798265641953328853105779698938852495807148785813815995733890891554348075858540152042721329275457428594532174658163145350842162052003093012768436696106588000485911753767164476046499745300053580786463650177915210301409889652271311943098657330755776030598497941531310900101809731295296025938999405975516574890109569971192771209837517546569629644492379083792650758050900788680344489097564531762107086816460719841765746865230521432781779750964960436836075414664536985347757337395753848053600378450392020347624973829209522306068448227772889251662177045422285435363603747608226034755967392307428185985516231552278878301766581050582174940466881563108230922301070254088378520688475733941024898002916275362479949209464736098956693096428189432197908429430422762924623607098877171049100846769843047570034236271039563518489582540708304349307237567637663944311286959514160608066778780279119842646870121068716467134269854002471623298196300519299810290271926266067867542824609947757802342957813194538605174285968325059800820330440346209758175678242768609679588650995316323678917469081292145006835271993945250936231711259886295309512223177912390929601508239548197273410355892498330361543513190574405838973250086582767701377836974015250140159693530722884348438668725059634892526833735476389682683986822356792708952474266772892384241401369730321978314766283785498584222855442437543842250066418402479709596385485203535323963659090853264183476998087540323467779546618523420426201995953437476576601563124537047247885782249603484465301490788788363726307883037872687951059556651925160671891806411286458040548653383690778541347909496911240509917418218104267128738906717333633885753352040116942733112503921445101693678265279005093485915379886166160894773303098329475502883219754421715445872511989572280093427676086502991914355592478215372454146429542038135880446129783918084734015973265937898525041944915976658668133437113132216966985271744652857140999289906367904369598162732914222186190100696837108678078275253787717932510917788322954711634359771293084608234961746007130426840038596141874853937159516713557704307073935407636949814581645912259151473605800486107365307573582496570113486161928910280897966958383274462142708098641395721998535728966864315421949355445783615114092328574448782818562102097708538928723990405756256077859098709457305841929169448697573706450878351419512836099553121484948741636413577880229942746647173587730801652550912907001695308560171940190531806413740256880128098462013136649536105848935131905512968200427888163891464775537122120495920690821283747217123721565623798842725161385901802362634545829019100554212562147262806324318600998558459048775659087104283919617154030264392698419078127627861369399397397162737337408528775958482937391802357319707439497416520063577535028795535506088361789241801344141373720409794353989964580147319012761242668823405796797761656500784995107107568035090807546966752971740960995192082246165319910903460436496569809454417163934364678833324320065024698210648605408593788251617797535238923311975220379467714538647476688625078607193035813835100066115390470978227833857130403383231489234062495434623780640628980543486663703707058615573655127008706133987075324154972973810401365880528022089405611535405974743976766206474389054903175264876948010107558056830560411870952440893992715548224732495338299485712822542163088375523022664548391451609227768187414758574720938410999072590540125453067336715720918276825985390845084145689428175534998497804370469608182973368420450574898663376782744585148640105697586719976466433188087168689816554468839786002013612786845750908172686189370576117654465779118382276958884372482042130218467296362665946687043287567187954608859258496938978248684108963653534225898500296564345788581654251040875843660225065908698892121236952272325523319220891323959066291704609233238675529394481949836694167007326720770311996180774838237485702865104687315206525083120272294327921689532544893508548809235713521873347366685637570300569093482621860155918234793323700154864921517764620377104903945903033624029995833057148112928327638168039008694261866753373261679102406883074237455689013375089142667922416449520245198663688466242349273794498266136340636596889726995862619272831117115660924661050191909576310486211225356791318941152848485606811012031047014327035122632848496130526974615873563115299731234179932737795694334293725166856233924343829235911615468810522204591861899188271069932490572522971280868460884137495439067072767366321889860830587714127606054216817424257236644696602333409944021178924335725747391079792097332097434285604036733957763735385752839397723814746999587895156595540155391813664445578540807097526439688368468859459850337100860772466638564117495098808697333849639971986003908754351507258841920718431232468407905864247781732059761352060333461032477101252818657945815292849038408029391053386515660681187094978613763025255631772397832869331770525033456158362555315162224740798548799845115520502707622105301898217053872489660061194326755656684892113956285472488882027356948980353239908690078311352263052065357807896743917940713115367288084724130072067901983603153079766874303187739505941114806665511623094291989885624048084934709836497533288871083090567815676564162935448621540084187356420690621313754635872756878144695373750043577681695659661696518410503510684748393051820823327994111750581215392688687136728756692207635888123934251457480229559756950218687374343567917667687989179143893681727390880368858113322500804677755683137836524715386674058343917152758624342609645193174796250436114312682397702367742646071552259880301531432372977306973552055470282718056403087915057353829135468345724476057122487993977341326953472722268300984909412561387194211956245089940606207244394226740725526510217221584543046007738409715710000361039824337573190653065223296973460224973593231714312625753372937683902124378872967640133702169358502271232376613836961387012734113136803418403753789998341387335656329603819782470630616988827080248691053104398258674527968812222632508063650322702518211082002049114126564242879262496829149372412343773015357553827928700282740064553744078550384063716190457203401706924544827261066157752865057766642182299161591663049316688414463423835465125748021188581377430041744006019720491571043758691398430218848863544312301945215914864075999714480746410404396168508004438241973605611095460714516271512078684851107600306653182632339538361872219665763469450359099192224419369214443880292917677236393388785271197617226273030690452756352371924400458571341400066773244057644018584164865383241240544234667210414542700046447056162485110945807375618646134100093256986439470490620019702451841915911592110235300983817783552258165032402381611488827604611207754110145062415078967772767401755761042546841686044263685578961448689433606093729865875802599506758297565336250776219949827567352654741296328185103543793356047575521208612778344329423473665343604535052208658558349514892098305947644182933301992216959216608650033222180659840242288020632192195729505849311965747302855464065426616216303380143295368860558365848842758814102713051476660501825633731400297387387867138254398846241567075301521531170726151820075373383828228764334751647387926144537630847792058528262892742558396461854787612132331093500517411195992973452245565702666630414645487152567427045968642426061592108910843992600052308072267026040496862904240570750053145880446174305109428259189912260010983169623351523832683776801649372069373386041300112452268741751996331820460934041040696391468165128607038066361455764728392231368567202764436108203973197102347444113572426309742015731044193015937263742437763731317276000011798173027204309987367960626908773060573700042703575321323051423675724599137668947601141578661565088561593158784124930720564179603529473202223299982272272193600185245150623239564958985828455960346072456122961125426270818709055528906226722692956369685878042207912403566423911401644414949322931435885332098520025648627810290588997355639888656569485305843917437003267694654402095921208913550642066678110116922204567261994855099799547419534721068546103556791335604624112713170150449323420272137316065897140218516911955620316870896120023214402250624977098295767383945322540333484851640934178994165833548591852381369416466761335043887284333788297276977921021710365534867494449695893960097598701511232819690893366001311147626998686739145434609992458112854253413179416620233640193774948511351908808555323095657968397036641629466760229630698560175024436032998981748462084718732205400190489290206484152419547087227591877691540961912782795725101055055084221990791382021757131790906679504054265494228149655376414231555432152138451435564200903869872561329597104622856722641319301149634581227790722483625882124664361983434430626455058782796238611874830992124086146003630808512058447811511525700722066091281112450285174212645670827277707558319351465134175824656471620699943984431793113382072275966305820590364119189120363253223083085929021296123553165813166530301338763570202468395134406245509511330753775971364030301731054571637336571797518364672515090457794755878148914475868754631911890626647598215182901523451965813629406376645362419553565592822436420790862926174612183633953788817257612734687481906955682578875030039271566290118608351219986380519866254937100201210452919171754154089313086434654291151577078358615048278537863960226127142669461832797934679250473359641307695002371324779860693920898026378407249453071505792728140754295119393710839609649187326665834224849660761036724727734027638987506981635197845207016629172497945830718884601471435091791755278888793805970373076204593766665243024710155851406137747270314169964429922944760059218346940392535803294524773534653432535214317245135484728057865284488046958348974587668652964520455361656994668450631504050917850215847537411137222929315902919865411507515731458934039481285678263550427990499845137438947836992168169521941729482627502671435160614463838274665200504152371315595365047863027265286009020589111913519471632244094087033768221257413305950520063939095462892024258617351549823147701268990422455712652208224227241256644478150204023579608529330048442635376519023126091124981674667946490129054480654161516834484120097996412767092986485940923989702914706022920383110258691850236596808475414697136069263963943192631143986981813560534381172400690936439630082204623398419713897206247422803945578381928502586710055796001415442713657155990923680448160060091435768564661278949200335174118742051461821798445550741015053683321406780410633158174166871245692227685865269186704584862688493475859601389380048196062759946121602724613377533543067634889007040343107915584281742807257874361090474811197364592486960475294953194870913229258322167832036811838435885181781798636214213392708849874493744135765575664239072877116831967190276120868422182398910551325776485103108645932600203082850578996501187086804807615580323629399159686459343189955055953173524813081166271377005140396065400963200531878064759794152566893495231678756640501892739690634779595830285038490154002817028518672606657236571240733391590142816998835096385474841312307205631653531042263448566935083077044693706100974515679477349815871051936759414443745197401230090854102550405167840236769104847377032016412987750469937574515250950366610077513388472408700464272415832582501781403427921781153772354580762738407397858469127174259307752224940922767239746418219007519864503321469326894549632698855225057455463646143316765428802415006061125220834468458253773772839050945658618522081501636331723741634151949444865694369992731016329460970125875902087500371512278314402424884828784453466987250186550625022100092140485263584431937528004320592518914626173790254190399983291056328049037091011279704463518420867550185019239951749967097111705576174933902231041364006410271153288716135551662514092467256684105327876862875142497822365206570821226503287740863050077910895621529824170230071118759911851385231015300788235135349853676104519277964951690421749553727300135835084267397982439969671020757046871777240097519417120343797795790983068435914463656625638584359540013967220939701496946231137190055552890826344523018273018043064172375686066548372925316499843760693287027069429598214920202959191708782898466376296026942403728961984363686802896575283330759745239197381148097044757632602947139842850693750534958073024992260519364502559256913340990501821731775755093101851099181586031278108941182835354053025819447337956782359834171606732141441541177239655085468585139255240329026054879515830371530443570931806416683988706424435845250689005300529220757094460627029551964612404397476103588277651056649914197182442792249561361422176525080453316392566741247418303914276661407257414433141616658688998801289625512308136437044956880015063425291966896395977810799000149548279941388603363714762422939373070129543090132988866912762932002782416441297306689839019467517459117296133005263080944957707826094517867458718759125818718331286042151908374176014547160054571626387040902253149055425873205617466460768923019710485201539968322478583473569664849108519282095625843186572796469246108751887622244945883927690666604194262890493975610965162320949253734224597756607953858157075535417809617219350463237231164617424626167089528861186012718801513612642959303499257079110104997517226519100142325792268520302204028163723831923471219607710734967544498323128367736551986948310686112495359805688644431221567296279689933661587398355343709503025220897780761573969455166871735052400455164816249441004489679652263251346453720310555824139906439023817425946280123558847192337479083861652556296773398840022095530638265632411323311598097330271612762412890102597141649001460130700183546618643120584641927917995286685618973396140600423518465485909663539090140860790865256134661268802120577729137615606682487832944792781263471333579431743739101413586681868084927352958183258385707158231177383003529393014377739091119482690305239198087576482333667795680454005759556893689212580437355083718371277027328205447433613152499728860686259586518736385112646131196769846786538249576148682966488249578249885203142237704050720903345927510581117161980003625265680484651887567252391629363863063205779396537792665817719651377864695132979074081774706686866258514472163842547944786240169487987877780959464813428200088108917626593089366734107373051032027866508053923322330567279421045518758614429223043673589943627350651459987906914427916935468582882626436989113059519068257584109760400600282485658499744020848288300288413160693462293289978832472520761234468259789220528345553897159652849641662047084283701033388410000207969130862990519943731275602494727590740421575492368157521967630744620591341599376987781787235763563717161163487050844774934219236241332350971255109811139541531482502520661559887546437351024369604087696881838950550716581242870660900859734036935074299174538497084322923083738317155935021845491075060622834712336532815339553808665004519074587256101570900286327620071195490413069331562662121085223651445300539156848939513114214663011005998837046579481346676644943889881223959574549781735941424722095833659357797601174409921064435083656436861426861536019646555336129214743455009569620872533043190816113013143305058470220153553995017803507473880277585124842283509706898710402233774038621852674768787457178484350764885823337847164064033930960593653563061928964041153890995673657683119796474907103811747456914438490177997797006297046982079040247685585592318313699762637681646204100055916416432492759582159504470272724291413719412575151260069579720885465635964002553747513158595464763074246905246026970298331180376586494486401730957543648927258918106991863316920280184758648898735293050160465850759625763576318648543344294523212196053125515358772997461142051274319091490336045613457474033125242520201378879459550182750528644094829167961469638913193773698922138644895793512601324771772806320306386845901778928553002114962411514816314045533042608358883796585824485708777905941745658703655321959114748436211591045528700297670322788870821279181287180956290790887722874232592434492020814525743105252437045564198882378252252188337376017449437102720350831881311307887819716721469726084811759401961094980982092125265217439023134632085323408507177849236428381883532864459593122352035971252448046745892247641986588616332260473107135200799473784529857652497211499412055418462781600888825309483094076476705131122080643495740673805161502515591910699235897414052329731485519458632455021424315716627402642583699542799831837117270669890193173310243673485416861042282192010246517448999686714925106195692758377956917223494063068378446037923238966571556951227968547973907539932504562774559815961951957542705056936678285593136212979598803749972076497524159182893666250838424846737852302650289978922601691611999112398379882215854284359645483097135700469327456681343191013663239395857685808304379482309560055174094351805731961771686875195634099739070809040901983942887722729257224085249812964982346613585910872813301830289733408885945770173056179783575520724598365964549319203760833752754631502696543458222299505073548430739815890841562870046278344953673975304466996041912895429222738249934875108857740444794077799954489908820913996632980351223849216821459240359350178018187152478935989214313850879423444534795621967885772089362979746633462451279474831263287410379654242145880247030694555376996055105719307706981859608086852074424477372237746444807352151705565970878462584937493080706789312635497680495203427164271776758022662573566982601810326831426073013433309802812932904969337003456434857615735079190145354226235283070336911599020001257619168632269747606520090431412938075655499374156347969663861710563117331484048780762409226632570778804788345682716256755120632179770059496094827181866674021170641231467721303340127542012985429265422081664239084795542581031116323900055182466554669018290400176031672895303373429144925102863283352372408716498204948791499002705668965742830192052011332054975935762192656088683512056675627399696548941069513489564777854304172915158224488234432549608217784526334949608804063705712492049795314867777211997641939725268516756488773307851469341108365913432110284988574794421736757123440954289365450478709173146579870333133597892687940135551535824752860565487486442269231489594418023804396520243254831713387107472799985460896980228305440361751140355512328345662678819354770493808102675623818308049752087928012931360051778129625605664201870671492691213593274345892764494437654768705667047490561323164338270317835643132289468900097320260314318049279780271329811641969868665580214229136229406574418942144036615053818247534257827230566654475532958282368545299267056505521137173699269429212422421435604470742131096184783957336926777801124591140648222056253172759064463130537916374026363046946915349964052404803614543155471054947596477576259374668941890419793185935988501077423023118095006534127930556696606186974314269511744767339581721870933734242141210988066485955316313307918697384781102324116308824224783081090470565016670111154002554697972133360199573443330788290676916207812530458258397993002182672693658299702733778810107246643557369837853199764334848873022073437181153592462150375046554561128036028924038835662755183299469761931328423642059194999800302911749505435188065710371332065329695093541921844606526464514539216787655240665256964659990752519309829886545300812963777919071238442039415160272632565206819707599261538276724352402236574910729891718666361551877498540652198192647518909518335079067738131616981625695562737293034409545061047902926875843420721663422553709082210764265900734328539633823049306130606462805943943580975512690398573587335543245168082196698762321512916488610480821759544057171756619977589707720207045255729822264029386431318602303903288841170360221011475166455044743412654971160999425071265351576703654020480697877533114258530681853525960612038239454060044533951870019727475534569749931453999471573876957489073796889159504968431662581656824273361879006161007229716878065003804002675731561449895889473786982953591479449426093427638919363183703919666404903349033528890662012992131269141749800608990103079591685917207603240250616631603239526312972612739255574631612914336991897827566593529010017652724412870127358038793938352442491838017252839642633439670036220701272531619750958031751321845475695230440314782107438737064357950328636298510907480149478720457025112591201807055757073177737014709892745709292096493044593723513465852186027502403999453981839066484406477476966166327245798265508141277767516170041375544865549527801284293328861440996805140722994294879547096112117968716300229475492272654763856616125526447797631841762702013391586497845419214354511823840344889608927929138562895420197810570583501823107349292210796294851373715563878138596360858398494902872302891872521240931071867000538661599558410031206429616036805743909700618105723280501395512904995090328097140130678568865914814561550039729587361449874812550139967279910365650319425483581477508028167388283982631558656087003449528314119603510216953070899415476900409976408521170446638793831178930142381279850271017580709580721276501164682376790726609221585401670302523499539065304102479904184241151801222219221533719648488664606378157919106786802628032133679666481909023597854953013827452035561688900168462756219761497903442184306481748759175710658932981267148438971468325076132568864967294087788346028596680183135640355630027963435039711897144016132339367820839961206021248773635090399024918721872387112753862506799252911872707945679002162036589192807507937160516651840588346142468587681546509904146228773285162833795922687661032739678388939964111631871574904248624737828673539764117087574212144230826452482850622158381620131712720817000321395381424006940401034071626222514058249985715124575393533989012102315581796492019585043512917761674899556097159182406161665067218341347441683635961916104556296566070590304088964566425678941539464642847426642634918049532384498678402309821537304014950901429461163855756089730169420798453352197947456035460865851142764523413296376338570182633326526992542250808759698382255187347944782835441322177433769373336764517043063658159715131013277310998752607056173222143553785912486849543268590428151333003531341127172858820968591742777183329983340739826557287538434161121370700299155727925195389590318823209721674902778848455463769807354275027323237151279168823460282318244368004097550260877058162521681324220146758845326898317915399333016996415302339121371849740770482240052330558009831954374420102946194296774813996527478597994325756666080554182884939823591055552804605158739325013929263576920927854216180517811398367380294592618348894742442845957566286841275453644131474888090870873734803384759074139432535431654832901212026598461300757518733782564969369854264155761636285132162017511597811169392580505882568277828146944210478196785946316979149462994881386760747778658954029963349257433840815206928716502127173997065919734976665887232249581647429849534826942101293764888672167075932364165174202838384595199726155022084160109199945299232592913909265143903272647630046986624144555541572607860843263899586929496954809445314377482129831740643402665962935160515357284087307432812399248056775832029678033148343673316197961149064587785651447333003297091192424509622991717015483835868588931631435053373876004223924048121825683511852316882351573520505165702695305161004207050432835016023453293238397062349103235955831300184154736401935443074332381125728968585646625031649193312762053600914045930515845663150836537507560843959759955546315740803545016213013397851030583930638837305897931505492520267690763705726464240468171335269446977254469443275073341047383228781846171046291775818793303433654577731998441224257750639793019328725889528842323850818255496484004929365030788357872665884946708070571560935890920251869165897098036489226852059253818766934203946489159438990919745167081756815025952681502852496822750484424334806062819107790844068776112219753752687771937080103138777746307059463777857245245720433941080525671357739535246601869890052551621166244960619529134060231896048381319586622414874450731498060160431214483941273117948534573649658527357241213525445261945121365305071157250023839021606886401455524740767411510858358438463643035031417057382590649418688328333032727337557996922561163012164626172904497597148544393803963297471497777605767608106690594661059346039808021883542237555119195523035895748824025216388566239833897828063136178288070467160232014392264793864779706251283571695238358360842865816702079857042779156753836456734695674760856422543446577240287845534766973155670415590677516849009919798143977732599677416149068725964993534261202514470103091435388034675293560151394321105177710209313963562354229538478016956475212192210473293667397836162174481119764453022881292068283354545201376157972398685272538026045278954188717602658165914061017254125579632098222750526717093206544847954889053864823952374555382170045059179736556743418728197670431982428363301142200113623441760810924654164669830095819844611433952910019345154953319851188663079565664578186854166178091606343559336600735300438230060619740961392300450421007130412713450729860871519706995978068138603209660044124554906054973960179810855979810576934948783095986452530745661557668767826995187981381797086667260255234752569124856891811228561134248238248246060747251165545727049054778936052368854116291619995097883081540559166758377528359757574945463577996237232219937126905011046120640202829379365642573382303805480311354045206384598477308732299045737229446496834558805136954881887111211475665101468817617346708590103951189673681297410380823875627985780273061190898775643507140224539085781575506535310193561473817566437363679826789030553038082308041201666897643582350014501392710895128299013283105377639778568252655574759323944831834546903859395774099570433791275834091781146122717177760574229148594542565361302483613981567355607407486408269096699912832641816433437850617928606236642955864048518828494173581880198502188957858228366214194474708561229864831451745456026194222591936580517849536102625094963127553089298518165084404484299887371598886358191588986277919503798811021689880133641760369450123047043968374519349510389080650631511568639047938319173956546566509617591230369823136947707594365347221446532706791984686441512917843311638868566777444796002936552502942056413481020267550998836431285469580062249093801065505312331167072385504755508310517126905579141786142781974322079665991423832374478306302180894076407214380466584267739926877778513044463358923481083462801546901154180268878510791634522181697177271632435452350782587647648355964049321642585773431597257911590204992127786220030885253137144477311917128813975217116511726006856406903285496321038973610612320843816376303479573516610343963197918787124573238274307376999046663679511675022363641695276833106650243024870639099742953610996408779973008074692410599965515200230245904179802394154676521818078170553464430306769390978038440351461768679251434933572787457305480816553697929266607464603915173531636495511364715352930837679771120908402182886300406553810173206164842780835937779340878539641072413227054095731748070501967245276426303690374272924216698138984285070523173782128691051735840417049979631302719586531644729700823034137815706501042895833155367164944487678641953147436831278663587486041254985495414482157348297471515260194390045993848838138541210594966707613289265329838770810433498440039967318080378221181491224717812177673300374854170589706095098488692135999737089022227555065885092076167051215673387957415515273957125492148458157852597438344266833414661790904881596556139665428368703153411435249412009206474008182935840309777740132299070368920741526511207487047299224457505194855140017028294565074907547504915297073656784476581178435663142348828920595634127242191909461596543916883400035273072838698907194163195288926736859997726877165682303689771941697837271172090850262909117666027822585609842428032755498848724781108809024413200648897956208323418577041280115334870179992617533641948064828281713563652622417695464208439264402825917843315172614718830631240156749630483950416018918432110552468738180512804925344917585917110376509583469002066798088451936877831083609573014489810135162435854087749549256109290676478364348233105320473893167607729148818770686098936980378457031563168631339032587588352272172148187763191037802386067245184549503130164765194401470061862224497082395392058027221965969736721419772885407412551367592077585860968708263932968968234336852646644473031049726056821374462746865184400688215975879386712433876418595435144780078746616065710047049754898802829670193007973248272192616343410708785802908474169758908397470900841336865737259248141567150866357456400136073948771826946754391708107036519107733496442300314738315742184860779507787680627968440470785398574996745455122731368441806387577803116024491446474348070628798534404077681966760585014823937676187869508767707052732176131076764031331014660423245394014402172872279569394958683032422112251087931394661237375618247218992925301028780903873461299275030923478379507792729492577999273822486866431985511955432523804888516021466165822777159038280215510017003959746044567485052293549554498760584184875073028389926241880024943038604664104148788453477563692282826506986021464723969038269128170657612652070510009822083947585377298871487806057963306647851956626958285791355453963192590223497724574564963334141625094075756915341967168449316791499472726764457063585663504528541927264661064064419535870832243198494318527365904437021423692922836319447126220968909715156512422379525546837455607968333165500035503887434611625399529909654689976065453204117902400407495080581717771927184681071376054288550537696810772982833735898976618211519569413297105204007896884304722098782537031198739126764039447929925166417404568011778705114519604673450811270287386806775627322558904992838606628517800638652230251320125488527844970603349196539062889515582093572360762319253992758193159462611594348265694043161256926490599789353887798438419082318996818032833453140794121671337583805359546095144445320619936607395577424470324389216907713283462521678901780599102793798433254526193474193403605126283678199534334859244625337986002313647359754051806808121936576922023095829343633929420624458069670068428718978878604798608737197755790252289351208400097349552642150448415204111366809950000791982944257505924688815885799412019444456466176284662499485455621484386497909525717898100833879016666708663575509852784486828477946543382967993465272709093152498000680189804741940208989659889784946289355121375364231070402202011515739103754197916174488264289040233111093629064765980064667382290601892737167301947701940550436362848703060268018669880863280311566026042392775480578517795305359217184002674618862603237337223246550195868425374986506279830762558991234515109574408265426277065987978624504287018757200473218032293374304254185840055687099317968345451691032631674218831501158472996517532916598610893648330817682272481317156054494326292103361309092445331635281438081767035935252634572542535016553810446224511904806521388310984080009040302468430033860627651877976997478640759966768776680963324922808076408432948020086899514719568909273799345120770583220189857656268611708667851933732816160564118049676770867701606013767094388601420981412390600666727752757947406459108446902545736332780841307821624980165993414169176054968344377340431933467484484855975891327691356511972662977275978029037018314625515234729123924940179938182092584423722726864162829046168813122712415531609474705201786368424787446163084497506597956923478260875129108557604372756470468227926627706668398158006506315854617150581227368125043164015896665616706831846298435144134049447764713743901301119351826844268784920641702029170678394519986967038085777863974135878655712616613078626407356324692594861700598391359097195323212012060994211770334486298353869096338869884023146620319375556109053471141885818445826902161781941878763430627242346243990418800340347601183535583119242927773793788564266939173860035574563156676134867298696229977797984407116958636929712539591740922300480123598367822632928015582517438236087619266559043446917582239258542414215691107236877982266439113431500032219813088640058217785302792336683981526788264911426106724733491871364530812500090064847981680120863912249428570475981767588565638557523076496825337502055424223520784714996129368992155160275786302994270372598616843297659354763879849116201977718248359323009674335619033157633664777059552353358318196288403773352842128764565958765686334219015988865743633391723672314173446646545402003343692399990349645453589387498170773294185907967064983657121326256694611178847263347180740067272182681852270377881620664144027076967131057213883465377416913822603011393610040480469045248373865634195982651945632182663698492364820874246414226001234848740951451269701580166680274090637179575452503946942573682105425497396834621104909280946626196839919401143671676378566053218776390327122494940998156199138194900161215940103640776964389544347189638948899368676843699557875142993226030868908091387369402350283632754632188995578983196125395896474178386127125460592837049279264413131074556557847964861266449033243849856816199980687413829735400704533173764700251138442312962669742248382318705923438983887287818669303829869422648345382883267627543620453955633470063349739864388283888112445296261443913201770236527587718687375230828432750191209631982827532441247223476549332082952842818810441057970036163596749703218173647812976911273949229327442531064531263481022923943108162771419148971311425795093518082821243291758304736889579621086571799577270042036264137160540690608481545583400890440411218048966753112792453119525184168919164623183305998052443940022003769258196889331593383582676806952327638349527981215022286664451639900711244376877607181171297573633643037415734472763165279258171354887573799876248649026112777482330626552972911522864572640732976673363541808461768975336125028599172469757454396092535968463437479249612149470479540150367573333096551341270529336032456217454963754408266598443684561916191917707784612171517960758553327022193425946384796342457969729540978668313304218310067728809818128619477545688651512596026096836921861971127302448640551951997549173635015870653681986968873386272377245107458089992192293625616932511441277033840859139139675796010942160977833205114367862562543229955565919437385103032157676105243015194645975629818005316022690459492405374046453241408130548238885407594660245320104534748680477606996558651047417869637577631093500634148818368035668200868403779311812968641873116353254550276065719486599959702980578179617123563084462370646582555359593992005022791833055678273196646467761653800490808742227601699319855684100793428885197039208546688993855259018055737872095390766410653335020094693933891852316337908786458555373510907595020898012721841385250774520718508735168707447732470099757836307493354431010057081426897724018067298379588027761582795951968913646888825141528147462647113190461510568644882583833547774884650967070972363649116516445829339428959630630533728012335528868385880089329357428521459680897079271173621439914159752235512884058573711288105314770256228976880325479253946420684534505622830725302618955460222272450859040131247710281300187677831011597636842373225087570674600730130698870300140465644944429390048941509665933251589836893992539716119782028649201310121999028707062017613073265536244182918953014075268590419057924121870502930882247709727540272888749439032062300675967925068754676976771475223117595513097709687245117594206455384577953686958788554998780798106494808320554400340437874559879640888593002628871073750562862895319417834198945391529413114052878229588791144955564401447961659271230724058101559436754716483437858674731003469819800497172076894884611491914831471519841830333112030929636142888432184916816650961155702287080502525303335716416932572344383298548917861625857812933513353922431545461304023082384611506184026336652711719318091928658093215564863606936236962440544283033070049458060985352342458457609177781273345012733592874546275485509860569885944514419378175396239733882955984509964603115817329272129362483547401336809235222060261100215519092498292816890255349057038931017740470915056268470239588882501702509460462072137452519599240770085252251642429338120656570229327862573363823079989012819837759459073215285723967484281033145957972747111176911368207876265445733404366456681928064296530366590097594635724503011409028347770540379518139640642226825196859927774154506323854040013850314269721606271663736385343715661256136380170899584179185224316266835685296792496551289897384154236542855830734329321581040145837596287156914154297138576256447963891272349455139856863791150825739638529664004586203845221830882767437649482226658110882669908635066628846710080491000922206704690167867585953447943947644485036911901829785404154152041881001408136455370516006167844612624836029007351307598661209704791769938298902517080434315401204355794697034859105396647768545193779413743233111179898378766826746799442308343961185152875736965195733281297340021213645939107710821244398467898562578798609159597727805990312686825178326321232242775460449519187396878070902782148805719385754658550109191530106277644471939846192457224698495438072372550985617139785129854621429618219690726371639581910200741888182940698899918191782875032825875308305463556822303714939007455322569824961869646682688287642192998281027305827807349125281882461815534200092523311841310686483949681294513071851389124784598970076773623194102220057234838266518644994724256801421169755490542325506141495088443464726401592626845872492407883872217064840103574494526019741232538427445879628905031489140796014866986560429322747043559332610881094947453695516033180729833037566074414208806559543031886802666549464113433793803446793219332510059115992060829235709262201673873308946063734472580011992599559093886807111260054602372108277798202100925811056517195559837569896488205051615813210766974154692385609832661746670428410535894442108829973643487145989494443305316506155677367798993336584784756677635230967892562044277247102252201577487345386597524248616455375350716101746888560846819763769050527366688295245966983113413606604925464020362517510815220839903011716546286093505813064560134489368912248700793065752049696028190148082222879012204020632063951553779989547785137602382720878640402730759489878468998626289715344471339957811791597487402337513980182569580166222744662329758915243083250053101741635925203911682221501105621867245127334021130210522833115809288330704697630612367518301764551528287187235428782892880909295709592436515243201318463833927198543614607832071217240031229859581979151909992826085818477332042540390000152068080839578734722038789049695318658877320535969032356049880667412743391462586379271333681312791810583017179444046727844066180053342380553883121070311962454290578024066839048957101628822413145201066027626906362699250856695741432243518849785209715592030900096802862327631719144918554591336786080312816088085257478853262629224032334645809625114296271547935293110763454273934045881389549164352535730272002468058995544574839778110799223521541352697381207743894181964889609760108328159285623230783875079674236762124093862146715376927768461631962209896737148771129877547182868209704190250209006455979111465890575761339486272319645885225147944473988340802273234736808855567541273861101508147904042031007852880111232341826620074569932073228634027494180955922704627249232809614623424036535193758549771343062926615000363099020144745796702386479819636414151080735429465383690987087277583188961661721904576246844841570058630155064157879967363436839206614896022296365150163657403021387071784689010687259752372082327051680372541461844000378655623678651936013629151393015285378770168454299906273450560077321093275138848723377310292081735614938755085384945751840403440627572890000690069286708073774993107863287468022378972055871692400272937456090141493469504400236671407245101334533083502055688995924458911544322337982846653676001351932079574373795366688272431069104813697012759199283061641638124512549276028310863813037304053793990152892681918091866206862884447846728180838584901233491897094062809698149882520288115848336959563699297269345404969697116854750622372770303191332400766996454584523434868986783613659926054981138432919902173830658015714324879816693132971104172067905467006536522025564343235411894218842029993926310334510357014493216294093839098530265703092191748754157452825708182712984935240356500135969546324558035906719299217663376157643926031914678215755264560261434813004948943544144126794219978492018331373566739594260593892168736737577539058853358905600388906325730210079090026866119031213723620643949234017875790711855424481731968727834109818236775170290121719056289675114064093356282940373783874034790442583425302657078367220189293034191648105709954924522297183816047362416534301206113047686861033290197570461042991442400974456419068792555507807249709780742352322170742528433889636670263746321229136020353511198420509208981919555855280229243777273153132414279575244889966278462146666123032835985200094160769156782732793845489675538162513965941546711443030357273513618526712392449178719785920136662173757125725288365507457661351854152314792507207579788368256540515638834512637993080264722120354987626100299204354485235832339988282452872012835485774371702482071001720279711427074336358433114489405869460704556443956257203080089160099127616034842310883417884167094211543439113549193275060325705784613406966394033314184416750030230188155402224881165805411070425975003355439028719861439612980189691818915906940118337105431179236815939773689999391360197510542784925714023252632451288420546732746721046047796791984951556814970595372549123427563427275335607343480669213934226685300098109673727856316234543686681507411681534954276673711077183791529778014961681001174426200244468784042201761104059354373742774438543180689082036127031494049003932392032687315777345417814891964814676787101874302880452994441360464858082075807865436771232829032365200248457447174153808685428662429341829738196572622360043446231809705267456001556551665561722917184894383799071485848870197015648233036217667645414032213095982159693961810002217224190602158838497160713275455816135526045684527833205385137498960236449099707926889356817956630753400855318380791640870231913375650361641683926919879914690243789792518792055447666276326484983530036170612878600200400977778055469039732806459824197244565099603605499154064790955322436595853767644545510065221546732199990030133223753508763795059364259833845193211674426028959090949347537048346517036185281646696788052989715228174945156635537475237345982223982240794610791481804310831615833912735774286162029119288378329270037554774622165878061817825082939474148324966125393020185621121284851748570720542320010907960410887016749744298961210561220532880556765533986492440323629810374295501210989290326654931846021335585254238017484749568330904086014377386756707475819678314658370542347235495179285760533982540413502839005209596363215062506825088808075040938002856261829454193369308688040642732892602226306321753306174562786996243819509601678795476113432350019426638881484829709589482956384672177203103282362823027580525487384377972060879370116438745652730574893841500370893000426310698571334989756954270893264582538343552998608381714338756867476575397443502823755390197813482452222867705575638892294969054655765417820155083162166029486741024229617760043913477523403190635235997611005466016542706324057219015151015412251094344466224732830214909374365675052520258004261004670837267426283693333925716887649729612401717028451792283323077318473099891856894083880126871240788120322491929825174625983349120377985017773599303528826588356565267157217198551417790445031347948840244376462026321576212877296418687517727213569999817672143364258132669484026371997894612986164461107492395997056134772508221394349107935005542701347184889094949033902041385187919837003398380762807119276703784562016191489415180757107931771049009591670107635613496122676033958924138502364838481410956977500716313552603821407508405655344758149896603940946587630552120751101883970591935212938941634779814725369205452001076422725428878167309918479438796832274211608448553067263656215703782321663764708605532508391677408714045960967648777801630037848622594449520686447406029295036964426951290502943887584265418262235940428385148567591424558585911826152255721500886750870219905046155030416605567348620694556296270141423838417782514480055400591509059332089814747733346449382988366315204747263939569858471456260258593552079210286121501036385601354460884254911559133677586028724352384962988598692987294513155378655596528397877592019313525259072521600175280087048252559171191596752133760706043925967734653403795558730158913455864655976116554334897851468587750006503870704316295069972317114926514829894645856469270384499839791771148829857286894414021797582061248083440983995146515515105654690175952703369492540874578921906798870957316626214200627155099255853129668479992725451050041894809358002452824477706651331042425021758027208050416763236887797358864599662434758853094122530811476380292078275250477397945155320669031030320361558210549593942145393030059139094910627808666398306976951731263547062580769214064509209914282647763825769418709435044307474705073374070632900927079349640800814080909946633227628753181570003155167502710521289288434680923191087865258241934754534051393477823054984604900254941888834537382569921006578575090704192083529596878735137685841344556784488993799364219090728791154999912590969121766446448902973889928360877036886431851468991548825892347526862514171182856922865182728258633291879314709722622453396770727000968377508743314526077424422968162480377941578197564602490635117116359539781684489785722969348426653862679692999909178073562740971983552971788764790036091777748631943455437341420197864155896283654875207758084002139694128139200371700278650203569564362232827754540952902737593309430232530857347579340503767586559968796482487197987336314098910361839058684334029850048073196117476015037713849459040785707596919336525082839911655402113595211832057441440570719569330203021854782169844151088133725733086015826647504588420466653628981659197071114386527938803869408895791929420754634480981681886318549064248235914122606132116844898192202704733480411618233657900248289927112323629021504942749036367547512911359311238538838199302612279123433632756216828899679385218777153238662393789256823996409502290905601399046677264656442101224635702766913775980753479115475405220849654032519647293058809759769437997447463635291981481364740987393828490859607239659217836866704752012055697209312784487782074883399752117734026022264234479986267046424789810226568293293012299022235873772214259052825579738998740142764077449730181354839832301536705818696643949674436899642977845599085944924682765094522431087629901958669711869718592861106456736152327943727735873283709690498964220934775513808389519315122835861925851258050880205215186055417281094816341765987093499463178013999900560273083030860180261564999035293802861808181147563082170684074127862554528440904940728108480174738492012519641353155793404103740145152285892988727869547596869275483117575072086131192145409563398159568383939188062635106493726824842674314550551393436362306810005300569529282097900383082932252412126029507503887305520861672814357194186957670612156031691143297602479888320986621089500745106632780287036157885231504632980149267293167421107038144201468737077267108954239609746511282903631014535634562317184285016078260383885487088580416377455406378049617935296655317487225079710408142105816686125006200190773335493953669899525034304282248462747202854215147764459174560524826136973774019708670729047149117907763092445865647224381322545707168211906130385715988158809577222775254346677465142968483225011453566237725087133163584172336638334804660211745986319567878480270911913782826951217738570770110796005707326898103361906563939624363702140246695525096424599339596240592434803032773886231646212180171039398476148364844404095802199681024266458153106194846853169703901898957117293154145162096953094802264224558725406966027306623185630117757845967955237974998625662611378391687239137344172603852773435451769136421469539003634449717861385413676479448378176942647289645413188085518774396455913093529585822156030123779894077719245086462890745961881610372097596055769008845621349011348707587635901884239576837157270668867918526562651574973363327122096336164030931784396783517363450562256165209085466161538132603925805602307057161837711301527693048542628997215029113898508991268989113461160617099389072107019156128957570726572096982812659921995004955560488180513186283414284972411646736791128623426871090663624993769721456098912974345771713025470043528782640152941515072146574537986693537078124281444342818078402337179740353611885138508279209447106605088690325847505626199733525901752858749650287879489210439882455350846256985738486093291088036769701153046070766575696951439983519662407244616642309101479330449125196396237668466949471265242259833789526128662082607837754241286809086551578564983710829480668915555999205715017388480877661840665191549233220252236663539130872417018053068571680776380779199806685610224699502621050299927168351447551093139366566385999495881890324497029653254609601769521144251113105591026009948216685827716356554534410366445703095010675187993208072427113436814417123182530992237642948584038486518967562675275632424903642313599377868380297499288080352228480088235297485439692791728815111177810846282861922080799653756465380281416146739200862848169215324038540437179201080761712178499013848241654865791743527537337396167975273809101128775807006837271515120471410934230537324164933069909190059628951458398683461978233033651880260742627286032868195610702267340806090060882808772218538493283435962859182426989678588988767372947332611381932310827894359031486257660168607498764787043869211585266941076904355942772174812691225673890184813287347569726925055174590957328500167862872399551305840028600900820449495690000911658589965346491245972981041463568069273555946950268569341380193465209414386736291945180926822587237480993270167577976805023605777010864140265599808098478344394786667750985958430738687678717040720546131448827447101360683906888682691774556541237280031214235168264069518957556000514979655365421384661549105644098898265635970655099526409015223950844770033039268204366428775710726455424074426740601842161639078829443136362630989938499209351518389437634126638583527485280341354029405551108682154554544621151006012565375516360512905774969356602438666147623108046087420452883363134911430221631153894165017843693353873237762687647740483972539206245857655499823736792173830845880782672261321993198469936182007981584824726915425855333038107920762712043975041012849193981044705465638267924120816738888546504289683178580281940167644890884633772263691984714346497865540191664653488800524718386904187736017981386472204871390367078749134177157626437894223331975925507845642148525842333087743998790451606951823540670055166125370347068740980833290656984821398692213134684188235611269149958612789821905665730138238050096708510331782729568014801780941109343855203158494411446016998724378479643252700484174745079130271905100438894221133297654264922874699800818114838837777273170609530832881670533259999595925204711031660059596758442965716361974093731607094275341721424733974200912899499979315924011297721737468579783983891355048561816357743522065270295827287047694027111528573783181029502746022703563882355856727331047336219251107651817795388490680370622124453661205795585886153834071283536437227422442345039749461682325124640778572549097503431825579503363047140623335839646429624131008971050567668993742706078888496512983039364282755729345258676500579458192145116585404718240383688750543393152990278105988323849284950211164801958218739182010911693596539571871473095519359088370745988347024854662988233138628991403845580572356308963621160224960559409286148475386572859883254130225180666540165554736492631811430352070196223703565606564682764684827159428615755120590620366469584054962912186689838794162175846191400268295981549935563770018994776140535270951591290537306138315646666720874915762225146968224077496832590103828828234975026779966759100289122240159008816939980008936168188607207943803510959203131998102335615661870486204727146543412989495205184532532933235906416720326540652217455069430668712960636278449030058966585626268829344543034279921960329033916646814472807996634500203408293502231582734981878110689712577640384832239909150902679660540782080732885901537287651777913939236395649044379202303232764539190361668340333767131259318311459186545753466389714829484628349621382171909835403455607057505932017342727687931776899945756015408485833595564041141274267601376781924892355927864170507486975918443024292343553828346134938918838206367063029090570570110088503334058729454330562307448677741582116276879354627583018520370680744332694053801923752452295961947327198169901750660528643902338558497457251364124325763771229993147460611014845958225618958340051487492858111975299196829101256337906633910417872794193126841839569014354726385846896610017528412743693388129467411472267153398440977241294538339010135287394190822041557137955501437384672907390020268520686514420998839068071077984896802549906401811633177098898113474656847054915234153395260566465917719454819786841331810619065329111485920921771665130204941424118040214365853256680107896035327780572830726454232516335226732757947692561113256404358998591923914710193894509470124439256083301383111070371992993502616021142333905161918277415846209531176604656287743942301087676281540057520312097593979535795607464668519324075343446627197543812526186785838163591622596425987646500219878719144472199617065550813193578818929585770781611613823097500916969978508760408664085885822598061019903028026482464450927694225564155549442041102581496858734653678100662132096862299726007520266601290814755678787570111193692260950464102117278467344728062049307222845840664245086211288987626822492855819888596598392630155136779276134555348217329371133851650395041015104492230486262753986361374609584444155113912541918203266612303671639600739241522324472091509118906495330141159892684756919544431998053939585673452932245982263847986266089069279173099597725579563014428204906607965367707907345456544428084911969125855118918762939822647655277880655249162019418464831990470341219632948598023206058529234083042269277640922062583397777090868403378653665134334457923284588520260289237888248477978323445250810347843791065278375959038633134877404340755425079074219612068473349134476481086786675300182195273178361743997358708919732832682380404314736200925237618864839294873302207225621024072116634054045904479754615734521563475639868221182694141235699575897594504314391745900498951445953044003638279879328697186798790633194680731343811647090233500424293554619432624638637582057400071906482848653466522215284110815207055048661834163450076504875133514758494802162764632118383830837893379733860516101124832774333763675856885975162492036640590467350282769759021358927001878717359081878027133192575021051700249731029402763564988814847716518379557690160374425409062986142501965780881910835246211873025607478068494105902034346165417899042322197995970371835944692034599043284087371109450520707650616157820824209366971175920727271690836432104647470870243765104453434953309176978093433894922038774020405367934018688736049234070576550235268802050349869212025957834258563027959743788264861045563025292314945578854383649827376969212526802653015519435874971054940401338093051641399709436421632412413064891121791401846100000607597695280706059892892295752586444967393959833217114521053259352278052804994810982434607584480035291757122408836911149359142695464746871795757052268684515398418067822180660945925671702244552851881562758271648562303770452864831137376700963378878735061529758387969800430948558999325021342412451832966967687132259846102405100385265511573435895812859332767840993035083918757402311145245011778365472436573347128857599851013182132342450428111330348386355341271042210958605710833360051221648566184927305256430841165720696537991751026126149282717495581013963305358466084800737368751994240304335495159205241882721293209320725917989369317970565935083752095865515206697314463492800542514499246768432103442369674052411929255141616841492880269968886183232559991667450360127094122233915540968737332140196500272089452274233008326457900132281455175553379123748792688375590292230896731581991780658226524647985595258852849023908675817351011278229784607107627658961969094389924984241548236482707115332767395835590679094378133618921074563794549009528318925805220948884704947243586307094494672546921101652843344819005347674892138763714546888277750374282824079233061920409026165981747539778822514953803502414400213509229608954666498201489357466282389045399732534064673258213907482307581527319099888018410266964795111379018879500418893141725940185052196934687437657052724481439570356864995424597094373228632419369613449478357186979883993014767688531193498201571411065462896889865046102449853213753664400292363531357400890237035560380327180216981919254435999809954391194499941975419463851231895828623642532666064373233874621947749618162181187878734305655220679395992641207590583987473204013657562755548604689719233701332569531079299289681034282453249499997170441070230250479242689281983188539437587739449534106849670811159066567673153397600430037018724033610454628926660051619121558194022015244234923732937774946964990721404721948245521960534419172727882383922814157105608060308408284188471827798641631535010481392467051677135518177231647843703855413281844743485590051830921278220920632749343037283733908061076746753185171818547096215030222191877652068367910365184407567953385099056116987574760813457161558593522632747338070437755640078187518923082908065464377228764956629450662740754471301204530149399756945165252395163389820456266834905059663761574132761811558751263375193884114203623729288102415667447652403570056597681836562338623662456174159620570491831042906565588477994287851665663119644672539516682424895593140064173220376559742147479744160665359971587602434610099795744589288506212638464437622486211468959182950569059296107244955304612106492440067613942246948041617340832192792592222146347422393520981554277085893268644951691836985298543298551836452143608888833647757187340666654378169915927164809015350966845858031005201811930956923109866347400995772778864150056899629515957395113189534579378174018118221646731059169285634562807825282488383154572282737585697154026921496085883732368636322634743894672846103880250778149417659234556368693996958070996204448309412083887025741985213466194575360664547170812594576008501150630199725281393254973513415741668868239283888506464430066294773275844118406868494294307290138519447819103109683715723308392219581433433948295271100002127037921873076743042360970190141730627354482925423388226738304058199792896334814812216935816251883382529356543501269023258340854619438002652133707239829841029711540174186324369053141666728895072681102462598621467649759950792049356701066024744015147350400349490980367622733394669456234128560079496372587103870444631828355242687705607680196043646771641800937768811827726671998584041982869958898826049711918201330425515772141235774357567260976275321767159673208460094585403756058557273424454123779412306017485961727112543572082132094986152820225429856688817014488833697940800155388241186080776537743610529387957394227373739195301961073580476939597591073777156686038907133178683819054325847782156637440389140769997351982168881505485563281120261755033813058957552444666884111625435026337665771666772106238495330473059559020527260449675676901664089265523657040243575605384062425539611865123287751018993398715447248611672376026882260826503190232793815989250478147935099423819673763317490547493415519921295084798747540907506624619715843462564288143661647826837462665533148600561537988752662204198988751486452887069066173479323247595873654641824585171599113251616601807158969341477224420106339197023861972450899368956919053952067775896464048789357916013677911166013401670159061494088107713323880408657649625648564595005835651116006926301183843085472319504623173082745366030862626567669797651846291911745829989694869174826902266708078436116778854285752057091276030196353784993718634363458146567192257882713320398555006196950943398253843173165827053023624185123600654745770885084817318541249815334284300057485982031601979318626634782691927651792847274997805205807213692186823782242692832830742347686890513620583901889629582584309260623460667660778795211977000395316517471066358215675193694657693735845753344709883877199727821097650528017884057126578479473886530645741854662584164719434331810228159944974679644950784709185264366321008463286062131311654772523582742054009930616321532287925226551875252461785373532511628785125276504457317823395608769736053512979404709283055982027944035584784425926259610073468818691409844127342638030230116819517173006359817860502491005711473864659388100074599507068038421024566226496455241098873973010927192270521558290681192037245525955856206194667352003564861084883441946628507986167389789492997332335370863543701481720000371287584253094931375055721751908954509523405183932562147887622878875425393934383245558943028034099762147157038085093408611994120951051025755739537472458949473911871004336707353581063351688026247092638166491994602353005202378853913595228218680158164956845094610543559834599920353547197604188899863096318357763702003533582944819106189646566397323453373103167346181110888799680103886794275396779243906231111898022701523806212996760713691685628101288705115040558521395752831283383005156226905379106141719155207547437875023941183640865306928314550602921855663945743509883989307650447056370771310302157440149120429891295444017921924725517469092360877128563471168799735269248164674235500100081008465575657457809601862183574677621304246398323334567719645635466133004417494400714372898817604050119461489109025909681525953732790884433943398010679574156529390308634858194212604802235964636484098668473118854478037860800389439308769392543890263161945828532569717688333048775117552492207840210961744336870403246112943728378681842306306083360446426038641785663340613884959613205981690175151505007806037033654145987422736085975198007533363345215857174718230158811126027963236491486946204090409872704492831917182076120793672037287908011811964037832118859106961125045132522480484722024281108160785811407896206581305012410627576325646646652642914351315538533877369253593968368996083702064484940008820176118306082674217541462083246999825729651292822993333030915917500118547842276971747276058252208395866582852872029349454554484110469513694084136005729328079269572461064255378735902935588381684436226903124603719970004937122880889163085364965566624705502372267215796255418771865117455235071806182295037080836703367382189438654771804099068076133184606005806622251591505476500530644574255724424076500869949391393250457150728576291291733906792643116714875808083430768824945742297464680108027593554337579225072072587780955813991587544120250320857528405222404930232414264598208148437856164873922930656744203215895515834380967214359073555345835046710566813844867295786041037150937978627877004995089609620085844892771038401232865565475016476924911468149863112263229721236854340975138971649229449314006862439990011849534703548202169782973106086728545672744314334399234604853411829900559342942964239147203429542305356602694751913790606184147888080249767790918637142719645334609105616039924862654804834557382792854251348365201330215973396825911095253368804996557404591493285968544757889795342038516844948821833470382762062038172679370300527803414696642451818330200700430425246244375358017112630179982835621166412228344266561957337668966982925196239744656258246636356457042755872510420173884054354897349024626638094219697624889640486474019301372463880161491421018675201063956361941389303027759082039133569082817748688693979833921712588652829040586382665471924679263266211318887052591772173084904326823369349113755138650550113485263695146697934166326355118358079015921055572936952978684215801105791774052608826490650694715258085457608213255101375985343318666484284704938307389424872522521848037509255565904141478917024885522743605960633793032285668563754357449100836493021378159261687085529820144578072727967361053200575954023539238522416628220611224884648347381298511487374131996676945093184205183779634563850912793569936458337860196425581113311260262508131333954367754909350208200839089786881179729196974145812032657995754694676275317674534596334573322752853605321145912632803589590564562813084651459914240353862857642076853288301234673038161056292674917987377503598827183548920753935446490002101521819769835450217167102427433795236654465526462811867890002502608095331789367734386679051488559489130729271272759803199845130147118992123238971005386887607280882802341813074861892474790746687712149532476278670476274629840801382643070484433259774849303643159788329741575140307374152146161826513282635865841764446754378283166135080150735334647953885276000648031317970302250496716690662593413377095708786499694361860084222544494978381502026264172250281676429632066482921227549182297915984171444740548386499704964703414027953501985050278940843433830295222243822372990197791526820008622769466939666014540736287432953207419084363214639780530313528964416765077187808435084228001292548893579770797072094397508931680064400475378856639091364956955698559143196831426492355172559360251954821572974650954009572717633622404036968196534518079567201371525623903518178781269579828843405368651164810654788323392293853123154101024864396716114621310994233819270883650762621909094189308226703394179566822760738649882664327749070194427902387480499886708916024411790602599180526520714303784715182890596911710836056402667856168288887331638836279862229788053677233946468067536721288262427926090757878527997947061658202275479233077010734702767817218197480787069223351082093337512605673653661007929082146153672269615662746827973787977783343004856207580367927522925517559335219351891555589078197319774784724158654113385596028479015046207478129090903031770052958478412723802077785267911475525624808455893093267138681782209955518718738851343682780074663109144290358034540022173537989938445059639726283979246382532922350950946742893311168951718902879124275626262001594331802134508117214812930520491359554001637079618462193178452497204451507911235630556158281710225304551678152340032144886472606604959286061456924431672581488142786118156889176293727351065371299066612223915835314980421370702968432593573291001547910886292079616201541032491766015462730053128092907685400481629928569832582709061880952683232456032275634757797344528561518358296905820354170750446365597433865360251219995863704010101013125318974157215871235206406133053022570877547636930675217935245184303647776043563672054658482192862133997797161888746185223557419537017418049570782233238174067615256596449049866933869077464118073348675568468382117957449417217925494874529632965950313929526973728813241379769193210543128997798316589385392244705451715165946013386650759175144695920630553627978487901867804024117237153650911997538543425280922983826994964069924498147829073719371688245719070089766134634476835222659890260206107644001642807956692708797361003345707037460257308626916835327193312808264508376223848729327746252437251278536310909335504795039965132423370827243531451130677191309521114503000053920320488204079695923980397453079694217454365929642916235072636527814782748203589551567758041965517393314121431108735673140075158858018498996145897392862454122399022713934803909552279460030396970918886865407527892600187485517075624154488289186567777157890944401346920238279894877840889367277890932823297396010577260419345183342912458826241768150200238837230257081517657652091785998191825961507263617145680609299958741511726307170755737229869408152389974357883780356056113105398542260758135289891541405348505552309096876011015816715894647623448999912384549964624157781571132607774240932805775755726699548633965209202460360097327690439490127265061837090950254809526921926971384766038882939574799666606786802337133166252153550449677765541557645667280400605276090088508919064635403777129775246543072615267327157971121339277289956549998578754659935037297014306054462595553834273373412169137851805935328910369878971022742639835726026597219034294342842593470649558820291319233443011112390972932676211047019635965227686812367783223977911576721828504957882836309123431455338454035128428547988050403194363481105142564302951548721616979665064419055001655947531137899968974506303610072755385939826799536621790844935239812853314746866240467163607490982276134470330298553109238124967615291869569813687915895242597565938274405425262166873104545751377635096481175861660011090176392604590305208976040292532151587393119105401214122631940360503409898161933958040193424598482694101840372736199654807286239659904779923174358472239941354519822472583117305538406845883670380398690637552520934523635682239865596303461089919402721619140871614214598196395298957489265489922924614015951947859551332922720288807221511346597575466055652633932293280855521260718697263004117506285111030053540971114983581040811378861472012211901017671453750450253788649432712868051757170915262972037307089533209695564686855832401851374988483325249074482250807238216098635732979342721715595935561464790087425834310294117060758220705673295646690779486305024696189122434952450960006267957832804230230855306552711846760205534075133245496560665362156102908067854200042157062012201900634202301657402922491868022547782248212623156156513674532391077591823229147618686597636650903541282593471603352075461594235809226011518322698156708796941225779552401096582572410884015964480358452447537368697257851201278567754593487309141261931301134851213847673065322133606585010644512603745938528317775746331036219380754621828334888484305350171548366001816338011306760358990603345848211401987298131312629460707095707771368884736670463093936683704391288785079107954108455299112595681237837529228163935491709886465917782316007570450275881882961177701767447936733609519033027436474394884207591411858552005864262278466133785753661282845179732408571666281951669967047342689625801576809677858895658970166554571618963639629962005975520392982777357095197383782030484291519923597191654171835168074897980688131527825256004720670949637339670280154041706044972758385105784744982898564743736508235087986004765560426926506411621744560826659968958649270295819218313705915618129259865911701279495263981568481843114557187630887167304588175880671195197288655326204328773593632780118273393365326384923746752462188054387450823077559105092205822370759091371209187441119117548027825658032242055906844890842738590421379013301157575408591021832761599124359748528463035583447790067546689661031345194095415830280105815494337815264019800795513686412111595342285683268709143120585183795482576496268683436389883847376930666275913263716592276507408519729761800409862193001196590591893644763435967901179433928468603984086514382104463267066059894123938498091028112207013223717657946517375727836923626015156605929299987925501573780966349357068163015278349709964125663080125330403082802221144446425802294797244772509488921048285975542096578333799219382761086105889549380921469926292414901414236846941905772370386189735116449612306194440315188574878451238894287631996310726421251068454429047632034209417011606873513873741237499194378916527986412087553172308459048817063046041618201789217156250099797928751745577318776115576391089931569707293542685063629174981965386429052616170005429394182814019415703222992089997053908373584628688869200574922673543403476876545780208805724621820600624036021146672164788401931029022011768752280032336940252772076404348123075777584462221141485178931460585265314221843886348387517737901115508989116917551924632601559937412828205752262604056471832270119514985823341455740411075334641275729989406729288449574086306375463003615712612663815377686622608685507784152827728783888351561556015889179630408925294168894515541175529602690730468580289467794269763120354996718669212283834048342726787751488150958576190782189082075971883340946332962727778625629776134874534318554157593276673295127859256093343136524854522836021368999463151332117104589270425799052204976010562602854791820488741416814000338706617115473827555432885746762738006274169614458942823116044609665776766777840685092814726342519017580285674569440751865240250447094566419132346751420720646216856596922752978251225694838087078674345277841371978083154238957842390731538231711771335644782958686479472855509411438543088350015565029248315149216721188138241301257311341826057065922385411642587718454286321364321056642493955395204013040875993002415785670225817410677335722353134875347195327591857048945884637401479334715399296718998861174157510210018562245516882801617648769240932179147860451089528613973289942595674766080736470623997004147283683821781336486448374640461957517449689951671314654122801088822964001688295091356222442335484889027609332829409139223095254218114506540842118736743590243315934511464328812710357855905069418471417739546119616181399867109662491572004416700716234174957947575836179944752074201795400179642461509745713854326426828083494535333180137602861418514277218993746601312888898253763672726604153451896449202692929654991081796790274579089854400075747346298733649906176988943557086856170058092450480632501587595337972426991865805340166241280660985328129417703851468735797994312607034561175865279941235002937627925148641266167293497799756768949680336405977773796407656839847121422567728738676716220829361827477506617269618521539919048235837477471835271103730410335082323652847603709505642335975830309298340287258125751296487421211416881459708203834910603018761784293659330175858441771613027015841710509454384333640579632809274865943790280763607479405910793400574177335961223122114242888167494778273309577887083882971791660715030010083894323008578865774217704652360719506431273098924998140929014763216734954720819663898020167209338061239435965236997081751109332458218718840264004437328488758498416034630859432144740242972145645868381732200791733908898096130112879720374369882400457658423927314232989111598590232021331699168481379891303410925312109270416419255688895519767999465618415802293484533004302226063624271963036424677777631445675305173653326515640607398947571514483457871486052762721829867270045942200979621494494754629300230979407089645077907161056329258258296945824705417959830326422932818005406473758348083568616680228131150947441157625301411751394336466276884498612180775687474427070220298958830031314099773082090633513497516702425670859052575600494577841902421623578054937812840456664533563419178407432992981839412854101994364798769978432806904019890068823031690145794241619397433153371912219071128313580178564223459260760354609308992962028361572367430721004774197296228088698841447904075618940872632608626570034481402530878813718782982286771839294582647021909884206084809149055382302196097265725522100736232377826753703264293908242041148317324025574970629016442778296363943892114615908557750722892586176817926239414310216359232444801545774338892026971202185872519843944834695341795601532105302220879057163602200798379616912592379226280202892136842846326071049470671667308272988831970109965499063559267083688050862771079619646796098904873881010386436673795660050173629788966650116692726762759671785142620632868065118223159503959968167675359692311757613921923200672530752629536053770680077134371368751585469557994706814477349010711033320044981177119625863274859206637740098805638771321453775979293880720953750180306343946882494357200659691674174580643234987824465999316021945877553991795872162386991342238793818308715986540850669371621558993149369265622082584351719332777867123630736140848127215513539706725662650155618016972285261921883611112098685109041495952603679948214812279743031768087582309576376045371881303295574930216043922897310669801093384629175536129912007418112756144107888651082228727052337073679592778160482195890324435394325152481964179876492961466246670716681895665550870231071741372858687493258297482556342654341106468499852435448708116403588558430362036086518164721424461491398152484176945322394227023301515954427500720464551946308021099437257485934306266605732071023973212392401793758511713167544652396406996047816745456542842479240444414226331136383313772550233433495275244183417839714475193989715852654547650120002321008259868791294870515186118235312433651192092136029856734970338025510884742891170342826515231708652261902838856162316351393921999206130945286495561452455235193431066647100862357847268091778700339081863239935416783284659137322170722794319016185970988402669502559566189424493470144646132316796558008329232607791331816304719392815214674257522174387331818601717601294892099425410791978953548142431489712348324537491831711600521063072215127964314236212268245802348641538859577730042280997441893284221578640722760737886141950271276634112374513890275077291896127554720232495061885184025046752980833180156954472924915250362606398996063289598750178129498597441877124245003017107612814994392840705926662949657309758011248806828033342153610354270755041371785760319508446144869667289834923925404734180957971159795763425566160509799285128125220409710796654984125456298775311273550365535079955678185550081953995184659405845399424143198985221309821115017146451967862351917889010895402187068605153748107764569619849628228030885237794476916504975740529436575021769460615300289580224557954216177948118112194351461497318351373209354187011689598836873201382505314230429668173503380065279057065496929768596659338075025445062717579694312160003678852282840744367304120918680235116491805328994271878056449631764717239909772237729499494153125333796476772657504030956183051266102128506657133197988387949231393520192432628043883073095357484897975966089641792322718872401828953652635119299924499228036386190558346125214823621708206997893272802642574670765747300683972226284384839042278424412666754717844029651528244754916104591309715475169606043924927308797999769151796661046457003493678047558789643190587968649450575020287871067782499406657293978029657917647839079406081841726512691464049544433249423348203807141087557595243975552917728944810122071159655030319265347430725643893322973066186192947752006767682493767631095270621827409959405856616946420682717179154403641249112298685710038767726775855586062862383174667146605520392126741743570731977923839529869419817474353330116045121324813803285737704292811411747676760601825822494060321657241830845445670761458927485499409420826364885235814068085417934396881661513461810326705814583977187956494132438004680667642859294073811251277759691460515616528457085213938551783743028296802496403884279206287804203259874611653229311243335406577132557346109235140890049840552742885444738174421245513014259936024181212472000927580825443645646657334129771799793078259660508562020252728363540743041216336305089976752207031665813477240611158447732469741393529366290856458383668614102849648491190298276353985170241806300935725570691227824379969578592960482044718260166112995390922656220439331395080632059621529611892501837240326659380055488943131618799305704702710758674073647951015931767684746895783187736758833152012972686298567516364910147368054112305449715325084314041935308910901746417035791097217874709525553941012675464141496816147491337280320524861672013462389419710782089443471764957725757241931752838838991423520768447606528259576863315622769917602116856573147627087910798819655508962395066155839060636534274969003971077426495731514008852597952832216841518607587791872172214857487508749317474776188726770079297879664641843506228466445708233509911525923164776482147407855301563822411696932894456836533264879240270495027013506713435612862496604413477525234747153763820543983283042447407282756805261612122572630873718467576514095899520815172857204833087359973764712056733328996223918730446477584451102812337049415049017137814027832903855188662154442240075087087684281836234240023302555677965800734493547016249267980945109828790597357029378958900858752441355837803826271389787300744213504710971234307912799843860119666967516198046048801872298227521036927514666883107508196223952882728083723306456837145083260102043539688953313144448267169281189211465981771311194078078937997199222681797124761412216061355593508787467057851627613549461032561941244718431977883119481670765096009460116440499926406933762725980850384672551650637717348251130813102153451709718901851358982645349384622135878434455648453742432219886220703111776440563882818834532155340059813230844679943643040447698395606820464095045573313752206706643594087076511335674900234001871685477827682074123210880401688899820702817031684711784060740163747155680876011624238906651428623490832625240469072369580473799405841793927930098819796244028999863193043029305387070194934179861383952295356692117411183464486962497573040548328135584638729630748843496252837459157086248122700551592878093364483276941091061059690821095472744300461632884477065496544579301220896400972065087299444114394565749340529027236016293851451326770680209350052748989686560007376573493226319355195440628941695885281153007148172670530699213522607485094946760685089323281402922921656845587917417537009958330456296175227483182134663495803984737165682175581351402554460087988520314896793022636842852952646584298057452052168842817924076599444009283629697534317875410359883748149547709489643333519457592349824222010936186039546761859523568841070987551528064571431468040656925023829153405430976842258120706126788199426465085042743672067350865635982138346542459399295521057603176692987266249730598153309740599771890582853854173213271788605162510746891277669910885448490292480836146565249846422057537182737393764597146345955888277586973218164869388618757884853172973413150358115100515265111554090426238456049550589434007740026567078545742968669745994922709489001350746675237121759443993910709841583569540777244244633746860298778149437673851210323349193850848505349201309054198875703251910244544660481914285914474990434190134371540071771958905702848197205705535992137606199022414208436350480900780036939582547261319785973278751814573610048699604985918473819593408667791094837756321213021829657892673410343775227577312186249694727820948963890968782768318513303060514007472332017197416763867872519857870224176268602990742148511465334268985355747855900529905957780304360186530049877507540286997406976310064176601205079353114045040107843880416313400407975627888382410929367279248824045209884957637054264952819076612246616987434363275204310066332838668955012611406419829305607395911066237756459378371339137103586270132806092566093414649869720448265419451700647171002898239920869368229458863944367008955113092417056185808945842564699055031648438322914998045400013858384829694015724892189341011508949056184940923145975749601843754250395406686309138110088332571414044245530289722861654306770712418819347687717188498514392175099079918479504699011687857855588160694988903401737355431715363897939857881466915285264512827133909969172448476389873924326312107438208775655511677825557723168640893252603368728749527115437061924669040836734292597819559506110370517623513665951193040163159618759356744767678122772115744364166946916704809548992265282219532990129805908809191578424961907719495286177149200148296103210255269519061378488747008104023248659122262077936657652123775355892795187006853671376494022845270821631692846943080384263175389487221246662286277763916386299100422273866123143427522204995033817006021145372421154392117921771985331930407554442695897547866071662364192219138880981981227623243198619679778157213987215746967101303144000381123510666280692200370040752148536741891545567102904700403265223586325639310290730834473652850883420952715736879473870351217584907033506822990556952926327610534932244913692562629990421325834197846028238522501973607685969145077620869485443019138050292966910685337232392157708757147936843513148216279479420771406968864738741954694731807239573081994870543702075706734192282035615451435858447368085139229358008824067294129163936749678140967427442719156221829297168409945868623119455136578914107868775711026301013220341799593560336807163890118102467667503454957206299874533782918489931879624238395153393669278782965193230344804722342635291873221071350184718643019908619475757119376696602552069125144739769473684180979386393188667558292098869101515509926111963006384300284622000090223182200414861904925322003190992809483630200392222198218533518526372111460235825565034631293866795437307008798310414455440467286881793174032634312346318716701460689112502230790365012695898089308494411059629765072339218964012429414561338679700661169635649596662119844523272512696105880979631803252882975668707360021524820712726966922481899824488754019189019335401608116032962001062401371597294522443405115104734808327315505101910437511658470808276490956102915533679076341641397094440142431970592375640123282552379375129729040447664462626160534426604722689404174421626178233157082593463095505702422617765176417971847959981015679109216828855541621904425837088452091011624626511689035006838201414265825310267441469534152367717612603993469478534651802213955077089273345960711802980226821863291758727882845971045175481465562064192674059410178166621784166191828380288568027381245036679907624268169776438367068025587909402713833672037233998204328855404585633845969266975902646071148243164656609567687099015789121110997659430862897578656974267659100674058467881443450495209366594841683173851391234770696747062704345651701181312268389305210265655184336750302508081718527287284735236847130335040028365254432373644010382258952167432320456572532706799724777599660682624381589065520751303091225806467931459397406104079174092252401939113397940151288221329482455402218590922462812292359145210863666396082514282146861774033298231887212929829520726728131490659240335343401128779320116786940011892426221617155808800090453024825897733377496942546807605258974563862007974991331731103706078953250829291517049458511615994831917621190751819250141255117783900091192784740604742022872414826921508367188441461439419188164822662718427737712621867796913581868818027008089904482282668134971237615441657750360811069702751572194520017206758923251264376641102935948541709739568811704795676599985488170473875699131247851500768530805515949426920565498518162010747283917772508457990351697095114936856305744682763293313982327104422263921319758454085670396202039924902492773975948510323732497418841875663147390986703771980154637744886776907954506660339560749502997018472510959238070953298779998911791221359629079584744096488185369742413922258803483891266184966174141988615247002262666664749502884462014336541789236879678684515363771072047478443150035598980923662941621080421375865179709321288444967530635127656206576389102587300937563028843568966221724618760923966702364850212068806138553274362896086303491276585214290865075382805776884616869307760390641440480835679174731966992736717047715022120772582548928084533857032131546012301631279537909644238966455902363741003237830454397291162891570210113619299383992397612991469481401813076132695526017731416948294508631818118703520550908727251872647354082513101342050852431531118995111214205752081508594384968571907939632200851835690303089574635302835786310278450345127438615770588384176741532149658534458058112305954628052329433305750238935345569565237085278714730867368857084922291598299605807471236047189396557296223827428220653378788035841015082382531863890664627482374045836337044357871692450373075903318159041190360507045152679152992223952285909266005893286811852953936254161852773959958926146183292893938001172624775409698882887522485542141675726067631406890023110885874702546855742911708804351491858000992919635909492025808963298813618552039993158465036429994250750228115247506977127644695139629314601633904390296179369124317834167517747922173740386330707270185007801212321224432385223996235010310109948605371348011120584389808721185254649788572542329129678850343633203692199146062818445751127575140266530855530027636095062072755889209341449408760818738562487829294083245250735037223598809618717474009391206361030433650437939411804293064573385706040948780574277105670239836724005944696244499225262761924710479839707164490377406090920403111903498959965077455818832855003774399588467802566811558391064654444392516214222345985189986446438498542055682300593675036935215799858732005980124536337330395051056189039642189504464123490872144970614513662130937229117177948972479438209941665923585143191077730413983046031893524203036394647218654645722276297497000151012238337692920432202247942244986153869341785883894691436498095796486023424958246821972287101961809012317279821655810757069029144490143494736442096007713631201054584968864554661299748390362463146828904530379682868560639219165318312283180548110841123101904488994600237876516421179485052114514483737375461761896663700782074557456777822461320526779343801432799635254046337487893881038983891470082285195322059969969176624707280122104382650926271937003325450454292886973983811394672359181348134601620839834290507552755587891547870483706896077789771243420765486903932517512503759581402604629963199094431903739232822067876490509561022936444026537635515140278741705196631751488613710667088832793142639840859269071090647626504572354689030897387870629118404611722878150612673695009697268529498413436097444380699427606481575909094054085121140847387112120135560027188865636978784837938873025442421200032189166776510593045080131224185451655443681679307660830735777737776615247976575751742432500290662329532955271083689319626193617328939309136955316296485182947353977725603097212989749630654215628045335013151421636654837596297022727736063482032087597908763570365691572731178088451825451491412451414945341948519927294904893944576353434895366993014113204966385061733243352760227193022190318328592078043649427409855074105374316956409414656921399171163210991967192982696086605823494776852544337167436909512526340826907540145684068823367335335042194080302276530850976602857661605886950251479693830426177488289769183839191814545368152402256754578052453520117684809276012026194473094559334540511801571873672253191542864217788108071944201304243715052326497456352919046231946663720572259277794359823693731392015829566874915889712564024320219348832204388389662769485355168377778949043358464876758836242190990949202374383792728347831760548879910326581241990231623415694137822994188660021813295582966089654242527953178979967187950986196198826382388032345323532179299222872244836016997102733604545791537343985357523811313327945921072849169769029411750144348987980800005004131836397644246896979663630798142716616334572903908837795870811902716057178125784249596655207504870724159785773356545884488378336541330989059077644335794751578593763868631769179107702407873453032823877216459598599055660225647123696307987583218000598596408376026665629497505198099829578674245429623289762214540006019423813548821541136333263514693355385129385833988039901372389464947662232559226708677355421842835907936696679004349104871831581338652386986792658272440293443902025322449725309438961706485461823671661709221721791986527786137566885474664572141532929522412594268976455219538877732463514920388449953252489911628260503277553500500199869815177162130861784492759254573598831475111042694352742441879334482154605147240372889762279446218020306699900903658960616593118133649236055851926003523265661824782955531096239560019389036070962917959809802487349260334481568983318860865399310822041169261688625795259484507978429325850953498920751443435517175430951064059325055642026459169733272023043473173035326001340441778486778976472798058479873619782343504540242694894538678437868141554334188955197812083838019933401207202371548925516411383181435353736384565422033493811641754725714539324457894186460042236229451376715740778938367791342763891509849204864596842869936239342840152936369138831301536342515150013093513549931741060128641967978441674900231549356393989038809827415830119224130497051567806439423050714333710975792347977434988344197697469987228589169483636912376215362140788423469220832402991902076208030643336596428413592510332615637946565210498362127596314366532725334699826106085202393253722759828441639204534202659596026687150409353358856789564736483796238559294010441959969386700977295395158792913039899027158454802778674871320246690954555445660420954303426247329536650477249941423885672238214729840396292548787268515440131220660497559538989171604115961501605093002548631865792441482779099849749374870862990205035349788221992493796280146474987876574595467331066238703384130478971218284048668658295589576678298630579125638515797314901819939574522523773269415972251784545423876305971497989043802952644840577971204128435895760318107261328384010137618997505620799147530973229674488902266449245550645567630047632034506484179976330110087810201269750073706854429254811720200112668753410809893986582810031726944658769762147741040714727665501774526052312792984175877995349286709081439704387780573355055626009802241168885522734697974329405670221166646201886283805878185944003676619385341996989814862655112941307214438230683117332516549220495656619600841679198426950512938104444135435287536681665509875443926045087275698288298513240018398675452162611054296134097795572130360947287171445922048290913492396570458339587756305029357123266188929350819510226205239652298147396105828153851270296581986108230373348854291473890563133169049336196090374851223694330794222239842449656050975841135784549258047829267113463275593761479590753974341335950956846951171599036459883200406590422810815874382166084983987006631266983060342331355024601860468870399752354051312384893477045341428756928806304817341594049911713671373073718162246676750400199567978982955111577077913543337786935856863152897907836237185219364950795018703148129246694259917292127671506029745710330888535378263176349353114782473614925441909332076272755054772912831817742587270711278068047607212591731922592946935318281820088763152693480949887143579968711337316839914519958379601446369378233431843180331689957895602794730674919312491049174861684694058412400928488468603363729738091358633319133496891078344038139166265207202545415013533507151976250264461587721083684080401976933459502503704425036790681247309073131863018047777337291390261590189450713398518315781131900726580167143623315559700435135609630396646325664844143221603650639625836728609531339187362542264094412450596486519871011491363174207931539590173607282970512136233477340492684251234746601864591803173573885863497143449803483221051734435641965509201725163659857956219679344595589730481104476036433736066217925162124029798476412955051277238507731186357936674958796983399122744870751108532538006002076773140710929208360560270577815262680816786324887262371115687975249110959843827494532954584672739892299476717735610920382633364944608032634469337552742858617387410581780184811579334680016463377839056100526230711089652919056332488098272284231525774538106010025719560642438887955983388319677205714754376062328947025528481004245155048053783229647726282053752523689309388528060751804887915128461291213495532927881420862553933730988113061567513998635936893825415237077945639371108411807601181803817224485139672274286101858569262876192653420765953739376245616514615758854799814737780338484045922434167634207447798217243128425351288118461823590037939800493877433504717185014906349148377684896072788845165826101238705235980066645819893361491072011942346482909739961782765405104754471903716480139459019112690070603235642879013087983497530928508037838818262004406938584098000341240033377241544640090376953258189245672300204429126554062923651233440736911127609050886138408916132980730337038367525364946238317929789177943712473461999863452940953021965754794819694183823527748358221788943237743749671148591196119703769126454630379950404722350926518663108724281138108053034963741136167212879896166603691898779127308228866498501465519768201716185413274496143932538394683297998149368648868037424710103462179268451709177651629918517521130874599732157584218716566685154094472693127726855828426312071625030237750482879010170296190433331923594484496535844532863598741440368140413672595474811469047013872851471439535754009245304583854360017048259352309941593758159530213358725775536551765765636085677672024927170480031276835793021169268190327591549314150047096812548356942650455972704357658029924075296484959288284935338108214683264236993030673131452245936254997994671040823541412884640513468446523659879813313479476121483925153912318556105677471354063797513694639314407157271497647277314893201770732388876765162918742257198819882452669147281201053771021766003761073979363083252716342616446680543619584470851121306135398730493185819220189069568727519185474121021887916119676850552367013735444109757206860590896801138191185256353571550397725792161961683837364435625744979781109775670255441711221775704363530775139037149743280038066384521191320506233297621725428730315444768642420797662419981288030844998715851801568256321838089462499772045301816016882142603997866548553229811841409939164490253187351008029336850548649319498522750665353410215767310234940822035894743649875400892906870747337829426397769954874219196189739959755498682719427655263597353574535167353750242473922153069462727147116980382815069742317126609530782809783157563508159698632204590086026597491597883264997528197592588326976109095408249175192107582009003068482912399572149704384833454504866537918413058159149930153735674354799730667118619378158642174075965250879158854560394277700919052792101420392471156820452574551548324590761027414764577779606336467009081202351735784545497354188951466500764021440569271435126827911648166876463678702553440306364912663535855836205484762550073006208833566016640768531478340096593217577696353198550069378720920908506677438417824509773254082063534695699195957618261666259099490137307930272985686849388274226539840446392074612950144050615785548354671740733511501433728553409983795494268831907384498637675008256137130912547455123023625274820121688307243627417575201348343798773934908751944088092574012355302948255391935143925865777192394906357275886533717117018750722869411405528450704174624397130194211620812068715318291057794087326066585273518241917657766965431029243551886057905099500940174874853766583972669797489063174870089074092875312830569257364640330390178233019267438211865672095795209252153611538240320037283560923546900678377671803611577035632281604439974551823666046568618111892071535374904826536210867552018209555905774016978787680918742394402263668862561589043952640939189696267980690851871882025473078274715643298611300731974517216776848200320453448833120067302319195374523697073771366748478468461604135995180649312382898556136203998644940938907831655241132314154449834663597032758412237962689631155920422519226602241943563635567189296094727842624273826786315750796681227186352674260520849151357456877916822816024253168444407902100515482759886404435265330827400262853234028621899130247487116334557962426672400555051333506811145052369114984105909100013058646903429375112870698979461057101219568990291426117857367619618740235498216617729437343483747006676027236893578834756498422429200910131842545850068116883479201357413206921896034895839657124177118673605872881274852564402608785996820800204995859535870645123161726916602729363596304798643605002925697827850728998486137110287251970474491633286829919432566355106806813185733784320244903769496035778546928161430477375312085449763711196171804297420546929467046306069652305298357259684518590827502913849917732504903789008082763581217178620721579013059377862545961704311252982634377006720519331508330801539841129830958156599203414530318621399705939267199375582160838943713919602425168299787864424868141565696225700241642099826297969028939231078323577734745276580795604779258076458404130258875633767138006486189532748736528743620230004350927131697431615399175358222588347631501875059243918505113777507835319985768004699486536666955871116242012337619098645666987109125263158217860883177776637302433245836995857978638117670783172406671004982877931913078083686512624861925707982760742325874885126253419149768102029789438431990223012595987371448195716142565091141274825184552765301096599943059312116826721116770844669463259406394441868862805310285327328220003622658980427309287383340920333299714996062189325345308896209883811964120840870969322994906369241397796809566227961767838249173570282576069059010112409661269093229564432528762848196737666238109469402866927574018242464911968044839583613669965685192321496038806269927996919701559776238473437226685499544279630850440378534847054700111037634098600977468681644197634312452339468073183823357494095454907277971059060353398823719586524879232744394552239933587225649683557533492776678580719811905496441743371361571768189579184063208825449811032972603822837774921157849059315162587626780746434019002203977468274061005964322708059436727855011196351456864197162666289180206144160921163361083676590971262771563784023939894770983866649039393616488212251570233386624996200596407013610950297407507396614304039638295929784265543432385246343390931656098249332215400848817035017651695326152267449937247945973669474732151538969490600338784685144074890840205418294808142196823560626975996456269652747906164611424205616728216120972328036040401164759044066094956461148964595471858904900533266236044059603139109799289934242619099866103393229907079387109879507766200463922624565651360760065288776712934695628587097421915000588214165662758798091589675082401802986709642210152212578544147627998578686422476292153542395153738888086567523326449561549338045978696854481362807485642318872696989411019236429480378574751907941569394056742840858632233624755873130951586602244957864242046207316444497525680061402155569720804353778917893158490888386494612526227784388932418538603219828232120853614623845079738209936124561112011545227298640544650359458692202784506939535587443716559435623683359013683370190853507071327889313701309927861396262751929754664937671973863586366208709931909153204849950404331475431496737147731314305025254400339924929155359715916410028330317620358917093174295193023215846530304230273475652614340539934423338619369021623088899433521066194231130959320088429003468706140398876945549475567014494540127631949131369484142269606511411389795490693415658219663282922368804190653475633788066451194890777191064634487479075577866557091641165046821154861159602677765089444360696914614734985255442859378839965787915449439197612007698982628767969487664614091552779131594821599423661927618263325549780939409896877530753487688279211554416400739751050897320799825922349774510889291537464449085103754857730645685484275399798845288924306812626058417219623568706363388786338261656413643470740259112705935989258581977340064697186034297150319919521163328118509376617511764277133278943524470888130255123915412674504770695333252610196249631580498527646517287335487828371094397877470647201662562852955342734246175129354725180400408472469744377507191636552706066641273102504519333276903852108847258086373611194956275247664701050966909600697186767367353459347595719435903125580024576564642361484189850120609083255863202945113298335469894174926138537585933583251519761821951852090371988659620974738024891803898326495928654632694875324336202702996681991388181119508952987258915762691246538432075518389544409995190521004547482198451616510055778858076918774670937164953826388360107494970104068061614030482807550938342741957029636341596448107355050278000506219621672948536863323923238556609393621519825068372597014817728222083769311704070198846600088914809058251187015283472103551034628046446919569075656522093272369581272486437526287385305395517797455926809068432142359679148402872313963837579553576404262926458668012293094425138577602395657371779520157616845163389865161623092691835745323905633628979234326392785835472078398897316443070140263392722908899315235923819823550836972827557914174468990243571921745399961092440099896276167151428231407346565864306614592749472504232531406725076015461190858000027737521648477507615871762286977320350578932589662595245498880417683296107885027941464142128501646537558826823149904794802822436179985095966597543352475228627746081466070435365883220730428129599115907950349867825902343961134120834084148923381388469512101072604578770226528417717327019035260151087504530900001173633283949639311472923059570937362412160622193045623583352246186027226240791569602286840692773044494727547208178437778484321554845519005592520274747376214632542756599053933374554301331221500895245689766345545504597937764582819396246412355281968423745672408195332841925320861124408503734911016840819489547798685231422921565773198047076885513620019974959528387302576128630063652104771729202271122160183042692979910450214107824213956410798445824068025267704686040106395234437606700454727528847497356975717608068886314965434167392440583582605622663470106378748185295426958357178339982787604689267243114377349376049368336276713793332553409845976028213095320686732651412087869308825344076931665327323320408163580565780695002786694431927724671902977260337401242382802745972602692379822891387120931712792165871654312459950987347891806417175143931093760911317937242315895821713281207894553582768303368788364598188756929599060547968698955520162222239769073837556465526402286434153120670296199039180704968662783714050859185180632900848061512190679796252842532655674551016582846585345068137184047566779662798278005800516896362283172843550167768878087625991457169126678294127542801878720058023442987618910425823312986061551665161917528655332146070676601928100393846736962776144596796868625566296603689261034765919063216178817911383533464793398540487689631676803042564726157254837790599135308000032446083969143035355436566146551345897813250028208330463446061174221409282294537240117510835737411451123443966544434915749518570358193022073761536362023623242349139189173682876923358082972448239038357166844661075172456720036522201009091360567489915934143120081635373023494918184950597794981983170384886033130363470933519520276520002169107658763823821837076827203861211974006791285643053420068841935646145763087216456985354779813551610924307709895074599719406219576278198929276071676435588238423001744849066174732166064233640115507291102120846467992887375008128157231486295829482638355360903040260580005444672541077197999458214503588018534134408612377395451668913861126731080718255042025195039154843810742308558310567444043365254362994228441383503024373928076207319542819775113547750640324084478264882998081772246262115086395799725394113873385225129701450751137595150469106299050772185877949056014124948887544559404174434331287396129934164564841065269112290392453856401828830387258971297563033633663535228107446784936720225300700376389998533384933036382311124562800446110486683578757163583196535886662874598622200515808014567491217186286143093975014348922472847511108060353278889399191534399671645308893899356722097761532839722506545333323763305378054269123035640046888731757111419090236568872557698571618109747425071810389953800348118863188566351941620756697309839258453097411039338674474138742850087590918770931418367512502431997774195633227535217064824328684702301360923190510032867984006219175428518784528692271863455739719036209516676948622242358909933259418798382822963915003967606184791790647754851863895986034547878576334733093194632213544128959652024010082011670561652639208105192346805745740265507117320640125690443927387803156016325805704858571647800687175472883601522278902065269287679748325033477398173767685493750770613351928165577005298169267337196624457288134232360299596629389460716899387417282526726015897610665819559924513200316404045660775674932208866656528508350808438982887967825974900295290075893208467775702598964888591569539654871762945711678556749549980701098004421825935507857841634453757844358823830888398982908484712586474127982398540700709310627912378519077489266962747186561863467832283260493047868783538962876512171160533693625869166514553760615653949690350009723126930375852177252138811774358361725084573938156126252042879966220511548538137386631987579218892580769186835056436241230395151025064673554072674368689940991334378669583748703954516970511473847119977887295220749878692484748745232188340282315675720885461697028353342118039269010118122249478557801664423927864443357974384184059296959926030785780579070347899192607747927058288641508586713772433671675759325326319311629052516655287438598722864373921573687650278310139705226177079919184536121625412174869143980884022694291198546275487158888612723687428563215319133581745609901226465594605816622054060108921668046140670335797249447505908597573284570656263377231040411048184805400661654990373868119693558250656815235542726722782722982778111781911683929631714687361267844480465921671479620359804689657191797078030406907214262154258571955573185782696397258835020770387533785081654720850362937869279592232529357484294741507735087794473063894347914126635764622328388944698255638731444014256640708188269738513856998142615819754109450988518860993734666228065583210496982039356133888258683555433640377829142700793962575534920224608147162009173319044208454427065416241916094248374577909981608806576591521301651620265080336453651714441169825777294665225865810507341832115472359091649300570283138327875538398689934962885343408475359764426629782585853247988887723856671025394592892222475782069110897751065079080095282387585387981737357559615331958679195155432481919177046921543002901176874260409874597799525263590978799902874121042888866492662390728288270006071220982110116166159409666656875575645277107784693623254171430759350923142110606479465274866767211973455004544461902248873030437643059008753350317555460913604901500658715007761329023626729808262526387191882634322335443705037520148080890134396166107905416791198723053535201594860328289492252292282142492608682750075293453327411327765705116509348320144465120631058646372817546551937089811228770413180004445920569430145258615013384067536169175673227432807952185575146512671087997408214912082618953640153113845666964928854978020221961224505530413413295516683581111323314169808568881918577088827153011487955583901330731592245773208937199317040281975537568498817896796520315898773737691349727106142969780807463890501881547477332257524302807387100483470080198313001393185426209054996048204566494220007670765793113091874801006066918549823484897414451117922397687759895381571335473616763593025046325412026301837195078027490139631862298285095054958005938869162819507530496300217741561442562885669502928495233741267751339140976378444798570445489353027532178415177286664061722222999730040307000269740056868280386560179294874178404407949352612479535213343884143863795602273991451755487464837842847219682506704546351952381760375249466462382521799483356052900999249907584934822385028823519823350622696656010013105296353884725861035526110902849191226658066034516062153789845997726248116050944753003745253165603789412309269487509521272627649149716685252810620775920323099181018427461998529827299696724421001164694747335197649012767210059483322042400487175878684530197185761178573303387035188601158837296827803140816922753927103093888352954284435160852722460261274060759968889016498367672350100986274546957901684040722573650026440438186794124660174109998707080957463065537769240520905570138467557669553726201330878898958616771505090752419271372910726575196738398213499042315288991176491750907525582055356545211735717114958542826837904306665949889259466765315159985428027288057395419454718936842921485527930371622604445549093865215462068264144028847253433815597136945009306910262607030052976176406721262643581187100746210435188568459533997081093096549890053890601525146068880016871884892531926170267985710139251579805785983060192137101809015889511362754417960483978027875715874536268551854808281478635720793342152777713728531602793616083767904030489716444398600411996380434419132774934209330866234654843272667184769345210416877394174114426056570882944025130574261788552964274338166822982567235759238882857274879070495145575581161377764219627409062838341243475335501907455248698877067611696920051133624234652912808603230672263083678367633426484001796263089145697740436959855754033538265663861355679074215415057038718115009241127008854274800518646366463630078145973820605626548641414904452293960852681103977334886366884656544103739562012745249485580351641945371115467422463039946198405898482745895079609858311278233588450394563734045928789532083373707446403475586813450055688461669952538610788135213388025897876067077261590680995994477790703813472310056619871636553095754680986790975880534137769305265095378216718497762225044358686473631421429383463746225653085357187475464636037562091314620458734076127722066071877151102075886597869577500510942617496886664333708140672428660269353357706619959827380661019222469961056384323133993142927341165849501560208634117277936655716165049999573706980966212572774553525801032736437791263105728048790014637947892222560452287344296919196756926240179420721674463930073757842514408524128440818515965688306807374280559999332748005458367628964802087012276948975301424803006238940736236178263966533305517283975230098340433464524446780369166234549629477735264627516738202578385482798329566193128255279479713248364078253548348414812291339170049477739526864121333203616155666123268873245748304952041371546625981494550596839460052042629023317963885624418254442231075098188435261617822115852332763675747195626780280093158249475660700185508657663075240642766588162795601174500576846415123516603316338549869190295936083092911556515627377246799919119008639869303975889649653444393969102162918981396614238350177819359648284252243013705625307313620691642815456181669037933296326483477885438507831536077328270701743400652164002410722928585542162359005987571978096310458930066472353253754864915932866139095497851622710404896803085111385944806919802625232879819566672932247728316802081566731303610851732865306025356413758206352829199911004287872769338002926039905905168487378635868594860297086297725581945685616545452352786321677427885814941584136579819162494958518637980310208965697476072946566826720423796910987643214879479121508070819959541844873662275751583859300641426669203423910013140948825847274704519829242142521103478089158402656954984564937065662378783520262270455458666234494494025190601564643255289419126578616891384615550686727061569347283763869535786456566739278490791685601560051563181554421979034489827486947826164286071717338391617476208999775520458665418299087604358731128338985102528436574095845464278462603162328963909404676979084890637902573324737355165851559603451615402815612456696965802064678125551834466097470366176911237195208187283739662163917026448633742454632946124081086976844528239195093650960923484910702747393616983923264274523461384973850637951099704131109417142861340712482142480737167316374627714984505623028080624912370132288923442552043772684052838311767252349142610212045819761791307580536070760335365242908663287189405315232041952635484220792962506089506649388026676936404317584552770107686994963119069577108383498185802303252835134907881293168596610074221884972778884869465645610050249750387695528660256353788089611707228826889008063327046829405259019122865912812212072723915711268730807599442606259345296622132070175165629341659936937858804490731647863290466170890407160708673134021250275972596385323140839517378561955075804623051057232885502946222376625889692538532790661134243147259714236758995058709570472789596804020538191269681293774698826334791270957973787804506478970631913815337695825401362343868161651130353545754746845556712137434642079505514674121301689930529698935090020660887194364579453525978710975753889356389105220306282985715855667805386493921760740343811027288645040454932767908081957476377360853819240341316133738244074269920990402637622669940955911615914413323767592277455416424923616487647517203278164099028859627484956332657339885912858210622179361954129599414316968604022234680882799275440528943550239898915486804778504226687904591289692894533403360232788483648681663579138824329942474481182497408533966307170724943426868230273266559584798659856741676882908689033470247946288250843538743112819846500700016593205177966912573781842131057137908507853807913523607144400077240764405511602601864175985722186882288372733564056624295186308923283471923868677020154234462672583699923505173086447375144251500885697789707048006386181431407878051226848023873477519080275717708465302964738476311215456987450937405413311459812804136508222453819364147948095977345655114405698682209039485403624556756985091977104681927188816348485286387017063198983399590452945224113786206308428022970214941302047113250545402502851915148649831639323322545479976491093599889203761752548820658133277468665507384207993635528076198301686388834051854556716439307848710927072571471293546802271764977440080880934098449247684833894319828290388870331829809305747652756716631306351718415261684020237085158083862734356187013815552656516329608055862106999993546194339048562670581147764906485738321991479256272975887886412736627603853482522316807247833311763194599812746563564642394589377506467835786253347661574447135316271174437672057990307673613386384533358639889268011924320928081838406754481752958138576031006797783474524803840731034235591636278310314828344956658582305853032313957551018836221608482794691713173214861236549639363275642342691981560361335184983028526287215587625460070137121053878389738130164571000602609905059178946817817251651338108999022848887094793167978692870763050156698144514781512766983976004866891370710414869117075183667682609133715473640925123653717438241321884572085285740361359780151630702645713313797421479234811708765574652644337270495715013315961770776550827327746483947126376375397494328910289120092890631744943978692039634585417692872209209481332307795079271976185606422822881204008842393177776090508994800859471592728914470946041119875274103640475700630689797863973055908143017394326624039032059220728421542410647507630198019051301639766080718478454699909841866460879289035657100127533187338786962954592684532955521941422631019536328108281430829419813341586646311173680896302884369250756846504097813725357949979983357911512258702788082954121010625604242941345524794748860850317329618949066837870934866910868560346612945969719604874335309659645314256762959009868378349954464167945265030599174399098067794742349949117316927196221386642712241265451693211923556791586123808514054031640266552903017999047486695655565813188214093985907161565444310866126288642031441783379210344840432464721532234841476626831866744426668983889378342960119224192983430922268414617598037048975865533278295200374525400509386123775025333619118377727961101690813362700161351971623556547625993085069011386887393116784150272864581890185807363308724627676658383633390448192290701143971693045748220863686647890437186032867163994240009830143833924211809949093297172219433451562246190384494938623059168218119551160542454843726540189256699211839650568002391226972332824702819392409253676061288674872290835746516608218149838035435188996079363650174233747110933812380541866727977626043078659669703590789216029712445633610203866403757027252096997372757250347026241226841648771414785414242526456352726483442930785036332057390536856866390948123635851778030979741484244077787961888059352950628354955085813769089731697603002841961597366180060386419171481471600927911420779863252614736874561294373778514838838821010901448161326189210018087906992921208921390465804459658340619602170896284082238269819711872773118527973398925272700492290274752945105010595702855981564001593035433181310001758516291768692744245003058197185947255963418446042260020609488717900366852747628967200831270928556655778200332166598505333648820244180635028426181669818862542419778780841763237386055396554841137315264371664889619439134917079063139120844730124194355730998216185513337719687164185934170781106849551293235231420192408602307664718577426212879158310699912542913057014680423180206943655764786562320632600135162457285063625135727052379449203161482047257472220787839933736908533162979786579202989238277624926969760324426935731991701401713762071759978330757931579224075013771525133572887917962914971643664513175457976979223178149453549818945338034751865677801953686904913339335283154702728231982656380007626982284231223650357078587815068851552847327235053060232465898767433572061138797696099164996415148907501373423382784892014103921692423333760992978965169572268039494660660798696788278896250514355670232114744364806325963285919031424235493297589449226526894051548114168768275157056831156058294563904021384240993848555716908152013877101990969411105983621551548102981912995609425618181815763108942078776790413338857546550081353702900445208447446063398064728598653427870694610548949364325897183385597197155041487780079588211108940873185719335815444579934076239569072374192182332193229671842258707379131775222066073252160844332020247395741272450514122129529990077958531239482109795583007513883859219284184435319711843537666156211695299765581618408070986975662130358466947192668024892708495391279040215845521414496910997062445878287344127218414045283279150301799467110234805672158953534743496324746254643621262729228869391924768019970084797319108954623248938618171019300888497529924191355061527047955203264169959634435074927818576933059005799590271895966916015714502751594437253340580212344476571386915170002818279310024889173545120011158210792118890635291054506070685202385919883820347297973394115400801835224520444252976037936951466440387678825928521539409521389060662585836066761444733826397015376438176580087734585633749686890908645491097422512469165752642633573622326003572498078921938472072710795116412384227099670072109823225894383118414773293296537286725475975864957797230575954019614239049187910967067344063659826610915943237816872338743992972795438933795804354219718141334204932351618722365796459552064860235748175351629247057173250557393022935292146388010083770554722420581177114647510393943538274368086828082861272936477097886702798423353022092351379319539655845085085433127941330965544718196645503646952899185077289404509525015250813519266068069206963613904011938127172267549968579976507253293794748064405159770687770159791189710128572979334406776487624226271604785745144425820599752863301707873347590868090287004574265568458742552873867847600131121109437443840951382205175560318912637791640203762207181325288691142942303816415353363596109086167311546797315400087072976536746947488490939703922864821041059771112456667012865782705961771103647284269222347310821579826951835975499497102551920318426587510182044858770285752887174586250570554468253087161161982414972671538400924528141581014128876534882688732677374312511610306485597336700733462356481824085517450662140982882639972125709232156113385555979385252156751726094075866852530463733482989555699892031157751624952509456674146910374779628063026270651411711472739008810343922604000206943023232112279350046565168776107670437021197043536048821101502967780224638864042061643289869698035453807691400170305670037337596302591253648848974733293975331413444776459077957223211056890711113841859076969250754621761876132039845103050919309116158789417975518477062430870780490913799530041849126421322721381870812730012412543404314661009713646599617382209225805688836016917885404104545911343983055092187924477079234079545901129144519023554392136357105547663780548348096493569756883822019021160575404022895564945062613656929315837866274225892681084701303029006301615684842135478299153244382662676784048772176772648589254282239589792422135684034460871270801273667959710269096681633180129843427727062068447552716509777714016151044082042748434342819300275904525940766061022621458815299407449815529919026410083702670926993133097810991256073503480288737903482528152168767210522676170675739364893667295924821467807541093874509878137015661989885942338624702003955299534971265085598275919341024713811026807807728658319952662364172346715771021525675667180230416467998906463746098489617527704383518156904502948952508908614129948953130331827924771876939310352280583444690495707802838195388268385155460601380099084820627049253632009547093571403967995586541303264542596469564139809417376908795694315898672038721189464187010005881342879468237103340855732757410010892898223437737368621979705525283926937942624026389080052992842242162662966759436393047557025094190395828494972331906371627230189255281569362933447910600791458896890375999985449421229759240140314480200637580021283978472671673044318234377952075778249169462777637672463527421568111359498930930352013802400116951484658515076349629736660323845593633844059195313938549131322199774492756266179946578217823122637990817460594358328366358868276846481619703355838371283114669492182978498062960584179577404339055596641002810111532014533010623667880062786661360313601400641990074290040910334250171915279465459115192855826481095685572196566744848942259080393364511325559298318071277812923565809543529982173929706657591638203551212778533549320787290978820287427202974425341212934468711211930608731229368846716294235270038778284288055483986164585986293912499214898228578548209534444544324252981748045191290502867446478915592304487809163728485719697407375200066159173780076617885077473236201070513750753215001291476374678990225841860370384756348436079516690931423274086160397534718683604596751686712694937160484894170368496588312410738600447253721659857494847219399697958904747873237031576201925783372659264847223455433712498069117871423540405616669523948707591778071766217479264467868934058111330197874555269980369037487335147531503436898718662513070690472940067500132605510549552813080852171410446472133419451929856482227795309329738508676912316801491717193032035387313425919898022638344266952052432140297904647581319470230940766011408060673416673353310246769893463687078773441125753262504864034319906369593916041492401490645188965385763535231801127888196297361094888558796343564399849383116757282588094487476633919437199066527817983820146399312888945253565221676347140262408175033714129029037908180158468922846407671835185119646723941074765920340220643574513319401969894370260520646661245972702087561364480267382180451232620101121178002359821506087638043277744315191479978960166949901125892346868463010437033913749241502748043162285343294201100383183317926660509661191553433967923753687033742972655827801615689913512157490554254342739820436893818480586607797311422906296062460019101114565161749406072917921596839565641771746339196799088382581781138601523498195723602330010052907484549048642627944520398441857449162056542497945121599179624755269993856052206172400345245417005958799522606073208775101702210431448535124449729611306926912641422644167693179737945629611911575945406767724802092925362713196604731796383362442789061590442329471265386308262610107391282944586791793870247056273784114414047425100631835496918987619994023821360884516346166528985444349111501532403484276563086185377750485176022977536693166924570355974702713104707672637643021443157766016199233069340308281667690852013755362570028933326574608550888370216341013340299825245088882393213360425137969083973631584322610056507706049229605168732699385621511317616542177721273339250611497521355324732067793543966723572231442997807826894964768095588898123044279279245823414551741082703786630645464885000202603964345407149630015619978705901546481932957962645099079599262165929266105449573903886773282155653816009606300371563767833591275981587161565237871372526995311141574195852328204947798825235533649436815002438672492629803449866005160021440824875593845906592436432854449080602268719814119114090122966814107207775213489644605178906164713644982784179356494060522209500706933286533527906939642203860428074436992597402043539348628820782252773992799530432655722609523776827277971363276104222554796225803389837575012613165438614345379754217941430496041029505097351292172537506514080734872756613479046459659847879542202904506553032225511324680036134882114888352946838174426053871005167803693004515349414226908528075770538777348057135937214581128225900549278863451648785279342093862464959599549020968330015165715743789664037192264984144552714276135478154377825655086961519489242396065773356789338012478024404344355662362892960721765826617540573429565108088222220674019645321440298764591434349357389066406241672137722453746843154603185094683525756961806817317625565960807903232619836985737008018361949592484409357507190873750862860240156486067700933168976505588941764165863120221441152616424649277955167234334244995575221872503395514343564018795205486859763381181768857591408097388067795500006241807950920904989518435887931221673828719065457042307518045536664798082613075995271262377066072681055645417719338162540617529329545415907886019467744332371181671418494569139951811963817063369557952843269510622175462508828202947225069056589098199805146992840251136206948992726466942651833259591735502990056924930815659947360981471255970829793391899199975815307149913816878898998939940330298876660228307853868098784609007694732095794957371779216776936148786762361923343620937877958534478842481150238490939688775071284146230602226458710039481274754557438562923500251589116825272999447156015350848386421034679388235033134313615818565692438101873518700246468820587903718688570744694896515347694589178325282122676765398761893205912123144456536934572373056924246300448560527266410923762849599629025119930202146202076464344563754937232676334200338344279380966990119162230296336294830667772944960025144104615077319983324896458663398708876007319274128178917166607368731669331492467617470390597180420534555894337680117646684737327273274334610660972763730583452044181972009705676938298662521155097541106429724494464858055087886621443489345431317578253391869699632933472868075130442366287618052411366894308340295137632420704696425114249605883219846225187920272051236352982323368523450902623716271675922055734969224921521547552016337222303925637930979104295348404688094786816030114752885000059779588847207815575670205982081401525103984029486325224190403837195507719662139808157671442316536430702661299106611751506396211095338083161429881536361308030232506817471306447222382183102287882067291681080061274901468699449196005773407736326298370736672517715035348555035900912260787812588959539992843121475346884986068717692002440545622127661236936485224324250926084714793678079813729875677388215437144582273977332102869744931522646239052036951452219692653495431263060657129563475680576862768093120554104401544304051274783257343098720919405164813775675614713889942238316662554657635396198791509071338032722524525450065713299814336357180707161961974816707617832840376143674537050018562855105684890153598882062575505834207834113867253945401939593997109216700168267130682853370991383994928529764650423239948605151987640796653616770974624216916459129632492069905058089804748871826015353038474299661355459669731403750856499322909955895010620257113499778404329003700577252668472503380568069125968377801791079927964310543832138047222724654725549628659844995544103750110050018777301938896668271748901918784646702084856502880008754332155957901516089516256678521215468600824728482587812710895679573933025258704287849972521526190857675498480588811751280016258874117060110302072221049575220445067795005888330745631235819681887630588071929648028833700937106856420355146114859966392320431109212224433502952752759359634131233682540555177139009575357093094190213021069587427527869947252620746754878846612173147785216038809375258001250970039331585233716436888465664806328932398004492947680313495227094840313647229624829156729937021004634329390843295596382562339934646481817469130373809172818153830682704932872063577268241342914313972004398475899348119446277557062057575492228858683840149667296743847506622602598948259491878502648506867300695434134349825765403902380947919380944113539946080217793565009094164314283316671466759506112012513230789334165502282651929871052819756031049408782909131691510687662318111024400367730451510154713485710569836896120535361348294104171448001842442131527167709439043682090872271891721485364222139607013446169286141271569084389937046069024840287191990361125423965144569007023582356055894701010641600768312574273120209808096006366816503458769570821521943799728225025358152706341771594514276180364416797537459048407669197573259410483546876000624833560260602895377883801049362729523868986371184324916427520173062649055483277425708420272085580101123359330109297318337631379301661977642929445809249840448666985465344453519563171142056704523870430361398583915416861593585570731071898743558975884869650836215024139406634877783654675072586001092730854522302233448772903784734224255261316604794728915716688330827075732925826065116566840894678705668301844174413082307964251459957984142509034801909562016310603019754820186582225181691542557554901897770806986283374347820598156046774008042133638917274513045946822387141587905919395429415765633705179652790818999958084005382840440006204262644392721497527051184679425350297007916730783260530008410120402151104157461934076316297403726297528594732071393467692185286908948788321468545439743553638610279405486028449302153282939721976280382736292319211030318613724738278319440989774031796187852119090936058700000428442416846072174100458825452877735241346225287384065057896750213083194754450542664926041477324548184966785528650506138322810442924502741014419908267252410822242554094804792919252264714034492202633753896971553497682363793295084794985229413452353728192942991676048804645698619031334920135855252203547840658004106236331155060430426320834576804898271280618362986989146028615147806546682648153474129955053804176281656996159390173439892915871739105403358903498695940138086683513981431597299966044355287729500991532298050420659490120761693867582390711208820883042754935407428049072873354401899682676252992469482058544384691612453990185286472098724877955200039195658007815087499881736785602634534587524211396710838896175298000841620395207823287014933884231894092046970756584420273743877779342157491346668638262935724968276720807834200076179192812557872354898587317949739854999297390054228836188866805744573294859090433210003473085390667163560470805859351067307269249061917944310001726486925991576035481329373426702110574438997144801814330847802470897947553595955259008276101528535372521268685865289000737939021322651512288798146647667169116470615712945261276335462310327704399643259800610176371487437341809404466405562231711471979785005773359617388848243063982870259745807484991567123153774943382755225620532030262892550579598251885379178531021905757350287266439180100517562588466205721114687907640072031001219703829078861553587270011383957611108226127091964472341746084536041603286268607419016509584767328056842203859128817307241260721303065602635239848504142792443441333022120743445195173704551346189964359130218095118110524620417042949917985867728668551702182055491921452097632717027820516842657871102990385441710534060172735244931233811133037029418052023268937639164800127606544690130963516125144702394707669560055437616908784853981295757129089795500479640324769285273411100495020674302336479919350881530593389937990604440559191066318081671897116542821354719351810869930155016621952622432496134090993089860803808393642741859294559323031914380208803123892871867118995411535555109094609261476922957629961088392967566374184708702599593505201691156499773145727983327441733888275221302950503037867071834000016814296399960398593151835162295902474065955105729781789056358457177903745226257361381852865647547269925985127433788634039103894908419666506302341292875586828117918853365721807566360165782194166680850136008176014897610589023609692476416043031534595051936022954880444369821115810028766569609537144393510804281206934387207727566599974026753777084577114377215505115097938278828752805912846196976854482476123605331635675511589120677830612947355589004788693824127896447101071891388463273644447235397573219983231511562206556659022101122549895335606409416913399384463320611434195983886579564129385119205998738150707891851045023811973399771924501979204256284857922205567523795124254478914000850957908724053628439032824338992976726950922038077592028563586890938547298132363402119643526257558462272149988647945378545029512627144049175740828040825635544906216520197139335113505057522110727368296145946403837440876298792538580797968314835416036563742415451969229316950817456806238074134947126017243508810923365324901132163624485697725874070631311958393456303974798994677822721312889018812411094555608995730402514747630512150836513515436314687490235486075209280258337367661888956579869222604743501901530415366820685689553883221158445422702634472960297540790965102738828525125277873122819790007122563171495021194089261001040881692079402601446227149632305691867059700257016064228561750799656798541288039486600141513263466170134052939769411576480978917388774973947837581752435304120143582912984937025657410617579588891998536597620914065180884579157744630939740521642225856857294209504988731534269991450017436639806039895031273705772194852592045539544902134817507472441115389205959114284336351286797519171749098800688128088704175461725101666197942625896599300298618570050438686578191834775619081041899747892571935183221774577881707772146254886576119675755683241925450245291624734322903717619572126617324797082412132609052577215464108321142241252047907347311642131469390931881540394670940616279860388653161487910905817269412057145027933738421340431575747969188110733055226379597866504029350073562912512505023433446447668137683082135554035501469494583906809486886458447290870981432951148990888535381095069625959359341278957816560313582704790904211124365565505120497897192379967518638505543159354931939322772427087173518487937887652044480562838424257745137523291875570007586432004792752605947291588350135737498651913456033527176835759460255100244984217289803179510373121773415725534791341244759465959350355686900669448253340666116887812765174835255466959654238469880710890035180333132182660025306374254423360634406340711132198678932949872332876970230510043789250176648164830308054039334527045420255542567763848270163810309341904872825752730616551744470180441083057526860875502873600369333432602931280449120285046826733256542585530496919701240581727660939339646864271734552985759872391426751402873119088559477256409595514787675086867135234828431963316586347438209791446326472980278692021502979272202292934039681266717101633635958472132694073405376438376149989434646267913765591625457217017223283590183894029189707240419621429566176608557194070738317219402093907934622902357706748306565229391582052864425278811627260262778208616544541833162150890520963758391925155352232684617355336625527129439424764094540821354176055296975689183957021985534420237730903441220290955812811284933010178458593355453464669390993186596124316465963025061083556356402787672565726957028460757974415576699610245908448246724878026240412682079477784192138773828846651626559844606655739951872878177626942208309313425200236839772394440939386373524347727979638952365477865570628603127195204180584355502041857187097059716913178055533015567928655474986654000156741324109809323943998231681553389915767115149813213823475602626273267934420089562086840669455216498411909724849338027599920597896625748373962718783884232176074021110396891593858398487818216385562755938501294437243045913169085359873257599956562494481656381020932508402532909891069947410648217484082552414524587106965680564569624717879764180560752815581745844982525856211301546002478776256230935551994309040937390846401404760140676912174857487314835325769260921336221624863874802530008889846859641865772078374979163181693895049638707176496038189703678615951031351413656036937807956929787619304167051953935555718725227470998683353078086839198540120084552612586123339279552964660536169039386461610814329567476309402687352708407318325047792571505295416323170750507489936641741247887745292566270194013728533933240213921325967884147939201982455501747431232546989112940183794740665515328001245199948799721968195885928306013183573741016699841563086671372676524940096765101271072694891585751018117039817910028301493386462188151307749525074172983809981248371754507192538825667320835202594632049034883840050912377253282129377483293368741786368789574926522750953664030202822977351187090781831455838514084660507467587901698073970999766265677984032883630929243630444821744634786465581758936992054493498499802158346123046914086096998320270739247071753922558630158486853044322082484747451676414417445167067718949653539346250374786513085660531559967759102208888137724121274680635622456479229914096263478470860736171254169444285318661817495050291662494657636906758425539815685371639562713586406153000186785752151584156401986137949962635339019391122199245764114475733941193206746557188496579410698515879704047757688002014657335112658612817978370923932943359112140154528794079127666053955025169602315598597578379585791612968887663676419289591659277855491142663541499123102908527381374789273010667048779322428360298602514811220806630349676033612555460236081834923999508236955512737900981873245499482187997151151907598491149603866387377012367190668249575203958914835406256743175868299658773804262589935318050343594362395390417488600573642461439142434246825398701957879345918425172903429339420594183452689633766166115807995046429666344960339153220083978083635750110452734160694983394937574287312501688697004174730445131583730078214578599655200260178683165596416859085979534015009490574809334626540889699384823213025594157948299613964904607169409150521793797309131857096028063565752013215738554657806281760471309591287737732561937832926087581688268398459849089750033858366035558632327750183134284342385963798028262945282957494164153932899076386362726522590583901891970401559865112524185573165684320466324218711999439101818708746697442909355086126759496471327137240183555797097800583956015997152754223805458730637603223947051630834630531332306696935995470415703346519897950570662914129476209219243826360557754595326552657823343924998860428280969734959031419751812947812631426041639177401966586550370606543650431716941320308035806031563183690445328942586099145699835259292979994057270542521468354905634937197152504829942106350640094224061665302503507366209961114235208803433991376593013269730140742641786056704787129693928455015793305613727836501032497241056979305115009330861372581938296230155709982759263210992163950883391882435951379552291247387311205862682234049073354613175477317073241177721761063317172040913995315075452604111869849880956918830957077669167373794934986929906608959477609976283891141672478325586799888639200226600393703740466645193914907696519691837091730163193545172879824498050394248450718891359720790443230693368136381917519352104535784170272986164039337830023313643812447369342373863884142846737715391582148117431224091370425053897143766521246288312928591426039435816900463519312978071097598584964350861778684339403938248503312070151865102449971571681327926561136227523161089934209307725905798036106393364659686503172303700668207087517961127695611018742194708133514072087137686443108112773969389367047646445435015539219618228110572101097468068370091304178025162212742912066537976733984549945551302601874747092188321515722460547482478825555756999535421495868201991773805630201978141681425033216725872841977638382995278023565866231504242684444278355939559056141595681776220469378016403680735775797917034504543657890347472882049917364659150648074883133445992274605310025160040661550069316936760486725409774756729509219405053524971660003403369067312962896307547314664308680212756766748651313647587999191503286837760462371273352213789120047420719017152619698437990217269588557111843488544447102376312356822125532644233476040987785986407632499425880804477959010586615089073249690640648777537667211490801291464396847856479585410496719397605079081878070363610744687617124186137215453540157912911330513605294151530496735543011919155206469645084499973772266515712780676909490213813994724506796429646839809880612649547404239445258462177805039805271753435270392832589893155639393046852332935614955910222751273096622406844709334233676523549249226098974766799703189572111867325255659215946662153546027765692407470020324047271822749923190043833465988639867281404901937747232671681117040491826347828498036030236933400582875534638531140880852239153984459838754788388855402815854924846639161143862227175551059527305302234588463124943686995779717204921288023488523028612088441927815478963435278400385029677909172824204630479597335104633423672453357989817730332282334461601388155778974245786417289247100456602627007841849523743373907708573671131449688054308702712092764081545724990480312292969996155687358985521482903774597571824520059874726364805456756185137524549287966706879830171112422659710418636354967383391860261501747964165364061432327718317182881965135198968822112704651324768098957436377370349754342703296233991071812367190102981843249755340450829814381496058188489920931599897854081945108319878483165696324086189377839967756376051138431537637548791808531855826039115877695776987316003667032501711673839484684740027581878966955492440852103030883446503045995427437139437614974726502990747962657271926978484882801814622728240666579423280650007374482130188075331454807186026713658362375531318800104720733673827325834853182076285078536604859366588739447798018417307918359134233105515891120622365127769760094774504606465940717974472804622051493794127565428648229280987047616961552038021316291696595200315287555030025979470589696907591863626636950573076184404804201401059980257581547833219924632703139244637936730013140730810914468760168194703436275814558893165689270248435367791567129293902702404468198487186901237054343682862689459981552949223518804598223742011081081667452726749144521698387261690014665498970198591924971028619901565521093799727353034120721377103924952818858344312166277094588734244934235407380509325030749698030564685546130066534484709038176062688378791116778918371061341352073465137026660096236694712156471042397714655319712578361535458666571434637722436786891373023066367297834818399848382498477346852694930064874980886352223829244089376715837593137015089874480782676053577154942368723584653644107659990823629153877487549590695422192238778599551981633250968513560474897803158277104243870992640877390650596950206766747777248636852243338650180744693512793576374695238656695060780621695874507018282136660538784423826298972732698154102025334522517639114838242546381563762849341449574545078593928405114783916511042232696272707769949488427307597015457353324963917055580813531280440383566244485836429704439499831901553677428903322077444969797000421144194012983043350121323708857787896607423208469245604776611082912352537150542414595392093548867041979791778402786688536300606637698234900902910857224796230053697686984401317271777110717928047635326038354754968568588178643768421285404545455125733104360841020200258200188422912850676123879352662195313335546225410570661914899560012817364183565543551520454319499123810427801021334234705755784504390036522153995567880290945198835696764857559428059251010233882036011183805968527492333359474872387004342287930348874327902089894195202530739822480431770967195934071360045485807090942305954752881907329936867146306503552720168602755474725952737196731949507111009175449405847448041630289637034880930572189552786572345503981420836136721118786612719551508241451092319665076620807925574020354707258438611909401537831810662294033228212321651615915734874845025077494304017402117932051833795501513716401863019160044810769881212915330414371189214235503420513190004516431262353226450315352150686402993937630067138127377751516708143644947741759187087662903969453086660967184188212159370213823901941704973377200602280354188015492014887138629613684782096732658434285371496837542846569285434959601531509311318710538146144978755321282619905260878734483000187971100880850784211056998911942795603672482117608870321372177640212746392231826425057683958134873994106122497852408779404238049473871753173038878417761660419736315801043682954139704696557921369099982203502991772850554269594336216799136092035585884981576807721903863028754751805747906203132581460395016210308477090983773168929458096141497214121912272662544385088575410496074557322716855403829371601061484619161086559674812963310615964789687289840230373640105549638223520301129389137406527143108715128625791840113842196786874662028656567603374131457168643159742111384287871879106826002919879982777167577608186138160570131591249994743554720147695804858565581746261339609010538085744648520966962741258767717947096631506602518706323216131922391579340982011645795801654999922717274120106297652739187860516977654197757952043194174746026631673621110195863206846844502173834485461173071806972592365696043479522151970006691757331550119282292381476024199210123725437593304076299889044739348928116890533330806594035411003309839917459810496308280249584703144781997895969083909811658167808200906995433870362241370139466547404382106476521707019266523380200288488881856717531404533534000277325127796997143207620165230493023567751834574360695387479435101400568391517164829707962890034460223520568782326162232363742101451840216244033612948106881032207975302655760207331008926390242699164962214029901053563033077105645319416007935224058630490050332561014925911668304551474523721888370186803501142063002334271977387191810144087075299117981033277967526330506855671577817547256509963819489757232278456844875591757143967553410915008870164225627562069920728581452477786446085848094187764065412426565144667155326569246546250873790609055908790834232847211195361780279098480462120956859599592692014600070393204666832176062472752200604383448582137323531365397604813998324318145577303834552424474700174634141740545025961765739513544367632260219730985651756286530033141727585328905844696079967041864098065193496520327220921313245595327291004064540692788337894366483653532453277688707683263261905693938798121304150444675761147548591165252680676885862685336304800653882430843909877474003295750559260171970319918756444535941856499331738322289434291242818332581399659158820771678043419061006001342091310143104228916567854948685414619867314691093541472561368588217560762378560707145299949309491446023063021597631912719804841597427741005327468693632584304042378899143131299197461015936313993432339771105824065076260120671220370163489160063484156039289092676475084504906363079213952337362304261689325388691874106500987535849150216328502837328872047773167240362820336002306978772673195626678704579667175754577036615022552090857458478953118226651261374836607551568360339264050868206865222032219711833166892633115656239242189504511086614784226002837209413647683483340985704972308464487054702660544476231094738467043480945667536582264422514739603559405823274278928084740085618182790367797465659180728079499360238475396765196583715170040803822063292549234942683492886087991631225394287379818763654771594526486902671008420777307528572909009313124291562932329487618333435205598721694269533022068151223959917072291140662506414979930332274721052207847828539054915846713478354132978566536844542206554787837109171962644680268815353226182971360534195770577485634682513920298672477912735774767815757740852230816826682292925966896617706881423048191849001110463222680416745325305949656968484485805770399575310344889204898000892767133178488099177226297118808350566973241183747625346742991188872570693260990841794014741492151992590328524281365491424290848714860144312988524215924890711417324097406526904633774726037741000214946337573146734360166229205916981283502225174279627504558985352524947617106860317671235702382229705606240853102712217405297730368617045094205444964237656012327651920940569065896879744754815443138134939963552456209712099364225381734337001401288248249519437920480748743379494070377027762954530134991714530837115860322609088859437759782465645953919497581902379227880074187614432181696559022490404899092224856631018257951926931456413691748851668051064617536170233401854234176126164502452274482856712809796022721457330748935359525129867000819020433726374385945378132261060050395471826017179182854603001174373324609518796042682297352468093371458037354449945614263705263449680171454790684105735783692516134983637647561340830551444863763444463445780423624128272848440895036240137790365573111065565927315204530916931514594824687184121298520813942750592611994799149050904184651599380648166335190696022307976996638986653077627837375169998158687791337049673481782391003957758082339906533130651063144575193183505192403539196855245475130891328853417612146660306179710656644774754901006680726155745653742654551606352103592477715893644020330941243259539472419477774242577942930156630030705690601373773608400291945114303406289603844738249303486206129839929704991940162856138841540070622559798300694939300705419708257767608299280024907952119673456285008954227848932784286263339382270716152497880606813235983787536712013906221169008231358165151059105075157153329342488565722401456493001398617797934503096815030108054900170595906367422529084783828388309102566913701198389766132601307378399777458283604259227623217676802691581302690314908291476041381710121523762486475828761927747735828001201623982835547740093325647615613625508490545255739668611574501607198225117620131757864245006930959895518423895946096618271267346261576766719283761151574468555058817145660217969611693118607096550726304350434761812982003620306971203525986394065371183879174337627767574052589175029610613752503740671942764577186589349801281330243950536713314459101277306114548726963613521751996230911432109538787569968566845634311995525321670642023884180581932423917276356343012926879882293250630499029343218038966369875369005328644549527483012702113810470064558887882417627678707714701198950099380052852728517644346610793271693912479566988089687865098919426932988563474945310684100020516591106687322017211180225034366331799736263337299949549488173403534245332069454956303263412156600606863245151710656389524609754364194330055147917745747138370907433815044343483950392646115494832352641386198730827977812971259527844120617057019592742264867361089575366587599770390351406374093583478970290323690197047323146949455949096286967587801497160401913033621071919090079586502590792933500726569407576637741345243866978389772373293711864037630871353709301242063153776957568486014445589934968211218534872328897564256325527323899254048211385492664295575530984359506119013102797976619611437482383333024389364305949481013542702797746600210820535870279976671706899738308916240200267207810599887927609786314837789198199738821356925529801819154957911612805667110141928324369485299883475500383453125662323548662508623696589590756212635620761551313500515197702617818254122993576610936172868548579675316723685597175923157785375442582556352616419624996805074006271561196583288543892844833554155161692260180826982206264362955275566128149487668819515329176386663934519269540916911663766374207889742660161887384504852016230212400305631761146898954586950439817136286871646386318177965553314602250450740620848665380617671977732152853558383229561010443894571647929225081821970069861829274353316477403154464374545362920824401469663851282817920564533893994174647168726828807893300463663371113996723149243481595279291269601802958930553749692377302912189762894869435593279777178832944923350349972333767368779807395066327010051992082697177202875895957738887763997271505716635915324663591537976699696107575855022134388869790186176976557517385143227602250390524929409223742425334363703595603801817976165161623053641590766910202101606562631358799560811470076869307418465648091270367182915000208279182267938015457394494296162887558632985038193296887675148666759807736869485592339307309997570079096978643254823638804394439281678185494521321485899338439557980838178585106766690930432099971174760184323626638688473114825156067476484350983176481406686461406371124278453925609581001092970303518815352747062180032111387960911893245721384145157447207700525448884119657879380608003671170303345746380969965720940986463020227154008408073651096104102281957601527619001452932054746164493873407838579478665202181182515787983545989086371339134813845671517890387459759813855916334735830514208115771846235658235385705986668609028124693233762184486478618947752111620560432051492814436821604852798672414643546396011160650289850520852812889167897642032877988737315837592225178691633759143846973413894150675324980308227820188802473353425901318523770145909280688299980637170075067851373645486531545421586376180040676055071281004853437343419844316570875394709907845248069337394012786824468490108218436588631754651635423842183892321792549491811199305510298689935203971375292143148067409179529209455778263942915062046274446817154358703489784071063716310481900405425003954837345509789958693048128149063370205903312214321784190603751243020497516439320436147249260316581075698842017443542429958365438666370916326729937958425631853841084439961495255296088116552901799432433585314745265841449649173845285916863684839835733830470820831253228811242552606458231573785545074969800022599924468821020899729677126271549469980745785498930354918395410370600671667172745893787580934985326536522134121139965510393163910741570094527707173220069133438283533923037368487795494685378203962202070631066341780051205313794385282553731096489406232906793732682591078049782971388869608929219910790136898806461593900367873534201071575078473405140322001245219699802636595146166787996414395406912509494874884163437103832174841683385517559785355900506804413959485219704738798259162284213362428117272724389813051257802506131165128149622777541412116601495255331109391139525774460093086348328306779779051648620218546584974595580830920629457958147081275545006963642645680775030815068916485154997883244853193802271144823116197305260682360173476691651692699859949976751087262429875457728470213197361535226941870883232596800235749186825241108621910651165305216641885585876737632927270593243830781883012500655975128297888871305350736400709293611107677171195400978845369649641268899600498314553987504175447627579285809397932313541496899115141646329306768188623179734069661930971268703274295714399140850593050810104867496753612977273975685922133718380335985939064919167164742827254463307766465294581964424075524213841576388586904193144267677160670795422208267304171409756157528709322706808406988276726921194269134442213618813811640793050881635952018445906266851392306039105196812419864173457879347493484455084926201481671640492467121475064170208142133224754195874382439918608660678139690923670576474928744817259757460891718446633449066214485781820075728643237964520620639842646271637767775816102067508596368020326241233604794156690719340305833937529100739623996953117247405341055448347453738511309566654572790642032898176186064390916071559695156787385684102123174067134601192284220010997296420310036169807248909429969244076913554070596360492040362285629399097393359148352458798679321873815415379168222058767616254703933441450252130809820250618523274462356353879951636686812227079476824688605462774319415613285207971067571837256158019175885216147752610155412390190955304404489490467188224092524439299454198293846602526267870251530819014451187685316293143976570161889847218668695464466568437440101206810784833806875494257720271763982910755407320084963418708976900814213823106846325657164314530691541433934831600807013518526420715368117460606882569249966277101555225985969580711578771022409258820591776550842821508478764321175352758031847889564095072504182986970114770530679234617099143606840050732283910407714877564713039681247093006545369419591431396758899882016026281626864200055310985358805706782383401217761993827867623791223864962015837359734473977853159285827058807398398985950708345901631532411025857648864907151116769258544444994278987933092365296745271512306583464088200115202056250814142702655230635511868140432259014680854362344228043006926880792661143220722027259493177651122766635182256782725062767302134575511311063561988852112276257368822356262828115998770919374320474804466662712832895430878491407819291802294356650344176617320972283090519267857559321608395140711742763528674144131161473400396937332955080395681198810164937921164795090984782822185762993059698222097790530577998349951933203348690887484257522578757667364303549585844008250454279847849860732376683753488240996090225579074344131062046166991857407609850038965284596328588674543183373447219421246069215029441199509951400189247049022206478921212686299808228336110196159077805394603917468717630604162052852864181758893405103595654329931064363102073630024412676584953549468064881353557871427891348708577648878276145251098532184746140395142388505426305910116779244230132166524099695057554382466584191136842151241455825009488103952690564526149185380928609596036189319957632523056762832898916287616720586890700737821922381258416317582341097411872696624853355204347553605227717619710401981892458923286199383937063858393950050745333901695781604936540305686204908735120077956645090600704668570610672192634269318549068881077374143806454131925485015061938810826727724126352294213090098715604502229163795719244493589018002930749434116281858748122254883280610688098184280270133722213069992804703500842415132455714287514729985237820225539616271711019234896103253377731157411379706014615555232801439284856741185226023766813073351491229197257742312482994310008844361976468113528729368973752080882017700466041520742656535108434576296092181170933997055429123601265393144042263908987138825260791467048549472533531286772335640622468502402976328530072297433578713516530811120245804086694781718786662435264368611738795559620063336660999094456411436426036986989639676570249861949076558882014543024331575841293026832420083505763023282088523370015095674528034580267264132725769002411919131593362495292225975694529125155111257253453024155218869891815751447162900134760609987751686138792125587386770684760705107569052237700234797752843499733515001883494430639911819317443189552663954278826293287843869584966796898742729823228560203054397658155817922296391517171249334752899504779472747322271072758743353833797850795930066789387662527647068585449770426005700034702066298547512410902711608174441432275115649895793083324366924576582542823009955678777283438461142738515958185620586758426893762062239018027045619538792134619553800079642490550471069405107144897416238433956934181360745022103104520996581771703788251980726752023650538497394836100595538534628556645981552186999996123540484920488700501800032099919616373230696002122602973516518717948314565094715225617610358446352520369879948577124451002488738654836077226864447776972469888524967379060479563262550033001458423467943877184899076565585790061614286658116050688952464180760690902209868015359767444413331694621524838004913213772422542325625445425873404850272055758650041133466661480455279005029990596818697881094460780557177310453814755578192462146649509002306094944419720815045461599429807650819175246769490240237360297509264207990232128696393532160654776885118647727135157158054178258908684268869493862951176834717899088903846365808323619422837846916071113291451541356105425146554815514803833832033139676540218176229184614862011598490477511709244063264154804412837414762434793067203633279639032902483889311375342638943513203997238158678992228493848974319058539771317833885889377705665387365843692341937157704606254223159051190428978057208728030855723808765703828181253870527123690071246460306627644850351309343069454535770409063345723961072246361468542163571464963419339199049007149698774219870488272495325844535443824378710387384513743002828704173208781930587677952107775748086758090155797551522117380019280166764305028386443677830113182396828861617094130510534232312322514012873530206536421918593240793581261403501386441959393451794103349597181321880351930864209660733386356686114993394969976014577138372462705022565818448854430006190636656504694139394694043373506566787159068290480332166268069542943039256879794435618586787115719201416910484851867395221024286320908529234448314437850968344894114741056759150821161546878224393548736986440576993268180433407200699838586323470223070914691589590090395838362759634426029534411855215229564830144219477286090421595556181338733326775691891947800034202243078781390537840865592287582919189277424963906489749650131826909145494142264778565064818600037857251228080804706537354692098794640298340420371986988478495217165726674660571606843781359220117717432409593649371470089152894728347303496485651523861825252939734931601092950431407884865023032619406949001503430175152005135865507859005760558882491980681528464244416238128901684051825948597814050531467472530693499614843592834578287729639118480800569281361746538516182042955667335471278953061604069641257676178417330450688911486203782597945286656569794296095589952035422215149449530471496326968505861059151960345752703352623388613548865710770819962028322115451024856857621204157906213446488807651263859345394536493184339725009681414529220513288638841083398967315655785661935548188318889252486318328839264300422267272838300271986905586551917419547876402139847255300892994612472091199580218766607936869517136449482576830581367242206549905212303350210044614337334992797666664730889297891627942843728847825281571029815317645199262909255986535228015062634183828269139656459907398653289409500211098828594741611844645124090941420508134128681827664860627709077124907634789780341019738915657595021037637996308143796516678463018067865198119050553972359783701387329204788960009097862290550816879168939450705247450361573169440592688819961529614027347008538373499535792260158297557784871620701730410937959789001947598381857260239308003246004575007963672966828876466115051877269494800995707177688185428687155551603648145994858361824113592462392296360832787385753908466716089459670405854008809064948211967942330731779890870309901609748153192806497298236724291407297929233527112699891630878256111164950535004452021242580322585178127015986353562397878609416116276409206130283417667728742329256511217090868478827827921783863800067261681661527329812143271172409395177016265760132045083107314087697295913342645985815374960615156427297879543188087981456096506776424039663911543590816726924141963520540782270030464364373067881634750610569460046500436029362607313135340657924330954902266898772886791317848683287232511553634037457416116635127277972621053120789822705150818020004440338320564842553478943879287962809392183000189062138254384308619418512672219088133952159114053875119738521735820815731254287144327924155781539447519017667290602346529964043482190553675503738074056856631593827962380064234154556580003106563386892109646634694523053403082176968718007660479617436191238099178824486107928570410069423558948972694083586972260649264591550655391246289507103657686825439785314307842448434505755311522727512135326688980796928130134836203967086441255542220644662461565075787566173115188078667438935850675319606437893116022517382711774309974198929552374707044747697374247731084938922742694274001480387652905474880828745725052299126788583387540723493545531110511354738412849996827881337713394824740909178971002304419670835868494494992269860832498679291921671816775174571269033070993103821746411629166666174814233709856514919429453900861408459162282178630484642313829159924848437592857126579299045529382518905602739507725500674828345411332327980317652903534775077413574066762363398294693358246625388509407957468787690194012488299803084985325687598871457894755061794295789956904568655552849013501724333699617144911576522841040670366076683908491965545180595721364035540196644015786968229464389133873456741702416951073854099682564527672812524430184514752489798075847251207652256562230786443932009419547059437009113519778694914410036843045365519332006260924541024556021712918590932203719331142041123136456125899393439509243110988968291555763735714086404832367892565102963719951432430241153073607166265817204282501260246118135454159232907522109938594147474989661854867001913147323210953486284507448603235185121141895314231275384001688767782948734340709876703011259592733251251068673363295238146638513789681971008134332466941012224098592669400591958771561095166433370589165781819401463722863409961901981043446313221547230438211340948767097325976182803777225115162654640591134775528034602949716604260912848844216245112671777015761963287112121351574867455443952347760108959334951195514789625204020839994476976390930756692340360648343652700519827350980864764679961961865384316338064552330155928724313222462078201350509371541567070997060050170510385018036290600360029660470036137323611133240029535953641652974695711239864272399172453568431743807045838518523278003100834164925400441091165184007103382548373100839810794692865726286230423077402776647032915417312250367136933163141401034669568211256276817222324244782144300649493488079590659812343977831613171328349875935492701631900540917730863845539111110099173976456086847870000385701644819390124322923076853005724008939493910805519761458267351601615961380318247793178111842365114417807129727293593055443257434923796217123602758253713314457403661318926822466965386280258002171983867837061578162945955721831171699208474730616057988835575217082862566462916499892162878297841872781370324426422700875287677487875837018650357762088393316040502230471239631609314675816339787246676816354892730964545879060459337078093161349168483074207048390254358934857712066093209781554431215442038955791513056033889309099772811212305540069270655646118553318173777079262945110938186360562754889365060624271453531872866869723937150984253265691748278698059798835614050381050937349085434017225973977359389278045867769528188820667038810282225409772935063131791439280158557614896120995662363900635618062691635093624208362387689612812820010491355368168429447931331288900554148843622739619726080680289749605403421866772073518094804569007823727651700397941660523686535606679490581390620523921875983525615247294819868158007741115140326969202771185504063771959362403238705996116069377296904837780085088475060139511180334234304957761809245149802017474147323292937356267566672506452929037395503889493829812763041173926952816866905574124036100390452716661624100505939005982352153941508053585936479963052213058877630456726025552423942412644904267141834191894978537795158995142273241389924097133009124778902861671802250430387032941629937109667876636115944989733657920349830830113301797226128924393079719107233840986908123093687935578596764570978506154261347500356569909215486463175037864546890590368380101948494745173225326908725253688848702297147961875700168668739287587790054887246993920190306465918393838018013040911425220883982944701200644886855353102150001415887161763957254143466885140693350067726258331770210583882309153085551358502930419619017453788045501587553941003923671225376574024384378108902462281471112120434935083769820367632479149828204890733362401622132212588576135390754444838760276766005086689297599939346422878978283636213605391637759444760536778663115236237895940880446779280869286541898958807816787208027453621370270636527825230364668457069033932405640479653092985327226115325318122604415721247158215112784139363113720488585037525740058177173355992871992586440363057280783983896906387718062091146851139487696661321734175925451494870382732952722663253875522383205442010904607428046299113690344501097063653359985427380904560017648882586398174184121233563235914506555692482801835353731033594388810773325993667964467007155049367011145565022880013575990512426423906577012900790181858369553156475818888796276743888355493371480043496505316189201434563170609461292339400587732037867184500162275990404664530813882347635587532567520146592625033174075619080969031268218473625255112159399123038057835332558613129150488573319572240319369910154977348414108342285896123924172564365424469219633489658287865269946459811000866983941183982073794497195030842969927911127316660689531137279562866427027909595026260115868416126682211652224564253744066874809052799546373442253007673750187140773283958487414112903890981987867299024720435674247036911241104793141423618150597301618593864513232842466934673339334461379156428715407484938813188409122777387245066493134305375813807208833329356809219459470267778652799800884584546072129702281041091812392024323335738825283059934831037053293114576843167375985297780118525396338545901475487240323327268039808268609234207073192141622164485861599454263511874587341839327239781246566165724801233871081714490342195272667242376165588916348367219983847581490102796237438222995892122868420044768509528312805221602628697003247348946353876705550715827171754169606002392111399942880089291584069417594048518794048836636390790800545920175608494511587076775238799303760963688756449736614992426808450227120656000372254801995603664248072653172744470318777901133063036324899776536413876214682065254532437779587699855316093113540217145008982017752514651542636266182749547385507715599835364980495262611890390936533475204010924419400713136111105335308936567807984351526357849892081419948181082606368083982072934972910505677962490471069633652967604035493148771332324321693028188603452529319226703832196237431421727259099066782345180730109650457428256073779634793046912995546616161427394202140333808988464635296563081039283810154075290125336227030501348732597238415580539684436247493404060706526895370466100312084614398113139388704530359268278584102612189137933588988712658257189878273479269410064828445028272327517940001217818753664525178025819889700432394299021751825647028793701496344508489104833857633375504365645556018959482895227744922848380442992745393308677135173789342142789006798478657971936116139382101925103073996507224857360386188828974808992707502741955884410313648960289475781936683158733382136757407954349416820039164520985659244052568762870225436111613831976932173274028492287355742306055134357723860355949767987246451351515839087382106681129571376795612810650137951131802839299080213920020876685209044173866159151089289171048538557275122376709607917046350136144038696881459052761609444870990271539770147517698920973931971510423072246803496513820184516607586972452882714459140117101604454759455818341526881514023183233835799286371162755368923752990563106755261726448515710154191481902564690919007388495328114679904928218543345195997306607235111840987307024538182498844658877084794906336873403839279883187771121090936012560177399811776574915357097834347731678335536221419797409704472464774260674498397574655974536560031875368000566425182817169092720411326846797121210167192422884549896168521071812101978177644522467411101852234287486445440873962808295072736056839162067299590579773124303217288346492592237325961200386160002490228656675383408349567129233618331391107118653709608908178675681839308194199463851296792209046912158699660869624321169889057829693407284145167876528181812691069792011899383591148751418420550559411979696463146878663494409436441380411627069287538374192541966880676974186568870133782387486578847689931957364627446698243831554931820750922766554071694542441052160550151735664257976176303867330419486444194836657677142189757476039489321244204397718475839654942232621228637938779523050617483821284383337678987310943374873194801974737161130041919067009333119916010018998203528058878818668676719451722538710464033512889615908209130357458728691675568136332443519408711456813662517328057681739128843763709169513256974934735972509748620629513028428591326822448454712298392653873607819797235790186747307390543788280805830874839159059245316664696648471616047496319167283756507547842065031076279503884800801630380659198495126409581511240506886731582219785985984825029636002725262043665238792400852383479353834099572691950459921171625212214023466597376968785195828757833383447113421394292668271010343095662115742513272734470021083727275955542022517319624063450564681216605973892847340776109839662974350050372788362606971024091943677084137296767531230261903994278104549923338628269487248579520027825809682770942403820073206546851836114778761156971338374695351239451846522504220089274923012004371721127407904721408854851371755752065080464149612445417498448041325128630351999527659340928444899727231531303936956043410031571148477791462394142324118964248103109560665592052286797671718262154158790836479395972481086280078555819358886483117671102944602538202503044052222566739376297403532975795790989716476275836764215411953905769196465822304784754307089520439332959424109012526022250301073147216529644598365793948093406072133475285279926062863364665531427678242580990929214303143738153112793699492736385883851924468794282748338515036630193356038416857131867764332378576327256892484335664418202616272003916526729182828473077471296233094157579433034108355282837597860684608928152615652257603857732926160093984075192023829064879904675858675517203047333997705003901973895330587226794761507052364172518204045322453812808955179690596229940105773155498530328059528981809111432706352738058399726945762485100319246611867074747534716873567419345226122673027187716624830496134591979307740490782859310058829101834440479991961609834805673413652259870865071630581864009615308426746616547941718950304634860329707915909834836664449777317196744698197573308538064097113913594998230450104733340846636018295033870874825460915771800851310535499527845811873204956153212546677490487080612497439703234662971911865220317337643216772305425094885742087932549018471955582858763452128246163981700366066018925345791342280587665713411320113281767478700446513833955808578156106985795003594009285232131739098854685717934872227047272851750161050619146019811548583435277101948428198947941765443165424504805477610256923678926674510388047845678978005917741563161489935849016506027482979646836914983510681777465189526688819445685082562092408794045964989433457916430667856808572634499946231555994344766470205704646283252617651988362320561186320904999053699595756129814960195744892094103493548281617417846997265707603284138541723704280224059043346269580532846075908623717321329714103824031047769471359031860921485883574618082756430446485350790115348230884051350285821096080345178376727667577181724471975192761517119889411966756292161961467006967200319470615275608934189942028472043032703636614518940798348247378617803963738412235197341110299115051716760740544863684820603924543375191498986091948175883663750478204390542465684421159828583905051023182341778242426021288887069931810461431255787957082733351594162038062430480987055384223509639365312467954713887877233104038925204995965495460286739093248256958124863339699194800357799394814059357601627263690284127687544831425242856399568869869835159168642007411899010371870522806178354364000691505362902993788109852338487469109127969606382491642859841134012562861712357151217173864751099478322112480172055948639556503314176986052725272175825450014224122949386304348938180926980487519789948838834354469794680531271757157466403043465793137007822863352277472158050738182517686226386444633734599354145830556660217979207297967919749458869629016779108575753685434483088605122429282173768596327114863664073620635141143418658288815057607329349138111781141132579730704722138110152036192948932445756917746035914513416724882282701978170202682491488857159736019875818260238222076423173321979219188374510116017109176861547663028968009308603033160553504726199513792356599266244047192005394639166000704166951956932454075033234737326904952009403976374756547422308762527657026169100679699476856788511745677356213995350206679704976979503666418014107686652051727623595802553123376061276486136719517644879562971934360538908663387009275131163697973735553395135846117483811492370072877549255487885307559486837040009421280981539355930450743339275788800828458273962789536274163411526524493420505607932257012248295955943306821998534900078565931095048419454732950041546173564685645853779099367277938653479166236847944649152198251472861324392226851298224899757159717161280033437268130135721299537771744999910194964703424654058988212419773130211685579028206217653114243150407332155822260078348274451486655800337180345121238405483359807910533151439790827101411607038389112576275562212168276587857831253199517225463310180812557538494783887229496877819099232204882695600992099602057641220247352573755627952271139052678110158143135106222404774538128065392016894693699707569907241012792514858866609856382316918383787502768097988596308041269830601037320661904773788316913046931727640960505839428941689517294669382274808354687925057630486503061658850140272762467579203251139072332094128811977691930522890198398496909590882363568423902681975960549683637991688837392550378999445197293144446110295047032956112937150641097921326321493570466380162369626586273278583048921641391475183640290449534279356591523893163946622350248470391187461092457130410784614713983845320953575984209797892664894955703508603136471990244679296047623013778412250895365325694014582461011007320992943706642858727915046288974274551393456023283031320286938978502843740128925852960354039598245797065387877330181650452040574430258851368934005330928630775465039404696557380471420884060544347287767675360819174132520570473428614874950607288039402267127672633970200991816627425178463504628501915032745240351894395453607650060734477062309888628878202859939525421812388728159011723251326542766214734475964312599007213278253557801644463283370525381759900920234289958752298643154952963766044005300695141683301858841898218409060922088263259783040642904038383613260301124695371990729047282034624559741989742144659988545535480804770865235992428623067937609973044994761414574191450432001604241468199098557421459693788102049831111233471603411825136760464815793199071375140927067979748086269645249454849878987745501301569034534683333650730630088729510206932783787050485054384765506545728832017415155459513187621234089886714600107677802816590696658316153737643020706377301331155716586215604173199438144310089964185383516983148333230164151034335927385736342185250480545982733340221610849575896586130898299272743508572495192426290743508617363491615074135418369234967060908899041127574207692554690559955461307918346947234363530093110463781642455416639579083608822366745821195977604954975135787005020878896323407560201254615288655742485723102394521952792386696116888850719802114854180358737099502041627559749735817418071835846886428036511433746122629695254007389688093931477993516979724811044152919824048467927966063683842650468858498588378123095896668468754322681124724995036632835049160873913744874621583266622511762577977479125732373055751005763625388565756706971043778832665227538654826312943373952687761758376930278739472561063218046974359859390064488423782775348351209895389789020012167844875609325569978075496185325674888197154058866573414037320203625454722720622253076497283486887013303183624532050806184184969010303124555746472504878117059962282598868123810451756449443723635071811681184206580527318496117325427433282261702658755518266115838636865702574425504079527502120917975329315092659548661331052077142180302993655382850977536980772479583407037586146274926860017807267407056895221870213048180737535982652709557116875705700628052528053727149070946897125235350100760854812452617743067805234113464969102152166064134785438288332952975085281981705408753047595108825818869275728916876556268632200093995557252892885887627624343870964438211552616770636156359125087331643819699206185498108608575484359676526369395785401350390490203398577389356622049226626048171445461388616652401675866874826588735885543977451626352800158921863409328577307384343869836629158662024655584446682701311696100350667384952617912583724011006355178531382362025220489984883144652158958122395545008205453786603928590423774251538652581477546821731825531407192509775308310346874803745896421418702136829148660204216190998799931434478445993893127623002317437333381872089459466380509866117291349556903793241550286277511822467485138249763496112399634160090648614264764085877775260128450013847290422134051570227702192348939363906492984572683066973351685592985594866324669865319043601578224937442944214846637693684161973491202243990225285484028240365983849569470024774359809259075875027474709468108273625127436992562187790108399159645450767245490423579849589743710241462627706717711945998200875718798029660630577730157243601190890493270453550011168193670250958423036766007945705359390599780754544669430838628356940120232655450809491986773495327527209309506579374432309969330705501798065913867016255606649382479496682091959993139807215345901417423345536719427424747799285148337908012804966460381531402669218878917052345213291485475750754399288992927952976694146703682020125976277643189964591598444481872326396945630984528573638956117744826702674527010871275795332723409694723215587613003773700122746837633988806766371822386930839328497102182759634560528714448739794716945671525030389883180814515085559460463833710695172964456924940541584943951841622379245184376091734102771502217939328669433211284940514033882985543686536832041233787050405639032144980153087006191693635929805277150324414208234886070059862544514600315053591197614076507930230074014517748552873901565027005264322680695562139110887543066866823040056083617650729387914526727690560901576141521200544056327323027039801458920931937449185377771317615008550539295421294169293087907190495932308003980208216701163469215950829861880369733683493387540299217861216660909842484897418394010376231962492507046470199738761138507183474562185057097828078202727569108162618331603972109143228943188287793976727186480859474075726275918628922044496848489985602725108600706233890517701303684170444841429861457329394792571202127905701806845931606964200635512165221384639239662865847217197352240549863135406524811676799350461415453620902937732586123069217873069527533269352957209811809477284086158142036536364589665289090306791749264768282182369542869887860365473111625678487759883779795847789994114811660720006659159211063413024175640882612577414304394721592747111561765510275791547662029704179990932417843400344467777026133729308919964702963902208661578054919691412853397408196306468630094601206336100954327224146456248605279018267073523832729419343300537746958792532801501597764245986679509122176356296010977230974131489757913839411757179703209542938246349116412775633035711097711703229619976265894653337999831469559627877598485165310220373490764158998189950421453114555093054674971011930310269822700627265842636830040877014852080965145190508196671430622592783851169963516632658987438417319333374181421584418967147017500678055714985516057060477356241897134007350450611441616218644346450370572134952173787374963374670062799880141543908570906401388912458255909453129644776515470827832065693919527629268727506970474969915157632335455478211459252558210122520927583641009151456003269955379876441684495043683940638731443589704704092363966652342857702517554137782642589785990782523980380275968120517376362823325532401693074500123037900383015716039927486860107953961250987380663010385747596193225075594318744504078629970896569262632479697814063214135204512401305666950367813220040450324325087804954669737306466974473053107026882306123363315263704396963974111619184190997326079486715741586950019148836673080993988300374529851962012870517558562663824685767254743802422929902416634558587302653103344783251092435616341609303471610647581611751775616625641026858202023984385903976674663726531088383829226262538026831442909071914084901704931088048187263095636399184633735946503073053843489747905457335375258164164775673902365140786249710328134556787586153893080264172082480730389105202449160090632852147238165387035507135159839752475654354608400503091892017857620656976895427763476695325706730315007688094908506888352493193872484998431203795708116614554544468127707461971951904491519774992750554073408651613029305410267787533745164565592320116160920360462328379825267529834129155522571233387943761726686759712260340690808161653110832576668877572503838056828103545901712016713503517381983676691979707272919621841687305028654544093755421261608861827303793637862310827076832191856526955536516994338343631809442613369468272950984720250258130763114008037884271299308352481637249045494848258062963632460650758091564305919042804907236739619842404356289743166556622258525287156785528497791614549176096536874334096920513172237484984367477319681813351902834770595019311858316344581860978561166213803430997839133289773712111530116868733947010464031081011881038872193494251039808937162375363477000263315803340164527660330801965381487666337722145380946525744904084545560037224484621501477126840426836509939656612961948958696376476142814256947317894992735233007514766892803683095554846065814844414034952203666801840249483133393100245321341136171966160945315892445548631729729551242173477888768236776416925548318398263790712022465275472861956339632415210012940095912335231303801813821646252783273014273408472618305344157535816856284891729784679662086654973334905478251272376776507699878034308681276461976764490475561226082893943161164684355471111667193729396425283977657783199339448949131005252346153473407177465034766296372618080951292786158360647451611104118695783265095827803637724211664475512527060172948632601487786606509198243986069664123529640959099825765037953427020134664351818771625381665087633614226426085199133864822884508761689995248278456766276200785420003854462921359313832546262228371116851455448420890592949471608005105165984720703347974293036975232819557216699330198980653364603955371776444092062320490246754001586587729308389036315527908018052783171882284604198678591052627962406585709888710656670696134512656606299140853211206648916815435662221337013865520178468745522248824642835786791710354470174490128548077948871334133596896322369015580307712550412530913517157264160806376245763632191834572242527026543948158896544599895058233064929181661994271795412962936562817129347502695681273842468887472450024459792229101370459755287981984150648017146475960761291542453982193976059401817524042504074726821173823849039472568788328446248319968157398872721829927716247000937301307549582351870041586992069420651340685649132702792988026462913964465007080620547831566570967794267663766702932639014027507046544414864340748588675163889982667895286161708758303852715843229459775042029625157018944155694078828154797034785398037416571417878758433203594778345104387647334706612587545019292800564052335204653314559980802866165891694596684023399835314448015820905224849780443176122499979063804093372301412597381304991185001956177796549314240691586251843559840894960645407931859578073060465848188513561069311596954716401877537457503905484394762776836390297699580843777987469792495663605011094942804566253925393043202197016623657351030515873005194774709948069070270945897941186599355535012596186891867136287615709759217216802668709536564542938852734192212829173196191789129247266048505612757451388234212634767609742287933637470909087118895857227583307775619706184120819709927103463478182917256276099385498906881070719661951435382120900279488686315105681025065458744133073471036347801069474727874659949176262585097461011232359896586519796917254645342825689875139050522184071619477008776922163258668724088321883949397150444450423430731411601288150148484720912593637091546340842238104238892440866676138916247609289041716637384009448601105589815095429552883467315087415066371487894667099812777133854486285279029567079727937108595011265303890292638243011812183154404646146735369516041638923626913293671544884024009308937598897080691371337549326567407003920709951059692471720790219098856896847418575781116304168658610848260470484060067795345523798643086666637204742278627402760995938486962446554334949644532455021138369035105488857816703507043189556448274113856097187675879974061443178345153431784546605255178070844614688586399810665344447515767890082151884502760247325621551311609080591184641012702402232619013887095208931474302542586955967195367686399729208028477091897825353546042576828435355697732299672989346333528587601216292468144796493160466425609268568666428597357868055992875864739652596135076859860231839313333906886078210439723279977567723718028077738238237957541966810124399436970859289916249818689326524229723481756227699479866673210593064291093384817820652352734522604355234660498658776728701736577621407376268208585995533401012997481237849758699411299862220201804189235143011509934472873228805781207909568165398625573005720394743859570580559781376384659550121490631247367197687661988078272655234871581286250987328832282175254447573124093741361065876906767902787107754426262520553139912469952196653322077124307510491820400279317290951084828191055019969791260423179794587832111891126512226422463427833012270437255663107764758383037551670038915143749680667369376966578755675485555865107277902659765038480279225729381421965224465944193345584063832301062293142766648662043749723213476432074299746421654852000665750191537706920997551307503293449663022522915463330890796395924546296328647836631865554671647426777215574727365958427601744133625358444026790607723374339338817006999951314521923594355775855107713504113341506685767928706711640415484404222099820994019512102875375156428660450291102111619446848830842836828011559862798125746009472110111783957378069101335268918594442427775017703315821263984327272527059356407137314250171830861471807333186845528892804616205147396379955696440076098679208226465403843200287126755116661468859619256860234720296528946178547053141287798361436894458558149933495978602448638611991610931659437896627384990715259838672027690917306826663748867004219892862167336065846756563368576130101888273820084633645676827676689863429674958028114331306954133118789740867239316460280918815550880002502920015571197521970891026230980845640009463732104544117668135075980865486809633353393182112881270741710494798897597346963088614821982811668739982613096511270085314448665050255003907685438929495918685677391399003368647243152006845704378242292703015760299245510634919673625403220864051436364727376304258385391731386717522888864968503043172120434877016354301178009130721800348305724772582213389174487965188795755472216589658134044851328096950391368258094904884370539686010163659767457483605707948917970094283722876975017279281325332549839976254884451784248769259964637469724545299453807687935106645552416488298089729003057512548991291595535411258415478511922719584006400574217095989005368827642438152434749218030143649199228110678532826512464497139476489353147414833548233484004592235538276408198922369077261776276770653349161710636684291267104778628879205402704747064791231067924694918303607860341625317481182353891117890742772357129749579960654815747464400882943323555652806958348165679659964730925396162268339084782140016696947363410784255370562169432327695419846061316569068863384550562398337527967625973012165120394422121943253242066625938567161249836771555770340529106631302504664822437183296525017816013199346613009211364522388416831603786538051927304439555869259451609373794727520133221870469804113248380700457821766469190456697102712311835351062150705064540407208915784319601462481980864265992929997641821504338620965070419190622676681314947408123626814938196799922044206373506154160752583956858157057245552705312892498927488380892447211629429128805774450600726283024671768751286062353713593232917310545568710235369695670161855194833621757244990643806841065923681910312064098745032968684593503401784399523514664315686027694056833243893420524037161300203099185826120059248339813787098145243587681560089616176574959418838480580119497950347313569168886437961651796860084851497268434452171022051729565518319904505318061280580650976059816207650583753358726058851191438981851844127362318221366644948373357835211824471477745401086898316020454162546152590233158916356147541443340895919104956102234390334404738842812161629878691435996936955495737084671169436094101742083522634525077290257399434090210157917734758318606979923293657395582586384291887199831771095895121309889606327637606470340570129832219150071447938289500986144952554700619088121923798620876432825175297369837454829819155739495250025786645022249829671501406157466983608942010018653615328525982672131830729518159271017981446994600755485850270463747539224227983262089593929246124961927837871820843007316006255669651143880897421867797056941501942570273602066531169666392301397708017545671225752445977426447086550225846126664966054715802189057597442160103069911155020051634546304538849943289190162851619289731755577871738307015276724137430548042070045780198089371601092512733141959212176687618313393363099016252641504028367312543850029173097154352238986405905469545212190303696036707241636724647839224724880624600042470320246518719906213460637281510405342490039931748574547761898960565289205558204581761704797978742252627931572946568895878215722364712899002689924176054501337033904468280515500093716569991016431758876553936530893137484691388296175841891711093689275203397564568353556954499727039171331514352250569587439695370597280160635499660821196483041335161418458772552953161225105130114736681258665557559288817568573920376319250465082713544962014359523111609028007965033224470999039739804565058781325594442609340835489799849623408965675077797101571872819441394612488485416402909473732890186333605519992109539079045000555215640230448237830503317978883954597174051203265424648910179775635807435927181233432159271122942023513136298740409510943527962927727008326026374909788662218933618375454324618584462213227189466771699612549863945490822012502151721839985404249649927464318782311640725065231937522899401595073506024114479077956983710252503774186931458783183778380903285918469465084748026820073900007649486206703795902811495669228590990053918248842150027421117155993347636754095653706171301539383472328410895359596098782736533874984223454112795927057795893312427809905111717212716243996146976608586078558071666802178913224019440400657052580815600025812049226040819610851425019323170427026397230781833861074607940172051931187000493104567382167545029160452993516598846985151313495319729559230161704481023418998995553254042158480686041382653109934678775833572038858406963500781192193059451255038754676538823819786726196978611001422425815935819218455932594268860019214694303327509475520219082199249868886823060902112399727789113129062196712815134289392730034362827799129359690150843837504895863465484090309223446043600395293605922304026800622789887002080803882402432598189449951756438491131083758432190645919219899011019030617583031318553145470191281521989557660860713555435936628801438793754445414241386335318073432478111701311144218005632832136597922435582744769750059872612668064862533803636585931926081341421705691634834049957352577775717708524374214967479977886659651281706976807925264073011579944807856744766782270338256871994128707980577886943503896657999698401221898283733994827486957229600333258666348905110049767796690245291967705373623962441862464069513659823254255279927879409173293563534449339453519816059211144992532563839884765246161674332995523812717536155773011243929885153295481748634222727242030988303983641975788723321277515844963354974111077273303956419772969165745526485820406949796318426693009119019642783967148354790264637697908902301300274357046815388429205231862576749106049623587440739199937134269009882850577932850547603914142691636582762902888210918761557693070766274462210094361155183895055466654711798304752703066475317633239251004331028010075692910606493883708305267513446564548862674439550508789429090257904557033224258984814583162360423626561899530819211441412709837652491759512599236469057799598937458859714102251579931701887322388703359124396998688404482641502486214771594133679586795073553468062774102254219450524446155762643926673353728053866707334743946069600006815180677194285034280163213168483945064383048308515978089332436560270828480714243218590281240171838883130365059196655411538557403939794027644770730369880599177281333227113058739652764874824398553638753893501248742803139518307299408371195891336220172477600462799439913358219543723851930808707483770033029034996313071267704945782679486793757056778063534054868254740213289650418992814322796264210101102588826075081292335791634158270867376744032503036291841755068364077763199053512259243244896678137404596481133032925559851945670500929469226174298998549690522616527543012399043150679364304378196474460957278659630092533548740272972185177028598429859728371408197168314200694430827902834782297445854740789614211187487061708472806897653984180967772877291317805640159215381357592938045928150631946327751116366645550065302911663130051499220640791984884324171916828618982555573052651251792580836037377697144306210619374298314281909342073918259956978514651391588457381282125757280442931981346558050448914347486746484575713745120015675052581665152526169663497193152795327273012423658426754400521068581948748936775310013390402546611150195630020412738794355917758739921899941842978662835396309320922109934364604001362076596530980000796740453626115465883898812501683125325719228841747416662179849588028820346546922360394611599502109617292198330198252522900701619008434534624267033876709680070237465822268494857847828333073301995133621988582483265547461217426885499959446265368344673795437493889020323630711866378172117619864999466717156013249917955467887236433986108431608063697138620718968886817849256195085786543477853418652507287273763112951439425930547258580647005415064994791453406271788751030905591995268797503525339292088099995345983179978741321620187269555367747687816792223137305587753540197940512157026075374296679818471585882599486652666645273396548956573212333597766949466275365467831033155120178768703146889994458218911608114604683443218250831798440982106209751878542189741939308760327781948714492958454732297475196193700962340974480494688080833847349405164415301728794526979413293440470873482125762450452706357319753282047355682113666016610841374851630307287663392906296879694111689771637602688408581440796298627840370951552287318085333534293377960898736165296462611729681124227794906157759695612389970225629267486589584253249525661056003409500608495865250552488120000033770884541272025177721358319177341215774264797423284134996962295462664893578011850973734332533387069774672756504372133242998411541228882880428787945948440373013586610847904734116510806946403660911704823055710502229408142858545044882824941832070771154768297727179288652517793434067399141014654182333149741231608721075796656264433461774499542358058628748873440796742321203277776711949061958265511490648826073088551894120148314061726897555344600668502806492608956693458375245124223754923783082616636669383206512791359314738749269338326667554124423129235853566425691964818878456657429529381531719349690979606480886281306448277844729798080248192259922154685609677924360740980125499321674409828456940090581417686167636288776486440541820867419453743306646828464111692499426932410464030009133178202804156654538806739451411073970385232723877280304540583088097837600254532805320461506961362254609358407813068556077321529923531495742800853135179747957526566776967377048716828493305618233490041498791070291636075339558266813673840321592538653050830042473462410787329820582147134555094130039228101380327951466879091959236264039710463068019400723784897391699146964459529133912643406377129713015935119589319339594075539942479659441971848676826422003637814953293619176769305326016077120965564410617482468701081186342225239220203810418545839189933065405029226873200237936152387341540053051626201113225428869058260092164267372994217402842645437896469032570910111833488892386119937164738947367126321490997344329393874672267329126970503565500247044328498492296289687768941520116775596861912887800902700312634204401789409042479907372078076316296338766529393298159627216027575310213698871268491794337594265282545593320001036854351190094963669591936106496784213851035028143174245328757745967719365712447313950145221648295868714027615676769494263849183159587916308804715407890980175039179245705520687417701900575602283716767362998844748885427933197839031335954226579243365559050978944897532258380130664402832544319720669628716748102467318480549461598147571619942547227704180518008322173909052655961704717440221630955453521232266351727453049539613817107030206953692660267016565816370070548269343204461688849518497404265576892524654102383599455316271173492151977877083249377901957337183442538654777193779896777115086009104174345501998887719900509533018336060550572266134420263034579708570941860914648584598668956556486315036083156991451832368814762400653894163765047803753492600143909422435883132414823259884777649433074572254807844532658294667091254348241233819264151069759671721855379846917625487139627430677405694127517490882473164869622781459616142707617696799465411632000227801765110419834652063079235764634723604801100954763253534700724506396971596454008972487872815819715684538951686329527883823555084229111759676482096819113367182279239661919467135782617255381156705025279552326465382098323059287192225074403758042537363244575979521675206288777016009974760326743491988538982949922794127748750187026013642058501302532991964633552007481636869808522162707842830387914747799367614266529935273032952548872668669315809972531416717239851196465552220476050008723149380862568709280721499456463687621748862417933298866890935195652635843857166184473976296649321696640360062953410686720871369695782029645819736527962278492835652812967732880712086132593133948434733970878645820607476930834403232704230627256323442953207833223940647561269374413438306613743785062615024760590917877926620195177779972387868369421354018087686380818924506274734889029366675009472563730755622376683674575216796984531016087493873566919963169002704597690587155328309078845113888067525662580497142459799263380886149798897044654981718209859558119165751945866866219309233109620635943402446413041111386566995048104429532978260844091747425145652593625217026853274224824180856546329300955403182269585726388675903155914857821419086695760500063746670082362792632404282768914861061798389785217662477478857324204110858630101028372717889735345994915762492747500544995877518188674486896946941319507498496467811454342996730785964059362368072388163529925057508972037456154529368915577832113209487997099333244462676746229456842781599497959282366892843017845362407819820563230868935892756024627576946963873516535628090255795010381863754959867920798663666139801751527919632414972468336349340684389697509280853063116479024312223470814269559407725275812303030818964304770669751059789594365885534296232319766281903612815124344631240295020503964780733214928653902559424775333880197632446261842374796633856777482203579207165601946849954391921498486129724289361772617437319935038887727883349762871928995288906374658377447102010323449684276317006856532253531421976868887015868794802933707121095284088184562881759044658621983261064868138167827680661856080795714509329764715978554264810326452406714501115249797217656010204793994973901528758416453682816942393795271030820843091782827760968927836616452593769721255733943972032699761613230828754795901057909932751153925070464726566109920198378036436708192798403608247675764567273100320415888621887827063284981125875041358416073195712421747190878536636721106338856050504674361619389223762642738140568851687641513994980146053815771104893097340307166356077880901910704081926876101846548068603893507846183422131071266850811456317231210033479134943630757741329423786344462748362809339704980715503845120088762219851488955338355191468184971015771034430013456083082329223077432355445718844028210443488630664727480570399593520674292108116737876043069540396537226991541034741714852811402686911858084318825008115102062647442120824313349500747139319286765955068440927231692853744731213982095681634403302299184882327721086616470300696107828231201873369727639515696139197740768682358692552337798587309256484034244560851447524682597646475827873114652313979126251328200443356209868481529236287413513540914610157767000775372824246225073264774323765851857833028518612549469194341823701962817057308136953298369278313233063190750935209520083106610162092148420827199634881283869909591088816199376179949858901690058674470536131337712609227401169305746797101638861291105122894646695064681769606531201166189624366894973723422663894708776863947170825801879046771257497693122158273194321861989638247099590755547966877239490307197360875004549753965361246181823473107628428010873525325593445409977023074661417659069223512942620804001441288660456549655642412620840757136674631787410526391523159660805802988539324179696419886075469078967620828431701193389291521105052193321884816191576773887732375627229500640543607317146751039591997464273862324108760722824596480056914927243391450612715957607355232129490375851447772787176500614189378993025740130605437598007078714343020585675782871013478153393413218567315485684363652801378672359574069295831096458403967885275701799819419318998075643081000928805809482148524265585048168007106980081485326187298838710546568222859466732211472884547539251146917632609529140629306027406919332215638904927502626727188447737312403899804505180037093926515552332417723047741542238889308710333227214672667700906614056515159759058858571233183176179762352877362447055242418169587612788798733035347727942351034692840281804383339844725027827830697355651467786626892445940908108609253508441347110747086406952163122618579395052215695119202707898726838889073469142253603259037052358423124487579040120339455263187281000798311433018294372177312504051975472156827207407357557364594995531904172233435068306438678771468713742576698157974299158696232143312492036803658101902667135187092908526538706593462515990671065086430974447393414961120770631133177873657967683340785946981940902653404605123142553483801105138258407086201905358707802673467565415126976442408776036318902861346649226028760132589300686213701324840373153687284843832481507406591622735949926937121959381520654903804234607348023484590019310172481434035143383689976655349169978995428013380836027874991397619238845596896709673020534081945006003181003117660247138861612795533849622390210419167706603095156871574198653004105437793144913323173249260589246684278603323347020728883933798470545535945159071122841813576427904301912962803808083870497262500509116957502290865074392847483635784262702878050042669120275171733135937348840561923743770651478135982488577310855760052432625935758828471799845544718675551744605507197805231956198299430366783979418976310141408003655784240604944213581682223104910669581608597748960813217445157846516556231215238841976769134161769858840687748009527360873867138798402205839805291633909374012651266777429457340287976281014281543250165788887101903979833530933402544630726271792124220899802647101389432764736297273167053944466132593068961945933413529670592421499740587440356386151537113860380909911656450109901331639477731062884325251590367773209639472432259888385357919796172331279018528293767219502480097119949301783631724865100560465216020790456962972329129527166680345551449248241395909260834045745841848575492202910392840168398724798093004086818539482407467274363518228321450964878376854842428097283775009748342572433326548711661288385295680217739492778576221522529322406924870431368151991860653589698313902271455945354651237953333544613648456043240380818067550976918933841602481837971432618192785722626828398041556692555308375570133921738202330423539235944590980784549979228557867020665487547081680463778215700015532300635365283602618271691153952999497384967009617474811215445398588982372464817643087072149179065742109276842262879173216299874935354284837850687266054225300577571543876506564490808356142242083959454004663489939041762094233184077407363678518271845304220594231761399823637503369784652035110529700034721781456238585492469278364441292525310349946531706278060963680054761292834933770554088961112477200732647871738071755034672473612099093430803858744852478083356682678355471137379580950012005258862015359650746366180105477480001317346016190721585626286710159142609092238717246385651079201486502083175742829584186142418028335691746277480939936861529731664893058637216105704645559719390159628810697356314816989666582749448309447915746554742778168297344699918101022827287316071485265720230916237707042141039346154328256306223817494943364349447195846479009470354652477133676762976004095515052214611261639096162154069116485135017737727008845247519907697709669346715062302787784285295133920145930526046286271722225985863022883483422040355564626994145799587839729438279864522814983138769058618603839827868285466877067278195231580558971072782789619182468412118013733466908283457359806257978899867912901855763037302528806214376653455829344257895470660994599205462769229139680704473615301160026515957775413377392327111282056928815429503220260340922398383972401734452038488951308021063183682796490231873368900182656190921672903977324834008885325732209468742354123519336745941523777924829349798786002887150031246796777234191661208169648886237283799463267631681227824542598497849669088314032256034649376021344658995586698087718821100762933851873808714667655903134280037137969874346506993831426492451536331696189097137003480789914305693209838054076126296256949977005356582545170015905831260144152763413686764176499610117498043571109560958962983912161802267078817160431315179306658870781395894268299642570343506324256842470158898463395642639656350352722689682394163273148661714922944189287271564804965577584826525107679377748760909014462793762900157027836202777117279952482680417745753376857125584307460462711521466073656107143092066276241527875270707323734985982257220918878098984917168563463563523906225997380608608384957200694482728351111603323781685773747064364392431792921958073616342815375010817373917883596674568094624821555677646334089723448770243950262182034621299547259027520546094798692824301936638046030588988394594653997483434390150371480854371229024675838253256138599468923037129657307417149495000430292473004799955929421989993684974930511107790253701274714664445600173670764177505634094071874316860329597112980276950831485911848674612567983201142660861386953998170658968031330768831606843557256194056961115595683778889122530669016520187183926490778220672670352694001459424178173099564111021910246922939312205603707113337884513124455533197457973159594810809935063644907131740032699089070899165087524418267829360914780745149667404239940238622085601464793263107340688613653043532268982530072846121260520264115208434003396486223759375925296738648768536046848443705011732401648138176697407316089156868685682478340959866007728590163568963083512295922021497330749610932368112253002877545545882472280816739010351985291490904803794822733257185388193154521039285451660718664880953138556706942730528173218317359492911129149477110430403297715059428610197535620822634606840664138114459499376169658018195404905756371586056932221422479826616243240323087845744261927248880026434030624960427132248005406991880888198520842307787757887017072355279645589835316006429374787710492737179773467618053874163397505394406329946440935785654929218882982870504183547552859081514250801397129104056730206627840813342737904621436528379260032060395008781291553962834362264974424994171819118304160224381881500659668182994940326612662526947118531400468804672020805098038516522494724715068092502638394350015735802287236401370076643778521599172233667178424353940739576021363898511862156892671811987655404518418326132329653756484387017229137199234214610721304004048681037588603431567826564707634551044632796551197617923326113463638485324528740254796766714628653253348312399619016691625447411989167429396312691105667719555595947296618020223802945166161107179754869454141607625729392440949097250278307550099931248054084977038763209946070872816862104918584693250978280485372040588872380646848687312068549759649184137953278528259608600976527695807885447802225305908139442648204240527409854449352100796129135527755641043280142753605640957560693078401244936131488188348153572317542949520921745222022033875546557588534364206905603190287763753647176398561492289379479672276817321841474646252825347551322471924673789113891174725103558162083267320699944028565573964908263003457738034882484688521120909731055400927434370159341186282667169511753528865626502137254178150469035569958669159301688381980756481443953089066115332137337645310192162833884584663645400001556826220869071374485170418340885246946142718967114675255074304453754722216662692487858862575321091404242902931149535781678650417758704890294901922988624737620488449998763466985526222658221363276140775745992006023480815024584396384919222758952482432055885294927586834031905284257972520164195084181226814852365963376972623338161387058467131334500219559420878271519454582145221766843613990333739967997818411934992897943857095204906076310110643699825304464064875614092834911113150933394360483652233465400356610874894348081146482249949321321882037044969201985867928687442633876209275819355808284179265226859411683857451004326627433861198568703350078592840751750870307750890256181194402878630000246100478972013281512896164349849062099366780978159186630390738963823932749518738411336280570549104721935675484557596991269624436386775325791337853121224339437304801118659371129116057528331711188545240843273393124252725264710131726334872329899812763063025168078177539811670902330136074552408262011449776378497764848844797048931436409877021462351666906627853698979272298660624269796824240932100609917227403480731242337240257453046496569026229759059817584943488004650322453806666503248102707927730999282906686446671458552234316360749769854274053273161492494103363828035892157517888987379924100958706444592778283111297591649227530864253004309635599064181842188895205243981343710365545461911682808826214424881553104775806504506514298917535979046807498165835238830381930493236220130621364688097970605717155379449389063850646984968135043941516691728245180256583979226563836431667469891232428826008894999850970842735965920096426210727541236424877063147899743166117533166443110782835163211520367572377710129497681920149047378150683043864345948468445888250717210233841529419636111617180128339083055425557179200238685159949063308211737476787195763575358935422089160802316006923118224927640808993512326744414549262051387013130030982490218403370389012358469497591019429655222282001536439166198329319631315919027146099914837664574058200053840426799818410389855359797869247989002957227107838685172633413573894475192106467507697389509452618012263808253837993942784565642537511245218646311903429816136198143950828327228394039861876232086182077879818508761806133910677815292952273718596966126668292853995549661498115182537324149324050899549556060270605105581349296993711711024713509406554682994495191624255840527973240518444901330678321078223747598431128991691867549236461458174349845041426853607034246449840362186659019735519642942661979760417538281077687462676236055855977290697689983562421212334845143100178834361880552999019451116857713858825781769418756775748575125282507579760763351066728929187706129620616413944514637575580468412908266433793545465214283635652994854775387500552036191835994442691354045825764697283776927536484890076883919146666026985247132029241377001038164709096033911152180437773899734165348550094704417619623668626285579134860778697818226734031267835472694574590416444523870300725042208785889914152043793383559046249561385051977096156847823497772338749990946093674962435707373862995515824793744060251702169242793945017511870347350698658624439684938899333946813845311345218683457532586685262996859125194541132940388463186541917099960597170354909896681958851938196183505193721298417396313575385836230608604480512997479459151044650666736339801153336632182238802405585289069907304026935644073513643625195911022427259672907738551760403339073425132066558996278264556736182620186252930488622121126646577808991067295942843254831577554653188703982693476057975091472543401941302552849427912980859905389080763236926867004972468544826655826400064537506436674420642289362541295005258670858070275860274242685841960367500201469077336474808379456738263861331434884650852247158270746462926668500562507740879895342795383062138265424907120675526012805468056114836381337252421185187160855266560231649344762506467736633826737579857415389340011580917371558454204919782744054548593235352466374650848200504329506404041024959996373511817549253692122434543211671743893481456822371146693772381691831320557362822357609090680785026728265342867333782960904051234269491559789875125132203373200440574634227071674149159086315415159567046800516317774157562801772719618126402106488978735616733162103820925448772239764369739160600138057137656315705059444983604175725052264310705803410614993037197123065388710261608741135664663144053922326629505812326464868769476280029683439082444379801677125462897747828938740305362659145951907100535406133473424676161120082022097012101245886877134385187830013180043356354768212204538980039997308943728638601733127335135299935679450880175088465173755536950750909376950817726151167752571575426989824061859767692173839107943106817074307496805404732875693603593266056961683214041619451074514297896583708009965460486511544888769397399873128026199778357474088965001756594598169298913591505200848514120375165204576360684886111865501836358846434150489901662006739442614816193308482027801744797634318994652954783234909905627611247948775985188333661974124293317087884186778144310639631483466224641942061230275374695042030038854003213237995686766660260261295267382792000029808712951002948947686454333873503926757553185987438215261263176157295973033835564568820937753847716060356620163170616330569175746023751828944263112998186784809966144898089506819580254826189997584705525128919746467911625523732449197129719469087123945497923270756691055880689017151966484326573332815600200176212069874237742144263578477296770750052922859533717799281636628076944004200457207189735582291322533387536075636078628414493014356274038846547421109868036085477974454443721092644753109508622485810960893194072218961858121404004505989886312414733245414730935093622251411500217758403045937891886725838130061284452530692920547304213644979933142592827408723131849393758265835594733771657642490984795592680200953868853404057134094452822547815736374942520657934397829384102372116711494146150665107156810545370025729065224885378313780386049143519431626621080807340069243835873378468789346112280729571763115410105521258098808286054911281305997528509819960027996721177534051095506336376931638431355551127742005304865272709834256937261807260247711601999354125241368527659766496959130402896517593265196074684512382105807043044597350098193204813924600909961197592893355323016909450082346385463630563727571108689468272974780396733949090126016261460857623793946549995231139130535845455784610528731495270343916365518523251129299759270221199143006047341182973205165153660904913696302577646610348783621700122480635851491615800217291312355900110470228459092342892788728767724974774801304887087902637910007326378226208707025300680680388438595183084430325014285592629881945685404326632379082880255138840483354911124518011072419418166625727604072258653787341832881093571053449207920709566132295485466043761743054303658758410950108515748862525773470853106768901081830399805381432015030793465016200719179882054500146582668584894128979996366101426571623881501303204002577941831437012564721137881861372480612547490613563803423170309705764762435640382201730730216313521621219390226196629843225332153109171525091619002303304207471723925141203507313219055390338976769365922163829360289955711161261220064742335787698321672899543645890588008609939566597146303155053027116686888584649551592349596531864929855788801715612002502264675967947306367815087523643653760162131291458013670004999531043745856893680279763142936357919347401744402144510552096996572063635054177699311846761407578604158085912089750571600735847195558845102877381489730427419702711308316431771372208602353761951257018482332934533748634154410060156018939277383892849018044000213623662530762875749366470620937705694932017811587809638219602209449685381273928151069388254118395628516012584934539567525746629225433726243611280189222173681847776733356632374883885976256651778446793317556900061926804584105017500076679639839917801694442454628305673412850340074684518513177682574175074103585909019074676118113087887462589973235653986056307726997214431986454242699759110607555711429296106224197818205295890209082530876127567914463863570020623988965981317214241361396822481947314836098538935219419345156918884148900384415189127233060120666108221837682816416614111164470927284597540389366951963060187601263056880502091668176507094189560843668229995539705359182926612631757256913339043128208353695845710663920042076940829408486227719009799200334125186643365108088736546470236757809794484014426783070435785604290718165168652277736517483796488327945376833588899630592015457128855839803867574246349868288225021803907667562258631527363085547184141188574534741339624468207565190103527594266862207048393587520378852207125563173219567028145107317776152734864954797083497811403222431251399192897528118152954583052704299230043840233573551658986978963133798633695593329120537008339420548031879459450592862490359685797922007609585684636655918703981382282990662658636547618264491201374028277206322543589530000141957174476608229001155927772775856134571664770556209800591588781200506203273015512658650469801870783992452196480570507778798828198191568609616616928994044799100956512389333959477023608577217155990627884512563372695317030556693126203965556834024238818988194083892603806513759273567440886023965548245978134077264817589288980024946220163939919872249517336825653847841538841163313266419759146048226356064387398271746069801291566724520235917392906616496811732794974583419853594886204399515805601570942674712526335540014636854270814403984316310423528991183577345821387361221149078115213571738304344670523133309566290891583084524959954429037668387472905005205217424548342961245543813062357090916477898157528518802835295570834613580063148550747391523108094970091025740149061551458120305102537427015981481123292105894563877328395205556892785385872615204986770465589840334506710542910326635547112939796495708938577677008605967870098596287732220175150656049906820851842672537685631843289411736131511051470816831079162454998768142898092340966171661114448874574442775594902843483649825805700318155465100326208969741776803256207719317682579000343881849647089554255063768396126251286833820866909676448060597798360201714179230346500420539232914851468669614763708095376162883556512057804307959867198705074880587032256955766072400991485786557917485966737064817193337027956268383977768407116343324505481937861221474882349670908440072003238394283989574858839279321769226621720611161361867046033633186445216081466559091583164338314163837545338409253620059980398742803478765304998115184279609876719181683295703636128779617537186212362544680187019009128490330202981435448903772427224570740725130892543883122587158347709153378153692133228522039911365428003430839408429939935094327331771419973601385223774523081968987688662320562254767956375444270525623305680739205326639831196968409366724471303707508068726521327905946396813451658232033784591206703712758449890490759753355361229065348009532811690623906444655857612595635144687209053902591323571125385056213523818080084794071948469990244650166073824276883777525752752668849376061000395624858918589475886652716998093797304235336126114588694648583371342913024383760816551991696191194973358395610188598637079054891491466057779824610499459729710229126056414704066945222030497033771140706891909188148373507280633855194195519535353594159716446976011748961198405606784577789932780508276479722288248165417670202539875092223267485691356130997903309027865508528646506272106898673934114865249918965122520518694501823384797304756737581221213906525649915685544226273535589169018495917457046693988380210354044585719553381008779165537329534880897076804152161469392914128447253677361690117401038351726817953539388731629220035548201638227390203792787537598832246529652136268663969191815867890229196173274289464540218658809224426705955044206761653386642542120173603835385511949320967274994658084063059860553928639045001250119578259653929867444649805410398067913267973172642248127408207585212564934659234894382916236064184695287650211363486444053393799294140470697263680633191408461972027777527530608569236864608320886572197381470643850846334382979412832683364048182583807586741381374931958260535572234972187630806381789973982513672111282850462661535620014145298567427166002003166562014348233839298224268415378052226758139871195863474066396435574298692126822050402925218374877395881913409475763594425484852386070259964517163282165974381251978904888473801774814850947387295096846011019356549860550507450254221671906312826056258567232551663077973274002131651564405572619941922264203694191804921973569368702524309563547929454507592863045152246315191531122962971848003662064160871176208909545085040092075846853684798304580590336501807931250131312283736027860015830855646014848863844793830922546182896331392093683756229930532490689342614840860840332016788109713690058759332276591941785927764035106824315862225243454890940006351824565706987555543973637445080900932241471168251003410556342390479240382798025700302661140387567000976530621024166428943491711532049679527937885115641629742428401414485404252833745553622902271965336794085479938887019343402242765816827742862789499673178409261947529597561915564795991001046942715103192474694656406945398200408508315187879882143926887094073846428043785343291303385547528215531737964080608408676983537289372183177184344320703822122400324542294420290622005200689622422444017700212939258175778891109383351710322097729599399364469995765573659747832349456226342695355277197813431864064342144825221621334938733578823344953162181790025804775307660711222820730557594537996746357120510540894152140871246125566313132842345187310844860005270164857851068226380894998392969606916133415395937824654678184542108410623829908600386355025872484128169946154224995566779797133990904140920171887307674670192802971787306509525331891284580935196413002804844527728293483259430976020461008821200317301773961854167885584123653378618658675107375164756911572993431541045399480147840206648838871524867734117059637509761348774601742316237157641914613512077656947285763405228533303709979396803175030263567106561000414713045509376075619095646077430822006509838086191002719807890737241342760161451198509154340300237559824964998370674660923407668588453850897191843937792253188994747681785736630817479693237114901514451270254701392620407343642982147247200568531844628662354214267571508617500649496563747891118351973786849473021812380897857751619802484810477802871361235804634007695634059889588748890379819159010993431665213009227837840408198253300901430442565033011291675312327094407567916158437921721264756691910072659733270173365702872228824784085965227065524349444593021743313482850467490381131184927748186443453702792433012002850116554999420012925567239881188497485823811397351188953303613171890359567142568253648970733114955217480283610350922151736971971302638681747738863944052419764554862324073110462195450403099816938581043277686614969888809597303085266005698319537471085372536311819332432698064685951664513639113024822092859375868048300905281970327819857745238813106526885028682330724459574465613661937637361461327831523702921106255483498180981552859885730488767450952268139373669213021106611313363959688737500512774884250782703419549204284308174285841229690287360779189785404741596817529993329244051826731213004735921979623457613488698477205597098660033556754694067360319255402219934474626173403315424045213285307777236479836213775867206746431583788817884233045640569387683758950711580658890203625266224424725832970888416845749481783597911127571371865946147517687304737502485006438368445834832981704357313454984213303675257680652105888443709718189619250511049417800363800546632414634185636739778134132791762159920162563268969416037352486494190014734583974266426448683978732553503665952182926441185991628953059698811465016323937803226178759655216393933799193792716682794830289177875280189985176583313365385990516808686335012280909670469846047874399481021987463076697491121231408620388111406478381862149011728013688691535800282504171507981966569397775155457339335708456900950737682085312806971503216513559077720722504421797140890993514748951804519662457868260944048815881317301937383552701966025757530656180810544638942586250188396445241553306971734714023808971454916326344562634464667135214002149289259671528896363025291522123293053919525727473850012090346336765168353674323053135994661716069497207309752269537187655547472324639197009432766925443239135092450101586201954473536830284609862250848712661074279196658465487092692608597923003799896926424117330136362991177635271656634348347692744459860345692911034146537809270197976342744011113465322373383541830549232410602677670963920290208486794366151176115580092819202596109712327593002947567543265522944309499700172306558719052072438497801377814693835699817818597416035675721563838693497367878698760734526783118887416228225155810297048447667888112730272634939302913790658629277728105704807598540260887817915903159016175826226045828806240469494121310508106066767630386354801520648709621317264609851100349022700229228431130754916307970923560127327488660094324179375877679510987087813002992395779794842081651821647393899373130411301571122201211810410197727210829666160035276507739314397183924937090508072580886839598258514275242676613370338191116357131414655531242613930300932114846652219018943276701384874042607134310972986713693902253223741607545991423171237821536381334034257220134185069426993789893841510338592659408899694284024785725742063007886496018886810434511919951636554832684019511295527229382896492121638576375903520402920766366715390170066107919682700780304575727328306734425712158147422977229482551063229014601314824134502834908530420015293595602188940933225271775304402463630187018701755418335911240038297705183997173853020614540298172885794518168248018014364764500170145558318727309169986991867322098379681154851606213376695116215607858880500720617101232907118520707880373924019310604399029137967151894310251063197098352190478848081737412934929731805311025551971754723714100115372026502644774339762527684045551553177548868426973610625044035948176404455233786063268040365323900329625686335163750541650231979955260421050710935257034759302634790997064428561903214219082946120938051494657970656590372146563886386059169123466027701588273499315391950768141691645014899538569528387998623404564337805526213177164500639614059639238160063127215359367658804038059612105372543997787940153498362085829548673223237163696228139219183451802220261927258909042246454943824498815678973006205473943946850854545019140144069589230569977779459211580097432578699083750322585604749935792126760679254259524633038903500908904851802620196585717039295838048460010731830516311715870024759934502493236088632952998004261380451847860829029706419852245738550785856385843614973899301999738872108851304599118699775513059036113929924659975713511451070104441365747514998319410307290834719913508812691348650201787115719949913566132807107182735865004974688421488369811465623655282169009046452004355388069334330205553449330792256967312251391721123224709033393386009342391925457709016335981235080088194654377136943165390777205102950371786557511980094195012901764130857552255448258760183869406274930957559476719028438975104259765285970181604016277878607824795174908768966713137946750130625424304088568372343431250368968840711015569709927381094250223402849498687241056782846132623422735486290384215947400296493977457639096085316743341886025542413078955164927617648816910801291705485730736014496669467468214132238380717765144001859082176214368761669924980573230142840351390555806778737432280139569032836336182794509989913997699233895188748000984016146594844671405122474735347852465080637409604958183549752500622482442988276707038636899416323432735698513259982597280001190890820866574508836304500649931653068039579164191446274753320903803362914312802520213744006233134424778262324155048295751287121733810198706841235831208015850067406801521030094758943500452753106812886658857813910161161391275304705491303762005016587596766542040979756751311109603594925131690596084115308469954671457112194615940532367576386145099295509020813100225913289518229769410901889700218029690437643975484965422196132863221441415283786093958266793782435901839970874052875364475145269985187684370201630542154156705557191840729446684641617632710706721209290835385453769186300599436249895736461156276696590898781267572038477718532874863339629497122483887963150896498748454853877014138572501386943979388682934631979535468323398939962385320518954837208259605104887605203799640920443581306058022829204336376832206290300343280347459713992020678767799851889818245476826526643357564781702523968878721498555866795623592658613137128729143965708843726028638054429993519168911055643150356739388680534097716224037775756025963834425573811913568517977070365504174355457560114810834679226449937130829876181537161455116876057962999082069615212743214823135522565342315072339118328501935146404381333679439296389807895519914506837118089257008640030609671423230549305878583834442146258447192570340975432973187140374093861582350449837559906030579008273622995148072285311776508252409976057185585693745034675337928117797913575229358819312789186295788666062219958533538642721428741237585977999226616888242261007221465183061445949077389447246668836475197071190753573191716458829362304596680535953602277231725104141928512565964604219122791442707529433996537012955984357039108154021160902579197540088731054069485623043629739492584697528458960687020899141434073953739361823991845781032344028450278065690005619377098422681770386323812866594340355047873519594802490061833893691381405841801752747758304135063945494709656332023599186582067444475847414740452034599598229356234897411104723476370112132740739947924327157301828632801022485534603646064566190711268242355182044425091320504135467827052172206524195560959217912775692774972394070613435762273003228371028328250536622505387422953191471760961031557477931403696107913468464985737892130223333426148805832825918250922348758534405746805239227102358057035046165881731528600201365580405331233036426945266446189458460747508992910791420879080810303337069097999550835592918547490396001011336616806983392970269322450726160185063635525489766074743306899850500138647631485610804192322731703744604845111861573174200035336015321585034833064776141194748637877122292045491972021540200709242635754438510150608813797962409455590208499979499954532020495397747015714918519567103137878287043238518280101255440127088301160823285038326217757222092546670107338326091322854159145875316011327454879925560375892228758601429819393320127022475320788065004777214042997628985036936109665894420453387634053471661670607306691972342540090551623489379623636032393167823579952140174177665177747056283786616571985316746331999540516015022222844978831048942766758779204428803145843114121144071662826921907408135330345792279270462506462534618852230761491896934760648209830053818077758339525383086446898174620746560235909564710745325705999403048289933997032759974358634179934455846465752851456662590330900702450287350609588946636747527614287885001385115563946673222385601209439503950157667342982628202094178303249253551055103459400622527360758375526008215294298162407242417629070982240252419022077407319786742694420599589272160753552831637141742807686454621525134832799939628807570839964543943548569934831707464210778097715834923783956687275504827198802931920652987113903015913054893302225915823224271870209733562326089279119704897211964248456457926676424204215076825990348217907589731286222484479836866142412152600927701816104333668599181572131374404792962735342505319207378274269899747681374181949562832421877575829091753332573687483136471987398626121318039805396411177650668425721736884576059311331340280546023415124161636823740531283370934324307970825218497460232106629795611609469972445145175665295513168972863360420583400229776632871588868730019891813791773538287281403618119976078996978037429889565455854607088775795172363643365606893558899115353131712247348286387106657706532959777156198381006634088536266755432215015447186609188331241542960114040793421832945962209626643804428265470416426505168959137202508115744852161748940605360650445833742646376514522736213769519779463925795497349366383779388609874025799632535018099771018033336155731161077910847779596242716878256056321015263404126985324636699042106661771289610700489268575193142338003481380259931978760173902380424256276126877722876622174663828220780830618188158217758857470262957746436432820987591139803632345176941388505231926203901430838362920965333863662027670858046948342430870689734623137987910708944285893200883513803351820303451590921175916845330886672042439311063114332785314923346893008206317601821420470623646667111424627543845597209879743693459228193384309607302945708880353734203785047433470155110138393414125313315966989760078963005055738939751783114931905909741614923617940671522486296533366833608545612916324964010871583338883893686162842356393501976168354064224169469430599264472977946218854460429353301550931621437881721944979983685736372375224846552079418391872825784949729329008736251127453519005905592113334285262252293971001231671162905702204220855649085980224236218855312279131893173708479115447588727716869045359234735362735785028481744506064182894792522027440565958343676234281158251639768729191946315246860681053777636133738099436529787847534506117315103688879091219480356825369132506144977387091756117924745459137756599338160205402174635149171129750146816832725136377068288067079168050740354477234904127382942894120706210052407632662497259593730256697334541791542722580189552553312105172680017783879431471682243540799187239989306741939600382831527714445949847752433401879265117043991465502223051743565270354470946007593985703443813646402704508716510776171631639724249580699569766072330465699715714906139545548447644849777318054993435095621328344976755085631330944167533846650104586069424115679694927014587324350691306570008084445617127059237653297751915355061366085717290812989105597182573502292513590364780777669033383483866684860543960882624314542876560640336024660541792575313073736955973452635385583576305762770294629276486933230310317026981557077901832156531480773398465873985528472275424607931391130301812635447715197676470214458300483173245945610227942430071288691131620209279021234032902563746482641357629494868657140504272677412128986217915002418382291453608167167471059499690503835071796015410447252065955556205250285381428438257177486275675702770851564487276079315432719593901014277894110245928995619374627458151105120901584738252328234601108949605953448759460031943659711307027018737195634959645962177010180000193436443076293827318803019766710446797806864510425815561953159418605061022856213276690508378534067858345914811571505723118762603166219073953444739246270470263825692519627642721189463672095332737691525185152217533414154521980493405350233967459284536210319484001342355294149788810986770535278015948308508168969589186784566975572238284416799171567092077586614553535520478970791806790632505335353902869614967620656953873813454880691831841967087359089175199552243848128692305628964784736493205099948153308918454169249258255349520921788235195238020468761929374453725393267421507832997086726111774533837524388681543370244023110273054537578089410982003215923407380850259795544363480731346193919832469084190295192484507661986842740260700949898930828661932675799943096570291547939799823367335706140386847340510175450709662101721948562169970367966317519747638187670842317341366361721931025395998859120326443182834634715970797854885104775258112655393133962980472369526716317386570153228150253590634137669993226305930210090365261093980652692545222340835991178704459247135382123465028957477092362886408275646953317741641040301737908112876544359725114683355019846695160525475553006726510748080321191621763835610330581302685958372991882664984365006939195894002267928017541497121027822417098819351751268999450080303244184594153851668652998828144526978264608182057541029434356751776800946261942056110339281147190734084377400685637646013564047025300903693077062998359702439208234617408217799218539450694066270403510059632363588183586187135621321554447808493079663204942335311239152363127782163639709556167163989257273677894426536696686613551850280289237317116263378100256062102487563420715600746980131629803249560868114323086922767426058728896970311867988617544317780465882334376680976515635982057444467905619767729628162895735480478022084367023902036613337762606920084897180365410948922154998937396268320730112417689950944228604525125614396053498368038385410194500869458732121291527941168736421111508328252007721790622448413676877935528837253103025876869467016140600632441925104368466478963421006993817648994772929816274602821513531235310821637422567731399176455881568352135745432664213537316336948730104895413366821166468200740217921351035540372934883807923600985796034890974079721570380249696173111478843973748279236401473989776724607357977034222712022346152547391932223037873424214894340071265072528005331704588447629254801240749722780102483002880899991515120862770672714277570736334157480978533007017447324018497035820430483343125706212553622295692791850465597855983240060730661390556308659294638677332809831132752234711948060950200896379688321616468843268391383182797634305649408496907370745823972236290668105555302795391703157103949002321022283100081411411154382671325002517160449152189672829478524525321963671856463508391113445011617888127200242465731328398552887297978395282193741917296452110290577711622975469164588822889602094737241611013040872131199331338291742163412542353563943183951163403025528082312488663826941161903793047167366980279741416330463294802005083216384673133142830694548255477975223815645722526367030994264396786047410318725911450601588436374955904596444003873048341616591606319704510295572156404245245028198714769166142800368167554985341063788863167508001463615559892540760740320933104182617124424785207848169864805163711793860557742524996418307820401805259690170949416125163837824418695458716258365504393956454408483513807888141858572299183446399253918451692350237348201595447180034394223917165194281718310110772831814751017559173624104951254687011392996548569725308783686013588745355089230130293895942406677438870888685007144171198129899731085833522640999942065860467545523790267065054056329774855271266692783909846152120587069152294362848184043716956546751617373174038632578845132966577816754054979290757287135257293228174784664957233845705725429276379408105353313649945504574586785435139332415205510506441644467975370398696851104430088192088240651500702460004176023346947317024971607199937534687492817551573142199033374181693506308836845769556275957497756836743139881667878872753430084886247851717333034301583285207711330631132478120661889757566664446129462377941198892087582066688051422055977538307863152100182619578385535805025651187005718377372661665629112293471587796398703096126878245674786303783893811811935202896467355555586666334281148268682533885432762085936157450708638373458269900942777753818229786383824684569990779290324562409665627851044910735428109994596704927057579554825836978095766073063138853113559086052223865790337229815942909753961693110309602324930521711110181737905695015872423892899034197335407392709367867093117253570929251527723177868810766553094276031741751195999254549495108025708272469525017140881525762935906100329849149045877059510237986082453689628956247068727593005651738896750047845557679592915453078024490968904298104874603013259480627768454752539236835678339023826931159519501549182669683978037458615509687113366953256121524958993995050257993070384293466154961006130675905659887749664679842233076349034941278427185061299595780470871339808890574296716137019269559257850687805035193268257723285386587407947252824802992863957283582022983254186314073351821138508385478680939386634868434632991435834312770785504370020114364627625866791451236071696741660681806827470112265455331582151431989764791686234141435663218992689490765546981641213630725526249961981659650142015044069569573887259365997217060496197504373158735850928304292301659311307188642687987124454063970303763828281825296715510607981853865362344937308913266713822014723776241688905181032301844128923082553448782473690134875608993921615162729489761923844851454065976492765536770890106369863714174854185317622406936226030299294823118720144192499465878699532965728224138058895036069847648384363830917269960469704875574935223847479181340097470843633443763834846847942771984165630752876575596225015294416868466938741489445024331245425168576927508744155837701715312120017073741336468614307514222693521393465641701500899294220873428179880107059243753044391036100585310908750520075888853721388572126485356418214926341664919153969799511934659158867206552566137176749742696247487788215085277530594175829798156796062897265351542221990680329221496193598117143428618943050500404970696114902457077755616366942241692562937995969564806215306777411471063106777926370011289423054926777732648684180261878085453929658382827465144372619584716193764423481378670103039680697742482490669502495613936573364516627919532456834267993013095196357982139508928160864416864520791791736372462625646625390178849291473803139975867918557595398800147041103642945230382712518311000574662314185973207282159412238744462572240662813870798745970174243004433639298955254154911509943728386254367924700673850101092768854969916243115542237774819371868839123508643303395722022022402065535861864781455474319645326622165564847564795839529757259579045308435158870209529149984863427374643157267161449220276691404409097466060436188549243057737655527131997487503937271420262848489764408802286938092170749976967059954325528692605918662816785294146955019749389724498332616505101079128186953165224216164392933734129414250890405214274114995276046157099330674300555607970265129194665981059423312104128163040203972969267799117807889181136605841589149839289970786230911412921106857800900077414953792035412323888949437629519734659288319712801363324586211298194044635158088354705743490009353483329703130524869746890866348497752254737054643588094601273608510909314406974220710475556156163728250624647319684445733546798244499086863090500721698840206246015782445512162773845212890383242550004025557174393282961036413853808151648780451547257241754519661176708079585975929826608255332448095881969719242169149488137513079646549037647997848010571034807936789367328347288117361988092712216699326072102304007903031014877943328819560644552949531167901081790970783218802631849466332973847653782882651967147389868469264969379164860390249239088033683194581504161464553007735877474211389547839318914401449628624040454543467691465737768696517696204979720709577689385485417722697845765298651703139666949778157823181709823846056877781304748912868794924258287576693563575324886200193861642880727297809017253464658052305911212205095170698435817892490664675456446806362202951270723489803188673841210243449481861936143802701024857238708255270352147448448954386543344345993027157920353082374698046299945985190972509681267814756954176571985156229970299424340554840901481568223439716354631444369638466141351740348360424649407514770735602503355118529644504247899086531449610538423648682245216242155733037677733594014867285222119890912265151188328983461237337477803639363592934343555912119895246196128928573087967386781181484259262415686274046438193392398919639012445343990597267823567469398059584656163622169086240793075527183333727566354846524451464165096635679845149446224510471219703867676448842298380339947139842473415342367256632218004484782820738243271052766464287601972912356540752039929071630115632477631037963130777342186931783795106886654678169302635240993857842138803070832595650968010715059643400920187553560595730580123762396057238533652031093214885993406968574164523469870336198460338796168890801919664397832491093021208982112487847014054746222491607514947697681072057779125408893544341689633962565660916442508621683742874316454772338950013011437237272138443992510304228633270224596578024263558809911571881602443496802683505708277467664391943775476740703564040150313675044248062877506708554859258273238626905856869011780349173957534088593059684572318731941755316565305303482655564777924491113645990280343185149433674753391005146777652708313937263724735528864268693920856635460529598067938013829056017020908654318827087967886104203669707292131080055597790929181136112462480817138533539082599796037316662969367968775302295469433533744475037823907590500856160773995590108270929676496424317872978351396057081641762120318072066354795069707892399511172829643957894165103487107251030457903277217945463355565983321965040087549846683566830985415375519132729316612974165459807207094285903386173646803763082865928645288214523409559546169163724414654031999816194600519228863727484143312039660574469869118620060596278821983556337590591599790988370648010445141641494888399840873787904018830169920226206175490272163398545671478218298189593977028706018730872309305880183318650477361107413687754353858123975990738887799662568546769100437689175041332235867125620678572031598184650638708920793941626088825741777819328414937354070813597756966885667866630148600336273107377156629404935298516297098271070518683765599979465275004684030335566605245811234255070869793844299115135923599752561111176859777489208150557427086951329990073387082582858623087267532837381611941725233260290456545355497630782263381938853839762750306189743702390379250502244690135302750043348795441054977909652919490293688835348068131056256839025715309425922567562753737813996667032342472797527375891461157205750315010022495105873383355363723156437469496834637287624061836381548692343904141948591600403906176083042188490817897822889247872648121149283694042236264040031285062097541283919074229893759541424067338155925682194109816676034158220499075924976858332745289474875558777506277274940492499348033032682773309858945799577100366315248765358720045057636416410598834641051057159753641495281032028018102311209219096814106899091918612360858096631626015436544150264565518613251364133207214202111833201643741106733333564252609526777709506505325148111202416704174642825829436538850590620532532437570882615130307867098000556248802249019688705273754619772925755243510289266793866647741446709233595695339779462073003124897892918833010720389811106073257275528956058042475516655274471109496563129440768007367101233140511272135428443396445134751150570774162114163690568728781661098962417479005533419610661644129421326947606554827014678763400173926105502931739144741410945531758858880144614555502354254776477601470700539903509974827695973301818598580736331746839654939642205638429665223945987480722127167084170815330429429477934477650210808051161980606762184889071129083400709201196550094329782656905799620752658201458722234978421888264162394673899356605587431396249883677711772146039831316376250496275140373515096588316541489251380100092633116643745790464771469292076769950586186403924100067890261521101793032004085285194428593919849611190788142739639881483348120445722192123003221874233496871321079109286105368983577702029385279598350739129735385341905470826890070002646931757010309880882095688654022063929171859216678773969776228012729438886409337447145699744050445396043220052560550172968116076188388848692131476407233861969519045687930248512024885580245061054171135890675365048066326408970952038663451398457637218129182170708360625711945148558059695774726694072306081164940029504191882545851801166140018520971086049317952357100084390164232870144809453980210690019709459260964748419654347025476877975600275257049494530280696696390062425527614737336723566836163783298609606530954620212827678361145931781905060912518595153282120258632980845107345519117015959689085558774702631278831582531715650968016221403660170002061171112708655112931853468910914626242835757188983832462729978668616933377794171016617739155167373953268119803127662381831276379728012017987986284273792359485804572979808075429401539389660772800495789680696582816005300928990836042322857584934891298846837597178545670469838822053825754349302188480890129390540616261520180428820473297183163516304489509959212311652522451730512427490102466983533070260498510869042233815549522291817791073216945988574093014491651609154353851437797003098175341947357684972759222960065896729377739620023614402389508388013324199629088084785809280685953296115300743230540977023528375936377688284728790380230082289600653912001578733231844294539190113666520956507352487840185876119766259097824141759208986188243789762678675743660784320211320170732719792575011090676771737301709243175403953283970441735682784574171444548498387058474134132799067361634913450305616997577517494772953359385426634178872674754506631436716525053318405749798296303826226989776417484967130507498192101961549212263267754711664479977041041802359091822984124790484466469213598735158089380306226538289982044498716565750209723413602768399295365992937788641113410107114853453548100557685771822091728454242289428099890390324274405524382971540835802650907003813061954999287002605331346329027934984673661253819140239413210823235284545168843008153129385057478636415410612693923795890818968821197194115976047572774549166382440573500194925782125178124803034702339773821184699098097116664042494808795229115281034859187801445331800394430827054450811707997908379029921649009732066811090996036728174374272660879470688857593241659748890647478850293935463142169666207854087308921531088959435553416739593623882365666672617003907574996226927855127204518287181933196137580534854115024896656515214245050271676119678342508990206714784668474904807949116861205826070786680011859371028171084161044015436982840290837146646882423508504344941732150152992306668595796021030755851231032611663434577371154411835424916293612876626573451002623594128772059644237060957694648764289773459525141749327654846740744151426984214951174079502725618114731425423941066262051274492924567341553638085045813294631274219818398109080026117591927392478585236216105728484327795377365555902526758725467176069544059851174797368578587902433971943759950697749124489224863252037561871900132682692293293736355771336739439823312630847001063123339432796051435606574201782951961552931987873294139324045408849468081825023099254967463372534486735482736996785476843201939324720603901147793825730195520376667284341070328049129848040690812329002987555675475896418825467343301440776294360011187430668884395168542998214090824100567229355989377263625271921063748425607278124063868645998234780099079967054219829616638063745223865077201374091863458540806324302763478907473981142005884725006532416998161273629852835541676559404170822547199289386673611696045806760108425140037152295325360031289429435654810449457645002763910372076207141129544490573357367199300751456691581723530013411275768114693555489713977028936216795386593237547835974547884289685940848260969091761938341273539560417902548995266615377617728388465001614664051982253696694548423240930186196707355559374546938852119087315657186111274624802580904018723611245456439260960275884309761578272599351572928474059864805920199816287162553805640268215732811384123222420501406483098282717311426091806255011456108847740128060278759339669988231095155513041682395007381851304433094819236781328959621740466901656849136956730006825088688155466791858511703997764645930047431110780702220508367077721904018592754089465034987900677951593023434038254853380604752159266099299754793257794133057454468862213066943128869465295630515359431332949901177993587314241892068966630744743402000115620133107038073382710850378303794392979935425180812521399051347003560930426081003273276087440081997712319678094192857021563435311776857209556200563742097984777803576388057721537874688317175786568806986048442463196380004361865028661298179244924609042469709218901148272673449421350562128734411512779862264531236587379333216252110203827407388133093278706756908833865698940256181140962498914191103219901824084351572486690782984782049538802600743446289943322480132453739071587438281120930808252522299810415652256955182019222751785621973816022987127784521680422167046697402613141393688356812336089842119177846442543732273691342651385203108968793356717624777053926527427392547883839806599127194750819286560572714296651961020287313969122688339058154466021435216761848949382507610830111320984973931010286078825728177566730808942098553233247247596986412919314984765946450927640726836046693286404259627471156492522612528053988427783483567195542737841092234147234477320066840333931913159042245700508954643626825534360157702605654739266837233402291899653649221556362788168210361125341365353597187215678463599121052644214975095763811317286686942015206913380079496245943822734853159643500182599021046463387469371278084571490482208926173054680915996856517321713372927515486770600941020521264886334224318852893153937119984275025706730779589047169397700166956563621523030712452155720864793764997225522078851562529802022823849215500289659582728337441516991468261166903001592728303758158998502896981013129294628927949702665797729150322117429116142259763106359939832523180848028187256754925857876700703248772039944955684094815531759553415337176151214820587590545033222588028210673546466988111810740700045460915389630007827255492103514160365182424100044379879665586431403422308635307552896090284838097624034812085152852545758189588982145858667631354835485110827692715750344225221315401052642385176940536725245315625240379972978169953389750718564930551415422029687052946612684977753661766569774196822675435753467848979040241567912257610132463688511762242933208434806948252540927399069370099431420660053737446325931305154056274547647364464536699452286737384854005599583472202354718896244421804585598113767967988094808500064622121605315029532396475592992564710294025976665408514936396177971232251254335204718855741368854754643745212594689817573099265290924259763471334345346836254722133842473928519949481621295748459162576380622123756690558892785258547781227641752506646716795413045272375871483796589491591385949577705780032964955024665702649416535867506411210670543837256226633629039117902388855874969279085443124070367715837284185672576103372594203682786065285033920873648683551451198726226517210211464939534239646148368258452060965169705442974771504616495753962557727595455000212667256633230753947877920755459353355291943386093939705987776349263499043531869126692257340615594627523726031892954138826722283594326557481745297037922141421093874521502653073674965939540752123558825205481961165671978999327767555615090173439894749352560649834725040621193512530289629224328769054275335783994258100461097024907177286818556881642837699499701024412206765148837806545519398036250018010240063749629748959703971470410170317910491923595450148081510648711137344131267962602834953294216348472401769845971995056078946180839743971317865491389972581336292401602652081402252957871653769821239900724935348497829821203284235417383273400418897391314836008280019297261665835925920719826382804119062098337758769165289204320116464089745693112775365064659348894772972062491057196520454893836099032809766578361166363689333498842207035771334642989745760602184382962850544016568035826416827692404442268623452634376786187972038214922308440934818563603755795325863484700804846919597867346922140614032809833376779024368749558711576334377754785642038698342016171930773600928443103649405680723286882626156361030400514208264166889767151267758292057529133362784237125034640024906695726572323125388957599525466516559855378869525994679411038780482096559147896598552021019133766178791639436065071743609215885625740824186639419473403337920276631892683980222222588660737158690354366419719136814045238216772192841565550213853290791288501737921044387989037383915839897424185889097108516866697172722883444624845113992664881489257898408930735034446844141780744268381992379884861356995986449385508859442800396637631827810571179152991191540596394048800510327688620391167533818747506761731043478279972151044757600377645443804294555850480968096106077978998946961601263620303887029138481391821289870213186626834185142950939097727978450831603899282506281586413994913386066920478577285827701791693444022991756949273952634430157536815901085721426050673751278407609127253535824341803479736736833527646910454171529432242231475152535095061296954581365946273676750695183784133984051362065313361788474346805243214545597808258938947626867482322209650656310899157598529697631677174016760044075986913826364937910266661009593320859449765575097271509451011509516507706003908889203988870437694517380805551570289004249556503512646614574687926350964087094065315538229820145894148361919852737008063770926066900856293583846352819265941967582776524537761351959063998512314775641301800137015603342012339260630030518613745707902795794312146683915756396467160856797653515221939640698969578394734134690767184661900189112194073731228752754568583080278515901504593532521105302692794181364547649356368082836025162738917353178569852726855966849540504116461649979277552278244722050461017536288959757881998910320280994701038570775519564799691835625762418628644905001477393242389532706778756113591447314560966400363155529814533624609885910215087040811946088744314529003863806064688671317370557370106314051465832293730286104461586422944716993021203960738531757023338870003218988274404960251489959548635277952299824451654349865271424551343633799507818373364041906478387027928002273973112609478187276826476012552549095978703654184112704865970563065007160254951109922466499287097287086147168117255346294551496021235079669953255257567712091301486056583664006281530192943439016426528604076155721186196911743050517533753409118814321441930406459967797894711152289249017823161187198540593728956176161070232543528239944023868082741505330528938619082515381265465131544048712287052306208060310285577735979198445941689290686928655177319487352861924812128222963410560220950024616314280312761474524463231849580369925527910348289827974798155243904668098590956354869019007659837972601845633962523602779083367220488225426492225904617574417309214723512604271648522101340858251958056825326591254149849743438211675015690127817838595660340748381279204330982122794559666012102458966813949790674390377983412694031774518910499245336245633909820745618040021831732561258780395846827450604062632675197899858257013929234865977352607039383305355028172078684248516442123645458933524087909413175505135395517907737284775816097024755696389856109066332336842550113378331070303714855331360523641888368138380960167331721942025646644840364215810312499700458723983917209567921063169137053824619096587809882203724421899154366123455805926769340556580779526801991096736917298129325297187312372799209204952370073322448149814938177657455601347061199347831350623117993006777097295152086109403354902596536446079277611677731677879019252470979872159495638613152303807069480993201656697666334386242984508633799832510231144789549584646711608615407685790474512630945825879991686051627045542412791094618496000982349381067790176836616084412189951759784684306193042486618557394076364609193579397054468657192240194182252593860313406382560680819071226061711122953154435069586116947341485732517803638174519455172205152289318218522262111040295570466216922331666658864142659195235792652762097891368315495451775536858094022207304994217520854328104491995555201084218600156321030064886426326075402547551625599916330431202674386722942427512941275538315219589715900770003783070890341094453870341158110095677423165823027575685191924013952383869068959447619904852280322142925794542261549067712662010251626560417798948669102219154032321237641858956032751469900751179833633864839642819027896985122887713238148718377148080274629229955908233756514563140954315333369743340490587139131342508197946073879370088063482678626625942820079814712905457708357377095192533035713620713169817357893545501242366450710248853164532207686701629838763477806348206254479431135887080599737698309971693730006560935063939371625042121510478854966990230571812243212125112814033682223064199016721633842946729886594491175124461146173040027600777473757827021368705502246404057884722066768441965877408339082920485715274576130721740106618266228977017447327101913512089356523001763444401293925340333204411083937901252391677162510474151209098382807499775109088063142074221442818306477571742250967333895943136221746848496338098463301563620888793132953574528655655443012507971793769628564171150688625209828946954267834469610622368706874271204234610081226910211256437714895518086385035989267919963462529029533141831145821887077438529277964976615770980221889091336928400328966730801682923750158974752984951086299985198545325317951675948517108410151820729860355697732181030983868060068752176922494301740145521318461751069051348701281871470088976307799594295222909142218493661484892038744568002652105201592116562007021118357776783588843104872479457026583488908442838414999587504204930608753946026672103941333528912449568527809641701909150270571559469861287009940666749524444621113575192298853968919262243752525784074377225678693423365866131487069580872496089448277774476150561111823049237323491726508713470961743913701477273432815327778667041904576431434483987798064823559800834883527220645173444163291513994835348318974682786819808552908913160650987898203605302305956130000911850404532449118690394607703444026629030878545385559591352927722911235477052994073456465690696307301559613304810598461530929352381351419624148587145611063036268056172410735319000851859070699876870477384629027714386816783973201929703500127796472801449849973634125995033722749273827305576271991227346067849508045452374142214724275175114412245441789564601433777689451923357572993775454847110666764146238824528612196869105482666397903641522244616996007459673538958985461438435866961937051511276462296138704416198638520250043167530527693815758214130389424671652421870344832679094475546433179208746959775005134563685332001865895798762447210413021038050049585110679861140791856987195315932967014336501028301298080157948186501975069675679471944123470199849713325021109895171622809152282198668769840404412544490069079475145983469601610980838431113021878804499162669681659698420062133112926419973900418754690179465938005753223388460451359682786182013650608443625797441442809078143242113399957576475030596092874938426709125046860221266351155393979259896889769387698800090039667250023880334372104042110088941871840807180712265803832611576478789807682444889238298652506122413593438212641675486544862958116539617799674203729948517775175770685955460758130995468004964303336570408107294721850921896694099616349349333057690271588026461241246600928118824861101526183228875523674558362403591051055592794002389715384824331354128111391005546432166579345801276723357720625887849938645552316295798726403407603685380859567169331106622306087709136935672499014725449470735482998674574456244107680704370840388435338763332638985831245503992456861978226506556584192484624193088418214150735813838587641699494502515784790899115135244011914792739075798979627394940871075240409571541593809652825421154704682353288430053289804982025811889082325539549679623011500295011221362400495356128550236191440375379759171979895140410839410151739272047901055078055496137895290416603847278629520588153284983195326876692743639058432098997840784681365900968595342194275483602269023812953373394609775801870225900916446354917079892441519411074628718224364420510741574892143596098662630260823064640575989192606431822302824922113345532541418499749885185266591324525258762860232408406212268150705993941356289073700600124982962400092735776226876247681444736428904664973996806096216823048611459152121715154437932908695086554082202644025345406977475916331280820798419481638185461498036868951095970644086264337621591075721091639244656741819566784224850780149845071491310397458033112276837336539088811702399137625932451721643280345434869442930298746809903957275601879472780304232850088530285007856319758555302883767984745015259543026274587434375237825840216485941771892974452719270892848051899523964877800990655398456036200800749501863631987134751212647305770200934401354178049259492366073584746341793333860822205277656467245505058331793961231958052216681164430736748581290103519475385778402508724561061815295193241635047933214879867439735217340395306958901052938566702617945590665536124943332224985859756864676095661481992711933430938927573507121229765792254411027935882384831885479002445036935864760286247119928555303840257461791315021332604529046319521977703483456232820769690468553342890667336724633169787170696581304227628309921666418737547730364615725858146322462325063848934427011422780788687800247439277090455941667882256590342492276083938796974206887570418713207027663558968867989388174478837946609124455492583168216150002707807080051132525696956328813356909967535392983321812235267968178416164218974523514500127454107098737009806485637637177795565302492618569245827526200570511808715638153885785725908318975741469220102386218479695241710288397380603545531214527243340359431865236400098235934137796031087129093948309769623418597571093601011496109343161072414241192747623003423013989263867230016938902672651177410446586989776962480837139689915120977322591336113313917683254075693974718484185536021626170635084462211776204712803392823906204018080528157333635330274821197178698025392142859870633697824156831624715034864658858581764419472124328912455825151482923467391431098392646943712079491690012120091067245904685864271007956397705068032604019359526316943430280172264263858731261820762318062954998833362773454278615022697426878638687138755049386621860828580169673283905557452176747938720885957881240193752960644400246228668810018244594821382758281383328815533158295845214617885403255066476810015212570119832339247568796971841300607338449546740096773026624619588504331935807086044846293203236542787767942929953254078353695827722161032816352810428823849314970359712236928019231506770623467362934766745195940377688547109849111956850011809690511141781484027960987046761118198292039692019893738568983703314308965756894003654930896728125243309679758803014320554010971818507573553235341177210991817442423688656960019244656039929537523708928501488090002618220485561567483015148382693793311844122421647308698903386642721794690002971626312979277918523758249738659248610096297832215992581664298604888189171678830510003949400087020375737005829530083442404367007288374241604007066475557016652222583735626599026867069295008059450476758887589854666686986677118125916474409414343692968625882109291752831866468891707771565302259119860519481226344594259222406493682595973234775046094163812270282157258187876234846430966079964203730593283473425263135014325266649243531406696499007354103630386286032026496559558207831931229712623793994927645919372424296581288207638996307769160327064262045719184913528885672418274574682643985330027644845635003956010913593126245972631799138974474492193683250713395166302434604486524598929924015098259574694060861377976900249477358628479708892662333012627591367292838291668834075126632615446135615565284484276001221948242692037651930864107907795754054500628034079438734895588827757086985559780735937584298116648464973546967691170281716300241080558776466952517962252571388879828310000119738904000940622997621525157269168296310545175104815497254846001603547511347658474926961630455019163409967810622734975615883832551568711593388767402560610906640219077648098387887350044245201568789327798055707678900315842480122305454356165897626921081875256021050377347615653756029068887413220144614145947132862451097550678292795916152233656137798077015318222130489802424056874651227042310911203808260751702607549823413052857793894191349468926261759346828969034947233446666677817913476963809379857517587944702290975844206706455710614622096432131564444586046126551219756357053414342786514020544123363132031834935833001422079867437208204726499401410061879904897512130148945590181707050106010068223388168531699372019798245629701220542047561179614817856845511791053894793590211655229879445177902054462015002855956675259604559338067424989166118764564373262969086212087781481357356303340031827964097277301363516349857294728962032753141872427186995561956265558278837833552167700312856238765309451167351618232181819710030696098336271493982751162671934969547167620069507724920592190823487432025849366604748048257085692969739838321553800807743073233406700691308113357589391612552102084708263337637152864390971787750695947181327337559659489414267216491790915357762427438476579308776769629927145785924845319632157146782097301147219135926371843661861751550802378594143101279643018933826983232628375914586451582805681328224348899580821528912530000654000519461068979523073392473199587029878015108164706107098766968195539487104005436371912502895633222304242331846869166246864634820068113121868083584612906321592428668651638634467995565273117216998921069714986518998898918721787148575896369545421183748122970731454432773373926801038472294966850830662100857498445532816105593401092706616885139950926752704865771275907240242466301264505790781359684417025708027304419387992454321563709284984565551181259918887873445787044211265680425327337006860566554464962659262239487962129034625013079373648165123054422619884359472815362326430708062876086998682050241666065216557285293818354439449949086364812736755811427709023084164696028884847582755434586544556150693334572690721912223749616549391070841154656412390037026955391967445688245983520540841981142274561950794632728536830513518160572329282947556601184052434696465892097469613313313278134504293111677168296301205956945754575829540767145863803084358249745800138528473219950333614157055224279636733040657175026696101059524149436607545667274900919623212189457788688909304507104213096214938995551946604729692767474901817933156631939831966047796904192502803148072315394934910687255802198010932977056514136866364590273051589823385128089233525480020292512481223099259127577156114601205530895828272784738580990352460815944748961964151202020268281488498094256131563850552783889574210212684308004955188720105622398254057332220327643985615152469410622253676218331731907261176780431705939036422871965169639845651942101199109688571069563333823768456937819577611101121800814594294038516632106740583710925862098054950323441183866275273969022540419905338965040391728223365583729606392253394863940106279619428672111607677666958711276431164085925088058262166999972545091121082087842021153413012759757549318306303861769497295230277016908365831349936291705845436632396501972033725517630308326336655845194068468565698687405563150044796026181283130442638227333863076969184396425134996295760225805935457349302385393567636095685484475641783199397295522477911736700204896146168907443739971943735629596948191162180584549274126373559423764881234094976664292276385846009104932709606874894979521117570783926171217717566446684845282012656716196097324407279992960077967081316067304027554723238410287943814820614460385731823400153249553539293368150016319858802808410107382136687375461431316710966978692571977956590866735062554524145953668196434736675644192157170567071430940499010014206962831919017961339426372334323867090100533231732263224212522310382509821297460444284747109761828055236696815130559160628949131972995872340489900483743586883166937784525883112761235053757022122142187141912763230156510194274550511898174933117982913058088863667766144155125319966333650744266557378977858088141825767059624146321092599368928947126285554686074591738610526821720125389796795117773349021839445162871496167543442410795721104994162527517413021075932336329330091629590318574705685239714114259108721510245748114738127291336936574309826382577374791274169773703001667180840926835196132755088894527048300941040515195746664035757382286084305762585079080538625291141594578568714146529253469773649241164100970180051148315360316390736669074255188302848010115129120819901045183624785570694179218248960426239125494327632806307178320902114880159696215743918252843837279760714180083106809678412375934124322079375175150933526901805487947617063419773645930751730817680917009098910717373802479618875041868411678809234781038814536588977582841226144206508076742661011000149297941616747839162602098607621097960273630354676160340320469595071200019070017437305579647221973527781487598441322637225162319876891957836109902981945775931969738022062498191387972572150758100499432374503935719870558029755921705947019308574057217090213232300170737674853240956645968859423993545797062217172717477476848386188831201784007703556971316894762290838936707350491654236284901012625265269320221107382796970408636098914243232736406872763486104929272901351727336952360324060899143727989417639237881775609644154201037818213621006357375957906999835154658555467701181427767479954679248551042429590333333796025680058509812029635654230672133792843774455221881078666978550127517808003590698223117636869106818182407495908397008662106033664540230964424428938199424746890189957415753570466027859526858003674947477031483991170543837101188867167293708940065518250036791409780340352530670489191495192969246385619277437481338169113925914448162124893547227831410862801138536888779403948467737951812553208752395079521971800206241906096481184751326646903265999519348587459437161960755302835969633166203180641550255945969195437481898755209713977693358853151715769537191059138598473842624097959485598361970033219259802761253662397312798922130156107636515248761806684282773417191559209995276843435302446598774459258335974342237837329764208015002274694398209015656889529659117127685850433654685342552598933237270277345998521231388430102938399952427737110252852770011014386777601688039874306386913526259527998469816904335422753983015317135288882971691204295694966945683832426830626966593976787679523516747137615506288970146403179985057103877100859368805399189140562033655512908209840031056658951717297811779563533862451520637200728897853846007749515044950611763472907618957604555086461091566011285342195060950724810391739850665673264746633505494332115123409566933872372836658646213906481009683020592901800305495155601040854570150033421722374084589078630968348833147353289693536678354592374156487163148763222757560962890998983033138016407837800755017694518251763830928254003055716712139450764486250287651361558788094306881341733476100834404421143248775914662691039475906256395495453014022465281239385510040449493935365220289515563382432645085444362972945306860908838088264754487527125069565838348992678154633325077698401223380103040587057980994163907052323983998253433703777334341184752957360170528506148735412940895492387632383087945678211548838778596771304227741032334610545670629659306179917016876223401854518198527189801078226570925308951956298498191357647188367622079342251225031827798748766365164106109144580968957069220624353915016371406139287312454276199730800417459362834913195148308994219474057912915400345738263410052253628929444909152352105398887394909828711982187280517024774214411112445461502312258092655361915432562119324676313789015037650157173647817207650883181794794015039142621058640293813315637461723736063775468123171862012702267713279467722900280606311571554025384249004432620692672970201835983827527674778735587183228777021184359183599467154654428074515807065122586854430497343371401484772664555406598560900774513735569360546185239543788020395649729978874890251364435169306338329452559616487686171136244399296957165238211329098428420522473689727664601076748227207239786472964609856872614390334225308284004809554510953594787083051625439088584765680879410191171163507769666985559980620759171094166321368659630497062930862900920015341333698016071472641574223896765726748923323197971967520116634800771608486668717059595994815759022969154454240994552327203121564872974304005404274027538004897216205867258896617129777191916407938867656651392186110061500761318864071912344645868422215040218062338803229251531172719361130394523659965210809695235778285962714324417458598457218325897903510577189437658785983731086750581966495137304980036624356224620182847265359632130086875869800931873919067607008759941287247536633206232804482481052183168087857917281975501107730112870128851604156435989348400831157535573843398179314442039547391262920609172699046846979810636643921232196291881984623804316841419419692968193487488210296210855017603430495047536878169354280498475046414289415475900236444665106388642671905008074256282159003974237725196421234030138418272494719774680120631533345961000520235001192155208330940784228975027870622038614808201214263415338316747046648687511215331240751994082796992097654883701127377246301717465437296817819739797559041698343173788598538692654150234777703879867062180245566882536580236890310895077427302094957918808828557034381441190292165022351378037949116153273189759530976224402002584719957904233679558496257879248612339246972127600105992031943851704390870207212404948984184454114256501617373119432502414877477111564230455176811195992966678889146045312933604551499307872681697094249210344029101807486721317960891594656117856805125897643280477171343549694229393211833323711402248734910918749663895461879498373948636086904500988919194516618993457367781376947872205090438383308321722199217931591189616317118042845529677016138431080606714823715841621097126559229324107064881728081555030970094760800877804928916616108743180726007551632499852454741166692861531255767653260301089933830185444525292522070211141518070560642071605674351022568246542503957456778397765906153313419391423290251996341964174435431809004589047570342867618762880144653938008605295547733232205609806345126244134942871845565983176139490072604380461837850818432762300075993120937513069914994134226967012527350249291276674459912336459997507560169357763945028769493338126853954270131927836171291089695653157328975215153933926164989506506570075738145876048198102097049261493848915221651556729075842191518587311006527248607933040100001655132744849155031568888476814493977992203339497427816571172936743162159788882710360626570274147452643996068145842650807746790088352431184930833630015909331392248582607662682526407511620611387967234615518873801662276408524294081365286295451448053118080857381737957739042180336042644248409601995652995126592333252263241471931077746511723818212158466580729344527263513515314812177946143895056095673258336942441516330285374950312278035197515695854890765111068038880582783850375297201027262007965718665138904633333320296814639268701192604096455423830474561507625903116258215638354406696216185814356612678059703755787363984262404348355402696357120388702091310624605211153006152846652630000454372137746801132700776421434302020999576031448451857829081945017765372273648552473225071186364301868237699779976199456767391239753712025075078369283625174371411355711708826057704660270594623571458478967838552196039996864512517835981769994442067903335007581871293655394409185832502156129166700666576083688934718056021285759969281238382002142252690966025595096131521048802995301620634014208147266710699613375341937393215968717597807395762428990413658062430295925759522412478784487597175339736820874680893719827803590005602990999576135920653949568912385019990711663739550639347207788524410807005746814923983683648429731468266759979876606274480605344669924526172104084811702398306504943302391790674622788527261659614734812689309108308355345705433742895449038462767545503660748652565383647961812682628075164902285800046294160201257220240590909655863770024181862038737294116113377823101717134861926914000021661037276586945452071691512386403179608859823900022313304385233851270712729659216523497526831227495648878447320717614191301161094077542577055220777860118815812095641468831060428369522181267816618837066538336896908819825547255810923350114655142446810207955631286460156461610242530054587248526451214465976872730174722500380777655124006549746436981213444167568804182749897731553860025686530052036349785406481742442695330779910864681308959894328029817030747192743076993547208858872938904927085826309855028072445097424004400177873585578333967859537582544446006956394674817683944506951983781663165386159601278992635803343772560043835966484632414855151766567230604534223191604844171255109310131500450000948043610532312582267471334959274423857424225325351966091318097567123362767090482840189529628732589082523756955563349980556831130586243106940796593138727094568684509009753930006215790406686559704488487414290798455425951295588523701549980813631568811455104962097397432516083172338113805930182149174417804486649775119205104688660608985369172794025785693892384995597350600220754902710832329280061706959676549770867407159890813824217603153923447987795643406266223972552284059986012304035294782029147109175696262168618844208469198665418867100530750653685225430811309994755611900329423723090712898206943323068517738410055093405171935876091746332947792040634384286069209019304412563215760212120921064619865004383290100075053021044085432879171418277625518461675647340601271599768277278504411030143428340700250828287395444554991198412726993535402841664203142721343076234577422596512903173001578850574514110711722397498499451043578632719000593960674898073581159389496719513228853516702431073077266331905095206954366547787394889938879558734535545862239729712390590898507104191390632946687324708366418930359127185401872569164614595243547368191476198928367309487224242061945895311565680392929120094658536789304578077456134097424095996137130050930453015580305293141120435454125227976612792021389169959195517558767095768610701746686209039219589510599625755752713918148148412928185769388994384769045110257833638205463773547879762921607049947625848217529784591157447515590352818193004023891510080460360633192982345488258859763115007698450513332144042855873992412149805379982377941678347026394214882378160893575944902904503481387534567053143140775912607017441273617073712579092217755361979886210747742343376645443065171411184426959385028825064976012156938053589974278010828498278750489631631740555894724575873538648343093942343357917411636619048282108354289566035653308323361502857347071548178728412949588918333588118677179320767263089381922285078947495316223218380529107028121079384391408107777502759465985086075759696748558991904149164602871391920764218401610865816688738280996689077782341880807272263983239337923471433819995242415118269535577218087610347391782262372895003378722149020140306664142357267321222668602505591052094494501966104330617200277323920437888541182065078400783313144769645169151028111512146155303875315787581421181178834944204896157030703923725015362346113994123283169220842720844108101793810724738349738732233787005779979967436449970733350430298141551797280445180582825341521246181925136624054271438627033983809153597666687555939823633602863387559579805706216769122264498405625282268684310047535413285399664393677919362225661888928913830854543395839942278083188626688414407850816122472884154788360723128004293644856208805131167523668887823612874845299852701590330369245519849332220165318353125111021862779254713442278741127721399115149455750731579900592448457536898017253914194540705283396072306327845745628388062628112999075309066571248257136269503416817534179404522698672758624176272660302230693879796671476565077514510721091374019444784844092996476703842439810336226065555042771015945727790568469229972794158397830268622578177717087536874249972171591467826184186986061804163886147662677052365803502090901642977616742488447378828793444790858265148661829357654846436801893797018304776782293619266717721091026136441851889700914995727895826633037991573949437056167355313834722222386099980589562832972250716195228759790755755723337924854845529873320207212123635409209891488391366646617801452909111402184649852022103766519112221541813673631624717787943144073271489587134320346253779033808773316629989820969752572844522012593334246488320188202180839258912828009983794349576302234544891990839589004603281051655756705629140344221350132142037538846314798678904849721266330411130704875259686298458950556336652864871431129463021018363860041357145275435082385113022315774855172042752800843789617422167379846775985385208363651693504623603443192752619420465403127991757679233210059318850108378260154175244244266092542481406864954496277657130323943364968916795812468240929905187157484718021268092588245971235481032316719014789851991166199983577693979122141241782750390564847908863073499243525108491062002067161235518989152968817765056233412557330586757810349304480433959828046354834759487215109224276457642757434493495269968835599914142453592233142627483626927428560081490703938919367320274287819858392101257831235254390788189460155070529326472035421333273655521393764919898133897022695388114772914454087918768150100208974113730951816775157254054888801733177831555118398781623888239675632287137297571837981193069496057481536054772474959270497590225206405630637621669655790388283247758946621977943236482375648011329709253722981270713658410607908940529983486950316783922786143406760874699495537294524619549702804974100819110667135634946232671927735485765411813862318482536947559246350718745015266722966661092311379127783767662434068071145574031754631648323643866903079824603021436078096567463039815004889275726021016445069634821268013036098569528861901427884229360887672302724917792564651978082893562088631892095278810027835417880264721718332644566763298619396510213478700363979729369937858003531544844087309557746850427087661074497027969805518802717779937400136616557358017406327946687430955031753192047336327005505176120662637175620416159956719350449458331498766984559499375743703778880422209335275904299366053387969123996617958496174390598779763781890513529746689177408785383027053523079536942234666961653116015024180391471149615209457175160927520149484555560313676982682514332473561107661840317266975363431447398999084957786890433149449674650860922016751234969751859594845105758770135669734110175178425166149082415643761210853721848205398345395136457188191437082597526420852912489276047642876325644000235031694948891835898219459140830830256719991513737188994774287867301646350892847587847118497237089091237961155333727655823096025548948609350122066349020773885153261501443352606200144546205527779986742578965515245831778354216643704132267309141038830547099748540543014955708342950041437365156908031972474882752736476039428849496792720261273339568392010600925677211281591740865496573641012748019582029428456055596836063493318614551460081243273336318018063710740433903990565796557448022401611188167226012213815511526972211686312533857205534800993313970223639856470449643238047981748061242065109175183643421850200846070835902348456530002710644470503508526240898047162595072081695840519687293714885953445626481254233345838390225876589046277694424951921525985568496432154234497764303668777522121170022878549206891146077874141732660737754385951317748525629657162049850154158377827215840371301243349789938276185414289728674580413034431820316215046520183632653553637580214157190364822949235185162144484462703600064823367019839722865330931793399588737488696488212845705721006448336615905376236591720764533916808412855861842485654463070186456144486204971555350017838629762600533223764048070254619391913680318848085114656449884549079461308692980506542919716014459227510693854991103774979588574607355828561150803521349396963785569499269297284135910285020846828201173668525990926655611766286046199557635891843612892368844655896260575324818700172935976554636513738239039555087923130330875444579110878868425674162555008031144398918010063528086828291558868688466831220278768498083032021357203769750869430717181619819734223659140007797634956867036894617486077779021716720700633439574777027596346220739696103085177591736229563137982668071061652610574926150330804549424964769377585792779609678530098013534296491669725587237691175461845531291959222242830629275024397228573532700747831006971247868337252952477359576430898013361108860187309298484336791949889785037269061303198045086246089819311464894154598073929300438452606709108748930407526597928372395257102350094612548839865222590936175829151486509518341140334239763965582991269336887543711402646504508434650872852338168779775058481679690005075915973155220227067394497975748746771722858759083130820155562583601513774823407705933818862792415112992045050894010896525533178257061372129093563221615066673565059918293681074573760842763738341344034770352889347771303587902946595300424010498246132473981384540703520903974335371660837664478765405852317798811892245287252283911334990143187946935315072991311956013660898063723516878156422410832785133146055503429487817829740313875856302550467568241193221088791021741472527492565280232857513285800086727687441562583922521380293543072622018463691419627056813929455351333127083916194261870549079161542514958018853173843273760537379173113663700517118866377474960119740565524505313091969019051274746779583626759044978178069172779687842881031837889949861926403722452004827614880669222230048590826338078281177559083010559523775328870213062549832499455576508408874969722427849991611372661560691305407909429409162594193101322236468401182901569724132249807265461394921296566773783873027787697899948964569179617520827470157087001270014716047819220943812615707355430559874205205003608421133251076620842151749271199904736284908553438504830868669846424861644668921132837398164587550736823282409346885080880288968875956485304138720064627248247066915870208384380842237601133218030993711202132006481223180595123062047722173361939366042501104156422299760481883085685609335460082884161750404843540050650334825990605450364644893933949505799189434602825490073926186264974634875265344106501109982531963454692168882130714117942276020268948232571042179554501719011369788073369206048274251923196731602212318137721515051305581172629674727688616861073599509696392042293476738858012515939749852963024316269669600435675156841487443891981733404869276586736353570752899825392281160594418416291086329935407564987700409241254830349861900079451992453786281082853296366686153001643420096082291328881473285962038180501087731522673476943734326609728818107107250217497471709739305511142365681380569618886183414512872891829918799191033187017656655997746933628821383123965594959522380667412422254779906112337877534090488319757778171451616090314004865902594075284009381901895921595195687879655797976190328838893729840816621334178273307434815620760478889479483852311432049628735603851104054823306059829276625853405733515589862810378926022160477606395936291677062307731500393118802624789985411475617148528672941516730676974072647613702048894545974330665000982167137199626577535570105882133937079047116558054819153907478355932407658550936700965055895404032350615603016959614736847490741930181722654623259307755485093030775291366295848744842537297967519642671742525197875443808219768706461909368657195203541022645150288173527166553687865823955245929586206272814251997007771693966841551011328412777195903392180081123038810648758034894361184624441996293102667983108202018081435345597474275276954092617679422442749426522282824707375595217874576157732458015722771928874663145029597825708779114844632270110222483631142389675257494406388247584530054405263756791237448215411978016597962945015380261377589760413123720485305976417374817508586684237362945808631410079011330804110742886375559854340722925755147769866604962286548177845137885060936814340464343410435345363041759889894259312420977936613938998884008244618906783950710137504017595654017513477208295219440690413233569270462296545941641457863761187219186222911642712815408913160308665045827430681279472905505385795615993608038728253550446083061275459944709365387782195446474491571595438272062826886593865207256096263153761245484139890631179911233506360621652436549042045915026725060474661525185262913799899618673786725304281973332145893497739733831748188113819362918609494731318039711240076861413808050664550032007421464336811722235209788904739906645169932225318951418840797933159716794523461005220903272302929187137120074492644345579956430316608712100948623317658960231077477687019090037593919616328422253495136008855089872653474590767098742920329169286225865679772515720873851075836032793776317920376095169629992741387264955007685173422856712257476876639111861543540571969459005910059692725324222381785592090370056256490285659677819895772926779290648269590594726134215952376065291180480859406321619294430639398361153959158213484564056196218039551923571176071869901104128477928462331086564763815604237526524106160327906213462655868612281748223296000797303808256042123815178985138356323147275009100015736149822799729900104580109388638472515068190993507704289572696462607128660136742118410732297057856417841568743722997847745187378103427043691230742120092296517993352698424143237412442851911396582782786948525733622216139352490394099436713607492484449827058831807916359846359243905622141049879856966908366230861988390729865959535614646814628966865419595132878591490545300005453592231491649992408072854526268299514122333264339434967142605965763458185813800446651857223799130152246703604860701357809621028558892238604355229185620693668138841232840027566375618935780204232786368449189031888325287786506174026645972499923087997970827673644530874976599638961036379800758889670408854303220265545787218793135437613061308182899815052253822574667966124040396236271689285222982558783489685229877485032905579971932909410021566317915048502218620867695325873545720013260792869644770381584446882358412120894791535443034053539701298838249687302065022279490752417161015507129884365500241165913688396356817995391354923874439528248000492642950213121452565196376935050751930605018067098682521674220626774182064817427148815436985236048662600016709431092183701056826868571555886664242155215232035914150270447454943005651223160125807951184710904940379071035411030316483359779800287457838049683738336537421077499628520524016596773961825894086461323833895342672170840777957326022142702625559982920014683179807583941290783315893560944870033424665939388469922259179147409048152575771873248540116357726230799633772154610659248587372808942975712303143422488812717146377420186474375552413039463114913411373641000017216539198341919812484528027469887069700093974499243708082183091611578906080168813704240762539901343503316575768044679107652356419732223100141370590257604314735823063845623183923419170720977239186825924592227052532622133944668067818982439523725067981491810307527558231254157515211568955469944086817427654929359533723704022445055232476309113180968442219860341520206458376863028085420429436969909499350765237509551237364425860976193821981590296542991467590651751501132306253024616588379378627077863063371757195016506571938209461966970628955589364248907300189229949218001011275151004031799894294862218183164558703917858718370538059729815475528279637373398517133848414556231735434390611148811435838592535801432248119212667087787049863528184328802632482716612841537516402846644803886385261325436791803645423412806874439419381248484354894713588013829964958264626633194259450854029294770566434235272813226547582944378760987300539582626369990203575099533272540534908850391548628657765513162938727794434849641415866547938449515783804604640245107743526969474832624420521925913719074383503436735592184571637238056767787985359590835213425971831727329998820711111152339167859372842559370115434528109057423665878765149580788639599023114073246614898808130663268493762043694599505758291694850516659664597869306930754912768967253128140637697477166385972401291241990112948993275685482509551424292440779620045594679655296295237823934508924569358620022298822993675062703121910507243736287831272591545801299764202768964436509876737100031100548123930441060221861354574326565437734257586829473224601263770964348403769170244192195181448172887165507915500934910296273480451338230286094591325450060739982444796143582128354596367534637519260154403967335856184133424296688027979391671670111439565306233490662043719246260552975823161353171030858126632698144191104450325710171628005825902959855795832489724670758863245317948368792655149801273985958118534898452957811127678478983316026955524767837814180207209560873349432652106044502107756554882350969512824315940984980136273302686578627512012257733597103832341026569846176629813910430188522530620926509029024690391465933277661393748469821634946414394361382742902224973436412111569437426757218135044309106357364967152589460048352368457324888820352723474290235409082739853896607207284228339777237417742834573973339636827797054908226159956186182609284969243450779649993586066759745312397368716261127277239253478307456045413093338022110373967713816068212300310637936956646866912090072563525450520314125034799278618616043641012340301610198454529866257833745491331803905805318994269032136525857102161461657893075564285531639344204919029307105736989328038395894833532207910456620475762458667440038400188732821030198732353317563167065087773012618358882007443563952276675121031195148829248516298453835681592056236745439120995441051833565711869806145004841397055504574508842770948351526359562028339081541683611968652112079290463435714379442349241000292745334724332997236031838098027250082227108118638307041323116546586617056456414670664752777731975522116060931661660238848850587109475311503683013065986663240615875725296249751088532182151722674665673079578161184362713388992163165554584403373524048968347770785823246301945836136113324919958552373422359529679727334393181171904331463440414290316826019957945752874214747477874602424412616587150227392289614771050881831842970026214042690496850760629117939288224341170523594452254701657511624140433332486905766454810193188862555995495379209277768658081736288974446772882296933272235968718424297706556629514539037666769497639402447862215225111692791301741305588275055683412685403888349207070004127956100126001632217806331381547635835369445022381619448719423704440022862620657199757473080348304875346652926459220805739167705595255117083412587680360440764315343899799973311296230891211010497821348094535900520530895808089303561857808651744304931428271318467165793317309151543002894875234721069724639496078242627004224271156483072823981952052501450584547013649224377498614126976728188022755121724502041667353097195582452007078326263388193064307528212629919631821603836220155328126586605112314607643247540026076052880486609162894583489019136374792939945036310353239042401978305371410072502655228228733040545464570800214365446931226129192176577927255752856143490217965861170054784700643394052781655777725563057857782360902882065258374862676295152082760400484927710884101922528271787418912458150582504483596713232704235145364299065974155910535748653297713430363190307847270024961349244369898419904906007921696549614087916929571793551852865703707143188213674573263168535228842233501970337192367760742824394860248687817723338626327651241785397979329052925821829511360781091132164998679816765693183751699627969863603769653571648622164298173477706813734819391123829318429904077258222516771773114772057369693808908435306079116645019422153534180896309347489281836982489269930721200112557528579702897753276781304767890320642426514060984967855522046333915002415907795551525111673132006231242290010245087987999797780608418336120957631697751170941439234328801736012463964986009430704705592450040653532778233625737806878366620035939188873122518349384572759474894992021070419972158337072241912986663128448257987142627306263730735443957034442794325222139375154409141639088259297936163828886013087608479542838598592495588359193318430086997923507225093704238052580967294519050926054017047155129529189887131488501653795529991177159361164240361085736342957215958025241346831650342954058734283877134182217913234400562542840953738278367697064639416889071605205386102609332111291565463857653465702402641627693424423372309411154871493900081927111814532947037179578508601179477691635477873163258402732920655686322940459565296053052595079469749404316753771417228148485551634223299546318723715809168826051162216807537394322158811873383256578182222217251895677852659906822218053030312497977952814518697921458322107960666795838707768384846661723788374359538192646679536850555671770848652897509251568663180310627671003417042379568918740780802398810637174460883681752203067182269789053244552788849391268328104843411852530332785046392384003905577585033092812290327199487037407803065063939233037554241037223822513282154983216971714663311171820135023805452245831179043478180841729202623092937377211210317961645175432501468011557234819283433025400318858522966385666591835019643314107724297522717362655463357693262657726175911808344930597165121237966749348411483228493088688675302023273321868370422411844578067343728048681093192025340798726528559133675316408330146655967304920983949755339290442526308730168641229692743076453216791421216452580400096859983506325717922784702417841123581021205006442171543853072574157283271712722825879472668761851000433842327756733902825360375060281907503961042883428687642573138069091156349071105379629623530744294018491804035661733097571189249600409320712428993957340549000146360368065217367505626240987512157429269465652453074845696956323483712444839132574531388044583899135904606410796485351565585052902128907504017253313930424129588864450871884043736203506208702432634206769162867228898190477842898626056802293964405700773609837235271493654574778292025239776832388929973439842486300089857481359342198419814271263512523360245657825791629304229762408614247593046202399309312197343463507643268541139404195474529614289329927654072916673188103609458471454052229630574376991724889741322712665226513687817068704652780267718244004201062470953341470158707757605741166904189165394119237000594615372256559581387176017581470968527535441618689267300320970228547515945658275775703379671962864551663320644404705956551227340054634604787613075171048439962043667122728423607634355842173088917515755352028733146472951250678791541756691724725733399164218300569352357287359292901768257123395417863129728436131351704701728320907321717118805833560062513165100994247897842840567962084620551142093035517585362521953080936427995643262560203114711308778141977946721238632576832656998084100769362553898899886110868373133438977240372170026397009502809899055806725541668761300581894884896952880370221332318328492583140783506390355819840389631038768822449975543855140058828701833573178311999751506046216902026999032032496426026259184311146619524987799269772151296942189094784623125990211062153274343266920907649423166716055165386293794896044690290475963947870911695683239329899327250998236261578989444775340175191858886621021648487223176986488016521473100618858413521694805120398048474627057117896470496352659045028675821669601581488519454176699201170414212529566199472753386087784977483923232683830152057271923161876082216433193222427406816333239538381723622623082281551613326623697449597113880624256816026912793414557661926904233468434746837804323531118911738371113658476273302124775860882354190537667331038551313118833786125170049388155301806221761820490002544831198122891310599690741892525160266930500149217024314547483823939129598165890226367212828174974631996723086672424220573904471792075019191620556381026267029600622771286511931493475268970776202166795055278034686721006367770477458612643119178968253306903213262487781516107157802011287459987495411021382471109465940811625510338749146018874882254895341568812884869656205047746317219743180346532054228072559613642750095911135770917725323504487540336210384844330900857182547593395218147227843144046926415360801216619703921307685068886455721123245251132913242688160449894761461968034107959157622519409035290769658680223890915590642677403253679922868564445611007784219438089129267883979949711253747148731652779167022804210912899969373312817710847541793215615836711220173940661964544954346237337844917491675999467341777410431173980435199553915236910526402710173863872846645647343891045324848553831088407875247320496408664668537533519824531821331663138859303798009243683567803561398040094849774387933007451941230269855318746893554135666172786093104705343710486131627550388289101624734094528793803336243559660965251493095865074957237708666436646945445684267806420843320712830683678703307941895306304066199105178455071722034957820190643043324090725644603766196225232601609220118087793250609097664698784636109242414718277174403954168673059254789250399337347808361508843663146778446223766949641150820856293124498786952717487409838770576347966867497372600614859154629050380261709830772454973481505564331775599739297177007168503243940016897970734285876123755187112348129123077812750164869920598217691451710869034029564956357631180528769867684474127744015118549375586886018929248345287430488398170930446353674408720979493336894662896904535914047470144625253428597899571102653719099344652725642378447761543791653910042408303194191275848268939156259531660820356724588743964331840564796027563337532440424121304172966108690474372314823108512984234205583011845830002357604127731171271911524465375935990078151183713780160135076191967610159563095592575236871856483334393873751620116088615963483439378191469558874424378702959419975830610502631907194272003695694148627610076997425110582038801506882247166288587728898201253496954549492922634168806783151139603154241393954794115493908442540462865874841539464819345083182648118325112381814930486423508138093729866393762228493661286040174303155789498950720340857108524735747883512427328177322608381523364844328629430653187243847608061919162540488255536379058690888114789590421138799154656318441280247165315921322432279315698377517338856895272604666232253458061133433640088473438798724541419388654669728107819423691759958643364190215319694168173312332712689727251487397952204070559951857410278039101246549091234424578710323674567729011455766612312670498355491113909998512746320168913970740562047886109351049756867718503857507602274110059818224120703288496673373330192547718271139488118928350953456075010870610456656745455798251461174505916468079783366849692567445467819728098387665632468199173147607267551838960203263412418954441952156389757079164409778276300236594365112661570661427757280971611758389641914659727809967299120210364142808989793237293435665615313521606093506360626305393344830319617618382836933638990993910973381149965416997547828005407012401568463980156399821441113690450849462331030644529512720928875589112794800580676558431426246659692668474564575538539707072876109178293042617045840754275088110746872658937213378864557254952991500768998560549832892476799431836712823886277485109739189697494385891205924446652914374681293952508687418266115952184975151100598697494809847046436956415534553338044869273459387946162782896759220311787420534424862276042870627265577299430257606071650290284548671121565610133425600036879738810322345065929619133064287356094145198843449676436104007579730603623875116780318748848307184165520585515908620288160090182861711026303446200976173361442244470827083908151738619828937901262279652672878431678497103580763690524045109026959673300725842175553498445546324062914742621547676517377980699470300705985511896038095043789807873005371031596514532213551805702773300002600670016049244800968783835090484807052206950352495444566108846905000683410749897097492532176447949905654510983721986044490289703143042277377163928308238398587296602318369677953758077644988438291193346249905603601702654161344004379569678799626033448008430488371602320089243245492460995926757637162732742833813450976827668009082476191942484681981061483607348010380965228691981671456425139865883373999204632312671451909850572454724416909236911938521680873557156249508342911117828986175345888054614323216439184286947457198781776146526808937191270208670015203239955027402267694492272188477576571035526730020252673891630039709526490506280129649306779046141750283770909906148995876131684988840323058960142193999582971319920217628758108986620599016752356191439460356112897458503586773870012809480275654268200726433572417340169948617541597622017893585362216559160539846192011059817604044459071793741992778810025893517392083045782944199074888994394017395153299707029609095779050486673276634273895332980932258793964140078662771594810113169485465454489367110093994809782748251541119238418159716788596523329481229237925401516118143855810583431462631736101700040937556124992840480535215758305441077409584842322860866561308674350254413093870802759708353174325441451937631726226035883952418176722990349818022207903365353355869913948942263622246014314523500033039712789768610579174818878683590755003407352370469456751500218389647506649632670340934252097255744838791841006906112234076368853041229038387516764099049195860119248857564056023564041642825062461200026206860972028838982696800046251567726665862334108259354897286350436699095965426394533710451405648730992892842906183930633063071500082070951797231890848479844686870611341725196827690955829852081575666135595400586148266542525470421067862712611209416564241518428184031557726392504179073027500409244373952056337973289416423117687247453529797349811331743757512378259982827544362287516297652972065407660499410659006398505903271859971684205183994901318555998094829850314591798876139279153773537530610532506131551589825254465795701808859354089441969216524817395332719751467330964855499514075181969227218357969775774027698273119317122238969759515092282732656113837567387826222972134482386182564604676565612055568257985532384318233090042278800751074369370280105144308119552602177248549040580910214183324282906961373784028680881322675545959304679110346343264941277793228754664252578531008431855118736514676966694356089142325114075609102585830419779351399108930544683226612915984361357956025074435927367167952060408604723325701017246706242247235322379809798431627709637044507945616560501166786354968714546663948493919360048592179197163443189230646241657155079439060846416435819810361045403387198880962720091273001666090039777898166337952237114321958618530134726676753020186627573923719360491360172754880416483549132135945508675585072253069480796315036764182844456612810591480667510743906571900153321771909172351045292514689665521557863188504022105895741567421430480320309340283437256903715481044138137053036347424170945060291023722353425973760696787828965922039299869030054559334135493444813723774609709284158589157459137079375532440893448211754967116377704154158677837556293962716902322674441408997847933032963470760581414592983787517317602307807124085330575937353809108763340191432651027910442480899029759890530729935812483356041859426647568521617863386094869005954131489590411161832002684889260827597127683143247009679864146903303638956560402825436929823098098414595331658850409377864638641747855403505114470902353435947099759728779273458365695375211574055578689900786564882820720477190237604066733249976731801518775466812393319445976914678391207656711530609042397823798205870610354083222882086044133248157694034079935232717760970727229478249815202281253066089942614154605798246980041787977543353332280405178946207373179943743655809649339583111614935044777722972109443323469803875281910068600511605878747793222246296676095675298956961071073431750975586844025922127445155366251407906835492737218281877913315437216409955801514031293271907342997587343206441578022259109996959506990187054845411333752875766268715928338070017824163791626501477796364089180744123665156957665880521261689847220451229053725306691931174849437696913731775867849859311739461519631037358172989623706948410776846722761007674788227426504754121919804364731332665260934172810857798242009356739824091703374219013903192613517581642626720850249340285431415322761123654338336937222531724609106839579600079536928785642853937855643072120278150944767353383956678163045654168802419648362955171661011014397052004718308874591698934232830422374365216139185648259145502696873187946604013800264511687868848345481033164422354252695569652792237914299018856713124972588325335865780102448831878211615041360922970869735117493367049079737888146999797529212490997391440727182113603229020664294825692789841618761814490334515105305614783749314280025448893893753948424016656490956025762944731244250211558962739810580000608507487501726252808363210583997237470653477967869736533591321741710098852181025565905855270229875514972215080865726134511266472368594014527701737209607852731665882359961383350682675748129771851315508237845576036882079876251880121472263000174506298213748639214294542125404354265703273887943038489312927648283254152046298275603899388680694175473698740009008356339461857069110108352013492933023507395091183871810086369839466010687592478973913286483909385928980064937557866772313224394780467086936927515411686217940699532464423042287127125113414944505674362258492643000589128158382968196387060353253789103947905160937079690919156642012243027491149003070975298983187607423866384652662890715397923679498471345330032232295196183360481546758794935329919286391660325000249530897353871632499390843448658023782490059872899122519196815342127303720138505333210321102081507661317444106110504020618394534182248385101532406410113205467046538434486160729754049307557311968633596259127748455428994896914206658437908327773847205741628656884353671835048635201806455169901959929039556346553130299725042825415049730482193161874468942112853115712889420562528009571391951152112296846074421523158830391270365971605066157091651631433360009831091966278321473733783850231515723917020482792846957414889900655757492254475425292140549053687559264849792818385924141496502849407958170951078751496977016346543956439746740167700061525421800084420986145870801069935937445037908867152370812249575687797048443208939163626200502710614833419421631905215592080038493588369303217688870641700529278826299122036594044463189263307057861569166457034545127260350429910698535139308192382384326908129173436975653373718569347286097104824347880073624046179131893337340487442501718038587727727422689889015714060978156192540237898241489970625088521871169449926750420482026710664326304802216324531446070231287351922766525514419750616146121523156727825765137007109727961577226105672000930536968439041799364468564716831837985537078913979272121354939741045976649950077817590214754953792575575965709945273255015571139154867396502544296376347489209133891552100526480876465603426041943583043114330370332568709653549441953463974803977565951969322942973013179569215442069412114638557629585207783452890573605061954255285572458294119817170891745980416348601138644167424233475678696711880599858708264153302998175697988236148562212760244380339534200155834916649715875882140763743340007920188287971600060326380666999916118391205670817349686312281518256155624582693771940346671993282535661974090005555968947104214183321132827551386844370720313588561859524494175389433901409756168273814194265114038920799688036766945539808812008883175830165063406063066786952549706074655775864688291389643384789456072930825350299581235496262250516898855515828761190695297975113217144082494018142696742847408546953226793803311161519576854143559381894191429439416092783820306121342393268994809888218656261259426001019984492726120788655278603510183584953604954223522652238617492119461056561726436248822593070500192016685408077981382424926952650478073414037844924919071016295698840261618397892249375444160394193499309275847663421228351623542215429832076576321644506220320176379144186835158056800048617704799385207298877615130026404240250202091280568316769453465712073159875925480925278683371450157322415632425198656581786138933558560401956102233948947933285049563066719719554075365203955128560719924709908243859470221469294795607005720980201777263101580352516053094462972111257624041805967416493082498662462736012945664679496164956251175835755654879343226279841219214044005266945059841707909289921915616833481650954132359608379422577154757360389190729885055696982038917250235225080767992023808979897609823233208724093098042116368313723442670410848494437869143627918047529989132281749535692615500770976601036418903647612991490397758775934003299955640255590961207444077210788492872368816692275680499390270738428685631074761531349706094304920912099099837163302924805129586735382422996031211366017883367368222716988655692882709307144242791701632345359512905851838695379287968400404938034329703473090690872539033307496505897698563771322426663460398948828250924196615301952617069586621137082293507350347225470546585805405161144807644835642743806544598350510184109226694446338651977001400695295381110118801369893360191955601943995921096679180017962697781653738557055023617763333249147643950607917085863451377175326307225618830411876530933892052682606543289165042947655766605503514943524568505647479699734514932489456052690837528346541428162792430388515611581144667940474234733310295348540604965026003223414590935423098411927834681575793821323982812500068230791947635513962905685380825111009648103796945934674669906435344875179582559159484973896709637471349931065964027448585039674670320279874355547340173415241707024049735447328663997655945837526188852176862304535545199542073551216628554302502245857370384509183389444172999258525836903650582048474778595254169787972186835574455284116006407778889441565453783290733339849830427631091988009482376093409015657655529285537939068723102634918877538149083640487780224364856221686913532697552669144008390096631363009493729882964835441169542357634163048968371091854326131488978872138533741042262766522408235587798339513342975441009562751178653303576935015112564946019726020989699440888871298586195197874549094670194392270099272054270759174785602192954857738871199605125796105467644811063489322837512366480352040431104863529409800995600957118713718333313431928642708056613170581143504507313527073088280853150998474341065279587907920723369078369841800483509857870395197092449474777160933984499330344652210838658217305094375898690402913941106128346288431739887289143661805166042249225945487674595273130815299438587081804633381308225849805146705999382910301994257385500757003863514107199260781882934813113983505209155332857223851678958309606089726028590314190399987563721427536722589717429849053613065652677600477811621426507969474355674603578726064935610978266740436542612060900917834379437005388605649940305145743847488604509917601081658709107368486615064258653460857327411633488850472118622177334622289280648278053222670092537217138577899215337361493622752670225431379149763137608414080003228787350092432767858501406805978035901932427503448267217631984374356925982381233501512620576336694634803963097405992706209151600847854858517697375544799008008825919025609401631305985123508535402666245662028707221716446680344511081884623552872137330875105210610911418466949199902785946979784259569257750394742033950784586783947059747775393167818757217012733554912124982416842525776675703716567754164049145316538851726408134878104868655732858204209289491414203650053205960657427182559121973671116543680683258959017270520790770343226928211609490885167997506929252205883752034612068369657003381136410568738661803322568535164518868674498219489580086472699442592799799569391185141428083904280032765647893806613585381056676481011537418902610870449503959684028464716854704236354694398426653899382923551534196813706239184007774257116759903821199046490703837607209051276305474332673218606289630165040887665612056314944023492317538660311426930850437055031829791933908938989773963078263239484997165879587729706319614155607388139456139250098440589807081917326142645772898232563178563485260138379615542288418873084513496989283188950537020819648545876174930831862013253357034757391607710604016583190318544113713705043242569994720789770875051425087440206242088516041310431712707601557419593788957019602695620767055369385791337221506557283929497580860628458800345138531845887417687866110399401316988983005841581158183398514281529422398081226853945987750901504616236501293006522663324752289479203400504346273234631811023903104628353485530836280071422234855158552125916844197445145148481589761108435692935758734689671792492253586065740188613016137677140332116672233759426881881169813631698801947790460812533170054653140502885596959293218982251788719723682946724202467855666566093716499221319509908162730132547930592376840437233240132323587864312628448002742389474626096378957235821273257148770855202223553081329851725988137297754447892378610470767459494594700888051733065089780853482164867925220947753848474179739475913338171733439981695274369098511979898866683427801819963049014224022838484247605182565694372386515628945133544431539429662959309090451218350486661319845384772382974798530697576893840650683987436721993687805222465268843583522122777426088991854501687293787077610986062338054600906766756433423043387666973960463146710068507089847177335418617327195164517609123366584025615199176390754386598372833444423830951330004665235115703775697192935943663392593243292481060101898730023960334516331144020553590443622187031752900639025625350471079255245905414856862950224182082662693172696467982521254130791827093119399031490608724843801439010132111980070545839068740630822811323545322878261719813062997796819782137035281283088955656261730326593784926304005030120928177587509733529904989773515473964377661733237823846508676847639982915589892668437161217231063538853887457062059926953255066341438755959805917038294246414771501402616456607380905506417698628347538251468989129322332130291528561882654674030797036946678180130970645526932622647329545234919712802855946756682274668835051635093272467944823296257917368776208981695802258091743228616641570429100198165711279636213838398337373956026474898365221526164800041780951039379227749840946832194314480949713488592360654848389434813982310315233633539775987595193380063704565986588594079568943950151178668975584823220828035757414978960253821851617819929076624783279644660107832844831199752305605887496644041909002237017731553720502239139149855031923502742925941574059316574475812908957947475219376696027102182155188326980797124802701827381823934088942026114397515647942955047999286204467647388544123933906387566427471341342286259033610144738784777669168288836749330948913135812660420715135066019797646083657121738106448400440064227147224565101324268478625887920649339060592780545259606470656132456669193528401606236376002880170428731023555471802666083449473289853504615078291821732959243955323396001875627471264302294561391377741063854243290635257274727101329699180122129836544499550773073287700318753761860776029286012319718202965598077538706273901959073540046863008579167347803910182004467587748598386037350289954736506902083180153554978870697598380166108162336565627851955700471480279847531613806582456104025979618857715144137656472910812155518036233019010710456372322436358032756162093931873471383474594365815590549194079920940806093274893264175560222533749265016607754137784096439269343055189211119641415107490052694917065550572436999823665863972468592476653808116908391626340830001117473834327804464580585515996731777867112589448694603820341308534933570423426943266589903442486965268713253191079906529485613075793503883751671424544007434496773409090036579600427891512546937065805929889332712127072578459960838812647850505644633281320948183550166836529731563928118785738689338553926077988476600013640843939868300561152541706474200739211035565636922847789948759401992920543812372542877841104770306903059302773240525182511008168258980810985337262141339923717048655731322269240923644550254015955536970861099649957373034506524431321597627261961478081227218035802143744280429247715994700374072221807017920853467079318059540637257661862003516871160724137911081932005508658322641781096863180814819628036908186007375127333356147565454112748914035594634186242598495056301025082407881651621645095207983031454936690368728774120990175749871609290012319231451087161616898658917336604488871560098717806490755673533018770416659662439999935743279017028582447588382261648029932007279639353899033420619819494003016256438533221725784309694860725095778201427012418118343625298268587241714855720576352937413973402576155040145907395111532399641382122297537691614231342644391634781802030608881964633780818900216828653428673876829700880056599583781359326889702991845216402615002265219089498502495374215708441265866920805384195307743136035538046368033791122885447315848818459207246853169519723436306818538389434593883349559052399740494069255862221031411037780152637137576211072570898394352313636215448189074087314331276284796522541704252181105467955781329160569563767294392731523819695826012656416939716059612172741210649748541262924882523790525706805913762372754109523425644647994310363597556812532720363494399066923082017389970388628123289227754591306450013602254926111709223483597942234327204371793582281765167333880750130886837998154015690351523336766736675984807793818940681887833432332560813170787123506082834670019502301985940561906250364660460042790945858559183546778131333202977311857537442991663081042935309880612596404071557505878806801460311679799849315388018554229006326317451489875372263450158736443363646335078753098562118152433116657994142818599877619102410141034094559151538141991517020088159275555650768789100453194749853839249715395600767845210748622295830050695521807515131111613175021981732644770476661341317764183634167291261320730499599111253670773755208427525768936725808239876771482839023115425853715736159715203386444127109398484968230144925653649328840334667085637422838195085533666761619624726331875624142610794472206907919848004430357308088503704914675441463322120040412487102515220136169184461231373772819107708260505323045937046691483570689909770843492527358394999083493905589626896783227713947437631997483292947361323440385224022235590180028903180500663551737398826235334466690655757372729162037272330237682771849033466983190865276858007724819616616147629728121006044941547941886844972545351499852638461324158306694824139506562018686256702459847278304004534892606342737870547848955234547943588173221847910582986525092199411892587714209203929841657179190032548319189551089276246024783178639689589802211495607642245025264166717206668088153146200064027374298086753208328095510663591131133386582226270056377371431141892587657052404707288743222627433841912845320328796016235757182608903463379312770104264822560762383803632789749022150951291560988253322755254362394368531915862683210543974421425108380350115897745587213419736588059895313900802225124243850535795087092392294841269369541031231257831315896007727713651990145419389057444493267839554340887905401986250926337542388480168386338980052413265256741588715867829085029729497408891247649898220393475304481598288901040642225216753798883562310787995798258225263629076396097533733324283769996306883334305261302202533693175238078621184830497267386842103999242960959680592410829296213133890418146826785239698641484730381088112665986233586331534225370472291326739972723722701640410524534512622615296278781480896806845063711654463786752684946559935664454898386152092486858674351181925915481096261985016758235445696875127437381221773071406460896577571949537333654364031559804782058025692896270279262669175781619921954147599593549048682604204249175246816844446311199306998666409922530362818840327176703532567439610372578723658055478656357800211000852743736631308724536858175631503797612906101642006450761158751703739826308225567325056847795149265874123734608782136002981545552881683590711439073200511068564952217482056288534445229896758928737022529285261279493646922175337299917149764140536259680550775031965139392301401141771636926380401573063924971972139095750013467211317381759622920900037994681268613782526814720162169775095900052661143824112490647553911864571132918564841748989989111503734439662818896900009712611307065431652229211945985322537317629396911200573807275716346427764655182053725059054433466266966303817714673742402451655014077211508677092059192851218661271110610016224096544384960555565327623249338152667516194968099234613701428163073571682642849145419476936311611228520800507945964579078064141087875621812836817584372001336438450913708343963379996133579869735848673468156490070619020299995311199965032587942150335453171838881308735570293324552597850971796160854959442040038077261760539829909502166271567657037999834089270878163068634955908062742818121523563412885049759070275849310481452985746022056905455559020010354898583554194688272821030261157810067965331401517570797179022318816948510001322132325560901875164597583436502095739890123101494202580086040144534244674181418107748664421565141751937014299318835745770039864636260632326347916403322906523593050021019793436394947650856416843430015259998751144257724192140261343530403396456830034140008344779650459004939773674981798715462169989835938328667127765785012657905643749192885608239486506196005625329778622455136016101451732916255648408956793395679103240732901154269328780692831524398480116677388991838569528457455580677303771274401423287567049531807047801963280816719936948249649086700387100227483015761307068572606170468693893643313665603234536178370381163008439091598145304129405261418131388912789092865439104587583658660466361726946679689572150694654399123691350484893815881043417624182746119692683328418511141574281074583303962057190468234249267044261331150035073490172027202068958931563854711028612013802083147823005122520175849470916369902330951337553833682385577143256691834480590169020515925876048814350474069429019854413675140879131036431636218467090448945104714921218551343706164333551621777450367403346153457973624715122739982291849354885650278012080620768202979391645314847944331833263107499521992959171454341496634635275390786176452206673602469012860349429896831933547042451321330505739818523918435754809280643068933577788432226846932878826120789337811499247227053397846457612372383528540398520587231083763181797761970752244993553051717111396143982787801209371018269934359789984666881895012912169117039981134794370850155269591925787397279054896194899469090647455159478312794811242351560367541719039895999141634363643250183392641821588375884947947418320262023188257905186571256015461681867260088931453259302097122067759923078874581687201039688859456120442754628590692958065812476564582309803749445732462268326931149622023239878108828367499434686267438316930613095688485193601858409362360896603490018997953401531867733280882184535197490682514324813800592437377042364231151376474472719857772146438035150896986564569140885853521263728555581724495552570215768082156197671718511102372960835514010269189642549675878042964168429494732812501074425229384010373460939059797378712774951324523226350787948602475452576481951559559246699937131951529180699614824095873988740657186283543368194524482054283490558193929349665165162185356619868196985206431406495391379294054499091190692118013698909162928335664551588350641480339259073489632562437782865002621469123106368488835936297799933256464202854714007304499662985145641542494578681978256898200241608232876048318078921448230221680106994172256409504102207519291206907491757284451472606487416783549082309058370021387352022606279290126067405648665910646653907328670041615050750370124522262076975607550437872024560284855226591584882144763609114949640912113758680775867115655224725497859477633967190080965605185262255753209922869926883175144245838876385923092487855663362585002450217961894827874193268225954888743195445085987278918840707901427889674353049744205579841685549894669853861123906803932745391450197038649079813079682594167357181103356588651380284792696650815479744731437227694855570750393504924185290685935189122264834569160920834145540791051714052183482216046160459830487987206831202269977454860592989290254307395311860080068490044047252460452642432192344324507990992224704424524940981904690096773723352225904382312073533024055531133892772439176421702711982780427960621573919121377523066322468269744452345852148146716964010083138349768058619981253800288128554748003488245661868742687835484917378383209516689935133519586846277547892661388353966431743914736483595575421382892008871115413043846993701168028703438779289129800325882208949863509015113635956250725138677574952957375529117883163737544827279336002138120973103521852492602193479563949118175342609465949987704893034549426159887271736523909402820701309372321934003480706689067884658416300615889332091396712382405389962859356473929629551891987776595014858019094611800495268095329967681662780434751051821173632869560388378347481213658039990541425028319376015338548650206327118223444802225798597539943393142521138421513189508429102320901047895721162805277247622610631433974731820914237976359964673124457206436969277145774289052649792650168080767469243203745056048446019109162236817987644718170270868773827691735472021685350581425361487642771459133189254682756680398079543176261921920396347260430690766419627126182506720768455813040735058559731014009377572459747762822841850841270181341103210862758051369289170773044802201251729636960193841704320207997735518560669973139663946078621776914245643890591948993282250522188171942419221749695021886626976167963915092473478325052155366344779504168002462004682970461841746767000038563948724413767103827360711697297803600582027549084706188789675012713485037068071599878051825302374890839412630071302944964840379886591589511107427074525851506261118418591589838541873079791621678339942097330785384505765879258822948221319297083393139783651474541747063782905827957324548273523883551641164701633523793340306182107374838066170324162349725792916610618038884272756640940887274810309258623845013249464119580869823936342016097520362271981246950647233396213234598212862542730095775880928741338831434264519007780554534939030659753674137693362234216579731693050755657222763181762479501969419807612478083120031839765784099318389872786595386023151386730364568436082278501566167132491963198719501823932970634263815039322579854911227997812523313202423392312893803032911495065068518434041504654337456482887637480292743795546280850775429981131525676405793862665906520562120705839535515816208742254862304803934031931448397888277242277138210944184454409269263487838049043447562532742616053530855505676494672019947724769470978290146327072020292904949573816902073458848814869671192587659962025603173666466540668541103483256240340511356246862103502897653899578247924454846127743868748424153376038851596100457501123931479608842334720230510809215545893862199373432505766636431269061768130220735944419330956017748431185032953802217574372058699921564710159142578995622535425072764370606355499428822066453110845858037297514354609696142782131853493936270308737957106124025109163030155899789361289002040769035863264027349202431395873731586092540813849626825101631468800324417142478609475209187909805830568517161951724472716754742015909638942428931020967627497288989771656035487058704342639928161966013434998090874793531349913220770720712133524465227463081335577182635761455530718864039319806145556032241493368080931277845684580481472027663687072383902316645364883965936519294421565830500892039666519050488235651885544934918120392336601751381850227294144530450501464419148176328515736094782161173997940966597104490665564182385464939735307837918338890816086145425934946475075689990198613036216098195819205616111740532754196254027775241322214134967452606214794539389127422974269440897837081291015604612067362190136861848134226467803973027927184370002579584922560890972987899970131940866475069369163400633442978295555457681707268224164463850736096866147133726553037946375019153659702662979343702545867876748920824334184155905748416739366868458371409240533866167461075864522644270449405301606875576101566346276220492808932613278334560278720808001542095059508280060282674296419135580585333913102221388950670411782919725131524743515104477951285732667577689527562451368428109126088646290455416358437584688723664804984343322771105869470184821964386098294590414712967477181961856635903586253156345490118602581827848429419089193055617022714184223508646596119953550740736050265854233741257956761232771168483617891473395634930106521524525411522317835155661702454616725367311137543817589103233057982916320356209808038586261832506837368885265984886263463645997859396460617994719325421845941304258278949366097712519358984322826400803902712530762905473072503832809603171155159167315984604156762550655459206677470229777009007112682612582732677785656665825130600031673647942295760812177499862819701374270399737862553683616474391373456329220993904931002772134767147946701511530433551200237946411393864977201402872329429875227164385285083376730428360765762950313825561993728382082479439267981314585660712897281866285313060876616447392339530479190446612455393620811773772121829051832870200149664450009244562965691226778649050189563107506697350034898594407050175429687513765037353881690729528929249353704221946185088060237283484277905396321676395898031960920951793343401536788254429916456521173111071986462415490792409703105343546823798164940833625645929163926996467333984829280235183228494449895420944084990912720522777416674410906575298294099918747787869467631100801525436945975596684187074196147386101252966725131994715950076680337809048365719592087773513706559042147339111686491636236929171541511204078147743379466323623931426754377390022401548767932222001148666246497664013064526896647287798314867158147709925165432523262630446526630118630255509564962782012709765175151866953619582041352377367190147880284683726522039987870879602013728349344290748444501604320146289414253163000823673642066946326777162298088767262687283140268329488495963698131078617655161518894085524221512757681620370234174290761470962563531027955551501303296111885129275867214751254208532893742340201143168605550365232342587848437492595955611576482080450827283757860673270017104775745132584284167307524872251952428628114696820608184163729376159570699050114493538480179275370383363729335292257121034088787806669520745046812219732670087912184891155698969443202343413916774015873420624246110413630355520212792015330985761394171800244623518008285215884665292498853930272515299627070252988106692382866687300391386867652990022647012313165571889302766409304038077703239164677448337007734507737994058311946803365890931541398050315311262369718243441605168443647431704473083824626322267788264627976265722897321659733387736845561605399011419879180220382570373653587543923462731527027127235539336787090048391138654445185655096919443488723698826091950599532089249335690219360491335640783742532333319478986803499173080369180928701808061280078187787010504340563802453792537556860259705939716198275221626046794907579295344170580511059814164436774947872447822784228407621576166804253536182903997460945871537303823548353265198905479661801948653811683446225835263514833802459133216179316321978537758931546185780386895886016624233511407820123026176666182175167777343279730963723342646512994548134864653954078956175533953341312859708282465408399405274047199348238000504604083307942297473088279329709013515364855211537951839896408638621141508990457679124841935657169643414312906786338709994034666536915844283615424629498054489503516403749669776540496748771299947703770900524965630389760813896571281675531284397929863653845083854903758513147717233372048944134239730639185567161879139841410621962591004511500613483293001884610699254640265225331114421113204634214158402552922661994104128694505779254974155274986333414773624787343843641292507492208592790500799685626726118280609840356584762410754505652724610846465971236707737820368056214684300204405943215340188540028141622758089689123703969955344032206763860643785206420788212453205035992292853476695920936405149782594854372784928431385416265232165970998313332915026881107335774866851644386269865862943876397028834370935807559924527892713683486719145075335322163376662878642362932695243463835508711644570110299502298059976573995525618456697244685116800983614748939880502838360463771223074730001147363029958314940548710335484287382090976295487494031753498023713201101182088744633792244571046414381585881702300868917968394321614343182158726328662707223597020763189097088731153491246178583009354588400276174889694658100700704408782067050168694465858391778195008605714398587603874645904963565454006658985666927594801379984629232513247095977640177667116178910424007241311553455826142286512103416150668714416791738038220721031441410605585629059679101554949683719856815159781671874841497912681138249624189472856489005481906674234326728355717057412461869454035366592291515664909882218225621050951025935506103411907694836318506401311599347362690951233884746276128178570788867416219062386101098807992212193231879816880319474858270725047591989680714484659822993669514677165890552579694592312100727135186772772009134138137790887779664827329329623891446091542384935640245805478454451312180685971366563644223222658467273873606891787951346887404290651317972282329975786104762877003094814050120854119787958264981150032918806093180378390478725742213505877236029532001777559969718859782473070105719301086211835164404111717700762939007206370378429894540494594338426097098670853402427908681675449243852383469616250130818016490754197799380137336253292202180316997668151237496440332207024631066669748900491007574089982585281974752283308991721427289268605391486930387809132028026340764485924775415880510759901894828465893889701513887547375289771636344720444309043180047143735223354647420214383272413517313164775614038973048088023064675508906820024287945039727660041569306930852432134904732577276437200619359675722642991388449095731945840692262321872562983325749483243540275154505236414278117484002482960487337152002587810793291139688558679051083086374644458627327041450156318223519442075930290139257363336709828281713468206121248643748320591540682951099676671481042591300842472553928583382925192179480853496746619602195859804537498307646782938010850981491835316653793045338632261084887626485649773387518981180134279363253506831586172757914253028384758280034781431034953513432245524639480262288753209515945166397568680452704193925720870981206056452317697882062096850783776623766934354157165480805443173956117285990318209809901704267263146713252082320747182279207652727497150310635733299592513841324658236825605869352181583297302401470234203283652821378549810276787085145627087929596463446954459460600020934236940571422368284485269625593731583363188587164825468278581364265204552757960742662025561244352852205101328970479804071447743817086503382836468610377239241457589218855048127447982998330932049454701369918366883601127545000435967104361341001966305826364386906999113804563556472659737871600162008245537330192418153256164541674877044296315847509400382939534566505535798084163507882689142768714813141749348414014868258200992839217348929627052318158538634223977677878090137034216962545743317974243462759142815225588269255726713078949955368699038096328446327628506843284761378725335093448438567537631469943622165530298977120063474064507088748864208678853225637028619734294329545515189047261442633643461015637301328010549108691205329973634270465241672887378398458745223453849366262310419230089722405771716416246000174384744842771025224397748729425927836508736504716126465355231382335831538637891392995981177725677361878378279176318537350967539461038031970072067402930044951801065809703656786353724509203988030050689028217266866520769326620342829439398988485970583815863166826085888004612294412383747716440221834292591007526547317552223364199967813217832670574889341036807323996959122312835927298564343122824503339823625174149025529987702302860871916851729830575801754222209586616419831826038265513673920299155225238215379221603132167330699061855962063428532048478033579855769607832392813664013196407422285000074253810233367286994565410865086539879036881218034482470951516311819834836331732024750283689718307194647588618001652431340809693707807866990197900425183429427052759042025127558200147994246425631365760073335357242094386139347278828915909770052950817897391238847502927052095783975953377621488057478753849126748405948703569983366956751315289083394332633749336714965824654436700425122445711822678009055731280584360444749741335288079972423215391562107631781852515363882253447247036452343394417107538266439919154324071287618961486029661441853823360880487016846133738682821241797539344452602093410874986550213406638378663044584235029274199762415028741749231637195390939715220751063598126295081041188317627963604331936393416739343607607246812219252554331476447997352170343404156610453444369015118393424406885904736176397002776511102710700097379651832811643274300712982952042772099100887656842941180120649102729457144887031666940555519013204005829261850061631697397325763309985943690950030706562529982198382450106339846983053692063633945144890139468514143635479669472117548610118183253044748938462898678111877941358974989451647482761030008010211639869832315497139796713514770955364733085696540584815257118387197817189483524510666508424051396076840791070722639142306296447109845518986749283336699326050061078378987575946546808583401399641774207843789752450392397818088203222978331579034510301115381102312027688615405948158881651877797056351300643524831630842699666157162466327300797063946668486207217229293325207630336139375319773071756988949048158905010738947789887936335736939076751605213122762166491329793341967117070930964713613624812553633387103479048205076830120457018867155390755848784850983913461522600847502428306509897114830852106097948315504252769678362470833453557145257902680250369365718610506361589287683475132626930847879303677756753087901279791987490969862032923201954422557970481812021218116316285045608866345805839144699141621957213446304012728611326754988057389790590563544165407700531788164484884091209703999967646461395954744368930431713756110277386696392154666011119979179559534763359216581334231451892809329106145302104814018353157986441926205488513774153938019437993173714037663949586597846645461961973121719048005584469946726315178610362910162189604565123551346285395037077240759662799650208630684109187377483703473348594545765266459620417154883729038906247129630407047644613137535500698442115068242337858105152716616415595384830465335615646056982566436582384585687980933973987038257738144785657977497153214304005699633244753626309773217871241509804562844840282141107215490467014433836829787335168854664002914114953860728728502607282544751256728014279096761402687345311509778550807645667275303640143944936662869470580384720351590078535711963415926321989763085750725897685024799480899358606962755313394827337559200837530548693944720077508245863987515357912519152626119993942358335937330196460431528029372356886664867473721768112063632036072645376368760074029071730703809637402232537702998681180211880979925636997918508595649774421913684802258806158611726098653978113489153602313143898094471681197676623486070079616834902774960788485653099310836487747128488517092327631731047954602594876347940395701986285523963893341323080023126643103555705970834424649173708708698510668134927624376114654329174695169502080468282772356690972427742060143698270409845231277760247590358784700548806587116529232331441077892122656273816230616162017691241368697879181473331828209850487494767394169342225291655503123633649088563066910292861822062683437064073526451309805590846909066118240542562712958657540508582130933624616136713961316611353913555570859543613345753667566395034650320637648160237830252931496693832044213037691096291881632567580102562873844678997431399155296438860307649806601179422122388585870840580729076731868129477612782213657651234333218158818830271989385678307507748117227722779220998362016416370715113033883093504153980315287641226771463623983117170042816278842888120599867230825582730121021963287031287624875116198272706066530177761113699003430358431814101543025859860964716936528563820360039028125409425129043823542857108286663730827474971714964347448943421504611141953401498990142972439562262176005815328746631096798979208057652482187848904791101136265297809688373499404066693513763966907266766741056267757934036044974072969321772213703663905986781549768627745959286797955403600108824948792519779809052045945903021444252901116336483352233657385959878700784032850176833491746817518836523625998817489285080176326509679235174309952879395610952003335154794965874701818077652624281253755825020679762047984994924866851123668629453269085397840903504636455823212702828650895346572198103172784522477857289209334090179862987733968579477648070209713664211293440511538203400483957829909109605960665607988308323826610247508602524331627933674288318238175300207856949524937553741267409656687368730428880620285482612120803998112530710195401069416331291534642898407638607465055915525373616350083263801172192287407161088123270169586653197835290293766219598397965454406180565389783160074049181537612838396676039147617607389233914356100136342209234212986667015569053981090251497271424345426974761840327400523454743306698863031844449568229039437718874628080057251556912904195890136638000978935376889194673918366979277587317969907085126608296584993074647230768886377286075182787778110298821921511768780872087848152438580827361688475296584042059016548394530339846872948926369451004528128621263278795044306317072522027907746802781442055385675589425679227704648765446788523412458532189956104008260245860411239235649519686611473506395865478029086323446086663875455152558651177268471832917400017084282266063749409055938387973119428527968286935737163384704079475773068165202918415053092270163103034628813514523227847698402602750811597065145932388955749946942730537271109522369513870593773928029828993895659424163770400646624524442332400518938963984725640065773719797070193497395990109489719869282961430928616856124717918093614088269351769492045353728869367799830596144906275687454672483084849107864364903252911513231828182618627240791172975844872979117453714036652183160618448612053613293802830227101614704982703949328966485404514702179056523672461639431449499757748953282855159806400655148791132255414441562870701975920967866650819492907449664897954552874936878700666040628563198622007473786598430010284647027310785067611148084589200550721683182865620001682314572772877314641424829100010717003898990389715828968622101121552330504054877963014073901500810002775583368239342745013836593013551913139159969715966515524829824223050606065886731708566200798494922115275099327085665595895870530275681806321830419958756769956295080004685324417722326122106575385598585642620925293077237805249787887555868755224635553232182019412654080236355225484723170513376838903047588471462207135805639111146847794501620255720994717389177965488993284493148897575174379289337157401495717806217798463719074442648903805957276724280781989753015723929688778959073211945721321095465336405891146283888905460539588439425154417857065295059556738670820263343685357290646714309948222425044690212742137992524074646776570555144783079834886393868132037385355797305523721034455407475818977858412101909489576217939933915628180289926186139636154392879618611316861526809108446663062343979937653541467477232007072515527099657841259910594308945187448498161509177115350470022729803697479428793382262270870567167326659063830157028725836239417825656918046381852075600170461174337114901171557708205396498571471164994070176258078155473558866163958279954170276286281116166466588996392624040412281456962436900244391985933496107096327910827871558041180066871735201941200550101585245093296538426395793321136676003116979935701050930704433655845332458262297021801410782210127832095233180860301522040489204092290726645150561739362722550956826397670630084423231770755538740165482830850854100487988640983774362193682390076551891114264245961064219506617391151257787311944719448089502898828355279941970226790376106510034220690791488986420360672791871134360600170176690871100190401358149339943376479067223659644388571230096788388251357178875437665112176523956990896148074473934582139274643233809796158807201827515180601386582410335222808152903169087410777407767841314649254075471524542846364045147069911531480699739187668658109589774757568088355061080669167927193037624077162405589030243188408247401629981011512121971463720665654205031292020170995222420562285437508603425223950628659314573238734265285497082086469517329496583737112031075372072139749606597548056862771505673556886961233978674005283749383752208787328353282713087938123811776119527810238768240908205826177147645553011433334290784216013664642794937057509478272426983625397103064248202559538753082858311097742087591269994659823061070488289635942103611996314067584172172925102134628333094280070215359558402344629285548756735509686635711819671308420150940605982097164178493477238335407004823081402862894042672021463450884148226398579269416683485157429899408950428989515944675713844358287106542679467244166042833658464081699317507026534686790455367036426280951041019315609809188840411824355148603268577300079702920972758599506751604750655462816629219734592708789749232588957360287364802881081033125097155780962244711959338995386397651545744431543919007428717356085665475189493661726397198007295411918542202786952416098223966351541154244140919805598522291541942446833641163130973377001720906827267768137761620182519673423182937036762530250820973710126344259587123635098934659467629248057535413326704183914743163676805279281157955266143895442524921770475420516797765400785991147426006577607940899075124976057864413204676660151231297864176908823630308142475247140128234488326864763202291672505142185979696940298060577888200970990565213185514620755992381495082100991576863426640416111513147184265998707579151676763420431678708189060954352928391376391203007524223059449968913398353848762547637189355359574953303890630626270662479224379963800284122766471024423343503911985392874595465248222397682764701510376549362241370283424471938086612969428644953961761471780630119896160756423245066733661917205105740742589650877338228445138247563864388387971769536240515306467187433928994223279551028307962252932679891624141566459306443132092252700593894356498915131392826563847351488610946596480792620018816126188433798116930039093680660208979114698752886763967991111131959212040051666028198336529900088586093749323721768664788926084327427438638527938485532939711102502668466423956987276885666966359361402515918440448979739381353019258426940323249373758635184741160794170299232506053905394282463766769243053181776735494080772058156060530922025236934368857286917770655752390172097740343772762345028454077171053134619050189344675357706633529726031436882708396610372700793551308704570401924529750076207738644211744100821696241801030950486667421736690794959672961134219923545338275500881626814947404149901146568494042960979281999841125421034065025827436279529906549151311204596862313399482544696094361276553516802587474211065212447565406052164108948165704077547356968878869479098175463657374427125559661834116290597127572674579016540147494515059295760742800988377911638343821266127794084773611536009251219481394823832915519840914675781559402305035351566047660955894036229047485348424775138320338627474939425564855368730066064066817535726770679658085106893418672012526341727531055891039306733865365423403896203438908630411526429250434967025678583609308005724669156044187775415936090867017756348942106562138664247191066496837589740481507081711798646200584704077852453975028441387537633749244011036169879670053493939417821472880621810728416837749508154876574660523626665202904529873978928226933283176965059180836475705346911281650515342337380592845459714695526726045309869587494008749812538338359670917161429033571261261716489506885842296415746068958901799947083403327517623855269248683103944384539514022258792069116950145927085708830698853209120003247145507635699931218273181881843701652804105225159039186408628616339681443831466116497804978641412589361043186906501310001270439083672505031423719037352790635910319194197086724292153906544362894100580557158839534303610599317186592372444453338806475962950406195891638269141578523425162356761484117380976663051389813337703345595724082648436393867571347370291564349413214910493750438358778441479543853880589221868073631387203928767987482006144837560405032975373169542206743117531560988909079076078490723647786747892701175043964771824023629154588938035922380856075814377553935387182186353253773378563948046018157589195413760957512587627188154579671217482639922712232292334731528287799757297717845391758027908466958281780424441723380391345972929510269814118627452212147858938062245176258583965647445018356303735361728991491799323808853957075514964864747393252784538286062794775549692608721121660282063878078619114451058263142435474399430254944288219439905644981826003346914870260350243016656631125800110295060296435307290192682358407563405978559827935807414906721653936157794309035304236699583084445233278392366084877263728891186983802738417460971168159720697259239658455751575909876339741403395643820601464314018840507940402086807399749924934683382711214448292904883944023895271523535038993916830225890269310350257311713385455004178501154733372532904719829203911582282552595839053991135124669268958606325143535426397384795000099327242300642013029428005609616743610009010018421640208239025685248017322267331445419161380843076464768399355199501331578470438913669382620948910006056657289915006426536483575730173516290309829906858594221298110481290441846946100943145978132225001775515009960782654941136802758185330471525783748735647948786881948386499616416956682807322143352601683987408749382321300155938358329890255540358431638430030618636905178011593193369360051175724192447577083796791438324319510529900851766293041697291003658105366951623161674569037787660962300077653879809150270549466834385510237617049621655152134604777138673932804148309606001775241967290615935655532782141351199916048195625245511823651953651153398216581864442055406056784746361573195346389312834718394131826099939032923532649132675217382784456686073288978409667239642316433846466550383400897953932878370283127540702077337514882981008592133263839802449416969867935827166657935659192340486251261556330261758348451092241662904892643810888616839970877993012381083418231341389569257821218649853535037619055249144547897305757474117757209672129687331002084609962873739219936805409605633010452999939703226899702712557447330366044485353222977923534377853559935832544487319734124651904199406609117487792949509530099031041115007675918810930672747538046627894298397679929562982792301012577866565514592313378939374621933852162194008319281389770999670832303361282422911903669309408643066407851627705095746046516247048168176289918174611571545400314825224522309287819151953812901960558306989894721389768409627689264775391786914188241508578936737072710445376518770172966799396531671030003852784159564911662969325298582363712953949168119416491890356493532495694391481183147105218238483364109611362078726860609097543751296913531880294529770552847769064320791992607693970103554998046752095230386051173588128545982008208074664897506964756384186960478647289957027728677850659916189149254419836058050426033210297123261262733198289496757742164176729932058409935844521689439982505958424249061014504902039745194802887659280174037100178976240167397401157486911234460055620547348597885267669008694020548949359294637452392507169241040955667274220300672178796855199153586934260065978395741564351375487768013621977650940417686259584855506922860915155730477197176543292566411282725915277966643744923262585256821307431823361490384734654747091031547125081551791117548674277300355968488402895155935097836322688227481926142026168367067628250325179072048919977607148490279898628048050297810116977645129380677596029648481195642088687355039730785826561211497605407619444700649582604624980915036519428587751960236143326410231722267198735198170886042720194099671441659795342717519809795265921726017290399423785936136243097223692279504246278046146119330798999888129826680351884578378433339594558250062421147157566292828906598431044065667385965597096668545137665192805451948092380636619865442403664454717708306363292281021745536957772126913654931789140648424341293098889262804696588096904401971767171702649275805350812844133733881756152739378354091193555456038797801553317840872189627922421161422433311028128914526129414428459536592779090221023709862283369724656904141597820417714455215238021803661888036272689894496811946789878384568006778883225668646862865475201885581447432248033286637283489994701276899264096936793074031838930772749388216498722620820184708737859839415491461868615970386413595459165539000959527717508455420852934891963115902233072708507429256711504187662779257204237555576683116321895072478619554159717308771966396325800026262255556851792910330775642106633069141552838944643515390970656267705983363364504916164079004522801099593812457298437854065800232918919660921788696515690603338685458594455704417877704923727622850379206810259120627232770393552431653852943458426593012489390554896838594563868489271334606623004293624674383969433300322342474391188725763638727099924413502774297207741966854050628726413831111168961905055290126264921105257506470275244460936329848422824357836844583293687479407470362897252645841661643191047377274407892268531209719484125323807179549409454382237992340940549092858941865477535601723660008987823161257250720337663261019634384236314695249180011010960838489678047092708039815535921828253354254650729699114133296514636627321439701864760148960619263725722158988616898152421774486079980831816511078947604313637576652471996204240379523777383449440653584398449088154482121295100014321884428455665322816166163776967337838754744859630257819276140302870695291050490615740927770672199577036765642307646587160942225927228693830588712395404179967197295969179454027511933152458423210433580241713832735218105285459720105633569643184752753448290351814805279645953915701996959529335881115014662650600351298318240012223874551255973040529246028394361346288563913530008004824476102733771636212915702791741469175060114399861379555005402134663970390395340857621828299074115013619638419073015453117101896946228644199551232519328208517109665928382806650829766282153471608007471540021282061917692627403261662138049862362294297099815664816381874977004615985929385841033208163097868628013931899455754099426325135824064503496609286231587103405148594832307509238082092260624347356934171053223979584051067899601392026243233736981122118391565507228188267305148980397483896750541983283228894216724296700563520303895244200581966874617738444650027323644229901530543722113936007416407917989759203716739053371931684290451654554156400627757478968183983301775597845854376240340179387333463619917848756042975552716989526676364525741484452258197837005490983628985556393402044423667029655058168311773625812213671518019007352866523762127553128953348556458943397102793994850810076094178898334656429154814468386504551863336833260176008597067299741107731322376149176993465654115961718273731748410569599106452259435543213745546799071779996685652515570217364624310078840380201876150348226926123828727398210855432786658544961092860944422764784543616065993475401928718977384911568784273204821638339139059998959453205729011787766925146505383160421571116747429866786608115677650626015609142291280979952554491215233512149921120837615597624076042601525668518297995589949937515835067421853372317811313959673480497732116762727197268495390540208599220188933383118380272282566673438706555688244311815262484874675197076954182835834836706686906823525564960362144392619570076940307134087679489140933369235616153079768034832273925595713746932948312883561656565820726814999606993811964369018311090166427862675772495637878749844693076202144764877085972300051994446112673618234920780624458425611611526057950213973035654907523495315008386115887711492360326859388619345061826309516885834698946833449848565554793563143476040515286494637505273398511731283946913099283485592336063556449579484553818254404088969411215274507823252552733485917617815758708290347505848827320801496428600739219938433935839063944562247408222787589086674718364765840401256205179481873540533127865809600904651998414010586781425062253680096991814140386739982837153332594591966298463239823608841764517092040266683081745740264968747090397943459938052520750263741036738233728558687218347976042389257107309300467938910652570264346035145687117020780129668570779193897763462797509175804358569070329026484161115413250577748042408281299621359933720430557297941367905718886890997688171890139277478101009856604010492005655521969051559265726656510776575187896804239986019833508748175686889927142537816832608315560216178828921717313204772205807469324762169418413381902953943616989697003431496378003947601061116086164420469807836462299178284884633584136975237167481739526784022073028312740146712079471588618888062054600705972092344181431573927407109212781547656126674876511317648692487505034388079955920285842345427232504887918456965910099044589607204137381591104484807547301510740504346687789124077908326698316098706081329636341060078837970655408591369728955397346997819026055279794865732611719036981281003882283684553575317884566581243464819684943801086487583197099995515285190413502989852232236744516580345865874757137768126713582832319483893396969642618813964405813919275811996475888486122738752442175146526921438480563786339289218176793632069195191720110001662010566873732792350392481176181215726730810882504769000662273266410632051477926652976294585413433077463934725188802723150612129906325594019008478921915799120793567903831166064205195581405708253892993643175117317119878965781877380704738338667548894406607487459389235561380156494443877142079780507741473827259038207127230789010269016395239641914800540719096160702782962180568147108430797195415745362590757729092703019380193636896563574539029393965292811791026589887703296318403293226252407205198007183592918528123125187565655480258382864588378773988504909384369040362413199635626767597015893389667559479879191663622813701118988429023682765152518878346928798329899123211343530982800498495963476834004654865071283305762452437626948274487957181789270361725782843618025588159843242539483626000547692368572233959422321653239383929701809789093036458694066974290854092873693991022645363733460718491102346005443377539626931978644412528721180728666583299538277454623944382154409099468022028245954892238277203471396960783849700166375187142809088134624560035367849547477550697649421009901528705115093685507811474301090897660713208424849151563031256168079954449878538077956290119298725102847655309347508504634628847056986093250627290075596145560779819340619772832252364988908950217814695462029501124687896834337919376510926894423617627398778092463557950159330145725845244362079623643650600533880067493772291710974998174777973854136485139023935548392672836400751646880277063036317306040725192607210815364017482503962215298558303848597511340906162434039694719279455728713049296234461956564853795870166610303940682453633841309047087990258070342331945244828826803467976661829713456664407749023725495337424454559895232551393308706825579820183699022763929105741249321564985554165605241294380976222116966216449894697188381251652643801722731116637564037305501085931116518311715983248368690804627341777492134629447888797395470522779106266002540677908058796640849486160824585722192430094152777508848179894542738185986669233832845610033000650301821241083280471517614422882626917544428526774535835930658733859310784152450064831367929413743968727611473134100809900359491085467193661065208901214746050926711965731025335662416146146320838879747380919359268460883012112023439065687192807218929831991326116526636878120158441877275052773720455325628154569562583859344781067703797561845715481946099928832375949769700365450113264643315001136221781552379960766707487582132529496046649797325743879880031335506613942417521729830857764437830138882590884386722541359423023558747862153404495140158941603982415591300174791271159534869733382019061235425877629579123840758004677740521449846957354338699085139834241959627697016816485083559251548476706372106540343695918225336301677370546279257318731087498098594408986766904107339491041284014125242697418238132482078548032091616447190880459978033763938606564783557777136568069052426280090359922377443865740718155573183883415180100348096998328115949606787725551043869222616762736637662691659346990936654183736265508385351335849296934752737710349328227166101831854587151935286212871563198117671727440889745885912312117296615654675868469901453268094330289094868397301688299052262113191649229002862695590414317961756869741393065831217691958087472420753139897299596216794691901441147823837307350363908783271170337416225144525244923341100655010471627281807063667246016909902817459670232213101936100926138316993281605790811538331858287662769467267807411451439554299756627443309384676774405934922762281891798262076375785303522913317168829154600197124148643056939832856932835347838040504208636892393490031424469761978970515131584947108051069301809279541017899988177851188929492997896962251923321432043851481282061707802410122148592724538984313116006385029452019168023501477516149136812474318108548887065596550509973424994448607059017876528456411467454724724779373503702423955042447681406449895753734088610420921950600465265304639477543335103987851787608950761501452567892811215328786355170780509287366561251962038807706255037883867232389838380388608703689603664537307269512623929907449708646081923189052816546343835713156233170847463345235291550198979518907950451147941285320988329342930073871191867887247604317283382398642116170689825975397246483400103856259401470330619010240920890720885882456998445230256282407321942812774996395758949708012973632616102066929364653311341075072865041895776989671722551468253260304964130135397862965910194783504815796688371295608788142378561946739445627682913949758608515397416210130138655852079602222281769888762685244756460381077935854435448637766668025657797004421666535104341850596389257407115167728581372303920909051124031475107098494166120928890366578858572671315956432494577347945349354104923867471041716366601703365397213435908105234593423864028084029432796000794380546449545633652811440608943895873738118243149018346069781348408564168355615793973753885354725020463091628349650458224685114361844453280830832324145032726021093098346343036841561294748977841349036133613524614752648032653313937844008171130070616628307137814232266938269495764463209976035598062154221155103021209986891619041382769577345252671596423826806932419941353498927211141497633301975850554998224502725549510143026397378039255471499675411359263451830443645887396811159424423514139598090214450067004953681725346113868069546733939423781742771436538374496234735741033954630771209602292598357128306263852591048326527541734625077327151881651676759089110428060197203162877300979629196579734514220377830514333694086536961980304174221126375097095206269190554940385578253207004663510537591056822717253063806967072159486922075518388797857914163665851720983948072605547317673414535215576931669023160619884885019516996704846821577805716291717316771210817192849385258217730869001436559189036732631235836608193296447561204300015812958774991075570789628029901270795176088264738744864406592184264860146592708389441238861024296361360604006831788773181678640978434794035340910743501761578000745045980220537607855239104964972958646462338738384468684329177195125381510859786623866145517540726275225764235452559381432588023862239930774549286358327464122938832262596799008472806597622201230190021868479518896985787415011697391979556489371055933389556665891080968808417516144993882054092601452802083352934959427869957360040758253357067202287837233334669570778037199691938868793108485024571408477177877627161177766374356350998001799937228433517781003578740231473079049603522746483833067239523306293956204047526465420215792186967657398063694229794881481200305431794828457683629825243281954688421204356516711182215157400315128322720769665281910037545505725964839782438814805576124285426295168864305769448851416159211297100548026181092645651253105829665342080796067918760173574283976591219162626194671112490747970418470723809440697777785690175887230694510003303110602467573585812388258028691581426104671080325267756512721653917392193163332771357026311998635581647713546068807140747256638754415361789583266256380320384319092584924991543792948904260486183231475696543739033249331989544034616101535534056878500493641793044323925451212990414004831655387310305389529818256030903750629869994678294396102804421237125276676492541385039896774311110380081733497859173683163759414852193067537817977165294537636011361960185088327016232027771390639359923426398909993744529271724187302467297566057735500251528591954180757820761434256103798830017646180914364611868229902671245044362390348862177620057366787297202594118456043243184871108468987549772190284389689619674215590619238467871840479976689291147569280688884286882860013628805285553815271631882808197056252067963094023521976903387212442607841358619683507364030103873701741502280631972048167755522883945661373084868666012549958306846943858061875721392914334966923812891824243445178493370368748453727028231100270089525649090331341885733564977925563663272060066829091752295275616883084714431386788278900429670690335869010167718489519715368906434289547219085239957426781913837390019744120021587043081166143228907008508491850167047317169800311193145728295069682958236216541433314770730276538607781233730939124465847609618851099617134889943827538490781628891084196983384623696431115506891577377516842093863238835538458435886750068306617091763868063051725968093737289105888930043271216908171711458899835825569718416198802598539370008940166654840635292816053914451612713387867028455606387769002303310432856888463345914676935519949374309866886085025496456043001868621181111128860969303576349751849352111986285353292469214590863715826675128137865051467378789922392022308062150410402659720816737129990594593336371367697093284999163010848059791842649654319389902327341879612567298523139037686857694466092809052429055674777944759039782654288378800772601060090483455507568511835639421132472100224542163652255128975929242114368574529339802254609173480583002161740525091068450920929170312899601612209514935411230931499688611413532256824760362961105613271439202741689259023152381534811980062375079793036537973946195852359282223399722453039097000763995118505211808292460059385762501613929789755760435643257850540837530390211098772281202817410057845170439623782791650478805778142419904148224851200335333406161941758891723297312992327008724536503469766764534869647004842374642668525648287232196842586111894610237197216148974132101314661130938609555032107788258260752212657471079113122148299907240432864048354124489326140318984809534789679838093277770369156386207656005418756188029234871082815549759937975070697397253461936931996230110400418725365926471460779111728953502503732843798511423076461910167553531918991668138320584255939754674368963550072163691474756270109936691660790836717114550696542721586223898430164887706701259157695303397006265028067695447411759990201739242416401063195364110854946491985793596728416756196392625648660814364166889158890440083526483257984481616727807835193855336854418716320809792980416223439222424566473170327312412724457501440058606672552107638631283594010168050763515892507391703240715637378835327254703284864055055545228730492563124268220476951770249891828194019405434598899731687205833994891386816532233628586820020952224554817701324590024987333565429385381969298604673227967116943903080800556306690086546533000505730295319853819065105538861048418213202797609971261737827628129585952257982939097302904541993678925212471488392394743830257221479107165591960337172577110809205392005480065416219044332301531561612011340017139612072816189568964620457817926891687858958662919012332488149947095249598010717166271678647191000736781631909354789712218227925494137156595448926821466724340095355338099413626890264259828917392440717689579709549636527498206205074537179534644730086505267109186187129606993114079253080267348314478666051052993261947205832725741074105739317896459919915498661498263060826588305113310225261772149692330329922003474303159832255929506525614900544919810704055741619002563737247322726719833570264344634432900191804546074035124322027601158515832829909482540961454346028615726823521261373088803532436589103013920898024442003353714572698164619571460492792411728543774100761666316891995821527956822500917720010333145786763292347136395417410201062071367875501593667890368833424050905006909646111538732066780053434889476253535563096531247195477557390709350181739418019334790717800052911667364359287654018822347032728251561910407323846581536849680182053585666069469815923003235379351638392448186867491781940874997704706649000276371441054733434176603647674760316285999327992410256170179019225534778626081425060348258907280291790439960008487271986220544059520241948071420912650377328472089030197283394515041537975039389322061903577975692318609192611553384289803265218177750980787705134089183805789933933550222727600769597532469534227942859079227534814008925748231708125803765514851346516490168946669631865760847183361207439787042282761707900569335481287762620756470818477300061529156494002276344907007166741271651616955961178222326671793875669986887276809118113123177508576967372649698154836372033815343489176844668318753569286147982427651279947121998868983185566034215556510035696209142512872914016974819976892322953637612380982627532502172380369358721222870243638669549242029815927220927620809533743817897743587561315337366697952133172038461282049372696262364189559925193597682506155723614723674700258470099483449984623523609989696877756440935083739111507683478970428583215873247829559427738599054800173657892660833558370752556702497958413345779280426505025748331559691934882103144749205521162457837289668791907750090531804023919869827257973411655152229566076887530113241411556799775345280588056502314535306784674996448938931703544082297066373260716294728009491705722271503153293750567217767502679156756625138884433329241631896548588487368104697315913255097101511775385407992681345316960720499153007883186131230534876996118869463849368355773299195936660877176502534427603710671755298608402169674464153029898810934749414413229779772779548525856475416927815103211842301504339318407123941752111806475981044152029908700312559895965535706311748769757136491164996722098523483073401058418614528938909916898619972173326488611188660421460157542675019838892871270735730357314162771456422684357887748902800390907425595011576376227159830088146348734372987707432677141684861925786218543686722837402864062799998485039925055908261624391100496013531755951816727931662045573388466709568620459465582115891528479698589561967081238033697285027533735522985617875580999447410482682850599187385326267238742778466417335166323178252376711443970410700926285702126694148158638885019201708488324155266663603218750525919383421077379770696980540222984625329699838283964246370533822474938595421929964499495411588513242031810909422878833559499184731439630520685079948776729699688926196669763747724654852795110168000981187179748096621064093582370169618874141068092093547881379693799253183253011640161786239871262902990748766563968220507374244019676573993417210282691484692793935330465604456123257938921685422278393114616381210255525522029938482973467971557495033032593753513962319421367870821387688759706313012690934248104992284586587329247312302023055965272582254021062551720592745140595069490211222047438190954610839637427174695210594588380058066424821325748587400426588212566252312930598323706653911946112615833281437723229930325395948180932157313442511732242258426070069480092073512353833667054129786195327573651592158974718920381978229445802990753836177828776511598615342655944793823372762873448776219668342861952378791918323559297987498642733077716966035767091776646632395635357045976901431098761575394687230019998074919982149405928547798666732101160454356087682301031159596923225493128013220413301314068906821761137545233838226009253422545286979748483059288505230609926864162658724460896916710604165529454382929062705894475482806271151064469151507510816900151840988944942687770284454380664454347609842655083283217967699602887988135926722351779607454049342831277755891079330075973141350037864766512981004504412927370529183575415027090198422506067376381918115901953833963216737811777415346449745743732997382876314743836010761104903480095281191460384078476369509936632802404407028037793908906018064731608314896094036379946661444267910185699574526840194555197712384059829950905515792017000429365862918443602780304962269694989886084477964178345464719803368619923061423247178190050860481691111712610603686281692157834422599330053751158979634570349605625899154890015805063255564941995874027641298295347202227175222100875944277319246094634989992496282412902325900371481623398477056834225383763798357484070504840803694191926474038120934965584864420963449170917814320439659377590045470557627512904993658124857548914320184795551828922207669997249126568941430908138907821521704779876310501188626572809441734024309024942873461710713565974839153575265873492595624648635327918748397445614573453649747352340106906416750222952158290923883937950073332558369744896319390945612217486186785858549778347603399534312317661563416064286499655541806022336981369955292982097516175348622262498153269301940785649382363047388278284827865105366708683463620433851092967877610037253714692527281431408450868577850669537809119185484918820026610237166997728292450109335294007576479684307091448501151548647442419933021542158015280497760435699074209307319335936542288039569631670411163269407686939409159371165438336187616416790580502985930357386132750507271092949542253787006659457683410503343182553458297415816717351369402457224935701374048885811282555578618639709204708604933105410774651911581358691076808077113512308321747239382348228059507938013500146912503404983321507132156903929106763012572393567868242008828879119260116066614656923509786792400101219547565526171944692888955900727822293303994423315935487760517773283681135027063742670871326977015518066835476485204811320665104279694137698864213325019969781357853085615342499251001763879316742996066466830559132498084936267762876202295207918467671111424916323659878128125035753721414777565708759325980151255839552135584771107353301225929205231729136332014816440386631738146294105296388755201263819516572104985435170634323298557834565506284021517848134592124717938196697117311705205970176825594674672752000466911688690461867966446912940673538849346179197074286025006121390631314883892839235930603337148827717947056764334203052819996730782319308067883290459317307535721187966120713138212426833973638749640895547105373254791512654828247006867957261247565117654257827111968703246617222255707062115306980732053140299628472849890454570117721495853416122847310160090985391801731276219650718811288227965939357153132473131275978271627961438891843525197424620858203539847080731531810404570120542547476070798970140435100231655271588888617925468278113396909249942955919641221572359135127180592781754442622722933450894698901330231469951222980638248587851748638759761612200437895434583113772042155780764110390102447061262279859377919164061896012172560607668755109169889148900305969179386551475567726805902786792844814595171471670649831755996589100592961936941445610400965033858856541716512167930841195372307384768262860481686327439089860241951339465396533034336190622634828720046028862461600160810981854726489131244753693847811276834474646360288417964468279347820264279480782625097733656431655326816301334305205867384819851213524883486200448803851762487451785771160199097174405457892655890676518371830613521175301300290308177933212237032708190830968648585698522026161021642363423355445020320670204647766874778789777320636816660552087966715305536355972034923400313835627822826784605515489904665156558140483781950193946971165119446667000173162794747638655764615553053277830735246554877886307860249108646176734366339715541755580036534418681102481789914707504712850044778344847038400711434627252115442428224910252999578837091970649196331984993858397560474957701769257151864568765710511343057360490112626176103219481332325710101862883312088987463843404731500785426733131567558290565267886113570572642885512241188512711207549490780079122720799903256183461553364158752460778986505885934542367418573117767641202342495290233102460266290934361433931770462379072658381826746657766835007682694124165471462052409856810742225302807886809197581764223318182735626237381389528932429174939426300879324612100989905112983151308242950449555424225664851183756337664198339154746433311972998661806296676682165426993299095560654342961660368491741823692363963548618026721531933626298839205162281066454977650929057091703883410879242143929702741338274906152302642565993727129634936293988072170737035880636236978762500084222262859087729496898130441240202835094471319531763043690761998296978187041787477641504917511752318920083247676168141719798767585623477466769884982351003415618440746409438378423384953651652566624035709024348202353421767365624084198597455429717148605546844391566131695988722161122885835133276388027418407834530939684940785593580310821273575107200732366354719065425785260714749531517790009895468743676306913835073576337584768254464589543764190236311409062196155416512574579651135842823398343467667263958502535517306343166836983411823052304786729070538009306122422669887645410927519137642951435879432876795896008933343407804437177646758549950925814307696140089933394657133915116630105142387369079253525386395265095990039061157231433646347105639464866867476348663592794332845538722597577910784763870339000716379877025847034127062869986710008882171614705476180435931726159906249987885552923667108207033664050894649567829309700048825570990431599604614568439396804964440267119756006687288051853695026770478025057155061616379629114299393952193434297258465891219464128452729328387032763072080592946325507146280880638627430839776611561412569254633173752592041339921389944560254399851120860097261323601954803628330757819083157043337621779895553912852670536945417419440415528175247136187422328068473488647889634880773895850138050672385904325421059004890319550693528580664442112222289269189462785505583034327078680867996770922731662172922603141457018468064600972919670230888673672557878035526365073261558103221285881691650472555704077626541569084713731995667821384447459017768702760522965286292871852343998558851771445344265845980144722052044376315240056448772688581337387613048281604104036248646901126490915805467621693975034552586000455742990373842824998725121306870940359339465836128435000361352490900596914618980198836821585275979222793613327170747098731324215657115591457074389646514914324033653838150339281222027599276748274361777159640790485228196968419269010206694361266563576613786548032461033048570271657238509047601513217622578259656384486871773807280175189655364988751229742148844313665030422289539105650526292257531352162454608582542301241778274730233307443466186016631558501931015726632450376533549822267721148820468175747685409901257498201902841897104536898357779811308226582156639942450646962788813516299420549250243221441663560578385710380000942239597785984880308308660488529191592861401825026826985602610394715778811043304310917171954589316193900690491906491011858787794566471091890178184159475553726743515396372610199400611428254243137805251616274329254162825156780953025958002156633126775902062260549925938786057482899804016027753740019336918787095261856657614687583690446767123224145597102804704281923543808956074965476811457470627468169579828238397464348382211664027525688170716271081599272181347466232282397579244528689925652584637730625843332100119915602482454767950403339701811662367934916228975563591576723994937866109405726717232658181439583487551840190806912725535365384874115202212887647991702574002019565012917207242702088048376508199552348669823648739920232029859955460276383700965733104606102615235687499283396401704151593870749549127622629647981148319599283462045731697559643823213628917114354266593352416068218837092348185279981109739566201980353773602107475974286817884298698808629595689273152120130698588167964889433881480349692325799719269155213817799499193547473881776339644743321082179440712974391930724944035550065120335592279723904734355470149453985698807684153378610663236110357583450888599420288754506127124934701595188376941041806850742117392863388231326752248904352496265582311217560288004421190752734083005493140536513539217444937702145887719720405439759515767488283783100521816575234469327231343425188424850469716112838659659701102642920992537880629738453599119023297012629181196139779600034094086685533799236611406935794966220988246734372534630741850671321514982739876546008618726358981107268601040252009134054207202075459281335691236948097729681561382549206589504462974657105207398825419127325390079870539992994357026597793430510809369823716043687530998335708154098728155513623821693829932235732370750735676243488433763124136909498847881139836303895956588939978587269434641487908297749152113890439136637876124230210403878705957396301252116384342186326541282669095006365451584763008565319728266414143672539308189371692021754282301755166063937857723906128185041741326615619959481780733654231702079797914258700206862504804020765973467306300047696190746614512907305445205912103689468619533106634189325275666085224325231853824913526562886758915112109356117788666076810821742074649124876932095477613346382760469575424108348655196806880255091739284039720750442586995573147919156827555981348192845615421476828113988406586829429630776583756822653354969084452470928945351656201329841659705331044332320469721917469590117843755481615157949311247106362082860851043374726013003481791119839303099882865709271356843762024656054674162360419603225021610623739750304161495114221436069113069523559224419408340174572821177402379537800468629137622709677258839668307319387959637505727216640328557328525659456290107625684544929857815334326363382018465622271388111769948346786430939945887451520257780121758614066265944634617486122122270393296916118221681383751528949175462310856988624344829349258606984145572662081685871612377131429967575362288659017100027539377345009908722251718516588188351252088124230021759277081046850330835018536530269489794296656201519728872432240096784787168649125250330785265002891526620280635522560894425133219495021814602937328822246339119345496456478037224228248033797558674464107764708690604529586063136072322574861964573369242322339693613153863039160268909585128555861249424049526471988155035144751328917166255568263387203067334689585018590609004444501619033355020974645626721559780654496774223321115894057494565799843748084848010704950672192837069977650500439005787146573957785164202714259199429794030116697438497046009765877362434584027974135012480724723730202808871940689997475033153399152475391011693695659447364419933708633559168876334303991954508539508886633116424069610917193149059738072742415405568592917959621116963028095422183264661766737305491470221197450712192787588426176962876628577317566162288567400791151383996967068412673462712294593839070191786447524499975438980955759294178322709822250582829282908825024782982019315201201603518198637469601198739209777961420878557451888423673501287495626574806472107592674359297070134982406866344143021971230625407213849528025514080133400395717233690037559859316113412634024394890615047963160958730634959150819384898958831636723523188449761334429212879287719244958754967903288583739935197695255731698050594140438546551340254981721495020738480793160619977667582401493022131965225948989920574591832906464098281086487211559525346648583455903309071405724245696000846871028932095034291267465075936760109479221915290842549455511786036151453749927379780831274701705571954282891001957719122017855268182032427157649247522421277429844385834961297552210208051859563326219185401674189197624291260433976784132617253168499259102042866600778954826172962768228067259219992398079875944442153243558729750655707993874382828063359228539157898637877453756800871082719651937886286353649505135358638067132146157816733914426219171821390387147013869747650879129371969770589052005207214138400699167543832315323274663552209406997754637496869317238614877513365251339160370812274089865464036761874535377326566337017508664819225269715100368566048362383075547049899332395241883609629375244926448439457131915106638602159588330305700896909571669249680329206726185656203662613428929829962742150194772620021466998780956268832445087851961338414277349377227866288321168730473193969001219883271055524354565890910942297626777263198293041630714871455118052573851931131399763229978249569584722532324053225992261106765364398896415241254947817234137104045878909128440165577682624003920420266814275673748805202962388122688657797328048663385231838801214241976252542168714566658866243088694500895559474058285175640625921016342338902605986193116076836469242963413657936628259278740056652203563241514610609229862594024651202402107429102861486517497933986673947163310393493001907234279132291467605258640994625655780053591063612150975845159414478462407572392920074632189282178564188326716337911223908919522740366776141305551566765527750942745760495891472491226593418705102079963095844986699305999519971563112914674272377884843580176467283393110121535762100850397460805018057107351703725257321551339472970145811529927027406020363044321220656478718926809533420988955563112123450724116797439716063106502879282627246147376367593100775888923879248354153792157524142556964970806725384430641591156951547186045182491029674038179726114390769788657258906115926469965757052561443360071576138092616332359056174083354671226767073614488279246218863736265678542671033885378179918315402997960635076879062202373613625083836742433912521581195449911543421312558362175872245906160005520495656518818962011999377744977110934058489409201963961822823723563682607530309221933041180736458546544802669377161898865380794889553923614666774184893740495209968136740392915086829525326176751900229578651666507022043039447522191937758174801362352584280857032980057403754742818338334183109745862607815539011974448978154406765689628186100861660685441583508694330995663303179038824442052090492761031012859578817532016148210293984790631351727950034209563024304949126536818873579880208339039736513402192454099533333060741241307290193736636140138978487513311484038145177004815580418402502267802798012859516696864098235751179862532868535772179002974054330061760555080613396200670318856750156476095375265557909591033338848463749055972580924177639201306000902890867172919962942602528272913581824251086808369309672151814579542381250511061114972766489154921944925608724842542460514269904026209689291843216282694321921156441277739773508152979341183857100267629683939401060504132485886447355347332932870566712866568888018105404282091788888889763008248978062613934328718956330785937669390125441509965039992398047812553508154880010283512107998459688540550054228365958104308351521012862211298786431874900885448104640369962361044961240449837643283152601244666983185471368376040645199723349242514063677505568051793169428499211951460839642015661993410467020030246008622746662296449752724128254333627624485319387812443684148198695706617452141330133891641167953030512889769075138251757453871222088117049926452181872476681678016046978816925680380616577357155289166809895223234464033286757763489829510979782895980942204829063373809622567801291719054518878247787916272149757251619561861477272874221028276957785194235428385944837906958115133293948133054298391762240424754701508746796119007447402373515457039967985891555867051624759672452368185220798039283567242230676834573301787522848711444958123216961222255968427250779333387211068251757888676918890876828867598423013044760989598435673734427872833562584474998327387266927659540894833840154890705862976686468682438970390652179339038211557340733911780919905991201433131447317995384829626578797761045370467330806555552152940989624685692404276055603759617119661485267689960661359140980469102877013339947516885671298777543603457628499785599012167942108883346985828647704530493986187305198525414373148333963591594303519731109535411680327466056285269276859523033118232415890141999455128814953137358251207638201200824242814947858887275329196760689336847250186565362544752916417229160333864287883947183462250893187000921976035835550749148343178347618716034172746217129525982672679315459351473461387511570771368372424584574783550274440467340404287527939686913634732325210841396869838746281671448762242548483164424015990675865939262605917671609121204020714256496708513400238761529176133614623250862857154873621018747567666682204969795442923149658564815251232795653586486681372535730286770948711247722384424213004286167686859768786622388270623256069055354576800596571794458956122905989402159807827675687120251701773914058478140689693998241205451710102400072121765052777169617389820131570125089629715104835490117108461728795004536761655232709445188848686707979045355818459613989687496444693732485726005391181194729755559687761311907236845373725735015147489210889637812328517351139168019064751209566656888139948451247653528913671209450620691546926916526443781016461903748528602833240987601345104524209325168483583096556203643630465192372144203720245387318034699390643367981832095212811258687517100442517523860085284985906778601057862925056274887668024281522393275501238849371037632799930764840618811322780515900068822649122551024085949794404792339114961733214335271850411127171206484887237629504801382946499405186700544370544189412469079268541966511805811217548327987649754399105158929674359927523640187855939646334186603788798133612241466703665178567577730959789260981673261499592313707571248025433491182781650902197498549453249203715481939796452991469181129037431412549150185697610915469071088462392925191230428764846535483685114294766603427228307516950160486291427343629596567154974932200738152995054443925096514443903671698676954220610076218793561241336661614878856027598281593189650943664376230565041035172521764094917256146346196073969704924945451788054520472320185479358715330209920177181592593662882487874517016017271620388734841439561657685807579173428140492754451464397121555546168995997659088274795603546312150771785325647712669635527704678299243886089024825665222072194676533286290738123825663598602989794608732246118078783671416299942572743604020570759872358337335161536588156834220883699373243725688892514773102778583996502563736452824660551732943722789707902126750394213256973008964469390755850780423240348350055492440290978083154032934756407292577618515179234034036543169330773124118625600475744634288453579761637856008714496300637281794058926591742047933231501705168397723042598540506467724088698599923346060860288562706353428386574249972133340437375799047864393028656667932591899942992821539588011666042285645356765135879533084174983753116566601766781473804961189219298901631587400680479273303001736336724011944547608980995318005999792105192676558305534079298545621646909265639805527913398381753928553197035493837703833308255515246483737402166360145445503448088709167538033716485372599061101109472778448820859438098814104600349516128694144283549032026602354582505200112722787276724685318752230425653901096478623660308745427174259002148647661567558607167616202363118225388723525201148143674675538411049908652715611746953132545007856884341527771909598508329724393066386687302373489307502153694400597950598829323127345247434291706226282102798969820052473740570728092866307521918730325093750097614528784918780727239546848195718733098515755043560661209176812641517550001287041627174866040025381286671059713355848949211506630763022333609115422688010219019098781615743810163369202606721187424451713181405273465203010272317242265099168466203032238740216425574363427405325121636083572707356412261969416721013450913465923401682537808918432043142044772403192640314963711060874441052026174106071960243752019963281225066780808431271812992539993205178171730133207156878364309378411672738444383737321330758507948856847766677287481434898867070923238053364548709125571376218974868036078511740395838255033361651699609309212932010477242977229474663954987174136678987631026739630653745556918762417351050706908094036342444528651298671008565462308331503417088323780179553281931684982887758043935862012572589363731870181212777581391570889627692678870147903694392641412782703395981689277371626595497792533159123786210584078849405126074046301975416205242047555460845064395734377588629451934365480095837951670164664978778092006453588711667850726670668983667669737347475665268344861413598041981218567493141921237029387224073039018115798591707851538842635025308025361189934714098103979395978539810429220201830456240508637702794879175115403052854315920611725860233139848333416797017087678306245562697973968583209754874000471362468235662621079112959215291132665513094109978682230264671549456681181796057260806115007460740226846909971897803513121866135818623580826036111735124273934313857258032359563003766488137338787618079867646394606692265951721169902367033414747487736081388954084017096108494098883281897888573009292807966541134080687627616220087156967375466457844585606970965061604071035026762046057743547487077352607688670046910561529782334057176887576999518104505280995605750951386111826969472113738300666651257563011388213712248728738731948032299319330935766142337030437745093366664030340562735694198033255947582853853992573207762503164711795185018475521416312467373048179787873212538621507285720683127429692913098317739664482567233194125079302335399615952959076512980909615910763461957765169212443329139502247564968102369298022201225923992676359775788111190553033393558281796342447888998878024705123900229990221692384583738977182349244143418926796979777370964436087704760923954887461523681937213006831404479008409008844850878173505312779347221425247649192648443763687682746617498827393843769235661511484378955658989493366487543852488135323637639427854521420425790057203949114674984619589144514738406410432461550022112568743411921998474787806995882474759196287790235261553509592190366590767903699021357003472197508254406084244037891160895425229900674915743869126824764574790972149064786798591240307175266413293082921386894713177878638148675770454364619051009493475653552813208877282681288364259340995043271385533947509699100733962756705124258453069787248271090440098341517969707056041359636460352242104689864199278344693976505592634412910783786744471361656500164697987499531536565932296893084130131979977780267285896703185855487095609619948378716837610303256340230573119459750936748224744673592290149995926174378383102927799279038010658305004997557699506652713143867406555551574777044056123224023652061885105617440025864699268491246010520163451134799701287333189427085206633483294421414203757860277936642666820398093174083046779046844532513540231937130060141223791355345331313507347547899751369829356524832373934477529743224310993957000109109964072391404880113027638665012889416372097591367606094379557506691477066659257383411902045020956947969611949308280413276276105744085373404982928996696418785409992164083226965549380934800723995758338043297060059991589907165990764551441075128638461064687656783807250622687288756548687705029302730804335119834871431775463679839414335218991963715623325983449840827387646746431989689844442600469098122430480641983899662528507731320478353902958603315504583987232032605544587671363724362679673825327973210037076373376042095267194440915031089090472202247023302538875594098282641800891004215232480229698891671179278322683946034688031087353990548466016000731272250344998718927620460001739166042962714156321700104636772548772945329868889867033744921007340980272818193232827485434186183385688268014679296689177826804802509208911151744622009920536610950991337416017977625539756209962582142265681153387364968548712805813899884222707882157521753116140918998854061067787784810091239128818497179011531896331410163831305320902173862183706098041067304613272854059324199288946239044564080986281931299193889816359485288813498524417802317236720688760894790856415247076579574707284361101812592233900874458964487701753234780732438824975682161531818755411221122350624353314902545608319935520693399436751331978254896246108808056314993749619192562551433241678297871760764743790554313832708123393738696235644948675711984651344868225227935766177080268528491618498562397079580790485034130919778283784780737807163029326881328593403124381856629967241304776936530810010747386761025351175009790231909843529464913181115610329383476006328668885176721669310564287140535055438754128833184644792744226354482546085843173144144059282797854601577915991090819042830753645789252520295195869864898986236705535206658503891406016605208537131305677542171811432229779702135156813342893915189796349743002555428923975772809494334666269213191665069359326246394501305101665845517158818217252315663114110737987434360295456270627931425423700646123273524455363689724381079865349894112030371683298843787770017300502223265146636842976243864110653211272397727102066566381253685355694345778045079026561987269754089725308299353706713891603673617388352347696823322820338943262954806230049702335682501423500561169618869750089309505855795653338488932828563893796286674895397395795409444062509255504049478141847795683586066945309350844921280217579555844453515432255691510630137990234920103888421726771594053401395344087000348681667524351221360138389299862691217442892440053259618449963539204725603309104280141723174199481291520350223804259702887747391928777726231251352253439790267232228825971996321817993631246159049504040251989668026097113929050551460613659960719684537010168073674328863033902685064071533721878422265344608594414249589923285404177528335050693878084670221874507042941207106467078650353902187899823240555893123661653519422847331121909303077649706435940386311143903954570575365116211285868855573546321992480328394447235719517351197570467069756367873458819644477863676651950042663415379086261304020808925345068825168195434295874487151582187070191796453311902694103449842267630613001308474490665503133698128046253572294700610098820771147546627313016167545362210390452948472617990880901046257525052426598079998589751839074842192668932002595784760150248232524994267286739163256741019836374712331895572155340593404666667549614853552352882587469532904668380564228377073768116499209906327615816001001894756740211848971497533330467547999392172893599288868185967098348009863958552663701820207122598374007539333321584731949609700237354191750368670195752319584383827753644127275767703091804126791098920390698957301390707960981247432928575649760227703021645940942688308491882665878483313258241929995993714827817625542941259864070680206315807653160024182946035917858193071800949657984578560836365702417740909290558329622384455990409581099081545842688755142936060096632204610099336944984060736468496001781576823484618744260986393045404749314070111557988586823917093931831925419751644623778415248332752570282396685025632372495644658795079561666731998807909046658281570103665063502681834234021869151476562414630082788670568810805947338975068702451761043257633612199770265718523011999753210444161524191584838858827445767863893362480042071908543121931547082428105499244716748474482577052892106228607324471092325979254862351886390860285239782162803076652134871127876912200420163753907457860532990706199603141942874652167853667951667990303737040652708229596941644633555451187161765970260008825730249802735181814400978659170036631931496373504941499685078904201682903941429827464834369919058503265767292940625147544203757816991904283917703573499786842206650450930212456815001715488323548168500121858432500640517401823624566571926581886800200453281338786282904326822442877954998349047242295017959978776429783594364862950591152762911227477484444266524851510381542311925224286337014491640003159944426696793040743714886225430694123628482212905544429662767176902612964564654857271044303458343526948386558704376944813016182385502419899532198911055751614980297363753360498299964746426039390797493271066623820736871237044428103329600210793032051261502612892901107731524820665618703754653738485417392288436907563912584891269422314549614142747392960355199790904109182687252678983793550501164792878415486974961895586000390245718461738314822333481731950186029262820181184517760386075215621799507597108764061953765595495375159518500853029281408235556054090817337574982250145832549012701388067038810735557946638096508355792275328837751966227598297293937378553322872027081366182610207796010373737793353458885247552732325344965627158825715100642199877037922853969449533059716380953805133185526955311762313692477616465263570158505993950398838651466062099711565136208491017541243336861127216506284078228785348911542910452517552853075901083425594205985824302170463793017558005231153735156196401946542873483942765865944073360259980224310098174055460170634117556909319953387924944818377616752756601084626370194785013443377128725744071157680850143152989950761625746275178470741257095785224448348587079281660612646283476352905911481413516900871002809502573773214096231612215324252934778360331974269376410492194972530275527008177902715123799179982766923185106494312568717923051998366378219033347353963553618959659395409690255107122856803959740417065029016208348178798590999486697322862555548657964101806706134004356668290007798528421377466855160553391127361563471272924312893238197712989146543807469592739662635624305657257426939055440943710029895878339522582573447253601085085099227052525465105161946204405310981167247621372029635412641179980677526259547283747060746881825136204075827422104412629010527206842259737835327152353102012905102867042908504441804739945272417584845246034712796046532942054606649915553769271844537130357583413632002165877284101163825407585966513993801042920876898403128156003420415724253850228261123987429198978965099560966236924228754340983241979847356159103081953241374328938955837351391524270432740094474305316566927382305171075994816389988119530499281131478904031276602612807672401693314256822793878856878303611786845771525815716906732162319142472250597680834418170415524858208993255244185271146173737265324855843605662876080703780315600581550519788835508903759707154850491275874657501139881000528206848243465460451176495298694826068932106272512272232645532447887987030780434846693844397641768627754752102907891376599180106505029018487570590870117909626791438275154374033093859540291563402973138893182379059672664884909873727161735504555788058271516582304898718776032324844443146983471184475354060598354660764243211673882599250088195746770591780316089365777265352877269534375700362222313930338497095979272582276024880017464711926021425720544616610382670079847458937589213665482318865893743353129741312851733047422892552199826786568747278624226145407052337159907545101830765932633072873083121389595120048736059747631135861233319307874627300554199314688832997014051193109948394652319364100143891304667777118654526944237501673920246596418905798057089264772142928998241843521788943923192697552405830293717821521495023890538167415990676604876568549062460374037745974984693487846525224109436045201640652693026996982381955198046868183488591255033460477247245936887451725289083968220910489874709430929515586723217382381893714632006790419947909270470080445010513933827411912131806305821254100860956097396907528399801382315736945623747752183566257680896321672832307724673180003718003127822718635279640947461370099945511187394883056086020209215995914068976260882782159357659461017328379218214639473049650878245222188209487433091521084269330701292833268010499949594963237901188248522736652765892415439644629658782056479198897172784174773337780274083242168398292783197044296328778962972266540444389539764299084804517483868099696732451697263423947970585674411045079258834003208140568551430643283031196258378459262044437863290672660111021376398384330295780641888334014496236985145029546262186158302299707711287969565505292428657944788129137963331072622405340893898216150603926204682848773724678292186214097125247769876629019218838840773986122455501627126012369425800930304990774138837251773778220811354115278667783867140659418236586440619535627407218197088452736460649921772081093234814067859443274135753440530856141124244528188567121773257788536908956814956393188424091956006945292250692076464640547487402556773697443726268292523293415966402462651043408080927708626104565005593623962523828804731565940421046411438334443484555938786395528083504851190655369459116790916365004176020730543753129970803356598409327702452804077056234573883288683639987868178258829737318326585604981158756836631065055193834740523897445480347990964434061188487536283890513744108120723293737984484170479050227501308069999321877755113438572354072439503296664776741558375304748661941025752461085503492358729720705060877912355033106382963266862365715624498682037220329424261074234290766310299865191742071240396751353307207324771236681705335905053675053808090264258266399466804797898901734273666621977196603747425229196525985610200164647244711181814748516814333466441597305799415548540978798721575877120369111411086635990702012825231625751574274698908326710039915507234246916179810404531869444653460476391623766162312923251969756944686954773416286540580187252400807804084813639572538779379017325905231253059532645859704838956141644096336421350112181707655997904335626950129284629513530905506106915300070766140820238684562013853305254501574678710430780947510398052197823730859391806978950126743428654134130706707554409464567862734390143890871113731912618860545270486124784522740193261589707266657138447392813977177532443877462917656219408597929567834194126939932059737074144633236747446087716196888512057758876170445816550251164838137172299839733238662695473299537093369457523860980377776614927137288842253170247666741591435000559891423432296501852803226029920777181409158567671158967716505981932061370297677498961763924895362733837368472504986446429231673853233643461098913044414129524431879294312226521776583702602219366051471696884316944584185737853758451662100034265799995015832865536513751951469966964314147669733514106649865486858769746003715948425432214380250997229441335484760395383753284156537374488512906060125175146364537371293315203481142406593498097146994424266616027108122655027989556845984600555888762259066107126632038182290078991204010356558044060959798424004150342519261514961946951807910065532239696231928436714252899764939007996899608124803034504170160360849979840383727051406585646407353256058719952590214913872059606316993298251891117178809130356960073602487737115811780270033197454384550135998182239074827230412454654818420874111715788874383743466143127486073411886704998025187613716850370234611149680598263865399770371919718600688615534786542423311992111329765141983554815481887601709311508232918779049434554999303804207324863343954268091526156174550621890442243629099331803057057489998077216211907679616499180192038091542199754144433818613568321482068525176682082718240135197684129621664425659491793501524540119076900178589359178671523443403404345008937351941454254314140963838776369952506554462765953097878565523718189144093437903238435551048821290983267689769674082854801001853201025553671572329946137823956560643501768316590079576520691099581079589406805449865794911953192575120421484950099955230175163853466230800373836741012178102657899931354409029799518030761558155889010940877702456757677735964609944981561172801114101662405139278427826139147134993511017192862076358564605557534840395365909392295249385917456435950728855641254865429682669768641533611798074285117293126191255063595487955398244015672293745706006412427724133132818691115725894712129864615515578227196263753776432646986453502523281749639971801840473015454289223029891286195244381863838498672208829186475643735346370874335199874070815616204471908060967168525072007376945974471152910232734783077259335569616836590384328271996022145246237867248031201193077255694566040123869203998422413435880130289825259296711830784598400643590494080891528597417980421082524553783810597789207372058626559975214990171819739014028393080419488509756260168207011388157450235368199712317985132455477171501881422081444730575581266064165911767084296819380076479725951585986025225877208675868041759273921122424459808037267114264325225307710427215503733623281426376688816698587416939821265601725913701674420761037358518566075314531935449364277847810784771219271177693482542954256609578934247015462031766451465414190863163103780487207296360340836246480980029798374819629214977746740237046738053864389996588322721592186590879373764083189438882268461828677442309098657164031644698245628015328879859687742109410235074229997321223265333560290588866426129894796118042267466372479175301402291044745739622986890821591683773633372330751439303200407780467682048894556876153007149251314044720573459428094469763053535907728986195647726271438428520842103620924628332667189728608469943451392527236374653633881920538473434178314135661537769610500178960771237202313183618375239557925049913133586524661711867000423108821732041961918553137257837244352513559483959154630234013985572602534229141457094164147144054244020283993525573217011005204345451017227810667285114766920878313723469290173208865152526141497482877177912545344970194978738982577527580429162036391799921040372877325075385686362314249491963671052595965421052688904524896984832740000721841823323746183816179233564914502783464815543559298986265440982932694408612270281355128553358637817463123471295313956968800161039561355104584610746101252979901082151146879554204345597778842090661229847576323736644275974708632179352907601695188735442230115635630842137506494358479943979398804987786167401096338707994308540472773298574409499050156219781563397261330477853176170873377036447388485448471571729507123860436338076739625065792403503542606961096225324722883989235054250100456000804903325446527895198349760235111571877933205321459835084166235604002277436980511735545817591579615946738280117327807381422776614177056675039206520211646856902101754217417154603553279628742269389192257290855319070001043854549694303186211744858102242904148071063713484806589656628009183197150760692696741658792587986789286911798480558032565960957923188333705319262697946512194332249127705493893520126161038928057937682787180614086534094179572806753734839043731501096037013716447349406049127714020780873387441972566152847715144641962212719594957337376269829398197540376757117791434311097250540235546212528352299572702637995578244958704637396575123963329751264852838102987203863381362908176070252773680755676884067826353610253247022121304305360121452074667481385516166649882541326135263714133830257833856680577782259244547117388895761054432283157650425753415034788907485720564374838285167774588844373543227223166841264644532322763861557736674937001409252202849652784309160065366130242984670610329901393946451892146940209125814767254478713170252505623138748105798549421997807142942417594567746979721642370774842704624614509965411153680104367223028602988872709384232484975153359898100889769718000713699993921023835529108168759914592830044914634634512781783476188176628457199675448548329578746078732867545178692692875918121977402184706118438593472576413024038656160066014547785545448108449353124089643527824536665822371154370984093607675899326084421392231307846512968146738234519868457118773278642105979900287298706822494599419696442753599097719662586889583054904757266254590535510865312500931971625054850714170279982247041134769992691937277551727121938905226059800732485591598078478064531220821284532780272117527932661100466255571629976474047117248751942887539293830369968784822287944163606177301337588531656678357588984929283993326339123904707250218135885282604149053741466704565403369023075235705307210718482546118631649610998775131181022491724370491941080827952270434239723837459666968014768217460292979203771601328770694926972973814666710369982578441366989015752835049903904486602444244024732554591909056210982461549085948151898198604620419043276531010459108374720465959642408413075990972861280272368060925753497555531229363193786443329559648523446351741493329999284825289701534683922076491715080987377016282000300730077378852112560566310942724233475756477674835060333481257203326270685770338410481761403997235601393299031211884552762833239003640721534512903902294159321042390543485604201033416840726299049666371714754068806329093307201927905750743646857264000750221533338902451589552536135336564595810612984637627590791608386147833750276554607745150873366166101010992221477550618934403458834942096856187839246505353083037263372631975632569154672574298396981406183625698122506710963298906459472356658281573855150694299014071560313361596763633420172430334215469667151787028001327780985211137191450890279945316302360227042523446151177135536063755576687649549266391165052633891621595040370252713418168364705893959332252716150291116050095481223130565469207666426979303805976835733425447932784030855887823290043353190917334957837290251562563384440412138557598872250969086563109730344718658157852019517488472234127962021841139508153503295806879093467543531177991851244162363271527000602801412172129712936325082283725940947794841111756309023835472772284374019862050738413912075876933975743045500871813684656957783937040942565918471851432914330270104814929480737839536594031595240739075374538737675254159917495119599215302184946489966807946432801577307547977452436361768274121503704011233009972897729802351255437386929386125820133548367312259234612282444464901770480383582855542937635966652523270788899295335505377683556653711423684887460343637378763788310281424019270252465628961122971350474792731162338439339656021539324018254234274108707949307777569675287257372620317583964510252294150177090095996454575707519741977259778405505984376777359942944088834234133159179737736322712990830081909723446186970368887523680038808463681277252854547213385845331820757170007386037177489768907358003318134359042244966251093494326706435602572319911341497016630204781582885066687591903779963439269083269954048659008714343157812064117875835432270185733592337685284140097965413460244497845843341393894561588253532929940254770137195728293230352211860707042196410541554314997033383049018249942515383274625244030764048492964067969354117956886660288794115171295644989497096120440900714881789168892569497556701643866632283429337338393481404878384798724583019736867881472119926599154195302760212061046725143071934403114713793725720408261627017410252807080881418397645755871589240752665813443228766499456556645591385120437675945755222724986343610118288204853315867202761452022118128026522345471521904397544219323464919492989169185919975185482241317913346963514955509269083703021618295559814004131324744396385081736016958441576712546739733072064559156132477914397004812017535683964270159094987695498901794010692568267240284394066958031179170523942905938987612102681666226633793355228464608850169428606787738951044817766108069481230400731815914780198402490821541553407079130192135936448916983493998015860893340824448605993685563805146694795573282888586009204222036585215507379628302093590808221003511857933760923883806090752107117340001536435183774548935863825751598042748236222271459764480694149648701548096984297993712885876298176442659897375646881986984619243383691757598636692513139315022285935490351281068950996609261071062101192219853726284841771285733085827126735577545923200827795987661058084533669200423682595890968706765882236707768131933786429711558419054281196175711277709943493280035290327266627821525791804102298874187966158146493581907054067736631163296750764426207469210058661240554765137272081100494584496301151254771341748977000251130323846185316070660773096096797352749544687716766378915414016273014494731878952862965423685221258838622242098918077949673617266543556702046857366549364846314947499980389452348497811832117490491204060954110075423101686691745197038306228645358676596883948325447892379691769994009618601681244556057128288578211741282927451386330534920777648589853656493346772058903394702414831994592444729161601707172906152236267960269249381901850592532669444909590091806661004006533411885539849020993170097611116730186499887928945611615443575275037657286833365124533115631140771848358390071906170179817477902187587469281433121357351995824021738560655583348558511749626115231787201891540404469444596731078944133456627231076631634190321999553893985261417858908804692932285495040718373720306657796180587467610591656673905309276136684929490083965798323642749128581020127922654818437055383894458064080728052845909497965000450431526552067576525117660235639371182448161254160061041049526355924485087123097794234620869810249704760031224236789842832970443447223689076999614148810235343427899408815568449839338719036536188415979120361395689649215059084736810853282802421168634923399309031716111265676520421270985473432378100575899062203063739297514122946055490752404914977251463496780736346492144358655978270380755089830430361421554591230977132393225523510273368054048394834041571171369475030146361018642002959299844486048766304449219649428185475359312348178368591849896630925532633148906930459195887923290255732653556298929969601511146440874956672699617787160118267843052760095593447247445144689620985717167763761982699673908717220819569562284571105530764172338107556766927662377335957587318823709022425544871811302739745936204633133078379207056569645417777883915960142494943051361509706196288548905433966135484919635343113761336712404170872276817849548934117396177349822150010048178909479108612419975645893703110135873794909882232255057399010313763106623791557115345225524484846826377334289220519574109279703896056987290498223473401217922159717594836002841324216252826865418714153078028418326713887435928099031867834886603942812896395259739330304668488316987869635392262453625505453185462015625981613255073174227483083206082204816263935211882384684530221716848796072647048774445114492605318370191310271469237133902221242590223118326555209366698812556321110227640104402031691020324207620252453869339747961713524866427500331023814814423275219529355375892141622443837147889988491244771751526930578740012214019685936380392225366499585922095199215676339341817331695113058056331901980474164016504971933051394361961762253474697812231392386499820174068955405772639125695296503262904094205952167829570482586039854942930310384952757913966366962953429241511510827825761633544776120189149290105220968395736923112167385143468688219653285389153816638772907166376544181088460702395351221787887035172537741076513062542532770505989083413646958718111799038229381338226752910239370074668855921626828622040233139720938652562807727017852118010043646195575443270562123297720135045358423720285864222792321579659927105117583858731797189830287684866192029037819153841116092590431095034316874713108944518325179727447286841699488402777786216839491383494291106668385283379765044224095328874492975610474322723157058473214388956315058982540102460204215881923312749699447954009197836364448841462912705394438952358391352531557034840594314413356693552127779108408908142195452556911618959392338177090301992068083546469065602929845483373648844553385473738653942731159680509406226992344816951381074711583286111358232023589518460229526167622339180593382714686565936759785818479616589884216026873181263286887096763165691985548800126955421170963304727793965997301421850786358777974624091167027664248103547185827847942245113020008621122004236665575634763194020844390793067347853909996681285393690788281784578181326019348464080275394846385925104055005877573138643635759776706085489889261227354976856439574267022169607487954489251252305897070170918212826877530718786247650965090271294859230539000364959552145439059634995420549210482430203383331390331031510827795124488886669522659655799261748501435273432092031131305502257011792451752782551462523139083519917045456132213476514438157515790690533057947715997244660261483275116686777144025774720671591931974662464280218792953520903783651722782338498402208778742273519514863902778460392116664965251716531893104794275529315971358011620283361615317510078642097880052264955674930439918508612265796222379296725505302316058001552785497006856645481738160859507952622083525256515182805898603526164623245834638506716626110707133972473467255133245792058587143072095298640671003219733612867836658172324041921880249854737949373362359388869010446087590500545735036018961640532385362048959815452282383993529078756275113822797285162702256639382506940053442910378368809129089967578467067059548853081793192043081677048751332751488012127997709624534762881704558130393891641391089842283880251929406801254369248070272822623277099586372808733795533751365900741275780017207928199506652606202921925288920416994290734770175496331288818661499322336037629085321177533743601371590049260379372623535238226134583769417616276701932308585070279548060714356874102844768549398927581405156963667740071962463261623403273950925677626659624678528333958088627076142976594734843975587802510106470608343206387847542016821209110987956992251567239455256096900492174056709663015142006082141575460421072792879243895306299714157543047392833743401037963172955013700556756456201914608589069916636516939609507642172435443432744737638284708891990699232803696858148756490327711158805888321500915629111625104722365829507581429350198432821088073601359307989599368828184948857533360689874835123138187234693910765849066695721855430731645771045617087923315202058565358661822802849985894940632960562752104371976011690614295947683158725537852838679230274318647679396036098332049980889239731253197849303325502042869464265125579341865141036171273361990140988211613807182558908770229471435395770011846892927192423919292630183999119962656344233418435920285012917035965114320824236132139011940102893866231653692133784037718911147089770411560229584320838247223234153545549697726288306106731982328663989735898615647119279896010845763552969121196618972094747763983612249334890145245917028303552522296579904487625417493993890716161677635730957816994741823595042052149900907668235384634728174849521545933874596056691356827696197276836706141578478663563198314598784029356031290834293740404150855387835648980227608022333588002600093537427438283304460955843320616635202572632925026975442999762538905103979637789204828934736264587089819053028159620709841391806719036362705072177636615426476214278499182252639672959303964187718024828372706184176071798361288297464278683179454789724095091273440843368046620451225183924179605033797906024791426424995362147074044962263586787285277322978308313131249250168169780571410262445112438516843302635701247162239494686333646484322719987087520302300321801118085981524598767529622132418718837010788614331382237716330835918445847867957539522059071915513176732305878235901309870737334634081287587879938771364836250363492832427315971193436361914714577335269091118705203699053568964636206056358020531763436686282514671775689501895230438188618735547579039816189462775417516311585530610017497102085381993445019308243924461811293029619286575426675602768461942600917014622023682099140475895785622876834874536825710064485075801823667488009062665437511630445801298229853266049987204860308491310076566026957832423568072247543953045517113214467562285080996326478946926628060204139372418036177955156357239788345546097510992239706603476898935539124317311528723915432025572560987457414637036538019865226933510286912815680317340883275639959280527535962089390679362921280591294464374857696642384506881580622197063583499922761430698296270543047081700778427386017093012198856605050867933373017390380365658526218034950951113507076796927678061427657576303550306915766110822125763879207535383750304101576365494405029783498177357522956323956051558722264607317235309226508285299486399333556044553253303906821708039308511065999421092007402170419551150769039187466240046674247115792102529441170171347333294715990119087664180375637979294338947502124668422924118940594666995726234255495329437352801669152247451769769517217093918445868712719747544093523558271976769292312003783964613708751858496665507647266817151569573967728661742668876981846071241622701068086396665561365282964415840247202913931427426605218327496658476998463554317917612977240268602795226696499833120605223081552725636369025605088803614536418463208660093661142587605705654852638409118832257256012521969601386769231762880157667543616554448096634992961693096723625261567586887792662377323867702285441565036241186618281968093887795799723596503114986591253535571972772770115775500141165236089643117644018198396098334465339831709948225298741876295435395297347478137951974454198057858579749597029034563077052507550203431459790824782707031860745535805856111937010722113757725216314385976915204988571018743807971105333294586368095530155702021757059179739837036263073057914076657173946014519251005046822056453124365814602822499830791168071648978345323687506493981113301103050302256894432845110096321042324041326490576403490317575255663831896173372302180027082935094594148223148481005663376035631864801773447515602509226737067486521213035985043443685878631097287510668404157762620980385068329069332196426974877639357638632770315659535060133873870662251711202296151507554705198305959221318729055857759158975910051174074692087766604089787564772359630908597098891264542479570353683298872999234332251040572247358103593750979178042663033698892534190054674506675533817190306949762294827899943445805551699035473371279611139120937414816388141036394250524357292460948957620661381674402492949896419963732221401992317137399954284030774742860576613482587780095876295507842738863770835171474507529553147001663643957389740568643555721234049419394422480790444425324730839288744981438358257138803761801982210116713983963147841915722834981201894821418811952472840017062293383885872131454596791822006083847856801964647945124491031365202842455791735141935674243994683780687419103924905974448069631359588501577004865296064125518115768677844113478451833658135679378118441891376519553292647270579100198364801141966724931964923217631243320729533589042776246203924621717654206466650592521144577980178635844997468409281078886373022092780511594104274181055490178551544531340316620241213777294739650254937774344907459974169938561953013586713722832085265721012203611865027283865532524828388362543729895910723386901176214323916479241311367712838130617418361012518787247121971239243684183988738129757063158984056847840517332361815326803577531354639034003290411900437889522474850566544756875862732324450867807297019874696268928047318935961322429593247347293931383084147203824688630955701686838609147850565656712136273836324860203142159048725278560905606236532424973715249813127332022677809296025424408684207986632960107611583253258864294055003968471272665847893887040190276469259425414097162731910087824445233688561071702209339009742896495326074115299967056164428472576048285437048083316204310566740310883545427433230147861663186836978972281789221985429168660761647087710294902300183577957733675337126400460936211944711997434511899496302949109511262982626950337638967638849078928529682676067392651177367103784451319985459565772404782044736103859517572887173822560356157923931270889309389874560816817612028379898947240390758256871023383650888187975920885436048226044891535107612657642064941404212991493997700024647726638394924689776293503062719791139937153806940124001866008520895839978244445339441138595704265954388495797281545330821957817256434442307559855551907299703389859747244687315684356163004232709335019012374380825001483602488010274847736166223882959238505132341674766590258852632850646548202770016346190556291061037971288854132042517258091400287438353044522078547043646363298984912348852310160861470841058286903894372659315564031122585340525371882986705417640944335624363796379876373580833604419048681347445189836918637324451397753146960463729363024130109980466478720855377844108067187750450351213580156803537880614948192598309576415805969089133731179662916433938347999395261978654614615944022650607395162731011192602489647655578774066280054823724429620653037185690279045936860225189306214887074921332260382756893906497649082231506971642484246469001159096219763513480041999693817468278042387695068537225214442048263864847831980891234701887787615363454302142927019086053725081934988756478755937675101507173681430721586017678457754965687429590172257050279731793520624827999656394992464244124487119387896108483577879370818880067437584754468791455447431443369070836414773649100168286876425189349149274028223255838320302712319427810802145837409994424549977550900387948217206009384359144630851594851149259582953589876379267269588794002244590071283452105723503029809422667920102450264253055082867183465284017435996201269972244755190991383788472118857027754781237265762677971181314099013963158694852106361250687961325492314096909661905308583884098471505085220064253175352320101329273394970397039495840541425512849038174892895344235008393062117410237824611588892421150173176971160579016932014417358500072289045711286216941940508205944552137669097788698502380580577135732205109448978055950487436543182099765378253228506235724462039439579357287992394563334034509496319505707369571842465434415479508247847549204724606137670499223921009339036214422332651212331444522435659630092359931594040022696284096168413715001019092347449751690844939885769911747716991072335322516620574373162724652189214478292788996451722587140558982029423226499074037376407558747405264135234309044600305438055485208582851372889693325017590009930679061527191615067559486474357183503435340809021842673811151023028253097853875967774590613801393560774949485453269852664420703922204048194264022898238912241629898441313251201544408683084599690440763894458410490169613161917865200511705245760960575238050815242273556623933212631053122597358864923540674687276077703945831175493752034053982552360488064200133376858591698503317584730779448889321880162510979606011262792066842130941187529702908075566827580656066500312614325244227730526530396190200925993654732232131086760275782114145399939821028196881004750938440304710223735088494107642158905864836722740590457352135832545279192420382455487150369621155703505530042013296746134953203007295869599275503483200471013658364345162572940208133446165771142549207980793594048351863486038780869931859192160232324887174437585695967916561854052355221868364323332347561973735781149168409785505681102696329847002003151475792234635654907420079634220154015329988098165616004998083998269847632698821716134548050695426463522875362478701496608641691652907714413050410987238543915296956750481283898850530376344875272678777360828130610319349434988531513725918094149796307412054318800533467730924068831623164515730554474286149648626590122680624243895986679236580513083906933337132817255234506893710249053255047372406504515825247263475106924370560167836030564321415418106123338587347149711996200116880469202293174847345455808154424686761499032542031436852411528433832488004943576681335631420085701771499563171245479063189722091184887515198610863490676973084568026005078206838007788656296163928230912787485193348787501879229521120541889233856332796327658062787245018564958123044228001106846620906248293557217373725085554506188381561995772761903721495724962693775064370239422993481626916954194132293884266963287077917542889843106198709468773949294397254085361784176189214773915266689667045789259073763910270538710622835120536754362463957916840661226137950944647605194683764798716162614329100739200335374439844093341769501848643816624121778746448034432229339795799394080886052702431094458102519350852412105382773522755483385123104224640651579076287307366728320861172652181445353818547736086741023676888035132068517686930355973491475639889599375732125257965314024579890760164453470619661720662193856548055281041806159492711741841030237380615339426809171579500056094803292938550620328244852291822929509964342543434837344318497012300823849248853656810345907228393019627746793037938382333107105504298610720916242788355558065353455293743399557307934000394328727757789724630760344566334107636236613906367249249013412507243694367600664114477851355565509110772292780139479084641247443779248252889075392338126064955319682757710816757241551521516228385992409094965616777670190944253507286434488153554175884008555059538441963725179243744034269782512506162830587120712604502618422703518302008912204810647980209979121074291204815888583182268669886416799330238106996645980606728912781423424382351843624705663829350870124311894026294787071899166536586293225143155106183721158302140512563286793920993322463625370719044296126003822504962900027263501708417637841809399461192262925434788745676521427174548686026968366101021205181792911509450809081631765066089105090570964159310741959333787764955655985857918674312069799365300767622500576447803908696955296765425969314829070215310723555617226375634875559051211339910138674433861575393290212414581721016956748068932305945331309619182445101422505432064424656566630454204660906811858825419801802952138507070067420998569526342223172983078641786389899556780677588401527268070829986326631554711768886196270023219316263307103510405668005003636881626553035626145369598867476240634617953378123933535569772714566548411295139974667937036894967796735722350394946337244833672256925117131621796394171510704834323171938888966309440519455027978831310439266354834699003780898158700037375882467599749593341372933512721356948271159353764499724661438088682740995252416333445932793016243101385563857311033149955573487262724969627868060559785589814584621863100580739573402104155135172942418988115769982799009984387970430511026237851595826172469215185698525376142287508778262961925729182770475224305226949555965185828704975602477821378602342548921025228350211216236600618597975792106722354465993076516888062562769151775668730148858181247611262442370977940082069346727097827627498086703118263138826420674625256785985660486142559708963375890803007827411836590058629738238073229394077736163109590432430297546413463891889292133475082413414675900134852353078880577050340083330742718402531902889562307566220063935408337012410445616416027773874900134739187885163715151885320972136084936960542568703685826341320787059415009650497712891289150949064349017131399710456143770031132709308460193498099913625253237591400516152953459133780385856674055151674782973456701743172052912536897246076641939590599976579961601293753499713741008607287941053631426499036427121891702441460541387136095123057787819336065521303266650418409786584345835943971761392383782795109236924794138398295951571300570897331692334121634840629738323203136871749707391438831165193630217266605808022157031582344238593954080140742480697447705226540050054582811320621468855002046094016672866340100447972722600438809798729579669822781969875173117873899365394300120592207001328794701369810402207324015191247800788170634377437198317385538613819490178692445664922499507348818245679901354800406481618755862082328045491025150196577581646768464912345328350527347115792361366665111874280428204996572349041675799072397172246604503522976293713786107957178423882200252140147154959955085529997678026307832421838149249643088243868714751130583872463911608679410092391449083370502771377165975630170770613553444852764738745016027255589071807718372661520109778105303717062095659134504145255035676084560741427758667301791033022923261074810227312547725289373196971317841285726478531792851003313095223636375002232832822671822673008070195414998439997009610549546433547695659349202443495136869681540029160339383195977638019873134726681138453917808089207133741432001157475845377709849646056920638694865484852694100270104325854371247216682645564435599434634465468896908562153032325325360405811803809341454415717695395294887303577852315887380526740645784150746277835904689764863971646050846485526781690667194893071650690466847189699492529482233272924304005036086064509473565966903464417035941028911130014232055270456678311489123478297979076998122256420706445723854394104361486111699755959396210115740982146026288239395071690579124130911734326779619850476464315596475166448809391427846942968379991423857158603420458332543949848115014258176579751859300772425555483368940104190085284109301846041148885190366939667869382036370098995982921414263243924059642538275442019453014677372729430105546865334867021114469348240305031558781101030053015228418681168840024159751164537275156230908142919998697675074194138170311372822874187265496332897767052669815890728204244877890637044814930272639841835221419717571734875122498447185274545443610270521843157718156253499231728475326809280513553808352349702151344988250535596559430886418109602000260379811663937268753801634705762212998176862703415881871811411695403475887218817049869559617349189578013293331692441125271195674377074484178963394113326085685429193483985638496678794133989852764001890225137470727864973371559022769261023275210426028631818574620519855457883264175253952716513504095357094545876761724751122296927792511622887857276432419179977078105993539050090931486676628032661299786295412955319313107224805056313813003044353750056368792631021624341936990183075690304619131703482202964363342075455889554676884543281440374172128861189531846079574069684725686535745498438757190297063377402449364589709145513061640527487827725152446092082295925310232401541894440224812579126382829089807626529726549654774090742778033597184402451886579201509945712455962164315970254009727012557217083769514831087390058406927328893683112639576713523787388167704453140353890718693594169768249713352639927740640747989167430511521981565258728791886939756831967592905133282177955033199221943450569430577700629080310594907947862471875343906229291181379971130993608361333080846265084093222475946213334107431060510643518600374295166519045742035495629555452047495211835722145385391491175102070508553763356469217350089491993679616213422610686139391176016078834986096847840409644390308165075227573085513044062728384917271088084780716997559436072703012535908842314651798212896905659854469127151170272541581274564031560670395526392842513764793678723706857898459450448785203996104216657638497768817834093842627685861111060212631716647042464326451868240879589101246792631622012980897515718289474931605594048584715955558674687053403849366862972249431247507449959068586024393808784259625487841767177224213420591390286117817892273790597705797935336172341486091102905138347419045497997951745214000870674904686353027563827640422798930042360844614122820707545998725503450663887386417864719120954550328943399332784887307513936346632180301535964400821807968588356136306247874959068943448389936522235021072559716396362599919047720363124045763109524331620357945076710845792552512216213857787122077518766548335920494673546025399747385428917538551482336635524718217191558837238201141457449285746760916507528536829828994081375727539003732926951470084896440296539584949917193037053692992817367310778577470940288150453541835761719395653880606961816151219165334260671464619381361737195836325283058717219273131140382980456098538377086536675239784952619135333907327396009056432907689031405970166146241927014265333579666636178557800428936813156387160427299130917005521309847441589081037534413940278277178989690212382879873740173819195865922512430432105522037021841902713562446086431797859154382442154982747932934957854547582630404524184363458686557330746432792169837648140546836901556730894788139134270278378234761017434181854734844473122821057867156304482973176090342279906748038720005943171182717580028938061077226056417317428485201793244441791478995578185000132709411472659299342573151261262260517764817591532731482549952944442248576769618089587275307951194754862146612699705380959181781020600744585193840695985115049163298240815321483603422614868071341097711373802956140782715050105776884242379789204513051894241407274051367788294401556294240239756915485516787989924519949758917614961768157114160899583789014148282362435394852321425272221485606669483361634863517170723975683554475084564091377962694128542494708174812441586533875355473077415902385852815605503077383378948257568332666318332510595124864987924106558241677732094356320641299879556837095011256324756329815791578238649339039068083572196799970358109526065045820797819074614065730990367694110734677695079797362187267267594666019941551883452197475692899211961346691982722186717434598775770907589149160570060005398303755527288705541250586637264842314711508285330525844277855136839930752341536057802370676180883361432965282393583484072998012532356830713614135935424869134711549306631217606811468680666578529024578598059894125379529807888502382635723334747149031879264602942510834877235482085738438321527535742419464088685488062561162106135510782281142742252247434869172833759898361133530234782786038528417851803299611421208305649167421192083189014564477213122032693288309855886604372793796850650440488700469589876823062684810744317748309450178480264603275367266796219185742834972132549830905616609344360608115934974607108489439107791179689639749765733359421570996341301693138076308076471830011939744621775267712625703975720166037914361977702213892910361590316282619788792363961548187098612392619182060533452974412714643741117590479091369837406771792716432141025235383264593749193532939501408766133123975786472866527561498761385760661259050556110241629059303351737853796745120462003697884648797741465571382914962407538040943802291369203173413273330876591787784369639058211483380060478027077579784572605148245974067759739568237934147287703982438937714025115493679049350902368990089019499176281272832208372448677355486231009133738607904124569855561285418187478983878360653061297318833681230136970409467320203517278379292246353902908092714777760090940359395901214028569010190722817843906566987035402697152190303947720050397274257672704821097445504330678709430093543948880005364259365424762563092261728939353076841916070519329555976406974128813325804217248078983488502656223832338102027121541530740098100962881506871266988824996757879197772149691993098414309279449835461336912176250764264371477945287521899046136109471037464694774559000308094691603957344120219320135150636221684246354706328345841912486015740946614296202595087025343514300048565818032584339607668318236007364342355727289589791814467460453838243419680437062209818249846170617196976792499421548709430384676306867524178033956581810290679595295246131795631542094820519784656312325678041084713070924319727225437005986593004950431046272881270716731486332925561451080916491238601516176755636341084369037681833385900773228956487685316361988999159780044559036092943289176723906951369309416801636562813803914406598603397024275777019424810728697104083876415097961118197861405422684676517804876930263675641731501596710930558568232765722477553868908679154764006448453373431443389974412885425696956606085938417099000095149832576042147899669917112476817482060699246320171099035718945164359530874040810310866580614634672748055297914008400781505367378561996671895395419805887916101366847974585067923472053507404617339021446763503435740668417869702217252677932081550643658574757279054736110642387567601726078095441601878575228075102839155048392734298092503263436920419292334880059323208706967357943357841940159387131572024218143486716244240856002857111889887150334032773213299395638592867442521872762539649937315964041839479795622135582564859752163736725888616938436430260459316518614585598769795986671740929807772119801941504315215999090724024478694986275020234710922177923673364715094949431282242534750699909886771204699537568803518481849574748105415683336194794287673707122145501795637372453334060359638474348531383342171144735875249750315904874997426540223688327560948702578105679209719162067501009505855540691901699984043627001966447869958058029748012829301324998207714430945150140123876255051113825702630914426613745481610427450691962083514079311346620430050057280175521181525280457281047841171382832241955356205859586383756647576318717210101921555405330526207243856086337238553818308180950284159769096517837081198883091228949266746825565379801016764948918259632960648380870729748730530483948773332294983714218560334575494120160124229844157917501389405769618188112135147769438520904455878417529690435912364653468270819295170978134013570233212857281541995736046864045875604179982985135808389920848012898466538046615108445959488607928083467125025033859140814494844200181638580579613233354937088486655695612863601939525471328999220876060649047634550622178436238801814179297154532873331748226744497523061402549294506072786055352923347545482223802225232406709258890981382436128019973783948091162738293522775306298840765788039016190815885397052853133254870512365886132201172903898481580698905030027504973604038216657334871077092383573128107492368494213358540697230839951445436238477259172225445669999153411538056713650411858483825428267659338881152611026476611199654266632421153241055672416685211810609577581836048936392482972490290753188912249025922495409341305184731518368777072131263400771700928480173153097474931734864171732583990159290203936536826876034362092998572776936646521991062583199191832305728067235786201317379212059676318760636845490879358104450370836615843569275044618665260981249076206444858234599158279154657890508051747255920806140928749925692199061181965866983508220959244554377603201822662162056694237929034926997062472017385900694219399759907445062143382862880195717828010172577025208660157472047674456839273009933240533701972805245211709513384124778511628940702079755142688095859935935495698403456631762023541849088753010780984194213852010370492140646031277496838341208522598304378916526326734724932611023133255062521148031883543063099226834035600271519183414970086535194662833259153340648905455485443007526526444386559891113366458043096599115435713771816781986051951981170023086631563730411361683140223699903172794795476167969572044543346999445802451448214566260341646101595091251359371674315406241766937626247201547099636083196611613530970946524044772047323781011685370460665441586808005112375866094020970805570318920793203186339416206155940892569653825933431917402648702063158809960998237382394165672203068102447032538401933357691749738818041716748420540796702109131562061748590561631778766206179869911853130598593773974261221012895962849503871435862559098539379473981380091445485691447663585079906618358294850562308507935168293213298361151525859337707535283543468218212206859573350586842825614442141424417703956886536460914166645000451363544220163472051757029739737102080409026792283313252992284665419889388910276235679212224587028106738466764144835340547205354648268986884934650495648419415466995839878361269443186572479903284983010450047976603758045632683282410482877088284279229804794365102708939908356575200349649248327808431651000671191664588269960592086568968026366672201017856677936138850383622943187800204062948701272357534524064918695585394844806573832175232630610600393720073183583273458137180943492999070785965994516185660946183520886238428439302388515332861410857861714756099517194153559209066663853678902165553903492119162008265938318210039137119670889024377653607349372451545132113598176182022290682331675747104001137050861969271107967571211972609647887755266692236497880257169133912967636910294758018505855460965634255902938952006392698327811286559715906121534446665202715124825115655527408132399394248355355817963486921051484148693355988316091140980337459396006125575035163063561376529070779812425369757712592373342675418275300439545379810346172448639547363420805854298176635210994799979483963958837876870924615474024980038141714727375771105198719897479754052398566685974646488530374650758357342391159728259393926758249988531602457288221015602434922993170077928008446677775859853676857810000630233773715742037625470182707780406016909179448775518162492936874945750654829838639406613976562346232730802023923395582789445609390305434185091522497251658376258731735216591783042495689539900763252842059328842987726866194435369780808904969479102970556876297831668540139585870272090219579967854252660942963979434631141107843990816909309005596141133860848782102439540571846231199533724261778532246360053264436810264395688273221194750721699389906915812526813475019393194017294150248529447592860182063139427634171501552278763931435150696064263096842690367476726631354611094092228626000100487881370278086482218130936050218122877734284132292045173179855453851971766024473903305132646602656335346941813163117522296390837613138311370321638700857692934251318103689360444391353217747901653462214065987092842416246651534610901246186216094324885797715538707887447627170586370423862340668854614567930157840285183508237083394018182350497813278478086146016504143981100405900640224046002023128141934505349846395346770850700382009113770966219262830501919415044162289644915857327439708824332119085386108026855610385879214283969519870329524334758783346578689540396349968470007299486350507639688434265763625897718426781318499105467811301010521609102194164176177943607990079053848129519378682789574995504083413756090869482527825081090223991803686602672586344392573154825139983099521857428967888626173872034872282387524127245631532385997583178520688974470219864609805584951572542303091338855213879601740207001895068037826258874577734854061150202613491483264156119271323177631854816360104778980345920206132010311805622254834929871222549132226099913585832521580610809696713744765318430862133554233392936489612977644391303285289036064000445140175485802383577428278067717927053788986622802893216870153932787039561383799537151407030438098332608226864370346382622983383238239995569104878289532435734118901865939904230536432010163223143795464952989302042378587599594005137235043199020053616265104375984389533225976215037806784677857750595027638381456790913116118640910975791531712165375957912385259646308850423259651551555382189326250931537280003467013554796830266215799349144427674623962594243848887620252566599830434334800049153801140179086892709444806400343490653564181927958490084089170546100706381499306211566440672740913047017443692697265613560040603347766179076351559568381166605475833452565869200417689725748799816446226039332790299884000049328057844413674054130585593884841071819252140645092329603994177266906217133803522701244767842708310997063646128863944815707339334161897022994954610860945262504416657737469926395799614939880124128830626267221181853240677356129633477559209260211688903028004823677714820247376999080513941596339950769654528389130472341789715194712391394418348712567372320233181370327351124417022038029615917735788171280679188648801842139750025525099932607403368005267000784956248671527867329854547532242546973468496870920791894196753008069282551053854994195482148269039658307536208582506726919953051630257282229928499701353277747989041712691775290333252461546689301183191817385057819384678523053766155720096347879831676247217721037600759591513244261215843129044233787692525669746529095752302048698914453161168423408213316741279261786187349444740038494382238152062720990550433721326090572873239848295786777883284063459920245412731181938104470535136176336538088960181437374385974538211421263839678295518696155445378761546786348092110343352343205983570636822638313378162569862806318910430759523202147985924873032295362700844201426565994182924742433126110195664203426605045105374481810027642767470371114236868042251843666238302924813954818714967574559637696239653583991013736856181697387380742257087513988628527990884812200685457300141208825145009432778799927159011235803123701611132559795834358741714758215692857787265599767506783645340546146387041596853977195882373953052039532789419919970250480244852527774342854282163502449436168545016491643896875102435880943588196407669569277891401804867811197460814520871125820651613191625327944724634129713369181856217478694018882787690498548772203620208588514534025241701292848771834538373694343045887942343181004401338670949627134540723875676118417994796026945271493863495654074582477381621200925620180675872389936449339359543658278484971129654683600584400992372622601780560495150406227850786269378363873565952634308453186588617640083553216905511832367720719979724997575113380787295284107534918087561021643465617747559509659670926932397562778915915811914352850447445510138352936862102342883952477958975721477187763830892346299649714273976705215952345638583374246072644860280838622450803963242610363530294111942302035036166654773283052819328602944270459524454757368652517610561026470290478516730408817483948885991565981446510293056963488165341558102725962094584863570297571078929031222292807362473795841970123694819756354872215149802486887894222327266409843841033078992094149911364807007010918478288443246534784113490269728761061804525010190744595083368981677455762286192961151661915282279914480141985172072541031245673208571832562413030892614635492575885760844408699137259631457246119562328319165600989561781112688826754086367463462240532067710047112344488370481138069805647882316463602434760013750559204784219373702886099806369693829348355080181513021359872533079144986793667612530528250003274543629221362908546933436883514558580481222399166125463830717177182410263936575696602736410035664771060670695089675310619992964175148550330785105219339319102257610420653470563767395956980137416407080258742057617953455108464451172351601195118593938671004778483855145208726305107299192303609536674974087307197070471425824574464309240780370732086665945167866552449684223260717714342170125093970807147476539236661626404728380309425019092166857101464406432501984188760314075632798703891862607126800560269322546193907062383709763904266960479635014585024321070941936424007728228488010665165978182462380759231772274987501959403643394660279558985930264298060389556076505636375511178678667906147373315529007357661431810497860189973517393365805638099364448981306838078018856112067509121914971685967449539716691749828307619544759623022998233299061870093427660451097446824672173912116581658141754709084694071066360241989023532602063628427307624499522348319368867057357486413629315198510512880753943973314114526603814356998496158479265140704507107312155844768432747939909975190422962883218526600189761508403208940174667805408893856148333634470267141775538718334284998006183862429857106294020988869097983826953290695254193878261619790804554815879198524617070794608526458999980099823386684361410879212366643089413979794221419822906321644360022848066196291175226537848392534795730301311107649156044855223686924799795016172590710681760855092794310788210399356889072959743876864057786527459661790349002625118065799624346985975170074321551822842667037590444872440034140651850016167181971389061616135364662523297815189799453562476375048944287168536805626848840341988544129120882385759185781110978507050310436514886348589891820166889984807480401376904769701015772650474413371702675497490842484144167913892753646531849469144197304631656903080513713005784512767471568773777502565970346203052309177244517413925182534796441979805984133007695454563165266385265057879186376532087182769163453890533688409738895812016392237192812090432119626905933428760974592943841654073000202515769322187982750566279383998709345563681070227738972297183542538272200265392542729947637133131892192424651411232222422835439431739658110395379257173025951989557892466898999571819560422868752267586906579690493175783553387758320730932027078062017907514440821378059603418980016630546183821292147014294670821255566716992179310608734912160716437240788953117031486786066599117385386256456606533423409483775172109191711734013487904586887297946882596937219112992360745316201832440672539070234162162673969388324150376145819778614980449515642062622195401407784123177837221510185957639983950344385553595947472555258962707379318384689308830252146745122115527774975396952572873779635874471778666773454752821196193560869080836924825250392050274407315518456433499548927142374880585560909244985518347572799440465427095265984940268054280566926062183281271178160977309082600815925917768840983265254726106034951087159845711697593202090206502609661209590496472776488450953623327259013801178861140632860331985609773775924942411557448951205214610237463142640030589704126638317100377068667329373580776086545567960893488017415255657467051605671086775979662227596302018401883435658483319660172668350204370530951180337978203726475019717165393769704128747370190735681128600511617416626712208979665485765002552073491874207948446079081244308835618368516107314416713580594797217244483684426074248106055469489715072720379803669872450513626686482762702251652388453998437096252461903345965095518371966155330068852736565960671839733524461208125319156746429032764515906461053783390154003268860018422936092464682100250650268234638327399311818060023771342243904424838357375093980865860259945214177287453249489051062551342988865781012689956723397901269631171935522139179334346676865477275689430462847240772952907410241404559512308263199033555781415734919370865010867549144786093614140959280619432798264638204367507345731164299077880165674377201729679121908858014365289650862884018997869098950162315590714683292872651690248588514023751014689000044966162417010762973092625334903505952607731743614619729368679725574994509414417517246790681649112129582609069341206634316204019836344756951844519070301395463409743767907799416751288650868162761359480638512370967314848908789767365901604887479603175318573634448657913375348010411063976969342272673072133216385230260294194500086114431379410691288468910603396350028049276112087490648945607551558540242939902759576326439936756508553005516392221418729018314472649919087885458112053313893562165543575370527189774914613942741999040178019099453399982582039001312696137910256183704308595791732715890836217569052621432065602739884134872715840922488849806256132473494173330208498495799738347284589149674794410742072393200386722609781611012824445442020250860537110441321821495889208429149833437342669135782683175987990843806204333358768875023029991529631414057681570538758094265147676848864725833775622794525696839496863277179670277071980938617381756861385881504841391761945856502153909628475822655389810134146268979347606291941431591033655948041627437410087074607598002689431216299967407752794477171158900849955073287066145132545276670887175175490835283697209655389584376168767775025973395187580023843005567244919604221893959547670012794817635360508829857474859123171385512376681534051270880917078751084249886727416180549992113990222943431846901759338082471094359695907761460613788981424246785217156890663403628054699693474134799257556688484180011556492990493701306534167641339587668459766194601452509149038257675457107344876108792011850024205752968906790610623274178286890646697742838758303207722094446239344828439806062426886673423893282692771801445165583078249637237419006416908451204753942209508320898203181092876692867062093724951935982551463376459954400867528379414741578599255665240913726545253016771723970893681397601620653139850114669238624523488615357002856208392496455400751087735643168935097906620133100198026064635301614983228760463953543941653678025235559175117635286275786916969695424983960072166022075772369485954410837493958741654457049104885941924677349228447693757446131322340013748513643312926414593522612987230030173991074593412778237317604625078445224589839309621526022879444967350710689625249584722324934031435237480430919480058917166027578716920150457204506578359675775625401050049536096216744007446059621051730786353900785848517142369224462697871452527852101811003431016472993566210900128785660327053981608887339084778787467403552027850223989123215879835524255533026591118921702582489963813301789048058979743602226966784388801701910343369586224992230212974969979366411536388193930748893427375400301332607049246457656362961681064328121872240558747118699919052529774271408064685081268523694557170739428335404865921465629702712426496615300750444301809888832268100984151314030713837504941385770375034438045023284647667165050811202755210360599878341779008534116678322335617932156444946423721099010289307399436941338346059978049724195776054388744503743836424073848182767944824223167486238165602991263494739248130860660587548110851201346557619016809363468231680504173257719823524914480275081195188901969863271364821351535423237045857716399898913969348332167424280707053029970720116396349428072312297590584653636835549140830384852340728105176830772470077757464720008669264669198104251752105126209521085374350401800533763952776575403421839787664430401782378788455517359311978768184244119530522118319481842787007356420029879079383815327352572318477628758729042462030910631099181504582941677905866518009148967714470680644548283364077803206216605216718674749688977276783727136456347457296571462939874574867755730960040850460638551869965767246745233026656367243861003878901233309983418596577028534921891929495394710859902076223404492916762054639987347245073931856029434649004386567086462200783485811375206934432482217804230454512068259693313837704605947675769156883429250989719402659230715807260091948094686832751505071240781163598848745249859025276066281087187308907726593700585623146690604517067707674579828847457553167187023121171923423921387607989397654263186894674102203022721626316507748933366657158565258706076907456125632236442657686224505687957146743423181899076771456889630226955146905372440253532980655353211415397783918916940796023778432045476315437895963061250562675485488641820251194365168204973616088041271485944974246677077896911509189115167764118619946095406848928499707982050650223783226054085665715111906044355466503002563444256291376374498549547566216829856795110943227422093237620261700947918647935082805606378589866498117886273283978432712062712900568266530787063132716123142080843376820556008912160742334144848827876270536798655267813723241127654409494449726471019170423368995904363968845465440668988472906777273600181186739517701130900048283500313731421604947695184040776086323596235728406319597706551143881013971104509937708936227283928275157950466969636148747756906266528407633934813496874447784448430395055626554010969708277714011703600927485876077568650479230125423266916505096365659098794843195987630081812540223473958841196944190143211118945200946812626335468875280351429004872564590710011901471561486861401671715713603690197485494234984421518804346368021767931262614993247428491346389951853613463944585487928140135725090084253723134758079228421680403031209903540861413908198711669944992522422386594069114705237929673980877485866810794906045760694276506115864559119728311801050382117002299896039237181163925065958881612936771724381957340039263139882519264933224102374452285320644411910331609468916351349738969886321562075064333821931134568441013473628360150906804789925628101725472615869541348627207826083795896911060330496365952287859222887455168152871930021579100328387064174169253186616960553381804369161581787428143873630600168299870223960466098560338898261498160594088450089582440921795330931492121219693077547879748709533041687822781580873027666974559756632933170244862934743220177047222836843931237912128424806382784388172733942705275836000832923580078949881007977912424975560677986467584167658297676414490697391924435810023306822964577445819662247161594589768114739482599605321355301038739903987019948014951579908544731419706502229422125930699420785755625667105761620096745017128747671749077998352863457413952784210242006659475009205708705212681707558769890543142055519747384121178200139972483324212207878449405480004579026448447689869860004618645314298247586916234177820652795863427752385715804464063436029903221304593835150978377540077064902790409781066609791232730895804541590551406885631957152776929339399417864347241882309948209928751588646579038446285207656070450329249479800186604416882867177168713796597096144008803173046976555105904572309033055648175482753998107198536635166859370685860875590188431507375316771669842521966167514944502790391440995134169085822194888281610998380397626497640359654721819744450169047612301498369705639050870643528500611541853531462276220690451813782292977693438941929346934907246300494508608834399035104140956090809792192808848560334170169423220329349247984648454369964483233506339216948882584026357421130963964894553467381355995919082214824585548160724586061808529542274200825113625427160686122119688996383690828358289624708837718025486096398293840146989284179360538692231817063246942315375257134701090549895955634141747821737659887564848187339144814058685854815960783424633164458795195486729007009932224803528031734028688882067329381009389012053661475064064480514426279214117893910446836248178442495167529747852393972673577741366717148829411907920832576300341101686102025928956514711516151404419882121178650269020037730428420452992331259386408542054499136623285155876538243744040067446511667645094738271953608046612625948285635844979519183914616016046845602063806975453247593019202989190101070434410425236183237664481635479893159187422777774844571601503127724918036415010710823900966240283296015371727171686440626778524785285532280831537230582758084001685727340889951812221489605629944060631608125916399200824196579202797200913066041876541876812356397038134166514732995233614774886263081298020363250994032563757010336858382337200129993419981308484483492800493925157576368927771566799104809525654903624281341403624685619892337827452405576585136176842785523869030653423453347043819939166994227937020170646575774020888951600104961284341000153639805200741104240677718997304387744882682491982887864351122363968857246175994871135091967108487713831405542660529553083180788634615933591415788589041031748763955798059417776527049232488159768695708983574589958996966514432869809690173453358119889606568009829664082569936755764085187182215762845628637699257868773990986726671262054952504374472376387907156157145566926511249388165770637536346486047583577950119944944486478414386368926856633733229340707048775220543618332057301230784505635709357883275109460882647710994802467250589175429849453540113391286904324429293997582529429078544664703926737818073381232839620240128846796531648808107514014702933087340887418654269391831758920175787141514235117223600805319507619504087306470358307550878119230941737174204971117272725321002368124926713155070042866131439455402834726357616716881406998257916985818057462239805834613398686349766128675483208943223581749531247916381503155934840305921152555171782195318371490963509494582200457387896507556883872066239589645212716151396490943196256309964216124781170500169673373110626343399735336103286213412291206521143969624465269009365290564232732530959323053796511382088683391909548153453985584734923046220249652843023014050765094317915105659713375455201810738113523768147323392491924843871700831175762494232238658730889308027463204324588319411177967335035834220288558592170996692275801294969223543420638887665007490628656297229243881931806515857594087055991159235522315959986789522973799260668599118373299430806510789305210886041392635006690883363146148247819136072050583624901439702561412278145717651608269091891033921255132039312138763021744157280909089371703031193022060833913202943370513406772335479530227286594579644969658058207896137077774100857083072641598459549638224143256619375874231261761651005759024998444368157680891991783942385189177325262003398583725685415436098173320989733509547397450421685821531124912407448201387659333842380033819062941525979294132884610814277278449735092153623289291773539387100816795513583316127722836037273744202577615883160915497602717685749066421800799481685063052245360435219328860890277828475926247156890680886510295534409428447937106256543363395507321429763245451172316239752060420007804545453905971697158318572587054819866045395877211357235381274817759895020309268483671914424217503762345035086171207817831717326730906352043151639927954436432320537447327816712937748452818476544377859455236961695105297877863920764362153301454466883762935006253482913822658530310158436166079851560521210141961439073434718784242860506330159230593154556046357221400666043163998242449793998681684645215567898779156375073964812822981444559332966882168247030417867627216001227517996395534577907821661468739629047096306828013422864124476109404442430334694859076731878524683483568295251679605630643726036619011177832948137917814576567477669211817493127557024842715396457238529684555508334280930752108868638766435489761083950172485216504827065424547360028961765012108520976782218312463299117506636655973240544849807804562127780192885009418672974868495504409300672087702451886567396165134970644875418003742391283705934604137448005266285029302370379506822389946399653979970675493129990013795188394667715510564427078327716995629556935000485403474968271319113214985164921146605170882093378452455201194133925923734421310590437606832553175610131066634197306959890248172812452586140202473289470638024071315975756421221073335099896048455549612409740105861069549563902722889491102360801500829269537736269735895503396221847480944060130195201092942939992841385431280101293995602324044780825369885983336254790997919314724078500421156801164993937899620023809835951305353275009114330982027334853383979521174029603408966520087362651454143229902896286097985202340362623753372913031942979021062697883258568460464435274208523786802409930627748864196777049849544749742243498454094835828971741880520614344856213785224789030473160545079863980473966059717840560155606835468223934961840022316635072344064496379765723633526461465990300118930174499600602735950194951330168362978540880108354328641275348512947650321964400986300059712387957180540611106416729280980324331918326622734107251797436860563646560734103799363207999393424746237574731229176537143722469651589359665396110759224458647845313419719513931060569225105171906377212181859769052782601475749243060101989768141699263937146101323332207127749532476889884544507238779365896024787918521520693811958789850978388752723748583785906211263318469954679801258575824617246639073323902204622113108846840242794895583151479303654160722012698813450964008285733334572698838480138435049543042528595714544451438994553478593054626950854719663929451003593477581093782947704942754570406326796544510851974343717074029609074359547552956722293451663327960221072558375741146652612858421144849330667008104494021875645989585185046757274370626725247731243261727764536192559936910158728220878597240086145403668363717609663541196357695020036677004245283801777513426762149365028630408618377942014373851620607174540849001039402279115392173290341001435294653552683051297701369465540244760939705500213171840950132519362881926360880986702247437875580119078802436325364056965285968349528121931110074354811831626660026867796797948033808929810299920994513796766795094369831925510298437024098793911636773477928145601883802955237050569990613054542505291621346651300801528633044611964668633054945225502736425330896238099129721822172230754434179814299818887412859311898929142861399676399758809322675132155692910450401460870929355625656228933367144081926634312266896898435942222287281479398993445144105431647537851804369366793787847466158593493037782148121220655929268349543389388253506214984069242787865292442057812816922742463805275665872476499052486461994819018938222584590876383608740428964778726626606907092646066496644577299231691810188529425783074709793965855431438034759783878512013953425317316437543243302513477699788650442577516109927894642749084185351682796348404344880354663673855056710965895527719917816654568977041773646690489358899287631883926643660344568732477549363298413824121166214433946307130712109193360681517019381472917736518080565263127579448383371088188760158903378740981179879071286983672771794078093236139141045145553975758388130731687603853872274672976619053518634251632364601353130397178233165820260604694755816662553269924558862139331195334990069594356624758617534596311848090220265442651967963573975076299910724753858892162828480580499866285350442291802224809699283669112431637623990306309369899040924918760262029287480144780782875964603479469223163983747840999975217918941176805638212381520147361827886347967637777145447122272910388314237840745729643630015584432212623647308251042196939913911038888387403298460796854461177795299337729175306970440621971495114323862774393720864639154638957262745611579869079607759209758384405199286920031823375337023979752706413624147924176586184593418518846017585709926471815556679608864781678067185315280477778163588646841640008619131664544860033733167082820776321057303250819026708583152380643814548499675644506343397097779226017562619569730108053769959966527610418569211668431323866012263711361300826320659625447035074547918359228680997658741145370252244238173013316820675775169282027200239508063245579594721926128978477247629740319517796157963493552338938166299476106241681340798125665060086734129121228616017405622182691532564318782070612342578312729066931101075211469225057504901440382272259791131017153615078079138928313381673311745670046455227749297795129351937168651234442800564896753676370874202994866415118866161058227534290431701289689326959190415098457367342139362785046083167809884987268155814824312126179631032889065963781604967174288053594965965183239188660681277190998860964282980193653391312565055576435506944918046240134673068675334951688073189319171970957551700324171985289633633914203909265741895294599261148631368639350246011164018488268431675615753152290340881306817049936419260554844729705335505761026131391106202105484125776913221388859417123975575419537562509118654721205217770576613642768828168870681663864813378221274938801022902701524973019218080761784088636621889907680635687909765070862192797932086369210289879654311753420660199006704320424159714518422252560561989871517543039318570768408964979800041127228401183419981113693787362188961845648008426440497224573331613256340940402145261772638179730448857012343809809708151494286679416427833503113946061284081311250621103763295485714590321797241772547457707794201238189899363372421209661402653042280083667419589520982555278670454010333543805244790430827890762792308645787519217866721396660113913145733926352802419549252047883959221737901074781964944385197143730845646023077756376250334291356054348855148796782330433340846745471959116566101492551113040308369954081067503197555295232728833225053195729182341304713895454404072171903028536632807771846485771938591042163557752937736759596424204893254996626451472579798387534851948386157167349178530321956365681587905664704793754962917483351862174633253662817398064088489090254152048025928763499673550998542151936029290603291521551407135798840657838442157354763316936038760097547197797748676185734728736023575347281981525613137716928190511694061421759478282676837084320433840806674263628789826496899890827653423961586674143815606537700794603220636340665711440508857421121967811821093829093418624776074668978495467486242963884544845319287179551456306518013682999429557108010956702271992567759805221118508004997808249875212326484782011916120268741737712156467205834978238320774473003913541909869129534730798866920581456137003510070332338616289607706209563585020200225691099421433191083868933305724893159522540962407922510080604175033459793220226489445590369001422220902126277526040066585257611766367590427209646797198617835132587921180962527891740821346169808794399045747893886565452268958730861880584285803932724307894364457334034849435751046665723020860815988997285001563110383055716666766049125064157494888300803603815131890293976169177264853690085797035923575170566490101277503160774628530262764050479057686630680667098177744421430432757801349191646992969083295165780205580118247806020088362511683835492089489608940440745094102514780149810021000382911859581761212947849298974183728188079916406049502371244897236150826122172587030385319500800556079509325908150015887268172760707767786785525225332730974294692391118866180901426513110343013818339912764823354124476104029706402023780711758947911311835543258964575722771885466755369638127950836303090275835245971270465097240400756315248853398171364999839018975725408439767888918001094811193449312790195058642912644016361769799038881414045818447627538601255494038574667029066735462486683534136145881670307128821888263713781336931185825990967144187079249264554525071181755587397815475430905374216697339728161392294627624373478723686707313048370674001587076201245594544748677043548731760166524277201468765669596667218897610688952570396699109876453053557189380261233775855829182872202555182770599217102847925529502797584953241581249935860922682189338615999230912975878333030966895141023457495645085890481504600856963891070654061237163549331272271298228694111901244685850310647960560128146780852782512800753588803092056439867312795159746781084968233603971840966338247435053706257622062912467084288775494641667149028066395254991356906533070637833934185807875918700405780827821143186316742963131577062895027967872760713620686708751015973229545671365683996855322668886365289314467116802579580620183174336970140652699086140871497590155068429297719911466704105899541603132459440321532935415854280815084764056244211683849449752077258205089286118403753364903290323992740680138223254669701285652851054798737557726033255976405881236597222144655777283269971925934314540597203152724885305573455603937581670257457924578720994009771641663253485206609913342496030108476346488184359121213260794553709529635895536631558567489665676285750543514766728469755609965579438398999983588794579730905638884210427476237964536727178364755024252868928618085117131087511215575816644250037833440177446512600951766041720006614193412966671936609250875096481987222366885361179762577369190547747514041692075744917589977683496193870470040909569733183426557131409622392481266848555995395858055642770780445186402689409662989291927388674282763813968572867255602272853993593160302459215209753951383402132490618812509112650299413721968701137638050465830107438944378090237732331833917802744342760955867736855517065947633950171681485927767631219932988295870247401819301789875798386828535716846599473633105557985862600284458539609414806814394068042250804865199958811378928548980802820717623997934041487948869131733460961961775029123961087852481590723005601395045175764287823831754813111959855469053339669772040639412988159407659536847587395749747086962352272985095282508120257503024564206519484958322565343085071546213201226114202096544023093861534615512537827976619390457886275748866481832412271131985025391636406717399565790739467997764415121515214894684526266241404302762983142825990630424162027488549756406438890368798900503007817449799955006940058928497852446733175309273288268626405010386044899393442751357608992399470629224893206259605340015236550413914636450802082348087960214901789734037761954932670899518773167031151910842673740227072682436750244239980824263726414825868386997476779124607051352653113774950554136686782309852543006301023207194362432968557952457499907743624284455002593751291918609201415525453324781342797666092950568970850128594761409499706398860049014700229528108205315511304256933103789571844379557767259795733266058524470044035059988613642818023830959583345953933100920717063758765857463185631771825097085004253287847673472361860973196696346569577162740375432050878781296997838471130623443840316643369426514897284208681336212326437357726559709122057996371227415129732695733813162511306421471353216003222105512776761870161320431077047096065138883594586290848856611827829592372505543656352010132486046624495521011202380643862759191801255546197433919871806777411598305127384807470346154199608096667864126576952471957635772539394736118471052690841949375385308925396720110677048367501701018182725350108921421767366799754494165701945072819387419004711981278010822243771563794997284239449079031232575564928727902077275803836107205071460676028465928814825058097872528666004648434131237349542423903269529314677423740302396249889090831679213850910964609834182323466149311036549167636742725340468355411050634876370084914876599408256594198233101642081035599467995078282241598625294069440298824568223031394735797653525197142819397582074876544653276776559056651652598247298370739313455203335267119623686059712500683907363949445101135437183554541596493863598373248536566325797808180776796904911249033836110396311263971531773181651275652044967872235284748803992983864638821778219806037260533629638203579593015396210670925338316688670753726136481445617670684425131124676647314668966980803087355037575913878658904834292979080845793378003707467756806065100146234798695168439595728055398813074900563268242770628427583802951589002887647107209683152681985358332385763485414241003221657571395929708962804664436959960375564817610888941822183837394416168899602612987350540933193418711264219491384043600311518377803108951485400138720228672803061509341050804681545926230964629508682896303798047638344127767496133992080633939847988160235764194762415681136804202404890387148052661776476657684931810965427828644139713736813904362757868519287166274213598922297616350612410120305315830979383059111869614822798745634201490893491138845870211209302090869959230216638630247715313523207204920477419625288633390680108507657586837726408370686078048706639391911440740441803820276136157794305772647601379331635474443428747939019603297525102967356886992210421283585653899801897845713160598212606332927668326450651974601426796050494287601298128967617635938893290248157818275871869277025413089849272120178994292212166277122454178839190935782914718080860472698935066964554358348971792977968233251674453476649769789326368438987783662260185437253134321494656097676471889832284770111569941212994502610998479892931536528696104616323373433491357004548037324373710155282787753508614143502338872254623532595748464982688952532175340557271930143134106356370817533483047698234049059129131047780978651278394046860576323197268093532021706513498253040959627471140119841397601947506536087896212281515825419847253206380472342619141072856516275472735940248511668888534038088902290409929324225595337990874046930779995075650216251276456613735503972836648295038506745830451387227617789988181890517179588107227539885394562030975523746553986238912260245606664000001486283262880494217792071449627751770797749145567389934489602026496610822348588019478223654578307496045190297998530280196669434321497371091813264985747545546726337376258496072011549498211659975921199463514830082631838270290960923088807016322286801747870723284784590790964687173215278854404801173457100128207507671752830154412546620428216837065420309384127290978454723829281064305923236862382309276970744016667153785935993978633605740383014627902179247551127727609561877249739369013955807306103936644223128053485231077138133777798129105415953591798590378085448224853161023317937966078056144604184581801409532113007333226164061697067445503340934816796473517952411422383395601383379776620389275418993296185427794321788472998625496492373369968703404226909130323039282827881525683312762910439660119225362371096561657600510351999560419316402301123456313570739490484615260956469048588200691516164316340655781230910076589234055951894418941228997258571108800622250359531662026270217656605528852112797668429779560382722731900506147759900530329065728412303063373734212381101388798746916394989810643587956436356304517932752869506670347470437608788896672346776261314441893511791108594083945189627407968058562953422324832374634327404711013392316251624450969956418683306531555412063841564041514766040929659839497823263112608669821939466757287499100879108268756306919209378145139916209813916058630555154372842232240362537645870220609505478313398308849096347359604962830490354998517078004866420683443701234948543516157761734185561000670834222403933838839374554410489188971172447514683353742841935192965907137941386250678833918372146287674626129133147518825933783964443402835070591715491609094457965077539053975109073597756617906067440287705636621730968051637530141773805995522331316010875582751016649795675820235546637405734527848168342539075727987347965090632365959150809149128673018522358832636107484673817170185997586125324848870146883852853748894341800577473758311700774284693275487158382922642377138798197887223581988242684115793456328420823024930500882136176308728767760901637404707097853421944364874428417766223965953841010424936165631836707089947504866055023527050263100967412665039379898728140392580277534997175651884864598146074136353488205291971741698851817572834335514204504451580623852801581227434437265135421026813666879892299621818427941662154835953945881484040861599602882621244467312503001622771268520420916541393466912148249366522179446631661621771498077059865401259721931860053830047388419744906814210115120171987347221108660007132661646347217257748163357262238110621994477130216079919762963332846599390074419977078436775684182540607440479592503504145677072484903846426484756870396380803799037465779553639339931561048127264135318959014451777403847044451796463092977550299830170988959467408882662891177083604358952219603223192694716215834233952288426883436587360961639845221573153649386775118232535284279822215440062214145010653189153577207000582110921434056526359704195795339555668296538323522286788335091225882316693784431839296816707981237703414190026037989097108026599933785704228500056475256996029276578087017455480624562976048840438578351398885043284811318745238154353825869772644822954626504607857161544544904394036648537874418619204572910239357383430331932706098805107545798327133499680946868689426480732653102910424284971252576701322304127752262778396922629976912597128580197208472440757295962742790797972868536209759995670307042076443521781433371780199238951642304643111488217483386738419816609685488042241080031069026285359734296852772127600052151500158853085862997114100368736910315600554680217955589831355373513446892943597012155099849128438854766526716900183650428059802543515104577074415980131377349837040335986133400588735794586651359140141917931655407565886613543487982277074732116556475478727878240233943551481952564821622592662164097805003303192971864812142292622163572148315866097738071362086054108342734625813663478572099329714281198146560173240520596911703947490683522773488640745901750372194730773833294288757450690320509354276772947160718297134856253205454247690686109476021937861649586847454358442633485041532231746736546745378534415741356852071171900837964217105880944657309237937464435386995925305888842417717239953302521901677438285933064574434560385065819086038528297953627129945808041875519559371880352421567590790900939308863068268490951606350778236965088215834945274906786971828671022131335354497389013477603070699225965420460309978726294441522066063187933574985397644729910439888472894613259167630882838031983500396539458388751713396762375088299654116854177485377849436828340713110226152512258208711503206338359339510001391974134861781874525754761793070434080417309524689969004424298442021832380495189771051617668260003812427259771464082493160443332553600071959319419227071475369276357814919756792822497321563293268898451812081832292381061222733509600337148489721024107105938750284377582801175292453799577240223353847910694209584262303355996229527253928474783525805315491287577168520776654308783402710190819884212397095087648613449382528512579192862804857257183882984816192915600835988154394981102464433334171333656614785567037678857156501594637181304654918369451027133357361553532085621440812846855234104587798029836634207084435678615156116252792532997821458454042177589804554754318729377551494921581522633803332274829399739650163039305091692882699426205337434053773927806084853184133987540932927266733752930291502247099802416002242756607398006528169004997216973021990415056046152774727086110409386312725942763125218586364623346910853020899272972454644009463030461205446904816782437716624374910054935180621853951833972619800476093295306256707054738234017526446268292181346740195381052571460377837197024344947379443584016153016879926713827389340212527999114517192007771328846589497693685168432397905436575847263839971004648623115630539098726481487565886422826744253508612702066341024120129486330465056707803929960861826456717083093831627683749953798592565450044766455792425911626374795642139101110919252207199395358626041154145422086657107383451091455171527995195148606787566072318136384194591065020634727095593589021442786146062712478287438067869729157868874377553663842437009022506171525202113155516332316739091701412087923761678484194593219827171270456739989756519852305055649735362719464589984767755402021845567109963291062219313267103950466788984082410643852012686169468956858995003411037038794653344969228336769702662132575276619753488167463063534007308399514918124747741350411692685123059507658851644626238662685178853456428575751171481692892773754826446401221447321803009898103395034876911864076401848960907253913912935646365756354366163684788448929516433845660404908259329233955929709144430162395081640244190636351069197951038712216094570334941924640738384834577878785264164889199619054160885534337149232907852629117492677214025413426016356496001554102091665544317966809076334020659861483337656124175475938980870594915676195797549293477672811597871884614070703791233443782842923980090722815583216443005697546521449243985188795628914826902003964861575979161493413864524967546898515374158351230671529294862466217202768745597294981670317568447897092622648548243828879316637136048265876419660118545827760556753315535529361400115004377012636471845787172452889585166929105297992642961688165686520933104402399258194239726657114570211325762179742533025193708736544341594466277413935113009588526085385386733096675463202366690687834307627317999369730025750015793313505928150621700716293389592872733368544679336489744322253134154296609004034454123434042694660494627977545098164400981770470788706249476045756167606097121435578057807120718544503272613769760948339234617949639709428340925570271909879102277934811211724077602450714032329208534377122201739329901915963235637717029071682780372484304323036453960760891690415017823392457425480600194551504351625428995734218683841469781375752123371052464974429831651765375222893785563996201224092638293855226670916860371420571180275098914812202829733133452307315504087315658315434878760832110786754705747503325324857110658398391292218135445897232102029744005681419587094442625430312494619559486321604209403021982556891850363157818696288730472669011482767156871117396221811625099622406840968522159995733891462995827211209462152093913378703431008220004805360149227940208859269565100578070934115436627625640872136139280591761155794097147197682725806434106549667714473697847159348934830888459589868357418627636252179545788604583539515862971937137122029906541468349600706034183435600574315922554393706459093264238590380879981510421117085538809208202895728157175975261564535951546434420777404185743158165297644586445960129397510704740720166491357702265913750769530430760220869992103265321796157499846853545585399873152502429753665980265487936856421391697127700176280469035981292567773156375662045613090396139015411956459572108122643985538872929775721498647588523186779992757064997594154684372482192672520369996563408654691399571109222218077771156505004587460021605661921836827975179917271069937170745359025536117383029704262277451297167761933986617050588095669050137779833012991444712347286662899066137669279770403704293842729082700412080330885536609331145703531595310708381989600989441375050808307442087997886187587938469953031395737495488612865052212312413513453856735734288117405872666531775601365709998705674768441929373812239438887999336678316651978292475882196476998642601172675496568951450622516082154759027198654710527367197769773612458075136381102353738812204114245295151906211734388161753637586240928770985249439050670330183666143103264434504567326468744366458150069400337079879540520986825355814636442855413965286158915602773140425805102404431013708316308524027265279630019495589735917099073883624949298929688190702992336859713653467136363249125268727672048132367187135887616554222837032753306628082287012665675454758082793921877924403141849236192336851163047712389678902400174692467158835877291374555023282828829596414495798268163582068787186587784316664975270994737072971237668186088379741668741621656519943145136504382910681626042503907432623981849332451990332072381429623620130998783671594592542541748972340792926881082936115148550729481122046127374867349045728312428203274330682409533535999699174736315167391761465730335701435995352103690997698765694584664325910214581951112573145584208299370017480304604591000838735071078892546230253824465308700551641725153166109704683054798701844969281877417123783476309688051808558405958691466532411483391223473681853230914252541852488500017792170098209394298123562163080529095277323533124839618978942950689555088081489649493138568505660902677295107563780901536046559417992193623139590450967702462601221686844979251720178049515354226506380763720133242014718948284092632072564261823197314212458553295074570763873309883990911522277860473684469678565407816589444037096402762420954372811247168580443942189459036483681318767669888737351029382734575426565993763340210363399755106340332752942453928761365171896526932433638995512171255378326966722729960976051695085977810676461389803649755961425610833063190472584631852097514830396967378889293310981397611116675509854347318222211770750205276613225360224530571678120285513535672992012447120607709521690970065857330046848665206073094377888320833387554609267919736974057643236671429423833546263195480576715469114499558638068088122515526865942651127118333267033577533724061103306530070673536585588817826615080152642893925354429689709525409456799422542152669354334507678129862757361153421265752293170213215642124641656568834828808320184207942529099287386564954929670155658863485730403824749583118851402940729950121284518737507450842906163901487702364952253515934943127703487651069032131457851212054492062668196851415247756091269871845699981736374015221284461672595243388221441423834802906154726045829717383659131826447984177984703715130749441339753012502131004857643665747118676654146001854198264404509464083520428714068066305894964724728925600205650745423964192906620413151570853217427571755851116447201670222906477633625843743309253568376509396469169356457888782803127327758871565038973171572450475234974104188299493617928962119067613171070799691510820139548777060310523971301927828796091302408943940840297634867024606278947280887876847079266301687488684615844008839098868342681895688796889906873100610476722381625465325574286940168495340624540053554054698184727701548851790502374633518123874458499813069344792820528891902502342969492580342794606700639594083434671518061356258751438527931505928355016744685091966554842953109048370062979004456937250225049694876661715927274709538814769520601047357384717566367362851727385564161069696209018861791929078541177021758380303636651270826610676852870110241810130488642940418189181883854921828357703195573802913593414458749599948950601232346014502798308512075825917080105241433467094487643168011684941723064489440524376770942408509018032269509260034808105915506516874802696083621364516802339682016181219605925302515696128131626297724181584286095742297118839413244264283865825394384064429761594064461462477282697959068828080590909497907608895439749890322493866959541747381260250375561367991921965594672523198029353524816740902402778283772078061611425694055945168918547952838309082874217443500149537383330061108216753974975291979766510765604059091383366466792168572240542096362833413428011336286259357618748066440931044487232732374798599536446475777174750484109008731913212804961608298163515554937782625904397609453476283376888305974540857282349605058140627370010899387681781384648296613995254728977530894672660030830289423081975983948341671973539752921657807213055583081622244343687596803918381024641499211127358540432251109960983999715866091651833913895055461699697801852818883287534456736765932140507156217882166575262386379806192518741337676245859836139342116259127041933468670130731013629200940020429969110761311593785515402345497362016529452442349473366431595245251496178431183332634504063282136191366994643224051108148777719375496282107434704526986242277672363271015935490839694570398349734897649136670124169851898701462435387141628680080810125828375422318296032013621227046477170701416064200361971434472443998988200745210420459871481387039630598820715843225744878506784297175572809929256135327674097730391693343916365802410606187458648711145326994647246927312374559658605387361436235477125857475142128925132687707852921533218269880320979260987417399434840621507684838088926710940601203031554244955152941514379255761704805738021851093245818306885062732645304623884229359738434270379793538517908614688562012094770732960792177319199249360108057223260716027018703609222753574645705637399575399089205374532872621217757751040639733386092357590610270887640093055827249529814869772108458679489344150631792204088999326450508489594380143861806796359996834913055098556251712193997862755819366128716747041552716144501042295898775823470576026129680024004854487530573679772051510658772645498557687363444509801738308430990644858645593602969064706422705545649791306231968111911739328771846979590620257794829358187403272661941345598155245659811143055089331141793946916960395444958806000303928749520617252566017068418071900601988509314046082915887479715011109668802471309168352906371317102514405337566916481289218797802122157496634815317595118034968177228880439538661418392799573611136254097615496266471691755053608415915509226917330245827525230905097320523299341214736808450794339031638088232914930076938532810036931526484503542280679099667367997688873946169893460067857725543540840065693218454115979006089752307974663601926076995312459612764169014852196565873195714818624871520560850510921213527630176827464640490259228792711828594442011450349630455050816434646126264275070718405959883033210131566499751884000133492852935567240582419118570396811451894688433881745403004788393382020535823776189026505810384831036568928137297845399763918880350480343337126768506639658614932368571831729994327406822279486877469737604113701277337897771334307988120877094102502063457574174586782761731894984480287363010246518722005692518755598677801354301354942279371219675069684363894105565612759429877896283300466697707658066985343672751477643979273572202833605398535976664232056365848692523846628986153500508024433549248351930205636125688141793012694958186543474038258815291033399774385832021218995428763969813847551759544774242469281559877269039796393814661162194311029395586282519912426245907596259119697994684495906575723229723744964041697376189856604517789360640219731178144811615177154376397600298058034383017645556207858202708671267078965856970837485456710022270289843778217265442616700668649173743675827044656579915284428964836385331420670047598178596865943752803116773925374629651555254181117418349776814297674673032729694811226429600485661245985279203880543803870187935208206967143712178208585588470899378403553930351450244636450121276985258242906795718431203295834849150732449541993447724621071825044513280013636515997108220147619454334340132657959503256027960982558011335591456089926464168850130533090017250133327513695601353854107904267744215163942628631056374883579767863619824686208211234830016565234375640023830811208550030831040543483753993273020075113523538835925438098759052497396100422960594324272161729052419153610208264764547068034485658490301749803704718902214421636072238215249308985535699667649821068787307918815354284542666391708458739873862234324800620622384240620410324202245801084311895849233613796288771219185545358613756561726180313837719717392591653407332382458561654073775298875573878103117538232493859665683609967552793428059473586096103865176658138795530733020058577412046624571550765081889065377858723773294880795267785664097714468135854537692657398965189124099523224102401979644922208302062357965601383648956307616234401331591743741371991114019149143037739192270045267814603055623195311411696360225721155058200533675399817160251857316838025536669439456196619548643478361045256166486302141531009059146425164662981837232140652840745768346067139645836436183774186906843097370796682346863290952710663270342756967723588516238486375853213329784998699212520369372957238776536687785402788806563065152447017368846235908745188431216255680800691775875649189239300129850009727496221917158643674722019247412711419645292501752507824339216366638461143532789124065898443893631462765523203207496701783344164919788938482837461592233030402150879698616069225831551030399080275087228099600622082602658701271244934091186889975115705954831585665504754158949861431571629582235214349911857439348389842759261020280934509772435389531966318776335567201081346827662943558635104341299842175307637698290018798322141941257152344670702941599179189905921283697993372745131268310825336741462724920941881892315457497304787757729189836910364738644048043365891257437417955130808523985520117554785588570183133661250512512323056800306901053184838359855752695037961811077803269937729469828287686735241661440334125278944981378458570837641239114163340054075344904907687529364415297658055271646948495798307108082077671542565459087355594978357213896277131168341975637120913197003025517187089106506105132908168307641332116294842635136731692773002145889822557156335781805272790919842911101716084691636128331906084117707801012905481638972133322656274786913299224884263511586031665201526324495572035675116705016270381954939056466113135477990224375317212945922147867344403697225704791945009298266088538190953935163635114526825385178880707774763288675792000833758820502322871198137288787979386630407912020011645903364313182245062020873421160743402723440867852606134145780807226072665774690269657614684494933451454436717164390231550089996887397293950991265387944640512668545641769376415893734801011658092788356722643458750498536918157000778005284446251865233667200447184147073067323392297976024353225764696548146154297681136396271879041337560913452950871587812151906589774985536569252706424991161022428486013375564566713249960392708153416870772884986360295291103471571402812600881360860625398373316531571824070898302417816224395169153999830156188417400549683695935626059614895008651547598451708781164895887517545260249689582273941973930805855955158322353483194600256767943081246016735044811282784040710227777391792312150215275524977269977965996684885878154105876388031392935093859251440681532008888632685239395228268771224080220536237469159606139314374837358105450295580500570774868391360108115920715115291356397359759491967888112054117740048724849359576993985886143582959794930881693831342981063516956709754273565102892957335706834497545052228442611891655137785244691857317798656529368962547800827381804234832645106875824063306326538268030003540237648452568129295851195555098234190351411710111676446604946881918137049731901316853254756833538391972464403487175857868986175749988758192538414786668214206962339805312498959353311647200792134459269165156798231029302119995871936313025255511674822073183346362683746989571142305508014935696904462521265564432089241234406867541699171760208121691465730611562406322498014588842912312267824383075739310751661265709859048484602586676493686290020799404408227360258349788197586664044889835967854015162623091501780623570130481810819901130108011680997426126225486647685432622256564935740867944816424897567038412937246043707557545170984166175807715679196123474812572822229542362154200884062462161946374625573833900304522353517176705044158238257596522242464830036741467643326397739845837174663659929918607113331339914628867945481553749063751679476570017304627278725910148279265520822624636494527766853261058343912406350662613962167860647723571320658192787773794152243767928073385451365868320759625422677776122606168648357970015097330638060483440734482677393839292832598551956387199431685651878579908791568929941266219280517142169767485954068342997785200522679391661764394562104941706126109671310004753876457423917994348710273102248450414660585287772187614573724157270860938737889331126140167858087780297713590702209330001137325878518154266307619280639979118464557985091641682775811620299205564858150369410209079302582044435162011904174150599210457608305852384590307079996125099549343189028405084358410078506457265933524491743497368197402440458691892015644234124629187257911258598781097656812597174861781749161309469036237294189311151114024548720423042118349332839267559156722222822058713102640983994745745687846856354769184059663795099602374793450558308980189282810733877749624837976739321685191370730924578520928383408330033884239497359917520628365762140654781120402590099286365601328877579275175134985930719936155490238008729965776573101275054425591080587565614163675845396168767183526701918806270101458434024166326042241572610047508145667257545303451678874160032966641670317418050121099171905399349829269577069802659444898989289572265221009958376872504855027201886252279138457369994186138995516304500152914214080882905353029314132824753076856570574614807599112396561439491505142175089780492654412095234667445229552067643063007580694770390222748926956828685864369190006221965296985317845142869518015524937042256019182576452781569103467780768202028710378474385726588212746075695564786838368109475083816133745299872006193250813462622756265487643311357507309985329805454586836959566023663509232789755157725494539683196744426788693649557243346473395553328099898620784139661573151162551438153433581670401592611228425160792285074231695042305368247986391646441209591465282894024035130080323523283085169676781035163645754906725710240273000505823407803641467682640870942322673871590561365523541610222466176416696401032182158664669179514311247550685053171987545393129323247232541210753152859889457426576606525132561663735844327750362590389009185882752172294811105060662152356311642540107546795912306848114557859040714744779416437850317734070185239081954382107204582844670499229222608914638771697187617761399900664506990079039882942579034266630687977188556492172902963127275626950648692237250047681671593655829872372659448752838957062125169349424305915714582520943826384001568184273393011908926881566061476698553426059901652439805121497530263905123406579207010707253346351597936967992907008859443926837756418201194305696854373598732805760491979176801577597224048566232138740267253872187898103843072021343001748818461922549398275202055169146544237581019142042149554818410617937585971826151387854365512151317025207299887701054189836161355465141790911208581758053113224805830111391392872737802596657323773751974543738714280520903322016979145088488973574127308921611899137325474895769443284492062502511723981315456407555393647864084209436369759579803969734042694341593265059939414874841362895089770182650766294141461880118579212369683563674373727432906773172957359143140486950421469896879769374028290069937906539538982423894812231959657057579743354692484386761425918432371527533060762755485233765735923051401015720719548167919487763570112558341764753803312193266684402554030903322193670825619046867526412177931186753752709124972673797232234365509340184480307140035643942146787435810580555608682860932785006175204203342479606211592706599799818806389358738056918454657675447719498540873219349767713519651493628919358430051880725490613932987576363885187717447743344974961835806229413196989837017719658571459539603134954982557954045315876538414833551732034738956545591028033289822117441939128035618945714099545855220955914543161585113134632685131648791669988952369722521865969531187502086789264124980287367405085905056814798602805664062335870306660678763132203529537313588194853563367926682488696983657983110168650963294918541620859323071030834280965876085398528688980418004673500981109885610250442121689931287953243946196566837420018066711060161056300480705883625598281055873789886315245552680807261616048116749416747534530401323139476636334116904109219002625050036776445077870377118179870094641207775030994732098381401250976651953742389590781037508152461483470309119275870818984623269389140931102595712007063193486335322628118178329622921461153445358497011562106993657110476263827698992894149585117438143282823941542947682153871322737007345631584912589064351310382557200936174995570233481257198382539453687039786413315450063245678835865174547883905486146892765428773229389029521260089787006113035922170504610036314080715010637392923891053916778427090734076677142643866800448586624811751189081108552520217544280977628756415237968389665352066033981857373424448219121734640112974277499324169081286871851463484686328934518945487425803163640087485304305296608554189194289561935645422120460315043608736786821772461361751042870381964979424295958548518153131863364166024089438920800159332268702343748082996454084863693359186697428122652866072324968338570542625052326078577406787937756021549997210019345028354313687908769740644438465577436644326939262212882173459669154845756558738091785336400294643031416701606766294583567592582548670288331612177892905363007318977912357826821789687849371698235378359781762187304919601382053572314179599171008457511119014922104715341560311251065970810088998474401392642191681742543685453654379884481760669473792532034979802907199095343253531541798637151030068861324294900776907906807379469551530939886159957566588105206002150515867445690784973390990726304494725595572535800316242340221527510689061305911482759630377865992577859315861806193669058083667847808874606986973307647894357049021714044956611302370262360726277495580777473359079527617219367257448039234686376597938065841281954684943613097706199405135978147454076710699616121503034355654571018508453130041031185359740549741102160712154503812394667782242997242427252110635712206822124549243728910056903400723881709892425331772666133972122696671280169299863555353581254708870962542030517682443999887001284070864670345748964600966747775581013431257089431063292356102505294954932443609516390085892757844192295623310550812671663420674940519972103097537927176017385864293112731241582809483563156563634624854382553829476918320488938476443721671464487719047376466858056160298902795229947015887607718732368472201688796237567672672479550863468663384040292090257981574493924637217508695121673877776402637197613660449735407794110688557577631037936225971080585776945094189582937365302510261541523882823998806908951710867002313647290104260788623203591836677490683981340126415285862803297664941469267030939008903067666070559337075584718418660131540910445471999533204047018066418388560735511458380789470448058811128641772266133580599571781397212027388529696369282692547987062008990440852632001712468497904707612208604636959616779317974053195916507382897284876961552952748364817026040848111906370416285115223786105435185069782668553771782810351712368516399225204345590184238689842409243753497178823804597853407135180481230003629827368409803053421817062569386816447221401972252719796911675909211956241596940725134858763581525975525727287223988174439803891515460424827112920498310263208277800218131738794873770042844708395694224730257878219835142497145873302445738556670679590288098447217340617702521310640647245018267164344231819115289745857014001176129525163664330845966789639893187585291594395792461333590295118408105841336683904262484416602181817969912204839137833959801756736291768950451637406373822484354619552426240734983269532635668134454054781702104096277295726438480488083581858585979972831668039906851006061514103535502312349445020545653691772182423060396162000939567367417226848244969863379970948260939238054322311073809650717210686768407716620649354212163942565010892800778515075818913172377294032795295874691335141574412439691589562296081448061521247248078696926592530336714800459801267123690194559769128164452019915028045540288779464945964477497511247121549947222441386093388136580145289892438276409610674753586719534407946020461578313611468814485860973851380207866870177084782787515507431739796412289248442355081650750638904883035377828903412908518209841997630589695063090616832161249984885279432403982091428154202202776702002894227569383873762562807757223941745565425367248780367992792220310598722672148139028327256065306940126319989452195928287987891734150585950980900819395540400586204318692796736864050915110907132662942431549425518023688289766693870321775948952620271994996974243593800117337787578651757926012006979589118679203399972044261199891769590191926645776263623396316022449071194837606134185369560746913284359944467015595821290488576375368801444254088780860034744362632070759854700153060000051203419063479299240965483065675617010008586745834228060788988914473925331077368061838478715290968270000071491759749532140406984839752195731481333131486705794747655793580874149914935749555174593155019295581833307641792639706008377683725248247286558092605893053340807135900722754843575962384525253804804043932990715825042165152419748614477348593980501625573794981269095300685029668691312046408325899756667749596586549207584582882120402700281527850998803895817614786427444788896171712246247520349038268934077089978869839999598193926592492040903796694610745730938384022635278239129597349193777113927384767105946448978158654890081031292378240955255375736032965000889831017240174026319054269643358648626888620913639338591885618212256293769859220959451569023514573513367900871591499852018763302432689157443261859271171128407542287398543731936530350303327360984536402471986251687557476055884769980783376569840930565796532358961301951544940170453015369659644203605195689382724911154353608560144236366906227299101467807154258563862194506987490261960687811212544819595658034680290285176916833947187136424759743930742124812443336644397293775274158381557429168087414736218270140453366694714347339594676241755268872881360897003616739494851015554914393991856760467623875918020810283781586430278837989317160812217505676517523578120951977010685959446886508094392957634758041259862355860758544038334204180556215803899509504107638456734580047571029131088044976799975424550920914728737931495427206411097441433382493593476541854741493479334022276390362047935709860060966852504096564666443789244792749179134381196687912458904827979590884060888668765494002066987334485815370046452802195374472527465119346046987390266891353281565474373448813647363615699210271816510864964535231418982840733416703757571952129306635517481093488745064912957495821209086535079100359224023575346868137705862160772911422349521095970669921544818398118069639914125805186563282733685908483583761517971040818711209288912924747067028452405032200591474385951874891696903722454079254327014915932787296999560639123004849663333562191590991484720158897378138127069729952606640810501089397239460733436261042795711406231041932944466428659196165139007678992226023554685258775709758397061988733329501017975555265755220519044552279378851038701267972055627168598649455507449953944042983479351648240022305896405260586269250616781006749563840684088644252544655163914571705227002862937189629957723501171346535270209426071892078142411142140302962530170282284555035522235720498123313657749875160392005113660067679323574692889967583165364480875010670440969872217352002591085337600585810360106321585772812897945836655731486185518479344163510651898848095998550987787405227882170919845422323883332988807029939504548215698996583197452731981673150681852721464473104567727465984627122630730600643254802963590650080698193276573349249273164707690093570780598844888322869232893528045846596948280492936772571156838516514391019421475614942697732249618047659425661205654861663983408872274464704338190865072282922736834259450076779929289972922864482101052196679294957406086421195985927094961905663146665896249190112239539396613406648897684001380372105954541033829784807767187334282184693844107852477299731529158958817265681975211054987329523802787544124464922331627083882266788770216956845728248213910108421999572955461055412517237004988890125146331847168655532607550559080488817793648586911092869847986641453555122716976736329317000361132398754231813145351981317705571817065781358456576503670407317921421738551952858977935849500442536329337136847624090892224834301877000820431981844944359239228665660631327872690016445683930915937632099168152847026135709343610947546567396820307729398848247431130186022807544245235828161220746793764159156336783349609516760174940380059741497173725234051984388477141121511136583317793021167351654969041834431293846490402164577474628181802281385620959435415706013395689028633889699820880710568177415429720392110827538781942341481990628657557940615641158825486784402676578135029461356099968978625517987558627691680511154203151567971539121513505343307211872853152478939743811417456552437026762154085711936794428126354594278266084758404522638151835156293960585749870577399473000203763852101260616516244358352209251467904035400705204991397209027811472325498343393966592073928519814330898504602594064122898208119928207203328740953593524644098729656682436523054496228381329319007702987498138318982219718690619116741245731782359931908018565987237237432253917420460821158332110607561610901173946411935535073095406174196629807151330778597699043265814517351092041294174815241011262000167405228112172452763605618954471341821221386225211344553675693022559508371208877250857409497517809568394328821045363394939103339167741924684265046871057680729365909600299839078067578955723519825639423822323694258199814167317659193507092291004350297201036836691028564641769710726970991869598864341505980530576873319272333684396009943097795550651807049816029791738354051226651271464575755376090652540550565906430955690656277698844161313867883213000349830634570380215242804149597365743906495963180847087488162077282381125365485315937800264305616651342465097327394093311993947140168855229892391054691827074642755541961126612409302358191771053678030111862431423616422490478106672212417100038959746064087643189028817410391383498435645518724889206404173956461142412801844347183552346170078078743135742295562119857178117680316032051604193883348094753505552616013978872572706702305100664855928340463207388531385696410453616540471857791707917470164605345730084302889479743110607368421739367729094763102276563979484223719685760118318475040635431186101166825316754296545280266379914243957733831012961489854672999583679428627972596926318646394865225569427581715626434307091369240790793008660555418619594519491040760930457926318527294368144097662028205348776261886471745400958490132555514232634262731851979044393731189947062265622028933629796923851575011775021003104554126583238977531000015313004248814788480868897521730030617875883553119789365833531443303721082450430121428148421630787327420436917301786545977099429214256045460609529205701201858151047650999651087021630719516754362655555562175826240771264630471547377070294972583341999419956535857156472165373715716329077932138694984836668960105998054460279006389092070786769674505618382512057566684180964590664155025186423213724293216083789033245571807194958424095602834921163770666317533188733813951596897612155409950199365591808642741895426750041409479695122170974387826066260150237114999897725899227303410830618674742497444817406670292221431552859154246692045970671952694086860134439692423961122879897850815598680099679231623418027435338608004540168652576482052307948111227996102768950585111750760365018015715914811596499913978732737900198454139623867284554225194782818962638901968375125497954790830833157339085919984607073869016677918411434507275352153142275581735484608019799305291032778799082928795038884603484927583361970958453863851871174357228679094832480114813045042956894324808571518448733156065261561283642151412560311793942722913790361727367063824989820675199821702606760452973461332279429206093886993436556829063380640916921950971622260162474548216238493221149398362447389801121951606417718601407328551275871439047887712613090853841088805787770145193938048627053568192088921414820635412837874090432685588905235010762797519574464044534532644001587930660846429327735358553887393911770409814553766347382044694275587278932074463872329645182687385990181174438599216021370828596566430993248263770816335076067857403190021269900246470058736172135395505449941670461331043536494441746028424122261366521606485862528604683940433271491926902455147523913048259910944358620694770788690556331728436880664510247051479299330190920938301121006213851887182471852323022481657826299789508758448876848137979659396464174583401331770832653642076059325413177776189738007259419887557859753417336412383352643191271065324776229860963237853709773981304957297834851707658941583251338260684429598386172880686643713276962387837299718246372657095553262686351614409829449684793707796143836019558569996468580732471934357611421558222500063127697829368560159055933065630364610305964455296113088769891783014636161892454748692861289000564496570759009829141495718529190016438762932149544149879571974040860797718031728848539013592431211017452138726915867600229092145412540233736577294062508455832677953263150950191726818424713244605169667533667483829638118144345957142871081218116576342170432517334166150791495014039333921010470400916838609221548754700415027937067855197334265046058600239763667400917453903176104715733883090955381809819759578147403746946452403061822950986667347805774139824632115442677103374685141665977284776172513566915836911888153912230401835204327946022069096580295652966778227592405663096782534693226073730459698492348446918001391196886567952803931971241000552595016857916640611059562501197869718822722050215106832881422896224049523805530164849693669793786330647835904598211690932456582717263394938472849964953701598951632112848546716711299524250350940863935047398901960081063307229044615057871174097794910841740283555005683261236104282061522899126338511673703231212943489171986665299142580570946526875749240765093407313805581443837117090172155572434956605565795531929307147526093284894728828793788506521925555756194364256545267823422580278522828436093521251002697041642784787029594649292589030785976617152191072521554630815898081018778812289294319758611273681369609571704859866697029325723580265674743796947973439784057373716795580117621926203261351241961553799100316988511148005864489473926558934908022983966283315089373211562621768856201301363995443173547127608546605335314736056654236555242180804536263749053621442560376185210696613900714204123310715266352137913119569044894160366227082249144977914124358449905698413745699052204269870179611282431675338974462615018050839268055901446216187326945528199855725883768352910000087538130710710130551903020977575591952343720932245719437746833130593997775384201248555802908924086390931121966630556344363487304199263615364125281521364090629068856359447227952036914328245135371734218441237864408138156825436041950146539978812756933994702409080688782281601594884287213253075401762953115538583493642523208110294025053791484449060559899882504064137177103488008765636680379141090003418988734918392125182012332842679499284389819033371989293357879748380121587022719811888363134509395137017000952028771227975831758908161625670087090071929155504538469455137725469528401607006032410601530788163294588861459946536106734302337741025080898735180975065158514448266696840263695351887824101267687239470327368550414564828127373914466683423821430289402308514946873581579936559368394764734905594787808504918742025514129334897013638764175123437552982755478255604498836141248562144044206474279248476462360489135084261845871161973700425434037359851356621432473350669522425501213244711364987959304100643044370473472737691395003403439262476164550200476536415320094508919936348741475742553361967703620052634773270828105631795744007169586411238150890991680212047351826620294109165013900852709089012512376125089779548426644260838432038195389260734734952969039548322890306347603370178531717468211659587715787969735788740179866244003292496209866512028888756992156968724441025166442773991314809218598937241328804130585401528246371560084275065520760941541232559381016341370557040600825248128354789243694511849946731679062396180715108226373433387291773254256706712494825352628984588358245753508124466492056878948076981250039030126623082529360251385288995822080268119267616910233052336711499526353314823436553585023819775391676142171620922247333562875906007845097628079022234791942899321439951287826623102926426256199444731400487249158390433685575527960753122286694558255154560796781910515159080795133819301928266448524287275287587496957900504436486880408136919688962809793145940219627295131043650518379193599138104300947334592259005090773120046356134184283950159129281691660519427053237357291903164753951409038469854426881368316392719783301513136703969741493982665405774951612544906263434736071264521712829064473601882927343746577358326045417558982882623538024494187802661591526256644169420269926913494648951045823623182521054673785883723382497441564169148296247139091228504760553518247266568694609753393000136060563181872484908083304605478197418488889390375455681030299412098188460689163322020672621825359642911295943385370554218214656225294580568941293536549763542651270360896350043515712033844602297607430918617684120172451825645316157300194075338264425899703137997154078452575451526204236188299126068706601603552296110237940677309557194998238844826570684691854445516736191594442164871181124785611039757086745244955454501794424653123829776168610840169672638542638928613302319763016693134840292335375371704630055826839573191068442121069106745927255197054681903200319678331860914542023573777321972385314891577789521194602688502121751217267917910773148752577192591312814853113041480895575251265220347565420744155502409355063217834118839084207458361089025400786967450261958706942561162168536220463746349988124346568784955065608892987626549305047696201561093254213147631264682574766903193464009386603242430913840651361527289559200111827784797191817039316781299769257354133918378994610705070999118864680265016807476174862774372990987637931767080503570974093401589073703759361069808020593333703546875212261494368544565261774567489097064200500884466609219347266999619890363109097206263175331022056279559982173226857108511680041801496631234308414066510907828405215138032593058676172197286384932866689739392849622922584414783260221564081178580944963318897804038901832762937003800617840234624247172042875497508002377706447305650905354790296816003457856146826858051974918122851502016499775133159668396684537728966336452431332683576835990702637756025786780640495734561197908173039793364427886706538667290085195045779537727802836757049938336333229033090595286940208114026394933222748649990957289575268250324916704030914743174491892666982616458944305532625497211041718249631361660496828499442536976678181952197949160187651105701935282764595572840756689802497498690143128173963783713201768936321118400116320130794251451886202072764549628489100911291522305968292343498326371597091352060110314584879319927009593854877637664578074638288411051379409923363249478254278639336946634329255597554692313220344154933100579126407706097258506172226444615247629933297211762974905212653697578061724182294610241558551142458140080557959291421169194558299340386035849773729241052796005602009458431505720277788435565245728109828250040349983659525319885388982051628629701599185712791888204025981240072795438802679186798126810377665451091865684243998458141399410123492776467395347911299517013748148918059414959668693392051670518417534989612831132644798432281646095550241277245104283106399437235048667038405483654531658152904669621334157472760717497323309559276534642478766119974331038078101171806785230753051982855316372592697395459090799943415610157051620029793856178546437823592571044515925473904756179156540259875134671537892729542010631733747387893638970218188383275849140778043803607614492849591875143583671074772518431411618821829227736493562667157573256719365053503711288151182425855546129310081985368904893192857725015693181910976565256219219117878141426751053374415739043344475582436721181474322606614740682536924748808982826006122289055153879749888802546335033901871735186446894916890109138869463367935763472323401181067298907664789530460283693766773147859415897662584581395579706364849752684538523909328471376452644381628811566481508080634944733394254613756697084721054857471533573478387098625631489454419073407090199988934450459410497810235322453480565038393579135811518607879755148982723212921924700692175177160717304373995683028585504202559677098932097993510156429215945904333180458275790383095947316233981726698195518495798810099353582654477755897722747211363590337068729055529542852549477458694467182423089042765887174227217147308572620953185908611232474837161618788356135831514740796230591785234822156198713316533357875919080115942417206670442755695289414976485233368421006853961615737869687482326819112355823543518861080012625926535327923237417413780000851643996022749038261227624695674407111668085287265956805291774708084746603502688965414472212468137468020427032767946775983622686489226671015594534316498217990457621276407372276702123180289153897738413107694846293517205579734935843366746002755038548562853867877630068531841060055926259858454678661863652686617718519714997391011668087262748867996939165927726796533005995362972486377765610681866732211481347533983035997949047719939924512538698981691000449988592700847878418977537893313221011210833948812122569472242100429270200992199774127669428449421132490439625655247923422650702848407607777667219827833912029174445851575750423993322279000900877013768828992772599804791163498905089873689294181984630767661281147335469269559463888692706724002513636819757946204864571281242793333227764061449392558633955457487103781067634900465432298493256590357480513362391344473890851435047149772163901369016772121653114512779091185742204642051281737072521184331554365691470677561000482662597732430246681992237265820819874670352185689345808641594703406829784892251706356562536233366098200509179789938231897758131278044424888739647662144500530492682211515985626898784729925379564626895730357049343436638545339775292189315515212262685593617452182766989558404542290160643784270756479669264657875178504862310448951306730787654753564271223658055744782240396486675278669226796523709351837089414981619336934717773563179567697549962764571590692832186942113707417226878005846592337804968008708974407965874070006330365418211041928201355120627762497830676993743972889546165350451153201680759232367361269964115199404776130255653925479874410942207100257386650334562943819140188516857502651836178795279096384380993792546645008413837745568466757645111778780005000749494655741699318107752573301348778458748847270750971793574641955456078272265811611494216849119090171682488037998369511673412744925439046715983563609887003427256048825702452512769748274040854874433863137828056253949172849476083887849998383013311703770272068235039924080724488661208095880832260150491943820457582941522181197414666111578721039981604477408241337005640098354940481111853292176043812994235352030631608886162636990422195297211579790332005270330817589376689483809048644041707759219716496985650716614594369290055010509473575958431110407928659101204131533340721397893292419087181980185389396968397813488330288679427837237355481155199670202616844069596132421154519188070309107418890158052295222923559804811261964105621326132196614269843919066400419666058201646394917608243801850821535219921646950507348327416708829447734856389594046432478969663146279115804282181503965962798357832517416541000928828263571113690702098324370184099345027611826460359677465339328222343867743558190246509677718215413355715073184542995765052462144539408664566143019708879823131648259422289784309301894887243217148455772696780531153751774548596040017929219560392289425480426836266834894888289624400821859392882898867506026955760953480779521089799631875183238017530099471959280033762346222773234628901037470894785828249762287381186894346289253272831930504254644445188732033497098846981539098032700731354962062854822846780154543292825236578916999117774157113207991270975834781281686623637519686865570498410776320575507833919410594021872683582544143694480208027064554034524548790849778152614895085451775171047889515718799040030664731744005570956402055029045944800998342027555492346882957335162582221605948294925676198176008163206308221617240206940580980284305197336420041952453377276587886439803274154570856625133275888598622934315660379290537977449962349484599719431274912698054516813835082309252264509035765816624277198271224663756451474879412818642230190884716344164619965669534129254988717140704020002546380602863540004908946554920142205578333904170493599746081065361564717438036495597357131008943999322469251964754967569376473712507533351584949595854022763507744803992691677542210806258205898413970991358532020220941170323143381683734111994437487315118362236021270072471569847973293334347751398031883806507661028380983594045428804745376528327479213486205206648229804612221042409927322668153669249887872154672096229123326679941183216833916992786845051647011658054914592072502225001201054054447376629891577605481563903808376773416585350608711470792336450813081091217452136026748549221283797834001799449298239736299790279608054873003743493859611819100374541003090533635822449257841170842365747609798293366563874668172108235986154722661516827955997238506385032751051909790359735634785425757815208954903333955911382290244029345896919241969760024419429105201917961306359020983067568316830595090062398738612793053178215549957677077960377480644684224543307031358691101143830517263203134607917057065679463918604696143722452469349633303554982559982568436483339250913154803896219866212622235326553175301559786499833621417039075327107437537657255610775840832936789401750541150427383901407834136228616277738058626899347574458639816667962313476165104653314016563900046771260036118646312602939418772452905313194202952731620073959420716075039516752353638722529161634202123286657227546387378620082360341133755018194416439650306791794491748794735032855756145325010264557071149277197187146174285940503912036711294506526245745263459564503971961703632070505041706470254592554405472941730313116661966528215582130749128604096168738829143680484752780181411248820358424431946232342287766127182524344785588269162962801000625612987710086893761325722924995448259123676684037232107439314639196716231978550917264359748405196389994459547128774091022787566043950197377453407173297647730214287771414372302356086119334277705595433537146765698621024426954420939638918042389989033753669905176606553029719655695856814011866680192943850288579881322579998703852195630389333468144032125024170665410299224816653242269590845382739554346638167235607056799156338956857304042572187255095595793426525358130153728973708545510473367028737491117119940659886176726110235453632232752410150729810253184731096712351711804561926312490751723899671390433394446572992181897498195291615305388375864114595951143749568249097329654899136400318842162786551039016030106196798639575596287636373382613280917833131008320567410041595488205883905743377580226297550798921391172772741874985236944850908853792598917117865834367616652883728323898671984586946073889350064518959531282051530164434248412360065753822690987978760574569605415787876246678260078050333107212603601612696970119909342311826846598663064463495292072769242962314334443070498072743376905255578357449272037417886676069380129150260842348443453728351068292430191314358911223348969198419705683127022625348549447202886672390974931433644785680675102622763886158679463378086944892486275809182083482586875532563550616314166737871346646340317647958383227379476016373174841809541373422130776341688800473300128748714934805809580793271977821026248985328447345757109177132159819650397525969913924670042410895163961133573330942504112246223002944860128957707285896678741189050454004721028236052887089330822410419350259329345798433229975133262885338681815148501714581910221414211177136886530951784416987654626386809061093511021386782884822528832620221067705175226383795425273624267404175479180243750452209553838289778295284506547842300755247699113785404523311049193383417098992000098047442052434919908307534233366472040064127645538479239695138816752494814610897110027173670618723912201221994773038279404765052815596008301271402337216330782726429687359216778246772068192299629025836760865733036647370753936863448303371588795114567721594126680103282980127516978716143085115234463468872386681677036552317327770908032236540076917808321730420510869055543667169292144014408923534916442593514346546283657678175468330512319926419587388995057512215757982741490390874034008662445987911636743967964076767894590120625482537957537888050808831765691644906204403730807487300941016961423684781456083796190943900041888749516906729553420485570221855949172766285305612125309848925515269856442325626675645959529089123032040292505148018628686315379726503344710720797796791241634490200585894791120072701975719331845413814954238912392734564941047938534347645360368731090431140642988709314606157504464662900664040854696868315818144777923311041816821086237671704367731544990584936605294483694972398010851435724980354195048141055211181668622543584586726045168612847165290053432817332743968638780718381339107095281171530536604382000300671581965845671489427857427260819038432810850475304518466839409100197241376495114325063898487777902276173229446643456202527368424828671524132346754105503022127606694386079174438868556463251748314762117004210990611562136752993610115501429289970675419743593000938968681713343687030980483802828186174448936016996465759077232825069352454060566172747992244734707971197662592529024542039067892982220317229060638278379817176444634028287049805072549380175275394294142300348011358467475253380728388795042405427653559308485103877846964968766228843791612569786541348427640674918376611167326432247701790785546692860099198944693669975719194822422231048065054082865518821667210993091791057401493868665053536879642609350544689496514525640931236982518166084312758647117548398183257516382963113750218032709532563420157179598200529808304782920514469845744755772766088791584144782645543035682153139404386384092773108993086030973898383854020794961017621361569529889885679880812358990103354332683926512403501119983033898112419502426947665364876106711293584674696485279176578919711921639967353246253583585331745416431492750076001768087983263102075693797175357533882105525233046225271679785169369657690051377764935557218517679160119926683791590147057295773125163090798917637757960871716988302861935927783226523365540272048482230522221400371810198880854254964669286092295598226961962033567161574147468789915142639167853416155997966358868446193954398450309141365065610645230399083417812535810747240111910051245047400914131527251819391879854064938499495898129701693138907756706919982198518710826271203701890775692184060381963941401108723670289433399832997803845024563753922748836420198356082733582691276472356451460401685085656881048644497518484809539322022382492337237716192443938943356599595589766205043210537176315539280564050338789371711211250792783300680048897567642911624575934327676316247485502147519415964097815664637042887666941688401307626614995601273192846321214269697573985855230237983230585064807270625362326883318102220951616623959480656347635738731526752186424456152383657550453501094938382793617787534464595430162836411523401827179553270851697917601771630596108079311334115990620533173277173042471314765273441690177865030522259433634231958722906841558902643367032534086788738015474466635156949793276171340402227538962577205464399080005139768986857136263859583313553705302545833858088198595474634102058646774249562757263770750003720628880349761801090432703514354224734896291993392152217208796218334446135028811291743177654626123511462834219318917374650647199923410826064642324617631126959649072545430481723753232542367177664216865420453683913523584616953592181296275762172266142605789044074158683497688114892845715506352051516815083518167438070994619827536653312607241808645395215755737299967544654197968259702802988519674069545179711242551863376862936659647309313951431897263716079154544928765893180811329654650442855352638818458138198154178435821658696813941999529910296171515677584665362440586350348494219621280711547418724409782270007233487730710882229082503372111174790633497277665340992011293641374610615724183587298827908411962185149309823550674249024921637516768680512078485449610696408539389682022163661440498718459583576735984371979345367963976378381425854856370986796068300898842698426558322834297996667124744105698243214356574966258645866618268251277318328530832449727410808985536036715630290341352022078735523624659075055424427768192556720268024617875415889434400962390290594518261282130087723965380507830905512272212448885856484809556408950421811764668873356523845397348581449577683426792449109750578326311060847375553058867118386154883695441638830720244588172975222402683674531178797281731527797807242753542032467836506944950214001537911531430086618894205640116616901319346661565180423365100670972438822272110725187950826730058244176532810291746466735357264371809816535567770637838886940405880838016800427171286593109054955956408395544679606388123917219216891556588179763741668976598291083103996319754330119515442987879411418361393652141832410292132523913764539186836734923545972802257243266024279283052042792459036131712570977460423397421417584843209999927060215213336231234758481023762342115297628708364089560584778792119368101151271030619967182227533693840216478267598892251483260356079818918574762923947687189042584302486616270035083276139757340223531854980351643547151652725193073661323157309742031332170449764264166214804947443148988603050533361543349731062250931628055297717032596398626352634564603441070509517678205854856228680980424309115827366870562214510347891532035480730503679825794366134991110415873064743034262374688120160029452212550061122431575948737031030178498277382560967404215462245033455601443275909786782910569461669084978973784234814781069818969342221664397182367565933902970053531838711861294621315645616366528629715208881027298301397550381737502455169071257829928552668458480320384531823928120863919290951890489054531088995241512801112239802649982695206285561874564634340259912758784741186763075641779098097201510442119979701142378304920905485951125328942331548907760090375664547657794362727230111823417609489807559416870546183023176750671146715147472728539888274904682006451128880598211474532608117032383622192535331883078798803554950407144772898349691089779766647334387606996077936116538527164771549177206347504357696849873793878417994497933421676972190412289578494201410901351147768286351109087746915155286126523040173143556700707093402487879029207894901954724032142620176155661229095733639958126698338946742584835780811524243776882537049884897942764658695935131561057993965120554783337396138549928365758803497938471288754792718705252487411170676752256306885660001834704970666581597721599206975977737120666024619987532862481751625073324033863808967958582843257343262086851856158757917853068481217048093204070998737322850834657454844796952445256437187637199405509985131140692763207519294085779218482008231670199585205709590437448855149580983903880046389559453029711364382656063758284521257873655605493746072859771253782003218042856254733400916310239688601126501583972298425040936561876042694871637153073210101584465069855755469600058455654356236966713854180563998385690964754489244639484807578759767211085840906288536868346277931100422061643525247525146142948563860572219283189698556000451104451558702863306593998526619675416005334275164040019352142647094045090441340695815946413380932522446042879722584716109653543308851719057493926270088005757778370894078850377524032614073226385116966475552611714445013780949944654257955921372061949712368961218311033415477203430753399504997109724692630962152933940080158142027437874430602678039555999211741392294308481703737896326263704778712617444628224426361896262090943089022710435379780963878905795530907359866908544812321509964294407816891142213085276039349075622556369776115361836976057293064165647080420776412573515267399632738461972738128516992621617446655125266019345708666065312426830965200919212326881887404697679897752823736548345089536427596595374450865376075198334365096473388047402326914052049666359725752904256268850943083476021387004001550609344149749619251084474319342626947025126885711106348244317752077867617985081756205458757245484347068069589945440464592994538886094027842067574093402793664789484297082858295264433256721498830826742560733290166405354421486481677556519342956958554901532660293675166006089588725604691502144438284907791541241749306642104570143375134546928092121029953508089378767411928199208881713525144702991438493565239206056574224938577711728939362312193376840277507253261540081082518297143788405435775973481081636263273374739205415604631719713718866998965341948346363838859392108185749516431714863938229382661058092979764190444090889144382729714872744942682530985872992458506541747259993804910196001506044025653253200875848834688114128823700472115198773557500719202923521610137645731709350774731302662888403462252375138062418565430790306557115801152167833042633403804394928723828473591743046009617184007428535315694792434750599189530074485112156614620994521373489818967524879776032781727421649338704377445496276816444450838244227898428123075456636095601807695204073504834548030364767729693258248915020897339677263348240415814025929459881357693853077379476696951595349996243969312312816559832564583745123382777631751821692442864121023424271009030567225923704110709224841727991591981225638270459932905135028548832673391557434937061481309811480289475846966408983854730223477270351501072430063039990106154234680740903289176258387065960537931717902312490709773958063616238806800513192948385016971836568906600253782506208005913821054108921863669974971343470158105423345256363966460486522960521720731479795527840731649550464277568987455961216897358719691560961700803383055923121351770852969451251790694991863911653849157324953538760407671051118557669967877683722107317669042252434125746754066250767976474275597805951268716077325910337050421784732913680893091599473997676641913653723636749432296808047672044062680173256650394026393506709456122502554331258581127516847836880294511697449731367647161296868426921905360447391127320188717450332772452707055746158382739206710359192915214790045656844869224564232923265901593720975304657206726601671875085155339091186106075205122965897228790287101995257082485793221049770702309705491614864984114224653370974800037046352070947801122569275743771279805231214090325280421361728588543386490653411083761937425373149497537667072086041131779938293354450266784081937020644140949892248231967061116323492756933227473082498771606131077336255058226793820428309391599792134380545721272351307483587123431778120396109509093046421341412376029083874278553970000046460781221161908020750869258314049499567971025799050340115231357577818282191034090040060326635650454347214271019519824948387477045161136500733966563485841041045619078793647360116144219537706086682778021833103951930327380301512669883450046111754679358071105155810199171642493689759004948576576582944054303759719234264398488851260016263308067314143866438834995687982003506703253721837155652862147408413283445988162088971204132220875219997833663924034991775857284796595625531783464792228835288667047486894271134124981364900907332607643988806698605903004847353284328065350841873820301132796252269847719696552451048429845186370488025091341013272774192598168761565718686725446609986960558226853677857156457912786213681068362014544398666890470517041151330424447371380087734052186001793887734170850538225935802141695714657065159997857197614672937289712939783267913051471025856205905024924757450671677772093064663569320502260083616377346676177432611733987826405605566517338316897419907723338690360838171946669281160361887717753755114147992655959240305332373570250919629703796282079430540849446439369487538289357962781421769506110416088878889943344848105502035130982680244489831057801052647958989906993098476007357638373796054759925708659858511375594564983710849594676490756857091982813229189474727744094663386600327632503491394352623842468643558170618340619392533440197130036442525899673746334046517699306517287902324333648498376351302267178172839200914162169459325382029003879631383624119091545393746466373214914436781530215737927326494796219634530367478088196288713916270487818774359197351832249502833508464598529847125504279889732344750541322053924589420054554948915517407566184334791845710546872086015135274944651169931784043464578067899035281433557369185222790329975790245400576626293366748189585427162419390216704913641656250561038591558548955859010541332658924970592573462200163053759117437362898641332518792589409384675226167213225712410166137181148230566615474631086089429325580040093907815947464237721340541685777243338901446068164611692378931370279112218993090762413980246979400340605078056060718131755374544735337309349054576398827074868587995584893969875264669534713662389044934577262352018007703620427958979099667313098339678368773936145079898373081819055063291532293985839404098016279971840849233599475263937545950526728281643210379735996639509251073178447726768439271864596513174671337351512014746052047289269147726977172598909181148038230231117617749523984114570797342282786695999894404699812052779144465997915881545166221887528019406197757144606507987429716495452259608479930731419705303499776840078335235390620717910324755692495262075752727523062631751778606298311409981719858532618235387174611307362670440544631822255374290567924006247186450338923416187337507370984666711997109828200909874576821216614096922662629107204192260837888451555820064069681879307159073293378897322531152242435861574131150696757546702318251860403581821892138607845439356878988722621625895705422765494521931658740316998417950846947579429897133159019576445677990411338558528367011003816206106761564462672006228480650530405883165560654852734685440346340065004736442857923462914478599503682389910868062276850493561840053732268607867942934620830869337503198667090466529946476435870131151841283905179898359741755759480267760066243858900811453218598962369776596217503593115630901465653181692709063926422105065729268540491684773251359197691611912998475314192376112282728236850570027095015096858907211920235941331561499906428887016824129062348491111140715839741209441393946502064764405723499702851584146501348280220464435281875239539787303926924287405033732906808250070643928064254340992072711108118310174456851718520999570395077677950453653657927881812997204988183220352713042361844128492524485918489954442538821579731290470869339882715229593347246372032726284318234922034798702464011519663723460809638865432315471923063680835218388644571085116111904542183115503105075152017206605449358132886695477141142194342186736621236792422235229240778875515713876549041682593663109918471888821068041147882605267636073453696049963261360631378658415232273795921309707157115617073507452829430795284749490099395938988531774188438639588885339588845918089329039832599352381786464123008398008409285738821147339065153271429233192751935964695992908373932815400483129151989943946467557487627970814536777056795938730234961650266946572360494153120801033314715035000901814342361115545115464320839084247201078536769405452766589609415114927760273520700768410248242153507783547383819124263641797957179894041805240966875982048724371865346715905529462015713508711756234895848583608937225256264227840319062894542533000564621134241469298262772130186069278614376491279147994293995513622500503831268672691695981661758984299620657883272097839970456268085389544906417967135324129792835403216318445646531021909348489222384756894325978917083536566475771951285828414892969669444741881893664319816898616531756304110614186053427243696459501190033898575219945834150274919828589301870196058134787406974153050444215461767473389590455053755718318980861793096460467747242133058544470133684883787182677763617897506615089538088088357489015967587526770469904325123289081987835195282423600388638289549302004044506443709148468766278171763095030894933905089853499395920723731402671168021630483924378330688419037410611079350659546528084497731075241963075615095212892847765325709792366945246373973277511218734260582559919926421654224373821710428444139319031681339387113439998638742997511452398714260535972039669290357757857223568980494308174617248438811303291277648570871262934254703107844049981759171080566183547797616728174112182004906627768199155837263091343821404709529986142050115575596044958880461024435947706361484775226942279913169215853860488390815281396199501604098772666649691647652022710769254693479994480532635329617790936404216775368744158913167230799672837034231626181243211704542220556419770949259351548678811014830217521538669721144431784817080520422613043691091294853619662935243248266580613565568169371186427003411081458957083717552223099864668145402854770500785438851871649433001660460043955371053955134018483736618270934294193471285296265262457328985973091488028192565499952898590621855486563823570805655146063129326138818173142771478161673778686953556437754210059267432345958969666918452308894902920172438167021961054904738447706795897894059159709842492763625161969106257747809574464983023924265651911640838183293862692591956645627696754263916683702993194877414799999524112199580118550827165542227417976708803051388131975981403865685791334921213507234244603957055946123206098974552033928239396075663320284734764704758655633077031110851071679876848793366037049721307242938516251570304196388627517203248507713705149189220323940271682467860631810453638509390812358896111342260211590047282824525678551870311618264795799656092780200774867215683610293428528381533575059273155406691817408156141485755076415207996140533955132426348803965546302867669858237892298411428900903788960900477072603261407671838215116267674121386353262059793429664110708133412158931075244865364889173704061088096989188513257909814693423595635434650983710047128711052046498124659104926104346571932138166144330455832098067020843490634189646529899414632241838946623649695725959116408085844444752492185478465983776650621113611209289681250604213966895643616871716519055837180767226510969867012331334888940561525513936205439749011453749751228381523156978847237702457793898903634048757220574537029989144613536118079547882081704244062500817963683074996162648956549616520317069799454378025308990667235105740696909580060626259437940797330578891189351152296778723631424619065805932704888908566699510884444100394324170233795069221636178532341240258882511987498546757754731163743044540371575536159551480574821491010444508297352750945310083116397938629216146898152047801400111966502305607169627706415007803373161437538431381925395746964983850607056810448408103876237456771639299098905350814011981960724160336572089120493452285219472489236183607739590599165834510281126448807717507520046640923635444206522945692438094514557437623009247386785526678704635446312005803080515710048422141951343297226039843165040947622307214946581278087449292471763961637214771806191695226518313634488727400692132634598441478800998142380910803609062851410606438611012507274762022679890936676402101117877194947452511824203498966122409683138199959628636538848705475647667489765027594660933556948759223932282295526552636616223452562020685137670046105706274924222725314230659679881565496843206201657305758761536379295515466208656065822717980418768165395523671709333842178619122354025322615677196442176035665098796530070912008628838109005605047438761851852705583800161252748513118501511659553602034416977368413028970021734677817081594943467982613658725272342602341924723289302607418081993797326175878184523657625735576787164736201925417888438136060845475167961355954028884679540383240685784519163323618002745143788888496904156487319581506722823370213774699982130928886534983861073124287604683727234320226383772367781178551806773308999739942465934008275444694741694312738050695305376285809932675189692631083434794069375662202435905025963288444343812035379770700194460823723134962931587484715006744185713946216472454879744841482529055726937379704930975431048423932603683527711143102504351729113257552412519647184374871010949719958852163597754648751530086288209365343905335180923780379581584858819990030722224653114269250275184541470296599328671037794484305507336402441294790197117304241929473916803744482507486038423433713386518440799518771307044284656183368709713456844900813340291118009891861328770225723397179312137914096039223886162293083592240325419815842716654744015196116622774679947650163643937830537752079987765260896212203533037231640674150140394180091943238780698236433731901437631289764819209925710892887800995171665640440647445422968847909603446175393882073570750143186787620715560416781378084202332282549635362668843964386928188172846938327336735030522626013405470673862952010654162445068509253077266180188889672179436427595974742033085308575144055775229793209261530373456909708597475830737059204770222344324462931646197516928205542632840431696546347561316554199169501919936488018732663880702921651995947520940922574766382784854409711628998099273204310428422230297676831906174157377600425416888108330814234491589984461207631437969131417766029174442007112176055035849068060299613960233966835335287959688993634467447092035877410805122979933680327738123197670827080151974970984003210589990183073770169695503131985818357964402269162153396134837521087541440391094838372550695783524178641104976210673694846854326865604930456599339771968912257856952734822742691233970209208880612383729788402468898334276901259699386877773521015231425765650084208310106342553522376145873265943786858436613075280929606539329571153867021897009265206822286882604275993676485890570882809641367255209179110492418383571711241418527646713691746039453174747660951333096310606215597164038945239880587741714575971042179623630127380043723822898363765347442928612524177829343692767639209313505109919130127964005128557836675674960222520905469174556027811607765732728795115853263790646183753491503249219936956682040630156328519961297710896858404017720522784472688984379737073971450461764901395493664966699849546296394365042550484271566788401920298090376674491428392434721631889181965213436734926727131944427317459470082974034915326854407046205358050285864317527514926971147073854983003263073633471437791541317932382195908834323804788133687974460532618546449461037839459981725642566335761457501220079150447329980544136808463622032867630353937561601860063540413225652910143596929009257888189755157022819104291776415158748228472594129475050362169222911005217838155371507587333991858005115337333630673318148571948720729979682441130196213945430938664537064543634306594910086143367995106097668095246519833097164865997606157714663228191115651307066434187630972757675063083981363013254747833970083330880290937707345814633484388686307557873643597684455230836778435819490193246582501641470022727549462694732959112905346067506795549082186801051784548721410480594554868849086813968766923658995360830402930339898141706728988014196571728620726368188817638389881837729548024918314927784077173222207538883154383559227913760217727268852962333326496633961712018694716463577974035991049371391672165240894912911787363108137854053438102870773473175962417725689954419421414338839554636933582156321708110506482829718528530730787879673865327385712414493116008953452324066919558411411067066870731524627535221397111476915199518383384354551032594995440504942699877557889406787182737460262617246492541936866430295615374323869564967480612049651770413442914228668377566410875656391942789071361057606049262015000744910276526467975863879883176385698867767502251859444572759065520155222040117782259446371070523734470297340474828265294489048881451625915734626688463536078084536344696393767164759257468254494672495971146422029443920393561306555032687419407874987019946934904656607483266375239677241170077397483906054819006340030655705268100938863683196473729531260901843708116447553148272209390801190629870421582052658033797799213380932242939654120103474820688499615596216459063887677645920786168982752314184564654797314391218908157295620052966102240891317019760887761467900071868401050412773619641613592163163646053817038786950473347736989422895201987215984833530914922272941788941302148736249419748692243768726670435010779685627845257185649688047508711325013153059477172158667608489305887622483036115236894078259698064392321595796100330397409178483713430144339799290576953872619135374651925035100794756128266013540506911213464534966398872718217094286152697806049899598180489993349812918081079588145666344111676972131828683246735198559852543359504773482824388768332181370258623761613694773635774557573273125923231645683161914940152321022799965170946031584903324741511174257455095320873267561790292632031062555145642916224950902337264497091439257078481704939631982012631850847215019070037201596164814339158846038469402289951435905079918458073616544937885283955275673889213182968273574766387958569948663844560185505222608178292404917131495302738796418454317757363582631885422138690373899039072059113736303496921547759951041440539858503910785810129093280452333555396485790279659425539807754694798969742693477292196335484578996341923358424399110084469272489029256445246750544480291582306487642463037807482093597089543278242970385318248944948691855449749818242582156633145451053268077103873589422096514043858002594114639727694268253770477685580799826431762370835835967624857158648515209907234006474738758947334943833063387992505228048876237858858974171750175004513078242225725527757223623124840392068051182542801582305007328012194007483769124589305929127196540530476294819257922292214492392258006922842680407050856252760408194135426874088548393252559798003348857551376058747337899269100033062668967895150067844585411795347210198344403244195567197916972019261083661534154918269927358686057406189814167982981773873802449037888253763669010660648526162650885972976964601966614731685644892448907082450046633739312113914649329241176307438439355005206689292629360822090601453385242469032782344973553816894359411004514186488696384228616169155514405198086868536821125973563872109180406844452354811173894854845502702857533727305183638565203931233299869655468435455814300916681418735014781372672289911933801515020344222915240605773387002777489647157439466317442579345522176013705208049002742675619863610361390280277131663948868977379542055963973845784171387694880894574312676435704336741353987024068899739556071596198812091236967201049720101546219196819298567563975366009655045814762809210735431316829345420034799513926369587329122445420695465328274512246120718939684345498113008625628418348833556427211027001905128227105895350161566655141489785925104613896690222996662634624367362414240138761125075563393625982669656613349688198828438162745970031639138261454873492817478351167818973045046932921469787314822634229101306836585092302894588495248393078136957970575748994847340221038576451327031696611358395869279687831820209322662264132937689105961069433069028681404648698018864521067079297506791616944716997788151951171949249142155445940442737307281406612406441739788402819654977318381519332301334588803749518099480873611451800586919963939125832560821387285847336449198222792247590340551150564413666308383633972956699201246640050038304511528102948237858068586256530465786139474868796683937751988984104008129163673136838048955175342669597137166416678573790843110471755094811961874628987515557561165384318888551481181672931273709222455816159186263034413329685606217999114952761984113608062222615986109979853944865854056154940041269881292044839904108759263855730710168926036308778396404499737470646937866140109622939263262743678894415878120198834479826803819037244496530097877584656971509000855905644631843556863984435116123350902935146935530294372877195410176110802768081014398272778792801162266234556459310257767043298332712750076433205090776862166724070731862906703635105161435985401547222301727356398364669693172073681664360617197497537664418586963711858862422809148550126522871917987111053883111123499697080066750784931016762704755785226291565912814339137277430870058097596166154388194024510187529936771436097091173273781482136998457930630710715638059547940125415056115569635739216848223047083081560847566896282687541446462299393352343954267502571811011367735668310629683387285908766614373710311711396242775061261722412049812588353954474271375046396011947487745406972160375593147678033036923122591061430712681461917944159598632401005714291859661012260334324906153215770885422290512450847458798909374998794058666897572917928906458742863172652544748947303936704186500177165586332199226479312096173181726220838173294382804067080860886933727936138905351806715481771778454794879277072480497326832454621295164641242403906591501797492940655329835716209329614641075344200538145012325542904431944903289848588475709850555353233534310400489859897772923219401866301516014293046094022892235366734358454086899773692261137590252293078493966355353406839308729460964300989573407524776541102856356611384781395852508267979350762732556613029917669291485100859149287387673544427550677263038651786059765159228732049952353002256201369417105560615890553379311297166808387849026113281260068276356890285513879898120875719123801366903590971853148169379976223994893237744694627888923738560472878392071089213918731991786674889674024158179227509728821904080819281427993183445549956432165377912264516123435736391871477008672060527784452068268759955300351818013299963202653517051587935526515848230204820012063169262985060414386114824740382618637219913748338688020182521385888679568880537877257596734843544706763415853591346849984852047966288390298148413798471347966277729977451505141899952461518460813301809814001088002858475412492433046745728132193993600850463014521262917134353557808523551540488827041071587003648535883056455270196278204297170226979791348073613287908347680941100054078189835290566578357508099232132251263861424731814272364142541569908521794323922620496057735618236065493299193198671591901052922076571177475476997382871425160040808087638222990314102821746035166201956057824388143418313220782288009249875186484515849670328178419117873002714361545256118331553502166941918064783787119671174783880832503166101133856516518423829358677592027997271985773583624355972959487695555463175106018998658303140721484711728225863619907506482444375386534108383440874624316510580615284747043649040383032888587209681569105079074601492841951734240372763540731528807552535423916855258319642619524597014875497036232878288894774742590021150889404443714868200078799819410417193620257140391558150733868549162367382186958383495401399059344948158757016961104519211526980989704605400040641057524875481453098080699740398828044453502418545780556189171966788309338129275426072091851485154632779079812536623496958714300064766384752691299067912030099570669088443542926600830519171554395325215000727609208587293491166869101805244271819299116322217634633517675871961876445199899889218698510583906291903711295191983284106819230951200918714952543924389547709812267396898553613679378876161793547879554654863066205251037237215780226852766867474922827483288986110704547807282212067927607829977757737826406670408858719585521199229591564378804918118452825042500000384526612659909385280252969317704581485834941929130435041266921707729206023390058184662317156740105530285166711450440578073765897649784981123726521135685443170140039444474060253348749164589795754670721462055310966546667137907054439705159903050405041098029001757147317387591081282550672702014304481090233918056891550732740910510571700586677402542240753580415763952434639223090885527894672399723602637084555739784417927592196002741337065232791944267132894842616357490575812492979121925449207403940321906599062317816926660846425326757027880230126056804411334108482183303288848844296903049055081118892982621047732138160774928704423175829953455364545928511242920176261375568932994597786971423143054588725047210247807187501778607927545608794254120928665654050216565462782259940661618230760036901246137863118476491927632921803016915617410435437462011280409733004776579586700570219076727172923209094697008083376775469836574913493872427865871088639774524022911204425017169499935344600139632380242159980355802493578151153721819991045347393178128098096544770003618322798413169382164930692316526934594667407846928487751086652169609750533189850604050446786001123429724981890581820532502017328187692149301127947190716953418672858670372706546117919607112634984361963842719283124215900520304941409953295343157304497817242941960726035766782054591519929407193972308442786304572208620652217237963100370289452859269383031557401306852235235124463468143920182592777894003275242638921239578179165036914045169228404164103020455272366958876859983141810399091543450370090429110987736080585388647171026669766624831114036158278523034250200218086955744484591096743568892650763306639124563329229303456086564904467024410436189678997360864627464793939833076911277068964645633120137361797796764302960795975817768857918640125061945897925434039122347882521281983312513896907439750145044358251993982070905125504192986940573333478510190221452168017259382510855391138605623051500569626886160331091419515605308757641244246426444418237947115270856345677597700878991312231299623218075079754515663892436115606498593736995905637207117620182758457479690122779288113787208699031391968427635377043586753785811920722701884106595606326706955060637083948769887184521179740190286383818614155844133120509665825051826343560378230011860697014571661822546472731563047624959946997828514556779392284143641523347517679074618670740510923847237115133622669357320303520948734080591192464731728536317492363959525150609389010699584847322066249067831546956252262807761683160970506614153464825247339345104848265553442115895117537297858515819709515850316608237394185228569985229396946790423646411382985332546104798761707017421935019876992603763456597945856769148545314045308782050900917711173407090696740735182432039084344498964197345387237846704590091759469087435880832680191625748817594486966751894801947975138625773031927882207515057838329436056472164299826548535211990451127197132222604266054100195801758535331379076238254137482070187377258830214983087577532080959311503367390232254741090417462880195683894991194345085357837495949328635307271388481913818388246026603370321932176836738815252812133894083825010519953778023283200341395187885275805186561195065480434926007245394783965201625097082999566606084854529296227807571520735672345025622261796966853383358998164976271162888516689282080206815945567692739291371028107292604419757556348345835139837913358231214612821528208740171388435321614106951745014871100208764971685715088747493053398655964054415715608744348899801084741788550582013825959515520839218095543630873409736898793239073380357084986221004075539273658310885610231185452346316516969311377406430292812800914809106005439716899343128316397724046601745829259652325704005447826734044295346638666857768390855773071232382756905648415670538755854025685703721042094268464101313476470525804693773001083507446092626155205102424974981407020252824731631073576610288871795624791066989636230964617619180892280406460939559089771229049659084414967022933650894011508701748630982452828395812818435528150638918236839630366822694710390115754598016193574322944066376852410269247040948279247285117167983282189191683448817722879088842362811582045106207624004810300781419029333857373760678283600206456814450018976022189571186674851624745238182701918609935502454442846028342584526299690167783200128443911617238102999838526727882066720686784969287092321124735661909719327866450185810267067748098738116882549341307829393470552546828130477159514150379470918687614038646178782190991068285948652173397290584945262572102737899135701559779033383202107441792494571459037045427599999754130102495969832588942962294588013938864164518625649014738818854563611042870078368036899347530586173138510676251200262464203387362163392368347158145549180576473343989238517717523327567855656978017412441236950113127952816498836735478152463550113441804983107097437553882535480077666590931626803060131720139048021996591684556553279110391504263206142073451534011061236154531765289338834420710204103105212224757933515430437430623209649551676369829771835616087076163837971005724461353265044757637490299357803393064641475691911544886748069158077049796196305631440705764643025006547141618757023561420861648556793557272075634598725562211339199047978299350153397681136270953288669953629286118256861181007629207402453853525872814891026873593340681638839108151913588995909560165811203770620173248104793886294301624248260376218971165091361432322883913084501422841438159128324224818515242361391942854548217057426138943034684699560683708563628529916877641235719609304436381812566047147280128680563953780494168945542276218420859446593887313413891301664242651730482573074091297513785250478877977269133290818863216115125588876761476620167097388054368978907889591290329783609370846009124210648117255576027537056742287494606723318642475695627327690346184635069366596746538372303405418107526202400885661952831220318441048571588958330024510048171023348107412347492014320175239670742811916753601154898018279118261375376671498065432579595162761277434290389179822993926281187484266078421891759500727872526523555785467028296326206660874716115339784914907377057520336421925395583526897104788858526671681559032413215692485672391643207202419470221462299966996535216456697183016173432858555650639397014214379976141131231622564114239446258977560232571955018133633501460773068422502717539517679471236217829326034451068797739495527710887714815684636552008147583607407272695935178397283815497320137390778571564196275114976587129008585055221994540781262323165088473781724259831258791852777093612302970155929898261671498947075144714477661618655062148437365968582396213131331488768118658921448739952121593367380913555730953571718093806204458581858159534954797420337362405708341895240713404195203061555385710551299055638585151373022617389724131722906420872001302666157821437022158448775784616312269950094095961605828352216327050067999039945061572180422623018528575643149883129196816209536508463563045380621496884795672090546232283167636954387992361032107136254085984092423806077225139296408499786955238689790516048573271743275402422344011871629998911352225005438321455321606399078012939738515966867313540442891488305152137613924028306360382723736762716437488736165430767020124020079605397820381939678687789842087130907754717460747526240032239443756496682429390189863415350263122859810648399505414996274974078161777566958115896524399862743747971273201868164843964665524073077031672629316442812445645388086787652513548367979107881032814631915590451156073447065276413653546861641994998172674319509506134013994372556244799985018331876665734301832448248002139927462902899448689416432048622835489183039508933859687302968185295600405361293036072161759068407526728515958156285615836457105054359919256824084261959621811905189672499458017445528565884088137613313266969694862498804846124165923157545508773596769184558114684433030497906639233174467027510990437877479558898403118931973498964876646480021453813642162923764375077663722518131162027365396711829624010941269493442294085591637569734282084527909362624070368464818081924008117408584948966452783697397257734465382132271591931626014792180966755894803229139404117642460736285506273444283066927327975736697798307622900762175646968358249403562515000101487554506097922133126461870288478590372027951830935303537377109080688167764899575350872838894337121017860390427264200584025349121887966739662184468683101139162316993331573953230879521484573409090186294284862208880919970018551536294377126959109298693159370544212503759452945810007198791644629938165055538689621738935926037832813267944982951939991817920805418404285361844432110984658178516852655020267083109735062700112878478699568005212934973086331840797471696013006829606963185127610648567445875267320372241969823506727446883268243902261756214309572368281424916921692243905475392087051146590884340106415337813406104939895961215188298426199290503995669727697706613630138620206579196865651852683079862198256123705117800264320126058003798914422428292616248601080136897638697811599146278396906564723608358315321655316605920645186481763025877023102243699895882408643275198027351837861885864321139763856101743163746963722678614826554376353314606100710394730381032621823566865210514884516811864561875342089137487706753586205578370105191808366790242949223979712778122891403984690238262877896636951838474010888735664982338717628049876969896416567616245276827128081393544084260478077029949611901814146510351837359852127931037763696236736858541746615045403407551819959426717409907126551601398095772723434972187879251742620927662065631787025637917172660456656168199123908679398205184305167901634025078308689400817736337840420254786972827625216793101320445304683276336122760445586699499079568863979079730905381665381557054862011628474242795778352867248142225339335045545720667356131930650397457964272369178528550563800060663823650981618435634371284388146902489787258219750687329789750085750330236545008872550833965519280422127654002147060672038582210272529568903538550581049321934993989907663885585857056393359019668056152094323349560742441503889677335792342075662051809998641376882406863670165653862593409347274260858782470470498354899575575018548733939235918297847433025733573104197262363742654800172284595240156784500259565936116014740997930092146177239227270258375579967787062303999414336129885527809958367774492435630691319389146188794599341576212171836078678271833666028268391990599785258863089723071034975963948362904049733872254080690349161010214376700017940012633116203305788087242833051246238874745119841975534335379890443705675360549504889569690346551305337133239430828408856020194749709358019314164380329236459653488448412434974220311689685205112547589771271063323187348251729175942999166807265697428295390586729578168832095836540827478885725189936303117145947429995499285172540276331495547837279737739282212370410238029967896924226760713868067687387345740388213474471917665454178944173056721022279305577606847100235717065721174584915734109605489426432175705675028968654098039013349794682427205844735306801277174425541386082967466721677008160987503716037439021243963523982358951931334978483517358102629117823014815151114998560557831285254260208259259591307691446731597613045989609022016630249727366035203806736607843030994945122675199667937422158448146512418540849734625439866898978000014256702012555781584966281000244207160117469383977888093970915822612331352421568233285872546390263455034864691860032982646942957140122556654770239391414793726851793895697685201631605967943841603665440430801843328733065367640850549689189028910918405061142609547195782736530223820849131870798301862436212888026684676478281762345826605794037987732685179006132011965007406697591951082231774511379493450513399970604636188942723368562948485851303346089324880742231393414166307828485240485612470169898812166862030145131440119605192669664072433831211902846269898426539925016877861719674061209818935031033083836626027199337664155005202661646956168726936955727194279897049048927267864219839754611078706191919086900749031764380898852837220233117866681007828265003728883279389075126552802822477297308734820132131683713096338474613279910263019952595607812393474008656692427397960530862179073849313585905584727283906343371998507678844676493050053281996956248339493697754713644952208680296274837835857023691511423298232027337704464352762629552258110265639101318112006515453155545923167630786941149463514001318257103178663620413173863733264354859595462663816011084901619364188386953748128963465996463710391493222694200386273893068478803267256316770054798757843862097583006330111240274375934428763620393116681551811949127555801146529784845419187312535891070247199090238382161260267211728704376747300262765525373739952916622904242690258538470987367044401594770731692553320593252765661050546219957124194676403988610116849934513270844430498178437778852209998388819188279141816258435845897461488573543059554231705291438038110389022763853220054271152010913660582450348363652567092118485778990473787565958745184627453422746124687310511133026851332035535960308187474679422455282988712421952983323341126484389121615738009823028863928134343608001663308018028126713532593585525669267503900996304340843618650831085584136935072864974324366006184317832469227216844458381295837598944488228653601641666138287089938936050113895618780552555496695585283006798568673536654664544148370759481981639749627764458255155864223109108039897115828798796641135917862995124166725475349282308358225279829703741062093255148009585973147226714420303651838936387178920455357531745479464961749645957514200026596677905729175875826139846421383160478437848982969463771612323448078545406771657476645608241727644191560627168671110987164301805288076150681651718863001029054299373813752784471363071938214814315782864208319017675955895986228429848553597886777147803276576608139892027590747068149783355793592136654190927271535842600685863942414059203118214052447476432935462448318143543632034276958149591350539786437293414502573707550754584536549505189793430543648898171625550744261913304347454879192285457233901128909685821678544652567552953766418956494747313143755701084967922318709687933699642332802524869655782251281906821671570278725749683520882870225484450469065385948019006622463370889840204293650629392487912687474370653168265527619594915025966011887556957233991628116063167234720473027215414215869252961716112662517179692279067224576487857447940664353704758707959655459725091573442530583100186734048055617308722136781920551666757733782334127916133456140479461088169435353403142921603368064197787924298200099307386235988439659303569209546512584507848245285428507607265234542710808273065282413501658761025335617518095246381512451295688109564014497679221307922037176617199639814589828543219561091051127755786848588711927837479415687854381359062970921476970410125898073963200134413278105818370570614777102740699492599615187631864532700223449044723122650935550289367198576516984588659155332630879839411298250802539531465424989543548738015280760449664977080514293919022214793782649047443780755627513835912592672899702780776259112850503319579947409286275150880532781659305501051394621045023977681967070237054545052522870751896003252913604777811069429836320953477406808460556396780791126194077903753405783862573759048235067982731568822201622475620202793999594939483392614073412092181997151484503742856278654674765744608808303328132788195332444618280927287686268612220947815049956906539405348327509884857941802348168634710613567747070040077571215189719609404647735221443761969078337654091835965203234537185927231323076710354660331478518035440382143653156509840384699513504803487936847096821197165749621845320849703997601529613129381941356544836553201324098080631958558604495786390821994737989891415573542478480710737918895839826616639789153386554879510194735744913770689117490345452862312962330418730284822989354296585159916695678434041718758360519432165708593373133642744205629010375926726043870078863077965967649912989165278111006147375461001383518325581114524949542144634862524386661529313730818475274473774401505727980067192201645026211458172600180411760433601398811515335064712398659402842556009387532624795101660562694687388399831692812212523973734485497235525680427720384125066001652505898962416171220298704529450973420211514451673298014558538757670875935894993797610422144668793555842079465593694064040209312694988609662788766618495385225450662506549087555888963652433823434404025429856815665245850856013336490906797632703603866496325581001179698253057140513287530542925023323801345863969706808173273290323684386264033383087365187829224810634195406362667131492053301385043446081327020710035258802832373019150206812090585719518098724946473441087189549426999889706050697374175894596789455581326222885383471612541248676715327241579235119407701939751913468830484609251356590322857712375470804046979509900768313777299762144946775888617438320203000246602884435840752142964417578270679907237243034933147359639874856158878551835033035488041444605124038739470789816403832638723626176673229163919663711836747469945307277545717024176274432443955949667329095500865659415697669981435763606054059590235598144872534507803043225063502369477177626577039830767179065768879554413924769452610593120402427496191161443738337070464057783735922884810672108509909385940982149592690236759439590789375446133727377083832423771284076884676159375331269312454917045073740361043861093097508826453912806586730397603487275403336632532603671042032406846582483187408233547160143050473699712762662609910454503443228355414936535766582023391553215728058621561766702283952629647026516234885500697098108664422055244447033066638120939896552712193704446575941565021344208581039988580567226770830945934718123316042660544309332202022021426916765757890741173608779667524115953309179710651421999824115154322775695512493234287309856948373289877363526362418592892531041523646701413397059226311287093651005972990755650645400138498031879822605935869479465065719298280249624048559400679698913946653726326725348778946889267246005437164365261137446323516506300336334511598347586741954379606402636182446636871469477662748768239850989067527119773858957788774425817767895146916813845260205170285228237370822257539451158679270199309678371160503650226188429107256433816606659249875395978680327846021827227244343863636302963604997785715287983264359564449171441929676517023222322016468060460935521508276604447756035411571693197404851377696594163019545596055490806984012014647259263996744365830528979911117390079197018627613888741700202034260388945379831978518756132709834333548221792746093683219322605331835733995281903024264009768465490717450690674721827303270612819079924819287032183542831307094907199493761547897715186252647384585204988930133836776116504064008393173384659809888679622144204933577331586941674444825701792597959338033314032125074414872705381961408651406416514118005001815778667166974529474163659362916673827068566652639819769290277194134567093618607343904772133476481265052390266168910826434848782879746936499480774010159311343001338330058331858221434414116225191474389815466451197857263153252014613468258566837647097574030226130022678843069808537547477899054372433781267916890129012871334954574327300212141712261734268018659326289178403713076382719228726726401738384270781762577997817939486387262521848228021803971347611610413032580844125795956497482816586212485252680855203004239594732535211353550954275919559883081136773970937769575883262242577692850573595802900099149893907024610121198408987558089149236926459171677918350439005634136795728114947538973180530899051865271392868369114766475467559605514933607439725736209723775317336671908178884440181809562426861706624419238793830158707705570442006352244215279348662353236887395102961865167602018298377640631235604691896744215071474706171267947609786386494840163285011917079118381557859282195136946930804312955974247147512175006632286496046397977475979031128244331691362155279532869927892359762443507205638937624164886235119432926133600738518390734809347103994443652067871158500512250919882512391220051054546477671554684004409629600071839605904225121296141384923480737143176271126811691264134802454815512555689927682854251556623982996795688387961292452860330692458772387735653991183473296624799814371408179597219865641975705517464014885488000843422635197792262025674502424461785778844705156385791768004655914626054128079037771909324371801795219651360918430324873784473990807663105126730446326663797607933930658094051143855465796387303047079401751187156368684927296266187838645554015127744557447761269947933556709561736314135372114788771522106720108589183134175799481088861100088240839820492789787338800613683446837852751715598352216135569391410394785064386748491806877676283566401401304013351986031538199224485367069790702057310224610902534401939836423938831884447408537378773991900062574572107766532404228235359078009103918047351093780086974831846702296503255783074098285541169739512759290547018849076134101367134321635441394544411776444961716925220648461722020685278857753028517888145078444282838142335537237270697140258822379522531170016476801327935432996582281056239779314836604571219615599211918146871062786043504830179787829380575183930561680900007137397512597805092595099805725275759163049063115746599142807974318474360911615904466654298893348265223229031856401528274813833636773689165068563690064386713155407297819452691554833633658140265619084698140792693184201876477376206575897453468756064220850361561109796380414189582350977563545651344263113740198879090148996282370866268014734015758388489430161262934200507272619170778967693367582372666810478521841493921690275105291427714682518277846413529405016904291453014238861411512769979621876526060160461260892688641554446582150655285001629851185480513819864943241812444824969399096025026717244639002277560553408759701839120285805637848438145549175379562805390027632441584213533168735390040078821762731192158355914774102958511895520752765954758046007843623858818454671317906763984963349121869362726027841570758402375805846516772089088050163486151220547415622055611938954304450174177658136420072899983507596505901042163926727719792825265246294846656038363089207907678965225037351870731879476695788291646384111775628030856158215451629676388386675919985793954082298409438379620864716088603995788117505121113616394907427276174040673452599809935514798817833375968882884160121239314019105096481579635913139754328020041328316410929619863353344329015916262768043171791822557055829701776016619910932002528019341805505494064917965996843827936236676070617685151202055497075376672196880558744495449474195770504921196750908859410320401646098627654103384155334617774628009791486267333981752797240282709368215795442013591480810908710239226019191234487139461539144135838243116567870001946408436059413607732588201338610864816939505632759745837957068090938903584586083022235819995984725567371949283110443865967084710819658666951155469924439930807691646941511619967736884049962482671935109793490259442007398608544162380488266036827315188956853988126222819750188184441251184265176676014884691350148639383120019927406241067406044930582175872061204662072061438228642796429683333338751689260089833119809395481283102572629276015727008625928585456058098033714610622433678113833323021635370894202231703207130052666460302578394270585934271574749176905959393509140599688513226721861712652580568696991564026196118480267678682980725131664095155378883273560390589327968191675027346434813981637987438533676985619075573862158997869642021158876164824847026984602090868872247000582705914743189241524781021404855973416364207791111075313082291732367182270722384933226905968502248781927244859296749376493124145764044217111178068472998838855845032533754987201270365964066671314390025686963971699029967539661794695419639116669786599557029469161058394857205840793972750698316703054985198928562607917768210630834801611902484183198870069899182737261868892499961925067787969015303902431440719320153002882129988928866136978465881026994594030373002305125194827536530168092032342878085494442017676877051210107114272501200129266512307567751975502619397604839839036051466847819686317998555206291857886457388398892220826953721907848436246513524724090093686270226769115078515129982129166185954283141060969984512963877236139831398369349357496537745861670481396080990708569242804256349974440129197449931849828063722120798713315529216955798828911271681720735302824991736712233199168376282468199837563618512584872418256988033592159254562752120660493263048470676926684915444766302997218729556199498739185024442062730646987208204284095439652206607640093599773335223769146136772585471623113656573636164413382586242797274852790660904180855383277014030933075519582670610348495128997865173031460533222781482857885475932658832259717467423470044410673917701168456356197481578966051752408289659945017902078030528926328867654205492745028404455361314440724133263899773655919391352749906292477158938293822998873420468135536722708439408242431849923570672980516114437271107877485631173783730464035357450897079130645278764434848715358522528731321055677242603729891958484650475895136743854351014894931029386829704413698903388469092780780632605055142875373923297345690231007928602442063687888165582775733122035082933325342386523962036505418066401277748199389007674556076365937223955010408971319908481629829697099077537171771065332448803002779218879354019936584859232569058132084333818705059311626758708655271587536410266695007374538869117796935369570475012028864425899742106806701923455386754440149524775701782212401190637811269551416557683216434398837355608100537049686772568996793085195837670462196293062832591748962576237210585314694236528352201503277951916113205600275619450320251362075705259358387416912946969245986079520462562486360087743587711054924992228730886860230809815109473372200691522096791266638458335343919060489437638109608853819656621085492379051819815048455270785330559034177488113610401202358544713163350223613105346963305280655038850873673578233585950763206196019242308134208138059814106301934936866049125073468268890734014960716092817020315601777104599344242547626023193342636869150612343554541665072006365637147572066281587502049352338672962315835271519563939774981956040017221085762750293680245000612616765431489414907920780085795128197427144046196962873967682182454261436237984256680668046387979335156572681673770825918031346474110417494973867446369978786880655326982717352461273538410456641057359425947252338220582366775517409759720017099745603552437536873496742001690590534120623731299072390468715033301086555803648273098104269462313723496109934890669710756850377105386309601276770116824172232526156564334778640542123459012133357956357742680106414139603905722783902165849374740588739066680577740385481074115913363250260975261873921234751165400814530614596939927270089903855670730292137006209448124142766299634878162496962959411679875055989815676293948622931936564604630832245713915176207559453373552117426955117072707406638056092061709102143326997970776881852001313199978940022745404070269395104707480752068069893660205883137731203577073897588818189187221332139430955155179474377596391572333802883787602704050413099874872028584615281337420628517267732440866392306546532710788756308330743482830572318321003478513085402777915312982355519293520221376625608656044462144619024159478102934599882106582065107171092208723944968390591177212407751639257650502829588958129679359458918010474236038759180201102209468909586364453245379274772504949810894059760771043914465156325107246447852873117300316786110889841810634622180997517538948767757416151706073749067189082854432317696839607390982429477418645555286410630239629167292889186188261858338913787347910284364324764830863366778219124999029615553197799210883405876885372773282578960271153002102723131229399536269525593008813429579204954035283348396338255129052764746407417069988092180129170967919113725962727098886434791392767256416397259248218710101935033187259943297328178333599816224075857716792732945918196247761457839428896284914483312888057176829868147664763839725489784794456527295675012930262433550192716982606032892688153176475132193177691136181535899734977746545141274681191013156010566624625638837264313258069252013872786561504708642338868563230489113879488145908602399074570535034134306790859625346522809780368074102835996160978378376348274663983539782680925915225003661556283033097030264792647915060289774007596794664952389234335417733664341252377637517073535535904462012961478561054316145720903334985990680735870468264024682712269772385244931126682873336537552412058369403275705378445526787335065173463999443813402486905116654304421324100231075782968915436736597497453159697428438678453901324505037878183638663898662074685019068560776243098344395606272946464941627034551096189968363765928498011965422669239898117081021380242175282048684708860559191795982958059324922821328853310955685218659449943765513834056742315586937153872149136745209180278936572342661127935968999760829028961425054418598995453797771514503788400626486397060036530683756361032908145000183634885017456573668637754116546340318494523050614485314422705897910628537288096453819004479891294638666628387988230148901005328417348117921098238452553883427532245503030050779760938099190921562289391379435725217251420312181897191723435418999920827588225535896096776740501055496858633537635138366284167034663922829360517926650417816513083428769461773469817549829243603080081353509302336430150068286139813893036008925389283505563601031900757510818920574403879523041441063185156665110548093116730960869827501278301447699092701449083581772479460315077010765882972840715993884831084876925563509783615560520645586959849397813391400978991109414779544246711666220275838646181919645774763954766144214178474759459297948260033045692430714554762399032563253709223637724484478256328557049655486187195151943817360866633103307086096961944615079384579797194080279001360263183447461094553620677687594315029294239672946965581554642659178109104428993186762794279950476639251997301006711660973448328277737465431520537753540581820575415949100495808873662572873545121415025203324194735505970883104467172971429445336506602276087906803711793176944454715831307341490932200903086981497483914486000536669424010856627230689880421330292165262890787688933628793450503970613033727344988261175205626041120949288655975559652081347521804985917664794211247853270780051231645086066928185294205111458202021897228022985997740186378113542981860223594237133973249586304036585557315573712298558909722882841541068237661586773460058336320449091842042507635666583088778696896889648985156171858482654358474502029210477980788234321017766967543656651373316013863284392206930863723258431956416241546710311529685367254297829892426313898288062167465060124536750022318270595737738835048093933296315067746081984057174278570394611905817494665165607331894639553129786084594928861676925939873105430579085976374775287227529009914706460970788774727716012592291224567839987253681861721845414458041752926049394748744736331492811781354981917404128573764019422926262876709618485550966736746864766108948104671417635406062351373680882488727360177042587697315171757164735948678521304030323474925640725235685951151173408384486030326383299266484229846608364437795105795934514806491165212901796986636773845679619276076894535935847254006222654852730537057820713267067405105844267235927397330740179749837642208242889531663107190502168736340819681571985144053042940186006840243384163922510930981014040169866919222333747860718399087311240614840801914179861570732402495395639211457902242891117243312281605657335027429220071868316547109584701719179058327845479106389409017276055995332438825470546683742376885217865831700153441859091771343943904393373750085102061764329456479075997218775933906517645786315346292540123070032159895551161229968332564371619598223735736268103222468160958731951518915493645815255027901977264256414282802655222747396539163990145522105307757238195025821942475093910863865368239157661467359364884664267328548644561449422025024143916620230103247664960004064626104570767621807398063203709210151114705538011113301229961862706763067722498033992204520950277614267756570061441137844058741167619597610820503215248540910925881032917190651533292510048014898289057912648075346291939489618981374708717339673814724551001197462406106447247372211561948438039592422976514387042370675972894583099194407299124392203418263849256877352856475325188521413563168730003676790133924138306686156548236290172352480980988500750281957616689789885309203663203460787702307652418246819306460912439895951130611245958943694294648361674331418730787076786647549402962244033924847026878470238329685040369073073014565363822741956973056853589298524541836499095501653424807622281795927032721065474007655270867344707696940949577795458732715960152876200824367164029127827072888853327134955775263836885453398024745854119837900815267257410179940191679743242372098299609847101431609838985779575509335678040896313936054072733470537330077660839734683241696371561722283876510712218010810086094945764633962665284303152786931280188935525610117685339919515936850860309290105230959671604236938417425820319530326648856088302492024664931454968574749325649736549067118663938294384886020249706461047380329445499302825632534413312074408806218385057738442217284807733013401806795088052184511442266340588492900302357093843769696025417454823738857849407796751991162599207348552997711602638628000286673584410729785920449261656826424524452193087259784068049714244222019612222528908423457423963180904744911549482354396977754296763905864829754196623659078022865066685260257715950649679464893770092449548376442978700703730878614476045120625069033109015198410799869994125054801354476897743957614139925788360161211038889908460516060292172404383030560644059733109092096365055487792643556506115996086485186826686335481044576354987643304651573169607004754281724054170490927018742532878086530379772124269070692597348903515155153363558788236263240012829836134249239201643821344946101197620966024562034185514102240649784545041163318755015908515083168833178264538866176907416524975082303249772179342714224353693313111009860527370782760111457790377021780937820186887274765502172010714645157614279844259535893215101195385094906634413397421936450955632511747462097143550107966425298669140837329527775562068373601693306162134262560863219812930392084174348366546938391934742605761989726260205791451872454743794504581630278988163618226923387541578767109292175006025118845444095921490880933482881159048120714883108233814855550219130615216263245822910939746392689373070892898182071027694565808370598050263244770204560369495053824904780186213122859055435866792685278765943375579245149075053454498489148287822692530750657429200399104671791297926554587410564892203474578705372263149722739123226291282790422405415544490881613981933210966417938638719593475066095740528487385259654512325068875389097227131304469777946591399583689597911278157417082153317666564312371657029003656355277058799395623427874249196812212535145931556565543044772962818490294814669057476055982114108976644978136524389651188254028877822892217356085574715882983894716106803469783552340224822455097315658917739020693588860438190591582162190228538602256166722784931497307727119456902361638421915782630061631135442527855347333838428038453821611501052844993916707112615584838150599818991699775407807076589075016672848448556666300587488146163963275624471114541876502838964816975957710692881944138757323314870478903298214973298825327623947623407512374431492746415492105459209553856601345410601328216009851106133777770256756446520620239467105792867466554719869111731504880830493951670942023527482989803055059032981382724664658653278718869681981036475597013282866590914464962856257861389240060157900109257821834871208186398095734536360707480300476210759949940253862338782956456824990639957293717172666054197286207722164081806239550385239623668775801066313571895643927638529697617448400508417209534451343837786065926994445559535640879727053918394926927697352086017020760077150491198336534851724666738296637430782873994072518371494133540077735044652779195245970385368918502192239443427753516383610716077676581839311636745176573752517736099320210455619940187646180504678926816264432783552572885658940561208060980425550780178742931852055627157342468149855299886356124277844493710154707578205940994803104286984335971353246032590681296630861400170190316447980341201608827766924684385484270960706154163309551694050248921991238701178924414585433181499252099821371052305865348766695086132610474175505568151782368081469914316973899694542253149263244723738368028078136762834083716545148586749276896129897466923791038446990402616336328832278887847448712447771310819377510513837877962297631988984550730732064551385660854133481761925979645967238263842585642202977830184384651656333532426482517067443817442881613451188516594204313970580719000122537944449376014703485917675686170308995549420570362625261510137673223767222923785064276280013436451502997336390969766148949475793506027474294392649933521884123124177565562025687097451368941591437599937362304465750060401735594347831253015644141615089467404354557990470549192380439374272712294624104859919391077069846922898895593925853541792944221968327218836152909203834837072910313011342433014146824470898359522255729566792217402198319508981946543776423918666505647351851976926801105159622005934699460813676753004163259509139537881717887714869313293570028776995446490391208754153596014576036621994610962269165038958853650622287469470276255962585496332320330462433707514918564130735582072672350038574924731967215593755323883941491514586695967033817562198542331799919900495326896722153848927637356320961682083697443885741118879554256886855981533427830477712206284957117364978229746348007102323833754329292643981010146606293071563781459543468816739973873580543665302147133395458775597703743181360172148086488106946746206822188003982338616470787351071874277154543671271272889225110343644896999376880539290616874657090461875426983540355644056239516938891997987411064508356805055248532548320649150086837636486145131757452155467263490116460238378649178372314652217002295037611960721296708142399069589462572164108430821631501406660124221682548612747164067261437737234367855592605903340535118146681352999051077354341286251342943221668598453012615026495897859610920668241499074036138902978786491159424309775697146776196152362517741565931921822324174945396796271059697807498536795059547057286642868790052397376166096664141670259931685368234638237256847869656859355564763312767337274869714245870096478462414496119162630061434770176470823346285640820967071384179190542818132170709101187217197705359956989990422741839808054474448913202668272812109681107853002740104653863061829393862339606588061247788590876901022920283692838252237389918990245612511244309968596539086678690251990863047931615852465492169581164460247704286478328782108611998676135557436575639114501160251323882832952208195378124063482720150917257375169962198621873894966802441423514095903913597951239410866718698578635382439047098717053257162586727138360501638601192360918404318771267783712266117945158441055921497873157108413950095609575644844503027580117189157436125935416364071730629957952573872247856068945776009954499470091577614790116109864818170875785020710976390845468797882977961350693306718135272772444889210127154142569258824132013991923548602894134667205840961176121462285338991183164989680285552054411075990838532910275717916812082323514947725610845635427934356237964587780734258633670701762574413388497171139129075481987817167529874322634207831016958052158123271719237352816980241757231774210878604063302423845030980045535027893330122897300010024466031258334599198644636353079075190062245280359287095906718444210284453888774825711408482126824805521149222388789281131802584284453356072047931007512278929370344876636029086028266687878402803248414971302223978802220607803404339094130410137617434506769291827774430852172881135169007268237057995224659845520073209261047131087659825258027336315623627115618830788080626538499946137588622431899953629889028213569723181980975552836376629053769720876984694106715375397809632612501378262695197873689507091556364664525115502285141695700929835924966440902644853526381249948015163095852237753034383961520101383368670124769240119004614130449713035094022705803766925220338251473538238547065905387037030835464262059246917531863128008986440251695748231885191325184838405475591407015956084473474949955777582285835535206618353991777835227693462855666130814940469530548189022863727359266789972453819047898550698678550372388067051883006855871710248881660130639546938279676537710174702906451240003957050951672039493208396682015031849187573247286300238098942084364978688085340502982065088342302959355727099931990233940200220314108001751165809708043653104499774077185879333789251174490844819386200046547870785567793446017025978313691855878647151952209849502634738485203737311239157858933785983201516885183458446270948059685119614935756897751679873650317230142578011520132987246836471226344821431594105079691436290671925476114807877342259549292706346677288911613064945314511412964158836361083789285326506292167492585415129848521301617308753235340597710398641081380774928180421501543538095229357696164086527054519458663840014467646612918273635568158424580395880035450066516848338371985442605849096815924676905168454139368497642840893989052616366986217112247428167259874809248651322255808108391048614157004228085652218089282810213381390990677286313332164375989303650485432099415136944245252239374505661507034023970365683240254738782113208575121505141521670492776807272070463310142611660869504847356755043141964197896632421187482779856039105231856850221869776358404726086115179347072964160943684510969033318624657746236863877969502493962285020900747399935169380345113485109603410685004703234171881308202336173290393124107918103114959836203956869864092362850522132497299270329484438520373399549054257607885212697817684601039041858442530278111328438494948378383338245966750630996273417705851760815616315345799262837999453374819744979828963062691715454277598262091518742978511421236835682359166442230303444763264068709660596475088580925620648287412210356319280276717574052533136874364991313940852764249766659732182327452675112496728761365043717735543193402631372149621694367336263048276242287946510340877570657050596016943460282095849890577478858350294430134398040536475520706492175645327281881422296381710449461022762351906489846059058126654327075105237010698701898562873663065237010203962012802198366052859173164217418014692642799239087404238464288527761908858312587641921030111523010041436179713076142705667018415475520198150844743498942215523334381183807069889855671388274281910853310914289730661187699549212163613566275906430151590362593768187180084728499403286253832071248596606953040461492895910406825897197332503569775049269693375489309466948653933337108825812848740446986327528531167925661028906986517723634281162687211387883678037340126056024952026176593617833729524868639999349961305111853520472118195457857176245638079341542111593799881390271065753517047935921721653564475952292017508606667705469089193894298402820669444136474773178351844271956174342263627189697729865428307834967420164427277980146434366145500107259728148987453253892017476483799196617539507901188399612959774635605318044698392093697655263501528356433871895152161438031201072821792226902390491124299887911633405744094378510116670419349860507837365038059616351279171792375432888616265476843650042113213992015932145734726314439683261760604863301895900230104290650534649148699926086436662586075226557088216639586648900443004406038300382998930186951754819822974714454280539703343416909586781516729545551863131494318389212136008496096720698071149689893684418359764903772640622799331558214515525423606534101160275946332059743026935723067355423596891765924152469458883066893598992340528252285243935843296683366207945607515113220375692833988820794396692247553585933126582762187503746679738943731130445469558954962232065846903747613878319007687523765715154724768822505180122788161167537162740726307308746196379414866128757762939324589023882692267960214684431461599132234009347319670541199892971462608823479813054184761244407406342487230875126939678822585754668098111046841512592352074831020496096582834234789666205156178409987876977285260998225406975794073638707530888694582604423995762820223865615938241293739751891399919428545540062940620502292654849343778651034193026031710495353884557460536872436226187339148024067635601194143780392122248808841832563780353208230030686349491210057268658784772338643725073209000615805955458797536606401626890041259652045952062589287690566634139749318794517980841479787766474221764663000908700383146683451462803415047781446474732554244854460073838229108978348290462385347502226364064566512208737868670488206387656302761323843602560800909901766242467552949430774315192790078998681086868471039374533335359243812473341636129579326186747446997808607853955630342771809045631266174319061957022775551961775465985089943512328640233976901333315375862214361686652789383047148306952930938468583336424483210900525796884014429645306333409067528100606424426634543654263882850150483047654566338573819366138870274173058359106444935761176338721887631290107801830604593278319442316408007341961849796656589372229881811612634031235364881167824171899223427213879080872278559241277128674675552339244472778922637503339387170037956303316894079823187806433504294478414524341850888132853588965187501082624627231341337851027600884872049659175276639067505797418952150972785662282106050997367792955882099866626106778745756231995937480331587963659078898040880009194722956072432080486985455368614014809701766047356432529835490313180959162470715559051499316081979742453180660064957100118472295935088270755477953541063378249168481203503181616755121824728932657585805010478703755849286758206265452145244064841037653004025684257578614270376640831704312715288574757266820285664672408599106951799546896516465614535330721463182578258825672834466384190676810004376805250023973105851177712609209579249145103123311980750415102785014881984126330661173124364717847569003798919072173301973100549363673829518261720688182319050137256143063787028784819888150323402727234301431699341828138331701874250452920304706705438316955359521206985630143470426161701251885452329904775537386911973694896455959640496130894103110993785491116896582317040347210047695166935862033799267391327305932521548720577402348091117289627541176841449404521501720712447694406027394970429521041820234911102583421950969363495292155494964445677762334641085788184802142765283593903430616413586698255479212804890250318006767124228605392448209256219926124580164428345643909694911681391194913097227651073118756105530032236700118955120840318137329575636304833807491875875871409153943575486958655348376046166677279909029216946953668774909853838343305936349456083472474934108760174129154955037591979284995165849534015116883934586830941399597206994197117097912942147008880828243703167374170941916922984494006957862791212111138656102487575834963795723769034301180658939789684729524664605353024441584859318937820380381437001557389280753200397403589430762765258786757960222444146929683491923999680397829870445376269635275324446298106809078606823771180384757091889853854361099875429271532226413005320291415243066127250951458027886211820095471706121726626987859497149429028206901801302746783238464904958862008900796300904115168048050780521426143723504881390349691604628550607720140026340956003180261764292602896119021488652467899260921573087363286909646177456389157273980552436228338416159493796478074548809541662265974208072667695568431572455121754356903432005424435547347183068536399652950282784595822336405735005997622531673802318094980168925325321878988408069898181509548246098856344024665907321139791865216896884093615078477930752621095541778427677125207992563001096077964948283817901836528731757934499984221078044338138675254310951116400706538626624003772897363583957773388788003365953468630212308646238857423858142351500638741786695531998852735604735308234313750367774597654402910004807506289326776923704583362007943698250791696147430247264737548029802716529946213694373672424067309802721586823847993831214733017158249512444340392070685242410314873020703797019529462051001548409417340718472313171130219612906639881597650381610522429564185674165933388521007960363549502673962041211459173481871517850241351538408718894513235401498845513576383122596189560461824360237513975296328832079117053297120245900575925484159269193933738316096524715778645545154419749727937664128836653177369509252552274303025214534764718857417882028900632165558794874524771515102187637791554353791134242225493463369913634101161610830918641281843830994066625747274443022655402592336340845030884795296210083473411499123715640031962420685744855677040173693587926176984745890340627683342756941314286580503083582909961758052883589802933101913325976786068991510887936571286620688197863756826404399774521713511002134391032220171257267441475750603651529948769403130852656391792872284028029051236569432308558506658246923328240686756298166871905377027111002316068987684487662748181206520555737347399877247627754993280896991077820158143532513064349823456749386531384143877065685848313236453172223494074799669007798736997280438734354101651920043182729526707475407960574600098778619901137223821527281310509895299518824793245411608854604767879505625404623175553328483897340824272172544856701635844811597141790453316033047094303773280404803369047798214610856699979395634024129524528155674793471686398419534256586048103079654008699582204357733176697298476721021720253970196143980599792725736981215251692652862074492688165904458925511798213790267986092417699581710073428367298747460446024847983229685736232815791161413870605800513611333144199247592304320242447779260270229577858674671637997582120136769367522452378908056854251941389793146178554961527129130198861485074764940988693424151268938402963545433068680016278326235594689692060201418011864043013878305713278640039013792390708510552949365074599318966394119949821761597401143415655657082931260969703566045856275736154259528170108105427104794980511604556789174056930210464812021188259948631172383590331866401932118560118022145868011973533302967687001936961636464027573141787251908523311027242250803323911958532101676224779686136117298783034093196103918335656437207879812855005406987135643562250580608240002233252217190826014416268765320261505300834793155025441886112185248367495180392127057693237448652121216747063021256790454008536222636618551411443658794309177057507447578862551537409286363024531890690841077447554613317986569016400045612876209648017529183162659979198936567557038225258855734653146809325334874000472792097465070035974904843937755046964227757998487783510697115336013700160683791740641351615552582233683563313636027281995915929580752442209581367884231467536380683072705341724287734250529638343770532491007782856299535881408845208007180798929668598646617992142031431449753138092908308108444939177508794823592918957336704099091537219766464971757144418640930984860716469219829061940079414408658669082516282458793953676107858644233245875956860179369210792644022990085219997254470652570840542266243412128458287655595665491911190452639075192999224978348035208172829601708741747908775177093146086070679358499989806829425909632027985874409576501575087793670543348817789577960361030469241559836398627991456735048668965461443199824768424885111236741202419546194511426169087839763223762913608443083117488865731369619735318165825878824997461686955733824990315904799377724169476257444571148725366306212657404184847858061846333564234280108307547546398027017658072793797753315455742237419867176127335972756470621967883536667457201609561248631383904122488899994055421685116217509541346522813301791298055036690173768886635726307948052626431517270291067805786728192151895548625921397587720809524524157937176410382513674143756407555825891958154522840896831579279814967798685536049962214309472063591788346605251115152800949256323341828664249747321177350491991659582488614096643106806868436705225850636260779084928122517430028822311600328654853326103763749440303962892104284355312888822812372274837131606824539018911262517480478162341459448857928361742420307457957874335259931803722115904119698426076235863334714481347970975811498105861166120521599748605493085154615290241132548408433121814491950762941061883205253356515757054496277478890186911069429655212831471833126555621932091839476242156136129134270510244948154746017834292621904499890319738278571075098286690662818781164938836186766569102711507597998043507865654287913110575185862166019571057440786206158780788066041272179176715395491617587758025247422356269598333690420989758000864499387117676727382084435711669951851910469529883822072886783915308644414453317197591239715550847658744140923579869061278533456792229132378676492688083543482491491967208706096964278063128912930140914504639271367307237427694334182756330586180915780172296371848500522443262246630971356034071484813951146837858600748521138183582382923786212191411771040764924780045036057816067535261765105260422638436529927745220330714509814313789891598576696133247134040105892608400733169114790076891127778581574015003009538430315661275207004421351044312966467732807452665386492607096771483452564424452623793194633405467448067521858494289335389628300214047553728938183204063090698727321828040417275124008510510404098201488223565295840163260017089277689151437257006252057759357023299378332003964781265265021382027723229786046592274607061488736957575240873091933783197716348135762733674630549191804583693205859413234089523199796944985575535566492417314416147300933282116034109279256611010840870259623961568483732865542800836135139138944549968353685672694221417740588992337847663502570237408960503094688279502869598170723955998892733843169737332207733130985035089464954091644740607609857223235622961116217714897526365675613700035591303667676110177889531373630669064680586831843715795233392762536410010591844513263424309169227692448219121651631842722824298362841173260045333188225426380038801606033067138971653416834196660962146239106733921906486725456600571364630764873826579953100549029326103909720008224984664147930809476094522206941809544574801325102299578464302494279434241993058812020175028528912193738504562437481346544430533208967897854019736427999641169718550658930401803886437210376661451754420738379447155531979885567972350537605493097268762341966376757820012895344485898926954889861219749978975890471122601476667247063346666601245848592190979857200766911981708103338801180335542204185263238009031546608966703317407611038726188990500350326933337905582287148972596364687813781954546536498378714435105789390919660518693670115633052969056180927555761609533726321946909214063412445546828364187657646829454026384624406210715507248212698156486642749335381595569184846092703749982673026780323658112819834014071340131103599724590619190576216594145588685611987059375563067522518051267773703251284352719159656042111769691809923087340063579105948958491438110587764008543223886943567210117080773196811386851256771047026377954585948550094219793544398525218204880480885896995509205337988263027274385967561350985833057922288126201421623367081826568139990863865798025136411261343106624511550239244068356606505431528811417581868805478261850534323668350088008453336552017004564697341476178453110927444958960408602110700186291998213634298624595490338382602768077724472508016638112084428980843215137501837691870654412177004990042185242438973525973322953906884219278580353895753717247989066275084444287017726722889603071571756246746655568736708343131092402727799643402292946467217854845824058607443416784775936442918020337477426769172702940793812126081580830889397465443231386128321328731120309664703953489520910246853466681724517074572520587922908913847421783071109313055118029343368938498584388470776219827838379485578549746538655671036030656375437173613329747708333554093508793743329515502518706532642743119330487293246223115349515214847004489487512732072361914954547751299224857500279321123931644634899724147109441926506042277181552553422755681310902663277144339036431770819377787652637780380443923326519958479188770147505747739740979557116824687624197254933933514483423212747935862417024789175990056561927085542102521349386989159663282214531841931950368453086549831702614706924368935964439734506784992078074275196928340647966641723286396697655922923981933983212190768527086538610562402747301738562832332949131741418529669952736612045406178189364890075976059557157635501855872076756388068265210906393624659991311072521728901547444121068456974296035143952418094874609291723557953218508615643648186042301980828780345033010148582643483318271902299674144427407142165812755171175547914472841098178799631464220992724937859613257210142139733232577683646016452177684626137667425400080724475403050067990711351991262439592006726316024364805150832528648372138833887226878341778310739609396292593971287216842279975975775050005959279886845323455606418015376049547178642719632480403414188397566408433048724747788728269300700433137059637382950248578013845028949461308784681820267522856941551017736036158708853635561262479070182344983653344213466568083007635781474083897911419386873327904021189692510149969730158683744012988979135321320733496165993158522664950547344403052021447485698819264280242433322104020066643197447874306070647308266588374418016034782096967194866276199705238961817457702977406007708185023393735465597252306229258471927167883452895395202491451911843483575667296704595839773720901260994519407527799433937541609432438421127752231980894538191409550543222730604193408781226205085138255980880721780077328968490148399950525822024963883943003711203218093507802948523143434222401480549023655405666191373213506275442072112257920646866175809227325634263521190365103519881738268996886524675990876998894130214066220034644380987371959930162277648590054882232114707207910607349178697342619390805376290935238032393756659561034950731681198137920449306832439936526017153485576976928944754866523694131960328501559542443053309006729166561237096401349125482695560165218263512763482863283891952254780817026031196396081123261085740011575324444961671051488401094918147825988571747640736399193843464379901764824964949144835779984564207182792192030802108245381490827092839312390268631388356291588961881632487815633655824890412244669133002639356667031188860493274383370846137959025869440748601958381979689642014960982684049241425116556206168137741078306978576305480582645977806808930564518382978382753342529052636999460096739183227574619442505077553681873350536146313782413913921651252303154988820195216429954929200970679950269081918673130221767380048480876552691658013082084858228898034587102215086452630316252011401129145559630877563207933616811317041383584071423682484006212670376548206894149354207874277510688440523907124179279235754915746801014244367205232847315871799113338879429303647344282460617291714420247491594309012595826307984540632355497499184329321327915624675571709536781972734249634024629809693338324211267712224493954079062994787224487702537403964930816405707561300384151979044969865694206923375889479490677164523965162956973985934725837817993644918876841831340188946354835816023490241494813481434578684855584090943455770690690986949029553139446648977097124104663777394925436225048332838096310513692507419751202285503318198158950522899376189849005428648205148575034229948700688166530630062055486607537374438889164410754413014101552755880789526237774093074827652973650123366490948526745741847197749800138545568529585861771361792646143281978254974393225420752151378669293896627369849334673029753246393109142184497324995232577837396465773558203263287161245013478439804658053089476256135237160351606682075713520065702516541928059684575558910504580373931243915904442733161492714663272988934238633264621956133286843165612957035381228692048806845611077601373866085604705291646575591045612419503044643939740376133622480264218121563418000634670229637636811198534221121958958038780571161113279441701810790413243298060245065745787204715027546367139450400552515104148141220687467624238819067791471786594731907995693045163488996142422627474256181754681334432662948215588704109242525607985534739287096240604984723098993480904678437821550242746108019780816959844267602585149700495610331242591902702230679155330941683920704724452778639109318310497503469334973500294547927195387057010314019721784411864018497549579565309772000361018080831042641874908894269454831786098824064212182098678679671113686736579364712094742693219103245331530021565395007043151757976436973962817231502047433694715712576885340532289476645991860127489666963704362027074266025303929538417943281505311960717052826419554820074730840824216983545153262272054985453553431114270544642217095688676594613093782728798775651823556207050230927561133220110525304339185568399973872376954988914756222459549786210921280869935079032362815711743309217275867499351603193748805679753918178417104061249606143013666011091212183509375846227926437423204570260855479547052763127072622907605830471329538592924843449836397633703154618140909015434370607858440167222398926816236104802717226925783666956551727711416928919215191642034180192428379406583422352444897933602160578661406761519249236099537756667471032818093620706328032255950397328411929153947828318726956812462252368296029452356734847998075719259595770446809272365672173320464522697004000757407811543799185122937609390265591575199651201958620019335885302951872094426900904512570552428779495143321816008493969190413336301041050966996114261752665603270663416124554249307252858058065002368494203317407664726799576049231948910188180720938925444183223469258922132953684166663032687524642562063115894745334368993040877365501109032152286017014162195225234535909105767623389376122772145377203035032940061568874572444007081159679689788448124010440883093884757999956254058138786895340279992491645652492439505912220598492556435251351325868496510315065144780660156530329544236394745565752866479982393152398867186932583430543074691134293287154437264666983138590161061572549403551665081864764553768740136092513329546099084455560159852765541665081845440043413505303497623143130087687367877895748851627933973680342946670234767468686705441664386035356368897862459577311961500697976387438708397613370058674511812309833733160016146196406495970945108186531940057010763748668283949735060778383707861092359068301680329080231557776300875697742707559124638903700772858551948255150228582924479364105045043908474769243938378884151462894525866466663777792633729207266058690814269801885771101872400511365513971158697827060005494664969790917457696559022886390469720371205306030937424789181385214788980741631059882274892457303343207254460726570854996855288093506521691939027459979973799286340985834800200546537017423597538560373808912117681246306456354951247845281346557041072250420651845561587191908562939124493110858232611554724864073498966583952980106812640470800792042272278913610107033290698696418806446688137766343366829314930207072640654096262183236282414324373462766756982406396623849109718214094600560256670784064740840208362512511053215537386079275151331563196781888690767566059157154384439279550745442653553555732010198220181764737777568841000147919245189057896046213769589177231772999873685673567683972858865177845976992793183326858506135073065428987583234152107139555517456069474332013118129965304161263122405065531741233888508633916089712656993591935664579109200373126421290248590989491956353998870393537517419576766566615084614996426442682851653078668375903944606152245375911719371322358667918877606823518006674909614729574280388924300426037021426630212216659323751170574177329448605724067306795937174112123157324283492233952253384185836926889823308937823902708234479319193625922326485499394120949528119814726116606053204518700680095062815278617108725547500626711677792452636066148264048408315486174259636177388137787956835571186785340019690637158781392100466379083839101643423098019507201465640147473605740388888786816115634284541477768314324139523409086871564151323825426073124738006122729618646441812133724785917625155615029029432773555734120023440652563874091043671771316266929668928884771812299025831844479763696750270563194096180755497293683917177661673307034524253061762199187237624977825602631430080210163506885294011069969700584087863188243165678452627979054436693690556236910097209802317877176853707626985017075592674270376818775050226660648902862251168352825013142709181936883833808697200109179612662744315290152292836471083467796066066176339664907184620355050459644518969176584904818273521434939611064283553897620619956953438516056924356113770686243340914873671375082206694659166563569685037050249896412591965952975666112905529307718539876800952287352471562886459231931094504090117182971417166008891959455717332284030509838794978354800166775358104388684220324222960035617629063717468733330118965716227320703707662019018756579975066315548764426687412277577405229215751393114398440261821419227342856521039385818793103271290537414809382593938601032383892078714430549460822100856896675958065802239562747051477110041436440085152819370352024433177627990667225000508864569040718661124890205817935556006008477597052723480062265350312796388633181550347648051328021258751741605578127179630142047271836503600420649500025832666851288313776421315778778721979205491444830907245511803502046272828495143083094145294117804340923411583803491471188115602624611427388573078456872307690766103911513417783141117076205239093061851490275372265007215275054452105725284126552934486390114723727102459249645567927211128089620148645688696614432838955523654825903653862314658503974909084375929404099356875790786666331656156634344346136144104910799258952854942175140511210965115976897045266057789167849343632810763396091825362752211964291786112143349614107967956263932867822350136169165439088673023762520749138338613319177370705525872518493659097581140758407479133840143535562055771901918492348882276603334624987419624912372409995567309839694614205177804126608955470227254642614759035307970725534896153225465536918032631481023145500739762323577634799376463156216749029034006369464305214616088890353416113085063357010850792586526968804638192840559019742912068891801165491564367633612167285212363524022931186391112701029431223177897098690383280892681968701127458505558043081882226340620489078887914070156855921902709867404216134707569483981061985643612687483548568960516528832952227358175096611389818149401441207014496427895504964335804529420637400135908274751780675883500424206325003134823261573207900189957832892860882055521531134730086281808200937823445339416919517417663021357111971289836969012137632186132439865678855055182763096884627721614162659340007688249136254936303948846875301929381138808699855691253072579627050662632500118455474407238576436793883540833015224629276511068860217327068893456569308521319470388610398382137751746851833631831510917280297054344239749846545377306244671400867462684647905116213137209483146386691115724595616288225954171185768353434863651181817861224803050284691274257908822599676897698417975666271519087705199564318328977884040595450284753695874255407549430930671411866413036865238066842481790819051909577600383002464382228740885089845848548594619084244394698035516270317337029910845652274378065024194751167380746641028827122979663572202563806670422897055625310459082781467741884953939683123118911138555661454779457351635652792487703006609406411808517914617418033008790801635652585564361390400516783418716558364681063525968982226171370475138019760803510821099577718320175217161868527262166836546137937267089849081803317913412856620392719188840061560001982412789357388101140401463490919295993486748796480640642075751930963693406241073062000799037670825297385140474745462858095042933235898290115512402179899566839601084904701607375059097613443562022189153759190783804517395644484132897847754269655503763733802854985832594704059221560563955710935427551871662273378455458524026375392240600235372425074711665014062259582656709922822774147651001784908384369875841080339270958052130731954368132614977101354105638569656370386155584678274766355615217175741030698803155705649494153387575965667791714909258537863852998684369333969023850676594684324758747147458225069402475040426178591059881114402412459219592859987631809537118048207655679487313728340624486998323852494590483054068053732992573283635504069882511233269233925808565275716263090869115078091528920902705948191712400439419476401706383524751861777545125662172599544602265040850597137525652190459817975534205029821282452185857479592031379937334565955271182102387130817549141072353553382972780303326655991862436447897983742083309815947036019080296522818852630821500916712192227364984273166484117898119507936602711045394288831396148035351392854205409591418729416507139349909322442221143854001095990692381357232092939432750284740087464223844622440137988540806139849550648196108701837659860360661533592850239596016644199987810194564536683301627325477144581795647720919846755513590421484761469496914871501889729253934721846291417928407251267780121606106645276300201366535666082626874303566409434025821603351279381386433778304002558663669940688362146766938084467141104787337704799602811393648558423690888031509105825645519389041452501664716128949968206334827562250807071170250722110437624611950174899764050897084407558504835327248065610992304047863046725366587825852515574219235589169033505941560700505532338164544273030593515402793015478509381830224121030849830910699169876578077412834875744099288506062508830707855474875630992270424180484595184721689342354858339849821966541521874101660421706694187160272327735805890159858623774485851345420681428319820185934095856573979284703583821621918420823012028811725414836330872069978980772156068941103316111750830404455548233063715645396914462086745514257911306215852397601935971441687761772664098541751816197916203197118919730249534046619478022936827834373848419260009517272737669475917852495719586178563835076577491457800912515906397072485374760016578595860409053332460177612232865568242370296949554614652056496445836230246818140923563396001728778794712776953384523732313493474692787992028598549583188533137099259093735566171040735829117260958290194370396706230728801762721702854395972497555063652021385194135553008809130738735874225338313137929808957923472178846977812296945248431898736498084926779734256098134041830558163131465283369010473358259985227059428870632280748004918603703628276883787044403263959947758272080793688972210605642190437827854914100150235774515757177308146572179614557431352745504802178894079996271153775266727583696033957702029524048539301228880891382309872474008722764654012168221281505098319980713536816409849659099896625362735321719835005743195844781298372410940896683226605544464152165240700198226566895813311361106812208869160427869007731188844273002353916727275389490658493971921253905690895248244659828964764151424111557236138110990417730123572004613619097327935233205027794894667462670522003140081379810895849578448233345184705345870595386334376541212075726243708485446582710595869480911399344315049246533739943189785261249626835228486293097926604094725329359841466586173290555357223291774792341961218163636855673027888267287591845570233083378295783102701608394368690252138798135569678001766816939891415734719747695394484878792574912268985593221133507707015050916224868936958218281091624880621686902738472672541060357246619920963301852761235430609823314765188295900752109914813422304468426867181202695107064292259696247124795865814244132144328846330545015221954584389290367714668274145157025967255686368682879601948535361563514824539928168277950507765127507924209488589279881064682818680890490645788356399087257510183847629126066287197857326353850264663867071246819260281467078976411898260680394328809543054937943180295185734887054867909536623505276225312304366196516334722951075085983069666101357239743273365198283270173611425161655785344447999909604650322874398006623112324603388588400267425701094439639520215012114541443085181329922944150332770197801751639786870961576417755325476983692605694786836160299380890258534832679107497061544536915594775599525832445654009575298623678425946328466465655933362118682233765649245762316777579586574894038336811724782616677666605497601015835073131782363476641008461744411306992567939626678624774369168651446189150684577487078742337509908247552122456366922651069174324145206828286766221426700505793920632777024421828709928823879602536653365189093509718069497369068243935157604542322064459208822687256362092842485494302469924021204428472668274980155179955753072861690876701859876749896602346413531760674864914030864111285338289656678312004230167370130601069821544573525378213910123058768331506625547651026545355217645960018130062526631296342757850815690016992342659837265340623944092342636984235455791489184300931225572783459081832050580320326548064289377315957289285053059595217995172786586963111977570753017936753646151572379075436368044778943998986447067546045578968190428215492478046993968754310323901133597188322022894843981983435639387055711801640681267299781091154563501413897750331560246190101924528991333181246918426533689327012227811822166349307295337688587591565753511550448942434145355516146325832930784536754683660000986733965549309590854321605606975494982508951731786631111353228811742032766238783365293619897645840536745507759757297370804509757502108220754428609176647441537467598394903324687949634700837345683346322181318991094303519223935559451942675218711153721790946469060451034345459890812742605643809389791019526817385969024197720522493115323232802767700320971640584286443163924021148483137476955037255747014581170314820192787985338468790951078546376629140148181081395268657152575359537045939846940418699831395789614621151993129281192457935718873130055538239817091750777447445050274665833479550931838077335378769576498232983780218709129918129995765170193268350801816706283097737060659923847828933309314090258195238500485850739404880689506077653425653111748135881674925205115616563963056844114920598532161764133590946178936370723343403300904504935295808394103904453777665323976367634862483534575636448732184703160694804951331030703245450488030664237943496137423997740170067145279335865709997368130496722433764084140927972733498414769193528529154065512990447695055054627943640373910355555385813374452395063535651696126886662287065970354419035694431718692317943661721720235149321473478500667361357197866713296783663864699100487412395392192542774903356951021161805318289727985245697453694144342778999426839448013099105665177394571893144331212482837007822628265044080437455353617006844542813978702323284750679342227687645371308445744384151487688695781849422373269367597312651241936891012321459139321649820865650848400825785367999851971289448415042619180354915954963833968477911525975925929922288498335425784186326363415141714774342576254995863501952740542827391959566003176092186226160282503553713982946543898409624251164498146168856340006184730607794990642089217194356911968819802220406521927706536686609178376553316099096450271551482850722522378735157924606763857795351512333660601046377238029190825198345131336045437723856706971838655324975777904850529091656485889994849145148582000972984907312269450919755000805142051723624574755317944060426123805477680428580396680210175827256881493814046844860142311584235502851495283280448458605904318744275238219921271473361142002446797055405091946546606014602734128080458071026889350699220765737649328216475293260672736831546913921017159252016004098404668006189313221698159504504865518064482775215130744096605284520554894079306348339578520536347347411835643254303625046711947877025479023110682808993402345893111904022344816489220361173322667794374969059771172460583074363004521552959017969236959178631629259946866093422112948209319803073321828063270801220642238087397482694096256657815348490676546320977202658277053435096349109159819229106492301051981283252796910887924681711352339671316607121568164437179637141645562351215610637160963106298387093146249789385099733360164182711928675383096161624107872511634386701519754190061330281572422075492521262865418753237981362589453229775488461273648433853399848502493635703369351064491345612240223128331927019170880209964834536033937265070073265724847078799080234768470744660048145408152784468044821472500732386974505849676940623911958847649247247492587285756256283741232225705700040301966643869949912560487997044013422136423044991227434170524204399019774632385453067778864697681512731639752618820456074002568410457159085149511814335028120954314356751831143551471713511474546343448013392412922126006954529414986622786116901341784895374696340902843579779964719759559195872572898889351344501154971766162719333421915538524784774351558562803030931924328373632700884672164287757892752316228626998034969040485879732510407409287978909276176251578112298370081823024065056126885728005666139117763375914213115714558983307562294886273106263623350225660414993898597472636887498564386532144865098917741286641025594567025443756620934853152354051342499627428728616677403238697076739923591964822421406300704082091760393508237633433747968511118537568266835927393435218499112246142462793807309272107848840825609123378239824487803884647065094195748586895519048674220338680034833675372433547087248613726749797581216642427434709013400249618763205035026814576307622649157243815299871114243704660039743636864817581341661263074058579030169023659507968719191566703734026329869725721521813751618473575561202398547836873671226783070861460531148940655524265468576220689261018667836500423183983468275992007082200015477587443095335019604640352094500869902891134903222340346715220028451634748782779785323362071652991678850824572310218766726141739706345788564725247247316395056745374777392171369617965381155990413869682010695277956014079632446337710612665648556487657716619377902856424506631687210272794536113833650503052819505725306256917348045174554663176646128572655677220547731845258994344294575595042801961824036275867396444607303919343078441015623709616707083204151690229118165084513684406044926283213766608176623471991022221041163014667996268104836322777923272585310024930406075784943463994135006703830697305485132600440702383979738265248412878888212901872971706728162234960375448572775093449371693090969240788165882158808249242529318943541329455452212399657263720848885500215882844103139619439283502599130159859160971647138664171810896332224861367639131285544152675966451794949246023827450271265843201088310298706627491981495676672047939145901577321435822240862850394638948787947788946821198637910248173483836877427145445471081384335675425763958141508091927041230467633787139258156077481443105280009828858599152788896018323094937676316943233798906151287665157769632176554033017600074294264026032634582920021711957352410061835605741334991744413253956890898454062043061240158430670328297533478931285054249964305415174821327260013351270276358158282171783410079252768655210635584774755864276760627735738223039792392985077317265457456357545226209918242384379065039761488699900081334155434901956527429003907097280877586619445560905228350380089461016078445913453340909829394884352104484346273576137369848242030186674489566305385509448804375103663131095402184308551271152266310825595202591278276678787351536791429198251526378967571884878406094331831844509595276566470031086586609090971296541989344420552785701131363562838573389062543825749307486163592919176016938433913254628185150877796598736716846047288633946339966825095373802914714371310581425816984841149976661186682393356456017428368411634450000327981567920848244385343197612736157050847492493810380550508007114390970253715584648468135174443328797281119999350350212307347993736908951327476544368091267577800079029009453567558009126753378683789941550067839749795785515512113563610428882166413459032486515457589671153350641268825577333655208648698086330316381557484592654939182944107254196786146534842330483615579215361366910535262577178256049381935915206905435138890396212664150306457548899858037673538116153400560708024325204861020025504319275056182487266975846323379101544874792249941136227235248449014289876051125665461731296313512484158377698670846214743285409516440425581770858463153206256599132313335291726365770149260764548741270166289199178350413876548268651392640004145075736045654221784722191716999320947076691247143764147966156856881476982228369287993370849774635560483266226484945671124189182661693117126326845398306749710741073086572681230293176091649375463499622975767698410071679300473462192327230434442010448700234638346125626907450218677830199623798083711085201184386773274311205840704415240015418249954001750542001307888605800567289888504554263410208421963007385872029606723779686194748496284507566548411593158956584028015855727873840704091895541607614011021300731950223341402063018763049736460957019032115467754881900031295496598365560006131121722605357763508917298578408874328737984540566054234030005120900779260273780992377898091258865099980931381909047112359546627757740486288493423369709065222554201496841382169701369521102667574703428476991160883481554765104695949069248816093343436266346870126108699093232416928630691663713221875824015575937507850221218809352958596765637624384171662350643589126572045425321266197721204759399609769150990224444356775443910160030000796849846298013071020419445830099053353709887287028027784228069280263224085347143410233829234037345217638885323818215556793104756460116859206874978419831776633355365452755789834660661517024938780063624552885433008898922501341079081619619539567066894634648085374318148782762626340290041590505620028028639017108745380536444562700269628336857359413241276893462126103676940729400949285816848217963052948691885122624288905814323264014353622612629317893543575310105261232035576425651463130473420256753858954500046689622117147798056212787907156199814500122936972164681377774913225322485773565362590205444104183022523091620064593410098665543705053541758888263850578112313239568870055933951064674387323979334296765137022425928441842920001152912688734661013930953039596974641343928903093347187413389112399816586123222273237124880528752382927408438116975906170504486597288642020948316804299073108447490644874558389178761928775715215939613872307470756689636946298110546596378662744617944830496299992450047293434138815630799538910171188140600968288148008359649505460288824215612427571720427611971849987364112201914400409433284592391289717968815781981909944155719124373366853367020276711437322253120448437858133927593654415792902288510221478182044529863314717853824639973746092998525347802803815835040861260455790695834556771590264594837572448425237220387740913192323972396664546016484639271078423329233016162548373458033607108106094953524841240670104458968394475409911127364068775814912241014183142079300767873291937765420444845486566879332396277471354639883383108293870286106529101790737468187838975403890168234061411326179894644508712627401226217536358510157333343748483854476477283091823482806674684608506058900448394462287042673617335521541259354995512881959354021596891692567641190957941427204176249234959197253754151209337259711351366239145343315980189930877552164419882247113723639458118155387965854066344310889249625644123123967307375299498363980099048628756073888035501064964760279635694543317283963384054717898738556397821931385591761789072659676956539747059536898892170231182330157902604916789212968636337888911698805878480310246314337827072925864624018641111871895008469992639125526678261851567612595449747099308983383832946028658526780731634814770587366202336744111513609764874190777286189507056601386051982276569676788699087998915306878350682625383628577031106447351759020233216250900308873682472127410443608368422955142477097551630492135005945976283043296491181367520738893058486148869474066749156550523270650511049045197982204857728768448419179418860222276387980288919274488876166315321695529232572711045328937650594546198521376351742040584918612040028806192356437117895683366134927770861012845677656878415216125336889661588286157410324584230682116554034842379368200199739486754888870206805824481399037467180398664040849953358456779279807014480875628992003532395702065594614397903579616707473349891917169808736654616393368110009673046690561755913247854451419468692936347384764444575856801176857968661333543682124523373636942179560617654615657300563117604584066736354617187376998556958436140098298902196109056237152427225378145932639976862671686232034426125598725978602392250422187504809159787015241242544442743185269621468445768394433521272406474258959435145123061539739602943699752933812975387796987683286117146592775290166080596872236408587981433866089513485410205517873520695700767507233351134764015113339190815010385386321051105984956122377523788227728014218428599985384933876756478983793113739066338571021476925655741164708955514460299806092658910206625839667482945571015572338238324358745664224932724154830993773569959431233289775211369370184949161934223263429695452113352443374698925310231493040893335172623814434269957827427564107542447837771345094368369670859299403427859268330816118426606008088764069651771811258436674361216647044865671675137708267067892057423038282527263055142413299788220137844705694260840155022722267622674696571746738224206120172561295207864405392376121943398674348999529521210881294180656729882708680016757751357835581571747438735445936629718968721772423237744264597038442740476764864636699476365584675793003897251815394724354847007123866809241125646198728454916177175323852713187912813427325278234564764542187292760207203172038947720764792513852272506600748626058457346829675120331568205595456319570721492066145895613562799761436423976865954662973899829306085206623842650064527095314538288275760916413245865424710336223673415727778057935856252842665158483988275419647656339442639931690029003376836569967073539756223210613651808870494217841702891330267600936751763044827143922079496370314904352625155532476702396175896419394533558941567259596557005706152243687980818172865072720054082034818969328884214271171463772634725839147160803900071408948418243646357844307151453746877428922558590246343192007186594632932727284949974236585867592169851336658051080334891319064316502359028584331108848614306651879120585538632614708467421690469875572693663311215786722054297469946937568427027890763170049208529516824894092613838773639588945758872434199176561224773325282858509022278984051511473451972909046456974177647835983248362757835124157841407848727306183992823615227262138523634612750848217983935486955432616759285907952412899908457755347173532640264865886726239739721936906776919504430002840151160193869196183429753311136563376453839306224187875094214332461997952923105285656278238308053787677464394040305711584809841090261442310604291891402900292171033944248480899709955239666040289450499785122612784730686967784196692625182145323700326907954171376464788431759463400774061558966653028283757531176625864811313235324380699096982958595251804835376424740075131723698708331154454391216279225088674798502258850094149410911283552624886533983784654237874119867131252556518981708302893800884063306026682320856319285234385796548514267412605696259069446164319755682019410882910707627985056743969896871577308257330630453645374247100611045573523993152272350371342700211535563542236785770577246819982108571159650036491388568210290539582352829067764371606745877147141262898150046518769927844114285489972913087552334181506208629199243404692388141035060661010958715124233980100593282966416854109137716559439245768388528912629537231780933796984830250123850350400726378920655144333251191653290302448880519687095898411903647053493494629106126373540391470979394655293738997886746649252198838145795222429586958822183639984913605151118144641857318606326397876667760459688989980056902153065885793112174582551040712706625569602575672926679547947253267208175626510994550133949756007279535517144869122311187116997818432799460901966092709984311163940757901654782219849305964725618756332139787591390574715022999084618949929411838032274028995552880668817478580270573820826459207971106572549842358155441301502073092524443558861316542679572818480600769338388832997569972119518116808814907259391213687503134389943681562730375373971184737834429727151789468505653652701162130748656240908951369127131404999047913094215560480006227400910133084715606539304521741123005917740910594516796286283409816997418650532525416431023242963017316162147268592301937161311926307344615897247541654662582996936387087702717178129311149739374531788057426849463488591916701934331688332654189451480272056522512254407025939627014818139563320060944693731401259694021915628802001067186229442699634083225637656604570391751706561310158788261244030240510726233071371469352213739114813347442549200650885448525182784173052540591945428871271581350621907372334291127508570471630411013823334901409560046173804854293460958982476605046375718716506470953999247221670077380355245635201542320647687793568435024496702933633623602123116484333752971713826846358364745803899679146164954163872276159157113877248745666785053012694841622755575663875589447375341571441781721858010203940445189921793379783133788087014895962464868120428796914379863306540566795500189823844955545991018360014074293223707699290855540420304810906823287062347755834550843647396437018936195151802613421134921447317868141345653087488161053063280697775221649159736598896752036470609698688173694933839456350878756592789955280241328641391228320484463673451526110011189385374076131361307674395052344872527485526205919324632552152094545812002364478971331368240068349836022074254250388947878969223693318170513426198207216877340904500841047387592430292585289566028257580302700131651563450666202248566718402722269760934573096225114864288703965329433802552027129063088307018045258660048474331480475648430498827543849319279607330751705163064141179340032999190287242368379481447977827512002964607695033517706530367328062915256583660787693125761763099991595970178585741691444137251828838567711926783385229044989582335279289146402070830505922306338553883353333231695237044626827254907351627963795112761729666177983239773036516780285650947426403137561251268972242840755103507180168107082024553925335232799421332082508104335026877186604212215124506227563495345673764427886000703188803635761377727182611818623326756331015553217720925692012127073021477483717750140126087157576101334112141432282061853269820994971121554414511467040481668373143324850864147214390163574850326493814447541771750280393967822712589175344636413517776203374649074293772874787454254298885025934632937050114758056549020328927002054373272792589907693285458650203556661210875463681306189840967880280918641860936487021274885891196852156515138111095256897674357983316098437960915900448840174277759716145426907965911708537834777422488037078891025266377923854983467253178980530875561537408231729406923481728828556910066109216346867314125281282614400321889528486683691037173933166775626304609835681036068850164439234002354244406295286963273190128797023206246587079232983009431951849115584821433753864499816613445191846714068669658795724180750076511816740566554859588618935257721161339594275483947400945848091977478639183855569418783020875374417122838863084450739770872877515346593116687070973063538289464795776870517855688700516488113891599702151128926175551375362371808799121838779142772568840759494875473518520816076686787054331806881831461541559690365821887432310600105898753786182987072562812995395899958232172628015010970414303952464748593965370936100728461186325434176907916933374899350923626337386997522837929442250275420275723819379817974529962828809643757384943115273696010530465896321472640566405923366351057067785093837796352088345874966732806221766219393121964891679101396303726746166338330263973043946730513197566413634057011514600844303773783561954700990548295564752032730825227900614591347192571033195455217157273879044542292373914308626376211572909409929182497181819326464008361406463237633326788491150389852240191316418695672088771111922899608421836119145420674274534519460171270558769863247997163901849971955108402915089717339591734485842175276641686443930125060080348327367582338330606075891736622160000344234003041997574863210922669783428954707080497739728347276002300059963701140377087016581887095955227122938857325371634193021672144553676307433546603336959725908508599866649312881258318960028672600118683032800884893584534270785696092278999643948039643629518277388594556478391480924748851480040124242833551304191111985661477483096272032501924421388735504814418498453453764217340286461153086147784139815694454907602252599493489818024037125310925279825109371319007405635316680236109776487535021335753999252889244954041430416846127700094808487892556821100096914784897002750627814784552230787745533339253934361117666262468055679189011508458972486211954582475219089305186150374589405326019328867845009147339980028810532089510341034940407799813884031622833762468618062542395121921418917489409793894086859282921658137566635898570842664302667056810278692830041126013557567749367089515506372853189432616541666613471910476671212252070224067035251673641145265163182759268678945930118020321828817962817650720010285950779511987760382299342140148416508012670745850156368181444360177060992576005491623378902277747716169051896609186971299660420608004165175972180735253806555665954854320001249418906770180093624432440029629775874115605585343764252365001204247108734855557193472819688850342831810404462084119389511567480504377384613759199118263367975850595689708164175994536791430983387779374439725390519861648186733087762553157467336146061960971123427625904283815529745701576859672553063329732514910681052432553795859748751004506629685052840362478373986545081571184754622437395207151163638980596170291799024286239118257049111041885529280972280043665281710764367823879229055745705934957662051853319613982840035455672328407385255323963812581515652272486037764392592621557012052574876773404430061421282100935989977247239800793016349490956509590865635362761154109867175437973425222408449100793123060721453680678918872320660292015015767750933809191320385913580527591819167985768168009784635631978287776627394593317405109085525726432309046581988474675294743009426397920831931690475115327833295874007013172887601429112304988293269579642258851344531752224279733302210811560116682921971792421770864442305230938780715019464583111351751115196051700185751470966149378115283506369540055733265271874162638833131037411039375692742471563523240503115990053018063944069987168720246929277718670518169767536579650667453395277915806129326448954736406797204822106781499032693669678867059160225872236649755265803602108300364847059684329731405361000675624007842260580197265050071065308174208491583182357632210823913323056894306819863836793484930023753874019118251052209257073367191055330817193206552343187334286989037171070901392617428644335940884262698996708956785213283328455911316040855435859398065644610391456397698558433466295756527588410976862425055338539584541210041188923190662399331192045783935422281605689891172255427479450739939568113352570474217082404875503868774418143298023266652043834599106578047778558660250621042942257629112553265724980763986970584665044258174263796377042147756361512807085698458731384247244991070142232590529253722739657161314876178932077914017818974375969368400952283265285801524404101058860945074315759069470324450407549678540028996228151379714299739470384770389738412955874668644754064294715736163484088647606034859694992259574463914118498267755525955658444463348416124687331033529158482216127125086466221109010964541088772346651968908231209383299699002125934005873610611006669448103683848849180255280059545941205401884984904965688642751553982747391842275919818940715182827255760367545709051264744051705554347003368476027100519800957522863360907717158440859827910028960052183875587588862860492608789388871152705069999462706218164002193262957059253719859185747755858143477162778927743227070283932576888063231269161836549126528270029686806538780676409214077605767282319080257476351953864528042202865301430182515551089561140641815866851913041089676831193000198154720518041772744401884623889266995469583572043596617625013398194506928184845354438666989539968812965313449081775721490795840347022899101445405777451821167373510424497752189660464412124043685684321133591441060141033669221283544064548899761655725335185024678976198107961582328085859448221280444449288203474189589414316883615572131126006787379618208695178831128102768393955211268696991286460270832971773428662606200149979281959193599296202532994874030892555511838163966920060362702329813191897228502058060002109108702302803955224530608630239966001185078948312842309607632799871489988167389913999218886681607979088098673188947380075279815615228610458712190190800740556628996125739976030498421835362282233390034962923475690662952200676609857706000402262448420927107970736390183173562029968920204817926783206511585070102759658658063198676760422507220676081502252430229975393752373412608123685730379744490688113999234977572501172637732798494819319374318700883181021806637445426293063368992186093960029719017486634079334923900064528865826057623400530489856397656518526544971717387281876023608183363318851285385490287426683892051863553228356555560100230359710502688343125722626721110579135376354886531668755087949825722299508691099542619989640127131782522478798848557794890294854371505644130862835834940735016672188113719608246796178730992614983297401839013776957529142758275562496203396053476893477066604203238092376086521298940208827294839277282119804715998287677128142624893415772965466242355803746428478755156846953600605380848062711479620702198515056416360878408503114572755493670204338507865377650997531869626098385348175399205478428289380961099410973919309584013187996866136290551389835811938458194195354843989682212899205371309897861972684169624636765119689293974393934166722170393015323135832625984132805102459563495806141351924709714016654726487788724233351425902373210478530171043824442484456626667398488799717794569066110797356742107719938534760203255671970405628608732772846471100222402994094118002302262928116737298240644242591789462144732783501212574988671794306166076690291855404722400891663147383047148028105369921761575462845468918104347051825311565929929440987174419737815989014972921837864082806034810361457707076072787176879507497485821464429910393257818936036640902537702860613375803646312490478843187365546215168723671813874424049209183159930088310411906912892842803644351195503609791277498671922273598558260466829232276314816601200381304903500737530172011678985282988431122901011051511277265736888208679739500825096166413606504971251319796809046990477038792971494132361718672206579946226881829257953876801285508003079048251545774724167344480560079846317486561059303374473285741924283805745662094480788232912982899716322934750687408122181293297077223442996525200850195864826736776068278121538825449943876331584448565720432557196535797618322418440904564022010650136744811081004839836547910442270291516410349528312090016495652088451209165084713338511570682080981160079262567651804813185577814362977690521826006503876447106098461314730686401275073937048949015533611302449143565256969665042253966142017433439365243462650227824223663094662852373054641301069058226657068959303314773716765496570256031631384225605745087534394622453963292580075867767053877445409235314597798800812314415587217398008907201273828158303752075382188719129453636097626472474828254934166321611741575879981659183458273264516432730348294679854985056880947820825546257273616686235481472363777441100711134467135832059875641381098949792109650000927709265526172628299045630934376239164886424741434892024944458405656119187464271575824169038417062788663928173308361358187705336661905023868268008107069096526442799838827514651101764639236457575183221416142882947966823596652837453803759279194642790483115398601266256107561415036581512127147890321206681418670709944784166110829255112376745232432179795889243832330883696108573362164903815603393897904259553547238917795421432213966116345792071721176692852250646302079040925787171257575986110824980781680366249363728565284547960128227799884916924756729039710967551009364855264246982208692680574915840713063230754293968984096671536317441212969082407570617260372980697398989639188125144124828664111568411705460549846351304997758192817466575769000261937594884545929185083554968718788627249020973538780954250699482190519048517811529026529405005161266013629686614077697764681922751018154428314911112325906027980239116846642495304462981055469557710557633981589342826637448636981416157539886997940054827160575739012184128201381512380847212595487948227908716206576746872909772588595953837809204635417817812329226839827095450074970561592720502963475797057037787535271317546131277853719313066349419741565482952336659453858150451994105480407614917674918087082954842325788969634705108427982088481682633251498391152177307102318952024832105365416415765214177849906012896184006598538867684736585894945710306857531749153092474194144117397039083248593706415734546391738887915659607056741734285125711000226749058058603752975942163687965971807910744200111236066209379613814039148481943830981997642294047915619419051605247426407512853140545662564377229904054016884029102498824710640064655217039736447157028696397657440039568324520636131993542036055558635297193783946068634451142185321831416717909172797567935528161174612222909175158335125422660637076800242366548053059057632401702903598425544788903453346337328076739459890328130436878621993113187917161895471560696056627323675298567618766569417264787353091140640617965040169542040598649268330880863995262840788283170321764353800551712159619072268633868397622278889055373153421039300539305224404705026539045737719957307440790336338653854941522107494114039999900737975307181900368092881400237391069130112279922385611648073459282616627317532309627936183889869340328390674934658319295557295320644031756346109693013666603986804889687171245133503258591700376076501575063736786167973799921922410477045295886850045573022000034987777484037999722717643584349414590851276319560109495454998392979035766088400928455593229458189057268401886409318940969323427357715721476264883541962098659049164842355106720357455050752309884944582967046604465299570077863192116997083051364188551188308111738840936092894661649804609116364299920024684011631308054951136263973822433288684156602602946610940474061219301404374496179882409881167682689032382372087058156231492536427386841819878993672273218761885730682632342144510362460762633858481622758224935408230368153872936207048300024675140159722758172389978193000272952389052339031479020352547091417728230473956013959204800122763516209585362597747634027451853263964831249659301407322543315713919156079418068622291919883098910415724191486454930857860086872391620855735121508673957354744568863097585148995719151618862786217323421711995813945097817513525145481170308524710231998280958012532645088116728876003693103636591991823983515356588251227652576241954331809289729908440696818016134110245732769438478236073452921837493640198534936895221566421955953822538786707765335445703857242364110119671547623416898851449718505718686060349914771737921279772596826136877758038456019310571516445716342823421066689592616049683220922518086857534707333888937035145425549354821520855046217560931386411888781348457225005634476039858662200729008729793544816068188856000116672574177404007398812167586116923493180641868122139265184573900841949734827005879258913649611071241621559517954781453866683411356680939602701478374968434355911367600865697115692084737329865869008748400443645516164738675429718246432182427017935168150702089916262032938839762633068253650864798585194984694614658919152819836897313518508970769343188025040544516084340411294606888751163958827160956443699717768211988273385805362480130317891671652973386917555867013333166126724440190641921434429918431972455558704688501296082970126889566713629370727729233027249757817533389419641004055229037463634877052160078256186629029663327472585769825547841897865088322778800864220334318529463654497727990911444849256955207523760892936769165983233243017691745869486958200794184368991236019149035382448878833269584133402130658257223507206827230702325612546499557207408009806890163279854882419786350664530743453466134297481281686940082508042628895878013896567987247601868176181180110138668801287133364667044670112259757509350358564892359042354737938581510104041150538936371358649879084859341080149898863266129765797258759013793382273284033905248899999772334157230085566606300970995870085683196250420599035668151830523617630842243600824201018354365526433790626341965415085752269067314130684949893853170460275690029745422107014278928338379466831221660606711374850958608324169353514580053876517863285353564624057819553659671334013615912268273226146218803564363699526035223285791327895662608861406653940853399472237241125393426151268806583968790236970091025894884905209755625920127642882226422261037664547572325829670854771875624684363591032520472682885475362601863716128971698015910423801558405884375575203700742282325416005299365333003791623604927980192177196152553591310087173004621392455835884854088269140027128129405923787411419606710628303270799577118209597797870262768019273116185303908591113940815771793797467506564399402795759756846758010428572251780214098363344474428390828268295539633117012098276954802235600888935977679274928920949870970463790737339013867009557770820181309999181410556264455562154778769913932024587947807731441131437874284595352520054281382220046601037145630691135723750578098410884874245498562718176374858953827519783398921378819003026002798042175067014517905726231090752748207991192118312430138911724542441298347326399078372794276429449186525787486267318400339637454953423261248130255263182922599445499878016169191633142586344820397242744057930371736895234605001861390076638654267478946666003036406751180607779750013007573588618734860595021717800185377824902450013937507521522631247550093805175743635685079101518210218822239521343893047649165297565307180228210453671755872014031123198278111824135652444237345192524311298497410288800914700742720408651690059264371622678387348130755590333746975460005715263240500379439142367050998354003010665552474640120653231830070473658326629860285735642558512809544202064108987571290624711859725956999028162600289944277001155967880733773938400823111508315486659850220129950087631497098189255171742354061826285575369122016955060411354043317956715711012992238900605745282829745671420939564560929629176085062394799247460438178728212286408264172637882277668536498669066185953456664909996245453659075897600116356184372549641280695305416272042748773574804558466005671332866594125039994059665502418566634985039766408925971302149045501615938391665683577560627048769856955417702467714528449245881022191193692296817767812456100811250448776055027096515937531661685117121217688783972496680169948200668187963940326459997742801858113639204694310620635081140606008107884210647951666193771142125983736672172644089899363534007670850698710594690122158142149353852775128295295960325965819053948092642503075868745095086252525717552937978902148980098275665568249714827362682906743246352579818488894228595025621188125628902582873191661445096725569754930190328439608085936019134380660225337807926970966686182326656760160341903501012678622079564999433173033008134508013557222243354091743813004347494417267747877880147666982082399414424766773604736099899580070981753416261786742297262238117873989991340706788336907818447113766870791251093718625174647279449175501369184045610718716756151362770871354353232436139130475147324334147189181914484631860619465297009537555836574964060277916970603466361623151861554709289840322339362049538718852112611591248145215417791766221641313152839425295774885237908166436194935077452230123702931874480557408129338276009203911574380662639993864440019751137194325897812244439784119464263705821364203255515465683243250989126169253568411820366548207137461001091773199735406824901882376204327500770774740635596571814740379689451626537007931960085596664191534115994211523468859055202236866089807775913823264529675074660384455900984739335104981934623569792208561320572627483307157554447290965585757142144958682835679478046590052404396755869973618425174901357777445118717764391332709755107393566580682055753652743754503377872995159512020761257381547911118396569346854921264655267080816125944871292778820406713737134802347911917418369225965111326102474973785652744472508619661241899639209070331683358342322746244684580325905627625132306468344817800995378053461068575179066266904718057276868500893966935711209601442194916518240842712046268582507095861442350860856078441101381041852436444895015232069780200345611449495321108834712724739175105199386099441201281192238110963403437675829924386503285877132262307237591757740498482789039820877009957594152968967892732734787595692637744060840423629168639394250852290289387030070974011884469906018866286664853399742723021313124282308670360244577556693180599332185374693875499850457090623457785083668996514385145885232549501284826175585856942015055844180512861820477649969322271211464447444740604156078311845081579666392440862601761209819182408945017412475775311967906097001677745933996152754948947328856447525719380461316904767283831686330673212376777305977738810193447938635628818316190977809449467125127209012404784071955985417957164408404981522839466947563642371311893687738002194415924127385400852545196790562627314252369346380155080902229776274105697180256802451051379677648287192850975035466242177337181386010682624318052891904786749926567876606444920060300710176722164019224486954363816927571191403654835728991884874512034676193787585057795943504322658103711748029772797185150454994766145547658680790937289133180411090538077705126853809712511776275397252431791784036721431395925573832734749030747582199156956567339828625042449932405675003560820804663455274184606911192544467776236397843060663869506750225643240278775176178581604053871833443509780950697849152918184019327319443661735071382475523536751644587793877296920980350547533201982827862775073959880873402586603809974141780595483704068981162784092674008239722885204181369164921548871677506197617926211688673289301507078349103392522877096958591821648435486167846255589567748650638764147263686389382787548269458734238768501514230752459810617864392255334958912946263757106149442922634611875808966840020304320501554485427167959354858438137265617705694168148066763485102823175622307264599510336213045501408412113925749650716535011631266713230414914670240466694853673395029792552035262788372032380765480992317018824073801406974439749657288306357113171634688103902565234399498671333550397850098688740498177965255465476943347652552463904911263931011288613373473498300293828792398396792060076878271178976308595250858771601191418804707996916921407380276793943899291018740656257621705322918693471463921203727023842802385289893533134245854470343867206059253833085349101359564792200724038151163956311064826707111294075956222158682228483784022256825167297164071119006475441585358057437834909594944371540533200557342213375699853150147357519219998070726031982825914391202412222485278629158746620967148652064544997286928948352699198591077238883775109526008876462409918266563961712164992315356106903151492118437800467345827725027708084332464809676673666575305780468160676607817618302068788555707663184322727603821370665214568125252085806178552122645970859188687560021667970254602972261898677277578744399092528208473950546805720198071158061916140697735439090061807408561216378438992899819397342801568132024666323028764453059455116182837172134654995729499956163962176474458908640094468539698926605228801855005588088067212262866282883677793061723593114029500179016198845366229427739727430651045971090616113522256337584202066475888418257142523991900914238143145540602253361408734174865651968365490332749688262182209705965260203817643540829521160998444170174345610460468940245822281344092953165630137275288119585152934679604960046269717562802730108825568751223062195954219381189426239119308534106952948244815469435971330731748849066846664079695600192765737715196373745961490848613492087122219316826040911839193255507660401285682665846342330996230959727615587116765063045669967744298445958413252751504432155567182922674733553560634888811857543125658842671487307038263420778893225088560004833656552591190300006870495252607382870246176307849787863761125638588643238873786576069137170902479221088935472287715497092886125594989193484311457787381308817155583418014418121696068548904008117572639766661623153651473406307577518779900720450423924058602366589054382461063286685729188235374867472535325400880795201908743743842249480614326988083684378160420883874210407302025672659016330277826565358635193892994385850922906271263907002538691535231121286534258575842249990084497819461885562141016967725705453214215494117612088461106020525430292498923762775414136125842939707865829355268278914531121082476018753770307630265586779382978823229667403693393205674454638671151061995102104759279897388368625649820939692305045594625733687782964580644373751921438102453606964354161954139839970528032536919238592266419053594530558847145641485768049076891466185233132226777970359802543246115958068754605262614392317631577679122893056804092967816718489173534734438660656279896185273219196874890366283613861098554035694122149792157015395134873011051032037462857257952294248929616690577056694175385807739369436591696487423926635844469089774049644594063486653257523393178567667849085313097111582638136914935446608263570720241114608518266694528628682235538058704637180868767674388739990652231743511149759941397475641275478882869832472325604265998288477183753101124432456506518365483210779969575140847804777087153681674210386320333930390348698569424393527917679631951609105371520451982854720032460600184306706161322136907902905282259783367000201275448529247908523822677403363911381122548436245031274512195565662475476433381464299134981805003245258416206683036833600427165523349974508455009300040203392884296031409733140531853246972486429114871708077277315962956990981483611334654388030267980953598458139820659491445054867290470763511513692068022080634513719230897762640564799815445990408938285343579529382508430112513005995312650995286731839312085360091417427756093122010156314309455598483369790895434116916592249552393283251755678424699649817445637776887367940392539358848967151924256130227375526652357063014535052505414439036929636559144516415638398075779575396424420545390264409759983408076248852569748832018955780366933440951351255186932777460641532561108506305101648042526115793454616338289780123192715645765853932864678241375820953539124059889448942209501330205171875041313091182693140412882573322479688772894594121345310609224313380677422656883467200999095954386161771131630380203126043840625949174690852533147927101550947679162416751754987132447457241669927268301731679543086991909059842201130156400168766716156293770421217619222689001202310551334227836027527212278196651957800293043564393718412689315268247641568893742393399188083440733982699245801570702086082693294391093407918341552417896364151170872081090760280878995413348971906002757567687514804070571781073939411721503395575048332556438077101911663719858217942209083802440173412758204540684113587555994689580453867151068765447840659229934942368188008652144474899151714283522465753882443734801996961433015124273147134077579829232147761328743194121255952219951481153717010283795776867996990744661637167876597379474573233344718206769978284338105611493739844460126374699071698283098947298900149036086044681043309318308452953303982317831884386601353341452603182519086574037072017448572308733533329808186689906021722074614617580784143512743490899150673929744968104848835672338525576236411818674196151376893793016037520373674307129658793609549106764418948218351994129110643375965437032160756240415690671792847523541189190872285780031503701291546202125138880763854484668527254088273375209444615330098581488948846637475826471332992463825521189121036249013413381534912356986016636948228635988640782331628264718374493803523517697001839267902181754088428945495429225608222480826837121104656944357044763755176959718639254060760282493289947841725286009947341821355962320718154189458125735001724093204228428552808755249944049706109902973821519813225560758363036209424658774361799494697906784361069887175680120411677084524455824253624873084781490608829630783352229526644411924782915257941155492353728599350936302292876826987154805819509363089411799135425893314785454388025726371306623560916877030526319623337935029042980507765503739641374927675048935317510673933662960560962051927449541634265429174532261084459367490084304120286003844412132673265453452474903309471184133891580076002887266837942132234333633499049483933171140510603175019973552579375151355100502681786992517395317398057798630314626729770618652648651908807863372717046787067713620546096140802537118986619372636493970868729800073357363886403550879988009565990770744582081772122638805721096493871675072932158785110168391263063876640874383435264925250082278371293732393774246324407543607485631137498522448139904601053283646131712959636472463303368894271061855415976169743919202378547180482673095701959952143096862131548647288300549287746742969597021632139639809157465540797892004371893016606155959440297161157454526870482798543063480581329017084743649659578769512893942710754125788690941224790525531184834982560896105164424655125342786546781102957537678514495397775894769157029399158151689791544791948628891722904677697073898150684846751994721930230646928208154968228419621076171084713571647442086230340262408158670806276824566528148339579105497308984517396297475330098823654169917366796496712428599538617293339814760192543158288747582007842003247619393585883180640753219245972219122049777023160519326417137404571289466694407757314943941242624740174567242732006057633406764670975508737537493943057812832566674084413843442519815870454061800014441452383105694949972417173473010025853349886844859165714585140577871517765573154063750898537070288824769547877420696033792914915821558742809657299545913557649248239916096623699268218564073958215985027032890578304528996939355072625987546411643878373694911094178786625626136657646518290637634316324168190816819596773834763794965834347888695817501040967203982901946304847665085949628889072391572248088468211305337076813800865424913266451454883683805664290398775841050007675225137235277666211435810266990965012283418890916512309799964298153420129694455074747788154505544042390360900787474544106108310288289358659398318989669992465209185532558290944445860656778061487689364694739494361425983783800232256317070309890827236529660336649648660196242263725070463211209865754711755420489252419521881811117896142709253927565127478218221569882934641009644883777535086767876047860030548092879455189151381931740527766232251898194811336759684584451730097251143036884582422164956868452440057403297593449482648736318453207395976510167559907124607158743614186100904609270706139320537656592441546736608885912540347222294232437860284881424286617996006339776642223680536350521174296737588972792719385569395982406373315597612737725186699302307878599488483324372876969959372829465105776361913763345967081965132413657692670863890279433555659020425616350666099920346975201115641309383578332922021029805062347892992611415321702414749990613000411131667982279891352034810707786498828803825775591677775208272392739618707373498424393267282866324014661677243100935733759496541324610959706810885806902358847588334100631780698700188181367887098688927032867383952451789087000511541960556445759003061486835092514085732973300459942892921109392297285424938591240139019841834439464814650441927068609739876003428041464314662922210320191451826232087367496066761926936435282321880825279305417722445658617328643218968518199252549764627787349139179560774489186707229518453624684230503327509479175309330673243589489883954455767674623310549905463064444255931019371864898179926427466843460710648290064031637504117848796021505223847737188077415053621241438832436489141373953000259278207340246512966834216874469359228973397497820769446286623659777740222642810894089184710077759517814360678879720933254933828396094928475365971694376588650359317030504353207098521886632908244837350798268427399749893910155315357116070607342291007169628362439329321616867945414360716714872518196671756755449880498268857716840356765749947131213001343903846730216312117575903850712426239934184876260532271434147492285111326540838360406146737550918313101248558416387187887679648787295543443495227592216040553819860920193300152746169382912963143700497241095674298859580257903545931775187015200760645437867696900373839396325024485059823283984658040747819401239329720295111486922875963602813503598173889635557629241761497606661227023498944194062034620269568072131036354729015563435081082324366669628673990039872690039227727375027980044651666613915478565807471193267661599776176201093549091449266634747063460086296981990859244367638211218022125567648863504235036748029393425411945270631495488778705253016324184925881157872109488140681756675394694619026912350459417398559544037115209122756224496652634090329647362842889183774380707043070493404002974318035421100391970238321351958993132424566839487003135498085147242201488051789431899897902566884521850679255886226563499455880522833115004108510133034262146438191190701502306584975765738803053175510445590950425202096386387878431192161423057181901679920585510792355601349301573246505227570763175466162642427943803672876259096163648759465305841209651410496331167768161367228265953745336215388396235242082155929822675842317856989491766934388805766039500651997664556578544167553556482038977082391690778640220823805367222621171331445801554957970518856843407408147142553596406693177102859609800659949298066333175434993179126649139327412714630082013515139450389380970653419913785950644728457073249511662533994780579463789796022573545909388221778319796590833856669847563643500574137796516864876153570709183745157335219321471599063109909870436227795859475595618815989235624540071747244149490030100845176856122572642491422954540931524061947778170135698719168552708925690499518517920952113208405541427945362485004420400073723005068938438775097962610873933405671557774352137866829593959072464533252341508557061042222833870769692024968389690562422764299131324483759119153000260062169119712680944363902677703495553216592481664146332467516822380891325594891494094945982237951712989117657490394884857867616436636685602242623998442502117885114891035602603869526812471284069643135400852163297138964925923699113683162302109769494391384059365948620905830331116559192834323102649947105989244643608253727180406363705872469129724693857980149921387481737781278284836564344551521856934866061661239496716955257296655550227830298551519257230974185437887655685013540364040646236332150351617056722659759708378878595469698787224303241610651646442553049760249268910575336639197062257088745197813698956811387539732520977964627056434398107530742112729834941122863061966673148882025193250708647014937001113943591534989397725674597030029963042371967646906152443085359376106414064924750258003717239179311724636125071969936872900712473824469266873559489748835855380133828942785354153460265808037239506683153466986026066033368499993888997352872602698575950526652230340865530913295867684825517584497404713372653049097033898510970859986866788367964718205787164625283268638632957731969702107064106742115774387177372426299014055289369814148860026407547318485709513176271478898945046364782018735828811508549642163247925874977659316705601527334099211851872827531046789455144433865487345448445513824157587556293500186141525035646622282488790435696622880735871319918817001967193823940382439499089320832743534529616915366287948365077902923389989619123056591854699714398531704780465728719006525526095849716363208413259584149912610106190121251334498700260882307262445066107271310654207779428245562591162351454987855952425715568544311830933377769307985694231786740324248051409014107359749858445921387859790219331407143805726519497160871124340601781142833465176227840063094298174987450690070334466385202413053896267761689420640766046055836156840410785642188842146595746521370074557832667994483013501755755890350612002053906650100697014547618989777143199443406907999253150249696262280079773531655771038832571625997924919520750397369129923112781369315314623133138623804237727378008411013705692899393903505526057907072841416261141187921277169470929062331929065762075302002913880167230972298255741317898351435674406860301773143422313724607605166428673042086775006931555129731829070012878522554161378998769278123699603327791308020543250324589162307022402257439163051633227943391397522818673368798285423442062883505327889627352179707561966692155084609007544378858997889492363682149589958135732137175673528751605664677557056132557912006089182479895658203286893491359241831199455370437892921123057096054773969799856543294186407862951088557949474995079158104742978320872081144409920938145897921252809962106369630168636656573675527432967930641002279771545905262238654056422720020186256823273848182235685103996154381223818111675626830134614461390616310909375639677495514647054676421006657519941623516239174897856757167356244128494452740003171201084995541185653596794041378768127572502877314960594016901163509041292344239958656711520060524260395330733855711981644247034648941053617644357127898424043194035289224255447839445181989319442375691370020747189828053944000504349689307321082478867912430396110906600135489359709677354788473081377626705436609415913358555019753928931514850706878586106185066012936168648005812596208206718382700131447245446873995528532469136900691197431643103608146514545329661787781690743973600087117837234414827685087432251515279097218528515398492811310003268871221839830221700774597418483397339429983104657883547870028048707836331341492369054122400243383576105676192061834475899751988593334059606244442892556165924372775167677631145694625243421126362017023580687909450324312484804969998831671113171637331504980555533152089655606049059717742802204710285381139240039720602007954272167228733747710058216077747858772411100279582918239072199183074160098696781114125890577544529537085647144567531253420966697167343313164461030831647210154591855426830548955062221221276339755664857597991125475687403221082986758249578987788590266803338881752865283361577413429007180609101757163832272219306779083809587952313789715659216156470925571444620996745182926826369556557052055511471534412917846039033900261042808322746758890881994816892488724440257107495388427597687334392235359440971740841470659676585327229045646433455614385370020747524235781948047549057686210046460736732649180013650730775769665803688256349496023824133852867429196573233891695558968489569167895956234675855096612146850032137502418728176073896893908050144303702486828298062367367479417744583511078270886756645580147189212754885694964930256644251469544347348470300312280857076829608463143078978608215148623611529794443324650989950676864152809676055336089705151719281318797451751928895356541754874616529205969389405573709608302712397578788041937894409343943136501603173458742592180427654938311399934011518910968725927899164914655418414675643470262406323124371593459872609621247164151678993333470885613375576369333769469982210883186491763667421133646117599488798620241001711775240941171569970230610154703945911666713719611549019224226700676974800893289845981055684889852909554439394562467527667028464062072291310872311550467545832951190073617504586271155360511638183798618423535380434416973617901502694534265546878270994815710486480457507699115673866919753602974234960554457611707157842844496010390272959645728386825824395658699971865302687459612197282510140389125281002941331585172573239026749925603690241223321220897994711124784346200017522927212644653199746354885064012025822133899545715114363508198994005319550072332908653195676914859572978792915468657283321738762871253457934061267599541911443500312965226885310698667113293374138445761491099667559622894884292915241667021312463524374395852511205799651025975689904890599814782017852420930427725733646220614321643195322177906847906627833608297922996464700097166001458802234667124427934563902198682064017235350373327515726946732302793129838386937095688634742394547971581640291861455950400791345178159849504335205281821920363039966452823267705426963872408211123045959849138510741077070107838120932095104021917945194867421199491957479206490149336094684812757171783711310726211507182541382171552523489855649807873104262854069470948610153962653624570194325239451420914500512272977533730787641798472168340023701375711009858903569713106626758415019131091210234591631211431298859468338783259547347416486459272026153272536516192018370373289782702471102123858765540183341160074008198651924289641147419793061192126971393168480580135005374981145843270468154813921149116967917130741833726702726039433641116944567091106298155820568432480532015125152243455090080589330274076849243392007511578222918197566719106505478050436003114636498578576347779656141142368780444121501805337182804522207376447635917678018962572323337423882079042092140000368521939844563993997403501479014219392978469344873190177555037157855676115759965475056558906898582973259094448749969172767513846041960693605855588457081546056122011071761792148622323221823249583153839208944337161261292709349270406475864786617948630647238331229423163205884293309269166900477470592103691265841028343036398706953926882989313905209335041377125185781148652111858510681534294040667340606968085415702037407356471417943172034362338834633237007489602248661431008153929045022558915374102602938325832365645335826085843167875954961119072018405821927043556914977303493533873231764713467270136227542378404935866829846239244249588111793579412214671683329006728691638188114201039357186361783990353708175637347836112398454894949046209143851804716575179315130680670897700188275915000686408787134909165717857828220812797978836903342776021079216048910647225358358815164241510350977465411434799564679123729723642193739017074520066142207408669091680286602238606592975791144382238935756790373408173767948163879183536252556102799636886179666870036391912215421748726402044234968384550214324861426408668620230235109309371715422354262142298994158280090506008625041674786411489073982022664471533236486658366216869465995878835142354388471800271526791417033411380314994318638935264893704423327568869950249043628602919055260567611923581997404254985796560401192036081818210155188735335052798832286853396987086966435217051115360137485965996305490125348488915342471582466266633035193823625894463235465966884536225228361808065625295553305798314481872325754876872081207357603963844669964014038135056778935073374861418823037066847065958041302988358424190213840998286634932853584315514336038756608819639635642586541299193513387189616561093980742924066804381190119979625609662919858345663056238922432741449805447765902943388305971520642889156023038449982494052501103121732966162039191162762843780484567833124415683050912873235340324067437157208861671827774899902668462394117719956214771493960363038413077531368884081832702066425975439023763088614626013049195059268690907991767013448257755627191207348186996582494251099602200241453270555801066181500703676826720519339801364755814223589251974621854004952712330846299407099801964565461896012455301116671342272253442535958289418451720493460511047146029609100275117840125557007206942015731616911765077109958891780721934297510219609644658649324767597297470900415947374875015357098383881260903417572412053123317197121761150555497841077282149076419303849192101408847528332006698756075428195178833135952331436114850318023546504231053890834473285715433375665944783574046268843320192858165595976134050712646082178187104717103612813921477578212866747463199575518315410970315715872776125293453210713042815797432667668882076515888446838648999116640222301395866014699526875060232743319025721754393227337866810208302957091481196573236891341627679124972264908336545869634462090958793786853099772769223346624940204640663980679562163865260587611253262551323880220546453417590288349065822834356400720554797629684300238297598111724737605539454776765816935756566132001849518753054330171907303883070739060850305776748031348705456365689722956556296640165585375456137420449895986808932484555354269733220068711646434881504510037919710094087937940291410559003899924360435126462534215317920712218059356117899752454517490435073392205800892502809484132339148769256577775355636404149355591477555099062328513259855143609278249043507414943110008153157980541126376585506471735824877928606134064855806173284545306168019472968002353823997744444989272985951804690286552118225703857191684325626060310071219591979662215853787162063774186646873265129693160250937908877726449810321481374995316455394273385536989109879386223613604840740914423194247546212196442646219997643906032301397924086874832852448509030206591207365582587401270174218340769621359766160857879072837227063062635092680781428571444226495536603166906069134119775752471997584683927854087032818697288557041051865808600630605484104220194306503632876423180365618456137167672378093539029642469312669552164922294276146985454149027685901087194553637786790470598689265015924735280438730510223972455290769990614875643413665775367479503978565778483972082977298124439912170350390081128298704869579862021589296546931267124006567893193844861638366865093040700573208017875157844921981617346922322892247954260163638355884092091831791640797500677778560871526730261209128310790234042311344558401502215167855739398854251762220824923245036399721787209244015469085035368837036036153524715673828421987939111129858983776559853954224278336185743156440075817851042952858177554802423669041369997511154254982408980776874456490918058775612738429743879522663708234949714577474131997990643898128263623328343994985351874304202701778757220183541599177115142184246947963732343667914686923944239386744577148658977080867097833319917857953447435535711588022783768378130144998375374165427815422228198363628332721343795597787459669631531253496417205908912269644981300824212548486665258196360589082689463883786863933872256062885407997153837614111558129107125917886438619927069691735908201105791002986952349958973154520504747709248083740411943473746601036874369326721127134693469585734721694898211638225224893308739526995856931462970911552626354009061854141688160065508166460454554181724950653764281023891347971371939528178458206212221926501366830463454493902671842585328967216469018265401313995301052785073829925511249596079357444200800922064586702051226561069462706008693589157051185239597824318309312443145882978231304173974157683341948828070887029018191989057222813479210278456627035104052387780455304269255106650615628388926426173053621796053641530619286857929631172175863269408156829034601830612528481605015963747838477850207515194686586092790749713495461233247031946497520241648051573071689416883278619863968919205687474441131647761975880866494775850834838692383645972789638996409761960518778352615389990263965977970542467977607801100233846558920179627504130006583480639253859664352582408161022276268266075444518659934793814105469831117994921869908393776443289984804989905243038266166735638378639452402894015265685134753094376033829523908096314708719192845310806827017626488388424802730838171421194134768917638292913764205854593054608255577190877221173238377653495175359900100376393808044063068792942067094843182385238329551691485986083732428980766588489721118341778366303214956780528753578473269163703180490886907274541106702225893571577228018829054306484229114682680484057317940809464390871701437870808312456513157785568480367978955069338766896555797173825636703467589193280892636322556260873048654405806303081190591894617920572905478124260598109803990350916669521269339349338680606156438268408950497880560097809169702938865677264768600366978896067437916073860165710513609927853532650080683365605292479100598154044631740040614087467893208723278188967594265841722663848057424195998029474634528687353520043037324409358334679970575702489417593030066585852829760151647053024390851444238272172008778621043345674101649176770374894160923948427500962736825510808251078886102011185686310368334315392327182849853758117839663167684965279570241731937986140939409852871568285478566119798903130377287632625025798049721437590681193668455222118503292428654529728507367088648101889305954735618249026378366947875212677484650738024069329132474830116201996831644957311196476443375020174369421930594591555894669798059390317627158325268512152243180613005687356639792464404296200427289446128017045602691518595318884291237225704390652508772476635415209359379506873157387870968683753779811020207235126473390944955396180070090360536649397936626327617404555369194252539402123730177020345960858810398637769099646640272973861851935319515967738013721137748026433695251904171974329496607760413823268389744957062545171870851796871958656801320004706751823968409735258868543833410362484543553189343856398858355789333300620545909661315287637334367538722173291815760975035230439706224676051035074308459378245411872842750820211843936996097057804343871190159994898447161326984364446979885656096271963708113435252689002083063756391901963542223261325030913176677173761547345479722765330331366513170937234279008501748256299252520082427904561261338821537307480019802301635603396574374246625162752410894141249048954294495072554564345665801244716971993080047068024822870373677212099004328675185116382234882096471340842253119523404136291456588985952826997027302735307252597457923692311888588712088885090873936864109747174996752513665395602544674310918887616044814842139922552791272242969853622220059372728120240184975703341406864498176285430367278849218355866398006565468376905263610359482749207242369144661158570775893850049721863906596239935147266723472113694968575771277905270243479413041391934373392651154820588874251720863442649740946605978569506136305002793228745573803690966780872731243045684356910776883109423479593232986526210764638794740275235977184693958315956859758697968142612699963783149179996035593126033340217948960479410436633820896274823523427144920520901309797258682472078940640338240557088341542936408018833447771084791634049859059708723218361903887398585873152958647194305938068781832864661044797220846050122306115192868046857072051228501832894667493582505421730168858854054036458127340312030768191395859049350482998924303185446596428789787354439442791864739584098036299180324488568016024584459467072841700898085063588305998154459083332490772261345861028154358005938612614728972739946543356354653453984792350687186497678864551613278768388629741441325757536130223692202823701920806016159287698588706062446747927963318687879869695799649639790164500456011652386778300010521676749929032294283117352619304162425271175499558222887155674757326176147247213866756921380572011849571248881386239750649887067061011140603987375104691557090577703277421919014525058120983961116327072309994678258634063389807412662169974264896920979721965696752330874026685777886256613483775239784089961986410322304568187459097357397861521889547687773566070657935630392585013242598406793495330437587716368768575589830847978834693278250667768561559505111513746612924986054792447161621668149001683581892962745456958386604608556568372863557808897389423470206041077491474337380324471371146392873802420887848254259504894803634916220550402396881406098243390445449001356492475634814923049382283188629551846320346843785415457066984477877218308416779984940413948304858452356711418570158963532929492565357741020247966141109609353693630617113460181482837287302244072262577354946580163268714884971125597308989458228789176511279772640595612546310106152088042003352120028890855579887263263003567880123945352131751347864258193679162946615894669789680683839455583344392318592337151502533676264653201821156968168285613328126486208259941857276135842800212536184705210386001728403594605009163137442872835916329544070856354682850341288252361256371784819332610731353975008442519894926670711902949333504502303627679476725520167485138963666091046465981954276954989341484299408369188616203201584411535180585159788431083475721140729094391345515047673970233552944510064094406734043261128699470692709535422037168654842210154940002648758909277241757050327467508909119006781863698534237944658592857134595685323852513117426729774342766897786047155550080903276713320928161520094131795460822747736694996204935510138433320813703814535434827141649592813786293625962719734572368620383882012321171194501424918623925784734599836271468972975876357372830063631802292706635617262790935308402838058535432094653859271550639650607107170789394559089658326219563382616062947663609010103103791243047854052893564900106009082619688625656527398480122814313601348699441725941468859147611933243624663568883661663164589710162027322398189373901424801759178883982141814971989129222105353471429935726017459791270019530069678389755897976917068249000863496907040231533185011729621294469825389873980614203479401453823479965611993556323729315016456667314379197509632745818007837342400388271141750480521082949245442414573455787375601814641738066240774250946478102729406965130457253973422461816119648224697343981597247900667512429331164297010308184711506180738277964532066083290271165785457874838289976823689061387268521814943440505590622784061809871072482999901602429512537437648033159468959072153494790813637922257402633760794628615539794911636523056859511825563859399669633442706719750846842518021132884972162236811778808603342551089542979179362753750089564986829269551683016816711032568011672521278848125535035837088751457789301238584347078656511246300304131669078354562433546288112804621025369594444690454443199617869624257805692787736074390354615634419219071974744563351065077966109871827805500286354259810667094188768024004183014620163909013666768607329673838473829239284551393256547737821266407510631505826414239429488703724038785019826117215492858821730397466605791070559307636284491834854711967262101390426248674080667196777436941191865906061461242329974552125611779770232058706975611973461638483170147481373358738855353003709756164195703321138460287934995037519829425957655103921509803823571922016750150224023142657815687992282129889706549762567137933107197182615007865914489021106352871032773746509096680583411005276530962162839288495362808202899657897502502543319844371729621503281994690129526447342121116735220359309208125585877919932102437114499475859625082364065253348420848537224577211423454226880190956347202986984051087444102295138146783761046817154261938855026615062001625217515854872474107863746999189186703200431139435229433854463981560344679637697464204209296690025451870439089504477890599371520014141795213393766158584600179422826694021483822096137609730856653857831613887877010032291375264435912672689177696975765113582149695423104583562060804148495502469611307462366260017214801997036906131413422943821861421382103583310732534823538274038496886139305553801570351480800848630317668750123247170999462233561314432026611972400737808718772670232224824565478020099706211261686269961730967886515342590663663374530164796218807474203348462475021684129319339220317379202178524998594041388908650767080797389945647246698614405546401188906051745328448449649708236375522620483831470619455910864134912974026774428644807571982379644133006397858649523972732654962882935142757712006372502834648278527460233639851049349635478756230646056001837148646948983724181388719135038944729735109818286752534243163532102792845690391162637080025838759817657885476383338941288348400868234083536868820668809770331062578324555689508382658130640503610052748461089261287183132130544665682228838657303151438873932293636984005186836557431902623757980853422348054526644455701144270204890142458538179683822909166772915550584692276375550682615966309150395627912002924620462903587502821009878342995221242491085631957273792350778217483893018455765635212227577695553583317141890372598095771653456841488420637871273659271514264861837089455554388326519098684427362611350552352431954462293019161248531170399408796842572589289019508136199062172904452246509244278730554643904262635763932035916962745378736173445069544300028104966435212956395993093907023060993013331926400469728673932469342465723756192967926243316124864949290977641228548674294632072807107063591506504080256530936973287191257357057471992579254816924420513913053117514561021700560604326366162205878806166486935333501064064357014930134933896875316716038427296907083177277322662553543666762664627453766912181572673396406777703784419234451708625523736599545152264779395910627797930730773872656630764535923898972372368960642216530196243868493278710028686062742605480154996943045409751059532891438226265788770580601636451506900793103374758104611554782477766960373132304281478155564069835048431240213491811142450427342784502501350769365333726368254544124212547914815658825708624774981093653412749234652702588024667733312204390775471424883789934571823411417237526935434369809552562784218965162386281848516526607021336983815284351473785895398120446713263880635022248084581766816758616782162741401610934782571046477366297341394134499880039140786441475778909833649745806596662080872125946351926486887410049766900491936904058252083609044474745980744080607963009324994237441946231523711923019513010315103652221347423764840576679848826600126771704237341869049914410500625447686609380338386888385636125186832701531106097720985813888279189700380840986620271378012501699794898796025794008462039736799052959625150630715470900799882057161992361499416906309134787448104676493416798084631126207378584831266691326128048144958764569221610245063018815525672278359405818002341084753182241395553685865666042310084517161408496760811580375192393041988936719175498603736797672566587391986930399410169135627264787262003964783884885630436441285822719043866829217178753237132786371488095505450887322759176095897878854852115238083187545060514962876559182320604646808716505192734921974315592639612999829796941034439327723167479341012229582949918922074403192604338968364403204757052860796976329026482814417583604940729068225198125786674884447525648911207503386947223922563756924613917249106594589932865067474736702936704666192628082211834030620380414260573995281833914722831378676780232289065220300724787694445020667134661508483847308177646652332200240992522413066505033521041363879190759088654696067370423065676100257805062686993544732500271684044153850609961359893424435887232111383537410237431655723044848696228784415247687407695660660653597921385746031164606789980060847398013094038482816486320106757144551051741977215501732712799748461677131169371336899049538299642759118102894118509269941451348469510650781906026533717815718748731885102131598404307543760743637856736870686024932355958014718293977376610334122920121037137106046628338399765277294753762049854347530844213442757108553717746434601709252226404127770900712177215049543238573988707929353848756733787676370456408862886890210482357371476912052821607235531219202490605835866866601333456996516094955566738855379342246178205831808443512563522327811108062000416846070617377863230215289852233347634092413819245874363867947816203090675540082129835339970068684714436982427843099771514418169536737947089296441318581608727461421848868631676613385855193582658871770762645456362519101747582900595318827742141204195673171616126202388529844932030037709834622191917036246985148037226387100752496646130129134368709502428049133338085372157280718127965218939630818874351906024888788653892374638890609683189035611730801370522302562507302332789037387027659722344872381880942252235225523311553659855038018554325676895603718818665290897213621439932299397014337431485765098522477279210560504781778309307193113255337452915692621352772754204690422236442797249382114563535016479770299394646780791001634752455649229249780336478807519520185511612069645609182141649184516051544513111396669634966412399601844339786951521502527391757864722119547919693004024000586570310317758790739608496569946818812527004080321372679368427256660523476273641497587000619956117764887628545640379257178614982871181947595952061167397735714692035963719039917278996128896248936021885755480682083031452919221017202657099790332002481766190196522765920691436473769145752304330079017328228715090409214270338252370796002827126388815885812679212364926784168734107372410756118727211093291281229351051438948351044579014018865451409520099059131563799427292526475303508580820321569600749234540158000658775996209558154816086477188404280374902422138820207733596324596357702120378522109075154841811600229730086616169432634776826223104437965072096078896968551566620710529133748844424651556296592593938757263648328540880755367259546640543418813567248858307934148757168444163097273938322451319031858495783008731639992349702750010435307978537024342387683017177015523484552240770041568201166519232724522110503783967569025472295423550641284799534718258488973034681517480606063960471677242507587263183809286706072530899413054164241033485612918912248772011465622368824100670553169242190713421816991530243571620406252276863033867772347910567058751015291131954379584267171517245158679362814332568509134623851833407457120092364860731499276099290779066359750956835543344387313884364909669819720957730391207922094043989777224967822830568669603226063975514263952362825435226296323850055749113302711453976787850486586138464956761085053184763321154007006814201959252015457990815756360681411414365064762318642109231157354559501773683772920264205186853481219714709788555581549054196975601229562073366839016729002339240796293552058072294251247918222548069808561094124471400678819457332527731254325293673475386779267000552937479865520065619483007481191706525202273177197926367143355212224735144729914722894775235545870807049574523339032018670450661506218458100240410915339225802330986597322130921150795048823677790451542537664118658974784399741095914810712033461704175102221763063228253526919767355079609288990553386316734230077798039503736360191770640850736668140814867442025399376767702955053949366428826875776443675176594426375114436765542045709174105189759212285823293281993022877964300951828911510579487801371273089007719499315262529524121795355133487470165932921064349201274024581771054346456831317033544936649133649515716105919789239574798076803081054089414647324522587430723417749430102532984921047669888892840024167235717127776102999952493266329461026005081702714533146927411667452138144938390638632839147159753964747103114626539027286674173341594508835302305955882063591072781288816838081149038339158925903939071623406174805642884505307112467422672071167487733067890442352009188227182782351140695399275819142251247145270496407534811224748336329595630847103319667419341112438293992506328471858448616288177063649559139794680067543513583703034571547273002092184444767477161080936859635844378032202187469646667386253163272177125606160286072939704684568634401254275826612703112897003546729795697972591739517700200009762439999322300541870225574908813739370060031906574188714653326350119886876153297730607466832894218200039947759631508104197206703575224025610735178853677580365256453096869238128091865871395815060386684408353047147587211360709048861492322062575836165564093230038441166918265155808956753752189407949132380564963679528342941325517875604287484156794745250203606370617596865419522038827369425075353821960137340778505972652062843544093617603072268828378142742809056182111145408591680867385566293195398015762136801992831202248912128327665877004877964572141593232875348343738218799212404802034815236470822014149622960365070453425766550678491614715019190808804580526747459624204497104340421566795310923405737923267545823557306804627681717570767026738777829553697147548122845885817928069590895918940153319908490999223391688199950497523106553851181418456808647087771413899301196840779617339929559478387334706449720461938951732376233903917682118275014045225061759775105572602796894358226832648557584009149118606471731893423510806821512647917316440883149992874523353316440968456308900167085893157087393307617001308791241391938800287647342837626575871005474874187804644998186818580244902821190091961496036554511228771147931442454129535345479801084834443525009513314222728282545787230171149700756400162195389868741281390173825098823478687974648145937999669767457135193266296304443810540590643000154719970338490650562514168676701607448233309478288276643164513515666960441725140122800714311786876909980785582304274684840546231803846785708319958747443851248973597984924414678539709919941723273599517075340858587972390255215795356298442153289325415991447993763345867045618657446154935123833576019367566686337789585205626795148468328764125442555869408300932605882635229066666378262809199014702017082886349562069148887762365513552914534110189283175383058382338760470909501925696918290147256415334502541632767303548041122260516709272212074821913944472674090730433129517122417381372619845203522187013442185763675262310086920480105635842653496669348732773111104202990300249416980568130798563517239455431061103038572095120634735499001004498424116934974784396126753900803868293906930471260459430905399307211490381891390299898709746450262461036102432761957089577073870722175069150973355305776043851857045029720751389807382339158021718517690129122642467592026474917606667652119895504568031412107876472306891975435097743088044605213697216693804536890167725929729778716348429298478411689151523718343824212344176807439989453627107180101011977125609933941987918807967793484094490243495251681322422638481093510449276785290239242622133204808535313206216419236499967115258023542489131681545596215847848956210446553693775018964330309836470583617741993294127488554753539717438036078145913078128010041630957807214653072596030424078699820083794523960737902996379845122256121264788484508022910742603477897448261089997611321877287560902419997790128320839436442654031078216452284247377117280650130562899430291150638719179216078929562851099675900795199461097026558626434362533057918172954063750804207963473072098862456799066650117904646507740106754641082284005288537878804199429042867298864320985180949098318609090193540718597162947456789475494045739602871416995757145442394777622532209166839033754722836807980683260523386840272611479990795898970231417981811775552742626289388932860966840014839885541077711503372361172376885138764149527415249152620488264295036274802706314538846608803462170304815819858078791262331985373455053325562201387203059168772377121651064761465494082883047092438465446157506889123389361471639362143397956387657482323756380682352774161420276728033549528525600894219543255418041133078663579825324475529904745258837651206059764193627593211662147200315431964303937859059395640297581630989304539167335191996039873059980087142082851930029141089566438824441818654805579066226299516251012042884485987283331510797233010645154110779181833205234606034999683684392289012092153408148241702926291118642790104447912776129740401547582111958948325208186839671087619697233014377294897235023998887761176514190641775161193260112574140536056052878835259185042219614380542706845456911883428446923201856391484198348015207188640210031425962864583558449846532333828565782784922775767314243186576562861234321888053490654599148910985053100432660478293554404512707185099955306052359222786701491994520289373509875927795254420370181300566480773371807267321767455179906035097641608067822007985576341542179707701845689979431599830933503141182171987754470558316759470814985602591229558741092611019062239054749676835836951939001068349630772189809614903493218701309444298051762557949357671141807094279339446650898667679448731123188542486664972700430990020470852190731627940942791913416103080424162086002091334822537790173669038186015141300465734008988869861248720340838866458185274619380949024227920949789330231362255149174919154718465167857523220294618845068006564620383123900187038305002160319023660296190645453989563430512319995487382365826258879305135529336368240487684495062270115928697950994049448322259051175615551929594787193433855548715378996543864475090080481166262549250782354940325860056180390526018951384420687585473712613084026120892861041183557637456729890314626175194457802216146876143065526186229366288742209339518138439404531927262032804650715036261639462966058751624262220635369412649919263274037413786388240619452083898323401825458458639866718877811342084532056259768191032972077944146838269876943002663481083239268598808749832633566953362233614703602901128846791449400995149404911531665559049384777169308287323435856697994605435574495543880429550480197010313753522896852106138752559025969471694381530323049263981823135794668916926571180498359914439246886099121288200298401679727759839507386548031786688397092558362893313286574852243699539683986800231282823572514033626501917852382895267153352835480546965271213889412381786043953416276016871865215929950852487775933900174345277429380396045121388811472206066453762807137570343246867820173486639240859278188586492672145476306333931274342038398650902843131446965735581550932113931928475794166544472235505356060877033326800729609414948482956285887062821932807393036844366575126762641277367730190464437533144663748853511114924179919938691971278291492751868637248916001090567205650816463557069068881238648463114009001765692828474110531753562994039059376244167416987206322163376095868427858402946913077519233576349878050318283852224160924417058108460640095175173812503747344707650980246029989132087030334962069500407142379340355598979860306486710207116609019547529819832410673121087324192451964138641350789753384015612130573089187407493949992888612902274890557932084729468700488200377699039417876622440009102862099365565078906859921728516161982914287875520882042403392476190755100392946323670143502793594121335026113796950916748593755102095365625026354815186904575121622348469961648891206521035829350922199179099967913740584612541560280372586357526794014992180440505537302974290131197617690296094737031077189641219609037085485465072516316639689891843633467644070823642731525351920229156817413899358068871392841144557340346940342924371006218545288635655026657223169690048867285457265328357479424077654641135256545098416184020727254309477740885754262351332840294351916301295528522172618139538141448283223862092249152936225390584208639545693347548817047088519534892500147007625275784282151721815574135637931366374838822163656557360970787919598558014146752199245811939196239955048496367340592309419283761570711253794933018791488190253273488091618462985123999114444674909922776378609185915449541833075502559804907183031629403409963875580400536822280921728223332163757712461198107329516967597537161429192270253161175891434194582774415471650611304370616616502282562094017075964694777306506206759565313344266410598458721574420478309241459806055821408461164956050847089229488558337810712886801394235966588394241859668535929071983750781671986294844369994252795066395666779036241049409345711330053504695056204798766561543047731287217772119094120414516993879585162975074826712464718478562999321771478146335616865412237267327228488584618060788033743899070244276138904030142786651384785064836055622492593881007691363701628166494624208622685852029336356937848866119691743218929028130003541797473946265594012058238432961434249834986622963206067532951681235989468010415140086492672773465983276364047828851035980472549314692509849699385671590901113856759094170020333835340632305041418417069596999560916563216306631989770300995020479749254495163775549247260905062254602373587804888409711241917595304839819892782176884022819533435017771256785596593667501032462654191762850600204908628392021977068227808738788240877421127998436704353770997100764325424319562542463255304279144296350139172760370146394842600015847293441856012890451334176637921543935572366574985141763159024518434514239163182872845839669813007102069212452810350658308755488583685556428816252200220784046152665937331113489793496408852794331563736880253917618391867301058766233198896236119798501719953794214064246357930081280027772555003431923806396895817091881459674003608723647041240611657511435406504498407971714010809477117272014717751436491894892969659751272854569990652514882200763161894242519411863466062661290408204434240890036918542769830907834073728603596556985499752293762722938927565639026063364358849773404575957494523229329221818846768028927406991675853574037508483600053168048319357853927704608564273052453430844826374855898400655901663941668061658650595976871315474972720902828495356166187932819648324699222444373024554268318113968766925985593040116395434731342467321437974316940842680700735780353886239969802173199133973531419481863099694240342098554451674394836900947896788935490315263820697375014087014383278450617222782604623027103619277526015881456463984665187606067683482429818687800193761613684169770086578230189546350415577595528526996342272120034761790966063792271098090015569490738960017278476899417676415422678638105493808229425737231639796056036571727876818858154142278395033566624781080010766562219888134761389311130510925477256845970381159979578984478084578255660867192305017651391168205708983367998825669477982325795939768708043355387894879459237287496710863849833112181612954830416674908564939730147472041392601904093523385222935351291297386173271333496249738476973477533639994786376393025285566762764230962445149666121443343187032325772668639710545711659707211247665713449481411314517731408075441616044536838139868373720807741126933612383690988338236732974023847098266596094306258485064044273131179402913917312699601060804043822716507900021005841842810862758752968296298600469718618146865504225631836814577312444525994012412892897834916399773693050087308926482997372253254173641482197214144432752059438729111427965797054720284091914330684257476977550630196948372352185112781550015916406410012497374536887755299528424115945002553212470485549855404285320429088447771081206441920063022832605835516510974973034056117350117475251149554587440435731589413269365154723528138200838882089080001011363707666298676763885478667896270364273063373486442660266238371891672020651416466394870488070207524646928821691719026160485782000097670656419061354019678439252693937212189828813896728593053515264734996340782758167871218128595003593436967330574429543946182375520168340095239216802593898382754832696551616182943489303316153877829495766080038927160748655121884796897794067404923019806922425447512734498086573189787194268617590896949023159248998202307068371231013092300793909436911388118141412743872235812344788142699504093997383857858833417909331124689603105484570554021231740499137637601749730176018814497662814270348002184637240911723823331832648561490379542109052621635122903785122215468331508956822333858079269876297890392244540501823363593856230645046331049806587176238936070153504931275585776933803350201528129014540136052169528536211863845140204412589960578087279509493419239059483935235617870213683515248065410160604274497103409138669766034481626988545056476022203798284655488076004387912882645321874058774818069170056431453683069982292944977636403589846075208558513014662655697483302566522880727578858493145523377731943433974239936711400073745583761969776258374891067806865786985593457151859548752773830702106001358049056384791850147124243624561603430472504168064858493441040146362607438893503936842299013240101595739442942566210140862145020728004132899838763314590414529511801088961343488838285866192685489447608751510297342617653176002451053636852615534899517185949377839027591553989929855819514758911663664556736055798457393813050884569361741710668352241451862966517766408353562780887492951579182584958789470176704444239780972500936928569778320839894539152649002425142678738074731412558359464198142319671033465068474735590260335933139123939070865256192575193385976110039567127131392896128533675517290656716732289168239822468668551885971687025389793449076303588042217595846755577975044253472614915850342241967294606260260427970533686990664353577794263358527004689862226594642000006652316894886951967079701935341688883047987975780907971804524704036704339433016153490594492869542881571631195985242992227542135009444100356606126946438266174934937297587814500279123018297707982468301956649871355307189425912739682776093383143842008819523707887837024552619735996670164835868820849955823621215651487069004523690750842399815231181756411166269982480372251818428426973245832030924276706567152865753206013858810197804238070162041058800302782679969341111900473780720266743910863240493874298173973211100542825543077938335972582533791883193973149266510112319246439918156290827107426431692473249532540785247650363553831244767290145935790216529604021868657973212131366934831809611862995235348785196953297081185583236828709771960237089183018182668933368806466089958710011393089112332456465198885484832691431240979217488869825246369627646061364786241957352128317833463240723228563802023950945316258940722996298925992652257940545698609057077785247838529776194099803973423150390403340082194455383195440757697503675918655685972423862282420437283492151525838548114438858526592479185582260278289306304030755001783569376446307223222098830915609328915752596257411048079887789158887318847706335974394689613358011038908135647079442756363904678680347805894911484297214138316622488593622511226560961837461403575576648429205556808587319671348503571175322362747342788441967425693757130506389623914611228777141542567138839152840126164519647526623131324406560909256726537693348213263419554172370778031706374349493439439859845774761047352649905868713519987129805652349588099248013210691239509428034403530749966874829261135212454678960848204191588758402815858917113764188541145806099008623383136394401256359482536842343748128206288906131318633250150829973966386113972498811292311981149594322127625479210899297575155660080723094836441881982912993874630086356396087911997139975249852474597032791006866664045651024853163820561929858787200565570590129778164453098847728206060191095226716389545703765780504155723634184783720673141786226759557004700112781857101997234030541646826296503466111636961619669015249283798965147817932235681950970213584386446032469936735372607748983443932524886855253902928228220110056822582041747061539422750065726364602380431601216423829766751973689623489466910686604434690358345212805480289733900947625751744302120577303395139469546251128788858416403958995775588250997823921849990179178038662386969535327866038920354228829665953691396982395478439698073914631634394645797993383353728183899692390099142417774016641499420810642959416041087136549757819902458195087585500005729044615552429979339285680770705091208723326775676174842062738550946019992583996793609715389547526884833130669628476892356302055624932158153935168613485290036659900562898675179128038700039503822109957378699709618307380105652824459142204753078775936870656562825587863563178488705886419234258805417953866478065120905683788412554902093675211546374580326525983490412545867716129406046539056129814588042553070460167065427710664863238122778777633484037626373882304261653382784079173356119892413134281146192058126785368830333160830282437300956782732129516141833706215536203634170828108235280089105931256429129251145929702693981777891141559999534609964624718278262478574158780318232996311707982710688163549366754805096273767986972575739746833189003998168670203355475163647376817792716983243544704657988211225111519703045053586670091038840010693796896472994848768573784495377725298626419644309996802148295089034719401774228839527599777832424851482877279904479448579086797424782438130733602026008766488752203442920091500306074333393686150764091969232661029302384639348341295479545516469104514424318739394465422574166650956251787844315097143738947668305387750071603367388310196214646276153114965492746296545017384437034456857304933157317022580479809318399780998390878004080207634534679057509834448499464726843693490198775816916381094436134087834435778959165637895057666606975927357385930719191283265895709556830240956437876232555398224007349976102696648230891442564355604413058834265875210756542990672271645322519015400870044469854658413846630930569494319108302196578940351994839017396972666040057216538752183600448597605933187104520340485115375101475158663368299950351218866858849298369712578570747447729959114211909778178158403683666391017157684003461849967182661865858217860906662812699940685798226225520895517211980549332705410434397348127965124962908343055968099979907764253542548312342369884262495624908248054517092035875817144798955069527873731162453165724376532064266185314894581740447445323072782882391563409296131913207364971941831878480002844450886981493991519313295211187858437437896897413615822479794846674554009921375207315537357168795719197604392320019041545323818185655061196456530083208046945169658609508993624490356174492802275480538878943797917377210248938289355766276937905275537669391718181248512264152643177353423214441064312256563951707407891519386403853661018060213522350744414578319102020828288815879860194297721446738210927897812541226135149460589758821802429970008851321935914996676708821174311096686360033949627482861733419796835930577080180201974691556306973526931080032825186584867902204631337595496028918259798373572693304064433216351023198485488979682391980061761009771181779034175590417598787470950614995002705387778272124048169109059119768144091342412969770303173149941749618986013240756662068747143157468150068955314955088796673357195200362439184731906591304280100032414362649373672831325359340065654315496571022139975689356627109545320268930465928413434160757729240890080645309500936319030358455157399573558948566056669712467475212421418481118132489676514501812571496389975419235363004410414676697559064716122092926988486728090561829696067856433103099154996332553706356290691024326219456048625717264066609948928185713419789844285806600257167420802848567203957179734254958210018248351547962901502088602872294852366614475453276784217099378716670078075986719192619110289981961065013948536530224049982740928337604892567860106907320948775184001938119474999313510894378613164385186101938740379707038997288672210484322389380032807797884639035982316761669836135249914981648215043459153587695353682215362329904340904650898743064143270191805905819306419017401651742018109253705658236870407527866350534782849989234705796167808816029254791040161204191393024277145686086985309035166056743256554539328375843693387311178211798017601291880748570125020132502712200537316564794481173248850879811889207004688629092654853065127291508942875209452446721023399680790825485497678696350524453676915266541594798420522167155450992341791384923070497632991898425103784314122942116971489191908517249876546148052694270164118870789042575723650530987176555851983610631744565706916837746852452911016167943399282324191760360243506354594175291422751156584514193497820184872187891268539617789855039296438009449979808656636467508564871032493562644124852163627689042037184519966192558017896310333233814833377209286002885070419796140389914869628637877669997590253742681230180243328551764722500707859903360415112682947931472339551070754147402045947704582974567632863007389417997886838786202395900416826472823718655281263385675856160472771096655242318747936152345048672829728774176161080463581253824974267157822097587162907989750158199029732314028454541039168865701052169698173631780547291105211210213094005096708913034836821363794104759954716463113480708987483881677641876082810251665526938738370778571326068015670435649227795830557758465253468204762731863606073977061330831357642250381949024256796618957493926416558187522426774316244983520216915264079234101664957607936876140381261442117262808377947467490615088892686710778898700736979046973746688297108176257614874156918965674363787695818312966451993670855672311873015958863396895659220443222973287773506520966144192562350740106648881706363585515375007175231162321422644427859388842926808919562680960130494159920726709921087513339268161738021531928457624125391435747193856022308374308399223439380844103125442508106233669287449441962383324377643915807990422817116728462440038188907008913476790261546786285690937278528987704537085217226767789363704889351532720878426402649140555464750519297615049015919147565233367008630807873620123727212074733192553122630346274038296782511380910184976133580110095548192705128519475578661673589733957626581848157535906528550647765515066370875632777388451729255220079658961951136766479060938100591009675607936320347779672614586703108805578122668326917606557509605227417407168563528466034470940472273655577085965168225863558957133501376689634491986972087222854879756428238804103385583196314005543582628940329369734854877001939058968800296463205991035320267980883256381616452553924318105593839684066871870225918862131746818798882814110659576866356094361248626531930160914646204599041408230024536626540672720717790036651341904348377629491436374156158529934896887280035968217445388329460887879986773846462384237282991437568401179953803353249334928460328397055829171086407897165038483633820778194374554937709727694582578346695986181044039689017135597531095866301403787650906287232864806004506960768159893375758307911507744178038595900121659096222795304723291734389150119513488267368565386037798357209691517433272043797357337649951317008458759908257837370125712729701741449129291893461458297303288407438664728582927240405115933534834264717033134416693194834600029871816759507154713095706787529950998162772371463458901433300979663467315604613306718908667016340349525311933777968196983321180622325760838609302230932336828516851892664700166105330387470394580899217524934558632083596392501955962239520873406429771188988569413169300958614860430835246007545547468193034578509244019856662786295208699637348552503849832989662695084177295234791139393216530435274894155773493245922628648747195950223434163593984769147154782409197306822001913695180597789266060603292723819922148271052875766250992963963751570367660658750936167210660385769273158535527818186265132626431196039897129069081325349680337204323481687118485480397992473212084652498261698088963111227435147559015264011892278474100244329960868658313788848479182477287144054069795827818432325439488747612759623724190500262466348128841741907625711263378100250560283612631399055373501960153054408158545428299184506943212498399030640057430930869690651760353012509174840371329118630945733770396704712918248114117673705128398066192469708165015664953310305330525924401322833079810097817427750551805474063596391882973051633903463618446321463423058077939236557014430980021184675833775259290122847623118401397814883123086500116232414274591614365798178617309475086812928224070838509028310876477894017267512395446095646664199516222306782345593412785981167314046117032826051842968918035048845497108642240853355575280587756990857765155894136493714668516425578392679921766641949479265432265537063015023379304778877620519814062256795421334855763343176700070934251337471589014288554623797297525702080386454573111455110725538452722567302215785489241295077989730199742412650220261959728361619637516378220783718714964834288176799509077074903140225609108691950885228061003895429811591623399475417487243190622804788036054055306208975268919978142195524661751940425380994769409771393956874176373989249859681972977615093154044734282412264926065621464771369708055725560962513526920621058984941700249182363879292442302201843020335077390697820805506756717682508992931217170562899515671193582584261234048410593335218064458754114957120100472756470778456735147633398614713995768687779281778177359414424750369148113692779922471211710754054459392121376183722545491876660270227313285978492782403439302473077481266055391752940336471768411366910970832503248764928035015462380143254878548245275463023649538755194182374853727319975054517157831300707108549436437530242908905839229126595347442700346053730961721115037838363243474245808718965845145873520296937715198341455309510233552564725874483337898179052589315776468866899086521733957843837633867053516584330588942615886844372158311766079875466935893561351159730389288412330169095714244940095533894803900884276146533699065489612449921284997689589874410853576111106213990616983180794126030075257706253699416056247903633870213085024821880566788638050430700249657697537157747121025893803865292531704285025270757855036852799960967570871747281385219675276842966705423126219110074259375459554244605607804860314626775318128717232517035204311700360705073283683492718724439977767904925926694320206223085384116382486677536004556437371093797978533527433173546612329672160038135934469340947842495452942543671597756436982951279109993708219979639081308199485887032734242867744669955477131899925758892891336030724516634059390822854984992082568673109841600355642097707521653711704228204595459802649191783495634259120881416231860647483484302604154636582025711704505525642713728915625964594679153961297987614732974097392314511164471658561109071132302512764658280174462080345998134473718714794247591929827188863562018194491653876639030610292638388465169922141687845639837304639091073027362344899871970683578795466248729250728289738947025541887117906041252789875194228898802732700637486276883156172324498182223072250195729942324088041883428318497361836771264869666816516452780302029044022506562458945086331142079072036810057902387317045473856567770027558658729190216039266069617585609722021300446143812370218268201764742379126554186784387086357201141959558925523682978228627872563004587723837843889443544851471004630392410933320892219641421696790218096338764593570580696570816627600484815848398562354933775979089283804871921962926393255033349425594377208000412616118040587442519077718010585227545414698856762313445358158817338309338882398974472128101588939824754402498374084225953326141284544666273447043383192910705671355297228352530115042854339359530504037937014195232715878175131140612420706540542275576988581803738992293135163981454154397846258256526963028333167884686702277961637422437512256211733354123274531341090787073381260516715507463132271458564091348671409359504072006184116038301666932387031861906784068699628991774968878696896075720997616335906171602136135968181144259927575664841424519683065171546664507938710515873284325642263329809209821559080414225005980745156351493245967084428481160815031801075937627412443569199194618490925963898986480074670706774660958619089229145800747275796319562305625536997061925827451322980341595952143233980800517617051537540260984872321304761172334354088698844213751272430540298435936699845192277128694080187658952971772609288529096129696881475011174851433952103687550708025295201914313316728550708507644457632045947058132991690768450625355059908926071712064482133961496903583762382869075078299815026427737766593196280815387414760734160212100898491086918016761391275405778030152322538922017719301135628955251204238939077037887761733126150706445181366219787734233741797217709219693458492081616754654777321815483900823729067778911016965446349627473907089357686004105632009248158969080218104273311796030708416869915835585620431468929075524421892292001396551143800252000971363017977170457038329881187489175774334619900186896488505708226859929377524668756819573982654025159634615920823812350782660845274350262971488203777060134394443827349847431345762678374618868284857376086067193688483099723101456738388201116823391671349698875697957593328411190140157470428755794866546704780260184582376040082277559502303144871946991596025121705782435377845551436533817520964316659836732159522199325080426790166606959736284957167567930934472679112992084447464103096893851716203662173376175507171805647676238663200962981373177139151276951962959399739441508128771457763802289665791592928241295372092712966496901044161067325751455883796812099067408366836911855825168170564856455432552864512162258944865880887385573500008569879653059381079993161641897141189940302564906620178529129085436034814135225153184888532159968067178393973479628201336398783264829923426759558435829246548548455100171324335509510314002019062891301769102800013026371975292097815661302989723292347021734181966636133835945845438790630866542104303019753116202300918004514968377040334536924941828937471441269244968723126396812965582275075648683744876476771288681129417961124818047706261986446224031552286521325637641413564571202408584057009520431167667447156948482545722390823189243878942913501195385693013978400188284287528120350910652777893677538369955941678464649370711834524805930860112001524529802468220731834524008886654939281489076944292115021126321441619058155398873708414977191736370231805880135866352000473755470537184429139237496018822733286284442184249761636739589535660961652816165827528928398944666791218210180761030975884900644276007556844267044531910841121242083716082144898702209518652670458712093377500128925807553860357449165564376510346366744467784687833255763195933608148120105144377593761334509072498568497254189373844302398383503729475165961477527327883421705579729484017915871551947657384666116720008225791353652246140501888348644843716724906513026061647315695933657974813067909862766801937278755100737136694581905992773340252999328264110688366450118584681471110183779896511802002141316708148373874461738788174806109754300640176886312303658116183059423712214686663969090420355246143980894998699260502136385396508492081209764889833651120719158807406140413708114774280031486112062134881493125878514842664698028190324715642413438281925734485214236214602349886295086488242464794647810553542126158866482709313854225631014419892224206441818186674543828305640567812147949289674352830825157423037588076454983665435980331626486401837693249625482435325579190092753672840187030097615707650428029835041121742490938495633248040632997682834263902292699510138496069056333636839805268624289777380948873607472923669629120061881444247407406003525315523116007160220164912087710969149377279615363629871304519246696957016896148204912705614522116243059410311846437694093867565300149646125718317158164029413475004576529321382943251681600035542551559648740573717220363667117342892125368277197213764759624084424089559422743738986625383424599608424363345486219276221167967893284184097431037972571918857363416458297903299066874740967308072644959382761222486764972092836810748537914975483635314990445068774352763776625613980526671406653626200049136786710715234442226734619336250989557184863680899600101205296622282299313864809512167926210932195789656925929638638576105685378274020400726691823330554183343298911899799730869985471371871359644670139125393077750669817609994675057974027122255683486024337953650043261036068448614597854974682377150872886169482590136681985342256865645640199150050618399330700461320345804449671295748776090227496605167648562951770600704387118819095793635518220115398185030649182127466629895036589279393729553640701045443310678137569459227979049550434707896472511622575014010481727331337469714377283489425558381264219258845397055285800818299670350118532979409231400069889825241991842459887185935681372991302205032388470342693791282727330327115326408925058828446653023257453139449346913560204220268289412910259801333997673052916332345795308905048438037840104001101400482955682655732091056214885299309435551846651726787393697474289092760264914205883556672954583768296340773353504865477072622507972505268124544138677010897169353445685423159321476040173812569761881420561608077223620241629505678275690236030493032550751184058479388114288438831707683051724578988376326974634658346109680740838859869900917542210315634452996664955035150010573887574118278027153384751680980843563412857232803843671179596242889770699789815716152935668351456643255339350957272825819976451606557049621822196891282880412603670900648908996087097640176548847448945656089939942472214856239949355477401186428101629477120832184889032752372834095753956768618736697634562428727579368062891004868028752495310325717812708670606063791655523628315408559611749154297641594886694054723730768305047835247330740351353317837101091565892426150525085717879131640590753130248966307650948094807450319245230544150460573216845172723405149074032437386812368349506429058624729937324556290330345482133510079903983282211524556576503234621804356732463860373215531118564601520346727310455957319759454128152804388621760648174514014103654028977406287530482806542733563661672822848477690246530039257320470311278613600841739941098085853871638960938186017338522238747631216933508114248292462099361868764322523587723362417327174702996838541316597303615986648448554671526576007564283102894859996863869044129748277085376314093082065918574301444958315690420876000256352546540304519778348966264055025656760801919909618012621462396418489891779543637181529903189547614921997046626226632147740691329199950468243353684921438251593290511590575286773562682645945962372371518596613717055016418690471967074390254856168214746239436427775470230631949954945404099185129471771760057253978249861829002729970389262698936065186018720978296666977840499029071125371313986139853274859184707788044109430201841637452132913092333450915181960845736524407671792054520941110777726288819689204678843708163887091472866908352595545242940502147069506727613622315717468181227085438598328432647357169107270478621727808543919373519862110105342834114914279107738373170018081294025555318478418114582239711118271321857251192058133304847237257735849716849947658518372961837260414650027854438637821129788906785048966327563742077994087065393975933679367222896216416213260112360140180433949240164947915163055306043312596671109290232617227742238251365559112881763314231438985023281085783321632131870975481170270937948765698607978630142859499923235998510477258605052289106500296415680547243517040750579387684941131910604563388872151056267530511309326143967088759170231568423556040827837540483538687559677998579416531151281179523016361123932927953295793598278539519230668181723357691194974082759143515841241706293913952410575096442949157680395042429568810520918672320607967616944031146341755299738465753727851183066179354822739772914948979064099526733166810141777447746107299290408609530422238491132289958376818694444793732146950628257237879696338592814793182907974619553556676427974337872485979608511488877457778701486039201048446765219486598718373821917988481959002981679018270619437442712679871463720381896566060484240829266187993084324415005395800449316697748195590357211259512414726717786158753026440346567962583736657328899253899722949824757352825443045447810748250007827633985117997113253692301056129448226354988594507130256099692810566800519753791130827599896854269955346202038271795293501789993692153234373768527901990298089674137973443548226600269271884821268518845280047012144340495591420287760086172527558456948649946027832997089611626838015039009499339563367499469845942355608358113263294718132808604384960833474607820884558133443995301212673938471986937288279384082188144887085067328661780073678673067070142700351228272580731441810352424252574808791979326330957214393464501170607603310869380175749503618093239693440649495646870228374094846600087639765025227382410501277271325717775424296228095821917443142801785626582568225105885324771250300073054885397208437405897125467273390172106452203817115177381819284840732823661767209556378745707574404037150524364564591899933555199293731689825559345147729145523180997457530678884940199003517081965182093733730299268193800193083261988779298841810914118322884152956985389170935774984858500804667367112045810546279990534816809406787393372213826657569754170825805733845468558419001368474198176589265042679263934865331152899339544044235397261180444957599452576651119706425747421560411230694396244684864184913362179969991619953824438299688632178419455584348955878374612480598089505529648094800798975262344159872826983570745020157122841509749249656535246734309700130455423705833013015857770111145917426130688340976942702400533626991753424899495967670275789457530048936313873885841631675906557097025234722939561355522983608726962117104445780173170095178407081771458334040711851953171487467933513591225276955011353445776383042148088508465613646297209108376498571047800057326259738306930279815298166464424198488199028991404508989075340096157991116873854835105251371569789534031807794288027574155995580902812663499675599646077231787056516408740113747488814660260269732315085615835101390841615118960469651297808881790262211592891619464330939772345781267629724494379559377725506835841313928300102784650030509041744518811868354718321693285607668354883014512395865949165742301647855552916241624517213774571116321772730546731251642478554185003820358237217375400201478149674452520953717052576082277975566766306067915164593639790373421941206710275066786935812345576845066560381831960812186414665406374844247236839156206316753413260859451915015609844506895601105267230714331955200170557100151725453125598372028836940077930528690064533064234183312028739733764350471292406202491963181180991039374055937551792093566157095974747581003658250562132937832578246240761634575702476225536681686586176882309899938106992346760657854587789651348506389977462878382085279179189938664074334834057505530073076612250519010211522202296780157614656186042907938789090957797498707026552928617998938867025403809121285183970423812066429107392216712717334699221586191705877527969254583771407534924343872765141785728705904662111212483069065569124252601214572624716486331154780376036393850710430614834334027387513096804316470894367759612848927209632135511079889951494336531858524552012646060945892885588640797561108746680774060921012696178750291421219211338415337816914516212220865741372331659263129720057958793770545176608994050417858996557184568759281596276794836439318213226565359417154050339044068053480448846708442234272847168396333765306191013213846315832499272917152353567144801524436619917186217624867136735704988754972362648616161761295807189343837820838803595599559689219293391470476834834455634130640885074376143515766613084115871871315353070306160541502695653648006390621956954565088369479914465433661990839654772278905188165337442233699052462540575271976371016083833327138713692708349231685324234504930644548733273972162106735638988532729130507050443420643310286026991176850243324805791304135544344394543508907999421288472466287004992156268834746894792393875494938192318125044546122184912330079129965228163689984298944886189443851698739346303406064582977985907621877371120766013843552980268237018017705721747073179281320561676762360707322401603828633818827438459247699349985349194991070208526091987243312224332423084941573039718047029707021065388027958335611971592334299441958094181985013475074624258778424044290893918505364028436348311599043629687055607002109689204754137817504222557872445466446576101160625206837948586316524296205630918343214435497118916957020363431194879972091041069655845065283039141365671294854942370034503636964561786462739236554790558132235123143920272722709859376851257296086676461488107351016931830553435194362954356908394022247765090175227920383103419543835720305371628719879899625227517787758853083093375356741221725168834340601740887230538314429999958005872216507507845244171177383669853872524287749303701482988116631716954090062432349596669644949084042835534728839195854189354938561008675723827101725892706167122013118650700179662854581403388502975104010915113978188944043318487614005580576980637446912050123030379277658500562828792151443519587610132236377737136460041127611844908136728775747224884079229715684428985135424639712399434313026524460243871050367296383479951315173336031992265228128402531769880800549182173698357987756274337602755754190222031503511691792126650986195659728266877785685968610864256784362390590882384648251085422471637288608518066955160005057203652802845075902134412290240423892942208093079132534277147116270572572074776729267598025034366541390828688307696172210418223902644520754971676040371581330912124117461276883763470962084342631510269546881328450153180461672894022160624883019225912196708723608319752195914269393754419025722381681948163383239672192579325365026465782634880701806501714311738668009757884087903398592289609994658710068749033321022324070754948365328164680334286036660621566399743613188623413720350193913833980676077892954542557735113348880860641152894225812301308263976282359234678744896875165895089561245076138071784167088573974518218752502648927004577326098879609584278940828251204152376756189540092636438898328419353012626931921861423807842305086352802210736778930678451667133608060847610305978730729434489937615373578720250343232925080383510739144751977137379549881429256738433102864675788457360363230937948748756698762852826013336334617488961663848686457131301004330068440482466606702370734641946174661974328765510103107123850547653878121277802755196234256083796679045162201121375498660258708607435378754289001010576191301187553000808214374418828489056130576599342824116742408895597473717432385231053016001877184029647228193476833975472911304105283326826919255957860076347576817681396718528594045836515625186065955487799694959197934030509625723396161879514094907313831335771986740546237608367675292357669251867473845179138030488385843469683233870968210288604542412880353458773612933611502323010010041803915645543659471193618905843787654002078553509770085121319704154002610059613202620774569287407698873158667148578838211389959404334466696194610400005424615435146147652197401799617880032574398334444101362918138537689640586940616919226879147852445238822857839816626392669960103076553752409242128549732726937373258527874764863291354044397624948226533276653117653772694690206435968883854921985417709114438903437607621069194039694813474057422427194536254017786998147143491987793277296769332668227554042022313728787210865713431486297752892439069465499631556713586712769100967216922501275258033490609652483131031276563040376899005325514608019598650387516685019773515386039227000924627232685247969555926866802010781884022151508303051792769697110957476571791157900655791922311355451129728887771354699654894417057334094772114814488769984120840885410692963829379221792589979169012447533106605944727655782971786538504498053265828702265699530349086367616429777647022872574941335399559269166253283006982505938184213265964661190583965260133045510601854280374965933642257099746333969735435691843967243572935571707078140552348998660675317720110504668271042163958321393465241824449923410883577545431253370545447652447873861203394862244867906879480360093902006937192839633746231559755975656086878924214010404882517450575262333783980010492051212090211225571215519979110546308065521959526181941133455308314442592289275337930238536992247716700355795122965328456256501057464045172324056895324450002522882616501270736969768809447957465176108817581337536324066368727021107256777990388434469304792708986543452637235765215163195454222799736686702201976269609777264182151890673040379452372273583085582075459567231860926313775104034148783512771658003553304168712131564027473789032591311498248007141910310470564555557934012630291978583106934488210343440801708864569389402333135646475151875534978248939228607985594182184397460363856665313072403699451518436905394230298402031831469296031356050789895798066479009486445907179522809721961236892121932956327108545538201361107820698382254294428605318331025977447165538962203835300572392810222146552582387971276176046773289365796150153251673476698333753325901366942661748621311277778317054377339162755558790563182017386623852897432486503112993527602728317762739420693471633948285934232779665371855737038970284509206189432206818223379180574633909662761955868942536843422194395227247432392705758823887361104700373185273836030093787258691913159059828395612427516111884317421627211179243490567269600731845391625529862160193368085370523125094687547908887498533831798410813662654789807615629119006603623153842591899385690233938706525174776635682523352374827049881140011059355098199666687991557416040326941496456463253336721615347180211867183423081544643316674947619641740509730949319102210731523897883284362432922559373831565202813322540000632580636607703705866222833795454100684303136876328114361013216848559467741166614134055888439073056519815459787432456627211836559478488591176214238422256091348536453854891799302340204894488036034691181815967206020739711336722753418640503814156558462762386212735055178591658903355044021941696921554023373991163337192861780861087742042294890258340221258788304620704673356641836451831612439401974807427242696196696830138216025017476753404557495328894380047760415864426090231293642487567589944088343224874901410782591548098183373416270654208284831413245383649630483719253216763711069160836630387099800846010501120917946961110540724946649212608868175366163067503066552797679771134197780154747971983215290753263390085262469933107794759493061361286057092369943189882660085818844356598072404677166492506073499003339216730828120896102945854174859747174940398105842912632895723150171839213163713829581157394573523204087156861445250220614830954331229433332881077053909775906857143859856545984001628655260067112688996737588560200035898879460629681516580778866777863226653846588424188379198582963095263344592702601114079052093418275853808838633947896380959065850600988150609291685593096206705116312884427584882527362607805459654659683303486464987656394280392747090509186027307319478241315875036248790810602552043762017967856153766801968427193156650020451249774358504388255027004460578614788055240465022048148464929953993668541239860632951544369990461583642522457987522749296742253295820234653584174217376137433735313843809965221537603871246759527816047013861867394438891257788826841568225020690961729093753840677912932645577782093138887293739717893211271276310130657582143679058890890287529757388414486126624675562800434196239439181886518305195220105411939815995579274228347232915642564521929560816735206719306296977941055054873805342905653588965453216248064834951338410530893240416906864726011002078421033724141921738911425704867163249152270289580263150388235481479640648188340199315989487436813158839516991037962634986865969583446242765220801130742953382561414812511631276846725623484895780326771850078860921168029959403319532343104043855809341190860770368326571639621143789047245376588049588514651445206340289126618930914580868471017141540946189124016448197239459956912420357388612339370209983690685996702454467468878526594576277494777794646009427304240742046046553446286881145978026819598887997895135540739453904323449388624674919366958282003821174488657825835304374214297637109533862213312496286320929681946974342381265524483878979477036700306715171208888021611644212400288540848914559412880854514767421857362461195279682141432077510500080529987708085273729267123391426518436105797931021083434145476271197600515344086847456185232704614818927971662620196875475321566360159402321652373772238760655531863298344689916694691811715405387309147972411599267515835782233064522295341773060096893175315764486886081359488029612899444650335937894095748249058605937194589532104761253258422990892350516091774679347987477585226249213945764584140238170302192926115249974208589637898300684962373635981678229456197286661115921310601406981085736690900149215248576248457015721931394320741100668470590508404567790565046992441346474636283543291977060606441337280267066464269046591328802035264608777469079539431174362814363893284613919196473145178523507050430754393273126567786738370418140613902957260848197710064658761672547123477356733780338758792198441354596353171371429451943886405096199605973784299129827114632049231750924357179798511128734089372779813858212215891085572695391632111655913241013743324791540771147671620785548191466887391402550787088566422493525863583391540811639289186182558306833585811063328368023104832621050904952209176550212533472854991763657855706479257665764520977147033885444739430406484666254454393896414672327612533099201484074397259649902509449185278423850737892815105909161091410513735000373365327715190157526243355634705423356319410355690917575753443022166659319865344569651883158342205361909719325019372590854860603271712201096818385400193813258982116391567184715628315120933044885966115295739879413402491022171077484291029340881783224919164553808842179457739063571222184639369005446105364978143451326882194535275376573571857479930552100090793504390089650957257117799208932182709542095932633796755832689971689871528328098649953734457235547348432001550330353335665362289021389834934998399120787547758353947542261755100732936761794119798022739951593193752157417691149115025507564434593625177691814052709348897605882463115682822669341748924631894177221091362549999570398478732801696055553434551494935376765757147587543251799465467802806409700522683456439599549227627044502437557266189368355494609851196597767188582982062049940607888205855375894901774082802509121206027623510176443592989275367259625137362865921183617032491525672343693131447151655782406408282141627131669146122105501288535954949331621781259043308835395481568513852721736447140667607676341273989722631085526621710524268465632084940980910194017937199999410651986103082389418433934238866472242192706658025594978650262664770249429494927814478847030807018354258904775155910644201159949929201363284071994302205387102005945257573778798272636923723023903463490889367859145942597992861221063117276607334932746000832988214261492002090709688211097625801590297894420055886624525156384498699462953221497806485833388083403678054272986313763498489784580130013617948209677531845987519093912688941971508445151604431499503500718547036793799211318523993981141189512332516905575919639634349888352933623631426424148610271446577416499445808667043376150718066011352077371633583289746328373146562205197663920248031052725044008561756503176353283911198389885684651639815566936049419546614542943445477463465247500970061961540497883873266262566894915672093990348566482017691694352805954140198300283777132559322055444961580616932572298116112568743545187073598518302008839343337145838475462289704773200968210512153806844812229661065913380738048036682830881761834063899181609895189117880576803178502705876220070774435338562867307940175096778596952611447658565224525404508256629444071327095013924324353215797186367009697771672170753005953241919240771261586123898962669455581695358412690604146037390394809845572676329308642827356859281487718103761336544394933294092341500023833389340503908585602074052088291381399471785039550640868744657271431627333693811541570016997224971116341010488435575383831248468818987462218337332165458621696182751708055301143939646759602502702000218798276815777101846290563541992536211929553906695273552820340376417450998696539302758184381894441900832193877218501935239516149058938880284377759681557222850453489227028504540898674630010973280735455261070639056568353991586447035708146670162071609541716964094111886766810528776896024909763333814184900975413970865446181295935665687423079010855352901628769967771268585460389493458411962876494917495089486944621270570788574863689838074772880848922004659598964949394109088447520708047638853512530940906413657762664025065036353502636065819232516885961157981901293491564757701695545974222936574400090988965924575792156322676633696169583304604660478474814196119489382278996511369067134561895543975978211197138663061700271969715551016612503848606111547858949261971161441925559423614138503472840189257915516494208420599857652971030526051067718990770377513283810848528384364837935245751267709531415997201925536361291845486778565517063280607380465603312786002283379216386076102565144431420360497622737004954418000295500200941147489412770031245940065828607431064078425940930791910769791539039466172308840516560948742905828698549252078258318866850917060238701057579886892432291818666348577376028829761493664559662535888193353240787670472108873866421456451940294522601730717789471409176530691092921346987740406385813867261237209880811392880837907987768960484751842024778142709397935710076380529827634790477855599161714129114947862522109643515737890098141930511539258956676276823312215010360565613629666633904379339050094153085170980632018350421868497460378083737233534021284525237953504749059482720228863318769226515476647655290925846976812867057948180644672802127314271197338291955060105102556362021267294275096490320264135611259054695746432615011840823296843513962780782160052615910005235524877145243380708421817711811757325588616393522575485400176659649622514588724982283011541227094235629118739168530907961784781154033566823498985607724229939780453714033652651354741767484507965517893354860092412922716454925995036078725500097246480650925999572362742523440807855369013171912125030845598378267916235227120765824953351601936328161824739181993167141409455478172787368717912359763057378006621414016409592151269224210412256841789247937674716665855758046905336341653476885778388245180755351448188052663555435592884615795640896776561655633754087552369456815770664280599790823277126692762485276144503328006749962566363829351104474159771867246939291485252231031831677472078650559613357922491976262795418484185458353434438404218381907206310632502311943611358719019424174048934654085044251592085634170251316239466387799755878645306217350715766882189782095045881392610155400275940656500682128084241449694700211193526358980838275803110636930760545934960493059077056312082182514169347625098298753836540170203666590168001531467302329795822847923314409058122600201067844037154476040780240913364402011771957255450634914477997315920655136414044446887285853257502658413831199142200938960048031825105986179167008622435153582779581558446552250990502555243377920280015272224496864018712549680148564205364615770315835414210625884507944052847126271670693698628728694601100592375822465373806014776630480142197137088635211639819485082918937476338591361329705535674032533893275550488165590559676622210949958958675298961794114490765925767488110889930456302222163147564828334696735354517175545196530509377357305743311842413067218380113759571533919690661875182501808269882123639181719541681676514522459568352374604202254053047409827564640256354702816656563897619441213906496713414826530250677188966933032803896079400987372787501944061230641742849815464053689917007817083751783554438191690447062167931294419476612646096667081749476110490638046483457559208393981723810635022578763756357996927410472908183641049302907706090243321724151401389048475425677283844191653169530664655678906707599027878412168318913182253130631562609248466417530225071688394262429718934375552114416647809942662335333757911302036609627710595939869326048951969151639735564319947777092266674243704659220148318303880462066322966072001169943317643208480357340834476971644808785238937239515014524018222586163251761673784505642699686900647571698031694454686117962151486537428416416975024843195976187990088392417776382719574973137364324179909086488806218629418383679439553833571062155518257321436629176647868083229015545361948385725430321447521729689930028147430177120012890164271171281901970167566511861331844430596991059383077773776443088157774977945362500275603010646530983435566385883279789417509174171264543054888836631601887226504539056256541937091563291516692766327188698017892472882044483402284954093056089900526377811486605525196373539427105318165227359580513675666906089647062329351197160209457240128685132412525128828520224673817334113947425084629477566485560722476188617593549350593246575988301851634183160045233996791771729819504958870127821501174336168133793723426425615744598666711811315216989270447664337684349876015841345767619251342874624827912613287166619239193194045862841247908382904531024466418519133418166761057582806674590933706368171445023321822148449320717281518061562150608217487862319657778721063994451446373080516423090259985553349951439623078959506974844721736023333084208560158469306183119782908910078789374995819852127720600504376823313373922479539901136362574541849586226408225921528158583018743734575258616279044440585881022128118218173536233411800253659885651708381708053475205823493062680690933857762466096293408660788083772761852789981401951837941590903882684103454733883497151717970119441589240900189756197352125997879814005827265944166086052917154249149227230970215189455840281962533998308699972618523209630986404692394288798477172358296083632652504390018761304695604171544474952719523918428866789949670081667163632461145702191426635537701776833907088401694271860595086040648571084266427993406630132377657514841702679451982587802690633293874691366476345481856877358320136090956669067623686963201947343581704490543257322227068205391098563220539211829761220777374441411236752000056636707091431472651188985467567050280788501908329790037282629631542557408372969498577278889224621286171618884321594182196926114272963298446189819775949303376588377882575694418928927447708116502859311750333410632904891233416078140624293425144136271005088318197387809056534608851364455521707300976616484993026980633221677930584661784338189102102373828463474320991790393051575109878772002426641865348445164818756285569307831511692301687664576889673690322062824594052655453052198332020802542225227720439733693917157683521332508127209889257744247868651669354161154400398482620687518084381011656486022369285733330703794676621576212838909882352768178661602080892909549143184100006982728462922751445996269605033012049502437453327451129891703972199604509208299346555390999598837340866538809017373165305692901475574837789794569010299121493608944480639913322472027193491244439089575958120694725507480328311298811757251872404129723708786661080360613471426629797464736850147507642626799276748198241066162411462410878039834140556973484355410337612757822822638738437583552378770971645999325431006116787615353963026849905221277993089470664200337778994937861404613905235008604506193276486556988235198764214270232281795371191885014340454796203277400586532144416757865324102328639193677781613358656586903275274706304349202455291357693654072159697243772327229287570025863187533967948779271682299427614212866084133693569235941165703349833916506355927170250196764345431150034920437932368430819986171215715494226641532114112385946510902974554683879704868332438555444363549267650993775711829458136478478711842570937806477170947226723257758136737779689370961388732557881558573106213529624025873629385526474127235581089347612193743086802142163640444646407223983882616174899148486899168120117832750204974356633078725066463809623009005146077020806598638758923557189688175023118364688462919831068609496970336691800389156825202546452810992561329109974625351178023596203258666360961120112280473040025301393385845728707268577048718386477903715517250645729050846620638542347999765509148311278472911466568428083594353679467413137167745312792747202955248488586234821809294067852440047349950842923806268257483203005531598761531856848525985120992872966424236465698655705801836159129333993757675023830220295542675508424275238352273639189601852361775012870616529882874924973015154977489048016626431381367773231628804655601752967325286870755964156097255110018653370943171537570389404245369911831273112878758381585870895158556297099644003657329305404399335132582656764354171588630539680976564967876169339942397252747670326634768307573249698969350375278868140218006522818101737723349817233425228723856825255963713418915354201061391018695417176382049906994781940976285476063940340670258920071367329761111992212775999368626541987390905524328865843487546395062719518178749426979329250048087749442913877850113869111248079182032233863190726207532670766514477517850202532859497682267713843726210329391595747692713455475560799951199998421197460978862478352852812677873221875340319656040649331212142327497531250969243710159410864563885845342560926967031412217476507392788242040067104972707141009045396167818387758013525998557299427705833008999733977813755122393406043649754010416120270917573611717916028141264794229771245329405915864437251309459725021591467914306733057111882341107918578275863265021269958453511754410772848806401141376968704049162184234489601346047350658020444493404135772806462427305853180092026531840898868373112417156574997682485815237646868629007499573001226593242082722918841249464028908151803846155537445193133107541149672081951662169353017154398187233869200519767981488317392969390600151264831687734418584646094380288435659182212075603837797728930846195512919369855692300356569632455868824182507707930275030542010892674582655788321433444400412938494309996236923213254043858987478881395554918062402652391505360413641387272128029940029440212760048893808634192886396871687908791580049126491828254008624067126202536775712655751847611655070093739977106115745379436203222114928203293727196480222305833458670078547664240181023498993992105446663902673130805033436155883605849452742133911728259159951947742960649451981397082098543330055361310169205501694178305410869580361399451922943796463125288644031291970230860716879655392924448798018566666307074949501073288282827436392422147793991564764248453245212075326570586018219796633407656791643295685823463816654223660748860001360752161741414234709921519996926764071779349360099365602669396249450932849521260719256854595358170561269234609262658841920433953036174669579662568723953670462619583499495246991182745053159515041161721269194323527844366453665696656046285622098515747333493408950311751589465470881639090049989076517940459187386347201707012444987754253175675259997340390955103176045713856486102090020825648106872777142975220582132777038974749485382417494842956169755208556938951217681657117852334820546854987488236472567262128546513821607443305361860711919321088141676521362344021334123677086460611128362833020556154920514574379566592196910111492343383182866603598028950808478872638185843357290124312567375264470667774548388351283473889190521296713147148211106430787442039182680313163308664933712650186484011237097296695227979573877418707019880812575967651757654346307403448120746437174598630573624952630471473213421560077567298952245112848288661879292929059631482552657555343598824199928636084553031685223211115443442898366924984966847711502254183161855585494746877120340578219908574255216076006059061905654561683718424441854754416290666194186621909944456134328855433648790402305095236452866816607470334600883991661252718004207434909882319374650799142697375790163435498699957906457666039054603168060333129454684160998587538784256456487500752079417078951476628690899362037728619602938050879952152452325668473004695364894499458113205786098208451593827377891804021017946740719930650425859927703844352948018049899945870954252253488673830200692926848635911087926666836019488446039118886984088077264525309406442991585846835497496766094471866598887972161939561953010927805640598989267536100161289494024141560204511639155299149691206017994747036509656765997604680324081093597433484646886229093482255444396342266208676339000771526360236954155962677319265022066827491667730036788273434445508507508148912446066932872689892721294864461410657958436181167367244502020114834284243222243537913189320969771788248582811376500964434614864281713361958144305059584123676538223660874226649127519023546956066819493503081219853220128559766004583815343234569268313247340972149564552496915129719305573309818369307999151753004073935786623844625797377197656111096084405648280590026482583092038370447702065623591938908938796703874723235168957949366255493089357688577719418520427467161596172195391858916403795109247423548183386064191354783430504245963543323906576853835359115599272089785049638518781684451853052409740250847467821025614996754883648281922475267353283060053025476703552159490680066283631607485608428549652385032788152833305980191188734998028229534078269263498654918404773334920072349949437789247686519219888753536557232002292072590694101945107184670537437439780079942817186010889585683586866196874916378600588417162870949568781941486496074999627106486163660088871402392460313927643288891155272112098964743866652677914142393606340910463888202542723833738032592309180739657864268571113459027275358896113955611135044900072400616776856320925906924301213499769386585785630519329838426580104514614576754986036814866649582656745442749984238454137597241632978512062648803617668868467326335758902341096024073237596474203457080337001432377908392201544755680187002779284569771300888079844687026969007042833703870756850597600265150624692212418912535989774329505587355175974914241505943797143074870653235710255638031780073159033061306138619320276067226825144848133417433106933787073870493274684271815187702486711811162627406385116422690427728436598339116964618341906077928552683418422046068161317954828940761978855579049888836318888264013030503412178264534934444356254187302177838774870052954376724217624391071946960726416653761218942196781543943219929873698150026463384699769216722602664457918038516146946710754749825761868805695123437121982189987914200622317000806521265848917255404016355517707421796201921864443103713907674259034909854903547118023520329621180117081928087328572310352233147953139547402066989744097595655667256626829469429192342147014674489675375974089159102969559223891800699101388514190739398937269298791874479403190191206858997227369470899748182677338559936649855124396961154559986884644526305669453255023999192905069562636735971567592051640761333452780755056881290990791093478338416336483854290802044049349966138336570663578725308037360622118690111301434049901263863728713838913506550958594471469137524217118258067574502375919246903173812198145841032328414549473626107475419926406698454359056913781156267566270771011972561989415275237818301711853521923038162483308484128889393071747281921090831770420540857798901339333017097903285274636885014017649423886589681945522197675992776007932462552069671000260793449804864477554969700954795413708203906021678055516980576030200130149950071413316184585910005298780953597146646714640782885583095286404863123246005804518356609776046899087025518067939573420993263526374178198577444829225075633677372074590471693905880372887152602310524444723139039058719382519742570753867489727480568941941613654997912248449032760212393059841986521418838364904164580195419448771121472142287228749675544257985705637971677059048740080068514298489575650122598119654536748571785513430832878393559399843495979905587138806885473199899145887060921399077010189753711414308169418233016067289627756507121669845081575550059392241825219187995743982549431340195866266748918917947194365663129297809902976862101789203095391286732569509506108361426228057621526272235628873930929550617551718436295601920227276330891023021153628460171757232336007865605708668747268644888874112342424124399075353025256420534676179695291956529457479903326673004760370984076039087916650648209377114729525803782064797492927377990708728327034383639569575530346921800234209032453865232770120947353077347721796847611024564643257836251352261072103051373507877638748725839578994728410599958378069584492695951009480715207937708188563670330745944095803862500370006793031164061208204687137897494854762195903424260502804494046642674008257882100695840052000720291730926589594464156042363969628024337055343893149997924289314591062604287210015560308822704545501554599393214964287726356886132420447768373815535138778530078335061581476945840159376007706796429129490648402680487115352994032264770609592918908961452190524060329507858464677401117454884613868207038903119490199292262862203016593779298100465025837935993575904989084304609294710582162906118304504351511781812843649954804375598250742216194404015150365277397976882901426183824148435304247715567917648530926174456777780697561299576881190342896956183685830460809516373966683953730187415197613955722323695867088648481257965969058632911647502601721645966819308606017455407338504666209020223032514109393148226121382893080963491327825488422010669840555450520295173431221616372228009737562570407379615882442348241236723896076165855356619603114664102448560657783689082602892005041969044704804043131693778129266091011395244822767670628998753058182693963203688324393764501741986416417478980436804935797040081042175555053404045541547053505787235500924964260469133482970806598265688431930807143389858522722005027039445716438921270718687549969225423801187650752714509750529691912564163917378683903785685891234521702608191317188196047626722603002235534669313028209207420388437928228055603557186702130628191903909513560414766357349766806107818148280332575827683267228131082055967277832838099967420003126128153958326178401254662629191403287226750391783503175816961705914670214093586773567277152982426314758526659110846078772310346848814632971936414454981587140923650608484564492961956137982610523702452556693099025207945556878187173756188491975540668419963932827871701976303365186354416207776181641386133517059313191878202155268644017231498125854823259507295307224196685915757150513006116758517494038087218830690147654629157651389497802542717756884859217440135696161903598334423339171006184856821588417678660971374987035849028436597361934641999118565350101636204922861510926459041588241309669536778473600760711506643010582299656712542736945496599184860014450577625898009953631259034300901655548339699048894098002341711363922563083275664319771242890234523764967490140239949473581769435824915905712965618662166138148556528938514211197268485322641179067636257703826954744162640416170722871025131981087316071669580984867166815248714479106274546806971416325855641735520930292655218524752298353225046890829865849902767160997004387646061061884710759518783279542469861099298521571250786143425139195754377499964107124233535288882967807238999393772209832365932923987546214621095299996064392627950020199324995460635006014912438801279778992968461773617634776946827358176782937292301548455905127344445338205326425981984534736148948062725612358636980059035985763870393536159553196926776034400569909208958512538527592573936147859383366358922338732738655954458277374473324068280579309436723058272427530918434250865931219966674876840130262221291163072592139119833594427471282102325894513076883088730599033356127947801599500237262741369251518380701629760985338871026221321691115176875935213565251477002977815559714423580666039876195482384505951662946043565357303080849473657785237311233468735774116403192792351292020287432386298840419502659305881439195314725233817136464906070076664329660012283422638368753836481523200118213198321816708532270310499197696128843377823001093037250200167855524832370701811225747157163069900322050423740681362160733956564101914709188668649658215500884758017479670838093675841280643730432343970540330318988324644832556522989866652066460667575227846340254115965786921859329992516241229531525687762574274115118455482287422035501829931901169611780715777226095350713971049694496262017731031590172731038281999182869893737504241748288540872457438750650159322357579015029595049086545464783731340974303229553546195044306711497873556145680862381377091195591537151619655815886842789992010823849921918595159472709790830939715492954835309040731299637476283308089747350987161856133856964157657150145498365361424391285480692077903087211441204195058412459152994890911867299786448516723477464647371838298609835389446086970790312530289686872192496668548564927791251454161894390501963544404626054798698496775100593229505485322864783217929982786470808607714650677128776526401403275524796601451367559961883590874258665249425446016563560529561073664130944349180100089107915818078960099419110904540275052580556173895724315631546736671858386998058359113528177830971700003314997591744543245500433877175059118779970589729854477024798883445429751284820280530374536284492570966466859350102909220030589003117680006491323995373043141013502768984479440567926062197453959151400374057866047098405923277331130320212272968084037003727047723376882067044011865272687829082499456101014508070523630337718512235682854573575146037863088773449777633212581302501542440299377493570838136281114537966666142427761655654945212869379357333071049214215340487877665365106594724191734228872712171769454302487728473506753056884268106081364983398438568770557212917065007718783300920693249855523614573105625090258431788297071348325376976152757555345338653672621470137958225823190296064929748082204797946748996405638507349186069911316211148517381871269181348935794965822652784184822008472256372055130809540437037579333401126159318333053419690665534564556885185084060036412685666833497027515018209546171899181960852627405912262237516517637468534565119202565084985436768063096164033896829286965122505883130038560643832256315259406158151515874292664855796200944189021354821263905372833577552015257834930082933557300970347265166044812792561232639453786262534830808047761019347393449333913695716663517572182254137440993913933990524724618666930774755418873176799268037644599151597191703162713064455921689380541272645126211845157202390611822832244224176291803697395008911640801432138222521650309942262677490962335393540012900814355662067958461445170637593570760357732956935503493328809620748505794227081294512170841227060503470718112030831105355831004724948515842821062597732595302164363426340216878867832319874051726091369708175271182173687346083145058258385669955620119348249176798368346647600924701077425584818908784118283579773992600718923287883851563949028246305451649604943891046299596768934615007975879512467261168238951014031922953459221883102553232617059379110156842354525486181697185154787655609489914685805167810806153399004116061652922220759032840880266991935885015989967094250877888665774076982397613119185998948095659211883404753237870267025157336921681040475976902176551303655738069432501423102310471358776077746915864706441454136892785585283236593672959127028801132725869016204692718525913540895648956593975272805945638523291519302582663747293956459767228673744798065741843948045270829238848790630137091256731029014969113834971196278126282868377739867781415211607544364180188405124390435703360070125185607064122063309147622637888808516507450955391459647562772522468671416951321869479286821975941288964789781641573159858946143638160625960448270691405753783386664490559578387440691625529863682779083115756797368906240023513842615543024078394182099725533266547975110504231070221397996906479463546797643603996417922778570002850305057723870779309225598763146964733992383280413079657574404821357993064305132827973900773412874042362940286065243780786169072085052583309574671698937236099830530289364941960264676648112995067786011814409897762895805016865739594436090724274573559147731420534137681131963836513493867590105975163521396800296180526470689697237215818822798154116941924945771239153297675238652195583030053909475557070291798655032850763729117230649664890619004520933902253800415617119300811626810174800940485428661790336903028234313813396441591549281168995464868697713803839919049470804236546082095298261601045092717058657202542601045945973551117721574910374280987352444771992065585166059565453255214792279057171044622512448550892446691281147682879849052884816917326554993606884493274310545344311228632480832181416024924567612959706247492096418157029351345624882839391973052377974317790034157692450124382736275657356408290304738952956869707435017973174212742608503844491857668577196851037120566014783652528941162394722798555667639897823241094064962254696721328018934405525042401618439187648426292396916020176960689793758712568878256884494364528201256461163162372370860552858093705357176958280197720256346030548524070133407903322577804155580623891804595310984979694934106964578727586156525612912042163042861503951464906220011258940456677417101073063196905989932248884568099247012317923555830931665721635409705509205780094516889604124450525262414395607183433811366931278541364586770918530866041243541251009384326575702848511984319440015160702381643774145455240869787262115403995625868209607126838329655487500048282201085093689422015978296773770264108355503534324891344071719280283619066631520351586241180764725715512393337734030734750646642496693792910641057660062680301612021199335240573452297246595907738622054770973157124283279416932562458747411836462069257384520814887934016206762521334397901252865941836344802487452254427483302428717198680904513983804344484585693569054518162453207460613142350351432948502590045143630880178101246441851706356311349514968031007945169979450389183028545368602105154940837352781667380754027352969853373611343168728904546826944668175013285686551856934905535999193181300192976513255147298668499529392434097335153100084604930480341570663859578915976599725530253639123941057902435401826360765220190542497813503055979501247655380694274148019653677558944210026537496182870417156456479145646017093385503125275361621074992912191627578815117889762051249513272460170166770135705239605193535942425355433338669339494896655156842788283595437079402808470723781799677422438382064269794565087599661456981808048472567473538812925121008329718100643737694147385619396901723115437277680859267213662884461012817177994983310204912998705432444830276052554763540894063106549653388991536725066233779730889548790766748975977201485516797236663426254523177407943831201445430974313142444031898313821543288862712923758819025305372029200071581900077778127712280471391620909434783796998926856089232579775384420367375418420645996016308503659102530088819287174898718710578593198436493840856975462838472416823849591968280001603906748537210903796456268375149661862275315681838219957834842179052719741586803528356538634896056710205787690096997538114154203061696506783251477238662375644253135522764155421867926279588130729928103339526571838122663173574779673871120159899724608330818648139691751049609189427329840428547455968705764352484444395268916358661324716190257563377313877745375608336320071178988565090469172331930974446711881029649366225078604788625137763565607965626600323821475127279013606081885452925206096753721897199608259462210237045910390166199565146098967228264398501566888134611536618529633624588779207034018985813983408050592950312717098058668362453963857015283965162168817697390684454869900899839674789623876059591438839045783108855114032435924862349416483076570209191198842626926059655201869930871769665856297363515585579897866164155508117266413897082426299923950974599310274005421800141322807084887105549070484731871773074284496354037725693782593433036274851372820537798168161611635684821120644122552751911725329244442714549302904839849417250629796706456063512718875375243428806596332686966597029040442598528107430598924299638558516987613299581693715441799668879649604218962819195807491355096154916026713412875164543726642510979175143988624093517386212720327406335527027534876032284802385379297961114308223215938373091386544299532384488012345005340344231998407000745142195410840811932586260688273594090233479734754429257775848773387092001796828299563741498286273014885150532318160434261782213281432965039172237986634038634601676389282682572043541864512144257965753294208121948366519500204579143486555909484839019662796656529010273612821269598866749533290597544196127463455939962673122730035152305009352294901952457973508442717763036862453903406248091769771028523221267471951887865978860715355773007827928461390737062178431165621154362114911760968404691057039912258558819166349330505885712869587694649270592810576809587113883100382519364251177336511223657027067662758349265534036376007254809730506877110773527813798524697462131542551509766538091260910673967442461836348614166817356754428244040270875633127452084377870674390715856928883524742526968951206584168161647563395981823056423198989003945141790895967358588309371318015118702431604191055870721166120366242508026856207972537035838336951823297146971929146365895285050586943292542667137404414030313920294105180524978701045712924668113528922150094177997583524990803582189447360988687269559680998392297615644712378450264080646036198521944979258497798722015755012115955139820210201099365755575093786168698080989841601249089777638221271326451323690301808502450177972160551153367751794639958383680903553992376644016923259266984654721724825877654339539020842098353661688519480633506049025327999943113819643702295152552618573940038055613420923450033248930361598868990187030230987249070918451639904011439522156414749555021402071614396851591716122050861191621870413834522987534505624583989971278968153465767208331889278125998002151719561194115408846188750408011744723149686189390924424007075222034244435448939985449476202269012521786976221431276255868205892661103733222112341619628105467079470404338945779376632279149630640468109493980249233467170489671095103392314233852944037460175091856700732919164197981632084700569043409450966275271278945405113635887277312335130673119887850852824926967861130369237169839808651948876908746147269155786446958192220262286742014210622154971522762784666836544537318976127971436038662056576069825781055012800903296588310274297727093820826948692649935265003118875848756339067822622925818251661172096165742863229780838703560576011462428344684984717452161302777220974185145617579612515098829082441487724225450787997449413679902953564282130365491043880554015760410109482893427935792250345800004270017950813385104712103552578762131741842337187295609056490124672945497102506257139423545255213248059770290387322943645206322596607442080969256570747176443203836329479366415710885086925819823769266343881307117515975371004705010913440185650564751192415590247303613886114167582901242308330437670309954613339573351016014709772530139373688361907114591670104517299902137383535274809755790411745339148913899168526157054981760989465113256371266095217187136656882182997664282685095723285557901287280823424523200360213129556424224626476973181112804219441660176180141324233489221904272314305840034814325047341188581488556909956873757122540097381604485996615257427036886982366503767461587687654927096873093185849801891649681747981013503404810230523169900645459942402726443668454844745765838423625731272749555204770799844356990818223437760401731408933822620176875722018702715197144409487839182399459021799727891829533295661640214064790642375120774045444992264609894769079802950580145725603870244544238203571741916425491872478846978700229925915450360935605760815042878652927108236961960236553216003228547414752928737145481511252061286694065014501459726215904673569422363505430516076164618124017094005528594640158035490735842999899667613775713525234680358826181082392801106672508118668179507369218358960264998804368006988664793422645450602837964806031870835234268268749610684602123216802599479062106861285908108364027836406142879540741364320374361066599962196742844205604931499686621419066098902084033697836155964903343758805304233624063520633554490648736927389377772607276437854646102514621260121488616120785133391992180037467581116028832087444579644043457549706321851533270063374339212151802737030323460695663207749154399806662178970301988098547812877880085355691396726628290137242876383722348194469796194352002620434575930985495175928532647156231001639858966723233488090259965279105583498450331715783848438229008347802005420531121632426248254061675732322735924086123421547445034700597108698844736004646793532611359374870272153858920008027232302449337740128454907487450875198034694528759858656924463480754864562732229914553834883114358106121638002934252040074035326929261584691659999296529649282989753323674916727564895346710675652485948607619240422971404109105314667808470105513572828322350354203553968346942699481463785531138743826664507647396738968210580921386055101587546653863375132451856193388595885089279580951913646542451185558653710858560463811152553390029752502852637633796695205350707308772497611877634476754416466381207373372992888865201501790448266752232019941665327193591458823548858051233602738477272133475486131920084759698245768666126204301040556422648548029866322747575045983479157975846572812191616689801935036128724681766093175311559833053008095444253509950090786993725891387623885410592200473053681455866947928499034217321616463273324577202261989293064795640021988941197557415150472465703918747224005600561765720407448573062537331040517464514705122046145055477359525315890203124074358763222222194115359551234968977310977884964093904837255340281981137670154695676527960613217062928003264044455428383010923566672364479529557359486923523721161210099233852925351875471799654268040132329571081723084804094347694114231916005120494297465581204004406505465394181786817978222568483659701069727792043589985511970617969528227164838306976713575869897764123958055889334639600431979305985885110364876475981764609281999248663457114292044896925370755795876519541974128539821496153160324411844799309304244558708712353553518242558568838065562386676439202056122409277563711471521208979216323065474278602674384863942474097172765192080321649605424422389640528006734079607694463487004214609919836530721770450013223553619975655603279117917095454227979802250561614166278880052376814567238902459646954818616214754973349980146043464275131133156789287468595421452872273335751779271884368523393554214428693677692046357686284439329936838405817316754257844211709532812220574690162565682443868917796070303423098781952242249601032346354476427440578476919250854985515954287309196680955703277465534585782141925254483846065505855588889730448130495505464652737516046557520208015645636821378549420210259076665549695072248851874214848601723282856225036582870048464347352428325412328640445300855295424116342996344627344464084875283180300181367714229088057456080595826139121877402884020980265541883709997674406842499735659110485669413053133372547456887817576694964512634158954171549372783165367836848071193885226834629174134639317360026965228734659527015987064123137372283819317066765710591987368062415357018897889384096038085769854146494482324830781033151873544399579025508349489066868607643619351811830695448509723779036319025493311089798798617905287163759387811385232549496120805236800449440431432269563607094831031296749768144301224618938946357919450498239213761890820867718851801972824992718738490374659134034321079738441014199625357997309551066695964465823285054707155258152505435524043536354213024048451871757088238639894015938958702756969413597890680947762979331157300232217438446566208322319628510240273069205586394359818526379702403650241401667502394691058388206227541046537500243503164634976216500427590479188270154219775893155889156882918224916531075302671638571589399987321438512484311294547925091832471016573637932137790255090928604839090148275369058893742039422791512127952107916916167151962016650500762304737483301285394591054307893131359069698223292901102218748745728097838169547710840554189178085600067196914321485672885203108217687866035231363222316257906775791937329285275550371534194168006787057420157260152945397139092793764607941777524765883062375570830132786080983820140792277413348840806592903841881929957521045550876636350905843287916324084638375082742341212285537613988341905844822500235202000269931925855860763972685306506979614617016293988587615818604740628406112846422526040459160639672295729310704276669884492336368932544220920399743388757179794422386738855278181679312063213390896365206077410302362317208705856610392653888170962041036107575914656817384422168669199294290133318123694829789169441283897927881687840180506437982678635792388236457780736113494814826776607737920205626525177139666672616877042374043020123201590350437223750504736084775337058711873770468182411529683140733148502795201979345744178712383647482205517274163805000990208413857831523757800103391907962192578402357787085130930557047081693119205177716438958127117644510451915758147746515684132235600342711250782471060103370087650511043162439066139946483494729431307944851610294790520088762026121425383096392346840362860472677988425348251502284530804363927945219971091726034389434608487941461705814500233518646597840839297894487962462649402988145604870906055088174741341094912052396583099321380599877908660132148087415966383544634154525314358560802637557341956207334110223068640232120641032681881473302084030175765372130710110144405245899458005105888498479856861382439301759522767642884148120031049678901954410798561602075526577719512915740893294368992627685433550862065961293765662819008996189787810591922134641788149325828785839807617446433703679317232065719820284129060016033421023291544183340460425035516710383298638755450275272279327984653884037500811460224919238829388517995360567915706548274533975428856152495109110234358795021098083004566870732628733356973772223009507178206459100581274119777364873153860997856891843835122949455883740040732102678072192382613863115780534293895552735947693335940426597960250075526522287681948691983876900625601132649626776488634131916793071271618865929965324454024809898399175545335770124171118429161516994605827913658191628472314843975521790728476429717228377297006162928441800934887475475887045926181953602634227495936129305567990946640528585708540921289537952422543603185274255050725215669321450298329380402809045162826093882884454371913588295751722363595087112758825863066661249414959040580989997472390340367707911677188795061338476079963067188756154857472142377244171093835764521902778919551429570834879287334339448871783497764789890095760094012439529754254541646064328804488713579768449805632317952625088384283123792519390601510806800474223982723427641239876971014774756063052838003826837050832803472814607360047906286500683663596905307227196920318518997379216023297376572964141161843747664417081732319587742484294434077507350174730993181323954307710001758380715379955175267645934582211189284062601534168224500818888771378205194826744095005018889364199714500408097785034334788655351415087132519571771156880435479573598847273007093540889610231847800362621847064073159131000657915710449249529878577315600404287325673579145170644338235882119004685679546171538318569178528715035701923582126477952694299254211770764448148259997705551105424686647976356421355654736737612768896300060595955076108580440918704021480050378939125110052784731209509401005956821365681924166220907006630350759385010602234552236341444928036204911365546844749023830992942081511953863481406953751901569903065828288077677211877807145949827504977288681612460151986066714219559034957380763112229929874139095181369318957071226538225327642313621459748542478978679547437000826287144144528818719793660790612767926994028331888094900579334820508539427694493550538223766863123118800915640914035086823497563235396360036555263352864665874002358015326309965309805490488377381473726354366894086662671206707160248805714471506298321808465465604114519321283536153003951522334367315935663458538373835711127168489104815335762026269121218444575992481867618117566113958297049951779496235606148724564469299028349749543297258462407247843887295056124429651907599558182224580928572288033749281016047001797075284693589152976562964074414558837899124410521159729362961212751865114375964327486279335431722842273616086492493974240029112900115411642436982493176278504772674189764926658456295324160038791245592594441683098120493540010959474291016976184735243188251201305978744204708037615061566382995390131303280464351040823264356462664334365378368100104900165913051308632485907382534660050112943916378392862852010867421715221501153231668556132244413742284862839878572459734993192630872380070778977730570947358804705499257205408254121466172963479104741967098866836293255137953581324088343687541020014939315478432077040917474328638362330270764322554266412479186525273139069393263077420601821168491146541537245256795051660088918640855377626075532266569825504747563727239533954258242419195621458425042011098342684887166269651688064975807481846162198854399927357537747776189077725373636351473210266413948718736990978866146111304764815887703860127038523435068473476977697307677184664514858134605359736929860257711207561629474486227768271408107764560474497922170599990254496644064090311027183862165585920723125023743883636388076348780717987213058289415093666371429554939972410797908154417822270976495853894654298550803663123626975071868786545597560782894720596057061200496654364499872853280995484953074585528072887802815137665824716548687161549066596499499379320384528625849608395359908551232181428915330906368007310704844065561127536816862828148063471823259497862285370978326020173914764927102345047734116881046827404114774598547226437707099723109858876711761636945717657923225275055378147870244702719866921431592568198779950252055344719295355411833115940052716857578143022292373671878642222051410612633912074395828983878829675379798346559857915210651272139557894938581646010749289191331566945257616151848952520571011083840631891458183337517991857490734009083721025253949992859669995778673100754271331943996364162308031865743551069964340540439423780614320921207985926179280369392628943114844394877381429940736849125445592311656958667520860290309703507802962776068271585434732269789614720882854915796894897298401157625690752125006320221848455975169395189205022211826017655957033444452853023915564980615054061944666012340717322289111061814718055595797716106967237006170692264730144090694891041537696147378689550140108576055984674338250112719618446265134344157887343849051293208886955097161565657056572467031836846865055238079374374150563071274262557382406580982437438874220185562773777410220973932952313192811852339414684142161373109699190261729262284697399144093760064641574900286802115478561643487134342380247303507919438610196055113088082099118156911027270619069779207179700825185471716711339723181914354737653846317504855772606302182283617540442439947523236353028590074066037338727646836105579882463326491965691496442166774954191655864518536946624735058361653036085463285782328112681967247175197324341989905381353943516313685569473165405883342945058437232399884965511527401857812208053804344225723170909202197866205595034491047994582430119367049845790140279016213435729731296579694289406823426570386590555810791199693218893868234673083659483273829072442877827474093934452831900846807656079773600639679439171339739298717770301978959864645362700470709173513177897856929597713538048380413859987980978266619751914106102863477469099687078687121937446188542762123259079394564123696006693754331820040082982528518804726916985860991223639244939374834003884070576016022211133954675955790757658648396331795842638462151978675210677881543473147880347905284039464488785882351366872875610902710153227219765232813855295568686117327453040114040451661006095579408313384530400348617420142224828925646114634543313484408725709029804618083102855412090203925231666973537800168899764073394294346304234387677128039543908339818366790342047580982913666971433300617583035560514655798425880251714288290120116573129434519562422550547993798313530992804783480129709400432950299706654329406416883031918318325532169136925427961117748718024253354798933439596275949630541716172456278162220754098644644334140735275841637000080219517881325268545118095396181082594130463346819342928104478711903282562069124231636338790866344476514261283521231531082382083687181799684600761368013659013605821119130064956656565635154289463006651655455020111685671652678945139635810966222359210218562190485548642263717087607248022585301007324989180598654761700588967192010754571906829136844450710162214574223208984012901809473589968665904613706638541298306627785781131830330868295629687136028472279474351875163208641800814840132739052940702412028340890635863555325127312460939958748894607821870668900868633747404238137445691731954848363175629562328819142716986497347665378703264048297602467136716805824895696540996808496761106390965758360668330466322620577591690891767983787453465501179872638517156479367248077453148170941380613037519198496248842597427260065928208153039718925878361237230031946463957543472878773610194761482140140847463867624377103828371738670647644328864410182521305880130211474584224178026746821074439049228405349049171856826262454341808372988879520266698555273764859425891813682188435177176985082225706615842418455206524339862596831742854537108159660386173294856296501836367774534799962027583058386370388684905827517195882298748014914168722992407347164510877585691229645863897903422278285563068852505547072954367578642252671245995552387196864467248412548814803551254757678758036591655559039429338117958305235861980554142750779335606185500576964593211175324645959755150410426697755921643054060390261588333799452697838609517228027644945401116130740235805823081872643014355179356826272682477676477280931845819034324427048334836982139936674081328338874401143582244462607535173746435794328201227286894870692524361696507792587971014108759502306407940968995116906021133092940106685034304075422180397763693347214663343472344225711478920019295469681029245355461578313842551343748918109500229612525722489983807864361517585636360179897891835105899637692615957224127171399751177105149622349157862304754480009051567514164932581806176666499766766921946584295263213000720852722987958409232410862588962452197310469247501398864432576515795895327080349205338495995657170851715617681626836034070461002703443997377012644434967929747530482207984118070320017779441369174773863167061106872648908250269252844960840449416726435160849079208458806826604256171421032694077070921315180011750337611838688172474353150882294346649347752664115686618869750905074558546527077286081875695056349440038430351346695459452627289338044967978854071824714272966190648887364729295251262637627963244082149295455126113655168491884978066023923936849478929967528767508533373231415301924853080578944519671346305963721541964352725740028078500805103487053102342452476524346035588415135782016430321045261397081521645637935277118666926637521935269458881287916125396612174008408106068815907668417151132338379046455535904523303328120998836637354987799777592472385186388432806696374556618652950427998500509696523126990092822646359450407690963706471038198136949450421860178028588004854795823733111544638346550870863880253343043869014541868982298164352963195857625919016331422486156187535042016866416473729612726939805061077706932636890022053585422274718581129964189378785184248342637062675016269174557389119219365588798476638217804421615824986916067753152038872586203577381774885204376464503027499057868901477197438029430949835783852715915396406535178598427013085797278193330598971820661323984256045534622856945797734186482456439606635943412631795361853007847197530532190901284899017608255554315992746533779711326379165642368465592706373989956106485800153879305545936446866613513340089329620595537834045437671124539783495344962100197472256143041277913736924210636024960402889368734958789745631815255361943122153690608664640073432373625867324857421944403011053399388141365196035021419356526256896660581984014359474585482615711478184042619439703323022888356742354425231080361670969813836660227981012568376056482034331395683474926309943752138791130691214726374883363870451453688377082054262573180888238081561379809396540926443063841702251237422653635984791158255513519094659886077002852238237619019671171793685578190542184183652447347112509789432064184953425819530745062474318497896911120733232890717661797390106107972343855506862941015171373059803061129911635413756876146532631197372050670333954895535374935523554446361660521241700139289262956952211532195182536353701228104392925992254478830265013236631030652418213796898769454288635883817188850363832057392909956464981703160781022699747592771586208973453865843272081170551904374924352341807608087034136375483526068819206139781493130634023593695902603860244780242360374760489231551188851229895509080872418722389253036273084001118101877158690869850156018088812202886289910574483133468871944850665861871818837041462786202629304118508405084660945180001578083072558892138281584621114710720957463695338430165720820948098607854462934870896033576747553713437080081334756951375902833826574657740864148906854710521363856150360722513792127457404326940691153338333454069010979866141684820953565674744463817446240272038282341255919931466388854268079820310022335083453555209951310744184188486606837105235074182310620938202516971739438150412048854974926418706740204403666028227301164420425336865059253617549065317842410240295982882685859085382796754528818522609216079064611716307349834946500073504810712344549413579869577095126218860852151113082215738077851915566346147557748823339347178273964992608504238395449446993031293476243031771653320577620296158828424736873956105105978350402908395566949820061564418426726613320325259596215189150187683288354365338955522864869635969795507166009281670261784753598612631844282339371976315519321687360707105293100172145914429674165668015575880368965071928722083800299960304493842535615231009905035838983404275303606014161223459234323443224674496465851283175616223850939582968357586532987764637077436915277915164483224699889915849267112765875324431932140584140319536042424326411835204523819897842810244171469968154040739389210196509378813489330857261254371657428825615400144885854237929565807148761001256559536715117288665233488896188854355674533396414007495540163428692204855448270396886225120532307633570628774188208633892525056976658506902862998969453352160139984640897746168557240774203114575260168557976069130594414562114458085297837945166937501011558702697108173981237089479712221691503726922592371786761846953617141076312199951203093729782851940248464688368591762772054884262802219835234508310410446738338452811288507268643465659188097114288270544868337333530288119677509143014254084143191508097926820743602387195607753696013833266086834448997375949709302625271992397989290707217062789842170598227207418033025104130663313862438369555948023169724870799030830184038130569806604943716761382929726700735760196313201708672034646627124329048663093206536136402474696341356288236675172060556853597974434141693169700754042556399318806796540717879223047948811708193890976192946947373774083183833864000291253419458679986682582738442558612742088991853494072964053950465400308848650517641604088404610413125837363633695759536745724319449522382726747865229099068288171810913228306578833552332113850475210825235040705678965719337982545608858642376448867493303860929573427258872353773784399598832833088753721423747732877791781905645319157784909319851141272393443518598640294382502588682040795251571974831263225987535190077253125265994405242048541412687061236462643094576017269407422178770112902126376443688077467546482654294585161197830719715155164415122855553846528607657027942135429733698583988327342565499527531497478924862177653436300167459119591225173602288454801096068110780654245819738105644586326352528460126011055095067415830899737281413738254756024330370387033250814660618768273413853073805227717233502613465522898648388430622864311408241952629691931010449259189289839578115608711910935007820564603652541079684583331794321124859506215326255162799726055391783926864346745086136436171247042532509873515982556602707513728917099472235151764745763790072768651440982365539845758617134631174023763010261309330558753478863540464559164506041154381129593264914205657325217131333301093066310005501821990532037482962639220529759346647762541817964754765469313288019489541524489204983729453367398128138202739560999881265411929252110156672172413143029592951882911215905522395256382530223157308175656272744300825172091282032387180242977222426774636405553463905110676190916120144739307017021011184787264631449868389824453673957918795425474795255679830935397151117441105232425123118376460754080753291171583296294505089772299925113003960854870616697207078522491710174129510565514396238005455121929763633630717652757937707156347456700474209558052048625669622403408943225084194653934618459517900719225838579967256930355666859861798223289994332104078278532514472042802899294621495112734515603360413927506472122608380012228806628558904608545292343990040721343117457182188434629772082919775248867606859454182023471328347542233870312339268494173046866604772430669033550000816738453544710177111998149820891903559703106366241699450968833517216770068199384897798143968241536440203513576009700906672814672982309459273911901418474406559535942042727507596192160639013394262001133373401829333170399015998772749286345649722935629265712236369117578792485743361711633668069639456597866573943769154583696586516436984362705353279391889670484168015434572612959903834348259495298115599019974142700392146388128024109511255900897952746174846124945369963893793871456493554874315107571192876453622557761086778494691096479368143932032202336240706500019445447493565759903224929265202293008323652108373149493102352722752243120565943452097985865843698530147993928488659779946620082360283028990957010837199697480313909877603512759774879637880546399756157478059462748291967473599473478586577863174290842616537450160836521389151820665980849744569081853080173864833105686101518727518531047681806777809989637925254805067495874033568063590691882164629900133835238598210216222020705590390932695470100908353429262328956562218938949373900340987632548424838477222934675209807405029679748785257734042968174208289150509721389321204951177171864580433563147885012402516562522519651643618401767307872467523527432609593623474806249258469667492823419381950680792722209492332779938031375047306856297847281312010701845192639534768107329218032258531346488948991800358065878309716749152233955847920322947566359784022825224408975680813162499467493345739390578436405731494115193731432200536685979007950371470261891807141982412594680077331496637862074896300485631746746510525077247706084665505693288402544901699814353061473171203605258972320474465482506074207990823079658539890301278350796162045260559985427414950943672229921050824821368700105559883321216803411407984741683465635437570075309563626703235802179166050883965534647782912202485772379565731511616617892252890456318515055149067968564076277205216959605544812354145513124605700870633072320408536674728061922461768660630256478513240697107697365315332197704989800741835180003839766773693946639919904224703160032967543677891635112828720444273135677052764335511791939058635328613705752918870865112881076756961797217677587890512519864267026328434524387122779386345112173720304387873312806690873212562318578148565975483215617282157501647077071660081131546419810016238518989362047702029598077203549033439765023290548132483826170282274767710786724543526557978580722902806103148561052321706549907750712626764199692233416394368960489218409519079935189627378889336309490322865074101800498870176274140121596852257538990205742133407034336225926996685248793479682114108272599162012664364390923515959861426666617983783576560202923406748050560887733708564999394375639816067851957898021049761712313273547351727721101998469005953956002895881715904798667559451311356668599838810751547684579201435718910144431815962096503328595100515235785619265697225062119135072776122715212131685018459158338872571932606310458148688109372263584319443637948747262328638904614831968134382347758667964656960090272620998992040863980185036685232343378813423971340517051388841889149029210892489970270769621130715400575819226091149651161321332078724422482445325714583459154625654207018287826843803380760851776409876449001971864588215862395049315399752451768835990316900877167641532874740361379360068013702536205241455757176929588082847090929998329000884943203917497379303202421755487033519343718924359448638600963666084397351004537056490574189013931211568194771121621500312194012288774881871674741302571739582099972787676386892640617550225950792744531173926408147802140501386316893209811433474255310935995062918042795954626400933050236677631743146058084088228820992398547552855664660980117404820617391648356700002268103149658744560170136922481026889804115685368364470380818871094498225807882164556197555172307839505949472470902881807654596405415134500173757282988790685702427057674693857899033831780579136768330209476165027720463705969878669139698730993916321543320252697763825925088919418775615807402971240036199677524303732532962454341707982921819036691172934478759976067611711516914809620515353041193981354064822804294987405254557631163558906759456225966895344699401115350178468119459091062792954030663079052679930420851433403579102416720745498792809203127039448025330741356217292175709847970794028932857339061194861608788224539377272040833801301796058974838105011756183988013597486208026401558088686662934784697370805547038778639614194036366506139246186502042179760693755747875566485469796226174814397267652543349802402696628135849059178533860004090301408670349651335715746158376072541197651759978763782970827112536300927784568061782863919281441934492859845939034470061571700193226919401227501094464717916856513454734988198529265350529031714856893356692917649109980821165187590097825669682277946192806262759805959218580447748895798820417400814619293049968749253774624540368588543050468719934462502727159128249605395720438807233927389839886448511954922468409952077603133478758405877099351277936906526519128665246360142549969875101704604323654138697555729722602731363111767058902926735659739088045049077828540577319394790862540567703873920357234502299197291856733318516512227591371420837270107293078235172923712118174149736405711675603510401805883560016962204341352113296605308466433933488328061362730684218176630039159770106358464206931605823330162772020784182153619991170690614189342308703951701301430580022677650504427516499495010687929711369397744161571862252971959732353682916570060571957294145520586609720134682024154331905975126566862416378443186274665788992083734226415016423805925471794724164067751029480587930313401338851689743355249009278803990978755018674474705989984269407627582267676384700694496884644404192478947359883240039427086672379981057042638081131653311023631186319951984982575072471965309487103038393714287213329902928273668606761476205577662550207698115345718763491295361784933932015959048202131144647080022141474985547914610594515722626162629989285941154171260134203442462427448318119837123774938333826371740747637948103850104868435440267851787397941880298013575715091295661546721164928278187684631555802688738158455490055381111541584120021198801036983796369101431711279244948654573179810629540524458059251109081644834066081695076846577088028044384083222063155969641439685880317565256018902732190505309114444767825165394155839464057582616632513621785411865168296128999784462027903374991891944443932617144268684502550284457667022520368197610934600222495842378623616051559700738406689871643003325851662922511798084584511944074968003161743065084944481375319257860835915459703311624487620132899358339462948848501940692232841277165887771263765149350062289478121993289738983706944204947905029717059828346991230051131992436323577458205682008684724189457222670802481557128858190795510178736806817929177210008142899231428578220519190094855614403972933158552816348108812053010050493992966147494824936591993815215824188278702859656694856812001893782309275946598170314103638648716579371662779366174103800633361824543913108105758925677386032328947735911833689985564690069991524356299948362597539970808478941427640382556875663249491450706269099379766927495403171352900530115158824881125000395881665668179048416542107700757752717944847813742616982893026796564193239127308670370609019349468132261627146811232753217957966841561365598654232799947682050265047325425473158574623031448173068182381823696976060463798230747438875437480681767659200894365772288109533644855488962311552550807355636114324368369176489280266040098716201880585230104850939990092894026433795679701825819347394712584401859498422391856292556724397944369959829711200862402741570877428837449973902717830040841644838261048768638087533166887126090010233117255395651357694052101091105136686544058428487008149014760062906918158913659605366610877419258338329116397635708110164711203947695748864131056774925375832508585239239412959487137633974715267781206969735017850682747529432491364756951657850977113234138407433442168626589368359867047204632187301829382658891150907511150417735116529478146408432190062792821151929163677226283255042624024143248796616677592122488401688529032119318896987626338892474484700121175366510476330482305546197764076979474700438505661356695165764378647168332292400328961445139291833514067084239197642126250569296145829513806409510393282483289518288528205500730590483136997012803673987553480943503167086251745200491293696877731355873562152864209063581269940849828845224644329797320170697713177942838158266103739549903608844153315321268097391911676461777544871401039123432934988988924224126474685633781913475641597373808773359191388220542163368119323722271049025646980963790858965602905255638349556972293673592378140992811085922484487458019832801021863963238378918475752397001517881722656240983925579696597711358039566589066188270324891733517482723214855478222047539512619626880172059303646625853492878649269503410449890798998040456981514020171883740416248258049205474918460062805004968312935111833225043267865744813244923574271640846790337198600884550970657878466745637341601017787187956010002539688560461188136106944837657651635862290120949399909551785432619315936080692911285609262036451199602113083987882771545725975102458859341502436353070634182283673832897925011183971917305176546702185284270210072756262786966494561615032394504499616019394701868268753859861522419385097120873149372851151710419824780243595990592649248718582999553140167110154820318294212788665378998553494674548826651027822100838394368430584560224242925187285603208189985451220445517138490422548902690977334818884260006170817738520430020502266973784209613247752743465604793710875137089636571732339485502731803542234921483098779457750504591252593158115295688326486896232758927330205049851563819986406852757022822332307300016579424351315000491683612662662634703121360779628127410608769077377933634124729874265216882297481606677729706397064291845589919000208734825462854491556340440659009849743362256768513494162735608929137184195607712965669076995607688019141600396088637509463574941511184733509360137061724328174808851580617039136566648649519918118775513733846276712520025147554784222358341819695185106408256912414981459971802786532575984235964958866489589707015854411665462733358668084774193304772720180183555856135437438985722556013840515068870028803307385023623670056828131875812727056573440316095293473193982394881939510690419020852812231496979216314317980651931131469356612763778226539109348911717960119513880666360315511270137548223511188250825578866835957684157556428659794023708035816554205991926649860212477712595718552461125890656889392103313792403137699981197587543046865951131348916666324332046007932996075588867582081125479685576580826322303187544954125299341427992304454586219457845248456323664876029745171743716357948678121884346550436324675547547155929983258005514343621650214194597490163368406693807640286039672876011218765962105964754432038162762352933807861935162450579011556009871664272054875826673102028864202851411880809225273292556447800209292538334099137872697765917423927127080173416314370306055949631517726097144442855771296914827447923348363049108178677170539192199375976388892801838393030138353978858134939234594535816327412952473631821377588433340932935373274465439707342457740059643516076033063268801217358615789570943327923897029602992238613966735935914040777700026582600746441343518474404903373058801103426623044092673529522883742426122478661607303305111209176730019828586340957521228211671335454968372113330741844294920586396985312828449381937700160143928507674651190003799140253190011212826937626113479905454896115950398708930830483245397425389737925458795702846849615692757515274030575358531022429594783997324917305458890173445622825194189596080460991472382057224052885466470991000417519344465791110232744053331452076422999639963238631436367084132503303772168350592145699603274574142910044204025500654844741105210914364240868041723211454497044813133680727920998792788625462519169615319907240381688506735113330348411350274451780018220567515482198679311806787888338167022995432654529589462176853819136860843561170127028500077701983378057750441888997277057019905728020972938047356555997692182677882803930196963126584166281662735917144996384278252767656309757880376695186985552450249326550859593854493022842601180997097631735770994409973443288935815479428043132626035923884669023450825245822362337569409318839365686193173302627466563780626982446716509767207101286930367937446344256275148477009058648311261660657531667947580820649451371340027466350951484699475027720579371164979865316155728808669934006270238865405527433221644859742417573709239724619110636705492255800693848366962015058192427983787627823728446005664977050515935456904687531281085221594648373328202441050816932440684004786716063530158684767270737326700327089509778390821411036759284643276822650058659106510145701359718447558742773148360638910076075801254306137017538461435989002169855391671416072071968950339039867188284504586632566487456261717733596895839233654888638835443834418590801093897932678027396267619250457031955860461898657798268365836926327527042506984059442695839142975173311210977290086744183419706807835121158296045106479712493067536382368213000740701930945987129179968421700119058537319955516677156591073965152919152767197811600610678632502441537177345134543854818795634597539282141604272108696628127529427983155973879628644773265600522106504876768316772854237326224095393937256293841936564626156103725132630216948686170849125476502628974109317481035916159087484367778999983802937916768212704745231763994973309162860321162594166778295969532224660131234586199506218869148546449091103805116952237733984104346867645263798215286995233179847251207980096192561381406776552366483111551344838209917473519004579303245016454762995759510980622025133247929827316114111152090061339339385935913704515149380090491323653780974000338910056340030123305649710081003888898465610067267112338061249570227897766743770778072640274267071447532035544418710679444435049173707547225232531151354247866306454185359623018233071128332013452861186702692405641985714300857015107303051676484835588047186966664458238396786022784683059547047005596852604373108376314526466133488140133952251016078228607042116940132669985909151028690919706280769655340387383624746123442846431317896433135882402260261628223154677489437525104146046293349438016863297071402677225904773198012493084678644935344627792334214047809826265180142250769723245767598033805157230644651410074892604441383155749244399826700175793418548960961821275738238526470691729295053794425681872151336307497095153473187866265191834390596653911234903329021561058210092485368753070595860614170593260398965167423427245307738019956498509761042607203563219420455338762956390328154063440473933467803606785296264216155353523318702149386106796511627440500501052715397279018011223047601201248928584198771083030735920563374149209447519461710829021572797231693491283013029617540625095490200945059309396669741648941313406078774933555030044394328599370819993349430928326474327964539185280407159275369875680173114780497100905785055784770637612333761977834622844202682140678651830106793083233706424966739248184786326935721724361520371720707937783234485780970072340449883955102107320940350669149258749700240133729245293177371037964473540107924891884693941491625756344749934672713052464993511287015490627847258173514639779513108135534625773079546732576052972698867600327972864196621803583878005048695684500273582133253775990609494701771624618643918798399412474031773974795740769578102839877173140049655216546236412382800553819467492869250430240103062815691063926603429453490712797285743497312141586352068220465557056397946585325184565695905757777749310498822677969315173405731693148021710079508318277355730460315572829446783863423172510901509233463190694733298537265124740453286505561698189325076753670485362539148960815156845468500539395592148514489272114072546144602909802661816058383598235807490367067630533718084105664505834794331066635523893581415707657076779220855187908720593997513763229802314150355506654559873971185126630370736551297757569242455577180062555064032122290698797723386417752366941232417384705832786932997071426639120492972795839148022693817996491853761071333496416715687702817224993361471164976133513297505311278016835649658082940299682054913930592137396948048347868810094676341405299305557532585440876205607204015796966478950695868786732150847444473854583579492159535265730166457604790336972337862236864520979434323057783019106575713475537692403140778461800262957373896564450626879535240181113468572605511123171781141966926916954252123140970702255242326670799176564802594083217594370418030313202384177335354439088836972596187483114060940860871440545219182141297901235691883903852053905924718285760533752190218876070670984202528439540654061917937735728281485741482094934690976806812735848741837659811714007887570793653488784504271863153967477736905161236176475662458631058446773319573134636858500680885785557882485457745550311161496286911783671453787175791499283900578464383280533123076419994027684581352382597924010767480535167078800040035611280447355592452677754860681884331618089096616295396022014008769186613889343588691229110503983801852652510669409759849894730826423883657351670354049963948270790234324291485232305614787487082060903052838820302544200992535083789063590017887090061248871634324691653312714039183175370882204123528650964454660101373422961433806052068041683520257552866036557730033276582948509220690657967381704435200305920312596280857301157686537202364855320246087655693433918249553268459460232962895967739599734928060527332971905443189111833238032974620324871341923713579783155631820068630778818130473269991074172639977683340586356727750180432503241605107363967058540047904046007174417036176945046571911445172032025660148312996686577590816863282129014254803024184582686730536975768138450735541511922169418773031867607248999753544018989231646296781855344445199680547535998515819060271000937789163817112674471509329164515847684267419645357885657666175128260313080354184632925667500246526701556250412682898970398930636999659290002220321452945794597317699618870202022609474554814959016117430075292084376181414463904334007473126711407101394240660581286226334071953149076163609637636153331907544692528135290901618529814271187373281989953351076670953158207296219391727301096411038972256216999235847169615066087535007835359199958690169290457972533104579133002145519161856621427620283784423731923729523594687870079772150414621600926078001979478205397392741250306056298293576670037270461608321818644061814255971777880179675859549605282984045446673124468379759962003958698724123453140200340968353890525516180149799061252273304461813396848437201429388635841385043464246501546983838405074164041250418410678509837686349192202378934021710996026154358564438265651582208816367850155738488967372143958382834192926002795574533615724170833894764498182088197164876026973765448494874941021214636697350322556176804892553327971809573070305426285718353009695609619548353237508565568408848898219401489018476689087702498079357359312551517032013701011343547437583434785627153214335329179168935726925310451132902226566229734981173554865997945108201653694421371004555743220428372818511359564156427406079180769837632174899696495501085653186687282281830617629562567691285619367597124672487913006756436903550615116479118669394851560872232983517091276460108867965619281375511636394936493913628582746126876772383144790639625726051727192018523190895345401685241279283173380798636338020396893385060681086090778776783392726858876699073449363466478147410628703429459532322024803709245630138747886735788018379948394968050792236161075269601550897329966370605090804148837456380211983712939172152055446449742142058589774131536221396325552226933855054728252859191759732918765719580709625024904185870214114875041233693860536921642748746564839503389187034283647680725290072536284938779276084239714174397745717773211700022124460814856585776496495844770216079874411949145358919744503874572994475541583956117870145818656701038636615770251952665251489320992700088478349786755569418363076936926867862497522681279572749710718265268663771030440475415758616893464869861881707252046557332795584345097205913527212691804829328487949154881597260201514294253520682389746747002721437092549061433634357076987687183847381822968777125937723986141656022200597969193752940307661963860145775625497136531156020947386852712386581044769835242232899613494412814992154429582983067930525356378125797695625327370039414021519812987520484048440912632605180929432450436058853713427370329193134516364756604241413382856245164017672251246006046752909141129437832760729783376131956201802885382467103307364143643118217969767868089804219711290064584913201696863853542089714839745006048708799039052771297266082773831518901293692733056529200913490921979599704235424632900972664157429306074556889217922410026751012511683931808879032845845797281975821664047272184387702361223249480431904322623851810271223854103490585441867605671019134623828424330931355496391478795157628103603433914416657783677823948226576506781674208665046218078842146505258299701756852664103650640242523987145913881552227298353410459947436809155096513387293327431907140158722188188134665946902772592842917635184599773576580260989072902691412626527702942174268550938309893587851319388940067940494545504757054268532155584752024588722625996013904147305931698311312706497131352537324679432232848720616406610448788638267141378282747033476331765633474981386544796873522122911762725218052783858110859287342789473244257069689182984704261240421808709415563335453008335869990648139206547443637797398968624180055119651670957011277471012970363874686743742779219990192835925526036181352332402185173006881005494207707638548944123700029801401146053666308097650301770223470055934382761596299333659430626535690094036641580889975331913077217402387080088940313556251882894332351283778367172330015105403933306067179133959606296459589292960750448391215491461337794647626671957821006674186231984169950794857299385360342754229472216414449930578556878335149569472399027144862138509776928591887117399518214715191222240449541482196047936376155463231220494690030725215474131025168002487345385739672289268313300062572840844597446668388117575166073530170068720133865365442641132223893768888655998216557698888465406596739416091926356013919828992481538569150613192003404897051333360776867002309503599570985038419285105342980013285522356042342138977381180038855355362509457203360493304887130412974044277396139570571079373404959454286280697140483403796003173863026434145035957619568217070498564122588896468479325216718509523163394500048165115399076934518796676696703583028962249588076817091583798315462414580602468474300838853290949079955166887909290591162134243151376066556353860992703463221359544442475460459959890996982299368942619345812866627718833853612815149331720636140959323758063318475658265877834249488314283406516726280847135838984385282264384214445298673004463576531718107032695480642252428544705605870079586791049045972101569493854563787330165525212230855306361840355785741206034431646862770389471175197707771345948540509793867108355648312168886831769845173453568164457786839245400149752167233387140310178595822158258050648292808518640618934639607235030897482172545751013807140654279959342870485956888427365299226538683659943632032511035368222859360008430655735694791219211023100568703302939480847711421779934310429930183264936941564138765062420583007302504969913727663152945516739424653671066410343840918951790859973362497290848820050760723957547028911027105595666269191812162935279274711955549665775303187553130372368930846224235432909341892578581439298157832112516647198461859330392404843720903156819548881247409830874012666124055153547454772151922653090035811684386055531338780247763478082117693163608866155687260141150937374213071177997579298764776542014400580775954517756330048176366529271679377188762750885818775778859328468176560320968543404783947423610406799857572861923822637465919152869961065221182356460102588985256619103554162564247954583713376024484079390959119148791608607062127363639714118346823477897402464664467317538541289660820749710234036312481917890213381308202279162529681292067294945812424847825116205321302226405366163400336561459851287362187288331543301993039416307476582351110871561549238724825807798307742569866150490506662759896287635771303517794685053064190331516799730435822172327000885816767776579039444251509717190729405555768352505034914465145715824055638326131394008830102794151979149311668005218572783460453396777869143889402817887478300742491860344288102237022753719667205983139651647360605465246497898409697546195977642606058364785015226385113594081259406815203087001371650213182528579264443992815811589315699644854837942694140443278395706472607618049466654435856079949845240105042523317058599679131830391006373022560987102670320747191496847870099106762857806763421498012651957961957381835387341060916146883103709648440360987286209085494654908040102273257414922534288701297926368847453883168718261768047518761821161539433598392171491649544062118210957715869295990391914557387382425400225903262385901698215122584315285320109484046261725538875011250956503866919575026487715122888204440214242601206714526666188787404918258496995612153600533528771139753426014392345071914223942520880182074140720761826836587221710096874228525343309068113186491586943798373476400006535268500667391645961034015629897233931547354285083435953914291406347814531284341663321456527206907937623598113616840250299533266281574099978100781567153248586994078819400262136180826967670220520737516903392807853529778850174531361018496624736006671969473954003428177065301351531315548996568720996884387642441933630299142984214024481567294584963567340483236563434851439371933623462552725928356214325413047343547490850923344281968091187895484490735896370912857961755287908919845917332064311506713344852154308571398859885634000664514735731310009020990885947235701225211553039225639679466961795801001283793853732725084922748162694141536774309870414773824044670978335954917936896878009977861349279247268360950529229952428153060172285582625632663653955544663044208788046730644747621496360630937288456274650646888884311320494718275768237670386746056663093705598319077196086759178047614719012425836606379904741788479447061044120033989591413578804315945626494732998839664906184740568907995659540039029447807615859423831351774204110418194384462137524454422773554145869201770900192800317651634627946057458357240118934359796693098162691154689818694197430978913279440041109786924542076348255830510748190650168073803036938642754870490900446544318654233898337726369174315895772292407056715781463443085073296725249708233108458423436097525475922041648437885515794723692750149066444781420930308082094048324210826904635577949246781153978949654178805148988573311777460944716660022092071310043255564689202225433077515319267278070922451048407482572867741930619833442646321522292759932572682918334504204825319787201987356249496022255765061426708256140426781930034012851444904226434903221254737676877280910078394859631165459798543349270625566075059517505963529178008476547189589132609326767802548367055114064941857041217287062155746797758729325609327538123840947214676906994795774666733758639568853312339041485699517800510886298761485243625316994797926961955677683131867901794684264446483358548127259394458418137277778221678498622149448001931603797647389501269312455073394288274808987509942471171259730312212582520109343187195288263491521969339032995438041474787678331684165824467385501021422120413746765488013880889840855780199676898177587510892040308440481248294346821095434134940184255251653214214894892227482406990234007136200879003496415115882708295733910742799794208056997088326482364995434546928003256439964514805343893746979896078620088201227314929323676760777382925870529742621040695550893508118216427814030599254279619605931796237752728327881428140522835751730052107024001264528300378222098165374881938865549823813191983761282521419023887923794795684594158941782338692821724079780500788542757465324475871413683800232855314174964435264748090527628732500556458407167682927187436341569264126812413129915834527183782005572731341683393538862366025519473207007816318470862091020248365920679690462587347518822098043336762666968875020343271933347433226558011893266741406371121239690982568217889680402745557666069229841641154129760709248765182961428269719289162296607809828490614571011496888239221321898944360184174324439840906272825632663607133587551043484313629794562069443915023481691971575902901677053537991035620852802312678971994535280867675981019126636165288966811906893442589839087426088198500807001794222069064887178952253136268918814852999786625667996699133626480984721736480719742033178154514367582685974104851067422808911509864710399801064043066455600523881978018209598791221896075502924623895547978350462499728187628616069664863844944585031101331513846355694418536251009211890836766411255450524668309462807080346652093991640612427461567416341019340867806834200905486736117251626412176106115718586891543308773801394276658607519347491401009326594002079784727013765778922270094237158580666496444467677947179497615298447940077335252372562393268107203207054412119822978279530374493097582368838369859579495216517117546054908563203062284238640549667688080318240906948176031020295055566084457270349443692323565100674649496272372204926841052359608263570152726261038943694024147291973145263542809979985595636439619266134885786662031614653367111356691233800125167516518832945587638135528540021332420099884582455002830291873794858988701581793209851691605301873615019703269032347211728320148303377172323242580589219723812772958817902550286612449995523950840418839957830187017125893917212729221693897203571635146370570020787933238220001616749997920262475191995694616100175739095179181754076580472012037897106919797481585376912098860538090226586961259084792095826401744935181206603738601047177756498973082466507957005075402817154819520470734056527089290851516827363334687290352640216286192425113780579621942071155022969783971766738152762843839377157160101799755153734634154170575450639979751385118888211759204883306819595154571487973349207788788835281212098327636484891402632241932106510440867454137274606330739046522871118004407576481134315256383525920328070030863563212579068471429774144316922461721333956555362685164023028424545957892489196887496956156851258282668812458971088996033206160543843368543692672030755203673506940582063651196378892418943585367566051807134944167659089203707697762203670691226297784654604662579298096011805595887584637072479886213134977244349908590520265919975795501976610817596574243361841935263390751247861215827009079135856588607954803372795606315728235932005318364096632204405594015406081123529182260587808588792448700332121886373768574978552156047208573031949159789660944662533382240286149654467848562329252769115727878863207293609925881432544036960003953783235158442851218514877101180051169531335666610009048087831322158893449352807388501869247646876641869952860012775840843364257334334084459146606965999370400889170284497303251378603241682702483667498416869520688826513373568705771272665066589573619504573746642999132094905249586971344577205388982533397732969035400658445851284925427234781117060212870249882997742937791707147172555885903657044067035444312193794494991668427778300537544070059077741606782044415060638279180268136630870173318177350161959914040854523036966082833406024877815158931342690812949505274515338426071183575957362757407686017061210640803332974544498200339443829647465252663640972074934909981761082714754092934834151157350901474319096107469866902893663361152471500744294462313133735577865187111436962163446170931239303676941543240709403497723812083347561391108080053428810249792465416866541270865411292169183369139781975895433045463902669357856337751286236659768569433631976910565856094548946785640584936343900242343480588410624378416337619226488202000132796992170728549974621522812863539329443613768483726637970238593576001607544754556361435071249945739500858439132713776534752520267030735807756908406317366957184468778484222091965761201440237116858849098960602180601307295203738907963325652748699500203704236492760538444794486615270228785331771318199807927505508409173800032426726217463029297654774583272908166913237831830724232647157515939455980655884798469108180384294765683010624634152563097953339568883910714544210191772716417364603460430157591540212129360627893150192944451749822188976172992112819065148478456875085985933929692481834628287293069053714375145806929970805232804093889141740376271081584019427502599141905670507042592462697675251728983886027590669914052859455278294210234492734503818302235286608162318402372762429899256521589201509256934674505754298627707128603738570165164716050484113520900365328132434607376386121967107176118700354035493985400339070567931495226186038747307388299837682283779267693906801538847797087801421978677621610719614051269075084091226718533930848358779763690672793474634854381533621614708749485914020477102468212810766647132434245957643553248959453240697861479642932428459991519090886900813225102602633109418358332545983841232158052853564867984296693010833947426284083363881528656824346229236983444684681443362821654120458889328631376896700836576432457084331114040993968299268672713878437262125999463590830792133103184895725791304677855804635565935930820181228339678933466133157991246362932272383593595830730531831169959119103057954362896444287994064009546039068883531823650095508769818608608508343908995304463866357831460525915161545311099912961368165824941379386408049849854887853539539024108277476678357300752656388519340539182578050886757234110196694964984594333222553766308595981647144227084838385877582667709438636934043485128136989489679267662376759825540929122671783554374965246366782748817205367269791463604838310469098135410483407757066146532193447665110016825958873612731014771342838580160780644371585890226665411971496345167886351752748600421242784476247229591961848213420892358750248352808536389147484494098847607863759926869709467579807309981930313938237819694320863636950483308655026441092519408688575808247130492379722403804296261690611202572064662148898855100230670746819678306682027478629256192102248149517278661985947895462333884167558501030978982608875784926416248167527091410136769359154845256595043302400211278268743252975270602981944912741581795637046283172581092035186435681753334265928143153654165528096830925380544127847254046549518970995256901435934079578848776417705015105982457696291302662081832439155351777060567643227001561421787861093686263165357704574018632764440306706952435043263284695928946298860132136529537283003768832655096472312710123228814197716106241890117392366581444360773943239567833911474033107807936794003960301403377238996935747498872914652847488676964067557616385632989713741119534960015296569462768363524477227296491674332930341366460473135920559037826320837564911163239340955282111283781533955706025103602368623106759114113445685150393545206278743346717404967185964544954189661416091329013516585032094140768305245509085428950835856179679195500099914175653067307962815068517100215773077007848531132247990372479112586908777793630958639448961850196887038836536406356025266074721285386256782500732903346690219326271972027723808376470309546965545332903983742504144555522748745517089511882458453391456384137938507764753397574981750719247514694648530199239369482355890280079087105464933341561113600565676894567113151734338295128701503473148653113031658183190546475063783881870358954149487635003836388677009752732473107022670310099908187762524733753814136739103806238348152116937760403034701874474793745469450353999650147407201476217314687283534618906652766472815965781759720135384217780589376281736431447685205748709261869705182705367110167314200287057218564997155081507440775231458528349036410069679196809420224803146937365133394590254534782247939680775157436194267353230436949491617413744273348547955593335624628996577063555789106343167783960340366315546840058544981908107835765265217841109907053475794379272017370045402576605219718803569018469840195593746250852347738855294830107496912894106500988180301478321314777636416622329699151518821976214695056292162294141899104504562126467167684636864859689959515686247519748311151277107400424531267422047932419515341585234200404182860684609906161420946135865341225668649262550194973557114193821944522590381596881367311826486646414673879235432792334682979953444293923408165365843880953975330018352118096263397965050391725168024573733712724926901001159207625444890110660221128753957457724635317326267995247789072268484287925883859631934413159145799093038976948669532970818690807048208251472611007409222594733636331144112005533316603798222844865688526999415033477320539848202772984710804244098769760343060147227884888487344806298616629075423911638955067478702044215189223798646902185653700474452327557138684887279874936495842155006943993814122982232032754079179552396963179734769166221057242396018359693052629689532099454567733238440618978530259714075676741769486540749224835569868166495857463949857634709004228341893106208755059512149052226170412380907975876400397964697757217162016340075157202067981793137946508883296845276011367710045300386659737105971792680436604361474399713455015340913465856540146912570071274292788075367474849148077997378669804325353343684655516375620280839790773585261510896520400147664214150096692852275505464539203459669116404159240603094457152306695496761499995880441911377764106822544145250375049201527543601616554252325274779937993993861319343719433819730076769351144680770843539552439442561536928094875440041159592127627834341609360385097623084572056052957827093525008648424320115287139418108522797054946179549518135528779546401560144640868548549181755158736985034444592045178681332686943083807560453288487477812289160684550347967959445905769352859425191695216297444475361813667816237939809693291265206061705926422998495427432325333370198798119233616404994239063117651660845961543874474254914373502884139983689227517550562082672971611404677176626449824297192647638938618912979457522995776949394402791216919880687679502545580962934150961935894071612973923129953004775842356198762129156193932157976455921761412563678420001982902312682369444477583974000919467258178635818705883333141577919842691008852894740466049129809268745171049833676887324685964226601108289069326485023050680448281585546450096082369291158157994895028770298234134824989646340832206960329492737438026226824446561393486368919051412868564917588020716415848905674087254742201377871269644613946557081222710308980951489921958795904301869398186498801861443237652884748469436483609619132294235929561847562020109207208442064411244516550846048536052047557248804349559942650696840135947887872226228281572500167204948844292249217261720009224762086949411360515599827130514757733915604762819158707599214768674124607875367368608525709470944062013938755113533465161223501562474651672137143318787849726454768560974854139073870966613592732061870006311491644401772180942923363632122738310700176785122400577826884799529364303828332669589112434090425783121668327052392065957307148775689933113949777778717318767983094938140364847421944335582124038238583045648130425865122806965350934629082070082345585882860234709531148917175605482068611401579487081589543982828353510925454154127861188006406502867769360353500925764526617719168603617655275159192515885708306729555071050595209179665023770055332573723590625659151891072481174886011000094895655719820671633738718784150334110327518080679102390844080651187257430755391290298879800794617601676840744335388535854236984894081590251349560797552528534347467611068697975974337391755251585252453991808071103744165336970138980797879382352915643830939142966018484960254041264634019623570236752436569127678465512272458004897315029564090473182799920522347579893200974130952315443227905497695132705943050909918937060795202728400380984170522259067972685305873646978367812265963847685543537849861593198723608008539618517652620919189485997726655527089101353275740270369356166241264479655664550744001845503594084826659635119358934095649391745426755262640958786289490272078295536762269107386438373591538618574913736218854167143436875665330196452392177693010316388886724221516303742854947497105594397497427592119080222833187865942937471294073999959786190297864976837784697374593921523393336164264090836240654041622127859955427825248464504217539934968410677880011304596793067892317225185581939011037072460554374931671209854735862991094816079530965302247106762283900338774269490222170823050628134413055195673468038573399764302369809194663725580085997728789220756544510538889629131999118976482179247448335307637538080569274393845920540802557014356642369922759817192271436185014396664325438346438707576790544271105533962784529016481903953239205362527746033656482010000730551079904799199492978083748144444487757129031905162693342177206452354508544949758832535881740306918484432753199283956790014426874596311806987234571473232710146523423173897055345627964003727509513930525891464480807891602457356180837414107617510652226860989774156810356711648308999322069407012725773884621446462617875575917480265407021086673155223392144333784738431415691485890274519595077233894958361106105766955880995624916201229734179558032981855837819944848365319750914754712282408323279889970204223499518835562810382027549001864131504349403512327079346750831909343390111698662748569800269952867715079838308935440548923993721437258782168093695657926407512294594870917516861191119082110691509570790295689120796835440872720693838512771566773806590751189332456206911050348517975430235582035068401723703890178981187273755714195129810558705511748166314830622315101381697804313869354534958638768810319803427384745578846220860244068379768242093057647845223577292103911689169628670881587652566475132688224149205562541779666055901754672885692307195830300462204844789550251002299211402705558993563299679349290162222832853976071454686744979011657672919384743589893733610105738247472399668452872186068069020191956414603890411028592480788501811878397776895155098925530570700594520563952263461560962260144875533184766606209412460737301550583092631397844286090732362254064626340381644120931150183648441384636792001346709853225483020944591579900490189682748568731501305352631320679788731947456070240470392590391196432772016070593681323873008103181208858618093853422323458973548240434021577468363115738348586718498113101156549294283539495677315677607960512248116457647599779120927285970209616781674928446336977703565834258304271007767605657666872412787430609786802404540701532199842634293343715992230213770315864542958049466826774917609916559143164293094172781993298102646328021903594679397847649002313496845308466654870649022424494927332320711012209093715829186009088145468564543550853285652400242048407050852749018155376188765676266401895341053981907118656968535370928804441343824891797504531397240634387410329638948370320753458083316290607932151882308444885915505473753278952165981525169845924893148527487717177490640513148942974606490120035683235141788524095431469104747554138823437174588205872424270371445808283466968290089622703600233610040139652618760046122686311755027254517449646886369604146718709042975010992203567572528588152022904383474240136443783561335413284679189653354251600029084002645723883876699864076641783365715535939225685639305769110528513553242751547460685196338367421991452704353926725141274138811142811408532275953083836162051181946075782862074785083452387500383839948003144142388393555902661361115132024732026046744692538654484419063820735473469260592296118291541388386926535277893364087323780670338646852547171093640551440450407111346601517692311357838057661688255896642475809044466002985359446364996598670609397156968197522271189678317255108939337566387846878727930534230994362850886862836203475084678097755972120543725565449707524293813439379548073325894451197494514557460470319051863691075249732306049204559112991166188840530111168022829533459439409214778579824990496266318627167373494294742577039389673805938442585669039867727542081494047699107614849702156490325545812234539195835545962957390266294551780599855685559053115282405257924481766566288362125953373690003447590455931881278959952558187291389930368729182324755304543528331901820514357291708473004686722933721353343674576256615514391588197845358937534280281410414891998746118096915697344581813110028120620958358846352244881316299559038250964419022688778239074129637326500470047175227967228290274897516228339110027692341028289541831538147674735541938146170221657936175440219630265446976367125484196941678944300265627478514049712960481089005977621322844510295077943986327509763685691847840209090710359770494539704155714734987489839385056597384441224221122804866240125143704371081132796225148163112326300996577802630095643879806784440985310747831685079416345315989333104041781445022464814933548796529442058871745457985821051366108594856267803358678442189604493208175506053702259567479903921213661603476943853619888000142585700880260385652931354596880255388122407072013168813993400875799178519427069993183624022927117232251426649920832445240482038844075432157431444392373592480343429187364267705036975879588683466206142040930863296278974643086351853334531394580418494701390668206674363708620390726850185496180877485810110094538920637282091300393144188359185737591832639244268499219769180449791256433327372278601735053027232345750885222526934151411578135746275925406170615293950783075590394312107993296145242868381313647663595204442405444495873965637635494114017299406791712676242240514412233070424016953139042546792854498442802517123248416980316179014882889928473587395182677396838117108535079236700907515825123252249099331541397987634916770619171785482036161008020117666936088954234940009893006017387931791244859800662649489877610217699546249614317521786862691321313014759657167882168777844316953787526704304710160121371654492269720649852762822479881838296271357342481320753710578718056430315813894901020833135878823354423837034083985906799140483374997850415620024569046655601185395941906446378215816901080587969709739230577418865905383791762655246693446149496543704974935597628541248112788516018307195671615812329361500571285830114291882584844354940567181625124776322389472245468604697770112290362638442782160872061429805297219235434266463478595898147371748257987269309223027609991906091102546097148231492330623773431560368601765122730908318317501985807637695416597794763485891332984471590155434755218743531858897259380064164346977882667429987870400232636549475287690200842643772842337326726063036045045683827788242104857305912938777344805604873886621828566654608666091276314204598610050998753845715830929698442221193497945388033168313225902517394597329319850518828203178407799999736847326023151889084886703334943603264984445523989119239534093278322698782445979638850601061113371753538381640418444609636854059826497134199406518086319493212593323001292038899865590578994596086705604379291963863436032979139011474509171227769985990381103812821812053912448138093598195727830781472297628888468212978233041606126116665066813725117971639772268930108376419203790876291107462767616800055150680052408760458664669310214281891608797581580477449275518865743384585468578356015653687731173540423781117771955732380498048264223240521071393945990028905098638229854848345579353921445950100423274669466883881808714446236659748163670323851038273320736601748338199014040094108741490732307326454036816002650742801185445302842558057113624894346967911622961907768643767436758361906892627730990271625505996748521086120172719339051088949407122324337356568536491508594264999172331297609348512326121224777939078690717072226951590153175177597628137109353786141989592533020331705696325427224182643344940562122560616173857752227774427408125259333216330258531644725610548130650838206207675745617645254454360963076047130997938030599589598920930577436284805407124102538144462301558515824364643984548545248267007476506669038894827941693442201856208324185030999306527269380377730096483205006401496010722894143005030255769344371230011260227200761408574929007020773662028008409347582983271568757743125358673226106891371468592145011946650279898829798836838770537096101830354178014500224031804215280524483358671166254082509646864484022290723153330880260440569431185111917621616857214323905650461993425091282469035517597165285509723925470805749665612987768317683913525962305601873492820663576932629411685929424726186485251132003883290057874538519016408490262854056828310304949289099145009595008794079043917556310989532929261842998026615231807981467565257544121462592928132300878522083127736928985764014595086023106006088127320693234195772431939058300526666355946714460889743731579763818353172090937384963897317987389141809880244615194254855416246887488516101163344680212810560286090430414463674088048131120130904206187997073699966055780431244180173648429222059322826869497298016808384977863333598686472116625397641497419888083239122092647848399794309268377116524150864579096021930935068232744246869907769873277397484541133341053006347451895251901646435966185899957273802569945076425294680516537009156998086957210868692756750412831143303659044032091342531768628386871560559787798447345176856491165533932901267208546487012222746389851719339566162912437191777087511010202346873632070050881222681630500052244647817673457557649817699541957554111791160467882185960439029824651277525384832063940886775628142865994358288683055775062642237803171428209073070110981385220795364099632703975221383066641147178704191044689231610315339074637465659169816765436036723158737139021147077211072355213312749541989223921745969917417748124275276276194947109378253356839049851989784710146493827843902530870404057112884952192214495557000148112116169958191247452415897083781637912286658840792652054654502609028112492765732002285057475985806174474517495320552442813932217977022201360896065152844037632024290796333285300974316590308111906830949881123108948551217315772892088370503233653410796586783339582904633727381539723968791805892021880481073322836092486512714359284760202622884422570364458605269078900141792260183287427493501201161813008217319238011455089578948144878295888904798236589462500501538379892323162244765312568317131227986049854199046242729253681597064525485787118268540134131774334149268985173213086651189907656892050424326313338785771906850496641393212695695289146493485052159835143580310880012255700914691398205158340359015491881638389944898649663314110596788830465138169400351440978768462739663434013852646423746612809995854134300388548176870938516541841982213709671265506597725296801284711918412807561065301266535606139963362951936340212994319796385193625366292488397905405187929720433308555077189808480283416878635447163486294336280554489315115486511496558044219546028167175545000638703361389982650264630043164966322546097113378411904428704293490493416941749433368028914925744649963089483348456585042891836064662092100564641775895678740944253837610291313724462722654997502832006977080716921540288515823647948411459747574093150770747383101726996176516117829795738468864838271403902814444094292972412374273471093561403821856977349187145043171254762762719588921015875596360271118388884020954776843808182343182208516829355378035239080268806074444887208436985904637427437008685445544076317145649950235760557601468867876098689411657005647055314333977868916315865876754524988126850763357856903382714882599683123652064695032920252638856215349416283252829488947869233862082666648041973083921362073903587231494350836993979292559238152367250650311733675485197107455234112056985511902850230148205510153474479044420189954270599900146616522383356390962696973138017416357271592681463361070614920712418124612088103974794239591401568838397650083048757874842239545867077152284982448253227652572660216131831614613868337973144713991357321989137581178875584497006863953557066809886555040262351084274435877673604279008059998368588623255134122454485247021153405771170035105926219255906829917837092234635194097304780994495703236131560473456566844970600098208723522355643982858158310026246560555903004343552635435680691460852902852724569357132369391741883079868728048267878155699234075657006861470618547673468829707091789488545734183108674654203264928883596576153762317225354779067738467511901932053264182395454862946025968210222922887671113927341745013331066931111037971615132078631848501305140512029891798875494752439002947636547599065750083476497721731306626815994398145563182294599483855339611091426487311115574559750865442987393541811322277106728287377752419465584080024200241104073061461440400530885089051603349245286193803040622728550176821422216719746565138322305090329671381070393063313215784540188797718827428917382814918912988074668963373026465842113638785557178416298986105687698309852013187646965858643268065506332249895072399881305841899358834204730897935057908858765761953764228449450353666704949631284295556506092190347993488081336215654574854635037590739683494550578121623992619954009290932276563394847245350234133627439501009622064637822736936090414643049940875401018517976771290432643036730142491946366366003808289408943277396447974502275853291740122096442114831852332326255918487838543159967181087207265876066598303042861835634790056418809371147208086146563893533525299103952652212214877179639818330218711195512933179788110879003096274514047348977488664213206393028571974548442011905004567019349769756136815938115901397299396677347132332342862877746698016788832277798044417786331114613464983749784130236897997282506686825259267741193372958390463129281039342472889183481594765515162543521275791852499926715531816141619863312113802911474352040188673502201442606600253123043030911585020444621207533486040643704266000362620564496423433446802099715226448776993693771967375420254701227102585601462762085971054320720510179456560671325423989352801706910194077673690365590977009578425240768776496294463068559639407090637361593057021526812608754916596674165352000982803105356309355145145083961949057025350252821367695356880037342205160366143830904329534670007076761244512059058573837847165269583926276238431072164800525134473019380493123815664842773657366977600386483348275390697587108998997562521802678258436241281274951894533697484133767676530734910798357505071025530903944236259656675616052738687842048721367771786123362147835777972530034486010116232374045734792505869861066172249874448457645889854700001273259635578961371207861098285213916235072076332188456496688044650519721601542898051434434067904560220785474437075089306079100876032400158258324992202784268144589604988831237517688409872717751685575193803069483878049618217797673407163157183868180571672254246709888853560297420474939209295982878579161284701049858325459499577435793860928038916732441161351199646718708895236406007302716610813859209149108448766619292156892264797897322981790078621741866571393616363791978408348276793023617315054065414609866758496841900924450240923949148551414457494087754148231571448861434495041983893009802389723826645976791363692987036235624320852280112517446021492819503682167908713239774377586622632429765772656595299629705542139958510355342574913493724352476371267276361061711380225789243909062217709141669786339248594421761004729551022124334520012050448081962769693529313815405981055348822833545029079248271851555907083853811801028527701239540123829719208531609258657993725660597562360991303615356045551713624796978535295577230647153059937510556525880246247469248853746004154072070253407187305587687221817896037484635531837727161066471192224031254183658800575536448622518349838311755903592330069230961439098073138989092307361709074350232715424424815241091931215048820634027539714181207053980698491574570939715877214559254614253552046341586177865135739068773152277143264142273616868186518587738388556278230962529828057754132285695690173194485718427873520456342312965964581807890147262519296371523603862740706941842349328639901799243655804504248591220976700664442091000848622608518798022146876306109211338885387865070978607674668555905973547487745952398801357987221539001999055215684287366704078654122293333273931164043787844293697507377574224082009411913068004413799356096428792132168275522918957099960423303657224252664460944261375104172384823936938293741245677828624975653841821627440898165946061628749384949579807892630028816277102836450852998851560618592156556444244321145991620887919952698672555767423773771203728585801094556909841077040110576940840210249030054552008750027456392084399904922184792949777238895942025395854744985977577306714829498099379680715243134177338953018274552921653979893827386989265538825016449850499382153594253914505522058463522866495505349076233338394446506245367676485500842751780605165795811757737117836673143195182908320526433852263387001688061751968755271162303863169357943273184682145236922953081418766009584996757320633154261075193363689213408196853864675209814219195214319544941508850442535435180476533977890158003974215187861367199936482005631041955191597981912165730488871709023890704465576392604001092749655251525795384093482013477532428347514136170960835885804935314481205043373005560372180429345593462158593945599783764809643152006709877446100230915745746071996904512239622455501262167442527634061187466898484089334955370511438809089330071804943825510803729479589503008586853973902749936146130300710278368516876596771878314509769924268330916674743351980567521397168959207988197782133736426709834000207500198243054719527123264731258734569079897188144095966470980791655966368556453913825072337780438755967246339629063317562162502232972325469350870200870360744750385508361329596669155595810064413032430299314814859633193433059396287964612250691668988579409378665306971663823728294058200421922992232163460817571306328655203966619444853870246665085688380685631597096786174897469696662411284023533635559267902470888771262466714122424774695132814276850126475698197227035298393089164474346245623652901042832848668467218081360641825051806928642216398988274130827333467658320110618079944370880937503000398892382958708799749991319644863601448806212317352649009486904420017108890039876317111692233725227000606394121655364764619051916225914828338561499972418820654610845693549530302534452141709994243725310419204497052888555041099269110316493880735929962210882865925745375043070189755170367744829353850814004971347427970120973484530752280438425194087963163678296376069648996724498522362704622970662184984540158324095742362644890763076987756519277371930807843134351421673399630675071971040542488973481084013594697540344635033451451811554597318326500291829061757235622967087566632297590823038634252605020562568891916094395574854008421881389036812913056083457616297915579433544503571777975997804375767794805282624807774095094900946391948578522096691818943622288676499032769494962808959058514215574951876449921039124844837074406177375497505795116594460033960809162867729030135926052578864433360069245732310474610423671478458751225054723874916150832940596636620140692139624969388322835937590549713420828688945520787812704946295776945239920683432181375950894206399528759656447982908388425351975303714746099769871148447335440657620556768655733193702040159824725657641290183541835217052828486729007392264090568113629025595370621071621347297078570851942184889251678636053635313641420146462047344203097395662825952600789063447384874558892552157339462603631782333491367731844257762576112022760345054687092860545238699806693880735375866531835891694637139461736663454672697105171424685594190051620796359684400502340794719352480692442520754476908722667979821253755448006349337541060845442713401201094505429446981145825073181988446539739227353193194005002982749485159515379976383850563388180888395448665612202028074452906678523967075814556837999183123535413072976891328076232942592871818096873040421250172075803755475701558026875115354990771462023464730836096015166376548750827704783447739456437787892406087361835437686801439757133031649934299368258100785267229046111536640250907582380016120192455866128969946930363447150241058927149281132757746440735896500239817456709234154919143045984166185566349465589053467102606408061523994359644794654898403273881255933524754093972955662943886477895113464909885724251765997903827955910364159819815275985102094935811565078008834091337740776035723515179240535299543516125557196369003891637032066224104793323631630751108019538560325814433184892899639712778787984863122516571264839223723443719942173277810132467828286098358258461279917462327273877077879914495114456728472321883205215093433240462948253582237011890051971855958554636010237973483863580612945552154882631804622730651620688423608629442873872832586586982158249146280412145804990266691874377991597746277987532749342479161782498913840193153905548188245988428913007053068839602360298480464260161752991079994768353367955124589321360019614175647049627096211903821408095999263732339999097262486650775232791297355311259621972106059653150092220449838448707440249814321402566510932250117192046452589165223630567174315292215786203253759867550240090637108484651486247406686129187658416787472750840690664680570116637860407672210837139383792826630923010148782389768871250599952619331765614643919528971720772639387779302977105313841891566441228796303511962278372893079710094141527820426547006909412639273357309482654700321701220488045501936108206064099004010332631750251187647286510626786910670592142218709696099907234118749304063873967125316216589883261447127658132233496278724965248327076885648402488938760506547003324029168763057416457911694837273066158768744905751315766680659813398068325859648451722176437896360875234259196461487460841241054028636875742014110402205613516874586644976909913713997569527458446897002426490272511210568639565635273835527562780051041949305521234417393061078143714346956902259318334678568944690126248324635158610995013831890738359156278153424785860880204012629966143598821730888405790067601141506976088923929527712540094447252532084733273547687367443013986279116015862118962847694071691491541724786340800442521728304550341003877048502575353350578711427059596895480782701875292120606200178868890838176497498833953360758881935420993339418724280488587368653820850977097357833541676149749484325777135006430107899036012470969685265254774202301839548853412587367815802757160413176307179107420541568093143213257490037838240443118143668753395732931655161375453395079863040595260394280505048434384613260856248601229841112178409589150985803948981946845427341346860673183916579452845960892179077353253372367620095299851032838536535773547967346799575391140333423720692795362156102071532408052503143953972648482697741598053594652562870634171667789859703745887340354442096597214857830156798475497074485806424153251876543713091469499745104719697086991594458241506918765773401565960642385533843554848286290937646048996021662375703898973923293818420076465482285981365139899148555823530522394332404243454146646198788422979970375800319620251102668690933425631669303554961017605364827650842388897265544637711334739802817825953723178595428046821855403070639744533785324447134022758876362506025911297202297277972866603812881598577977777396871790420088627456073404562475687780708344908705811921786373040219613008021007083311333654820443079412639475321982191647479501356015553910651993027155812568075874701335692002715693774872963805336878618179288014293399820448992899519378585272331854791143678119017246990516775708355398488132684411796562468957217015980862013175128786688365874639687265074747318396221237382250583929022632927918897965169463053198775048670817144331920047123342282860009476746558883883390292271756041577463799105865706302031464909119178675033743288286664456582568345467962182501644565250981957042476002367171891416977313998159847075547398497764328933987466753645066802859129605442449409811231605313158397214199361457817463754337439086987219867072855091046441433477912092577077583807693957588849905395116996133066978258224054649007702269978120143908144038005528620491184895436240412262777138517434352108893715524929455112782502890481316019687348206063017957900264363153569617412606379213874720286904438044413132265016774165929732622493234075711886318173862161802660277640561981307095457867161791320956698879040335040704026080286193408964479135117552911385740033864209971979088117713194895760609411688082759308492316555838366700399934521747395873111790976212839649721623653846161857218220238623014229556339898387838575266532500850798022288540097838613683864015756018932052879161249079276736233339259614986280985454935228073297122533240098426634939882813717620231431953240745517110049283554910867676889918529656815370851387667261640924410864342780070046461659444880555495254436287728388926991898757211293129183144059275692534223360993616911943775195572967616428461595327613667574362706932347155209733944921989767777142028238130740186603881002167728797400332292792081875438146942941568323428901626790474230938665149920446676116719935353195898206257749534558498444869717022510299091386811317440335034097145483758848590640157799595259089845266044928500044838918171804662638325308487320204416575638297642774659995175345465377340531552491409516412709013927492025458671783989466277676298196832785421809720338652658627203590631613824134040443904071137536972574473619613249595987894475197761270102317552255761224229460803291730348329307008064426022313192783984508403490462574450563406263586605658557851675041794183900792937207480013982888229146652323421021385338049998793855795340031833994749093478163711553691901318199977595570504540800128416353319946067579107874100781585323481519428446286933960235011326328533645307447144476912885417195092462439062776832556851925345135024802262478485026053763064105077964922005090442441716253925868794521159509684880691961786381194049919595826591033694467265501048531615364873554250524031415608395341681829093618957772695126845269915799242427065502804657038406100627456922797013648154606950230634464541989889553001805147991457914316703620130412862894163504131662516981406500472342972719085246345788934703403347958238235386594670890194470506727968214904988114525864867610984679097738325517721178653447018765344352833904858103047455415438250562092198060515639195372911227624932807530374666009108731916321045685826165164301420930577802924330833995818827353365785330712967828406164266561157945554137123954415378923095688031213581284263788218915549303493403243359628357095148200966378379191303030014307635252645094112600062857999431695921096903875141338221981105461329806518887161150083701257654689811876826433682035416105318093323341990413377209155464035300253485023674668708387045925383442361823211446150778763700781925210763816615696748598698785719150325675875347553448077832092636277913887757020605293765001533682705970874162549838686872655734031781422381126541381307501244895973163296205422550332471276422391902960003059858339455942362081833977946374319584895486278511314800248907057069055815976054444316490285623946228512379815701050994437638797329248823618120014871625903695993804427130976199667861672121699783213081661133945973282214837164709296402599996333302273562275869937442546778543203939576644331009230743901568652302762679967742091441745340670321633389439956045214933797625989386170729446588204405204763622430170199576508966094922388324240509355481655295638829768246764510901540302628786061961564019170511257182401146372041253093708294954068471420321375737072618611080422460501423207232614724390448670481090010543730695480860133872580715003553826003712847406864609151130064084148517785995386135330429798956455024444625446715878902447483548442887665104340456284526084163905775684413522471906439204665152803738913051160955475416837942441101192534593760627842583843205657623453397833964210194002375757958457961206431874502846699837412731940548481584047451076064056685908091843004077005418559647157662933925953170555765810777296870161076046027085305606804239378413336129208254813429512337983103888631512877813656455089518489897906540220993330708065617765568567607958992898161412380882834336779145877884345686745757724895896217416375330943407575008270671746796589080576906629262354217625566133102271737652024211471921139447121182350172599802306150462471877693854590605574839609051504536606442381130644994600163391542525539926786057398846419166758847298484089598994245577018580986006996567570937346556435315981407026770775901590642535539478970098782984127976730807728752271659625033586440091159490332798548006162236074348961228044074326124050663150292426578204265904677445153099878159440060679484296401087541825781383655328495141136560726674222837950029834300095671143091257479485397192613699469432838792395316660628808379497971653160412399940056280100816025971437582628351012216080511989544099344976311918452397582099996781577518245555100831737666722064323902329527855905690640053745159406892800251781756054173998961806181341420007968532737006773773725529997665996254637936838143948514443816921747010714097419139680422812097731618232633192638143913958986302162996710142258619824458459515252430806357369040540663032745364245142051984052075199751988379147405573902475509209850424114665856306814116411617455560055918691477021643728167353249695202681081473291494086513879186850912582564907342729687570583167975841242063268572531573874313917994599393608341850789086635134504758914649243277821928812556478545484589080107864826149152653438762778804546882335295353692762416323321008310343444917456967135904959674313421355696241212187479928715900588919421248102189679677124837692063513284717039188898545818961399323647776808362105832446395131664260041751698300190273415523745620567446269262107833360230991879014698191782444781394851060242029217141880277834904865124669372212072575653583121133176455845397324417789471314212169920662844908540424297312964281416126288505142351552453154854413029788861622858337532479839279696344266798768168450046365509263755486610249501909705963470393245160765088521207745918066284117377320959705590603394322535765914358134768805639240094607040450544195548558660347013420845836109069697718352859924080493608259602730054626423844977413148665969156684975877590328502461856235650540557827561983585324070850667222577496309320069051773381793726535574189282323952706918068991994146293415904483862105834712396991180756449496145495022355948572309940652352204564791116794600170268287410755918488139398044622835484830879471235284815014369623802528122304660244481002741910442538262950593729147453035716247150233660740035972645676862602872254653904761122398129107595047960014604726369523210438121785993017175145926783612572741983708954178402638648150399877789562381021772017087406483348735250847037564057549575578679817093615459757621131846992268156423409476506912917485176873436669704359445701564616934953233617232651143916420807173269094886782300553913211342774600381067930272494401960201739972294024243047811441174400265477268720062343720594836092796147659106504572197607517585500975284697084450687227622932511924079598668713448933074999949489222570649378917795565067950239697771994644909418220693264754229252066697220265753651616339630170092948305839973903896070822374719358122482994235210362652142287641363130750245224708967513677320810774957699823847505775317188506112448617754445587718329572764315610641962323020797022786454571421106299781829248762181566437965499449586309477606365022970818126550351799014024121451150147942537723158960671670662779054056174157906052065403734053973321199382360004340237159518193150429600196240415620615522318834850669298751206019632822135453561272828297811894419533758972626627160098351610481089397776167655797940818266683149612904111614639547071235211426137076623673078697838834796588900063146274253108291961039205963264575817010999091615606816266184736115386754551773798921777085558460641888127280177241207682367873485237788302602937066372152936833820208570435670163787518699959221953935171684111659269359658890884204689906386746471185802570321561857693589864445994277240018828082427433488128534001406704039443290769478866628280535280765616504016123697282301075288113132961276029352266272498255239237287123862847208901868432846152532768331195980470785930240125725966843157557088673565906144599783607611201622418517844382621545078149615980606206642974506807014832732999548981992961337416943079554670233738264739694925053452821337852629944272998742877610396826588290848989153269115925900112120140683858682679318431167622534493424901993045007964190557592309211726054489282104903832292208673286067973153805185169766341796041280314057019897294843515686019802208315205686241207492901489037226810991498529220850009412504184194083319841338639570213750060113871565518501094220456449856482596055478947730827391591270292066096661876478502470562066348132983494348312913494378262910746918684373315160588689809153499504934074040551279550917689703680753220042965040914906968190933537216651931078970943851453636749167404686241383833154794969426998193180866501517714223878427562103217054834885749313361002105737652542565905553625828592824811071642819658058622717147308662037655194051496581745436808813940221003931164186182230024689135242370148045401525272278901861235810846264162818144958580208849045713500198333177558838432308784981531081500448549057690808440878426841614206288206995300421916282233716942677511377419332311254498846790186884556737967989674595107201546169379536862838621537970791017146401476393440397564385297218284184426571091413100729051772972244989879543613252255321775881572011953225409404059970021719714119788891060467431655922149464156354427262831354297194163260138570186097747698330873859509654001791580711402252330744917321284459767434233667948243214523225413629499985266854040642627848643975396083512289843433986129813204821881457487228981630850175531687380003717934298893367211609086797629333685176005990831818189631026713015659903425094353809830061533537345959970062904013886179262176801394570538998676546579966356959866112019667609487802783822114841733236708781338651505238921075357528204837744652152266542812057266868410532111881051825520756981953192941783898031874802379109083221084084293789848753162988752152005159906272041537972130377696555347530499506973731008087604464801852166175843960321562298734810732936771069188279290975321961934595967007227630005401549025569345355781048525911738904996528086840372826696134976899541783115749577564497495296722904300960412444390305108765189232058317031947545540463295263489358936219776369797641425555657891970890196280955209105319459984012594673279967610039419200334608301965267923329596334682070539013467383883227945259557916321630654922563843870378328396078031595534853849559794674624081028401189545678712449483953047503079866115473451881582439560510253167245827603482909916971146887850000502204610107000552279978738958243316690775518660063168362622888572548549454851062248793363284079734996432953172090321464231852481020043992407574144144714456224932240712533768876115592021262427488080583832308346872238749919009914185609784903400793353430099100209414382601037402546504722322397430868479260872242808667666034954853617099277795568009830207199109540084806514862918437865989519124372964739135104233336303949991344984275585975400765688616438137965804451704021085819234704923122415682910348449184219742471120731025192862781432887569930420504122690691640800239526649885457413839358058716887449762176462814766832649424586563171658741181035210831258761192749718130094896197206475590458303109493444908744330433228286706889957415474566799017733406762852929770676774223960616470016184188893610629719042311747228799607789595397248817149631522381252465875651193214588634188398483040656336474118030309106907825954510871147492891322889893297128166592938934807655055638642243560471545417141497388709179076911334199549327746835125361046924810068322448311017830373372117199389521209429974817716182927904726433661525335605533441349590405980783277048539217619360328838593137381403639640586870206380251297474792526849711219511909281272805932059546399093516161477541779335638091870748580433335248820828915892058782492521125010904711989446982484891099970984516376787923774924940530560258606959594539260448002080963120052561855497679190275641035659332816447845800775987456365814052271079683561794568622750868138930144048187749609163195817437397220427632945176504064373948731394662155501649225090131744915126462142215199807262797814539592030163308401817995097122778247858676192476524041583021562579163435360268460180702353687977391660779466747261443128515761251015991207112888974721790698255579015932989619610331512850605280897947858655186814137655289998633137573480016843031541449561220313909581448926412126025147107071852731648878527447743577391177548336393669707793542480062960406637810210019948885010942412483622602073253038580584522553038652990012383124905265034495592814879763913895548261027351507485396637789133807578932691545921323243995846834503295282208892369242414476519000355001705399896387917200155148059269208939355921403264101073868851719243407605711094208406170283318889455334439002506019764298881691856758819300330398884572153784080354610439377758822401987561894408634274072612901172927236722419080202690764849969256143034276352201973140434441396412221470250153648043684691192012081143899992280493150316568778695402896009446104610218513760367638469285643162691919822441427994655256564589606612480897903722951646260736361562707844628480966266899087929862418727309589646616426264507572476264037075993864480950410706508220613288976970304087509184059282514903926130596747476547797552937681965076308350170763459880714288674747039261590221215268335370389951061627004223254033367863314185337792913587110347858078539504746776869716070484893300292629291888641989504573672730703748166282835630054500089467168622012700447674240541331952771003007637694328833511574318360067505861239694028670933753790763780379079547518056739370312413212274632211338896339337884714594726544543484346810075161147450730331467619812184668109274650084553108686540867670265424102767711959298866233429683083500436057956049397465708986209642977890211659859479277675196669020254725785439120640578525377085652220287823113203209005131273057054257400364685401047949864811537726259418681815765246342660998784940215656767345235618657877060684496312681304361376984886711582437418495066693486914836843262255388873895265049349913260388564339503963656970908546445405224120319870035235199276344201050747099956938941468892758403526004946040163813259566035251245986511859896537134886823408718237220809816657065770339025657239115576470988381587447305707198129682070427128259799232309128217730419924703576927991620297224063030045287642110171358886601745667356881933841514785091905384988716748127246798847920684910989205508272940919212630515892242334385033098704879725403449258336101500936388516616127460152146952289533394848394788911438969723486388493510100108159557212025851115963598391962793507372126922422476954709182447356813023014886509573749299447677267156065423865824448989391737940807910613327376748377579911865577495953670467954907990009425927553025250008727265857206382445141673198579114886525239088536629510915566940631408411908099585819453274607891173125733607485266419206592629000490071289205354818684107078811077984493509724334430246402807609938296889174538870377257011547296589204155659853529710547533948036129988173419646487954159268753701692783649112649363807254650768763954297942141135200613787032787016084175379124787460288198792578140499721973294974216580959656726324410715685043066317322302609544461990662616242960644835992064063749451771157004438100428411904234957642303464679075037001690244920015901885673541573551928904153239157910757116683050204261123437137995193483271123720050843129136772390472260704091931469958349047720139961877922650808619631175424134477930628908794683493891657471461693306610900826118181740616610984678079501232114623098205672805715883390390158504023429984130229246240919388081031711845717797479019964505241119958527713594553915991844242087835421822640653348974319088995564684271776022922815912045041397538372559245951046254784019376282787750426539443531044315532389307988501766893522455666432244887675734710619142518408055895707106546653452037110820100355889341323861988765772827342302599583344703202677334667056186883365732905559110756831098015966128826765134723109619306792951843255593776488239935738458284834816039671460322552122269127123435319023262704421251617738223963075642271763418950384751543454743522170549564423322617954689202754934696265509502417864313762884168790682777914635243992297635717202381985570700422759877369259127246623237961088481198518614791129938384519410042522335900051570909047665722787137254786257238138929140110869528330960735969333518747771775933296657790735951844828141166851340120079482134779871844420515290545694068952897865477197975909071085844824255243401791472590555969603564376830884152150485182972850434679981764827679590288214957429521598108463308219243010156335454191293099119393876425719506442316133035237932173957253884499486558308715206750410083950445013630207607248948431874803050448966995560769040992875548962040613358321115428843829025009721184037308221174713776587591865293980359998220343095859307832549584635543494714930424915577121937055824403273833890355104406333996598708256769309316345379196323486201863965255576223094621716230091139473017365029462359287891247631700828180609180352832412073736744546102693219734692821089572124108952437953063374957114224883261833110332942256362744349442369230928488225460218672016916530870816580679290991359434498347786161286253835250567660732684632826772696496169953947778093213239473588256427855733572435184769503998417008798472912820055882133220991422886845237935468996583725111351263913022098082931747117395189158769009618611208827880801299207995677630776850644645873442421867401329259334118128606836709488718111463929108805064689139788781710227419608782093387637662749823921279867069438052885737854749707038109603749952631535824704322962263547576832976029727749786350241840796048789878146690991648503962186640435560533065868921282564220877081266511918735229019462909272990474164079060311538542175601612016475580348521538421251320180190306389576071085418103030009794678489789217213689050194666706261462099198381951617372687678913601260279302150173490556005291018949029485991148893170994472174756291133667634739385103565638421426009272652329813503159028158508637158545474547208568170907851257384522718555392788141655098617029077121828662464176721459640350050735840797056183316127117217665971231790470379014549262616983188039018678697797051426115347517292938953947390530276953144001405994936515421674345975981703856223037986609357097210791268931438013236443447554533471876723821682703699449523202795693008099348584603140393795925184056731248474685592107952373839276753941952336217591963371420338925191438009615173491331534858935720708286065305799759286568946227904611504283360360179102812921266146909803425100499467876378817733138701227306096259773922812085905108936101583336306221632803313826069150079328555190741966793578953500635380041148577481178054027984537704875184717075416917157791356778714622487595942152238422707479636503333370660784949119417689476535966883897685793221960906494180773154522486205735834572174960100870288752666945429094565534123867679828166200021035080247828900361070904818568905738186937777796845203430262614773192722230633942021827951881795329257375460404534423166865837871652781972107185885193147808113646555038153263329953196760950156174239142437480569566314090146459571112362925533069284277021370300856066144748061374700972490950632057798767934662195422733978354364894940030085064846348493706647751017228140535900340263122506830473973628278838946088267599221569266276656669842310105759336289854387342845164139740973590943801265750356918818218933383627615704348296042956558086960070734529632676412388996887282317706249577641516487097349521375463645364979769118717583987947851862298582365244665966210029882300220533986868613584062171306390919278990550983537114459053410163225706735477796793384339294284658915090963243034384423780069525299820586499046638915616669629603923828035264836683475531603101282327206763685842923631062905903423218121933373362983583117929679586783553378017409853291456238318691470211019332021124808346950407805672962063075701799592990292113635502940264624469466952491818809371855205136100301012486635291383319896201401522293642876709823752286148550981295526545835254348498979522267139814406653037764708344047380113878935861163269187864467276155743861651564036103292102529585698822657770171203678502151046122328510044529095520704222296400918782819906845362959726542887575026048375806292944445450753369955275730558365277935148304471211792645569026529498943562303645532872695016423051407704263670337408147487250644824768326459381599130535117874856466146004464182072837094854872861454350485972862322334573205049877004814823016032236294693544671737911420724273275862113858260524527527559299346615117930737641383844078003635824562613062765321627964968141580505576852683353990597521136353521208953900348957802075916017341191128661117145870980009998238729540430712964443870110776073575706766452013995357864121884299148675667579604803314615545206405752802231670921280430915286264811214843240483470834994160324288503289160921078927638296496150657891001643088345888628315917032262764458884150856062943421040196235426337181187822163092259942207973887043208878205486778383571367331471888329654873477591495817471389238533288635763039249597778275399817300722502599848179620168470502997953300608466886293530169992346268142297018508469476500669748871871479019244787999826932687882405319815491844862989015199454558109826291553992156863604698873914496953749188553352439886595843037669858014302012447830527901445803419680131785447334341468945035429494599448766239565960723516289499679517774490921388685392923600820778028146448766756153741698865171877366649973650367089506183820737423921915563362993917680673208566085586384083431524574169943428859104076103898426284802930821122024460717476935008203709020673033121060989510056611718735013923169005871143099341877626915500845090509365096217964508083445221466352274928157509374374947620561665734510501448833574862983321824753137392098952718605415964793599375402117053677564684867697877731106306890782167417006307920525066245580918942954510440854186729274500920016687081658932736009709241618212876002950561250768728892360070567269831255086027845136043650314085392798578703499358486014018224447509029429096208851121077443490867339258117803404791557450752055816171875843146837918159247412207253981605370750510885436630262572707557583738669817094658647289863961077246349570336031347419396600432051525719553201549663331167292303367494990740199928759266972621391470912358660663810777974242757965856179200731991846972556389265903235815042281882791743566244008266797668924934185410458806535066112687697413469886038297627037877976884862784154316148296527238555960115458395468112972850407496805683946767676133135867351105353175480643728548449321668216444216011906995129553734485247463711343746329778669210765619117534658528947657225953426832552167769985065799373851174764661090860608778102016346211576573877313087067863519568890296894430787901384599898151732087826342166804622546526870103013486249195506744386474174772736135974630501116147541488228300495294478465955316532069587062900210807940679774184462294936340058053834095739449428555749886725816941326884805652069080858083501170970983773754059200541956256743291312246168259151510029863399806058987638783538387850117716123462297226680527702985058124401850528975518301184036290964287632669671816347484763425958775537156932575063856230828053024402370297743816745693985962872638799557966034977676120447236239805001368381665940549771111678051940752476713550812284626561562314099441279183123802291910097420152452169810920612389275458766650442357084115105376070306002087996861196597729675390424108604727322829158971301224274386018667686045633952825413288474833547811911237151874826996145562114033477628526533638450824776528778055218876041484081070982871795151098040927582998452224025360774649122875789598417644588300007352177119868014307673952004400441132903042647759664225986367460920751315204590981290354864457615236976616827961205966208814712136605400267770832937694468112162442851334812172539806735323540145302870131330981457900895570477202934616225659671672930582614938373959798021469991834256371110229457566299770808639526942097432269155592019505311434579686074838562870319895358868473701250466015230081471800865332534583858795646138373450984028049273378393589178983262330013235323257604254842091478935012613250778250693114191435512422677048295180363773116484749085313882077039900620493012117510718685565805016811516026726210984766742615314602788248243839533352336952098735242878196583358338251531144401569820340118768707124070920250203698925433662727308032244432892138492223358650752330916220524968800892188746135173502468135976525659840099726231407979404411407891380694115102229384622470824453963013658225206635812280124018067418340778074292981236905631945700239973740020863425146909339181863662355533008693029767442812868714366478532595357367811604739947415694078568989030188119330756359241565797250668796548601465020950469483533957953325103123361643939994687500316514306076087464126576360311769372197163679845835962597521145814514400370510043872276600433215866588148993081677629342525216626480822602899639795031182106723813342581945263622110596862479237790408677859014103970538149492079210353630708602681334671693327485388438996141007490239643498671825751835006948836769526945281415480984881199136571324891724407482990760862646160468031360926116615133336533832158989196812591261899567993262634676046608075912917578024092673816171334552736705451362641677046782710452252244558754255555105501026744492913996071351162886620961888377784842645615766811926531446848135612447847626304046405416110925715660762291908422422501410129256258735240226188233235714688412507237130802941849033604036280485950092375224791536452757279810499594379612202394319550297638147195426931724932738973374928723417667993433785789930701090809297368009977360389857536940184588926472418854879341275128769766710711466905785667586355232618583758240082410018395858432786778178565307857038164450259519596117063922040887321440232713516847234148372637037877627776110551872391960714510106169597588107417465114292642555880443290374597520217044233384676291580990727017331188986673976632352499680235688570809110025938934097714288987465809188649033781422339876098984272358524712202274802969699864167011758129460387480979465798291463421265805522660902560532853215315678349979776889602944116995734312509558443238121164078467985933346350248180204264538410933993513709617924841161004356359263624580672459950131945254350567747558392551942220992016769440345852722316502410513866104302071755681774065138121740302431293930812079068538037999172468295308473265144820854081292964239621648780956237207510265777850413188306928257059117491023128380076541956596591044453511824830435284038977502291500988075378918495247687356646439293615550971664404193199437976309656856818739958322642776317508062160258323178635263485689880962613565819588217773437110840556844484873270829666260339498945961342756510851554318573592988116399934545052562234713432001936401177001174595664851873479091040726397976212688691890619245624026740508841612534974201950840344110379265851666859838659390886502744505770936574280224465001280437609052377196922525793933077059330263471855551092584612776358560186811058701727675791949971825713638654504314438982744867439873463668373813771922998192579370467860366025053176636575025769572081672519348675343890411040535689067450474906117543147042114515642109973575182197521988192231891289020208811982743006365643505495718506910010303149792889412432473420760339085186006915298819750311547596322298700074792269186179153186844348634637037490972196440680106342778850258158220739968840542790669972990530110515451702603183108503342464107469488067368845123150138910382488601506455221300125828606376222511776760088480093148799162519773511095711210752376621837537311537841060328416176486240559046655990676755063753816705348569107531277085947284712479095156979031093786447135516501039646859680672195712718973209929154592090885821617611745349685959011785077085737475503130739067229917701685374503434351769291466191442058741654716714720361689113841905212297511790224082376714662129572367415596657404525662290300313124060392337262245073792529440321712917934011119057647610857668684472112959866122695458248609501848435776676217933247204699345239282128690332846560710789286509224803985360042320822878674875796508737712400046696314058818506874841276407881885048243827822027629655760591580478973273733622567413078075677327481708619671647140771776280123238598478428569920577519180564873610871087429860032755806953612920239828707945941704623653058162871844040374331318158323166792800035570838199233409897483831683778989360505168062122359794528476618907467014124524832073596065948451384087441559398636703315388857846470825537869320565745657020072386422709525260101603666916281853916144398404067733149661781658291355092374894405982207135859301203562619170569443237578872680656507970814733886492255725791000761905974698600397626397777081425001628832777439646794845938008699682207615341435729316709668097314354772516652205374480125822379951123159513867953467462842742788324764653436696196920041604695769908447084083631186610301482366882326770105621902668719238202196479167852732151296060065761780251341886463799944310059130496672403878206888168722546110654172815341091622070433450758019286831094232932949705640407891894872702607424444113996716942638895467192178865371727353743295045767995917839642501927595268311918262964070181882773433529097852692444908360736502741326615128140526273800573367039745582431510703777885180709169046249342476923679455946059479912623960410747228598534694794199081957191432482211289327051849021960945666580162620597128813426799834535931425980354592884282726051462606620977449319704669891749777666671483683748220457364875823276593424735199608996379504719985753864754879610300703000054111347817837333480520523566819260946834038639444865433689739799026285123638492657657170156440128750611372727631385182980214672994409454181100587958486305772047381024217887583848751946321212891503624508986438016254994260396194764135725784138340366411945736869155172400488110367330806417183324843652138602149510914369230447608583930988421654065227901738280304477003636881293981491780172068643910682046348316791482906266454296892807747710806714203924561672438611896576091396847591592226665953395091879316994103391101109371714641852732756942728732653796058641295027814978741958179388505221962765509234855716362465183450274152640384369425606721070705444675028232436025987225803991398317512721524105712689172036135486691072357136741541071526319140281355716386949201140515979799679630218084651904957973081559775520677711603027148290484508375368547103090608553853687912240377499338108184311082286956587513523829730483482705901585766896051473618814244065288688760816410941394950520791428533381061367781676564680553411785264588784562934749591508613720933111738015762641566950927123830341198308470408726260747250072522009115016518253745946132548671220246399813095596939222870140702564931839580106972816019078341052048034186881019577064026963187063215249862389251441692458164512499985799604648986327345231537608469963840453152106018820607660896528815749766585700932806944438588129790104680827706948897371523628073757518934196990117023777835987285778435426353273665053151162707368249466994284394198713607829958359120799941570224292738740461630932367317377545022972698903900699986438952809498474652298749707797001230074660745269671766666242714831177117511250659596981151157912402838810974817814094721592096338156906012930297732782426891348934796758490475184435052717079565906737251355318611328032118024402484922292424966638691472722036061584489329895301690775115886177523074741611723427717792926772356789293740190392340620382267132734853061686739489538628473998795643195829251837322295206240459044778363760239663334956016210473222198903741746761367360155333703917727459694615350125116381991381374034999306436921031297303649650256545608126500594413452295466527380196858785627875054713579936358318525816236221822726163633082712818335554165880701436847577362561179085624166569658974488842513736701488762257395463703537707435880496530524891132982384113286767048564023417243395358531975495151112039527863066112984156345765153774969292980060756841889917453353588430382767765077892371271772658971956647370043728643869353578519638967732639178042930113129305132315760741129108543026389929993140188226273671720217176970620975234048471778888034745096326110439280532457620240006044323941890653911668884838256547892135677990737016197213322608016525321703520998874388525522002359931727132969082573051648483298073254007259420154262012676756241760388147954291277590544659893275742601053452981328706404660423678250026597233076599555199200224759649660081584443646714873459710079491265602238893746612785486643883114377954157002596218565714943093933269944126702647506241729705233910657789095863054636478292494805183255589308591535805701270657485761895424183545345861411668709618145556475984521659607352475396886631808267647710670420800342766545488137339967706741086838669162680977673717708001377545820716687725529294533546605551430628728231191706751183484099757589307404655896665130979662553532891433571541307654679544563003035223475282494925474880886930205006215300363785591906426131589463461226348812897261072405941937386993100194003239103943369557238866913588887724111174838840015650400096854756957126026850579771808254966318926493372382603240610952474198573826846974052378699772611539715188173146130855770803555422746325607832113394896008399044063596710183226000067371055038472643154201386948205328108552022301368509754656634460575552445130136561470332607559786933789582058234251798015144866685108781488522519160746859920898035637862027222011567546206957915943666930856649327211393398890533949244570913649339446050116617940742376269130198425467958682048026321333879036363580973867748411414600856518676633502639100823408357417367689819573969723005528834189999265804088902240657609585425364642611634387388818646434899540779981265244606640787660503134564699734303018428294594790843774148910928164540109803860099935872410667359804744709307966607604554604190392968184632127819217728688718052266042122279315617824953771730129557612102074458329111246239406872939456246263380739763054928286784142829571277816019979882959219421286502346404807884127249714285290155046894988536601416837887954823873133302191769780685455081800728562607389015514438278537842752958173050327727428097764708882759033759563681325907444461695165581870630427852323118741305435041387866767623723920166686305538526059222303835787313656272543529302363053336628188816741229423970852507579178655319263561027578810783236682461062115118816237483070562405235272899233589630392103835114116758723962091719753482635348811305685611756680344397675640396130712955410680637224399814366206529596547468619250788830820963192767179170252241666183518075883519311012562968880264152157087285634885106812410919876763904821780432710547364346983139433177167767252549547121326208648922992266519073368900414834231353984114111543215284144960247294099796592602528508413461406960377416749091416113868723268635851835533898935210749581992210139964904630589740262488185030458365816682278998044166746553042557445461494416736100846228598043744217294956152353544842662623334465730793150610689320009804994499156336654630761198725255255743742511758175893408252224738057575741417872734486454437992119225898640688603608022271606606300744957155177480459094624096192438305538279788068785278016260829233520237739016523628945217913822933745816600074007757325356235341840562776687547209466294141495942395723690759351191027027562200676849209617423246919053179794854235403190845668118738725823534403201559610886239757216362136522774576988352451422484433642456122646427045037499291116193734744010566956490764738702132123000417845483991169285059484700696481553933318456573992051620680432396915399479583254571927442700295686198123913791896465494510033605116993868458931882124837389877322925331602900287966831208795451030484549154203580085089731814992969248514946779899297092528030871049180236805908030069136833758500382293977557033055273241746509288550688639269372503474584089724433544009569905853384792404112723575986169154604594451532417843604537612078697137775832039387535418656390308548992799816617227043076354382284389242578792668194213199549445273918381552235769690904866531600173625705738837792586590426288367054118860555829295669628087330753784796438574596126584933301657943659590629496471095063301199421831947415857559677619596403119385863347221725725029583056871529618703826401856581758249709289929219409173503913107261884439662139981725335724520259939021932805041213589286869323057811852225144758722963677737817478974538544906356001756734622010644792539474732057157244717798951609097223750611256729632872722623219423021194398038427847951661118750212862743866291383384408095396493823406982166160045797410146815937682700871653157257427301397883805076986107476799194383618380475326670947138431684076901296841708860395279422378262315988402734436377624583293484758995097384581777103938215026664757223428033900919384968709489884994135081922627109733769617419081108912319439851190814506001814705520990308161526668224786218618882465478709991777329848656112299498144941976879697220481980031478988977849404329907616906562059556381193976242101872132822775444802682776258742751493545750122601847834452833871551424372073720044087245352391434472951227625458229813783467919239134172670266109571206648420475965808371498777697776922930433816246934471683578306151601349010049411553528797770312159719972173206715387968510510725488960801048348608129749316185141691692686449054447617506944075378451481787476022772665256494863154534605578657157807307133775598426037605642148021693986147142190982671766857549999849201409721049785123392393406905669031584293356902826287733108509167006102754275958047387586890489423515605670181794503929242283066758298685910946020521719285834786632623586653157931110779955199754789253235560879736395404784332122839326358026643137560372294765486408850692286730597137553714977500045529861962884222668160903976666400488970479274633331297030004274072128514977090894808015295049674502148036989912124234945160534112810401709731856308944229189864664780646139924890830954136899482966880502733934607293231373923822118720914312781402042679656117408614266631431226049555777204942977769422091205883981187188852336950536464098568340958125996000196084382519354721357782247088965667422378056870539148965054871285901075197626977880227135086080249224141884569140576446737877616539613102188667216956054983763776225877498198231246283694988800217800904551420242175623276383945185676111213155061056707925968827118128061008896395991701940153543134112351416804455505748325888758140588168854354851570086484478090680816909138765059173172966339153040397162631862959010920324174834278236433498655586256601639005661320840204434948201626632107658476524116280361477688414593734088267379505585022644358545762781808220886256053712689974016257989803843643395742432608003244587615123220699673428700687712282111501622858536554431136255724406224928475368417133325080365708570830989330286100926991161796121232392580561687712845242184129849500508421915128918015130473855863197743890503429875398468189170457630466660121747070876547120194733126635627527731582296208430952716586744826052647385625208810304749451677284282350868313061870762638124322890638212006147203986930114564948607019514084545385982596962584404642398124620402513771455444432924967399753631242663993224169770974976517046371817081455527748855273789614265150850995212574408828630271324333392458461530791030963160805799949604265054024826030540510778530806109986696226509363170896671519108472753663765826196146661080901251551634098632085635901395369210417891700446649251311275848611074484063082092502373079585776439780039381682912495248881238888922106646787209441268893033101210307492689525828215773051231974844289272526709073169909071726483774445294543997749577171107419842221667052802986326781975202029250721301774657940020872223820309995554362642305219049073388883633180246718754768564102331775589212799318021680042200944166294968345005161980707036599992545271169855534461475665997560513013918344899841430715806452850899719410390721052803186238915019089503493831414201552650196057027159092398252904253000129851363867834782765709518597896123676866164769920940162427495798377955788964362204068478340403339456528414728283531488965390209731807489648860751349621226887975807017330195843563100455580891793237933247880455875925579217284176316036932639471211492524826780967931240907334389700174033008728204859867588149692551597719640658349761223726501301542952179741756108682333049021537961579885405154270260543181408974578109577839517635602386975918389641308648002880592797939197500654660783942669286710821147957201434612674727631085562445487819779533095058433757353043757819512317761461836778232077491821120814566978004642262531257981726429848653820817356618712466681474072598199341006508823209727617767408223577008736514320287502760818291577798572976095966572928202261581058516189060069274159342713698857153327919161805005270524916333310856459328858279866125781882604179928193420911581054422560405993041129371111612197618024248661418373331821754597723851492462479879647656785571881794224526567627068417424788860233927313536479731503854970783083443707699027429236681006883131845800663252441028903221458356578646641926814091664701243521707563923696544318656051316718742779492153375549817151931395097996309920795897765829401155946382935542272146088748029294119065640049638008912406277153685845921068386584654373426898005080495923807353167796069452470263655165378664743084393324715218333896538697107819224525619562428330204178998336099187465597552022051790551812852255046796065792404519304404488088325416134830041175485854238846061380858968444547814763637400375331783844804995873510952491978008383229047724071109640067545837287024773394681147945356992280905579411929806166681428693377781384747311034658841174449737798066908287277487746486256724465267428637784833470054926740069513037660141854053723859839888821293959254779858059446509114923690220762249019000381390728494406986272996367357453201741601502432677785396381661020458447893896812068708895665580488090008143234892986686126232983577720967293544744168005880871112070089982310027057944221277577114823741244938831600273354723979207351380446896375213285979204172756996698950398622221968980971069620857175777602177696014948641470560711771432411103116665129362405908440203491244502657679307994632618081500447634020172020737696075283997297248957743325452149137338533245342427650962240817444116739952646382786970332505977153756702698811790113659090304068106769800253072679142437124598919271595995258619914237506561127544372423322526190623797836210111308257931148766125372881991933774771198842844171708911826500756342658734162829910576511489643415182255073480187860876898529124363262895342461509216493152491586740833128101054155371260270779963891937454165898299766333038121270208029761198734891872795360034614255111282909879705083716398884640319541590122273349073661600838587325670542705679436509322977729429235433707911115112490109772629943165560999975960347894850772833804762020643591405172807233769121492565817921288683658765419866309018873175647957274354971725300645176983850172123609453125491369958943123983834892127171674055213331827543967478072655168952793261928766211838006842309037322964393132749159587073562090686295329922987015052176367749534774482345537000579025660127406158561266032231702738006248639289052057890949794662485094567817146093106956549318448955530024614726264234243694315764005588247804055368218646323754985206916341066132522223758779677861755815016043522309783219472172304166493363702477205994110518771838598991606017101190604918640590027112301223715992202784741595624996606844180952140869992682351569866147237338914805807413894583545285045507417686440174019824185171039704600279452185741922114264707413083289956734392999713368618266036581417690720214362166181210421189411893807313786816819180375489155375858333411861829663737229850967039219410087326912835558157026465960910548166627487559003083396924275313466637184737861245456349850151181159542909410091900549425724295670430023773538797405258029909965369102298650461685066565855145522924345385072063581683439059746074217181000614690322004348423054947090022524993132245285153324910145207142846052233027379532797397636466567484712011007506897842801854852949059272441732901926702050999261545001740853378218530749658573031512991976597078126775686840028937624393711059663273277893977882803166004341817336966107778435221876683874317980066701239207390334397933443973871504295082027196149565444738081567049935985016943172907978568078464406780970624064948289748763607879968569156866149366430596664208095435418636962264471123400706855411303227795019695604536191203491550368459895147240579751134797061846225988837257958306902286262953470438139962290540386305180604546112657925760412881275798119891373532683142034194593612432376135531532308174698964549987363391194563497037397940418059813928601519435593363410161433604955626231629291933684124820701390006885645532545855575548076963107948560682739795413328011326381141899030768434299991885093541864690372534544455530067917228749214696484650906291906180737378849561808524541478317956367705329361604828678848280508857008859633338974594964789888227215729962147902085597074853886550542764757550283628801620321476067671736022442863993941614733054205640738812928874777208587233866583125359953285384437922836781868523737759299628476409658888796169252757698951491899546254839566769287644741834824194569568288290047310695070271776310943661310434073139670436900921908741890650069229591798983976805369467540893023128011815554537924837229459028916645777735253498524616583561022242992781355205915794147996714619294712964366978117202552841780515577050616375943261857139650247449043967972012459873646759215959146734623248093285996487881877530793566020141887060914034743068668525013065693527589300948217774843789045141894216305331781247845723109285485945393111944468786321174311751253160683819952169808280905037860430161091365202592993947846878068154650053055767308456412488980787340578098628609047646932600582926748712764755036394803521619572894993763704022171259262910755755450374289807224721921099945683408925595033918106266883933355988132139972722760276414166399993451708644821470169580989825851154282171276781374513172001113392036267555187698067010278180139985870989741700125241330401327459167936490419276396270062857546082868411176405021770107717391847124299094556655918763619945966995090492419352958961450363858507998774397547636811893794666890062417753269152958751456201391873820659862779336546262640726386712152913844208234355559034723037789423759699194236134252145116039434134430448922816482211306187806297871944790030915500842398834626609495767834496448970191749234502150538466107058338951546430080354075189682420296650719501095952323865361894254940373328279057933632938062797098556513508013479014639627780728243230056826949190239809430508658638359744987545270655552374293198550547862707505810653510210486834322572739742215085384234388618956357579932224913977907854737398295239054219479717994437258042216220976895030626160173909145471020890793054923109838723158804844690216479060884757737687885219201070978477209853435082667633738812629592258114329860786805486151550071866312986679187160202161423334157742292996986305570690775570765266394434472294331298435060933664911866728103638191091464644452597305651822690308405518076986260827689206930416796466379403219604726306478188430788262295244489338179754410083672047116569488322194263731334747501568035337834434054305461047644548482441690855698326763717424519977991842284029877179761562089459443102559283777143579485784218649503394367063902846533602943283982294405302692151690965234345180214740749167241163513747812400602184889197467752495832776195852126501646345614728137822298505344422284313811314817932365594351312702973551961632865572542730504972029805709003913515533990179810584850857033729419588660999050261042057351296828261200906141624547659976149205283816961007409221180084996900929461063392439072932599568396299946412846713604040669511592184122728223925835507209695894496576236117453785942630096684937183016171985024049629733533055704556269603848347404615744466773628590148159756939020984036436135843913236185613433043895175793064554529882815035205936268504917870747889185069942924484978594163549852297507781995940527166804751935028691928653968899257378941861834665685925593599132356688612007709698560104354181002098864898588696594813908987896731542713147570728796569187018918403928631524259463878360237514700781227708992668881579397513529321096921158423783782482327506573084543757762669821403173141011840030016664979559235432472631333481791620085771220206727718561952080770233831755795830057790496413322309572910721732206190793348134998061709511669909265052278527671257886323635327730077654967091819577205014097143850521288755818552009707608382745709692334976368011630235804599834074575914885878078937312025234014728035698932374696904315183254771892035034785072571121376081641329504005225540219153656997880654350584861647839379701857527615915937902142183928154584686726282857037076979520161511813353147055116613405713084395043893132562273485982080899992250149014909345936501261540165759913030818165165539809465423690242637264111917483094221021748488674179890556454709204541669407313793223152184707642564226649920782734007807799808997328241319865025464521206274979455735577343855776714627744802749999686018465700392042619899983135737877024947180240151426054463982585891385348318486043831884278146933496857250089520928720072627025448340920884505659142692379037701901755782962888941587498196209141748863520282647888375865608520013837494535658569158981134030938654113217948391355662872180947347595959053567557100374204366134391379376176591626969704977472895678758241016248440666626787714946131544740387701097294526611697622277582569914693578582005773331343081962192186966837277428838747939061684466385560274687061263383627861443181093821992956966795929345284483508184720822640756446300426374701638355549966288475392328038191701252175899459920091680280192345363249017383976956793099173613309596539491486320241608275082431675723237864422869748852004080329669369272088230638881515324350507686667225426617123176715616536931681629820183487409489512564177214143134588170729185225762345432858035979013719804526089516957417518816670856278885168312988797087413078579029877541291917488834333687299669113975100564456279292987160315095693035259953749039031075873804546654460636125011697070172316616461145590714647694150171821920285893041203325469724741625664867434064287586561701880919153296959962877056975109605443709702250287452746161741873207040922503557434475246952073770737043229309350939929983269479888825400110516784681516691686116107153605371743752821727518524530904606114838018945142864784223849567844664074833291518193347578521637790707383117811593394703988633297816480927021720401141866759488821691849149151158433507066026949072881790023918501179103697307310933961211292134319997973029963460117074950277893374631455821826764969153276951162974147642050525177445392899755864795868105278544938912933963771617929849217428454055098484267438847006893086287622264622769489627752170897945543487064954012127206580870126463721558801142823505098360426168366706288755895797435173667250824303906467296494822528169441091240079229980402561830962453770024856308339092743690121134727138434215146477493143980145477219999740444957247806645796895121650473635582923040229810187818523322856114038877718890792575030398815664168092457696679473179137991625525108436214067614520950443301760258600216666730266350021515131473337282311099281639129160910217120951247527216281730363004465957598825089058223811104828976666067290262165523510304241406243390509578199746251114636696106666354140634976099122767164331864199932063390355845762413103949192867312616953375605918802627014048279094434287280059818254562381072071315034527852341353801470462287579966842814885770143603370686811453464995864074346811734405832189757795996525795024121616688757580793246607666033967883752316201829487231947232355668004493871822616488255456303616852614248870726549974204417426903545093029251527933012482632942272635254268673126122289806897432341023248878718187000331503701875997657884739509064190601934698011656062922041242716023207736890429658051818426357186468905557554489712651190543166966881105135085139953908955554594582789660174435088107686371885273519434249787881853343002192987881813464558677420017682850098606218719578702066668838491956719629822704071778788103933680290920106041266454982890620962926733764248848789735051263369320162824105617901936088197528099608203586776609192035258731045307385968153813201249075696789071283773956667429058545175465892659742181608509373266968985654008522164510691509865360246880376049172912152807747921836774686039188002801889822117485861911877490018371754801040928438493937478746289926916596795862746193992789334381295745430793737437022074702037292830709414431403663910771206990807529088707562020609607353826229425761192455108019839265974926127274591036882072177110862203605739463210987832969798064376455266913336432828757827442480864658483044522032192989786819165170101971614392686942918897249446235637448111935145658296366580940957511736426899866356841245154582579155820068642323661200709578801497651942139763655717155448890933495791070312924130150351741445896769759182047905467173216677368225338688131685358420996762194114649381263211742805958457909069498002989746254950459571829395796955834476940532930515627286716198692456315247796456676146830940794693779691021995724619659998837594005424221822126364572151109457641834927739047322877149860575696154130320231035731957259407934616846502369930669451963175472726917591459850894240198916144123563536058960414796544294522922546912136206648223443955483179373275528627010524967885540129260858856867773932863727204486855998354190163720594670848508004661886021819095090500718396385408479181416775713344694738161591195276286295292118213848850929379878019215676293079636427821252919667561760718921516691217387400575555336306533639095480107133777598452580344190302577088034826100898258774485891410295801966927810240270694080030476673006201376680914371284656593314793919328214943789098625306485252514026866366990087149472254202127076440804568608786679726316590508055922043614152790165780807670930710268730519188780528076200197853120744247820832472334847710588348517101526375337980835301915473991320001777702925704235738426199474812644034230241307422728201517449499275518956262506528440316148733384993645572886864795143352445990117761307995521080900413353712167209845668716895187491605900096455913262426256345782826224278507016339909161844721970700249303755339889906899586287506761396870149209422985754994947964106770386982891764037301472232154436185754903522546473534138564001580223194084648398063168150586911828598099205839007728755657431249184322519320867827886924399874682353197522871982529371220866760102862133101872702315374359757948200929441570375748432620258621550370916692341144648754888067477502024143572826230027825352732791917600846053544898972166606385281307494817346321883922669666726843550854098428140991873834234556024394848322384986042022651826116933072712289735821182061798879343759149871595355871622267616359291688095923258228849378585031663721858146304307481331787157287387541434311355763769630778479077316201076048365409654536707531541899578307650305224414710768700957677969515254687623459358074800572371828715204372978692219130962539832747188292587290433217307018101525397955677588755797300316777367316882075727512317971401388564189363604932297426848061803991654722336907351888363984867393487950475292904119214501513434707696947026405745442963121317894806963529131906810433789672140534396843507627200381757454113142720009868646457410564147087098635861090180474351147999590052555242201718895950229761513596336301146150759835660683574834383468841711442174354335801053388675864122601762801321241686647004117932670256216174361310045272923494409198438069909637078013017809378874452490939823709647164519099931180082816342440172328053953448999299206393070563293308308959249567639648321320499163945581602838958163722390164239877539147059545883147747955531406871736538398746082775410778116800929313894994149905845267887889636389543008682275831753948205891743793911716573230012454952426465352599432112250102129135351147780468351828429658911084197706356109364989327352307846183662203697899650296602819986420943325746797507905898512415185060208614350396114807863924745658130152040034438734394392290000474276523317898984745973734021437064354612905738939605626650240909182922397345211237764859635172932952941305420266413777445904334770697118856325894997890024876250556793874383543039772756932614672945555326963930666164292630336798142370249209179586022459090335458491719282557005941085808139580113234029479768234973068973756646496440219690215307541607431095761438547672224107174978685387604999504135542151246223776652017621367668139524543632089059463405305392883489031495563084057948820928619243552354682833574537596377663136036861064853015283933668708654402578288401319277850531919481237701405076283285648594291921057658530515375016670726536701997514356535957451121885173192312177017694326658605474487529385330002546604704024827584233340493379107233588822944164048689286640971631818160442388654918187708350844139128112149355739150321285596649532372519531582091953294533692293090269804085335030486286663472590087018832033810283582796723911575194920408273322265847978750247658400229963123771444980144577204486179874186489915464205140311371242974283300325751074421404275000873903260928238680012241302423316688851717824500322407055012337563718836642435813536788943360305631955535686542303580991679281786201911138285307288153672085417876544309548645150499515864865934155268072414531449851046809637598939833639983616968831811115303751938569530865060602311049550633380213283105087691474519877522864670498703923668648625330403208220113391672051804890129827266783589375702094829366505362884256351908428775378024368311589127966783068180740514606396572166976290750835251160154317431948859474879674545815413900401130345521407131665753359336655880321885862700432725145404245769388636076251975687302137992908263528600149667204668598164155148553837685897198663369075345259962714487051370039457392429850825507491625697049708506791734248226671897239722302797753338485298323019852710747960809911887908906419170242334759081439525592402562142868781364087359870787758401363247667822883050035048200603787412315614816055471625457417793994852363247523475407265297194357473073254068600910035090535303961568220107798497038885105079756000004046106329877581573834630289005811487000868289291149783836666132915465074420547604635950672027081400537695910725469300842433953407303299945275441794733732222384313630099022125574009299096750281075597966809391321900098234710079676754249987322973947979237366911417547810218428996783624323802142219667677543140713582344196935948625395984793484888488652275410735833915849647688766579946693951388750922861175709522805794860799490809732474078050512057393101248261747417147272428254397042737429308401931130799389120445549491437860374768832116233873272775598483352599566197543784905287710927446276772437827454376136805174297589834483196725864759699856823523384353860340240404956123066113523643961030305896162456023653627850065301464260431864524823646191541930973144408132803930716050277348094733869540491896905902354825732223573260219674386211370423207094073137310595290760752023347463202852544974673575211453933793056640688057261676931551228566907132239007763776622013868805909298589286360684716011107382607632296479986768026558026543465045536817262731391767376399105205576281490298040342377940671062421796373046341158114842785693078897111791854462539923374462999531207541613578758240148200601791380842320330935689094076794441167136653047020184916149462343500867236929898688543484967783101924499905830981813797105556888563214335666927238010539397813817218927538540075843063674954938049590852011657018542955025148540314150058540415151442072215557726068158825581208126279444661939785671129798122058537601950006785231882536818176778993319664108249514709257693461825862300210541757798108028807372896723902397474641106211738675434999513720832250705524356801340516893671577771067667968646530952174620024262083107243664234336597588939523474381650279949138052858678357416380396072396056386245394431382863225472449895497716859467439289135883445565178279005766528474355365446987928752060873788646795112464211394197427231931779717665220702631968426874985584536921664258209493455940602253089950565988328429175602816160478315500098783114754187086064410716027739484128523113481078607238898852315391739229932306122194667356816419539523658605093940089825885530347281802673610187801905856760761828829520347728992809937615814396303811219365940049653283293283009694655940034119489290346697577050112483625794823906883318052513960588282592954279116066211768819491210716011799956779283055367325406283842947487353440611009266692328591193217977409204968243127484031922888892349994861467353818007846942170645878708385150721295398544312127449328954023673718992011219730587707868954367649369107466342835344607529624552824558118752638163028764675317331254167627062216815064750653459433571536447505694675101895978533441297096017584427073377428866095618928070821412489854580805613546311223189113161364380953481974070556671729034408422100530954557355113879074400376095828116692092317293943701775648036858329269127622449718838810465907314733344976764354108107796571893286003560329093708816166299318022227949121521332604952294808947479534587524172863424878595123182873616324017242179197063131676397196970107419807910616990144327611024620471318732988433496258796094020920223631724303075379955809414119887215339428867495718273263879179191597901446822427127330651875113093516741219470910487850699828283632142848038401926354598546467778814497368642471233000586575602822514218131940729683871676799575575715586171489355609139065063573835227299977873211825829650214961769173452085993309096343300053237100026880738712012686304993039395776041574945851648484292399484426256314350107467321804895899290552542278565112623867830839190340103663250030810873041974029872261298043740226486926003745930470075665123317460527073250014684767593559539959854606576232881035827555890358566031206240057664140911442312555191650801706479954224653409299381534644868449439697472728989089505586757576854440991471575096830318391519576615726243029096498836752207421396906241728392815284924968632169577758691747872941538853755565516078551664384796211393020313505860456161813005449568734047536713911022206950803234562365533970285943513547538266248808024592624512638165607175586831603103168170498958544235002390875974223734926311102666410169247367034842662560575686680503689800073276185117883620996758806672304489463674519075634011565306891423402186062473456822680255537946034594562141786132881328652454052759757598037618068348831944841770467790073972191898030048456386687212759012909026140001433761010870152449676246058633238589452626905594959447076344451429605568012230762876193137214781250965468624667416315435380907627815637061253949829812523605788902492753351765027233883366044946166826962554191471102249607092766321860083228833120296906574657856700522236960633247446702909968047999778905347347168367130942948172937608341269885440484958045062020480791766759062100905351954606692979118410003230436995292169087961247990549666534059969841222989762364814502514646349607935717043782893033038724236958380330696587209912673480348180591564281455296802221744402777821829820658827756850068916598725063395939930242428649980191128729221667191645135682057352324908571795996467560965221171157472619382528412011701277044516047823483670414920319067543627866835198092258026400585723195926269964443598575725071046064856633689545111463918155677143409548808796925491503354766044604773347104272089588140429842567367154363163659247548297198393983547833390220956149753663452053765995223676903948904295219091372529794686206498469733133654669072389205351688091722365847962789105701240468030880346417983960356657147311928544802030846546029613144781750319923612865802102214772467818738668568070892001320701616674181420286468341167052999713136553910093197725571251464112433427788985183170938120952163613558365835248851382709869376743280147641157539997661430436547568693855887403160880142294848605585067014322484396824441186777006979936586491318809039123587611584846971711995194524651854282157274357265543717442669218009235964697947963794142934194198828512882334947329648786555900239154092454324543391658182620272911947005247947070717252980530849487531812670885985324869033862235805602423084515405118966028092352637433005730301478603092847439392624407903980123582474162321013150510656370960391832355075903508997317523183705975890017128318988923708011259799113964675227273747490877159560487398563852157365232592938386934360077402508262390225895128802178302423934331026096429299196432769808690464199485145464180063202299408582851674553490893217272952079443298188224094435471664140672161401630165475693176163753321448067833885691172311909067190784672769951012901736051498588039205487835671216179676231738427815187868139478921891117287036489457918466810007482145285567786072858509719083580850211963891924757506857467377195986433325707702588505562983862216419986899490774729094331449418481641400044161946989413962254932712573205040026862589780686197829279023936546322315025898161831448247864033978982108732929089334338414651878810698662143651531366521301484158473479500803542728259148848397096343248760320825662296952926593573331603994201208211101565130118011478902680266322806131499537179795911660618461839381542821970428418167255174008076641297614838633260315114453259259733188186015926724363831066227725407777501954726331153836763006955845847834127594772276257261488040850618035154346407589995852460308500560081158488332739221669957669864371072131063884603611148978279031000003794823651659631706126513175447409332742350043016139500743687352626361677302142475681735977809570541583505799308296581973338845332069394816849878563595747394554820995301538780822019107915591852807505751251974714250673663851526084067787419394730703161903427943628658825788879425231223994977535794030026508590545664133326233120127213509744555916863333921751275041995828595464818041630668421637506186324936455645593361801305530076954636435234380772501110889587312000944996158960561153275056662409205475659594782353253757722553638755212341861381160366999985430091073923132884046299142906996894891117354121270758076946663438669294802550934423184119797200990683142989691000841989332463728702121088288901840775480305185041077858565804715434081544109455267955728647909384434748461408936004918888663784594853365064625692954818804436063488661669278013864114308293443372524693616597826499077010718470165695157134886853239949725774375773913998949223374666901800560619600281538463994320850010763866119490185756161937887246086905970111096025776422941635396125177735525266004639843543650094972693641367940725207143525962146119744712169049087683176537928089454451173600601515307300501919537963964293966484782877193230576626812795986861547614393726618144346714304861453989927178311877520391537469499102367446054918897968589800465981356280830946753582632329343707883405451366842906756556893743659063165440738798105061227373606217485756500228862456423324522017739838908908030064855563075193488772469213876883434298635544597502953364657611715215378837894093528686281878032886435794412859136605280217662590506697912495497394167297726714739438940338801932869715903358788144210945624706397999033340654112443251950698475945342664942431871718460448419854500474489115958730405692711425077223210339696146713758079396106488123205365021542112107048805406813993421577595205367956396747624295884296086424303865534752565026609296490317258458206980130092969641907910899315171176132629656293149264883360874485432113437374189508178667377281800353647774994085452059470912544759002532437596333229192212922977378482837228074397094232557555316913345840067129473198995909243004557352490647532945178549903453470951468988109231022620922421668588913887445242552171092429627330445024299536255138815040064128261647529539060557085173075466358542913591956863810849090926149518409774705249566015553471060144934967306911192930808121792497869060117296472701295453342359957711554960171783586690538725010584628885895741574283937256856176954031092901864150657445146878254139445737129996804255339742393070370200018506352415388026196357876526237087280338830624521436439504657973623104667459528543702190258018869078961178135357772662402091770286472141404464294728861559187022281967502921018993477996574542644836924263664340818535049983657512891242304857775564429841042886830793995657561710660261081201418215377721303743725164443875191432773564028457544373608611777729732305713782950283346073039122027968018311396375898317427585863330948942481876573566380502943621761374457941288672144587821113661564695183920563724593737273768828260571643992869833462932177172033351018320125695137726088526487398537710955671932670698675580563148874684932477535955095298253369558007189252944177615927305523758355354029021674407068685236951315120381978124250716111119962996101329316768185477988428735532940963523094306821301408812308286675263652222154484018984748032323500783532404013487605130744733571489521364450061644198171441003411957562472029018974606508387543193639576583499843853703588016923201658971360846404627342254993289566196936404004539393865113819205385313191444336300717313169608312867280151500533245661621245522109494030530800073856769246524555285859295872355258003834094948906460637472328345995487801758339146141733230096505457596049019762584412854508467042796332152117441073759233111167711415955320333183583797589990183777071163336178072586093609139481519600025416798442865435125523622356871137353238682641432213923898234626282062415404334303663656166942111018157883639369481700721145413098922855510209191212243915972673154633869866365638131427834749172049886868176968642701400634781302016693424387655016554168911673540763053079977381650957028536298432362521229314918017602387145776432467933669651494275221014353405214056841184258248541249309758893539819675515652379917162784483483242587901055243745505179502968271975327148162063078871530326727312871429391403128132225298115072096473533191001847827596514500408757601931555492908728005316747272461869978065541006747497775970806086754039930587389567513592109987273740907405515275743201036984395925586664396127421596724981823391627935585848298590706274531051911292271914810650615743471121183038802105489399984825379510492649667517128814050779824363659260155254681994788769454684494445653551375006543240650798271392308794400021548147908432730457215499089616648290723427059621213619242992837060198536971011461257190560574864857870220559484934130214801269878468604196278851167797637005115202627335529358986295042767364562671521672518281503796717134737291104664099659244659874833166525925284847703538834113515661507969933745944043867327169660781634173098110827591832817762153880221374305961259417599124066775500599290757042231995558972199529586454290459058887834713125838908488813338295340924187326647594941790230804310923543522529912511618406670522270507509408009820518703394360168413370221558252014259759417175368840706885085523882903600889941921367695053846014857957849194412953454241651869892424042223332684353138345561916028777218230482603483887176596850814663861841078200234902922506568755014045158118220127093193099127165403313573005168521068999866514549339089903567052437612158461891286604467811821413474476045050866143175627045173514957329831116338650014661215350868519402921898475756048182159988968184567085735068948283604811929827267803034527195961720858968877329482428032569850178494182501550463258150111090010630712631791592510946739526311115647211554792527669676228311484804184939319855577645149160086966868181349491512659698731342611885557318485877461401545465461688152077846682445405358185766678332225022801657442862838588844160119376864425154047284091392338208443012268197027106642347477378903678872180311864611307336927294531686587188011163392403625409921151315342820836556412032242327796702048889435488596306767049149089985651988463768970962042354880624563470270609612310600521873450158413370149660178101884340618700771052683982374364453568989937793601778955105593421428531471053704430351383546541237810837007408797667079731565635692618239059151750276215290292194505581423886132729582268560274927444165986021571330367962703840822936893276025466024369805947356582626091683157814162231213514136271590554227800784181600221300053330325122947471892734516861451837314424695064568379758872088534071164155764781982778329035132280468614283342087812885921563784774003025862557527700267276722414504682086072569467579838294055214041008289048532689345086756668130180016283725297044130846698206305031904149107194086497738465032907150617870973890345344743540542489876640362776459183059011474977127468223230095849125116517951972792121370745534595698935148997721874092443965880373427511108255257429386196058738215020849882277561515534346117237682084638126212056207402457804971637422612331004601177354714840478193729585664430578542747513058623852543984724500169477882168419831500651753454387108452348483073458738991294270555467491509375693279463633657367901126441694239060173050337405899723436751417663089540257220239306083985200581540947319577320157769586803145183821753422897781581188015512563182624388631302026199145530912643516888813557547618721807583425821459164486014775200879578509865810559517152913044036200240932578041598215375491791964740664215697815609665577801480506124489203293335419512151174273293077281165416701099246780955070558883735109573410797408756321736063580456552012699888270343272629846597322247233092657490919204916029059568917737096531551478988059302613996634210912655979772347055683258729824175378855647559538306331664260623481596346173054558306376268447944236509901019465604131940707050485229054414655013607711644652767512034474005207027617980982205482698803796048849016582068361338383169052426968094253697009854731884958715609861094049917472394884295313872083838798764437592172920211270787949375023635631207775314010347595861626520429056581188161766988985089309660117607543963957651315132987908541671553197016700492769358874885882968702150502310279618234099366110991133056924092328103696837399570274399202490019880647741779198192961688083138530710377430195600225332615906934021732326418970401421541427830364819174711915634354331530826898948752692563332839258886842024383496289987239761082473248327620944783485820463453302992296060151234470449552621904217318138459721577985250979740091201063785428894469820730819141188489821678437480083739210221833793298862719839787676627084518242093356159414932572204610167855029469401198291164155746280675879615490193194333666912075999246685496276204461871897534550543282343701798149904466589479749634821760498309600748472862408531695478317122362698960386065782789350699855128340420233484896850999252903201538762109696781038612809333586411471941122412844675546159358688336158320648116788091476114771627419321991298905602592790612216082637133112828262000273318697751489591488191568724811486437957331905089175800184366748775977792791830752309459953998961484685238543129056310292403384056176146600434768487198836191659828335250165147608024931247249321051493562363178730899261940006203339383821963314263740964021406241564389526518084974837961961266949987702211434217744121276762899992385942197425782817060563296668175098282420792573184133130807390901010810190373424870035262856658525873339820357396505181571673717762243639139764682208236268141192432325143218017426592143444892273751817481587113048055907183401357302279820672730874290147641274337998784694378800156121696100311733809715935183667556562340731544387540402012143086894342408299157273070715079100853867733586224305853599567640206315070915294907131225483625539783033173882880754171805934418593644856420624384807487093538938023232487681475136958295735503815570259454211203613267971339564479229979049077810361892990108502665773507041384447955066560449134619207193288511134996628407912312740733452123917851504455989674600695899366182661637836195803852538347443471524299839431187719736585130090935533728115414915000285439850140516654491611641068444583107463856602211230078668788057182160398251496752648769185253181435582599212058412567587051804169673541725926229111237806850971093133141463333609152520892012896817026372230616039906238235936500787191573915084799587371711014265886845141340869522786535041789739818487619031347803616926840504390536292846940607445848026754819538475345171149328343539974387288698235220950461269026715173022067794451730334894887174181018583558342565652964885042620164852920038383582967889287004772562039127554095076271737708476017562694005520114483973355605912307768399887103429399029622086807132798568509294315852476299320674096066737180158568514338232028158428877661116085000400592126355923393295036460154951762444904049769580682093919377250925237509103282337096390511388316433124754753443101465209142628457786893382307842760043470736073320333580576708019315017500871538027927384099887080772545085857898779300422970794955727347043448698010704507311043261980988002489831815694789884001887236093453110421099167147890672061286857784696351620540377561497682683905799953274643222550263109890532277856071934136064306421187733770607213114517384735789909965017228929452841718145464124947962829233090296647868698978923873888146394166506583509242190533977181415414503078073816421853121391930474910603793792736637603549940520079687619782856466039118934028972071922515188298875070286232137451986236266709210600530953477009216595823187233505872501939711682540407972696826608088994818801693143285359391316395246527280050121364879808060909614723347598144001099644734768783205967654991349618770624560236689919163185560304957733262629869194257153969973670494533250915095240866051636084084008122094730850099558390170999946800548559323994956042675281567387084629397986476682374256976245502839655993419520836570528084776776459063482094296586080002108714152707600946896756138671110673900853090897716966764221400434190571986433713718480349207517397705022355014441333119769988017326718242838583050800972258484265400120721171500642683203010086366537349116425395266353855459518967639732791400960291103813078956823013834769041061063155489786276097637000171916480065369989995574462984159332097343746039191496387885706990710212563159442324700819685048482759637800554919204864605216818527682198841131087897713513582960207006427402250425182533990890244055078577732537751608086157555650060428153063048991327909913977962902818202485728414056281581526397596252170719133246982211034192681089996689266108872955395472934897793004122855001789028652177856585937126373629402156442578131600348854014217244637659883727185538233958505502934171061494788075740685142727260376095842145201649031300311738382743154596200233599871324100566275366090010108254060387670200332935720922591201693008452633071883727855232547338415108745901130735795305327455735554349754633168732826463308287427895930715914749441428742789432259116355344500395346228595784506983438137199941815163186959344353622313273182545287520813942426560379536407890583394162896795866325874367618903791028345960342913349329654302264912713482052390429593778371935887108394106422929645221631959246120909101084132706031597501620166132168508796728749875998539402749826690442515504567220562715217651040586963445175352747689956417334253274983368515101589258059352752823848972843063699797703197008916383105589114738735594540475579203236282475602027020538653578757125963344065230524528612855624257592987112661827039509517817200338809958054307652993181450315013493385404680926126328405353756357094976347962776035708283116003580097373710575402673086306306467511721866829694571635521058993131270164239898391943168117337164120530133345913878404010636497083205243877496369240669593215350688575266469325510096991564515023627712145269146339661008697041398490873051636619113736656300564512288112419766987096160089576614697473276098900315944249454027910577784780450972494552716660232679011326583820763803627191129851143669172578837086717367420212105292916291886138013659763242574053042862836859206978182896398461990135892979293917341230812727413666320826520197589193180905477601885810148916209893595899829997773810112348643047237380932868675436380244255391419385168521780394904123435381644016224983704644410696080424082617735360369942130019854293974236615005276886348854582721191466391576506650500839442449182120219956567488322279094470617968413455532276814946046101355805909902539006058849038049899456394046524227148668336316454996803482011290993067418926126993370116185318385330203258204952823236079759288447242814791528746366342999264360694954650858524541209387530525693495510400219885373303922153968500912458966491807109650353743611010173582455259012875323057916700384016469798686621168225229812594883221152263762964701870193482605362229582908400022004272214912279132109980110970232455302708394812769955788173842026132274651333083720903772566283129310296254928906100895135030563574617751268935132409381777953563443646192284171899629825403394855222706768853656454557169513475493626202272741311454020119476570033683983082995128614291782178509712133322885351310223871155015107912311079102547708283688511638153386669550046178618936698982772153799848786586556975528860601443337663818920657517808354588159579235047474959945914129483055360581347505597340923641626021868768011448981306089693207225821423503736112100117780916629373318807130045594671188427936118718934195799024025320287343028978046988443798552638630756033382736337164168147267277199820240637825460797827201168016728936171221564426740468267984152177301908563502462106612815870330376731988318050752623828875080242304162665582603813697354014119153254826950961854833293287682725118350013334949042549326938029454400065346328598314960134230566446515632942406486517181655244285858045865967078739781215613283790659204546546390154682653970992796420320538181292350329827118350219842454658609083922346324798148831261487756728268086679837995138641638714008437503859931281651471778864656846372262323892035879310768678761111927414020460995780550255349981481081826300795695255403578544112223035964078380263188421399783400392069663343883646883919021082794720040748636428645297473518169474036185746215647590919872167963452639694564578671697770682378491310110681245866226186384554593406694675198606315992663727369962644864010169041674757382447547279169619321637584724332099195864905437893225081141264347725858487228071986775068781915225958171451588291409469362724285256914057433303213842926354861869950764619010715777567725282327951067902777561280791683735538247062090741942385908525909654656775715444542071946675897416620783540368912052061296396801198001209594183796786741402033753673889919680307217281058182712071251599165020126822947848852000763046406517880486153292651354582690390170959179354921887083245864043241128465061137027341683173514798944225652175045928403180937045774195220009654624120101900843653924796221679189893020421655474413263382510967014231445140296946194796967768445639834593052230849198924241785194310027901418456445181231922993882959100457659012437792324828448997665836745817097041127695510742364141209875283847902501817610741358867506743311222359553968392836033553554631123605050825775540382806349512057749682497252379198974632005842197957110261171599651362571654349837722089793542437442605348643507622514729378396366604273474369654709845779201212266704256847908792909387432379360082570506368063021311328070263675493284792011785444966718974762897783378197659704861290537419088592024214269846795291500994576155315425739477476555460773072543848776497498448511217567203311855552189920381402246768828055492060727951073253305823427802745463799184932604805255041342759834187742838065203504813746797295059683180495964348157285030632298290686756476163654026120467299778449929153348576326680424372170388351780440879634639515816063632362865966708306107125292374316723653016461320440336755613502084336452871038302925534199722312950620178463091148419975429466474353247222940671418059605711671563424428161002164385866748693070175534690954391411378326505174063028266730915930540555382032212981860946742865299494960635692132386123050551406536716604576083897270359975577942410731437415077554823059875894467742749909005699351840861015028262907076780870320909107187039486954487614837027081285631902005555325252580113267683200554123895219135936931323014968790967324919478416109936316079628851172325504937068974711860343927113596526313092618926311611230959200199621022658317027512569932636393019421205743529833608190800599027685386256069952251120555618470489960462244940729386822740395835204964754916197295195733989901427156971430431230485294312004934277984721856729984791442091533080640393109199946515403746583850632237255611433667745370325077014810780387968179487955719045980437594923644798135523511615364382020065513850187866482068929367187183776887131059684936235042268350269939158359989739374693850363270361775580026105525415701597867012129230110249455822852221084662787965419738889416098809239823390361112721294846373239703674924676884376776349423248280419293728983732724893016726181928680005665546628482474461568203722665368905860625396536901760191048788127390426158220257349478359562441984337531548827306438965168536119477173525745933131398783317437481240116266014846014250423638309853966910561102674500406201788767371212996468578530738719090921006342389240527618253340981990847381573851300755109136112263356901463997022553498570824437015759883783543096914388039767443551627621824383488843498335440621093013238747809718480434525409910961264084803823044189057995863927279576500619543275685339559239561339756031731214369954236465523118542141322407699406049351269186608328459545224656499958267743958305627317477298461611945267327074354440975981169734970726327972916932049546301968082277664898640510242916958278718464294232623556122124100306665486905560551654466743447496301656419597049432494375515685973249379063211380276792634526744724160107694008966902063462649752550825111828145190193628056459099566539866631202138083623974506265796866968046987177981952103563853775795692960758541651118531175060754119343154990563985160257003333874565458614546624707518683200477188169683955205130206944312067770784214288654346786099531494271496658292919071367867302449410953019718066349726543680641451897321979220859654244174469164172319311045699504063858607698724336768256241363912201199291967205287490940100993526135751914558842854145805705105651737924584767331465437784080385746973087291914141422457839027263671283719825823843396595828549800128732057377563017547666732614336980779253167502215814074384790310251669868434699478529450631403607989547566842880422565062460000129995343491622400176709668612968499114910271084041086776828966097919456172276701617196782134316829607532786497071278166625464686209099561894293621253862416430850890382179285937887069091845269111009463492396095656673016100131292444401478420920635397216873344799699802825127829350837845947374187277358005195399305182337728602777026350501956936200504409537786259028320451415796112277828895144703662819101692505675621361755825618497964557000405174248264972766908471089057445846633690525725812228490436896177848010521218649285615388395885068047790825672556713726965453476840494084679201085310086088344574360913401718730539236364466713344057027736827538428372046431051828242178645336092115969775704695552371770178391571486020116475727474896433329797249937155435811437646751802028044528968873620380344834205036428468071719416078065115035887833088999028122950785688597712220624245834251212851921279744823212639514888178741909596995081281266880002175981050232473285754468682660952201663552250429548876334103002610424394551719955768230114758569693557625312197113961413481827088638391787204442612508999409535402149812451904663298893233262446389763846615242675313963447170734495739112413529102211420596953972627000238954441863162062337107007976315444459076049147966472862943197883665240462979789452823843005836913502129387489682263436777163375645981026834552035809251047650079008173436479180101507115656103126300001567789886069229451752552789023986330139990818137219465706063798452149810670232820654145671192351600476959089848111250900043808675758895275348850456713236277169873594133107894061673350829243377725380485724275884102282158377847322215555315521698285269719974401086316080978043861447625263869381907538046438973816278992798633334799084733049371637682382167932266069353992910853250789574463610665683537621202804383088367017721003645627506998719914235803654321596782041037568424981199226954433570346277230102734144424687141209627258910763122103422988244647229464740296128007984377287577834775205065392805143555698937335258614317351022473453794283688947484457299204288553655407772012962370670884914793734523820043621930475794462852426554764073448555938302376612580497060446617023043513957498408677940766769702144304906030164515188461450701199082667882021175860695833166703953591891951279185721518613816205840071303395166261068742169390504961614358138971192432773381474443514332193672167585977381465257000820524413167479460264640135317952523031298428682797866057568169179319095526543200113314656845465229323489859173463696965142449236782897767146994892311754473996634226613276627817004807021146199427610783294012001154022451958010294618683397100288415892107564059311807836683900072801066882201245515591915481352949156219980233948978572412426361124308506684212066736816157032823875828457982301904802675617337378195008660841940089556429400424254361675523742645587004157376016460905982167125349663680948699789252987654981588570737864505163362574353779062200556384343669756531736708464135342555955626699529301960170537628725010695086667650111570883372022623038099548719558147507900199364202325795868233683624070520102311401108401380574189039743918944579847905011485866278406100610757059237642054833640247543297851795113212955302774594332200514396420024801657499774703164095591045648970813275205952460733424362277530457938313435441520924895490203169940687447511401756751364990373609481820298471391193059734427151384936811673866748439261167498082900150609780494325813385390116435218210949742227088565880428899347364644334658883385145516500636842033967201742445554599571282286887602703282743310377621610155899227903241442674490185280711783716668667595515941993019942337478641288244996146775663945746993187454596092368628263354720462074321306161322870351305808755081308065053314512674043860856700089566736745536398620548357786438899181795092048040586510258269937655151412650742797638139099364037508444248550433308691767178969312093659934580231189979863658844151588626811372252000904763366423505058160752295396656131439414506185382872007511067511519160554685296667840741084304161290484457656205876158156307809952873577115462267893958459239364325239274623477246829174307997522474393273071222743390632505334463465169352122009518273368452113429490294888585201803325761445034082329483428416333312773153688929466382078389537146921706104331455459074600582450361193186785724400737264532777603446096963953043908356608577954225777435191037410388237103885327093941780512281080768830113763830587576055903249199928269458930348877924341837278605879520179602567129711724747904140949116000897362928034569417384955282833403935772752098510211389134403763838112897999133311413846540160566119802971386532596821293635795096662279400610288056701019061377112100493925320257928956487826093291737368930196336698641080282903988893776340792108065517679764247229487948416868027978118469263314271810462840373479293774655538529746223087847984846759811376261214829050769984994286013671173616202415724508197365725439618100157792235627319511044942423916674439286522039242922493482824880232758431444740600630561636626812504491212501672773628969133783559373557170483089579630701348668025720364925134112011074137573586168049290554910124138860013903621012930508789503193901337887486431649231335449807436196979258814806244306536418613497559615065402170908437242258093615118249186038901799168090150004127197513091766955619552640008110204541496362932806988431472293320813733420056538273584361636527679980908500950678171810944568854175165559146059596563118597075533483426520581488484139853943884039438836219507008897882617190028027051582322360578253746697407109261761176952689638820947132629758402191041824608066497276402577723053172951540019665186020382728213188525686284135849754712110047760901397497828278871314913812817103890505248019925661217065251545862206211186156348700242369096526542954080321035151140286882086619740175886998078004425078890306813119332863234866516879554199482979530789058275869741314824474103945908959373690064970558548123997717499148509036383867916023962428712763855389323290322774674681541586089993942265221901638017439180611702814658565980661414570886083333739962209240118444259694449420339358468290064659133970346184491374705999921346282007861236038310340309527950341509407207964573365584849625981806636466405375000808950519440906198148013808698118053401842456484904909970066671947382013912263618578909874391580396482210575246660702508467158795828771316533988542240316030778013722535820417163183745421602032189393775597826281748972370501932431367581175880889390524111061051979827155603113801644305197551808396026164183394436857811259001563241784494212456587133578058795663217321447190135182602114308019336730694065108213443769991946016228362351206685188591113895883835151253045716767165595568733056119191243839978447405988984132699236660879222068220068687625543451659892622560923313120426056672845185348348751424720323090466999679452081442509523503089354778627037975941336142165543445240250323174065117507218729664056706049588826865943837223443852508265948268414406367421648866678616707723510870009227071635220074269709895679666417971976404300026178683995849391555988895590934784600796453526370332797221081991378665876630252191368676387167509129452952846435511440727527982451673255246214901154251274528609857959008229055448228841482308221079942994405233193556274486307335546777270924014387071061058429463393155952116984832801189534799783123458309702826415303936680890931950965328430198562490536296542113413067478994287452754166408589126041948036285072126246962601904263254705004386757273147248392830380844229405741848503617958933005658644436061155665129700299066618642010417965670504978598096892183908343595573575633625388442977095419007509533473688858582927180455095483967612886510550333411094933499288084427701172608699057046304033650605612724843246436092432718236935815969544268923078632963347283598890416846837708814063363822836352597406700395575480172750582426593798459261555419516571703825301900486934458146610825231279394249827365460823990071141746496107789662625586731401672087974090759128155351673198949179771332939435883675822210920193242573769993596011050071262907091653810783908298811976364234608571822971990121512999199888532542527639976100109739307181248186577107541042952481409462056976914235747959099213604983792568919882931026733193294899008335261231360754393237202111227160715191294769099241757121125274575473805403384628540898007407118344616996830669520563461787699827627871407592274036929261460754168675111782532014829778160979407091901527900101419766917235158498528131795268219129622832301603274502654664522439440019967521506382259380682122211712961732514121806173857567090746884874057961785841690357817490581592147817907241066136276166279125068531987255172307322699342428978318624395968911913871557180258982029446067239466727715002049631053632312438853947618439146086320671026642054579847407688419062955173848242334326740777779882254682837757041935646862829178389067197759532307089358660735417031095337490182956493237159661478580221145166773415247830403318566900203704196284035027422391240948349497072960522165665043220528005072414763577130368841654198163398439015026967612299469154639686117789566472454532469403024848645792858706621655958551484699354445294700662304776990962301552151065413570939637478744516895174955646768061317937390164802478500101131778770728962452537968548716116271271804466250127205046266595960752984607965643050940457761833357154414618086590043071980768434789465910911593078056131306073508821027530953316643708075413466391970268714752154328279903492013124167065373750106002513034658456549963717560983542417449424392576505703550096673484574979579205814748967417887714794294878724882642442713117939229151183249208653696242585009763845264698871762614948444496645821220317113194720889296868261949636565351663286511856997934686698606613072186553087951749550986270480712725735439118467844247214923313399204457247958572708178589655599013034848575816291482613175990862505350721467406616278610230910689174988673744584674416643412836591593889169525131716574149112110967254403001256161746991248789204855570972182652220297822989349562361925906620255987374193061916449440680952135780009844905922503471867374912820414901873119849440521740955096701224180532757044325101273290296684620392124305443619032067743223249331230963289307560224022832653442275900210494916284823929249151616859558993181248092615563621105921288621237405056907453139650939096641479088086723926504531320839146013420384428208125621910596671315165991547266619218181642848950233732278939591168091854185511675625569023978965357067164085083281117691386889574325286483106301575652316100931243100940732851628054437584609100241080514155363326675196257125390970079008712971318619698571652047123009628961771845630769108145009652773634079819072252127623511712022258383185484561549541184375173830349321012323345690375832246210420025605213838551076509672298413046933329036554076226438549712409193133064504458340468037949791961111677740504255329167574527538428402554684848092969477409457687981777337910497159741339170009395030659537150020021949952078133162127786611624656812645027680626477602951804806584741073416758551177206535356070988271589269945560461834484382733287922791959803628174275052247847244766853018624273646033735228079976488966630453618229795101467023532737561511798319802364716224703566443245154950664615588442082841543365582374552107931478814069427548881068498224751619019969984932190858769396149564589507600824072327848395978307281409086010488789552667437125334079783146524995651475139263502245846658745460815455437143164269837146163087854861233518706637330078331753366250557921402679288038492798639439285727682399597054003259015538029807936956754476193912371403722662762233348169990214509500589736260583033181495729847017086712334855334103246249401368013955395795310165997198461962759720447401522055499672583599041636759791325485692222460903649662760592506970356498854633992443174382744662547648288730448887368885680846692469692583636848223289479479115116780936463893408226169840839826127026058768196218262090719765764350507479288297815417991117200649261419233556677743790068211037009333228742883519157598373421116447225562120591299195178769048757536724459216371235746496886386551090807287225034633092485623710560105820967226918055902256224459924182908848360039051189005947357096618652469153492334631650558452600165088898519715083817889183304452407360888017017029109334764210758242392819865720777918865725001459622902741072138404866979757397314116905290604302978552817138516912338288442834952158561404146524887079763178287141138262031685934606533571117924248634539000826545800443718005406370075008562056421015713992329969126323132594691974569281269803691788757947305798090160808732652642185860927488598812977373805342987329461307810292473389478234689311078372232260486222214604632695060541176504798953846245506849151447537440001901055221415097634109338476307780162092882042043746862299339583555275872849390977443470933609887638835437304415226693628988796918855324057988210633380198642449407972891179823956546077311920813793801221192161014967736021170685062990528311712530186740916293257601402832520872842913470565199275051584071794269460493810780408938622278370410337225566899670953119236476037483004764513798794177995308847594849695245846046485058926336502649409888716662293768017013278509590376922269459154454648658504759408111289185607053492947444060109044178053293906735149367833212232152943411197580073301330693521048611986457017311049996461392612811385216047546281134585772542799584803777810778129522438924945231827141746864468221048127134875063945029250251679180011507795794443679245172827982882222712225309067944415185105060529216508461178398775623439408801174776463589269333781599377777899821656016810611112259383833167306301163862047794913698680241576204038208165439363625440198158481658125242525951482197950174576744430567889838496829558592493656063464782759780944357214275917026065738113339759739454403052574394458987784950211060270686011571081164673049645431824485911557372308886311664836159280307970259199574410297748021175332058926704750689247779231596881261459557458168976684968883185991399022921473477827983472293103859530078968321567263044971259065743258986694668751649957271970497244745859012941068123585485717947937978325707501434069272062025526391116368951457077245282244201840187972939684307578819045850037743736887115672328776959953401025413828494995080763438370634620932857452149912167770694815343224997617875995717518901797806207829645005461812371357519422904571761125119564900017572310328106159391965239547104171527535256319825256479951253267861617199847499081754635799347771233169298047416035160476186143336808928962011176926977414174401533862522296206705191560348874245073036661761368574961365444041302135302019986603937997546497289180764809660287447400709591987351386409725387855247547574003921484019223259471850306910289252150001729353932456402425252215064694793588643409272144677695125237665602830088669898664669266325776265673941394644626558545352539950437446800428671211935327359021175352462564111317439187504182764996310098767524202717299930738590276305550812241006721286811001128477227444187336114727185907598641677538212736052699388614790057903792824597650165018349450564782760965031474684298646381749816391967790390234126055039335344213985460480179200979011841923817327358819007320831552573931453207750508918417472675212934999109549810540729919294895054192719336153812853461728655303986908375605561063848934663704837847552951382709085686468395690688944204052506151693025500775290513834114590556568361493062012613572420418861157737160669601418192153057592743101301401020608365655189155194660961496452427576300529110689217664381274033054245512767277909104057902707684321975402097305303279911402026668787743179204329880710821839189534243962188654112591389457148951105266845620760378895473506175271046274412131848110845571930027880031251687364905629662060379311833333377955804680161223914398474173336358406525875373542547832887919005955032522202523480137756444500991838667541445989123121502519811241516756617242682304565049819807275206067828211756232868279401796592707255833716825525614443318491874289950183408937349818335624257961476813698679117373552208897903729035620626251708504248974830656168869566320097227023956379783708430930033620640713953296843909924645427007228066121052047669360767063090872886353594132778816362611325564676584947007572859311316379074336246271732198779518236590477457922832608607808682572663595282391880456784885346450705527193600125618873879114419896921807271611159759216927197893668030871234472200870778974967472123409919732616706539607293324775752576241699708519338788641877108266586188604225182348855968501295927875999744794214568653029975972720381568956425605300740039801970520099633437054030798459968303194118240757691461947360850237159615407211601481967362471978340625488544294466697980593090431544684186053789901279290637268682461359370798321713885328979631203415152208934899328556848852430431588268746535761489385563114960094123576335159905641581056899279965914514338684988029222814276040570310993064615845121003916842289052014902004764844447366574612141831051361992944281215680600849108164178346982237636582833665962230131331028211421954703525317907734761802544132851939750638607263154823894193194125832066881893315467469073578980476650422080305514433080508663882396714816371226493364524805169773942949588959938453381603804206922835122139388389780771786252404496963696030142436835606620807976443367094899183840384504402605980772002493023760670395630788281986194088998565045865024937331374051151519564327089410674127262231931024443215904474177305365415204656054405093850597372291398059477418192808592575738292536910529539521427003594249299857540027622087269474047523465662123237731057537279753609007294795517518748126113254877451865144160496652354528765099352584099856748182639808453833616469583183976271558784505890529426107066870437178228996613019341687268612503173853475728213177013300063437970908097925444234669587886300765618226723029964633915681126838147390001568962866443534196205343230697237613307039277844865635300783310348257916054071555447252866703404703005125188059672678750659822279814269752187848808889895430661886714317173779555903033215870903668792017964624140430589426153026974574782532891119017890365411010679057945720429269457026560493451370744531500265617840531736751159660126420146180271466480003456721698585552392256669024098680780510847966654407005774058006523184319685938756776993284530100323670563614802584176713422586735250382752736891364588907770539789645206041016448695732768336598931891049386459898122986445415843054514898689687516471255246275192456353037619836872742529715705681051972674497662972629825006574443731115518554001651765307410225277833663927782081507535097676757441424874175102194509945847714462259007268122989400193684232307645357390640123520599211302354651002862506128604106296743238584638827766734949407795595494827388881617930687818333216572622569617911756738696192048975459166814909944051316782441445747608911386790302400230868851421416747841817403715705111060349604422325627022995638829012420715434763309419096888420536992350932980969500555318541473644865543502924520493837462870517623870868258612359888485732935071515165393126551803402260455935773149128878473884380535521939401435217731096612206985442263686751904255545891944668481364909190943390035742993629232838044066969983667479346366710700320218787493033884862874840021450143080969995644024455762890608571360234645447671104744985681973198445935223153157964084924364434606385765045781554698104676041095208231451401428756618481711591048772897655463788996374059307437474223076352002923706895817967261813348068043056448211161350499055019905054389930803073088076564480633406838055827658381733826728357498215634983294704099075371670845790668944568589982631172255731798995283444278779984311866498428616506619088522779696887970432506546007347327894948968874119217275792652227955960171724621313971115323090584753688992637920244927894864585565770910927995568257914349674221835361565914591326060952830665462957252442878133439719147905471249325689576094012946081243037807316899122258993386161810515115643648614106262446727616256273626664024358294570000189919156213964616074458653278918039414069053909365925975402471309046280723622263177842764219643433287655824347454587604703192484140886921023630457949939640260728628485774528481849862028317499586161691946101213237442804746080459502627683181798210678999589460774909333893719163683839933649199589163646941095079291259607084988031863139258381005723604601529549996041502687085551842669484134551654682616320522373851903921472191187376049268928399749917337098244723421798386728814196138906373710721834430544508204126289659874422909157507548553728687902681092857957030768596807173085644042257785024409701840326554018936861675852149647838641392639197793708203712752676523146498244963728671774939253163904605516159623762203861603890457067776682806497576441588331534065322833229108187369024282967252050614294464717127194917730385008211169058324387611293810481121385563234641231077694313408472454656922890355238780415775439555396634128053933931163401574101591572604577013911124687193598783728569722447540078889713879235279347823451464810929755883442862074641661152095854524652413833653235271854638926207451262370207727951112228117168039711653066679620165676866505103883528403030294267239179129202291327956325580005056192718448151533692517142682023306422795772424287783749550634011872195105835031768099192141043708804337498514310242703340686391340411454502670958880842670076342562953440286028305448063886868885525863749839033378811032238586099366214337984822237600808651371064157021161175867064744549969007314758733927803024018902159889431110909166536548642580752484656511377156061574507649786900092411483855437098616047374327730239099515047618807016635067838402835311268118494274827944901381605472810981719492303206562064958676810912710683555129914573168999985402171230355019319946329756930237817996090195428370250433802472157712995673152695430824137173145051644010424029178801748035221143395399490525466523526655503060961815243059663302159839810844288625033315886758421335186191672879653180003819287995178311742955355694408157256754104989454276427537342304524333134393538952483544053446090505318985132577716739662584043296952863691907133017528576793953235714691856025486793537569509233686675181669603435142792897639560818156648683316761001691101944306540992725272257195695010999403044248894054711092266743371027753462839439396707672551950292478153430191249576596551417215329861519411426704338679092148359073610214435674219275378448735701175648782608115300783433271350564809510008691586852399119540367296316891014155533354377137585416924903027537064543998673325697042262134236709539785009775761124905535609404950721576003028240445484272962594042313976228214116260290720109317989634520462424436274820460274391021309089285413431318485242146763698281615163579315288405330401482658688464002866500219276627989040650266970698904142282271003341066077322109816227511770357334888714289679247129834138043049513106322898273109828886327894924435395514984925075562177021489836211545284198611712239095801959478029318030411803249809801469118813450170406005761870728645420788288131356219394256527715033872488894871091943015220264172913340454603152162755330163162157658509933873728937965424143633132613884391529878906881566216555922813836802090989615334157641414089777454476541017213063666199186994719947309556477162465533722102746524734636535181141254513632929023654039259611906305658047504015230386650861015808985085682547010456825075524823972958608934082356123811649749304044165847797829491330494374055017430226671862202947349595096577916627059229660120920924072178916100630432202166878102355329897423134873958446151751295441521719137344082307084578941029778836736103233987126220763973350589895307044650250352822880667217785101294799351257321235100534324786080947809139061381159000814921246437258251710763382875918404266653294682193605611202616900211893929256032339139452756144195192726957677955116495205420315620430337002552855097122786201788528921677892967112185712141476183474789199583639438433339854672980521832322945317783966430558776311865560696195215206660888064968097066945858885961489679899341929810606260103608434253128435703480905137804976336634268611812001414799273378322868239455933651158329294308683440385036728187772484513061842044312002579985768506341631470003785878068397077533383085288205263236274579684087746766520571022733738887140803731417959594176558949765504173719104911673738722343802570946449397613645126846449406308651111334478771958755034975319971653910500671825054901855135642470511546732672938385993301560172829642301842316572197073862764377112501932419285783267651338356899965554097287148270393247119446607730917445696190816670395989515434370737765880824098860193689993269652653060784783794423455930276265850799554633583362632926055973419807861743214722725624087771221124387914855322722287325703099008238416854619043323530133991136996745865575607672160115677404334943326869900152433889483676018703204049008470690414770527864568593584630941384976967525724215374609885199936062228084638203094483140541097976042802084914602775210443264212707393413767026730134250882331784794913220784399462118924074339956073497710892948547087433301323855511101412698186134174182157405163028001647886503601134795408016678847860265070740635870329548580734632636980665730013768115418187214086341259124612752099807093799662920407376114040131357858665732809502974738983593175000246243149549486240116233985236443185680170851090377083376721888277269800759341520686130473516685093329776604713710326061691394782881138181955484704622537499730597208101764214282376209912178950364695072945607046293306917824460454168121391250893398565489887672230947923923033019080226783306067342491623972798203561668894394265778116572794870508906027167356471430838620421591346112587228902004724399182642708664099878181583152698481568280716032585691735510335180334706858128183461719523976935779368528632279631464519947052386484830240276652351550421809954624610616086511428838974337221829452806177122598113676755072936401495034644085533286173754651353826975549408933741918775685395639441338384372989069183499078107606729556331753019409350941447214392288884351696264542550627064995706634003932725280955748189258634104487135254947381549377331377131233133959851250915289994029834714893933551353029876223970072343357132871702437304385439744153454975119926408898754924101073288357114108720396729615143863512511671587706227080369028696482401541998215173460350271744484431074226528380788191343843824395949749109088322586677500580636572289277307299624211180182677930022956402795603818801456283221086177356167467792632371260076864673813622276989825595879867354466704633713189709564063808543080545194827848685494804424597976065483218878648154011779230862342006946701837530695362964098160066362637511572764064582729587960903957681143687555782171711326526657677953008531323803845427063792061017782409068187088196707822149751504472042698916682001184224239742793161753746054000251157763097342099954545066564651094000467890737416707130893912213885917184812460946920756513636759189459208776594628580689923335663129011541017630547866546638610162603565988146825773798225361848056585257027168093576349607904904438557545887708389883953343450479561224422681143976422446384767529563737443604606184012047717399481273988026754174888708627586195031381967140975299534161062493912222195921164580745057529923624672483035710048850066808015542325306021641923940069695336043431310209473127267740838521162977184135909593998940441380057999565530164785781662465394577535726730181626127655105596258101431963124285864935373626683729751229666083676119318593412791524769787596654947038569915235999543634687003156297861648669722502906377326232801616072511366135810817520808093119206613110918160166103608905164071589444518439881090600394964922120500343312466089280987133834952258831419639026578507206975736572539748865438226040832984219362068829469331707049815873841600894333413308674249875689151110478966562668291865437673422127025073354589901077873929000868066213964580055589182854973023733084449237888630066983030877871785646174633137017605266294499339466074887367284741744202625071625374748362641073514930520417670113042007402202008638805852970420970265956040923126418981488073689100181075966123385089970605322621422987316099929557682416702452288813666650156301206042282220264465096265111437126719907907614298799565180564333069963585684216697849998425833613563083121900740312486983901687240284528731900433210690530071896093465267719043701234933402400540288101933331302134815125144817965701795360843091370939717127136120569910042069061790560118198306631297161940807765401890645060694842685796226057310430240618085711633454668254412872150733877740623035397199810892961932283810269353149880561180055488522516852605393217515272272663848713376433681898241055850408721538586212249088696347647247372423688870280048570271059780302506208409658791778206364727037532631258041528190747164949715184424344609354507990387324350069406382239333600309669027449457756384530547226210781615295926025367402870080115839713608613937790981235263477657958277328053813043439358328124828484145212089965562476102069412099155577510508807879663067504395142654313328722493336118574034417335589839955047156591745870478428871742880460176480936860108053331279538514422117165350070962196152773018019227920428624458724733464076214943304391251056601056624797850390872884355687457304153576695246980004833170044349167320490758421438741108721219485633404456269083976360250297642876731263413766594000500798417765805617823759480516782616405037539392991047994764198637545675783378437612528606753159538849456644522484033376555521751570103279218157567840978813747683993520498002144920796930532799359295571931224156607993416100017153549145016368151535030894320917641508014541843371721558501392894721605779128523241048827099971350244205272178761774879134519587425914655819073087662708355370904737512982308716541634383946725865641559742457670238037236993471895004670945403321848240152290914955735077869572880458497289953238884969197623878683602209843568212044280268848294435821523972176848355943947410445760713702634028941242941955655250456579472793309794616960000403968473553386356127861320354394794150996387145828286068250544312923303793276528077793179237747037091238739600593226314714213311278355788225679748306192880950954345841346826073068792962605768095376819806387679138733195902914319365164640709723907200547782935120565463473078055823176769327658454145728863522063963475203043223513739754422088967630467242846097551308526586093026234672737437633409654262341840004904241881943236561626573306974721998374902594336073991370842884090128639645295323960436727536579806487758770985686276347320343942712025633199253163917056925066936133338360024545760638697678139620526893606205350941336628577866252936721802684550591413976434232109862792655482355976557448644465450888111760045444392831845130635068144944439907796677097419439388315376047986400265853776936106162517936108795816364921537427743703418610816869518248757957432719137646402587614423388854817520075281623764759962827174507060129849892695242899050796878428862777787145853861608461287549977048179153080675363910913595294815708006773717933741454440029956231788703235230049117817505626512879366073542458145718745479097871054959666221094570605460167597901614552934953678991140216463945072976542029658757132456481493984688471690119488765495329582087528823797933516933156718105238194544355374493122842659748044867725210726753692438638478612898026434114386828198898510592891492115773048600904291952826152737724973537202802053870779818783175217039835580241886306655367234993206951717116435549720250376715979263244347586415292046362327627850088191853844685720223841720550343371153018888576627583266612411154674157938180735772822346446104461939128587416300560241990317417863785820041533250675707034392521323186526833656374214691869363152398364020175061971341901786510357883001448083036264340314927990463404750401334876525570312711058939255002666303724288883658216690685001841485174424895768345227684421104759760488233931553248656859810454217115685846508578686174827951438313708849812833346472611355390866420378334371500664262158124576978985358725929362485582860098167061721232436572040323695047708237592195457150433173604984159159873613798584982309369065012231963392619220232022284798207341308667758730736018921108368987509069450736253457828213014415026652329767566031100878855338885836875229369383636256490490685715517922641262285566479221479466396921998364162181427392390215630152146410726639219436172755187197473530083381198427743156785276225263914350223741625974597333822981333303894717417869641489572353023703006491922937626343524304373664131128706501057909212107830764215185230965208047277265430315146853756682959897372204448613406601023092566780534061793799478033477006966751086058923407720446039285484424751717352741966787258140952672475363517065673052906202387188248679338104111539861032364340137929231523029092549249622448845360611370669302956235252167495391812651805186542274888486396923663522416786143327400492213045289649384450589199357583052725864669035002313415310350538401356329528039152670919684458502224701403694331282405477781107665445917108663066040826156849643782537686528833629640852703469074647511393735794647870918216372822267771257635852917318916419947399655697427858720278738039025305371875292273770745262990951058640037041783498208083964515426339334200655054674301588497150923295966089931442837207683757348572975785628326277979815717056553562700668704568056468327281816723314966402084898816705249945500085822414387793585402997565799901152849945740054604027526794023936390694473201013543635396702417818775689923828725926955819153277229236031680850013158800644730648068865471678750591503317890949222344465772270976050365853076768142538298092908354965406312992051824525239244693906319451647859311986417991159387266028279495719491530697505963701835707417655312192948498192001207705280834811032885453053944288955025625246230951521728368589598154672307484920157715891119221533558812339918904946540359429296821798387330471875792467154687660610847721219040558040360825347218526888770053617424987299619038126110585946483556597083372576577027687537954249513742836351808031975761825014943222023345661596570513845869852781729954378620147485070958407186928252594306309538795491935763612570779188916082017606027830207612335968172632081009244111402734314696936043422833736624870151457930153783122392674160764448157687158364658442460644255726923117321257888770243365697967906435181746375666400526443781579933021440783446217489136403645482801168706812684923169598305854408783594620259606244476513745684249718849699243002734644393791498366003048360621254440040226867376349042833499274859513517688398254138502270228479357164570680343390614628918121373621366974835824985176246231342557908581267042330556820077803239596912683025260109829417119668237442935141855038183134115702084071606598233805818166319978915038234565543005870651745542516627955618018903705199227754156283537232496501387312100737365816830738810984264588790167176185563258975137259593237748308406849002636161243476351707040630876517022268427788821352758039524136087368730293013153111976685927798438197569949605852370451466940146284136408666124924751712438332812651490250111160559825761588548430989380863542065898581162703781913368156500371188438599781266938530172281693028322736836571541211489639991329765346462385833488730518451019026172166180217396833491759315570565183271650432990942032404430075166605028490586876162551312917460074559570295353731621614851515356560417700686969067464831441979458982856661239730504698257034032878573671539570182744032583354353690647058193147356248476004829372100290813164936916887487126543589211079911896953540477237554877356320913090400345233131622624435431020193076569133164861823909140608496988846335371147492004224557714995628573149491460318371818966023814482693786777651767557285916839927227151069447865694606058287889627109247043923651134125950964930892946700229290995401488159702945143648850671050229351240143400588221421150211975099708227212243194212015733715000083392903869119736109251406195385792270199560936050202673099369792837224547368315626528970183309452022769433440722912092428965212270268357599205128669645342128579011825108930688404231936698375417843031847563249781015313552146362905754758269894460099966265236147004603798703759136420607599918172215308581902433611434742087166191950574273894506125990560883163772730799327152765213116563140286634103205406426826181259202804469772410887168010138820147253127342582108170572466153457536884049985752421140092140660394366914316380805644978432059332170821126856472118111547192276707581594586413829299715459070400118726191412959946289445633229573238494395298375038405554340857104369647802036620536822261252434282286715773175056348286714528975452762367884902214333738687677880294796757515873872031267367731436385691130692347960387458883666373376396095300684276432208784476684560201035202421841099416986461180569841544192720208974983879132686608338067603080941843538322399796395145600054372585052047117193890901073032850582115715848979390698347737397017412874043435957050468523335280907611025523739977785141445162247415656497459197285227511831866545541531792538094531248170387000511333816587898716336643318797591316067242444244182080185264364755679338753653955185235546853009516028604391078770373044251044424143444195741317740547994827131402336017314851618991605862436152449246287963748404157340843650861709064136303683970891830626896356921578484295515512340600543264559902277439619165411516936713512553892569437486682730915711768697636392082508832900896846240640357910563260650849238044868670017970858159430900253615437334158011476868897683112803134384033788707487532797647582113713796684881393021894946573151458108169214421487132998521721979055939470479933168771124242058208090388678598718793875182313267681506525504961059516268273683704514034367373136082151803258461075882475221092693376253318245886700159503098502450683003668869612932408442799068691882726389435183897083237345650770780546425509035540926971921913289085072347410639283881214749437144924892228392886993634048433283906453746583040747184055525385332809846032631305038007779716856522337129109452317549270144465427839239847202856818751681344728592950739568534673367127931627881692769208881005163258691609016968754421743621380451860227379636742283949923581084396806719056518801705840024362803236373824487336479659730916309733198048148755433006021403832674429722959953377242944784543234952331503527631173378053049010834189548079209494583142198754993586786429616595478956432227397326947572507792477541242556325921931448986572885788036423809772569971259645206773701072307247430058539513977759697861611753530639894069556187714924852453946583990714787285172402923204377911416310346479595184029562512777351766024232835786024628682715510611916708288360714564569082862998525904613211558246505335089522136464961973751498729226457437785867244233981618082702771826687868078104260630909419807619589930203894689287710340680415433019449091943942675388340913700741830876626172075896601339917551068979462197917733333473135794169085771237319797387194715096113862370849256693221172438570756986525649037713041943017837702115811919906908576707076985194184373874784208938165441147996158466968070411236185363843009669178620422818943224572436936407468640389740251979630389096123452306407569703184301472484567731651209310010690719652454761516384319772720164815431828463032982097218570781382986542498582924777383127876454374739222827741627065805395665042836728599625839405510282244064055999908363463769977312252344093523383504881480833926376679906635810353449513623706555565249295011114580045017648142569132371299157559533282955184512668648988433451308453581114720075328362879881697059026105414436713426363155192121506796429126024888807864732162461063334401503857666279543560467881124109883492661340655385535519785655721701621096799159170671042458819858769978900446176088685548861835866919485381425226521641995415466698280835052296107792841119917472031507293233415380685053737381775829147333710108731158669582959173631843053613251964155812765374788124918577949593157086900783627765736603233800466309512699225569101445679703857784371996561531568074234190045509980181116284999332343009582713615782066599451769393014512431466896464952541279411147045785425417751120202279493805237829383018038597112067018012365139374551924565781644056459363637132419203573966007700427720264176881079340104452059373711282384306692435824713903382969148160403302766994200753263421416182789601393997098332775121102842360986142485728709152768603442115156031457598105528409578953680488069486180038443153669054696047974996962948004566584804753141571914298869510832090480632618091786272927783542679087131729244917448226958795464489084667108778695153855523999192599312626210686213286722595351006681850419446676384111230413107460315609579773420043734187513274407578045600324907903542352780016398335206119307629493876170212924227243718609156734728019133486713701363677347255094060062287084687384635541431881288263763353125533157537276914756529201469822894678861148254338425356073200665319050913881295420905314645416599823475248323004338811961321539061659814180972314789003141182185362565046101455281019793678833106787641939299373894020417561590486973691618314863620292568794740610500751106373974375896133132612816845657107327178165039040831112004469261699944832599229584474820939596418069980911873319578676054344711431962191138473737320337934059172441574400559468598953297052902910574283842120496095173002855519218027512652310583188841252813721247656315791183741371204680717675136257773047397487041419818639431775300409909960973005205613540182977444332186488349988591985906144006349394884913356785270543993789350117186435110450887252683237713949725945508001643614858756994528449094361295112760650782423613988055871003302412706969097077526123101004247972775181777688671406787946621797246004001491934100397794602926005271348314766365316468263566774739237084106896972574663949238800845747612943136557617309595547569629147590211109794107161797016093149886099810348863658509301834882861394175403378795316335491404687347910771040501550836777969466740846700834070541786436091268216475345800386207575279819702903272684982103800974895924911979600402772597043370013849059154802853586081470758896556298187049907555970655471389786068280833296301471619458053153837733397372962800484367861967612944348579035556849305079270364301710779000137936082525403896888239454068405587032921049074587427824997684951999087595630039269460399129348066946165587088486118734519160080203514447881026823372122493309203568922677328589082299074497835474163185985396403664375530467165817683099564349812776880223604447456937036008509532782060027930004230656425198299583334014938734834360283159188932383062009452186489901529199346089157450474129054591387144930181361135373151639366564983399616723590368823633366361597149723707498144415165642808520481604516159809537700488173881695928972687551028107242257991451746594772323338494054604298334889051104521169314984185352919828103040709250631023273809563521796925601995941698195435618699980263724530483918070256162864666334449171602917379358426599197213184272046183148301156462024438593554028834608667815118269688083122953259794800413374550374019521896712002348307768411442390040341234526304313641395308442372142301988582600565863553141925270872534140345344555305416148762843762904712632785839277009296123902653254112804081659295475117189755126738782223262761808344351359801370503040717747377477833674451291716466229703711874204458677405588951613199984565099931418002722055088811684993277404528794256362476487673278624318812103653673633610220384691499554115543897668644269274763474654663763716395161262894378995424790523412258090503386672017768736055333165337571101717777304856994070970566218018804580255740157016175295525697068577496908782741265364288627584461696611635487452212392676203196160508346649976022949604255901543699287778499325347908939311646172332828211485786866274473660790701131057574209193991024303087269904070185805917946181178020027290405481472967684969058440831084500089082866528648012192463829985815110655247965272229547245564543032160726950171468626849981662581329796868737129200628473464970723261927592591570239905585170569157307258758810378829529685647466269765882805703201454502545876969782005472508505385107296851348176308052155908112274094951304132952480235459473432462342037799289407184821093187756104487359147090697349052501194677959517841058319301102069682326314217093403534566078610531751359605847176893702278523817315453248216306362108516387757886590611188177905504011239600273790763741231354325998171739720398029656608075563695188120514444060695534484341471549101592271798352585544144838664582871890585048268615801799305304339675592829499178084760975802687436137312643500227301139828127163062894908712820677181134329454530018345121458107550412340156760430580849795516615495262716814542812336859285316964503550060974539435295457436214293079049694918087702783313019595250949013635848711612358353089295890130644334613353628577667878666794749169254293791570710981719506056706647242775123516131153441258700262970616309970365620798281297571757408765305747972964067611631891706417984709633218901623178860112417848393770198549520210309101886102512869436174745068435115521955869409981830505157108604832026045438504847443338679220142360987219707000280846848237259220513999096765507171325118119619749073603646264729032120150370201783929399035860236394850412607619801868226432147610127206352226180122654231737520115785851260810466385177416621606289987384871210479057228508254414652548224421400308583753709684366479745327054455301816798448553126029026223674669521932291801928605938809521918612824830841642877573827606046223722579092319115124908718932105556532112318561915826463003273084275673847981696854871024207157099842158423722598405495318245947652148224447638849521969390830795214997704360772541608875959844022758926512176778167326048652926571837707058462839415184596050714903326463920551682195385274839330162785639401207926390866633755428753747163628095374158040980102687287798148762065711174252909680209839589802431539099645943521769736319819746455157516434310559212128999741987747399620420999554908960256540392245879306287002212241829136878663831405995299434997747539304662203837650531325717772927877732069475888433206899366222535944007022605371879305274000308996670431983619807083026647106650944977739336392606884734110621001724466283427269256584177872337073964529007708679535670580062004550771654488607109045019911608263201049087406641784004742656153809584010660260793877248350762238374707462905052540864099468626162868200671335227461280663806075091061449166711008179006149025447400898996021247833114900044744824258266420608636651605226538078935828987475177173916405456776807655856531307529260727412543516498133476891660615994664880285310917170711523639578750051412834955039955896705114441802694065634696014270726331537042741770418714979749840553700532437051813616047737507146904460747457323157457038952224077695132792771744195030507051360344619622603964135630791085624832915762474595561484928663434692241560363066662798939653154657555533259103434381417150779630249728006245119244024004087480156468453418377252439464435511572254894817312158213697524152264905913242647490003712449136964633280274939903398627253544447586044189634567354718127915140987572971485283282788009679639402524899614567694653022248800486165844002716687846234404189952706694018098767298391272584154185496728855179671936978089854519306518257891632101218692314354294311538847550169576741677077141912184361242698010066366115706981506165988439553418815233405121167285858419113220550007761807243197091773979528373683820617892083805786959108285344338543812276429212029646405534863421988964371598954794132161026869222914487978001597469030681924700586667118012168096285572311321923260287622591919719600575461229480498720659366627764778132694972050740423833700742427021764407984504422261688795063207733968701700970072780654817249138069484567738958789208371056656606863849537744405606660000035423079059502601055926563653207944292745651309286384615292694718049687554141628230707562654949106715031239261596135919709633092404753956964856023448694273208332563979459217661164747344132646909921284261874512535668608574349746698374927758148432305121526216442079029560267478393734459368791496513252782597362691176010244260121467893510254133739485251444256300594195565301880200712345905851183091295050810679721321191089646422808204452892214436097613685916055536261431240306901362021052437542561868836469602824851397183282989853052701121862695056537177087986003801190218787682134905892348548659307892213740036303792268930321294373117423031240411628281225804477390347942434211247215978164922648783948813304108731518910519025638491868050494666295992165501902612328783585935853278654987026262621559854300767065951160991387300546558633866547872147059370319558888886746896557973676212161944624138354751997733243970394241155811108279647681891353678070409981804456981876986150588221355504310176032745350927241761348791666652082321502323830056516628892220769758591853935900599786999697355081223420092247893701038061391991050023610607461090435204887165454739978258670452890167758155083207357046405203950417793973160809299351903418898088741924012483186938804658679370142445748261027870162745053734607820000654009310138274147505713585774860194938825664250383004204915229300511151603873656340063182232795632628951529101030856644534019483735405021114129141534188107627117803081481846849034853056661884120593240444078682933682189725920307575545290257271842679225123123837361163194078372908953894595344646295641472061542371344553655625778805825288832208994577057141174522700489170065688657866013570728930302659670677666517962002301851579618764286508303407753770425101483453190179115348820642334628097312796345784398089399321233881802588300019268572849374258117847970146692417264602894121260624552056332535923112608734839484922709172986458481938218368233760472708438509061861127292737015827799292230836952735794196611413097489760074231230424705223701228097785288863384960066947574626089289208021972202163619085296664427646255084242736135883874709475774078888474878920686876625959013542367749497068726541978444713101231603690627867628645306923182872855280266456154985160062572695698992830908635307484383647571637345037192152491395894561102050949358960138357116462847845992980996756830737743710814184188588084337353622840781697702767166144572481296145901435063006609784054347934657477938915455703532966859882305170464097034967901591529058297916366088754781366418777543671137567128796724229974300341795296641690684302755065894904698622565186427502508882425438053424003898849922884175168866439897526365901660340269979632732242042576254149620822793815597916440597772748912144762275542916550997264356819634438631422984974322351132413771211195687022750085198602784578831907232882442609401933784091637091040920032386025408965512647105199687715820738193048685096438100879376430561003532226349765849293938115793162855527395188877432717210791446107819172031683776486266248821741641707820702386607520426383537008355454852161972557979030911706408208275502550016421431622404438274781450500527356648568326352702667666547781565383603173786578855821949102248678742763733251581375379633961715481792370354996011867188653003979832974803005396229384347429828204862621491810694770093482109572656400132111481613170758082094068059579383958544587164160705467460889055963910722285536761784262243180231580394872867298350362033835264197255707030348278861875127342139207328657535719272777817985688973350477259675970485283172026909114793885985423264699695358505519230800484825815613746978993979684905947171524361300697858646472645936368665560088160729880474522817971832215802954631748758777730995141311968311936204030840105363751858963048988813735013727938606423289170193904998473072807982185437662130064708056199349056496355418533729376694912461420422235904804005412525252149295115068102012791795053692767936846404547263796424308171617955578387500283283322015474106617255972545632906270734420331513929684275215425454968548839633033127511085430492356792345680164185316469592098933422995831659441890970840873438995334032458587708679635365031854579995271133100724987622699676833284201889845436080246457656104302536412532996376361411158376632690332557440036886615084673873552439347338192313189403835048652708145046823396227905286121741045217616638132489097137022798741989637256575634781247457529636113591593910300461491227403983985920105957223796727556522574352850243530803071009600694027202260850445301647120187966056813974512589602633206200362699061250236137272175621224787350395877735915389370253119514962812018593449491709025003742795295507359704901685931470269211311126478971952795028941936756379067737355471313667770368871417436448389981331903826312276329590172720191621712320766787064830982044108765083552693407260862007072508950361292089333018655100793236374686063377897003519274569482745465245526149321831738427453597297821144409408668123401849682827949124774494003920011293265720391010191500144609817437604499929020533473404726935054975750427094316431920728042982596476150794407054241865590175383395645225755518890606337446998859664336773359867906225346655860154525001626623836651420913276611254559150555308327386716592266723263898740801599087935736237917616343163578744505887539891118235415066060420371622173218780729614999128199389731074094391292154235658174033181258666929553169341361264785565907654357446819125245682276230927152373149464613787959924535281506135171152179231752067795808356669835667416086870178816372237374514567654203837483618122699556661502306149073689394415174516281300860820821606949604324994899256670397374745264186007942465773328840662506235455676480104313687098109485243127655861243981546078135575165285958665583339433817538898627165982241788573650946087883941888530561004726310917042801560649125542074026590419153214921128485038456350129080344400207810775625213734899805668746917538913620112246187587553540563753827983513516097683884520226593973964546931572981492079674476331468222876247370611615434256066341877642557609378253595274256050354879969810272349182396268694968255180946542553141196061199923281563038875568115122683127008970682455331209810420588784405175271502621024838087297941051938457194332202521097721870785218684049374867187310576261931557227734881808061525692438883403712323071340522545909439974247385215570948143654449449681623980095200786724073517676069773014641261754529893941014752487398045668518041898586731116562492188125353111286255878377775474568871342229300574731770450921895930206004777707190081615821694980962521335889264793583738028112495172744227886190582028874400505376015971996535604482571806074067021790198771383497035606439160001743082705597486439580285060943507217089688967943906265632044782417032670424016756462974362366732043349155312502052008212454185250712503614386767111752172096421115124485778673973207269842905381347603087738150775963445197325927819739901658962883094489897789045983389540741934711815426049529190793700132594381394181659452159344162727901604528383128176471621458608620969250744541429293530971116182888175808667406802433958374481415802410708440689082810699369474834214914735320005719348443964975908111569947329635957593321931394260402333381276694440897610774607922103305084382101126792165366006396500300574671367112885150526904634188593975086780346523815940610251215421415395699644642691216866999154187216735491429136033072176828547531450819440368206954964074438854719053371945028852584563691639519733058933061580475592099509546772920614049731457363474788418636927485968688225529244743837956918661753635004281602338366494435005193932742807885566759568297834319584057844746022687118184396433181444893810744568551262781018490536458527217242432296328979916577447356436950838887319150725980382992542481811967688144355102254981446410282098864095283932625812505444724915112712686500162184082525680074150419967632543235034040820933743261528567220146126396523326382431438192234184115847563757012285078323721619367124820206267432867850126664516830953997494094485725506203587051366927499891940965035675926451798041474668682509961605513415046489242904205666412029412144670074254046367390070220719402543547911174685110243849009445561395623108806352766715059476785441292080086608505860360182473491166877745721454761723264937712128470694572055103011342829075493117479247806163228085161037518269698108774139686238177951793158993438544942114444539421220295222329482906637453979188167943161715815459843675810609651594546929757158891206067226372735630469787988086356198870401160509989702140700268026745851675227792100947836432607978124871145116168477442041984105185884126527962301301301198315761968856087403900108467719964835063191872029257953346421863664309190688893168808059984148757094154230108974577318282477744353617388724162884961408370572839243542941563368177423854224482544452477311755780969433029277120611328194168667912291070889619150822485746904979974968312230055152248157066060518046828691007347984443738994836585899505438004500218881871148971900527382843580979112165313009520268907510699704171184332635462882369874717441582293883566957884197525311050878602194363842400592172143577895908051200813739227045311189959368944981900084039104431397636791309031774863852553828031558826709135226129824279899697018325560564573356999234495780083355186153958458371149629051413966089592685516971717865857737753719050735347607629634273886982044126742352738976061372323577203623665024623096130321379452797293645554150799979490670244793076990669707837322323653991245156098074744501218435927569129144587832101008671501838162265416321809840879080860809916252465446289610352222447433078682021207211445547882696967820937927618708637788400105466422336560038771752785247082792022045960114178276926254874299391292501520990926589997436677505259233434149498476171851824905652776974294028616797053994600641641796970711770327824274114348507513158478126029283851834335066663962578053883715195490126026424178832177870416030034584378025185952541748224739316784198502670472883077488658995544191754372320446785539136743407844235244972033272191725393110892248907075878724228566246383245955351026019179286644288764834468133264333092209408553363972531577156599657053994655622451179871319141735967472163655994165866110836400402030427197053905093127782854924960642716684304716084141253623753443685189436985741294892950537270456496801596415514552870502486246660100817348825938437824282541233738153021193362798488921521753915285024793231782149958518621906830646844052304821834801634209334745297109471812937576147861351745415290088832875564005217173313886203512111624997521947866912048167690197157132046005212267379884852688858711433990536888590569495217325745975502754836723036394166521133705029579181802840890396552274200959446043717028220522399338751406549973512014407707077914520042133386102776725610409268962490042175338785606860440443141326725093858618904067067662916797750044326943237245745044554779436474050407868367481263836148512218911814579090365607203684468904021660023285598459622173814187507542082912065214727409951996818708173667612761770686982973914484151153249566651334117421536086129594550188349783707273091424427920579034915740446672316131497699646999262149083744561254013310771180705352027984387285581471920931174587960953705396277014792074990305364148570087582428491551665443851399978071615057581103746164484573879937563218427699141331609595905927659550621580882488322325109708606029659029221159933674908854459310514631105875364177711083382174082857454434202957220444253485469877347047113084992118490703640222672269908946182497615744755161654367071654721752067919488454312266676813576573204595157592353198608586426796141045859300399277658503593418786061893722584224180521470987207524383257799162429973223850233057272675638989636625998299417277535380961873246263685089301784202576193986082060249221376601661442049394667072803487760257441926610335277643747053925697460697802792143290339318141788480037983638400682034147907793624565628049378811249498101295797443962908586355562229006504349146015474162880098633155837469392670890016945690195239230661800007247671796439817319959847580911532081201229900646059990837096224457798299704448332373592546041408496708443728871841514942839853431112591789511934352259527877521549212399700452514000787191055758493869975691652898925081293373240063881056498822270833394534227386124844445826920922926949124828459871758779786931660828591585683423605147447927443927785930212912407947144119165931891502599563081672258878656106362513898786023993743915587371318568268312901182820317852077791082193456131637198050213886569084263809947271433606796985278886186174666778201710508696360626589915296876973654555553407137081440904230982017046671946614432542147583225156964062726035871342209558198116718274589759460641346874092770991203915939175585893913692512574333423110347226369595932863719408382505395609266907296930833403855335203956027014988059688122069195517916256690856802025284307589936114187904615981848342404405668886081482738119116241602917227361921729469793968179644469222768861092274906449933076186582125252333701465149456631232257969855118105154081726232223501305027036150596057820799602955209034368129902019284822347046722334120077618985491548179132313906734243733973238635916456576444553219332953436291062021446671409571735391268804566345103837219329951251445105664898710929395009697937023963977144191714611982513076339649933905624144617171492416040023841309037105981002178465166707128083779828309700595144437396450454968960629359928238374109488033458298543057779470557082823303616430096928908918332375166203436463946674743682189059010121642235178677151964895397476402575855282823682508085125501468169515725182028533169935578446874785322788060745718816820080758054374274776082237585984180207526312019610259173474859754540345072097500680506294536091789588220721065428085276375165706804063931404991209520428870454165639931527615333053045752521053922850790162044698387035615611351002042130485727632391947413337381714461167703479530434744305453553190592340061775561875098253347584281898350647177931818168830393082416401887555390267002302127412758922299989181774406931116244095015511323949989629732364038684362754323009648860749218302516387344884204498777582801218865803290459372314910140467335668659498387876131243874962497037977063670661604673210481839860768808663998200574247847862907061980360663426210572594499244668425192516293594846868667167941832772976345026358345582249736632157922203598807833473039935276687783578638080850743870440694788566012257785528304686051889545402582145399507792374637541737368037502699332984607300784095121102043494518261760864388776353698755263338212827151955260052580610461881863682965268627975538082391436848700302057478817402444714079245164436097333254735293396302671086609316710039702878201586735870027719255158449501526030412849819760810930388206796640853634259755890344042469924751218088260594522432802138117069825836426658666665140002156651558272311390120845136352536519699877006347491684097159220764161032467718514921802234057673752100658148470340176293807672697734329538040782628693791857979293908055032858351600733789902565004600872762330055130975514430288880697010892886490120202147402371177062053749557509832753924598397727223243509804585131642927241590186252047653845114164043527543847424925927880130042813247710035808641083357940947824555369422406351630244720958462670190373577752849059772370936900565831426716715998817924346819164442313705359847288223061311113784896885161975417714711387108867491320583164355548082202216617158126752188039088106876030470617968061461323876116623824177449270432699169137022185102642707266408177665824772464204797373328839346708842135822588718162276792792336204817242645054923374241106357096295624336075040873201981954004395417943897516356248867773246624091863464558681925988712851271251651082594561396561676124636001029420092660218537564743862482149595814885137295720701353268580340365189577344981015812973072275767719650696770726650585242454187621718502709252917647690797968660994172964347905928850292544874533690241471631213404606785952416506132414720062373840868065906212469133376123484626127619303365844374286950776252737616557802597619654193753643732086951339591038034339128248450451068479902657700848044646890247915429194385371522318753782102349323274289621008990539818110935198624940691710802217296563474258500107744700594694606738961952583238143266003182816121294003506634351319673751394174652771634790298095312504400056300627571921520425168125155971134639635545255709027836822484881342238092225066522958454640960351581468871548173177123236236524208801916995750324825662771387933640061991578441150504986768517454848670799948625136465203166643718266233708410874067061228867626661347522774165669634783651448766672961841278731866708178281584519502490424942572080122628480542961813888987532061009536157217586715265356293420480716917709986384924363899186868501639713344818871277203288080422824781538638370953494164254016073506208928955882378564492508526727895513226282684184927296526482778294722524675418862823254737061729291467819980936267865124388047031713949279052088523645895281938440548022830696217118735887461050274963149516439620477276825346192927466454925067808120252378737656567204030017058769703903214620966802601874417063198313435914626993630988228754288242779244522272606899964010438599325338921973304246251508233778807730148846448345259080403395904079833913642673444309646604270721787553870045492558834554096675579825934494141542751513042635263727545079648495945168744756164099234919081365763569467590309864313835226408928356116728899865580876666749274724089834877907228941098711717067570092216070429088282814654801433869975908715360362060756452807952241555958541639341901733358896871679270833659388052994148557754265074893023541965459461945836607610361022241369967818948188599099597635548520042274897914908062213115675388927183007912998056966671064211507169839328757721560136366394090380239738504392151370727164356899612756014845512132976901689616759744735886464294696589962929858709430639830313575542085866348605589555242318659126023716537665392533100423345236361280447032478751039002687185876697906033791300031343259410250455667646323855341421404606871822850996275558031482253439988858269849416100494049898613291209618643076434780039496745864845165258496632522600353213040039824278582366037240568595959742817894505594319831057462199891273569976636379928268817436834540785189092080383396209902766480667039260134873703083533899095038742476681978792914149823000479923295743649464767718903554014332764195689246205874759911767363864212038116199641146528273102622855755669578336964000855524013168930742241488223733312709870958396505167352491857686968387719014117555347661226855002853096288463988931000230883688873973709538422164626944679545116197418967086758983653455752835464651653435060996202006633429612040536506384512678122996525776806177079967834613712448102347148070716992000177488508184483675049108815136983241753868942036726602232481552435267467621429554180765800782713369456325502947233617412542168498025662844305766049112156285071915018321754795381863897200112553143609103095808648653570059050305206640529031191841204045601211683116685100581514514444999612455910070917238355168480917675557574982399751014431172981056660518968792127018030055065269922747429006420523535594204896014092512455942726080952320895740177090563408309894443963788360392589961000398505015944181142217372097792485863433325365108430364734754156310416553224249803769093039800920426185935437840574714478742060226958813684268205850186967923655433548452384304303232804855118363054309330198164474569367745470225765990532526899149957755267171710740103338334310066336378155891649498251425039176164334803581852869887104593714579172541325839773981811051725917726949015209223946759647152481008583416461825993920102199530624566954007540616056701750707525021938195648894445229038288349694022405742484083650285686850330033034473813320204076208237790226597270707590528700882172055530416862016865034452690292305071434805912503378019173063320709804120136717980991615876587114634915861807618883345323871179969324388977569266509588681723391130752801783574312063307229653096769385684882973487729557213189040302195589868319266114779229830249164959842937351625018786807535097433521106762274989458511357749951863018613830218904830235384927984267796680208291925246446115208308514119403280604397107507867010070700837467952987763092703658983256044496497146741902996225378098456410590980201152781694533907675357430587051950510891942134343373841113220461553375656983884646025743870541861805604817906694832733437539646052579938513914318848731333771470615997209029146728804425627982264904980721055224513097899277930083400110871825717085688954442094444811966436655832735183045692736394522637514761133925079706049112482071362024892271492404202610872829310874580598006993300035240713657515049141411627719859176651838520947077856590422049376105186498473437201740448835589724052936616445848473189101102519585233386370877297742798709679850935693658706928614654174900677756503845742520119106354957586260939227207739571439273545378885187327563803813792044476854762989464600889398929111488100247351568386467579743648144322902381922740633345761845339805276071032853120008368898378678215495893478704130431271978804801222975784218616095661142470138253795783850897596349850153899888571994694214030138958608560262835855776304891476311289300964565018851967820498354799796638603742407487776938506170040893966576702333794747322746174702116454744569398541125892604721217952994656417492748000687451146096542721585113746379025189012056914987934600460817784550325746545835527075264613713335471522542793644952679099930591299661094956355832326887677471077177109709810488810512836634495953186677453349519469215990854770634321288206224645332081402492680813978160861961887707421495500287605857081678753626493987911037744307147846127981174785353892777227628411938424986363259794217060014881498282916623876761207264564605561659236177780819163583511429968943656516729294401952971463331283069815556412850359945059167045786795327920157240241572507764994441838689354262280643016095176847620932061543310907304157564041908952751110253171022295725762498947330893594405814803506672188594099325362097271910401680414331553197054555561405375202398694639453427715945534857591076027420793490092684066704199796134427220726790915546238215195043124580775897777335413250036802651378057703679342824314446467469687847799262519400325660150561296054381728360416292195658823719294297938261183176262891934624565806034076088206908806602665448816507049445030970881416767536691310542044384850688692138731099209955807711024289217913395305964265726680380816595229109132203583855180518914605397774866638089286789543285474278711498448205876383589049886720061099255372892418412502025119371422430565366695544464422375617323584991155632150713490315910218883685670566120296576146229880671332752830965086832959506630618734846963849063497431540330894813740523114559690108716325668804666754156445836219224974643557819432943461524504052178092030378805824787022070710765057931850508005359640917351284290550692253803467194354475081005084768141054411485016210140290004648608404499778957446945044321547295708854787453611738314811379896954906479509727638340076689050010681085401189167225337415851018706692010143711559447905680620463074329983216729485369586559298800676556743088443960776234156668969804113034251355501306691649363022769055244025649776285625446452467511509287909127554690029140540407271882315020285499565665314653056930545384566249552645453222978816799660423860345138121841927869895523525350152693813258544752476070961764264166448902085009629599219190224616316496327908446826767446888972181321737808266065891829024985888324078079425810249866631490520900215296976125125686444065082247540449654185611184498322378501323075277559946713930581511980554314994210027442345308259970297065948654627892575731763858283018624218049597235323221037928454733063085101373460001282376784168392008699311215144114350403785063869258243214106657226537029341271096296651129198957998655043524323517922269256274614320235254191113057931995102639968127591885321888247864915551155397116677200609110351090445904928348096494621476474558414724184453329237845416648170961478438912905676811860555321546877023601495495833635391158638173384143836261479113185479323357797096050598441478960134825562797013872845690951945744153987927048605380426651708821777692929653398712714455303889151194958245660038880096633694499388217455525365486644421159391653081820485338625530039663305025292202191765932255526088458722977130275191551389376909702985342141545385353223309499757799659198151977679405134132552443174028443476122934679533958826224624880429005288768664098205940730702895520685120835686648208251094365614335574743409645239810469449551609416161680011795570906781292101225506019461748069365147671846294151643706571982414763144497306088519028233892916689495359394940818386086269153544073280519613507369884022034781030318396323047982842567544761328587759880923922958363420410649632035653110253776888516414238207508323720194469950503040631228508107051127164399818736859167947087750373623272913385136316754202476437587074316961696233500753138539336127830276727761771590411338138560879209567369768609694664516454830715986434473438785368698485134707507489509919006300593568675157527683541546276926685099839584815373425759401221683479752717367151393391819405956362952778219120185488013349663888721354801066280291932777051885574928588140044525439067368066701098499634360257235250477721099023320374815706562796245540086565516509580230419147526721710817274455038051614717868692794814593009075507861347089874076234082730800401126727357716641518208347425240132282604244479807046914568291600952536380800891427136496940850636822873386675299097276394017405838750252617761643448270488324561825116733690186178170398995274505696136715711174942186523071501848089338634607991376012941655246681836282748957961317803720457384006470117892634450504640953522093607058347271845778834103169199801575652210206180753721494212386447103305206206530617113383901487730585746193741438181490210264317587728805970611934494173755337171199956269377405698392113045102828273626637385322682479545066598495262521831486633269486853215789046819443410877750803394454948083034293398543629307712586583760869398579158753917093289034747288980954698633941627251202243290004676307567776767741516642754837888004871478615683485518356070285797452564450342302100604710978199647799886087997686815382658314694038711954076504259117628736217704327742554214911928874873180010129522300863414752724932327288002520725841294971600315854812752918932294595228980406098503528733181295769425017346305526481570111035531706984636419595677828728321286873747205088983737381672650579573051234364866285908214851476973788218236867233049626572614083077985770265598608471741309842008804812147313854313110892187567383881881273536516157274669996640660413626316164465013059090571303817000854200200739534784508713742799382100242758115561222823506192739243619906127318603998584669384979251117434576642041001779664572506589288686927131710166889201720706052588495460473377189591296150154628173535069407201725193805293563083343547128672304003599296344812695427394386997041496832874775263284311169889215447726723339744075663163433080630183847487996656595750637616756711916779096642174658473357885520981026087587405225590807465963068847024115633177064853199501833092621590921405646616454262089592792568350599702059632626169510503140498603366167770331985187677914420082933302691156963912924787689935471604187448894562265258953341466155429480083192265061592578860636108100405941142698561438956998457655342317226006100390000692145637598101305399143983870301157913141947974413779027055024780750645917347240084259185412930658054372644025185715822410948989830847778005178195181616115207409180768786306810189164181421435885301522323486287413395941098780957697826012723169250693161745441410354726220565706727702970928636484271191195946631487415760226115788004015921336392942300127561665001970229524714552216990525073840631301633541142445072084576910855973757409142843425486596280078848747277135668973265971715757423584858075227727374532803850929270160115863208131902493383701397591396936970520577217799662635678691762275703293709486436392202683900505790008251737931135930488476579298594832985614931336970954707767313223569289485297647063513586268683828369483282344797475128976233786549710934637893975288320896662310828747818955420218588487993913323746920217149084965821495701640194575249091288178672762277189413570858479945320298236344552406339670926704648018723499754896416756155367432747514841280377302506799112324695444514116302194519945928226460690086506263806739389051108903179253783848113375689308120647491036749969303789277750585353673414224244267066149162647418979448484727641828465654296781492897211794265996586423830618133230070116133619171459062785334069518266143799576268252038440911037109217076476344412867786807777755383636346941668948385183976554628749056259082627480992478007423055905505753441407498931367217286798770808385843564643819352515884737939891287121030721916558300150917125270116699369829633420147377302876482492379787606586206583019297791162889759412765379326760071914156145017006427153083492860710904639106352732407255260446554204873075234215210802769281681131192863079311118255039376977000882154934979908147226235067413504408913600262142558724007751010977462371798406885049530130707831637863122965682820435937910960840065047805879423747119956033387447129377047997676387788194784193418946531270463962283042939936257419615945565404886171580770767141315005614953267134160097346499647044861823132019240221614755613075861723692768755808220781599375169154654692416858386259345271705515843250327389294144959819348922260709381857897762523434397108499935192515786071943802899570544860507436607881189007368488703112203686639945711656200877847368149195118747582898883744788297538796256325616968795244192700736432306272717977642384566581167758581168731452149129121778815381591047322444530229663072550880834603935029047956429529519827858335083389724208041064891918341966864105673630676753269208082133694476355785612413969900003542770185863612249001192955982354628872043680105689621921298153807814108159417224957782528957796464220478747949906600180128093145913903730880184839179375201809540645939544674433510301854149407636479653774176287176580224007944886740659748841549807089196718597142560606569621354989924713766386430677118168482386736492530329454647201147859504367979538430877812749029976478230364300129916727377071613411275296500749119150643581989581732068171140129433225987604478347014895876871178170396006701056212885674960879862588069901292363975768149523712861720994658777058348992456235756345311687327706848455024835658602454640599221391747556886699645520005438273301233758639850129793991450810818753823624327713508697501881646098552607035086867251773868746338188145809032360211899899091557532503193946836911424531139873629371700671436677039531132704825672633514632458561354939549246502944580267354030441142471463195398596896489282846780747240017607101938482326423123862963232093103627970267133318162355773218304814951922611199684780571096451710895774110355236823349567497096897242771270464321102905423335302237733611537249779237718245166394169677978844187318534913204670612890665599332722184632572567849314173613236943083564177730505369950317662530476463533852080640283144540377778342685936117530946564493963398182567797437778115075497803275582154791840303382750091410080403106907117184813339375955508874343365791680962143250494711864468917966828132563894941040850734075012295543913091544672875692013214688225119189274099314158553871648699077823799219530899302689174947912513592408173395207603487678652224292194825103071816816795058288800280776062275688003946802529575542953392178190836613571220512186793591962595619360399977675029184308324290781015939312765130266700561042159134932406442073232555797977242282143410535496926324953543801036510837709820249946381620408977051745131019301876178130417065998780965249557286497697903005517114314703486005652795280139390622788174259734832729975944740922957517542963461133789896395461155130518424322403397619926867194900790957035687688530910655458587704930333662898271710915649734311464709699018711254254291531106783126387314523180780547158049758119761555754894486558483824321904013923930056447049803461333701558156158323219619841352446928258346462695736404849250844521550615853362233932661212625438884819578416402292079416205270745355767083668819298091181042338556019521053975662640746872503177333189511397949013380202492060152896023099582256420321691382808206889747197489944994149795625986456682674240953201702381371423106531066012670623032800717816288083840201288137135861685455969672850139909627918647110543898216874640380590181152070367848462580118110740551021830860328702052699691718986469835634571216490635371158449397025879499411053251274107677077046715201389802971618926721847249685122326881181308889799854101557953992465005472027949566599010943940526563149807850945447139091250605854966658909633721071739884558164481615402091551962021222626506880536733763022352075555470944643726413385717588780601330310511979132617224065872179891984574996400755939159920850743940944676864420680246481912530030931374003207798303643061189387951237111705316510077508033430000985892001057209829366324194979555045785332107587225619111557152018392630526914768569598805043146229156066824788067008810146859573660849025777682830319408399653987484613320430244158781195896060340931263399372213262145969973106862517605396699498213323062110240627356819403330717324056522559670863924812189953551659389773458443389168697664232154757450707425767642910514324655406954496461536872978664788397658785339039804246352306385430566511746783327380478909879104782860110286520233672491752302593820656730934928732061976053050285779712670952757985011580485322538192384378445973976222827798752434489013094523887534674072286148363210894130185285967494788186797530932688723414488648953568131863505923029101390942334018770763335177197253314469716725195898492546370227939391082527770801508908541405466983214262010129033985233320021841509543535421645254065760932940257206374719185365363363082395378573109253330721509800599195956509958037272621511100666907618220285866205404005888958551237571545597302819460014926279030855181250987951624680412215819096743350127891174361804589916290410869252352523640767307075342507329170064114724207116452889738172519860769181291791238441031235885345005702456816815305775769729422573782046035240058740341619793489513774573341368285330886155648550735232943445800493407708957478456244551627273957912555134157885661012233776978579072662988123834334907015897588553660886361418293276318520287764316618631233241134860592132351653646963385157411978541145680550006794378326880772521055677445199381811625941605347773148034277558939325831114872606613204045492169036810764039448863196697601218689768024959704148202177313465311433353830189079955025077589128670666959343671356448838744055652133001293919287906619544175418323002385969510427779256018067235862905815541429712645334811043340758684268579186773104418396940063364118303820268843512999729126775978816634267345078938746705538746192591086743132846899104105306000805246373693874389002505804900849583565071306959270343455788360036079008780833825982478434030870796885959139205829404321228696879934614901859591111213226271341405402247608172730481936924121325117355992853234807159414602210110208952937357433878133997060747723616416400953006166922524648473944259700587361935213968666340534089220635747923168353481893283655406663226556746841537079026251341355384038788160789455919395128803689341463713335301242691019960435154189955654458849346505671702903056069258252233896148362583778043000144068484587002927754459275344677844777725487519332079762702602671806675740773238444538707322836426024727414194984311236731191387475250725500632385892477276588992122679269397773962568961679108634100582607386827732920237014583361515374423554642760388348882886081903621297603561363996963303577949626095826048818246538756048257117743305467295054739777430038392513608773159951562969935374301222036506783852870707064473245387525784099846595844039008645673333533414206107250522045762109142343642990757172296030771997432431939900465941639105138453237205368649009742877141913138232444719611916460745421365106074999563771602995906832975554779164940502746888882583811520527457186838698111370952842776682867540477760058412928425195518967936037769680165471455177305118557364840155435532381986732217686889044949615545746517147410528147165522258548050953494137506879568570845374327250627538900035192647764387355643061560734653709310642281311896615263571194742390254826576298052355234202136140542950824421074456601883394486951296410513598162702438590846676562182997157372593378793344349474956280801073739256990942323344585743166542765672969992628881708861280886893822744035843145008963148570583042115299181198610604750910098628124077518566582826762124457601314852975116433707430637112028716936012216691758566078528018918567155601052754538320835314834858919786627629519040189332392847954782840409861304234699737609296896836918423069716275756341549318211782855453081776859487436777320289647694553580788999599694802260330774298960969883677584148868781520484067704336003010266088534378065218885790658987722993757749233776560893721542291415176026730850857062330895309229477342364022911185441898392683936250431793459248202475834828512133719850086253348295096747834741371471858988725126055461590938145473831032697471371656196663855849779264974100440111841504258769341609002276257198851594927450840551531867893099657002267900058522983627427941169881553309669251469767915922567985614837095019730049402742048982219023399824731252037613795612001874982595316850205253387796301827275290317443191192558917527863759181991605129011470367484580659910951015891470345399104285566214917912552601072804954608263073206670252148868005323965246157128232124486113312193765391414542918897701624774447722267433201209136322785237215623068000709018293935156991819558551578416547631346882757535022615109287665638682970082185334087981914935882066824851543992410885074828204753121557000047662390170799149645863198114703462251904355619137737196936703447285199283037397678917051419393157010612528341418691545175086350959887119950624402895281679442295366122502764488873338939277941157098872701467157657842700024600476330121210880120207235519803065644966388838915406327697739835266093878598738250745440451141265164818503358355318024567062038624547698280117142648794183486873032830642355778186036172687117207806322221161072702616352749948709974854957751526483814143211441025106466782429271710472934323638257945526520863599217263026700517887424304929395421615528982082749788118074550372949156012942436189262638783037264941958395254728285030586362831159124090340757338502907904988203150130531935266719994371251424043815809874337123605332513802082125213384783944178340337210959188633768242637380160997575089256659082501005137121020559213927760275279645773658261508354450072776634984681445429190178972121285854687501723662886230340224208325276699225004464671508627555459836662228122001471808996422010296309623965790426006227067158286016539437362293495580736056865517413280439146240400621183889494007893711068318318059428362741739473808337187242914147225093652194476169547879036729762511600887683033309549889455894193635128444015355163624749013188585615027599276335305548276860091968101534404841398752612683199673693216320053399232876104518645854443217193691805827986695041399183692345323830575148569136474760204148096939397493066358920567162083261958735368483527053374840051451764727970723765812176027724317591760937248461265219993288231930901959328120463828042954398220137904564267642097890802937092032205556237543195791177158989019194473590238041603943644310695684719105317309160208510517688834600593930544296100901001930369784625617077663187180709771231374481220783867777318430156250404779418187221673131052193901956561922428120452404235565951200042750950977459866533024539136370635632683786906408047755353630934986434746476986103675497613502432125509254205515395370250245412329496979904048540324281940043090139457453617572859096824557160329288868230343386414109209920232265800754700838558433240045812643190779378157270246076960205755774591728221537744629252474428568596553262245510752593131423967395218853021483554024063432624822721910534492998911527710250861789591255663657772910533055421920376400855710311810975227109288726390647128665213927750168660912043607674216367989558719721781672422045146777792621353989260217539767104888450855190809770428840130662809912614603309878610996273903749748495266846636728944809900894439586629437023630595424585090055787265717032220442814514968894678505815504089023320213289780611723747387761654666219718191751698015732054318831164779567689690895849414638338643002989499898949931320744864982951583975989321936015804726632366593529958322438775988140417743510754909768792942459924118729116488388016825710566117102078134077158261784319929689997615942860968585760194364361406902934689354750108398651915855176455563495452985546031955391535691595852347756073533617629041598844264949459374755450350250222081420866153665950584600111407154840107808089617084675712558513331795081927935008926460450225275727115373104391588431536524639168844433279468207670406095563908532620966766712785947889744924372966840243532273409210352665294614371936076375918274865158414510995169134440440373268262375711724449731037039752928228481595603308154668155311780890452734546874300653935393277962755826845798125488365824166962411584459233744081482631048909270783054071186450749850151611616060868436110559604569000559594057525124726178653414390747127630099408853541873835547020006510164955697954812220437246252512341449466025040913368115406657295320845745285963142249681954420802072176108046826705814275874460740705213190575398201598376414715124201235233956939651355607256986017390259053256809745128290690524593938792741185249328240416430106005631103442548475857246520364902000589714995470131811712518592596753697092996507774209791360750011858570670348242924920427022996436108444816430727971921420093822827829024996926989250577745414227884879665041496771443874196496256512395319441002990971931487975696409823311708761152983548237954878408251954247525976838870988738852084083499886529875023659040115426688458649675766699729845181146803670562138260146556317769569251918852840670955839904960066676602642382313938768018731672382732169371844291496895835225359128114366155490978780918306158731385509637011456727241128947974449476196965838295163260453822394262752101703487095644974100271427367302558391853911659248033507905494057202244020804643368309014843119453534948621047565840575707110651545209229718956205871950117402003379637974741121916291853673954995132074780392000024480491835356331833853469520473579706330456422868803210910642587136743620978381784141731763115931844902304950057620361640425237715727252518703542395188649137409705457872628781919863482842623697916124713910519306337495844688497648688753949655096942594985175185298943024919582200061409631159888543159299202895368599043620557066651150047513336772559682122973670952357139242520113746398712572304130808233822209757755986786144379312140598874016190749929183380868942671813130114376745495900427280186689835791363560148647743236706604007231142608739753853966622616330060887201757708578717837146511022314991105791712261479456671672487396429301896193282598833257239883758064943124926904866930791220563249736075027993917808810192667908271253969009242340915665987592387822657645029373660401671409576991586834992199171630776804992281545615343049680768712894439033259445513381242898051595712704074621862330052800721874283890390249246626568123551416943186930238312640702087248306498701295901394296350752894369291533966884397306086779416247053524392980480642754693426075911324909167571269428743363614478302617543538557950885565155848602277587955325533819427494088514223083917341349516445016259106287005667003279381352301752995528423314773808075769522194628495192556634092906613703604132567128999036311203885715830268390906988041919250924167657001252933676940884159156744229014378508278566765526249636514319048646697540845049048501979775365420071291767147845103785758988401755077450283213161168729994854125249236588828248482553777808574191769849133424116887374378859678121634389209718129770110296925485483116191947964969314298794410443996407375355669924835013998285326209841541716262818532089682362346857998381069051934963790014230644894132818174352493677105341498012332218562255083857178209793307033675531200975565180027202114229103827611647887236409720504699929322074223576989056555286668115833257684051415669684274453310984509322200512796045358056700481336935482459021313176831628319983210105588886988951984382809309122098994166632157415222648183295988935990645220225912726768841627263938143991790014019653533503893852355297131936219288851224743894383866438891258140122612856826267178546104445937017031900422895107591639608519736669003816808420536583386090895853240054526789102551296485703035598667360818230008508412036636917536696153266544627573054134492041081708841825220587803256230400862852277214960149967479638961199841994426212328173117647919797795852382776624466535749174449078631421655996204950067947418419587246091903782085638738693295952469284443748889659267264889128735248482771586700646955095941794503828462278615574185646930533805658627503846122148527787023774266688993877133093075932711234115967979985561617267484341939302252146581516522047405877984182564890781689558275280063635176680215923797418970289192258007104854171317490167765041425624569572358585990010831977403157755168178947690517762612127348513863396993481080333357565865493210541668225410907782695155551333587761263969326332421961189876167134841753860292688310798980803041623519849753029525152829959063285791298399852263159257903000788721467099876575860257556971960721580323846344724378217082240519988232094004681670660547908602847549743044908310661245282720888494291793434156302425748145734301122996268305829308949844338597883717311951177238161732898542794179690595666147285364947639263242098055745552040515119227313426909388587136348578670908683342007590288768305637577297449432065841735424008213106143364972061702098403444015677429623634093078376854049869795333796969792152944390061414164859244918995677694416235513409733881416593379305732587370738767175051968641298942587599696484781546172320721340385947254315641457761026510539417062296929150537575213222296464996068148852775596682063311656275839895686135954236842121322691029110159999353235614220652401430176835373479658869561513309296233580211042011260390835790243897922216765276174363998422813867570740411396672502024388708062624771568596708332991150212937113485434079628839262808672037139670646623759384446219308666980502475382722755102497004451516747436268012884965688047136203685343616798504924176307733592817763205243002361753600247435006065634504751467083974254588615597903429210699232069235392608340612543531730701936615216885577792958328430272927046703037857438484077834749621987816212027291533380123715674681497853374259115204358152732803273468270250426474177394795722627014208853460064662217232452695922116950072776156509178813490058889842701387882691912798432460201144095647773343624011561760261842977348428463341207722033970632825966567384235970395868684263012231425072860613909007644375062046156410112906302382699473737531412595807941411962831363563212662993245195367912474357757337080938373578382270255914913322534296078705033242488485959933180115449156355582271313066999284096587829738592706639825698480209837341328903673702229573592181578315865551378148784644886391193611128711135682226823256386646194605997973641097069532498594945290435576280741768449990338110805271797980771222920288083230216523372050448332959079446493655430931408612139806757585787210576866938951505868936149036507565732153598924891480069477153234452054171618123457043201345462836610549821281298457202147934218425116575828998244162990789445193188319502920908099911782298998224589324692249734283413071497509498199248080682649925311203105454415386902733873717767829141920371197097567326016779219408808652907091823206375398921257787115904123746972111655180860706433788143212532965356164044154501433569910328822252910978259332122741631420095534925580820210710076864600966302346869015318526022103175893464487091047263760920699784378052853734671656966379392775957350921030576748465171274997500767105080302987442382428674433416424702235477999015073939722628422609691992491254907207165150162755672843298739871292696155009186262890768104063431632668612727711897253177426391563252010129131898542548979255711615784779808421920543497882518961581857501357393282969380322819858524756565071309409188900999628434178830871238278633237684155588837847541452220799708632543599108386056511841857171894624560058334299077561525499275975857207455897964640945024973146366598452060141980641675283910682409968885250137473121905561281442891144000937776120776751372581251597966688997362299368309913011451752237705285745558521126015426941274934238118348847351683847854333596870205524982392730091645187878197595242237274754954089127145691400947326231062105951278124478251247479347634221486161146893054098199467476144804567269732697932584206203730958706668872847394552854968100342225677282180109047120744838413551499442117740100321907456472300920690931370231378540583879704688256062385539680168250431669821362618620106843450327113369892054377862777710712035725060471906394031887462648273180979768067510191353205608369597697137283734497317204615102630603829125206302468273955424379561886413852411763241815113439934834126591348561752264273727448485097598407556883085563258513823084360119239257786844620450254880700108126177513067910831663349032864953612603460970297878844979934977993463778692252459123767354783882379337326136745857514642106527722643336860589798745894528695119913279301779193223785757734484268142597118766291773622063883717315894761567618825851427769920404597398754471977559259597726175353295264057619371891007520856134307039401162035509842754319672410767013710384006836640519348088783523546081344448666686411090578473920634540462892391541885236816961816201453525329309233811137163835984472244125072888047217307066189787468758648098568566881710383390397669320204744504609852611158193594103236166856957022899176644552118695333545318919049505461244178261686054019000923024502788292787274064127623994255764239949266674550204186267371504504429432674649019323540657489027488510729557628773765686138611965048610067260579525133631160235219628654961475915877675977695458709892793280415401107524645822393042948092741945524665478939027709078606556122840874096907794515222384990464164808982218117123804123018921210045348642220716265537858297384050684967420019789253610024654300166852476446597792388696100648506607713598505694244310061992470502601428958376795337811874291386879600045364812852180984911792818218258989047291141154225893806725489685459736768257489011820093132621884811589268527457338527134570895851951402802946018832908892923534222686044519388262896218042713888544836063030218903355944966185696103455747286658392668024777465283166049461514409521213837041167155670912735994564109423975810970645416894813396734789818088247917123931255740137553239759600147899046387751854057586449669030898196840238217707465780598913095732181740056901319210255087334841392548773330658426039191604242429785131374242359931835983172940655474917464719128883208500117154707294730679760552309389373862602375858425801681056886639455423292767504263125331410391247713242250435290586922773976928653425911871433319655234818405221231391312505664778633476361326473287073315969760448900971126797122725364435575118359147049593480030788358819881246959163272568170390919764491785132688662442607633517054627692436083458424969665990306798419900883282154706411236052301202148441903911802993059011418090439541461996193055209886716743515579906305638162294049195971601968297975722578537641301479361492964503350122744532515092157349413967907851438562201835803994512338543233572006353835322903476616226690630414463874456030435804606006680837449621538884488643093573795825634820905415130586049889716530568452848320937214408885108874324528796249684508781047608026597017127213552040022534150721880149742957366489274196886213369781317476414840360385858423009373489634258630590001030506742409975155768395014364147199556028693058605123929975142468061664873159410944235221791681843561533476455502888100318530653858692650719888783383852741347133205784137690906632909557639889419440716370170453816963544135112686897526244601333645077184419641037329127916111120552607677206095916821514533238965701867072122717946547474717994446693154248876935868541379559875101924117165399850671489436273852401627822063668273640982631714345506547581480387284569586641290807739692567064757234778737950990376836284322187957506136497244636038838836078089795010776091793023769544862140265513664535710854553561028346290267720705559119605035902115776323540668927088878553990268328925468342849982623706429457284622539034682480776094184380399122470522493754519340287123428116748050746567391006164919842791380155277366787820970388041156783192975976678195064045464722071382229393724703972321041443654102711387521754626430480780085719682963161440124131351888039517385195950522385444739036377940893130700768005266869256793754362560719825353545868872446294689093277023396978514840101007400335859491215422802754070189642261680950945279562792740631087413660831001124725079997591649930923326707134569220693636800409128802157357492350588719519090987825507527539243213181210977989648933948026384940250390453467160872599544304833842852748769294293645756692426227001907711486880661636832660368398959118774159786279784468096367927576013107623475157455755077887268317002144941793705883370877656602214082605531292476692854225349999994663847710721523692350999161665515700166495355500327817176902944347715046712935867227127832200099073724518009602382618406044064324906029542590926250612323934343204531580077183858365230268304538660832043003112451906101431536437408838090519384203320500103598876263959909224806273243474392261344611107960316622018273725075719706154699214446461622463823843262146867645968751511362835366949083143942107207310496758335630719720180156868132967250036540017386530219027778475961079104416437761600028000062146424846294260755070630592147865023255051336101407811335445678254690074868582891706176793356953535253145314787673263730363984661561830796594900593330343860890264482037567530414045828189694746358749092562222640414287079375692545344155992926299490576839480221566763740594795830766894299165737632674527323953540442426383927842332083899553994550784439485783388436376536708743269017630425285572300902450486219117797137167352364423111238697873199600291517448467707432190975054791359900108762384630025491823741548548741541118074260955881366214535199743479273929196824451724913551319169975072185957425189914201851967128281832184308593292984408835498382264199943658381059413112968445518095632849630609761421681922096194221652233422226570192054038313351135802469059367365989049038294716859829381702437670437689052374410273045184633686934417466422172718726161489704175156153728555553380349133688683967910889000962319888198849178471297867743498891154474031636493568331315830679616229365739859424423264962438482754857539977191736245453776955253506075222801975144042894654115382143148305391022599044709881324257740863100177022268903427138020185141138569072716107705806014649616147101279582964957605150249608159723453548708124196997362845252003578317899846712995027625321416245907126625072486200777547477755226301571289279171773143200329200461097359140450550745425723684955443925597226626474795703264244845091421372881940231136717224757424965675740224832835987269838059974208825370796467398491072487478323956101568084165409028371321897084488002349310202724837417369233528310783003308025058311142062361633120720365722958547164163223463026689139219353585804946874725212879024572538694642078945992198679930204456621052655472793138745940723617285495868645688513290231814796193350261925940425825413418956510812300100001052264248579272364317795566959058344344774056363785274635233043518123396134582869419510738499172954679794203692938480752268129976559471686293822950014476497134026210965384092935400970149439804168804953472051670094419909924364886961168957958267196363489417245953227735528675261506284982656770602426188603513597846115196898187902678129790215394952197192237470070395818505208332576007201520216295841730671630827332129845971598336095564231667234115841916449415936712655312514374563221009587613329276130309205461148242713755434387837729891205800585659718982201165027193125927479507061730610534062331352196206387578989206625119107840185768409044207897599228566420123839203969152132334761892025649662975983282305527913058614699571984416201407526492160131245497131396115973506145024088687853654099960712269232236418406821016982119408438535081771833451719812878532838714115468356416835264769652069410899214267863624655753541246683273624647311414164261881316853678616138037081752416407330479650410323179292611317727914146353733727401737234167728596392104486402061529179269890719311542550355678569819001756836519241396017348634702251045624018164277137596373847401049694101336069100740478061071817924725431214228170466524793967379862065403639664868121204386534574974767373151109947935152201868084610120045496598384549331082383159478809413420753225973057735947258501715968161358305802876004113512955021546980862305369542675357043334958014750496430732591434476486261739209317571368911445346741794030602032293182213601709208033725307197005220858160930546500488205836277527155543656459362963762999826782549429280841665141556177973995445787750592581638871356447683047961339413099148780090934261466024721571732565296445995752803864854848268115778299229649046031870588207846101628165604918342911904451122438917408040846295714798237352473848228064099057123087100497221923066889223505432961288053135702061908319536094061641778212567308274355531982955289073732360501813240342542507398542379823623578577731351540881481178420049970502780151536789897823973455066601583942498046742135716532659127245467189392834589673500797511409108288972855790118929460102674965358758729275505093100590054026703480254927097686783056048280087685860214999697330677649978991662039786501903116208068869889819231513166383380243828801224475519671663725773942567071829820525906555849378445915974052021624654553593070407516264929533513404021527598900549416724551019554920698630753661134168723727999027310152291345730780229891531297196641355192683885938949984735303625951767548465592649089394931352553159172968810682316215153837616505752430517008489404218813779555408284104421731437474633087975516173244148686989563080211967164232624279466011690680249904907905655931124464093961817661678955678336911296665554122004887534877923673307234524184662774013166549110783253010726527401037389202741414272075907180778097953166788571887129638754627881720146119158696029322714104220077536898655677819971167402556422633887191492521726036655258365992184726348822993104536138232288036020472974324008914310400957758921833402086480346169059718708140172617344618512075897691449126938087401477764083685079373166667705778089628478321221205782389504886765158480240670675282736342215022230597690954738591403724540489839267273037478222641992250734926344769727475664717001237519049128984704331240021776533879801457237896917326866643952464781365024312717508176836151119841373448548378984230096417602727337107651337506323983772543755321145004963858244649400314579051520677202258960913705711459177556907543993000794452430838591125552032108392752775719144166681263705920476184862632417957260395849324791861827513949762143349590755686772210488223905799599137060957687851713325302228592983194185680365880535743945401553009530500491448432870908979838605838549083129962907513692301346085618959221704924641553402641904439378353801841914593203370546051378053625991843924588658502552945979653315321295427388943186504683519889695282572938753929240828426463720734376639842592908949525263936216315263075352645323344423530791970757538463784949067811343342318813528205311279984130943747148221960224712041284904030211752789681242795035443115543553010609174010491923047563411250757761556631944625701136490068145960644313006147225287967183642171981087798795248604727399587309034209171173585734561095098778810031133040535026585297062834319325912443958548173829451185565049472993683978446456079124861419355473045353371184528658387413206515971019669173593145861344611737864149166747885834514583679123804699180528921949896950168598464841203231473936630580882398955671715870428138368406373135572473622631858380651572291034688064890674464630701460696808820263517245070290836499382954298401596164113754587995498545294056174038299518972297311116164381579982555767952656204511342440459163011847876007039899003772426266747290873059497314290565870781301646597180602378205913147976594396108452609884948001228965599777807148141820627393526969039541894208206435679038006493510575041328666645626584537136595717006850804981067414317949660415179001383686629392545365516830460786175910440966610715069901694248774650904584575977196921849295419659188644063507828865153310381088121147863649180397679731208662525692988579241277852729823152333765348940724421199017688459919168379065169425984573100573851072331121247018300108396121254952072644521035615679151695001294104755998051965486942979925990767248311121643554168987697626346804238818571985973897400382274112641242805978852698440181333817188496053364996077607119697632741201880777608970801229091805129276048687506891565504474522018671022242848369322333526553090946273571778341973136274094982728720395310827833452347319638831080597005556346600175451234201614200638467161780767620013034181120200867057090154602717858082137224157660384893313265476819258629683485085739762001879930976066955152117898190695865148563967376418376787142532259612812518854576927395255470785304870601309269114126602898193061506463227479963116180285013962948328625234356594526710574365807031573665970189871509854943477947777021872772444330995412168087129148601847662312673500746871714379798368714393447455410952797436670542316429942963957753780941834701451736357399616208628799582304368224148449622955008679439235962367497580813357699336280597025815010208286569863151725611945991999577907420471943969310736197496408931380006311245634474999997762600463024595607978948644740589906676385250401181273708259032088868278747165996992018916380501309969423373483497856307265833365618099067067295918255961826039925359741421343434437242787195477718223972295617279273175793256827487859833670649530416368850184605761101889792204000591613842228503222959181151773582249093344933570252576393038543524086837056894761689083048699059535254206183400393481316888410599678280191612120204354094113932861608951567598020123025428014582770742300291050504267886257359874847744871502423363585043088248229459106566164798159287397641368829275500243524232651696228611176812351838523503874334614871789083238594293872452824240159769327302154657453514250141333111594166124762415056464667640418126253605967160773496770218249136406348432172570148086198225593389068628845395292120586300723546326911205916368364950340514246034426294107357690774138789175431170310997508894919384795882083217785304640078607367218799262824419788356669454448017121299518167920939321998980297472798119954539953865014326697236131944244745366314880649606100182859817209515035730529478291542580537912372737369456899561005249550252612468988334418596649157759978269034571170111616105873737324325884188385334518673202892570676163646993027276536139009288301273829930250697280653553877661100240075036238851928991718468277515192497142924666056342487011596369484568127689411705020422767678421503708592750282506134800335349538477141913077058744507457313811792853063042131246443210700214872975264076103661153182680294292211880772732068927005546432745295954897479834401823318351006371669714432012486345334162747505019486270859612473710878484516273802067955875744046039999698055926166910341450952787043389940685176474328059680283577725894790647425721116724279831793847407843888950695936335784977606497482291452324038028502410540414229725633744829752947565437388067399805461894584428794842831729317847818345429515037049638261931772119733685699661184749059677310792764247668830806117561531963938614878211941544379127043270446783750138013886326512524133706533403914904399104170978647224238366977004816415854945895520398123363628848748152943579861301403868121759898262595893926329814937421367122585703095793710758385348497140685080098260725817857156028402282443207381152041008770325432609582954827628917674277681600466555980034700363752656225622012501986107007630651172330464133445875060951025799490120635231720378221922835368944419580459828349516110751990419119616663263167853965191012687377850589963141551532190863576242067331241951611069374558352060353861111362091492430329707537598468806566849875869055246385557096329765416749117693453635701869503733944164089597866702796052681882912552116242947989713473754553969676882885199376685382249766934806903725808731197225488234513281086226021002812301311625189476470249811981320580650107462212653588943507341309860592782941733494256497805215864049435616293792713239149549369051022956017884329354921447475702594176830531651792013492920930731689189963302785854650469786927021147722233909438068256833353580082027623479082289698640617470421682941823648722891326988817700427040047997101233935682008652350040949370561129405636778062657724304072872100657594866125737488042483084222130470074399533476802094575409365177350516394693578260361785665956749364953687589070416409651650017413354796864853930540806819462406438270947216445342744488362162804274698872527430178961743007638726353603251532315749026565261341702132328906595877660267559279177877082432477434791815184421238788291948920319990073608657541667410241877930797463490540305179874347755569901285577735849795890019610685099555584560095360242530545972842269386269261038694817677312378641185119446246296534400530337483104451511572021504638475325950998298095489327018827764643600136413813957833277794247690926627244950683424749481536685653385837144527885232640867436316338132090461896709707731984956331929887514862871627536959634362119822701244877326310474990220503371848493584826034679148471998285930299824660715008580279524186749028235069610961461571587162654020500532540591906481547692492125196521253909357085900505993833740497410905057031264453111245004246050182137821439902104552921596030889542664514496848104305552226346761477380343877037871666237187539536849007738425889555798256512478379471401155341590865690364270957058141436608197669038887421306438063610865786562833026925283620766984263227775096932986415061711596614918538168471050201041712464822566173398338300292707238352045453035657185803869476074018196283791891549615337428464028163281625376431529011751641474857104271201059057375289939902639338456844524804341579917308833517582184061000699817301053126325133373026247352134994833638193330442098143860252182341902217235418169540837603135192109633884832976520201704603008681636944354178854914799959226194212205736374933400710293972805231521387444392689685285077177543991247122511138561400278503304184208428054158787616478110199277008819156405420767116309930356960492804843737632742302627035418553286094401385078702736620794893511675047430714892016659953502711384470214983777442329913480389710333323386525871368095347584509275977165712323155180531357814548130049650065121591905389205476570548887166323067172008568651001129181243104357175621073523139975119327315369117067675076247670487004430065725304013080902171247756606098542236952684393593120550704435517974623164365513881477663464633647635665126118437108918820787172418064022880114057604040321684788576876100708968743703158870495473629290299328783926454134930008283264702241017090995740899294776674196662659453088304559507376714862358439565004221239811014391612797610437986920954200932528165202896896086964214087834508313342733568998070995679911504371535753330361767864854388084299876965959486113950145749064757046888738432011411897327430477014219444508472796256313095757320928223831404521052186862219145699022895903383008842011680904522431603003438875293785409388437867106752315961991048331674461527429558109498275438987767833769176356018603964592199469347418155183478186880811537179867961939636193125044450552384418687594727087295805671410481558208496479057157596440512106570214606104083763607648934951786932111637399532052981528575492108230565672094022844018471213107155304861016238559316777051966211625114195946032058067185357512434151823520236130356101319501295258756883772332158946645512620983243046106265143450205681747715969592364774821882551436196110950030376887289643620059755573036793220110782447402640882930510999117390422152747186135481683007241633261958963209282108231358410742864660711373412414886236124000228748144909286850288606748531538812210909434108272385523177314475411296081320224166963651934277602244971689127081596387663297820726743721349619028648179279683257603822310266722017742360052279550929025713000067664590206022706983295815899557494763544452882778712147152897765702073748286766067850556967061544518284009359305590494406660697072939012165041229338955875421657475447856640474360379801378315886991235311259992998750444991479674290783045683295342433154985094212487109983294359718922565659739072067700943609570093378522636059116794591387211022037804431895673705691226162411205513619886672431865959019555268383353277252824342853596232516274619416502183529753858493084163995398205021462843708272969616064146385629386142203291570290523638755843483057691154608231276354732452502863468377695159722651522115689919209730193604880223642941712474948899411781707281273497491064889759595588482783003562441440513892193216631974333118334188450391733760496206914586265998029595818662916698109856101272859154061375829340989211273154068223007331485021444833989749433039127610244041366908079724104640833540043727571480081185932506920630113032070035014405762763543929745561517319772282958417011372082809288073195054770811727448857547329326907846621086106106656597572352665885092076719701969741938215434088738413629835152725525770836188542013573824672351826285677443295080447018790476446847457108188066925610955026154090479706427708254319564030882447925228451563597132358394050737156146427390057541540422222959837766332415476183102738260124756268769523292734377744517518184074783074827568262965133092127762070811530050941736520111201210168548484890226563919890026414220777265509337586520805464987678585897897981970508601086855306327506849471888435717363240881027177005571481028204844722076003626649036336219014793930737212573826704925223363361635347916654377920776347895925678959917144451051200297382097433502422950475588179151293190155497470252423621646189578570091019433230493360004020211705731278995958709868134746806669641467713748352632935002207121759477350885538302512813631256982722626624572028754547587209605093178265649457215277401763960076321606343383250178639070728895694744975778203254055632072420566904087081886108446935075885722868267189751923976983956088005852108516828443280788615383375572281873504444891534721354328712571704865315011919295275998804732681513901745595021813245717869697799601104121389965888531714751809722952635450977516599116223099164644958729720398790442885862176717573964008596089995911786098493756347729670409585027466121078466386363596649303191448685303122002828688500624103578530941049334103458556987111303723557410618696086456947766235309741529298134758879328268059869828164201548503189738251256010800753213286693453471437165433377412548785920018506516698890516114718201124933434741369092670734644576610890946300285345141571607241119118186610840933689654603693057727217458725513137436373579191923493438260249663520885105110487211120924367648718788671944114612588013798310681102159407646410463225162017496210125790066772549438510736513927601903500515389118073689823950515509199879227013619575772955982401416231924498885256630730287226882472990529935169682730305421399250882811259200512673265051683524283691149207648887790050575424616530718492690449500272803625306333885066208054046453773501614866535735915078141464805532095339281284198354155150482116632536746974506879994078286849911947263794364899445915735773550866713381290439449583161534393981718318358441060915863487133582096522710311139282508891195753239228145033314477932153581215535519263698062588331324096314004440542013005362115171787094700379454987369925795603262022224329092889384434820121670878984752979635933194808835060862258804726121110170400290672479999026517754651385940819852150188271510203127007449945635837090331697968781400109922895863094017136795738666080802088795203346002515929362401878962951217761144114673315212982582605741192298007744413963264638893858406490663723988195962995623292483985820430796502053174917293759395349532399198121812202124067924714818880736202787101143006278552990272051640574797925109388038580662293861477045088414528497939715692457686798427436524718600197650548466248513846590641502319704045991625439886767829985571316864567830192913710180802883532767812615787180954602297438729472135591684220200174262135483705110490732306989182007577815761123008163149069146457637388091801634706047006146461288003390142792894569732713671865292060210774098173680227485719235139974619451965371990556516012208707623802789940538206019350770824041943904846490274238246172462499976744270099237803394054160226155530405184437777114956343699660924539459090697363673309600573498463168627536655754397166782798997764104869249551426063714687617291946846526104423097914380861692378902869564976750298736507041259066617828748278859495613335128548698257445343042149300805609047074796408133908061091655005907911163073278925507265166608351012458485740637008098121806793564232681899311799272750191033948389061324033840568969705235479991651802449046458813224017061160094374595963344229405534475767770664626272849194787800759450016535257721917581161774436565139152114341731058636862104999509380760030290295218477604857801595943347596663198065993805542336121621106417733425196603356394733564635440713579651644270452972458928780008430978475437844357020875983372887518428656441894812484300546698602928069251125834670356219559968851800711221314592187643089789220852375968456985134265964778801638986377425109605931030864077585202684140749692683450965700847684667621914820680141125494381793399113560712560930030527894730189459993561750773415296365043107906747087891257929987071681800274766160250002941245489180267090094118445237873577953405185632369465071357918805957122796091261049616397407405927632920579026682663209314104092215097706051581478493097001007438552401517555150918289005679950005361594158964385814193321829994735748655487303561692167547746625152056158384242677968669610000017014727109391090829582676047341514211781762759424410842367468535240355248607039813877035345756171301844245436784815075095772614426819093303693363042014290954097992421921381063404688219224606076122136470850195284418867502761888815745245600568848934111632870884064039314073894772935636452765288946358799999152811374715639066899043155778154946031664301360419315737712572837390637790851343120895395035452622801995792702982194580793859494436527775652302967607579769126698609861429555986707540648391408638744144100187948476342690255567098969279813601096543301332565391210412066850774844767505745843859718032165665057418368559755490860632294196703786453830667753749151178593671177866880057470006767756136476563865962370205838338924002314268363549354025834925357543591424679915969658165388490409110590595269869679412841563712024739188043567232954278743888793682920658857662187769590475220573022930579665634607207195064873376320152392170733660838188399876452237115024686374355882482724996421465411021186173393617085731285590481466666331157356082157871327757542582508103794846060006400157661411131920888151170449413476701911305967934785477667224141337123748421546701532196784939336227019675071903086886342656026108954453477092234870108242122113506863326885364951850550727866678733302243138447398381450090561632411895073353258302348791050273097396566567136239515796741648964205595687218895780703275534528437712409733712314520635463183689473120695924699218637824959259870207443512041357285202263255347298309721053283519523985809783814388406791450226659656330118773199481485907559927874605359274615278963760925986285949081057784992437707419559244193497791634282081348604383466549705675730078421555211177165999702290804887167772657091494430510869536128745333133350973723247183071334521070560912853077281876885473843720061908957256920673088353630220359077976443446950953573211650154226368056068073922780400306486850407857810351920257560891678372459983600329296817837135330606775904266619252501708877737837545593664692086477705011812009525476223077012545793106130549165371877724634458234333522575318541297691790450155015980538187794013258758928873228070811826915132387765962093056925148354630096632549019889114228589751621443441957271506431558844086111032646056328725274525835191759733935486946067337613369917680498009832550828594974551734046256037901137413064344403743232282247069226122480265544100688485950157225263404718308739168096757681826222635925643768440957253653695510695006306740844954705069594196013925650764145356262910902434642195614515026387755012430138111375473674697493783592755067658007378164437029028969947686984759049228301926912508877634039928918566391159119206985164434764582909449888694623421006522691203250430746090113388004463039399969580694284380480329372856282974804265556659344591244183544527666884420723583383118403259284786330434604396967528338076707861485393072919075919003934085914926770091293856413842136572376048287847522825535856485286896103851886546566563870681985836040484639796042920140246591170735114281753818888314060722849113860212533582608537833330577912958498091169443040004872375958593051366886389559640609100663346308104824104437648729512643724010621212449886974546536499449434584821854118808276415517558661305262687842667106025666494681084732278423510935003775414863763268716946554030760362261909612716471722717308751970570329105450832697007553059290138677243477108655727949218684913571449180155821709862607646727952799386055251905962079386943640684025326320834161197531196953915779959593132109110384746363527635202819974824448815756236719960135736496496172405408079733702887859714730347666644383489586592624710563242093015551507130969705535915771543411578118960995129548648940745906732832443326540916258969147065090967019004292402856458049944591010680654128203212447122295790527962949777089688290154932512833966799099136672759870512101771251140537388790828915598687152396416686895233459667536784749831626330561433595366824916618771015135293338897255029832120190526163906669374399800565228844787384659982773746971963565698008608097368993663974302499107529524587582833642382271002421633575148542355957067876469594271463490600415086913053577574509196177924606441255096176101012952813575085395635723431510927566914503143741763616557719022658051676687804237767774112347620637705410261680520773364471289182073705764122026881524931257979213944939921285972085296147246134452252270095951729401025865166539004106227785611319779333752546245147937762030161524386090208491357160367283512812276051643348826006559350716177179545085296792570061316140773806524215104915525855175794964236424248721434339414213981330720125535395498111251575295784482720454843714207926192639514499740732299869032877987883754053653046336689948194846604125079107249099218741782237518271099084150455656301172812305557774135224013816045991398000013757622001285455468666128871321610384971135873284980249088047059553945386271879875521464878376722744666226788383296341717710391656962844342556294520376980622246105185211812517982751622579776867323719937307106380420907727698300751556176670271363946391629335925915530982523208971556412163162089963304864180928209935517306092278671350986933240116326221059944646182997183081308028522879980595216637246035462530979635838790534617948793562442181912431832176450222976367279165207562544770570647059121971866414689923814058385311817759466766698916552646450464711172318535497863198367326099843481409064182527646326450858046701636003417131648595922675860434670444074723477134753318054197395185403017422524051845114417240500457817941831870246138316889307501781649223014855045143231940002144486694919201813138588665491299143051620078691635001647533688398682485409457444249186108440073638627112665267570787055092102006254623133671578190832989662433385474162996172749770744415782228823100371504236421892575532129381678896804592266132361476791993138365273269627085729971884072076568735788992416341093265391143138852761286472350012720320879283547960409776717086561364172953992744698201270591087581087710176337238969045124588805876042467364965141774095875311492133201065237819175627836248679044726867718123044591263434607797838342663122446387242630364304706495720805265233281749269459434120277468848099863375029599820064179994850144141199192211238243540085419780497115270107684448446290793176384814367870012375133864065029845772027324503406657005487599159691279861690810811716565070646546426532255939584319672725080500627529186516593571763805486095872443801414160315827127005524881525711120984904924517708116284428130904576538498653498422262170478057527712034156215802383686324494629279580384911273211980066655082168974712762821439072254014947845947254678933416505479303127959013563747521772225796907658831034721133575769143489667891925611903457274613441568069279435017336746067620356007515596105833756664570304054080499392732180366897727744854437059569569294902764709061692570241540365952992017587607528957250755185848176845045835565897954276327343551225390107379428214501882568904893323059306072583929179066812455075980107966268918637430467884477266958419248061843666259080377164937397343195920880898076936362476050983936265968047436265648212032183257801778876943057863842468329327580911756248753693964700273341817437722362299829891115119727035938131615920362972661058228018243899729011712384962571040408638319339863230297958618943709609698655697726515813552004851170816884212567344637312030646926063384750945114369910993677123859818002928820227351657481350331004544226442655821567337859750785645620667075879465982038784554095163354619395188235301522331950048356598122168550649087155099865285584149868440510113201674749341323093813558106055560099010484999809953841736446229875846814563865567215329620300185055360549544982350693324824756358002178114303878470833012317106899871642497244098022449993322912439940630587809235315029745644230090618812149896839832142629611382359246034735870425418549729856324269032150168802897272680164293709906802225842754613321286416689237251510364932949885576122845242899956034922000301039905622084546529758817101766908181945429546295712108491543889084684409847975590626833923825196975784308931858521505319751455635971546252616488294793879936181115691724418964595171951653231540193166829195795786751947793953466135763387463344697212879352893117313675254519740573039837422720211656103193034675941205234142140920468236796052663848084737633809286216506075468068004785381704024599069997979023045287258279796365038163596556981623283901434214032597940235503390186967386415112695046723390297785717436945341711990754159303385360007436791232610611122875738055703553065097094998511352434104599828793129816368858797430375211677809078887267295853001335453053838776867900119625170039861282777880587155280263017929437664496062523894115798396563806907264430552679359999623255443375049443032222632094818781863629330282096264424658295968972731949053748045987189649423828085970323769929352677038412857225434824548579791279814017901281340376321056123903656628448380171233867901642391671816143692064995797799460765314481390446392022051088055654667551306139085296040392932542803078560776534436499635079666757007592306308262350970840000047096777457832838607125926285980678196594537336778843849986714122180557085526703785491273518062198559537205941332764000242328526649224608995286173636991237031510056305164251557921463424097530618437350063143694712113973019383029200872778395112016687892664483138621336402362696873215843357917803854327592925855683331576946474648120285206269810040676120617049912095748566207236217078105838895962541382044316911115234507065794040571966027222138829332754054546573658578224510355669301337305331564090532165650139330187552698422109899638339025095263749632915474148520551321105260585810427830983706318318389476990605419031557041366077953901628986922823190118591985965921116875011267898998254820033422354730703090599202123541650331432322580132345700290750975885662338865818015434074696756837639256281466692655105733748196552608314406734113004728024881803037539488400122874808603522522643057365692113020216876959358226235540098950715618864391561649416822090385202863221514472151614943768262698645253158181075498198859445350219243566588116578945849560221139893634966324135383830579853093087709899199023404438400282238950876794646688460359564248265752887720367794204675859632463128604692535083432020269271441890035305794224301741075002797875012256302422319667260524737507625562704819708359386048487927761391005203232617623316940025581038853676000301099762500416808617201630069801649051752682401918739017244475028798298445832597348481641793947228620716891242407454783271121369931433310774749648118499516495685978013385896686285709137739929321467860133034627336622048852137041025912416698638044660700341871009050796961306273298498322867154200362379280459135564874364512259855226515344354950242835312050399672841611266306826728757053061964517138374250010600408591897808626078235203803703627532926154335783711990724379643959593152168025423745207449224511391020608823012918132477188078411925763922813958191817125094318940967870129370968704602012174555937782261296513671358856421031558033619403745496232454765643979919514575709873211074879055152501544402837524497245625107973030203035634796463939342038139895350010735496841542993691201862560602611296947796180134054567950777663166051303515884836407448451413152371513158946550570792615462718321485102172835382273187136913155387726758859745633521905428118848690931733377845764720316469391489501974924535218879433715413815315536361279050782664173902975564591573254131675096368503455491502935027358013574633895141439978485307869507991530732824610607241224499551756049712852985507746446411157118887785070559749760736495405855507418392637845343031434524047767162201537253672268978760216317816368146287761008719941540664887744708523201196760210535619522350812810660232290904339098957408555331123473477947131008115829929405464709205872461703589484433785577614911852567978291261560149138103685719167336533892164586156130095314162011321915162669259493895002527433186007861515716898364252902404303399681633057788487499516040154389959959600062819444256059121295447066693592355260685544607802365369856464278051289552333999405648954106436643775906884955144536383602758703295982144077419702297831199820759136711818504588226366107703667091159502528275493377313035926840802602423222824027169210096720247345884411144637083272615709399763533214173925438656722676729000927328034116698334112958058920311499424786230517664661672868683062118171126546783527457204099221146631551656928034623047599702072776129389023535810797900776840985073030949483654054191895236095162803407243010206345716812676803662590802031805072559069631721458596013105450934257762930696422646260627981025384838493607226438979620451956955390997670039346415504413609718268216183098587047856134179098288211949068785687441413624010430603596199511722594596203292551923811996952008646562905238664371777762296448019933209374861634623582110387963691742298668496144009222923165259270927809791685721340156985877221904915203227692511158497148593396293460833642628570368768780539481941138320882890123639122847717024048074686980771999284721232237636819753382240115426528046982749284338955789460849735357484554333626374420829343413456707393102954480607143634024008557931938862274804388315836296799263610087999224185177380261734815914606441127324884361939672860036542384207318346372595034687286258895145844951077076209942796286715902730518929673735549612722342654188683966158015005972456932355924560004700659961478739649004113004435736637029551156460348076919210413576301079421981686914338830205967567894639441407981762132607188089442796158623619283784403543883215327327631875490666928386943667698925303371416540292018071009564537903677990080579135531542027494070711560319455992074164792885781235235893610401594729901077771798219288542386999851790133924610115016371749518186949147439710752930541979859007036037256836009277697416997840919743642630834080815610763914289841776661407357788646166602785350583925877742809890140327671429511355540354690816831011293748628236167969699375290719702398643019992022968506519652446339376690201411560532035786689708316593250922908742239682342681031071536617149722440362300709786646100190112633056053231812644436432799895012651949506734300499460537672546065861357932226892983735067032746931248301118612072274697279463643651106503925446671103487322076965150660564106587337905504066525351046332947478733108400178890029863096064317734583427484206117572756011136347409052150171983499930085369603482539627645384976368249475692660537664802950324825500146421300656488876486191709211745621055470942383083989635378839622078647528814059122731137822164505408503412793653965651869766572429341889858818671476027349179380873207846023981670162485177664277095546978630536080578613957207126390848637628139557514411680467943257268511096709582876728265917764319214373848555705479797896045953320816438553411406574536584248500039411203983174383902866702608678698275770437565542272006630124527718138850674796796502963345611256247106552978805122108154164921008854238258034977803154622140115233661399753320974345389505582395947473023079145172900196698873165094103222618161640556949462335613589273976154670349252401217509510845744631017820737651478897380222117412466039532602709994630115640568887374116833732099208505366320571131412348012847155944629739084922624287422903626365789055254989597779992669592861401755919706599914611660753847882984531396947757840700184632140520890224615050762073720828705714550828360233635344247566378426770596572099790634935759055393049255132096824242798838107666571742654658731943820457183592907642078836761815152323595055669590286965032126395631956301841074924568898075953497915423261652969537870131600257101039015059076228071274002229905076627335172675921303646141192951543167498126589765334172509854731549651980884650526674796436995303776641471263880508114172985902726595200485861953242460248583309680351313432698287560281860458518942486669788430082758868110212138661901399743440091455750238147892409338276372522681729491096783392268965476318292116142280447347761012054237958341238413703543332385759610988063136561642966252630295840984380625576919446789215100597663587269769157236740519279678579426920488156536570799296376687655657080714192804079540479675262516164335195979856799214077075463246175341141025380756336186457470486145280775333391172820595959297724885443652245692367542623972109418295609046975198917629726501685068843143984525785458843159493276330867823019439512276315698444542055774956664197016662497191233215965830503186352296282118941752474482678862654896241099629079037333417071201073795108041072306540947563280267301636452481437765351309259950320874614731562773117080834747082565996010203563276228205506944715168352625618297820273586728771361464272125544176182572190489782563988804764043835109897664413109594342776996576184897573224940112705508934903853358449148201666593381497972255423029560565458507081024428535014451083821148900003749404060643235298620682717690493381653648366976928260915595814225462681466089036124722977034561997691466777911167869436829228774999065965908814418305840444698079893699314986349034008848006810430933589350552206059089946381750621410163489747355250239942164441682763461430757171939636887467339412574514120046641919384583561356993623329398088712621816242161817783512280979447442338921695483599169598059371385805704996002635529983163867721512353719854184179798152473876848209163757168558294722101547655753170335767278883335099643385023524145760613854487963154333403952036393337488597764077353806949362011564319353504941032821884756131444151081820593520303796590560532604269398204126908017283044843637836728722233101909671945460415725651775116756371481092519953927181796953516691187345642130166542901029180135175300997274181609883167471709027830186664628561829379315168799080317577046880096792900523181996302793171154728717075209671309786344453944470373756662031997622230115007319266497033234702479395075747582251794050211478898714019489768306513995910669758767097615560134787427333132289649195390558278947130857482796778239605127737660182637962719999614763982223103051397585671635051671330704757765634641487180405904909402047868571203732509287570967299447979933424953353854542942814468531607558447644267131138457390998204699681767367666078715376420766687123163974222623188804333464117845636615269472253029354805913035775032860100835406975181385081250139062513043563743452837566141959679384916853652016162204596800105948896794610162148186826162336860332777809995988788712770183937636173647671676334753084687249497700527890805018716810279551132336243203013626584318460093319975320784628446509017289262716872212974153840611939703308780115550403269083962727477443406976472876814083077379672165721276885859264785809581728337942685958365584313438412665026484694435782646898887387853208200417635410536773245899996667113620948648262660967683783119746463018148329031136813565759681400256257237698290695733093863165525132185761164176408956902892941019405047978357154584486948688170451337836429972248582314556185811328319029385298800418429400633755445538144792860972458188931996578840405894412493402962008612840709101189333399503067143443454190704696298909742954179974714891803461689146808368963992744052526844827459070340846028355091101267412307208434709812865211398393051547653882385647979384629826046274482983663072273573520525762356110109605367614481026962160949689388770987813657649077061435984366938584939766431013412555386127529656158959657581790254351131529762557583463925871958253633135491827873423208267883690657745805128579354012634230652796477813775343502133867965234728912706790046825851925926538417114037779510328932785542698038256528656245496249161484891092081516805743018565258380410378999246980393619673441357394333037413092781496107058523396021657320578834095942992333661989582885295200672293738155325027101377896002581773172839083879919981423674390147471734707217870686030307241869571722239041745079760437536619600148499643359968478617904819114421201765864877011552710658449953258278731713088440208255337090275477938183455382054831106346483658625537930087501617583754144507144185717354613248602686987698480754667357832447837924131559738686129521977698086206618799154128485839581630057907547753600423225501422619220396524405074812621368764210815151319624882733114115561769680701620916276494806745453207173841693189738327379650422168273622170985156366833844522521454741738386896678996438837468932493028800576246811245975037515927713984271424264648327084861945209971434406750382908834752027179220356001209985320928703407551700864087163935909195622223855773378672856679942920814897276024106973964968120474641078026570370937038247167190618889967018402405612267010589337040807421987606996451052233164933293099961072481915634484094663326739756001789976938118873747885022680260027077009986358289877234666394891395975741275548466487399176570319441693134743163160470009165705214526467120336216304122080660308748741752290787977456359956351956228687309668613289083400405903236138919482182725286260956314339834036575653878046981667307126548914476768238838018054985777174825663484021582896947138213317994159243295035274465963142816470033346301051935535236237716162809735425393536350289388801488106616728549682243473032289271050876317355337644595117807749420682448477032541206407072684227100340298319940334629624966781863944812567290071266049488055318540416425404427260099177309805829981834285076179569804978221143765064662892666006562593786749506244412638190874456615570899013123238613841197516342883847745778732180335381325469535496350328684052892010683911699579680402658897489580502794990416788127599096013353623416556906600973998794409773804436741961186180653774577885425611584459933630860392671783828753979684645521965104609123186862120020537391360623956998512985574651151213809702454417271949919239369799845748094548314143009569905373179877125704573180514874658171659896811580675641574912932968368160775556158230105413113545077216220666865030649027715250560818234259646336362830840117246110863026172310558286146870599854437321229860549944153204352830355125011398221308679940889942228119829351490770749592321750319206391424590443584291136399675496240576613130763637694446729016036143472021318481131561529259237083216664583898087914881348381524165481187594387838038138963146614030287233658182989884235010898019700429950042731131958836081408614201638625204788263919013960433326945816403780960224715622697401321275195412451158142401622589837797358115487953609986422822121294763790543300802889622127370154955550548542400756815156292595698283407644259491998894739030156615316286883509187555800338653390714340946785650470140444725296561329959420814218705202683732786449584267346470179303943016832113842526168497333336727474887652882296563028806556623329167313492796616335440941988049356251890604574609571314997617765617536043812810119503978235716338935122696414409118955804913353466967959250862401289610063125371325214090381949666525117026468929508689547028401275016210179411955744780843414140537615953345245500562677174042901327655413047782460085609322552480576897500519535648342421091889933038345763805145285967038595876450892689331129938179653560000226670408447599270985123543977840580737646760356027829232026861215964513113798490675379454969651278264585673248711538711037327090489096547332951270378306567957371584265115479419889713813691329460238194304934491012798682987183939091936843621108245306330957743955460543836461950369519502892200591726310427515079998729430935806116630282294456696607623347790601366279596971636278568940010867884412740852898795367278276840422491414394228800900493077090188713193483432711133021682571118397799735438863420953739256571400341468819151805179655262745184610377401438808901319763578379284111716861734099566624682738660882541849200678231900010255573286724548319900957182822282337334012804677697373902599708037557076741298948539485290577365073362481244028050209552793084836329753904287310311268234078135394789207263030309855927363041013262929612362104096648400855668928503375853811403833069229105185537997709502347782364486576357812856457099140503383141841942829869910971192561653370473444636109168127450024799343991885313763660895331467428827046933215672666620281028789110145626833734454432972114493961127631123537719798636596765318945527058015334734073032103439267798082059132496992495364555164567542828098660031231896565177613554028443750401300763547824986684640540746161515842367238009683515178827896515063808429930440062641942903791390675903165478155757703471711385867192477450040966179069426821444327777173347933388708485886885303875831045794286639800073692983449460970018052992671173682582709182439263073054155166275047385007215000741992183747855082655362388609053293366925854439663498915003152921984150696357798481545005798744698444639002458354971421856622224309536253674534270596670586712581823647871409135959736468270346280600284734162188926698741009939340442510820342000117707172536365754185724416916471100376873427684921697395527220379424270571634010195365763675703210445601857558357297306375211457763348734746228167704212496945120551947656240867852791903948951908523102469525260650447082884903182892850288398169824282282007281871607674459861222206806552143122663178599420055600132090955266910386743343678079293366389333641407911251493437798411389340372128171868037501866069861784576228728494304643054861981931733782738617181338212990805041459483287277757264564253949975479936426795259779699521497121985929945906762396721797618375611029482528195037441121958838161118544660122874153782920399791824601155668969138085755362425811410159511436304679288322922829810359864632617717521140995230782820398380880267984889816200905888177535240576461850939814062829343747921290169996476179787145293249782393244599851527741572682891125034415807524678836462752555287866817111216976142499169683628054894349312568621446635819899423013402999338503301868246583827960562671486504208957351217453645344685571867474616195928191233809475858111867864630861747676559477243088953869457265543929461993329672201699605880644690721181228443532077439926754236815310981582411948208641212398672089609749469132469818059511846084812048272830018936163086485375217749998131455666297535124291892520524609960155801828417893516013675742622449334231177361300757954502946680595387312496305567746526989727268790667499151685954602036726657509541280787600002270144304835259913211754950976839295436528789529999002845306662529812958198743981585964890436809734025399717108316040840514534988523545038937149892018255318960438060797316838400781991746756367081734247888190731089758172879373869737482424768363585997264518647581494227387077155035284444035504430441742443448937054436797488661478839387821241779529474318089462918099639009125795940276537033731723444294443437317099657119058612653680439717994820173815245314474648032790311766788556391300597944760916899180194075233043072555207140128044795216189059455158267811848843045422561227870977228995740974396346881059665334834672472065255464151628988498311528830373283855089641127939553273592501441020559803346142432655587489392317293958112383789602890344970762479933736769517543903398250669522693758736347939579544914585857615251881393736216206762154421285192922746363874335461428175398167221399857398258190830673523504378346873885967174483295472788686839511639816622893529982936414626346201703940394472802176633538347579282509736159140915891911141279627182394911754918209248709619461888161886341219729107732807622078036810721105973078003276552201127874885375076533145861962097822122313497268619384788213755196958565596758012658282433560279321455664500508328953683964321526098919844991265900752536835600255763482623721283403014314651064452151925708685406459359633241706073137350712232544015864696527818839405869839034083178893981388388668906709311982446531916152120644612354368864287926590301580529400911526452505486680966182324184197542263723344035366291933411936448367605189927471222507526019575106605855987589809767906667799879577833193907244469224370151245350461540686454315576260264149130936432440000340618118382530535122425983001857358767941190277124221835242276512358782239462492170003376985107459910825161567130260245944390718989615708424525921239535682271533995934475952662897362604254308463241096788878140010901494654832856620827511477339850925894255429486544621253497870467327189033891677218309319407665895224409522638699849836288786099553505404858719168645132371144859424539086371052203086366540946455992983141020460976620046275273454756920469186682871271398109112610681252210259097149538824322912232617974334965195979592133909721879175138199967993004826190344589907090531996117762909103797014279124411743886314340497206222886140143621006575007235187645211357537501653863180125659002578714962729542722191242965631491480923530816715943097399078874987331532886560645309865138464198404701403901100656901781453264087517794488965461012811123378775564342688844055605173680942055459034200760383988075334446381960412917049260959384926742796071851450296119431829036724111519047698576675389983853220453631093095460843631609604360890061031887728286184298518866391987310052223082459128965999632844448808395101509259133819424537849014959001606354179968234558613192212765496303411349116424299486401014648771217454184101906219963388050898823141489694850104479049263695742103001294519004552383856738386383195647659327075687496693055112205467442628387723185792521224839582451924949895834842304280824793934276392764352821743684415389522402639819359731892965135522076441995751734529194174443937619357645163669619324871709752136429041815994988080024561055689447978661705014468515099471012430929801812294980656131891951169845374795583581118343722623051391987846360504691152597873093881056050685761971950591334378689658389760704897147544128993513808750298632084346232371234481638018215213195724860370662588474856306068084143897209742360927412258910747761043774682508800288935349482055584067368130048789726367660694679772999999623860998014524689151628122561429644424785075027715300241404259964998933491357437989734447451171679970743771494318368147431807395578175549794401292934653829132350192813711534302320832226885364855661784597248705090294168424931533809358733835173337196731883075918345440997833782389183640455329100142936445720759350253074068350126179057367394189761242418268435610514356946789632964746869935611810872678226923448424031721357370486768912700590664716312072750265477156432934343147657548614079997541121200798374361941701018202515063273650003329269205381615292189918614827011446015572570950521265269742381886198260630193640049428833109397153231991393202991546682886594513991649256921788197763599974105240432047016530934878707072757450813713804518108018263221579848949593505896512745084352659186864371101787437137802988892883800105906862663640018777856822396559307944667011752520722529049219077386206665767403943918253282545681999863882844670957969526798518470523352055142070958639463442772482010894222963824118392572532708212538643163019718828027301730901615888538963146916957212166318933341799867361523676939052075216162949540983002611339857957687667562346660408330042519370096943551380982783438573165061941048028567118383825465781473079669897097419832145951293431256327343873283620378263021336807567511503919654642061953320829617390194921380827751039444235047282352588044885271723423173423919569738600566731660536966473266881332936048209834604195504010593533886660873113265357897309570317384764319324207503566973346282919061942114235594539647998803724518966700977577462933423885278379637986143871204711244269766566372137377739502932854188156212848186208925123425698372932188364543108205441085415683251368736100541402608425976769379794286265597734267253959783733071134428214488366334972361065185327526477073877017637769435862525864378228867635806208356671125801998050819123330991871857792153959684825210938863290752865966050905889792535523175933727070735115722719793586755181134864185373011100145593285853342324635570020955156220011666601766904444000331938785688382473358769319572166558023982722132691958390483347137718972031011174592832585569937722710309590532768911259833092363171602458559181537905021647041944015439015479287900592854823203151951126993937751597181503535131665326212684351042514401581531592534960784422267466724324904232876859312700802528146447526467860409885866662038252512333148133746067279080433694990756519120246816150029270866585096089861841686545052852929075305380809475588903906602117452018469317027035972246951593573958530098002078689423863426507239813281132987377095965312697105136239827076184405396419162717108078363541693299681418388664977327860567457344078514824110450670348456510769168876278849443704793973043652885058601357207131759689238865196400273983511466725643350024230519502334298645843745487807618686249839491937685752041724693687995122580292867881380260074238386979367579691495845695495813821579077556987749791987991698674558879019658502503821581953182562040949303279977166921065599604338915537906453172392267375069189214144339087980622988566901232514288623038843471588615170773930166858378589835793566312103469745405955865569794505981645544353184691358855101789824326098723445253175674231433039720753535344748061478914619593070076449635937780113605044412812072148523042843547394367820193600023203357108199763906788255050384370734803057447328441822415804432438506958647276793687933872233516418857837162447949896101012315977658234835891426289510139709062299879558060817393679529921044870943533120788836293311484296583061816489655222081288126377917589544385729776021858360127773689675323635606721574315146759029431696639846852376787124474436334589303217046422113205425370876260950466524683274443953755498356015103506428174607325579143915231615044567799675042532340431673615877054892565140371060154454310658914532385931890636044952828704488077837593361376159602180746226394888731918110935792268208308199390335122567392206975789298193702873102518333098024349626462605107036091654706338465820606959121590237862294199006112891648394163720490257575646310595553940067490915956263039235952395791797803222181993782201954729188920457409435582145564938031197972414574791141287720623644308887477201033477823509778019683312724681052137359315194623308465659620918623277663418326884700113871824088654498655033775010997575959331996984884386424553250724634626897591003098988749948648460312601913517043416803288824606008738572954957817135908440719894767226384719123830687639408318613335117542516816473784083823505292468542399712199845770713525451726379388954273217653637579046565593008779644525127437009581709145154804589867935707874500174232858432753757761746900257876759338627812872667450075499081168844341609110085953635208189252791521161919446864938259622872441245674490333128803285633851390502314236651937330287232318887994281497457123394416810646275752317017957269219690471305945053116408943520059492445430179941701937576420410822118637657846504921665991849883961131417752030863063685713810663335487028340389047674075455633394680566060050161209249984456406204341302904098523640651287457586145366384233936624909097229303230561361241928203644682159043480474349377820960389976923193564423756500884914966597102776227267042418973700272279532074227129634933883802718074968092324267253014048024976074812293232036403012408834964590149844364050792062352890991606352468520592991393857299753308806780803134965093774312388038235773661135554334102919291199698181671768933104806984460315825706101815612818782655968263523245619046640837596406702194022195820867582172656493099591210259421437283802772556603167966273610642752690038188492668256370022904818781975778800159944829013998691711450770598660394888168006520379098739129621362233289194752983667276083106952367035196380537200732201574628247768404100045386099275921662791898303110915826356447974637167545075936171154930914133777158534953782972886607007592187466448480328253837973108576609863878466607843678755698874933101434344544023808571745082027352384792830674439532922683793413492458277597790727242556852893690843867314072381532137490982878112722382315419914614321586873481669713196590472416934853021009559529230227602508916582113640246386436604721938973265384335516605077263003156813550258850013181568161824879743240452249847454827881212876327054388919712821707718156689573475690420962541302733206468419578267377037269887622783107309836354101903243381826083274350851601566040894921986463156907757096741031801339096739939792863464639922268805101601884073996453562559425485582738309470814638403185108743443551861942619881928769330128047067361867894397880710064427358212938268761476660545845537211825734214666591887615776611321342386346081734577970539572276800819416027790699630137070890141356131058730559474004669642399510867125463697612921680407721369356921198487192107878238884592406362035323627892601509250056584119477319258503099648036017606260872225406468683596311198014607446598862025849635340021223315502381370773182942942319899525302943775648725750031954542083008918072293341449730655459621334656388208145789509764603010102304738051135842450357168732523800970034833870851829993620081825966356229861624522148784110820647950131728495975143734551623895942725574703606537111986409880295012785862275978898328845940464920838977793568734969795161933133809539431070165684031739304578639892723755265332511400653746637010582498994494705957320297396310597051081321036456880128057932372241906657160770691345305259785041478416915328658807472193401711145815749146214711934300681344874027294275779893240137372677352868156960188399717097657058734922944312619400116350771922942171149247155885923024574083222367085780870085382449753405545657503925647539995911167636819379137853188003480589043126480268271862647865557095549856845559159684204565673069480864982271986117012412921500507955053115037104138841025844115418112725760905065629118475808097920117980857029431955960490183030359386218061946471731372803578618246556770705609148796355766652936295449188333825435827342140293336054382898212403320795672880122328814320105935246294499889178524997751299422557083191439699516152106536261226807227476355413021480364720258026125049457412957810273553675723682585155832734559595224862836157344394217916251444329310707896964371434434384235240254189967020106688531589129951732639834673173127358760029345480775356466397008451258981285610403324918791430767268797158722638128485019399716377993802652139747321955472841191497558059079053953177294330581175905533351829972088060629575650226332699694769906496555586763247181295246824125534306234878631750133215568014612652525274883035487784876776189869403786279179841897345363035748998378119099975378020458665284329394873994586267464190140521716553374742369116798523303622861684459086381168085305789795066427628385556840162777916644723594008690780819738433938203490782288280328821289372498368420739653201932940683943403058182398214865175500479616985407898521864432642283696734088333755223244200956231500072491334246493717337622211533286007760169494326830367469453148902564440187264229154037157344076681147247249588373938949176794497006352687589201330501855836758571066064672995807396603714998150666931056299509786310353577599224122924430063771684103221349510796949920762674518435480567163658260711485001076464300332555826807288825815712056048748491302522206529551078648009149307135039331218240097332104300709019746780266637947334096124903546602444087364095122402174277257337744751212116597432203103531253479678819608782267213446711698707254046849469080548246023741381186650117401706361864490421886977721157353957298964389660756506626040808513065502251848071904306480413881362945360423874453990274955376433883618701304121798460737461816477216815961442422597629557402071391725733076405328676170249261212689318663818441803322873778619649493000232293612741389476131207201659884465143200938242976314403279347583798046574467171183486112893408925027369056945967391298219445918965526975294891119990183351334977951376098602311086280097419594465379674585162341676377841081018925983618953874206471172193425584078704365268478611487240953502532702383805919954444383023935010803325587581658461202991066873388750824974936661361625255443653018354507655774656724475146695307639553206150875374997382822616933648931481494796309066371947403146723504939606898815785694825514133138331470683358876661553206498896921940746096791018299808624778350151756583744916601509653340521842145146449993147203937940784212525740102755747827238368477578836027331872460039863919903129940202480121723238517777190271103032026202802963733062724032390028063857744875796240499541341867630727397272640988881574371418705776097733937970915582117525592460714776480800687650132133828386368119068323953345015073167673258833402340910800101589677115670458401281850744171639220855890004653884540077499790681115271173034898331804739552062465383947964461398460878610471940410925752544136913762690331570097674323664318869025581679897926760841814876088092761628228172333612150312990206730683081612024177116094247548794488025422765888330945077676986473332889948465699792693173463346287555768780780385886812743572185810549168003972659112562830492483004088279960354239351285680358425890222933410247022860227227141036865248879050788094940068996981386373298768032851002179137266882065824175631996557489123858166272519945882839414596008234305828725770763073167691503178875304922462783605284950181989296608200908222568501195573002536556219329352443197058753657939401678200889143240074094590702631062440063372956001127377578949370451013991587058532713671451103951735183846033140026715260014515924733040457400840740350184520919870738255015797342648084633450810816986774333312947600643729585302395725868647430442414184473215215838949739410760877087676123963306590096245129242183167049307320501392735028612171904556170404552941109420075733558400262447304399589613019202629033622255280687308520289624405669782560792909290934095174277863387550010720276239725029140280905107238871408912181335159749923936111952503771343841300757732742195583235874997922812186780625448426689695698843222589874433399915264281187421459376844840386790408600928966410788984414433644502974601383609952074302726252017632962612334569311214459939866902843280481627699964498257970065390859519498239016326424574869389408003039331706130512647174575840588523425395747213859918378239118777945463290181201201178392059757469577054480036266941067583446586670239204854239523169922560483309725056743582439414107487105179578366212923391425680396126206632373308579675330334446542794042219372370968034739999224623331782899080762296376473930668677937517191329959881164338317868888580051226085572349147893465310596116742802963232262072102265229230216037268240112730261443284991395266117974570813627226664450442154041952817103984020890385433161334009608131360227145930211593311177694254480101526773006673817738464336890175072305583353507804331237537676187660083169491982802034067913171675864931535788276779770761853702004477733062074205330733538039131800720265124737427384130449254740234697158880500608229642981024360450827067359750602694962613238894976135347920430827004577172711411534349560979583750685539591768913477745749250353038780404861574906977327536574457254966163933257198940891073525385337127847888720877900790570893617809071182937827768129884734086648365045293731755325632074069173616242435324709168742776574716820196940043403645009075538349083058375477858876700339126388078709049249446711074026894529941652547825818393853562319360647716788773289457509035762242666862323101919250067538579297085501965031362737187253781050485288691531513755865706916409020571742773640163806752106099847655729379658571178049881422959260245467071059210861464076872378814698747895208963717360844234458757202582182980619228248555612242743961698779061166493648450699862774057440469648887458386070682456979159061923548502085558652458384154904818657912321461443769491071623347772729549930778366250533931855069165127348112637775734334457590260090141093167751682610407862904529461671313012313109397405279211869511993867011449276042959175814642023187471550269172947810021793851200568209817538640683196887437463900994829408209245061660781367643618535694550457195964324006999914784705281731617817197809004046947136709255497893236360417348859087013778721310305338459605874182926144882521619541412682618370890923546136434963445541305482663289521667158423096426634345873669998339240995508978429405711349612098117752943162978179219753079687983680921736882964641403536503386792356401444024253999781148297953560968263135022073706065791238000805443318279852689458407495263130577328046019439268185578876355769104716732297563659229800531699429722420660889155735582807398153746748640270868533171835660843700886948636912111721151585381080818908282354310247675799503555386503032772840554899513865283664112493915897408364331635945646691264423768211373100783826135993754019117404268739567348398466718522655554503867197076824717347102629917716403989921203727032521424359843779259565945606404184756681073535851364826570350976889832927298172164497520418416472152586279575165074931361806288211566967959074073920624873584977661659565271598011284435167168732961106284251637334972803132717556111032544508499418246565819540211310420402870642330863970856075183778227445871139079941265441882881154891504464389320405129733716502816309833499563763512499331518608803630809024209165483475857048832999579251723274247535920403832663825015753537205522572533269307124932435133218776096042187081352956489401375096707658548368863125738216818485324337171308825060563950013924971354769384920592179054454236583750420613677249847598528085896625455717576113154125738012573157454498901821809095686059799274531015706767267271268854385891238414463179525720702325186187109741412732459551561956772028485209610280834492796021273017938020255797654024501607614154208114432412002992940007233012054190425964407514282572310996675214918537958369706696853053120226497838210294070579179076235118001595430888564934521994804164071996953175018010170771325870938348986983999930393601689109997869120225376345953101412259029552519246087275999269711715923685436038472229001437093547944404044929855573352524674021449369366026025556642713868140741600079239151988773202075403059789244086517913216286756651817611017435840481497594171733371988025455753290997000811066428552832061242876812217068077422180073686707371226488600450759007245964173023691169578013201052751541405353998853250044608226291808452169027042947295335167135206666631453385253171535278354075551205873066751428567139800154856638261738066464830784070343651590613748526241646694909401447069483515169547773311343327978825861085802648820102184962266997824118122771352023248522730596390000325190570153028424019717168249341505116588279401700128118079319644107143090192067002369929571558483105619928545436996840438554576775828863034386845313900896456108834596543720752486038457430241156317793745702136368770143378388310965136093980825494542266296471283684467440518504349678111602977718854158781587245371724081869831230906631342980002679506780805789733709428875081770549744044218364675871764321412408938728757401964744453860385868713007081518537647026760280622012058180661730673693610764211297551033241344612081856020007778501538917949354467096297301718641376778098407204915774705798816224183402865870034564512120663870191541414655615123749317348876434406376776593784146801501366100389916320361894345871015412066598108484068833271058559987842038499084852102499685582987181991491919523368249194602796791996115508879262621412972486995859441864125659866718685295901422619979021176389887711699387848189528496541598554402668632195977778516006969589932263908522637711078587691099531947099117545459130358324774643299257893144152193393606036530608341313226974955613702176041850243862947270531812103503443489087494355751412457030097544862324295092111754355959185008753252801124470780519853232327538909592076900050209811097351160434669302082796297709809226672071260822908541254583085254811190156493835040245547273878760813432547468430763425691625564224279445029687786401032226520604613073572325571948517455692475683418134445888443779261943824499340600284596258628713740666809043678851127321653288545798269096649485947991198082912821179923452482766860656988978114350040394786739169569451321886840705556785314753932695003989462219853436159263826203305381347655266186709367574673574973575301661278159247260709796170445498352520148385176726177723984508273885637219792017562849801321174429252656880226110365957309325218855504460647374364074566988975995514005220236825612165793671886591963539401854578320043746821390998209145351234562569131103055538406555582703222150511266068919614396048304243058407173455623451921395540563499012054758802002727892464205360772201192335003984351927372012808873735232309164557010888379284127640760623840004907543589986679126877013408191429559849649083608163612546716100244056547280588314012557026774190168528305725355321016945944941595861801942697161571772594274752600949587816086107602514177740259710883336374008290442270243491832092808394744794596843710753425255110751381871972982857803372998494470492873117446411963095869241977199503160278994370440906343266775650748053393393291787246321091074610631108223082807330056847883422971935143463376047858697455316391397434551005766904906178594211106633796332955620036716231952368830491460037215282230330710139951640888504306150210832554658765883629026272022593809548317775937133564394182967788841436678286300169078116023905770290232285743124046170645653297486787107757587000029399502249457077317250700598787803930865221561108422904628853884639972409112958926835460861467930177404696542976835776696604698080447750882371004002619824107436844027530296390466950912311743849447049855625192984201175909701587223125474144527434555290315300949585639128400939994320422557180481730252664296047086123111420078014915683198338848738957551943887567645348753356986845774115426259502700322301125226413109288222646522352000629109572243245894771069671761887179855744781758423384390618457369603927013260363245597536737118004370495007310190630425813064908741585616085728385156254297319673325528586410906212047371816694461557612012884884106701584003124458039839800123436193812878127302236939042917665754922803036283204139665989955300287307478604853500373555666477076964708858923848896501011421319493385210026861192486237738829201864658707759214794516263369387682016469239135376956282530343710012950835977386446688237830293374574287961804217082354398299017339913886066943230955112784835959717162435617794136451088240440728564537923586317171195912917168902995620537157760734335113646356760768946441052729079355855982378059135037258595085471582752641677145832216710811793163165826463311149321755961266029902511772435238997016295059770205129880436324336377275483813500180964096965917485060193647336846133677926594289630919728670157574693254675752548046097424857313013454769433938894283104846363632423537923911197732251300307668382055970317025281146368768010002213645243906362671607914146021785417230011335264600766140655920951171813362120533511621904357360801495086531866786620099924853969287723656805502536061523398313384135861293641175475126925494078064800228036909880332276590290828487174494725488330845521627407700670091873503572574989953199605376513850700144880289537702372399145374888506873505699915169102153764903890466491110938643333605790564915825170731848715499166518960552564922370772475311608092731473070030526075467391717072268243669811335453570242881849926864240169269733326384547895464244351498905425579584901848535817282670203542370907057136689643375873625205696067388698994447791092722955463143549937424974092910703538050451381209185382764259626194041751393196152303850570181600084112293195407350068947486458188920794741047544988700149712108131141244243906391446347789562863230204638387509504756195173302634596443687349747118609051227099526092617026790550085354687245595716960324266104832680397455192782071355705733006594230545488452389691722949513664449843174210076211587606193624151348649026654599077329257175291061002672444611967934545460077604746914785999820453754770404264920445231820494174744727149011564728001016361510046652663104845784192483173522302071181614873341873783447290414074411289625936668121940701517207621962656421620036653643377440130482716140061825895050377103474342036597798909505054605243838840808299024192235768865999929166479581028752220742154578960374780163995806867831257409900620804164024575543090893243463979384629493542958635510090100368987332192347868837858291112526451984021100925393801529421437597205186501516958033888163877058733902228868403959199743425709088602850105091944163766631105632181059359089896678050276856622951147337449604696024117574427408218972584889255262689129549709906984937392602632228578628152251784525442206092805433875563999394770849330123192650668104910233564285597941460438325589808728822595604433135497622051930856481975902330345449762629276744011310313732064980281602005673807634361989799016843285127053279239245936447228821250650615709389360725348105129893320926440525486053197334751786927460882345572985830926900641466847347720994661984058915762235203296236234165172767172361927434569425354273743701210750445301531095338367828894985124191042375329217752322962432149216204190992838525919884119611501234347313586617253278735427132293420108788581107148417762209435474862883234200467204613120662346140700103180058068411464299272485212302187601630640250941264042471484524310640565049544642039806167088698161731456967043342762225496086656042680935703256789073347442557128393728005594147860725769227739974853090911532686841122889762345391516240707473987131704535484557017453678690575432515334514696041517035379471229966803052339316850160376837528910405811144677138548458398821965023971212896992089049594945177905788743008411837037032165898165842211540001902554832135639321251649200446598539921511897073354987976545187726729355120140169533137944767230191198716025285167166711424710137208402923684553788135718190733512440251451614693030655359266294106668872191975649017568449801033191714501602654391355764353514802507751200597056148632580471158305433376890968511353060706634667516236682559256287803117891039716125006228768234322157613958677693725246642964905898045321418394622850866079350927920516266006798038689652471231296644463710697822976838084733775421339772944920956537778517170109006977155845058654786494425671968211030114128411742281138827139878338890497793594905137299308532849657889157617084515678213960575867471335398664126500132629667704140167379515422110548444326385113276227909407326061164863932566014156351905907352895558223257393037833405612891151243576304534695361301062053305294149306464566116433770495575217947511557718191823635490393423118514515312127975091441972543132935301364247485341855344062818466446839104004642799454140221649063003949770272231300865730076456991524523293862535873701130995127946005390015170771169425277141321466877868681502795157497692929048882729521813699638185296652860923141638339908792258275897984011748159963786717767023887275852925949472198404472391065304972212833569187379398832519774184430420134138691845024236637010913413289397837216650588241363715458163673926621406859988542038258391407981267553000955260021910621528882063838577710072814123240543993757941141877923720071686892098998366597631711740668416826138222273105255026728514267246376064438662127856001177456775149258944207925416217897793692876280553268927621990811275206336367357247142529977249424834438200525507913758159991872737864340826905762743851006630434915624781123450227549974131466080050344463733478761329911553715205580891465602258315801865576703801939299328824655645954863571485007001080001953579184474756587233956913222492108280035989033345155122636908914088586106076886686183452872661329444805574909496657487831935728968614568383400727660288596871784583836085489294004351070178374557382496274770596554570279332033010559872627821705215300534954172874695581970205668073230744149825669217557826893301333362190808792488193494283885569183395067424098198386257899260425874693637767095114569889245261717972078505053913176759357438931495496146114068426575397626217688676621395024587466737039682152840719349162813531502219947551361945763853281066812945366440682551884136031052074350651457037755056180973947970380699166719841260329502132502886614131402574572969065251920766314982118807424745685906850863124304166189914701285638400496090654792704315249264130020640451187460298941452926037895114746879759287714130656111132127141305709433645900171445829933785331289530777833958579746643348348649548039620012900163093733559683868864138692532801161301263015458469933907303171710128055639918792444316280146390038919739299129736130359409231133118952626003354846653250087272198975249132806029893960545464363660376708000159943018984428420044391796336098874019782894619199307952964926166490006253768234434414495886209202111478124881420692064391995156021409636666116515812431133100265573736841621066227077710070950818284014285986430150717304153487840142568801071475644106117354205856680411465143412051510053011422591878922118374719805620757726002673375468163660201716629878132088223341035975843231369178194042784259280090200886142040326177487768450134283765638078470803672931628472808774948160321765084874498133288369768725199232409504728060636061852271243412104242088920970148496328925725064397608203389330505019462062808280480019414807852524761954890675044884952506730954623588563176991623048396108960975949093315615742360728776056131554748770197416717649299326056259056599626182537737509281048501719934807715342602413285669670626928630765843573458278764662900958908142334662463600843479757181464498208417546855964582516316927538989648298474076760460129788788261573239615052534638215348832138036347500442406188385435436466496971850319459239001649894433694381538240718702316323661255931478159077835420755837619516218973911915289035367719467809627540230321228338161534187321640696661544628415079122155535747909476444161874211116899013997223144807252376406161804629110712353359422371288904908166165010113074898962391789005894622526340673503162214269557766270945651656976517968971521403680318587798157554337111143145742750904914459936244817169401548057054733973275952104225887996896985271201077218305025330394612577996182351493028925447469061936823590812433761018812366644868896566120331060101422807045501983662979706480816156869476877464127163448972589991289689961914262632558931846480259002042365600876260340024431543858358713670662526509232822212289540495405755933882548576811500197309976132365517018270568653645998405890100743915560643739194477848692536502935349846012752262917560917726032252560355470385964241163037856645935568584965674013421210640096546757315636103824564410562077225303449715036685677753618811717212638560728661983716998563544718374347268772031723143808397905356428437798667462530434847871744983738374783684171018366538538735835575671106860533627774435867190512862525144712273929932108320355090388841878088313653350633291421556790264713354260785917969023337047344477859858075597522237976035109986037755224084715956497699211014374800948155838778741152633222512884160400286539405715355229706145791081801983078964828043012039446110977012478046761763239080910106966033362542504286049683944725353615403857046294516287320545421934509328302455986483704789435984253449291199378764564391685391032949930448530193508978696971596163514399640954105360495249155566807297990185794083863075199087351821465411192031645463358059224801688218983286036414096694605579615017045022789787593430995488124285968910726585340009394302152403558952557608513622467610662344932147514896761602797574308824957166048704565141596988108722595588424109967009846072860342488112449273018068749346167972628833607222713827638209428944292325082439074441184169119381139822050304563226237084681961580387068829447340726666341179731051190582291546310961267003950105597784404239547082737166508923540226329156459024449404105488737788846950607343243846914827162966973562591220637731909256554888807370748113189008902469261620085507692101867833300401403852009592689181216108122326726452816157890830484397489684936791904050639591943687638863440864793218056111899208864446592585604963568126996797053434392239275892951404656957659708456350760632290971741347303121822945019821962057481349170431486134951260858654024755375890527042265554690659013263353288356077378130908372014129288543673431263477032297599565285697583300276607123228139780180897489270050092505920550064898435993962054934720250971480073357757356884668999655321673256353002597429764696776519598839852369811106479875161127126826724663996548745293685061175039087895858852697246362951004395334874004155978276720073927153749823949982962871296563982232746154909581730975229876209142043141237221598992330259809647014281302106453031717241032588998071997394602478963238924431495905925005256027862769015546188948427333872070983673288824518880468700971019170813012398887419552151679858235702616589065004304609985251839776290369896270620942989049146130502960416417939089093133734490873944333347302313527139252029352404085441079182217814788471518133242052133217887302670719190280562833506951272860386882817436958905282786897726702869338445839100157980244340491170930760777480768946497167158917035217618019244693834776358805159641941085050445195514195167125687940293724160761435325555304595515392161732573166130859186393132792637787405437583832297895664747210966071726105190411565751424631408384034791991794872318166751670228282577708266250187676625660181450018132717766466670018811328888588070709363150377832435786354753902701683597855947339992305101507907253437711151773810692972999624909587673784741899976361797796330573315636169925566994926758770513326699759759586008917963396139669721208922374668364609143737649999254816842228947012450946830024387026098883420977264083636793526716116348881827427311070529603694734859260178342912539171064753432607435664270994558227278135683742311506405560036400962413559639636629522989755403293497063005242583835391729373417100031167054586526115102205880212571562484286912201848877348593490224323603103441396939457878163322152950192658017504454422075880982918141123806184803784595141722444548760114576393388280381800612337213790310610354214460166441632711020104399747227714335822647063428283184293980656300138799605779649862318779673091826836738757791845208327618977299791677037246712745502228860130096731670615714221179053238103280778932158226314678855838325444775789429797752850383115983438774948444665793428395779095263501168882225212425831007121477823450048501581475002307740028269006934530861453364547117028817110636557024714348429512160588324414673373774134254952962155761645909076580561618313367902761160859107448720739029266586062062205437369665011617227643561583899322560404502291946379955278539237125368935990518594088011932913177449044718123594566729541749433104847523942889488239512760806125523519538913882916460362043332886415917519188820394987439375888874923271933037095664464521552563029117658077897982098820050559734620176438027213266326640357495554279960144832408639020352084664299510054869768936921756651177752191049174779670987308661106888556859987276215269063284327771870964559777997711388132349648229723406623288184494938753165627741581662181852928480107638421667931090904939691306152283555582382187770252757905594920184425519340937566326762597351670790178339696904594226799263907992336153467217786261538721198113888518643989434720526634827896159283734730170606873293818032714177625649006185587780648952340928315688293190892650178997154531617171072669441770498547421881247325115490530796991638636175683073148177057093732132982597126116407000522390085146228813384578928332001379487918433650726468562035642031042630156934735158051449624593058193004635436994768516711657387821982569259505356166376877149628333186208533502575845425229698212034701950414198582736558825114598909901378904699830155824399819209571925739758493441646081107791546726380576779719163720875090325258028933858792500376688216638548923476117700764079865222464613008365384423891451793560729666461022449587499292945974668342588308591927116013971988527486040977791121738337678387904426371524919047791855802548893779831845682625114991480361363753471784681254862482631469309129497062762762039145815386758674204616970127802329513282017779164246128022029065697616419674789700953337657207230540168455614784511176147165434376930084368366305631315358705699286931578555850625136540949428406908239313012388408117342571945707772394360210574065873814933970112404880247024970358827354287533369020257225152760288085564732038539063139784481469665533755239226470348500731431731996760200556204884303903245254258237925306672246160900016090118186924624863039550493147919361850682345077973785923597051473170852468639033157073350960049874549702186453629169284105319914583213118062944839978538004454410179218778859839131915591881072409165252777509845541991638442928236153843731253556390991961890809332038641272161513799340224994639143201515443824317849469851630349772854704257553304527770442884873618833193290312988519192274817491641626031386598428402604170775115328709056713353850418518679005194877964620393276599197334596893836927273047179891580256214617190502054740188166031437014719586580848967195000794157682004207198747051279128247505815991736874889033616123185842621832182824835590328179151119313255188298377174051169678149859955325565038894901196469597065416889475589531441266419661451976836930834470389264645868283995629192213853642305592842012533013341838579730263116122122641231247095099381647728809971059572503041651357176643004428185015021683579871820527789402220689598485906572978421055212540405088675042137040420765690973589463111406459618007622836264308307655922441537531357844715942957805324193739796317030323666373275253076429489961805445331199897064465598633185095980969582431212122436464847149953092411011814443587968059492657299818756950748055216416540218729057937847340068548844969119966872534612292827051717622246513695559890013677301272881827463314633248646535088873717974669908989626575853150847824124248077348126101654829911481589914924386135503920270709309085746161196848867371487881738209028614444220514106219141569491340407272360118214413717983343566220210114658943376016259384016493268621696415811550180413305367748945056532892409591161556966945878220084587900108876746535675302085386271638964923349773781438480383013396056094702259497437414463140750679631177634135865935938375332768606414936962353960812934067572987951435022015530313871628042724072074200465166132041530140175881641086009342576042189502791018449779317413149744393436067477918439382005165326438895808174116996235940860687504736146380553050867027855058012687868606584891108926373988051782930247262040902710687631199511888353568172115361766316456774223134683226694837694834833407992791608966368781320797380296624109307497309874037217183996706171900186240778005589334109644955634249505725182587611951106662873250458631012751826154650139428039313300427837120555632536778620210316292969533058299713490875138181311994800899007616516895728137447662506503933806014361742519769813865141413023305614158845000517696497690027708129363078331662616425807947590578752024975797284272690884529783253818062259965785497768718523141886972292849739485415558474562745256956852208831054552732385328409500533539172376013565326767773207139886764673568852613789763911612417374164451149284179866889758213625717592277151792164773934141928343669219288732380013085722677580658139147869114104606510939973091119281448632877347548823335238791386493277610372793415751185921464477942427503366033075263075656368943284618803414975542587989755869274903908606735817358601821009082536685265624191213168563563659449655451657227547701448154148707309197440081573495880983302326304321440931909827658377540643885209651171808427500278368308720112905602107065438441339154349251383618624509264945226115758992841809817794845283528441111064256474542533434831356956432381783614300749813389078210445152276143090599633961415178226468168535857736108440102198255686252733317962792315529230839276581992749618367301378260545636096409868558020739198146652838631254429279462884418467036613681597440741144373558638361852970265645877712814365035512568591595404721951750002110195393320781416695459164149102922490900984622074232873599889412953637945417920536863453395878523016282646337154266176930679026027258189030461643973936224134629301018684720024746190087713665351551197607351189604393949609976367388920466256855202576496990570297217104285082876307690907043542112310822140686500397597406005781147710104205586426783073981798771346887777076244465468093484293396025217716540738853539426348611319446954519409879108174815809993206153589940592427589280877961252044367670580811930054223414804720790528423672763863037256239245565125414192289656057552602680473585066249737225886014010438515825744074588384826185789500887757279775314087771464890343143216661716376508681055383524753183872791415494916471039060336844442686504399970074544840527556048537554910196661349702739592034228150814782564299623310378568215477292688591596816798128244338358246949135003824557419714877164493725083901458804027491197129033995781174643709349723523307943972899109493397857781145976864386853737787057819182120753058674627352588978707470573462200238947824245605389280203537127837295749932408525174244273068414419102801186311625525763224827728496582133954605690165040306786331742541389030995536268919661984454107779580830769030280560687869770235909698519696744848295372272709148370589388634221534135450564204133689557824399903755726261740002971291202240265646033485971209438919047513444748797093412694765763258043750291808180374932415673490421120634342677097600395176874749075784394695605287966453637669059869924782251342826469246342750934044253797764840478866573487934699302505999490556713850797686999163467519317337682691312857490260850253787152458255318065628161052569048186431647849297662841225125457928197870236368423079158349308046216096734953235048148869666361826846334079598393810476579248465379825399874097006027823124475314403922864372211824241529031230269091755230051340425184906352112742966885123053298196823051068291285442188633192142739947213145584679815484163988418533719351446270530473844778752997994987105884912934926526607824652011222243858602133172698801076948748911575616123845255982610854075334989759863228354692158958800345716775432615719213557888530764704526650408342463988262569007499904020104229067469145832833208866728645953830991503587200918656832149469379957675361174890014253215508965652309304200286295570287655955134390275766463792615932250613125775440335257856105381748982683175776407721827394470429804326309239017936569562532889502877946620049106749119516378900408705579428290105958963171968839841699185913111503492965572892522588643539589993602541791689845034551792178630915951458496209165526173499088476666744313161672719794535073496364470544905235252527228704885618926806076172999980564538146895721434207274525650401156746823120176175735682413291075900170578623334688131485467379552543379650658808252375170043817459684955550410278995624162247218603048740147886827435743343463298360062953437499795410052799290506305915626024044787428261879500776487814962206061729439075356369236697338626998506561857762169097915585844780393636936160947312318267393658112070363818750824990362990232901409196090238163960263487371246141618377534293760613122486074600994985713388708231293101271542119197377698344251259301263883670729060746278189780344389481784231536392296973966163921995014100504221680269422779474083624905689973592525917572622472660745070023238134707416998832477549362656065237670903814406531192138737367312657494352182755205053450353215202569393479948608385947042125385202278992813138171758091726822369975990674027127997299940708842377541709914239882187681133189446219793237035697880594596708069875974596401930985090616704592753008722127528079162033644015566857027497843509020376033023456501516903145704631112368368450312751905910561322429823551027314486203209896607892347252726121465798290898490418934306905789237892265517810647801573458613857033585993093797887788257412063786058692532484659681412911715655005774723637398517768971719886882113485614009018101782267167842759036032684461556858296870834961044335426700949612993814543118149650143830432520092280714883077813527886431529001908102014468679806002406357334842375522599979042366047178268780192246206159807502605550162868667938347892300027615224930420272960181372232381711441552880004878247261842239747922858758256182344155044356132540699615050910198189773046928786346881948536217507383919425957770393553580786083630915508943718003936659156871664367668131862436765200907498991963522179969490880263858890551860840034752560608853643819610786297956690025225372171239894557578457433942020669525138096475421622651880296382043402674756928451101686299801753825853507201162173258311471356189375117442723988671810797675161521846532495066573242838001593396570530646516045548244146946297241496748364039344924936720489286525897351243067616262229927638469545518884352148966045213471610318428628975546260332836796962477035164414273225454310532659088016006388142320276373611114153921542298851002801186632634970439793689047425135454768334000330564176252234794722335491632954860217991447851345315482631425813034471514540175626363378381282157486763024142271066431027800592438167855999756522221547423910858559087206277115877565215671406036582791051948145131891208762832795990824442195542423118873794370664998168569915333571747710620993036145216369736735029129709726597147270692929372440710372976042871009250815801789753307445463895614866035515643649270341474947786236406872005787058352780554045506409148336930619332668998079673146362206331452989372342972970981129689294171690154511170067191842881406634044242666745559239157365637681909795517151259348779472338502776601936138742428091743243845938976222226953466029393810519644427513709656324749740646613155116048022097392504347158447590775368416808515873630498938285928454300113671045228453720249427170674460436525773240815614089501450268774800134785094384811563110682368103200720096449415778332802079121009410731651523768992282977429907381582735394464020403080438071064980608551813987518862606876648779366039375370103150484863768483786662987313784769304251336608454192158003431245810795009985800009454782428456542490790988709912751992564985507653748328425435706876945642475906359646861579459060002712722088189277787525163354689237049220461550699804962758261354057757048171228203447674316746316131352044027819791219671897558707370859232552514430357486410479151577772875611777712603010464705011623763191085824401152968200108135967467751891761734558569672086519692249932610181629634174390788059664349835894621998836848350107580423094958632711563405518472258169177829206689101240207013688772194455166649540010139490202336336601195948565930573078064641992329675301103710550267707166971429858141968860137906239683745637107560998554716877216336342055749176425152598678011415956483691781079991289498696350451317668378415208294120335262767916093766558547002865056282196803011111076371079398620487101982934238109680099742804631015822851150552855511377644035295176993726358326641280499960873949574952468304745991163639053477887007828947822363095070734346376784308741890263178795585979880674951433524539342550561443140885419656860092843000262220081796317216859641246397738884193098886603252770906160803627148229349684483668861308111942710960041288332863379439415440476382023895685666622374930023934035471166562743421721646415094448138750306804828106266132834341087689717592477226245037969512200595117510097290539135228657557529997436481405323537673890816711953140130630965001491451764274937289321357827517380532925127585868824371303630385163905729924766651064639921215933104070643698866392183810789237093076417508429289388780988579999551283061838701522089981906613823053222116022102092462917758417259259569786124682071994022330210716499694043259263772533264582582334812498862074658038158955580604666131318463324750476470734405831226310370431952899010147037272655093949231643123958147067408972213073696464459075133234448997500232300454415724112830750468550454220590657837160064866521090328420815942784044913901588586717540470932428145813045206746483768868605574698495533716873170178032198291008363515527830626248974657906752759219540564074213399081630724907875882601967535250139338394864480831781592024183891087115122889387787808365359341258166245990006885611585324404475383067404382107732584974348952803583044535455051441693729473521099714379926127774699076227515711830416624321393404495507941117896651159947825296698578202859987745505045139987653925585701731351971124044152293907831359084474076918081710129915240870752434567953579869473443995946782313898588250693145056881442193689514189646422478674258176366564445343977273891719594348344151893701244407117497022519180106725731047830480330465147685325985797004921913660355041604471699014468195738253957437924461927189769810461964845301946780577180336423231152047560692979397609524336417382961329038601572251311666624924606225597658821407391662746207564706840991533953877818574062790728633416975528088910087160800505537058645338268152369134938272411477380910070916708829149015609321686797427408737225911114133722375284709857389004473458270690721334823003788143330932568707134028937838288453774910946147653147403059712326912272512072457542399372523755633409920866721194822796202386935916699446681518378219013486491818442096826204035790549172096509054950746893461292977963428345449587957027125716133524438131809938194331368733622082701471673494096501748048037640606223475559180060736118295050971915721743925606290814757061788979793988898539461311888651219637344279688220343167471582442809464182985628809051583974252584513138795084803720272758928386124461701353804240729348694472741598344062314553315244878407245092585999994222787927545626055543640810573077286304462381601874606862860671532373961572332422318077806258314447785680897566708990885098832933296435686036216071930606378766923481336084147674959448766098919312415310480903171379759320347484867073453899720730763150314654820553110421803954695464848614244801545172752212215052624011749298734737948878531520919761761209595205729072337495632349803990332284168994994060362541705115036067867637108493845332769075685249551012095781611083261589974925405440889522563070123217838545087772015390484934393918460789291028510109828210163529731977833814567306212412804995181617847744255785606404352136956099987178176327229691472381145625809481182280366149997837206159304536083229574755356032223986588288467662285024014879358785965066665083438185749392110570530930600557496395587000332893679569284374855649621657891342198924241011891107433414218287742394028751904588713251388351573598607434883929160354446449677603929737001427735278830477273887599010326918199145021651245152097397096954365430425666409961746791708309891900110233782924429003821043566514694850877995189574731239207670986803991442636108541963982589394630738831508423120956535814206949494797681078878067295831157191966149481029762654406011397236738333839154757983163040237660716415225172226648377295061682310697851616049714500096253332894597529505785908236897653485272588920800097498029500401208093663963527839292093852176629048327895105878637075525409289276499654454233148238324738941953026259347933469847539131831750484917655142942575727231851046733970407427985889395476536922074301262201632567188506623763362752998791727183805714559410981248026501206660529897149578851866283671715028448783151954821895933307273821970661507123293981639045364955441539516055460535137364296370735615586995429119673291690516242599859959197280510361863951318987308137713573833425886187814671142892560086449061481718222421659276463597013831481522861009901433513492060339088478428091071247038807837695606006509161020514806141926863671690403806938109845705647883278927524708737231141491106354561284746903811925425949765552970283514719594508601269589321299295986136449493224616714751522388226746933778711090690073107871488692367664662130361017641968721335722708882637656704517906395864837924384869040224281103448071044370623592667936284870770130961176644842688725917954100965754793267301818488783196992860801296356587740745658279722933297883708531349982488981547338901590699025668430375963377656558192400140495047220722704816060114455227249557603967832502210165181976021882083969476124420576108503201007623544689752066044319350373574312816033675908382605575763404244424510458681940627733803354486145428664248550674688912043031076299247198906191504946539399033625910815970013596742002971753356652162128088272453615214772676622695057949244036625682861902596989677760405919278276536086992096479118296424328935909323049121259353637151461511135585387973287894790148469479715988854518719809897545874339979682740960123997160628592869405200159590921524433945401784886247445820686700574035039445023950190543002800367521664935485601771487093549933345381659902416888371555551128679730323640337352571384690178990313466708144509044911104079361113028809258330534714855520214788070791912244398760368522836282759669366587374432790545463693606387661572258455146659725220701108675811280250634875575182598811958627552659206509899767876107939052038874240375523175915035132930926434139441220028131665704538342717512604296219210279508392877401070865843656396718901596939986665200675851499576010518689303865256306571916092251292145799774142893816730495242734096137911880496610731247638976544207167392040017949692384792210461979874365000759709950404934607280628459229463950056610536908166673077781518493502513638593944418314298076719667275008415966918972282767313644816888955928781722951369679884160382143051881744126437908890878113977229309915467363639857043789014329952203419064964712422624582368959142003733142713708671018753845854284305205407823014683569110480852523349650675764694350296058439962556387150257511483186130529533104189992635559231121095058845440710873616084926378569147356687870715260222410901731955041963751191308373520592410904897867246623100347489694225119699960102865800549676580089021612035206576786086860292117393285756165027869458022859790726315560979125286016385272925191988460673788646169162142241286642422483049754801618068159583550752526579561760540950779898604704370982922933289488665206660599410460315730234553759969341336395642340170629976950170708754570187434361162236557845123819401691931590592985093309977618085898752035282706280763979098405510244029332600639316996943588623617194679651910650262248977116217471520909173133741201614222786194932212829204958717241320470925543978010580578663747359195575650098367625123861510457604146845464815243111707362321225846173618446363228848630084791850090269556357899171086036409228097572242686699192533283162720387815219408897400827094351036333314121129553240420077508512291384364884180630864455568228624205144584854407402936979186320655560036953261415154562046373689238563115116493361453000373399487811421236940711575024304353150798572452707845224363861036152758933083275392633093632428093676199547979421095246723165740690968153107288468130908327501631219692084462612316054437601476089884028578841396352891758103727319274907729173113626765763804398546880378905891100562137031141922072446062890467164924388553490832539536210907019902537690859713097945124601431959998046324879679989909790236968542383219247831002337569702984999351060394581822492880480368393417453259233857286097586911124235100062063996936697027896141269412230068766593660695754856940707263623363215148948472498491036953936214130414925602735715150415236746269963474149035363611227162546933981550169330933306705006329245209030747450498353087108523854778000406347587720494412652839099026716688484778484224676180184512012360646563245825094199394784955226624249465293138822091175299071463907740903769256272514994499412111957687156074718847828793220388404970726678355093701108757861233248836999183735254628532554267502740732238868969611800863120099153374744829863360380485998323730108331692826209060130578188165394595394486717398006688825283499346135017993044080928864143926432941871138251161889575938150445404609002442605835580231666414108370674644580880523735766235904570037330795624306601871511294274769930399026457726767459201677133527115728476612605210999441424808773629130451752977588788946636071621142692416305175596751852324691947375778464627306106825307923427251445206061861439313079810493293475159892832488947328281980221949222726443046684817055322519557145141681173808264176892980778652838238205121170714526250315068505612825573669811001544135030305388799756715281884866315481256244252951859085806121604541265953135216582765131155606953148816305665924129281483712217340998541490405997269545416730491274055925624642039616510041619046224967733911566057888653510160055225069082011986959567801795258811361110925190422185756790128563534648572170748549567532626377197204122748269374699784530065929587612185334337725937543414157818865600666678582991719188555161753996070542858570599572174111366393585508606372076024900499415525908573535123627372856323732391356365967939247302104748924654313593715457575471693902719097685722890587975017401241917568082237670148742672774682359279923428755570165012720305405721153777917268642311213359372886164101219509315458847002601167591453130163039963140017371186427884720633300077284320899875912094091995383751113751128405201503499824010101737612818585341202718617282523323475951606422754668657217209005573443001420546680024268240363908360451352040462867661744434707462685958968677576624749465946046529842162701342813879796249773643784577053422303577447360940137302960318447721509451673106533632879621564520663634398494365960223520966229262781232548575164299750275771500505368167915115879384438942421848675016391337607774987826054621409383367139349638028890829205214089573134062580511161487961145066362368993343442142281025693843692322206373362049774876054187218442328363879027404601261869632924061914418841123605246879484223023683402118675691863617869799062045339392074313553890245578577152882305670873906794117413127154487876568522965968831055695339993500152051927057623492474379084269496723919205946082458840408988384133999849017542738398183757839747220987399180762387116578636058531138892550398213277584680332748520236351173547199428929506099605980153764491053531924785027593435820662551382165801785570281495621365940802771462335271569734876223022186547532308119195573389152373412942345045111620980813831771115116003010880387331460713582157740296723785331711132893529678107528619008150936339266974374256093480378644790435577328962856390953458112808473784336393369180464002711117212166112807033438230375625637936950302864857853871063643408385027260715879424794063050416589204594712244517556959258154260945745585822899988967343896515463428958804872716439710652083509800977995383884045325524299092597638203713112265100160922130410471056187805363081095144185896793636105471592179318905106674605225946174671166144283692445553652645427280782220886428974348195793261647164747366201567581648510094361696425852578504278591220655605880263440378894961458399858731758917924402438169029782258559426775124418628339055258498948959413351688206205675464154781054924364083090890279678563915870460112430145850537364900776223558176100816592395563633632927646655285844502308596318245770682855293187237668511548475013050566095611594798207700068074414066029626955090683428266528099856965826786574372313912735836631370758409003846923041497177268466701893856345404372095470266055056056331005252114603644814607440391107378516190105634896714113106518325732306517387649172900129824357501447616992814763462115096175430452465911304414252808498872687434567945324994026140503561700717308539582634955499585220194898618436137270005252551328802558609470826897110263784507922542058921677346937423009561752127876554377945988267159795943271609212760899445505405053042382662763013231096556267510775495561460837500301184250627602929935832374705573410890388089166224623758595757971216799816155669470259659047445988190568711956991936087696717011036534644458411251551644744819177339786032858820532428830173150779653539925786718515219034701386884374838707865626459659278151942377575524978984293820112793262088736155421798333147462846350848158358586851256340284206378338277516850747541983558453731393729483902317385901453241781365551385407964335833787563692899068986550495259280565968570968218583477711875061333246804087168060134439383327389084186195781136799121869069529928554887619360037905250286485595237462275781388246811270997212189495924417300721953930595468910558033807570360759454598514374115949426324483770209448261193937142915113195143354984236410161723276286726640008211024730821498557261915688447147730744507881898706759568242672974096298321832009277837912409558944235735187381477061166879579011288899812242703077566119186702393128344651946370319703978132392922347943570876035932287893699563838785161952124597695454742547383219498740297343772302324125187217234037704129681152360502986294791295395541948269964781171937440792502515888657388871645609623746825793952281412188861182938686068817476162969854489084384987782616350773777867326314224359354751768621918952466329059634168629941552166229137200458083063165183594622320079268181612240323384090001127584533560229950407481325354953672847901460481373761960061111135714924440234180081474708606693407822655434186646129835960204523057469922696329010253506785293718634028011211419618458931083095336075652581536701686972935300222265371748643666140636595802014418037681288925246950025548791640146498909058456960703197800250804078595401744837075567713287113653736474067095814797783253440232707099721211649718295329754169732202033347519294362994059623759491949659068324722185656245960947706655668302271328884954086065738675135960447368717800992468848229149080320395003430459099318850837078013575455400950224799272401557285000538867065726648517100330699767541690409360499068172494413926760210887723432118021504750168188266374753632221060711965304205328561880949114792153650683861477775341326143146526545947954794600518776792762112104307570278148801025574421024627663599074868131939328182783485669698239734785973482161789892292860199658538225052126096762609085751528190966997236543763207432853802468139759686443808497486918085695664357705252978344843494343552900311343401389694015886779019741172031194116351265555173685682903330274735136963119330191483650927838621223391525005402948198107226598104241504689608772707353163824540559358526075636692271676055260173133342847929349683390829309162789813268913707081008243113758932672932346048018858255736496255419860349164571780398087587963510321270064943700156081418582171321095422798869168174374896581240308795942544764706093964457313613529711857463232443025453595794447477680502102867863900600608571807958544861586755737816212626092340587711623027066999492049115878422062689728042509321712323001058023123406071256933027357855401190569004268622519401046232699196465343454973572490777299249774591832170548829265008964600677846167493389629274093818360788012079639466625432805018824639701567802316802467705538326726009287074172357175643725830126117094961018066659503923390736974569418855312490193567493977293580642084063604795277108883493468936638521312958681924867660817525741843090436661831686408158368127675737983150007381115322959849696086563897677304978606859231646691054080146169199444717397434524422621612113944138084060977683661178439171352047519012176746546053838789912529609986032287160335732559282157780003096419922134124339927040870368223903738893952551259040946859758816688614595088083131602954969150696470899433378773444087820194243750822778859725927917255484653651394554552247741966002660040965269666108239822967820820892406382662867104152239569812859211988376873887399785596622802073586268438007033438521402576414411009396442089543787937199923364355373740690309022240120187139330556575722824643807675301409494012827619177165907079495875949887421838371656505508728038590121090470133810697080391691102066881836979494476764725276622721005986421119127392523570815977746562972995267933116985739873861844570560464372941217146763010522589405392885517041852802252047283484326041400402766524511476972633013375408644284515056282190946989990050914313870393113715724277156604267599358229467873833177125005063555701280670912978341132704488107622347497285817676226614685852849064639796408221216968889707120068873409146303755576905740294781402178784526089922858274296914370893601465076492533382885975775238727157363669133983004745523274114270421055982853070178279890189320265024093518391217934406901735525837818864623940878094926953638309871873277145117351747187481868335944071490397781153764666200546677365703999913205419344186246451132650742703070947634210067716172911640456970388425908223122766604774653648020763126527395114890653241073353385579876616986545125067092604667316596645570577126343085032208238417288301942186376813214915298598390730038521707648502779413050310686947376116152423020732869697880491212992644930201319148587923101047081321717166229842401932316703891806527698587299249966072746844246640509023132113697616793126970566294359147825611221645623415060265725083540052131794199574338120663562170782641445946979719885432024502388409742551721399550316734587935776341014804326071849398285997716830886237524361342601318995733250113653169255632583499763023531036994971016244473198094332902005163728383963408447760047389338432272099659821106673357333159825815672134424658548736289463920831735136585965073399026854594293235327392314258655735950304965654479883680283339989424317428760810662120429665139792486311294959671536033166011041428134950265656018653427889086676651690549961434306410684104280532285817042080764098704698240205652686066614202678074517852180959381973196219112227411870132315991064786077911632741225752844783626432437428430699381286096167479189454618671469072095569614913530575266087922502563522915022700433302716789491689531958764264528702230562756897103805720581364788900285141904486548721850138844120022696018110709064083044016538994603438549078979878892259471243991721715939925171903305197953182667541610570633355956671876305640838642584618243900520204641366915743146324545310785626353742206586044007378009865142654667680192164717091212391496324574050934752446838380546541670480676244081601201381085778054360354327645386854809922876603542761175033333918860727229834212186300983942331058071737966630672052773798029227909491615077266712249554190047573992327985961947894662552471401091829250940430810962703929156498379547357081851040561467390427165495937441177142203166781872685129974095522286076069796518049489970599541389494904339331815743667202810465724075345766368023071652988159826267485381742094940126659410066025381228825080130507464561767422253814268429507719794274295302268265302841583713684944483926982229681794252235129351095642386547020468534023166301818406405046692333767615223308652567701424426351240883846030815711533766442388839753499031428974240715975916007419230022920565377091374128366207410602521789117260398019716002725257935037700794100653297443180566809677802818009963751838144238965815338985628060027600325994461383837674885044062338059739881093298146317325260722771116881966112266870317384953142707928459820997113246499963452579549142571781209253113324609321755057957612564195136546820256151275843284145520454404688851470416728015806703031075912564127426010483949173747211751452713257535502054148558814789318867515908893033221507474216558411196440195157329538605300991106608459726191586286719886899424176799985366528745077333856301798896510354573169759178841989568423775534617463583393138723777438238392565611054195951166728592551565118781481267629083935262796298829997245863793449856930701609521598285557609638626261791623544797062828540387690679782460464248803325915384462383726676501364918926329470059545347553078479510344638894545515656060754586104988740596733742181680908993312300043488779552199560227410044898680714382861134423529435912088845088660129312475269198726412404298043648021430509973646619160855590120496677987893209302775144146365468160250900622456019680261034465719925220619168051545669626062115791678396199529818300180976446279359798014776719245425826913556475805718507557837200511110819858202414877458965225252925402788819871456779323775621171133483346654287662477531955517365863580006708213699131628135929265351063226281436510145428377847045268429091818210871407718839800895416301329694638906273082904088524389390519633313764265415571217905317234742440540966127858792738358605009602204315045722784980553597130775467655338665319040940983711073247791572159230833698208437900916592235090130620695156513322239384616768312088827686714501486034339853508866164754273154238447034702128775780975345919943474925389313529671418614493176960640054969799212123532783466512454069272270292659414656814914493864556832274095614733198770679800824569878131988771251841380364794206731818234795641615184105381401656279289141397123688772353309851221358508363462875610837132642192085602630656105264627296755035094120935889679294510492129369066596867476376283032274664780670305927262019272623149698636349088804016496064090465171435441115927785287426060907748142563098184211555899031922076823505238397483005826217782070793483627029589257781844661251031389001352319585243269878170176037696208722251136286208825486503858374628397219861523418837668424836159433297960141436980291060065868732605211901262358552669256761450389452599457930720116160764847849940169365235122217824657593077473632507583342045117423170417232885749450534952576616877298059186476929517031545161052130656172209375941815590436024382787263111960193905290385585045158230345071052633173323130539384072485371804166600002365196803178121592985472559368755928105816999856827873475991067876591940599174937338020056749865903377407837712372610435842069958813239297216205131451365664741651263186593521229327665287887781011451054899932693064498301596667398471589410055808183594496938369182736419024602953314032711665598724650171244850298697730387835952344047164816281749230735946723397869090741862263211875061088097864228465677416206856711582959218910155926818332803766743455253040070694024062072320426201191331120958327465188105285993338571132282822096739266218966415805762120417944162314141689375683045343032132507399607334768895806856618802472560854132369598464040267741472066489201862819909061469839419508712744397171157446525763587335928126887104910242036662416878509696470457969456100869381155308840148025269212441955461017387653776163307045319898319264114537329830472051758059275956688098596938883289091074576356792417630030702367000927088074245394265284777042334482980771621954449570585543464166030573567939487350457551556175222117188361702758103528803882520441442560093967333683453521617992679232957369160967061144065173439958394439793997646574842448196437916655447599519239529253137480484479300503100788746468343276267047076067845168478739485964181713043193626498632142535847422518342374982926876004129363660407613059322430755264985605194842822183028143195714971973215810007697129385401368296082648789735477807177456959497067930679759827604657171288269170655701170688908182461786810184598630210345011161906195188143529286465587070892595009024946114999805334612227523861234942654218510562622879443093000571911992203353952845552553073741491283326279078901618017853858004387570691513247475195974947646319247880511772331236485160517579627702094227881349387949531886055428506052599999825201491555860607905951803322489519274739518822052445458796686101237099667966062098375168927522798587297378743417065928523175212559463860483485362606946065315464238047479874373246792141189830359145320209255014077973458038982295951637543463335670737842517078578700073198803659848872029859034719271825755489470042780208516420885405309185458110695068399579270494824530659100165997627719229891466577706361565339920177231369905685004310668458766396611101843362158663473524965385183194678614142020116034609126323189533288319114234195909184425722703878087016768957499680938322393179618583036837257137700958425139330874329412084299125407126491957456603211322867453613523476180912292818601664796548236828606458775887452781216462974984909390707598894732769924411939401029300817904981566434759708600539639271942404563040355285241101743665770915193901407903870346897427036377827281257484982807463529581535912393205964973514267094400562425185012834245010276693036821552847365965085237308109583374570669025947062423487175365718486097494175751074875675192063784465777809989807486943999922124111218242678510329366126638613410682036561429275484882818607781903235393240438848247928256427883257809161192200501977522716153365948098785935251001551573919915378070000538319749308368198103135546037730689088914993372289278290152709240429491254433506690136599786102474839677440544067290766162023064678207680803439062510891917873339064140486724049085449425052710672218710326012444882867913616559951995702852921793907694238674968650800468016582068951520677232839897698905687674328895787470655307995617046748704951746537383605570495394570800557288031564898251752153449177233184172717119268238367994403540393746407985845353451766749624535862434003906138745314978188229047165990707829465011570984737174205972139755731565337273153707989766221789688575191472321674079839186458308457178875344471440329148336554437209935034535365946075912090071371364342620143448948883907741737358203816822355972294708212746419315556834379067695634582613127166961909316629398384000818445125093420488366958591978394188082690457508062672976807576106619329173613516382265636399831456573804262529330615225193968745342146299926543297103536531394338376036407947081193087892576268383227283161792413675717277883777397182340707998312454374291467740335285876031286637640841639162859162130041165503351631293492833092323220882538711097469150297268652477925819880455390775820493824156051299353265751601723236814925406915094936012687709561778107413887403883396654589291359623755634203322999430449820442538981037369389766987565303771013822495017925876028800929636203009493083192615223856584327137847062057168824511259969440184711630149328863913320969145413208054579494732132329716392343435414891115349611925203063307618175739674050042934273225743049902199908939879513719520492649149181099194066087477740167431115996003164903470310604433902938401901427383382801504915989238617309027360210050043361569323564153887220919170216346243515829074520020504333784067371472424670145480058652398449148010592922482109849312542563701865278490968790859973805999611463177487385779102455897895142242184051711213050496451860976416061036323798728238530836686687181699137876286189734462248267635550773743860449240437057450609511106886550482477543002930004324252051640067095562990921561080584475907931459213649513083563145678097958809042467430130051030081318347039721181406574576669805305712553333617016765236887299225011419138859153493688755243856319120800641072964762664651622696625006500374459414079604141092943193006465681202005087300311645646272164799053136359295214831130337176985818227207483037778660802126078557115236999547759976530777128512050599210142461018758758299622940334099199813394193153053522586577069257042317953893692313648555660774071323261937140237723112369775579801757196634766816847223638898780886423220672536279213534278164882162091445947581303570413631041132081050476972917608499355389944426727817261404324751108236408849511127158218788250712193159956027310446968489546522011882747212292130449189594484420517713853160268746901057971552142925111526527194060414440607272886402790768009793446834549473395846802995570099729617905321054351782347952234821994200049956807452125187495051824263739087569870978257822839581318807092738444658421788756080304302720920842215758660633383666756128722411729704554594041784461630890586903468255029733706814921559943424171817681867868535990090375696989134830714789390202839020141343776936519904417538870584780802454598539903498458716667096687044513969103946008883307470915119815717024290607748545561120238633966820780694080725130342881938981188951890538751495727945924106798249824858802297831184771598228223403662488784582059660460234731613197434279871857905003118606061703864963459953734491330330735515628921831189451858363527742169817465595028669733906391283723483318680755443206338915967348975545472626913077485765325435424740823899297485371938898830020147462792580991127676932721982209907505722166722792455813476039968392267679948994007264438370706433067132671168667961234380632526192183850688189999160579315149277361473722888172572136841702794034534693542975119351514764143967354836570823584088540212329850960081138694487206683665563866712087391592056734474414486507476057738536403519045742606559043774952529540650436409004580868610088832884294152395612097720580192538326879774006731647203234338766637732158776075008572005596977961948078598607214686715969092012637593044161289993847192003731788728834130788535703671828152473215249803971502675567039176309161785335467756353860578899866539150065403319866967411332559623701280491713577622008429550963636692287250095730974247659420493122176472274950987911526320137114545159656272343464209648068954733369101129603991072966073060635212996554805927733059276302965609928297487805900126433491367262550354559909473743335743936426389454617679009858412338828284237628526771734915570343489622281594358112516973673349909163189458311624514210966814019264672179690488183211961424620963648215398316077884262330791136398270928180794906967422178300827955150359692307811743452311036600889847583541730277478297480321768828234362140242313815435201071628483707018819154309120344124613639501810073758642235658549169408672827789901456891744733510264916495262275689891513275884942936457394021849058989532115275862485665825741112266871389729342034022587838860525686251359004960659621254952420226982378457629042661042286630891141104977340295561526962053438181459154320856290400189260388206867736709172987722835747826857462364137186790995533155628292287785827651958044150376896879703896051270550962083048599708521666514411326339115592536368759999263731494002844115700208209768790121995421784558299965041213419190012681703226089850222506182918772693420477952770743418680837730413683778650103289761260668897572549049015882470103111857074177202257142439625744551525684332869819184651518838489910547720756417224496534047538812218940274751445907416392685983683657659561917482987870173230320636819415783097220584233152677905166086859638626300104661545287053866719122240624811388952339711859331553506424349350883404362163798167571803228315906841288813765309756090114885950330805345235493468532552980895210917973372734173425077998046356869311081233582813920526683435253546949845793323075499407097887916250613913869770006665645866393349533541290285418937189042322759540909554093927418508761353329254332414812923523034567916926339137663146028011636384073092448051429961926817059267978839847316022629229044540837969419971202418222705135106783386131139669562806773686398711572211244473290095801930980135873101412438428812975149031850126078312282962888397570269043686568962766336262644794028902650466644454414112431838238058742539917753643266040336340304598634937765896890240337227693948345682232251563631388612742045932828983771275668191840913201860804113915387435710326075645615158745223216703927370225340939281912265173967954625571565522286189990408687177807989282530758778598822425506615063381871457352106839730397380291150779307569546556401830987938129049440047792263332477111529247989593267538229742549283285308464486597910759724686669154086307579208771647789525198170833264778870906237583227159446856532655295228754831374401440852745395552185635257950520240547062210943955769977162221003203240242392663988997615141297498614534679527836305277976986107231960030399878784355464920885822517278615696973184258089318698894358908919540776843850896051204016176801666811813496673426593598674784013491983856765717874621084080867829477371536211690442138269478222311401272434068188554621967467355637424225185692879777171345882735786845698626224356715231053910543259043917588999106454703142021208685562463326347209989123370054114511210232107634853590937779923861961764076898721187877627161754803771197178705237124970422426024586605184882092268718708902532143481618004995533387658447384032846731799335472568937662859416206508292622244113821706601746620665125713177440386284643819235567498427555416654910638100273619289918170153484361928773349700051161804742506123145952692870657017656095573834115084657763448093210155403204634878249627991612970863779136469837653766003142318224281876898630918209627655801782414694566727954657966869438346982008691282864052355508159544643485060697502406530353284022423802549904342736512029606251173861263327993079825899853676515838019621145014743395665489816634665960721246371149228533800931222391899792963109014735498919536532497091868664854829054360394267536677903577608658265432445179041168782298559897854219331729437248423743233018786174709539869695121057742661137300870556517813626063762418611882198774716769498411833702483445956403222998294220633774349541117737573227067493789156755371123255663063654250274084286907173242184626620533818777782243173726732419754837838015640340908915882412758056378912962576868589472985385144445406217139610174505543244768196300131586442608824534265015519215740038760615282883139058630261039415193443735992897085237969171248188150185959134241211719868084843524358627689804102594960561252803460137785199378254320309982732069205520546604434393663500222805824835252209172560334020009741985608507922621649335699832285090426198640964744828870215585562625932269992143581331400557620652946230476513144707205140779123986418456148912790525715049261519644400231432454557818522058145444449339566433310610031430518201985596977696299720739821660209492974544648991747284998111804415163157577856527821150811943811181947863528958670315766362668730303081360061583675317166106428709857533389554036772690437449083392372663951393089738083270541750681426976974841522804770041208083336972313141281249230878652332350291947737770861821212124236737064565750071252474256663883528934442168303619596346805032506906495591617114799292069044336785030247113602386188739689443822098824187931253803277848714002342851864065745093647498691299884950186309092047381863305890157355386636685441367842519915388447303701842656674635956227863301333065593435608854023459692642663698007151966408300072257175954197466429791001811290663086095631819559065458293981438170950864746998494456578998810726405649947169504354969854151717810966470688793702866909929805746355253364937516955031889623611976178706450686373271134158766596859834802790108959200334633389838626619544347340234994842203420650520504267791408987575364327989698397305545831415192897034751062401499484780053391523761886043405166389528479513454024258916131535607913235240392202695292730710936497072619848999459937853586935854829235596751168507324036464281491062859935352609963584624358521687405528706632412052328486717575276555610906503053424631337167779959374547337668360159322827838867911631181652400674302895004747908256876813408192840092531748451607860975242082900381326734070322834092625055424034795642970045009290879726098228909214493520629692915219224295435814846081584735215070338284203149208200435654191731604385438427410834763293176344348913208208510009622823876385695523817578501842313298393831319048135308166348067418125487994019182990632575851858025020235822071356699807552317531457916854900410624310446122501687184499174511090287996612677305949242079067730846966946120875338939259017489025951518213275200996315332276585724760727050493222447599248898648135029485099736471398008921865441801915685964968729574349544022631477939064900635784257255677644622734831034163834133224107048245594740078298242288956558302187921621248277350265641333926876104195822021981932087073003344452679646980871801737471389249438168693643588948487379557168719836285002206463945593861718065605502673186952094722738743270711240371052426303450208991299251622041078064381398705653321004941629353336690382761549831200095796316384084438838240559913907037349138243800583148843971949105066267892856889451599471095610192106040278136529188410112046771892606794409319653216592230496099948366169489899014102842802659840655649369301722781184705240841585086751550642062426481950112597485858038037858846973192119429975476209621900202724061101290264493716156536217440095778864431124674676841143437429352770372164590290475994209700068363208544261884733232805772042273634236123893285216503160147550317720598631923811348551425069177220067592112199890625461287538493805676840320664027760662013975845712227501430726926237966889200009007291960548740014830866695350453965878475850806480236417112327067098336664085516770984638456072523672048254155775664702997485598242806501255498498285991915899514199161475247299772441972171596715163823142017618711822630197368598999314954534862708177375388480929097697499350176873666087961719730487066847335618254927819091416872156607529906974205518548497241812473215266616973862437824671915966616948072580889887654028797442122752934710937436585929419069461582438772349066014433825460249310401688907250302870215898044257087700336834729807342503616960030249589427651853330056564116847075507849425595624227453597929305378995187247504760470067566340798818558572743818407234603063656907936565663001368023738030845148620156059897109355927979441254678338523929490554584663509803039274619430650328495586498153974599367380995142959572593809293168201032886287081647905591166889020625225272401823930680182510074030270855911340120962745311256368301759578050035838263719202291902570567918049125018630390853998378432743432757410693578093100183789856325450566558679995783515568829776649857552241425508772023318678734184893221837605142190425312492401176957544158555960354390769613726366239745233055825986285742764946685226028432745985115502605149389771111355635808672820109045388794456821572027923461162399351963180718092557285835891277975638632068625430233862729626239767625909771223841420878316731232076064848795823803769245141113667683236371151456930753354306141443785478415756926089743487169816905532230010079909406648775860293933276914918452209677647787551646986442039173145975345334545718274349773747019346122118824121880029551983776002835630816517784464780044054940468953659868236485195321781694836593258893927872755121655753494686816014125715939417517279680663731853551031354118703355999194240272304407516896738303073455152225781926359214564054921887935171412806595399887393005518914766307009615555251269013070848649858378666599568960956657046600816529523780736456740439247761777436614501881554103773140357083147353798055627865633530325988961499609984932522463240301375279656302203942893068166192579935686370233772120631580043974460102100554970597894486218067530400637226339062126465000269093736592885754727031082483127370535080625847457578703509475150762025626856099540142045193921537230262694140793318667263949919983017446262311368115359982842038898516541824060801592287320783320927913928438535570023527064147763678779188394553861147937509031326678364195685125365785119060083416858150078096205995237364593688118639452065739670780664696187639023509203266550835635272063119352022443403515354539917608290428076573921575269519939670148567926578401082078546048655417695645706208495748928394446319163450484388545829228603652815837086401945098907038519818067667491059906679053814137501916800384458970133976124178945549935582540629186316927975754787690993745053050239017826605935700615824779664958450720032933262333200150844150511937660045943407179020028952903244762209024676835391647186375662355755556562928372375998738897237787564615721444569793491734061239317961486007956314601565623030330449248974699601017099045179883677489477704763994002927261506429501601390149549951304216287984305119789646330148909275490293641885100569470067163916261502653627753938602544015459377886234430391524987311950892324639030859681384323527123322939824623619817086315068212963585585432983356724948339873584113184288303055723853043114934997664029701319490131943106099597341067146212417045694046979803951037917232417119854963346189929097326615906444206224329357497701932464562512518978964587998486208768505172970270566267950384680700563401559556452108115152276345747366343458494811329694417220880601763589356883762450149363754971605915206365097617607232508681556632421753657428619518949449695565829712564213066004725013356492411922127337405120547905777319922237916358627653119658520165797842098625865981989278868610749859883652270459518286698598793789801256938169703798233881740686620424289607102838060283714555104068362903907333913913575808934565411050560226114723815063802314061260768803696894790345761443951758748963270715200800762617760672631494521560751741877769585651049243144182101305158967379902988344177816673416791189031102505202923722004599182698681181698890381228262097974091360167662119260760314875995674028454669442528749408686954131350904106300344765612159213051862990116099389267888160214336654092004879137791958279410353931016087937420536998300718623433008940728468252252793311350965142413256221297602816663446595249443219159859966642999650185701543571356208091058949838112863346699748255887723244288784397391340786221996760407415365916825302496998719703781265971706031273550172138192112472600647528819433081911564930087855316363101234191270132644528821705314181169875432064027278385406099765823506921458718702949924321513003190938246391333077209237413833676947610505163865998651558551938859167282278182458475307636804725647407038667315229897508662048945810113161925066380642034355022086498518473494377137656887726650061793727023160291383810554641149204138701144361598755915527785368670972780273548062418220719354159755084161748341935245266719087753593851543012664940169257687951432686407153656816899801296944967831541605592258125135580837152355041142804358684678035101012285720548705783620299436124254904014315796217061202040346509422912368728607814970164451588953294926436835436813466471810420430703258860711835737077004598334265502692315459762818928489711994181882692349414588346304267352829351682763184149413798409329555284994615537015230229672576173066281958136758003005176347632151652043296184427590430443062837640074670612148101566510580998025469797769382334479856681934839136670363154708053571310185835899872188623908722893895493312934730478035423549636503027019277574394739575040996791639262622570934987261887379019094049776367682518227295984100656489712810427968497245580693376713964787388130785076567179537499015505713864256958038162237783077062286305032307609602557131868933496123489183714475726568469956059127146789983721965559890139700146272594630238754470870190847462509240734330287140911200199532886153413783300702695410519427323505939945505423822336604773025295359229455095878962678248608169309747126990807639347302328421879796653243731049975271274641465744070045178236977040840418631349089437328065824231273964729273680288370887501482342917713984987139090661091452411175052727030684298457794065454005920739596500822455427622776582695349762314448095489990350798324961214292761465834716383367108477196237313670981266491352199396632097482498118742842716715946359103000508224447330688720187999553568532392463152168263151057450597252404227633671614484189966318145010025717801993559946518818600487084902837859082886135951579124309112065494598450543808208844559646533100033956887148165322501064179428822092532899129075602669289822025143389687115276243839227525614417073567951382312226947526271237888976535793355776520028297097409717162751818450562798890760136452408831757003913097554693205246147402363550511480300298461787853804391317278254542122498389373876326043667995022174862656480297655619405374313354440123073637564728449239931262632220491702111836627980490689121488101011711257604017301979174133847312676739960699971381447889640362402266972942300432811672540053665039757314261096654346321639503414489503520731822133029238603009089372930247745970095635353417556228406465703214187370451923425524212329416056238452498785020415613043256167727647054539865225774370970594020369682372214399532075274283764976363129974109684370327067928191221610166202796754857595087594636859323128262665030969950442642092205459740266750472479730670298434908894252184520966088001112797677281083959844950703070278283051092858111648768903542945785513584847651669897396795927029328628945253849094237333339602148896630852086504184814316670991041844120479078723493753839933301822374074326420962096109033910906508334907914340740035871397659572269238607108404966864451287347653638587404555270101360914588401043923639838609901901735917667779158133667905418786001265669032103951315529128046068383485169648049549416601557056801711848085225306411423144830823052907948069872694274012661311039037738439202247975451357095224844466214341003030145403269531552375432211792448750368428639942389289780769875737037397174296388135183577104535152185022443484981083336298957246447161942788272217363375747629925778698843971090981461198850597269714442551119334197106751054957779580334303685558786558131715296171535805536973707485708106392021215675154377813939947927178487142440532778700586525097719143356717769028224098723492277393815492345327372616076890349219225944301067349325914110800549251405530468140607422523029687295904603141106990965039202767960060624800939568781673258915947127143844053272121876046314341007693749068532852067057067114290167199988302471817252181011091034244065228613655551646202778917958313391198309967800820915954473361861544216527629283711779674113791910814701506834292677339010991426516660887479688076410959232476712842281008033276075585136071556318697721670108300883206404208324113447453987638364775669491696414337304754130166718721381903474318777245304503704600901658562556527000410150084423085372449160150821411831671603508063013880036371450028775505440249397316547533945233809116133071028352499519655262483539828273200966902540808442015843541563125999944432609005324537538369810163766762658168524751481526963358285757175834478138323034901617474677289134892721528284505407684770250040127051263200438935753328114516793336566267829327514152237181576052629362722177464839184630248863044215065259641033344350208848508550508088896114249987173969075665628705222216085983260464553408095729069591593180800448437801288021596104459060478147897504953196933135462895003874459819819013118200150818389899311117835842669018841617900898861487630504754492360718347845866417646261937371072830858376789620181041509950614570082137244659535867429343760419732832312128679324718081233685853434595204957140247134884731850783870625983235512428444559784974172658871162596373977124378627024298721193302692797429163000952370610002975815011536898538653524310385284756225174925249401440449680362622515964191801031727571057441628790154031824974604031901084882597247857763499824881176285289117983352253316077990350752357809859404148010696302691332756416239111632912936825312068796791352036984619571092974086024163117514766234272871567113400526682875858971971347282092848588882062953216750713369352386973982712316388644188619432802515826405493658811733337018921331817907758906092869713149376519361177198937419057160876018882527396613020514512987221161962993792759373372718281354711498460341527927367913873217539708035834168004312431308811052714214077305673974415075417516099921375687984996192169244962192751240672008919939513617924893076327700950264245764164850457464222879323503440596564381951214772255802389637596764324176125371557621937059538902539601170795328099212112299615438308400704003515590144845090410303225716508337445005850975564569780924320020297077026404095852936091604662276368452263935280820019701479858485507221036639626576295599607308272090383514783644656621949235595512416953205629634985375717598282928566029101972805284953006547208569194661394994153148946898011650206352653913438295701398347006082162493604349087350296239746642509398514378523482478528893838995293859746559294945289190902833440498980813857295963580995055375433493214568884329231734491453991019697806627934230897014115284175756800582237920649463178179794103668426175685076987408531313113424965441483758467541337548838587164778148640991903045154977957477271350059354460879802363759385701875672340792325107337921226204197190807694837294103289160692440241451607596161887222242416608191315658733434838337032321692263729211608146594272484421283431213651674753665377937711442295360610854736027346374894650935129015362841428536446175096040871011736578725233454364832598059923439861168401307119545302265950279811573888302852295507933634560101440031477970057092417971874890105331430383103848972318570038397199762874757652655500127977355086688979247843188953990017769246730518844015220665517024430809368282643216032229870075488321245722801796268802708171064436987706238947778954698888944306612980269459837197454749668592315822020096290624487050330582100799206447891048097854253008672466763156125491853124584934528126782173930951849968940434264148325984129317586969335243088914930728651976785428986191235661759891421198620446149185076872749312093258638047751418614353222966812938715356819391872921964351177279282332488809096698801358800576279501794888226830999611607973796220273339805149984563247991609291276395265847515465826310970589150922329069279966054790160689384845025113609460996292341859495852567854577623074492335160460184738329092343110128772414544978343082099746093207497372251233349602992758747632359852534880449008133177123640936827958163754967527776502871533760288828723720403286827095245009513582139170154600524584122625606530104744203152680488037749750470615812114349836929073816627835050743645741586413145406791523202880185516848031782341811944233552310757959195246542401761920166038237596222123228083360791502417944950699193099865095319297688503570983946040414466288523935697451801875428713351976476992259229838048195506240858169489340933616415555629213395767709302431018657370100395614593282661745921652329563641619050679968464372113752126303777252031443501606117366275825438973164254915228502992420783797217192517554534452223439289328203815739802217466412844537134457237595237963972802524282328680777730942760099290342415341306918523202035999393924682071043107586343729095140079886859762088173783023247149784304407149089085515353082297022165018869546454858259717879907679906369656381395778087027247744329651608877374997567344025790227773832195390811251452438022330983755872799729006611965194225887161316427885469169523506364420765574422675020714666878122353202467863652974574745848006426260344114653239344034462336441515180120139034500687264750725421721918539611781409524835215868778667842551839599468916162450616533529536866887004811102061930700580383534714878680796443018577443108380859838439981435499866989775092174978996065936786229318212512968127623795780923883954714116781906307778170606833001519712000367970780026853730061111345211090942287277040418470919805246616067986534431709196294452754289131598821593648188460097685777413769185811381151331945337079829716225968254322643264245144520914486074942542881370593057836271748403303258962967623816058943387248566917008506654101841491265451030855807267132055126047059617863138047516879357513311571071287114524334192063465891544876576613485362415460543438068602119448116396407749231968129799667839150537870531322915748134882835422069025440728137399624465972655528410322753693345685494416095240875417769882426359341544913282428970158008541856888991264254224774740409390079618826484029716186543287980056172048609361971768485221486271310939402887390769806658864969587161133387748351360171946518704215578306968648165006063698393862409972945017242810878199182035634175178627349778469289138091092577470509716979319622467564983454626149410434367715286507189802295029506126757214590481109007719829342696365084319002584650909853916831354734222676849859731625383100377954248818189343449588391538414993970411052648299517876510703096166225541770264407733539075839880214387152353472653874860572418499051324355631196713592735245481730639299580028200881865401705615708906305253056466240933189970656509089875027623202933694067326184159817951220387874842675164262324687489242374398536733890656853248497520426518854457908458590655054791458299876630831258061890183674157317915202090640621100315927113129269626813546932767441520459810114388955153738903213575213676977786523762651320082476025257861221579885014813049293784255655822886310893915098791001612386674229855189121918631132730813009185851931078742624400964330174438837292669755803437247325262258150275567873102049422782403340715752344702073113626524425085208479164272503483660617145750637477261273591330960878005774229753749121998299107389098471000110689468297843247423639813416739583437013296337756097556380056850355672461628673226610586083231917522910995939050222086585838183706671822453599840586392011613380983870722479544404915492649286261263751060806192518232006970523558980677215951548358533046285328593736199042896441087599331971969801302154090269585261097811614993851466057910865061826858213323107545488566646158698335916881751199327142803783670026933253138973578494513086025451285722276323409723729367900551657983019623854662235647744511798819833469014801469381151598374991165644997842560484540951397515631038565432995264739632965195468165574350176652192674243622194814511737439898440344316947883241128711141011320608390342463842762855481357204174868950991335563633697203569396570469843144576998359761993824141839811389369216047354995069027527837583570904706676834980200973642425457823960998001653054634830708358599839614610887382056939448466881061554426104335340864223335134382223683483434405114628340279683105701176714528142855200427222912920176306818638817758930099740531917319946107478671319425263530162604332940986720475962257728007915740796150854880387879865552809153665716709352433292940058908248481618395044157029496113196578303424858114443401846991258754228223618635634977067456211088889757125350312028953887587373526814055645812736687977611697408177740858959846752506983603043319613794737429913747996865424889498023276453724103807293830358636338384843641910728160146090151852529717058214517182030113505537798780223238619213057758450007356410264754966509240466153856554071305432143727530693082710634973533847631295046040223719752486111727865588458177122921769330610237751771469520751667868450643324454944600515610991746934174920500834848269781026930189401485375555816985085784002256436361876165991566936978213685270814598636255363154835111962206518268037956625680099930695234460155763521871517610377217958003822498819426800956636167013943501401246739685731198659306921765591722651129702347191662568465180377919075289880840678285547278507574655373746439632245641516569006871322419600845868884525551559722602304561095616808769768016753975752652498157729225515678647047732921435844157798315846370591817809024323901799059148031203545767324267638277298467572639620017325570280568425548462731844805031576292709299465408120952370303329759953216918840249331922250666335134613093326793880334400336895550123900963370962507685143967636862701933635848374121584204791864972294905124248143291811125635160344235838709881276899744025583864366912407011453782788420218854594953125230974875547767764671038768639588977489715797735721644260796198341481836451129712969466332293450610291641366471877774158316523276180309255460590279032413561071896900782716786372683617938998551719621065060084158991008538397164360753834377837766109019961279035652834150765538325101133670468219397102688133031056727612627174314829549695299900902655373165251090239347368175631002731321530930121057749147108059704006145929405321863746267147136923699092142839096634191495487651660519015347462910261029065358431822249065292927909124123336232969111774281302874367776682328521096905492240843133626639630937715430026388592818443995862054476770058015102965545519547758022971712682699810198614506539940160300157595320373384522063229801682319545615045766257808523486462265919834633251490898715836652242071571452601242534203626941281423822317495992019750965371522530872880566853913793789169849082410116840825287047987660590447712623224992624501315108458668418844246260266429417338809649660851856632971940076325500285707101746514555788287258245722011706077291288162337844823792375188401625565922351152412250756379722638650535304625137054058877228229125875034507168376906901316811520769876437917639736766443528701265076667383462465495311860239056591946874688145440356395543366595168849459611923117483631132868117310897329090867051302173348665827285047797278503452338880573709252646548411553450829785619996314301145087873672480131258020688186280360024241747900526794738660295627088189687725162121588814186095876470756494153821104401528640989031521890872034649970544923476518758702490934564778180008788461160188945733547623195784365803409130435858370913657740706571680137556172916521123794590521226460561490624245999473507979131256702885692545984212484217524233529674195537971193421008506519567632364044808960994210062968056578567891744813948949526536962832511809624686810408857449818277121863310149597209963512793758492205154769288295838960960413468589617683660289832486890154397575111758889033255914214410693518463681901628155688205861683159439186929635000929984071184289043602261082589812597136487444812921908289722397892548426765617403848781752737569089620505507068640693854241774305855376774686685854859988680905164522597909784964547249999246159891845611409941426446152085000485729105221169358655947500829545221398196957751356367923011682918026555928334013426250199469710671199985784631802386825488181687109565233042093635631020414019554645030228102621126762612862232221028902500548164625502439676051940278675932064761161007761276933249151824082702469493049272221722637394274206599056121585968831141240913358957076899948389679459017598722585895249725867757214914577506276109613848666825809177615155978398909275646204405769602562800487619274855841434039282711753233184535143981467513501666221296475519002478372974204561810403820382249918022074156452472333836688529929199726677903452063243965352840114446754262518224777568923223030557525105077830167415346611844990087837645317883533803046655339501819138504244027928122568567808595797902500652336972242606013002061584363726098446417129542549235627325345567209167795442690321098153392154976960139958350470142822528318177302693185345798078954898656014048398430755256707604053106781925854461807695971319492425203417061050270023319050145106664554055061459269370810289801590037931587438633210429087950544136395586400091652484979192543178164470881207591101917066979600959116665274199687393478969579161868637454775058466904246827597603157895791071449055624803414753975374796008827347877858641401028138614340886545131742952941862610831135431275475331497559173916713065678613850506204244570671026288276156460144659316140561419811309760324829930394982568730076061651715760615515789344020222245574869903597964468095367927500634893571881328514827676517401480654293464374115339247393403594189062790312105180419365144616679167470071550142265681558621883812118439876203511192498853751091297363817379434318038895730645947409689714053455841355684080910940225607857596979050862679579345043131028571622234905474163606490247103503419982787449185143573922165347452196927178146549175387425138872951686954350797337917766672247606818131767701131355232670958750271643151926904331963737670518756857035548770589617294079397938974717417366505111350637204415288285090659886663763704799303575501396228320863342130099252740721480487814531072911594581574766599736127365367447387467053297005191504331639310446126877700188982066278176116582009630077519234740695136571761718083458527625366151915212487522323126459156887647194766705886311972533119519938316572666658394250812427059697124386463252581250874506491590260872991084972663970523638476471150533560574670531918070045277829843245311057071935471329432087531641257411767464051172483113872980514318851340710469096729043411244033086197022305878684460339729324853387003851854958489542754883987012006931076874324965720532542721075996651903476390085298144211766635890988760224361464146213639674597505732722078210206621230480459342567510769405101585238036490944466551337724762237180595775885608543263201837642026064129134360359903265137274148796753978910920015727769203604425081184052997929970080985846506206991048857664000174223372842342294759395572645483274763370570005730616507834818858879837827793149479513108696587383788857268381254493096789998753350904299699310368950635914879649114129067654115027851179842196601863567761865818359895252589294295630843432576385981498379178551271842803831413898690204462487793436839800632522533705031520245758254642428523863239167880891646512008835400328034260801676324926648445568855009621234515525554786317411598797484355802513046229126000849955405321775672738033820847185488217572707020831311389323163881736856967285440944798134429604734040765277574626647243727170280119084269305096639962124018965793223902745839278776799254319549370945637174456075763106451575383334055538844246023346488153241790225351297537428661151335687798480487040875746913049337742281572729562392579988238954528474112381712374414793626443441949874928999595548467872035165188918285974428791391041757353673658375188254148743799233819655787817033093447346902989203796192669328776306369988428194122792819050982010721313833767871927201543886775409861641199843461782828787901186128288483760012243973312927903563979011847928026715496003972730356230463926137282684463497196575862441439647427945203473456408774177687679929551224144471785774904688381713624332740906305020342787004350809797489529581912544607009941369640410615812503144018651825470009080283222885497889044292687567067132272492776964452823055937826543838219475145881604861400730842216492989270122955943751610418738022776257813465755914758546103433251856117041102773238511475361906685827161779781124905627308995119653699806218238256766172226274191422034809042122701849890170445821297749760316719095490321158785332610208610816005747772757661613150617548504986991076548909541751678171616722371924490154719516988418929604254884849727433305060857315525334693154367617186381849331814022712200943584848087732247727714459824965435265979558181525545094375122910443625605486152299162741293782550982298133782257946968346266433758292573895840210459732552933388734869299332299959818280129950885427797974003053821846295207167204802267976245525918437562305541163429032244429472578200156667369427879532794676399316558171099578634191792731296921297028402260993695822930309393994138931694652650582207830787095372294695109992767304045650234728107322291875482842517129095715807551400531542930247558994463215290801401118913839424225121379392006252441790579355993298042086464918907684537826833035979740184073727985956780185178136203955723398196641168130032259835919786166408365149275481486096893232384804560601456208061456151903056757971193696216402099518809438771560187870116994707054859169864952495334808065923448014306242978660257544978780238662206818219773862613153723416073452095535180946646260022720593132925051396735929312598999955078759745101016772991698517944679864131958640360441465816448657231317646199798634731137033847782011590769549560777961518447953745498491382351354668049468305632888442887001348263553244568572047609533325119817308520078574651375818179644987562065205760671641904575663036366187234536866670844620551263861637093515197109731514126281209450666420279911628277813717621800104175499133612628034822301516886569314217046358496747777259155484785517454008600572883229828859080142533516607007605435140198290520195297419550228338052767340446668506695585929582250149110000448791879666113903497291848233005238508047804802644661245132849705161565134622431760905903563285298812918830885187624336795008826049333206112553984673111113943085745044295390091101628996785184851746553789665983161353480983278161228425682117033506002906861068293328006014542145869256314356281312155831394395704389526038568971570476268232240293941732672557583482257562182395439191234974800381970839416239599789706400199591894387158872163185954105342468335215947515715427728612551595557730118599234517897046648263674059955374282484989282841777137834324699015750125642731623396507160412427268205015221330850871798485221083336865445749651386669885298624226993366983026770855580077223864475857149490943403667670492370406205216195809658556831178815488010206479952424404206163991967744527617629870927695751238887223462751775367394491308138886699711834263589448307630363785490155695181576821602314461807278060191394920436217694388556211466750616605912563260929859814369053180837524011799958328896294787338458973076153526385829897421973528679413202817708602702612120581030167390654376918641868518510371490729151514036043397195755352868283217770019391106750269045838751110254029881153080734953287102370415714715525360209821232976325336789849447463358930309350431223913022469405544566910245629019871248313618883004251215717245071796478184357408613371624195383895249425045687587327468891177989562375503244606434009110170157582875191355705972467001739174271524080143874397709719664763481753029434606148273728397466006783978677801489905018432449022983726734122993189886685536137245421619503692392185209032023844947762563991990655549841633529796450205104904942124028083105363033134738879032471729290504474551303520830775661889741248239388872147876181132004079104937635194786982187936971353288796541860917294238128816142222530508746141150951814090231850313349329951279077422012353571846481277080687722888654750962504812371549192377711516696489710000061752780851772296505736695549207844672882525635251825518196533196654845393841116759769441448112418601173429611131778535025346867300649557356308702208343132103098081202902562644267574563427895758234208207742772750917460661435947111705070366782238955503870763884899659958100128173845911719385852122963487455671602387157939612790082433193212658008440612121315013673044756833072018455153709841544453269039694327226604932897000881207663994329540699148747066312492910751702322775030958500140525834043168718689161327955975567262367649890885632613626001434175241019902211217826392898660444228379945714678867120382519723406756073280300381486716277342437001332079220839087626958256806767899178435863609396868865680647845043744690972224841072915272034857955930159826171723056375421852409798944660378358551623035399186822563544090859530153355936913664323544616078706771744223488653907328287712909766661307679919221101250525384979696069283909928162494026548321061559724957134036843704420492513048489389288197602172613668491049107422536810180031195349509100213947480221024313989005893936332361128871250420285049387543863478481764744026090257566930597368446069915735121245985376657567245407305551949413310522754000356015942561713606595657306524816721753597506292743029254315212259700972943732991759066735080546194757375021614439466095803535964957115414278829244463828786156188308904799764379159075894070762675564156024944526878800428678067667753497880079549117732011294649521591023359136669600711845743960590447434930059181811381840282922229217674218578450363972971069234733511233951300745997235613157912264826796048999073446287784639815456172245731340728635572314755984843934907392345304321200773145276789171810336664558164428386868422830383105323743414088301392229348637183785169908088581614188006866745260752057564019819036164969981488207468300990679140117630006317205387765402164334581092806073793591827925377066207351118211534104647913677235174671061156969371927220487050922450725736432355599563735629420983655020522937094920907193624721444228439046648807365309572575611048020621314783411997778884165571381292351243122142249364731370270666608386418534137884652123127809767165124905858134236805915622838824551074388936536413136468121697815131795424445211485971979088453340481833052530152898108842495132545316623380264180514358084071686795162868915054921493726513044720174447984607933543041281110215916666284426200371603210778704837826685791576913316788028995649790428285048273331778187936049235257688163106393280195563867752357509112759755921085343925399216005097149653469342540495143360471361059910162762971815669551735571822569198999301311520005012096743036667926266714768056767951485878688959393289300186467258685629813967590753956307208337652721932792736478439688419116637184734123230605449533032929464046548727275105040890707905340813360879748633502865104072867098047216632178882226815425167361403232844348305955994205947474642362716247229632336175613821663669863032578058905016974180071153834250107865409867643699694962994537936685454592321322494467723233009062401916442902086600066017923989792563904729726652864608892441511081097607806369094488225263483928452134874733827334009158863483102146942978999640999175429654876250318900900761217301392618436304931288152801406636244738911624492736003814727941634835942609934812735189994718225729485031353151064308875306293434801311150095324814263109336400242687541223159686288033592798069313303661887494829251266948822196574465946837468158293222161238575694175741042895724257409247115468126462336264162567706744790772245922250481339189404026344899440940420359824211291931481612385519714364328422261900357058251507219786961255146946245820955880522498022376719862244607864768607232209429234508797966802435440003259728907453776723378185035598048328788645635645368176427559183980841939080958189333740845020166777060027629577994421212224847326132749254901855581474885030409380068218059050786690859394185255897283503114288694916324190109235586756462979402880560288950334404915714069259147746004339065900905118071181926158278639994860286611237788284930522983853209803568649340269805542456756874775089691560301877109372060489158799918309950210239177980718403351716343671212126334410444343937930157570869825489025172159314578946033044887693066271494280808415773693150831481939888109331715328242805884427684300333733006122266326248116381905712555355382037179144039287993335824238436620750010061851930067812054537205140595698379218331013296326463064588423256056882488181526288510320029718476978662881878803481696828191323878410001992301689759501624749947077457492036857927992000888725414056730245143884617523634630685265951596570340664740471248308342671869093410247433222058477280966896787288898126509622045877244600535809247701961630415848206698541651462528616809198553175779357958194971106266995459456179584892584485626940057949271982724650600228297603449281052162565216860636805053198540015040887617111071504455620199267632579479290092703029415989404476053061064484981957984862473618986306753043302453688592929014702322662301497741096321111260300534099279228555957712433627294593634708257454903380135380814912596006132621334490088524059968805056894563810506949308062891962276953115886143482322438130969945460720360432148535871457798267941767941976483035231191814007493846453147614289678121395703426847995582515250126253206328061396953902608406863323588878195573920397554320471320466269868074896566818350292889986176484659995512978105158761951533488906698446210861343229399543510496875544338652324673066235844556147187084967569508938562955132166545825686920978010944392057969998861002945446240350023713955349775648706026994016899683598393416148047550755978966104693413304466138965462085697543476828729103960163633961876676007735743290046948794348061742166647767936138843903625385046408482062094000187083679659858615756288341156657840200499746303943928214314735510547736195303522954173001338829479066817028315664013892506874243345824407313670853943407872285916636677149673535880499785351997018261206545719866590614751746939366718660123771070726646252507249461652515916245730593851027116989927355180551022273521098704096760766090303012728550371506244682209992969928559452717295906025418254826365886706210976229117033899539351414575598438555011831963405139748625728523776376911150106393204670679642117992208628059973365765572126054147317168775393379284391548619196885371342956326685973409998335833562010837952326279922410420087214131574138646300751491814201560310350946801227759534925690866251130333720193564318573316016426028426575935805952510473426579722505274549737717985328430145474705908884820541728128148609652915961800932606924599286186530952088566889941900595990794223646468739607300363499545865412795964011854638280244296887148163956833936307596470594812209363782978284625855482162532689337173921773916659004560877873219303699642308096352187432471202825123649102064205473179000792268833013521265128649864871046278376251631735544889954029464919495716189128383629894514508963374306264202330762754278780763792080169652500448950462669659235819867501691832709218664032045002417075739090578318742447564981505233354525422300694979380562198504986071898175047114211137750476972502724545433454378153700005148180974440771677691594566072238568320940263968055975970738566372939809945717504714859218596972033409329360976549574710517389999835549004665036534859577608220020875216902502417565211300107782957711219869236582696441880820202613610911645558014841953880941692467692654709155688205445304857952402035138601117249290289477239567250020908764289604640755964148671688278049552898453245502873702942434803641931519650284982549439068586415015765060820851879774244798954769764914175377787344404191505899954414957078484317935910366032126233133230046950103376701127266207534043997555837887045230522628549411110541851489462498634458861265840648792867371950295088587094243900116609850587811051503734793365098692361749665137932582708530369296643686763139502468323586133552890259687547367530495630777652947958938789179674031183738527267280139002359134860411180962207167311190035952263182438095303359467851822543616923259566571942249196749755035404879988723286791342957252934948253569194515909318809388424285697407064133362789853251490457000445857143877107488728707135443779578270376159306834816268855173873327521418192028361150543942062520875480780076783927058364881622278201257111583086443656066448866131125892804493926860202032531663351663300710604897753062294689955897087724140651424206523667685228161069264726265896043514625065715976134699936683619527727279354829393032186487212781045556851736454795268909851438570863244289078481747049633401534555487581674291209455769999031372216699050553730347436166275302530843888281863845000586081118651640398535514896566988590264416372785050079461644773580521232252510911458922201516351031843821841190536241533288232545895383316557448821357905280344650516367907960656501065787189768840327074519326449071677758719424949776981923687967891655359805651017634263364946360690165681224084480631191042989046546412461909997391878394898254557989845821035263721034410573811927806229742367242400554682042637163470110517121919546538887439017798834997532341656326913134832155223246055480694003853323607488093243189733401420962902070634461449966954674881532668247590770519579097318922250383965212372486494997268924514193383510815957479516366151410583649058912141198695727015638720637599027032119897212402975157137078525667067118695448453130699902453836697818136322464284316288379572091594642233866100910031714386860963160050630934322883484979744721214283997339919032854555548942268816807586871573710520970965854612836940724896879376015230861120718136752879845550251614832576699617770064172111867952081434489620342580297913107312660529241403421120088590480440156185658066793780333955555617617814497966255266583213447714780356690926964911303461824724451004931264610046154753867969993545731975956297458265732721853627286538842819041121120027382702774707125665811077751810953644893497141436532153832637041502736993336874058609577139888959299990532110880862002814391841569403708532845723193522645616400013689186633875043877620217929542193267187735720941805309586929162111297226936230944416263352374008590684937161740956747797054258986884321417603026821111283550327220308472564983859369961296324344215531865557802357541605581736018208695005553321647880701191324965907134656204995949635106455504610634373719958663488824640665780429792999278551328153310932604221882145979073630423229816488935769938057127168695461745283756336784939935891138647592817502116234783619444591910582026807071209996279406184707819599835522228183250133534073330169556123337914976353346131829981880595770710817761334454127471321768644472699958109841471394412145955271864375788156212134813449793835654433953180883595545841667987764635077297603022109822702415734548568233593172418532215269778768101742186848474506809066881736981088571601973375864213336758278784734132287908431198821203922921568088430762672346767453721895589320725919377972773444735664242017985632254416822509190855942189008628730209281150515241619159226878722416019269535765375623923387284233417670918714278935458835698334375854600857956252690887287045140005180151300500088768397385496498298174975895205115776641992006752274341396954305455194104419517353684777328162851152105441127676293010287007132316959473244276736550520316313125400665124993409692571130455173040667880874808252685991206548337706513523148441094998019015932809905671838182672220091186362913031174653978038286419300533542830431810721171682374973751710428842282739354545438455601680328379620604390728393375974748981310530728884781844922659145514941966044940405510448971802439604758372750285364146513775909668896386690803970734162486859897398577150287576238014476309438871917722998932372042506865783856789864587937509988086629034121264071940043813836199477842451710801199323685636285093853746756221586953271597500378391887305061496395240420792189635668861984783712441320523741556561597237243077905869069588956517260352010875322395026963021515772935408224350289109848310140988771812307837709009784846485237421949888209364444927443489925411469350533439475537134217851150534129285588425343773220461468933226995483260837628191681984091002563201697883879727055700727235365718389181248448795935426269589519638466520577709306864211070303709322256438511841487188901473208255708657724583688315237338479533564378621068414780654511140170385982443715834311103692890230274564864817577404637545692386957282312738320129193371508179643357140320737609975716335023490690561024665067200093451403628499497375351607967727885047434787638491796230904765300867753726704384756841018754907959037402131052017216647262345529460995352625850291773760320883133786558881148791009352680220187530973080798660017065996237854598158312111631727801105400650087916823871047017509015150836741031749538130680692517541637776951599065554832849244565090169938222198031997265787277786178319149033906060970626427965284599733988609607999814349774406306588637536859542794633959510440598999923811769986508446096005902875905272830221147623185022502913705566349795387890298621217148818349616357068164248649216008386781344480105928493334054377935376925466302395726521763596458514851352161096511761043321589781666586515320153162521823331946592809828298992600460987129983459006856639885949402892344169234897430154902306553867421769138910543444312812240938423712960459623695254629942260214266345827721152837238276555927653365042129866484399025947834162052918942109260210870663328419204477606060017441271670345265902278999391544039168355407705930148371883400103867454030210678657786480628960731537410088941697774110398884630480973244003922573323516640867154035121433020879677457535741318335322738771812284922954269532286934119454974641456359443430557179845436082138596223992658679535649040200248523460551227388141063588474116967366289498841117834319856611969396332709115245750695011952576164374492583070258647302267950215405673717931241584359694659409818110424499977668081459999298706895655004052262077952851948063427124441582219892505753844476299505711434350814746868537856608640544359635843472441508071092514894558518623766893569799472492396755248826773093641319901616130074361816069821667201431410441378958196456726289684031070455235678560216691062256710205275725071323019074569657517299537056667534173771470866223112549331437480064586656834924642185860475109430045178127945386208558501174241880253824785514750437852832318257640953483452451116827509109152343108321690401337696663101836747528341990474265387624506355072236068177162448861608509290353092966094012406315875793258124687860508027961552466925484082419758182205457905270558605620812699622674958314710368172372506260132150136742447570917432966083379548632598225554481744942553355758115775995754296256179064449279353801084284014984759976703983743844058578014375905334863684478112237487699847865933089990611760126411920086184550106792639512416422089432804256587238718506861882362072881042919984720360074639643247592167744738948136624698588646971841340823163064312257425935435857089500773399623673923668361465958939875511338686143406796421814246742271823984715257723217747829878556623152391935296327186601699181507308737265162353880740271204379743410748891437827999876301357578776176148830026099859422633536893999465170143584111900923743825589680615334459279429904407281998888441363451558063318734205876156799597795266204239253750945692591834704693251642719601407875368587728221190652428455769035525799185716698120845694155850269052352062886302399405766010192482351402682460204642032777876492539275374235385046855159250590003066588383479834091494660127157748931163729766498757568375585445063180984364426798578113290310558436245810104621569730006002210095583110503374989843563646730559845421699979091729524181792214710007585447389251671800149153124772480884574796452273181462896046367126363669739244521976298233686551721506442230349789403678774052411161665803311209208575230323589797183889921549982710685373891919681230109287664444285815754466997231195493587004020754282381737459572486470027361213213372965848168347370471509159442968370991963282165179446878341705512029943548315747342290354146120207756806320625502459322180540785262412851373624286508782646243401102390439259904512608120714877663999084460732884850076012098602447751592299673085244412033592158725138283817449943062304792063552331406054333122167260770664050293506673176952364185464279279047481224611512070502190638999017194526074366301956533019935850720297723876294138590924188731919621501306055383021705135153757368574754086445722624253040799850872541737437800816555267933769211262550648081627307745531522167212230544965947750802710258370379511143183553300388141090613024236923474080592375397092370778579562831154660946292236271377634914022721547828046432765571435867439680623495727370601441878359730889384447513575527465840853716165347538543819498652379234148791088404010708146772371741539877808668665495289717463733160636580395763689184439552347250344926240520279383738736777875142571269435198005062985804620312732095001447860041546858453156373569071928883842524153543678215113815731112119180126366990790005511380468297555557072387099184268616445769290203681089591505891961026090422033305328352599722411905494815738185408722021020341848633795507097629816631226896332412161729235827213499662829758398338631987810093153917543116419500236806128380153152429638024853776671355684777291795167652855346613951228327975643425550405817049062955736868554626505391693402715728880362926763838626528184414483830625554933815937212514599874858726020833351494062377938065116415467062764195927285790061147222145867149005099266288833260764667828167564161599872048659755984301033367106975535198016905602161556438951584932331265106894143144541027884289414574632265792494234518208720322633709216180761117963231562160364611914819315854741941544686042213818065717597323345871493349158624055923250696148234135955965015489112524909985236327257046552493754017412606958457786191550805199468543710801845190423222744864455976958558583755370860817134791152942206190677078317258628638650358222529830931030429110869533558360441917486134397763621758251727789495495698540543669004585796155259361348019839586807434321030888820187041928980077687475603206644901791134045332134202741184570754401055483978508826198256675552312241498136160646592391320738851514437311366930332605244858955498998763079401754661825993180682305579193389603500793212077802096392481368876575331820905763005017152194574815310455189263379535726059273954147331208997359452707983187234658900097648140774997642532163733756368218444802359541299235023083599110927634215957935064801798534892439568257072605640424640343375739126199646015538937406749174298887217669770096143239169883005884711852760752548305867025362715948986150249861042043349890870236335854829576746675349244843829027270863870517858068726858603010262415402353972050438152125432441133276137388828095623033571955414661555324257678869896601846668006154796933879605081099683277584251100826660872888287840228735868856892553301709626183968584173466012445338974910062880548734257228600836326502582479634325414179148930503504328699529501255042794980136315210215434100842839462186673531831092708242735797153787732947556809026504801540259872715639357048611134494650873207582925974868432464661377092112941023165554803925571068083871910230762312685136754424400264467569267279012154038036175904152542189175523357557203776160265714853057598406935213436782981784905664566434800081305975061602873998792811643302777477490663166567345368189803544113728408316067115126956376639075869929069085866576620047728530355869190338914505119391880064581342752561467857957266995027146179215243899545024876864374780064091823317532202654807999490044229543235687919824575211486164810447665140248946272334593901607163957077500085285301256880362916295685663601318120736793338199579482711481712367391266726988134642459545269516137317605661130790744957212803443400942804280457252905075198737043245225938031110497483267304023857989441780288682983909019464593224225462821662556361145238926736662753061856843255554644013146145090623795936359587723138324843914439698365616681537865821830181460862883934651224045394498327526181320916242404572928921958431601898350327245702140768081006545517872909209691806454417650308724730467805917433287100522857903687777030748956856677986836941085417515671678410848345825687802504679552926742537403502305921948561170686733776647217999794132901575212252072386527533653169623394558867861567373743405546785647861132885502038086486461313241832873073762668524183589563261999008435947588104044804505741737940702493145210086815880518028908169146777468271365035076077872786198560865533756995773849803889703755254799435700803442230390401338749498819393178891270970038167179190304673300430599574621914056384830234199667150217737343136326125064593230440182967322728387290026597459341488926727723777057437592389837351331807339336114628893275523254177734427899159476181389186129329518779061751819769723318742058570548197079025110437267959635426034282472665758298146047229203170048874401516444497064758646686814918213731701752991861277029313521341517347090366725549329432695604284187510668124445397543401653007075100347684647759966625220040655186908965436517975961915341392176530666364413755513267564599625524660345908515952829383826515665425041914607834616459027455214627848022243872554686661623767945805914581764336887930372080913060459590144832905481934049829562481413865648381264202273807290512256145722033336580781925006202451784634065400568605800179911380949257356564628375326740394944129458131074316299781583623729555970983504731345044263967344447222280384878992222142614134494971972051127891975797714893617681310948825698741338963083765978222996946982736201863862537827646156873754315958211823438945772884183127576721209378188842189250224954398820489594088494552155893453419700716202800353724665734566259758553074139951480141832911460122385844181616108268822642551384058769215670440114493886211008821960819444339542240413339368850858031509601084517380982669898092774057859982075764707753035502404740292933300362238666555369067337463679605225775460235485970422240252653844783237539626952262083736864530785146313845777960037970450541328894194673287306665353841407913741637279557151617618517779744226835702922874339528721030366454805358925256475350479532966746611975083501376578712715154768764105564382912233666375607139206679155519210199837222794169230418900173974969579924847994703242255051019993408030737119478041708580950560436312062463748668256856270025611100631291688307077010148266252668880445698674107660267571137846350362101089860432069631269955212826287414494278310207857287728492568961614642127172836002118547015857503051978079823237708913540346728310119867712001783534105430903172010067153966400537007072285846847208952338632713053619498544345127990916223743840259657560280485782974534348903870324659990552399736680588536234650016604388511209810368699047296337998256089432022206352242599792703100047559254450376899615938441691510653522307283282268265581361966969918967543759329449852590605036992979415706728194699645060067591722953375297413347755524930434054054901892186741749909039020246013374435138454864268942602287969333083575338462796106565935976905272986118841754948823779914776615893064340832385592333078994483560626568249303823825461488160639527037822460883034276287402523266865939570092039621003861775226598532840797207456117647831682134835932566218511330983246367628277434654649761064995431894094596198509460921451852004267313358987039906624987644126655512462432527124453571986595833142813198016912224870849211396386267598352819646155060148699402436305765609233309676907286248929956610501562413767973760168756429105550114005333864160518853272315048413289700139162766199670670676566506923726810922788479820967198615682434573448348176377804863829686165564874364374187814554440784680218307219505352578796332211165706182691850823078995073604199279853044618121713839222004100585913167375838897270042263968876200581559905809434387974590668408530491342141699173705289728075432404478904964202835139611266375927471259178154941130216263721431705876577661497578820481380207017046070984797852038439062412765320854688457050279995700405689675364414994174900165502560117781121435851197019162473069322892183048414570656037728119912323105016947179779442859296921234977687390473146965114690886058658771056665863077441271963711945126546678550749478522128454341485602856734049750501194048636616874174298181551542505311879955962398297229325559671524185981670282828911275627447608113943618488507915592131874676344050639493651920811065205827076974042043111532538220852897525985013685216433932048979540284213341630380830209326864975500523452250008695750843972742164897830029470928185412772069217419762875108146130973954907172900362355117805102671978251476469968578019754588339079419605248739010157855036828302848371308209703455279114415650611234704189043575374449089039688047841922618731192624117411807549946553647798508016773537998106595069638776315493009546577143950618790912298942065230594556009463038982462956071221556570181388372428966006648988510152446001962621364761555214758118984414147012531702595651707902621045979253702671426722652335181096524073447287141743659149857988287609409019751836839596923215068278729692862033172843879959571919299085538267585005442001463996269965340166406614097463755112158343281436763689500148796068014788279686053831000297151424735653742962374113340307030589756157711532987181274455409820941327199258695851381311900448530426234979265605802596990368595771453270754732789779333631163310373636552643567352688686763891268962185476353635826535574406378115102741268923950853084265816946055704186191327894549547229571390551634604687029915199887618442278978753090970216375707433349146074439904673610443388851943919530676710613055453862995024845811762853641462412546111975026215187546483643723617580111148750238441130813537897088998688512114576596522616243261652351217571603111396773620854497369627180259572949099423516294948603115511319583837320496149305994998191436786618489965364198347891152663475413373113902284610146623766256773669895224430533910376128958798656630259478750665782940110914878310513657383487557505935150818992234857346656034724070869114268689076523578401057328673495222656119735814789898708184609109472923055004796613379333853600407111592487498716477891025515925075625978761347303333438260230204814277984851968807543762324732957879196999999814595755965515430085560031251733365157738341807856678805973403528212243360778759637322852139824390562337275953339389143934367321164000055316214934541407968340646273750124635547355204065831132204452777055439804328205518442302230897563023968574394711591664555920610968371784885769963128487588473676968994151703745776433893332995372721528932278968536508919807096254078633120679139695639127673120214141599048332058567174017022113556048338795244420749665995846306571262059809991772006201875094421092493841506395816669236187310639218401616653144917609343785367833257929260576851569457717279195800445881263410992799206249860540725539087482297864953220889556896720236290674864647539585839250766100819929808998599252131379281154251094867049908106298500101597114778969463201238065130186291842465060725758664956766210092067276723580030113310832190140903688530994705675703449642140899151836341115581068586584415319738542239790469123817638991725043816801894625036293215952365988554930652748553764193995554813097773201327814743408931905779516704845655114215203012171834030548141989663713783741313479534408888344902844713235975943415070351093675912608245878329055703997983096254481595494494112923254780961018000004105887970977519177590727433596904195596606660775765600303504931005926647415850263964995149364612730848386472677119893578769365284811607744449489776259779579595677087185342747094769498825597058035512865854135400895465262969641845023673177001514542067304738877053526710500582101520275236408926327501454817525474813203962674135271459731951256410201579451670835330157247214183286552649030106481952420314501470714396232250804717800154044304335384714386333640438817741346041571506394691934837945747567346281982332400987380782995052413545305452258212089344474594520335830615741099524786905977261574345192087289154994140895198878782460922608207573900803541276978933298808005796441179615502046360748947322126655358439309246083105243482213207006814627656294827356569056146267051124975545883995953590259632988515886809929965489967676330949778686723045451554954187699731386068551290889848909300207812042319934602418889964511273849086988436457973057077183742562161051644629548649757634025068942365312738729793569551346063719020850471362117585152754259992122908348802733500666665245982418369898915928845846512974451932304839286099281346410524412142413649519590655876780542876446072224244009160006032675964776850547182343061466386489291316085606658408994659977146137787886801413944974992173438908123542172289500201704646470860470634816777759691225696404963604714147028665181083428671796295363188422682403408031191974988108730028396041132642488192135433203695568685200185174690755644928248046144486461588407096405332110462403609072505214137260839602955568808127316850541775316793234674951973487562832455708441782049583153550704722760150185674779509436994302379611603798060256993674022459654590193856000706111591238679208878490562691951867675491161399736451322464797798340423223630442044274374195193206288815216500552759389167238330144270839285017581087445327456227320002435860141796379877673540186360806782115148382456645901005922882072550477948895409718383773360362887631129129882534744216942078376774764157400103865719364257134936727120128548333606963722655890621170402200966961698841924582000493879286119707216897983609841587482323890385469666608474812489748294147282268673938164575930368161338506411011457114785347915198711395897353266329743240944069701257568153467094426363994398741196900450429517657785292060172874939466062224872573405394239204495106106498540528829857213405876232430450846917272108424689429571318361133416593820515235499355046041979904598934607384682492124982270447938087241933729145222204024547796041206266652854849711736393871978322285648498800108486711439493513041539665156758926076080673732392964976030484260635425508147172047753209528471270921445489924620929083499461699217333331615680561761726441937878349396643943133093055486302196735800980963703397058221846805178739854080517762944392596853907716047385669107792080637614026863978102720819838201378733406913116091306334698622813477127108848903138427712603498319019438650683088803331927185162325528548943580007060435827183404454732667748140815539178690258546084364269576781299899027496332901486150044567563772715123949800494133193628530880999580502695280093601006511449595011233593245798567725056398429420898746230230955520617704428373488348144876849145605014272488306143087746037357468697510950790622656557000348815713099932844334604934332270471522795679324770323258863899679657253462078159606917858322690992289296031435717712280736948776974288355498908844828482786039879611326957150187313606830132373663482493308775943301283079886590002726744254800922779209837896199343899894929354229365345812423741559890666848983113207290752453897279784158215652732043385345510232859250274346467646818038606748825122151403501919277192885728627835231643867063732775489947611671489410313304851562294550316749141966975607841627003905898697645367290422612349303871698107429224139297332573679073094512942268781113313299912398283560726011596535514934654926229893371011472368131206373952807857033719069753420398710643077080663923413959810464248304295209220716992361619751339121617184248542853572828016339570586247081770978691678747617614777528351113475766570307000383742043695330446851778634431581683431920397017053403297142655087381180464924737376107452997950012467942364619835150525228119192281272010710998310076995665627663217775747661891002163755571360035897068109225546223247984589945501854416122774509836094308839642254181970777307179096466862557077501755869129092098846410134285233460392498016685164775408285509813359294070676383729048580787625751180049114591556152376491039789167376075246823639666943536998104238035068192567356030432426269012666881488574443699151964349864745653702310029721942110615064385204925792113791408976593388659173106093634087170227832816020833718375501328158387947918552903070308465342671321417721939648249482132180148008171696755756360700990457592618006786758732539973416877424235380247548791820949501898058358549517390350153271165811261321464083477578201706742380094969855339998353239133882471795233912100875855532521316777841090626698339932139104152524836435295120270560162458937314488328641094021635822105689755035366077288645520176226031292263729625432066506559598725549026829610372694166362399863467598094664901446224769522881170883990114906178440795349025966873987291815842896992407490661113710120128338524664685710637574326322933529925781260912315922609800786510831175254945739315449200802759189431994658650284124380944557705395982802505065469082184036315312230573414953860921999947560576337761619023596228813453791726936954672184716944915779543985045482178444090570905113873374173816864708129188875059015513502535238316113094163081925413921940671591935661513315657121261681586608974780508743753321428595787455825419942160751399997688017116552522836793531386506711563737274290108752455401101581750863056850444834407245352705258516323992787200520677145050112587341644544442137454887878520931746632126324446067232092257018851907230004040203359061867413919960888197222751686894819015660821699853436755117793536386854999723858364108163697391415371568618017989499352452185572602960942111472409512085665082255585599475971984833432738700413318852697617715313306730735489037569909174970443134012387650782969774254425440188555499836233887491364870864951680342345276668160670255606682312878536894807627538806680821705201407697380590029003502441121000612355681371546454421706364284835323156992263572819596143297904810504774170582391722604144851853172735862829286658813528388037991214247842812806488415499059840895070202897529890674319532543098494780891522917261814548734218647305459772466030781069680152292009056445598093862078982995807902966841496519860868471329825687628940413679374649482471918846322745677339704084610578282528463254097176833142481247321847102737085207325010533018089988186778233785768157012200173745364460665637707502326617383408019703000507568080052835982866529687068623628846602496586346725000445277221454092035317353038585314263659212472033908113241161352284910195278268509641300751990037169410865610452682257807715358980419058069715506573490581238316676797905719524606144900688843554054873146421697415769495298307894450322138884228510361406101378826029186180793320768605389313651575021917519054105444007024598100772477706273828017171762351266322032109832722555696027346184674686578814870404663948751651546245948568819999817220480934886268255989457797340649830547474191495390436738084270008065623604508954230429466415766670775611197788529156498480903058297632106808855842307047357832188096576273851207596418338206163282426975436072313615182284084099606600658613701148962672739784459376169139562004568172614134379502492403199988374995470241150377334332315588212705229353889116092583321557106863766317160438551703341710975746317135610714864944226027407688855394590415572515809348698090383143189661813980953913627129692794517684631359586802158740430957880251069148485971511418493479991878012808174064392060344427510176986769993319403365892334506260255447565604469723922083592998299649985573572029996130462706363052587291586403263341256730400262150252427190057031527027639583523688253965153138905751493059125609546797513185026720676121590101889470031814013279793898408682888065270593327146528802829088952274766911784792979911584423895958394642876301715809165327119181962686199174526871871567413893340806748159564233884604478395623044007020176569573219995765051240153683640760918517323045465199724635771935791016375109220133294876100471629775230313577763655317330617647784751673286832917099352944831364601679123012601837926672001378262518128886483875121864718200910558092944170004943122571500606895370776935228207163754669929910304287836765787216442309632032488448776338193568766715707074139931975072126279944855601020117337350843636261014122897476267452212749131063204999532517128619969611458018728623102960287339426947021935214736754252829821231976237153360901747195226423018104526111878937914336400364387798642234116662241114133417397544678004254421451545895812169595395208569376045185302188358863521331993201790518944229924849998626130076585061199780208970754910307458114976778181922910545044351447586730434435280505519668508894655915555724491790882281529110831955127583643363441502229323053748420597226410073042419378755385098648497297531702846623694639515189320102036464928951010119856207195307350409944438294173592592477875749304464009526845782951728257048425199771780739581837672570423156441251371891004219829538549804355399301511560951380960831426111127154388936042421518287655717389310064227145023714830451642146482918035198194352445166563265109775454525553264323022331698404644262587440231180445499665272823322269638009137222455845634572420591014944617149952241330189570837373977473772413495762804481466999929685679526112651193555415807189243268454531911786841816853827973836220262718938252349164574307232571894997463883395154872259241435280574994552601354886196376469871244099211367781334187888028643920731830500881537816566226748206181866320548461597434747722326202110403327019400464481017739174414423499404884121000475627451104814483123064487604752028107768459910884752263509255090342086274067142676590483047276342954445501172346392277900979085946465202438782461056055707374356722506439606979230482946664143206386642277551929005307320126717222614905780858585689849426624641032497200246377901328925140314070036429142998664836205865788174781101372982735985448316698818664214427450601706236532209677802719659520747328508711204333025752239476702413499588706910593238219271011726853014005311961220714137235616952334361184626631963784110445547594518697979405406788486169370914517709063687752264097114929152296627205257910791987028692299962775062169552530079525952851573847039099538497742146841178549185254695084737854255853779804448704949849657360578929619952418780285414734535886784171969533382638372488155833951962590967329602208243874317970804833969223373710394477333645468107662693662896068153248526327827205791487562597658734934105094540749049897486954824173980358537499377525023321839367267339182155467452985900174782576706221589715213694080184918640839374176432474007062967666219098860110597285948296390009187870791579975238638784168159207656863574953849047548796038960776188369546566233929848460444179663149482367130155320993958132345349922078042362210654805601614489287353982020591559407930714460923208003142065671354612256597515930087755914145316831260947381646084596506627094234649383777518817371710008457325705558723724421161657444940518099074602723944585626724348642643921442406343858775292624875527035588527206527647484542920492671682950414433606410587928963010892858058907101834111760425953157229286880920783143637411449186690192097511858785640961522484080636938315156723907115586422381336072810508399303652276379606177538481940660520767563243843245708458284800646031296440586080944397716923965773533808766450307720790741319493855711542747248738944043404029620938665795192255478738107919201747797819753604297022872820186760525095546420415312727972523758199573258360284216055326569642134520828889507863649167418073778305060716218360894687698983718022600236330901563146150900671014797491273377534832572521473135323944118339511637699351889131137859404226484929899669327788666283075906326583686953529862306141494218065354438260068879219943977072732850062569644757130601770109162884317571028684378140473364357420656665976209875130293690122126758832213247237735533542237021883887564583137307190480657861068086020500891352039235961033350556157195381067995936846154275941138982175823894518233384638802792727379370852191028088988378762481429785045446184216296080530507541749284134940190348111987332783343267903908075073850925860997683041088177561536022055831582224700084417026502990962903418977366685467745685030428215447883683609163807039290078044635643786294424649402606452700193768255433394001151426391442579986383274019751565642462830250209031035178394166265122964504693650088813635708037401367418678568075408940097958354936416878671134734369576708064779955813539902053471694453283712183852607093967422559714921070021604839890464722549029383044007948702759697775082992262418937373456890967925544786721489938757582659391166536403504731160443955677376215781571262187346369107277187791148182495382198584035415946139316594962643183788535217042919375397045392263490576447593709849544777342202468605476481268377484292546161562386053374104787486959845796649426834706084357346825914110909965931249277947664573709560666027771873965751932344722665699119508847677678968116801481236428348497132476854694058124864412795223410456567104728874316456059802856329566589541770354217487850020412483367904324959336358001059306577147017831645740991884473458848488122261854916009655180345549567607281932792939025332095832989618508523495979952078675542350987485792913456067165254668702879532140209554664805087639365552537693472281396805782342072040704351723019411261742438558657268242643604419997561300647828588898965482731267956174379106461806985063582481123525415819949585850025934650930200905109517692541572179674541882065567861341393162380178099681061743396672801080017652339223279537493334871590783418091098734097885095273550450673269004265346736598792883305326576175648743100286098822587739834075184797025409417195748606649757386564382763407864559116527175724365712870427706533115971186755534859080541108551876729015293770315536939476496361030686267644145489918278039962367677438712850370625799774200496566831073033706682816186589761192313787381955435635343624224303515470462928883353069045289389603024245440414441399757380242426608307907934129845245109874075776487767616947977251233844644619851652101618609222810741038643757062825063455493807008232126251387842633763874979708314677729125746153266806363493713543962415259196418581195502608605244921309783647001072979486608315158031794224304995528044703940766119337403620188930499024532977807908674514885886096509285268561040894212551078305072390500988533101380309604753992855607699030960402778334396385205768292542439570977373783411258101357043451128436711779300315687212758322813346543473161760810580459001610340506186746139927379912417598996882207321958982372326973718205307455076467865359652337137996605881265085832781586072270640911588019996773252169394505435436747820309684184951959369927591147527640165644222644756073903739424889444901746509393983279698255093970334804777805358455818241467739337622203955990129768826249802475073191333566654624139592854730302588836241311192670272872645859507672659083358108837368923160448496827151237048713920023866959084192544787161358618261525295619719807489493789687528091020297571888757911033858076867105410566118117166335485255004318676823748123948884077106423155190019211418006716433986227936431233271549206388103059701297231882185942754986270838684308254223321849121986380275967286618908740262593852669258874868285703158404935560719814407586188231780971827242960143703871353560909774627920540868604513318842563356953865994612181752649486425941104030517085425991558827375623873241025435362124753776184905214556477383206359964778552543244029993898927887445471423256196013431869663339997196688824772693423826558071134349073710676854732712479953129353388270857425055539594442489355445649756830036287866547220464269194842491460451899817446080249147442111282744068925117033093678281482296316675119201741054618112072325210731673847611213525725655661169584543817502438121822226899960328597960878668482983844514967059185291348673465187290085206861305668326278067531337919295291556259378698558229009301891439120806637038945794516311880149944683205409336184106746530388111905126446594373091589927981185125118726371830986903802755508526550702473858641512573041140372875129975118590621818288455090001145593807755870970498355722618817027964358829722431922865872456691796627187523732380813005696419739987535927417704531498123263582332027230955197293247287631289101941380948628546520260621831615077783865353126955940720580309354862802413287845723374159197228213974912193037636020144686796986954747239398253777250678119017628948368849546116153119792818785618923315878035780093040624695157923044895199786629502231088173212743032297722176267509699254225110759872996967918961074278926022589356484012876103521055685942028582807660124880363678264360173615412485712999999062452758962656889773270736092129099452203798511730597760142151806601342219484605905644213615378779528867931423605265554752533191043878602934911554836190775566807128444109486614592122211201071628647072471981738255339305394506729208504074574801466977344309589868699897529525296308905046014823899129848354468214817430889901245582107559608027232421400172714321651862355832255908289552730347197342572542866767717924991959479040491626550661622910924291355513959521749176924290009253222091880456601154672031368269641230126559598954090874503642616466423170719233965391320213483959051644105414141309208480022886384421923088811209166313846049027336378919675139201801338921897070971980653881190856120195203246086549978075163374751244196118949627306350552171062475110268304104255136741036879185849080426743714221724449567243080965008914925066933709628228318730391154009935438867918897631559779604883031748965512506201254672096063340370537279499024269529519948552044098333983831355362686716354688118067231836092543059749013237672726259124314846515162214537195537698427822367688110430459266234508960988915911325658093011202584102162704367047184623601273055586356722328417791354194298969733526159328093690934908019675696099880376328546985827278922291141183261607116692360073706427456210673622625367943768411053296948003036874979242624205104372938501573597337075767705364150547227787292432598874604197868819047740271727731057898692764581960213701037366033669596102613881238751753400289622082474008067319433305343399016673746216168122393666625085542662969407545127922235577793095145362895175925495956980224543626131059180413305112945766234087123910755609789747926999562136790565785002901815134093024476376326588025179271131525581666212244394246874024272545126767584215688774527198577300332626314343374597071551722166236283792549835055282593922862999122691322330038259931190560803312102488365925919560489775642676787593344599932935423996901897123887542442747221186083608237074894458228540570270701980503347496098853548909366993631269891475232028167990444322814493046907535823477752172327149663313772356115941994141800757912798814377060886826244785570418164718189673467083147855085610234222953153839883644199030129631824992768527137135175214703009787971303292099332287357500340099996121587081318442719544678731826091934839628085343617363104028483643480409511128879781704089008820366237933291869039895199612992618577892155027979149629790725742661026285206751206630178511402489088386333493682501420064441409203564817628014618926202568707398086468531156502498343926113550046267851421958895671329506220561917728649063120838990044166493026637239168846498058431317303438265543886999393190795041423623729712104402888056136153400894402243956538048354547606663642944511257913698052756396706644008194197536145538530137658243286298368562418262799667146747351022797740479196874906854285360964684854536320676439572830322515859292255231228207911017632371959054639681090963942965129172233852449465612399683252880888731187328661462991938462413048185879953236865971343460069558744969254265043417681324271576174758940302058650615367331951508207083260325414085094842216464013994686182915063486674632462005812267841484336094208162760974677831818259260249933223569878473994050006796693308850353932118717634948911702354744068287483595686918957144227128267318697093566838003339381752404936808939755082457756139757810142638284051748721416236405821578053529923509802494078391060036427950349128044536470907381084365130981133564499221236745435141563626599606842433203027815081767874505233614055830624502599141529176150966228931428448424629514731245668419676367317931092094231025213938309624834598185309669038889875482290484715127332923832466394935104976385064441292420129731172489999744655915079602248196718850571087328152114492936157281963314335421526786758075859792373234242350663809554849315043211260729838622975189484882932085715973215405564223746625762964890388642330117115783670038367134213459197353746666699084319449463801310254103371211183859013975783103126733305112919174104363323590299528224363929243477270126657479678951569711743232329439876834886010373094645148909574173886914083213692088011486873690138325769926979741453912109951432620322377282737271461385207515002370901621722915646418737533435075573168174753875189101067843271674991106404008867658175160450460303526547544821749904194602841017673874117851323175863076746251055214455373645332252048254318404546696506635999320461176055368639145564949859229358841943600374978684098637245373401394745419732549983017077845087029282909176355584500248246325966674273433277291167220348624333757508258997319956338225248132467283114532923018651720493370970042370831729161765315379994700893151314127506231281490396233287858148812823171220059972947611165439182391535255136236415782671170316700924733920193803355287850993071138899292725237516263991544344864596141024091131677165219822957786614861517522054539765982816430105921244987292726553443029748880410569464759590448244542667185393325216065929686538314618955032006913237874625515272070509760972399894124221629538680365856872493845006243649661286792224622978456697774490755482308704312430870610940949245990064559054683768874708658885165541939899286782130389914179776745162986132386421893967922378242112965352226606307735024672403610973517278514162101679880120341491388490268520537312129482856679532914644945534478900838158245447681069222163463358161333764224529581224141866698650652685627253362493973591019450408612272168647332833228134594664915905146672318210097017884649605837563214085530938636617693813802530153090921187214175247375759812639412820072556719696843296309714758627181441541943647796449314040819243162881223686174071469443762711246234864068189683055595577398772178047070408983500733264204688144429165508607366457745887896892457825531214130428527547153777824330083837663345074973610827904144530460651866493575833379719564102285537598047309846058459977360618623070911714876935261428158835327788130384977636281752678692581842574415880626231162890420558885541442488919179221528507158008754983424667107345749589435358278247661588585167546515076975495075380361527045247233770330488166517775087667046915032165538660902575402356000062750014566159515987218224777080650089454777815182378722015490201289450777257217803835859178411886375971077017041246040647061922882554131246819298569750172467998932193319023816135888599103158097635452557965090995422857233559050833913148445460941376984831873668539345779186113238352921558415568131592235172805787355873149889766435496524242285331652536543770536761004492781320455180277362009598196385636806189865642097623709945349421575610656312797933691125681593587612758029929997125980814884274014375808526882325920924835491307651239427942501012230363230068530069429778120800304348098582394277227652190756405397970373737607168110283921192439820846319460465811195345699243413461398444661249421780341745131722886349575194476651889678409386645107007415199254185056854012555494292148181406741605423376902216324425791643434719961851300773943376067357101760853508408147846442059600307852053415192013373919734195842876062075985909529795513647805545641962545464944335355254777920244385825075024957726646989577586402051527505730175115819463754694769984286338649487918773362024547457292835482654374244368289587281269097195141529583171758786086271521751105104801865797067219339283196212486940325894591188314991241574130133787838315385478217675016040003349666480113404985609534877109352072386237728590016468336489747473591517739448577768480292844683194221732544073529669031107292749202449826593737479436232582834872813893572110739732786843357125774193017289963743590549227370242775328484701666039049897514488904258539872310226358335373512585805980010890904163512849087322871014436240323564625031922040365114364795897073170391470129443340048951563165832042829473278418248168824189147048420076866177702987116913328161701510919621656214453823020521607962608923571045005553410987216449144014124802221024217712743284920685796733693029339022617076042908710099599606912804816449906528258057102118287234624471652233376934503121806239524397936127792264161369732278438528524237146196311179667634784822363958394244867206861764393695914262460434552636954022445033730433535095940422101245705801984640952183015241526817034730262248041653652573722150604148888537061881639437228802262511564267440244997255929832202409935394419615523483194408574903001750801074954042244067141135190617042238071973859899132059213396802013590625211663233369898154009121988881696454747433850176589482770387010571057202332017197043789533022199643172897599700308897311905263292444007673501472970258957504579486615212134798160940950118888082421705956709785484078627322530233600514332772153562358761047643808767115347568618630715390979648888369319470565099547515502053432176674463074644400483140319766903904135927858251177935618991226754815000830551575062209009304279853678165282538990874122086341984579035109281603847586398209887506571816913117165355940908351813249199040891546660972807997588035195336654061410372275515071788231584132809158264921699320775986205688877681891084780997996040624093424053071343120389900820229788787925792977160142374864344577201937436501780845861348450305922523308896317779107147254356236089921660028502576297267266889961403061828355855413701974415150119883411080898823529774944594783827331747965957342342487907525646405359644936590843991640789222447618574399152806917595712349966724978095303050654797686547318232733524329971606836282985411015883481037844380432711250340033636484961438043790432620535020675856335577233391495906968616824287287051082411937260227745813244627961029153408650499047390958859216516767265741332664517399856033664177797154412272335092169854260877297236431616986645601154496158388007164873730467697889195547305925058179031581189300287936806995259803244860943954348704247737794611287080459247389473787844781830955078604659731534920089933667088017563525783667777063382566371262953033664095180546463146119478539696044939749698558082266349349918125071297232572122929563853768725039092031253580204783198807713913359602074625244283907226712272476331254696439152657924017630796329485424906929878423202899135013210089454068091234473127593621238920180658439276633373430080378899826135516269151675914304302768181422588609016462857217132828019711917556992495026051390128878192929939239451346467961081086898921740487862585528886665185318398506289097395842379430595942023094020506593457103748901875932956251611138991332171546098735535348095863595553258758362226588784518994598275058827493046496844421545652662041939877918553533034163866922791195746147813298263680977156975395203485626477435283035259640033963798932284496998392029446592393524201595758755558212322217518672881977192586012937817274030381847164127638234218541856882271510040031131123481713655413658408800434661745969562702001313543524205825281084542560076734741684426938199676539042720091320693815837770631617456765999047040565271050808593059584581814857601565931011181753490449105610198389848424432289646609201542424545982867905894001781171573223341921437667057963223144198429390735520480316576980463404354957028385612968671377296948163513806279729178945668505969777785995727077205406208923798748646177466634264805105167633349010288853425435594581334591262302028834041378120763008327752040018814275168866727439390667712288725236245077735336218254290534236348266058033107965054251869320295200757912188779248880893350773166830362131057161759974606508425156915269673783190341198011267504002464843607360359901913593602381408012038545477519509500411586480310924753139451179422749732462398382933908879394425205242373965861795508650339779996849355703217436548397636076540485984647905244846251983116712231884959018593076657933113409323667772373155270066651061699628821581849507030658478317749443595781126870813526292170429660405392036123981688341289244409089778339586111588463120105498283899782353090424007738957480150390086751389552974080050133654473796971621529385014693374521475697818886734483390202719584385584351606503727917839358524369377427391879369419722850794989236195290535608046494709182160589913264080158070442321345936369605112919742744111442931993004686319735968255014099531153845466764274632939030292143965094830034795460140464626763856426163976833558093954539801376637124856409109640380464484331447584702693300794191321616409737136881074621600812119962948331287002123992241557408158699055212719001087449798592813255050152666772014716380353788899048123008759525070465224010102282814189166753933883356312218801574748079064666121274546500239423857907739396031737622046726684150737585628205231036465464564423334558601129233147230498524976614178293085827692191823110153265206794301646418781209156212670143914218601921050502041459744698817678893722884727199255632189643631616787668290724043232060416743482972250920118181150241539547954098601648603299007468704043706942365811846720200640151025572017387469284918923604485248433049995039617837027817612643550570688708412599998500951124131118254508801164176682769731661279599788930016533584808520499436981284505065390394095572244573551326222556707062285075203565582394165037141432231271203327785472691019360508697179955896323556356766711128505143008451749159161498562980187609513466333265929775986715896104871900957282902416981183124292818693583264518851627540156792550816068348981404827818553565212998430317022138896515760848625553663915961440117517963872703829531553282330071962509438617643636431440804104436153560371750477699004305250184754616434150011834369925827242753023508497070200458837609630478507907175727591705873010747552610356273235383086607645636510771586164869094910813073316907113516193322918065184556671883214207007692699586442503574640822865976499493498861571887229218279417015085147386969119484791752721662765578153887995962934626778671627415802708373470602951854265912421809106513901016240619386817388462766601845165587288665709204820685489273061469770531803402138880748429043383774333455109940668961669281698784620108569942536343575185718089228831560392586717841219953768782255269982005882825119558617884939005744479323800997308233890718211856444727345478358723000893214479375047089230936335613257142956199966393021311072452032277952718499762439791198895236529779940066302631753920651670264121141146743107955103452152564277025706891560876287843264429436820793881382481206222930394564234413877307870106145495346061255845446430177368189223023735884170151294060473142503747392853197952769932751632748277548850442351410665946264805319683182962391652566418515733983579361181798250356158374502596366685326865414316168559320352766357500550838512038411053973340237598264295260210001499691274581146113951543642940238549937437196948645725397970840600451525438360687010523387981011840585991615637368885364132502344751828146442808453832799131480439587743272879121783812339206984446442251058694451620513158460463654867948816056141685228814591083732939772480439360533527892095450198582360954968194626543100915469291337147728595801728448524740591746621686872397949582366952993645232893383019778335980582099490739581635298124902438466256237913994721124058316634865008155052386416913870440903596341916969214552586459807746619464398207829707019584573798376022197088521755861081304520759824222668834908569056322318165967839409695981697804002772875426920122536493701680643686602097733154232268982926986077447633225451108455799392261723909223082410952430382085841659344186152925488582979664697940789245103704299576949273586480875521840075933270633393561190924817583623044306017050548236729558883761755474671512385037169831889141194083820580226176282414351002735902220547763687846798432737886934782864733551281040525132363696861682302509649288063163940747514482808213085768787985310855787101303599657387174927633744077936636476749330597576148095470351226715338791394368064441726005871555156939741052012827587521444730789289265780718981823098770963038790784601780756021880935685334975137346793804188935664127148546592787075070233045039124969690862781224204155603239459808612480077419348520345934912466921767957527499387375983015808562420953034201113514476295502546952819300634789356534524942686914430358455059410870774952209230367890505760524606836418036487306961994247509801318533805324987405454534983192427171616209656304037599865191375192869720477385176241453475411365041047360397087893144331607976008726161757348576587813851473981448087181611159733881638831998810814226381354872320377219145162760731438031224581997507397480290714555469739724835982815947382823515631067188153256772508182427655988838752115710436056753196546861707263928088744879313955750029272618279721493609973974264622269370280855414324857965907559734587199707870005068020866237926312858657757591756279419744663918134084709162724817029307714634611506156282348048435582411220315798398377902141430300493165842966094175385321719095656005392580838437040183840422438011537852042647105523759866840003766641616682533467641403046171200414268856859538089640807768845622799255820660913191407101183936915689862116935606885584859298551247798023185777914287142164279775652265615207513676206856571405229756713003397144398191230569975336304409327153075300818076576576359488342038316161394396856483773901016702730709222597837785038180266833639234456094920256970866353237173174574700201580724897180580241561921001579313523136915611879207980503900248442240635106515244163452627972442876152703262091640177440112363034997901772940127612432315964770045046257843204589976499934790353720426368263092293020126158390574596404610782735496544030921624973474333284462122009492258370040050830678808672743366798498200499147931747688392392300986013729840042683289491911326903961363973081131047064579082430129041157449400539344709564774524996106785083635435196425302420114270331065814898645699587569576520821291187629557590700491575140553653329151903823192325959941946016246231740868804726399168005249241855651376324729610727066162806655357994258509994197806547301014082382999118083690829409825908409635486907434022150157379369727346382227557413553289894789030382423624482863059138918803718801888773389793928704105207153096725383848949783171536343752296711316958110458787253951775796963185541448714343414318656416232918556610221953826077974551275722438180558394756789118571343227267654333848705644866893894680694060986983727951168397704617381924205727989092785079215344611824535726124394735820805574423901881882513590115715436430285256843398702603874142842032301035411777757921518493677029565238794440319728513290183525959994562755487842449961890524872988041570502518603499492445086470355377872663324680818088722225748877554094265781965284340469390936825845530402308151826746666086625649979665784798975266581380718981955664905108379626301210187732227820665003590794138555001862035652042331292456554612913871185958588031998956827719059285314751302136032256127356198123129672629962539271590969269101407993872048546428139202077807969695231091654877248455465343215062193609158428974689304698689624666865134385876226202375810118341170971615356502629145096624534612409897348167296621742002926243725106863413110567401355507747610473758797902442247675405651539212823640845063441474611329187456166416306065675034089846119005910908048714256033725639055707263343937401310856777237997964946470230101347867461791325833407228476201551039848272528367447703282087783788714822278873181785898269112713458958816779709391311678813841092102555946224123825124510162824492315586054059142849401725282684861098703253710033432133520710575612678467621741247484381522937976552552292396939763718133340082008865292897074200294861557685453379090783868407281753741435007157972937636303716996561358379399280972573763766559828838148738447511996163957690528243772051370748877162573803176013533952120756392515724796747377753726509328972620531480335618920631762255448645158054794183085784239823390575346296830682929629975608911409258552436123592125272762672249618363803350142520846200373795453194306456820682982270800526351296850179943381804891364271974738822400845794624802058900887549285953372864612800232725359138623022713350794894737490036192463417584807545088931538280550367859271624996452439706367178749349325519140682706121731874642078320786323002894679083148128947996555808758835936004469400816153872364930054131608466562599797850285881454237299028666274037342906410068257403902702007206520234238593504235978599907659113434628780930000079897354639386874312784389866704741371440503839787769329829404522069039018299030948388373991954278049640578455743953023085984554911473370350392506836635892477114887299030096886749858674365107607133125482093597432073285640361774020470302821956466288002407865057901828439173826098238951489961585356506104810296339913777611538108861858269285172214737896174589431659983768558174275637396561040005021621679715940646035537518642537941055386507259434179043257126076853659283464857623622439283291856343040046400911396191382100429207902077971382962174184985198900464440206874871322801933648970026088253434107679958136970237656139608853675048406768428028547041960130408806952272689446803806555158100991016061797643452601490020902067354665539129736962797177811521128232833753240816357670158356138720840193835189180134130674389865578646609268894881670266044568951860128083806697945143509928989668860106486769147487035770523961934687532786417332594214563665147566659002097515866899619603284721522784956895618891189776723734825999881988268513281166905885061290170089013404906100733792777555642775971836060809424081259462750531301340895041371136342067544625687905683324065308606530365638458971526035601878411660747828045554999635771517670155786101370214315727872390842171938765917554701661728063959506891309034909194823101654565809877747139073089578329244015185336030610537554183593188847866220858045056081822489439591701042589367551115401928261636312207916607535386211355505092649523396384058789749117359784579710620713596841681427205596426234183045211136776434272211124464227367081283049364237461834097613173992250485544454163347268685862207225046939425763991777760242763671635055297362843165886649336461924692154975729557898999234763431036986341111462134152833571179616765259043743553636501578296765982257497868443272460258925911919407286990206620399024373659051956328390426486075662247110790679509963538882217706839617708386699740473760463288608793861972304807508085227518965030384018263700402866533883509971228319547573755954172760761185959044397732381128633431268922840455015486342775697065050756886584043778858231622927804669282399610337618954715838834776687100049348254777871732332380737446060029091756480739347616582763626286296318083244104780444937135554879587402980068950226956307411945954345732220471918249321420091767446725341781032649229091931639938985471770915826140345316595586643872167736653766679064969465526607045274973838478774320772680240551218389596145304306614274387484713246443933671160355232900443191709965490985931932876865538614988626921420967132259036225011078481650705863119501830980615042900874973567528489792695139641605728272860239395043319892989147792201402727675140663350698904976842579476265749907741963588788084085022472097467170839058698177409883984910192254963599256351790773675486675603829910703177642167505725727372061120554228019771912923591286785203680474563044771093099270780443562123340057079870038567683084022524923088317371707755495897478961441941569868798090160306613712856541647391269542801158632541891900880866579369313953141757535582384627616821222316365533113437888203391518123710756602399420903696204354762671882990936059164539003654838595024431479109885327496938908245919527100586958148683699007228313283161192804667709229968278973016165643761674521143773634941389839137293798075033652154929935994608528260342358830900169100173820809834843656265119425591711222534356647913641548235249869781986179761072255457484033645947296715864849454682003628307100563175118387013666824284222922734673574168880738840366490702533184080118067772157814122906495733455937165815700410452522332398661944454816080447702707760912022672936332365672021707038907030775440314094949973649686065574415075138692454576565956756867984221264039610820121279374145058661287343570767185122678521569680244949977370189941415670656567481441244511290310191133905649764969201365869694759559609264872511150459050976078067211452296263112157008425633493512807405925303180587650398099370779546462263062024948974256657431987879369439671795123105768438838809745458884335292548640186498681709459818188814811789340460041382006624522198966970319139878919432312833227296103877446132904182113666092625742464822123331733834159852481584961004604387022834088438369991954688542362400804853971513427268718521004454523441350618688159102435933351179492018277337783020543214403925319575095016243959708996559502840047318987258246433942525756906339569563304077191245402714897075285547644696142973371911047676278490732588080223940146070525538144888774763202785842962285614431665252678241415496589388125578885536778257076370934780371724083601293683138290110113247721498299830212090539310210020519156780951062237467955658943570218248182371905833760000892374262537254513033114487924937536215634732386031537543156741889819902334232227857908851486325674015303137496816670078903450666708981482161153859032939309811889706204805828699401123012202065216121686197835520252771676466605206331817817377614605706215770088296831633836510857683652332016461808259106088573933226220185046070116073469930405344668339375617725197632602051053972993829265288677472369070019564600054761766237615340499454720550987443706053080328711142189046780769159082139178541536870840252426876535533045942620489879856577873155832967910171448601669366316450363240613475412983985782542010563317698859446797230633805074135461246780454928804640952049286460807902963263081684855878704235822881977081473260996321746155429682198463491380905954399233423648868945990674805799205984511816630299119422583732999381645342296307310763280279828419643729335887526317826398104562979770621893561555450827776608310813965594219776431429217200369265656816117250082964035152954969505642762719061135816475677431595165698311498926179952702322143955947728214951017472027941797858075515572516269561223262172678907076095972772378638170375553149109883462298935985168233899810999177091155670116903053494847715217927161614409292820080958150801492529280098521870686066285060461593582297075198134154897594797203152896710655902863734532336502039759268099276971838099694756572613389860705380973083524811534179755149835496896307223172813169962730420610068390288812353615285632542461441051314031393913218789141827487280062891223928801359391115448949935595696410056150709977852200646027923095712090407209171369071927123986939771396608592351161563238650865651518038402379298924928087958138613218197290371212832998476803641660085701603705314733906265890556053761639391041557174972437899259950084949919715524803245025359542154219324291064729893175493978571330248381636122051644545245951472304350185703307528139935346574821149803554239492489261684368120127512273929554287240221372685997371029183806177156492401121540012889529347870290906027717986604535370018136484291017096872208989681766085057821339174706657129540025948717667671723502565325690641503076467996428798774584900980344104635659020241899306134260966908765179101463776310977855258746725845241320632948588682606128420045001660567181999053847566407907295406946593908213684276285891413491493295645174733153995759423344073731681188261045188398478701558570260440185988213190301277377606628494512224361577464857518361630590386186963916896183001613902388183415351426792847316708548939685331582423788904446279709226083378749997662067105243941808783150144151837678879342814511537133576485425892838407760236581393335332058481998130001425043245024482821078965747925082293134686623725673278527169034627469352991253520692031098058115549821651684447418521432500287387167295280160411447424139034536508093712482864405514267276227610381897242548388105545965095070091737834597778398125835332068630599214883919679090610215906772260312267714651435304982280853787205666565337617926228287538594973988723638719874436139875026132026795768784116995415695630932807344538810937097395802683230566528231812287202120350038626887724408858620260716872639485633374287437774060919914960394434627185731486993556089457918456004041703474991739819306415749655723056158836660845181185007067386705396708005413225924881240049135292917074733256032279685117680749797309699300890929460257488577811651535574062568672673754357563718873116863522912255811496344147396557150674869675783276772502214923604760525858097772553568858802117015866696044058255421288518756929218174680404593887250285856412842575160318247455861737420042890220835795592275035375189595393866531873789079694565794539495160053988108467210961243285038192857696834909614771912087343440192294390964371218498916379477582205757224869562051131376689682971510589995937634742769565760895354071608203378334753516487334305831071866792173938037176164226408393387922373818859273257425421410136326619334320693756548769860775951950408235542942335377915311295655642888449984596980889708737153880949858616124961696127195936064928702992186649395132140822248666122040356760087611404245954407139757286825451846696703709687018722181569449855231413667967093066336751269296255882719471722205873444205999802758717550647547422020868024086036317106680287606604654364260137225020025815088231528886803856579422637816178714749189374975037486525096217155211290168600337159062951036404429608479240604264612760559660898724095696962860807746110370459967140470110224529327359456552570388156203761359630786165931005005803609347238504315062583845251315032461098692232212358529015939248708232944536758484071997081518002804351781889240830946097006313687244039229239514315428914985985563947645679878705405058572680138095218096991049246839126265904964110215024732112458782790062385328656672077188205850445401254969824231737634831045984985037524809732141270703959673478611276517841951306517798669665766398218293998139371005061688057125902484863303552363025203869745330650622823073995644205107624402068532667101107920683911053601650855705552006877655410643893847127013988265441289046530125870427533765487268267641956600467003176622591063072698189384667105545618080612029564871997769406191416577342421356058985728547159504232896994456026919629294284594893535705769639187706023165046337692428348950967937278164912696153401196758879418692567471670711119371747228612260977153464526992280033893801168987163897926876273888160183571609715872594101910605398425842819301256122446554435977672596177029011400325193157101509227999667076564862922006663964748794698124648894752157921760253484934944733804313801269651621662484702714378672177096083273855361869125319383117805080811156417954184105926914658236837563586605619055975420704278209505512201453366922272719676613046730071887723993377696486893455781730733044690346320084618212718636016085041705799142479642911414254387683924943983346123749855266820581444909591956649836096224683927233684888420693757280256967944813924462873139326346908229036277084767637908607157324750753228114468754134020726199276378903600788248173130274581719186793281317139440186557186123755221634905338910717143063669083706727020757643829937362998728375105741848057620596673880383886500164876252989688525301800822979507146557372021864516588316067398531451612273402937459984177670480792331805290568580735788783712847721490680963314668528105043218347308912184252907808695537499292419215978970761455322032581979639184077572633954187786178801149627514187730986223809652330690113501520268605680132206638867234996860993304587105581872424969054955224135945251589090270726118400717555007894321139972880958895550966640917050344088547147855652782775573853436750638379009604743315121174677111213623088199662013504898517865270643469345019274663388045828073556269531070783913052523599108563550031212602683758014628250427160341388233615727663972794295915413142912292816325381052762767407631966656010641859029884914293322050118677054265480687213014127543748642032605687247826591906214549514562201720637923713128696074356963675413845471045551255844698655306539857404212205764867327773681908090945106009248226046750295877763195442429958998455496331431609578805123475018928183869226283067077202914887203183461113921945917329632642915037452255172441066186940879399241298866644768065775523226167056932494136234735125194533785717387292465591705370421556865432937332791518334077297699643102188724826749017882408180348762474730216210192425132281928168158802089923895744884218177550382815059075260850913410160273318295321697284074638466381443847416544970080349411721456554804513380058511618018842981250006372674439702624369700500375515551326108999396458749946947636712467303165695773501883592425755939313880113544648862223214406094961758109305484888965855060514464040033551342671902976760761668305480060572210906462804203161459914044897248197773595273354271166627424119168075570565305830115841544881406781517366615953668922568470479799835459709441134631144159606715805904997034927555131209240283120564622082537765443859204276314194665223557446608860815268382400135192657252142002808167017593437418708830642974871989666656770031646784277309190563796310770826659296681154894816360138095076523502853457059687510553407992976851594367165178288760836122867867825471366328383275999002649993428004070881270508581858500882121673954809572101771067691878612496088124714911529669310803052075366015774816783118106194192080890741963263544645766711344112870754519342410633106077661571788557504041225110245006781934777055895824090973053091789338250149561463174348764334127409429698343902315069648711256158817262279378193934717921780013608802435999592078747970752873641539693728047357614966900788877247555622156388772991019627804039103599175702993797994536410058204281247633745892115039870026034412404368032519411740204308329369078374328351499695481494221828968918606705781503214074478849054327720075916864956781372013394179785325722284665537284092339960466224911422195386868845056743350853659936863156984566658127588105306918170286881869016871753473304404656945685686586393667025384690551916422143476225059327585271843877663909964553488460905547372885505563349563897794500513235890440206156264330406405131186576111013001819470279559486889814872615584316741245802845691723371626620854905847064251203116410556395338566163508568792370065130478388081663703200869739865900668808077483782557864938929646580761021628964183270941329224715114243269605317587070235639194482935877387130745984932443591854167490600014856822854930624483690925306957666598209192645727790252086177476968099402838342521258653480425638817380963608947510164241341134134974386803079773717685819133585298703232156099065312124761229949625778076626474478772988679286603332500179992861297843972543233311616622257518475574733951406583286606419293684692374024623960714832411839610308176079800064189027095272807736847743308929169052282297806833317279673961436576986721815686255253660978140880385618832675904812611284137812303504035261698908542536559509332061667723044317633799765767577703872301180439038371949265393347324888142260954290751074009863108690398229629336776150771513787131730412151796089164898782816197462726163669454955507530204374019777029878975801064293503155240791452317352122041690353000885589986295847692297777770659122391804088004971912057567195911836005089844609521920053806421055475437010654603759288634009246415000735939620868974666390771767057571444645993031588942339880385118063397099901960474262910360370903263127401409589425918578855685927128743278918449395518433018665461463548991965162114634963444569733892615750389177223253545664196306586151007247620821469527030050796469588850962973728425706458385229943765892070885211264692539012713876029280123604940292769394771263530936163966860026944574182506855446222801023057764618621851687018167689511737942931150339437427933446039077726385365901667015310918303560965501360612399346971833878135271591536689940949496021600333850563261136357274634079085918388930584621226307744366471258812214589966502011748176979222209485243769626595284220506283907590237844091100529918246107934797074312889188458074500978020592530925046052535676552060763571570109029566948222658352053960201667953677855809737642696602865302274045070983366491604781191556986976379646790357396821472305310788381924810519181286844949321387335584719944642964478765754471758320676244719399685312330979132978455737076637004500408964455764077821938549272856315358063986321982867215983632205175713922129692923859571616586320360750992903298883620436587609018825444854360382958732879158094603676037196706576308805476317925626298330477021951058495630488796022762477228673089415120081265814464704526105924178104133798909169503013974238696208263907880756995078266326618478726058510526531581493459048554445339034004397741393306967489548492657933392442396391852581431942768390257424567146001466929951444727962368882031825180027080063577620431300713366992181228859156651565781036744303430364922722407677196037737779436136626960329168844708942891558553135468927639011037194895082543539111957582054641928810311717415210090892426892997354137892390797441612976983793809772997377782789622776257738471400573491377121248084767090027120310134421119942276164222783976486955531084391093739083104607729116346973421979778632579845079736412966471123909193822884927341861918524170047957743803427373665285330334341569218266864691422859746839418782893692941582591358620209134156252575180093901832097424919452192321871389772297658299700564505124865782089513931691477061225535874427672251699512880114162893186664189588396201306736696858547833051204094064941270709494825650878163694200929221130613795228466017295521435503105241113870056214872656845033293316814833309520372990193611410536384432028092178023331247973938192396983221644133858127290889812212021317495110864076266705503159514425828495656999774899847857031752491315396824355071335228097662483528449227491784690169077625193790906925401885397486303879961278031149388785379235462838529239121697928699148887427243492991553707613838752870831488527134514363500486862848469032269012586261310914990882348717316819916265896626623506981477403867034568550109417956019395073429882677034960100048690092779745356457207229687234780818267513648360439622411524970374934260737450257457509245183807107751766661907412226283513322597593791311435250309208030764838353234298172432206959520940985207088409110493080853676102933828585935421919274790767455114522099023236225138949824711346888920110415601424667239358603100716750038287725740120850484270520220505794874874917725106504508123581174486068086479504464247462552611289901030033834585525073882653545871441091355610993654540554255408799465301153312539408343295977303157873900877841912419017982120045786499893855088421742249363929694060496334381914310035458352121318822165041490863435823324320670434987619201552662734686087934204935587775442441820691883270045616809049460624591431674020701304988347519779823185063179789794349346411174242527338540184343355881386184727371980826859611474698591032292703500320058730688168345593779330105542733074947399774829815766072341626697543437167956134085909676197060854112978373849084809517963687761157360889980790250619050291791023758205732403965950260305798024789741261277554525923592870679713017487376839216782419955435914379048487623095018402387684430162091473827578817156954684129944845637232412683516124147009220611590305482289940529883416641096704699686529303914589759080929421817498626242511192626449386996385888664958229908416853121164884118740785125459253118671704634788203306184066360360289222825229151448277892242575545165595788466889238772548609267386845792571944684063123457434734280253453240771682399614948355124774859635493092667921868187801310998299427714013804411291905842177784254885931242432416310441847995727110450920211177097379203928563720616675066309932468073125655063291691065028383731918708517528608626858092998227299313123769117258001828375865945813324502360467910624120414076964769885990880772088753834999662546619305930597788406451580367956673982992146022741439256875065017136558596129231729421354612558820789816271294703161057741022911673520005290018555920726639894260202595053200481357889360894685529322022614136912639839100439186776339404814225586985059002715027378272195631401009942398823596777223781127272842703260559440965450769250757875282222116259522230126318570463903210913699727324197490680886186560383920917268575322129226719868006194750876774831952034073130099245035503960968705474807303931364274132197346027763193223810288720239416131263837234685521217947355524353511893732158157752242205639695068343345482421867395425242467215312739735556728428948380123065531187501175684499302967660022503654621303858507865628372348167375996074839083236209481079352100052247089385164363547795253113312485595496106839921432549887796645287346203258176321412951521808954125396665724795603070963461144169365940020804239562870136936101122654801491569606560996000944133982012614919756194875814805546906700176308167592165344986833414183839926617584582660143081016547334065237918863103260470997185618668050526735570516615646241851880930136387266976511572684469873224561599372141798138655628235866410947755927325857095840581578397106861984826043178242975227456200495819334619685423726305835306867705711226617938629768840763199307522787323844684761245701190112596176442817224956374580643856158480104131662377591317773450742762506332226426205378865722578501185287504902246878918926451165843018727881968199728468703807541243575064489523255126071921703766678756251835464112248175487030277935501217913449791509918735781280235698072905379351690057290449459768223781418384313162508720885989098867148693540394052746429203892497485735233105713885096861601645272239506857956854314968637370383062026536103478041886594560931737777415599410749100165668284625743105072775425979884928463970729620970551754646887776637546188670228229412739341582461575140423430344617402991109189617155397245050848041976299375044660429046065834823492907082592089889913101532196131788668731497465015006330767490704051695460255985193619186122898278302103708254283467314793462655298016700624625142099577066408341959768038124570560539512414413631560760987745052673637910251055894452096134982657113086426291642937843338658893266064471607692955539432633800479215703558981900858968233257806398791668052806103282934828487294569009727727069005307168299918634153431980740875271971682972292445036731565592036671708210508042966060537069778215655393178551638420160014363297224309915947761957642895562404520468260865037393730714718568590304567570089811823656187454066590355377915153107268738713082433528060726268589947826994873237172661734940907826158614657688608799487754877532728746691304387169986472023432347423626848454145677371524645303119340066189630249889088257320052908707384988004784025891788142339085300819276536115457828612765629168780149975846924710276443379385373869603265134920461778112423987558077573120250621924295559014460293899283418140444004139386410811873892246948047812759374433277454765014582308424578410088121870928570191960238332602969533311192243152029463330737245765920369176069702917817713983242962976187147991137486983304190506904577497967105269089380586221646695912723733279021179619158074312163846447397592597404484633177786641130375651594323027438694480982681423284249105442444272216226298432615297277845102402518018257739466113339472972480747252093552542838922258952619144644071250459081241789301174898249523352921278790390907058141356679701270180129193326531986271803292585124994254225087236491847266451601339973706948128814277775884889765086221362190693603281341742764926110473432254138766584313003007395912477104447044046615533008192807225504878828400749371292970450606163473146607398046602493694762842537507708445831762908415110864021128943939920056618517838289257867302994539408220159605274541428537256561128327578179289935399576411936368609752623344563131418286654673258608909505649103120184230158550692195262058327565465815452854949884300770518812885774186130769062625204087956377436708716249119526371743863372278032837979997517664542042831482378167318283924977199279127924146165318313827674259005177059911668706742386105102284842703418303031018412858110327463464817043615689244934569572563282006884236080389818147572657599559808049537146226487769096530857658425473735558335843875656694350828402099086533140733910222957468890776867972981649971694372334533450081774305146885372140670217525680130339895988879792264118847802634020793068228681200624471446893389557735345030537622744980053859312755400770670152196166368496686439548885931748902975055816227942948973733519684861723956476608442830333259226270995000186726509903653592549147720158079850157506841370266502334907413068015801163542235092767382871411198127736888032865289747654074417956195743747969292740925489147640151313272507473652879289680331909489080977662954825776725611759334165004216387794294629315808536616157220692887886110982986264364173124215582369814075895662741090705427792419696955908874820097601176392453242255511810896541026107469760144128583143521079078159013799127947126608494790612373701150402999068731579266498872292550212282438283756926354296886377733377285783676137702984863350665958967632897034459330736598850179355199090513155933381982597262294419137310359965379867937462226158335439825543379663128412224210210452137036029699021479098905428235563838835374531966903470055322991461353751071050253026044724164725025757479027970161811816853638972114684944893153172740795385541723833266537400349268383033049779480136997351083475854935839203822924535888299675932669889140019810832835905827352169067402159223106208993104204591315488448355191870054861358655313339395107125042568941296715158027317676220212559584800471831041207860703917190109665322493925399411697152011367225290231784797670192514125914964381965949530136773310979969236433894036439842340069519205479548916661348780469861322416608639192053427701833211472040701044335771155774067475871284268263086221092577573590776181560767209356656100346482497700281773293722180518887612382788441252558278184027062691424165390146069300487010980941920736755748771187799193892467909493761278980650492405981160739501728332101320319013420545905913197816842255475823238014004148894277638402956002549333980985440401624140800058089180386444852776688111149520865645033766172700756114821071534024928975691185261451923241417787090914765569145570159402533172878242417251624452466457776702321879539901392541244540821089645787706623558055045169913531582189048351836384857179661282843325015255013056160134731402991102332291274502960081733564285386029624302949571740686422612499954823536528608276446209426306784054836640482924205496629591315682399575070602042107849532960556879664933904212923844931865145603193541929826909919201086542429052109623943814567631020455106720932227769918212657522716833326093214826957483025040486535895595651266009810291542708253565326545936796479894571971666026997287921614402002523407220904523142713709191008031002657048761379222737619239373992223894046890035690554309263579656076772382489273057670270525903208768339228091240291397915997399415722125177850155706049028476339182435977554183385196858240597391757688684175942374227927568438175386981033266530746847597706074434458381927947179148047215106550195525616061325993922846407553868358987424655126431662546930444646239482848717771194291603604835320948840301712925385086561523933982127227216580164594253531517582214005525735305709571715766990735162097085344302626724982573066308235872948579644576594260536214529873848510886905011493516355631782311307067049422607857394060822651001148166546168863387657320013241235510864073098667095722832768545570129573644339201633320431061481231232220663732500822094665407429750217405111168589520044898924780372543174496063969687539133441843324947444573509598579157679127303042917554448678065540164986570529976951604098615007155860475336072242311755114055926101568841230805071446216747668521671814397033466830962176527594751199047515703233122211641311692906975245577134159888428524135769173718261659234876128524942377347571754657172391385195915424964325242675031530471169532811260379100421295680937201344116451192694829825913826782404302752750724354475014465157920759393550064022524810365075697226539224201737003799987900516767910422517494093385280571900478357077108088337404754062847626487647009200933051966751824519838480339273379888715732219127631156704075639746637434256734555654595554319870536764300493379242318174860955969085898065966417808080193953052739396485730413663159143097235823513066025375511600765104119197725897018959905934463619781812362988709427976414181236049465009193120638764225840467820312082355049657129035672018669232707054317635340361367223193798108594683508301997149407246994058070153641683772697402189531841206059276882413081533337143427712619309144579626087702268260460832789072466896531232436080693042165061862295333034215861573615283861082745549479163941020839791328129916406672612976471283962629344877824038245442626133500278565490242102111441565007231783929846093567789759451792088569275488998598253762231092846962888773661306151481069655861114517543651210104682167480337163823434372433092218497870684316081862766390683987868818329670792751243291428989306913358189019285572917251529925627529902049257115062788469337114393701932335051528738817915296144582927735536896246774590226650297860266016951633076266501676375963297342649138835492157023629236560370830624722360470432942827400224777848725983042232395175115819990665920264020081451192926408789037406549701009041997473513159983490777252975261991603099479387834040869515368520178270502723365117556069224258743633157865982217357171401080217236114728151587048918326946767277506489653431179711596635226669870315143697124268585856385617125658738515551496778996485539442968726950720858712436941372901347829908259517106753242695118976651359701490151949226471328870871791279980207883850383397304606231405192702573505412483058243062455138416135700007945054636262848054106393783927369755867912899412981256010587769786646006182073926468541530645830167185006944264681307323435068611140833501322711358998186344241955405524122246779866419269206688702052822292809390219103025113789823073810603633023221528619281103076925748620442071611165568057429844271669805067965800935795387495649846733578334091949154785944940328933850932654857630404878255222976349089695117006136937978164358721536454700151893831748148391505851453070454743060698463179577812301595021290846511186525134084616868339758389958748219736004441534140479689780459581623016604533322411270968074803674843182111917027640731054822173113416289550127179558064875769967433384461550183502785903158523750851811397905039428093238112943644209594314813352960055812443569795669867125169428344165600970411278579375882213409015843084552486641562011277622261146512418611813143492129179253162996870283918603133984866577783990294101846132776091914210134653306895253475006324886306252002572139359462005426009120465149862119891897205385852697801135434637525769755958920857669401546164257168454865416874960019599696667722825595407058229003972688454064639170648458359391604192341876098805895282169088014259245466847674479623667114499947010424759269107226770991898355755427701098601131811851743038697331567461598470437606831862773194752477859147458227952350457808384687886514553584238683295809175536045484009269071861863192603136974532381596112832898268739628543117262840579519412121778883698792734704363140099798220468657205370658841802589773800160720963611396437199708567811879679576457073170416851217935597331860519262587513077016821367196689816509051774392208424684691944534070952992720735798280378764974170411132035963328503626511276817182857500573043054899144617261131986773619395084883464198783131032181604152536659803982301626292309489417776739831408860029642810012945380123647072931408947527493728475419769125419110025900250013522179666070095397690866012625742079778502106892017154089580614084558799962426438377886200622204474280660463549593759432740496592426149889783095063905195683454141982629156810229885209481351696590610138741376276621888717481545725896227797589910795145760625062367561353291011082387770534553313708814273979553669580556203782432952519429666734172817083651195762202654945068435426083085685130288163210125949944389617198260313257303228744761233834723758334219387944083519263808379796369240205356899545981756762180643955152876594759891048437160434313988876349518016460292306830300942479534344794343218770125188423315451416680005635509655438177277505491369262666143075428454578259023282160671650696726362831583877170203348877239878063321140474385408266891111307282423316824865281178517912428402744558862806041702226941904049841413557523277842691932788135156767264440209056456723043589713087223411247706893703408613998298238604944043253446211119279267445656709237307258930387427881445635944607199448274702670033534292236245859962989270469616948431638462917233561659832459842174281855889187354522586400417474671267721724223289730556743316028258696318004548513849138992092598253310427685420679324136894519699324825007150737246730544959152560659394213657278399868101051238896108902396341715800846188449616401392219705334459271563643411083122695156510097569393987847904297126054157759601918841923069224826002033349711451772434992655843929619425939842400889876596342493314520653804755229801759442035258787923373441324272405353884664168742648055092419032955861836247152524323845994772259625900695975683630386374853195672937545099291039363577513538305959096337591638599605199862283747022135282267162656428951076187278224975712679438137844975902704864399944121607268669579721267516451246345497249933330154292934710882308878641079222112640620930590990904125211375174284637469756547242068550380734669321792872550495549364858997452287725572636444276411477106008928837868796185532473825336507797110727717924551097913085717927864146099849531934233365177641317421260299123274769873119250570184247165592283533250133276543168380289743477437920345083993726891785605988864246711810639135668747979463216231206557396755304133414856946728653670727751782105907788526135445429179980310238111094885170887916006849065902362091185802983659397051774277639323761001625534606438533867522946220056067010304510092351333795283410761377752689113097910161462701696435735278270637132390016963697030184460243986710997993143731196541105632510303665492052077578622248601825608838870251493212591232892261800080699157613703478116167625195580476051408377611556349244770644249509660462526227829928842583874272764139895070601610623560664547582534391255388224468332258902802072254584529806343793350454924568526442376498629747038160994154826641276602485865728248020365053059749300690648163045655499178435048762124816325014982864405600037406337462043877535538939457507645102362881764624127511248073785881634116429940070425206782380180010818613160148484488262602351674961608249630581843980730323621589550676902509989859573582265944433210129812240406227686089310753198588371230241580113189141786090760185197127276645518191266717615250649191070392385050903279457390949065636042324729708305579413020520763090592799103765564945549609963140877828872697932721625282251979239918086060025745170138607580111565731163719697725551638780512046469496062485660886455997848238222930123930598535468401788346454064360823943651801484983327945360853465239160979929629329677472737780231241914693596916803630797464912331925486711345892644980869445648142450338770272226074133654593609560782620918770859281808557517242974837683272339614056515659174977687956843915241660322857364973042940867942858004629536137425741677729168420102582968642465654918314844808430924210890503835111671613832975612461964138172089321713850533852758313706874830703320960004927991924236149441626663607677015730301589162675563131537709748510103914937453644069245932473399951147123121002708223492893369307325057684404251981676080228872141773572029439768392346910802649887453879656920419749048337310971282573707944499691202389446613127031088240725939866412397444023543343128808735916488812037849508474404150677242339585647038404695557428594567889926163756354733285549120008921127974274905651727021242411548733782336642284756991742520801364702996523345831147033938844066797175354445675663991590626824660970541478234139200605736023927364229002691115494382112400564595682596256195228109665835329366142956360142397394765202594732133887637175392083535772119321075282082444507831926399853866481534844145735550277751460819806763628146834016604759149144731020086710929109082733320702893061518681371109497601213013522152127856641141037684552263714851188407268883736262513030916066450205906162609445660033912322591232295267185850922012459303517180226580605096902269301523221910064594302836236255490820296837335290761823493291012334856155378660244512126543033937387172108375100349818322626550330386410843247062694732460523221779909804957580940480158643646564475512666992582765450918462614700976106022846142928639071652243871603829421528024236524556771954488447733985034973321165274430255395307321388746511989015687373943600562669395208442385105666020920867985778836313926893625960616092279832396311847280473821718455994945379920157412642286193912681469272941531062935795021551363326290301977828470314406729909102376185374913313942063995365257030949113342171017304224643756323252203342478685981521585973926573433953005286771741871085191245307477573674399888579853504426838322472547531202618275503856637938345062600025204038301787664383091887832350560052650513738459262762392953721397308500778806384007624178636454804015402388540625917369054650261696433428590498274286695332269821823000744157985108886246942021307160429840805336124243171967232568505733440563835416430206425448477202416388139835249570186939717193111039431475010093303889668281234323781061617681509484168383618642827659789508008358343761483765697071629347054189327598813422397948570881334098608662122012433856681603787862391467548317126008297174571373816452230902559267007200384916895766028284955053145641514530939828454960567399651361970713056857407064411023075841606343033675364169903732136045784250050276904414579193763025827045296748059259495480725173866075058531502661239030185802597214277859884926420493541027334620745493541270712425170195129018855114363153020859662068694955726517141545662512088734707800639902109328752419737836982975525441264854046540950964827796410836844539462230457733584155882426939058361377343595468539660543692127533393544614133354150859035195315379633465856166764678378730941078326993670783761617721445001526992040763944887676949278447443384633167631387557754512029348907647273736552025191900990289772201385080954068986013359155726011003758759047294668567050524619383956006433649348252356812196862655778675817474881635458484885656286209392532377944734057176956015766322664755860262145615690224178060003470675936827165567308939607668848369790721190426311563029925920010783435030186700880718676987278731216306849055433571226455810129152031484130702180106131522649462301163657015639913226263046659943258552848707887357192257869162321150954810495110989723572168241201676271813923019808537920700703658873789629546689697708878730159848160474278691310446096083222082886143097941174729654145789820795517211570009967052022546386811907600186097369204194382045694790741594932290974613516763653811548264250670748611317078288646486292442534098723958393161168385621313359112207316847686492087005054329577192602703369059828550187432832729753039131231562890226477279737203894753015422162965530578843522164643099405843949038535606985415876961957733617245403958310004704939368720638954605025911905722100613618098090925768922871167253273606698460425565385992687157439260514166935437099608387450196735012462895779582926358296015272965335857126691375496055173392854461573304103415003772528096552629789548583759850393301199694706632834698996572315156698813025774747825877758274880419726361710040326152972911886120443429993225706161023668264822700324062486643995721250512103294187642899119436766150300525922974332578159389914770863839099642315092740176585573886091981902636332143333133595048506630305394515124082011816615925998643824742840841053674595556095808047821208558785285754319090402772771097812161626561094669626899624409350652233119674127918967793781837786226705101647640004309867633798565222366594720780288132096162890289796767130833722054278906925642350782547204021906763047840100614727326074464766996340074189584745190789014572812244800319346228885343721028630707526150866640380221491765762741672250575326041906135849841338147029562268660882082811409273365347259299339083150921813466919455144993033205030105953778125021922284955131499461535511879709512377425937961667034488641515815846647526865920485861360647531871946968825936549680318200053159901390055766900807882589044446934322706317705069181336666258170341232986949034814962860849394844793610147462333430472328157603675100078073340972153827413870651845102875692150963995887431666673620385113752001959753664003451933041866375564660863614127294944478735647643505471738891248194084691073453250840418986223380984816398999832588487139530223465458886043620906347271564998796749262000668189608519740897629037133549881161860073636367625910106383933546951103257464002583540607344058860379684101046431658338966785915055574941362619735617628325910029013031266160183535415842160535285255210210719238657700139904124636691989970495859304126385712913725365330443303008846346942900500759180120565571274931921727661809657941043390548302492585332919056778363580699439822599616631034355285074847284758738559999194212699773710079874934489940598397699845133054695659100187366311749737576839719321892882709752483250577277557474551031971475256527421969884214520372448392149297484955272854656424654743139130966924424743001451534671487546844491865237606810562147949771008040105345606498691746245560200684141345939762571697149956869401101790761389540612976913506768312952555946785006088474654617746490179499315668910847164333472413136970682438690550244118655904118803414564913527894964455347869436826877224359936043538236039307540596901514501229636290028012925576637653550172185990990782100105683257444116325892638428766868427249436814572068742920121798517875343798092256668400014865578747461808421550973567565504934846323726940478459926487569418417855953562515415599839303867492995193458267565608826082076511764289431526053448876611927938372651113933096222410886908915485936748044698109550827963372272692962610065297505302947486603019815329756542127038909222701279843740255914772122928871568360408794470017551885807561365429027660163561086354137340181776298387569285272401918503016401063220543875190785942440292740564375292474796642949703526404698162825381354193467513676715295505435461520500367139426303422326957108156545612084211717680652604345470225866401432282324637842450904309621775616962027811713283050078567987225938741260496498364755433546803391837711787743946812668023225403951527803257458579031452678830424454444042630263264664662016508776839444204172075926263413672073715856284695747529429906273815412432180798813083203867546939023147177006650481712899299067418133219296425707104650078036154701132112837219951522489286557600162985405213385666404267652677321568368138659202334145227110335459742449266856415400547432966843596811172605910683432039609911950607940351107941083170826367352667082063672343600187044400119468498041365618650920429479070977916172107837524977057115615608480479499438632299743433021809000753701819666975841222176480337850920819720590575189913237621670513391969854966885235721578498827310752116107539474883469978334643042617532236822514530363620462622771592330374759325591767065789874174739722762659074628193520766081182633384134582322249283261765595859807546876502055917359438186067159072860700354504417896292169404926385592202838925681167791590220994483400490291275034753725679915275845601896052447231891185249791400501720539169042794141370872404077601454626699171914141388654986149543465108756257121041376519365546273134904209941083267530450176750438863024027017637757760480614643572152355124543933286719378736602903171302519246092859405284729503668548120651564309698691478402392634678881097643241554804292465286568872445689017244858685082760622798186133858385774976551069707645574375607087308854952664656685128667311131280416133093667943320646219235553509195533695183827248863058798911642417209898738694803452921965582974937878647521167659069902353202458372472148479668571712714425071562517872191491871552975580663131764008157916138319572185719153547316562390366778904761390924947804912620732426884776201523531959806437875503666875632002152962443612216268233712004082394726189459808802466447262249504594224499843861860500408991442185687300339896482864052813260222136368399361805649291123056057759743392921111050996050783206567395489913718191934701826723448704585775748634453432496943988330640411710052103371223380407603303376004417535301020262522992003041745203324467371061272381599505744143085457093616027233753330385379431011785674056069691993641799067825554366483640144631150517685737589950637622116372190998893772521004861516751262433567476707427078372154636578205230326173530896521314849697400816896649162174139524455281566759037186142778841215165132343164501908846194716176147045273735216737906468280250385237887547209655585156025043534605566739423672527063469263856462659137111035169709897288143580404857397562117827564945471444716293520458065276782379803116349017418112329086584811884709226003706623836219912930171268353081824552874184122803365005638031845411362768220148419137500918494123642085733179944165075428762387922068600459680457667102684899554529262123573756288274812248742875521306943752249282307671126558863383225916492201493327242839051644495150238991888163410666445275270080379559519788964065390106471562350403412232272690173871531624907066531128479188298542174428199269077890515139725832127299393546637056286531438188527317615388639979741798636750120684926746996453736364034562489714635335606457599105266194305797648245769703033764514797503678473168585994950237616584689530509457527007024520473665591111409116678545850132008517554122721452982957557450098265493618739168906198505522647191040006361368280122638321189655427582021497433719326502400735279737398999655199756873983014165958194725472503492177812679420379833181879305224273404717156828747421764317113847522119322590670206483428272273610876936931780142115551197769141629814547515650370404179464801399704685846680161570907652292902290162298270383385617973498463456328987785072364238366668722389288063449171153224425929180261015800093517884455536608894150539933675811629461249121683063515092283999171240366433396924283884857968478994250059921349357786433771090356697662576359615429408851515042363621586093236395227548449480493107031690534000106322651152644279100697759140762651709115604442100414785246002837551023081215943034459205550633540800405665037888924530294060519063008125126571397965244139329008967962890365138004440232272815058342987379471928317811594127767165576915574050405279847913603056236995253896459130609797306048382015257895973420432894036913092031819998660741846915054291127090254079247786979497551504367981787775265518538098223013186252306071652717306527086993470358762995626287888762112715314562554650313495043227299057535643569300080560509685590538447278312632016839008459265474661256144155391025529677574762636584244950541389518403937135809407708682718147940336456075376113552638399528410197793994521403290145304098161126020986001257684825823186473580788785516166891921869758288110975400267968441485487888890458701088212183313021094471648394195113617309015928384107968761608937260200868660482041115533675551012340686645353821070511543898410783143579002108890541557722186407907214632070003864621953482433083952530683667776946811411539670535308599261690844854498022674110841640201293963500163687030115962243349583656824655653322516836722601472831020474482444137078057234108168837315485285507295150092935758883188959971345064068199682676974288169966684670958548391794188544055610630702621479756659256221589221744934700324467737706922666408888641141961492109318430349474491778243861484997612873919424768184321650500942238337814100199254176550752157844954062116470899518092757361695277431614851014956420517001220084043659097628627782531410354131971805855798866875579819081099758720272717334300513528787827556646189802045126720840958254491468537501047858231578355534032352696793718024125910063173712503209659962811068103464710845217084917774731337458009394787167475221938463197387914270353301156862414794036811942625659680202945807730084278934100393105431448158695108384972865366714096936761207876264171809343494744214866518891607673785924431067926555119319912241602335227419300059679531961491634586305155245377408915146162177566675302950057907200755820226091894019263110024677036056353637548385514039250184954587856204839319206489078518143577444705377019990232501845252964218770500461692885242906103903393656046680607442375546522166252513270335645700022457958244213422224564085168073155105379934320167095279856541156245534168381125535063519115566554519594807401968373637311184594935320912505262937417971314638610164090510521871490488202376639480458826569259122117350150488210498359432573596442738034432855528268056073732182570377277977041844323438379084675349813458943142428960637158980393514986980429422924012665900385677731844776269782044750799691510970876095762129736261733476354923274482888006954979648491612058415994573522406646648828973723268135241245941891700462553221892247012239222168764455687319942145123901251591188984132056863148421160094838384775869155315498621814137238090763313551714665100835380218593174381005809805965002194662189833372042083419766296482853086850662577819762463234037992671783685038226012112925571424805782368678484687304358218829943056545645899400920047150488049945821569978682532625772053319546384696526596659314635410215382682064086660024268241366838011251942374881125713485996355887700537880695423888326536578377649949686704259366038534685281236186781895853664237085963643799239129416938644295908760881701080462252849342017513867003015549020620834982651947887372572452151449633290462329666539974973719786493021144874621542485113819858382995983998520024838428444414562988321846656636261364138690076817657626879510700401591658990025142576175114898405514380304201453234718535414049877231549100537181941636406284735262505989203826038496564215376485734290886969345744366064237369981887617232041617009677142007668177661992662157767851254440313877576675082029673219221179062330739597234918945476615694506616385120805310944823706030425282640642844077122923171786463199328174377164921907872360718838620378513294808150539158066825950535873117717901266693226307864600352813991712760585363496585520202428291407699657627456528653412497111869351248815959550879038172865208008250973032939670628612528898500485915909378586946872208147774558427146926135824246436235205538337232940102276177998256280366443761223597576503118011620107738521748844962892765633595168797785913024106740336599135757766359120263246914389265857999550809913541401975109411740913894060095644542387897880232868076425942479458299397561343066036379862401662060276149107072002310404306885891506015802087741927809046752707297733880110940684441188522602393454382334241431420102104188419219204249465751020775239196024356806031761186956601558969934691841065806530661605192371006162213291757626234636147053382200448566993884629144900286738662239177131826246555132013718360041787329019356746251038398202696956489703884844796127006002718137201617738424604240827323520147741108682028304621760360066076316768392364436224048062122953095659378657466781895276003618348127557633110609973353443827712878555031971198059661906123871221206059784277135088089421694100101008935124496953663150354381881297545201391482827852509842919180507051695079500566323574555958795959702131332694866641917192765981034067791212969465754133508391235331987143765735185638784027850491652887816755942397058956718997863186612128271816530225720514324405157425899562972764344309345284917055353129030154924059722153560468106719651226521528357712206757407192012590308757248710336201820591434922416010567648301637727291751728976688537255445264833281981078833186722539888124579262623925183014524464290311595515803180486529643873968944717823502316095749310768294943695438272122804612187506819414967396668224347215893796578486572893892009460978837286948041069447216344365926223761831625457966459372185296833374040425380875213882838503826901093659747970427529390287488088465697763131435049333925519709389434425501262833366422691724768470806140281701638504691942111682705320428083693549051886907222059473105738923658093436443439321979768583338347449298435585529957932101450857259761259410818597042483419985361482843233720459533935712921374778395598269583223595489728736103154619721232575290416724516400920055962071415553937188874285695550816832183258435139350066490393296842183893437566557600666421825340068918240861905809975283107754081972362489470284919735182266776311115243172973579549317126900829760532407785490503166716536321370879906102881061184252590461887319846513690120750847342622373065908292335970584151218071393003053210251006851187275617731000543355429675734704687107259467052505085915291891067228994176635741334875490768752761626349939536052353948427610834420395170564077498624236809168421952651830474898483233568310164940624276036950090953935876389319500167230255607568428677735478511353739384565564349723751356952336578219722784120955091043315802144184142712442971614359200366122245220617855095606691836913257772255174442267780527287200471604372227405740847106346678829350531240247693565941592082501895292087161328002319609634120506319793872400247019610184904483239563306015641162150385582133391671016583859974316974852828406910712036898009556505820243269278127340689459912469235745470286196751745957392600821334277696588295714261137348895643728737501796371900293084618514944144474087056928312346230891875051018757315716047544956625677801233780845393391762085105855387311734216499527513248138813951058651346319441477524115012773577245791459314844097333577700832912884678370425878815898170353429138887878521106060682893206779808299202586931604053185053634538172866690419247648346410361586893925283579898249921760117494344188222119631491901503098745833481708835547877794515994510800528967973876183015558536869538363732434809261332896831133505072760451597378864755193781974050746534663803355580384968694608892997184528117780199169132469640759204078501928497311322544336778652545389464843759716800501499017623651618103723039751586674947116890309164627803449770595964615871478537943116600905953623511099129385370854976065159448677660629502290307427249205232087820459445262417132465600169796628776559369321748589602558984242903767713870824231085602862521022489287918466592654861159949654059364619056988645310724472698892688339361624186154593848122503833968088753049819522457038181824943229733700953264869144196111935876289033398685202846358334992028576041627448208392716960908772482880194567843352734618462158899083656670917550508933420781798683238117339568754245015647903859968615791998112055242453121652862962615018812112408227786443307326405613002363948020441409453778614095811723865668149138924439643957443882253294310383867220244830223428142650768878719068872877032203253500225080094601797861931272147916343392575298575565355297879106659208245476777411988255141572478163122720452766126924610373385723452641517870604210744189792826518686974307904010585620755698052977022571536240078175713996002255957135499661022391296393508255018837740269563728333272225145357922184112947104822124801758933043621476541785202830615829574301388018826006721349806202835178813802283578931601754391594826145765143089882066640743255345680484444592133026829533439439279580103663325021620810265770534701040731001487612279320545776210490863632034833024533251106140146935387574516814742895677130116770321772084861224869414218138310027425325316156832998854581003023131644190546484404085634367076491181484829999968023543676372904141650553167873184040725315671334136285654619065094566382502433350369720836939700820223713499668783915122213834914276735762637186581390594981593409273207428483220807936653680916434884168287516359171956231828540844413696106495942627439963207531825440185051504703267245922533532105208630045997078601920602525405256405662628444202735426582484891822027867590755671306924166691372546769528970851493222203450002793453380444743677125705519499219327119467554863129681023943468759177085157662812558302763754664523773993091854257876870437541228200696890008207218129071963205130848475813904766902750383552794820412974268913496171214261084837959118742192334900487147574262986656538086557995679614488602182803617326214992202608312899428087217039884963562593727349516465922528809203397880500995229825849581686073715904288493149373609768544109310309497723010432064299841158782929479774505149708836720385913517862996364242377088663300657412525406271082492353932589337337923363996648835111810442149827611179975147225603910820069490744381371975386099847395173272447478666229715454129364936730769069631987814521215376513606636875662885833291697787918732597220351939241628698999158901962440207800571166930633888453326061196300227733154507175312510760168825533771582075935161072331362619265549375524088549727233142809121085526688544221151704380450713337825801073371246321154706635123179642549518444696395313516483176776502306104643389899417923289214423431694672772256131434214044438325735416150974211645112449110260347042862536697592140340749809925297062440034604661116349838337141283376502567333165583220059086359247190049229798553521899543052867064297223054704892794986517582106840866463549626788280499778055730377326058485001499270828030405630465355585374987650715620336679625438572649133332335132791959764520285713183753022309790939061680441032372534025805317490832615058935215245723361468288348842256245161722486987518212683788286385697121432097400509821319923675058278918950268879192505916756431190182738655738989055286664012844982132068131704355535491124180099471672888850628105490573136703239182374420135895415202865460916836843116602073858806435478359203908332465831141797967481094279526339513817841361156121721219274550196138043730136340298331397535712348255420724890131497955060882090261337756360569107164025970782952236592800990108632780976806467636334414382772353258567517138977681800411527789968367074429662673085181943977191334964044724737048955480340467263280987274192191222110046866273139544970599993309291409277788113622126713458360314995207926726271100947640998859634589105124469964718366906365785837828290419258957135063516294158696611311981142780055239197498763135567148521151749662483841804024503356737210407136855667381227112787622127955841548703495620452456618368806835297285460176281945766632712465432078495593434609152375355488854164536407089908289332571733933075440110742936865587808140608001762148126938736228115575116806716960734260541348967157090063247957334841264782193693558347055997361409701939062403610910430836611472361293935389167632145989309963266949443775775430709645655529899179893169100560318929259420724094829026132522190604679151503747221549122543445134048182315541980407519737087499922035711504725728264290619267233736005781882995927458253611258672185384679384475136656511791075678744577722850007988399722687519993648559581975108340774716345666507558310896408719644749160668378980939328236380668410488904153837354553363416886997802221227364808603917577105707609064796216616781149201739837991530266052112516443556446266253018293541844981576746478969069545639417535419504658903442840517808140645894759445462964634255638324830778778772241267773101352112811321668875891616112810097650310185804464824237570930325536364269696258482058008405185349014932122182483071326857129121146835766929728654727612575877518673942201400641574856998181681782758878136565947401526582477518731790567966772761846303804055080958243187279736954089181380949155896870138352168720660498161385705008083219759735647281100901708646543366927991965900405743121622929635945038673693978682915095120923607597165285669663578596917917756115708310263568200786753002797712443904362462667027506984977197527011642763827797042310743685183652175208527607459643614745939419640301231796557551407358550332717914955606069986427298475512999503124771688855812872056905695954401214502671661065162026840969746871149442198900228176854194986760745469133880907001199531126242325179908975346620594409292472173575329393551369127910156955010397382016183738083226706813271195216293869818834357011873448315160890292423179678052950276853902048515083260738232646036103322911206674416378156059286979921798552476445047876689392453566951497370022838780201391323230160902614592360489912657645287752345510985253574024266301359467390818280104609259484194922758193960389081105766413791643698174290030814227036317430187844225013865669542025784565342161347125701558009835257165429170479662581307977710848034882343239023571844044033534256232372476918579605706662256130883713761329796263934202819965840060301841041258813100691208400390153796495762544254620623583309279152569491290631555655970694730477866824258469793330809324642861000657903373111657752706539334007656169360476429970360205188404668663388564434191722425342954104383301097909053240965883507514773644127813754790649981067415982563066688103289518210822850763014161931644650425326785054586033837990392028327425024048139620846407634375421430631132889656727137763103590483236171459016695347003424348192870049681711896995789937026503688684347130209431656805476367756477056085378927167926499721012815584892511642248940235190897409615914925588507403282618380090916414032836804111887584429789521053992559855417208342065778208761927965843673038923162399740743335399732569352706083821445744358605511595163654327794825424381524145791744486072417646065042995170403172344131063470536612797918406713851154163553880935944352939664239577460492389201802963920512501239018830985752299588888736076863132529316133809822769086249076692539969440554633405343965050665025898280297423732409329497919711367150809506653303344683342309979919885164500240991695424721962920843451196024576543525052463407492840799302138522706439258957257899663401162715971075688741199375479069816982771627462901121680858979060645861323731080577835127834566029452659721946392630175465484300529361809258403956895250610755049298716903235298703465811930261802336469851593167979722216850425509716833163374118778929290983989707678103375919092874348627631601317796506595201624029789686763329991400709430291373478097800104431120309659521236967545869370399630334550606486141378309137635320235713235968524932731619750370751364342283467869158837826401484890692362121108789292031413940851637867744606683510048056656919364739761050216605240103313462691430801836675416974272541360852284686286029225353780396914086359167271269397668928610449086508871476957553089223413426052053439232019553257590977874376765743260561132761884835227664865429446709847817367709975005221462504930476515503706643928980693148883463333116801178059525089305050701483822259805029732003255543158986517062427977032991614295439947773497895878217489100934386956605320337452864183374639670002025746791344036056729639143965158411030181458968706646306413866125886387266431258107980115553594560650846654283033170193176257118955801948749274923076973191609192367038485963878734498072806717405956378402194749509552289385673628884703611624529970056019778340744629449116609831084567511572677861935066446429311282254020863291824235199669519366561568317375841366097933774360758734726899545032858255182549027314262577639406571044406827577266966501574890332565661066778169729084916480788536698865416988722328633114166368568202612778348029112088806274300855603659614549756211940699874293478788572045198041981545752335436147115744333762013191937143326588767664993743577160978999601312442053847820032052328945705502343083531028471519727958944481112904662389479440136987140834562384989562353282921035778476032616334881017576271879038573337583717275578806351704080215645194798510229692376988661362978149279554645535508191326666650165549339236955251890054128525488646363639616813494957524900094951679301968215987206966514820155865777421519704296020195692706759939725552164133339438702286175971310295769568807793046367769585134320645693738199125863001874360184602452931543265932989606651959791912625140912677315139095882516358330535551271858910598192093369655539784967222536452845582440979063599915535162875199465780934447088467767534746493687009885158811210745512118465369092732555445069334635622191984299839416061562229021737436791503662238671322817151002309606663598638083739918115496263226626977697678499703370930169052929362899666180670197908429088681108698600252550037994211112115776438378079123966504886952731115692435110857911846857357959774680938600189747381987032991326792668648205438525102402236332674039562104052350219171609040814756797542377024777289415065804270973796873053300861204035894020616229982995226812027108428095025951872451595645308037695500576155669235377946677695798746344175223390545605360527981695246510488160682495601394912020515873062133155869016863347278705803929283952951346333488128293330369908153948354869326855492652357891697153106238959723041066426057755030608673437678610675997415558893521107433363329832302349620953159072746440561253845361241904291673610797599557335033872699689700303068722282063426032952582548260929413783250320642644095259593669966681625256798656894449447458562350632246242404423648848673919091153840868432965317551735138104047442222870644732011333467552338344706979153320771862488645689532809790219306987346122361620669649001182529537898369067845824345647172029703095519249967511246419432431786354483290752279805855926754193909910830848180189988763320159419020180385818897628567594429607775578906423731547571820894412576335155235025669234768985660676843710038484353792981128286522544690717790738278727491954153612021415303730137957312153660750768032695656441930661078846304703557301704795822832703663599126524123141682447943841981304592505601650474393490766414912439383861333460519000175267459794992951486389898586698606877155856800476711562685486839409934914041987288020532624188314072240002904274595454272205979087142487951330339434208327059267289113453831449845214752297174932247726488467681987141947813200261513050428057149838281028980520788161730871264321924480125183276437291331279723894144636499411434242273140174044416583786631959622709045719547574142100164471111567394238174089904470627143635605524387993021342457151729992112701451543661951467788364009329678142646469470651216327134590794216464763460562564396720957753713167958400238401386981762594597948025933275334452560389152609547820092109143693039773695061227693277542358660167884961184101940872247727288836034152446780724469468880896578724568159189267975632456926901203312688530090341375228977256611812269630113079525568433310233594441773908789910327419775743724380933028374932911456478314414332193035420349415382126481734073069099730110387666398140430211963504859685910306040750806699150153903908570440961979618207022238386446808264872226088333020577895942656657056048821051088007696043092795406533941929603365313261490893014768820506711835899895277851856331963083637271803814584741828928671485601024475975919943584331976915449012002534961149327610028292241482260263460992575534166009582020917121905583856435881186736007704357678757891684927937738897848404069620504103496321087352464547584706076679646087177698368026854806966342570371435324801320249625249239139064882419583187740973232497130267075361204091375384222651870441095531189889626365485791228998511213461266696692593321762210173375079253828658910511414372115325188748427773578696918372726327784342119689170749055323260561777996092912520508605116845198045137344679198472538556178852709118578565819525230325031203896924387742454793040778658467414905983806508182707506567166269515926827689859589850234215176656654873426022685124628895122436724036855453800394692809724465451488081477342266498227670192322218327102951292448286904695386876524299012673301455064306647596158318658685750852506780511058530662528727764923250952874003015884630034229431670573773278350798156308075902054005861677669890919853450700402225137608327907917555615715179666717083425568836785328578217058887553828748153238238419782467623921709111823617157070379740789046186841842911301702239263210635902568789359694763891491158046679304700278833665633026722568757672588881981279158120083239713360484365012344064554750539876337144353120553550115867518649216249606773386427419359899950206460919206887571295924137618295938568055729410018139799928282440850864513403613941802640232679735850447493499419023327136679080278162061754911925610519246437973631056828000948442366192699734056718541838037109845171074308783327794528628792741866090397342645099284628051708570510558518211440368711596394526277622432482752463402069447629227324637093961923536471258298888463360071220479826844552751483291132488811159837668605641278266378855438862658582426224032774769187661959279786097121802885991082032581281400625610743666097254797355310706495016224732000076123825440604677107335974815454142495705124929070840726465513993660339553804979140256487821389509069216336007539655186844938140996395784535053825122105422753444838369941985357263786716815611990105224253529131688041861995190227514578370827627529454038820106631595192854871449687515559276457255462469729207944584546062241833668229897855165199228924692574138947831267680675481484394973892149369777203526773131628134345642874533121836922050594911621049850776600210501095755293895088473251124627988248030845702178774241618986176586360273851787239816651314330338656071933717225140484930440584545900420963254587853593720394059587972841328627000460003642636276917958560909868986251813377437923937027244966502579878952894884885093830855642475012937886992705085811745949580857963885905527416969629459714638590150521816200295439341636719131077328754260176283800314001694761226053915430590523897121490440164524460523092795864244922231598289003370722236961666420820322807780255087767408315452223638144617746912651245429332488640090571300637126599002200242625469064558805790163768341780333603692968187042720424390425614768714126209322533061082993684091685872073008561492353150900244303495591569925925006901418317977259937790851200783659647379406951874765649092436561185385620133288722254267740825265502376116572857288274741389476629686481708410768149519244190191941727548549120064743876695559942147771077121611865293804678572693862965663831966986171799899211315013239318251423337516724074984829125160887961664982997416055691667288428446843627157828214049100432276573750513051364137906205812899561503617537065473628249110317223885497327857676755535024118182904415115278433577174506135873217070070627176457481128873188433629148210090359402418575285778175757372233559394807065449790483614695980495852527894263561192649240166300136051755804206773057910484367504857082067117379236223705527260326937940493251640755894717252206820089545634230785009808871477632542798730040311287758809093998599075624114104358873309697789232691447525092817468893196776147280230934808599345859095802783140414458272481313440111727701403326398514233176570563500810816918582250292344700238075751051585889028669111667849232283529565523733451778987934425945309473908979029930565714678869296908874528108729235385489985172951627457684439421515464634968960177586964618406942623986361449159939062169125790092094237393436458620532199285508405136710988514282670416689595733982049655207634155765472319422227273669245335605758816263356557531225956624369474338004931453472550677922686371139135477497277556211644856704187314967998280095168146749282943739389000966058003168656578282541099691207464547103767321872485339896026766724326403549701240815046877234930592450051506307974280572095289988930040156438198220433771550322283175145274935046975211784273421233662369679575747077045253908156055558753073960748378498934637420191768902939934072888310477316855272146533764799685824806128059900255748997811562147727453668891985119999730619332130414884732438305883664334433019450729937829631277285371410726982826913988515968271921242129831936321279505888354294450206642158833964644928577743619765151723198251166541347927559917813017117652450520658982786570646469052317576366839142288679875032966757216619291456293980249972560422841011793676337234903585754320713401561341483086021850960146941481726985871103583114071559932040792563513492208762733878645177804090874812032316468152891982871935920431581330176087364127841540599628062261790428758332072626574910069123454925058959665601416642097933087357140899031553527712251938167557803590949716395782583996784824879655402167710702930304304369999220343452786530854022859103892517384376726493370318310585030790129170973075147075921704213997639785875022619041566408609694974869356325536569235399893663618134599278375058093527760211891662468201887252925110431194189542143107464158099080053381288796765783289082977941914420393012034338849110896574820361129124036496983795018671016032835790683117395611376067876894176424741707486187314887088579021060036232716023706485483053263774134954189051820274000195930207531923420935726715549962425506978577225168374085020119324764814223253031313006333549407854225273460274710522687133155475931648530009539675978227021647084170924112788917194112729482297546638734418717438576188886478286182973572539963706620060758934645972323643835428138271228971779835786808772146261531916583403676658655285162013129163144817092509604221953729857897866570687176963943505838967106562263140285518914130999741924105356219701514814280068051313743952906542932845420760400811617829413386864845746377055005053166339368134773940273478553993906945850593792583437628927132741698836951562427505244319359949833314202334897576976102634486874990553141221022776322839024809038816779761559648779162489409229775878012560116988590519716723183398513565739785273620802005668703506129748949187295904599776838441603937380198009280456277488463804012852329477831668424987336088354311861783289823821802510579656320617234895580040242449740006812054083263814177079679189250274233085504869620193414845278471747603750680005199621867661552355034880857905389592648910317924669607506575474150320202931392589199609893772801083100491926375873030901505083806014121936254001306226301826612436465911051960781819300260022468380939459350929959070377366333013197486384210611392497559791954851449642890955518205387956436540260053869906618689271316478722457056820871454051432612456843368957692788316580007468268276551799190075396313684904979763252149252250416503105379308575315092217805334954305563944314382869450850676518828040338036410732497635245687522393283842432970562877622999868451147833095066281206303071000876839360700577648478110296555360686774563777717841464305484406825375541472742466905619850377701880023135587332238175087692182449365687169835275126819527645823014704458160232105411383949759843043353687138854756072463106543071658396824350087702772497167198141451342860164049519289851842338025485229632494774742463249472495114999259205037932057593355963683547740301144292902961861967575666862033592202018032832780072575297831556715523909915784454679707164487630522826032473541951511963749906171936656475097955839444540984236223903988430878867056643065426512684075771464005800800688876445823668075090606322264420871078901990066595843244026176001472928600178281069776357488770415832093288397344038048674791819111164114532094847633847638838390317398110767682050847974857185616844020056663611070571213032792057874544152321389292250541790802191090709414051626402888230929836967845108913836865265238603203246048846150376472196379116680988126683474848581972382171606984999021101434671828714411321753927861405510023083759976238487364763829972077077089238977795617086675915421876940589520854410750913314518202683881451489433183009091353693541177467663701493813901167692152098969368973409653103373253064723713915671896429594207337364018970702281487545197255185387667022295534222047971056027838899600000472040358391640897854433141918752764650100799750795303585276311101019922140730020342559695504312336941491853275281933893481462935080587573702163313490123908562702658278181761498939461753875724382121402020247835513036862752617862994380937054658015129409015070244736380873446078258546628371298223761045920402723031031841605933442907329300313873436510845578993697737483017804372515777486166741171048370638696895736055702062825220145505267176441168978223454686882003165543220866834909162649429904080024371618198747961709140892909196169889359446655186638677161562404507616512792718281724039496447226543157610850752550682548289686222572792602139721050962077281025576698751766550327125169163968280958263217377307328188196421660176973485950528469908840258359704741541500077718758311340432145641957954900450522251354947514086480911759903576535204164902202428014170924256878229071557118099645223736066316787625572307374707871986950778815607126534698659146891708654068724604811412258346555623883269232449751275934986740506477643683890347513220402259886972286667070980071183955185101253425389551996260473568916240498747306424600923106673753343125898049030957613904716402622384634552876867380983713842885066548380137789649434121637442757804279387112988244413681045141997735991401128387913612274449407300017442163540789571128784403404333126457911322045938018540628802516404929206260640418660529399606699333183642632146954275457981942677875831387120880541337546908986111281298961001092292235056715839242740455080806059401002461056242896261617295020429477197116902220776829786672371264662857595113271989799218884441475336124017631186718548147695525973762921426215173273317458264688241801480369573709668746351895778430138199863229026071622453221890506681974108515725182706993842796815572131236405356662940739852536204113429998715560111144053246590915493701504408116315900650942178226876802257924917516876057618118072738170592854012608441034100879521549954386109642830452689674076513142693845252912827032092262690366715992485689661600530382123795087123790773581364437551026911807541516327814653052009359982214300926035010425370737610981150711343824850354986755295113322649518445520928350878866396723710720184600873689394089360596605716491719907225503759840937329127943966733645431912943225509653287168410840495540262826909332385517493543042823681707878691355204913699486831261559177439857423042528717293447724664065445062606558969503894812809080216609818824796060346876641743854676712433681611930740454779878727638465565659306113741765416680263993791991939605565624089997026286630060434763562898512215786299227320216182878124749632735240216571883286525079277022560957743360114098542385162271120744936179249746084997825290629608334751556865427221015181003802139355903294329180349839116073157022816658000918586220105039598284590380473216307858326115461849561436689037428450618313995114490968529519227543732965035778219480876419740783959219848406794056465973319583980725726035269926313736488340368970706681784054140652623205551618301687611165329105793411637703730082510809460146180672359787886214921271289521342824073770940276063204094603738773413319197318629756807065964952733865730257329657174801805424768873692759730230118011132148795277433282416771261884688285109392518527828876115989653133658765259054685153123344805954719459746372882641402591530543267824984258242767875647041402480077307835724504720580144224792183321694559231119982304476208702203882237712488226589745911402197688821596133575053075732995002074658179753589258062376504452993763965573725869699600407680805302861021145485538374269712828402715055238391110164314206361887167316574435355636908689098566386172436382397976530864410258383373072735396211822267663165040214465126479851493188098541646829955351850083859123571421325851490342315594425134025272127750379920554289000238971542757649471872063316191828729497768047029641686754458488799301666705772057489718765547683276553207291299304727165957884851983813781097411730147265480136049229499669118208311752267995841081624011287408829436846066838702352222892167391551587008791425742732646049998764105843883485289678346818911222747514047359460158882385325971358701115385794605586973304881400854744845814990700510940308348312743845213143738631714463230007663810107454686752775540756338203447725777632016677094221440219561084324485231425997893049790769723245156732791486605452827534161864679595190180693078781592470773669933302399905343206370976078300236096308607554824885710258396492268456877053404383755097166721810366058046830628681352264347119255084969880462843846074826642799957728159076412682931656222571160982246918009434655428155408564682715339594489612523140953561555020399076296020754360019893168309337881115722368879020469271583693314349494432904397739895620375168002276533698373565655613024599469631002612712668931231145085043491513227423655600387272774183151096408642426563304535817007859684270157191974472397665551987447269278810026078683629105273139304544702322184482136347765540956187495365661674398841349617665636949478188102790981928097091280549651502707996211540410601592717295313327480905610795148174157658894281187103464643760600790200645923673714769721358920689228940097717832409951545872084313727033371867820499588905485096822105981962947008948233997233847450029291820018118632344456837571319677649212721819533468502658045998353849546394483846578832614716302057607412086667071908059860600415742272247558216811427450451219531563694526827674916925439567628325023994298713523144885944582695352022067410268612344636513763693065236893829987707575628313326847029814717570286056288951527215582758586457763964456993330377595108621125482728816138108575828178581670147900609300440367371991545882240091574917577997865480992764144026999868857882533991253777161825763047484809807370643236827439594033827957502992461644057186192815233061474281137818276493133058137022491781797251708017813767367791071193139694146394998152391883604241478688758027526143527682587949144573864079586199771962751851231409188326111052919346516501412387974306196820225698221452202311551290389518112909976935061346798259535788050723670410423705856213194293257256364664086655139453343704255727667028203397552562593548134434424719171726557932738802399519910851525705534880833846594610008446190519230935353263819904600784291615374209190515920627092683976483119339759444367225381122571146046733877455029750907705298127366312934427520942521888495979193948924480131006614530074055610880212835817829042296072889520038043869451939239099754529152387887695717812648160615237406543249769892813219578896932455191772928340880777728870443040468527567151012460934348221953301694520830987862350768834176171647401391135779152898797947411717889523720117467855667758718238779553925450923117715516115247225295817130826948925613605672131222253652033642738125396320112786824144384682949062394246199589110004723153101269468627427334062411731107722666502544872796395653815186938516201698232478804761394804665173345379964770314773839590348984735683567096094423525908512863511581895799511714142946275981433314355106020779980780449913423590613068486591111028864503298700050643168592450846700840463417567542527578755949594734437795243739770237364164169945556329034985974305059677577372976430997948281073946416366603809434297543121688515156537166424490980692605907951104822044876627169673116596427872012604617515180961449933172237650113592633770780217386902492207859827838296703534731613743108932863966698788474050673562394733867262476936044238352503885616932468509898989928546522744899399510587205620399308999621945943879485916805281185635589078495086442410672422868788053595893236094166907733000109592697117656454075868012571791661000013424327473455596773039750553055527983817031640304494143481747384462436711686608101318903629261886530952453050133069871973165554932574572134538926809376945721619824015756416133724735999011795830846569519389376996701327185073092137619685905687624301743601865271874345929657545011466284388646781400651808332953124616444910462530584951882961161784694641785398103999501451667480744402120757326658710190967094725142361884365245612938982041356248883131074732109020906408546704714216134420922078680710530041594329255366203840829237376334055207737022452536151967471445861413193990462882513863465535225438359410610878375930981046552011703927756344508433458836020420556712757926641734345063572436737694425703350658840026284977617844743861839964959825743646685689726473330554212657324424417641084588013153213812755613482265557870836136603569729528760451373801607747137848585419358765924234743351990016059272166256034672235292152692151441585730534718800128987281800262041115492439230759991025964307814777588910115146615349065458610555342533902842665173168778744202674316466832020226991487527828746962060701098286228616448790084968504005259365443989429131773125582097459252136039906697932476603867842076447993320817682514859064488839783525965106526101724276444696023492867605938156138207532273256919649068836375074501096675008087997992711399843689739603236438814878778965326013929195484396137328409387585430349119053855365131497186150453536120095459220530131762536384100828921835275240573400976488961409940524317999149818504600381366876876347101520357308926019594253857202567460170776746695200714296875238817477020387288195852378574279271883487485657517557927751085110507394394028951186274385407037616820495056473707112633334157600952041207940381109091261861321397546979225505554396374331472540527827199045228230168378573530937744656069737508908336813183907134131064107935841344264922561542871103034877568208657068029270893699056021382886587783706834278939814489068960029599163137982350048099330903458684535460556982967488836321911394266294335771738061224917340996475161806616374869635351495684523290664321248996554793809421496973858129570418699319484858407223587694565679054318902658900721296066668561658985681726729427244735512797141349560258438180526885970401792055403318986763972944908405960467310072217271769361516041428372164964409502831304978286080126566455711810465320473542084876738048705201532306980788184242627506818573963036506521629298280117267845881461150880299905300218028758257223851349654000947262716840002080435429672243910134274120059233084029134139620967866624921216366300047185946108197539709036388292334331225887542753529657400404610168854685499995660482281845205773566830145894565036096265516527297166216451180332222745295073773747754921888188883098851507525972995505643836537565745768981798610047466277844769789728751379841148686946730255116726017346485640700615687562407453318676690894500415898675286985765286040897080286607025320429238309558014777319347217247281074089865267535057006748891758025522330089701256351113315073148043971437946439903675092421419202261665061245626176019446957685873474001365357920764878733223159410376087110595509622395250448081826244486850664030360611182736893440794417117780949640653427943086025705621738158576385252247030509769168226885731906694062773453467982350422431366471883073415415145272177591894958272677617669863611361372957845221501827666984562703770149371495988084977135874984153693247661401271649778583713696349160793885296759912746459902238561878115984675977691555924178363912828792077346006805654764193420257215696933402705902385987319413784013001432101333308779126696284844671162323603103063277745395782522528788623090705280218861783127900768140932608852800718228665201931536001811250479364587947150554866060952027748027305443710580667221200681560533133774854268058714250600497629435636818884961098409799036576675121008640588583759009385404150737265698132238147944783554483231242868403935339436787651982498405829991474566294994353881886893901139738917401504682400431398171544454641751799099819923529216448710271597113272947683874563629123947549909258208768800315893776927661042771073351102178840828641847181053382181209290669564631423662378075741565535540816812013190762024293244343456866955552127518290388696668887164567316561297587594506813650805453296996778883786923629948462228667890679226409698283622229808550686493970801637757995467894508021883649343239252246847733346311095407585157198280544432658558485168393439245501937209974731318653988998276890848393767677193100042909031083391920036496679685700185853291704281516770226870848780502161865035088571062109939719213756636633875937698696662596750177226259858496667022982159371286058196725533374224830167663781975309579946913562944319652025444730873285823711235945573942758629657276678773198550947282370019690675607932570533876994762747286103659044229954165469584679695389123881491239645012993099596902104215788666756200389246390923775168841781545592916481867358702396875756741566330052336122140649482536895820101610302405679320240734107191165296597023501000843715084114021903231681185373750238796229823631296934589412335178217490347778172921202009019421487496411428196811101271365540205253758885667438361173469706109154975774343827862824810121127333024037693184328286618234235211464038814107507863025081488139619289145319061538381203958622037574996804870021265975548097722613873613600593132384253653087536718830220461577196462137145687756577911599093293256117874398297765454626956696845627100307051944404608277775703719848652388921757955697707454138583785266838168670371879062094372462143298931476426891489924871137435100721050733432849490488377225989550459825978553509611532626001882609288583891316188752015279842152968775990180804335293329331448553703640814880364631321566752522941752271188350547767371232812956023154564855532619265695372240537463609798519108223697202530990531232831198100457407624265028140716320725528553281152798971267238583327601582074800181596795943813939993715223018096942547460150114097907970897618138600936763371711808080611842058506782560483652095535288283512582780186115840095862711188164718754740202398664534122768987123222579868604420388185778448403894843293402493734066302937707724093749164677388307894373224050066784733797878738226126671488802116394601081105534351772895439852977563736670969863505006884425317123864967169126752795848682042268738823039366301432794810642513879531891368159446904042404796003101882349784148639533590295677585520777942822276882198411870860481129894339111317586708499935206358996109049605873107770046203638640923805318448862339238021903298282554632090442523547758289779673854119845013096218542149119855407392169563471289279039653197631510283540783099817077046951060341369258402230761668899577646831262845945790528051123922625550065848348386241831495980870311658193439564273474658507090059265050158846608716514664890790538549308449279000389853538542509294063578405650705437823224860736150614678186419476485112360883967704399476531973127325022926834725808539538640767908128952703250822416704648804349823704481826106300898174455386002797086359785900748850939476270062529103640865875556085651961028550981731256462492178449548305655611185851540721899927395920043223784562525273302096883869420800850253608856706612898948334956809196932969640802709757431365909490889325681602218160089980465710631367353903241451816714856284995573875132041201584584746273477828134722080382541857548358511040210694033008215668619999993112718736031202950031845107663314953922766776175697393849715479926838356367202693614126773422705855231474574021534830299001933463762806782290139654065220602344881236285304499734951642458050700856419611693700369298715970541032476920147331828215272225153586384070713368608853855594241908915933360597532857001931823633463245184692611576204346701596238612619307469408549199337254057941779222398241564257982624701254812402583747384052168337860108735047820889692868925467448287795118582664959023545083171858736747806049630544374847221514739744548285055173942923656192130304729031533894399456687233755692611352074718691973322684677675084118616385268460358062581263865883025655523240833555911428150160793778390175532278676148259690946471832628667767148242655036381726334952955435097980935250333930653604653561152968412788486036745633894024495776036343831093481534192546120057762080365427873135373626001354040446056638530366302576681359063978903086881104886277863764134113532129781286096353113422806342934912044395161117181772468310170010067502071614960518602070462130503204404070105557148931811680875321126604950585562069777481456814256049574697272318347903117670232920557383300250935849155578652817185795834698467177317279209649233525598744736979956931610233280190290312126760057194877455248216490526928478388607227351560832452895124363456137848327733109704838265105416214639709966349275499586374900388189069837631194721622690674900025272254331422671006647347761366619189930843621517271545738118120145181880770795881178466392960762571772150769459075780633967996273361756773591783567024397662711756628782053941102949923074349609725514390193507443188740510391173363614404478630214010635569327048471244954243036574124322595629785144152174137630950824463484747283328848030507234098283038531638832387811586764440239736757541137313023333842981714319831953569349234211799814017025401172518258701395281868654834232792828242265792464357973762216082904754490534774691689584368413406557563220585233238807894946613262741346605328520396805352071048252043621701882988750091071993699803315312868332680533391949755868814216110210032181691953174297805699709792080873773565634680281275037591166108910681969289452745811395544751344648922369223329036134226469387081419482066791250556941765093530602951847912043578266413410159126968399536609395781957328112971208360879595084987853583957033135164966038686525575736762277301261000483552885063746618756294779301738597103704653951972913823903113863831328554373146311626267199574083217095748545016221116873389090411240328610300529153960590680446652225459375395137599107810258309737598673696643816385872652734058212549950528317570359893676475279182594200528356177891806356008297112926782894662730554415019230757806025260046602421482359610216743468549581167162459767309540363285704909912696890264787367782723047427473069584365710804393231262711524403560025114199569851372026416850540489158609642452379742034158548411329175602620137296719446307968940661156982912170331293773113959982482550331121931436177253308658682990544432947227113551024594891014261603952863588991001034996412732529812104023359319571476650134364338175398388372418448748464454616546041417942690072749767951372921173148524001531595064129521946983142476385102774325566208653065636685209653539538873948076568569992275944015235643715238505850333748769269325736800204463013528748177831887494583792942315021378327968368850474409352634796697756520905131550330621490036860187064286241875301858106382276089488820496870464852714400203425252299545730027285158766959042518378292627848134655746959079520909492442164466670547171925893393083058708062463159772555250474078833858246516003005969705346291937527830010088196591004377812198040460835557241670920913969756255790250100944321230963054744952050741748787052846462495048651506878124133971455148262676472646268483587524369675683405518216467783639514702844630761743598537166854012125823844266773809890593703830803588771878235911201184409603272248869044111348207971790587245537110908190287773632139955162289605186935327279356945643368922043332177735851096778635984203729284448668906322234871008290997876746893802706184872155937445347239921296122180782020056594832091513914471525298562603975672658563700185190735927698099281856200542717557711575551322433630576870775366961846368714576582556659058295807352870939131833301130154289079944031379098989169316800260350818129576933319155271979262034172969581367827613586582828240082562761451355667109935796833837897369489688054642051276785064324321662288266396224718254663625217565878225460087845873011351045590688758175621099304865629645817571094048922476262933463365847828914194719445978539726223067720988332434211192780832815484123650841372685793849376648429520791911148207996531582637976296649251824328262529264196452394469635437626071631500142312265448831015727854754453228642491030035553009598974992973149532271489608124618264578210533146479908843432613384458156035039015088768066469822714999420674111736182330831440180985223490094459751641982500897576008669797914342856734259229652587189524998007661754345201377158909294708640097493279327994634762246003517664424978926201080101097830664615505565488623130554365918120237522125947611354300651970299241769644401499165551976119694920260109493421519807462294133234316642883399435789248671277802873013395022672870747267260972054038548822430417825187978452683770741591981467448887143769886399960291294700131432029512101652910236573854859928207542901175404996997469316142628094179537252275918851055619379671518344475491631868749538671523714154948332801433408045533817601848419103993044748172240468571804705206170183372525593709124564370274089959060342274926289310312162720417300724172432954789618294473549928772166576607466451025978498331663751307468327503541905717753546706404672712363692553121589766280785454971976721751823144267843198620545222849682611305679805015462433540683010774621495724916806566816764718209512265275987985455875360612138923874129490381063599239187075931637321550910979788551757580199687513176065400603095872398595839370375486403434460103334890131471885527188573285493487961401527510257548047472272381642936446115092662587480353070657543781815512203905604612195186807599845730943426821470371543677476273652566373923305029180529085138479277430981298937840939321712103674930478969250715910459447208494729460511616808982357351857618402068316500609551013294823411327957180335319992133016193934922839145918037098923171460481744863851184657060425667630385774474617050891956205840281355977482066687187303797645875156942472600159131783995613132831349549634354540515185804227146805161995184806566072403366309144409556739794872193312667055595703430964717066757655690850347216551208275505529398461755019592382610198441962506493966338883307352817768698436800573623730102387484342233643756975345971008661076808476660589837010355014304914022297968176691383158502470292189286993585186420689281720446552587765491931888788169772237844638156117091378733659724452619206614363411997909017471472680746924017529355552658010107631810611266308001128054441653548234502842031516967375300291745915559045282150499506059291643092208641936629422025185347851918570784491523577057475987839854760075085003456166494691973252681162241949532190589812173970308264318524945445735812462053679791978705869107707334347802563183039182211734103423316955116214309411562049652626836877540750923805174402762187496794346021163211088083054452594665232626070329168999539262008969063354077017276684384321654826300178970490056097208469121715665560630433760446771968988646776377690252679996513623596758662957753721854892333746820960714068640606455261211712477398049964539798175943108909608048238158963808992399313325234977416124979327088008225301315187683510749027934808282590642851213162376965285353252526084463063907199878147195426740589501253505569115668100794115388638570926026206253454903033958516122580539237892389372751616792333481484886430486527707534620002845030789554478782200110616056619209336768887272903580904152486893699919580994539041382318781096967272654364050192164451861415017192863232631567895731444986965032401161555447815361080752584322761060733786152453149850194857763284391702513182416167226646471670447337960431128094722499310618694036127080789698112075150734732419245687492391414602148959438678934576008091140837814353830591193131654491957798047786425810811147277328421155002395969189473445648488360638554494375733480465932532459205692384553756256301055459967132390393486585803700071862298855067039312029747768341235230892718411252942267629394305595435457187860517393009567727235262013735088712318402069388321574310673700093806966365142367506600580089178041318005388858552161685300495336390393136249095135911726575278929137694117106660658845397641100353515281095896624412981778288792308936069148501033259325058126858678918883726397750329403280642447604742227983238057896919279610197282020718423652695688833185131241129780823442314334236195568124965913251611197129907307133476086910652001012046610613390563637651824838357220890612262127223531376128037217059000564103993106000229011008190067179671682154267872277037701041419497618060378047308656503430771655946439731169965712274621474445722151173706750926519102974194548183576495167252030558162441108713629249704094403464122192488433755558318217105505036338053585776801537699267696443827309588826012579349075546099754440264200865294716335278667227354312323660739544277568172214974255039732034770867462259749083232475436915239203806904851794956243018930820611977622387489368865594018536901414096672484595518164994708954924990832544489676525526544261306172820481153615256754864211455951797259830513063228218417589590304030977815707223332715777911971418500436108639816766295243025116308660966355481107794750584103878669718979217439498146403488119207761513203341936507771254397062453740361355981766488526082581650890420582636495680215220189510212265053188945653519785768359447031751323867041807922511873867543626535876898570519466813098518026833413236688303657793737735524479707122310226751354774883850515030949318161732522986187963388319225880238685504832288432846736794923194856538118072282537305440293340888388605150198254105145136077553340434202234836385864018720668800518257102552339443821252014340121565380213307660352477604012784766004154423190509151148999982902485569656204400017693599366173431060680067411936445313231132175301485320205176780925644907364986505115028348639101859856441130810071957166682336402417343675394607231905761267701179676518840675812163578199475482703742880854927223597548980589892263845660863720140074347377019494552177670533074212216424302395860457396259363599574617674645433472509601414915693712923083065381647305684224892183246299665489360647051111377060251895977611063372004416591803579460274439515221465847908308943627422896701564284111469867715480293388771041722031570666356010260763148425731175232924892349154313264960222685603420322003073740264291378234492717119080962447157530248142669092938594425749346421886381703859103223154011914956485398028883372379969923263047296542047621470027824345146812338732212559593719062281350532519640703091692001285548297340357506325026335358079795003281428461354996036560953313348729484567927758958547242869876734407901921250053563184084933822716036397933241730567915841654307551678864489376471845190190477224621249696112783697856220658161130523654428183175931062861009158446733617415112115202674351792855173807866291587320441642591128776352438658475909542065519504122006185380873208071363263447398840258320642278148932813164345699749864740409409617895424438997709428912724619165864491449574980134147707046737276428668118841453797480665461965277454182011406560660254875857145083596656863595571866951147903589950223189188054586729015989756861184646588607808940661774282187053532479509290182753517500182569379868772648002149221758196777483964483960063549795280491709061760126350513513731169536674980916970299003953992749911526971139641594386939232348688268580997583274522430463964867718690443043479116767825180124914606891967834581706846503940770178464664942743604727882264689006177576299917188482269247068494043190942064091005516362379995763346922483326638231530433611428391470318416060972414491368107337816915957283552645555730768278737634217883779013735846677441480218979638613790304700312119806530569817090805640436048948326764559526321278717508405731001669855873221254902181827879944321143190201514107849008147051480566040133583389645435419897429699515962964799062547128694843005140800384519365440592704106016473615410861821735509065935545284126040953813635524212889482519087065312047100318425449150303783037330258179067519357671605226724447635136893192456266696229019890446442816047405191779572975768491352363859083618369432037605255502021154747061800863444397531988568178536401674215779666949102887027925713316349113673942658107369280410020549677879418532750967758662319803467866898056225543288520770269366221127885096585994705209382233675474648022773893709451704845991520166230600429509662785423298829561902175146420714692961841393703790580817557075292307999724188088373760939940850221685038794875387114293222580328430197239056292042845939107632386990458246550683924118949550343612388001381904650782336549456693376754142796073193063448333085770632671441436987468399596863693116293889845572634396391181507112348859635096996984442793565827968889337801714598761918608024995960602866061038622212401025181208022436944414727422987004318725825548144809409831162075623495216093670792364587518654008001173284468090876530830174778375700743209833189320349021693436767125682344774508166101694046998198148906491082252813315351338944217099115627430034119296954232500497795747501388128624473236935768416271111091101503484193762552146983397997829938001082389660737779377777388882750498472973062941707447125071540602151396877882928421096487937151041273216449382778646241901864566023183131417014704545717935165727944725765773235609575381679539496481998622086508318926457828010535446602656765764574245270929122175901628582220880852327201230634089778608360804314495562809560565541651719347214494349093345987661913732313096970634025024611040856487741017442265575413136685907327096529218134166575414740737080921938971377584316846311793221570996515455093565679300406853630711643464222443106517808152295312503624238826596422777412187747304737157484027270134979675674027393048962099920072804046897212748364462096753121253976376479721965568682281388893388594067370408304282328009996957804010842980979987301148908636236620931059865201359028627417827805224466393686566158743765163963456811056031095785014970011930965820905470450021874843684577246347356554449240725200934742581583698951578973595866180001318924546065688892390250472731911488784801167953617881378994296615813782895184669002799429211910369435008534541825663919690742577258757151498408578339092593709151548260447581907259683839166610335156545764684025642009031780675174897824001021979993372253031637889915013515119913059471939974954305404645053000398708229362218350216367609028454086337405165552750797794719477549769725687379417335674288434185353902925822080953782386493223676139948672920229235753060715385523788225238185199437814407308367653892339048318829494409391004772889063370623121660431003852103021082460172689293617237732428448737675369965033807227433032716965842497186910972794429928680253547521771347633592102047522177336260215547828292461434362846457820661794378891002794909715753340947910799988582642163812394319220408464576531127656238124866218364873488753140098886381660354852381916983695359974837921472862703851086287720701995963471090887292522047145446695202331399887895390100960587855087845351677659388324645241327846151557794550476313084921700127383396040623874744107524643837695213362633896092281641392219360086930306561174264778091867812248117746644828089763327948560807161552183504143522440414411111885052398937127775274228872900435276485948744913191711312190148685880963638456603599275587566448396100838230810762796172685365826551733229019494227448265401822399855605749942742012957091878059137161865391540326538098435027036082927482275014429884488278766685663121571535554882099325116783837170644257043417336240068263152241783947585717076081365150425430924240200048709978064372888345362435164710135167795200835196818685577119042913213067258496320230615828042129013809514715475967029698287483228636230359511255814008235291968301626443032935077734592418437113065931080190646099528968981380270668562945617688645719138711152040791041981879765101134118947548120466543512592386196963095497198481639728432464988853633339537488130591538575559912625400916810016803444617689074863922519140943408603365319484815840268487639082517626219596920091627221528056729337346265773387480625445073420352681712503828714645161287872927940688897886445807722936609527713191714632073353794416553819316560001885146843139788885450772089825851807731378112092542395658820300034839780197796556890572684737435186861092326102373169543809903103861141914758728552845039765868632318839528804814759508011580968933925578431074571404948564563427140326484146589780965270507161316164691149327637764078623605389903416728033816179518365946807299582775415608689619231677170259857918358772322341628856124180827559854209773370402273406820550561867583262187554340268546076474372594004581105413385014276212731424042413329298698486599486678590130579869461216565666629174353408169347568243518600735871108659283426344400649754770388875743785467105200181835077427878864206520416669327669684558851981281142015269345378449015224862784965505251987680060207155147305647698187393023256891706164681217280274256650831402693251384989263031019737618278478652484349626608118181666767650469340017687025544853585709760018941847897893436103530393874632617552948723734763695246760454281210044362762976424615402932473142447351106021857896669137192640899661500158364415216489802204737420424987164182160157205850099011204929651768062695611075625974742395270049870652110193320420161914998299474964983721778939665920094239204545149481611780939634616799801550815884112683282780211191121899317588480655961635398839082690596825200508020397100437506700837750860004093056868085189469328122086267716400838371564998213112846103163775695921309744560091406026254482374897626367972127684629998835795936201349905279578776403275383198026993905636217979287100188519468902020577754278889002635516814762167781023300978194281991653452873858791771227219370098953703781798937669101494821249202594579637171612105035679495503827879468623159691876931945405790885539226214833668515388370658299784405383028450915650282467043092598230709205819242810530679610295559401811530965227176122294775028584451368295639908180676114163041230294598111329464115538072841857754026873994580445535621858185174185604487586619128024355984956609269164400050900414589295440691235622392256086194132637572985454415823829013352937178838326231263216895434896965149526893496680547634636550154862946305242561166239349105464627996287168486518471077017443612202082451879888226249823788693405064676689837730863506622540796405612323381738374928507449500938514990409813449736405816524343908108144111315292375510269299738876419579186558398126447797622836490679993233444861601268310372173284378629814716834233701006000523658189881583498180815871169158330076263379354703398057063511579981291357930526810979995456276524053067651690954343950865556584202812626657529939674532607624716015886513026783483085901439294124896917551999933897788944565848964593162595758998637932443922947173124271653735019418180689850884327131860583900887578563936589199977130327160704831798681426905058496504490656581178286607475719810400886567976087774747624933916478793293840797785298335870044947855060487250490306536454997223110878590551876642744663349175770634045940716796350302904324826550496420098606769665985365527379672570019925492809479133266437036553155416943663982416746387822554798954018704911318929047124283682514362361907191692454953023256792211516310087389213705209176556763023015924471465430591190000131101917325813270136301822792064732629005661897376754129401989620448472894789329794428389347812528990984309680445595770888194737369097010470081895193170303713286172716381756251801097764746764514625777286615569567127922701961170630150700718557561811395776058628335674292657027446683905193682916208872429620905553928871046338616454770673363479154329862538642168572945890902331918200044152394223858150498081132834723578956863471525955871448571705677844596942852029689205585962676365122618668089849163759657802851087419825746719617860896705950637979092450514997866397573353298204892519920104238189138620099310935553057992540957995888749327008784441445499182820648104158901260037404256727283961464491754185000465439734972733584918530538797531091746618839226809640973269289433484440324922323824866210770685228997386423251137992908649980588046453101479308690407101487136906894108399171965113266298764680349477037723274630470693443882650366038724243545581895432813707716341239846672634985575382338233867825232738581274494241959372338808020218017777297512321323312868873865749240457592558632045365216343008355617043659725281686677570509894832164436310955189294022554134308520115274204248252673710793344795291458327578434562732528143984028145183042952126927535448466559787421067635198866336564572190050422758044634106658200115516799793720392017609497927662544819938418138170043861125607661015880173551761312973889313199139020440600343528293417624105952320220304596601610994063728040720938457389868314968050402465684837438181586203055911705716442118539949182765513197612403294754173535654801379467235444012969118090898869677100851549862449602771946404498508132120393495342461777186882483268502239629694040006971402658048856834616650481764933626487188484406714322669326972861653601233076960093193515670382165577515084012033370887392761783665161383973091379096330151934809911633226358774085300347005647385375393888033311006618240354779669223615895079901089073400720615839817550768402047664485114034709165869367394361628521503687301367561606273797697074461359251409880810931534077116911756538147502980843952302231229859166856095678696162019624159755491281224672769885827077126269137427212487369677231181864148289002896585224293166631628008617756814953279382787377799211698217753677493087806574693656837290162227245717127449142504072876624976277390563739532133662451460860771711875072805602982160824358410868801159565814813193782461768326295380448855920277656705250685407890612741490956653767004668950581153034092985196057284165479617763052867713444294728610293144869596039674446872409583278255190017402895006827206268612249220715946907645881029779967314450182765727842044781335952944181127760347950733464923881915929592399945599454340220322268677985746384586731577793895857568030618417098641374296929251086923559829751366044336158593043120370082548575918779242303189355740761623440062712021300040337299409324865326744868298064538209145609603142846291026305382744507179490103430208447735355055064419133755302513657143974542541386625403262676900275612330789595118600043345130195839240295994909406529115901655145085106630114464427221666683693610511280354553127208929891728058149507205180752814214847389364659705462901030755257854386079382768919228615174147999201115552534113388611636184976378373407871777491950514370112953486951768249536582143091492293443349626174989615964643481527678901652026277941615485989704723939650199790357103800660050726670155948880016687533493658105335791573211205205647101493838853071834905496002660813641853205468429521465115539974392648803739596541042190751394000987211574255625569685226770470506452218887889430634076040135018437879291067692049994135836424315387984906749062735419286641607251656078897294177694128262648796432661060422272265503979767932974775328449207407763110733400767550225309591560459693496024109630219251998211909543382072702440407518799574222906613794990062329487327748315966601770147136345731447491671878295754945264388003092693470558009446097537357927413202404417415038267509011170374499221430242581938571915314828758936724818696698463616131758633775277046340573845078677123648771868635990536861046472054492796454951549642225201543816844345435516655513293973271539538423094792448237412534653961861148592140499955480184912171013753758958657987609197787857895912685096675436888621020278120051474053173627173235012938802240270662647748651495866282149705919267583035787855598455182949559546865768378146631318262665881268031318522519114542106893300244754498328688620243977093570909326765212783460992374667576401073999238270306881149646044819725755838319352169886681899835719247503301411812251228423402774934489897963855277933916536050002233839029359871157005711548822615103970367595393819136494692224123552684965955341087458081276209603641103510100211441330955942573204066610732458815520058815487876627399479975400385852240768209591026051065523366998984871050253993531392075563370026362129563059944947852610251506573734977264738710053938503341583371869081343092138726003800690027650297503373534332886309616456437687026957115252405587302529860382764004742743921483159322116766954226387174583687787531241753591159378111834999059288255498588801879650045283432516812609323555636420408796156129185228860715471014436100420818444785411735775095655757174578958055456545009877274614524519147179051070386512373272649266743724046531970313931147049894747180220130992335934657694032920448227912575868879067375017105764462123093379218224388015971803345426544479661357207837878935308632851161353046499059942094491042570163812996595278911742623879655451797283449061002956140524121884009856982051520464611374683050425881378640623909453542597363528982053349177844969086049056343246538273562549802500291489606772855833877849295717699507797891995653265367638871766951385542634646828858568727065608604694339159629307162328251343312478750189962358857651068895881947469789944119180343091101912362930814193819613632361472401896546423485095203663718895415318451513372042760439918353458701516252385418063222740677154846941030695982115354169974697409710118128328616299499941900406954222815876181144383958151252787803299005554656005229710480413371433468668503885579100498253139881910659754381934656016810035131400782881899372627470970602177349548310586434199783359670092355602982770780759453827995398168966011694819710400020880645891106498890012159859089990456481147114024231133094552362659823713601358176590108108475740100561824332520636606139170118176524118960793408818786845139829652782832736983016363314900442162469932275630318272384229275047924559648412353902347104798468205161280596129188844298326792388242062263571728550006536412415696221092818788225558310419422984861254522694348393565269501184645242122570950895085011732095912846255267961026139335620490175086212173790926172141065542940625765535131331176932140870300377798126774458972039934436017932484225458219994983793369175431604874639768863440211016438352472268041105023386772189660782405071942018852016271022556822249298231840958551759505362148447448815535506331949581772379838455344187644664013963183037859278728790271990099550991504535467845262730302673858248268157163478030090754755809788543133691109038584389508516170487508327067104726041534297675566175871013700581563597248861513125751644289300393740891983227778347291386816783547434762492228932985025858413547384088509461654075494347836861764107477016947070531033699486592272394484921208129070369933024257698254565778473680038960454067743017542695897705610666686344069861235743957861530174054487626253385335914049790156004366286306604329350959635088005462890159757706040774648632241589869827675705864058256146337491193152794799547622018427214051890813762491134146518180208840691746561721189950961117538823881692362247568180451355067727591430605585036282692589517050543041641190836056662614433592791122322240837294537057744494028911198814482007386998860344452136268978296046900478536366621960863055649815653338149639019850593164112149671017309798160368846623334576552474204011264917992236589719530348701079580539125760019389334616158725699751501408987661517451692428876947542721399991478538467111797280063094723153675337399753024348462736614111639275581479917399891845616504347641258246076777588521377745440457654383901379469979676277143538525178706356826027747762175041231030610345722464655273439333948871455376716055601807248390679460879744845324993614428441692347005241594349474743342782019038352631956819928517228485646167271417757854555049393971153633842342679974167384977557085290485131091199388559034765933930114434045821115595583744370577216673860183764031746977627517665813973203400173682707451541487771526345741862545585446089986993539383832438750249077141472029942568370257416594752557646541224957192450072425919042011910666922912619653364759901898890977635649112364670936950229036188724135754644663773601440671493040580287432416430877967181114486803211302863062319635208070185878490062185232477137104415717632872734081030615912412420074585017887790926841987324225013156458407377629037239430878287760519339808481800968143969913880329648792375686273926235498481021107049844194107727842086809636311301617039060958186972379240749619318606570189220063320989811896973664207801714861199773105342199094451443117075765761402669575225594533216344681461330076260109767639422799826804963290294333585441019647865513019832713977866884436339198195264733886511907259762921236855531417253692515489123159479864222458388368970985143961132564230160629135804095798748562882285678358278378884433351418423862936262161171835297479483981578722596006235010871496361032660253023819691870806679968481201083177926281805069207003965467668102365562144017778432106936711403263546970756966303618743969388494010460821503190901986918262888435700240262385655558670476154091494905674445180649577464418759551256552261467005607503433149121225450199786593321773733441978019436185387192050637572458374199127745002421339121694704203229652987357347173093506319395164878999984610517765675638687389517822728895307327435837470436200248650042055307450659096946535722919603562438738832831477872433381987702197057786962632592873049972646123496329626272814134143374683304095457030808913642588029043459741773271334541190487189336095140384816794475745306200240704242311573511251022741152883971602295483796025045264096715888218191108060789111405785179221964110962612819743539353943583244212321351569923172056922746744529732122923064129047727450735801161055682663050555368577486869067415679955488829052331022972814974490639555887422908734382439126000524694802877366676034273926458384611553587270395891310248073747849104623019821025775354898556803518819521452914889488716905116875785281970257207085804710178922959273282211008191426078433271708669991222728999540521133887364365359879547306051368456377885925320383037581803469419858928258102381334537032501160181776226175755580983316154611539257829312368728334418194554001755959606379426678460000808432689710763754507892590236559191711295928655841978962927182313847678506682526263144742053250994089735065612698580220329722325540774825994411733251793972498009747520819281912199957010504302169638048030769241818899559496636892649136311736899724763624352974463460545085095656634411539698676136753722005268341105318133490330001133531164963181196977964042207017556585707987080509989503152087995944616177013404431564882876924491427089052584519019522102595767090633469720910814334707287335800913592468219168346354080123896903310437326142822862674814180698674908086459559945788284999980948006568330152682085722926227792461543887735674866507303127104749768898619426268479453891380800666568128972353346660594438568413945241975433686124723756700762655597061746165167957581841882843117930655414445923320624812926287437721285084749912925233470814685893220550833063951413308138154187912737674509658922577766323832237159147994147237679036204643961195274427834852582178322782230001303753787910124190100897445466324763026656533442971862152930923018702233565655104505833112555833704758451228406066036182688510063963028354132530174758975117344881734623277353356385438180479032441897781089255573135635795677896384294995785161732954039603048664175012797714114331414585570725785091375944960121177645961774129794109109344082622698254397838713000386350932240882912992707945775576869487067605159988478944753491661481039717538710623825510719280316091951916435990108235591765411498381438082555139894317521297451365365023702357158215021383471828512740502514475454021408764568225967066419940951674470343286610650808316418656547544613536102182380881431014786866795784266544840247869076354227945636548420709038417063854295945133203380861066790564777536110023403865300596999094671016221870198436246309970215524363563744227727534937817071750439061789932243011057607350864968569198310315014461093680971890977000747299580825244150023499125076141818985575924962850627331985830212200506171269154225732075891456191547856232788265834728774342843385470783289565383991674375534789818699548654041163186037544506308891750799444323901581114351387489444894092834329372755147144871924382078964353331459252909833663315240195056445069965563008623282901870170821158400123851162476490641121891688258959010785362349208625397627729020316428136016140817463168136527337495138141121558380535308514511945062040841810743531131055555214071284403935346084171785291464065908139574361753072952586997725747209997784732749803717639609235198616143696436482729001006892389487035073009416555269080414075086037767187872115853485996704483636639713479213869376019413244268115494465245403688775730152159612294987397184081640203733160153285003894427478033275134719897267928909034516204413372317788127360695219038017478042291685052684347811565552015383070208656014813038225176255873320073093275578390404845386335783528544496707981674262253109548898104698036087592196334406409870677421354669860718494170579066851345352088866638866009951346447192654879501306827103107957712938244435990166128318092208436845728253017406839856433555924193288137934869500618682144939520050978981504287549795639974416158325907647131344565245310329282267509218338959858493492250753357755156516538332129669898353218497862858759323735111139694100528677907494526686767230122939060466436323149814203077100493539296325932999844573743483516236986221577925627509192289556916338619180111809520714384619159069720357252430411936687816603039026422940932945062291820811318279711667125539808995136649907409433716651520840363159581236836086238406147343902371968046786483062889561424620301581814877551414315397569792893180971189006421412401004487056392246495078211548006480675957751277100148305313514258274123877229416263738974329185982852748113474023874957145026858751310043785220761707912280050316154521822560905219456459551787646517659633340032866225444255533154150805187098022253718203221857689991611014480252861120277281855087828201271269107510205166397498484705211338830573022151227454271881087605057925874457625468769460261802767940633141853369224437898538925227582713796593933546461848564034514578436066969674884031828307623551740279286077497931561608912359969812040638370248843663298584942980809521873863305110510168659222219949854027077171930274075348981246913959815618779826002484630387175932478772868237165712385068503133459963268434120131334619953366256267620666982669168670753850773361938921756080423850339923341097902645634731996703185928621237515128934471546219892634539387583118376315298821096488461827328865031288032801130651753574150932980534381935487914929728761528962779861731272731914964443009843519485039380596749922646521467999431971253036788043569256023957774891336976093453768476049731025939019911034479978665097720893952698801398987212608368714505498958405518286098864947974171268688573550018368935385536002758357477585623986428191134870977908086320375053014453368361754325392716075096043102297381141278738870292567003371476545364482125889305963095768517358722289183021084215113337051488865076905220979198145295227432984105865700326158933100597482980702871550966391422576540995581781545937858669067825716039188371648137388592172071845525664769684890956822353855654774282417885446607223822544604995236665944692873186551535517778816398089096363313951538008229655001982477721658914188254454728658384621441973063160663659064185142450810633957244540573732572771285537250178183723282246470510714432868354275292467438407641814398132297707393649058498919267610908347239428087057237139490577898252339387521666568616267908787787485101189034618775030733073280481657644892354185819682224911863469876183101334758400328835974954746081243426937607486925645967645002229193409848219212226837092786818500594589174768558507737272612388618006140213792630351073967640735503109508531666942111882944949065401184996028690008579816034994209654241422947461370538584592754930191276416399341170424879172792197584566312809682245395729574873065775912864220466277396017289853520856489429104460776482651779869309122361644739905905441183734399834934453042322226521224430894638936045124464699874749132914270465546447059517359908445553376731312346044206173433782685610171998152897396934313544964886022166933680153158080232193941988592259614676190628917764524340704552383190244370572439877358876263977851105629706864453297012774944873340662902904304026383580256264593062105968000160165044609773679058747784700110514060317964577347773933818493389818695287954298652497642836129689297442023818106463785787774436649108080679574958848607951161585015480366296930054660956905665282299419497937782200657396049949037424798732396315070435055625847943775312890481341845683085273921528881311225840181723293316209168017858555895124102781153402115744696398140512212007409481393032848272824786470239337814908620846032392307876728741629165895719640196898265105912945596244932685466585889467104410031036249213963860229172547439073262281086895873451203663401369494068540781837958424846621334679620628992771157572408163379010204545059656954799615738522942119271289946841972102974405542944505675347013850792493397405934032516718644772777903590782540657234443632133833657596322714163473267653590124724791364662271900887930013402774278767061080314351843911439156832694279587491957417158115217486039541200241624898282369670652116766858246488080836731960735772033571468436739286199068736745736497175419338915654130992532879618998159332713506498216400491674269912391382996845227856463488929105714393488948650572069606796375071614600629945449606435912323352258271490381092123337703666282624849336177596715196108006719928811160821538726352229552508246511861325705066670983378836298836723784190253350005002595902608350705375958288380978455678104408810140658364367885661636472390779677642170951296133847990305952807208078828899032142780038528406465011481930357050309192950682586101341106361719046058031468614612046909104862589310058247482409227338877486839588269079654701279753965280290986847770205868633383105555616914179890554944413216784638999607125444182524896436561221599979843419647147777866571552932954792376123211711254613519270976121181326809994797137617470621994248169465418000798558569787019025764828846337450040401357888348916151337511196069857111859370202197531158669108322278615202716504195885211566779901355174033042088644901177393678766534077482268671848359245524768495235433669199497927057905852999567478533655301829683747693277779307088560330515995594375727182145252028170723254511090312809035872213207816254427936477945804140648694001765834687791393696788790126115381622135441568636952641374696302275029519568901774282360454628840001906696984495326933640433091665351979178274123687269663052226826730268303860564909494773697879944894439467954342325160147786063499017324983195870719350109471066580604666361773050512922435688552031793105539135838940030234413807874627997774553993440792430740393329370455728255780244064063608072742882565776452042708499376504383104154603169062937530368108615541647328679511179670491802172859591280627420504728020108884674327480452441078827854135708988589315254096948588983839310776228096535664479038820478167095126846245660076668759280131462384139580203950175191070430629819100596544803512881042731147055720896043476327867330364286777701033538624937383809157015806766150600878429083414068563747137420171783376934820338969204362956901900461888260526787858252197651387648985190807358560716145692071645516796596626670543823180971588715051966785386030378187643323178025157874917643257625040415792289997372880709022194397554379450982655325611927211867646008892705630891351665092487403302238973201060193314685891795953032256922432589187955135524764552984601846392325638288664778203800654431444808739340864070466555104534789323541587880928830024777902202229513163493886527090646980710967529017296333216501662486031996348994384562534391463799217805505188231303027115189950732968314764348029010646248123141074326360074650132054592752622158529000641500393704034208706408703949487460386158981883771755319750775306534763272218768278575190995361104932413449148001720705594466200938959503290109434073243552362919454706838522461732472094252343258319516106103923249280201262642247788133008662285533774078875268248728596389689661953638824942438275092032886813625129826461076581398971181983604020617705527724268068152521031223202751750373999285576887675556605125085234728454207867703270092684506724524538812769214658180629088193600149294914707006871054376679299867641967330320902301635802676275435829754008861537913544899718018576198710221849037085326979482925126513214892547322278896365923614571068680479266588659489711631556901511379090824322148217796781288637473973505312635551808298433057996109615857011631154248742630629537146273226198308319344317444121567157804689598874973533427226415440456830489854140526283443319895251764661080994214789006548350438544020062895554582229190620740889457471115375743219246298823422571544973707901491537432548059201406213780668915404042147164964257589532637445692629561011220892653292879357522486145550616279477213807719320604135965523514312090165927025458783703433352744847761594470743197099752721071697236905670151740151744874261375426666053254948383750870997199507501502283829565868622810530377594288634956314900693537199487448266774512567311570867084394700280627705933787125831723445652289394960325999533424818007925068854565436165992602487965357662895255514387511298329003102454788401030919592265916290471078323147519260097461349589184891098536692115217556595786057483557790422587484326730601690570494444673128678580933491476386730231519115653655594688159816129723650932469087888424286532791447153271665895027624455758535518717439400014192075327011214195235600788355981307454947889228251800323075682806195835921996555483250913014704324747463026937227941296597691815127634321939601039690368721521281601401028751211237742606585910272095138898034178880079515909117777297995805045613275576082070333087466417157091694062133065544885252178003220715337457940941358594087969411205364869806276285479387578400363661678673351115500512313377271365479007076671925310869998543407574775446995854941797232900750041340132335224063822881978001642693827260329358713412479773278951324985068887152384074366922064335826189261603511899584739934835332511829572838996342739849384077559221500973111276229719237435141291925844488457100125507341983902822545841893501180526064568903376043454954878559076529654400468189465711788697767062068913600698168834287116152541640943148369342008429189005783067036581914400132569392495307521130855263565823724189930376879295410106157706515416902881500806424583950486429999147770708249422749079947074803085055121601981751913210791267349454436639518818199002671242707684833082171504242992665926073578639702546548342213458405827881186856115817277873095803588130123332739675224403411741854989108981718774565999584290264024275235709247328836662813846420915459293870852982945137494987004669303254168753160407973117191168977243243788766529512429695574817979716579110782272241209516293338436267654844910261953338136285623431676009823825285919194617706650307091215519694172516818774854816690079469077116670561955861408665894525669980030054433716303185188977429057267184276202805035890514735867701018284202912536834488961789373787107714680070926010649331090460118577522146177331963062644406463032082204980078227395875524823273415508183004809737737837949709473126212930823846540079713324588620065533801978254008287738648698357797438111409763660167850160599731589232128813764314595038469268247111208653039145752626600159427399895134943004199855995196277564205604098801416547572871687228440228451211156018170439145092168422651270885018627805276893754660274981976163596307926085856072282153329453560284121092474860119947800314094576393217937146824278465993616739180487124818920404666272886835756240597199422304635867817208039330326750347127139300705525312953665067079522056178127656316572406031222481913239742919702385172686264650947846492035975925865157586519990825184115068367699557111910641326858615449227353729956705636543867187922378388341603569738604258507325989085384045617088380931158201066406434329971870352632015107371988838700586571517125128922112628487341734221075824545697577852125651240314422883887129041701321686601718765756634977623834069081748259164812093733163291255966212036269267801788548881531126294849934206512983422834793801515436055640391518925477005380224235533355445633532292346590901311942919959748129700274052312660723361540933298841048109170981961046733435235434546591676792270252446919999346443717263231803792388376882392982319705252871754385677750742122014017768081833961051468928902692934413848644976153962124317520627361232232150275859914129058701081742516360470724261657408189548829655471523150422756061657268662792410294544781789941155638525111888549498452606966232032092968481458925950491884462301508384020598091849082332124170974747932528315800148025240926622239200408760431649145455076081578266589562093606079243817460137887604679755033160934459954896703571233852210163498656084437186613719673054357700623751935780022254415792999719649692092548749830636792237067007731040321673342684150002766408764365372164822579314086963432772326271068309955777694348590488895789447286011625040194990403256923550837282221456840624606277923003306728821746228750312509056232824509274668216112707256179509351138833723292442429294739819052313447730673917582297270361795369363900899897892333779229290205834281109807093190152269847501494957528268701642847727058276051010551893518357747891480158244982789039110366104769892860583927522821521585990262293304111133258871271173054902382815751444836094972461469074601820480346985606900656082257014557254652942061184310640491680118842471886653368888187539574619547937113635663879509016610303835233631602952188721408868759812997603330710792744149500780476071554184875150717777032454648516603893735927713092005140278579617123755836370676290513000466227792792544814675745263768620915542630743457651417080575545091613982153734129448595951545242268959121623951428267585138986582017781221392753794483257348573421706721192492368985377733057033377999869178466813891368837370650279942672056174653180029085961405102367732422613044930152161484052617208209434956748424954806725995371986820490575629240112603300691419874226827859295381175293127563110864864028598752046089092880265496464377171514292652105063941965805085795333369480014460454118700122928445724761677446665131828634930686374999598505132582867114472392996466301893921866257062190975783709208088852786475907225568738815382435032763877403497377376721271732165821420588256226794189331402840028927809255330863976718926878965397217940030810688251313491167587486918566070472909831682704935333892233298282096926603282957827080861736227837265039682295703799223503090955344499550410839959715303792177895019639266876836738401577273731667589858517008106375604849337463423890627815497949028601946205036481370485799930785163600617636528683998392353015488510030068276361542698777463437068214501870921265368248445684488306475335098021293817127765362114908268224463418041861418469607383453115320550320707502375317220535608327404158173936377820862157681715203663358873658488450559180741602505046952665419320833978860457228948778063555050263182156382548502072902359543350949435632276639923208403364591330108954010316680149525846082101168772680235836510694217854215929773208960894177069908035837466166367865186906092448072165613904258618308027095253707304637325649255095290874986794497339539775243737680391624598334316513813486994234927193125838575083952796130982103521233951575178670774314523689778877362470541685944795204620059599107926184216901916943685568652554375764359381165313582497944537672785648566112558045721042760084320467292412444203380283991998331864796464454546154496217645492500437801763992134073427187047054553135432910912218034005622486339539490590099821004305535084683945265512741000641567932168372873771848095774539303858676499931099761759854592182434290339517443283665295573448918698615261003055383152036847177255867837408698192022195116597173425853015825439383693613273748854666497025232412489492905639175724598285884649402708708806001434923764263744053825551075493239831025827693141672750200984465463780800635200937498142840289695319016530383163560520120487833250448177182617198450967135786944501083232619851267787596081547162258336167691929191775324883329118353129351316589770634898550093492009923697629627998057600888049119987426158892804767634634638088880514579919652391373103683240259937828319598585909879607348203469667111141279608690986985107651709528668099565539250882884737176172549964486195236985772762824334711642277648157866801656772656880252618061171253437174899458836163582347790742316401209516781139959090452663457976939881241505660641708438130283714485837615320276212779020935759869989591741665761663856244924485453214682954152692065016384044171662875903820191646586202337109698775955079035060665467235061999508893197328283411841493001460892637966488943099730688587496351246030833842782892317358038649494741580258363714690688758811428009235202184911919456403307250776553447597999674710603336927052842296561201247710093912525859847845964084550318846023400453029952819801385171642057096440544944435675946370741687632058677878380281661247758250060068013558157023521673471690019767870627679503397353807018083300960326171929464177045628220340150246048589605595509830355896333223379431171869501663165011470593250554522317045622431948030508066499321300993660439240587206548982656861707460065045948959660779615795883580785897084942286414424639410673687647546140445287396963092609298632942458733538594696247607450546564076171736242164919011622105297277444773241976522902554567855073302917694035279075135127267031801293391164789388405392505435065438520387329433587239235474309401229885436677159471750088777291803363556157554497824877631940195156273766300582784730117862530825196130097752100517884814572438894495480254517075532560837552956666015197034956682699085716949145259245809909155654240234664532822593714276671443333430922656778206130173551637116974790448597253177601704222835987124261326326609824354895048677043159164427980217627898901432091251590300831566813800793269772013985287501629619462574903680085619331246416512472945165899197595710847098127400154447938252971576090341235488915836354931298938629683248235398338804771741439349055661000280421409628083723979362472450847472978529601787511845369656359962974413111589716003044348193940886280248137975695555404311482030087501031318994533672333303240093282836172159371928164423955963505944543343988336658427859604000739459163795260376508896547988473398115660501307467115506118991092070667919793350978382753497263720133697106502725045965273919057167835784435784826124957742461823198334190126875712442059037626020235321811760317892810564033890038159132217510669461617508984848560266318729365099102243172925091807139031765025297710335298002189257132427817407434703719106912907664693372395631529081321168081105450454949767210201428242347181923969803827680622046974497479419580186388647950726151076614246320790354090791062695488387667347233021328880885680411453236813232837067128101292642705222596663843646590149506505953917990277192008823597999226521920673459419002815582022955885740019077005450561719666265555380452185490229644516590040257119740208709686559580198722164320415025173440606961288934207431165764325933799548206468083546583902125371793215846156637744879975990160825068893954655462351745208124556833845798920928762237365147305521854453282567717058629930268308193806026624827751719527854445231722382608362824180049906431308660024170680822737682936606160225994067384711499040703486103061460276778715046557600665484258647679020565501806026579524241218084620866734001228368741860436948947659205091723886721558573103161868590321332785830215709765080299088107525498219898141005169102447307272820415542454739927685580717008212300739222184908399457874904264557109138982211190487355912873702075846514660450920803881928598561075126715850215718765812929435110621415563036767092256759341462695651763365782778540835873874006918885025398082686992807015804870499524202243386764440975610927953453354637416253030399786067213645284259257110705442323693757833543921028396101179987626163654024114615063552903879888522855254904948049786231954480593097063706844423748450688708358201858389377984472076132491348669125614305225915573678167611817281896338735636598956939091114071174415342159072568840988086766093357670499862679146290775877792222461165103664758399117048562824183652315086312236950118532380815833313835259046783466539697712075011882418157276549525730069515960791886546134345574902592668898104498197101941660133302322135110893056274926441369452038335212546402890859524197416451347643510121150076433536107718916887873770750749685743170538209926925270116632438419681998559237702024436602518571137125746854911877018805190855255101172477847254082441512406303932905560624896586382160083301488078360466643458732668213351666797369804193817473179902215559327842949621617287341334193994821374061010362718134667824178652663802281420154846554644614205912302661677620777731746442734512601770765450423695629537855291647157639747173020455943896440598765462408043321934184935561876462054818366005471169914728910856278763474531372716660807964509494498795333507909425243578729511502728155134350942609934893446862998496144236001907242706570633823592366068643439111292360227350508876597725854366475134305878298122625930209272330297789442118377785872355329140458795613048938972875121628080798947666645323274173198671214650428350485555853148514285746256649681084663564139162653656016728163833564188984406704195471965376142456584056841831351620919000614158158441609853798462764365884790169146331723153355230554001904740905250139386897575165160298041865812498012207207845386180309262131934704341771814587406146410831499386206399262917732873792184798804233577731278145277094555672625721502932200780450374040881008655395796015944232205469926461811251255472600649711471059439499593173814091436392856999809075646192578600746472125064845143339350223476343606721298779788108662192949069377913851574509120664009618268055020786218875549138804557806405682461449304437966525638314005210943987227740444466195593904265037026712235972789985550257273707007273190353880953875304826204959030740989305390160188873600381558531130208230945295289462989580930896210598609797493591967008431969235690814786136671438262477643505970091139304271027540160439767272992570668153639507778458265180291207618135598698987605407529757400319369352935226545017733263740705025574904114706399066374805636530528689883606527932270813161904235961254695143539027818011386400804936132107147279075060738622082602283931584752580952660553934598521893460378166385423207354359691693019058317054991106113598103516162850872758434721138661702350240143098132244191478486105131774293065599760469421817107420297106910578270029054272079827431583297449827092206328143880308708490281790924927745822228332792914581242955448223653648510590763466233416948132839763925717994719114472997494811969584882673897069315888890626152347571548782131975453961186770583732013311285537576751593792476212455848424621794753542979705981716611219312332625863756781952136786082554804569589954885405912654007494740896924886171230701245523342284843532521008701236829215810130941428309839432639239873504835498558374333961858637512798241681003894260657664834869011193919207428707684102316037092983490322586368843755283797362695900181061523916984429068477469521010541394155250266897003054253271324152994036689142878831896448533458575659317751881031351721071738476841473624924183325323362775461049812530875271392748391919808744414113498336928690287124167768685584875381963188822666367915001139575519206343123305641714973922595228329311721825163520107969157990643660898605789079765978642832425101949725876271369973513005820972807702501951938355682612046847537962899109521668770812478621444475091156495689147399276216010945926290116010279865552375588332814182404829774055794792084717443517021064907876679251996738590520622379516957668795781452292512568638681968707102901105617635778062178279539218818909392150679806924634959198675937002308576661647556273193981834350419402386897936203904285671521572937915634505607615198917576306521521320671843259438460832289078581606669294238316761944490806797080162199007248374531941891753855152223034907479284325291378803766123688024810853819346795739906560604649781906846583109310005518787830488710708491789243757985096239049442167719950579500482354578155304456812092360777023720126314787164098703894547810288749560328805451199934838672331564824788854689290837123392539675474774628131612893257520925592507785045204319709347661584808747307393491971772904355776898093120900992877603871594939788209534013426359595968556124308904091465205990499342611219807791002256271282612051844305864788015176372569060183092472125989519629146811780218849316543942642460752515706141150703434942834242040874871256258676379345617283773381575841409120761719475893018706425895291126131629076368034833610054933938767339966341082724613572150317507700360533073754907624765383004580751703169753333477457400266328407923509496087153553416950495763959779653612796378400188904209766329831010183516443759076172465488792406076197202219139230337447814044432141021941789961338545137656962482756454617865641039100375856479224735673258307608199319862669819950423954015955763275581590868710406967081119774338119366418263704695806442964103561511262203991501313685513192104439990963066184359855022686462713185098099359586827410044332963313147047158544197035628408184144184182349407445267478884931012351485044006061332894133121427181884309908490699037899206231026755632565567362732562606133650271544009500977736316729819922892740595103725771863391479514919342142268498329683916634498440223046139200363873264994714249840100219740209546932569755368669640239498247089815772156359896433821243687111834167443854654435769231843124531836756984934557680573609204394165014149301487740825856442878679210370852649989119886788394661004212836559202696915171045415316244110061516294515127776125546051248022379529841010903385926670874466333794883834827515626735950971062609855141778676732428952914434590372059001409789431324096121798394617056149873439427202022102242818130948902842815218770231262298891747198109648267228240516685580777615736520997464557242404863284063887370968986147330131797900434012081254966934808499265739087906755381924118990924412495068317909634781757883863905143678285373264968430899253989052792792502516627896333543239241217324198295895542534207006127796185984267896254018134454255999982771235253886442747295993065421476494185260719295326730204484284555357254086468576344861402776162483839611515348358343753119565211890974380601977785098780710083674640518630645687307220315887045215562040730355194365371608683764273257703272627599374448120294185978434363110050428159219728519343424763250188930994001415393005371241521400844188163728044264884061030423524582573721426828185091983604171781427300476206145361292825041946132868533944412057755950720304165356471161203966887543225381804260987146099333244769763307785627077270145758757549298099147764869437082064066412751768976524308340881443415430947988855396018594279283723774605638201815991282655653067135216190258487586471957941530630843885481719423490867012733244350762604004736586838873023409586762833819148131350048652878941264874621032000217539789177495186264539906516386388928817822854988658846619469125372698358188513834211526777386274802861850362239924172680681147904690894334378580849220802316850859232331127135514430212034008350295453985142331825719174776773539473861471117999254529005279901975032927143276380277052704425442079710639774800020632571684376506714359044831743142662727601117320750802232557595272568155430617142931191073784133865154749692772754478341067305853983795132931059493628179234051878688194344776700089553995902185456344198327836448310447831488096320770186628038415951049332071541173061632351713600461266867842803242769652679196393514760102215687681769075492969122507278285021916377569978964227814544530414810021119383715183016313618767237057130088811135551506108926497382585625257788374813057431753241425009795624422029148661037353764633621553785828669602418348932918287494090219255023820967384417808624903703379265441324356911132990162451216760040911821612935560744086074445314354585954866404446219460036589248716056177876569337145167453425318225436641298203653987098722708948728020795624022826518499531250671671219950855828063821748737435526490930341029875101956278470400218062121934180026143825890577687947102027175523028975791129612397161997854365924050032204408741450535744115675510383319129373599391527779558112440947422423672149566972072090577708080915510657700997136440452939178059433227195153041700787972449893298700175945445653405621925620090608039116126271933348248717245876779311675502293193879203376743184755530488458397611441477636622184368956239115605753733935184791690971172096375484743031185970316801418487830024240737630084691421735639006358071691396669073747512570631471527801835342649163248927028465401269716570766597555987780830459600361622360651947236013088616608311707268674080023378715897454490107395605872275268294098741128019832962861467115942690983348869059039097292055489165898695393843766795477036729596689854512213893451550567682004260052467391664741689417960582442137237540899785350811909323355774979927909886841107267107361689830258107631960408030972275053992082282609699601369944720901999471278833512183232336880883769404102319279427175709857516822777909427297551330998878330078749497851554009337740659818406367479910230838405405168486086540251465167938244360112842942184410772376884059331323928329930759034700119515718397784357219898232066384652957918072417232048168537676707507203784534268717024166985797649775381202399562153725961669003897380183021756875833124874509336012372126200278317151572723068953101528731683657829652289915024497514258252964845592995121893039936068017137296977988527295233065426752520347618777019728061148071281902790185186294511145336601404216816529138895956413343959177634459675400441946328383541916306805196934520387022109001099914548828799965183707149006329098585388981240453563143802009769496345012049244467482466233746229215314357330977428920192360247785235006185088192893101654056634478043228133528475435736575333548016436013819954858273928647985148363373561764447089744436954240319539417668351265424470708028575447555465705959312362093305823910702562052125107715976626418028927563993952301210736846123677937545213414243137692258398398185359979211194883184541935230139063435166437346609243185113677583980633553083417535202420384702194317519448650993869795846675062809205601456184519826634784896405041154661700688069269497430828991554336448592399378895554107096594885913589814173984098492021064206465744849568767516322000766283740439162545266128925710257263869413886448999283942463934803730484521404669329014384719692505343885136567240745155354206423864434846290873447422706521625071734511882429000740401143747402295775894936772305921923270832708073567301791418774985316052629858957729259299722022895943673018711794911249233359513641117756769358165460893543590756265643721274188722791327351628073683000684935092850412380194096190801405463940184586922012412933000172020405392541924615679486410861917795165399899007506830844870619375745386594456043156331742435439437111677927531721694701998090531399991148063010631142437068588624158618349538206900423402903965753168996016722161389987848039696706662851319977891325236931417972215030829186982950107494288117356730488804731106706918183870507530231291316929924319554292470229787319648974358217331944619407815351842989490182967652954098255268911801317655838539107032892105176863531661953711908891310327879873817153461667047563673672599991048606359517622688314683379422818205982519282401560501284918079389226439033059742194803030997740219061984938670235429292896332047953313965588816504012484556780900184421013275022260322196723020593834393350328077317314974376939890695395123105039473095051602591331563227157862212761322278471358218165284316427149216379144144858949821208909682568234237265588892994391465560523864043992882244899943732253929693522412817579941598702128384598689339505718600151510488307495909747133086639731595947269278376185401240465515959272444762488330038352751201623946857545289362860818157944111499351017799073034650885468632114287040265318659797731404716782653678156060247847869167066963767914550158641860019038540238352405579929157899669834364231142629879258526059203093575706456418425865938331192933372513454074327358789965796790714775304357600838677349940210983375469899008406124531743761662422420178766136758127641650406260349633388277178301802800567530140533026963712121989691885251775529939225920323000221880664720270568219598875341336269213030910337242951690937190352264185618904071818351777800607042550472697130387608637693473438118393157738894805288471450980441135146905820932236988036795671102543833762186509901403196968744922795374672146868582613447265950838401625976142000441856894849363753889758680752859678371143643960587895695245229738724460041204584842127507269197452143290432840544439157551082576049799779594715232349783789485779026368441242258162319226449146140110862270453511015091155150987330846204493237223018146305698119235538331664051448399486512397418946717299273965214318322847962487871504749880020388437141926521015018997756318950545592648527015261578385188847131531383291180904260081054587808336414658519309568087342781167563949508402039499069210280398437381223329069141187693068574808860980415438807039642751871104335422563832312893628777124453788858188486054094537392920701338974550263018569323541831955958445615031169628236288649012999860710503256372404408119857546709191674742951555543137943710128892132820570813366953359901376345651359773774092407382028427202916569397176092428586674669628257134787095179598701069104684632957919501582456684217016712514962651041854495001707932408730877542264878620442285111527412861778258721632407626260307369146846387372946796115685091791541453245047647758649177324001910742156381576463350094398832102985667327963346271035151261870486891691724182409648147318602088159255154423971000862118309430885691253258484426632005880977994585239880028926558346261203033546492197761165446352608339951195340700729724166603882883786981115082193619269584742371885452920561611107511318760548498300609645572713703006105819243816624591368100093010521405376740673400431735881456685189728012174314302601019292544642107523641764721127045844261566487411439939428402340408663633594031805525858281545905910301658445166251001841139523483488304834008104309150694931614462732734543513154327139645012259519243293002832034150095174764469709097575969245134284405690768482504528081567918328734750574391318771386431730308652451643164673350684373640785938584088511115611393674074175087041580716524715331749796050827431808805004771461057845234292396163477831166696658793804044322169335747208469825091674077714308129596003341390781304927718555590577786330961014379035513398459208642100563568719397870751637231337545298259126447447228439190552884348225120296059447791633121889831504384159469088490348562368974642791850396780352358556069811434593548087131701741085076877262466064660428920868918796623035666006202595250832338669222243401438898726282244297326559973213930499758702059461691563456488331395615701363409053697224724410827221509477320251654459045456151903473996818722810455895890723236024133793150919072476319858845440150225470689180363205400352284332568538539333916147224207676944329449633534576848876277000613049587035663838419330655193072936543771063035232946645575128017080701372176741858658749522516200022176320051458267371240179849822771878025177261570872095063279264964536280163805970143632014759664898162578833274904088819645604021124028179716698760358589061359546322055828687943591068742519268275301088236916734095343351909363307496384273374998063025380747501972688332376235932073112783195577272828010134548643998441678645397472530243591707551612901642337082276794060700110957843219512662286282270252617361626846308691766423636764736136178574481239586767489108680799801708030606357178367828193372401358602773524696171913336353029129018339247880986172463148678874492955701012996562040049279673309544611426434446125953394409902273410120470583603351733292187375258231063374751151098161886797047251870921544494107992688969677588793832277011790314143280436770814409360804182802046875050001378841824389071833449441142653635887053871254412907519333605343371803410997269596039260211990944708046530788196836562264287104329044137859430309088565952448501361633716651611622407872266824302918614041467683160918374012089202632784777831420264348192411498643386786135039146062234523365724821633377690572415086846992675511072707464930379709135142995512747636172779197757259016084348178608405608917902229242828346333352168093111324115221964083007908132318789586600883362180075506600824241578809809414678430735418645865799725790573588190471089593717132673505126917327723509308333652718823684137471799911646966004126446676024313679262198706164850826594983610200994720519310272597023107424605935871258476253835427178347263308689236764989653238091096656021875441950735161083613036796421941009242148866687687393726796351351913563037876660622019837549921081759891904099662769701205767257950702070146027800940120357925784098679819910177484366603574756214410127807306717977552611987187090943680433665719185715736704858092133976790328062591647090253173630143395821184220977455562963438747795247717098523635476135357101291142861215723287057428777381749661925672633150542619368834600836443948279562973083941349076104629462493988542053798597039891055985764443656952243812400429582942633606307308512863342018113355375306358261373283937281294905346168743098325072429340051256460150580903102541557622268516695822790613830689072763525494007283136889801766939784054694954395208287662648503365843459683419943816550017386194722081630593609693033480069800548469031439821824166842970522474291171080261231427418713422953530324640040498615656302002559774251042692545438622889064916144621345543908796563666707929644687576251802915078809956329565705299346304797392865608683203508807636026419470028216963574893288784489899147724436771549267149768241062572227850538521971284045554259151805883521410442973657812536488902155694231091986729592536799779066577810863946670552988819928033317788205197810813411312881375173756238370385412716317737375107534905464105085889590106083984672014656142998009285661491561087950877864256498042806658642817533460571732936120613868148047399980966971447682717161082590595523423379774687336256491575144085116321325014481648980451252610085878456052596511639782025257474504136260481718771749975503267918675418070160302256803955591379488676482084938919921353206669339266688271118638493398303427973443720179092052081236906774547064290437337012450531877947514711948495917688551405136166870819692922172710978541168401912382147442327333595568556092906275316233856933066845829340827532168013368517277530893694114452477395088513871565049376665592461849954341856533100999689943945028343803699849777120583141960081829450622473642366838574900927042731552956656930226150167695968735491293351973297870475805232111151353999719908405479434936815001313740789433625618069266144439789369519214760771780212174618286722212301293090243061637839855389834362940535042810701342646511357845559211905783408671272617075743265340883508033157111444416282411171010578881786145040315323424813894728961538346732296633437048198370154723843701577898829555290859198546259012533246373304459491834540270213025881407104800984210625100268640582359338465665839399402283229960702691806236841780069038099904460160264110884833331439225182618753839873033005188117438745693083838738473803266494818669776594692575396001910107653465344348079136148523419795581949698777086788177714750311060582496225623885437872282746103117136520164233705363847671348579028671998316635041636361148387094426385498178515517364098948693421827779688462206627620817549761321134309095500225596990009584989992058877110650264021904540856670436680918740030861448418141438999026615348199771195443416367093285165310085723677486178008599562411482725396767050303901215488751105947492223365736393448230544633609426396131596308221168303166376109496437252186294779960340936292642165620765858645722014665567989325020704299122698199810839171867513107309215372621284731832983820747518442605494906039920849740554711287349159846250218528291430812733626460705378902386922448732847854640258311166842281935815716232773670426692701632021973208168074006524814942655203082644925206694827049933588116776098563873312486506988507168615717510359643887878769039114213525703363279471322534983931281645342740990028328310587871872496641874045066272150593657547188985212289209102481462013465551168078312389129246315361309323553352799323170319249596590800348789927634400220008073619620554869739720971232461099556977943154283822170709086937978494209903227261090950017530105709770776029924604038555944406743953064424164057756448531937049399785328549351450565289802520029731780386867923037383036159634156323897039030121624905835013083444549593042818248722059882580949550370668569219727217949005357968263775456958345950241895496860840986305577386270342216018284310613401138938132311808613237520770629165835475870600926971896298035412924510276689012390240646685163487433850501800291777435573157380607330579183373685682735293498954328177604685873862265400021848004276770642627774866507266838724699295831597712474332978993080979847205573237674206534337263181180712042876665071180103640005302150490862602210749429924195729852469630953915559964617461737407726485770616518299959661201357908693170938216992257009230762002221579565214567877572612676737247978779359876731552541290867744607909226400100942324591893955291068018801724128366926221653709815510418903706532271594577045840107202392512523653565856038568064217249644096322248231270200043513850260949553209738534308009399546890335704938192308963898968248363391836959081263595392453736979407170283326751368973651149998418171850239910961796480459696965475231639423559871452658303770329861225261176346097366297197916819567828379717564149489164466237013669858540119154180806686087941723426764278773261166269620310563158324678390635136413140792555629941844649814134001107836249329313727041903080026169889112659378284732037310582815305201818730270328516482937076166418445319812878734867394490185838964434199486724616292949309764774904901091459994698695815878633933496345473504050944849260129847413872263099076017967990032984794897095661497134130519747575195067082149382709720056258089240893391187612433796591213717955962221427183069004451494196854066245150371401629403194384596720909375143132665616436286867925557676562348234239665006323109064207391416243262023633971366697347633625110863046097554664327839306269160055368644080832544701209423597137034892722526722514198844908840444282053109303069163633328282947194329446510532492854873530080077523792735915673798979461823876378182061026572064121961858521009487164869214638519139647011480617831853896387578845598348304876118109665322017491942172386589804430722202583181144227833192608156748067512919830660261408275997443919812711659537323506586614955161511243573674982400218546450393792998681890004555397020751628235816103714254817697371026722631291294236996556006045856201456386670491639805149322799884672351605899165433791668292546169364510982102534762897487415985872510292602497831683666482707601962149210580703903396885122154166516171461247289888607863283027070853037907988506915357719422736776460799411586901937688739141553064826316344711670832980398361546950173910465147674405969823653240794611100959553174630573654322380567776068713829765215745083840995854765256959027231770301089862407415658348220248313326367819157551092024899597935874344133283204041973217374937221366968112938917279366882021124562049041574413471376604038140553917833647327264252757725119760130782297992192723255771890939630401525328629577530860137779746195509327348248160641445008012742079825733960956989730259014121072429248383382002979659600083651521013369067277701102207050627328044980179508410628485981407755511118696834185323610490164278377081511157412677116322101616359621913993218926677255943106070697581864312052473222811663403307155636292345988562606721878441094033720387103974745662784065112547844325522136723429936656511025715767993663705124501281771942970379724555818629761938441713424311324444777698443175674704820182934286647061346386043508322617692680600141336486414960634060676947359938022345236819386683773596011339256807144288904879046263119590496609751600921919901918248556689028117612995792068987078758667656655051388249177209692238152816735514458022778240281373537148836792671136839506727046269323577111928780413549830090351681796987088005701882825822859667179983601812033838527463390467876206616661178316727559940872624868673192404173013627473933901304720817106595708227845425185642400475937606066602144736833146931665310414149565346767551664525579432722315134460722340908022716374299089695573297642884971487493970686433220700943743364121939557596625627152033743421037410072161978638033492912005332393388245154143088454072495488263980671542085304046080798370141253599179065377698817924114346901837772863347415207751080649880726451687263924088111357449072621445809196467923668758605476118307685663399563569120716244555399249276391392912834544187034734999103888375916295160908748996827223104162305107050222624052359618038801619118880223036812717177326060678067728151853808609898171629661137005106263750870820308761303157844460593626615641645015980977910729299313232906679953775928750726260774974024183003953443338940113681592393358722028723654710093166387449874072843854951638146638680603647862317527583986771582328326386221548347700046522909472469454861539093790823828650826367342504942835051656300769821481094452407529807033678352476365345434822611190559109311339331738993328555427483997750563897341732770122240163700454933016657720756839785030908613893856830281803116538225092593139367375984482038336098923784593055492595652109375712889720469987142853276975100248568457321008265344653464462683511675515037307584309271149447212428059802087854649087840628602566948799361836165483289630524320537167803651929894881790435381903561632169297519445196243459953915557914579111156290655740818262061004954514243384869010967731238995947203651242317172617779523788949138624572026431841252323850334979817929800590134028841888678622823380251366497043737441542925849438310880387563706435128044770415404833479301108456340277502739411549267765998936231998009744491436036845363091707622243068500569732389342557870145162707562859971485783998427558742369680289906428635849590395986534077666350654896822880270721111891981156173140539007471610417450956578092562780534123327075449554805660420597899649665393973077048156149785291295918086113205427414550734326042797628681714933680523721261894772940706030469539171107077733026332151227646889009399610933546693784050142615475677830065521941631518315366442668080798891419250306370469123186393798861514907951692362270556570691264194640955981458441795143913801855355661804355147261873773305751769081605303295835129474727267445877584125200933106837455667182161762998281733185810119556474218938775241667895372972460043584964981528329504046977306999776730564047831599822742347454192142098140401623899644591375550627946935599614885538215915071672975722476294359274393725663254435804908600858707759451298870569958698111130991191806335637093242263544605449123200527055770239077306465120283771762887587393490085568396582298686311668550021650559348728562682064799891264735375182113212381600943791141666533113037146178503348958444845175262513739976652739639439177365570011544390312548101610792762373199806496518872016393951663108392597768537489652893566706919736294821214321314455311163003750130940512043023527717744717199625389376332172383855940626517680683215882204627823131360622451990686688089867701353981805363037059586005606569302432466081615052783834662950568582969122216608890577933809136853985807745806412304942243637249664045259249571711953667347535479156700562118820923628469363581845099513548210471756530821959336561840694147811475403307622964375657255394651449300539654742149079422587531116230756342199378365040001836276459273336652598696389037612284212237239587653868054923956399305190430679731822295245766387054495068704066309125525568727761140849152563021686571090565855793010077811488942111522825344073840039883579126843988172298008838427895941443803444940924236488429637994187122576045585206399470901547835188646950020334822682058962406705341939960640711670859333118531867057785913292282922990105753938756764785539410627434549743708879425200667130853913167581205393686148851919543739541509610169545473671844436843409616967973093547074827856326108159000377068716608453502365940414053271783073441060775507570303595657428002246761681832885178241781863375986489430930685832279637035880963619454955291542931662956255522024084798749586674142945046394367438783092100418378826200249931218049320127159073659558603666417862860813752257639591062682869963008608150844770035627233372880084206451856592557863850814932175994626999421142884660282461671594382334253985430036938708168649977637819853615058816109123224918551440409288048014338313084895014092810411294678412753213728289157459468440671058003989408005658875246485483410063437890980144671644957587608441704041611346742809356331646835125060980550474941525715268141594071396046411764296767995967496313210166429770225658092175900265025209804462093099701791576444251881670273843546235698670962660267651470395690817820599404882589959138830621016338951203885202407654231435141175849963405904948411255719202359155075685926542046942159604921973340189376805872904054756079103443914787625168893601878036459245412293909534076898378218686298802476661669679747453190796981232215061386800369231009604254783221472528002746384540143705338707998954404442018871623401188872346256689768250124557423150201145579131325669403857291105694325871298800410228764746028160007185051463054982773526439125973877471201933905027061267476729911735055328437671786673414876593361647913983268787592349651166140064839770478291442474953158533696743599506079976071597844451766520163129457522641359398050218046877316442900808789924430974357820543469587358107900615056543630423443383690402066401138096660149994930632803533103987518251565351635585495272401340856142923993137512658216795585418977898846072147839034185890823042181089903953883789272763117302732588574420567911979004779134022857192338616235550615335377335272112874620644889997557341828210350042810776738246627174386043703901810290830065627662078304997736710340981506089444320786010610510475741191436315348064960468916903678149829615656596048129758893217127278497087905331183270995960541291963473268716279947054843745304770812495438808923330233561813244867316263619330798497678928403972860928936126261652992997737205753554063842683922527497867910669005255552859311965398901870429613361938791976192767022055067989542037647583193630961262112499453316577009826759150909993765084201702194085617373698345567379188131225067588317146677213603831451318089586302535050519378729308080824287768693755039743536791094527542971291317610900385968933968032006896336073588377988866341286164697831997128779880395395041925215937947530242312522610051505787856872003948373595135097398697698095693122029649520125247135477742066932565161444741128607274517529923039092012013947060112431116676401699151391390069699073154370218503474223158898340460887102303668289689697628458169785011007128952961290600884357490934765217097438588871861216547835390684199626907080711175652180968070778887235470250389036316039640990491509319469431428896204981184252067071717675972720931587954942190508298068457596405436510650528782200634721531664336371200126528987021016709330961820331899453850899613275732825645510497994517758031311496338278900330190806156406040665353249529820451161979835228982333035235864716420236635585555204849967087248632422986766771927549025472521815468212309767437008938327614539485205781122960734870116791643069403194530964301135266213529334368006792725882524414868250030207247623477689832525022729509592143527589695718518765243787935134459691473649830083814423348206064481599444744246963535438408134050247158787634820129627754764845482075152556450689152185473157147732873730390660333112622081692082412155420839330916458603632753435712219624072669076238770609761902743266384549350692147076518175220392188072322935287219165369222219502605933667305170090120139247970188360388452949432430207432484921277245658049151615449726141171428463754480857262796154851745995284719646745515206002966017824706457670344502985783295895643300562059808137318017726527093225245239683318017666089974981648048282055360262882172052948606008702726579619929487489889698808749199077889720506750701804902956933734937127449432668155923915427288259623798631020582381319899452124016205933211494515030578068319532008438905663121055910970735847960026583366031992283814190993413620937316234217750882879468779923837674591906731900069621748962658421643255341952582294266619885355958450741335371078317959330828373792652491701402796238607267935032878381497626034593924771325862054997387868232570918737823220032300457017095756095142030827455007005064332044151659337063869680779764383049983922377398960187131479658942862513845594075408524371938256363799338426356264754708307478942202513346409721492194948623557120955721070778697295659037626816412190794990171644221345207145364939393374417912734444872263672047572356693902934730092146027380071005153954583378628421132972763154820781449603960825796115591792551928510104561080501507272735461204192207856380174397920544837537437982253465263321088586180320314048572356757118660251912425487241547474073543475249998481485847681501922018253295181841240605904956976269448110208273163395708327268694988091530216786257799144597507022153251320484131841042810024486142591768340600000729855845699039005256784866575447827867900591774058154899383079192993597076376287776355491358263813981351116469248210413500475180818596115055233912999566641138908197714027780232523712103596985900608041883162568576804944230243249789035012094280509580417613056819514582426061720920898339118517845588346679894380629979087141935649974267733453952274323867120906821102821197833010387480368686239407936942498259101724402873825318096799326980031396844784347721584772376184768572314347899728883831670843153752135115545629446841078274438122295453292096987625261592987143741565651002047263729834517058676198694882860591639275736630922321679335263213190911198379102259258489404039274102612977244765113226215804165137288124771193796261758712167134340678248805887866669038582049699404558627507802920234366891309862929991722176037884733235051642925599032690068659550191048194859024839797306437349220650596017241264878773654127704437692144415845568459703421870310206525019831975579832239392844942086338695593305001037876634563769040054680985250117249370001963751694784130275836600317633208777490897855035686755673486084858474529235314396180922009975805194665218250040362546923824339576945653040872050378934327801008199506197999577599324371572922435403853885350906574671804712688200632098575022598581726864064701905232316941106288806777609300349929408248203894656725330480707931729896719968149027309225964983562891903841292404297234740801530352106923930544422889176561349440422189722469907638013112911504431496141587079867270764989529551875459074703765075375341114675161030337412329050031897080314170347578924094942561555011828083394653634144123069363554247389705169929597438438678571134756139450007683535306224402471846696869633542239012841656710874712621267715355232084075226743330852401231802072053967784320624907793198693894637972581899072972163724818159416911681266108523268985908689987496805311828908675857615702363349520666973702670972516839390770847718707420160674067303957647412595221044394253796625218022829762991086280481303927507319251700582536895553619055112315559074934262922026633726549866507429335365047820765046734727861928391407385836671877306911421921641760326381826115336102263221246872593891554543391611300245297206178587652633612418751602113722787101885002353737191320499988766921920830674233291651535008987670874284662216050297723398336530768299489861912764024431415224517790384846125236949959380787120789220214770717874776948824830069901080943006266232171516972538901014566916524094413634078085293961102781549981085297358602773375067759864193272262351304535468931309456234667027737090724930551017329168790873503380856519448312087885030177392749135158971347371026567463748392073002480489107021394366846025617376045410004870675281805160930064970915026358139389719484697337414270984829461365969229433995388277171423983362636913555868018291137441968786826740418598452571701604604077040469322439842719790382124067633992255425973458388270831569786629422698642392215409111223480172500440937518377853342369148561047953800496512515011969348195493344491207504313128445304977167236017599881319082860625091622885389744167944009072077641502752512013181483320620248607841065570308369565535110408433955864681490962571717442308367615209492139987826753953345021927854346468387456204311615541931296396383381410588885759283368194262161266939101638319180322056736243720462023628371999890064427498029761372729107847376805350718300694134728040072292949479456563446975859816073549244652782640497256716145002482027628060734041727539088473730672777825279357141717308522740974144055456596330893590629996909335296692933750079509769310288299010025029164164300644708734370519387162572504152892503689353524407852984939527475215786334426282398271558542505685488781393174385581862564077552924652461797247438609098575629998894038653360613555298055938871765137497590724205662212124484918553287561372218568522226011290532565769319815365370783650023626424079195700427556461064801891963709597172328458629246413250337620501622855681865459173235338809585815738581672221807169187908110425857368707284384846881530337649438194670766125343282913459257481221366892188258088593225361846628788826701397874341026686462159232283969685191912091840838413587773913109428235769074457723785862527275491245349022977804172289637575088221644374455693653973376516977563252989414505620607579097828287071992904967926236874352220603783491470697416033952651645279549231022970795686186607505212072418687405865334322017160472341974288467175198646752734489381652543982112052916755948477481057879374679194645243041902090996211815615538573451212624309295827928642339164547611264215885451489628199549556467413747387539052631193826623160292321925032560841054923625442256083900632274282048420439449263149788409309378796250999064336717576330877513963713278644527771483983447281254562056197341021758363847459918555526830509226713870820832284457215439725741222592013384511756634036151966771446287670920541383548533513051786433523889303643987291815645669460564152534626562082368889147638678716131671499744619553783205226175666873121196235220124203101833909129236342270474384755941793147670611883820502755515509696241081784304238136611791938926209905239608281370402092068218898250797776072611861924825818865962989084568021825571823118424778431325462072386031395140668422066406868346425114614908881854948506616195513178520451709023064883339489218370671974151749490487077585174624983071268507823433198832725438550517065709417276182653707449281549699988307554193291976820178946323455421067278573206441240144224862308945375178899204547605334342214683195941839918975413947897454304879735327030106297733855215566322028061678137024838619455393555469971536790803269661895727684059944834539988343012994325879260722588281807931473177734772718046015532273133128611687382270692655520153015487176753727944214751627278811889238126503408112344034962098779351815769951348507713890547070977948363607674971176345570220996707009727104687853391646505082473144985147421466286111197286822869014145481364577090047578849838779761117951867033321531390656885702588185764789516771844197697111033976477613009252592450667960126894469863026037133287543766186229414466156884498546442995423479646217121656763794470046892225594065787821284215315994002241499607986775315432690475707954279964257484468759010741684324093355631126528225640429435770456852403466399582184074133515207952821239524709580299772346179040386759985951293213399470415439577016398112912531750029047449647265515261381145080624276862784052072811759863842507448167704971746159780569705379812836220531184961593542210331764583008344717417754583769630058952037812262017091388490145062123711287164933775260200193935649953227234397474216863128096353782497860735669019170802656518502429487524918977141733810018766953590384411872638763651002133833730773955363930633791385741671073486191194027700995180289660124154048718208302381438609433769931071660039464750291487056947259433538351072151372651293806643678084993026205322161562464360416400552529363741214210920508060135610337172781165776255082431998310748941151289023589159806137559970520502060595359545822737594337095807679352566974370215087435049497432793631117135217113629010943300933002534918517749351094430007455770887809329433334578712330743137988461311429703412854147102600289756956007454489305528189496396862595680538017255725739005856482366459764432413441751220870835717068255696687629710003095968544310869656122737422200191516853367418301054159132335571593556141666461421126954624907375902642406455393844693847918535808764300280485700380819357237733958756484878108687103659565467977950367275009537691899741468455219542763454404168148000409486348775304056339933065271221860380984923163617030140423028371961055750105430264959494701260545653592158595821853653489432542087839478228837236220912981183986918834526426714884772553533396029566915594756186660138695906986134949740764156335307264854831574784932790143399173036618890941294514075949712055988653480111898169000598447458801340563785589297213807768341840733294399279498011401916674768157282185943532534803568978605878429569029201048480451097156644613334030534256148654556826247636322637637481748048537826644262035504327250002632682147846622232114637323314654133363607522919809817385250036534787129889981669073451802087025613862593695590761627266738227062453086278502319445323611565084229885275838338703978618565825725335589804190048713241558439823078039704218484303179555888795021716255380718089420011319645069551848789670365921445001656634904870293258256022949105719205472291001909293377274957991505567422797064974894844051737956790320148220997102492845860919524322336046130088648041281542601784906121855085432337828030408233911976023355174573701528458077971672463066960149871684515401749069955298821080791891609114072713638585539473522447789929516481507862455071217076365224354150776349115591281900722992438200383805038117477005801086093354868125583667723383004843932832081947815307295417462674674413073753410320949052167494893462082281153316224694748597694438038332101207707921311161433300340414675463353037261422229390002790151314596543328967189704484751291389486088137022085685606853210776700456265455888586086931051076133655074547422725614984654964540774892788715962304836781917140618828845406864590584870877200266545148468971096714354142556393389457188143925432699832957008555110240714831902664175106872979720669008474548475296056200914643560882308837750766135800061675939981395096622735756362105257477984298851249843435899024541223909555018053641125832804693461510346385465542657048948044223801613726696645571045038442329101956197638275924588348314305862463073694011653688072107953877481070402898490674747147635705984821694742474837761011057595050526297238297933526754837529155139640036482695653777605527606557719832287301098039747824923173743707430198085079437488827163414173719347863577178204311481940497774819764749839028458338463320238365053165442227548862192957797888512145239255501489835702025792376445775554565403186709246709039971260212501382367791604429297633705664940906906945970943070004989284661175079212711677426332761771988682583106252485240757954130559251334084127569010005825320660162038291995082910983268275369025308546569532470193723798730255581533261844172805777648872303809000246062070858689565985935595799524328744971087568536823360816059566933003393545001905781519301636695995851648883477630272275709290984533317312356028631923110819873925153159599535497781849186929192490681998621188452571302482801736070658303113059076717056670859964574640073338184387887542275982705311631842411306853347667284082110775440532100843450748132120955556267297851405925104640362081198644100474684177953011155930376919000219385172739990894239945745806424977194733644252033956932036177181472359650679689014152884895614500033670274422980314516973734566740482572958605550705638120002458921202390647849224589135813999124958463538877939998119071470460945550749844936627434038108335658577082117889855604008671586128779003979785503182539773777595646676283295302209213386189553947888504198053461692834573819359529500250708278664162101257200720707164720519590841190571924208336853889635864795854170343539661257847984290300046525561034280982879901347928211713210007188571726129918691668819463864182412555006760166512509059255588381346807943279017920006100828812467466606587276916184434929024803358771886721773473569239751800971195828093007749423227033629818935028932932141075685892062866137022166933815353846394086583813611494909549020997898070790350995578118450155847681064513025003172042697677556182442374229078239469809570990399025389762912054681404705001157313787629396897990297733741170246199438192376633111248633136691543405802940481631494175146537794963110116385715614496591524015917541037051011165197860344259829395063900243365054753828313258974349710374680569166464799281002797034651059768898274795047675668905202725566265574313837738175573195277256160626898522974569340212147897585900186626763866773678143251548733047645084566268804236124997912581174560821338168482900652723235819187687682334308180343706374248253816345985378516541089532851308614138120128476316093502157974142189656702330698355364829141559370030063338576594316681864645746801567119496261207032946921838388576145470199078166748332994618838940877694586702540545967452493161270225908260254593863854652640679725884418760609805973663578867326107475462573206249915302335813762499111806921832999149757135320582752648745090574122106298824971282180378466921627759280404223930749377087072857722783796950090818653181995953976128597225670572409206643004393433939392944082831863857709962635105377812876406107134952271281117853743333304598302775684666785952232266232723601369779032312918563939462848348235164026558306040740455428178720801432430653470770532833045425920505032193410492161248067156826166312615288728573841971877337921668221036683744051031785312138742151346303319630535281650967297687484100935307857304006488181816066143834687872680331077303995403824468862560118857560385542491534889821117538616013409519422790055557519443256587744266501756287831390955486714337496684133890949155458817699963398808628762127563808027917508227045351541943645193242670970084592986804173803826415452764335443505050617604196209700593627477828639094950134010297745209448149593908230965443444285892619484509003612603678523029848593841461008337828655943170196498383412091820781764145367557346805152099030887586988049984105777396687104599275557280259929819007508423423956198366913483867964749605125475784328803759352669924543588399360625370666170143303369696456634037168860133435550298114492355479118907902960342605276646228250118860947407386338861962015574797213758156316286346616461945517795461863411121876375571523857556066320777420858576205602309999654750272766425870270789948989310154357726648408508223028234944116600504187966351032508131043875837778981384150686671444018370388168106627946153930901642928270196175625480314772311273788051883417297137673864951265193113473883524609545195392155986777548280792042194917189134626014817094489956791770272264563899407600757030364784376843784841456959319401602625896790677563669114534230512691800733414544656776535632644341850260859195008891423692704688261416812882362423963533176474020544721760645346007874575966847309100717108742465545280909406840409376622820677774393099083301767243248299496060673834951129449295570345641718740841284242038326867119438133213888099135230822023523638443529589025024053899967972514970382497191755752857724039014758802095164098705727866452336156696200558621450090695639513821796462152523403099755321458380782671106948122928397339610148104902007674229431799292776403558444850815083924766673620798655733870616214613114179488451824257671670735747152298112601084977772466513957532589900632678096224021401964484415104733351179610430161304094265873739425824532122225126548420550603372358354059188164171187759195085926428617863230224170135590715236159266603802949731897369228123445978322233175700847141530357349067792833395748890934569434418272306545540961520292274410773783657813858864439639111397313199054069630574216766656797289379248923089953351983875494245061606695438867249026226761845776431318713978629535954402150258949848726051385632542879268946598732870613597886367669617119837754886617839113533052728358189226675472980958071308702250958204504987043247258461492526673237424695088429404936292777558540325083431602777957985268409767886314588588051000723586616934534261238285110735264380690067085080638084821299617209812898148833529989831972647659845832094448203601372078632625691806284061637084577133397288169933036390156232368055719667665351153547786470348209585778858719623722491013089034269679519385925331394534415245287526568062727291415767900208583387861493774205101920753887097674983271776629800997958455516582554083163307775822997880699915767628421654399434464293547590166730081298494889706003783906232876044059784540302815198229588683875451389626719323738132740438495398500233421383665596908365493520885098752293913018498879067832489778674373143401950923246352678812429028106376397060474858275655871141035521957986483185027746678454328986912893249639453315754763040997276233721183345894729150921348079111660743752871855250618591330430371695232674469313947927980326700216141420259298160210479647732712538652817512773074748920353292850177938929336582218523661693444138744053114359811800736950486337578065434534072108812428845868444433790929311351296964614866112435677085193988933405655533136553231142972733379310925234167296504519007203020684122182998621148306869970437823769797706338766210970339199853875957518539005937230172793380543415416031012839716322431849932933916080858984437574212890073385978271823793748333551925731778454414357097113163573152184241220518281732857798548174477930127288929185235599357101596802241199822967130241738825662929654508903790899387154977509903173728097306910864062024561307467091844769845299437850668221205151780201755709651049809942549559683523753905212296609866247257842486122668116342653945073999132812260562014433752645393043909105022068456017471850036207748179241022060164052447225372681824587871540104220768021564384359659805861513915356191702702376326962965173689391415435997417468048753566410225591933562683590153604830736592852741612623863643844883279538797887853376979408406106238448795644548407202183169499225732801267037685769054094922016921330352419830003013911885133296709990352316040411989142232125633427972882829547399916869052854356821835730927909700732980827624028164100141594933571924453803255003334586941306795579075551839747017686353598433103705877642589488150660001269124931078573328779314545050284128885422238612992975591912840189060847988356733837477050077496014883288400928704255349715886441745998597024400850132590503547349191924593365429374443725612823566936896962544394590907332055358030019961083295853174814622014744803228303389989292527279155588658631838897037169910652091946097092520565858696273466862884540505506774954111493661033305584175919686433089724311949065072193621417720627864941970586752228172342140119819723370242151085173412343164006986904026960001604047290110819983323719398524471048187633529723031140197755850641952232818082801615897140917276142963932766414533565376832434666358569927698769810570051801445315369484557864633193711897585041984954475204290280164471230673152088200848064764689780555853961540709016504750799745461342252168467276672880810808762536825549389845206413270154008316672981743044595155384948674550802512937337445756269479056795829147462242809670984171533173863240894243481627094041197750831374944466676004079846543305430650607578954235927665322214253422496969097418710823341607878033076348490107778409722904481705285738027633484187640570997992245472500525914255700933616728569162761992098658297927872808930681435515162267726994348430657374201275588949347442664528182571666167247490090945460435919001982428535516771714676211208391334960921463610497552068530055363057898917220331434342160739247952405755244139718088792206524392592270417847905751909839334501063298596611932304120651934134615060833691955397909385883016126993083997114904963142255137338680357183842375245050226960369332834425601174029530874920742314246256957947597507328796127042112594441743862784624606844289708735863639922126447245087808562779384013113529276224094693946114463514440130414040134142125507374962579182186545648057902216522786727069028507679684137953459876046570969958856257451394196666526680688073965097787662020999152749341510117142192684004147081309211090383716979597633609719105836549493016274980279988480630393971423195720071456653170381060555903032955074077786349691249509832949514425832162346470394954465621525041271554181895034448635335185331429284603113736252830060918516535083514585450030216405763824223921441722401137452133737032369744489789640166997242630306422544338526765177420933151128366220760184551054074315548336261398948022346640450357793407214433456049870746749132095058313838808634316040955461908803828712698932143851644301588559250575249860429417041563217652956384159483877108281223177930855354628225533961122124169778652139278694960503764878274177138219762834128630333957172747998305780110582527697186479105341387358428300310841522058473186489153473532020755420975415828219311560554564886373303588941959375721142520818702909301236459918064266340132016258569637707737089109735264819831500046659330180986370178986821985308018121553310459328947575472797049419260545781893849537557610106274064991174243897576522886394681918204296984777701791165044055912762261573844606580004999613568820193008663991535404926404628855836243354084353740055116038959910319338520479413537384620622770937270407857042536488043672707792040881260373112479271948136024551182554836467997240310718411965624522777596795817498017341613280848895819828840574654275126983735184021250428092817576382901403084759238435646479829034970277230530291889598702735937237301662336152297741182027613301678011843124664492878409093441172223900553307159817025946838645363102001057994212597927889310055414927126218517090595898644943837445890571743910407555316726158004456922706598161765196486104021326657805466711801680877662050723152780326834309961478882702592052454564243458314213021042690900849550280998321073104680740153799561049856513190834807212701826749654617553606577925786993712295433885633467033736960376577274830699238636701717552115794038886658732694105992874182646846002998239338213702760636593683072762176077494047975496205818500978459697592177246718823257481541766002606988956441860927686067402385996010998324714697815024198187828156994822884155122579541124807302979094379500355616336668756882509275850275373500911258111300436893991964478843153587138700475246116704401517604928790133878113322131511516643627650281500139903686678655250041622994987174082381235932313078725211329733385837217379145429340758164504749706767369840273803400614596427290816252660573056084358126233103494604401886000551747633124691388874389787016763027045119812446252115339814066273956509681023707514984891848461742406426151053485004713340577403162955053255362004693328132531282352122277125506399319758142488589257071850573221310101961793283794162490939578890018332874918069129988024632777544078342675826585278003546759737089378238052667923485417802047712552996719570427918248651607681120140153925671216160103756526016897721171730597414843646902691325312766051919462225657257198039136192482853034664247738936402338507142319564142253007220586903662885211655863600119851356397758804179136757188833433112545559594334969156568810903373780032336404400308544043736012572951470069454133214755090821997111982050147114040423956638129954145542835804247356120094971645477011795637818369274789662252203340417021351410036952546723670675456022209776043794746382505759276351265238454695475452908479749375749806485669404116806493296255156451671239920492094072177630251887336833373827981051602767620176439682820622000943812628459279809864016757211567732166807179658552519570840194724730084828883151114441330087573420331202031758196236530919391451419390436759454009592543373507773416981378791806485476375054748191173555136071474542150105365529126363363979397989485327753094515819909256579233161763081651106876230938089943661229699312698759639406259375572239072310551497773641728668754645487367620687908944456220269727759341349231252430570291697149513362904965142132224984029130788325659255867506743487392590826431088948290694757363349156258690694776621356120268287605758025152716091428249539033377704094304826853733621048947514773601891070023328135058226350278790669884636390618161333306513201219554004785400815603985551580504349708435029784243058227344548033509654429575275163771120925571489351546142383341925448103246317781081943110816772563265079966980698767987820131894412411484428916049789586771654111659606441670886604901922743653214596313313223887606934846639742051436111915553208565961155072912137261097067543131602183582715652172338964604589072872296490611373718080380883728968739678264184685212728938690508426120873756978738784346981117404510456811598058408384139310900219146185353811776468339952819277710864958580598252513113533653659771927188493119294190911371658505787519106354678932383982703000565484573123195702029413263163329993916176313497891153923801645653407058918871926233156563116392156064693438223887279144951430966670088340026022777165949646287712628531995477449896892360234825253303163254079255709839968109462489138965475023933216136189611897308125566894544245405148446902609833321563858934054873039238859281855399648404192068335115119850507983071529832929896505289807152694315546849083846862308583146052079183106004221946658862577847998352109376711201684019924017305043946386720816171005221522100888888379712639103499018162913167190205205337485023690715441507501153306370012808922509144530291333702279147055692752527605404849032987305633485315581130716501868036731454566811964728037093039767104837107952934070483855920750709301744148450845867980740889977594653396383996944932508988189570705075690325044970800124504353665079258592370094744441050985910737810834420588097660049658927960142558844013541919452820139045353981309785321225578872708226283413135796734694389796847495137201995934854147469862807470180492601081267114749787828911097973828302506483163465932983944426253859284876008922732284130409013209538868443699420955257907502134113823012282327236690446848793532934660787112458706320091424434237000166415844844803449409297264039908516460960456678688362728004035326649736486115836656351532911334546787616619970575738729754011487136301876659238682782357148699380798157193678146754405713592453210170928194452083604821381998624913395146889330943864314653782087516197921144571954854962558419903611132529091015798387059583727877709200839345589955493235148722136814722317996724362803083866577891117279170917997498220001630577993270700843659168918115998980478464527374560345604005416526530474492522661381705734162148877212731209921500326082281554193264260900837568370971212740802930150234602065240674206911320932633834979403733427281788923867444250685624295289758369254804879476762364677782323480155852987726107872075200052075046735238611887047572090278651501620956400452474672925823293101371001041386474721814771314293746559984442559295353415321669512850801845241615696264632439729840524655220931211272230256405466755268241644224012385750863746090751664268065536402104924607757381950536443677052364440046707768901199895798915613163790302935923482145744311114592786101806814408276831845410174450668053654558621003390844259691058038183664805497950396458930211517953956907363539857685373890553304904758056830989912114222343994318775699365557014763047537116558352894094148974318236979374215377673896800641928448884269273916907190227852737997483124419126280542087322048292776963557235844154433267606611311616185336128546133737589656970581458653308609545544235126978068636142571273875559878850306375167038452965841967612037542373652074386751932288782595074123842968790709797499037871966804216117612413478199391762268502582837685952354384584426881385747501115443659356876788315532215475922476425658627132744009907815663285515622336120470957914995775905447014556345772704020335078942631332260177554480934888100391660288586558509423938474588993506799551812821690130966495762320236464409113533728019075219919268633666941252813847942022811496628267700025923311590041983713062043748770479278632520664521924618163841295556446749904102103877325371645443410435763382607746723524124120077492375617445556853614500139437999836725782494731930697165543158779019127390135684615779588583939645774623456132776044844482787269294140990488989604683811399353170251167066009938787676002836536241623351513450068129417555373937986572529178908156028229351553552127265685161747440794824879584044722884769796984162616355946529604767803415025529889102597894346600934959553569177864113315761433499107838199616122571158273138020830535749658750483659023422431644522537350220939913977787259549389666678109754557216185257694605492248741344418742251007405025829970987167773918533353402340982569647088572541585771779954751117630479729187099660768292984427351089512939485050270922565176257228281588717300826474724096105082717873527699514278738463998823995923760983871637470749995379596431846774460416475985346121274662554109242014455629562213733862192838286620946455689651978764223206411307123404411609287117040383345580288000328608825873922014660238848003339248348424889495387406632025148221258757984207014614519230313509606563412249480031063410683689843595084226457932481905762781718200828144304196830763140268957300290838575064740878688747162486452982219409569195650682386715211955153578008141222136363062043088526487974018953448349975562961609145296839805527733894997420765501597351762925094303723321881623320737950966883944368440425942947071118082877149619158956595832265069622718971473272137507462063997878507144156614152082569287037270327484791606139989311084773128132429611637556207461318438031319691400493312603467370569609614846654520018064627959632727597376129843477184335617845866026257246391543780428805258309332734343524036990111808398583115776528615773521842157475840180932490427077756170302493743551153752164992520734100617562947666051796353051509963883014097763241523965933341481620673649247883996006739499027722322797996999380197828953633197570051515329892040905616763782954494587891283454119934130582118733361718246642275859660789433271676260103357372944300653171230916280290066356992023432090695090213013611463464393951559815292906899730892017448507515616020417673635831383016344646298910662384078220172796344865011377775101357159840432673469495853955480406625629808036048316081450980774500279051349058661203289281380977384562080620116602152890526217056079963418049900215915938115232543513849847684545224849409266309654655648707856411732359825610810200792392896089084154120582464749166224062559864894224846010097518614608896230804301700491572251664964743024983705669746419677929657844455429256572798277859883813464754879405762595584519904833358154537133229706138512061536693188255838321830508447437176770790343722854248082163601943777564293929408917477061376093707908475387291587165622732670749457553131075772898775460439756165363856172776247840976682240623576466478762542213458253370315576352505087327167796837223447451238081705508777823109261268522525122229293272319276468400454248784299082081449116020749453870713203059796226583453211899023553086971769548340388634179903181929267415863892643647433384385786746287385277048025760561012549466732816707442799535219564209299564656747867073672683925914306937203365381944104723464532310179223945674671591931692086054423432847749702774291882007537866358467921811211591056467075067322267301318511531816899474375653286002255378665084984309258598799494902005209134698016807294458716722081987037615638853823666442128686816878987888751914196901741884550206059564983840946042594117870064636181567412210281730037729071381761788676145058567299942034192534001177172675176221675745965833017659323905126885001490228253033577474762128321058271364189914243755883798794554735161555777348770869746366754198361396612216134904306106688457311010994934174602320190158951221262788550869368209057380622466776542799287279655393001650617636037552483147959898021838951140671567273070344666262695100581456222414523624787265946552589640992289152650928767052117450686698653064076438250264421543158726837974949355203493287669901141959886794014584220084270579304261796179911831426852501595030152896597821820924540886919579312129455668785991523270450221368566645895957498559906402857723466350273978740336045465371041322210350569480074533809530878929884060822786796326575415813187366281021868959582923469624400134716850867676177636084268503902889654188397196966469551056317055284884022550919863971056660604980543919818907714459872014971383714602981952695694614714264826478936048806099325449361337857945111512888508862215526801601555369395002550505491358671248160230824563892820069893249875651826045557032541409271804353379266286251773275237718881330822807919228318157537193366670660994378819547936678941654487761391400566159986921742675752056934183003412698471822116025992550829653431841542958994149123279240428568625252758655830382147777435332845836682977014402031925386657208030008799887040522943136476509867770983610396603061515591240164533265955337415416372860749650794682277627931504653355422666161531038667460770548761396845866624820164378039012011594157007400753776724382341096006555573808225690712917764690386668310525002710595941005217514188185013632518921495792756926766605209470277390122897295434340488771144717549683270461051486014025031513685648690473995747325845329744619694202979743169184485711879040399693852048487303617530907100058168149365890273383299751081461255846976572759310543479490311390945589913534032791769528467997312105237435891284348908145629283487176606876377251011986800368118203052095524621990873460791601058945882680623148491671138770294866255173065563078564755048038464484668057677772881462070480440002484610698046133673018716837274541451093564662412284546487607724249906576572447533953954860207850593909374033533415547167735829179168042715854382492708189248183215954040175533269729190013034401956472263853399532150233183266529718507591813063711993186806242650714514560668761417902679421806201127280124962785479867749867884350778596955924970912108074431539981636658941221325574069638493987527046306399052825215515904775042456395973257100245961618450818878638334681042349516463804119249713663286220592372431876820870751530564174603183718351488442702368303183255596545606745124233787803303584683513225840350432501633149693784444333335476320796978307232855072156950346190491936352128630437373170991721593154665118368328971207256440833574242331475936541688730570232591532671219878412632315431276153084245304753818317041807802046546070089674307122470455756622435952712613365967763764120226250606305325727282211992153783220658919765919473338568903356690760763468265585037650176030409274588997220664211575944543601046804692626007351663428488620456854102416555311673666651636100614828187070186510878505695749476301341152045785125069525930861687141527608245898471497586271215766739083124862128844172898164071095158966465972147351488938681621599044380016408870421159651564187459281922051194150447311462057713826978461129176008374420606162894011226128847046972232611509198727793316586067808681896754481794229030686319229186713065503238684607354420331573597620840425845928483258775296621041417014669108244649396442458224845001211920080773819920396858486706712719862145245399435991256562105572393408526942919484141207496593898237989824927093939082408040306905510163828322499769824836586169041802620586017916649988039979434837150137501434757847313648256165209151426873554016483637786157746481010939768962375618833397692617578424366421102864949471120981426557097742065580834056425075204185984466154039654294116865093932492541049108580089139133171595824143860236990425029686856179433003306816887893838523866696749384355733411907096498504277117740066558714294082859940956234166364407911577515467302904723751663447916417032545582245542128376089742390949096760349850209400253061877897295000026869585044617809135883503694673849152000878958002502945233424752605570418262238660361669993390955868254668198567249058011369504096379940097929848344511608267725001540197602215564955944787166377388138046054935708406758530252742644228983939453113878857339188186900082057311276350355889322300063729779436080097429597318404044990598253307285060512641562518381109402866666331705878441474973441055107947788708661691037660633772503729258057739110861813544356064724866761971106381314402045943874846484193204978634378477840840017531050979684600276109507577106344778791645045980866824079098049468487425556410243687156985117044751190498216159856822303538738766565851601703594197373715052327357852271646898233422521155737150237991224235635033184999344408156454941807286914237666336040412788364884509961707127397847070648184543036151713996699618295087500072876083357967182450333006206540324743479318193748337077445731933837202607098429368599426638822772099473909233322392809425422533590489024450826688769146783648751871405995007548473802586301390291866103805085372008728714814069236642826965183560160159860232875952821465641364262856158955279943836386396966551046357974696881044741761433227256735498051705418103291680010461874866158427745196441549972230102743463392964531806781457732198472316393775695369117741098068829555924425209939947438599811375187970316666149225944487921798488901170586379941811052073279706602524212750340550661522572745089491743181195278328321070054058550566453342194514309475516474729895468776791217923190032657423718353142722350327365246528257397167621660243337062990783985845773102615974730154123117355501860793215720746026930257699306979098783785686945586475720504934400860516449530304470996523477358155992048882878552580337762129903391645157084952822145291587693004336962866820445460138116582096206101693434586055460240357160488500263326301810648998174696930100721283177315235477039743916592503148271880587975437037078676864469212566890498263987850245213083521736391020359459145448166393755259189521364707952785281753165123583648458979037969026587665737249127636533117082243773528727290037387902537337313289171839986949800175295073443218933105069704789581760343489019148264093453307985754804771365033958336583915496088216696503442575636765623072304167143039166750947566820151122726754100312061361422962187088226865514636496838306111073957239958103203590779504285085324081152975422866765342868047855639932698199807392866995931168657123146293257409483036585278248013035777701543569586977547767757786131778111471370920651755309485177564652727457325094204522059312751057418318573589405798146483057152631612944738476919496754635253334591972719966821548786577756217937121036772368919270489749458990392550810268733645137413749767605502240081570401526445709973052168243805624434443510780572024702768715072548424745916871729256703467332984444361322717063910011259981207692964665991590613792948608184613230892008281537851305366704580117007243903811169651722148393074970319439196642380484741255481147248773920485785614219015236574455925643624513332827406525467568197429644676662297783736125090139081797098904467253247913003532410710849168860323763442627243166135875742609046181322707740360987187775786201879863836688822150777360159625638607516506931587122428901613100070893582900802222760672874699481626626690042913186572252870357358463379245983121262983495746669023746791988473477180946293621440160632166782133171694373364089698015099549794957530069741047215848952764327868995802792063168844836360040793989181429108049428132483169339355975289441680017570985181246212733270432496507043035651859476023415241399652086216690739564242091941574127140259284761581735002324433727904369322984648037730333615656797555278322795068919494397542287031961055870995054727832516397191780933406542033507608360703146385998713736419720028305005243485347916227765015857066427664475204915580789634653996787992984859713049565603470063069726104039311868943094384081820914946941350082791302862217569470062054108314498534046128380334676620327317739199812893493056245367950107433314864875253663791172524191605708820105916287918537111145834039776489336378129423038078476850632267905658448508786044296244619795944729601844622392395369302177897911064662283498737812517812387242443766726266312013268575500277526899094791805393828821494805203098854434125441689534419895287358194005633850677651662509078498393966075765231364394696383492300767639557978624349587740172942756642489807498484182494177002971102585589937381135799003445629214095388801188498331498158755458228272301730029627752842894506618211223453648876156433568095111681755576505225365547334921942800783052141646542558107091668173635994412425748658239814065941169504949507389010489439822273572905389674596635173789157944058831552348781993093897602147759462497055492811738654600727258194935952277170853983213903066625592134729518216475383910689194196596617964358994725928466934295327604207664820220974043815848156207890128758965324955956177852758533417321641559244640445862927049557876575662057134302108900360344401614718814782275108400899589179098322175207288384330778547834269510402711808011268209178953784591937089864676971206254088437293029953413474036488028208681352795906514368874610335948137962146997584335385806836472118154120180504240147058810048661584705517712786217143249548598977772764790809403734304697242729946362361072798092067400070020057930083652942446342508390088735985548974826272264460055691889951603044666761283698711802085448376274607698441536451422219597540994334046757413589787145312881552356209613726568033072791805050001833992309414237617744158327288458675959726060801176201466646760100757786214752188843383444408140765616322255710145225220060991737047491794756232186875295189323494969769053063059616398947531048724165859710748488169080673749267388009013288309281474822279303971476227127715379034367629410251417334592043777026526571375086362127739151408481524711842905362824343269410353543445509827872281424679951209144615985767072655292192557447614658067419435731688665019965716192664332504597170658369181996721791766353259461111848875402643273466970183194579059908294194315609564765368605129223902616326209684489508041143829348573462571049130541918300919294879821813795753310752819104003869663184347573453376629040284328401361605575351506141327169410104043231885672117315707046487138452883462010037812914421343782363793483392504061081318015821648679581220179979390019708283326792388377378329601998563261217843252190159334783587278446209725643235680193243260252465930921443803714774011295974583138482401532686336230852036562395518118574880254565255422517523074392840624006838164782286890764373616176327473664815641269827782753533936535672256968402582182935469497180624057733674395774010530662084874360683457020599522366780132784597710033654564020240252191743507576532696254448036160926986907872027032251338306105554832364411117424003775909507657943306498436492950328217545525502861499310287873886637143838943162116597645818672450820604185108324204456009274212822318666356649500101552718625403352368514509012041374188967834376678861580285324175226158216524272994090744998813400087752673352429939861836886367707762677890051955425825584842829515777348681417615238383485170347638834971216674296082964092445672474289400301273211874255952130030332348919699068532753023288565143002087133728325668059832459651252789574523850768324430749033414341529306353631666293362005153891720025644108142786747308919381700496656525576829376174154865312933587215248366596003818283076236841121045495477125038951455091267457567873408198749981095974196256105640289766709610600749576289246601874803389090061090394032383871596832968005005498242651283712782142307555820145241830361701293999294705677297698915171969980556374526893983455008059384827786944443032969475224654984599528514298796952621997317939762718684898157147212775780605422475321243100343978045457389573014873975834633833630659997597724939011554331673833480085447132303442901201376795723114727051504490924257153891202538841278396839366785264303184210591966893567098049525981943595243230468002247114896650953360880793554532564443311310882253617804805414878241221297624231670631417506004905512369559577954386420279983447656693831084297808464138866208559500791774599083735210957088088435630515815437711964481744245822787763471707080154918455557992778079973100013881058394485813617335895649421179004127825205421605973888820892847102317969494957857352479462872715355958012304446777309843513408351001221315537178655817166999797355980235356681255263637449569822612977236460289497760097559721176544738601239836246972977572296671459454767589826246121879738413648436542353048035224553279419708650627442094759729743511711737898408345867075883160492997806289390055760851094097432411703715892916606958500799993202106761353605918288243474051878893297733991633804240891196810051249837562543925742965558775309250232789630568729355704807923317305192130011866049861892690999943220168962483333493944424815411744001819555023081090657843351880866705114435378335117091409996261038530735281023497107801874113583075509331044377674545164268845103740146938432963243934471003018036928150995773013409494481580243902880421211082707730367759259436619814292073827586578417336880377871439542116414993458385456872049974995067673504128988884933477298811429907906865395759797071002397788973422118370679932928850849580210535606611206796622806216614153543619707882616001692060631052064956305846329131997365970374740097760410849896568767010567662409698604508331300850324098083361170171721603900536569502658964996287088391357108734205113882051477736876948708152189489533821853566209002727918537290170547249986937019719442756660110652396159200709686579817058799178457592116791412027122389111634710591787498899641972793002442592223466392731311096049384645940825623336500641491635306522608251728561937619700744102257090657398225348632153062864716449849866444421395428150375378654635914898967319982648039872769710916359742288278814474237524662539136791399777223796458150822921952294081533868150164293094846620572481110184607017130671228181720809028297957365163580484140494226532562105886420637450080602371328664824414952866958068192792969718017849490951620189614056127297533014780284623261991017713496793660217536359090878487856595957301609166132791243305084432842641671240560365383103573760069774640375307163851179384987874796463616231327939452756026416203197123370226591953790002519203797213176196069354612248465024811200163802394331696438116562296803904820886047594209541961421574438734503864805559631341496636656766411195439447427136363183986023476758394981637193315664867923651437624815834472366111289146999543667691382283917375588352707913748430678640022928013281674801232869226800179425081103391133444240856016819775574213890291160886090065553403055307154734642998761737296737931169769801912538489874974205024937186500494676526253157979967344032698852715380351770113358889371865925353257136150592536653512564838300197310728427823953713336383424472837132030111663989369718272252356193282788905330795848267564659418480677798291388624052817698977255472846692918532074985318939725161592799810955270276586426249365805480168255220612549875803214718311996724646309100786410336666001327963537071069500045043824569771411894508829558177500640729501189861307237079157823771655876960220296580284402436827864237799726755531658468181041282528846460688120476006335957669231817872716663989143591413826498365280357180157550241996777443192164656460633790947299251834574702051516975919997350734306065457463195642731823239307667594015599396792552878794305908852967549708523134562488901731445244107719614078216647909518434157355861549216528519687048432686590453981472843895209887760130976424734276042435469230324124724550073374604345752554569817171781182855340470781233351695375398070556739279411633565427726410534658287999787681321054805639651972510497149454361684122458261961186619148287937465626622795463360945521968961965259634409420317087310739219487676927128049906701987304691637761825737245923500975000995225123475430232802782893082152316896879557839744580392565849953315071623733156108710006736990869403914694438246238974289865983908475049639889487670929461455414550399381200587115730898215631850574630106771043720451223007983723695894663005958151676172701038989395787342065267768485353550490775433158533655764518304411681405189191232592335412565185263613068083302109231407439470855450107651292941430742917854093020235644003994064047408319691451317925885245819364910568474273069242723992231864983347613403332185940683040305937992362085715803132706698614541501079498393844982839134030368763416497146573344509326251544029386913875375545470405699605863194970276808010163909944125831566353170512191693950272395411245674090133412625023732908872530396536911513329877238760969857525675450568628889291566591859762653170071599543108965412866868394827660554818743988784835874064950744863023242685822513077156332321660792646917523015097757883893009982682714619634948563619024714468199682232691877937179001966313734644863375196429174273393865389335092540056126934344220731707915800206655755966039994823875463065330301353029831570006619688240482594986860555303184993604713360811753090793575433655203946208001434920190537645989267850157874360925621107056335441836810028948613637613914186941608570051983668562558402020657356744549193851846553594560530261885539252611233995807272306856073974264800745369117048289752443115261216538072843252463799169718126131776456086065944813262826123256539210665985855777214366896922276477659356275372126394110423446299022703407915587451802181954765903516755901643371252798928038115892046290607184835976355739968116945880270674876037872997887003558411614536901424319026076990124720570755547427571229546343449217954816519791508072424716738703745432084445354021385164007953668851249360097471577395733783173046472333556314590608004011703259050656475001410916315624564753215172429447021948201776088750403155688745809936708933955105309714587018843627418167536379219528174992695903674480455940977463688106719006734580149818471416031811617540109348159316867181753568899203984385031231554790089016667766715493213760964780850620998251170521407737570298461035425781975506607532144853352529702912516408359213490889040829411476429111861345968959574713214955718969484216819186624582033332506601640343211840683518958241437676211085917808767623961022371300158153226776733878011057920107775184218030213489177736974018783189734481412515562489074610033580869791097874806534682900151900465322785142689234583800088934680846229807878347385789963493805647226346345068095547863248229482793287230268961931861750482920959619410772877348076835515613275533440764708498929754184253025456032707054989984480573071339955797683990475418077917380832694282284509354836477798249680181357197145740981174336259851899232772622156730754639997138814067824106460067578488700718743799188013338148079605363823698751447923906627636760262866939943678763396950821059869139740478952899815117780248927588926854847965149446419675556654538159916757127497579696123219799784928725209118318327179927833591424910822593176229339653571454276501824923292274648624398059725767113969734847176235331294733576804325195793934187602883855967070362713204185982136907795351529302027892800004386153324870920689046401369369266904055019142772895356321791838496220366040281789026030838636477864747128206105903606955239562876737634324618667266591498750692810133115193260111317819201970061234548471792184128577387171368868226742106899371545459121459791477832643601035381188676561128354666804414443623273128059237966536502255481622840912068111068478493664536762358602482841413483496366501387469394787401564399670820177458753514784722154081273408136216214930436885302153371236124660433372634561226983217166196832039688379920678568962957126229697789529208746707954659009614380165616386022775934223675621003049139402600040639582927963292414699404566163479067247949724088349036887973921490178225320213196979816098153329731293518776130246406546225430003083125623810733051727673282765823339127901058759515503516301082781449656011855847796793148483306772644751066788031963870275260078200649856817492333184990371683309909350593663795592572771264406372704921662554898107605961353244078526080439764420790489259337814598011435789586677756367125565573532952031561064083917634826628148155939948310919904790387323422256188795504639350612448358501126932913333771716228036342477681776119288951817101928734613546782734533750873714046149208680036179027497385732164326833353680190726419912220611820899749940636008531455875638116939316140167373463458358394722015721501883555582190893565183037938914748137075271377270739318136281863242145345468420330526047399669904304178512187711102842909525629760122201663041519184547108783258455000627355127667503912028934076840849332840189460117813928773841199787773787773598807397543922237288945560221712405900852943781565365978451100399895655935532918516316706424080254545841451106664465645796931286849564147836485917847916238799558863935421382820566449080055417520720733066935145726955358426352238272403866512195519410665275772540923545952620371612070759867400211815198681035851098327349427681821174964630457030079716231715389767175990586099092725407744280162929208917390072089018652915574130395023660358998389970384050329194397976854969265763130224220346502511374238858248508122717612107705537508730406550437782412529629610076423939136097958279255886787186606467915671715346631795381387031453044459661402736857709804188151541225903916053016357151182320588923376870940833941880080908061525011888617271696521013576901323153156750289956474192814962018372877974928748193397872717664391801421609646230753115287153451760581261806962325098277066705975456855194522477096563834703634689307749706033941427665682327347032703296216849508457576862442493393151151355231513374451667159943389242725964120246171229264200097015544989642679098577462106400177142132575710071421593900590821940688182862875565964993116451349084843708354627582898811863078463340065799734389557181129149086973124323399256969797862747370675072352792953399597177653084909517189985289056907157207523059190138523817129972164977869863150294647587900425274854199817730618247318361991813357507996084455229144663142686301092938881142639082861318528892035191281542971955574090199230564886998560908126158261348472981046375685192306704840105032344112847598407184193206839379793382758156027131590019052065571998235036530236675616426832620181586352566576702443820938349548262540032013558312906743414984955183384308779810669806358913092388894913185555029866029552138947631886855849548095492152170147195024992037520096747539156512342819653222396966017638634512064593140439170071725755084509550378536099171895786718499543090139571132340827192436335325469501721446113906720491192687984175799378665134815944588306633482614618284538546236499922891054087909525105033878683891086298945858075126657462525177486705783986957128866734326069047021520869397950877435349258013816983882061983842507910937043318138551817296825028324676523997165549191797767956162310078477897578789611615942671317708769887377105474474795503863141167280436685024483471110683875432744413506891281525765985088766037964631865521838862617786700636593706508310816157923396489957849983171043309590597675619426311563209928659237544278680871135986760781894904531153595674459365865311700856416286699690652837558616902370347330823252673122725471197182962702394260348778453789092437255579758152895439291659013378051771435170531572058714250728075366037192349707733164215438563656379065236613002525086266924952746492085649502089280308248386150973836273389712247687546622693455803925300805995652521395358753388238831314487359146178652013476641076309445601803603739574827804664394334277391178353562330340420058670338499446591062799001235947458406004279237578473053298847793663753409082780451666783569045751877206193566224877543228342645898990677725901060924467692421845047871859663892904193873671020244751730938720651237042818241327615326174395361750639686140216984098828987941527250441093749688530448096698155648690046054480940012790471803426851382230638649918203873439039860169762647401777693701800884073069489822874065255191839595444136630982197382338464881624807213078439633669930030992420056865858971586390802336430865449677104883706066182155673603890720420301831052640114961210184381458972721958821879650703616292300109713905030143995831647131921352806330207875866545835558858966833190189098270813667688708866543233672564196404787094715205055484273025941613313382824872363421388340205414344576280030341232916331432466471175954542968194583724057678625617490625387139081863127929268189692354834583154285286559585968942506765215739770890874857248816893354136072577752868366959185496424308185600098691905293728157953372510580925719733141648880804376978403545325085469361586593021309203484129697779685563158100908556215547574002330112168076807375004707938272557355363569382390169806447611735718534230558564380866382352401648320273193296813848673681522556103263962623883724577546896942920099557825304311134244383900978888898803033834485412478129335085905724082833580802896335893706639602077576860416129190237894785770132453354851339505981772927317130801003714385297830948872071369661552952385295899689072303875852019067603472338990451765243617427229237871978971639351823980470754016709410984091778012231108186547962526257823730453517787670988404412397891799236038828640171358646116818225652352553497136285659944353440290311537459545254187988005160828774629942682297103371977799805520459752758554168967413142198233320018992464006694576091238595768125327632775444646342639611415446662844894225859503093204094429197458162790432801352960851048347915367546653327210577493883504974006417974264196198161501990779788870939320201150059636807575025214039914670504666753731096642657718186441054520739180047377622868532794597861919599536055580642898495262873191101709364910030915037546982050485357149964333420632150679385275752256646778773144250139553853417239036630439361442986149990034435509389707906621399153422140928884040733316600541198561268206636670689346774179619858065603706045012222065166569850639787784776053837762878228723710461446416436502517924048124384698611990907636990285400997104033466996039689796753172503991425001513704616166120270119757190671549970980578971680469238998004250179312944935092894238015619655410928220271230178918339895571854128882232579445715732678106366254321995082779565182259766364721297847214064980467217546936561689953516353986785092996364335003279220277028692267146410188782381755504628013319824307267285277120168769853944936603748475433575602455672410841471838898547727904854049932720571566311915337321417785304678645697707271770101422401086478603004872718193298881134257154766609654650344447789748152012691295645169421237009472490825038532972249030311899007110199290042307809222874033350953469037752320470238383965657622972872370205401220131216479339873368707107379129648924131334878125844237180967428180037723484067404332150170558804707639251640208195968233791488321597186874749156103451142129551480191843385333988608157781553491138728046300060479587334601464287197624664424910210301236326713356879225971052706962990352448409936905583081165873582559800814155059580041556949782503640070691623324851673824284722882762591344113573135075355944332040233871395697181010544433388032265294099503524801017486781161474333117896310952605848747416956547344715599530410645858794373695761308710529228523494207330686564258730768203174629906244205643555868239567798843328499252839892790726945857183405781611444702233722138773912506033765749546790642870819354672498838478525829582244194692810953558636817412462863119917848346297468300283901479794753018146934239807664815166738374463478521245138074775206250772744428127880096177159636802329521976405449850420267486131530003253117962401431488087025662474307623304937145558140045167547629777692987465405837260496912790174081031179796972811718534050219347037605801227242724189338006287309423750333612735761716491636785985007185670545672429504049229371267556342630241098043557540609904804472231693370451260202363539682604120585410292551538253176910499332299460840779329067916580830969639922920660987674907352365362178934562819459930348869608374873484937921533714562565641344524676828805293671212999899845194130520420267960484555381888941763899318871542993919575916812194924026150541249492254721846241505251264034551424902319609631577058667207338146321143863837291449694250540592289926203840401435374056626303781019473011807712395857444369551627767084190527214679034118768937878007746461630032073149189642562646477854066265474626740631115395488990342829120577051245893599442960394666025498365260915398972393212504478666424247171206071936151636018246075481364313274106000814617838526040127445755157675731763227691088449079654180826868341785842000669924782661917741729196846327852839696416373487310788574825739180655114128424984103932570735682076947274790670655314042350256718448157923937720380968800667484907203908893340360319822226525639877544543036152764504113454706717100376008906223379950134918537457459409326610727392264242757208606518954464660613136094746622743806496548806551065405922057242863719784186336008842591529339522696148939775829163187178818312066992635015756670817258679354257584678603023264005063552201641952622343516895662625117152531884156920938756164260417770487161883006718246779049462844212732616088659412703047340533255842967383413483383875801165332296738942141792625007019359052860138508920777323756177598187417311171904794662786058499921184199027818621014770129380025542454498273542451469058404500970890153843292144566990968514517418351602387581144950182215769930441628505834433668027731104505720005272431870798144017971336836254237254741449276898141885459089986128996492403985555072690303126848788018534944025795598844742046102123301417743631086260946132030917796397112513206026999227374089408681057054256782119491782620771978077378335542592229883869487080321794296308175775718385057411145375819913956070080003763978564935041333460840250603668574750940533490615692503139861222785583864780834434013640631713736835954453744202902796323211296082235117648057615135648351115837911074232271298137730450277964765362901051629346445613282192148288829483138598190930817876311589786468976387364848773984171273105834214724227476606793209141379900125691393919434883280320378118378159411570476547192478295698388475103150616453049274939128835691030225007762125963264847278459283633590108072251725431208050054314257071754684054067380256781959804315467065871306643358115603871630514039641968918452132666296021551153272652229868051776898502432294774916749688100109062078986495284284657271690228620716842875630901219165538000756215467460431979727924703169224604696449860199774457531123695670916373425957256419579757304181351551403885084126726650240432226307212144275759453744684095316437650451529242352427311446493505520991841714501085505631392962150622633791859029710790543190430857912128431193153253554117096295976742751438861005647674532660828873848880023530414951524818279820650026056975369722374721942862591729810007168996432606163872192323019196816740031136960623590931682370499519166087085674000239283068744117861536469076954397247793285483878303055786115896502092581662207824377670015431789401638729983997015738770065886880839574817978064276471946359704795610345140151187436027424417165753780060818088834794755670770348551090520078410491036222280483239351088478908426674822561302164524085755663968904276596928031081200327606328821004901575874280335754726539366646419219740220278544010959391969382423778968952697438876435755335409871587646337742045618524848577936641125751320480783876156064351044059628795806062125810089063439566012220168858343601388263766800742094677374278919614223507100989468195921180122590251297179358859105364692832905973789088241266671523842258266601280803692876120411799604360107888046046040582601704868378547127345584023846483786493906390659204391230139335299325405032656405507128010390691780823791848352857708897832105702539723031237083750260612579449935356048012457143285150644886072561893867321469425943162209310809220854437948520369943975590863163882854301578347917010245492779356370325760343912603792584810503180902387721519575061003673037817509875110616174933505472848675128671011045354289367965660230297099340932959733869588128346548592833757270079168782309577325980283998943087746542838659368601780788443905037995988067216721010574700259924339740388349953672852731899583766382608008443685979575513931540747292243932821500585077814958789493803806206076887044282858745653506886788829289243128873441442213148171823412308893900920693662055523849660151954567847682610971089715859778962773732438227697408037741357176407103277566707590717399544237792229305845342248516867464035139123353102066481286635575072456362558918581338221137518107332031652241093942453157896244341197013539765342329022630080493045211615449675303495537950438136569395534252662900153658997596072868776083498482590709188700646900270393202431349340668007223509243970002182917500714244896396396076929236808632098971451236560565126349568851964080502545485833920412643371417592834507729357531320852415962558683494338259485581954991968154314454105756514899547834938459632128183828915289297270697578819099175582336889487306770724842931322987558475979540289909357618679141749874876467546530679416400793143709404953330960117198158126065183769738895242757916898635718586459435640255849850731658484834874466437050524708251830615803953782614270387066358688374176211216114996358187778486228561423072412019690747509682561518566984093501191695393776046342800793925902947325701707984672562075843910212296531912397102202062481012029535818600504624468045189630226747408015851500382189424264331604433758138861773773516957960327263947427462526522591452571462218408545019602756425696214916885064939198079077554562668003200065291471296961457625169363758087418132342623287712053880019061052145794612595659762723087464715893706373105211384146737120106804445115822992495355473705870102621985964984547727955888486238972299350818933354043984748287229143114444841310767879627091311354770268898671183483130286522757707058435204396963432397318028338724586126607180984598257336606795147698616983809400428071624612667549728731404259160064976149067528746233054117129298959536702227775337938654214913614945391522830778187378017804732911177604533173967286584078888449316923862385462309342614961000300410304320204848109449970134365651754721342262343263332333527844594541355221344653177884391232528210924095085186037913225902191907868350028998768708814457320387805567920201997019894687743596167217551792029815462818171296208390189124920115821282747540711720148776208490073807557365662836883833109471945603920599424691614098607739171171368995035316189935607946263429389628139265597714287831894156033296270865541334632987369673999374741131993670931626245151043247413827374126460774460323647587409372277446972199541063710734209639719794995265230828435946724891516081192189916525778587434050417279144076324864535651099262770266900553821300730104066950304998725383418955312121593051559936119207068930211123032692194950321572251515074861000058336838760807808010747598041941066071920237412533341508375959968374876730041553241467338757704185495218214222701943299691838693700698453261563043695425528248924221600935196715025157462962661799932679978362446403895582415632721768965998722010657514280971081826190736175624661124785877665354568363932831262624688292364025186392925609757397126787749957676579107741038619302437585905698083555829761536524420676001952577004246369007136023291042887649319589606107875800029031045636985817008059317621248243163295203295472545836141013557110066530536310120788975215627376656663279570676185920977498186132356857552115408017308473439363733772938852148243240164695557999337669572117731042983906311569490301563679127511868026345603311875448245058831149265026901463242037022752645908054583283321845229357172879617154713711480840782712867559575072615541564390987748302202995757743658405790383124677141478939959046311923955587851225020736157537201559920361992588146998358905904315433431634859511520516138433578560111093859867255558667370722052813366247300994219170206260668863251723373165340423617874032542279489297232949707011972177632606611509629437808512614913875833942625715959924992869020386814195233405417302879969920835295655425780478795201854115222868412583798833330338657444413874503074162425545350200035304209594948353390731164198975676911226740880298428023455257912426730814236989631413065266766843131616119611332091150670357191613074634658891527506414814292795638834706190848236152622722768089564692783172865588922459282475527576530079110295143205380988279020411479300031497171251735508554028085945074704483758509086294201338359857640250220522392560316112733375032568720195700333505541331276310777580967802311868768879888488419852403653143752509610944510577943817954881405486461992242102997590849300558092253368138799952475241593824607604523188331474762288485448832085372844267613561230515607941143325366619423374852939558288750088116784963077730534401464757486483688800903117430118346463010847008868150055311427679366224439427117680213908264211497061257451911984891206154494176217898182484433907087880945045175471812128113801496263518404710358259183594017653353903612906171123107631423259630678961034401136105976138171667864465657230062391313825354138634471374368562793798024757354921009431525646370058007520157728137123085248330034135851145804025495979895267096534908206267743002232810863365391066821386712818031533114602816333206946983583419957585878709041559972654715841674426243314009126468018058736297822767561866082144046460042057620627777131667405141647451763109222548525101635581318393154594334637463062255036850801608148391610067893427391377245890224015991459619880535857524451349410359967200073797726807590695499447910733599050577306441962995920126927114026234578941962766159504911397927867093703698302514022649052322568124914025209127090700851873024801110565013423722943387008410042726129070842591177770636242108914000136843750175340141450552434851999041966292051561634055454408862442082798351105412464662536201467697090757728730856590803345677550474578928485412137384255257074519190399237323084257506037162339551261387130194034356725394062713114449720225797739421266389237383806989542218544357977668419465716441747026398339725178687102134501706769969883810645933789927060196613904900851903715058203668917003732151756821615897163140804203878163628628766209270088687726758143682444142533988877180484708480197078199617977313891560606916520625568650861151587572646693936738377603259631303548720692396294848184281031538845306068885757696391355357529698040571172051647140475940468625724532373392299264153162525103790192396103004139943834478224266551371661646529114461295018476499421504935805221604612744720534142143459463060517541709845646772572223899291283545682945056280849135077187013054286901968233058836588121343210346189079154734884746489704625638714113521964359538305195401192440060000689159302670751611714883763704926409606708092254073705300784138974818957325675170886097402126319547800631464488856612884566067554503394903347585385199940026141963185019323119003511432707508581325985069957794603887623389357995490788889029424205630684369634154154248301732070578441598985238431563489781802911120244191807250762215451828404692242626215161712136302556217699699763341766436313453323440816673407959611754127174990062440159572501532677237592508292161351392463122222241148321143836609060830502412036510491682856044137996878169322719746774362462357932853650009376411821695975791445261696965777438901737394704711599306970719213235019411286121477724120508841154635194118685833673326171871292969633899657080258283001821808020774856192289012961444379956666284926253204149899714124623808918422684515424169412673589273374273437651206379281451137737204295170863810998440633255050748544985727660867821644302449676664322423945383544845353250835466429940609268150731049926026367345983990341507334022445029373369545708549759090269705038261342590178096036260446189695168789506189507951254060373517504464848725398925002270960217757526619097112113212975179361455544246138282539241699463502963036073253743451542661779428007503271884523113326741697783544769706348978366070249974188170036271418462241201632010456270730396180776222163468144128624723977681609008492655161343299395743486692030071779694872889714481532572029752436733852140738268767380518989920930802911088501132267895119952499149692871595353368460780987535598439787397561526243664997163670292940485287304810229810534650103876563310730052092761580524757947795190208132805804904151160762699336543802540000105334711713934188734573003859244731623505215214914946077446701733799096145704512601883265400794847483554704704930736936127073662474553888007970152771952495022609818158528331881114301385648658769633708763685690605039024836419573142729528989419715314249321584840443978088926181636641755586172791972750372309438629623477260422580351264065893083848340840828055708819541037312270203261924881080889050898631442493079654595256850981292064248317409768208258371213085394908154805922051367515130964166998328756194394217926269286743685578468260062618233965646871007922663861283083302412655437050581502836894373191029378800868401645708285302524583011666793467450452082520593730407327664623479910510597115484293229207934799448036934532604399546374879680180245553537565224403962795940820485634458015585578342260566558714919723975111796969989712563328439841292418625552873900179075504093730768504640474731455194931093292680997904352718775858560928334795858306979355204904582055534575217497316342294245759044816374107246896938181472259545421558858068588220972973172702390609512457595035258996584899118349209513543119565924151278822427369971221113530324417305652534009615378899168993219017851443224080208858711690317347092284106069611427634940620134610076850495593829695220728964688201828615388338701336758689338102049906650888627505710972248070554055135266417451080980184792048229892627319832358749663010633973656539024302425664167317259591215985068038236849280215358435104775661731650385311672675440200100309474044622704779708483520979943646009796253538939375775140198513207856411270871003412223575868135758500103472793954894970834763053927355091245906319356853564817583252665522784473603514572632236001394981296899614597376296696121248960683793201016130198900532533941872091441353162099405018297905501778470167572404430726238866294345018418066673710479662901722093405386941928915879659994877260385108022803771317429254008376938340794934196258621960631637420913883693633720160900346855468274583802360803461206886406519857843376685304423419528350152669796230930000827345222430986958608375773440913655039504411884383821658106246899343982117061893353107493563088476297429955612834559050217429255556456026436766479057017694728660220038151194934005547887956396491264740522632354057877720370258084627945211490762426593072658359830977506603594733003275031740557937499493075948358668688037626964087910510570204722967194441888563867685284307452342140893196580128152768106659951522873499705387679582780920667268654751166611869067855768678577305436311940871836140974142353992322914607266165832610810988521628945563755617018156155271236035309467301938919893664309438442544521241574222135381388717503251377751139402067982798196730620660331850637436263956390841565688623153826912427307229334087184989006588741768298808755501946691586844227656441302720642492733442428385131031598568026131583662383673814868101802851959706451456324742050433515216543412745090981069497946182934122290851891809638036328256410731525904219496097731652366522316516129103527731513696621051404177783216022184869100106081745909589706000342165474377306137834948539231128855641652225497918887854460271250879013389156332155242682057835126809980180402600880361542380508276096492061637884460848531977437696165770139994653326597725861164399675282881596445051528056283663609106163877619999526324834538209385675855962439357715568310728690486221804149671151493398057407875629958795760842220385376229879486664510436667644481041940720048047688262510973320203179186709980931864645770391919934995165903695534803495570584152691591910137731258915781782683490632609706069886025853763943226652798398625453572601038566294462897978951593966814883144788240335139562754269582847435126558258733305620562639955997931625836812406949669400726072317664979458946270750712527428539227716208813841818301013537462263722419673715779337503011268528819025606463383595823005951878997630967926249779627392714578906095201598828451191382121130032425903183766756198302890160062636614089657369416712937044033709395733687383236289605105696409655971529988620719984728918454626766048045745665316758168530114872700981882762303346920259621020655280637844299909449225416495084506022246493216286474078060221416653658605402158889639396747654040800079949652387659623431435884643400734933966845555058708311902239548778762220847670363360247611321253990734276025712432183572513989985152507164733110438364381967034148281820949334874989358875899916317718448548454319467844929162156662807185093867532778370033760728624184435249480263158971381621947799664142576841811497067402569261050660397557605892219226829588960310007566774339988529375709562899295119922593528153283325511869422714252319188271153154320517659953746041028220803167639073590348465595894972285484930507125147908271814579971798878485005846755593833448418329292534841228061081949080494908182757306355178629510814311918416932952173003862291612245120033459877243976396683863376752539866511012614052026780673296672350365465592065019263613974590682159296493746904385080451943998139414179532631909373765508017975716524772982767578306056627242732144626218525908137721956695210965683992061836983601369910723011429143655211862727069143541061102773839158645527825621729731020135564918070737689582103109298379227448477282484601025968417400203903834682724578495846794139656298287766211221188888212622253010294256891122457338537922864140665079920603939669460637544662403664241319795842877457614190761777694089795884812826806730064988063673138648893684420088446981579015508411708015087147812456445665289534573811030507543212566330382781569928878990687253592156173920532373023249388357979503788182358736619219464025826076505419527085013289913595457136838547912324803208985614678241677556106403224206453253950860238943657245596888707409476102179307556680636701760617106476727747043382559388950931090688120658522001435919650289660226755787320807773754428157108414521280895087936027248300859204131981738986262952007227901506366803948304508597745731629634706971636036994651378950111194428186694828222790822424870076560645657366630129399741941346148138993014590457459497630983890766050308946899482857667719288773524369481170930865682727906395496292341754915686491595419894654188811416237646829005248455751069086345976664238720650483270777891682795263682997794396727121378762102340951395713309972770680661909709471483503150620296335860283981703756427699588886452166350864436177197922998655427048014458573129311673026998598338724264685670149211365842805931766369616709266254665796511955397760378233150277767898681663839640963909300367105732957987314977048346794429433882964673678295394169581307785095945110957342767459357629266434279699397269673455681907736038940668776297535454427503324894265877467171600531203441784326545967305476855463772629458837801843274504389478753958713797532546066573841017280754902662939370332160560828313211386099692641087972389489874445424663192031057749732320374131109804336810246481675903337375997968560617382272065494402264797603163020496078399556780702585794723295113296353254510422112305725562292026376785324454946417287066976592604912475523710304081561198568866116982897600529825072965960375516940417536113426763554731458283289601309850337777804518850511412864115680759432013614346490849419136533115222403553323763819092781293760798623235652177306503177345911698018139144534771809415363876260880364865812973822994242048883645886366485570762260192467441094806119444893745487616817435122185027113062863946738891248404798554346259011029532799093446534068539465694126051068605208242750013373550996806958743792148738258494535213303933858303807659852231208028672178685798075873817940265082138491917043710283304363595106109099085260640996236168174723410643827819703205028114701180412244140122558544308906051166181984866901621809549670427680066460001540441284474363387067493003510307116680225471122049696548400955722729145196297030284745912221865867276209155297040095398676724175625129605331316583713120655164280091258734883860761018781851792873998892791551623134429730885268720225905608785485067662136202388958739591075254498046444956833062641570370896049801623224912631697155667856765204049287670209990416802409885393107059538848399016519509868967973414957699825000844577712235465348574062303045343757982784506547896418701533729554229313124072473220175501162538140063596390765401126214890451231937550938592066197260289668499206619090878420846165296640026906372261152941785594545836848092891602933940513038296261302146495828377117201335190279754906033046195594097155562250070101467356699940733194258882014587908515645399325582419661929933063943246483752948327013039199158049352268025767938690877162564185562508341058412116298207056384656999410340672010575622320053204132834310936528979835575165453416677918816017745204631069424567448393717912491139713485443594513913189302775990409923048064968024606540946885050536231391307378823373699427175876494358773363754256421352719391526647995895674644709424269414017799414161697674504611391894568811511971380816497731797280057022334393683305781528305829624058035156451439274421624346330966357095060924860166143615315400095829941645611258657821659607616751981291481087441831490046065483996366196651380440420727328453791929472556266025557149844964659137754235947880208981975928551194911765196866512770832367183210116028687645205604643993922487305593069169079883051143506679849614324160015773941492970352297043054688705935086363471684489092428951589131230929227299947128614254364046165150096357424563858406418991807979573317327793657953392620083715600816150159514319179595639903352117065101760630654001518610272516464509827083128936424447134416584915083874520637632942648442232483972535790416881917202223084627348709009032165286358313165000643374141469602579789886978201904587470681304913518001030120449361362115132939147942902574136520319229844675708489338153884920115470137963165190622341850023998714645866108892539321505037087249073878732487312493347503372005701274898884136847604678242470126787402679374305477383396474946596333976774270566201930092652996478630890393620169442982006963233377144422879826842170000125038615329717784375980252936940443967086473763640660989770733843837325045259516350916292754240564148934455146479588557590757719140723284385437577662179193035668037036472419719525088768934773272694880852672239045073683781152396002609815323218687557230919182020905324577229246195130372952288677763191946547171354989998150909485205425764113045657951665533658043166718877860899734772519715002783810881664479050377534750339428327026481058718639704400385867976873568564335935458606185606534752243633626377103056572612241132724698110426390370691486795112491388029475886142310823984557712977422795433124396312551693823811826097581991808439686445954860869938918800249737205440313857900562528948970072131985485986683550051011209956202151401284874929272979749020231396211760929937077584878118926974672096460729589408378290194117267831944185474072470207624209601703412702851230680795651503812642143237315330534201970937955118661946745825514661447793233855589694524353359626230708453273062862555606396625346879895025701016686788585480527820997613610177246475368617448449936923096914699547290771619552456661907987106793640626910103904355904152747443064226798837350182048716620110771027368570165630056959893574749243134937341353669776469078539147485384395932106252877844969302926723668680104202407529465864130844670987126658468657003705183439776835764327233190205945179268831030777410721560204392272618523486468000137915834094820589323040821883630273566177653792788396377201309226356852978106964272731842849777305107950784523378184011976071792274004345774587322127822723071797483459943012879040476894787623383523888189369689522379406815545099516275386985292034495804249999742027842176223160445466833076889320581796195403325494850479052434125494946568024657957002574485031414574637743564110801495820670289378975303411406494688756219807088085284045370911093404380430870689352029473720351088795757567907580748595131280239375484650459082075003102088268590659547078257497829222173828103445631116226361374524022680468796726509472508493852628899840345790032637444631607100003942170008252426608526961918324268190238999802241688694457329045864883858348724958557097728377493995873411508075493173077713763386985057098994346997276504420259927848584942492031010772704156454576427678369655827696161288489731706643835897671083436107173894678719543428763235865306690612861175922918485312590416812019822623421792764383394551219050028097769669751123974983910348059797777587827272074072376447072544339752224857368186638236809075761054720634587402090635973399437148562506892251300484982388844773644597716489822722903262208324922246783628027007974507456037703982320551635461553885989757416826268153484301095985180204372678809793034884629974402527825533806557975244563898271894801292563682566370851641069260848630926855391501574695758767460977450304675365273105640747783893493738948188182219192682073561804715597012355648130960601848872971280838355626297662369700735505653946657816528316863593998128803402698640128447848514578489447063307410343637593848916260952705314328692327525640555317002122228812586921938943123637254726762614660044419107549742342931114850079790588143566086835555455400624592266001620888447450133597432322671590493130720718806702039662205071327176867204983588979277445514033561346658719529138777644930464247362452178554181153010391947207492641015526319588688177673568414258722006888841773239854787159490128499236214608273026132429814982022011953059232877302762183889452570833421427765122200146350045614295833208573366124484671161433227845653104939032405277560428401667906583760181631199039940056186132969863222710744685316696318856339536741938661516963811421208449765253598925799039793987528614892275915842492468544613866763013808638132726139486750557452799836292831202610071769964958738152062127737179641966570051455261984353592510263902050393744226661402830314890146836803084522008968868249157780877583727994621358960877741826816559457128925899086256479773108842781827664083663523510468462369739004493811234624212937915790903038773263603350132073026504390900021952878444245470175631813178659283256268155036059382559098754266199723566464816066649887466030091562355982718042033275624520595225354051058558681833614808552381542083023736747206853503507016791663699113577324744307334234209824920694883040564448597826270909077401825044272271447150984908998321561049858315672628844548549894694471529765851553397077986168771158696083217425328769611286006633295115913165243541642824604222584263059334454639473252040067412803924225781994684365639171142734004177818114334430509978217042896609279815149235823655080302608309896730414473042399574849199774210809781143176691167993966272000737376534236121844299178447664907452428736681309836593550198375164727824486483151353573623188060634394569570790124835060101639162243717399152614833403130285818045934635305940634846903815489842088039920665084245216947168173228227706346878625787189667652474193223345559402286755779904737376690516865338872674742085635186840049550607180339837198320539019804559450303020900187729096973118209929980886582251580773338005382115332018601086457047783109358709493087362704520433790090488585505781206797053431364324877842942289588963702177467817579103927635346834757372928934038990177971634711338370975631001000577342292934459098249398221380562470430402416228314643502603027172420653785334963526384121623376269724539192790140102712214750773887600531930662853072436963584646993328914446286030380112534048362236286914387839744626613868208587874417846854819190758405511717397851668249881504318888397931774457906246923295632970869637355626389466310091342919917244515372042000110291636149104523269721339041606503976953298611193141502006115965869589009161898981833228610755223440265425568748851206672377694264814346486934681203285368537309077193111722864778246309551381299665894207604413362978095627169438359309661345122582834632431746653439784335240899815806418396730690647399614203235941470884046898150739869947256800252503520925343011945438069993936709018008095268445688139930514694834185294215952387899873071638691173288143518290828071129475760421005492527887381034971400751937567671095780081535769178321983205107536398797229424093445925713420811160749342142656032049330009164303880717596523266134344827309053354188554979886886606100019171545691138181993238318563793881839072650069478844689419214492358486237040053947172266110333032258328030913637952865954662362920724662235762134709168316853396264450165824203407834879641545902702326673778993490820036787968083225823881731664368733227256598820717992202178476140988716891419369509196176319182531668217257524298345195851216248191378620082094431866143487818724119782014172655543119199059733216687876158997363153385578004268474633051689606804142352957129867285827359050332878498943276544462042838699162703625315330256236142287400176948195045447738087969569564123276428645731024821542156788540934481332255465409566978884646209880456086370987251844460623293603084656667041606721751464238924411047454637745485448305286677624324042373370516475383862527994483241033012431393439761987856587837753042828241698182908376144252324479537386170502488598796835699783228343442487502864614889392140549470836073917620712948906305503179288549047777239059812580080324289212539911463362524521813988694991281624776716984343195117327917587666085839193871187287067316988881446069709203203079190917190694395532373967856282820973553047958129750203952555635104785581779683841389636915516342360623785054475865302861714705209132222016862969273762943684394793370208747803440324618856368371814640383213563044452347741079136421898825041726655075755530603053151808351468796235034191995871454329926782270687921852446108458622363943086522713848395988966467360873807114849134998326307829711893502790471888498255465537791370026050872715961668258471022046491120946374144914226125796693232006942087645854843766984113916570527159078185663939545549415896649195967987236802388248829073286624137851825314546101480266594632898157513409558246742850673285282206793898366244474067033899604047090872007325332137948823972196695298172268737117274354951912292308664483689965836684559301604916859804947411506732981159947698707899695635684722936746298729551854295295973371132341498047860957382924438243671546556890081950695221497291413658279841490131497351821111057397409441462648799544840176854579624246619787046841132670059012564655985705726541989919221957329834964073902900049158893608097424747486081668384604590170727333032329931215419998373262794885598987121796489182502467174469841222185911135152418440095380911979379092597931004406075538388775590794074036021102975273785110581198863708986456024757582398983257777436769531529909529512444300718774092464992063583705885015654284217445922205650755572446832749543702929355701691534746832984668057173061443264030920034196398551080328134483978047005638547635232496414577238052295869593132589187211266026946203098654468348658225977324287126236569471929860314269329280582959079949876490883878155910990954268107796027270603006932852820158676523659481577914499629573685598834050764229471547506376116527115142095667717381681363883451590402893430233692341031838343237642020673123283480665500428339796479713731843357700818320504119698384643241266922921581960707636831904554983178066077632990448815307867183546257832788704409089886083057773503495134633906442668685196527852103758598910690044099606117252637920117663469237390534338619125934457683385836964650680710988937058017288476563657607020070211804250040662868772647608312254587671714927702107123581590667018725876110478917257698278826247448283012266543961619295021675698606568933464089150577022137401362435569811833760602309310405562219568241736449092936271103106346108440578464129673375348473716221201653078499732387657390148742995213870739983353981652447279925278169727425529489999640117400094232185594370009212052650620035581712003408398676700263966776382479772862130748547354214191527183765909063562603578314317954791263960561315384551380622661648286853221589692396287851897975707321616403560051035368838358026895378202879148211275007384234955153447865672076209915881687121645205480010218358251268820017541912614028470693773876287155229389470838838528636756555217551162386898752886315422606953418440498495280502806509727277894906200730001222974856537468377752507865242453083222867537696715955503024848962443701511056578508642107982673545658444917524387494631554599473822655135614275397125781654281410804207725598124531118797492753786806070759332983368962136577142738478777065074670970810509930994359048351042185489006362504256851822790363239062717639197407384198873241993092933887651720703657836730275640369438089953485526112300735330669306587092605469974809774367098206227039267198200982658596635164337457945186303019566234166024558151167748348088616755200325275804581720374021931680593979276858871434393663779852967002640472051948146496357800688456537926833286883432122134753402345687712824569226555915528132027676651878472568241460405090826713799268147949125924032789446450708006662781375347027571977374786569173949091901398649261365930253280316155836906653014139356783490008052383780833660448201464099364143844607540813128771818715465837720029907412323428105579327689995091611994643684658477272804144893590009696989853579285442074392072594764805978586704875762625992880830713444803573175691846938320811974060713580866166409940873119455051050337751236884851435845642411782844921477472713734641740287897247080642984591183222539692570050244482399104761898246109601096028202106793137756849419611920232268734158007930933821761197317163193078400975713298615193926518599313821693966215074496101095677991702106524585545439202810514953564358175114913751181880607575073080291392729279395291392069417488268915077186276511924999514123300762835139748875712439768797679988608119852701226225402643685056533920851668228637736659639245068492008276971921080972572251072827151845954608325724920316380130356082181799556697370491947606409601659357415688636895393501998840036155796332221505367505653066031086296780506615022070627641294442357884786902982242213080831252947730766953223264390070433153912316718597538487669531784454238216625717264588046441096036415927227282270901201616422438737195705722760770976804129998451398261212344266106968585708291904501215549263519234770576593102084308854513256462642510996251185134294337427356210904456187930759437463969433188914593548411876593562858206304000763331407913229680315822830719259656248073256330441414311596180974578427305480222308960617912465020131506377357986334829444684058735467420901362709459856122848968506496840528716083514581922551193792386820569331816580622087033758625398472671537293403229462212932581081742908116453316482823217135834122723493273281658841741450105759426135051253438066762705031220501422082278351090794457353668785443592862778998440017447746106769660862412755986552968864510384051613682591473550647596788301167909031467434641308395756359824699009858520314749205101113911753371805091508445066667928468030200058097527021826982455888677474527542640627883084032510307118793462198366201893133423419852137928851170848749414594689465075298663724978345539886707292850587938233654587943831280478321361390175283679134546951148584555024212647861891179911290648267551243225058340847131295156655512629653776253263929877418257305124974589852167417618333911445623697938614655255596144111219407531714162175584910244034810664078671670926071400586296814048418025674558317035525448606898943175538771894666188748886661375119438424774697560026825376415645806222290849540997475113206948505574011097619485099563252484614117246494991806919813030972836224839728758120996402986802785992631068540173666964042325033796035469125680671239212079447618771155391837733893543289669026437746305295615073821880032236705157229081178327414133469932009798978485963433854379310207010411180679681904744235117869401311503537436294420835990479515326183360891367966975440657926467295397341896227258806494755132015437055018494043990093283631487502376915149672932167712553133226840780962208395957241984492588867348200405970357016625330183321234529045061505552141518842647856710028799452363003804924911872607508319059082131016419555863685276653787653732381419949593243588415135287206657085102976674114782497392314830752836552807029288207931611877032926715732504924701533143333167447742956798711594521494009695467033598359903028740571460258311016629364478776371351992698117376391550352436450788764375494334561984482558383578197757522133182902767487504758697734831295250973479978083534996934107033202466156479655547053977508340885265182742910794937001799539797505069782635603551664449758708975220828325502019251262201823357270226715163341966793873726823865246908108240247361559599475267313041021836138649842065472689772725281787850669028372547941063011382944293350685193947317514530690513690452333017253227497779958740565062834221909561717961588764393387367486359439659192782462371946835766643390259177102426586635296158552584234263711138613807603426542725553262596069692306418411701540990544485071527287106680910804937019039536834169042902850320445169178538410265426261209180765995662881590754676382557242450727277275489077276630906681915671751621001529717375921488483548673122492445961045361136828276350833307596894709464381076483555012155930945553976371689800210202970177459853745016678645047024754363697949222430035031056610367694088845963850292828716545940276992796663938014610320491445454238943541565914869554072425632098931485815459248457764991028792901281831806379336076895666929011158702307605795252146264655792098261462352057291062205995600066947062290069333315597837800948083133622343128364688748921372227040962830430874102765433515883734627822807297295489753742592131565638338264947436520784792248483247183761503297295298188538083305670065186316666760982652298296927534634396844273929414807011927774903978627778371452717766081063138782264397424840430685927373019264401395102375796396061701929000426261681896307474360516120812624373177220698564709223395566337407859645755597059485093638943963811355877677484717927439080241662612335213187379367922759363656683781684530686517752908271159287433512716337847408977202346963111092228309921902798671584905895053181742955582822924920360837385548868918119495330211037556984907280656682493879099463645688268840631263435655786196845073305100506795329493007583541444845844399316317464845627069807923563268150394186057203434880695910628967149789832980740432695601264040822949442398174786616147221626315845096060592560641114203435842582272279940997873045245363100719007482527364256655981730599844299492107371287577071173868635549172166472694357176218659623328207382679904570310572688489118539748736125075000590689630455999372063814265759510503992897121829372114359709848724376859279332718599807804260894293079131395759853723178415025145707752498899578928740527130641353408025308289948485173216175992233960901432754777849721318011871618765194198660743718470951046406664675572826967052875813888253527879920340534144652783502101265426050660860052076508335784712728986988301592785127614246843653169941391926669584185629601237543534632717816284419224249038030685736832016411411906183225582170906202236346413980840885328622876375465626645502729337230964617410626853507756845585151564055401893038035282964186385437173850289924202733894104255591689245799932421707146685670435844806811326427455088711996522256251858770252607708939628163860573446012317776644137644941604551481677374428245385156817520387012478785369339686648681108879838354060840648590603154906229721989406753273179723261179415032642953158778239037560811423422776271627958775189594372367852836460455440820527803030778731238415534216293215368235095013766906050299418399952639006079307608233674923077824481434074318350534522525831703928966500586401747928672364521440435605985079019896815138630144425775376633816121781418538639699641299727978125246988836523783245455517326909875093224130168305329767048459506548943929405196507907716746596236546150570358049312006635070433402432890370858166190143456632114091870728744918932961922125373623220809162534814749428354962263115365954276624354907847696883779250776591439271405648796682215911839139523712591012570557651142597417057680247964820864813853192391344010126559784970860746473029995051507915099065689601460646622668349892384469581888021724385054335216807376720508605040840599430601969427567416853789862482595958934782144589734136076347380514448177971484332637491403026667050530626280585786978371389542156750169425601455208863557907363331868182852207730841513766282706322448827901463285027101366426490627201497550133002859414697475190311396243904669056254715932340039233137538125186802141069327762541960094067556368464952017905843087725092860298196581273147310474643386520096002915736992488332078138521771293010488360176454081021810861205801805439587187559061262618787484932024623043192706069705827563180831273210204837920860569501168109595259449829098183481500921388820822991304716966355447828197859635108880292374219228520787408085282171676507850816237712093093409833730118340664234004685161277715204745730397678500431689696933930002206551476338452228994673963473837184093507564646728129401989685073079840710782141205566583693301257960265803299902674790418012785994731306441500493547091522645167433754936661482999301442936537202036023648584622649931294292325836235055583231669416276398492626539641218262671209252583515255390914255831202765046292273357567649523690356945250149119738155071104183111185298319562376589558923363219806845476016272175422016847140726858701501646239280744147096168591092361157079220169772408526767176189005952290889127319826609197741780099465713016845092800881185105279163228017932595036347289367185920024682039136660706849425378344419317512171599432852457951510201537798845907936504934347895728718027696779874429230470689605667625584401216306912521776895307567282028770265221898979686052989609031087808975806250636905377651029209782189206874859616939750794510418530773759022807139175322028818346206238160582842902379098721294950351797679961147649358063459182061589446736482884344900445143757894649940819398581756523221608891936018216564055683989429357676033760358032479460274961488086647325065533527315352091376584354279114727298050153513509867563603076922515812131559644814666545092181563917221153776130244089745941688727518968101923191110228746437294267338588479198802978600810779629991478075745952441380376016451324869119276964313859149693951032445987110833014021377129515862415970313280717092943730157209875084448137685671033022604780112839970445058697003875705811321166086151105679795181307793035527017932652857269506145020498150622911423447054543601851075771967852814981961605474335095081119778331411212082554574724150435126335668022756272373014152689888503685375828221653011407382715447210463744027213115266557917441903545301713541339983353380318640692599556825764194747690288068682137743029671275131034597352770477001455670547222006250493890836324814467108157058764683525496851408250831337765915959988273820301123545803228719618271098616150389645335424179836929965034159965769201353872929115934063140872861475158395246037818033437934034409183674437613205481292334007667712530739443153263535711333502493139979381561074336821693634754952929503522112060871392698958520399498230707649436332774056186612869030652489523697361449482402767893951846345773440680026351832379368890623880364039432251870753311522782850752070089090405952965495588317852664460613849513133653670673935678674070026647039754034312416891123643974673328405424464973968284443822226103956595325800317951737303733230767180817005170037652883576922850173338701650954977984641750779080884860393102295831263851481584488217815514422122925120705880635601724228784983539443959225601687526951813179792640623912249074921215434532529875487724909178038349544038028413942110181322435196580249663849531626536012675519284477936091141884239886160948267985322770690203568883652665009233701205583443849826859438847641882279269733674319638753124667708698282113453821061552725797363439308732128809528418038278309562375780621695441628404484943724269476528118793834753365627485735877552786870884016474265322444821403517956906475650287064516318400136195240058921115680389470531602881756907753670824832315894353271596930900170468636495635710037543162358755205814430780041154060490293379701771352090148081429090604039131011407790877436600988131705935068975641683312826207773564283374132449611633985017119283119163539074595371416139680412937625504136434766153797309915475210822530761685373649511731692673707330002506346802620471662582934415830262725163331689788443360322785586160526133836780634552052763397472042913479882368850007675757019924795685638059099507754891303680790216646126844215551804642705825007989543560984539188527020200408350799444479685532675906914776831504896569747509173596109862520029963127667477183424200506671558699750159834859788182370228242573741294706788512769254202056876712531318799366417135352830769868783501120011395710623298897054636541909452979827096801121400528023589951342094702544774755440286006040238565258053163265184288247182714429410982751571017409330574796796639992990756918657286001004894691028981301435942106550976653782557285525734603813156847084448008234740185709445800873140983257692530945900683249865334994640373581270808727221971223830731626425665138092121629753032468982685748893550146089268005856336493290600913132436168956495897760993012133504604676688588564020920561128405545662679118585461516358376843568731017748345000818606152242878897155919815457591040681064449158289639753060135795132024715384141297549490268098687591373033832229346578407925987193161326695875126440089748364873060746413353609312211932579468310038739693393428750433348549128735502650946889969842821404577093301614841190098122153822843054088533848970328666630355834696924258796396927894598085067422464549003534334861689436292599107784896182034409334896283991218618700550053779893681052373244299817265666216967020794955884296778103233880603466381460761277514992470912491070063424405523738115969350017893105710783798262892931737397692677878858333923313427818112910284494022570722243546168633363166970401195059535274899327470980818377253762068999285738112564758961964323552480612954816050861004183619048490706683652643688980331233994938089762313620019879737559843118681179864228898223393137269264667177602800676157601425751430263715260287966652395822797131799985530681013174519289505114223402761987998247258064907766986288158573102487108215423777308511694941700930004997549660721237625771163691953276993700366567016191532302981769213200647036847996147287995009975623176719730387509742814448165952448219519292985555833726690969372756381319009709101079934770423285180328616222530169272780227071738508531841642510177642481514922462741781541786746187998481498809126507450681366332200181403953693221303271859176768715578711407987955704814214468029339923732299399877501833235052717445833796673508350963324401605856418247532428032443223130240004229595217126811792622748733488470345939533244219455146340742369333298321687806220627801296451632125239196731996031293692618632957346675814059510731112559271594166053954114834880008356377803883066951592733891224793892174364148162833723364299893085903824653460074060119900922240227089084297533846745487890606121466626675489705398227748289759955812478453806502055268549423174008108906174282317473206307028261957774917175979306664073896214217254167867691018724772181948756749499522088189589200019402092088943978632005891921145381344903902782193913026415050006278578842569655459773764937230683719628330084215056067871462647354639717637680939961799268212383556105559588014107249371712207059765514582465805265728355729193342240170896861524115917113770884791796700084367366623644211105198583482567395313124655083639107468795052973819117739037631668514469289169239821308061732568461024885332845579465336647554412687546522249889042540712734881908791186670470121661067467620168606379829562877545971433748255960167946233799028802617374059145760628258186452480248712588609386888800189847170129654997385155914149666222509217991889211046893878791561235638430071811840089869367006678122728122757510181739888824168893556337589288585700681541864735511639042211902164702909245950416900075365970119877599987700874966390589417923184521093856203991407105110268569824782948831983382342286929334063474899678994772320803806911047891959562139353661655727134862187564005051325824712786082279724656323935801002074247970289792955791524823558355818329467473293676233545721089655770139225697971361728804236491673600288600615122091654179171597149472813979953129285377015222863210773702689335990529865364511895416750421133092719030020123973942410669396875891211394155824752003473518553003956202626510755524396071119190301531531140279825536009552635191940617322588310674463909833938807595424950361506526056378284083356753131975156372018175329274717714618649543676507398344690134518327850957888608716745102192239557115207597435173592756150266497002795288515823075892692786880214135497754140887980411015080611854508054720451303636454086348932644321554553559490969971418028994277406098792612954289792530007358012761085853320366957187587621728607802689262112299187698793910042382380128909991598668895328336219959260703340400007084299645012562525683866246025944274548636220355210075496970017759467729574404988713062915867471796683200963335540868005513167127631058316690781979376770748456663594270805234425527311527200170085737043234984154189759635012775815313502502481304907256286918007224853956073812036634620113813476464833584074645899278422003245739766223596513503821269052727747268379380155181853724892213445415246334946710725141843443978584933435755785782156777050754592068463609676638167697807127007094263655506216270829047429803992041148066337806862476893796032003875365820901739429569309313639083227032549843904009114433090516055553877061130501690827381059367418691099167717120008790960516854059913089353053806934507236872728392811559633965358887582097326096736063762154427033175270669954900736934631100168402490432768751955327673150248839393393162225885923469903924957977816696692349800045097714008650506178347749112035183042639592805155355757827120576668119826947974217610598016633501087020633093214561582276372839207320840909996290984336499916749423566515368518961289120844076389068794661966894728341394156178533386043973199066373964433155982294170713477969948573147755880946900851315957668082854833119816294870567801030429839624650836499944786652482296283745142815164571131107668635752874478398909310723261796318985923681094209584824136232317585430819015702244940020374630110098438910724668488636117477519246711918134266705751241176895937558762350840752081717808675034243897643196605485187144007619871712831555829881976265410537804475178617538524678844422587430419758654069524137776659937818310094852235823203782138507018316438752779892292683538250793286403889530392694614048253399714177010743226732778910348896329385492123691239224473001362482236598132409775309181030393658962672777921190638337322587908330246929158257275601977534551473778780150907321123303687248229995069369768132631751816415128277152408292834948769956742976497001627162121692002768100372275945009244886289650702784865666076091197383964267007342890483345885595522015511534014476170944655029043761703613002981178405198617175008549202744541449698932494498479489134383196899997323926546656575822772133000851702387028438236289970737827022354801237070858916261455234408641202235461349905335996999547804927423990293856404871863506759703964744919060861004055707985102392271151013157494476157262808554368738336209818648166090598132530985958691807021876406326145980988762902272892338611015483431158719955608473839989717257698091298884279111505055495066929396507289288695158859231416346959768822564142645290575139147093042002981923435659200668521460281044973865587503527577425072224761607098045474006457410645107256318220087829662066629845755856074567607528232200147830875918199694483631847557064642408795372485957955849866049310843735768711100140076384783514016112170669709229767299387696377958373460088797818736529906998350774188798502907679893811995487726653943914925578891953230617498945767803598606007285878389660001914703465477088429776443189057196955506926559983020150003865395278207111836754946186453879795230207428565138776933615529564775116283063902007828043118701090565013971970666929282569882511789707428065338682160937496903599116399866018656436540315617935896367870607856688203363404391922570585766365587267473672531861564602834817640341911850206394725980297877767455300882766095886650707252995554601969187930157157427852814180978843448598371860762777335148407297305468333030574996347799460300166266441229993177023473159604467462130809132355222297732494987929123575557582188711644663417876244472674009158704465632066438932553266675315373258929626661057782334016476966470505867341342862032175794824386023099914353385798823861160893674239635627812142247937901447700879202229301175603742287093191218227391358073358977842532000568803601555679439093847472723129369331037825533178906276796148279825712869432144600373644355723133330930710533655376978896753303834502854571967480170058339353773263328498596594715410160998365072315510342814829407067528278225421455694129593677891800049193166502011133205732513749898846022739626912761068640640604360081815944938801569044704569348845324239970535903913199062226922437135721147080187798566537675672424776450334349408406662431919597640826419457514482471498931995996517410730265069505557645084783010254847274022489943607233005209679539757534569197446396860001413826221444350866823506757336814445771972455842116546849345030667011801965592879511966643350264431378804365107098257904387578788240132785565277513626402421386731366920879640208930113829426178438681752914460613130145164723515010789210189589467807997934136996949442899447397968213902861488225876275678457267225710264976351743362309805066606335468854771574987308817568561285427852705101757297343833493556494848851605737250838431400223357017153812030159279320153713253684113422358728855002110575140111406359531772835035400947375175241646980141855488143306047899513403887476445823629274406442929514146438340064224905537543794632449046197963160536803924224283286744199896901597430062122750811117350371306949349226313664412576351779787815054930050873806272536141471270795079582800372345389790891528462377442160926537446129400651403908753142695750036581663022877149864245292537169820698829445278214143833415152826173609909271280496029830621475427306558802153893812662646772028940323155594287980669617163694770297512042972709678557327849857196216247564907967728489208494975263571009767693307419905925354872539095756165550953269552323105452337315200246415116667200184321060804001241992251893519523656723719409774918773131916651907267646133156402924100892477854977507073903295872988349603443234049909890952395782966579557749889746532403376859256483110375268567014376782757760247174258296198236499861010256217718972053624901080675577622264886793998096946324363874922113831301180298485182572573232776150626425460117272818222524825874938738914010509054233590836767651598590525287493881353533829727171364716607454361768021333304312971635277253383678174765154391848959532292698080950446776644835196343136637795935543985577857866804065077960335910506407746501215841679448656393875543582816576079826294053663984885844283976886716816333872216225676050145492343155723807443655252744656744264925970989396681786061502569357516122214973345412981511379379487932073607426858190361698131117108781616179178333931621815727278014535792928618939559556805008601042922038972874769982868133421367485939791598372982140610147304781769177685177994958156846823571079687859322230234470898799714103355530707331231421514512863232150461086343106118416533969805854728875873148405380690938713239040867267572028476635530973823228751374898056963568143494205845731007089916004169746574281599758262009753605890397260482056250580266839744724943992263192384087760413590733595615617677799389738638332194126838974970703636241649797854658807464622398025636843798518343683033616072269329604191653747797297619990454394718945753321868940415973159818621054519714222533419913838346051875950681523280431527328827552286502589923725163407781149923135991682877332517490136871712045952882830792702099985540045555143654282332335628389606712428858202752656032245606504717847850964009794542347823801781285617436359734067445767752928472855835513146557422472811409199688746033675602331082895704345844810708036086868663283892589529408756687685581001108827555070841238372779195243899370606769940710500811019944779154167067827707396041626266588902192884897939050025946294178091526493509214602889439769353443341516662931817384976624180401866968836456421882761202102777911836562463783280443383162380968114367655462435506354309401297524700296764206690571173555000436421170786344538044281659738574910781094952191649198046949372562277779161589405174743328124489972754112780127216108067929963217386718270670337905512128639810691037733965537248284946715655064080375882933231728752025559135404555138517556028405385454555044659261029483853256853804031676643586479021397380547863271948490415521880891060848152323141490815435237045658623417211386925686152353437413240390694283274028829489921627747202714322426088829253912035847348782867891296964818975423849658815777184682486073626686331202081735927752120339146172157233625611238113785702735408315754945277258391470962648544909117085702752661287752882633779499231147305055029873701334126676528741361353070645645611936154488356531987789269184334614794253596512499237656357368286677937246484583568058960068712169331664264162919941997452113524756920827717373220304366501710669884078796816297246335240746832022154542238871793223533153302195835266926260766457479253541216002863661826270180691044629463359883021117810375228517063848563880942614328621374900806785881288948714773183431124299390564581795064439712926497565759187524720938408007314781446471944417768350070145610261795879878305234376923737869172186004974527293918752443669720055650611990979882078407327198494774484497659387350926862894912147549445331220279787322498660212826746047464731567029528856979912577982624920302952241854122478861919855776458231923292955911588733266140286420302850478146285087592399776602833478440954808976323559039830353901399230933475790716092004246730510317172186678545878032747459312701717521621162503908138539687838781237182218143718984231449757145485515160543747775613909702713797603127615779514140202660333652822327441487541603052808285552697256049376307709092650491449239060359472207442503071477948148557196672340834171503577482424613900900933792631879698613617168244840215763157159313552397032779661480997177803093262729517734397607301030131677292689005231711558799422672401537136348228142423816765465494606044379449363203038850457754635881009770843134534111170297558216530566880407144067574604298251639931509560396888175299195566476861885325572883275223497635195478145048840765384326637134600420909862881527736265741558873442502112389147402041788222518754416331614182428229192834486475785169881561161823021007213657426233672922113306283468014716369696235055317977399465319999989333301374382500025430412457647338100500377853449847338650527454786701983918621001801745395330455610308910707265132339298541131358941494584651575701346809291271055892157261794219351913075297408130003471278914906624902351102783448017620145607570969351686242666901287672077499891049199612378225170344618700078671893241555925787591659713680319188078665127799326190539925147827221556738537103870409766894902744293590102350602216157298923985607755230253756000729901138079345945468095947961284233052002911408848848141298069768446689481126014157464921081459250929204071930145928673320184217883195949360923460523925318733434989260687644751190227621704593201198251947122522494012181358527831694536258273645292382824049700906438747256436812954262510513022108550222670658177072504187982019696675667579419962674027850969055928965872055753935501659216438944653857264517031066537815418292093363859099004451820547071389539111110820944562680755471135016159017286712954257246580007458192735902803552746880686771376643334559405628540740525714757107904804275986101142198787086284622760205922830329626109919234309345840422142766627823452990027236410220454890925823489890010291844221955103043107529394839521798633511441164771782353229418325882310417486971143469933640931398772475109196945771851548375301181036744516660092210632053339698964649592682642222227166906419594975234342188717480077693168780727452188823537777098731295319153706412394213337525260133684604640055648393175975961048213307925368784498937213679250468501978024667017993667012574756149867155576201726344195448023722919152995587268002091859413738595053869762589364911634461634631698787887899502312341312989586558598969859492385920309904742061745474290029690250268923375563290803792484547195309641700556087933119763900976148353086245360637868693193418738176103031517963576524023698040774747396554174105281682502013875232260646144084842816353454199809630693750974172921759853609688448445052816769945216422534212349944243193304449056615703956334112542615087229342860740661304565072655411054014074333944459343809595373817610375004224211282693172217524563900942495191931193407117049260697294110914898344056304050991949365246723456336095477451752701228863189939224359269506704339281034224381523234260843446001121300835386952597756431364339886077555301567862445075305900479999157930072114180186042798293935516987170146911361322831417946365784273692395473075638198090082216693892491612344081687823780131528982586394122839715876842060421132014288854898039603913416146537763297533383649308845939579384010069169030612542682990239562210019216447386968508871494626108172686779315155315043028365701787255696193424569963508981932597645841229949620008396178620973305764628285066262231700650720785052389892502195790472350134027010132718029321565322346179426765203940700702153946002876397160066096695585511767282499620333620364131983636234626196574017032493322019501994693255422959035020624888543458046013550269512969550086331966168145579831010281827263845408480060742883484047165993298477969294159006624161804904559545604645839496800375959800594139791204737675836234573498441930915553912651487392908453507922518665079064156707729821492056893223725105168601181877105899011321757089479632301808051503415627930482568476164375744776622061840401231687509366952236379736349178883084144293951644865437097224006377372217417219928566487290964512692827168748674162182816133737720888393592442421772904428653228107421232478839163051794583247196197711858613847189895143994686055662851338442796874915572989578274871549268175148732046340506083699615005150196122433158038749656649585778787621212102541991379753409827004213187329395231061428776450803613461633635732004443782156024509030708372199334826247187201812631718642231992256214079179306090841231545929667616640964057263551031592126188657019502469812772901011263282188781461078044734056682722878154839505811357881651371759577250400396987387973552621817178605811318598062804897402849659718699635158823494244795526476371375418519962726022149017990498175427915548319575941572969223666295311016530072454993172425221168251829397678332000548056752469187122421312282648366120751416428234106335429032617628725620640778960417603481311371698175111288848019253003351698455556435123795333044245276717645358009885584183171072870783004819238736165679157465106109761668706910472133671563430108627856053708907068131864119810229247683795915990989542135872669284082945423000478918921447532529306346181212573253219290389371701522913347744178829408540312396917295933093872609846193748127775025094962936276969651646958273718615646798023063509975512890567520709529525376399412253036986577268921064480574205900522216365662064153754735906011047069680177955955223005062446400288198759996266653858819295570996769003648584410517872892711551994322234471162991174739811606255201824785027580642563624601617196335673401184990537010186350713646743630790305472504677329049414551219059325882688576915469389820100440249756536723899252314951448363660091167706741581390656662863766158122292007198548412211295862407345410705128225051216017698888516231039389930436343688538527476118812092655394830070304939153905987558725334147353310011959519803138753909944527442190367310816698661345749635486836058315196075870805221990609935067191652458301981031794177437392697802532063708869139382696484660948065757986159805639936897179805786582781609111227116532183322136750470993368487681940423253194560718639171854287128936981594896089583520715807229379098187904449933942127429195469764875073833722750657266892136348026844500478508854142092227905815026755866027157010030586306939720347498224392568638503462437997863563743203923329412399295971406082877746916388561696027145282926349220762963563088901619608680917001107490484589022842841067237395280352724870088871005708907620948478443960716654816445156063948450350966869763954067761604841680568687803507323960573906129686306685961576816309467712194639380360208685786740580425613857100636669362881432145719983532315779819936579660009414824433258100885055428976725568473904094471088689854687124699304596624579241676248915710424867517754983630070522718847742015257239147260033171868031324812341819065977402128311941924404909094578813548153246569075599091836876544675883391129220275679558628820204560786715680638708251753249321431967560972695022993365103351839731643483398449330196005943644990311138241788089841536274123407936447351270282234600595984129494472620815289729635268802365437185180153501612003234689526699857538245453036532645045406907702144006568751505352445721495622288344403763223195778844626450724758331521176555296877551751188948300185695530826180983931642637405372825055102680765922784551041200105238348901010082702357475353706360556072762666327793588708690616549268097149435618999140579874907737489728162488333853647220038096390899697098199236620383215224710947616390302037046258774467299757479437849652667553252697619295726897275832888620148706875760519765502394554854794909507723978396484044944009756919784294447070512664790301948902581508549444715151306876748692214861709116897604037966523594408230057070417953586893731336159900440910352439129226636432212345309321276929172025152149422832958880814874449655013704326452169274145105200451042323393434654591572232633778086709574545070033854000899221328729632535260776391341208924503367191991906075585517119839757968934369996269244650396408341834589750323820924254954354177157703502862015357302924725372215974913053223550477657602456892152588868851883404222894578563054478883397294877099068529073681236872198475802217098381185003741812175718623532215274225928978226288199822194265889163281879127687788204785910157558646032746540045553871219406495309590339277692450715697496308736197645453123918614925264908554507957867154657460871013319788872243879915447966279650760450797791728732281627266434319121968412712526094778428671883492828290083011181302966915281521021002685150469663620182495512878163861307736851286716280318443150591102313100472503908313550464703514834586636701837636356305402799347475759926506315430776089608249850363371789828996143356401149421914420316210104709405277689473815258128812811294171595793179758817276483722282976991760585026956258919239457062972979859334323991138734792925473049676460115139616611942194516181405447315133607732878415584235854136653964504035287239056290255228968488236153159425080678994021880835240266537153045676149039548798601203526177351940867842163782777556071989528964616515374626434826800132103910765610918996087718362487294714848962157652811113725894203567213197298915972536061649421866880386644063072643696297691352057896351930908941308209273604854421959303682019395903118629431005771760755583758089378806167445922119508392857778864930166999064768811913718693891056244621406093925270998314550839549092861211972009467220004273585694426648570501062926942607026255030875893625704588063699408846454687393933538974402207377936138137966465582010599721444403282204523141323267938335897220997696078953427754602548741174846914291148251527719635041013845617105942773730334175331191724133692464653962145002687301666219765690176273690243877510936676522712291458941611265621405535379789495704801436531664989621982055791456315188936294312087687761389102395660986065337544305113683006318276238169584246233580818427779106338827584586357829454253050919834414421217475758981133871396120592072096316174983343470822583422283676776034755161191799138939847866747969775467940993285237103109068293210944789016481086441391072466651915579251464373808762525419422564992924952901274009483057499899624733839167658767089697934546419420076172657487697774338459630329298216558229158648521085526707704291286206889815815590908091654085773089176144752745653446473945764806610787796830465773259416431073601204818945837862555377850275646189060949317756294832740322422993478988491831057215885551646143767818161085234246116963914378788536139038841094786746379172831530861718184236662291198720141572487339298246743861417613382582140467594962383884531509755111502335591151369360360691756686268947640126066099912825746809792415560029747876259020947648519614135504483169798240214537943297444861328362273179816221919410544815818628648671174950121977641445579291367262657621685759619020659163542656636701125653655449569516426816630578781796968061021513303355516599363040202981297326529529709955540457810608559229576106987606625969215137504909897812768432994094662810045698506826583444388817765784224376163789718405215342456612648232156721392121919460990490823028559396549726265196291487018789679905998696271617919696368763830565291068797360074616562928725147610915465335163024238716324711788689247312591035951623670787664953996789045496619233279866576945563706831297306162325088202031849285313957175239526969535933830555420758008352000669202117680152541219948828190375695688910597798038050109866148019239716386898754468198467617824166629514930002547091470260824665193986984434894549738403496190314706686045383773927162377525959069355588986064238890932938764547405683264551687782666433215196543139359356548405509285048105551235707768399525551108076663329984239039538345742196092480648003545119361848058972825276055418478042202416674603220306638107366857208982163620328910612584893658089797790489409222859651445316286216562544019727725447620548449887557057242981949576126342814357785739141586349756693843393687169598523145716583784602758806401527323724595199333740434178741003506817974677484106343597178450645001188508798945866942246901681225448650391390118913686216703781747756898911009625567730133847639628510093231070504349854635573398244238408511670005378129387578997562115244460853596906725696704970871290353825126741126008006870974947247226351971646872286095611175464554550981138465473425810887659369955890059795833769036083138667709368745565242961480299319143034691595283001966254972056917227233538880025037178293270088197951007207792488365457137011214798666357831428638684889138615710283870227047491108645617524880560849115040300395887127582288343340844950814031368805637707582631065589356560261093473964750031759300472487377915734491601418361622739581842338072064697574765141646832500230899531166789407439725287399960188960304716002789862057282316128487642497045361085270720308200114366999790863268672818700094615833569310153545769669075544863119650856246339481773037783022951785095084580690301914473783873956605540390319589506494220954258042332725624878899708516835661944948345357323495254312552223745701848242724669273195338275577660525839950339413170975220576677798101539763852108836734640122892353568063613037344796205562304920458614956002808587023473347356262860708784650093690812449223402514074279148198562885737615626506768281087333823740823783662938471418496170044069281801683582822691083035633138802874569504234169479866528569030792151904525925253749154187773386005443629673850230913848162374885961759329753949605198443375547665278748754978916410559028862572178065284599835359127721765480743295804039060446120460320457394142238922381364273825184566486655700906641647428757374262576445328488437336740320635792375389617279079808802598351825378163770105734988429265227848084749495282619600052643288762430121721040044237793976876227485837627891110652840524232801157468281937433720665039568562787500210692956894552018919664200753509036225224459083424745015309652729762711503111092403734371563530623450708230006273081923426722053937114824504905891736405023471387679271363776515106342123145691661440152852922090109349681645481488573327964683995970914515123678963707023561650002702709336830777865200620324809430629882605782679767565461893893877980220839945423815929506133371867739786124844621386168159364523439262525247456598868792314731927247795370585790402895874465785840842487794038481342701457478304891722656412527621649332347492641452965291158919919256571197176954673692402024557917176673358663110798677450108465357785025273699103787803798271058292641369562230729381758368688259232363548540960076492702800361823671652967803690088449146633624730027961642176876024254969460545449484733876224409982600117130243523307822536195837754417564793952187254811122629504675137660876535862027272956978886969126467785917679434403011728818164777464809923831380821633842127748031083665556008832371384877187435806069542356785619804475392913071321717619902948259139598063860625277686423689318370807981425604550421911155111998900024058115519490783147337438651292530641303161972431870348618086442038056340679257856839836976571229251874866887001538654697269513501123886960904620381185850160851226465989553415829745637006816455173101471452978619087572593513512086299736958340720768297477932113855925748450067470755827107348012179155701129149816966494483226846763053265388472868527614084691909036489144604652519852114923980591541590782354917708700628612903374993875956163779634430202273192375155007968383414121195990837026499583757239825437742897840315443177299355645067277052170653627445857266534450888409999843111562228856719175832463109124654439441192710226074391263917531639723391473418741837371731376285079719099017085361208135989053688372336181947503036263201462319374154025371884906243159179686499256203339831630709622788554125128208363346836907147853323916550477366069321345686506703094703522699241730053764600025746757735815336045260654630437500221985876578207474704789961118292508330017483927031518497726611901065074480860782957299762368158882986299565258009905969332617049987907660574654277995497365597337387140804870099018839887966720391781213318195679718149373945169083025955476743088609035768205378017448555470453344052324048357110756545102074854409539480748961714748110425793885516602959899534794125489062937121393018219970528223662857363288941810392760931948980931103275633801564602652923403768204296015841899876940742357080257410976857227662705673192058491797533507630181258197746747340628907971584319130731831473187987687819918919835176567940395705418150534460543799234001291548517348360696512244530429987402784710316289978259741193341324514685191880481166410307920387351421132526903605254429133038648428013363106961783002731053772511455526622571971938285217638286602857424738205993462887861122713612072951522076275243420228198039487794626779536127150849086718596316675560517842722949344469380374929894900550029463195024284782024382024335302410787622822128641608969781298740058960364633478500189079614683405395053058402623063668301307386119953639742856206032053041023238125269631228900581116048222285974936418654940367642621900853041152233221790704559336497034723175686300706612040619409357091112670192002958497252284148356606921819726750362988983449811692191286245969963788875231425043296556191600123280825163715033602917036060054972979546518872501620237841855702409645539302620915679310243652893551908739102230565709895879539154242233708171090321366259536374462005188657460797561763409026443623701779647905962824108889870602656615602621476493814240890079173451830889559228029693496339214506767913339229558111342306960127918525016341793769006505784066036263327591650429351738278065955805518696470453859318877279356680212293334964597345942748019933004685825454416757306060438918135060783373783714863366928962336722648840320934639350973853582075049678212680678359116977000129013442165941361968648087092061754842741559017975445003828056655408661682130837741599949162483880958756167431489740158749832828180453688321363817849904014215862334236197853576342116901406661250067709996018661841555996758300096783661560411196637778422447132682751486375526453282211738917368641585240967603435633375165574664307568601153637767846632766361609905336661512736381009128373144549576845757928051291103930079798219733339412942421279058269565786134788203819248414887097363258546119246926116935343135320489669292953998862882754888353263911872138448587114286327552531955657885785558617679844302735941577176874367941611932721225636414014568068190710683376383111303266126816587073430224377343276148103860404951130223320708729932892015805403322822772604023555653756526106890474875624742842771564120657013001940126681868490265173885111691085583070790668077546787810543323849209175288717167008159426199549170893805597733682324632378847421969341391244883070922076553016662042995780237801407426970263268140884937261159726585676957088297433988121576443299425824802549004406735624777088207928597044880407066548085906066368849621155964764485052951098816957010702190896166881326432835220606197151973713757992059180400233811326861993298884535695583736246657520941833809908530279375918098827412043371237552473392463508662413504464024261983432453804448088608096222585968125212443500432075153113826219727448366163839309166957082180438876635890663076992633215245430336858382155719445248465097799610003717906623921936519102249259541861902658758682318328157231586871355200613351291585205379368427947838192183368797289232349521980773332241219359048539164754061626568431645964319583403126129419951524115059393960771423832397179522809358245681307925506652888207678458904613966329702377909771238916764195036523248484807920558124438193778979891836902811271364870696802415868574114168812282872048496934648690855089350101909659215454211209982442510408988786373171558660070939559574927286122605213544584976237582866079112214709111520798285812693954307577853081840909827863647340656793713306068437456885038970865447027596101699526181256127655317381911313177163097697244819185865422428755161003884886926775879233803625456376053532844786892639288720539888556883402999984388114358473570073817583074469236618964225649992457980506147723433621214397475398111154701048785369279436858321989219076489798550801755947537249818209066285515503750326028293452312991653447362425137082959961868193562894528543215069813362066803607196332056846496344883356286369839106677659906277989708487016626619355725048640751241093611374611969780980352695858899347343446493432502956622998334001437498754752370418577657550798055538555491705992456281615335134921671229376642156387766544282070522815037169374793425602869802277576047528034768715831255746930613339795411042389795550038529074849124589526748349149622290811574293078435295097438932140917131350280938642477418653452458413762002737418027936558535377842646629340669524169074686910392784815444974259100503159215333017353839728072878156711641147193050650713159461614962279995872659927061860132654683640585679510629451458844622067352781334816371274127284339883497913481575571776160968402042500356333167498898861999377944559180857096114017362760652485505154328389981954882062672494605525021295178700811084540041942889640480107130384059669645902121294190358559895485093663914697647525692219708466700553130080302950147439802789978705843405367644509185727663552228059464808334109564624545179431819401554114225252722249782590945110491522474514241701036980918575266151225516139039567893897827958200916760338514374345935615983463200759917580445452855935993943607578632361942862639435107572131065706069890136213800037835766198663312343958131592507766408272846183291019670812175784882039396620111893401173034882234658485627660943816329867277124538995895347668859013814122904519248010995849645711596569747721229342567609038901935652046410640727036747144736967179252957746480129388801538448405691599753064195904942002449978532064244989251316011616468305319261255752727960676331965674348929527256820018022548843895311225537749034985276554109097693529811037848626877402082761201718673105677994173983337559075550397766970103678907258996259378874535157567995261104117391139932124608476401172184960245595884909635203328112008760065939329709714871556217432478430363621965840999330310031639504824013239523224340086221872136353154944397709982023556031647218501650946065101851395702215923573811958544141432444747592464178455180632900077556063068042473989067674725225401783557605214436676205959111469481825402161792731342344355167889036353235889974277728031657702387351682244124157104723532091707287106468378660673199856381168864552907677919600857788766738947035638509605387060335668356161129541825851164003392182255819634890708065954613368222043157145983033506489944949471564839439682477894315890345781269473658238929585313876393318946432419326704807005569148315519927169792692415107570729026875738636185119156433006883525661165995315454582381869090127668290842925508150304931936016563677436594712845760391865746327455974604871731362292413799009436618401674315025614158480769097590084732768417576492843430130998928098128438171694378398319801309562005345423001005206791756170193246705855842161146652771605643611102362774323141711092475210387279210264842839965450974301685339560962155346153821463501270889025323615701467424264979086266938207184367921247870417177112478215884388407825747892329835529391204530624645782836834032060201449346143881915292212395983898284718245300533860211586075195189725936585593508051992005230719007843168889190518442357479118794490136775512847439777661744140566695374208171491484320981396779784798957042506916982404122129022004733659272948128398552281767044324872964347903364195894618545963909812061469767732840227865210557130304166433801591138969308848994036374124804940518544196634792598415954578967519402437892390963857653039688923617489889963614152163300572170978403023408909679717854964975324709063513238695875874372860386501935342974191698432941854249528447586913292944168251308419659252695759875943979633274777807094543040131714977314128829906002692367974834802928809190852543505452727199668770707379310181890237955701661376254376317194846630854145847868773179645425150703222306789152258342617136281763667929428094345844632859175436889120685606112637453287096888276326168853924235622572877351716194832309798538469660613786232569983545166126914641823183886245568907407807443788493804451686391181325966908995814620281652630295990978054297591383919734610574506824896589551611188743011860621129701852532431773908484751436875169114486732527668942886592671015657668340515469355737964814365964640478453465675828442824357050784792890780769353477735393554404775905548551418434243749280994437284521429289932682607801356215516760711114655388935109714450871828297790837470354927669321501566828535516946096709995134339920407683642589401879430884468276394496065869745365023453289658124837389381138750234562514159482539752843427425107032640044540606435058133360382046119458340924003842900677827877672204316056523036766847588451180471914915968779078721209957867713246639359279279611886261929399114354441765653379347603105870718841267689536034867519782942166251524025106811998126589086899461929129540676544509290756453889229728552056016192206395486172582292148927018387771878627978937197101219009171840996150340756471212593351557041274169408922831150207391527528371353598634464442401813436366823828950311089700294363283562046289964905566372628436045731790076473340366092094226385272625947306164937425747298399878721452636868638505366261368038264074495717709137438939712258401823861037686903349643593001142129543981829196256273363524288946765965814225203893478270721457267616329177304585216367003475379469864897000467667151596895282240724771156240365026535992393197505981703481127005738425809338502631974275146522797284931622373596195378187585414546722989389840181648452600293059118269152398992150647637503988663275527820429472251951311255232009464554822429042797662528735927095344431878326193965296994870820902877361925145468297608302067965837055314503717915552932303136935695043069107224720767769257434265264765085528093524203792892809458004459409802752315799146085326595016756602031040996803887234001143484930321114870502244011117303591339990703454137699598713296169399832476908007847663346539378925795664712195294674553265470008493352873402022053170844899769843863046987644805593920827309034409571079572613771030229939231916071797403421053250398978286171677076909533835668491104952325771272314222791437004820618988905245236069049423128249844154408148595675811647619527402087692526740520766213013724040017268629290542640175201122392895570917803530801402463126592070927767634185192668503764752888236802450888226996556455178846364535481611448885542471923496888691701226597068216027117892494292614747406302724281338490712058360829596120271941843146003848625567478895591736271795969105708239806895283984509200957357230938024867402731611046192234756820111410306041455666424523730952975926182544275035472394020037200888239603725766647396802195822982263733207292097944736671957060928608981304759482302805687846198421355051060874858691035987070496301546501850231886920387668214413122050043252862048151890614162327885119859278011337796989419568730833950481287629094969772983363755816909284233342251959945236733808595467837170330880856186160548863141103189114590176745319785349133008784564486267687329849149904819285895067431731851252963232938728477323188521646630506476745068379919780884519577506102288311620937931558005667532185412107055143122510914078884838065587566002697666335274194857815754251148289315497289076462336793736397567026066063603393191034158726688471478484562193095105742122431613556907538233033636367114630971224124224381318693861186322518411600053819607714871019836846773336913002105147171125368588492285658122134353725806553857439648104186027905967253105879480837529112813796554984008093503964315371547022592289453830935010507996829582611826841435602358835406207820842509267308759018699790715467484353145159324734143079013139023788187353882344111645908520009959524131480383668406053209791737866406099743810876605942570662648786327638395694124092450024498055695015195200683367086587857481911961157288730245915844502006723426517228448130322535509005770519940051238763959377324600782688585457179356046392725912756840955640637782547862005789485147072525437482983048491341997234584618116356309748646602113554949231944024019192847515642540742055395199882201686893391534500122518568990153508250377411287087597640255605084726940546908435899813873310852556296325891041642483964182818397550867282640156884623359255800534070476357500817188223696510491831971090768129318734740345663069966684153256425404663568420658503360334136012022521560674386689583171662902566325438852830081198072083939907832539413630654621212347754831868378484207589044980417253531429707011009971638359892375289807497905832167050511244395771059236820772015822500618367917373583830348766521628517692810984381296300278153548296970540443766744139274286054047888932641447494477443532004237905680225626351905971835202323511165443562544036561924560247988350245210424692286851939134358152345408724445409761712035203817006637529972565885375481359527441873521660199334354628048101587473309966110909904455442428314174583034762012676765307908804311713692914738806341614841684234314354528034457399856838099703537254428079676998903106568995882267980843411570455677686098392573448735966949488504762016401489809122341449492761271248858018216736187600074543458261372363801470403582787356206966133986342387576322779270146224350318405012956533959773708374708763305807543481023696249209710227759601663655152132137127867012003800489003935387729181861503025928010108540310123296114641722136641859001967032958131578877747000194822061765792267485855077668455391875536382585989450971513593500207640955758652994418728379515731258103316208953829703157595617894147125938535313921378426911164764025664474957029000278761391032168868069555749634545082692478811937216233896969354446545692437134158685879417218193779787540203927498113352359868362753934647690660201208511349688755409307339118203300834611956337640134958800490325438654745339836960445058500749613954762207504426271716643539717279610206028345200361788828389554931634086631755950752437889988413901100834753943711785770650060126869911100412246367771591449234574681328966471739230388194811886266149238407710449261287282173471586481754633115238254391811566010742839185671945400771939086721631073934163811217189139631073190828210410824114409412764452930744992421692794807654820666521226614160598178427570785574226546416521664697784420995322572974459771631383567524149015222332008196962852347352336681694695685304496820962154838633847825767525333396027971779987001986525830918536205236133072568981908327617932071115955614326347482769785488198712943478391340335777844616031767014061905667771403271410438248597607634840092759036397307299610570850456450528504126899998564354680626183054474647972614203571547675292025829562324223898811609735689291553727566787566671037898990311994758818514426364839308362287130461334570938929772372378463660973085013140635780726289887343047040492362212220595804271403907794341871904534779129006897959778894023059348579081308421757351751853295696520927143155610968293197487632530345454127740117584318219371335657399443480786299893756532502700951420620435390224879375068835542253150015474737757555323663426335124385313633156877568345602323454355525443128434698526576329803455249867001594722686704973233374882312583172041435372373487882064907623431542097856111876264956815643158832563762820128153119167231902564196685710007813583412203854185357382864721931091728549480729709514426805007799315410500278232736020228469809929787385746065846426963406603052157489716629698888487979996275220845758985183835514515678215076935237399758765217175435737232120225039448097190405717394857552209844853102937030173907276516500301525678322128809122161972381253869913278418212437298251809946128791855775465786576476260678348282917371865505669137036028472892805274933885244602586337991446587541492387996021020002538969512110080342226854877361629654676591096805745743755283180488479951368884331465223576433951620841770735388725886194175519443593340994717848078183669355218724522400545911781547095714941983916311475051439125786295215676751794723565295329170155399662953771263643170133456350181044769854584144725557621182600269707675485158670378321447427743756649306572683423496538546304384550528122002957264697034834319568037114499411997450799971819877262253355568964134182861671353630536581848427414187355792163991148609176937095976214176413056974506964927913873408753915897578475538655785262422575747200315437329200559111273552544241584373297922452014237551665536912180351336445103570729605771704637059648344033881473185419441254468754844782389164403475769302003518622758310870890617550505348140724224662823472430457961794657186755912007339665240114117276007904576253779671249655740454812885444225922811593225565412768126044291137296577738466003820552289918948562392972166546501408478847126057207621607681010844605004660304202823532131808269705210873408851673674544549912241450564212806393723951247572431630826188083827404829626118657962689095350028542494622586600871530529765016884458458184956119979461795895672074770629161281836506348230008488432087221983379074661349725630732607869648731803537923008142458005560211041374180546821666893286103357317845423606230206482699170902461764716102988872661376417493538185683528801431883102594005668671881545787287869444488120155660547433360045965023791036521769581625952251105209308092108395110115328069440558790281262049557257307696890716467151887078853180164763423155462828112321787954125746585816000442811662850571099348628752684156367921166567063235971704968832443750821750611212021086213601481289613141201936446658365077509497880667361751024313168749402379899778507183193692606841002040998667928816905056567768293341264328197595434210660315779734483650533728224285275195656659450381731460697645602245659910353695241192683163390994084151704933119469791221657114539865129840983025396163586235421302611278822917237502868157543032504869095701843095311572443627498966300156467179381565272964740644801851177885229781692871342304730689144514640539617007060967780317823466666731628675955288785591882582762232161149683254044534702908904631903484367774854700442989134699648387950613228322486062475859182649646246420457658266861347612286868875378275004521516454738617234862295425212817974870474937129424380455511941863201265571874066601754972466469133121426572968272214873384370023708247422617271881758079685369764110326750056329288465153046010992591491263777943103138856464781039404929369165120305704564328173729571222939574025459610568231619460152011214876997664737234982564686808792009589443264616035378191750900354700713179315060347632533176535669227746119503862220232971578449657503610454314768916369276262175927202641861271703241437538257645522888868974489762053260784386768664280463766330236012747547779342590859076443760487351144399820171605121392654488164444316223303936473411163617048555557731200723177735206707369933246840266658119350822561355556818636194400526898559883338204379625400171960715857371844173988834617276643807651297773898657460921344718264634330859194737358056132227563706792841893090810983534656753338821172499466669680374000735894008157148108029798070448215456012193317212161065322119211826942426341351213206027804535285700504146362266728131295148924189758788033146893979544813006070274717362254988246665423255941257779757149397194242621094121104269004983264396294043360379569456101933092811845323444883790017353031889590932474991970803268551344985164882203726584579765639279300061870926175375174737639710448026728739712115852888658334050848875272811744920531654573661725729363396149843251323630316162503310699154895838934405292792065457544497300015195499099454238588155283255584856530492191498701148354879787070554362555376397652682012752594341810934837121754861492189323421801792020562097110182688420588567527773005073152720189472565787780103035907639761237613849573165728672959904957686778002870027702732077158209066815380942386674058154496220240560166808143304930272795430280771114435167261159047751113300600045241983283880126358321842564330505916480934993790397418172456944539806104594073887389141379153831079409371438222170177584267469495777689837085287238534588686650602390327936785674579511520671436763258829838404987155817322619764176485157481243104204094534773176576534504893841444677600369115154851405435981957568257694247845308848316383873794532880263424396624591939634010664485311648488723258113307950614368630889158567135329796011904977062425450163499860789271919082835236516435077648164412070270270376244004229549000635310514159248721290472999964751357877447896640757878123658051955085635280732950121001346916527534314212017087696371003626370046009193347837273998526658641422694358583624470865749420575558088935224402203255816496725828481531388995042143727365742020163160923634839711085958231979797307913131779270855579117992731810800784375912011569461577719122582921610897007706892340766416501880009312564036742898849128660422910424728703940975322157318477836113802845294246581614169234648596496674181418611577299748745714957535543297709231872864638290675738231019994081638317470656949568503225109620503342372640818863904615727602247246954901579711851566954694090626939984634396643858313338910165583726464377363400210151501866346511869630880394566490551003549207749422931578918671951062268174778340724850735782819152553113006314636059232034342335713396646474857574620999832517685096947819707946673314125257785959239203267331377169045357419009314647476291705256678582557764863988586472529915904940391979359920268459213297163322562227434854294968775612759961507306250735894513584300039176871465330659552093828636298742389920771896577882220805960692248070313663759111056134575380912342672664644338258928894575851610016598579216791222181915467375711774642363374283771283599229999883021601565229581988129997314693964667387790485477982769041207444840062325584187881890545616896186542406776782354242819157962573187016290535583143231132598409308613160012073894864890854280572673942287142417579243937989321420532448763241244264952232737993344818117076032891044174862003748031844262785687465633569642019674050907557307071144483839148656648202350876644996263220139456470316960624386877535587194454452138285754021635534657711317091291197998537970933873276609088654036005779049848255094596485402570883203831376016996442478367611476341377891593548213594010707592984478440366696290233545627174434272726179858236193436869867149327241096814863748916110118300350262064564495996316132782489288478734520802877677269027402370358902849483862772799165970424730376552492012546173545443804296592108546172539507202407371192862291228931534753521432549608935750340398601255226198002532280443827557039396934092747472890171734589071318675109430300226782340446232110001456580531933507033449000095702137290845562169087513976148524417694726561474237325671590172928062785396353691092612192250303293419902907198017749047055632842567366198169323042902556187788004694525452724609990381424878371267437050396051313682323487137106407150115606982771990292501379178072623929305157006874879899212832764228664516284897432395627530503466921617432017782805973053256458276816780603142433256032012320411415417633980098210635654734183489552185597827614309974481568583993808686503528063669851302010200843251473793440706079111781324448498589879976086379018868193394635111916540107351668801295577658399036108095836050442251467095584350544440053073111040937070767845162812988176495485213709443991121795567825954860266718932163481755624788624008570733498950161228123305310578643516565983350389903466515589642043098614914224208701449652079541564192244931596822419779670557121451644820646338519765706521911283776393226007555133509012847243416059026759625961416479351877735563755567483262214023897684465669392024589386772232299776229340057791212226930922915122387050641910279509389549903052977743880155110186894806086531598396794277930771494413775761064263695106639943803579556406550824130216061786031883558242949285880856940999716833784855640045202329352926302815840872572559757159071556402904650703401117954343825452434181131811454108951592813276287681241132518273640559358634051665690920007074782052079844959710893881908851514990155167090225518667855946089532283461271175390509907427812378522920879400160028526980406161652187476634879975756234851757452168258334475572899452793324525015770351068672907612056394014411860764907684984827842808097508591849677746422276521037017004107961266321372523343654666047536159257580371257284809903633692015457466887521543011202942170834889866073548219602032803164771888908421217920412651301467683946265004923351659749369138581740564789085308299956459927009664951508187419455539005462219065563835501948961636260100100914407782388648178975149418427050701658462939435102656588425122908156059493876577343063787683767968848338702483841494757163220620841020026976129399658906816264921279937220917809639136640539290908647792133467885968199017858521920777158994934196052474467668543857343049699628397497155390072465036189174730833654437604427315837968244011227153080108132208796483765812342417313111352443089490946573031194212125827446468111120364403618697624947956588129482299349281485720755012790206580772591310716692734416366639446253747292837078695684738667617733536424774951265902934736754683394597764479141969398681818115221981571071670908883916301971853371593191256739336229785348921073043979380928274053874074628292707103635630477826865631078766394259624618546024706860564138427658944242400563211555414148026520683402441743411000475396195743931271029383511841866172868725233930872233325247336305867552417636977334832159150776922982214263092730955614257777221851111704684075360277966809500220947788984617822046219886313228935508522304107926048231893572066903056673327748583493081727180246307078522271420862886762537199134506538451112369209440162558778686927452518745218311546991170903864326122068912403882757511340778424295755470634670823770820405573428321995032011014070934788402788356647316235503673136878173580264010207677362650501944893967059413795610429601182526602130020226020919341690622050674011331427630219778588650379786805689141736100154498644364979041151766015981908189594959662030733223586475829019327244269176517052905020126191768219066620793627566726390714039482399162355914798446354616463418084501204155785488069262912448428297041733437515522365445344376673237302447094427802238151645818802863777194148667847688141071529088984811563896474168445941319634759892519808898328377715007316180272253160878423795957558549978217907257902184504244354940794839217359206781496723385104749608099107257349707938757037390245451188611051655540699603410587774181926559812931140876174641609683354271648342716006784910614386798853094232528521964947959768976456010974229014657709010203767189367671164639417138289110954628038049924179614558751713118248412901836256486792710318262224910470644956042394256619103007848057359198747342740410782766854256421750044847994688402733813882566421869626736800905718918796575177237635614056757351105425432750699798040023589011530976363040044563765113963424445218348452099452885910121999466939869544769552187926946606832325751289427951928872505709330208740034156285117710700882240381382738529884537930804587598424765029827450755216294235665311143073608682374624670523490816850737862089471665654420442181990099019710602244600506059420377499422681835431799793749684916148371647074187749685630341549141044220362788327083604501579768887869699345296948315139440080997894447129831406212965604923219978114098782133778298532372260801758006505792682166778193582313266842531636506221102321338052288593989850513610510919636662846342232238088089220185028721731223097747999908784560691762908306072007659033568040082821161068724654572181724590349495890085286324681812936954142967281842311234804131059110486312252033089116776259270606726965948685429462160851063266603972344590691189731378323896850900823777605890185440144301245051206871979458007102758888345415221882058041063265304642662746306358680474493252376418073662202616164011197884762261283152295926197653650665227119735581333410997937920628529625505693381744536818899399879312244909468607970697326120860556854627141760613186099278912389904016953051783894437784007274317898847165212022768466303645546288979908886923523112440841146812446382001331842195362781563422894437772253138521758101091700444691387748570549149803628897714261876628971734788394719547135019925056225348941392257659965320155111082826889872460626279815813183792745573426005656526052316238357169116557011128498359102455402834486203591418707781246387172418123157134582403077073872347179912258363601979964122229957886113583643802860003043942196693440058408371595983528355554615225304060603694217182850383858950623337543096976420712402981470517363571600087319700671209538981512737913984067483522894195895246487259389625358695349341062016413276212357254676341987051983835510088004578994776423624641786162008583487887629422974068004335529626993545331606888015177016445469662299918641852543659611814420054892903397594408328654325016538143200351564726451308720382068395903316852858713028622397642374624620315794026446918026934909501419784098615501621499360106307063869903118057257985218473899722602486193647319509855690057483076388258334319169654957895953095862683294043323585245410696542550736047088975435052867093269821141200493561952735642836362033049881844861384287872044821241362920400539674143358038801816332551789515595913415781771815167609801621814258463371124563039427746931793539478754629508638658223385779130669087125210014850361739827092881451802417127957145397219608022727603932540513228265051926746186073964267078404803498726507003281186324369477751122274104722375918316608497125135106327241166440704722966646015376599396492680602572383077988862316760621928502711721571615584905240528680716001898653712859733062701301916747397323791172786034910418747267637014301137018314394522382773371536318873647205001822102235624968599500278932123172299690116450481452361090210834733696728851693092426490181821481135758966677939896003989776033149133380141162327819241616961460839273429765029971892297312611165224898868353947711621173425669433380368137183216808159884154224302885964200887046126482063656035988272333648321202028151909860508561464502307367638826458592753008641303425728158445955938258700565182686908386678269133831669344980713189691387213367838864298460625269747006153701131863617023185174007926968176990233056300611050428487183174208050026346291105426896013033505399627425712144466345839816376968715170282005081345737929409553967559819698630171455805666147476215717309397283792270337232052628004446286777946133915170494718514635018869304006277690682698495730081864086647353337984059149701390998831442354014724803320440369209562737305409158041824479495759357956363634205105911152234656018452414758462712676936662532551189615147511457838792593078737895534705902676293669469620062852307424871786664126773422158495084254881142978910482741151906609975754592527598690338815690110045355625317128995783673511726379836795122388920671562110258456710418516873010701741176537299614302955006961769288143786658870689794423101034968628528132024924709387837892467278001923284999774351922610437344821777370576860905596206210173138627875377299321789889636899165960116104945491360619255100318886292302230847988619746379012703623906424140712617350964587665126826280223256722709119815583735495497028623731811980175277769262361563661319109309590484739167339371856615759813109712988632464476046200769393420686919188760332280624775104878330693156400880546235406871610890144276092648593488570062741540873308736813968771591656372932930680876285508121743580984584520562701458953929984165688455898924067526870772230587365681336900333925820530727549781127308540789308852818992933528981743658980513893412365583788478947249729522547124007033062216265804174959603168129417097009497620557608040313905682619050370995467430889889533383066997011443221953958539891471156732834032920729319965220213932965031581702352923972846743980717827091097497490932100429612163953492223739843525681999167485498900486194558593074066863153171090578243786291692236218096348908350005329606315525948452610422218477024029485052321347461889165136137584987382974546487786744153854045643558861773543217952056482870086297049099612113263704354727770992219422118982524708176186380667993770737073986330397760526866647216846228882887805345686573987077853511702531177070777643532864509232063936226381886912270653634844860759829061123400449067406526636101495341414659344079892331624198240741201179136871179771305800945918520044154351356382984549277719700423565323794690585256130534638237040048717041221308399409523690887202664051726978784633278135939456733336464474579695142947933665436152770189682727794879588434906039345960554581368277803683407341665006104789351679679636803570933550981992891519052899659302168576985014846144493782177467624969993784788334931966981387568556174080044888898940486560325049029567231966064798080515048068592167648743551595595850132844662172019321400572142808203079107704862919597437641325450583163128742726383388120131328712191333191709568961804251667482868464521509709768332180552782482397764828407160578709114603117906339869302613342998252346949826094103890580011665332975078217818637630102879849785553024506618902055271744200999604843081744531619228121608574402131603318362692831697984077586703371315020863574026457181156664542355574242915468739539294528399742069753843123968333042276748050970936355172891929649586472729106150763657131696653316922982198781530402944694236100352399571329894035570275680917088478938867166829974024822841791486179296837352173964378743005412637365572640895537196030841770581550251767508225654982519581283177987262589728533402894975753049308737545096348763114130353673332766199224511910568924672620315038793183719886004350224136685395946827166866832184711216362390048495849737214109059229761930532084584162728897448604281414929359001437434504968853663870196205338586323719501356548701926154474982871279144436252498834524552101238167064114208580446345529039429342365835681191176073807529142510308260489277191644846470122762753638139567672418662162774116165742203201893109923937167022564875442553164535480521654640029239619376824432071679263097269451163379135195753615174374286514109785609653053075438399411844135966305375747582864948210413277090058427254228801443924630653844215098158393401015033385699612954487635668066528955188633859935784213102125844028973692434188922021004424862386801550718779902016503624112371536778566853764623843853376259472748690459309044863055134170531372859111730917568560650209497894402541049308765112023443666185399766924238433767583439907707520437275463444383294780776404994153555217779332060012923894934846745622232382148030993977007288292939011246387326037976258623925689785698111723760585770955900067604991366570586671150461972653510560801691374658187226440090122471130901676814612387134058225492083979475251290420310724041319640052029347925183326965623798800588434030323153478936477529950553459881841852323428889135316107694326592969102219492253874013582206779378312849977423765001649692367009768748681109999489365143655114551136977417498114386434572390747423027464663519514083081239104606071306765662388852250298014639639141555453669854933186674895802680258810647450581610678978530619329416180516627837302884095123855054847652376269201993363001921025837143382986666014443638666091807605196027589584132658896928938571054044128012990771293422971944917649641778978648324545159290591829975778565524023217906262064079107786030625191257781231296259975916286713089692682506554560977186868981168642096825024279929830100785383605559458634683061108627325915352181013256728221448233051015568657313483169541716305280094314248279043678288715323325866395234952674318018322613485024576486491794695752860373292652395256342258433312801478624028379180089711644981699591106641116550131468026792507706035658007339725472233232360540550966175638033462433546461970381255081092664241899901566072664728216922945919476039886447077405045495638752782370896803983136995950279605413746640163369475437214022021765809179031821496961699619566730809968137575121498115709253808863186501525524578029914291563311742070454664627170730163411437529857164063537451628623822226154780418038806883407205292122973047062840054925192502841174721821709570543874356756279336146290726805267616782920261381381331749239806448387624683792257780401883204049009281147093692975318658162530278004139055337173926348962339180268934227200688461436057782191713248470402661839573300497062020276245490719705087322955388083197226483341559729214375189063970311403007457295184786854110709087389710665699568865204883070849032552453372656878489376987440474211602101716863380523044683120450988819363979334948887466170671518799880114353232291040759926804007687045821481253578022104073613381369404064287195621510593108727226614780014326385656688362848072513390718809633274943727228352525396658145760326030321272558737703190437991370951462922885761090324925342359794719147224539224727157456963830332673694407034612886104091676185975683967937005623506400201498132520465512867508150131440651484225882407052531467960329303351947534897122128440709242162325650897848358614351409777319286591006478894649071291823785867911193762159621465504097742562072126976951515708386635331945353988073900442928450579966469504782101616050472771173364273595773799570302739381950033217913255186193035545907835222948698770304559346297846196415672432659145627196969499758087186821516695211079999974751936774911197676050012174335372424521183422984539500452893422741127261780237499214987016210651845172775052253760617359059583909612494536903164579160857438143682464399390836048070705947707751502082655790466844814329873661980234590551589866045699237982507104791387862750734799526509421730911963443297120720204423635849335167398274799702823456565328028958973866185675982236367777693608059984345111535552111270429300101628760858194453028951456991094470243206869372515470720454929336478835794974242520720739616876548408032164167013682938550338482040719433202661274719605773895986287511771172105974281096553166830772000467985222103444542476238424105905627432262727407419671488437272726894963764693504702474157147220681794558656799931590879178042201996957456150219752967919321551885444712554820461481315604321761136366793119470814773998108999797518900520804583785089185083879097875625484259285940800201537517897477708457548941074204401293134279146526872950909195418176274485299014462231670837977009843954450400334209792253707459495453474674032260417250319015387023733376046330311110029126281252891022079641579893270584262901263316304767549356385915342964847080683217350098978747545231510340121078297185033150163675805990369524348324574466859176781927897615186560607065313819667624677006437215664947514474587533152277696452302276140310446029259819248369832684603415413586316580723926619480455258236354878752640741266845612106311102018778917375839672404298570404291782447437950758377063907763116955357205060449888383205353762558332741947340258471521953114885671953789188165260190097076417358900749189036254218397796329640468420228257245778679054056727913079496326194035146275232612111557403243814629355852104724997474622875480441817669061948346875368445195627193999169829473871314283851287569839371534566666662411151124709081943617184268088693110257729412619110122232803585382682934144549405180973741862368693879096875487185763790886081882010361434925495145219374912053638670430097605607170759719164142637188411975251837854784611180344862310103194070728510108441281604549484843650785983051999509316553787000155907695573186057341870256626208580748864791000219739867535835348827143474261714569912878036579742232444712295831243119435723544414167281170071362339813182712186728987743582684519736736192620870527617582110701120749288039921746224504287338263293135732042860969704965083212659928959470609164425318263359790636059845250769528483904279915030318056929688559763170449824211314816756123826220419429006131414731794166201587320484537720431187916163928029228968342956138317469103502862874016019553886644903615269727469140942490905160157532142992772537076970568094390069570763337123556681130605578491958625028308548440014814719564846494930677514107420211565554060967161050241582903927146869896531555521748420824870276546932471569786329283963129530352429697365765550788871691837415722698341488578611128740519611496342065095927274930728567388756689118174042254616208635344750856981216392954149144253478459005834573456214904252364010217434962792205023417625457816182106593509752312195340474927667876213427075149670370165872074228361819241853993768064492686222019696009980493761526882391234492813375517733035483306243615284407658399134337219980265802492863066950869655971681857925208877554523931699579149718691851085098609001448391858253866803810745643110025361947819522279702044009308930023877602793887052665054798347149991403690224302042328382930394405346169696229735634272975624836020146569651495383471921067325367280447970747111061005591838384507467131575288865076396278100638955887597016798771221979873709809227867507377714705653790207587563979740876870320329092566063328981588293803366882749090523700815071894581515617950279833935442243536735887911719427864112943629512201860350580896302839479961146626991238230500798341828918619844023929659029531892423689998847388496312451999732010957789702870107248708541303569046122985213754723687908301072120804763520335600782092831850495890496278646713148062626827206103398768284793496693098387430151492479120603638367882784573787153632178933201145556228534328436498979163461472161691747709593095301441202156520136563098675608033603571507174188296791892388327005670418342149675647986268513528904103483722584995030014837558040645200567443783679474330129856039662216360290888782664824893807449216789480187545006438760876575501593679073120240981436379810963915474982390276607061842978207556528722627210333229873116033589670890684447552899982892947778558037386978654338470576760868753674843890744197293946605448226049326333501302617850605620967618460313135978889203513143575989206452169083722425558374404880650473670393871008153114028160938545835548862851713441158433937906183184995578437454190079401998984773795849557104502999450684316853433366545165119350086838290630755265441399372342402972703345900420244392057389157185957337704206136310866344161901029020121787419911545992715667300120162842388634179492986190090739308589209981085326864836648596469713022683990767359756281109614017122360405250532155033566990154333285564202797151958269636605935376568109223628986917728717188664035445377758824967926552259079710670446670011946865070097161089720977525798035879705215291525688005702641138834323336956387870109343119651638995077949826834322084561533762545443183069940757733302060506810701819400180376389978008268737571376331435518126008855378297052595247686111638460937161484297256125545187137822100785526945901003499532488655358509184835417835501175631195931727854974673017413403993899823730322832624266906082453877716388663774349861498497951699148874964604707228908347145987354201983566445167829271656008740704867423042544010423615115034952795988009258885199187462439700893654108406035951248321334507798148937146540492270466243282189874098246588298992092837000916324001518050263528462490516892037709925994441872809868624267194487902205683728163817233864674547260205459137408989205150118355728671851428202715247921502488615483585772249374162891477654300064160187152831417810437811394564947182995189482768878047651454060531305064448194372071325404593047073191809718108519028409078821863238291256724047641749883745845942238079726814317256974940381382875576818414086394562810906413577243564911185245719843278665648318347057737741220530904245038205918313382599377717892355781624043440145589133888871948115638269273393350905823048595681574503803651823913257038596687256203949560980684299792438414170322877769319519525560028093191150754484631716673123819659341783764618408727137047659984525056817030588183316832513849225023658428449436263387722953552665520095215022217019014626201475975328527928373187634880203103544043601923950947666297235732665159536636023244777021905257935820041692667041948597729943280093681926248639655563995867904801915275178923959653659549501849422310869334889269736986522164824070762969773382070236825784925492013584564348138657709741855548604928739065293125553702630054140426878219002563506890696288710852040162317052287647369164871210614846064102328826678629623066376537914943625915784246341424164955503554278988255172060689358295534131371607961663087830624396816232404839961287690795196815679445211946194655786248213325996096761962775562262762062107905517087635990973814837161564052402292713310334661316424198496728498308006878878077192438631643012924406885595235626856669031901349375664200595575496168954659561690777191365223151298315380753568630003962177945058622455490184485985455169986344592908192996242098773198787826381874844907023451344362561777068010850390974812102252758260488798252204419272430990411006922654427217331412351760787348200221007855150845415717926672680600298690473384077560041773794338771910681899506821697382609904183785187810881873643993226133912454489706094393468270749853483593973957162676057021544831280763629285273018273183294993163511364008585658151775133625418409429502842126321067807287554459045419852879449925823211921185253961718456235469974292767221922737301613749731223679586267170229507722884560418870558265088275679570014084879649449397997786016837109413342305495383539813159771181025347886556561192082978707456608110656431944765360312437607193281069720346698328239050056473192450542669617297037973445953859106989874882549963261837710861732037644863710847356681511374433380794148168392549680262630703373518481727794534811347768896739585141125791105032525560121035065053803074586497900385860681596242233498547812963347230554870140329744869268826135891590992103820232604838352378038660518213714326441724130490484798057152059745598832040374057247139196772217953815010156048604277128639455342262786658101858273973531242480755305083422821670194068574467624874764046157936889623308735888094620104588787266272996117664200723055124646772402611679807651660542065269489939438112609591467928933315257939613576142000966630391759436191812119347391324716573254537240562489681987683123307293163433332830503171346332132284596385780928430954723928843890613449483789877582248306966032047118630962457267056908152079161267772247235900734859184078553397839726258878030042433607604414279556893987506596925358374514329916062696764297395518305218246294445324098154649760792035340160878226079645970550630722651623225785699073834232173846735194597507959612894711112943947965587011926770374832880043249250853256620419375656196119497049691128628820120776597399539170154672701221851386212120879413852323603242319593743601263309094103820859805456810696584265223081925578730026555851080254471857225813286896060744001512879339645160144431579379807625227081448751470946495204084527620177950712701774994551849465219277919411509487675741773050143138222654751030351450918182662269189779742414420716011599369606905435475619302374274905001851136706980200826804982861396948586517383818549323908014669791439199696391306154319206449164062797352343412626012885955647015895217492586879585599525805214663572854579207305251305140275964824928527536864019841852018314042594463356126159264898065846595249242394343067361581473844658298337933685863153687810675494976395621391413783032669926737095097512887596492231748061937139703470878980019064591117602525554198257619494127718266378528548359306356694911887327216257302720083431076956078219412381659399194649724979643351449879418879564523667170705313138786070275308569930441138765758907099450273603500273863347453687445199671707496411558393238920613770242273258177429582767924809838368598975257174336294827689048585982075085498224970462734597206409709724803967783434010460401520980786131355366763209665129158055218453318124834332970076288719337376705772383827989452312800860964837723903991857050678594074286089171192507922910461803396577976400954747249126992468508946475060263626321911531557552425398336698134035574426400429976479598128233110896171930506786953934994452001111585345610899278985407688630952352604041364038482033982873009755274909416276197867628712498046323517467702010411719790327175693810222621206782827108284212954841236373881391823424747381069580187543991786588418545966034075401227829566109374057546094560879884708618841176648153286944100783633691908477957927466924744533332661999323364438481451471624908847936218494594124613015261251463888569107042240557513919577960866351776656879068016316469362715036090082640527977104122016423725200678815129712238344001314615288832910415631883112814628043701074027595311170880762160728594291903789102355489699612637587893651930864411153303554661271267271155916450153917113779974027472648794810993008034141970483635341315420496907507814023210150375942186326891340009643280908056547816400572297909142015724523670006329746054196604301968584642569802075530872937531547980050799006556707848315181019755183477747385674725893162040607076937837399120686007337597315686415464494975425637633073306959570459075560920117583913025988555028890474195787496479713595925650122798260501449202061812487867212019855592731667774087646406002570798604382606333935548205515253833310586042584654042719722200535020490722222212017200060054418077196766356552165005309086380794163710103838126692900425789060452174975591856028088947921102999954723876795121419742954847970610311858567358792945580275987533025233448461704693738732687260479848110612305154093190151801888332303174221737802925114964000849265711926346000652985943076674671600040026834696662217124124164855595165755094379840797405932125788807737309475770283208035402233046697324691561714840832891626297300468535181606830342029260304836916932208467100802800544215171777275492960191106036444041589717333878611220765755851071608659508162888779630218131081588428933963220140777790678107467518332544388068847910472857349507732857737094019590666166931791725599687113772485168941732703363821083313291063768783840843610502278840831884213283786719110103996945202696503123218740033465836301893292887718693571496768301011652484628205334085903508796452961050395865996017477578414343709711749778369940536504514965007694192374026315272273945007623482299228852121825025945213747680294757388557148299242337917264734769911965809264178291542927105462880898854701807696817109525026540247006994881137356789015794785666969186830147876234297701375833524305697018824953468076143990216032375566869060252506656614868911709666854445100484880110897843037915417364544626578896306554419133144739522080100907308899613364803078124149211431298594949068621659409056254907090252245371014165022874233702355536631259524121834844006561980145222061319132785447892116451368052349110234230005558611409824396607680989791408734903493534047359447174652891605458094332603671568895663820818340986620978300263099165553903424023870764969816059922625894786226831689481889605473608015212652336413406427706580920508085603388534969213100290152815169486606871257976884089144170477751538529061201812734396673029866903030214147354280221242380119282528900731978385500009156151854388110502529141325468513617369284086997699361284882013484894442218395738463099879455733152071335647829160750106095440913909015084924683684206858273197405492116108762885371653339971330091727689109510257104871157792824474507424794400197375618360813692204045957748447267178736206164164873592430800940957044712361498810285456349492026758029303546322200326236687406970037971044694140463671074655521810112207034455147198935946568463360587221606367200715115861797429697766351696387209798792051748061154660211308749467523960123422048331631770979114047903357317688906827924669370579178771712545563320076868421892611690028763687511615453921955084030502254513063244259077343722764566487393889365265028082980631492873997852982067426105337972731012741665323091223605629040170517302505372234020376325783593286705554201000489165447571359983330892817900061503194051738802064946905432545019717855887295676973510148581695543586191147289683889952516764038746877146346614312801262401217837477808824991420085551699801178681871913661932097500127182566967235555748456894065209150993680625916394964274998356483756691002988939444187983099333299196674895680406212869734707468576101748632804001171719349732614933064946298875317961038996078960486425594633331647431386129975567273969793652573941035316090292694309224918211588892176367710251208267039602125548134236552094967882886350177264752460638531343617623077444307974019960029699904370825536561355206058477403418307316667236991166210000395705469903030290027019372503332137096253935966944142601539588153350928953500647914178212472969601226297941281011749815655225514576498094137936980789237054389912331179100105735598086344896559826714212167576611053902077814904341379000345189716228190472855007920820579038331687118178357494530447242939419885730866371155348503156491590191468861646245206865148308015111174977943042658560715384404273333156028568477683557647091617645468881484521465355668309459124633550061593567839666345214473051674769698776289221386999953883146552356015228532132356106597418132288996097473556287651931460322049744798308285997195946588101251132047253402586187679689331800383080223417505255647966530211334819232194906068440213875394146688075507834413777035175516578072924908709458668321583363181381288740527791162160046450833967079374237319878150677888172994802497130435305618692121188412171747657170770653194490580948381538132866086794480145805604877241078629278617398474619064075505403870412238701274185374708773206156452229343259263648935534128158263383265838241118437581495492078059579330608674017539863348032292819723864951289101986638097181314899759231760696869885802681129686498390295650342873552196254401259988030278885618772766094790056268225059332184325611770831337022812189545383983833846497940002887936767614167845228675624770964154041063193643205775598881703864882260321657401434918105344416577540503090125279606748209457695096472039883116017660583395544429292491421818432970608864438700031599318862900524812426174132216765560475347705733740277713331501626599566245431953868081368973208095050927248296358675028716216102876244918755206563020112815523394081541886880982649396176826900404951953483999386229035108808630663814241282062162991651557111973388204451411278497337840676903222025905075492940340233890578588078998051068595243022171390074412658123631222382467505349819429665554405262359744811867060261492657422273250024514365181867388187091696828737977364161128717804949136744437636925879441591801557603730325171002916423218711315162441646342837196863126222488972664042230013250139883830095333860061403185399314229745213465145955490417274969085067752985355063913313691057334654539341445392726619760358093236054438649518707727012447770134693458955815605077300472195770605688244615749388264961519042837030946531550272377570120396303074755592720449335651056860063115044977876433612914052890021722062617403224943188162136265645919278778209032391480263693750661450553703990944812310681337169163349602758438465296165761876324657935677608053824362574687629527388142040519754643760083871240119760349961593970828033533820932410599557473079148132403559416803185596805294638617638041978224492883046391074964096338594738645398104846480848221092962225914091434525464347851900271201316980540395927645910538421101840739756940292508583850041092164010539740027919581381446697677159600174086786962498874780644456133700190485876444468877630301481002973976506792589700669853486772222539767162412470900333289280615431293722822578433231501625554866275018375074384174049141310142049849571307806198441081244005989061725699635772559376379135257674487239255128327406008396424275821111153674634206193256610767978592085529829431005442370024267457322056183324853568467244555362865914058906682298653059704170422183426399430492815775503261164893525989083086776965673667751230690232859998421712121053451411509834918673550853133496974652541841374364592706921244685430039945507206408734852820378110927707798432620401821747027959146108850754761736268740734756853381129532675276845779371852087354001800621356502356859430875538994564339321138093812116434633025664533878517785431390093032298461133588920836857006108423176272225754804876870169127208288641457127239492309184643685334052624742972737606337411262858330316500728133122641284710050855891871324863738932610652889091311418744981183791065872475994659969924331022283486475767284719109686542195960060369221982198494212423095491751243380591399975992323599036006535066830770536759744420354709463372032248438043978505467346360978974455696709970668894083453690972280661365637400369308858576399157594268345424073679265547282227405909786726961764135313390275634897250145726591914750699769276593816624589440278710277874770850304064173370588420310006520452272114017914038275072099521941561115130788990105338244753873809730643500596369414019698710385651478476667320130735814409280498265013679674230087517908555719041046863336115467664958683882503251076369004463465264521566438925383542149289608352405394916302525369967338137800264280642239760860035338318429441512555394241081200642882701393158784902664544977279345653038160907921277266853889186821068109051612701841052503509335240261980320412204923861085042943797550130626269786388689521851840592735118653586332441760538075661232832923593927888419688302107049929060905463410329408617593707478279530825809840652658396302342971965572817053672294940554633088594501085607657507861838570003460037259184816019011780789290065220990564261330914095373707350744521037515164356323850583083546621220167789458258534803630934175475374222327848316198926196410731147149945560883152646982914490443798505333936043650752092960225695023526779505035755869824503062022790472399571874389847163843482878477776765275136876612241925585349626111108096366952768544177745863682002401145109308567965950348203279732693296662634372247955727105344882244733894417451436372418001014449738781901292481119540533307032682625090696495836489779275263451077765365019231262223725591645417727512321756736305571464577573804463039557177841016978759719874559245854762217972434141341762044878873617399727017186018044824667943067383199708819937342762829655797919511650626699494265658751699285882242110295021520557034460205974913762993209330126486013221111813757844755682925910515691769720755328043915367708607469187858693324752189471752345341093712942059661171310132837298819349656118836125480081722736343470113714777839651258369665534513535169992246511593964319520875082366041065066917318357516315838477173801655071350394578747076688711652386681187024880439486585270938117543823482037616248605859877267179783223603767477790505920400954924963388310828857750253495057685788138658817294532546446192002368202954793874545868612325039939545079248988455552617378369999957959028398543074456783715168047806505668393441415711208420341332540283638934016813696120086647131914193798587415381664761907391445346181813058011905747420402983695707988483124359995970739736053935890518361538376366045109044390306294920428113423815310542149416135451653726145286879130204278762448122744825614601267494590255895691914244712327772388873300324560698199261423876059936603567939919893305258709797036182008697784670222681525888234011163623537629762863011228495122403232725881412923366843893725370358668734558703857595922777166719270647650534914653072822550046926410198496885744166656885862846627057174301328002485493486433118650319842380963844597323345071041178274563771192758485332203202357238641385044456069757566273656241388199148117311623753210425751070182989971653419152548444873580152458515454436124263523009913045194243643386969553370641393014061862280105716878552930072939122337242909957596782895370166973513692507950679070867657006832633200203193491872354178689720384625280115507422986849673091044053309144588216977925776338747955756834922148372013631639894938416477744839298690091262922009502373939026279691032145113140364059521287089344824202108306668084309055089761940049231663495044208261819709350777325515820816830641442088513098410717164845502427435846711830673235985553220407244977232857428309311023428086485021605563080452618541370783313598460026160868551057894954657927326450982480800395263439900128821760652615539549078580887796479953115966554501610289876472669203260471844937677738443470840790342499247735314169126278891910428693676905541964973145113694909582758619932320345165080532234642218857778742724883180543733776224040232954694410504124694419759674756200473848043263961784401008096520955392680621294022415661548551026608902383249933203490362258341441534265476510241888217415576608517553836870384553111730944511117015017182109512901751900915817879137808602107745762224090892740843003201347885770349632829234922521715602286731319305520520585592547150833617150018894058500182556693923619313254804493546455102777198262050689047994372348850936179677861823503512814581032387848888054948540045056863174554421461287415899769596737457365819249185722922362247026945653117236050089810399381078068786810042958328580564271301650386076368172401966221921753945495000788287509522047108723655114183379363688029168960980406504232410345052818671719758420312500439491322046365935860620401328182360948672849429467115332518245430611091049379890033521486824131802624885633070304230639421518253924119031959656253597773769268206044679502544268999753600251487566949420953915141394513660218303887365002576997770329638881929381158427379673822571032097733195976240394544570040626785820849170273002670417169937552193114893226858924168677625010325678781165752235112404600703765860329108891043037092524576653193478345862830667283827083635012890050812673204007584984292402644161314183672996718885146537162656319669004467111424961332265927631120852660240118905501657104495080793432084542951365923471868301420967286073752175153393860268612462606785370968521401136146916786340770106183264916698595020607087635223921709701125961638105840146653592526191429923093411793478961891191331242231888530034746550534401157569167466820436046723113948283577552096257727826772442328135172736528680567233945162698909460683046683010137518535253050179003004634289243682366318316189546487611963816198007588148024133482555873244532835437429843299370916733434913327252477707722068505253425748244612064120590140287571939192094883633565039524649141342410937505972395366310510835687227667338301636777627203596681052447024908454596598788557378301871913475712793365793997287287617509507347058928229892929065981072918470881529889743402283773952657647778771728427845828806019471596897976262380884214994797133815764508802314651885574638282353528952419706333508388361543113385170859341928441865603199442274458953881290691432525293984550973653647576359575932873536758200526478101283480139070080207868927277141611160207593587005501916521602252910861108320831060040759591057102205865609072827408914201083371748550288007280670357081666901011340752088206179624008879856993362696874941950762195686904628455076859698243935374801500909468966157976163790918463521448473899213367687665718420674537764827048900262663168252908475174083079304734916207474242364036219151060395653187613834044628462295154047080850908983995965243751826271985409240679893484211129397592784254656902969540975707311531747827108951810299661450666014320890327239411014508762531847020199598071629626800006175875867142327979114512119476675319156235211912021548256313214447405538244133888682410147215974874964762294948472636757128310955381586502946135594039095416775927337403631378098458642713330249455295045849591875500667784226681616439615762941161861043439313826668190084927680032879340763308631450699835438530357877471267045229062138276566994061003116107914702050358317259881686160974768109580051097768665441819536272589689837691931538711310145168671434252411930813847224515947129949703332343462305487691724428839874274437806884078589412274743874523140217982335854266032747847149314249508498008871885457927366650207364690985030553960946825404061662262326735582066521038470512082533980409291386822363760540910050103548563370514854510131114695251133092987984008828758974730715095027635744626590853452758502037891953703800707509411479244344943188496932829079933901724827130938878269753080205751830172244505996168899815273824341089322937953748574951582549689958519273781729176831516002452724749968890243487285071936899788607218826658211939514708796677232189592234990309497566394581012354257072331371615174284094031895939718691218688845042643197757958882364753377773936664261330031306026014968587582034132651692516771186472149801508109156744436791806787840772965114813528195540785762005564999430935484395977738176586943964171352382974089793057892856459624964063296844487577736874691556703194139303375863901346013385592027403305241057635320945680440813958284638260714955262239324670915830507771185083916898962019610584054729252673670354286958379567147293024996325307923552730021640564739695554376803729116136741375010308310588375346015637510475681936271500202470159555937122929600305076798953076805355999485731021942819368649312400388566843414046327838473735700069166230609789785511037733524775470782564947984211578359048891073288919126067035680815640870798726251060376580071858673254093915569666314947287504462413147791082078959485269454666841437514681508553891759901194793014332317234455366818733988947612946236445323156580191551258729647990798887467469054747490052536034173395664506205178747692059562874857677090283295862506453211189243477870006658969000251440661829711624375712406590544610116794425343567837083072578292251075558915976272405846458632924813417415470181799796234166941616719762681785758051826767821677567939504162944330854972559362798980085329062752537517450125873406199894853687271462418429138254182487030939766112662889611268274971678363631262645786485360280696283865559064568336032242866076424165620013494157109983810660440955294345522014355465449802931752202966108108740269454065629590107099719133795389047265654929322496624317303186912499479420891131506128928768784929899540432956726512806028081788906252209215740762784876212630615150609955644217028095349362889084968213286321795500762599624934577545022078079692924760466411990107071555772217231993432977090960149327357101242393588349471227260850820743066629293637949982382353053897330493942299414527843685407990682729928848229380662709469761976149202358271946968300144023587940947782331078619427281252431164877143017844902192398507113214911393317395864245036549144788742564627146303401755279463336233791692431440627566534078236106806564564281016203147727728716925217206070350764629057361954476177080591816534984880460218059349101203274079744231418386719921062288461536345391237148281255345948321977629269921646264808112335366082595009347879252937214909055827473358882510622006961757125537715866386250169371890111373423631611305999161396590431619948898135823784453842559593905903177089304240758293538135738017441757134663278665716924688125271235810253986177553092562115181349675874358476131731567378995640761619208580419606941931220362498567413776484130612012473916508957811235636427113177638312933040710482465274273638862567061324385062936389968907818911517767949251845623557131203460754623436720777261234067031994592458237229146857660315894422998454261702744808443912756546702941533598548806577228968569804586575756291238112076338260445152077573781163091616439969676838846495519731654121709009786505599945155519625713671493621436523365236644653391333649856136126959667390489785637902022162539714030384007186400352358505410774548955612616288269764076670872370722005952165888406753887824101726274310218899720015156319740761175973557783387096581060000445811135143244244655050920538575069876605385931133468385262004009755387682409268795153840654858980021744171009297153169894971604816771757884902290249577935868182394206000434026110075872916701740871197042792804780076235578145981336351444531106383278636093913045743595325796857286589112923877111864461126794556930311917315546844117187138741151831235389187111576966617382740968181897016920347942050750090395240665030817219412409170655515456953957614670523381086169705796560622340637200456269862184153494418863057541081053085078199256547407563723660977166234373493424873305316197976464822201060764175261848744119988754965101704323242168192983801133655644697386685219188984259218912496999626111046430527433919685739854546340216978632772949967146585065912389995307902010417859016207830704865506581775876933729411834502428798653769315336183181696990399230663866059728754860031872539573497668188380649969457079746364401093753954387861121975103288677332442228866263336127321900953273821920534477681163666446234016139672483901893704326947530404287723951112582851672966003609450757734281175016108271680771269375035876272746358338335602786765675625961884853738505151242173843502039353474383830476105871230532502416221493682662326541658233288260865829989619391432446716199350565791146413338684949867650610224176267243117020833205788338652961271551626676489488779625498584318891301956731263557090987136248927179828930036441579163124753681805614631500592499191485364709124254716943971311197174222083979523812419183218778680296113158397255497688301409322140090176280552206069926393715199488924045172011679996307298670595807483594504140927153238071940911884687786003547581526880135080300744916918858479375711361938613637934399065016859832072067363296698315198789750128364337577541634092252783047004571942566865450540884111205064274357349931942661564733548355121769923421369631778925213852666343220216994033724991486043495833948502399941890956246047495587321378533499125269379780547292104892130388998646087034397875712196212428003265025990905966810742013750199408841957113168202293536857680597118383676088436546878736881370527813546552090739943238818596196347305674993459327053581016794060745164410640670593682622156908304950972581721053446322437484532449356671267847926853650902851537633116783803571930723352665851897950714902197388644131363128902902532875048838543553892648550586559227998595039760254534840408241034254236186127187810716546768039720094030873509008350252660231368686552228229531968242856989835931091246564546530265901050542717918256719984436042212136618024297888215485083407165881488071853395806916185477828086962393042816753574402646456159787333047763399287205428663524540138129491180694216757949466405636091262222388150172519237928873578452262546835822511563793564769784322350855499219872609014931375824868238631633739153180870621616966637630503032059159533696537179459446555732877749795355623112169940851190923704114115917942285246216108959223515386996711499137658691034984572417285437432861700141010331085538101480496650370242489061728639159722044170700335015229077378121680984265530200448852610112038571426071178590441790073268284874820460729386557790930101851420996136338758962999346421462792062266904428319826920716763641715942579938588075697894564623943929884460792209556825755220233876922695426957568293486768199171209755761677882448546715582027035754951636269343895880398610899686703353603043772340850948751041670591576954165056828915926128808987619657855481103965743291135642079727888245818441422261338585165692422433703961253592315053662517639568569845575109781449405715804598430808890040442560442309436095584255479798793736951466865894862404793101441726363039724534234533209242140213461441549766925147053609933710374221067974538326113508295962958778835327305264364652010877784625987792489179269079465148944424238467724089545902784442395033605702599107268770545178372659452867038012019801768357112492424244378005155167226054686541197734337808095169943662191134794606905029802108018782055568543411267565993147703865006644448585569507251331167177064133272947058816837363526924298173860440992123412330705597485297295419289936560218327256878364693455257383858597930553373079593955706625400890958913062559130554289404857558782227769886521684251335009318096697145875177977156572532562367766126952937023704348064326402261411947967653896710698085767543387236002460347136872020119731998903678760859267914206802728310013306013837497829572291924799258477773565278114393471051783033922905789311143588208043401972879476000287062737391857814233566593302542945747826168990642568391315775843243240084432581505766900210667988694959722694280389434749252555769713444526645678524284437757959634298602254831575798507763253390727261941728877847128302647306996160796854371778103502321533674084621552458028337131045846543167886074333341167460633549213657819691551902239842003322328083075635196896803450171632122345300092577158553250739770881025790246444270328649987187762422140338598592931854919791533730475983508285531812641962188253065299800411936031375001058824706271105687950890865377138855806752316253589224556196096221052396740527602998344788818875848524345682028058365041665127627661079870659948259744346738073892388925919766401545117341993099203396117531971888826291321203789230910549949919372332666989333807784766770974991216995748486964321429682567369834873364618385037383830684375588948043829181866982543245545708320438183441669491066882603033607903821771640281050845549883462150349429513799979388954525339719792699503943146115120982900776103601958502402513946566708785311519511531630575122684071812838195479573971779959459101149117235084765254397176428972380415710602863549770736713686707183752129149230973664333852687482097009774367057480017311519786291369800932366072226581184534831453358719072078023047811530116814000297251547893630396286909328247901100312458014890858733093714800269143950353569569463270332375081669444673116242202154342484826151203308001934524270107897069490469629456062372980634440008085545587147000735195545093478129819602047825657889971045369119315686629990264406380994443689490553504663269798721709311924591332489808386234052172628789657398282068472152150538628291916193171196096546891372169200270701923450522063142466167787207319158993898629059317603647776644898118626804932049495782842413543996885076914011051956044299031435564597011261389311282069794767486481798176004644756284712781160483141076393838545083553732771694680069630630772847331066075031430733191481173363210428122710572443837059637854068315444268557126136783579816675487976065145170486644276912574893016802903612038058051204574173857361211404002787226689729831681273907591455144426522857278645196885709744229402581821606360995132906484437423446627965387926842913477004447660674938288263336758238680333616684484183989385785453439726284766184464591217326760798047060888826503340263148822268124524881218489980201112425315336483409419580538341938409217180222472978470718705287694024843641297826711924349660028080464855839003740005179185939277955895969002526110811192031272013146487044684728697780406107428957896070858537118877876301986591372799071390233435930745430981936960533783808931890830877735949383839813614144824102920664699070967475796736524111586455341743231476159644653028908025629336014914212383308031115483432362412133239828255846090670926228586139756162036502854374908479121265965366952583958135826861391080457418729495149971446081777302398397446425351404085525022618405294678836408740974673611048623386870583310787238385472850804472594736061373700137932554021985316829334989303616239833511907184180500843361137732515107608239761782769243263748338665864216514707246451463529633785579948267685952443409764757189437700967617204081540119077289425992857287812234122782532429713520094452623173750238307560009194488233045319216952543813490326669707380177099960041988679425412208544241217751350110800927438366834875968448833554502958674106966949288573414380961011702452308703108183325446649148732165274672668910999030228436481962864079279376649187446758772744940741748341272509709794271878503735402743812560297128310580379384453442660343293539715887911487395777144120668500357912206520961362034308393368856538641554288159473841012528310308257946695857118982253960200539917385278747438344645246627103431281780165464701051363075787106406813726954600785512680078793209494486588330239087534433604457406696747114594057981789263068323479201340654799932279515926688717860114294664583143070486750365992375182401562683872427388473933678322027671526765030594387722601226446770703888754751828411711383448317875216339904347858621845429207116436305215145648091723293042586957605861993457289445388669733139389959203929851508194392300793713477324836673599498742274659009733607254101835109019337903861279512249975767476794668831216795362160926134990726028847823173498620330998032190406255181859118446408486374057125912615480424428494827214996869593640704764381053084450343107165498590775215196934141957984496894364234742101034928888276523855528404345777707431506010893956898155422184081039428081351452043262501462215631245063130392089006673046967226974742307295481894211684683928989496324370493714507398915382511383811651144876207910542472036841298834137209745997586063103370135924551916410727925937908710104850415339189080288825030499761112962481234311997758562439407205987208364486166473301388857914010063127269291083403493619216064486327066837741941315430499677049104667246690366442105604530255003011335142543078404777826160957397523983210083362280657068875032612928611205601557064004585476258633971548428417654969587404234401503389593400286394576708771198456216340621214289482567589055972704335394768425754116315512159846007659736772281420140842256290848666631661637048685663454352746547752081262820041461248629950979119206681886440617088106323145307887172715636057986156432238310765154542923960870007250211124089450711486790888993814284399666918219056075438191208041286561997116624826776328669801099647397570421392213394300381554210646470528152758316323262699076992156857063403539368752973615565090806657587723679495376600697580784702999040454238605902426304774238240259897591616248217682996341489425374386679561271564084994557647575928855149700701796792014185453373182076404892828673465366487972348742399491088764795063895373082243863124425305630104883528722326125364057529078780546623904795099437110035543943329362879509632826450902332282354051601032306476191819109134260028652451073342909953826557302752818883585698256120905481172505208900505716010581889554936687762254676918355359389249385336245201595833728907083208298427089173916271362042731766881016385678927359354581519813948779651670405478623436654943768855169390727793763953436036930893025986323683979941184820964599913402276192739279469469578802303256891466708194475149987022666511964264851047107061348650043720120694010461905821618229521072993731059972245897737879948612433905446499478952150944565956897328772087921146120374866765737984475546247060842390409704684510402655401062661190142226832965198842182544001917609353051230772777318251060345603403080909261552578337132445427833763165904342643778893476102726837446735130691107970906378219149609211062847649621234686187261884260010844568241931789275574130788617077840797166315953948426401719002336143759181123132495303441163130636260706108573243963163282505118777744498554251907261156590708432937903491161063553677301671101601001592670714676433994194942469029370632090502103909641722950274124958806095971972168952445261013279006023935937150724888346602853699799364535857298508228356355343466187137783800230871676583854604663970290663964670825048074288298628526531304088731919061131528303422970273503388020623546025955686571503557086422371784648736782366314420477848570136652531948947316839632125556899974112985160725420399156700038125517845185062107958437194791826897835781425424895994576207959791180966800164969928750933425789878321339959693646847671498428858268728708644706625105526363533461334598152053016124909205112851138460628412710586652163418657189446930145849725215796720474960377074312519901312173208539882072115956771415649153286314033661817880836726736485626043154386903695355808309824863320754393758015562101799315043080031085000064637860021704985426839040705991041736886954943602202156051919074938807562996598500262239695866805345093856365250715485846625264662846644550731725001836234019399379697783276269455000262038831124545001487287144637625703144147630532182790357586734749048284368215590386010516467663824576276356713560743740239747969253838272034155895420634220854226998821217889126176908425515084106841134706263176378413057362554801418369568437352813230717426983648990160023577777412453340496906884114200687170507772584494392664921392414305711281351912703790182085721424209579350855430591838890376961447057719049674204556738881390433247247814915433040560018899936734587862178229526759466794678148581486623561142601349259694699594960040356522821195729375833476647447048000505659566727689367980865005197169195576483831967825665997234390747785591474192254406059511474747645017086396225088142785761358616841128935626219160384093742768397434452145351650654605041666444012660047101104447165981383519972775849589715377782173436436687953953514713952299387275816650577941973345000954004511053491977943646135852260737382443107908484234483265267781859121277192601585749411512980879373779450348208847278188775877575417958871127733465847686708343321638991477277811710912618304334331032228558841565546440188064323226711813502520801869294468748932069371883499329101427004687725391396798835404830017049041206800906498310875409793866134553566156144329112524416289004779746764949156712406333640486151411508412590506914168957462043556079803718798618843634362818778289339763712703483383031059726830440596082803817638034267883829573509982684721298998535310060566566436963999501718693680170589569953999143722404030024520566427545266214779559634873126780553072432933510977932514463118073030548199449151266307425317469782993131035548074919745176512845047952900983093807059157097465163973347700589761537478976898383058888962767554163517416613142049470400253899308335369054869921013941317792658035202819414226739217928262030675710054023241980194669321268744342716861991515933281947897286801861202494698003243653780371901206999683645024751336832321012605877450437627065325057733133517890264093697171489996251420487420587111075664646346400975895150132109883692732602915712439571364164895522604647280702502559168284470989140933809161767398676310590215701448154373905048784826954819749505411521359459751684575201559954317597699629183495153584606199846955195660412088805224151335243721037247457401593343842706780490517197432965170517625606964190579734149611000983820154517447111140967559662844386759636366850155835177758921821124248675739729104612203344712415253335973761440071721429084025813755863947051565033115091919112523625067381552617270691258928747364853046481635134542130082621867355830175310486767999021773701367641909816757181946784840505884062244008631209416141807497103860748008646650330123757634316851378248683030320291753732434467965205014550086882464427749983190483530356803339552951974600161048596102242332703916859419078319778382408696053480642924154030090129586759307275355789199852253899846063755474516306159156138303088413650253757266202248738228200349086440847317443875490997328322548312438679900405683472170716148302544050206340178634398899515181194384300030420580846415917070160606861325008203279313478984815888082602346114021845876053260862621046504844225962503482569423396832031981044643199696728970239802089439226585807881126891519738133137721232090666688515732939192082180215538989906931683294501848015460751670256496062864105102427729518637828627592087680051468999761269626201056567349751021245834201179765212908330936381129863470732643605378469655672104582589393555481972621531074715431641775809083530793432044028721818775785838715139575350985148761489927074537458058080809519999941450304675185678733680422239098402045425025238583068173995454533694998166083414707803102887161166570932746952573355659639864480668418179992825071215210378186301047689536666549871202509849941616846425133856718810626668365989476510605803250011329507760183792485128957444917615442268914564948140196112395127319526484367660341079267083601267481484343256006245798328433317328508130980274692889293300372985060312793101173988228330601907232907396515860490643948844533666882248232487350559957109607178764224170321472793755341265615546124007663156004682526913923718840027865086415797658175771254279626980397307404693517836795534237500009151490405834520570071320221361323332055668123792617748624274569293688249107693014450785814995931949709052266725776893683737631699716413187381002369829220163799934584145448923319745071630527834707651962627046305902721803171655310753031343455300192193435225942972802017624423054720626878001248048272588491887954966520673691788277047929397184563500443548294347609021348340334947467699097315561055187704835434075039667760470127237780160091667800310817982093822279411827950857262694982368450745800975920382400540355637485254874917627218542571949633461573428333513256675498679160867020315456685684043415001131372813207896612064381119120690108299119383684508360021918557481933190836114213663219806686632544250521647390731083626047822512882697264749761426645734498971630837463062378415024806534064862383859187567834378621880593947819415803296940252978559877372147293784720794699963957319645191185445427463848541278269263077557198301214901808090440702436976103108984372918439581482069944549638571194773067503604394388899447731395892077706313034641208887249533078004574147655124434476939327051140923994796075357592659200864141403107696673181573274517031162515070138617965216315502922383554848120790326266123073137467598764033390150329450463060760231757970593524571531598074903745626930171222456513925988043635534205850537643853776670462515077627700940282680556601813485497832095280332591989368956203763579265404463542492400971074091568247564643527709394148159702787992434063610457196212871313775983607525668751357105812953134710173074793079431737031693075718359764395418432902935160563328134688757414479100444951991689185153037058887398520471100823134717538367556222554532199941158303536493042823682307080590850215414995994523403576270170784785076785830067890492944858890391442462571830506667192996054155479142859628052320432843159646717938538582346996068437349960912516829764038003677668270492858479128059410606013543217943736949311438060629498886808818655351800487558280202611664756613433341606776963775327069930640305899548641932661415004239392477977210382308130825886625651667619094478217303869071635234695488764844153001313698723136503357722173824076324487347828032338857138857958227539883325453107549293538342675664312955643170555216901913235984027117933918507238585340505673110559264212715474161413284041686736210809332267101398382609146067259351708982314249565383653716512621766014383985185752555398985285326292423613347988608986849466907081987102671573381856494282021826859583681845318674055078095244399499594829740542943934135045360689774733368779946203190229493765765869919053341682548839669757764829266065667121268417246142433123879548680191234939831279811939945233681855060647783402386908286354524974176662749892591171228160746180088419079228326104843410488002281930481451573998897788420696414649544863677348393811843681559515880102614828017487001609172849426941157715324486649727364629481394291881889672176387214806740782309551685593382870972976330888770758932468395945724385879614954580434092994610640834971470197944753837590470647719139343274315502979118353573904403145564959077075790768476500157606825684105331501697595250633058470726199672321105137338527023923326244765274544994849879993797111796523458312607583161701885285889918718079730722191914748728798586731300476915786968632533350863424505408823518124516670483915895601478088483523431751672092802617313175920512815805937613531359027073257093110415010075428751176177064511974186449290858592894248191531568907751694555501136112710536720549007883781021315058890037543460175494519822483366590415174750130437559710298487360685126274948173820801411064390170542908414783953344252017373803963137913716229978914713529615405576873544329943676701674407686298512579194611268581354641812091435812431151737319411269580928560662187106512527577545077393654760473605517322455659405993855766972014835505693417131263497349477214442094092254037699107724194384987942673448407587736441007433793211629460388771694398751471707765459720400164573976210240418094637867119050800722837261256625670948231554875459034267970060582933466526680505504520901835033991773232585226689115181431878011463081920702477778647116714882587636032220684826319905577560954340709699038930129668219959438290504105246843844575082530868147376563263899668257238246636157952505449052503817473254494019462128155578211868612540009116372528170889097395938848720576125820051958468654830001100908468399867095563053269113718968216052108827794037295768695604951702018234393531144597971649957026534614313026161867931019652757462268268597191971398912570369837092452167453909590661750608258093174708677057675465001739983689836804455318437538250464266536249663436251726926887925556972606153335858438502921843680816995309338234311893717477316514454374343675291083448552443648118523940966621880296182283199341006700970643378512854744742526621893294989393496850737467483297108521228721758780489936738477256318425909487907770579433304799461920251417312814058333658234021438821101159694603912310751821054505902600678795239871640652553382301441089699783050795267238822471502326141973456340492512701823332390840198459759519082235544243488699180286633416635324148187126797692031332536940047713393204912851625838493978882342539127411611236175644402118528044487949100432846179253324259073053013472224238515544230616757841329481323968224948436443694835684413038887180742437668984387091628599178220019389599461333818519011387964731057134019040098144603493532959102569027080309945917152385944318299867387047796795577238121518554340737327146124220272081845496655016858288380244031112296145968870574872389153333541327074655076827685478809761433611809623285355592793097464100629978230487828997023131472880917034333827719374558794444816354716553781199118439378377590962574243679119672208022295610261511317522300885040171660755409917440529411540642869680333117200354779573569823949267310987301236778716349978501010976294116773848541928620730714018003504370003081085413994720048686515455615644724705216820034979030952373382746617147841223009170682750366590351612528235085514490690886757915449670454089082138062030759030135948978707296682226229644123857214401761448306072440986747985145122487066126359260110140252040232033370979629561886276672529132744793995227891009094536763964306037151307601124850035267943643803458880564175258425328277674971896630794310107963833022029154782074012397601184292204874287206520111150886377906421349875585265542725298405706398379877399251017859481456162376214244733935643486396723689996149201763837478556328126359182583538306699494867722816262724347424548107441170362798843779895321477526949024260113123244137635522075393310625205797409392941527566034477390352945216651163246653284948108535342461833683846214359677820044853536416656855384139927034047743671765257044280102650651125728377445330788270438053682446820757902933199199432249694597490008511256802182760995128398024268141194133740635299001265481106643248604324441780725034556912416233913652654821508091401394950572332266293981370449274588768131217967824026800354945432821673684132933048650225546042937106793457526455292134572705119409216419013496000281729132815202686884773172091136741969434161474367053565781319936356271292486135500333163283123584734080704601267019519745203773455346336800457586096185845866653662618079965026903953942521164638390032172291291087427478282460053665896047517735640130768911776142421931520147974777096632976155358149874357278462575632706628021275184335717938553105327881502503615520280198507702170107715462263750963611724369291511204179317076597321753970135760417616090719598342171882012465028480121948894090959991448850263414792070986436816744155595407512956770452147721307875697319597187713539197954297426887063149969963764027137477608710410857922436718527541993253880038130545366260639961512055175195276176937365677635010071354606648809281238946243193373191100747918895490261479127832391275221622563223074004001471812028465336840620191746701955380180401868887053632082196175556896151568214108718362529119319693861746085102796704940500948570022883143315470827859439510137472700072156468713263790861593676894485842491393825350008360579733643727079015783574914563650887611749041143323198124398054488130552444395339014018295932483524467796880603154108478015007849224203808290268242310116626545228572847468644414125857879953179585358675639201076186882490479853961324164212940736975961651067999771069967144376968160553489094587739423194714462719899864002729913356517498863746951683129079846321202645204202327616397039003299558427426004097493633595932726697864975925619490990327224555690878643463695260202930969441490798674794153258162359004890880163264321848058850647357180383683018629618762269126457153955872966883332695620988273587867950169965910924630394802192569243463368811296167062489817593908656765803159818847791829348920251753152859026350773488698505322650722984065092852017967139054940038634296557529843622104186939635050980006219996356472668791076738198041547760637860517844140903783070324196027548354050804434911065199413367720610682394054439980293006449726819483603571928501514745078781063217680041609153211874592091209048623138932764386788090775472077851982235204974705680870329999187928956805654937486288792324176114393881902920795500760617602188566163798145214112226122374693773711919993381450456104657355578803287552547294305923980767417351478554256724767153572878680250346355496388928678827311184696167373178030633065660995223850568755176271535371647675932230197475175245348248297761377839785986697669775590592876044704744331622962211920586123343815963665069936758269413592638502975425990561858121659955001738472980136102458040516411569068735399454230007987944311327862829184261268668217472170616233700321017445069170047567323034545014837726347420476212341741759574916596641012085492422268033632380569699859261853179126618674394942502729812993380489282197611933332048346170987264658518682282412330486604622020100732756036269756461087975371088976244632668981036803392356699813956110244008028722218506370077468669122060910170014036966462987391352879624828972379434241668707735199365380500321522315888668561710062803640140952796704445136484194492815630535432296020695819235864946095761623355247935675491739685419660638377255485784106440055262806804689153113781065015135655462043387885408143392249897858424193053888734066442403700387136089822339226032954677782946321724663822013411466670760882009533367998066080489522565858347070323469926971289328756017329366247725218930171984177777261548935904948868250485838128988296473715817360609886186008048700824049232890374656878771270914523093917539328628329811516692115599495689280653638545701470506219079234502407431103698449689077861614498720555815618912611777841177677251542195752404665228247959805072938922460114965004058926108364780639101349147753387533055784845213449025111300275475157101477296591327909800584362662761286909767072629251279984585419854697893995425773251737060736639081775132703362425508175511504467933925676257281881124241274924500303644518557719828637817392295499416691428997968666273242699696560959194129522405773410590114061460808857856682718120071531084592649352676409248397463207004971391954937026374473566733052630199080489502023752828151899538931330232743834037669192605253837812035348500516243014519009734940925722872128495109807597005165244303112636025025857067485892817045123670606719883824671808180925611580201454027447556277271821711679434225479498794891558493081768128379762606063967188604179436030627054267984632281689331759254705609958700042402914752030894374553065029032538172371183550046677058695058513142649930971534767054338990705130604803565285342993509186211132194654951608618531466274291172802902392560778759758433196134534809986890941605958344244148985387725887828033280343126182618058788596113236792016801315060310315902941934086027285356263942595310393351790169968982078856477616164878507058905047544165564676693473937388274246316563881202181609945477504970313346325089528107507721876183148029010535377675508287616901210652163559518905703384121513011800151602701004368868266748834105776344739407196902344548085071508934857083187457550918166362429075780161283117096392502417398313935942784329496786900883021086236178991684069660025571273680482873279097816387785177662034027788059464463283497569390869076305032151237248095580922246842751713867904986145344927470596418980347719354720384007215910734663453655121896554621420818612946720439624572746400275618854435437205258440153932568949581274099748851007862265491518524294430848266795268152085277657407010711227434269241634841502184435205485581750778892101864110636891502696104318794583772612743742093647350325207668818532620888605953404038394717834863402436219132925577242926829871424932809334319142679340385416237506241246145432505479010817605110416394776033368729306095803312038376503799325211161298584362102056944746515831374845849686191933346849066205615258595194046476153371267600947404839394223470749029325063832720029116225415423629467549712392751391366577802941373300843374452898677737063398493309565756454879791649305062749431408188829896726039574540288265737908957893718703876646739943294283729339064110449607272464229949977721449839583533496317234292175523451613838714178097337559474739935958281997581051466949922173181180893383072002698060653522560336357082141456039207043687702413886271965489396480457369236381570871460910337911221339969688594787068243825176034806371165267847339873525854602936889044808928868555545962842359276293381395275652003469683171158060862802178211115280650655628174221020195499820439978199346979504816223401678413436585048149553967003209026373207717470597704743760226065092670273497701371056803674694084422762088937130928392852673059517550589401580338820639409730912025121615632115945556297269180398526317005941197361112408251920503140247783324119832902265895370772823636899750209090276406148614946537212400003665359948388423528062228864020358057315067234259233464454532385528702208158923349003285232531235532207993414186534126164870960014894635229991017371452871747309590740037813560169390541203348841359374564496838813894516548605742150228648433414425905680432208204005487996294550187133707293015814885553380934360255609448644978741990231637685174938269889013656278944741677993432929147921870253816885256652787982270153323402060527576887601761622102255053607778167953217065478172660264231546422688154528448254083899010785767676001264690054905982336004500824649312840571641223137365448227953614907966531829566102371636996032486500872451160162823571032661767831625267505310900793910367398545782120718631855085575970236242016736119712229339338729509519387461906008333017998934460591210489640050017412577252260544806698197191386792800407365570427658212344521565031273873585304930604509798701268495822095452419089280724853593196881005175596858152681340269724525114231292353458594016847574483725528277253188109146707978427862584653525111263352383340200770483140841696592551311014288319449923800021003802562818591520998670204859164542166986350751326604347170268021322887704638395511994104455765235162475591347803792977293055850147172551049526193665602862586633955783758250713018329814657775229772332135522777946663500973472379346910307196597386252540670149773413073598180819040952908269331686116333050226446611968215272006464700507269749944554959732337935017946668724539277937746208251414964616751162074139488201056433542594192370194180045807235805354658207935572584491759590676124650563634776781249306044329415302936546611984656381726259783066651038205089961405707747606265067187226598202019026907448198997870604081598701094494519458087224124675514392946607715236078319070891054339915915193552246133072476328973707824087896923370802502857075994046408004080527837623809875850798664077750351812564880463111208463121691904998772865138261885314316809566900628870339817736933239548936569773035830187864166863942393184611702903912079368833570261739335739625104955342631064449906216072289114912381331882583463226463652654205860813489968630099522888917882454480665591823145251540191796654417870862090162906813473309662817129954116288411088209618991869299233176870109615790176279892731157844896669607690581084319637952126623278363161172737315828274296573325158479122424206786115947248670719076797581925749864807952396650001187811402157797538749653952386190486437569162874901065121380951317550224383237766005814527097144411537981555670651433783440553169672947725985076018408574522466145088326846653501669198906322116896856136491922159402789938986965356865386133226759383283299129270864696671458628822765381748576328143597503790296711522336532503054877486696984483598243823703162267849966070113526365637648553274426659839106995893566652207093635447811992487176551095347346808186576664750655824149253268413441466578240520347365275726765682683983685019589571212072781921784593116262116271091105988683387859873798258588362706085713128655457895071044578975761879189791907704619143580860535248958577725897001077979721882212649547978393869130084058470870482804476426960303869045006859556369702092341952643224484085136158776332352208045840825116548503471601297711820951468883018186843654225441942032863293839173005048548079830555317036891920040404949829488735904618262299926954187253421272517274552587041432049562543647055955149285693416952986268897373591188630740831730483911325015496530278290463825625160672791394399494744141761042378731677764326745538624383928823921148158871905261618882278290080563395101787096234627534199611569989447647340619775429719625781427416678421453605309495773827615272173264086660361246114068230872975644693573480222095023781239666598802808422204878967027614273588330303969693593149486663875825216962256093125488606082525030170312622553848435672902478932892098129820015052104444963680396401757769509797869546761643405859821351879630100521157570648607138820370905279909775421557027683256612260719305807013667335000307955178540559952496393350416405587063031872942158234234627920737026762795471067226811286947697550183108688448848870722204469230177588696601490131974931172882149643352897010934552262007119408303531829256958144613985792617376404189166008751581907920497041665125109660324318987451343845456310874390437097682248197799395160183887100401791625264112752552673630773751358389963150881370055691561566982765324071753127824911409244649124423708760718675205523338085839469578873222028685516818544593610987857725207098347074253385334683107911961879391770833786939024829649825948948192731223067625060049245240907847030712948038134289912613605531958197138060254057036579848938987506394810080243682689198227142423678633881363669930583939688781949189073018738508832035836572297648793877230245137505241634066849038507303357074834834237224899510067368466252994684945085120624240781434419513449587120161629717195457650692313852466670832843225198402973453918247731345436367436756453311771320654844116917353815497747667818241937993515566997886627335387231523703039771607220882536759630711971235198363155546340181454183654093491715571630054149060340854377421398275310719992469464265259614930549996843701612585100498592126440592240483585150467808538450355465109507208718904005225815625657037782084836349283898687440634990519381747359756656355163398310951770772007022374450965272266679565795199532237512451136259087763435157447484865239734965990294097721817285304727997121896271400979986607385325037403156054591860884128281086709606952086779206976014826463159811062481218426903053408590159883479819453506754670471237816681181069638062860901248191303733715727591195908301535998099528980897331935311645397859577508476258145684868411827624005608649720717156100329870491608764960872516656561528630777847730489766963256233331991873017336980117595937549423425340141996500459677399599196690508083899416999267123356821524392599874983064514401536797353976820276783540096919185421400628994848018097694097355541082234718910116045238722073029079329742927720470457201717524793147545524347100323279115572262909832618660534722588833824238926849264987567281850075429049009419422664986829852486016298927881670200673090593304778470944338189730825672927342615114734881072354992498213809659831196161841242587348685901397763898113235623156534937707861635436629052008216529034491456924960823894771678191063915343759740866126926157994114849224158518757300384829918295720557586545134251935793291673468490529560383358731803749519290213712644889747444892608797334994403444086333591287248746164401400660833569169429022015905490552560508243680206086937973414841407901309268562213882549028223337082205457569829415328944495866779608841994981737333707824248905489052444359186308490663882928755800884551668166118242237782526011169942042200730193726520204985705126965378471199251048198852496678253642596093654476024191577297012344874402593989795450276304240607711314867019745557788793514259668563904954686761343652571992168796512835960373756081033061932128488850445075983289133484335487461096310807837514915554924317295490691588738685113448011643324340071118226358566719519940639305851669861806256560911612070257637465149795736150756951909985722567736842095726052808002116666604519974658534814636518752391269833901018353871996343572836873195671146529074867154276607511440376028972769657046507150495777479021743824421780792341376682727756586367478614774690334313170689205407244113539930912336915197033499812856358423996362119246518970474371458241106524487216276039745947230531686049985650118162400947001089315271384076152039980189839907675096994911894625082504179040012355629169019244285135324280007435334148673934928332533389254603826442327075654076197393830448506281701733335417853311962975440211870590861182456395130001925139921183243037234651293231717471341332871817438926286149763922779786698413098856106267889211613707530378003106582916883014130523108601613220558439920877677398293925407098433071374775351994398515375150605644492172811484914590270879429147665118275191626814272290773804859412214595807515735757472871691121479683120923795273878230753236043228865827648526552278807350327625337106505316929620776240244987785550164712911636854643319560829876958112153622770439223747886169365118024523809627171428582304253545083711478938473182405424636062831649360261152520803562581511462098065895332051937912909268450383826608162732502311641520839867950103287295136306732165583416792963285840747175350309713220832048453895503083031615511134147802415627982193228834193867464373574131427530479329950575128238859563661819007494572775886760347073436875055802745577170678902784471324361430634261319677139956806019608968227030702840588249616607017399417763114069398288910339312981323440058790609238234092607167580959540597081908012985707171270909451692482095710753838364229507997734066686069525342162004864670954807545338751241697741854956104778944928371737771683259319092419303959192958002885888498579907697765331964905477394456578033457550544312151008834897173422011829185423835534267170170596890742222113597770019553843087999256132353269939626762886158305045927699156517996332741526604323691992413545110185963003896505960325980694100488613843910351438120995082297872432210481171549046665401122716374571823918690750688100091512733970356502299938509399646021125389283070717360512450099883171367035346191486751206005559694265554405776769510478020664799649921551582011557751172545514540086840642214668459769303511159925982369688306387334011609635369365665328027385468835372070410238746010273377721232566114279153799249083068501803107740571200966720269584526767459048395137015864758672878606005912624548767235913820729525897918252312297418738250590896112842689138294217467442651336948291157753093787786765157425329209565888831587950280140536938526049297935701363018148909807844932943578500552714857204692257898059173053755386726729256910650318276997601227080139044990905411388525104779727971263102266065902179601577873838732333718634159597538262493200923887272386847238682898704279855369639347726806485207112918303437278195027931438121149312394797645991817982037513823550538426529437857553690783259970969387812832063515614139939302105017059861710482033943769055545364772410980988209782530760124623470905789251689773918776081689684091692490855968276894831483193758280576211438293413784463297152940788200936584372909628972141742051590337029228206961170990638620478669147372625463274647323606092291589937543553563528176206324876153476439219186367644983604588883970917313587844978003600800445150649752850006629568392916779695351449626989315860830287178154485841277976237630027758153877616259957034579788325672379223228687951785455495687412916401739741939305444863660128194125755420936295527567210701793793765814776995361655338138458394179537974420408155645056578197721369682080988819301437113057727951405083271724108191251045957908929142808847932583874206162023495673142220714150788359353379380814590637544479969382803087988618490292749256324732789362275523248235366123148865438075621005053113249840167652164322228896664088966414067773296263431638675700574278059433688866520387809247348419853687037137823975061116828611982907340355810368453569196680588054697525027723962859036667771972486694110166953014327071063356316118717444239405058576024929715475580055588650061099499967784658585447117383164062129647757532468111379134323543567772153769631538828886837979598743964147482713512858956663200334781749134473263501374764574699813967136968699333986497817807032010996762767473171927092172666200453545998586023541515974955670321547174886441287185504295678733016265431190200195122947710959474157043470328978760574085670117128052093367199272801952695386840771980436688819695310318961461394155385680630655595732628416772111627358383503325130073726291637027030496830829127215551820933256735151623103698759367497250135206901419880615944969124922933651547656397461189235126199629778942827386093255200545994333946551054184240360073686968985829502099663289317391679059578386928599265191093493683591127384751825070593578958427185408549896612586170967823910616124104450098495685858076489794605784193916535032788094732481122983161427276521619563167302321378880503301587001047822236353260464532841310473192321547826180198038177745963483451325140546502904494000984555108694106761883565299615878947620515453987608267511874042448905527409617761986187577708502097840803322827116844662483322851901184202279365885851316258424015564335390540604507617457103314080720500965261315217237032556253212978959449312147943638121947450706816400720240449789063204581084932712333811515387671863332940004506199854926322169425798092717669242276495734400678360201983581343644240152095953825928408755114783173403751443731703674641634415779521418147926765182691828851176906615057846369924791181399584165665432227713021902234229757260064231434837998358484184744782495661505366780048652582668313919480889468207277000734655874422944700015517643698205602072277083799917469337457465833431414068323252112919606013487192179888999109452529105874260515983737068537259113808057622107794977756946257118423058347384073652993693728515528625666209172382088681909342636515101264226555466495767299470956283015484459164228555358764376384750861507173364725799040700563365845585032956958953308002700902855519590211937117731260324129237012801846985345532857122250232674965258897046571673880089742196199202986979667612190068579895401671231183624396413750059949313827007481081006941040671185172808150632181480883275956828930984299132263306487239540418106111534118137338449889798096377088914857878992423719496663833180697685826068973602945645844919240687246318466933598214462811181498333663282169830196036258726695778679609512717273245867917886340473936469128049049691387179618272889796277187808436392819382030273875106486179674508778369959928756738340925329906062338608141734602398895069004442710724730463518367927805710200808627610905000808445106395065589398864388703068901632434442182359616780886244067547240749741073221954766588077612332732923123352553137472595613422203016464037716883486647977348889048294522376975285043440902562286570294341324755357034209447371111046516141489375227194089968582205450782659027344090346770798220716293552963947629494635503044460547497475201417184529351584432558272911759769308116436974409643603874879174443361119709911923843768449418362493248877809152960852563178881804626350844782572748506489133940528425836727009992076259363792730409431948237504936172575436353917144788024087591062529692000195533750926647762659911818624895620927916233677711621059932675385170903915561853255102112556177859877462694652898778379451802518651158896492085823049096469561311415275344906651328484686371647743961198133222299996602271614298898679027658225626979202231009775677343157475422052340234872152956697376586680877369153388730446660946150502939149425671325525425753723031234916435182279088983006470543438108640452842662795995874757890361400338380070250643189281153743593668427421187328929106320522374474822156357548752719425872347092966609125227821227443355471298968242930063219827635449964641552486751645634419488146128587249711069007897620805698132403438707528443672218708363995082845112532039255732443700717885556816774533796216703025948992417684419140916302417135910896767562054594133760231885549984325588780508832049730355100765649167888905285500174898308505175327325373559231781413614590262039971334954842217147171590363813827953601000844351597646455316861215815858602330337321080936546392239156740288906869695392221558109036283980354663518531771248801249826521667261002144859262612529229279665794564179241421263909908092423253800276108270204978746129803685102758351610759097249748261893158794969158501743552385139241355349764507595384656312446703039779989278305243453905475547759340786687736150009467794267178229007169485772118815105134647649373428045341444071865460230773409512123758056456710359651258831388120393196186907895908953673364295977570661493640123613380344549306735770269160192214848233185873599173358136828952664857329655716266990483217826035760946783915035276502476382276321850471160490156553366829253826017705340923258725765396081384255804792522260322516697075949157639919536105678439092165811150698191126907423449347984216625891127406499058205712166171538546583611144673963034810632291092698666344339318971260286022122294548638598492810402848178232065467671214308332786601490375539567867556302750154855837541064803848788548179978576679460063167686687951520826601844574273183173829193634986208903592048950543296486414667115090102359274471473948111242217894961374816871868057823771335818829618141634769418149867671704799341014354958519206592237218650950702795755172592618774458761961047658834108884553300368582501546056869208537508891964183106494280812788521685248880300225835247020658759311813902032696472388373867992912648515518002729174695227106160907389699638650112021725328240478183126489446822207337986721223358279367164960314972728473556768394003794844576388936052112748037369028508289296345956027246082907522875709078249825026916421417926233364440895286593986122518572378460130510786083015215732197481415364963381246559033734201972209516681384555604865027679376635883949431185327492379550972537503530144378830047943947261277117167841999768398825955748906605567154982717483308323136106981498718273609558850576342820768364063588729744942786558662635470824628427131887549559520206115892408474038723764217351976975209030744872530351608139249296970578249103710346788979078496887876994607970367145154849066884095258132278399757433431130520432487222394070660342476333741845957393427758264719929406844246229735228176068223428580350057949236832265632946239547467571766178797417941664968543690846279004805312070004741319349566633475460449642362041107767657811348488114125992833307172391410263455510469226882399525913149681633869335961499393317861185717298744476400393312579161052337382749621586515942901835322209839390432125257397022250262060109807590593748261792376270600492117595411660477633683308824284238284342675849618577608682554637648506562500347608558856846116538451210033822514349368903958028084475927983155080240158763814145369023914409853151726011813311692696535634901560517539758655837006598623526215455941329067788237120634211790114505355453832207717674504226870559308834518895818471619373542427889641867153265312460185785012544363899711217553452440620278608694262168152117715568510923007390074409657576081016037262481859294004000322804183783510791933537424371386242599618722109943672133100210253371620110250977394991892720271415170308915589309346678514536431461559473772371404021232417845407237519509044484369504241852651765874045659794892523302868818400410010982478429525774587823990392516013707718623093020281475314168293196514956718560735811942489163226347810173353985971065820689438730270696171360721204878204369546092104082522052755107581338827921920250032760097470564757897972953715393989144234603210953311987567052426874745464419997213446062230786747557902987818763412149932973630800513333976557014933432037546796199390770394180303047649647636392991462561647192591270362466179467451099069171996510064077780804366791148327495416829138900322427544697465837318160382665684437296225164898281772036421027606715381369443510091182297750176550496886053611404488053362445950820040710597374134509756825177876634927275198712869153876383643034282676183331119844317373006510339701507263623662231850751977740432539967196031155996954157667514941863557041526572797864194186199216394843793802759374986994215086843915601530162806868387453261492865556815780001327512295685845233102698951288393742724405020806868963689873758335934351547161270370258560175056235629935959808122950822604368110033540742132251184390928931942020725310952527197858147482405746746625001004586679990767114758265193896895490334718319392036843339906065001779427510226021749453967224677595250294585755763178839302014540247222725490210532422362909485606085957340355258805077928449569282282376906312000459373441924312563255808912682698901232956980592000401478413577533808066420169550417673378757346335669291115016279285301311800611266504181472886418877202511694760996341406481284554717839484375920203017829577410650769844242295227869612521930387911745549133269727300749902653355996306013184110724118913153488006687863117730123200909648705051244987471008412174875920042622306073726474034805756449819033611042461717393144302034238399419540728579285971899364765610854416222816047884618016133222871292581568709928714802644359458952813030805611602447895482933045277027739169667156334807507120056390693221752223722884544318314552749833779112104493814092381114759822721612302354539155821894041530858402233381826598033690932007291936926294408988349476037146523632313284208438163364471019320874547727614779864849672778717393440566507087783546623900504967859223686779149287145227220824690314749535263881895880336405301393243947583780881656140197440216679591704283940828675706842695242430133432611718539692294286501573616601377363166762178592899102517780997757946326542525246657936812792866662013171788180346451572238531630315914933378327163549577281132976246166894218789757415800288448480022798294778886105640034018989004670201173265671466549811681885914999179963363037283190153804633640958296364906735472947640343861233341455713495422062632498414499496850932600214585049247395155720393521027160398681771401166208627831059867752633996623796821644542547210613843595999512279230108202037262334797120319796951131705865516569229535220145109983235691923085586041090103836706205748915092242770668940026888426385807638941476939056998448809697165810669609153054850832910511513605889929951368690297374161698718777829927730717170443397708110419031649056674337528158162058458155437082799534159122111740358587562236355639654799709446189153056906395670115736397836067804283939293386838091304834004886613983662939082024050608815362177977322545795523924400875369983435422139713158187672267422980751878092456295879628058995735950268925682382578897042138597466723365628214595416760396018481293938018238433467902340510904074549260604505943012741958133011507860187721521768715314773753894939321154021615096662341372790621990060563206553747094683308029288601302777985825476241581661329965997703465096878233775323730758828695766632353324145320612408949629671425603690687498593584144773774242942386431982839196108769363652254637362111718133198796693985803205131658176236801633802337909067319477264720597067811873811217617321066724098642290741716185702579371790173699786656703215415570493687987758876055435089512640860390173419865065915545458883068594717769463763015920442933543119058045871690596190497686367107823619356021867287080128680944957446608017594530508843313738829659380720761172491296646614500621665416328483269919116781429728315210469419182352078226180707404468625979149583925145150759052265195916468723406864608345217895087358178307453519273547817060511305083208642317152082104251364087920801839303901881042383753611511599318518771838487676448415805187465577229495950457528317759177238611460727114058063562662068385236551579614124360088358197303259853316069969048232356121433036363849338805190114585897349190566666231521242436917713217959943734114948675654044081519273490801845109869993819950699989690149364761543489693665886136735911021156484937554168365290864620524087544190332715457650017004186028780463560847119038632149588212119826572768810826297355697608278923590480851344826572205655581824622323721151714446838920611555947230731963938327011884059107038390904706056092869026552431423731970482063346581559790091547475618027590532710608015016879740747332806415421292436688052730043311055869770386553031906053401599942311202870742042474554539482669841127526365108254276183527356071171107688868683994673305201787147660767487367999020272103708648166724068797865457430144303549074669503823159688009160969907475989565237038905496240368301627109455372481755173718344656634062327727086125181372623730993182133986033805522960948757253623427882325751237476493681527110010701267035546347846137938846424611755361977667863884401074689778691634437876939560886360153183599481609701503799489862996659051963109894105182983414671749714209736128756164252192682956341322862291935722069682546397267410812873559231529443682286681269109039211612307496194681020063088059519852009596361931082669880099226785062671638670079133717250071079264276548169290466025776717033937213729483406649845620970804119896405419831250389501449353328893894705845606244607039904002121716556142098041841665378764771161815846230900741226173989299847067684994252169397791880813996484086671417598150837784436382703795817644071724202808192041738016846545803241668441574949093803981566839024840325003377222818828152927268406337915644648630788159259305365219506103505953907259774458352459430529326667063813206352776915390928037611125515669540414310931021580082133685222115610327730767960738254929598142219598302052994456106858471364846572134127247420008548372602347435889270645089158378854714621354372390730130023169571172513575136738748055977749198577438144136988425877139000541064700196104807111879554289113324063022179282300940525269191661322780649274454046360189905416430994744371843076411761405915945377653945222606975150850969151834828753509973146538872946318087986331164679348178702021489852149295526206203261336949184165725374124071906540347831741065315030827325164794114343207700197284619162055444645749503637073990486544528432512992333221510644312848014572491738952642562918538399950100578281306983650390249616144213845394828061345049320793210310701158644524622042205154866756678857630854559972249856434465106229777593497151157128974777792070641893949036140337113691413911560990931679842998218927707104504084413537149311253583964514744485107746045499375985179624857671204181518033875626655458115230731144526246190707277819376977138231570142279729880923968063328917588358769497423923411464345859721623907112350290772369124845204507546584890014834430403400948516011505586410514175498996497005895295558254242082363892802807680845334370643102130738704107597207091535291390883428211783213035161938146829591196463717663281042157245815250677065334987208385798755316099281378994751759329567526108126224944588923925879675232834380421978611947984033888821025716490438561555708375222815565243919739372875174689346310404798580509910654235174140059851980452942893971403635748816199829865856225219231241348702399113039568881465032232146225079590716781420847736549082801703262712909039846279538547203535497831422703047016934028829402511981889006410335352223350615133660828619222329610149567919855945411350453801220855309156826738708592703169493621960101128470687882130102553046374857223104044752877532243249500450351462462657919710660831159674020666199297475072569607965851757460393375864078902396262639706108833707889561292360074150749750354244716591021101027728204174962416319045864376709186817956821341615519067528460554330399804956548323059272933956556319553609411145409646174188992555414220431447961016293628553336805429277363381527779019218636335392472089738791087967900246329876848595139381947119922836780918627518402682687651915274377589743311466536032074457044930192727858134296402753431376580842582145073888432071566301116617461353824480090745529694018011783843141121695684275712558362782668684177370984934250604446746254391397297952469880677290759579209667928596326525399569248037685828852666067282950083080855353861528436218099367764021851949711126602035204743106188572093587659137079974972206230320265115428532074206973459113607799087186368858754985204959554427001688990753861465647176175499745161995698206603110190353291287011794710938940000150521074122164223751955873053655947069789094761850520647396072547672749596966171680063507305231328121875651705700731441241534328267786390882320956313526287660900383151175650776293099545021159698696286682593061958224323335008481024117320040190644644281325182190741183863833985414047069174846890705735001083373927809415087436929265674922397115615356971047130062315058053812528578874597724723362178427240901439236368899161275127377763774057609192424336678565483484229173764041635726280867295793990799806762042178548075878533751688340578360515490459092552482760162978290077717121306283683126378581667226425262413392448592911697498511683276058196961523932266114078881841553794909632150740019760551560453800117133188161311580678224810151247275431220621554684397628788976395690319476134975898584615595081370757958051382858990765781013477236224502343381230816563773605065014985911072401662763750663060174119497281303351244829764571376382998588472960803040102918380092211792895466356930419474938690101671188772513712062021481806216317719710160445505272537935679551145325180404625691029862346680625634832186559249901328483278788814122337028925846040718748768826015571491534176329691323743489861867867831360837246318186509812319182492127396984726797443188985011993601180487952259089266497768752272672243953071671329151917135967217983359147561194334634132094721606965349659165786550644605252329975631987666547571538871243397814873645409889651238067652775230447379655148099204429409913975071057756958230540944911043862260991884267648975521570038544797176659618919672870278967776967098536384251953640265205186743648495913437085850889836847443158087439957978668571468530351368055960652692708620005722459055403398730162372797107019534432406257598469414975811738900809626122835172850309874236350705549135050108902473283055678629085969455264002562656516438173831349998019748087405617396040854393692255671000703076334949363895972008493317994790352666575155270316101479273568495554466198926767190384071598886674375585305622224796910110765739104577142782400812446906709948338829521171174231751284298156383636716181541076325939985527951174093279152460234389478821604123215965458210538423921383004393046323839874231722040631039277401895631115741905289363297111665118912776941869202955171828274795137372448581169287268081822298073357428369595709853119858495345872833481729091446143751346403526994236893982236502755624369590222721272506454817511491596499467206202848855299061223275140585098624886502955672919571797393412424175649228968046689998326140519603642943098613492534931318865153503039117500480476193201570789290389331640043144725799692333813029212714930791981364326574143880978926495297229360030913709212896689110514982094696464677124331534931857030744470409092346753682371223735512951693490608982892126755014755460227584603787623153818241718444701235366373282729260366491846199163668703250220189051331157481019680029086517374392667929519211301918964795870635726269578478025527073279883997083633948801886871757296525126698944765252327618713854241625791720765484568468796260448723771636044471938054056006370208587826157104261613260937896446330501696889747917617849787337170851150702038951344581795809468176685015629054085219415677394028152482282035435995627258994256710443551849079921811259218854709925928138518476061396402625839962104511188269675563729554692949459819785636837895694915686055749435745940670918773470889674203600283505460825572439500364675047136892442802513690900522567286381411958378548019217610248924331941504272682484243303141374791910345998271975344564469438241665973555830350812793117617170913367789118242032422875315474957884592387132724246891148860757878864073707419710075441608355709433699696064105948339143629579576476306390023579791878101177187663003074238809852558704484221032114215961641663299270787494629380308599489355366286152101689373868251357239901429458047622168341827233359253290883057111895967679487809613873758126627511673380468030389800577137125447678627492408832001754426200990014182515808324136749418624499712557527437072587522062113714991907392878863403687431713560982491999468082706322800321035456687035223436748594239554654956164163425670374499994026841984474926447289803709759361403757935862550428528273665230164509128257504836293978308523126790400248279864743130600544176332857922555537357097973708913349096225350700281009173792567518229658674502876243199873916174872151807682078541681833592515869833480541617910023411807527341279537070036849084540699530436798076753824865873003085796196497856893617946745262897299027223040813876092280464711803638566225438122119057763733623032687884785200949796995104091669393875867816598531169784414455284898786699879363539563718724201546240506007042471627018124550880488378452118091423030813842560871041228169099202894650477329165053488855784180126469440756447820432467775254431051111704788854251852794856810860897752731854373015322999726593044536885714227579642671966942648498763300413910702381573586590513672692867638164958635150849134850819227219517921994190317381826287351833404829764058480043784951961296408486279109732895610563683656029630864758886493275046869742142394393043830074845475976403875809050971479991591104915260804337050912747899832095917971287875182649552784464271718235584198154520558821394592151543715871062006151638400789495725974222427711676504005983007052231569001509438396002412216690924332362289820846392075172331609868027435790023348566477802006447783356980819867993317639309323463841405657775233131982541450215613343566679569065403135967170850601434004226110248359887139709255581362565465011602726443770845740359534417480915898671483789785293509621313186959796592361404092363699871877937202378844736016253289515478518619175863966060433473675953018968782859666962975897810796594146459073682233649961829540396027715349465345750431870149640747315628452056674308722685147129988813047286381848784075396682227738900598585815131666574301742981081015637451220874238308526316104177305724616263639164543471185049462654104038934673166420134919135236307784970514159544111338172122129646152073490345250543216367496389540674314711446063810500251443784329427184059187835419748072034774073068156119442531320978142169493788700808319890406182924242282566936115238691968048409714976075891824003095360429367019634059011330574881363310298100412862241848296808690087003821989032239986162761857975201323758311564679607115489489662804422005846322604595739906698595728922305500090876452893746075750790593289584245532221179171781291275203154984142540691217861684736305899923860649594223448174478107653624320004546882537306449089365557901640530621669421248411686862557598715138185245717417866468557274882899550836317159676658049203012100640822350986648519232210748132747884662010890014665828825194572597154220581737231466978186272418160751773594501525266490258964082351092205029393113320669858710000184040315594205770103734752516643184083732989054651106951606884461737552377196401599816616679109344114546756310548193104283000438340174154811029207742783648839068013882040629729784513236652753563908169137993190969321985476091312352352644173765442718526338658574684081382189144063894799973442004441305594634292047609055632254043115957171602845041562618913876396631006648171303186041156113804029003219852098679943588714967077469191805447592972452360587030843219600183825923241467857836306723219890020444877332720559971276620595826167605292144895535420378278980580712006434647819801434609099500841152053239414106935718907896833405531967711079498899608713368722818996215307853842423039501224800678872492841961348361847621154529638669617672205526242335716212895912814876721527089344691065360378917183352309151317531700364330112741179626842724670818614505321509368153575541086029559599288955041122791031925510079391246468244792747967237955293317665597041456053832397321157893731047183726818483213017137066787371819302754960766065536539359661916667706856775981090870696148410492578318305744436547298515283824748940795643905984539010054077693841759213243978730367828501360858091612474365555406002394926179422404744281214656169601571643339945909895065762488851204823428150118007485161725015169853678479625696459718346997623915171073037972763531765086765912022502994493263346792215717193966973559824311601464174029906214293241968330376684054345721934872010573444823994518148822102203722492345127954668412257454518701711572241551652614396533315344646974784032102349406928256820846272815307000363084763201174796998086914911630890852788666218885562972382083846725336680808895058127579810902313088139241646017260407081661900466411370030848699506309487884319576976995248034036844345576454312468264672910042795651193561810641226523711941831149907576033305650124971261691968332736887643173783532363051907918135243008001492211596519268683944983533426026187695884347703824355084850207122674307604591064785384679359487757342451854475971621598466628962428556267887526648569861979974412441620285033264348294605820848461230179892368737953564664067139540765582255475015492660470271942320747132450068407838677704593355722196244694476394067246720459597061465494302387131087875572969629990775831858210837681142655206441419673796783077023707182485984916837910351107796922750885847485456565010959276166431132696661919026755825610739450929812480159672850287232682163388189118951634370959993416946250209594296245651336219774545972580509841898374904764745621196629196349102557335985382863831229288721353322135506649718984030618362264057112433828036406469845533053075033991375721788059324323816692709689458552196470702384934994968406169123916870629685006020246398929668524120820281736323821094655340063897982542550212219972425739547616887526612376177594669966052863595368853910926726335100918943896769821225158283652528135814855395987192808485840242420035535598729576863231576259088396514125214745825073622606546787589132971816436807839778495469520267300080167250596287373438465258872419577240869299689675815488157984141714538415267362923025754982868271510719862097570950944927380675016677709077370967284128811403901156196417531303496375574279412242989258477714826444244367597694501148214339400827007187656417789115212966247964440817019199266154405616839309651841880178812776909104650373683339723002381730367161474418168358594625594690118748622625157835498591832416565293940424875712748034490681618635195930137559870996297298727076943012584289215127831071862954211086415333285510244255519259384126822842883044025447766551688677153868903685591777172410233575058754973003179455597273100485148378561311156237018343508502826951521369420960774854070145711048294757996717326014087653770571941685619561182582579748449364978818069882618550743129129880297885685532900889634859679813663646821351413224698915472745492982159813308279980200320878464771176696479575966902893780961977983273024728839969192891667986128884258846838627053324899274468483630377145753571175888000017531599706823184944721843482539964059853878579402271028088359629396238849403742382696616495113419718709837189088168922921270642560753546077116520648686846096818053906743732206260025773308091004711092952801543426142261534091217141666943004718425383698511095142180588878468475456039971434644180623086112209605592477543340008972035873404059345169817299349038348510907656235812771830027113336366852236024088144800506481936407652713871780529067499957372868466290677118638515527346976506269446880371298787137449885513576191036955144637182957033588246917399198871896328416099843919684632343045512220026501959053128156550901589221261987694480791160823127902200579541491187467883808427138215778932774451924850179888563309877955033867873349113493366330833437626549906866909658266024102965531825277652814697888592134509889444503963838815553342635066093103131542781079448597844446065000135094914000819048365032428258368003962879538475909161818192413430485784470270919633921920852373912201272698581811174765206080531781199656426218715227058489133990257990986120194604733292215452082804374142418655455546319774655920135479736436845800698913283782354807102009051899364062871435421165182744341797107058945020521966105320061424528848613269114041993216528258555869579689775358533923509259156999273498034428350406776234309000802299488561572806190969169863486434755361013028017521819794121185287450371890778172671610956502880351444264350314804597827101340267052349377234380935237239706031450179820159322301971735348310695139085088703330969007440890806000079661093343226170288162130976807672575644794245807405940558030888298748519983280637091753668754748326312376349493857823438115452932598762337300222382930521867491141383432745871067083867411463560639883779926758975433738764162861922899569281716166120237192168016344409404574760661624566492244507976688574637471390823197095042145215649420637530639206255758440640259753276024520396252533661347255077594758746415200684834222106216342390369622157040098587997405388431749264347166595556336415500077632918669770269153586321910052551780810398898344588566514436958427273550391082754541696082200767755841494780265951055141318043808394313048733083880341926429133033243906634345606126940490971317964005484407877224939620570378625005895772345511818996985004618547292121543742805870040261352585994365041528131872443006939974953615145404415259973722137735906298437264198912996676875538454025279568942105008933288865097013528279514261539293985393228571550586141998642206220053077941197983385816321647280646153332955327821925455286066402017195393034260427750588251545974777774032063752523844750039540814200814593949315372204880542998386872577836330004800390340729829252447384818143865196040804882181712458066738581417783138119464867174406288001932462603584224264864815390758688251163616179194670334620435994713058607243543238008221941063542089630912682765400111609876027469635872569449930564028516087882679342338483127058886301582288026194424899664095878022277009740532196929717447622374300926067382148703676544856945003263296054192068365533288249159635958496442556930577970123073390482633031696100997067729849196868197982200149124651720140198766168412299562859012955158230972302893438225391369830981606915121083392106815267316239783164523908085037899157732762935529785560501625745044341164294847502030870281372447799571435356444385210111476163582745403456386077417668072754096153151794472802042603465451035335622758052851954289805627705402772207610262766363058893171389817737916318615547171531818178277136239562426374928330495229357278813921715403059048057577844877584424426106284041649952341168676349088101249727790410370413728230209290504142303395012277433365114772090696490561188401770123879558570056999424723698319768201965531330305743052935768928356681955408610515695083913203288287284868432200284866486952338751846315665542480277277805889176135357378026340126944915714902747095416675108480166882827559884603887007612612106147729204101558677322639440647422065402363764110008047480406598324949236251284208113266837182376990679260628097220042139056962139041542968513551672607845568214464650549848203956701561776353643163724537136232250201476414109741701253166942168840211094859308068217871971145137284797368154823369075021344547420096937418288144421957591708862650095252237105262966695124567033219155780767866940428801375119231830207492329736283618700687754475989657500603782506900510693967696714354072871259047057951332317461427711884979331929630875074525740533552961850579707277787675709469259096461846523238957886256616142947210787020012851905154861344195133820389430019085425120504623617394328232026727298273647606224865923532402364343927107526565903916862171045767558531623047608322877588411754546105416460593102142621190242420920859655417163707358365004288044944566983840463664929536643829864848349186126350508070430931982913253318516579273501719765873623311588022151732302139697610407583237453495233536428898424431029678247636906942162272624160937829028273359803595252690666449861469251938182859032809721489965225326623187012953689405252479681954187431270403286910311178526665464136411283568347980323761208018054772935482169194631657439614558500813356363998550026967046579458250942376247747347549265155723201661286906129908129329780367571993706557049802789128029380274644154180451905948236172442921412427267989239857080770378646589220274029661276238133895785389636630903766493025946143687218670997583499449345022170837701117893929530889703866886316729287545749080463451166726569476878175837242634137012158427809125163276266301516473785186642590138128473477630211349278178457791881976641357149547220771802478510363791590585668202439494927920110526804160882550380483630654877369082034135029685703401878198664578540992837113260323532451503616013997195992525755767157732837385822679559354000277415504466906723099241278533857515790462140499070429325158201687169045316320618536102857371111193432519583420783653875047639860340795569912162944733423334576443431560493585825875228987179971165379821154420299931993983153497087437185897156559990499126872193018352429420661604754847158274844160964338965270670235747238843487202422023541767587086231957807554245156999916095997379631991093059536797587484455330169773144797989704480884993706720430243325534709570379691007477857954070154379501307927133388422226990057281679865554158962316906964427520206392163762909314200077155445357880497820519764320125422504668041978160586161184935813143440582765582761789783686583779681270990650317939355041261075432921516214312826985323856323371982196198814877458449130749363710067150961618040566200479498235311371953981288424491266838600600092538917185874797834343031144569281271745650754071207037050742342737226904550538980639837093340326141036100170670576466168498234626026757647384179808020078547405252432967496340967630248102450020102947051487831026198888162808052781511381776727570759333896172822651030803571591042399283990869438134609051320737561590348537799583527783213497368072447152715666153401836772793899686610150836649968445794024016878628824194543193717356319705292494459408785760379592423330160107261823188356113166723438851644363217507651494744993864015656100399743430107986867231597840093597682461026098170560626381010590573319906167267352863473513519715024294672803755670412309887511733800056720914443156573559957162945380623160492684967619376131023945559880278011233922094457873134917536117652437432261830103146127315940299488424448191486458432145411289952187580416211450183157187267614165622858164855234909578625082648680783829104823727152833145707068020700356111148887348898007389500467325579502629686959016358629399397474988702317728678855918124073937823833414778089084100115861460882971735790022691393807988342898151163870697240022271561127990653879650106386754145161680834837998518191292466125015113490402351377705245619822464678213065689434291536212601724553293124425649146024699089838717834646510734481716036541513384238074365645115318057160881422195575940079630404938314915905186259420172782038729414874315630648533540461181373659913063241445125744875006661752959774861978234418178990903355914665106340089840331748427068511938310449127431935848362627753514666206185684845350123220539808718406357220206889775699474318355830871485384705254305137841128307665772443210227362411833584891376630422701652476442274281198383784061916001662345932074516624327521764474711407999424566032915540717231158109718572840436457976768842330297847799457827068798840008787978567536829301029604650462585566606873465483949283502166204200818604803738070253929026045871958310222263409627042684987460887420476659221836676834453490246369865015397798612101308008137166592156064744480367014120265292263667236210925372533469200054820952743560342911300215865686687163108798954162489956763833690654545638626815906398359438689302370566831080941195799739447248483122113226327554438520291756366163429664949905434795307255273774121278073969578772936467568709949208727304583828417569902159319763721019777951292405226099656640625506374251687597793061272632382865107130614297324398255051758861285473483663239356334654437300859081525220986533419775977401024747336816850515470430787214955974620647775528939354490431440489992261433700780573986793673362659520701892044000378747621354881203286059992372067885246180482671644814606667385693399311255492255689428156358668519903938544122675880156376341704428864591451155617508127399708089826045323600466887183341443202137692785843206388775821774968230402849177052128875452899149843428530713329500149311006385421439096385837010878020016765954618601770635199719714058866369162700231919883789220393022163442491890744789471263294176200544559501479555728850303013938844801410552601160826651587952857719227560410824980494517488744850352693514432580745283067330113264204475787197543471916120762880475693603819636184878154618665670529337423354940326389085129411966057314862006472965124083983033847973809183651941189232647758305392080477527986510696220201142146265090853138100884693234539050891258318200177438477999921550464143100139116535925784878617124240484134255537439363471893678287965177957174718100871719382571417699228304780072810095754529043311988254525646360215078333281814903517519034587477881105793280571192695636084353399776256418948648993284244583384866885491541435587705428832666284454365313424494389201630590286803537760981641824777322927707504654093927688588451944254514149190097924517020524879692543992632626650695290474699598738526655059407141233402839099211601004715114357118144939469002690456378835621497370018950254567389244698461965009306049156623476616253406421707399837659171210416627174370802553972646974607685989396799798273643402365812093582997038730492196986270530413854726820680476497037834860135899894334630036549097663437679520269115571159954110222913608065687553717761122779591649428952907275563027910670588109782138635896758711034669252343472001835233346218558792690465903333108741370126988873426574308617900302172546228657677293571270183237563544271895397647991155096896542403690915948100622408358133891810229015149487245533467520190518360291364424212830094300860635907111156957802508329708460510245514072926588155699709166874670479565763524054800401670411389423825490402100285407895173385389185261872657167723831736956063575422953604908724447941535785580844336967907317316537843172374283770804608664590462561751670286122478914372344076649201488825885632937952076771573801183815856682403026952652911393811865004749748455748018748031421519260244335335924385662021416236912064030642466393064985785728727968570190343916513662000136225156231150705017054588955059485519223794737679993978395761229338143420646256393413188080750676045356835446358644691491552558365555368460506348157934375014384786952343603680425412767267848184546745573234278451739533109049559930716964624174984031227667903866432396231038488538032173576380230846958394260780767088433699394353675853718072226425625216081844645935080334112234297333529838164781033841500430128613292444509310569311753564065387190733644723685480413568292517349266657787524831459749289964051758452123429581290191874075519052776799433528057455311567376325611985271134376448919849788833392558883000470345599118689971637020235502899694047786391629052712040380122840103503059455413573699958141254863175872212143212256412322567470819115487598699073288983260016191534170819220347792058113174277419674372510956941181160058646733625565431189182949157430176054088030503756456879169703804298949425590438991341555065571816951321635457526337827135515812567248599293887030821629684028821820779666355256331100325255522854968861499977742815203618160762714421202308768139145078149309312453458444764576837978483133577697561503966344643115530470264305215292378710100379802569304306172422346534157262929012561222282046240656274599537721322590445258599076286391870971922571665510326812570669791232692862551957908016395192055717748316908723751127302946311084372992259489755236429400703041623522011756563027930505319050562362289784938801513721890900256238313748901962563973603948979341985533416230527043520274848573698212646184055153264055034636078493670725267014401372661393374328957961413317587993488562190396299756044092404155391154313291705920544125029865247623457608456914992236614694903267135066544185098822170021641114988534607102686033155674161054693339994339131797517519114935642032777597571609787350858052673518927334739837897960909019250862388789266937643860190888197923121237602611014479363727912903245379361428785468041908154233098541289767651508366080713806339131812734961880221826719669879727178220288652157333957380092229717942515867607297751920194920076847725691444030007264967663067747924050745637715800273779659046950518482880485555903926699116541754497480638592203736521460030810451764618612710584437360244552772131283663794855740384070410601567919712401240144315516100690282499846772593153275018658115733763113083033669533950389965955940493173775931542376607416367576017846665436997497700795389759780402110887415149429527764404259202342491374838322483619657247736357906983632900155445232058740189196624886973543872908342389474800669907615250901533402789042296826673402052931837862492231618744368551388857009884239267208895478269400999049764783094009054925740772432175653399523885999033911652313666324369722850771851360186920185539208607699661850222966908268001785205397275452328128454636089420874959882922636333365794882366992755881099676343922362955708145561661502755925466869238877950766608302441350086420015263414669276294870991692843456330520090802074338059174397594147938712523967324430949874210710368188839396683854050759517968062782515956735219349558081787966711696710683314653175558777790644269610465330683810277687259484214468969238021620229880155780685760281533658944729615271210154009911052114170683830162791287716343953316634682484972188036694134328316650707233595645593836199233937849376783696748341906910151071046157013756647603293082703896516885895107518170329707645642931281001926018406692126889731243081374504979590744710733826749447211596110165036482111953019955229547301276270927274510930268845404633701322632491362940482660926423308929801276568314891274437630905912747566405833560063418500898984567424396550148113220297909941727008336952005246075147216039673856163048500821758782496466238361659924188930916973505559227162020447706829542761864331736276258204603333750942940111409311686168020103812408687507300166893811701163734138870373406103152039042639714613817423869178017693369101551196830960855894798534291758037643913859701076048490754480196938698578259444436330917143081214909871746316569416348844869050134490932470622081514111959068449379744470972767727424537327117096225791455139113565762317051817601505931084823580831337597332946253675230325516484770870420391015590777366079752020386053176614292385456682145784029545401112459140816782180547443946524080271963835035624854227556351752407788782880344489433733927720888019620767747679841986722372303895803921591622646020601350295894000767173997661294026779733796483316780889039108847431222088236499433906596216782465667915864440987989146600556394938002788423578017688122691366836250983714522177211167321763498133103164292463658635719602916002710625073200792813199996697989909581351477617827672985191164689326006800730673606839299413308918980952832335225828372724452714336702043712883477823387483922633582397316068436470562494721178708454969546489657076729737250774152038713749843468059010927669102594213380533942688029664720010982782168261961933653820330072989827771640598505614052097920192323673137628441639863261192124632067770908653060392164516832186963380902389416512280080393587184677001027721396661740101221000522804029218490458109129392672086453591209277137825297090334488087741898372381168916406739609379089711979431342951197275624280339209805109578978447356797101490279347109224304220749702306283274885504998847293176238025109232844396220635400702882169305851584711069657340798946771699846639770290112359680897466044813641828851820027091100616679045942354798980754544828601637145409226306076655516535532015840290616242701157327923072275908685828414790458906960027905524948185688058812629011120305992910775096560954692539878336079040024306689569832895277084298794559392944199758597272529069366424695443708785789807090613802142326932943147649671733329779721682646075163683822650103242147221395068305429651861020182666052639579887541441439809869934304361819601624776697300279887333664390449482094092721128589765728924093554494580381954979054015863454899727988112161340725634739590328528355036487364949623678351646356085456085938644616383733873212225212190681699981013808875907574010482459446558578750454768213781567890212582083795693772814769296148101653469288382467943660553178159788778120304308970489430290260039140977787434946869553244514083258318243958064160106698324367570097247679455398823002579098939315993728715413892584619146641996802881130298590149161511116336947612023004609685009360451903314478908152578561380582955675475763951235466094944594178977144561179775052461696510335439040101695880005915406078965062656941156487549736031113105089247379609162793859511372639605498039826025998968004499064469703533881491288219849465898849970207679574595650466207283348901271875044421350159422496207171013641316477428991882654038504892532092385682605226960439468776707076084126143756645695924581102094842121423942457415773515077401756277612463013409866661145233099652702296377694946275085168969194420246552977113380353881389937129360811426524601516327302675607252958644567391128578749472174687239409793613928081118960955095115130112091127438146941876667286645174338528859622929440928525071388929199545016865194379705280098970230385918155241553934999338890476881214472689964905953404015999840184982620942666648615119648730779136537511473011578084979787964941331623158571559274909283019401267666662061552039956855548786259262914975301373707839096528269140002546406391024673663784132610495290489709538602249333598067369593810726717469987963398974236218531664606108844658214574218321730082497170744585238717580604030998259470259048915791029741267416033789980633007519845214306998684086136342912506853721194220514482604635453517748685095412455375712474387196476339326886962765457578970278161632342683910060927736745724933792791377226274152168318360431448137707438581564291883528320073621174146874658293904545766264380517651956463200974682219370046175152385905298226945394955338668971298458253115301620429000854166706089997915674218764782845936690606557834383190572298370915340962237060766697409234236949859266323682701291511634723524522305832971912830555944754913568472321436316915665962683345626130426803189271566960887132932477095482397326214856405791874660271473136396768719643055498681256833982849652489547189902029740554305470178370411472986617678001539397990309210895550553025653851056471762215196094289197424129201606401334283539099502911179577783632092694036946342012211898062330977999458493745186571558249736597521525329573540214709487733591074026404689917951720508258540578865194274376401504796535524001473638362676584282485972018584597656463327056415326254572546750031353861884661332174909727680841330052110351665105823206725728343437698570791162562929660536356327324288315467072447533118346111454042769518942239488854819526577328609774870394831824993380187443447607672337299345045472275178131216641887637203398637854864042949303068841042168112450857784251819763324930262057105275495164228170248901159476222222020814471048258066214607802241112882775609373781928451088933918182104444499919534673032193945710858383826901180745958443149537854716322859035340694016938416968052448376070677225417813658097904339484123309230090251986527367373611672749838359962326695102138413893534157912557040161099985528607224017720430469162320223306318917762516151811725521938315607357642560638730279897500948358633196656878281810835453807200192028608544543036269995469989898106209830056706883307199510907422417586272811434331600094324534820345758786122440558098512189147472841560270181295746329074525436543099560985955631269175197654444138217974365176294508860479194941749262718704180552835299729824340238964708943149276052230576755133721181302283914513641802108292241819400680835297990759298794911656160251704448490451116717515076501094539002602118042708967424899516063303613937058271785358706286816105534857549704878529898095756463566030741121695971714868831911410498404906083393448676424808553519849243102962094691680140167040400330242977424416584252426344308860873867911956294602268665134254631776345013686072310042956378619789173981283815463131145411070927286188451704092517543065670836743006071374300743984951078740392412942081286778187923506779922114462941030844952456986994155115101960357439821667818425082059702238489395550005254387681262807140704357881472973932366944755427955547457575220812468102778218160152914168493507502022797201885311645729223491119892614695081178554677750237019612098135010280701651452285774661808777353200375772684999782872078747340093225665607339062434639776741182815016328452170783483044727206568962843939463604205907910796756014841963713226777446408590390795210499173962944724832279922256336743826892827120385371770076585312591255294257324585283172459689096551757732369191839333981322549939596228358096285909917575997479793772145350488477119094172804889362029176830347720743005439197001529327098877662324410426083039380221099736609095446321729567178876821786172988792851813487486121365307450146279801696479020205596545663558724630805601216486877208805938264820085960289772819332205761280888884074810003936846383614868725988332189984112752865773342196770291561180403564143017791559948374412686375040734267156042363397395448024389950690413830431372653510298774452634364919870109125257537050060741424042623980868420486549785180720403073058711450585005919039942324158414782254264020769626709253353911265246102355028454983520585817200404913132838259308825174320908531521034029177523332384214611831658171142504574880254439929906221193988606995400843784406017025768224185459816670152559185289334919246796760103913654377244794317067182147894048928299397392066305187429453937604957761308265514494896351969775721542915755539272221789647130147489695394382683754053094534561194259013645670950055016705326240909470875012742824425171224869068910585043061206204277952635348488624158457175664266255370704627891828873709941390801745762001686486397789892215055698354549306055057430410790071833673563952712367136353398483925302012570959398510931682238183214686758121747370812407836540303834974734089440018064265974905065799322428126211014510382898216573763683795399886535126764685143458988893052534121963719026144967884483668157676777211857335701720656624513784823298835756620589053659299435580842943575264420170384037695418903703765910740176756013329304700638919955563023147592586768790192313307617839680064613586754350449158610293555048280301148477912400449603214292895839487062401937359556639871111421745055507632279362430389078159638422891655295888997292998375714671854089726664086875854243443593608665100213265669612738639468152058508838987315653439771710250628918592832943313152307517221785606592642653588669164718870970082822845775492319373601776743912498101677067289119818260425426882444146461783520231523558976421309533227168949819002685629794696353366592602737071045583420974418068050262344976691655312649756365717299173862513138539101939290721132606277057575341106805116293801980363388372863909113304275892631904975760585191200846798191967637661085764779511238743707053858756165896590095000421166787948101256815850154457809972966284615487436294476523979815973422806184730264036033137829767589426112911959427815028404936450734712997420431896192468137479092200342892501300653526709521509322114610943280516134788102124058105134510121550037065068289627989856173532485854437786874793545413371532222456612776627549092804292222174529163624018992384219176288255246522543759227848026919181366191944378082724576244216379510504786873955244034187184513738249287392302398920032664884436629212924998117539915137842013020413038111823141804382331103701880584787900690833873795592229435848807887160583670784625511920296001972987645695373728395433153601892133053389720184341321642484197382070654500602305128940303631089567421825971458980994290910358161742439714429188512476582140274853652775394530575741481609553201078359266052586492152754658860147898659988290576410750127018363480314085732715772249886612455103665773484877842127136309574846818899868044126832435135560378986502660816850485569898507148335970417910476256273229475558198473771588448005226661222614249029747462848727648631373610246238671513768825564901216895924749844946482005212561201497352394331269092186263016139285877316578193871026264948975174841512902415631301728039085538451137253150252517392458807146690692806339640729645157203375416489493974961669323374342044529432313649560063847371582036158955148214835587736446072007855488340954079507892653094468825813828335113127692790961299541704094468383104634359340660629394706612319547819571236970042539225142612457668086423210873823093582098649135069530382411353916656945907957494512488940784530736496045154603959522991748132514621444127667179220847235825939348690271841710849403205329880564426669862486480606955670919026673440555582136228429582183779363338703118686668016588463611052073933996264969323351873541327930927319684187676481257741259772231908239098986428753599623685557994462774856060681711230512259489241725491403077951437079579183068129189198187901672107238400882386872854884450445587595643797474339956663435547090497528308494370035428923973356667619927155211850857584356534711328001040786440526539667325987324153759026024731376567753883745490176927952147098426915332549847563967431911830440855806831594857730607804353233477753429632421494263978774573654737335965281006524924028003672793537368044805429983110475447379515052138221794014547794934075419792834571497165962960132528568965007435605729394326373264517084942728676286064858571691768382240377829113249872566784979488466156467791296629429173005930953449606965648714417148812507493312709944089934121393642675293433365159888036442159135253128019540740825825290253823859133124335423627265190959158445306348167382363945770814517708616294128905717610945555946557836513747404264673109294455856293999414997848240101205525334296651560593369805133531986216748361902038690106091018433359444247488154068368896565387122955571322319071275823251266738592737056652167324026346531201807849675042451252445478207853475321418982064997606305515722307314244835960560141325247175018555596610833574158834705335037801572092844111000326631709313674453969139392626877079552406179027709471425348554985236395031355986334105232845672327664982770759168702113622130146991749815417351578700607419001557587744606242017005103415848693235248502029772790395045083945482067295020471429958667006139358662483256051048325771511751813730059236299273065317242731180213633430517371681588803386629467853281323305156130193865898800157038794278467073322108356709305755882593493646887771685945469899910810695323263181833912420543003432594386898792588738251108892881430139051965168622102689191053457144717480137472085977470264022130560093343317838109429127899800464321604917894684808107862973239674097589401847770108166303232379806147650351546812522070865673526201720056494187229082103230156330250753370779925281607733343600265447227626543836702977667668121165530864746882624994153772398122964568737131729222861195073279303653023846469455915124808523162511180497581169179774771087184461516954925066635784805053863294629885948635225673831321039761917511767019220457837583209296984983989242085656720719353911190695840991003929057137726682748525723964146282354501363474111959925795180420037154965704818318754413287992159632375094297302380132536431602740995165106269468549213393523028961948741019500620648606977763661405058468734616106857377840510899735482932968153251134950900330920169893434965218027551544111786579264703089175428547562915979958867294917152142446944295986099384593777671637877493176974028960982834755198061193806362636215861886517343821686999097210144956552822826294134775396181927367514999407974230331744171398979200639401509893806960458636086475746893810415685394726846407880038818718724948511771609918914338472758108907690791338863720520450614265237608388026762599555595938188677834788248457931234702663191504951591034992059258026894276970985740372050393288582029194590017557787291919709445819018842258402424261206921589871171092073884081315042634845268004265346472599334089122481519228213097988667554587550369466671249968616722690377337241893975578050325432601291306827312797220538253491056546405878905253601060242232730957669077997050457633972572476050139731728766736088381577183435547892608850421170089718579602970469290085170897421552642626089086878705436297059829980352613651409897592966962873097403277062703915843831733260187506233940282658477270485652999268997235440307891033168665798925161938311396504981835715459481396431435061169185682790052769073166445204869280854873096757383670659926438816056416931088132321078833935877581390875770305154845155512425083001855869417184503833164445684728323420100460742378562608967115917051962855780550087571693817654736953941381273403785303487932194971328310162437265331023693772772694819142854357633251051478080269104149495680471027338874485087165743138756103325612687275502565808551210574972034899138019587932668362834907937083551150723815340896577508610610076247657178185263928221945835293941731968709325443167024316809801315864846362265950444791779236188145197644738237370196477933829369702315308264784847213870154438155302659354388585026673009529254535361243017632430235250242576179174262123328725062792329052671218656586057843594944765597488752659955697483198225247770400692028534212852425098388540983925489247683837133225770792263187170075108878746775007953309133743327222717841650951290414036609910208896713900610939497537021679674439601929469162150287882097918947184731830874152681839931749157698932713724654995341303391464819723683899568365365406296020562166776270425978997929016541211258316694328897457630298127129272568827095826192097652801535164881691894530140894626798096142630934038288347210748116244848239853940278807429282583031132155158843519504803166030756021524383861835120743293464079386596003855121056869183207309968228715531355221442219882449835554040458731965912737710974319291637834165638143633633545899393701501047168645985060521629403297582217526072236749184416935427997202096937330180925473316428477245480508900999762556716007425338665479116506015454063995934708999552583751450793850253158261563335102240519904421207762098056406293214504125491016695202974006445041569207202047155992990242684655296228613288848594880790392709302205676994592633422685821004768016479887516675139671410426352578192700718279629340444891992038556398943261002690985302890579361520134069783242326796291208817187253490443350344022872736729404917567215480745471402112289527073230134958299155239751550345224232418495829775473611706294406415377459175138415996551710473571967825580004495871500144284024523856242958690101883423325844746546961510789642731249148959907232694318854598039506816212898265682967429408773360114581125226128524278323437669999628441776321581287073194762238359927979278912026903846521329896292656524788519645888488514305025957005424706510309855055198031847625996099973907396737599645117484072460725728851380153866326113849704314882576093230848100941522356518896196661387968257064610686715728705314858226237559987732600249255792917424204011554655305776447891390065490003029072322881227187575535848324712687979451401775058730100357173618252047285909016189053060321608418902378921205036252335525845106310033176952459413169671714081921439282698013555457722507966894090013956638116940049977189399173680843774528040494361599249112491174958229068224627594902576469349766398697533528858594275305606333599329835543192172374699841270226038481335711908766372403207526798750605317030789223101391462014923517646203299718472192449019679448012945115257803951715181187976001108655685498719789841737304526310002055445979572289236848962351302055494698776038701975808239085341095950152692317500240044902418860486233772684011014176057415853905497101565145846461824953897866029735652293220607158084979245199571189683704234182081779076766655189858033101889930994234846488226793603124902038450430226242940471030490596958511608351555851512112542619012206402092871979244560294477929979909442722648517407748034003375052950491393844352644296535032955945473540975899866885861274466613613079135817128685356505763810742371425613099062586239827264847844298434884156461712252719920665142547761774524993009164039550608270114290922801434668706200699488065529932056535363187413619732549915101494223249483956637589148069542997363754917709037365635380198574094442127534306066269197698351648034532017484754418743178150142818680243090443141836590625879017995486401387710180648150514479720355494988437161844961359028234705051060631008779613627988268104758726277556033676336182296680410530306990969393127151516504817471081331454872748627918313800643139783242163205060992134168428437125050697967918134740041550633176413328972140522273784015776285316534998265842494863894406204393904021368041399859323712259469768915451456683213287967459541876593952487611911550092394889988200802417154930346543006616087408230047085632194977458888215507771007955350024714780123858270201042987725869692138679270980003014363542578056333446829794562559026476974597206877690143274291724656953142064166779741811162807331998150682791978178402387750850987034196103190245280198202122346589561614089691033803824683669935639012640747670813959095262067455408796279422479580096425551269724839606280465391745966190584575392468208793237603136906572827562898175426415894755040724243618537380689553298625476814015276717078840913430988551967327383010392177894677964562521848174804319598361681253583033009091707498914227205645949010243735526695830903704479685770476776892989652471584365354254769123351569162882055031865033355498474954555494328957484845876105466522208843159508479256994516244655895402095588203408735396422309616800017438936777761830573517732888052423253436124876026556515308485576589738304994745578755129954412468793608229257223618194029622200928499564562708279537099406430040531476998517525854280257239289522400272366026146740615347833217044094768464889510233617351555492229231995174015770504634655100407897823519924470817719497210656753646960757462133518939437729104567268799219383022148229572408885271389864195422499578596385041287186272943273675615833101094807177671691716318585335052307811063883156970357218834033663965211455199960466587126802013286757271605130916797358710007245797039378438369108673630608927148881980797432114479888373870517394797848153602377388953915930792847231740055684838721912953318696056859130536253622069450057954384084989322550970335536043645011674816488222557494778580571346127422465227221841119514122814114136081295293960663330550872060816399569710920490897533348059973548498740937614861477736866097138619631678082408802945695252363788762252159664935036231866270323100291384253491314406907150804807732459261255919085994238639429220381683558825142152453891226616385539789548568240303081158695036793413369047393252249810165909159307660077387356014929597527939439213728697600064413047252210579058016552197028252335201470774352251955699605565279685488819892200220717300554141399296377635049713081238414565196240138439581331473160331733777525645821184618031725291942636742984797416509390018421234737400223947577118963402707244425090859085785537052172712367522804475785100537843518080848531637111515909784823572331363135167966186010702820529421594810218151116308503810736756882208855477773722148060767764103313070266707070050090217918684447942367507602353477253521879095309651705557992079297599351479955422508328564220193233495572170580815507985421186339943920183474277471222415648832869375465914364735641508778299552970184773513299565695081676084604725104978513126482770543283544455919456599698809574113685087283312947946241000693242254520908961921542906577121129060970514180818475854038908169645339642723924314184708686876369822388185789791403978816495683493370629369408587216036686799777518937988958677788578608567516847099912015611888918619137570422024801861938066271177686343138070113757150711254098567844565825051344823316563212676460485138968907400187769129954160244330101964223250328028010360023092740675128081844112764628261621025821994084517415815896937836083837555937757448834182813738144389271760836299310979298280006759491177170313072776305749311390317383801111191834772085452724570625703740880344853936607748229178339573995867491309219061109864416471797598039214638987504506457022098477292198602125688935548909558494973593383684682147759093978750389255594336602928906115363775946992614149679971182870222192954372358533699407301620920314330877504579454343746975991436992210912839565450542204667510815267151503621702223366370924077282957183241924788109098972361316274335726244485515495590766085239467429958158662583604868145951525649444725471939153563325505597152197613981781315882746129167639479303991586050024343588279186573003338088610446654588937813467070667855380719825718416479000202924684955911313201214082869726917514056621210726552103322306255398523019137673346781151199996977410567820800836408223797285982908651296127712306336266246110478786714673345755555911621961220249176054673641471701702237252946753225201861378180034811639319243920981124144202554241922888040506946268928452397624889284248869628386259853834886955434559312398648783063525661431165784319503282626288057194535722296296874591016329802810691175174821939272086235434021008164162160123907851344678829785688149245118465049410948787541049064679717104082193481876255395757535618725298387613866696286558417599740271023582420617358554280704776761519011284918147179575304095717357038300925596667330221945460235073239301266692102294001004226214788884062029195036625691418299071370007878392654738724736356859093656823822472866189463297069044422403225395690564328918285233744973537994992697688514441894373067289456262446476952577239580187349721370180543980601724263613207714495473908347969777717089833239983863438515244731589414869761132077077914745883065795353729963371345042034625492149813124639164299506219867395594004054942818112958419032525418745137535779851606512229920856210472573102166726180229346103233462255533489368195458215927667721742955972505627870219513294804373544047528246496028127985618105017974109817629290313324108841935976907736775852530379830811417284643562032743797734639398694939695517404390254919907910661274302128046719085566899696742267743422189790853728901165219353354441324113512524771758286769168011730022715621629768672400102090276708622727052362873601028079704519750659020129453090962289959163235278978107157156625452243187554641871896655982880872722159985495039926465522106666672424720807276563086421906466680557995151808413582929845839489230787243606748388650265772932834115093293896128161298135077832433407250746483862203897153215307532496318249799742494778202991218032904078685926515140239383537120774616929759444696612004213524529266182762764305658535268730243347529368750689285078367631301534733962742792458327811035959550445779401367150263239475543133559958936919406937965623238619886976382119920487982173056251786271376845895294207978401925537011302464437757150258953749285970497348444864816557057877993698462155579218189946530743363787898250653520561239486673972480039096440405203422793956958418074382065271125076391950884609718724113266880723186301673187638008520582491973963239883586567067072229476663543814304714062913975940856252114175710190449755671791243949354488040232418778892284428283210257728430362796018328731287570507092078324065945803863564564280373711609638423971220618856563663174755075123503826553125018486560312663851655937521860055266696751765876069415088062584512855595634747641241195136220324057008326293431037864070290842078272914429419025689953126286409022017925779938328516703504904875650963445130676476761284443983900969388946265377046378004471913377168849486338576853898428583274158244410449529937351347749943316770841632396071850637633797070001945572771019209236918417260177727083733340658862557586176692253610277806541923853357701985233016526242214907377369756258535630814748849437787979664119283733427356271190907289988540286938400392795387440677959048453763324551946436729546430570779294752681919695310974800163505796137671874390375725633425498381095355437352680964028193598182956125748191558553571832303592023892567115063294770095090020338827142775086697230902647529672089159787256026751107959202405231635087999418504111214782852739097553353313916827772266225328742094591353526842489038907670031208739405412151469890552351564598136121478918792645263657460388707582340559950939750431972507268387759811733245054364889485292764148565790438765923500191994744300040898225229414839052822908290516969582321633246030711842662547725833403851167980774953081226982852790610641740992539947321328182011333066632868130982816344399050893359859704107222711890229828835891301714772724826298186981155387918710849516789289233220569089089139070508349843412943297678818379819522956145652289243017469062186654289342446036505319841481578440123546893684358248574318836221972555310086918916646124868157797972261033433091412400883695047971775271014048050501828449628113646161796651893512202199567192846985844679192743058504173663473948833952655400723825887248816845390529015465317344763018941973106990234394097968100100713270021286688816112000094338042284025458935965988891208893290453499441967226093575674681312450661539889975362854002879361695035771459436904456354327301833025473478851457248779426851233879192787982705253531775403587460457472731579985845071592812065638314631430037137558195768677356930912334713839585817364601072370213915953423898469101029331094950862537920946117924389338851335594947131341443246191103959353945041872296863387198236911256512885053293450641053652627502021207543492453435659005740519967535458718530663173922480259254000967524722697467298715642402898331531031814103399543377459330010137748251519528618602365135369758307190214853674782900167399822014385173974667241327865049170329036304980146028146472173655095452781398429953691971819491004144999221126751335838301201697492480695388422298627789714092900236075445252605385937371242009371940505742213022124248390402766492823367576512851589452398553927040880348314432640380524698226637622311285109989490036729263783322162402276282969472672362884248876529174648466750440816268940395368202838098797688880004369844310742558061119539334160686131830082645169357721133532676954685357114865445149545035205013626352961576119363953743212898749104918974506003366132055242524551641265999198968537624971592524112935887859873213990139473252006838944811937449480094573367132691144263208316363415174371506787529247637382568192311128314146974320766694382051129911699119391228528181230518042428756203864456469204898676450226922474221742527545409737549610201710681713587174718180006846877653055824621856183483043501015662316793211948390490911493051113647042016770123656327717014166422093592114403163088095478363794275477992578619999088103729325746289717636321107219812905504138814713856541884403207502526112601319033386848549304085809925868258222161507388764223511352896035695635164392310228541172953505707295016493153643563829736931164415880165263517218801412899190843543135087406922256989429865866400691602829871074184370330245366485304508835057057172216307076287693937845583021985487161110448212266946616141132040221653577631626993250565280362077835666057166453739996579818657204004362872315847409888063940256195294404233586457601633065677466698720286105651688403216322186702223384002031010637306776453234420998412509848610372604162354993239452408613912353860993316939564714202114057565011128154129584334351333645963486872813231506956114486045321272662407543007688514031690416600590905554955509668504988302339558450862397310508116522790084890707948580708992078288763581229806305563210289969988283079129375170730637677668373878266950562668115764674136112535825465552510175948073870458228036542700484572863332496378499567322599173373189273045279399830152155174771953430846472139197558426406588868850174726960824476140336339588638113640546534086557066264033412164176878140362682395700727661617309836065617581442422921370782500218965216099261373307156540192514835640012653751478454956783871985443037645219427867525246992464106495879505336631103571130102039611681123321442493298745791956356362901912846296855687752170015834403408663388157357511134973690528066108286596424418444241867467892957162526574612006329578575268212344468455628656669075072542638665833135842589565338649480300629187460732948038293132810035197921712534664217458123356196365646953100410957242670421304610663085624163733133189665359919853247751725582715210222542427527573411764173142094969454635709961617117774041442368281835519757363061164146196727974009430570802187760182487045038380202223359369008022488875251542802141577670969640444751697202276625564009148738179537639128245547814718010078027762242981626479667520446635814576006876799749690920825216612562364374017666545389272335680202288367821627545747009000437555728780962068274808364693690465198968269406584088400578949244500262781134578444575110261962725104487663750454372318285051802943473791838606091527980836758533273081262107428577795857893908298411403927631350878135724627373490993830991786441807975012711722916028301583777226890282913187404596310732278242808405045400423962614008377501794997459466174956775646927003552967564146704548017811808156453038099264690944042030277395372306425214292826480579758040172810159182244205240031095562381962816554147953667023534565267704046622348704272821053104896196216578753205774027343984416404826403692310830825226178578573144237698787342676169102053934718163169751114361427327180231963692699703620169218532454068026292125243295253594468004159137016153040184012260905106877604866584216519395599180717938626450675097104502469129269556825075012881131015517353948219470424355850096909135943273727815634267364679017159725475931812226039588290181693963618861471227494665502266079198486829671756348511447073212122812380152791085695455277777255151301526394754249246317363180431720488610558323963188142738079021410765730364701505730375489267247605187639380661755745432494856426074058330174147595414134030793153700566030395161792754189588786859617732393016216775713008469804822923580707548831534962595806893215186926006228286626560366978975394746565983915815368475900040741279575541273759807137188565321336712857224688881633181843675881935722760227253394233607266531022398166753275546013315657463946635773090579483945466155083206204767853054099853408587401825776698303706300985818899206110331471398063556809562687967100102850733610388193777502066187387609094773534868824033878830527926424142948853429818062073373997904034834043881576791150914592767079655017122488546725804820334688943196023743763728334285554769884697475597884627662316145391401394698793284014149813715970674975991889419422063320007603493349252269216363138450970555339110046365717367829567257038220160115418012014997747456282254928636850022073769758052570366920339792659068239166380839502599825946435532847066715712486280857208140869265297046723038039752319552426885119587294109977091282017302086706914442492281057538018653437117368597765765461179064763833777470260982450647649977759173079162273982492235750869892621422680720888602680571981504448354745336472410089200278763868248020957888855852137598647076032980268380788093357350031624707131670235332091312972472026701785387927635430435980242382388382312498217259998350044654662857476639476501262879834793125702060211234814305052986933542114985227111569404722524051780540097893027968108795813987584318300373711315605537399200850981061740282628983601338802845077058150599295351943950560758302687666887206389758084182881044951630276825114473859429419090019927296371923658312817295323373179124383202793852505387666382167639238610102008791829064256541814160538516251237957480704351767726209202459670686539688312942296978613445450996614689360656543984821301726351635790125710123179165984346808513945392520006422765946518150806569411756674057136880488038483227207114614773267234577030120312468925013814816425582364270932499419934843708025676588352932026161901490254211699531194389445509206850697816626337158870726439770847715262083962673902531728751284219966803822082192101995765085713594599349157388211535437881959334494748830670115225225357734046241142139698275813177744722700854192715356823576202927939141126140048830246364836017269213183652908277585091847956677079991686673291261766612000073317289556986290774121193414485337752410264179216003587501184143227054845890522678437160450072130508389000281078767483167551956178960312765016344007521186541945194877833867586669039000457779000065877901430737323319898193182362152530534949875071028837735891999604611978373077974430885763216592329238678576898034965602285081832782197331866668766349633911837562580434096047502673957274513936215118351815309436548365713818294450860933874666206687298429733428144711062712136976469909844771131537513843807032117772856761942109776095269375704483786834801147939693195435684976017390955716096827064425213103153774313469821126357572130710539024190411949184170116179853260036791260953160023061571864945351052937406849472567213952195231321388118075617058390938278525187109725058353090198751275869893069045522459183819800339863289618314864978560744889145763432927559794645623284145109225356912121633525541395150231234547572715716004809737557999584068255619864528570944410259701448097571859571239352279082623656084010853174434209945934843085047848251244969379585011417530251903388667708264623582364991241877165896646435702556845419142531680540670994692515434401686015086854416346947603954083640727470025006976265348515094164984135681765579590325949233534312286911455608657635342208937588459395529137748778561499266343060096897636276176057999634200612168908577395226853873770346061582228998118666767842500435782697016471368811433364833583053147649950951395556765235496683575705107972898385040797278091065823693308299250045349355101026885619269106771368522296298270309607014071155867187059508147907086601361855660939058674940719297891055462616037099317262054751280169737590572346046108354198479125701404406984303034404004179660916031835367270638679253000965272595678670854959711056601515856091995367880619170059392135735067879852699554195794810562207145001556865348337512970441184807980750859843962918566794486049078805511412750887083961636452067961808787830328965931729982769750971094542200058492237926266227863012136871815775893274067638204056689043015598092907146283819923493311589898711624802066682686155125598687187020760091295474994880906926180939074900381836503094101392369146214671747343884324042676063642732626093052864620659129128835234199147195238998066618894887208696888135884603331642331675424001687371237122447718824383184988434082132398830930243198502749350471648413026979569304550582741011245106870921895672308451244018760046939279961412786178081681112124730565708414939115477645882193722609465617189784845132128514720658109821936781101774148907864541965241618962229204408062412347792141775370340297702287645423318622591164174415743080541877429230978528906224539071371446933709051921454131969652252308044851013124419748601868843226327744256863453564060560222808496383306620235125727641513746510939295328907395535949043478898972981244746713236327902253203601418939334462349126739485159938956497807453730876537684130808755481722940830784849702861615685592559825595331092580342709007412701309820508873076790904301602410712769870495508205369624544323459485269320727536070756233823969153276343279300537991929652438649134809568906215014510337335725192941611420408824837364097024704845606824895297045163480614125496899796648564416684697040107891507161663314719506793818945325923648346917287600852440930296564178080657572434041938686584219890938878273852576179124052588577402172243582831405904547595566336813487954655874176348315251324487121056395858553655554539796753090389283961782336861689810269640109142721477331959862372239100986795245836059308634476859739189085793140947396787041219829752956198089925525878448815842070700984561011606803183492969358006019929524967425282211070340865942651879967982132757860928590326964888863252321182331262300973287536579666926550109539631445433869175209935156007088515396725400294529174764836091655624001483768569563000653940306387652932038107077303402521347918135436437201544760032805971603657094186304018841390045141589103825420634787244984647108591943222051389588993862216519657002257735195045832709156061273982911984342775854380563288691297052833782535975247809348022229048548661622284923583031779091874397600797959556769541043354027032123828345735135922079519755056730262532843998777220044233406874956612604206520901765164458860587463242829870674347140266943041577104474827508290868680720173366991377285184846519489233149760482254490220363145043879396176305937727726297795207871427430540269339531053254254765045700226982124723688583905168089081598547626081619210975346808407251790675098628919175736390321611838611832079900678419254143031134183564169420953815719227147207586833200950414024373650748560234507192046811008621449986514748974113190284472981154293802263739522932286835354199702991990781697040626043217658649698893727241729963657543714034037277754141292937236235553091332645053112121235172943052674972605097805687587920939445148377768466088801155602869821799779772027636299815906588225300871991166324217485229612264228785178237142384043242473788963875926870862578259333552144129516695953239659353936299933774146888483341861300697165937121721963687967716584709826854108865183587303683692319802651971189051236015113648934296622417718666713707457627902227658841824224488575920578198202572505248660210549248468545110308858049272337341025795826118518537643887265292954769631087480593958829250617094877152289338283212721921428882696482765319889212264336953979447027064109626747353796046255813209779279549115648019680221269197872748132435190756932064232092947236248623942257488681602967578073828284013562017504430975284226479311016719985862541107321882926618475535974709230673941042146304394093647974268145009542400842189785907290650894569273097589560052576995734664261208466811053994635575298817977781232399305379766293617838200819779562689218861658419561827236108385073436881177621283788311145115658689854044965721208402592679169352405150214283274416926524009971036428119571503147282840708510680636867104279130404779155779736170004691745072736843508493367739900025072579492514480869139124516929269499564333365670849282409974672445753836320219293993175879483763042368630163377109631583994611028012634517473161450306751641184660982281358309111720042700540141182964828958523748876657167654361558378788095451474544462116843737065249187033319096535606748732785769373058656923237411399206413654478636163928469978424988762870072040261515082692360651794878259571632259226085897712849274219024240961211146599851020258862356687162878966123892501452489230398284696802711690974231419112549943491113200020231116277225008728929097414776980037624362953177864619793122888410510775867371538655447108545202201570141139402430093097965913364066385557825625244634388483367696092346470529994570431419173359255849269675256511292659183996403221294591064150204348507317619917754714612131879309052048141043248159871127364497891611716662278054713760359671348175350061791717641147371002767576534506645603701694923515041853796267867127270183964431459978985473604979658274112838835313674259621272577455614910284538333525232437065816795902417218886261605410363102934959822231362465181765920001732166827440700673491677794781138576861766961718083704866903755179486934951532402633674876527925568641677486618652265499576921600024456323653274929727058645117956879699616245164417504731798053476370811199091844235804820073550525493284187080591209302862084077486964177373094631326082245475019688593470849127824200910632100082560286271076993964246808342373174631815169109322274568674754809439203552793995352574958380548932111421303039495530193777573938052863374963693548423183791453665780085107630859157838925866820316967335898164138043670285541304109550325603978691963643610441783673387702600003520348190002673381918642605835192712463971922660465592138908440029094533624622553719895949265574724713157656742303819168785430516472998493316193463615196245966226657373424970842974967666999851843164869934278638072249244881787858962610861934042752450473285867195271074306805091296295423281099677767616914460442413419673460774980765126782883832686726356910948467741175381692717974985115038667822208785991504190834697983504119374837631831535569001354380993192140939192679931478908280188296029759239648016816510876041768120256107859493920337606312644852053368211120190117082116842517782020655647657592420119580592055618416601289907888440808833840272326910973506059727061236543022590568338435855784180340942109284451353213494962219223743808486079800795452543922559096827376387208939423220684549430662937132111767662236895570738390611383306107276173862495096732067612773431209888151710309661826689269570550505146795148211508320917722779090848616585432514738857569419520926580525483339428577674618722998203861432316517509466534617544443199293619242048817575448155487708054965829364467183239387776064896767405355109740837885487183726712591926121695388562184484883985440854743979557204675410838762497542331943179467912922314583950089680069702806857578513148464021154178870698081033724409676050866304681114074051289658151448092945988812208801358672592309345090127995245789459810916195675787347090306322566551532858180026661532792293704498182595027938468475274863076815050695931900215321206305021669529832896431502362602820913117255417182231725316017687151094448832813569130515089608453544530649390565955468376799253555536264754924962674837277724881967921572701958986420180151125217596799747286376218788580102558006939046204773153841006592881666489604519955494412868812552769984997026277460965173768074802678890157518602507950869380930453327063811501043343932887023226397892974556612585256297244950192946198404900315058143394789897825223049268013267789851894942399467098498971016858576523150709360509526361181811565324084757168492266048065941273709175981383614137912008418356363772796910130459204332728296936974673570816232113396569912998072865071948934506817929437804458778910863157218714168024525190376168042350090964953859387950277878569398966203629784902201599783307330921815047045046733989297780358633155649514438811539494289427684083163985874749272000435585042323083063867417012642760667547644967582877721816170819500352525613243570471054354746518829535577043674748063757313902804541287400339277533516699725611783486900146712651118307173550221656764847850635534201269053850057188439273454665617572300975585596880995741996059401030886753333857931665264838334026439683440796252183184357356119751041677993832625054272035653305960815558470277282572970552044443469691941538888182776117066326893258903362014300809136547721927302082569203359282226436598490285476397587041171607242783378298887148902805189999351373747160154474963372254910817901407100136072859858256469685130062115823755294730247719864224649693981377117580315852534789989051401313878730198591561747974445932974791811324122740521153032294809044671795319602080368751206044205830779447850857497990294056633494477734051952769029350000035774218189171143589526393581538873097429175390857114760695479400052549171739748104265856663740409975362024268359456369052443255185452398151146510660575376703572530710091321162146003374319353559729812480446283119673082613131069239535984314647272377467265827599226316036607240247240600501142708848129282298631353790627817482681019856946093055061302737291572354217962332197608010893965348366350090428786065671842694972587878727767908672191512278711353109802898875860559537015276085793523718272362470344861985532069290756808604016347740683851384040626748627281734866849463856445576872575450214707123997249021755574591750837238773891062650992873938513057007550988022493451985788093145458288045175311505304353208346336525445417390944059345664788680260814941712374071748985072693440914764925594603524415438446022033026636435055532787283517781901657217997511848465766656638954664272860905423985455925677829940101313535357881089179775718711953535942914764140432304061851206741753873263337858533925726189921120620688042138438770942905993171629656910439551568531164685313612512107405450981200729840158325323654194358228437716845663939609233180440429911714219675820205167412167070104029610008351404371224247513134355736012027073253466122915380863657423860941988112333957816297571529768915061909658641859397393430330211593379694884983802322268618181938411668888653604362397705432391270802672337238087110983179716311983609229290315817683810718511175677158997630718855857348812792897176041848740211389146155359611066461948300670892680655717225383629699592529298925940032338614706634296721357380194631163727486451783986557867580560015594551165242095439152586608167729969185469380437478602604458027975400275639887862260457033251159894318841270187689922636544338629204103168760092481287286247019540523448078250427304987313887473651331654804143492451123257765268049500700873735240737178668591827867500588814465196088849358494987734621226627928620580207741968114399472315677234709934602207111922734172100043985943252085891272529087757437458732055125250684032794146790845763117781715399173422504338023744992207704478479790436426244395877399288886400661085603785759752982255680011136518475865489871836410242711103327344644845622906629579817407816498841055749733790806726285308987466939217703183719304337149747905877947631733942831450346106803656906994416669094295407766785249567922266355821233920947083067568987870951675215342966441365369936373358826007830064770697491301774194504872926061220222177290700625978098868528141058286383618438324468190215765418766045412887874924001751815751047133813059022413207100347147370500759464399614021703147827053466322531259964736964221340918471086859799453463708042452500106659548434433158754375073401216058463605810374219594569055319571103104455653101735987386512463600909201722580098146590865788583042268316894784450566589853445656285449349705275985674868474194149468173339276307806439934761374097750536846967817279483031685312012043468019735292860063399780979760788767765554985757733325508909394344957528274075544041170256691616322953760204189603755240869515033977561042147629706593324713887901661622746882209040584600657458663876817875815705577266753290702163149964171810300808254124917783992483002606218138521785626636094763158930926227294214659030673202964708460759587660654930033749596134236800415309914752770258080673679169294917510905483576409598253211589478900383486028292566150940824445661422392429090684544263378609630249010533317763501754544002521887585525876450841397082538973447505500752887136037562182296224099575337457148120300536979119507105665194399109223548988126697153496388873766752993647500279910575542164093297354959837748799987667115454933648125323939237954187518108315034467391333120622795975120126459407831591505184032042918666385936503133276632290971689244430374306825777979394579026998461135750778770566723089812289518768124602163789086407467077941207050054194618472868231463738645846010003785937867463198950974475394786505727032626015788813250781678288545136225496220854402587479101165567244895001430936467824481664000227107583544679420315929046771189057945238817577500340128450890328675138832983155876404219157560647386478989324331510404594538727205771653163293463679014434438085085743703392699848668007866867045657905177173996272846710829215926057202265476714713631840867051002166231479572525377039064949579678214993029952571957459353387273002302989956146492735021916414704695693882546512894707164880914389804409645556519426330561672920773377006678836822748693202188973168196706443214928057365068983016755168463516540182852604475550135630603368182614910799963340992873514776486903484698268330712079658413704851242087692853785244083182996591025701806925432776640782400929248815957268963647507369711136617482432856531197239594160890533685742706337583531388490107207421732563482950905850866004262655327831534898154991894790258033906046261982518828734901376515620043061285133698560230454573554823588948410104996755601832019782332279141969456734229176659210932477473148140622958267229681661451580916356509502796909488047154558736285788662484900501010607995515646124816265155637193257871987617574208531716502683906771555854906957404149153607156115262452582860487417652499949418534220135050960282587591425345215347123989578769294326330655963477301354533492907141918395885774459336715583170645444257812603313976430168707174259274777139129638359080462233468037656673911320276064038781943843464051243249873254985623571908268781553661968858557894012383575902542340740027479101922682689183389611686745473535280042218349548298678578893457564339388877329932890615957841665698397880513690624280736040365270551609824039681325876524396817787428270604798861173054939832105612130325504364406013955956394735009236794976761585157128368758710111176656047104047973792599855599397814611546932713044405220073797467944500996032450499198446434170733210590340817423830007661140549618540792143460942940251781953873141734002835465521382388775920207276002273641700661250518058079947382906390728513485369610481513819738638812809915182596912689969484898088754213868694757780820520817259614175055185453372928653512563908886185077497024049302765809677222546769012074758186853602625333051803082243175899058390068287065528679961678473348945464425498237803459543296920871229585317099055670405197915353003142040500117891142029140400933009651106190278244752756537890114585688035155193634905524540999643856082167337440951163188321897901159473262846881914075862966445549924703005773027680025457455011121193239472632582262672344976438696644885860010259289978058029409392772663079484575364151586065857039806281915696788167646935351599417819549545310582545458384363716990208935217993668976914435812846518217890849927349303638551814281148507865413929053030801894037110818403073478121855123015071170981592901998726650627827326419081273071235728885031018519152739547425302016465704031049916069257808701170416988326187221273254431154984265491205691520158967680833940157342786452919615382179424239423944022129471390712301770587601934543160407589050437834641509427880320239621865286461547842771288224915373736705393728138972363585287452895253105403567761916026112581465766173009716174992833060044226479401723260565113689911143688408600701261473424693806401133714670843254276965250232127085560855900431010607283633405366014866852954554177649835314019474771160826058504315983641389429412511354327874099851040877558413267880437973637728066554580968468026921941301671922122949095474674777036412048270194901778622923881508972456934441664644077298568101404613287464691083566295708785783207334401509409988192149971006765368415558526554482467237878240382819711680045064823732935318362712621233839291124044525311217887594926599051875581857856787313932551545967279537938373448440050856768547654794927352495261539657343699345892356149729904170463107793388986218735694834900978924753753541364421487381934678060721801596453204854102922646699462565591394254006395243166361935851229520396202552364065979211064863659717860933161531020386793795006089500724931040350148872855178879885524070294394796364392671818345495936785495912171532456572311191293548824305891305543018187490805310545933816960304852176218854907042563020295937040482810845265088774614110720262243074010928246890591291289675595982307934993138676683830614854923762093734497035268313073083868741819679238287437868925030885150678807058305750673990534014766112385846744568967520354837606632400277493145685846961080229970009564208574594373602052712559602763037187262597696629926336401891579077679060711867490244975917708861597873135262655053776350843053527280582582651349123911858888737591599138702788675402537682922044624845897481744839666514067503243882559896942602151741569535020077290621904521464696406527455639699561030590787779585234402145222790799737881544670495421435484308490116066070856017173097679038362086372318951004642428156477187559800870930730725309617322928254650247419689531430479373893957574976524079767878747940360407860235359213255272016632525299411605702737234557360108894139237836310477280416046678355725002468992265267447453022024697644188292890583374585155380350673924431262654181133414323217649929395740611901338851516379862566748508022414695977073302455869370357850789016244502752400401000406970970878724665336991981419228244878657017737824889396834600270082845788558482124074209469327094360782860476085990464886595528703273411277055512110698761505060283685423462421365107307498127288075623403125468959383506044802987166442057080580368210579488353568523167572371643053505343231534263125750190919776183869250094848929276000109538822934834061598131903485907806930094242742278915307292273762369301084682519134048910759051582324023663185719346633876762714803472176495387509083308193837160194885349565327292727418073732924360034577980236674461393540106520017317526001914996282396841021704823500930834974042862452257179376091305840403004932583649359936941765559397096983938755902129753949939468471258573014078355043445474016561156561882697758571734234223019055666710463029249649411723668382159853592842196802003722323980679807271375037195792525610964164807881142549173926809170815603544722086941719645537797874253602161179803356650372347748515425907864599055612640045938443697286738905727713882226291774860176261780749506776484539022270295714639238096486883130173741123977511862822278656486228246587525803972190345559475143156289373998801628876734824142084470168493259836330562469183999378809549732237518742978814288004620363312591568543302139588900120009531215037501725653393351619916938372370026679213328813947518162753887160309121073671709773133700830636819698612228834301364911403448089882956073233472982536236005334843344586105106778713721256538180509602570933094739647248494864231024579895554615052394011080478406807746916496591894349725353018063632119470078309147891563765612497776402216506398365288591691681291391285010148125065059657726592068455707908917641681052257514987901199026525596554916894195271449792724649033797017548038002269952492167591520717941789685134203593336412495632796414727730711189460951000306440708790647347315761550378784900773163545253741511949904569736970529045428734139224588637568785427694736754554207166331352152289976034938257710393800104835413322241683750232289597807497473667581998913073499486526346933137484881548040473236645719547384323593936198944229504412289130808014433903170275983403133000991485193544097227823826375055391811871765695768046789534398150688361326689489633312858354464898844368648507383859613961477461859376866737578832651104591241337434185048894581014966677388854857863011786254307519470704462012169295423171987913492104688966632697694825697617360507048404287003647020999671580376077145349145318777978634031032629514540530418933330953753070711046604008307846368764340499619832625888864068115784411604671471523584322065133516991314498812674372995346077391589640125132630331310193082200950950332466019735732379784232278500228450589066505479772425605580208820998901782898883843042816547059091342483122835386386897766099308425656482354660280865591479593918715576230933196389088556936309518966505840473704150621891229176934029424739179100036258196858461007602295323100946603322750506983409450466523209925263309703946736670839997774895089130322671910098624568499303107172194411656268444517979786116436110034156742192227468016278281993589984227336183981767636211060729160913380023367438314170693470316672798733066093587454254756410023931234115356972162472427772488083656810355493537704815923913969242244812963957789480379959995839570210996728711932134290024198617724605862103430372477233947769956045594444452141450456971344114446474654610984105097043461843093227549210439403690605095775690693759730384569346644527598827616200597755822307671032552785210263066710211719648892420536179397654243996633761067391598807072558803872031713687798860402360447245031702803369164646653976485298840032199383096916938752915401994910322686331940329083912082079000111417569552922483700713625081253394251415996076405569649998220861310123451201552368427765409392184968256111169621216357987195948906437816754282519544711418093236017545812994293962929276262960105075850285926897504217138576468433473339378487832418063706001827433942778543033048357307958328338171781947438656322161092096845473833677315148255479832874108848315385377877030691559578309519241637375586532593875740612886130621380703916847636454322622754298766391412652531892785856404150011962236444411113373655305530289548257679162804082337571910868436613715408744209740953996660281852565494391232738077120553889661545179260728926902801002818065503095048418462090571384521638929332972731188707785806309765971464175830559544842441502748192757205696547664180167510309667508255071435464669318427012885066871550310345065446034359600303448390287720127201990223632601058699005280690136464201835410051226780110752043697124448037657946677511496810226193240966027710015767426682195578962898798245283398820241760628066387902818266262008497914218248335380396977272123142341519040131139482559373738149546236774249751768985258928363665091050742052299971245166145333328288613536208861791463751027750757152198678286589030274533246453068587688310934271624378102119771164985856886004666723799434142372808949476531350418189719159663835901292333086765555057629458795651916357537520759786340477164099158727185687175720964030874271104658262505847405207324382214179549500588231864348916992889980816107837440616526905629620570859654574647812293623454099364425003073906279690199835546618937639416701025683651455348753703111131493543521964424854940909182815060165417414068939350215384214558417799730851461856493707786416528153175389945942723289359106273015726425758943175984112490937360033414628375582897052423145842705123191713334931575114109616689611995106744736086336137455434037979509071363511023449905414329084628663862620323916218235798490898229387857796962520604232891366333787699004693565430539266930008594462720887040012580105695790686625655701577454254714282633955406758521795427054893674387272301016838972599893700937298490603060998610007840827313667029466922201516280261449608007047541617998983835183842368180934123854011187061767303663651576359871718685502204119080921775431268693758424420964938593129885557289808161401992413101042499441035538797534968140884205863436812697997174425587463841469956451107260780946956612831649897244244695881426627298740818951510868832247957471050157358578158905587556860309093885416210652444452695623999643744234934520699734819658473366484953181349808799822844995284824346032225809735157447460903302537456057251755764574416055602249827012665991044646681224267597044962139788823082811225174831828442948983483510162500796382349993683202333775928347144638058762680526218089459738122936576184952995617980702441878206229264552727132168096531923563245767209658132183718697214350407962686017237861046817408327515876261179503484325980901969441716029765580609965024929912866441774235518096014920418404798115946739083490274364107274559467289137517574569328662162902814465070766224687424234635074851675976543090702820024473555659061858071957724055608108034825823122149939874830988749248410365276308468617856885590491091781097136535449836286608765572927075691924610359310479626191334054580233563234486591877801054273353203119665031897500595695928075991077180750907913767645694523909329787998771797625058896313263866861947094559554473795239126824850257390350458256031682653857247352942852538276606872570018722648849957350322229619746477453447350508740465340578152326052387006402614359252070034439151849164398629738363495208938080095917289401140284154405884190995329361822966369293842877943827504782625011686986426148020790013411411618879661377166412259649229879255674265491102632851096108871275929956185277965949376101014547579196520496441382570230039256772652585167569979025690488641880631096438139289707572807871656803843032926649635599676363689572140576439420392375456159771207274468794068416238880581839018541739271355662478009718140490928957735533226096327456812067861469402040423200771401226855719835177976228653209512095084685229068784529586289651503479451817880471375296310621562960954034407232887714153508778815295122704275852405522581423169061909663176937394977110634260033182959669095664439561040145481465989461329209365835740711763343324333180396136051953201246136959002955758764867923947022793279001794388203794072330855648549179494225041250821651786312167757030357562245920744487486358891092869607892519392713377738453599529991786127608038779299785450065134838879155259981488779516589680344018687330056411286048110636925314425999652597345963197370142980347186599250766715432648270156462789035573843531248401187063254161427792142313623312512126966835327289894890948532325898473618704672460002115851514739642687368744083738941072227259528986120570999667183919107897825455719697009377352997105195192243959734419227598387241245809103455750176149049805365051088528478105923555441456878500973813543729661291920878390427120931266935809886225404349266691480375166745657063326875700777548241392672420048266105281703341495696235880158912581353612472458246606257602246174890565864407798753368556104564091039634640420649304210264192125376969089581725798956621026182352620930191447242475926724789629067445240871954808601359460026455827560818087726841503612605639371556575246714700283537964417670363293715620071816860857226137909456959787198746048832428744099073826385017727365132432063888242814995233371850684902252948801699519760457619525525940075409780695403072531855186888134517372210283281491266142310888175884915222832150993816726404983550646276544737658595164434301286841142351487093129234294847717054343329770755746016180282288986370906439404575109894199817956005204830863208879914378443264409407989486938333388946047607922619024293897304532956466557196820913471168678908159655686889853831467699048009641861330077133645688019138495629499400578637738786665741760129612742812758715536483482872117636074143283612980012828393944742732603574917908966109336514157593602415901354830632174267070696961912881547804157073205014054670931328034889138876466897492319965494193918935640372385082398161641358094624544412578243285896308408850927339755908127259771178077755442682828063878381680560530183339063837167851586165713577857763150582110726471296584078032659116495008015861589338244296653890286240168672982220567892191985156392948452633245404311213045408558487293445822583938825286965781722641898266318510021304698940175083469755677737032627660340750287883704078982964778128113583714472778028231323719839665770886566877967907492756340540267242714891959908004569130782494864800590558998518059593839079524940653455780348374044657163281020229902018225595910570904920782314380642984076871801699158303042173590138208042246026090383096307839369519211869843253220761929462280228081867290054621758096648300433238166411858116217924578588873907470055762069806617200415527848914350652747909768103447289710626227185740574101281918007544571938546407266462295887581702732252185020716704633507660173216498151321318311603425998963035757569349013372784211338614025633101240098236212312873605220316939666256756363013156172055608707795455446534588985440505635894020435650301242910193858267000235509430925292010139727008102158990901339765275552673238174314097262887671659676592722272127259736170731337700337591668513185637173074075623306811852147887724145682427653437900910960906752054550915235191771313567919638279441478409241310203662247900578150701929133982624144869150448875262719808881855104949453742195357987595898997262889878792425269140758016861747013938977595635277675423100092833858138102196539464677712519839175719642743864755969371817316246280179943200264622695771809140021248112935087827879585258749793950456336145932767871029235984526566846916497914253817926871630350752561002855120459088238195706212996029547959235424744515920883084481403226910126809149909142602746672199363946783002277344215835761306503305749316813578594147626535635255787611947644495385715250638509735741596889924973175268791619401816256311026670195345434581153234497952760303478155428812200719821288672935560332380135628762416120711748246581040929973082739867764662822678063499538810412855000029768528936489398038856935810942552350490250946436793659993607007529398502783302068394263753879032621352863987173301769183911758718281180714822481648223289620716405667180314277685379553812321074466967083735466488232513784537185483506733043477138087497599609335910393495239394977486439699215647181469795138269653506446866655338563821617943870611825479732820064313698523839930402776839738958390691760929134286923020888755580944604951369894102662266727946492058436908520392145454809838656367715624535866113803737564022468979675964862028326152343650501698595136561805662501438120165597784070437614495376463472424569123894507096874640810400353825890071937064045556019020913756405625148473528602797000731009741152214099972979766424136298798802807291673097708230026400868322516930670186223488678803342346056069268601550763150465208062847221340837962792688636099644231925528542921861525571323244034872116887593950274321491792748205372809560595396757475101902526269195201614023453896799742120646135119416096704762947509267832005863099192235523276000951375329392781108579778105049795092778551229278542589420016740164911481142661004028822681073953004973122016573807244201986806937342184379668203918270177022263413391554066647450293502389502344036692879000982895119647384732658866346131952558975740027369737092000088765656563128929740447997024018799636500476285505493483194376393743336545770403334591929897460247293640236974191168513479720596047865948689259404381625869838830052526995207695657382283826509180661722780750802046862669581636814311506609972751053305325507484753282247194519760464452299509195704730584692250453447051568547997703079871372355808450580076021296997645421535890650263083835413316140890971939285109602584198879478073006246112309705690715639357741949591714987464743112388490785442487528734420912218363610390130433903828716927377297605882558280437303583518011838080374992572725037771626421821672994726624655971092294632933349168691471840958751635126785335306741457203845306799278560790287135256619833373485216343570001297080126866870362891924838878337839519280708823897691330328237274670979872837014641327435382938054631350515187228960467190385469495219825734497211479353910866915854331702039407295972868344649441562751509681578793095433354699596734948274214339532276235308542737617983856523550087952961534870505212549517646034990318476334157116926552795677002093174815537789346174575428809246698653911109853266289295583995018104979211597763544642604624521877131865528194211526214150680620226422546033768027900601835126688573928466960725660223986610279815539275213858663982553866156474387772496179256232572970025687918728647347017752985446149155305239860404979701436570628024027684610399735084724991001152835419750815903868164588636391049556423479448852559241901136032381980648875788794586133889437039566309415933300651177776177874601002085987448936760518498593574769685762524238760912781758280822628991137406311003373514462518635704680235469640822456736450942816117431880174531401436214694376522187262149226330756044496323741627604639791328536624891148897678653823723077691570713744291066929121300639169257657588192848798597464533211892078041258227724934156702026869452631414478070740460102046966303415301850157977313924243656198565324123288833742103808206431898408536388652498129500832754915898983391304524039812095323623489961491962351980816564420012230552185790720034538803877162342814084959009720276850360729844788797705872304281128187721934744304850610996296065012362626852195836734674338449198981140645985273911635198780463840241229334401742453776694170028666983824177854002904044819517308751916964240804334472137347747059331644899671131840574124753521673647569792941189507522528755292998505982921482511641929707653065933332476151176574730473376733720060957483124331103276768538479291575266486348931814447145358001905300120978642412833193669253654342394986524453833063132278128007297623408432470881941529486635781493382029050481509730082462717120859810866823592422566372665862336667587625379316473302980017186507618475725121346730187283807089234136437614742910801736574578943790823261488681638775799994204069668035489370699938939024861080024941464684706457971428445815582999917214109627916836549183134481942086055427057189946412371942724673443888009047142737446617536191780463140551068038329796797906325048940493399865363113520935773729981734145992979565656452508464778497902426862303176583769207868217080970935795594379646032172882391933389613000526669566559441457805057461310690740730122303254682879003382952687466556385897053040620878069278947944466749884518087533576739241136223530430751559290023848386200307577748392658593895045793889865865783696891221253291513490722985530497310905389768586351919310808003304427907793904365774351294499646976725584483024054465940266738572961697666075649864342274637062326594627653847005662562775353649586070510504998194034103705492540431670400391592520164042235165232873300762254112482831472466266259127882931278703263759683544564870373268909310480668027928551206222050346875638014914089891098079472803590010784749136083107965955795376526159348309982373787069051608160704627684625737281131138293976138249793461959239946543075734850694990608634335512789783582359184867396653877125883745088449095584904096880508780882509062056069372629363655302430182277755346793637833105670431831396641798897588182772805022583209957777641690929199605297332933269120894171549504892688587502073053844478970913940415480994789072358591136376710167871299149164696082227908643796266312959019251047643223050506806906523660265009732755966103156284643281999761261964304278988330447808641444904240319748869763378613913545346871111134371418575375373066837148686241094635112847733338269847675825728204977452157525899757105765750958809994118622552892242811556703959738608455142183652449275211755824637565027478415938436721711046073488554337913974241283663266798171336207735023861750428447028102503714820473145883270817703771879303387238068011574221777593645338197932268213457036900086644487008864915011083400231356947239087096723639143132814729932566942995591329657516136687626014747905368509052356431201131931471713305226415539974802672014898496977854094928492890383377155491193242429608858453060231453756924869022070209844205200794196298921531684926267834440776982256446748348841372974384552799006784836393274583996985878604483171455956317737127842842607052955909276319490588420013737675402942196247766577008350158165295185637751762979457366159436278679798126827356303986209851433236305901217919501323571525232345559329319909381967957101485232859620284023143556862467365457384448487334039141831974520603163561052936369384087269743813447136608079712052519382712372758149739878600778118305908205699606050145195596946237063936769959340783418080494776633492322013051651903417568254569130699142487494038727820854250936517095238686769795330226114307525130111094136514717036904117932141147374123726353203215937834479833421525793290292196594474154813647605095776243188463425498050078631128012969742787308864710696650473882280437894081477863634072874848662589372079782892763435771148498460704614673214697451178511448889140573391231057993086367745640095463256029706535143033895698628873359270404142802936663880592248247109325597657553426934235949064590874275464748370139165393517136623297263075972723678445224390062401568989856294949533068247777256082766976350323707459166585572647485865487455855535871784800181379386583247461015624458082379739792992084837495723379467941947770924280996876066796620828929102501700381714044825702055483765572808193436065298736025338729869471215985248794909581295647440840730554219464636789151458068122024779924554625398243782850787965005687165611903669002472912898308336105751429510517507707142566449987533490431513151211208915676694863440613440920929675448606640989507226662036427271868416720169283340349458638267882280519638323105246648937326353474254800923021157489030670866432293453157260326248657470971133319884329578649289351594878999947196963886635883971618602217643817171924068391975704280128604075162956318632760245345630864798362676738869828219050230134072979915199635188998494895808813266103897799040578741813977361287186592063841691668012663610664635230554813719238669500969978112795779346617779774637404684019710753574241659851563598347519197198131606560582811909195018059690129587445538386878706329551288278507184487551541623711501658680115222857279078258150071240077660452019532806301542536927691136629812041156145034211466123905144039960408340981127409792997946682582520584858017488092059711247349106048235094739389113573560106761835645581752258284272592048190141184726733756858173909903509406009839591280828647180045199486687564330715841602768630114697734339659324407419902888266165594088886049808575331851502130344675301155712380851541380168116212746122981408422078350321044038273294150017473939743374274992290496403281466519667709555482199955419118628882188256784187403154271231331672209006671406953861755111407254828504128350408309945943508841958806836737621285423327711266190418648167406025874392116922395659992074829539017291373107652306021145973306498579017101826112849633923499924109562064338170578243434379154744856760874848812609482258011869831751384749098761472894272265227402361622297824082179725369652462912852912517559965382016516863585134883931332155438481148602379278714521369266088771698254375731536612236531029995383393697218043474223361469111091245612274263801059449582714097459466967473965027165891434875691686224937255261254789460651293426953742157381460367387764188174378940529172179783653581348359387771797436539668702859246904451394803774766451672037649199000990179918526198449248595496089077908346497003170713436080330198848113060181993650772784736328631954576533715824813762385045254490977893651412689896604719093452129343197833477385874784714900658493387605389773702934774488148444891475818183008712205001587416892397912400009570143160452401463169522587622107224450050212362981127850077754799207652719050373124761843302299467861207615642535570036593410884637305163981714753909676120064613341297910120759219157177861207505719513945305213427796011312729204639747207172838185411483123176454167754743380471512465257858768159280164516208657851684364602403090738677644045878054240781571020341036914120034250696812537176679749493322105543964787506514472989521316924615661451225310602855438682452229344730532359613747995186640805559375425372101070617345477604678141111869309392784876873369095298029991147785757681713581013216735617171126474561105731524462477994148439863669624049667439626522186196459074435896123481232935344813197927285144963605640288307873863032789189240089094218343648246006472373161385682745627624653040065621717069043752913730967612688891221235828689605611259828231369660380367996462680114706384172707552412875329037686076556684486131843403317319770733450874750618858370882962296977697772414503368180092172567427130914741296002506707959422846710670437531298877532572086076698741959980163492223036493751396924866190297516406401279203265985167938215908384019585786612620543141120844782353357780959642335435675572943523604676200191831338588802574207789936065927257594528206831319678352923777836764885818988590261450040503192759727882178351339899678013835221745509570887186471946910505072332650156862646897746899875604728583718218640704255630504335999231883768452047533685423843711390263667644275326937850718151874241493751887857295025967126137972529636787595367964150370817715936548755776289368834491305334314392722806733760510354229238028148888199938233260528440754940259659320617839085748863617392005271920996076616496604654803464813000451362372808452394401913869414149919931226683273878215422282908181116425810398680140593468784677486242539047357577824479024147215892212021704779113735080185302989477309293048208912896191747781704323252296785620269213734397127999827109747825837828928905429830464171516043625288744484415208223316485081477526499825967949281575868558985658298126477148268682786174102275739798596222022510697690736256630513926191850976797048956972222326341955853031260351106237610650114412999612633284825807332668234163399251393012537609236304868288391538512266089498262359250675645622721675853170407475968726336947550116775774256939385608279382491649717491362023853939933645584764240092411959833260970903243531999076591180781991291705830394093762707404853204773109556625497508249165364061676534349171346342751395984070326075971235296862235049131950060402986768287656229258016382444843838910724739642235244308078232722663372987574351523005992515815768352907696453886126532283286313646726891988367623467947415990142193746101082483667277352102441410290708969475005531038819009065133080263411799410435433317979172741115892038786775478775513379042467943226653615996793270408924123488194832987740006555511220799383526921488052884806332851915860012275094946180623165597503349442132599450817144615270242914568518723204023856900877535108268449931445456226663102344093648706740127022642847920212312394066210109017157653274034554849776270825462290636939926109319590135497736948142453280989638415609066938838986687957766205660333633182189240092409671566187557241591689499653074255033296692438209978588421952800155541171827322538555269230075064729347193985647421089083394143980346326688837098878039805692621540787598766413118178653398779369789060029947102194752694410122346095347738647768146634056164501448731374043644981492920229875093743457432216686803916929946382157986722049469954538588137610076834620955710122581890183053164388912808848150575271471603711400563668792523897815519109534771572913603984347499007074823313299311999492918061938250927661729650921775482206849254641225863864481045683784091789064006321661355896024684498672784722775463943452000020939645630450991715713329730367191521744212345850619558094181549886062184430641388135784075212401250591689499727576110436035485631590441790439564738491617742638095057898261378537482334285680682660537564820444291138547877581224780157124172359965981739627761436720102883658367134538282028160851541319447777640877021372220581721583339884823755382062046052627001244814039277588463917008619425384943952322057595275157520463547760626802352349205292798056333534539221612438931156206222822968353290597968969470707274394269198328821218015671297695699312076991693210438851790690457277111554168744858677044474959594461314992029181057352089289692537035790783376705024900035783128488810285138040996345640665502248847791055262433955652192907541626005900693853803334271364045606869123160574943205074555659426729886314620049404997538305515030438301453068365052508070011708084885796803837823309434840553644854025258725583886576056197973972820447334557643858627890118051623983699454503344635604400918749265427161060736614127344863232593594926162378004482096940062624371339093457905582198891605099006051987047370745417030415705130714309401141266067131799347817494478487722080938780028186863809272465994622378435539934467866929849160483370208434429638161112082457338626474468149250571347222441412492343825163980714610052793700974414272085107145135634029210612990003409134769047342214444427129923381499552000063160879323624986888560586021535852067089011419508016737428197933444637466779184486054497294379305118973975713458340856463825212589619100870467920860301186526425912633029091483890481315909851275745874734609946304189402632429416737910906454600844619832610355521006203504831277701558820650244633048026892619988041233917242587520197981523370461534707843044100466503994421694629074251752454220419659965509033295755310986628618061232217347151270812803422244447713843537430345876381455267485077683413080155720022736701864885579716690989566313515897842436862746989118700384167908561016285994446185418527874541575576852002415485197847856952248269227101390439865337855505712624183880474816772519760585372110216637323657093468438570644255849754669928145263826623317170623237663453305377216090772243604700482727728114317483128940512734372001355513808967374817030809617665922593108429277145608807068316446471095666164709525198343324363711269566237745576897748181705600123826919756174285276387326357301434134808616324475260577142771349885113986836524096712258991668595085916245814553706060337526512496423121575267756416879226251997142627903270112509894446253125535628274752952627559737569883352934475310441124822435312646169468660738480835958112106520110780376734564556865686953535422320533096470029659272988480818712966980592546939210580962051621873542323970371208339570561869685754818009871024294133360089555821701942053642503327199544630333295325879540915358596632441493776257519878782720952628242836068032802508340553524273403693340285091481796637290805060924936621018503767375828065658149456066073679184659392311178278094118660865466109638782901774659496284037657120687176434778640367048790248724047703204492162842732928083073112911702512716799698057102199499680968969904865692159380904909691768208455154240411053885829130852084787355016282674133168322603550619972544546299902758035255903202574118608825912458313752096116215148257711769809604566045456454798678605660907794305743573771445757664712021788824422027682988899249783635792409030907821387432726166798976707384857388565290614587431405959004618660739657286857725733043971370448961616036301491256605281465819678507924462952734108957798552141587273079438300087695740527056378507272662811548154507539524142470708360946264677125982218447018478055324321695479016860375018566729553597885438594614562557982280780533810160809260629945025223509907374428905111094140460745792050493862519529160114111436568112393062229990634472173064192817655987758710263528974068029455793709426436836736983813068159774542949766053656401520665101558567417518651142818786418889232491947571872753146121395573616782991230895587353181987638198854627400245650915561427354736490794596378138492285423412964816170485086389940280877000559818676416861175820380931454997228922270169173981310312078382399207047651948876117000585722838567780888533161316896827023346890518385468396963847656881004889076412700058106936342106138409759676429692561637431524242471978209407169460806936473023281851673265137603453702601532824340811419409360827153709363992789730430041509658177242138621441311305850010562008713015018857804781665114692748270991191817366241611810757544723658970594034684771759471298481156270354137253839144564733839020441318550346451838616223830277367696862651011338178885441458417349296294891774560945172223709200411416300009530252418000373136578024808400945648509344046983257581720043015118044548175948748131762963827942804757092967436359891279822932139236566238130870169112486915405802477444956250073049359811083917949991958457237585494595131288933936530104299338160518868226464207906188639403216397488492802208613780645729590659665498562899442670317042504661741748148279770992284830129687642376456526605519362801304355458734708651289004432350733957992820142849319488401306377060102409976771852165727340565261044073009334944243166241096397107367102302567642303283061198333718009828905913780795058534771828944127164672688214291152478162359336964381939534659316641984589204992518527657435158983987931393621973447526663969327046112824111637429390668670957122648315169200113289554072110820500488378180992890384024435652189494938689781016346413202677650093668268502277496603243328327952969695980559592216631777650659376366193883076148140023389558505528774516876123904822194832223669383977425916839033548765172874252023061789695090895710723898589484722920729581713860882375964686003478138558795762829639432839769865116362738387133784255815728396620002890938356301492310446164961833402333841937694801924495563318782340803954445058417974521389433193542884346568980164798720744038449320981805030516104321089211699662262163650474236187380891263951073640661369018096781985882909131373978425626973002246247554593526799538198760281364351203568549062657174174008994506866888828579305398475948110386367669986817236214747483006438260950714416364605551292650632133301200620430533673493877958009967736051142581740543790458442569801513657179918495788819804319708634235762067462017383678472912769352048958846820493383644732417850926467974453654737749864834857982475919592401305332121953918361042883460165785328991616887800096211242716561018127563381819930567410181427930147555002470287209213561083901275948121704933748974289670545769541235730622760013229156283398932538490276993845095042653372303517983649022395050114153290152466810690929381284486039971490174826128909292026448941889808326322060514397126632300507608990942409825460402586142865130140444470997625117687522870305399458294978205060300113646616302024344683584323832826193536934171300886771169983396081335080552374232368391507145637451351182144277699923387634292438346650231974831606196479104967064946553175283368338486230120658039010047429106561556919330066275018876928190301093103807812695916358371650521252269581272238495396393839516060806735388754005669885013119663235763409194513245815997950148543778023671114740715997332582256538054327835782861817510752984918710454383355929674389868127496815792268818924496181808928650963165570740223190156124457440232196882202458168158333745734752663744510648666241811985031858860697759094767539825831719061149686423561811466389336869387187564288392164831130029036827991067170422557381296950781529252932755184926065345062598260198513605559182760540536727562244190168289330245959918532155471347479484215610609131018018769223052432307302271174278034356807343224421564370336323744035918152729277317942865048589155170302147418930091996147666436216657656154953051059878531845144286665036448625325269909109170534550321418069489752400506230829191347553123202691081074654218833082544962117432367510176243645821631042646081280474389278887373888409563128622795075160755154176382730637529585244642269229513053792112515333942714007406709404965399422986886283856768447058421351957880807790402632472024426608442048367280670144014865793771815112882450538057614314873475033456236239573445166739203884331697641363911180853022107128463518377056745926299383624934769020638719857855008364646686044005636684952135555353219061687326280075641238467603912847464147777053599931255479791265354744364777566202456900459279872716418998095207194883767145622943158330903189609562591900539716198035093524661505056627501515483192006917904958021340667625559385450219926121756985990258996341350104422984942919397518784285149718647308129767290889190381048594817908204122135020801409031876801784621621022935193107267496853637378882831980566282480189368189642887535999138212142486773139833058513384121813155921387418672249299870120235284753573024048860493580073306895371770871620690697581028469062340034733496104193658026164000031505318569031787889774962676090759526214906306025331659253822905768435644880193901191911353262750538401830978060081909365996186391666923708010786229287206879529694462205309201302214265196004114912265364720483683587223342888246088623494586438446080281529172295613159059737095577597990641067588550559064620236698420188620102549913548540105723864198840525467211509315997658441150021404539149931495024617351584791495234230563124635303129149380777882931478632646560794874603329021834312456145820979358435735699785680036129015968786343166083492627984791707340019143629890188670148975720858379488746865122763853252882593182999184910406328499858816939421278895338887181645453523830108650651174002857559229816675187480322817206513687116615570825309109242869422914050700823981207025460589944024040335773281020604619405225778773143549951072662464837108017863604212115780754372045867898369400243672311197550426607878922318151142453077987029599374530687862047574050103734205062649618715430922700645355740562600551759300556886339860247281234277425806747312501469414148562369729336831355358412415068252659720295872174189577610756775857802600083672102352487302731202412631731853367440195051513830141359136504036487180610934795066148430171530248608019911265352466004035224461594638102832952554457173017366600094997938982494013129832580464655242883239514774378916789940713289197858233898959794545598042632909476752287510760215661356776266748744413616915631464925036365734305435457946044321435829667276859466673107706415777902706878208144475657940541372551271287053227311956022380015312158574365869632990863522322686667983778817008648350115482270409907965980111657320646785997471146246499590446626924456881706010615224025620923289091860530660081087517434837210068280923355509191988609960716625625370915144504209406101454331805164533504132791984615906374008676166561153641186653378663034189211664465225772944378848902763635343752675905096157610016981598543759872531333452201587435884292574346569332252457769257257585264356435960581849440236406654372728086010582942415401866597396674988671107099080364319850397322466360282627749823523072846650591925559349751875734779332639866533145050463901548081001555354555705862326883461451316460444985385729972831651006762952892022847886190152382427673406177665400435663059387199779853203253009643057160864548745138403668275443987479951353091285236997320165662848304989201320526139528097283563510589785790401845061854879840094482239595514466945560456991006803857442662461917647265216980378695077547754188949472225868486280742045105067598845319558395910203115703658845713042894630360982040599599239669930638594986768321168993883276720841632258723462161946261013711892249340243699159956963972853210974739804703818384482571920988076524419950546063060557013065641031758907902781242083457284860223878775532468458634414880326985360225700626683178613886844941365640436440675047938471937639756915790324840605553844478007319826361071309711787990150536355468922839983253662803247012321203085520827536371251699403287090963300528440259658470476640596347703037165787162342383956484564325791115229500130894293297246314849956708669327534376081260289826500189690610688484224714854739009590126865263386746306609197880729563186852110997206764722249738800324114268384218409557209276476861530309716269938252837131990072378758351503360739036837646877440190432161347031839834859570873512534985885238386867106545911581879634738702958339255245956243255748958451871252537548278858487802356444754374881604652981967058128368392840177947794613931901959180950853042663013279491986904293832447593578686594177483564192688473585756748490812769415254529884849564214301127895225793030842913125382626409999414542305214266422440703926711576025963757457118899932034782014386009381282039721719928857229128785239280024931424510451377092526167214418293779577806348274861141809929499127375850762144121945204510201423151968145160211032392194284502346736249903315031892066280166155961898507798981770201019545460877610870477611109147352756764080727260434104519266787503566175137435901775150848815181767653020473220841397121112688928456889202182810265238484931131982766195185463445077485294216259306023472718363476205927722791004329341403505502995020164975901835161087232752827570107706063557658732194618982330348178952604586794657218730598935432005794677135069238166994918920899820784980922235656482929768226837311222849713098953645903998832072486032611378724102888512651010372268918867504551822618041141415284631619858650392333957964685521643698347795317582618093284276625473688853749159798468428160909215286889702906764873097421473312346539801171825663075452959639858420816881324396052296954235540529190063586241292727552108345017556903375966631374191623923314188561809520309900160118012560022963827957275692067761574722774327512132150644474679744030125803094120021459174143955725316443556583470847771510560655591451351973318780100036476585093576240118408739239354333902414128180912006218143407720418692480701122743695224112011542313730849792504304566171669302605400107804987312440778105335283456316301411817847557671276741641085484848534475718528179665453526414194275523400117291594859423716636602503369940463728306976709826182889864831505542126653392214876046774204997939716361627030605479802852954496047131791406326579693983773974781176772533494212727972970575296758706775908554188278685131677178818971646595665515887570335589381703753569282879444288923442556235160100821106752871114666788209181901540636538959973645662969419507473882728439731045706163215114106133758144543222609559744696705588854923930983578897374676865618771697936422688147580774453736012546244255326610255656763943442913687785272575462811549304864330354214985198355449694768114185516289675041932147679847474931722402931730796203752780357183181921237658323550843129422109092365516089684827102735120219138673094293905243411873747844034085531321200057262453111665140149943345400868366974033829142346255669710037075302043072399491480783329668077836636908224189177142647141897627750673955292561553156470223065206491392333619784829564333332407001986720275811331699197573337196996375496633060123030323188954703923705204224898803151206478874794630594076408191463030458570740327703728203725709890641528034805378817190652741111129192833838789519432221215448219943801849479091682478486951608038434785075736362390926722972510637511289001358923113726415865372937952007450539859994817984315129480771463720815755830435212130501076260890950150734992782191199737727064271165259249697743597050265601922166761347441088320693197200091033076022230362914396280724737387472411068797890912869396377295389609401585508173115309635489877940854425381625466140908838480631326625878219220244864951065412688005264070793167725072961221871964344340712660435976574387696923265008172314277229271601796558764790140504454015156868459898179029982439414197529141770478465783351586728780222043032426841866897879999006592548727130777765126982981572375152183610521504244040904024291598309027455311260803820639775673273392567822522856726393448388156448959145609725199132806125778722475539169975527343948599947476508220909500227376682727692949823501355872712775312611869341135546084168037897806852892809131386828590997074501268509787848744005189543425123884102321313033663869062413025209209439967978695475138765670292863298877595979240810789653327705183457621583309105512915657402563761992522556943036488332352645082207023956020514079131685602816872459298041455679835992375869313963148930846886828499900015349043747171823480782893838624492241828634980671015844640103522835148783195509143220881544355846414036351076551818120184721731977146805163175629904449972396154486814152984431874221508637280697993261360526476014775769183948645325197009422633534897702381389114447250759536300294917946930288574034770519959811033851542832671719085199311600087557801587725457811978807449880495121597371398304096629957158029885515756286713928235607614038605937869570848979755771869336728865494205298258938454247127129171638735045211784838442110258468240759806657976435212113012859184871746398128006092950134096510635149872152787995261815597515081472167159695095690317984458214058381554540414614815604096282905743446067071716406967736969756898348114583610261155436805190365409647798112084913503913874228195488481057791199267577418109888568484551901951281677951365307107790903757305699215208599555958232172451407058422011407424585388661131826947117501136184704409121307303074513970734803142091831160649647612506430948266478723757531967654631691809118640322784421876645613018988881185012962032462303120373292842889036473105979376575984390901174680542434056309210841455463024326770418964258762385801204223966940761207060355990242236225556101833975457432926799211138091727739864212309336951375267200140222524113704072872630450740427620870636159913617979123008762573701686216073862405925123687776768302184881840202732275919435149698589830605554193055392921919914920262186150988435814210162821888665042977265408470622916896945365943550796231961571071622526754057231522353923437394518040633310938808979545472048235608493613610500470499552149914988431938209144348640254893478790862559852820345326624098681029387133594152612997331160344609568737037108819953629065504262802682986072956397692908369084122082746102060814156695976432899643557651671459886620291835503039344073480037818952647610283774401217872569329808247669179683315425123385308558371323710212616968309380103871922065658989804618478120016853505397442835226690465432956297178597986624950487394185512552212249763090213879649454991551270819159527923532198294770872508348973951383699647400302837898219179492136967447711285450097762681770894179360547239887607993429726161812435914335467350273373169994764141164824672232930883241339447884127898309524819052712044106193618090295133093105873242146789428995086149156986492679823402076215559393229899335317170936226058668584170178343012091566596203308659098242463427577513166469966535391047048104630287956073068077681108300977081060763409233314695701060976327662053938582224387434647949703789257174429676012161052282468870224226411304626766391376832281443872555929398450111237464537693469314621476672319411692666570258952263710331707920544791628209538245232207279614552417474213081216735461980528148056966172930482134745168068312625633252307891827688086065961198724569286952092422900629834215841560329422988189486613991009344885675035950446651822857393920377083565832770686722463161480935103956658634284108066156991776338234497133747065302029671872875921917403486072293679574107991101270282194794488716493335840100276812966201752550890134261099735577409855895724166555330036476762874810808732500679534134902101538431628757015845491865689818327444866325364079329480120966381386733315659832471588250085684117322849622230243426247026131035627053810094079438969074916781777703907322884173312861170142045845046373968702098708456229572343188893206406090645037871899628698218426579466302522832613209242622027307373378626267202039986767325356367410589349541454983697182156740975049996039072417167151622989784059444898835647128947510178068324077161806807835284921642612603167475268974028691719015983340106547530999797351806867290939838701951079952289698385860517136730623428604230687328879304673669347676890042240626262288460020419018310302615527248122105851347053723221628353753334606330567623800621862590345821486716661280856216047455966282734021833607820648673911689519125269556266315248413278126724847667286274496041264259164314691980432634176443558165632364569452954278178307020646952579767102505473580016503615186280749174581121480794129588050944800066826624305568829651595214443583177117236822650124935777747358351129885994538569096716519547374012048361535223702380599769182182044423136889823008164902237814960529179065451847993490499151173012609857675593121061853956219251629909627642646974680419693218665972020069484899248529850715444827975495493320038383542352614926079131479566990762535414488525282793944614122621148350509141685668931616358091588360057063629279643308655591498139817002343838673640885746549086667395505064119490458947440538978560608355946229290842116415380166010039357247565877731905431920351737654185580349752443522181559039109765702656071294944840994029294229676881963849911217485934719375421674292902912515163391125800261454636501151943863353392950055001554497659857138009600764933317539653467149706276446988393087338405769882585966276524073585930654840263063344315152401051331093560084836727140432655523144280440390031950943271416057866700582252528975699387946269820743067486480623310149914230496006586880142658749473845933567272767594213044299605279366772644849806197342396959200273853250239541339478962321354217385341506572614769607689916206375031472391402642993726504119958884124471717557193374860083681415342128076853979663122293895252072916048826867881037184642484685134222122001422937200751387598888999173033321845956916786399035587045678091977501218829112359042186495515397679189735009969423116172811336336751801799743893760687304073919639550561990760256688691573181069442270053183781262750677742125734543446185142997432207685450037945728274871009100470118705064356283517912899382211949532732264842724963350178726500921721982481355226223810206628594940132326603470075390848237404106267797754782918906747368823590640301797379634908513837284095882740658732288441444846774628635784082005735640585066554841658510271165721810048778041593905658469638524528170213576085671144754751817683239032753255907471656027204998324365173774508956886140723022955786666004642285372005401855149315890503974965431289497419169400912153515958510651140522629385319424456727270755225206952716307046643978551275710725090281899682618731737147654207475385951487602613968157453319939641521119581775316537400752587920465638245951009336815713338586114751367081632734185056534075892670215881050032559615496183348000048585360368758329347840382575214100935781267057416688214598759488231917116753713343462627640251577376278873776089022668716489735793378507442089602376033535169207919116944590127598583651682586160548773603347092366842796396618922917398709024607902720036285989707930700879053764539055329527388321964557172055586301509092108890269362147228771894029753586756920493036974909395902078687617956191307549511110503227918644632825805458045006971831057179284597730033629965124264872834720779849807352859525966972791331043439369497836330428042604307738163001272063229488851222677326203939920545175650705860369988116149484070450494477256093580896251326692718765706638356595999335729304453671832056191302684905027797766700771653491153533589541598583750389116268298746261405885909197701371219363341097792388771343588896763075774003309408673525233905289882099968247744428731409345107283730495777598632065836260130759443356001459273347598969235633043682548105344176875836043086104045019748676432647078063438934895999086839705612032560336319285219206438235473023040157186353108467116736780474638765317482879470380594011408347678582720562433963485928536051426680711716951041126455178830355021521154981541123251756035637290172540902954246861298345813575186669889078410340503923600299172162820441319158080253098930971278248771095638192699936766596951315293427929732649218844904625680491898935193952652833131933678658635928709309905347317136854360839539086007908901669201541293879157565684391037245463705217689516495181668233690121926719413067503847505423955708982420383053007638579209307937266392052675146738873911781343423524231449135490953147885837238775855866094769554823273432004816979693565104257131900750160914408583786254190758859591254244035346282881415183017988523151848874519623484831484574209264199878633721191083672205827862630722361858796327504597654620779146955120854855960634969810606373401945395933457817234535746945451935497499455450373584311131510868946432131219670587542460722198241865934292761058074641808351534716271588948869603244816459465007240065681836825966856577516051425023444607161943105022675366783265492840367505797087989853475452744003462707642819202215422150793430936039745579493861264347220138084638579406866452543076286937093074555061741967918582703260320158573929472671809293651268709903038518143623657794365591755988808258982693054585120177234192932020440868925055547831992331258637827622396403364730360860687701922933406439940603764639769004602147446890350691118491556881306455671866561078819693634068098313256372781725494511289613394727782092362808203488071002665651581989845324154352214178029899505349037648666559006642689136836102407723478199413383276339502440286596836687498286754689752296425163490522391380463351205750059541933068815804418642387504670022964913861808147375503854824831907191863865137856625770227002430985068260593100246277972129266463499826855301338178907606676716175880967430369233412707082446661508910860471443562986603080907774203885951542219292637678047928021387754560320525740825185269968631913257315896387380530229255948152448302695222900414306765921167565164257827638823450253614731302905049330641738010481930789112416244854859679788429827614642972116756315375194276080712001162561192377632279763130354133794656235838293077299874334986213655873727664257720668535820434061502954318950986264215816178734382762419698618946073671102217429671623491395633567580680529688903993177860942127965134870169840837879699632789254658126278847245090307651107709559608405531678870792237846706857014452925747470382662236245933407155906273696987267031726513109929442122310637390815710667991625010646651608854063394928786935857614524864062366661623061461307638254091229262798997509115605187933444883790890855816090652024766345340212022462266096942083803577480480896875813073844420744713880901108409024175582726269290170832023987753634899506473963056253587229207168012171614142435974965007228677855619458399960739467510306059548305426871583185076688711555667104627067659232533197372126064262103784917072255046453428952493529469232687919077481541116979761038960076968945166078924652863632310903997810420469857888221201033848409705892216879634150424406439649909466343434899524951549758255120884678161980921471820056964042582633446442636385383685112491779784027562823201488424143786230419734438171122240987303251608585191539161539376119804933490223089230796421086423824182010876024705304408172790431223102437501682332254165587770032828864631385468733733031203145597263925531538700216894023814035357993182854237382764754012642665307952993960923061318664374479330079619706521026582022497795301158631979173605172657858968274535131055770671770534640514518385000916088425776401216168381170061314077181111839002606272431357247854797203680067193544778098470377491317436269075898291848343583627363851704185541614421983087037200500404271883454389188717894038249594254667556945590280281908422379306396401909495082718424289392205754068943570365145950862902338874763679802121409319503677059943992712579510787903286546794104070530949650166516988644597598572004051588994490090507141528067713200866504773846715357775567481788037088544060325544111229477547722676556738343428239683947550348323974325648384781393393366701369339863222050534123422304198806541366636872053917544494893183815078997693561918447021360327964480207415662406882758569191907345665228100460869241972427822172436217218562478347365361365033717556704711214851726164063192983261083481964147505394364120083990461465063704038690364817227856036056716989302196374825764683302042770939050521723260083197999944548084266733931820525148026571388276950176213500004138214002745360266593163575951091432043218183596744879303077586260214920522599237630675559156847488795113233666172181254873970964575855359481326933450216687819719435635736866481755365438110861541471927529178807258216934473503874462177386975837889810549486527402670952799495481998490166558940065582867171749270844869530056725169447713104165731238464506576577886254109095331556833949962735421223234665251104377472071824982384412646083345618500905960058126406954361215170977777019714414311269543858013311070244274944269495599216837407324113181022346610271362785746605654468881656691247761609341172192469906421669469690149586924792385663881508492038221690257446900095331393768137408132296765041181467115836953431274587931084498744974276794998714960054827951067644042383873338805081987807738883791999585876207977115777441987368759028720985712381204324870140057154195420093850639122931000388510749183318989517539456379084749220751052709766379188991359851923129103469344521073154927747972301593932378791293101920291481836447499905566248460653082390066029474481925080808903891619152743478081399185144530989732568390191999275703698382150898532511165251505733517819986492032149285763834447102259391359027663824560447332808808469085537075147356129178754105517804974395951330674467302067300353204336775747894223379796831201171663128766508644817660963531530914167332292532055999908216504957612502697574704776355414861225648012174619733234073226515080096769704039150557573167105131496736403124912607923197571544107575644166389581925077937538077521723045955567698360258900813060720172204104326938810027051018037257190024132333418889611757070219530777945873298244037697663507422971075522034583168519795633250004059589485025708099940680040560404298551373382229779820404410875769689324777988001160462950972705045092903048001125418705728006681341270250181271417119604891893475975074851164207077534303840088266296299105920621225126908883019911333731340971830716298646752602160314383973286008173740350399580397072773040832712847974551345794118403782400056199859088108625836852053415670878543120332822843388683404095812982641750406419927001661249420858861232230989034499653697484832453061217239425671328622194495404201894188275448706113321055476071040036634234399356621243284391817297997205443518036360537958172360048153562398146031500237242564178223338040615195107586771208106863845345930487432968211744938070548516979515308405216006738418808239269021096239574068260670215497011998020650447529641442027877026007758014002133617767136518899324045525547597569597087638176766407600054054760073716512500529850118433351413289136503177249926453231213204693976486601605733432504949861427215068009728503954795658498086496893000730755182504276108968859601656830005004310419020357610374658716318148252715037928206833945521819751975088333389330334982807960453562836288282644182626614236980423384104785935069288538788797077727065409586700171890375529602608105296082929872347427653653294670778298746350035907238861389986227285941155005922886731296480985915163636957184348563415074951441662122883696724450980112675113678475043921968923511787646695561187513601750619863634922384261442177190366944348853397704241970992363457192869828975721394600416474643791991873580434362233762471809549349939036482732746247886386965429158094626586200883773365168194392569945407930603184695484033367557730836887763995371557209009437144862289956938415257899608764351467909037627500946088055524889407710361939400281214538904722153563662567930041636711070461678593507408559637573765863643234355224801872712410605410377702749245049962288627965831371938467421303317515081441128801380861139776575042133010181600395036320746425275524304323145182101152935869604961218076239689541934765125662648739954136497916202148519387771949284578416053048127636350616650390578226646025376786877368228730625491927833354082539933732466182347323603109800471102997290739789974622368183687179094214089147585830205027829988466188702753308491539521472471401309821028209780609105337383663376955607743219660587251539211297193697445862700263922791473742532810296045046690229937125050643089070044947469114881403718012857674257264778570520018470207051874863499024792180113938293544008539924416708419896476152308631619092497480975401967581118436668137428628613141087051170810376629034902898708213243874838529748674289842947189103660877773254684080567504054704713400757760221994656356237729037828516139721240707290237903352957144139017671568677251613799484503224921132378970488517774404983228182994339689577739441115869182894629612771652229666928131966262097611110135769229450850366821934716058420612556153486941998355877628729945292665847540361973159339649506226559950333687091091944836572366192106459377061645905685374581833112635587420492254140163208149225755267152814723614302775503845139729751341218409856327090727395396194015269298223221423506216051187002243489019721192450199313431339223306331273747988352119183065539555805824172739827214749405534503185347912606605779874506734189503191185091775006346246846939759297532699933973768452216661967822434171446905573917777819753685651730615234221694400517022129673014996626018423366026531890106795032821987893663647103275873054564715125246057797772868961286845053758237740565942427510580331287639598855073525799110204105610468679369782688312433547949208912990156310809840483387131729687240911514835177658582027729552107137716449061052286959893624420131641261461528995028893719230740832932671617386377530016804816633302920360612598681778735175728597925680908866578891439566445730432306553496218352232282251663790821613347812282503837118525827147607973760656762964144626979830765142616953104647813971517774102720808459732754455267567179646669658100332624027139599684176976649002261944257698068780872494101370164452326203849546913695102280419510059077007883765690889223154907637745782588603448205103315487981987058409640376800559521694118174630791701573259668767382924508004152341207111027716981883165947852800218983042000701062432160638740675849653446504277260179493541067196007251641013875548114407355290115325345726947536424913958685957338531555873809497572963485601064918336203142959991373919917942491077714417504211233482494926446622081680429755025284173805233295473778494057979334354842659773765964485764955447317346979177916812104932917621078526185113205631455115893479357402895450301243744241703757467656560852827175723739642150061208630381765644130037437980880965222260926062785875940216214691486827643266747439303326750966733149783017317493549148643571797577571874346530258246706602117758217834318042333507405828454088945039931675249721509769550312871105157580893703307459937161761986150105249681480185409388513315759805788339226240244444565432776668866314927112137921464277570403066556905982335300078309435264120086312267573809275978072712441925467267641151300173848525766397084382895005426226923440608851329263219652824866627396384195988607658275512706116048728311323982444174956535405569890960792315752828440419701272170161536613790322569328668908581958259584493979852962564589224306384730701618763088501039439704459670532786191404396735674536863677973033360497182645612284032078478134038317400019183208663583498866426053258746601242631149395105575922567996898139043120965621228384744034451706248336243280933718290038197921933372288846550249648297107907659339602309362599042972770919339797524874948604741743176319013311607497343237850958019541603856257671751457715572405756121983308862442761370277367287033243750820643211018324550992975329898055236170122679555198183094037957902130992328451613790273899651515857182460725800721124730712391826077876995065808478723649848120916228759542248227333158819414465893466791161358477075536597658198678904499954139015544584283010897139572922399470920767402559658011661177751801461314643912229770446161371735878001491650344728725652594037766667444795536560103660578343093202799175820808244912901636200272601166487602925404043111590045904338183697465046165748923650494112227527769378650222868915943573319980982773151104999917649369693061665653350333989598838420479984906295634328219448385653609795365454514986568833613321319579235458842428648626836648190139344668867121384285568510311634377786919873077930985229053188516794509123798135690986630333739165458497850835773320102244219653778604120152110988127537196487206465384571648925101432621874228098258616125374619194735842985724103648243555893874950782124785033300528234966235904011166492970605229126534429414723472622940688176832057144523476559190280817233550788903262450350281475802762627606834793465178624440009536361372412956718554793759910719774136528967400410890537562218208044260308376017171387291056905212361518891985327940614353377606063442658627417037471474879864321996965223578796380324107043869551370860400757102032243148660814815575086847387356547932747937561480467593360947905633252168208856787997558420400457754422193462615610131132383751793221900949631412531643101081952167773663932640997788030453963146177420811666665180309815214772379108633773003793825009345473944755340855100400487190896627151273211178706564385545452565339766425190079162219465368938890428357861269310411713863116324196208241663194470739090696187063934980680807869698316930642259343216403717720889588129926600484063424259582657048151069460657306669310740605467898162347595344848970501836459556254250410772102595842631646441429202229424947276709383748437597896457309811961441315680928414187601617713788737426404890240751056425165045353572494257909003241128064186322640121131761572187377181315456032206265566906801082446705430662446502046997004209011337310352094339975096402657456285133058743668359095689793726599667853384371727836202335725305502956826426956156456033596645971715685961271182117487049740915876076200251864544457967751341042462858117020521410009163706304963888128363614858256124707904707101300551143856730467177536514810405951891345035397233144902329056296048611384967995905710859079105305359422556329855876983322987841029316313454682331521189480381735993714912566282665515265834477336213736603162406862902917198008956852828013007103856305708297449230572280976904740787731146988019726144633620926001240810720749446289667001261155797286247551467901559311844637400627301618665146330819835344199129229602703037997829541270870111065099091092969802245640372031374510128004329698036473264550173456856039381814371278973346204224759279908767231061941914656421225579476205097931074123548665746107479844074127572398603892476053084450500316023566230909760483957017572576459878366949179797403261254514429263724491185592081982455470780938396041473365032439138229058365164987153063962952645079354947781702380864502384876584312963425542316520826771449685646518952612854042389294700447328831824246170985388203482446514261603602585164326602949878621120619196840268703839130393947738426936470672224426433341083896620758161639147719863206240123584781297687349296062274377883906024864345496683969122093401116542276483997461906647995197962884251606947505119218804034480623648984967673150403680693365573757368332392200801264771968177923899100587702733482160919938508482656698698559761183334702098130726392625083274395431260859011102076420531898821281753738856503106892897700375110602525468030947841113780585103345869850567540503089934662917938311881922448419022207231756705071330726595566914018836504103845721834768925255654466789323659360387827903978911028338031048344266813482491390353947575992363868140233828146962473163693347981161312476122782724021548310422886688797493893749728750802806986019293821027744146843005935597047392066247941880468316072314363198826429769187594989491356698718353641693129572498767633358383963289890573841735200046171479804837009515853756088283446464968653648867064747069636125218843421229967008298930909602645854653560558671610205917810923766857809219888311004710369107889922513264591399175070143505078890600618053675921214061137647217460004463145640971679908972901881408232228885063640055723572537326707765204190506987134879334059479517357869331838096769537632622464158577889601265299763743663059473844607145714881407753521421569731280876332536569266214939725809262848809771236200170559722643299496570742686334162548334459519286751905634124567196674265979615197322485162519921885383181950386596394596210522132391384334375634540180237087323366417648203253428741515752856960012427183339153254843816174851740564456349918692698020249277295391619265468150308625499564427610042788896429208496221347505091557110953953485243280696491418361731759340440475255402766005726104172801391562210655301971635609033523556497986945513774749993259778111646180222084315731275344441750131915261488079218972865762539311777183289116299989965836595489170323275976044253617716670034676675166285873296043214889211155218275145745888676880478297388031506062753465255261403851794300072980230868247223731488679602768929685485402307970766713441955005693598134415222174030630486711124119849113620747734261284238777864388441244851458910549204297253710912153862012999969838304056264268673105267180770833166154533700271133833873622113956026282223970106949222096484312922749501775463536213678968450151176661566930456698408411869756359872002822907686406657279438656057975672624987169341994062345544916327383990886588869630425618791585758068238451119710629160732052429114292865268528839614322082809892873966471288936236832677729482265526825027878758216596032588101175950305501980892357542057626043544430907123735589177210857007340298211274413267524649594327381766644279026918250285199449567254478672242813994754499642358761146245433845580343078691010038403505953871944910979594025340922426621624575420350648230477875548800735598754674539231633364618030966465461930690591068374802124803153136966919084436130889612311970761515970779488468040657954295241384034684121621523494095981937048898916906120364391814138080531832168896570661873373706592333555482549690978471595072125312026410970377132035317729444197494621524094887765577090155716674627512999373901507660659102417833304218125867800216389054396944318570556333807771076564672574133048929588645615963926366112069010335865193783255903468144361262272455111488415507589897043556502224135029411766015022107682246688661466066769279581513628740321347111284084433418473275085831990024216359263644559278691942342739815837673781112551831257269646859655752858527806542685996025666404336416664058357935235071985214291329296847914968455369844370874988093388231548646642464561287407323699409858300670831746046056683611107250018908423472567872875785164708379610362846001650729254836404912556216994400993858076838490374059355444507025383206940068803485945259595234197726442911220787185082894859168547702818343234393289932610286112637659319356301457644942274296908948357675343201462930948332318409810231794122749560589587474994621249364694678848855876613561733405833903132884787655794323309041498939610273228553495444577724071405954974936607865350019065936689167803861785775540959689802910878267432718481339193024069548195592660578589485492567060097154818897686002236557185177180476867575902260092168627087239329794598996476180483457204393648181508911645299325218320861098289738857530769044538541588800617109036357921423358911467008091037388447877437616664488172951842987260952579013484231529511549937131503412209055140025848602904708164489857886481380690249710207317406826951614827632868059185169334377309647185715343066588307849694000986530189076965060955979527189539607274751656296902510591267853517625171201759876425246150870153648065812616420760346194397089140843293575299344819395874727123783817814202467655089896435778047126173400106363820890172317543257075537415033874860040505879973642373962737968362658757148220617895347367643091712432022623416557440621351981536330302921995747442500784164747596167817815586433338719134491550009592866622986288725430290996573752698731040489310741823266303080720745625975394259886470818413685018364096225802605520956470959024215614009231848631137568207626462664324338838695936608029018729681984682933460796065910900626426709698466964015219553240314735852023620287717117710447800619591864599779840286448708065357130671703688858702315745803681695904077428716949467767786779973029747617990926072289075155095894635867918297215565379378537506943725771137871761764360774054115430914143429478089508829242822536127094496536929780915334419736996055171695070061860701259940131993153460668178720697531208735359747960123029831696117702461460528205482786386811393701540962605292438319705119334357981377472372601726016045939855452483956097097597371752584851479545544592431862950800694234976855810804825766731272047446761819230973402089608635533605041300097218204871754591956474080502169295699298160406093690992120117484661599180002527161035342108709377054749203099626685006290851973611998584133824306153601080338652859909046703992316383167015751578429525425104611210159175022770035481570925682028935571554878738505992302633767594025967931659649234535234077754259100723785010036606502287968388840991845870442584986588076608590647400193008144839182741855668196577358399708534690421295544126854450987719255753002326712188685190550233341468714172175648346453586306459192653354619121273773910279426035441512824306296405304405071024057093612243164979365881382612962733593506636330923490451688489221244831789624388535978095360571524395988731356995387094718650358175323970577287485343259551629718885738216271260610499863856158863646591413426743371723025983711292376771625227591898261924644873997582684834831469008466592995021992913451660553340464579156552962206229242618218767547701661993607193042708412751213344533670172667940932056388876261803330964473435304262589617060061546603312774871707187473190002352299055860891552806949954080268218087292559865605248721264869994299322283825721227583465324869298487423074127606473857807524434009757245967755354281065789602746904400426571069627779009803492287745027690943259493613592152197521684433959572535319365436173100246769835659627452067931387238261212243432946437461089399569575499352677267716566198702107036940990684490095077625776631612865537070003884283160835922191048064721394313446900323924986646472315325333108255629714712875065106169083093798580044006201626935287568887801778190673303336749970472942838138106968084782064500939822736195809246835270942333547622302496031388432638556894100644498149158289422239215481334746148803512949210400253935458464060352909447893936810039292153560608585522781675760533495239276659982727935916765301230956160472145908977703845848661531709289784409713322071747125182574587049742610389994454102502023637083182229894413071260373382931618230252862832627597948920739269340999677454266414681432329182746365149220485830370680362889308936196400331332366351614018265415606733713785030399023604302505228951182879749134916669195722809154223471166652170157695755497586316919983125016952516627973921448883251982303810319047544992892991135662832387711713166868186456037437803669952891068565775943544288882578767053737402853129606710007615131238875789591676950270918659006734378042159778683088444151704880702176778161142262283297648257543198243240154200526237303499179016772230226903754865167002330496194755772606753231891845461334547541055233613112070053001712520745902743618895465532984594508520654602081517515454151760237985726211884823911405193315338297282761954435093873609236992712587455262501528904623718194550845458482000601516062476260195501042941079685371268453201668674309781739709278718701057514180312731816836293042858119093970668382067982999781397485102108049440432517869203890961102189574769810492207981077453971846588904732556488601998471559170630074920937747532993499459536226486747103495804060832156378569403247220137567461530253089302386489206949472850113961626442693674771232380612192739411002050192250720039405496307342589490895182044881273040426159433396220289541170275414519380493070821637375582462836751334353201558631045033276471114773058182651972228630755431764844295616344888146149663136649916259861050199596958080079995728622696621045040349764069710656909708643693730060907582955410202184571833481234394983016280040921807843110804310712456742041824635486585243273576025034843416875098995669124268077005972511277254899876909474569056849165151178012569459463820672322381152104269591931047760801902359527823194266587684301012468565630529920799997615185956959859153204682249702728291902197470349269482638687318682586271432399199468639574881334116627027990130579303676788102354558995066734592457117262354915722001466075680231836392664387701719300000609390858240516436963857561079138401581760909083329522220756211912449589686075758539651319439596850475641275824124668568666554204989177818829744463843635949636949705890522514169708290254811749209450270011630154591687541620675421945861124655999805080002428164267670230836321462728770256718996315252405514877253226289741448759566344941864786140311755120303552589172710716482283574422517279384456539034078772957327657567226707843321810153044649867025145690420639042118118836366058332296131614973475431969644216495881106568012433610039211774022907780971033024884030500746324370820450407135298755470323552145054525294620752479295141447060051928976734600082311170792386767595234987400436412780271582759642348967493816132699231311730521679585407554849825815848885555099472586621190134962684504639218823618038162257618227973243962631689573871776292883348623047348215648193028750107227003976710410714943154276022241032635757621188305532212558733619312543076290508116302620323315206359108496907408474689792715770227598558608717331190164103293539135201291430384652842713047602981424475686587115374232744249486944364202969663895428046629574202162997471777430238623358963673813903129853661192954937479940730763082470737567418416057242711772144287736938749166477157577589652498928265898703108187926057418766881971831004559762711542787647841731037332050775069107212617297973170137989126814451902461339970645040541396603002840587199080980641264085343066384736673522403421324627120939134658953614665968967175266208154486982125148150939524720127396206256877168966113830938495467464142351264159760393617792146844406593071895573901235260562199540041355366190956685442284098166205811534785325553017861565873929981327129387961329668181166238301087369307895416021033175883469400184049350175281395786204945092470069601616288420188007201591457171409547815774505329832824862688545022511550241543916314065159680451892005653969640394953387862906035420658059549744382481705830700224291595525062396007637942616544073337072359695344026178740720699472446855363731408872709484921224499305558107741209219320362405128179918425515008525722107312956358277970437887213373237647727291008415143534983385289324969868996002738480975836161969194403143100781872134635259926909245674291771685007323743408387895574233889338178503038437645649151948740973253554673165129303648387300698387339088343418720336520317391048157482228866590866949214221922633122618531404466463901281583603637117264122669317991065852013300771767626881934211384482990350488868173952777858914204105144746074562749191506290736612305984307334423490411999007370561210490842584733295520444389469796582435435139239537472396576185973910920979393246739266656228250637184338307909704637459372583501053271262327808491148110496381598769793638622022189033051914102429801144530703925180968713296065206524317889727818061971074670365540716483885360748264252036186508615679948055529392091563801285464877835790418658567611873563392372301993288020081777699724233152487936669016122845708017425328135557547776704671423176486718673643237999702077359003385973760240962953489803962510813969768157618991343522271224801893491229534629954921087982610360360876865153431269797909942039415506955745126786443889127781208647195889953915190213755022760394475517881905593081418908347797632685737935547774976252996826384724896292384996364534156820716660158273580891166856737922969164244148737777254970526549686106734713786591165612401168006680929156014361620830604271164300222143436871880627048118344218587459379046917875362121466663111406905771259506464616238691990359432049790465672418832981684496591831624102186972864213314595658043534503769446663419678627420428197744799234485038203888304884153279617088172348065247524918487424345477937596700892376646045170162033310146131601396511971064022940025680268711422838964807706597695650825418093607575683312367714131098442484495206398118217142997460681225136515700447324453299748163298224355493032181066389535309576497795209650080170525433153334185641536716654611971982714614530274256492576098040515146313789239287543149346770636139820597715852881971728173255032176129226349633559303319425108836496928074847167174725255862253156368083183522138248273438458842155324399616069550850267018797020086963855140206588498009355333304386412346771857822377102878101646533444897926137457262091897596844452752389437362892706485702672100347341811743846856106941794376615276836399865998764466218679785182045112713322451491265225356098797879301737788287639311409819741850112311163567691970424332661971666941415888055036491209201375125499164195865124021880843977682785497718665725477319554552455516784558212938007982828870800771149984671392257375380397855278754115572030188252528209143439678537208021315625549604164571740605183440932743990798588080526755140507191748343725598460136842094351561068301957091798887247586955021260221815517992484751030185809570059412353174049225031913329580070227112210247958396186882384394962358169129877386192952609423865719134292750248956494750069877651969648690664059848027697464912837931013464121906793560207203799273297082301741244449027449643584225212528132714508546026650597987390783291540816233109255509649936753338300807752550586918577191330881161948182080380643044489983010054197755103901048582234996421908671357496985067395308640273403269644750420235508402067754178528909024651898824958022668763534233261727754612906500352469536427830012627799022981600854088878266048330364078057655672125358723598043031314821349783031059732189693793157572863710401822703083940095134693306144484055633304299067872727566358259307354837101385833879305344271581031899862555226899819387138196205994562137221905392127604909654848874434749670337351486843458093922554333175513486307512877589273543792358027263979694003071781537559658230702441563604191082144066413873305248784109624542240421238594230302099384011641089734509362475229572806063491754371529885018423029879189126976800886190791467767110838875379546597118999437532552445666857075798582945767247576259101834887659684597693638681852546620468991064107676371384348152851668675147995825716476012196860933984806981038815998819456468155437514421920427017045495440142414233442034979561217481209230829636803113488447138970278484743522321685337094487780209300841347530414827214858488678338069118209245487869132092507310779608529476027229459425162436334509170256831782746570169655760294822736276427664222811696409383495365379298757470488436834996309560933442087455391071785001969783624644860157326029568655911256181020408601911798930304089782459557563323590079599834372900262033852475289498891733138295363391071944255989101566103801319672423211744596381806513560699935360086686765707140495730547572926570416409928839755453309925465202012928305188534687116827886927367553254566129484356830508204417904307454809827829012037078238235970626623157766082944061552607302558185002097411249998097333437226507228112167435008836729232014689939179999076341990213739099346191030036121510365255585339882817249603932680692807525937048382501044206397595852369828539789457954603790268465005141333940492656495185626645214850049335116059287418457121186085871051611752482173209765702314382426513376246651844768345057922032039612475499878406160692946935709232836313410145871091332097842418476437856202871961114076544905039062027121042728834283608928602889411168942893559359717918609681386632060371138681831667945886377156588820164195340477487528553044079779001102704289792329478066176336432647564553755120452501073302237842135002761106432407740760742341290587322827259895322216432320261674850123142152373995107151490356836743364715884069700869861914035067203803873073110556418605862291496707090360888626666135575395870543620809030459963974924404567848159498114450727809868035030016518371988200998348226985789229961351008718651872246916668301527084214510947811445464272711038606748919983396238282948825071164441902997234642236582156384679239090750442762391417052291036862948256192073161130717959932311456347983479641909684534100970593435304262604231094488443426962244907995560877024992739336722601051411002810240492039562880365346794277330822570199244955363134675217295545259664882610318150364011306422506318568026692440393041301830191480252689157718193584787577604072516264739166092144148540102416639672640270470122434566376606978576965772128819612575696833370698391910405847076393569202220969734447473294670012744301286431058405821576972282471942341728182716139724292875680850373797483773302886679230236848175879834647168347648243144771871459070651247850804138605303433605283196665155905938159431370770920997010962130823960441567015503369318990927380958236596811908476100957521270474819040480455626114283995596048701985937393427506472505011623300737651423651978380289101248551599409299430892645922933611119140389366327475460466339084751960351053780916433155058783669021478346399416472395404241180554576192972284150558018721493006651158933078049221583468808428362089690906642729783991002424779561058069686945007044595148892589364939049224562579115973080535652109669073461667921593277462324937485102279701890500986452099852805045160659470967235483032255505893749125075866716405061912593591047217848242289808356223539576118409748674148859420462526331394319178533924681701332242045717962152845578120413793364490686269765684033708385757551501114798123103564429677531941371823476452276822545452933383293839879017821796344640757018628603249376349977439898044493015453370309934190241433099002106501871066027054335808871102395782425933286366423792544883100842979505106990347705897267242073403638434246258568233183705471302861076404211161503083847079821079520046861958920222957662318057151061743625384627741772146432759260427378637845628952556109834766102063323192624904626811042349515099922309453248375987227364334346513267159574545087035676841343668825483420259814107161232121827497084667674136691798530013665495005282388834924029038518419055560668056855901482608835917572192457488102526405036614340657268277938413333273724060707089301698820907686768541543638166831660520705899875298149596631482795441694708910834449947268821125479263421470765709653398189951966031784067871319509335624181559682359906119815239710159518667541807758628385598516034601798621395925592575997174525696484420736202083953538743336875425957882645940493359169598643947970484414329282149237629181761898787305731201216452283476903939161359488090025394506354288894130644359259536231659538869513364902465681514347559010243327923167058076187934766975336972397486633361193658653316696285002391827227036357935183579500565265694321600860867437747697572947474189680182500963367923866501251193215181431357991852879007414899467218755978784845113762179795882606422756333662441590867241958739949288763245644500629295718103899764729232972061786166377545791914799462389148591485406359015883987301557385075986269711379611179877982510832379677932603788969390548666051596436266581062868302193023106228025393414788785290255370965728303599189993500379914187368588065983473805462421508163275563240137317534325400785788782448864571423088541434291393917716879452877787460427047965826861466911492718275748977601755636769275104660982604372839182272971653108112408579880357744054857694882205261162863155573713925232521766302818348172094669575509143856473945962715312081703427588157702601948332162503462402138480872669014696786777810044121385141301303679006632717100939095898037470609205549938567593236142194486159345024521288499792464702813286653869186919964406040303142114515196695506158368288258573595882855400452756577191818309878201323948521317247817483071058619859675261892841336973383216294203581046498054588085401784996116665129793949795685333470871387141727553973209987003797016164229671690906674723852244492695683144651226466992932241486363780123404481581414642982306771897248460245247440492243316048039750821361086357875688494488813855920011340219246438028866246867839028211241230746142952761832833874268233229169622334524621990533118008157390158859590281438455968665335455097089874944235044283519282884622741493246755541091314569051020424500289411598407820256926511693146972265909627046458895892157205878710434579936899377618130739371141882165017477852944232668864450501930176347792596721101027154122673280186608995502841401599689373162523025841835846815240621028085007292081693031557989945145588686472137570326825597796196287219950757198006247337031159513146750822884709167100156904069131912011408483048947420892260361377436583983177630319907804751910037025242717574994196263988512271594864932349797417737974318200986030451457361784173981743385421397646782717699178073450904103739418189171637307203676477929267745632800189167628694032099287417080571333616056664927986813497829846208387865940055954712051700788858772555008408566782401423975080635844370594289113786686035556310621665247141581102944690653815845278129010574005225934341286853819329381796390380441982807634191697844333153922473531946278856521388938519945050546819068475804600165156122015701409495239150153801137377517130048286906407424148242943721067891426662794001761243074101062840278288274930645028633431924310789808615571351589977163106101954126925041776070890817266360251711238082161236615154924527721985535224013787390893680115041802817792079893800944918539395363464927846809691059662404479000464278592541625793566415387447655136136757564845365655241204718959311059086244243565951558541422760914769534756833748687199534140980127617832019950400530343626242182015160008050906685766824265611402438945123494820360589344412308077687576017863741979498049530834928915649819678865255784858756698890125421772792971488337753966628865575853831658092566945434142925118242559642203973753091223445244549271391911781252466000415723180583113615267866973686768771091099223910835715085044050305995904559634462320662299595765435864529850138936769035004376964877910616110868831221204793392839887719142701239703488579454691329788453072183026771430553904552282453816911940103181587662746597347169010542824503100950744080853597352768790817105547433037403568509516956025860717660202995693509648079638129518543418996636373139968827861045102827699916074340349179986292640256452512321619293940650002086543106806833928277440279285123489568304870059899897368473446241660862125533197006546136893555995802192903347031374415751900185772926635704776007340990441797563957802784843925283736786556796759105890829463632019152456626427404943922073894698065945199320442396431401824276292849707657382451931261268319577873923491922054922709334972015625641755278661918331391874632323228947319093621084557424958240793125592668390052215963997917827292921367164027581713669915040482372606272638052037397680831169560217741448231060101346756193222864835989195675113307193020512154879105440825024015129821699627542675275174706862846891979516494472170149915683569423082133738743853799147742037223305695749128585523436030822629419048511891480104960492841590114748330647210832450911296329997409999747957242498224232235290552029505705761601250624935227498728844622839525172391489720109966278739602090590911135196604814895890127416574324593274616455837243382978727456095439163932942871403347851376955877052440216832760993884774805731029559163323626886089598901411742568828025963816538630221125800640645029948604873134124513635834998046485987899133043780634930782409202995167690610347663284936174010184779976975609046600925097218952521298827341718807454572762711886056015323320156463270309857920998000529113088574821697188997292874382105410905562897124536971870781661733606190410294091332349188990947113330783800157296278330768029700159880940630248450850494882684147780838166499971737335307789111026003997673906899075103473358559986517223101519904296041062619137025329688351128304453224334688164532080367296405733647877630905843815797904063540523652413157643835564809952550169372656283313456705754926698643388643447129597833483453025516005487227599481433423247121236829405359745516587430462793169095947116133825173708882455308270318079013426961454344311227395276242968330876159546783920168866749526344683182439108501485931460821031691727594235638159999140718401571234342229900208881692461111725295551940335300242156687596753698509139510051731646870887729674620275218681419044948241696089320722006570744564359600681664627676921063130978501783424627178281098026608715712685140652588684300387585633279634383847679950354186892483115184881818075268463874447390922101010488076192304923371271982006107449609480498887272877464775576120093283084087092793424193015742556011476621491353502316814997880712336197356146345250473661334266332967520188089845604294844459470000844644992408774196289665224630421790052956922195691817959378687426127035868021616722664533232189964755442197003618918570930071149137308029689035718173941898083343554435632281781415795213124940105613873362551284092384776453955166823084370490300566845464303737004609231531919007001192526810193109196281368205074448891684921384066770659913222526038712708929275783128460784170311859655730360585120879610292289813883410835079080850849351147186742932799717291931376569157245861032813836077436344763427995809900150830059404939022016236220634130140264652473802363335398234999035934175334258671822041302688336111399900562497910579616959819016673426596695024421548636366433269099519473597568118426552348566236504369002215329995604238596561647769951383001670714462972405859765818009591175855519379633769610360591324450512541277864170442719181308381730690949895789819434514661519227790190365372124443581860561021235061697198854755119442879178685520431467963082176749567437451390251462062067056379356831323029638171301316566653439223265496798056893859880342460226087791155628187536123518713238188119216944704093998193478001417752014692512139857485029993739573119727282089341833592231628545138796245020266642011215004097423246585846790114341234806779673716413002865810111661134630520344877976715067267372296421445489017016349912093501758263493337384118512714752980543773626394434310572951330228954644162393811599091617406643578004166126756541465794923495336497541866740571086910501929804722101304149806980106085076118872580366037475115488002154067482809111940035527267311129813173690915629742337995841169204837367233368077926078220584943953916576830252435964452331483545219467280787987262831463608361163142803287891854522264861559511743725690229523102809674541798583423358402049869894141798982265591528797629842108593566744500986063285753865822774954309623803638211462181337885813889214296834509254220813799084784873942413099991432277799582859737081776931877275356696655171371380213146144639241164070896826315514872372394053636792354849103438389712739195036500739640126340383224345494909609520907494027096811622613665930329408636169506859636399854630485367728566086643293454132930054063361830064247618949662706999880728140979898237995825660525870928201676822830335513351349714312537242948395950280050227593367388507906531322583995282471335898362496551639646801571648441538225673066936842452475577646343969886500803821830225279741210949204331510612891845287998364365291215983835761196181238653823473563710356323934462299895016078991023166529059006513382729932619099188226692102673379221340333860924410484829398903249070951463662065602281376025603377380177970760416230005744173055240100542710148077030431390188280941485044211761620893380727193438259655663254079968795526965804433903747450784937014832999982638441790471654400912927114615787040078784434804039318022441873753285636417442674999354895138817925433191665314731450904663880830911392677407089532026449337730697761475061477811961473030946677685283702015357774116383933319627501811314354709661548634559381287804900438626833502859767009786597623113851156530775657680047150146061957179980706097756511987889478128063690566435684076235619889977973505803462796189437602712844916968354044980748899325315281087362126420506922234422106996122168982795093386276989794614440764761933686538215158778508824199156727939910787582133024454900066834167764321025855792818514343108991124739863005720239545612361611236875187186561382606984890143085523247537919086305365821729905152756399211488314238702527590396803270915403699973945635330018741424001097764979021031296956300156334114395623035463887311403376342668823534145868471476915568149345575098833668304283079029960677266727445451410028969825482569142194489160842412824730155465542249139059991294419516926962156537626750234924491653766688258006212461712184061679170493113513708596938380483428199551267133682031130761036331616740430541845372459716926937192931766153698169678272684340182156680631445682505611493247131043352105541080416469010078920686164786538157774012848016945771208920269337931930815794687043288214204028036773000930298459219968608052258456970365267100911771356199626761975396716725703973923208903500148349693572462464301641663443100327041764998965767670604730222093905003523091948973885535901725700922866269636990999854621609601021284044723229344918706980197047904064161749590951646886646145641495899511164646485666161739186753880890091267599504301245625616677818078463013353853981976306522519011703934370588948885507835784444261984291010302112939646462882865089611934136193742864665756967494309972784384978602349829495669444231375612734924334658785333195021015057483115915665994820002330711838858352751486930420252385127688407437411028943021258204189649527691355213153658885728827758956903593039331039914339246613236650365972026341382663988019140522987981766237656463160103781156492736923529156282383569118698491709119969956936724577511029403955974430408644846494440419922265669109116864523786073355362649394085479014022634608294667150011257789625795400791665930856639520050127454583845944546952538654024562890119215171019635849866301857253722330518821543969571148013786607351202797865070239226242717855964819234498400961959863197738022405451011942549527608539882502487323672894719029708310586351289407977946628408958631330930865897198434934223325992085140877413654677039182193339390830919994413126947227458040913833203622236393221286621356258630216408029362262709508304972963918460781189181556922940302071172969183013953359192189650674560916537017158183130200635859163836993953383056805842143361938765991309847310137286994006855656608956581375580066100635771538874858230377337618794732631364270241162916738060253167602963436516911319261661621452005167060189526711701633328868570676218167183202784687536115986734624590685853668825374612989592721104415276027780852548009664063892044504623164517174070364743137265428308196175653862395804491145869003916485170672744672742714796421224151314062215637558365050623635576104672750807266518042673126663421858509957774711911102624343274021031084081245099673709281812718137450091419935276400323105874268856484823465171208033436385725223348826099315680048822155374314580916050059641456167333498074728763020297765570740579185599348818251171652589208261860232940784895873023815013827141558207985322700684023962134119285223212056908830721379034898662804290809652357264387319805747107011850092418939925984281890537614070178425321403234391190975183443737563002604031800894268214143276591827205316419221391053570027033915331634069751503341499272330616348008163604967246267307178278151300995245163543575132917768867495587485296287788413220619162928818043566001467644925789384406973442885936719727092603036241672184273022342550100108132646444896917677908021262554843280910464167947689772005585887826146375049927932330713564162748271181268187325123263224874654945124809267182698076029339268752440202510977361395724974907217362584748746423398635824362619532746979008443203860495044544649122576192973953573423741557313771349524955771464667376427472810915478261618229470290643990645387615356227641405202326053195277064739868523637679549894073878860952082704972293689064719910259596480770322983274081308124246021985264225507680036890185665485552406838615174802036790723918760571838873161989423343613260975562132729428443820039304202210990590626608532859970783280045395008117945255242549893851685213043299605132417957573673067914468087022171105508906199076883351399411794372881318446356300859260553620935063945818277212499941937556143231279934661057271861945943481007227446620427660259986746580765637483330693013126798645869532675998351413305630644770580588206549659300034682104454350640923086425959643068390796615725429493118129743522142452311464468314927726843561619750161066003316987570724143032294283785662921121599712278130488612353708502552025313568701381121210746462768641410022762854821799596668124589219580609287170060662706276576701641881841630108026667212352097726939755770361007356696532549498721528821419452107048172594234250417982542929783323167547196170065352359396925806038867655543461411683016170903011593889247011113703394453669379428731784674903962283907175070584864642216464524822783335725113505787671773026040914215094675826915200528575834466322817792753295229209064218658563076958201396741567499123964667413416988026017731234243145881894565568555280426264719674742404076230881806021532216607050912208963250599016476555718458411244216905393301853941331063843305314353784575365388696835918829347703102144238806237673562078431033969386766500173492020083910312769220853758380332846207912130892505067555352025034406834536706291787459017209472095888549416247282905472591155913042562822221919606829639902723160808516727037684285873028180301702717504565312686049252588793242296993077266894284473061415877524892095507378054850465451343567265114882513833651174794398915217759935856932356288095359652488361581835519688237663229091236243748555288709106856278274547023775505217259051488932642451004085659658136731731182961824559040993199356230563067550485316480812717263267577459573197189924772699474497623726319912432218738186547384730855412897806305113053236713689745970622396793085083475247581094497663462873384661984253976429764655623962526836987882842062533719331785114617734521705474438547592849196394659330239297905162252323858013027984113425755776230665118143141958832101061573032717579652833061473882327008602105050746869667574394468037605356961384686603498253223391019913430032938619090496749461073513482279964502695736000495330593907806312685909078831884688166983124402092780826316897307265667318539416311525308478140251851219354589958807274082319344692719672409412031632638067364669052903772992717359156321301561272319072421178050135001758473826365777592725443282940876661665357847539888151282454703323804908974566833654133332098452830817697131153407658826713689086190250973604389239866112047541777578581108383927280579672896900549300830244280161389553181080403237222044237580094809856844411388978219216350081698839505090984830376454322440543400431735841761387544177099155731757643334929262464003531748849224943220165417568823757104258986875843386042837180642653178744804593349889667927297299806997726502821961936041507441115542685645779575077621774584735100290769702184741733901554733088138973338243056246866557000316016216304401745162129929856730825885771119019518116711162604874344448504461901153735596835034400286240529967398150682113775797607751091903857800671144465285169884790667253973111348029681769017404558011303247635393900868754031260737761077429107405721695904278487360097679678667554524973201832525957279628060010708052817467286650879250792844669199127346861811805265909601213572703460322725454870992740749876608987103211525049625802323282955762252057660923402131800333428895279089158057260520512694895722981562076845713557868221727238851588084063172636382546520773141301865044188073280722294503795094137555712630479300519535543396334070957292389154633274393585263939304920982959276719615341541462394638195861615707929942893523151028588161351872786031765249209419444293857139705559245344891633799122369007655307642071194712786057255243727245169859142494581265061912790650186660828205504741854563264299900895734516765994971973046558661314009156490400625585163266083659358476288552596352154771775270271827712147869325358214551191033564859399583062630284576198678669298822305309793303731567826904697249826584961113610879010838073364568194577168732152124183439903366494196177686544572808323918673785693264957856072584704402733978656003166964122793658294072699099948062299994828131650644591169452567093844206110729924713008109605844506815246196207253959410671732272946125818386188946455163017057380789766883188238633625867661219589246224307413015543963208662191043205504253186415193097011211634022409088269856911740607219547904374954931396365099349978923405049632624626271994535721951807317541572575949780485867843234286770750699283575284824081813610660887693601837595794836505087075772064443890636401844102359572945302154295299603548080994902407178443399501387784857521539312373170097166184472189619209073021360479606953324671202382975783496547372193288264300088886279274433727574925395061639669971096154090156364334459254493668817625913074791611513357481293440442628321827224841670822461710542713497340118529733879348493344780434773333643211661368148619901555429966969573516701298320005544032564002591139096046416827617627192948013495280665602059021426053635401623650874412769793892931015939026148205886530979774469247737887910076526318541323184694056436048103190462589610489546294796059093262951417457063081748910415883171482655449999816495491636863536991430004989516998232641543986840244575814978091061154354134111834102389846610331379970222452456790851692260521044373255804925528815183060406250052541919385226942136115737836383372375798731144026248684956223193612058182295465822531922271293958159161935854384579221169518440166010787890222443230911204849218698803182689459821686434002884633587780011804154896217439332884913291432714446768477657584450302998104926833993445956890240339389814320037659229110384780311103943634823897976042061743658875753805971155250671750828132125356231848870284961281194761923891112671265627939036103523002307739095524119672054055223606711953282424391078217246550695489788335570493014824032426287736566261308304687948831298447067948940206192591721544440482887207123208634732370717878764273733076010544444587211071072283807459835302512045119000925444533754138712764011533198911482909631107648494762062957864227707293902794189017500465867572141645026980295187575544756848897783565660425483339084656687507979943888722723526721582231772441034964195372268740029800663868565522207229857816779596472590218936543449925118673691936993219008794721495009099014496873889024553776477060344920997154753255924295888250657008740345122315888312756343846984256725962083874173532174376757949915892136425750993698387800959191397423460773203198908309350646051816965920509710421172842492137434915168843717491401370693009738255143881556825937458341967712361105521541997344592134659055004265645823070309808482193201392737092041700428363634997324655764548540848135408567018030958681182840130545629913223863751991315126246044685530243839083204383425486750678238638626595174429343680872258857748554081883429008892564693821270300536839982693551937931784796141044227760918946049383539449436417989477408474934045381730706716031089624427446479937382468504661961810343087926846281210761476474415017956373239920162440177533535117764964903389882935922796489533460381696680153256169101533646837321830290054992016067329774908986570958185314337039410949953492257817872644138172102781011769905032346740753200139568000075335501003435030530693529396346864857704382073692040632789018277154698732802856665827978173125938595211850596751479495652494230819181950438920770723647386603736293770335639846784024628427870876086240553558413549110512989870252007149669926088328992185660289387616199101749165418959759664350290603093859011122412119392932091231184329378663827792399967909907406403345495241907150296440785773017847161358133608225097264037811402682065275062842298277797953322311117401020033977002314975499927740307024844455318905300562022563371409205492938036837742684970127951449457993270572806644528973723876289884477280446775716835830660037066777889856710773035996151581527718477319282321205849494831699310727308272496861336307286487413215628929492849030396305198969496320635012636357069185938672945666742371699495372539070157317754887227146390316960896774276633984347198625936122245022172900196442397279404995826213427246920050852195191533265567254480999281781891599066417829985535323586349379026985942280082616809098398044106639118478016077925970777582384536650209077858446452956766245271867635570276227298957553555768499320762348994777601543920533183171250265459649456493488885257152298794329589995684956992150303829175374528441705150573984278345655812813627433930487116527558287749423225596956623542760013228001131908709889792016003511773968915283902466324027188660346192064544434811115491003206230882690757210443493648221077499315712695004327237554856384182555526945066842814426576907465688192965220088211780052242498478916799102820282974548711362033170183194816513577683996330490118336656279810053410992883026418158928526536619818008292996203140074959198589630749250891528822261436660113216674450879450583853353265086929761224156682598197694743265294976032286605029789295578358286579509433524203688644739623184054207557061700122202240600618569071812215988670754287866948789767898544681996986185232826708389117329845970299016565457501490164797630386758212622040714130322089512443410805105810832750621710017498814723530312176509102763033014540633644390470919911437050141985500421872512371961253138193920788428998024562629017693123195746585804411872924857136166041021865696862982610797328155688076979597050947942210376755156255056232644609920197776842343982366638070358246015731985875557753459025169675680336037934953163090778556844163722007504952388098170184778647647810494466227825044020109122365660570214656530760119085722953313883721753127570839128035129213284769262627717167300943754350602036808516061400836763171308210500890799158277356692569192176607777808247231799379378441013512767070737629630126416727730664841616320743859611152423839550630944310364871396875632846265851466022600258141305337666025696252623127328379877195520197107857529691535952924766163133385854566722425284728993313090431204139358810024202517833324931338367033328396096193247196574914010118342182380325204378664808047799924728669281653211794329978373561201605183472008174758252578570930405410429636118940620645610962635881049148367034481782340991242395226631115414717919530911228016379801276547829965385338034108357170497221959469545816264470383768871772062704634231637725337629268998880475911610845738224330977188657526638667390820259602018040093003199129188580722160555013578564646131236553366687270009652795432072618557702516728600208695091389888891716448676387656146337027792786381554443511345540498049722251843197360564904818178044408288354633571741812884553366253221500249840322469156017725678195249925901191365797306251731246147951758632350312686316815399544430153689521990148089833104397072624832153920664220496701027084685274535304789170836113792299390768769360600937967114865000768996643992419780824923105890800660741623329646371024808259194714394493038798812425779957525111998891559009880785013859980843746458503420885145544982881372364616427355993815697680900287290351986705409612755388858582802629881886669935386454083227204837882345680872700113190241680734437836457919133117973212019566966737343920472144446746831692132187738188481813252444581284556424437857831675655727814747638489697066558081892128238351884187139906691723399948523502159904916872868897744118658469151165394129763620497138627266516072247262783534786919579477278107731932999627521176247454702872983735845570951100428785778394247829982270784060645055514493478561386244808117664196836315844342720288647922601480444408326318700604951262709414054922839857302539168241951925841390967978668798925270921700942066858360681968909561172752395188480456128888590111762871196968222723237140062037630362827396728713373909768013647078799224866827060215001808494096725389390366381502181077622747904286444281680314734521539876930337546245332692321634772171572408969863248945730245276670084094963435040081442295420041101603640193899547400377722450349873371132875212608986707911652177902605291374217998487844863983699929605157755389144275127495285412598177876218647025635619761792460259962059224056039831013018980138541033765442266642483566746509222730921857971975207576236888046818732195777728412068930333900899472159786260612791000365493166206295762180888909338094665555237152199492298510540443472165831608819871318783462489202333967345728880360160747697327267528392916572337225170413975933531523444777798192666859584094673391445167925936015885588268351073736834992101156134846814719441146073687605871316969758754515514790826035098243996083590820839505887733332471442838741176011525859536626464134766778070554994220088935731196200606568823553570860117023350582716081935158471912650102526690499119210123495725820201719886367138662406461775640134140052522127181944112320171232887786434328060313995234514035800236017399183168389890044310554660368816219938935906075044652813739824373677402865289308793087074780436895651346898474922550073275634188964579831671838403084734875024969173325940444924508259855090885465722492261717064365043502462324443024005687150716097313088612936134482825310155218672897984176160706600965823477685119982310959603587822689766715032416339609190947144127729708507354776676422653170771860614807559652817095813424733672946465912529876137131891799886436873624330557313133358515115277156797812322770732867837623856420310398530864558773194523465432505919488257168988159319153239178310951951351855989871504143295893677628140826255711021928846090974441518447798244056316623639428046811695514959006101695789930639241977201365697484832657369202349610539059946931188447676406205237469450951115318971632127233894950772759386160425551711842323125539552221892482955327949539346076405251620312949638072870715464651904131094189664687129016404067883202820531358952267886888697453209722792883588439206377927436965917300881240779519246296657668190592279096252106834832717157712922917331437636098294268131465652430863522550855535485927221587000225305494985514624227094212192336356683489986544716424576745063248787707753980606207706380188938689381595754627824482498841903020991568880239527437886175369479334077495590998978645280738345112679373638784439941575835123150505159160541097977364015862299176729108245241503135870155295434362285785491871416435870937073817158275611765424797237855838585361384019737001290471686668976641353381688428328198782949484273202712266268385350045683469976922693624924753310437095374341012849835887728450239155670071853295985413758234595179849375071380414416375894796960405649467848950761469810470599136724158435718339461514246036105927645389357381797114516798336798697045140445696228703530065820586941907015492824086277051305439964614357167451637472162715808942791741347335059280452679645918411703141732732582154694682105918280843224181775079172855224322244274897588509126219300734702899507138447573674789524210428944912714063519767476237002584132249290118569162824985065628485505648932318205215101874991078694634737975211951267665285642312279403130008825181635509292673044479642632181209664448764386018255431727659938800421449604074007889409735121335400776817731988012703323301733824285895008295349140908106901004514708801972521506653194904862627559215070169301365242042460241238893419479714155044390967235847039453732418762111637424379515668208315256902482386670971978597245510113089095563809700296808780675301915475650320923106586170618345350950871347069925627527635572266187815000235298040749997907233435027671971686272580976824573070376957111832438188206375875235135183972373224685164735352391541358784879987420906454092072275997064310711939713262521315917865031746730540496382246460535063408125111248362972709609504167286599821400429330872331079055447340594381271244802671380760652084094512519401798508995900044801617208556362797389862224909472448573600667736383378127900967167166300424299470599181943756555399425912539420398699911514225059840785559855008568649148505256187052146098689233275229717941380024942423159955090602392877333840595612674439104867696666120364005158662379686653429212429750876091629324040914884225574908194845632806973705577892166634579585727486215462209295326048518797586207502503427686230165019508513705016089369288854077880490193764418439760496246945800723772996719397143957052625890453758788938728186855955887192083588460764756969975500667233586746619862168480336863924083443589677890517976199853170440022092578392342965505364121708782224403687639738180782370685484257402667796466577878600814025896889521161179005846215647735787888542299163756831554299275057579276492961503637510179357005899264423997712538771215327058696280436014487664389260198571646379171635019179027029557444464796128695153345902796840287405897548729329686426469717918076846595605657557177479697918241347783066562215846770171400507770774184541912684318962582735622241764663276073962151515220581439112184518462601196360067404806598815366262968846348492705793051409751675014431040049121331793152428766708113417860929845201330998944481568406216867584746027109524426530967036967849168262363596494559623071871901375786388181667209158408124394387632533840510445718727932114864284047726288817474482349042745656540089195553243619506200022983297204730566071024944332307632563329959358140118721946971913255261388724914011872445937137664542804288817570084923351897674381583709508141492710913816404102437725494927793965170605456216963213766271294583943487369708165244197758786889732856840323352293944128860596617160969260931542583697665326476699227437119407894879077010687668834974110474742739201147951978397260110901269033239803396787581257179527171895230558409516262367655159196831480393092004083925987532835165290842554216168564410301627987145902341850316912541027088075189782142424848335452430952555591626099036418899707794979902734462175912303486989618996466636949758487069812739532747238879148668196217732295450263488515450374611949539075269354187874378217828942969348110488305451310468288890709487483454261485814299750527240303511903646984987090244676619183910625818598463396038131291763627354019221619185698390152069962883650511646448033207448479433929687395128535321834046175546884949459760681394723327794461729181362944024058197321002568561346093710760953193773512545763615843439884902664724427129096838967919587840706816379375724758731055244579098952362480804759467055702260525095017700410230725809142774566077866576150197366738525193861895149481973528245479687512326016467503937182433281738786626548497673270972231785214690846389087118614799523216538357316731505542089413100876208264512687223857959667492550912351784768989101743447846836076931842776675817913437543174903979116550550808860378405882961210147164760432789223486616644134309641274378523993162296514621496680859967437318324880764760469492698456283063312466806477172871952299910668261838958388115896865994285942071601431745621710211747223088089971014392854232690525378672494421225299617758013657224949482593398595186836349545504334487805318483552581833423201399109007411219017223920240277238243028697309557644624093106122126133727254347089354192546527660681778808837774237980115386210007366601583531886156455827453298057951462805173617506674192167960423809205049634323377837325916245645516477073008402728963032358191450805257522530999847482766331663728426648755153909042512445081304581074832367766416739151848678797618253642328384158917625668722073606260265139815034802846638944031236783098992784037536592781939788897178988367345690589135510366739406171875927784261763161925513839598810511284194654744514218569890054978257305047436369018133956812403962902290924731455607250932900522014001404847088616782070046176600545973708189294731830363870825368016920305877399774529433085845105849590516868271505854460877233599174089003270291165723351353762734433402770168501903416616452625774696533119745259661532551142568038540666265221943820350326430865131641352774772262797202880730025190413792238811344877361291365349368176791070241593367341491218486563199180885691594770508814527066516220143935627376001513256126765169798743660033242626611252557504564421893918015000251899441029429181104198620572386202416940455472825376728027760513190973299169566345453347961588419701342911988948687352075253231924782459660177017931345322577641764301782843681357937037035286755021160396655224553605772469331218839034822534648956700246316505718027089628865758162559506196182093207622458501111817776280352121870072281010938409613190488284311930936403880894633263220049074226817394715702894524485629703309178967344354255795942913777933778853495542669527332912934928330762378116915060208574926924864797760380095057756527546806863296154956196479413756015354448603403869601260660884228378042961646460902743488592745836469177613071023188004321493908225777077222729310772213920687730589406599735470840040296114688602628520241271656450591361003892542983352663605495542536378323766057193683818698550209822870821702109157056689890034015029929196792999634884616474433023161297246347441386019641161533828788210767466981483415574436217008523025231077625516130075515180566655868836496788357814489648930820862757015693111937713749598216131194134706800840087251602331553363431937283538900463864070777722805061409122005253122784659838670586490211707921957989865586351179789543736774380282706903732024401520609863743678501535557407820880191517985426375958111804878914437502632389708047339199649369288085288232347571863432353205982355573089739437902460109930187676053567647871384770057753763100244248447881242995936210010583947159130042186615483464775785918426890377325092709269650578242730807202412276007516549223056193670873902718986181851496515249082778387304937579327976786255403019474730305280056754152581062665221446862890687066480799133548100689343028646340028459443804715732094086053419848319161423812603766949860549072321009439165018559102192657178459631022115691395228237443590263471615724320944556562342232444989925658132196384612758387146298355734174118090737507822725602840779510015367755820267774805824159177075903324934811221327247756036410929029573577897869865352306981748271318104174399471056445960482070478617818620836151273473128200115943683813621134959300340966392825350694152867290421345435879698628509188428741323670941481866718389149317956839658408017171078392008470993967388916311490690986543691359305939290593915169433904580655925878016290469755689958168756418320056153690559416855636424316167341981702733985056634574319113972731700719067093957818189244960026641904434601582656414271752616849627258018304772074133322960637027257367112707115510172569424210480766225022968320784569243650785179507007103212761231956421052710874876988688524774804987823114265264836031511725476721989494226997643687777896947702617648169697368843568425385904398389326444237548936680419081676155342586364047983637603034716111018238093128323492560894600910013747793621794876739552240075201981221356969518588211715323108740930573531157933194589389747652310863556867110716609395493035594595614871416711657151024902713939871049280040572479634865851602529235145460685660827320870320646409760974425036708774106321464598497484065487064257850857706479133031213779914300755714362235101815365701138826336292270244640198047682878151620886405132488018740383398511727567276937353479637815244376628087571387400458324571638527991185285845766369476043137785794421475688573213860836544884342355350688442603040544262101667447776484074363070482551413412119050312635409692430368106779364415160428518589253364818157171611867984853200361908755305060791526036345803994324087110849100298142137051014620776588642068503880562880523143869073357473385056745770758361320000531722889597465704508941291065906009044486627692710227391379581753388666862571800098257555311387112595088963743964154580613572785098705283312680141702379947462412027031599383012204970727292191215924894540693311286709998868011222582154102245704627008324131806526577085283134590501149403154619400349328775110603963220966752476974153299271613406830263511397416571432741323969476649200235297243936293745307166599938600735192151950217741091966499531008555930365212380741216158185549763834060314339945757418470756175360402159601307588768504259518955917393771425358771982847871362052112585384953764953316690346682378930046552085154060416968418380984290385608699989530520881553104185485330061284758282138719382014801591920180233133966121905508600825722146924617716756591737585862007963670327726174503799782049784582105895675664050603876163111372462350073595147481018139231019615039252503473347539113885718423006035442781148479829633059621533519948920037113572805182354563163405451832502892579688506036757055317029180763889684940919547105040197937130978148630250321232885944182295140410402435484406951538255186617037700079137894025083202723161582683377156724717477360492885322305628443991126640488914797714098253264050497099764098055713304566865914294185575770366321975935390986618122459069628839843044962836568789385387375935795121653538477548409262307579560282878049895893161356483164601518611371868344254463056996726748354103254423101666338818277325870465025268396167376082631505350634254805358528825333493687131600742001895864644532147020712992900317640248992688299084353173865134467651180986049236226598016717394014225458056102963030559878761096867990485609867054721529182217216305529549298511302712049213812560785523954788702125697554958926485590929336082339993435236615806381118685192942885589158737168860970833767942934209304526915037176168724056991351375371274131336592646012605945999842578625310892543697335093022714259030912248080506598391648461145230960859520920866052353180729208739923977902360020436207364687012133511505438414313902292985045952417601676261727381749238610224757571274660772772455699524621743065436525962803517406471603145632282743629841298975472511541432796621832497068527583671372132034855660880705309618396458030023753761692535189855246711271148181205665317026594904554706333524430100521533898632557945610425424331067633239078853031859573598629989649408164797750582407234525390187777348712926295853881638321508601024698289824736203714812118311196784942211716747145135545554043087812421818148872430745005222685579432683179104779988982834844524002989407139020083345386743964511593563044519295494647719649873777146482836977210582453023466071982478161775499550612277971821608005119465378156570413281588621465941095827536489307097151473170366289146471637064724286192671433467288452244267968050990238622089941246380347983699177180702037287372948773314693638127270232404397661847340350002708250815121004692400768911046277761652120706184508566741167381947326321638965320482433460894225734161385673206076339654502429914463474947276548597759401250139161826156284246868909752072396030112671156981053737411947864487676035053563370239983211319875138231093474039077054485158852536507918171697226221810294733378444224081832092000620273135916128360916618221533755516638224545324678754211579291673191367720445742951869599333996957516968015515439721294818772340189753925294464247222724928250155994132219918898314582612215616998556803767457278161545058463260971975818718454917181397707970230868318736882258423827891637091461118844463520800007493589819316554029046027209083985712948009826697942026247936761896735125057125458371965504837615796662628601672363620120292155319389565688421683740595390387474545871283462313377314879130507229886689593850133798844071295703996863965552663864806513520751973288413574071647687294379778032371691954276602170061875209336152961446071550915443355017094419324539844668315078116942052787829099857656129593603230060455448493545925385843280827093686668447867358127484005902985326671638367878932907994506471006451871395421617840684865053581773467811617329584974277409093565455674997115679839883610943824041013459340516559453782525717798165716616258039680776247986477404821689512307159388289581041133627659421274509829835143214415940612519616997497623735198925024473580639568398027398646548403051404841327263762229601809929561868367481144367202365341388886297817809039021732348164090950311437062158489844106955718166130662001503078278036561992768357929380501596638816178134078423513911986701445091886399817632837840606392199509579109976409229843056300801566421877758630658688795957983620040422847713150399915706162748988369954415607734046482387626436398770000801586566005555516970645865842824502742145460649211518767234815850724974429001168263753921547420076770766684132174381192126642695295452620552592759971336606818813223965264945054673146764104814622747998159449813052513269770496500460059801743528948449573931789132221045556072540862928469613284633250546072780806329726358980735962054307922964309762159160465984894931461763019401377895377510045454851083395545334877559963660373547407445965327900638209397434008361784040983337697677346332606141264545432965740480276558027933453040909431283352569726016353018402400031220561196274520246610752238308142934031685614405259371334757491630713692823752809268292879516275050767412661981998936053908778018790634997741333695028617359135594877613554010229952037505205451047230248967180410360157864474070469663558222433939272477887843467057884874032264320449417709033714871079745735924710169328814648159383845739560000394438398426447298260868242000471174661565344990004384329804106063017451732376847183802227735753813939708636241834928295360226800494743309906566842692556911920767870109873683460242969719565456044758510470949520998614593647724747932485164918544932263944692829548909502281534931173561541456717544719661859013338425496528497098500734851629744579383754936920647884052325489674772363542784895913987412961306924448122881290822694027880067410832969544726194406555863702935345563784812908853257790515498764901842868943889895922739769524977458237638337288011313330544011155344190497289048228973236864231743114655364662387998061334790763131420125031093924731221121016933898365479085871265697519686465814975195532600948367623625368658699921304552420956898804899972496013482233057823851013832399607606695716017630131603264044625630726931167987226585602030875509709918852250403423985546273335557834564702664718203388533371343907772817110164662062446205291073669141748172777886939306132623687759183516347552146157730075820492879231427276009800540182015669242007613211377637837832372719491334443320208606904200191705091219260003084067986060953239668927061367797480847075928547464194203128531310563871795377199493005510881347858003036317776417798800625955910025608729463567376976663323261764129770515501190628225754170151184894221495158283709233516091229253446743233766562878386562213354988506180372173751887921963772949414501371454317056476809763954199822493449621418761915547837187113776992574868892476799103091542991117553072008873049966877284984185448947809334557780874021709037824404058759806375154068262425410949881790255511470380844518998828837996749715007843616175976033028405770407741967751805639893744899901410403642007263880925415969016006624788805561716126987077223834635053709772606886174012894929426236419144605284317800572708000553333828063810864344817000983554099100690788787855946407767460369270046849794155002233961125239062483953981435009734602000082524058584978317110052017702805731365187794138210162973848425908468276319837573931895447495164863157404679737815876536304788491105592133095261399912017787909160492559535491956738406846450749450971629848414725273513192962003938387398496533792368115861804820513577349033602511237037528717104168554577412467793860917829289925897659769630279679537944064462178456212551404158403820035073699699199689311988179898562328721519834320295819533301643642747228116109527753828010166500452815951827087515377437373370017286584073379750581025624837137518731613972284039559597570971453610918534157798886501241310364124264357456925432154406061724667289138035220425141959656190675389233140323855800983649248356731000590911183798107830431520740636174034678621504126292566840801636167663049994402204992153707023790846560088584383747625066793545040642443912650719384595322548323802088857915240885135636935207576699788178226420518478750202352652214111794324530310851310724511338591489355641734496515115513989543337258862924369906650632364772668050862468179755052673174498668807550230381817989351179649694590965621379327832097842505708365343040238428613057692912353593336771748844827631933677025513305518436554605675380191609294035341280520853733555060413557185473454645362775209332797067290786544103881643932674054573575957011857853374022912919151427307261150574329758652727819260426957509845872906991192494021654581885293353534337016599772220538861589701218764302930969912495825446583890744716021651765446125662404890160917489976699709795477500714717922820132068152898476468473621662979347561091111120690897834804437286087118612038560416887337453876448969558550411580616193465114612886207044779726734829654122947055232247751021348673257841452280782421605644708021027138597872800715026587209723992320794783478650452953489051347372355516344472862426006891977444950577872634956049923386230350596779619933524910406506773075796491707886306020614809239969620834486357648810039965521034182213588424059392799025773579184389879406554609367725391498944341739014320144515427487894907477700867995405172232925502027256592856679753119231039988826737117096146526656510157996420913045161900188746167840507216706337688769023393232594665931945230612140306244842149715231126799234503347489788502267318766548739701067470752663377850679804707521696277616840222360524997822210511516782437077544773025773002871351591690056157848587448241727856858263996478642827124840512211889713651198265938217462693191693196956713968056139637344938039146346209971417548027099917626385899758108449710743190209349257107865518884319926116852856086111412171151863304776025030875768899336576934565470949503956123865838985737505463229660116657835065364856721228209049572808767695840075989911076701823842464306125596152802882115448281140583132891345962822459712118752638350659362728041919571356858072781537447723721563547134266082436992785967434369251940124874712817684339610702424285878949795113020060553257605385827041013137975372190921756931696951182175287136342610058096764981797640571564972503518823594171185530311810004398210218450279499699340382726678324005137922831148301365696368000863369447979443539954554642115745158010269899842945172547913315272077660778010901153084101049546052663076602998127348544444380522795164339841654833635851902081369316990021317074034260058927455047742640765464134959281132348488125643121898192873454925522917375194731128177888230702241014994181167633605709275354274843879500082216509364367819620421877170271111063184008864724339395343670364523787158495211779965893061735207277037256434696901459107858196628119650149923801562079144397091245949928718806277679100618725702505528561816871608169268063612213670251960819169447330822533159676331007853079533769201039448463607609234188011947671698483168251256928928391171842616239970740457751473441342873941249403817688132312217866732161417368982607570974611211593229424171651681413567549193520348634464227300523673025148715766682681517572717668234581414432193829504838383884563548950848567613552854107270642359824399949013142915823343980836746863441009250933014119315508908284350788345584396935924268371425663348534425774190829435252140224735192373264339387237071397271340530680455011054512671960857516827463662252053440889852827618675518564202180907724097257690875941779520080074432834730140220672292449301185024445870317156477680827468914381244160860973009476507852977199148719484522064213989363688297388661856174423648793961605156569522406766622133047062223267486994100875248247398504941747341691563091903334705353470404159473581265309874165153660131074471745250371245723519061020462116263774731811258672058623454895151613131938172081238997890934118317261934661695062084010137516491688475459205202331540477263867867342202245933126538271462665740724529615865616778635083635542228773640819279979075507572060174158483595152702424992487605075902087657099405329986933752751015045299927128614064160035404125372883655074831770267572558557563401880715205636753300334918114231254952330273043288953439253650647934747283242687559705396237798015165843270799311196213896217452090989419312380508617108379794139328475507373622245327149467089406985213862597003010970563129272422009299294888333527349661184051358260092268790022605256752004774950859388119011113412477048671295122939596348878686485949801865725442204071681007376688777577670573674268032649310184537054460344541199789872271097314426756637280958694219200831482371779133989630670285932787156218619979182968716444644029009626829139155471818252495917516080869773040371472770620705267436111870529950402663039906311881983530817160124163763853673836355849505591102138900265203549554985919699088317439044824109164707621416876531754785247319452686747480131037357502161028506347882461324067686812019603449734248116457107849102055561038688472338414963442593211622980947087642762422017864150454976106573507578431792405882652235778033859983688014284939268118737092096646725309348919290059827379783623307415328721827155588671886425519806711506977817001349239957848864368930120091330502665926769498664567761971817804511626382724128404130758266326560156412571944751691139821126145492816951301568829335459832439043631816615730567399411520721874966994065547341083774563185663436578781248182966877215280822695361468711924691408351025232049969955482253381501191987023180158108361110969590792630563245340648009353401313416089476128566478555362190677812298434503121954885061334806103310196103845429992132134330330978118617672177634527620212210572319353695669130843541438784825432644021837952143771758217630780730655885072831150227662087931852863815405236385791734698008713232611522246492972351198740863468508863074889651228679984533145080887651921114179834711693083781752511456032957724556987196405694664947922732680955096919867256348481214935493681380629957469708723724810692418761855208242742258529748504594502284486168434315926565126860587953162327924584393800029946093678203899234354858872328116919424072125899824209615272442010558568488559807727772652896136497348952445590574851402674036531943330410470394206734534355827400241405798341634796354902913661196178914698427108711338651346640224823036139456995301660193454632948159014358192553748790765747947634857211899514051413693479485605983276121939464327261023311767783439307099120206042758887158600902302683665509267210389686745894443801593273880842798767101116194368600717117211213701414568368769628466695097950999798487157926779643916262188930644229122554620821108470500683599467694871173640855249620040279375979007682209568411760436851284744355513189090397406762386545756022516390828957712644348668223436948175419460222790011139494240089262771787080051641083593166199451664539824902012623639574342630868410632318432854344763757133530423600580021528509718785222721672380561149632262420797718186229069601800559365828669428002994230521212633626554816037661782515106577851872399438019303072736201991997143312782351408399370531114873441088799333594892938905868414645622272999994605795495098264665755070652232866362975258760738964676908224312113972032878107343345597656241108899957928140695596215445043418711005020880348289811569787745599367599630879454045245947796188496200742501211434637656002880242375315083572790450977503087933459124370811814389395966480955611632712327822144088119090292058958632553886045912152131830580679418802621178384944958114884304847466474243702305819971731366946770375743058079346199665420020660641747954284279287479584560372059833322869976174946701771628587436797159184676461071289375041648450656258667916809891645966634955603244728331454783216335977843513692841795168304433221105880089912844708213981816951727672708312433542684410746292024257195123040131339728952193083421842241577016924730863024784320177708877449066289160841512326169794816387854594344800802982096887151084396583949657429334232693113048506769625999042454591794178171615166776039116131086864740044060778053920749513087160346473294861407119386450057620964984625682454789810332360375116174746609607064612134618688012458116371687775830699116297999439278374456235520880048460755734570060419341495865379518179738423491368392900024530879118456045690597096827490966318075406188481409634280154244695548751679293796700544592592459850956601802515419642978056203035226194722586930402347939809777985334987468499384443901026875291285816156872161457347908068823352103891906928172727884410619360019106353555429713701610366721955365931967328642224790407768630400121663180192799106580027306479696898885209766390430675604281271777744635119654301093510795098286497485769669001884401999662124296204859130779472895546445086089790778000801555397831007944276930273604976965844637476049678097340073099190269961663288607803626206268927289090367938733553105877581337016474399525092706250259673402197144409863590097427777627736027679754712319142135818862181405226823937674931694062593308465205166508970372207754382204081558788383814782160642190986274367849213037477099827577234081164671683394019579504100272462926126309314668820892305840580645412691267435682241038317763119073918669717546283065752941201053435767858637876614106347576334008166377851033615223960182247727305402004286309399942198754605728000375876603730339682980856288899185954497246860346384438636586274894574421635897719624048685206151648142987165150244416605700490677079038560566672147647853757862897305419757205975137871471923789946392709469313993961514124954851740863351181697182662013693597738399911647894589217124965691600846409821071726346862690205704089517142920163099534935527758526646158221819879141767998972034986598476071802969002123620440993921923017293762792456498603885456766472815607997022477243963671944893484517970886376097680569710440114651628479883374554953193893704901749245713767796123631965722317978056207306981908672166991876906471637420213425116464914327551664005725413862827583417368980936988222715450689888826269499779443262355329809839493922536575045535336102655922001293804657133405726975159184435415544540376761299408372278848246835962183699723303634340366428671819365147951669270281949139497487632980816932359720755355512374856175271041486587032414036306944157783375375361626279096897276755975747443287857617917399543019652753274516258819762467356063471874827521653631008270175078227822194721222354492416938347389270605470384596415895619053498203503355528610405743151408595291326306404694809260120662041116486496292458177820485623700426018557163162597893102113087932626730253375512309309348687679857665627814858597226949182654089541776724582739663222911482824516910200501204337810513067760994534334332487856752805220907539417021797513691683944785687704071678208591249824503498857633090846729192569975314230581722479149018915900835109856583972991224088280624650573540073748072963328273378286374010506382929329854130390519245361442302207326245137595143966241620138521831889560410652108201446387859491306704242275824820430664602541154405450901283871188874059029075335682421004805528694139601037310895762455538503799502690064969085117971046513148979157182780070279679630469530611009986524874049624766364413911100438191566539229030438386882854407010066785629534173058723256253229936008352503095346631404182021494253001876724841955884873486062135415208065896329246263597875198813494214349356610223160992769333045709601027198654981197641543405095202114106442173413347791671589478417246772539035939847972394559427300496759000746265947459260276110848035404198137717087768789666549758087917476309838649804983035272998543052041702894192939477283186567220293170154268474902034296221982655873178486629697183413989895836365012008946816276478505792789587236789171063629853912149499838274986897352142294702910017591753721167931835455080195585268648420249359704822328056435324971711437851369526899559702781428945963445843635566968002812456564524104635578510268187808066372683744866823165356531256733382060500689221078354260275085404720832047435336990218242663681654429088014540210022149283130337064854563915889229636607205843226821277159334958844269803150367962890219882301834562591001420202796035674445885530810046469383650402496089534460448700611108092145998167559477440939204762483349018288381333096735101616486501836301949249075998132543373628139382368065581540908973241693705795584319339255191431407241980638456489783383257656624277806494815991688515866282973836846264501555513911785679775573058617374078672053910447970933928017236690937183256450537903997232148850060730862654552547174065144255105061918255357209761558878042911803337282540612303509336993057226308840923515936136415536775954345400569501214203929715439889124275401086148631913109455450824651640988264870920542331704816545391030384836038251214999052325174645982403536520912147219802718150147713252167477878285026435396264366132220108309627451462914130773081402526749317363548586529035399323949523173466038046730987132886439236440482886468009331474675909397097093945283320747031666531858694156133698975863382426744065082458076461231839009436668111287928028899171982121510628290991281024679422048408902239502059458347659264663093552367628581823027288904397076945841587803218122052649874926487591081676111985700044783315372024379603919601291074952581136526917185797263431124771868979775612496369245589638825512423916946144996686980556002498103167989925938406477314619590724264356133671672490132182040188573516773436277473266571107947622736878319718573048346208290059791305635589075019517433490321361240856452395827194441564184996152046617919486747034597558740929432471394862759239979424074471438847686853216903118984113627420908330766387490520905219154976489217755056209539699050922754447425226880621169639968689688839866924013361241953864274166857527875748122852755498030394437566411284859190077024533584511631603171818038457137796580728002813883356030559899680403378710193645208872195487309654191943822916705728616660211932107295559686816280376865997648894984356055929470130385953410845311409967146790639016685171076650012513068446987299845259893273912911350609146517813875788681787041360542692095766382794642420990901718387640640637600632185316129849329629385000327984444430874895673427893965195935408581133241410292467214807507281703873255449490222117862347094342450333682344927105676360301878316127392253550758755397888912056462639178289413503458264917811171195754508638644510226656052882314722150761969868263251470550193562469273774340970790401433464565046587314725046434261409214592923382065617002369290650497244599848547838180067135911122283109061696673258059187839119085634293964848341522781509292912682146146789752911284956346818434498008907955232190993512250786386712188842295814456862050182813658832420874665610638713810197106111025163080236745629529521430230874136245576356924078098881929654846790502822972129713252763977960952937039797915814666541818648633028870714290981224499981440051417091564685372173234543421200569867473227440029403691138778618079253252609972094424175017970443510785856570007414813094887878867652585898538735810943805389970481626853462703580193107002334574641946195189069525675042041748402176986509267372670113306000784349989258144531163899098930657640681321679974783368863616787053418060125983265147358474784342185962596363926586533313488431173458618409504881487199447692212460081754932519407551295790755010321605500300017121353215563656749837001639508389017140777683901406728789629060945270300120696930647325890264642786084728638458488862163158102816806975317461281269304310245230634773956596704415626919395664252715981126117940165991437763704186658896056536955995445707988876585748164339696543201170160017486696920264673176541265433529412652230875218051734610014068386876853800464822877506852153658204775815961149402451441504315396269561358859024447781256659242303768316124443816598844286308971761250874989630345288212921756221512016264333963438105081011464588728729808609971296467482649945068055842764454949841221902641587000895513270950003694682276233616890426420522555693835262611649770788883446615333074800705517728344983940148618056945002359924100042530001547134258770250708085859635460322591706614657365524388617278754769660750269455538512162194193986746789751867984796477865807837757456605269479305931015982913023872032780988691428886758808697683665286349679918044552158148920920536772919800192938100045744063854745198180653666019699632991615756174033528700404298967663088403894521655270672819678201417838105934926069546704889608804712488105475343018504767044113486006997016282096850925935193664689629505550801509346213623704462459131365153615187487233118882685143232010955118557670119064216268828576238223597834369105331785569493227059805229340154156825776828153562249010723293841506756767664347372222786942479739469904380648303462109843218793522769545947938995688960706012200024107116127221677017980395081587768194664056935109363904639573206943503616900101542727783808905381107280510070197852568166387265733345136165247454610607254532424299708919805277311939521211890598579612021451896056117092383769550871807071319777606156868920558227591929005885883709527917242465502751400621677216114393145095458238961423822117835397970241636819864240093038978742745668617036215660028629588436297829875921740699816926253216205753176017635170535577133279194539434880806147629674541397064535272069176694436549702786769940159083940074083099311491595990355586186287139770286846986048019594176742902246815067899893348071721235979587130038078976740404121162535740368117031029927002785205961405736972358336575327592858811643196637651281735944332019405140243476489914185261206420428224765347540825063240669277491357192719619215394813782394489461063541121108853271769039235712893325198300113130341142690210156022548449703546208510349276894392129724307803361207530372755280415428855002344839280654764305801260078482934712935984458483614700508167888249284896373817055873153371407803246899217383757674130124217423938710913930706566371269566778742088723692812522806202464940769466946086353345750653463187904898155019700931927469391254014204269239173983342978680529042806330564230102250859265614017093672107940211421022331847809890138747112066530919864478865473638950602286775722531581880944152761243446058786329394977005298707339032106723802698712119054491521208795632565617188853811568556622396179117657862032895479723788765992932472340960250707929097887181378957369139760514327000193657645355266424384762123899964352414703394730418355320395185020369489423195759403655564536630897903178334936139207419538023609599944680983235066924828646283486976099360893969627886102010694511306607325369697290068312757487366159150938764628624593895287020607684028149839102226241738185660581615487732267862576096928023461492784206466294595171538988978198580958073913162696730310990314214240125000385724658032775905278403361787331030661671738428822369286038051029184186618472633597419637429737151383887459933937560992651480887077424142154155335559622031051864675353331209221897012807910788757687324346963261326071485385266806910174740896584430647489941564057939742928571591749683930133535969790511202569628969359852409497776513218139340980599945891917177994613858931805326280932587200544615044150131251768084454015574225479348721562804684327977757568362381004391812924526905571625911103313211892777822060730029839685754301514360776914736952874546028809646568079735009038907995187157084577321437996887336920371931575348428381178660205202156833765450044731576394680894722671972311979387125689470705025761142046918309506907792879551710729525063996233366721422561742043740135746497621225920502755629112340352230644575415981856008417142629481933280675060541917615953663181882934983526470352485363068965340236556655418150912627197841890045879309976585196620608994536923522680473944445635271612731443094234153273623751133222119273656132505877671100395768851347387597692072821708326194367635044824049688070353376628176940390424749899238734273471669516590248854867605389302867031111120252345713371631378872832124774841379258700375034277452727473743741102573992761495069433779473732432398054699559428176621775769134193517494669540904016870953088881471323097151742201870354928233729482630139505131348251018106055365034153868296078027984585413071144581603155620722079898957267536716131543290748811083461195689536507400026911232168920888178169374338608665310835797807539595941154975508776310891251858117258511856579313074221432718564621379873710308329137362638825499191211393184902732772023981120460229334622682822187547832686032076050780956145574915053428814266804641711221128871428316240444928155444169954091809816151298579804999059236188669819636099781813520341527677981622583703420872515092580082425012818071259448544307261488348982381546354076388739611307518139061433668583372778642738563585322649051435036833018485813446069319206563874143798542405824508605829383709758866073522512845466762497409458116542495483390645161881780340434554989268549899193259751911373218598687639179186638302543256600662745744543218841606081198984641910085729218698667482791967440780331751544625470902364633974928985015967588097303321147683621351940143583103779842929289114750992249253521200555014625180234817524670259292468746227152600729352298848194382937508947856118066165907530153346251461188254116979854210713383844741658179944823735345573858438590224734837171410601591044647082996232092457575496793374373135380348553180929742562791277704025864875505732945186285809422799706504815595827355236772819061087891979375161795248162493214215968155759185289277017204157983049650421811626723113397194817744044824560441608757792491501943597614952271623105205434669216620183448322770752459778432247946140738190746266720459799056850066823865610609358194117298109262879327367108318457624740411606699565503764392797875428906150667143475703066714304882504193789723236380662401015530454102317122248301197131429976557748630022854976045243110124433097854620712202983439792501038459753532274010165783720391108116532217951190526156143224809173678482018851716969730830601602443247993632631277495197616515619294258827137904553658420657736067501651765796935218399123154155090528910428278385953739346976404296683847414867612431592975123034974552804416146919424989880928104710229246851200532703615275468794316711453138544561226251455299532939684764670665703517330936278496806737027116687153475730918954566319443009778256700083548337286060663518878779733799115870528978761486739886147345532518617367899874119202434209754434397098324745119148636095887455905326211785864379775512155783481369265634196515978307188332420541487309345951790693768738726196220068708072110323662170816171745093995614799638469471216391802268178857471580404943769662534511586797610430972427462655479161470735652864493924492648491832408793735948267722055197106571080154965298189788326253801640497716215678781221126635310440851879099583418629523010066539742753612153511361846796419549046432930799016988114855651537988281357943293732192251341801608952925280076344850465229208457222576601513939418240071369497510528739481904079508779921083687796117407396221588641750344897236872531966737574286036489302700071046556958132875884804302124951933737342057845812092311057780717624798174792717751851472231891016947415661294697596961957835837495674192255435052058839420113507220238338064952409458747306400388858045186126412725043940434512298574368443477797954826338420739088688298066977627282149429143682654707385586052670250602276698587853175575448303983847852583436539521150788994035861708411423731500978173702712471327750787771746846556512569450792966656517322618842118401004428469412631192863936057343336071893378629675898956617866486166376499481644564528826526098712279290554179344736399941244546082196353807437952549558947265007738003312963459226132729738465818120905933066615850158082226786841766784455859616385823926385815135719292534984994783691027212322228059489626160414735091624666183680045739150119118911790725081387780651298632657588994939656730649976601113425316656135475082124009269532573253382950257216981064962030490871904284257019446198138085302322524305563420993778933412030193448328441334721585168401141947745801621306271707322147223187686614102070182516559978390953449401183602267912028775029059427792185734393169274506072421590399285637544414582361517374275267480956162652476854381448356115711511607517089471816197913797207071450389101644200685377486638164607275367262846795549499550850553070693136175151040792637949623614516926953288319190866660576921643475965514111025031098263795015079248465870144918901508156143860646413172922230326392734111570117283611857116248045287695830218571946566828495879419623330311944409290787074852016408931242713292026565134115939395049312951854894412394401294594502315217745336474705735577780696688866944631083389255401432733312865890946919741249503928042233412648971996598053029456016531912430121607871654324831206809029447955201833363743562865897309158751630721971803748877653209014640880437558132939163577473767770317739899537169728957334599230027821954965317146835056838318468059494351973933993813021092235790253334232133574439434197768517024024946796967479013396178573869706882203568429759120797525551181418233142965099055697288119651526331257297209433917666979883641844654684411529311559517563271062231834334077181860871345811167512292257346592832003619021342740997269661495562705823212881688297990896738827334219769590083977770322859311865477309599154612417289092545928349887134115843919824962327729169281752656746536758424152045403464210703970900549868709141318654291650915370091915913208635062283656697666565603209079217791025446841947722647780472741875790116347887030980927030505808886350544047535109653306460877219372713435599528143844572809194238688282629509969360178790136276894748913125634605959121575626342204517335993100441902653945822716787071745668040605655986848110918266916007509154736366408264353571294754808276415520677371584462477812826288870432578699077738794339420021604422030181542336580030497761305096848922114405550073461519852256058863655535134302253475802725152526133911709886168773550074397676093889409355255293705689494032793903744934372750717904059478037794815839187159131835216865600982335880761728504077116739890989377250483424654859637050781894283020105091056654200504030590882480240925869989726223021837976666905207487904211796034916010763767265980385987634458765050327339206077462303738480836950809981036507903968133651652068754052358727139649770283078422083042948793971975036925940762847707477754126054489518686613377196081171845505084253656959735099904870581809699693050375545223335594852195573456182736740961942435637954203992094350025927744551746169345199624543990914215394390095334136193923989583556379415055792154804256490453215818233155057895077291970816078143090914441210673621247593217331607891742027486364765438098659713058281972386976415667322535642553976614704901010207318907070554008525577913968853552763997310979800685717749503094574480036986000957308507083817809410760623633114662792065063082378202835898526323796082497714876398059880661445340163982234344311223131242119787075804599680135997215969752623995264414880208719473385435342768219888553298166843730834836387830790121967858398087548741583526054972241240612574615204699983338973668286582078617222520355147341384508557656072741069476362419286940229938480376913261685110953311628231828920095485604644257189485098253493538951105074801995730328956547588022860827143535735478924147444051322343224509249744031487311014614576597667298848000398066366835245166687662639454872817035843069731279210146587492680927715646348598966504086847666843452038318788496531045281073411457086124832670774939518891344891221648855123534817677847646295635307304771560394148298634933153051443205255616952533036330940069551237962449410842137567466463544215918201767445560462356996003696684940307281164037670392996923333340201901624630585068871881528955080474397781067512483291044467004260238879833552475009934379719182323392374548333136437416884251409024935947372529691245913973562011823726729728049429066803111327392250309554842949055497877841367858698160882632275451880729216868923253911512623347652166501811870141472528544649640673253029629032212959390900455296087947035624718063383524504060626270326290901159321833942011369215005714477994294405195524867702115032990072893346033019629676847070631611400126176697035298068331490629545434048884545757587571662152751801958737705548725188274803213559831375464965166918428967744091981720878658725772282549759844549589184217844779041789049880407300978007201821049616416160634409396626114546032316831355510495718161166064828398836716967125736633618223631694069218597703620542939099693393954034815038431143598550848985553990609452603205802523957806692623880591615631473974970853553541942702480108591998589934373152990555198530522479916974124312518831021114806783027215756902148024176015197713960891521440005952078787496261611813424295296517417809315448057129237445274685453205103100889926701466724731861008883122425308623315749818061564322844315621480906357218705195537433945728178450217659700290070579852926362188407572116202307846325810526702485661821179252149308628663074139485747556300260139951656472051591411123573560587802416833328310864747835639616116457270039123390808901648728082572576269509364674135113452337061540831423496698337241136668543613035541520233921299351578233780088244506485788485792462589713144121724336093285631060528459600839829183831489418113449929478892140678598863984709581693410381862126696416361670049377829434882983690685475044626351596451024531362987172757931429792994616884874900349854291195296160311748338640769551199081199377181328485002979684663183477052300788865019744769939121209501238632038012270205116034145061527170591766692361599463240681071245143619043562063146384183334267533463647816817502281633113751979636763699077321134726548742136766614585427303578958828756905427876376795047506521657073908823835134618535745917194839850214547126477275950954988901223941418728387069064090196375098018971231401051783718032443959555180853724700556400406118967034116431687832637983671547689171278679003991251700483699779074696421529537184576700632970283726099193969992944074997537448669976638677177827626920396366962571773440787047493407728332502643008946362311295248186266741037706839464365890048837763363772349258926032294954100249779593678929528764394801655039172852784715960467216757936329280638680237922221738981658663747316490889916827074421814060773235116652241204753798472973931767245617646644553572805094124968776811111221018745594723409855714167269762801313791944722983030658308105750586705618438068478352904259206854339799710907997909510088460990531201424527279087021929627593375805480649068363343111343369739423052467739506098589027154866129977606620992820852474098263945267956394360265982471439291226251698394053671316941594409386070592192164928118184794873501938383334378571028298579732499397154922278551646471706146497858263505643752028924161875408178442449068761257942741511772994373424044242723065511180416040459959098796588463293241558532949047293082929353306384979607587473670434888739769880511622801474919293567701867819577030489441422107638229205415005340720680867024863625122781815092417907125818786311950069722980610767945047498021335767319710917259676136699959425663106642766946240590317462291295632674599679567070076764546200722491964535358894596279027657923455468664371320046256506346969778541756576271678434582984892165573072160448942421673591566557399970425379532148878444301732712927745971396893425084959071510732325511313053857613513850123936578340577609756197086352911700244186552308369154097658211752547873019147390930016153204192185274646795951375381545833506652805091015746440256235969540760744334247711731917464214314133507429289189151696319702308958513553375370190471210555073036664297563829350405778202901780048289519759264393559841186919049649791659638329263836502519741464086358617634623909150416300823664491784939031086750978315215762189430429850908920802276279357163094053553758596353079030756303771658287051901180062047562600274970863347743438363021706982078729600696155453291181533796590908483126877518002771522396238391219938061645602742955216584435796206081430818123724144574414306764299660025322436385165585474626675902781702924679852726812738242874900792868660160286976154703570939591660995500467194665958667708583502485008996642410470077982222726805583435121395740444075098951269149882731330130811050819641128505295937945050120619652589317224229701598897992191477682135889638989106995059724344479174087051391105525792445356178627707723238274342886712976977971372305462749622894004405399943207397746286505578892628241905749893325747059917982719377162501079741241149846240239600415827695359131740122866144888741568507671629692801250069045902877844251281803874362266492104619469131680433582403445272008883248721066060468436883622998304059973109885289478662343058782181431415738565055852185023730954911807481743128021499483603258643131560926667782689137341604138195523599020063598530845597070759659403267999979907241687840677094888896556002391352079629693409688687709486274775597012259852104188783256770675516008215264277921948987000399333969395529894000499275304469422736807599618661039661622607167110703293837008913321197823839584805268125427658284530305589200252646063148047570372133788548711311571287903895299893001052123063357861732239160544243059351920887326187565545342060920946168872954587469403527976407466374388051733888124984548949158537401798737723555745673813369261954377836279224703616502546574440566420263694192798420238204845676388863633239580660830838883783829167314647517195231567399333110106685463186994391379093071836855149126457762134705331435354353202849839871939209901795961552339972483653895363640892324475536470384007504964824868582404476469362536666908295490087548547781151999965950057871744525000523196301240544817161503325591775785428201412553453689497033558975506507433846152248446444798022586084417844518592315104322496192946720532970108811191443187178743571052412266123006320634499883951816855125539590002068268728261396725888336078608326659798350598093596343748050644112282850565063674451548675155736302585800732312225413603264823816773715310698843027318104028513909772197887362681576462181110940743616965430772055282262340740176663731161503001691919714362657336856303388076449611833329123893062865626833949260795417270637273146533969551095152100887721144747139225475924274340882195263094055244781830462830168134095446579991835667283710239336138765953682893806261062757472211800651828291471931934165562055641591315580224793842512066627349005335916410235979021300163666950478628614034789022997900460022691441336630397960998277640282133146390483847646967584295763805383969206535180474786214573439200573565514110128740216246076849972228075630435068855837721172249567122487916193553946371317650491659601362176964429309804112624991211928227902134018970206143010309333663962370521256900474407105379318269459901065073856411346998230589226034716246768804354757246404732460610811285732592120314926111991818965209022525677060811432444380970062935283032632398614985618910590157317803081378851562551683405770933959494914194816187588442624781420783785647138434312101440673204866157335270626662394950277937987722121253367149864490664588641487602123905259925552638456777706944133847683733599789511465096958608743793312426590372211275707037280787272899047785472659550315490772683794613758903935494337253694866167486078686281813917793317230956031857913263661506371329561160095899104626895505263107360909317673975372021264637337473413228406243206400735463393096823566549167132068907578723914168888025146031580571982279722526878768669460801039759292538612770333443965449552785469867881538219693121504285414997864303525470912956364677915204185171362358494671678905412738352349037678021447892298580956297567472771238757879650056806454285282188438308818452801722832307240072749883887728918860234617336961192700428827653204050080736837525742222353220799639200799467848787382176856534229366159323980141293038026050993305842385928073103049140045550028227146629052723030924972340016904710375326443905810831498507572218777820898966475429736871900311899881241183890358387902143585668919754268805718531933740754094901880376976454782644699835182866138643022335244688004722432854038782575025683875033860185363021911443008088173590048733255189620228053228447171361411077525386138430767945313132370936129831548656966899443503934718807929341067216333052739460750535399877758203375414709851022946796935601063586741421605726091306040118311190321134188549524560849395196226334237233454255961511800137849977090003258506432023149913870002507885110618923363183390011369824501454093856433203023301112417316049570762431309550155912104239441500486466521399298253764552453342452394046271220094041174136431515624555645174986565634730220000970133204045550912607970112079805319992903356450930157489329253879839768031168960831395278754407096492302061242899755722768572686271803662289316081820089252093943531150650824609882134405323065112794065041522084512847015140465362542285942206276764910298505552877214449618807712128797651915612229521271404458261062282056403044713540450493906794265319170302211520387714067585649788048343706491759173817000963861502811151691214861863888671003245108869037744326195140728272785164346179557842675608771560725677801556781287389379726088006925299358115214706993202720436025521028621794263502489898380815362407874046954839903693939738437516732191438745241397988906006299727665486060438488030273216851431446871879159294373313067330454602413809526609699438643842566512185488089169432460827915398174850027254022947409404472101256560030412817780042141221513593587476856614091646127007100207300124617854160965809506210681928094448496792780012378906737826901213381259828129891551967544523192361129847685466466444529363240491910332144327633447858391710530634454390993909751362732895697591679426158514015139302988644394315328752901135497737964072480477014113463114535488745471195011993142282428705621491486412987890426296171112573162388177256665734572940212450337423588380609150612326791785296705055215647902903558455164467144795698450607939196938323129691970733367823385458765941648089134927529773927312196611540634511596795543485993609051684977367834698125521159565057805480332286097051802126114985229710289477118013039199627039290813923599535673918502557657711839397034030837112454912389903057647314804579855288395082024390115282898868772487209520428121501653226130268541204809013104240149854189798522162588189219107498207483862563468529349590058092270602279688470117409947601836536179441730692019796505460236954544176607002217826626905971496798309427688126173037425173570593720212010412180149279459171361096034446702067325397224409556523862923359864525284478662222122690868087040935218164384902143823470709633455198887457110138018656093668626407285128351731065702113699005714819641345835774089099599361467471950953387378663709081902078340614584876840281084029577544703448568949600317301945010303167758336418952045398598197075263971443334600944393275182214844997040461968871933334417985726049014022262421148598836279974577101311126819006457278968188474320610251000206889000932996750707904439670457896345008269074783528749994044209312650279308163725737013971288711687197542867893470221307708649206456268239714742858240399412711034592966922488111883180616947112230654032182089655926400160026157796780975148277986749413038981247375122336092106726858914385912168395175325303804231687578963963871063686817689161384232587686744628720473909311790202618593286672121902057834880029270754425068563584447352928184401546045420003291677127750952482864968502204981241077315514993367381291822494112746403915063383498656806018206638188453802206160545062412350432157453684881260324830164319696040802985505168517867419975120671796283932783414985874272020965141496733019005079098895903358193529961174279819458677291297081636842449448562748980388759837503841666891606254364615993078412915756621528796496184430763896082953726435462361645162522839815571685651200969571958413904892710244128884315380919463661673693691516434875012574706826011337889990819142361065521136338249133321968632962339440988664686042726431778030064242340836488286378285548109371393172818701650663379512273939994503553138010701797199398658091151161772004863263244449292359648695315896805158800586507762478795803534603432336732047591680851277881430094483826591374028080909951518146074387336398280094479523562590720527251158769757520221760748741114616802654986735549906010400073022937543255179211147432910298406743089143270199429885750468612097759885052108273210756163974468096710044226326742038417193578001681549682728289065082940164313251333255038495107417744344073069076359056721921446239895807088256022486698254796379746534121938853057828345853663355007206606835513070654222806099385650602838603586314816556599372033047422729515415039718404998838346629956183259312608431058321788275515794269092107203861349503775359649903224286306550007338821008796701672655588129607360629703892918587194195108559958893132725010525446102821910679858339127505022435617281430449045896828860679345619847448546071667202124433166217103792537748792389383436440524406238943450707866226460022789408494728560010055840743429354157098171361770143226548120685304226757399916427647379012572668897832450713873902666754370485127199208088513230803111154052889594572094785803651963724445328449956772914697193484148436362410494995769514428649582986345038873251074388888704681817040809662157199786016369604578569080142166455606686056230666634130748990303416539572159249935886118645738427770404807130590413548738655705535277762986568940199373022771925184035386645094237941118942722453041171348925069240454897643437551315121657596677866183652697235411783787099952581125977257171291409138655092747788987919271353569092575653389041695947065283080992402185020326963818472770531859736785717202993182393965361385136010461094589194414206790814103430146472885100130497486572561178367268196727237365903838947532482493682076656984361177222551770473423037970216561490345498742488570336286548727055173890019446816298950180752235519514068141803055983058009062563449990546536047037789478075198480310319379667196739483411434251684549821951122028686260726262426182120363771071351339699946120680856360002555616265526039929728202351906571893546744137376895871601265040006103546951382012941364676020979720434835933182134627064998044040620773874682794894917469040355002569410268808419040743153554046447151940943137278056917247749655390322379268061305662755080214853561300278596177924061967380542390038242526673535217375547133032797951046520248022779628451685685859623292955082260360803961641594055201361642262948288955433448485567952326509260921516671241928618564934359085889237373036250368427563895082345726011667490173591431809008672953837389135114966043999403029558912496907583192253555477071871309028784283832104743672495359788324557845659625119725398327378354178594340728166466007297471626478779525943841771406152463346561586096703307094032314444833981930860711646300422263608130929035079696690552626006940468388225592246694663126259821504736578529941840651680318161183378361302412347958578546734921449726261722476779433908061941270253309878628123601552113442079073046065801418562946494653172199007506360055608827471385644070347036637739702253487643583692620507200380987799413467727515579235251361257810832205374881537954074118334337742313732811010892912199112656010376953616137178859975802591490350730340184533476426868653192183119147856076848600117428156125146330591089484184188238144150172628515776462404007296539226100963501754665688734862962090981591970366736007992743555998173429859583456087849070176315158343368452273146281642348088590697420717900555177007825087976824858930966935539590196752188120176457245643892188639132816281500937561572863294985574574343119090974457419487457212496583157234389997684249178595534540420273180677541098585160627347797067488521393356143918278927807359180021629942725925562810558599067177562911643694096037930579755839440486337022271635832514358030618746739984538809939722630369141253644519915990155802323333120815598921221560837110833092091300981907324952524873258054186799364118466069741695252328755022691212829802196102656747646296241850449349893496191002518870003953726630985764325806811495318029469037146727504964666043412849319485934024861359465929452796460650784685367827762846384321714560857814134393346949717657090225640097110644485678005243040507221215796467025622181248509890985208161299120052096129184034996645093534871203495806577024224789692204055791462100143179373088727904351738961781413755325421071230466009120422976021919442842832238190179845478226677686094745009059581176472590810660778679396341090118468857208783998843257411730686307738483008230399832841255850532861515843726963397168169594504147947560360991471351520166311308129694833526504667560917719462433230386187479950186608433692119603317785507477997622799166166061425915736502990259090913334469220952587362145507809355435926617978776330807251582349461937857067886928355005014900448116291610773332142157376446810329818807536821741289640385753148343718877200578291490774197088157008552008977183855119255232552029900356646465499208521773851158029616091437786863167384528739861328314227913636155131867733035830057722243636051497177274751816448919663894442303368787008086378347042990582258447210498001370106865825234488516597083426200111970476258902938767927294715637239441928460852057432870320838283102063824089142829157431151097735259958937882066341484153386150275877720051789824655533466564747947344755550680799861271658781851082467695844068985252300302899835917215508892588560377229433713094044574999867155104095772230310045470976219387823654850966941413848345718161156610082720263663311927027776642787462321761666704918113160190720276212856221858265337589812902586041897500853192724256951670065635062413741212920326144953550755520946038348859637578054929227532136604867103049988706910750122745907009275102242221806044645073586105132587218474646623558717431693795692188203574431601764727305938377693006265711107010471044565643279757805159178427080017653608253040815753159428005200955549594916755986333416435899625314170967044120214764206504720520586462656770012041491417497371170934413665353558215945125172799417451955298624204753616149066746938325843262593220163531265279048623495553418368128515480885279193720749299160378952390400169834141662934417762442721616218127008251519420487509147168072716421993646616365508920991082927313963546524727560439721015640055914624815613666215354373786687642780088821264034997261359416056539168803964102494080328549863752966900985546165804611012266667391596626560776561188978199475162154140757628472055464498459791569686831419793946775236002431968466868238211226086130235565318036431730460780129622535319270387887242759134358766329598686275131733828003747638142185494659760888201418450410706563880218677030677660920407776657514821970666847526618886540746542127652041340965731230604964728904722911459104558425210629215636053926783453536684688882087721824966375823790626260846704416554890670785453638887584137392246139049693367251367298884391788791025589044689776441309195831733578432497727521332180598009670494454259756566890021349542347323214981646713344398046357740253743538242292015547658863634173076165767985893535602628130695923539858991568911366382989902388207126126310151229006689193029219615054114743996399014010002667246680029660704630925233315380104940524068734951746448880788451669559147642884021507797832107338617704484829571939901765928527510378485880193008674425443945427361537682160356906517487094744492092129413467844038141550239504343387084270781059946025552462970565312568724898670196562410693213531785843494193680906674169678370995363489834370471643342548770978427171897723290914110214302154155375886154702754664611113063578985174054164621043799641042709779684071206758658042258224556741077894973936666763002992612395039998240770116027158744748767006428984387554072093939434716546266814929434358729495535171295420723587521961087919487511637359345268414558943475461644953649754828765117497265582237954266482701013382320675237517069380395921716417684201627978571916961644749720191500401912910439436761568346007112874848753889414528796746562273636990797711352409764287825344244390928226250485575694046833030398679485994262789889954023420023968276608176013231281092105602416888086406428922365177655309253278013986883846565752741348127000495337721702270558419178799873499279365449372743468379138058379130410079945404676335486430736146216927976046324036606693663457106867181006511862504009649306747298627730191918988491295640023513187171251973497689262894785503699543468668732712034236765548411679792654991739121954961885379872978954280913230824131242191536274769256467154863629432260802895209064583615180224844843656260849678535023596115033999785760744898631531602494611831989302235858127786373902300745185349594464676759629995047454953693591962406910134043873650942612544442467580562475181514178237355345065214555620525877680833522402472547261268405034916230747443294785094428396429041326151877613230031084465463754965407138674279959682083570233995829402348251585814429559685059884388258893842636847577830429510901912708926975870878098573943101503761880428505089826978322402160223851172544018419195768560837926006071489796732560397610492010622091833798942465516951223043105788985297376137956476913713166811903026200075960697676367307692777803956036937293455097202019670842956713178328480598618486934084275463588274348634897889810267853812073807078163569394810953695265846227712331528181266519023442767313655365469647206575477618673823730731115858017478824019033499230470866595176452536157206677302235145238270472584382784864166455898500509304235024665491579077453108433665922517407660774876321852885406924588712926695141721723260603830773906180542477835335597327790314815493584642623098429237993093349175976695307031489251431573717178292248698474417890186507828627596606244251370434483895778112803383831304870330637820484572890467591722619659448199273754611395969142010443438119649841248282670256379868258239816666097293317957277437058935771434083685260244923577715521734625907045363816371108965399699448582575317387749046968523454349547214304661784152650733856172113187954694388041985883280948127964251605628110613435643856355493849740277210195187526929928473035836626825217054444885825621421700936219419105978876449449527194807448079899630080906531525412128373717167155885644184970502646555466294882471870682848595751683565534449916166309708448514185404788604541136462283230072271904260991323741714909388238024188429836841502461537082285061472917598928597739848415167700903988096678645563560572090798288447959597697521089907591321789498430658596838446796192239237950398290621206993231710111569033256178485752825488100665704923724126019266652367898740781924910031834970243952089717782650704657821859324894548825781592026293296611837673757499840557039037649994168430649766072178802754355600792080695609810010795240041685606507156530351968126160391290378185738592563432571589789725539591448568001851226367184547859253122524417889799860264244703257087716766669736780183504485174477197522291574293354652500869764124502339290921328794285422513718218259278755252456718607895185346229175976376481148692721121284554151557663984145417072499076576051022133773448035143699601922396644781480789361551134842960072468654560226653252843727001462746288561395557201928389273956775437176275355283440234401450603432690527391168344014413733476263635231286956370246164878642500035693509596392211919777408550512313475179312216070363866351418149924694901075793875806297101236400019498538840999386555636485344051560404347555587418328671074711292099366709304965383539533962970483258779127239569095676969400925595503703656875367168922918990536597157524270901389170619278905783741492977595778494872914356182111629804196122229971342983933468791175904202951979869388719637743188729649769077774895743809262041431931970077388565590573785566468176716827654805781695217837934105827438130116337885862300308369040592882471468071156492900809827247572369748376820479905752506025456911575882066740153722837228018984485963245765388896955015323031193381152180512419098746435774808169184838893244535680846450235785485503412861635307013267602060588566969838060147081430807732100805062509292506728171853270887492553321335115544171923710487118890438199062210537328368942192359731939762155417851142685576421901077722114473441698448098393347371169335095112031852702916723955684457925991409826391621946806643392439271626618207543998472381713797648503542361015702335188810687632092679877403452940838738735356791158341046250012376520936457515558294840957958161796920043931832191838650528232235696289990218823246759402255953883104116430508000675655091314201564363454309391068002900623128568519249262155126843845387252198784896814221920987143496577356696201342314381208609499541639823414249519649875304167546773700105678372678473560027146266321710474964589784408140311675158993519127586372658196089372695470215646632830247212793682839815408743051755489378098992106644033988134698969211401049854010458467169457005818673118925295283972992480197376651695052705527170444769724661149435260959928646497802728849442020750590206448348080956377974081022669664406165063513871129638606135806811342066850203619519871089151060212707795843440710894384519043259151613632761060602778340092848134708456379098992977031147915647441397460304487784699506224490829050492656285597382082677594825369294134547711469018558274125163095903231096563278744934785080275544233504740372811553797810364029392846905873109969744421285132748281491726722747105565978379232978944480903000225292172104755428395633478747897679121456728871331306635169387723021653546594628589244347419336694424387562511287641679293573298546134393256122344072186401900842635318063503467412366340306219593936623993540272807079775448592714528907861360031290767555003653519907091087676938432212597871251774620877701312258734140301639815603058001483552130142265044929513730434258479273207772261091602881399936501445021334230784631045292633073933203536518134471809157201486808383055632175766698764690657072830133396917085624156184628506768851966728448117006266447888391795566526623244612893910099399347703852546454131216463485610156688916202123155180726936582389379975708489507114138888845126622069751765115132684912914132463150999973677533690805281492122021614021845754247588376570375210535009330609531669941786040396896758005879105953124965459925866396093983006679725492971584491955059161786858071203397644845928840450800981970658809382356919053015140344860552351922186765366896223969857167116465304227360628855703316837843132794706632204751984186704726718032321635846179480474884247582079933149231968947646654489698094355473809563204977852304441695485136944163445068559531381368116055829109835392342793767449942949316688638323142933546910510744087029498004925641463523087763415481486471607433269333984941350981757289197861143312498573349503598136081588719354825091989619182211008102167096954227507255904571399108394892776191750929613589068842192784635183537483582542783603279987643461395288114795526438107516889923719833830135572269535361345589662082856421389798718110563409348925838038679183104574882677665916383874030176670226943648853135942605341986948626573572456061130953357765786510117903067848159777854064127764105125052235786737206857316455414404893162457516619874667206609732889487008639758173216441867664095360821516999368001100282539261213973159639069488124882348439477346057978134976914119349079123656483846772706400692151731484936815625379055557491236414183778341960077736953174970230005218714799297610194217719066654337866522752866060153336384886122898598281792936717358587528413293388449236942314152989678402988415964163009931760196872468414711426559701581261021816659925885849411538687047374728140048029489438409897921050898688094383520133036753003123976794662619470449387616539546541258186517122849644368598090367407316483164374978164270776615870993497377064236448316038748734966151085379650229900102114456076026087319882874623079556180185809693393011753374404835684949057792008696352560136857838612978038389058756840345070610570635556206620812456659626571513422115641597438895466182965618896269303156996773954645590025932562078237526653200014908605419874680142715462897772749207147768225119078850315693074717229304463094591443544876695891926602952963480584851496682187334241081235750411584314558126243262512387547336791697649924133493532664060801569501478242718346226330788565104824111325257467825122901415598924901063798844698149302643666043171270207517137972375308737969971088609704160681925652543658652738032027314036483306294236413169303109967582713807518463620559764109607672142977145224120617059710427379288373997568183903359334934701597792376614127044885203474647343898620862110916180804121845556672985597110283653200673634069780048018909252071805544043387336347076295144367975456755818038622978763137100982597818915824934304010157894509442278916060224213421313542362042022333373613929434154095855185874148586273835659514814042904971091476109666792907903936755528029682747239963691750968534185342827771389700631425082770374381631418814635460503406154061760950312876244112459746817250370695577333281956853718843231159198397651746663255803730358317609180199322448985033724518970777043398027797698258136081094490918885770990115492841484574949128540869554440188399711034638186069043509452088077096800236167126704931156113097538517062316531279367916293069421337899563167341842826082943665484253911477746622709725162894981992397086722911641367671950218425027282125744407983368102155475792240162670418237333861844215248146514441649707437306137024256412395231942417034827095523420634379602559469746827053711338858146205733377978287368194900437843442733453844042470770052984297745413169557155260517111270196060500814118239836145771060534940963695347802120212843474879642567511635890225200712512729422800681412146651881097245873232850948749251684824930661673654000382288288190240221116448116955253621273855173181428565975727450923944597323383253043484096898483432233192836690062488579296355771145642028397540616371949983809702568770351068313333713012367176891325583213252726688660317931040578225898774892028261045037130928646237803018338750241404648484183248178570033549432061484035713623537432308592952600986674490766251684986983767289120675800921274471578017027434980222703711806966700563007951279691565827334844233300447533915489026226817690476552490519665904074293740478285056749686237961741676135106849438182136417099871694723281394359213414755108250150061271598547599809347059051761153594180758432651701773381556136788681866922030638276982220608991842559685656378756546104028159949330711282493649796400001009437017541408037290035343812872982180289753770557942989349339575860677554481893184637548963843070723248632417763649286125150423436975882172246041219473474417469695084005336110414013251460411085992359971188753675874936771547576373447498861726679505981101028864460688720582406183228664172823371389991545699165017286208673378010775474638166218767359719429589773537756744590428058010322470491534261317049523779125872408966737297958902574650289671855755978165343607945627053083921239851681593939508443796279254193734247722883324407158425039156102448025733237141989551476723890599898047658514225534579482189090145355436448905682114498745896606974846337302864195186098155150678560125598094318681864825178308592259752474055540526839740086928570541629988245618134375666636285650555474474701857357969841916559171458871986993039505539233249570737389916427719415540080112453420533715638260522354509784623010355335939415545221660548775484947400734449994102225095840805050932835250260277462493460693331596761692198059465527673855091516269622599983289668792175607038821523875961610038309470615716452597565619191219945421030401499847564973704665313933236142517118880684782352816835801991048447403517306010546019126653562066475709712120620475065006620023523410238373583296907902570631057067335136848806224876655397245320251605582770746386617709854576337010890252948833496520561388701204114870498380836818153897735905779807221299227503194023033078542246688447771741636434766455406435454970051795561656789146685626686043682829254509415845363982876698523130779846220973503207454800774869872995248094925624721092176627983290673269768080001440879163672179213346708832263945804921305160163017662446413867566783081618124319196249978422327643219807694663772697320313360475118717652027858813118268960278660542162789662454428124627797336432906785399488790185454601822064870616071604884507442438956093575067587082762977218279374566087527863701386910672677161918284181680040857668107818270818347985034471108503429030018418913101799863838187564301752801985321963915004472120521995536239206009092039203854419099404451365239031483838556651426209059119960631724062714873226054528595857495552816895799817109170271621646711129745973539377582521740057856187037800357602929192463031691132653662281913808805790418073774750697731961523435100263006230477014654563944512470683350448409861516076525040201647626160048221320948202157928749185657184362734301433428237911484144805713050780142928886950621288633689561278763899310352594360849305622342804158512469455987494522591747147316104334251277085422289738379060416264012825576373749501914446375798763738813368706783879449791872644542265479327391401030984019636756938882320617577129233255114319489037099052353644899783414771706363292648642720104671785778801140761428524570425030942379090796505847548902552053841488101576823682236012359538541547914580548994925279132422736509972395069274035813207074052297991788608304031308749572630475045902222982288929849102776699759180837136033310764023279390272475278407628652683483466523615505012136805108615882171249711272990855927658921221636465307266420995133398298629781547383085757140413774115951262237600976268832169024200774969623838332628190710991552065726633894191546387533788205554815456122157018675745319810686937814138212304068502348499198753030041130444690061506753389437292575528230728774407516603150614304686001004408154582131187585036717083921968044617865918315573949803391748874519010508813570408121973784541935977271366390227649186892049393988973501482360325325103999479254227341225459637465419467694784143320410064608922212924849124904600096800998567584889453145845991943944991614280303008547367723400076144649679708878038271674328525895322793980726351740835653542000452774845816802792543192459675840990370598759125608784508591886631121798495943786777011188774077071163866784160193854482987082494359540671952201375426344225761717294695860671793913227383999157656552056917686317961559771247883905928364686272904656440112145868406265997550673009048180211692901639947553117460830271832110505472380698146453581653249658934351434503099491023024095828251004032291962413697842862383448918790847906832719710928571179407494334145461525156676636237602320287884616186125944653656150544251718347709151802228841481621811304503348820283830141810309228651519232396631007914179339210460720651661531109712184418235835009206227566531735376318704393445357326558921399526345204758217955833714538859624814151554881947043941948328247615776056629171782578056241970869097581296866743412146570640312018971236854141811437695907287381518535715325339092534289125377348911671746786993028823388403904981365623908876088032998983565006187803980027948580084718652481574305234328451624005807468847720252128464459212101800975189368452214685606901613500381627498428231888979711870260094119601857159291701656004735156513012370296659848307016997184641696000165407490367915520742888294345179248324279386565398892375189720872509980570381011539238926982093845095650696709410613416649626720836222512331995489696138223136879694286388009696478906576198062348535884306656333444223247948126668763443911123329225912401210134614231183547876582546008832452242837486853522474093323055169302286713584924171746241601352912327400628912009582286488530540017001679617817598669012451052014252485497197701541468818370523283859009947643554140162156430377431401738121880857409005886973420406863268326906258032540000590359908348413753745708087683676436814475688741060106282007999989903249176314611236046494924353907728891240939716599663666678588967167925340271564344372757907943070060423262973615175299397633461397025150819770030308795900626654332446135831799480353210943346194567779248265066808952942574624466018997596016007389920113489876969011682253778386600795374495850021235782397387620087454241013353684360733308078527566218439706113553507847525703555407807212109997765257144380115140765582209635119779219289742102636481510633920411436973487447399105448546018432223452685013888728404080190753783974905104977749806355396890564402060820729802216259412247551703135920769109898454625355239715093395674049889117736878258732049355562050261224717505485113519079968056457555637479467912863078017135086068710504148087618950013229452844504678766042653455504499019705112295883982725419418769518810926275952142251604818871395584070623485968526782927511481133601546334980338128551711140962519730303519888937284948071158273040818392921846043542683651993831512745313040907955724606412386863367028353448180941587999677255784322307264370663463118694730719151077613070627484271743236990457184216974013401118079760729905403802763517983545058482499911242977881234982175828492295260774552214885569160492033664125720194263692935519598579158783651658220920050330475118272513658242058386886072433487270534294837798086502521986891399297351229469052821518576745665091031228185776181621767683360656905569617603958487739116082864360102954495481341744498645783629292047331783400571570409657168221734282079576885269514075088965920695999981943941321088560984088220921611850678711213197181126084491270997218284942492558855952244857780824923925962024166365881574344314601731210425024416997988865162376024627460245437913656727955307200618386071032753148189009242654967019649062721542787506550762458398722259280374973320884110983124461189076165482254203293107533463877048420673652534325731705887139466742734536655558712145023267026363743844988023363938764981774168417767273410145505552411086600176538738072086939397012725806160550902147743621231631952819210331707510170576368812105758294821360194466081238288346521700632940187906086108696770198563172950948176124618424355968253943713466049521186091646801158990239689630667337137334306844732999828149248163070646706631275116316590567855555447019126290523463921458784136093743103223958275916399514459248533073333552844303094224906069523343766710450698327579485429671722635437324191967491336972895687243981786262958275358847053013921656020882961027628227850728306187999938680103662337979044091950622718713907164594252807857942634775680625531890598502154626718888031354561044083765158545328678293740129398329623262712355160890816304118251505011318598018191675991554632702257495534525546017346318170705174185430586013532138048643474877626714723367905525466507457974976853325802988121337524755255372456271893071362025799991973957961981143046353118226578778802078573820168166746084678887027178172275710915348023377735661855597571137814308567754263857007474137063888520166622566579191803773588539814651621111860385126440978479143871297268242389993152540491181405402086425097200625591869481627291126283032802647372288010974886446977024308218617490645852097181022260144299289347446553874867972998276240537697177461188921428053015805176523823511082084239508953675401747166552214801387728165544654030835821861091729508868287372096492698820024494007761779454285469020913480605901940558028354589961755128944601657183289483898836050494879676881047212576961157364013001891089793321260315206827071307117770143033810383620638079280931531779146538512602671375099616041561125602624923449986660016437296545918302559940517212979649443880755513651781443174550181427242454377450269342665693226769822287470959282699389733699204200433026272443070638984001965213564622761597170296482958897989243770670269142158503305663498193862616291693848574834435039395203866421400557744788315694972078305988545442655233161711771743923654029470296544232207299041240377740449753461325441479854514818318457867908091352131456663566206128396055017866335142430363112280911584494858787488652545865337385494316519566352489188927679946973828588606966786414885896588406767023506550883329111284184918478718837959304788211879663509451682199210940926441527620039081902611050300586197910602156514628823732645537121977306682473715179504649515474343146704998619677860791429296960204389939289719621164485580369566921768499358721557819920803983606878354684733915984313000771550938225040197086347413383892420660036632857653937698853398764627701102819114379649326548582023155928659960714527094892519909760306243281464056121322601607128764721191306704296032879589394190798787134760296986629631112061294429437447066831372649917548135439051845071373220450710837682825038223878280830562422050548582683524587445968272831320457901555150177130168738930141415659370041744116338766097694422913388093179753071987744810429020137378957003510447608829814763963739849745186399254820560081460218005160247314708002510608543851060785564768322718072377910189124618466618806288074940568860957008816107515327347472333208039701445219418941817277044131138758661488020394652252827033407831409870243764907136265689058353363322725361465592675180915435894884889050244821640183616469190493661801921685523206499569904222726513765170984175198193695386659428161091536397139449196311020583249195373063979510674658527968612620812645702348652700936455591846854229909277811617347458667530570869194281227891032686198392270633280797607388189546619042710271933836981903809408407230983381164282287122319423265451525677115218032107983548270912163491301801031237907682189265457489572208800756953190963160369123210090491267071391330966548298398676536494372970650720199286959643204847063918658683359664217961331390217217159585530043789234113849984708836753238442711729192474249819156138492760387513445840462322878190522489724124477005229726148311052899330400424380200671429025406759807980906866831171222345133627085520248335765995424692263077383582551581662985083590484655565284560777044887977893230868348115195806725352307987253607199243199650477160476496530578726723634049305796413967745463476483787676240045893513496094876275281351583633397446805657942011386133792172542783792900388016669626083479793968300360522976056962554358074894912995899771902220084768160867813482037188743248765424886590573133325597620969531791330566804048545729187678448341849492878113122465234418442584429764894448953294901222682528923936964263834046263321102519930375100084626688616309771546931202093575747242128994004405473702141299356653340227396504978350601886690054340421926148183414124128653271652209411163384986306432649079288707156705375155235906928454333616732848340128289800089554582263463263020631456135676336874050669274653790753120074571839552729416288868487881543581496694430211974428632717539645234417461821585630659250277153554006993657137122295039360644661178580996916633387081512421810087112855722367337733877965995268932379530503835724714149373295667544148014507116976752351944957623316399580128791966301478138295763397426272911911298559235914321070875005326838914371174640722544740492779103331330165853232752571279034406141068992018097146201079479650282026997712995877651101725154161388402078754279846513955988191775833213528483808156133574557004785520849711721325123580351098158799134396517048851866469335982255025314428729627560548380494953923304522932525043858395907226297284447125759527134763994071142584113010214477263285564374237426046693508015086212992390960879642853268730818004653459543773297740279277800861947452251336212747959734716601323374741316005433496818682967783417777424355009615877418648076234095794000845623540202004676806469450713660898626715510955338123601539304024411636188083241343430727117865451326223109175116149393560873339381408228941927563768226047382370360853396094308136808477982961019710651443814697576931078368241912748794769283239629792905301852570176658791044431905614661668114077338688782353768532010353053197689060408447815413068618266403999042746794281200301811255784322164196611177119923009192618113837130161235941000473502544200476724969671561535410747083785723082673371891511504738233609232840648441399106494994449556500587900686374035952752713787931838341651205947548861508721220806535736447970101115985062781212055440153240279816388927480151591517239916713172554539558165517946661619007514647794428331036032034717406086285101339605612605926203355980657968158227555908284742960974713128830523441766526906137120996519763656120785337055088239684045475808936351464935739804093448890802008578758640075949862528559117248273471606323818365903023697361898423720749408385292537418749447781611192356998633262536074113531046826403507496318788680812322352608913495181465234679612931582088133041986884025008935982290858606064880117496465641971162944906071932692346892602286938498437082257966479256532815088086255832317521242423255295617404077099894149962152016021826443297242916791773976672974060624357251064134600607719886247036620562567663340141506687963415076568174646754175115044468584362887853655669808389468594141025071284366073819978223713796518425807718614196434503150414886275122687876045105069135958338807634229360574826114170400700057004081634809021147531214442551677305059273715861482075220480994575426115831334444065132585079086724393445315311403599092482106157319850947924166718636913428406896175313008237158267482317054505858470973869732374568043242459713385426111530323522743499593309169288889407213782878997422187609427489656334645612831557584842959627970894931727208012804191073496286048730836880678911305529476385810015522138129727926274148510985170870939062087192879634685309032998763569877520174881000150847003287885860835660705014895722393667708566284350554821448109018561424367002239699686815370150800724695602528908738658179053731914927661520440367284234446283019921345938934829847497909725575064469573292317297337571851364831723671720199243924873081172018877216175228231220153487585029958681466949501432713537665600939777520934687310383236527955072038728800708088686282165578570706711258418112758140249657166354529599963446096278547870403726994950830443653525636418733472721912246266516089991203318805907706563417867511018401168514821074039634137117703680130019923111275535970941356779381266479618203890846773802906787014669079328681772837363992905657297112162425386806837238901346052226131749555539003632861695396671747981824231464978883220368849330706281595700395041369019476738772530939708657346385204688698058480616765400023767098003681842584550223038273371251455595047885885237888467921934683320374290237685182484047497767750414682481955696504808446477853134649322914313060375708223315434661548664585109145935157608808269808976558802047491725903151433973940000798403463092306566989445282905594725391108767308808035392824444849357591428199252021366351847244176514223494443765098996785377227530330090957327567223621127723378372688629251909687023447634304689637178562881772410736377518016639658332187510748180884589353302522209306462405496053735336850998613345155974647155880684323885603190881801810021259756845567893624603486972389111466666769291600069940405086420076864879997168535258229192734718775026515883385385904644550663536673579632893599449951122558409353514970220771454601031273029038295593977281041870348863931032636807807399113012030673185005148336274299623151466379345665619630443437439141977846068905605111349758026753665953959173980629112971771921938945315733410726185592976599805873441275242986109522539140506613559306518676582779543264895335220325489693746206100968217085848137034289309389997283004934555326418998384574925398516614833856682336681905453356704988397772988655081610887869533697626343135589137808624750379073663736088719783096287161259766307708958766284876558919092150145312405426349198524440876133851946326211203961685905563297153443440163930483283830468172534078494953423195480124015897619017507952781435050507991934045637303173454874884507412469445841051688801069361745973301596316907940865696323246379667121932657249717029905750689734615153526909026669188492343278604428169524953225535231764376351217919087297842818822305534190189418885996966829216808510513339251264592023076084989066087323247857392019850125030228695915211023538729018443283041933931753230881942593268890914690298563836828688303566317413684005011436734419817057519984165131436318837498627503147779960640466014157334810235439094037880488545210894322667067653029221360073867149791031569192620790447384601009853919053030010545577290948570520043582244857279487604705150670897743478029350934338000085226209241213924813233282675510381653549346732281283719166446622446367364750504812720891680405519133887126854253521871609093344759420289603799375744149777572423928554347910561890945992609765411005601192694527110617023839908655491871411929896739858392703903716256504563570136755911976484897785164309398295098005062557410060167373110604791025441065735592281387646203239140786633906124814321633944459346936625614387773339759431569073399954464362625728553528084883223315458139201159873052373953429300084439331879933316912595293067463319165234506055435520931822612830581855793071771276565437443304906288369636973818429666133756915072350237244488566253015691153767014794972460610014549701028696382665886457973607401210309915536675892911000888660827627618363201120758617006107816813238070195416322341260026395019589022895977734999119733033847480701070028880731376207074680572441186759358956535161225695646789794178300403213409454560938635539404214125959656983515018939494873538974806433061512196394912597970742305072282558120044170132090319908941407530717163147878265200639067537129641491563470046419968869248272600035513791021289020925546420058916423832883363889320963603885501843460140859388639381080439466210616371557308674482429669872368177079633685065310653786574614660992362975125204865229299968531230463527920193911128912033766169550353075670583245413167724435619636776072871252972385292985966359693266861908353764322508666188308770667933306626342792946356618402752292594686091739386404301986767606865187069166004553329854399272516016665256864880276257701672129750187849222007243178468508019987730519396982198240273383205894470778964367098326474859507169787258568291722274456104014328986207782165425783621645243581237316326783309599013356428659398318561558931663544083555708904840258821864881745077682916067824747049312172998052211241503498196511360955731729915581657170281880223339646312428638260674917154216614407732144702177054883008782388044903320142464605559884592115279814382524708335871698174848851527500544775349710932824111096412994947340649832453255598866041011309169586514703514499188755795151639985907573186667359651450553630859760115531826870478416329311198154273724549647479092303074820831551316786337149768210322445933063695152824202255127567714743432767685284619528598077838270221345172036450467827982913975084098435042566657859456203437574959511909182445136245880587634173064116547673118030665126797850381305865397164459509013577302621104378571682769581227726579860304049587273884921496861097955420954993545683298313321362974794578537297410811012592913458017610532152102560857692524007839172465068401907465449789073134038890774245431695457303728780760177174450738542428750462250687626461284503296024769626343769823348440767170778059945081803265207607747062157841809558992618362283157279379410976369916424396726371310514329485411862855979856595249165654524119044484301505065216738838094139459192626282566087302902181469874705944625574971891539058609799463205294069972417128557039968035483382556351716287733196045783356194083796206079541813299748243274205689113221242024458045694090091329530722796728331147893281086643180023632616209070694596491278902050585392236442415458075802825743004739909540453625230578577099691183854953826000148637963135868211187746576957179861490807436483489444612566272832369839241185294341328355484201397316650515199555056121130037277397552441959465833965205030194811484975445978209356700297260866949221684592211910968208619204701480695573093856100015167131200095038814840692972019828375084225860298553238833467082646475225610790655194120244650114042399916458314392357144104701787864851782622114084962775846439721304416861438578496259481703991050556054348732998779891377133707399079270379270498830704119620520529393712413907723961646733077261940736331364222427966288484423407973958530859324586868661700220749618946164214708762964711745838099175515700623608909313090529220844141964847702375815934130429907917812804264726660328055314591846646834964982851907406325057036817826043215789734028952814955962986496415725942790438836022480309751570484380974081957695176947179471005187521167588936319163054910569551511771414334754234743007987223910741136356707041157601723973489537877810613078147583743232041607442860307065139910735726986453861434488841072997279673026799867396561892578923153750033828754109750685297873820545133338788741696863546421417111425205976889668717648472373674885360148077634927653329098285708575683494808869965134718665699761706688254589135625737401263096196289093000330596501822947419766159688799589650482224328942172214567876978891508980124690330658986749930116950082346108916960001256288346094732825823705626244186211339904589247071987619542676008441244448390961408033676373307867388251523549712697168634775687919414659685413433717012627235658320650854207164960827566289873819590015965351068735125024876718339382524243691823521501500163251676809290362366508169534082121017580665674041432082584581443527158307295889921672484890109788516627737768005120119288274057175389773147838819440064706458725851547051833747426555138174272666454268557342314511096362254052616343002769279170921949303287958826503468807635672840076718898323107384919475688283905512142460761299765415889574064577694449822131238425365654515898740649592994777824170155065492945140813657431537107818915113622012845535813101213576606513759332341897847069292747807833546972196765250346953172844320159928111596406753721515100711346154927871624572833907220086773590362636520119227476694916154933718889369704306083341609422269476504487205796142741797796307019050386671123948809581768115558647462175253285551047097871551622985477378382844584780700701533276275126100227729335565716559703897314474617480896787863618448354386318757801697623465306541060679068938512219797316555530300571611498732930046449087599787901953824674440847909914388621570712546627171779660895016322487323290838391049166515606430685037644208597630739082626706304583997219548532925689345550452253255056752364244228167209262494946425685220627900935760527007180513153131138495891300245874478491452412882065860512807785378339541274472950995612247787692588634082915954542425955588159389303719503912397840115822291303693904911682078768995831016936696548665078810943151844387511657386591522822118084708092865636327929903416551205357790800635789327327098572029167333659096629536964087447012675672592444898557016985032667548257894986384907496105894298951963534353111223122612581931233597169534589149452782281686131805966060905317248910123985970591113039091353583835910808593056596330876235969515326427982741494172286483745167987335485585247051236800440766941262440945480411331161878783472373127147648239699471950412172899081740310439541420785024973176586941965746430755969091646496929503007745671348409567172206510521064661405883838156534314640305557292157103614763892145609351366643262530427068496737306736406581129705561693563599479724790130363615404262157147276932693366559479718626993477922754339066058230424425417921690851297729068302652636224154106837912818265619306588292115746389881602198279041643348671421617604023797487161794898501053590728028577670361076589804031567557389975949168989003379005732464391476083338227964545163213093530915949441097704489595202672690279280041012589550263681274055908158523593882967850752075152339271263239402307729954941541082690777811309194671302984645062255466758715149762690364023208654592185242018114755647497903603567151091978255994394863328901644727062150567865391316292387742067105803518698120878826901871120423821316006510628887242022812359545384388574465192200148408194572704548901133262705096271578575555984057847382529723776350566274986369276697943691595183618980071209693145390148101032945655990670122270424263198710951567978684607086002708221564659709657577852484101728214978573584241221668594351627425477843339497893859420437567863616796020475898490613203461587877416470397137239089069546437133481542142269127032059512825185036731743636200509333196230977317269629934590931391920211303329042549832613406231325431765667129110400149614189813957097711237359371319570329264151754119478580626094892624257922659960716503715567585464563034677398449873482105690510582338911399843454368686926449372911279383046329832747313430353791607995654522259441900528678719480251581178471915186942614591170331916377955564615606721323338125395041337421360741622221532569874351947701206317672941730787639753689521511189301162172559602058761582750244401553208184075964698128286632695847817071955556202770093485109748135562361542535575461032649279858505558230628811289101013018576197254949199666946032811528019205682132940801600503133075693436564088182213765062014449530664249692900543904917326575972411120210849386689171673996464144355387483391910750146893781978071128001395989504107043386074897293791669012330448499084909399080925426528814011864539073793778259521404385443498603066261163773176772198994794377345514185426686505634457017501780273898438966253033538550345956703793795962733830797910855258087760988016299413456655319782108194381628801416462421324163654353237522777031336081138328171583336849188511677856941659213493635553943608190875002214230763092248717777315159005094503337701273015546595624758321041456841077600562762535994679986879356480354189622921408010516350972436914499511537334433139521923312940199053155417887187081709740842620971904121809332630696737990790481071305477050903197085302212401898520351345631736858738839798329287000950058588991421655471631558964986794207024241257435472069697617548276133655510547012583577665824401902857457490130728360146311964047545852127853723194406860200841979720607759308700910544789705588019984273442765290867018789822204955730654827049473714366344875357258025869452464680347744408829575519673984682800401016877060674089554814493882773020430546549095352976498302433192576123872428356681630047446548595823151883792248078606959241020530835648501976436346514192237244127894700876252417183785729751769808904815881915616123625222482963562710999920887544756880338986867000073308090536152405903246057038427455406924210415912046865932505823980275290543069117667822397150327885720213667465226934952459243302533223770721238817722128006493320310865717464561501602707807827198956850584963766992543659649040835196595650071587867921085576924681656330208792456434193053737032704171465992088629796651161828775099796839537634090851679144359905123627891892726505044943484812845680667882283991840243576257657068079032812163865073322349643032996863544861487660049477210469129675382348623960458173734921654124562212878957666248525258736970070160851571315760645772931703996115856792012694840406079671746161037393027623397848070185183352525271824566408264866660340361926502070134082739490966835536889227760101342588692134272830393066628346328484914213943216114823354967840800119241328726915973830339716674601673408719753441623438832720194144118386137672444597755961577858021252182602826680546213037184652072058986441317968155793785793158342078191005235045336107666140936986745043888809428414051632683596780531954579262678081679785429635053671716924545031390714094515436429923464371235765587702297384599996025955504111301395735093730392393224026557791067941935642717330172501191649505151985367568346720469050496794596164633072635896083291240692646796064492329232506517598147068593286364704496111946519384265731589055621942476385294404860886082169970037536923219937134897680667177682062823150323248630417797413024592564883939546340859835535668466398087834090866352501568993644173126238344697470794608934633574437422448929114223698585996882793605940538997038943018899627883095143556914755622191938468522794067028245612141908140063476804368085609460057646608508659737129319854014379702292312625883256374154939799433528172319798826427939474335591021551867248711772455433010794473020844045905574052253289593318488572951426306787971096110312516318735972447130793716470857510812244965771895876313275179002326494601591803448148274493968227490221377062888912617345935363195783936692783035480306651697268125901459267181498498523238858830253338989333641988912624540149166867274962954335684277045518900040857604016259573045724030922594354968164544641985414748357716882795558852418037514088109991162336398132840923484505595160787867438486943178952121199786576312841248662334266681038295719475301860968578464339334226554938105070278630388389503277786622451774420689089126778605163585197140183611081412596993885880736489941959331877248231008563201818819049706391280281939272346371258095405362350190727408503834855146719197947865565312436922373418841972782026514343182537506250956711792219412777726108325653751195007419155077335566320048487204017994879045675795823427387310950483328626535551657354494639365585607912215645135655128189589962915628991229845229225880105700348071020098487410448484929852189215812227267699748489567276877513674141742640357279348055322274503629949891295635140600914905076316182074994939207439897068440031501398215093253059907991211627820016917921142272676060724408109572192904002351740349186724768464229075084648292404868607974596429926768656597169192392604279575575039933874389864197019756809934087251830689222501203688537372933159275904704883673355588296377716422773931175819145863091886288175767111853319430929104417295282637359063153550679406955903930040297312217180315894984740863847665497314059601408238376725714972938963393873954597699936882383411806429728882627513934202672065891912289589072343257085086698733002490950516034220325136960416413480098932709955235137252792643396837168732896166105481131123414205743214911380738570438803591853600458882145938411758801703870141234506668597722354543814496542510683681858513955274453006742443481227053981366232738044208548615832712220607263521001952523885664327035276552045181437878327929208325585588567040001956275503447344302588535999014690690304144463296407489307149407627491205671868484695979701213230459378623730255366197908012658598895790309090253256704321036264197100204940006628237349967937778894764348530657522272643255170071782249532197287383985542588367507969568884783677769629365317164555197926138680677270543141466964362409391175170969967387656993427724602832403804543656163259335614764833128914644131027911683381720718341011552709402699549959385088959943031455242616071649856587377563550491823521683143001812650385037267606128723127883113985036018830585782240288249304353142806451425184941771793503548861386215781419062792294726722840809034327047360422342785251012027599746406380132035442245602754251166708692661949013751350967164172278581228181763232240095689915946261878710166558910141162835425912910356336657547123895579603834962869359298200398170619040512465884611521050619229188810191454734075395560300942223873391954564868752490108262169122212105630125731281645641016533330222679133519415642818120066631200966945307312090324774562138360750313665708525727004223579267705255885768905841363588389694950111738072066942870926051046416964584876338122023626041994527370373222797252713150201084733564708727509197375197540238877650644825993912824396669915241879495997397028450549923868035727299541823020675702640098673971447328693137963819478940243676261964565551933494589205151644457414214668758823919141288193517422325960025263615382556245941633397004641485263532958197593194925709329046788394936902555582137995144651491044696283071698032290667211233829598888818280936954786637446918571694513456615095110253144913626758416064398469927477679839334408266162160330059247371405240453637148808233985125088197535007256404097074632053266257874938971975365188712625368194111795096260186999859909218513234994303591040183435541778159150467753671769273433350902738735841644552247632145648108791140881995760622342165482331219499626448654487966844197903680218532982198411852297859277218237899000477991390800150227272380528389460005236630800652636004290958077030275705357042369400998566568140575106733566231261031201014144534186267974871551997052884656340851647863600810839649944132623728652443700493749243008529770141889986554767154930579920307783202587134360701352824195220169564173827209158281095601367133353778932889368862579379471563385958664641894695344932240627417988244172702270318682162571528045788526467400322751580637102377806755734836488814334939212926924571436821223973779509076634188874617300103444104143647983526437259830657294418610747179497429083724646831671491151594956318894552620511117008714886468112759762168241345099537062300757206688747857263077000699660713970745928874663890494722243793488129973787267787442811035068966241884328233793188077682960834874250715768048202252739362125013347500243201148367804249077864993397593616742268259947760162170305346495654584491017070016508716103782565541872550676312590353504765994060724792903788698000457439978381225138357786888675476855413308421443612403640386308871645551645499940429464615497435564224848329501302365229321108876973514977760760450612750873954995881423747243097400024949962854739609238557382599066332864109945964424714180653864786314899187619513246422655861612375685634786046023363851892024372862625278951932633650791052395412541990760825862992937341170672017961506458700965653087761129369900583427163658941067618172810584594375275109197013049547742870126481604388606855839394676857318002198548932376515247991938731223377707679145391777140194451912110235567602871436230373449707040053308660809192723543648955177254850301470961024184603441969411416433415120896089614790733432532444222988734112979355830552137540548082405474091826133080864187672806958300399501570107296314820310765540308355317889766609959863077075169107121263719435806208254861466170313252249837242662957710524392270634936654747646983801769567187120247640282594005804854178496028259934198337209331092184249448656594092302147854222363692034884822833725552702708588653149454802505346572127620891674644547953995978417187976644415516798818131696782223607715827779125539557808267244550323529634858990931890500140371106996383687314618637844199305150132373157479060966363382465194173490510402626429599671068913300063846788963579278318652963134721098640119132789166371999621148168485802220388028085233623494432762035668197775324477563750157818750909631774589819182987998206027623870990194229318572770833453672949389143900684116561483887897164171451139100532647462660436521445926504034371976000208494681103506149097130756999745477759342212763792305920939653454160754877630432017908179218709487780014616676587887211212573131830478068795774417083213552447618688352880491771393093957125121447959688688191900922044106002848872095898720357475319876801084065854239054610805561362747341219624594655495304698117161643157093922707334819639178198019621434379472556759810615647483984914812912449826699766820008541510901558747229721887305594518049848917404154561319421617143438933368789449488714568780717050911847169667679209924426598326178522922420988986781029224409003559868286625529205179989594650088814800751573511135769077974890087869926803216182897514635926976382247878402506810889183296011196087660527208678209142197318713529066154458426144203696773785252662418132084315041997337708542221979097115628214417560630682838629152280125853287338214110338314435921233017183377739581978365849581798968113711441298053808119851662797155244058030424211106940020413418451861836458818939061309274531075089383101128354698299409103450577164395970681675560064371850501744220251410330392669163259342907055257839144034878434762087897939141138242008365742087390101736968528335404836378126030462352174481639314437645168474237891713789920918235713703429654922847787970772968529674705594568308687700092059458182133704746542887760387337011100034028717186200766502789285722030631558922472521358462202955165676289166434245189055381121275689125884148326339919287765867595917735214190280266558823092267490662852901655138583726360060815153034475585936948518683766583763503455511593077777078639512783867677799059311911979049934077842242615725882253207446838373248346942464752676830620488823603462107651577146815116981069844061893061161995448989189629263282127665440370333147402193858415939267292044467044305215080263488713877477422074861710292705312872824534285294314446950534603308362390618387246523661652135024359537348422024643669916570159206362131196143830737552958885218107847420457135014414790125595471118705978788211930995843922029985991520637520963376116969718179764796688047734674108723012539987134148019456457354164618842924331865648015917402629025889458645137881958737237614300004053311040253776107907393036795705162843707755846606690255028496423849971740536360534757239458850675008287889266402912464493086453334441582208977519141076487257062883647610213896222810936669721168118401681028259313941912928451659224809499607535445056903496252598987393017693426484222912731396227926835211948670516546920233432105853044078635865307638279447580659354766211177138015868449421746751187723714109743697315603570983104704635861215240128086237141415338492640478374027422164009340592677807848765760297716941332945492756273506007439069049901944413789591383609062086632032067900963541065018307510100843845468471429350363585568156590971041973865887714640688700926937814903492797793871705720166391448142678881594146595311951965801499307983630934719895734857044664441272010047389295082812730556805447130053083668722900648473397671631602905299386627027641344338939769186884147329462920101200357143093802133943255337712439905080463774493428150383558588044801408596649512044745899571515026347452207929992216786796169339191733390867747278609850530627606539777514136826443806097839639966130745804087643290551660049698158909385095214875012166186511653132086764246031196033138993193415978411102035605141201994178235399089893051879879133542732142855204918098029580008546959217645696876737098135062150917564392229683123818865935188616559269490280041981367174660598036652984209142053171699287570378651698947230603884748797923548291087894798877423059770257454272395130386777221569895482758243217927562420307162069021969371635958740822371941807620326216742433657841206606824556821408927919463113954318140160853375644298391552046896303761201576341605413799300820446952746565570418049071392107633661196284705269823759352136325618574174106340296325366472667387565414538229837175300701369777933712996098124667812226438815905287844210874903444577263842482486123480379230156704640880332467443011643644950611676431002910145526159969009558216981951885246396666968696670477926021565254223344116605151162092316047158941768795690579274153233963387363959711328466584257360589036749539590685361193247313988454662028665489729022044918654547943490447153039811547017161026823588583027651247128223179527425067629404480979659761251362552160225354924762563120355350402553852137176182752042650033184655355182266232858061728770142302941403468698397999509639762745276857119068973818208060622836024687114872347968392371725760121837478773800046237775909890394542830208799245487615849863434574854310637989839229768348285337256640391660809627233285125055735667962511225428177923891943635818766356444655673366641257993148951034286055787232942778887630989109308330481690690967884794051609890781503944537520285894074625522129945214264531733763857628865883916225542461113253074555605433985683900261274763036286933122256996325469866724574126791765639433476388811184500549942144830765805623934920913610608819188866647186332186210090595461379520941314903067997967641098217361529847143684585859444966597303229177560568512972876412039229546537149254536600387094159868086434474528347936101025774175922776780144701400602495065552714930611627713366543982098494396042479307934408436659909890978828217576038411767356915254645475949783122699253104793586567883892193082300221451951318679519571134069987405295578319625070471243992291113402504971316404872848970696754619683269963890424030396322076031305496197481896731394987070244388694474191537105520977273249397923739202885449209778264107501909252917664213897886685417720405926714674060685468728623262659160036312875262679686679829260477138442826884014711915956708603419637827734789684439382656361897731297411164680297459009344870025451210152626086478832085984141881669425822775490043191959745678179922207132586565085632116317199742216889491902368574758226519178380546835349930047687776765711266277450826296868588124209575565405302102545803553340890272336209052320384689409754399364775952577637354813830809213392801786441180804720294673914900826253416647928501700440013587382295188569297891434905883734717243481738478996406466460949707808252892158629956217196481246619517728236070117710747640967610664742263071353764333517449389397233638252869999990452381364808375938529304953908279736989782088815788904414920816473735506176721362583963773157484750328717239685294873220091033314792152402716362636054391722914900103545605129786479825831568634150263982736361002845887068928490053529829851270762557400133109834262727480231555417545677035388971441860827553305990987689564784391091610690681175905660211803145727961565944781889789694155892792396456759856346260428257297129252934256351117997494941430687209480449560342472305298473353657368551957279681504019602625185080745984658900320814391867230532889323535930420086899524116731667774155550770563427817029720591885625277029633279185248737536806976959500822493185256224365971093910532704381422694694511360537524858227243937657093428257088794712227289587752301549963121361597285057547519488093158916760946578571968765828924241621270359016963567899487907199176794403477493559714723561598365418181011035490120497626208724601465816358670058600344624949170261020338181098915827236313345177523623261901071207129847079008661478105833239696263658079237628122297855812829821319188533541308878453201603393678875738089889768934113331424344103262503996699729272938575391278761936638012582931524227748926553895744664201079587304837171557912359640194744183434795082635481897420246884042580208798388905606895712549056852349373117877038182825073780582424186710619194381552151005607157140740763871278884788749521360364984404209651024697188492811064791479408427312811345175463648330798842464545976453856960081693168581885164529229630572138693902141015244439415506900888958654428696857749326770217420389754631608067163262590572400331844180663318080142926592827168170383750397050749989776232966496843965991299800947392315895894845697297570944553076640863072237613291785943707235620548875760409310740678607155698058384598795454408898736316749021579790770172550521683500933950426341393731881822284520854294545005287569937780330058501233770751588778525070910513468784969276288423523170287306149242181673324749752615895885761426344157036820432346257828682188703809922467960016022377349778995233115350124757023730136928877255976648222876394850818592876446636782437768495431250700924868197930089672321543279912090940035023011010104075874244042628802357629511802231741885922391991371304370064545719341293209916143060268857675955262296533404320621173331893322831685849260496364444332363627531745543403652585671836159634363054929911612926755477903348538113513938168114231156874871586038009834997338956889532818112624734274713334355811051550075672450832453149513068775205289600780043983594323000283444279710366293726301700940979253999682884803702863521394836037509226610817044931869892989474435515083545589484621701498306367187391501477965826439597435615485685976996537243163143465346184133664261893171805517432557827537463093269398243650417913594871189652181609704455307980412845844352418266119641679645068537688457332409670468026373143252197199513617806543364992208924667837427268998027802290170971597160787223300168580665054985918248651643622213012156227380872837466444897712192733859133187548857087862232832400920937516454220244824204034667464791948712354001694996705689582509616775066685478290318366181204973572367806154977350988781059062785480022168348370804033086378640842558965994764237323259176749946281471683389025363196864221907095326911577170124381270885441248010520221434616710918662827847370118062718210612980634742932516882887525172411919092130143161319433121537147872263097288718988128873934869971550892414487829245758522732446250237525530697486247335043921778764754812649166084961880933159178804406566259024972633981801261449836701843075841537568038461493316487666681054980494962947873986402510084955666570593400385532655669897231228256443849544564597353406460790995735725038572544984899081767986999833061475961210381216285643976982061780104008336142366464929764440632286064254396853475852483526089785817648598031715255450298170477128312617039947168867148587481690082875358103613579544332122298469131760664083242832348571878240280126146252545260398185306613264727448565715694482457754868060530271521595129400185726486621332812562039427855070004821784892509268047315815612469456042973446615720146122708290563869948911397634608585991258871218122090323411855620438308275829130175897904831062202318089954568623223247055705049945823079819859888635413222368675979499319003261336764625345972984084969336174488064475834971910821463206080481611379019149891556355479646162158167881849978376109147862770475743912849635945503031091581846844782575824629904301560261589064492562213523142431510743084567365619651724608521927017546191398501480101374641323519484946604601997901914650157399665765369601265307442947542023000015623746263460020616356909935270649486185500468510825507693553874361782473755248265958403120665198990536259056470313210544658688222062461247439114927841588591808153496061730039230798295332656783995956519740894362444711395930223224480408094795230342350026989302732110073727845062282738989764588767713204556149858125568744129641125250563776403257019935321544293826180756318514854666400540356612982142719016900129877703093652650687393885560163307190148424744035438227263959056662510156013349656579464990586529297239930279330490398289350693177850158577810431053345798599938656319354878863952134862387551459587215556647752314525674310483541244200124281959036741304712335333093349322694426272283549108471473077534507226770843994097129537317904272628794865540303382038917616921686250836687412336957406104861609117413252964331376468587388699497034886325285972411139419106516316595052352595967915576418648187312680351975683161074246460390997133711700999919592971543256878740831753910267053148749397376592767266479354897658156755343327156301761208725085928720861552331279948379565929309408691424162462306422791454485712508172087373971604776498692913922080777617369688805035451135739388445782618543344225207946916643052831084861017113833030383468976007570483215252322653094218540666590501990433841142786848080984099241943307415885156307241601628403067968414508846026707420396007584422250591803511518535285712371305466034069041707866102985550567567483553116179364847973905379360332875298960565776941850069341390762557553281916412614804141902812645187665923988806799501827477354459906963871441096057866052309828656215732282764088596838989858957304778337586216005468764436415435211713509107614180941928847792927986870793767188782286782888158716116222602638032838959124353010169897402999392251630535308506973367715485158793049795563709050438422478598632445843434842066096795227606397064191146071151544917818409734318687015504534931554955083007389835669573343253086671736571970537535435966185176013839435591363160891398129610024149126379094829706796161360448606548798878167087881195109128092982231610724240485980604309853884270185275820428159781133295535333634237532188429004560902637825187063721347130639141037126778139558673283042972804460569025906434971992410069698337071612383709784630991566460766290916750110962110626298018773475053385625559715498678807665661731765239430038964751182500418902000836860772412460274880564746883248267855190835313286173628199562453593237500097351348950067582156260040642954544861147303734861844119436870806860682674806913649897224547746889998319339942120340724599392212479483231110916307502589610177599951761637050144072587235261887075623000436632522317950736865129608365749638670512454161315511898304131278027965363726060737207259291714139025011336076575997435031113911000114711390043385676691195194903437115693169228968820166048549440538527832262689146305462452405158917938571617166257877868039391843557318547758039538079413322599808944131607362550708537631700064537129992087068995966316394406755021402874305068019390553561313072759368722173064056807125076772091867583091096049809353376557777971458346849593342907440925785392430651241846245676424917032674483062095627470228226120742934895813268325273827914014133869967371485485701463462571694511089385523775743300495791678680884309432869270798998016315078613165558858044972397042217762026332450016040034561384595073602219791997550595147504464518572108544585181436348884407377962945912645915199863204403755889351477173262065273498462877909780444383331212156516427291631901247020255116316084570613662732813157734943813239217078958431452340555031880395550574803147860765127207976215186215295208634641731372765795424482351460682401827939177334020362696029873712980516787961012853507716244380186648958151822657509770372551241149996810416488597120670015297369218396389835766207826054444003654900914328880954433766108807197936182658650373266573899126390726717145925077268263818975012480820318477770263640474230910181693274419010873087166810622796341078903624901823608366493233227109325144251120926045426288788571149492537922431201395481554681166708733473103071486877530536902556524917466976218427051405292308696902251519010155022141719748312922066731138409462202421904150630778508765471409929921509901556184109818868245807477369391496880062273316261144694511429725821485679783343555055451983363326714533482367421031695021970951748480387332988597668888294493999817479820321818990214717144132938557299343499832265600117924497748147773008500576610930401671703590407743293662829178724888014954543772919399657988193628184152642740905018963039851970198832718247643868121365658619067599525132184196894491764887799049699073896256437417710277813713640724228098573179274747040391981533259909178231893476421886856172275196191922232012786279558463853778428141355678413324502780773487143551805406668032367911771616594970757244683876824738218672355421333193609466930090205134833043389480955182994229814871637049342011532046418238669124177086312638897869629559145472144419184662556520021235297398192908830474537463204712664630291090186047238170374184314066919898177946170289003684549433922039273558523544713867233736209861491423823970950597858524752489888448880865748890070107122139400649841923767861465442266589700780036141461374462700712818339730145833576682617126068838695782242934972776276915516030345063371277581483681515492583906678785666459843171089503478224838671456690043800561120859742297513342891962058140631776081320469743592381961438600449240537485759332545837381530417964503982741361805410659779825461098929499465718393384596419362297934886721480438744012709866053129953896159991035469128167863058281853783015948325981112388949283517439323055212034208133228507318500289039676611082988999326431738763230504374949216078448263904716210260579836274396812491095086703702315299146104144938206121536982407212394776704762396240893222371790250065446882719226305212256415372248028153923018701741180796338961894582266772307154869163453306113120961947996463751389001997344004884569605460991282831173379773351456076929304488868558568696935420705785235784537640779458707555483290158860681009900893181010501570821158466870103660750472895231737962504751730323834858822222331213304747328748444771601622611977983709254581664409848843913720496157881955681375991954645540784903524910493657903676590652828537250217937686970137477805735569584782106825142140977156824897926492416220793924618704389462542927656919284370838733218010671281839076626314377627896043106340088540659556200293692966191877495058320989074323869469830649741491035951414962415437903834032232610754434228442493489618920878391155187692755244464156722602079944885674141335083886532114045463484611421223144662494403980604830815999837259873432471880397215693849098798350915828398513735218499148867034584864148378263371016965028470472625408175641755512835604172928432430878434720913897853203948408544242131895386269629718343947325348325026913804100592630243250401883244243661030330648523593356230657729807709064890443869500191268451182904664484586459841486570419003984896074485659305526288688825696236437523053027586375057875901131384722221269555358836703767142330338824886405239975482971421926614446542773884168226458890442453997390065276057333953756742919715831963299886259843945644224320084955049047351318420682765638608513141997700539150572134545593713389643816104122310875669032756286416186956012851139983823674929895109430023695131313996172390270468577426161109574257944315626706426157944016594943127867075308339564572587597843498176423299359548642242016574602231327954675224272672983677160454172033719425497486134727718793147188186503900641457383416352882016407593666423727525916134951081484919484409671244932843549913970977292985599691979380891451408888308911131502986688260993008786134621359623256780683115531548860856210487111299694884918494340576057953621472335824163240202296045559744485762519029709042293657149811161406749523446272326014800988703435554361707453107643649307997017750826831432626195306570973539769241490110174520613138884636127501833934749175046021355410506469998298789229389255684728525716326981422452416893366075802444245296799024384882425610486933988626460046874353243449847524418729229784803773260602079343431222013561697179309651513148567281469730035801501638491367468654827862563789512035616159754517689274542995150339573331660534266483385714483855507003848607601451955815753254320497260704513375912161328379559562361981341470232974529337616079187985856486436935130690795146934927919821571885904250159835446186404547579891426746623694340168185932837257987312952831684051090367482738989889244727971302747363727973792934666732948138099354203130847738664298404654290927694548771964707902989417644120547436729320609231851927914147844208018941049288153399261751083372453203761898185558463969047181836051378758013622039662176198454908205092425571942842382418293139544206509099023747520951683501045152878575088686524837358084148674062071991703648992580418209499338268733657917419473347937836865207814095201788235261080954771566081792707192425373306303911372646158224544017944037823488616111174451950200045704502354697914797504303329892567026245538766881338803356176852885671500640221076654277449507162980117574981229915957328530224617095750879151516553056306096966420542972282110930449155551946244046138150320180926543769797254598166801264166148478249601875615435309292289603025263145587045314940994238163387516489085604557660712272158463156738067521201351897889663460478393594907317759733561770623700184443929954634644897461479891159397219499935321342753974803584657555090359671181760439023281943451145955479225107974901230475755564769374467094178530796605635489187827007765148591365427960457303876260358408138198639095013452051205390646152414975898908188078515689576001208640414621083505479892447273253842404609872996732748914970945886623888632057518415426068110182742073255170032662904549081966281187177186921918936259339414395093246560684289810466689520734168542013018748738723823622126982219236237072459547415009663258640705502170050266876367598856880223606250643357642663477163560212006641496762500453085366611840370622890636651544285257614902056364411367271514547360401045917810942044557484387696733267674118136087872042889041679171247792524480551854575374527194279399189651421387937727574924775204811096326848858301474250508734089520620230488396335101076516808011200825573100850624676394243809976550710754555573616990033119827304984511394423116525526947569737283453741254958353185422988497947970138333359415048567083038604453269386590976725013871709726637679941161549199905140743490322072793274709448385218205013948600585067605382666041896690653660397669161941315297984201674103796811494570847469898754329498064178534515797960866166796974954729970647581162229214178480262648304895718113928583818418379194438652749610087251686678763639032345669720141051833166870750181019810439197023475388650467373254028143299013398067598885819182552342916002658386813582590334844188143405401956210747964704320918846862959648676076997989144018963843136797956470271058108222083703031674729416140868867907808999644323465218347539987817859877311891424120864778139681846617145197812429238550329413650913995055288399406407193771828202043280961696354608859619488408469552137475349830593619689257769304564493303347701965299566935378929354552064200433569326694446440219055523592412856840459589090639455757387457081500799161802049978832969262702044103960074506889577928889566322481494964250043935978569212070642003287168694614943189533030301839809919563982613644402861736029210996513806725751408302643891300720725578986774096795155373074036748460301428387645903183439132165336573963030982842731327031589904826194528966665129456111146089947873411154046468321783909695081011139686343557386639876794778455335153673131478998311521273272615192279869663608256634184180190736227635321886012322212397335664772530700823942157341082804460889875369481250566610009837831248356835752256212971977850496091260378081179715426597913865847372990237976150275175898419546752370159392681441025579694966942890772592287639244858667964645737865480270315729064895740318634197130201942307371464777382623459299959131770902477483382913226147937046347239754206969743320956539134250668098095938734940561013976826338957705251555651480318095257445149358320098850599347789309500554813971259994621372354326257925584470281767381962870015317506066817432415395788721795185062163405786336903359796648986681239163847038580136189105989291733046593478493664866518384627383237036083558907077624979615827906162777635282043302905127641739258358855345185110577904779677476356291775304250461021427479918445391795796869413653990108734539114184725135695957997295946183027835091107948680662999315512022257884154510313143154837095936031867100482539246296499376836024022875706515909081426653460288139076778555094271211202240079901067439219415211825554616881886842600637179584610670461116727611098791286334682796157376340068798620709235070520771519397671670827088212764457821874088513239828855047006858914403916791150249575398185182992723877207070791003012744558069911500105469305021925715858307471579433896032192981826869405378090525460481256833859188695551308371394947317798198078518499073937153916974214538965168832711013563930893834526511028321813491328757184122049371591144315561038341386071073269042325364703926841527581799800921222257049103843573496577459322449448984778847023083955204226246004054458854317328370781652093418955653773250847674790485568390854312928825630054542046968457349350017716977812819080870027468270902871110864285037692746366559270583731202851699600215374513797949564030382802608536921837480721175462307289911591202458967594652015126582917993507954729994371507764624130939676426571691467820420866405348727541742609806855026537286670488595404153986168228105554224011063418657764564164412058405318153990536500425108070135802260585471466333361867687188728254617373921275454484300924458283386813886029486931188064390513267540359095657763034765630321736872491016926732636922567848344855659035111796779278594705647354258605730634920770468904107639543324934616661208071316316216882776124268361452173962017818159147205916587638541769731697129500802200599711695896521567914680637156656332105520771240196411874336104961665118941161141156955192719952101458182298461340647200125864900963862462970756065553439121135364536852992825723446611455960973594536756750285803487977109492929961564976772040072904559174728753881596819180348503035053152556054121644958358344778218301825272883376806599943540549623515996033173826734749652469841588270135808449946193288291586726594761366430923736086082746303686827753635894463948735968109068387830005325499387688173393401548910240951013864369913539323938316560421648705452807064033956263176849267289561874828033654654946479034750845775051718965124428678241810155764345344972025128628271899054875393089470474015109819551313298063443718374696447869987459668157832414616833403709725605960965323155953458240996546950002392688919576304228611074831520038757758996015430802944554171519815416326131384290228903839158654114384389616548365856035071035601659005310774922696236418047435366224507196357899424104109386177966308857628916209889271061373232856297389878612321886404016990058914271111623130502456963164940147465473900378322153943297491635350549620821400615770127542671918497931803298406414739606401748743157040747651123066097071412643489031260267234058371725699182142082669794385089112452043839687863846089216604866565050943958582193842117215409012667829341303040283124726764789622060271836677836710555787040579845426996801110242862862363565126636494793779803279200263362739955320431412458657149574393064156426348355245570545650817342657035500714369061158429633475696991267285030175705077813491302391857904501563746913952572493144102278184992117279205989359911244856468970017151644711820407798115665653787599595656810616914694440039839396202163887990748316320264863400599394166817817377949861066779881872613306763063725345174160538252246588463736753342354686332131788221451279073019528124536664220803140279464249529301970710857966979747379818945386731824007379271115339539388005827109305087685587972650494883773870189189594684119501590923628711948519210675542911556456118257259474166518510384855679633645119622192055585259856788183986239323659185132522397037255666698601663739867345699354440312989114381452692936849968426557275348622145816177644362972213755800667209170461163502016178815677727941633937094237805968697285238697693643712917178426572173297717484644766916074307173672165157612769954910547651264507933282797244694619586415633086625133761461771211004669581876517247461726136329455050787826426956483663739704764471231448931858874910272090503373448925761417290059337071911791027980982119318898529964847647175714563963847170517781075354469287695336170080509218746562843511535354821525136880508951973629016930376132968511757526773126462837885309165351683101831620416161642742739738134151951447929155719281566923718488941811295499813894499939918821724522072142664136156056991302001736511323382926732032532905686888185653386713235514652723443985047198906134677652014237123353074977210047586031562920186818230417385080308405897794118114168442960411242125012171821936585983281156508560557308865063360628668086494152227844615053917002036150012131626300224807707780251849384869906003275280830283638725769307490684267858038203218532570430840829033226640465616886046325811140821068941624438647531816923538368588528044601961276694368353257925198388218919226546027015914277733338950373777919380479046040188843147991099413578909565086985263914759706209239341675251264937320374094422668802570889564186566838054804193763740547316703313077799652462640820213940646560172308284148723960893437741717433895283296166269772132744448978698960765445154208708539247859050650920202998480887107896815256019725703994969488031045837622690578551575462328811568581793387803660668447866632591407149591628192671359324070061744618797891251643868981001428775603445294378371361275385680837690288320810586689825734089144849919035414460789305314180670046349536628960875017560780047409689337132169302950725655410524683806472497505661713600511804148655756866588226372581992120875561654486861510655837914569147937084079439784565538587479472056487496781454265894275577836042739578492774996250184098643977667583221978251260544999229785092848446502347030268173626311109611188379885730533005762577619187381878976201994073825146835203616042557510317781965323794152271407957300259247905304039106717044942503733189516738092544355372766651089450203757670703125642487791188769863221629338589270502707450131060717129076998464229291584459570241208172510655760661757693981943909610638494901701256465979610237423139368926108903877903499861760489445609939070922021206045225335293494807266335608039022872131412445559777830508994059352837745820512749453102502189742655838636820557808619496695496200184387210385556778809815972495482901527662966579788381885025275094116396383570151595340479642446646016673093342683594326099591446302247148559693024909383078511810459862889087682079551784717386945633438601060239695528533154543661844677283309349847164871964911878108871470579006201033097100896186275990445294586167667467813516032944819179399572420541664462163603366253210098483743571023254489833530338256176031196413879944645363925249475713726075124301262935934471783798217160417826879830423510601075891983437262036502418722223145583841134196465461828341919755240252904285461247910080963169369453254125028476252155611056846431579932941581842101951823765590811142265997214865631053891576439764839125167398563622298520464707746631806538168404302891741034999416936741946593232534326104139503760639416277313073824047903639756818174192334485159036894473770919998516917766512674956863241918475979730355382345652926017500074400689975412180480777539523523740085499318641600987107219398510051826969995791432976369870593755396020672072310071558636140734551324342357267936342455242855554624754222854425558978718745339065431049738831513151253855425955095650570886323563768635421689073711730123263409888133864835231689074335519425718648034821549036420773097353968293291468654278018531836082499961730495977093169132285876797320292563900568680865846448450675516879025256868876293817622989133507262441141948462957083027174403244418351325225690424802883019364338693444717485312880953745959828277762360387366536917206797414727661016792011293098103493585100895788241179075947406405455041396539566739697755091258897457245929134087635723200816659404786129884690591954411948582468230318938580168290720532765107120075079181176027310912748704079521828434505341902717246277006736640786756582233575382989009916199530556057406393842580202897785367071500123392173501780988452515124096908594150907858553560250117697974068372770233727061058448426914921806438909230385279157035042841624900978960190036635004952003612570442013952495087540231385943029415236780368687050445457864309608685050437469153729490302018865934861498620009370821867721128829454540948988556195640445580649818960778571945576342520324275561498266519184983448992732178788220868929140256504734962075181325925027949367380198487195526518349164564365916568412757874179603487470659104378989307757798238363010131369876428940821991173669816632851632393454234328841381145642856029446758353727254937957385685197538197410204141705262515075135934057194211171702930684084742237028065774763681648422295999279959661175483194632206187069245988610631121606673602471247138014687467907215803921131691638160753282164168322037048077959508998828405400635499218396149999690342350568895597684503625458472565463221778935456550762836036908602502375127846858347872367187737885805791595396213747299879642385651077699304361589890990719104568409799507327211161238551169361644696815239625394659946646722349794480310164859973483258630193936076079848537845722366503566946583018639547743821693374669491610433863428286160960261422032127114190783970172543221518850689090463206743928567378542243653837710152555712442619921096289736663273008691881709869173485800196358194543240972650158043267536551973006587549708623090812966010340886773011348226786903899933492398268968817902885121899276858677382800581187863852173054065687327995461733874039942225434619998123074287830980734727741902960504242956615106437972761976846334094084800920593438335973383037909014004355658999410676245118977564139924167165098481502610443809652180216272438139416727509119772685119801053176769419713717013201922560247053598467407222969356463652199496915445065362357620564945092205572713384826171882186382808123217258114988183708071296229297956685504091047190603502441451702674281900043591722195685743024925445234551072589566123780219233317913000797795010470987360698829063407384131473884743238644533583815643518699692900619864442233239171405946553715441290976490513439938535265066621934685807915968585579955782816674357713452227014726261429249999235619049715614168724548884218167938807299278104574713061121780811035995156525492886808047260277700278836918626243387570880660843003992418205005508711707626345868352644443809370342726378985089973665644105149721532177489610571611105503149888797187113533620559811546647705124138111184766191888278716005195009373167120041973275479923946172858187346122034505519792941896718165104761318932157637632581661629830473120822778654328936458648703196634896676543768544706784539625647843945184277058191155507547682360830575109139549109199095451507422366419325912164364818288907902601339276187533378296596166991695600526409842884934152325512531453831927455171800512013623739353232471546142463016995864769575603961701226166407414663354762242516558395821298270794142684168077343245346033418692770175321412182127212762890388371061835333221048838554275730232971057706513130714094398348355904884422301570072878672269888204397526455877513696403220030930743153554458619535869170197567788170558779263373185738778564004207953786922716757884453947740813424150934743882795855793424959464135767481302998110912761991750274827490696780607534723319418581658472699255054916408003121135339159405976889126941272785827841627034634229502866185815779334095149328750524289012814531702602876317564772566455035873425328743410743459741705947434011693589678398090415215665088999509036885049581086769085288057243097961426413412245736414080115461870168388482530583313132949246588743751884968178885357949336748204002839875264592581756851977915499147285094256908056503542246286949704815663841566341984367310899546798246604600120765895506301884618726853069628688804988457936347813727020320636472121897926469515903475783526801244518337476054643442910842417654010299297169162621194390991740316258278849680453495725545379922983765713984720126109507481249762146946985889651229789303266319691412568656274161823699762559135524515164143140778487931597704440491249387145472173599835326645197926645424621452110480208022158328188794649071525536744235290381574123918636583808898217996215891417320785538045678266017415612983307382443547225763545175662566721054200075409034227609582358567170228268773790373358109815158204408825803208112235450046421302465185557606194020697184915685446910218208117141770918940300081933597631379495240996296232591965682029718958281598451827470137609065037963169324693169388956470630672653129822510205386232133444852179435430085463984394643300489783593291295807820195622737465166467794596982837995608516715333834520157478014435822407061502894140553336473832814985852394795752644799253244000057888873900380240687785236986501722491274565705211180619328400698380361834771224563787970652637905276892467660001831096465984766384400310633609995110523657033284788211786908991249320166996708043458880273135357266304518471632350477645555817426979638484925514492353697354572564081086982044760095434677856545110271940750700114350989707468145970342302340069702058320336023095999393677169319284177537295605410801413638137699811386377660582481224837327969306965845796560607969059601307800460429355715472398557063790067226428479593297194753050389723011963578931610776514612613160875669954328310439023680015168229002615581733081366637298825556152196321014084574762588290209644360720688926901367218333092531357857527795266126696563215102099492483268656059225939958396794955247762523737147821444498316792884741374963649422800564680478271181541483400768069751129168049606260600697296888093214074146773479352603452235439566882085861083055413659499742190986968621816915390160610798102736756510812315890870496259129768392025211456091853597285544884382173481309142118680300860278582386053265615101560514582354983823772959663615654837484846332545699056313953818257951847938816542738648679260533633860838163763234581836323759155528557228333511915909417093183737789527932146225157412853030744886626253215629056327281181331053099447651726760186525585254327968332215993210869500645932429628797162739238866489345729292183615102237741761645163388363801237402153982852598417822154265288140402883520723392941047181322933096792376197941978935109959717079293436879152483824221093569477600481911484820286628749941465814580946672062037178160942546059656268838391503132998150574586254243386409384436374961553514862209482951210017783223070153752698076049582248478113072232241894214467364328868718949800544288757753509114099225207095319928683624566434482524329988350689903878384961631758972326141996647099599336194177245496466849022124090533159358027975866224184956034609666784935382563733240987257831838061402830075551557809890508883137765757402545258711231113676499430025741473312708073127183900659051560138477221264838209787185767534091703599490374310465742208068856913781701889269614905418006522873281733845644671447824414624100963130642756874164205395708526432004383442703217786341228660001392348024542827000872064726261380636169010406557628707801047700698630809174021688008748011846711812444910444782841795292938576731556917308563885875309409401929083634436721234186979207623921716252091850172071715448633036266339156279756594779148539198083877368161103727840527728333904875399058394009129541878532873153156562775784609031938162198081572681239083920307129442113148696145148279499226759541825600085571243588476844671841956396322721461460535813970315466754159963639887818068631729515839954802658031639292510928436888029501584370577951971836723950000417722864673296045858410272151387102371727106097136492616991832430706330851540003481995019218663143999286097878606117241633161883067617609340492997495242729387278048292920267195805406699545340786471999451285325590134947266451342210212815826064023925500741695409994015133177658264700360393298827965064682904033219470441891435828412467259575425370309075346148192410858116307924354496122499707775823420321141824490452961008309597858371960345405214701488455385197338244635808736085679250437302010842175875777420167531031475535664271052922383461008685138576914105629928425960072601839475201990726538430477920031097150301097264502514235628977612699019715575878752921194950216949020633784571096029583403568989601092142660109187610269762434207648604870003368976916279822905789003368499087128860431736792745297535870216136642825296065456825836940222696748431675879071629888380017974566313536199988567575865196989203204462786956074862850309240762394783661815716934961598626461404351716467075717472650202053710562372936809871505591535673560048184729682478015595964574923089979203671444158128676030677333048276150594531540284227970132325801470226587249148120940623840191614722822489231895218545274806568030353636372921734425986159124069503054993276460245104167816901099944951758717563528031472298356903888953134759806566259378564868476352637767614173456697192024579668288574778495650611296051863229294665710352287583851005235392216186370603550075825782503178261794151863939236510842795893460854929636363191318696082599250284003375912560265671457097220529656381579801702838451407372426672575277781345671161291297190102693810997455626678763638820913614915712967678057174320013966072593293173743699159240824438627980496147097105647436972606089301256509767913862027352541114469581035312659452011687531187980012504885123323513681427173196499178594124260516450508760155686422544769944850245329345594239046835534376757380864428702565790957620078960926680281064926295032107870819367137701487885052325900363317651447993531244841178714518713520599903200665117787664337381161097925830447827943574615141426011107428352502864741855940777357016635935667744318163384266069562375676710644463585885144010340009961701133525418696432148073660460694058273619474799902578569699253121414219255507745883166049310540171161027332745501527420962387515673678832306018089974160197532470726998561501484254172019569509249051639908142369171166313941784957070577254341085016858923207933546421480653015905357028340246070798631554349625509325927916795255591237684344913072367970718412591928099922144124485855190974625394407896204844563862845480711256125790437220567812099334656870399209674109571330668909447456372800562236574177124560616541407506822944574984410674933297556166242913213829605203720973805654579485667903827423475369406773587509931730247643172752376006760969847149111448208108566917128474736753697570016415264255077154210074567858945394636284668424179986663541168937779302903517914104820908983355356945022042422394298506917525013562560390961161749265694731961633910297652915363935387622311043009186847289195094913350694696887089478731422773150196796743686040035490122637159269329908935231337561365488118658396062977112725626089938832700285270193589047563983259226640809562238999908137050525813444668524493673159302591510980282559243561801992014903223122359952786793018236604158898168814051607844880596953004156776994815790256382594949118098521702109843336459256994727984671013289478194685990587206333372642248419576407989549063797553129571336453133485503937188593604804011178227444100774421765541818725116735398128138361614548060983669894522757781938134891985092153797391374064908440911692439673086686597999184879718249620850114136405210986474937239825315592642554687500355358733395209056320780985203134838650512520136502925573006698741977068593811934533060508029215750359967187799286043315169136059922283305199646676675552908987852542257720060484330097260266336862632180684956861696949182968788428331065206497447102138836950617222559996026939453785110554439017012098660052265910362483000806735932984752715206795676790798096817332463785495099677220586946597149407682339317702607182452747543610447669564897466130798664953105831220620324544766243201691392766244697016630592480108025464231174462010163189990695797064710486462285476972754191669713928434122686789227686119838697050912036617540105325215178409121657371707260523361204847056432733991000028201127774200242469067048373367943035380635392035747703458856385101911561733999974946017434381491318568143831563370040898420245151316282651293860421633983075857314394155779714413604585951390837840897796506464277524921838647862451889668637331029100994774827663135701247574886430023137687747787206453782475256571308179824041070092858417481130381017534601385543145937145652677732062395318581382615598853658934745189426995691428612217125999736902663224734417973581171176825081134066759000213203244100495292644430763992513562715672104396072350638392070646964428860507514056002351789437155755884734075780565322491435192020638989768337631445836905521896899665121958143300185295757483154090467418511157686617484815391562139589137208110234695968354951882572653443083731839516044185434293452642079483510116090667422686209243273437755526961767660425050539191513257027690526926618711997687145380419523506082518775355508529015812156709196181812517247372417712836448546708372798490538444587618657770854331792673314141552480005119665240290255365158386172786891691334896027254256186784367256282963797874357535111926992223900547736149220923197383378300749820521609847374622653530220222535019253962201594740198286723950653569465438975684942017681004730169054551848701930516399114187042796554675490318179511714784692608414590925043707722193871110519908588259666032623306662296014093374533435012146938442577396298334022342446130040108514361590637669641476932100678604901464253490024954366975482425351147529001357449872174389663530243669022322900276807781653393453037629884458302207079291734258821785011494008466744029878597087071124370133157147264953289847867016456481000388938705529186562234864537754259838318910226690406738980047541623967449906217683190320292763154142798209832892993298340500905847655605832207218361280952975616562504716186362474268197935274346391161688550455015542804422160170891171119556135311898253135164146635718985077834835037228267248783568613888602298538617918606252159350900941297997642171399421422511763476699219503937007240719940316325378037950694486199876887081319597794911346556720711138254343062715759974125457987150981338271227658980403670635669508761483705542663129230246534121533326897723881486759018952990257509536818261401496779027037591608914454443840306015881792390395713695268665221566942838139669007705242196608530900045978778007637604395611335844236446343066645353624511520254175361200254118312465123513961506606723691032550688803909433907551799932055687481048709582973500414328992991169666348707825581020099796533538562115365235688886047075604767572326278949162400267492836408747926561307743014050343912845288695885832034996069458592398883221148170384378289786600561583613898286214756958837192142190772429878556699702363574300555225982578180901608662886126855231016723136669845441980476916856770697300405844409333718411182898942401017301346378115037218583946144568161770141787541277671568797983603146480930512296974715533072968219780593534513163075347548050862148707310185941656192987652478270919156681392272594048590460272957091573934712212124623071226506967566916035750752088833308887580464672543268619034103236610686109401506082773637814645504019365877774816804884181711904377397913226616187180138312399398270587461314683953595715041565708886885206476588048218632167472058005765031596942811827470617734076997962954669064923122741180060090980880329254153467244020031254138236922410649188325222659746251302496001113456676351336332819163960546583874785916105019020882949934923169602027400734257203778785050864766471460499670527355977967474377752316879725974315782677217667206090892134083774587102302807690543665326405457376575162137389773459072572494433687562795174091322784960536117710418142095178680039109511050105571293222243640777676582708956102305238742025328154955815222200274589163842426269286179306707859486013252952821048503458998937451693263870131688389577759102933256548173151888439358288821337759616316285892352909673006816272639784618207972038326227441187472375390300327922507916706066873707999686711940601201917379031741839963527712132153398453499141875175335424893376123728034919571500008705223096475826206315096446474205165317462896965880508842813025279614627882405251400181359668491126678736011845507699265872824798185675590828428612784730098405494114013902925620859972962354630709602230373206794586462919265896148853367716390911018605693242780477504474581820826642676238329191189591978144059206187073491505965377971704067205714538650452300029984831896340292042479504343011569760759414276896381097161327657907782770811974931677128246424832464961651373621857032772299573671817914223163256914915661447490547913648459797068505952310771542193931075157164713783951966403071470657061559430404998773121918056433307295799460352418832504366990979458355901371336216016680775915202326655581976396306875343557663445223929219882945196367170018900890090163513810298424076804301260679983218667411258141669822178920134466674939391182723322414699740688315964305840387772276363024655822845832499304792713374798192531893411722246700493814481088672600450534178552024087822508396006941585135432564422235589225712914146237038439500500626486489403402762927798028515249923439129992843689042626447844107300645577092825751602171798012856920364117887522002368120219553700686527923740881419802090278001068052510669863053584247985228296009771581526052564585479632050526744900511084895201803354753273203497937890908072137914080684806399032617360574326467238071560782134653768900453804801117012206742229358298445613773910366306038746288664481777311275308761249926342542606296379260397167143164379556703081460306208311005395032560814122827045301383361491819790957256142697989941369384184055349642989717469021982421790940205505814895134327262580304304943597918757363387516356636555809285202269973335770158486816492432232033588798738928566972490416404608305428446113989545105196575057490317578365935195670697531697654224992348691366307832326086626950083262383886484981219485910279775401167021759075377097286469033071346744406172678674510964438353631700442702845735608713663553186380231982385580878322862870914268493071229934388103575897178488369977503555659319228268793131995425687304569649307513100139722913671157174108740273485512854219412111939249071558669582622701137082540960517649699392767932659106195399969953350448315292634597216118972590582883952696808134527310631922335162700206820743427813302455530393205376091161889555123094948207750892529943366175738559579845508714804687460149701314931061890571880332601737053054882389344764263022420955854827258021758271054557414791543483607577849994678843572219303037091580200170774005921073835283987426987038099298735820124844131147079352785353623972554575475875586255646715349855512841953081115382815338292199592557410001184362494803551931095574899312600981183939170339074522487032530218899901941321486873740831258715389981403216469775174595471543329402323225392336424881476036994018501793732022929029964547180789678077109630994082010672921830240718543724569779625178254014962830930817351683405012079301616484713410989100463744167836189190690093520263998694530427769981321019978926374511601220531238165116932060121426835476437568722899975946176620248583565511477760471948211597582192173596998497440941698264786785008055562592623523319812629922154544726382053643047575995244784700845819911308968930883108534413733290078895261120917165690358359970491482518320888029727635090665314489239244842613638673075530775415694301400142128937011642133027160636620615327585813872397282446760070151228731976302751585811822589424010810788814348441885353279855376296993538439808555216492263955940399600173415501767062953452511316411014467910326210392107452405275001577215899526118230866598745200059056470547903865446310927708967620057200591828189051887521408487812831209347659106307103922984783146844141815734427958630562020222848701737522920242238410110952778108205100618852993995413098313144652733890833881634382965567415520437605166492640262357135184644020501837027578951237324144827112100295224936088212329373626408230909995392331862371131725394774764353215502595883567249226438188897519877578226473049829667682123094227989124454647714308335192390717672262071180716280802941389816683975023762891346433817026843310435400154991550485849092606454039367151253985693260340877908522499376364651701536015203970358945956625957748788437561294956659535206397797000583346671774358739110326681614849564601601119217528463025938046437660460710633691438922550635460893834742455312904736584985898641935156843501152745212726579912335590009020127977646258331037140446836428447427763812421839992790156171542157359453178083995546183484663854297761438171034347197904043473361231143996405501098718638127651794558659238160736184553952851349574377277308386953252242348478346507731999392465116402777565710235547977307120529255569586051376227129275185829805832027263621940082514339500340709337512483015550356640642394406776058221641668805000198410205723429434036320402899950836776049141486333893201805660715776737886853309419748395184087859051242413705793583083954963043246824876839679835131081701933463281189210114871830074215710324569766477263182060790425138557686148384484667999080910396735910242775461675605242718247905072293125516084386883808466196351734513625700667771193247655761009116669535050398284039164787831804010358924257558992458970214766713945066859847556295965358000875477170939754905176648744315175138190750345090047291665414151501532387647966756171311232545875828223222483656437982517818932419879084791484729637448922310247359170277345516814819089718076193915361018488487577120933406603188745788128883440808593447995397771341768221726615112652984529024591743218700235888328004059458405623924468730691307575021515508405286392208952091028389997209496555308043744216939842108187460046879963067861048482279454025519117740732226187376215618508190573350328181111971586386777130082889980036169211506599297645130169535652874944034939555669957065650295354049153090408203321306614284175094881196699682279698914376760348483042189574337002963750162510492552171023514022637367482474444028752979150141684733743650625502057683216933374295631692179060710154413134457425338447237025689261481178496691327913049283305027614620585464322877698905969547304809202613329870037542262580056875542973136366608787208070237460254151999401220086485129807039027348871457680928211174710389105528394670128713407627158438442804650406531714791921116288741989789409368129345912235001110073372250465023614657942747944769873054692781892533488827315034271511050365009094219832397196436976801201093104153083785316198090325859985949084908398761440702576905799396748588908493372367609633912704406859765779476184494805915668468098217797775073666288565329819036002799554382179188691404306431036884034526483801466480874337678154656102607063337929928092152168630444686353161568973090288742096563480879886580763793066742680534886007677716490703455671034243007175302682379601880763920220480082232275400056153252467386604231260617971339251775685077893306162926390025862325178225440277292892119940400240416311075100295512787607712893330499439451691870656629171120343818610654383731650577466055485534836340382728911426076972838462359979429354845864793722166768010904721144076957484197180493219908116685738746904040357627341099790004829146045037402173334706256174347100541317282204668728444703330544321942756054151012533950889185977286000626472207319357677922448921480080310793069757098400076985699557113165685722289246887815107831464947770929556217351200293465778580355883780099011328159408609363077268898289770155920454581405961252973105359483521017788702379040404457532400609022827494707749295357937692796094495615305205512169374619765242574126042416171964861106511311374887041236562790325295058852738025964209474791147816905629232297426594312563924246254017390619963360613836835032284585867435337900462075397678775684119939474694788362949742401133161109734905221014454952046862298260938941061603322370601231279187785510467147179734599411603044006168785552887582221034009664696257757563755795293085976793370980944320298112428737110129303606272143162169395724057951885521931669869681566800093434186739716989863043955803022819682566803069670803897756795375497504887856760730975375801686781728201546440780850005996571242172221141183710752703461121219036390761067957439140134724971412122526423717757267902185193317107936262929652994014533713143227324579594168418449441110217380585475449851641213862075976233248768326071530190729316998628077085486878862290317393405581013783186655274198161294335701973763124659636679750518822613271068834368660950503454394428610631092392523585122589087267368233306369493019795254478718966621769422796896103120236767432915832282732848914604948172636251785711497973421572058081789785300883942326275338742715361380142511813435855818841934553737179327749323010174745718314980781292387136270139370519579239811364537152993346078071908970724241667291681225661017347389600948957771149353296756447636270243241435488285765865949688018373135912155139891275032625293547689884529206221406826759711774021846576191018024825524942631706596893957240019454343689043708138459900990654754839436548076326443205980993292518966526780834913512961593137591459684574173856598919091193843800393204145631201701464536129741647474043736459459570406334653121732287447300684952481803898289786709965088904531905257538718151828279847168281524184877643854294697951256649145004734282043594435516069296889336432741343217961080076703462066487492855929923058878354959752930818381489653242568869268018647260925643732918946949277674247135632318686489762052027991162202118229553128243543628177184092250616998046565467259679382198972073262963622420972509085756666820544315084242595252252178573561928723363821782835721429077046598911963450521969820690462860546467833103347022900433394209020945630175999477598864151762383965494576556717253760005424667053167802377736870414950190093298451243150346560200855033559754310164061202244238812738337166724876752985429766507269725523625438407555353765845445317330276504543895799598206409945253885937848315086961213026260586552684346692967194124238590370108868425150753023673644271411760087301317008309020782394612991579193640464266556875598658010227654484332211398867789523057905944679156430252677719192213198550983734106142160817713617607022428878525839435822328779121764085321749041929449931880146114573535826012657508601426831951105399807694935150203773287516744726724793590787239491999516210013708392095653534444248541895799447791916058127302536968675558016023209654137140171444359877499501862638267595848678759439802810428745660878554411103497200408948875499191807435329513186889047817273415452543917204304768251471715678283210743979537193206310134909392481091845946603464024836899586681097414755106432457551659946433054847072629380211633478221247298869650127896098942985865727527408403876091748193583162893397346714463092940727261240050885635227394649228818293920114830023807974707500147807444290817130899861706129506187005039325788389426042012264627566246916954253895455346639350171770991129670764678332128741497576359368022808022318979204272072780115765458012291864383616360909620391307574523165039024251500548384602575706788946012055894556851007996867710520507672741492695962264164670024211946120907977997162848054214718160137712755202429216550828926272069832232763110318718648738243227118312046786514958580040622366827007540433441749349091716854036833729308968363130115155678083648220457520304214960371109840154675368221098167064160257603582931706366404252371603928753049929875499477932053459531174391773618917128791916577663716428306464123746013191318754990356645841797545116810292279745752734145543277418072937827791950566443776614954341583698446169691309978423611705522238160764854031136692490248475450264475501025639780978203994540209170033698020098819845981606168085986594181734077395077288416578923609437378150243441140654455114235355901757992540924819915706745999571953233426862917286427214007332514504884107575496956719308287146265607283968215241316122701180743001110513858127282560685824868765321841052285165172065430825975548388388451194048932650192166202046980127021211341272192411393438613336553282883202825173479748404740542429227105021267259359014170041424672166234013570777147370770871063688554204923510485652638283014905134541719797346441264203055678577114855836127818983523169435802090377461951646020198385475168040115297897943343208142517865760114017144790859331274586150414460607382999296950486049989652157137395286002713022438064763510875398816187971916382619391019991917338487609647281252211015744479130064046250039854679022556317061001898025584773466621352514056419010836913504832925701845650012792508411893855503148445669679986277878953860864684195573484067136129680240834223629775795541453940893109061181634987491020398115569360864110303072317007724601805691084332012229046575212703112970800035452182994456435641990494329754879510208394630060310998613406959523532045233009566225185858051554509827417404828236916822909659499293910847357729128314821663120366117479691789998849411188543835973582377514151440981490904339013307550660509324891887149978865534541991212592141834353656313524700643357787386474420181569104319262299998420539243193399183966249812880012618951532661138901355474082912137633087229616430583053158544107265035334446799772429976529723468465747248554523629790463170360343398251888736095638836096827831967226306794708980775617551699830747458282042583186522955632415045539215395179901398752095901173683674372048668156437479709640798814939939783499802528470466698385933134561537961990635485923816582168892973640888003406210093172415061615174764247469181164213030026672135436811982271822749992497550745584125144872657272905036183618784140229473537707337712772984859675686669462481091400033750910486978524018421361566041264255597154752271157773511466782832046266847698300391881792283697607163056639847567174593198336320828570070627260886533530009163355622212311676187484779028528343163128459152713589674631587945552920145848380376859564482243260913109134693918516484761795245062378944037853639737897179037872415825262811148287906845876220397744904254657907335065079223165787792811585283114084062313956741299876604153305098906826525553706769855461011277569534986101597815683621153793302145356100802221745186132899415858624141756004012383040464791387045277547672468974290053476801891027939620261171167380419879097132917525162147536963891237402074543126929095501275031979417096541307875134083276260737346409914796009705251632809537606579058229009392687820086720964773968441802799046453995396999752198158654407871442547506063484222122767920006805227667782724107691232490992247116540667603124584330959064860229752925247907374427693646917512185536282280128052777076548358211304493753481348551742426841397356565842020011467281999632001532904773971547911528956786606889682387755393978037560264281202401390442029499723260997640156599590138172585610365708455057117432045223234770120656367284929912448533489585772838012067171646625954510435810623650308808935463158841803662315306600329465934478838005569213083689548748936023341712695413999550163553703208441652188241027832942541818719563772029179745853380995655017002488596407494257038893016597703398169926359529046485304995633228066281372573966672567547233203128933198050060617290816054947800284746629228821030756012438745210629244366128089022301506241242085398742794435225744241099091133478508528029541060408033310828419496442195016491565450407712508569517652254914488615583894150902024649586777016590513098975498426135273126517427689108913278983977005345495499249679633223640272321740924946870806487446123729754210982259590387864331794639390867285030379451811437660851596189206935497910842186759325864690154068351433492082892423433208562182807929338651648951733213007315785618736494151723309661759994192737626741492869096505019860095409104215569550879653591995239622593586084804091395593937354348282730628441316391251716721588331383460118511974544615383461703176628740092845875807266544740673787703162776139056670667553067205674983662029178703394333515836123653359406477402381350726316462061890373586146068640965741719147950423590843799254929304270700132349408101895834615243975651515410931399987284556103922649887362601905265160467275686573507635833325447441702349798288482419570311431684479817422198068597492216718392226577092007913759135256645876448169752580369278563143525710898540746981272586179097911301785134380853077441662005576875036675024135629342137624576343509590827090555840391997125718967307248155882328249372182478427748577385853854464372690823745489662849444062106068195485599403057734678894102918487323622894109606830419553116895141878400883749299989071554159064729514042488837678731084650668461402225450912391578559268022084541724168548404743103820229464160837487510570288037358549938521997272107092851731113487488593522233956846469441905863013337657191244656815965082003062131708782185787933942832718787101959246450686482570463193520828926302719224449036234491450697596988605648260025582979424757598406715786150126962741856323895924515851477279006237000850208248860875699273003397862758152545090490093191780544739591789846217715710320721652599364545899410731857414735903096685672165419473369659588403593890608954826790689467460458757668638043170543272132105784550085180261143210981682175991024514401457829964771043236852513856262145130972850399211494593214705645480616937354165463248778407851656357105738708844074070273631028183734473502769795733981884695613058028518522318529635066361520994743704640841706870950699656970164200804300551916677648647898873423240632314645313030698150299732822873143032483853888371939461480549720694884813511270297451793833185321430559151740405010501659770585258026778912160359750461285671147974145511133466530347621726923467300136041797821416578206488052178317868680197397606977384952634661769985950132901693123301269776710859613564317971022768887063808599674942821490457604580599483886017409637431583863061297950984586763351474457116793717477175126277175778440186576224039482282993048870445477622776342268620001361939769408341569007702950776385289869770682349344208006295231634783969194287295318181028298234321794554339800957616080348143912486415176874024864165330401540290534640715705864214719505342824837470855436628799552625825917646617738587936806062012976955274944619013239418510579376367048603096104335008422787009590263685742549360785895226224742629820104959337197045062540717062750763953844191006061950243543738964058748553764257171686845187973908131244369558292992460046104627616939610139246049885400923918257849570339151340235076693023766141196303004222748405725100639533147619188038850252153967280145670994965912356816375010296226505543738551507590809176994486120231998914961892416951326559545267096290390977296541742983344207981692616228638667054054790627987450238993102730438255912376837005431125248437778119131853119327886860889801367292851918909160340889678602614384172228305459487129674474852573788792129117360992937862937603174449051157993649720601143472933700823840329151162110818388875029102793946192983891503070913971500367640874360658386193080585884370195186515478388355260067026735683995108399333053366195044712971212909686739152911140014738670793438541302082970491436809673284023147184859635039898181707873932769887110073308643844377310367443455588765474856396087230397330754137881293008179203932652050786340586762528477157812417930018870677688342370334321759798911843387323815341306308756864881056788186209886741880642113044919506343618673659252862326725236901392733601417877810868357005187892561942679915742520449237920368058970200885120499180256144082176582973311701800739517575465425216106032164908202444186322556920065333093421002305319941459023902339830566922195687487106421303502073840705596303973855211166768832703189218773088046166525358324226853606295495305162612790342248461392003526927904269016218062850762430017753457024054387056271763620755484117940467415644348173812386989391960496547228789466992009237005960536378495977419042165836312924805099469968890364574075295875799831422861184830575099842146674164278770835171770312142786478064927795034701156038441345302409509597394231878137031550123232522731838102333719938858225997495562689134765816326905082586553989018962799841354145957668210532191296354625133291206759120606296331974866828068080309042349405761334848371094202777118037145957351630894815725713590562292680910428969679686647072467776429432635300430894741827000602596330608422954579125367166536034380892370031606429133025178556116031774266073996510889150722368667795548538951879596439018119887643041473770394038038455803909431478011486485606587956397380017727318858799682841613349280310641502349368353344236395668336218758623820504592915672561397734494342856608053514697976006062834840616499576553253482752612169941876782702258948528764747128288464327528855695598210253321902523901314025638207392062260420943609845776224014028027702293678380544424731783839680239040812851801866309991916059179900924746773141280852420316855086863324258668840380961968013040794962772535806947083917055332041938751106646885214826183441486668310135711609297207474679045140546131994277157055899193188545226447780365444346431835388871476766880036720431552219173203261844822003119333388048638649102184299045975546679182080182623628188625857342694940916442728455423459575536596000872396511876798004420163806059970662277002556612402633005133783248737939571446026204459874488278220093773965514735902999159367560085224531285254051862599384185474138413068095315809651019755690902668789875347098095249544066755674262296818742797440355694901164555935554352578464271729958482883813817006242389631366295936538825365863530648393043873950781766304130135308670683936440130216720074554905204863751318274139753447701151080294050398825822830002693374332350422540037882148781840121987963818076810243040461640957170049709329532840288168848579409901629237697290380577217189306215727235061841061928661927633316807225748854480489511156975730581392585426360791756804885520630224788864981643577576490603660221016876566516965278743470924951016089873076586671828035760444418306858538199015685592026972046412721938676111691524036558164420178887114370760738090325345926849700815986131473178345945766916080388815934484409767329283128925691032933287168501565804881407115350510016480468597059398522698752761923558774845741183271726284875126569879787025318025934997861058385364879966129523715102364249272830772171356728260339091318461866136144991440664720869064415950047690335113062251406975500263659577450687126349693943082522765805027109658673733219726377235152767293253659757835562439166514678026121412274968307488970764775030511337294230013729003824913243361895982012117541049226474504393201493014495468378841587301990435131468376176276113032125805006784419521468404811372884998653434147115231650443823622331802289179055173871553783775416725845999990261242005719933515229850780188491265876339683555294409626988773089329939770472763580452865155691311370767370816759651825152194127847214908248863730871008901043840480628947088132478577435243051964124922362954675646531827690295286560908219756601077976988010814298634285987072174092903721845880597974020278638493119000923238832666992168644670383693440621921232120654480943009824581469141815962167453530401903420176893334054751029824473645941864065383732568310750396164008005134498140444389437399339198194323181798422178777007285139557806041136686638303073593639098364354214198930595891996076927605173888944990721119784479758147742754204031294801475061886065339762847071133976462439348903355877531809014477329595622048715281405131034830503278963834792005573126185100847064996906524767680369224521865228909633977141840112310958894226228730199925415129665671722304502181502649074313061723646420587851139330278033247103927992564311451546156748378531604628604431832837520343049453196527791463180496137218194428779925724735626202371849480660242413950743767475919117719238283248524538008054557352015795539491160749081998950633122297995804599387136350384230958425744336063680401479712745980106329181956177335284736074140617816308844343659542685259339276174253663344346951675177392550986123191236781739350424183212910698547963216006403367550396612678383298620284119933057508607723074635998165138182715244514938262197855202024467745898077509507174955246015446958727456683313901095995882613833798459119703993376902424550307592984026014678632140318110862116460190041247127049294234260903161638959263993792779041101047634469905950563793233817354490773840865658891399404135930265605259523823108018762407502377792498147398702134693092523143303729530616193533559551161825669101566794972865505449208810394919603029733649854566060110214448943996758265730601265623270591628937350154213151991739908141394113321185492536621934735379660162492590656828000438053416236340751736907983189951042511212150396563652566027145630421780688045658565845984015399240013988041643196844041957153026535126864867483131274577219025966935796870214604226503154609063488109578588007199768044367817619465714210918517628418775045586505261296187264330488021531008205908187455396163133334196670706030787546771996360357640013594110483090780311526451128876326387706251318158803975293755598006946117626809780505613329028880475524510574622896160344161576739623683852145528753823252676998557050580439145817908710101646805420793469957458774697215033020605332860641073890753430238615559829434799500702158565669074472582332499439813757115459196839909455760338051137948940303130858612468007588593418276450901163445143189552677658016321088199835913436224429570433433881973182603941904159065287483864452642555149537199011478745118789293902007404246011771766385593804171952443131543166314511022241416768900591329480295902533555593503514456863881676334774107333296395854805928315779816271257493363349482513362252389223684945166279883386441201760807104697620397923518863969286483692271575420608107424843253485539860248220012421616731757539141062365333895052103829142304395111615688641076523057553262725396423803422759730633498006957337502347109886353098050937323860204286063149182306858043187700667765849059638746603968804400953684436082602882665786756816137581314807390421181537234103825161122996147442951368671121625533866798821593847573120487483798392254776991871113583672058057888728413155767229698863733472451575133116446263359776824123502617115270191544387252963025241778355482887157910260249789880635126676117208512540245447751614450294579428292042936845462959025044903964986317161215064282958400365546109589758011918832562480745945656045257950355630836152921266175031929399398132213273480873360502128669187836177473248260738482288254144562130641237508948772861330460623199857695127907169835073804470940152957151919612295069484729485579084670726502926436669739461345457035323416721561623791084168836536891738906032942786071185571255393043662591600676623687020299236843921671288161492952173211061920446435069382343709544011844085561523749322216361429848377570353373190820572902088257588800775713602469816245691066149682161397845605286044633045248480979740684034344759502662342422305381804583503826767009124090404539154751750995537546358068837912469244487546948776355779681365586900859461999600319517570671969045609020314742312529283084807822538413873121591010813035610518106584785488021349259454494097175590164642075807945513487587518180839573208661876521739365158406528840265667148089250376426824186581359249387791277496466551602513277726601351103816619210113384812646547638563442963157362524092359563876002468644721442864755397817288603258263015133027826926351347107970482708996831268946688783001176085446858363257423386502410034629388127501950149771520943800298765150577014283144317697614570291092828980396558727939869281748511383220281056626324610244608093868091559618480026610608815928331145631942918379097509594835266683319820362512310100984182836759535565416155579218919902645905013143193173569349871222654713753281034325523330032988029912785409817955193335791836573222243023436491210431667616844010767115395783765842441323617319277389474484188365120216841233519612229295879602060502670860148008225232573509411197407843897192427322502991650253006218918267490882854923980356924439085365109078654669728762277996096886147165038780441794470427425375669011599115506035212547140151650810915378979770647459206708618155339742575327011204227262454159367660945457313248254827331393267532514848236428501419434595998691876916350828013396950715811464911422107266508907207419687301537461826610181066140174610293975901002131149545979656026493759398172635397479817595831527155288935961989945834489220549380033365363495444296810881552963124449951788405165902007405816238288284705348448778148652410939409066571447540510755283133569783025859288186876055775211119417206848607953880752815099779057246021731109722194414366658604175933070733505158726740822029948770176476852101928392854550073344220590014824450114169768008529438008342857504973059751129383328560315993976164764870376583655242582840636478531248800252904493815825951507558148645813462647399707867144083921809742134834088907425325355094650373859183968596583312754294952816050904933849890044570546748906801490726191396169179952431296712699710211522073680434919732666917104498599172042204815600613859091514112430552568488394899780788344734677902105816816930420295065065025628428880290721762227853046465097466342109796604416948676558853616858440927871726926645095657282174235274861705217193874255420814312806039739607845207977528523730658429056528895090974142073517126086683826980568955876627997322247927936402054074094050324732248287669303558514032792699200789108504397528779007078543914018272817503381845609083081574673606355444747998702023463940523166569669236789873978003452480065939907974108220981175988451238173037760875440347296030066119144190859161069222262793087884154275396241862287415714509805064877377718801896355326491592546390811935686993548132227293392390250777702007711251287580533404344263724162601412020314485875840994253377538026495659290206219310573652393517997074706155317419185507772676333036706597594068826464921073784388604603961767684083521574027198017802823167624837478489187614527450375832924449072035866378804172965390901176161225033910552555086898990990738557728133224655566660140668140562878912715571375363767353593738982454973394420654654134663073921657263361152963539188653705125062245607585930207948558940387279935241841292894109614294647206506944532612812372370922743123474007305084599901779224769788939524100699334362893300568606872023281322365315626959700850768052138653388084050351880964768737519474081534779670935920768082209011322512393630411870785273765526033261875167080812264885315286489395359294752820057807063407331479162150803127234012354347683798268668864251157256023703248934691798958568329954062351206927886058675008398520597278844335956503876089096713481211139090859482280577336431289984908403239488592571778304351148819469308159779310494260208006492652979377958354362518101790593881228890527114115913403968556613413157319844170828686701670832800400483788856158804806753153807317577188954066070346347851218930197135667334302945975214229273152086724469559358450097691166561876772040107456066273806925070067719467146971467603725563347054547338423084960426017605025291536794321442788267332103181678934029135523622150686457189738137097391594642859510809563853712535790420005132498082090986176181684500627156396032389782150970398209028490279448445498905201567692757648958212140214731011175282425064384464485614196480819563772054745014806687076594729239505213484837504573600499863239491819660832178657029066398637267699397160209031233345923231819986841642733523050402541718451536388590331410345503740923754519457072765735665743092914699160372354225933509787857801409691304719853163158137504733131914822499409107046315546778216786203129916465357676882958527279977408599376065228062277223784212222735591730806494097857175815487012876280830048893089219444229522469535556178178116076192818225167371460355796640148271916785352551807301952801957288803789725040538002026914454944787024066283279052691094387610104106914059314149666941051283347064903278967911371081488691975319190752166379516904575742939841854706552496466504289895961679346966614595164158578947413989288151149106195515231662517262714588206707061488529297141098586613563591004994532389988708833771708522996431563400973452927255691373461398558572913301706855342736666639741204947095592853199636409148643670234497300244574725728122718359574287387682493887037107349853081549593674520685750618659164627201870112858657484969768675398916534503711519802559844310745625674390866245566522252416406193311221952289701801194589369654350384443574391621456372257645158294385908756380177575676980545770836842103994634823854088622518854495083612739020105051394576896232043214543496106820180230196704821134896560287321095523637407867591675108142808814690638708855392001931177123655876702823788931046361232852188002024262067659574066663203527806100965513841042185589192812789923926410103413708098017533075048572004394170422251905864553943209365893134969105211338265129607972210549448719645988813775837337218413334068492220792162138776932781628979061827307251330202850203522851798260484966208536210454617205238763435118468550973551251165511085839188603514051786586861713812843708844486942619918997845373251265086441236731422118194490117655331631132544700673508497684213890859443349588003906472574494587015418624986344107539341808140819414183440947929554355921622702637497612672756232644431449336769672742853759542018832409185493528730550252117232950785335818859482155634019667736787365462928299894464026088745085056514641060602115431879135892899369220041910630430728683821210743229955739530255507664486020667171333470808592629736574280887871720063419686145972052230330513437928999951986624793623359254730986839897745840915629373784221438277062014265255044558699174001980960804870484131917838565190724728916652383646180588128869460966081165565241061510023935559899090529472708753691499776980604848722013971339470520324667648095124231790723121380846915618706224506673832475825827979906021402580121081270508279065218603278765921606548142813961983912109916225192104193205101492993583825359113091544000687987059213858674715887397688921664977052406587469949734990780366701082182334126262459820343027928059983144552530596534845768068270367251675002353419572070818017870437715565511770508101036833099024508617989000206730541647382610477662712872212989818015703410027667502318038609509781683540309753232282707699502799493488200047029237121456366495705094419474136802227821618836789181687809783887763971842785518950926209326776589480760896409740230027583225171600135069214500523400469969111365933053899748916204049177165487874038534934916684189721330447888198873781273174255106550747087527634656783722575475479107323402270096117462059250823433297764004542293606758538048487940351954469303219997979883924233257741398765813322327723763619547324888835783614140152485185858368734227568800295173754829295272897874962948120077049620176779624226691133008199136354835743149554344281223343470213348818408792823736901558839788778399683696373774472298773670528727255022288471421696456699832603078422842957232783052367958774442452932911159463743844693368045582194995218470309267139423037450419270448977462951731903864562914712072739770648256420610211906145148093593938446216814846675879961078476279873178231733299016956893515365285927099825110276447231118418582910056186559059269561072322435317751447335388561949662911579047115427803502022163591909325754071016498278150682020657938304589282879772305933807360174864374974684858567524578624008086129748220747123881447935941732333428623367003869754502290870032254857252970261935190650696967238680140433276248258241005753321497227312157650989011166702321227972615023851352331031718172973215187154270510881499187877333751494345724781577736703724653710339914314745071589008862799339998395603294843256930013040356880860261980796870953539925447002302661586415317238800041905629567633875600515881144318655304649227167412663574849139870579499808987754294029875964581928911253532308761140759900642752450759774645816146334956915521836369208842768923570767193155776517459993793185237727241835161019372853750353762824250097695425696321320589245922442097533360168358866271049382318921180419126544487971557169407125613050006788279036388682667520358752319961540356802783631394038324069704402419976970470689637131631020038226398333309690776786011914874406458327175615830957916187300665929168989618433053464918592108421905391124654969455861385456169393030678466695440387123125512515830888703725127501886594605550140345723854394282221783717761053334768326765640839579242344196137794632471843770996566642241529656864590383769361030196042471219185766110676924776572926622265992970982708363470285909076731941729396495456825498571335285904816144414856810777373631568477824015186327503120923087585753501834589389337504290020515933249641055118229973341709654216942027230683591327672152843718792627903163336767827387066886138009739349299219547986130193639026225140678723826880079501698305074438722723899143070939656111528684665246898214432644604088945879216372974397058906681259913744902836819921392976618885863656582057350553997308916120440941716515850627201825180476354103958222399835088734512689213747256712595437586041562295937403274899190388658676443906426437565047604333215431307530278155594654892297207801534786093433105868690318404857336480992027660839815981915021942199002289338182017484503802239568840371487001845102065008090492460777697120877643286474670828719049469506929320711767069494750447004352411494001273811471347100939901329615102166166410165397880138440905625774354077832703096925576362276886069521765365370506601061879565437777063309231312115092599070190425228581125158258924704804090430855276107021921749064839418020421532221829998698426331350047609022740103227215754404141621444762870537802309001263048800533887984074672932801004447594482209034699293674243222141084898461765887636204114302122614919585533000453645995289628567347087236826472665324733574119226884286456677374924184001042869479791834145293263240510834052968964232910995161609834856313898592725306221357198678810480488190014717085930143143662095089289029674282499781592072997971828709616436469629141644802542341554638831336109371774968502986398841101266129571218017750882579955697557799883268537270203933172528560788669898614009222390447529266528850088920326379083742636195684721608267974837021428723097229700946985057288612098346709957569641563971958640952594109784073571193882255755367139211990090688725663430156131527718281442591732554155748889117632523488978526485478493266955380904741475423197779091161285873537785914790700946928442720274379167506024681224260841150350223654309496887760140588680886596236372588150430891406014131603329664887408752440823940531728720774412532930123410009640571406644355811019774069135765122564115524517673665449264046162791232847312555766559986959520620212335813973905036163072004245412843005308693980863249135313298240521657564781360421717289485085750837515420195827470934708549094622556182058151250827767387829711967244226392920121302804821474184649728306903319986029350471355851052453276005347226148211250211396808868062311267428925116288409720633984352962588062514577807421483584379172397632620141565567197914555793964854142306633923911425541953505352945181338557218917395989857540654168374739724797241896202657110169370117136339728237231064212954206461482025365740090878093792652243683197035931402528239189126157948273468037054303263578429224783255705652306435196317027501718755311896859850852340803679354492229827817149779480172985427950779496711922664102471086988034969973002768914070759692381546175270944300325504619662865237517613816528621314623307433161946216274146180088176646887904825123358396274747723496126264478160842242603325250937863284780090259317166067217703300139277102832219248325748074705566543842571818893646334125461227089979959589721671226217710258600288237094029064895720397541519863701536692335383356484284198780991760002132874778230348789778749560270951288500965951321721466509581408408622933458444564834007168150593772438887945801116824723408098780805608757039013508328778476893380780720769230472728350504845892838491899489540996945985033099645480974996403202990461947397229042721191629530094833438089452683507358505447216597135469580366120811450072179034850310046848155804485560642784283154169577071407588063790686373573782460109499802106021748358882252455458303677093108687729668609231088024862600666030946338199643793842349039218327155444051765756877532240806656301151574360542049674442000109118851232993715386854787990809784081128694747323366384656308135056338478552876192385312125287331893774022399477455185655099378560035993867810859365129473753434859164853011979219573159231987484829826285564073363086802674946584944652975475580211463013258421692175889019304495297641770911083014371668451878782773790775463834435928962483343599917640787977834901278169294696542394597054136343497987016192340808462515305845220899536178312424641774096681974109616463027267035357911069601949378559312053298525214983903283592022368999231238891068125102073658335504323614998799545775072160956020033376553535616501817411477485690166338635125153263803738048454040652439688358060817232926438619581115433278016706529157896158479633731654811392885872406713503558373813988846484747415296497726112092350914880067273989999894781204472863460269652474503518068027213953340689094339721824982526389554600464566867546225931451821179139759069773134193762749122470343839868219862662733825094500731598049447970539938001377049786748495005426544496346391698805230293765054591669587273785718706051261300167321247725510998665737875485175708864492848364992638416313693418544255338009130934190502668044555920723233327590796303514368588896828627153874160908880511580170316410196624864018815748386636268427447568989110975563197176280261495649619588780885420103677085845691310243302725714971118012988198670196573186130153093804589510765271291104428927263431744854195745623680979035740629262140875507859688447732374456089438047284700192057310862370372067232729154110650768676884234073233889372748787525212865448972366410178016017211265533797514652155778427543094208675775834323847415581399435153752178408706704469916863266918652594737609913475858858041559111764282632950984653469253450949429019931359720918184822077754712947485348069890400566685682306323648219207921462834613609081389087591810212900834060202984605838922585499556034651523189809787774340637298571390506922327870850386009333142145219655733930158506392163356656021995598728653256975115494758435168130981153565814416958898070291798114821449538666247215232747536988185494762961672721455616139943983423121850439420655678719786424211337159579317355467394882130596837907748675078419673424836265510978970576723279842381751090224523103620743769064064300523905183036468646802268742835400312018000807611557532151485379582902271097372967879292488836427454134027938735364794749964818021873173751296663654485050442136096574003767191257256732665378504038860317057720149654047617475034615027756475910074419635269106651542231099245528358441101827786815896418005139551928795371384184104348968654209493206774285774815553645694921182595594071823869071902418725282953964164045232483466033795842587081462736498535125554330461181892109425738686946927089879711523969838101093379199774558943209780784082354979500031104273556292638953606698852486445277196787864779746702551223400988700272984806825769013444783881447275811132884558264971146237324392454318786067255544399138647070071611896877280675792224952211493795393084993877035215428911222411715319224252474674307509696887211660141601340199673847753524800700416757235873721519972461786500023876893239308436796321082153312558303038838025311534242031598542577032809918881927414911665633197622604366036194801640195259994031944046967110960247222194945005373880787277120051327599404406789681261993193212681442124921254531716608610605891244447327382090048767008400750549285883601384363908626805700859863289660546698708432746911530106004795561512434157495005637620045290268787994364045056603639712311040886770656655889419228066872082471799925491512096848854027752413337353518591586384775455488862985111292877108773254407950330622903749182195757865066509462178804592998831749352333588692792039160590461494611326530470738374688887153971487520904133541762304022443792741510996511647982430514255648555924406153129913444312149349448801069300523425950344189044806436279478452727047132649984540728629206254345353034975533821193134788199790340534379309170539149279611972540595139708128334239641507160447957239546960254261385516495152219857977441461580964859112399692307896545327280583767898745190446532801554860999624684425511634837836697410994353723753514662353873715638305181326712139144072524518336586226450985432558180367406703858146425172042990936764236068246667919535217689860337999636917775357452586234129326462712588710651986375541143586208353936620870866367551574802273789174122955504230840374131638494937086478626464226946277114127166425875665499760261836056370806476370606167532844511200542407539069557274292306277760088489750258123216841955973671812640996722487440142499733153173672816992317775870209486827138770887075182282851689449952974160149650515149932554218300952347825367852157989513851729574317801535723814284936517618989730646035933190020648926956306367614178835380710815656394085347215585119956703437092439225319998421637738987822751027742749327231238003817869958333992088771954131758864553453097877857372702417155492496486123503169153221294684289951928454263894511006581793913616988866904240410505527451255238818373348332170017712067777748111920456163154994292431760298357065011038732172884722167858284895529310130796066135105428372072468883863064118182524379872201800795101581099201153770613692337114325339957859725174641627058870361293181318716477955030688996410843594965416782633672156281742714328027783160206609670532743919028646361769585354467880147775986324285487409922061389176603365788255310529855559572223092084854031169868271256457005918045689544211625857590623583753039543592970675513326024119763915260360148573462925213122263353472647119023879766331612476365294809066568331044010928587917385128896109552985114299161566969866459109382297001938102476082240264038931872869700158239093623668146790117496145535674858645299511649746573984612676213690104021583972278258777058659002414421677647298440898768393342857668915014140699188361487317230989049952841099344341802970997986376660914056801352855067215923498804884771488921999473017930803579882399532184904167796315330153653125383017935121282738952725938305750601617960356684162601734750011356911697768573684865322575755577498209911709464290575481188034547272327939687534100772567454544333655568622743232548346817542278594988720407659773496266413605089713378929232903636412499068891807159943979448021360756187281927916108461106816546286954189032435499507808310297209848951243646933106276226104920199045430344586727312219666948584533949072188435696868230851862498111973669530277166885572516470500546407426880300748564573661549433037609906797423775269263043639854723345785045656256655248401161599395027593490982838846153837286557748939204912129136236253730686929334818941848770872048486197870170526804504309276308961081915889587507404558610895680606956550206033306363107148949067937000146799654701348005719126567196371671242052472879069682580805121066885622977401408539066136466682840692375253402211599540436060513989097735619744586083097098242021751287760926040155281831965078432468311647268613967017402127289098167737616162119620396942246888773715801755331967665154086677826280764486681082799361988108030872771414325867456757538742364508246492237098009144351313256501446508914143089703434799030300143872742406659266101425918646607114978731066374840755317806088214944652480767440320872961447836499019014060069302515568859507989473499960509626414267264250657386546677411090842684406886692291323890191782946219818074939350178605594394413028699293606387444914178610848064229233346170233197680505383498612643310362921757505254910167426188513644797801138237765323944146157733203402790889120553267722053960264526588526504555300087017761437054671811555380703941444428530354131126836380933592947301404934632462173060156893890204212085759498033581260824959222403172629930928133096168623774231627126076823664466930664786714032618272089338148474993469046882341180897643190653579331702986902375891202964845413744237516249987413321014624651578684271163308062875360419330008365828695807704023539781782300731508451842504599484286656618088608054650382499509958233137658613130421813016050972936422131278462173118473681231558365575573691610198789492508203975900765514195439978505165635357668965963115370124346020296986280483806527672441605503859579743471558751002346274581119833947851836042469801706347202615484876273908899288060372816721233637416624875780886941352742666422838847847050491364589285069954713080255627361214562748760551101982653956470610039722048647337659681309172670918511868946794116420345967646672357705925544678318252021947741813865782762762413361469612806123479181310530219637023580941163847345324120170400425260146503273999149739423046873753014349794440942137270440843359467788832244671871854655506678549829989859200684740575390557757393791575783867829990272410907800718902735653240710034063013860548007426975027428601219813584461712702144311643678727013699906138945870042188766065627042233334057208362041926859714651002640827660825763433667202949666542250325729866377805105045666726033506370503557413682883365422961425243696152792274421550107917180362843649217881558760388553432934503727167525462731012358504853916201019204264369155732608152093243623458715330669542394088528363635552178269133973620238202334449209957434900969610307549929131830437082699143326517388424710429485662891790193621907937608515282422877435872889098648281771477111112239316655592438173777395254378462359694736851839561435440603140483810972889171140833712231590990938854000220078691710733250180904105870552882340558171471794252629838923134450815604194121771680448173442694049368806973275303556120104995913556265654658370446119300040262170622637241198150219757732593691764142698742282026086205358231706945682636338395627140363004439862938247883990956444579100235632677310531861494176790864527030307627229760618149096674982606814505147784762414694472468974039895294474766112686513687549347533914531362660409264702960689165062331283888546270721418373487766789898026374686372164073951183157652829921376952694413292986431864334301584841841421355979258284421842128794156744341834247804960589763514688645770750079185838230927331679796226224587295373371190933463213885264098519102037841696321325797256463320168019958576451612575164797188644021159303502315382356718441322730277330519420488247965888350090452019560867793134630817614338765114717125829719966245445131857388350257110430337214492660362410338371574754295913157255184512098080563072217993058332008613088114080629044775901462441739548471129881852763903618661764902592894941100487145329442398608028575956415741746561459804885754228279111394349148136054964048948729077858278241212798883944692275524783364226944729849007911979981502722430909322750166582684861569687606471292236120592448139943685339122529293263147502953413605028271195077336441126131083254043900184745389747620992343438142965914625768097347567821940392665041151135419042135106830678544594269735779211849507828262081157936079685521911404040713963101530841693447030635154164604629566275071274531485523899393938985790846452648105856260253922872092645981207401059206915546134414993555117368141509619746636157157155768176845735880335529621880197792529906604532945673058183719816826860871851681347495577604895331817676259334764872555473888512583826971807276277005541875031592008606378635834096337328385598728166244815619018875138889197088782893481015121200563202015215688990753935751243282158505914937649369952768738092174841503091091010941699125741521391912870534548313284256498342228642297085688799165700429256787849669900386928799327741008622993573922064636068022568094470326946821801530229799498705146066461943846966814392979716176977241402331314021899554797622209897010438953819284347213861948790768010736792965250760694908640766483766244435199006347106190667683235265377335882317437213508202776628624507740820549741729382584484081343941676085930571920382002869086319264144483067023837279976134608744291043995200605128669683258710551973166512278674062694369212387101700727263556820221730190088521192738710037419692443806334231800277194997857567492463616558521671100134803271988629307042417195619503479309238099555082740570403862115685090721919471276391312476290044387926714991016279138233958546545687951615170644407873242781725399674106872982838908600896774836683972788156043482919101465576605665083119869081205420350490469543638152627599755243948245498307486065109253311190368423506692373884165402900412764325279937434025383026776532859550287410831254635139466245450987198522428846745479716781171399346654067162509707482268704328862291583542852935179312181466643496563769150859321185945361152606101209149880275702448670969041600641708178520749757237252101247106867648589707862625889154502171144563225322262762941029843617070880218022776432233243974185078056184750523368525886749003600028655419004708119520205876626035660984881264253284576425111082356220131914748970655156099198338840510685462779759974457219786835750370377843952548345769975047854672856002654300862045234029856157188999413479049706034048060424102556181820240775962792731406660075506063976374296396634014331003290737457833311405384865861820768020674956425564315395469175886395926399587443561449963933240881709250441955544369021574084959303816151740884857463813652357412410180047991999557537082202846746643543413907282837893743767967085050786728902901079047870261149554651669504904860116374123541568573702934835035004179495487620238270615873379438992299732901860370210113847056926332760669742866344677371112930333737381838960971763777923159038526298661873692183928466351331265346206254979369042308082674935191377336808881513556790407113140062333290189505085980917732270907465063114524280254827352389660015994566623808848388159125641407554266661194765214787191346052069141742355339676701808826943897750594394279094341819541481439378595789878105402012947201443121109837405347180300190371523421733407279127787626172877546751965358954511025854341622236781654773495567436757660051901242136739517074134998682012747234349590985052705640425047918276671607086743186104153656841436784750761307036622816001753871004113289479106881205469396162231288907549002053517602292015358252593307209108626159423931787832011605351041895201432006383810337331374009593180897891359516153955829832343229953000723314862544014574495083611808095865166341037306996533334257113051506600514904951901158410549996753177009560520382636778419861502326369617857892207750209178198769551222631547108365371787438676519761227890009195180709566454244325109890037786226575552668084894398964693260350786523720511778347085932157874533168504234601312312515742265023912609897952376181976704382698807986550700123893935189121145547895451463224263611353122897426360808460238690074449225494877832373514332207610469641993358650189047198095020415549291546249090901392255248405607941103739542779751060622407922668913768277958687567129111632268383682289712606651715224184169975805509046086135755721455346605177243586929469982475334244084005445471238443014523846006578698587945611604506888349114294011733469043388179792865600317125876487671268937900507659688170441756422472332826526233223670391209215704675432898645292784707034278558021765613991764098097530011136191769183044697444787434846514616484993093928527409092575664023246105529121998469114959543453503748050890397557803064572007139345774906572601070415186030191910725594151965356113768056623430119745325091499479930589617593100238436893516454268583219489767139091950419471966460321050008101298030676490290851076634349545804753199901936055838303108842916788861720325920969769755086979034689970639999829691582690478821832680859404980094055782417412184353081281758857732775640553013484529369444366199850775579704688454105814052623439008600615220254813027686899072740425829341252548180552707321550701753340227536998772393059535989560771850326148169819408535761009665717679579561957108913843018483060060403931317973838892805254413248972007908363811101744348576327086724793641998634427427218818586603387473919112886028603990589994994673012411842599459416780029429437629756745392087631823091045461055320558911568496726949413468322039998091666376380077353909891778039953482974394023945939009962109854051189940458893579156017791206802536964923683762726001610618460206011573326577975033600040777630403156814644107917535801461786005539607083854355768711284142185193193819479814797081127858444992474671834013812235741032516912165365453778872674650772563642344269164322517209315781903563908359275237304233224095484201201606221900973912700223218390073291349575058415765475005958601376515732305456260788396376237204404397493922947162326453178261503712066806339998568136490182899828836364794526818246174327827061718429721178847360652239985464636070701369359760905765976308905777043640548976451603556211831388510407113945159604707890329918236742465468861856406723104263270368748066421901703414041735518526294543968028228323931386275148966732826998651118014927335220831554517983460980563858353333598770289658259704580176548048161006109279496521617192969704300399430961868841139392206152739836350744408558772212627942235457748645422059170553199590477694099987890947610460077674198781618652522613870227099927257312288127824853538570929973640670366110916776255971167865023757151021024161080273761813286303467191489111371132119756693764895533175713745192386129544203479260085963720297129593466753242287040451030972003281404568726480406305943190895467106386357362859941604487345677837681498476892817470845661393110709228857927596585467906588129808601871071540958562675271705116509311639801617604021008065993907667346559059626936845301252447565880971033762561687222696471484687004123965699578769660429680019498092367167333206273537003506074862620788928744394817409227493461244181905081915164593835712284699385390938027040701026777108031302048829693705018588750787813929420835468969468035650442585655821687426627157481762172029780100331374277819786371706623796496194158574253437423355073436791508119791286558494430175391757041456191333268091596185460694695317374117363575423422383809798013622046702718646130561564063814467617898792694967837606734140911970967175810493842719737568777315062005729573012621185787480858420053444450312371938756695358838717889649126104054969344676127029297999994366660292168763762436690433035411751677535988631628758468511726820011388657781088001457874059647284907491390434087766579929976700327141807642656202391213186382636740064316990891924899347548841263586136902785315994129398223450179100827066416115019045983380745312336676753099051988657769046074042710261560761704937646374645728392398728312272506706719508716797544567676398656013889860408995837844616653123595590919598305149126534583969667842622621561627782815190965189778482508039597663109948789321370489559087868507826551986335392914195677609127586101562771318364455789209479830955677249858150907415761109584932188272641828955052197359554872878880157957674810128081266468310710033122543093381312155629949577796553974643960960967730158023652128121739193253116572137517493069744353544158094374660268090124082287842919111418708063786449145741560029119938555726202598142493797197986700609165964303544948587974475215243791825619950304817988129238784746642742659801407192625552076282838463666557405148085295243173103927424776083688057536897243654158346735621214785377136641417180185207895352450652581336532001304299752409986142302690931067239107340014085501555665965885695138929187164584077416666190758284082419571878029885258448560998071108174551511344537900684019657830296352923784752212783742923733623097084480603562965343676114630500525390318321268575969825324508636996018631959122621918946298802284176441793050699132398023517327669150405060576676009339673336623028015177223980576186705676647041326761319156367218041154915540092588154698825498178513865228109653309616355116637804380836010665624296167500030477711635709219149712068506794492324580765034809110909088082608357074143850375198143676412996366205062136086602596192663322086028377608810166018734241817949028987465027132236067176815164301908054484064888894105068992193411870104376357282893292678317764625285292806135566370222353096987721186325595393699925621306951263888062249963869158838982919389447174770510216280757141275173019866530903130155963967671527138655220245915568474871726310999787500282463761524185463255114048746035901644027914854195475466380070305471710921416036409147246397123575630560889521633691056654305691038625777758876763201030466755700183405703991897582636362355600568018498086568841090387062061289639245593925613175105038112454462931759397798178123024021418864008162799837965514843225640287003595280442196239721917485525743557831502887671147089125279080821189179230630092320757695525723549477364078325847343837792382659726530181611800638287914732720124084548821576830350542299168065984954282864543199005825626672459612928005962560076318102570611403363850872401316996659268081371276645741390987413298782496631066893757368167866646877016691043367547273221400848548363555163111496612656868548027749560970234237817095915603574884638188731376829265498050750745303662462102636896868689498049040535586109723430998485885325500876315125186686208717076449157546493972166160073546873864837484917260351423206611647552668515477805433639946835663426028585284187963387609424442305543506354181834573593560462974930359418332090216687264238742171522871297931387207053504554558199274155415486838146434787068324750749172057434580751322851151114282604478528133697089537028436243202718209280132785235056584713558276983396715223673109691296033491436262305735521496769700710104164108782419141088401854173637687042949504415616148442622414073334989547922242209946580353995145617272018744606742615230177471591032297258390215078534614456130850400426558848940337119715520147616617781537601571012659966597385942486149644307685292416699256438673198548654164332419534002095332853374918255677244976704752353293015144450751049991905419087604308729870291042463419426886538501087178148786043875525407360147993895045094315958483702879968039959507330598606904904884213893434703343514182951736685191904283761749370664536252345507767860876555506314550431937848375498280842505993009544958131058693349883611003137291118416327668577368319148728580961868517191745517537890777318977686566037644511756541830597599547429657172593120414746850512419947522289843969577333159321231764596533651767260016977109528041793499806863301994059306965988724787177420201028414054084750739207077600604421376210463003913136903989131232869174492781352900916806002952158323174821951111493849897861300461503595884791756843393372401459962808036058492762053943966291849016452763591114167812152116917051972882662618865855693779549697994184012586534771395504254494062948757054404212882568193754815607261105860999313645590766808710211627451000338209153679458696589344054969012250640855846595169432419817006301932228282408871069873213953763803893602582027425520307584974603334074845810148430683025991471800006222005072830806638494924334752774346046685087836639828088634865106006234834257561851419233694998129067093750245315287342579502423076444941821487487679512263406211994081564164183006617844098107569454416936961683201754526542769040545221842778458406142555748991826100403969869982979091216624363305674514982365676869680834894129285501880597928491114843676066439960619102968024746474223031649230634786026110530502483800824052504375150883011631338902552582807367136968464098265497954029634190473559133833096185938245070795911608104017063883304208289578062499378587269120518444983333337386671788121023062596895637687602772081486681905028367775317060090759909035330040414467836033711501941506796039793670183393821279520730243352137298300506706050877249122360468211450993261753613683810468819418111281367739529286577116208920679786353217226116971011056695436945832013257737795275235691670613962460245813968317393647926240903983963113957572811344549406128393910722993665707175486707494321072086476880036284389016134578760000981131121059639537456581593538175462042044725508099654265092844914640067093917276486758786904038079860739832280182339978783566281724617443560449406475639074369159768315421956887988418277506601208558941167972339691911319748644529320369924444214183330177248407021237198400601127929484936672786326798207097451704699359716891826047753565201538507650629239989314855480717405519032189644781371037298043427389306244819444850954233875395745881832009367843414750226164408287749758647212790606741178422474134152164037679510543702493289083267483484707391840211767469458954367983197221758134286439259426729950641941631235028204339200703313757678622385995249267287622926865295063650908534132749027005589023459929117875953017128272720661039392730244475264129375507506027522031152615040078003659403517247173373697110705639481657556181596401393171189550005860983614991172607968430189871292528926840857873063221146230907696020296058291741758036039312169346675913226679376396839094573476953453439309019636977534015612189200709470767852361456318842610618569343307329259432131443514715266191563263049903740521230924650023484144996249070627384793553042931146060653160573747176711512612356594869351472580664039133198139224620799203263958758090554621602723140053827732392074092401018239208169699161331754286627008482791953798825117650503924456031973613375150092191057276128888335650779178446232968854724628005861691771795544365687524193954459402069925596080405421973064106873512502765968336603201795827422643984065074748664461931181899539802231281130243365386465626418349022814150091541454142972128882589570079076033878932321073815256161274960176639212934947538900802664272871671531314781225362157696379107678154731341010631709436462788048744701575530685193313139072500045486118559045957103193974435061165723097368869119083463031751626682198071642614044489161603654127014648491847123234805581727889419131711981375550394176004776011544593746693348562574155537292908878159203755684257999760551595684799529658006158664655499198113309765950679684179381233617401370395217489426989044842737064618256141640826224745695670340348085813904390866636330135024115629066312808847260002296715245200187497188992870043279889291930710987377335821102033945403989247239796727049701004004849224821841507842674186656539418077050854541380697987878696857677806650907025256599786325289163192716638053074918307625858736568633356748163124510873959048854637118022594911377699705876773409573299671392446882292686033418411216328292094802160424050416023276895822027240797168799907996042438046656221279882861052921490928011893243946758035118743195571567179548190632210540333699794750471627647127001087223335664948983389670249599375851935908522465276261300222903647962993718240942294721375429611211812728938735108109046687822872534058470618418267080050582764814634350314262645662084338647571583126217814200793088258215722706690187376950811615879367639796249048787284779681220436448842677385407543936494806222149111714347378214392055001862780695231508050972510847426105646832543537870791971637901041740879925080075944155665645593705871067130822993349977372319866858914170626527708556785683759212313478564626734769432356197215616806166567088328137000234275899159341531948322179715684478506036216703653343717367315019397393943865707512503483654056400053629685101463160193948246439166971885074135149481871852675399012418702510742201178898809662109128978360108713272817596246547312824489887117159832077789010297116389658998453329270794886737809229948532158406185945330495741197616333635526971436535997170403781856034804064458946412791502209159018880470862295120627852565518326017498866873621559473450474033800642350463648493086583268381094258071643140988943653621763518001910666520139119683080652261345507820040956275084053886450093837951458132141296829241010110378623832855522626525022075299694538769881113269232327280107260174235492636841337082702829147321554099602518701439130038813343312659195407959501096802275377809176910180645424697816139227925906765163690288874048708795350840901297719287270211284473019574657276719330533950125637864196137805515553127679447972485653962804464839000604910436106538600308228286855612497975353849981321698915043575717598467843185038894056988811551031800459499789299867555794806947963701110725301976721219811099792814208482839146343245848130965789490516591599833845765212286976854899888057919375781909176857355558279325952304762591367375983498454512806836184963235625099127852924642169859898941234166232652531420076802943721240682216137351575579704718675030845311126640601676979209386069991749710248724631775878095122170098717700533667753820278800134829126156060831193217222473233377938772821507050063952218430718679436671484852077456239240870032487799360901137460567634078472456576897139710612951612971808587815225269705710002787317394159156701328695344118098939580839934912763058881721332258798577538249411782513899202641655556440522469792204645999350742808791606864905816870388605582779589453120977948320614527499862681298782803786233292974240829651812348764273506207751634841651998266478389392048613753068524428080954658561142919965787756978490347596883639524616381948348664879418047145987077626410502959631689328695961213909458602217461456306829784866509296636470724389342478213645915999484459934362109128839073604136193871603115010451317589550876383543320756442963216808831628490186011411717082879430343618265378731853438397797073343508646648457235144102125994449560570281405657130344538226844271690714353096455620593398836494338012686079843886041007577710742658302239596601955695846231294467271147822733712434531127385497500136792931193960120430113574257574794185823781418818204311080734538623144886725829498746675239078280619801424078723205714883691662806046178872585513873780694227015044919231183130996007985730967212806064464225575504339239268663041567216392370259906555623300054554195141470839037561453253286069557981660903859691789562556602520470258771644927227739238980762619254209903583513780680087321747978406598492662090700358565563924576138136368670659861405611108918477565205925326442153261482057531003343607327050201298955263792419566742820219090481629972553263405398164343850166285796017647556677749440618939835262546334457348637527309710896448822689654957960025302736793888003223353038055723217257658655888703955161974835303368635174780858562593403550870998566588510831744710761241724251224248525963987921162193960430870921552479814591040358135484006112812557491668704904701757550363444183934935279299210431603075620321931295992716062043954541801499634298571669736664254747978217724108577067126689194074981960650320308757914101561856436792609896789437021848261835437588337048725337665526367019873245132073509786096065946705959690728422148178902526083364580863206580564171208625322232094941246094524479194353402884062942457653926468886850217005283825437419317387958433485885795364863882572577767867000641296881796758003664831981795113143792603782126239621275930528737752749953774877385765026098582082716340716604517585031935491485375268559943546549742742867098351620752392612320709959707101701932685950627293247019589124243789723055779696636688983146929814089591129702077909394365628273639745370650437376756281998060723667884302589849600753344541083105003679774077414256713044694125407794465883480400170542498920522376921225560223881463449405235339258852539309064184068252696643965546571829981846724018659615088805857705183289679350357104046320550181632674018199940789234996731344725589350368062840987290878340149308957422004058229525658199985032456762984154673140224683309826534792193876206963560014151514515395865367100349000840579890483784824007875138073788854665691988215404845249262338530661715287684331437686842158265315247142393138890942559403659565637443678561405886516173149627504630285438598318261876710834909202819857756584580720833201454691671396990369751057436729019087668566576830608455705044725352028398834659609414672361028090035309656250483648136218948160744700971093209966708151626223184566479525770023273928339409972361463995707920123027582343683395757199068836506084465660177321698710144556295840653707030738395047189474437188079817675754211337810535245881906135601093235431997495847694952339434044753283165439156830102950537812354402625708261955705119111926105725406546341150462004855326915505333281427307032867007451548609590418520530409087176234552286612840816160404447435072235464660419186473244055567007318252501901163795434494513009220109178122150657575400786934022150435448269035209441512804101598722422068245102690796216879081119598154621834443644726475523275576482377983121902049391347772027118449224777251257176864683886722120093711588394028199893820622846254246726739772591294799967723164466749726715680487672926342853472109947905774117732230442096756102638797788622615709184758016049826917517705787846293420647622906348813542515874134661559949821076159502237722798105366951221404834993278637493548903913325829254924317624934481515100976812836917530751359666938914848900016174173263711088919144482550108210049223193398434789840792542659539295568696496878791916560173262965027806049661654326751318762713053676429536258706288502369992428805436008623976150525164174988926993886585033796813684311911598563549244815960236117268013217895413796807120297804676813001885484167362185397168595647004342831481689802852893961828806813844803757522824718669318688842275554153032421433644882357480175221776957817711914574724763815470321516518196296245113699092339229449790349327610617260227196668756220425611988776292183749945923691543499959199391506033613947036703994486819116253590010729696175452914704207913003499757042689017264292467094369044904099377275968225736569262002894307920403798661917326931694739906191070437375703278241745919400425054782058472469737496258020568978712520224348348876199394695354903600454459372765259710453797629524709511716224240153641634170273915446576209131347106436284667320723119440800634234048238540681461427388438834185473987814289134957331540029456284754531718035049533714422865245774201169117298981334691820420031984498912307536503272919356695624486481904429621856602112437037116556132502107304837835069177417653623658238225371933944863558167280449789368149904414086886268604381334725611350157031290120671531589812288787665431340249616670610317845502312722357802155466489402950792985226511128560893240123625196334537681382726441917583372570651484568448386665892997906050423712331492811207375298576137409787223242881341146542407262566236582314374670567058127624690971535100057279070557700407272267413914556153290278587015053795293706591202546642982360678535397476799532629064854660341697972377567960496984705410525933867261828386182450881079864234007932400535904658199693529009942179633073422359234070851824260996700432797173409454308154769679218310476687931850870254539887394613591636643991490740113276528029294491656547017780645476435051455427708232614952920805889333638539605481453923774207873037626987447935069531892085077505283220516496908618533678125268700949167315353241389285845504849693052925621364278937476517701815466560786415671050700455379079856001259560488467155158678077043399797129396409494350549406001003173512075279910388004666451923111772098817449309996399887016129633699291701873006856245643287976220426169859987412248669292218169415067205283236922942701574594618239973468248854323966762370680195471033376729502199187409283837586659363265011393875302097408963302795584151721724280241294781768281317256423529603136558079140128974187834654234864248144379625293045065527288207407445172127132348362735625612822665331446166988805124111840761395461048988937372161872475312334500876219743048239176027908224399577422217374465015475096872949574648428250804974562406345108224747982641964500804922821877996180140108854053098336923199784752748495523475076704714902618626037054817543343749682505039001317300043854586271453703774287129182552427229224447662889052858996023975341665131162857899246638031250186943913663563127436460990590646125068538092919482274779516697270215324891976514813180773985042656520813350179628155816803106827501858085511328259664582976923678893847432699344424880079082871937891231324205234862683152713313032905697287164644895657263075873543084342287583927052579881849387914467725335186092648709909075155746430266706314747940035426107107613233554027825127259050314644264311447883539891054303614781654651930783585213591698886028376875530832117232530949926984795102776543601169910886581339123220001463513138106467966046102298028904958817073336106645164724086036040622347952157787040307978561042676368655694083917051578586622167501667576812266943316369243628591224937817357084849805479244681546382350653135295288470712386662571227940892719511693714191839819896037229742870083832575317699799768492954935010502462136168665366668638498872466058390558186150517141368576677374767291941516905547074524766697260438868197299748523154013060704761092831548879845918204550544209177859917152872496613222886247376005796939571789342424432902602716229624346187690079405083836257261737646553975609130221183898805283943989567511962822012273401837269358447984665656351625572977251554558023173150482929422128614557993038189671714715994191950041869395058217539612082186313241618169067178846565249283485172356769137963077734047953341392986826175729549884498585820621219677410381242866937205293635974363496606673733026512420052449320230356178046956639546101645059731667593165422090002971472175539288613082931159870780156790724915232616299536501878405977174539973640610453086398836528500120765644710412935821424236669016446177685074935724430132551964715660750261634604783117948383436550881413813131732533117384040894560345562485947060444153469963972491879260855342691559188775839489904404387296011983889099576080761489152409649696494227809978016025822636173278178614915734987396600689170704704911789167702801826572703052113208205376203569002275228993439562403958017172615641149640147129761521785073509437196695008961848836135458366670402655362381803798596882722658762667800815913188406065334726546907346186751103765975524813211476474924963781476706817518393411440246095673006759891236324436961959241724208599706276888601669258541328328341106258630347696486428303395964966148261421522107987859007546849117012846179444116842116494688852998950266461328050680472989836825973577514054932975461629705069662968446353423366878414451790867977297157438862513635129416065952508991437290848522065198669830569918404683372037585546739276997936614399815954295597538298574711482060529689717213847157813830319184570606365253417966085420251046330684303333148741867270088434750255977710894821525227130957443009963893424775040736651961662461220792092471098485024632593903425303553144264880465532819499959982141824744497182189817935403708499916954576188104881658466306423983809770579715464644786032968942558563413063711513451347860575119041623144192349029636217939705677625917724496391036766063003220267784341826415283393606126886126959194098753118778319239572465953320106557330836553576431247902669834533972681706573706301567163980601894966481585503903831775165177928686704768830663722324893850067140244610347696147330863415757092545130341867372028859410240910699794445232746801426746479924685440566099046065891869776540823332364306719515596853482861147451151390979027848028372490710003455402642040693112602931918617049577542205124343969129490949009010220107491169602689039933109278778819939299017859945760346828918834458401266470843936601888788247966435419610172161508478030946118916407377481384086989661520700580631795479426648435479906909501258088227165884922493698540478947062282068352784137399463195341405101149096415776452608519035893595310997039169284103859938508377175107002834155361548037418868789487085137261083839860688720728720837154268143134710000719460929635466093167611430224221508631017792648747093636421871401150506500703478606062124947279926678014471858658888508413844387253805599672578527301142090279368447774728985420738485883702963935289035911261100461240296272564171031050768957276228301271744811020077664462306319497478349063251443710089493919344255924204156271088006474873084966669088769012606607517207131299263756360637386123077733604937245678755487117648197918785552922080318335240412719713281482114881882362743029468388449809449473809269930096236202528285303463433297441476601524638905672932917747181331852801518525266846726553970311209309963645262287574064671297557749853977084845003431704276532794970403291858500038650670236071189246450531147510466755574579048460737383727344947692986423923197512382887564724148072287912077520222047126441195115906697394116188006040500015690820145011002873321260739300665636066325054919487075988354531404512673271495404758251063691575734294696751161836115217498855943616321094790722631705713075064323733063592389454555538487945137925579506161883796533715396064671263798288538052419392331359614384433571132242313662678338592555615010862883194622429890766259719056701782504290614343315989304586781078865674522370720436852273306881305429193753276693448952334314456137901783586921788959134840496905594324997980195213669822230166725219139320878924950213997984566704946541892166205047907685837463126333892938137092471200177383076554022334620780010079197554821119576512536239441836889224480395607587777559193155581077400229002772365244207448390265412711306659762176592115324779289550924436678763388618276500941571828407341077153679013010362477166337618739647082852720694324805596449783753772603559324793199320408410876988544237148287248122794228399328640469722210292573335372623237932401987686809363530627116275785106839043176763791188839588929387755387536751821313466775815355075068301331830644363280360309346716145624854606424822646752601847986160315241982233135514479778104360313664382347021866763266825695863539259020295672251962619067500817124519054439935042708639519297125700146731759647447195992230571713856660223188136460880406705149305337093158947440640324473726708549958701939275165324095329799179493778170799979236788329341169388051684321410972417178840875537424369240379460290607835081177761438518910566864525123217549145213513767169075812787854284049068504135586361376967630255175546950915610481166649022440695245133079734678945550055468519276257363908747304889743068776944738195330491453538693747898981052766972583799736010970625344689607785962392101626559977054027739789037970007179739620088323101844989592694673517716155491989982747517870522879845921417917589142686389913897773562695667030227767282751961152718020778735797548757432484904351585421103284729554212268845982543662110390975682322664216283890773384798196236391829499502125171378741066923261999207996960248883483499600704745754866734243122536111791359273647018088055485155056001495697237911312318785012256110246749693755754981278700039403780367647044114369974383800817936686507386234996613387338426541636398509302318585961294851884530708358131456882769423943055702895059407632243853418626703846214270020135877808886416043459963819124434696323539066705791894006040105456048403486962848204862859015235802511728494058031738111078050568446213861282996804039277999801052552461646607236793389708376962475524951951204287695183620395266404230932754776414194393083515999777933253529962203203192739817709210492329253064768853411603727122872777342865355246155156332932476829369531799283637792497749299339436678223956856199499199643549197800720388779398708631064080971221252944982868113035773398883764438578968452577419757565256861396632246787969572222667269634985179013114819600912166705099676971824158979678564528919837249862296629911002947356138729206685654725742472804630733744656370973595752799823388250946931139530554539800743692744229347749866196431715049962251438443354213562287648986845658558385008591468060012287612976705859323117397409228887827936372125946876451362784617076877796407793376590967294559228682324326633664426839292620931893385448928437954857064134043634749390487930718194305196930651606585340042343343129573195984333910520903987466677454055640679908508005595324687890589293016897247927719669500687338550397770994561999194026815338251039497488760430870452650937896306069816536895224669413343753722931532480109500326965189511715936755728713781276013712457428256690278456005441381911588808694596452699082413280274352613920728711981940962347639234318146970687959363698331075378663792273912496075811387523868826981749939848479912750419738660693602364852495372472148432562483551170709322792784465412027705756196012261168040089609551132877266569487721624703041223253335755991076478413306017448818167586926809970588009434542025124269314167936320122050761118148487099460344061047450504594127582819952590373470486863627716978660817528071205551410638643025182928865353146066386558788846392447604400817491917638323502288268767625715068401536916057232501113890356323056292228091902544146762456951738005068681645069441937723741529988826719278694405678844475300857670897027402586389397541155253784978635924202259925942691938590850635383305901113818506265992361163616392865015639315397750158962404590170457339360880363511910394008774801808007526078507974155546277125694058901890329273021824351714300353568122166456808748156441470679660737881239983682243615123562854585610616792447171111029456920191164510618336641698998605028905490199491677004230701833125075164018245506416225449034193516912956062759048769799475251219893807228664208287770010956132986581205229523161476107381883047423923772453050298115495528714926764445985448065047263071368792693207383525295571792174770280591877884617103513527917794777495152973386917898935434973360054389979260559019488755281876132082185234655865835459693756993447689055537946870862905342836720122709632161867323640030376945533845963750185777567678771294878323831795833578987095091230645371109310727257177183458064461994312779958798624819160059312312415861379774685960672808403370290092090770254516945715661507999757314322479386411109009629747181676564343623539517151814235951937835750545361004820473855046385249918967091024003104709162854484650537182466442436380977999058100832045170070648933683918948375654820938563313339744017388407694193709140512459062333010651977919051072287915538702862623815495278061464584670686668148069478683169268931667960994614376218734463017764038063573421237401159307099913216214690307089577695397002421560384339680864058136004318035106863311270898421340638208055160445532491253981720011738470557294300146981970948495736162662014983303815397283011499879305203678178066598063545367512560517051835066373954719006878671996759903090864308079892155567707946418050817065121406328357208615793415785772246904833821080596416850889574911535738591775718472004099242936175459234546864595433959024417513012041756870408377826701036802935556320163080117295318629772678275221854707586289006497269966117200123154662206129250993384040535310884027316858979258404258912485871733577113363805777609211610618440253495666299653919462473992047853419758969919024398047094479662965424542253720448715660490397615900807895944789174646734596667883872523863726559720379635215627119603647015076389703390853470454543838778304262938961470365787854275052778432325979274340985646924524060182938989541716438638364681477320353741857135633471033613961198497091714238719913973252401803837811578055155697909573882949958853141612186326546222332747814228241096987544834503063623908238821273804380530917262055348929077058120505780936017561605882576691217746339871142940988311410426731685615486944346557044357164800560670759894276188678295171685960838252988774216006096302796382495090751367708049588999260560174122566268313119430302127517958824971533711324237323201698290765195992188604610893121932241710111738749872532691611391581046889818174507164891329784601572323557181884811186693598432566186019373603588893648757091290742763520690462826776801992029678351029365160775456647408060161254654407272133847759085079268772279807299242044302229180953635496081554618092794637411576254526699131076088875837947441880410755887233925884020359126191580590480340085106741471559435117144991838136488319517636876552252276230989679281631771338579640676928223960884428073222604189904903058996895986992788022279760182477763767690714477444061417907376071076753632683582837861229848730652228470791874886482989195787599358035789074550417314705090386599843158530493069025128414676061885569421520539946735226156373518223488392293743320290258968173902325028183109462772645771791897017217973852145122660348195143199445678063316622961566340885919071974136062660806347137843263699547589404991524681926208782035360452711419514900013201967707653637334481163156270806655800475200226915959832331574107754353518076569910225544990966597627890658075373462996338403665991619288523220193908264934537453827545736144112748152359943741044365776562851489953396923996222754035067517581160738089863297903295651231740774276214819033913059685205814387491862846633313685159559619575302615980877709393960531897434868247907569235553821708081381053690195677746489342549501932323492515720393659867302107527972329229554504342525709576012194704269762422331736992655056991522691402410558156018759733041428931057814258759595410020131902805981141732033663137812814174885985525693976720553589302754806809379948138339151984861904858784693370163333455699720864055282994070230115486112279711448534685801895612400871806391663415740432623925976339663891469888773940520067113902915051053783873496468174016677018654008632165583346953337025701399902813116288178948554605194273476260640481487350476417699547746849448927715267799584389374251956704943262381743002747541582318245282112565498979383589201849006956648429183413939618203952815144444085892733427234512235409139990083663389713756995535782534376559986294382838111348683582558989945867542183069808893271862565547172278648270030083693913426006066479338387827001690583737923951427375381565495551829289725202800921843997368259213196271612335271545196550987607015723798855590886391133768375643827767139604799754709816221270661939196009157378991314197378216306406887988232940924787738492616873840168548503150813629390134353610003740509020036965012193990111546428022485522207729687684934005886359959297714533650567216099029990573052778877818933870947703728724383932437133357980680349918595984978093375443220654713979290822477375411476996301020886203207471910457825622621826724141877772393624229400930106109909647902179861545237462260611109141591085133923722184444813990827088077236471514625861633816010933987990715843475374784560976949950966093589322139121447031467675073920411987959603158474181412955961975216813701220337270691403267983599598355461814030850473073199835389154602284212280609590525661087755576007102606783035657247746043854290452897846717154540129968896299672607085828749902937382400530867146774723959299084297243436740993698557169221376216734708690581364393201974761683135039831122738762591391335603818728992601051306928234303260601319425922995492500864930320858507152333154163202889139960507856083839817080416708623469356121051993096223636125192840727905867518027932666344927979767547706192909934726419365356017094309415715980132448437108748069334003584262358949676346118144886495477634743870061118687502136617368615333454095684954163806317672459492578978208925039781547880203823213725002880502948210032189878881319325925315210178209288076039228340139450978666908714734961850489691565329506378358577778696873015385311680289204316426444423962918589338575262324761223515942848612509004178479605724538528430045956329702279962802565806156475978636216759920818718966646239799037890302266516362683776113001849360949052992410533399531439563709394682801579349156752734967057901210229489821073147795537795828512223077797161770272403030590973994406111261226716618570779865714886976844378104689301037280106038912257958069409515353586656068384408519934957677065410009038966828337930979966512647895454609118173608464907715447625763984717017531205888597476256172013512416167106979088702606917968773584100599407904261891461287873962063966974414635041276017891544678222187719541112147304977771860154012211516698954833906027375216035259439345602009870552613154634921305171456988329426587846360677995633825266061077844055922209448832458020900939394552878369981648698034831160541258174327746251020533744892397238749974246814013088939794886749307508347952198681066320213022897029951354104582864984619684852424797309080186171477190406606787456944471221352842111131069705136608946827556445754305768859373853629175383832988696562764504178952652318481361914781800511936814575453392005463923029478024343869144989877551735397561555699359856266911104242422401405910535230187650051232840777159096099507841758126065807824956536507861246777546708199385341196540851195024854872274881391804416481255188705486632070332673056333017023655477910701336438913614720361092665611782423814493850538211006043891753704703263026770304686930853149192165535452877080305092920375763843063699073597384046034730381511169175447930691051656325839906596226102620250276331089651595549376224523472122648771248640329656958068840842277720080572982680955357520210850320306881696229506730288577094264295682380757203468163906753571783277342120903208662125876169722352000024719056404148485876302041851775320476662036871386504000496954444005419748806558005188428746227915245335509217094131069348282900497737041817853144077738840771312394249451128350021706217220398636398109503255867762509110119476729829992978453143095378628661274513023363601194691085324024669233349304008441140636065320101167301491265438282130094987561200726305231143204686935938212977773943265033435640168562215285347466092913500432554222633961649581876656173338494775057307151588059956812090607931712949231506479436105771201282822556116880071863868321479483005132696090702306569238513860182283351833184261459194866827491848729244705843894226902344509893922546398067644674226567590133378884036938928681510949992160506454142347435976834588417495091354299574253692301980982247746236527766916862563699038330061293887769218349521401963957224032807029777106336892914796472029981751361855240301526053498715418804586423781714544111981066675472566518232352926225559601601983867374947427814854393297207861265208986345620559531760206427644737955317244596285505968119896817617786024793429574853279211754823208745179853308301264551610811938092722714816890174922186374355763325756273623792367787352970457084287574064601341572187404335653878735299030542510071817290338546320032059562558252397191672509819220078110237570309077780545780745768715693172539335932735288653729467549192065135183950798661731818113976652210199535724746907964315448875690880976470673841654219943606584784723781966032593971757542011229107929249525809075397142239100329686995036801616984909009211013499850035997530692477240857769806344934706986761038729256691010708397698335805982912640477212047385394858387630157412537545813017415029067613028838500137384151144220534473192173300873460195948718421450474833574392720253714826909873221794072828574815746155882597734301397922267351111995421508060117079248640548355845201351775697385374918832405484302553187915939748371539629003210736283879998212306922319793521100286872125504947478122657089513495129828534915210892614782336615204783573349092679415026026259503443713560050535385622675783027004479954933248765696314198682521124351655785855159929171204908868888327408596794675677002972766493371268423058243538090065204905021451845681007641134484690684431847258103593499145806021973206508780487691072737455793976068078560013536968024677575987515978695140306645836084698045455118774975166545430162230121427942151821805804482359858233485273455172217181862715986778293237055797658981105279080969326981572352604802002609380290613196760788648909928264959058869667229590585698301884515390114400920325413413027780414440178724877625824168836517894579057794038056587246789615597822951240350508264560238308548176811061948579075302628121656619674502529310956108388107655468915627065758213418202870831773363181111601308388066419002717066173614900876815885461759419736450157533427981917826595015923072710271126483046941077155891795977394954104389829041785794435080657127703912787051519229045589125241011424221204129232981786850324175685374362351754184520685915184145719349367568786813177279529944578729591976621783632324676776298912502800057262480503639622775685571749157062776086219524342210174847735575796348210931842557814842222684038477313620269467081255465564752810971886810654805472943649749603687676592350405551546806026436447359396905623811042674749234007792849481061692275994891028846691612411411622775466718728030926387123407713592718124299069432194879389510890501038946936539716142114313901126693404689048039006218026566579093005984888318342694604481179307256529649996323899599709337072717948721713069979566189020876365641966038012365162424695430640752007061602196148905369055803262607206953246525540736222491250681422940452885689819711583787574717393404119651091249498599114047312153140196048629586128229475982859679304261995846557668645622002633994317397996466902344106272394618526044371599296222887866725946320797541072369474124933849357785611009593760638856744892981810503961167995836866454266309368799387307780763674344452743576463654015377450738089814847961726442909907448804238539865841015050866951152715646537240674706866206318723248104715884065669044282564051627856284945489867668200613326787303820162155491755061965815326742037522410558649652894572406351322242464304373296305869649865927140807774933637092767383068438827596157906416469252070375755751425843949403768102520027386116878066363730484775081833750710389348586234505846263129779302759114485001163013286526635599134130636260323428042573248024082861315151284328583374918149362303041103783377233788038637438338314467588299240237304020240407219566709108050144749468212922702252636297778191985671289666116810894917593841623854413815658908880852025112565807528509300744851721391387773771235663215451425663018786930639958309447765545569036944186367369943713341434743268859189040335867586082626272239604519307696762066409012333661903459853866605322966341223973000843861714188449469692582688625604321491870982166812978377767908729627368838751784702773438847327897046114370858424233360649956047949448023872066116011863041860939645600088293650142263370276654692027717793977876472353181803182490783558275971654790852057277270289351063775672882822680591869789987213496919284675519248913612253001244418062034680725876337428561082668338474078921963716699771537041591299580055226902146607946585111371004322726287000615767055728987030262776633346152927299224917281733954450778520555546087363310381804593777041052475401039429302196122646474215794676064810317795662013543149217402021479728651973915805514253873228625800794228815777326444140770836358947609247865117034761261573711247135424506922914291803638790777190562174699044800801702691622977552728704353944378410188809772546094736081026149535278034870419650413887180061565534770006203558018517656314341647068037423356534462454214933582817803006125156849886915870926838166889835924864012373834328825245873725399628763672563660633782604796696064071541603209883100057555144869577030864172695644257586009211823800488082574850157033357264695302549041828241175617080511936409959602917625635235369440405090933185898820739963066472926695573597912752415398122319769660284973502497430507872795721592909523715365046277875597213415560853356013348881944125064370530508434871972244237007490585463140161275935967229820850819414269907862608861694039150185053474609834858411713681352158823663981144752437664628158714441915256208756141330897078872179728192936374171671503749026349488020466171463689237274400580608726641660553499138573657371250296528148048671872915710837403742590072067001696788154169421848611633621655562220309172999019470391711033917880002215778909743779618096148576782970136624940047951128525136351194674488112351212700555326447703080661649256570938447209361020695108547099827336607915976343858427642715889676821885742131698289077524726828524389934121156148511035700231152248093163039181291580219369370286517615501388426624474036831739027719722177498114066958835885761475345031891207496004041228128088395389725718663135353958034561826496965416288041950276333324066451607601534662212834164970289580121011864600495221141020499672507491469766193375996748266743251212315806846591735547610856680313855615862293063193821648103553242719365822766947480011643262893306037055041015594301534360225923932815344217921794126374651173096891632214627945503809330494901075950996738462758194762727978139323848505022162349750449959552915329511570773099074399618581899490922789116754813245808307414142439412400524573235912998079178238602588420461516586189994669476335130005405196361917234790146069295861796058298910930931736441916001795535782863953543131492367657093923553272826547242669578761753346844931720440137919487541852072980851376378010023842381383856353129556407581435345505182829941186937372022821699148644145132783257861196835527238381400933534056501860764418793962607615201777100838524355897844841814118074074392482289595089651064330908987189314731091437800081008053314647729436913609665667093055355444453469128938636937134796394549211746555608451277209387714531022156565500576953965699915327421292896263644202153835469953278537234107902039589633828046531119592666107051623831845120513733234950900617361841839331614642454855176278515905111946550950999880879298977760759841256192133256716654152565039078526016251438542253580211707012371940836002729737473804786451421526743297848108821992529552565307379518379810098981177933047156647855114707602725566472367654682250954218953974528375525186497464870682981726914415332014553233665108437185981255334730201452683168319330914106935351484075222269993231720569782885723849548192611066511388621795664046756476046685034790999758144837260240316858625498702010773465773137133614846363028670338695168794645441229833415024764426922367535938116643439840036491953236064796298201901067981195578517535705967704220739900751044412523989165945001611892439215898249148693215941905039578245260975218923076759224500842500897860952694647828772469841362138466223978313594574182742049819008069473723246699041191952004576973711225370032627892905143531772272247988421439596231155416869410455143518582580623504441862075838054900090018325478402106539269791585521434769615290978957544448568973142944079181322189810226022644711833947490461553551387274748739131875004355636123757682988092972496836971858975373216416781902582064391323543618818838665593788653076086753999968951077427408023852270285790919238370972505449391431791324528419421361796017782821213312776353225374515110955046390072947328396145206427199161572140622183071749654179827795916345209136871986881452582091058337119055351803042250080698230889956937169605172147553551411016769422716536786743348076281508715738802200353091130606542442504866553663126516943277334567561132436917832191744910864564228381096630019729614117315659566819637807710532022293335442985485031752926231030569210217667605283244984478509984475468879458710846577762878978831251396501295158754014438169930360411032032129466117618998467224039153890733193020147555900359552899289591601748242435561067438245576867699548299432842242023247340725978427582918609388661672188637231383394433167237017594296673321331099488849228849346276737866777787910017086315079160370081023068374311261848974520829572331911445271336283823773392775048053159397888883348345990518224147440766431173790282917678984503965854596964234895137027967901099001438556460307993266647252206046873667771069586713672624683513007087869956028626423542469465338487584925297560696404121196751755227015516943450546753144652366375753842793735739312296530940384196162781290027127032656755063422700743514003180467342187987996659914168199046980213909878045175745693657094490415131498882062296440738738255898132437327891698612207097493552874376725602868725136453279339344359435312953229466988498022251977660445726419186707694042963361355488799085864520062833876850949979786651714756182107273225280298565074912682627786209917364308036939096641177695720389040730109732583366811543685892608303831897127027570240316184897345779304364587386856203989704379945187481453578377006606987276942959800272374994580264324835266040886258741628244878890652404909494642385460575940979015093617143997256309404688448040944638358574727151716320738254182420108689316137585611017855485544203670568010269942567270018187184478632885010920175430304295148155682907287309257493764371784131713637181111617003655201419416353825385603465674443343734368350082392042553228766246912085667819852054957751521036448037751156620787051055007639875942250038772306105345608502651970584713222138286625845897427840690828124346833010534898116255393195138883240412743405180108954046462485448642558706087514527568931734923748267475448117923460365841706911707038503851971846782146274464857723468614558934055680991757238964378850762159774819151552979431544614625851224151083268123880600953317082615772767761430800293237828896813038418980295860182258069152602109056819311626371508499395000997537876780786841770092461455818406767739799153543345950003176761506375365728286088330087280455586751699898183181641628274757864292955512619794591464100290516855577783219140760064587275146882067799701879662667022170086389717663345333696862470651119613677343579907503284807711080268654829400839608780657304818596559209996987595573577040922525268020754080429977105443642654669776663642136091972187994547127213443148698827060678281910148417130309432921903363605637369825911089758831871056641778255026820044320216523494578880345933612996837823331474455471878525311687144396670197341486679587743628185257866867800182383295989660667750660255871209150392674888725517770876886053333340631811692514142444221050342820286701110240528114993298242174689573933631653795348392739872235385546139343149886924058265165826599433940073999293654127633063570780938486527719127748132803485104440242583551236571796358530981785082493718034072568587951450116227360804401973187731573671347437126644644985866392458513942821226312515909131775512455780907282337907156261675892916761986543126864090849943783690379532843292007739513530628344861955277126532419745672684915281385603472933284196940210811337736450531325841928080697166473911009836511955711524425482936988104675972974894173763662697784148669598618014046874552180698139516369447576057067199420447108651075726502071438846825754428804935281398000415945565380432041577287007746063342747612573963950413933850825101636807928544880519819191036432295170830060391399245408440159458747070803134586938405980438908275738536129293122750541858939950346571634738814728565738584665953035814063369719616663842795934544338814785809561827787913726619589188346009680493242073314305201909647374613507164005077681673567001446707897549841904637238952536057173613990805459229503587501085064822704724945148213136425040337089846218341798898624012631371297662568769163445203692304115746493260760671709143516424600893785830764747243961179674402386069758981329886367418591154342212414862198846368318894312770688405372370124558403205166293374127329490399848554302077715474923415854319205530321809680100416577147516941594882470423718738938724764932801291940006660586229946462986839281578323916637240920379857385828398654712809419298332848176381769726056986914824927697779950177613292013316355151942975117069008456508194907827088425095615447314060822104468589060137835355237105044921155145609222820575735712217214576232041370547551025750321058276994580895171674546846672808154488779283325464055573050313976441040239020102240632204151101786416643565678187256591677029048648321776585652012675210765781784509797184325376891730968162940630593099921540693045465132226030570400900838653827533792976151445606000575132036128081634628089995268201940173241801585653650948360359807955524249674858644259330942883962913674289609357925196793317854055106536196929062767383286710205050497059074994775210275091739059504698032787942617315194503764254312629723468544611635323135967739227774284416673154117596215826377514570995987615554098500872706915416254863936584081415053225809607235532003445665807824948258148386756577665690797354653339153475894859736593165681165487372146645078164449267828783942925824169169716313798190453843442249277971194234540274865289804633562106294442353389686533604116680601772493549415364135943089358201475715200141753079925792118017324888989167966393957922030447347765288706873584659251362559825678239089789825012845895275445603359537824902483568475536924932098919099045413360621097167006512904935131905552253383846616355771754205564080872656215119504858276824069426612819139594712994086285141944447551957726565995616348672596379074594443922539784978418446002107564615429603721422383214093490850180750964528367426456231754002425498000705319839326541348453242937400459805430771818017537815888076534651005200662193811679602801767692618626793072265992278078400038480597363987212850896155828942222776459626400567820685061293705441338720037384399424515644611768631269416046557504859528596522468133926689714704077492743505995936264490627935172821100877218435876003262187407712942429450566545385060718348267255305762164045095404080628442150980852209331691044945749544649766503197581212857036097501005165282088912235286394981078730722560526101408922967771333652855177452509934410387466379065625079067271262595970632368324690193989338264340724023403609987031767797942249623118401822497825816744262517417095238945464629449865639594526158772806692877635716697505285357032466550691324032832615961416898790602701939044093007986233333337375646692764916064319066627849494490058537827232459797870027801951405323865574896540891332820199594838585537854954289844329437747570927052065716086930063831778700687794180907342921353691422425710835210260342504634093295398540274801578690671665812684844724581428871430706701318769881760857023696673525837376369568332657203808782462984778905259586133446141584293518558801639486580492495848373352224309650618492248114036775039193363346695971572932593270752128489161252724232826603214351293311166896781425944107228307265652395654432905907251593259402735604982548261962066872249168555803898631429831737360072556718714456150827252484070736220864988297832306904014258419108023881739798893360481297691444939659198677992490912765776095546102823975465937530215248279778849447608483665800977970603380486797652338961196182322998757703946314307722555493589139823771773055533925826671256956955601976199083209309423516899878136541777855841169391127537593667863072332648862215985071367742155381707338104765053357022872904554846354550337031487072604896348399145375184965573518921234594350961657762805227670486568023275750987823078627039402871374354713274521162336023684588592012272164205444573403469555224217461595266849697888197923585191416237285355253460571020588472629520775640260881524964171638388005992298518894176355117513066395449213348557990471259297483071228835315713663026583372442728923273858750371280075918214111799404711683314003175359441646895866591541733148609888306878468990947640651520925206908302166014369998377037896841551421390039378367212747311874732864843431718315482402093777153721673467000687578478485567606463707428522133246297481442554917812351870306233923207545609346683744073321511051369743127652039488946072103061398827012817681824351267358885155906338509214609737155900274123675333045068661951507715386815534313419038274518388033214392038760795437167110726011257837509154076246118477420404403968638788312274787817540835919605351415025152566761701204715493434678549233444567549424921216839375584741067403109253596438353825343776396123431259700843915926780424387536227062269123314367263223369768176601490892182966454409609188382747858253857994657081354192070719074379918140628027674935374410354052547700200678787952978240007566541375619848388016952115686192098389707673439731150401452137495804593288064167903099101451775817487365571690273299930492869711767155994575801887758834948923457952250789116341993605896909894045480043724031612705798061155602653510128814082430445825291713124715580395674298066719690346802491645832128118844613839333855327656736025394903168113382596890707434428302264202417232135195052164650720601229694276404973741013176802212095821370744115986196575439115858805311538910950250034478663685947888189227438878085878946823441239314760905480153126766768123333388220538005696793705036898253530830939508877248743826068119384908525642842427903818866137112691089402533837876271743919113596961577100444848435193222679543562786770457013899519056070788716279808037322173580784922896163538429451681877566413309786971077018278381847244656484727409015410721403885648963169701633027242929908129928275535385176723501613427545006261396263657371497154904077846935244244514461677826683341698274769549716452038317781720433715199204214160963474804201939110508214503956326488005055349220218297213865167496235809942107373798636125216298429614810897647451902074978246263308975965238308181424764137683530840330959954532438060384429822179502666671647321777953131734258724559955091682693825995548216265333445263813211234911271375612540470010375205624449743084022395527119126048783721433206610067769965831872540608274141638553454208903434568892524321599970332595349765891480570918447893162115826160379975778074886240028663535370965728650564787758112635253400948763029726913563419122270810984502845568512491091631874680874206222174256398446150098196477790707095319169820862980294558045788290240119602513253736254641507970706124276158916085972415903989391770291203747062206937671974783493429671768801844475421564521944951511289524049991386002127664437385148778554033207828508361443407477962747968266087044950042798552265290956161369834019788803617906939571798462514019510960455313671801748886059455798348596538595240576008556159036745002559236727253307643167587877215185876623341770364691311069852712012625451073370229351264038469704840951507111889100393499601906139595511447873934564532168252896320341007985677454812985476591332499491600220467025033561017503969509622203284655586717011374685317626481487521237889056639977857367803276009144663285735782514715922762081864388091241085611396717212853907449348638687476699285658312419848290478550069388001005371830269688867075446030643489527415467282476669575788460875019954832999798991401514693047788669058607273683152635232865072980818765689222692134805603830887732731462432806764942809243867746459961433929860344855022909035811945318853277987189136519856132833982043120961809168103668076886956970022727294771409584047904129384980532135149935645850655186867061744447458841000589774182761366894812211603287701284639883002174134327998056121926363809121927174522828377709732184283235763192013447874063597821812574347121490942589427995690958090813509650509739515331227782938187426641917465743177385424132122807448120794100474518456242981714598081962530271594884407516235727963951193715165214924804021057430121817828892975932829265530780320931916214738506116571073638563666467581364282904393608091443911827718608220025991975253699752584938277436899500334678164908225339409270508950575061950950094994549354697145967731873257226332848757138126128726047312412445020847742302266658424730371767401926608314017825038822772216484688359351481292961146126800397812482540488098748633928726131500019912099206606227772140783703442344185077297475238619329969083023303147214265431158328542110568680269238121546410121967133831003033412877958080964274968668628447082986473540660495034307273144673393048528306265417906361167701849142234962314498637259823778292240865795121603251590489733360413979058100893502670253905444753236819168917160502322832056933301799552275662556318101524895596798932983548231945447086458160411357094699778232343053089218886544918032275014284191021506206722171502446097267996146039020221515474404544258152873716955716853175685741129672242529210614102181862396887973392220317518165157479209209937360187705411256781033200471676347498529861704569586201580166667336559602532816078568686794538472399162967479067295790747796874022655589025232718676365881929385615285332035067125344010302210282225993848906437364895674899251365082076014528676494776430245218487106715836601975197943173234532847950618929719176327493815994811762062048533836679168690442667776116396346098126490566206692065059253332222259951395287410209797788134880387324503880307032637651836570493690939952062390986639546028259902884293481524976145559193037389416590413477344764139920461813067520376265631123979148566407992479684993726048766803762771892830721780469792225076523330071235145108961656745553541412781990768347012601852440301913560147566694529046318816320769569744885633034367363373833159174692655899808361012877543889328569643698021537892167603626850150388696343935683408205262805704897635292580881652345801168092324657574739720772430521973713815446037777291423746430028482772957979940945215687791223099966635195234562354169373383792890220453168455167858878930919121228482783969040801416853503874087145447226618815449960202117681977717858941598878484453757114694898588745770906089292796203043660377010816519463929959468545698669135726972400744446825322909349041725600100922428763622950595923542260902224272226061750051832973726875521242862181042646415863692386498112556982565280528558286191219401273481067958564300749981286508802968681113235738011936688146706635352443581793125801541661425135979326380606059467329535915234025597510763360340267790221527222884364299641522471040668790769602866333941037176664314125975895639436573683202685465508339099139635348835254006349900084418161663303404742748289241251923915204074068746380677784431821732661031957494932590668674268522180405549660951225943854988303056946160191980150161429711258899969116950721515968867828682929897713847839857012735130658315112365644276552363316800109923465065116288338869076421173331077503888976446090290784373147005981297583309387065910146082792579985849910112635880974595373012085751763291426615547648287994295474102155382022417554799203742595919074722165589179141604048131458292944189605988723900723884069440997483284743253586421226292134297273321954188835841735019675718104865299482231220442833749514393715433011983249259997411922361108850328346912170319617941001979352100668224228352713448131154874446139253233143123759070038656476721313457303020728893198638136133195756546618459095819765519856243101694620741590616094746973109062596900695297576395133847153313862300124427472742927054969010873888568250393858606977491460006013605492841883352503147691997874865553304834236934387710442799482557838090118671753163815119841294486894007779562510324474043284739053691263063378778040072904646487167516879455787195074312027571880807675870986236899858113628388209073260824190892071104525954505331962413695195688410237450385528404577217574983421911609140740289834856733394912177209902178638161321357722756312117922729962465000146053953606298832538691762193579329638105263428561884519585921284693934061218715438353342206380478768431538540628947920835890561957983591401045869798601626627480286589676177637278084194024897635424955917126928933292730050576413526206978003006329855614921855697766564599252329695559141383891976157154808027146957248926212094150410154790670173297238102389010306874151681586450680343480902158334302853875743405840169768433965099013583492277027559865487324135338839762875986727462173640669183229306692116638837272980720105116356465370472178530593970155323665788378029124660474011610207761053823013877185337059250682887459519113009956099334086205388153658895690372549455109294252639354225666261888648626186943310965188125653097687009565716463531377757847220177908005381114577235839829915687292985660853698858235204934570007642343811610859563166943803819975110645854153367598796268122303257617459956594245624078175175727416218008745653055599519783338767825825692195017878596979960501831279011980472895890684397160133324119845033070259541274666425246530687869670477591832582343716466751817719119547705897524479015928453748889517706925126618347698452570181483172645501176699330732878510466495755248723934090751635497370270822993021960074284267904091402802160745527776481933035996000143974341403851825529445173557761638073912114684508369362608670655286558581100701410443024913212889551833113191633874707285217751030184472221324176324350515466563108576286274057575682387284725852290172712675118501742611490519135985066036711446720194173187657850683585205971252728250549999751400126617533738627289724381431964825748089828445052161942056785878619176297270828239255236672126989150696007696484527806368262319018770616175956616183059551853380219934621185244944039627221713077174176662689680780182081903563192314351353610250127937570093313215516794080949081268749969421690873250515115235174158768581177096735640215067065985212032449341267425306119384557880019137304016692112461817579312339650170367218782294294823797808267045979681455755216849614469750310780799122188570379823319870379494373390390806153246913981381558510576214523174868784060820420406702059286232793146590543937284141302028096562097551896108444747623013848774435607876882549633820913260065294480341086640639799296470102260394714353418320093528258000626846540866036898447383741124681726955608002042731532502878131735548020159409041614217567156851152929230387585106168427809963559840595189876115332328332378811643539228209903208297689001715456755036470633879507699236388280793323283095407482392252974380879226802435545238247050834550809620931116392987059953963092282853605073802594859404494764759989870891049021664378577847080503828457770801230708629953712354119245649879120098058654749864235084139096178263900665527814412657680148576598859459507845881508198311320209906990730594094963083341671738945365014131469132161710708738716706774181355674315657514075658846016624440654786208494550143050158110825693679967724635654101645158061374692929491195438606849740501617540078887538190796907139967331125511325979456206057501339538821734107363432636503180382814369311706135711611680062962470235414198896061656097522081226369560884913253293079652152339794639966640399059231930722507723163589728726759358986339193467784255053940091886454797246834665981210051368350066801737471110714487247979390431733386176544144705304984184262764948210587489350957882471440823265247845005477824966277862640231380359225892548742457243901822124303053563328251187178112160665600948193932664432015006769163339644722014539102580230973238492838306789820565290589106475496309023030792798837365627699736761785825622649690215901759313663290124614843295030996422858829839721314068936509385511469708555816028038210611347392391428613364542096500469936904056144141917185048841836891042020852200558855459158980136867511651321392576888662539706357494321004451025288827473686893985712365912995029182960312787202345182853829639055807993027935932733652482719502847641297269509563834419638572509668897346408438165604541480729923262959032923350065060522748941982351087047807583152843730643279270056513292142777435885036630502825654361326655287653321789035822177341018924293325525082658843179211750771686995539228902619624563952044601091583947250607164178142869827779233686109601891061852528207261879456862497504288403632630829775185986637353942650320716146578432438646925273186007872664788524350872726726868550451113617460240013620348873836579605457922623093133607425244438865174420522317776046796524430051607915840444993689695500953936320005055442343541526614297083687217468848637089623918481604516261058366572793084503535235846665177264736398592177590236899807534937724086604464673796922882653114441368253382035260540498689217053195327316979178478086237579950066221879685487672424601498618695819075861005366413669749117303173021235753101854929222306146052203431191573104666026387662913110971596489845552804539189143762645036207752947181774696774330712413676062970848668850317273027490630476040364462007725828982921097792537959071844579819102597234974736516025638999100809864223865280292373211269743159509132123434016632044970411461587573636724135388277535281489772611547691644194061903886103961813593981842029259658279653515037176885808594378456729510199742180131644756397019654713258191760448897288714652742800035748023908443946059546381038572735942595261923168411596321028564004914231019385899693553775007600271577457032612336807870274301338271721353400488725842554040574210885859937160714727612136928653580286373038478751114993371101546209681383371273800606547827838099841460884175412500003448191940919160792664212916156778304922637767392513844155800518096630717726938349617021864842959029097742795687581161403536533934280235176705019028030020701910105699516928293249030248066650354210961415310496576334698033706134202078850408202282510582278591268205861101123909574746275684453075833900201696280643708975166339275106256534392868388438163285237821843197202330534139425246366298553100865349436315114708490492742939252769075982391289991490648240045998997422677638781247136208019262019675655705802681462933103647383872577099979771080648984994290541847287325875135550140992920230812269914674479191815463976643963682791964660005653984450474986923172133505831391829815606437446832856712729767544881794775159162333167275691414723759066008945447394941216890053067351913637070788912529831484390514006388532985584051652715739978375819969294653968541786922315914504997661758751448171515512529755981663402491951873793546464495783069681781621036915631616812960203310663915672831862102463110310288795687042830624119264679617799088050686384168295309483522632528794682717198464338587296657785326367787798621837607598582418286180497700028847538820417986255722648524059509892805945187645522609285430301462642451940062710257333278475109010748644300319256456126796236450833387799762773441279341794064783507152868247611545911763377828155429923393558709853697610264887999631919343599266731266250464808561592404137301241483840964962188494714762842383338484521191111383387386874730402602167307857457703983275576072243872398283767738256488288901426962723015583219888182130257348795336881944854393969913304046676279104758503758474244094571143135274423740886671815043249143129505049523689030727860488203586266652581185176702624713047505996097660395851086982176673453242843082616390886612710748697603830257362207301142918497893133352322683408794749806438868048920309370383265809540463650140436074463528450279904554234984349731864392319441992594007569877042707505494511169197640794414531813683289102285292688391100606894559506900737637022587069039692984566976189892832348020682640101284433646116952274898684690890687167236234317400443904393484947958140134337262981926338224076603486754088547910461217010062538908167809566484658610063799263305863225391805640408066565504867731799420930404828930622824495566617219646887036519752162311904371567318814074256055627587535401194524406531097874155399140318828333537482487530484055599190237703042267870085799871344060449530279665596735695707192247754305735846428885086457853263705499400986338352605371557329940424175971331187166603904735092713253875927615982724594884441648108438378386125591319039018671327812989027241899351259323385940133816975707972795956946942136192055178862323822221720794061149831975875721109873174547064747180328322857478087379007947494301598646234601791252296123839806830787708132476697215242106301339095285884131841107875563487566903401334186897341063628597920472589244922114589671925161805774401939034471494120995786353823565892360123570246647698065963972263608656560603488097550617466697130410352142426498104478631755088344481696316354022384126401459692240800771527216864476195343604646345184172119790051348136691875215439126489939899754214959477804902577788702737625322310125434338623618370496410792128560531581950487039394950598035090942479003815962377334173974532443285261658904767459584219015425824353768716084630290769852058140675252638515291773752867081138709111384757463317951599236927985477322667369297332248055762084977855357573214016512654414443537734361148618455631848743797681982715911828648212566850093488574975091167885628417347789998381918536796793838255109439156120030352538079079148834531694525694746650114983707693094485717602830235542627028254595628318701448013428533144700908008560840701921936740760749928376872685770746103232570171498316490798288136913703759296612487129554021831502042506306426740838187859823372577389545767454078080985032866915824982284978257127628854096900395220257476894020091544161315440904350821286966205667202297095671479001839020281537061060735886871750071866190949376219275608414081603865220261828808177659935547634327033380651477087919992908194265153637192410585204731212737016778875567150279284864975477764258132765132343937803597382562532901748620817080912350552913927885569176311631848184632913448895118401109972130111856164745662173857861841013685655668653409364906649342122671532087402859857352469042474359298132919482147966393327715675300653251523514586083917452786162452891325966545920499095720975458235704811154227010445487068899760913274953775945452656096794891895213626474231235295065326703447422058628553383966513979045970544824441336537441690706577519588815629472331845013219109339477228790248212624070061609783058375933134845419112529692713127656007662437222367760130112030283753695516690979253952424036810549925576215010742543110391683273567423385138673403077369519582098108620876001165347710128537922344286204493317528670813305913793482266876139477284409485905537857618710500394883045250142403129723007699298148496739125300388449941265817393099702461648454120332616398002885106825277161468622281733665112606022466755652798221759486906639287873976803981261241675962531851737954597859562209803022975987250842362527645037664544923463395880846790465976163769083901069258878206011611756823813343665506357271597706576378771382119436094118531867479293520492925720601458036829004469191070041751075302977468506052389982731058981197412229337646548613110263933256436932354023447576008972843132574349303919548278731897905762276420613949351005257652957427504346108157798303706361626166506141185044008276191521430657523302897752654235809051504504925807238537858617405667544490080515234155936931707630740941432413226354190854281905422068344558745693376900743209415459034865414592612117568125410342790474371697255722730075133897241723916204212053578508431266780905216089514169837499008282268805603866376716223129867354415283684190953688737955236022359888064118358590273767858597824796864194547877321648432942319988544335649082721755079776600627663773923775640521749018841512083572827457264150819653540279946588193157529236417511331612757789990222599626419222471550755104662165175646664598242590658630475385112689076729478298337635388817895822806349632531335826318292872981051270960794233438131263443584647644118303479238320743523279811326364937477439711646062931585824702840695724914659477799666016095806275266447471286625573262831077179623432738676324162451515878320814235074481125589750043518779938889504805976964982446076075914067346402585585681928321895208093359040032734501334129601833930929280414044070922867006364107216002300301007979122223232378463513869219039295280398171760336042310593827042152198803382455725692546830391673344866963643086503555473129287299921219574693806883339014472508028773007234157070386792862546050586345859629056909282444411605894438189359010048112136782553883471202701933619887437494872105478199992393884078062748589036684752071475839678676837253233146463046574657457632059635311837797515270723564625037938979866256321253421821018026099018427741076457973976776299777689652493946117241671155279802749645487116806909424784851582616808467628645289200103646385621471414814477956787391619106380010693304353014295634424545486178601478103616123716901991135030911970984617838305068878698430453204666018759129584665110405895611710661457394866179676250832154801021841608608880730462171578994752422175816373020584459090810984359618798550290901296104738934244112240967031526650801684594858723575490213188523952266767540376244751051712077766535275500448647857946478521354910850928717177826968325376177480286321669465768202055735553078234780542814913731192722456816334359295701738528758828129716265329140944830787900621439152130778366149521966669206465651395487772936377831194788599396093646852922959815895513049812065662076524088868327994308885487863572682905575293739786828847387533986494938609043681832614195798244907531793747296503774367325649274712820153878111460536674692445685647484935813256663844103853942832593810588666015873761448257664805226012160286397138903177238842427930906180846626214069167412427525059444967625911227094393150891622431545528136004736465529213708926127102006795162614669249909245977784710041735683186012959753559346742983211464244537684067703413538659486714428073256029124393358292076525113693768899534925875954381159051949137364773326689050566473310090885110821038911628559366662199219932816081573954395356245947701611897974755709782605010462699896522227407684795126605233050110926266913146346105491829068728750279539239632035682486219996332279367011622802968734344905618206581913250702651504210553364337482428145498451815277390470424053923904791968227974623517016598721246114562938854927098733206511272656731617355837639179086735742172221258288586726773596353986079688033226003878245437335861929134595246008475820739588076559950592828068826132806452578907518282023884419440813366685134730739206188248815828436674796255419799643939253691863550376514333187652706962135605288962445631152141144254925437441357345042097687099855796523794540775009133199490912484168009361243587574062794195861031253670833953899934423378424086692598530064435922896537066437536094193522601192067412130946346312732647426162833691475013142267208924420208433065792819745397605027517859827710320869192632657809370504471279834825635700094663616195802021973668881150457534547337257546876271024857956980909092338325113382148736484670190230182356724547218590931337206690326720696099806528858326500856553750713112735381508899444344802577535651694202042718335308252781324176371047807632143182567645743625309284782564328521259008574439349337699980250485259667278766664768716244854735339905008901152838093108486189609039358374804638331846173493241037651755320241592947570938497350273585082740806510955485559481834207746309186325472919614724440206286819204660521438191704526017223304236009757265629902104995192208076942505728125586267886807073605194622434190588212892124587620076607487360718413511774496521631710436934875193712528126011474406914147086585647034480537185774536300755874392931392642505177370677969841658676740344313312184847207713807781698280498276419545263416123068417872700799874160132224769436659943481152246273431747844917773625599331001582465008011655960206929577383886461921484704628542707630867585279749254726873041959616450733877912956732453173699256737554467182955927146326959848335661460089017510547653519106493285278806723422319149727812345652646777346855113959157533291633270395719984819069283759645248812326761311279928102549212861014323427927168576979834764628430728054728168413072275155629790650302191548490334615836197655633957901217581482335975263973275201476182003411814147238271614444018146269015977287478158398755623872440979146561821254017640357180522325130152632919106974758942379073400935934423839759589733326427737975727929464361262017936476100955169135738211726659933336447905155484348004514108169810359465825728712970376525524061017295387328949141866584227856125140671290712380167737161712369823356536375975859480729517072693260720137348477991105860571274563706133063733595065743137339907471820290912160245264252854670093647582337347203665046185670891715074496472841867348818157204131048134088519594068928128794922297661308619685101108280461605730235388096937415933063478780289580782042585912864633976322998629459574853363491940924540753565200707778725801427647526672014633751958465920417005041287955891578606377505515730158331257843766983817114241176421217903220458963959136778194808837433752798172472986100900771242107228139506200450074308954988878948658450512990449922859683710895554228890409854228837674032139883194724974486637069654889266546299543393996871556324374613781135068810520655671006462008764272795974088581468303264366356269732059136039016955911891055589171661783146317355680478851248215934358700857753427382380849145110308860549758076238994727242085977428563638060641492476451758465911431149582196162318994563242672584285830217318094071311964227943459941343147218969491481806380628494621947812765474693649548580492886521264843782241022645735545724753849501375687936497991134263467597568352829866377819187873330357550404477763795186032677474265349702264800566483108661361807471726133620806958022155966715092913167798209359852136878878657974520935939157683429485232502348728741517886231604861905469709613956112028710507837811266236316855164619620207448809499266270172936035371071828359386568826515409474209413424088776678593562934202765724994708769012484418775070016106219782922888197528034937823838757992157362792230184844390423462474428576632446158523467719796915423798325479367762367404983057450559319937730185631827027603675140327164788984189627187095092867234749583913092807055459806001620535455522335071690076938758075715662625037145079526639601616364612738969824168291493070502530597646909817889553624128582078272749795513147501067707159132936136251265382357289105473406994951184912688521504150580645771685872297524023528535700663657040560078806216624113353839265234597306059111308561014262765679712794882512070101743914973741181852767832092773382210735842900729934950878913856201675317500146319849645435458557560157204144045805755679215251714645651826129269002773957103520469840475041149787903585928804092474328044749670190136623085184888327393490914450755254646383502958121059323363609889883380328357230143823564396976064383863618032760610537035616796055637302495091165897466581939951252042011408615096927572308657627785436322032137414406329700695810286736070078035798323215116113638760229008820945316687653028691886002254379570613425674814109078716278158103722618541949138542437099415593784966957004170869816539850555189106091387668730537616036390975184179321032659644304167637036584917683210114851396090551982257816537008681857384025163074191666646599245480972479503702496128558421467548050282295020342908144817525569504685819707328648184102426772729271840415993876995671524781344487288658404292934937151387658662130503898552118472027735476007815616884451791298743015470028068808253237569576975782907714682072508867143063226994079318559467807163910724490522343430267257648945550922666177395556437240990754756559924799526367371717222290090463059180911367349363438405880466176368618655858922782194862388123903872985159489825269961916408040207326470616009043104723796687355493896495493469246837650226158782342015138983732094572917575964825657128547855649462977617484742725436190274699478932660267436887320047545063293249658643075661239321227926358301137285523972747701174282915384363975342654923706973901263566742495817094362732843262501650315332727142416351576304140803250054151375857014433506652630050107962777955788726801870588290750875025030625695036978977252337685852132605890739696000006719844910439507911712924220089233605494781362137393282205429579823627999731618608899700455645023552431687760898847986906917459348329728496331701264418275579048056027959867546330375425113295678586109218679949049740496611704713961844336605730355603697363573689804154026524969753427580540803171771380246259618768225990139332993405862446812670768775951474145118654876328582174543365789821516677964855171904783466471141597092437689958331575159486286575113294378303608046069398966610401994688424391712233317658886741404386340173572077528965750747685082897382995169798132841690878683781360214822252894142328021521867332967942385366714900006441325546729839338397928085830657843712550818491769805119524335240411258592773238733138666756010455491677558905339469757166665070161236066701521954468104118827420920628097864847626505658053777145748816527475218989617236194378316997722362314093434528757430473991319680921146853967256513968154225236062334131367262034702798560559053051834666343555494432098110232035787267637146983218480317220587835003661149619998686470822713046850388105004587768191371442726199165749445823278411549986175705846927703011208372572748140268679845391859317127230551854905105293827768560964595253267061112784966742903847596421329748156911313122326059654843735525274467042633642157849073705959922192435831288612034336006180213240403777979858777508920308766888956152474669434983245027447450248994603628088449265243012985447540708576514776217783320847262118023922683656502223832882873738766182070860924368952230639092848974611451930529022177008181871415871712070310928890879426616734079599396552240039092110453746668574950657378866539041213932457297191615802132351785334426447396070477042832505132673207265535636175059349906759214187451644086151914341142809143390596221519676477112923647539017964751879070261641629698288608278267695040258041680652725842131906981982034621590076838742712381292869909616133232143382038882178064682289877802692545012022640583650958850511297107443441827097644365865358081706929604986281850791625394003409450682087452193607556675963633719667986617774896124076012384341776430313468860423313401716259317183632914209192985399031150091442010217828879840011268774160199495962199843349433120318444438849165144288441654830682055755340397191867161654280274545208752083190922424981719081544943959672118493576361755865716739502538860566350405505355846982042896369625758340136205715639434730087477134151146941098665714576318790301094408538861025738217324289814565759738014027026105713396132392275952707739651178339937892956359858917225903673936808472035639171549085210354894253006463584851660313180232556102884261534518054503191718013313182705693997436809433182469080907425613867158066900345978162447304662311387685996940074193454691117341510963640033058166928831557894835334214495909545915092200784972483380403640806567939418159220998805495384354836139605850778461245311078648179948244352410372506589985555820896481387798811961161406104096780162207749987475060627832961361659798138978556012756305599716072518603866891710626918673220981363937754579042198869974049662320786480325618079121739343458320141818534624641034202058932888923279921269017932687513391745943977865566363839142129071998821701640043466394392632967448267369283834458639578906613461044212658629874177658583989598199300320827041794039034477891411910614794294850850802897938450236473224654467716542498380783402297676893345397149513145109100742775414878401102440894156193999466956327307837535824898067694612722320826001888930108507094789357942095379791017636481420087890402720436411716536524469358896746608825065343294409831092985364483787330645284211402390760349196599933685617083601417084121561090936040556508618924569363300414242932419550713547391883583179204478666090633091920475175831094267114531966845973944287355572478521950698025252389962935697972035784235525889825220526309349904952668834261200438335020517421965216239774563889280095114963985521841013825268914971365458951949286814263970009386513785478976338830158836509593305157169775677845389358565235792212194055157851257604141158299658942140616173723825434576721990546176557669634594494487626670843840355365926014866643428744577570654108690149244426903532626527508835084548784347919868287324841332852260747892630141954048050784897587530379231849084734981603325137274366474239994838214416813994877223560626508189547954934097696087345419486195473756485076136891328088220118638480997055063722487312131718776488945799913132922418853560047373938109105115907771609151916419085878334370341249836536507376802594335234276308955167447396028325620030715306237433769959583633100782474653782154795504029979757756221891986032415028611477029397092730802805421189736651100166116447126150864197820368197742820157280909564021578145209035833452538880590666928194056047116418273870063870451257894390733340801019816999093152743635279784719019613665444042430737575467777243637318506695753449391940662932207646033098935527941976063468364014270705796971053159739670293992402836314390878257515672751849402069116528829923856050594548042294702058617959572085066529546256798245833140856809951596093488796944106141381587679852702329629086889341232999305846217876574485768399241287046987220835478835823086379313372878114979055563008032705479552685925073702657081201162981472883788673450565481277815616663456449200575404782139274366857159484853016855314523278214544652553018488734186587765007468588057059055728784893226703955762167058276048208298094200475358282757203090770579050606223090914941415874716799896604777015223697053881190215115887487988705535901480557990913527329054735620247873425573025079986409027707752526095166358387450502781284770225646169556092627023379555503868494674356817754188599353911095182711228592277835121275975298474778794416626263659749572048745556583128709666195437370752070888127380720434041697184862771946366141408820384188353938955264150491720145602611174296325556130808000624688702649732565395444264023949765450874079221551891798125533526673179139489712823251781922363756676392204885592083385167783729066127748067715554821417455331277005189266888771034832284627265753704688492422731559073337287418105696917706592799684433926177266852747901966352668421842939875246194679511199378903035666327161805851717669069367869358711501895942519730694523729840266164375276690657548274448852390107973561219682246828568379774278252200309426017459507896402823218046526856377389053523206191459531778078321222565566513480460385483556834690793180063310995290142566238825855402646290027008071211571360577918471372053777220729440277396853231374602454798583526448119305552201779054870497370835041279595716726493544522274853270679232630439216594195808605115986944245408979833622717791002268239365653865020342573630900576593482698164376434957748611528586860531904075776203314372772199661765972296000285345355737971872762241635580151343400993698346975580855149056966231905672725414486114189489614969086696950846903838751216382585948717881148208663471065864781676109110759990374626118671190186066910081866603502014884405024178858802338553989794927262873121089901246676169957033341368926452360154746913435957815130976381466869632640527653683420724860477325338596758213418956708120783578330439882740816034892229584261366032766096101509701825508729896800585347522449930049180184807501699086178244914160783373951668473151146342217015284407227532439629519934295423829984091728240296974851145730132946619969580338494794568684715833248655801285478004407106051492920047997958704004908741353260362399749345733755318666410484198665102585465225708875601634964461576252521891882933650460409019766737976184443246491081167443431946695739651569469652527894087416594628009043777597900890601622876574270495489550959254015937598648699413663785699329155810825634778718138556601337503873517005726353321186856653877290586113983238787349060298016832577838784833678891364309641477946612636752061748170397872316070162283141486291650621701176243641443914667571999856816210052234197656250558229628844062624114130979820079736498967224214837195905099127329808944071823989296837698040986873493907339661852177464350752183515587531863769235041887544578709248493446175093145988451363082837591478959683561646486801086086794632924394932181355687426313537086185152899602142559402377682716378211878246289676243001139024555104770517107521063037155168667971260820349309513151225488370613822623543096646779223832983679636950838369044625778899756215642273786022181410509832508565455376759118568732567400073654098428885844804760045232472551068256700175431656444079964070795399333880221187873275116830614652839721434323336853968357784344517418954634174998252930994936886354170206828979667316608878188947949322193177783199040241373174258010516459397300044785460116204829368550817602530731231106605236386189327900251660591066324884110033993428694758991288364199100718956555514382274078964738659497675988083672302874701108383219506909140264984808102744646784269976430713374916462141939061496899409788336629092878604682264954659462832695528275873358261287899435551786069492903296884100842361584376809236381295801389215494076973940055607750359599598214447861088359784544412527367075235530843934572004010731533697060662402118125088122544841651514248106604678132172225798641217140480982844937897340021594961520062255254989437332888661177535048165483616619733289779820102471852889097617677066146878841548730571572651171707542008230368601778151991529356148761453398008484855319398359219725930078765476785994729013448842294302449804020011720355246185914041095966330135066248449359587997731133732611216144938456329376940416929878889364227221426709968095224865659248919364621109332730166820499288864635705186400208854518809072728504012606583516775535285154230041143157852191234059462555669718146255067704698654601261943193713616883673535072975850740827629037287492824215514966365909079042261728626321964043912427069550519068973364082801767389337174218668330773914222692733722252171556307744848366033903810764842103047841692487321786123339504467958257249461211230229829067523047716931857436623811333073954580974128066137120969959562329559631040233839046848033088196298357323826500731272679270286457964221809988467106316895820892809048274969502724666013540265216036442293289493897753364291072915452609345624942491068888347906952541539690291732376723747524745245729018220970117971413596921870806948138048120338750042906112272105367805126759335109004583425818096278781267893409010285793489055689809652623467718920894809325961145594405691248852091031335306387030155013299864713800517309051970277920638837574533903010629911440503194271600667295093121815610181357137513034085552108982809080482070645845635220678796474313852666838637623632414709105144727400151995289197477312736664648524335543329060581163510319349647122314544581514521778655453643583482491039982558252191275216281520694225803482040733601335702886562543150535738485211217927627834481376676598565379290457878131782821039577093558522599408886002048706917188434832101861027973334792811490131483038188325533015930864422658215366324655675445770548395025311964717543613467129393534420273726131982631178446498704927463760095575170749296514257750283919672890993844255905795858136811465623049008207157397056781514308256252124256558895203237188635207421914316257667537386057253304207435811771070501053483617839974007622470459913247270614057108694594540090933974305208276426241869976001773764311418415319474213203714141537847940501452033673473632210053009061565760653081202007765573964286632699719476288487021591008177135906472708007166512373587755802411251934870973318281524844105666008512106987772071998261377334398557499848393680341116069828986633325847802239140632653974594789944849741306643903865881876419666016057106231214504546755620118686581584230370180183031150282667616419441355926919665248738906790394640411062009563340325522315074105501041058393243107196516025420921903931812947651570134569803997052404867322647493571622668732116026340743366519709679113948068370552667860987921722250993317885019101496384401340145158049863000589201747470809668017455048991834278866386940956724304869572176633513796906301058648248013348963952458546692379725461475152345658643948832533218505826569197817341612636314598141925563660314839532606316112035525798809935433738203105046450205352427357678617754982888860752360482515252663090868377349985316123255234267049538688578139693028915942861103995607258876975068676047168910561368518465957669131849702616848438978879216457401568427560911666453039037971974961883330497231628680532339760988947280921334597767995238517906070486051079555212420516750288891974830423226843302344144520587276914838803774039155395569268712463969388891350890207199607753566991052870069315793413168908557091515996942856514282578224055437616988632970805575687294684275917333459038431884410667074133318291636124153273972135123675474333564991132809666473532760029869054772644283229512057996717957459377379147915991681614110087813014983510525161906602953111000634253568624042838267100051937471510214064161322208988206186947872238601535269448466954221886157921519337830772639178413304243385754307876593671415236813605018192852761745617791467629251492958395828454675536593707015923397600038986241868731756273044961376713586787168734501482475057776231110329603351301882857985558767912985436773433871012315417168209232772679319546106060267453577089224630533167062143269067256540933050557641623271174404836818690340236853445162501022671310674859741509690805139868452863555297932341956164201664487997417242601382754935151481470038858082188161925296649540699061240883006110087350171996701542601535189728687273291546019571785259390807197674184125102693756869029317542866796521380326439342548390371280801602345640122371071159765666195382264426021626755052617195528759391799655616908115330176946317581042197982816245860664873455973950876135319572585276261986799493516297878319234982921163965941427601619890868996533410037379286411236819141056937509026864947879144142503810777790327767393265749759661086159801552380652389913866646467986635616051315755764918624080544619068054608163831587693116876821522468359621661765453848807847078457190072044468107567705529056328080913751413816086160139818094556279378103557560369951089616650143045839707852233061886480685533832954837107983336524872695592128388814112271442808033154872608567642311211945118919811752603991501203936915792223049819660423712938937805228731772148432150793856064954694317789102328573436657496013547922602775989533191219087150800564547899472878581144475526975786775052022787332856437517225959726580504024969039162536766499224221085691030703566239584403759007584545334101013703210510687337515315929635316591601002502396324972526758215181960177057972732625550098249837300295055231498310819905227529353255875715885794882280265010600272785630890334401390444493192043002152666930906267889945951846535080958639511820616568746136568068751722725505944884011757524801711175404999140971301944375975812000224333487454925030288830141104169588652695642278903208592490649817546106220353150893640553159558925123925580877778367180484659471802754976365813138858688935417308044344321860815221759478057665629602415863249035271550877243912196830950352906022684982496955113691633840131284575268727649490144591580071675031108386401004262462929339605791277297634733249320700360040215492323734825263276030549923018646439175890246472248250813107472271210559519035410496562543734583108421777703831167285730096675940100831903127615355318553454135384074583722303408087898978740368973460293826559649871825131216742097339622512398904061039237164474742018750343412652340261659943838312010388225356667994098886661107801386204959710927387906962964676385181466248203636398255000323545863112523126481184669034262119590626843843808177320616017997642395669240420974430685305718967877428612099553215824567372969159085511575056279643341245467607192370599620418012646915150595306805339089770192291584716681797467890213358642085589627129521600327954836578798170077432421990791267358279376988707346725809417638723540112770635133889786053629077575480247690045585715733554763605888596753485655698543521528171872049508747446811281842290577045305501736423424308497202773799562763995978665625616264143712801177399212836641003293704792951659347321290258858071682554493220845352202999136351717040000785614087233660569828392291252767446044159826907615391973524515031343424896711566589954763028764053777314465791634423637334912774509778850767659689551612733854433289958824082616474910280763931692479296218877625305340172087113612550910921583117867247796520371401794479174455821175525495650555510020731153147862759472241289515537616490175188272891978817534099275137310978218002421054017525087363875174077412756737498818113831067487408343627757724416021247495178798529131465999614807706958619305822749550489375064286038984140417399333737273335650545743931459097930266953502591227155551347449799972475409992614804972039883109425621461848334590415481314165783851058078017715480202506674483578321463796079096216044866408880264193317565989032471564970236439344582911150317132842171724426985412972113162452320217603689033651739930242181427229200674506344757817330782898469811911476910545031055300643308792210442930703098575287840493149853621622169213744738104196719819027945254148278863839551871668130341039564590383174299757967455363657363798763133699132389808598454312800346504691532133945178784625425590884109135211038826364803552837338065435079864419866284572061424899328055241465485473374615034548279291640182375613145897979979434897046554734708322670567527459883057619597572063997562606561883506856515936505096337669662930975289091479093742641821929167301683025939539023839517645017910158128273931487122254038858171675770072132145933709546408716108473419267533538530058988055755686376932027761937003049270295367650117882702508536470799525636917723350414793242745375506996562366972129728022715442450708001475961919769692685827538927319194802643711217476700108419017178357751843092339794802403406253187780440938604202929912024995945433897182001157459604573625552357341780046890582202063564980715119116515538793135791007360235020041431120379644925151187655659765802732258785974815071658832323579963773504061632291821209679484912130777286503383527387477640376349730189210346043957144917126391121944346280792670225727652518705495452723776912740871615022703795065059977913009258075875862060655284305869151136886811310487606740085810128467641860737191685485670991769638119262306719682333823770932331415932074871754075020242677450746195891503823244047361008016165883752053264101851382794345661238811669586227068863382080049868678407771074136908695012572173690387299179286154333984886568358943665265342780577563188435778363143760030696019452781730520788600054860282223637128537635761443104912587067808675071744459226255807325252569349718513400622396747474680266152255526421080887830357813639268621331952481755985194726148694421524023938426860193211713957060301931237133723942254048440591283109012871014202660948652823854382991874589556350281585111551530855046558717269867485680678736365338084424798796129991201480334748847629741768855886670325797101400274110819875272409723199308543798996178746346890066133196743720909643776325972650270568042851367212453752689437205933963538288344190823625466801150199678165264363479935910450296085987846680683310841133585668716283228421247095310455748012307218873304435605353274805892924275245006765993949837498485668885639280108919864639823905555769078129289574260902817309563569104527807592229701579844769365462588056740309430386193616478891302220090504188463395884103236804055417936096474817081477760853296358878297236175446267664291189310292067354685538207473258746384343483475488616382699908064320004682309390533072147816172188993727570623292423668567817948646975788060584736540160747499026726077193430777278885279453336590409416672935916356288286815900154605538474017463817720580597320588072874921571335090458045440898795144327011338239681358083020776655685715606304514101806254894822654513886982870972735693913616121669790556235954891019718653108984070027459148556816326833213936153372006941747967522570794689811235632811231342009097954083230669192606077271901945172409182994450008499747501811043173988371500209576316826189619000376309828313666937785938835336468484658121360460347029985724641416008530715871777625174010351476590030090458713257647985478830836267689747776106870151009900905201863213557347239145822627088857375872969310638088634913662868533013394140128730024252822300900895541517623348162235139937567266450972158438519968721354814469873387489678539079727330801384252973332024087915076050825735619507482637965990561054739670720703766603929032694257631008548496883489403219866783468837307910970128533945670384134660353719860423035583345029398147507024708103659575423928626096085365667308434842653143266945003197899566203102179372428096309853850245785223143816813455453697297625819468354128835234168988398358087770401846239841174011449554796597740780960880343529009497393731969955034785167310652067444051180090011775732031999141774561180499441327714004616930470422511242090817608865834973974522636476967473455984224616059596984016918310631538120774833274416959215353066403732904824134548463167284481144537048392699093533229368561703973964499973394870812110803464442373623403658457226942305562622396718648615252540234825524714039496915468939979297396905205370048715871306211720737924489057692633769476957098718518993487980669969654360931060899230492703940225746092586693798063779932078147256783971950392043809517938571337908934013858428868576993156420311791099154604572115725288673555575878151105068285439468691630126094472008504117932456078245349156989340335652396537070322539438901203574400077100721213332478151406989682507445179444976735195914281750448345107479553472901512386617212581836289269303282970443996127273610369925990909545323483182063682707494373180347883320076511626165663250767203300540703781064688578933823155352855908844618651725680375655947525683856054023089183271753447683879241443595227486407265749101269463794382917141804172311049772014048487567204555151546004712091528884803013998282351858946399130036419608691352958404240215660610313140360298617740518788158173228800344800246417962637928454876359041871134034415088614682409132094145951096033775652248924702150842053825856983358979549900035140301325409417072893298580101560857734484301218416794020919177046697233007437268591634522625233685880244220735233048054561155958747871983321367009005516536994253702981149949162060613155970676367111265203518088301948782600631813345555735598956500909173017905058413270777472721567982630331840110720828837923137552479419429618090367246813536610546976062764893021954546339978148365194260259013013724773969210048173757470403396672150072847786974427040915378046187443367671963477593272259351862503658804395473889640548605399939087723732416330353529031982080970190519831528717669083692186647317893038994115496035621569571388280405942699381893329284846813711258220658688031299018346080622754218242966203588422842102295917657498065715736911383598855620494151287870323657595912565510210772032210877395532872773094127462278985298325671882478428116664738785777403498679509646735239506488549507978384288797529311856503027156514986980770744222900938048573448146922384886544380037094202860352198783160599627824972188873547216086922849446398783921240466447407976729453318921713077658992418517214835283271546114417133932235432437740877890927936650695480473834569432465705445715553207101076133220433376706301741724285070416920253108802810324073461593265912793275800567115000796957043810735487800790820287324230815094281588666992150664315062149478666858235477915716917885015140460647484996004186864397263191293108230798256624079953034001264003523389986188138938442183060725665850114369190535680976034432883604842464330633831115162668931241314294550267213383143063179679959572821159263349231774144628932064414851568699530448594979056021844691604050625372227243627117002156143081980384621479514595812757005494126026315866571900835378432346425395513518749033017933133790978957835109983500891461523795993244666525957507536539847903395754686557737377797736413011276662356879098036624542717760313894959907172444829748860336452654062712534006484730845861945075234937874408863291506638856750204082552804377317951659209058496575600465966701357857179244271000416352593404250244190435144631442109692617284959181497204573734551260364856097656888965118794158674546297085418598896018302057272722019260822943849920946314030952613028792626131035295135170119226617171420545955428037177541484871673069152952240756644268033339703475442383262380236470745500256281201057853992672166795721036758921918212542134953090671964129216693973702756782530276545825534040851125173602631860819553581675715356255704668482572001622294164563813631939993139659958442268270385928573034138813125909253362654981907941505333364403968969392470907406212708178614506310425439705369959848128822972320278830689919882263822898335209674928475591539829627009657075874257829957870776531820370616971462292558385040326709974623765541658660207995488582079133890619196322094271650079538606449675592355813609677038302772815390602742557606237720893421019183853941043346068366389664992638279225846392116994351277231023099686385469547850766555884372693023639429464730814320812568947602491816568292716910581876964084526486945223918783038694675331203186191442114998420986784145019673752103996514558795680699596239803979935648963226091320672323097386323237474620740184995023895523863374957335872899734436735435744263458654040206764401847284882818498501247606169634414728252463806611746268548581917380723654250791103031064921627242331067057879385810555422083303483826414769580770749357437892836009944180784410874626766535656186469199847569277159682359874728317432975963178657957028157467280412819587473821005409518648582715609030946590824405857937804959108773836115057565563306015799707541253342730574436818085287577510025290412735111715129111008982510554344155614807107466452411880747437829185281993090909704454446849800660308193137836963771070718021845239963089458609739304987662983092078547470068507164007716771622310441836134239067040014673088132968653186643248449103725308240698712456202686701848941599313597612687765089673563211833303058594131792176276097427759166626473418301381626480731159043723155572488656675534271719679061468137405887793006720365942643069801693096274038470585505437275942259287261113106332269169137705471039117449727262015892209505932819120225870495523118500116307957577065691007900702286238006878321210036740858777901043130452910277218155462722310114800111315089591009292747543233618500149817817439103570154533596660268681157484363327501258000321696272730279623457731099822364524080100922013831480249653842205174723102127193745628818384838970166455754291527885427109353053607852752661380592133862693098547644151353177887953308946393422294053793326219735582027395043004512443350263448325485661847308057580443538548833998527788017069610150707115884715666342338270337944058166029739520016038506646453501950346863171641164392367109741031522711715995836308966120174968778258643876022315571794564429632783928523317895484598564507935738048722820718806957178203522326412898762247216927569587395004040302323003312529574877283413060577148052092867902533930629968201700964618050775189105086735154715324586210192664995675119096564993243426062315277716459454254383244085059350820698218928342709952199330933327276944625492092792652729102291409054878094012033135255647324221914381132767570527575182013113816087508616871890571857287030646611058810020015918236690149081244903744877034160041032260887945716502429098840227398479725602745082829162635840834788657345831817745216975349067431506424908439674000291427523274086177363312421261743726831751628372632835283139852560775225161932848607682438965404390665304002017782876756806558926197171778494740909301038465728301531088547510860234659864639746606690086021514818393623015019092188500510557953746670121670754163693496779196710048468129781022192464439435117397038858573009100632831437613137396938519897189032663807541168380778137541398535596733579690295250218405684584641137577424151703895229664428085214022370353682321357744264074014670628717941316075252226793229340657181137955886386697690907692649995635514391379261481230122841621252820422689349059508229775884863329796750305706124989969564427697987015539019827550482502030653722588524142789655278075305209571437142618391090556365735206821232167737192540632875055215744822669062330299107047073258263040789202273140838031259383989596603388154409894464942464652925665241560284137997360078729001254688749183522203019959413472549466395833441030758033304183006219363349887702191817513168298651168446958450573155226152089221092205421449871149465017690688874280762239664589714802280351516917467034406285401719104024971065254443577203410639543531401934656186745581107923549663931204842943733097555934112228028951651455736436107801062590918671694657836402881630645707342270914242329034820932761211335740537071969689154529658746105725410116900539700074622383736854425160074287525727806097117482323615736252764810673305503352363429010192145838485854022325770623149307656968925213217118343237531981249802939474841403690875899715254384712940295102944177540922189217088048671476539616796558230477305623025933769000847948328288847001298082446516635906008836058480396628727756774474826617023547774708559592907871644222092220018641806755518450010949693359309586804336962593284672660495452780755350817200368699358616578361852417463947308201765551519327722729485190601581871921518275027238431849152909409250689782144236156156515843955981733454646481884940489367993327309906474130979540444712068747540751742400921981051478433977269215848222338229543374565043571330878788773958046667586618888147918966408298560620365861252550320450264505657294893998926954528907108288297889432224857361119717651265608265195552957833322346270726760844896621724587996168004688057761376618782141306301404391344006885325139677994605436864422737155477126356584897058862044439772112987011025768087281955263384602061988836325180777212463009610155220589329870829252672105967132113053903674814247261434125027858086831031665390893280683923553906873826973019316467367148235055793198102262874011120346293629397292266751644526315858355327231493835598541118171656842109366247650299249998679592338960204221261094170223890932130697398945405133293732751759055814788539609758686415821906399344237628286149917755709377190256884106639747360754934895864667779162225651199166580351146394998328476447832918631941442121064320701415847368699802795629825423504649806961911645951318254929071136560753286974774089838296234997318530145503921004670062540735816032615756379433356318828711951463629390301333387852847050044338762345876248967005224441803732029252038995329306728001346732242976513887591230024355237645962443397410509703691506456843686829099466259326524873297824358453215256033927557366455216545231524165710012753895005318649464860448577105089259360924056118103485169250155057539949298311796187205751146729886238258187158113479240897972469659579214559260771279203663440979828264789989334342969860391637088939886340557961230147468100646920395601761162008922516233400158431453924190698929672934976145878078109511961984928664592550862291773579594154609426927720078667673151445725830283969927638751964796601645307192393651091893758663186971318527427547026003527275666772502150255776747115320593321481428985275615510512982830031391337424394731464917917532553406011283904276088665995193387711710599413773117717887634764809557936119170342216494466761269396992940237656426119731951156447103777781022095193731281389262535289917701417683773198216283965008122901130594136113761401048947785423212070171370869405248967270673641921151706010563573641387806093693102550871570768990616678491808657714568532003446493288023014740692334553274559025386796432003130639341391254523469052879014320977160828052122434256520316411627266012992554640036076216964746327969381402181277968874068824939337187544374148519199290606146879368972519691806093128793807613578399213247684478829896335088469635918139638405900992943462399634728235156621802278397210191007324185273038493542494447011585488365030735433450013260053835875703197822896044237135733945984483493785191066700562518760565271217443771118869719821962305644500855395864147026653077851931123686847428416137614050124137096419996790932531211786197919778385074837790095279593933402329572320286315617589172835713036563703349100234736880198184556308800058388705742270012266559806165666853765395589740217489920490228068600738775628681102634225887614929308232054739845183195669300958153075413137887311588553111661548565847840624815329143673227062945834734212510358833391559375786899787800881796101868980593671095430436376173184322599329216278512976350641311456791664532214600371274718530889180467290628506575720108242473576683595458064206238968662673453093820398294535887636035181132650192655259200219548081419623181621175030383786922852109769566001444185384273327958665641521369037854934897808039872392920909347423978557048476216238717668887332901316126969890712162095472851419072077047342550110461881879946485439450685446813957001959196752109109425251636331870093872338041075940250762888169235727071542317788877395979448733606301548781773711501817734064012972356481303279284765578871984995997428722226740311519812313268099346780125418764069513942063833502112066290844169017783971372328733085334659569736290376998922561396577839637647162817322716629968287248530526453675011875153392382487015677302041041041631837803491107014343854938944728408363660867710234323044494732678126793613657096259950959428058501041965836070317307382931780644523021848945422549717477405153498055744897344559865685662750671839283027895644899429622808180333986692564278551878527892927649714619511326166839813025285815410164281215901634003684805890652140561290999776728477840585833051823251587496630001724875698149586578574813212153206278437481173363608731234905075111837562775832788070759123709612043858361116217007449932556228478625761345210398032097033385648732241996657844510290835872860557594527925893605713935491622870682871070670536836435507653274321951796751313913913840183231315772557184192810151918754907685358410152968357861017550431406366571963777768827962949631485685697660130068985170518514625376338497187831302058229901562885285865019169372582941085099547198116849901253835804061284069910098121734126373968785944150895910927327358080607153523642673171325678244831973337907566477854431143097503377792569480440959990650555493972729057822366096463710101809248609918039928720358214451413416243308130923640884661263130367517631462727028404253068083501534800562851920838745251369347406477693472678449029448336000081193307058099232558017947681538333423423323115759685635007815502369834482542137258363428594244667396531304585328575709200673282367752772304087767482473457871924542672726299127710511649894615141981752016211977395140360200410669332165010498427212937710957236404904176193157548557141705833281217677943332016848037472769521167830991878570854244545836222054367804389870204195942778081012513569126281199618485423237748155274063985585676001482848191166719816470213220427520365205813808202272794775673487656320538077238756519052679096264830706076367847639440164444773409075211349001971538953404216148818879892838971319145678812406883096235329667779190972211754553608970871303831315052238943690376651915891800711263265586062446469992613690395828788168987337330886353706712774176138574297138740632693142824599146644210264733250975628479063811628651446260264149170676262091234629054593185614954109642438908419857603310892647128712489509427779251714790924160124606888635026777620251188559299227136850532682268451785822433256390563733575655511612935116721555122645742343781132076256737159518002809516235300445032860161399984525676345601321769887517101007441056632771158690453163771102860988452965209193332679696865745702517536948545749500360940862206525387202328604865684670667079138727073699647640329217553472052486359958164820264503051439592317689668853953124175410011330496632926826296442090208721397333078861386992541721968657864566572632791515799083722969193287083197354403982536095532359141849876121136741458602851121906095211572283787678215510853432097008782226724731127611521143616364691729198286311764415767951060067425343208005237505447680712323600666735145333305724602141147283794500042287089143339174242745337038787128928683808657304032409126750587210307470542589024189562421659554640768202777458006996710059912180530847139094289224856599224899863185480456628046982956378368748735613104433879415736260157291390326928907755629163448166921232778308466147807493234892281859475978861679923980317024297626617802981504461805739383321011886043738960259865013061232108126485146547764457376189129786816149251738574851709908701304813754122783764161342803858307992643006312655746021601234198574104559143717105233698739831148272093238374307971937599860384181020161613885822356733673270210760694586317020003213168299537637586900429026812379746757301950305298925546542905219511325636673073778196819004589878451005975241433352359458507149590524526632182407650221183922247573664289197053739993579237813403453338492702270197011873160427175927597891688979561937441349030715721314622358010860553770241973170686106808724121727412475888487574002122417661942232972364880899972268674416613881144522440968323902216629944187605488363287244424370426667975943938079314088244493196277185363610326555610626743331316875540255427624996926920829270506821165431513442325558763735217810682461224367112897392105710973767066590681570964431151863062873172993447713281412422041321381618968647008557056800535699531031910372578964799268298789431097168965035373092758146712084769887136902586716602454655385736400377073896919372512466544760161883552907943111409896589858272711715640839453033206695853743270119134050864519566255000930410858907841731365435391138657634634945876320284460163791238381151678309899420585302908126238382645465276635282991168577725440268046834041580481895507213695852379269467157776207082503093130951688494165178699630058150532664576530092632950042874991190426430176518988932008242178908075527990018320035641899898344967188914208978266854422080199908382140649369765926503124837242105442193126909267714352602510560891469243146583013925305871381176552544863793914997535702028478752335530208934088776202891044686937527041920766091582532915671997894968110940540924626718161596255681797541787837527277491179473390670017019113030223407385596425306215577434164287620246172801417280053459004808699590077613374911655114086510700363172395222791957994961603614382783414785599582515646401242480671994797653081744831548601224755278276586408034674074835479160435116919718827940568509632951771215326862192118543478450050442564071313705910131993000823756963048336595005925464384508825001995694105104963018047869634571577896001984305258541674224820692643285047272946297290619481077184952922573367262653317369930332921651237488268023090154098503264338281496075904711245915842696230440130523146382824106325173176548284706781250259494343087193985561847658551194871074407154861521689556753345640088988541358912170294980297055807611497336618086112913572279661802932857179238306403868048713366082387700230118208969857096137579876742973822021808400571311535311106565281883857548912354968336754290125915189741558973945991110196040807028352363043713061049311006093959797662295090358850562942875764705852130719814601520589488532188344601884908574708561467965179698248362213960566103847547287201191688349192009531598935159038613563210687574882572564499793514778045090999086837448801819649518737726625330674721909379217826260103989028637998471390993461359438070215503665514976646929813842134153902174492187875972196931590871902953411561644583333640467623593170645006432011905952871445670614213992029320686709555314987596064884127279394159031467734601359768769909816767833451367703492914265418081713054643400583869142352675521934287487026018894575624886206055097797491756593747247007863069932493670743858067730576747524180084259315132228252123568529973601921439045987349780059741751804959131858149806728269967391742138178127392913614235393891514306173580975926566710542812521786341388565988462406426411861042653315195392850257256833374441456271788563349385955408188166734524600387137647082618869473071175152143345127913542213241783489296149978490112541493461927859924396375058245492272263232389669689162214973231859298476443411428463726142724459428345810316407476306131349452870266702060379314485518066758423620413522989218191986035801373478619057086638144599498147539471569105689592743939272968660634847875608600515783483087396339906812195054670606097228940619075033318644119607091866305324836989114579782998197298933706641239393135527191517749568960932871489897958837513369373602299830963997311012755303786224161801864911371431209671138873390591604900068341935368188082987622030707229504914169661304670853351981133670191910024884639598101495077097750307927227913395360843100249000858510968660736382653039542710822103275161856440724964131658432874395407399887191398939096628349138245004357881160216504582529750918554336355879781139782071326221617523492808627734328476612128308462303972605941827545230092040651914915237594552298821403462247413061637202109443204580692094029458736686595386721174055584266207948783187011442419553574503862962653723330797707547813381769358430320415276050900006928489756317905903329863248619153991982899932223627712007626729749170775820017170617087987719228111211706158135260853034925683855202014246237768767098421046306936215982723389840329219440208067746821149760824513223707730704838790312565951532062803965372184775205276120879407839461818908710113474053227368170750921535689805164189067880972430306899194530446049667721639928580844044007840456597371454092909094833407648242373454743544121966044580752029929605770359700009167032979778626652660937798922568599151255261940789370626824256032290381388919811569551048931275750684014153316122837877931264692337392246762354434012867324906254093441986927360967505904221791426684211144317832986913834896719743374402766661850955655854099650511814650648945745287855153961893073883278492261024188423645128106444259719515031613593684064606849769679955426461819619519647579903068024301292332006184309686386598308791995684328544874347391812457547395664686759697483346097113852472232046783903100302662462952910425973863914186330277828100375717335843412234720411184909832961074931930069912289858504432281530911339767063575421119104885432547162828681044111800730177308390178410875488083282461523046461530622113390593628606127156662028404822768064830861418445113617291411995180454470840171317462691641185420644257304755054236675220367577314642388950047922208261410790616557768842818985368873153387185636551814218025566772390845917129916164183633305829386710933775734585643098888336887879200312363946559091512431268153322215456530762074748434396934118022220616404574458680699195959269913120955741049868539783392082385489472136926506698392602710424431672165224762596792274813040404503987045222158716843731092856915462864601168777488047612674977606267129866742708993883572415295367018595740361008575274061546512180345261204335615626165012644106937089400189272801207659004743434615658130411579904680645780169939583355593343635226287085845033404880490050088161129395665825503826345526784038743300403901801336289398616352082163924187795883732615858687815631869983199755735627628773939003311681728620068310871707417040475267214434293220331390913018843116717531856335338113859020791148315181324544370839083293160829800838208198249245084264002811191188147471044658108714769085454403020422618302742987521244465676496135806922550351191295833131586800673739016800416316314609642831837391787723386005607359109650750611875646598146873634744504250518131259725753908918193964878515932624550932537709223845601733282114808744823767349920279353396400168312783992585531057689540504671989832290067154735776714564985898043543910982702265669632532304105667112114670240245808176063139781347756086849140943705821092849236067901871204781316873819092742265840796777664454340917514910502485478565224910379859475861573387204629068745227313253325871667730806690552211100625165416629654545994654451972308425300263093802189024347171672198776529276017899126379359014453457480553134713950040229631905260943773343360637388955595339472989312455455429194372664015319513038664238957582175290742728951624169562499364628571817993454628546508097036576381908008742432409184071702089990416963013713641444830399606301161395216620701147490505395714185628678564648453618696431055146108994478169377668272543333186452543628604063728813768104578659200320966978244264425336694765115412075748579714153877408268703886590595954104150512178181449650500901818007308488248770008001276939508306167456686869223742839959117681475352214353435974355843201802716576685552140590311271322823411413038716123224030582113240594431301505083917672071221541873999660957728345040842889568415432401648468027857046046372493398580817013230229542180353698332181064219614591173054630358622521214486035161346839391886900390515689570952826715166919420863947934530255235033293596195401257409254507769312081571692330780385611794615952652180908368721319438956022882441864357671868561886218137838995269147795878931113148250863029740263145107808432330101690931505550983975305953821317147607769521231735704682278901056736064850513850491950730513561885214601153076778013573778937136603626943765333646316795030934356968353658671561915231375265118265373268741557474263850029184746371631147493212598609112949564003851670488593028617068669871496217291285462384364390657633340305768408316896538896474381268060496875075824656105678256221357408428495282159755425480702369814505912316993230467640781172982828622836169067214771344213295623941801764535809760520650952315067449713554083920397754612781390810484290462938983472180999062847530151032492110558578604116121898128014485817688805156124539625424270297721920664669792163885849489052309250318613442389242923519928619349536285591766929536940459365417566228989787279292053535852247624355228993704151970354619238655131290646160208421683782397649988726837252278196634981053517856938804227753486259366903720655956077600281307495658408175017549398555832169399060602763561467376864658719441567772199231171625345492471357160988230124011408081645864664202754706960654391165299517890079751182184268673154557389677397851898854262447290668121955089270533351175611680452565245776610057761328389639012542408392665389434991241543056670598175171783968155855902202724682484445459339792720089010818036415006122567201729698527863064431984609588351574089258344732031177476375216946184532093788051449950637812717985325141941598274075346498887391588584770531534444231638195879153303840785473057710989549197087632274080339594549931785679278836718690998652299643092906625403260324949479601975989571459498839355380513695029847276336757726180993269592920633031538267561821263760402049938646449653442419016278228174196925940096781094702413421256497383514726875957199934181375782936695384328720129648917568476593004987640467560624277985943441919336136575949725380170886296732506254173663411426317342021221344866969514077626650935707103155367169946308088129924179855187966593506865293556908979420866729799148498996971284817385226117503032904955063315647401921925399794886913240490356532737201822236331334099888945724651764710509393788057101013679576932517502079839992545285241640217062722835256655556640642724216994800001400683622054209496522461028380900336179645530059900114208595651185893195468344762615688376229472181635083504311540971333594989491167185867014978594176570317685939598710558603099271474959866834980176160064209455632636112334725705341646562509879318209907662839830260663709274872772713626861476443439674122582399978307883078706645412210217995454366354674219793970782427844985400063706038097842341612814142163772985887477829610592154854515663949425035573623050532513776692492733820066592701414360900003967838847521014011575603595329654257264054674826279017538642290976900486534760951579388260423697271263194324412337851093645706881494640273614659574887618451685294155182569964791872242313370656379984910033794493643284199482155880029964755844615515136547678688633326717046070808307700220830572936195960410838457217647498440019161380488547653942141981728231755889186592785404213734167198132037147184056224868953363586993758057495597708704624009015673015924273069954853318682022403439547887260018340349257503771079216566404550436829856174602075170514590933524237842969268034922274276928514761916508649103257251598079958264883670629256154751097616821370375284986604373226176846845775069502520502792973428776204316340520082583699257787661904010143851547286368179231752183961546834571875859251460288114181438593952424756558215639969294875745876025440498979636934969413442534799163530843433398604991052919930279590996290505758453647262231569667233820981081489790817506964793679268475887186342701084711612194036995039363178263939057220452786195879544499461962076084214102885788187085238170211169664789526990398195741669775626535722025995682714180468340350035999855297222954480729320112277567571292891227514583562190832218120928909259379763062193465738968668929258771093820038424863259482339380963445332236002287324884079499038210390813438677390212053595917348494452051695127853794838531133179266022628423880739893813801735078067839939644802324975288600024002203142661972352226885830778734905022759569738369060290165397103187940565367729399199709822381979469609774710601126050880704759841731637843149606151015506861302519469944428606536466303059521650225284688351514760202406689654225193925779742951557787225339530108197635147484919723411691715373379711528018556967716928372662690909399804925340411455412995470996780897311499911050595150150602868336552335332678529554686722154972837938901903138663111735529510001746679858343582875672091355423842386531038455790331858234405224746031469912166921052569960579647900714079381938809039268076303761488188163053781614423114616671147706784536099543048383123864027673000595972352238373089329412817997395541321329076619066849536677867861716434905860377562326524467250957306417664478889745185279021939906188120766474540314578858972643696719583172622462084724710524675834249309287000003773378647569985543599853572502994990197627169380483073995831029455691034454793774925187647527777757658656080821448077890054652490577145747722299053889157832172195875966394723954286259157935041550995140911137866325833731224010094468666834596857857369662479722682234520058192909921963183049007744867142779904879749839128534635468701465405725385232321495382132184272776368476645073937663893050718683270271343754015924323287830562187367302817871230607708033618338535836431497941088044410848104111319541954752785256864936742821154666106383950440683639361329881078352953906472936722273308942409153318170621602203338412003060776539832457042393202452552733113970412019840243156235066583775898815579380117694008688496446473532995693742456058863137207267913527851272354867852389805335325606858312034801722378843520496082083294625149751852775771077489450245829080876537806094723987886404127679279023685723109962444229076128526628226833395457708697791170065410620412923265282113210851316460883635727974774848903563372243889537351924287064219833749560510413516295894629708443989661452012361990507327555866764643372397904324590598735109146471207005580057858415640633284790362625811912622091567089365242826945237128639391625821630545879560738517754657488750666969608350998924739115391954455697782174251508333947349116635883884101304738629370876633296100585332411054258926880674248633328268094119704628840204826299641890758709322488830708633727700099953569019818240966787080534788025617831509744841294573266386615343066661219026625780370128095944834255694591531935642414143485818331628152605726887971992710748837909462752435975473086269057910010738880230664700483052303629998810163380778542776676143012177326697295562482974180598685303587105124196137393421738956164791698897192392298202779893912097276881511409712972479853345409926756406070985897450853180427207292179832259345758266636217044940142407261894895060164680006580047972900726005109132986991201225037581903864755030102170552368141824513658793123366404780032042062576543236376743749028710473314226140412790500196058969050478392331845694080338207729741503834147487350569995792057155794217776268279778051242170915803115099264170992882504213059326449925210683428975046084973182631215185867781710832339155245288693547423111515465832448318687041728878325680172657986380113758100047840122767728955337600005810403276631491766326104984871716014040565619984496624148287932412581429957639283072025092435985224204142046670922731650246999008598063330900602577858639976972726267052046489740388198043663629290592662880474459547414043062374975757495325191166394998237985609556138501558910095328857372405893305506391774945771131691851556436375534765456645822426121108528334895411756498972119520877392277092732815723468592400163834822767128113365758053055008143864415114513630825324906250506793026381186841955251523660398288084609177740031283401013777697491241482801722592049802233029249049023709952068746553811164514724545557990149588216753324426337218783721782025007895091336644105307618908693934359431328205046721521276836376691647799688451335939185144423442256821451808928756737486999120826334561572673786978499523489962643088255767317812816608559841030982183261299345137581478195765090958089516773007427035996805110959089048954862401709589860689071976846593162851073189120087476839901512689683036967210552234904461930898682787694608808761136246974361746482361808132256836980368907586461618021452163634261271387711961689611987772696955415107882054074411436485245376544317747229904798716913848036712105173650475977677314441983315772320656071004114004128738530384416790310504955230669357144248837003613038661609370355608504261060247151846959401881921494472211491565795577899414222994118892416977031449599684942752209210564162180780698190661276981570167226632475430550588121068930666782181890418713584378813109887673040067750561051987602320755802075876779305374709663727268887933646918906872166711865608779055498434135018598202790187216780819967157379158316094604660494151718387338024255298386994180297530287986833087907473423229203125484504706557000458607334236676971726523549130761471274379286859522722060559857210985564481605656419115518055199006969445440551005942251040921089383432817881857980086138273887183678316010902111616919627079967441231741550527556605019347207883282870868953874221883560890088551466038800333632223317858653151347739311728450091582233114281725106140146130136565440434033968281077909473451665367919655740673675854135679575674338826530604629014589053159260609305739024566803932156918681692349528481071188569207894825580443713876079784613830742494362946285584803275768507976103271817265104121093280802033412622685702769193814715107606421314251509499707070873245293142551457500277171555404389367325371701981256874856221342878313734925509401337002791933035895419983366653620841093351418805803299226916042898126670919432897874419331126897366571017327623199327749910561756672203037748986933271569365696818175821497657945553371008316223513749907961677178026781097982168747023676620406849396093014611139167364728082190233026468802910259629749764272588871613336622694767509839087733026515545660595388601174798453565308453138611422045319746157743244994897807004326318606361407744952903896355712582291338631848999445286777586743731703333175966965583969366397450526083213178217484823582600943519395891323575067154745309560253740034391983138366886488015669211864438497805934945122221515701990362891880511411923351423620763052894693509606995951256478418327928475734900556743996840367572327051123173084022564943501970629961553012787063367201454302473646520733673673602894387704967260240421628980563162889146475273944796245591406868790892132165770272912052342288529400071784428156165899018212904212143218619690609593356038540763806911861687001417509151712972188174884240222768011556531704609292335123400189427955688194671367540166199290704374652825654178275734794918816349924497550057330191272031527326688508622216311996686738337894574045217483594075011420903145794138373327388310597367393762978877568427113528705417601032743761391791671126212968383002540836520324639969070539466558374995058204890767298089501156411638725267023012134305939211639947243069207446588802356372688322802408628084721345423857493860671929305420320330468147685405776343814934220888315500154290304964825881482839121476809404132474227815545929438443808899445850524149055788188764061847591556652384093943881389326287985943300621582592909892443250976493627797156220399001917146784404253101889354677680607449604047853735535564727670336456271645569527218455463378668049860443124765561180965616645118115383444685519175730778203902860757168650582510874029980713513339575410274193705416820473637187022410656963980025851507657819350023504967837055640240202102943802524815187995635257771843329327563584919520478342066034804931030269822462389479889464359114686189115063768510176218952814096246995127160082377894932208082120610688518770383872477158959131963179465108283820122185192137753316256723421527751761757092909977609806350709497564621456687009307939311265621175544242817519578595242508491555317954229508430735247181748233823611784928874786704068990034548944467867186111147287383068848650277644351953634443485922105429375624524937937546257952202330418130668005579611774569851604086428050984215696883525398042330363250100177235309906357235386205758362801034221670005541411159118281260549577522587518297355182357761201789824511431343094034414143744601477016320069246726765342416230259362139715660613727314504905489704872989339004043285780107128568939599836684132153151656235098972479907082121005548451016180376327307935624564293173682169996815765594524579706982513276851351526645351119196357097649220391782479591916803585489870963516045638386986930403419305749205939158263795024501938922665556625044911727215464594750366456292482344340929918389885732046644385471975386089524472777804274491931872311098849269792969187153781557810570938464075111438522326202486480074354640246695431490999480185224130280993886819720268151141712188123630804208050822709036555193757431422814067229720778307698659052706016373674960215973129167432097451972972581925253187718691360992634869407175956395480543103937843475960654018509871555838431174067227931316460429734695411844970482323747478671303159210569992235475017936385667413765699055816992954126527621338870052930255619766140792172845110952382685493472568060245868583332042476605006059719697406280728464306892558229643667041145840422442388693422221729981389545230881819539690337245196446417790793526208777095035182684079306392563917374224454045917707699965495941413479214532227623028241251231601890791628866995219378279637771226445787205886610746579141882569179932551743364245403962319475280460204697482672352048049298781626455212797590733413151201661498931757182152945458060583803181908717612736046790963274922305896180723805428330898394143409583695252394146396064674273589141466527291978583252740123103077433755586894466382691870019456838920568346052200861276967839885389068393536870887395698671691893529470930584317846077241588895892112676358419738131057987057424333752646139395400313860686999824639299829955523996722345622931613526782322854545007072931060171834425111200646419552464692611859381002346724013352494946032748897387065258780071561835232223417837807185441455978021973597266316312154590355703463145748729413650803477680613054048566276516446350599265002205875992669464732786969430071255965270436816796249807393377231665729700047006602187192993295212856750622811360901959312942985363228049418291079903029498748865526301445409336539244444447175840191178567847994487863431963508241077320250449670435018884842107729167126275586515784955271289031385759680995562997814546515077994330798357102249108851667507276758264774376198998735158584260083002069832224579991649673685375031235971112529245612355278197267054907115693619736620884309729570598991866437679006648896787742458493689341287359167983978664528719112618267405975625508855035060996420903490610503914334888777816527932813618676880054949889249623601337209331473854422950297253220318202149962263168313157385135481128895185250241073301870664812934522001154398593356125000909685519853121310636692243765667114148344991782382813061034786141851020128186756804889967412750411271644112692175540355594591813546923219080897789133416233354395413959018533416588052577191683159314022179206180422382922467159468509944106041063519553759036614938597712226889784460177225050779960687495770205927523359578483457480243956010471177404633882713617608809358127138776867601864904542449337663708734895591271089971924966318468365700897530437304124269456470767381330176871460260332131375286626271543242893238304023332568631859395990754723440912179654052303668494369168876695724150363382427487313512705404662691233475588653628530115079884584033931724338416145292399738048689924853670285880858882161119127515763425100536385553432077705746115430501335120623750721232760041183981625875702173130028923836660955433263722874163561280896113762580784962719496849622457446317771081920144954318766650677975046571582447425304190050163839768680890859269086610379379058077274946394413143299255010687088345004017116239008410941379764572260335557045366085055793641990920985117864263475207880055712394250566181018404374231692059856547697067731078617289075583585132770408577087901557159636185525922341347253848215294304655230839154523888506908839810628768096742965146786912195632661749270441451565481100019933547841334653039463736400615370911010320305524578636836142738480934267104591300716168643600491351467378577240719993001145715257000476784171106030591174976412038504396881399623996395820406769277713773738107293320155655548997001763440281148752993245388181379493706815535839188725792226255948544360692395858696953021003391035109751253686257053173351681433807441623301656755799492966631185766476916042261059304944014194277844660736484748919118209839762144673444563750644152568517935552459075956428742792142528137685371255622247352291435467545324254535602795985616242930111790237144854375548224069174328734512686052001611773754681636949892969573138471031326455705546794136926289506427877002562779265432029895919930731421892991128544326434101536696181123896828675887472907838329373775846212210298597072724798225647399935568028058187940727757799990748053216718454580729047796395921253565918476793111654124284111656177646969012686123670104553939524694243626606275211570299645583733373941522850351536409046895896209320450667575940600307090426369698253252018813522611557836839007783022040059020393147342689643228009617941443951067198720085799742941864174913687559283021493020227109985389142781542725552972265314544658724174303069965466449407430403010526403738434177189547992477515934518002729494455967700904574641944815945444387824416499313857533095325823610258935228193025840558438796683506347105225643097561939782788720283525253996972113486908361185171361446892066013324618977836283576198136830742266370029405234249167409356119606265449314132557581570090160387844958042424642636416111171061049838239366368942054476602134145827271597092650734766848291815186681998586864543916918152491059286508998054122992670299990742260461344404070405877509866400703625776206429741002986820551162808253433163891861669931288034888306077047543922669357344741566499159077144804092812160013271315557414560771165296035036586001399900936813265803816662380938658497991306706854302857065673368677352787015766072384669184778396096523713804294598668264507903050005153185969494827406768925658230878567056634601776826208484428336777194665563496768557194083343396559773965261337836423213656075138800760571663358820288151111156028831937121687933157575317232255006835104069245916266472580432254427001912841101322313369483258323201534081940278884070484448254951993266779396910982175908067000138654449079903948717230295496913423421599856975086400246248388532394934260298486638471216572778769602795197404115694289894127582254891862053631593257159113011653967583959801192259346233706862518453194170902047836125320544352633227982040224698652339831662610605638645445384427887775316306618369801716828378987209286572896532367272205366845278767217114554114197804125082443295339343880948037794084836893158683183930273005043651079027090336742368126321677064014722304191104328406536039320089371375953908353317864982157698824570197844825444398741371743024658092790181263810770126934333565621874989651434334735902970087207799888702595342962990273525976080118035599089735204634087558258259355902931054381417980479508281497254382182348986683190058240790133684291075453681712353619622752183705634620567196471875050168656316250280737972302688027314562185142421811509509440569047127777927066864786354803850801702320532563244395707621913296499979216984856668585309065958652449071494080083691207179066180335125787434084080425464268398030726725897349736309800984226783630842311670762536419273588642730300210931058734537054186157212597446005166267022396003808291995400298282907556270919577628220687419508527221591109736723116000200587725249225300862082714684671676284598953379413673811553536762043303467779787631528842915846987961229221698864105155837455187196339049739501547776592492905859737374608239746466674449738858129297561929085610398350295677936513830907505114644136600009308470712631944428428342917035836481028574323407584678935979025916773712009619275295949510088519164954136804979986848709268875570037957416398995323746362481018293630919830945378238536392864691445064029020071733598929153253800014887538120582705600572957580595111661664003736950328058812438326932278704492081276121420069421124832431752893070019016011698782867773642955592964055395582857868651631782274549146018856776606488116061027950671207822238250658408165965888755176496227495764127809110451198289636796766322010518271254261625875952650033813362744507499567011076420779996596001123417426158131328497003591082814271329241728875434381991642101537121259088391394143411383776255193951694927495428424991888426205540235958277122192325053122926975667417895593345930204601236146275786885828248187902723168906789723648539635768668174349897779426661088082869392857105677197834887751455826144428422097270552005696080713025091422863622873606624734587435509063843397171459071938569907519638686312237250387098111247968284771576097496475633223557714722665584395992502440936882705557801005239634930702533962704156385288204177868566733788892391557012406757017850837462039225195268297347002884455250928524710931736255058424668161103010091649527690594652337402783946884968345323301323526653168444304684748911887616058368218854240292435133452866318728479835876803950915749570799695757469137388857514027901235093946137853353606571456399447793994471111865726119877684530837790662443756136292500746912413392812352399245261901662799355844230368405803786330816955039796737978244645184921270244288448520325322715486000461016884780564751945541002256649950807586926017100758118758384033063337442491658138512108788200303082837241142491630193370944235310331543775841248662168556420626399706622914058834709280612657503920683746020489172917255135250083462299510129694196169150969106851093297427603204271001431223175836937232728451063606656257745377929606465102301012590194658972460426573153441935089970841720498469080193904840374080965099508240162191429941894596909489237659143936461981377396937474759575263236744164139350855387266534243972447613081097970896938256046293849169974198517526150074589107632696753793395956780030499315290228443090231104184006622599138190986724460491789607889817716105991061396854592808335928332980675255391607533119732797827737325157941578535655245638348664529800545836655584166491578005122645948000910315664479213321705789315714705555053775301520064719175645788692464034359763012702534089929892710375300353290258614466186450267155651455547108596058217721651215212815496443061197077152048086464760275728058775534522173438383052002711646088454948140420685216765188519192336110708486921668697798768303498587732429413486959239473778125258071976836812660492127906101703287758340791415464215004695877913585934206165189568082223897315296047402289061084016641533429804442922455854405360926277947320850978704840796021878805795040401605627848084388154591805176426054088009670435729747512622945439300321519378560450803592978895365066995009733493236888929642546921433212797068919620166088909963204862618447355482812656234114166300725054505044189972470091086039217066345810385204806704675439046425949048911796510555329117396253400509264321564751740410037360915752349854539913515694717453937256586707330104916323889745174521962231766034611781662466230356163858484736694959814398949541240041794503046175940513799966235767399509103444587050765670419776448280597221242443783201696611167023810413129365186255527478960607712211168454602513894548135642784025081720715559052512227406199058540305065268645937041062731497423583292457711886302698684289787254370621579776270835668556302481644864340042552131642596669736909760317985612416492132305765471930470730384417842337478361440049822001336415995554018310990851827467598144789997198144482547212514032421634384192444366518642558344649256256435656489142542671898271411948972611818540985114863293412920176812368625938749060546592307584286159443280511623791613752362394177770108444929044405366906299539663426034782665000819059807712526440267967101341503795805002945965367773019326590293273689151830428588425767041960518994338454164280910255193639055459811242184344837638105837330487162174711348304302515562077975177353037643005848577479160832139731133658153808724332595677461949722676905041752224513350410831559365283984890478308920618714135367998184979848857841021525740835298153016170232210581947837744896762813759207165515847145060092841325745457333212431644534302227873374523116251587229669246352345275654181587468557011561862310335010433755572181483090461071471699538078338530239881915796023301845692998867300444302463514434184958587287241571952920028206529651117691875062560167464146544604955276403877267173123846829931304407098494378950993712926729992675280335976840954409691579086357452138302484898835874265658159878025868534807163899410538143620955716546545859608467459905818961471578181687384647470169039762457654963975474089478859995167962577977059722759938380772012802839254057118151142977487290419208865517354366064964851754705803955663294685294592658244200722024861301893731193320575907399510998379899912822623301063561667834670398667871167263642013646894640791016405481364889297608659542129790125304074989031092160618582052683302652592757804220589767124245577009028294879422656113692390164693964868288512495187910344146576443864627491662649061335475091537545487014094991547622625056246335270912992308547551917660215066005854807810811441795232025681738975270851313441299725887752210519059608980386937549411201455130780711310701660101008386008894152268497123303350614830871598681520772494925022211463476873116024100846236691105947689942172708034518686660474688260526497990325163277136878948200038554708869978597682652584750268335695169250996095604513926552123788607670640041380285746511751142441071566143191466614335647188888558185887997802527291035028809911208526031413256916642236267209741370056987585058562308702228243432247355235587634693066493101051720523060497284546654209505913707495149460155941229798187563372926522129219475698970872985288083744774135359409581801107041299012549460309992979929956790907476100344494229539580013288222765695932576548910327462312863783010709450337445484682958017981845480115882111754561849122512341542178651381786487281404032013786999976050761822673713046783419673172418585308087991331675655147235881207801028836022611684360417172893278109023652961111467621552783338362858925754668285308097861185583313566615842523941646627815226794199133728075626985502505435834650211011248883115068618955307201566680283153142950780037256836549028969089101808022418819012358581695411374544427912584439713095879141134829674131090928987572498083773888410574561842489495014773068222128318457888388075320400423033800635027897327804412319747117058374190445834596705334649066910632757439552073751457875089313660191022205567420939602575648650043946884623478771328733903132968936581207098452745015182367244099525488165956297562938904184525040310703161932312134208777668443751475479521006246153509385674790620446050776018408237080966770750398076139563004751488918269303992127774731706046167616551310447808973780804466054803151961609423238269951668530571484808092904579065625175130564921515418895080844029446091892337906097260669552800851421451437837134381763288539052789381461976634682243043836758073789084282245327344509746166176834756146040914065825294930865687593649528957802286843920578573432703063550506837041777319479166826006971487379897624139689885886689526302277913407296538799240208153104694477681743110668399616751054217129986235390886276235064188228578695302152972994705800771907521529624084973158788259468878752593173616617243957035743560209723961175795745863605279738483094407217663209181159688961325261012390563898965468168914466003052149859350143001261083314530133502514236663623849626400789751167330395023788967249779262773963409289816835909179212396383143555648890289672302901355813358238426426300598407649320151303881309188499450085796462496802789218946845518042672301232544076704976318567591060080831947583938026743691696759009141923220498787730205342289756135498188818900457579984423630508107995016955288809141184771938679530320823286971919429450566781182136570308883885216575537767112395901738973787401365409828181764566419929986716912434335154413458897480387041551987797091050855906514233655271424285783890737439089545723962852587464690681092693242603713004461668522103580016681764000374390560593040327754264891280101982382018549255854023272796859143186006630729802011506442044458409622721486148087578542201430889775144737438837510713248479265146382427402646661010916793987876541835816230908906976156124419357678873846565429495919867845376134945369123149856396054464232081984415087281459982408420407751353052665765329994276695763902357127401404341626348889501962927273679694501592614060770388845519367877739070242274765704090537438288156963803375770443159929840778968700325009630153110682356216490339140356610665138265132061324787614982708976989718246181586226260531971858017992109305185022328905231705605871774445143434403467364050735066203365012775004994892598075353439655507565212269338016179464939943916721729552195681910512804170369046276433339313716646716223691969822505363693568232044487925476449593779929433822774137357379714468871935123203962389336495873465085454182943083028376848316071158057533872672125172415207302266158508403072010273079762917335805760314859892444555888687191733601553480638125028908839442041851405913592707048137283329533570828584824419965657077864787907198601093150915072890938331210534475802307336145221806195661568516394710076208504840260524980947617072269448455120223401420416395810182693239632407864438189637469839408812124186024936417730797451942012424663191604255964699585156323172515561507453281908664663325129272711315706125341091229384946327793223662115315823378270962523984356365009374073148175151400901329455888149877181709319238373188661570132072953581117279460379094839232124332344297567644658133534777475194852641782379483852404144573992179189137428979268059406660780229621331301455271059897174563085924700349331617896832971291277271061027220153392304759551567098171524332145168231592812894875490993512879791512576025532855852265246173136942497951397174888999247131568945027072345358525665635440316190269240746078451597284272635142292131899216024298460607447957781884601387098201143984090571149100814850282129433455175795589774984507673295136308551496367605168773811116277566604285099119865086354584280077373912340011400619004494247044391515774281655784348895573170175256324847547210250791238572309433136114854542848060982941734868774042443142064238595991792481397973198354388268433108226741612833832536683009188693815768123552931460140762322889541408855829751048545120841693258461481304469918600381690568402210744909249911038241622806467769451955000687638701561011933265515865208715126963422177024823705576970966097776567656588421711887866386775233140030652179926929166354663416160206687486577032132161976266323807264942072587508687117521606124483873517723235548045523026176455010946253758246844759697029541653769481515627158208076228643563790156433230162026138778915410607157583734385826135922795509852581383400183530778152690083183988553749723552896983591757548730939458001318751997511902464462029672268028249275876149567881042785136453066495230507277008158718332106943242234785591625872170856238001695933645313220823335995509899151809111910803202882028611490133057607200271426578601326466195248858928393733127435314448155204456800944410919444427293349420710337426155439230951636795136527096955433824799177506893907704537499647602646770155563863045533300305469924193745865623983628262925954426153873454703049717200845562735548744992527352179738198585736765401560983560982347105102808435968175196628423114359789496074270893821973608751036402983587141806717890307914376986788073445604196559586480926079396148750554397376401219014578173420878026640684954948373061488990331826074828340650167131358149667672705238575010758254377991852056577377339358622379943451939969008644065032605639858522816117863848395085721472582480928554217212420374765198377218856572679625370939286743754409467388708527651281133614873046617487390775887626105995772977568308416579870540169606334234690640658113022304098927584652711983013157559122737227804589372330532415824636943781794581987353545379474649387242165249450590167939014667911735057258128566400504346974131594460086377477526322459060554364739796753154867200177097571925854601308935402801279114001226668848786999064742361713163549152618306773733991925292735403440853364668167481825374414575512561004433333800721481998405230582713508887201148230603166413573681644630536194357604016491971972311888910488545899712275440098568641283529568072275331264389837286165830776831112007364410887182567537107003964878206734210747527646890857526939219185142482529777217076732185151567487728143981617673059424601486001332562858570017849457596895559160415642318787834105075101111018724707789013264277142513233378195736002608436578100436531079188751772827352169744275745089716279194862678436895816420103865967183289048561966114851983624135722928402847159698492625828006990379521110008161164955129627528237139431221159589065724892685528068671829277378470321472160560787450291706600665181073414508635053733746752292852210955157631131061316812710595701376378911433229768140533805087261199934348688106843833600216665398402776479326861545390839855144549534811620368318882420294425303816081173256480245388214057304221734435371310939529631983086996780828773451597631275360403648642091947393709697884325893546903995169640952721047614899080774710700510624208577285224592755656256386546936929165418779708616366386871490710733646351740642189747550660193374586947210101213559586481569485596785696951126949068405937590067476455152879459316474326454391852726145843533821892448219292078424748660693841017671199009821828204998979446669130908262392465664780647602844901904056135019544483591975661771620286114095330805521424629974719441992340971942739381788751891817548011591112995974209109956925691593446712428458551087432162045210007452637248750382153018611363004102652403587460156936607016056653287769760278602197063042661432821145852613348092525003750977263234489890057965111753023123258001468822301411551358567671800242016541958243052300978328238299867762437586678605057657002520440558782730687460538182949178880000310462004201092660549416088713188818868640739927286971520486039370561185332784795665078272512113170286228107225265531395691174603292260197143017282560571285796009847958370959221367945889831856016833064470870813251342549394211179097953958853454514958125506913156812850809767214816878283501261650461643097146602929627581523242590906835818457305610059333054242059045034873190606563720272849153821865271863079353037364665697860724647849349876177402500999154815107689061550532483988423995163169486577337767203466112788243602931126309527217890482835892279742845888828574911462868959876315470692555874724882896187039275047714803186753799723303112057518269499254458832194441060690674750546450410077103004874819253178503503175967343951942997583836819211436408754933963720023122956561855382265247668976685509181247095447709437957088604707419321418187707075915011336568349171416580989370775291491718374968002019661097901361182212957659381669757967358250952964425135417080890996620271473257168976150215083377664478547990168472978179524753248959770793725162661022400021312758881236389899454409229240483279843163953235091677749841260331456338996627757932934165316471541912866426815987126089907938109798675924014744582732872298591377191705484100490424163537641100280315341491911005759238502155905967879683389872894227278079389784587895129808124132751266556610880029962683320473915393280436686756168105619208302767860093998814493720735501399563764201584820351648654476125989997219096824702228155139817460516789346626974526685735311888410653758566612284500426904867674229463676093026457590529124053466631727283880647903619064402239524270391032467416835682759002989332596882718094464547504106710586773755022689659568470216697423472119048936613383033500185959177881572110277261982925520088673270179669720160420622271116508150054919140360199093172729288256984157023137625293122319635649337808765756346828398468910276261376812877868306841963856143782939032944188662963416743590157714058923508760139531525244744092220604214002105355056294858568369156305630632969147084541625994164636699083829839402191114640227799944016135118927324664101947303595607754150395287034194956661785009532570024568156875695024690636471676348196370342185057170792482592950305414451822555910563467610185073938544398628850030748333838859193157193160533276660498182919257100615839400338400471459795468947429718803084107269738947437427440273917922700579799908235976435734323779982199055087774855746126244693553594994396930716106805316436600518797348842435808437042841493904292884893572971875045715950718573936775075941687150209725421699643180534820282146698330971464812026765538095747182317442499922870536532533755978695639270180217789822960437840415542105688969322300384646781028521042497329811265350529341789813719009580539511003822544572667138399736026833899989363187246942037660561301929011593667666469826804988366861794295274605118811335271973217596831065637622134818499581667775589510380541321334064749069146499687657966008283526470869502780710022239137811697872419703154542678444513286412941830123078583144573286473067815636448177083015916556295732212606758650669249754106645189140022907210006959221180699755899225903414599077655994236391300218188028954044781370462527963104896816046854945674129754241495563362689415847518054834835829543009841520856674724835141100414461210881644108045318395375661503827712522549269491826549102205643552386727843940500378417555792136055116652448929315017456023017074609572768636081717820888969389433857406072061827191800453266320694128715782639026884258419484701933845780297627558578015965515704101835895404781102829196446737978613281660988690892465246110828912167165300059630837822008460326573797313431380979154182151678711697825841728007234957735147779945647936052207526176145042230261473850488411954077910631948585877044520322475504062197676663175965178953184424262047079600132624214791080894443175516064512481480647890916376164703292711619811062428359803322215036360753415819171114868864645656220035037448011956201354174790233911264082807909474960528814181179689891852218573073085702143971677358140403991121634674026377379807646373779683429537378053841105680650578499822623089345889437826687543940365788534227745106686786114920905263616552041168276009958506018334552164978639797348243161137501123097911342891383402598403762168065020347635866671016106058943254555228360803682005202980418033091737526972244814850460263050689994554176696672790252738276604305003259709569335275591794257973469115247872838271620386562477528732266186052826242081457213334045641247224594334660872228966358219342890153113072041657619817707636624638256227867818389307957234197960227717675355666312216421238004554007511934422722329419723431501131766597996907840099764654562931110276752817007916007237949065732525487774765306072037900415483051780266796473375329325848521389570998716803507965386821744392755752182752497296519445268303764455964372783820953222907074761368350985882578245488488489630300257475000493088988376303824724533924867181272180349183044911504839567805851622913388829361716395350424963957948552078269687852071897880339533338965444018953401380126831991134828697447058882035898933749104966540820885862479182499366875286091211531903957497170148456438090179409749181724053834483079753407653735309561110051214742731073648762244738158993615660544907624009075955094842943982503699622192273017524166886223785179210470289324074742493456677275994272501426276444383920861809596744004695340062428577763583898130744005804029414268103643600794694725497136006397896283242824314858483802943373029326339099635661608958163869567233854241506923947897937930723935328234981869958579332940723294963411825974570544506828179744443180394594228945556315471795382852449685169817503227669868042706402519938786599142048267106404657605158940073927964251015980888825003992351497652678017782490142664455901611892918735052338129278627786605062932831783112166539235661221041016586002460168049553929323573945894000586421803856504086528845351226116878317668680553449082012616661447253638848029474991812495986471438279515756803199295201861769449610914509498088769110329869173730969682987154951661144570970503851119767208604164462846844250749620291050552703403546040217445688295542748464838673919286343159743235835713861066554383483950361050730863172302598137664677738342372870606014574161138537073212796017800402759092773465627861200773967565751533191480605658821952933816256688100332676597327188330670495156396937811305651670574273691931153279648952883899030856743328950674997732097118349554789355552998849145334253834045505724556151770401494184131267022615996216640352533440284675631603640078002458187781924218829515018990215537185685390815875071099168783391994536911018003808060848702132856377296496804938945562220202366028788269493096137804555711140283321273702448888060262718892704333037837945085109846429562460812541623005120453568678959108622071759750916061824010413682231710473884626695608435309882715384217673347357054511276808483010434439328518229533191360697050020101893936253092863916274981780821975607134286620528020354215989262748102225546990837023255559908165897934231034351045474444521605543698499509325919564247846727797657515418857739223375995288330881846556707399296304060342492772648476257463340726636535271885933268321368231864477998014865459477070706236827491695640503501454186069446099152916947863171269483683419348748167070790691503650532460138526020994634431894589752187976124906023221577971205216649862507227021424717363403812001317746742853780970166059690937935345023333998485698948070436249391498702905563897482074020055702173263793003298489509465816158694230247384609232014029911586980309421278091365806236973741686847000585063895641264103735489659536039482444129671150390991604733640109477736224011358602971013229697613619687609253948673299600209468518595160091352967335682192885747812517389425382010737062475008921377786752331341587979561380249656238545347871534335755622328445153111412321691103040815945953594935727479079806852958383765831140592082893899005789354545452810746997789474683308200442701976160098956832997623449460950987037335630806733879326619719291852555288133709456951760529900435512860276982376254444293472612087924206329366076084946278889189869335241329355336307906983644291266934916161932784308225601712585426876050199037832344028882155521507989780822318689169323493210631084325283480350240396523733400575721326591319362111090836961890033134868246951416900935522594337093720625104035147626953510056726673672592397738603681701162674267588072550205407589876956940922685284183184584533619156445157041449061066623330804265842201356992610627258833417476998586191938243227001524033558342727742700366236348687899681778418858673259903379742727935096650293824280491377228603517905198081897042980913101777893833750883663005287092037513059167752911587519079732273101087532381786359297791620421302786684959066196720931245704612757271958507195910680142578910377298222455909421608331672689710956412347084194510629778594011732631536822778670720642332076854204082999118847885917182908036958986355342431862772025013185321300661887527612063890486906241954920230131724119987051454464943790979234004625262712816118145784082844893172768268187456624014261794115739038312372922064967618647501962692180778812791097643308502523825594401870429239843853442527313966561983519629998122293305943812875613618719954421485963928691184115029735954853424239109534678945041084255491906905987067837624830188225180783923323376669767612781937080468330995285639442715313739041152053423914446987769929363271322274393860373970695555724733798596159154717483202614216033597229133215550460967623112275855011625634953965521731731944428989987159760155723460416036244790639493473700327215842473484243778682521203473849328557808782353173726506167398689210344015288048541263372707987892976931513921372571248526342621740955348698296082732094221386148347902280244146786142231668416966878576858345949562706844069224815341714045674988049726311299021843398365559662137787764935344988500840883749307430213789944746344920720540970651369242054814637447849632082824951483954750767478321225663528931933725365634473920382969598947801272448869551211021763966855292543322904784028926067518454519129562681286471493381923743334468691863805763427174515017272527037547553324949474183308515361291132068013525843561695506522904123258935604021596210513187912446691272860216135277796845209546223465725996821948237746155951504175517520031426685609900949863776582394436669937255655847767530554201486876732518663066203678027293224158664219815634955754055502828022932943994856087967441818105755216978274092244425654918735814879811934276638487579947733178954267935539755692902632769865545071129958007427282242030417684737814127813158623863938611522744286793072020985837187220287417088789748544916483420174686540549412584279686235072287230468261872898356913115440275436917800999712417755721496786036470112247224154851291470774896426423179506065431587518789868288075034084776562215038200239316360599344136243125752195035894668184561789274754536629618636965749544626994570571220403194508464100645681329531101901886992728196455089312046444147322969633257725556253993307472901570736919406975006151328440679065124254817902500300526924599878116903100008088856248439909877312063486157170940941155046328480903083418212715485545688049035645671412690192174455124102944055838981586769147225343080074514881980270584258784660236497389322789730736414933160994402937237198456799669278396029627411644907988966387194961693114904727688949509251953328422528610406650854501791284127105528768213577968841138514407336506123011185407678642900812101517437519461423086471364665223094710080704340045384408747394197226469423184229270950419370023495961292970601543543797828147012995713980230367794779199566219787481659145380913345450340420718225829180673802901372151770901109993480214267848730630592979810789195591277244599518933183519140756695652472730118674691020969507061343284820447852404132500947988414664291960758181938772507207751729297141801111405001036547153284659624236714184683261681484305936582801267057658698678255106607021122630874796264682952245847470108345497178315597702152332830521151576491138721289198359563632794453391497767273322294868299509106900297482293297796993332792839290280806991565513889082977695442361935792305472170607246561604464870821799703590628066965670886535093450885196369802137023619017819216472011880649487582588821774304359946042467272316174166304400357898810615722943100537136365208848300932776334388543265473598672990417997691232788884099693751088049413315254120617367164461624886661124837289349554635946379448791912425440782363373144847392112389180006124757174537885810730281328483238877199625608446500600253930437582229023924168995657274236547599070792048689869707057092566693190967845017066509088860149411220072857671437430803359894588954858929852066205781284946582515696788774345066659308955027489257642088556317563171021183355997148738298422381751172150513561245367944991897589794175501142245181230999396377764452592284016959459490232996633942354196299405561312156446726233450961835405289506344446598586796222688573851816682206087460476089293083593382059712660000321099688260951844699372068865443887671387728203463487087849691363075769812672607533935726433769430100536898256038136858346359088948553392614446418301687171545660660019489110626707968550458851367465974548431508750224155412167753115211390368787783099607182988949718884159935365724896104907552034517869277219957680245003392859605027693535025544463590209196553893713489336136121821200216341462416477642380276968816748431019948899765523205688628612755645441924655154197036457108903435296139905048272289916336961455267094148504118216678168309953272053950117442013246174091626191489626080756927613162522417256222036993473946983565567782514338927561365376707891475068330027981644730838892913732161631540873369593650242594910267063906231351915959024581116786955163683311612649005604936781193406633494765349663740755079995399052956743687230087588182924861759227547741042783812054090068045836802811698619165969118318825179484198062536046695604412835742833126152468394029498417045594194502838057050628950947492652882278024579359236349494930782537733757152769723083316998267674148672294469003017155300870139923237085982617534763959129248954072652699716554555732238716462965864493825440124215093938590561219369943872199617322800686557576075374253089325886597380934004930279578917366218385505906167642261650505519522109713570731505719128451535573830689076727891405106294060303477968138045577370860018373327541507047694415573514103988951204624567985017202654590863352273061004255898455883761908105373996069057275820208027307797751089446795003064894233751178791238895743151552740802988612717089237334942149685932301147282932106414407386482096280426551153563279278996898631297680051449030217104418643502092996038418294554441392465802180380190584882270562692201911708705519953328214337763501592922185344103812077862206834738736889836018458473732886561841049176776804944102322781076050798765968363002258361670828705314204099047062023846468684512802759521624440768996608509372069121597485219819354919457842283531316871467657279019346900866155274905052080273974181792907268884339263943941802540074374364540778902253198955797863704513272732389767593883345698578809997935325394035458517169618597111989883043075832813321878129228087331037854450367739319704258303701923685432434665389176162222116056112126033363503542041357170166384150055004106981441866261666842368164202556047161814886704266235177432464702041045917976862124483899729072002047331490353329864348409394082317037908625310367358986507828772425229490806967423540580638856561488313196973659067624120430468414909911069281753087479106932086054313233774154847378515523866782692196312655819273979591853929724397243758552733005290881572276773132896747961707822023322873192760083899496790661165143586524641617795894456824715315621794214237162467968009967146596580816576820475915958710705373370647019136780838917414788894385151935365074924673977918009204023640795098996209371854092893231210010731100928606509791629386529284143540029214961217016719521664581756459791571945546341224523598950403162753761218875221361852543791140532861258094410339638735979167256027472577358289192262404512984830646194592724838356322630660201869440080848545484300311376461497062275937445829864159827595236224057774396208315228507058509625384612917108361201756333027161294105405627564879452836574533016859139330697744714255178519483227473139501197918331640048398781750877261116708182298066180572864076144448464698100228637190883285934106661360170038261606547870821320236920267027593661176631834227495578690657513375275962650441269419090726922972045821048409840875430600606091009417232363559702789432240502222275306556279334698453217206219131927369902319758140489475857998535180943008402060052754261018639064139471940955629485503374445688820778077823352577137908897385258734304861751180752337527099186575666126616449467798615946529533229105485747674425649516311992926160543516400414060044649661081934608279752898770558958272003481159953758862146576473067593027660119750489002892863188450681436850939406897480226890671697474444652976297439857292619157298561071287524550822865402781123481138709338792340498897377032847636946013916404656583476886928420212013422568719358344326925077303602702361482424369403722558417913244547129649993555012243886081149129195461298959778519950415044072986366639995056831742114565835741056879002057123706741741385599407562939853739301391971494318669454987407779131520914672563545035476240157157715220841816731366367879602827590193326883361511110537003681443417132329862795306097197965407646184942840824311446520071411102774617474418648436292649695715799895026716065635729456710679251133732253148581675905519697662617436890182432799598439988294298352928122703509228102226599423065893641095915707594696045870857188061200191707224072524965384027811991630065905434721151949655361379811401915086797037915922066735728840551363551098579748400138135844289295020689377191114991477024286080085142571962813337831052862274607284307352426496134255972594388628323381331648302301811665066141389287439740377848906266428506260530147168468619222243858096364893044643467810762335485451361821287591763573155658256996071324488390759528778173678880109799731827444044678396183101780480813689414790297980978069589296225604928473754813232211141498064605377141970259864706522175889638963175234837437699872778267605356282058427354415971588845667456265377248026892227765685782191788229012548966056575972291477785926086311256340024886818202609427081448684214485574291710020698365441138898049627314479407797360447852928632268794149779123913033422678452816989123036175098528894060796457410109629944904243635837414855607073672172158068090818298981461227530918219738702777854977773655718941370529966836764619297477848383244375016608674111326021420730452461694843018179461804622482852014560164742060322670900418305382432107448761782023304227837677439356801717913246948595924756382590380469797282414911521692893731615172500534281258249242732280024936371417812525604934656644206131401690271268028411386141731769758453354120612199285515975100863936569380566317384397534505618431597794706724648912366932368149709570480904095222524820026163840509939853923731064625122757381668964830061356948151084681790832325570378938095917002978654058448599250638475563161523545066759119378308539514379899360538117055187098252104500145256771498467322830597582853451067710513762768096613636997398468686068176013720668546915504784412135438024850676050601428392060583809802600730003176990528892586293464339554718337976877382527574318623037725904758043140626046993521970757020965821477765740908290474483821215437978991097424954119763838222122193298602567406633554554244270189242256032355988286729170511744571002552673526061302323170069398579913098650512119670059279047600625451405767030367010190774644939546382569875028571010359411927126904181830345606961221716555015500661742288856148406591325587657950216132197393064703373762703570599444392546589600096590427262475547106078591077537365531786178912326931021982396496035911386874379795539082952441058753633785832201977300356281857184665606561952954292985511194347462745787872894576544432615400778701470209635958986425826335638119302217771987771697624002984324031724888900572840103360387643964159538328730977925568783093803452226666174958855253029832819887811578719827901479959347908654854569459234348784187569614780513333570911753424802236087984010655955590534535138766120175897970923461881940030321889344331306935558815161468076490562513490208447472989412354824835713206324877511753362147818394508013792006129675612819250769838810329700320317889393358837312746611032051363686669993460925875357489744085199432568736862580491856992675042090569098169097477927187837683836198084858240372509792883736192036412370966410783535714850117387991135668110985401255617649714068628405798255838349631149122846245379445431631875765069394546525226161525353669730602316682060536578247448226475591236076368147609645909759355347763730003672313396687197663102425200732914366308651843978918780943102925003746949734092711732474847111258000978167078535333098836433063546847589044452147666664467376407020987765546982073171318746359756226021849590347229051763859407586052818559021513632515463530348451291674892345863749911251040286213622960657092744464010086375774742640622280980331800767535492409320948921575610180239538676818388589522189472338853407172054838095957167084987951563840724276940188079758830470386656075071248408230065278946405563042369378152797964314349204887677518121683923370712268564106405798655814468515299830495932958952181931645675358755089668165731583261128944945497599652728373364348403923953232294880878045250702485696172308333218151536475777701919391052088638616389686530077844115645615672095713124479710920815073202797962195878014387582541617792780178313734153600807180262487770037859796587317274597783787713812714499423943772672509793231743188751042921099586366451651707727966789042889629981902645435290319274980845873550071203357595296780292804293345930004390897229748845376925221660252442529913544898482584806153844098247240172672971334915873031306523103645769141066558857296471946984847768720531912735724218392077191979189973317329048625181161830376817196362906558278370271244646478669519714761789871126372133623615355764503520433589125502736137780486743861405587860363035196938485686109809064001320127228693213482539887119983096124885105192580536333614824844255074910639812949197136199485046472078557768781242865456237684407879468797985411791781085655531596284954064638931735415646624756803945757986863270215246312880540385521844006941468101842440089502465064082619437608463049297597320326572571054885373051462418992768253101359524547240646998651276580555373789726811830871902313884367657203677067458511342080644561698704793232782559881078062997994703362051394764858877684176095607431953284246407328235480917638225226581243552273592416711919886356272079209376724643684434840619521183141491316416856707458424505211570994577137917752171003965481264472364421978258210848413796117194581461694074864661997690611841539515628438046371634731833651907162528204124084012695958008672143843961846041218579085000261336156322112875676676256211730095419960699170218834234196599678468987315820634568284866813329276016295316417840703335408529954633194707311104799703548354478473247408547995458998815713099325146719664715101794134646556525876915630223168401204276843839970145997318035158944823772050093651538913254280421316325555582006008943094321718535074428667167713620133299411564928638980465154897128579590655470621948088492384643294620176248966857575974625651394469784304911845736216431693321625532874113075102432607471222090744365319990177982063372230013009861514255274170708735363625419237263950790425874957664372815129926541480927706207696263248568182057355207118100494283158614434090834192133484155689408520811846563715793838451058515438781997293992805894279053126060272478885587926883496776699045920230751264433827357856806402888434894723553829065731161603465477017073238751182144947317254554337574473714316125991146022658866660596886721965638405803030460198286089728992067184296916742453236002225486241287847899152607973560226554839347922073647660020687931316373066080383558070613905986854511130735065003153948399730228660195260018143788156373797216709904051523600063563882358266473462029262766201789109362821756857649562685313000842367690976244431780842721356010290700344725295796660927362684926521603959557419249756592703571006474967086988734871950508156172590888174715206120930235253995205451367750770399907746008791246494663188071694565423535225069150091697440828322124881237802028459295683496551631951912463129709830585323870113324243941970278389033066321707505435299962847382163707232757784416303456701555320407056002591875129368008816858929147127672578363069364990987596341366873525637630965611272683048555841130175357372001698930686699333914102499153222069617639348373890223530689721353313884179747771912945710579523925004857404169787257364451059458388118451948026735607372540411153065572738924707446670785124858700950825468552388634825226281935327088788564649614428317467734263830330527448503193961697301834568745281431360263244822861649770734924379883555096972855048687280034211654393539599393683884340690757630929139091063745425547621839453881242157144651350216776374309515215723748566525957840138696472133184498198740076692548362989101834721362771485083266838172122955811548343009552367733857835542962850731170491981678577425777745813827046583664903135606015086878687780788108877152831633416793000405050834291365957546530746207631112741982320746007162354700012029330914193906355871362401924919987611381438091156581510464486792319180082730061342012241300625283964576533667538347727452894926669289961348912027161713764004550987508913808792237232821252231174654634836274517410949568101892552741997432387880339196103684888866327795705411700646299080174344597782165447432980189815255469668198969405301457269371835435827606031661532870219079937237033417227446939208538132574158501470089613885849228072681001047777467908929049946027368171185950159458480829853799282960142335280258412395227353599105553426786699465018545420188141028879766688352918023443348760331945745808329778028068873479808830933853230209612559292890413344758829729033048851221883896406559766574644107847309258501886248639606569439507346292865470779591328956627839104373206309036714978858358700682891257432648840090887652473485352833690536375527233850632386469468068805553264848028122181671404213258071700040081091763928638096144635704825230116163132527396816082137745326325686040436769420678969306991142107696280637618394893502294499712060359031373197959475204834205902947552801530567155821077708857900417410215754914849679686584162412438680284634972719578976368855071818689678044156471237000228303123733146920292883526192624513614944413729132131442109578197407066026660712693200361726274994515399310324131247830312559058457246977720070544707273092987636657384818053184037695626980654991046873918708421066941996935744749221215458254389276351393389184001888007145366096789018289043280863222068990009120170196323012150341818644382456719565815406388605189560046369610622364654502234885519567498946902960049358641478564194027403330227431190605195446275681324334572198697338511011555468623106569174642149042441861505286023208414684053268987740817277998380854203763059707802608063758201755333211261146446254955932933322483038550038685134780047314226024110739939604995883950331678792957709280317509070937648440135481826646699201029751385903704451382797411137931977618951700155465383909507975597305927527842030179065198045599085280539842879274330146257179318781952060354811427275164683628301477535909544842417969375119123800727877831073516797252512025685641884464649824265035865009653410427312603477554872135841365395785327278627247266346085360149385207605696899625560885552767460510853697528696245729882044126411194086926803591561561326079704310019734887212986814722066934415902048887399772251754011296754525753201462731543754614432665222322057039849324762771866971097600204828828956501099843515939486483592160183491882083546104463886812422583942063012524845600990630871851029118614555627179209406491064426708725352789346320760494415948669520191759353743638723891939266951704947707175593200972797459689676160626831477944064844240843676379535048581250740739398749442139028962451843168389313028817334204696248005788406755269006899527868730703063643735152755316991894435795453938442761512644050150474837679303615676234338373292425626523314002956233978927717758813222567515947934459788982464321605322086274422169301524171730887843690659239207353123230101285544938370117679641928342872241431877110038544827308789221232372776652039255597434338710823249978946349653273808651818084416505644346658303106922488772850463937221656933552869791847120010152426872194082487377262988609495435352389306918697382484381506911442194174525840415123205073525708046685699204490380783096376445972231775711639789026152613186286491117501367977244874937186941085037524673309458085673203284780571748070537586067997219549443801681942549028995338614709797042991142293075200724459970346047251516665370020397718647261482501331804647862260278293327266713076210494416851481030599980663155142962726647467416026079403762452219853904834527524654158566344022059734305033766933043458827849149212062490986236070824990933194569394052390208060426056277852182174776013999982590628392959930914394916389827336429972201679377058679709756519135816170093969800964274444885123313076781115897107610357254882915744114187290684510049471082757406803684104994227455618169180504975016557735914804777782059787192372104166181662399480053605378152874178255030097880169561124575822601094132338411430809634111446561123782381483776381585413324071011190179598763020388468577576732256724262557824186624570830160426991091043329816096902747550619066105070328810133296107544405351444550040155188867930123319223940565907091033572352115173214823084333233583531399246487835084436811760153664737287533823905363289796253942234855255619727051515737574517094455552849287997286047894182024913827807533217462293557770347213589504765788426593980352185432113776761698455740736108947047594071063492816352638259651944608444384313359902005886294130232831028479957614930257313939249420939598953356827089791738591807007313725842614996195245178081764747297297142167929382644334995374719491693154131054627151951608689368431379140691679525287723274090154920146947407651419235121856369947895707516213610202108407123117168872415399767131425976091515309359128728648467055230371500760534257354789991748046377661808828683712252092850749425340605731306806842565742519598857151015014747726548290665760494370175458811434928967399764201238081436249966814844450259869036751890992869454771171514314522442474473098857916284740421830658859667094249549488116827024709069882900708251117065031732788666991862106556259224968129957503352307582612390018295059517454820782906332060392168295852713786255491078383524762322411153769909719748787978433526823362335392014722029748875898577161111608817644162276619949670262437905418699140748084871791761400683352001532332830218596109972488948270475264171730886334067961841791066648518643165288700467841427767658418971211720426086820225848333326656369722215810479223843582143263760107997263397947140611733772002830103622588920124457827803359473606521636750665894941138997355963668966556171563042891511500477096169094495554611301744102017975801404799538536761874305927829448571084534644924581510785567045822393864476377902779289738276195596844119675200321339975602551374905038183336806133898808614252902953319088036689270129272888610596537347075340384133691627958331709503253532401058257658000954552757435682878717144796402000537623541321386310781644179784606384329451737697868299443011232479002055276582453547036423641404523981590294420690807578316111157017998202466315461130548280717608698814711450132850977446028086652072089887602180797868468796469179959883012303419334767741881055965515716047025490280358801480108998468548226205986151283256479113740465906890368552001576108835430822430955247527725249067489864727596052764139648371180925160519853159995236122697836883449387445607417353570743305351833727253650550438868311534896770470581443783487340566008651539951937696586515384288617460685499869012838481156181011377924966796520318367853732241450590248232065951388685695770659582616109542269236640910535342759047573795148824339627504726990067679110527189944017496112729400119105715712963950702137888381485344456616330321355300579029455751297672305816599228104149537735602125170965055277800244015892872211599346536752915698510073732409649910188300976464183394271605850989159326510996862361499779626521166942629950308609316080742049826629486142137797208889384494931817058397594350704184277202069993686022200480849759538380415624144090533243458295862750506668445507660683200627971646265879139033344089240433853842497677231356989792734426212337979544073836613648969839268224332211813591105892338221078579341923005195316472717521305482099652202714837305937662537081472101185396232375283489850436612344832372645027025107014921756050844928212264574209979999452819660097966387920761394471191256240408094631823015633343902687254371629966853339615003251978689631928924287500558958956778901734753615172436925226369286077669566913321386999900232125568609628377594319388446216512103098454544042468903648489599146031081677896927174194040965615949600654866422491126300217880745381400428957261007887239965796814013637920378818261194735726020098198065121213331362015147454168444653784000610452338899943925732068035442677734553638098562193282027080808556092946201601668676976506045881870330551179195513413319878369866025726188960433219285536391517993588769954005388291890198567063867895192106899772879644031001526290172401770851242829734923146969814253794806763209474476286152016592963392272572892032928223418553480635501239490319076791497682948268979398990062888878398258960235069201333155706981754900278272794581798450721825297283516978819790011109784514443430200298139466125017047733126196515887607399497569162017598178719581232904592017541157898452175749054472453771616004687296423587531326332927306302828338746434570281802612027818325938726635578039549589007877856630911233181530991745389715659133795432041874476581432122571804390701945738459664416502547876880748477141502702408577593727057007260131779357085754424304016626617671662079106241816180469816558283229857208922033694084915676713050041758595149621616402936144966988863328542986293091713112468793448869866095984586444241573123145712010902896571985563707403721317287413517703260023847147429119874473273655861124718205734619205980202050956406437371618351121510394652166096840700491987615611448585656014967942022198592457106511487409703421714580041535794490405648302497469604902963166898361552065346621969474473324379677424668975182625972508069797745800216064466042576620010549849665175737645208695671018022910458451219700676596374151026574001576544935970975699773144797383913750556983303353977521798466356322254464256617687332075946143815902079350495414930925498375828629002911079454151479536051474462351494676115732619678873988683538101868074793649607965455595055364601256795243368414209254883198322782935291232013738056904949646744456147555348957748644856227218334065068928772185289312536949009279421796047138020344674848668901314673192372717333989492994447732847109014242222765074753763028424489368766864822673618964443616829853120237660219217842731998040001883600333152958502230324770596614910464946912356177799875415956608697607933412835893183238375820448146554088086562748653175119142457394716171039598245715894855875777004255910172242117066996060369454283002165131623855027048888085913389297167286894979630912081572346703958457964076794320395901315117294629851555171000296256998754277251102602625012907360993712306512821913072385963825646825511329955808783965864652193369947223671458172381310161707209082011270916446892368779161708976428897514949403608804931053244929705815795112308871258262224718617053170919265673757197604389035144841882701824789068455621181372653397223075746130985025683263413149189564180200054286764108029713432890644402717058872164407618903256176361132992677744904251079056512458937222328958554260232634399456236010481870512466972023855670457493266721459923050720535188468515927620217956418433820671732790324887390184012041965241900652060254363822475969276677200600868589475284321017796550469169107146350722002838144633269789079870955360195999685693981635581378224753737442163612693395748261779775009441521952564581137738501412087681677166458057094243260045981280160338127413048400004975695234431792834165801458158220515248981465704866809838220014363704111187562565337566241373828327271230246481638475488595494394017971867963699950113942403334859126413059318286699317948566831256876270515781563063181920467864136259246219623390819103337895977335652275411349272043246772754040325232317382638942300476629448738384875164727659160452316140701901727880964560709694338308274495549910942222039361252902428261134136559565690246390476519391813250314040520547120036125465000455205456675608469632441185504126470887261430300537461917486202877154500467393434804032810757672712295666178011363674138135208536855561257919875422996081666879729246158477453008551475925591495623483697837988079799230437709880140299262424038020608721351557545481789519847602240089096465880719043066467695475876686045845471653346083216529084121340925281400114888949218449908068487447738274620019793903508416427498384861671480242207539153093822172719008547591438345519187499877592273249117098617985030408366828310860866751821676181427316915117480676577969053353503412668332653858754782840465856686108208151383942855755606794923166641119692732588277952514422690703220944011414704365380210949701450300269176717927815778762209257241094865780110938026875719475886281884760024815652022296297051476447927953308601881701560070329509844994135038257077049070936540836942776225247038322847687553585956876442178090642222926559553573993554061846993300167403611654996278498483180309854529503030610179419122776011059539375812156772281617341003800548959423148417998984700461240633546231187986758561843302875566244713146690305029044385913814128205347601307364901549285460962989138851607606781330655411925464079980225306296228835668529988569199877597732173451038015941921904615033792407248498800424595065601449622821410347513338515349605613620526632611682656146565113233345731975601582949002547964219563590167259986983323067910781996228831836588776066917095833558678698453729917629491648983103174687484684235504501139573298168794901830817585413823029904708618006959244216071129684858738355193400479897573382352812854156773533626362579481365403149256356580279960193171929643230833245253168285035970363765522854250758241445902415274615846562606587319475931233258806320438833772050919739981112617303933741696382569328093085440995199069161666813920773362381554748096163408843023867448297071815939732959580581259957964396184149083307010208674451410683220027592116918183058674497591512627901582043720599424254147883486556364605455057880606631827856403946038738332025191722996673105466526779646944783514478819499488484677922794579255090570814084136472427817920202653347702571204183278955836595535606767194658540199401755042177980965441201169018141567299716810807800994893029165469368365746663677659641857369057310025109181244298008116960244246848476288550628170881864881165406823034445243786388273554679632810623142914139008461437048874288209284264654458305634802867441520645627306181598644075731510424465538019196385263500098816930908088468190705779527637226308858224865402008917733489637696236624454918963253967976649805167652198658589218391976182179045336857361731228379805209648261658380609784602155279560236482959586768011657417335449635267649072991135985782638231512263370314604139409538677303866554031835262585856137270033287897609018265295029387594134149391488633208965758962971426141516885012637635382984561756188298662726830536073049467902277961666496651903651230047076921190813359276744559138031033110946198559860361125962706953579178277090994952051275716430208003715595498665174827292794008698692112497513175888598080307587161454841813130963627031361341505180557726860452247375453316423224071403809121306413729929988097550763024079233249894581844749779418059103347598090809144544254420048362591426027575752434044225994199097418062464779507102840759887252901118743273086467018040398695838204551408187945287666617179822506439658778155233093548252391058425180028166506079734810218530407338100651290987373947432778254810485854765203790311924100415409194561174605440420449456267103420928546128276892778520400096206249252939422453957353863874022653836218656039387006378615102761429455856242537892366615511900566835298997342747385252684502426585188002131454679851058100701608099345999118608074690546325181665971779505861469297372862712367307371382375606350913495497856859009722402207579267978309394698823097539993840244868040573597997669505846879846552950389730864912618789406697162101265515989547364297445845422952387193766730906966370418060613345779604269772361661342549475432432610407087807483363242757035291533436895237645693975393807449556558489999135364568805383619191832605486757378418954584518987775688568349999058078006279964289668396836815732112644034565801839373362581789829238904544399639005053595373339828754566854602971846825035939454971319034124905185563476158188875217128160791400350954699372730977311551819416357239715910813500778137145055439835400669189496625467756384977911756994802111040727404976019414909354408502570462541932445403136818161842931570713726689465114524138209910791592707715187340234290348513848801393325734494475685434424729106800094082249824739740925001162307849347796297783931302907107884441194860129682467972852327041005219152132003179189319574710497892806940314941775028270336303560836940207895689565570827046979221727296995129076832963002594532979813972276642874585435790944277054552064738731306481910952242396098524322282724165126833244738052921465289319011364756022672119004671252466065454888107454137956980366955757297626000880289290278966479527302341269696995803189514303688573460796666217459789659334738350578538747208573719256103521559582373038338566981638024866597895991457981342739433221256899172070524279161962545643222359885435805190949722359615647899194884467260281492367067364661013929154891102524248979665142803928138833097427983066798822356926760676784883086964094213911152663808073041982711541615879085423069273161641113031040658962722012096244103959731230726858486333697243828112256628622525613961027582224857651867809975238357329261171787340222683757188484247626691198498025006273378988093276919932950611427366718269804147852116409255295035768907193865263083332047491763687550000772179639869589683616765082303458508635914830214526414508429012387428712550229918833481757236375736677699277804877397757603809816033623416019347960889872157492504517740618765655136367918556363553613357952319015949831382487558975079081250905963996179321942834545914766247238272004438764347780721295538966057313205036654783488263957652947839368972986241807951908575140963390976989795623950312707406731552714062121461404467870361282343751273740751138789056902340074775186602662726925571534838607205207217709901098524348244226757668566975942808985013707378068919777409849764490024922806899630808788712276251669349157580388339049099127481240869953156110190906317002590943940559761318567841392826174290840748533513055201416653411133964638038442377661781411524468982496902331091515033279879094052448898152680226828740581651332953712076139226263634334780096860696793792456309245744795056437664310313543246139026753553250725620703093686947591243596829067900889404649410806630922701636964993806119475501816883971207314812667308538206426334327762763471605227155555938702266204127572168360766760782724264810096325397271725350772346976133776198762419967161815342071998028255016214251567534891972213783608489713335186688906406116695266830290172420346616666296181796086203197159511575179657569562630120542748249531143882152214266973916296796049520435676354826144904032380943711592225015693830590543024750363474946948858848541665508741081873151391734929973385592393628925662068982906596442015992573306855072753743047776349883662771383510519226586929673706576726076092287879840667875849412608565928459222653256097542321715497541747057179151266115321516203410323292002478563372399195893028087392466448798667792001385735474501810494004820723177396308157571819119386576624287849965701932606822064639084780562235554404473855532844693660772264551981639617165634473848404012432521368332164460002916725782742532559039238591378372726721904856341875977948727272600043955872046705573637960500727947453859251000769235843183311934290681023789551141691144579302387757164000766687041861538874605802519737171961450285357877127584247493190197577636870512943414576759124910943936933192709154680839766166239785223313341951132663114432434275424046585028803245323712980316265796683384889318593551217379982310158009861526610837388384337856874003747221618328258965749026951285366884748517962693394858571791654939841205667548832051882975613677382065138088184980342120686264492657227182189083115506849078662861647051961871908493091912718546244716318614263203896947422608440870309340812027076386636637675295678681412268460446896766487855472620856782750099342885089946595050681277573654656392193472781530211167779633384263129625781878767992733880281026194414405367210925845671217011785513424282747954640987478710367072626811846440433781502975827464727610550118308583130721476020346098804121635827388644767996559391770680293714222906983512544883931622449488790337738491350711150653410037824962933564979524169582191772824776144548604407923682713657613868582301322341138364909450045457661274058468179806612754098738682936711098018749686704730207832473164404382329478133298807821387807391991356974302381178159000362965016235088457880624601023951650609338121324786398262807346893461637060962892548382398429626890226159981175421218092948267342351559868927646595783973833936143261380457450757462783458971079613412488879715901258563858136799345104056342450398764410484742072969386007596583822483603278524710853432627304045849055579003811563309523621584660834578163364254315323968714804323784215486607633542700963784847350770740400636226629310741319204814366175222957373338846042861846636589905008008086731910278503963495968271853729922278148329540191128189469539883952455671220012092676376433213277162695680626254307252450794532758349529215030192261109481106230868947389170165106272784979758993827524334931123289634012191913107094391933786253184246607783670126170144288377745416793070592713388335072332047512736859398845346581499617065277011487144925412267985890728528994801213634338789228594340911718927709208037604514196127092833753980242345632843478279722912837810604567782366077241617628597319474113219684038489983486217870027860131808963835731627655224915530656894726913280840302070597898788587546009184184932487330918797711232125266971334054976157265949882050819765176174712399551421767490326369267903656418906570074589475882826744678550814776255716556692079587514916897035290558275136714818143907302429343735609934090023308448441538318169824936472820639398714924761426601839526748901646834069828374735064086017380570426087217832251415522611667705028707257832438225248938496580177308583484470380028668481073914720477232628615353732847682254110518738278850478684627787942047051608968877161522712463990668921382777821010284817641873988941388695873186692499717420861595711253006952775356773249438148160649528983704427770984449096410844367487261997328435244628249192834951944961492017543747712304875786880293505722906246781086532656722735421947019204026405795963805715944683991122094265956348223330550786010740370072890843092755969889349434074911282014175072688465023466704484882073516883153487671744431696316569547928209146253326143576484264557242254720114163877964589976256888374663239281396981897168946754549973829088110236961616428737120800550518653142214479137865513741280157889310209060577795836240330019158217125495251448342308371007361947639038173346426270139959008971934676593630252085205254262108616580671791285636616788805127371609466986039864628184589326236693166586366166825313648713306454029758934556381270504480753492989084518169589662325836182261508828529726358839976766044564693345997844350291943846091211045081784297922367720624001753293197781283226671159211786912985807149771007606016174954660770391882613449793586204068361197603630504440253606288166958716783514399587462542069525285486827061507328388927876185777760842900391095957286913040197992015535746024612907988216877595464796613503815721390778476220421303965240649354950229705252799091049641017638763459321611655987867756579353794429204659953308683807048785156816987623362121594797555791804394023431825397199926380782591297329870433040578045101599173491247530662239308568712220696889313628668040204325538760596157087723802507944186600489104390881141151798183754753889983685528558422230683141242144444134721630550224586362448100080871474687017394658597304836712745956098911231992991718378086556961040652626629957888996559788866497916476415691536798209276387937436357962866631394273807419907203893766000559152694202404391650233899045339879921256958916169058631352878707821013317905026578189935633272243813890166216794622058832586102432049148665061422746706229918292455195714614540442944624420999147331098727749918281487591296604120621964163872293847844825976838987222243195428777949220204244880828420261208783830775222190265208816744308099784534507467668266100089055094155661085870209591593823699834256643583147254976300923323549294208082780133642740981496426526139601549109190429729511612575268874763410376954951444785833667626983332207776418364863856626348543883901972754365715082170463028136268548761459929391646669010094358152197511450451873242917003608815149302152649207698704856468989541146499276036104262886929396229090612354128549620817646411772656300932502250465995698709496566746500758457039469435867570420925861989733694396310409262615121615942592513301687245971441314802362422003688596635117234825946467235196237198520902552671699360336048513079256422316689797859970996536551377146577090403887523899110204713322117246271123494327477040575660612215740024824297135975220677843324559970517182724140140243674643596521687645585639101698114788896621406586074013805946332753785234680388589986054256931380990335367572871644825630705076408748127476122320889391369629945438989198639507934468221622522707099809950160325293852764000227063123822682791620967133470786310598667568439576536025823671044298180960462867643122850561658088097353797178927629218206596209158058925605311794692976338301194324903011427641915347869405694135867413141098166180785532947036452492972529394157333100324179248827352744358043360375454618557521219785370988046479119278649672009356611483501661501111123327670099415918564569203626169364429127635729628042771866750676509912428071186781696912784455450322891910771803116106925519161008489175886153509665144931370967862026188684177763293141434332631200111157506337518516615572195663381856955629509866522416018723043050851845500342917803059517330193796028985070419296743381498525707965958670025619027204807078751329918277969380720693873149260712998701269908229481804200799077367152805821207840921698549264901766547140603806393932721754761520162951500725155386718569497359675828735390044140347772361812170928668230968087370327040944618047004661966980931743675012052582301722367624890422547283910186521667824689392524161058358444665433370137691355939612507813086855780067708627145576152857446282779200979709460457791849086218602833384802862040062325100737146396477662394352173028514980405787595573191391886301464338572687032217792579516200318117216129060525581602141238110778584830720824105130396826682820673688577996777647338591351200559695166050637990419267577092947993467424221977434265496107389341309019500367587099847390427451877798914280679581027768945653811192356271110090960852145445272797745044234322260550654267088946680412773535392566170398183253344249140251892909315222744404252196741023803339809399017711338092071693357321763954352357110133625939619156098228714257173757761348040715806897297004720108595349689524701274099909227791442386720361376465700264933939423590666751287938859840862886598869906940254281343549461304793163282893423813266015456717017092049822674942118990617036846742509503047105252858047055715206528089992434667695126598488676313933824440211067838421850914419401728623838533125667985203037598975638784805604332709563909763911508514239545588127011298036171032134700420096231264072999156281227523475411642114529057201294351976176486076268258514438871724785722951849650438353339750231570324867836787234717563916323177762605360757110000772456521155693124273625031708489514729351025207036459601679743475274222008486429805982331158147731193728414095682924416305670214644100356376944582683028469294093002189871352327097693810572092213243697665488341352123956857242922395393184781285997601098654657866670680860613472307148118189014355612534945894199381941049972345125807351131290762053153252318378709456794746497943162134812947313664252688614570908194057184140272345419002658869623582807921627994193867976885625963151456645514860899074478922104245533872484811302851347128204525927582748836380399910876949547313984684051284760446709011302189752596029948069571482354518905215462209034365015827740210545518586882201736595450289754964642910416683251606419984632356358923763987334078859319016283129002668105059509579738697226374110372935891827574243305831986006409146525519973838185193154784393969411975959325374290170331479059520433172874403855926827681483304417220026836698949354896489648777288135009801564510315265414778808134332689635837992612626262518899073642852949083761028859751582208144438634921833966608986533902026084257871186876738867257364836418207929429475911876425446448604963130282069519908885890453964640950121122243596409303193336660755313396563206167207567219672056311716028489045802865280972592240992892775874810774663420694635815341731502422612227910475579370393108862608435271666951581202922739612948771413436124698628441399472518861229576612712617364261260005839583972009891402905608255834169799931357448695481221580621537423419435334399240905109527420013089218466125360845797049662887337404614143751777867102046304853655639706398357332501295449909850977906439399409020155744159649528854999150002001197818695786312028742638780985199507219804617928404471095469974245088410283043794323902551312468102064282354535274364452520991631997454555352322777350235991334935230349782946986757629100572012699600562352570543543392066700891881825667972204376482438229167832043309402360852685089260912825561233683703101585935059402602412154468913394491856035815300932262083122323110781870723799198584722422429791082220847271940709893848728776406573455605068491439367608850038523743087992618555080368954494432135677371603107058886728816739955564963519314562026454491603653562374304218766478579251853639106138975736117803982558583142355186262361883146439648217413400878699494261866984750850048029341268103335486377766024587261851167513818338072973285685888107628250662952498433939695740258357043839550483819185175102271452926158908555470590679778538511057465864759150403007095034601448958664703940405352139170888394030426702825992111549915772266699466237608405469005993516985582296683740388849582554856287670523335572714733080202242149282356828725551799693368163635337783253722541126992169197677086231049222994592896263952160995410676852645908456516898163928218062377996825775662800361826322162006305495603200286623249559326328749378078477371663039854179790136163608423853622372404768523001328769728596070630442746927345089349312712510874458777395687081882085046062428822192053799886953333960635404809394515080695763878428965819925151821604527861287119415552365114427298441629708273745506563518988653853465984130462882511529165471927760309268819842050566384029570429367696174942095773727796402332015654266421828386690446666833159832370340937283939332004631281034293828364353864199610387151909572640409626846139304786366931825635857969966178636579706816716630535080074637970524529689187877104915472511587480905321106271607493363715886256356972750348497390408914272007630673159533796715179936227331521941682356457168223290707371110060236591410428170555481611478171564703721048902667103366385589377099642013959252853965619677621887793554062329491359406105013144769205292946235449109656376154841040914924278867372371108005379042895599424138392194834923866078205527928709563314325967021206820248668198843806724382966976344533180839456256487109607069707425881262743199774788469107273082733320003409541991793934669310649384786906471448181852235857935457993222729477031176206088155630314323173212822679188183797776125239811124613734538485534532657365452736970516782649438056144318285849105514409322203132535901276330760653144704351256426486354775450830467408763380842821922023089388930111367458939174741813690444433153498011188640628018634544986398214150523039922476105366158296561596144212432024533929295141500752090170459116721881781839811049247843733371266632945026734962094125707270282517884149696118163270622978894218133248012680584071158546269363936068537825760637173279768815775448427212092806342043106617930762698452932515419265683570241870380656373820526953623104632718536046236684415446740870570004165063167580085863799794232070880212014641890819842308508747802567734767131290461206146288855586132731408029300059844106487716834784822965826981212438150172515577039456588607415035221269819141540595974979117903604694266840363762747883702437810785449421480272533410781301951631215522666648861639680986290950355528346352117601231848256026801483809206185747548985566972910526179612043408040488183855852487528125514653366692820842631947534900707365675486475550749583348393006375376198008856166968335663388031938300007719778949192469642655212347015102911694599084204400925841956696163993471291756922356342904637686439039623398360994848077775974767818794992237298928928741264421291766493719214937321545358591969886126755290817971928308685190440492705752017743691237621690894805277918122282364010316595001358467425635089686979648140553585467979880068452532328215252050577484006579086878989671785955166427190639183957231299760398895292353458250640776935889136264894338642277156243062819289459639404930171938229364772908193746254084686552163686216478087338703711970375578506892192126844807197172388155208261063428864532259823248798731565126507757937636861271159446433754265195994452823088185857886641415042402692365627706606420365985529266625740857277179601631638826890572136779446923259202624788915711671825812667371879058987108173787179504366099968576918590130638854181155512883862979906602474488596540491456694219314490613718606825936943314897315099582001601766511918775175003960695376236682448269118329082570637565971127855281598330158516872647717787454452055793738149088754031435635623504890948524402300357861393110739935144822087091416092397978876173943351706763692639412268845884961035470181681279164152998468719119947436184534140399412828839483928767167490378590226368170998320436164709203914533315442159236115567346639566809734377970486898063078306414529069237104791616217269668467130782337005119036490555129823182436820315853934724282667277005475781898151271897280572873775934910610803754705428798812019887711589822901788793593918801112742484559437717418239663532955248275729865597974934723473410152340451245813657306166285135823429581126783758854626563919674243923667360600229972276992554666094136389290427502615825838829614174785540652708361578119712867919786403093519000651960598881703110024099474640126317646226056119406772101963987477714720449969256550533154923176899325140587309924721433982058887781616151471417495715980221999239850826327108547856740758600350836720986622975164146416629467863713848933174031364213615356705333632586569198167381955102625930415162396931326778716109014811789288181706256560544097839277837396588765061080517898813760634215936588412726218482733945278496271635252792875501625382684867233977203053225432178002228885424737231591185726179083160415580181862137825378984992085244637219230127624674777065603749862142520693197033414705258356206884137989845971938775205879548515585872087089164910301654853115690461844669854060390638567678054561028807233348328021257679974918971480512724432876709662534377399951449047160843655134245529507890624769452792280221281862308420201947034448665598874444619713328028940273021139880526963576772449456155553379077405272539180860407390751646579892294266977649252685748174673551772481940237108690058784447242103002611977054204031695721920056852469987097838725862364412538310952137443604776429741670023757959559835676331533568096608911664739202790433346371857769124000602518204819269341934605194736259139026351390710069610160392885999738901536781694717799098697363472308916638049420026156715416029202650713139722616036337775904909997798312572371788123412775961344074166956602791273009617227931113320344679012173919727888126095329790951196645355974540792275170712637326023783852639941836429639517532869302341973513816080753982554516749576162955770281601844175787619446504384153113650951395029035585362553758130302026935375751337883158973425974897875467741144756505209534292409929077473089445125391630633124008549192740537251817711550861754575056963360772101227573993966369282272686831827883057114707432276067330164788101846646885648814539255090996064538593081578098482736776554276564451431671610716928710095977466129468175801830548421097381393363188727950544608324339763305783152170581263229138576578924364948677228331615319761448301892137575591063291131956507308181727635019588267409194916554475457128846357391042837910538522937904511031578416270685834174249241974926313746397174986869477737031176915525740543280078811049620963869911451269849714556320005300108264699908534536420998454988320610460128109126201258830355293256684824907443812193006990865764919074771504673749380839258842692201775689833085688061099413095164327488218325520519266052996364955948907728651247411464524058152960304565711220936046087133743243824728147012496973588529107170349197444087534339028841579642178754115131227092146011126461846651866643314575406917848607734034997832576153280004172573331416627009972720836563427165680539266208390307282557538112682128463924713130241210977228679043147843004513642072729895996108402993562517639587573465843573572638598822487259721749606779943235836748042330032069857569098743687097357853843947425622539859724728307028167754906150596702458501637455624923568710008530587048043168283155596401481410448347777070325810597020835532423604727183089863533823854459986465988931407392809414665241473635294485812789488029686234045527641698753909408298602171899422981766472419363817733725229979062808706987492245715326479785622162888822607818681717095361524815016502446288495066766705688834001731854171716073041667004122768002847584940923396106032739026209567828678522660263586758254549845869508900559574311384049020760858551538152915517091620095141741220682017173890646955842345505084662353802901458236608141634636064198173016626582803889792835657404659182056853701720912868349738054814879079142472197309279705579588999201572273427427751211340489316384870581359807857854936368063753206693882688277925974444140371486013747999777813938283315061333568958856632127285405109743354386594210364819294624836625298771247760932127739935938191305612888076782277111349726354661401958883460531633908416849665124077774671295649668034979708279621187838503770085511217169051626222210892551297897904365872491989277368357974307926773082746356410791818218708018427671076980292533242951361477603265057670054703251815019587810705524286874906977422929706490688165564393070174486574636808897496737983748138983150776266752972121710472290115410674606275116464681877970390839701829368036655174914268415302340320686916433679632877309767978829482559212417575798809155497892289178558890404455275134427130229767735158590659454792521612200510450063006654530945783967332723430051864091648105231713236748188156872645605497321493371413292060582470343855252258817973037719976622475978599938173895000711594247419320161116530783318006899192393136668210951799745842739982455933807342489261351916407686849496964400137098332338191492476113227841990655438690809393062172259400374200117420795869775473260499966216650135530962233243508650785831502042876663950786693693674688896032420560339831634371930628969975796863317038494958949995648076183723978956589418393868008645944129369155994063962466839284764475474416160662974384089885713681780394255867916317140821832148883816512460874184493847142463994978054872692204754578062466671268432786894516883864703069422563489591239774227249942609534199877635418615047949481479297827018506522576244159084793797415426951601498562003359562971671139365672691150116669004733627552812020751593363231030862212034548777762157641750523384900674139129777292195278295691751874528330434481503518653880326678556261997861703341067804507516445479380738427580184859355189554306610126386837523241128158835954617820977000568068394400222701997054337782970369777309027139732550980239771476567932077046642079454914329652798644452953675062074743121762412770826094164110514046840110309896626772440855236664511040897581175208115518017988942704757773298454001694038754456470594066535774948766973200436699068674505095369143865292313930355374562142280494904770818508810308658552079016102424082218985388630912815604195355990310206033457473844388423874070137112384284930990752805411258408099203596602419252594217858006663441008611747552009721496141725787774372642716879751783337206396473377245521417828139133849608528552415489187886625148563738894680198770649374084078162213474209575996437023537955748600922784984233758671489707179247627991971483259727021705615204863325008723559045856395008894794521579914107147393298871110797350366127742529812344514787156770882811125769107896307001922215680376349556385515569399793136735307269716515904602045800670328177385641885577095093784713494184249222704492531918552904400984086715437149044916987108509474816235251934960016345757312212768573491520015234973865803360084209548422448989527142039101185743313483744824685894748873921925512280544370804108342983795615689459288240103997113149019887528486290052209334425663157806697428554580292513951029697225783162334657927891930456527978234228317411467604089790047732126276042872215064169585123858576529837210702726556790034880208882502690899538427535289610372343507928125322036902034763456888448842023100752566866370941069821095249218093373250209904780384746601188028825628304852753146708027997585330889096201799128014943560194998062774545743586860558341981003352861821163809592240782464007417703638225398284665621412013028310617589052867287743554148683299970793998941804756141354668093334982916211439252037805172588249327299201284648214020387987436212268746408413459514424228625081658668771198871856579259313726617206186112149565715167931656000851558326265956576011836388077168564187490345754783932583213200127431534471568839751056522552428277002871421542847341591106590406535204229291348606307357090830485636802960189873446661374529259606530593497831102850257144763077845103360921015666465999392615911828527859275203786262673491117052096399529827337094653096024620903182566634616532675065223549981626082936250023889218305308578016511754079293972415077294734424221258059778126026317516529968631807209563321078680977204495736612674930288632653948105266251173224540024101632435941151539033450149580336585207452257065976466343771995568681353177487882650753015944451530404964272503220908146624481781898878860314691926349642629952183839230235048853480292269356979067746478103836097052472946987684133410941972625138693980386624959803282452506237068332916345253055528588401464352009796645374006042591674265563755480318198424740351310567206954004454787007028653807468402142893058532307791849738272518623221577368123467310676714706936229211103780970410674831973115386293746932730401583211306006220047400987340668477579470760866038471914786494791203379226004007366727073674502079131183261543344109815579236768772439494946287411914225163701428948481929058510263630162865136038894630919237709182014240586946668517322969149807933142240864629635433246432616719236724831818390991263990924303737532406369532902038186082352133962626675771520747444662717047702738752578291434061472994645030182574412070231342423390404860492418885285712307828400060779782384220566361089511427118416743276819202386115581810529192192569360385832480228049043237303426973856414233615629002971602380631740418048320790407328991011015771586055043542961399223257423655207093050969119818132210702984121055640117539820211066428547829331105697361213732428999157544177328266170490382721833585443121423017436034109755419757679500416108241910743966861768902301968240539762756938610220351604049889979871392778242271050713444784701343127315939046478344470699641357958432181722474253785425079199095977306098980985011495961575038811932124568333333516938967271202511675932348475167501559016198241121931575159456093624766340581071798598174281789723774812888214076885762611028299144382314355914255736612009914260987115746394250256349778232156564991390627760100605616650284936076344719460135698099399066576296518104338301471552764899072416198297949122297531994445360656938035255357023762190226490437758899493446433436034298520498631793423924126477328289243032200084973814350075728615253283566741983504349584371483447964880380194467820184994336735600806396396006810576070195189760411578915202630204979751378845546860687328140124437222731123829695327300285496934967341637311707624644905762935735079102286776849540475500081323553129199705890994425974911401660476829651320546666437708788243633620187950814469009645134904833966004809963386837569349182065880405270046142902429442840666743678972523523464146067902581358200760512776730497874211347205565659385323968661076620611634857550112421654259922836674165658190583938049485762841900983901837704436241379554619128457724300912759437167979368931743634407468140260909795594398834583818343435851035758361079048051907777987628105034476208696956926543149473029487592207678679749498327486272032993209133705703572724279362462766926654989077926313350303861394127571484788774183409772034996103569190613121105793433379574865268749246743060491455609611515478413004697625445038670109670611822589555635498204398488269309340073813953111369816835788883032279916977868752608666509258088955188950255498432720934644640564595503141508807716258401768498265206073692329675297217631087839119560486984147696779172419256657466464899077485112229940922097654971109461151878208329534014646300506916440174479302249446431954939413408920288015015422598466428210905594294840638114241129615334254627774439440875315216049584153506349462129956252814014774034698708968222002788790717578608686144790802202480255517801485059089390489932051754993730132705611963533524075302769828356310361038355967031905567456742338719931447528885959300159634055505586032417658657624153353352683908809860704894965513866678644066643311556570067117969397336274996989557041297386123685787658449948298933748578981454351292726636571450331435404820211086639234997665590295452719605386265868851061785950233021134461583934029046552049820773274337709414063948148927697960168590461484855833652052105995437975205162244673044488714535916791662038577985806059117000653718416739580140521950175566262820592376383218118696663499089643416591918534147150538651307644329734569694416308818327081206184294749883179334052401972265327708742480517428039343305880309781351945965960570312254124003702167210373643336431011931952044512025449499611120923188225054053731095812081868945219556125543295373577210869032913269062739187223507158912937680658863507289470592919175289480124662987384958975036513046202369572215633715046315227438707395146058739311056116091634416269180752198988611726732961502669692965802576263933991997966215321283821827962400902749463393346017279506543810488045486005973568257232108044971417251714580658913992430969324874739979272370210466427322882354184130727755576435599729317550238785888367237841071832107452724279241527579749207943012217072550981168444404028022118820737766982140733647853657731119519134290542844364448962110354822444491187699027899605100991857114799068448508151777816271100879969592273430331911122119838511303114568826264661986827483029446829505315351425839160623285738084088439788810625358042624628781082944720435596498387355953158757833648266396691790448909842998257571590652890445102538577877188844857724914108613931886642924031495209399897743015549052772698063551136125114690951114660417618176966092416393336962851184807646102820935974770188589303640447358726974136946525165735629867785611828344970766931642947955963129688297891509451194739613992628931255308788249704304363712931085759521155953368438927066178371747081527758267549284046464423387078353318471066618021372440049107607569013062035532364120133681153975680340700345217522793709574012876994314980788397269215985266669284359519521568598796632609141092084650443884681742316860323719229274856702501782441902959140309281867316641875085109295999672293443279843637231916250210712377908770755659153146877076823575702468846419246196697552927227347459269099418348083295575048061718286010318183782526875164912217226674218222475956203804169720448053770593982327699774337283926387117834411267967727265926386871475504229120850250087388757884856190906456494315761432645196793624166864922152569876312090695807884813730725495645524865461608690135828052253036442338019195642928852944300874532692964563480989750396414355467315310762797184217127923010343063017295878332565362251841659572132116863286724543738352541468971510545384992486128983808296173441738560257958314029539873387216620276257234241853221720253376420755367025853728401313045739406388701022197595348505915722579739912714889999224511443204697025888153755871473738478399259773707095780518472640488772940272477080007187658803721729727217739863342255818194607732150002663292435824631640529538614643728249022217479014365880112620297106511019007238807462582748632597400893882101884865566807635830506894793087236841029989068187126298613089045630923991054475817711297933383905562197180849903142302064144378188614494866305549260830934990166695978212985142545684273974341274394305262388976156097720086815345954135800980162517113670324046277638856025959040703949069239288989101512310235226503156132049510250262496234525992293243944814458796373572116199002665145497024499163636327388163077094944274616749936489136407245309889082505177681177824762390412327144223029210682690380996710824847059571670034960997847626316367379593119259502308116213051292180401416920457421908562796136769877680612022669963438304992953892184552432664659500609520254844511664105223284000099445051177451030337626295034471875409582762766227867719498971295969196663407839707865283588807735899894684587242606275243412348062327878251386642213505414841056322697004985701744094315838240860872747199876575314153578557614316102229730297117645822709221812001452484248106618152572329656390848380045353962713930524632540434607055338825192135000496035742311202902037276137844073444363693950421355269482556054252500197926054741069391168220809747919802873394323535486953016220700832714243241661128365606116639768850631946278662880830111334099266296319880294871260349679072422061108556225865220471043263747962845500972247885637525143317926971110132905196194956164146823799436117143053594442237254498570086963623128460147791069912870430705043417709581706504818460498152210393811017014882886058057458449052096259765041083184968022469412763061549124058721131194069640408746640586278619018335467834858758362368245740547382569980613880062179008523808966804884377966271824754346743676959926110196496908945763206229539242472655430297136628196977139522553477206166252032824047589570549075411274515669998195832096273141090401611159775991044819882968872243555012072854356518888334177548358910679766475639954665278514733080472011005876048300128109336718527318611821072380085910562500980679591225350993198190137498457247444462230746013700810492547350728767628221330449512759214286321284138046272677412850104243398543792477970866403145241479929933135727912400346083099759938694331274684808207534454616967033832961031980676721997191892371604030258501661946124055166511818485390700924106726821137494711317041118564133445046859907025466174438818005818878831845775800252490911046615506420366083633697499654376959051946278930043733321242455503928747564892127916509939179087111340157822975410929405494131117160223106268147023320796873626882216468299290239305179983196090319265850614858333723053249924977209182129678627424588979813432378914138150055600446300041526212340092001876924251866760015604657315981420682424001523095040730451737663336354081875513884673086619380502449413763854801470223351460520441108646418201152822670150441647221684646174997383313246947275565221626692102758715709091065144731994220586017383571473808502703178433809685064396527552787626908189734997653406170026610714570972138887490917138867132825480396837767472849242619236936254049831046089941630108645461600522549267948066830963331225029434298070576158981030054059244217852737891449442446573392070228537368822014899252977106028582030586248816844731504371265854699777966028633510409998625025493567920813106787142138900401754948926444901814195698262973018926163570331016166595661827828681049860464402919975346120897214930266899638576730428100327068552644921964539372017671570801185941266873198836136279878541817198780906958823093541613143486715121230504661529326202024883116410697869264363940240495305220279386673476031334287309619296969132424666562717159346707309963736274394363270610351850241926372699000395727857201947696186002531982113382498255171819088633034122226239176454772817996219304343586410460243759620625393911310071557504860094641824922757905396016743283148720358689947340517047645973804431590515735686420890167839224725366580563937958997617269349072499833000436709038269562089136600496877781975559456643435858794248985044587449850334835759056440275449974499086621986260335713130003504713871358013795988301547758860788066070234617168649027574904074194193617839245841556335045876620381190902293094240600130393010211096445710661231911317017875529628435491521728805096949421951643704065796096840639986664992365447712969733701331446559725024031455344775528490726590185325977261105654228645345454366515210069392381046838988607780532211848281186960660368897424336063578609389487997911482231446801956714464817592091156359382994226818420628051749651742620264382718741119292266459136306608583081263159331406622656303638695572424778092933896943494883392936931203925815919250627839130549179908966363215054168282098926795271548368387068449783048361200736288884588462250615779745551154036802759749724805659313934942030340091992125558766234913345556814663432464804096731488158366928896716236064183667839237372931909735834395671797087902216133420878137388837091987033239060926097777280520230229479483064875370378248472126075819628341777205143638686791497415127748527408739651167498848363356822186479977658323395951953840087261192136768897886033681070763660671781012428109192157713555823509599739171705183767166710191455279283623096175633024437061551694728581502142127447466693420352212905329628709013611977774094020119164802129858191370972970191516899640579044510784168868815640260022248426330893268667348139198083346019535478138346961400163609403526689424038846624830174166564846277661398994729379305800622375307474016207632023731766105645272224873346478398444900003387851301066442985156698184666207521276018210405025405143868892230384867939556494029238348367652621124018428874336557816210919879878221459575766229720983162214948048396571798790201178068119692329766960117773414594138460501140777240896055051190382785146954627155792380280753419592326194448958963459600110092356512884675407628367557783881404010158565581040636186576759212944842438188775077143530872368520789002811799894889394005855717614611568750689000887568730081934647157668147488202921390671147154653715442673950276843231982108914188846325734053835331564887003678193769192419585350094848891259769798286609751483712493580606394033680588523603713818032609033845248814921006862971709027762899904250335117360452131559871208046596218077875579998512704691705216819991494435480811107754658784375636059930535944711896173882311177615019959394910207689902903613092963885203217910924798865900524613422425895912491383289909071660606423734105470808878430623619184340718843484608666361599986326831886699341370003090914130297645789520815387898163956814919386522335423550078743813354657334582682435529306572292194710108463578159325235119060678916554449159480008784769922818232946520284820674417336897164211980597990968314449905532326025395610157007033763623803297543706307942675449035701586723574341123228484626126681437081764882937413675193164839138867763111012896295951953687224313224213914314894113742716069401525853128017562657155039197651647065469792764128664948583225143683082900328180024574848032757822244200306844089944670318623124687611324817926739130202914151188901700350885945585418607584311465535295144433633129245802450518252212690410527378864039143989596955256683950668709745425327264337970005790397403596679851184529032425329383276282616817586052511183776766587827446786635492326279421656332518558455614977718628122427325494198882918980523602585385561427919252889318640229040137943653456466558151411152117692299896924848344045932769968348143238644739297476449616081311392381647065239164637290216872817085705994877128801138723878502139834325294611411472820485421376089598867404270623994154389828110916064919772604956077773995931691292569497547022430288633960213892730289840353373760119573604094840443093200534559787942823727300407096459594488445279202358341688314219191237492780354409630208987868925832855702596993616538927137396537876925579166703984241729052853697216318330730489363821496296377116575613124188018747020730144449693302431832512011948683654168159314025397600429235717151986791584702920104281947013315056368666154946465393132845274424575624495553487732133341998340256135420626438011403635834820519273880625730012159877265181257740515106134168410692397291318756348985467130294177053150315593740861427399786474477593701515003745087732924922799574104250276102571725274016399382967544718365735169763008656538532323874665676161180295257320433484216961925004774181400653755612354296776341853745632575734779331392836426479204130839096867774620544289425742557531883913212490075231842553129117532390154635792781256101534740791166629195879963024213265422809006514130900039714415895211759829534978542617612244087779750580092496746939897491122054441589720397639381118230043356967503316465735654466036871065553498372539106188345174760505631476567820990389426835404504833713728993050134187375260784487719947864981464705347806936459436817098856244512745074287487859798696407454204512217616702113175682374604218374652222774452765588880621693517561337725463990308847619010763724351757815557795769825417364015944480238176416150391206421421929999559357900030253452567690817189195645797965845458649261553954712794278956746657324969610763551643742328182262408248891943872374269322965904212538936101619271300571715594791356254762217782201268755022769086478570643195890752783487823688967016070904813118723759749481415746059697073889434152816285244586114939618442827056433851305688115985344195178080353902185266209127176337828838032662259035390283512741815747731820002051455273447358831483210137708909817233387476150225987052713330522057763952990222161253268831000392261783516759786706182468341971730782774087301207149553387324282673334752821341288905189507805711255937853195367169748941132037316121463840814606688784789811110790717603478750299959015880666094411950990006053859563716980446144637333490928897185074767119754200615442932186479353052439177254455835278987661502812316748535757666668110855059161132994722730576107000953797256453729774586459654749974920142460868617073595696676279290889665299965323224708629639351096449538461836410847017670889272730527549034267810452252058164792189012910639016482430931087484198194504773799247214291801294824693182175339343289307387400947886666551427976842199611475275805594474788652774261691767018560016252718478276790779315313551781098279153285155939336264843322451041104659179529067535353017106763397925610109816958738439187423333909110370868881638719394126409470231383864017336337073147327161529406293575688757132425577209819609194622779519820962382200679394227668678165425713593437936957902078790520127338702867374067047592165795404473118971147772171339948626109474888190600427512903393053042399752074963027232905819776343965139197289535734561821866807804295189876821344452905868005006642624683683819164566005144938179570313266382769141564182004401933432399836989555479662851256781223395560739896276283170340097760757895752179988371532592090501006775428010663570966872920155053234047731563668230151769961492669413144321716712964515776648224715561596281858420534754104493791866290935863321809575012192480074803332767260475292935218311834178963681285365380718231050573606847617631501030483725326267742402628964283828717247422239107791824263849322789286110630030381820598791415151411952220229559713400727813317472470274295500183147678129021275971050618208286467027467254325336134101356979408487737011624800856191915389572106425205232132162129812083936958452695605843076897740825171729713218271446116291481862197931098809258021147240933442829483118158631214396247659468801463792765092635614912317557374641506339515863996494112388258551756172861711756921557697432530524577823753644934773184345347384769475816122161201787699410240247445582573710592441090595307143609201808364321535226886492888099989402951570736984868888211333117062687025686887796704101309179041220433143791715065931029977760250572164012690982239553889893426635353956430018749073061576548461904805318713552516949978010701647191743041308829018695249730575548735476006518145820179663932770026193922362385877830731495397453818370267969303477470233050911428424271358630827041987207302034743344495451536572934247798491822220113122217867375902993919114292198773859001625306593288214742067824268909780182892304407076493900077290382385615746491630728587983193105326950878979590108306220852864896441566734817082355913027962824977344656020750767404857545251583816587973574019160663727330940846248482915983977025575647615841010371981375414807793230233977461832341126518105049508215808794828743932881223176625600570339220754003294354239991637915547621109210472185897138178302033534438544210395828818010289889627095831140918886281290709167619207784323681991118114372019057299934030009334603264202671689652755002190253724906236774962306592180497365216978469619820484332013670220963878948848207280451757363221023021309098047624340024574157123234948534054033076977132332507109692877644794038750095754770354870318402408238467511969449671942656969396149663102348529424473813171264616488234227779340797796031406187616345015166122348114289600266427673694509063834212346785717656854879683400742429715542020785853871843658180088722191119114145300824972580914777910720885413451449041666416253847239219126570655099235029932449619992986267144850847913449380232098675804944624169116886952463495706821617956359063255054447384567855318412383058345051053130587907368411162199811399532310160107504026085473636265515103110596516285192419129009782720162618220927520292541140317915446270058981657145630195100573931192837058205191034108601210337097888195867863035582409084446309641032819809538687802360555444220494296158225045016897121815608580137917887177734718525666225328195157460174306135807579360591029804391673310721123830213944048289526334914807161747909015489439377106577180791166378151039063249984755342261689990444012935752258117374201867382436059088125850114563818881373203267435916676354054578716506303973739054245312546082976716486071639259853242420310688739751103653565876670920021792593545484409049615449416792233830511441340207991281137188831010121305677708994972539549814618357441967243525171710905439211515933777188404248739665529299785058879400448534042397431367623351830659076896925662787500874952354560135702499337326175604297989970111729649310664640461765991476034149276530073013834052015850596150534350191250278567929744071092257822405166085375110426186580861828999488751779499295091278711073309728334181596592681753674948992292371881909103133629142760774004171961604911823066252356085610140850232817059728739766791098050436865026791181207128237683741637254887945121507059588877386970356171193838363175269348050890138365528426311114464186253368563131616569008089970632754763159600593809214206898038261762153887084473115715195155286496691337448383455672130973169204053882057967935966973064381719011510125698966744027102309268927808982820000201415762079434312062772962752064100057107447299923469097906713059057954223827066501505524235528564503885894228021158259418546055417119159173105746623681638692914117460929651600155094725142813595271276854069767228619086448815521597363815902442397962462541642862854318532815359215997630970510617316941452435473894560086473360779096576162971201933626487376785993092359504646082963350901986169619596514561655519936972645276099231609045929737915964427745315184834226883455867686186106239918931810374047281159628785551614412178939051716267910040315353105450212047686766062945299667248024911168660269626083098076725562106014149100912963240753755371314455986641066766589299229221106787265089487154265206047572681674721456427395797409386416296901769095624295550247235665740868209197126086258380486678637121276871293572223756231288390543633162280572184555082363799438437941810895342964211364149175809960033320390363578905942575196122925359254143359467295493601839629341881405445288157498096361171561109027374216893795262330332413383875067539759022274953135562734637486003767544269219445395831822173041841328847493564033751183169974549948830413079711830510013284067729029637954475000348908847735114672279549788498837315192319296087893271740702327244073116855591713451562579374548360773080465658864656015363787088548312751716907372077267311670612871204951248691507765310762738903384432281291038321692326917289745349266711936807441287486828846717190067225173577788130141738398417385081772515823755544278045380636112986299584986884399274338296078567593856186076459321636012856531785081824265124827466950945727914321067206409875627306147296649334314408967918505325561171718761641954664992399140122253877691931468518998151395019463014942811075496708465288125231141662392760407262943682844648031182673583785337899454634686977717244552012497264311457577768556218877252040563123865227381480592653562418522037313786680838751222943285390968093730798736888619083278844657041614686846186759715585226735051725094930054880089294891065931373435338843434152651289428962503557852712384310612364395777590809509591689275119833307350238401355899433291532472746622199984679336042207368430557114301728606061919361946400459324845418273590196288644044140603631014742217653304626912750338104708228650761857314419170844297886463635864720045399437354484437028550356123888192047988346077200940591419758585684799317495907541007196429625517247628468783391853972597114344956530912817402793113490574508740946717816487274041691159268538309892291031935560886503552907539739632637500264555404824357858218431603665390505116589118053042392487995036011381280157664330871345493116276111550268206980734134171130850452609326262121032767539981848309210312885352064791084288485452573745864338463697627626280515509780019795997764355921067547648158683683901221526028410423411172014489638296920056924675215900141346139143079659000205412266665631688358581007431345508651083566775986096643357780714010057137622923111754989938691381337196216976857882454776819131823392624422667494882742157429903280263616797959290766132159722966354086809074003211503251771938178595414477806736338154727895679090151331775746817499466461615325168995554547015791061824710789882197151051089271819150333894166558950659239775047531881963428970536120073763663408842354837313160107382689728772352013098558852221236887890032288728680245138739812400859042617720023467325541185383758869789889819405058376049278858991409183828977357399342242306731662414705871949811135077605468493393169829421897332133509634436370406280402562431170622435376080279162129332489892727551807270491958882951244011085018048520565599676474598301006160907912014044129124464909901626900501268127992706730034127958156910263385829834198794313966616456031660512508647839167688628039437726063969036759705993955772132191953146755047586318535584850672638139198841459502521748505997801365942578393422188493218280874934247007472566847747651353230126146717653040184817639085561706372457611287949749010333896557814994957235907272911400099118709348461644714316182377424510954428506137066843659897076964131872334127310370826551286194536278830801980546931270801904299481367830046190723823146172000009273782315266381555018342628389681125551765614194276118813017466650302432366068405183310066044097028441148631360518218885922213374607480011617285173423680726947140611280103371247566762304327045803408795626127365069379273663488946201262173602562507115795110751713178963540893239417457722598801666518617683492525435434196502144598118498816520682476645543519165551414156451823877814573852780067460524161346994774530117731103966180309192910984000332248383512468280795964322039408422981070339553104181356214710689404934898789030717505170009772175817905989105078923568091860347315882664313318566811854967229557761146951128019794698392299027573675172264322353248954832125234809840709500134913931996926363134271378252580001683029440667128118544977451570448762156894201919710822718775579717854358616479899164794547085728545558433032069349868340954169366672318379040303100322709302393369455710357942968343060086897623403239118622831666804448507886438376631828593865861253368820385175596714370363509936032430557517658625185518442630806729722305537968820264068051074364024765703975453318016806934162808405556355157981545016981650663085844203801003702412808483632210099932468562553133055174333553757603211690260841161262950530165068366478751850529638229723878204074443784148524489715249669573087737607537125813435946381529852265482327224337155512202835091792521366272529432122640682144760272053490310897515507322517024438900534930795670249891503749436857606141265518470400963748649384432233343376640959740744663950139231622724991009920214177266172993880702374383843539256095577441815637149303085307899198706110116061994890558441337131459765593877146465034801609623028574743740268122345413369558405760214706765120880741862090232975829253385351315880420556893814007410411503771371064132351281485237866943331736762080239181169513542118240053954740767847178806709687774948979993181266551279910322838325141844486770624544312124233435172879483506840909132995057068888958433290987578923442475715197353207718302066777001103352599557089347232032002854334921077586291082655917084248975324589105846349269762447945647137558442159324607258664530485197858658179641169598297679262749987519080566716215505791263258119141548749470616021342816969910779451408135721210574675276709152426802948929412503771647446655483741867387241288882587838057207041634703091367086784343547366765685808616024640451992883690955755435025026269222699467285349570634748743636590369499213990356428958870258098097888821997406611818133294692180936974749355758417699610372528094142756488656358633759190413233338916357289028448777005854156785837667637126059041449543901063621822910118947675942787885183100784191694233335565041437859684891621547189633663167336124822306763812964020208486874872914457338852212147601167274376809685892475029414620552075413637302823277185096532009683354110892335529800154134543005682971058199709389518578875667238355709541515199882871959593958845118828033901051998376830294430462814903323278517594169602664462929878261195079101212366319866796199951072923004054398259311160623384107781009256197342550407359771839246461184698483981642908074670635490303279721071413090512199477352070244321637403145417584935468756276479941259533362641802918627655263863828581904842094823915616313892938107802020945213483806060941634438656245511099317674655492417826997529119473243728581428026660446843120732794754347309003361202617847669081078587493929884661291205241215852161842361429911688011337394754134578604099477058031499400810387691421115357895484944326816831319227609787935172430818601236705986949015884678138176991148760126058287726490071577944740966704521551771560678414687540200037253170112863475655559254759496697471968767331046579568959258145894990968643929477432059258832842511440333703033516625267366575193339125855580753395154957077513284995066148947760835228761729516337946792580609640424077399767416429499780341447627539116825042557941341682678772882385319285450893733254585359974399033887735027298824255646812740694588842275845271962413464552650840742026514680955591964741383578150212723146788616822638658166330369782381752210479996602115679676526824211458076975182676222601714753916500674770536294683699019263264871419069442816013214471060793484636171236545893919422242530100814323676103985910971447093950763693967668940820927780987923765358065315202416354792399139700672313039005259365295564232763899975456347630686722274603408243335662003204884454950676117972021104993966980930296624839017641109860476185315332183327697717322636711706757488306961176148431789576067724915396453234933673267405277399919440956438101840091830872897231246777488268748585332587650051188926098411981153483491363701040548438789011079352520055960489486185439742875839643087332795553100862377385333881673796859154952558465020606234002372936911116667569532040584169558698000887138522219772918877460489027119068488611152988257899856633456770869173002606627022325759084788546033587218743750525866341635734132267161546023413869175456652127177517120192162029303779789398026851982197807480328779577457007303513433311034840849217255967225961347635234390228998783052753802478362507382116098372670678766613251014319379669712468481287521773026383106683686319054555760620954838809736741445338477746320772981843058592843104552253042640362473386950570258848357324783354084165760150067101821942621288728838551322185360203558105201066356759829095940804005952218667576948192674392659679839869792519511371050110886557985730737927472141840981567773444050969885067354828827706167933954687457767228225091995387070958488880841442359558864350591863272948663879347769049271163141835623060012777252709362800296438942327318198332886831194533246767859150096587300314041562243913869293387834319060544779041597486658106373547382390111239948489963687709616230879537687500827939041393628112102638650511318997707992598391662230553638841076001839050156878301787655252810588028853240499180884606296755861425669101391042784207253172486789577589096248779120519308149173064544168345395701737290846371431490508143129324299896560853152877429819993978843358590952878284462477092842019750517048031156980444818419210533136004270969949217523750693347725036458649462954129974830037605024521083701693773377972076053598147549935549692814651339673222794903815009367697962728092753421045248381946169516793298713628682860652603696316521627937055502814837526699996980912544702554593079037547751310055957667365048399060211215411528181831269494675055776492602179792981390125103758404253615054269509611160252820756914767562122924055018874726940069381765074008493174243791878801852501777703602488022186526277430739401117397800315680279788501286004218761904809466577558390911087012690907483218050144268279035337222026384499268146180157994602758692437068133061464781065223106387335242461563948409259285787354841817776359611400517719214982244419988770943116553264009672260837205576709530893223516916599041372685279372447849588292513813598229755798209053422080969999090993768220045863558376337638558649322492749793575259250016141056103942858570415075546573512803248322561351505835682404117663163217117234528277566914361100488618735567189553743881711340879593469598728718668285861446863086172378485937752362942548218821442469321011095994305941148602683904526059736801379627466692957314855481698740286026730425381735176783733232703866374969984542927668338068336737053835821604450941626098067134456830980323897731653987921178997860049891211348219250071980096778257082333893841585566215836446731101164661163653732679243910079603980558804788553223440020083971263547652886913305980240516541527940700433429046267432037994258088052590591563453444494347132337165213685547571852964722447990404065799840761492222875790423441590735249552586020000671302501935923462090508484718974351414367191717811965525491150548231996287852812569790985107951946406649701275481821225479316844146931254012859855358567717214999591491102329292389536636602780146887427203712004380750238628833705139208047257589076438049610018564163720507207080078338750891705490546594427507203361610998315679682213369679252569644061367972750133970731173919902360430242807384258085713856344231820410918799604226419568271334968558269637194263367407967885321904740339910962739005652023717185620808298692075518433808511907264884023285969745631396573348650742505987129298375277642556600451395408023536012065370382962170943376158937016645007926956957331374125465896153474226842072969033197025831540467200958803488382257399973359191295119274089727246233317415600197869444827089234176527975326932057352625408313145192183968124471854180061732916020763725568712686944311945143291943282836492764808750342268152777900916318753508206316252572845507986850927581291740054667714009663927430438201641304646063838722765021216867920969630996174366455023091580170369163749310772311798553703208241537491160664621769895556268450301554967314096976782292012349109190899711334520470256990016519597126502196951085357035563781315995941538911437275753967401167252142944753479026545066146101057532010977188247085934081942093913332754553861738696551904728700753688357607622097164079328285005740252508902262954963478197672232644102318151488245852174811462790097253268381784917074600672404048066541581796290268202709463141805838416870892798499642158488316595733202071960644051336453437145399288549399030247872246260061808809491385779361579754703333206830735186654732206150498456449880041577204421061220795611884324353433604378438847830441353547675106789430505407870127423395832933435028800954961125630994498350635926330368533979018359393059276204374030130223130663616148912947213034948470782254891999575015027940727304250846710614587262179787617484867381118217504998973829295479238421832577932670473909421737593249108373513568667979692728695384142742873000688636891064005843457595978855799514116102809335787273064483198157375259994455635405662010983448222570041588952403052085077492968028801789965838793745064447471597384982593147073959946164432883293889939159900279116799777082371648161324624000374679844697824380469867283647205347256303938193862706099513202788034546151088131606429530086714268546898695705286868492899028155444422849565904531892800769348045953704759759754587923939486641096697654907396611457411567412586877780055631152833782385377555214526420722954598592489804544041642765310374868449036937199409071060724629404782308899784147988619565903380618566506237676498766603903315073743968642115863677300047073756367268287105396492564543661281001175554946282988656279053324057528950766128649855104566472380574788434692189215989093824554885975905269608521230863032873609484690331769454806549812944740085313629812815321297384001502093599136554686482468086010445291169490297764770969751070273615578825637698100799843638087576635745015903298957541749870802087241080427871033421690633291258989084941973756723408171647544424043040911993211361177391210326881961672611677350790362069843563177161779732252790827431131830499673262327120038153261936919217474212774558132733232104576665175954569118461596662184860084708278274760322429384299376837894060240968062301191543271531238481021848868640479202423620424057627881584578762038621239178404799933148940301262160844182800767875848198827172967798666179398303899068658960739537637317770577442994711687458668858205604549491886537565015285578833906702924391915041320283282302631744078607817728863478650169022905720573372962808336991592423619046633596039954458354670147131975866652145113133519820116242856036144121249341367217363543229657273933564030922186847234538875043903864733212960175309379344765858132005506803115972407262841084233524654713993608436064600614559962127870037044614231059748834257085702478861902500425507630291312828394570939758813582485794281779684197395412935802313059689190782339600654809363178892439451405301609945098369408313676858389042630390035291126934898287059237736638281558776902215514746158414758033330468783849602662826829524764867473626433924277196194799080095527066700699103235733640819041296952372368489737634873049467595027464971426412330354642571662717562975827714528219691429100373972176118883848513186401302643073574708599806168534959554331266474315228583246949425704371881622538752135628482891667989760906290540191630467466320591948057261999913786607108145703245621185082312995966193511403987480779299015774651039826573353746605892344552069148194436039440659214169091279656805373668098252251831237456684797871169596954158337978919482044345631068213015098830306763008207524677934500063322672665177604631466342760496333885904740299951291840495513132167081687987288067880213896164741919558478364541653181289442302707990423204709617226029426732504397500086362345044180087420801211745969308167556814709808882483599761617130370958259358469156900107443504907358360881995911041426481614799183545736749838919378639458486291015648472947100435822905165218294080010308456387222655967995067899506477696608188432723122557012156371176737231778070340647129401790258469920076540445538129960566180425862754375507796190301233920388132019211066867046109441514451146947712251424171682064318876011099759654803915749390780839099383166862425144092226000565829026936982401690137432379228794315515781098756959491012871775897227010745763405628864250200512197829930246162242731304174437174428397119011151696200832154025174578404947943396301426443439726184971623364243750095092387552962890830664673526769333766874419918835471645998425056905321292020349264148042601699685933617240270980983692589313632735919396545094899598821755235051441403205554885485735639359847254622635809541438629314966082511911873513419595534668014256427925519244845354973258799305410632803965388354020965742437861275015254921294756659840296034210925099662260045207388951943150423215188848432628406608828296500684179467261603856875056753218881111115373029293186287247152295106869509934940264631782853126071810763974412928456849909291817116759572680760562899286347642227955789583546682991024894975255161973841187038006975139225989391847950023737228796034604507862524865557991032093408670824506331383031811000262734264943196242315351408015293846315790635160223747376990295639565250800466982482843672496713985005254102314093520498371480264861470811857149674584731434297751698415414995107604044296610087009539556915919719629400562637334384778564034815588723335335066358198451598548662854872432934615581488826625041847541270475529796315299703467661579682687294501223123727292366453954631840184377484000411824072581499272884636093482504618612818118740041002953564915025155538888744049866027564945080688285388854955171114548524064136536949864606379665206183141530240571845157354453253183033202835135069360441509055615646950162741964297756437373212304332677827781048209182008919374837388926592332654509010339523630005076442176121226703242744042865512022893534172512812521429151390343465555025154953868965811600830839239413750139888451842130341441188328931749105251436070596494122415439521574362311016126139056159857242457866900179860206465839237523186601724242755776669186683265733902311930120443234458606332201881569493030612587579183184300286500574461817051927876044974264413653934530778477300482282486590999016629425219217665661349720438521449902726945438074375682115692208212361013470579394020799722571926909837810239192052300493428503988054299960951030352253798077031977800283991387549474702821576698205996642347676217052018464736249629658000904757338088281629351911573779740929858603812847365682363831157612752116622066501098930067675832756170655520719288693243166527391383464441197589536599675013447992346023270917828177798487721759082600000367033954102439749027317606565989501540135347497177059960775678303123050346908186753138536740643414260244699520845896949282064635732880366480243313600010563288740599433832653077544360996030113471529960532449858559089568343579454177341028146807477566663562271388553681471188186293298758518036491900790135324404814467010891481857394221883941014124126289680289729133303398185520993070403668025146478135696456131560543299426622609010681782485951232254361830800561346762855633890482730487536484487544961995530746851527306900715369498017276739695166988523282530274095291504297500474265217477802566678285939884142221056392361736977643773598762756730927994110474306723355935195790790400357189141704502436717925704652788502342840038317275337482575328487101542439100666272665405633667147801407599152956459266693163947975042997509987421249061802246130936355251546635043002575765676208474958513774120196933053212136275863307328244492840229612799834560831279782810793224919735591128680129072451227496377429018676780065921571409459296555936258891221329259929479863649425020424012204073999945802193462282146146664081683219131768715654649766646424840566207739902508174127918036555886978054504854464730268256193513449078472594215141680565064568953270902588426562349490176909298426556873271270400235647474957943814155556163921267417620528872655097117699240625264298105947928943884960864975029199560916619315339966463300282033956441924974571354125154854075165685582230673872306719324002273054244012884855681190654274031313784718881280358875555458434232609696430404881797146660198567102483642196040380911472975025803700919619924267699093462053702442298903574038695007077442707177935843183145643752186321728835456944710330037934870667426359112479394763734071591681533054657716726217481328017026500209522360776553798169928526963225753014157935945424806796901810509762802547675053212738826256225603173632315482460394410976226123336717975258898290365027838087295295174890714133950994382716474017259155098964111660562607277754806604764605757584711540958228585381840662403936126460476772250214945299594135315634294063372347407686959225514136514698030955617531865630429950967687111292274155282696114748487900719092401116396348070845367805750634283297301136219742819260378667435312381496467241602604126485725138086184835133145272471021108564874566980069173719069082183152467111109654867506751851300916428851117859806237940751591390068349488518677053907266621590902698189370800853840303946738733149315767178443759688350688889483458697181519471568727913525147650081122068211487130979074812379447177306694109137050811628509186887360867693360919087333318428222845264612037361999880873208679339104795320197238885259696335691146820315309641657035716175429503504017155168295584536626326315537218921094763726477791347774262742360894581173547334183491620551576482906048627864239237050845337951394613853300380539843146691637544201786453704060260608694695932949969684562039719114766447722685724577831105158551804602493604425747030735166507143980748440969663831190377705069755412839665839760370816588201497542276017362885011559431349980820856540708306020278919222230793919619283597105122718353453499410270245228250471422848941306659957590805494556798637645447560233370393450067055952492989564276038249761333282663828698725480012284976529053795244205971874445726379372118549418314697311547835414519578951058889724993163374802550358492660351375959859655943685040508702983612589697599174906723801667419186868512692996680213276140943012890594409987350074612627926604280229185532399628076796040558560507701605394660117128190985076710917546603055545201074970819589599519833914558491339043330009040516571246039755612746276195968864598928953945723708440551722770531578153137370261692923035758934109867392903930761257638061759782717495987816885752756859396389560419737489099620222448290013477222806965760007298045947103628853935429529269687307714968697652091542189102400746518819643482124660152314121527277151325452393195694955447942673845224044078096169605231665575306134728174013087220090079301215449522522582081125133314298327229179674691523951686198343881470434004878774122260030378486210085032873180320195380369340176509878388190324704969013581844802232378194662331008060018710043703211525539559694085492446954970662019624911363497991787883035365283193686705265058609749219826635173421879461698928891390297616476929973291853450408112491895073164934684723010147240313841212331949904558731995848584853324931467615227930925242322709783581966331553910870009624484765924010186105339625148229164362165638179196088432359046761634005295896382738060539159762218377619321250191870940060838232853756643623813495440118355358684409138410881236392052976533186898771419116540444970798440178391304276672669661665678488015067194568102200057225977351971147081652873628208202913418860753557342530293205009224721747963646415051203370919381549872034550412567602635978686081545427646105333084355275244758610951978842209427398707871817224442790166115150718119404375748497323695080104836758636251298444723244931643498668063217036789895849654154592280939620660663102863336974900156519994491738575613775020924743615870018844022990343577387201063047775049506153448142785087244901663839701921758351050630936238388291716066103424115895943968167849594822209971565632354287320004255239461534086818387140040212574359791343861375939344562069492434349793206434928704842049909797747023761984175727973892190299338029205049282852974275436079746138313021438213632632838040498191527132056783433989442224807038505950058425299792054052519268543944546026473872267473789475455522309092792344336449159254129906932132105440108985085116282969804090249575500495304386737224479284302309920500437925649773580614697337336082829035738665236252723416838605674371787155476356224157655279031988850862167213433280105803104036047138223382508383380894751871610065126649572643046762145514946461132585884952836613772410314975302824092236188295842524379636208594461734876675562202926531708524710761196654752107291496627813105252463568193448526021588136498821113562042371137029949658792243730634781805577716573550078779413544285726933086607032669880269298103752450143452884193866789731555404577436343086954369965974079892978888142844599370119757479671752076326671353032564252410994744828005525045198264809968984511223604405507831797393876987392291991286241706080217313952058112645951816113720127885780252324803473557849838919761181453606538781980195445951810075608594001235505170212372639501273165030656304618323506266887750845582968468287669561235484239293542038344561702646164704890082539688856823034107653076037431727109156663787776571412976424096637989604209215544475240395117299022902748203788729410107579515613699664050445977645599686534296974807801784157030498294456120866641578569963985072930712951886722071766021088527549693330958355668469804051958429613915484971864148510923321899072279988649005148785608259295641884306575218770871403484719831318049778309454584927520791592556827926569400975415158738635576378906404286299516049792717802211748879599986324112623223790074980513308792853052948433903526842983611637588730513059797446659338804506183002747337867824853753749040528443655500454656906347322525589177457573737292688673202002686960767425256309138828987986872025955121664983189363101516905019410776590031170734362315293672509200748401575049942702182963758383861232805069387720714812596851863225055062503666766491025155562331506516064615811132520144162447822622747806955653125314794309656202022366818991111750772608293387230875026220954590738138857317488472291952610315434454643874576659456822938565502538647745101769249634567893184706046277308382095769051729714103509600963199451272835447303633885598064737370497893750648217493061420542681238542328032541200789295066986860665852198287655667445239790140570316783080840555220391877554381706541924791188605741224269012898196022528654369361570416627062441257724089481254157514643533612713894109467580243405400326904880125453340759148745537459375571976798991685094434338497460518909668414720904384415002615960313306299803863393562847541163559480290202193424832568518060443972749417558909230914260676237757119715780496302334108105469314808002175227435108704483491382949986266028296102013470573474591096028362043286022845956933704203650597396556394979873626343944887282079381352566583126491375670906745562479751356919092435486408913937833201135180747281017876636348535887080723730914309458304195218438280662915750975299933705521258686281039387107200787888323739043573055933602737427902975523988428148137354288412991078134166909315427566594167731380320768584770466898362098522033064986526603645263374569936219879880122816886679564997177815023926690710514118273985513751522222783779255397974666448224439255247737842598630778305143026157891163550136111968649416763169270440180476926383028822865624232676978135176859063297785820202693050585814102215205446708787036933952963590940204574166660651620234938038016256639255776409564733298760266973662825310971310772863406390911917959557068180663971988652591497570042217479800947603086155995325239626980044934727448156114715562450080831060094829951029147491615566302234585882462230731357762223991297690522825174959721073810446654013254322735423412857429672945765972633582291441716326194470959274785079853830917739794977454858765574982085103222593906803128941294049539246114593780715343195191021682515153381241966141338175922156290446840865887697039113606767257872085639528810446060046678210924057839989880461790610487893296410199241782685491770483580201733886691314386135594597094787850004734545950796100526650423805894901845578294558596044020783374542886769731615706673824241049884188475816331274140876132853312836131085988848512080636177903476619252339655824332384379950059956422264546773541459932981402562008107235185874396041392775482113151300211361366005063418423445805641567262413618867846673245243053008990568297578637694120310346514456819341631216858623168284630492823375198033425131552738228217297729728575879633379086159869512838246467071555455752262300341875369878134894375168126548835248149489159431999479763417004657914144357331155679093357258267778000750207700032165479765379679471782923050532674199448181670579237628481572317094804798076662255047371468417537962801525814110028207324539768630273908632792239706897102338357890902969150944742855820515464433735149965090807821333573283990239645914626951368332215748127701211733277278727899222566930412570468912769905322169321311079628757249402427966571195438543587595458318050578255521733455461143053774964594110507148040361532137340344468007896104725965515596778143304461290432725582997263808813047490889457669963496947004612193428322520731449914027159525928862045376711791192012570840483152071821436238896330226856962234277777231037966091856817355005154275682514235300763638349080717367705654628452437570935707628354607053395094889713447558088095977141760437091581009184985973462598201952608453723199378640033628733860868053834406101892456988161791082074838568662522079904619212760105234011983415956737094616521031653903361074365767863861663280593848825493920054405987845398867475610858016263474960375309808519585119403247170132562676397509307239083480680884259851898791146933974818313037087124259096110534919904472039244336346117268625725818106466928813275505697816629728256914124811937026382015828043884662284983710003768418724237623546415264433458481234625898476709086140346678738298936233626488208988691298426850695571183251026611944820514387593835691132877743659020144501877446425369453668389366830549607510287999832205855495756783201521379187920464172034156384815864672362058755764789732318899221092234384998977491326244833775534759624613178393394475833924374344807204749745362899942454057597147166961550938210030331995966764802276613624339571569020235290689617761251864579486041800725632473147715889787212192964570495999065360741339268303098273700674919309460856548869448619143983979554911009321934305586008740101121442671278626803776835216396913350526694201516292549283090076494093011049661182206450311022328883837557495643372931903450769326554537072446634593096710585564970682639550221149141597118290159099769993983529141379492421291328653242078723510333338765339971768816505350481197775559515672155347545574797631724114420791817040634322643112239380143531190429730461067848305981361186807001796058108532057403560753831594847867482858704716592601428434690407952212776968864988579890720228701735992949348763208147910791769482845765893914255397659269719541283031012240597266443101041651636196587572282158899871296082154989963306304017198061927087191043101084432798183752644016949189656871737945773357026507681879345410375484286599012901523233576140346523927255510930803474644669643293636991009301480182448853800773165228352176831553814586401640182703153758100747694983348160425922753849164114943579847938281670930046511114114285323372250375241223458255355577053711396863962121814359002704622958813798568530767470856031181361826332856701237057695367518710192932202285269739729958976727630142126824298635188473975951219253026555959001145859082765815651400249910651626973502452760380620031932966807567410581219012332692468241467039005447424244126934626043185752324948887766643080464668768702402774808689421392103649913687137749704499749466291124858784354699294044658027870666625855777870691237559185997031259383738928249387332299295108977121266903982200325145058539224596135199189398141678879406851323778286805865521058635933626367774102495722713909438218090935152525496093398234748693763296071807821396953896302877362686199912337715958988756205429693151795104285327998010665840082520422988945478439313299755273466534584958632259131919599290857067986965967602418862653383177667641305245699759983112240516213385826055324451747284852668093177930143046570118116965023552560564179551807308867729986062619174591349163320443824386895248741400681384454358337690859606346222096986395837121170108246680841048947945724836145865940814573083349392495999875171526805027487258647494444229361444722758059181649516669114488824578120179163348978608213834731501736679916491368452529367919941237382097682510828360227490796816077707490475199271018498962995057417582699814757102010147385988565837180503160620150433828455427498414761604365118679070638298502975494623930022139039823197830123065191928395953452041379217685298502098190952644735199551575041442456411856734510675000171299799007174394987090703829193720397131113383904292332957264471300296338667193360542136295699038218649350682446765634692931423977725100951934240241066354579756891703867766285404193202682104213044943480890698713460836609225073940543882638448526369911258768687228368268997058476460280916507150689841305968835561020931160347326401236012095046487651644157377322850329250388725916242589270378965193302906461992733939901172090070270470457020717213748176504790261794611312931081474456371696395661246298588903505553231026395964137886103393148735463273076662460149775778310240221665504430955406811898987285690547070920235361335418258221832606038951721016992169666243549268072802681539762692865707225409913345752647536642472365798909018234403702243577759640466341477461540914396024214632244065685749789444553944505191752679267212323627943532482889625038544454062781537723321735031863273937068852225282908654777120779102181958898848561199680464100835211869721522908498683111232862642874378274211080232119273149551839283048452120699295694701448026727857993008700383894676694566283410519425344984326851371936037894292046060324744595506002610678089788117351943181324576200155442022633931465087508292686686877300084977435190966324376452974461000344850674555764176163856112667528107725064456621035036332507455605494538432169628803009100174470830673508531984349855173978896104079645578547292964934882362270776605052976519873021239165190844802630468865209211909551973152926475959445560052185085667991452698943106866859788720788993142638397202124063741370117668764585064950229419804253576534600004239204205535506832076207944175981802529400164264207776052057956684358561255618038086312380589649206264749656518983734594317118924111363957184625090591248965682446674066619245171118077992711373019958506997159631021544988268395443918844236054306504304632253488145895892161347334278022809747925731247220886377934428738202218836090990119846401877253920853221595192115151050961059264114288944839495644041215655709398452606253027989846712795601754121524101214662806343540086023922016262202153745091995334650705085814419715578221307595058440688195093363465675685498308766842266040111788821872923622345720391435437534988700525653740433241403085749140880478921626005007076108685983263825391580842105162120497417188834181723154827995611771312179268390442889788468497160865805839982250927947239729508424318339330979244737991118935596386842173717324327682621578218676090322993002669025559432071060450308045655058139255161860983656098110622498500902786434575321316338805394207614287893071400966953361860573310283366221491154457740207397366304630774998942397804042831310592310137979365405092304292846027207418020926417657472212477432900839495083775102488845431224536320933669458339902491301956202110391976282789086809067395303641636663169379170278423462827153308039102864031302635881573112598365618173231809328242423074149734443015168339920632552236738987165519106459774801816150573549563997071765035431968578438869543288877373402578250415005456080635675494301803935045676709453990403710789508764972238629493285146313192330745839584819672425630609085967025468684002672429957643069710344949149148233576032722569011186181140063501985032937567565665252654570653972900480223883954175724207344011689868917838081938181636438559643340603796308300313864734712194716261594838198080400640276472068107281870999901415752234151293190286591358832026480769477736223435177343333250040121421862555258917896496160303337493037323123130665352536821697855586080325318167680159701894825641239371189325300014715960915101459068479462592547991170823597805983193843960282530259815680821184494324187742973368589535364978553768673572656216666625789534732197271324240365319988720969824574918971880731195417522085076373448879378999449342527617335551799256961032331313568793754387964163534904928923374325934925807235930059360228333657687911117295489303216508608906736464450057927476099806885895201478814109888731495599270127643922202005221634334140463333700709849769188552210096425857134390110713493958613099001810183589782849331614758525389709903561994524782983494819927834117733229778476613135949514853550004672886520348456944183476050992448890746517207101081303578918237553815187920925551920853410579794140765372391579672669648439359822347365132111257467915568065939377485497020232039980730031033919868920439006039453982462895493922193632166650995589172355160465195766127096346942093410237277229448029550302348809387066114069490773988405899864625973154492335925426036941830961667729387854874244023074239797075918873393659686716370422397918163637368443991847222930577592731807993844229127393432369571181765265170937964117037648249505980295511537752661061968981497060568429484771726872505767040093016628989690387465389181855792205116782287756990277926360390954664696341242232978700926546213694244170421130355528150329453273426823129170929921203932446135391187993321122862247279166871166969578944812915533144138900949357948089969899596273879535913678736298007196192985793612719808046459500518737104018479851905656114805844636030988986617272458857352496251919566633930522882778321054872429797667335926002976170120417280722497128578899724251412314792538467295570449498263017521100228645490415496057651651249590173070659672787622625193138925830253663377170673854917548746243359650910270498530413577643452125603498493590145519113962774631217286567885169844467964069344752583395216283349965486345445939671477366635827086765208144365193468604401071707727411232393640586553096972164620868010232250268301696300444085350038772216457899380490155788047956551332834927825387661675854407210641277914143849365190333101538123810905668905926750047285482919289851224325236409668890261360734768491415087004833798095288199675976937211556504122604016599171540359738771317238312294628453375614046497753330736539579748013246510784872933245593800774343647333076020954486603199485487673632133880824293548899506545043103488362066736606785934330320481338693219521001395027015608891148142152060807098334945725356391989889318448190165130567312950049667852444220783599126190571409718534220702266442179324348211787742276246970997743650416152775694355604000301547630524790074148962312766193087183517101322790069615304036511884117813431236721555046896002605011593506250489002435861478399904855782446726969007765884704475880909061515073560380293671749286431881385498982185474644999542614165626093523910406551571572512987864894498836463996005715769265318414271154131501694486584013334917488140181741125025780586495321006864693763798159053824504696970633784949549971162626280799724620159793527390722680710435214159954429908953660540517765204191418582628323033908697043566601110719495184528446532070841992255938651146367376468522435537741827313005395528899060635473214377306982545038082624043015316511910842601854930787035039641348532981135755795967599028919972033890135228813395455117719185891443038756339100146686214926890787284648305671131244203758031768493241089818325047233795504745952100766115871687357306109065872321844972957010493234397057232850785035581918039057719893061924316439355802370537993203051312107314056615417905546512035502146396230046788932778394508726233080235267318385801647317790809806762051911632653525015123218603209025205471344878160848044538566135775176580822311358605560851874098893872262801426138128159924699420037225977875035963027683129171300461983507646710616142332921710495473392861613006044328630605805782961537703941687131703195586284846556189396676841007343216832902168198148875581659248851509068127576486384739730309616726329472201970585856916000886685898341358027658058459167978028255393148470815816126282417997375058443048626108109561594927246553004878736307661538201284440803126932982236676648333214690334259581152605108926743540600448476590666360995632352302046505684524110960238865898557298530856471269383827262252817880712721502577675030077681798355118129272252832000346316156995940116997927208358729698200453487487779528019455137947952483030203171824853911668111429591150165749972317739562452194300643583970535648531408459734392729233083109045469243084785909994708145752611678735471500790862152855612715375072521108533472437674955527365261459449369368639056963693279261716042908721452817962750095434225078812735283345454912269783431756125757060869986599602383100040937810995972415543675869429024099459505506579966514734837100456243401224179207680937618521759530565542249594961114512098693877654618048548344230075681465092086226894002664043278336535978430712419712305694635703027394027461346071640471934896054638095548226932924209739239727011113168039059455337433324180077141590247726369356349975713835968030969007145577781883240343246132635768498118217769063848177575683696696857427913559385725439278849386684223374364770321100832403394209420174375149078306878391712738710238002313697004012536962886928709689741829637453650528510492193117802724580254212281358602448129043363259751857770115593303888681630029786186155848364670509714912459524166908545090782531302761681734020813684114392548092203649159195723276198008123792959474078114166268090854079130288308850461537024726616082668300665280042902808156250137935031093987562326050072811608256592324073727449651760574121715962410065350851071980407656789732318704973923189833299093565471255963636908951099652169536673535851802135057287696481824486261250208829741458397027225706377793608530246562339586579502420309871331927221710506824875969770168878307139259554924924191188423670744002235174498936904061809297691744492392564705276899891576139953240668178272858934676909571583462418043895995477244135833699958410354103239956744669711759938093941895099860888993611280518397502594430373785202594831877595049973621110663426652064522712867098887776140387931206796422511276379730528817884285986751733254945962568658574289842442944504927126697078425731315063163526793331029308346697383290311976590783568022166947501477103685987066601701651461961146940472966757904528808068818246894182084558602223550546665563052920224700473631987066708696288845246072826598018231035468773122868963462757674794636005813290948526280470524226932655671351027176537521294679475413416038406046719017527303167692890810167570921903717235301635292836542704308898914339642799021415399455552275673093779784641432836883137386066051882080905167846096737183959414075993250499157249727828745406736711922693445423699660684704145742756361125803106870345218627508421143951989208791506640119061361477276681322292568382078851217887410344179363668433887116337693520124596146366781817045475729722094105034289711157353507241417785622609793809964704818757250992883934118294173379665693585265758944047261722844473610704878517437173166017906559299618708558944149883891855056834956566873996388409023162260751218019841204620654438362713107273702888206970056247840662382108585237156015272581456650026178111205648182980028333001143889292056919333587524303364274608796107439279427920638387503507485041764630276201752337901749724853574400093260380508890787493803440619945367332150074441247405990612038924261314343186543762867876633140667716814804039340158944020515717619101607852876445271389921702996163508508382338262776417412163119927045007103821729191228685387803674605111437440316738738425826684731447279309451332211747205599850570179014145051736387689269036937548683639439097943165320376082180375332544733930219489863888234774653154227211080707159184166157706983819306738885201073689757308033918954962309906880069746707103042315938474374404952306762615131192701366484181303405097117517319042042220013666206691650987825151440786261835763251184607359674645153418106797718823376725881056256015525976547237779371274498030833654009542842367395693279531268870077828856965170137938014083922715806958236548753972880836708652769594691809442524428516641893177369945623865152867770180779954665053508327506494391756958305822221557853396155687890606407621678093328990748313930672163453518699625351571739251156905612389762059019535769259968075819709348857260839372952570458889874843713998141564388350087041133894808106006391389198937212931366063568081947456112299037326854905180034065269804133895559192300617713760836475420253755774701317858332262136987774321709223131271147351928920781602916162408949936633017859413358695167275448810362812842942288538417374738215534605536078743582950390470569411200888091670958233528555079018754647536478006707504521351105218333165476952043932696358215461461502713838458462085376077440333559029247194136764492876035171638048267448849434201219142371154887217410805314197814709786923788119775566028243068379384936999231134141902143262207401713155717345022195333125551251114435435901121720502930139026588866097992020089662009607685497690830045438498124726841413941699892210029555824542484017652824360622976270888925874502384246038931959492648248375856247089715951975941472131844519873640991359968021143306280602744953706160886887644716619843187924821925143248026213927129214305320754371520888832595929309685765126392872229444671889413749404535441932526234570245406084845574503189002829725645951709300029636351763411446094834907088935443389581192515033269138865975083721773567918355504495883811758085024179117074041171489893789634489059690347772754086967018369580759987934575634897249048881052380223788516516202879453833774155043203300623361857721370588737151321288597225908568328237518516672904554455451602075761354444053813630188704238388942607701326895336626862328262998631048574655771094445870284546744867724093646962046041795011568204226939085282482368087399674082342947135533843621975685781897084762486332523079866862148116426598004358443054371274617536127375173062832464135289052896712946999797861786100189215269404555047704322583543608365197347991671414365391213863500998271478952003161255325136984548683435716619132689082153678717545360535132921770505027592632843764860109089673265072979178266192871319803991047995239836451653590527779613247810127854888498071743653527928703544724018927093382106498963496350782001292450230299282562523957940130310547139654386660799493001106725766482244616682609158862081518811348238992642196071560894525658614935121496318580593638587069746710811278486847412738979680432782171808535047355677538565635684496818237595211302814048053350587679439148541258923130511255215439123685354570444123907693963679559509702903666665064359187672080605069298781387978638578159273387717871868818514377697035598129729920914250072643275226555020317557785094822192056958839630516099718002722561364760303238763332805217577051732197316321244416842792821383444172207495696638699210367317182883239559370508073701217134819061193344633922582536084882755603133939520174201627469481460416941675042562835008031566322524044218864348111513447655290544970320483698148552226522476722096431692748211939816175084320692360131582609362308730581389507811898793469246305252302469052651818062539322340240051962870659591377950218473362123733562637405501781458411757754059141610673494402669145821341037768949922102163891757660799779146216995577812753696425843601214377709736681834051553024204997229413514738450050149024058116612708545532304646316678248032858971039935519689709565232518778483068606369246194307635879525343779495829548724565488871928121946175486597668155814412928537672834815743814667759406363532425269318635813328522693609671120607081663900265956315088671708761338955342019593887535829266302606780662975258131957850087110936824029686608581288516058034795275879485961945395734075874831999394461787801538091934932941685909204115519083883978668799713444423259312789157418420503656556093214678468941735797684354126141995652587108784075502930588860407800886779792778164382466184900805101093306329092155667106838844045833632826116824422700564809459450087811619717704175643502598698211310327184949553504947154222472095815547612146279775147589951770917740460457961019615955088922926976931858259049511020240633775570396119259956442167428302930726444362802582744583689452305390146825561396157200057433378944775595642427874363029704589984197866338782805064240233114453705500181346880351177641009012418244499862480979526146901212261952384882006982217934662133611259578531296494737592518319660583497079008753227747408784976724773521333703196870951454017042734643090488577489555178293351119784145061694191359340672737742360058616613629719010742336808144305559641247270019788570094716156236508092884687850831219590413404693024136224378926099971299770459040455014533959140849458149955245874130961350047356902502099614247852627647232409489344142755375935692066673005361357902763259117717359701705787932616518570575542919518957887481120460799547322161463548483655263532879234437195168952396697297375623497113329471442529384336523860130814764940975995983734379470958132937252334849849681417931561061942846126105826214103103595485827212176307557913996813484197510208272340422823512929045184685903633048081239946062350935714840459617298532278287046421427195338666347870227912668221427372595923983902915164301540689519276156846713362128324973161124091048526261808040082638465226529831062667216065936688331381848249134098308509649186788440506526696807605002079015671253642087645487840342176046767216935020447052039853368928699808388341428426444878129499676772193361917600380016291000210558145949433972921123125931601500778266483350650773902295811566242841663122027861390260110134877093929526408896589237760104368014227780222389328517305497193410884574450769796547589693310542557790968308647731108881025976125383295540362003310931206898854722197215900804554391479881971145852973141312746647852639642919339557077700472781430754664697682985726898033003102072575868611720621486382807241644547316062137329340444749958897413671330089157757441625533010226546176533426362910475382023261538291542578144923743295459230357139526347269090655970215022104155357979225348991920591458996645261582046097692489161324983881968696749761114646937955540493760775685363518110636633690695033775149118346453057827478858469618652375801012859409691562161088150165277261540350920642160550500979118157244326476481615220191293330076090949060067683643454906105501548202700690303959681060124631185795558466246247671401786533465867504120987729408899895807493250248615604468666633669853189557739915449005839725982486768179201891752245887665624943424825237866104655270758517943518046131806347861487455135690882794860490467546413026359693433869071354185497775454984512584040234254495709102736033184220827441240521226066363282092274157236778811230770548981079608991655576222260089811080320550521567272342236553566840823506943961158177860269660864763266315136225695188609479609225112914986842197779438763862416717592704273059833710830538595451250990901753207247995469844122608134178214183270254321812473017340937426763277754036417061115825976251475268836330625297919314429512835901309962789628566274744578264538916135780376216863458288521212413703544060266491540851966079652107921941181434112352996330179863459098751664453584835642273958622763210229535903386972764373499283331687192517016606662999676215126619860477473842740026329532941798173547032204552928289959400298969036995607585220501563317620001462710545119316050344535522896526628699592797662648149543558382425610088091859899902633649354691057662693200116517496573908577189053499972755082606917934890374281308330021069921845738769934951858656285740432771144983628644259637067131445750309262795947460922338616221355553474405599268212942414008292470927779747376280466612068062654491177542478762933903836236423884017998362691196291715773824058513317661939892938724968533197714091881859968948670440888295166582303769810743467851112616722424651977643978058154635887351053299427298518681829688142927652257730242712979010682120516788808246630503141559016465029382010023407440044886686586589606623330886783377465847372605310818224724741367847372599907802509490221671751496648718395479154596409870421733894126432062519976292408296668083079361863117494697885038323486740239100450187454247062223705067401973479649348121064521864150026666951848275040989965326087626255817608124815630485425780771193312713266741748337970550027044225094650988924155818846115726577617506642337563288408585515431262266700203650690610523816222978025984962496947097936092221494420500481991307727563105727231079595121815466556932784391411445445932871209363207106432681069642785330227317073911095539974366859366185577939394651298900102805878264737966395528492646228768788597674180717338205408209212566327464002194238574803614254565584943704071172995168075351665077996674071531256984146327825780949178822214030524997656291923902073655528436432180458494929155222427111812367991882398151813726964437404109696176208573746503698244483750352397021396083662373918698624520992531300413840308112468308655741411966587864360506002591767306628298175067671109200521369296471670703625329916214033022583445365307833916850493707645520583239118920764281154806678959884836786141094946141230735471303984411529979624280658430571083823860753846175952223747932256816937305371442433880358226000940466090170134808883496175823747899741961171140551564973896370285388044372586568221436027113752334250221570397976028772699992263345356417118593708837722472629548920633986462989000638975260397454940147091245038882394401483291310462940217207026344337489494401131260200222039164186933779140344927177812387394185162623183051977099362419886459484464451030507526209888182387159330114720411446589198905216365517380450447161466251862156940785662288193585745697769087418343416933122839429204334291166083102976024860094579504590796480366182158247726355084452884061709237101517697898258144583900744027123545878453618502790153872815106139860543860294999254254099725166618602224651668823487661365493199060144064950537364493752998322762622841033581103352469121737634994912209671247033150525171968332748236929489444759712511882161123204491223183530483673832456304411544907356952782083848676868969260191534877161068317214443689918997572390675223335650333757574512558912905631625596714427419087412218013694768718872252180471495232770207007902777658457507402678971206126244834750106058691120991857782332335494255445946972645362069995096313221308549711128364638642263094534928900126456731151905056577594929015922853408920509701549289274666654737836214002507586836737614226850290277779043857313654820467079498969165508618226950266531712031171401517125866840441765965471520903650633851440527598947731350412127962131625754064680237174564660270531363447236266912119754998885523641255749212507347528077689758698926172130860850413586336297581133876253178887627575693896801238330144266472344029569032553599905637878056408733736107982406497504394041737011436241006019807214044132698591605244404055384082115471051258293013972348008646121087262338192535865348844383904600798424362288043064395002228726445871407172407343253225595715862014782305903426869993919841767234554148452048632184287111969544926741651743800681276959416586357985689859889979229476383901395042020521571116157655108877641157506127177105794919903830895282832601880292853884091467020984681156364048664926819168865537132521051087417534129518439427574528150125268357244018029405473971414452779628795124862539024086944109888461238338308907365308286206300835495582787092511066597861865544704294517945215883084805617977696868190530906146483635286543811522552068884559609580681479426070012265600387740101435866021537204194144041999449716871800865139313022303347993763575256140366619647678718016797407479038427807983260718748553566477983541934059748624963006399164174809414060246103859524526697849964845040065525268970758921277178597018077096087401098546941709901208549696359475516987985940453823899330567554948614907248351432857664501705888311698954241080834721157045445136589560239065901369544652942698266622205231518135284708685611105760955088497790592246642871089723211930159568172156277096563708268441581334569963000923030665134747062063087138845957877300385143929031781445036540917488849667069015483275387929317201463242191418348474842432782269758256067513036618067255377076872062396402227741849813231304938180296867199644655483269423662607319782229297725031454504519685356474303243079252001118318093117726036439094663182615474926017273782959539973769166299937585367503306834568956545042441374928875669966319208755703634538428932738909393845411807963536108255407576697685126928020344965476260681303382733944860004699314987253813777478446252325714044393413490487961234771809013055808435962517612635340213772512710020031363638484773396234425630297906134989451456628429352072273137432494319357863800812113645529389382278509496095761176107247594203623962414976724741296335455967459515784905756936376093603170715724542571304543422106773323089812399565930516839355749505181714668032700507008841702375444165156364014644104029778448990750407555201792062468408351933532096128446133274539938707576320952069592441407126998881659465761145813481354137669871916882521008012089523914562452501570717950322603539989975545903934623771191760228985660641931236118058697891950670147543298966956356612124055738792971431524320867743779696875117753004790807712123196370811028039498999977913926133712109378266252378014066443326604486671160696187476989608259083260686102137143811913365237182246971055696919304806362810631699519364144705445291577609767966416549382185730919819352274191589050284612971261237933852129773758290710264361872792801273901546123649730869967581902801148183365923607564652064313714725520025506308816050887349741469398468346014704912346092573955275044884653441645448652593546690564508169553130777827377396195874289422081258928041325818719851368371608720395005435598250834076830500431918807727316988234530296483787611982177083996811246902647971455998931951186392773955303827647200948252787955507238755346912012890668318098640446002006700474283528666448194084072380723457505764326221295597410225915157474569156862281985195879852857961608523668553321822509652551972105016287539594274789796450491139733759492534881278272943954053058723582614464842075505241956463299867214985029503659631825796700459697224523587569180626039406332532206648156254623915025045574604101178533020072374481955374385188078258856619759499833117097662475968839626352683539865488387728383794882047603627850107610962119956013461047107259058851904204584680927295149875426325691849328018400298657606623547698605102466379235967714796375939555070640123606775173671389798024304810252242448264284144361621304166088649161515701046800673558124462313108260031417802842292967592385275942922052818640987447157729695220452929086283614013715215009687522843277719471842786343124558875685116216255147758797622897193276476315193618441726848486351497300526654930640951908738053567448129837009154402906954222218055272474430521473647375949902056326376593945354219023710010506939887258757984142827150112060089507240478480216001515455259811780322144362454334489524430613099759329444637719833699348536008784771303461451216723898408119530033410594923853494471824209297000929216557533962162833359157712328171961203862618923074088476778631565709752672208366920082999912931402386242981634254687082729584573836836875523273524237852584192148747960052593496278415842391907379568328308392180486706479867677707784254124245173106626391863139065885590112152964783990232539033288517885257741075242738691773908992788025074013396037732672887087672929795414060602880835153063554848759887638977418481713648052374699004782892030923862108755296974456850022909492690226036529361248731402160656294790604589394862589248238357258311728788105797063362310622317250247054400956981126416052337076965637111144513329888728963232626387335579467140156466991790510585550146773790982763354662697706105399709346802841584420674810035959303848094629373935019384619629069746693574549702585998091769971985997088921159229777632670689503741430933510595245163513809137650347233678779693877754038825625084229967643635280637027119208299589288801237651100814302416379633492549213455215996776598626994253123911552498703882166374224673771556496004147347918124920901424477203639833210876738267166288436269017256404193683250288345677300062329310960674694398369796052516233062064877183453173432904853252741026953810196393798467613657775879153969896932449172747188577432604531409052139793447542086538932296311955346501941521061902948034686604369350337589019731612370104740421298864086273132292525509309723604736091048645867205074095456892218883827345427639567967508761105148735640658341286658159619605851840272004667308603151103548840718978918577320763787595477143650686766143841243911015314333500154731252736716398230313174759420049318285193144319155216208817002494947235763284791251249021770434568465592332338941826724679341042343208130138435487681029522155598949252321057847435085065260045407757988701984658270475977694159714259315048810493342249011296527868996011731691945036914006395850134635090354236743943306213298636145084121216944136922452215409601688103961921928524838432796623219399469080486102510305273061327737855491559794689029020501804555182752267140918259204703754236189106418560137636529496854719499830770487169469505107613546790351449982119604468224527278916228569306582925241627795241973767924644628019798446853786016422777006896022121693117280584141002041590858839541853628907047548493232488571185655555221456244747716049903003617757916770961697674875297822728782571071339451043363139129123409331176016264762090650004643972898872288488151131600118512709489392374316682501130577063734912231075347682170501357672159444223788825906579678909986178973991614001096411312742686915886054743738284557650501188099278603607839931604783849362223345463286191304708034412772621762111125554653139977078831013689420704241351720603488745988621073818528209138394210094047815856641690838990882331066364991893483023847074002623054087131979793717440738478573015711809769911197431437122250780353606024045932362742354759753451373295095185897626840793515942629178398222649320841773199594855775523079942009663880766905865630641625405511115597211166715606827036316693358318082658930714535819194016408465756322021880922043743131940729933511304954355221477824152754447282735006362600749208079821981590961382586290332311115489468002720455723874918959735522136934124360753913320024931479677820358057086490587353175795829704141756598505047933484842043751909899723634115851907291572919434201379393317907877792043737690325449637047237238973313489055188894262737437621188805690780086946962083058655641091104322977046632400620638421354469133851888676991047771714223681975704369300048126454101403383078801023933040318977660543682242178345310467375218324481625563808301895678106083822921543274585555625985012767784143675312652549489385321321317422649693413391188616342956597590330670964238296493619170840615628113462313666773049137824870461228255638697499486741876904779915437582959555027608801373906219693763839649168276114773311808110464271879046203127726172466462261240603784855005238510022661120069798990511337807209533436774889781040451554138334307234410394522007921505018476494855088280359345426997914427274370937387094939186489411212613963851027223624928990240407937982983325259517924481238947074268084828393884215628885395091461815028641112065827910062295188446629874786113392067271732775248540888407767594430373241506770480484910199886172448489419965639875521894645898990864991631326251212136785405494654126075430277798931216266432663130927955493142833738519445632026464109230330504230391180780419298806072515526104991084314368669730335071662434241798973336160342452932796782566142810217241850732873357742484384549871006002088338358125748547106125911712197220036380893020593442908048643391030242930558317173933834555761345904524343408177679719106481474710095430318397414468860727292930644708094589175560821376059003278127483873987573802980576720114924361270580164711961520719776126378281937845381615119072558898055674134004351564086613176691891293126297737111264222262026895059999960996348952006347593279162565547908142252675892056310693053738242740875444165585327556676596235439977508701564008687372244055588800850282233454042730611922520166510784852896192361532560018578399670950644313679207238448423469611130923153120957503293955501432536135507388159673106793806145322023875503620052600792347186180435682863264113575553016925546600516087593900038043365782629937264098561135648608960039193508735066771618145189247578182062819192479824400150384843024384057657192705764052167127057803586674854119355648148565281657835425172974692803108176577763224517551523561800497013579687964942699690201369253209221080801968487188543978156752618629226011864209496138428414657538376201885212069549133014171036017551522288281382774189646925298922668901092896696338852020013043497886264579168382662329180246842966665639175904811739875588191910529183729589435769359443934600592648772952205329030584445251916752432349036138657587138002028954667876066146998616376210186130646786921748966322884877869338969256130535200958687011302988681122175554447890387978571283105298591126041705274323910477511560091630014567358706989534050904583335700693264042257278604519331535111904882258896232528632670367721929768635674452744505493062805881110520077035234452529047843849703030723651461575897710189652522321887506904023058356198207981414286351272736247207098719481244416838657824350970250422029764164114484759077851564261569095554571968250815262601032437453483029850216439791504622191660194663319953565201624318639907587908762343396268794830354893931198219475601363663945063509205957899853656785370169605266080486260837762165094266515379403930565847755539052259230785981289088421191690274054218470691926841698808162586846744064093522835065819734241691600341239391394924482607414666896222628207952986867442028057621979847081366965827131309805485537928955954217069955336561053853639429697904319618715541009283212817694471744916826191538412395904737693573014949454794831994086328524170342677704057124973037550665227832928315486357483255325561882670818685265061188899799598471997543711384512763823768683642963897849263930518737679846704626822043598187681351814511159906771058497686916846981856184967870157763734354607223942860260000184210401975860066087467717630391947574741425217151223254152619061746084602831757570932756947325744829021691765522298812705960897722875532272429718949947687122975448636902478912393611469223885073121742084306518227037684479426439069922837788665601257757201253892729190672122355387135619508843411333788789875245901104787883301511926158385702745517189066368624278450764522933239221179725698054800038295826772504143181722504912149233713922610310379612647378483499892891662846032431711909074357111229733288275498608986689432770206105440574097631152794986873270753846244011303749548467662063865978511037011056618903757849534819552297216679384053478005574315962148691286254577756826096542779219946276356051891829545868421668817064474631993928500185555066830032536996558672820489763196495549522956862194384455179565200999262313948433490399228467154193299425705705001119380890880654042075580236365551276535263753246882731148281769883342344323083939898789159046859176093416970892559711932038129660721153862770597781568741265968105168227302648261652491574068849949277845396046304153968134174609315964918061542690379850728731721443092564145047160862660651812465290566923651649170360000197246496914298881849429727469497317917163204019567341111258295586154791249753443710168606208074779052591516167664912812754318031506299639116987465432668040800464189372454526535110079156332304739318185151718922871046016870364942662605581353507861437903294104551860795120951071141720770144063698061883396400070382116824922302016622814949798570926838947697023901402082288470765098440195774386757456835948650622026648585230864868795001688577879801347392302869373834705154061974989493309640862986715022042168730714717609756325150056210428602967113672146600769566151935798741982863593743193029365032863215520974841820751967241201738624012771769891695673016224320231199802648974218082549373775081882878153940690196328804529600939484824007665432908892840020681327518281739151669524357942035556712997361277512876740215156110048644420588401210515475463289449000323864020910447444388469519640011980324797670416711547910478407852113078073862085278825248382733782579940837719574610445908420382977143004435537021355929060511260259640027538669653881765926495589548112257594195509357861312230406705213021048957278861217498591602758462082066975439603101523211641119062598616556499646502291545102100637021354317394321673496244082739774967305824345437678029021250688612071154802092493456838340716760482615863139268174613677857930656948500264957643888098156031526684215127180030537922689293416276861358509936715750072140858243948191922832689305443002116413663092665948520470719385547610563397193289087249943108357432175130097383331533954113140711295934589117612714208072497055311283532863629479599967362963856713969187000353509700874040826950467913271481782012211986189726929216032154155207259012265660470530137817961882080055503850268773266348760363359663572785272228424032198388288506046889335639701893056128751040419986609968323374135440194504619158256938530054873881246358409589073445398526606449192319914524650226106550571652666096827442659369251722118958693108258553861966041327735606453010633889761740302565180370186731451480995723223754393770065449679640802314460080870309822848075850590875626613758472195491390174940725481991614607174169716896600671304621892005105448295664141225544965448030010704753830362746057922659696636040689515919393181849302830760452450923729993972286703805665557203047174572322386627525686146747304683801102323896553713513623855434900748691896651380798051051332617773537575991919909269470052338314869309335758019262777286895150370965839743951529919177797396916256575529465055769974430334384826375788604962539608041125063741766920243533169353302343319525028652968058466780924657041264601296934380324196161929787462058561228023057879423922605624730854950253664821228873144225029430463560387212238620299845917738724689094586053581301792813963505859771019551546384982954388886790067728980698953549322978167353036931265234789628303357407898981674865637071937762286072351262806095010077967788193081701806905101636981274807949038196536282573346201831538412369870630111455307505765311187779639058614192760133986762510842102912882243912931691624482683677345603935012350914652004271485874351356576493954191309393543028344515849269139395303208337595696976490023352168704225537878047931165447537519324791393250943960238490627252867848524467162665467435770406269699193792133902072896140114657059807997757056509566851794267194509428256589613146187059458425489627002089694362149149945278854375743898584519977613173607628745702858107874634037918679426374716368659794748067214612449334431191121505619007629769744229127887841061061096239732928622468299684189734662103113465122613408860974834899463063099796204139313410216246066304872029750844420121823087497263834534705461905521834630097602288798955353569091513134421641454749193793892792303279046334371680614133603197417209791280385037811318222769488869155720707495410613588236320298060365281692796669971961592449111251076471789518698566865675859753431264141033056003114092923115400515894105805700883462570100220950708518261396088291590951002255864580164617530090427757549521571606321251855678298061592159380658389144676155353718340324478668790748772960431101664853175415290697303716803118641282353459390068794840949350936548220661051199381183998637416091954220813500269015828706945931304799481721958676034396456500385367420939900430210419123731205723604313028588115339356501491591424608159858215205405557887402416204881410379989580733973146324601750144432353869392198281065457308763635249557663231219154070272898313907010601814459848352823932000787248237707259313160974261908990767461551597896215619302567004705285273373049590957475147954493552159337605739999481970330755975335868714467403942703422334166442173798075994102718281981092698809893873820123293720313812998399464460543835250814890785550333622585141192714956143524962491019909697909740870218874372059277008063354976428657866962470909138220100177524987669886629133902578555949784937041158318431836654464342915922981977443403185477424784477321494046079863597957963884481272138760409261438850397412273742368791839898095278982316135609219422648092190554591032126524033377603156763354161228020417192324722227822451869744832710847617062311812436121457650320329773955694133721876261286293662024793808493669677910622361750400354201791976358224046012145092489678618374710730760326236247897334253360150075992317664847289933292290853379937528818140363585692871909900987034641792758505928605544633976252111759853023824301336980098891959398442041935323869662452276391369125166640538555213544889607257190549118690567925394895646020678512692039583772167436780643809486931792838759488725628805918171162509628541355771333458870353087511608539839910883636976849324559276245101276452761718472834356256107539196325689039178458670881108488525568411744647116836492002599264181867255471342726857659255531177313432483292913136300295278773539904836386149487439005518420118042113800349556743164310011857854831505862077177031272338588220572699101597968590324648010486369935125943258224819975327039390740159972678829453068474264938020339529584852592709105654912976247851310686332960688873342852194626841525810732587147636609170465210849719774766863830835339702335474081498112215250833335610017311177293337815221558946782407627390648398805510366042395443207248772497409251131415302094296878065815160713734694061012982749547573401219931033339845259956636902347358865316219356759127812082240166314188038356218735418199582221683298219593612474994096620039849780020195896508077819177217984837517118249254740101358745034818648750657164065207124644097245110534986933097329528722713575810004755116482262354127810567731622126007061209726641781561355600849978486788388780151695415564879154577469510745636058094830815394114937980032006410803412338349381695623101890640441800968648937026974034660983546082725860830922532187756813250628928490145549299569038406042541962852246578912230376882855953949217132016623365561811009550563945276683580409833609301555643633013920494198645299579439186059496677392732446136345555006726046204172756016285268215507044972627300752773154005545935101735090843903702092859733289223033241580838658783734577668347219158036499952966058778652244844656710130274469788225612827032639346729814594511983150884351436157201528089954677887451583045514381548448880195403160724081578978788443527701840273508711204352006932686465044322611941547265510106251960337462632199962179124297522473835202181588445962956122890825113971385443122093951184623613826451339945989934561934046738645404544731851413901006108016959227935079416352205353723611872485723217220724153460310092359844542569571853914754736088568802955475947874084231386589636673732988444407875183088975954874979740354505693310142917758741305943501074126119914066022015632835153215038548091178151350715034117460688809131435432250750435318378877677638208546491707876751519162666316628389169914607884112146375732370117401051256440143709758523197581826789820272830486564305751059806834463716116424288273531921220419245719503081401526723021050369058748482744325142171334636634511515933737997485534128877954976193164069440979537898237289181062610709142300446115986836287856025896955589986493839155572746057892795660655367155122914510906882060979862628459109850637863354123416056010447995665200538324968367968145942606715469124661433481628010778225297800849945614853119705620954916301132685057572453715139135043852157213717061760541745577825026362866500695701954685379707338828922621951827613486617809105524348335136345482986317345136863767987617729711637868490607778471873164486449048724657782143729942084598556876348806535128967175280346056850950331909559640309679936147903671838147517904087437369515422594862368259522896651395754464484423561712296274968123371975847334948146548936941810116786046107458770975303863180752788380364699173040641886807588698326284026129995668601853475858773325451757133355241777544400546709618690294402465196623576383126298143495476691631074339184355114221988316033064925751164961948964730695105490324945113410293201175655734921360871420171787388957442945774787470074473184168586912736284239465063980363939647938580689093661043288966404701537911040588993467495589559066104843225387922306328228647060795745410754892930176627656681862153678274602173771916741166753815197946488900665367387009142855831363452014687137155823600087091781572753838315755298593054333556054680071498078845940597099695518258316899681850232260081208132780396773567969846698650639086866765911822184594379249287208384384308047466505560805601010185396807173954489373147676944954246430469519113158838259081447651485221614483099102117488810140390841428435514490043571709197323153083987515316794030564084835787430579660412295062218446065236456658261024739858515028155834981175187769759779428925782206223744372745970061395439989655238695495487855921163397962956665094827666575923495485943643737315112284060519306878888704177530764138386100650531325014360532867574131701510703983221093302282331873158031580686404941500524791535708788533309027752839136272597185149225131579308442926441027346769500564677895705534742821491299750464948048251284573248900638155495164341627495486960182650794476151473757617341919112676792702377226548740119205335604136423219055893602972001324049855205987616120071852699388486323957641443863103959079789083176960101324769405203486593996432897967905245903946427612899955137459697191871765125438020968067258246344780586214586966234562632820965843016838940413345247170330820011119419881862720153617032561844034840383537199979241861047062408297605880486566549990549009956828206376940200695111700249226073235230878620933113432070262303512031557319976061680556546112206406225907449509157099099452026646960993598038691842403307746916591842393001965543139393690621966876487252397602293125128623417082212042030429354236298701066216327694595400153242192171505976068964297342036550011287346329256826490891197935975035138764028099043724542680709560130758062382583775694788295566256408361539236161114248026577540576954120119162327695479931745825617832000703598009186486635637788464912418395172473888584428913542964706812354957267327800317242072920202106415818126741293350421538306562321072743347191973488931588974619482431082251552896409551189549828691796337934737901861102114581090308790237625727831581708115261551177132178051837799230358150611595757171120560439063904116484624109363728243933770280474708577312658010553810432151003756477515065412395594332229538117868860019980146462648446820393928407026291704810574816571167187397786260827876542305456507021402876976804258875263847348309084297987280339889834037172499553879211906897919914864618714247908394117744198576830793021493554450718782139232857298539481708307113870574202677924176700402520667614157162425851978031115713849092321056867440329459364905994462610736950805762069584211051769302470320717498631863434952052191149012350673784476047412116716047946878363449618529081110957718223759550156513169037394123402130082864936410687130022334296010936590243488941444349046591993876919565606000065752533896675915545809526653777777114661744492867872896334956632800130429527664711386903156570962299441966967841190011235004112561878968725010424553187097359353336887266630976463224196479675848105369920129468737033891233048033074940190794600225988770781443681049402798621501230693507103795655917904788775768771466609249083921397544966163888098138752747347281119072974341991113290970288842202455694795289398028002827936711036127140125504321337622561914397508882960984482093396880978529697118955011551214580727289263118347542724878845718883166828563424397166614291205831405117108443671384206785997902075735463620773593080077558039520525954839852190742033464479964304162770584206410161588773839262630531779392108928612749880282208464894399295150058199680740359612181611382827324509698571572939281707341356734323942731880252902873773920615335388827898084446222982607937253649856929121455245054039070929009350275563470117081535760726629967606909535165343103378188219030480289675970808932057111046787878903417683826613498125574694914081771911171867799763701283473750250415199137051371426183821706711882504313263770866403397172062175887200376897157844955984381263564056915505772516106864916103933988835386635483524733893423079257259455991697373796011217016053713204962384018356783744925939602211356116552804505498364944614902669495346135226181361258193154541383258338249770767128519328913045415289094509551160256730806024970635066645439427360387853272808157339150025245412484726888431468260309425627063677648009947914762553066442695786941346586732096344325555092169023462078275900742319597799146579524849993873502406362119433216731791068441085010212650809837430814837118176014500032830037329410023439783067358882453834721651706532699493395535239295329220592094237545500794463040917661034541665043369714313306309808994386014421194096363116819386882809907648495452972538476138044669977447028343294297798989853375494175974045678461544686243071194431105338394887984077993791809982732113180823148586221371145185241835179378410170910804840711308316494063811209529120062482131929453769934723756180233673022910922337218544234325682500335102651635677732675366330445936746153833007503656336429188488092906657077603490970761370525119513386300460084649375941980875818372962131899884803687386664347466424473304239175683983961785673271657889198890405606914337105076310582977220537427832909702167117910815031574879391248267100831863373725935555138466905051769259901980263254714563865888611799811601079518706616630035011600248607591752858489969335252185808525697612975407324985530210177198482611742378594594864971523684253538095112177956581647342609823055957315775032031051844802544590804269869107928911203013658604897637221973813337946505471315221742657178862446454507023385160134289630303809918220972398219770165344865904409006766807987347863723327762969154735173571395460370424701957383750405153656821696763782294891815253135942829356738255811277753147463190815376126289267243677063292347669279594985249142502382892057106586851743022035660660888416968936528485314044269184644336028388379070084922616803690301631386180460784195628411121603342270665532633196167782740136360693869051556509717269655090502114943441786932562130466090425077697357299155346723502448507213687841609331409511791797645807393561141383387811915172762072396209176481466038427946558320103738643083557052564129452133781973005169582406620915941920944309125400526429780979472938990811819151754283709737912578459899383760242163754550123269026162350202480758003663150046919362679023672403272733784835009460015331707610123793834476386935669791769152072050340436085841875421704125488210267701412847779840351889418798330708775006893128151302608829173413772024558799907027576856329056150658309184781716672008693401165150905462009048147080578312600302653430923633721591204662677817280343284734942959063674073811354254549054184322427365488529146486760959353139687784143407662863941001895063412656175527085131228343493733982021128460958391071550614310547896453013348393435302140471780749143734217056330215087627852369183270110918749534038525648156692519237697152760159190844525532652925510441508107732868147639411020752171827194311202327062081951025807237850851172968563420789290018699768278965571095915307896927721100812067332141366288812038223559642171052424512110834024743261046788295295468687729811125363371788288691744679100652927357094719602631438830650274238161002715867868658829886135246407328788541100194898933386289343543438337866007032463511972103270864161002309005006816638354170821567640000423978868148777773909789186984008921666324602297894537517626959230083219665839094252997947481116098578728369515372606010326017994094044725247031233342333427639990096216282083413300790856191087246722292214977494524895789119488839721571342418570299568776290874567277104851622306026654732522233342073815377685520941069808612872744963740655780190166371043025270036880719553210882884144883941454227900012017367833301338268367939910001004957519006598557768349578453260502065069390510044734450709056616669029057528409913506377211207201706257665769710488837221870480011439372738461595677923538862013205647232915123092120068735975937003179218716314668330274382817378887672558057849334897092987074578844533055391155361845271512981421319997140360217539595565030909983670829371568168360161517045169060915021123874799711964249539160083121780674121818382580374584734003217130356033082912040653714208124148002765243834387965841955224231492519066835650554485856676529952506309686394782461613241261467143514565017025657525145178783726856689205186618298051516173625350803507861370380289888675031128950634899219412682304123535560549228413880125705781678551142571480452104124624310989115878512477719799873323611184356126904166468309488041000655797232837981307356853994505778099887454459897471648818088512540518044706477824269500263852578262635309537141492341248936609937227597847553703983261711292837817866603370545895410411231084201339574248829223512379862941953379068924848402134000166569964044076788738975803172032021448137591627362655143322108138614557678336646664456090499166789541142265892912595946945128140609015868989501830346226869611116271309043047523565738927503690941642110022826179155489836137949991137776703761496269045434886994252560217499108176678731800021342150112979997961761750525064769236405746527830717013896208358771873039121703855083393670020260643857452675950351822451015823825391459167656165890713709820736876307634061064141148041985340601261896247588230411933774243535044810023029271019262574466411251340988247877149964468471049021925638562540562019366351099505830437816482445897882200004952430342933151305158126160460152001580614894246993776487805402703719326759519508618023581383958628787434345589575123443868985478144484070844995053082480437839868613387282340439821521990549797774919019009310917016177546290936301111569922297906547488021732856930135879405081236004904346810195955249926798445814278941253171940802866995135866626147530834181965943181048344687783148929322243096418891197486492645330983264955914935430486148468513987730564737213127427116526131692264748757719129000326334272996324977462768149552691035563687269747579176679426633847396522861685386745310444978706818015293218107165472876521532137503687075583027571662918759916800071387604214360838626408124123739651747856173305756711666717171317432633858281625140517872092454404702084504979166901351169880234574937153751413237283730087480760896021681630772983321456367761504346920601936233279352838988720744821392870420379021809814613625434090722607799584285164137525165586109452720042683422825116550237868198200903748347595026871700857247103758414218483927143872551115405983111130796062117903503933566376651890190554660744526065697970201913974236785283940871353432555435362900668979928327036809275336143163636315666773510178865388977603392299212110185238495736227400040628283126386934342335432059281714250586875469511796359608682131216052973830979876178059895527944005802288851529524773521716695062574320716010121922042511530212279418626645554206510500206244197948466741157424504481539698543569628674438063196291237141876377788193394074688745245984056434345320778683987318976581403630529897109081105721973593868829472688578245300712111392812413045436931576749512425268264675366580460918760338756129975360490175547018720329148124770623844897459010177563595667436242874357465403321670992998459155984061774374839613217788888230996263446252612459644958579947620737950925298644728401819117285710773316951068320598743674472656367542513457854755315770481380779619463731886264622505658366144745363998109396635978213423935411706843158136600798137774284547048844475449460590270957093485729988210854588412138294325963410552150073188136971181292771439470908785865017202178473866149195784460828129743960703043263789750116412706365692301499340395010780271456793188415265502837551038608790756839835829988767178320785094352758864962764952083993261349984946772223690036332542968678989969169311447282561603546357589397475252759419767571183161917766794192968031306166500151729292886071342072662739629300657950192688286154736371604743576234151410210457019813654635047865904783990389096324092458632640612736095018394943512539132856144893770305781761654817452296679280640780014933779548999301116274128197651512778597540387616774775077661029913174064343433602448241132234893905092360203529808429737538179846305336600382099190339082467644501251672091230613947694071568675144377538150368332156016756231687250317274456139100309815160853436219168318031630368528347333053345385373663059123937688366495938276910326881766872182571671039833307004731710952312341104130297545087211755869998341508854078617381887996925937931468152443147866643712553554638670914466375703318171616213294704718189251583318323009874324018075223344092198358428963415275870659948928948938684792920274259608150975300312853757752709797253924969024493147108412421854709571237289706225825032296859649205312938142759471980528296353332415508154357286223292927858872364397711356219072549998873922654237423824363970985218133460545328674099278761400316324745082279608348262241974121398233279375192512710791640834918278728500103954611379468469973228525433692925904695586760349657517345830095780599306241253677504155072904732872529909531349023476744144679180966461890005476883208866394492899756210331831432125509188240440530715314299641246230990668055676560254057835495730678739539415457442580924358379782309884107290543650218848463041852167224649880053133794209484989589213965214743097873260769301931112494272700081389326956371692018642335381023082919750560656200829525024258151696314355359423491832003851727263202208219174507108827488764942369467044287652745570454073205668134434504618614953077843386473376010185624930131412232316511992574618349908616487496966156177906530360618016276841023795097629033508270596488270431080211933160144810811819342336597129359830793868064084946487017260069745794688435258525894320121392255207356487707660529588716677913292739514457840708480191669441912990160962701476427143973501891347927702904808306544057952593671404193869920066927118393558694740062319747324816299599906274083426712020298029640227000581053623328257802746124300943577633977828375387979243409396383389733632450826507717804609634996164378931771262579751757282873865334009220362065793760288252025997244328677996761351799740636092968261802633344725627358821094034778468864818104246717455382074098084686995465776008807872962932318643454365842514889453291043305127530388157255294071524330735456975746419918473411673655417321201351258471171115959914601453873288281310584362505609816083817326094403595684268343333276178099202253657723770660208195753614863559133157494699938262722923906949462720159204254180183977238524372706741001265881963169902106775916016135369517557480563011354073480143590944512563846000665918805129792207490997512830400239796017096796671028517325622028170091916218884815768656326136031850130378941009733905769198044770837037561301467036002426225092294520333686667865753557891682376741636319053775202992467755666461059283646506389566198921077001663529052279000583206644498313009607482777367701037468950577386575371957684108771826376956571308361743143104948716989928924676456096113323297331210760119868632191976978738810176020762735907673347217869205684289329566975295283194194545849088626497345111952740918892673028240474080357625522973560077160081264273146444599167137924696731033180928398785306247486912131096461226996568794458494882982234407594078199933941029682280773998934348421109570382752634865811548493943772230017484119518164669772564379810171682224919415398999195421486034958581587776263826640746299782360317698475121874140577471982649625816520317192102638334543468562774053619586077620486260924257401129958789266667473389011933573290650787931505868168314306402083249817307710802848602845360215597093882881618154497881470854433548059588328884716478478570626752439303984255143881891610999095706158613788610270087349352634344291915775015238916902909484574002836014627307646955809918749879398454292245964059299732524444166793271623252364765615913267372387266951842857333405075851219095646872316186900604647339401174533477109497328264992923573752888497844639775780659671816259308771832596158400825242062557944105956137810386591934549051693601879123782817191410935642001747742461400838961499510008133897157315359877162952807363173182910223756404535243019492183821379006184500972401191950668016502152197569068479884698842943590763206975632171455015963599197946561910226443094999728487448983053800683166294854710458196254083391060907117911882921713389762523135248261294664059569699350711174542899722085306633661605805725821233433181874415604369608153318281202698125881485262443844498728963766138244402279777972529055381084361900300287312348372666735710050855159077659878414339879196618855998246251610494355518219196942766096111969069606156028988788751127643359013850206658761372549258204330089982582689629846021062298608284228594495820971783319922063921331828306287931352628180505389033407707570582008985668192338178200320101979167817675309926600561094178370803959971988717841902099504843868015877594164070374675664787607575161978537799516243411934651507026339207111393812669045693466397676025315803413249434630677562404885995187432881428151943217240752257831383034284664558293055127089302820592631701528048060866446100799863491161878515529910070839865454188464743302600892969529002611004899066909934490476625404833723158490928983401632862881804145357138562326603135559476620195322289561713163113977746687700804016435778098383314497333923498109803000512974921652041397959268620200678201917497449316238195305908963865893904183073166105188586257560676110593226735219759742584532623708541240159284136450212460958978070770630961185788207940734566632248780752739825861651414958917796450387312984462109909842414385613074929186361721312429308710875588470726847433151675130656586964613831930045492124721942030257947567561263721670799731539452944490961412286213850536907142859189242411070740014639008162739376566415278691345532375623664882181964307758653298359548672901282651405261293229408007156550272462959841948856642811175362700559006779978419023589030529446940516901050893594908110774913467927072737386396841487354673653738022718873994282281018435395947122534788119578072019755514731047443510718437074594373832335595412337807165577616102111549881300331367227467682799344114105501335240169543926111303288600700054919483352596936352524644329571371508070828393557274959856490451612896610925977100495567730960478226604448818554504057732053562312701217140111743185184022383480768858755384566156159395190337485519541434143573478173335048597154717345170583802991180327189529104168459901088478628172199813401965557040907082826479580715745059609166502229937718100043325151914371868990032010461712333102099823344982632807957864590703569014306240524742254123341565777772048525175078901019045810880485357822207840882132248502468524606425104201753617921124685637102112788721199001401955881270676709418423848415995459195146533735829842642297520245149009079313763351179803100671995724031102615180548137946428664460974169003605480680198280875796490320735201512517763926640258611786471548479321337556193904790878015477020184334507005702992963166366788636635477632797279480830653295045550425692865237407769785294566773803447580294138754359899552246177733524864294465410284574996400801086817897661697688835240490159256723789464950344548833046063327838493361239994216096360989030425577955070222786037167206492214410182213933032588786863385427648788925603067600899206079349664789731034521163090756494824999949357193971529377533208707296075359534425278607115060406560381896175679779685264608098778397599994126307188127519409663865001898257454606130904295635250216159736166840937519502492104740086526300895209667421091301736394959114079219079678954811980900258255401192633027754015158466072894758668180301959026844042526082984571928377595688065192440651854503401747897918599225692209686475863379025270515846011565337528825591347403558583776510607782064334891305628511070173874421028774374691525679854424036944163747449442309537823755274647276737259467371109190023460052425835732621316848532385925625039970278090055115121214621444463718289299141915359080957846515309379578630700265398512716856386321086920746261161922975848616768685191678747496988709377310511314428197602158974105944098657433984745101404253344957376416331271250653752140750174033148254418048285458686945677076035853021108067520378400858171263329821781261368299863153130110302635160119707221324198604309012012529455559587247331046847729642422383728898490329108131157547027601301664922838040743952067712764266495263435547955576844055546872714242510585784755554163179039559761918001512098579502042165666141662301203207740114720245890717131773221812090930635670210264217085364419026947789685611563972274979881472052534858616769945439738249793277791110820567489502796364159068301184202604587592388283413038932475359694798831866296025913096863887108403470712698728136530255245441072365263631908392609316651063677700957959671228700736844953880410839959265964911900063709528605467350737967590168050659722277706531571855592568259825014479303119985252799828810633091633662438568938123516836281962284587656448674582859478815682837515144456232990446372186361620038645462586190494898539048305283966173627979540587377354891957147824940885562624379761451045912501259078205707052916930968371434546697508022278394520559717072829074363968070055434914347533626724752806683845418067629933868402739773307611004976778048807613978005616784549926278929085889587619808721742384876165322932186504690268706277833570326717552800651455820216584184909324844860824597676016623630056185016741469739528091813275670465975797154405910528450682219679876155999703757934842460824359365848539490110494615087149957890502124938167217211387341821928393754686627022180857734729031736006815184219510015393541675330470699780251909502443548114859711489878099984416789366453821052415525831889097876948385165317240554679626390033475312603737994397807076491582512681737273695717124607862672454008394220091432592065411607989600384937190698136492321981781994139971637460724709929278631008678003316652637227398029263544419668263578195352700503081058770576695709723621117702623206820663169631473244753871977060150251545759850168559755147164547894727556735372147737334631851602686067944426042154792607812215664490930299716445692981893229890516890853067722225056733289700058206483185054401257713521153348074691359645759176009779537479535772039314668616421757339288285564952359354318914419441028025899952724545753924670145657908895911331744703677339205637518168035136915494779723805620560305532157065373096583674381015949127432311306207517912012450054542483019842696705441616457808744950699255492335288492109022243878511307148991144927168843952761808304711457466614367145952251436425887593003583037600257061544242481829360789505915163297986600923876001438967239268578207846266057371292562714512923543674997214716640810789336312579408677158940353520504081281798175671746313741319882042611343684236404867793167193739104462424551880577870725103265590101041268384302498957012456622571784669418304607190281900955981475139431870108975693805015043048400578989190790388093919713736473841883609522834545946396938518432649386056537209704290365892804564756979391352152314340307322808971760149544491307189182470781079649253351981691133057571780609035825745641164706752909978170496715026071725254840556537825052823997367397480647321479225440371030816042110725461642468379625357074183305769140018907870073784700475565584016881430796310314806372401845001439857330531494415060773902563375818773161465674709120939445011613814658018985733962605862013056560013969516626069303930325552084572260738848965954407942633201034467244548998787497331922607805156460173232187554161791234308127103933887735932804773421105247013301466000208810732461657063514089431236199476957355328094397995294854873086733862591325141444300545645423992431302750181206871163932131671513484787383948389351837961923511413985160117173438901167402903836631938407425612692970131666588856598913303941121480257409076261264002550191828160788609998860399919258292380930334969772718999505018741280699772778227587462628936200794004140163717567883787010663408624864502805340288902454123339010557544895263899364428668555113480289171554448650939370105537445700983095467533540186523691270007210751820537243486958215146987318492704189824541665682466852697570105653135650602170910113433706958160956548957905566911237587703175607278309569027030633839307289533308630697705635402279940099319054969150413026645939339238616533445493508719821744627946429833007001692143793095945322808777878432030429258013541061997174173465082506761792311772898737523750648380086547554384158924183655927154210450660898682595503113883553341501535181634049953933341386686181075132403275997316296480989888842584199670152770037378124250877802623388920407512922849027739759244659338997230331319238372650786099007669496457895806755460594274431507994978931868800822462923544519299706628572569516615265166316382903579093717606095076444447360589729554469323399474367008788476686287669843558016078444841774631011135703771276342439251721748494312206560762347847460958146552463129586732851246947405712171879201728888538853159048814244612441639889740352406168384618055790597989251227830458810914752604260014371999859515428059209378925464522708946381226915445749388892949096378886401363308011230517419562132477876825284293241402242683203842799017252006559448727475379711127751364798218336820177037627694217922753204212757000516107011174363327668641727319444286682903398868015971154401375424305909649161122273239612022536110025734412461908894878551957780258970790753921950982547549247027545730412559502286485831918215075865178540870707813951645562108318420500492688929804537145853307472421649174450463276021776709597020786091632766593452787105850265984365228411608291933185074255491916838111445709957799547793576366798341121724856978731528773982831918872626313086126336902663714701573426872677619719665471674831197427736317004205244635112190990730467659900293239243598189074681369104733170304606158103842518390446014096884906289683807010840632219849008399491152948350732330944243080207809176063578788725644157503536640022376853523189183451084741806461641530465115003282052430848280227481006145556570520038697533782584895038261559159823415040331377765692430086960108588006976727885374615361264464227016646915631820715717785101777631615180520296149188748437973907511323247109021113663965640055268136666657398770254226245492186139343309011223552127576959988789167868621518629037952317372165521116686163629760123579234040368344725152179475903729446411583957361390673609966616614634977685836741311462405145591655967502642752300255880071196571132496099892968855913237304772541692189291922489824669509582724974525849923300378227894402765404541527310862006680983160403146421965944066165912874130797875408710902086916576661469600013427552861951714392799336500994288075470513971319218303504361336937985480510115646228893303359107985133141357965687855684577881817848996381884764725852331551704642406335663798545343646623019294059214377499365478265780223459636445250942023111430841173265424858207630197613675700859093827438563296826220992750806103578770378276188460008467870120774540157243384260950657774032300498183759148298681996410079225659271749590216961417098964768554224578223910717502533509793192796547576201543229641493751140649616553219547915433809541387881492631118674545364467042105350271195233683701154355113682677380717308067125621988669158137486153512239424811463609311347963952511443427935882642926856119359425932267901474645988246776292780236109912121995176137171661746821356885517503211605166782738145610512209500032848281784008363120046398680256625793454671396491037992238962565296010029150651815654270372964430729047482304611208863739169361895494102993325678313613744168332370675517684939473272417777638809229211625756147034639445828997326554245399615135966513232429425396178668609729328106500045323951823940645508604817415447045778646650111542038662703214583320044908154129339451351577908271935990863275540113525330559591318421152304413739911150861413801811506526116702744975719118324677843178440572826220443755148721027759610372947338031796733686665683677301342801726490890868863796477241320934012760471692838757645127569923880008313174467605516853963855683697644583653482918925439559869020318595602033799821411185973793594612283787088264214837634589356732270982496708305943458861208729291429217037429760519468344953078418140481744406282545815131396883724043931193710116914962459453333948655741288324671105364167321881284032894573593998815894480016721322867336091951362729433985695276385628103402241415747354165532578873815240509976290794405963775603073054085193728416071010657938476104536746849153499519263167456029033274097809278643289997139693307125359179965770252005727580101775248643078326354400886186832875098737271794466225660201269971964657313930207815370904991286100594975275259956731158768008373661201719025104065748551074591885265025316199290881200891069896327462998294879360619521610531437258716987496219478781194307432721936029696644804757044735467211982612319006700943392365842460450121783646868966203614759175948212612021991446757183485381827975111330469178609541003535171361399097466804975319060345949729334385213191857455547871967606142694495261117279029023965265838441137829601939023727521028941776851155617267562199053787645427657470604406067032318496867088659775253079866358854463277135093357021182926848592680270596702194756220487291869582053297398489039129338762796839335052196375266518221326203972911763340123176299145239663816685937134737983133704701833400582908599745222738151190946719852075193189936668727572057352032817077020457032685393787630215492810348589381006176535186167533609895334930994920434828729570874875038764825796028562316191105046391241289831335624002005164002532905392551555336300016988246962134557923885253198123933571483387917415643728813268744025699047572215482177900954939293975995502878375297549148491649565999131477786791409176664962829668417985510017876256996620352683891385001745491322222343056847569007103669090178616787472993981646083600305020347952694072433654139446267134994001479414526281324927987413778305721718940968884146965698401794970386253157725121783269302403426808008508738957796301746521752340118378484578553757852824478285547574074654652580057288382644374444166617545377565536824767030655675402922728681218840940814009179802621400618377091500546685745606263379702220489535864432387263890094628458824404672530650694526725826052102147814785344097079319726158261862907273109911418924075282390845353329209081874910215011494738786871151885018300941400926084113906581731144376329069928838413267676940969313635380943439474544138375454270988315890475639165675572521693194773898799098908386947050039187457786431979976367445055875082088027104743301667748491648806386511264288983286634005031895759777679166940101329240137077758487004777833716747269679759510246760619181872445617092468953787357308388757314311080219557265061341851210372403319111144173357462489586175455347160039905257475506013263739701493004681175205760895025850469704897873672234133613010820806260145203582500747378950939303393265138876113517808785439660526783451072157301987152595086907792175337897339668958060042001981745642277920604210904766282972739903059171112423992131811526854633291750652794023277449562726751556472066136522771768838808418406445973476509389376516881785007285397728897344224319192187912682259310559754884292944342934335873152576564959836212898677792767487766305638748368332698034039451076864764459290011026851215464624160689327242205073520036156295413481853813545662841566468851641138049115359412345439874921113347939469556680125265663181900895375960274709072228998363492112579029081186501521622976734411956718977073055584044131097981958444337888448503144626134107298498861056884765453591576172670575876612167085440835605828857104209323536844154981756762394140909342711928950142765599541445024393526997467536014950141177741242549022692677980568921665442622784298490723526422417190914688462764579329327505250821416154397694660391190058874027880874743915373354141600336428927684062022706887230690578355381418211402104049260653586023514557749347588480757835632080180973322600851130169404696013029351131518954877048129614679089049685185598639064824177665161875748171289517988542077137103483359576117321931909930403242508205460792909410504489737707675309585525549018336047703459741355475855646974837393358170035931693112816848248192337613432313410928489826415201952514334636539316751200150246868449999074565211626864783094011762214576709118869237656066371631578792025966152226531746685701424762605125887615729431234100806359751814713781945370805398112978965843639091104211371501547300762640827929509052500732580500672236672811695863571110013525491512676645977432417698406387860454945928757361128000432716855472987655023141139837594262134268207731190138571154949488857072729716457688847854284830539950094339343736743274104108198033937751517646583456562299499114166953216688220491739278279774963849787303773632959468116460479717925139551226630303728626322233677717625703142476028311633353002800329133225822997234790637361420540740223881349186193772673489371941123043265698656027537397349796187968777669646694958557310003225784709261860618889086608503030982252282566600575968240129700819902741127381160054754201974916896671247661753391963683587379453688798922579843562150116931372031659574724044631628697161833473354632758617557377932656426815376808516746445222809073385692443306480688239714537406868582030601757346072662531398881149088709818585976711924850998293111726067808992293130467137787110367901529347224593413243470668869722644711536905121313684273722189559490175855322622477158853168865247195198576724811714064851103728518861184170789032705545853568628420757648243598694429000275397767603649104422830449506439503428340456907581180471634157440577995384532513639821720664350576119394474862938316850363756769052273646384170333568531763369143893270357674806580735865038608667793186137104178069169556079790409776931036138243704576912690983053870546055099395303887082896720422406492694842626216179225878484838275030908681018093943268895968701551259587136001940628496328055137505926556365715633243762554948776074851265766224453849277832530860177007695036305011614074244092600278030807784094747319784201028781249046328870727854169321217598114650234578782539747564935587402897217693180169193355619575997446264308701886121066432784923719720947934667173341752867464682155531027429315460636960020924288909198413046579003205622580674008010790095173750116572827814258055333777580655227363677061180939470497536887648224366997929615181737344315481548865521048560065190518968542340879400806299616884926283265801500377048581019106108343487680678543511174336274036682872905627351719606757340302867353543550274369069430731644567935485779829966871493033259611417195747794615067082512812981450666393203982915808861141032973479245160197070602247062563519626466784532790003809630226626297298549510621979746955406205823819004618777840374747713793899572563980779582625355270171205301751499270815431315611062118159860886584272097173293383543751702536894288352681873978780260063908535830925853131877820437409782064019400230561453426330818385970478727682443394341210461837586551461396212681922876390155911974264083935251988039668392798898121844713392315255051266453049451149527394635968390761479850242011813647536398817433858102829293632234423287379965835502685033214541098702874289789482687668646351857406348062611301704427968250689089354826383805204576819860765478669067831080237516002865667376138484860977961717154619083030780195681671202501682974619536757758330635264438412154440148419240738370895638319277192534355851900490890142781890623266407454350773924658662118409859511310636780546413531799908605463748360299564246161048455448616073964724522877519174110399447176126731103488181340224839761467438130126801030206531368961834725718322069349901532911028422039531083198967949864647806553390977476906347582608732812132979389728432175059955017006435643583464168869549755504667988117180733856394587966218323411550445768080794317856288679493363623501755539055890562142161001268242283855510454352646515881770589483973852479430845834611913724789077403625751885576871017172189514565982698188355155756932852124239236930260396964390434384228323377121708863271494690341684679793494996200201351376403577910863142361977765552071456801523460073567942074216577081876594795999096717495723862346352809523285199679811378425430945791436351978162792588225094082683763611240316813450608634478481223550227696740117041962530344663866674788724439729717473222277430109616522171788031781993893831090140034272539080117052625839222781618838725019607569001312445465025503735949931574991808778622489148293469347820149985086596751881423864219528179424255041865093598054540202759415237885690723595706192098334157833025582247781295351731733689197975647486793607613414014580466666672312233277850626101970537623120174996266192370388524509146347736941523427624016779410228081934920187186470249950579087287035377328187393805574308046007068828038863954517331236338145577406373963598305001654783942163633622695301525384850834987042084776076756619962297165439936228333808581243804082015861155930527906674193564713066557306330432743389548507465825841725445307822101423269776332418013833046671231625829225811648885101251846801992308285940270082360366048147934788999030966311272303483390455575925753056013657686145246111405408304184746435812003060203413660381053400756598163662157305479510249580532398054808316391318345400581184957921564115748331605400953624974135492878391494478891715820093855683139347067255413258174574410065291534946066213745286016462461400141889056559460658444975086135589322903756042085648235935562564821746479758556915315809501067232895354722948792759244335063597102427172798620754760438298334779445784028482767087334620635785540737629125409402908758644226502261730786358157702472774048721326040749212001718005185739586661242155136875393209055441758369417966134797851131565728248001632529367549077153207530543773633619732246970327602975960337491692498871874317970567922637843300831712523833163030173896051982318030198913642594431148594714202324454593293156624039743915355019802134301262072825939154660200833644157172871370766745893924551625638574596870220109604858528089911705341243245543963865359881559120521048782197950133458802900028965837145660964548579025399445043096081907954949751612715249102330512459476273496243062226465369382853845427075062414525036766621195875495218526312479250925263192330486772369957736846283287030112579377126893763123049437217261709591710264798269330375562601612714779006769243506148109641775965214024832876918171776439586564546916625540653861915499196416001381941981498454566603266138224071693246622935695121770496239888862303254416318340074056748448382157594277745845182170032568748183475125494108840238644661179414591335590737258085919465058770653864714765784263428167731351546654420516523618135533206146827066333379831780208636019644249673921665046686207954634943353361410805495271221804340579309167105787268251326599131302247827900170170143836956844064549430167303390659704037088517591562456852423921852561924131168463135983262929437015231367226438441796502791666273944969549707294791503933056938115678621585523778452271058334088387033959673385111499878815623334679304768571521736152616870276039052731906877934567647755317833340727328543553038949867746759540102372309155811315626915670247697235224979036814948262371007387460824691632770787785128684424413332855359075322596308667803658928091692291723577493205976404304685896314382025241985220737807642999792291999878471493379025384634529125741799181917879231329202459458485751751344561628327844941265267515310045160940317606642501536207078081909309581006426417478830702699454549013126286985841209097015618422487194628690253518138539637642431882184647066257958911304031322035407786064234991424846446692415218373717682647373113193693665024794021899661436728547560855762464103577397440636074745788045311301364828900621763986886005506819540670485989961108744646128321803283227709765419818637839720419666042624693367051455518509644940226000405320271152089742785636414194232898397357324364757756296542322376590364010626569786237747728306093444377723845939034689193267066417005838103212391331182703540304428533472022438615021579644045988173491241997899059458572366413130760968085602080723471151658970253989652244307950305902637580728074062682452343381463515253347724072169322332105953004702193393736687164557403650477127922033713202618190627689381950726373638698175605596240642229461086805711087528694280775034352174986424293612753401234202715057268779384964486957562050454209316250067263350206468349739277641861611323233961414404315705833426455908027672237051328390551803933169314051241219657701743126861495401449861609609066612537190586506632211281239986224539823851423643074736392375238782141423872421976975734769105869457623852866050820199730660910461139637921081932399910731601959380097447150550353576964649094628802574456857985164660637057525469160491924939156476160533425929005440093476502102645448403961074320020197040492734852588008124119613241838329137023779043977217581553656409787029738003238091190056626757553660446478850498395045784568273056595928252266529654118963521361214910097829939551985251762988472873582180914209223305485708963137589338938109028893954832171259217688363877160848992753310064793583796127464721666516707911761085953237286245401240337150345224813575962667726339733027500011376969542254256477309635662018963698560115505922682816325268089935102621616750059712354493554673445435144270334701361627412538188568066380704120844082883855552483192985828475967770374879135143838662494270689689346892336872215131821923746560426007459888057377688672401991856634860352084813952612511009031533476870788121783079377154338963658860323281813326723579349433988107312961940283461637057303168872080806138649053052773487702000103295434117496514712748529068178468989561429625169039079460890699713764739717421645951035992575658509270830288457372789548111166550052998773602215731267880098052521501367600378988314196692074295888210581673962910958647830900666658331908099026458572538798930759527334469974611712760583906034289361795125366229879337314708974613825828164937063334576901385022111316794399967321087426056034819376240240562255140034722928598743804379614904941165998019086871640095178825412764477217414333908159118509698764151902070409347892121276012187331955722601349397479582129158576307414480779842323435609975962584465010853565006830717096774562520394621905062456196753494233205289820205057998955201749094297528295345986885622318381684545308767803345794500050194408299766921830918765159945130086376497489469021320757351654415800000398061440080331373731346648789652773870031438513034070709753126054060291661611189319397896415273209142241282609035525186836882914151929395444771033761343817345672241206961334840640801280213360262692075445316526100399995941405164561270880887673156791466064726904554348454139176632153019930097626449613186174893562139103299109476681343016057573082265762260359613031717784517522597473641280884272232916714063131437823434356991078961516721619610513412939092519843401180572988886053636265097188270592523225356226230796301757050347742260962303505211857930465566431400167820939174235641290142515053468986630283893563278994107514381840810041117486645138879260886044223627426427648602832219660795648309056423452105596493607784277036273980786699685082765127790477766679163835400349676256843495838949211787940653594877219336566042643231134488766128458038774433575818055280362870328648879393115167755048736232141197493275508766053012907735151504399819971355855736596904210132689753255856906566018648616568196206037238460127012027808548095479595431174375494928626988222068778453459585932583204497212106283256773554663006421892307911447672341464562680957767740971085176197391817450357902986030393372036086073118015979299096035541495500414311572878867825650601629535271049219118302885144605057435068917088405732725255601246098822324468653448260748833818767293484755711600202687670254016520094651604961440271896711474036506922232182338633132492086708639251304117836953753397456332472738486295641567347681180684871080889713580910971793455057619005249160428702463479499731678801418576794947222102439373753881009921940398637766292536193439072457228893973606672410155454201429951591093081525123594171784787331028541715111007104749810557291019021727930278030505935868957270002343859113191208837805581997204386330423704179616554982729921431535665467966572835032172319279161079071813937688760527295390849363384994850730614421511529152831611391912958097382923586011403620332733534333379330481165748670926361240021316334831011095859731355592963507075231757678655410421951580467630690695785367528507626592866030882112816925894787813897501691204581813477572222468433924874434954489735035160061811271670360015332325365023142782899060484873591013546992577938201400269134823435759380662687023950454824192247715356314902243762666608187891371668367804241563848801773896582385043439159179187222380355345846308036745772922007487696504499742191114389371893826328228828098799646471069939099928435200050110004234781043479624706915592116152242623930518216995478445619038148991431518492879123756419217117255105848419196024730397191707579558856527105388948364013452101630969505914270112465435431957853907545412969466284731717200501854156359548392552226225536225742600408782958223455385245250411275716299426697488469524946258754537755168858926279378803353152906052345103249413985518371992998940607331513689118146514201796276648871700720956764978584738376724793467599880549324292455429644087604111260490998654053551741166065262159230713313731891619291585795642888193576904889699902726570144875028489605020374918804526733056984193168726216152725997410439579394794747253208851763098414063468131422617067244731720910034112487891626138380437096945119356745860441002242714795771996041507025430535773103284106744062363353561926372945972239147001298480214809577031369922742703449811417519456924541048825304383692242467094041425711324690154498395209962316029947695211530694679883064202580833651887760923769100615341288963376266330858492926962726965870963444385540795935787552208978470085583071419544882931051311656335453390023911008510236709214563539630026662774291985211086104858879191762683596376120528145819035275503723910901683309421607714481638399949335474710109418154641200033844479521578860735237726300903173716046181003675055746591790973930298934061445417326309806950340343832169451723716819392445318594009999320896305886964636773462256969199123143139002790147955113611367799045822419399330125630955671168077013317685645479419042919682876539397775704976664484542753126813310944379431545522387130668589851834407277892218336910784009058698069544636950571232828769323585916074401623658683871136503558234217004352860716601047412613507627131588590277478068784045089556925421049720811822345386648450660730304705332948704662604695915575938240386206576833704499199773479107840517592621180173254805956799079679199223699590836888921946802655355944991015267619590344196078056795837838323155494513402544961268119375777162022235754305008175384357065675220272380797304832395134465743190958599272857438842201373323386472134165026604876351951670003507012519615209953389367738459815062436441522715290920866163435340120091702169938324361056260732405081596779483113613517292455536539868789355577689101596450970616122585329953354607760132019325443916489978978992167695327916853957736683106295850865763077535480280441697950292613377139118066926725272844096964288213708923430887068202012410713519642758544567054638665358158859833361058426794542999332664158063426449095136853249446156886690658258765061152327758636657925425106694164089212680220961346338575539020318292143148056578028753722686309043950597604491888199236079167473115071516491339777399295663262357198345335718895412479109827997780809729751342419583515429198623440370314358364689725195347756628859935832267846339009075654474759654070246317664127098005419669021443342852585119241524700326892215120165244069242451932095553395625474889403380562318701064625597688066800452197956011926496615415549134954124021449341511291494015831502213261867427966044332205269964921249568366381350575865901088566530009066529297316042593183297083320178953097730130485106649224992242124146702256685153927955397707093990257342542578441531918872495830502437754671102757598391898813500220295221009402704085341888354100925126841268440705390676594301568909152006277042063326553285562794911966363448635427403429047711431131002312793015548299743884868962177381217431543147558810565665518003229082307336774402892553494983479628819805430234403637763366109165461109447433297464918970583928433364503730168789744309976352844859634709368457397261357509220482814559449329214401079728359873103713058744245506558826708320654065573353204755431412138510515758197555127318360689675714121596116665674744452346962706096044457088125738265929506071593903088201900233034558325367831661808362621509785421400707165834549939224267902835277269551651589314842404788015923489416326546903556638646166499692114550428870211612365060998547856876924012559258915001191029917380026400258672779204121738009086651796472592660599403106821653624134172173297096153136284525724432152514858568861634394030382864900818723627953973908475624124674304417352828915698263685065831368796078285503357956649055377489798982960444644085670028576637166159112654567582603134868094160048644510310068675370099887167058477119499553502373620216979698610990243374814127914544345195620331629757920035808846182220504990547184439547702400413993762009016525072525734619261866019168628910999024301788523773491536605470846499394862832422883331007471576375010621871708095383040715802181391838118093977798511857565338512640376383036140465778004985979112872475934134214071805374867522339463718840675562855454051885276018403814377493462939627353931101715110105693862928624967977827766454230028629951410352042756970083911330659300843280380932312300724187611078016361667491295048634719130561577518466812738135047776236876872346152918880716740539567797105891674574072807868652760511322113731980303876767274043308584929297360348035425074424504245331007607336261223287884278744130521602340508253877160842500253144777130944763159957339809103323196306029894506742387431780362374112008588172345254302270067960733614290052765965155175809309987299642134868257197688348216910445879522552953190735631841174249009150710852372661611908193489873342061202493543996037231172567482184967821197688537700871408699340487811491617611555107883577983635553984702830518434440955571819993581761859253995589433249011279356337099953158870306633907069517596698938990796025691977289440090972816490588247486246184198641927565054052500524260255414279068683451387141368744102943761061332163860816902325636211878860358819904779383417351883172413571934398941428399101750536677332989234924391345068961061125108494285620395512078527601437092903244723652782317763635370803738925402922308432125697778132991072225187167275778815156236150534406003438656145688764700830565260436904051244254435643642377425169804963346860552635276929274775749704914765821892957184238812938482303041605774291296724212794895869026404113525872104840891314466139229188652459822421977198535344381505800843714763887757661199628595355273607756261061991812016526862160548317896315770457903495371413588520504747693967021310358009582314212987796015673828260522939944438895559762972165506459569156239819939240585363897736186786498652779446771690256787737378353605330944738993726561855856468207653619656252847318976782020384995683848004294209211456567975881408582767169937676587884743760150252686783225474774653543484143491869506300563381347172153521738396322203104700725434991435162570389152588476963977423411237000221955826183312938452429766537437025046945990565890700796960892549024247826932296995423279280612176355253203226148309441641911680883956377844314246297922924285535236581253432212475737640338414961540922036591577818161228202924280240231017804985514778441387741280967290309757041380517820310799335105256942757032255663093725981738384160816809492298833726119080984632794442141066086089568025249969158431199663945681719910228094547780694255501786565517883931112539656202499925259101869916276724649854726094379619848381435346690410193585235859366797492689897116680533815244794335985376216955440153869902525993053205309228119940112801299796778702967171052602213343516213674685351678121892727565315257394758595873367584252145636132246329355686858741873870428782709674838899280609825441047010544185459540623204612915958822000318618620072831126746809405676475104887245840957546303207807221725930780642969496918426484537932320561447692568108736404207792404379277372915264971521896448057537085366055537966944973312373465365025629449266493921325174884388907899092665782090143117512154827105944798834296799085868463146446456824150005207650208285010049360333466254193572657261191603782726834169430862883306106416475513084748356910406847012275913069173165486433731544063194568993892824600728494375049143098444805185336742292251568094089916488531886659763259234228994679248112565321708068358991836012011564698123304327835037115859095998237610891294898274083245109727240097447561477053453716406588380511538250052340280197383716747206557568958875856817243564486640000087764313919193117593880621050824710844305284255053619192186280564866056506872593539421646573285111703221886750751740153748325807789056579056677379428527262140532819593297066558252539901574202296487043028625718740550026827377243394945616412671895034887143254739239893065898559560926250815149354361299729246759971353400943656288607730786396729219971951121683198906517268931879806853410501829378941803202327466393034656158528161482389802569981126518136930560050618235898621344133333036671223807873392124927169511573526743541158723790374074460366597692678395441318579673407758462113371905517950031648455588663474496057416362403648769189893975684366508973650186811103345812253613108301436374155978900403745666633279449454456186013495237207856121742502546510648540001965373582950793365099856169362430309020273258895823797531376104330035057386175274074184298139942150105881732926737517535914793502213570792151110958052198932229577505303802091074721293443315350589609836110460877139170641914861809673489924568346781679754964934151814920605051371365491362291932655902371624285640832017614287325812118838933332836823540213024136819703810696653609259521769407457178340726457264209791480506299212610780591549256196717392654655967239845443993951943550981838052117330540755154138707614748378658722064580063434905485455986005823836194673493782740956306464415225361424016468758698208828166628268841229305811264181855809806203813651657791516375926303959882161085555709844255539508826892562465894657269399847254378515750694004366358218327758113282278000325920956036375451078965912620490183010490818953396297327651279540972934057889423204729488995447659110539204945325563799883708330630932374907449715671251896963415718416522457634363580625193338766730538956591278872934109865543214406895881599257754573119134929218191671794444909191096466380076080028337647132476384994782732509733965406866097083886068314586340802265763853936002696913013479288183415702889356093179882373956298964682624860224062429695469084850876393245601584114073774291332777907041574423666462902781703264999444029267686895356879761466633114053514722570895451069323058339219784250887695610847676759183196931811904349222417193514527778492482406783518993171783253704761485257051358139299015806139194119152297794283979910051221410622788384186903704005163990017659195053957397938147126851617631483076077890263734596780907833933054785593067190763733866318051652834573027943005200436035530548224209756233950963430125585455004215699888654337261388658799653905102331679703670029194730233118440678120933545656331266838775636996659137152236383138770300147397224437292712359690902738989747955714438646162568994071115633828260368209814635848662175696995839430947516730301574237860203463177099781824164176952145870555920113943856996379230274464130348280719518318670646966991741783419093154516300178107528820799963415651789458201465257038499558477326063736663024901408393759703348276588829058964619237368386265077677275210845159067521192742193650718154523809443682655523356185522456140470265801903240717703250825445928374103641811724464008185894975195390019902398046781542720657389934916407730438975753606903642926510074292344502856028772580819435689254465768158966504628175239042273590361460783258249917929472928833716534739913442734985976013600870108847030026039157523510916970250862565495052835576819055260802759429758045508349520913405457454934941660744348694957778690956369582366459995274633671287479695306165457693965852045758207480190467205652447486508947905280912365930961524525887902290291913040757098855663475059008242222609603038132906725219920360913023408223796399627113243100575729720223387367593299414728398078344361348574015612082604565054966315144802140548172261093164429047483157638494976510300055441257766801914070896113391458267560092276782156682512453948212931648951152534267896567152663979129894976930968154358972257055984483312503734696457410474613620381321052367222095657312128810189206016103587871354080105242693771192166994049376314811887022756184051350523837870390141347240941500046381738515265567080310205105418975126237709981847550282172192791544858851519324560660481320589888636565174141107941590640202516104425715368963428639071796412171308247069221996914930193470080871575302076938778404591034239754850236684852948143959017435187117182136766295970970173323779160781114067173597929882966623354103972019540389937703857929906248189200390024064883238307183462035891772411215834866980958074648493434661205930833627752157369914229630007943931836182580504381626094804111811757932282242588358027399475721482348819109072572856627646052312625874242049626069361657381168734791387157517857955939679910459612393787571474962500382559310930204193936723040255822808581785399777670215241375392882640433180453265800706092787209757034781845647380273226501011421925948923860485537312090527301416805969853326667087817212548570978650205097280884531314717905366480022363843514701521682652666993706245272457894738915350709671812442573175651111166706471535124035819344990909617751014704033280082279695667085638171520423078289167065388698246506965913142055368034606249150830479132201621626345142122928113359020130131897990034064028105664010605407784353251478926482005756554475822439426272815787098316225230861289881841115817767763041844295297929076309576764021222649265879667918016510217763736977366546317283803396098948162012122307061262243518134309486450317672760603470018291050282610209966860424617988931171804897944195213127696555845784522911439906747679152079022538217731826633888837982108698017363460206141636568083617905690984549437138959337928821039910395867791468487325216253864802833999169801046895880849813330034690655151995413126815461548541499913579867748375468020016116648813274199031384929236799888187293847674572596671367790570165854084249144862039031861654207054797244513930725328361887627468534477309436825013257577584713468924137049641775090244869332030976103828709578644136758920738006740152240383614222314440411332616899432895208586246811028115692082107002131668541935195740887933200533531042968581856070211451414901551407889389645205163063603325433433727416544106000990641448129204805209152937549523259520633782429412741871294099021399021443634774171121906539566071802978584127248091492396348495450285302071954322087969087684342712130097703262037213730208343637124460414837879099881053443723614597408414173431644125613246221966272713706305567596238147172073801658215961654684763535298775772444671590096697860758135907989232973472753699847459677052820286134960733614164570165000189303431388513399132330692978533016033017849210449171126237370237618849088156470185003673501568994962711287861380718772650221964193753884181866987918664808929158429394083806993036626793559781436723813018762037384320746439611552785475289645384723819389452354551972941952543426231214797280379692945714156944874157564906595976239572658208728965491444576576127919414481129950486218022106220417340806982804420339727767267240928778868354894834500028365778782345419038848044333687908700127161313367370521470292323863002598149711122664123199147261154688106808504963926669902325971272196641401727527892546541651793431712434479438827412185947060572831934295415171974218696717324193792683594492900964200294151291202960294090913838113040421966700299200961608211865610114472894259755748272832353775094494137967376280352134969652076460432665153170807631427679573328042450676154807863986448128670267382720910704306382789405010056226687464215462044993678809316278199809245013328561337362247398686103441685487088938886641855228134422877522101398319472135628939033290376213742508846839425845418200731494051457764042857943279879934200313176041559078651494134976450703174249622368673719180601455796988429410158263399635750725065046144198283078594253892284320160037025081753031307631250124645241458205601879224427865377491544022352644401976920142946353224241918842635871790447673028268351255650184833165732923360486719794179227698601772387972180985740335163084848819063545559909860593334709223439507724576958144779168628937571953634466776713137238547604636735027517077998119714217438631909406866733626152542756528211769807149010351488611815277810837504219912286799672176903448757702408682633605302438851527752552833186569406375142845296049929895835847677066793412132180761407847266263554853107976563929908589664532239876704005454913682792915223981354237035872509853690194054668335504022480481399051889954063725834314915969790293782947496110344318865894939388042659335583167009133933950221599302391029144686529879068141124609039456787983745376911305255010123611235119956875930208580977020188166691632678794962121055263528451858968433771225542542276476994204434424662732669663019000441471813720221654038730806077788211135563781373156807589367507110299221610282278956024451144923184975817766236784706088195286523063911633858402397631317524110190148578055779462129089292555248146668729104572955690591783135348168805943335883282972038275286614415623438615724747999216546987108874685936779342251669100588463591248103632090356989527445855181829547744715161150235225771748126389435211283163183123590607564639221419109959627652486539259998865489494705658120860486505814855562707121751117350110277935488162385378409555493381458415951485540907669201443704832099260925876287396258478334973839505058600029828221513092336349146878640614707663045809878842642400679913029655557707673255912164056282308346396026607202544759519685819720951221626527970800444977391665470386938621210841198862332080958221708620302440443751128986861212142151279034230134324698278122058061943033862471609712857403266905285739532477102456363035576668501349321680685919277766425929438386092826074849290718397781699526987065073238269647036673312872857975303103519584584810122484063228288028869717026824508373718419081177668156799369307246838625805388845755299130500929041460211869993970596583749864347719783712869516535077866441324482865754672067190044359993157876585990885832133406519479061551957256394359447834642240777036001148496831436368231665618803177663159819249983886241799395549623994437971796094149870136941366269393475475451512923262606442721254209329212003257968429106899514592343094133815650394070653752902893014583683034555801495642587911171789472284293863880382399532838138270024556261963251425241726663368175477451574978026310842624917451460285856722280008291865853209574724691259099777783317944373038844355372800443122032762320435245401250902020943675024692216121723919211467055297823193912930007677669686139697745295895574727312790940271267988596210773644808879130443508195845204428851450734132796266383568654975077868353136525259302464762622237029829310477691396118460332736384314399601067294431635942845358655832405329749450751848684856971795923284957890150100756869826552123678456243247725368413473901118945462868523840267565958977702736574728054659192898575604273265413373098917494276144581202637892562670649275414512915185241179328842302316614505404637281265619285472612598129184687884234259357311871857481151982761799088202525325830268524650954143172148983213394320492169037189825940503277394787008197723257429513567006991160941065372512062789006881825066102492495768135037513535117350752538041832490429396973187230474252223602128021208488107969454473359491993479350185952614402517011684984131232451586515439069971686078775507508093114682531167095064133775691934235034980859394986209901113366573694753616900130649850884876241240780969488015879243397972319424718597832302781873626262474380162470633687797940672099420481115771906580087002599455320043354854788182749200029857583765920010931452094848100392658228732656451884334918738991014462994900344259394805242356360911534922574857016850430765312757592002589105742623194294815250553541184029789582436513602984837497324746265160765977092783076767986065710570678564429213106445458992847979236644952120160018102823831356823029563005693190085722979095998416342653202540810402466890747217497960965823418676007661663236521261093032917340328615209894640334012632486361261847409092510546674581395237288567615646892010523307379175439103052509666854906966046645867182833540368220907624707264762272632560046134353203606638980869319968425653796529175913867874610508853914002871784006859585378353135049289549174851361082816875627036956460505449822635702591011125094104265192641395289147223329070227433812589673420092799217472337328424177730138436874382288799974530260572181752653114375148658382564420577126320644777335530125006269894760403086522457665390835680754098979492847222276016820589909812154423586232781792946595425192963545951270271279672434128579853026215159133397483271883274678980732220726998708995473236584774122674788585273510787429810310120116252939276927468029298136571905423006682551964054253120940960120610642137896908234879252526624826706611720129155669623744582964975572637452193140933845636081973780947087019865842467247890783314714643500045747094674446091320640257579272580161045202250790284343766607045745371622064896837023724161459905486776645772786333824272245247299602093834059371767137440213415082157226315339598077626696062037883433009834991795770739814101358922778815044465113887328708767780772136485682172583501821664687071156517586284862100684455143352734208938498291072960962487106176833744578940892789451300242251588312785367290465375775153228551731670174099792749800741623803163933511453660820218396415136664372276606446238397934183782780723709632599205407127261875696428356263544666105308787149144176501990627780932943363960479740212054579812825133712058646417155143827584229218072479594904306514828549176698105614411535873634295639357075605145411720955076247821109110322462989515405424336860017930277824674174310663691565475595479469775899211854708413806038515494883236683273033699685140837292232166979401837994495030421224463453361545178160359641992330469210610254277710010350458309819170454271422880909433189058275311938145224860735655727897512202162171842844169478435797236463706265039039751712657188753211012946170483252843120442775769463471715208143298261138582527032213097102801064564491698668803648745442301599530112702454997198794402426731644209559653981294292634799317246943653076473289727728117589711485883935582819531918012530269235166391789681105036048898821255853015802164580120875134460306749342320101720193887459181016136512719358893827128134519182105172537776700217520841838706946229112277492073087944531896684096912691828907606990519554877911229072584349458972046178564602788093797353559879495071055635848388832571051343528894013768011006453554393324407414170976502924822001356438043501187508918027230894933199613737986120593571798003016551033368310421504067141065078104137096087032200892065706080454651843637972615741927461429524749965178903797727136455027341899650644193138172953331584737216470456144911194735104360164700231664813582142170041604818229508580392559469855709698389842333327557255500994619773477658649804085941626322492217691356916513114283988209741629304597835268044788446573955221965182126450422126284405301649242157385505223807641815879996400173669448510002182048414246282655762910439510413647821324067658493623508730951832920224442983255269319199082528931370274210755659707349026022763212308954636111414415019637494823372626237514159916864988718230403355009796111650848788174152786021312092295742264950700705305195382725861009433691861664556456786556499294944272500144732568151558323837872213118307774113253137474468292281968320256705507106965838501539525374573419914237755463285260350922730662728644473000498012986743325714814899522632845482745657554498544038670379179404796087775360321667765288246236715130523175419009779672813755815375948090832196937362551456292025052415110720886639606302418631377948122350834049983963345333583120941852786149749679840768341968041609554336556269148705722864919679930719777738864523245561158012482639533731925300067457224827436438019485711774448206697845495416288539813693814691060940882410727141868820739089596066015074120891918760972470454344160381690855403070707197883494592814384430226122117009229372654116130614367938682492954361520422423131448142445975275952555771696030390881009645603584168411762181149688539004102180663054484993372882226871531030140349652007290166298499413564421953293940524662528442409688838018944531321232296376387099232834543693338026049011590728346868732655328419076605137970739243512785783291061091428531697911783569768556055099480408032473399850476848050798872457455403877158081755859955732524946930883207301441800320601434014946223575163791735570163947278428468642260257016173372449446310306965611620311628895567619425757075101800623860372749164500654181893113877719874911431159998021392406085051220105208162129469308255321782265848157784997476775934572148453841055339274868617010961037926982783846214428583140618094852703922223292539132615937361306667099250974616924660018486938817575843071939005210030481405222395012642773298437391654645216612611734758373009347656322910183271546841333899797958357167518752855134490264990284031254260735859335205899438909994420869666669880310794997048342319576621285934261952413738090669416387057375599486037178701772392543938533807670249497854136511940322032023840224535226734336493701182581629056405350519726895905452350567471281421080545361798661888148101000005232731765330591263175930227014766412995504128540373349155600894444338459359123812408725271537099368147408471250972628551268995350646007036796050463403606199064717786181660448064996479473384730158602154242837081008619972921439095216380036002517781630886219242647914138781828371827295682894308936704882047912420620356836733564553686417349212496823621699718930711826669449854489690101968748054792567108063814506512187916185462167353372793941977095409885498805949231343233452518034732767844407986160576397047570402110349503359108312419880757664653625692507266649218450305526331506193117772944675310543723014781579904354028700099383888340354545623668886991245819708017634051754977901936698774915849654455678605374514040725352055823550526915021707754204034464455885504355466037942526750961251477036216046106669007951198239508236960315508407725283304288935487299271494079029765922118462404446690656208545585081493586183699033596457035107985003708465025863178861168293613190488914069527239626549624141285336092327478800280511402737824033442264690050613898626657310612615444007046006756003611573632720004263102869247861152357835812424465334905913717141507917653846748763704591673268450327334902054543936916502060110724433832283807161700814724008962346125380474804969409814536390552713277723806597579560583087274793416575910896262277515525165071596864034616579015469545001727263605666161442142475514582192813963730959418014430441395372785856439141617903688987371688077469000922477331207807773426410133388426275113282928509416585040266884940259121581386086776684719142042621739170630057719570485283143696072519549073652486742389788369121843143217110686308995466532198675699330288676009008588359676889403611372423412731802886461523776381691511508588798537374229854143634961148021627210295790431941158571238104261486882158344665224611839417439277935659621185207180485750939272746195279232421206836356111712234876066165475758366390863387740067678219968020937811243390450961606976318047893624722331568417366589744404404120273352381830767582943277818771698927943072629455441831329744187633444725748071750000332130858474061291538433362140728737566831641317627970059676897500244080604590157600442434656116852183810233756059035985187171984470558409738515553442042868833784309510868832644850082801896861673010783242662220502545706063979226080647404514123868175284269922695149426762294038617407612246395980783432101795190460722860904557024913049721571203219760870336036153514271066320902423064516512303917836992508858441623788680206562792900674177203589501761052824157446244297847443526074137437427294939929086871028050014141609049352179990723872901369604155568974025475594161404715111508557863251462541202290388583010314768426576614390290046544592853161041518472701459261533369990695608918621601485730958633498912471919752027607978215962779549645432980520915211466563724272290108999384796606199014426309755353704675128889334670628444298801878601463242478402915661767155063363416331481254930288119657152411354284321600551786442738376759777277477921905743198773850135431747561652300858834769788086212247309273538551949055148737268357708489740483668612677203743498967421281415902988590096108487159306034351805325453592336404928884369621927108970869651402879047164434201656012891819851380515619549488878117074003555731640779459958764169614259312387950189004161398922201088894696510802363394829048341519269170254682244194699662988827580368889572739216990858692664092786640883274223321258415714864955007388082802180072293592516091055385617199724356090909554782636777362233899446612084705336055461981655938171908793915578050868773189599668176093304241619665635446267884332842542770666865452206377624591499688618619409319518963586813810174325226235237490291053295835014137247586738100295223184322529479140148163492593663614601542135944794974050042499061181825519353221217127489337814376682694974232795129132374852693236160060585306564282345482754091927887551046942048438318145554566528397861174981414784812505054612273198720494500954807857937532450419480615721364435476364231616240361773462090187374980756459910791785080234267865612226443750074542750809033691876688458504862424628745352808712792997853051516095313870927948659023994996976229972408309767707367539017943871703658946370592852860694963652734992586079092064874628257413757933018200336705842545275243650959994928128265406336265466059141964975046348654296424778778112282640591889215533883354817212000756765031106400351141186993587751254843755380068684994784652203904206188729933884903623724470955134492295079919381586331958392933577616230277372833959564975244197042497336178092955233099031815641396189934559277314680830622674626702222354604912076573095945760867209963072731985963694142425014114773825588545946125414310823182405354411488720651279416621330201834278287659435384127890480643273196713985522531031657556555882742956089380859333389509335880339228813158132533336537587427055273908777789618961912540160877661155085829306916316134504755305955879245186874388836385691459080932140965648784954343538965670154080864440818007291142058828313141750587454538344827963691801331278956320432568042853609163478436838179802150805922672848910091004123535820460629694387707445520798896509552041261962390082768332652943120599852479417887633905777455677144383518869918106016235254296895660741690200746444362739027071895493903017779401705682530472485236123306746688387630836125674549825730985112588961715065595599110177277193780825939155505016345458200350196069260688133079215381653356498329900960064305561342105509167805206060300974095153906038344629022623206654017590513966242663141011991329097823421729013376568004912059567934146146041668066329609783910702729082456935555793286966339089750966922492366769239703844229907372556500479881058829651175456166273597788137606665191946569729934145860532034541189236348935925221722522650046485464403340074169886858141350436780676857770298876924395884214448471708422451725341486401945732487223991575228159724581940304076578337605140186548304604482967047044538221444888307002639878682831434946727786279452597153484559736432565173975318944987254715306263663828245254726871628326375931007883988376816334993243368931678979818011023976727210260490940526841653069291232647925867272290613247051626664088763487743703200371487886227131097973761314305621199558416597356793005477595758243233156270670302315982025501829784335559525781409069063771202249476657070412788362286013976555780312353235256741847373969782151898472637722900430739226938963026504782716504873972945486469180358108744395675089483078300265851188485995451073599618733681937306779251056489202618679516472399536229363627559874175112595707427249721592422056017662663116386976917494731481912213033407402482871076208718938066987177672717332969859757517797498195423492091644826956384235240503208907389152327598294053788212897881021464786573743936946963496105254938463187232106006447308367088154348517250143323580872581539906768979736121814962408904477365267491502292873385333306618117040309809416676477136500505783439706745310092806916299185326307564386021759559311118774347375645939377148446804278755353475936620581441970767652729830237732538064540482664454385104291467486520882985774419258638706694236917121158558743598943875575959272422873203431073429291581751132542456901864616051558743048715024211683220391464313820091779863392252752587624491421195619368738210562556560471799827784618641546069833530452527628307148080449005039801209134770299497403400500035561509809501745962603093228773848178518889020164492873895661513506921202748918568588257483533571120526580482800878105338090984966490774053614900113705898548215355476064949116600699451537596273521466953911369445965874554673437625349174346128303785517691210752926167073398959264608562745717843486919221939999569346772590084807658711705981946427156713895053107234605086949903953368822234092212262982192030894263407627602983758823687971179878918633875795517226645442666074768886727499662024997736772391592760250172254300948564310463643748743207793171693539795030715873790995176694384328946674570763399818470738438386568116566200085837118329350339466146292571220830316701960032358154447132888498902065404307506847946448874488932391166536377708435349519178983138433343258565237203521225398682547073683652560317213046134200229442562542373981982421726715328597220012714995724496240326676230414986175384018039011801861545638587779655860747392273542439914335871900323822998914238525808266424262693662614351466099463471070713472820708258442907816645040158401027143522866091223483448017443873851501268868698467085286878128129239690469010658616255904761420119922272776116868351932748064663629444243062359868268093377637485876678842048065109106030248033390382909427914562604966862830523341401393062952692855868811734345022230688955351453285679310007630039011512621464729345416406218649989974342762266817108603653979507863053613266973187763061189654577229673586985880519578978860069985878011887603256226124593217749483238256054880298176611397622257422406168949424718790665606585908228787559973706152006488791087595007746743684658924045185965855916050678222195869452890193421931150871743536177253083041465528871006985280102446487869723806136197508699326374036387449942769163113035471445119910615834962497109548166318741552241402885285218864671546005774225682112230088684876013704735016039025649578648251610784444995174503190019442217118485209362249929680734767619354969242462975062686234334472070397280013448842928096144821633219877914625334011846293785510834843531454240694194026007555592885795337527272182471876977809173562207681994619265101646340716043153921655426362698785073170094920955551469334946691675936637628369745862543921525869406651039979763608658046308307248782148059750966479820899032124670869447980963556572039622512754558906923773718132486498910839637462044509197881986741382087000786808232264692602748809153652627112400067814859602743894946935157166531309932317144232769817998164335072923293427304996460755729243652883820707138436004831707365069701013596072744831834928398854815109663829055728747436361933776019803548283774286463017329935489065898933340596425851763044453802161689155826780767158798900138906250384976328657103252619067217455700362545501366355156084199506225626644736365349503201670482991789996810952153827899239902167594891031034346983303262403186162698126037779945911379763189305034994657278990017583446628699420548058188784016519955455878372677742292234580919610898100412186825792832337488282726453013121656358611820933386340687666978689233809677775216869937765893934449845496027699882787282196117490081806536859179762249217201586223863213610014359460853831126804295262845821450995949703701599289368945223435780469863649311744150480110174321807960922336684780734647608678388546762538494263505722596483718576188455500184493043140361636628852695641093722381428007090738046361495350157492169869425365718530668404853826245662048907434860021330861933538042928848941563663253644426776042764993439126699659431655756686126212849591873088558141041841094848883402927766362197813524181908746666771193920981146051053664205498981208538842242842796191568975423362636112296226189799285876040373144950464940153144101321651859298240001027664807155671275410882515066312912652447246070067686783196426141836239502580466405490418282305455569711495375467415142389830720574038926575207025989770145092783656157111849940236199066973278696640902875048193019931672168128735954525963632179983261148976850785367259298901298624414608280298417381166846164588096977527364488736906702626722655840074356831369046370137006985838039923365825609597426492527383206260191014836598397273295866633007935659878240968401456866046845640381707671091107384353305588425936675407495861853937404455380000030310036632444506194388879197166212419451200131276127693603078970243644516501582481555934491133160736313311211296037640988210183701044335360514706953097186438459062831376250574682317023447686019807402305322210272949633553069300513900358240848086128482634471509358300288241707367410886770009589271358166309980070412075265861077535800674971679086874442825984370056752402229120838627203212835814542720860067596340725619993405521471246884119558274300561897172279287377321013247147312507314346280318847013862398101898389574486867480862584460046874108706995550507181794107052968789900318074870209836515211364422199171655094248217560437074938553115096623576015089155447522181946751096880730021590423634295673148051803560520792451065105074944818681343376460824511123531178387994501721761652490478678296136892407600689347343086626992378122617707772198491797429105017945755741661050127342071270813840713159320182130957101714158043562655285795627836814712304008186722060052926917707564615257327612789028264244032690216863610299919504309628914227181955257044541863568064194390236313201563297778302866094762671713812121210551308077951724900810911274988325470758588623257490027078149329698414552882859007363515038884281228073724553360992585799110326139724138195113554269406431693362269781375964484372202930276498818415972492656827033478850562280622905441010470394693681174674935806227895449573074518155924372762940329651535813120950468599847771393345699046548679213636001208235995716327123622266174230566421677139487843050602115948207488121923909962667058625771787169091471675653185767972989779170858450925072907499100114481918072461913933688184349658944579199929313369440407700843603721600407011350019855031665576796945939532667534205561786910941539737507244202171858265154333984585341986494283085473228927613329581212256772748739215474117620336128422919707551110724619807024621015321762335876526013108714550755972745766138406407392377105514226953364395618245942175419387047588977414770414714006975875931202057038504710053422195517770682314944159170148115079159679820050930912080361653516369899906754476406428304341846094084636329260829230113096258464817365821778016888799688449296711926335581323172508808768943310251754262077876092438797252902253080189553795851346894813721972589917136294589109156328654451609033553846958018043965343569361104037385306688847567335636798660965637114901238031344968443330446777972181969560634547529377458629236290362428307295393252140177255356360313433877384156372958525619835732898135720825214400862771231650356100007476044167006924838299061039519559741150727714303064105113479351263394405771165945449834463868999062186257416366091123831167058095757826574979116980235608523300257942489669446918652043508605940010861314922940723717723160094960798984728622975664674255559101168155572081365092337958417308674119513466808584695649384732868296226054922529656870809072894332146443034092162462445580639788769560811348677980200686539722788273339514596632682231405065339920453318363720964179762018007909627620961470675142459081934084894784674171947519831965197914244350664753231506481697242306243504493818448518739014295413391689801388944538254935379745711952714392019120330499057386828945715779375497836287751967876179026625157813405140467767451626701055591925503038940334355533172310713045566432447799489264345935770691484458729416614522890110666279062465473350661336751034638734708009420419472820738078003493665213429876214746326330883279478494131022328776822482057531597386993005987854511481001662105499009148354418593684497504421432055770879495979876218861894060644113400617668590356503817305203711169866396810902771031661413750323091963065220971436360338270377699111277698291762012708352687385019286706617521545202801945848790755593268612648321714608306056143065754157826804610195037305598830856115164784169600207947433655166291355923285696696804256452013685215508014247404755501922089381311351459134118178158253210364742173565875928863950397131211641714808316249057144681483049950958156196171198111841009125802278841429740967346796651959891227716574650082852042487043114889908977075010375297660130501607670694973621805862631560286902973271918879125281685121020292138705133840052256228551876119118718962008430258018588670242109069444649650556572082770573112832986512194165945901362289135774096042428583299183074973464755653203144907707142129548896537066384375986984305587093641483912776572552808503435123985975210061188192468450081282815570885280118267280464924855774016950177435017329585519571657994464688159926383518952991243885046588974072331268247521708926286107821838947502946310099560873786910064723287006692135654568512772687432449575265349388242756033459097637876203567772493904104948208801173439038520592526585902831334768235546278206798915125178184140275711365251751626648451005285208207735759610015445013226036622622050593166819204069679484173119174550028459906974591942708877623303744229579302449203393367783569075222646893912581805092985838928215304881551451921575982928674609949619076783781223025709007009163206459284303963832442293216430378995939911502181245386544784098172243593779034095098936799208867083995140967848665149104125563595832532399548803960517395234904892380434646006491377344941543523764168457025362513347971478814595558536441364387638515968396774356902900055330859398988170949249097794854522389815488197070499230862768591269813063268063128468973266986465884338832757046105902252569630565285660919143664784719662942856200993486933547840369507301179053111292493734175905911138744796738986727731727908615276902557928400323381459898773035508608337424257316981279897258905186734049532299351302252419032820090075743724797899985129602595088199024881829153404000451062184061930833308913562489531971229109254961779578319989219897885544397266626565022019608387488841083978694905649806122798850182481875259551004385140796975131637469639068784902696509144781095560773601816645719920202118733369248087066451285802005655880561762916783366204792473865027923804432523431525277019238492023354636809211502718766695671562144527870008222390871274293110137259284433816453939246083070474272342115097474986399585100580605843018372781380447108263123749853598049435607154769307931684827280792821830692813453596058185200341362873469822579619029614594597271662730376696575118023042118553323658383490810968215670580081478814607473139758696632170010457727839869316401937099087611295049479211045818513316397032262022185215052848925667618817265008878397002465711016785446798577903458113379489346768478122203791166471476577897091538575047902681729985305443539169947290683024680253803298784093613398392204313279446047847084558582505616673137814774941382759426468390226786748885471809238936447706425238114810174351539788300538909219788566663111388174301157197645802841957506203159139846201883112954970538257614132415958789081256027833138042331690668952544476905406611824448058607508520792271175856968156663112758981473078436290601426362403232816322352337748676803508118095596294373038261214329456428769203482823285823686167489168045936044013758540597598739552594882152405547889171066018377358904353280113695145588205129092141845493595023286983743980819608418709673881014873613788434384015376773294945524699951364397279468316324131358934970353019459017293491942858028944613270185893340256363608611232719558018605270357773188602219341492752521352192966265797300335250662041028050159908512452849505732046362335956992935177034155726261647986282947083856773922494790533253861307664856794428940581824612042177201363696343447100734844694230506060033029113521099804786477876832733098957191769484755729372962771554407374397011818242483537196746169144585485184810212116344504259042235675953807091862210250714435084305437166384291340275508609635446307670844763612404584217405700369292309495800911323934221779014938536767697273266094296917282891538664851024722852871273536001273265826576988642720702037293970889500738508726819845195468941315025598858366341009296735599105717680966117960385018976730825867191951350875667850416818002899462377171770759566923274723165974931768506547420557821532518530157484977558955571116709075788562421254704737040102441444790689219144296635417229880066048464460323345407574294928808270442549299704914163128910542143263040771440117494579023111678061841386114358673959758513486968462068704968149659893887317448136650036397820680186828282683439533422871695138610088707994187954505064452142726965175128490983283571868198058043702718554425726446851027918493176356960033291347813124922253507566299336450192125850143982346481329367640776575285252416876320094984831278135521711133494773374432353916841593501792177423726230241056893654123297121253541164753785203616210409663004330815212247677691598959514917185220658540561562161671928431965357599178460688791385324981633759194674537325131880958311483768967409468843738810882986545530438567607805225842096838098356162190076878941320059811476562518929787114983365482931386127408163028510518169001440159515754881867841759751736482114652765770255235760831118394943755113242944327443954925798409162340111233086423998901421216223772106165963505730696959054894283788238378425373575675130080489049079787376770641160091820058270398002005116021501442991999312192504690984973811534635958741404077083306679344309131019844292159565672844331477761067050818455664183614253950724852083115774379591531769351796547437934757065841603893932221143425248361029523686027190011499486844976642566315414855649093545807810479724571734335176411229236853064469938049892902840094435909492235333900495959638026977057625191505314128479165369448609644657806233023817952438262523137981487676947325016669919533030577775044050419603684749409974220302881112801632492131733138348100080978524525215878748155238740939983591304296690710204940849888719052084556799193191451013283325840969575664969328581971446038564783239693774553435223666495310269775199533227102783630384722388715872250646615245669120906577442302904009146305683511780708662841092258042412325149903808752414721067177534854643372432607842157502835564383407026572373291143169649920470858741592266748895148654556494443964643396443219633313856180591738470780083374173589835615219110116725330753710690170292140527896089045161500168653572930452564543028890034988016891025724868954327220026989008632713795563877052166218145317646042798551594056863264119909771407100382675371208916528847505095233786485973854891188972074528671823918602044387708385885652824201208409570282584727242366020209251024556598371905051558975775314318133674149154295064862059742044176172773627245656817178197780599342642331652432413761704886620407782217572446609711105646800769198923303538325841123086306384320187690603087425720918598264069265669920173493948346325633324966740713185020027668011700110371626815385461647208727511576550855322673074422348799985497127328114724663861097330358622163346655166508721846811173361551603437033165231142647494487833192572528034059572698478772899410516580879203599713480019888783659905799302795962713046351428342578688948897088316304369563409373010677834770490109467301968093794788815925174602686455640481560662001555918409463593066137746298002540143026635437190013821148282342784690656937004327384455217108150701007340964454656793912397654562529317903321409417790038193372150844913534824633755739230418390413452236982916317476452271844827646646947412918222070433262060144578746088491239951113788571771717825045215651153076219694585217120761657014757328711319924386826461130222838607604844005322968853075582711848584561856282178719074949171227943986069652290737665972075737577724886128683679267328968630368574454585793429554945373717631913841605527985956955800280844789023724708531507591093900913934287638790276964048540983334572216118212656263350153638939171234776563209306907534831276773869796117197899351621620909951519862601734312494311348558516402790546315905166520140420815113103140288155644162886412734519436547426698179791596722448788076266826838127507243403974863624671660351418989083188815307528563696577371887794180322365906008900290317448864329535406513854358764494841443051161704520335272746023684347896732418369101303862309222293957310256611624064368473589624454496643042857382442403230984387594642616469952102109638799682380472150041339404222626373686909878404902765794701531138497461297737287664399452231582425885036326623928525650352569944921288377797516280518443309807230332841146290486896482946076293119901593422846994637007539462555736198642156563289104507623362785987474917200071857904764510587426553865584870728161042656018947808555837371047038284274996007744605266396429619655550502073157311586893968504339399229088325405676109887070169876423716536052353701334913501259175438303043566110798171599002184990274775173871066769426024641925710506364297395920295202425809101816037745211035183034918288631789808411421382185992310410765584613839712332305549505769317486009939857993901778563085993548611672727081374806367196370348787939991439358196085897297363706256543035008476030389667565571394101931682345287879344847316575556776928995215932099190478952075803532099273027516982995865965213148110895202592357086686857768693570907492023416757241400560956750054239032462981359689124437855241913451715833181970497390777284356566755702262020651752326230183831518781943617010823999989755663801069473123536405780310322316164772519400212570051314119131539283551106965239112454591520653509441982079818828971242002219493765915959856878135913277666008091777542288712755505552087938413918753264020495098189478990456585022390364326478570672508139188470117160050409015532503559104750673392116824040891941207602257346956731499009135925451819967654143384078314331679194616472418923284776211737693937443508846301534079678789906623650270698030866227466818811654527782408080469270628191512311147501121745979724963566602206252131993662685178687083999349731016779946409166033216240010410698168477357747469484944052972439631469885901727682971963884279712234211047948074277816776400135611849326700373901176093232795941372499026337989695634721812238568671391003819886157280056204817326734501770771067403505283020679038023730965740894325231138363269828828386282408049927762575287178492862516941479458411635177428455224441034163929586041081899357087561159693128400816488444946415989355607285600278363748061842379961497944488469470443742185382351079978985717745773369581785512982006432749390981317815195020574357713668692219628611896940963052313232814995100013532359356612616658832099044234853861881030600469712026057973962552453034812439675298272315724052722261779260947607123869292883783712924346221589589255009144718092554430724912597363351478913852823446787207875900321105241474740828781403324831648557925268813301455107964072359018091219986385567145944507725370912502290965724319663685984155262485523616199188429313323079915299834339347201169405455961729764272361956869210292361621660141980828420245721275845416938936308491521778614560016825630295999984607996053013725764192659476826930038635650494762314551525649614813441240680129578671571670122380546553090100596937249285580042792627852140110370261213044450148960625675681027701241867345648157487028039529921962134724865654250525705603307693264665288510745718070190140452055188035145652094116856446666390228236013306364807971747742906936319117807886089946912447046879308750526159233803311119192730719381958419533896925099087866868788941855712770323802348673227961097468025332062091496136326802739693520340947339599469041510382944260428539953520969466024638465745433359100644125746277215968189535537492353202278281775691411430711049227654890663030954760216959454030243835653526409673773061475198393518377665114217191171677888854065958740802495125587312450015663346946341868539358615837038319349964545725210398690920153482797223137398283282807626532549283655482895920479474483620354749519104719440937902014773098401062448087723321348448206770688973394681603189007079991947133886917095405421607822785451259737525518409379761416872372616976347631573757794610752876987783259090011261522391360123991988215263466970068065939789752803612188385569901139592435095760170125565689686851303514102540922869109232487564745482342234680307030344304308392178904503172936253563366186294960124575028864261431234394835813702587486344627684352229212123779311642401122417581907078859378352567970337818533518803136585439380530497011390682355634581434468944742798456258089020763520983104009865229284036539518833277915379781057043961411869788650216484507995302806100550391949658222695223446895897951040265453118027270868341346426588153664793114221640170552756323919887451164434994801272457161662682926760512635833915710651572583709477048227692851745592650996264734596240094772606729592362860082632517912251331542721056022961166916185336249235962196859376775268737153780545768047241295124219310060172781458332251296863010404348616893863794968978618669400830040431713744223103924726898645431669688849903203925768107468074442237536598373335694023575658530857289245609487886904536942225024448257818721923588736912173455014692437669796850779780111898235706510829752608663838128621935780110529554794937420300070252081489135641015888677277752824340159464575524074022679610730419132042071176773046147904228800455090376331600395653046472233842989840980439999531002040284592494344322890808226576926674501695661584438584437941148917126427708595460830620001740346358167509982593822261640972601669275326535155762146619432288830526149612969829753923192788107553131628553870588573666884797249066987875893609401807203730440527568370741359993817406120352491507659328786920429103728223933517316900999359567584843804371845650271946121027955929350057986751883503145885322601585071193074140893383051147520013654926758120063492795895080163248391670846236679464783142481265459852612144323013026880058062946132717559333613781821917108804247623157814901785988126327535002603953491570955290690540620325088251416255684732334631098211019324723311033436902358970767347520523549362328172564468351442674548616598792039761445729531425525773991788475977758199475094634721978497070318097602647490099408245117161733991362131081696476671262701757898230265180358273370127149774568779403642292353328122707321043438299553511021771917080785046049202931234701527874902453781966342683943206804037262206525074537910839078501901461868208870793090209646290625708730309428145735369542008577178407048955755240670399876343174797647960786502834602865356865533339823763292743850920170058243337012715834391241919032353442271004151611774333398507051331337827959419796011798714410933699159626559998244625101109778888823740031636939552602917320679121844774328118558152622521851554797257993062766444858880400921250297393914175350808845921661780333558691213711182431410356764852683157151233899940189303648652145169488247021928679302691610748596429219717839138015506301705419730273258057334093335507835303834354908008795119377616284991910085580670207686013644887190761401300920897958395766787157276695639537440992654198921131146473343000227101690597412594306423469881770004145195064888597454987546489479833553500800202723013239921773294188480602370209115184291658083741165587327898966691835101060785887290602061333834836036160766547279041121213860393054171492875233735245682371223518814616608730832577535089814269015581659430852697939386649409636142855202668005144373357355074742437648670437128901578953950546675083171627739778359903953918730880550247680786158072599066662385015158627547624524102749491519149607738616410121524107199028789386609545337405921894920652320837903421408407441113260994744330707112930888085426823033115937396138642738248081394902053560641866858639360478001846973744016545787417740382828587512801610699214071005927106403164089890722588176303798078906044645410844442681817098555333574736930079887920258005523315099020318073488762659631649595635787443212791748064313822193449637206910663431903576916624953251769242123352128551959406978581076575570206124205829028686750650262785402968371578109892315866072455835010544317626040013907419007635607805548302973484266834212223516146836363458051102640847543461883876440998825411636779267956996750198660482617852013945959668702443719717959846979190561756293776227469513134465041760550195245157985787283737661763951379839373005318104041086243897170841201402577503262029951878851576384945772672283320593541923141110972704675625458023142225240680349070034069918933659360039273815941903741452616743418622438676325753890010982063306850404294638950656083247700786174351296031192310397839784475882966283842145187510595591768875497929891380436260420514297384119969917067879912493895514200128024776555628591561970422125081366083911028803490929718486950205440483810445745772760422669416236061763143330517491358619633713225048453450361658772640903227844497936326931468876754017894302344958153781869102196915976348828560786835726159647414527402089442713528094343357657631625521535139187137943174076198009710806756223249516422598821821107461394080994667155063994838491638634528546568899918833062392513094743210869687231127412015659062100672326799711654525413049293563821558035693069230079161523265281144217005112217211424888241098466129965236820547705255392777540937768204907818776095469881163640573440680545598800450062249677141416670651124370534531892980637602391482653387465470545896563273015080847253163776583415814190391494164243957619170978366782968790670263441633861541267535605001778249538206284446169664955629233046564166610264332518927360340586280389176470557726500525272556669753267076282972754389546274045876869721428243308899282753179357088612557537223742262402514822117015087157570209862494063040768814205817665059062213414235062239469907764573649454985892836805389009593579084603066353271545057562778618536191775091470580966501576568051377758195365399027155376699711073209843630002251168778231919680213257924296536686085768482698553562981357375322773302797154971187322484031346287046977594838646813725982723238721716405157826642221288039255103686490485185148870111224287088476803047550826556664956846467585454393046605852236252172220033998355997291880745909877206596430083559752761129713994025741284194211133217366401125018175191149638994037599162764568613381218653491687291147963533894950204214439634942230483159943982759697464883871195516134688613568165436325088111749403123165659419793444650398167111332078792041617478369920393554278325791876669118670883904755112441829709074668714033774859958127741627374007361626870537896149043948018022482287672328950864038559413398696367696869628270887269499377376492534587527403518857413323899798726760263134355647713801130160723794948845327276835871897754533510571125167213768318153591283959168225363696075438819313546032576486921631009714328295206383971273060768740274191854544505017818726964078981619417738707314814281954819472858729610045941682882598113599088411092665915818223987369361160918869454902929120575493246689443436877820214361853263819361939824259801770573197277380176296435722296893436381155226666849876286123670161660704460055585046140729659655042967556079446542993906924189095772277907846561414074643268850425379268606276240568122630035253211217939692864857677666314668118979334108773068221393587553860073338869381533073612562718436033274160844156327033779604154516411588641796795194138890188743517144416224104770778046340064408406843008019316137167245875479604228531462101947031427973470228775402585417350302381004122566709767449566009695018385542797640402521942929254435269031943978819494966464739644975928979768055677565029525973802690101197287882979784651309250795601989356538625174577558226686074390900929470461204833274295297509671402013646136880453432727994997324490381981926459711403171797178572938645627647518732065683321884344937806354519094863634424461300778097112961491769019765362937050180990009344522228526283360973829751425325009295564024288424821537590960562415768417194117838003362081031457757117706801716906714121470121205484114801949891817435196563909105056655175268944382484649299718490969344958373403736214476622414894381115384437086151744339676779020308960602709594188215462192980951683333005995368986276912007599460195187616959445227079779948868963116202943201614998323200892807362900216388624592719789713450507073878246864344495352095451002556256178814797605346217502692252475891296394956071149000137669947987883393863757384308088748834648757497692710796531996336081491894500212755563871219990041341102241216944305126330145762519045988529130882969198884628307204771267040646708913849459743633932911913854003072520543303674084988066512507862553620640430031085467944604370959931586861495847295098131343050655785933922920980378912827246800744005366438084764427553555863503957859844350158267096383889501336711250828784464239864841025699113125458478050486848174091271242719369959188514000222963945015851826137383070906269754243143885607587859763770729830833155907876582439089399863477496098463954727548368427625532423702863909022280755638962861322556831044997641568660246413332536723015885547391893838607335586791201125911712162206674670051773261466852307467394555712022295064578961642508502460019046907528631629225813504156544702612800155537209255518501901263735294113375960374981182132482880052227060715514036130832612065453868330145427526408420214092906702841018444805848624411318210368506388628758549192162896759989992609515098564210323799906767850605756584059922460783521107326065737619875924947404970604857145608839544008476003325025059883458602226155936740637896736187304086373764819999812257280499772126842289182200359518494840326569311781668370350762179643439548552596758698111718761751286869293607318283138775364276742255682173784735841085780405080623889610502030902346062478979850179543198393695974736652740475883506410791691292700050920999183506923197635144276921092290419070770482224714285787990338148176541173170325858419868628792834939838033719787001368173200657291792885847083599883814004679521935346263856788600165594051942900658699973539122732798435278957113336103596393881822905450766168874274454026233532812732856795338035413357119082407422118312741797986055815023547087852020426529608208459116767168476626696903279889414421183971474956512959821075523836001244720869817634978087421623629715710858657642172234414692258010564577873885514277211135811228486606440555698380752202705465824069857748841812251303058885847793766349530036637029315904409382618259433892037020929110957404659805829290761682309201222727078241286979361247641501374310040428050972390359085379370634913516017877000393108436064901024646407330691217067533587724466118262873563759898570271310974067826692788177359076335959545193821255694956500931539294524760405438848539557937598939910090296967023176863813255972920186907299784737945729291134587598544228095415504836589081124473351681939571962886144387763195233199816595128323040219488697602381560786578558127945822103814858737612435799519832686359681980322232782508181236207219030071274380398204916162985078008914010310472418804526376019885232434588657243651256393493277790639560668440493197977001630617951058881775966567754127235348345041910077761538026893946976089067357255226123196034446079471066146023345385975656930346631517750464944645230270440755991100089359685467026642092088552401832314171116153592100718359155839629680958261058626839268450661348342544203319704927903543891499038103616566991352916269160333773546233136856124083844362408798806462148832459086810001633909158796524204863429787975850984682249772852490058773855150434007561834110463294027794425192800185255898226407574860702479858214522990602100151127084069737903784887885790266339618688827404609818926078597617965877711530517605740957645499300938760369924960320518322307508508269308563297155238824150559535109660642969588178410268482511944662423902612639721118644097475293351470353069961866441932505494712830434406454070420662242302729859521387541952428698118627326538184074666873739685668123784202348092000537673307328238251191242887830320812362551580962887590957162897612744403588756183357615901898863976677786670275436592238034153645618323813675200175079858184690310672807544607760502031613119787368298752857918933760008227493886486673373295095661104811616696232613950490448195105444884270792644226122869627157532311432633017082129855071835227236309872637412272108499463366073257786526152938322448271009967681901875490250287804084336432310416738559966899863073226038261867643211386403318708913210004841280053767479667440950821783507996602061026965414996494481725227776481889076157911939647800924278890423352465798154572668914341696581714855050022307424041575429214005611250302534090356483050877540996124330064219000767634357968119457511961779440330114220605422272502873977599501746232684588177826802761073980543720379325367671974597562500243771791094240237753044609452340126811210342918642543280326193019884982285364722532845489305554408771195623836126244700736818451104031429983780163810828005367203085313798414724238036079839506656138680062037117786812456536302711478150122042625380169823520481136129307277789513740053959177978965777708691200954472253157835671509921849661992887931715063306881753381652814937647755439785816905522671759715043112133875064237133685855069160388386193478144707729385947777798590188223939140736506526133531077059898416333651473756938800686633132987809569494066892896099411710634092264948456400213783122939115881243339391280753027199790434035195823468976427906191313390137170321449974798539553289770840185452345525719884292052248957790022686309362610060957241659696869028467221813893758772775059562796138215786032156846742409738062869556084342236554501952253875402568067296490160671935863644943395236333715135193846921754649843944281786549785948509094966457222311382528305688380273656674411684359547842079757342166807645290305016576103595657326188087252003981427084338780882639362772314367636726229923484288308914826678716881396224923664694898014876895490756796439854415455106591587902359716069715604388066841139642587923299160584762965023257094987922804032587264811611933490277803392776534262424066392896240872167463057045016281097254661556457468876933425859238981685109559993500586529927296787820036442440903521844302427144948483869733454933094926783827649308994313613918905383095143568316578732667748062570318216801373992155019062634235548407823114434723713190700719034873469420341151301861005343013113647538272302141673300920799857422169880987337416098788174311356094805495916631538715958886017596552595034182699955650355404380249689141608118381475585031937050076285759964592750643394557510995938522730518572218502161653462297654803292435321141676320316833089798862349575407061177965816822449038979210267151629270523137372007753768000141080359269136174555853648029486291813638661388874982634664897166248515698054381572301290706371502790415513756177176708291234886378387195550028710269573766571658896648728379269916440637281534154092117095597748638153168247107293445066896847131310904648785544374338205344521566656299906002036286670510945588483369772250988212912455548558051264668000643645137111071603415735363261633195139012278026204005362620002328451163078615346078623153931799792078226774525373761867631286138348828282977717793734970151845308627819565274985934266466765614892035913385373604271251831101052589981325760821122759934017116848439095843179262089182799085147446814088184818044308890909283318450008152117111743449285615183203687900877720140689068458007105269270928604722522946862652457758802872019095839834903317341147731637811938285768901396338753220002391587118402049977655733049546044572748218686817455519564451132917592771407247898545876167403167696841494465538460943296961882727764600070357523598077016097640020517504974801038172280739503969481434765452505531464012122146048987828461280431357198152037034275144573428530491159396099465737160082672818066342880410742312946955518606070581150406558240955006765648162447957638307602026733337112522800354213384424984020177746664750869155275447333904925461509820862183275554228789744681196955964348141460258559961954830224594292690596429660556270818971886812483344986225318804115371738198400337277931833023097723829736689829765279711294865530751928669565281109903577445909474883439383988730724614518327897991532972482881658683713722009808053755555573244932027002504094666373939445715169680330150148341955887730929953728051948947214310733119262215796556043277605682347243644951100493544481217779194419607310854280297638895982508040105458684401988548478816014965601187989566569939588317078757566275868589404782218646029594523312811913061714019557307431032566146103741414386551780653606685628928565816399942957951222038351926962391899385959497309466632057464039467473275398543498325569370026112763852845438728328366971551310985548738850536560129992393928245193672530000954617355226482975900866887342506488169294549020046081417735913357669374743573682057141876716909035846108958801867492079823374924480737074645373028086214119872651929205761652676417736529220073148716592854770876247430239267957609266406325599762561892720614031082087304179723662830469919724817409011181888305695020379323549275589931314708591206867402673750200837014759560538070585775066207115825964545432694496620394404053152505577726568805504596908534999469164099570619537007161023839573872632506869632471444262847329654655335424980613245852639926451363304756908681669853738137340247642847338986563388387443326280391979726368403537140370515142194358302342862713628235343651130657177601650009101399692398251917636102297292026561172298052909591926662262889835870145744452194097300974879332523840153908061352376320366775489912330213087546492173872966929942110430271051883232891478124784962758254519207296100177837310856961476842106664671363743323617942569592133720588606167576988892308163927167935737276697207799421884047964965533832340743111689017990472792404255487463616843947711858740515789882706144776709908833752595212845970093505938239522551895965693620882423836865662687618899698948047519641811731319888369095627569770936762661602184672917261886282649286875275397510424713185167463102298148171350727368245933419751164682122480905275824244239571162180419527923548650931663370781439954068942961115380519220301881202610765655119328900377309119859888820964508138931294026250409418430124355711731386516908994515880098760791909405576283775383094989385451476439751061620772607493718772309742239464520222604492638321557400311194527632128242311352689297138553063314006996625964839230466262263211602083375160081145548514298367787365228058618706564698366430749879206029809336324643287487566389742434877244416080969902604652187773729103708703866823542718012824906908598140849251171746919896678788293736141762218436551157994684184968592450435606644389333855954205037317207206213128425923258215755001597820868085047311499922273200028604386781454506354018848344425551965614560340958202096526247474070318544748193301912798530402816262813201570899504089619380388819350223613125662123693289324186942627138211437485756273542989032390081757144799632525401458321083012121336371113628364036772895585812336080569398334517585739312226733859968399157131645594296999669556337798720329184242097062476437392024616227435027932244533173012213749192786864129583081393366844968794288977792265008688826864383964710034631198588299153246114854091853369288767432115375274350641111022666577323286344054830458901030510811661974003062271756051492760430485613966788660559696429654097765529668406746359020789728248052694459620759694852283442833964239891006095853653877683981295835667651312172368797816560081152371135241558532654205779011370858141795045933631966367697904116413096442039232610768721692566651643132963778661452375606141812717656446315997964623934559591931289199196453010615312471831567827215348803718348045263939180805316826851453440147290704996609302916729528899014957122263277982614612820320933096610015710130109864929126991155107779917484227672238678038386736894190342394701455165634683687972218603467088584423596288947088158319996085718844036343387043434007138451364355584448750638521463901727318620892207401360792593474899816585998215494288968924586038608224312417534325021018891303014105369293531248327821265553855818454645271881860735355385401495869250952122494720113677657173727023577503021818794066167510729659025261290360395300774725575597317673894351726261767652302188901127807431965191934955025689214812631425808800625320699884375760967192667500213520986876964194745289073183134402402983090950550251767211929739036624773185516522329844656380463375862449728853779466876788780690653358228511906953119775079725856868366154699050922146537734913420903748428373354724125143910166889411726499232637855073853884774608589460931713164363334664055252686132162470580861592123869573885218069489114418560021047011237336341817143266607654014278239099758335266831408341909744051626982627858169607589259675151354301580743457394411331157521118261953707179183564765392723969810317849828522810347009162784494157212565885307540207267739139063888930472579688074018663400891228448483232659041460076620407821194409614135546967937402733229526459642339669576039205492497197817919989850942231193859397227778437684744442031148162248441441543965094749995279112912337842686807390025681421860161474935413032056837756537703192074078477731600392211849176783815367705093870423819018562957471142532533282741417381141272375779992820938125019973636547513675253221024457392878483115577018721043792315390468270324770814607695872882594938289326002698707972340354118176815217953381099915652865327038393806308266970167912031423250353885818060031360051069559585231339137638374607150651240567972176763749910122027874610352903624200826704596307757492106254808229303948069684761567140694005996516214577337077363656844346291680426324336778109760704697444818461914668276536404325706147653043010384130581392009280568357855005490090866703220563118407678223799695700916411125908793518517749979775346668047996229977985882580829333403333070501144467497301821988111638851761561161969992329112895849946162371449685182954082749087519997724512244347821937468808429685603880771392511953805742984619283543182486592835097979449519839861657586862792826393541693711261699389493089693127015881418346584408523522766604652347171553312680046729150502887394868235777100576548329933523389501675127903530429662196275414032441758944784415970298897925269826536268043493312037372219124801563919539783263447966605550851013817008402279400969067089090980048300492877731316124098745948019736522181256271026063864540119663518123014614808651362481966467919751824431266547923074427844485555073967196556755117616197827433020078051329302372837190851612458744521094889149646480101185759427560863058566933477269448395278768058873714129605258447721282573838347184893948868275847208756536012842131998561058328358311924030288507285285721776497276890782534223535829323778146336139642561039605658168709268223528238377669402007226020770801401124345291715220318276106176685108867707974179763052785915032759589279755901908482525427815685425883133174314925540031698678636136612908555708957368408831445036083953073905885223960624487913353369439539798204659521297888377337307999221080966658108983503478169220774564322802607610482508031826464820786645579708000016992819355761499687227866084744759405641588087644165620224322419100624414214289680875383101622333203262918908877375075811665914881234436272821857709118060311776295808704996895450158515640234043784297318451577792359701275818675409199891539660250818954020490823168246279939507498191397479195821327471051643324664531742186030108150159096356238976322316394240388836455713850379830565739611167775760328491376062449969379262011115133671125074926208111170091489323802298303063558482941772496095104649588934445179814239551112716944111703382765235714205127822982402717476038871930344289570287652765048600060935258169949286103773055561333235581588214678820434852604347598216827988929368258134245953241547453567907620149975724172518733259484834680428805403047310413239496880450021047422468448325612279438213983769500659989949481311332272571900367227318484968364585484584283970601582857761581626069811062953640457600984727288131528415356757932822993299561416670556717854117448835822459445545159543696805514615162984230251296856743190380693111041072879486044660342864470497560093776337733823151821446054436624315583358989304106973935714702069971474847155614580583050399191131357980545602133559951200698481920967655603627442963418400088201041390127071437710526790542474230416899028832408610225926179995132374661317166861476688143918777162856711518083468668639895945985655614342997210976066056182927591109189232197058703902334603075434626823783690255977654626042586588674032732938841593445588308422601172915276235656945210663411922962517488050156498303494523753137498001083183510066951507970356746508493982795971659436303152599098374286807245919420443420808805272854523030847984841951537718237299281314377565893565092822866777736965985116224781908327338723165493074515996269415442532292805515168162784237878840550348188065434519221471532905213009477878109847694067543477743553067809304511034250224109108724359910724296237516907037550608881346208320759633952755665764874953078951812881352166904374972941622232421169835609787138268206253420081202243137023465695631490034551534306740372401941267710269988554362295864972886144734488372161807053973865185773351621785128632451840649115148710817828073942547960296788587587570080760922884418034055023031671478194100626913847826586751712802273806692543510198781107960132314699979756691550567101327095227666478212291441635117822941630702908608720446343605419310651426412097630291254986917800515987572272920482142905794593176305846088222807143505812535512733947540333665707689607631484683170118836185000241736598759530631780823783778039736848144172255893818565129822711163464121424192183709228543849609419159214478739187925375486635616912899532518527011863462258392112453547776586334828330857696916657677371002939549444826009543116377455045084277058285444645307053924609784068894976859261584448724062647822490509171063053619550135803969613723536554488584730896631334945958085739494870907221613557873164089449138961918666663272636860264695275426871293317958597022582839473155457742370224022081872740358713043052817555796494804509369540319265043179158509622754139716278889646891565574525658133957189411189208506755215257909147657597575200292649399985801359776292192157756678538928325518955615161689107465346896153683914022623267455818977041460922356917468724395092471130522644255949295483787620389322602273341600434102743537371656553524212440396064099559731662189841680535410246811665988382738526723709799469468886090427233825812188192582425646768356283777017631948585013516722284597599623286401912469635198550555105127675866339873967083511594836106262301380167393643654011206023863027179884717306322519733502063235846144635196119164072339968791361723723343783945859563947995169285287877747822909947500569545139547303769927974545027261596312226532729195887042223132973315964838325531203170011287653900729585452350445816706951758209459230159066495470931211206070404524095757491325809366832961132722084208700751290827565639886339700832875678226510532585787611107170101177553610354909578753003589282770572719614000035927747182814130518361624342239739239341052435126321526580463816021964587673901364853316545830367066912578648277241262450212320302946190538476126635689660000684137761429020809774242903784316518168983441213352287872971550573256425693316105225569836014275139144020692259726876355344141990869941670378187034319434215077269239196084780645113374219901193109222940958427448912187512433602485228414082446529128564010308147202263248765918774174917932159018860816701105421359325757469169892824085512693065240572712638403536579968769032393386823776625994029231386873879687089989383466921387428620009088082031671729840220155132906146772655248153384434835979781476623608843382554026884595722632379702617704213494453141427506802528349144983647395432417453969051465846717893750047663217496414595600176384144852593143915829541937989869449578475674950765395325586827865701609770632733608253084620023093279994443412155608259234759405292854109634336198228777360674812276927658849736817985485138540626547333724517898851561457839894317348494934799915436999179019100204781697922405722930403489406002725531254402669867667081621059108018975409057325670598171949983060609140262808806858085911879098548840127323720630531729748497471258228390247747445765783934108560880362558948482273671538297156894814299895923210577409513888752879052681816342046338586156346987942288552340741162070939124060477056950542542643291363005612043640716786082817742665650119286211548904497116663411227290577609490177937340445173038406993936944318879571094365398182363239906542403320154923435822528453845822168668129878450490973788719010592185825885614807763856311359719347550148814824031405451799119025538857385019833685844481270972361949764763243578396275586904723828265796314592755967357668864889220979092110913130612466361438811668024278614524462704123440109096953688062273750305357336826021038041271232181452653178842435168477040067922912296482039725436590370774056321640041641984674473042230787135012685670694974349502263673378945114611993286085135669581266245108852468279603575063392333824395252352323797153885436800488738512306588396192421277181668111778358939662278152380828464164343253249541471182408318331817606008636738428974998071104929274808388077591924289116997630134473639735370490129983037796083913184311707632983347750922447438400286740756426308276471929587106619080368389205376592693299158587475854437894244765024974349953647491429658115663809087309300487701802209033547159658543306665262485721335712575143748490267768066517905326563661625380111130036592712986335037112984992470196101033962600153873058093411252966716151367977396867359679611696804820531610036563936389283404049045524633341742413016389688153949596014348322847676056781666061369286260396364063952755223530511143693311505237509506316574015178679019629951823258308107838562580111946159855249172313534360631740599278159814951512903564919135167044631558855066341131675846285954246540654397965946565174420231411911539880542214427072594083045664717717043762567155264177483526310380546709234811641995570316603816365595075929357814848687314255079788156690978558152626348911919307399173255524455767508312449032975727588230294979225104818197881534593986403045468298343845117388251610046205453383953700289550892171362996688502007804453825789629802820472407340847116335337680883236288397552753742238557555044811972038215257256711228373092340048016841010927902746584431782642037249048195132446476411466685772334835058044247198652892585288529433375774040725848184942135178731248563009808291885105530940424588520817695449309495244599344088317380802686584881502648012435703653157984732297657995028896679039133841957966922875278020519405216448554954920233861753870702872238309902838957870761506835832090955449476678572430285426893419074076127456087022897282111622251913759965146127824657724209871564879989271649308116039893397638572121519790470325143636312381048027739171830196727251170503954418853995479611532628038730667535616814393835482172771994001728604959072862139952132046055008160123095006819690480238918919824300434116459251819164721451744215748752315741807733621023814163949227905819700925119988657517315982344145161597442917160364571111002718620754126398287812121032146780641676153419209239004931977966779792309435049444564139504375535779775566214593844440281516963584482381211973991871025747466250379454329506016177872977189748234420570798372839146150812020268905186900402595225847292588506466970074168682733845366142826601727306438163957318574835379004622820775923752359171005236786273067364089796659839975184727842068006547842966598186601801266574293617786042690726750894174222362926893194347891108027647695989544547202969546256363550003418786487495820962411728140722802477505315483263185782638107187379675827837455315222938156881369941103087248346292606689336045177081306748346840981890210142725796431291892699819008230598008734182861704828361524685965032974915714804869743194898282362131181587098124666323193764975599763664058963050808237423819825097996857340377857531864131858340412881484393274204933470324705537053919962836859239814790327791702542966384415809713600175640140933198406782528433710749661527826317955555353106119958075217613213586067655590185161008932004653821881858382025120855777951177321983253177226137753458229009986219306186492918957781478241339379044728228563248340163357588568399120023074389033415526036349023212579740336094129808837576610911842128790779335755085913170130516232402523467879771788640919547514777066385523882484620317285106535188759415046972427290276344001608855522604179172816372414614162821859224197421284779213789472253435982742543363605005357332576142140917406689787542127637175150165527534351989803205397365458817476432172934617080827926352931709562979110938790355828576316337615211778933977421815285291985642004657536244324819336490318894345813815202320458197649910859850211688322592847740444301594390644820761804195012232283476325889453417933881424056750348610220325250034474848236925134143491968947405023556358101721264377459791135819747981607029982486438956373756344012307649606305844499130215181083448677310736094039707595882699213677288961494237851964847411000232030468868614453063197251781432089023886361829580255720612686477184186530193046373042258001759642350609765299790944561866970740740596759461305509799264845258428903445004558703219996355537760818136213998266969291617577883370080241967331725737361280719186913986803628260058154336446651728268909717265097728874978369451319724389148267649738515690426195065625256113775678012124743975436593120317634837320483845178959366095780087786542437815783224161886352513387395824847232624544816490375993235013687287993089197884138669240645331921502150376219318708512919404798546931226185311476488223825609312089521153779790457025270789822107034924501050670415394292208887271355149863196134107135296324737633505008589484392717515163170112489028395834502171410721573652257858927359431744297716788659117697809755336771556429463037417700869469951514615710392469093814942766442391038427480822657179682077224578844361274769597251661376774170370240324104669616959433277803113928483371705942382188463514293279148361659835054961134224172358346026980033066252234920719508055459101856287510323575487413645455340837151743291162909963752538267196077621718085703597516666409825917293640000783103094597582646301423375515766397589082785786182058880485618695754776370538256480994243474665961540275340104754950559009838841545504619178250098714266836537318170617227879615279244808547662151138235919503347564032903673734034043527744417957861489933516843695057763096168741503818454361986564852270513422310248639315871731126244275635011950833464538054470932745471465707688863460078669094151333465938673187867200297890560211515917908034511885050405496987066522258554179507345142299176786686697791647599782281481595269317843863222989573081624953050068230283480089468125261202386428635877867113935286834565388767659852224691318248752188140963663293605155853628923970718414214431355333596031289401534900651599039691751072622726494636712162203289716335434977023174349490255257759873133793859567413502681412445485033536715264826819467718064673116799686573492954022775108440527167391453965631593163619516145379882293019484882702896255760263001820995450468398641272924570711044455193278870503989681633203641435396115066732235920615657050201858003543457254540026726140699248880044886399887177071681398233858681106592318753155665728446854452924003953952310617990999752700138058960325024120431600837857191579772885574351413813916809982067576752169293186108769150029450051049496958460168747118624351933583604508785074954365471216787083596108856459393407030209267034600458796937628397172889152322735779691626265799689832466706634851983417807279815838056870232088862485928550704556195059992247148373437600504424841629236585122408483693185971159950777882028545041974966680911901041580855791130937408793095737333347990306125219250866030645505772931195076613156108448157834594481377025743546140540428615268290302864820573495429421841488635323575910573794348808621671073508134052147211026567812949813059015331323278768569022559830578816216339574591695405341198394659208809011660553483634003494782878722006716947053670924596522353568594821185874594613109561017455290491982779107117111333268670068863012661370263663944358548575856057075239701746351352319142750279066518064189104661425680736819991491160862514150186094808373833361025170061602874535192306023619954302746922182327340302450244845648399011516884933678273250024909395471189023526465522372116231945174304378012684362595915063281503006868252876206955703537115740906016519015907529375150707389615098626717821624963232382688648210238614361307912739819540830088149085979545494736778991190329889982754265776383478676334309410658045414481835352983823785009736637501708758201054230046769496644881568529844223736859578305217909543553449593344072062524740190960380588936027321655667402008043906192955366483026796611728843643747468951847770610591200302530368300637734849356190834761555452695944897324696752116215993894056601343796290737873270807609194855358419020068468101072482200223226465283198285985830319923847781609295751363214616090553010623227264160252453546108629549860465397439766908183049045043646000287598098002443474082748492859592880288065387975110514491503265550192376093783738294130969229448155189642098867328672873565463365814934425544045501366456839958235866125971838597158422727096809935313426914485398148927675788271937841115470907242396250627250329519461412034823257463706585567191159967402101184387510766514401220306731645329770946664411786123187951520197680209860668458425763555706721983358069819867679516625015344755016384758814385422587893208929774827062256073215353407368991067218396646498917253144995090255843393814942840674192802092102986897607617087296220681982272109545913548150761410603111618910354493328203753969176196556324826900468210847601929813483906558869164168486227211042887885975351809357416351168126216629544797856193511371949163048617983028920845979627840688682037671021033349671657350881919939513396308196271935600163296724760831160913775202621841009978797336110846407433735811674295948649368823860922001435260386718499415328175640576401730030540386087872042249526896264129607886575200291486129993709529474898760897307095920003185510973697333160618189876468973915459161891207492671914995432893324207231136210758450131700181039883863462708433011763319515049176584459215764392842905046696089263421251901725478142834686358155381340464004653291305013072848150298278833900114472201823682041033668146843394648150033897252215029953114710517057374203208452320897423858829989181487552080208314356098261485984017950190019835201613396075168762782096515497694515938693167878918035058181422803724069798378443138977702556860028404626904034061773496343449355136888128140734450439035638232009688965035238716042190610768540905466429516478540610419171631360951839933009109514152122506301932506889352138513120047853922392607045218241198234166969685841232454387845287540009609007629514769686010823280751667133006714143482066729346876223066561751149326124105388204367804492669445700744875661925390105137585738241591614980586290739179476993100857412033006792988212589893972475783398062811614060726840041199860399580403409059875719891430039164464268376406067468643316338450783065356053752787224514536156547144864933411391806806365195777894997253442385538099039821467902230917286625103522446320201732776934708310674878580288142779739149625771235166385087002913277309801830750910357416597105102658921010728639758347875466230233666608031446867394831373388773854543657444216917909597346837823042563418702575496640206920159893931963777069518050031303709777888110399272769316470387191381133802013684165152274105252626217843577739573661177397756471402828507554044917962406000351609827719727150903415121410350924559781671594381383628652200727662723443099214575995599006237091579216438162484443793207373153209219858176962766185457794644499652274745254063693805041377314946051494929859439860895699876245921967025915284043477662350035610977447586273947868089650031585539558079026492245176099661488432858888937249391979626606796537352049514503910167138062944587491289425951212016668896774230682125706713786966337222435070742135113933819633091159789389480885260269831401460859178443477096326520874172277565709870803520120490644752415326382901597897416881170721253175550287259838988790674203153578893128171629072886463206865828135623184232641933516811803609399271641888894607583643386712145910604838096157781341413057337767954776939417141335048613950574718946832130072156246411049210104788014299228684886746057729726034842458354844938262998513986027061629047004308283896522935422537032701795698433718461241453026953121991005366869160467561111950857907450024323309105980215551291038786092204424887755549144577728013523955255226468759325862583542883740097184445784266614534875334180528744060319517359201981353252007612257352943300404510852394727343780007005650769092165611193603033026664943847659126716443072808207837199515075304043430270502521422922658851747203880116539189187105750671262296618846116386890205604492701121103082954465364433016880430473166777715216626022709937164697155106568519020869614767712769037699731900760115450264501442029814396049064000865142985023200581126822712136297697557057772315471042752646303271685711273642504979977233569292353233767652030182337509125953508529209638296233467828717375520230199043742827172604825232633035793743377928992710515825958056685602775191615736154668005475359568411368820035243248533346166054057425388569221386446723101913797888399316799719868120242410966194094131485335105209753523852604191608825247683612438805918218933350847106634932597738199534527956665696158609004506985731622973163408834461752761157642520519424341588135979405832412464329390680284215272114233539508238450665138948375896833077537914631153248297873109422839538917705531948417583179616733503242063140803735704788857471065025755665621239285095311370728808588866821828916557796141022306887620790686590595243758617498015691486825616235340136867795332775230763021479007372049955340813535990730665584111729771903008619568701683979550188620356004077747594534071665483991462638270854313809154282519504589333360255632570713496148875893577800040018132085619222524946683789977823164303727582790898743365299822657977651557644462526743316975147691903184521107536036017936826907126931910232467453251482629020868151181411197138499195069836718071664124860718816489371707314027918155098887035716107887139774904783545630403788979515823638524836886196375725739616519472632580878914261556762801963333091437372797984438391928817111446842288832483293958932815418203251968191590786529753299411992928518081395886183390004208072267526937219311799705982370887054286679460699167602102619590715083780375419280412087086338220742884863118340906003205770095965364393957784165572301369444831889853590478477081385962869170975917195232916062872658196846168174392689963248527226395528112194747665770677298252279459983634591917924171240754114248592965781347004293838456273656957144643628485036609477001541751475448322044981058050994899645254544416235224061227783432740721175604260413008601208505181408383488031282942449259036835067986178247725553453156798455532422582927457858726648155997700825759463070881676970617341189003238142560075853286481199813824920562095193810464764214449147700162737863976179959641392416990505081112652557515453041976338743272599158546962645510799886549828199321484583355704074965692421928996551003189121880991224854716872929581321082206415620434534134399939376876880486962277324697029216690606424536297636548981157120565725854345610783107454302538905493481542544972440536055158512678178233697721436490311212656831146222456308333780432523063333042162884537227255341067627344181633388404564526518493898446770398257499954829037964784378863969728471830020929035973610097200782122879533080939657177242868611361489255969296636341608054805915606965843080116414555134198909774879531568358692926297747174238581034553186241701994480338470142429197380964070533442183068530404886371448571450520113404662726413919127298460938648104217311651381948650388220187382730974344536644273130518851070104888217717549233404257904078770407982381882044567723517947539710281554387962306318088446627669592802061612002232195203657344183083986799606183937990331957558265780222261271494027056345527844090518287889657984113307348329983264397473491712500403402307647533118111774008863761766773985406620432897383182619186502541611832740095974834443473963888430353136074667488733812083437843492427720814510112178098550970945326850387227469428852498883554642221492413549233812041522616677807118517093051200936842117805355658817603810714575023111076479203825195898779444418321873066925389020965345853316457683593229182228328947747084660135662828620492084482808481972690035153153517355285594274208358241018612424726588576423125663125903507052642685035388970638409246448482753436404412477158585595618107386167913970396371166351334638617955120979381581481050292222374537583565418157386588758193409202645380963589089756496692109299475651998533823513091741941079740333911722110043620757481554949490066711778207344260751543440475856358570830826711154587308373071667849070209866147341969767887257033594861359368778856384141340205726518661113425727259034286110215917672064886314987656283684517051957413966393704938461668874628564915062591322692854487048107170548492120552743820737918897331441154358057614807516490522669857734394939011722248269221717127627898667411423763484784809872098775904326498302173739029385732003166140232077566506827632415925563913350751793687252822124597441326746480527267935292933506162320648712232993388923747004933437637585094470263056566714792096387929692699016365733566299500211292106574844096541396966157853235694986844998490773227165763441016475957930818740475835609689484807069426947853592417126951274938429562271668935592801419297715822203182392929281288034668754266153671349581275232981874674242242218868723675426821419680873182146697268976823309669602165575392153545951857651149753416183839466003644754027521600229653866162347430303934434173946466677657185670840123973004338718839304577122159727938035766529428631985517395534676342844648469663952719899507148146988788926210326157676721035045906106318962851951466922379440943314421952682571286564619923042027520832943352106108117553594840749595550708229826994919578825670993066869683506471406061852873260849184388249099709386601174042173625892988486759846213530987734338078603874716968310663532137391765311492282933860336806868137546918757198071141056582282847356568925777239941465256946727661581504312559259980186703660226035126131110875316915316588742004185105744751640118797776256563626145428932399393837561865721789304427678903707290946623323690077709685255276078067127501952164952942942239145755590460860772796337509681008299995410406199106824574985832904424645985747440935446533652679058490511826368691120197707744150611596490223811901955728887209253052077627060173327027821480446662528805474186570969354683134642259901344603902360310975507071728399672319613505225246690755594766719049294197483415068189491087342658960675460941142321373552779621266425658245067979376686448371808728923200675745515953901193119094496088501310728737801690889803896254149937883504492290638669162670729646333823002975863306607255001912193507630762038084537914799853929296834108903040845219838048459966776330531814032865229703658200299053870565066115954485616300626812713400931600093379432825051907879194044126407100732417606665695787795090209807482145948589674645451460083114983916394784228683744897475290568977948072246442449791097815261262031071612624035812091219857656750879123041586420712695533599602105484393439923940816483197217485791289776311970280680738488243031015042661124964563666859129419294923776985670202421654476167539548483282484885120462540011954564451186141109172477973921675229867945284521015184714657406940324117853612386743706566266544198351625362510166033436328509562884013174125030393053371517544176437854490692929476142691273560337690707844257055105368187134507530060023246505170529280273997947332030616669554574908784118866281812806028808303182421727371249923699182808518240786170339109432153215871086043802220749203352849958341891280549031038920771270249700048951461798143912176773076225116407106179230810445463022014141062661566334977061423780506701649924004938695966762023998947479815190717739726270427240479690777229350987458788871861650334782458443685992764775856790779511365560411461103993609965334254348991569396658813797484479918201516220644435723695617930688110697361788046481685369833170807585495787492628654478954838129449839149419617482829382262913244646445179642867663215740383911753402453604302421542026133962195379862388439276235302886905453897592924535298053628386884994290276045933293795160604165761517960176258219299378573649147214370949291513116233572699417249573753361681933310268082997120976558558581486830443125610904153044826963390021141498353003609149620793899251256987613438710018803056271204319821057841535471347457900959971567035070200485768467087418292013506735010816603108312393807056483408696049982530457573355770631773800027289505339052614336960112224548518163052737165601031567902258030819924927107395111052283547329710539841909482886246995202556274020511333377380844343299713313573703999006880268675919701124785572720916994162804188193647445139839338029990205872840370433669821181410008815746552893735555183563375421210221880055663511644797585752560604057938741744124518684570445758192910205136893833226206196949530198424953857639538607010862295157117592042810638752682588735226924381846437228729735554099515395271967267730014961693690320205265018211595925195786219263877325703914810026105241565968451694936328146062097292966994929702159514040351732514131690851078541102708082797291156394326765629043992780969124463848165952913178104518810987008954176034996032676540137108891133781852911018717080977257992275212300544693737981765353678473030595824345041572433099728949787856840642633224769741316612933199125583894081251877451886440987979377235608967217893721736692150367260436308971689606804252915044583751372910898185346841821853936862712497292222019090356736005202017655534426521927127988395903642312900875597118953247129936886687300530407906268946859207017650733539389717036918519344144440021871103853017659394744157125508347869191871562961381588119198357777938083340736758957409560937233533753237160250518038876397933616199571880529009415870003721963345604242361963920541538014737804048053529162818843707205395618271295792953862983883039369206440059293540086469447001546334340190249521391974824381828831744910480980967975861685055872112978829765034863167694723465132331829293328504829603420967318846056101797944054852499448459616270998582885507191320318681786515831229873993919261112946110244501078665379404691742110901361661165022973572880619556003511664196160750703342332426556920003533682695246400339031782011433648003123264135515913117502518215522695365441414415961616679552860126642715483365911330098968557948646897443147149974728133563297834310918668058232425531706233955274996547152061821584005523891464432363473971779713415913945451968313326498693832331946680347390683246482908763362200020442431631807404880317079646822763183175320359158003743866739389352206195019505663282657685764616623498085484139024576030597103273057222286448926727645416357847946131986406719729926446141278577792386925071882816174044293387655031898020214548357943680599824787410027799267111490185344656888024581313002829867912190672107055335214421211742765513920610487981985023184489112240621214252443339542571922203273556869732100133546356339841525797871728475475021689036985788671982394138801911256626102404597483063484001507168821958489204480004298799919697004680201179399510563642616781818432005241451047350072285933002253675384726820260705612424129629129584284990999042603460573979938589881887419009084850193501645960373680841838237200327812345362934924449687645305220890946340119870047952106222357529914125639275370754200145809034700078553706234980326496518941170076781669892795650715686689749617534329128141676686862848296799171204233171510295614071825704725737516943416348294882170803299745827736727415433312811840362945460207778137325839702730982421170430761594364001661228319047856939116800257762319941164177839518527133078085493129463793469043909194687304213518485190056943429808538019160733067505690196623485182173497379041050296164356360276361923566408048307152489693643362441424553046510342902822433296295470431558434404186127565444531901305116722375103636307572557850353470343347419422284514750818285204641697891248197787233183729653134253369982716583512614904554342490056935826249916949411380387077477638091864461672633382862731127700910479882005760195784794130936489087139200055556379033724025995509104495739300220375368364378361498705014850133507392986748596796609508946501414407413777360093597182664186296210759236928692560931206169892207871226122478062558825264083584098868346290552666513697216620743349935172781541079090774564527167765400905832477897723231014955304996675875650338253784952345178813360117701304333777378512688527210267303843832886346105948059381312187047111470816685653855140087519953721902454509015666394450229942924425549476741648154061386771564955169894063450957273299004277573873717300925987448907988271229593121052892628672558290831738291138284831342234279158323515020418295820613583322407319999438024590629155004379346166305662378142364965619744996867572389521992002589560743687919487296690696074786186158042188064748551834583021557968293338782648760668360822082622332833361302443503223414358703877535258741945989432711986964513513377198839088868483963458874866791532352815675726097690352003679504736053330664782130748875422336349817286282490518329358854020826404385843478133030251372563170446086566437249084560210890833778067439259463812885056837380615724393716026174416977284272055817407117619706578541032494391860065370482835872153307768562185009973688323109316183197504801422490498877232683662497701744431729537603009813090090841877843013962588489411386996785804315939206075789540242645936131707455566403320121143593736414612598645140318263560565010566154645589210261789621320566203760571284011924033064829407985054532706543982913753777562709450029381515695965562621801013628324174797015529833720164609817113301080409451363677764605247720812152747886146567036982794382595143682979251248477494363224034236489829895661969755563209928212396451230765965062359682459783791529105610150475075019700957421098996280230855695487413935361278098328846392359710273783104158225850707526830469433440213298939646017052406344598128706737586122762666493080959544535731821067968394506705171023314028622793111354983563488235138194751406736180128263530866910308976344278463323122522894204621117348010807779213342909595531163158647648060136802240190320106740951045551339064423149146464451923541025363137318074553130363348240539199244224109133255333761870789096235822864304985166761745992839146222718645840028445467514755811956442903665422697064959605508064304777703909070791884925597322473669652243803301285887967662126154931131221907878173752597876447698437396261174050892577803846937656751881062646338862090919876222261393743218507795283681639669972531168372487821670229932290318267287844394104040766632187913206750068071894395327711610288811389794613591647310026313059899166368640985622544053783164525271656988327554751107568807054931246697957068035581768983122217761834267433590984347576274241569166170949050945197936100452972793464444877592167365668358940792215786298489519550650634579511736735290380969640818540273405558602617141089804092649715356169944612189021795199410488645540761012238403646236043152903702367389691998421584019873425335398422280169982853896500098598986379420471174341707285463535823068175485763333600576304301271002985526917079953184897449510289489383221718018496788793445838650275313048697758884588111868004355311632899019142858239260436337777173241999065664235375013058058297156729607304148977126290925631832672231673962285581682787555447652888869278318548142184515707912356952234296087239405241474065227215075429831268386072269017997651088373271479918784624231837359509248892950562696430133406477474997066570218034975927496181735329283619182214509697393015710743687063707899730591185070671041280715565015047131115151591267609950302901553465737259325458004303044627097083162579596336397462076755772928167438634196406990328324925699424258174214229124869039436077192325357486356509233498424248129565094061711177898267888542445001079393786889518033310476574121586209209939499957939102700345808975882632394898734881564301402695245925141418095271365170385182373183259015724138461881276843435425009520815091281760404339612015380832715732440370175591217732981526581104523985850857461963414090837865165275128954993093996352387319598736632328352585065380907296305598241659319624991817328954104782097680329477847999480501694622788306185131613395973830929218257260005820556919968187447133534686126591567307996348523838247000537256055515238675615866371757002040071244500070388175005834824603538339634032572129183834329056310325758675070387959171227454683039843348834813331604329603463409359615083192570826447497494519014456989793801759300867050160872188585806588296390687955983920324309252299856356719887756806809019115280497170954068229083190836701120221679373506380302106585451233458608395484250170554882878815424910975966867317853436045659471919503035441387811886594304006671047156270204649621866714534769785064502277273533849926066960010114302633622975841225602966223992999453825525098448561685521302720706123205286077328754921239764920595359083751335073755326348658896499470275511809055559471176001919148582300640140754306397326656882110226398191966427215508739604340657898256729425626002536852704132986136124086515316440629153650497649804524422666212661316222565541380073129393510048468416194954779950869109244691099195316276389754626089344948281822827534598149058451112698237154786473330407860228625476066123635618776105802357005849572477140305637307099878484856952272893586112769887648128093312629400356408408184984551941678433278819891164488625018790497184709736983570114616328021361404007265092539953899422880478719675104574567852356814327963350524585274226812058740199008423313728591124154484531101149180423531301895257603536305306344310998977735512567024927072622259694514703060995235182299406178609036454711836122629232546166225266454256126214893232304678005453341187525641792670445376177639324655857067053989762115722135842296074456278193812846414357940632951985613441478398421584128522497934761138069321931629736887647851124399553147387627512432004714651857066525611773341410400074049938578801822996169767473082361345319944042451236037448750114405640219868981338168429700083135723509962908803795321438226499548305995642450121954096776470776287325243421496853290906831417679139773133567079341441117819747995008933494247374658322019126135124188751721564383512140745894823265232412684499913445067179773049756307270016872013313941112858315517702378462143242530605710685150275341132428681339917865116503986487921230007530145241234679547981736323747078865472466842078101768505309131751356823304174713114427551831888905220612925769140604537820691532495199522114882582434545907024947884572483703751831802853905146319978227919785689953803003090615883248261778287300847265737490275890642619272289525589552644214563070774401423856912055645683002177253187108790194755636695865191282605799880762199102321432439278516995159121515542231492174838849619537989883309257304194582454744172331412429086016302950452153969402358633024693631580528509158785887394729977757504062522563538241575311490463131560130623528322359467291632873784894861480943518593828539481674284950745812000921698543866109171501335946079135225634652783713300067346636741814800808270383984842363874659750136599003840954585128114005121764142210460153509572736208513856922870927275611597096874248628402188718939066779707222080613304538386755640261557848056919018538885156911442606872872950696796239900861604995006533824808809392714582842354214288687468724723162848898497683174990074276822731760687383845519173470582115928830131987645334690183519617280329682349719415690717297118196238906928479375755226538977173625769966851920506519200206906679303952208772430355442747773743984570014457246751826426818902192590947538475726058783048379904397303727188682398599503775642947835880034924227523149539512355775866604542434175297895608857589558664435566636326497040315376349216097671706597992289569700202410486976244224234611288597808473528939844853329389129827784954323363335041962654197912830365316750514457220583192529905407742406022095917056162172996788661945440890171599015340440159459227693157329660151439318801487517300364122216404498665402545547604576118895725864355820337122337371386473869500921509428927250764662924445976945926029206395704885068921988296500076948946504214584609852105094003311094006200438439359334654219784471870680355820956420067475216030152443703968442541484995243500757690329162939157841426807600811597799557215398382749826831535780010232678923409012317517527236275592275658083485398183583522423570199591459323796260863616205219772112072361379169606558222136155046163694525800670034959705486802376049659747380741912892805547846833188590410117617362542712503495581818947859344557688023507517252190336901708902376073083487295368042902827747899973704227115754339670887079404995564540376886698436467591562182706115137631473555260901072118030563866975806356664296299406782712683656609171964704099055826546631682652542642224206016858757373970930886352126817791942261430274395526618569847091170606621218726046687411929772838675995977886231375346397122081097603422053343671926223304641087202220522553898683838179035335407209961456732198378887918934195475021497041476814824756449712395290104274177364600113947532229275907602858105457828220814337197315364592713056775975921399328215367097873451245705960470351972839281196718335317257594787889050151903414914890548026208277994679481913330807271900952742086515521616734712516439338868989883616060969458516011931385913474337213106719580846470780262243351874377036983127695482280987120865626731576894147152179814487029125821481339094914770451553294124825040232210416999015325796565830303595282313365400715027830461193047991635570142577039839424067985631120514251780024670807393881291644440383106102513550145450789683397006493521938788754574175317585690756855731665321210676391530843391395056953639588829307852398861759688250862981708132319215635578562275321752517001782442395526974734991335003914201850801396073615764859265835469559356048442086573565539681976531796710703583136380402570788546752507366900102055628480032672316411649442785991536210143481410308097381587439767280337986149390592712108333424852221338423014423405157281526901647683955127230191652753303314420931226141443269288144259545142086519307800745833591708356355845513225614017722545093311594569787586492838975994130093088503055399695526672633989974729684725881027194005668959554587369184225722057717858706843717906507545189961416420579937019279134846994026332972914296910640796524809536267784114160583124529989778953955163703336608919039323971121495286606847942988956432535721624826747296698535566745593809933936253779992418384632241685026648718285360508071450102817353431080715576580114580843859676390675220686892932066460075858722649537323992733779602657820026432118116553174234306906304377061943262297378251819442257334169125026350397802581207184193046705028965850045815476694792815853183065775124590181602209220916502261814070957202196625057493077176838915603994526317284812970282179116435707028112836649264408360985397801265503994944797885955686742285067434881423103391430608836380010241937095654518450462069939248339176816435236849470675073237084853392216801105245993126349310810722988288926974766142973223666893678841107288483075301726471353543826919450935175968846470350238194493475182021864281490392891795692506997096661911687954417271134814796290661508037481398373349310840206460844052836499625420346166805165654698952068731172011658313437595715756792669683968051886522316954697698923366308603524694221621699184412629013323028265674200696600850010112044645847006427711774775403462282960708009460295630529606273003110839552880800951478708701665402059131023867486267352206566899568041278328341412165237978036785563528818141851188910450500387907288942291160206764561104523488002764165304868841634251316814603557585892139545994493195091991058956374396769004458811947594189750262008893863688525205649610978131009455554604690499053489626588820573854002979166201216873656088926235192055370646887253640225434826026172952753105197553574367337638894831824016075940290860247209586951581737073967991648387763492104150914596967539391617897553999574742574347717515225822255103380720144525514494107074168479172487380772227421618558276336609941539178176955238047696567469936085116536260037069068144789173950122045885395055536919484753536600099013277715081986909217278486263658472421815671265058412590591938328520253048881479155336849740923982739056371783901252571401178769188440301149038163490404651160612698973553577104835460041024274976605746229504829583405500947712987340815797905465069312346319501899975828930600623671659565082342794436080695639116310876524239560836939210539765387480376064343319911962788173643516613389816883022646056573586094811331619559206862758224932786215845103756490518511184566457048707943536121401528942643437635893585163034766610977149082076454279943128377620503715599172420965649732516898575697604733369917859120242248612870560572471611868025775885199208594561336279924150164382500047374452935763490014218899775109857956095573653842140315796749837039009352895510849680595354037618420639792926668319355736373393518976068273679553622501749901403637401404034446449623272697044830320090923354877849009762073359152460703846956909794848935715764313941605334480643546613984292205237110239787823849560427274912768257082330483546701400431803808378868820604869234513255202927762612935682105126771803428900569451114497429572418783582511683443353147523104492658062142793964412365116674159042304364712672171373638403324853553345350975063423870027512829016882087090533815417215095141225430142966400684660915189576745716738897186176672181424627483241647172491355951126825587241733554746233525606538635831356573023769080689633547348769031148806908963879534981248970823985515174636273571849427899246679299272938364799890247541134492779662219948582505015625794766009115868287459854248416122872908250111258736350274140385708535367521035628372058692152505902363925170871143063555072671441702412978303632861874749720161935683748943377592478130906872270034903861805950868251242447818983572998142301955033623636596245119619883149550427371665210917125485149592235655027716267857713607254898921966417393894856873742877544226324566224972491557388293089744404562832911082480508964344031752785152210769283495614912504725929397418536327090129849203898071313012938633899975078112599554845077059306603285546805992324102700580415407987147527860364224260652647642744436646000360855346929797300118561730332572227684897025881268375138879197080344953375405957993419428876233354571008459078659554102452196513799174289498335090946648009673689055246452582990272978248776451364122308505858379115197227032128090276557181867236885971868905142192322184362121364748995955979661051530921948296159051736816053617281651179406203557104800050378473885708125860240201593116382930064256732388917823519995336637258328526715107298389138730900140655576518709352287248412643802144345390626964161041684340212893275664981063576407181872651897912564678493465547051921304258337318048863451453371938397431595279850761122021174656916967918603893584112174281797937734824745393129094438556134611236282880577825655754622258702431274740047103479381894832357802722807311264481888754046750011222491333949829377017403881138973137639278679656340972957409168632435225965595864100440260596014508609288210042354240969498295680478986931962781167196361398542918845199501554603802504848750320675560395165982118250905511317531139985580952460717343451128020056560049357319513643922064019097209444242082069465791850258303330001622183571274782085783063654004054833339302252884649423855678480647400273072641188168619716953483905694830056237844558658256180547229297983809664396687523027626804064076293994317894970487284975866989804111800399217399878247410142340000440391993124872530663845628668577941538917762098681381195294967991018453333918100258492109100261585857857071197552365611181688828672068705814547086465389382131379589926753670118197871837371830376896296112698043416171377587901551470540888402443306108402149370053589969665570672078732446221960550198063260482638178219819790099071630706099071474051923167008010358716300331452513778313854290118386910514426476087192707492251164222954781206856319808595006756680386352372278612592089423520124591521412917352647463423773488313574226133360257923304803829807332016048779520626184114505482849751446212654558688977724089069564068277129599614899859508989288029007080368381552344332001199141983793248708301004480578524201123771001473398338055365101949629048228887798935801320030588086091147616055628117909682475026638079806525188779709360957747731606254335456232090275385057161499835253090996530105553854398663355024522614977951763241303127844170204250298774136377690053044785175379415976502623963184210421693063103160128991584201667759308378688163650176256339868144556959176662415694822534440199524822922010199589677536005058703669760230659764289613175359371809207874067846445685655061119979081600124067712138121868096932458691328395918904059856150677147916704412804694773894599153560382091069333283221449933034658022959143507305367034256847347823806649764227046959494910749069542828711309090117490555842722849220398838210648494269168514911664636411187505299581407519990882965729151948135867582823398128244681852174816441349563548036967187384518857867783318299188450195430430631760379589722983629626449501014334684856067282032897935040448790865477026654961051718309058521464393914205332262401261252166056362136157150408139214128376087993467919472543385088810215705184339172472717799668884376353445115458380116714505298922838380943454103671387856984385703377775038242877381830856544931795656380909633944871501282528117761643618486505061410308664009995663462832104544458366349502995734251114012161341247163802002682328664166307758050420765668135987157938646084019850401008556942572266496796857292118665827356441867703801363536048695250048478185120038535573579849320883080835520292980456885255159568826161940443905606688967174630731394379838789319072654407849530612829365735793845280395962258528364601069825037386712120188837725740794523861385259556003073309085248039660429161485838993183636904436563798649927811782232396042931371952244374080121781921193632041067223976111746657070800283673963881041113580037771917721115362177225563852334579823091163338645765328109935120723841328981306082692539147448267195920311605144953910062372737523645366311122290836755007228412364947343362086696440252086244827854613087252723269232298242387266652794166855402676688184031843528277846495065001357580346246795414767187858152022744212706292360013907437113896321024599359240802149035524226285179761877632252157199280970970737989542700941535222486988683561973435649032420894395866358935269995196929140759905433159180637574841563268164119655834202534205227861773578560460196365362203531310366802946538861409829835514557030319936221085174780317507631615264968024564178069220308261037660770554528486870923623667532351783538024970070382071985771427907015235903528638004112894465712435744867863563138678092052087381699884762984710066304066840597131457837551036585904786853843409874385578462595437864437247561268429936325015768572372481486670877323684111056115766869315696619393863722832137097481440954250908320346409313994811612926289129383040714422150395480166832697802836391515654616699782291212369224858395707457344349825537032603229139391633192283292014647397772407156511620807223756428433743891721288086378628819582798240570862782054697037177237425339411899947880031927725089159900546735956680171891490456009903591699378898186882959675726306661129411589460747512484355516345129757407549828747071932620642521133177335107314277200045953293908419944907783012319914090631244736224107960719908057426659576729505465980798339536076719931166785010335995616529541861163956017308560683463685923145898206324740422172429582677584054151984027427277644570526279860731706262103796220850316994555736867982957055980621207265597792861723191204319741624791917310325646804693574889029724763492173744003883394810694420112772498679522309820904756886914722677293116417576703774409926940083687579442663416296028540153985243208749243559844082269684522675358377132469874909364997520112822512419724873608968776051090255952044806429046363302717815303034098303505701057877199098657098527826222296956918377315892559085192145563842091671576953850482309583658964467166295688143825649206230207748042365856835718012278923236601491373024031428763153482298710948125652192346636325207950554829042328357211647678556628912905309682295751317641943810086675395032825653796413173977717979720106913339575183542636295960112981671484669914540968130464392382795044007845023005674621316445408158940179258504339091302760079747647788312708456960618261689680060421261790784851157557237780029278812444280118421882738748307043313194776350634481623196889132866653568782864454918747690358912905688058108485147205548137835763437574886187301203388158914170296760954393846038210050973945002544317880396900032510996467642529476129036170589670225728584991885964361304638715148228747794102974272393169588090214513651353335362620081947330640206758162962750751004286872472240201346316965417718879622107684288779911519219042153505845932244186432140018516327622507357744227010164220611960544471942295618974035750143964516877660756294559114545310694157102445208057287143230540676379213471069902267340107318938723877006838740243136931187324820174200689120638278899464212199748473594421414035876521359632771290525303292486536060277147991370806727025856416059629241953887639841367693044425731639823371312378320368133275939311001367557829551604999660095173242655160319095816142023492605441398602068914127086188415920009055751848213202745383536137922783681307658832261903069219705659926968570358073173467171454223283450780011554129772045510303431591947056609944401547313561111910401031920584737556420617840270235394785853198220644480013776515467847541916597842443356177447042754465111141679113104081510198783138732006826024598688474951431417254609282146556874235894954258572492822356325377177748353108378118491856673272387672457033967753420524026927864246291087709051533119789475702449424812398828332241367993399715196692321486698957188113112965052918373950172998381166577723905999700355956010402442735248498704322887145782974454960100437191286629194385110040172369095320178437190131067203499358144581271689614200506411305491624674648507248635997374430799173549454843144966619820260697927281293557541209175959124774482667874107303004942917004392974142371348093801293560235540200034273873881537874934291018277683028828286193019884169809618879195473692762794174415216518731897035582365776658497845311173406618961904579032808660556619358731493871342871589447855744441436691581491236585164113049911586231993668244043185063158420723745309758976159065686414424661405892601532636549661355701060877436348116253843122408880024840797443531967601502281218054322402756233346452340156478240251234166873898926569122532022233065275885129796584154739157534373260927326432443002119465643696312523786251916803703978143884178400638439343825135378864076903439669956974220067533373284718683583684871847313886160116495038867539892699958038523671725201141545610661916822759089819351943022875966488086340686004216031855845233439880257806263720332827249630386541133619503250559198232519556759212670735715181200715435187917616221811401048571147782085800911140089015032450742968550167742189221859761186929393589066410750942168096778170013301417148125677151468436974256284082368327874918171112801677931175913606708318469950175969827601359508170685612454723981388401417353372976790831950094531462738929976153189680728658539161390548839532220809688204139553623247902011979409219317385151867750498949969927375507415322977437809109431150288501841656499820058196718958471387699781217011152217556426706057243741115853701179826203944238139041048210737847496646479714260779189977083888140876319349924918120300351442484550990846272971329628044946390612128255446367310012143234132047990968154051304181608560470342775151844889654576140318395295601800591401138329857401932078826249019097365758693453024054304399271984862231804850738427166443517200980663647099986020280127850845269899142992831949208357248948479592516716972794548163685724312355113515912532840348115962661661729563633286126390559474241144379632178661350488161491699939841519831827048775285413806907501405428120421567834317369580303249467983083957874928108567656177696598386857682473860323019028970622998105101461610671688002349635371009794598498794811558773926429741955265653151166663277103762081272204045064006718927708656141433469431173643484266823563873927416371113885370903323461358818911903917902502776778343122886726669424165779060030980358302770527669342853867337761109110664766249451771328776378495884313995517634702567639043041210663906082985642969218155083938803182651727712211100899324976854724017477830551631543445269304363750491477761092627085448410366447359245540020130670190456340498428790184584068975784710713416394443361522110825960196181591076679801242747631158406845651327905287394156420211989747702747784763712356122217667106273862337838014774931744114032788255257564718061804910174026302933827723751957074408737713523395561171635211173879155172610006063998935542706943778731811565743463038291463757896317506690069694152922150232055413173281380651293169495112082182515497828882141297224631579824981677781649469366498695587418469209348476975433062369675370237496848376776985217655553376101875084310682398435361748801798067904714229893171534438137835983022161164737023956348388824855287570508485611619149462324067998114918170188660238403850568158617779396447232108372341354739490488906753138870639925705629457408101955798118611321533181616066143072518904777388102731178942139921292440505890871684782375402682889785951238050849698598219205350989716552023433890056871450539897678439044170845696246681749468055109485381286106260327948392840407933379948748537073157405436835027410669269982981981590231301997727496864088617613583643772001411951150751927816041996584085392449162996205146465403070541852134496014190846917185095392921767539196715755487925638133036513993913760476723767365658353868978289111925522423393191340563850953565457259741992820219536264416172292775139608218339814942933859913441946040470904217950695455332124857997767674141932015434049084034762785933779056891294387299175707316378844998400114818513593981688921017487745398764701218036021697785499604913748259615428373120346683403088033083881594972041446759152578601775853783424442890829813303546354909470687287420504992434857532553010270088474233326635643060471066915612221608457138364764850104934246494845970716692880909698964679165918524883738500856673715378930848958191814598324310297680472917911390697656260698043682305812673568033330335374535144465923264534440298740645687203786918348577498692087137033397573122276028847351914222392593240338729777379408868921750480159321981659992374383009838995752013561069059244460916784040755066663408338642823271893221892260800393872660261853734373779701924344242344642657394315842852376430407952573013148885217975443832506770241012523734143777354250185112899722505996763492564290608647864590877308586341277770801743043334594615608188249063037378731324427019848570793367262562176203246056907355444997244298818315137794616301945750883404537250159232058663968500267632345329084283398581594578409085930277104585028499931756343743528113594647847967301521147932489523298275971019730606248385152771077575763780677609164675626719452597272508706205534037881295983081508388301498662173483683239753909271470108056120738581996839219860842626432120607526072013846598138316328732630396334107585512443019819238582956232785325549756201301989826517912653002626373163389749887538163162211115714749957704903849814729639996584273206790548030866363574282567101873594711900089366566126727576574742661854661463542230374830886175830217100714326527082485174723948491204086797079446827109486469124305380147141418378011655283507256661363336827516512159730212807526318923622753325746094212082177674561920060930014384418768714384782829132953708200510575416896719101527220337715360729296399231447826748576126171527352224995008269504126535469175555550420817558121537840342699699634844628624750663190593289416801143327238007495747154768946263641843368680993760419010095277188810067750313039534392511108217852761642179995029728506669649077316221695104264301760599902747923513734940720878933380782532634816439186230763034722610835670504100434228016015319396001346248023022056445771382441010714780690664017721932950219960591070886761945654890162946911471176860353086367717277890272516414041613203935253105374627685381865741590971983247040892084656124260128182724469025019827021418495107863794874868441831255893778040676095265604292246701896054214499372469882046939686443139228587468837160255061521597458291825025738708959591496371083867552596959924168516671212850886654513723292699815040995309399361430243970204168206686890928083163340837382134489789320188026730986785537410211623465972156070767185791939587811650788255441063579528551438703657502833736044173066226093672575829776997802586984141074993254295183071119776158761344155679634296211017986123547171466685671214157164111902643405562800550914335241991842162123341094450602554986690083816449510509885405989831634957728733831161415566280377605382675832333481367564064785650792077818669505595820090008088857966582195073466584519672913516156775162173858440486623090855713270732306063989693311561860981558083069436171072915307025845372167871101149428273292271194931215084638969035875087140033747339743046934364606290641391523932564690096401284601208692769550867300485758883932624187977813908866885011001177393068994924108351241865852581695277466803615823810419519422346518644186527895136564790186448713311200934175971250422330960083292099336905689319148742020199528841840099774208595938378596509333001671211039726696256344938174416071441110890940746358129115157304290554814974505775558307915948054830149071749116220810559678339776859240776974936051349278674962723642418009378713834231236349528785362091898534023866235539891665146697761867060550003481769602617274786672245603082145890918278228526160602890584938048970897155798379051634135381340157797039256242469500483528355309431797026040900667656610459410955582848182156704371005454130976904701051728725887845612298334360498910074627221609938076187677356064465254245661893498859009055449950457811319278174683080733329865901714156781197375486939526110253966971004744122565895322247688776453984138575675623389563226901520031181431136246084357266906239715892685937670008023700010752606561235243490155436699792663428116176296683236789159049430070333175937271415233181260107429276578810392827093700076609401572945175965886862808348271465192373540274818247442394124717359280156421268944771268089798270607998984214050998558293916954162551301067380844591846596677600557483162793924762623538440155201554651108025684921445760670292134476282898694114761325656780831580735636767528403627307783156108862926188933789192021422488896758998057142239239310062927453115751740526210372709876045022758595566236489643701564422883078026897239580250576109156939953516911255041710022962944611049000520156283465608704229609446811014387137780126995605878096387412082445410194809337267794643370060707904944008920746068620127346256916000328826715023493179803547632939631363899277314823995267826693364336850146781928753513446289651851617573980873789545661873464666120303481569125415621863438081660279618105543301288709030749716106070625213433871487462303104687541970243659254831479998677876802074905419846021228500173372173645216119682992543124765922415674311113511596079937786648345424471565791729120255530003588187863376578856088202112050005261981414199569184710591291088738430085744613814018227730078993282769148483649176754038992218173524781339156941118811235096838025942432584272362016855796044934189295953494335944761387632154334342979889119473183405532247855340401572783298058923813731997696394587110165307289835193103795026368779049602989062326395332162996860151669822024400796807469907197211354390981077764135471555242538179216771531356896939153674863672139724386913154022868810540653391483714171974878756515723331155295323738140466309705165972436242806341770098323677531698593056763222382177833437142982208749365734225060327748491143472887367311210947590640037686651709697908127721323123696098127311813527032763781305552200599873834777892709533909801894066643180690567315105795892443325958668462182438620281300206592010557385983734494329340092461823641218198338258094372692698343494519270616139678161099582861178877489043762911580211624943779226878467566602437519320469215124032950203737642649647397631708053871722850073960687824450223867678393656566486099286482889033415382907598285898782639548661796095607059732359382521997268396789441897743654940985629766227997988528513390331944540074283283643185785907640177839210564318454034288065090375042228763083693701180234370387782419592317549028113748322687665042759296094457470592105294281594324586433721540272516419087307298441914170831853942647196682453633947375739444683839979296630845201892242964581383965232390557952366332797197274706741014819685343949221717791005786208036126854869549724730835627905064877448082695857250274256472322025931063160327762797392750679562968177184216833145969862558863768090286506742202020713107192427340616285519310294485902804092535520596048148279619943201836183026604571427059928675225114875864267631836301931581424325913185302681874699751598452568512755668736684625597389465509748860723452063246987852015972373284618566701394759070659056698717640659044115041085024515116083030502999527495307758952652309343688815044150745156718165074766992976880942526155337876750170940691609668458127439548682656648856123556762994126282595595262347716048021427426602868531206489018685077196638208090846471762163510292558503621852324027291981917640978747691002344140960842036142223207584390837541629375023195940503646255229160910323522275518616986535012395350734634277992968606492288309880971743681940718591122056278488595710361836016818670566407312437507836735346745560006436558080105130337478436541213571540577234772703940660750844075501462698065096253121291198425393662349230760021835335991931113606445724047781115283468371985550248958380429275996670231888682393109983602383315318833655132159538598938904535434455085315667572095353235911575631919434126792636211030535683808206322028388047529983309503027164878435215764301930329196918950228178608633019425292927948346735601283685267067057155242294159975326238386084805314617450727395475296769384130594748262222387556655237207891870063713813806868576410874370981544749387144820876915073615043440136033325617276661245392702229472826858829063350801282215580237984019320219137090976933681658692073896386912257473643076487930247276912639504590613354524638004463132644573302979034309853111978955714717950534601306746352881730976382051018342407535522927196693939380013497829107058009796720430754023201476250651771887001977505557281763530010082501673261271895798843309990354043660421907111378672839864891167588361658231763664332527189946027776543676010331752198862348757658385938044727404342997717516972527674929782633741194368018341232113246264015344539956272119739568156452398414871238199090350635660185076228991551707044465076610117656136579155049116156029610544909422541001849966396084520285112241325766842348901258005997916747187154525838743166032777248327825326807711364064782231342221400551075219887627745236282320155129634326084129653345069600477253125853761818305797634124881533254367193225494755695100740863870668461930505804556307191479633884965548569221480644212016913891243663941807895978129884316003383055329487238592645532374030632383598032620990107707742928146178671543127199923861786068920743150864715978602910680850413993046919441633355726307432395403400632146198368617878421314631473079211270297685196031573635584495194180111137741892073567652416094305986129718781816928736249788596472284920290153194733187378374007503113255571695449373944355791556966890083789342509674592601693105515243628822342291101577858463808721833074889239093385592841280007067138509026858803732780899490267606767747258836304842829426470302670241155910081102050183701678358445911680151018481142701987644200810879481326365050610668233983147869404490807180075687410386066923873440083837307727380596052931014961281353899924859606813699978467285778466718565810514880227298204424435430835948776729726235078741833928095216904073659315850188891232529431740387170082917304936260888882911228901745150210744642780383802192106604444550770167064735836733063454781084028618275222051755626277782095902164703016272314389668699795801338479830459520638712280223843567564399493106864865572321636440337960233307039541993218284245079805877780771348480366317129951722863535274576246290567086414164425002712052516585606923999241217352940131663201221745700350134790096097610830343407668740600435955378284109485256921690288868828638531583007723619911185373220544530273714005568688771967105709519710875728937925193209937556166317800581718564615169573513429092387227929179164275276300985940170227291107304197860929520673575629857557255891813946869789426104833409491280018660863100430793337439959737243172122037396682284487963800500419778669499447941622998787429724829063731511522141035384752542937853320314435228244475206594607001371054590253657183442219194218331255256050574483189008414579967943293418145266370149223788666750661248394165257139713867207028634460579036130523893673964149121596829399152780495002595688241592075747395715433585859005439105725268503523034770111955001180784237986660461227871588422589185794254172076716473782222302445257323062942631595541430845824520599427405160211273883070878192894419367142538398878876615770309299509703136216882960322807069225775325725798746710216572330819449882505556670728819969175671762563625958856355189818022562600218739190095290943946601523928134754338008778079740926832276158479327462901056036714841348620025830890868922450089619149219407916281252076969131717711037684879453148404795633279020158563343060051968202520887188062044561566494914615132173520246559792690569233255126813605018199990035381098278203225426197786535669552724417397403288489252367783652861855158783902501300318001239019676475811937265080270382016513519387561426746405141530036004690232689480471420747962283321371874276836276962986512664696386140981674254930515784304048678645979513336122287504447317744441402138422942321390457555833336454801754110565717565750926409202166053335281598987689967754001570791055034759300308896731291964324621755173308796709092866110538550265885514944739072986980508193053111663329790099152557510750788147010635150954038518609435576269198714592116064549041264122394479849407979179140285769391860097464981228940427809473008864744623009599385078523098163267941150301717066836119953968536773130087206823826139810444630416801754257244234564387412111056278861722879653852848630184614910619270844899156184244441234621294327213281349248378583997358711658373792905160459232759453073327629686739855924083641492934760363772246918625814084631761333655544247277135896617122120113346359854443483432563970342160394003696387285796055751002011775658346738944118579040718903186149254857763172931289916368943188707898934172832938583571616463670873113873616062529640153533909355527614174861777284333319113355027304981846007898139195523852158702078737426976310297145557882823446524895242655584626631630351210109396502507278759268181739609975224360751219707781504829350788239452049150129849158033914160812152334544610175054928471811918210304635080306989750976252940702097703115341459592288444484772875286234219860557622340446951783406475051961168068601684538921065239722917403829913021492060495206637684572932125741130771103079289570647335822554349109804554872237798258397072432476080732167587676578033650937988139119559516595234576970472246522673076213572204407813318788465523958518866610825438187339432275284553603018141205894805533115226190573441559295239148069338336421769983624955323042879448304644302704824542889444193500198832291194738431364966212918981780229415868309342830906696359647547906010315839869131362274966905241374211841730683533108396298924567458621014885410206506703027953589099792827669479354850085356166652574417434955612857904539931306181103517688008180499345093831081019260033025379066769554903490709079281538077913508729928790023330869084893062213406236289722522638244445572933389558800636910824180775497609734601154726144297237902380168861217505101282183039237539233628297486953691781435273599117153419980243298430415010008358445106050747318745668954226229857462567149417079452258169400731650447860981389297545076120584481070727252390615421763948317145902882981197643894078803427427731713799387955384541918273182710534120555820518629022695098663270449795247195170790306811247426398349731484714501394907693373673960451155396275431154753716026144278206345340143398214492065373532554608690942733133519792312998005482915161098905188622668999064382393732040637262406951918732443556210003939387754604304579075771067809363808374767055345180631114601282931012075087878218434967376299660246352024971041078792957570435897780529551246313313530087290123347903105336477547602869525333004889327847355364712541364504827647575200000568927887301566907354202944134802241514277405454667333389879559393215208632986993005201349607284050296968786718046254365821027679638955001273137037924777348983142458207014684855220972855409527057186557632515451449998913914071097260311325631585650319737565457948874247021688304837381210922693480428155927683242953692993209174965275481140757577463480900967005123200162210736587298895186386916593115362406047045715907004508227026987474361467427240341690607551937006083022287231687272507247104818841760916923777081875607402974838746709676154073313856479418557666143063898999085812374803515615578690398835662562998283426260309522633686223177150307278691062467196465528409863007831609974002396600441692431319380157759235810491516498244781757156582115526182094287453811938335772002099652587383888777053225106706147507613049396647777552794534514196093123916161535037440814029490575526259829093522552541011223890869815854265705875749869406823223980378938099140187625812609563372329956027926623634171962469829803625206963440027843625851545470736269101359668396860996748305994678117171676579978788434919553630393331653855675883680184924992042031461774556073821373114411230261172203605811694419918283442854968230652745475644016216990891029368439859325245299497106978194856345270284833375226368781364188829499729493123776100554619197177915795467714431508309054596250362878223174200552889456450688705211566378135830591627309686886239037350067310503901583410706285125595707106323453157806322349800027747937559587816304504711800385350928966750886791548867252549248513939210607227969094816793004457240023084961834265342712473889289749501219979153716674661252467450885731290346535929111830918643772010833652524340493263275520561195706093145249130431960749368333995742892398008183151620948855199175587138837436000862547090967934807920797975393905817450525485167559573290086971940040122625746267318535663098047775501713122078713295805393133409529101914709061780353201509975453942251897844578211190963612428600136746536326814026908043644609965035748557751221768653098379402924182637992483941968050831778365861681250549203416443547010733567908924039952881977210804293149907228071093928903859051667788621301657291190793304788899822647142791907633169528101014680188669532777086384772643136184492312307374309066312425203762205503977895539005136378089608234148697985277574681790811246048131802009379866857436625072435884833879830578617042975660992223151178406583295354449822229682137415575968902138872003637047933993746308216526326443402852415522106966804157219041048143817213275066641991635654965727998457401646764465505817824465864583435607625206540799540171626596775493041574983041919143783948380575938987534033796934888130083481800522927331995679843899651117628726665670552378908873138996919549795704351087807169740643450459086895652026763801656074840031639127333309170765904488829262654874068396493336599184676852840904720011499503186816419657955149893644825670546430409810568834645886198171474724813747957149702901859166706562373778276410721286728291881481132030601375784473527172370554297673056605095803669407453144250347811720258099547318337445819282144919211878846379693469416564034329723956808807544504399781722975905960455814166510331311553222035673471336553083244588732120450030948855732403578158765898029294352210965305233497332131530104292413697025079919308115449238390856133835826684892460623434000499871748400973059835158028992219031392046401688202598742531076514393311091524637920245899646851602932815786744797493928224482715762279059290050926789822767392682567314426153255438407259523943263932462627067394078503764758307548277342019617794066660191207980017724942103358827439297499763438490334841445107568232363398260929872807875606999645980791742944762337742676612139322548478817930018368910363759345422424489693571064956560120551808317125746898508781038212201198540319130037648262625264247248441481613885476230166104134340983222394409852606367442192899573000716041520837814095655822701835370216800716258442212289512333867041338739763916477645585830235112819287007381196689924466355314755371760907986653891746752838170563913187986643548204081583948975600851645379632689061702337373830868872093712235053459613652816282205246700696676744341761952830273395480169812733272189271745589604157599645996104687439572465563808950342728980117924007309410937962819027907364460320722907944055127168392980548598751469006347612160921207742235628817526242726459455943017995472886470642151337714049169503626151390936836626247766743794067728066140415574611107722476477501415249827275869140243782232473509174224792861510314087076188786536018847856587592419135044792668670736019301255840739752084244392829610839046801900504974686450895406590537824891294538437299848987703805410779453085151997546074852966866279248053016218795121001492966541853061375167343948263755587012866855457742839403514696771762088114537152746544467895260322751692994955148297264809697549689052521951029218728466306634158206942927395377900578361482308709165183081399525635106391167161753767201290442104490873732135052125212844956179297563586678416371396004879724092420829124222177440414179152596545689684740021825521983384066766932731245900815563098917789662323074035788181612197048590474388808869593411682221511245833654282807137864864434895239054082060842678047751870028154489045585749183336928797538863031453097389005276327003922820467849831279281483355277079730613671027677711345027719378204250561296698555447176588250385340697031506033815554014084559128994178518590689264666922305068256055994450538050003608554044399090073913136029884386605596269752728346721489265689814400071826779388394310945637993341466424855429370762912267527632933658112021041596592371193893528493073700670911018371428026984049052069311957477500282036259264591726579335664478448809036939280042791884779612347950814425628142173547295677900078766994823980860383529632481644966394500311038603380087304041563149397258745175733298802956978055292145639377815556235337626633448839580564795454303430316896137650318472438162538741441556298898649004700672480217303568018774407274793136580233886980573676866850687455342477913759678544192463577283640739926599115532679936788153714707568270161489155562523859789153588119318786735987161688054852935191550233873771224391024722413085481396252379122896088792047022404063610797627009377977059419579761392598093783352377732036115402932136268753784923983995515080574178069428120839020422262323375944084549009199426102784720063580767346192799442270987851987920755827710643201351989544720642666597153435803860817559802397951140679381592035240755263368702118709008664919189350070577822778788710891167158347382947575092299190373259140205993075207782481646370399804144838615887775882592706848617249089492276607777811218031472828738730771915189013251459135659371139005305563374997088447535507351454619208113465568219613594609870536755119390796932911740740019398998623827093559042760165848784813677489587252253568152197830912052642895699217695551789502235273402539797624926622627119478349210359046159175742080634004861319434857030763817670397351013277929292422568054642211282798863646672576970003161972434225202515706674044596045561829279345140601366070878611194774968891889461607098147561450988704257389137100924006220734236490015562024191990035616681058199734771987665562659317586216717333809844574884729754080709926342713341780451045321649622335048364175522560694078738557267071422176539899169239604358109944227983817188101670409067246414511761210605647634653028467235659375912406770618850755669288753126366815682821733561479477082975898694720818945228687983573945192002503101533903837668991502752408102861494517157815488964612672377846687514319273161183609151528579149654588130894393534059738082293897086443452366511662769851394855835527519609884267761484445662714038746158485316939695308966150950100547677251881621006223246474901362404016992482302820283861832910477026185855386773897097983868082699706376162682653071586375410408967280954680063336395961695712207426169065656806754430844335380282726956826480314651579108109283319616438530040483901406611458035981141595938043620620237160741030860071487809905681870157303143651312464599648312824163224252064410156879398980802488408488132560509946990051304366725040336716502797503031644671302810020802463145956120124229576253764640029136345178131188652424387709191118820609133884673367756957039139877571284530703818325182140211682689499406520862905593806679051820382491394354740966284082574960729948213978112574848008281092219554584446362243273571972918651329018847327948879924484273648358689308697356936646306782578999304476297115518353436164402297278659353888514840323311820459906170984214485909495361219649458705745834207067184636773021367251212791764440141604213843494179285729438732939465072233778029073109162002882116721587759376373618405466143896640088885553369253530979106736362979815734600518206082418373585129632889046310756151196633851295584971788671160722007678186116771257150351117362637307423861376300269672116710567235903679625717294883521877681585848347749437962894142586314000909492990038693670500161873013140949416268615326885853191663265186698676489650303215216749473294408748483013566969752182154340548539078994579579857115444266119417376218838562643775142043392127514086155327830410373816348864899091129431442315087136625335449859780320169559845760295697336996299452372622097960026373762773428088424437021253261024726064247260778525199032790140996795687387975333947201517615751132787581994770393994659307748238125264970486436109001462376674024146180405282732507889032039834941830969927240256793831148820544064933608492802589856854148395236548650951505977905885568238867363565589362893251633782299827432827563075633016866528534609819998445929812704334600362922474027509463569873900233688493291020946679492039409803678171044138397012121363090609575462954222081654252920520716991333039683132052843382284883514369756248800412559416510611989703489934455407406291414829480814558341472703925528898624625383216116100399651665968597148660661870230961505284502736526556508211685238860600657837176044387061301749780856374028286564643174220222789763116033459015710553072606343754184100456489739197044656206949548412344990959622283713937563345374245259985529395668318010883829248223959315243766250676557986039290347145447086685593164412019661072367847298465524025990670705639757172933319031086493229427370953481459906337813983062912200407850094903989724053633369982826420341659251772335112451635872092566913210787565469041844073571079742231824181891191152352405912533211743744647630824722691825979992812502190632122241240970052874470450997867866332656213682316453160611663187073355942994949657012035322244392141597443496785647813044365124437428719599000295958730656297748377207327172585341251702777454816900140741237571590999128453045761723030293314718415301484401205950373607961320916406123907695042727010056131979230004908955223261114914985675191676801446341706738861483271439417109034160448452138633946574888605882646156037101584473398874660587590792021392112469187985168093267876074556311332653622030261065632945092405383520166591160316060043899316096391815971756899657826247337757787900066282762782019376141850884075613476921628893069175667421568383319736977945001535006353790855418940440576386838921672961264411890787987798488232227526968539553689888657521784888130421530314345670766831951112198522287003369488753193879356876035157292076992253060705442262439954360034357409750509403180845464162941592261804296385503498529436368007549628223637582483270377143105164384229125251971323903195839957097190486959548863474227936254644612755620175686262393849066890657153663717192655646786928445266409700817609249790809591616747202411748394865039649415743742807959483892500788297732942783408119083891777540650163521294965331989828065092126875948271225019708042771849682808806695050314443354477265996098792679521948712722061476439158729232016796903508885256834680983138685857549152212254833156636998461764157289709889732296735032466681488095184533756849499130374043976745820700945634860762484862438896415282991366649053700757208347336757460510884926761377943539577227882478750294422121446657715157801373019968382960385820428600494390590398049087388453243285675274303836674406850124349612137152691803533672137034358684307556756110606517491778246253563725394464893344345225026928463683319161264918278145028802395060111460760398674283884189232619893305603020528305559068637194768017446548707445331707205271992479625463154262822766162905080433112934985411010668276999213687550331703904575608911039347672303509060031992920225220935683124638519336894777046565506846893395491180487771780853475949132218615575902489741055338257777618864394274078876289295822499796264355461555714405430922123346428211752775589450475226996384677696063288572298700354269358651573321117087845639244817166928611424079357817714293337177342468667151192274094156253493564002127034492223840736981462599243096137162933425501547193604578023252675696723528006204447192645494784789015290708406524769380455783276206172569407995157295575847871120915359510125076697331952152707419518254591609188210137465684706263483852370459833392555922233081099605731222485370124354779225837101762257243400449664163600177625636479510209464112478193652016604339928287681081259536301165441847465222939283587218040079299087547060854538261564899425886725981776295695865055815064909508764832169912391587293799238975721481185329473518701247658666022971345661247361625152216368444533419189519272420155715986120991695659722051154401647687954663280283036731717830945359865837720080699039331110302278839023099997325145734023624091981525925768555818236275593890637354121707489937504023471738051644270006350150022941517244079066528952343756901875500627991603634409752196551617828215316452649621234508870721947694935371597915865302522236093171777453564312428201719312630119391173838358816588406901851474549472940099087884392384648127991903393450941077672747682885252055741121421433684063408235160926037827316200010151767552991786728001327522518512255240006181097305692031233260460701885656146660003725492004843780966815331253045292504058037725733530396154002940620165775821425291767975409923880247823758477960407358566388210588401572882764286645766339388679741078820885123368290048790850512113847777203347980038611884395731322375010408242606789031403122988899767926950059172033976829480099565818247962191229592351063623635778786034115447927152288682719250287325880716106322829946089389394541183239212645072477746709983793353722268480816847861319586235394394683597395286712151618495993118514025227156845382484794331464797007238455212271976326151831950895162860042339316313891837753932903144272949229268767425896035555352490791896732699066488053378350553009495303329514600853349228726916394065728262478562918423442480510948591229741158893925148419066659703051379600438023836080138332190584060430309798491169936903401524656092211136189925635752084789048062794871920259736396588953584471578338547426460440934091835890008673222561108331944875565043059425074568408463490215554607331069744983591379879129165470311613333151817447697129302050812004897729692322961974376562865996174056224509269615725609541081417231703369152381840602338013177006777827600726801576207979481870596754722275170036062476822263164783682714933670343823526879552158264021964488490432772415729233738116471474985796382887612930514192552019555480529827097336923580670130527267714876176397574970272448163902784484658463716606152970013892645282483857737218139438958651197916498194045922370324817621431669973691811806187521790163460106955838204461605003773863402459892842771492480760070165018134386818333038956699882815896616552977736438773286651402074968705221168383509806067209726557773568358228115491541898236311413138296936817195620358899661303519782861660567605711319833888023303487984929352498836581038590907054247284339030777152613345503892759859376365024718578239269830662722522553433248035628059684081928551291167169017585455484697353550645420078436378130234343949951291115889595789259047929835028010452609112214188914467320844037027084908681320525820082728453909316262692342588583673291695097007310350745530137283044587439210382511335411836500220591000470350356609868224080098278436047581201282119528047646127523140564063995545912967475089702848748066665175923050704750159597378863835000714087543441503557178360367068476847206485038257994198704745493924274970159112624978314013493785245973900960944359548001025301621431297144749416035324459853265924816646211638001200930478198287972671789568238173022670747766230304937999093047234504757104746567290740198986730356438013715473245824902021522660200894983217533431772962572711171353404609861258786348450976586498468221223983082269490004560549930319252004465685989150277206732617033261436683858977075068519260670406716060029168692974293708951153767055734815598680737589530370487794825975872826764065215114493771635695489997258584894657642804335671963063649659949256513469018116320597155691139575982275965621479325271155463385707029566739836731224231328075192014129694175147232596680943962853447391819642911422141546462835255540536566231093884075353652374618905144261893811679681687953398945109140349507251660647198234727350160802608690319790772782643861581264941204650104604060923140873445936349877689742845861984832974545030007316951632411720104876954803029794134020714142856383274751119892204406881868121429667626182232239135006622553518198227416226617157439985025114496168211229420537441879689293265851983025253322796546665408705238803598317773699317104673724368684232842640127893177612762139754590120034309377888285446694234868181902811100129626935499901042736506999416248698250257395999027100552058666932893669816070914075769449524802297549972203322927064128917479512564872620614713262858670949493017613366180328103905966454795665462812295295274338901035169361441855571143912431430103535798360628622654596952013296200018959765305053009541335788326844153152389495257025874905318373987478309218458728799384113275045729262008271208051245662621842507766968136294132196022791130920942911158957987012280080505914450975023832088330845870816196432120469875125168556857379531587028209967370975117969132339401774989117130348930673744375285756579792906908926472444163153128414414149371851550319475139807596530442521758521826085490847630037601288856037438264581113071281436908708402205403262720617244016780849295847582251517119638920997153671741432009880503173498488968145029760913061035263405414882554947738718205673699735931302378101657039140937061017722425736670340294869488812347381405739572061412870845279194254646006396895666490587013387311155285865934599770472287540011589241550614821011161692660430386714641930536358577907958340999192473656555771714009245490119726863139527733646414243304982719895747277092440402274302035882317804303736045930250204469964707906023249420843200242940172621601790837887013049997904860604063839032093565908678206603614027050620617753762881983707841875093561956481698445293055228601673369237728210837772512817144957670990320036944177695653030252466732073874088578441807937545950918173116368212106405660030174942217553204195587072697342250584552874601854015914284955398614506076071418187046146852498347393511904643805165929686835496245371560437462230775237870039893158478187113033272771607428695770808487676268937416384020903768635443017687365201062492664660812687710209111233733509185116536262581078449780688976575270115517275268939168168005818659787956267970354889737500579107572637654257014485971683515810305300069602922917875101163672620103518452719675411442487074682634552643930217678504355319855113879699413867563597901169092176503043363797582870946074972091764974094482560376784277536849425926993842486903054373156149890102131289671678552772947507800944967394625167455664634895968903555137721426454648227100753147943071865689586430193027408007701650989510670115319160409143000376420539298894379341628864443280922093513170955772338165253685306891771117062854285229043489099626391960868785058024858242272809929826258630526259884442279349774663111176545242658188519532694628029385219116563926448115419969089221592135889119959012480628087921164679177624621800787420185247364320910735059255511180981944121268162833621395123225858617780033562128789135399758212879308558344227056423761489889924944766215515801001991051012609749029565583561186449424448919507623908793280921922850942062385044429919702781894828262058334184708432674899333323761829199738915921039645466136609963652108402416793519482244573585077603946034618431015038390897936019815718270279945072571845233723257048609653182300341881556855752422551844864903112268267147050511404413468407611164711030106108906906350545418021610241600943861318835303112795609731230388548250713077596106140294779422966161288726496943446306296792744886788664337822770637287277144117955813950315616495316401721727147110262830682565507195511040541493721537731446119033677510508639077636016380779449029263565898721213694231420577624747944491312773145751704066266219567854430324613311530820528771068119535342559899715769624822095464835319214817495618224312808847014497239882531806515658886940301589414470304032090925818718825891520904693747501839535797281954391229404275223627393980872986772774026495764187033839969290606474805808741346300252799657465769194662437535832020991985917410907083253556285503482900875707679965444195376552708456366994704551741641354492714873066664181125855729784847677824210627960043251198737220582491327106934037310058592897948377826614914367535594216321230292101308535243917204656766100320563230182076672447132252869748991031487986801484107175957072164038187322286720173074939125826063252396763315949974363062187750613571458860598277684645907324504006674897898939845457021263478187257285931384635675063877437103025376947571522036156382934305302899895701294532815444612870072431823651602129024664967076020562941688407749969498320138032898230947909062631999508854786293115597363022875070532773109330354816036141857616727729475320277813863628413051284757675093828915699233086483011427968929716281232119959238555258586447438533867703695120349387408482694966627832710425138275916370329277902361945953395741608776040597876694208684525736436997871731016291242317149235612354780948583191800851720730248270385194595619149336295990545610898546766274763405727447274837893593684420349832419024372182696719242521601727215565850906124193981436373954338240149908799383057172137370340747991076851882776599444192556103557857293320188054254469018168261187071120580180979580193306539917350911040622348313604376290965065895803406854478248818729229079485575293692875430399534871961036750377199108453446355517450385069797017628376911942377168430092936629051768554194776583155526632194205658267722737799571994688402354544046873151178165972254146117107569036701282639311253245027494339249773242139151480538236038687755404200176323138824151361671945261175718939794183116898516740877573609745945327968386340140554009337161983724056841976838035023986771723753205184916768306923512759186819225140236535981806252403995103652132152013737098996218892859804894921818744924763920404484144311572853554307792047305267571915327306223315922202300516810212859623831861937098605336360124756148338547663752456740736232496022066317006027819772613691330066404106481460065507706999459154846322419087766076897172437050634016031585179718985031422833357642752019655155876326169009637940114929861320657826743990829415010624497351786702127685976898966229983810414461232394181261324335333605663241181630102001284929643883340665251755862992617901885027816329372155301202960948995402252132969345143038906809466207682268639721641329754374854077328833417420097544050394043997868938457148962586959047497498466277251324468592070263366826980523801052471493778914835315609216925536594867259525463345488609369070154962089426453924280012015289752345026947836193187221926696213143093712681036635455890111901889053309944948239180193587129115058339342769850185547124264238749647316508267669455839282206719842425340905864435773310073832882480962699160176617782529094182120030503476959681794494602976861071966787947107224415604672627329977468850835497320855149903167200684013020375418315209930949630392597836027037516959841781038834509867546495288082759688019396168549462305154117046395808321312185804284328110035614450218626613193398678887518353159419631066598477664389081121040531304621485242430211056000162295405042335331800518748753166780568727750678735732370545308274524254725307697521461775537250994799501711530262850746062428725164272515531114432466067978988537345759295582596056272378192171014069335421673282315814156416111489780085852863351939889954968685962441623780374004617599019453186110073223404842801313237075963468682284800613025335311325660004883560756523818634727333052826015949923438730226575627415308961905412062047505009006379677605130520703961966765028244955716184137313566255260583217897348379611459610443177562562098547982274116199569175778409775614773356539607090531349005314543610481602839083266451442900159947764710205307842476329601200748999779980415089564083655902933573780909067847622448534020882645119203502164573474291441819691943747764574654369375290156708183434708029320527749767809647749689898609988096195099128895868149905564002378273100169338979092009221412304387233897706371161351061577202804343326386226164867053757400415635829103850129695060957718141727681130354077720976560276382086982692154272174252718924046621723534382222204148937979294351073873414873503183616981221383217981212175364798774755882946585689360904619868026507473898136044464615577300326658655747378480358429735828037384443692700592493604327769599449511114869329904327091663433600192895735409314488659346065752005611447595687545397944516837314898930051228297480372893408232480675556806635164049954112865392419820748890431174319290977978316681191529441950475038219430379060350114754944783350660365032197690204288887202424130833796801042069910814834435133214174892400841663583262606800817999679512618821985502258518995072215008760787221440047159586077311960340850256018656782116154020979881558405900358603235890500358224147340252988783436356317342640818511122042219807353205173530999540173171616745473001402771369765106235564811310764919441350134908123738399093361691366077494023832636153025443389684228080892119776328952608975975133993725091040641433505962621584828239408050318770740977256422968292916474976601009503030406080580946046278576092818518336090426450742402605763385590905088405918442043845763912517941624328002824257914483386950948174900699969012748531404820010792989228154111315019697763906228093317845529561501252288498694464684159743814953173531668144420590039829432511305818447764105938366394707162148835952418757187036285031302503900410417767156307423697082071009103824901218829383800150189587335438959803371902296340236256898013584084463561395458633430206633013736637393132466035051511994965157415986198128281889924670913328921729470507520099963231261307791394658141511179545674723472683824529390241890127647851087731242203542907714137326387893074527008323533372527079843362345418823925798752749457779924893536936231246829949386293316381519721813617781103490056629099726312469449845967198530427090607132785609082607763816149184044794382635252920428489227475260174136221711004977346537730048159333305459494668705124571266205056767085606835084848335183770140800455759825877648334666009963675882968952109648869597438976620215877159271448469767571711124504221054137248329638602414745080880722036316210866503233060297540261613730966103622653815429339070794600357582258484449985244626002418844515662136353548735305844417063089844416669136880745073436078856254268686990455032882935722473176851250124363482150132661792575416243261852899710297646808405259616348226125392036599762237249072470135598513300346128477037935376474134679454376126988885785546190343542988066103885755467948109010803680482837222412050719814788196250283257287121570561700483336470257652720675979310744116364388998483308708824940127891628139274863854250235356145933051152074326502152828906715560294676392966863059824750882042610287906822928879138689472690966779670106369839781092116940770034089917640822365952274527719679252553994505533948044700022869202720792237269263489652467079100389093579134888102900511882991617934415055792674703419073836022512177171047520091684809003274327059043818961715086569678544674487288273829550790728920851346504498404138079977407347574607758157247037477217227380155727205520679153421635230876114066671624211151623399067687045071191772291040852438632764954302876606846926001148635978285409361837621107274171650682366194065216582357180975176342614489003454571675871322027865832087245642828816332898908700310336916073615118545359152313644280450711947318359400555551206403338318122285512880043495009142166336831666908002078898007260367891163329164132188867029713847596795445028001962325029449333185928122618697762055486767364965393861452363798813625473793823010277701651363524774994844925202695367862779401739276323013917201087896060325802951481501931550615983193428091042117192552612659487952546474684851978839587459614812155708466124180308363398110670707547983001180415533877539163725744528700939027602701832140520957003232367629541935036646969267836550307756935575918849899972090224507811571665407345828407516328699744107087496005587803179183925506762725943249214531972361690292963620721897779556990192533355695854020244364208089026737952880773735062046663821300975089068576715678442848728659157083121115918480392216090429566352600867832202163579296401012632751110197188362143000255299711846769573719655298705255904934607984499204902493012249323661835721545049556568911401824524919149292267396487121713036462556125675578086412472057003157100395076108743463437213328132998667546529218471634994158714322255725280215295302358719202922027240995363771987231036858793845921130135989287154393990917291682440033384123897643521361422651335747988818625807766283075815501287975190160678311348061422651261411422120770428713625017206546669908865956834877830608908840243279467488745305997679082314975743578340105673748918916997867073023904515819594006185767182361947487549999370823038436309361383874246037783521126038630647567911949222044366582108040701807766662072710014229142255966483301088654876745875083096758412532640910104926818116513373640720016732242872409475162679812218747420080808175630450948274097059985982841659837025167604787289362484360368257335977406558836232925650989794542327751370744788333992534728418078875868217428677152909700414515620694730487469257983423652748677988316700362953101682409041279371605044331889100520665199337811949027054996061184571482867055437976188460258392590137294156750719212360789370637679028090475516619081766980539573959398041880181883191685634639065880794985856127690115233043485207713021676855908564626364532642946003420371528205838963987052086623105754312071585701119497350069436090342166966153794045134007752743357531993287253010099452976784429255551044071116089446753242538769136859437138105331336447640773155925268953869165415683686382094981632768028521018109398967463993883641816958361372467814157621456470739285897498098849449517985917703272734061952543026504116806277716198431251331825157291614384205482110315913578595223489875923198471070528912289049570762485934978543838666721062245647694901722143397392768994757933522812464728848113635389988931282984119570299964160084083892347926243360222201948776854216597980806637492585419330747185950363742864962589068675081930635742364752854900978948213467528762919730383579263400294213623886289120249892691051758411638306848356002358032746918828714875163181899879647907201427139217801890404339979460372740271891814318076692170387749469354440387004165443164198923036828762174816322380862532394784615789190012075977372846585415516334354314393294808038372709145053492535037661127309330631531803199603521767232225896551054275788551371758567150243002863437780579425259139058971852670990885895651183340242524991948593728444390166584026549390283971310393115827258157994930500107983976912129607582247365752382736093218487973523412723617709863731009741042010129396617045890610531808809626717680607496577487231111583578404201368671810766895353163711300580341785816710801780028225152157299300845391871518789313217285411630040213299234653082929925191300415794507293279307277286910211677631454235080038180148982420412358830310288566037321166366029467338029532092232963423240449131260620839319328749159949462967578519127645553060817171789489189186981594484290432350718872221780416193085253815942106747541214136466035298873909644998658386224492148300833526534015022407472782385815870684356139477349403678730831539454978508771144658676897568306489201498155536782824149039835337371936808786031222034927992778441293554774809569053076938162189061475754204679296456996797902492660019248989312937291267834388213260309268117253219712577385865315492881840428397789429384983465559661663589433235720501140248261546624160830455147942196900419316485823174109405287325628508455431117304739832339308541499639063417548966263793337204547067552211985175298035914600901960226458333234010792679574229315080372167683456342316494206328478934842310985251049050346321256235763359512901880239468827100906588885810877586436259754312409397267332132719068805516389742280257801815462918133082702249884916475166392458709396550646667893602140078543399847654451455777954106357290920376513716046282104791136049101050814933404297981241056653838941468214868935054726355130898471065173072693606999842482730657911476024188386590888033605191594898617031795738778376372312295598012675384227465025342771263340690816162661605420067916429179164396585869199898025996424431355497491631455215417894288694505016340073918598870215041308962297133914507736152369075482505779007392777728341600777553357516503582234004740438487346103985173817026077419645948884908147306515798422579734009833177001666596083928239366573877406722963947245631010774950918870829356033761098673646344421661726587967954470339760386320984803570123850845148403310526631317568030737509327244820161876547622678313645744376298942132140490639458484781792073528059554213861035060000827071713167295325961607856122822785730247495866054416779330701016487469503125794577602855866694733687879454046313208572736691120584686645971473794045842086048661449708702003252184576484712993789796413950761743104951121184163101010664346664777439489160324412583150774918394012866545127101072309051663173183088617295527493347722101912286511906547843221394048652706482181647671552412190679184396291649965114237927203046448962362532592241983541027860494934405926825789803197679787421134551279477724287832423175757280135980377260601268779925062247114441082686705031564539209300724850336923840449467466205562326671345101668841686553434282543557938975446633404968326463473445022191021739451716282076964844932983259450900971010082621493253520814393886618324212811783723408594726062276484610229763554451302333480551636098575756344902883992652255762453360484053322224156475846794240811960168419367205095320254564680202570197819954365329520694888932380680061410905918439969095437425452219640067398916727034077215259627051949327587391124915863045952700501610683570998869135099953527993079888834306753359214995688525951173841430550611212240029795335639030540521573831952826057238069824994024748541632594229276958830203593536369268015848326071401959847653490907022321847664875473364008265817791990948779223640276173586905531353282843653325333294585845894249295243268054825413252825424992996009281806666466612302917363079493192401987795156885029807242414456940495869873114394522617384309773523788355711543340898817177116339331574434559751603617331530514257396811643941115562820118987901994102468394793269872881561055536483075087721613637017434389599116081651828050720589262699572460575216749601359332630299887623878391731062080947196909820791436375737084449874252922032205473120111489565471001599535520519726994738212905747421195789901517342729444048170666497693582456647718530374928355931108147069077816825318985050935947213738600901247958836924675295974244889100656115621073566060786888285979349400086483096329660744787464795541289277288051551436796203946818710505703302541379341986184862768422230227980038052341185334537274697030297627171292365660540878015133595214228816364793355941069404839752297104984373286513972685568464168004303772726433927956144288285799908045021925882417530179404358837115386663335104398720525960134682536009830432737396436550793964969112019195838289112266091700766436786927567074887895628646654766966944012159263830233016737788953351679495592182361277101431208191280513480852675454770418004150457104730062618812454005362235683059870367706948433590223244298071271964770011966467931705757781248937677947687836394963797272698959337225305086635232424512700525668949531132750214673043034691874656957807995175882495376927291084548457494156114156429385012151177360175624074459951234329912514388965771484263675955334952140414036295200105775959184779281205601232763755939252879717968698045303164525852502094961669782485583421064534788692834757990163745769212265886232283607042538207719470325432582335494792164645770358113612926788436737829164623930432506206771769274699712627604838053356747713963150874877065171266683290530042245869284774276468118602398917707598068711614652903900935614120672992505543851735624248551794331316063753465959934097327218668141897787183472850499433294264145315701950837854487831910378690622945289825756649319856002162760374464286722968698962888638792911120282594227845909880988923674231083631399022300599152074537563005838761564230459040259993580238908647594441292723607239519667600244737887723410839194595422121685797996976519258312064670733264230014261129959105673872029714631756024305247430338159240927769989273003544218472898296338668418874453182330919956147859437269454412555132949878175646280635697932422879141460671823739059302047186015887593601953671185385482482341879347240351242114488908701124057192869966895969802815677555332940874838088624672760223336376416826771954801028809898043873126747003828055803744970756902809976906333019691159895971329707100705548589613704888604315788828626202758322894274257725747572825761487384017243209694013752529880661569218313821224088971741052911033614858753189785888615776072515872749194521348240731877092508669579383898900587282920934781357907517254179260968748432938309218203543041887622998658776853274917365710170796281405005224542756782574308387085878080582621187828083280480205438244274025351815119458483209615382687034599477256960061106896900936022757569147479270147842319040845874656982194952259991203128948303838493846270977607135254777612954228479532534404658941968631155538019886045248555765379900957093703037060659259100857043467803826082640432926049214087194823581753230007959870772696810760019761478019825875292602828486542121046632072553232613030100262646460501408236772661522131839080923171757522762127910558763775652122324437275803551205623679021204394991488723269257510934469799632430532517971771222327327658230375086647522045923983107434614871996046347285245514394760347136052458796754044148304459505085682110343006843068600481062450929378992564780109146658072490961951317119728815723907832556628466254283410055365003680684772468832891675889553432134001572356969064532708076741517299949344408755434317095898739209196404248895483858063072461471505202634651939139163351545072383214437848647319118439960753322369437342726443286646137139484125632063530070701201590191651369724821592838682134674473408544190448815255804847362727786260739400607244216046703999642369566224006569290520292745167337123944625501868098380887712706123356947090471701243093237447892169024210447299000570047546007555290063696600437180526375753218959655061798836673299684074478679343973025909676916137769262582288050159953219750492733101790159828320290077983335510710439875692970044289687215146043792655340771621132181656490294168001385365024896466299041308509051705259931552424594813889979195980617763653297517890654145868172575837972561469465296295695094721612492193175707277633396953387092927995441219251915111409971131365781907908403106343593386720524668454452869818380877006699566316269060584748493834914123498160848235474886487082636408664387502481271579848261828136924503504423692234813875579730205993021644091099428197132276467841811215242647073071679077581075825647828033368527913663178971751174894426922948200858638233150772774213275609923696526357358982902512728649372084508126166074607993797549546138907583350558694061913652272776198601166799236155428641128016031691295279889746981730506519708993587256809159395546643718605648294277016308225120025677271485127928554448613622250036515114752500343722000548801159370394159477682185978906861997761359404647088690387287476671609622533145301159447958531454974850038553494598122064034021862294237023603938065197228277136358143435833010421244048800628687707151557948783171354475327897906592479860267677959869303558958927659176358120087558407148719405672290556876909045526122645629243359938648561522282244764003064005598843754354043845945064206522563504552381289627680529800701123157197743864109401275600238101981932826513415501911826645345518841333758842463229575706512743871429548598100417677399511813773952647815298542648772340046644872267192713899161932341722858182087966857485787265244631453063676504886769840309248989580747749256108830405198522234568444045718632897852547938511669654650240373307837389469891148010388720060922742829130806438693493855975035475068534408973078440582709614513204804980539598029338671466264143092157998362305006150630581462430593672890138055708140856682302917514952814164658597326445352535853049670351943325476865802045877424085227057106232801858545942373368454730194001050408815910878166054558886553006429437286879405582129371038925684968995390633477347341241567059668460114599827174474639375053603681273303542280707377234934151130237430454842140433539096040436339905740099850498381625659049093501306279943499338321300919883458482787235664608582926451780502757889679197658222627183209090061673678084257764979043569585970973162337001423958136266473696515248111664232464245066913104549810392412122502860379511060435546157186690034825120121243248602759154658798027706944760518191133237632795576812500353681238842295048219315163081263372870080435216870185828736100358339973072255205078365846463456076273990282677596398367067352394615018133430959527965791092329800312922487579081156851295658296192745777356236642218263957747117869668419858635318224571815540127814499400822390719842194292497680483971218211656518854320725711274346202944465947518162929175060916312220341655455001370512092206357877539547496474556573256871992520099500221967621681624919020552414966155422910221893545411420614964813193118277282377072884364432987160050248848312400738982214851821672370555934049491747419373004678060051768100023704080240064080137545932390080247812982467712226054027754158427689889858510704123023343727085032692067677392754310830016950956581311412398082717730985860511763495247792834767388582904873535688534971875983299919742185249856381635918139654698293261787496211291946423991349932302569263627668519391032515830660210669741288588540175702629183861156604302688376808084835051054548647034207134434553872654363555566787033858276009429639943799020442891428689953748319816338356406635566671752954195949361876773858773464408701312024774294068629578080181054803676438781388214854463037138658206852800596075536423832144344260434257457996832135515269160690752908405706886401003503833708548579275706469996960115152684311899673515821679960529485724585599159236662898781560563911292155685070288340205853673088330187243288479142091033612755590212012034043125944762591813995148602926708089517794918731113862944045019623508645571380279799548785747784773930904914953576927775829517759936919357366584909491905523583709133250896590426167461619283572321279383207534969000476105601642993613817924010785188288826093757986990112922779558437511455697813014829306446237015924715308429398008460196232908143241082958394823844531685133295651321427357485541036853396977292519696907258120075789356569099575752011542275211076315554686541992362935416823963107570045912147157086676860029077308424491290650973289201281420220403606869471855994714749989257994363397110195552951493070639160944319428035271181944517535615286839995776392665078416959957682319657671689568210771822442749200067832836715423083686772202985006744242901929224304400204452326304184772846774846604803015222320453873025563504166191452784038098015220860425986713167569350373870307800505042707218838225969300685734169162303745035842611518092495954345461488024986433467401239507948419207541483558908103416252192943411787428604676821927129396174092154240897927346618327811474584843720297750554845396719715711359859719546002732296246506034144669953059555202456887554915161877134873961532835324096266840106896174907963819213248654424981141470019503468115285873081792129042193375758628505808585381720363168249644243675525552934606226634664487091291673940470077279065103342889493569586011567719224356885908587013093977104587506732423347601589132394341631005086671131674256713048474263947461323834126574718409095794104190335301765356836767538659458033303458417056596449840355722548373256236700656519956258589576828512861226039696094487861988086787519216849348174075113256479074867778419682121235823399544086118024681760649231741707247075036158069629563563479723150463541245217546129910908255373163035913776492274839768165263133924179241497776522569732452995107780576901583017833975907804201513785451490687053215775717026631756015698198156814310952660466825018788119569576614984189162889334470608617873814622822690126275872127407313502481905349558097129942240289446491984127966731481950514621345044786949973912150829618675923296594344913105711271868130298271477570821363431439011900779059752912021795793401736272591007716095211740993363278881695252056092448266211766150452263300112483600882689438880691764428326418365983987526992411565650387331274862347206123990427533602775561402471076497169731775324968747901633130525992922579144876525407485881492458269572419591890343925511313740401317699338904744564514120879191557866386241582391555974533576788936133211257001655821704569209245091674074500213782676567823823816263557369147621944160412704936552264607266102246941123769845256339841472350812192972439304334854016190274130850024223624825622060721708449653746514175168596444612624219479593077437394584423387050723092440184746345644680210297021688940959577623367157204336679339953496564146364405524712048499696562198619865002599549713677871938283411621792021804778279681021165352818241461335613373139372454806801285296737688823740152651756353005552099903853265015840017937443089642060133203731599824383924198548981427406130263932264736080228227581920960784637753986845515002532384177964069982939790887592417477691785130054964444861995795012476655122364742012661549187153606654593617766613786153723919273227914051742492070835642881096878129347325839540486297384056769937400440735360068455100340888683619047970983788024127600317994883948061940808783115242531562481929756740275569063146856363721030084988859282833517662498570360615521961420052047063199939810046064917241784563890759642660332331694151609420285600457872156178695707132017994954973869968928969511082787481909509856690542599543179251026720183276570717375572266245402206711713364608684390384539992212501146852108878827553998264318806195799212961355096780491271216238353452816524220413441365529802087904991610660679508729582394951987937904385603451446462656085916824897205408522257348288150094524441498522844287511414670522226354585838933795020602183430397966949923585508273493741499599131201153899856840005300210430900769768320779598918587611863047799322112601438228226590754918654238959247727007038139564936219936797678009529644194306611089311531545376888747743881516671660103253094478922845461540877783955437579728799342502134344084738138024822672028934567687309974054799706884643428988499375700947877338415888453096393284468231491068771093281380379499127365246817154286441692829740528668688162196082331960023954584355324798726631404363594053946509900572586237203064854024095672188705171623167914669448416147251253002778714978628490850406699286382774839046888221758192294315696680910551479110091627739766613487313775567748455269666070054884832813756299223928311507752906993262186724424007702853233389115081237447891203800122559014769528202932426508383170420212735362951670351951693017087694988564402345793418454080509533018591570871991210290224404865061685500181731022171037301078576598268410126123011212142641175493216196281132641517548763392836840424717687088897121062060989027764755486974224368900634963753502587157058589764195177226693459316851104872361458488058199219155573475193085130055467206160562600083482294904201394522222188683767695429608186584410628454397908842633626229597441089339460270393298909787089589516666763058721965356521799933313650810241097482905856569512511847131341096199330037082620937316460360417801132534960551760210366816426474633990129375487206738684354368346570462479153698383230455194320218548360042322923279185789513347059089481334966896740550410812636188835323815909524242544317822864878556842763192779090769864614484149001914362709886091868879155279308535880057555440970382626991714087130863041031458602497694854417310554844645154379237599112394678168441990387031311734591869650385634551678170587809458616315430936051480695476460578233864621029195375130844103263458967631997015691769053574364376242361241822924105430009727197762223009449539717635755588290279892829568336362707530542658851936957424262446119009991088423751070974819260768921049560528198444965588895757587956406171325350436942435258302575347054740341565204611039413200889567848396829581315437569899017779646101217163863172647616382695373333739572992420347915156661740704736573783637937071169361896831501456911038088762302991012621565815355854292746543348506981210922437468149989126811388696303931119184766633629102563832834410427702882791750138392158153260248297246979191925793989285468313163054679005813281915986953750201244452524823629384213885909281953521205551711624045733984949413174413980511381758961744856372172557924213744396109299237634265491147879086021132686209122631689528786001083983548001022346454769651121544215324429535844082588573151831692265191035253710152515408416521228246165203977537266417969567938346269064357203568391488243024038144654662329381613583163755095258825515361795918199200421657379751387082346751060408191325174232430149994476306123117661597830435429075863987651924826478226775654047035413470753849381783680029236740433453692721109339677761953498838107945814592101406344611587414559072592457600395609726035234264342335473647714260594704002564781755050682522643034152410439482404750128888740174623276415511384222793342431392011309168815670646178830336348494493381479653363639875060235820415231768273602858518900217591503916414617254408926093102639645782606823688452414177491950357223525166962194437688575403427807912326455754290246468041229555622688165699039708512019260255697599120188732553581806844132755511168757235376751392103546794307325912373444248608825587161707098407208844187686794502433509650224195447404423994999592534638468896729313310276995568886890624101858115450453256864491652807936793205074995174005018588651236433365858722494712083169107203601806094764780338681117428742542851805733939157503926737409234042807660584871082728766899617505161526551835836131954180290970254616591500647925960571786807924798706017287953126982535419126782321328204890001305541426717464383814916436474045017308371715518208888572225355066983802410794583408792441920879018046610855506101205236973274262037485565209593962366467096401252628980578775738933756128271038169526951358471738119822891887725228230204892762036209171204330918998705535895755789711038999407695355515299643520180492062304696292208249235973045766571349624463035752522594572318711172614062988218087721911540901549904751251298080763662126787684487747757188710865132096299763392427117859656772943727311172063635453036712553924924028616084168650313131895377648497479204950578095681707676776425767953475479350241021551119602435793093319013860616052622641192785085571526300926207518521702888322167529727602915704803975955174503755559439538469761391220568471135991823676355258318571971817726512307641295633913588975781994196484704306831215288414405337786448382248509554602565895697702142440674304126348526050641012647123799391062552399920282566350140537991444273654355444925464720292132006020256286903196875086856504553641024909587407154198011196817604295019780675823334193880836139056418293078134351542065993625579823680922045057279415556267221837821524649728627193794266257254410378405034162468019050107052952258124523052393128475165393169742029593557813073651725210313465135141866262648683028170295769310928877342652604123109362284163705485847973372088334505426996437868879816099384931260164934522758530175398428871257129238225847692881589349801370125423908205212288864955568860803955745932796403611372283544688289889480942231539437127271450811105271999128505476226937049793022564962335426938032586259511804619098211155235523644904425772511247877666472354141483221065918080874084987179738247727805923367640859647463129894993043320166225892827764943488820598524724365983742667534409859620173196648076628685422937191419490598941013054320160859412171925632282009239879204481128210131461916960867488143284302155194097773358464851695963386186489795941440725173748799109438584803394925186085430060666848889272227992420762223273520908110997438633225324719628765472045608876472732439571960995637185842261682673732334196157871447907548503887923192976307067626305472642981718051191582314667501573491466385604170555210892677948717760908114774136778375579457438467969502107685092943829848167011231223510713672785494209536969263861247678983803108289400286777627788357660849207030426634013412317689559121406921117476901659353061782375598620130018374355216004890783320521612979878752319459626958518228536917101841054539610120914176074935276345712779951665792968962502703461486565414031121312871440706242109036342081759324532120927346056851286070192995721082707492846340944044434662181941059571961299306479545690262885972966257251432749655433819397212235049698453918234968058412666432822922249331296945785834078457938255168661634900991329169721399160736372187342306634963506248021410017452590027432000664698626455208649266148314061808704209533905109298219702361893386657505462455757328845254445404753020735788967120858672027858902241303261534796407304843952558181658203439723276413957560550371632711035954216954162134119037466110761142526894270011615398489511364897168281610678241786362704101566505734460575567199567369692941253333822362632378258555594231547155141233650793052554501412797068275053194842395061372950627395192347982158011927623350120763004886163960737184572601578655846464185494677827715670302761108745134944207490603686849599939590330086665619116044878227892593937604822794665893526452459958056276157917534369454000038397904059843575501765976652893952684950667571914505398814884563646845445018958875255845370155045599170862398669874392506991750282369340928803740118393110187202713706546352356698180391021875665996218436688667556321119358133843546020623077582784097609665022583800970382385783401514355181129520376405277597012418130246626602057019824295170403164767190500550453069026731258799688278571127366079677921365095892783180792778589314092093564103706076429153991830389610247103107196681768816774062234240563869630324501901081072222884981229988863925196502389932282330922600128288453709695228372069178044228317866425151242446134464076911784205779207789516000577876352615323868736506814540551787300628251801830046618630490035939301323268801783337058424276722324888655922496414128768589362079214501176483770742803197039664952961210149894712781405705474006554131111542053576486369364739502905388581274203692498150376691695533398208145097645694681641560153226920980090105751491795657261769875528782357034114566641681737120891326470796330113237702200086551289904373379471799315845637125972987382625036165881530099697694888504247978113193175686467315190975845850345974724754650067795011683730106939946093329281119354434912199243316130429871793033278861362870535311003241730006581115466085935360286175176696013841739271569467513070545513731764535161473631836286370978585564881432537765724478687430487940948798534711346662295534646184485363037190851873583387655693618332424092533615206046476146509506418090547500863846658791184667230754322808747637033116394566761748836444864220997593743447469726931487318825004170007521059284468886544427947054375934003341749205592675006227477499421923824341391864075450275415138185294517954228046941167806489371746926765369204327929776159651404905289587491462994849735841325521605607325243854521507166841736350566890443965100355071333721220207026797350600808545762768360257270960268796671973089974785781639406902600110138783123827331434728127475191544074465722680265233955485181102515112113640950465387571887591378920305831587100346547967710907568819646559307289404265627789764257633640736378620015746207625432677147666977008688725537192663461319909976425262720267818859449315934526388594283518176280149663675828836632168996824878381695399693921388368289490579366951673766509515687618279458446076588118471365042292559739300036043150129635394554324760586873304785560422045889593176539622634748255449372138932434646522540225447775575020512346303045152113399375008959164136500899929267423755090012405031612506936144019792863596562459399556806503824406011460523233119967502036644656496986197743139621029467357659250553262017139308903673291764264087400695508643994992966561753154600488172216035557324076403270868079031837632147470681666483275112667655191831344605064497181708662516323219156967041117173399760366419159503548412919184653827636482593413822848004437767287915704553442572931098513613125467919907598080221313861091191425150800907816742114147967260852401948546081301342977114544362494541065274892725601818557058983964759951763075262214996079283836593885121900531401148867355977462554585022664021749004356493371262874793187868720715859992007861744001999443198129811946485499906463804614385728921405852184217777962012337014532101861857142856779257263052391629373227966164910323410553819983992848095154816541851547836827869447190251493070942993525856069713727959627497473698421523073369542429046297579620447588612736629064964774733683506920216553426074599963639598234270073693645702750777340308962819247341087725325844807031764155952417162704752631812542831796068236535758802054032934247535012882674639014964879421773678261774509902697171276282390399714779173581539246135762512975573684332122291724524268134707682733393742354088448483541033359348469322757612184891245036954610503295385902087263233953599146088689684079986073249916486353361430719698775123913868548452744944955891979030385402264773787490990307305449779335617261857337875892158151183854004008503943154212525697288042034957952627057210160019316132018123161092861997377978411731229504824493903459767583429222448305546717221457269318342444303141155485428687202243905381124448027330047592918391769858708744538581158409633493669240725699210133411892185813054201144796946657676693450376439333598134407908667313116913868639560926732389566820339089502793596846016287683240592575025147010769956701609962944381726707644894148776889755050473320671543237233254458222915748318925075601187650316229473805834136977530283699422766932678815362175094215151676499167375719632326920625224228101895899453247197728213672063116331734883159463457513799215836109663188153764070076630542947062758602653995141344353874890378317249502688929519354715837085395668746869603121205359941366319334910025482040745263500832872803250988504359493784003465576673898681270994322262789487932175398618748362421837248825659894868705445849142941106878109904010876739284039015501906467769524144306745804199510261979267521949437307333966040478746245200028040929410596714803082495343154804257267183483555004398023159836586827529811046130907714803154155100029617524299580240392693064328475613956094227117165021318772376073746160345777559481813074139015778702457871433061729281144854662890505797131028046986465803586034629589163667507747905224781142521754775399347133667710338510550421933353703562801861364918885860866142971794357714888120941681396706780121946040598406220713936610700058665124092339035488093932620900682542985482397155427990071663205078693455141742305627553476541247025882822326769922895562373214496166982802326665269370042734056261298939747786471586800920901266370916197899449328060393574187380680201466560145588902132350451206622250846854516974284129585417330718048727093475563379325945703678348748411509573438121673534279513563747654941971714895504069240265910235157749997315120476269499808189817640253222893895095118696855575962008637508739638464612468366577147693492226598244291211348315579699072162167144928813118915811282678403648017450089078751820719384311789811096936880125215658279549283396190395541310068622997933634045817426828222020813904064083114268931458939980576660251649001291150901140378378172769120810874408038903931864370738502746432367564003417899454870402869221289909560934428132709033381667910087071235650470051908569296717564947057663438965239167524949792864441702867454758988770986380492841152506231340613182407013567282707772891657919994943917573163223634817067862405601712746323880955686426697286949099125627118869221688613848884749894364547160720532480630272472720193618647150516875111211714527560866561905295685910129776099561246526531931739297616652161244825909998212285646567278355756643812121791903329397308057809767773536352361409087963758322551888670246922570335534829707960782719039565457836689702506935068655268806712794656447529060310812719199458675627936217420708566171878991809222892083780080060441767673378460104885856490276501984163624712834730627097237109559828461751912244908303242874026116186066829304848430957144865169345810545501050748096293744059414012888757496232020756598086997886207506195235746269072824294520678752178791779092857417687830116770618661004379703584864778060086897400917161985754959303782831754311185772005993351927747772233348361820003029622160606675292309847858750593909168257061870765963238012703956909676704111049055613836529278059577896637288154972444014786192350761280387842079195241474697027922047182500652081671361498472272569896383654362545388899240535839367535955855812957548998665346271988202419219637136166338264499810213853100831233513838891611357283707917507093944443287290481514552857939865242801034066043055109460049284810169664518969540045986634712136847679177231486653214122330967967062325581640489247944231007908913603976807550918597333328457364628891307279131326703905853290023083278001519573186283300657239456923061826578170840877227281296341986445554065153737093815007878147072566735275361123088530830254991291995540746608923594868212690965860055819016437841336490604626815125292620687439003813767425623942402983416222149686405171639562848301415960265459393955057187616664123936914479722246186775079818261192089026184851091145073565307486403709618321312615337091022976769774660979866943076507443380702304190451988268429086355295809393053505182847853604754729926131168715509471992112337074451231625090114260733207186029794553676085545128837010098389658265301717726446769810656033822574257360247380794341844431539357782721687478299340351250552092306973742735697605560084855968027430932942156865233384321782673141677830080992204788185263078612060028000958381928716724164205635334700719165212258415880035413650801966749141602716918398269667670290641585175872024957123669674390292065894154271608328283647995131195909815124786849326480787853853984889348377246496532451622765396678937962168454785358532480368151922786289868779807891610338864032897390676424069405387271475687445512543617296978140904498650674734281504249309936829552601951602610495518697473993700876486239250680762382880173496050818628604056703813530501634672561173495717317134061117465374490396426428715291196293069396863738315929502894164489528205168746838287955603613954141273917887923064076968543639747554035683233053364762128150957950291699773849015238760587205053194744374293509172478913038369378633274656293498963322865911549674065539305740828401741858661243577629699139759633491432193437506027225918207762667594456843355428338704221026845862843486170052293113821030792828295846474716540750867950541834365990158126810709394800955133998622670029591168873724315775644447971139085181992346222743323206766315720371716179247093703354143888469723804093920827560730555569550677157540851135498171659927340528054561764494694476503935351193253635610626929882831094612749093127994569832200229895898458912027074219763025899872774134631166192841423443378450453398156769163160152060488728327580066352553724612169135973856981019958720104304740801534962599579357286500023418616466409278436631607770714858052478476578568003856607019833940310330204015847016377868936119894194322856384051050190631389872159339262348592245635157290058713871484750130079801131960753301985155902252385547844612436126527568496809943075392867935215461918527957720989372277628657182039028017495456956172085872424436415796182562393559258179451511881800431183159791877881802034770150501518880169524076441513187738297989004399322275632538923430994048358483213424036123508738190617461423420397509931309402305812549690901009236288197713012221766686630558806837283924545872643940300228338209833337089375601234726888359606339678654315942201761175059454980384041686173508495369819755876704703920156559046740086979072403898212539570196015038243609110480881388195631073412113443167536959514612418194184242323212547161183315042410342758035606580339386295372326514723998322324814361351852517813017340431503246679115413754861043282365737937837150749791257345855130632231634096558762051872754891908228971905936092032781379239928289400576271279384962194330945070438267671633969482840844866938043045463292537449212787500214221217277606167925634688296559615635673949940875830062161670882394673198934316805287869170552821995274898586394620789033008220841994469439095579865037296306960348189858453401482816807913698730843578576619392838411854411724580309466660225030945162343734107935038316797223510785232175939231809095701013652200022067932933268841658606057294092017092785105712872093897003924822177150992024538481141973673841779278134544121176866019065366260052727008534152998764966112970200963167199663546065352492789224380739224297487171320837769802825798610180092218507357182677295691259812828227548350503320167634723217102951405729038180898919156075972711420325281712982136332331478599474114748739855428073784761061401454026622737835436286473326730006131868367860130881272452506069017521855108270306191646929991132500755521660055031277365146728252263010280488832870512337533698965209068980309139034358503967513470296922764166393765716695546466512788647215869951039648981847793304679700991209082662455746529369279812992902556820989954078020903026172432522382900327679951800008073191027397248346631482989493561094933669191440623666057863273215803814624376546460741502361133954076751702674719894625163845406579002771830343909840219409115514186268354050022733943071404675903916334311572526853221699939402721407977380645245325753156128158235744975376484696299332108008416524009400447406076699843194742893587529349663595730411401603411271546149916748353059735713611213698103081790996472366189972068648044321304543927467340072849005469499370328750660067027022980708827896427054021521993501097329176362339815129473922468116946840837863448069493748339734294644062770348830779361610623064209337557632780764322496558335463842608574448111957041035077885435681456392509078403222076442094068680143044692098937324457652855281463293976739139006003057670305077490874984811535353968430013124464995164162060717752843153109747455220953981257198348556574449481778760917774227942954082706470627233463698779568730037922135817750536735870828942114249353303282747481150879786953957211871706183897407335987953630420770287182679887439508359396236833333357995921041550961676356711450636483751935634673276165261341046045529520613870782091679848755629287685141431640785856742002674088918632505704711331152269035034233170609593224421896738698511791350579776352013818412380918648122823327230536557169871418653899877244270755963627522754783731718135982643287316714380759419238900430116814481462132687258510129057152192744696127895480378132980964244356350967554584654380931866886638334701185235976805567590409431332737742425553690031824962952316877281771358194160025104352418736599240353056783298756534086904830055654113408892016963238166285624305195842157983460373108357151869846041888729058659708847830635074207666059976639607947844662311898221172117375691517528801967061178225326534681080194943519071824255349457476316621677023007479833296046043294929814875717820771113226444508246010725124432687841953471547384661834785659673877462517986731099465803269289421051392195392063315304256071953295728610309021188899160074799391449262901257128227320810629044526525231137430737473594102996435006169798411661940559558654779160924184861988815805202662845840951414161859086614691921392627067357312908356463199381571795727704796411142840885505711675757235237032509777003621531172363942228272712801414917174245161534461098194932091326673638508966588922135997719153525377281976045973484046632372213953073086277031600255075375762980256357928152441851945796460348136546709676277502273265795993475939568462779722564938142528467041725018177510434827219687588925083212424963585510945795373262395976987831930113206991091865306181254153636683028341747818247666359508397271183987111754706096842473962907574337558835387112504910016019998426719506190697439269193783127697977616488559026191481215664147798756087258258444058366738375774388095144951768117883011505258533612470603880140446661641377719718470980484893412959271803586057403287698755018731791501576874814984925848695734691047922838773259057173576577701895431221666325601208883869759409863987876927734604594474667298471724645991976154522337469430606178049172323618626419899548990131304828229304390619062036787019075989289972302057277925995028124273390633301844620531849884913357713344029334396642959081493445431461994412742639804951146471510001764965646685133295536909501885303770384772887181872470171021394935973372078270034105258907723919391805051212525428676800500087720109042301419583393529657525008481954896456704329676689692077263989687240374250438787918672919510384791391746568656304232811938115019073753974488339539265217493146076597428368433391693321607312100178174012401226391665242524489123170828813722639241143079840461758051222378263721099826484946832207786619727343257315069853405363631465082929197110220315664330387849855564079526123932109440352489226480803742851616303613325521988095001443104124897036014526663191410411756036763095096065161170062900444683427544543832108278556642493587193961772636262973445075338849824011881641260685883677622809099206693171230465587144672430765314174142094342795716171609240963287229594481042307319581368498451863316979727995099477135343741471639647788646658887418995093104575506987793249167613250758980125718450172161449833955902964709114149524578737810902809433040313258252569446417194634929742668828963719815379030536837781270183932455097550134210558947615511480450089372101996979549969698770911132789141196538425275946888387809120323076047747770499090173978244961921520238824272787218883159744279098796237236144348874480312396932392771066349386025324530160583152360822703944317648052785386254444600760779050392892869430356943211782319732995434468095244867625484867949930415596853353720032538836530294269507378674498892456971239542442885302629302509959244713891933509447091382771421335812188136092652159898077416049194543776059202964051455501187655678914633560490319569670472468566230937927906858295745581850896159157250625249280914003127228516727704337281634113310826606415441873360591539346370334043767240176386257606760482310009240352653156097773613517646699509432127396084094963470974702738125965958195923305460834989185048270711856572971038198629966339481383553952756032917237124715154012775299941579788887997970353601642420017125700619818466296349107334940027493281497488580941910944331398425247784246099407793292892731787098047005315603080676444501313674025851617159889211107067792668310843993164438732203132634633651500817915383848521382260261784397348682129693455730717668133130377770088520891853011178295071142002546872576798589467762630722473089461288582484891349404895389906216853010224928402301797026239038598043795784557770471475352683168084632126125823403750228315087226673644114538141676166845482858766856566079703096977299828497632625260266734010208232436499925758614515778325643346128919980825809881703120862462369428694819257494846507788507783526230589168923159490435499043487655799245236646147010747531005189787399023840401302941348293598456837315517756479747104559857391315978693859584058978526623676102766565444233526571896516691202656922757586932928050728708796238421660167759148290746144801054440012190951506597428642192647984640558927390088534002458822405285682877707225682798353077159358945732310302718725540886703522578124153534419554439120298280214758401210328706236857431365096458526937954333023362734938880527415508486889620863703042205795130970212846834797362160324518244585707399571401471123159973590469023693322630510043741684209575945663341427542063117572441546442465667943623295105210533672020229321061869559049992125334519385932539310653920284236136821147709862054411158712065745586135813033312298964372138133037167797604323482412826795315401436060134669837018871290354963101749674942255145471323774188804156638690176066803490497839108762827511465816127498834975740316531189470885522469215282953778755961044457042236014983532553977331585118246990425466738323505909113866786656003387570197937523887087152183803781764824451126977401731911416691627271534046470965202179494628789881027212462427854675831415076040772880303685209019677337539498381011863342482883385330317973108337073308913429762117574872416825919604793359219807180908309739680079375314571530833329090450265792213101766976985854011046145579239777218642118176080627375134324079269643000675491816984304946581387489235400424486988876010784328897841517920651341829436076767019072520158737283288436163348348888007672749616309683930339647140961439948341390253650088155943834816338460299391558271555483728124753396899162661734056622522755995609922008954262935960684928562109554431771492330093140275207889526255393796512570816979413972830391891668265079670126057447593162006623615912163417194291923914162209489769219004967342912896494771068846207991603159635163521499478155789967214261906155660696015268593954141441031037826171797203617990272521803321514151648459374459950717811658084529507120855340056398169778689190190386093204179325685056885624124038878412152769450530685666343155472649305923334507570871970443057195829295087498443848325094447182696639921030392170725147577821040271096551191992155410641271300762084359071198266138057634374325909604346082498376800991142202777953212180325419319021423521202621677303880086446197334404809449255356775572667220194920332907718669904301767891908956755716955103279495006749804017366103876142669810125813451907754164874567417788133585571616474176508358296170178225207468209242426192911823744102400080626129665799937529265525568066452857830570305141087907062691097325060935171645514633535400942967250225756692581236881614038506050050558662256540378153908147919877086177806701298817150019208757365753611216249596565108580002245943362488311233060184940091520282483703038490711725137636181705927432776842014249117308155524871594643328007282381713415207871696750164050909068907919914662038472017930472847787206106440025558925932341726996128585022208577032445812586509557640219951196764420577317157881857617092320222333902100127664105433195608808638029094301808927388582386856752063377666422492640329390737089416461766110649603552683194553445169673772421728362034501257208812138425854769853072920342302907437653389471812884721533990236641892076823554098829794632535344236195672030235923577853627379503968937753414781069716955650799681141749313594342750636234781709897718177443575247482639744348005029182854421666979028757117447753036889615904557427812086893897545439938180253984041261045574801448527880302610180203554290879193454108398800619940433430648740357352812046403521298168138781182208323612833613037675475566362868781347898768713286378875783984059954610158219388159056515659529800907120756722967186544524705421792414808883873476686301862723488910545271765889904533509871841159172398089234751418346028019608607337605675222720513993914118441826457035662784342734552082691039689748813957772990640406373039253083805658729435644523905996214227351973967545141329280894019196090334755562361106585177415919176536554298041960063209062414052385387601214105327482219934596351083924477821566440792296269158088553523674485813978259780719777499707567634530923393518039157916876270700584841282500554742813769285892702908644524241941189598560306740679546841737652321538240470780370642851325669721991489903732149957032557128066366055386382461295407372003123421083205408793637799701221465221413801232481996430112146159990021200276876435242942746172835160537666791553055090074163318016127064727444626804429742741555027157174938440273748654172240884360531811132057624032865172793080305166522223915675195917288827208129421374673097132014255150665000587051342313310406609836448842379033057137741080658076279350360362507562089863436698050363839411030487362687332198302599775955059529292086591377067354742814040575981888077515139844157847839714934366707507116851971097816574768565312439886538588784044229663425735783314751678386849924689633481393159380402685028286363374242564138579493742004462628668604559904264994203053332893828235615951943426442225369709821831525350602182105228932558767712710015970712835945285846230738080700119229899279618938517547003814839207412879517493354564160173213824329593164875747006410453491002355322855663562104449738418347272391480848038402382623373857428067489494563038690695836762480410927626845098851633865772029828556697366733720852299580372500534906750898145990574533357834868005025923568458642122855443031360015779970428856813557858548490716383334058309247503533283495632673738498796502207838485539171184446633452379871095268209214798182136760001448573560568369131674317640170853062548622235247261336084173626776616317277494421649971404009137361325012235554016013611190708609396025989880441256256149885311945760027369711092459063618299376627137478633193954060987962650203424959173772268661299349398208331966316720921302777569064309258001566087485424236713568054038776322116696966957715122834463294486487574544060349871133413586382367140060248928609239424477565025787366049118081295451927709059543893038809314680307229294873626418683204744211654320947688541705349059946354348947647351266436841383587707909038907607351682813944092753868189844174990884595476732724669639613170129575463005171095192035768028608298934800407276003693849412351802721186723387337851751870745757216333307813850467454402858913021558609970120603188722852082820870816763368031593178784340260390604741680514741508860246989054868906138679456311067203939410626886617505732436123871174767831567777000091413535669699836895850713976400185846545349509904424952374189602385093960484981466035077428312149047981333896089970736445823260111711346135344857392914923104696005285911486311423110303611070690797886058735621677872506890894890558750573652539296237465877180885076820741974396695099231787117761311188521816795805221329531206790684663009328516430981199905692543330629734443010715361692020538345864685779822253315006462445616641072978183657244199835276420959412156574874771907861730312284567090878200515284411165679688837836709258158786003009229284141328773188466681243411470091956400414418691828688754368337442583572602262665035455375981426295795853889128934017949046506651939273677549254965306175477715033244731369492087707931667966400510639870551936825561733420761061614114496808910358419992093354985675936517283785506744648144699365898278157738065229972022945852921648918318263698002335795387310576819627288686080498793011604960452318915120032198276321001416038438605127387405290701075630074462032946410305868171873261073883057225227579636948342125379928944893504576991717200065858905398804181186192544299240324554453417714740183186603441281780646950757918360972319922634229465956653278996858924310145492662869497372300869878122826752736798668686857641474307822873344635452892033305134373603204228644708847975966188526281025561517558161579747289638829921480671552262766529172607958904280713467018675849958914448383720322143139661217434499340038411422341446378007451048543365992299062055742084688339373609126291546425051718488626224519244685114952376088894858443319732193242585072809451359895331037325291075909935016198972728209283177259926681048231989854608750713815633890195878139409010440407484650860947730807084788272793227136395770956785032178539285355497643449985440320725205907596205316432328342277729833709618654031644596656742839613846734318409687108718949485280815014735970266902941482311995235723399301155062090446481918811600205672756776590599181997977411004566301542700138801489207751067874621474566631404836567543210749170726608867687826415706187326836349631688132812926265428480711674604345967603985266301625008256437098970886891821372737314326795360773218618989827905428934964503772260237761080633865947892060610961990660626288724406344108503505256758624156267650200378364253404220350096322880304342340695135066809363302091207303227079122266785321002866147949055722612424997984514587589125928527689380003906201451749277711916472767162057766430935783903849600250829198646970101451874202125845345121169199125515654777725441547743476440311945002245811383111256725027322513988350547492675938966616412705645911754112600137107181836282436739342621951023692410349413968421213222532228702021740517807950693576717956796324004651495000377654892654245800524094058046844639948003861493958804523557098518671750951618924036219739293822214666555833242917394072240244100760484943636192198908059777433757218119478129701686255846035468001295766696297210301004917532223110590953059193243930941270705400118643010733501440068630970949651785591544347636002640531834810062039758083525276618208185057298146637443917395587591227608873064726379212131747710433275535856164745578164341516040640954638751806352121515490336522494565211382464007682490884633322749482253010034233101329314212693708853687794856660700895882371343448483553568857160936649276393110546488524147156199744475199384085367241931036825409510657462834687115035736221667598568316769341867047175844438307323822785054209023233791175457992517461257739025301656188716724095709142952119596828128543695176461350337673995280604578895633709612179069527968134267266055993745195074756231485585352479023342090401357690834319236531872070839085383002235467905873180059971026383526783667048676853632674748996210311642643409248297661026825319677137930126092299819235420039575643328105435938975211245423444068214722088422585615169772155044077484986666811924247671663782158287369428546436969558838546226624953834574633576138757552400734014105114078169323945464037432793931480626338799663775947508961291807214865380473140445200154766124604126370205641362442642889261264604676594348717534057510521268551842174320896459668559477280939417245492957787624413929538484016312292622074363262649203007930157054172909653255246661274790945442882282736690356791645869341294468383844577698073367399337337071592156646951441735501975248063762582846239241915759797094877098513155003784074440476711916085611849278297941786534600348415901833743353598457770295061103121003392297288634640579482988720707646682221330831682068639802935776186733462714277804114782059708369592509135029766352876296127992685471616058704256231907059051613625078783448682541029743450513889987584232115185255967839652637721977768498084504697271313315502603944761380251378668119818697241640965470218058567113475413789288890205835454323845166514378872708189267408758347631203215621759272109062848981833860830099505518140094627858469690031722587291549267806405335694444683630175238045881418700515497776897112985356731765878404222798532584647366845380014903502540973039018820086985062664181081209118346182137956511287457956914123705725154744183564282238529706264579902636621561228519483669868752471957806837203257967721331814606328547599722976396642401480700031190907741197694266432235439555016390700918928408859554125043416007139205335970062326821875750629981623418703871476418690014671192232162737490280747585100939780287803435688902292219518373106599592329141459597296162390432509991888511541775421827437431109526416153932211640720115590586132058288773834831983243519924966562369283430186981028042273414964705014002651582752711567352898920117373633774744757518425254956151669166858418624751735621610263670804683484214607218244949418505171326392467855993216000779119298687151489328684423171735741073829598868016470661441919006064348060984501010464654173362067866222588784781595340701927740994749182590726585126327773576526292165518361519715005112100610505851855643369143529045199542838108354210457879311224375683044054806653152828916278064717726434073169633502417733399230677289378539167160109045366967557316400399083170280049390297708296494922786800276708029639131551098271597846216997284402308975704122167978545672291733916170887948740715785247825524471507254039378416227806652697886536873088113065614393632412929660844463819210475800956224466552132703619933885471711473157215292189131065428426283414206196242824451002099591175311477814110407651964447491494395133832200669721925186877403287340767017086960679217127247236891551541594219060800541324047379860589156291273862034458665680869272634655852522233250344375138078646351013244187057374426265513529293323864572317387437959438879499740091621996979633040155416460375605644525363199525485892879570574919845877996761450887019353485837424040445272761886112315738859633709029162080175000303397748301996759953268192227036348598118573160293607747397077632792758415302208013811343973011586506123797712754078986964981824446673542863913788886988514647469049178326474846229263728928143829707058000604796875866595020979294203681542152418368577402884002112317176803489124467909911924740384127529720914812987119060854254618811868251160598900119090651842927623974557268289545738591533748831484821327097543839297601506939535908745394151248016757227735171698993223465516085860702324660264617559259863914307225449435752259212707460564361876348577821651500289638092624668472968555081102322227484721496353798998169830263535572530478167451506607738218548235633041874233964305802775956465028522747276756055623817095934826227503607286712482150684709304010501014178427442355326346007307582657931343723384923851038812631738829119054581561352770817956477915539301691869275203875638087754699520840057254165270384024327313119227236488187841031228995288283335417393827546621227714158587597546029501588889687446616215225740755217799473557464275560878412674310033285679852008888753780699268073501964226409729010063068539843443709013529879990736325933288845009226208090162517142321614714946536436865990206221038512701881897749333221821098472625788689417171330940138035339607528980518072585073636257592665352006853428551680634360735860422123345734156474334820134698263052578771697710277338124938145049363561158999678923940207840474752588942248112347968522630856680637961866282609228766127551914777355782585329601447715531492219075111532367635138119197191907861017589277751958925161753414908010504716533015646872966805799315717557708145846876541935914220927914135512769366708478362527994162657945646303081005028725614564618964534842384972295806997175345849609175273797371075774217451072418650416345234823136398596980300115492024575872824851340205098336176031415764588814538277939845248884252078915800022206381649562388259440595908117661465087720769032141972158545646179014428430007766526860504412599376725994310637926920120513280049494925278157881271438780720582254706158250113768674621578951296324020327967472673481827522828672769248593175460335104836003275218243277340292885726500438830832328236617986996959962409647132754836971634719273886183191702900792119810546460556465184330579009379327525455532192001481542379597604367050444902728795182449318122841755630013751700896454754103783528595858744838590940659580053652603508114716582578401766570879078963560096570189227655694550428182995924800413686968762405879725559988217848809951221073535152567468188223460988502014979744876377755579734916919484166446043541477206901486787742691044522939042976282877439788027427320202667789692755393993920670605636857214087645230252698292515599248331903989503301654533121155961848571578270554776706398150353878334500934106430747088633466152777650725952120521731961086413319466370991265219930827123753276171730577216930636315845199328681093150173186463228392986513547630374351559307463658280688620597610671399126949621285329636730122616424326272278014832993210295127063255823881600975499968342517001210039807561649628096155576666127820289540521790543456491260893747697056075555117525650129875030205490116796067669048119497643076802084771838750231296599210258145675597966439138912822718497839282323953387978085066128675075720628295110924623991409599836459347843119930050904502712600248470937916943327545632096456869923410239520491202252900027408988756915759370407394004378630054448299946978499000805316279410746988222507365814799445156583140398856608524773896368836147297838883773563026165939895132184234652304782883344734344482384024648576956474721368515428203352873401435927044455185999467509330257571950423152156703399299133659861237676082390949411503017396048867599625190394857069233216940103721668291681316194366135661798226434047933350092344015036871817954033520752712525552708262727299806345208105653261385958496036690826071533846257187837912591282447942222200438429804712427719168565544692811621031350209898972460837895819146452723728315452032818588838145022527535953042868449746274678380026884029862441216878045020202292889679039575514047808762538855930039460981003731925630544689816027747562957999879538982323867751304879442707783997576724353808193490491802023806031904477374799452680537874155935961994398857986534740298144475827403753264611986934514818024791364700608658351000632842413795530421238342652883892588451877257073693731707715295961268689950239862757237873489138166465078025867570460369233084306614512756037286254583940945108175865092792358137479371029608078046073121313228304054818623040297746245452705045703257515655080742045603338731273299754807187365986079890558492760693043236565276572006088112805309122820788333822733376146471329037992467626606072176658329062635613731845946728537652894814684817350917458178498798461553998902175380800626945333377284932975866647172928547386547054791057709258431428990207718872550464633963969577529494840501123511798206358621343928227213466363600319822841064765713857501882893892375562759317588825769275213487446958586500391110195697887632460288111346425207593301098839413917962149488892379552054650753319237061791388736500085129366616719901694754339552187243134664711997018384040771769473753078712442603032226165582416014996402409406679546976037865989893516799645211506506532417199497308650852230618682173860904554408208459506839644810463532137051645111520232160677500850554019269497869179382496626710383050512979618340135249217036997329624609836474968739001543251499762501271370755658168685449568423463084444856039275221438560911468884102938863040152977370625623417732430232318458346176058305684011210783974960926873724958621952139119908710199989385886366647126110470638232709428021196629474484395769685996190565851936368601171892478946946248717868202141670764758869820236113519345505401194034017674805277002690700062872038926383226098737278998424285158175182714781292634078906333037328549642764526691402391633843823936040698145353920866025180542352757365014015094962352326435329898693550458400933071102874143280308421709651490769280080911909048088304863823547845817422159292138852077648729329092883849202349669580645465412508068054013439639873030430652907055341083809150607731206450615637208394666748479902306850061836860223118811070768866403883103941319798039919910281524955719086320338107213065221613423558016220599861569435796549232540330044743479749864859127085672748562885491762129143826606967128234032786274123855326562068123701511613760835749121298623138719744512253181440827688642758503385931634819653928833076363524906304320699411486431563429393276202179691768768460444688431318905019154740046800007647873392061254869732402460357911242710774307766848733201634619738098489967513048935468987256335143209827381525237485786000046540716110430386551247580090500075042591820437936972067275432778068662483388046337278595498297483880783990887187144550155297422296475889770686271162533074934782148791297103214213915527514569256723146631464145323927886886942367888610035464770715564833322853444089894746590909451220288601098527788327135761030941036298429979000108446924233352398188924661229239426941095466839477046314195968681340754076450169288349146639012731559365667529441864192350969517054003089933542378213156665778516525119006855171406266497600816350244877217526564470693848531474430314330993964747324985616953579600416495803702208403601298794995305379841287982692743945278409145475962849904291304530671450055223288455636445099517526324435399324448368458864518433102833447014725883729811847986875355986674467067362136926784345737674023559981213585717784090132051509139254084576313475668906119003012678307749404396912240758360131797348452425127020334323993952709874990945117584974175337769918512729128211433254196597528114504990672481836467763834284793045732331905661532900731402372320836395821354905915689337191902763171907150302708688153524010180690974041982587964299704596211022880889168493950021651431774532727375704361783404155088325956276640746165111186603609334710377054185739547228469427998171449431904611558872142636154923233096142161729270437309870731229505552328789547710649499850192557682957150935386713162564082716107624217127442312132969724240449219522507648002221017916593438226902745417283014850661731454595196398260496671974761243028001459708311866673442289455480192954867270664674619222756137234862734367530916205494957010088979630359631101753438519562788648099087002779367951515688073320846286215624975035006002924257885432757380081906314342891325009766820461049190502457152118223795059603411819530750789466278814620910269128459276633070937495772263013254157857092134620767778627520136302120481730687215845569350762182840971557983275266728971450535555122652830483133643288395083471491661166339175356434089344315710907863733833863529015420698081683500134420421085501501444882855449364429953003688869671891409886017045311485587855922752597056526184331060631759270247850908812842891538695739426750807284332626770351083598359864787122740576824934713040271856336179360452541066597504151558551005012457221956147089580598714073755803699082380085537921290911646795547871530140185905391287732857743521169927776925217326246600433838788142696751878568075918024736601145054142577197416826060461918559031420696832181633961589791530704839526534394854320294995223174539512217246559935796173314674529071128370362025237832151405174755318475035668150665563107704864015548854377243559301435892879500947375839618896815567827680930155488501718811638773215392383706956032493768873433391376025718977201090479970658212843845852015503501579402087115806063304343400485571184756383213409415685821853730112568159009503358127758511150487690357412115574401537959178411468513001071212955407810379862533566142153002024685129747979286782663333454965597728021352181463466432149098566096338979573750073723249442739327284741604691487037784708962102552470337905841492367054145890880255539604423903478864335606198201397002653173542209544758306936161882636501915716394225477215515484101090399970351818182368541178987214806487840523073487335058596018543402970502766372706061606135767386091492238332313433316184080764965242585717266901128657059058673137051949027473802897020998939328388517468036824314422187216951760442180360339530039768418109583423866319794184279510828819088625720580876288691087131093695262048494036923475825179050996624975400853156689432535350815092038920848914757888869216692972674420386369471134059375186196234863096171102294504891539862089422923940804146311987307900922159370811956609229175843357313795687036076256872090548062340359565821714589456103819128261226093196923555088582275573617357196069460072529986254972513699358130771938785322195543014191680779368933420785756516848840638111865617764611120115850959924451241509310824295375522899347112377447422961102945890528186856300858592094570853400386653990500342760586261763646186185245168097596174616279180941505936656023388414579828676242080234621907094630996722049639813204272834322814540665404371885632769156900012408889046423275425370528995786547783361238335175596905335318282944979987351282668106002156972349328558630822357447385801139751446262118030435860722436400386390704495690643027849683337889335658424733624066023401902738439735986769064065037148370337714208344793352964711493849202591150979554532850503692636646614231593239796530164663787009340702142453263282149199700248196742624081252864501631217608585525890727244097270369145440462019239317742658380974565423511931322359952010493846943699694831845358485885632030130356804831046956925486755900821598901422258192159506404958882227010439614032523825181555028072844096699445453646587422575639378317117887354152089892174637810793233806044698983538718853736631775045626953935977622805135571490205564547684905001058854629469270934518873880499637711356468743216349835571107211312650925383726997561010744678313293380625074596538660875822123349616464352112457471935289986974032047859762498178502423719235198169004120068870625826114667862064430234362198309060554733440764071442220935148364153425852654039106244238098265838664838282399788443515358500089098901680889272072563652265583476020794115117943321914098117195078743901374948416560012270106750305485590663044721076055808051708224241883688074296699866010250007756575875118983476399862845013635099773385297083316886862014097820784288719490135494189031931503055604328386246844199322883738532899657984495704845351105572538466945310888163775292730367631442710146849312986691194875088435001410052544924140527162774104551773700201171670337395399288168659444851828142073688653496589881861377004749546810983022724563494172165480157177962647985564800200115450203083907350888276995631887919164551832645691116231551491112153346936969233674637838572910656132347266599965525975638994040369467225565767608221031528900359712170572387827035593471771697602527694120400780606449815701781488566510740335577443601776113404342857184470168519215376883006666867603127555610655325991490940054828656576143962069929740102327356455919780685016860315354867326334377715535179281790834461579054215374108334854643072861551898830513469295775929370038081744230372157812941583052482625986800497196275593894470615696553118435248490494714714508379209952737972628582906312472282605784342366240435128876643359559167814345132351967393462025037845544553593280246545667065004430225587183117338267343914730154043752854510795945834286031901083852006384222993555667263414982361171640896134609417124849546178972246205521886606340234142401508929225076641085151230229200886462474048930225071208822904399116942281715079491950396967670431593711926437934282323674812578695199745586224599555580394048167527419257782846035480832519796109539079015867981937057775987060002222766713212065267562744659271234426184355531591521004897253947642448887359193167512512770305332146843164487630716523313976583217114720761048618770848315289473062643185620668635619079489531545054201840398363379435565602122871055370075650945362110122614494299113005858590068119067855227063799778626555566464258642809168064671294076953416973173985451470647465519173015007372235952012048939805149606359829082033053829600279670721557538744556624919115873617453102912051563462325263578851709110450065465117202206008846622751903236974264616991341363550939371595385895114135518934935165668603302770864642090649406667157578750308494761882545825250637419870827642808504334665725474726646482034666048562040396569215044364550749017347770079779468790924150649969866252054022066404615079582854205362449679425355494178035401973614531162825361395257176457988197278232604632372328456805101815665029302401730294686927157512430360061820349695314460695427990245952574735879841467903372382862027960755057658004917335386428054625948007764904476049443628683919548912036970905959845269826241368463404454599344899921214634828265083060702826494274787384363316499407129642756875413434333404882882422821993777197723034096361345451319468360759249892753399399843273412664782064916325313581325959152996150914009345670745648360218556785764398176366956526316009359643065469759747169289422716644199934367803191925576249111998985793053251812803294870659077652761349759601079423869071698963917030488819640776948437572024910010090514368520572445295307381864285895503822367060174725062618236262346070969617242493828402820585118879542664639724503862768012592550182720000537578101819356562733762198803087147891575865941400588964143861464918376983617019037606087312072983021245949275569995168064638998387612238606295731824972450680329635906174350853826037061268085577901184436545258038167428625102313129380101711374218044322683774504340298792373039906168505477974480086251643021012322701007892945272171501277969834007989264618062203715090516016328189214949681591351492752918999037674825269299640827951777336436067525109847668960280607800549504983622751416635439294913214170175497490120184039675636925375146178863621381467149309139571952628839055509510345949772169160859526484445261375233612607391166738282793423884312363764986550232518630672755118145560318878362574047906201645809087135597938939556038768843593476772613146838952157317578514907854246763694610627591436262370191362606000538084573504464384301219445013401515403914816266214261779700123217052538978920539451998607224187999920008250141698841958908103474459614021936797748140925772885281756077411027504676410300794430720433314833791755616887329432922397269875096080579174101223708717812539419406916685174471005105793785519359791721740162240027040930591368801411838812327763009644856067670274424438544438441598235232977785962434317076984768520670428312027037737955558429925754362432349254222733250610309950257321769887454404321694826482428517260890384524964910205605319528365082004833377573459444170408265883321993519053095257959797900980847967225198600467043096205157639245306176540108391057665289736256057084522011378719475738559180194008575258983854893866334322553584506865086091535944389292004577625260705232430886433915479655816009388874267606503863900656350264407893469081626397182796057402550578262497731212939210818404705766494482862058061702700800607091417643709701306050322236515151771342756846409332583351229696095612743323557585224479418359142734495769156575966152977705520245016204580913995634778177348286456195987604632250638198881387749362882847814714535688043280848788768918437904982523404475477008003212183925833777508034801530605576165161599852176190176436009685739083574793333607305796854757569296891655373387948683842848547443757782218344862889329183777176888807852657241044790775187181102083785347491425718113903782841431095306146332605649894883154568939457981663056700495525930984272158996415758750316461222171419849413278638284070277897896868616325487483929900121537780592077090478505654710035903134519584762912578824459490411760345197886953102497244533845400786245374357031892768465865389725981685015920765484706606164712861985270765937785408892567789612439221756494695656545068999391930380403631318870874444983320810769004217519817553275929604195110510251515870991298285288776588534197081637920212028409149529885117760540711659066324507278274307543315569875561277234220454192527139932111568913585545347123413073532981585029400182538843038397314214477908789228668409759319062287630535665177956715024763984030435611811063735849751343604609087515870043883902646023317876773245088422025491167129107098052528198367247792021203597778611273837998127196921726198159882888183790307664172504559670165802741660970893122274414472081816835099211817990171560951709460690284319318589978076312399903844219822602436634281263205235250786332101026415710496314468279611894686353911017122260740049855387310522644395854461475016696325763289593252786703459143834088854811333453657517834499853821132195725996948072865958178945878587042641216043763671880852802367418319386404378539568229226161464452532500399187793765232954529450516996617117003869179825600926991432087817890572474306720025115540348822986008647818502570106975238216850743099802084205154673241379598691155731083174137865286369489442572834576635221217392479240106473328886379655078437744576169175508308535880172423454254655357258268046111009220865316092421936350762220511037914180680903958176610009341883995129177386214977497217949991606660753236787285685344117742069647676824626376770830750247780433081372846638635793704690374971300967508058821158991700632255273465745817935301825795047295116439954721079055166396383105718988680612849594954123445870492294111852072810787914459722891492080142221466086165695028869079406304972846933837751357038294016145255379944776611389633464828288330565877708929433301467855786339900552367427034565292314840659290960712734557807126192622107575914988010735205685410691705716674538426656494934593796622174670172498301677950071626111833755591917235465687814798178134827407917966685274336418651856871784416342863674260502525154620730384271500629721925249327657484734219137129228954950249385619496505246282219754713969732417821755124266458991118017251975471189691019833906798624563941519707966961169023187797307822751719892805391109248760128223967969995530627362145728236199290198911431303916294017571568308019125211990033253802581172592096013128931870167737956988031147777889219417285304851932396833415628735179760580623964120473399451086842728527375174320949234938393479163915734709306265705992835603817809007928226863096981597345294791131489798894067187561574641840930149500850586566776591169712661411791415593815469443821091914601893728294404200083747725372154754443828121330741936271687702456440310258476002284596357994226428458914409823575479472946657734819392377331116217448915976810060703966212430932948920483165075167651987464075038364142978231928595315345565638384970428182257747599747256871459569230837356807292505503628461235208714272925281352497855501790483041466701713346463353113848150692927211040351259238934948389393347386335157258958986394849616864783115131161438001932015885323312277734357293349896183929568730523407492987178308497502846213603997766591027210172011374340667440930322383744567486563793181731514294884655009803231444860837846780914400760225186424388458218844418514435236560445868100891211712751350392119385430662974208453228860921863028054628215255518102530672511397002441632307949467561175163411532770784050439249255676335252530755127847810738748602005563508738179743138297857233770244038751783612916395864928886547112733306187125233978730175339597210919258568351276389472519024592068652076826499856408669782994384807664689793544261890107084233523748297143488154423030627003117310232843534710654436327817665872922238403571645887733536197312335284909085567074376942679946801550685674525238725899518014838695210232013940989950839106120179110932620719498787592357600508311925734165281917653708763577008993191263442072295242527641865665272326992445524374033585743373332295714454785150890283515183211201464513945038835310441672849240110657837310484660384870623133902625578387453304500289470734427993050473813663831067616252615261135330875979158935390972555257328226018446397248883054774085018729412548652050627425079983641105358422844365684291017118079146540139304128557964883487768500108473197387348554329291052418977466830459871693291275641898564738045232914692281352845777323169854926899263204538215989615157681511752578602966771863766155019767094149565302206763194164538547069192247904617662640986690076863110087018065875606161871081738702764382677956020356706480112080046905045025497810925630057425267899559245881690282736152124182646476733122306914174659229814453209661333533417150237547079383959087787508111752843275174964544988924898333769440343136977079535526602570686733324375993895229858273528023317575243604050143406737006597170476757137870962273477664982489297934334639558876012849237033851001976728461729118237827114615936192247905538465002892068443485960426462400352541969201609328651833086118362321660693315895318534006961224720850276383613652977525124742296101201261923318150055770968436424970511719808410419790493226683856464410635772749918110552737439163428148166375967727704212016372527964666213594953622276409075539107648211987492291079594502984436015149822086607176712544618568777005392642639777203703385675492347057017936325394022369370032130090315886416109172618240539869373309744511978475951808370321159323443561921841998737519995374445501393049354999079375359547301795546333017806241435405057485112787204561473600940061243998535804010924490501838468749895195204209929532548009351603681810903740832558290717398517346698768878435237738540595126895314018690934460339909043762251794780010898178345877261992211492774622196854817594518212676585600442230634908671740517326863621072495616769971590030593819156417616316386595498857728752868622648342594275541182380078474791690981761821630502668912778931618262188347518271791703728615372401089880089881221015305125223583624267241209432833567619882998631182855621674741952185361604747066777904719535932643860180934909952388941359718015496078417309645648625151968054229000528304394528296384380933762308387164912794789361655745472007656482827278964948107395531188130459893305515527800022191582537592875793278342100344029314566182460749716834831996944419741757393535501382481682215787571198572529426387160464409914439156494046649193840957405199805286207057381199063338980817437895488778750931966551724247463702209048424866209357945499672083324270944447896531184031523223254836683701922711902681099392586655387627620968280253459706818713057916796318707445799505207905160714987591646859818262076358047093360868083582664226643434335663078091708833775320847834094958171532285997629611983050810919069347494781258587739011382691297297019505641324326701957217379316203073831561876827123796726223469137584672711172002690846854683560288408788661501211667773532001344750262754147023738069248353080247751629876976972457304138610328450013399758434032316138437123430615577979991186404084167444673182017256898084308782030376982153501836306466017414234838943690083633156993268285157261292885797632109238706561701208233383569411724902152872589571502834186349859371256340131973193284587519997708420173532383477552358923575379600157754658620160366602209576779626087895232047489929299063659827147313762833565935665410153762572102072975862647468531739531367914996555783915230032667038479118688502107760410067320541064013868822819334448248590509441479067054698527667992176746220320296181728103410541305641321655439421710536984492337245797388507723285442565460539441229776970999668817506619281312391818041709091418013908065204685574202152184828870419298605248874218652842271032764169790818384893944831515827013390112254274568654390198291879146344040853391245520509844768732901830683743275012303370295960426031904943155783282135928772815684764246713946563745662489260957242027733683143760685072124663411888467113270917391344370935853655699364230843380494961697140892692615961502167057037558689638898029793535353446798413762481755891066545785174825019192266652659058501177410708467659501890712947865464467008422624770939627878852854934293936321618770389332494680327174769633279811423997401914501284290498053645073973350315679261088671648103945980984456147496887359936474455204453665654715401252565251156300819382682263205952459478738828368026588572810696203984488562443267750896838384761812620030435858550779999367902326965093008382980413595286567463141703441673293179133343206230007914793329224559567995825289794096939776435873059363741776928193844642213478599764598702541567635693290596697882689173171710634950093253880574926185063740061722094829754661665301060963498825203581694741414069639139222224185901541487863920954006356042848638612099642073924370592664163260250552006499622994896442758243965423833730974520911410312192946241493759280008817729120789179960697039714543548022068699017054969562025166379966680471169197794603657115469070032435672444745772310987784129878034134629197689605553211530188815922159411351229760584574489048976069439704901167590526060329149485287048225903832691657009177051468167165257018211736237530647184358311309018085713009898377278445563316530230200549009913835243309698967577067258573346698358767109480702307741042851671246156336836367558034782626136072085796070832188129214887740294153244374016395244253915693616854341995160829932646718220350456320333149100175287032798406789765716768074549260493495556302345905681127986627441962744147899493216575111391162554450333957434782194774121597163168957098968854210230392712726602782321193444030501175698850961100141172088146932369549907006210999168436199734839400562722302192662061460850236822603251590329366144006407638389813152206093166578391642940468488557757058362008886062438580844059432154473991151398581803506198900777291592903598583842223323505003287715709981077250770518297367380722859431769343482251750595988543307765302949450568336416743931105798053436995639426327809368341938076755812137152853981737947847928930534457118103261064024046667725586695601005411674753545727091376707656940809911445048276283690089609215862787964435025350526889154491532186145458297671838473601742716783359241233520551084102097700888836567620857348537530480678728459582572829694410419987683538800081216384200900318672403837680519867579753259273819326539081732658604979310615396828170309684934799135288527871307556429363051982825704029540520168285630647744458989423100263688485696858054827459418166152256917592414167429309656636044499056216186585998764058306146515576518137058320762233629098574882479355816972072070843927489051003946926224285700570744105581293741885767764640904865480372573836195037072282691699232917575598569079982004501939558126834102226552859368426020648632151842725885870329314198649469797891728855039559582056562026815977460528398978909623425939477350091571721884987773490542299949202867822864714470728248691986909144895280333025838687926295369642020534279665254763463946483144440008500609398092913206831093308599821705407455543793789847749328508824463229681282211311711875271558010711497786309821262273492061033789599823515355785575812829524592807885347222914524075527976511280702040205314644224189642240372854800046256010736078646909612802001972724371379793179057535849628387047495944294948240909550703024097583755051077514754551548561723589340722915603837064000714032922784902908181719957379288430969240508655891544366584575862620823077255711962272595983309372297391678548965752722980074582534740492686804330891892121985079324872170143104148687672735300107769997002718196530083185115714203058301198084181327055977376759203690324255541526322962464694128584236001586076373990842931500222363534099187711526405425334500649414164511891968790674706013572511906514161069438029583481827402349496643762697400189932589404694161991244036995855399623148807553704513520854795558109379347684719897972349585331306402993641671914758097875771613199974466310194752963991597995611649903625822326686229506893349573993298914512052166237181009952531817805336818656312850741582537480714050096292330596331219344239550108060687689426120919575791104372445430370065401325603675845677284429765652400657467044411347062560984038039266901143022104452058987547153822503456204720981048862494522863369704854747545945603760215533560345208079969293932237984853907122799348406014853256761792745152181591649032375703765034901139397863663084951870120407025606201232557097744821197837101619620605355445437100302565631245845792557217929270756038455412898702041727820713939654921275202785791186885299927516300622693146127304412543449584112060793623369936144049962883406132238407018523815140878419107285070762901820870324876667571880799434066039597478553449026113762490341863683994384107342069644222966599960010505471477507404714423805448640901051241180677924520510307156081599439639638180375491357514381573104536548645088307285157138320059854349138520503205752672976978422096313581045957929125792327335432679042556905974843648849362245154083197315446063303177543899323362467041357461437985884584214838212713326845230271578500078589922563394629028310661022715052532979458525739568521869994713792386744606434178163521592079629081484242354999870283509153190036671962785892154679835358039750888681947801196237425898071697998022701576821275589292319315643584705025604253897243850430061810466535944174698171473244944465751000808309486697347320618138079546028771451070377771652846193624729936357096785895181395707698238476213174573954344579572091874764096914331455742309691009924298229013397587403358661888589138618368281018042235302126267783470579284319658884191618098432347327383228545025125833326384165134960283544380124774879623357523823653446208716481604796475827854034880787951825951116382140643891431616013872194597260436129682862906474820098752367240535946826552186119900163920422087066541351019743187077806294201336413873094659969694773071693491661438196639033972337949965396080652214422783680457396029115327339681756699230737055879065252481194927848713726035465587043876259757484077693809564874405382290970081753429770775333247585930686075998320402510193933814414741553422569566115697661542503796611058852108707437434541606556907759484150545396193752287201629463255538807654503672752511249917900549782660980495434565541401555923912551711638033998569229477252292513698722528684793790062096328695834649288573354286588491290094793990836977136885619684857605436787074040749619570097376727751050057210736028673377463008673022059149142743792118696609682387690596786231289248091512538990474007952966406979554862852210777382851727155340474739088241095379089549957730419591883519768215748700086946210184986623956198618268200173488041641073850970134214479080841702007221184202866211029575519258575839148074234810619716211425072687576519995049538403643789203826734330511413539260826138197538728630451164774052098160003083810766493382382696197990849812536300476125143431495712632578026752022029846289143693614573794802588005769782582123491103025035647851293026228870633332501026559653252743395082739025743215989724332566333309155355298018887961755524682110899901240570451048127152717809065870412704752988393705001168012799650762204199985081889973053518504452594963349196434366309894044378155437031673840391155269123022453585283249315609085842256183389951108222384959830851007772630184747853523205626536509296399152387893172626204073408256634497221443382081828100237550242495877686456852920151186437931360995212408304054534921109219225760224257525626913474546277639471542020103336184050961311984273618693305931558548274864819235299719626531750435164942680831120686897787433088488429173556289198774100570120386637397583298771939972925963402244641090623784878975735030963156061627812541192983454938890662373462806546501561458831772505923711808270552146639902205789600532096844596825860247353982483142392323761300068061554894111578725332420057184874537549379976018997189318998355989789269943834953433721639322847136361860490443348164480656994199269317479346719283384324402000674986249583986852940349071061721969546618051314840760231726474565183937547188041938784937389350579937101762869867748168738429368199770521138995385959111930078074905729081350503945146279961916471913651973783207973030010428963000027931772006946104934877470546597523523113820464727491011724566727808514629503260323743745259508449093265919978248141700241636916049229506879678435186146079309003779057860234838696254905759958691451658769478131744899910378278899324504337500262954353141621595085084169131571143854792819199803556983709109353966263933776061064595049139401351995060540194891750627180054503838307773009246473952963523987551579383260609721525787552504728951241392992989403540554837135144687581582117712465945221181067155611296394991254412592571684547667099068381327361593087326829280009481766196788444638097975831910341350361539825681068812998353604986029445528325867577653526651021478308800250459739780104743277452745288142444549877218666317924706317881954511665337994262667555298620835306620150383267286739180371947770278913858982180683497763758852938217512292378489816378613126623270030035449843592270948825807755851474250512540163283227711461455262520525062373798371724111835511480068924355097357460796475102750625906591437803982892465428271427530265956729655711511904166053977364538663863239920060070864703132512972839502691374150815390314449768395800142803729462200515528103940277557746603671599579482726900635246910350396128517513013937090898361780717450547894365874863399400904001571717931336636698663606167095428547441648243191845317155322917369045950543190719492302258268952504818558339456655327459043158150291676333772980871699511167953120635792729367467630693684475859428526117969417339211651515492039676496728929756622173808239016630580084880724175559802874603605449106734461665518323696356669710048749068068001160689815269781914327099281156175301285224600429850037447022616011004489684069654207693530825183387813096570580835043049555963465301867916183463955016025634757421197276272865447636317650812211615154715043001282996345085180933381137521157300857568231866426026947265057430595150494514704778881219591502628408306784927207751111309863020422466545314202154505030709220024796202975606778880654051347799925175199326446109944756849886708611491414751805165460253658194347460481381963302421750372829327363116664113632027533523195985538413729363657766310245827565214452758032787153117896394314881178871055397002157805587805218411869768069534889869695530379145631796885826838273423239953674576416685261355298890373580116944081443651295327451687149219167948583883843550817759276053351426216945264453697369469480846996303856493064101558761182243719666160270389600005995420499197575473641684701383051818677801448244932300106299695183657839546956829997402418390630387912267040769776295640483500003762157868049642418600229897197962835245567583252336428646322774615378821150675740714521619434385454109723106679532586305155148993591227479793765136743667366628178558600180160039518822564247672346292133345588249313282100014504509281761856889035031291435215337298055212140746414786685501680992168125535198116803549591163322076665623642762819431528419142779418322153153382697280335815584024082076451192040282650691401069924613628774977207139761985726865219646274903510115972939187977134142596240638229823229239692016623234851507592846765372031250872583121294504104594386158840873198263592832708157567242006747752033509321750229004258320528745559624146773176439310511906546944338099799280879058854577734115126388672607212432158703757151152760676022149759788430368351524825448421903983182352630486692870047971192861725588890014620205886434339350388793773086911822000254835402694832389039473303354592997191992407740205891924340479505710497699898007287205667277848862275040119563213786063819074886504342845321524614749720508073554329085154702624969088689170156535422487455653799947513705089413775616324798776325972561093403557828200689733364887182602077676628787543027468432118617825439377260937170145133380836583299956834129948204342871496646056822977055842733616124074739403878951080657258001851335563032760960640209033354902984938677226129445699394212244834122284045345080835480527586738649264934523532801851595601284083678074146321002171764429029810200968079952086749647804103540459684256122479539828605635856193894121096990743210124427561869685466834942513299121984191659464233820645771084564978706850391671228005773328287491160065089484195896076418560428847159596008154825744356655412008378205800122009034836154923212329675616882733527759496496148627392215760803127088336587588383090784877128429757119084130904788293571846087884460792257681833940626741697080693049948362710508089735254666894322420424527757631617048735538466086406632057270716487673242905946005406854129224543542410883219412478789087686270113647001118275256441610570678825067984843500375956659197138245481934063384305341703340612528803187977254777964223377210508844124884291294990234718889344976157245433713647425231117945577517456116455609281611885581651536273487219124741552515813569559367148079855642253657784512943771068985944151728910560910609025306231265257589135100665761147000518046977434802529626923180628654769815017420270253283750769539266147256556156651440917470693321518790373291942387307038125073195498065724502009985255930820022848983999893847011407984868512801311656910149599711516140376240179954591460409340907137501413279881889433642132211156139639853434232120197509847769664679369701520001619879042937734950704013151567166731288352675184353217525705807642744725564978989334397835961910901808700859405428285861076810230611856192433818333406717460330605486451876586456163843082052364592729595139722472924045859227454002040911878657574660653816217799221855053668325631581923514170593886722350107096310265369714699859034245469568095183930674717184344597880987949685632634955948713008382851646607058495613664460179899543289351578988019614954011136329694131781710784748039403645941369584494669265077245183956834996541108851369899662373123756466158611529922706430513217481170100914491525509019352304375711732483538034277635336576018500006021043222941998270495163909258229787864301021952180725541288801249786527971594492318517278478774342400193621327133244595372018097320807703737528262762678849918884751553370492080656136192878166373705075792737809667688874690097005854352400133114183208775594394592188608949854174109227744456136326247042280637328870501099278000698999545514823497884377420655666807897627582657805536992003848747679655879360145646353240253885699661220947314576126451137761062008540968593956360609359233075122190692934907220170238536788044246774583164586758425765981742407346316064766895707060943393444778202186658957364405157914467390157276347176069993082479227267832425217423821070010036059690684089671533968327259657737234901979680688747725757313370609096038841314482021920822696913655370536061099352012172973710190698893068909813899652749576180934934422651807584034957199826617321789140821071586833652190621522861632541366151944194448262987053611474842762236066221643257773994498093125120079646336316878391987557465783379623666348616769788048588124009258761646711113634069772878112260782264325258611284429091160508448613537205577991938420530706882522307191779729493524978045456867633587492707979004688541695849528417655876940098759158990715855667632579221110874195481336550622358479926829380199554367895929483351830007798286195747915511774903950699866619670420415329740247502721961757338574973396474737746746677401569909144603546790918695959594781004433884558377296083425985846410462791646628623568526401029031026097094503814807974283932858895369636532746793636454677237367711296953543852416442197588745639573413672261466314371625962201520492212646839121576245671323903339774406812003400525728587842237507083260061470372225785803889954076553480196859570499565372563608844415811188018942502948128606526389545299434045804610956060174177176411698728726383030406877012126696614381797973486391424995384207519112229977098743455100393792174554991436081197945037338855885187945336162601956635152457759712859444559460755153001421031659452685703211949713906954733458693475850003558238951832570925860710207167137660902234624135073961515468841571953984979223925101207121102324630040147086440471095957092867197636027730662432113153112824532617969584049676301367338274290615843760856801007976218241101148570418823650917726892851219640888775725974998136864790529672792732685910794847852123698588788387572686310772889844620193144726701390586081794644498354829160029165152061684837590275869698717420832800285657081430613459791365755050415975307010312117971605811326126203411146716796503343669654927462646057016520548347822982953786640126934525166502564845743767094436850109793177613317149902246467679093759183433215153597514153696398245009826973684925354876498651563473572334565522610047557750105107564520649942509356267157266716234730483134831295599836511441436252988027095607850175132727254952535787855394649637767726114558166859217381254383281211962864640846098588716843531512869362400721183344404496423654576520736602566046968266761618947472124566463283367013117642775628647217555660468374849257698971199836692192772895610008446601065524575222967788464762508144183132656210772673398542993752819819718139337727887818344105352144635995985176711421036562323114956262846458285777860181026678136212817726758132621055889869904270478816154483527987244326361429488386268649554406532132200502405807851022849330755092567796559016823921825684154163773168892671756738574819416727721777698811128636672726151642773178115382233878261764693435387013367475304838037693711635444807396585602115827513366423044820554711594666526154768351494292466383489539170822475833132820790231980158702074624142463433831243994929151858602326200343380948643087284564057046148298968159580825118211169103196675642947265031832412316825996360599369343797329201456474474189703932888775590737140000694318912021954602887161457176937778635528723440031419975235596064177186950746382172719215601290503255690764260461388872268427676467912876454536631194142213266262454128866451735901985238780767312408474437608002703958041438706113118606042479569752894388906485147361845094306918149631951276896556825450627248565357873865760980726982653764784177000601021423333184397101465357200712892424645682530993170344063618517916795625463429744984126820818926578108859861356145958974094559524952357490305456187724775686145350135300029004461927069085402160146841044473208649525917806268025993533989283768989218443645183213347380203441174565816950344068709529060576927749640720878573007812804930408570136737750135808328175923381969353193314788238378495272459715790826595863855989501505134470922725863683331475931392924687423378873945408633841515489665198745557419309373570670335052988137930564115157656834087002342874378960013184408749885770972226661813242037220316248165178914201899750268066662475590352168615351693128362220122302056064944041996672580111135966491657399977689599975325075363521156408007517588440780019768020219996619909670977193819853432077827315260460356679710606688728081553244970203247351911465302230955771160705382078890279825979688936505640710826064452548505960539756066212886356465249562763493233516627570275710474102287320987544324617415935783482992715903735127071334481977272239157814783158126324208738300858566386568106377573438643313367638022844329134652365008681341821240210935612442975699418809093209804248640159749671551859762032402774319263488790114607346378850725080544595151804183810263902957219611045275006945148527270248427794909149795964713813511100843287407857265541617360586456529861657583574449535847206426538486630281512387924195586529973448174713121664709588465399728154174415100534879080935448016478058174135246563777348882179869274316790485376006495895598622013084365988975931686498302131830970264415785455941347439902463703579987350741502963080854510298366471785646676485991842392785742671071508599343476026820375963861327766470608440835670656154557314546252203199053834032411029250176003662561037936743848265674036607209749025442330341448319539185470644963066341359296437940792580518858697110608794749044793254767140052422640413742944046871960545076407112241849951807571397155123433448853142207712965704815756096471484061991742477459256114882040769356728411582596871151187889105499838006214871056833489048099941798482540128424631872973969750285202961164514145125413936599742715781373707001571075454495078779676552343344034302779680132178190231182188491972396729909896102835202141134381719707465272539106747171789198395057662413275286474830361076321405736611485596207546343066069797139674412779569986252015107499107019141982855788152774716856379476292078459934901454411211786766940788732223424367398424038228385761992753695439624378319684327225851311129809912212367287959638970730456524201799778805248976523725066531989885619257969379185227308806086893798987103788759048983508964905910580479237676221113409582750743769138516010812364037384529568163561737377293599343199407134590774997784982180505707116153524371545623896671700861437441447239421757845164075132125894807608704140569036696307795053647247105081664777306095650646172206923977245839421640462715069973712764855318267834781061006349877839422734780303257218689268246960085984359018280713998499505079816365104931470106839436398445159235563491418075591283131717876917968690406676920427572930030013060201583481714866549789275184319866295440521433969843775044529943987978765155223923200062510625292225753226294265012437138709511156989371175028942439628504576461390933412920518373997085238465781002158707259067301344242875153466961471657247242326492704160858218090573890774365381051329309216505803413199935808796115621703565104215452846037371024428934090615113328136925118770972138144318292266682122085729454398557815977717022218247099810004725101488684371717273558194313800612668814636014365946020428658449377447918166133221071985044195502713725777832240487511064268981973175170054589174461198678617583818283181139327642662064649772930123789210730546551104061534930636376531323149692755466024130282552427858029302668315511478602602590114639628745700344334098252532816337744917581929287778657153600928757252338766402980129721511097253506422111340651088356014304325132977447036953370541071968518333401960205856965726392024617711778184598774445436552374516106862165155608686415078794529131439054436193962816357725184293172559502499544770032704217628353324869788141924091847113319449135439767152461661396849633267220306504353306448483902036933174435445501277174539549528084668092398034436418810691139252310907334847155930456624635060889053709254263175196915068559024541053724719739649188480802967460000635856354011261956112667735708020270247114238892086011332862523851002750727049868543477295973424607336284828101681621591975575797800554266529668934532282479020433974122448165227805729000940772849683818233229953123922406988258876619067274075381203750951145861822255427091726194567363193133389921357093384028657720016615473886696016466298160266361546987811674192170294599943027724553455244144299568794836623529218594077786294748229128803712086782671005296384881185400108036415804521974167692476999981951671966066838049759217071454656863563145667510669455984390585018828838428110798353488512371014777438956274391022790362522632202056605439149767957074407500115047270132469288514804897689182256981140516517893027870434817558456282206151132777760337934366134171676278563716927067433334370233189982838013998980568429300013004004386960941442625081138852574332411878865311936877216029249678075286493438156807332449182374134531514579696206072832724056506064705593543089521925700088469648699200943734634225437767605807045147236198856063807175170341030228408890398630193112161729965969050745146676441046561926930249425494696635830236064623967392903851219357984980897161521434456830988383218530386301574810924967680557145120114573849326011133220093801228939842526759602618613149626211935439794961429978620021754889153837348607120328609011730366684382702221794903528212197430373520819769536377986896686856221599935856832905142289192087900983845341120865936625516008606908388935124989355369960466009873815450989590825262513600673170222522277147308625398067977077604698685049945349787670370266034878743589126061307735743802080564551707378955759118850948630282559981617302663525036553263873901524273382788251531367552787646742719454973628866617846251453190613596359355057708229521805559796813691682994058492219288291491186711711122604386384359063104390190318716409776895570361871016256508079756753675556185200112279331226251426019886563147811659142350304044332287685650940563788378270884112196735670473765110537665860750371249699440618893551507848610811126867535141781865870046442873332638642740542609827429638229249131829935607855673595740035569109537206670282040703749169953970219456768990504291865840718598901798467668458290930589548238479522549774286910953224373907142192904597249648825836752982637232168107191603707447088734571594128710933418710475668868954371837008018254459863121094849462249123404352891644099358303820252497142124098404474195796362571508916664108839448299154313701662317755350182337236716028905215755299143054315669058281588552893355073083687972010780750225904646429045924274923411603055613289360623126810698157379380718013554742516001880289091201794769888106077355978732506771829769905017189122727063885339053166433319314094055247422269465956607597364868620113987495918648663399653753197065849824008272179638885555481555162627168039890931482425414479196421451124307075152201980122145108728683620458885734869244042237003573213057587678259004987148782491905023032588103955036434663388550473831075680088456488498551416607761488839104092950045100814197439786255045174776182895101528376550227190001673145205140246704031125755777755916293361783122299072648654174318018121188438022388061835530831661096988534417582922329471714726685262232084943920563108929797416911275683522860176629570390119647291929911571820505890557000573425184871160367124482241600536984862144738087336990412024583177732238102918788595789330373484559189170680237436086581768250959823062152758136540637966846069604903120766134004869751921609996826638269694599710429219989223123586070252195423495206959550949625888888425722936850486549138734844231669404124850113080113915058023273013516815398344702727327796154461991661785616258789782578492412859530960576884400849871110008523909924912348371573942293099830901141934413192735325902123774827246627776140761466058282485210695477632620962206388655197743427456124016319244390704605232244352591641205275783288606912936779241147670445807111086257570743096349610717187201860511868861364065256244828738111882937615358762518698649670986771539204524632276345920066245886854590042826536736066487307175903441178935176678537577394465432772802002656786966690973501720661765589738455515539572423632778216665686910129213485107524213980433522719335675490216502242278865535696911431394024050153324492507826782059400769530242459476477111551033831411527561289595543387177592256960765942836806934761723708140995351077347508417726995393688628994707963368735181538101650746301315136957690363881150562509368718900404232116448925265493849175028186776757963168546710614298508602002058783150350135645941355675365042642484528729762224035681947195959819006370132852960145656009824424483404478217209278880018273375877834652698860146092047305318333769660285258015374606522685633272261286727937042740961424903226259208117740304304311839839762452871342946064761677532539376412203573859393840183161423156508588516551435684122657770204518197553155734346197130200576454791459916385384744135370496136911360229963459237243747340890069438028864512066518349249595998076836731728484922242133289442843801641226241209483029805729600907038406409106834224152323501763949950719032668113905575173355234756643064956320892705835050457910912778129387480366316528208552055995458622842295177118072522754802487798157182501831223836481755720059003221823064028396752798465655469971848960580880207901367445986322730312210090342019304966014244998712614264618526081089011961410291378309838364979743758467302648606142223889418055132266409279146224454002253716404628275016819708477942832429390815965498599543462448617925348088317546636991388000899997613095469742403033137137526834211110082357523863361856715514294752117978834198499928518819420137781810534601917681576145720007711118439650896280559958581258035629435027192953088968920899632664633751635432553985914038485791523253077746909777141097438678594548949080300262399698600712888618971173814400021487986650564972308561506206172044291546059949348050638324017018556914413271412279855246970039837705832550017940333712987846060326377828388888288677072977106498516341127787503169603328348579588115535937456464716820048660280153128176727566200137343390724131072894294707060038590728320244131380643840239189335256546170713689109322139195348101494868974024406439100112255228074788222221278086488497016494745939036090850797570582997051315431293045707442052124822273646701344602268982945791856592122679354090939692514030705604067056157659009742323402249595088057823023905645592797984848612434265912278312160278958925509357432717771342106281384909508668461400875174739352809311015151716787133918315748571811372260697550893891194456269539225412661688674133905340858678316690521602419500064341695132134719447476837249652707668109251570405292690606150619277446892168815750630589362534944711879205964288066890825135559823922816783158061476602663428474330052635096190047722249761947539029440035184308701396215967638146435224783800041592028285750639242868115020497931116718100999503632732310152396561922448440195044364504394265647047436589672987864360216271496188906880983555773065075594956864485931497575750671961169860812072228331431486527012738596456757131517658609079531664170258564336481861375215440230918710786327645327566737399560051785313471034517189277867537291475768332826280863779766989043359951779548664716336981460236303659663179138223514096468805764922122978635534193914287798338432994327680599315597394823449411588598065110391645508526370409212601324101868259134222810302849101815837743920490060767232346040984176858187464683863069565052956982957205657815406219510027620821306400050269153399111726498625064873291160450478063852771702390079060172841351637948715380419610072698008994902438176066600048017670284331292253570319915097326198304397828561275344475295678845181914271204118979457222423905577171144204205336196402661997541140011041292719084200326759756841848974990778834216672476020341454256410444279668839215607825697413111507020211474705272941179541444236769303316126443769088144007131778862672809546978123283227869168066890566766772585889771004678296100242841176464837133572324546174620573551513617723757170139574749085131755816379332629244492036335254212621657781348354601655870451401867847303552562485955413377386279866438499003472688662290976560681276804083589457757993933998422815462367277044305755196172938089352637325656656733920011586749993513144779664369091338195815368375781710806174644752144832657595610996172214595414497483967468316005910753401015705700159616663501464867212712276363304541402914705639968510600142436864674276800464394585418536230681940473840135850078271619960743183062610336592389781460610787842559110403108290510178981339269817017959926639815579785469939849183006297313452929216689599913467372963488027783674185012151581816797007964626309129605382448363366033695754171355109039251762033966051254626083154683213415240879099646068871637132646561816478198694265507270457187609275830184511593771579379757654804150525854448442678581676043933017719328686066262097271450323129579117215155964340990201729266767277480725911780975127949327952580543211392381359718592763127063415627260172627868672000960222242914076882908856321977055568839253544548432718366702222096777197669803316011924135581531921514649152449243599251481832572125694247932947236465092723412224953772984302703413558986582352157970009959882028932109027652252825566018196706150913856799996581964657507418651067939608229732835683247619478069917908666988358377861339828945989050564048061625788055359154585876625873967991019716884146213530807422552809988736019277186849941090321252057411484843635405389297531378896002077580032036161107609823532664952693522482668359165477647789371007718516398354934066674789424319468280837394376334945586266863872627884277674537919446245794217237941298493604028899507686524811655413797122734974759065233207697189203201706109096069209498814703338284294390643101488273499896381320127162711074565441057932371293045293160163602715584746936181592530121608764932529814793052455083522434984670732774768640508386475530454965985666659762139231205243285314263536235239344573008428144169209256416448569008332021649774048673547030182100060288161614058970676475548338821019806829593070577634317340273060522614004020395657600752116931581774453894942332110918340616084989726943272320107664134980898726956688684489409783047360775098482732119637381231648994645656052396239027701361999338650080191321541012178176187576680237753333899344618188914227111979576340338767408053770966103450916655465195363743902472287022346131558187327299539039316592617307043327967496721177700134516724886965595601772618850014086643958162024212874524871540656145955890909497335606774178798594787944690539564683991779703859103062982613466006646816067008999946411343292030617441489409752575270636418941115041079390000183402461055285122606890971818734128256144461237647921164185714125552340474287041443698104490672682908551181025573580794707810646772046675269669131317046144540921951911183355141164005077681732400491696429474229480359052147228251238798664799825392934923030799923741456603718572910348486624994314177569794726657950955178479917667819793981229200430455481009708537878789576523810312181761479081912128076120030026601317499176864413233099142214079191161775813469970957069186693808240175274146452765280147852215334017059861289392016900312087912554750294912854987911351803798777467893181644173823455905815357280930676501667337550975694290102489598586395374535367329881254508809492357667523781761736895792610860405008147813298519392420945215469223164161743809457295342979539918773684106395156753457954593211648089401570377128827794056467546844027592196403401033507959475606805731439595306288493993081526205978863093936401598582492134521890471220694209538473313895377530854651724228266618430475039297102331841610809108464734716655394161466021681460683908539641072236031618624652771936413556229695730849383919772769197569810164348077411756636429266732426836606423161943979769349670739168041913596958837453128357963948273430447173929129481709269913938576191048723009456788461145635697690448720754535432895602578311777426312308625400341298610885220315088702182802046334046802121691416166148176022258199781162251908725086081520038083634913341023674677985463908592789623015246834733144357933412656463880927672025122851739381729676039023663301152538794884232577766705471616093736674848752730450620877373305178609603515264817742060946596597657155989804914802266694054237064982669079322526050783099195242934226639419841483355075363811138702972369751592496138740800680425760728219666565187301781805379061501550125176070069819877863512207649617491158199140749889620105819093344468338426257760548944711187824588687564090863707553411617590772146668994496350244935192242021706123146028570875381769066510286409844032301118380759702606791345369540542094860598585378617334507831580133209634558425794590956175239494823722521273624038464544833738390782623935731105225795709712226100145798409313737394550585600059186649262313398726666526195337400361229627062557635193935441842905689502681315473809110831179629790484978185463895626284629633904102588228243652742892554903952267647228513838830240427392924130130107046342425290073301571123120210817852474873058448601800591041027554578784262079020770323906197806690746595824630436624674183434529466133865896863924502399053054804153355531969062904310013848211901639899677206513025454696838113596347569095256385443564649297790139697645790898813909743143878845674446951109413643004161624835357740960783578687539518067179284907464547397913359859728022718666851232069889869545159645451018985325041797734113337533707862758132142836172931535050128747203459277877938928470228239471800990642066298575949457758510702879538364922709013685932240383141795686569037781296202526128618080099998250415327033829561181159648283264455018593566561529143216864570973488428959126992101866797798620854558935591125982199760006825228853955983480087649110697610805805137765260870479478194105078313827089312947290907777860577977075996329484567895053520543907554265056681353731874593039949347833632294645724568383512766025704471342539216361365115809635298243862593382248447051954242236738651591483897197773403743663646416470725033474218582328219981505095102647638400387289953736460367646854695346803606901881225676633960105361975725777094996464459720068389187020584003237175195337889542343107814041499112131376903354473533577364416904512728408642477964405860442838181404829112447589422468141142407294347603425949468497936065946144392524432974325248887229998159998437720598727281811586154963270473293200557727495000420074132483064803881106301909040737244518963041280680608864474735839302253378293678838421328143332296582562424988536325807150671073442140949241696612353444390628324074896310114339792535496342263975221677476682155236990216775928372900570369946785936504780564719122405135429854160894614118256702423753804141761363267493010987739444156259184558926432278361060118692286395798389115019086743566041580595639313695808329419685125388199514413244249183456989210067142697281689277198012284169208112033804881913556004211580032987262301246676311096593923579512300830593892323270305665281151801124852769020653692588785217686770434940631643372951024844137667025862322147127557980502881731548525649087284775248699269867595578035140034059645524275476852232783793846811498274625944947381438738060789263407271703476372091324572584531274720113786127184005927188535540958589593120680111022178150654318575569862758580642559967268168368137728698245162005427423658918655064196044110734541922015059573649174337397407834238315933886618206679884959882914416253024064015367745182021848716666217159536459876970938450330678518760366370238883237772663512392644275216700398681693152582649110903512161080617220372195634050107653906521089318856704860965070163528839992298903441755739613075403407265291940834628808316589871904133515001074082457202582027930805380220293758902655469242875872552485913219114761841164821399310727191071792648875065558652024386412497544988371454634427502635541277677246347141628502058803424627650052015313172653541118027772753363516081958788002794214748184969087635598167952233793839031906148825682246256882295133727150927155488964109217330300220087359970459069694757547779479711193284165546884280198072268479122103881155958183236559281472386598320230747558524429568436594440891237465026746565880433363365391346569815269093266727915398955489268232614691548387295227899382619113494959023392179934791138659639853866094671386269717396049869089195002464803393510923887111876321254133861305397513963056894258126699534973776230816481063029184166042621892457141777148342887738472598484656926801852697425045167208549138609844517310172735407341121882625020860951505107524357790304128525122718560040305214398610667397908769647529518414405931691843618384287593510779321203587144759021894965063958671079830005502191518356625344311425642999038409994673236944324673004354521818659873377051262847397982398810784202819662538575280271204459032949523726996445400233073727955732658073405104125890891285550621159434041238348771961404268684488674140491930877662114264828712689613076938875476722246880744157793014053464752185443465375391027057605710345456223092261632094158312899105815174342139183777281140219490999192730717380834231952675342499189571959211553990868062798569712022096737006519241786859580471821823913820471813459556898210628593931390318729048271162258938667851049832805243417205055918556972556319172491656733245454613069943486246894623861320975996285539643050598566081431687604412654772124857925106942402970578538422380685237304879375150986459712474983563927086615561225035825875240339877170210151521738640993708153902038112555773461368803826162887437499984520806241516478670452716456607528914524135064144798582598215055272983144241855882996558709468178714591627474155391681779775795198041090381858776709125579422675986165995169060127385133228524728598788404079432205249875589548604411189764836363582427451907938661912694454986175582004161259099810677132431197589872494886444481926918672461039459733368319890239574815217754962230943523300345419603263399346733918415679152277584775973180943163607561246770202388959748375175870119857123417973673416173495469005287839311274289209856201528474108829710228333942627357407981421050970813796385586922731515946358491746393798317306497482121668774398008449014880136558126249557862485896275869282073606785136021626751486340013362565727530947629000156524639371748744538553009361311307518186775978848889720354292259458116616015637625956569401927388793001594093375236866922257829464635596318488269913970157957193014256028235153858554033881837277000764012410356727651041752766493354332513758502031607304876286380893244843357180971000436512170543699716860991809138438269923240476347621787834938304017046699712409974852062837333506525965136208170486278341727462435196318251625569676709015017760691321731182376553570331837401016800836518850237958003326593681641950829358051912058250741905385185911902129241944588905946032844400132237400604233662857561909587044089222072511069907684339758140728145342458577490131778464100950127452197374398446612849042824415554944691179015282390354719747728486868150866032206988612429424098850368009466312842006598520117747825818062659279384151549184793072278566743830749583088775807497866504039267324755739382390968944300215574349182638989804307589563307922480649363720731568230624754951933149562996338821103345329412852649168893199564151885814845670082238226095449830601660760694577254480030519430663351435108712522694383147892045083068462369457750242102535849738894961705295511936951040572887360102338720867143409277018831412487890684401071367586859780962311322381315335744626912712331347107457588319472257396703227947727594094397622894590412102783120075661386994975454300149082956328286539273114796589055961808715247236740829794469035278658111755963865112379726260527069068383921546933417969482541237500865511556618953596023966313037052535922509132358748855767297664481092931694305878646702171487215057568752126315106323368389344040870543814265840747607322512282802338615916932779965578739766653742422512774242512942393283265358655322902865438068576209901830835900312620077860346441012196838933466679731983563874221766981432304034974727897611730755419896706576081566728659272434093674032184307021235464976114212331474903933006218219132822119778907665570151868219841184125684955937256660685203994603787444205680101155149370231514241858947926551722217578694387719018223131240050387697267590921363491478789691358770179142726830529596111506655059340847162374516312214326263595238031230850615064296021345958778720595938084020018480604391404671351837194762369201746118830171196184298946760533468574947241844669685339128729870732469373921848740319270835838650876796749498478419834849004442138873961901498323307456346647129284656034506709816946254937921231185025374339535265968942743533494726555507653465846208257897554253225420010650360659920239066165321997455587998041695648231439913289334015687818670411256752029482117272851425271028450426318547526659609235246277859720284704915966766024672657466998724025846436384568755873963260423991900933898777259983638877530226281308906444390441625025064608197492813852421206780473767488474952258659435250290031219355441834874079050529112395663629869907150903078570915614360879766723957763695564335383654454181518497757030371799265727441522198511869184835639894760529290721789951550408681290620363633885172408471063682583047746145465415973451655337037532956144157248204393256308479182367153133883119258000509721746271488929800782674875123935350811844836996920950229846576441717797911134443904464463835748151664312247346850984496937062602655390946303134352116009213993715891494326844531417759610044267158315257222170795849668588224416316011420674143569852060070809753271235615222098237296259734340880326552720541041003633263282720714406393859994760164032283667326217252282592758788254385366440756299261263699364671831264692829449781124707087486386370103621058388259354382876678756210406357976182395926540568168818921860422536724910855302288317989989686028954029219292302639799217945213394708743388732481170335682616288317927633888406052848053269150907631759112105590673937634835728589273471292832736870904165776465695535857642348914271841859091090539640875568397919866419725684597392442634259713128449118498647739291665481702105180915884305226464843240533010614642066887241371065707189764032715728675194271781757551091658598931617250162094556419218572641084259777552633605299678783779330158522750085470223613655233716374530603526906701027051125415717466391583682810768046108734610914157216190590217822289783853575201083499152059246142360327605918445873351648379104715619837253010419850304211249178576480626574423957099817787203159569122962835769365326785790364320619549017809637951952127004267857671635102757119183284845881880527692869144629257318478819642861940130061442894652646662345964255643913096808999679342395071523474763563262164554306383614620013579496310560208089351104932156522049331878639588954379248979660336500407581884397377088297836984768732789634766079480733684925033675010380192015194191252468842681807182954092227678638850246741495284253885377510818176381906923237735084653300430403376203519438832711640512374862182265109796492359503777047873472350492786833663290541407654792919719837570369545241793039772718858841439376287285508649711996017940079512462007818759571474867452437562071921320795737462200210834297190837339314144134013754992387038910496065027886344746939284330702780636127751298252188698812986261398808847235714593562916708652465121571436511842743939947162490280579853479552517064372942800766576405130839669539485646537366365478815322198064431725954484118163188092312585241916035026309148517493184847771481244699938694437931955418897056743347399803780811021292412594551310150414188123814408706184421051396330741831966839628997341087805432428798838181205470568617696895714559959975687175112012603843162701720148869791108929100659673606798789822256943089643378907714927343295290415743475901769736245405029668578384324474067987814601636041038300114508268060872942427612264582736067569965961944858506199686630529136993315612640692370586525702923286867397016162722535430837482446566938747409040837285696715832313021124429063421255919424759068786230550982005453184070926668837203804593820758188675105946849748514942084295257808606347692118157106502806428830241782875295089539986329683273495027376389274148702151687797083688597205429808913192828469738063519427014816817342298817277896463849531754010223995702581335480276931317056073227483340253306955802520368515638518569812182162891039404584082526508334590607056048891239976346325666923698013381947683626580408261100869089063868943596801117066950943972504339460544792790429461699629393791228401950831024704874728876680772934738847905783049659497530540137094656210449072686323558641466575013341101433856681821203585142894376684477840747900061159793823720369098669847396658924034849540002834914629925370579095435228719867735068889788408277841517503280931834935288554978876318668037794610148968736568956512844985705667231846386648809305100749608930546894967031004107985697778024697684536456413241566386208157630712975514556848111972899725423744761790431666208434583505049461284362516732929354287530435461232944116257066683780921759583542019619019562078750729646773661489461072422591769429935261438160153178119203410795407818573363852055949418966010545909609980904648348838470797117118874790781355286545591185873385007316144130315940089577610201695958783404035645422346054905765591709409395514814165468327297820738411829609237567506817309174072992655521612192752205851957638200516894955809949955071881500205541149849416470506924197718530575120892337015869246955296416177242468677821313464463209234490345924129535442051103532546732662672506257857417154733896413009412544509389667520644774975267620165793843905908483515096298960397510555962479053358236893826709591166559959168349246785701524252022977841280637369215815704490374089547452598730282706201431096174303385265847628221071285981577463573574133123195034599801506440032307044890609483051418508071514144574429995861296911173942289222604276731470699007444712924415147878608635421145831028504091420618440467488319728943990428645444537824381703939497434252862407462782037726005070632679395521383755194010444337885172845478776538101689112346480786017176481467164097873613431042956522283063252444711657231062920470912812803789613301185932977557157019116736510807283844700801296778405052837402601232195795293357234495035534497141374171790340786356314630415327237794648681887412321939665574770426212281798606769990329270688102880679896734808973154824529770859729911683903864963386480183851535151147097644940464330870834624991147846368763556110399923100727713520346820911151477233343217396897503908713239643362485054546920037162450357664274955167150235160165486704285335688720342459029463722932400197178388403741894688905105007870175323186352707470258777860576021600116601470369956303922796854891662527427822236252880847099432360375439909957211754280506538629997657791306962911035165774734788435623593774724366099272943748735212676974277410209584215314415753635595693411763659965546789783646332891903145618301804731503188768575318449132448076065180530864999173720805970656314548295871268414215949672453582979859210487260554369973396430480494137656706013834288765916915440372268749654721717218333100233288464616922718453397724916192639161360980555653984823320255714169851966438141625109125217352717172739453030540024741091127433440418364976482889345952970523504120153348119525262343722338517520263899648575911689175592097600667184263336939839237123665357793146640266838262772867839515822722196337577082122475823417866617013438116534660068725505709926943846723112766328048631224871529046694695411747543252161331058345870741874783446986755028199550931425994330044876682445772613349839056260101139785193337985461943909307980127397959889865084664939876469914537963725605459326908988619058714294217401034202245947311715263253716440574779849971961866426306210629436875849638444331591583105064287262423888714163735139649322904148390005198095295036967504704559879102871108187747425950814955732288619230182646254592925363120152855404782367699307911191736558207910491148973204871290901244000297345147643148192386896089994980042438480219243611387361646545259881661454507861376406607579901598079581126069018417081191153676968902422786616024220655164819865803892324426757818449185879972205938764656117054697116283235638573799035806213490490045976773074262602289305242142518270110043054472509964069902030028640207676823332113391643414624651228883437025335727355227856249671651439105705721780239563801568956057572608937549465390351420651383320162274982756215683894615260163796103530630567924320125214626168728457519702926392006176611241696050705712534199100709792967680865937141439285638469653484375255553685508205257093050217417238392865152092375094341330135545256801023762104859602117499837334729727928044950092000662624205424157951661036847934172930724227312780797936399666853353952474314644173340232687517656762050876748549011399009227985822774502952325430870749373984018967266519371070687435883192032596518944599685497189642159406369878774041104436217297603383541368856074617452722216588909571090978431269407220453353966037190920398670055215594813715851227046602743129375646056263613560494393092017505623481201825709129791568623093586207426593204179282146487562688881090064697097351835559851176262383600703599461012162782573366130336897991284905015847463079394342258733437213456673046237531422537524050963954042716178586224089204782424311978743931239933245407697209936628829557626876301513191840467858599475652554400910489544203437097570213669689681449041018601341322285238759929970858450129907709636480760310399205186104202373141923687777429883469235760022223538084181823217637898872767858249056670998207477344815916328617553913123667025641195269733754001766347112971538415730209176221346698879186178859880653341366273974580351269818166605353883716900507953419160767457123064902166060889452093157510554459919778075706202537394917554998343462615659670451138354435543752353627594819577062329208095634143401036567295162150526913834946975319327588916606582787570202008428055335599235533329223081179524764716580577879390588933355739070754829496875944266842850189402973764507609384062290418080542180463811202116756644462640518844058182894903672799035686276148842000626198450250504922193731446734787406686147877432989717032893080370316294735681241048531536973558932235003320518973083801694116869947243271114340336832369468063804590176637157199982420992456573786637379382397343848626551195693207285196465342732959439884777068763467791488337360143208668645871609869628070030539535601534126743984114410048725556672938141792809773200929323003774684646753627740447188541409882959320099298453752173055503083386651324669143393678001281928790591802202611411267705163697137547618052428251768376808408207625448287258000221487722997187336977048858422576358268755237440036553101713466440442887682760714968462400071322545080444693388129925759296598178538169863637406493368227253948820034341113481035397353090782891182547692839299027805897369772354019331981648190349962423204037964501567787102575074095335074469878006715306681060477313993492435859401865467932188959892699583603258325699782796667953310122152492812344074752949682040239257750615578091491460822269028433728803368131989586563826589652518417355437070855120289773589355191159259049476736139256648220836439641176824718739298772333472097019423768764051661635993408900262801689309821631478132726249163289331618788783273675727873963206485395150888024813410362762699334242423992752531198251960970064260921397882279601841651202058362399190307684014436805359734523585157867890252065972040289626505078341833650292277814840249306523862366227596324181645398194783755527319377017200216651796114987386828263020747391236999367572749887993480472814463816794547263291985732505764781336112769167618300015417557849915999491453678927572331412603110872700325863105419594740477283005316318489613645701562657575195719926467151970347110596516760765676551607096496047278327767247834625662289604056155041265135817091175447337170153952070968160678069612055602605946466366340656608799420264397013449948272136191251413969423028053725197738719168973072153104405847706901027624602513952371779077854984435768778070519976266343528618055161170869828704006694361767253767816018287726866694997413511437684391157633405282259520121626333345873604697848924788890410876534566135763058611181471704455889526269960163469390110625054326132147259208466370273371360015600574429132145331411155523468364558153955599387633684252981405091327016140593586302028519660406757969855814651298958518012583118619379313819959978433808388626993320803932837123923640832166391475542630899049489631510274040016591708421149260609305792515159905499111078251229021158025913155497957770362542050148764766945274656825583256827195719434466596767263186573949146951521299168909847480353307868493761952311840176621716855585232152366099993033289422620942751390217415143903397543793721679859552872883202334239878927671067864968809788951107970581987760801655302464035543470666750126836335136955917222837990509442583929734984739849826148795244521811878452479080462953084761068509944146191621097522005870660214522741962246443210443420777983617841522775760065606841247208622651409510342434257812768360651861953344799489293672066520626814386466067527092805673478030165934567311859045033082038214054087287651929149540468809244314582711373561772580383430717285861507862848891443835188229928416131471087554133710015689593287980060876397106143870958508003091930778008119714651104611897071366918644381067554280944330031576576667378961214786219120382989835089023232142576235630913122911632897290943314131391107721678746531720432307957265037834124972800156589004209453896061851243721682573105450674546697581953035614753383468803203334228125365874206392463899371110429014211605468445560986964840518805079158253021807573091189105794924925210726186794786014539003640466724636034686352736215150382735368123967938389947800208017106396379037453237309730309424260893870329668299074631360972546521126883140158623046918862870700725743925677626947375185963452086647164477178698983265678193942465932673806295661699551667485692545452846140721031579856199318701192652756084807529208231429254236518808009100165502251260719302653825869543346965103666754037487928799633666634573027171779698466135469493700451319480556963442654084248589118439896926332367167999588869853707604080980467941780879686515758275401831685440694808521744201004912378410286559348783895453306774765803387698120898213091112844519469970592360263243969150782888360721876291595483763733707902981345410782575078378837873455306901263132460657084497354366526387267815876349603942005733328024544217354843982973919302440189483320926910968851292382431176411615921006602882308469397820573820678320478481213018379920904503131215267608519431902738137763590439430950406370754320260512004231245450148733045652770693553832429922239686938331469985264082675433251179466243680237511401819488498358703964448253022663090932428799656272047879908037388600393275418371473046539583796736578346745583369650912962094417063263921480129393229525007241254716391113953920752818668602039766907283550508497560101323345664380271843143808395055376214221056648835973104377301874066940839812177653392658512466391792110857669990563602871466067777273868330119943240821480337415008151838266660248500132720119519678251140504336299566417920228412164778330139182084124530451892771339150870968752128567873393448780338813947818854145609155086870559671332787024713117369129508406342904768144723595870515323325521736577571508758057168125205007875161215994990008358836244668447746705319711149529347717607673757265948103309707150049163373032666536490059771371110107131368820898400664487459128887788222196052962175787492219602433780735926764998395400517265223076308784828422264116139131020297483555413594480425904553875709362725821983805222737101813309220850933274397323418482382421309437590436227691435583420433265499339903669850485793110708066289612146251501246035391123880730696341516935069692539768697184785186186983195217048741816608106027464996732497676155611224371458576668458341784863245826959209553814169019013063933343592094570532066536150726174445103759682426441536218930395306539738392986971600969991825614479253661182878788729147695827155411342799552315610526796129387473230239673036171586775786364274913124863721759624027289365526174090168405008004147752906846469506546500030081143702686625494902902612493657996355640673608089794863054638448745757420969924548275306120814079762057658469287684082837918846360643140728588068937869890299517799805227943775378350472835441766271179737235457748433812815480186796698340780616580230471173170163717455318111807480631931008006686030420451259898403005286083604554084345690788440924882903031106363916854344904789666812023391756926712002387421377505472123536130737301443090436062301110915448364058298200269834262675557290444903713997916650542895995541702679959273827757376342376128824443776127899035882368788058796860041734011273088476418796270046114312517945376356720087519190074325670182028481538100991207341896748638810712817649069502017019035374105107887522856345275885610530657036280165872952707876563683655315211419162543915414434860915138931338515138147210790583635844517999884961645786720710773325041786132693599989007141452779095588849564089166751977172441527187777934994308045447009728227105504384062325496885856162427546810526944453038687113986956445083624106510636458794957045694213778381314640571739750274262891233856705377403433607860935591866437518036453507329985592867958586867174339127372596382379894771813376064007097887177629547672642102434129809265562975059470028009643335590844913849430068736442544305215311626226495951782117885803034607772459424160040141470634026741457408891701681389604975834109777014527079771186778723446918996518558578613528548072413097255918265131339841420413116412350231298591731177930377235229375586071667190689716068156408892979231118276805864408465472126467616939772177106242344497622042142836711857792162692182683287401757094200906102150778424465284374977249050977051267070429563240020454617322661138730771676590396095149043396844937637693996242303683651698253010548996949391104512974596648626450052771859298135762447624714298806419199856155340329519853430206828318583374381991556329704710786457833677035240365923372800021493018571832704362917767730765821688917494558224817755787933406746401508042715291131109326926006951236888010603840856730694420604134089043480237615808345244134154171982531080774700118083343022099128915731745048331195663077824202721710653663906929304052354583779952488340272703326219223434375009338260513562782891418167104580100874484947068918523581051768182118462845356393448160001711421605695252936470642010581626675750238125513398167155601097375030909007676379349860995822037188579041968834818241104163709973298530157957971232535783790020761990329162030242326435643645637259876421986058108471912561974587822966514915963031590448759921707612598992581193958330070392278654132223703459954038383310074099694572338088793090113201463047324513843868743491496331333614978704503942631560968453983505088568176787989455119031133260466377639832882339751061507045457680318122747069707653972605864657553918173716062157067080599772055939940160773971778642062530416340474298689997760133217279780321482578014843997933763530042498766555965004113301114423858550983363387188465912467343631836370113756617881542062642558193739240669122060025994866063808312488710828367234914339364225114865400314601137479782713861191768679689131851459010270033610561665831987932221919220117115418327815682443936715626211509391965291936565928066838181032782139233464141045639079513146043654896074227553827959278336043836592913541586840812772855383231217158051610537029671805106664795099604982281364898599127166316380580312280858591348247292354961044718240675002866884601744358545138034999579434284143209171765080774793319987774402350741880597768852283404954079656829258424900742484191694244559997853210233105160477149143076545000565952181406708408605041767148152688891782994716167336702020045668660995236207084515567165602582165818159916672237345713509733557406412356558662644161429487594740019220105556922221292571380737967547208797077947786100698315520431506422797897619946807905150405183320346930207978803882926949261502687914503876558627195053397062257434971028486736012507567890417536936874303777998170886457329569113833738865889826052729069488524059608258042529441923815454576658464835324193409273800949867536207276719852686370458118511244736422023626722105704921572747446892531716591902505679720430241072168366204889174150265063080182363659511833872921868269289098652777650661542883237260103459704781789858407692267501315907962130383477988571966856873462564731358960818273661540157280873853291263847220171276772553590891458666680718771594075413105467668683147819658300100304199085343686292264649858519534133038887270487530432590439986963040795085449552970779541132321292012866377485122960274796557253594917916993550024088047514941499749421256986104986565294398389065261340436158907962798677715181418739041904485139650020702924024722264079577521501992384279850158927365591237028975654555782886567877534072044091458014651388518679879103670604812820719725778717546606355047779039623792357058545240957611958803652886189903244315817904232037228920322512382360304178884369379000589088953469826878552891381914035132880877647461525810703997302058221389949783075798338154665448060597897909117511061246874835498885739271285890598827349718664272580050981736307541141302461428668852656922531372263070149297716080500146198588650055161327580802648416444572636308118571924505589810883699116718531674502417089828066541197539317406968999417028058660907118005867629919632825049962751498264694171824190709052923989583331056282031881029846876131990800747402085917638640017674930481165466377540829938007819083336982620829191052407617628006856979288843497412450989248614899830171960788177749151921906191194949740332854346526268701559793011082385032495761499144881674704793815015721189200903628442858081392748087931572841222409262646441540881829530030403353971330112639957407478373686168506772727507303114666003570559916511704852994255544203747274962727303384284165530941604727824297861424403496755643479888460831003327475288498482332694990929275435921074162501560240366970546936235070862750289922965634446546958741721407096246363091501764004009203891366235036091468871835887545710691661699561038663183186222743461947961035622121807771468952247381299470198159393354248274455853998609974755041511861488312483994730956677385172740590645488650575141147116437576838741306953155849985806224963903083799625452831991164083550263478289822677261134944325770085405573527817868287353186262347702042515890781923148498729447495660621531923990435545064650843683782920958486033683549385578916301366658292428377365516745956779348754843807681002146746314128113311813211506325986444393947932080573212982712387995801569130357258191372012392469017189715166601878205753117821172881885307669293322234121066780277002310112450497163862113510692514627426910355364865752030256333726885742550530631366875902657090774193097543486632569440234661985433660603737870700927301518077690997416257973615646678069247740592567649718920124485664571340428037473131773041319457143850984511788542682587962645181786581861737621120737234464707497084603026630645821987354304694609844123195166485517957570339176674731893781537537127464654025042958520193672851644104136175109847681934705083594865836764630801572032532019063217765049230527738847582698757568264253246940143225777374354213618652807986118133429127309190594292712106165002985615092087523651511660740657581596841164415098855715141467512940313859697227163836435787353358525103233072814624328150128526571602387046685158156715392930416857085927234660188778114644808573966963328923164232039043961783335447396200461095785452429611020787087150129912934545350715144097496806211641773108906914209033774224544835394114002391090110147479025805345027153323192083106780710564213580983124798720426262452840501070562730359473105823099391254673325288056914220367220894961167913683955185020713179267549402826426768193320454739942052485736486587281820080132010111593699518934237053659638264247730490199717440185373787518226681151363348378109016468335797493217231796673142429406316821886929884490273650705492029525109806468719606327816330216934396377919857994825114053256530358819098297311222388498492538905747476281281202779425859476496646471540429697398485603213019434107098483984462243035618315586232272042227729602406722919302055230986675634451976733870238054151538562107059883300033734920737775381306445859435077352196487440398605182571323416096330438930307637848041183933066682409175684775000346823206864890384238171416720310218949522074402770553574403383894632552152006194627824567478036145307413272504802834458681859036576015651665677895305924817172992348646336944595180883599520655892417660513807889244311470116981026313683161421881128689620478356509609998648885976637925294313411466965818557558474783740421667755359660304374102535743693276554715511864791217104002990587032830600200794916640336402504221093150433103550306134027770460549442865518799539664527535087345884228754919320891808018694079502959500931104687302719862199210833936577686555809254570593038685223672842403813563213026287390950141024583569094680915356635208161714093675839841057251156773035396074943674147854539225313640295608736459325614747437040961065045798264332458521885285390987916832397180021292323600361254088834544845975524111643920339186418448420755311301106084898392536033922864551186642725227653866539252024997579519689556407575879529077971744429270706933851289646093726584164950672632812746913443453635010984153548347742181055412555802367689925886160664379211524521772687342593995017990087515329968036926323906148700121810962391991614040172249725926841016904515939666290987326026338871531758529705031129633378183330493441663916923205382098557272315608222084983071238793482348870647495912623417336028784026351274312502457008512838373844164689251134661720789548486304560463013481280542589846819595858146035505977327391435098191763896485189426135315946968919200183858319328753409693157195718456033232114263108550792929675566341079963031362313940943449913374466055420323952380117057571139628801639596908900740155212219179763755304882319986313342933289915310240340071600442569997187322723672526452657488986677483087144150779028020402419084113982508535831007917709100193927499817369426826865305812517165521230094827599595592872217825601683523763271914912203236204827542332034035397278416070492362718277093580501193918229775922552118221389222218703149910363549202018616678551115308157234564378978600439249962365664010624374968748178203078732337541526758814458052472238882085610441219267850854440599335275057620168911394801824394174391572971385512663676312981062463540125556596085019160594907453243233378460876726839037126618046614727764418858038690463704793745785905058994118574255302776871245809446518560400410615320742170398650297643451255511502001475611397308378911740427562677449907939305601011186335832926733925468590408516044035361014631017279642229722545739132564970149819417360954753262058449386820510192950578283637746609685155920158468885998247419391440450288926861882136020960614028830015494535174591763326102689424316959968913292271545141164850040055953447927674177578463331148701669302243672806411781051268490463829998090913100684344105614916289018619267325159960507626234445952904177819245977775297321019823261359795069749907207845871016337328378296807943904575368533391108394762912802969837190042895511986710410652660703213563034669144376628794999493709650036581507475892171051629495902850775555225999709853939050315359098203999009655112245242135810088594414578029299727428833807577670379206257708000893821437093007053346437075145093686697260532366227655128402413230941111825876667426913722855230664718265681627171328039441032290033534024596865971292401354330328950955888772984813131844852764349947644192309199175022702006546030777029113411933225207539452873083690560128323126914775467264170270112579807768361610147709121891229889692925789945277227504634951905922502458304781126824181186150229627938513076033230555633869507272632102017778588638971412944244128753808889953791660476256655701434466731904686617163363582448652321855819690072380810512367795351708058111705861385882386945420446306714103020183545259724155649501441219830891964114071689835032344255027371051829409432455079451231655151384822768961860701968700691339177273940322801532282643346558001344049374727522666421383228831815576052700671317599825298069603968351823832539202250310452113211855992819810658176935558421301242194363837102921584554663370772461048440945228535128474720042581521901782941990369629547002031971675836179674725357327733540746622961811452845134131969144730439398506484964817840120848113640533924434934207152970922149048379355150548089722460154421459491486111326789961970645054440166978470576491548987381116259352307041755925191753530390085552991349494442762025399439537510770735529053498438992276556190313052142916652247021663870972150390839823684380497582623255548204882283974187542539975392252986257078936520200420846710579514643313187294687849005593874054782784554146716284636840446034304515415037163238853979505947774561633578459298658382371157362383918048056812290145649190742739063130866075959287981116466164246618594206188754793730434372683610183966735524754204489437628633500733769795655558688866362864075847064871839988297922743496723428670255525594701399994795838893361819033647132654870791292399732685883373518864292354983482427400391513262342224318111661210178123220519666309636582369212098890396481946740862232737207582690001789488862485035363510934599601857247859304852795969745489878316647661021874648361059816841071743332561329967443353722389429018432422908132727697958059484623930683226389711539641041558740337418081308035276477569735387309997716791492839159423569731742929611945906645663733198173503448851863542448184425018260864994518232511863612499322763634646512609761166603621108499044880592558623798641778690621548515223108154289586675859089657376692908245755574563326050217093901191832706849019189774941770475477820874678501980902055698611049006423432864661916461672353362797779396708254502070903491269886458629634941301288617850790316181998800044767774473370247675033946483213214766851894220157609942332094659423078239170135416042775012284919434372747960256814227969718256594206357169933062048019113018165874826007181696046155306651800227110997965389862868615751631425442253343066310419618246599439576440779638541088346126492008876599698142992170676575439467310444305334915822726771255521986097676973434161172957840586950421616474278549336116450565845640816830425699046408127208349718034962702411428211563867202331237826526091470883724730635799744165447846799614358727104325306832072380222880231844930186619114163192874383030073159633307795705126523797352378060633244190498298283848478265807185267592474819723412705583237797119144073879906474054217699177039338498445550985433716554454769711850727826220314363051362635198538216324946448201113199172191169705270601231726101273837725408553413098087494760967887252550887525264377453020938393723162217549516422380149889430926081822616852530422398000768073346804049966439627608157621273686482567970127812169905903409246219320282461923123356978989511244805512328695574586612912697415969525220694875068731677671789589887580549751976510090209008981989869303795929903669458913602237639809992142321030582927272942618710758689544627992245561285042380785390266143362436924144817864038761867366981226875597692728230097432798395151704384410779450308235726719327877628126846047952826707809626877470631349372712507927685815910637945506550532200342151307949972833511160196416467259357663262435565098228054723221149331045559734643294533262548185396926614043717101384475360671371827349569356760487148709739659517526813018938502636193581312018041213896241348732975899684544260474467236416201570112582442504233457774336437627449551392507948755590845063699533852446109695067198584699049077703030722906935495131520702286873737081545556142860731201982215560005803307381044804822660904536522816113248187882400462494482117735158485463403737875128251523074934313144224818277507872511620592090415501731411638821263381589440809666710571406480729945719204302442196456573060250014225451337976781422330985273014469539754678225697184471913078195537363201402773536106758253612821231417562896268963382873355939954634484746674289089676060738175090007832009415682829713278322530422790359841227592772496693016848541771300025473907651775208073340536715186850353253328590325503428408670623940099372806511464475698955593029277435658908353391261859904078240143213587309215001140126020931300567031730820162328344512460057698978360166059654419778064709513152236462011245253985227746285348844701775872655892907242160254245123300629914810452646123232567264006597711527903533043678384157608825891769272437621020675306290214924048688145243715642357705299759315787659577709286384969725355159313685662313547411867650776554474829792296546664121092101673731656171990672757600609078438756288149386191361535768983579569650141667149716483272254129702111620121427112327226232560430948357723252963496483908495917040027695145429146817374625553074894154379893485751197121005814400538688414298702404305964839660523249776195102340629806169986071524477954942642855815477037110967335074344794735883433183289349323735045839949718196876652608361567127279178543758037406378265291851978287649287466260800810874832014480258774318490082028338478308763014487316636322778020268052635422936026882309373539053663288850197480580803219318766706469860803344966196916263062902166268273358597891728662890499289296024002695326797509793787031419437125599200553441611526158273659285575337755166482198543256017279298854950962046295995322286244274490043686242279828816914037874199820169218663274041116830110726931173102732700654123044859416075626244873900511599517000554696622287185086639025638752446671184685048059095239444852317673628084510421952876730959989395472793166617180701993384317716325199780636876555687490075274985655613564571960853758820447741953680983477427428898495593294069366734053099798728332475873706091188271396325818831545325919285265833124316261028802587031773398351395351897571006758727946268699337676403732535033204093343757422117963260394931911250630370469394836791981078013217703313444952643072971458747910386799510800287509803838917199395330610102720045684200199174682140258886134878690715890989746458830049213688432249076457607858552927649909779090374896918751431048151595127091169258588034239317509721681005063302684824866719452884790702212638590878567819726020234853501074480860797207662214623884577965029962380360681740671125052302334434694775956453745153593307655590449040047513111798338956380466075442293036261754712446565059216260735766348611314186043707348170365501742778178121750805912500906109804700405383799495272699848945988637228953795372796916128112331341683311572544859782968889936926398530051909957547060777546443943268743377129632610878296031403998436621133380903886985136145168728730752894812039036056795549787873685121167116231916392510728208291174525078137600495132899886632873358717518726138296774699923480172692458862632010000871196329573604019893229785834916754213170914027625233984266283338823148479043249935183668176565570731292972805373862129814146560051953209522710320397404903874178454074445969650803385287620716838930006400152308272961345817638052298591211884058704158771183147340211240617414445673385919986519153017415091491531707451280458389857848779656837554682790484504741309359580031846842252807098064235604622186372184164762832799105363661353573853886680788328738023753845746157652640713041543006316476727770009703058023923904633084489381932675522474685581383118621820349143406474844265668903241685446745028081599203596843039058639941595802264687441782267232552441181569690087560193001854424115159834535946778351297688636025072441653779192321137014924901469511722324315065722265541893504518906738771190392357469072274013025349785041385963997351524726076644553935420508988187366908234395474232489695762971604486342470751122280234440567376511700729674996934920636779585488075251208215766912574232913796821353494009188020920203463655342853922795868422896089269259675249284011797659880572312331917922467570272394133959215335683044119567460303247661067837105961247864051714268029303378211716900385953003760759765140525822143447066914601763932003889655555903454186033450690431195359547806179971106015637842921945348265988461633343383801123280014542341764821107517667074096810106683208258253337855455279938747560805404878142731058566117623879400391262952822165056449735857963747362300376077784885735995777361860961110454941384307293433524035938645738483448419613528044832857533666400197431958263497114702445260227570483779591218101591144971457044555736639891175880180055024226268220210219436702056254005083167899149627474181274176561042796704160883175772955947255935562154575275515272267036878353662503662265927168498825221086694523327711244419297744828947924095359296470759890067631461476298887946920050069640762128359724452448857122217318932626955826503102356722172556310202266630911580022597864279746095805255096940443197085356356886874195920310772668512797312233580268745665108069714186780880733880317171824605600574600328778475986244321843759275313953334045447725523529788124715902531157038974445807366553677972844223217577008810315584374475697508379859318000529967886645662258277927713027136682657497423154793970093928333227564180306273131706519901665192854767231714183138412087300936152197530744775062708212501398022639964806101901957167285115300192446840133626831021157658590758582170347297493345320019860751996311274102091041364245796637115436902639986873697933509630838379325088893528387144872458041475923744929990000260029541878839081967736286637773539871777232089506671578508932227583770673645734887535754059838753977656891911648031892253087298054540661799192819051637367116229208114042299410661431928392903237376868691353648787985908124905295185119759768596479122696765533577299590696730951873610923604344587960098160820140785438780656837893028284655880786355621695302585567234920685429272328555305239179092752769485297019313880588696220506598417970010207060159332095584384133669211188935990952386240844040657819736420008355805058255219726592725495646472604853923845910488098536652210410982137900260154572604041966007327977904032566432974140282736517613029154173749962668071925371202591722349514294369351839112115713781183706282834415713138804903052494280182066700292432533887632993832621955817086897754465471595117625003911148015210573613553876227106064204973237428600610900615366017086050195093890430411945947407591244709146811448228087952471659206703101423005733042536668937490722440841934625855562146341302888737080933372903165421409122893403332363009335160310991764297937389442432389752282867116612455511282873786346313870723165270705978568189227062576924426869367997184798927725222146836331230832631462718720336967921926141115802004162529519004734532716149280314724004227339034891968931193272429005162327726421813451447333102177877116129774309348887281657138586117477359304696864238631621525901705910279784141215652691431812207672316727120630270292196336976580408316326246323361549296006597910944610014739596855573162211547074941024098862493294930245789432739086561427156492177020721660353483326164053084078634228252358915606937136323308114654635447530144779103944420113093352776640814268049271598707490907953309113518047705324569684430435751311738493013186468336244332982039187978482634764946179759847280812399137858968025285300410029307882098834390836184265116313341480992541943329697550994643640707327691512283745908012958525129952859621767964648227906877716624922437775097160720376708789199883566513634429126646861519890210389559804344555785747598198398691313193625274782734034075695850867345918961300738650322168375093504164582867499088183463950639634407953315568917408791946001576709702891972538252367939924818170778774178187546660921545590786544554022752781030341164729150641871483485688150800820256304934665164051529926563765777732252442723989477571537463475425160309532753052878906054992859219619111079735359877763111715849039583916468965611395490459129346027456670555442831304342020901319595288286968680623215412774176506673216330485429245126894606208371040746464605456931566707260656227439537370908902735628374094219364994590667109042184494161350451830738129808738910659211042058601156568019452988361096223750566727311520280089496183117678603632346809511010000320313142095067814029245709404537916554554795593634729797678767423255914840460452519205412168874032571980721565520319582527304981042259011794623100050617486480076714317098420994814010786804795812413251992379652794727198911947134318620591013293276399604072353465473264985645949598766016215176911208157929929198108988033065485643282673511838159220340868400493120121927971065265510032870542801047180231347835145493648278118760058904948702108535321901032668554016196646724504699243496965364039413029468126783020361195347692418200859117070160851317700692032746645742624955021941248599143323322195782858427353820530217239916467508559488557308113175780743250613716180601783457654937421205770439030677981534475678440021454167878392510990041672446777707251463722209686316804935381547275201319634740277485923132692875337843401364779803569353366315118845706071779777718778380278097740424249909566739088585157942285569768877359440622931302821102029576479933918415753069763690984948232619112628554221837498539321564155009464873232439130320386452171158428682928660865149527523054802071332130616761253344826968769360833547082894809660226145132889349166316146672815582326611321514429866600076974500857441269519670321246963083512231884321913284142270048905649805206215348136190077631214786119290292287708529797220285250383372283764397472576231106606026111112057589360616274570026810778152962602769214280816925183621226934703627866373486805790668025667479383339823154549103271462450481691434360861756721537207669606825384221529736128922451690464384778245274304363860063894010180679040737827912525719670223711974310848741136771942767259688829404007295026622840368795658145144262961134940233686547381680533863048919947331204099285765394728961297947265393632735712001738437049103396352690693749402161865221379131468024572298220841895819150290354246076616374497445923366276251031382667598868224549143018267772479894472061581040669249148424222898446549303611535607669715183816530792447648307344851407289520797721278608016235796041872459257712285551400971283693104537702826529544234476416074656165459390479119225385432496968381453814861322189151001502174240357624974148039384310695577067684369268945577597507295687413054098704140430774697097733234637015734974533425364968335671066524481816953144931312677600513799078433936218708886692568269963701433499314586919400263921726345580750342937103821006975078398756631848966686977224451334364272033625719266226394903005994230383048404378199003628965318899067318568736254838825876246748491816796333248311370867128156379251389402117796352036289803964803467438262879051393934520468242777991691538746692626824163193563901487543809203404945082302451187781994869724650593468396249418840250709334618602570435902889747813064206777979595692699721785923501353159540388044641770247341172055681405775318554634702834075441865067955470181975493636208712053909099024947707813081293283163830423306367639365708275820759769304056429131114634723443682389587766422640609209010259183664345060376914526704948860816326282757265129935629426148803494531593036370921537660316201336391262322231958312950385816280788810059809124806445042988793996919219602400253411143574078814648152040013085140461163317963809281141186304086749984017248941967234988992675265726651323168712670352235718478144561378145369820174785728557703314181833887112371241574535228691639941028304626195407088905240898401942598018671306839967204341532581442283263350927114432821713351770846699038310167379355004966649903883760114741521166312196876421333595330951457901489920019725979859970287743728138331036955334332880401314901694869079411001771037653464434993917622776415293868055643241713716288210878053915199142037263464631665190412202730137282059506489093663971754972713280764434862300002414476603949441609210339603891832386869341560136098720429713450857499295025257331499983577185078576914465778463098911176418145582540200887705374200324435816107283165542374926286256396886829755007361914484680926110355228120669889560327965167613792415843731060334126965465540459184572084187299309714884593127702419377986053849433532048252599436370570465190566125179303883949358768672392385128221957597122818090051927554708595050567915930692115251298235924671522197580923522472857972447911516237390741417920451251158504490563286058671383240040497761973507843390449935526911817602532956083688151419832391423326153667906061022771334207771335775875856716583451042120344774629784482421751010224533436835637154486520425684803936859990902110956152193164569739660760499523876298027831106751165595090551083104606187879042774444148726633866740212414293464088471861714329903511199727529740380745912293097311492810534458397104438590841759619496270938745160942008589225898329129294177224619502698431775028554723338467509996738471936272083008187592863075205058008865662219366732250527575346675089499478055328189543638216708706668631226219694983647918983498167144351801559931908548309047874859106150652870677214010006737487827319241214476167020357830267851526448664473901109649721426144363827485221915893359074319165556576494196243479168553891824638417822051017636905917362649152004391172662293401672774445322349535882806692527203832643145055867704541265039328282180682387623787434017379789057070509406439202331901003540032207865948451943210991725723786952651420641662951919647727668550500607461964915340945922812442626407472027229129941442386796385756243525516308758554568866931213170679354904626130932292503176688522354691455486250545524527867163330137838704315733513395178509260636897438700790941079697220228831995482487549595823437958945613680275944906560621692146924812009502056810570603145791386114197783636178452451031746447103795503579678832008744284418456755958679374456818854440361954219808324475163409386762470119935951073112698465172326351404524961630324607539244722332468577070867520771947428293052978674787064472112367516986332622247188406476326385034264443365397601547328685958664141017343655125356194954835979258722795072173144913831115111798923385420898891702291585981323388156104112936609128211684955545127643059862191036198559756586611986333922640507339780363716588690660328097371083262119946632840649556045860103703591476313386843571998614142107723495084669583605253656185877435871652917079623927026470340903678009470695571657015443229017519995891532788101204693127578408644256754067305126218391297015087146798710429873379663985695820460744206272520861821081480158923877690916091632085458703996312170535205540982953118500429831066708851062524377732301776911683478283943527372754958985811238743477371917474555741665007330377576109105949735347628893714939998505261913101271846283933932552016331386267743915759628568491778327996643136275302795615282842370179426208845511770508888286623849529545794699396313996143216596958957952724553680254794141546730345403553101975364279043087634571275137547783068032479987736781230821674299860364916107585326412505961861510284842080308124959662943472090516699217415104552001428465491768901631807001881844652593269166191208102045353119208625401823064219437885343928011349967102286779861760063762306101124492582541759430778014058539166789321157466983277018917516113963184891730486582979226465235443969158617363256115327347021678374999132246305222297354379583857901094021150871098330444035619974042645538612604046616678641050905522393880693982351756152361195054865909008883351392129205403042368465765280725721528122169582349005774881992770602750568393696224531632940356422784968995329762864465575605948376161194862232464178838425757756824559808879688643055442547717620527166247598560673872810435637505191668574378729204410699681434521591414027094836156120173947743802592529968548399061665128334866463679803103036830656882304938875554381008880976314382178125644126986140641212017269879330289092502542426209801990189707724622906168383233144011267701257924162642722774643440926399789654082224691190259257690630189608929258126166979503824449297310471133680857090983768248180375136823866091450275136833958151263605682401827778962740196056252629939280847347157906705816675538921470568962136554324884444043657362936968142403350043232979171466974860969752408780689623471318583742049062704937306348033595937083329239996522568839125388407784946510671932798664120787332494349999272840958148727725503060857737839002919859647192823115622586875270586466855869960066696870090634026689782925511310074270016155604923230439098906060055414602942512489552218085250322359799745907385492746433860503235698518450517289874045374998245730498912261488107287527252567351823707574338587122062045385345730781656852756893407360645937067259201353037488052521383787361686041874837030812260288062944136860330797965848257855936690755358460407810098887676073193975277720299597414893185494256201191822303433424134841656161022068893805025519149028593538792457607002418220339141824333469123131033157314074529563550923003557697968480466759972418800389878907310034444651721769985321864423905109628478984931652996005938711037490396771036876668358103929075499019170959111415520161898491868226042420218719972652879786904301821008564820611307407249944529896148216629419468590265671282113505343391085045030113734799527510021172907302139440014311735094932810496202643564563767091417311435996327070766795068317807142697609322016313463691709866770264252736006565457027418456258332744030087048525622968111313080182595143563470643518258262924427359575938419637309213385414743482572789678407607774172096825780129240785641332103656260791457474548893723437585693738020186497906569805255439787165232017409755596137093419553758465982075975936096407917007961094972346455261028600898759209461196117330729222335565995295927135060015845272920255588940661384860731350298520237372928302949077872873435308143241766441735961239975064718856680943640717189096035167503594668334790232256665810854838309008387680839114875712834698505764061785464963580218641445022568648748320444342975433071324970718289640513853711386055038112420569605892559278814241077213608959043837975561076871972603401043673936551176691032368074365866629579898636859320769426354531327098272167024084641784438233860248194244767219973565411365354753871571814142201992744057557457041159350946047382573999912956625899807502643356652150874799389621451208290841109484983961513662270707518070174790473289011399080979999774543916655996275848591404540757366069478725921052751595151489981034722972374383565681752735724796379710290121025588562391076590332009059687539581924951397101020077191812454574688396256078851283631027115958189229242017118863110290959938528863070340814159633119125642831300293304966148956528311408481796175115614799197191525026526463989607191649004773672235598749131397758033958512914872245283835774108710673349227135971291645285733354510483831866694615740977073714094742713154837017900150542402480639212171147338211093606206453594186194439303828954613272419029202639938451334787110938194262209037657449032713917969733113720037529290449750828221336952905725551047927017494817673853122403300663821498167770541150048276630438374714551553485693153033676828608544983259588064951386684412185324217340494335033364779911277127621460157251339179816217645101597732451997165283608294000638785204737247516307757682527983664946148529611149358112599107163099830316655224999921313020055992559141096063306882748938002117118601768134459484686418379460181393107404628015267868044900184123022334351922420620033432747698835911543472165193272284535894281881487845019702727764237957328535506194296228661884715593099707198714700783418616240208434677981153074214848990345158700252091752311425559417198317265533489290863856324519477534051440791342395204194158390034398355748342987016966652452954040492458170386982775828431096663934085856942653138579538304489346163613764140151591574997997971339271393900712114070510282967848544799393570613361376820926264788983694155506425275550464103281822526776848269091161808759730759528426846180220830622914968074212540335566532181710660735709991798546659447584960172009627838105820998646442436487135439844400508068097020582485877703177003589586395127307934277518974190642886030521564547532711541561120595729027663938932020711603062957067825840944504662523916349849919464804693954061608949937070759162257435537416260544877299159230180081690654847785363999825371594557258496916170336965500250483538788903819525909556875108387451637552742643164176687636632658165853451709843800136664948679834468285496049146291356986337927150680046323582148058643818441526255842573697197282725326483051175756036064354893419336030818134149186811752502787227057110273186674675454561926620275351215775721052721971850392018191586976515439251949290803110379798283710844837384190988731898095180564249486914558768641590519256686337063236615503654928807343834385976872782282961458502068153269238239866033411481760989682929853782617095001124773781838729650536837678928779139697135020949468764045379005694951490272098182671386809609263902608759576859311469112714166034081941714739905327766499604835295125930974893035697596977662466282307697923641614590967530300872961013531207257507123392255942522571672331220606087211279951611868041126371401624959272148181725056812472674145292821285511659277553885556551685801123073166156167335560181179671144774136924577035382082423897127949570982139938396091744648395556181701307722451276179044922921853450088096962138239308631882900249150804767396008329324927314484734256629414121221913166496222252277581654917283448762774350851231339264844303954269138284623885687938021737028793525817788440832008530279017798144769323537566852730663176742712215997839317031115547870816707469395963824352371470174978341128841355348465507959700479090259331094573198524573187808518963705674380771918456705385938554842103199347669638651805168740215611119833036057679680501091642199085378893161378110911152513615459013466255496456574354222560880376314787777500019824741182185724533492861142837500839522755062344173096584348618443716340555503095215544135008735620906548853264130686854341267324221215241371947890497642651784859319563199141085740599983009037902356463071348827241511433967390555666629313627466376167810833488490691032779029743478549845151485130686588682389929673586496568991845783495041725480239727952112630154132736830613325556751962759205636545372469140446279752807530612982851068338981865164704659610636545022180570983230352180694780120016980512767500605721605309853560034316030390690046688504673701594563068101391016951302464086612502467732488568774860323616840762682497683140511580637294079390983334059012803255613078064896823051572824236992441939514884133084827592472948109308126898315786428844511140215561808070728325109090651029755892353674714231581200700582974632292453249823616655898134525646393797557035802316396873939006629999701135356706146591093307713747977465907624709441435058856856308074898052360824613099336218071710628909403793439089855006767112743462518299303951252000590203476472938298110376251139416837277198156067128566814877600266465421138034977693633706707913952128152862391156595605742466987245748341327896048576282292319407963627600635041168183393580375677453690391374521010135633107507855574865007239213853926381664316316347014257320167037578277223425514310659348071070571206360357736470113801423152012868969295602270573162496757219816029467307866811436262182452049859404395384380429578834280407429021373865103222255613932439758123490275248778300394149646417614416010479597137302691180247952325725257473584166540612307325611773928302495975544916347536933010100598715385918294245145005337918912117928889385157644165983937426778825116028337574067259830809956528295350748161211449424512686649571007731343489828892874837906155692555664954028434408437501366870582715524927657850919626201665833751582578532867042220551780357548169720184114476856373070623786177815301342684353754047075752089208515277960352369139776037235501819381770074867327852117691357651636897050271494688031148604629153979727386171608192270892836271147776239671352996754249311280112510784359466224679858434975497195463983812471943107155801118229689602583598918164194200009520182026186077555175965680836961823535062658726810522360190414478111937200430710653092587394796668081137004255891753677859919212427296227280041500653793154697509285042726252004699289216673942397278202426580696950955042726085689340202850151665978561907806359123924387694040448677710930637650123198665129629595392355815484565188460716533047554267367352074830525052410927386730827941260434544594130909196578695668760625964551905253674540847042164441977340948507591623771521976658621346687552278212578671420627026334910325684108185468854378846424825601168566249165547052875839311451917618325210822105528974376557171041644008950927821348710078373062236157681992604493123358520933709799555047005854853411481636709898025154085259099503190890781405688709179497932781541025433026832547263342324939356185485886246967924465638911937152032655362694911048233598695591885628364542674037063364429462458773460570861587013503444521725663427546405641676057438867965425401333749317490824198871793663738506177249867726096449981435336518105202033022392632619431513700619084086831822043135756093170167590904738345365141554035012544010920085907323325616750104313197366111360538713235708343396535089816739966889822254073572760595263615087909901234915797214899843588437391592498735902903818671687218910090133727207136449080992492373327807081131145796955098719739790434991412152063749456745784535307572802465789873391569428711962821527275491878088847167527778419165350177132033956214655793959267839194972405172634295732484137456080736191319248000275619391070167533321957330731304994268058119423999163718911059622748683367784879267870895445897946425531033707752014715581973412440664986434573087783475457329565161491796251144798826543876991661580721212724572926224364510805356468566130008137893632507070068060226283147095731259119821130018397985224403554619675527797589849856753491799591684664061807413631940807604679518339782717062056877074992640464470860362536489738991435140846281461484796537694342048409024880705537625317586903488846374100914652705604554945229093354962570563212965659996799264667876514894491282859103768218722753618798982572270644974068752945371697272965859407837051929045654894681288266005484206729083003409674730884557681620693113187206246601750420938406870885003911550158759414123432897758538424838890891995767707714320372957253989873945758089359522477501865982687902587544064156978027147550967955534914659965651469068777951425423095811457252523652789903759064514873539162530208283108338694638605263402016556705210163627840035022954707512421433862145492938811444910427377722905871062169646141449092697133016961005665625306820943496954288376877149080166681984999135855063072840650449890801149645180700479311773385502878133811281806805026498207208288755281993480223056608554400870816611496339830068992623667581981277093825363961502708924879728394643343727826261128770943838232320077018631405634516073102076469760723148273711092206337832701290662873402553243411775687680643261378995888447262429078787649754429200624867660796794468488151040968631155910795303223042710544647457400188499607006559823533426638334371953632285550497822424872478572248214446852149036095482037099663095329360022861311036650170913464243761462345389806448765515328747134086347796272430275261349013732467194068194190306693617716239943464785792922409182992525511923822333373356314555614557772843667514227843096956199073349310559204733896963542308985588207131410312436280155239128174904702869323356994028452579266673888860249535731773127586183628562059744246973146536765673817722584983377553819263391700358273395709289453571730531379393078412629954282735486004837067632363074775974079758912736549691303665111685225596811671262054142559130579546205344101607120103042748557150115616808357951220556642195412955771047782768847184179518538081252020887615085562476846579012349486554170418408274963116241461504992181450285860543270076180474241941326705028777400788146560903117410938033059908597006330706682281338235885692852048358221588502882668096375540775580588024723253567629128002846683289460749195323435674240920171436116461161214438929124934784125891265356861988222527498654750190851827700095879375543436796167508908413135311423872054972333224248263263014349085538467322682115068521304431045194801887169558590357818807527397978980764931328076113601244647009562790246017779799368865667203601990606229864788126443563914668250386240247924238754586076103077202638420450089916956791337708199528072461272175628987571466731345796234172060654320882800479708587483480602200142508054109799966126963261631464070561342396157163660493643048880752785400633092316251524351211075881652866110396485181059495917216658631866957846650690976378242589731098924809109535563355487637252037873440395656035884459069710118745428191483033695633771345276683402365926152669862514720133164549246391040980463071330588194904873796473824267882303150254956044736231053649412976478448058126844060102247147992317691214402189856251253417858419270122698209769791815918545814162137587962458309823256459189935214091108663998203560839192477520565274804872395520280632962021581084733366795660457188837797125080772849108262358839131032047733301525252488529576989003330084669673128457946120660278880843282295794230598238174700357464364752765661476766483577957454517811542546694759202599012044404165838659401909765739809333024352346380971931874413334311761235156799998316646423407536285006432038282649782063712532681715923535859347287339333143393993490848140461678810462544324069449293577280881846767043689626819868569676194446400956028779951433970390126708787393859794603757139108883259804539045824805358079752142555362852355752841387295304964138050951745932887550603109997583951222829673781886451475195275713381059578743571328598986712807876329131299916931446552921027273995076961554814687482742273167728112798009035255086041798323837022070606960653692198822172427660448593794777092654838432341847224901900851573019286577631981922709040058531625673029029653258994419420868367034108489027994149057283331927640233123856829788508134173234876562266119408187593266257877647926107802229982851568946922008592660622272803756378749786471855580754305238002828880931989861284354484887214773605163351808681025850324499540049704869046094978837491254075373888780192863244612566156271553216645839651228241505059860148286158175020542686348127597840112726423722583754030456188265157256659411767586398795902230846298719872230133800624074577585054068446026353849407555227866447123968956039902631417385180705961832838711513487023813694014055798364172520815648579169734200205074828144494925148382577322088090384578860742654933284246321464541993298530390870514252964116162078469890573019445151524747814089397132686259031603322558952396994648749496596453327319107905672442701308045753838876649229964500848193472975959123716184288778345736822692795228649469369406532285516572916340912314079053921014461219634096926660777974402356568556492823064190477823115326547559564698593237919997953789548978113843689446165624970431963787646513919675748686717016703432554655725639119292243250949702733755428889388500174681117167003246751253191924244281011582924408347825681487025498956805110497218397880978394407774455567343435970480887051921827315982119015820347537005200890557032318588089293571415721103590458448538795430575113511748213900821187568313820746883092604988736751381575904876365946552343752369573321418753923587296388677795708140042618072509524771053775353446943700395071825097520611219801659435932595925374597268421387120864891393599642166130903458997209966787829743953253936094389728108308866408821304827864099349546583874858347125711574935218279337249418714956874441134291835676370772066932265682048899341527627685801794208885316989360050344617855463193709638522115938216789965911750606211329884852064805206006163600982433172053936050121177965588825763790513225158260800243872618757207497620229865239657641869479990594040667068616149550949542761531957898143726145047397744979649662351984526367172393211550819446067481783550749485963100198285905339378094217745772299049683720490411619510595784859230040250103436055336197442636540676686251016068692681374197879873197808945633134940411389554867642470773390664768680101050409191613453353061121916995094380806101341810468847266677069978147449161357341611388425308140167316606077959552346803548237394765983595013480309389485491464144596830838983127460800897603107187006549125768015218271801851227074474139189541776668644958978939043297648589900913249171541564728337496459016553668093162617223145744344838881977157947624520959061324165805254953366925970829692786053825203386058719464549914307042813091348076615906353064276753660128147370781478171685387258824621192458562565812952996141248634708365535574444279813821855687468441615140732262882841784243013508027964242446975159106750241463437239853528975983978834186384780261296811075845097569293740830108901658901446754497257138859854129030565696098703062738576751381518306053758006224432266017710541552725082603696841475286926978004292828350780087075034938335876781401984762342796934305022969945557783770569049006424614542449541739360004232420150702012106674747600921706479049520952428640617174125479847433485227736033402169482358582937486372901691258082301941959267386645332988779494150177670769987884388932815315573629933015752686856285228206819733386955793359740103749899305417835878609890178183132363019005027897248719332037723184097918836094978628729431370868670222812606055063544287705692421635634572352406413563437115944111705797843359020307594577450182166191253830474050438899558004786081805613023026563103656191779956682857536943037598117614777698733617160632020038482431681582577743368326222179057661177724997420277642227022156794408042594726853231960502999190857391931146336641218117531132783123145878904413196841876630200681893685762484186386483223579053556069729200909715372539379427718852466305546664005686397641610675191872594779915064367333161174949553503758975295998975970019929049844416906239417292676220280747980405116639015452171572210036263795750239752636347234570504417316928914531660445395255459447110681075094769121376001341152449884133495199151099685277316645269722263624812023153763370947461503921092338523008935706935496727988212291779183076329189243886018675350722015358934078255129153108243116483953344271547780959375605712293124859146424244226734928505665076499882395175377305609388499073708027721011733289259889131593167269302960934750065131736464115796672969422437229074856034495044456421117391371500552448061429785850308880732938526338797952186639168277508014627463427388257505517614978121246107740580227110153569570628144666569912816529791748266490174155594027318948192425965237121949716994472564575188671847063982249109467049231158757547139432032009104013788956656324204620725711608307849442080962991947692547806623145214578494320045238690434595087265605187431271420904365396569025642655935958905075655815605305954553377547450982882456541746937784010116786204019104794640972568964238887119406675415387425659522628912454827435721236153039695281492710951749709283212189040834317419013424566409462164139049620451717092167547530489012852205225417603926558091771298694442975976803897737818885519614955019256977138137998609622883068923780091642612241264181044715288650329587682938311012975836049161336511977753931641083396041074104277889686142659425059320692531037525348347580081917881021191613728411452045380612724686099617210374454211378108638214695848412066720811542303267951263435281913750939280446217915436238375359434980792385033246704095348837299140589817031021011628185320220126444975574069603531813327719262865414815115129588648627141569594406445630371180033771774078012221162453309428758785364098147026624296071553781089535701126897727726126052473392233141407165793533993085759108629861307243676924010623279408600792947467603946898600300853970282466010477581282442432679124017520536951602681961230035752691219392450439705704727237191430772880229708671396721470136129302779390318326766906042589889703297853307920793819879473338878006038068140890548917652511846576774488834156780855002314476005939437351816517144402278553556447116316277247204138830619105806458247275567355564526273548375245575528655011087401241114357044379720589940988763398258178125362554406467438523432473427763361465237528918604077652483874953343323427865053633464220631913471672960372700632873655061037747254921755802843512427733571963505021672411363210049542674960885189734777733451173557409907367413701026044168242918357465869996802175620434521095953842513485206344550319329086034505390759542860264395453998771824051721201440625792120328389137059039691577337051185551860168432287853002399097579360296132477130991492496388010688254788414156438125584017032682752963932843139412644544549605153227394652765399140742020070196247107757996320254751939413255314066965410553816625005009843621081241513719569237880747393919269208865799687517721751458074527275515360406353472576665445540970700099231017687736179907387030756763382433651733154483080201685308809583327526607281516622384145623423475501866259838211499469479141869308474274892720594387860490774448626946765068330523113146392094031286140161875604272993444104207748795789798094179734813765948228350667471913371333294293820340881367513700777897996642978444467619843309417195709406556904996001354237604112691814223869976722140461925534018914367423354559400689701956589028796750179273748856487156344435321347639684899718099388950045296891734412004156912752004068261457659538311463334409920777925222131881934418571671782638315265163958484035028849453508771494834446344281155553810520562491313465594445156265076526629001554800124380271807242621047639136821262565736975954980064317274446051107794276451166821615088193832823682431849881859712612479332697832444025857193073230454024619190973896161630387141561567297950828714768536830954318175394771083205792636340485808735662565513802687817915960428531392411595534369419549339937198249338897494966924659364944503785405865907778350659790202495907688563760415271910565768271154982235681286645524379705951110207973299559774538916675951725829862362738296815500843621024960270430350686758077987270151299962721220645859443199036768221859317027008275775324915075106760538231968387997714226533899320852090414298570126602347822769080670777316132066388216208610315485799369417296744784106765943947915160547015579679856380945908303887925419434849486143823229346068913257318621515334392407888131201592197153263615824861856890318902438057980016607743962196164736992012597238232590964220247532599710807822231836098850111581569956112420217077310292976447335779175388173721013363091151394614863618174571322666839053134950810590923073336821092997767575699113012796383322823798918736941676640800659659189402199832749770832345702050353456551920843224705941063949860779285240393077830387787126769882221067180854008050014457502705616313165112424172253639033722432634622445309386961468995127605501364259473334649004666634843424634735694312021900854854651680861081763443618059901215183012814307048669029293203554715203949935936831590336060283675391142403827066889907513500475724038476690472999564517011502866036234396420519729563124103648623705727954367137555914406583511799837328382394615188560154522018611902034384494537690503207784521975322215213005217839847888002034582556538578500708487484631082491927589287628866989522016258500415040212363354202347648758608323199486905567657422653970006823013294004939334239309265363660220233868632691917931590413134966730210697684143572941445204916086746852810374323693153319354224178920860389618799260969518286955806318937850634092267949726206428972118539256490177998839660353742652127565258341614513269903100649697727899909699599530754407356903370223446983707740341674497634510858171375287646589223494885528267186130939409882683488234408289766098337102531183687659250035155656519159595516514667424924409040710525932458236034166370085821696702348547850424944643499497033166825432007385237522316098185576868098737710112002792062757402305074458909590626649597324636162082640782719203199083221904994126978157638359787530216774466553907707747121500300780429050241547679736075255175200424890631056743024590489888429521994714451743954592452959333490945919532950335810078705625480473933981707455117668189513563274657060723795838686036019793985469456361005032596054282761897597260539310192180457378432572333699461669661676863769824867387353898614618066665293731507140794670834443873880638534158712294213428738669748830923532312424597661887937850104710559458483792157831775980508003731235424762204696739756335455978689817608698674781553149898169054329202907294097693591153487532940811933060585627738821371331746950831640584171025762667947831292024788483967985760387633639121737418710739584891973360034502396776323463085540692528423437449407776418559592766370089006602455963359381221441928615002678211725888876214399594472109714407771635736506745895476496860662616518000415359178640341267933894841956724519924067265878464470397074965193204398479934668084577865063990727193095333893865001126178837383181530750988164229085609658837410465245457482344244843133637899251238104446305878788869032835474148520694903361251371180979316037982820568402153890515827207485598686352063143975818824124970417680234335515329294784612492171679201680707516205461355965570273525364791073173041123937739462226747992547324775737544495570053563407650474007004749268981349630732073079369171517884738882922863542792011964822993525510589972504082146267469050778160621290616446492489416282109736423420900849405195621240172425399846667975020719892045949264930963730206606458738854271524260560695994537582317383141916886482320238600492348094336614696449052821179166893959014387803635676721432196498461977557301934953031020123037359923629661248490897528670384393908507311658129219409370560327051506034370076143940344999664936614397403391750377504399240234437438267079665402175491243110859039854928207852809208263402569410315215399796270307788500245320966967862636025895427382695936961054762629755972928838926964599107355664496313692007071503448248240798512074527090097794349577504014298642859325157656606258964701750163035349222050821245711252961115197568081416088701101283484010060872340791534848358813123198592104726202529565514094028766700539354905930789411672206873318174809181006093882244977411301990309788205854537999621422446955056507744354076600085152791216945384590415618450961485358508965660477278936594547016242110824012185800464131098338865976183669215970384346592559137524390367385709339629416211375657273542327930652729852871957392839016942251056818866079635567426487292955155185062635358430609414442812066427862591868792419827321409481071722048917678934024547959242082276689826850106183849689447948304492649355803084528226555850042415679460011810316350933438065514543538990080979951596530995208283941167085004408971418411939252339982083292639644775066785115454774433896415103964180195347816024629642238242128766351856001845393953771577913241692387483996996839581170027137724057336593090736325247534209467343992637834247856392034249984914995714394270731095865531081570704984502145183648516135280633639078745551709135650895380561350686492121726788761219293072855748304708887620077280276486576734242447156184333716429255510348256881656584448824699264785493595733010751434065237756356262262322438656791252872625249392402558939831199424327649463480971465806160039155754858958366952378005498237601960443505961449788500457201254753404770038656434431181660255216176562537866802235287239061078291057573500056545289451277613068816004138591382258779363486346057090189032051089417321005507554914883494080875862761114126908790938259781118827780200023537961734881358419529110662911000681490654845989255582786453325735726686896955750816060568016993829333785248750684793737685999959508857282214448601217352992806539942325391925444242155254155293453814471876966892740038096372975214801795104155916027566810871233481941084615246017950381493945435666148370113860944142176554204732542896668821352040886296080626323897793030074745184580651028859539527907017138450904021683576230071827981483978172326619520409983777085849382589487508804768177263444461151419440843618062266811560949362450168021534465010149572306294208430211234447135850493680825870620717019696617418760669652941970098493945369559312089877190663257487316180732919250090976330013650472953436715191281553167790356191090895682560053459320221534333332906601555220096297050824526366702682352113615297356170572479609758245262558952638122393443357197558243560977735006819524945389608306583933131275690330724962659285459043405203190530568391587535014562738630737431462380101195508813438397458081374384485663243424078651449257346072573895012908405468307175294285075985124666817082529240686250718655370840407586064245723827769170170207456041397985736739079024348464712873066441729682978063668702585578084117722708986673044928734616382634580446788490722474173432552297483968424495936061726494361950903472806985263155989567596710344649452389178935798347386018515840574866851950282309987223739028897378952737389978073376308588918472470305183624067150730907060803822792973974836862716530061657297076201684116518723343728079464928377356974265159015897763298714823509036092220024349150428859854708863651862332133474288018246415213600727185276169507898282099280079973638131376879566929996673627709466324463231217042743096003170276067019329265129958661060295070451685708450115969592104196896118663055616296604436791267062209868978003659554209248094552482429158640152914776146168680279449303464973393291152803690138728866538781732728394918170177787157749993184489793669726335209587256006588670741244499579315122784851983219972616290357193326728171091081481113614906083920234888541024751568106980128416033938319614562366528912491656110632079024096242704922154315216761069511555330416521259386069623060819270213320370608137358395679735476383590494642104084243504320021495921078538756274483264365963354759749684747978848524094045628081482940187399944891144204816630213157936255591815337335602236764090563691405477902537273683975126403364118662676603706021855533407438482915865718541504837109506477600339977463217729676330623813924902147841776248304355141607367023310431698313213448311140360940419073317632774475347223536914986795097845875711519642929880932092373673047452761539951925886510778900572458012053705403706470833948746941768330403986187821132177255754985345002832177840137443347638508266234682339310306271480449400156130290349201952270091281107410383333149214043813026620896973242182878758502292825136597098829130417503342905378998893322441934234940605725839215522609512825101405356804149803184103371921344312956301005125292713532219232888786066679516032280112839472821354001336313741083053837801709441288670882181558649611176741952936723022101155144984788239903878531803388307350393920864734301123743549953930683847555566351736608063760585717109466530322946291912887929252681943051568081808412158813211703032838943004805402115559210559622770333372541573692550036858540428618680518133522321534491940786656331766833746102796456537348384448851113497769461341360942398344980683759314625861210589791222710384435188784864377695143264262701481461866240546687612212569348130029966036964034199468394076018422416108207745504765879334504922376781750110035959626245987475484074515946232155716142934220944792955435923536432947305983581337974543379288272982887945457980082129068876087653902804352030239576553859437033104043103662814273715926225008028371497448251309425635307393949247634573817578368617893379509415348073172661421157338088354610481700867069159710494891138075866137585161400450134858563776104072146944728841848963479259155692369249177134365449320619176718372122392607372930988163026109847640795365353047777301457148963727932321616910891140011210674548361421706895208950606784000142020315949814943991253917683111144200962825812097460710242310687212759242112817518355159095245887946595077906050298628199482783896165408696005955181117158416257116803620796198181099197906332645280327934124437130111569274347895224870281142228697732186886439845353120810286031363911140708368101694361244587026137422084729585596051643774093986440467929561824310692786157455940979757945888238775379915664819067697196854020044688066536989141971722059136149014803856222776099930400614417072723595047041564518414027839861300807921149763920953694038019009758243917523122155811487572859639637281013286808647999318326392464400025725312488336287987878086971658909746370961974449194720826722298330361157754771668055234988665878322919330927461481685402122523083997397531025476454963926646247316587718104730323512951432633862003457869081622952920009873667810238690810312243716924344482269199216531307464926280545130778394125771564127894880797051880972955449624109853470339601035373125562898324309532199196644360788776515612198850994478129999299660463393412069049643406324089706338772286976543278419174408645094420058376773551212283828698885833229211285889320081510629764604272767485416979139254464478874397982686209628441113610775684903023047561760529952440342241984547644201439608132296431214406203140349501354182521608527325241665614176612653212358674989925480066712757937391612435141364880030771225884437565287514268258432141486193808536514769609318179561717707276459923951831213303269930994675906606222332296823310852634172868576723661038035860044624144336184408298676407727271293192597518459992162984459006225767344912229055478901314290057147661194963180280548690982066424409911330081610112310044300044457687292225787730246110644339826802755039961984265283781554509335581894469144464296918203740289122430584531076702912649281583116252033906087542105785236072911204287472559359949271945838630916064114289064190860441911958098016684430522598388605304624136579436348842944244463039433719158897027819566127032858132507189156145543362155156763201332757949814746561861933686433846616848994678549850026480733190999388697270788439499913743883344743121683427235382507686303411142881087842783432986005195804093979492524894355418632048011270586557916854427026716669406900389463264896239667739555478087538839938719040788906040548338010943773428302282756362262639379108828566952058697178390322061825710469881133562029036810801336706818717487036101672959796005775290696950670912503125008872941674796523158500859320003570852340386706251273058749669361928446313734351525799859630447708946987583030787661666846833767684189637872692504428853130786718072403054278343825208288093102211964535351878466866558216533633493073310501664547158703042136831505199317798532657332423524163931874632429945452625119844959993348125257765513062276029405106913167967274642909876506572175072447250296249637853513392191968158986138826052108050616226458123267502720178544855021182929708623590056373687311385697629873412018100971054499661496571153525084461713518344779466274678919059980799653860379269317587305903376769214955389745730417257905902133080567398738439908765609503175218283447394634933101815446210652533452220047293551248559686533955978162693801935507955030356411773311544042082831260272324793114381657697466204424782301461364016937762260902917890807037166964604610549588584517246741794730784172637148760192519539554205188852817047639776600488632321499772498060992977251112721746458248887708129789297284482043780159275973958780589858282538371817197438266005293667916135050936441465811977337535546309698281620081644813536102961274405206979550144816365279573610548555878130745899952477910842703586745647914613054894374303639074820902178280993853133772101075475447663924060456132932256535399433326455093256557805859096301509637311116367946603986365489553338296798847893125870269730445103324955050293324257727130125318829904531128250222176286638070042384574281173069579817072430841908702767108105772674647758200091994442247194622671352118192070918413627712361447903408787930364292284771141367479442181142763428758881822943969545129612361941698400468691574093021742728583132807366898597019241356582620132849287923008021483316988124468069650032624083164820223714907982987021409340918765021173695930327885259611395846673389394879619969284922781306021159282322541853004887495324947631759192042896427740577957258567068119110490909813674996425197039828654527677597469608752079364816218241817654968907163618031121178099286087091749673923147401716620267579273993867404176009343409681345280633762892055560647520437042425942713908671694305184905247971837474286094073728831620823395421256182771427168787486464823715019317358665259443509780315187902294949480322868282449227472731317404563369593797410086304887577745219898282614618590270556050671341987446956917366253496541266076026475452229540825904021615295762082975853552233309027016881933645568430021277177051401044171742733457914834529229578366754125382755835166677768863561973624027892159743577878067057174009914951898505581536685106122253111832677526384047849917303316764455001561089052276870700100812614687073905327157262060478143787580187978407065752835291857708831275437370744484769882970649095458157259357146913640520330885942193837877048539943943073828316260811643443023310524259057438185938699409174349310169998087787052431971304649273870260671992323350437991552690802349513898212293196381244362735553297555777243806635230555357390020753168258137452696392146227202772959352330466060195359617427003658957977448137099960988576010645612547364668907762924994463653079276296075218987819623752449322828210555916251429908896868764457358205549353204284562553806731712517722300417395040945295368298376174638673097347568363357980927423063985134719407293950908920637963983409731317626723329721093778677871555162179799121943731512720218946920294377426604912020762922687994774970836076817462851758284089006760688879213154995697465068479807906991297390614486217420396686795843808588403221857520436795609841319567578952030072331156711553830142284777199814492566328450781012752689182507632774738911683417114002997593071638656688777767603772416971034291827220893980137114074534915834327861456181148386237897233587185707485216397338302894943979143467344456564281302651283217583348392440098584555803809293682718932666632837804155571695756046109431898329388820541729117497066137782972136862570223761146493902518972633296545504048948747690324590508528147975355762494203078515414014435640632859679212340308185307180846375565797382115395999911840441038490011027595668790065601064297424074990096637323345939061889374506992625044788971450952527467651800736493974501534490156309666612658351264909597056180275480542927323289355264357257639150931329062037899620680495267058981994745856421979094214478680129682500215140381969442454182240257377066951670119863263120428822158397619412311223680674217660339774458642533343941946319120941631390106234605629356430013245090309557298303174657716595960539797163645076315630039628130826014631206083834210993959585251108576302051882526671873930492936794321575731850396295134092938961424402346634956469643184032057074978195645610591994444232905388278123328635783752820214889821625073310053537791459841609417369784579406147814094822787955393570497884770526314178066130500131550496887005771961024974656364223584211424619303544171709901200258231510618331430704394973626433775987944121654453499880957274919053101291492487462433712214510413881053867711789504001656839406471450239520195107310037714318425586029236219180223969359861892894465239360196598528256596613246379888034459185930146497499264789862647569044988732545070037434407283669075555012190089962658992039573420841220003206549848182583718310859158003584509825918737351641054626734744219104485786379497604306026863042034554966290412049263596484695225532035754731146719147345076481854801474456338122905618535198049439064977804561879929284580968893466780880596977951779100810325864887623016666941250228410824592017264309415688761374988808582131691901301530842822654983930602320173106860888563772787175827682708746193885934313196886052228705878072380624695267058639667510280695940288588523990151732785929719568991144670737309189634124405558654017491273250355624524021109996236226280793917501006939212020658494176968160846265229275598470149373857952473178943775960310178676786855783479506084786063416565100689546214728312445540270007459051878154731842961742386890168784599470874456285237599554759644450653647748050358062165438234918510501166992863118460206624925331410302538142513434848175675682304932085804995956440856769205778046570367082242754103862481642818655252030347651030223264597253324567406219064139695018177230951318622009950421744634605963807806504598872577112707911569692671931760931371091133541031272062345385305497410811171805040861086686993980066978349092914028952470429171242408216271846231220105007075037901209852311562052970979821680002736048775659691321760515621114420460059480460727419560464373092224169506015095892389570114675217168310123992390853049672127681424346327411543134621093022989438141796051606768945359574076780414006658442930932286964155203881840587332961730810717703184205369451400876753494292515251130159532362542823562774002360138563592308430807654221231361836020696646227847853673834772126517992358016279518672282397882753444010793571654988306061477260416283468544800439284718861290022810708686275744410499962694852864645305662277599089834225569146798580512543057748051948711154810384242971126022270637599213795145529712534000115043063200078127038741792764514827771731157925942111970270185816274210086298628278620801714275978937260876434782857872969435021232520158304148485092239325677964663199951291667600574959474831506537156878948604507474278198972055574890707121604929998243770654105107332870834038651458446151991504006169691000474772574418131166158596918458006955739351538367165272425541461297339422503599929029084066944012122747934698042449693664466014782386437041525651891500556692154757574392302515930753298119437833652182891185241767535791534536845586182756524232214406954954386842780050083754683810422337405551060008843177277726028993022272466860518522912383207467465985364409368153173784160392670745753109358724221412754320579507397236709717013876322102452125235781398693728241614769493409213797005060642787212433587310781821130797464236585037135191475073603351219981192857705337222178769069421059909944183016276501986816855396664381546927895483460552351944765622467156788259478298367341823158760310655819167923592603614436786304852025915701558965315585816733461273990107526972420121389561566704861123467365744923371463485413788650110237947190702488859765146661532941307207326658698689520365951466539840073326156113783265579882890621274988517567339393578292789904662307750176771239224764331615445081364208320388351478774284177567699232463154307673770196531082135867494221783946896770317321913949174342349187731639152574939871437270676560635160801492495559264297634195881255711363167456691285878569190788857105976468308529818642380230136466547852077652901338804827903638758403926021050582075688909790207295725461575139736064337815048549909162538542228202531489863494160598302859851501245949204437246957610533315268682159999517298574466157807337410913287013756434330649801109590495422336747684677120613280625495737892806904356227002163287964222525261358655719715533726016172809472999897966801377685512745816673052786884832644935564453231877091296860647300222522889056664873365710504383134683199128819864324608184156881835208630895769545861039177985603792545852002681418390145612439344141886999650774098775055208689005949336335204188505876095064204600463715545682670436944050364206919086361922115594560337423542978335114206200982694920079491395756513867553719116233226308626277087256389743882836404831614110365723323810694763625690979479384787459032836383370903120263855429820039438388156429517959006934972004171546835661744013002381326854541176238627021467534523359620073617111701346738669926955802379286222079575015611944428584979827221486991023130986769903734489607367539154118905160813861568088344040217745239965685258356349356666590818009625776132724314736927805941321156589036433763873236605117874984444426919764063884654579933498548987208184545998866618063516460444260178964075716522660815911732669831659395189008595463595563304267866735567133958402796480870579033749971378423604351461963161111367414711721020839323582984165320455328664494756924648620729044293900762687394871668863500346682811099869814154134803134617296398018480106431093157585336593545917977305761716745995838391189892401541662763536393811004903977469562661461369801418727851691750406244311592979201274799542355781928318061974934898145051358721816892699256693714182424440773928010713129040655061382788852871540618134947917237425214728166498815029162671491764112596293767015705648026325217348968397013663252280924831367802306664198388039247225001932936491998512896444514234341509345280429416954790074090199247913673787915604133324220990670977160006049941404851631199457809755681118032946629957490810785293999856268942258026444157778273149856843653051155606063962619531580960669968857368921948172217633938390067057410752035879669624896453649735616664114755890898105979101682105868980000586133895614780918000106251818548530180990435648863649034291175520365869698244724426487936722670420874597127037898413536360468340034096492276431293468863646901804835180838831069908836413356526114218175565312308080076867605438708667969536887023595254935143785291768297529394354192856276908834905059292005547739535014194791120688892674760231392271637525692625097214538847686346716908256263260069063242707586392411880913161111537647037491594836342134283895674299215579019772308204080227766640032659446047173595242975423870629393681966693090882913156958119964059708035931188587224071414575174427133756964653532686130231115528776788553503238816804833762033685046725217695361874720859226661452936118599476282006726487730937999433417948145183593880601893018477902057863860038609345494246758741589527965239389680421055277137786642307545148655455028398289001801312165685999148829969149392423669526414651635910122574741953364815760948471637549415797301239099154339381820761190689945049197851504708524693256185786091762666364310901002431073392227924253492213392149276156824534293955201787975354249910687573554135014369705667999662903577216311590465433321264851450957112353624194631288439340098106316693832884061858529879776390225512318791392775856155878279240458994467106204917337341453488014333766636539298970897998934672641020299403923041111924601217279750284315187337301782824482235832802569790676419365637398016448329521967323067447024540301903763497826796316464369286562758199810234651544747868975950970909278140714590050184933151193811442954021303133498099151341534318254069146208405966321348977926399308129753507499263487748974559318638924387038948561182571993663046168165256980982935459375921416957716245969002034097590002811562346975590976233879122244525268397016219725281783776562677628552808347565235785660990566167434562645050041650384182441583690252379009182146243666604360416344032651047209241076570598563982366513797328353561707354079706968500020996850901145287726127794566199100807297335974217391159894215132863951021803678183718097305098121526247912786925417825745176237885376862723302923808987537463615094583490699819758577471381320501225150412903049879667588582952603914398026490401911363561937668452046428650247754350371139899714097554191477297141631002243950752818515670835783672063725942335253843003035559965629943404777269220840236538221898942549498437896399351534781297770713268309325952176184044089574723832597489061119734487517284322202504321083434774056161188313365735314306195307074976147818671424447447406498841116878627987466716182436322831795324645601338741449395369342879236538259477285707627921843049819951578976712217719179913507632262411685595209778447166224987437140084611202310846762235460848019940239560227209718087655484573530780398804583786032297030985353987511941613839006666736286914875038250254395131265550212157464104875720380452577145191711838739543181289112682673786553198718579428733659999056538057470799213615286882964661901935135473261732261427287091337968379962378231410311905077554364813614491891953898959760040129441315113293191762723506022271925038581770641519497633593633526954784915622940072917185152446749805457461997954273222208731473255925056451628899507705162139828666200313787726941167261095285186804388589038898799800227533933182853245433330265137653555754201790957848979084278465914347266976357650641931096887103907288011115454711478553764800133745146578765991574628750882310442779576399601850507447929895790072562959953814948686468179163790136176427830896503363111037184409599143364273273839292125418337714523280181011344343246538303173900515983166888796772651695370337997764962745455588190439180309176349481988903076809369264954804296588958290980152830943922062500428363068485517980033209345960866604602581015651323717499632618257964680960488842252305261033780985789259788070296935617543298227679340290802838928323152949430144676085823353098691324736187480650313246181403434588328119275672314854102875362757795800843988974951431741048311503254627535564444071061854116512079470024737724289487950968451107234897942415255349290676278403599631254198241948103511226054251843740126858786450387894957466336935249356197457194929593597352993363185664449262329628667172297366171419602452220668830313468505521814163784444506934353655912727003581539661935427137584936809139401475748613551545666477525432323155332596442020998297822987992773417000452366663947409354539279977604194876928591201012793500573011235317925863051253460974176397849027638681407573960006179422668540119173377945554567608047914939250970765365246420448463599625179552868057929526246693006135954862438869942179927618403515788018931414592631449826768518549239139800153770255334067628397924250145373032976434370860633417837839321669572388744129118675600671631658301634478701268917865116429261901658002600029591138077034938961194935073010296895279112180362638407649357695047370156504953329866412790072555667671527389828386715654966667710119823495903220572342376138397953366258321231445161639417705079514549103403319074875202955675424266760896885964170503043390660668819254562929600403161611195048043587314316902728660546846250665297063191930793259141229620602653257767455529273421824506251685020465407590591290008607544299289066994958844466022539727016546182431159528880449391253335850968179310651075043247541942224983847180873856964929420964160347321810992525810305461525275065117439365670496627401756677492274634353067127716427099726101855623780988506467300886216143880709163503500487169589964025063968961168708000989208181132192561074199845045106924691108450945415055212415638242310545975807190248913959774988356723293660967248446012579202291478156794245758258327233730895706951757998156710283028294465137622900790730965218116698214406131803051920315389808616489243604969312699772707255685312077684403297754569833876654522484469159765782284404507411204013443974492141885632659810243729367711693204324813893706714703313893253466441546092891024658697492467430337781258900645843415862688857109826540527074120474130029145097650456652144980735978400684379170718732187660931694000255162278088141587240313589670193100272432417473277729288547788824184293727495627067562547277975440409200109722894370934124728360495386974226634304313455002599168943207442379627571392681831300828159863574420407373551071608217930508875742668676963494308671587334628483015654737579355592703528828631891705244311281282742246478553543415999399210961442836911880260615027815133121721952928333734899011667343244859547702202340941717136925067070780925729622604943515872898575078752677206371570252364764606914168128177911119283197796573806022623199238452680647087927456036462033451044476104106173470907949497510682581278643438536235870603257226499962602477142146442714357452715813100843254759380650717652888789941318574005149020547444480986926783022267148815368015969169130356528618411570296365913220070782367715031650120222929548760349026969925037844906106298788242748653320350061960504416352270450243230754860986102189480245547480347244205636825879465166185737242467998457501224149269242849368309762136737116902552633769596214643152702942461312433325407045058884891447977043662334510062425889087774758703941210777440311943378181142286805540000087702232433443397112673727468219407797410976845448599469272435613097293421491206421354384856251639440237064976821974352452254398992139947116922076875802818797340824763336154651783360678651641007699087090599096938894391904569482463181614090577094855248562713325094582399397532645747986605795152034795294780103925974646652023144867101714036403891613085340786998465649777110708297930109653697974936495684135371561420965237750461608270507075914548244624036835907049487907299542985074813842940531667634291960637386372080544344845446933616813963932608920734694585373778163493444811008148568802978685780226983630720894703963364584411494158229832384807427741830133522410171854111843733238175485900457364944291536137417028350330006828839982734929580591929432811931330593947030398402869358412530428718832521741425685660993259474182566419039797659157679704664039241453781459889110343524471347056610559086241506455242021704219985407447387487606928306789676871859035349681804670580022309375886386731084954854464677554233807928133182664260361512887775536068878631203604924713016569915701498124734940396929093184238002976386940093575106864508086940022625471078859686227209314897040422756091085018155163339270608695651849853980796451410317049163215515035980871143196809310382185864982909411594982539130983435249080478723834093706663382525069160742954062939092802321512942052688113801172145507363582874637609449122605370242888080731539047998175645236762185208799629531931039258995457989393105018920190710981235888299982407233219152654311326176509704900731539026197372050104658237015434263500628122039044134075091597991859862338389828673167650455232166465274882255879366445118914502789409387699534734089501475502728891252573773762674118203999741284462323902284007671470604786096193976133167211052620073423054377403419103025924850774519226243781363952102466194937394650389419177000325155462132526843467213155123277509603360628184748056866507479765035826955679737353817537839053081665483823652153532149227192955947817195674113240373599770046352522810201773653274986419206896176848809862272342470440236136445978772407794713086572057571429211754638472436873407132431223312800780842013329161336970828750849424075054314598618318950030221688875535934991289018321014469381072731543836148492798938701121376039928711721893350071653699209780307943399378758132567727108405917415616464709619597281779397752711598104117353099902323228123065826637098204196879348026772906212139325373566213341705735622051685186771702135997748742746011053137935701743385291307836521060540547236871192624002349303241615334422956561047078092641966036399363558561355191482421764304352277253299302016719479602058465098179163424566726804807236805877606770503991759138009653711480237286983534692246999823097433391037314094661685478934369559884367474560710640129343381472122124430982526622651745895279160105542293074664008368767512110876557799924274589629742595661198641886764974187712447496213362195110602312735012938617701698731505513894512978800497543939630744741252348447467932192239323475034000610468490054383550060522472077145683901766306797934860498950065638720134802299894225284332652826016238134891534251566984158623507320916136549206229114779654234407164770025844752957597455125209238621859622340621786886991701029887248239960148491464357129958302647850648494198382813192194743109937122041638453322587479122591128399220051435110907890416293939583744910227673379177563059273649990968740773738876267716564260207827516251391932958177700314683164759705176119919650462725258717446109226148434163577396778258207425415764558048645899002183130876053644131530132603936004135015167447525708327609385068669604367687922461880696646941835091618156103854682470786121159223961197122113097301123583877904410807021256918875426430347151125094193886023392745217734715527600966802985793255477648665590669720536486520541038955656266399686691282594238498882855745547147547428348504929205740319730563106381473377931038081036276128646942869698501060616292306604049450792317334870324529863266717745830375140061291626268791406868294734232379508962246027934299186824608282012838430276071856007264098098206443877792924064692130720084587754175083405215875153177723656401623852828598026023803250023452088560991203744454693127428645364132083411693095765548821176559183739358432880142730366065313853767052523706811585898699833462651059784788804535455910749889895524878183720585731736653985836467699335509999009052931752488845540849976719344255888200269294699583563805201612032026803931294925120414650852584060137258105251313329890030769656574247852223321006495358853655723597810395437363817331237440011928915748859622548605744937326821517783422016866892020540219178304212845168870804942848961049876626219293918153699628873485800341110486135321882615637531283370483296303577544071524408127897818551315251426549042593474230282567990553364956258281842561308597839222656377894507963107565692871869767238274982383154184269274002101806724978389319856470107519084569043003880010730526824648552973114996580804338155032358454018739015509327437772450252882946020273544949165797190559200728663641874776534853077302110228940147608131726795757766990389455452381252984887872376345374910557854836816271808066698901986380882998604535610354229917766663454245334996343137331860449858978447394701823268002522851028165691983776792234403465561493583057105986834783437253950527706415262804266793587847090139782468746902936840309885765985314929184649583339076137732717933488382898652201862110524299054403794826000784789728216563145742991813611293825295965244377554937169858920259586151524617850916223415489564769443850666700023576933090128802009200843469438319640956007898922522921417642829910740344231060949841523156563422776922382585014551337168196787286862101389000926169859539393243681001686309238592960276510211371132753079408594603439634311896882089473395559866683533884730489027087014510930055481451161578303414916521176804286311419101808246228874736644173554979637081128743154918688106362014367978612697536299531933041067413389722232828160009278661749791973289214792741069203931910625931769907895758394155637534805545554628874720478746536843550805731376065982844913794590574393731925107964950042358635107140039171588615359048047113636541131519378307639628926068065225490859308100398864007699542380166648974421661087287006018152872129189558019936507042517546376582116046212007222197324860874784361020656057722692420807127429080075344333460251012356357237991096491633960768134784304634239834303672538450297364989820856160340347794737935923239911882212355535937560563015836312574005352935985009654437270689241616751072939148506456863425773514136187538228185800256296948608029419318059415624896510195074289462870281348592670381921036915561874817350037929008240074950413743478445342610226934769967416122249920305670262700325730304098329093507707461294329991888033980135300064756111960529360781286309343524193086452663851206587387082925763287560785887604165326271520487492482074993493380725763587527174615757242377002932794045665068489636684677089492745943136999269398143405571048375418968624480409676777166873373552436856864962798660671944047203374022967114000380693426951668059585121355418654604067897874555414711514160991071308203396646944934956527962779753250870014692623134990380896437758109864293943401990353238361376020942323083615215775344104747673539022914992772435262662064818834764479035404703665811150051881586992130586658946227133879824076498315056433664353929348824734923807607605924679185207965154868861625994245549527678916871861144524567614759565772514732969646744213633506777622910988797696428702461396736549317062456083875153352191252827603074477687705065936981178397550463271560538500815442792012122822176541751574760931019081567920455298777416410216502856680915834431160928899289883112901675613249171899172415630309348282927848777178018393563460141038541066231153671557102717013314087440000859492182832889195695737762864574619598001218238865129403162556311035546800546319986255717582070946482855656336550407695182075223756128305222771482098260966026093901506825986802388207576880865995537047454408595649670483582174108173352373718866679904087041372679009913271915541465344481294421972929518410008934251029891828724864074930812490462360335198502997391942633049521259762830700610010619027557103823083561802795363122342229971720742713365144361836333302381508967643103136616800440842614572803227767831566438262624772640325610723959318816890605705160221506135209459552046466464246360650418854372339275279206938804431465004352743710808803041056064888566361328779361465515325273212559077990868187649140913987922761683001084927438822994931471656361265968944349153414486253873542113591819786564097997287078125735881440597976801700089716844523274188229626776880678187955998058484512424997741524268359027299916678294962298275916711370627678045516341568986069313677579988020124531796807360408384886211798634698028097980517734328428712021298211797850438894078804038489440810257075780011537301682746582530957772592173127892848654011479497095524936586926520583960678632191913372834290752203569072767419275076221337742768451508737870774223367551256158203075250191846565985108824117491465953198125801883950113800173531317238581726037097725339825548959806024819811615359362921979858684088305979425335425904701704603170799541177268596473518009336663214685833810879445056757172120708445167465944174829652235733969877498932514902024064217919408317355504492001521063456724439577785701895238921942567399538555906375436162685780051349667176142025632207531875183068071060825537469738728745181013505871820617623776343365185236025068092781980423239775925768145873250852315938384678784144458558091621522417748130098030340923217110722104018352304034418936312655427317656182677160110150344969271991544023119616210907169327991919651506078991537352252961230217517867916303368064209265601153495890778979661896891892449127837254921401001690038770955945165507547318879288748243223755318584199071794539528281326220726718904390366505634594951959845635846812049479741770595840490640795313567150582561272284763588072510838706994913681093656514277888128008547453823269589734497127904344351356707255616801608003162511556828525279735369151176522785439988130102755165569993033193556911199656922209973457468564518669324426768373186918392919681498368550338644378098466459415950755082438034365349343416151112056130073854260884476919978647207491698586043242693816124652879861213587487370078312955101858434028038598337483904506669977888265777873018313449082752234488834599700099744127422049754597876455369066550876749600939481672587631292921862287085275175137163015088577696138804138816486126604421020088806639564299197348607983383438899825402630241321904661986828012213570605313508038024124919555561732223421017080536861376766355057402292698394239952387294092222545563725517310518630945874292739070487030474146467792805916914989533980741514386964392247853071081449620063262760655871278584474423464407774301995836884197257774479289963113574198815280093374724757267611034128824152553973848202788220674023636368925157398752665448348504966769372744001578092204042747894176483865791452713574623210875684194020895448049621898172550635764968344250309212663598702189158505907069908884736622415665843228548023812947929443225022007878944699779025513827713330867160610017257073089281060378106847330985341698603567638093229017225710921524741773114581654984019088530255035094567841327177087443543204495673411759458933158664309668007350914483746831429267046955474149730661579824658266860866550182270475968761728072146754044310635339203758055461552690218536257124077974634589871279368692632885204674215264732240053818286184154572119113299647815925129919786901751874073663014091392389666190829862823664687908772016852404401145327903508747543086214893355758656096143095729916736561286860336174440032345028585865531860828239681817243528184006169695702587396768913633234043341626461955990898260983863645271988429519050988672503143140382578548697035525897773918918239753106822834574016607733867285967790978269767423458897155220074060665505145171782728638168106373743338408343547112680791989645967580939973954357214894673233749166579214433356253016635757310224300003228580512956890774403372456425640599541829839566323483244105355882726975857639363301741066088205909565445933832650606605816908600002528391587176043754654349827274220031946878506278308201929325770638887365070806613048282559673721572038613036814809429218327757530413958219550134829205104126871719007070980554637102907187041670336927446578105358916417865789209303856318985081061380381804610800622987631407347895759312034532277499900788344336826277270651513858697291672162801323906212124447447983123750909444291246534277864553757435640670438708728744853292193747780320161316644235813227917812532173809848774704007087518674858907085228211627157502043619315084306771933561617779821742307601710337833359123081845360492754638009644216333215257601302785606184537128869019881162914455806541767549773390255525738976412695818705715913942317114020537171022769423537054812903212942104074427749024856035021100284635080806554941818718269074259238237570959434401984330085787915590996150636627824331500725631901260154509692273394200206641283072607466497559973591191721624551706521118936106184419873758797859841575127473575928557733643229814803867059750014354523766642581024258390344682292298596986117596795054141583867260161415961168692337988702617477683424512323917005686804680183049527978716402417689700934626345699046377444927217348245223388874472804837197883776680888347173690169088102888985957639987040355843338744090706381406857245804400732000902575878047506244712448670314107657909054692472635642158985975535175332668240675141457311504980694759051981434800371162264931037096950027963814281544918042298892186907891286560333187938990622362927413920165511847155465833982131222178213175490384237516388377043438951866676405729883279380849310096272552909904863881869315920682161230086285301515893979468279870622651632614800237243584472993139717820683721860830724594114631883929515888662551917618416883977640060720037965875724023466152334114390960762502029257415358090747106076718510084850405836877907681332271322859087986289774808769088286122414008221009016985500368767834068831511683486322369107457705437185246657731220661229809419786773566135604534335926807013013577658447572919420893015965716170689657624330010184542904600292311678667147694970186011867996748916701772994668230577955429602379727652895152373572994502446868612862974364594909003946941635666664382953130690532219786394821223005109593673819696044189292375677132753841640113812252427849160093882163816700697214308754397476743461284636678383890335805896414970283662512538207539613531810932121926472684677971604253649181617405965735256166546642189486612314566528256503820134250200818018019034898388495050810698069957350930688013689305802930073412691004173709175208844692437276653870542313288410989159924243622769470790133500682671978930224603991076965600468148171540332840246526677360034854467615066606301230297460075117522173967676742828775067520106434164384674192825134348730570032206682027946517950235606008038713572295905023042641611430511036089564456846221433888489600913543114776769879266006379961613118784848353334093471286883445998206396109074189622964596408216452023054179105607108568781857632009361577667542044850051965333677498134190636714328098851974742762874121019123424473757340790005485631851171428036286409397609635352398041947981570681956357146009067950556575799105923733638436545657300556529648746211170256078242149948335641551894437457556643930898056727827739567947560862718123220196869209196688994360931212326681908666448252386356525898054684895100430834967634832876791660960119631495176509245476341647702244205282780139449264770389336150393335321894718428651209197355225571849408920390757351565305138838145341045655673655984637779340223622481018573979072253066233711367287501278258438139905601068711989883213137941097274180452390386730543091969286167188695039090229453454900051026999827115122411564551628904530005651617854367719990125272205044790510869944757978903877606786341205850973079010789918218366475222328925750152575794679396413730374617072305564271702371093447004091633291381870573225914397553412024968777257138446851210952302753057824613249503799893409416448186343536984089746642980236762243867436161192586476847373476847370595504149924237652031458136028348401478854708146294733659416558080392856208440181493407603660098380791411168979195393294441580650295036216092848093955042252183066848291796423230939701485547210212370045508430962029639246359729019067396958637187249682071212028605605407043071049334817434341648686550960141885276399755482084720989865015189095043238842148501295749491122530837891737380247980192570023562338724601449733234282566266518027599185505369321751237483028878388970633464165877411783192127860916528161971459384032473512838041068022071326969998210194376146823709464868523960842213347071095129868871570438951250110392678140150221095984607374246425817524705062171294611755114478921291454705670494402428394219395045477457226688570074377523576120889368247496292845715584124878907404519992705387082054141245739696031985224630084282166191886334395358452057571450854348315032171694665917494300588509031728510636197232178432848731258855604831605004740366647918370251228775379612973176908337971925899504739554661451545982150891803019500971016523859162647749008383194742992916495392497347284540431240529400172220197640505249683478197154592282691925715138891172994062205710404106930823062134836515925574067168329637909635312008884625765500493975697041100429192133005779052972611649384014401461028072922916850764939911175925644864802040550687192744783124958893961771079111190683022898077944752313991591357664835481775346900372809666823901565650796778632782764461548572321165722887061803259339557419994925005072694726014787999347105735797163821422333511658159100990814062939837214324234195513891899793048439539567066675375275999044880664731226339875697268833829208417307102440194064679800301683473613229267282022094712160989142419807092937697846300221171544486268226843529134152112918599847828891850675359845952004683865013941039743644377008573748324260493333796710900843205269254830848298081512730125392961101452674749594505283361292063387803593528960886363481401706576741352463291070372859281291855150107050698850351982044307843491599405740163945678332813239933910326688990169071882885137871833808373943718076264911994304478710661352876263665637684207243890324358545422773505673040904385985964878755972248314270047937576403530417893193885787478622837672368070238838514144709228075215909227013970976042459832604954455139084743228888113582858122443648978520937037044120456768835554726940975184822004935027793788611020011258213963563701231363306725239462320281750617566616289282326446483795840271071210954057050455970922637913346146310675040098026302964341006274589051703286374953554836287953467094884231292780582617078494407815440722354961932481855093311546572649342305667230263478721746834394389017336580128940084778392840493468239085818821619571703282534325155735715786119382735845768311783634036808052202474807880051257360890580990191799605849031886471218073370596771990732337054654583091713391956684567586405006734733088080217859297320847773798053822450596636727314756683816085250513679721635500760194815929241271153157266578600385887247764080910880781164257207464982346560574248076695707615916516636542112897251383874025788604530552127736247999646215150174727857315727152916657087093928836720223818755409710955518102101096718631042211320608267090292008779146452220435288745167683817271355936174879180186868631276825450799839475045394624689053464229086040362017342353518596273841972960276161754488408505225760533932387474565263049377980756870979596773574761000668603944216179954607477774326875090999469799690956393557646519583405069977510081625042690875022722860266752916287818758284032588061560515456062451381306100839002514694906143319040499897620858060454224887898252915700344972761358129039968406372968752687316196099568437155508094329713170855707860611738642618453340868820432418380824831097005688841740776149247054033281689163512464514151901557673479996552717613772856460927770706596103571637430805331371511135769834259267153637294280798305201996719590780534329806584165099184705851032077237534242151803143677967903440933884304072867026647541373133625598247644991363588234260154144127380319783476569931038273095980596187785877730009901223064816791130309245070153160051233656807195488722909926562195282030055346431720070198104819440722096380259312705854968066794624492944628909807699148080329179760642110971528789351096855981870455567184890515180549657668869156391961896462512290618870756810777838987788981119784218571635656316607948525991020345512283578568572298542639828047767305177897181085601199743716461872609804877393391147956936129015856658375147401934431344872551548324599080674326390435055047507470201404034337260179278540562444706310480348735033376701175360211684008456412930858848687690501882711930643768290421526127605981614263453869928550082464669106242951857717741344773794850641723824735455592994737195655981660043945038390505353928025219136301070784858666410549866356185023719732616187586717032666556484948203002886360889546051410310409569737869956146784989211795645147984779638358282503227103133025250967788369716306885772439808379912902907307669907633887559923614004841173741069430663369964004019002266867823477946494285425992662830146872781692750889970460487599532948352301322560072658572189670194572214655427592186813365174977858092800274013176614922717917130702922424858342758638162223217214210091926273251184318913088301100111552434985153058240561797997755354572685486368681024321692630383687285178665282025337764331027571780500794640270307020627133521615876904661024338361471898086003853681555475163663578042892282329253011889667800454881645438529488746334481607570613740151277085163485593012469613791272830349998335850157199733614276033575287276055758836825973887843137758848685988006450334382561161391376771889005060636328572589854219863386820517723741937843935626508778019607320368866682863171908019165010328199944616646005626262970540916683759480807768704396042928237199570037418785277770832359210234031959083752987774669309203638955449081781020997077941528441056958757724804657848339407811636681253288998078131266913247810133398876931363854896239283450684227838387850784824126210358446388769786944665072133854998181031954334461274749475757952511659497506971215872081966426902800429325762825841222944185149574997968577396287704897591688939419086995273612342416199360369189651079655640592741548252857374816624331681735768950038936580760722766014089238139198132104131146818023550529967256662216073175207694817637319809613427975991172649765418595183581235245763712571791053059046329733136196421547273209459307131931082751205624275627711491747558272262179615531971440258757239799858756959757867713501170419187209139644486128981606237066549360154523380307860727786412140069469269361452970381845740650893867113242875812470976546010915265468866878831060398109308220709785362935325713616968503775357568648269402981313629226351236482327495083272224547707084410707657991952363022765721686514646484825215899148410756190428655650871359883837689507965568636434066762987779401690235416610010351056251591488507320112358438590926856334041969551023161469085719795831279860255287441557910453869179350847292312224674214973832907923528960092164515091835043185594474101646457873128038565763816068235376651622716834086595916054305589327866303487077027800589322024999370102202136876908441743273660512519751166620838333108620287041037914111484154651743883810526639900220187760095318016490781955562044260995577709752089301554225080718704595739219685699401865182505854543660892952693215333420081041132904730869898260635682612638279786247727780856058540152336285384484848474143699617931338123409828594132864142078278202513532389991310381767395698750638306998766346720328114983847563218303591940736682490817289189617346587053056345163735016665249290079761439910662417115629300552488923243719524968429513045058845389819762800985704210621040562134919789121625576095704616426904793000282173234314824982153949075900371638545417309709010723787199223639738499826875112802564932784479830627983562262615466544684731189651854311749101751168831546047197631754186573976261414372816807673091837171691403924220472324939456310940344069336714844703213420007599358586191078833675750541971285311609243860552573799652195681512910998384879458320696811801882281623058797950530426690115719770479628209188895074748915042013005409374295574802307305604104423905044745195040451825818546676644515670519409648108096511714382868632707051945542153356451230412423143962640979736345073300929122573068727600403384175260832891712659216453749883247971222305100438663698448461048398000581498413300446195736406520424930723622605500819165656394253389661705892474130473677275968149270700506756147286327837915819863710964099673578768130522115515255245837594976972870849427663378430897597241177048817824126007605677004458384982797390086541732535952040213431171532218188266777122066672473103756616559790327270374888764711191413321288198126416433972316818651958062427112829859959643872212676036264981328853910454702307831947596004501244547421837387808576076565155981555540212028005842843344594065336024526442869893240961392805327891170388516356134565906863263850938135464710566843107834678004405428896254269668833672605554663118145079756651426320912531600414770205067229425462795413673582005419150891783821275970728534721998264548658353649522005289551404209953563054183739974644168480959064196828946868681458708769570924337413121737860762873440811039472448200175122527959936864982408909505724185346014146998241853865989657556415581609822279288175725531065212144712808442117272425958229071225526681402797919586218297134240494948433944871953310079262442854707627791748652621469491463728274392521522716900212305198757295763554909615319188884685089473614130953915394662759927644646311761126526626990008808719520181082026692492391794366304619990928318714857043055466733464365068920902326296228301861384858424500006653810468378178416640609915067165709814528447760301351319134359624993178781159834740444787610419365026327858014570329161877215497331809830965575017036458693665439395496738542101388188155208405690188004497626041884649664367505101965521781735854259419959341311550902950991540086082798727550222825430629178736029391144940171494081610551822436445850326736043004060953540716944868109527879629992187780746468966807324532871241183781688592196298246548839717604741313285706206250597512991692758823632325491496896583539039074290820628331776421879830393060225069250226909174073721112478897856425081072953862030506664249169864723616079299405167943356009723508274198784952859993113884921807969905659141659902605784583411924994257528004086421244068955523356415565137596678365890643720152198148595512767234403491779560636365139407481531553126435182803265668861973666752916470870829359689664233194302242153087716139518103295624046447649047247442061558252617533857556171609799124854707398146996506789081836160245854481031408669134357492157801856707841003128211768127467990070082804262567182019563297783449251412762140656207590194001336671598894901548262667840528914866329775963234895617480488472501599411382433296325846122110820820191671151047444284174371221477765652205405731956867122135423390827899460076504646036507858734965648363894710245994626158837122372732753506365925012099716599618137052640811081198767400632558676440936659359253324220696002222803691316419134731153664732409928452929172776622283140197191506538867519203874483433590732292093309803969763883955243590950048837081104388880753203723339203156268684397261023288554967157236368817936673714362888456889511150359441434312240889792454674393312759671237098775345087208165947305394141510769160145649505082186011446747874708676883365284450598060782885323810834609899558292704547174901318676873369955812612611982462753824688667478232816047953566972799690562987925858002908697286057831666431101877541144292082139823287882569217376611583859352043572038748789205948911332003901024487080796106801294044892186673533020413291898882263591623324846476694772738971402296090911978727228123927307495831947246774508285814084471089705275167971022289674580976876641751827189418907868692527716716359772596254031821907829488278078754504960649424541127904856894592808904772415444279112717671503127703223415412761668111583514994171120511277253030711303131177656914437587746112211685926316296081314119448877093229225989902179161092273019083368742487241388110835418888551051606393312942631510964758454020314546487255505149955060444840104665002567547294186176895829753908588046776755697674913695434434832661678074480781791613414379582215324521422026512714399715854854635547040140742156731665575923486787518555040122164130010761979040215101055813197718264560077377959586720356213432976037371453764976901244174931554770226785967239050984311570881536648396983923056915107123535490650906139918877826834996210432306186207309064688896858906721066855379553338046549670816222879737368771720668990360305600693187246325490356894142275298384737017768383185732439085406398399103562492736440241226680116015304044778115819071857857706651824969347709807109302142937335692874232267231758626757030562203332265219553605238974581476141976543362064879463683764849605663298448069656989211445931462120074231791759247551897084542175015213123076761605077377287004582658928605185324493596941378657531346614373948924341651320916917595685406635829592422025225181994723290235003158252135048993091026015219972270225329219802952754035677475355399538918136713508668440029865405167559354574830424454919376082751097813693699674717524011931414661644893791751515272915929174144710547294888511971797831434026936581413981799781544417513762094349989398987002691688564152872450580555606614021963403684463401141466039202600977746467639592938605595043954726488981764909891939254689261582267102190365576218025912641130751696737338152725517228980594099017036582002464798342047769252216354945753861171374608245477771346594854593640158768125847285621566480369273210706517781065847237177092793653033491790437725158279821306959911957430796821540535546709141680678421546227364415692293016309494867130927070781358303186806735519882224939298498839869845814310980889930962020569948464533442404736302919018127340682343401750177272292976859049727641661565968021327681140137182069700806037874116595496671081057190963069219055577335031958094051213394749383571776035642545369220484202820461557663421696069674556349527970896867730803957559719228153744440394571162029357049154040522058095333174796385984389922539479592394203325084490870674297829030496435671323924523695855684578158397434294009797265027427804381347116350121070889387184638587834735271591981075902649741940963106245349095760435813917563884000989628816620592276123531618873837843987066232558631146935653075754692397585206880779285258950770682257654623413984209012707390014181916245582281403058209535232743604685273334908908251700314113596791839611945851457920325825608220415067061934211735371457402235352049866932323655905658334227819711536123881442493415791815022605423293263104570229489654615806721259606119200870620397207394929454713716092970902888451211303621733236853322807316038491923136845562209636327852611542211997278258886730229097841853574179783817631475000290006805224404269614672614693571184641727093294145782208360821221785938122703569185549991519030714347322986439418686981645438899247823164955670048849055892483508885458828054777855576142125308449281104031831143317197611138959113235026293017426654023443052010296736772699388842357798560133055981651357475130154119358535419685834589377063125847485723294120153929817464548472118678437971453169868907013706130961611852966736517746342674056257625872657512407741606251252278900257197665404325188352040601821090327230579273979980695976456343077112306995499035849492287602596401670211630187339012192257373806010834335155487699858478593623247234295561968453516374750220310132223742780169675267056844810350317405048881516029538092278393399745923582777468977405396732738744541009747456706316692865395294726092403383864732802240598965301750778375733524972054547861960890072959789968472002514424553433333215351576281564000695571671849235101601819621679056164592379901931401389591649707450630884261396401374704314901621602399998088960624994022235229626617908444063765215615789531309810127083392783254225547544154126279742374464389084292782476376100866301864826544711301364880218494923723607507407470963499770929000901873700554857193510488099225491109148851004646684928088803877361877179608802949078269192736289875877306466232458648842808202109366716404356409167986665976422784385202770577161132377053811396218408178893165970528189288349247016286752380384792859454875174147769648019242668960310649076406748142290064449130103320239800253371418165957577816463696567121046206766663547181745713972109548511953456455208203818743044413817434490480896544644016166029323141855526409075662441744203965719333251682996870366044366537091994983714657089417680281392440829077933709966388688400829758223795895132997268229331604907628130217400845327773419929156748558292946490997156977401101568586423357043058246026380650085443002819567979105597964171846219236711410173443199095144673321753939956919678257459139106711883158445338531175364475158343497302799484893205370398444686149992734910325635721735719748941991917598070699605483443788611929088331048680213476907996384954504800234880419449964048189134903583338525165873468717888073195384974383838105112391441497371880592761851673290280321849761688526387647751673067783145301284187125685652202644088448005418052807276558337922514471676398600863660718634233547940379821189094366300635457664700647251554500806212637101973046232370402600409973266476838381082428827037637684565725668106740405334813047128300972574546650825845170858584855494337711292779349911645817775110305226470032243390332507009410104878443484837003552293889866395908038912262928141077631335495288092360026769821627680631829130548347946011423283751021900686734126900118911514953904376647104303886418197685717460891276224200908965535295742523501463373553785931728082424593252782810513259735593959888216308776565038087282615154262257510266268844047804892097316798416121651347189269638410391320505503959850667674988445321092557328831942002861423857415174824035951359461270041144279633034859880221087557026294386359858833211703206922097481971558623771725205644470578253659215777947379947643641263533831205130075722611145139609251917601388194782653529640523273743291047134438352250708572494073859052341358272041201786936239211875653387016056153774694405266909665280561181949487253112332384378150426620149825662747094066480449532366531115495619078084461049880985905108827133228814976908661360340709016747388162358782671154205539376193644833648802246731498758151222312147478109862651498258335043139938129617778708552649338884466115136055734153449183533941804955544551588786136626324233392806179435305687731411152855978933608420439349107559094631394492540800212948726248739727901837123678620284276720126360794524604919796065871164494501237501584376511001006221299159947103318116123144468711425847075211034199039560833923879319866478057779275329373163145088056861647022058830025330239542771830275833301434918160436479027673902375736422126773180784238969830435436144887278841902776552420638353908172615356070149341897429448879283565739476161302287059130576395574193242630358184561951391473549107968419763416720120319922880565141073267640355598416181630601297466911166626676165683506292354257619434601780356845678527054753687456733355701135748979296790960121671655267996978032403278335741443831648512310895395221472890413003937107667503982945529977710343401235301213548970650335082052845570652169331416494939859737338181141562080962756469322563213939129887957883539780412729716829988679401432907270730544116424100127188004100943442828613210686759887348300636727817892711340447056770961558042876598317120647068964640006086450206701791010196597858061744265347969120319890865258279839259983339267386071678030808865825417791961474389873124925167924942569159027844792146034211426548164340079766106298633312334834985652972672267407899383083665028231900510058037690140414585838884062218965241508028676132864704213852992755668649815223497439413604693402694498426224871106310932573510632616492986252419432255288913200274499195079099979198203252855209336736741438515960994806451190680605484335597443286828153515057220111898363314415720788422105496477386225294296164699394260596764017400835592083699249729638411742037069706553299367644640346778786130961711074466815304017100339324300601515950103902830132591172827875468478639283674712173831680928954161668688954597664039762474801851972713061947773198797803453010383595166722373073512180040045005686033998578272361465480569363990060750046498123755951109659156794599081644764993453647293324762017208732386938701113710032537277963583670942228855152341227350291858914073665752888268244042659442623279898662192288751427153577747107790219380644450232974464912787568174392966745505741187893031084095909788596928663776232936000917495132309858721434885373442615285425444125759153512588672988769538440216843371770191445521818983840619474277570976442728752824058546046787430806974420100561045207999331427461063206835459206835650256571995011167878939235303284441283716635468285949669706430313505243613492036789511445801319150886909611803086303987695698103129487941914527031867161205685198107624305529094880299443824039215577159257583063300689088045756133763997112240166244453872957142974799794833862313594794910931863372681333662083825336130352858137610734184836326517348198951628426536439014843641114078250676272675933253607802790392348537854811317029298441352814561341942028333728073694591376969922759139299254247219843647363118353923825639564657829389246888766865592172372223356888207144205060841423641256063267290625778506253837342935895491822443282185644365885448364303576937461699033711098174800841832575179891127776771563425508130284817443792032608182040616178606122413292095142699701313826466615789133811201733766641845779196902359314728281120428394398002608230337471403172369588860893386179759777457681331217775248923917360016857349620040994120737276953322886361664012066346531418416584317768486458521420543949387207346734973909903139482126397822172347308662554230583489844954371595117796015937510861423360765188825381171687822490794523255058984676202355865792210300476694903063153235229436053227373832186369150895607943785599288310128195036738679496264051050286486523991251806573834992911968483059291957067514321369368490723396381492036302145972170814218307453116406448236074009039323435249724300069949851068928594814830234157056970367663737816047016158560182966833943956862907616511420522703349784705505601953296964424000142351552021420651058094999408319729672935636716766626474267108013096121374954914418973845049653217096180274765639901225799638225323535911650563824499266195546059032417743391482245263914943588624413656404482918161612460496969678899532178651818476279074427255052948568545293259424462917750013190036331551029273605598549528936639641062704463317087748541424184923528898220619121530290529847542322067612799120540755974485337112856110848611720810543765002249536959149577441730367313918263233683515722042553405828999236905602235134654766008047114228284194180558911835124481167318429598046938771121815873250934028614550989773485891240730860549187595549733380998425240666792748983458454380747409435591664125989152238984046744347367356497126644287794267267812125594172364008155500144237633641079199731658965974166738759115901081924526878548717227802835747934352861351544942285950664212787551527636702645318295811209004956459970851273183314282128579958185534753754927605121627484643785465388405666755908898243501185556646793897300697005580662523624488172887371537271653245274317642026654347974546242423821715962224728467270328430705670118015224558885951153425509701804242075266837409549281523945729494620766793989941662179715390284219405410470748481414591208959807099018195840728111432522537671386189203196585251384355972200594927280612645183116034097621713473412458192621067669974926457383496522787829137802081830691826518630722601078465821958942310459031206680454124911039280157811165643203054839639044408509779816514912593119363364406149283236477145929433674772564985290438080016873258911749320639898218311624461593304116253356735325373770714301612945117902579861674713632365031310220300299605072345324059112181187247777386931254862539746756479867985427250363324496565147611336619487003000371169782205245207697776786231271954570748208328369390495383696701861120566952204994569820344208105134858673803032710395199096546685898043663547781988056309019769639897608437624443912560791069409653417225897073333426955013408503946383320133131350563199989510840438650952422990795008443353672216261195871105090858534371740425223179184371106288153531328289238233819501144095530737255423621695282752104636856465788609141279885473584914216462377047707595363628901063925703543682156261581715681327718395718113598030014616242805172705540782799703569634677595933873831588423521405078114552467639490469276308098199010212127584607417136430390231667461479164320035811709987609159295005818881031598904726852848211253909489182997771413357801810624647366344963687956154374927599631199569325744648701179527000638309239346685265374305187496626489345221698075994908911733647600003419321589688940740899802636762500219823770484462929360361280448272622286851965601999106444333117686594128559953059670892121024693755509604780115684574605852225744354133755733790979582815658750135863582287056755493140592102377996768553879762000513799695151936302546496809686565880739355818201934760563196421032856512448800839015237030695141938506651348979611021836357971488748571431411881110223016991130781096044754010918492708409100734334623547443897382360115839989606709456739351059088860866669001837162705674357479178190792582200744842219957812048050050661811519085795259653996369816619651279889901677904052591300926840675772400890912188554704853633042159629306049105039193463826935125322210472491881385063199451074777805925517164211201077064674698878816513175725354042759938839880408604848878092550035192591890381138821900321313626220473148929420788947069222241981487999037957619755391082510312197213973518569466683826982810367464448181498739990941750362951905202569145274062185020254014857307388561663837393227946804753971984167913483549348101590244124524352417136739332908036304246218799114485230324329121862739830398441742313339339475623313391444911562850354851283917188316936391125674707893539785534156512848457825705544745042170803986692950755431781137081235194352059359311406395496806484920926109476548024461269956912455335501226645079139001730139777334785398299248275158701142181953537434281257027710816627703627284948583940973534790581116240933526723846103840790344706610092218607852456677329975978480838508078026226500377509076626271116606662652947615523874771157256376374046977544691424296260326851796900096632487563558154795758816968521207524996840923717888772127877012417345730626001966540411449365152254207965383707279616302741829750861343021802456793503731070540025939430355664676238867472057964752562913066345015812214901421447746883869561250243902585840541149020291636263911268834879415310528412118296247960478585217687605064839035550169283149945328671789856391868603836292447953042917147402197189613164528566580612720167710720870849783352619104882886002783315722478915863217704524025232062020086590240644975250733733136929091129173055517043057103433754227687583161538116967000579805834671032995375756143767405207863940432921156597035069764631374543343649562926613448348618850833011012956096163225232045737468162590189430425791497418012160837546815149494983716616590960193584334655204406579007154161581909548041224434366450800183164189144240180539519488634809513330935712418334624309989175510679870965209384760846246538546103131824363805952016258161013931104076869220190783475861726845478852940999111419929484056135425065597002062042476724823315861612585733944216178439938703661449906141300404482044196535618034412726031137536374479766654769534468645409980159150880122373954769548640453132092794542605463057011666254639623840977850214593614465152280286863291183033029351480168531040023384772802506743602714507949189481348792368321577829429047640098376240069935463247823139419161685429022102633039426323793474144529548216952798842216098994397864216963319937180599336935492701252580651772590812003023481226966593058668909181017996278593647549439384785787135734587587511271044186909724244377548822117895142204381519767313891961618840470576489581577377955986792841358464578146635029873286641310048397155390919556771513672648646836896343829944970745294775412481453100230672795803943462795354351938218695355856180922027815176535873242580473081945873623365207080011981465065008901187436023332056003725669421499663234007424102427967954548096157541136352003786564888533028565003501391467221652869344573525355549195518666812139245256965313635609184193480658524603642227384267533980796238206271568902093074138541061563070032221895434283805112198362382141456355035080857839701680119891499320201485866520880535415896150020125554092996350566955205489792105229506488007786253738017378493895267684489240005704200348561092121154697121756474817384867942888019028160943378714193479517280753065094041713345149272057689678810023117823157112914856856715834161117472227823797380827293029245173240854812067653198359015584204191547301659894395688452374625254611852653375994631283596554353020207984369133281400146101953703491988894454313538647019509475971643590843358302653876514029894568852379501904301462462908075352055444870481173325549215779220778856168331415594886070342580387927913280560558129781767742616167685676421773526092820609702017048068069261365523421623784508033451811352114090381076718052359258314017222337849428700701969330223337647928059297818813322582188200108804394745182723280854731572463009465300619963081983543540560789995912798302957505785961612760639131879141486075003919082550761720013685019142647495660114949770286743045409543449695675917827048887726582126341221193894597374291836252321929850374844708109218256029369868042204871434764004562204076999604460378115084822996936370345520767502382943967696210971157075026972773852344771725429210854133628128791659844260743143826522979349394740369951215562783851910024559504820479727499055783327821801325370844800946973182639683581471769906008968193403996899867930100083804388025016046835650884176933696048899002020625980407159314705244738451935317812446264550685427650494354641422827719071295088341176077222987450849494526153815542730048066292686626518216848190586791212939624891327618267053749628326979895500833408325703340226467992214493486483027342652400630169459684288483638903261866099056221879995690730627926650425151289459733365785938437072472206086949434576665146586642938765146622657187709675983599624472645329390605665548063894113632523692330038871571235090915197963596693242987815142678665050426666605406133417353122271252102348596240282877631336350300823751781187218042867620476878840295634452280117832287934942836909294114646699028406980327428321887219542086116548365961221697801077989034639861917361846061813607434589583274627890004853670594967065825386825534751325818601755717326967048282703389320320415240655379228147968406329705730734280980295941709897674433610139613349088573978744418245267674363171012987334992041184714188451360220836556345814110599118078428209371144806035315462067537781332048064444203925594597929548044720772246117504727437122145462109624077947595865525541004337696284044323557343959697988718554138190307389128364274087324785769539015046645527190839351884545607660799841603691358844263821750680604883296707491705003607986836287938773047774037811594657048440711701947533497860840281652779284021875344752717277421550866815649304518992029168074246380933387468360744569756241603578613858024533959163550647612078834242597398924272289194029902015660887168658830705429971802776464670691212557461927073457434530045059630404469557475931248195694216339022841078252868548445042393721333696154935938751769352026112833391112154570566250459046140382999082750774860908098927601241421403244953588303639755120846972205861729849380667706742017079259545073142690402298199549878376707333266663167140565493071766953295402166711624743889938495758683440203553049940338692164148564409860774124774698829567095977535480393164931344607269837862064382201962142597827854639567240352350832926147681415741698195317184467455701623089608871412012844653156174499496372530737390746686792906664249976735158523417420771979758394023839765305066518649428002136659795754545897185819301404922835377389823065942314102862755955642880412166257021254499455602539620785636643377293993634526174735584523085571448595780517404890800365056351261074878204107990558713684641449995281775810017225016364999362911154393566893507317666477047528897259067648644428580091768577239621867077637886922432265825980355223865818450240002546728402190492592020931032279488655962159431993097210361922801062200614324045443203076625038659211415521709319992591780238251447554676081906354207140359685228317648476347924781953656436868229683997176035463931483731335134059505702325022067194702454326072120649257565063064259908564549351733372888480496294348769231130371555297186513731379324400320950377834062244107356581569449958115488655172511646657938115413365861495998800728563574520357831248560260285780434509449454822594024988708462371638590470717037433738924816922861591245941646051184334072115150095633409153341266925024567380289748831311588010865815909222813216921350260987292628478958593293608990492649965482585329817236369241848636162015343281033155987561088742050416084037979210247973026417600666683521733015076987779906601283110996625195754754872424447713722611916006252654400633128470285530941827781218697873473016804811908310124026176090766464510625546312681945469130127078569790999607206507079815912641283153216640855228668140175584996096484323378488564776973960081218401259042377833297604547345967410649441395792582959273125289638433039868496056988837890423066570312102744221779663534938022302915875498934699707543813756348426993907977002536917060120163583074482783253448905626678474498759634467570903821395612562267509930859112642423637951443650649843520525798160405829335563361392197557796113170033708815038975886076724628858797485027005970671403813975481269225744562305373433434720605443225889929550286034215349534299370701767813207293413162786765490790508717263628004546207895578033526586149960391785297336771428655584228475631891029074163266753592811533955467967294005546205680374658296740122265008383759164810347076623034636460012821274682315377677984150413276666776727695043767035455147031651217312073323051887441768907896025300076037633316377893035126706645782016843363821243684536293072878026594016022359270349276477046696369387603944612699647875203065815758203276179173558099504898079775009426344527545938182160093870949137425958703040427227105045600850692847758432842761333809364100597977582735814553968244274293095654851511645169762774005806924924324690317738323604781570219646884160821423819644397435312821818492669459953310207486169462956656443931528085085041776238669792569464826427073705882814559934078018863908720492956519741912210363748031515956579168114973858401101336177475539153272604375420886135920256148125322464184949057680090617350100608965496947322298745887558757468062911011981122420079025044771933517799245310850127509805356781918808466711206798994155438194465283879896381143267806209470532785819561331336041314402115679821210590776244607247951633619240996583040451469487277070356168296980442976220910657201094360313981151434279079983766508429788547981044463535132280139593191082458935409298528738319761265862037170940409848200771784666981684343007204017897502245903044289755024790689796264832807834062072418951892166219183432991088976070277905593668965087006884029093296470653867567639023048845979088119319644683419107322849270994035830764621766380251789554073901776539406001452505679586343958327372757577175093414584480737494696116342874318290621013598478820684181292379979666131623119889851402681890786646861954210099870485440443836003367148173713123647067140650237007979216276325873007607323065123961401359975565407216544977224120938675623550222196267788911319454408314010213630059498961682625715843112468922507605640715384664961446417646457625333445405892490177464062493130536544151271314451907716696028562359631504310522413112555724887777091228599626845332373854245146956295357638847214744545506055199105189225517434018847056833621343105132884076604832856365559720629460402605363768644516726230902430167001561325389906731281209970349350336294254977093222335425975022605582605530226620403733846405510836041172430113147877894105857517379691285444978444734484388827249541457680147494103009399397692264943374591845676513924593015275991094841084279401171336426086285478801363016198921332720189115106849780192965686361585152480754540260796093644196873598780855500084057515305817590296519735346955439475987622250886825818414653627695789157727353619682853245707689647670104721882717856348976664931684070344053907115405268304685105570179247887433034894094486148781193845680046458093602553264667464414547661212103034354069199591157919356990621837611298943089259207811923930599983785154894368377339422542266486605063799509689197167837819634625394434365634616896125134817715499624626725363267610207823487382785572203452192395128476657418894342206107774532641537451029670942445953926554694033333627957638365213998632345854183338502614428823712692277191507288259758118961777502180873958365954519867022595360708627633083462611212993242022239355629436156460184907673969312790423491425490960159536794425428132874084887991792750117512656152636550973589187074187935624634924581789462331503653434853337729270243775073680298023717114456196291733758834269730234679215949051828083999116716109619861075216663029316130052992423478306113685669675918483842827345008085506009215886759819872378502088380287140296910444515526210880094914151489860475161329535080505581967698871695246005927310183597236046958431716048160800439523789879395142894149539959867309210835580513334697423314246063261762862737027411473087553254884552080068965551718177964602307121851577885436231046147397843418185599162143405881394026162521587684686908656831717361131716923200883682744439985722187871223622691760926877275630241684038178925130882011487951116423262303477988097297919143280440458816923620168924148939125859219079249106374759546802532794835317378672943871706948940728271587065512232465256707852120817269166110373412369820370611876509336747891027786844485323287120067006396913308405023111444963521943100433191280429653410124620264462403321881375643560081524362309683898181663854689812903641738346903974123755666073380356570061070429132680319338280246421661817084867894170701571113193887462012574063320829023840918916330616491690402119107115483774415720113977371678963499785910097396483395605974374326508641359635818907479279782954642336976941004762091523523814168527049886669404908487798433515223862108820749659077203095206789791118935651726579690541690499854984635888047962042691589635138637258610730240621445124227547597595692949782004965446666110483630461715453294923114203401349440686693854598390195450507958836670122215090441184144683545496927361176646946172128500549230055211732220833838229827304975054873043198508029846459947448406163672884463723198404031653141108819031973094140569810155959901452867244187019814726231605586471799051085460366153031267022759738808756218143701003652788770893175969244368171570086927625134364671014324912350430026935645338939411091899874154992167885245227541282943758117630867861402280162586215305659385159287413784201329341071583914305830044301166210969677457417385501973769285716877983506878747924768483711819249607665557653351341057161994211055268529084927277311133472740817020280678335543040010531972457950663569898961154076638958863891103592270610187913113788964905187976432232253314483708780285467518374642339497375331649955919970959494884065438250504713046986100740859330346112908892921468865961298569727549686443613136045729194047809228940104511005606594738958060707608545578050984095959381605906294584833855887132554387875731339242179388922004685716160037990367922796179591687446521146520744268643233250512641091551009039336860229527080866608467471342838119824981570386360228272783524050892204292652761449158855232117694818639501376659386314501703951888709032722067213005998896670170444102024229884476596889309337780543804831435441357500531030196923791176955849848917866878346681028689855569100051078436938633102064996396398533439071233850199507684959046541892211208982657660643573476016623112386030169413268813320598413606978323619739432721627389638133843074582783623972385975520616299356139077829323584750357586727590980079862034577435375192702215504065447352519067302246225189568286489190086618457389426912939489462050679792587637002047407319695939005879154796840946146252210051511974888490289011315819037811717774204126582568134343849439053145408636419216952437043798295300693312061313449240923556626004849481255575196772775750158818781491253089780172932251981208957367536007213866187428632055561304512227309410931276892927508509394796988007175717845199054656243616270680671303391640295673731418236351524334680147677091036580139718186208242940951501244200383225314578179585149588682406994132535029558973412016085310931185697306037659693118380364826476704501958162400358526646936588630461269751632352066696069828389292377755952188464300435736446696308603004460944390897303800384218024887304155435223897143009888659128336397925086261272386976196691382393381362853146737924330095337309244055148165982489165890352288495024985461622841702496491233720441468121601396007743772331178907991739710008555275582101330872966515646431887031545511582183294337509862180676074662344696292433419044209763519898131291430602384436679442097055026977475243362341438473783430185433823171949647445806442616800646154930765732373587560959274266556273535699777176625348117683916334097077484738650130813047750967728415553636888742872985578677771407401912648252008512776177904421367755387805852320190080312103398804231607366731109846264364595131247173470661479327386500258605005389089842338462441350417233751384331810671319340897377999553261873568187557158394357614593218075947047153994569573143249362963027179473601003753198345113158716861416400152602356454265836973621911206640527780411695821407931065347404736474807758042856516877307224009425484211018101474371778398631901458534970581386220062606580994936109845313994743757825854955156546330176005036123887415936241758559392274809624609118694824109290174257533793627425835008402963691693493050084176267318312046548829346585058314913417381500677136560227115679057152574403271649779722281621039064357800997555909138732389269530651398935320332288060807510723842576351362539694202609249801306386820672652212719356999477791664710022845352234114546892218181550398104370415563688444426828718828269150947455363578173355552660912575865979847795486724294810704204684408775242829067096079966960774539785709523742425495194466184548940963053938674355378175645912803342498995977814689352380596919008052426833112532277507366535048299230251776994674413531196010509215470313234200773160649763977115350569290650439487576580592712801169695220726740188980469048220107255291411064788535722067096192634253862523291178783904814155309559504209881665197257237725634627659089451872689206371195838318436604547269450395650358861808882335116114155138064875860282578706951243569727659633346440340745704690346854815411665751945987088422105248228797001344614081590046320774958857330368946942352953198881642421848087079177810324760760719168803642367024157631876546125164042054820088454314275556317953733506300672343741443498203062314854947703653122505552829789623333760232283210927578102588875011219382925233635042863784222116730646106329380397102415247269225664788038079034137656554676722733973465086979375220100090924030151923388765991440328191577978630754191648407239003840275622363726789232097553219325242095929905738887600719465162251404714204957485530242587096133069925100587097111097079328380318427781071644668277641966604509959692204004512834827594322576473241578357286417877076925077729681954661060423818895662426174671594942166058323140797266063124516883819952623097702206314758737637584192476361297970596339782914957776930455416055030156273944487209521624940798388020599586343321130131493843522537886860549380707679268316822093859346833301465856264399679450796098053223507208703321070322690582028800952591877056344774568976828516580566062549986174706598383546985511915881560633943193235863489691242711549830771298420377236972886252130240283439970458318547688914751021718135103468826591834681767225437778838684882191177652336168054578471445253750178797133447833250798003474642037977862984636966695581862106961200995143291207611383979445598583412599741329440490841273925001194641021008137622516827916102347766748036848971719154016404175868376469920324701288005103833580225419799305844862247924500856675597995880161207891726695567356261713905672207994912337874240098092264108918053679111210502454588461874889203734902684123926096542475005714099462919610665997526450931140658097362087285833832689502499491481992548949713588874167736389654884113841777489717913067137388178878694188078311792761572935548862823110682855234574613404541236282801621292852192805739256965206624323480084366602787947996154218538239175583060693318534035011491965882272991003366416439506302394000394257339742633614015510795582102834005052150819216274362727713677017487444210389422833948160844308838641843969921056136488838834708331270478379912355318678825311187942618472666949913678560315146247804525538149774721135396445704593284983039461922583837805040001259750708558023936014305679865053417973884212633666422423184544471846732441513887237751623110610705066214618507103226999293659790265572640308356697590355503821422808020764933713401714641354768843054898573972729036257100689107699210560681720161784928556905359390873196830270076148709423249283216618685890827888116029157627869863308396655477295465264384349845688667891376424974291740611055839941637339651385078112136340082210980702390592817299386860920893093372485345586132677070220520195237389387756952292267156766533380986946628007857142537760249518376719173002592045730562960132074453982446842994714734994907283773101177772284169239249702042473689490497833233081300933810203399478615169894350687912098435093987350613181590714091018686003802301156422531589416888474163534748629280347708719108934670545058457485122107014515188835104874537778978166881685919151385330027777111253205358575094537643504248982362866630980885375732304026718142602831405717191086862942790386039824599440173653992543932655970298382944392212696671150088213432340414422399883238651915850833209243317197751382314895819256699427810600061544584293173787946496634504311903566912844783856130163700799468989040765774859228896616471768832893187547382457139666501984125819039669922211216969535916152225590098932880656621708157197623851442332354057931224359324448164892868802012431437221990098312216015365455622251098378389068299419191803095647564368586504784702015272255088404259999740872987528455506593417014773001040069427607160601624260391758668913765657032932348049590051331347384179395138790879197290609590548992414641903066604373964626904618728719598959040600368795469675521044711392469315488441572352994836264381242291214722980291904030636104911559114554380542691496985612307889089843042690784348787777645557513485348999709946806466137562462439246661511557292960511861736017028643103779341783227495639460282101556595648105276960761531571242646500875579419313010087422142902602528524227144021517677838287917367395070881771842637893371024806735714752471512971277910825321282392834707277236263144274187404947646260855859475183740570785004692096675665996196254616687325772881084766225054097358568949739956435384813129140440234027900096925408427325370347762179891570013319351577781004032196198006191437621712276284629418779142123969218881880582955755492881234162386361595535828085799863472041997710361287008814253027066178826267850288551623791269212417839712225409318343972994030081942200800117059796319646787492343285768153871953426595963365178599316848245555098689968699808562919677007032004629170918239545656663146980808904966197039691563499999297079717524204112294639373818287189552288656318294041069888411638988962760489314988556553692022506713314208315064365101912593051948445710771549113948068830970909296148641894183517459941012308634305568020529519496396124920563818910048800513697335384014640641195130924397062088674059286870308545000027355433608727385304287084235984707210110625583986002723229905869731775782128459471358683244693345469175019291914452475768415520195730311662074193111473082608422573350848916977739758960425238370648531055766838227578430248161280280485811479664139564727761449883942694203921444010581429173930584093153288340127916592745903758990087052387421950095161238807180725190990258593295153358583513983998407850437600079386072510610016239992153857957553668225730202250051495291848182408584683432194165466376947957310733809476511247141051359200718341053956604793030713018197144992424895618032257147316454828563176546465122161338950330942501910967715844303095963586229763192473381351073823554768175050959655629320890004284857952392324731365673427437434075079745754342501166058110553360006866592374002316178504234892942970622349809692908921337301416867000907399248514316919029906038040251710181372726411669630549415258376837325523235551765050255132684225134919649154556672296437060471542670884033341895521612721825187429764987627255641807683512798351043086525500438470120793013461680911656487424258689866556174945391972363734406199524357406841747344731207955497611939524817903267884451188301876779326163340508936726085148221646910165459535439454105987617845635423294450488184585355119912004659564384923878470495513818441210756088075417292972391830066847915039498226064659543698998558551622495780284530955762430426848972016175289999168029727838820034808478361148708977869755556040447106320867455943926708154814879294784347121527751804552934754999685202125198946655398881848431183670816048257719196211365185035377553535908449786045725526420042801516459279757353091124078172771983581718562956465528455733807747589030804575687819537791364187946308012002671958869214954340611982955729033586067913052066326699810395095089211212200718625965631127770715117562217512900546891500711539782357606231945426004522601841739899703204499530637345620835137275478468805810166210226815076204803348170030411371664169716575256752879714456423545784757148354555750438609947944008879963663165794740187678719694974230403319733290660457055846703301996973347362504209853501839904537247167115435511967038959268557683530306835495780868171668264900078510269951510043176178174358437235921296749629323506021777852986261593271567188185113410813936556018705163096766355789686716496234102022313790480426209234333717933396543865418182097320211185171827196656577518580090135256696702099524743062625705384448387748874769262792729400338569212037793270885659851476283664205654331495942995915276958884102437124200367188215755768466560418865120841709868732542311382743056044748887365719243874809407325882416344451253187413304476430864330502923777181889867479848185071329783248196181630221568803407696783294470104953715750626190867143019602124305623704592608873963992569220368457367214633527729128343020695398237890867024521415008047953743243391624162351927326492103664797503535865474949252768637573567289354261859260984357683601340323421170019681905888489811460477577248563665245283139683407180535207340724787043423439066958165572321143236454034699367328507345767376329334955783574326075364444182120985641757609635097862954693125799341232390726115908949180231722765622805314775717649449903347967887318332000976893793583017114069798944197648964471982383934697187933230670823760756539695141952746563057212441887230543056761062652276210807775886881565673159656392328942962316313671170291980502839180932871705498358303142599596841590921593900322888900475780103712518052710205699222078616091157237896863290084679293541996373313775091591869190490846966956251622860806489389602622024009407861545258620401316202016489113294905833919051837687788676711248852103643986938003598759435746377070610786041170587582514935821011793849679773001437439734163423295767367255430420891377888771254815482403477061854230009551515109935880364486163534628732102228023259435254915771330385245271888050241295060768272065742090700202497672277152661931986013928568867911245324447931572284866587273056679786438229287713301873243384666987908200274180891192303509752930360632960255539658586959885385784630652356434219924963588017017516932480150249151794542837465385634964631407004533605171746394266247276219920950551819011763178844824881834270365529330818943934535296964667036284016946512701333419933804839519806540597057002782053685973010097046622304676384206463964343311176150078846777549746025920622284285765755721325264010903723638558958269934233936307246410117947303074292617095042115755649285351405810598177797279354517869148960110404648058590113148875358436429356631286718225507127720079373412342962941878242503610534323020937840744764069907078872790526115530256508805656425724363170848395337327414690296206898145864057669675365303429025195349382713853589011270182856016262414191677429671675210518738537688201991564607541237581953741480355456562592717604383919687167488108477525470384450211130426744568892634082901354873433221778920727974561261518010383996162211654563647930260202926772248614730789515118797382523577637138185754434058856238099812428791310157669370710530066695530140131411977117570646016986917517123086810660743754733179849327129235545362021199894858429832107632041746780630645543416656675985673685749605738205057230888538119380264583502716061642531418216975692015574459326237870598226073087073690546745042274060644604564354514690855586711346989555037441642753778004047267526765507747451681114712026333984182359702422057132250981845828308875667036386639231219179269092710587015915926171369176972367486045515638785928662381028865237153072941628441195338065959901184706991754497306108993869502848706389163331146813660193411820392247274668544595209486678666753692631767388200450893616073968997333376088580457601560927592421629181608329229317849112046889896904325673008907760856430696479911897652006344728043061120739195281390750110906295576417898193750632976192795230117022234875580324866129157135067829645335882083823947659725640155930537782454021272261570083401196704220414979314737101664034797116544991429905774540890668028119047230282521810702466192382473629090191217129213409798508189098295150443358609700462992696638254560359744273322699987449324784404124786643987782382084558785626310910540333866596039574154895812808529731728512730261972180069326717709782562355981746793556041452537590487432539561091458223480448899112018209458283524676411936454050306515710162832406894923550204445683581830190332678814281254512503408242638498070273150242956126068813448072134838500853852721710083489179518332520570150099812724301159325230466441609917886301195471868121856625634446095945497709690105329638904632815679783295541991703234184772227218334331674382883364627207572051369021590836780413598899422430608505116481684478959496918885714860001767654009806908667390428484352056030602594342665092637460322484874061953165604794289039768971696040497010334496519212530234553040823813682987262238697404636414433667543347217580671149005964360526547453419799633160796953862020926288982738979806111317458759121314150780536687400754161694190924979969346483854786108658183874651686064573159713380415109652545355633041207159597398633627444291225433132341982098186889665947759720877125137347895080333193233048354919029309866883058040587933176954935590769988594792040659022415713701176857482045243853123130409729136592212210239528337991855326710773413052795871884749246308621630961286009769115874513622386363007994874559706321599004361508399579884917640247298367482068818871491828519326162169899076772590679145500107534155178239805872492894823437041839972503593560602970198283095934326484905130691923226076740846341528115362852254533613989577260397579228004820917320394152355475679140941181647209307701906861810076740830850949757936469661256748313952842320848167254509666279169450823576907431094810498568722021397505757762304491976612522708453130786215416832225028377909664403530207050905858536203760743193425575674650227813739368287182106945376891557575029013093182819526381975310226229879376862864988944518891994036667323783926314216647403757052300718114763142659370698332743694340327152070233742664769955467551019791775498523263967203152619255234716231919485243996132763765690952754415912472904679115965130503884928516583201527848111426053848131822258720554480207627422709288518243171999829634168552739228729794318519878872055144844001876700351384466103224192110765269952237100843970598171020958763848532487977835056958999704185760537257028134161420939503853996640501916824977701631192817868159660469187537315162636730039653054147603577613277295642691034425275312967544527715733077444793443630548518091204946515703098724271930753061105626916826011679642755892498378276610439438306178171673623103805416491151982551087852591884232756583036200505540184972857503329214226948172886197455335011888578190196171933506413094162302302056906588610497027236088168672805903913537333862396342314657726172084343439699904261588430855220777842031821752361145530286044511071692317399296030310780880477491146756313301514348341616462937252075330702316730679612489301730898379644945364593251414111026462318815273446991687685919659854156541747200528494030277060032414436006843284121494190679135014608601331613679264342326552905812104417772815043002804836902549535384498954516760756475059030448936287827136606747726179398748717366870330394460839579339463776902972517566166503323854187689277168282900999477532786783037026045277701257945287515110198800268768199076118169629956374182183512096680430251106973898244550114331442174705960120724648013065423808340637590929329614043593909461337726660146219026430184477095445374510785500860791727774776180887966425787399376617736845853892592668127918827522048942369372181551682513984976489503583420257715658330692612678427733861834780287360115123976777096186240879723670900971719092357798291290411366342296874291949801970765372412927562511789349403440519460224492215765393342586806911210426613569810740203746056206636598175700164995796673995286207035595451881758612147697475969923165265715271831604753689862410844614295948238249057295115142808290143521841592759286070362393010460211776507214611501590786015601692661005168237747731858802151849066948772012787250162637840199722223425358305896392057562604697704075773228967948855487424347090929595291442058608385841974615663335038133464328085450909001048821450885045863965949224564738705463120030012184771865234329409939913824286580255155900646265973782397154568733168493709887939698805145542825981685643902769105164613936856590747282255584074798847862191909464023976775124980068905213076459027559397559396311254258192192395436080941637416927841984969702642774647716974633291693388500162519964043156834683943634548214439855480429926285259588503700051699595715914540910961545087504440115820243847966665519012844982313985561386042106905340883476639255631273228926040519152448617492125790686961646552809315854930669412047428809307011372294677581622169584702785155903687947030334461533199576247435255122297745874178916517449097895243870855912712691463789671335590666919899813112971035282973638375372006943541814090457343878211052712594618854627480109771383830675466709754893687181020169588980102258607574120905436263287263511279208646223706594840165952235949016210389803525630094838301079967955908640909093004898434416098008749362232390759435572737458907255783673951604053953066827711205306779767161218171718041328738425699932972439531038752471752369727298300918917972783028636604972252021427753463803282043134691136570233462181246056287643583339457083893800495052786253942325821694645237950747503446153764263360031447503071814441873248936447400632756590113604060720321891828220024280431851882871847099912161916691561812684734608601159445969269728821257134514456128485067068763458161216085477856394355302854704808210971151491135688930525295654451628318388341951478275443220392465484989980839005941693421677407304794754195884919248456396172944329840775829336394255192781441529199547330003272559468991147185102870273096148376323595833258472039620577140152479351737264118269376341987603823832422105818312989074460825151742456727781454252025206160760682040659848664220512352429708794702009450238831758651253013639137770521526615254927666839687356613374848706546504528563493204391148525055475814072903288541606503984551021616273913541304966553771107686816035964054303586831757311166319469829661858634259172069493908381258995815539648189339007507936620520659197698075545470057321858567553125037788591470106884388647765792747579287169065932509393669111156261758662744639044295974195255196928343081575450432196634649023712015182050381997694742471802505566390030348674840238252345009409759196410033785687674963265089355966266796721828023286465536768237473384597024367435074772334556752617357416891939569227757955966504120273297187710258391211462397070247690747502143862979793911552190004908670341076756344455785619057811091157313997120612635372217989683743741036756177754199745247086434191869505114427866479708591504424188657440650620942935192741373421590528129232099886573856778637686975289429513143257009041114479306940829040972239273792940517222967944344078560752449951113609061749865281508900254725604649645903002608166647876628241496345135454899932388602359456699089201980245346524584082792185819881248928245581065456190432823661944869322819411774881684616559510708472182797520118280111172396733004998010416668965269371590693584794158070879852435115058306824342242392040940252373745597683594066548458667079374941072432014619853386135623188043868414209552130762671081316085653223321411070977855752509288405513609768046364293234178285086001821556181620416500538860218451631574120810161661392663108437265508259347998542464098457145124063859036558285697302505477691385922654437514149994395023070323626564607132407022728204927259905718203056972878237615713278028503084078081769901365170791376344402732262803623527117194150800965790798617251092288028725015347943038814941055716548623646689660176228993773659993806485812338067560634467498757499592840616910791096311102729612833192422396250170088220658077098862594070464915264461433334996933567055593966407891662159669794918261622475710003971583637939993871239237028586256499026909994281853187515129343557001251206331209131262203939181635618745900296155226240679195357237671918216881444605384844671804402640379045593225929497073505619314991147548086709428732543043312923313643295098341300950675974977800031790183550108098277817979128961240893051808327636977304152333793984693682270871529040826802233530472867988251674438333513969694213408361435108106635139242906518472897481056577134429421341439098998665716333189321383298176317348523465538224146966507648645490218459079477298586640499497762530178246312170724483984054207366325175307755403728490246838488379988499857442938200240599071820464138711084040621897618751823230483751166003796846048363403917403053346108844597443648295063725039596633302969439587592852215616892604876446407206094669166439690864752200858662817130665039144982261692956274850235144945932097916396446604320439481700519002103135927767239146070796982253480578934267856874023410664923349068300065018357760642619046222909770854996527152691461882745826855575297095109884012716586007235509300290046397127786079356195568020813001426990278862580830179044890409289117666390582332919057583123126669147558903981104487204719266905026088316874100591571037508699621143646734080279222807281669403844577273958056989051532388466260363600064464221499594829984046702222720205712409856708837903624086583114941296068905545076749519698688603341473830908970700649694210406475140158343430668185813875678007145156391741472957377834021959159555944615228391816569199234248332192097265336806276250042709916195311935997008582815798295645764056423013841825143079328145522157013603764919592687257977572026021212510390068473748501257871890093966456577076731464204433187117379374930226714461943595456349790323371932426412303121237232920521747517336366463708251589105496177939818775696243805237702020107254559243154193525503011822678948498109523537581782051873855437868548222587962229655351445392317165967055218208327552800018852552226074475488392776242654029372690236863819912277049240541892225581562268777400565734881676711626447516287629053218215124134532816473597166383657556092457460877157271553601985639627169985711436567424405114136345196948712675700338733649352862936383495046422922291743719420593803664798291018620283652080249812730698011770549527536432244589928260057318357493733632225813497747865795009719390615973566332348902952354028906698345278630775958194789737966665347373606755901283295033366301473903207207781566287221226315864331378563139667063269998795322970848509611659134681685323634718458899900679624371779007772599240392942864699351468204767499359201780534513491890028038317644112064421982678245902468982906496754193967084516906563491036219439034425990078829306636866444715704952697276710203054323745604870535731594065162534662530541703989248121708499708505555020477769418813503254710212965837705246546305150747294567775783302029034741499696085303001267432708268534407151335974132182890142047441015626545464259834644315050824707955581155766174591211069369493324025499009526147687454927563843426438699677669695987199058377354800658852799379001224785436239084392641094669240522352665625360949016477801268978295962747603814310300854557254325467803045804355461411966955736653154614864413786244183010299779115226689479167661908847868775368687563040795984221309906667208152702317709123709745066432884290954598718811456311517605581588520085156321792950898843942173479938807319756893563055757311014066565759720423949779019479821955814094275010715410116388309522372544752353548708573733255785287794248832960216764584858456596544540116875707656593210448800446133777800642428181173144397064598453664957751046881986721002622849821033709250569280374679382800874244497879284492411131929080228337553237747301115284913603876789852570947741573051800543816896151146850862880609318032850418229707800612361385587659993952814884942273636054215248469552162057452071359451335200603425523948008231137749526004433831638593028159981897493091351253777518919865023388971926355556658196807785822862491058698583754806917249141475744508498951947757467139191307639805929895526905665951720191102812203163394043984794498770023223077232515072204785454574615196305308857297497826500167967215897287103968886882662268225674820404605641144931414855216499411967027480650291052308861364077872523453795713306407764403181954363078100130049029905870298233497746112758942905220710113238185587743984599377502336902778365929603892025251141456707630213175607115881116524130604309955667871146277507882088994086596667008104084018549057002335382539543884891459670538195010188216885613474206062609054142391602081100663499731936134628179799568475203043748624339096963227491230393677739597176039807388239313028995272681884584083723450085127995658314153064874629888898329969156349887732497512719892343353986839716111900237614085946418312613817029695922500324043719535743248032692886023494504987604515821852579654254796417239762483335376182230061077244580181834627204006085489166184520018754289605372121375683693990262795009170637774661585809112426219054505842872311173902210613437018685900362032465172386338100175901338337105407582480694782471613624774622051604870465942154711878476840891036660785419809431599564712250336625584727635848675916820428202248363086602535726854070654281814901394807994372773577693140664590850301677121789521546698089366431663487315465651859877262644420830172482952855197044906232703361122574588552991807364124385264441872253902197260889077173922578854752529111848502891984722214989348403337529875784160926496628045025506341310273450083809501248228640686039337150181330559554738601626975021334842765974615638953892906867449809647128749610432089692673414185453201595263762378918821706952421727199745870783536409412235491323514318315140787301891887514434630102056126533156607863112112023873981587675794531078354656226157376782660043178066100459352348891712371847192841632574427486177534004470009899422114284324751109108858701493138644468229928122055637631428609259690032646578322129460645197942338646558009756836531454331658741188902363050398039866574732389906380286856004909941130523485044298755473439687353444687741419464447456688872366716397269915187661767251663407252423727314664619566216210454113244031548650490161026948875551379303944271279278011905380989858277887348797014123345555852721815060574978686560302869244484939185275246726783934885334786905240910407652883615751357725007333220560671981958690645071556002493031807727304453267495486170093743555322665525233225893553888393186257632695784448194399231190950521369056449716304693521179330023463721544682352171677871565232377600769364974032650339877535058678661490362588909776388618262652611777470273783655623320861570749375679903951788014443145028482592592876953815513053315115101875137130497810791312832823011692935893495947458870573557821573219794393894806200226988952039801721079011114730693519462925172772971523670663981311866736878782399065347540403733294532220055357001014753417963454301786067970388497811678793414947256759729450844246700802277949959226011311335895364913801642629882506517688051624577579109796032056850728313204806066348565367886205684430852519549890945879419840675981466255190129927945065651461026428756541143961681243248205077645245915935917035488417346907701104625406974806729356957570952320606587968808290403581751750313417430665581846980299856137319102836875396741771729525462969575207806866202698817240220065645745775718930781067260000652788842452665404985193208303474743382500346913011988865295264015450246908086756524624534230176900950970347959390410901564231621832401803851379757747375403061614481352917026078660190441943756098262386431301728785138075049666063710292192356289925742583797935278732900345875018685219593193438713383310058386307944210337644191393152783434651593446536088830377479624775272130961859944758586429890565679606767768475282811022597052939779161884743576116786745899736145907074479861234015698942123625283506856711748558477529109331249604365990643294973218283303244855721039211659572032860163399184746092936314940849734706855821854126525159708281612693351780621806879034689240578020583907041376328511531694408326708711072411293404882568540639231921543336849143123816292005121423362618635690520163828346669578521211347322702595290726671178005643695678589753556766438979362209152836950758004402113935087146921148050618675200053485744071049985388738223896943116304149469393042747982344626802925226396964616819832837938685958184643745353046033127819538876199683065921004610960142272670464445528672368019761884378102015188152672267852478437916030472905773507530727292749765990378993312796984699034928028676409073853350881597622403002765965517721922005529909975249378628494950517854289559671113873074470493388617217622157285636959762986739741335922441463139315756886308569250590484569383677425374348697100443916236507137792852619199358728751818481611496729533358990202898332608486223510224809273539495644934447202553859827306544089019982460786195772226580699407514158142836060890917161636742629184371881129567665929056585722289333095163050453492013597993222037799010886535656327621573087924808673599950937699067516325306507950577829180136086709284383460008454105112267646800478599598753085362359622926963607594551855352735250866325936050217135892708694437245311237786492366184176142842496161025962413618351111338671206162773759866270751113064194021995940726433470073960270959519788907978306425060231687236593929233654740004718612496460739746002655410633497876685925388934855428789708139999527802230794766182212332887499784550654836114594442754734005756720940033437330141213464039935476976882717629212586987191382775447275034323011054331483871215875820429734480965609987185782834320530543345543438953187014934771925391624683750395641091224297799044906566674911096458219672626818047813130114128163056862442174126424662765380906891113210942319891729022471301952667964734482886209973902117864936794233426605269248573877588317020776823942964705661760880430206904895597391682931653897634744676205956133087010929247900395318931121991318203539215444580119848825292894317675164902054968447457941292092240297667635033614899560502441851039666394293514606950788723563757375363515196164337462489846358533109130279034818265387843682579768268350733733995956872928150739264117936953244797033898462379623201333075322107767721528601765365755549073738133105941865706158704614210895650676102811090673632750614734716736041012930733558022929104230346798443970498940390151619266193862972395506041759595454983721328336126878082546141706027343613887323320391241783363409669370707953165255852659224413032732958049630195827514425396358179559863750438381334622441226229393237873323757565869941501174580480185347924503298604866060648847222154841512064406781546264294667161020986799100632327153921169231604414628288042434228343633374831938439716700268057333995161380082884744534684549416942168743721670369238712956049730082996187885694420581446565249179352121172067318673070045545298247047299975707625249217943501554676006689435175601096260588841022156124062755239309248484607946508350865311411088853652923504370443403841692946643463033513268939226289039075274018020135462244337619915860193388940153942452869841980026525185160809578723383821078963390331112256519967330132240194674841021778554851324459373423546034883173749349708176986332398247471500254902516983536210386714814243336272657484163783883897903207550266531086569195123148036716170155673000881057540622952518182222030199649084465013970590180895754720527681288777575698965911695958491671708578631895326401898656975568690236486765724419067093904603017666716259339191976972103754029057765442515477716776364505743236192161561077962291591153264512340451603213155179724313258635532742459517550109373971671633790960669871801322163900966478301810527222811179357024304887341809052676437444313043067498735307031753779549171567031983283784831223489394420739919106355122416089582735524181776949915554293400534966041517723593622508347012028392583867004216922825906931177259408517164996932714076767166080831097522596156594746680895768457224642320509741876478600077270717346186608140700209239995644400349406134633816365630518211527537683807929244224174504375161779676220865114572363996437870078940415216724359896509601280349812888529175216167187851348295125573852369597399895258860622075612111983603282180906641981673102257717783148136000933268764086347697022277234249366786080842988405114133011515892343281491626833909267837291500792780495662781082544206295943028959400496916584793070475855718657486505233264407370154100781361573144927841249836321251071116082470793652702151852202972952238655700159146888001923910337274599229466413772447489977815366396372634334812961122703845175595908819740828948087124260635853935363761191311578976028971877056976967982597708922260493518467855194853950845094795269209239821863041803319743411603399887262612819312509191211788382028203733202020041598825850609854607458088197146216043012982879812745563295360080017252486826554009147979018322649451307318123757652063059559698307165983557218469268655849671609988304047162390892377954734901690331486818407202465688344657334001529631295344714185461433702691489437353955266574518580783334746255557159619727910176669323811498848747157333719824721038251619800900025964831216638811964939580835165922431441891343744564634459939822695354353856085325402050490951453423657767908068398663823538172307440849477672808663825655019689002896336258259090597787756456245301710274717187765517865015216145506118873241603042797985479009183252735002469469693556904721012896515646537599106910643251935964970493245081854014726584670723962282345896799704718200639977810259899714859094663796917848304115806974775952870076674193303863761831720132617559527870324261387275426865765654581859379319980212481145409071512900441160090283315491105879657503593187683790413512512543977567030630152659289298368827560762760978546030346680554325940787537976880320867841355923726877828033946148600316680814910002044061689948627113953175070803863632430832910037679932819974899013991739949825223842520765387366373753931822442241689205537916916191083031068828830896032643027569083242003591286534507806338298013067728087840600389437217614560219217277372025951106865884900447137209337149966297521435030753155657512580884635317919590027506814855398530822823000416042195641058887856223729524037296123280519722500805779264382151898140786507620068259378109731016839255449968735387074417250699635352364252934384265855076374279635782801338869830225931025433500067772735686280431276705553074968518072726016705872813632531423465623137235975928918766551609034017718027009446047014147996564822036947688168298885414037497238753361005795380013974139127757258630924973550519743917023612703881998356033287658677544617141511666152251835755418076964835420927593121065267694436612361533099929011861190920663680218307062682817753847508420457157781867993056013190707588755891704648919813180126259958987521417311024580229995194591653336765403060237863943530552696334352977776469412010811250221920681882704781296260888673064285547827894970940600539708093535559083213299708239162753238173053359152988796836496041667663712087119676966333451807382287616372235605375472395096114465615865892182461067774387237693407863971435189553229760118159737599735953184057830775802912030932323815635439516385394089781563103360280719962753608927528378633923884821486837157152390850528954444823686137929225899531048714680380961367214248575478064957519586581491336973569169143209164784555215464707968337843776071573938663589122264269068813651748865712028270346267898484366437839018473672011999248107954869244701859769658378594214854915931272956133537673519470238938708927149864296220438807027812448485182984697737883664066392605246236664883533639518578667990059231113183791835609166014136417682843043966003641103001721949310574928203528585490753623365576339231257471524323890494752242863895033233903513252377368991334897216310157985185856633554285248408732388592667805688621726779939368240519307933885019013831586037548341868368205198137882511572582639063852581479262751388256126942999057525991330348327618417139541491818742385080571700392550983012712005491314203402219277883609207922899832754987447784514997471259754851757890724721372610252756465691485175431904648603695235649444404430648023291733386636161818635431585804069813490068548262937951297432326901757991533436502374968904232441139591422749347388155187101729069632438615465915686220242390238945042007190942217113082170835602081667060221918754068358900044160587632682462209313758608984555684650799538257895211807761539048475842200556435711077368106808217611495482445233122660502519225147348321503029592912146461003363818891467387641404961113809092960569438536677023979168020684708171681706996330930082466020636956303702970733758725286027211803294142451398015835477995028933368615924652894777148525540264822117455982307919828166546970062857041768199416367201324463714737854011761615426115164882086693413868164338997499655225528501808581603271855445588242006049756037689057604577556259771842585814373808364684159927353656323041610155044460077335039429616793457503932314008954718721481177906072402200437543289913465399622508789962373379895208668207603398689845335793442223088302854024962643468296896721783884131979042313995250157745421991729427732845924341457137607242610005708355329521125311495758442415130494085947550870260103562331193188642568993086953588159951665449823016702072986430569405031079763647168063966173256676657331181157451653136433173234524522164453696443431207812896673978526945512744262214176839922412665540010570570326556734409258024016071357495388126676999191075438244501373884792166396965663395927346065850785931707823337207920863194743532538228325802554472980908818447011865702187913981301800618450307882904121971762778343955178625237623140502255112672051791854106648563956571658991426323545263009214464015250098349447724989394199548533036780111603595188878032837852370188941627247990851322301432092906269028344877361675464332679629417802917615060335142073276259689655859481083519870656738133812641860049026282954814248257048778316979471375713342061029483052157425284731971833354950424726964951137442328695618362714687975690006962072317602667054552785914859244036142251561992140182601821091580203661543174620947487617231293786813828355780896343911259486787420456970524649474069123600429626184800023882473699166638805145340372998087279502346149216843953559991767671694293482435966265416118952093572022979757119002545585880604007055466557118328615027556547282366571659161837965859938595852610672727754554818963037032310687170256238556713706559026193938571860416884170671317847876195964995561149162802204788923472821668065501242361835359514023117295221447610155842220595369322444913323729052585625481457377957131878106093105436834486163090464410505940517500108420549206064893200108371054548388691091378588939942318334236505183679336200183536606727047938651563186676686533331257157728301802645302423221385942767718228011882257315206055527527647844213898904860189968105074470956150241866723872425886628605817074503744974819434272793122372203317208969530006632056876131584497267700093527390963785108733777507277821952218628040770425715332680241640099568012603469006955807717095606609240372685730683467170753312182451022053814551193741656411815649967701811124068790250533438088441519655255949724949212980407014492839881326714799134140628328436370865301651067948301227412936635593861829832780095904994507493170242539550996515472161061767084910909593000985380153279955591369861616236662184574158368042815517308269861632513267033781497548229762374778162353240103710201598008981561027973671751493140982539248738502968692803299202694902633974877107650605017005081741641818285556013041363130730571304758666628068153222974132739383841498421439622447493988022947718025561759678948675954221643920587179926780688661589363926916665771618280862273870939952662942808376419027842549583172323995710566323834313921174650676183993888181167085452587496115647818709024519315357485526565745526398428196863281118943784877623364097666370282036195455708179076832775791993533465237569284435167924813307802885858556625247922843908896164666693472493399056308656943641656693313824093043204516123734433579104276039594144134177453915133424940315682539898693925041674720784899983406546031773405507966147897268435420872365309568055092727271409064287527442477054873406031892562067778140585869791692965521732746219686661251586855467045699616215761915881796793270481094412338347925498267969113915140016763458869049902114902731212609548823827135845548289840718686408375335495252150577760743016232549790365703629146755775613640615489897975448177645857538030384553314046449617194324036253090489701491041125488758241601020395332096958360399532493978129371504359949955625805747890689142712753618136166585285521980556146566491475677957763346568898822991299063015085725952313899424139086902213825257126646613150521416571014168268296246468482625466511496263211029494762554840148683892124870624187438248135176603500719939066953888448557682551316587857245858786646802582629965279531642507456314484800967735706346371311929225299383965145492382028967292999081473251285468982905324295250543206076078404905736454856658065674356576528192454419628579557873411670908061612062969182515558386061107538486184803392422576755460817144603779597158565233865559122095239718482152564268545190731374034346408222196979938516978316059464075631104652983183065916737625121292202320190829953735769169478250799695525412919498629629512910995343375318506711629161857223780411889935366914497379757583074660097194916960184654481389313223532235091772377286224982815167458331937462262514576328218642953568867949338175957260868174455482826617409480122238171002169838510538897127128704971740299480545793332194465539401816557485371001474950023135945580137642876116043268207202177192785273880468369752872230579913969288164931104926609498946487922123048135159072848616842039366257652730570401787188968596681630497231939975150640504410561528939814762589089498011552770208959378201845085815463576212248960196248705714426834658595452695427882453680149421205976492219840692285500319534380702893715067459061771398796304310213075127739473465291061808796497478442117990841426470979578611839246876091379295794401246682361396415476719499963064809465041458605269032452811425343510420106830012580531986836023201355931280292112756656384864809337041347136780859727435015981068300935991622008177102122995101986199183126103602932616070130148853066865803144352097104401295674764969514059185578357720800547671356437234577357397904719611732200931882978889144024958250512972936552165759182218496318647087159314919575280530696887987919546942285037577277589565719547480987889831598960510540239355755546849597897689985055781274617856302499512214845866311330048833302039494616045427126163681099705640078901113406855054884783223571030117830100342096079355544612560043888235947267471015441794767507475422688648106160653572032498020893871313083391560128497638632404271951346768612450557887856787273551876096098593331285821329026392787380271068263468712997289043122880598253781841001980206447714188362940635977418121781634481370670779199210721866253117710021973799307321555943360775478369535310459722904155971197593940616370268472927718001243165644261060991106637455079806368713655362556303940076596948342481295180009385239948023801170497040262262139352291000490825477955893339257387538135134680642809733054184641797537206758755317575823720328369551173176277696497025367603352737764906583524127944414562246325146205406776618641538501314220676159702745410056327798883937162013936201175132298602299459041504794046203759507596550143181117616313169611289236818544198274104802765690642838939454893511296817833637113269394839429206275635782806143877619068214566584362655573137192749683163221883861417673856410719228747892812182444596636126205967302763446848323134417292860637922989843959337980215208556588324536693576481640101130699373266998687125186920684701933406634439394360788753011009139789305000218221066027097130377463373205335612324621692343476642151670125645672111637260809177154923126735411185204738829314314758369398613019114513054788731728662235513884411155664762194882104469880633714567374797312524194758602587299984745271442421391251722210921285167001363446284997163642032641222920015508276715528597263466061134809338577760817388334171841917481155708451666842167416042164814198546662931279217088461950891244998852743709547585862779738235188597811394337825570815547412400042049958134303143657258580078685806806626983996238806363729316792952083230974460348892978174332018091293944427642774304318817715749739680415368905933577763648081811222937721598440034555605732326402670444861522894201930027997634072276428090192027519928160404250105324610080305645010334621988146209165684753929179010814056238746668779163013047256135116276089346254460777325781125954537728411243107738105744160042959041981885341253997042888904974366149319810546081816562538438504923133698864466007257078622921049149754817053295331763558135034485425724282612662423897340454305067363345243487229428377612212286807467471752216474326771723310165665301255091602201587779230469362940582287056730653058336728573093143044892748437244097661091311172116571227395367106510864200912075986599349222020542374757208013844233436854722534337745946835863647261902132213624072808861190342572801236538931829772244936499887996392320746366661619089859172872349472389494567460757893728589646832346441522582561612244901454603371460889154500293362771324520952727338901185444215546567402588668572119044200652777931814731652779854462793006005456728336164097996011708008550449500330163786595851077926230212073024752452068701657568445139859208184084284274955967803091907759980113754626966916445398182928628460381970775667124486144737386763149354305225021836496488106001604575138038696439476443997003785004857944542801853227376174270489990985603697213370461877620369516307932594730846199333981141084794907126896570342650075258860022194552556749202600231340707037384020444925239867028345091486858090659498913848584135121079477292069763571953648283988728361776521467150204889997617177639811029561827796509069983311266715168229328852951260494241579721471539977641352981470521144136416074769242431652540613686296173893997248788842689077175012843953306676945345989767839448740550191533272113603862320974571913081425096738042153447864772935189487035263405413707094681170520574707306268261764607271439067899052062375160377489802631025413976826936364153871496166789503917120038439825255293887684919207907456849257129536860129176450590110305758679506348751916562630012113148950036646273696177999675602614929162483462987271446888070419912289087576660303624939207388173022264472392633049708191365240370276896989855148439889577362170680112944639541560123581755602193671971460350383936866423187774930556143287787008031112317480003656381044089478162097993591739793572943168003896876277921342354006766912483186011404093275634816296816861288349184491166287875301005589879957303926333528836063795533179831397299959191400970119786022491876279863192647256580737014425639236077548391887264710788940590609319544460807827699239860870256430730874506099882252228084211163243406682415848937031662301283008275589910781533650915678759307889191974058453992273430593583677126945537865378808844347299936297232272356825382269383066857186448621499229396066798434866247038418502247222634626186273189318945182855549054688321009193297422228453263241870235950742523791559539096759972711045193254105104546046930495491393553462978110912992356571140702272220623383931178391987944430164349952060611099138225438129773630326563593747599766213417573029973582275148452070867723199949429221214395336542674859412928476685022097131636401183438438947551809538236016133336020979960305741973138375516305658259120792730093160355858209874544828554628977905938561571178042438524734006086447642356245125870559479732168749431587401389406236574135397157255050886982363979544167850560642739094553494452159013703997045054137788778863847952954720016638869708823039328339834147906313244632896100187346868249936501831068428306317745518849630881116959057501728322055675533766074070928265646369103438355221158985019496397479171149598735202456096360431849509817813810592839394367908536890059369144961216562003085162759385928838057158804262901802663109542813915113200260481558400684226894317041611567885382131345947025042045243681573519927714705374276645476403614863448389739069376295213252373077701555420982225326914228667091116955902533255064515897262949480095371820606588743994806656271345515473240550350434860430265893041197653527609044623099934022718353698252734759296216984409175036079036308539495467334708717023153953405566236406210758737408874364262716464892873086099998230171346059639547438502726744106980687034365623803121471308884999071110072236379371634070790519707993899316877229183435315832708087611104979337897873673783327533421062725265770327525434918976377150253441043897176392411557349468262469501327678932455942143809155435827587900776617841490160741573058457955420549203634147860864993616658321445056549650082864866181229657789502754449429705776284137411358251378672672561236266026148816760136147563362485316957838278134385328696224924923154420653219034303988448374635069502328982777701018614869759560406321198067141402296881686114933019699532606833890023745944836201368705290031833351002619033815076249295121950918536247579960160010209455628625391487021896000165631795699049749517705177649338813567396206111584254607192706678498110557950548900275573130727730993309234049425577350348194918663162463346314204072754952487081216849142291578265650871284209466248792680009637585529037636722180874897333354609339985847277855542534633972305598373846847272262089828833398391273283401533913892179129582337653396269252481722051070095546775813828855403054638832099237950184750288190795645068292482859291004097300252395434346705845929597332370475775353033542417296895755227382944016742236367135920989172231242438380338881434132237505691491109205597573336035049574487489327706349294775128783221046129297675171740179349417758826424162999718946849781135480641395223143763638689876159400200744608560696478857507043511022148028959631770201655272122922957665774497361447252657071665333962089460217609803083440351421442004393458777593641659166804075565328253134553662866088000282702921744820127123220714888880191874609093782310326683671515986537773882201821020625224010424540601069342182638755802442752418653204038531340910980474717018033034256308308092487089463333491823259311535902637460850169530240446049596729070249810982115820179641225720381158321287377888585162995069128117625250489446771284601592571629618491152621970185106207758678990737658142877374602057427327385106518949983230395855862205396291734518617135638791184066841960872249036144559511643226241387776208104635450261721666894284151975646865417129631782020142931656790264951572465870510508997868777093446770881119564184528379753429294825992999886896344778870398655195018966547255525151212827971002147326011302087166445953294893230961701645775783866367541336737293109024959652610022593722449601370930954357831242439247548413011314249374534440359638079773044345709229615989168120288207685843967270736561770464226519082195392141347658997125282305331503448719767889007375410160894879124095051561654749675587586787573752700797679041220257761094878817643073441997788388507443699549229916268504526228719022023375301937652203406716818829280106325814235204635665826135598290179536824599611563354575785914235092449931035458282728700413886625365807692687524819810954148990258058194825241220867203905875213661479993555587298078399722076781288036504142922614329526064959663253263464243939773378012696643807347109986232080213869659948455770821678010120795335733503524200846965638674256008085204019585155976310352826009809925010446097879643216343542739035521466581137448168632550564576347856959086151640243655649191007475770238152355057390193226737854300795726700869325239229091140324969878273230535013653888086096392158576854907111485808394217602619777467293171239102491332451416855836271186284253453928220579070202532093148730294274602482744466998858356732843084749389376039742580406251787636194010193941575854773932550091822903343055992522259401395720976293287479593886852048195806281865146556597137796114946927879755816398845084401644881138814308272887225957358266009027440956525369318981200638986240327239990680062073435228518568487176443000470330076616739457091103258208974797079205794353267008714967711931723033267097347900767387764705681999840037639979451024137538610954005801123797140167854704024349750544428934822417903082145555101975627669621355279320470362206467040754440443117564560583703599042216176696278562147787271594086996803759878956512823630198975536575978444879675697626724157797499819399596315198609793677325174345680681485256990019328513834530653534840813794430641512246166595607214892384237280749147506616089480651671073985555379778286240971142758426573678659624831597380939255489638923473557883526643217530242090726753226055095915276642496325567201640231189977688244368687248960661534447719574508538873499882247044457305425841879506046142789556968378979541829306689193361979645010135050877542934734937599849618572096140560669339403166777785340232458446566781704537247424006521225592535897492102989110912758249871489763271835741859495083850402592187576706245464725417647891411176440880419294019278643223696942873959756493398335200029168704770674998622656356722650677316775859254564094783396014091783982371225735049467666379163558249425870319457354603824003257223659027003269353655754473965416173840135569006703014984887061854638240204537597989396539145483451845468569511651290928367371776354196765684290968142970930503702688749982672813465513041171253150382223550159986117633437231816116843477140556104778693043727446024726551492157486993103651085103823732429960628992098477177217659785159154636371687561488963551182167637060887562685453549445356293846068059951294778035574665890238374184607040478875339043261762512188299880368308709267705873295136754696203973546613157863476741917117795153539151883361199945593244794697238788795895190517262611824493795777063191190684139182179858330861586968977428849401915625070773484578823932890882079765223242852088307043875720980297596253090293874249913216087365456152810860346854067795330728245610819387567131260235756721102658101138413986166789829618426628342807585604869692120061695838053460511299600001914707287505718283824808493254261044619305926857732511418699678620460793647389563389173463234908476683834523009283014413679670592353783145975760315068460907637788391646747562269682105878531095134436533676510347154442712928831054187481260184774548378606339993852710683669162544107766583135934232204346603884001080372440606448433713484407332061475299949896246366770153948641860260132579775637209824301780726269438527989274648036669535141029370619159969336922184939642017769561261149307274334368140086476940850600318244708047625288360990628318207288811133204385090376622478266385770500309848747947618475730660949565401863714679798337371322339227177267471644250024850378970249534635198685936468962132340633676555018914863379284320382846227431640882227632317646637033265380231508898050756944045497151311695257168243256741166491112290840931115582606905151264860032016681965684106657378803651281569063827338005556165489429117663559104892891158622766983371725106957660147009056234365156405289134273872514014350684305144652213487722366147451953736810004007869424202195652838136341182000354679945822943206494826822368913537549370743039796706596746444243028192653257408343544068414190753799884647333221932350288244354328710067539739920583815176533470571522137516857940205296799732939450694210570075908009031066366978349328640546116038045020444043275794994771245051783425277876456969658595253441268635851806201330842957411282687780424831750838816823458185431848672283992460146715959542189270438731894700086286227518188970456693632361779595282148575178444718992620043888306027682501967016823318938082124807868688127795879022316160233978951352375955388641177005666584243001364821088336634937307128502334251958852778846789332278708656839266753087530347542032771489095372976065676941874621547644668579781702621683411829941939975410457858039768437973087058653522203177502864250891430245666324686978107411421273651931598384496764047415597977736139405881452842314759030884813144177825212991999538305527262311692700970926620613577390598219338109439623082762952197231560614799316810679528399352848102214705497492270056092035148932124214270269923771451215870694168746027861872012878571617847472564960408549467866157041258672954962269882261057745251282254852601854663438371622090983603486444760351420350505225022507746791656182548273443937574595140508821631098695197132665576651834624141727290528979441167253233745396204921685266946519219284473117972523516507253907629201255217990869041020811329661719213557523592548671100397035827925438761221863947829267936439614415055024785757687485863695798191298499101230142609028937047680442182705974640060205825441700198837183992115048988937270717856292721103523780901452643724303072224049322969320932218277031836965768658208066939788678346581336046824474689045275018516853691301538962545334342473148145013168808090345853345045030243481405015354384878534673934100086299623607409982293062868224312274432504513827601167670878972404989768208954848546355181248528516938953453529732525921098313371223870431328080004947694056554935987964855160933761090626607747555627739708234420384426242088279558450727627198635558303842444958468865979801925463225483790509449873987277851225653336430312004601414069794060791841347789207431698960518712732284020161348363748405466300837408742566699539293017836710188137783457540279825806629753238028491499092941454759581040263334966254591897621947427580053718591423355001026063265642577115604093281046228289993332965265121303754476918690586661438196376523258429093698116641426604490837842741464371414242937175142055675211999781293479302760088229293913743505785919274099257542483265574012914360199722880760609687402965111417045865322749841486300832861349119641426471760828737723171613144523920297418450755127439407087040233767356595236959207621910523356274093558221195331677300860750404533205191118920302874848326843888664560166662967391768232450589640331396420142427666844825653176027867364587355720403433480709273263702739157194396842954911070589576793593095057135028386437046204054442414198782713603514539856836784166133249614161480908808285639730114359857463416548010803897790587619176284924524814637527953181624087994255018774995978001846307079178383472518283086896254288933176066512077812025285456158288828456667939311408741438395198997302384141988248822437624299964094606402433734316706951244044918311176150976274542298876966747334022896162353372607046420594606040363118132030238388246120446746375644542319507235648260292807076264981841995677500698486317871764526107667746190651162037752023118824283502411706963776803988698595011407808982058667045541126242797820211457209547599177000311355975799721656585120964201908935711558989905569780164569985877468629316768452891027069103205658400269921840136378308622655418198275908537086639888488874043565753366659705517526946459955255802265264961142175928196597787055503617319170793816280601881495193241313507000039403955450064308502206805423118402093093035929174933996927795949066705983283721342822448986110030898319027230193428465511240971932817950734601670097854717437978678410579929415939663473271503609027444340576193704688063674544523982711267296903238804533775621595707800726868496785393849218359470718308097970527786831841932250849325274891500014494409412814048899493139545428351107379049986410698151391303780955411915744535898387543203697684915850648952290717357137510182449832317517279856227374247700276727213353291527791861344160026087815616055233937380562415126061204324173659358636848877660231979251541967924538874345556543674607216140282292498350199364287528820285588293432172537200213458269187681837442258375413650754357868371096664171090101714734390599876930401585397239183448420151057505244860654503985053518135446084315348054913420488916763899029496274648229956038026620788787860269093816035075896665164488416716256596879724288052033108493043514769102308409350588327651109559400445587239448687956305545822130040270350268185417119673121667854331840397023027647821501412714327297951796212369659055469236367143375669908187457868021654401637623869613434309607138102140095041288186785276157790215898403430738625020275139151101105531497160281266492483430770449671640270647925174680837313121031212848260670702057929835712965121396185685775201406092208977309286452929094017278614887470512590073957082760772203700727529370100686397902265680647853446878437760287132874023591729919314581953201674488112135519054170269588060040427510406325116012275613773320926717233801676890761160555959393593088244961614742447708310206383210978098143300704688709795589689672515468824104578112880783399999342458650211264729565508399628594416843673161882463181785733036493053464478084483559773877055484694331574255048043809511007505501316139810717666022908487060725699465740703211893263046752666816017623544408249728268285669538405149540271552305616623776590789025128132155141857071779120019791587086386919071295344692938024110242271215644366073623575142910517501663736677038511303184934467970922861154488376002643560357360936416110127468020717663835742839445273801130170640660610975011449502788062454244239087734751945689294257977172066759756579692956392493156261782133250424123679636403941585795666140359512099632766119595021958523870261626676783009439770938091757761540303803757932870071044382961800342987899162469581636580670370945001504393565360221734414207851507359182587137346847115807539631045753375330581562386508064451997027901998033711455193921908307671655373945184626191652253224727249268448780937891522452926144174397031880080396302955231906322891283319395224394689807300108099692565462202887549525360290584419547748167340042983561934598935453904872004178701571617175174503171356868696167117744318429926784765664082523391159742685365931649050953809301927721908650664404408569352251358277218221801992570171052020181765240515475928724364727364161335624859826558759503542798713225310075423511369015720167214408783476615307886233625631525806906962298687241192499190148412626954193811760814541879576946510448300614046714214882480000139949542639638118586439910627701017368413681927931091698420712662634612155749764260773815761807606000162291184093886231077738747379489054516259760760899317741206357554693910197775636391559361444674792722915389030968455372030219305729343825996316702115404620479158304180436618149984510844645173494765660482753812902486304952761714670416249323428240798424946637287640612762430918314362753794590517520230891600395189179665377081352383440530946459844098180845129634658120306975111678710061395860245963841701390362433806355665735194866963297742911581546164555586835733660192282697313840381307011650615816774486726799680595423161602604653198484148413093049118949745027724297789352847598411213075337116379290744849406604888123390502128735758487418167506382567889307106408984250590880141219232658536483399309730458067979345786088612106315525823772751674792959556984406856206924690871199029722187207070905657221862342891468508519246778269554059012732448794006380529970691557862375651778838360065696934906083782701976931378166640515612634881492012190848221038342565959108063664759719089879173644425644564871292692824026246436996488782600846521459877943046132077964401306353648155498313661680765402816875102800370492480984573931521391438052883217230857195783317608751310837759154526863884561083005186395832195078347869030875190320692346495430891629642629517152059351762726987001331860077572418515301342636941211290151037224609646324718997930537538305588579570775533300937545413570062327545146949000981937232357530074074053438226084859321151592449004887473426020062268725029259143452254064783527166258511613424927686621377375643437978571368206438466315404319637955782378912194380343791023777161522737928777363673659046766945739820618844507064786987780844583428677210555820358751924255619809149083371099464902607806309324355756627116370168089098756150323049536486381706635189783736899612389366042393306708114820817222464990567402513350400204684712591758144967283959167022424065575092393621403958806865838337020325370587142180388573648830988749943234081480538433166581105612846872502426982141945761557206871961697519709579680499774926951933239113362978099186302283646624678311780873367467169208249674217748441163685050885668174877564421477735349159020379867971722507317108104402901604211619443555741293576815281814522490783837888910743022628532275217911667424251644749227878427949843385263636173363313875797080870966061111796902651465740033710929825424040813687517087067916916781944716056699040578386595153382814433557503611103382851574047159511862918966298477685712032440119898536624423751227306046425127382576541328769091475057521574942324691872839345480756520003577045216221765768118206070845718438118580302576007493441408664742772708023456286304400039037683136921743385586545573106027376901526067655701079938122510711865665114379877778548631584163459907174823115592559063703911408165005443406938307084786085151868160765344454255358871975185640864225069013701542130479173832291454360400917935812393712065008340134781264845009773437524502919390915817818899373842252441226790542493195109527678638179988952286542150876448303017839914868391884497258208061134276854074544491074602504079608619454568149250992919263037952005763670578417857261131809236544075409194187911037619653626085446381819708497976316630563695368175225030910111067584190633672998109812829022586070327100128120670334823838954243308560930509585415574195867868061215251032412940108887913141687316853362722439865208150202520135568906098455146527758585764230359052247313358874748563575940367064865158093453515211473334230947154949485429551114326838343425501234785303817721143309227940329120694010726707790531301334644931816122376115601354517635596498476192908856647444735857380916376146434144936645289764126923073267849466835818412309850680639545636459219798435119600496806762872078999974522549773349949321547273095523561846510381398499421023044241238523403130613989608287138307570049911616755859317910522819830253255339484023639921545924157527546658179009645018441646482370367368135011867649378465156124722897376784258071524388075479009332120775470408333878522312001219032848932846056218194540544910258536358973982457865887925402547076751605433278807165494540596755239630147429953706450691861111041049011915479125489516151740989556823971322843676621821033663675467114351067612259721918456707949512482915720911169763189039068730052191643578152887525676507347271582222024497819691086795635548210265660579839137945838235977514073836673271009467608693256855736287777478048415492895338683946160825194502715660825636638002487374375848597645688683760032054323044425540343784185346545385012044518312332642766090663103372161434973705723918374516789019355382137444163954949884448050818680545248453264541287138401794724980326454076519813450043891213107258913150249069320450756691141595818202497481826327611915918220715953165938023172958613993327195472631983357692243290473795688549468956086077417205823426740429147325242557442550874806246360836574328186096971871270720975037441214690323814048890914706569220464463779567088069999877415998709899576118770575797639025221060707698477245465529371375136927074094385096141532561675131497900669325854119111722385343937266146011923109099471775911104523266322094844215539892439717967561434107454158519529147061387177336496083817411934214579463868707620974265314859969833819979663594058758243546460545742430733031380803880900216744837851297593333782253590404798436753255689710619526364357069205917884427649606468727061112486319422831556499193112054574602448983059041256154944135261171429825637459079199730299643904853757106300503345049457242341649674305834698760684798237566400403390869930876314425974128085240947503153491524587669332201179146807778248233287904755668481624455267619498368815858412211302307948971148822858455363537709691068882086611503386043271996415319579351529655144595733229193632158206851989195284721751252180457006845781847491161547522031893443764453519196146642157889756339011351295519773598222754281105315263621654923305081012997568821635074291988343424327898921826600545571434093491061638633394496862992958493523096901634302860545781491239861670298788936237890695220526905444706341069312863127626907814765232335093070992020230357372491005102631393390022712478781795795711747555002132355044050483651831726535279788855174595995549086953951978431076296284551088675351263939608758221687362790511401562088166559078393755870273898792147295933130368414074955159506219663889447077107381689013489492438991590757771368041448220161941078297368588838402766085751248189381649221585955384704130167519057055083251147655213176792375229679584866065056621814178433584650675784455382076576567373338003787175619600631812794486000790518388268006700546544107680866382903651455641228291468010836709394436225409555890198250673035331491260431216270966987403939090422373587355601004059906015936415815536397901190553494303106892826140333978109697052668810098963083576159886003489235776422178822194633817000410615029106734101487365703237290908214919223812360325124094385512164644985284056367753785241548407203001190690417156473633978746035572376858987020198050028610671772631755788988687000415028791554308667790686751666821276602917604749834231117112210563893121785577376607586379398340729490964983924792406760713711389330013475510159329221799378323259124918986564347117532374583866205647287025377706250594833559369099696104332180462959744309338674613547415768211143891893853656018262779404565179549690422783924791885311614900250293785085908277453647124410368145351508088852709472274732161017767505623867079847811767529374890141416141756957302084321936725690900153621957426376331770158956787376333581627267620959903588973011179283804024595487353308563845328243927317759277086069176046951868095391701530467305068372592247676112530356959707627184101990267481285210332681915735978065918410769381189407670957091347847379669520867361132362278733499654163604672732620257169119426774497679817059670598753603793899181281307571839219991964268011474238375369609141282384138288848770396839112643226583646604502822773906052534816036282684137746982516654324457590181789771742310666841566172965529022221621476514765002110848551084699613006222845893354400742768329803195191679707669869065577628360421699066532667177453596442025098850500870486339958279327973378130848508079843417781934324524823745151535402824827159957243402759325010062793767564162491970909118240241293309661985507088502018314441085775192320898341858208175239296348554789796767727077757132528740455377438486165979410943849466770562885458488051251110751116371017698974102745433031198792011654441114618384238736436631143496433629696331985383721531120811791109087851862015006305296658932223361332849238701554262802826119947023118859498982698416911824333608122926175757590731802951329839195564044516598370530880148298134443615327115398016538119708910069415559179753424385450057524491825193400524741382300808509164877792486815989198732582508378667038847199274072983279780989642437077215684131532987208609742173037065282709163324128648578885407790148886398823698352582191781509510814589776637096218667007413831991618420915763241220866713184486148181341262562189668529561702655963458317238385005239085183747003452702054160346159173230023937579417368424616601988481917306478935198319950164411205609420866535471947507991448780159448529860119519031386484362136451573413232857881185344699081172991019489124523897561558924855371907743322572625630278961464405675710393275221289240870690908769687184575156671576218003876563267709351151923891637331298816391647606444822931444994397466204892464962588364468936201954227408188261547883949733750916618945628559701434345816436189267392354317747714248985421047176317986030279730407752817661563886585210670559191325540230843800932191377919381853316289539230625196923110593209420173108200552716502205303079521750376917191942840099019137644891121242831593548213260044918623978956745686562989171045234045295027791407077102649508396052960279399248269864265349543797947199616427832016390120253826135602025437107533841887598949883961767824153657144023043722053023041659627768362229213327390200048836544972136671242042761090889168810205421861758281580535462506171865267161817546603751090832156039437065042388806310554344224537402337000283720772962139565779515636960435031250219641444123577732696643917995346246919521458769922409203820117186951332455774990144493124869126747943266610596106326973168460457974019688364235572414845842861540769636758404490355432075444378467581800205521304507287947825300911844630781749199067831824212126113560059176062915525075674459601527119577267229344837580090871094546212573434759010687072302241682789212985769577506851017822582296684323214128931122299165165702853955733722481488776626730543827032297255051964395935261323898333635793378642314932914816551069539603081950759773439989820881911885535670181775831670517417748569780112861032922116726082145777807568247761658005202875255660188288967728597742075726621242422704342256824820957981134062789495722109706634768028499554390062949371867865335813704922436803465532806837382453267003584250801353653999651257949515855653562964399644144633395733974989491524765404921955915039964304893932472619743496905635488245540751878232265702050105757629777506591715236423600304874016008439070122244244258731156145162633720524028868809450674276625666908530416795299991751870977187263568129720457441762139150495367039265631829338546924891911115046307764934968006659145298528717446092981755278384200191158316370504404691568565410292564951157245943243531542041577395890001402155076585898878933083596957540281108265078566643146609070050322765872560861531932766121661951401198115118358118419172961970058079277568750462697707789224521092812143698349568161208330662930018049255289913782580599790795886726445716785673614421819465284400300080208843745494315866782800480997646692841445514994707457162761362357358332153487132846008941445003251579836711814853524567216549261548775771443884453437274698704399758375775648710969538165326114245882628837851920191100090379288797184443025442648317895424939648906918873377173585355025786051871213714167636907745072065643573435869523472551333616240138108417440289079803657881502174016721942795202639471727596496229574738945088915683690403223914941616828805068068339159156531784932891589765555181992463226010292657839509768630836023016264547041077063680099916429981504323743251159598011535687721205914295800170311014020162964412145185352244313640029907336986398410674649226305058732818311835987068636218363065926337249603868822597345983529976223684508316202229608539200515779326766566525299606286280951309126302705638076407496565457908796914493924600553861333708360816101009433575700068451679705567919666381240363596104339820031885243332612442522029557911015440199885612747207435765689273648201092392817871665256941396479257599461029185800518640085951698598663940631025733674503173906491336848018097992580507113875808721685350468494622592467065441111027142260663838676477121474408004509870849012443764201271359944319974191615449189467656747953345245260536744231974094030382723906303965699459962357985104884877779399906678628965452512082170253586199961310423773260047138194888176423111218564696824901251416403683155572829505941233830106304438538526313230900801869040821590894307153244988750315334578113687156370999736337372984304090447684507426773249880278863801373588863362077701139299314369494835332275886023721761276504884221260223711231787963589786413130182754237327087900200895444944038311004904847815545429134640626961592954971362630497905077831425363331614525074805113754639493244040515935021820018664310377186411371010047846638202466158224024898371278013748867631745032368421595819755227411817461604913551882659975204729015913643812223943272816112447266730255441158348330853052576245838840580389309062435605311733213915948901561651819235028207868225024317750994321767686051006636599979195513437329928123563575791406212447247945830390967634458189471413137465044240789726504798023979374427531058558759915239304634861905566399335428214253216351835136172940230725761031579319290683909407185497322727487807015798349115453564971288151636259009549725344280987612484637929919450699139668276657119649872492222641432826944158175769973838479731924154467832126233572125767247587866408640162966974303418547285304132117927104490824478405009055163416776218470990490189528786566599459936090577063690137403746036186424578239459272367468247547396784254566286395413878950363576323492483215596439740427231056615655654287507572569904275484581322851379067291153156428142537385942827200781820647859204025466154783982490902611622534677914474395332303063768340435124677493206152260811359111531878253328060710254889667178442618765516820214787114818142356975432334643957691662272886815437738070174280512769209490667603919530310850821524609097071123653166965510645217900101477060786457041917011231869689359027898282834966508531516090697403158678657289108461000850170586943292678189028943917198643665887242472397998842896082512153035871028871092784664419718327885754477747585677684471689502016242368056719287794582623060174785002952396350873413326858133339741407488062620755931717349402654661409220744093350040545414816241695295058293106461955949674494314257013395070948876972521210677013752870107469395972590938249567602415355201560934562850318618876974194906596536672578063766600276297253861418482392965168282180187236173197687469237976186278896602036855447225450474664259011963597786584259954485208393441848888754530278672578729167601971282609537565656917399808804739248837405204468920087378122393085890400905905410036031023577761692045363444485967140275706412853562849958800002094396034573264759321635538318078612115977974836323350758506776404431606902664865180306302481910785118111510650760649598807204076799886088194424250511696735522193014036128062490935407512029650283649627067305246669944992484498333553169854937171793870115512395584661898970514756504538169159283210608270240078744187735221750520005834097453274997414816378941615869592109018493804596143852212360337320117260227674120423392581892052209702068117964868833898306941475056585022927470456414081502275674045024554604745546063553888969302715933885613809616477029078528535792597425656779683822697465769752832405840792484722679302484646868145796923354414076811114556897929126884930436927928163534969641819694283625905139395718687678485685722905194690711207688358273857681475283518088137024539835068911392834535792616584331671670477487471574161373950470142339636316316880585447884003679344814809176955295753783308661400525420631636107214337233194648996226744264999146236187233134820325608025313478607075312317623856197511269939847909097439161773591402857769081242565287996029808452542007626261347095652641858188296897301254007500103042284784542512934050406660084752151806961057904396692690074979114946017017221746873579211492088586010380432076930777006965577050469434561110633178506229220727897061927928818589542788019477959793398659334769786328530261508269701744047464613361947478240158046892129966198012652019090421538471716996933603105807493557331728403874192483384198317286626183150868499421214080367903663447189090238664349106691322290227026774215567621910258345983860495400537623454401581765161758188091257566311792597318789510679251360559275879076746974796410520197777900085410202464658917998628182891965886203930471206326247472476557609847872075695826868648477475324668051506603009479923591668409522377050656590992113123274241587410302674281035292983779565650774583807779237700828681733329673120991579107041031122778101538331214721686842049364056611723460307695303958239803323763096801539330217723009999552734053929813108618903390462979084825370695444498259873342823633815721260722600271542863665372130902610786987822475225817339779917160735857717177644297708295031247071718427750088053852607032154255384031780398869411233080955713912964219476196862306299822705398910922960112543254346583563301689369103284733232041397005005402352842784869010813063453123513877013845344964787328866266272492108310058118844586575392336383050350180482129619644489614630842966066425136276403737661520264045265539368833335079588977879669723230063485584044510522686041340385249452862549682973040812139562833795791448198542476045362675130989806080314187511166547881180123295048309074609491502062497928191830532475996818822026854619658583470588742776222860370112669735386607493847826716259853390626111830673583098139239141622840156451815017231079860793528298885771552649872800307899287975544234720065718471703267207482143254340032030667815751539337739493912642662242179505520462873263187590858422659808119717503852273178010499867641268479466553074632461964932895644536620772838124518793038986904698596588771317697507564408476978753136328727014772739053098026736702251412287994124877392388138362575234237172500739950303470848033728749336261054718768142339239945361046333778858190296050137353629758989290519965130946955665583354370388277286511788824819404285089888481849094442978759614844574852187107485931827093972852904538972410594004141906919060051345324193277182175180504983581329901459562065265946690391847248004018567952894787581492334182900465765396602667375541640711451007691681590456438487459124914676932289021940977565023415551560222456863727681825902035299822197459394428448566495514421962310585509754316232464494969188738657672298102649062538572130237804281314460642980064283103408337295511057730348079554042770208936390788767620735690235117129026960969151901330391179796786920323654160084283074786567893853671874278742099753582279644608318687378053170327532084735048251214727529658013347835809224842815920649180173566170893630987385961854284425662207389970806967874695484902986386041231491804993951001816183729380493693158016049860624521003979042857569922705773277206501129484872378473683707762375826686039335387817900055478825987040205904331806844667825543220246978332354230315473440933033325445788968395839471451971064009291542599028781358931844966303418749554214800403165442910869570350827350089101061999368049329254688584359478323683876961965389276022828000364331340702376762356499145299411963296778879428238000453521222515465913142857905168311912575263308954245070705975763458859957458710034383267543282786711609459266648611275002465295404777017468385051135512001630990635599280430234125575886633370831132456679207997964633696327332313430767031426613504303560288063851600872790809045523449270992101876984799183163328964911778748759406429481174615213279356638933637945078529239289991014305918281899183638156203737042451836430666503499824803982673089913181849557776609975840508216501900195111143853982554765420705892655519201925664444377530898844138160127173118950830776850437331196797335052835985749989051661418815121226066226200738745996920987807650856433063236816933192456829556736097671464451989521630578007779038224279425821967759914367060040783067356823357248870550175967954753184335782490625999792541209964784116046048731100069273038446093092153220420776935175271090792895624780048404649504709721646346990723275953184756225010113103836735522026243849577056893527584128942401737606182152356798493022999312200242881128054620192559733716555940859494528921555129234826843391183570553319373648814180595922160860888597611992116124566895954205524941189276478984812269646247752046740562973394430995418924673098705844109935797241987266805196462737502556810520190779594938059183538125459244209409488098864853430543430243920960221517429225178891842472114261118061707366092615131162695682078695349389095364686707918879941131870626579863345293748805611027053340833605095465703973330515023386793342554828554183806762122729424086268752004936745174194872873304594490948204096358973394899667334605657886582767499992683077609609737941655952788229156982541823345002013199100002622923696467495793717259098208602504064693563801980612954480967356107845544079995876295567002455774392169024503858475913074601349997064546549204155249943702651111830906680951750121737848416679141692695774507619743892209311347339944715113832621792504456063507054663628933511874999520687679287990224229051418848906446365533910880256912106382724038030487233895046943877714139844337856330787608883250532688946872034104355478826068878100933601634821229420687280211755416454366229195633884302595611359813262439396264314737940841592572511598383128849117470810719014996413356561198843173552091381290543829798363380003762296850084213675060754209482612856207634317829456458105652160126432115742237580676966698275430633306340917742069688771963361723614337845876586841340616342306015459679584119682433472040810676305235499124975146136066516178909007251604849223622231438422377567380049699770829150215536427821685856741413346622968332078880614484478259472082399573759412067716394966298319735238608412789372633643582264471979899561205122577137700742309301195238405491935066257177225165360001703277139020835067345958769448637301957962139453626495341963091104824720214108554054213179254574055477574120185394823428673898519690312578873122673858353339181759258331217911295991555598979264166791777403267789040665277471519798231333433095092386184019938974115936270345712676428455431708127020595043185857732632598861988321689796756451607392109151510709693284474497494508094032624822781414927787504441478140310877385260618705122077655947709754450593098588271178094172970673608511911360970621094731828100907500117597795097306013775081508417162300346528764238623122658913764812048908895436472406723741250214752660489992963234380986270193611462221526851720971646677678622990391886037047970540837411337685132182968655832916413856703488697649465325196036345080978315964631158888938514502034190111227104388329157960446387040896276749728158812998055209439711757416508372328735194718074625892922820103416049965819619140019797123117071473563883338779109760420248368452860182444325443136893952265556473881651295810063231731236181022369622284599774839740946805076370794464075245953114850821351227463721029924924700800749675364823385001107292465804294450654615463715141236170256109821557694174063735333438123294974808511666749233780304265422463485064793506894244525055039230639056147253035768510654678710792682059105298758951021012938915442172324964970037918492367363252615040011309597176508331877526447824733101586960901342179682883405141533835286760483616046613819432817122601511877101545621561603668425175317495862132827838879926594313667055571136232423780919369755066374334769564420061980116371113012102581950051018781388089106085131002965569022472219766261045885872925892877532098966148050379936887525827596312002352160059486089284309308944983668428747440703144190789297471084234328124013528281657635290025991067667872188150298677780952959909367061356422703639860134747538159903301094818941923473069547698210195651038000900099044711999635473046307800407702983655803123002219517441852904450336986540993186688062842422637270525274616423443828841057898426348080305262502216008585833967326612239326456579586675210866907228855273389658674854619780002597338234085976731587562701638325649591361445853901711247771764919963200677831507487495638575179773757305475619028171111479437959743521017388479141473594341423045248473218132916302689945465034560863755736652170070448527044320984625871142335966773067422048208551601138093355203616228736640254553399526908089287297054415328295621451999480797124718364564851430874078102507449438733621122078156468815352552929303480976225153141555002992588839116551701936964901359552649598791169109780984062183010673846957980085161264259918927682085314956190884201970798733052851714211711921162886786459173244526196367005533405799511561624698422179671774457414530187992730053038465553872523421879247352670380034746595537811961462140824241509790705667870085961849567496477895119544884484370152513381505847664402384353355910508887562560426710587165318413443292221726223087017516036633898653347317150851310026061737620893099837628417285738636263614688385972046532596068658588159057368784410658845352896884545519991624953961200659180434359139412411888443075743941016801105144767897099395206571546189211250477189716493750993942228975155707489497518277714076893916221165596372261346798280670740567544621551601606583743002539754109008845049443182426186980162173917571580586886042374925613090588517312185989522630296241723555126387290768822340473724427079989339355396154792184064366501596757728946570927405770317395306136031795755045822149247242350294435545858743576948408628187450335583470743318208983104350330456511930861130221215487495704397428755280250760577600931300440161222245950866003305871634302685152164818084880732797581869261988441753469072526592752053159546211785923931669760934575884965413055639658337308502954483082963796881194535370239152301883937752400739267059561132814742802852573442348956956306235853077788683389697821712679944170183049428879153421891815564805614838864479625375888770099059309736682952656450286469939316843021356332235156663936714921122679018526201714670522367153419521191278208922287712712964505886993261517864279907124760407473552586989387716945977197333400805988396419346041362221509913045148592684407822001592259009020531239782959167549313423831142900618488492618887714419050686006881216826255409695066156299891611387325068393319279405370479181417154052763541299686191114894262172173858194555755644555944200331804537435057228130255326887528621991921954750516187576607933292317037647801662877020733384631943816015463798271349604249353539672888365471223444976326507084267541278602008193649926590852497179624602517273584776324740375858105108567327793124307181167439878483454035842472769402521510422564690362531383937253240496786926954370740460087968309150368331156202006844643898514235001046824060939067178965870379992194388098388207611995751667392502198050762746989692556309988142669177304880418594570573545261680999579944203315685557060457069046371686749283766982319626101881603125954587627962161882966885870194812081830822655186387117662541750438263577544848506708643210761704988759260673646387462108529552108815095159513277286204345594941690272783285661906507259633372985934850461578490652213276429965657838022903785485574872037227500594956029650271045434603107243728217729048202450545465992059706008894923914784506082337982414155069775599721523178910000138694144233458239983761385159962696997787564323265518130784476878530581099977372816584959165809491884517365556589307745747798776348718558982682761300876920036064714238864193860556399498694402172943236451902485880201677416101468444924277315412582754318124479911541541575152444468381984387453349207119292108050944701488210224550661993395297437515860996076416377915104392249564005969021850977087646189462293074619338181047047979416621857528680876143193428323105627350975152852898318034038295471923827999001673364288408946363447367985531417190709621417241667021696054041213165978193804964952008406059559022879800445323461345869560603185077956600109361201727905715203173489154000778157550415703525207538601869818092853524139901378694502395247378907964131527766128695186304021037052480383218607650052909927034678646049134439614220258658376281848703312720901960184709066935213903628198261272773115374333678183159794355091725845610042844685718849537926281406659999690306655904165868951309678034632545011848509033269589769450123692449230042181342230191021508351364978785834240613520559519541990442644921778671647534561747463165513312602378192349475057542879476824369528337083249815166996815959475192892323655887859407761429062397727272681635273271142378264977897149590398557764711258324258863606598732113171126237520905181645754305503897046579888138743090156310339535815117965213078940983390151224679046606981521552270777660935454810568614931852870073627336218837500338038600377779969865292370678660081613481162408931140415641502613063299583201880973898191606644072989335043920903851203586707614720106659254109356599305036851959426476332907221809573045733054684468019219693009729084323513322055851616637563166014775967914778992929157218258897601965065209595240016241081015499773533242952291269059789916065999840384844950934933103197055352660946547519947294550473532439390265936161454480747001109722251954180281247884823643499370879750263899330151260672224436865177493335264419054740644758554477358954475627715834956939171726800930063421083842440499716931534781386984828227327551656292062977054093711981156506758486144428487641566629913959685287738432867631748340588347488998210620484096606889854453838064886073492410455943238028635626519381575798135088736395643503713090292142093619868986279982770793157538611333384396164395808235794531298716285872237600962859666924589228321563720040797754237151126569194415066864296332484323036153335634391713157708289459088652369222646420339945732344746931903883843618983493387240184032771178027033922602070614362794880132857355208403057988267870122133855127797728828736774173200617477573780620315489539435117295020521861290634194956508103045371151479243982440950420409173314687045036130000824073615057175480513797660261824512185786877187937530934829066571687829567826501024138014138913257913816579747486081305527772768008939407016971938869885357397336526479086000185073641642366347858642942039595173834239740721792365150395228921962680263770607421447253771556346303087537346512807440684399151077953208499979866036025975895878101463676870117495327455763467214556377136908109186654881308018356162468691571951874992340930986047298024644809496672110256572383422812558754242550857777455445476482172267431059220528518552160109284820513261897246371746106090547348295702089342455854022995166937231048674715847883050723734203274361497883534588273749398999325982360659329464763327274669974141080233069027356815039988487348675031930991833730278956684697943284971351116269942705174329732794880261682789414865876607896986428103680890312765392881919216839220776921909182946488487214546865969241675233220555972554890615162980428258050164481858390829411531576096023546375792380720863169450207299271082591432262401510262626809881604231972265920147363266403988119868036592279079542186883247314597341349557355887061759305089350937313205564022154514511232727075555651633947988393887940515885299516904331624877487956802461088141882926656348560545449316029760996832325018808128078996649011615930268673310482596488814400458245385390439364557906104354691088247235476989619628944689272067461411995237261843492826152425999595726507118950735576885491515778516931319818447889776861332863284085532698482724289486004104962224398722843749826513315741111120004260111873861825280220756872862512194156939130628332202779727996222969005306639727595942272559350117644730662398173617357598513329111629801666220871941002594347410743774115858356202636948682705283009995580711250436845115716788614632271225575430454712426006041534804271154178932292641361672924331757309969871787422715581357111449690965021893913642880586838004977636417166776812933507182564800700471946362736880011045840342343302873545441993723790643460903980410650480389611467316520219187216453594137894018602233675927599450720973969837585016246460606122336770381096367999245413297606250988833009702705496497270374533578150178792901856714874506712125987485860367075042545063810264803702974729211046512099974718833029123003902862996020849415098003104536384264220157145805582085195451379350740324888185535954875774570120909680268341292120522479503202802057480249232022390549231301263394562183021999937671023852158112015445666336238151378313029824138860596600469950747799334701354177330204393505845166421861167822667216096901607077840336831491563765278623732057328715889221028011386982418017988359516768539177469423828240861167880120094053137735305312878297572261914727528333030627454565203166965102716441540141545057667280076815816341253012611507962341605836650261424280397837110970024124286078645749598040103829000502433240503339876734963451617874877842173475695232095658839464189421355660508949902194225076054582946170161782960389659773686789389741180220944961492651130458347032472080762588907050846635771199331308241226242918799810988789891962711061322340298010863881903417024602437335898499113324107420023912081483949291287080135847037961014329010548808230370555127844452971165434859548665868796445628197236649612231907129265698888200156974162434695857322485834446932707929667180771846882402059523407265504215948134713190890273141134314021422005186411824786325710917238065761504476013111115257396471809545523108725390490190433841516637935256503628842159204886767016380234298980425494743419708927147486079794955774586087347908687629210605255516345493644595109275719765348964851816560330173544104792439917007319253384374634722557272803200911831964793658827691331287815465090323194800969435832704068335244515581238374931402330450387530654459687349038152597922802120773815523313339289596824389643739451359428086017101135781107743280808634252418080983398292215482453360007035512870934691499349001849125076038222450766673930179660343380725346254592948691320623820168310113566313811801134170598530950976747306075640872390270306171303444397341998429266324199156037839463632283713753801933067153910840880231179788350648133902145495514105999175605547087417267836614457586454782359845675979238963952422239546049112802716707989725780985301497861414523402226364125123839386305141136545076094900562902725541909355199624457861601856371635036944955318766639316622079719658083959905108833872972436146833627930711707007682850051673402204686069382267528797451829580166891871757196409116023066253574246147214135864026108996533548673609667082968659729026748447381424016787824302868162238114839340730979032679773339741405829470759295801875707707478129147574417382833506943680944142227867511138784055207313072291932408366062982666309373350402978238296496821504741108985022795741828261985639963702760910038337496984343643901430204145043585576791602046935873062044609881647061898001588181816261463636919352293331956457882773841471945281905501619401370845105601921185606929103314269923051137842622946072798100598217003138290817156929074682894128002621350004378939562642582295780879656713294672843392298513110027299089341315730118932628713433736653483703850099057192451356336972428274958037699206655256015739626130037248880464403471432004047720874044544497888563561083689433303321874030687157464038699306855568834976611331531759978940611469517772596114707319655723815751247918143063963324671451350368133130655137196119602126705113739464699402963973354284664846423194687548152990853504544893766443503396696953636854296864097730043312871613000120702137217807604580027964376866671216322741995272450711674125995084586688703341556418171649232985489333792590408232108629593730639822428972018400485722743725333942913276051663122994056831939421470210946740584769880963981336465409898066965208143073407355514308673336817718753798476301969965548208787800974694496304075735061150989459847117342856663389726950931447903326862317492824867992397019576269163736718024199307484833973190650084294945588542132256492611871952721329142269629389459467265205749282643374079696862161412979195261910723726067771242779138285436592475363089916357905370976058308862713407553473461718036684047572165305954335530239438742941466133489275040740178838712255267357064995222010329662065738703305947609368703298019315149626731127423096351165830565073300874919256446038782354865832994497821298213899063740606755779335084228758068749260323436596354633652113146477758481161422125545317839687621864331560682386340041786664526564337413032083544237541270363115239681799639249784695602626551995347554199415782859750723416572794027067614036959762460213028903937716627606276564032368062485650939175938936747300687201400123074363135870998082561521808222744728175159008792625147085728080295379967808831118391140538067948133545620762810406727780463844854049062271855407720349760634656790343038578634992571352143523923816123114834726847062052829344953045076273706580597423844597007083156603442877857992960767222977404305772729374420885685888808867444160740749382478267488804329887738086692764622368997628864487539196411668969641254922782093229566476136833691379211536276261312937971867080576726208779379284844311496633852844886126855785443649956181716694256241230684856880576175323854026339863591686370877592798676847405966183645943518209558762064210768937476806912119212928396409953757741520503543638243900475109420029409670750182887873754580818370800254411542259295465811249740846484703246322947072222785772042312344481514468053348283783757253857745922093629957847765378717388626355073937368388280500149129697218339449659260749563721068768056722937755881318197500594777407150177253019151079702002642233500966586930752039354782320490093441524523046408805239665885924256524484404320151997081385979057338582114811691426190664906442266928998860910990842166181078000618920371693757218583963294999331885340100110402403762456161541208352734638671687254030292370544045790303101269920087954384782057233286224458117993065882253870069861057973774774507643084773467319725630511024238801902005793393231083524588304415671729257067624596808997304345629968918509271025846313745188989157339308536970887241612176346369169201770265955989001987705980842890182152853815724894782565035174479850723160928573062864510503119801232318475257794960649243930146158690072941384520060643931996708515180697458151243098165429481403823326098726375860453771243171039090842916992080799556797040536517237949138515187998364417136202317115289229401654497908526085140640826180134971184220775931231179352044061361616976008235367045710630450993458302042388949287709212263474532690892729736822870445731470942466519458874128426650947866044499096448040066288745455168948530200509701033020533339794240222295444928924634982615445634869943634991662892778871710710719594848976502873320051922011042049911586919720093621118485173500211150806331419306919263738927891739921319246641560570554890262722361775078613292895129491827987212503740114655712196297106336783490218371234155195145166470022105814339774229487457735113846021991910084540905208201404469195056939464892328574921891781513256132950116498130887323611880843479824887254080717079927324388824229868070606901715697804281211554686577303083070791912433564825964604967015915546952527857269074334016386922380804161889818979284985234208511006525960892403447783918402327836994303829458133986886980731869935653217359629753635349070948506384364803149005077484483961898482068816540903078807134663482514229395310087742236405972377698302484354610140565033280448357357305229523418525176238877375349368509942004754710327294152430152461808358727263789796326996956178357769192765037911635001718772915056036837346300707664347512477611226136897243924007431133170661959969293426575964031772173482424921501543845398158955554424397271887088227599958633556153894024784267452304239440225446469505177228820615425170618210872382711367468698084382101851911305861045676280316299748411804725893742907008556244383915220447899462731812310733169763501229935223508370096876904636558547071151912745060245639121531935603252872016405211081307270400741500336627596733127143678106671669601073945690976350055229059604204206513895466217282098704217511815609377661961480239495435762236990608885803091173447188014532687428314013270540700849149183899878595769191550215643355288269665677753781642640448511258102449933160895860048662192772366824504822636672333728762402754368749032765792444695844266872879022869392391408148851120961430734107988062914403633198981069655094323376466885723552248707042474022980589913955273649355407667732737376465492645350074904134267187124847256999891664197671980184646863123917301216171444091808666895385719375115856939961441797323013057649061160393538673647803570995122860551782417912500885406178788444937516529119645484392295207374764612734615937231241605576695764466307161418086104671598836452277733796896957581217250426965069540696298551484524109819851462849699582623479119789248725005836222919955739720427792925469042511869496799148954533411641333452470437006129777114636156126148975906930066247978609387803662034695396990098483907771093101522037049455894473259723696046233943243839020733892961086386204408920634178595383259243646807197483813629113846161386358421804094327427483682915091086544801199373416229960342554788231608294053165542889970328763808414221686909026812053781192484099623382301300069036039435896885747339059559561934290901105823803743821748326828676330388333888311654900967090947225566844466850300168865414974445708012100272261157547524851950166106339987427809262048773052365624523103633928495268107321001113368956866986823778049174790048251919074978479224366905047629491590678083745679358650397394933465952834955174262698968995037430285470014183382097049815059685766921986161193217730557044160644714049153414688799969439646087145050972769603204865176058338157605089311293072677182366737215512528340378773007735918823868656707702186353177426880713591073522176179696515849871206801590848396619342120250110069332596021481658444364627863384911466175930194198914061090750458247003376793086450986691227114156341756229736518646904855491408586506212768077186745291667033650570070147506888211093532075497822847796376097816538525620578649637097788134474310062928166692949390156865283188676448522381994883370932712742596581119296378638927093151399954912029909833666371459277996337129412737304220091516383929348840368200693219544693346067112986525906256436049401170804117635378164426220731522503778617915536613711102358419228902428840396928002378829263737808021130853752773916063817498103244507241022717756584273256830819057150854958271819114134751188866687250488027748031209414280104273966999634548555207622867382683727597111756273714235270288394262839013675948764236268205247083551146709929951117313436029124745975961089358974301243198804100221248073962560911228272502814196172572796134522294840724962598339550433949475028104777437055700132661669817763743741509418051175276871550261333870241272070979016679199200675150329717353036721512317289714974594627271926325636213133947003883472443637461566692816931064617917510475343603514363395064373325015539977732257597008139846813433889746598132766270615257847892914195674735791302822059998208414793965148370843039490128573877113408512884218154524911079194925334064378295365701573773578057291520714037905913914199559012378097317894179191358419202842754778127416976044701320542542586489362405869380908369034644090195515688453882724572436350186675964816675774445708009865882040947779213953679404055420397073994427480882199434948591929471676570292804588987279748517302719373404004882932408388070160051381955236715736724507585063712278049464280586892936288593678395156375817831001167136978466851250142161612837215052080408948604275997540964574917383445768829121951021043619487783757805603837815673690098899038951486869639505836160324633797318523955808517800220846230006590639160631924444897405508956785567412661671950346399920114847104709954243645830585775272963234692760863128031210839573149198007253865139418671733337602278459232650277048771202505296803371786827413884287696885152501298250175016099268540741276533411399431969561506927107510860241123549366133984566116495021792885326331892395707386544856117932075892966132943392410283524226138073834867724274642026426915335382008394446096670176471071643189725064324349915573932656629892217739907942737245138385682763523578873787025954280241051102302964630280033499236789798591425716591055300558449599704347300569849850155650279622950774072158623124866398547356449182665474588682652915161442289766751578594803562927813853871257621716920124672380263895019646586317613875101386380826548334845081831869237580874467797457141654813545573910695129339664161968503717210434203604587160578213965099827045751668875738407460956440102891842350218714238563289485893341934938098134675393887486662974138399631655608558203919662788827802504953454509864887445402134891367217369119468650723070712221741486893518942795601984206140508756948223393762277109012667859335291775985469108052146868887537748875425487858647264914958743764858258817794324693492419603538656863073790368952088944755133861859234359826232435546463618763718575297969449810420388214299076976593800012380958977327872597186874427782075981641716354270968346919600046288611536745468865891314570600754571298349089387864196992855015164301124284164526606490854031136120655695073007737677951987503728013021396991608469824621277462354207892410754865664301163420185283384763310930890193655908070179201181736737760237637301151912619057455683528356206037532328430122365589537928045466274462685067592566247849456133864127855120160491485520803446706390507458971568693938161550192016618508517080719147262806566101751970290636617440822912444735237871663692998733776891733492103479007328350009321525937361982064761641687128353147323707637294299690077266228588116453375270947664723994759156714562005962170999260901478681263589257072632148891477642485996675011554522451705965852792329818949162702467219371559818204188491194477084991806744383658100647949990079292398961227389222392765440815190835229062237315736189486302382921425866808348121265051472201285591545915124603712484223951981464168813594975997648851009062390768624879367170136089519908594501196635048230337194005259773361450234030719381413655389326683790618095654908101701354111877733151054778844855477019459668668728578159659635135325820677136103673858485343980093161280990785542689717211486183102734486591589206835817296227946094888258086226697901277726815745955733852494306847676630094993866272069436004994193204806720878749422975583780228792756708648320465040456890360081461809842125277962003592535593719270891949787121929047801368964994976932308559313763399413533452364291481971984341874957495058868685926193875438931784986023062785282501532717714317569894639000981867706895813154594399874549523997991200558190434855345635731912425050941954196897483545815685982197390658981485467813459905210052916123825166794406998351288533786630382589321243293291784342051505615127657866384702956467495007560862732931387242517073928147672446782686956833479395950022236573908348130482573618094522426570752456391390437145172896397780104622104738037281380834793387717086283964964802309964166520937817377743954797975494787718894677191641326679877382312482709821930258932229108501304676074219865735339830244436913515072631489719798794831029100218971695177588403631472756564119991587600601973842287648600384188428468102481812061747018054114212349468869785435345271690965051027256359553987435640548530343673941850035386024487576584871210873041642240999895146373551946116979772089988697327876214044588367477955876173850152023431939566130360261677788817720396804989757930530655346406402408181716464079100516370403461163601489618722778055172022809210340348138698086717291675852134674985481634454888929316459975744250477501232100560714237962733959236825156224491709673950884114046532234712424703373021318003346025831436682531026841996785204529905177855570466920957356136322465358638958194277545213157552713285987139981007538789037807328623102282193365115231597168579012120111081393657205388464448575641412249047845411542768953346206038378349909457933233717923864827250821266604320228267115987348718134720121158284511399637273893002607559721362297614601032495088619632435125055464067858269524777556036964244351426425645266993942444968353849482912254750026623264874927191000369411440858488084343320596660124568999813663146449260991425297294235474185285143492723155881579682431548561164283326478316940952110506925111018536118099647776142702182056603138176572936808057526671287037641188226663624819279986336513461318403136195973581604342367493277228433953107245676233758689700704429785892817680137081166779350469485872633457822709292324076917270697336752069721900336861882042833898120297692779387049593870915815196341798252933645070791471104024376618796806995555194430364700395627929081970615324366081397691658533955715167487005551202645465673736158212930709371551591322485191522722334350835216362764284635385883302266792039657068490758982647064777334039721413882404557275761662106125587811108971253053203685967843412571080454874338061733299578870513576425960341758778910680754989580292135417324107758776486639955866857690423859933292676400340059796291212071475431451715353175699266885134909885837113682727573471352624241896619799875656176577175836921189150339415732651337945097672993039462934846048643442074950773803680163865686158972291653329243392831700854070378149306212419558150885287604616696508912399154345801085135624825059727032660582723969081656660647856663940239749276907017120497878045695663279872035677079453296572587993397187339835645460200480491761274869355022869185900930872273222735278398401244669173415848254452762610360003121118871138251563452470636640199620375792040621631566851061613156658746694921780168071452218606911274815375418766157434234940765814146944435646727308060610932740982787822053447319969483931298309555453878567488953341196207341864236387313565403942624169045474621305488849231164845181435015911850868509258009035259550390266209158109757545863496963018555915919149578877928844811295375544702162690730683926471979773950073314265186061858607091178324246397496004349627494261113337519138506939012672619794298398922430572987419694635664208487363102479105023556189178901401488780423954996923346120099354731605652904270307821339936418227237959976339525296866465855481782384709009231882893984490995240757939187407548888162847489953440614864683459832773623705465573876677927120458596853646620829789906880502213886198212236452222887320204842872872850381681638866838659657656449931296870376041522130930295390013945020808939945778676015908316314143664984106901484379337293060490803806535144450302234574525393956432976737518455624041012369705479325907426768496421396596477108142302145051400397789341651167837450959416707124287205388000698872865707256901378072575871108735223353945494458312298689953640084769379952625484588052061931847282574280971468170495173916495425029200517702793453114371481980366617933377409943791670294247467767954614036901308743474710890834152505104167445143974985716623046006555151822362806339036141240553683393976652958830705783695240665535793520279780382596834975964120549974068077836015878876705987615039411737989656417277715151041760087836201319519381234962189964769028537573341868315183076822322983817133683282273483275358130982447288201170128195364334097424463152943332691511028376462990377948193805979437714971203840194239658596205819519826887901971375863562745001736390361223362442868045131697379733530433799600944532167029670074401545636297548626754864273770284669490724779928960838141710350211002562025559448618736625266276425142809464703476663969597776468256911270984070059164461302674072324946329982293195361497378118787399964573750339560840055883725266927922634419189401539198951543568215029953817433779290683638813742927917943901649970351729015204652270288834150992331351064998475873487733503254098317284388961229926964918739281255854625500444593510936085373438580253152286881869156173920467761103520517018056500502576404318947577284112138235673039452240552184800634894468097965381905440970673122509068278020117028366887564186775646243253923759838300129027103763028558082622598172414882057022206899548660305628396763265001534424938173509518512987756944473734928087226650725955478412141697962132660965714622377327893771032889868549484552793088868492443240773214485789819072378138796093539636141186759928313849036744490531625126394169641603121443247753033668662940588247839473753768538996286837117832602351099443994035329060705586663136275687331783242225158032959924702881470340885389061344957004752116437636862447255513692826420383907262522529143207810892560327754070417005242902031268085133628897331792019267721137925925781970020985355525603239705709998093746882996895512591679731779056008408745732723439116894308457016294900707824342637239964893339472106299160577378242218070457604487321347048528974437584406574349102409830073201578363957108366232728860992068868681021407524989979564798474294179661499381615378550223940872016761025156275463492787200331029536702476811083138197142317440103188569202857037925168967601355813027970571223848990243192028101196000721859170445242300257304235892774660672944510336188242594872187234262868076582244269428815516497514563167981879073128184240274840080887363668440862653370071401436063018770437251151613036179327227910507956893746548587900665446882818655865362742957922689896114650276746969879787027866402260265491552137152645255004455037634372645868482897457264158645038206253891925308868165207217854158554769855328365875884728006827991328661071824616527945031459254108577510749208202700362512700853770265485813527699722882710189838472798297254717160055289198995602343445364774112427914166793886568568477134826411722116400252335436750419647592676797878961380431998195263049326667814926583252297762651347533528194905168036194487362527240836163851204754413441995233123010223509532991297366753382972433431916419207055458051702028316275025301257596053283301942542871982311746425050019201974354844069208813390046087664314552881741643578945806528348961329935060788498580589781108515400957214083966352610322612433424230613702842970560532600620853823586839742110782584776120430345923112703740953001354306201365501870476916196525809367230842958592379208135845593766266597356933458549085918902550108580708057804259226740434030035931429783350796633674222897310155679816395901946160675557438930868296977008333656868208009044378683308881359432442628218740979337981233500211457112889789063605598187597865942936580680191253035528539908002194408255043200829962547432664235600132476370528457078831397682317237138306911298705880556634467112837257715652652103815083061280807818406374486754540223418244431852874187524090604152593222293486433824211750826021497094543784899455215388899960438779523773071642421577992479481415983350324955970451825664209027309130641699435679491749552976033939029757911857909237084784012007429029623115368243800844211570554637200944308734152851939409590496229853010241370845008890756202883735201891120264497388045483584891845101216416195139656710997215529631234242462872796360811698645202563587036294763745632580745892941593957076259018798421089984177276007604315898888454309732204705878657894878369762691178693341938434695502709546648644144649756358607042717259389730235464008257977165251774410618799130841961991493031978003838923350480945604668349439925616004316446488703094762740411032061548466564497652736990114048548959228865157631006519059950383923619704463987769084054235917806123349007426270088982169638989603905658312674958324957282213385138578486096093180902477542256402577039247278660796042618409554484641630516124706311532895734450599889165965743624501389625447114383659196960576006645355558012456266171907515782350304506663641289930809861215462612545183783932609896392788012805800054808996166016071245514894444712796989860695510765659410257765596038583370036962049182560586567318416561361527784985275349427216815762250092396556838683555197014344896494100874600307459324361541468525693285851095906310263897635575915661915956850320922271908687692061544196882144953099144883134434033689231167640707216117438569334547018349468240752718431138013639498272683546912849542236455534378744861035953394932993464067904051642732204478352316815560262790125277040229005877204980402309429372737000004391032958672890649246426051677581361175508629986994549954748036012133618059746418595862443232508210734187012112030692503359228354009251808206939427246582092674330142069895106595011319780295828734455536635216674650092982961433785215618104370317222375149869598009095233195166068051697533517693196660032465971504570693001980735365838531765140882332339430901776698710378478903523846138100849284246887274232840283479058184285820821648411893734450244769152969088307209019476590029541629051106403935592966785696825743081414192376704406018007179128397759664211380987055478395527851550945138521395361875007217215112178407366662383936248237682248945924080117872316302461264363320950133022212100153240281256379697739104461492779231088504595187108387738068508230288416021621103353943686865643669662274006193552106738571749955351565193403692514263741400218365407772144603915514374203546322100875979408597560676433801214895825599298390990868404825505943752542250340670391100966270534560264323095866956462794995281400424645103447542721037111284706357212634302664261184298246601091381851746769886363885435320716441002153877117435953062314215685643754601043673149755898747819453964020498220669409247772998665477678963566929120220060237392236330768099495770544469277875331276305518720193528450741132561750245758147694102868260747430717032929760708928166980572328451308573459377698785557219258310069174177579382406891155459636721191504545910227495691264804897283262831235128385754606060130460166281769806625152117583310348334931278213740624202764505795400610586569058307028276542149524327695412459132271900403547885312240030071904758719600178333499085326217827163727237075666476781014982073070350895635693598560444034637923288119823575556513840860937159460235434274962834188437963098942688224718306173215438151371055887724808378363345089303922583526934613113272490782760166950633979464097157161137064134277591400782205064050532827363841116668968877105586429606343784682069485612411251604860269796181194358423734345276540748513138212201098760698633780523562432586266656827947177829092507989334073885353141515092782225455287817073153089229779284471576936147810029927361950710356527584067664939392771184120078559158489986247875873376898862890819513759903135753785857347832338574730952725108828998053400451062028691683071221956115423124632327959904569588655656010277744170858722719229272503040718822251981688760135284697843806438539209579381207342908332438270684851222315856075303436982150665680158830518860900045680224850432604450100878402452538094391455121441549261553805605489859469802049480204052126959011591382820339858232344209777967503949178278053634711900497748940364108923152875472605899441490987533972542548966508112797867600517773615337241535171479072987025524644203983463859262520106518804374594576231788713216632960006188882314211190762578254197783613102409236050248857487572057021740251792774149252355813838623761035308528190156516785499826621808345560958793874523774367024501445611135731846964416676570177425433006871027416354695693632335262190134558848306584209211155237273302852524161718750657250812121693621948165485772804341191632378519524520965838150214824769323604180700454138992752439075270152853111270219132518289781526140566667592913007084214084609565870227341398930263900507810188154600521236731830640689677226938769883281652351785334612953568435699503447529596776465820581429274919551446752601748574914031806630819137015213984983484850508855583085148844316660750718062553624686744892768742778669502309235573050403809965275884650001657112052378689826878139984349544422947289222995209350393471631131821587457252566956575950001455797587396904423431355156943706982688856060952305152347654477088620762757223573014214348659794721542971619270265526295074222015367825552706175084503016199333242024069994787563575054201674604480009409452161286330961373981273186169363605863938748762095370517587139052110737247938466389175276104247358682600688297041913236926125196636407761082005251395432286779047651173830938163253052972373342794984695170603655361116998446253523608066689873457337425747016038567279438767081634151997570890230281476268231950635275033609446934397832330016309480252214083515821925779927462690503437519154526079919191240448669231566268194943392678065182346509771844850098663758207681201869583877570444429270081827465757678637895832968392963027498108128333746197165934374240204421374202410566163252933399646202183517131787069005681179030785377359214571182549940675657346237549322211763473893154912555815015531406320054919578826887282913811819392274885495646681287811256791850380151076443627583616164714132088022663401651299032543634304317570572111259382507093762519009638430492672077650381232414931766258471520660880528409334774871485689381398083141763895002146562858928831727506213253135286454626420037262831598300501972544313777314011091314020913377150864920999853896223063810832382582218239261068509726630455596562040787935506538155234775626752579585254348188114672802528145584217323948551211155450219440790084011943863530899438025961269488451259144551075167540627707643246899697098226613174791472410545946635601424934631306770669099577737212962336239362378100428953563852165690773610665107997344986078686074194465768201402490623270115542117674066531567360263777182801216023674259394146426855771727226474005358735196148213891587691269491274711444801999290411456900225242265252319716295629599673101500485939898638410433482872634423066629839416764312637264343057617289302650511749226114085112793070610333306461465827504600722172830905318273875729704759535663151062277751858291013591557592810562304519184228286366897399679943163026971432117547319674175668599222647299644024063070022069858716096450900244542797890944533634853107621370717702919222994298244998135960830967740687974145325227063209943470266874814164990631670966936741229715592907792549305582679432722933400883433452964173461980953452442207266741707481716122920508396629700228454690727853674971153614750497168722547393328297472028308102821716235932681258968481310765942143744081893577696293432731895227046771014426193916894431769635455516707867977950708542646473983988172634283406263035408289528438447810807235923978548122927600597244344806622665265120905129013161790140868686647678547603987377187560920898446680298627326295536313478902560710520700356071630248263416863220040166129906293428200828471909059664056830888526437508535045288697912200054045009319274860690272994135334899405161992649962225062381357916123235748934938680331753188119605798677342280136317140308290072930263086559306754279753123163016601747993839795755227135351513931500971061857593344586696581609492292188331521513697772960298564856860744254217467701792266278421719739233269954787635777357674728312669955299645936712504532767237061270993710844682419464773712035035298716030002197130746953470457377911173408246492597539487079890616844441179080732140093978052680517803584911694146176251767048278715396402165085160027292338002863893765620309527023621760123889339113640033902225968061347747633624955693891739652470252078437080222343499168824900940919210566161440321035852696040722694904102669375169864738187180943373020879656216394887527624655630535020070429442411535354792998900840000093123675610585015275702342110376128272018015115016240371948233488146199889330685186837835658045649914520443542039626236928095733538464862361487001437856321475216543210142417988112822824100597080249192434560283958400948825407486472650309147322673886515391566108768031348855998722635755188244085581101923759612577952958805065631699884414431056487434469470898993456014090453025754132499405539411625940010992693763648623841755072268641641387788985215857138871656916467527773362630579604517915958219526582066122882250966351065790541734603747017702391933123263994354624917995451627576282756938527260841559197659412398285875703708779474471413141593589347470011512580775953657822241506093572784939726572868468654329921963606994256101002702256909046158915189601293693629820216875435925090091095204938113449777679468321691537911004825055436608891685195035452236936131704538771593111331487249482268194424246963419859171266432341313246081498421739810767307872236210705019917085029206067398378560919430977736428158467364882548353364629587393746993914524780443778506802755323184259683176969690154387608499354053265807069810382482208630181141460126959918630815777705986555589192683774122313912902737349520091687963346718323144232237495951486634714552706755549658546060015412471933935735574080377152231723100739084989108144692398702230648883379066283385269501723965396862602353713416475795598404521421273392366025039670070358094064808207612558859974738578414886657731842379739914452222789537274958423375615156772042625821220433916349671953558130771761714953141616001994648090199060306461672354607552727806654023174641432262001043025246381640700942124191272521805146673248568811574370883699849292595748130100505311030977570241257559715121520005216045877019933326137535645909281628143998629944245967895190762440302357666868305248174613517017435207269034516458739833176718576486291046038878384385040000841110498426024975752903890346559439324568496679864479513662618032351234777727380799330429527071020044169408708681112447862145941158790433936925429275522993810763189410448350997796130381514678140961793229878008377598608901142131130572503961366176523834681494124405708932293071921518324425292841234789080659914404577260912223383888980524856843982450043027898982931743537800711829494640242420236423482192214273809532180346570008838167204596628740960110233316226260747035741121210540584252220371753918197478242850656551757955075057767244108080510417577906861452755623411497762482289641336742560532891294129149666706468785549592898042050026041174295855334899970948932996533405044636637844011009440386927162408297034805449739935567464516021336414468100776417354678069578358914631336128085267574122754562866147557408350807853018645919360574142766195492924129592452181542851391915025331790447970694721052595602337145183690540599801496757221985095975877494170756458108411323627733329274718957846234406070672868113641780385776550625966385528067790012506461145211648468027491814429962185064125154339839693517126242077983987208840866904125720344826572781404599441008500468745325199799468302187650937726471423470234980503205724247983972139106515808369517130486119229095370502910917464205615457741147742868611244445467588212881087151207324284866507336323516864366595236335781597318222470758483124023792516742407143318371140577534043389514730067309791900187773481330732730416075771743690487148691913828971032225651740647264390795032246970692208864850632710952779161500736073131479292342039468794164657615008904197926982954948185530505318281649116134719491089603813443130980323112021630757398410734887552520529181333603513915272420952285613956164379777246107891473399072759879270497859320619592562817439145596394469762262184919589321255678798546318821392119407221135797617946835283196866595464344155804445344566544269880858629169778893369995598781436846168629951521151075859368193066191673911677057025778931183826550286214710673937609205348378054740002610410552100658156313724601157889596184460501660664397129717932201864783239109791346899733996866757029867663261009859447681460260580831809873469992709774128897461907246980283110278301915249473678060342545873576158563409010464458469205997314803019885297894247099836797144169342075963487949020232279363687850344759985883669649426943232739240332423045656899887977331206467160229224593599448293750970669477737542177513527736502372677976920555145690410263208417029972824992711554537102456457364858583360416928334490992031606589409419645063399517810875907007903811432984564643370440401749511944776795046078263039788093694860392475516890405100902917599587397391890275438657616445642657064863843885755014065548629324320309717670240394163415132844985816378687908338560856134614652807964313643345431718778526600839089388985213305703600682037380665085988647258858341742030806869381296485685809921218021706045825709018184899214184585549807606856668247145990312747723404230324947490370064480584147150908562867934130307782029412389024225106673001543386890170362179100646029171806356924858949235736015975076015098467300058549994015772050209480941327138915124554691238937436379326519634623336144587762583050766367638293387031500415237553229180244703058859912473762816747554452093014393798411099359023740808354075257108829415258030767896414928976258289578153646909351281336987500670896420672533274418099443853463637232921344823002883124470281772064372640710178410739896470626670656925869210478841554565645571380498396293058612796419023491439310583768552681917689297946118980257981627916538281155427315272519121277012178544827529809578392511154273506163362957307115590260278676562156702703240220763953622870403225272782785196640304395061138545460722344358561250060161811427432514005418416402893702889907978665046577622615084820632058088703080424480239414250101098318754260937110767044357273164333181776772782016826940705427458506788013229860035741424153555309077097347108244383991819615279803253790840821816763109822414386395566999820515399187142101948691371442409131819649942391314687795266302350051586702800490577655193561019172490101270217311236760816762506368915139029117316206876541957752242309048927203241996098046530197460260019012182080693532680477928755519894686288590795703960603746515919742529413523943673978512332403990305923185909031912088709277155120770626884114090852642998836980937857666734145803649257797607647710199758612834319280930654097270633082140125627778605315807058930159640712122549839619667527890123877976301266866508853616235335440381784496709601741693289858669118887263188328400618952829873812493728436953691634797724151665007988791278182393840233212735953415477236190651801626454558789140083129232000930588766716668124226273334364197304954802520007908280323763330469482061370502543972718705261488611138580153394295263193588441814675249522709052112258076682584826449381398212963047965362951725896340025275634897595334246424344842225080618991229762914518555517704628890434345312149271465880382824999484936815766698698857590575498920774857079463105878593096983832976413660133964525067246839805532549253411529180210639532770067344300020503969883569728564493650344164946877863894754390670082324856936460832189317764246560644311774215747832325507515739340994111992262980153603897796994793557565634228068576957421287661406409128287659825315608755245174614889329142541672335253769819848013946709263892894484000990980769729946680949366084655114917038452186030134273209729114955988937751906997233971992845495834572946883252417119761684652637935030256506463589768899266335787389680370136464461249704653877308320105574893203219215439584712376061822232662150416467225303754822364269437918557173359511934958551378779859245075229679699287185423150978094807654165049215065280137533267139538057711955093868208994207801567758464176178922635945884546243551220604839756573966227789701966710881389640185590777870626124490882259797591598733032328217586612745162298284251291553276654717462871653025975117880079634006694244071684643362644804445948971264019662702838666521196722803591548224897003828064854023994997926621144539416798276739168253462773133694763489821042641299169783138095200207132819092660532213035825645614323922616175867418033491064205231175802227577837460128276553204584660966931353521073312519005336542944390861272848353278709888245312196887114533600457936441262871509893693446580675476496427178689230117762700565200309653005744621376012908746524072765741400366395378278941826788807670216796243116844104446922444109979263221756722152918046972012171736038238249743947900349221633552967070629237820522351937091984756938531942086009757444067261958416374448128877125963332633176354023485332465522595959452904859948114874815108471239300220583164014202432044098966701269971133105730831569511309318342446115538117808256542035278507109963196414201044226847402081747989959595113798632425469379744537524280451236731879220072147092026051699880925285053878701155682804342035666526816049061384460313491718683116917525982094902429563169416157089752645642701440442027500305325054582337968276602556675552501415550761439154676207940028944613463279776824650484143621148679321438509601484373463084663473054036826801796378407800655608931023356587060114288424827849912687439420455727495397809475286754563599997652569005349613456303903742255588708555502153123531189337116745600253221156612716570630903892546146569796725763965158540892382406778131206688363967811098782385855048682551725101886328146492685763816712394709789153692718631543381061817794354023320183018741493390587547141923049741578281351183611302600605293661593137160390264947978523800170440523868776484406593868204472919875029214509121931439244090988741373989684555549532802078658836655763588755937821683498814544360090317627798949421279117941713237109422478216796462879171198587866624876623595086093723959049095623129932593338198318767625779931125363043521913120046157008379351127744511523783937433434005307550225532046199633582123797771316345515026727337620691513799296791679429030892135015309203492615013494849395705957224880140921592240366473559055095475341447560503306844416156037179127235620365108214715745272766205663443588776957166862451983057119734958899146016807626213168055732698312708772461615023168575028934300209486135042903185805071221585499956864255565515116548222267531219494504618787695700920496511266482197443058852661085292362321533344026944571522811715502386839385943636152108221070015694038336635425836008790053292071302766597247244398711200004236236581950715362452471965777290039942444933921290419746469040049671089892689535486624626286211952415072338524190649930355820801859442534274942079478672488570702931098533173962459829236431744002863543587906922090548056193905504869133797143723549942342466113321194905368728002796321617178282426792414733112978439525988390313693349386608473306316688294357071661160764728025485281687104206867678217132388607501907166814212429102275466028888883344105587653474126862050515312803526729696859220068758974694421528507073500533507933323807140191705596513677208018421794833890686474370895232341172189086911797521191892786519024385652945355143463842048421586523682777188670693896582613852027419094976342707135447157144235741413230047893261134653014430272022139073700474242828093691111713917603759124231300729354216283864200406947328548165764210291446893744814256241596186041843441311431004747651598043405926788386992976504717697772026014095101325633595373747466797799295702054066161029154834549753357217572523919937483265667038406294029098466011431118543574651252792561120818812746240663662824237326330488047891264664221635305888613159109791200546769847056881571931314883442639948764719053171432398831157333520904637457082198533464290156092182459019350701094608090862335374186629382293507387856030724130408831245160729449693184570361649713772271651039822942361436417593258942318649927460470160053458894523403208380323807960951693376323980603373287088129870285579501925162579465104044533794530762532217824332882360358025032125795218451478278456498289478673088876158110817124078014944489941369424420970682374213895625420046053132830607372106617501452421019238130012449261659424820528937764246061014312195311351147123710309410761974831934302558391475300723981163744221840235565258224512721889933278611304987897769359321632898280032758038134297722142719636988344381371929824981818712901640241204924327864786093166971391679146999430991854450443467001767728326827041992315311442337038877368188655543238133052453130803028762629820727305435888274481863982305859640774155490519152248355838739026471507686036980833818220492995086156563928041167296747470112264027752223589244539831979657245666134551324296547956871861618369894038886633235840540323950299751150252897879858397869804337484910099799355708672990748362641924708356118949197569403102148921057674437504022954128497987140571945618479290627596399636332561270211701326967130395096488164738636966145396498020817549208668852726572077012468794738319475749497008638122893848563270196815618123228166782076905709458322449087546948704577080348592577638450466242587397061470995277414320328172711190083594292576563180437624186014347080519462638772689742067834516799553098467528526207904300725838440258293687864695793342088641645418317189153094865675469121220635664403423338910563873828729657904479521489589980270050396555607987432597014475912551110961445381349321914259178601458482946153871844384301137655533567117899584316369407514857866690599280958123658276759913681446980894628033219012004506898141725943736625641116488978420917304330635756530277427549559258005950673027136674155985604958912629125205756146189437872876463274142446843562331263276812331504985695723453694274165559350167387989002218220728542668912720708834344818555915193946592278539503247065812026961734679278982650735681239868570120393019628858091557113541049346585260762867674658488435286603092111079104435419561561865279653088804402348857525080722597102198868312725800197648374655042714989212284156209184170804209985100512752471518776462081016273567717775829037301158035960124801451232798961803991188378292552881868982562245773063887280771690068929155759048430119997237459574733509729280778676883665808460398578190462172949079349541431098507932044757379247571973768442917547328183077539801316087926069722788269049887975336025407931026116703350850739509769402207330681288637981649407316934641384713079872079448481152815802385083626999238323639027888805627493215860203928176467370546151805416902899002391465853373871906940595293941243828108749936491085704845889677093471501261871156044613680498918640656090009757068067923282092983420850685987564227323511331579605032759831206920606691533808038370531670587075131652628695979874364862015612353248902720163330513802028392462527352339206406210007951428397392683792399917302991644770348157372678956946053129570997576941400634443013575923104502870518774551215242137562043475595612629971667952482530337448171794741534543778636890138418415206620380212353831407705878207909632916099430705419986274501862089244689319673888849816626326460644640800985070765669047525435804042956703832851384364688843438089574418044779701302933375763152784590879757593165460849989294232378251541494520206264297311056921618712525344282187199840572811026764557186613136461125236926094521719923386841454918611755799598914486876363146103482527872871858934272277202213211315522005310436469594070268914060347010035933739657873049292810038743713162378090109288655311613149093536823593516737866633539898090464756612940777426925975990448614079588328001817556327840612726598099591909057314346115022666517292643617708974117630163777253006439775381911264173886921497711625372560011943898186091588394164622778880489738913074597057618725538951031398350208169987010392468809797611006472786227293814879449638387219470296152736293953429876006958233370411675467295819134342086205611588938512301576900285474269076611386832667090561372835385449992747863735351029308646445754760193215968574114064526851653723477307725588119408653669359286022821328449950557162990326717238377474861041953605077923161549017945764068636897280324356107788398722323539122450940131357430060414878088796651715221142490848629256709190389869709573542922254245808130853529896862356135542234260522992139183293644377473587622283097353839545266272707058835232860800971475125164863322952906292332669526445241171581767056238241757095549122883483088646883307743068798747237422342032621288136523354820457531492687427243370248821375639208753511091918921762502875167236461108262075655153321341364614030399610172406213029764230348081730470238768187319954652527396510265217993391002171072086323921601973595182446791646521380249131246846066793791605597988194155973127958829067303207259898852189562849328400919344641540164364885293127082077188820385553715496353684665404639441256026287340895913851650076217763214301127363142725278424530831915819057820731697065023438731081126221780230156947770463907130172822723860890639031438487455665847006222469532096068345583865837386728738377064854034768711260242953232140034618375321910571600106109894148258756735621470397367783363852715830861856112627963065474919038838910962930679523800078561587519720582603782241390106388177996791449528293769918996788539091178945383488668787495437726372623296088976120547142357372389566926672652116087358386631079976266340076305944082153883092872057724813692506513734906252969741030413628609976043497209764557526558073267216831738132664067434934675189316153632683617864181383791646696910938554244427548797912970891632576068555040394284594788787646253261547891136031652364320768768241808548441492192288368675828172431787819526153448777502773070266601697456054522449959755473133796084729863789931671588828778510054485918076129039612155424291062556728193942274364921284550007699093060348481175821121724725435829674372938151169093761956339615417322887894131851632097921731538845902258739387636819333441394442077788408934612239826350506806119911619867665767966400457061581390055514556559742276890008468585287847399991669808696162552179682084923620987366899211489395878427561781988428108027604915753296007694894860477329045533569703240960139195614137915721412255131357260744463569693725779136752220202380121154143128737915445118801552974177691539600513963012656854980053042272700990473413697912881805460945551479324952553199827515146036561520948335018273360333570993339610239908955980380761897139895561699094117074669112291417540105980787201810436941425526657053199867575035056431177035033888619244158593090069884459931141071045768777198071533165687060944175003801937872479987626266513120265592820004579951987377252731123391209466275108677192092079251946853015575481258714831219213880098615575432098629895731981334469005855400507683971111807380740464110114045288117913298318157461064251009087180828787363233156503658537601980748982494213309898181804860324285384844522450515268671445644077881136874336801337065506019802412945946986700047231215063520689842542881851236493766052774386782498632752686808586549437011803307758697791250712327979997136270868345493414389985644973932126038853386875046332545708273442799909262364742658329534492845379841394605172049590877632694933500435754155237410803185416211190376382295717394497751326167274872603569278269412128681073304290030895702293084250323064094750709676852162659035578311727501637142204201992074908763177597345402587071795099816811262355046964836150803104206997162012493056599053106902859190563873724133302559707331283308196344757544997939288907416307476416087446966044340101118605214403279137862363564320544664025264269484494146458409271911983160034501498922591763002677685802671457284413168201223312084123552227335038011140167631893649693881365523625815914532817573186411352360799785227489349594403444952511249066889512752143702501436015507646249708259672450007650370875625272832788049068831641074861384176986208352249436915837730517763289024991021769003124214689499807301381441227510379983156116940306412612485609834942259272971518109991789602850458301868781866635403193303590314304530064358853013844155165465503755441066057234783168369107215507258757862210604304672616788622014648736484219120050336253835361356607564829930182954340169253684156498320600060992083400570200582464980533661411962552293356229353414844364727986924890252260255262563259397908043226394093887373217145745720299925574792446799283682282777847799263424948656112915180253037441823680654141263571761568947741013862505382274526343833561621558622673598277224548418826468869972565657532487617571389413413694859998046210156567402467641597129253656459831343561025212261861205518679292200965498470463297798124026103287112132308613482125472751053788369868201666233776726538813727394514811379177746315468008558218726530297723896432535739180563475853033713333329359649228402957776987653860898820376006932783248557795676156916528818824674002158919959356919615644776104783873175488885164827799454744836095869621342466633100799508212440147772200105078819630294694970933006780740519659621854597866248903183050653271716505114520329303072476978077672199230535996693366364662815841251924798379978772461877594813055287623816124368996282391067778500165363659223173393200581224943357126918285911410267845855607198430023137596874269327832364268417404475249492742508611503393400774442923704894678612619871196396366437123711581492426900629604130192379579568522972369586404380051564550463944206760123092208163516649920625552264483936332319108065644196843017691142354055826899185691754587475210909527792501686770638455932079295405786382596403489953985447581778724488816691612659733429796494926364342881715662424831638554813393319505325119175337093927629785526752044944211346186682104741159335063371302057281894735298612434910604314485926235449977074521519850534357506612397471802536280978502938921936907563952164901864836210724778384263298078628162375562579132312080063257644827472126310566035184312793080826852874576602484358884520084736744161834683247127593759237491727798433701157174582372880879913335977497404589869139594653249014351760441611711462073798367584015437969104218966000559868270896727306556060294761570438313140858379744855140426392380531268318079040026254258641290465190416852005464988921478972469698347284520406902400594042558023894364432863573760513787725152384479214669067803055893818590755396798354843460357041801294672001614943102415984378738659878527458840585417787034324761104360373448163139829891440806511317418830730457602331099323060231577108312713080501684917251113559886495430901497291711022991103490899456910433769233952371889651136126778750140536048925247502485513955882653166961960512460243102610608006514351145808586534356598089127374284057893626936562466183198131147570143539094363289507647202941595852547562978480473601470810024689219111335300696181395818324722505956513845068679652744807196808036925754848898598430130930488503562884544224327488543561821772528848698476356672450956045968549941280895200176608306277940363951488481259072570216578350257215083296969750077978529106566489572874842824442967528214126234257765145652500599223563688180749882529198896511417807964257881784604920883981721763098501321995277261236356620422477117493982667708057238101821244625237490514718529561313180106933131780068245338211986152908389080292783916035182898790403881550714068075725902062545352646313275201074231705225588723132037479629038779704063285165650875817131661771137756382074435477722993049458921770857630032199618254035321545180313587376308552015717773319571594642901894712081623499350914507432402908720388686495805459607082096779326460027348071555138535433150919236364553202907406113659119429109087968614974951630181390572120703943058821626787035605887547818483153759737843989014636250284576983660996759481958641505837271487430545665653444807889616886509438073579075790794214272195017498231643386811294844948563739682976407175008932042958342500335329478308139068307926757445804726409416352503148140983951011107710385117028075189778593420294453649009089608496652579998000574848416005585265847258434351501470139424989740642482955627684312253058862763811181447333193772618045670923667221278012824653307727639514144138453011637583469981255942770772903276765271703527591821746519536766098637979080810248655474100302281410153687525907496542092459770558228583449239272778981835441867017762593481663473002944877080847919692971648692942612153172926599240191419184960843376893977675990837656810840469880868968514793184023224072639782298918975331643827935830741169457059855184776427550951247432812627242083957772202181965627176724644243269058471176915793287510780429084745033223337347731822864536486397440149335750203809446154245404770522102611412060220879913521863817033192620228615463067936166043561576978721309263515045936026212571002552154563576492777612810114932411249254819719179700316973875382630389998245343635092287758637658174687677955171276615934748342517882431984416754226091495485685710960402857633730814452542861353652043467347347289740975028547660189415663079727369341750981425948869916909765100536947175438913649261503194302781418455158453700595833265245122613810196025553356714617300471172352197911661101539922045754736569152920267620024501495351228413607483086115803619976415222633579038318414212022817643011929687280403269715041763997023250505376632747505847797212322761174805980272219993879211924568680640199950409280557726623214295060263827359812759627097019275581176783979867191714280805491035898640913811725454164741015532244113804225582324484631609727911931476168265867721254551079413750385964910026648519879904340088914424405716180351746326893670034665062101226410671574478744502400703999448415636607327496375982761757506019250794097009331395827945738887565196173547895360892644582620590772570933200842007160575751785502233233275528522726683561648512971296753308225879744137459027523793970090108174864699763828963431882183762553157619683055002867944908279926100075900345059428038859706026472957376831487294678923262221359652252396980587422941568169327893624671288453133066444971273160342127473417296637402286681202057765184963053944060788587911821832000155277335893756600811819539074989557531188588808489980967389639415429129169587221573724613675026951373799095291545547230014844551117344575755308626677583336484880456743547766071664669572563637315157342060764846984100572992469282734086576220603678884708782088902441810837766412231778674763519204203175802757996735313674582035898460538241680395679973335231446028834624645703807175620740944292712130084542599683779366419976893518487820198332922799189582248525564796233814730848121512585173428023816731866985220845417964078545324327497821193871435281775418133098938601260443720602803237690843564082969004389322803571696268844935565687325375112115091246136132793217325399081735893101442260272179163382123917162067920919508077859572724887275308631367382163091654834454452098987150993897818163460788197097690892521936575645087543753226110196702002305000907941041263140477196580427736134770534473297910336959911073802157597864646140193313510443458239536267527033234925996860543805851151458740660233057598682515428971217091417532241301596728657651994309566429453710733782457613110400296596963439531384459313620103424435622874889317057752166368818691266155161182213166982228662105285215370375507657092548381627365669642880130631793598760966025987769373070250710396597745114227533541219755132937896141561126401181389064815112314880051318344726748045739678255329601173196724111217636307383499040276240296079644689636645883806810684173509472444447193245069315553906652373953222911819445668492897221059524084027415001680149023344693056501468855635771344437456019066474223166377243246830311389843197036735049622672643812625581788116160039940941464548182705448067829036130348869327145318240347663817001106367355818164103661570230105544669259172716470684801140472166929845328885765364908281208553852014403092120295792611135516345687240157555369563586540044581138876145595886308046502490134694207896064229421619279116111486153170804776215822865596964005597069818574281260797757706819928902501371593380042781805914227963613968957970366895938267609775553669092480565580450893184960104374107065035214624226206443772534542545214866439647490948623306540932599965549473155073334640841084166059658998751174925857701308331538295659476623659684653556209709204500470275408244899704247560964038661973680266427578399556701628404103584130216017071751150097745118217049072358365407122347041955562706218108923109211340182285182588901245330193468679277718715829986427523808300946928278780165493445609158821733432911297862918838326465004018278091611188529213470676216433973756195457789414833887340107973217328624335839930808374556350532833792657126642161239851988667581495080381887688539553906753612000972797868146291766319813415546470047948135545022601221974901252905039669612210162017138222038014036530679015795273478764816684595718995131300269184591440912589065621560326111172068241940264335697002066746657810095936095322763601966649015868897588508481483132598714944964426668033968270595560821475892213028423796257589855345415037163401174138761302999898378177266171377380859090471578066823515822161251576149721681354242626080576850969590946609851931760245853018376345346686984850697628103341075542228041802704157237810242868655222661616444014669429880368445171747921928670472035976835486850938811505651719859400280475339411602400074432747272956326984060042436167633342020768945661635876252964335812240055238039435774319610917408078200609306567969460192526926223489489887954903500668292282041525914178410567135502991268763372039017011595348494447433117983378007129617922360892427157072440434202228890132980811301128168984338759674938696633481510645070057008538244482814154611910126782751665557199901161541327298880474719525781938949580601733247263586751246726666019976277082924139876710562746369751774660059131301006510145843758439639385364210904479865791208428209135067810998164655915012633307222407755010216689743288538011546382330411245690008643449509299911707654221907189522830388888594813579919449536279941089729236241413376303104964387192001826168092844849713487057988519562410336026746958102813202650421401695894388310978369236183494670841989134621054558057967685747711809775192623149207169920143462779873193038484192779196414720972242541514052704410284589524896721978976032879399510819998006437083848542315214554717771260525082193430186225264617869892339588831304774207296535260164780036886361727248045932052780088643311505999625338823743608403703916203749724710602970929011980441469176698432824933900218275677868893461516385843848017459497964783725881713747484648176673683278863922853470042255618884809420801680951016645377980230402490301957475165937805331977045546661705335603488490723508096594988495952800210700897650190264543773749581847756780523302617119659492125904163762845136879519123924537605241353532247346686888835602911551124767631759325179052918823900531168325129400909298368568919983784665121035564949235749655375470093222203128120100398205401988676255428681351693398365732409943983105074138650787108799464457176751173169804772998059618658298655647107013242020221055869928623676323843980195401717297414998649706067771531338039775738529596392730790741764831865184083708938046559941760203183021399001065657825994752849536572251881527972964921235160498028430855660235807232128129727156458893313869675028584713916603380583824090261302154232501518091959480535960599273089250304405572442374678675451058059962414024091201046320142147917990896392561297946549498133055269553299336201908708774874311510416677558022510539874127610386064328998889380446745087104437968756319569983752787610903420496003795949624611046883170714880926446022923743004291077297865221925206440884466545041276894212290061200482980095118090376142483548597273902376315265905020420346069391458301640458832572733016549533803098313612609458774948035523005436414474015646013981980095796430230658885342914955902302944443271266947434215478493665922232452875560618611926069588776500762655012981783444877645572938231708247023687757252652028157029790863047416921849532116697324270976299261566075819214975981330261774695671174952806694712479304612998555581863495233344970303443040705332671606797724500236518948297613789109577483785910425936422396407869153588412183157785280752155901819737387057080205565064310677990902934518300087935193142507070264977736759428663747777047698890588199345486771024285378165263711005498069688010173177579231770319765968605568242525290511246711635710883795620568817848179705511716597374559982771246115655545200221461865476964777237891331672551329096652670899014656555359783470226992272979105940789491119129311899925963952026366510053567720037727908923401676938516476574564954758122049092988065850490540290675140401563078898196630368363620779500504106498868535971235771377947990115486885060180802261766466980777482918969295890150331998022671699086917190609537211994411508350136614007685794863973774487220771194453227868658866854927693857493267828551400350772501874184951376959082959531682451724336922597494088946264620845411455464253163638281238715544996906860768719250492256426658037281690143169821248381227961604569202016315311096563483092116897194938958316968093793161870439941319615186102791680503275721158440251370501539038763527208922329046558507254048260749324867479899630532729096054957992990026288966486302542366951861440816545327178099459037436136866584749316189492809525588866529541708135990166209830607041903651625895131740435522375152515336985592231450686274206308755458044649965221888515525270572627098565382002894875754123072347018377294266586447877299849822047667950926524008217814865531537749740823008717371071067545924638706785440602814556043712288724947268792826631864292618429657836101821253952283155169806864028320899881911449997813739902293257179786194641279330066561952865596228183202738968984590765661313002752435941292298731683798050810207584833140688116598277703366390022241298791734903928081451783688254687503570102904146835601384080772662954433777190614092900117258411726082533700119587451205745075976932343035525547191135801302394858178120584843912310351496505527845429983408083374115787479588121269694176797800592918253556555203687185004737237228427465948611738205826943223850851476542129598604582398954022083407905225933860635101653703996422331301951337039711362243513200771916530854512890532133738882425118384510849846187742581862950663264124931870985063587302157907556864034553528695844809213792365715459635683812807260246484436288327252222281118329721732032737462006100308139742451083054449353542017836048105052945604047765027900890592073578785614298138928682071332407692681321304496732286936559209483822244130901133658348185574699081233465868102453718282643292123081056751427680308159023198586724318406341121296255506146676117141766020171963960913870054190878278687790384039487060870843411916556161490901900712261081593408321874076905514847524556670223706177893322728093678231641416909586563619786859710659440575102751197797959669783823846387311704067787170100818359064241215410093982411994281522513037907579131872002220162766485374118410072386977401688398346562627630771320990782234673768031350296895590254348184927221638120761281698501082243209336215187137316213788287823415501226057236771737749627880186309271315333681131509041640472467426925279358569479693845149120621132637625428551542425667606776845048797658271061544900214942588213886233999505930754993488506533260129947010529523520180782394825056147371039303273041072883761666035128481655416703560967808004068338364514975907072814528869508383594425749280395025529168893892079675775806921892193405068028592139979770269078159257960166729557962587581078827081634025389492163816248193935691745030467658512052422922244950220347570134035191432740703642177488083121983249690585800237599822796236623821266272321465844900015837039885283594727618056933601964237023039260869151216094125981859132118876878831088165855247675476644522569892958745318254223963372986213453466809826985409151635770029693056735243137458524386966233372553517134701427623051643420021778184302770266609680028978627691659369264357401298290829150080293713332963715445895340459267390291976493172012605863433806761965087190110732819663704263806633692477059796327310621573779185687370578027597580450022143501969655541712495704568929137876353767270497935389606171735484712997779938390304072182911182017748540092888995738331765171443016583303561142916709541918171905344862786028221458916074300925202754413054012850865646741000349566873285533165949594653117883307735821430923622998794267732414159102515941332360144344035323683865499643843228266615666627167745773902611599619358793383039643841886407799915904076172377332740789702737304299234176616407975849245350710876043589445837014706053812324791793025615194088819501886453985128892902443154426377294805091360849353775125020922508801538255676174646931163969349884548819340243615049840001323178704122105117970905149687756341739482763968278165365926866931977857514823546439232605509270750640021379805510762245330110325018685889834956105827361964178928538367021222613506023220313951463959469712223556076629799773394317732908884346645131246399942072206348097187110656580863044083731470127198000091993243521924103316858284418826983612613129926919325357093623713539061633272274164835724079769345814219254269411996954410454664587848915689159961294364044875699076170580464136839673823127765757553470773373794032857888302261261106019681947558576717726856397701796677300546741515745722133195870138189427514541075259937617263825190853534524230929067244638678876537749000738898962687386066090950424858499392524632085919269881431061476483656790839442057912678746050346486696260425251871455873173103716878438168242455830215834045881468656567503212967531461521595062743182145603980252836471262753436375527026520258772613223630433956224172400008474928103003436880214087258394652023818434071349858117725312375773662761669892256644592843975704525003458430914501576096850389084566198172905958317268683298194588904206070932975708303577224789118416568428840569915821769511390505800804319373705445321405336542320080191578393908829155034901984721480516611435007847166891350711737514355020548231678526136764860348369729141972211418165733298736352976574778386193628919827547301407662508479801898998008000730496117212132429104544445704840206738214162242551475517582279560102457445104057168435553020773050424687925758877943087643574608719917242702646336102953539860516002105869058630212931726461167258573874046761217711306724314926065861308427557022955230750725636646258726064563880243212412868709742750540827685876289129107244831309738093553672711375975419673367549421657563285506661974368539358717899605244880691194695693324224988545492349581774624469638123651905314680817497615254228686979403273452392925828824071735406918201417478097740457025792932587095031740860381903142928597441648667522854532353296496969736583210585402979024219510279849980334887555121298327199154074879449902780784496086019083670854565923085528668605227017522819337594390324710990668653737096038992144567431834343552942902329922125378013139065180011602987408998791130235591047685846054083696269576574148702236471619179568649589823262595295774699396561536336755891434042637489501272368232765555298048280748683122315099256211597035472549552840185703050025144533016860211911440057266908966404080707937356411666879638393799611767554557451734349100404834186419973350323269900631581062386534750570090015979270543698226203864858857306702242007840968481311239948070661669311610010784877611159502864209611546182335387192953598693920421262995650840230964298085499038209469431887889326779212523492594030213857376195648120820613011552662718066625910709464091577640010546159602052096760628111800603077330980258557448896542908729561926063295852500788958798801242575847945271556423320517765890446033059828600280423704209236460810537043533758368510671579360343640539075948722398062496923173941578879815461576092236878286997375854732779450912774643925145384794693152204557276084122314221727656345683721573526077875597072521249623085237963737166374122734251326837063796310742134727451607200657530035313854198622369275202034811197936431194226773291003824783556130404370345610074216073695252552309720482959453191744277677267830503366648856403797574435017975852491414699072846773237217073809750624272604980211587454163126905582177406224921602078727014264426592238771859962087608365478929691591938709814412597835053042050452096294958255641543533729109582961802926575353883866795749728129012652174560709491203515082079972600524005580157602714599275048333024775659265984966093384872520967705039296042679259548699669982759326979343330213273408895565439354406839606823961604668088634180506526427553058112668843416579774997108080952157455864365631193630665880302981083216013431367588087883983774192215713180538617647983388725531340392192205190477957339847244402399560957891072447299027782243629650672444242673874781890614395069143345906491483964734805752198080727630759807121866676801542090899412141904066297875002181590116015343746309301557732359590623037244550036971981529877644807952980484684006995500263860445547273043097794504042653313816922493061065687975353196258665188399967799242612105492273251224448800494030702852086504689398714208660898057716367254353899916020628970043610481316175619963610845447463942342217608984926236863489436767795505991686050383125594571784621614716760494345950963162206392398134303341938056086366462197776430171815811051097377508971975939869919680728283870435250593242644595047412301718242398599370217195482946134380492949604584992305012654077461927888031453090195649793053613102497362981925767619458296121881564545194657054963890557957882920544669348432980741914571276169523875940440055398699342417976668236549371765611755437642235421272046779816883068413282566098989033726573689892725626326822413749767295221199847288457687156068884954394467164212892400103759572755310337720743579521317352507867928703719489382539308928279401277551087215744313862660213228978849446841863565820775729234184633847444712723533654243394397853908319657107508038561695606674132363769893550217101706640006590708290782861010922157389354177088880304939158698069304588764434971930806989112939856460619841533892544143296636257673110788308493878096922225410281031904130542878990820178481996797045791536170820329653741837701484005602468726713357696485441253404712580633373999892312577259969149383341694860762149560428360675348861182150527557173573628397692072427942225954958951928948972755640437791308435199769818168690131940962833955039661411320592368360952011653805830307380047974289284838253275086120894570814261924467895165676282574056776212007356075108054773436505719481317389947461838108415868518201049616021733646148476969999734492351980142428321906111859382715728313192655820187841413881727957955754512168840580571254134223878803133316192545368263875087323675283899000314616422372326454082295633041498695113376269326260285039890634234822194834223156266379362842882631001907927265293765079281233209910330245599426266139229120814507171629693766667140088098731682345174342474060984540737900871727091966810952330458179797179486037375789295426577183726784728327383328171240079075694473923192777813056266528259202393157854499263569548421441322791152883376558836071630350068747398984616224517808345973651138613756318700468618171700201300960406238773285648709387418022559321191549042836405907740703905648831618558837483598797896943597441747098506442998846224844376276834776830742396920830476390442485725272235436418963911668834145255366258610282417740390770251195165475251432025986811608968199380322301290798225527576038413092994740913779668131174574785475126106995276542258904185911951480883703289582824163006016166788916250397782024760372479567554956763274533987846263467527938932117799163242307292991405939853256576302788540033733983268730214281432539678309260674887607035292325468271650065940235221939774482528067280877091849755907317276022484593529294905027434901837331938877737303018570542475390432815657260751173470637205681382157383416355598278112510230144623229709711576108758305015618135184683443618960301326712478395884943063015550116859671132654543804904553828177212467475701982948077022191866163921971514988568543445423889086853375120821816136911110276916570182486407350351634772825098401480985924801973504671151071207014194391443983180214719076293309462413339148237877620676221199876185649290388805545269225021583167154765639494384832393286232285283754584138939074405103500923720541044436430909501324798857216461533710924331318023843034940505767584567026453467232754976753732912854235963738676692435016768071124766374962750643421382232345883482753223257800843928426039955311342264081330446117544090658180485694523551694159485640864888665832891440554549162543268955191286989576017072184858878881504195690923041383441735260679802740826811999521655818829890063610787863333069807210113253899629009376463601734247550876222109769692676420677988741208252796157338941800893932475864483748139243378506944080498596578996197755337040185012444232612409545478421411231017223532827983843475895541094563934356277892886872549572019616284028603947343124313021346353589253077890267680900482320561916756051463904806676753556576016567487890027300381805947279416882553761333856279548671314702493682996175946628414778375310581906650381288192362091582652866347016991876496226037231982620980588443657503213941319527810916187818386856439819953372162346337257750082959831864672342474063500748778697281960309630117751783407775106465624223579273863746247340434548763644187521955594632091881386445551259254279165488602631141351499820720155573215959169775373736709031915115403162574864473683754173246367528681813825859231011576312383842971243170079581736882856714478812297905101630398267652734157818185929308698619681868113573199206500840259899592122398000743643939171204276051369489605383808256219945316028037742005487607467976391775243772383193449051007898106531343495397655487618788280210737417909865540301183860056637420529601914777528467759418164463930812173411485516010178513409466494782243503059224200933341025896593525491248272818358121793714875167045246511181910957354879733289853867407343991775483058332603506929863023087462713695007370344430041926740939020966074040720545195587738596118862309751467334178960565820915057446157342300638042734392817222946010996401223787483558847902057795152430382035395622378106151553706265514659345729143483653372681650788115678176121070698139047331097342654058890935818375191417881998200462271098530306694997879693552442149432229671280016218998720917202174675533349407879287460106013832568631365381410005774457645392928968652467726730076668192079439831850583059522157187876628380535528710541617519039353364603533124759063280025995395479964250050701846348469086824296666240814728420941068570278720919362247224631658090774484622405506134457694487879795241549739629291345761471022108971478055437850668614502618070286085828490213743839201374784527715010688756750917190921193642685963906461230782995474219060134929398448932400890961155551302273503114399549261645536598452794619525855386350642360127096541099778284340704642890985679408890564354250416019637414532703452310292279172582215228030887352401390470750564901503844274610729647847666140407663854611237293630176106747807334674503785615729474516123417819117524228236804914784957695167250789989762063383074220389009718148692663004953767344444816359284616123160436407450376746173456029420133716746788346860982286182282071977558827259707705756538645442990749039555578795937388241743115436415754002477068246650483662469234525705012311659350586522175780910394453000138970819504826524137832908126789253501384549107019402249920190310778818749336315926314026181876244154919758997093150564452107884993933219848881186276248227527151913743695545140662024500270820382542328285704101627424538744898877322041206330383253695140785914193453008446919757399090164342746691444743508761943308148776267378114520365895778857166536116317569868799120221348233020498549516307061224076670016949168196438256693777923290141882432573093891317148184667508591827041685632457325327068382818905688277410693803963871306125140599836581510748142385416748674389720609098256496009527067388880876313528934698865191691252393407933056368378398753755095935787164120438989860755939923463341846835310228146685175284958796570424956738173157262703724565277958215923661932999630098037638103151374382726033815595493602734527821799399725768684286593648052919052934353623429085138846187952096389542924492027864275386074083615344206658805017794256248690876928292895478559950871785439699794364716567909826038759095689033232949976194023715003995739970470403178231914696171728112589096120353671207065182191410074939854859897938579521222470125692427460278713235228408086894359420165000081789320581655850037968313852279886275639680466968217911011136646191601093906730064981506911905721096114737250421411317100228167508443029277657458045833975411496429111679588960686958622436380355198531088159649628108303775031264291866360796380686137727271317966808196511620050353579312322775438485909361034973217226950946229200239403220678429859479481262337511539369707430663564547339939294233061487315145780525230977140389474900378089735045931446394553484264577129200439842466691587060259860015668460517246684473998657302982701021037197567917153014209226525700941253759896422937604791959004815490942586553367781903266231017520101180646456004836811379233243730137060574222963644631347273509391954075261132640566358760164450739190724733084984943705006863767056645593716134277618204291833481404956593742058675331346272334955392497420517417740493096266992155527404137449754903574978289422149072677536212259667511252188491045397757660978724471150201403958068602658696709569075903319222713393497115454946207293085659053975737228635951828747478602804537080565959677313689881391239827530376267219865806062248715893713541878297187842815651271002751599593238145477833367317036942700190672358174350601258492426673294082532157553610338920770669010800051304428441364964228269366975578308047364500485428072628363299740042309963558107221734769163763737069600313827825142176210712241705745544053500807050552450288376415912848950027499431349158286651693684316506408997290890834766063289746099535215764679564853889272308801518330103117925743972028846119058338661482986191822270554802384332547156695225550975116583765647695062918670593144912039936373053728144333940593301356974293595272262774904968898035530611500408836169558661121306662796821753725526827187492948939456264248705684452589410982667749936767201935098566933121349884107929857145904979347262301678951935466369140728437919969534737727392046343795701092139115349482158678562285304561303154207357049545316405737209614015697708668384427704008840154291058608142551455697204102114869191586479059739478434716693367948986201810741135427992445988294647441176735950026265344539234409883777278214933712218677313944627646747055098833989481516535469058758941860313319872069176897911509025203191233603142053910487965753679918662218699261370207648542678207986177799104498626667949306733325346801603055835330842943841714664977627752002455000082482523145322911675628031704328369388464110587848898630999201620736709258537303989094827668062485526229423985954593882575778479464968275364020902726213811955456078711494043300894917939553575542544673221161101759969196989452848614358510446955404566844772394427020765935201389308602735865549756346347415208509849437073685687628819343102454702230500763282196803674637612895104341421826963647943725635088439779737389093262121089776033869493988728373422687108464216073439058032969897263269337750926788946534443202431625435237176669734437418228471050344841120257125338541063018662792998049530928967889972145942370496632885571810234600290038085455464167037929690933224818493517343274674478624726577366553207673023975256830765067829764049910423107939043721012639333763675750884089454311290617492076255984219152795730766978296737092140631261013933808357759866070514682154983568229476657204865230004596836437656404118903952522500564602973216981880260920377920630894545942590606306746424427441786846106115623829104505778338851334416992757737676351617374064459035313081277503107727852358965933287992425748054465917252517057993732618184514902765717231584555887643727441931170480993843279307291008807152891972829564218110789693409178051862906912242184359948276470202633320096361993613135718834115686968310732626555082019606837862328995947121691665700202433633983157945008073062861146375649040937793759877996877521196245826373524338553641974299864336673582457767312408514684839999225105626603473962072936793142866654592761703504285275687646894256260438388113825075519642941713051066494144584632103839152777929550621448469076729237342536637076907125685331047018723258944179952402998734570486710445567665854696783627257659852400250752215044273726123348242854285497355045360367200252197878077036062484727819769618829331366452854774275070641472481175721308718800560470095134349665410494926227202948732771637546251705116965865740873567913561820376354827887076579042757228336232545823795524090397418055988095537260449706505375583678857096510970952312819751734856400068149983166690362398568970126685698406983879999964668639701447064868475336358496279441232959853425422521131799812434026747044775984491152894327237771131263965818640333209591093993891625570899827611730672344239972358642242091134874762479102502166166900811957674324936070426500626480879769643714653239752734549308382460653698586470180138161553380236581382830837655137738988552630545566630865473128299354937753045730645359413723283613231035002980988878121969644846466822822077843009830427981481717235526828189453121839520709042155804479187110916096627850314245692088842840842388580789335624159136027398763911884845317760370900841322741018607334362089450936963862628058411251793739113608568974374390705167434398446846628948446937649842064414200372142521573214227378959226749951189985063236739302831979495015620831735579913474569086545509982777637117924878753943090985531414028453264381773566702182036452343823687143320861428525305642311014027213541243822350680306035988133150182853989401181323715541957758769936197393618816510826331751920112993079237256619943465023382261141584667579972073510494812651619826210520801510065584890628167928728276238728329274379800845572292551503865360785969979723883730161062220661568386439824183033979388458950248297846386886364797865124726708039171477773865753193125060668118480727754951101787631067491156000401381965393185612028574838225331735902135424030178534129108107922060329516337572861213218420380027214462151704376371653827907759544356100312748507486997470656527418937634893830791789418956763374306967618069243895783033092386634094184920148763444933406091742311626190688500077127057311713080672080832601784938122088620200062357966544156770221616624265347111199662659739745608139032228204619703784347421315291190648052042324199139619061737544597208421652771547097628013971461485812887591727226619740228900269181428389970925162937405895279763682445177468565430197406287491503783507964887264157934379486707919355085360289260005958920996647154231218335648320304830927391224357406985305628953074731818904922305463650373682452498328902858937054850159128897976862185703435043328900554980067185232111605835507020001135615536300787459669694491802529998052918631534816199164793921461156905597578958158948571772673951041072737775975008230303825694994489347456741118904848118112606373748693530935210304855839096840726407088265593664201875259147221544550997313235452888414806390621526205284471678959623252869406238737383613292459884412615589055415099145246645813429016252990645131054310915601523974626749057105297795443851519188583946958334408055635837616313180794559232715764341422117164934271560427759266674088375322102377345110728217982535254417961973886643581319629719235441487135397543913374524079506376880047332318667427528540319407607258508422911928018866526657285524361110920860553220749721658949507282167265204447312784967211160363702318346055653956186285758693899407336510177091065877766520532458520718316962631160596922912859812963724401234496742400606843460275306375030207080440867780574315188957214502211236424274345278576721012109956247261307528299199612122101728726033124209007420010376828101550954138791814311732102045848892558454289928328398034160567081141471732531616052076364131464522726936987944337419799428051720902216951268509048593580878231388788616165698507503984588872102805105874385656103140040789435296336688866052727363528647200443072436005809452420194774307584985951134670098540153333733315365513878706312521680804823171150819029216709108331469761397716926868880303772204210840895739221487973620156735492433574759695566902362257632553584315080449244994905979472065035013300977642128455798829541292483524223490700935773862262796999600774585313950701544223859113379245597322482446413031382969427125634949124244016662726353999204956159975918865370665780099395007420826721755488824105542843288823523892131982882433112337930148022127117794353218595120025209966212076091081093448068257047033770252853451748519234197963564731459961808277186433253396901458835400460602873678836452049744419071505473890917077665364082633361335321263107566641942476341788512479690166800443828608510099192145775852352188841494830583269047695432575904214883083627052215437102833154696352352155651390901047033520880735252018962536929381865799222769059384869070224007794375481760228744579729424375707187277998609928997172054863663837800026499092918269436485776130125132768121818065487385362284161601372850486170866254924114526600547259140289383753873096265766446140182061395094209292523580529167995836180221965540152670430171913955738892934853514180094460711970729636684217398279067755674480842227836409888534867070882820726971887065259371802239366139019750976230750689330767998690447466382574257848141689365630691795615225758733950660995785959224424566096362368878802988995605013709782562297443973654518563130438982363764980276315325917683973580627811199527430310017063369302538518292371866329234115079021893080742030419703522429621497323112302779712249424846563461703416927490095693810936092058137021921874999929597987968024736131603121896993271068069847952608470198346095651508443063592606715160456944516549249492875453444550904230850812536101824325213014816059924814655606397745856581080115288652345258873431208423980250953269329732801593721955768540488746932507691626983543250077639776890614647375016707677274117739505871907791098759875835556533215804686251857066169335939468781613885174187515318519911210221584932926948558435231101338108834633740146315830811011964786866959661237250506015052570365623296108345692244325525658503435229331918488999044297731802952449778191171485604653547621375858487695616330744174923335194111069187735088854994111582450916713038298683514728011169273560180989721508176108012687141937589332914006117568413947397940314569288705092852170117015112495642572008823387301326213043813536474694871821047733282076879277352836093652446415833760921598194908351222827641826279655098426282348153954389885844988069192431508273236633597163256276988383585584431468751132310896114457062577711860974576490192287577294945813324737927310534993624809644321231119308254205067093713159404802993252571365952358514551631300226493247141338562762938795194121776679269201171840916341420549328209836210492834247212794514651037034161305055106147496745570016579926851694363696216872029027102067438954862551951239039298785487720641932425142829809129946607412176284927264127933572171356501833826628511755060030516176598886807143623960116203366968689899611008794700342894708001993290088005391773463879357877416390130107009183294687708637675431761259313834360250348997512704284893066972546841772124144146887567579059843696006652988780652873001197968916656777896085190755129519000554589338881432290419083451009619616779160595925943202257214257151325377490811393036141985617987997942186119018619231096953874727307094090409205662796061985362585433619635889906394263429987345393116401331416627183485756391435824700146602351308839944326119966744432436845466266848224964018873539783320282467245563503649275870164133303938457959455763071234858547195291972700896197128258030373228841005331296912941046201883042975527356680021413254010546726762318113516374006275018973141667781026451501484581926213741858676752712700347785972625812063931756665294599543708196583860658327435238733684130437727474257742028422585283187512975237945273694447791726286891470536990689493196831870443534500399591256038482942300440617177157776874578526851787149700764728612185701025177604343430388247284692197070490245208851668253392049908846867756666210638808835206379928500411220009653800404148741935573907205166348245874228742517910150903478974062806145108935415830492554914799913446341223815829969147155171957993564700655698279159568366676807351007563498612378531297221993146612938346737392378157980533624427970018017394014167951419081407952943413826321792492833778720075876002482329764264699192811348231162192828962658470745341936396726906893944174895315712506280540506344027496961160103941082420794516900312457605936652990869218171089234007290871787930612635493076337175820880668872638725975014138953914992831216229172549088839110520310159123709374701276527488961987585967034037969003709485920223957676533599172051518063306138603550128476238219181038919845275574804035012875309391794921350708577207937090624219068947629740608144347788554364206781648517170838364362524593112044621192865381677873913841167889072543382779299437913595778112465057118442503459829259144973107640526012188915798607204524127594967690027220206594944641520896102950341095447913329859736631891203628505384305014995890756852094982180994082735895456974047187520870917912573850593093350749206200299620738714174106777231306292599797984021161911332707457757539086357079763972071222443952537408892705498374421907708324699922607796934134880789190894254443466019989455339035775802170670791427507181431381839319095709252378488269372951510259931012439902646746133149609303078311170787010483673313682556195119875508697828996665470019119638221266387087880302403235982902181955080714197861751804864145041166205044984982744211313556888145497887578296511326136093642558642900106841401158497649030921934158100651883493166067967680298567132443781320715417218383110995322204549384811650169367161407022676748934641324604158378091138323310613707010030347924575991587269180013434491528682455037483385916087689783350208777329538867685277999798638073883960021869242815214309165514317438622829721260763321542380239752073309715183670776234915358987495590372176940662675449688751308141358469991949147457160960085823417822332130575949921971212721602006028182514678445254165837048931115445748431531124890526181028991061733484238096670807038995586601485309382184166522657957321238076078913705411323470841056917573871647148469740036875170299681476064259995916332267464274725105023012959646409941230755272338967619217410663598132778870705721139291502864535373616120898243180787299538781952121307491454849851152549550931513399899433887132854376678593173490826323522819455139177597057863111389241486764600058505930568852447149711950316496594831731775968591283364280481847254780306315899957339132751277113793307955203451005964262630213678652553616478057082992508076708341481618362004349193812471911263877846930447886803873065825622340399873731814504129317996739410883082382638493034116886205219051546886413077974480102388358682077902375192334116919908354096833334215351115541889763857517237608833282207273481858484865152596861114681759496716291322440797995260647753394616636793342497731535167801263124447896900452266303062211391860322796397765976333653248482282149231203337178213339930372782099270324258757097018103306977725322661227693761222241069853656277197506972140011237576118821821698970791649647781865908428896698039728475075463929693817932828534437339287663512692650978942770278230920257838278910990427258038159658467621759135359233866158830868516560207012164707254581844850340719166117456283583672307198182337817746946860414948625042417441976960615872710650606100246490034614072110593251343496269398002362103485727681120290201629571392690760129852657534186906971096920894508937210161545821081884465497928357207561791698130331210620925415734609870861436449297193852152055540915063563179774688219858099977387920088717336631853753279009947277217657424155372092259665897951721509833541140976373231159560171023690237897029573941037843188796036962999247224094005620167682431370009601273972097520843867852041346403787963397656397713076466708711166389639075731624644490385920193157932725805506777989672935479729325871071140560684929242604572191179575943945944792253496887444618993949856652067079451916637767163443315739576401494608918782184517246759357095223425451234435725369036005415381692179344607641019395699835879338668627554027536536646403039072588481322949766578634789074495226256688154348021316091803405032908680459903503438248060240183805571378691802924949687299178870880907845200624816101372134612866854366853815019542263699594656392317515755262623329346785102661943282105699378520335348142267756979158124062404582959791860547138773714169866711602220506381786046260102639404450867795408871921696648363745588802775342702429387688433660853069671299898162070531492131091556984724040281163443563301692306604286349003462434151274525080124041831155445920784746555564833113806879156966322700244570668967270450108124405565351745115083813413237464638608781411349703598048967776783169649210070686987364666540956939460910739959228212072101742871294069909124869024203111349894059286296175751475079320262533056924538219796300976352671253582846135321582664153084232269339849462964593683774244162837512310268504096858375960181161184736267720220642117939255227637512327660574283775584927844282458286880475945334950788762108045139574063768728245583993336267835851152529355426149328262650946819994903627696085866411695970678125760345499442593654903627790996731469167607176067853149461735541256332286821983609696702944773707722530762188415975051038196665050008494519095769938423695978614795134028007222338600671864184086440472280852948701836190752024608598866395247507937899689545338797238850423291650657783692273201220174546005033839979711185877124815565625405242070994440063622223633288408129192826390821062183362585465518214289565255339220022517102684439775966372001063395222562440698584596978668843543484205448117213977126597297195401869433924137193058383754613561293549813642747914834399181723393722631513770815071155182656415465593284494245305550505859211126565026612267322128965756004507858724647944301735917146406575856720059109257177357681374563614448074555575407374087871327795067907278702142719634956797037852778605407470863578593603324426903657996743456801821551507355885911728398931289107194871564721751614710643546045082009593524389022064364439133029338238622886368246689185689600968378021816219715529057698702664152406563006547576640877777848691799421427927490349937228014890057069067719352996316092987837634348682367332759217184436578992176294402807777459789969582321358601083046654231451672266697832283104767830243941157815863848465276829456250913199401091590975144064857878048098269799354013186830283732912644977138104797127174838126257964597029529414170355586740188964626162535980716131406961390938116039719810501911486325893456388230122046630719792800156078138466367180136909216518950682800928362318764887353341393046285688778503928521253095844073820374135564114743528017559333243710780252115042608585767584655293403833026184753945297377797620848475171962505983577767151753987984393804314847459209733074525168759950345447717857949425839309112137029935905569317867759288641195220184903733598073115396761095242292113837661974070572548263383799810951748382311777737091364282795637880232532586662230788856900195416293405381167394314704947839265831066553623203775832911864821665352464722576441966715893284282250338815947542013233016729760200615676726771378257547095455036621829179437415793263386737764846807876805554386725211912352059816578608468607686810977563649580824264149664494960005524656446336137675274716508851461403154120481629319937399049018414639351347279197579573590378706332355816503158537101780405267869779035629555635882515652740425840707654873288725264828143826186698811173042466371739259277132538805206131500938304885206558951807337169716823175513907545461119859947316864551952582730218815650589962602236145900825057443605401284667642452906153228467823831063014998967241017739856699721615000174343511928133715483691695345682220424232492154165972892869075208625731643835787453892600024106583119309359419755013566056225885250423108380864912710731818238275320682640493781565004672396832049070623818185558174107064310684855447793755488783901328002372618536222845908746487246834975672149489758736283302145664962666767824750079435420633801038419855382543720067347168120860796223830632085395186560213326402170011771688785647080389572911681231426426409821852824809215491416565097427106521876812076588361352346065502623902766490070236304207384476570524682913979933781855494680669867363769229930086740678178372505638435040194182386488111361182097835085493622089565122736446015926224505229906680866997791980880640721739190088668050139112034171698229325811034735908218777543150984381726653324618095496372959734692683040114105382549451933118950996915909025905548417548791267910391602604247617135609387352464371729942950447725313302740347058940892688433046417236737388216736849077177599965749640269950471557594809038103155710185671990264233350513218483099740438901287495636284627812658842782282681255841667175466292065742592208119460075879222890037316633408579746499110227537684967949661394049388885574120755980317038826266349320430546422548503866702798554493792315024051519376422325879251884341878493767977170675657735227871362902482495594387346878703379617740550092124440511361274189372189829786714756280062130168235470351849047007178889620231532917202078378796528775804042496264105953572920830130708926022194973929752222028044872388390086259190037909754097350207044834837927653383546192814225741088708636402517745783328317693461404532384795860171916049656332933394877262073497954982157684809248535469598442956957767589125247454830444977297567181100460271334592196361732264988272461129119517934233555638876664254451042076339659987844027488802583509430046027405945556847325335706864446317056557611512364561235358164359955683651055174970199284749139720146909269493581232140944622130728189788071121322033737632780630548729748893629728381490768473044339277662307604467344011106975084118985892147039900199529667031232483652501290936268029065383821809840954790447717610201004709422525262766323709365393497040194944582083657458318351424135751212919520314170096045825670814338598397786918874349797837793771594168517929160512968730053279383696036766984973132793508356183942336290800328228299555421861621882223930154150511358966287953397883346663982116409335194554580862923895091880651923127481118894566111528583561821811169173799560153820078125238965461924913218097520780004080185344476035065045795114009705997668389546909730815429302168301176914119508493387725625681737288369915106714511839071498633051672226397049322320109453580878917345129439346199902443320098812436605248607853469264011412684851825428717077472274186721333674888225915289091707702177909605080562306101817355916678559880775915386400502564543136271771252568217989342485010268266904817932799631980387464249329722780768573408832314535096046382874361069568380124373922111667839279993128917089338304693027599679559172583202557139419997240139576912490334264707290062649391487336823197063664833985786060489371582297962557598846438513161228171881137660337198410167374005090085317061480878596007566632075258608434477528480431673375503595759493894415082317578139370825081651132925380166468654263204352749240635117873392063399679467278679579748761323999853680103394363715129280054768609897827985618713125079922227508239655790549573096255380149250087980836856956991557773825334518646213109574529831550227047015882620744438328383415243422501192897889266599307010247536056901443388014650302307250284028055502591347295884467738397705570030401495766196906390614023752393248024589971092651946880609193774628813491483133768377290039968762515995593368603829428282545953297044194187750774908903493452211652527246902422029554745301588595614673517935789741096338852995173665787914302393794188528759052868666243594482476019972445589356416491283502445686240831237982396282785704628773111156179893902818666681183447156210943403621598394967113076688056981229275068910698780911182104752163143129339544979586641969265601309022279414839675880491818828749014609651217677557765640092481606850030380519448996728057788886653061269234829006273500972909445100024900543925868814992458694771755925537790489874133947345644210705226251352391895516286548951948597932357003183765517153543725873547373870856051675892713500142315951097219262586488140321909142924989349315970039315150864084772194583825297681855266167337924174350828417203397631023491643643455701627387317146438189582188540037726789488969228771627645317382236533914961601726881027390210684579388151457347855318990425669642237171801150082588215799444722013764565837001360029329357077062311031162913152723934734045460676015625559897369817149188953213809941090479998888887946810202469677483772333414987105362712041622571125510772245300678031252885893546459806241523376604358254132328290096348553362904097707286590682695080618460337513924592139140555768543816529977204548811590147862465484452806075807635827660862477176989543441063283057635153357991731838673376675755268916015267620500908726149834608478588988824174730397166877652740619283156064801792567711512338570990297721170805045923380416153821797636964323625424070749084919635137652802021523594148701470211699578579573069063108907624244039894585711621002087135037560813112142850385377681483246377181121506287681248344428504968136894502665677826295438047535429587333145053873660721751598830559303241052923518976711059888552760482239877365466693929300763964389511415396405236930515541116049452794464998776646780999927973200235366630081160219610403359168027096840157006948789456798456477587411659044810959036016495127638228969390624090358131301676747629133898556420979883181123779633450434923133414708772352369006462592668918935690828800168699522311791713915915881355687655084613516921688559541605213844824872788932155178428084371030366242463824707284128908077939727562219668412678677528903580155927535109124097235906368230643440576645773250261467246755248801856283493345223638590542761024067636599525525847148120712293496555866894177060822715627272844324550345825112554858894076690675040921340455048261335436831240277250294774047619471330443833438594176730603640935390802254246044597896595280629873472882878169110404881661350066037192214725131822639046648635335716394719291575750812112824361933925612965473974408705381303853612680118408612640570306258434663927052349549257091668695490273375245005348779509803108600212978947563048658834190002281101754187897679820422382987586948040061203249118665046290474157476154037862302945064451741948278997055152243905135533853404109529935192706044081790661220812417119325504219965552544702391428019612307689136918409142544618921733754852244655624143059882694719057827493939174410624779067306516571336092347413614940284547030789296803668358936277130967268570604154934755445552877131323609249023246419057954649583475515128931672838870306327841035498920512774426756443935119084933635198916239851619840892348828306823191949824091986354365179318697575429375714616623955451192072152324714795912674376793530757757482936020022713059794138353827927443774221036729823484980718004736225342992563920665595718435338710678024777914735956162083453034247418622228914851841505293009689714688203567034653354969012678400474842404176651886034475330689351509532072009111561840257594804391929621596387599330204903263747857517486269810152872123562779644638945816571186859080370875825967102577299964651080607160617898251006818832941687904210996405990140430139728653611338335591351616570589869388171905296485445565489109171648915899544168564497064231315323075063356510602738105301374381167886286648316039893412960833631415076736984298526544666574306293529140541774702749797516820893079029026474082854866678567633200642742755936718926468863451053550359362273532733059287616583749417972954018837109666886484552344340490563255254715921746115451456088719136136515311909473271197480759622368128128577202533389541408736687679758591319705517777726506666880650487857487216737735803122587929948600286121462595817805113441774033135978548827088102598904132695656509577311432025614035608112507487362670176880411812724540706717666190537426994994893627950343334041547031538463940614044063642670891115871808698306144405672877991359085279384224232128016890391744216643352341187663384371553278557222225974623628879504478639006321844138326102806624884126771965322655368902361886731089674727455932264158907895308342312120773865033805340587655695194513928319455662417933533256341439241422015996060436469321718203590577328806710847892463355913435176633663366198595418773547039282190718749850296520664052133935324944002180489732247629080265064133603145250592017007918056919652765828153097999508010639364857372649727192459732205733245389293755404812901815276419074542681302606920502559163455709339002462149119959208824634771846273906321072104116735894264978744318994654765244277515614906798400441769798418833186321384867791005139208726313969415663978394374108113025105841679273256895045241247421595483701963857812856851270828458829496594202419090248898411135604763081688508868047129561224041493009608521125123393062485271396123512275417199196253481322644175888246052614293415456263984005620708554594249085805116881469904601574894747937580550772228041182950498629870007057047961006040577173406130778609980291183878935929494243047267845591131218776894994149152316593633686880337215252396333866702221633669928941826880538601230204983320235444123771668584613796026500798154805195879070854587255115522262916370113502670521362421805132404828420184920633185410581219737093815791140051668944099360993796687876613668211679119554672120874875310010025927897794158259588445686031285168183700073460947192304372404137977108180094314015755562645329191496730810409767347089722719234834998584273597607309443971165635084622274544642321648615554863095283347394247416934960958438255171677821879088489598518905853329693233546396046079130561221387068840757992470480940761874931295064110417329655657926704235011952743624463036057264371774576494753590647439532475793235551258019322332088029890831577697936309792828760762932766097912539207476267481732912333272756355498088243827020409730422861249328198085877300014033889949054849814212478619906259750187514556322851685257396965300082767589720209254699856708639061826109241787620270148093846292915493681158220493692352342083826034700274873630941315941872309974316633702028466013403606523907279171110690129978254684403765969356636082740650678518968836459907571912651794941476479008482591931057332039671239328813646207488430405887531684983938498996806940059226636194940931607115487695234417087498813812350228833083138107882586915274324159026423215609230403207071536047818984660300089912838378376863251255325589641293923764886472909567423041080574497556885340766214872453531757400613584141510923247203660781305506484183591511492801370205434491503485112767618430917568966998720569100699173103837460411573637641734958053023893394627259263284233830345063579668888104553337340935636027021538245535650087227137781842589824464316822245958455379573958796998585205133338436572524439983042565299669717074128187425392634476354305813576713856321942828360848182675956106271877295565210585333366598832004523764800419210388451575794414036765178975919661755257167275239208303628052244557782363012853810374540594171062428329343555002680584673380583377176916427083725576331364055092135297841615272265453947606716403294376565182731388127998531900396835581915229070203683836433410521022714539504162764962549044042730481097752987984928006642429586227486943107991324028160752192374001624326598826219767636640034841140982575234034977398072742551443088984111714738849604745940074001925157150462489328616484754879878393763902598378939098041344459273803590707239130324369619232381702443836512758493150494067864503780288476701337107414264436247057751664878647813068691834990278131730539230904008234756772221417082991209446230050765234416862657438168587109974827807168132426094142460557557992527388493846376813119523603651623703600495159814510171371962211610776451919038559623160914828124269798119446532259366673799557953019330395294919816839197092080826762127086504894759687386609452078881916837603029647475904938154096227094435342050583101661804029873451173673337430194368947146017896978899010309530992652031501706192767455418636378768550636310462959815298238051964148895287472723651338957872053595729505452727607895050957657810635124695335567543963029159281290870762437502887330897963455540151863290095512843727799665024591519851205882205534122696384748465643254557660404731439202666737860070119065420782353719613896030921400988327853537362513949915383108541725633451916543344976755200235851475913318415487765283130832587105775542615748950738768240966356605591568048598952000163083457812496792277812241307413705989466628761340023044101421038231477612054568845618898767625316741663428535270813239232603014545524235145671711838829044488126865032840034028461402031255553845379599379614542469639647016611898426200304605499625312917747818759109541162391925056587101510063769813151037372630625647852357629265975892647488731779559269477120437741497756287463078986678614466824390245523996787769491082408667415857510724235310761812368510991644482997487468712567984907524479281323484188866096983542044732979791262091255676582505364889083858690142383023572909550463937254631981091505041364126997570716469446559708926073185524554646585034656248394119811572217755873328321548469505930654444135559193284311204935588843862489960182011563079971353942247603334569840635325398395631488945067823673285396557562562916367218615444474805762123096308530756255175275921116211085413898393789055429520070726843933488477029613583417092033703021870647019180226456592404434774404509685363557014598135048454965138586641811734525071507550181542191440401029806890185841052583341065309457118820035786931292827487756672516979365272886100785530859220576800597419070044753274078331693163952703565455333593379503325918729042219490549654137553106589203525864249153498412610204075998498265139493759183488996355021301694167193484859209346119900975234446774308976245650173187030477646468363037539877603009958847483092191971296723016460943610356176277445802077846964556277967020433777682550704300883498265175751523285880570319399629836459205771666251668977909019091046959939172129948615915065583106714766098112232271628278779825618548647834813354126946542975834816491668581815092058000664351403284299592907382107713688238955242775285231244339113844374552839172267384020022920316368335518627688307226641950347031089322565963604980513202385016265153051099167432624075127362083879472118256557764754146209636361000683427850836562689361270201529727234573589072825423491579561074701790001790534755007040629086946170922829519523597710906129688223145245815857173446727213075475082504531479790817356661083887697090133479638833540229979039348219013238715373147758320297167461541045890236039829350399367022938924536925330056254529070745074874861195856586149267076889947038976815864935240123580613746881089438251521621195468491655468506082546040601215695753995334076185458768553049295924915731137941343598729588244562651763058100673854203513968231164582064440180498963514402685332564603487043039538432942182687462071977114336379397382656147261440320902458170531910160069016425862606347630549793212936965087352220994286973679046598398045481803326122890249504847008821115630199621774395139748557148663621900022701587789782087617292449717877915913323274571551308927423791645102486819182414455956259798352582011923127407490604553252422184356021245222886209876830324334763028358556426249454218575013756488748711593883354568975019392641196334835172433695551949399018304235862261679024131745876297693758205044687651248586148297187053214451122559400087809453039713927391054108248120066560829469089416662180885679423811825142991445730289725749979816837033886350265303755197821508562494007463923216841645465608597661391630815457867195464634690218635050084357190902714032100252018092518719326882480872006804716195968137725687515676190145172974877355980125794840267162859669116139540179135651630100028134284808477457636008792245388964670432235289341718891532299004844009058492205296018234033239390382883885905181854159162765508914004926206470266120094691129207176377567571696882513610654431932904262946237766217086624940955162452696502852337695498516356247926711293457063712781001138161709872069022650764246506727682068628951652256839117027566017228408546032748813265175295771062695455150959305915205159542459767289917576880840414667606977730014843414487657032971868830021208141750724445525071666941167803708251013432409456694675462959480402915588470203764159158513513929227676443209767572765990754917749548551365510848270827144713758487630554935813229235279436531776673506768915430479985129659704630848824217314230877052762883897200129296297696526341585626968986975586076308309183029199098070142594248754352985383052008152994691409218826380995166360770041193839090557505214689937548341298515353126448964055207755153124125465423416116648734459398832400109105026616515737762016738423505371937777483853677654289265749870952023419556454023336189089852334120094930576159228796515045344823554107696905658502349048731364856287750208192229937506878349622043829053252148388539216934876202519124411865147160240912666414431196013685771148587374684300248814436209815908945183948096242764943356300531732237908821644255936741733985614550717584033464202946871203970980489324360940280306049029712519271188523538745353070994831937081909386538340573419705374005338123943059269687903035354805546523200588145636102778551770500860793585969810089941103611483800183820512085659836074183929414879325182338075597903511091874328519399313461515050221775320776132438465373166291555797773808430539569016441077654285054331298974813489540562753203723437441546568122554564679685854942898592892864860956838032224746611476040561332449650127093516743609198494017924406892290565802839024896405273607308411189989073758443526986696456442782185212444851283880473902096192689997023256726266176915896467119978862191959716100055605063649597285419424079928882576259365847837237598309745590296916432902668115574212693767543169938329044435690476209279666952012335147141827499456627802983905998688904586304878912823138428543777345329648862345164066612419273350886242237154313375899651374792983410652655832193440057703139384558762845880611391530442084260747620959913260838215662658676948762955850110504961238812366747234201541374298199260916753634089920220017793993035155519485189601776569944721277233528258589286093839422386788699382188495777354812082967194063233736254655007890524587807068100810143928796498225244193616085642440465851033191635090275832389983604786970108457288012006374425300858013658637294024478704827576900680121465944392248845003382838912963918175881160163974675396941522050733814517780243392825608596499101084817904312612212985742701328630624980335280461858054319582086277817424711941403881728043744815560436627755090484856615273691390926647412578071316717594250563262822380418896092594956220759321541629371313588795068049388340465281396862725893892671654033044878172496271300034281856767238346944863901145996574749980912549892891752717143844586377261408496573326119119298898333263417596128111974492739522574168286246878261195297823240878900471313206728739604367966932793330449012720654156745615350235360680323647956477450409276345933799859158625781978788233568608350126401260489699095131190060168679668523144187201669403199254108539195360792390028306110832615650329888384723035182657592938820455203902447825908364019442151434931041399007139681177513444523671485507933715393248107419732188273158059175986235928846916813343497071975544982332516227742217225697959765145749936780141006071775427314312627301247094867852419648891781884632828615977501411885300032378045808333834621734473977081084076887489719998935970555570354383880749321316330220796431020175202083597471109557230061765828366634086573623736482426758501523063483016214273986490799025545337080906773493112670402905660169028042250838348342961003961583827248648857087846163787145798005925194127859253910669583287666778738752198111765962381708146736284177308615106921923874174263971866377992037361562353108012782989329121230712871091253743254312575222992695170497017250110464304086550522914480507937249401834244553845209604599302831723169581731111244297376189738632687147178619220139169599553812166448746406056191358797014490414367010584811146738440287014717893082188447539351362118090372686381463682126715715227086735171144065752496557527933080350921423756499637046459955877601374529660727061289199774918562798433487702176776490799073446364103355228748951986103513165277984390305465892626795716365743045509428734087658392895750341591778668556010076630402830242037540962376998323160803889645045058466317281999510487030168735424853478905262057574716576300464851203034196790240263024189823492139440978988909480203445006151750239181085849389329234855225781995104062737146861027820874428316684529747731563658998470966150957337528832838814145221650184227306049563079964364330064504055864278698454946833202590177425425344079056445813809391167807203307517431247750951744017188864191281264564381427118418477760693205694321612582757256374195909003955384990207643436899030457393510289707318297892997906100917707508919263540413566595215799242698969970637850585760183992984323389489490829492785324668631195527346329381970155466234626376981069648408329197016092087085013685721352890110566404373744792153524413284978345700510184817724154649557982770976998808027247378452473313110815376897156481051219307511930893312091725866378644599013437041626594525170048243736372188612071170843120355376548729546890136281714762049424326880899460861536721457912357096937999468383564666247683086230609889128684763537257531871374799679463861668523480825750987096401646369572177237708881400499461180822092013334778473522531735198308867334714247174607147516899766392844113140605266726597777779343876144671474626618279784313800653481977421247682007692623984772486076139277289273294580409599992365885576303280682795101814160410688956373512387248538347924198682981887035145606947021645612767746131703940313591171702549036346657792100969255290204592234425983989785736210129157436065907160905412029023056855708650143655607047637845938202987706384499260230321366568850513169278193187670425332235148895702280620608470262165780160071480601846780041258555481783797091202198582200135556045239968140503285432134837911668416189413902212544950491391699587434924149703527586043715074946836426513113783499758375229241499258333877570866114348478268572579140819861607071333538352204558407979200550292312771439270050348415935822125608317211243275238426229959700935456812769670843697207248058782866849668811939428169535914127032678261691415851191928982815143583810174823618990597009978844009711376565611254572023188979974836909551788905665764966590164797432760401993869743674833604063295701598670837622232933151700565411369365344118578447949202400779763962319839569554768040966298977854942823136086121583956005921282128001478518230378388130048194237698124628778199966289864269750273929841113842507595114052197605458148595019553299113375150598663482627436392233615621157208089025576459214763204748788904964953203194910588228114297127309542251251826486604443746425924866560371559953596584980461697982244791649483445579619935338981650454642669797744296572906509347007207688114080711725763052789442654614723901200057260263859604405538378747188724009603845858920470996801034593019119112777330275117145977979734544103076879623464740964244457885584353216257406639928709278036394412924508737734890170005362403058798503275952995126798017031671841552458183993708441042926906893231143040126412515831185613870874428431919054453210571131542531151509787220798234194002115933063862801032844272193270387598894551304995932973692517311926206932416939007111219147081605975747614817968306663542377162887905785754481528442427268256692503736284441922951921425980734314197802903644306832601071588735225795212014132357009099434524043053626865518691436354504763413499978675109074852241838573799062610373564945142767016191817571686877831813832819906616149946798712735407856334831484478029279088492558729735634427642016745268814660928331602797156233952032706590572110944428988722892926959260828308507352772701207060016375556225439372606587597981533501809860274069729230668954043383091016492370484445337977095331776814477901303422839175709752233973795934262949735541926117859269799613622873586679289765931410622674491867042246478160198433480292178783667593865004665150465385729183427284371252996469776923372745353832574580797192639049092146811361932987454010389844479498171229499839049342637221282180954110156981185197673877861234298626253762826446579239601889890450091941062840876323275043789986408206897202607849574911796718536449519327390579973857459157268223768360163738552836917430516711620603058113071574602564827017641944445242350991619278207442417714736356740379163743423642986667724347014685938104122284381596497932909462140421558200249091486365840517823724280664783396848605620761447756803921908107636454548823452619768394127014653969859776060288719641714341365596932414268981915768477296185481093135564702347681730694187019332034227634658275305353517643241456997073680208603121736998652812741572767165804764356600904362654096094929892733821810526891004374778110783807943636631507454864390493721628477021646392340757385906602847657934841710367048825085248276219216196433695451731464968459894320011400309790711853843393395319570126435696143738186604910150267484488461384559913368613579757855496962348014106313294094594081341414400733728832857288119212341107063178976559542076668004042490965840709059656623542525722066697218614237349386853939562913346217378965755266681438561732538063442945639969047738052207657734885429289269408041708717132940061214574434220795354283948040824008145345198109153199606790799954455870296852964500137051977197187874369437333352177672616487891953986187481415683506356050168414858405200862970756419743993285685661202023125252434576614398969549572822871678743881455148584493783366686983987453509251170514217912586979555846659053585016367616015603477963450789394068039811897200536391466879934926928117560011977278027688416498350686866325610530690824582229803665193948834801588076146905946953107472190845206160429093033710143642981368356123194581413653366003657808154270462260333126412420850460172930907984279559532507433253119149433534588329849310051854278949016994691671992274690393477278775105009055761087797340737116339820561756143424359140418981450530384902829616705139460516230394492601128105647238538207718039496776023385232194471761787231662808008845505761524925174020607075929454386502260380599378411222692421721088040896889745769690412591014061888439930100450722765335735142762087483501022216399081428446263409337116682333703217261318162541168818919167505410865551655978135122231255688464401196612224566451376403849871411231692746430035507140300794942588397616627945431796816401438371794825640521236640469085107399385038811672384291208410832166604069750787875305359596601453515857268089170923053030259696764271585293092088927217121310047946202201396900222070737909683840788192943221324515972699071053429242957094833788335577950897594325361681272073381304076047417939929222068181435355944416472709945570104773244305211561070605901639195793262252289585286579791325998362974327903701464404818923171513268080152947434976612812290678223410309463389061347217973138533290553103105614150128284051116912639326578005115817185702148050540028930888455322769800280392945756704522136359487847068372631957617046664272064259925556655556911224262635131282008628940798138555935915587811483805492704940324437536203805701781288098347548660227594132173786869434969639228585552067479108560702841253958314155752771645878003438733107348339349899352997173708454741837426991016869327854119332883255377215305654261760094118625078923445657423694116152735741143883476368222606267432418514296835092553803775394839209137502714421953976200469537310289727652917162340170545989064541084177933795153809682796471214850834011910893097958089882130080831877722026031229827777269804799710179519492061517678937026459464347488751398763953485751792247000209973879336147796385067398189899488354727099904455554969840218846068353777175194903179189183051610143432222236572546808198427491589471667947895758212750262247130681334750517102594197062986954082256811862647552790598142762981769795180729398596669608022222266739422076571405670717574488802851758479887110485850589876083140380331009087222417368736843425416648513476713972738210692523821305499429752946555983981074117055981987458069887985413866023368364399541971433059369154058509894563316788813281735587310299895340971395625508809486957256723685170017671066954409041114601160083122406128200999787213140339887426346601812572924171896877145005642216004357491981374586148462516551084171342444709167020704514299171701347438045890181773476658691084480496800326186296460826687804023266973775367196643548418998102031719642892645073311196452512776875152152911777244317070395194175163967979554678154177352227578317149038025434345873236368422943548863209264568562501859534112178474177084910042735668577733257288523417939723448871760114363207508794488235976576319567089651967138710771754409610460835489007255392972743341807011783815662944302166216440665886877172392649075443753735246412820100659231201033258450957937468019355722413116329992020377560764567797430038284229997936297436974271501755839210998845301168177232963404946983360670726085077015155782078716151099472336324073957116235028205006333322606954073148628732465730909994720080731535767439637647604576746448425542440779923526771613253411482560628974160837158531637226726073387977314976298898093526129526760992241767176485748661015736670871078891604637922632534126654717748960260012339457060057894141640570579304500020682787964520653479915259500352723422242691055463160500000847730122063207205654886575605059303948058374756330417733265541723286509869634263845168395761979411053928945903315875480691178457130182915424172902177724610766798548375075557319615085372567796209207269015318462835927672102920628550016618207908921206501816738285036900489665240416585475506245949328065334116132704092480849800322228584650760473329647890647103028547168674993098327947001110798080659104338881060131761616624026003608687824186957687585900099188197149111328527507712253412053668027441408983567313674728065804771467415460719601707448579199123206327719863111416183805830954112652385999000234275031920027642925962147516552309610666651228225990943481774738367049494697720205783132068404230084436707154038348581176935039174431258093079409478011292394546198697216648042584857265772944661950611093029335553823745752919850671180108010345032522929430365812215390987437501431575917675025371329121036057345738355545413924480486876549805840282935612872530576284284458550843375405845064570152215668239862486954477676718925761834885918334332296393128126603663124756443650452461947196693029442086818271777843881764490260211758085789866569937308483182216061405226692533760092060205471154796025094870213660355007734863763818676115875230080999502564657317740224578310110395320852870704190847945325050975325899160179293074012152510702432151825985401273915313791521471303829630904483168826025059495745793528734606614293202888309366280128072017883077562635238993746861431895352951659989146085320995692574610835084521137408237863786188369227708041162749912032234145304196686875071800553585052358746594996592937734611226314862065660309066199434270410121994893235321963232107221034651026320955205006581399718149289943892934900279875753190453617912475959575175904121249516858538555816240423396673536648663226037298785203275738650058257867176454962746082443889313919073493587666787912884156524844294265846799836610794235851010943940423918521169881604191021609474256832532430938367361498733342234214024833647545024526703248411516988174862517126950721048763991078552845694447591030051485375797780425618272863364875623403774170797941413962353724344583479946503233040426360961639538945204916677576751901029111007782870670108536907832598800636763045980997170005944458865278281937948592956544569345427169750901315163554101735422959675786206593947781228281815010608268437443954459370141902452406421160124993156647761674381598139083529022116167441234493138703157960329050294736792004272844497763708406334181139938459797807284809559792301412345687691961415991510591148926865731221026455232853425911888018387973932892749756461392710125537113555720724420255490371285280376965483553437024639115184191581052029297992457388679532492228079950150703203755063459971934526781369873106473185799477906158084019141013102951295870080384302405286433752895671376489689501079883961503928526662153998029001875742541876944139355848323773968602727006973216426014577811952928871770900426972570187485893676739967741661677655667944596852823176262924636298665447710623010932027397782253178984433857423806772410546007601329284317722949557399122279339195678312173854161453315765630990515777913913938408336249383950001340311321752900536267999441273078848047942685709138857712782094901246572294670789281267569708376934270071153343749462160333222352820095945872424152645494037287404477705145919035580918682159571933588554161582311299009551019767256120744020711416028733222513715656253274180416589121555383475391082227643261993333505798322640023935386208562008076079518460962221252014048374850642634419218851542953259102037490029576076572308871864724947316568821828263536607332166191761176292910782468132603449032151047299966534835692511281135664336490832476698460863032063623140171103920189801087785776620626376967355140915421507927607763715744174003990516024299331132059411199938243820802606839564415025865439761315040273516547547002301739700164859710979213216232337934104601628836342776349556633221565099614034331193228946305877838720229239188390782038053403707723685680854619931073630525790753162183658444381066072367518100708619831914221817301207938786535699140451456547576256076211864002341802311003153597918695914756475372973420562846460084342858742293098540689678918301614275178601889512646445184386043104857675643720156224428107375965082217590183432568586243171948690184722879630653506855661660552623694008429363112309869033342836787935423556019879679765420466630410650382916248969146200122409222638534571887420830195003376442748141463647884744375168884261129894642629947186161154361362083323884473843962985486270193059908836866395330088941054407708889387054261236627582722449672368316631529797117703535145359142725327672499793223138333884266916198619972978541210410015195830673207986958283869556748467055967227441903058445558167710213318546371995142108020677510923341023557433503891032508486937167221655243931328046452794353076816128186009158657200601195376628714235606494615620051216139997370986281145673786984231073266033942322270468558258583264230191557348125088879395296236081208946852774296791325349213168336333716201665273130682529142833754386631040685952564174196065302440075678383747496920044636226386560181623059613326906971671011555927693974581038908039306106380361257907457326662697744568794241102349018099210775976515423192502813701991611674395024665980478638880447577891867756799245488911626081478191384926283572628576864429556342443367711454299000725269994940245509285071281108474177964622218509775701642386673819159320592493355473162506655855115947355060566685344952820257982386636699439855267593441762332162397946444806096350496791019882474683129821010113104253371084336091846404473256349035552643524126389367773487333711498836097103518725024363833194673998240388205583557567912162495506637567857610631287664281419231456734363896831726619336048480157066554897630224512975958634797256575939240567552416067752783153809464448990244082807189944868401003331627231116004584184706427920623294193611230422727567017578086649012559302938903369631395964771566369574316352400992264407962773547563218422047530793080624182200995742170131608280917906405676964676163220630144706448291151736178117659668805155897335630764499356161008065910059194732308188150152837904724789267022058436990917632091302262831518638215487507081921053548948119618602863875677728406144657522262618418517637976566723260841136509335113305059543098579733403495326214399751619989812627295689624365492104007780872705422874208888387846274112746686110559527197515614283573792869959976860783940250122517688758316104324093623618031882377059421110278539647812901539909854972557234445278662702776804636366104562383668203740335662428812696435138054453227150332462244066737792334222437424332459152771763172933706846072073436745719762046557175002113341396453659241470024234060179805988955123725096568347673599488291136526434093793380857699832782788466051069619992262560227751135253324055891242360551985652893538690756179686985224114310219154830049663655947194057332826842109434457318909037569647648116173233935318937836960240647790491397079086169245068210582715790805901676250481563848856522112896477875155794489712352699017084224415046689507418609791020139504677741096906840114954084453755743122328212748181039737853540183337070658003669328422420459680187194999644329475073029316549077794035448227339452292916717078894043069587841522163258741646375331160662130187945776782080662574055158780154726653076443088748119720552593726478808783725140222714099267914244618369409849640356776766976064161005900713398189351103939207150437685591816374459387014869607451931619351817440095932000523167964094970795050682429128612820378859013881138194093581801480920275875651968881351291991907309532268181384554632465859569697606415778075404656147396810032024077353046526697354732652091040669337320541625978347778040675435733741505605965040691207642787686725745125103980642403080739120100285087889010404991785870689047490476431127775620321630920970150909045566156891657789312430354214200245516084154595207024567924424173179664094929205656271614154827895384682788385960920406858288075820082974751800092661887258696161435144303952746353183709112085036633964315304319049643319757763161678987431200528477272312420253056743474887226208707419071686360465306138293795557846259441021495230798457021845122572324899606915531809667011063904502703026165401957199150440100517505787618389711406345927633703461736438066375769458163546530915997816789054162243674282103040178462140382592751951792393959532673893486362203430760088521041485966204729997748229262030552208341046499768218691367936462520683869795779251650986643300270020867546025410328300164222151705069136872481657445178207886088014528110729745989681545330228584050636749914490497022553925922797095281140880469606207158948886982430380007487543466285648481881395859137319597466055657387243003065724816073824301410301938115892930102428832011202184782351234269124841662649894544434912056094104007656501424385026773368129407632278348417200487302392688751704611915541564526968626534555432987903457606667918279774753541952903472388918475500726373184084424757257914867843842951728555501618822928142960359371395805765954174473285867348711860868086344423559715855725900895986822146990601854771031102457534801964518522178792263900735309061123436161805025031347913265799606146284267095581034520282436735461183723813767670984956642064686658778043229646881809263045873397559827430011621843091162408359710067291414987001297288859672151654194327871823384420279665133842830537231367367103130986971835805350845599023142362068153404327780215927284069801171431296143634260646097128542300447326626238143388863430969251205247723496334134669002409656921011501043243250414975757564521853124766261345003980485763643589676581971064870694748095961349605122073517098221247543113225075791613753251622250990483071558323485560917223283871614097657970588862660869356925539762685899162227044367928748932142957413307564929193732226706239385928103812182211054477878365295766966475411912404653564324223109639139667382352466097676607341272681466862156718151648542582567769568042022834668350389027092204453072440165703382652068878187893168802815388790310601499727696886897179933521790253480235895177930956535906362848637711412330151620238107010205535743082467306693853415926921801287500251607859051616175223018168609264224785390434509214414135400545349295070284220430450647448760481881068333999636662697453298020594742581416255223592126514709260497355627593799576049860227566233950187764938582505990636844944745462763304604254924116049206867279593844683885148518730643214829449475706406630792239938206174024901714713459937770564142498479476776488779571184575010528754278858880510363743615681702205918763954479637438909117448513093472132137822571046493227975244186570514976944318519426068544949087452643506498440244517555976202165085648279603257484622841709497912823278312283681051607749249019071816509749824087704744809325226571418062959230801115451415354440048707432075795328672167761954536319281396154898331278080029194796063258257782969620136924866297799535690890885404126080626209297397181980526705244942449527715650051205212240977793839870392969333115111364132295808522469088363322006399206882695229872361562254633733743504363291636803908894308151468299230936774407982461170975913823480944561174776519981954784055998592961137974469475974194535881425513939343287685796858545472715984183036538738520017754879331262485211956670360650547613626556831635655430079084335308846551094166582351720747406117910965333559914158204863768430630593437491775316445284193332080028230350131882628274518536311294052440450714726586777490247731633891254192526378440300742273303680294788119342435003766706252562046786937031515479158205347046892374180455898633138957431631991526416992171989372053176767905124736041366254611870836431853431887763757916931894982816466154870204368035992535211147868870082634457660028881810074433559873896775156130239242975248691559774247659825864061006730568359699463659894974745527125188295628236970547202649660654334593283628347607592594183596258401268521331422503878130671776226682164619633327638209552566181639705613610861439311781944236600093489281946771305240345922530937585135584401486829758444813933070757537373281726863577133773026173390882752398525748084202944366841614955606631434577991227272178478927201642010114714707305917591324409778952782521081811031216735115186313358103196041988525278035652185424006160752997652500080239193742931405356814477648710910347068126497030366243809642262242482589638836976041782471280757708394474442449473595222083004212912626802746311648478996668695647401913323062906503274204390070463505942794593821497444455316573823086082022300076974638628065378259024733889987004248488074554745210782784655997475960288392114189390598448339917809742316614216114623243311760431737988425903150201365642950734362030717950923923441871613699474891502749200199284875824142346256888517246823078720253659685678742441729223525153499066283553300880743552518655854045349050776898820235741085911486347250676842557303131230534939617322145435910387147713094168900442616288009962948982429038141963929219454644568977397465645926716900827749135794501412362841552686661624330714419983556558056846361461787901129871642158860165818789506671415887127274315475794409940469206794571123283760273912892720967721405058383033504297473259307776386735710429190239322946914905200756326156268492521063152980313209670755999793361235017740850645694677169526441506342349139685890700047528115376413601521476093054895816769621355358584275393238988573073176122402955443071407604515007422031450630950475286757578443521410507896703295431812344010012391403841504222538539865599355190034871643189965088867073348557089798102055170041316670457139653415590818634234813997214751439856633630030715098361450926032037507062304346664397902530806281144845272245032129638530444463394776957367327400223418141882857762651625222272514339776365753061353714410056204442221719729780612763103606334629128832658574331442495857964556256308354318177351488326467048039288680950784124399673042123782343845743906953333207869015337388058254566965654017933238016490598662086036236637293975927120940417003063719423707579915711004669109144059155694455687804504708889951506818680910509037506007718124439847782562656940288370106378660824457184290155114891198668231655854447464797713094568433858858607056038905700522020147415149147780877443362362540248417264421322430300693646708259659509090809255581971720198864743212963262798209402060314638284820673513448767899880266204786094140659755046707161381032798226477657783000860557165966069376242913009642464400640160733607361455619895633074395354825881869116500972206733014285139574720665239469977953442123325500819225685396137902903007371784919889682708768648271439314029666235476988409457633071683863444612290642450570141843059491984288353766619238761458044255999769937704459632327289997543970590605338857494811694276240055398728872337096468955200687510422725229253038906014299733484372694391989033486165449339160433462388193208539680326462638617309694017890802741228962229345167066404992115334747770489942590903786422758012471141252511250370088568099683203907524057683235771475470462027273133908094204010030494976832351052924082276244707346769123071573156356931074330119743543561285613777139596306942204915568868317575981295092408392050820540019771400970178306459843713336038697308402381029939284101029484491729215619829097967913771303787847957296757261125393104003240443655176939604401604673644811093471037622592512026695935473631801210001871300500466122727991988760281481887839476293215836511863723099190415938005788331461594155948379952716572830255870134458820051886690225126791199714249922032097667770194664383014854869332347322397082757308026220364538645093346565252434420348803102266485866894523133383390474903424670284028526849633204957847862975304608699542090236842900280712083776749409312044638103872605868551972092210493363855916348632336612379144759589143037282912685207488730168575552604767145450684928691090459369447595448523205908562440569434996942946363037108035553177992498681797586077853131604330412492593453224287150728067813642965761155866183442651747647488453825989996476512000868968360172734019838726031498509867737993839679333681670578781810690791113996721320622329633996140470373272400203652040448189943675272120727090881329737731286007505612633955265866630464802385031527682924134232206673498545097869756120279223659470151063931079843760780273789473168941440177416412816563462651786657361237770973684084153422263593689308409339207363339782984240789989443583332955513366434385734435989415075966584867235078736205903048920514188268778908761266455944319109349719736898576963740652133780288692195802979503438294834707216040892416363115501999185222367901454340862941117735950842199322787770205693038636677369396211426392735850419372764882862729515865827503446744356732229027130030265260844383795959936488408434446421159157620944488566441271168688800072839627016294970370804065066839428917254780997124419859616375815472445165726987554753964667055720696122687162507258591466082833268942413521095064552829843837941082799220084506688064998212063249329414631720784164621299060163630599145376154507774792220518669984658172406279337465315674273171039027821573120707075622864014977383215562673775777241790561141420606602858785068928838168962900533727708798642814963296293801365294444065776865876245533828976260857464973626000736764729837218657056646998302241764326751932134734074315374470564899620732094459828033544500998589401881324799652904291199117071077854621839297389116915234180669627990675330190608387448918515931769997779984359979585186402051130802544126465688505477053277586531575625748301094932640034991597021676233289021435685461162568829523098459382106125577485147341467494969476974134669324564877029827885136659618714265328065507494469369665621534145237486927851977461295397584172280545342477082591251553020934416782016379287375100549872771066646586655462320671142905528731823399973680560844224618231948171591861431813046461801863501322936714558737323330900877230724345962122899649336192811415754686053241319421674067435267065094203172525023647691382681964979434946284642448157269869436217540984250640791662678743885527069625870367917143293767490939559337127636749288233407674786409170702530977822417825366329880673509092331824241581936637289990234775960181848539343981644645538191898402232671679601542827466227597559501924773624642313680450827091882547069400774925290865081112092389675123945084400191598824719144976023125298625880893869110562647845677210951516734682009747831557975370693619831974960385482866540018204664781930256140379278416945812294737666490959022939699028558873406097018678029318035348640246749348132723710192442094805618073155921920166816505684046116297500605894899072710355128093478970832432680086891145848655872769178267737264116834469612290254450763703984866653020696617262312424323220453329736714122590540992532208698854101300633659553543921050517260592217340049486259709521919650513835281401387456460821017563753211717861796877796789258151866994711288784264156830338648983682657382633686295429280963279824848792856180373421119282400216503187305843480958901591617396322372310655875494740851594496265350247137295267389776720790510777772965292660946323581837231324080839752135212125554103839712318169132205554755819253845459387216995495738548666947161692566594608313791798173646344156978333442969450415752879631406291250894964630450240198386879193019096568449146813876052565158839017013585692700202948426722632520793735954559408591032055407349602412231735311591331124337602296519754646339234231297261659071684838537562572368187777392061793439046828523466347558279848675999482301701019145928315628405621570133228760310560100679323292892265916863104295804412667387359481272591096951026677629166192874423515856002802442282737806889814170310391073615662511850234602621226037323753781494752500760924398125592350545555723646905175265490394136618186169265035962459824000517423367457684604840616928828667841680403544709838033468580142614541874100057364708302758351849834590865808432238964170271293219461536919034494981818725661542956106526472564911867610765893934498809520711054090663837869283528756943996133953071785103679405692426951266863269912888664636000497913922618052988203588787666988144446939438832013238245353050666227759533348396810807319217657144185242264228860066402155492051244834787201443781266980032865273125177884800064170840962441954583676575333420255828261989357116273336404294133915156850250363201780059673314147967081150082707278801941060789738246706620459912852650571645818939226135078950376552540051723592425170532034073973827111786532921500112114048704725006932494202857762727271736886098704562586092051196587528499328846314116376711119292761733728866087558732518675358208562164572519013513973401043509717190789264955604495254076323579521050133665262311148512764013485641530915422328009546829019172378933432247721866957190764351757961777968367784266477720240062899509554137715532598130511722537747781347607132314281039758271876338725700805880602718285835142281816141372486514612436831529765918724814016125816837542056636946696547680165604592115381464271574632074011162080842604434121430849036172329462934207886632374716429969783870997426881063262651782615994838320336162028612566914777927171613614225666934991470362475800697353608655578401328610826424574185760424066842852958774352330151130472708241890030706631133610577398993351067238983014332148962728320074642460234444143995018505955288685187694034848721285300857592420781583697880434203736489142069918413176347253054247017521423254279141379203891429466226753762934455266263331036031251668592806148869819635191218734851779787394775840020304735157221011440364299148143084933620870416152246732503709736257856402179034050412875272820667905693187562245401357066154659618638575818401850228856239808846737512601524327536977427680391793973264829561891205623679416336823111985697304779669683292524578957324239365364499399268628783672863784791848794576189627597456685233061657347108668375270718004616922986415015046352492056423772469562426299266801693618172395155943297511908869245240383098592154959017951529405727308537164457448086723835184454703255021377136550350971086770628171397945351917240396651353767436245395805747650688942783745825021287604215014149295912848972084776806897684351007173320997952035068302233679581132953727107516360596530755263659956037148982976515036434154973218332357124226750921106872326068479806297649721817704061160053462194089795369480764510417403529899795130077226896086548297429129460605719824570011407034408958309346610351197565382967282977995953287843297807868508266339604166003284517072593911811049080029846315332952618696448347695462339976671988612585161164389692317756176459448241833368487992445672284341883184494693719442382125717671083232961807969055262537285003681844714202690501674542329759346464886607562266060151680145490356762939459894703624975374350684996462273157158072063343734646199271832484551488795847285683830126629392549536368958558963881893213197173879100137284903181539027992435600813848210666146573234666066341668363472239612175516529507057346356601247477711810179971707635949543766818992781596519044630838068016801641974788999627876989677093874770034355872356021939993301564078009534413974832406213788100973785929314286435345500724013706336986381431425562503488491045390725959591075335445904528886675838257184718726011568690706636609631465682343623298138442679901970201084002359221212698098354441412118818482003803303935035846995302508743838880530072961765969922126297104172397589198663194415345332038297405243688426488031452813135486299456820111449721160378227260255568587152244494758398280267524807733310520310376967357613315424327428407378972601275430227469741916718187769776675740682225186394058663211930022343118415576336937323483691017356831322536640737255969431817745809276349701521518599584233747899861205046887721853041299052969757926536564130601290282548711856478111549660800934117576840016244060024025519232604121185473526246788084071310995763051587037282525091741945684479962659869625050469898024577630410850305185051968830820186481059015862410968275300007102676857910503497307702499327350558424881747055350138781898182878146845608981332338785747720041313763387745878204811784093967409029380012427585191388930761497066357524258714653900028438610119920421745215435728745360457188925094535722354807679175180545535892327631997508546869293384311241986646386557054034276420590448449936818212262467005312584083216679503680735592061819537231476198128594423275220297763731177077214979725178483006050409771488540021466703607012841076568877083878155939458214840009367874544783667962773158653196021283957970100895402613006896675623441095813139588378978190050343030999432216059800161659311821053176978331144814389131102985788499120995951877392470582967615524937541608200757770306250537229253384066006659969016911092277223652557437420776169233016103338570753919021832694232006245899506004507205736106618869380127028484654281525506524007954485986415191452061543829430934278412247559886763514753792077772250425248217388908679612140224164349232700606558701560519033141249631580286923440992513993385941639453017196077690702681874195275181076625338277158219271375774060302710761692038226463128461008654338295922726434992059812395180183822135571068398737439568777438861468609733802694442283894580734630371278206754287804924188972854066703319644561101820213514778681403700124619881972499888824936681219757957501322200707085140541429563650322540185828565252698747351885239718086856877865434277764139569121960201999063820987741792863784745627676632777303067287255342851946779787670553572914903152748693027041172180661380483269918761368471688261442371805422768656415021498914776750289162910197145002662322790598456592273183410019330840166191559072102780715644940115950041021596500528310918875520169481248245662993800893452106959643673774729805255573837999198473483895729282215345008452418087585122884066692475488500101084498828180815689014586461217416334011397089839605925828354495859834636983960936038329796889418017120787948226196929707522242679124335668049209892715787032400417366556300710886887315606768859627848838478259180058072522578791292573189942642828271344977982553654449255761168764532736204454499028749414212649544184340755273974737143606051511546874049113270973526106275375922921085579671021710730899782690230188186688624467726241849746656269392999965889997271878442949696283012788899346405627150744771950040008001172567611241796848375796867895518500826097783438405678182473216527269823962917691640538062091637653496068595513754842041376156946004538092011135817017217508574476654566377824305220388671400348604853352258585541442803552697572225556149878879272961292963121111772581208832334060228999214308576005720942737645071097081551765054162451998838237669646336097673481143096521882652042242711170210386099232780675779347356483551916203699030765603456875212027361606399136979781766980026966896743393675930175394270135730211541037279067152292142925913295051928131953340316155802345575999691161084921651089083174173903034708683170074631250205033998584528630753734836587926340653357096732088849203773520200417223886885518568504433784249652556943451349953165852978664317468213505895721895855410976078478630505631212488674186243652932445757985157308483233781833638069516005582147446537806253197395087518745134569429291128723299399663724462860587144522326128060916368741153754122864875389272703809361553172095173655688804784930215060991810777063897789717441959402510143831264627363631568336155391285110304755494625094691795764126019657576466667770356700915125246662089500554947653054689681487556483343323818212681987655336537107114391198888506338684346161870085996020060801317946437437544876895546329624044913746636880875323741383363619384702944063060350044177964157139672349445516195738793065979984671818364491566792812549750745969647932040095847621080781741858272959580873613708018558579080822571253444271444027903552762763356794514578896131942698091766706253905942281628889922654705998729667990769390241639199849491748295084987139409798788880854063757206292034835243041020215457657412101452531550117652073364934805208596819285656328866481315760245024599165339848157818370107832318095562543804087749951031643487105543424305180541409748384496862721304298149893651599812918742330478019081056042415141026798699632062108679948434616646466287218854387124067794843772658496130347602694015584992885540399872486554745432785172375408718589183161859255646680776295377157725106854990983366837194901084159762123743264766721980773602310581127670822985918098726334275979182687532454228096295989384690192890477988311642927755252209078314473592313101480865563848020798833276200989055809492502207329325050214221163573757070377346127833193398944342493662325937550399429849764826099605208469124151546599987141156696796122167772544902889424272479061449089838799003238147836496195079446801254342556112407229050161325137026837341730522803359011416248740499374576792788636501875989545507453233240438059265490005358571149270556484041486766304870787098819097160791154624234045859947212735877899306133093774539709842908553748756240537963294854562346460287563027923169659941164903201400078518089357529749785432721365371604489187471235430584989355335516252941156971686672768242596796258073066924547968427625719076892638808200732131238603014022338863780641978904261877470552356952735756940397282072495028376408177687299023615051901701151803531408338279804033431184798375782966183735009469592026876416552862702003686479158295686262263103697403225808110446447560590505322540366405297167817183593130206701405056237532286295080283587701634184068864667594809618181001798182343406375765000205502032189257264585513044759056776522264966672112587790281177265909109716604021825438700995953953057188856639683102415527771395266705956194851985368230452793265896361936372048736305992833858434607782439039120168553544907435365965864804145267830604056158016867521033110004832455094241138724796759843667503715685382319798363393579290642094665052559188813159629081337386413416493746480279560003874289914359867392333231430211879157294544944887963800889368865367932452514147596961296781195788287482883939983920191821760111332165665295450860083457602297158611362294043725308760434405300465360011498113524085849579873157214400184167381760188857936418949405535483910969433784071674929552001549889521655907862660485510442246488662450115023335442658228496553029393587341473571259100542347298087627281684498074686089502252085675132074678123551030245482303025217482102738316799241923696856952167874686999046874378451856500048106593043111285127689658645561107829982576055263174269292905456852036275985384872117358757619428916871254686734951427310467355871203410784341418019541030879347568179608114527422638545770862010325519318929172110772840647318029642437724252428446984931530495978690247015890927903932884028255020424333685856567045335312633901689500391491391396790823019375566676560641252912395698525255886763573952699660889999895913384664889072417407255870063723283753314397033225690558970238166306808991944198531584872018355480006438659854224483119702269383559239653311199695940268973318804773216294023179884170012802534922410765974363169172215430324707435308351515890323955378243469654143392713112287348595019934034393483688082144679884855060065101702760978557757743435152903110454849572178984843381333707399834305489558266975127369129942980242042356141513887924194681686169509008301566952487535875805926171557627982380737536233425301637826442656301760741458866264271235325577654647267833055900085372018169651471124091546422338316018265960725343343678400162697256694817663394436264285634326660316119665522242802329954352104359723917513071127544429588744728977880591802970469034737749425160804447720144237929894542778329105884403759726390742596919377268073005510690612116790508321554716420250894929244115568233513046681440443189114522863004969959685142540429379741145118221006544513056873238462739098139265910565275955684964073585863105410247033482390837142790228227764929532514442428250342309143992077952582195994104913562457078856121472672661844267876704703187205337002437618091447645277120685483688192890371842036897205647726945495484142648335412449115525318957962559263989211877789045874586906606538716072168831318778221943660593420453969698826425266811946491708176813186801277803812267686665954995795492686295613979906253684703853051187505484605790216176471909716308631453325822171453413940492666258920655450019751570249684772342336542273443008844078903287671776702804409589544916735870955074552686358223438952467571064780396171021343401846590912297737298422675282125910311023788092212470584782898345364498626452834373023843285447606196055379337006863887326752521766302819494279164331454345158092417119551099542386203026336093334381088116846765221014344893172274301123944447433797951541350154556409053556984164325431024913716250717198397614906304945186309844113412066899396336635677576014472887657686585118678387151245958246286421423407860274036428414962698146140678671553726123379981109328206769849741869997112974444022147908831283953671315615720639531082301782825207794838579432767154966304854167925404951689542115831208164905811306685026365669429057816448179934005535349634584812555286775873467295908056963344069522307242559205213585576191313882111982295014228645881518627319456896851542732045799628012535202818701137567557956788151042021295357691560042971272978517814239097215011043515335592733145979168364034706249439882934992662375099291285610594272196838170757434707650280849293977234361311161735961575530914927796166786579256901013571883968342312763596622392988338764898735774792264554739274988568088739336808011554377585355381120685873173577434904942499058207717765483004774715449681591974194724128948413301915778948875871938774947892082295777708137997109954806764029010011028551318131139622760765052016834186212860635914837032394005916622693273708651119936523027552278732656563887319314971448987638116733928340914457741273428790509328109170889311115848752901711764860607670039350725288936516981626462512967989454556143985052287708958425182677572714850921048199547249818885463723513511096976986885099115839550824702754753464297010356650228112427450856912579914918931025388245509527044201280321976891149763448404122601125502097523962166216485022780456417338567903792528211382042725205249369080438466770461155777650084471752633038483764296691037327354031501186136029781323362123458764241098650399740563425141086111709736300600626585361255511639883738982364597417944459194920770724878642252872004270003295676172093854602733927203615228900556776201443090626018464427458604074968685098834789345670920861542085678588743487792744021853573672704330260322572112041774694664696161911923678331975662370203221200863254288395382299491855746579813464153919958080858157012011927165453217462551009250512429804908903005002253550488828317135603033251729552869470432536569442436915051835464777832030273980276581027038216633213473887002833790914674534745519040574851347638523868171282645344809215982616242516098104685383386572996930971620983941731178355729160221338816262517165282293002896914853254105212113627214199959223976496062277521731005168007557459481933501900879442609233641391516722163425061686367340094527070104241149413657209863896645602023406192408997127161560570626262037529619160147610940606199108593164989306329107050379231683719955709744096211006666070079551415473589801113674330199605318460898387047955659354558581946435368885134201059161245571896250343642044107075118566447547735480734923497480236155405020853517322218598937315617485374560332338616185680789104259445633273707022492438938464922562641628000516776052980828681456737400811471782602544511923971369903724326845363843606531779195269891543557750650472054259819976052325061969236042920390125681425115303634045312297934252229855109059530502264314089389880629407178713185908494710248013651525327196918660103413789490101980713880369873875306868599807938460002899357888000113168166095556406790405633684120557015307684285217300925493169179430052741929446365275967768040485043305548799963429782633862946757441589722563237234563876314039585853720702873602307643922324120142068122810119957085262621993616849309070330926644751195739176743251117827052149977872293841763286301787506127936863456690964718113852863836482541686189743183071290049160238441511783760288101302402723534975187865084989371262399416550036181166936229732225428462277803923455069324064158466089384393690030529689837599118015851468453990038133520690877665307319182788405945532329107607294183169056175356224921161865523803320856059972645478389594175088768651599804873205458669116931725558783156619750377526840468335006968604896228735177294436382184087197157805607706652099310732010454893728353880948173708008099470890158246757816529315081371879148005703586420681083702208315910895205728847220441526429408678247754348784051376666348269264113758953112514622987286613605149179900438637688975665821932274963348765641120196537555218923914854564363312832088390670609968418024113065588442219101502530387339046427407731959188678658900590591245496313247716189449291741589633244567404725964965152085769413335476502579162224103411371801597947135316065303642314373524080172644895938330543048157812812333348171788293467078494659547306781259166777578081369149127005562158820379241969656137781680753589616279867396242939607677657525248984031580573646591141638399763131434803255422816831172888540387387142131397942477928965927640631123634868088970372513434461747193922462502727039500711495544716684115343888159695211473805861578174857358584164660946032615857663605009476175790893582523915044405057625688141104772025387376501975814660900690973269001806404035661178139444969226171565743856022625597950597946076858463948791575069895211825274655946851254131340646986833900188498983865214945022986292433638410130651957522824771578005227135265637527250668928090463265324026074230469824962295116397385989882504675778090466124783542847643840785804495279652082366650453986905187508996873425207252181039002184653204690907065662378173332400074385926009049590389203581340492362842775492823573836212013188228615990828976484945066254572029121653630028470884968255773660734747419266149614913182930938022015896934853339462658359933280611621915820198405597140732147921353298017188428528057173287044767925794385301404141884569429960405574775240451252704182332721014912052581607736511710738911758290702326013691803582089588453498391532145513395756921920086856525799472646856311612635315818331877484540285788819338867695749802548857825385580835719286696693227801373220813857731571350682476815222848137730830905200608389351150763582537267182495150138229041441891278234598992872246212007181921520290277963182660645057612095223207596606028855586625256516327154293540351321753606720772799403505947068351907970438369516395867468463187499887667018667065664978676442869637585720279333907869239258903787497210573186408819891526828501037729216407405578001119411455846926216119848569222660877503013353390408325089664161557713025422088459272295108414787380069681848878053040097336752187117267163963369276031298448569814069010506339353194130685333541504446458483427171117664597950897330199985375351836073526689544997671790295564975078758954346709758952592239554872246894036621614425991987638459059564416659109258406524413779296686615917596522256094951202819850467709109115084710706218460970409611794148052134069006816487728375677191625746896831732749060247251853751473840824027207739668941940660659860331123711301685855010856555145957078862435768405510023629297705423074921711065693287336456286060862343875855309806608238844829703522440630066966836385864470012034500360032260501004529036904055389567427876791786543771020050166641616793474601474198568163235915516755393264065203683540831889735555419600581140228998722209259045581695929676347227253277803734034332805874666949841395476947199077705377674309816587941618227425115832418038825647072849152805159152252066077049063888729148771585668425742865752058578719755765192141689486708754920209735825522090171865332308139276981666263756632010239420892060693810114581455206806397653173188106844029966932769016958613157228746030214362148991361313674046207526426490849771773619289271712118018250745766836088112431846685117972998175854102956104166102349377550188007839238342818093760525804125722568291018482107784739517861871451205408886767508636515084209778795109158135178652090527491123603415887693070070113154121510826159017039756027033213979056474051339703125464100182888856541429335594934972590038887968195720960139937532428853301016152855791683770289738810627982355425174251939500658220322792000211233806974788058361554155208610568511893840161404799319329274928451067408769629757487046648717596117805317717402809998237912328520859651957868965351875318639794674996918160492535108372928579602929480821095984727073127641477493281760106290455771441806354195101585915724748080333287618791962727175881806926363658700474083195458789893477916782333513428147883338280394763352865220116897056735748067507595710628439652863390829650928419093131905122119901419308521809863702517564408693437064895775453394068283969200476944662558352656732851421204994311191041684965768576329813277702384941475974128481255025955711345296092847165428961091261169686767805376489477461358460419692016486711422557447870684874812485046024659301116861705128945907608412501913238676162291715756501268390952861443181053728635048908618559080869239770669841270420471004889987270842424529590580409982905303592188321265139966085731997296751424473914078510751716372895809469460534564953291127205940797749237617622780769102832098784657749368994076438001726050391611937012509691475927804647638794294601069326965446844798323843146489633399569442180930445409540368283434515996585271345846607078184659681168012473481732855836648895586384033630367445314744842114653510280396174736292103079042509812813740349885605180834941949544059856605879199401737970951176764667423925400832415782496820117121645003328690954683884660191743368872318232240273686221009464198686113740188592718923967449180151401854511724004085903271658458855361470077482554654323187328780001030368901146576591000315203267227107831860508467700900107295388733189118473016437858022058540271048155052886004025294616824756045731163687794275194990213444719376676082079957857302406478064057510666479817150770371218937399375562661530018723665319429927936060206043575414337854084130164266324336233865704735382024742811645648424075111574437490497147664188214262407201984674671154025714799904204776428029014911441877280332298474089169100799621435832006610049342743087879619233023154871242564694754361704588381719299815323212031160308238333306046648941237368414706059848554825054549540110952784877813053949452580989224659047664680376805089644095242292183316813911088609134223052036218496952051201202484962150582144241524624054296527540351561790870620747218215456936098791535861685547109794534531214962721837079410333098936170281545658409535843961478372723662056835811374723932766218722335132354360536804628687584181178342566354837632851100679313500515019298828070973336405645821465855177716371379432795139816296084997983939919774871494349427735643019813969598822871951207834132425980538795457629087235745402575606642380160330827088814084023552422692564669970066496975387031557744808004436504271343591764069638838612839477833923759284160620691169905722045218855178534364836192692535674583357503292569081884925896687860312201709208045150819409686372934621029501562127447043850878950064800326486032536614034547793232637792735937553871621688215190066087982627980800516346037433714517210829563022063420779616345744922697542631438339077867048564208032381575839916561798527010227601319995024645334485334681259047997685584835882718080951101077151811006766420590545279675558388203923709210115499741166334325071684697400801630504857036901142491055603136128447047712815929690201110703845176927705363215335453396469306937539349482737164610743800232100450553220725345665617923074378071649867394306452958716045950716297384996316766222100030258440517337851057851036332486292491258757437267850767774227418043150718517686524641460980506732893968998924401422257520728140571828384813351954097016364113196328165243252827384554988783681298069143392428668854230033746697088279346806192849916796207650836205761234385145591350429813948963461024003093194112483259128556154342750326092248034891563051969382855117644872699874019248805801268576392338176067739634520101291762454379491321258832175252669995420350993620884591891152987228774728666569263225562075549511392751448747149108285798176067017401699466830518009617361753155911961274388250653144907137593211922745625720804355615805549238274669849703560816937174564065661494089118358962936817682596373288294954879726108849157603188530725554095649422641169967564894783598169903944923896519456674838538333418439674465383359782787562601486199240067934913663253033011234201509068249657221575911326023816785975640507230895527661429848484763127612835536348453839559244873888284850587126542285699809815638714362554385933941510040799235409499060462747286658310836212561174439917609290536607249133975654067476339653379031660575812027626921423510051082502511213627533532889542099181436340145635396992115649273924316025523006487722912069408317334411717859212888530724636748111014253850400607734377759989799292507158551451329851583856922609625202300288986647057074699705706158429257457302413957236194732813696051388991539916732667866243021152954099791573714963251928618988349560427757919789236890577286647737120877808564924562147297899940916438663661647670828821271213404215691631172149072094434933232793673283812466138057426183461780965746919147718162591421821737274840834888727553007668017727777978319708980687309275218848185819183988664951958285328608790904497644546400417497396346165051759640091527906822550591332993128551747094671405824673176603391623349261883755613787905173364731583757850974438471804311280367335887031994023242457599876849257170754299762435762471029948350214495695306669767226543871373372688583561319160655009775541747424476269997229273075757016613770147980566304844733788429842016287806929465004009508134709504449654747660540367543431571234448202598324868054072636372676439145147489288777386348473622722161917512201518881993933632799571658322098216852847447533352882428724819607927686827924282032980541238667791574747658808591299213196980536007134806017618876927108733297356884661035947320390003386301822020318766380159602348002622654069934544792092815624004924524224904185430475167910865034832015219093220696336689463532980472714574093281940172877695176907334654582639824899651457709483077962167558246799362137558119633344624857251337056241578904684766891724225136858674239155693121523678675288891890232967462090539625805323074085318584696480839942626774047516893977631961491746483188367128098531718966409777015724800312042238543714195893455895180667309847727367783338374268873339729392523774028616971399888555977120800604842069047911853926075676525340530258471809560834377355027652425149791801824068965359559861773437225795000517154983623048052822686229312204342729102483486951292162129484715156053460161973680682716650908824962881764508092013549935681988758015187731752622035485224275228597708848617156967115471246303158315963658819779642952304884919149974230626469908065012925564974815899164282985464623956621794085951841009988259422018172000071911906702920729330042092801493425677398935663344512809081975267488702414993189831169730307095628057344340456669625259864814034985681685106445067774140261553118378460286826183716691644002682289788429996723821829121660411980528514230133132882893812749499466409974676431804400395365900013314146890997219800847948585964472126828970107056293498065432311046556279783964882453631994942706417188176075703783860743309762973842388743480202810941749423346431243120253865405717194388719364017595148845655414659439476128012087506431366608616738663079489815025696701899648257332048405511550296670222236688665203579805125968030821083496373381858753909968598939592081335296952135897070601257714150667223163515198774811200420572453340863009011201147926129326402261394781155938361607938747545961939225450771388258630869928185810772676393954458189443335970047823399439586637256664957599121892943265156349786953432141379592662992545508047110906045917398321858933776278791516339953694176853620668833113931685998200105216219192712070261050946190884204264413416171050840547238555429589442889992655489090906348428194270189725845657507001907704851884134368762571834568233629627389782289450630900988699665807029227126360935165374782980428989759289714813666175362421682288178072596653651071205445272304949662346820639628024049192791326407350311526755654857493351546905165097150962595042907243453702560274621621957262026330429002353066714752824370934421938132850792093550181322360388751228988927188286900620637658261087938577666367809987061239790044024809292743372726069848278343535397527188582295146654630119681154559683868885994848737972391142534082752047427167833457534597067568878360734643847568686215126469022276417707149407195462033457250938396339085051948461335908324706657418438284662846921100636269049701942253396409574868554709060484248500292260737110708199589470330706553700493834773949234887229098243793842758455342866950077805687850187364415914737824725966269081075802880643512577806244789262740027137583361943888497549104023061748966457378972696002152354297210595649426149437902004051428228376285538535832903034871018665327311628946316642423036325668357654218009072078252499006803771339915696725554761248198077902346285131656626696245268514502176227669788115228187322333251273118774942938894917345895008056049943677509562967620751820012718810634425728166173247272619849790093468876562200553224668507115332816809226918765139583894842648242605487615682947217549427828660790699769400235077974271401825347341890659928806069873441495986213522573104564430232425232230139830374181437532728856907952460018461259776384476152339925931197523071980747540168878211396318770798044596755805052768357700486362232371677571878421863133274274441095670798564189757313352386886852982339201697164833012474806965265846872269889737107184487950271543813942832855696856679813754149969656073619424463071272122975836070249141794130376986806503779063982363259133029310091224561490652319956166004292424243332120342417960171382658468551609983011997807248343244889345010023911225858336321535527918290741175768178871590720770268992823817240357766774772334863264785062329536179342719003663961783759212256879087094997197015580123305921182742077101895551830611944279817644593468923395176571845427449711279098759228132723039393673859155910204601778016667522848569883121616553305268625125499085785032328192432962117342290313778824258422140133257253088323152424160687963668961307078982916265602804482352473991734394168174322043886915980178602420249459097352587150448641084496709333992106810265058175805110842642445577874749294316765117148519514807257595057211723872308393292459568227933616162357867366702907368160321736175673125366215829853267235623903356563366370710011560162345113307741564953270416412092226725850045354287312834074180267713004443655334992197418616886843145561531413533225559945321134198128029754735413247252100646796763450639747988388077498915028178918094940860151192740272517264848191773655071214629175772699081051400797927331220699099742266512172405458038655763157488950149577667859545759163590533599691622292957300613205394294270638811122288644726983570988176223859869655066620278342347226917074557319991651157486642618066524360125529490693673881774971253660192682927982957192860721762741153215283140231399758855264437513546008354343994294123809513384448587055645736073500871743835052629296836883944666581681630108631494090369311769897516177664265160459555493696623751127531404792573463111625466396608840403069137635475490624459090480145368969589259269116667393343841264651700185147221986330109485512777199550051903544882977935788887425327578107292852678716622659551948407032256467186688901855043695360444975315078360661947702604989740079897935961737228575297008172164313906376309965405255245708225589663489674912493585469695839900715256237488172980352491100137910457160206093738454469765535193187434769406478380980645782420888814165919201805913926565952693887734271876597293720482896174344766211997931447599492354311038100365184798211941783020468178713945271096617961482324357252386848131632773097305190310091270851969251331617185977561701891391486065513577204198175805825725312929778165149407953327340532877485616328118195889592099339490189552788310336691797016866618769679728433827399200928328881079794457402122918920776262293412675865493601995306656387273108664953724859779664978585243048281541131768092864409295956267655533496407815054669004384272783042156894392179990423112332732426535976428949935391229069851064297894601027039757844431903155137261305094114918651623868010074915381473271535196335558708227906304075592190750495162323114797758354480830996928189001454508431945710171695696696673914789962945835854340299650521831044629709697290762516212374132546712321772731807261514205804886940043815644945125276006179144476801805741889790455538316044526237563654861244722325241318431969042197487389980871206015205223528253557784199939769528740292982194804453991419407379092261157262258788521738218830136498577800493517080488833988464203980446319342220718630591801321816908791814581022650899669456064558711115059311590061765413024707199218734053055116326776933815948445887492534454939558132304898866314755829594751067341767734156405210987426542305227113018347550489936027995472135567423154514874876162405650382712804746588750615827899799014304992655827182277848473524251499954444204833032333297039489256877639357528025319800760511243167912781930799930063438747635623106074054170890740245561604505602254529462297004334151584451889691213005895363815453536246633783498229080779596787305895254867736723576671972209381935708829462848093139548760884485364181263804230652384019325648340905678031109278828913449523255593830925499261593121089165527532507460699241464875390063100778212393023501190554047519287911992511836378348260768930605612942643369864955908518610339132686793227651140523222729673209537163437752876867632719798537961175612648357314475781279077761301854184716847202486482247029664481642136904236397319296539504237325075550951933513956250034460698604877636078595896309055195309877468522666108732453302119163073835805436284910731592943547622046878087452597945373269898360856102027563500257941225872903386134936553763128226803752862325004764587305424797368675867877745586293629193702660301542893151338218729627114828903815826586246182676095931818080504394237557044829962687661464489348917245704257586524477501237485225876888266765262276084896545783804839353323418839846269495783427541574882445117765484931255565686620373257103991235954026691532291358614400009931759050244570095188743043838255045458602146968799596342390068822136126742183329557568520072240465062960376352001673714341546685069105516721672517633946993115468470434006344475665431756851198916441048641982535843584711309558424131884557909144348154238213023996231429483483749532650182531735616062989903141376253915864299833712485622036455341825926103831286086736629112943996895488238857956402178013999216382386173317301651057070457802184383619012231191823480635205562514613268875279436019623736288544751630506541377059161470019902230723705172603928407909721061326653802552952520296304960266110911028717510931689009160179220275752591514816552906278130089545658252967168988977590714406351376244352871140587571646844821211280470854772671649179963706209600732564367438938232744743485467875740301730242318764340545848239058574213643751038099880932601224327133501701933845809210030593543646800621478123416519878770495553106339552661202350363474114522108239033661701434316388827889923633074230310316824861416352512558204735815257385708754225939377869000596940179703288572608642486017632875291652143929039024794278098426474239733255665019810809602339690931511549313333877656569677234076959584054047014723881091293496558584491956584684272851000831617654265813010143591968375655153443788119767855755430461062701661240811172388309248445799595225958623330026002315192034613681422065417305472871446576992823912284329065832303437860939342626345998995118455795844540728569815594064175069525206740444691854106121087814156254743155558120249860248387503787571939982858108990678427370811376639244127369826895109642196864067326114382173422862623863629000743156014438361039273089386140854102401871343013066699443964335948260067890797134096128401194572591129282422077970538716734655885673770486322616036122086991857306239995564248396659585740197364694426340551128035795855046251912073267267252875997430054312730436106981643186173136300861345536778606007403947977250341817490988149006975370963155474045978910736584323670001400859475425142602498721999520044656613011219752704889932806572559108680094038341586763963215311227551600467537496642583396996975821961453684138727184965119481125553162980453195499526028889449324647539840659667109134057611791638293928855852552590281546436031297942554821179220761847889389413763869095270437889943589870122257591509696666743043671331665091802399764867198811392703144584202940999426291071959937642508961431630682571226816942522619430882567581247051442439717818559309491426014274941198037453121472635438503369930551362068119745799104905745844762743897194576093160154218272712234684652942904858879895827556642849297521951861588742893028177390420428731096265455208116855078569921089421409138044380340657133545169289611348225029791391283233631249845965679966928565666412836584309912895127188269300454463328031539800937904903028099799360917702907253527363485178196647963990727273615650706450839921414508395863371145441247320494265741466608619049077745051403584540575295996717506610444577152032290832291051698036871116327261377799423192317724404875837973040022489707301915137490637944508433684537164573577135650909837342716516968802484058627814260985511905091125044250622706300918206872312287359220986210664835023963722143101412638302577572337744867704815525842564249365920353412640453410446647547261653987929128045371087316372972821585646671026702283151809925665616741652064460204059677405011040892163367337851507127359537469384470201933793740191747549642145831238455306420789196174192090170183818872215665067965308258296674193716794502628370592071479836624892163879136197757904509388514754977217048837028136479771184666301437112360374857817424921070750847844540731904644064749334015349530269511891412210386250256157374300632570943931937903345834624787796357953006889631155735706455296707187586524120067385698949552515650153639766256516001872107415086526982074156255125754019672645474672823184957841125271367543848823536661163591106244272064805143953805564160772191147062546052474168722459877384911986918477039691573681421240372624890487647061995906941672654206552985806091177724301922879903464224108896589450750692590879211890691143061473148793145905657798156731392919201982052134788205724734510968851536061128493086518050335914527571711392378283839633022988472647927581541482907125962170948202375217341483740348546917785423523034031723075066255727283603783403092419757301156342537071650774670583035792930320411065153552479926910184519056534762719856798213586892339441231492525198857279997488626729171124490828126736444694527680419735920008963774033076172443260164669171212779675156224700209597479656320511239518191565317469273758466664116595186048281065991395988569086576229533307144885231891044340866506735967995574224066997685825382528860417363477030226587779572537117777560410360844475089759008031713731102231771360752339712307698031345483149853930934258783987723822056914429855979744882678018132904980653637657186849953494127557471733216034693149101714379998459179326625301013237538964379805774705660693508906011845448251905032531922990686705418416872670815662850368862302360040680935492752996998061032055623846244938494347643433377453049333587138780734691363038015621788011964586977148583638187553249516028660236546791237751661180138026502340495973329621602372345123269676463017757319775863687214999652856432074747138902157628318739502607567669575265900570349324875752013395095943030734653110580910555409309934145072932874478947698555818473091979342839313663226109073315870021017129640133358773950430612428190882581277351003821644366824787349111263721625325995148954735282043205300799768105086283385868621227879863982774172654130942458326697400029981342835459101917094838220147936480010077823354193483612224825198669554342412860818811343543547223148499472421149837463902940977923476347638761893153908798739213818136429964960639190370810170622911532186432242234599928567785675963438803770090193787432715846844822979426580187429773061185363939089961072562484072604544608400968302077800669030785632822648906299994315644408470259758249516594993951074543384580064306388901962086945020035497923512184977799396514283531805820853199711879463625662647661623068594492272581236544797972517206938233271505302482107538580908114853940547326165881253886360567895554758939916777436985343700302888828889279351168555075320336328629404068567970873086378505376756092523952805303421740967909683495926067006516122065647838695813362081366956586115047701069793063659734977120100606467119997990394458480546437376852074116440805068330923002924565950362836551963482056527359351165443498841372138970599751052948870277473175952876016020907023621231564660722953613431430528465420786368594649232458465890056699311126264123464207463012335622252649125582832184465101219341829942103568739596905782234589587178255904097233153429538867472248343113480488222591196322660280340311692026079799464533104110717700779113292996459037013047334414481848240054506231285761637183250744156796589652560128776048527824307169165715400241179788892124085096038549249974554909220294616493573370282057220842959736566836556358279988124654312635374791990457319723830734648665802208759199232200392948895392967369629309255335496529423912844364595912797599085437613505194417396959288258165686242878974982334837856142267718971354311329627915030421582943968844097350581558342558043918032393341088121281895220978180304188623644246560814380643163133457818888288694385792578538095956257484182694115678807135256850456964272537964459271218194855765456296905237979671638203237794659790865431357255693702301679588543738910047806850575017154380632014561778755238586206583152767185825837503777984264620389147843918077010335233892387939738968289263467686003410038886228180039054375641362979767317332651033927087670302880973149709715415888509881774878904454972521776068756180111365213584100494669356924701291871638178114412478367890288397749618444531756233073554294358024477372827653776433279203948827246765172031054080453245999134874389962605967030058375030058990149537599578906653736402461790050487035681960388004911702232435612418147029026925594024283495787405249891185343463411760905814780533753540383998811303712122945079197027905365735913491871840281372351087203235099974063388107498848088125680337874343187224784445625173530102817059654742937720015166843553020819127264040001087815497900315553246461184380793474373438087761688166117817692139960698242820856966976365196035226111641015695106865675127303936270296028527317650227507245994133272012136984960319320794774042218722798773336387399097533782779283101291539232057975896153308408813497089476635973936468317497663487395926174091454196976315261168104375798311195315256434035499094048482096769768455688643820312448263044415071696693246932201914228096208001205075212182451296572398223395506059049076424618427873708062008107217488943982278453339314952284770413223982405438948387494532973586993415311030816142191209726228547099620394812839519633973762532672822909088428094867880801260102486609253952632537237330024551101588449583957165362854408538944628991523991392978487383332095186721167146465574298493966726858578597170276638278593972382326793027540170571326498934954645289377925690730471418073624009071642682658117632891109807511570495317676773572359197686586685379196573041364243807438338164459988700740247141903932398019665739076467314548368173419146548439747958351440836680628933401816706289103325246725592069493577564394125408299290534989739701868092131059363931703569408141578361672938883864955623961751579225903569278142341042807605321506816292931933832790922634694172507641824431359240572072327836811979497626400999664669280064482635193613887074384058470800338227252333650215372202136314476628139199231143675945478022278941565575357825609836815508176800432409161105918839227165023893293689365286364311143831747544339765240837051884048537133520142444588786190594643638745474304981578883438177581390808414726080026825369869403818857802866151106924327568225060544342197236947023582054466716556358811823515260303089913571809357047605021508265466780451138816421723286119881813383990731146454526898213164011975265367347720666354917554201988408540798882922773424514057026497924963259503200253333043701049288722085608914913931731518978917012809634203116399107522526784037489241923933945500936533407924578790993940813216620614781611362942416697292812312011596544009130125492290510470644084789208447402247903778313626886571961975802041699752606868200489420573123762225949796492793021263832709685336502305993561427445741295958943070958635140566550104905107729514745148313718861534540872563991293705560555335027606410602787192762458663909991153880276315313004381184099917142602938307598294841715904127227920461841014254004193162880965467814767430039973895684208361340573021924554230468775474984368034125886265939257371749829333931641432362517205792677373041955646752215851325413951591138505666431582825763446217475795512646859167539020866423430272236379120397921729433894044680020234267312750491256838691364151570260770512420448228552898480890103272768639769685140675839193827853119254332667020668841921876578351295799695155529227706287442773032246007229193622513836791158164162963461302641376912593533422172396386484072775972284390528960301118747247681616009394495954426780014471280178189910098208216231332028767579560322811760385649621773864548971591265509600976045968803840777115327359830598548554339050884172083396667357502567655861483806138042536753811176923992133126774017428112502111915866475193195862744766944720925103105374006962695303762483626897563160153344078451536921738305928195136617702239232019082739475520885237159761068801560324039883346352832230625841887831272626046483163896479008362441358326098435525342594112566966381361677950534511630754730588757623852689806318807635018661951360168130489967333883188718116840061182343293457770289627268710999453169830168337931055625395278123372685671035238917477511737882509263486761203939600828347726180121464851017595172354908122300271317004927588716208719653452098742383271183391707844988852270656882557471321058253853261649044146905249989845637927656671916877186835003663554639162219900471202174628161544982774189187319390571650735359419568841059335946294126352011254495800473175629270183672999089886294275797857010728647806490157231578071973116682579182561979370077695664675570122469049435929413730149711711430166297327602754282218242076548150783105563218958838784443428866808084775450159086392882138118642203744672483824825928462906103098227282104293454220090591878852039029771307580966063388567429296529463039123429864021059167906416040100578682366488419717653568751994268071558132205561551507072152717195574602549988584150574130476331156056651275922683974049031661936505504456414155019356801161413731724026556185663884273292061346422840460971669579344425256628308376561091084440577113204079971253622891592684503116866026943043564761865482101896824668999869563966879842139302785028141381510175255879642924976375544794633971028133345907591342300380919254452271549246674828093260125561499917984568955166273869209431949651124585478746992810700493736055977951096859946335979433084479875556797971596598818023528802179087225661621102541096332221832987309548326847662152603355694732345666666089719179612952283107526941819174991100075933314627967442832187210367860373068330786621340188448077843667173996966614976749930611502160162724065566474455641509065927436131792622821375586559906319580727310684564466853140676217309087917914952008497567351624699838424288395363181668715786477236711837218802257271285186983843722389212498895712295991160765731659528198320873374821047591537454175471969826706330951574196942547790888562266665927952510956005963385816107766907713958054117812029720404320924242115246324988602289445268174461457368248080006009476391707480018655871202498799733279650452996275505709189317408513048278034620851984918590940479287340357941048382531082851141282663811783110094298344495573367398256837658073065445661796398803337492861312397299630440790413898361300637951997730523014912714325897667918662278756731881129899692556698948516740537417804700954395404987862855782301556456674648801159707242729371868632561392957343145124739101961225289817510665485652728430988760506612236284439024516706713610541562634469908234439471707317167438298942649306901259477036313293079830757902487724203132403845767104023853677697274288557715499082562765545646721560676222486869522503761420099109365476857157163767464957481383763121457430674124006372543114227455456689185916816007777796183516972503010194275390761101772530042358765730617171119838152011393879916072325277702593360202242640542155530450842463896979521925877607004336022129658205492053499087162472732984963151568306496878384507212131504145790236854349281463477263216655503967383342365427140458908470499108213293253285880058147573135136891442988006711523844072986073564278152458433496777738576651722074432316384507229230403806335934924960418558968775785564372177371057829541859873470015646331388488255311398561667855953975267441062180960335391641050458528709526292153417948252767481840748622659783198278776738202568205283351987245449465635822302026060927249051146177670613013390475238237646427386238648380285900921648612659132737020944908503094945496977829767114020814745710508103640728576069356257688027348987924591276674171255143204202365246592780826326510079222694674102087642639372023066991157459690759255048633032694250160329218206850730951054169714454217941514044630190676900106045535316658794026025057425060231010714597337118313825075777417428775491563487231197786624759533782621912591373485662919432618143228921117463046495762596203364401658614180654058362704024136677729935827981929035520079749364382648827163484363482212004145653889676446600802886253477161454777698351698796381825955214656988350050074775508203427878817937004787770370625955452925761644006061502083216238660192012342419874707368469287817340830949027236581568130333477525779368232900301634458255679764538434246440974298389640684338362708561336924179775172078761754924887137481720193524215335167274992037271308113097481557830789408271826479399169506538518441984697991220967230646532079939600484506875228059133812029754615057996785775522519090212583778714647343343145997462532161717805660765494877786665305700941733822247913460542117562910807200129375025986185517738818680808445319911665925344246522411461516882410026425005451856189129051339020425286958993622513740181507937933208699514739780855887174351099670478725894638606675476710868779411220164538562170899605350970849038319361144613245209124759008296912464375218202642894325862063324462868120118042823072678765008958411323275581473609754444183174007708952279129043877485336047902458648475592287106000357959723613184304721871995695127667872198206116735259378045298718645388055254044449956821703681705844466336466559448311934058142670293890566484449431855267914040099659418900007926735073266867650182268833015012665079695311822514200245955588359751158260320376159537834117652026900818367851766390873730821466128719777269113032970470913155501812511156118508579082418817943142854192595166271734770650037824376558708827927753465554115325213859029300372316645262747155541193053301802894259740887310334302882772201732984184205623140853351144364290468070402499491394497281075753242836686577364960506451115015869007028069569906559676351516909233395133728625465438054030519399572165425831134732211738927176115000304981818228412313947293031050674413143576336199237552901395482812752553400236606295418437861027890616895866212181240881699400901327188515340645494319706755304675711770169356176716537399455050198069764358241517265756263809272009677496981339905174781457317952223280716001206881989504577316589374042010064933228087271751890328385527908416630120325804078990231370588024432427474003732287451710621497143439808369656468943502733140652851055761215693528703514450739151179731785916279191270773636590742605080915044724477608487397831305785465330884035346164091160548055012734903570321773092519974828346724559843809437379704764533211214026732396368124038517142633657532257512124897211085525292360297846112787161064828153579969283288222978841485563999117169525687038199284112536825565398101959234915829483097773764262112221834243105565638703032672285290414174666405061538713831984497796635199123403458255224208152485953460968820290984064784492390975919228190915067955046734543817221813286169954316314713037921999634963189961037863449120791656010633491437647389221327017291007212428679090102594876082243289424331465878904012005952025032112147580855958359434416871396567156539828122052735941100364929241295583927542638634122948688472441795933062248690426418977574150579868759347560606960463666353546265262517619837117954523269336053699477399446882565826585003830480378828038983397363475268563881500520889478494069612631103075756107546961724959314881801570365042106508267834031766129048223168157015239294612162768442171200061186812406133969540125866578146168460480672693883280227274258997307854450034229711503789027177471496187699896092274608086332076953286375848831924557677673081687305373029644724041903712805850585169467061561063902266294611946399159729497959211139776824162052712486960037182064481550530961811916011924309293691759704390538191848809234528376082655642658926222681091929973448463703525473193059263694739833184707732190709285075232349185507143994019314918164457254884742308612780492828614996109022290199875286571853417134398478929369099942539690641777818469569180802521943298779100802484190567381420967571581243265799411716466991742494680862328718843315635211539641550859664229507151928283116503662471165533500723624042147346936824988137494767643182552188331280844131613195025431749092817332330765610482150822703661621017194319533831616703881279103169568240936428899373237726395289248455200253303047360001770947934726014106588201707970558704634926945935526349766174440733270441931673356619183605944165219775351729709810089589859928335202014690115960507923708900224593952252820795843812442782391292534338119806660367271246793593516503597521138784217893115559468035580370563819442127628142134356861581223497245407484481018805546451232069027987059591056979969960927002441414912522841983827949803734469827912266310368062634996189609358690155476921954543491957343056997771404152879631651568067001449337374041975905503339742490560943836704593385813301696198180641865322657506945344735871814580686246468470164543685079284670446161020557783215447020986378927558652283016848708365716832003993081668459106805304745149421244935497124185149882309615392771400384181901975423713703734776835709694838785003718798422236734317594519481171721747988056819376168724858250720055534870613350270406634665301285212611214507057128089210947496011553772007600026337344075763336703378610657499570613846353536444041085632116128884815261252315017567694702360631263633783407913906676701616947962742048391816328703326810701179450017314127297672759777806557388551078132805116456452838281703615574247923498660337519401183289515765961567957916842136947615417629573780912856939008787906944818004293815815719209096818572395721174504662905970515447119481409645437779712618053595237475160621137225940448075015889399945471379439917361282973073087718488244755928925060062453294818146649106541905873984144587175952770488110370523554438673337760620461858048035521202004931091745714041383696144713693028946550081559796551682162500194733021879877305099080946131360546158636248483929679882945554877458269404938902621094051804423060580881344437669028889931425393771579848941335210036764794002505870749645824006633903415088108735001280809995693407946875458716594692484237624219684410018353513271773798512257786207584355007338575751786189294707874218943747711710140561393357851102002513171853193269762351842226865966474396357356714237257847771362407532974348661774723986099689955380894346938652181708357876208695836904991636661781132659917352749916757413716966128286313195327891078900524580026983030289777447818524047944215861775656315710134120245908153296029091969068211803073241276165761650085609952902967773368108564015982251967542852562255876972206042332779406070336288562645471623100693279501071532520411154388317440755790565787090073690140008214402493226275164231741988972419119647734431263844560657869761609474233720966061406154361771834543989888668094973483306798485514623949774684549355128666571981625667615874025955072644511069047179626262465200199184186333702905095103560028651714578889582867209446428808925764713105454397568873615333439905130775234460261714919695538138919186611270212335971153134169452910429325597166152835884667150695727489652527628006469946553791906812056574981108425728679859925791171341647069562370812701754568026721608128210852406542996122566319605935833828986574656568938066891478042265291087854251294750756788173053442193156147292009029895562631750185535657928411039533646132766164721954700369479927704146848579313132849454843272210756905013373555736284343115497915867278942856533340151418981068829406520102346894786652455201683843228773587206049183969451035764852548031450883056050847438845665489593727484057858890577165625118613942231060820097075893946525838979808092628384113641134595353779327194196138237360201376889017561172034102125658461388184275080875956617740328393983817341060980083894961915994646168615541536285405925800857232792126558781223711695248392670941221204147984082753595511965166948713922884708662555352747483189277709313444484719861418036629915172411840379312668820188884361555872715945826082483382338140888502860926643663944451724135589912185170251731656188237607048776269081634634552255183438131256337355363438655102510779106248570105065671326120335036850231446555169333993112707147392926032987043388222322817814699492716952177495401542651774256416848320497822695001431704168037801956776069586158737364755457678029409334012377856820941305619399427674250291076258496817189986497148026917660374443264781956880144398224731879804746733816491337590979453599577877063380776372005305187696021391775117619050063646364089368907433745726555340624951932528036527889839250653943305454396023350547579970117280038850421851493617195890678608404454729425881541953253179110435714989971958221767378570618680086908544033312318902643042496475749829401696740447312467278462674987360031394332578082088395866235567628240921834877904722506339478436502343935048786524135858005758430795616679508202623302943438459552925103427129353387633407277515256046821660093088772114166469218342375331531815316871649134528848893467360482785248782693047396753210858107849903038119860483249696218205927156270722548298794805153984468794972718598156784815725137487257749941611970313707459720710770231310023781221904959543543157010331555910503089798960965384391010389472923273501260448972395309069880776440596521694221075452677257095297461151707558676347438750468476461961088273361952199341445696881944468076206076880441796006420326029640179017936628967666665042095614068426851136852226614667256405888705471733402024417874482081515342386354696599964575843087923288635616415898688006180122542640361325012665003976727075089424473503779021043570160497682027405387995793496544368099091497368370885463704268332686249254843094697195643701110605753207608744738967691062401699845346025860535267031890241668593150262295186903873098659096854202971585502452451376715908630115150338219423861765645406556986130197535707134290411603642994920869082756601336423831357689451238385239995535019724773162666411065786019669502876756537954766015548168100713808951596939905723496487327073952956793685690503078229333861848301454826261048621354426979000318084327866089439520289324772711929504166576450851462803674953856887757438030549787722528934329192945332851936887712467924411896745595939895186363055607520789771250291294063489174314214654086827441864646246251719180139011844334186708458356177173712516939281726817388255063779451906955686315792153714839152881692060323552945745692869787493483633565697210190320125861665813630631673375084679047922443750158599009934411472619939995113435556455946942902164809063530750369490977313451511008464812030092039743466300425052896847938163063644361553136180102131225376610448445835322189857812983305304748807112326486853865179180195132304681100180383527561737522589464925730886149597322754509135967804309708150656055398945032843896353544575030110743392802293822195073940202311009301312395148901622129263186890392016680150091848126123262171154351091638772354042620185610942581810650238028231496872979458186873187400535531087356938282528183237511802313325215524599150243398521755586713704393396013608800896117953141128004874300814009763159259655193219354193692056475914777683169798906102196279487743498109889554465146961884554481136805270772013611648832954998806426764518700938802801617581373032763418052688485904931938631777738794788304527262171644559638032604854408986693249689178491143713794143555548214258909623247535200049398643310959689547571512097848787089555175082654877947020570125011431266153181653434261431406172471717724911034828100828385206633780433824219222614465257238667771136534912857921842031868148835714453566639148300286723602388179144389844494955759785951235865180829401981908247586270974039427626374755139083835059420730991572691992361845765090404429720459849015342414491181437798189836696571043381617730536358055684745845603210367505568894649419814020316392454838559066773315865427617624153835261131795709683498312222136506146072109799299748547611929710665380168779465312347366640497476712334813149181152575155114363387551676796916620356143043980954815197458071052348607294799299574664032103808264024527921306052418497806258242158930069538620495086557189998016172076492298899680322070962304563920501579950729010948573919274941126798221522230706011809710276588263740175231490299472715071372766201634826762562892918532503979526011310298593166489870117977264139526878009040737908945569467561374024189417504548786019321738505073535660330613690127083252587579964709129702657886561153379438883135694779268162944984770414022261889172072609583336835800787994563765877577157226995408801933392376596025823905940150946081676778039637149784671031094186414557617589354272021809421034245385328864631362283672904924441817382961035267599959266796548891879195585670880204876732715009649339855445853743252975004825807368077415216999669999777240106479661529266429857368035505073797518921038342223193837715960597751839467097458755725686141940459749036327603028125357589175372778426169670867270444882140027025048937938027037074584056428255084159511379825215913396310824739571194820947039843075079281578431604834257949151199215872234204295178662865450442248259837162621652507569346462940056723842264980989547704041984793783447421349139420428917770021607730514991855599580429443329513782797096072091044513134020269481308409847743969920933369075673249264359892399672611111311765981826669405505691410587867977986060706901789140474954219289664512935684156449173902176558312938423111224757503737579514820941429118833407987979744122445692988149046131700779654080173031973658765760367353367663049280358414819097806372669866543896516255413499256856484719675528763962968579857498194560849253634736729266239994927878036278396547226476098236833694831135893764490197809406410439716707934713803175342199705729408204057910811550157995780424599662950431279181564505536735293008765676380662272319305069050675054250461657336163386886687653664542742078130312902460163766682261815916853729513283540689242039978358221472316183895809016130785683666218019837874380463066203624916084721786852815162543899261225423253775209000005345408522001712617032159130070881530782084485010410670481602394898479844763088694475474151979337206868862404710331458312815285346719705114415083909154990433957605869969383288905554575277400075083862632368920634277613554559985026014967301565506217450727530783714941493475200977675282468153588182752058389125100825927837496143023523839344865967020039383061097846627224116366031346179419375520037746975728794786549951606381413167544948377170211747807829121453338597846255123474116428046668339502485760553017492344903352877068585010130267624120262088719524110787181723135915127029698226130006829406571701524805640352131159095392037097747680343653853696408471065647525352627477588414724556753843276227873131688044646131446822363135922278496977505462426564366185538845572485831193744288284148699438662799357537506376448951136929840778428961334803927370190617396156103668011234385721417039877958523569509066334522120896702768169078087791036255285944195457726749800559523185979293273366321995332966202265385095379048024888871764809773186502507823594293818225650657087071194525184352206676952573029940248043942308838154111943058919594388214922328287711833422335918157496824970192600806341276362851812979864707008606161808852905575421640076188951559816315138230296892339717634597307915556993797530737148396824162083609743710171820044772206241815470084710955918380778568644089034793016915978993390690545430643126571193713841480125594950685691278948121864951546305333569093608177191492545296077672469267741529572003814482784114315316797151520406132689701774431451936897151568144968472284278792576685227800282228267628273551038215186756764067075903345797764631244721610370857819799592641653132124089149555715072274520306104277456130700737574281799475194281122110146046256204446514299080630768446288351563033644626575336477126118730706520211942281249702929858441892000694471987032449512296732461913806305534494453361907329542078148016855342896296409710324066155643133356405952077484959638909426219334670013237344247928478776204357488873817937910225206904180670989590733892373264981847961216479726427329599333789602429324193229452948449923125375022878858950694769026453297579365915272669758389427656908384626302863691138486331426628291479495054754221890649524020186949930145437687437757026657150904061012797806727913292912366145954853990506317207770927817586279264599967359323054254609759090509068779824628860136144957728081370113977247985128102320526426293990867643870273040001517047243869435604088768937965312913335027418584019161055565566946920701745291584381361906959122634030509433013929856206868484256174538999026169816810763931089701090050018186487655000968656111771133339681954757499982232483787615913601355806897959997171490750320819834798142280207096193627436030834173596117984391637263301296499293934678790856773298828940006490898840811109126539394737616200080188615016140281494395077577461103312400363353587086546288332055678676826356783953551742077444672308844815137401595332747655797412466404287753463400768741342091916593310938158582959130877981577832321511935148472794081947714310674422451429574160331950857787241977898323146133987951774957976157941839193668589243900036541357270370059136167540982895356651696306583773461799087007378515389950708820419354914220983811003124560453220430847429301422472566616274256263410334185619530683687871282652774059007300135063620416926957836585059681131104523453796913116155981789635888303181072712220172152215994728188536803444203558983749164545904044245825662531228217493988588217020160695460376592630182658537304662700738870672066153050873542029379116629358918778241527925531440704195257434547021142952446598758915508758436937057822136764225153878413008580761028355174439756346276835652080186517238301192816140395409768659151850228506985928553084741916028205812713112638517996194148376871093064137882814090815373002058029875248162121248781130969008769366253569922986783751682449504513632235665167196827543310841248141449658607804101045621403823100462721016783000954889149461770469695298265336399045409271857459268607845184714539529901737602866654664369119033468163116392275065824407013042706188304263360564284790137452960930544391147579440913845648812934268810237007830349854807060361818014944341657248000154313854650231576662766686846442842255571961218749290983062533217927140616554328713412594621146176600344874480646068050411954489161450842651099886674691570015049773553651702009675179917322100380262950924132811910056266636957907013525338966555106973686527059372714695460134304942394174059193221519594094961185425166649965267858387602673025016158161560850275528485630577591379545892461419006497886123329632099972806438781533009121129580060232991696407233418714850606916131997824380670402721109599743135667681398029350460436599847400229355027775279100358171610671150949667849474048504340567903850615772472016178599634155210291268234081523000547471851960488602741464074041987588854703554927677144828947200728214249359348462842372867397273861949637175373367273380660196296344441647224007704376759554855298451141050479306869580379160145779685910214907699838731516154663697657210283407518047119106082444749994862536215969877178706998813906846584656144483911760790347969281384889948890796683046842941375830371969573320348284725421333173637048953232027344417481496179348635865099741965868674625707961884530595457359159726960241625777537306050168307266822183643468233620235319507801028918770582915955246464217943502201953890563041943274113167447370397464556575315860371744108450495034912696090863909825052069612170556981033346853126321528637996303479772790987011861874176709892174009016402652712952723189628730187604778476588539939287777479506048553221475008076137120743006750040674246863793217724954812220220057244718308350764186900829642565325819222437511826663738508204351234179691092371890113518760432735725390706769623314242194947363721883959076865328432495543859949877932266203531484466263825602095069304083539820443914844613326869935499855339328150876944606049091485508467412442405843524330623033062570461994615385937552149299930433528842440265275828780614680086591111870604653051633003771312750942536639488808784654482479779407347909962340569460615945212776522254159074884249381098657673634111261084658498286170419211360370922519081136835540750961353924176008505424051732913177924647351826057729832345556771791979024425937326732608478048463754030508925021952644105505206366744619662505481389362367687939150337309807368326412394132375492264103778204962101456827720470594358384869471138048421107868052979846014780048576742471214525575903092544565924155693747895196981529835207225598002338232016022053933676228507889354662059374734124937278358274503806158958750871811935807601280263966181272519235646662963124284647845213028102160561745800046627180832754864603857412985146618638103256212885456345102341771802702269802015811244083511397833165468973101849256380782432518661426546274640149361481762468288719500931381483023044388242622517087992544321436799109485729002990287034083553170486714199339717221304483773663283875845502890145134168754392844091683462284541992480653582393455348601483194341590379795324527917792959410023607395189555525266559851145537946952899939104069663756098027395463495279354249470625433460848570105027295036585104790124021216843136172942115219792109046074681957609806846232366706093467848284142802945622387177131100003784028690575991925351616975982778155188952859727734284866267062136368502398447222083238508510460621329220642820485558657218309214610775705461356348818094905740361913286669867392006251836727606974455725694280425982269025226624095016918849041726154388098068642915628105426879095157472767514615445146578562232814984034316977004233644360540796748235679945294189885236105301043129477897368559703930828284902474338969861141569028566402634841370503310176856116562308909427440159108495773364153858603499308083065432470224473501568467335290293963744425890609663659987274624380245629290953558838861754616523768981787988585446137028031022849907584170037745638170087018180664571102610874654449200632955430328842557302886232158196605136764296641973940769754110098752377805848662806009802376819598858207777106512025580766377748033138426320663385894569837465111272455782574814742495308549192190749669137085287377767450741634186925115910306671250600336170842959166792998595823498779307595334269917150181623572881389327387246055755174113096060575151762809382134799647401039819186174088345147942824195506872832765525688051425375956338826714382664358817984566057556805096577974356104457876752262220213939925182288366198502749949288192476163857791624008132022533299700284478537682784853048650163915786076463827278040879628900432193319262150862024579560987207534436319965137108302652079548042375633793999510113118825920181873403338778153676937190042786115446312565015260311784322356236722626204325208327462246668522617218962758353515137416255967637612961727970962767544771783722371998642822904558438256306538293517196488135655613707314803730455246320069805703232041907711805695102389562274517231023672565282309519492954092282192012380865798170699132106849246119083602766091020540538373477474516387698573206915371521220596035410363972009333104995910851591830380643675377582434549587694965114480883026043319436175698260185074520068901729206943146414723364420090824146437966978299276780837295845664497337305119385126702715928556543120336064960501684824253770327800917428779091163051520908936437417221694687570754890859865740945278239243524040023032922590903467000889467380529991543955393191589836223796211978969159466341699053776575775276399180554713149642104487478042397103820074543703879094924948760975399435315602040763818588340293701116809343854394816332837002866185290274343542626489141939245868909986052538485562493420873080992159018774590313379331337998100620786584363405311634316807943555589954447224365236221205917971710510829355061956597462671528426616436336424534297037545938801326376467488933517480675792005509071705449412737030944203440692308777004974218179854537599426854655575852033830849730203575306489777947261862416469911048745489681863782186283549564927852956944614720671867016495340399611384053336724097871888258358500829118850134991377051619933515849438847642152820309052405669896468427824174866717686330911237207609076464476598299016326834510438107620109426385039198954393146623891242350866748116469464553555372443124764007809666785067906565950484039193411177940248731324446332804318548268349193954292447936794472638644344372988674418021794216136315653625387426194044711173373477016406006050719775822432008094885344124918442940406065797068595909026667376755037174428724282033236597229839867096538576979973078185160495857199568359541704131288001686986060477320554822649045284416826030811781610679844248843578507389319530965494539492943963710895148394740201180379855980292504685006068719878043820317330717351192170497496999521837209285033399378653563283149897374118266290173068798392120585714636273134092584226751771300905086527056099291538038867540958026908479508998610794236209535040731182049477118785146459635149629536975373644158727346958951099195268919196729455785068444980746466145043385302916921258677386756936475557070334708617449831440953074618115332666675535080459374251913351276686173657615203474863046687242739939113379295507373074105484506170883581670426026495055132762979250471858485551989554637520381269976497637329998541303284980149509397968307835639262739802895759484207275575618446561906276029704081163369673670701582458336250207558326134635955499630061841196630342774188836880065035067747747444960258038631558164591235618401495788195475609905460202510990936845388600645391931478164407658674655274340290449624306102525276811677361087456888576856151729643534080922914708515542891095019014094600928428702073664082479504796955146363148171944120928986842109963144724127962893720562855508613767097883159512352159524577745648808676041172695595785106285749371981577753137619322849775584521565695735805827352843778786889245957300096274306949241726185245795414981196027364448225225338980032906068535034596726952087457095138483798729363778215130971789701963246601252699226532356037377993898621512979173643458195813928984254665422951449981364707675485299827567009808618215257701804251711314521888831020939230245908068164288416368424046688364025900060017037561266707421682637841636882443961042470983871175796335735593855326690561777002844375054893189401689128716076726649407911464845076446860855342016186382289740708017369486775156195117989418759927504330400464116661313783266906939532028000908403164292894829025043936519268953785732743985496043995646637600823067579878813850858085033862013613507889313922936861917899786365628320793927978758870698194207081493739581485989302763595065204258769854048955721032456090811926956193366060417169619883174598389617348776254227098801258004418189746186667387227742125246236012844168618843836370144564505492416319875214512049462402996733368538460024482313572026755048948280173670768404351688200275030939440751270939707144986153324166672695967957263668516701494801504714871920551983416325216705285145035532708847150625881807912830274329629997022693169654775281776127118681645943756293404063267611058446763942347710595163883321632446088583916148961257880838626638842456401706401397106955343060573113340960804658755406112420280593029803382246200147569222457725448839860358334317449299161913635381985147237154863412241626545408291611847337245923466541498889557043700733064516418881322659841810701794936102747254494303471964860674951071849227687579775344956665384579421264860095373869049953523828976459141509855229045557502782074087431090183326281680847574332416558646000437526895482481517421044639128715206217285467639612026775738333670354288693692635277004212144560717017048859692407735641652111947002727714431777528934390197139030705305793595614925205964703026056532528419622006973190780898170130267451501697260418080072937458198166276171558245002505966801455447650150644216273745506739695819250292950166813836327993982603097889961564738234647234936712509436719770144704464191978600972293528865656950403683174640826929667114028768209443153162769070722230888769022088195214246077580316581685745316775107560627768768108300432025917020840386083400218929579047687878612173325464872167856256975302489286467845933400476080648972558275542661551809597166565941278012415522279831354020829548054050302298987261917184742709917072021469605659506446343189675819304019445092242561495716352840847385050135522942351184129254760274530799603400016022973758170736764698319082291995526238457873967897459984514249936186840360768770642993667450862699238774640569043213836706817757861504449903126787912505755064664036888059974112126531946580763737030235901886984526754795487007346128001242735918085157063784766495375706894931295622187254758636309363214822630201685942057008601342470827699200305637583864699541470087861537122006007779333536785306967394111074440483983806348564338834217949335545279786227827158177495332194763827379128680430063054608776607791595599009906714361936748055445778962818990951633430204203719831930071289840864752959343674831949656633860704499909253933995392279509503014582476472740715303082417475628163217001605015967285179100667206081134156200953982589290733808639919750370746134327227087902714581153261637177898998379633954800015003156076354840848448763511284751641375895366967726168786065046341336316212498733777766492888508140404237367793138926813718427815059735243247168386663606144898091830166784681814728875934448430137075593068030046490338888384191240062249054294706369603045010305530530698440631093154565226519381129261375210905551326552897698263588591580114869611079835703015677840026592625178645125216442965386907690417911100052631136262878919631913940402825061574854305014018565802198919736445293330437424933528458620788497193617085917632425382480712251949649300522146254621816950910192578446504405287712374618484915536211319429745374130567782300336747470862756621624227251613979341521977864650991897901901631132457437290867945653135683921753302253180703076550882754915106084662696047031247941269210653823097995063143537094673249797987808106395321856573064393595061607827087844751311339997503860674309100282820015713059824664754016920094613347179389911648648086673272180778723018512631952912124727642243056765176300525272395276919566983369436027622593835501841018777321905696181772038818518448114932999665165457475722956896688032432829094201554476673288208523389044124138574806662191572224894153954703221584229392951780101295024433015213008208370477681824345106983515077806357239283141234300923977596711406049138992714412300306105264443853626178619488669704730316942431413297845875070465171670476786473943746048706548051270899672696841989414936573193418121116371169576369677376644871440167039911046922127531252450436983241789205931212411909419600505837325693189426207258567826774768546693981550687911261820014434161765908078706408983908581657379175442882619815265513002606315889356012961761520429111978942133603349566379506691969389302651580798384626023554693141934364669946173644193444099966937079486675985003563994737959890574136325564760676157751637681701542789548349701692404366676943856793380363080582940818181102959978674201234134746901830709017836349767621405696735416929055810639965363017282032301332607100131594708452759480795575513906556621005973284470081873363994820789776324848776430477441473612712059301758064879255889972629239971964870102144403935557835858413197048305157297205755396193847561925259116276613260275409038894641746216339699237581190282431305168545461610593484120309187641349689273218347405710597225331813529335075594082684946665849418049163481716013696669240519560941191417725452089907301222270521016018109314871661306682750833584840637049610809575779189785440164744784408915425424003534678105421577007466910398008512308905404879263450594176624861478971281111204603064876824408863789157879963823267902175452004269641258697402806588501922146961402371133107301990166511099488379974578436607753393320743628259195465879673220888091271198853196221122236043693069079068785873782983646414252195692091238242889451173322930497898712796987300601846372045577462846672965396955963413608246451870585681909158484594756173129828420903777524080548602983857169755976930619556856901950913177052916971038893454124874597423749987156459593441302924969003788609119425996680258591214274345036009011249122733766732144527396910408223077100669264904768755427398377628713642644943352454952645041811505656811398113975028857821495216035152538275756922966226338931126920832080355608755742256293989813344043606514114505699845581821715511085217669498742065678042886913526716286986415386482727895499832149567480207117522351781875004934810242586938654699659289854547843329118464527610680659905248870859901294036630426126382278245748569383241336323365139995619538927399998548804252529735246538927028817051833878581867283086585734658778566591429436183574379529733408289603803417293131686606769672109988088348910898751620166995857095890537604418214323411209342213746622829382943254915737009012624111877638830737006165536068839591753905755510869562009895959517588597406552553468463533074117210059984395768464550584899522953186793003101331371845308773736650381622729409435630861979313333228532032412296590005865268189645295796786390056908706698868062353450192624691647954125930822054637069503318514677552516906601184913705259011253955697458920355522646802190168664087042545387609888354537600628807490336840580378867680421899794280790079562659305634379024143341230950199264455539022712752954165533438763560669300959781714814935142431353701011341803716858148070149157964535071408276496131292274187907544662189157762203042652734778184457756251696873213678162458269594490593186474402363565492594406609250374536876600756322303186827383157615577856210067203869516596759262301650927042251528704019851074371460870314052174843512037231851094963470789848197946280199045608017400179373199748630447993784458471606324687544549184388874265168639045768494425369421750032386477210291999837542885307239335748130843213056423114385383646377921529140923431340617560823164067217116953831489029490051099724926755821045003430991754677984153346434345252361030899427164847786842510628993656118747425015974120598000839899025953933290395602070980151217181573915404778106810207515804964786161949363348496726045816747018053776208079948099958471841176907656178348167619333459847776095733093441948035742315497538296831942321556033843873149030154060445879829446786397212323497473026414222850932858497728074848236723128883552724461164450586653547235870825318630565691476291322635855714093681512136009409509239538585046408713133601634786593383619689010418839859895769066241713477229780119841138744386438860109686868948708304174307268692516915364061948830667543898671038291981815603329465187081251670395942641531982499864597962412479702853284714736948370861836077394297626071989250281670377222165115782266179331975983375299188369555925107483468552316633747287308492204071729796158657486460603089280862274935271257130562565113603423630460759100428021372015823845163555429677845922159035261405986535109530254280547988798191003637162174535401803611318161147025647544047658284099021976094471115347700748150252528258052049590559150142387957847779204458486144920118420985223836392233039784690207670009047701218334298225142825073987105358101796374335556329025972240499907021004534624463641170041194194017140652492759361076467724826454146449003963436919069810646626062667055826313265549928099102385339450590284321240702895127647612609540146623018827917466869601869169432287432742897762387246371457584956579125218648541181958947407835751500698029669334980218626037948892605533701864519060549788537335446896405706553991393504125471041321130085147047136661127603747335710358101207695329140937389044455614413500039614511148934128766707195218455670176860376938843184820847438807598201954138625388126350519638749750536208833569450649524049243368633544951875239847868562989064079668283170973610123218456457678740128757275103593488768103245829594885569158196907244103113875033114179340990232059415381421545990879326078171321990307034008808076737332435453076391702775016912914786361663230571558623786162110166147991642398712432292709537239578412631262138450732154005895778104475724076832897721179555894310010329094022770875546932609893253450581642190586579912446538282235446073865892648744427805120427384148976924063734305327587869930887624445579396188955139520173084535133116272588982655924394459454492203164686889037830507954405101414617502704697623436881895013440403123062146671517803983958879204730831446323234678953220524988743557259460965926443044712901545888716621489671724138128324019378902315766672132765587388540204687669106084044980919386355832536776337257704606921572332272894246149704970327551886887078394675139192182343029779131325154417807097805089035642679119404406900318776351578998588517836897279579067482709154654854780073303780646127137171860396963091272236784680828434575264140741869385575403079564553963964164158461009703162403473571301136624656959874716437913618737548545142528706044811075683057289958405315675555317944543798100209046726206194456889391504795684558057738990588714441277652626076278850581760257826442428243715593204778202800304594445144779753720474574272042379316831893348291137755003162835064656030012893828252040898375202302523504544620071351742915831289157138723188322566179529807391195060475833024992208145907403605248678584402100885594777867990812421331521933427181631150475919215754952448610406194502872166470591610262074628300856567014420951258246717257264824884337974427155318201772948686109357389444117900266467515050440776887186292218095011446170193711133323165371982057623059571452920662066910902059049784983688377383466784661474522687541240023924132264454793507346316673903506766334583365857395698464325345154707651517327790591513532542184656594855545041263691344820717432873639610905313453155434279868946605279207140918828248593481262782688087893984404764575351177615134432668846996332104073163689118176566787402920069330576825493228488774524802724392805966367509553026279947697437590879406004023081938611461173863043119502227864348585892639976213168537621447222990843907840336118947042212069940116555347911584571574321708074432267712931549234149082790099940038641125851492419179452805526250455434118286794487476089055447665215059360658404764575834601941926721138176813059763776815230262433092007477919769407144850335825185989883911798923619656232947945886615430205558208092306703048279541703777658663866271668281030950814573030202723917958596876337126455519881349016575191711581542924220087237324916822494808412118387906069731577007126680273548527378495961680888367793345538603668502755851534255479183118634770428843917582774587158464237857903765603658426014986119255490253748633759572714570082532763939536428674979087270872515016046780932845059997897066470449706201878074390071491671256917773231471473822867158618187583149214776951627975871680186139649459990248052989450620498573606656982709004811590397346820631964443713579524084878877199748551640503947606806584711022817359389969507330691601808732831065583533414103127421815922942024546772722963990897961127350914340320797022124802136955527119968467668665604788478550224894396669661868909849956667664775528401764336822031926030781471808399992117436330032372725228223138988148806441292176660879172760366346252417481234876738436855850064336827134750978184754359302961282397663735053649787426909164384978697326361290158655656586063225525762375338994943667266387164926463700591501145659011567202799551159519762314075639792199535811952368004314134315419822208749551630609547079095385963841542608054515056809446689231268877078284298852437567896604462872864010042300531730071933426011874157524454060418356876500050878145045508841057591639368999191198159092172278260365038234598695890083226203956444890416100928461199188618852516151190164550137522260308491497441347245604286868162925487338893041868720347667889671696705394117881201819767821164849396507425709086345359054055891366801037094286466813899770903286743260021797963618749615899020976764856100044139139925123496317565365880503140011082191901619973508288143802581829221971508328980431655158257976402165370347639005702649109930721164912459549482261223762496967091816684908456962424591067445207266346789570924854128668091548954647392177711240236586568385012536278721524670411049475296363957789269120020932340763691879999977367807418660681244924894571599345797367109542767367894233404485350502111022647407059211060251969742515523878803899125104673522351643511673311463439953121599348589238310178075345555473195360665661418263931975833203880097767880355466553576663913719780464428291752089487138586049201047741831847821419680911684850404674214192616922049733424868112765451263058167700478543139744793139635609746985148755312457558228764242735167175921889306233537604580803084683524035056195112087752373943274306335194765259639706870971987076762502690916141143087750058479124551169043329456158840764364649144232395968047042731851994851513644161731395207489735254682023867901547856773606470830130039471355725827091778076112593649574597942247501344338261644542775848307602168192872204698071596966517672599790494465484588558218311856190435737974534574076717852317583472813746722479047527215882238120951978243602576039254753084922039022749909116997934643413274260149014819854359357364203945180576378916853555988243095056570788078076211222110263510782543322955154956049238363501220386846371101559979298151593720828035483349138669148008121993387954740595403119128568040943794604572096801240509029048077254678544648315576527480813396344971514064804859978008013235747118931160045937537529089991894089823944266972037813312030669684898592838190356386945344389272741161933993376268251586038877226159242566310600943761815734528314726674172845514710004868010991422569908468418273601129340867637210182898542445356767984177100831899957260277503531477982641103095666552846969403495360198835948454925226969490963919827589144700762514583678092373830436170898659338537882125488623138044329960536248303386517124848221388629419006266099658921182145768131159931388110943776990497125317538813652708311154698083201174865077975874178222159081741416254648619037179471907639028448534357717990437239501236072670199641032700229440282045867842680547647806731973363609260743464247210882527366482129880096806645240195709861870359625475665825480250084113425963703443712747342801816386519743604795256615576399127922474613749229879054717444341362252812291709490261266727876597153988309802846587512038270567646190265626834335209550893591722368215199157925276701587032074929321745454838481197852065518669081168002910308190063520527737141453470253943838679128065639321178696682271426304820785245080294862887694169851748695933275847208481858434381574321096023188777127916644101382891953022148766368639763130290202039870762227597617109447518245193670344327093020154230184603283577818900593567684259782646273210307919352055291604447815070366862533411739406108009355247652622460096482761941583113087976440074987013460501096993451845457717355453377508417158856993768528162556261832973316260622997865304453245637077536348367770097429831271308178672959152841382374088265109300998025237131065902602558333431540694302975260499625555200663306695788955179923198722146048050029147354011808336544070764711657823943423350452020079713722973166923659666845151127380427569681528409646036474495193726533484222782660448715694947875736733083548784850989546948519950179495738492536471509760972218243058333565663173534970527282877977265545304349384322225870695025736880120739489343785675364471030892391846397143702373090903516925403597053935242995287588914292095591172397392380671630452249015926060558076864787075982371990644829999449223927019455123120574892922205800233122990052042030578075176444034974774812913810706813688944860249608288728194663207626550391915974084498808726481085873604712398363992468160162512340048902808825724771139374559680026522066637634224451030938250278173776807964407444859910242878421647319984069014665280762294713811902309913458141684118318013645200760408359693152943472687674171033972890246243264353269463697552130856212361863071360761447091669324498902433700400471061094492146656575514870453463670781418727425237767005745446881752840452609719012270106719482603325312498923275890639205211273000035324107117987280846851132887965377198283765769299908303641550365905961124658512085966152025549444879577063482474698812222254299612462197160474119162554882945447979631429842865007812633720951365616150835861651495562168865752000002644319065602882703046326915299082034480334794472300625135235634103802446234140503627659806479375414720182749776883401453762227535125929090991594806815483671231692065523945016966092679577977446275395332823348230473035553006151474803104503025323126284535296566408540331109209886204442430861456030039479118528143152118764061337570802126886368280122817330569353140860244051232014911887108543325565776267977584440708848377533509082431326367267141369340003328348032648681444715759670640011044631656517967659438477873499904833399178394854980554468894960793471981033375136683753544484020751535311298311619855925551406427457529691476972469650786243599482370511145449498027630845336797579781286570785465727807659043712496480508758677952128176695292424056332158286298703859746520967908364841011204201210231180195067630541463822745115634181525007687520799012902204120501717230291843564872525873928643245513002608075813075245738420439406115322399985190733096625525597712361289474528004388634528065607310642622520160948277447793206745212506223854024402161063091344353459586819838456113626413311517319648908522520096560034947853597236002613275186354479798361216166457682410723066535928349926243341409349854449703405892078384997043787855478105197544844051012228700811513808923750302126648933455602262446509779993328374669396890098642290969775207326713241842339904095436984102054760002188048923244422927568717668525890559612668924474665406145933240507790149886846065615665300249560321000327102668117627599887731932922686578739556973660795574352431298325507343406385040514834228844222675098076392360034279295211584003810831082063621251733862937476757324585340859992233025903263213332920284095769843722119191891019888961204104350867309908313277836281212807007383290654606283853231006803062450785407909362956609321152627439785138136307264715803246973230097076652739659924348606513649161167606499110066565746662692939336250713508189599342072191009928089270691290995013400728307508126128521188452178334490306897099986156741792626362496735436610633350682857937839657126445063586516293139508068007695214544138236138379323856425951248025067378328026574342851994902957229491161411903415228410138936572226294896312623728480848747522275874698166756824481701136817759568132937459800903733329722780039157972944968172257207837428684283351780517565954096974630679147704852956549548074479854631592016983620094450268297735340959613374357970708136671483911628080782438265950711971351442928419874976159205879644099629443909193946760415530060581305271982746485141807640877575340803563350548096955727157651737803989621989972204725735519299983164732984266780531974067655123530682244254332651721085370658437896866510212387217723987263180723112200982626629022753450241881200720457574939696464541770627984212965788884208710658872850187497091488655743494607613997990738952006916799157542041478935206246599693469017117440226416270137485831899709973292432276225038797265541808564926745068425904016311909883526615528235904617814294065734675508730525128545708575994415804415375587256723615667773736898832419493386915324154625731236680956647651476500517994238688759931546011192492754990762163088413103983720792762385909371162043717918742691317309270558583341299124057173983732163568667030068200321383348793952824738360983473559887368995441423642466728830633208214859810263393156655481797472930240445699138326576733128761021115444336194032214758959929292926508399190322686524080744271885401545023074575157000512485015336820427585293750963527820675336079258841504734156731082085407699731310550405062185792441617343633249674511170913170994720886512473758381314327165398783525390172845269427500878557597352469136615320002145367300121787605085361404648930619597967337745726774502502975051634830861565853334136410001330000188725178078809916527830849577918518694505451652754685696266250633242263965077444182018657243572164105077832740323650630079809153394505154713387790040761745481276434804376890282889179067311212499279863063897427641184176866265988235867961878737115732301104993409390651648281952957866928562067582346409518195472081241800026696863191182884110200514588035974764190242574827134081455436659254676929559234318360297434546001489230911569086575235219565629766500352118308157693615293023672491934135609086070479697492664981794658748221904254200502364034495141577965721029724547123939961751575915193708110205386025997413293783760347228954278104401590544305647541281215323209291118740129792851188598775083888039130066879328429947157211970862976282732998026104417262699585883850636521373469521484190927697951961907269786740965469451849943440723159949390623291785302146275963990201219314789681131731496810068238766036060212253091742894881392752747471798504157457362122474348687958072780959456709721701925327218762636104377155563536541203537995218451836172635005704651800281013236044301759802723833967623869258717579295868495725189493724934571715257549517392930756471670782800469864010621430248194750315175717293971938213505547822989832121892874910029626265751251729465988661936340466577208447769864310183846454840714613122637227646099668715478949902418756172312577660032157059441864887703550524326176471735901554907213660973255811143364086175621478063427476101420813242709793703375446307971363877480864420635618044208964667198090747810484216812310113896257477519295569813240017498465456444187487184903742723660264289449559323698060566623392981760928633697923762427003524018424982767218538091027141268384145102815265371453876374206416912530636756907912209973550459620124151516954438137693920518581829896504829131425181141175599345859655089569279963495878595390652738505649738720239808488681279616865324257384276415010304185114135326664816114346999533978161096570027618653492843651135650590875464172183720517505796205000769605167152117864319539279983655954103839943487258089800095797330859454267076039985175103206875176868098782908662269690035579449951906120928449828898455213214425212957637181050771043018243952870603108764748037135774289051511136366752818606264870476413362304690729193758745976101057430015529176524166138879304598145723945546104795236205320160285441845967622843270278137672833965401986970399786357232929092478166317098596919815410660165037147150035564067484722157074057352046134209565339728232940221643857608008805566366397823725732307796372290978170135058166988692494400590542470307818554477699926216516357758573802302734381536464630716271538623586202220812743055047847115817813227762487970042853717972536873117982152985832192375339810941098084782178208450582650127126627845990208120145225573676132920534069268905834118309720357038355385073865994906766528284957517391054194158890935849037809060901981474653174443061624275411201456856746411913745068200597783283754814728542329826584379691784383776443585244142773390386891507815713350717071530068861880060247966100080091076068035884287100806441782303759356255207004827434789001287133832924123698091354748564185827311029682284703416534715655423680611074457653000879028133343627958759185861781956678624258304659747003160679757966618628535085478152905485419577117457773846218449881951503042031459460270702728850154883134766242209360998708908473849325658925393301361550972499730004524257504580459378387757096277797000159178258663216237605996423182452886545709625803236062535639828833147600091975240561051394830105938314257568347402651369344984532829461796101829844554292169059447096127203019447460687931115543127526478965545174622497134088493241301963343697129808312841497088110167334889431440716184481796259724365510532737954065394899415586766423348436962318550053819671208291806839119644426369812474756723553755199462177084333117903909880569590930122436842215641033370976869089317485354027042420541577385239503786224337094586160734176178516073863148441880938994444011811075504254585704483764953318167403193080420713565085074636063890484076146765747632596930205340571595864267426816056992945642126618666696759674263882196249406842391096272184358092114334463197606141442679869405450250904668712576359390696967103245421878824591725084501045632290243397989609637152020183474970550420819813267849015290508917033232463327973813726008354668466757801077150737293729436689189105368383206497187004883012172262516964929580332642822084398262970774719247537421736134280770777003770049397335783231538847437415888040327505703176276157421842114340897202304703325061274799393296878560574336111935876361671279355410613292291010136273575897041578585113948043666722576990783602242687475202737687914045602263229636187401961135064208470743717082673160419025765587072403683985219842147023504419520154902037435467663394698414099224216531372194800087261194772461622398177476797063097108524577389521477416653486194116931993320149517592623357522716479908990797304600796929086663071922613981845916464544500802131132107358339345399632796227073521060052374062508159291643039136394566280946802008903736322149678245833525060968402397176711154991655356110481022562669052044998596945398331492216500407405790048769349933058794670483995007074024515186841066874975602706580919417714271388814766693524461645460504174885872852939715035334810006087722384483332477110859665153422263358721477359388529508564256933910390059436677730039595678636644974350829866298778462358769432396533899570675433537857478403099904393114800732510033997224803606774916840072724368354821226295673940360260965039169292046869295257757112019593229857348986016376594310316905886325508193833134609216078613641323094818210768934572842245596086941648210901304432622865154197698918570109071575778402999360100617091878516029440251452687356228641525428461679965011939384343220780923869073791252043507373591416080899856314364033618871101737731381815200516331817300543777889306396421895448694086864159189634438708547422227828441476281939109521390276714256704580148099502841466951377691997728855705666229039257419843273146992160580684953885669050558354324308953795396759720223898773597140993215196553672134883344271462031597434735347592977221969591423606844913882031969984974763755172196877905372713592568888704860518364553184656720835389559726492038302699588034676716509972071495047283033982365280397924843478222135764278580884106698798675183419848530252678611364738273114058205612607993626127884660890640988797291591992408091581829628884146538821915240224657667192348663878390152631652269176052899952830864748156432315800506825580246023959166422078222098865478334074925902644272916800627327966635392676517862751890917304919802626909374237962795112461567382894803350700614738675422281042465987922919355069352454603186440066809024226921283419954083681793107455041650345410006085387512159080917420740596590944308588500007009729224895158999597733479078056065039390688875083012314730711663820259165048286096819627891588447092991743039812330797179497034626975879190349276324167756727437397349007379501355478833251558643211710230654146356474946017893692094524419258914877196150042466254696060473383473914512856023869365115096912621238356727361390774914670811783957534146049889083469428413074033242309453467467908711384337359713907511553491296814285351928033251926832576498415148712013311197318734897471680433719298811170859528679956278141902309298081645555054886129252269748982639611452193584143539370357138525196736636948124328351779044782862515731764018182063769475843507084928364315950108110846341232399696495138924261783952578877897251761824331279710411044351876922829701858156606844508673612351180673066886363533098003762344501481050167158557092813550198388053015640099200283558711714135817892274609899455177472925582367004814801301402637904620679568773508892519460255229283402812725771579496768258844462025806217905990071818347399159561780487421217976990388490591343310279164370816435095718150442710275041819853866133207084948174159263494567355079500862479617495926878650430025643282686106144397749730898843036309839297420094598453559542921325960273199082426104638654876200366729733837706912534549679612237719239576150101940504958580527836784399688783075219524042869255471756019257171945621749944640303819807493299484136938148618613997891185922064969327622437762044423529064985128907331660110182086288449052486950293062571500652612894640809944438209642271852381533565618454074668193740541396183512144304931341837893336894335834880530645472392618425129698218564383998958663668288729249117534328259507383193654959410211297388459879342514812319458572927691390451010653612104305369957403360395890933209495899167608840396653131102692687209621737330497313873477018819930272604086589600129991092773413937151693898767925840996808750688133132031417882345915629667142579707845800040308439758093990553332383595217227299292996965026237229534783317936145292432606548591640392853212150205541075454434427736987297273894952538688048557527680583503525377026838116026993712355021278358085021262821389769932070619611605693821127572338213863972396685550098367400215401008453162184450443269123726940463272823370204289549626303953448950249815249417083425119114758383631728762767920252194822812058878247050344653574068518268437628422645588203082058407227750486996577228333515865023285430277105975116102734863514291153566013022739671288406836058188552180521039302544034349935657894827288870685626875603305577526945254754740784825899005269119985696553609238254837271223678431287778420412162995824252364376575649416217877483541851297749552495759602343459228417337672735492838504481513654604975156771484805452931492042716611059262254420607186965181044331967469946273874763937123895711933112233273881742546990209352428488053069359191883452504557775834727587542704093993309154100803363106746104120636043254384795256053218804651140357236036196234822287703433681471530959344668015404512411502878209527601067796721800543843828691765365806098082705048131495659230843097085614385530151675250737796484278939445145269864396839963153019410875581440275818000033927394401761952928591585516698372075390741767471529959786964760922542333958080282070642203796086004199176836576950487309178101353353689845444893611667638140916260485297622219543636793854154189519143240003639961715540678965765854370028659175737353610598693350422773656620192504184933303829613963601601332152563032745016223563351081804727194078045192145891261325034457377526395738810317710441976656534733511293480055831142706241283556385434532357804734844248974937257360353414855629310165064507684310115675303400260347616270330303403381609950011067424163446565503767494759547059513445903444396776899269606673199954771473608366205456473281442152156425331446258885491641223176438770494045031198407073337750020686018079515089697554472790952587682677846969523510322554277858793085635015276668005784781906149037809001085242409401902613027387599256068577008353432124674153576008370248665229361506229060709089450770820380534121283752217902849178830329613551697873369192001055949033026595921185733924775551743815193009560384122070150562609001496097366039338859893764947342734659976863668578538235676613457801113815753828510792613963333211830114197458654124907538813093272978176216058040065763005447603046053430796587971805990137408056117441037059027577391983809783219138792217040132249730975880364456382900609736645321399501212439954592094378842590363001841518830167571874425639611985796256229389350910216574487706526156441747422392628016580382328121775291264081470215926865246025483035367815044094270429136035834774191025078798093803559288304420187004498082358142172121290205768335837149481326630543706958954198734857924602784321445539925936404165003146430149314990474868381323154814952348214958040247416081396244602323880741879772279899760229566739340561549995390458432784286302603879086596352909891329319432674790539516586435114054461560398419142308676275985802270531075338619365433622130387566492683327857909599931462660452348748637465791341115119426560202937251396144279530524961105547326632860934958259269916072209887083593260959271856105699826911967035763109605880793454709507878492194075780451247391646785984633584679371201465657503708451217775297202827048716314489266361148326453672903198815325523612308041917746964880991141831389679736049948742492626887224846971159974503733743569685892084391855141362799310145798817651480106146415291862780603136989393008999743999349623813424117631334639568587320482576687723941303464202150673245071245809570013891080626092149547166991238695213578434861460071474136359452486616988607069792656208022297055367489873348937276280904772934890165428414003977085794953480907256244789780325898885574928221174937358301216962649453184938617568288005140100406141031305766656347899036989475187169142391046079603374647649104461640684414838365673304681322256736160124801981841704831063208061438214214131171559964684352726866967827806636654766343648267763298642414358389389214138871094936562707756779467776424172243614076867456734634904051271656290495945284805042106226974769549958565381040772655560894201512958094298425176373214288064877642123557575460771689790485504339011015908545247514292629810174677972420181764346366437234432314758208416586893249478822583974191782258116382954577251847090127500520170001071345678731818351680856481507525929154434754027531041748640502659248380576262964265204883277299835404272535946104513595526450309506701878080299932975960176511099407849443597074673169007225946530783367055175998983543746032194063194930755239663545429216718806875702176423613169009505067831932902098890612897253495823882817713125716897247446828880902620604959787932571358936867137509995552645253100784336263918558621519253916373658638030634412749653176852223634774542532688070237468457384006464838074517870790965197631247722039442489631152609482134255491014596373890109015023381853186522630552570034838813325808444138347151658230808348386910062527435741589528581204107859740676913314659422363316357319852768965063278323537981391899116958653022166685203493680485398020995148542298893954714252118890338832828152577675712681487181106136581138156704041623262427593555285355185754819854070731416482056824629248350024959507543104878955081794298288708597287672567774788253321380511700507656035734786840949185058235947118287547050756713528562793892858367829958723414917178852003663028283881093907881050585777372963465184353358067791151349982459330111143074112495401398605865786683320572310382329549728591641368861613139653710107103504572776574789564971890939208176683264023918884571959440202086061434124470949176132373862301897018831328448616031466084219184119867465730972891261920429643476137589252161148775831101729573979976382891783702320175109846255595658934552693908335877741886730057730890262762289925136507786585953157046369482251417199063090819520989817077664300803172803707439150514057540738291725752675357622554111031714723323676535899488106949352607991199952364792694873257040329714050531876964807876724341421749718206061013790086362686370689203061799836638890561294240550032207253370169791295958969692118618091784496528015107059172350138303160431227150672578383315190273407258695239996322896833724280204433378646239787108289274235858076077145669929670142337633356595382642354878376347722493497381022164436231981957295539381634045491072522501119471724824822649575787383768576961343663397477967621094587748641436811875391341906679441016223824026399143289197523354924004240630065179778456328829422956208837971252378958443892172663578724439583033227507251371002306508375412351324616412929067456167700264955429056422674547382405929661049829730770348659560483914562672114364605177241239370144936408668639895634956984607810867601774425529527537694187687296559004629618685694609797736940398782090285585653612894441026928557860608249015673686647878208494342387890399184038370755110409504092416700154248986510035009152157130984039209136093572082883458260057130770454984921595508044983952806974034797633190956274963558701733167585045162104756478769651956468138951160815782441400285821920475783951989894170929863966188978559220848343946866249463232875983471968077027063528559529658944955121612653169219217813942333184623056461268304556754961685604669199757563205987816072918150947911601281973922194004966831930686444596794120658959168281148477856966540779054627617247405492937768980171364493067160705854990808134292444955709560237136969231648591199623070536301567415614018086782227767318623731736462463708778602018066104517236816972565593741748938031841974760799741448196108405710540937372102718960507198712191125394987512551436816201617994019082137381194123545950517416306544789727973822506666472562495473559729422654044432765832590260348192838884586633199291132287551267163838413132273549994849159538832310117470850015635924289919911385564580775084021846772982886548836837903139138234582756737329024470528342903131163919563630411303369454741859039491805364080388449760261825198502061383284837157187109350525696094216395007141254485695541051696304153931372417752566913169665177285996725681487810064717807100626979219631781524666398808454380327959437344007404062696215918672501140639971262473481225316131014325687843135495307012150713076592237142355843558516648241987277062771079294307330067447272831442419451794130680941763192201502743238455732573484975451953946704361969189909823054115959708835807057263243148320382862701100653765231284527882829961641568358647981240805342776907011792670484848485659089838415012593653513361329167236464725203261816573198476260336461323250929669417871788184866472771438923442778317215495681049684081264484167831684191838576689458691517339863087386529578847611072024330251932248263673927766017047220869721090965099071379952586287570895736470727201302933533543465149436886355672755208443011144866173059693528648629179048227445786946046184350533843692396466102794700428014250410365713547065053567929925705899716694086641520058469595745995624162226905512722868628488614227743922285820206856820986778514445897274561819494357289838906662718133423603537334364379333903267035468248817340452675423410516798223762860036138181727052456819017185272583731888137173083106455234677825352938973590937924084733187662934660377618778596390613134731389853069111951336750134916053761962413559162903788090934165762351173750414848336917257504448405865861711733890115147885608305101432284908434955758257735957213353305267491778080796619294505435810890899521925526518796377161380570093526584019558576043844760323167701903151383541309621161290778259894897843613308237125978079334684257594463107658866419164010823783087829623429161920900999728004045243850891837590654138157180015158919678393554285980537754226084915660706222843603608596722501428378351684635232115690070636130596645427135537362858735452132313391324467439148389280926900729059750952600478882443916364161794831055320161941731432254185313716668762967594192346239382519634615415959656951834858669303566321511763678597747812116624132177751665442223025359497293024678323329688785292134335610909584577227595566174846168526486198976128940857846828765898763632165509051500061001050115859503968464695894676840364383138470991792541757604287401438287669765793307005459014743061215988920868883104679532346926253154392126169214996702917802751451581045091295396419220194015313671468104360987601580001457559024940220321082701759981934675437109240427754482525396098336163010629505396977495041663183687131176540967785160567450471445820172713841770361404800646462882761716345624085183184979220821699451143964044897646073539289268316924477226406105888496192192004089244073061342079131446093479150471738808135628944553932771411899266018057612216613539965340200786851653495809618651410544976552121088157912466499431993314832671698156359165784816877522232600115419807162033544683595689624719376859367005571105046375501872226642687511490503826566000834238648378879968645242016214322306523970900406295553620128090155568738912738909366733822453567513670192160956789393404548744040661476724309045393428157969496058325065524712515690916441045708919446475536979894980097523110100495546614430334097138090616843186803712924454282567333785277778516805340594330220919612368958837574376261267754711378327572319777848620234821391124972005661345845615722718081973501359691980772284793986454407219428752214629123503918113866468303218690868221086641852650089232374338417743529517830759228524237995082747314829514806338016161950372847730202917722851951184748701904460708361403356390928713656635389431637600400293135263931272007082161516418117721126058368985671851586564630629948027532734882309834820204656273931492137201195122081003828755564737129522602896266119042895964997606317720345092527029574927687148248255139746649348950585123579679638392012975975083382177646733377220411650802862891859114837318555919732083969145460905088499351801456166498205574356270182415594477394053056610007964420148878397055431862072784960302726865291170458378395594965193650665544220691609186381507355366251882015629608662606400840014219968420280503469038451802693889693284722852459987309432347191022388222844406565596330454743299789651844692184194741077188557487097489406509964956982895333458783825879257426162667554005103427449995793310112826721731370706410202268751893749312027433267573151416617962841451491657584461357777891841486129697155579051802729362896264998462709186254567466846221468975081233547956604189948974988315804367671560812830614319049561399218104003052587342196964353433287830860680887120436132374675927991696341001706210317599119716919429845764824930933231515090216584855183773245588903041675337920184217249104916678239568083961018633746068665981970721007587447820169589164218785032559150722302051700317745224981331412150823832800132109968843521968490173615300272857406504690093644747804006343624316861112370633277204732427814221353504053426011657911913053557843164353553316247532328212101019769499891717326077430997708265811481629013200963514181867621846537764970909402256883835517289121891207860131581373335803244494575155389926858547693912280950427986541270538273585262931105036077612120442485345782513505135264674205353476167958756546451134527330812196961076116089396944100965745834894020116886489379544408788333531702922077197653711334071547045025216933956920883083275444770288100977245631863646165062828035203361460125476852849097599610062405566836193084693740837878197736948675290363428357974135466475974506453576240375689897144870484631908279232150733703444227012989642748956416612769228213949184474010763158174548298320328745126387786758598653793772781952910093346421370333841666474568133806567440551740819201227275029267720802721702300646988699135926117409188467622089465172656639240763583350015852041227572916786786569374532669764612012058802715325093820286515569465061382666514741539420499795702704350985383322309125638172080145322982572021095884269577683631337503303366444672861662722037511138240185882898062504800184846284866604154371073102518852782293299826248801708341723917321659633251443866536894505468562003231041032024316565573785333068534929008233679178021507145527672159939528053109994261084708339179963896320623185348448914935060205787536676891409340428191134014125258272564778505342733801273084371564452597521063886820449339670843164201477091755146271349080470312211019632642678175947365017467881456048194184360641489717468740195152099216698610427055684268135131078812023570188328731495955686386307033611927171718234376518784659286683336569370392979835400900311225870954701139557372546594284833879477966391794060197121913164424966213736436020904307201872424352133005948357961810426522701114921150574826198169693295787840009259644399171575137981039764367645481785638994661922083919088850268136857851237592360577507897741449517599639330431311088782071082368331544438440942529308190196520870999949746372642929203873353217120415196380869276941509653856964449803659132598991346700508382661935719443764284950891541714090377722909178918576532674309322144637077815701620190662404724486379334087714205497388271834435187336683899222119924438997313600056389987695434826497446342484160140290112407247095996172465718981096077013159776966798188036041485315538542292909382980479949616427230460864656414836862380888058910128262041612516357703572286422111099510605079456535805624140167097362740167068980308733259250264176171853439791353312994651945507767578705713916112513628853573195887947447177937577770032529130890581817826414029854714753331083289790627262305882598080527432942382742810590264698132988622231424995204654460550379534004836580519943407821165826040826588077838391781284776876080955991531339631467385758459611942860712312467032850414779756488000454823060693426909903823408497924048174730516538167947524207873620368098435128562037023817961097324372855305233164440512910484739331977681179745602027495354332017548125226198125392800651923730562052189431007397852537086458350772321465290058325754855867275075272482578446373558169404685874524494920461242721007770810604692346495748372647498845067296830487958152880301613820474811979410511835113697178554700972174549524897414026480573877493217284315051851358490395383882449498369190463655807095721252371878958006610045682294828227998669777145425824183569923114223436824488751075339642635224649466405122037439181210723822166176602045827224930187318750494688885470774874987764915432634754337523692424466655535571613178429678997989103570747052721298457891618962825053884292176478594843086878393018620311463532596389258600684824520126953861572574483841535829379230965594607457136389055605990009290699745420085574977977502606380738894814897454263467718809133723034025157797032272486736891274513960233270154966333344019220731533075471033380280647580906214784482098998250140118737376081292859027356315561885178366176101785362336080858876168374946887775960602636054505765685074408858498775643203545903767786781912001759295767537056423908264681315424891048615225949061961993036333422461786387209401739373253205279013551341060478181647104239047074704710598132848646819438993227251173402758350260803064605173628004160874039784504447707492028317039742347006401510457891741282873543354732293137916088497696231710458761062282294951539913746427064377211585273201502974128620843512097265636862151523805697798447731012228215844023269941566381299106337340708573225619179412951522512998841492940156152137406567020610504994851834799063884640603395379758612276029498815332098917919450686601066836150622569949575264890414469170846527730518366888825155780900453766388903022352352658957751052454291853764074355764604141933678644961241883349536254953704587722772060085812490847813794591462199960442718024088628314843909591803572692759778410215894346419416037153371480339871049223083479020114343164250431373394793401894703216803332035421375258912567707833364380242985677766968023634915332816896943622134576027156024961446390618323617648280075565164572922574003628548210475696746596378699890066695290503457010268078133386541582926893770990520124224212923943147048546718815666981314598112669405276099713785040007937492019054154767307704214829928250813315226210225400043454059421028812094273643247711884432554226250968984955911168486317903325814340322945560747200819750452988402299032724032434876724240879413668387347286559841857524022869578688388225139364102924304618532251651375031577218837391259843774181146950413357928647891217126407898648686242857241656779748877622253585666193654408032868759734779340980151342784372335625885041170181578505404834259808927614143955268204969990261029850636256050666903591480720635728522779611055210471595675946041966230737762599803442045713632426192463620185650252714698393913791597237252815207636176164918247176507112612757584663949690803351246942935207097215793124376658035162182512741135807959093559901112685222551467988576054503207825599899337944560753519450988755521497204043742071066038753461312041342452347210885813054811674033097299430496022961249689292932138223212872156422137330687927685458156506509967749794454478262396997343741118626404142366684082045371132461619384779907335210535340277474011235118772466451667942914898971187131915609742079706594972612143847596469557173080638277767815934560453851782807921569295337257778850812858489830758862253091499179295357742065757879109086520623762771279497567674295101157727159878496152017742905225028567505715900842114349459942879693320714602106127632245329964948739604503545937294526197255333670498888878631084068931920819194163905455176871084149858240790307237246367039234160352339278163946659297662797680847310138830138071834515037791628091944451360454315617923511246485079577951687854179856094338122415295583152824268343064400469719133312806592553764842939679435247672357806692838991564450863199330704243279496982710714735806022011061587143675396689481578921694225386077296511146014612274652235137338142977934522110096807056655338580182753463603989838701204563725268472380814324168154982152254427362202278537089148378837474062409342790243288522093767942773052659214315048981312052859122097085879446541968876002785887459517325315701294382077809074257688601505531267944869874520556293908397492402917001084727916507230279080511619881794268752818082121874040981136807444157400687087336591707447573905744640663967683691499330378901915176768120760478837321206264593051689638049978803427183556979389433984131577055670144568483328943473124564403459592331620867329841066972897902054156773161689969068040009050468015651573043183558407356673698168850181002505802287908535425688405180612695067188309672246766636412222436599333458997477006735730721814610511508189526194011469975295576582434331584683237339586563534499804429164928116285100315241175801240054145966926045220608126008071866272747546665876829411176897911351031199650592021565439586707255800932064398498460247993205298442190905173042438890724822582024115259206765320972309256370628040899953356046698074048635658938178545378358794036172994079015282165837104610680189530652553925954563620972908083805249343816723915610007704969460096874103469505241169707602707196761694172407937999990489526487490777477505989932881800151465225993728839169925391087476651362387055565038667915339486473988350892549309234253105114148753239846594639568673078517270738180797517134878706327761365153913233666785570914553707431630971578079597159804090238175871926100575368122135149560969405675732345334243543343609247004149422066847316657331397455804658354699184631521683544012362172873104201939974434309061836175212659482950567438847201054246074165996200007505247373091391407690800831946915988215450208976347223508197120988539943072298061134694260670425649095702471463668544089589984039109386679431126951325701172699961091872413217642225565695644839407355175014537208510675186228481426328230054481245173750652347644541845273734173224655065575987465976314988325767698302768524904591513612452601566294856937206117730308831382653508341033021454918781258814263318424959477153737790760161544511417024708512374889062435745146806557220528013147176345999857036256373169487634185398919546280558827329415308843425193720962464761546147037894740782014523234187622429481823737964015786820560734962635668801719708259585883587793040285724767403700076080224824555077358545663957943371131851931397080437252918671570284872599414898234496105869041857986092186929472684044885302087185657447273794810717078304774807607303235751406668748574566072060088237989129531740574952107706664826663423416376836073653306570901463314886886636909454902669566576621745156824176360393503856455051219530233818844517139895579664609022325029427676244571892710740118690708067970463332440285949114509314541754031669511793435274445640109259260355107740179801324911875047925212434051741490186567953976614924579470066727051539314419850933428272951197644427936500963699548125423776070596380820545450625664335981231423554537833541547892295200483237791374759723464725224890678897912840280664555391588692987904937626272421379551755558287606668391885718433916738607646765775827183949485719647909738862330900267007667653996831247944508217247097431708780628474560749352435941472903465090518691576415366060535349439599728618168891921036269261512300255842673278925401956810159058420922257471487391045679580478876712489243051886925189259900781184292993837637123633977314909983158184534881853851047683574599918379390699843510674577881345209837208395123226107505831897297862404212689364739922580724096512009115682883956541325845987849654080176714342344270545632442612240672508359069655636582693277011296507610517635333513383022891595861110463924439538314306581063998912380554851127191508980770812377657445878992613387623089725566106832140258591472637082239021363089468754222771705798111937079242134686592478708048391825420617117031184870162658918880982309571742134416352422301401689221267795840998990839767634534371824794858618134760695518164899334279716920005977070699365022869748735983264145283712991853513547143104894232536613105253887066043700140253072657075090697993956185790223839127108545780548563738656695909940258208872855247028567693087501971082262190850927891983961660522465169260728000025629541059728417516896341092568208084371850468036818324355254749924563417472331365310689108779764537434057045413448885587165943578885371209418431927390412779298807973114132194484745192487851997298689939954122203974800388126796038233133281345046213147415234938620693086103922971518761913140085470711301750332921009499426267159665636568289934901022418457178521348150392164318544336612905137482956337704518047194798726194457973043047669846762260286860227959494761990534839586612222530545598788838850286047771980433883620926860691038220275268400888445854211899757304774300406911936348450156939363422319172720532288781504410655725460466310479201498856800205782567433401066850640705810743761314336915340673796027096195362617890908512390344110656934288421849869576162856568126087875673447116620766420609058571660901693823643789463225524867001229700017685074404726802743730240397290122828784022022758918398846337356627658085500175115870042724946485293742640677744613453336084224460398411481040557780168989777577055509065064860506134739020865076124803592425438884201249634707628962516248530674081763205370419145352257185445335881660501428298962722771154894552918269524576040941121580362352359595527189272354332015751030302662276007523003076123702249064033958668065440963976783872149962417161388031981000855344420919978847660123858224065923828095675035310164873168656531052369725469149339381748081257689758773757491555575180106803930923357675013786056180259469121375609292138150952488448969550051682146395962078531741204005627825697511682402755291840123443414538829379749762259497337860332886157770379708147372080604974925086177011666632061614012639178120746791216046676071736882366683623531555935915200437990557135601024935555166770074415049857089269303141827404690833845191098722887582512341763806023929923770988542950918750587066588130043676004703011205258401338473512547344348753577621375627431252389646721315310804614988590601356114559826735690742952496103828246181498538070991237903004487963118764569302388060952178985155199849979646995478597767659600398577718562316938588356604927450837559265002935086684341211946385373007552418023540086312265033584045635404563592695573433199508686274813152039455898236977429816482471046593931813853273677082067497485600458497036762266834595613880264189040689735846124776643123147838256870105337732611904349386065943322591796467095481924175680279123906178215337743690206456946717927776141574720769012245895013636408499685674559862099120499467713520267517248331627907584869071044860152900179342932689967131170825446458971446927043198406712186028148104098258426830965709693375892209773695764258646230919749786184851077337466661458118481325686847301237412283979083186476294330539194637594904252640032415597604930189890602728436633601934088609322690291126123975883606545784869935975365526828342658453520389142963254680462892750377942392379426519465382240664196920470375634711512636317505066470860561307738357958292457370595413936994366053535243360140985257582558010025281544697219778367736387560418733518078319503279331463884007475108192569486850884177400524723323781834206315303581306218895406828040113309656612656519717413930224233624287182801891933196603619665385265345921124797992410932409683958131018863476831127692427560183810728495434396732441011178483572403327548971003372864468552657534029931238894124649983659724132731787081872042589627702534647438963026562303187923793889668776925299447765001669808677360616820354750004462035792085932241660440448444493134576424721126688555028388204005032736073120010977998080911422698167314034206011949156705587581550023061485510407585115960549718153626178946407225835549182576709939669225250355452774005211106067720392150867599628749424551494712951181357995846542131430500748318945399570405275547735041909191662566348787983773034467445138912696760860928935556694925368600774937647568250318960396057382666170951055865476687179133913191016340127132960673424996619131136416989158803941951591683019751627570015204423173193789436629366439634848715163828242754853185006658518316209901708707760173124298431255588981169003746639172458213122221712832045053420973152737083691852391283244841614497532725428584191267200560420323681183717103019517376635803717244182878900464761896295053840223773117636748672869726649614498235367010393334162219604211058052142277951020835332650748269308895338187776978836124951843484812011298839503563761979744755304252174751666798097971551142121517524162087543681732150723518528531034968455680793528832247710505933445860067687589188788343126402506579860725284568778626232668090790106281076876076010876017586070232808661198700332510737782669501870759365307800451423218788331253527905874453877280144054615538151276225784379746956488734386802736184235924608999725858851182032396107089473539235333305042963877933130574587153785259262687935014195790046333159038232306682224888110959450507823610548657201218396125919930641172807603570746460658704492836933666631448926486252932983668029491359644816316465627864967975077879356323697452002995248926345560862589182622655321893956998680906737884363577793403551620550845426377360347924910012163197529999724810865631354598298341158151154361771231989411664274003953888898377876081758519118587665164809845717627069426891382119886087543351521809807137389944880045686433416268809066546472295474593702829601954461137622933323257912189445199526321838138318724637823661551130843146446967839305769448246181208935039159872343037395273736287223316427286069117900709117556199428965328882370510164142468547957351305736153049408809625540121677252188601412293084858412915504356403822645267621439017342366684946321190896217934260768389327998729261364705553818802466110090199831229580904560746148376390511752173839578754137719678384353520508426684165846303461205811175320973781160010633661922319691606049815748244060966882421718364710729869578436518763957673918104253491102249198965396281867533393450595354966679684162997440929831165742793875151982552616933540983903311847441387003877983333564164472460774721923460387342328760616211907274888467393408851417561317647591551385707010082838109704548206593929324059817100556411739453987710541127086333104420911854578106116760764167614163899741671710758922025196040359305176069566539708893761714338712520130182063442731099859674824443855158718235934421849711453405804043382750651151295086576977832054733655569088278098862604554979438786089128234089310826616435610011861170013858787801782925163880817207770542461198028090000201696402910790266774008220801574766770005408735429600490484165119355260837472868528482515392022071518798062075334012989897096015877682323855806425947010826337516065020738090015051091962027734609453306561926860048883067123021915400103752987757782768006162595101928237193168939810024314902088657507938807930208930194182949662172381396864525180326001006696495241450481175223750179107618709679559725547440353292439058556184617224546697056514509312364485895516570822194710994097198660051026033935039723758572283988226729781354385741161026189987182910347626586626944475125514651500787597354280926768221731789377697567648047922741078261262508304857620582882398504238507536778235530145726005158543692292452997678332401413650973348840419107157210418069080004683719189996859062930742613263804514944867519327266306281252224785494051514162982605716439980712705731541531290252999238292608961841131026280068004960042383772320343231159058205538264853804419988096679479568767296978294652340401734101976058907565911474901059155527733260988065699278065289769737370510720280833272027234906431330320758897784846066007143444631823269075581415021512319699168334589535359242279586537254486505905480055099731820528524500661697702303971130136801196647388218954924542824151342236745611480459409783381769292446906401774752023153795926648829647967054916828283588635404294070224805751245013921003404131567720268390163889726077772971066952012197293686694194421712131703742658424439437405723208206599374768499538910355361903779496048786242653356355632267384274851492396142666414528406720792696628460061304276935160007743311261892106853533327530339256686505541329315315643995520111981092857387837955134274292174975264416935974527456857008731096587764785603574342793024092893713644915277260659883459860337393930776765622326338076349689536146504439752686054388060677646339351055077114310448293309261952477802709049929353889053191963083547289582419115095380471366181263441620070092085902942546645377994702656144900621722243090047728299394132555559253679430429976664427516488147920054789450766949306148842317635148085274320879123272836849568572922158983683716816578891318379870916875314790145466227949422590164377809239978693570250962170533526161461934856589528512668272675809503202992446753004159228921999796970371070817643469660996759847204368702869482227307965231415823941266279500010645338416867321947855840186506110957568701884241681236775018269109632158826341569638991673511327411442581379231511555017738116749285044033216839795789060170304118357119507282398419408916725761776130993434793151134667546812762137002457750512637983389485186122025085038673334333353373241978782101720040104621072678397678413929041070318561839040635938782841627569489244690972829839475726044667692996839476596978781491339388500493784620743706489061267765741956127075669776619614689748037748875637816514014332109728027122368080549459593771906106461688818885679243853811037654197392539825084529820357202750659928897719828449288744946691607076353842514364410901053709537770331002394595354290521261509291211405836737931366633666126953139076253103401606176623000436742620637544010918621705018561356414960391011097129439063139613287380446679022606867250478670150276869013062736544789845723256124176148451159923272753106232037316741352785405900324748188669532511081413037453937190093235476785719851103088727429284207818971570326983732973622939436033010031140108129767821464734771351606123459424101653386302330072212517805491405814893733966556967928768688332711343368291522394242449390416629397697434562302415388303949155470852340548889761133885964422483432466124177782067216395203657965798116107535922276225455026190729882376331015253220209456355605659256260295629094716395291265390594568804701771557949457809596181339195957339353924114625377597124879667280366498681668541527688004680046243143492785899649800058122971100192752477889147654319219004889821001946880800416504134501981699217795204917971637262671468635526976293944280000618849810289270004555685470526145777701309574856831259085330707631931116161840317343070941475360353155172321381218080202958472919535513848512540217403453706077397175563696287210419049891389119905033460108763648128681097430808373771562729840104065373396387706183962715712820375434696598544619457984146835347248279333602832396611924537909949669724915374917480450345973718999643364623282439546476714001661162175457674760119261472168615503902914348195053105439539610227221932623220092996186069676124137364097529191799543588734909164731714381329966367664022304188714314861879401206137486985619250182563137937313059555355621649455150370813681610813558524298176820332809551805382866808179513621283019477788300754225317787417031355528340270210082697921605742258300121818526097864749212013724415708227756245102929303982369326453566783787516344858205791777772679852147855737189530101782119226160785177590112616164619160411598883660371213651661145253697630252854552258778716865108915186387964347622829427890363034172035613854221188816195443182811076015774844866839753337434613725649852893646516117537161728347731522217581832100445224508909846735303887753755033912465834225171966764356836983649829518572555848804455559492844477927337069554883197170277866296543771360658530593178712586878644023796282184704587651401622656428602529716065679144804963149368769859894075188596158862723209489120807178786476344599226525391997667431089764096782417352973959978622516724179054392949335191045052105963336596992702006718043768925455906666785403799136321755386654774030804040058711041935527502956446881506094489684006041689985467086901007970903840316691473237489578464760554477049604912178952918625060062061806137779101693796753199111716899135169860150660488107665370466025921612079208801637142418570189297409282135170069883112760238815295852259434459879473590636411164052721250676332037849631347564961264079370545951612216731058736866118354418844171688757894789225288359040142948842181410805382921482829372494954173246701272315041101395476608204194295255304374371382142219998237398182007987333876662342448608266631541440194936494417123232974686660814807673998326517399741953337317195346641840380555638206058103685652766451708902637569435931868894511878575726607862520739661303632527762207562623156875158123039503437684537364796947546856631133791810052224108758636463429837705502592878906058172946069062701022620989968240227331373013978650260169027526375029084677847188507762149687384855650017428366388281132994055163325354993038694873333853634657554701169874430652298328515374800806956227969275931915910482982844365963312407687540623054939631849695580049956934201610527966961697307919434832745220131053350492334138038953390864606681614518695551741044560205182105617903767391603573316857601269153206664717960311713029507321320128040783571808269223994868267425980774247756969524873593599079812735054392654852584803151297179168191611166183903288737103336130316471731669578636174037448675333158930396040537986057074125455481112617362336999262097458076836228262012085487473175476346567265094917746464340802520593285369528889745985674787419845103058693294438930400080464355566440884781979622375925373097809112354584401221250082390317074614005988263770822387163791169394087242698234839520624795725448039401030461644356316499123538012328143015848111832370565084542196600731158922177985016958966964850500869368783132460028417578838152474045735846481311180860404847450334268888823943372832417509069196356809355124014688104004400489486133765583483113444497007706447002509356738644604317344128739296119054738723417839851434477940590535126164216845062398778940002192349567944743372223967082134757859847305776099027694729518039910909663991367270382524187073041336828197892419566922921205453928261027646445868417095106738320646817173415570047661505068171357824235813812627338389964239877400485093029678735839148512372696401976953728802159932521415501052763691049738727628061332605078814546923859914076359840115916587929415513394075394261482667547756374289497714948782707364331887025106896871854203295955545232423949978354672680996448198915026863797583783385280969141359633308373829426935230655599522249756028083821436570956457146615436619770293086903163642267017425129464065247949506434394787276641630876761731303475925654083402363057256007108726588586851127372739459099496673380813455043725727210631831438058047521701300317060039367716320159741042193161542224365043133775133090152400595226090668811487614014600662685315303185505205714220823636914481833418138043896299569050026593237870876220663824137389688966763328851729895441616083390189832503552651084459818787015088574195577178857998763719368514346406432942394689558942491456940780172591726097761270349383314113654448419933732325640986535074920783626383971452135504945889753248014246909654884078527511988721357674963554376029168559705071555435640668259592397365105914001707997334251005725523512415668068762679723243753675479505251182262392166148267129211622513959931698694052915425918895129060762624014764287890354389707162503708009393923914502323448482456516227495267173589225669733724957205588115069358218194306802339521709207018167373043526035899568361136737222077727578508627188831249316710644839281687720078356954847394189318327626282556414482186478209297329990261091020661589697032266454899415876689989190516946789844551071554229700730951755536307060329804146105757152772551016291067460305338038853057334051034034822437376036354070809904035473066921483512286820474307782328350524937158257330792633899341883534698038429014841264103106631437159383817698624906680318289747989337822095433065895536929675922412196065130907590719690315932507041310615332095135960269344322161076845367485024221181038972858734230353857385169352913244314315478430202339767605750582813229481444496763300446555634849466671773131108982325135179425960185896487071462106878125387055172540596613327054781927830301353838236192201577559483691983735458317852426281043339805025439765326338015504990420857960800525625335414244633542404627907772339784815728613180679311485649373587215925428053463602157454941753126907821908685282401067279537918103747274174089994817951638216627197588392837961708967918936358173748451057538005289897217094335456295121536408344334632961625612373800809473856252357282560194798173869581050041804113767879540276363705372630707606960927460228193916923727983887542704866856917545573610748992576288906509616943158811933891022383801807378654657101665661911447587857392833144694645838916577176482445652212185626499517082272893347048708117538592552510891879004023934173948723458626130890343572946627714199506966098250892826751121838805222309499175055542731043803961431987963364080876742488219865123570345977879440330309478566684534595451083102769651212022838959854836343036409491397781134493108064428245390041872621065608735104255263139162463356220074219715746853749487559976977566933556095093582058319018547397596351958023942892795444956552257252640265817419578416797445885070687847380265721827355436659915516430043114221532299998832042345073495408465159728027197889157213205671051662553513066597099640938628633014799811650735776007944609453588688747544377201477042349684833554831122531465885028215595618876222964786236606640903200183259548545110089075370832879625790699275633262467498263333936241213855061319027190695184859629624358728533939106656659667431939881972213779712966482507532606205975072423806875767332511368815791452856269365296406701863077344292480200838846982682588185757706470958783480375888731784644224366564057083103975542646882965287094500207691734773875524899996880885692209305414982296021693738329628129463039727765291500537096426581689016362039158783538334859734359794942726164024650005292018605264128880146917954324209565009598135940251408162711346246432366929834549400696633763814689085019217037125483628723829041760058649565462998896602902094895536381850148736127123545752979884664012548260394584032536874825697725771426045965569028796461702163492272212803797480520671976379538646578658525376030006983753409939232483234286144263664959420552988549266240807659066923043360540286229697944948925766607324388325424346913622909557294613375283788782219123917674779035407377896403586138560896189495119473707090948684474020059945591379005664846839722301501355944736950987407684186709707461873343127617887912039997981934433319852105370323534522239971493400094401031992539970385606030276576949019677076912673353976929352076075516827280544395398503794655747653015039840443282535520536735802585498534959256887424187998810535604210859236814330480574680810537340570631921632041181973836853363217697395575844532275887910883767972018673602764141002041100606330382073225139561201643425926706290187042366570411930812886577212631207330482334696846243780877987579592231369797077734265677886616497027283716094874134616127334026086187089170201651587359796656964490793879973058117459277435783098171272728839508806120683438689772476134511260556225179509708243775320038591594664773153637008905211697280791115113876058739837884826052792076273980591969495503923989655329804521658151878291880636202099704797915133633587611383858579657955850236726312571904487165964950566179223120304713383958205764750444212118428826091529276747847901939039119460034486904494857569218676845154226771755936649708778804920523694325639320862022043452912367634392933210012868413130946194332692545484137409131588518742679524604080116138680041597328732501602116796174554996780691613015162401717436468397064849466064248067250289391234784087494812852797456127169665486352766888523951963877248711622947437840578725540439178582212655277010191277418914242260437586605518397622100525164914287149952758288515545674801984411548023194685500387643069040008781975089735598352958640882593503988406858170823555107393768105250211106507584466076255650366861167221790948777316714493993735460057207206477970757502677726462657968180768717002680425593777137781873814465957011314097354933136655803165040302694738583048774324106646212301397555819984134065046689518683151289192862198754254901059298598071096797830243967833311804744220440422867186701967939401854760564701766110891998294607362798681070378530209815002574277650065422594707762228502578562793524745920837006518486441483770614633879952800784759629634864349799992724632620811956221330102096403958792956895664523240151804422279112344047925341907689315824220932652502776188993626362363052528340423931047530063574051907771654416635029278015981892311064012488679792429582608914111264634041163259532905041378901891353497620342034938663872120275847981250498882915567805202232825225437291023836212292593243148958343105778075266898696381113514401882472992597256801132003594063929045928926693467390105076045959319690658731083610000815152824241626696602907760597022303401260269837108741155886467985590366748563599277119831829936474231789925543655764462840439940143096657901150431777223812008863791522488652360641809156316340702388909849421371920833853804020738384296099400133157668854683852576883217858713521494801751938492801608296329769898157707861429347722600032425849766728364432206692146422790888135976609824785432675691206887588560681871886961910052537144019147075705214992871026389703731051965450337621399909619715532311409202879454911660740498032515633723945605802596804171442516789223246654134384705461366526169203533153370367543647142880775114090965312593415990664756621746449111330320932823666428136089204942519584274904231725250441194512875134469035251840608883401736847347092873717201083972851720671396615428349420941249420744762225317264428242809819383896311481303028190226497796771585787600599464936658715332106279023664633274785339685095757156236602506464544069283488748609725765761601316622447989581126986139932543123235417938914364717569775374386890436546497718146177670650464125007147723884747197056188808273352859703073825469277945899487080921877102899601463642527842054013169944939481832717064433976399479067203180068763119818247740566526230842751416557088937400384385534806519793092812358118401250534654219086612658230015627482039888808632856375261206293455989677039848483260053937351047215722291245228042451106899993095116105910302094313290963943612510749759439164575475839347967122559924118729262468605058954035244839541827820452555243843671845987740063947190585511919154533906155475028362624999611672155122354040924503903583700332115034890279997638662165828685494864127723338952687285860184365544109078285669722359816598502722724501444618026240013295296059177566100531995403525282748323621411840331194358050638665269220606118823307064859046344252526646336921631999102938523067953496904497887233874437807048248805772136835123499252726148135825140426990975223867932245374772128972982592899366429874644419648245830423212776371423476522030673768918732010236945592172743481912977165891873687600905098331177167337208359146434368625480657895472920414168993720115237001354566794055110838179929400455823693324475260784574016829202619048447299950921975515864802577346243616512049838453002090776612007354112397185737085919387868374752947294707136940549742206229558466285051742246135470788649723776927924770749647074866401827251725106974615037345484305845256762822445980817936900561105554345593742590339397844828507206982063657072084175702716278626159347400231703258889468109916986371440943329360196724991713125531773357123587495761167436598713769657213633051284563810774186565678572247401183120549762836758813436045741164581917904543178897852986106924437306253265677603440180762256617386424361728879259266155600916170552350077361394117406740556422808701372337111952913898643172505387590169991302400421582668147962199712027268528209750397079628124014247802415914184248103884790321044635633162548345831476759959265706824597002123820144144410707081026612206092790214090385085826600077432166050799014943213759050152185230315505332333468543611067566128179989550629210394022993809704443268926952662237836022659010300369521439640251261914648270269345679092311840812527628492668638636243013177031488377102369728445534967700517037534163999186288695032860718743850766817690815979479796321783079640001034467492608174870953525153538599823384092175454776266911109644109469433202097349713020368648742369355567387443342682776362721467273990703493772753129710950211493553866312927882739213361931303855984287126206347204158092147851420571024734468507869596296500306742679117368413313956227416248056219696109983750666053515109410500341990440206771193844783357018300892553424430203139477843687194940799245474559749922272917341332034299912623607325321994206623765635465709517183690975743004596796598940164761534686343446728238633492713688558577320863908188363462758708632066811356370640850301715218840874225845088175929546947908807187201570845381297910156760768025308877703428439764231555176997874434893972515676111205520293120501475038271375871011911977738501180328744580614574911250682716224378291674582255537793319221115191916942380940634240289361539601232143937685116701663613265627162948065544609715503219405763729421752926771748994657394604361707100173096201430525042292517152427134731641031316795471246888223598479318787855534133750496355109206485872017384524993834059163973195760541284171025538920344929485414973301322450752677413390392493573825426971801354648434190845604142165020481843851445492388789098345387345795580207260465813879635073369747319804626519257757160023528949470997923952417242462828520142384181637543293622774752436452675345431794957130559774628122386174318165630631643005729017733179206288695822636531169157189831682375730288195327001453707721836016313140070152235638168043713086032587014124974753724050663855042949513290340476880042670700323985044855414297110268854030994441543697477246394781753761383316752743207093067650350324503032698742555481253191649037823150860035117810079107248158029244800566029241343266468952651168078697497025340281863754871299058163337370519577349056508705774986548837173703569254692068008534219361487809383082585024468638855584024736963983925297089667668750242637950638228403648783940599430292173274938015374140127572663429321697053832934116713042374424458291860980611643741773498351642006464831990568875159573143002607870867631107165774395843611119903057593110791954408948553424167497162407200186746873454627401633510917765413759981969276017094490258795611771571564871525599766293323447037549034699835885212146790159578712627090905778326296262178916393369606792292719294036690337186902674203877289359681579514529475982543034635647445363435017878840321486217179520135997181657058947926869494311168593675018378804060787931066119658850209873405229678989529995841848537730699438621420410207065429028423225058892899198678364373498382210796096110202549025732645373808286500323425786927406107358144550703669346709522594728970924800128732363467475721436931628832435157943861680365502054259261261522677477751469925434700991558555105869028598781042969840416516559646878140885894259972612876176206932481540081517844751970841275816223247403281515064418946925858625432348802967434413577392158074278271206808748455930145397498517045002906376860529544167466816662466345602597612768136213525893900424520363211069623506923276747815962723378155064821839664054105242306162887479419986512996656047933324761878547294269499808386206928663683759280479768538144622224990364489574649790673107906286821103422723870687333040893408653420835179197399423630366005332745736701586774528045078015071438167988310666996862537351901330541271517834613744469561460200777596351247930317054469615333891360513168831812586322603238873068914856645934631574997666763371596599512195341458039155686823836092337920814631022000816238033042102067477844458269179259200083373022724173233653701338764693579748311212096854632515244084588291183468408135693763151042935183303111482113069984734538418277417403280736731150629900065710780934424483277003363995204185619997639162329013819477206796297140452914015043121653558663508430508447809384001058805616784813705170789090304177410583926757903688026114638836302981352973859143556126499888862123436764400613988941474371297046617504414152160497890475384184031680477883778653971756001313936805135208784756182073996460574658620618552710756395098382780327207477765511917251910806198601956114339226161532574803209692901977426957121240855172104729237345867844633629971786009072697516177814905386007074913416421605948491776359776688450683053038709316311526507203539689457887655865574350177542072012085631078461402900911947204050965241583025356375211654231170463478513467445712040417983270042505463353457290045668460099541428141558190446464605037142211153878853964060049047487125702192597032698622388907477694624467888554096329825934297258703316925768662527762544784110912683949067468861441101159995574631901658876093025731063954521495966701430684498987194123074225949304432455110365836516246701533642469923217806976906529384175886378855851674284311901605006664566448125592453685475535965174883194393128397838484080854799622042451229649668950111613211675662955851237447958716570064677238476564532518925174114963708689454290424202858308698709730807534922455986938669849909163858613077367788511512126620961502808556661273614041878457569619020221914651991795096407129427673979391564806537585970238041307259257295981759278330453358812588114466901055423097197379975591135242514136296669392820505201572548271356590422187061579596024116251463153161892164804701400999348910052169557448277784056576228098578322204357058135375461009705664397479669170812675081590790590691120823028694763586122080623135241935428852246719162467298065870340293604464002118020324459595691063304669673564139463358007569745006245975175916961750801081181331639498186808750782960290840433599872331554994755852046992658848357864066433193578996978525417471417480931045212249470428174528527840555865289721080080560124424119611888402589476830565180848284439026886311027823924258496122040350906324759953628898252960261628215964549359060290254657866560721692770078042002151542974245382778519353995350432594553331764554953244158393739979705322821704472791305471749895160383313208202888110011577128969640200598175067051574022584025250776826899183319509787757719849146509960830785739850301753464659364373860146777877886133913858512587038916370573487792400683568031234151515047032172477165976191212504322427229421906931994741948247892184482957455165028618941540491826455050794278097065059873900695297787169099605561974223255324221414888815020222523824172769038505755001052095901303945068024884020319972849235407595080038414970169331242103290694886928497287791556561810483110212783364210100559736519324356260038243038366401314493456496996608051978388433604690274920239223491035288762625157451610794121084445868952083230524513857354795167070335415051796504581959266548714507393969271221341890171582719957492748315344752774913395936672666302901068294048239919862776124280223105886403570942147898729645933754974302030829755877144757462257479880743233118439212030846054810849250747980771283713579624953926080948715969407417854461542341449485091793720113507069446935898293400081047094394523985298914806340997632590531724969240160656486114633980419062590936732420183976842442001417133490298358925331140368113492314433840568568819310102001528126609512487899018413646416115418601196060870784041575085670744794398225512737854212255624263638912578970664308863360451326098495992543526296566922291624375012007751025371185385785860629893274002389785280665509092452579372113154958304484231420895183729587341390588146644547670532535212211434931364104132108790546767309436871888926470640633854886496751295680370334094652696337404877157392955967922739572328674607432850237291837841928847700557536794330404351693795741234980082058875033870582306830763531501334707753421316858081031763440273672169656217464868465168748631233332633570177798079727643873882338280781267067426787460650520363051549851176636179039235812380787241473027894828951187960691027923693061463579161218565822309442262879649374407395567312484819927153721301829046079983250601526775635715909565593135500985637588283921993589908918998779319216166904968782755858322410492669167034015090872057012095530849252950722081554377573057981496344212456378377388651362885987587884609820674215757322135531994801097181276437513189255810155723536283333494520734454188250748496009881425896224764978630222094889542811911190983251983051454249285765133620418374402540269347436922308744773785624998821239323818670035050038702284841742998820092011196338640956561007822971421191028422331700347731146319048669279802185877017301242869423887098418829002406076398062772649650321688375756098573877510702227956275804128522801070599313147133530418521470485356545829363241717451624541652236313139775799129423767659013636363214410649007692095277130112584576690427886656881255611958612071176802263149166855265853427696793190126937199470010580663738470984553640509528713481753336508822515425681429126478896122506430592550965302279889890623661078351908775992952362768270276737461369671781691257233949751728477860643334181144931926664432965642469342218474182204298631276788507244536567033745943982390115332268947405798292266211135455506255824994459319824309920595377918954531885260158476177252032472959317301731786092579585656060465876352449638494948150763047815829982498307891319884269376674946373325403403631162726364763526702471834087009905256683567720679604990413439080998347254192952023699825204965054114584709193533930396932555538508492478949256237837222485616543567328892070290236564849112174315469199813816949812483079522642431960301430983020795842886215594119905281258311603901359256840701474476911180491767547480352831285964628903882348691366538625708031206557233519587893551791562543356989888301511204004375660910756651063334550464292097059304043378553843064119633441073243143094088687547974381043500868294864004617067482832579682301326519238087173074486185124614061115051004766103173655353667183955449445268132066532506848055514351418067019604642250070032598758930272381191589560079846163756728897885494707977460325771263085845411866047906208539147047533778764676503740544828931150423045216472862669280770737388896710658067472083246463013724119646466519701411015191952471423929915608659999173576569177699804741892106756283387256114239540711251947830128313265155283777970125602139439702484000503318387600928663080285433759508063594068512921216033362493970148947658862970695808595105167517583733264192591214317348852246386487004904766453654986733178196022704411295822650478345146906964725314968777706685044147474070133538085667446150241856848348206110347403989623709927899122497703106229949149598446602879237582103630552183566421218207367927966241573836150452073578261426855757300327730778018445801831569371724409081326032130747186815331643943247959856721992588342071017463434537117262831439955063067032235390482297276917840794799315513549201512623314266502165573281087083763908662336175310240313327704131397508900025825963320936978463039384250754619511208515124685487721337566016809200044352686187177732191428449380840493234368316548005330539900960501435077147966041632768959318159154881737048590274735294716723204307538720445190729406240175852628444668584641778599152775479089779497954913765802106021046999695698427210362595547306321637047726809647473742630147856687400219675030156621404298002555557971775782574677117841765174518503368654969693606782351799056344593429604860781504506724053879824299871582670866749050176467154865320540520459263279079969837628713269105814161304775928003540668606664008510682848952207931207321015926832218023228687961267965035364738715278817764312178404505080442221219081767324046423200932664212610995460935610794171216185768814786341925827344510316567274104170698864540050830041065818602515401479938659970128025277775533217768217748531458969296502452869528695483322783308875993140645614740001922045679230573691978363157230745920034332058820838138339044191748017181176375341878712199610715978882138368514115583034633685193194072340529658839775937226698519531907890576886833790873172374183051063091823286702836001753442794237169042240574973465240803503783068085757136062575739509940576826995837716426323542574903309063758820258880347770934984116611209676755221320210647931412625747281286956140176913502892948747491815816114115263787924240826743039029991874054387331215665440864378630373142963372331035797725068027916508527332984687889503682659002863175600001671933384809338286710001790566950438190859454818563815903203232572998059016970418445925605778951738558089050165676655991249105132291209675386385067148227138370112882553595816271500625020791012778884579558643565420052286415430624117868347027836381034499089556218903825522351598897786212928018333192153236121919117534494551381367051691081439483985765116794389144178689691108963817851696572290176122272508451112158151446978072918516334818879046521643772104842806903703173836500641820055005212838099391236766734546244299436759301967751169488679386817858054663086210861721632261704400561646024699233948723009607464956596431919741374950947708554708701835820867155564855566561196475389584162371451987978776049988259987976641866191955599391749481432641754133164183762618038509745929633506158416150004142724384418128467481254392408534644106244984954317305098515425326298325026115064917905845948789647065617440770584160466023545483474882862581087071517028653138537254252586934700030624328251456009307643593698781188563097686602078287729528522020221080287474130539158158372161104691958335821993933382489717707106600861416862740608982380853823798364452577610913353123699610262510309106356533813710700871755400739152709936669275073264945781547952663919714845988982212503045791974751451257724480964990627164448866747427313072534995439556226998846634756304503085755812132167833265846130117350943107166788611666251860080631760939516423905973838648758968057638402364453191411994756251364651020952398461321920892536468974353030113831218227969236188143876739952528634961670188810004144689504779596717360068001730210447485651918816650091679802897632080949619299380087051696848188670009110055692444786274535208946115416494859724651467111142935230179064734113167169204022868361790428523295704487591250244686755771583410543547021565061600532523387434734353137732438298395200294442304654189617309935452668168660525962746091331298175002023552537304311964236908816543742787793817564895807318489781543790690216401567690361109407301372893730230673734269814477620610046983479639444253919556087978137018580167765770323588086401339862454870611821500153894271500086476592789802884107842975844770622491202615692059453927604533311756088654900807689462409811484361337131122996432555430562320004850546527633406740324063532790305390756641984464979408931840948655952663792467768103745642059525775052847288888608416821914465652876710276966503572438486578484234293791379752773278448965317370997870244781861765885445404183970660278528560709899167146599353578350126214564785318441571681532170490369085296108234981247787248433110002202290909868516206479231676131052191227653670224880635099337862338441199918160681583800910177343346599667862501931092884166180348220386072302349957508090644986116676224854751455763684582107131539719603457331868893800259614075435231681670633982963506898333599888528993047175378746800991542017320898617919336312469768013023106247139361552496496088456489840741548436221113348518654882364158105267549716394126187607868114493879408762497446598708130688845509172691893728801038937592760844182533856057082667447313611527730914120824327258976939507937050240788506708788580560927663369652554598615408493208376416006825187251127371000082744756526916711609074803378832667218092703009415443197109664972630322305196742420272243247886687652028074037635144978314077671565002955594267082582000436054381684559676602173408546461563657999418042813393279019936200601445302586259722730948023903977835450167471082893116216827868227637263336639440917024215990825820883946282141476239244037909473110754773037421073489223606726825198996930638104355539849461709452384858108499434827172871359101786615842826459139549180304741075204202881119377935235340461767706667917510844025188822703092947123049443343987072396991759285094952813563629457663434812733285416733917298032910976702074434376077243132741329083698352054654760156982850763470254151894534536725934686152141463947384553181082074384073473060993144646633796557986585484423234566654918084575930556757003972313762200908926813365799905080035122395715390986009448452218382123566261004654258560818472757297259207155796981400523126424354211685157094406904925230601097691509927231416246548292391532231236186039773872758482482438547147653090662463099291223506356263493907574635380203103672062835273526494136074702411695707842484296343838143716890942402034673338240453549409077891300268450161073758193212558384943037114251306560167836255089572978295381875412447292637426362382600650881242823664956035361585548559906145187427729868275700082739223825765110163758208339432284554343403668558185828613583169494591593286201753889291949441575648856239042004095153685972232140937457830279372107805492151745510385979967287857899602180670625259329698753489683468067754519458395563874268935252886885383463608051453975930462988107800841760656005904240698649436075493142801715673925790018583045451061707269988161297649743868013388651979097429524872029369596976724374575528624264281834897381522642991696191512109199820164461128070829571121311324594565313469730147047068804453827942460592175128559089251893192583785960448850036769714594174927128832480208820697232202178630491493633413319920364953924246820898771998378473971187901016947845011887114311513327929019732942625420556716561726733110000069312949708487628081276846760409794749863549678437265008317809753483234985665059249933687894680345585948310445032967607205538746477571350107323460956678884984011516247506425022108472431892035600806643083230263388110734567110656529907834972301990721262396162861641893894649232161782007914970209109939532198098247639309247658443300747176004663603694696560078944568878531992307289142468582786716003534811641125937796060865152604973480943708365388888496204429926316164695342722643218359912856698648385695553438681452471563750568477795903845944282489936620629909233227767577815875491237584966508999435126613280104179600513314994668363360975383388328132338548085646080200304490222797455478507971920841266487631322683946435073640118776479189911272616402167939810839422138491370241375719084698716931153110078075090369010617904765213549196944861757713846260905843684971971060457967778093731328032348549809710718610910611009857352438223450543115232623400838009842326299620755038239682504519160195571394805197537654770067615235317751713687975095106794964471030983345974068632556502450841021608754071174178248074844345175607652531360703321103753442728962691614931338981873038756727798501538358967808670783595031333738363481205353619623330979457414543139895843019467203167940451128399685530493446959223509190758832143660751908434960363242084163316284824895898028842606229460093099200986164510828123591740578930319045332475531606493144602077490401610459362600981818416983042803975622585547104193817370402846888710669708281869824699932768325456414019505283073659509573982059581420199716254962478685377189829979561355621191801995918829296965738845262526574110624887900022496548094540352939356886486339406445345852555651170248127515972882076687824543684965025379985149685695328285314791026324151647524014796058304899895811195777732711752151971546684712215165214361792740604304998542249596346820087434526709207183283031875992064052935112439021102762836244718540664329190047879016526286149269246327054609726056264880512412180909629531024280033953728060225647299521263295253407939839891873223653242784510986546586628737253286985938686290106586127899288841646182712591162358524849957388771030955561804896656842316644993291150443055442405358352843206340550671764001254606835191631768214983273253983143223756474466534913786391038796998941885647820828860783643633572206392211579434107940582555690266872932641050019799356290410063884070095036409380139574724728903219552382486178009199480076701958924143176250596723623639696757128363022330475850137764313865489880393540924438639875084819634319016100631149523405893338478505827421716655860194501141655581876392939958149490560662785242044458965528198769085709228809449498273084527098687356518270267125412097990559001863347714027315066185649953124130983931062402543922990287990516653794041427821221580729211412222636887873591018497275280065061370357117226744449907361881832353294889374688938132241247128368988477150312125187040766285173564204901844894813059822409305949012933856843212652272187522000540693471514643538298460039357834548287238023444477130118191585534535066757093360828278405060388542832521986060137207914031990177282824304795666935879099081748127244825035143552690805105128799898900315326548656847397382373554697379381875288222871646368788627402982313641386286068151535331193169671815808969804759415457797415882590793947960064880218806799453204199220635880420628499343776298756353457389246449334201723754909421086873673028598927731603821520916431338092335334941714777894010973946959197440776672328447879636694877522920630390779882097565443030878034587881309220257895200244650672268227642793285992579251322090119470462108985924296358687426155698512526205126758764303317684797744318341152394445329238769982126098356337698429898444583921305720430289573166032584323116091908916665496585514738877079565858494255242906877796170917873717382016664918700141876217436700998141573471251260177628812961203294883487038789226563033301484488036652694134177843111032485413518175700776614036459910435631280318926946942284979941756462468144749197624380714036635059236143936785735718246959356907490317975326747317278461689817128207410122446215413382116795821376358422157299071049719141084883293538258333779920500330415659568050449179698232485574111907256990002087484685033572577151367226905356874244234698662462912342298551508447298752117394736909055025717247831149427243131826816947637086402489143902052249730839471773945715004021576842869535341047769295941722359466104625069344362851046667536429991175359400031305328256884061282226926833591348009798817827900466489130501172482489222254758614689154177722065722892368085778100113559217699078399441139861137240859463912152382141653692670700213633834353640118023316531409974201614806469545889160206815816531414875618303605685627435616326539284835562264546436586293977139372471502804356859622876057754309909563547050658260355106186272572267248899651843606404797766897571100817315064334591921078992203847241337631556732531872157824073156388202295370843832129269418866910902819804877915171955863491165673509334315984959011350307959988512028893530209625237072225236487615534318671734191648640260467762735736102281545532871227181552052226557484124535474957637514604231679592751805881082555301278322087621498251595236802296761783670944901012347848646826360739060141007746383815632563634930861798615498681558206571745775902580937734710511872517250277062421339799459114007464312560523099870036714654182587019410892938511952550473480318626607934361540652074090638040542274456126336579627344958351448952357709240309744924677948121546923102133241416601649871070196367625948650036040501298539932194074632012213096305989585618222551698768494145027255662174499699911014798868495553377384980306266023085227891082288309652410727770100986352788307392323476282792132463743836491077237160885461893941787723920255393766922373051402199484164112394080299914792850318705817188095517240451914153171759795132440394094526736070871170200940304274477003717844384936544767328434468997711361783777942265322320256941997044213843959370546353067078145398624087235374119660766123630428527371186810264643774840954916334368694377860832463465679987471893181642970485942843274495579930633370130533282827393777028697423114194443396277606201308151686159274586410756126205305118187105028681624994846272129052455877707203154008667270519477276760228695915112623689198884217745839473944007367514630819270583684263555807365653170460809155101833442531888443105139672731646689210583069072048996294961133767587643044484116725171772795789189085635214778740692766755354005720607367514214782949938161636812565115227609637143689332370883643979293053499904325071345059599745124858985783713427619864836550899079073063559580608030187476685291179508904089408124962694646398762301159605767735483465577173584852541039932385154233962059393252199187157671129580908099764018625551854367619015031742056570408689886095773398564758535794592514295438650038477703953885369500951581710398274108192426914884909531683589582651068153344615850880360475726317190178976087818562461949354406173708298312231821834366076024035827527455372492473471594045006147961128347825462465760641222116743356081028320304185195196882527497990709120704389007598576029500358853977399321148045706865108346064063594091850332849767192712236981563675110711535329330860290692994797202045809931721976447149284583559913731282275658003314530708038344118053832579535423942552974116904131178916631768640621870796027298970042653693528726310629106437237328049029163618020953870762106395214373291923845638867098408060604670855048252991003928345159745997077727014595505750363692665641138867993990205055354198042545921529746739935081086058381808885194470072255200512352378706324667614356845060818542578316959904244725831782434369084049545291299748650414788862140687744193856546522984210481942321516114123850545450661817285472473541518926076705450123306672444194446989324628126343511632395677350393358654240396547680619493240705961613506844686801999999145201688839169168459251778971328744894062454548074369822593367655661768284398734035507730863003735829142371088357614667133580206119397411497832521026529981112056126843628161602750068327991193485191375380649728605754661799174025710046111723967234618898273654651976546588120676026694492100303369714733973151877813580134091380077132200878515065166875183021836317231762864621752953376340923787934516346691406664537100359252291431714653235143426168138567776093382921773220287563495641733215635255069490339161484167082925402818346996127279018486669151850725897384300223116565746971551361451161131232763872971168782225241908113078470993967903377769467111082601149874118811835552367032314040571172967271367096115912276416041229841090612366831819775561517507023099793103931781073684250216740658535035571713899715161227245746661848493930850243061968370657604447170346143594173682594173579908734902244280305340709866142770831407837155945153632729196245681883555549099827097804428827650395895101816192100175629056737685367160912460314648058791278763780779475617166642009436656068170519986277110795040348790127673615999149654803499993750142251939940826405239504710132684879813758501640017697703241004008657232074046252884588525751492300331127402309573209868672418124277398711303129968809555586393338284401524154788355935582887971968180176196084937551811068822234514131927987157693097298483478934795599058289231037691626502278849721706215200534055921802824058616572910002846118354292724081173377228226790432241781019178161678365334932328355512141367730639130174922319473107066951606114086936422126603148271929083936558975906651924388682905386778769210688768564516758920295945026212494963278665772588119728320045906621749926110719365229645944507260958882805406467372428044794471949831407777957958954955453671907514782175250985654385736138428782149064358214963899456113045039928490645502980935086235925477047048987128949276791271323372325853263098872026685267037408506676310407990124364982973840734278820162384124201759679264711383885402961063157090663366566337784407328839446067872383539782011925785119413306467808570671071010176348465260480430144812201408320015808396473006646431090408528689550282266674057615289684389317978262154664947224739899203327371948667358438933250386689923910726263170077411405286376160575622804737804659465050040383157952939278733511292662620242903406083848054904228205972777441740476281152843316378465955950806664298806023320792988716046222856640699321112767351956610117458192453870827277320859418644115149355976944824406129392127752184492021098367608259040550777797563759503854336490925475929996661683433129382805798734614538040531778517596092880624995757191300190687345448927191308728976054178818719560779286098810749485114862185482580583950261115672927999966198447565342478895564777051160409059233206628230606732402333456253409560312401597632321152028327415955031587873895332538650074816137241904434387032745596001040111872391373371237446028603986350239807188653496131715109297642601694044757379229803469421630932951614595827559775183217693964968204222886510992661511419892663870986327928497208242890725353334306388745691757756914031294687593188971697941792943881292974479322307348186963958710535196246800105671838022805960129847621734280355659008858925052885657032516814117400283780902921056228051565532762611851397129910343420717905486516660433022562361333273066372517558736550892777952478326777700055822695082469038183131239701081340903929061295866979091885428212901561832977145689856487319533849856705657085166159179267326285642553183034386049782749510124739279905275115537099283431571102463224442670795248404007689650404398031520055741073723403623869685800856264443539346693266677913830560685630931056097455329671668799686324090242446380308408337116546284937803130449119192963827239742588162385392041221190525651537912697997404486971973953673459343675231127126002666544886365931735792227373976451051647908253942824150273640730983985888518475825812676672609059826348203451298937971734390275146657710629995697793840296033834945358031955950473628220726248655796663239022586203856750913732526279268088891288663215086228998788897538777493335808958582123345910587710753524228078590274439666264645990570173918677132742149215444539978448132940945416600980075277326847237081116619539387424950649520543976635480631389796729655082805633004785762352556377862997035503674928177904636254607186345112461198733421579803182288890670449850378645536570211569407114493039977946757901581279491744508578404219902112381291652877102677459462858614267403922839843667125238398860687449212861552312851655705663411413666794330742330464140998472633985449170931356754001306463186875024296149495400510286343879241691093835603403638446321681438431289429689032485214902359668045428683625468550556728471712479350277149719604651191632491789164485683351749085557902440062752513628112496632899662712223051116245066921042452346016281543954757541687524576920713398768844723171636942580021128865566916800961570405125708795142293387201601901436764271457526016154914008784457999746488958238871581852216762649786697250626349450751107393795565259206579769522461431789559655043273043174993738867060331353306247006342577044616540872277611520666637856397309148906870946784244283198984204882122784501014065982110226726082828781058503588508898195143447140008921238347384802461909725982669758899662138389507509175088273091597665197000565923009980802170887323188705497766755525346968277010821228743133269585421401712814561033232021779976252025538928022107286548660705620742471276514024582601479747458255249774192668697287820673375768044384154516090243467294215510820610343727145656789960880628800271133376183733372193041174325956786901644665408465197472377228650475529793420551479367660816822555532890559460841684933336729382751870099016828059649417553494558817362192012541877502585116715296967490681976438853846313304326953624864325001194726638754881127422404149068225181862452424478218556798652111073919555126404206332211580203005369590624214585871612191347800676860406770567107532236940052818459405982199353512634765997626659802181998723047554154849002238284037981244963618923847140902395409397516310101379418172634101269237284766121495010005166145530116380784983630302610907028177665601441976252434196298660546120347992039190448686289023394953889921324160473642908930145384487884667787449988891100913193129109966078796945256778392370838770490622195658574837449690687081851030912413651024173497015318645188556826159623964708321641825846074004190343450210764877803738830900080509794405660354249301980657031356023481115330943586169785340317137847305242483995334220605791703124344812680397628984429668107594385200768347516865102285299432057108508202474596498710616155249080841091265549289796235786020241011935546963375830382733788541387227413004915283095140466745435043698120519316328958770730018003054271133917577041821733032677149032190085623165856260357354462243877270116921137790543317218304735040494372391105500465532993150827814710023011136660912385993714595543450427673081010894024991696814995488342697716577231959701673937912029748980773235630365100325047447207918297332993571283148594158169521786765917317084125894832550375901102326384591121858059266232094781695251904742641454698971064325432483838126054764421182183999368216245733026319956973623720923127241338523952664796587217245205976919846027791726988428218411756768021330098764935879546554973987093299124995547181904172517921708619506582714743650914196202265701635933531922397334040923979472124471472508975743325512266119858387137235434801236103957211475450608683207985866547833853338094507143215280619693496666803548059301455342028566630274541434269624348398871497354996104049279460398740851397011194644517710257071497249159998569890920535893275280332040793262722347419891297599750156054233292834334028096469990270266336789045605036776781633823934817768832051082083848631059165162055142819880607783306605171653698965296944333531409539864249630287024897929815522410040348950362446151426330635233943774898037257232898611293564127035318541566447432833653741430120283936601600732067984983230008188847275718776473693400634996063050068009592744953108959811428476751485885427422914100869378864508700600695774972114682872167530329219442182345896419597681772390628890119878716073942251808273196329511887626889471852576588544049181178879234789054564617957348913956528801588468121004988614691504043554497330580239191820489222534899741881902684735468605216547629757440514129172497259841907570643537746132206532539653039318802021610919543753030525171210294919813983465091691222315021199723075137164223271420799673659081277385565886939211454589232686906141120875352207429874125568606023342569775959827409802611997907532881979145055094354330754653154192622554625744728484235015426105355619419242685212585592197194400836332397025007074091581559522925792331482757037039790685153976016976984194523372519649946490833969084694612479328811322514323764535793590324004373425715856495862712093453763624036064919584524243253922678687490360154563709621619977342531278478057939637684474570131163707850767067877243161393716693941220028035150049703256378111999824101116621961377431739763112081548556336745039094575095189857739312687716706448871643309486622630320073145771973215516186996659996085973000304060629947131248663091294267528727973385305093123267182970282281995265609909860858882178638069369728163227363662666696676423864595183247286958768423859041838990320386896064182597344759901666317594111207868179008393155086244825634088712354015890993655233575120952287126559627740980759324225134910539536885042491683467732217668444802125849053101769077586205928391299046200115115854545396565083321004523130898864150120182793290760585784381808835778757811839962684019489820350137562573652379582847216727798483117617848206587397562523375358232253677163174202909282769610913849918897003987045771178440001231787307119712506697399801070353794597725814286344412843585717713994411123974547271728316305649771624860868864272261781187331844896648947121155869079180467380006804389087805185819840662641583952637573727012385902361927447161401924464283452098684528886266976084728316658499131407351427062655407632734179474406707069745283307301728252877154315310196065729048341217717132510922757419596102233390828319966803203225467743404017312796540617451105151105475822529355305287062493626549135993672115117511624837984186575820495417406127740193488353780946819392242470038801770469256087219687307104175986796292228110959537374426484841754087705779610424290581047356177364852962407070872159525957384209824104705509206586441171740281646195109016748139725199373295411211084383042249795180610336347766803840417309049519321529842222515510854782637142171290183463454626698314208980272189824992077479853635462317695961848812426691579360293091145799907311320626000792772771965658144315911578133607690163092907606650398181419309508946252734629134922697580592705005412364981036442731702233998067839237692988529991771564710975666263815313044662322903240032776218851921686089133633702269072255225316769632003614865909071589040763832850267715801426259510820411723660875001425299143420639977439475516178576190010831699212671212770626316936454789298840552911483052525117701228361572515418915077144271244160976537894109068789979146220612329163753181620406082174316422413303995142081786091287067944575920029128187115394462120228439831738968687425061671307149232324916984186587457937056158180589206617336552538660456211278957401305668320079109766367274542747465800192044179096135456084098717633231592513085137112978276052825747499693294892318242060103193385724553730744816264778390828102206715576593455422448882954727017514833355770888490967996045027318035199799933750196511547986912541685504457843765584687903342835369870339189258459043351762820383881807847222810286612837526100297646065583350644212459556242076250845519644112670583852296979552044824995983941237238250706763489776735173177132390866792310988642633128956658742398622115956123329435740941861663359727607303952382968100462060700554116826441280183812078257539794968662979060781883197983953225745050501212353963348303563932618487929273422831862264097981801832407456633055909919706040730155263184298036255145549172472292143705979188676525353452963103762367293672382362900962922056010585263845302033277610804069767836259211034433302493879654350206095277064997219249594123117020783729810309053770255770134440373802922129053989069377855784507561175124658144696593252864543248302385360258387677361129580168547466839372529261095475507562459237674607973609759326960775706069548981206588994131526663100255818195212883373899753493166222155067909272048221052834893278191566165422368156858353979538442533362554731181403298991605394227177562338240645695541278961861981168582485596802737485202411535626835654571669599190500329706771493092580435965449555888878104189159696154863307990810843085214591929912724324354666909729940313518483266960262631624911403349404947399347601297055780185670442936248481074371256304937097373631688172436076051751130579541884915659662719719107721060873102454182000718572688131488396603478127874001697021664930300978550403820471337783688932631042852795790962362716905231830929918320956601691472156505292754435286838806102796794362677286012534335721662989711306419825646036748337423900426788430391642252688937779108226489467970610562849221309201661593431002542135020238722222702377030233829553007979226433783866608346862291839617599136266771416807848819760694039714110132226300861847669829933287106999843961343268847305185313445119658875633195214755537167092596099715342476908576547436051236032234713974060251580472734722036400723147382741242914059306926783754578195137597584860274845981540477682011657313987971750882648291617473630485980946072971987546919563588342827142034213095677433298953185477896277498128148543649154007672972630844178603046407155718903085378003449524378532525121309135895057749362835491163808300264171402649440834976293941391294625794606354822947855022967570993149542028194159325979719241750035107704396422763921339885220955349481837499880936052565689792234907958011128165628449811551509466584364362355211506633881839669001404008587792226207695159918694085910615768914363268902222378856248361815499344044530090438991997756293684583588772192728281482487563389498148502129584866571144926929161806839582084022947879653715122450902889678409644032773542984273128729612028274746615883209266710571376902715196267679165696256001148851453502661142764696791406815415621033240167425614423518545562096383600645510833119636704128470946134977755443393895564633273248500400141561373926522235244248719301337664271903156495491506814428009871816996176196269899763151245664219497016298546962357040555396751214479933521163953950661239298567785634273223385763972160832429299012343598556432116450684624040213134380544524046135521019453857064356862838534857762290662290865509924223181025255163616609437430571352206133134785439588147406067949049997963521066761923366313814316524863429348889683868550042934095254450927045054681358257080349774470697548098437293809147335109347035441496870291486768124686776902129662137738295119503606399361982682567415108437758258685740698626651879835938651534617648017274268218815158661793183480574209533646185956890421930340195146643039982493460598341322493845955449609741452477912313899583052608657290125653183553893333872273921904580109699814654261866507951300025439242629891613699505522151273259384886644636795230585917350124287814458234320524921341582668318632365633665807832883560068682207122968795730782137605987130611611624523476073058163166480499709700690016431784782590333236313252868959756898839199726585629580100658051694483243517790345782085529758464771421674895112205924914406584380544499232815936284762720997340550422852332002120485746853430793828111631687695642594186772261717770145665611949273973256800510592663968942663489973631619181366208429197674580113747611310345364469801115740471772512464524871256875787971151453752543706397956899875343571503705275813052722623721625138166349721009459753612199460519506474907312053485845194836974945142765944248338861307620587955360671743106074495106624960590882111232707067240860033491040918472646780329563211020159918645465304524191032610747631623703664018930411369198451994602104634984750367356610946826774355528050090086171839398109890291850328946362585303339350615377194121680472779822164682870436018525147236498823012627506928599414280027817525923248023707221782240945206243881253300613975149339932529914664151813439731554105578020998053398840782851162539350936205758616928829734027227656375222572153729105696362499963352572443354989202364109853567047043756046394702598602355630085942741360505495161993971929070709522732723605172850720970974454853704015068017438972129926531159908731161951994234337436915388281903075985047903887757990192715029641722646863389941702477765713552780942161999884167104157713588608976836848259912445724572901030932758519885420706336878679162225185309809191222362001859823877986530707647604324755608234500683395044281558376154215959520745652808500907295295975928164368336881134057064470271513811747712831946417120094035464900337439662633094709787919849857051304567221522021470421232224728173309718296208336578917375333883039646438544287414651099760632462795493947678830773880387158047770749315220494787725874517066758269816908115064316791075340874714128034048946600801113785200401955826970540408921165021118212560397062111701905757923784946581042471647146737005697723372759610636883451859334342631593478696588740961047058428847223258481526212023553014222631646136961949467408545916286143176062709322188832579696596019149550200720861130648258567663615429548780321072484046559585165792167040781593069875581406934546297063165361577928243989839416444912887367725047262735982359428248824477163569540892712124778084082365581449037902465274182336622907644917466162612677256442045312810458566733602147719680880618372266301709491657793505245422035212114011683470366650520368414091478947773140328939666389270183609730370669328547622590208888955534285408038000313090152622350647344570759324579277473576279977273858022241995286775663096326032393041403345606948830113421776140392660457816053609411049011971090663325380488488812594685455590166184864811284150283383848123736791833934417445662007378777435510163643819388808103579975522152483954586825422730329716234257370628599535884800746733419343322088243593498676753664731931396059467393847449438721800500291808101100356528632186056888689512430576431021974654365926647594388434323727571267554434497885282486388958060266578549020976192511131545849002798440230422103046820994218045869201552907555663176757370495822788642329520595612002628952603788553184378725722748261640701993616445521409830934623607081915153615004153529940428318295678043707100373970580493814196905822508491410562807400048558654374507648484576167185325341236551005987389883815866404544832337844482897984843867743078233853293606670150114630964584148882881057294210133565803904961702281065254620167511567998720654031967415947024500570461882426691923123514463801277753439248215233920042835201454200898318536404640278217962442485237530423278561530314824103537051154921278667392866632361502604797834980373153518848695609853319476896029723328338550642244563335519417408253095428232296736121846064283563333097854478329103814191982737719319079387258783880689004741033157741265763325927362181569818454185801262255985427975110090378306284430472540724126911580103296714219318491150875076545186364452949369640668508640538204907688855478811708836844536850459421684955293605709036036204050250207341110800091687045228558281233079645631517514959021035923899540358473477903411541994301873824323411425666950502678207044210345648050171276143566048478145591355911812975429387591281451827301371293956611150723860293253525730716248903348484863443495810452496833657423356270412871418222950860674901324363258768319480984186879781233058054548516216782018237559354957996476899084230249491208924570752441526025513841247745457203545625040960883394172204027005043767179352751278713079863789020144736975983511182080960774871036901418728777866426878693782504524578095661616247561930690592625862688433068027114250175068738115787304446198596528916957434685676899538463865792911664147873437356406433122178378735561242671790878149564058587169009462667371049781525280903709006458194122475991451970224886603112288180402750195378452136799270589191789960724909852044756525781637981977165641173816221148619197869498565231381657471964717100731369248526663764187900922589938800225310164159615203737361911967122883568419721355609207557656436333024491663127932382154770675082913166052437047019223910326295487009327927961595119604308421248497151383421228830163962793344684128201792898973599093829620964113637211536961427413481902806209089169842671935098899008624630561930293138557564562757268803292743732950891669617397623119618016521641819045628812295088553488297736440913148891858303227801157665249299083014745383795095706126589039615064574517855371011833558787751323094276217399217179120959340293043141488577732339320272387173110254742138309739078566756168123563954559042614644182776826233684823554791842329496564165610037579483389085118984195220559972745833273598068893387816821917584137119496094528333838111594162875353834395363274914552526994624373365584043746902850978354463790256445422599763718314074477689290065841779601038215363232629935555028382126011964982501693010309677458710842060382764251253106757464755769434116343705542017939824798140712718325484941369483412172778968321398653012381124676255129444109687465690506744647873035269281695533043461306126895479069197267174010098101290837113962155386232257883223069681361077105253991191889964749069236616687197837792938238053884750843399433916289961962663083528319342677897510695964892558072160170410068682839778469061709812117755539660093960210240949535233879829981021354441018736581155643501492299655372880828798118511433318317626993844641527004106888737020691743656492897862343769189668607996851923810498376569831892824438673482176926439719287422514141512493047231936325114340031973798937711102659166537154023345942404457732424605518757453817739103847134478485176997023223542062385934180117517237971822220990661582497851047130721727589507158664721100458290880539537514549028431416574304863356805332902764334108330136041013112005196188632779615557075372219056840163482701107370982885321834206642634994878073330607327635161845859052011429048016782328142835626731008925770467362104376476203600031513641700356349716186745459269050483860404447415809203944878405424006007293529464680792779240375780862571698713221344965586815317268604722292945153329244292233109827320086514794031938274237745482942393396903526606279574587386687901685703091605851246381214282426971663984777443736656492727347312885008284300309085685996716939752740059485388515067465094563822026991836270005857355255584533582731913975907032725322285338094987706464548103950131063363901058596760787655646187935183508946185885700093371527136097985861791316573428267691497306608317964208973085437961618722356999035515562263234901178025155852474023429228913577972819939190678224763826149365117959802950220392126889124745000406503786411490944698220295481984105728875207852099381338088945350492916646815235176458934045199284647408711810858205023642979578938879310816707457270537680391085097617237966856757538939167935796512428138996124397153722500916613323531251518600434530872525486657765565302970312671199146182215734462803003525261021502237880734632595948700565733825509588937698364374110873241885268799996517421999803080837889851781220664866875531718749051563659712192233609159306044393583944690573248136804277223449126916665604320935096549277996817976687016791479028726971659490729438392222816548788227345058038135883549653064333447884841345026037251516843900154164654675799744476664130047252967908663214166417470015467576034775331235563127694826983596621172848029507766407617400928389370769772456849865274947665298877359777132682362538774115404281446105873175663964690376711587322724046844104528760061672165473493922886791541289633743441560950834093961014249486409899169944004594005387970303120086528163238486229540850879232236399081418540914171463693788876633894288526545490202434526326928515101191759670083823247182958580008748077849691953909762077979643524759570499045194436134457185177197853743364484797848136452011144716431538671683329339584255584422072877660006599690433983537666703998883661487577888816147065901416126530940031406371932368499642722983695922443331003782817669855144946859662771975713045127277990108973165030868360700445566737870584881207920507087953394842923762459619166473920185294488277256280990789677194074306312825528745460752638227514726803138059444445881945391440157774163944094849447859374120031949932482641465937510823125375492061249075152604970351142820189104406662151415156780624286962283956623263602912572278121129050261102826189312686676263230634465532764445688909545622184741136498653641431617919546892257964144687155708959748797522576072927579899656394231402179734979904469856569232473353786713408050759119096463913670413034156798920767534532436537119724809633878958580660988246205740765066606006722364667949317860928100217077474258022950814212429201745911199806020603322540656916672696716340220964627834873326270543386576669984300818309247492853401078125115298011077119686329552039726365510359698497268221996441595615608890142725318735351756338702477019624232715442125798893149119922775317598691650702289265009342398871954586488953492322035724644740027694998433361021782750316953299812030932990030522997979203965036228183754336081142937521104356335995007342508447801667072203744654943444925350754270096936809550742988352490494922681291099244788227135768722470268497398188302073035521266470604806729842762891545070458346699386767577636589412188881850025696066134712959281711347011392975505610762018729715745617343887020102495192469447461350833119814055838659709344825849847543547624349864422523915619292834143863270029511004878718087468185863948948412246412027053541283479425130859177445142057212543989472161314402927755929209228226605584854007203217684922456804982172217897332487152885391272140026069534696305992982423557558769271090634014803564203911964120185540281392439966705201073299794136288166699204287973623862756445026226032322107852590136797884916828761941382838213483933296653189841254228191898370499999736580157280804060501903401398080991513281738172494802479870071063446914926702474368951499694188471483168960039569745422711475495903116323560274423691737396698077005698275487506716378895147055512649784090453297786492411790128087969825658587219357833058001861162702217313356927472550610432480339283189525330517865433838362719011156162944766829640316237044076988746122471036801677637145018710003915642974621321014487616836475697426547853916752894939337900943391102158651265307620075600266308412801327028480115707254986274958371446474807183216250117711250356499924321922928020961071075514097310107980612351586948288344608193436007959352814996355573669720339535666416703367103643145949602465891962618674793014814048247981591903161526887192667652064295976385935516526619469002913391680265890758205845910676950485859818931846793000450592801628809566306495942150187586690331717454964751836057845379816200559723686827326307055464157135005030755137850931944950134320801003349299942072203505198943132195295459517069014681106349034045334114111922534327960002986741835217198597427366190664696614149859496995412217453442534728975807229574866391061376863413817723224260890086242910907376046074403148997454483636668595338451027820355332091937741743016615695134672517491542545724881839039741530369068146486925469011806302859773602049666316033356825384800545807117875057356757250069651864902919138893531143103269205944938022880592479355907712937702429023703581898957717111839458632256490247575459324645815471146689826487830195274749594800576119425662438386464918595653477166804835966053605867345645444256854527690506130973223124842788885884190761750146229343266624639825955003079866222235154463459676049232138721557500466892301436283143845695647222938724234838771393933530987505411348495735647117140694279616482186882039711241187809485760330893518444162800615887124307970989199719860767142112717399466005610756411514977441955454825453640186118543064966493341113766216722967906057052763378674250634477856658184404175649317575720686960025296558456058049596810724651371065899227228603982539048558257652204827747720790683893344272467373427089776688041554464085162815111258658861504958836955805411442789797219375643624199044352801736045318538547203849880882819733308710062968893683683149044856873895956616749510789168665826131258950605012075816001324451252335668979466969362923860635163080086391473194973402143039688289287893733021628686029477004647303458871491854107879771526170215753707056544631427139397029926997329112087335447965116596243180555059886341620384590441364525365828137326147383360450919725561197769428894924239549108227990115039170727775213791634721550165829263224649654182564424775393433036603538814038101288214539837291729681233266093091895423823761522427702316498767293001990831383894383599263447747691485325662324305838499516441706935156386190792488957353019473786352310404170225092963488376848037863578844407304573405578046782796284866421419352949514186900595393642469304462014042575528412923422142149366478744718278895750871976857263036531116384089940766119711175238797752678683491467926060275339481749159485248961319465642168389476566226730507195538400093448724124579595286433044729754613826410209811765477457295089626778008590713227640785892808964637459324817401175176733108821514212159073985929099975636290591557610669557666494593699048666858359752247041655544027616231886391648978155701663378694153170083584573816553982827107609799197891024524961111884071812011755749498565123969387132363548990682778929250648490454904726288435365576670274994863905641996841731663398511969830402775948106486677249074819200010786563974250670097362610869166856286593724401616151612108640818156642600882002083045444037334628248569655686888652415812635059938656318315681016210768993906426211297174626156615385203474028111736832337064352052489066572792865243251101386818700165421827389784041200678156236203064056725642006001099024455647384228768699189720781790773379203186846608052612870793387630722085346832570944535050695850075490977915513214351905287189368306948952980189902041048033202513690286517230373371042717063239728064612028052200654014126288981037927012777907905792592683462812637258649460089372105607686014143357165062113651860682536477549343357830229911229310208794044345273544355183782445249655301287863524762532900998320370792114088979322465063138406406521397129230223848511661293302893464020380547679903492889434532912135622817812769894668774754565809687845637196823209047772817509690912604172591179410930446594600877812754114324646492634657601751236947628708255087704885637846741880455509203435379077742927387964746069957229173474674811307786575818697113778549653135853976111642884028588583453679231259587138301009152425462813580768444250238935636640186474484184493660837967942249054338375962734671519854755959375258112720679650212359430658255033946948106689877442251936221327054205085001453383014862071197270060679115505436927686583942660828980729545404613064938471510503530904691883278425517543419437441495255246663862837448521038712078157579741472070144833503192655391094929745342557357228192257419080916068096538465144256583366864548715483603930546892644104675700712410557062617407187949405832825777287311705526811678682826631956737629114753139337511179239758078464254204213649337514809965492492645410123045985459843570254523332359383765949229301346696446967129938434658789233667465771615441831774400739576429453180363913121681226828141916814385517003003072907277070426363030865566899448367734706783292609768295052933976614097311783448979035908232854908936938128273494704443447683733410558613138987580646584565876440638025988023363547189031046857547396764355591917909276917462172336485097370828389542486339862750336857710241721926641643150811570510276447729652068710966739686602638521095366164860070844237738998507318434135755195903227366543425029477409716790281321921681126067607034372409574814085443197260904527143360419995710896771428197898380033319169016019372128801158771717834459279421251555155317026449622606819725101076099611564516650716773279402764564773483494179413039112846146148253097356445232697754497278931520055398496883881552597683887557368177232340442033121976657542127123323261155742606548182313238637722947110664136696912611707801096256855742969213376605873958648558471770423429362470438480660707663088035689103727250467575050090059808373216599128808656332570487914079701295886944785734968532047328603040529998280348335803443152389594903301746491696912901503852188360767083175962678734649030592920036968264653378566556706503782531435031228076854753368471751233499867481174198057080489569816191323964214184268173042661110425735449488009285687571394513436273842388491910989861247955844286069324011294745549080445791593166464810531489536116395763058923582930091596924887557966354211794678779899383455004120321852099947295675888805018842058330094568185891142685653118339794946841209169711071099233990066050121628747511609099780022705606708769110653788670818592275494863435537353685539032254827249201868061858067266919937871922560504844941511392013327539909771770044662430988760599191469375265491262663917140342415568337394316556942890605538609869363355875468433280738205639237404688475996426312403610597433562732083012902399045593362387399378828997032197855986424260420886864015941967066077883508961497465123007190178909633893031758491636241391949607572115952757921154668153325976574794014320899235913072546255433868394150936632051841787220120740754938740084610776425799313542731429166828062529836012023615771850400286576264490502612267828962932059541036540467114194374724787662336344303133059569795964884878336258280731896614035491088270868190131241190674575889537739357629702779236827646749537359257739001439726270997216438890210086451450121196007208085620293393234318163834978060670540011187564012728682428565837751306857091804556081607827444366003223217403547968084664865270568822693618434657408140696632007001050535745008289900598894988416609449377427120277634970277563967186526793023725735489254334058677776050605209614283086213997711951150116839049213304050445659875614303088803691357082181279704503016570341604360496407410758254219160569766318350892878349711901457989312849256210309609364445408360609580521602235033409885534533198889550846465836188741962905751848319100242666446408704809629883532176954011005362595115793003169389915826372009298472768832316933656995927551163150720149625028005274388382241719991593452031136091411640361298876751229334401758163863901603729370070649189098943288296866026869474075269520043499125217334468704112905902841390066424699427994116859828170207713597765344259924522218046681001139238374159137332366090124103528843461300065953009149954892698306542742122151462034784840469104351689244809339678148856636881217492502804135681313406149191307358486615189758023490699307311379151372173135298267621486428896303398772018200494809710711943808019770522250574542220174893867120684295666529931190591404027267027343146468988873179493634358441977122233069562476109537093477615566849637257209374262692631192036765890714865892216502974262492695678699174568684065319344918095721337272461913741651020645007910536633116453507482344827385421708313493517874878143676793193518200878768478723341246762901529943835864053938698492617946948452580602602922199392765182578305941170351742761057011400884145177761740912326202521478874485233624489592667702520169092826616812291750103767687815767228053596319356469791291426681206489253473955100522932656200314413861440631431524032078301553602262902284978386638996806917728851682716519199888059550774217712730651993069499698136243933869561043902774417101255096018731091361612192532069312969444943940855109460312535512471053587647840823799966492310934386634204663707607518675114804647574507277910670013539999545915012790010326612281528630606688000104879782489965287582190632588508022058081271085585397343680481910975844673155813346053147686439654730285126882316884828738141223057282504088006519905105408869118870097808731336727757869516950304979737709099621086320792698246277316984442848520382216973641218189333163081298645387287110428704057168527381049363591372580256807497227980337256472240997179082553504015233228099451728644646099108072845908875618683394126582726576218953398791438069032827727683253102928758765126395514498485495350576765500188185229627480326735136956423982177106162314731655433872129279357053749157148874187744341618856211693234287697931489672002114812252517950014881036212993528738189301594923566969990790921990474199469055095414295457935991257125366494410094262721385792475709775104734854317579866733465267793868840071386777762323136281423539316402579038804465661332122013190621791756060607638441307318344615356450284377211633505324813273671500459407411848230183731966487911897551126207077516585496855458353562315121219765425421663380135107517133379235690439130037116925583778676292410748755941709705600485185770454489591663290702194912365218421260935812435422377920992748686195448963882799126532613834194247408595207540921276910885214488370418878291694834298656540563591251618516223396129261806355131167690113499786969738778003391883977255720031492955683842240076728692227921309467938578943156965743556764894385103142057050587167669285861903082140247993975424726165281079334460779658381107347293152047850873969764619151225643270996643165995711144125205343971908071241112430111165678493484194413349850609653112336080182932645469957018280191976859573383069080172250770315752099316738631531799596631159278299476760999242553930212721438511915977995828479587394623928680601875132337129644423512775332347761751037515666320819372872317773321631060963680383403054159414062813791270254313240020676682834089195801890434496470629219575228277092407290137463226258708467393847421753435365577450580074355086563925638259679696838607248107948573951811851826633683705532064686570443708082188195900321211118417021138630420933231434689583783648388516821485061093934843315336242741628093713057125386308677343493324866118398018696069316873727821136977733588846319323060203110729907520318322821246212320577946976372577638576061821160477006549450081673528707395719869358707107777187971336481926153066339926666977404614779592336181580531830800935953784340511932118125456725878726522885601210032595055924799564116800467355504979540808549383313160723996599724503451296699132635100165104611115551187003159640459117933761161837816143807822133327115784734753082125243887632809281460369710698077791429022673191289461041172644726986656676718014665365469763576036715903666674578878710397971205043330330923210443285412561520713662849978761290652788484248332470612866280834099178797691472805082332314835863275834540986992011664172353268569810047226789957092862672654279307517200498599729035332210526930155194876502107293928331778162463868300648761498159964157381522251775718920384063358285735632909838076351190398353394830657803699080304747580428358062202099782017978401217279065332877814095972171768560796319609305767963581514887502444693122087437508261947456426446519967811645732330089633955862936431693902202149087268012134719566129450317361927413419006726712914207304352456548445934793468346447955571032283264330819771769468571078240994612441330346401544766634313986792017485648837002920938697883920315978757488003107592711991479161180635615862449593092730170562811332882782223404865117516569716046872697984407512499931813982467355626636562899771669038455989401408153140782044896958955738192195952332133128619904935891039128964848955522802796710184086775173224441125655347695164975536101936342709717711604373028528765803640077062329373145649547651194388025697128250865750180683394011104725884242599370258053606918317716241053168616027153370687981616349212910265014571582833414505405588945911182925010626397070463149853297803906063597157464521536060505419436479194222029708958562296131394758656069933371936002128880282308493735890209470325129326916358660058287512902672257881939384710657170921519885836691579934214694198744132612829262353474809815942892732470498999336424969558328611104504708819854725755494531673429367039310365095696732387885961872159312426161476510641627032765090991289389860083244469134731807602244442219329283184489741645908728516542321781571165810560894658169520456109829110809791456218259313696961977078855485609920673479692296528149103152649831294967114295185738224462035027349630268455749445439721495944443522896673304239069719367321686287565752762906862587577350572966472543548274488133060472052456420464816401524990248401099017363701641215774781310230696416420071729675011356322193802687157455131427213315596613547935540077478861346213354699395632406093978491315516603851802936966399201937880661450368301176698410552599337349916124969361630688212091935416660375191420276384279182212700770545772255484880209627099667999685661990148660358188079370487119102346831146956007281070844477783997194394649275098801541971008215294677429331619562467899129810224757680298417962995366505653332355431834521857681106488193293846228187351408356181179271602438192843694000442659096311347819757822743298084422220390525219172818851981798619463870091981948233848267906065932505256629367700460337025718827089138944511810668621125122579467473145990252962343772342708195917659553172180244348678360791246481564405058337207502004418665196626707425305249057183863576563364573176493383106093673269374683490412808379818425906883964173265150912166261355068150136430538198717967256539992911555761638237022104083181156441031416964757297158511844208592077706354848601910155708309819486921444520116690344139981699415899913157238022805901225424462040269164661221475331709941897297703794639199734824750810031820285528917605059862594734387027687221622960403310627449645272725367808183282001486770324366358318834881604363405172263625467668456860139543977392931184904769000487004663437022638252329424885569438516563898730721695770790363600391187715286605608787733065460338559128584330892138053349158092679996538760605191096824753982129555622710595186175741126618771771260200417344583637767806700751518331378041471773844182546519825103664213506310159251300620212710354078112558680401153395498659456837981499196406837040807644455732972999988267851573275541563269494002826832995712914129055647980961593580450746739577928006628911358891868781693035030287438058836425100065886073872766485952265941703370759300641952731185861211836587398640950709815133678927917621052922950226653832507250726643458754164600819773760535785593993460957725296603543341435362145060413895093591315678524092856489185171068501483955571297495888571690881940028883629322327769305624757490717430524086714594684015784725682128935995295024397378634036648524971045472696484386812528258058316511554538758387269060186070969793133576310021624472618583732707132976988031867994932506798455821111618044207191483510677084781299103576001154882308341524905028991276277637411687016292110523936675657921081626943691660351350966123534362096664804156721425577388388545720793948696046235942885211611705940462994511690418312658697405402371950262029479051762715670055904930081980305825374994076233623812501222623412844425045205628380962850153148802186803703708104858806588593589542000384651077640459995625526743346593555422263865153408003043266783677463047440992014114118277891122309242730663026951137441429976097348741253474882076350791118195617993756893745495614735412820775222772289156420571353623756434473593909993293479869327637926253286215940682035983653729949403849102765608685949679555067069879679429472908543636714058561557240630344174554002193181329342467946649425713248112625561536426333624446060148739088537953559036362754303111249431338101174035551079143703651827767899258858849652761858100844317030252035068516951860578773687644808148759602673574142175629764106395897467518708098635405373645526785415890269425342705181311970307634340366742105260299694502435726587276164201776203767611426772166658320998189888820687153934383257683288083003704591319359650428263871487703538595068726906982984894359172576265851671607517010901781362211194420073340271107429132055151667908606922569514880510683929933669391044591547395633398637214268303271316015783627659403314872122004347078002279904843803334753138879257837888060112273849214491876510405070133344686706073077557887544746728975062866449634330292824179035210127653657909196077598584281825574407153981754406953342371427959268386474485678357635979114282262640758024437221030963226547316179036535961492975880391035820703295398947487418284003968805535775387384649477577325621522026964091885919501913775630455845635310386768041482670069896811100517662515782986981875639428078132883330696732260982610101550631394377723681883471345376801146308374226069610035848192719466128544251587184912600628530124438972553344671546928754399975451936270192657400748671788070809802181804086784095567238722706427939267092863824031154654698440551409255245359674479643164134240382224795061871294186819984740517860848394684838887544423660825769468197995992122397714937016221322248483969679411828238810929256384546079743902090117562595297651061097897164284511514756636562751416729783805113263458331250300260969442701018511474944977323466278243538525917936479987164384469819672739825513258868217139442711249700257791202575756131574416013869014516148300866644395795009124278024074145086942432492823865641050559900602371622836354135333257363413884317142222344873794586673024185442535125436329189865156744650100234978718430720650692345071086042796347100235515361461830413038610931481547915831445653233244608566295151533985353611253715065237311861563113724961566109425663541464691898518492292407314857664435801041962973080714268270650573002683028282147598099666534660332032415115632167499540344249572187382500567006293877448122538223778613478650252155476534420325250428961626381198520280891502697766078001510068317260857587146111259241383331295566785300700108588535443897647410682501765927430539330340677674855856252879790016812045171049121010669725420403972287320814173094139870682498736436282246879646158158347468423521232001509327436912285792451685880744970802723140554083136839947710393993773607258919102818519504700205418708458154280713679032826001930429920733258314262935982556477731755343298587096734157902776830211275094952840519157393073916505300352296093978430319097279480003792730400551978247022993819247417668259568037952147692815271436524466525987813395473308964688182727173632010953205138686720863738574634034579979984587451858220985676362510954912542438410663035004427604701181357538157151407038828155691702339545892759329127213519758721506100661376600744209588656300219635086966160383006283873916037411513163536590056723307964219521270578588223671394757489072613827760499158603338395927427105020832625208986634331404311546028880266318516056450506390838039598023978987756884106265567655638879958291443017455897871068464243453878485189710299841341032969255801302799414565364137330878969009637228195488313488772400205595133552681483041606259326243924973162969717891813265624905710021090280341283177431223971998237898839365469591193203419210815800552144683673475964910188490148793516273022795735506101429181496119185540950161764558384285534473060167208235601404490440952337130414686122359262430378822740717032619326653753607533037952683650928807383355779477289098024831943126619679257363148101360838606192467346897015347416976320631135219984900342561933313696741444184862293665874275673359902827490002719861119058326425377942979598767024322042834146022560517401337485668309208252592483072697443121922142515586848869645530781145972432514854986146018919057756507167839699169960848747392183626992434810039045626509628766182458668920216298035112706326800290285021926164823806270728321920291490315540385220437609066036199245322310033305213592735979134974771423538953576128978820759186428116519649155050107051760483183526796197433087521668905369433068642283148760127698506301966685760593303585063140205418862742005536879971314859559376954031152065827142974860086308831521899545805875183713594752737486576547469844778861314705269803324417830080016513160940359454624415277345231140583987223420709317589921890442741253148487211609235391547142687083098115418106977693700657416484662977597307458225213510276256595861710693633750805273959795509962190661721709904701167098850459788252127493924067426466951093774505135077595865982315709243692180434648454530307605914963714000338268736755520534685480679472763966900392019030997401571672584028395821797123399386764019386050647350604482653017370533392679233447588862651927103908033663214238122346276409148252354962404184421438454615462667223531490298894104277979700743506678580998794914173372463115129412745346257593961394951368025382479816120037220736017896711476600555529877668829192924813619211670874196032513375340248909132477370429513775972759070248552803530089788024138862109514779248581546181325737708552705417743871789794231552270179390235054108387365143687724274132397433770263080896854080049722934969333150432465159366968180945844146211216612402363458773253184175201713036255556637038841817969259394307232147107393823332923448215090820745804171881105748874891783082850292929227373577452860618476447772983601738703988362530779685363895126569056004410457693217966636941273222502367647860680630115553337074257978858930558733473091875308849602922061897478840623065779364043609747689874293287698050284105769326396888968169014747483711118966438489308144527820972544603959837157366012901556684134443145946842208055977326889353395562322411492570515514084464185392446285550530516577328327338807756622335809200545371822473265052718356047615718557063285206175120228701225190851359854083983056944512568725426520141760458853505471185000783887707433454014862947957135385460230690278732948896290485283560511577274027580612882356395149678455734993066408410507432216273321063754969130403480038736180241149142132330586589980047002579830794747539583052954019843243453529793643168208996961260930240164154645827312080173796172495314067366329900950905920352254467939256687352937084869020796683946082578227201723540652274396697435705708679371814390101548057406627471683601608971715116810355619116936259706424319650551572226001580643897013971452737386519837712654744405871883306892818517756120945724498418432318759024453391314961375259025732770935951297807934423528986991524158499957041516546561890223904146687095165591271334829274865645717436864857521615246135916197012441726506298042450342097232047014345613466905559862839688032210549095103867040594211307621787374719618903793611404049426400677850988493635268543244305289222662175940555556881909294360772726500783084775430987430493691435052494418928102432845695508275061173176947996686729094476172756259271183223847698886305657580078174894363016759340681511439560809643090002681907338425789441911590301659100284374810139885854425768660263431969489916988666661260353117063453483775196027646009977988512482587104123023890684262399830917526591753978374186789710439006848762455812840490035034611020156273040377800585169602210881244715214416492161485622735030214551784591784033188364108657651614072938125245948418431132273665959772571677206182637786286491192204916491665083097416563106868616830389909852675398392645478805005384987670293825945300440137799845561902431867702714315099054128478905644038019647860989582317138594067240650675220753936155265695470023082780572547710568592301210985959218758277534062395861132033056548636815592502314357400034632252797044218066056243327770271874578305957750303868768323743409218876289464925100084619448569218284079752877220880927527355548538263027886869078839616691839553539245504622824657478006592130467172079167017091642535080595794977056491142935465767550950540006873983923958950638058395411041628476618872088608376339388580329002358539753468111004287309723727365610164605777022290635397433182707601389600010303852924075522411733053050942846174513148273884576225435415293029569464314674422620109849968513863353765820934273985324107083236151073376337704476934042414499519274804490261859233952837826516168466154068853782281390214976543333629405634258063819059379050988632434822562597899755436914004493977993783249042384799116131263875889071430377290236147824727776751185914675654821530038959938764944349517680218552452935681880165607904031398867054384626188912158787644508472566755963876222243441147532517203361497992001510137315990688013232852389158277843979088771659887171682852403640326094361333697969507284820886314630347714384899869085915939617151597822191203116914435147585984885860012564166363766904175330904065711867903503945250231577161745192510896016048571190099119901010666434274537056377674972368720773789936872743626970516105905401777260129796379802504570764348604918598541557601042824852982193135243167900861166991472378606093877360721289293521845248825143524922343407529624700727615414472145736831736149434260932830366146121027247003061515203190970643308963433114865617971235682594894175693668176874734300778976425057903318264355370330401715197814519493392299384660706919495646979772483135426668419777297101863469937416177368912128352384071532776864702122318427847055222637815350064136007002479849708368321737358293841657275970526322836466418938664901534524692080964917634138263278823166613398380323105230926815530752693132463606795127670982764482036461074114012281715807371644228025343838092482691139784362353383659394328551184937962559816167923482389484702265750573873582231879845582630116582765172939616319808400275440154940797568863620597580310353529092064400309135694040328394549007238341052259837581053129026300308537858249782950399260810114890679456836747319765907908630687264377854264506689159403693351145349133630701854483673327364157081931438939953166949313209202532403081646553149059026107613898657991437161230453782381444846285628847310207717885165243777665685338143216700491401599824863702177885689322479084705168748200878890273932018214584740613942973231125337470083087560789868398515216933309341688377532869779738916258066392150983919434213218838108489652120914037322690136897310584536194717840711373498211852313967822749232827484234922351723489138083500507904602700146254269993362346007528403846286731283758181627181637550735885109951966740498920853953470050981030007734486631669040724818762382719695738066032504992237499045844068511876736497894945039793116039840812909504898806808968535389898293701988696517331908976077888612072599654612195035399227808029974163537509323297714607083667820584722176471105052556364533505772624037415603229915171480104902071646233057594125627878703446196054793817983774981641651855438051983792878473463201607903975899640392555246138817465549492256265788157158091381404942013387357245978993517006805720240707315767702804336950097011020669685443531650937594063761201508481064745704097437025800341600249320716212658391280365532464630347120551140861714270916110263664532050366543134909882265106724511122910827077086202075381207476967465012932215849867702607573233913044083018820806555614045554042312217707784843963050469413802271079428733995890070546600183446334102070227860002809306437467223953150926621183631085879545880218367583511349203726232580520621081375342596778322443761975042317131348571456601101559248046118276039091972158442361078122700096443623895198537733297830181117416324437663580618000493692172191816030965647728242724795686058236906269970965766875058653599942286352347361604279203877448788973810730971204321892325984010496857987962610431524757607798363396224237256582079203814302955955254806921660166138322709808943187995880777693759611897349598252761395820443699045370270260520259146020391184849341297775095291965975034542035981449073618586773570510372611027583363134599896447406581930904769535199242718359224525878423165786465067655420021787746179837692681944372004329374500718162230771182198024937442285733281666541838949983667046675809041874321524569801528985742653851180832012534310274378590033957421833991162417903295523496904306683123161375255491240318431139046546901072050164881429333160157820040767971693101289453379176168048340000137135236014844512029448331631844734858781662553436066658093324374143559399337641925940634570384215017044919826696107785872566017986185905821571099675757520344563687541219497595869310299961610518726460153901147591262703319018410282115351960357876788402204062604900855427273289579446170789936523837107968133716667829722154600361135726142426353769572750295546814081021823745874663614289553754527506339968576175849207038496108739831984072469989691161981045937883944162300797706681519012062081157249495150523792935338765461976200284039340690861518603671138886572398816310403346430651688339588363981811923952519180507713010243245713545808300973219909541523474321060159805982423764127398110414826311782232048902084039347931505400165250117678387642580001956640042815561767591085729402351765161666767371713975729079947378414062265057769785402519123716658140429416841054243262075455312814023835319020313289627895700409040196325051631343025671717585677194817310040099280261211404285088777852117645197768777236454592818942946397884828232906921725297156179571145495904953964405294319738345157087848026339416537173033640273290842688573384990239289288349911679282620872027747010709203517908090305264459336195298489273614923168976360351285250186452015930821870205539080843855746358510189538522111707903897989685806150529138697042852264118884832893123071889867498572282504508590255608187945350726958585729940476156828636913183175070146502748659969825205769701931374018456621169650607354931956477917061582417985787965809023133853053046501947226121529985561052556152110899164889124953428345202396240735987874664932558083260407595932478162458942699141894910850747570578849596550156884086004965058614271772377688926749275310142594763625946422628344231791406415459459361543914790076454356882206798013233007017726288673539546887721739713084186123488298663738924898439692244175929398332264177451772490276531517998297666993247647839276695793984629107201783819452343189301052736738117070932095650259601700869366702795093905890731084970121479460981739186788112437952736176400485256277238335567688133075123253641569256250442422312356240612789989503682938914267016460508229258476828986544887828218671354192679857273821997025398030496751596672446240877760473789597309967048215355778910272072589774578044601082961593909104975678113960709256521226962274225646071948424105628074264002853182812237055560887048155410088686404094983871765000702437878742917607396173753200642365234598674961871586997626331198111342197827639183275209219787822028825403265700486579704864097399190692553627087806942908788748975713368640104398143036360246654363490720060732584395879374591047980937169665919600367231431150279590755662582194725983034624155761081406214816415568897825844077699238835212938791466777639976816824228962542939440152033540656707385977094445745672342962723913754647821330002603573258860518360165712844488019066085936493965023803792734642767726437849739323670022671919328303283793369781441098418095190523940002169750077301451775510107454705788110474147543545147942148675735825232398879154811427923299695643867562850184633988345271401159006537745481882218036961824450314159785032853938625570318532371423840793536821718153931660055842510765709339530301011556980099828699789961280477139703291580943950885749705597933206201234634699240361881134195672082578814605766268690397152845774565294992636425724828916332401402252082863842016244107417636074083697179933578717961716181640597242624833561822736236123415087335991015846440578923434926444447019928898838898097317241541514465495584985970780805939666990729465206684580713864787653834768565799712600713323017709425253896438665901326273742623678104219663924208589298129865491871126727629175840550647574664898234215712864570406373510867214274546616336183017233407128873193399788318219233703284231920008002829327568214950451649550410041001539019728949361134091784797662010439747563218864349927970943881235166695534711985499981912794965212104497230043552207793218365802651501857146424604521861389236557637165211162525423062190410961153529635193232190060704915769254115017908754361213587604079616387129788120201695772871994631918586734572802434587121021840707329419810945917708551245401448110115307007699323524051684009141315301713310666968290582701753666352108813451458861422790265809401287145845022969465180185782961280615981107788995230429243128769073759695772130688090621303729934768389046018946972686556954130558639159185987865264941506796761165737375535003924698593313019543460335447145545633169623125780566205035544815662609665566571234788753086356190612446574169012022091769649877809668268137345258954629451022702873993456019965707685368744311024347793998420272309989364774016945785403754626702444928782537571966639266720088265193097677083958944212295615839390390478250968055706758248191679847541929257851961134562393946428614841598912851058524454623819809116361290172532055959148707589456312750070229315645255186053295567776207062411517842745301734132705913852971604089332425200585370422611991410956269730147468135330087306293588561786281871471929026529172455419440730840425156395948477334100592311971682798427485260020784213277539449842141482055340952958157906016971125965105185592430611062011647067521273908548447730172298692529680302508101083054383927641204673802974398754613191711534802599649876489867036418122738646442373307077925314642848085493275108148737076228188367634449021144007993289268819713428370542756060725809039514617493178795616521799774849242364967871870985994106852831564595231672168780416727194716387617259457760784652888802004995323327831112192787239449921182173345529376738272889059477580547249882696393730797635961503417071016961292915443658019928015640610867894034048582335180255212084194138351354281814071212754046616086343216192531842731468744584648353720231689325235949356219421869375131134500904827825812691144900355369798731724202509915823020292489899023690716835117085497579774037838903696594534818732076882315746256981536746631691298394814386874146945439695420973672324777697942586245964651972419022331522139520256217547190078332674721750390826895245025026474332318721829672059450917698358597612479596219279936790599066026350576232018938996121450142737515967544700854278935184937379107500775480807942477656152544432638961999511958607050340858654225719533081895334968238092487250507587324838372659275088562829558523988977996760624890880410861055542996302903317875524860661394801724679000352314190000151098690674148665983189401425139826492153351688397282814170499918703308096986172853334833397007313415233591780838140670609753816477687661264702479289052473555931730321401846205529251332886924928842777439487002198033950838463587367680566980439184496400323449695461824838742327724636287413059497957220936330986791938478766605036917478746662425791030407988283520743439436106493548159214296820131858113827433730658359952617681028895584558794258735425433212698226048255722510017140022156212697960210688079250538699175712782576761745348265737113770915206912568637873433264205473361635153835172535058298387419681217862481241194172694427132557357754577766962457012892865155306025029840534126149491264939737020098576262089292629608765214717799479324658028301755840111959071646548580101905683674329096924374964572471658780079668155366482629979497844486500609917861438637329697210597529459081139766932266890914226316071123666408909557379644012982662825735166606233837664635757978444445164813054203462729925023152318213265301560169269837611144139245711929538054815609704375489190173337326122234330540624096743498855153058449458359170606653910680621861524225154369973124418435690472024788457490617744389702913871987741362718319014147457870691943957069962363078726709355219156316493507536299147475617083291305257892452432651376886176428315346998526198435366628732597506139580706785216061371813179428146031673063219352359254579047538391527637241750187306981334915349302143500280373486179074435737730814168277749496561427960221596255601241497739622419479295255416019877593688091354986646138769690357755923109081219470078332299001636014586001714668659086879434300579233093001911922090753282299967154208772256280007131176659053090939861599310463018971893201641021427477896334955487240286444077970141763669753640091335648434786711199631679801772871538154114449838691435237552004775239606633196805826518196858437392651151727835426096724193433500221065257865593509073421771029634228075007555897226850083250223073049195912584171002123925870047629434845323348838720359529975261217468316570826570423767975835689027876559905333230136110839403089895435250161527837531206172977856631644007262820883915252534736661340770361407894329347742118359115308940093090647815395685610629656395891864465416490353187115446284825724506647874547555647629859947304275512779104196085226020137154488995349607859774907700254979776967611757249391622278136379485939452916245454165650138355610079883898365627826720877505109449225106251663817095015957723347624902887164301392304031324699262183697869034384635506861985674153726702994582816570283458239061471178985940216556956687177152168353608891999212460461124363190291002054908769662665912153888939643345235691127997159653788264642731333876291195560655617431867951685489007446110767110067997096280002746592685256424128768683165434748370924135263912286856183101818216814789416540029424110770774139952400066953627417448161644146357195502985036876292479334126645267480763493576230208033609991872391225819011116207895504751636860425046866778173080891926955026036836608986794713595952461824917440069383822189143094065255707674540911892190908851796688473871955902044808263405793233444187081167583369014695107976998268235966692096287108688075074696728915548502783082331423898704635344691725440810611566920786936175322702676273284596884802627590936080606500925249098186828505903336995458419726073109866557992751459015470726716446098762729801789130234309188452409537839281693110439299034119077731557167438892939331114877418109741620707991962425841714529148250852540296970763809682729975183372125078573461343099621212392428539212941209315205043730662067475037425101384776235522547107012302220475114486426432565282200433560012336056390895489028433576117782175103314609153407210409147443689410201022433838463322985264196513015089202293107277363186733426415668056584726027981412252508577167241536293682817254638391585025858080584198749155986117583473827414191916437033105172282340063143177734769076133910563764591696801432445843468698485511346692583667337596553315833017404536765835296469820168368418116506877682440500078500506114969530595522879750647436519241335422124791851256470636344838900193163961793840936605864590862826567949194580818453528574000913750973091078121568283555993492296791998421673157580690330966615856198024118413405918142049766065598809283850682450959831193127993161110397855867445086596332659287829730908135711319134462015055343662525150613825948916836611424360381062639270424862903190816288936349019776744947459297416607333953161929474642200374978965474954424027061726779584775451865258925701087404487501420599724693919607612842459015200712711122321890197943099510033868082247506642314975934847508020287735452603053364252468465571338835378330703932955167198449406750422482186325233817895264277675646218310574089648986175429307992860021602570521351219650909804563246364140807349583309119967677347321141471256019389144541471064782452346233789574003989751780223284316766730455297425372406778588653342647053631647713236494241983845086793296504476445832796231349991938171283269830276012029658280210194535173727657660386078989950914450600159333703573613974179446168250575857287614753676776150840461155104629216836218863247395564308497822816224748209136269791769717483441365633095200678285683796141309297215516021391691710527546867369579634741376961633744059479467281865124442232953447769061553826546494034039689516069692262248362845999389039616416349946281422769167970096302556251570664690711604126116768042827145285799285326364003670321794917742170200094122080149631212697619747342474817645553953540987902325538358962214986106555873864781832616984198400805724095345534590112601128846403384782118429107594107803526229035279041170715782284216970293229359074247178923839876911219535017734764005789617562862633163029882703639457232325814629962621595363535085903164708097862533873513986316335791837454772628704937950285124780756328303812274630659124030757890192838183086439987705596146913420243046964781297322500535315602909186389940782226033151516496807356026610321362745365633304282349144231279629214373415132311948703605236487877493024730613907184206196809210706777271883864990845735660165386234020866016050167593938686164409576020890550787477836720255514801589013192288765004812537573302738652091157760459878126236579127431680824377050594197863282181722028825026872807506625956334452536310332962213860949281376664023787732615335772868323305327731375815989944185389253108250124282302606454132461837692791499712195651617748231331050211593383980224162600478607980493193476707062148636120844573496602618321426861997252981923255060317627293194625377046795958422597697999006260745771935678644311874910192900900317906710150356459138564322198532847911991207728679249504566019591799485515367855868394479359745154977144961062255588517476134743463985899913694493997148413035925508620598711033218002976673589221761390248979921390600563208937816493229690411968913683620835028968975211616384639778974154413926146951353950050104014723618029946376813758451881445659404647416218065383274807092954812900268638806282727762561115392981773163899345887068928690773137017172485544720889384086059651492888806116458329219841198391698646507369685489148209400350722080267862211453402958223462269078781735215336083858799012697283912251841218238952127003559713528336194837952493358341683338159169499130464123839418418811624430094695890949125167626643631276088291118684501578998902051368761971262077184171880992484350851285100857553542221147448511637231535636529328364689099472056646058160553018305816240338041598147383855165157005146925673200052454871601583419598257123479276153256128849316448499145433884646715444958984653797223905045528579443309406709041252779517871771101862979582804276088720863716798166881476140245779052798385937082111728027250569243909933366913276168958205564075377808797024362718463402037957209259937007193056124686854648692423844207555631854750483364396491018361837188621456488214102226736547693997954329066550921937032160432564089019766769947946708486812500094569003030783860619284468220593157290661842946940516568906305947351746056614487076172653063979254134923542647138835379896542091733328793471642988171902972994729952728018885330432409825565982115997231491246414747397793942602903700458562707386046881441995609912606528605606696252527118652510096230469683000547354455124134953921598604668183307807678688497707604133169924100920407084432963873667914193674092738793580582586873402088169294943870202167211483075118084847787706278211429031983733293843114472574505304762316747620047611100822698759829730836962680798816875851823388492678008607602288674231052048157978280768950780194699604369803371234625156332636109928860766491194864780458702479542597490787357703869570593838884011752815951748090690401021044242177774735772226705760682312703769171166921855467541055028659897767487656246429852346394375557299610705579950210796896767000758052295594997086852409276829886405897245471731914709519339957575864487418525080820207000112796737342103259121209622873396638441306569963600329135309891379590590543419475109609768549919709202715674973380814834007560962458558301861270450388244612027195007169456332080476261621953510462752753143931563801952331855944277366521538795003622641271627584205064036503835118951419574615332910585283783351249980433558477803921472707024953573935197383701871945831436690812638646914265355766682395528399378175745352302402529446489586239951225933671925504067764342632765449938777213033683408175493776152086925578654488755152217433247644604295516798356567174967837153207327447354158087639538814142916072609108037698877751877918580380060066417627117824990080407976761009793333685430713874236179553881151585045710743102904928876615785962104539541792515221604208251242780228817929840813531044930046828944583217132737396453761840180830314867233397976497184830674765820883801484652235121715495817435666071760115749795296173769658106664938729244882510265377646316865217984970165981735744908189414656000828492064289545420080019362932538516621072275716534494844443138598817272647000348890179189869790841811200648619927752741275735928916354690481933675765630245883374476513265227731929265626472317532660967092630364297023027766280577081700481378941743119976537721967233568713648447306999669133679305502142114399245694339661641501123798504886790158588184066061645271151392891704665891519231113882235828475950156130898857615701582853503855291889835447266051996133293135597306748373576463037265257375922179913953679850962171537032200702928364576480505118074253883260511486702916510487323843014736664788868742640753777302902701729085896244646625710615500182959134481792345917434710070046111286685321634557544105884920475899238965407694909706379727944210041277093965760231509318148639957093847898169972520897826559793505552289836849490719725030844940552658215735398629497971266774550525707977417780443211002198718346329973345739237381131984640416258634179403908728441033387691574201310516488468796659391498152686210682445890394974842738868289441899799139927634521567874456182878640064050937106720558491092857560266127274471176027436607841685828332094172662540729524579617103926128015045980014510558201071845590921225064104245343518805460309572493894765621982815515323534469721029727114764058261008118179150407810250413534099530950492573012393534000851512023923295001066383698319648804197267923784216784924277874477362801499586292742104150080608574928511761020719716419553724174401893987212911674187531565412307687265915444153901518147167881197407437364713070979807024290757663715340496917308518510526211017700592186221592553954443932116352961279618739338616320634378596171718871666953297798617895435503598951288294588470211038432341148775161814317837505790282891100023620798745161116621835010282404787206063905112779704744184131607952396149601115803811251573579575246078996561660016581945717669508205201416802195179632646092412072948142708277117086760259992418737204028522260972547559074410414828287185680131858026933561299181137678667351189804017310678814853379580820741886068259250012993919210722471775295513778479012506483468088693687598279980550532301578240364172615215195427188051195718503250498376877142285428471053438839565419571797418219596126830685364613465796576527772670756237911743434115609067928079863267454779185398097638364558627073903423327712166654246055386089454954566989553082663659034055313129890015363736812029344988970720605402479839305438009241070321468609295076268250216665304430380772479289649716547351484240749983890607936142775933047903149516021041617116831826862752375535608103178304324666358192480970419340849780396188007556444805530243770577326047338457779398232859334798894031222257871491801609515651534968241647912751411972223622296208390458026398927225778319308343383087557544588187206972788873725749178685049478196325284338322843763991811844321990322124324937769859105536559298954932803155628117469711240242995638568495895568335628074168956335974020887625515502050816123295727310375784558220649703745193293024029550013340231788015788017357081598784402941162146395118802093617016762635586703820978314088440835653027159984198042723196374700730267270207942265829389237523788544206296461741808225253228850157854076294737013002510811174396621771786553315422157158677353363144313145099051624335848714239949550810444186154512177406301902968539336883744089491793347759376925203353919126112253197886620479391618938010637304120093088730139795912098157771183839569055985110407881878615552911017390733253824768691584196546660672312557778394327273680835008712031907677366783699163343367548814218298802848383293654697004286279286617881358447349290917892849096832119090037462229285604837473285363601805470919256119171580802202997212068164403839237710790798331954306274079647953184676851533996728083992284821571506528472092165665059204232764728997265571429801204097034820603722674493642826490046171709405958736473238160323784756941657176160608574635828319363957338319045294085245711442036327587975924002237066754837924172483222065982629533476524460181729683969899985962900533374268207729779594248448199968249797167061975637707494640552825957617818751673153007109730651142739481134691531438496543590440786697109207496560675013344214233211904210552434491546191103399061290408378454018432710383846022405637669850456670756536956422851833913039127813414484716941277370686124450098966261706105105257300161556115854907555143531481299466813882871400364008217897991738765795474165280242614015856955740526946439917039983841492674742746522438325613002909630381614522239709925953338509275288441763665693759509136707862258687643179726460865189601781207791637234937939767828633891232449849335345963856442382500878540396167394145287760850277715966520556252523276025510106717820428408785349365512917320400310074206049223759112144432263733605867053592834297239643857423720261961115765040437680221097889467730595592008239694392478380738282017015546240927964569019657491899123969126092046353994785588617000926572218162642277686864244242723007180976081676594046583881137059192393040028451064105615742468029391071058911437526083164131428382707655117565598122842023497069892092476914428117336746450422441141692541398089477295896456537351573849871334780859127271378584001421251987750193597327510617223728764755818995442217137636095308223111125355132442397652750744223063444380773325103204633105465756762479636444366334247343341474117517790254052303999167979058214903068960969027369340482006777762898506804394702249819515020787892070321709165649357701472897201995619112444870516383623629671763018399189606446270918980394305304201733772712278154727639603666384984781303304189168483675580686077044618363007363973539923424520789416671972290078374920221314826765906694745354902980538274968030486771537416336113228489763228820345830567477199194723801678639513756658875101727944322018465071107653085713737584473810356573190776618565578129006908877883842914002542433389673786713341705739959972269381997440697752218423424590072175773837515100652331922985754450592883022901891470359369577946580474678003230829836088924019975706849982705988617938553115437178682385794420421462564121095080963746583988706437755182407990281489838328654776295884623472930431064390729943231482106552358209489966884523352157413185509796383780912282374787265162378254719292964515794651451003605895904655126281674833322560033337689636786520127428301476200848981687093292203412329168894740345141589417897556099867011391544291215766933019639236968148791130806356266101583470952813296670213475862615034112776765460326037062178120394569232701063572171366035546759576456386817365422116662728456953095847036973497815418847837230408966158318789904632123199053305755072654110269355582407196578225002042313118867927158133571040582580722238532846115435018017116357664702974434261610748758323438654447189915322184840207970148411748405834543894641003203724247862562313803462737815700019549732808063302855809527918112260539650606484927708015121439614552566439899407065857262453181457968659183281369166709538504103739242528138448224952558368412264602700510217692121127503554218291094577422009469391082190023569694523752125934429302357325894054105342227221978600669666887380616005217927054055259166638345176110055580244852243346806526026967345244061226016087603104587770741835659034900102159533622732178033770868428283091557318810721053522556223451979543347118277979187255100346529745639030395024319211635942107748079513953300388074818962738089556978544163269492199492897701924399655222684602911115731121785382795705408593363010017985839853187137652115055604927899256578100730019784788546004481282777474279107860004234735273985035544388184464774316898276373658954228797531230410508255801781153489705282244832629814313807504334441424703765173381634368779565382321476012629249128255853102761827430608426061879348104786584285781531834327209985933062351162230155872234498864274759254856933439462297406665914581928275761497186101106617773674688549975306240791870734664350095840327802509821454996469611461715324428735110495107017689713885940443861045276960004057884102799502113137001414217251443259924314956005603738604658476722756277127398603333509843832581518908076299853691079403624300991706159304784223945922846457941876505724427317477214022336323033698507549033002410648039749702643880205936354512046605215027466979357082825173908413353810317976693750986803261621162863656873227910506321326380178200784526421679232980266432850221839254478123838187052562501671032537673812505620132237986717181946669249744693798761345083931282991811354507234462319134702134419925546912334460789812074166546943078973065967238771974881478600011725174257575271939222309187196054531193347757708383927560441103605190174552858203797787294939663752802576057662858109306802355183483299398199169915570301329415399038187295965183961339359534652154645561975662535513592390343356567973121435874523536968949420320442214969627224897596163255710514888377250682295053428152263765346173532552094440316599776691063928531849007559485208765529224387680826673813439922583962535205420864184311580217819471603913172510318288192645143953506601400066243458791335094484097927118463032223163480755804124911495572874431646593795954898576655180940121951932206915189268165759540581010076112629327097606412462628737044991699782252596058003985053394899577933903065413660768940797677903379899015391983664789935773503781248091403148648489844507297152744946697304124140274007920511753284325735016636654555051248160328523938177577922437976313060084746514339759882560154894166540447594035515493799620024408065533497889772976399402168847219602228159697519595845729863599554822721930397426487185442048299038487326979198580953820301087121320841856140092498035635336354380029177808865520303941026496891062870843614635198430630492582270498444238476509113297272990828372087001576664690470352545315822525047541926696472216208421808372569074855578074621739978362536945785836145321142848492765420805234855987186841018804853749506111357349953727879311714770002747820758141371259070252856868710966617305017084565016235132996734338503857723647689334770275351624382163653277937475995493752446421347553772094364009058505992401438189987887700515424281592332176863251727002142530527001133763072198038735242241353690060537136825649309520801116252520236351146788561591355551961842909171862783827169309752043282156089135442743847557684717342141774815190311976142574983496621776927680789252874874999412906423434801799257220213664481882032021821263577343176430249545807328107616782207954316117376035642750726633029177902473253354063909972644410622708642562597022937108420164357168956799628837622271652078709819816409857890449309392894831283282748577890795197894816653159817339626945695140892992220080831628709383971461096080020369265327355602002928776932858196761933080534122790580104869651616977367698619717675158760141564590074213662406542026744580727736755576639077199522839857174152088881821882399550147465744787417690958195001204105483780025207787713909188294014421928185990873404853490350232198123136561847172546270361797987749891927902884352879731725070995077345939978953766762856033660359444636675752767201855923458112938023603908033886775633423335684428227448923676253724444385412624654413235744199438007450348327273608892746781796224329848958497355845024880043962509991982003139527431360851461933641166682564555498073285226147895967232274810546101352417402506641735338972750009828938243123879489636054363575865675166988993468555195464041560384321327458610080219856904649992727185911198489639043689346559768760359263580677361257104754186109468282230861154341789867425414998404543598163233008255814738184227297935233200334621593026912350306564779033153982735508385844551987689003921882183647820851432205457301152146825380616673714189491180898965129592115771263278676145350403303914345145612104775984339308016673931040546798259589550089363607255045146289392198924257644662005833932681151453598168507250450503526759098674062303042381262766837140047351439583410057804463397081049731000408251797044421357644755321507098996967437962443285837884765411223028602257130486619570143827512168486318773469647013402388652975083672262406919414319028435551335506662439596640777733332416383721212890539772639136606737221024684345701438124767281120431834163504202482799972292079383737364353139295429990568396585249218313637585266756535776678189463154863489746723024049372579816386007345069432248536831760254606160311920571862122030403788836360145241302357183955719921493267510457187327634870723243666299552010275234604652878714039939880790600705710985255006170312753425332004069457479336079200214084469639809065335207425329771232410451543792211110462808497970203109188908451117230993350513871138641032877979631512018239518809577843373387054297309542398337712595207422598209416211339055981059569882018185939143511456562622222320106803108494497080726474655675900247984661334233866906953524797552463947154096715610015922225140837627423916903728896277237105248220624855122961676191554538132450236334161994221763692477561606738387143371336342570771353208373650468218670962974077565189198874022275213031505932988796326410776239018072229061703523499916673937167722868031968463879519036095606008158353160206920763970036168894611564873305338063490218792943495319965803036416784763063532484255340327571978590473460990061828973240075841147217305444178957923494520509058667704793250147357399983707149306808995260867672846211440060289508416140530957309918098119721632481900865923026052594860984947406235659409247996656834184018110760714391143434338519889332442131100231525745048148566266194415975624381237293369205510571819909916582201636505858273982567104506230941964101139312583379486813746214066831708558632406016564450637031510244007690316798722355616794220034792504947087375768540852034990535094055763206908648823676931120681827752244512493381565755796427180641331428291117435958582554317740866522834674904338819923034430100251941025809285244759633231823537574183665568439822984235470443025392925988186925016171390844882372441184844032284945860488098714165820759374480496221422448038159420514876788478516497598950768439362577631784704749541475255769999802142752902009778099323419486686058487918649507366088508516529528934188140984065316512800819040934794588538139185529127322638779191035125240436023461705056614850390304857677051661519816985505658835677577986396261351015740117581981964099845610683781679163174071934101146968923213789086901430324013091337430347654631286071018510183197993473857536596079002571262269793529553370344862824332998481093203101705860014515063868436118327807401839220901395652802749356514276376730967495473134198144861056426201751150602094970074240293473583194898536513088880480660046397193571347798821525534100036703986574393779064753593177698316027383194847813421761146589630834215883071645160850494308295055649071421810748039931214058043174552016177092649806692313115867862662427325458349631930661057021070643606767227089135005770901309181115347459714254165934687416465758847823814995483062656522651505637576927583906608950011746969136874150485048055606428100831320489737420839333746665827824251216224025268592203679988640278541813554277839298238350068598687244310061694714525160803169267513831054670184763028090684630778705885263803772374784122743895599039972939370141998761835972000536033374498798885729319019601441098450659698658035427251650991764566297114816936117019693712312587817803225442691493127458280413119809969602353634389143203452314746299150383372389221972725652256288394109971742600547428121219658169025760531216228387778472254560585552329533295426321916474336742783947231322921558551374630219097150839716545043939050621192376591495626073364643046853844652396451237456537126799194159374174773700953927325023378555554592894655736519138093531381888367434198156656250181214688448317004863577471040828987697627376319400741200437006197332229338423071126773224543859623360492061925851665587398191874776898623321093763221760604303356308232708902112455674443202340488291293936783013993933664146257532482571739395373656516404803281389261824004104899353484720010650805818676619825623608438433034573372318034763951669420196451299733931929964908901410634655643512669081218296304510071783407890990046409962794691922219404422584071348350694159305001079854491149687944743629242187272421112383927934856599018194437541502405985578527972917326094406156591566467731924088322808175460848760812781183041912658693521575793895334442555652124656062929081524777112031840763413633494611007815092167898594550583637877217764448717486560729483313630147834084201379380211169937215678470503995865039339185607232954153393786128535662623697242527906904020987125901215059726902240440749252675885264439705562516498560293854548779623030684745264972494151980324059203450859908546197146812768791959083062028516796728047107504931368130695152007473804902127670156744687225247144747711942278281270359802860939726557386544626226929612588209502650690916998414658603759465165457162257071898428795304615169211213184812418453471004638783875657840466280582268441991311734376218679114720770773661618545022202285716839815630280749295155942330149773410577818372202048959694334522972564449821143689994070128078491650084779838189649282907488331499325002005503965242812761832153181145598152787077238431881841610467390648698802615896002171773940091932049211437507136824816983844101019200398737952183552347166355811480262067133694627091587651064352926038825395339786900778180017190135307280192691826271779725105457480207317116779534480804214070253814900198428998193711458693062170385554401177705781464871385408046577563561566446810326781313714939997971179406263639753213027578236359298432583479038990536531946995220623576126927957684574837932812907160494999106068235148472638524012953758839237577363929241458742039406405387003479136227888662909495092939105867522581081516458105394541356729687299089240191738820339528672249471483460505894503327311192401062523680474197273043317790961711349902278807542951886628226787232507931382027929209824093516571386265345917712840363068758012319738980381694386490803614920670616280592403789746975764610425531523400788710027547353496560170588505863271121366752085529294014259669789547472091552695979779295534350734848492566409462560668663250503881250943323299920397400942505766235045904970903126289772826168140861477386678317192003109738503824273898899256130394085538584078920470013961245042294221820751090304300839681008537063891055842941769105381758859367472288239598302412716446359102964171427440462798033509179622113712621472818273299626432144263376959439862607863731081260122812814876150280975541059108824802907595393645127300750239491563576292826790512044610184937327222421122416684292693639805501220073434512529437213936248612955646019364056675283548409583578982378339815402718271881060880137005113365871715133895755376351245250416849695169132931864765629708658546022897354715572999840966517314869950019898008552327758064383685140201536002146497779256550154422011739929168469073277525678448169129289496023417539569918553310668525745707314645488702059330299959004892590426478944134339237765523915927249162469967297880180583469184231932688452617804983889198257123977153354851945104409275040037068228303706514422794997295384876408915804238398380974566490863058406222210017563230516126139696558150027913175314364937849183051455767855716005887901143025240465308945748668411327507342849534123643659946495278426615004822040488581277174765930493509210917684160048959135406044336586937251621374790060958559161650442133875502984555434479158115727443250731114666788762155641671248322434481275700083911746351969556781418030480961292176947826992477208597987767919687508302645322437456393694492409228625565003149071392756404028373476247399623069302672706807734822109218351914930367856025594319181139062589068198492969553988918488453825537406618437446161710069194348127855835583508073653756756944556105513689687150325981976680778438087465992901831639836688818056769449003270204226742376019225900818475182990026411766030645432547366481529410805590072022360588385802343894449875608657848790781224564002636289993878262898122383127733410745264183120261267745319919258442404961120079374836660506599687630279203634848980320765305391567930088057759783747031692765781549838121256516742657493034870733500818964830715042511352804575305383849695467923060951341778248155447894547199868928932433472311778894858966268135121765399219863687910215767849812726849209072002501599311119608357838843849762052756622571463261305590038959344502357448950591721418141126770160404199111521294437959823282795262450202425256016678416027921968580242784660626069652791641600112481913514849363920099381315880477199888445772835733712916636096145140629591818637656850028721666314641204009990426034413672812393868110799881663444796177185756570799493846698291271803295097578216017796333860232469679305070808227669074955707713456686185996217619718449000329357827875143701149543803466742263038403426809327183460507124907871790810736979820677753616225484389912469235996369768470798493890400464472207973112871898563111413678225399873336885076167964097907457344589099519229512305519908548594969946174147483199072841259627445185264393681388322307177763502509523403564543392991786302358384180580563093912077818509507124633869501065829114251323032632856638224980804911122177863594962745210753804138235521767661170326609000423634506853261280884982626371080295179040657161752567361044337265836682345651557624562686505839368512393436199386739614348669245382258657362922981989464970497620552611282490301693524597695387897723085844280944896889220887244399951136020517711134173742581921448439264971126721932663743911454209823563792159597768468923362286067771036066800390996620316435624500212137888279783557931893239013909905928045859858335990908661741103067871389962538538994444084937249139801469510843983213047068798267169327041232900907819549647323667446038842023503797814618051170815094632743638871240687569639324433310861134928281515717041027636640994278316719860403443714291753383704256793363657839806086978692308656746614179975849902800977845332041617574239296814084027467695616679248398707014136296609913184317496009950510421217644813881358705719513228162567673874359039408155257454913812047948055793210164328158310816402355490255715058203126921607866646704877692296843065876471032752256260726800528952918280968401024105290585357072007993180008240533229627883650863614001630251887636869596707694526497223637250724556688111442676234652660373141522813207623827222268188144617043885462083161104119839406753272968797744526736582639978460012573989235661481189732366936944708787388733398280304914692346852551178291837703669410987797560981417659434523288130420724289306665528667807278629554486369251999361403449734610568734094027983249847954284425802768600853814670955555033275926368373546086306155584078976129274774582840196722443681729407644693419621236887611583305056563096980122718402494832879382288319162465664112616960063875193937200941282064751991558609107848554814516288539449962416424752743358986273683968199964731902661590392756377634739462414433712741507285565901255138037761826129735633527010667586572732845905214400789821550802720123034685416086874838412707217640789964179915152429955627083682435119380092396106840062651938448629158278581828927954586252498225831717031346023000028381010915465409368278128749956502509199966179594513745660011376198896701616634461322642266962343722923477034112757847011173508168153558792785668645754247493332389758599035204073635823826396933222761632825577364725506521945437244383449505222809088163382376456363444086388085905502976030775920851793933792989766020574190240931588141787821771083344373445366653334971650466011259920958873521533823033362452433378803298995245005098483630407815601676388977652704014334410371401210346863386068250671795862479242144560951566300748350726476039819028614130443796701909073348057737845137789218418829352072991026473561799695052314405935395975249490130827585549464366467918061826781938968758679540160412719889912776711018543958517651345440030075883608852307594244627150120840089414515144036926631920827157170954998947851595509885249916264844908432718896239958165409046781714566651893787205427675500148582854774650328802213124812243203285289585345108086873992221990287011363645897691670905106202827690613854901357581984323997073232343913775664782717058181486085606119466043789999956231244943022746380710816050582150489788203582128101704419384664537807923660438778381923727479491952283437533028020716695209494816588413932349750505904527619107069835344618078431060837295953923145869246244041193408060886954424737679377303821286611333958864942290550043083260747414208445276453431181693166107459673875217219370984486458936376452379944236074467269596693599367533006428340186775464303279335256198182821703266495617333903512906615139693710535690979903758418833705019676168134614485396503751249650463543790374132934423383881128347279851056703460766719096894171693299844888475632166014829131813265211504353245608945560927042197081180668918264637327526241288230162369293360759064276496350390638997387050225063580820330607692692091796383864176102724245296156149357412456246230967741958836056933562525314874080171102090076108698510077179504163675598489142655573656748973566702856734586721575993312416520842562103811218207426730424229474510350947971471251448650860184097122509554783798272415922424899473589947122754781540044090429825522491149778495338457839634939157608653632175460830569298994179485016364729835440363811055659490711838093301720325220581004230624699669087826627758064829985731742977931116542009755356790598770079310205158306284824060855824366300958925622149099247681152495003903770762264446102680167745957846163485020334125376770635006126917646825878526202901941698030888011488030716877921398543940181132860699750971420069305067555029844339309164514438701151303804433720527992039988835276773287708806018907647550616419802892937720198616064564673050585887297061414436853198554959067938326405413531071378535853154259114936610033478065626238390116089995950683966883451353770650056852097314453152146771111698860352952590005823903535401023025955332138697259605686508271580107434880755239366113511455432835421192770711587786007899346055770081301094241490041911020987131821320584657283241021732444109387865159884208656923060241404693921684653505317549821969103241013426626411531496931159392902927016410952271582746625472322497110436790362138062694708407451519641439538169510720306951043712190806722983330337642715090329223288123487797599904646096952816164923443529229866566992971830180502740157705851713506994363128538771816552244334139598580868457491341526228912281328155115753440569379629780170837956172829812261431128770725423926018145468088675389010494551683215074033457894112820392224970999718121028974181616149878936291833245811555103529807286134571012530168172341780100329142717413289251701490907864652214441451021772347011441677749509891534968633515051334331009715266911267066229719723998813072015002541749687449563833906055227461088391454478183403767269413658516984928760688978841840914434736058446875022778763281486681089131117963800391578788115509167624857952072697283698733994262284924290679871007454124171718647745930166856175337904790680703422373383104536156544849574797572883680280748837149464150385132574283197235815355713976349243174796004441293896541456588846843245295856467703784943847441049867817720229162865187310590700096294306609109382156598855930223275746900589794958718069467451400848833773389759063549951820243692624431308528335400237254815056637231718497792414684199952292499343264034733902583607261938506160639843058444667324707339273207694856056088618706229681309913069292016681197872702615485526939196130483876405840208979306987874082908960674052041928625669873084921552431905661878660266693363253674910360391490640042868975800584698751052791741089818231625662963313960255064088006766408116277414492384597500584962254701003233882534193409045530939225661589712541990183095238654316711504734875019432625293761483271415118504281561769389020068484979507627043238385905852580652278772836934392381717762434029063066165558873530736504802184422142978866886941776139515357308698555490071040768366615975462335534393255247902151285931642351863057189166740763436319315782624898176916938972767621255443582303598604034702168937799851218557230748148477408796313301585756630739830707843504361534941367032414982640370718648871487802535213147992293342533218114041755686405233577427704025718995038265645039309273086724920022929668755001354426144230087566249520766111871883403652856745662260873122058566089151296982082145182868430878692544045187953726782295921715556995212257657663980144601234617426090980646146895752665193090715817905386640425030939773346209661915979945724936930575806887657833183483399287334080708684184781062630329301134336289728149852037241841480923410404346402593955136273648143452682614597919213108402366110418027279933867216778786038836199626873615078887745224549655525455598698403212890129661425553171571516242322432033800446264430202141153398453444931050298323260068927508961492230658579700853060567679815678735873942558167797175668570777372354666909515161141736666447005295170463708481670882359966366752507461973650819506761088498310398399052156391985401880040385667782131564409177692165983518641988943791626768902162560232626829255065868293896858808426097513303186447423503091868718603530275471570460874182244828118791960268817783214976858596755642696152827124274569504517369581233211169588014185539170903578862475947336965801100054609126773088589634320847758894075878599208201233505437943095002799427162228969483987391683418460190321079809622643714187246691253933622235893019185619884250913884574420794425869702558387752159420537733596852628776986127691470379561055264939656561316758513012489310030297288246135671561452166275841204654528174481672554205460863178931006312671803086835280614414761982424849424132237911658683426074399003103812826389396150137222041001395821803607504920144775616702121904371002450341205639450942413142150679731961858513366055394902542074318928656462440135049712122860356158726160309691304748918994537331069394424108011109808564173041732356928450124269600384498172751488758783953576064018205258062953401204155008809642191875443909879047297927708146174312105352350369672915651858437953057388573220355704336552135580617113552548601233350988247716673193301059752424863018085541957741235771380467982187107662941244326322065480397192095913376160386024190919698146636469342163825893735827477172222430397099417422823967328509306003504899990111379232627794645367311227925348256061242066541460403579981377043200503203765396855847124129801804772677788771177086865613354737425249442801608483670807790538362765823639155060648819192559353267692205086417015358556094498162766155113608766803156824898627878799477567949277396091374396928844389649930539989000907828670801974498369251559422862395280855769356423012821331297471489571394233877063740676209058295134729581827695525216920624670108722314871479920420728534439837489027736353907204197426844593576538894846807059027879911949778264351407932276238561627708349313726586087349952000278293191774055974421445533075337907844373710878293330605529056822440684502453894956444710476568103565554709100644831371949995357994551227556512598543229232501084364312695777579071389423250753352334130166649712266807466788887416720274462620615035197688124786905594821883257210941633303458923883440769642763467261744421362256674042284090029955119087864297878875653009526606553228324356774944922316854158494851526001614630587405897619677191842133579096373301757219005788466206389315393633486387501087894962834390352174382952403289730500711365418941190721514155018318103569003281733704371425135021900421759754944245089989614745889935383062099490132582289344775392604187748906382592457779178751785019423483515147967414861920500316849614391050982808792983260038825703815816430659346321009578642364122943155849343060218672571760203551332968670731605906461457493336576293491154219720833103176409870685595571115845563009820863548631027742682801754187000258039457064805908465018057579976912531646874468825575514404406208008297865291162311012174829218272306467696875294036848046984360635417708019453418033590886056817776199060954023837509782039069858934978463948737461878329686355770532767673759855429647458488001802225293086152276375022939370690682220926163929518057938984052008770015289028322016372587947950320357884245370639968266229065982441975468929488418232955086096947805700173968399839610141686837242673638823627552624551968748668605744960998814279555427533665682869157284012683826911274661967833960543681306870876097093755705979604728087640516491834607824131996552165574644771126695737786385029272657876603197368373977903508270469062323018411609893063412929620558152770519328075587876565699769729116971019909828556905264391924281942640725870901052524403855075158937032191423606126463579300983795624959746989527850721054338098882389183298317457834687237220622392228147931720303810793304582296511186951662273526960932179040845660432607158785517341836275169404002801523592277208286289533471867865217620118378021784118851884731610553970902472391120924179369003669779817138337199351042309376340836775643838311059447633689490750518524103776461836717659172758002746063639110984091764113362763556531162740249350868316087496090191965659831182785739687907313102896570244501022601030919515887052990657476956017577581988968608218878715382856910433166846393717311295527356500593393635192413663159729517209540415827794785311197439066281322350428872521121777220237332071547415730313295842010828340400152846134251030791828735408326086990104043569415752657906419690619068892100336013608570165568908212561882297379663484003291392137738288300707295184598757175909519620827715491800660176045240477473892893570208881551563337452603470394559017205277599566552034084842443420680058452786751604777276958041616427650392804303890549451399142309203880790884706785531102440339847631983165552217283648317022186655174601853263993428983870345923010945255537823197388494926832615803450681440983135938766319689916663120666152806874546506842094874997712654545572236549010002032075090508518772563371382357758936449957526796150815817725371368312440206314653367073986892039591037917450007154243873927663658522537642971365718347366378911461789763291867645077705931840833309255644993675836033082717291654850318988798041380566822278806523833742920511721415527979764391051782893095735627791253397589770138035458868880581927325244027249838237464137974812538611862159102836848315931616804652759493072301617884652781839767291207707734646502569604113238485772117223810165680361501950097295366507431592975651534462215713165243148137417519217770656050090716976051053636634067864885575884158054897163739140631758296016548381672371117389327723549544354118656723573563986886627576849247767206206437479253517021558642243031722496450981805799137967988218963665154484253702616120456755937843682767176993419252015560971650218382956695834342763996428238708343744144219553192197801631088103349632348926216728383279691252725146367838795889865864439537180712587147111132323088527050627351752812157176846462146871312240417473550989403440994132967221165130563792317689719649861339646911355919237217756304692843327571247566744794189802611754555081335807722808905509482066238828192975534616602424101229609636877684608121692525505582588282896594565131633450446677935704473656546835729713660013673607063774281840997539163471536071218150341993391904118339696227051366178855828930190360689807412371898379940119780887411130409049373455403785864685577986481922179670469542527021428810475999814858615417509488258673270766727902831962666231487867573352663081620173004487217380653235473278030622094427464462919530078373849114514431153984381861715099923978738991385891963924128927001773359878876481131170555838480201978616038015370384373809431878353175655341032109069436671342384590891235408699652666528568076430505627576135842218547097774489506219058539402675039505334334739229731455671444868405524640721657099277550076444876785089434851704179499765148695268746075097638018772295494388062490332374850466815076857689786802807346436222988412117961288895024730834965139853457915727249946744969304803828491809637789910417578056228618608320947440222811924877560852561234003255516614649057815851796036472254230779634837708682769792200199318868531198320706404581335170851197567912323474109658336952421242981298948680632796035011472084721118824620932608821955898454161951210426364024390746370510029387848808506253658082714591906211641593463967233000530252970772760680575092055796249096670106412373546255946779413429612387842733617090110972796086522499431734314404144289576882592239380626746873800872420257174274698001740317848879620700322581837619421754029410582454950499514910777602088964286160738589230434568569039652727653188822751323181845225758161718496029660206042192797182231849895303204349121264703910971892250078598239391364463417478370787990922593127899633580812541851024038194112931803956351696368922085318934950505718455810471144268686779720109667797507005890828600025254822922249186189174448261569346595327092753111925279723782726852086905159091034259000863958910873609794075513489869513688042295305668505482901195608918813128530430471739287893237991934451230915217915301028654135654795484111747722786779111901387467108373232713342142557618725368468849108155410062200047600125520130278982443664442954488082018293285917923809885736383664199112866729668729191479290662729282013306122715708867455865270132161923491305642207296075959450762766105378945178836643492469870474752097809279011961537060536930296289240368581339748817916007854527263512998793169628430381608467693329848638348207990724108108524173595305114101452353915356977704885482141879712220978966601760248352198783728015639020258477589700240228523555991646192182570232795481794422938572540412810185340037837197098228905489740406069744363340532696186666679834557535093629763981575327911609765059631886885040841185734661228692371084743636934851120017084375639224044305713799380494566686062413347280563797231080437189806189939777343260830330059087808489024448741951336086470687043157326844404826601999825061782233733450776030546093161404506841295035458343646845659775216724695675150168452515605673310087610820220799167283696756957897774255286802583996854743975807032602488842249660119863702985799686496543642074560087341129306281383672082061825922786416173153317201423411716305962442835186258050014707953769712457257018478979334479778506870053991455069639145551311159099771263693745274641531710686716796136356496031325470797772224974850649972515920459982434561306460505416879054482478806949414330661826027470816989972688723917745908189298262518750571636526657312469722375293820944424766428683276061111433191250466486287809377852896582881330834930824182497117871118795684485930216600237987503178436424872118543687575937586787721948432531900596991839555172395261006709735668824513586552336830172287826068186499028313600970706296174865973701379988171918660944788306890020962520214706358082118563320579025115422189697649496571409097031372067206878180097771104669017465599085709764835227042745496721397242503873706946984455369909646654690440444790078157846434552549825040520970542372991511243469964561219725089212814472244305784452962030946888428586637793744348956471681289165506827278701601746136111810743084664253374398787447385698858764838257627553353773154137822700542928360480550302736892269046719982516376665234311334467357386041626229587502720913663345878215102542286007445458800515721872784200286751219503853197854348468883931933926441601396639331133478711250144785774475923586312898087193697518551904549330840735938747432621585010388808003116629670910461515848240543626952831323181655184745381922411542846563896001289943434604440842912040904928457504818386817435429880243930490034476386894416856132334159510036993278884543435420516156886755510048833615895954161959574256105503406552937364546698866644418409586605686896364955850272290655882458027853373502410047036483321252333664598841408497709559097512305055485662823816469397378549675904303953455036552500440370272193862017116739363070375041284519049653744418773411264246197835638039832842600437463357810113304440892133402179389066914970300078550474996033813039599820766290126350953861199261235834395702743915718591117314529048879963277710503753573355837991380172716199539295127365465856764207057576801077664951910231369466896122355460133576078578339058858234435004220339288244982360422505852683706240512858940555776955309478842577008611367167309398785152690221162716357418467064869171364838031392738122972216759262742998554760234165440047777869852347520430591342841924081590482189245352856144111113658536306847673380507575265979912893902073619555796003408187050339189750874119640144395968555643748282614356152052997421669389956363489811804677185440225308365192301962698030915475197234013158313182329680941978642166815730845708175923603666808592916943945160152414412821637892714045984474730878454199771066189303188688258359256126382808804375239234223397153082109875638214401105751081875214841236566859488464071211222807128886959034139528431808943769379868948135293260831680139638992005445022258084365913271649657074740908741245548303788821409609065775762627049185896347975164290250155981175977097453469218793981867192757695606135280712515043361323586509311738523494201482695131060056458565360483388711130111912088499757714404533734589352730221594066761022808156342612952056910977589628682637681701835149044993144322840092874596048948992595988325485528999266915114335468020372262079698292779774345862611594161544233720742927221829070942831368884125448253567375826412232299951484447710960981414724262871536351294719111114690503365791693132956681949956694680248940053839626919937142323087360071620161291877312581359211551395919420082478062891589786996432211097372704749196527134517260422155705157653968342155793777082104446705492661312828600614915821889560401912593803938258178897875236727330882020291017312891955507044732792619775214051958291573203055451118565830263552793727751288765373138838092427799398800084412104912048224752898337642490366747424700650256586227772272138862013547297159911303211245775892278375542078901250096145559404216371878292033786161450178879386643492277892735736169534693907156064338430037076633621347221250853253366510392584841718829887307413160811264635477227264369640120495175776600310896590500327597775067603139771951116579293512637668686718497051859732378263974410661184978066035399505336912617210836467697490366499425199918718031250769323475972282413370455335158642283957670377889526878617826524172878531857102816624842029091403006267189769214047884184036677644067251900759895056481043026381498667709640256797184937241381534906378110176731259403150759116374182632300374614749973156866922846415574799281760669148760085885879239810895379251420107712147842026217913845979141019720093024417985012298546601710408350268580406148685658404877307896402591106174109157051004326384743231162311014863864771431183656111934610829968856518176743604133459233653283005492286638280911771869003523146960569464856940535399086004837660011768560484977308829664924911308069236056039237416117462839263653299690475496358552008587615534070080396086875072254322202933586965764947890316904046125184875460131995770572883929096731254280901071140008374784729801072251228692445465565738655874611765824312754670724258315473517488754888650283905036226033650508669566693004279046824838185421329424978330306883663167192115580137831828948323301205761542139255386788279854235981184073603539974329977787931209141825600648874576297224414715368216712137530048845342247917373992514170874004554502187751753459351544943203090607047594954635858981422607654629890961540610395894368310583411490773873771838571335986353428313741054683027903709870448209807835944345603425102175803624645273364331517135013775098255616121423831048056176275913594220466375085212536390160130048917989559444592271708846735711410520335329789331988179819364741148355949039244380841584035618399148196574504700121236496742001310611433724576576614699805348847531497822520931615447138451433071311419441396101174692458460540740320322176924341754764353913344072725594191367779778066139278791064043366431797529648555632979904503579837359790491214510657565663273030087816505898869109747899811102364859957643452912662315400337352533647681215052155335770558750218449864284097889970912124277555219011909621067176475569957087480812260016333220765833718239981675508654787062642070227308375813865648185875289652914665484769820962707541785368451959250263945143387207558213420322586770987371712271736498087320774246405102254228137026139121373232177730933157619324926313136883523340876853603574936235378285119721679679982612832068143455662425301410916175107015367903437752765743850090876514501948444396311825263533939713667129642441770425744803416707453773397824934083745489167588530471948259656483109727534091246435792618944812560767620185052323569212329308707867789894088645385775622033175872398141691096846884968587211693372826727929591774820255718763578384689602045318181687777678104199072705915804173012562753210206637449064278941656849914850184735749517048356438524758697138076305620578275843446192766359178792864614399851802174690716119432389997899055019442596628697347303093962579149216314688889930802060098570263544462782511972502048007433450909017383925668042977095934796684462902111494401520865224064533995043707468465156570337040015787449943314167767803515770259785150458846683642416334584329757701898159711051709463159531689383149896115717546267439686605475016984454523052868704855100870977083823022365971913476782063363870342465129945546243462752116564957693556333112958656823163716509535822389025424722478669209146029214073032707867591696507138378818870949075109452083355407043676456868022840425796045539921994992665526166898965559835995948910403161478437168790361713614359513420816250506754621339765193474289528032504582562499111383357782376263327211891917318979756471763715031738783881698906142495193652278461232796742443142757700216726604711214729549413081087876755145768734834596162006795772699048137848073852370471861352702717333941989213874365654411601438009501054430142972089995369075252756533542710033586689000437199742601937853742065676404297018064778476226604589224204669481947100859457191959686450160137681872437846000213328942839862546008197223843078489819045493734123153646523180671273995894757465240124674411813065176941082010024241764630273597194478751139749200523521248253687548798979402866933756592985280728537962532532439067246544716652195998574067751480318178114925351880276912113116095181054421158117010847109250219786526119516797860062931785133361478891664781116734974257907984817184267465068134322628310638449659206155184251537007179288210484625633812630074010973027566653267869932921342050549636920467560015629377951985777696741752547474342605509165773971466788143354055575247506944461626765171729270911559683838107453426903530089849531966493230020721168608218632797217392342722865132420369106831281651612540994662222339563534314443334146507461223105537953975301717409351410964305032080375002482391109319180867411682539681582361702105077434245714518102622176767377652771575416196416788100594802218357767403548328083230957633111007958593308969000854083130059861573271944990852307706452944689030554243016484722703835937329529159050740423211510353454666254228715205554605747218860461061565012162261806964051694588402480737560153862956727173508852147356952357046218304861409760330269565552996325203671067037421779482116275911271904813739573220703423721940522198171043274009456491382484578525087766495106112695195536185103601939617107180360149140191055553628197325887193092443521008130291901636621839103928423264894004368871443182124921240619158869345390524075707729397896999554116753501960346819298443511173283308804709212464030166801454457898750658188421250723252244282842994281766912668734869702843449212454796053845772680517952958394484721846745309094655710643662395002104019063725106662725471675556396211369878929963323494597295611984786165454511641933325117925137224182637652788622444781322590613412816894718686790357576543742232327930912950990149141068859691826264296636086371571247477560366597814004562447339109743824836938467731468581305672646302891916130641875173055285940399081186164557094705350570790074717041739015154890805655799919310202373043883616558896723524497381565436182498721581782836587279009138011953833173262488014132788902028292834896387693514639660835320577308544571748707725998027957531621392124783159494583342736161309800050587732609094124080578944190303299837098001821733518451669226035128668953017889409237998402833311789685577562347047793258336424744783761847100816547567955913733093191627571697476798070166659686270112633972466265002439382363886945796088985808594692600410669203592872151102602300091241735727298160238432283743220858185595602798043254866873149737461498309715868036859748972732235368322098430188647022609483228979951032141763734290332994481081121245399471349884100895830846809620059586706847649047237682633636087339948217818256141696104389431320719444526612371609940110173133606708649569344281895006361083862179816879116956011172811298671147400731987437883106315892988331088960083827075204356541091944295467214298815172939599267405645510015398622430195914339343715179406307990598491486496382218376258877779395454170352606416471556391635242214622283201923378885583321250468638327945181604634144703196522004734764309334713400233364260603859404392345133831680843698940213953795279396980486703702859005392006673073104165364177588257263984776971058975058010752437530561287651458786345782603283316721406317412429986260594277244401201657773690886046702886466229282008654787369139069132084842851692574650181936468889497845575476462017343487982523200341053166762758377842155612441499203122260675953502012391530681325420892611744338486507929750633399539049429893304645795782758522801065560801477646760638564220805898495978365930185660153786745572881498977778242688240439972706888264237486343121254750124730215853273154779319233201071185903332830045585393437712247170155965712687394678286495764138884891306007912920088287252762476534310723315851202697388509172013426959693592589848343017856825233014094633297668467821770850728704458310771325607574716417332065453628071313306638967226928031376001383293297182688332962477931193507326378146274526610534583981049828357026437215347286861320086785288796267288273019870111294255093599142020619394962115392923294753262430297303152800539277416423470182841284336836055120270705984645816864438857940224577808592143355970232959302210126575061158741786226890053321000600003985180762902999808645432040481906796390928273540640048389113281466836766944124911355738085584606928415184401670623119207814378481990304989392679417221665344185275912085893476465649515253690610426954491145185514212696822546185059114741965245284012858968487157312626121577630093357833725239121095490228322101758899784797592603223845988914798861733817279589651404499398113273619144180787801709992926942484097614104744433991109045055404497804879325763153996812507698762597491133823366058833052798852601606150527369555669103863466481743858776509889968469209342746891913654299865948109699323870355257627852424682213360267609511635993533383244396841079857019235749082683963469321284490264113890768479314410160800105853108490703275511999446598528177968906395322436682042544616938287635333816693034120306691811041165474416770723941405363594272626375784258639811947510101946873899802626719260752631613188389033478488506935554297714181396466815781677218590791564206622850799292005852275696703447767766401027617700396728036411718220066867359073531776878193787477515997742362634391952784126199105499520511484214953452916073450203315429187361099455687657181021259761617146494747882511702345187802528391163573585132102882742043967685485632310889238361709975382760381494901467066160092011871523536018136024428914220880400603571688011882228423204336572007096734776697773904527448475399547240100603210023989228313101834104301610947530861657490906999730071987940813065556908497339798681401713917327975573295845544497098415911737873748739795032147234748551783708448426896594793295741638616421286220725057355669652151359006449537422522340544791678392314572475968825496741922176008126498979227379985138133915371843314699015224793981508074027863452045170001012237456148414785817321096182211909533068587148545956787329825632795855524905825354940920210811984861526212594426567485182907190742474206240465475113293675691871086318700774599630405514560332606850782809386305229675608885514408268004820361635030456211582212156536423291481259240402710776222891123428453093731753040157127304480535208279035667823159480675429704879821764272736168435649599801871363424637825667576734776367580384460721785732199352006657437775044945274384999589725679938563551515823988956956880704647859125624818876286053556388449314628947557521330080582914673117693915913780150498226514858100713672527031674341689286354856021325289869056046697819385170664200242665416016321259572852957885806845277841513900151301313586264506550082977632743274549280337291641947466472007793183744983028391310301568293272275107150306936635209305650418906837880026275448753649386062339500081244189012247288856569049310930912729512361631608455931044837557830930651894058406653695367421383458295789428205502304094528696165088234836945184906969950892879781331998877207419881422461444408892412029137608034946391217034008496036313444839818772197854245932848704763222016173161272645790924061840377732869642971704009978108945893419275199177586377284923082498425495383556901594193941693563754437144031357316169837181508375730722884523182153658584444945487435376979678920855799366915391668453659573828604902235277309902124455100794392610145780970213785103804616224089623654984525152498759292247659053561683494770986216098334219829429263296088939991120324774242596826598494014047115739536959249819210453398161727182887196979394065833129218560949332802802342272884547227838898236569694990210822418686882891630376119167983164396606982872223515064572588069791352737917479087532476625928101079157799743167512254295831467586008089534012536108267009839815803126810697400865212407945734038317953822338470543374704913891253179472629492978415563914534572826894263829683277890362345639685208855351380884609624793975564061800898419447274232637078275867966106661757065737928697581570756198886126132513662042740552735707864785083750447390601132862462563156148068176072134942983038848847494330154389427148425358038629723430585754801182023482545101135773992167167921513084373974213623095263777112637220470384275651150120758585876167063187848753065229355079222770365341312138637994946407569117817714508505550673380502642341777718861266877859429353373357062779678739494395528654526732781779267287233006334814500261538390486178099561064125436014614058747295277811578900512138927992181188195380781398991029655538640980725161638212606523331105571542426061080304768296197534091849608291629744168284156063864316131468329230793500207934860505305000161645927476916653643651459801955440146389611526806662569090749225297098220492935776811352586160814356911248147880082351821774116059613616747527326620517132321244139569435403185275144114149908750513327580341178115634595975027202142490510834488282765160850081571635429626073999326744436685813776153526333567621596755725333258333197457618603993643914151009445543191390950859569949829755385987186674980846237743873153791843541875275675123028496238004235576859831582606593009048066878696852251724914188492284132129398886943565836676258919444946304712560453658977647451136703325899182580379861644958061246748226154581487694439245125848398687047619939640616952955985439485852087117811717736321467183059217268489400904551964492393437243811776453537668247898760777576035040831271053635469453902671700080343660253838362161920443348352236625579637488445019207083284121453089579043066217590242045245686884896571581392360424262975931559478901348574922795300365152945677498847645460155640673733217443466810443179528019388979363063847567567217620508005605443456563711994475550689939956857682315697609239606300587812340777925527190171047963362159323499318654036614272997938518704483305662423273223271762186155682513302166958768316529994357661009430319954507186646310393441573142935408976096067836947621944117338139962382570359701010079534645904683580195905482911650821539667674957009404892881658357941515120172033432173934875130515825708626634425072401880736565907649992008683883209501132371282338750453495083411356887286665029777854893350220821501639509935523609263034723918542332640243994927207386235957278136602435182592121097629543860436307341646669973808845185840591694879586745716781274034949114715613946973435450393102332049293701613853871701603456478086061454185154140401221199828742459534589943397557040618490719425289065300194503785942906166424888113179502285213468350969264062962839645664338618721689112926682959985374368959670199570692816190245640218898346659441401792509501326417544078241126612428543392572522888054626092200156545399045810512236818082532911249267106473469299492481276031283933854423563863860503705923472480291682415789343997559227115142739058949410515511846295634322480508285393584215180811515536632145356265912381224128388928523754564112456206445595977114333535178793321874724172574207798603315396545523651561427783182005248279986757283805012072859193160443839658583357088573718429694826246447646901278988946964088647462730118997349028300726494836982275836605405126862276714814820550801237236122953897727579307673315328137021198610567576213064904045301483552891951769061652051738632169081872896334590206691450844545256311903581663444068812137579951754892166231119838776775695496328119855574667528739466092606206012334281809103698399831300657430652142348275386530329880048892903348790967422966128048074486394400615690206005318883091530857526123693273073876239992224931711651938761855721410987435995180828587383286399904637049105845199752935439984027432236020945225080570624458681255846727104497075107853583038635456833933732546337373247321257410916674710899836944644430904170158735719071582574390781206265196627936529546115310250385732280772409677565103080986805125296144042996626121154797837006921122257696741858883438232694843730026248170248003221364694068487063826913465630942572123445898865184876186839264008048154773529474091119973771008616269306806118522650161232970722147963342275057198418802700171254874487207725135677460226186358342525131967366951899224748200444175679343140059970984371003910082180122925032601646641229972555814585874243033504078456089411390475489591669184036590826308459498483699633327001255477572404807791461120985701529561364986607411071543155302551730422761893209687764326039711590755049376360160759873456879148030530030471391402617238376701849319442833779900097332075505694712931433502979843814108701504688125654424565936239442638183704134658293693192273219476551196798718766859246201335613644515472943439694702768959644188784211451387086093000022766115370324252437913267800246655527927239765831086818431434512580095640729935112449057367217971585013784880079587122449814849652946379896306599386023439957938019829105085599085011107458683293397359725294884935845026235888710668589205720406012611255578469956988199773758267430134083487101794862768294612065354683803912721532472336812073813475198463449925833281577420431095674495590748676678064113593733295548181914484615857674999040146186369655641912812697186631371572629127417385013672081060623857919524728903124369998351317023670931762984499162400900974841680060226740721937957714256166822045701568125602030871966404529455196231415194343078623367607041279185330184179895312952613553281668645117512825468631789460816484958695475540241042481675127106305446757997490944982959770017038699595765580107856528881575422293800051257382070736341424297679273462393744492967484782468047228964469141965235585854235197939822855878008334493793803479528599206582025620897665785845456317644898886919800311163017326404154982357355594016519994808033296332895319948199153585580516368099722435042563684361557115736786869298006784357429151795474490066676464694879845070556820689662480676553128010117287460657465479140994080791490368240373889696681959825795036790062898477278127541894202177093403426181391264485861043346369743489237582605479115164212060954174009277469004267550187266420227780657064545525132842608312248924776679625394252882592763491316612871154238939439088936909405549131455518456234298339523093987168175425844141923352714868058937336582484579889017526580992842654188237313345502608795793976176695857618267185833804493581826711586581555219498787597056180824234626015095853110814285508372741544067147159063752057794748122947393816927216020384981156099074509790182650259475439933126804030242182169304503137623558300323285043694872237579253568762433105016402093423311704345868027067713713779624613371632909463007133535925892959161434261297526866430304803862512991864363920088790747094194331569174371343584956694912671636938950992839025189306401990779281549058511220775572347270995750582079415298995556615366359244932051845863414828573141990724088583116226866130564366020944128689107056474453030297654252409551919423069660068492412595320613697829239308072327771005763130440371267771755918165424942334945923930291241893254646199109645322042044506910766119197729090768949100824823203956108692450921757333387172954417959235728057067425421948246376274855121724863824695778789906934089369504381949822975044790692556315378334010807074757143247883191337366056015549291589397941416529104145949935760924662394655947459174582343320971829901782845659955553182427185574806524574981779605483473215714808721162210088701401713330300641069016337238183772083864058277719093917670741153963062854231973602982977493158614243784391780531801215377584100672871457414401383940765828142574462782271550812728861845042336656681738150216047586280644511204957429441635481982282184013556183740267347269748931348856518731827028568144562040130292581536809506499623650419712528769056469488604439884072567539309998569403392030425297416680901508454785909463549072404809791762453253754677158262963874703782511353266543643335724842471302332951445439167998668172314792650077821721220735865727862364291772685593134926791499394832056072704637566699259495820664292033563608096434949842062776821335483832623733301114263899302968730543827991952332482862730481985195901302869378874564947418924580037905023674606175230086666399220236617788590541514172409022720500417736012825175140940856102982604618800917381246053762095052034756924998520774382746349613277110771401498793349168291568473431411473630687395052060952066094644522141022586756921208558287286227987661207641685890716689514521986777761773988990621891034472447640643938102030168737711037284612929970786744097865251844904310612974874496949561238982863937845914897356280239157605917876869099612135074131853415489360254334518705746965001242790226922019943730293841051558009675260419437948384154458761594283934849455193263528109104477752319159476690915699927493893569999385732949588559578640703392867761286752948922689883463990050757106659073713979408128732441406791978852883238388130334878594163643971880207865526135825944813150178252106720984604132720595339707167568795874175960321235754286696308121145246096112903087815254106014872859665912544425511026690947939887765216566920016955654939689623110799424841312432573707645982311228587384023687588332434587388263994674219540546320594734079509050980873099232875266000207301471477605676386739380314750231923921101543628126077365843399464606444016720855396786515640001461766304089703156017101236878211950756890878470750301344735922210955372325088050956055630598537316896767531068100872446481212441891005237512402222862945767600666540370521329759350487640572362307453083195028083050475050618881263111791549549604645478711534916186113852103706359324734790420421917054326658690001181413169852660081002604783923086400552193719491577121778585904439169674327118221289768940593075176649508562391410162316679287321734590845743802647450737369756410754527745667672213785410462095112370189988668138120993824933037694485528804641318326904262430472652970796977958548282257237992018392167840429780927390753815415757085734912580530353415679214287057605227426405010541888162459480420928819954853100608299391539958822538224587051707198134276541461172365942978307366425396750095892558094307135948539880496248362001231054323425708340988257375354405605657464800743876258724977742339355068773551967567893159782572689806370018649057115347141390387679374194527796652946469280088065703535322478540750579481917772424218556326686393717075540955370694601305610230518384156882917729629897108547300425176206079942982604187998303927247599704584249303235407230580488723316874470795173324268622665380376998809667293084564943460183763250720381877186031060118271220272461163354781693725669412168131840320128150086542782561000488041214556014409051346869510352196772841846184588004893724679110447816382761571674027434099340502851575720028804554385894585906875760064711239885046565175777795479774822127922786351550395813119792496728606073318104323653985804059640247225053306114044100470516014061364177265980251161931341861168556231925735898828706074050420153958676026315592812308336270071355522050585895459916144907250741425182835276198524688847328431266348166789388225142872951713522629862542151820617295646211732712456359143511639443724254396971226622814067954298125957890062248736676358801411548059338749909688074648594178688562361448989284119948190052272936316430907890535140141278527239428121611521896533216321292848675696660490222433477345778362265224026138352212939679310819830876245366188558894406248514254028517555861866195879602593927568870369978579428031887904558329522208962551883886318629533410897996767221524960652784780926855253079490068973617809206063155816977973166566440095288172566031309457131292399013381644534706670395617170432937604024691524073139830620764780486052168770151251819295292543441759062972800621663933324184816824474993311429080173500215657792649082800085365022128012533797646250414801289550095897673332048455756323959694956023525823087841114996995900995008479617619424807182035645741605212785328563085758850543264303398441326909911734079767231873401753882109886049433785311326388428468621510331995480668060839533008475392116691488568182693739260701431572330062589686198023541771298495946495125381290302511459415228989615566940679333487194060775308299491376314858897694201118718518660762798316734277834113544372170929795572119171405876875532615397484569139137264485593436459123705733786499858934043370541816748802849172448245839360106990166774855300109793761108203208709541414130966328067703509335557170767628513211803500106659579430015404879449072977971519613044945468912402719470429433133480238785478666505887690045115186135170989559789794756079379443428298379019820978169316202351974839028644004857089999453048781669656978071881405202177498891993834035963666406302067184356883654263531327949504401207897223249696916535338858087583373042060138207518463913771670547506454905322419617535629559075602457661956827979760814889354779300543598719648138061733882116748815580627896279640166010898441705720105247191607680922533992043618207733631959776343852333518480903848974402860305758705348106718455023419393369698321262466131919159150688112576504190150741481323936239720058697003723520117506205746269937954866400575928447961116399122216386359989716761850988058887834288887470069972656313009355827842417987445219160557399046691582546946274108870860780813503123895092921039426398083756866510758958170173784294361559689397830373915468977943361662497279336142119390309682947672796410195990629539181948125494673288811417489328092064045407369555800035721998665251274544557978287928622685186917711091587629700181381877694713127229090296408131608743046080603209203263672681003710484415390735515637619391865529286566906015277292541181370869726277911846681899853264386451676146531144557067750635633135067335011046888945350084326631257227047869370793370797409009297290978981769171962024287979965220354930645026149347912906329567477515680977466636717432538869776925711429587699887171416862276328585347812225464347828585924620427169216442257389950642402000533505471027964984309157902873199654629443196338691196704979961296148101998339613315714776340902379837169642984426941085985264423365312534252106877056202181073266225532804415372818804695248290201605465824883246367418622390202349448614541919389609917810956377436950289581357306048371585024164699508351611362918611790874530995794204243578527195187364518340310083713454295576194911163578197362152696705692328453120545608448262276765360968019451872939666604632850039659204781252981362575576642658895099507185424469996306091637099761757683028713733445843393029394294968980571891450137222924078467207056229868108861934027999105516519445968896876084673016288145098337816083180129519777725837375601380224558539691413720267633484539944690717058724596196362202270750218422149064438853945133656099380712625396158938306718506841354795635161009452217099715960308051195399776702462668594393028274541067048986047546003388010161139679438977346511554469562104280936815788006420465467594413539635077741063417179900447435928417277176935602098812186295704731621373386269564053289357972234990334137795877910506593518762286202671737704741440449736526880482292710104184932847567750618188728930761670696573339485442456943018976078967856650807087894161679240327173364381847655289872360731796840955712396418871023109632370420520522294308284493560277471112885163064679492849717719338748181067907307438708395943497845457069544502654245126714696735032651388934251140575264215934838976022222632728926036705529116824898454341003836889200712191794491122877245128381280436080151701604141958326224035490416763999695992094943176734494585694281600797926539857346899395698946416459997590902635486235971227858929650207604228450730910467492092791136689146701765190015802357552378535526678861208341145883074699971052614333498419554191572390493190323062591553213424245749431806539182583494042980929057856410517662941704506595007333398989052891926734473433544805118415715686914295142935658623680098762633544646029284013108780839478730280166232073495753834005261352299777200646368512980274247039088119110921690609818295638685831588799164319162560149716372933075512003325116381883806719479356480136365936984937754264575977652138402200054315013684479369867053138203077681774613105757539720572277010678199739027509295065945004580759673302759199512555810691586524926363179264289742048203384840047464599940553694560304072441791801350415516805859480528752390973776380265938162628049285660547062265802961426416280027907427714133388159553936752822567408848920370348141773873834200393219911424029332661730806138171695551059521843057127172514736542813700039294704672539044859925001037827364306942772836040478025314570696720026542603009703354525815798912770366173590030769383813807441457433282632959106359064481774144492626717899524288596130029804284249492217971703427036546048619062758784471961005466789226862257010808551859553878824294786661273108466957937871846080838787942118264912792186758262571619583786347454191579296041434663529074392982934276297632123169853590200703224013342528193359083553163242359094834275927740151587405247865652113360644992317818567088851967289065952004292929932636396610117411451062614822314916276437067676318743996194163643769562739392229504326474889928703130871971128890792854944085996263768125318674406245047615165881051504560153890847940386234349885229664331300733733268601062367794742287674665883101557093832639589518070684745878972055835554848881797523440211517838068609154659200039623782687221247148957421635207796188962910833168176970199320858360836222442428008329307508034322714053244668885113792850274083131041181136170695090084128003589225102226093008432470112612942604837225444476828937659578548339798270100446441900207982448481924674850907304575683069574716633840630660904982698091251761133984125492680066261741654817019693801217635149067361270685063328243827145148824449629077530874211553749620468392121938684107452868094381745851913803183892628695396803988094398710481126640061187985985103623906140946607506149188773066955646915447474392947002652340014990351601969376145316317426559907244467489962842638651265834736876132520364010567673152967311256107704704948895805212232667560441582587974884489734490873890934971695741312351130253268595274986344343440299600986966496246500848564664573501962999626173888593834226840328045745838630712512438740061056587353087128506810834151029496840722685005568295079283215195084236121422584634274012786965730681607264777249467174423371874384391575665880335287363777666888985036932086392148368894665265560695327828192818736698632477781149997285804324068019342312784647739716349832828406069807914542977463654268446127837882764051189266599605488902637360336126444814002107581183553144813491704809298308753798638185910932305547203609861288685935814563288643873590533959303836029942313625918427524912760781214849231701614332330725496900919731366018020268553836020095330288641033118516365182154050863137796809504754541711669058507583506974355987430303284000083142202948739014007423931711537792752435924638683822924714663965732373794837606515903104914432225687293330600833494573017020982723816771523809535237518841612466899154747734337601003693655289207963322104652564491584035859092991087799354320359725355983401981093514928770021873207134373090994574879252483741122343542390354533105037624010418459548679847357437114961106440807362690149736155983881439820226009900489483212212299370791753275943154489163411566513192760243766704139485695595812219597867170417695752253117176048633560376007428989821944169623895383978316673933956691287381869072250659771436579204814174111638626047669205194384632310200714774794762830793052629567097220275048358590994711771241339029631182549300649038337911969950132050572963080363152520013265857796211795804918345774348654011467177387507911280640251991333117452550993201511292077198495510518061415239130553690836163036266178108395799073277930241167199669917582973089454287490754048991455771707592188066870243382315978891427125605434728124333885255396249289188761189154390746293117604947524678760590070488467038502552869465422555651640278935978076687936110729786203955910480873577306745217412804288480565533530052247426299656337484095806430905288231414421680707428635381430569797589330872970114729442872410731037459925286989807537010814373383164566359940759438612906155025967579516641876133517502367210650926268197987678460198255405407863215211856564132107369392220720469645234677456358985673494894964645944653386381720865044543607771628429961683079166063568473498281357923226655103056814164083144041997724565597993670614573664903678746857013205962975640049122581511404800627247279995155710193301147876811790066404482968537139330505846782135516851199928248922440104663876720812039714727874402090090521688166677358565482785421688531781234469517188083954211718210941065023470690091367780391035422090171947612627087497032010194938619232288051082058590549244185942234439408336710021903687758184842807714017165249132004312150031166793486730166070526980757339975377341557406780432295075151425155120698281717636831007212056142240059708351264764008428439582154751749646159151717419049688859504035418503633953697964659095170715027953317189571093247359797930163413419234591694892248713264120999685584463827314201903988286204479840423086708639836733527280786310173345158078230658261178638834279788554114187066590238464572309575951673724624495004398544540802143332519065518469213153259491178757052124860682961001470567005620191564729066343831483420565695357888697786837757415561377958769086251456737188870507101001666084534461279191179860648786200768258729459720666678968133202053234235050194939489695584334508352954342679920490118770873933434826475905794426657113644751973622839741610400183772963753108389739785796707107326191787629221769700458129072721738031972557125528960842056230386509091585937387632057138036777766391012673315287252669549013466435172194688756793413970106324581766635446076724388175987024377327212940704741664808344220628630141894317169131142682118200114141533129025135130070678862304358472917980621487040221859025915954347660508561602662318812617982297298001401804959120380992175889580134786124303577692947379278415321989530205671713408708659868474469032692330708397156489250938443305176252987660375383671062073370462262211097467226506916293910358486190321046713141891076657691144714823892110800995024927952424048883691703999606553927588551602440319935141181388350773179191504411234849254359266910905771227810224935046077138931131565260448582137840714377030873000064188528960750738149208685931484796964273070530702377089254704189582504308933963070569565828396186961330615870384398949579817636490920528798012699959664137066921669448614108767509140259110545367898829076018505528941233691163572887067698970446592816937741704147199943066335714533790035311056027178634481458931674801258984479727883065191933922278444434734093548292055549556132619186232520278185013977976155104419247399212277142047919175449350016484901858753297745508526652220262007312009353111568997332551956250103861704930312547584403771193674533152998959753812071277930143976626744818330206411147962905668861374982428829262984093862464495634327935350223600566089926349007258882411138838687889789881829828819244936334693007601376377528544959790678037787459544970140976611444434055776183727728575051532857239744570821299925122463094459243625131166661993571155993508577835812061490275346597091581471055860439938913448156738531578603500959621380107750584609955354849570724458348533792152009350860987489360531835160059194592051515489023678589461320381488195123337544600915008083089473231646468614095801756074473654026282043070328679438874503601173045736152979587465147711457676958746265812829390661792023744648194180773610658073201994527862557023414479459486164745360430553891610932090543411382206567611538348060902042719448044173118202790761149757632739837815668205896987174479397248932375506497867361383491707155506891303102664769128586052856517735731354316381808812670326002410174077444545628677364035549974366581271605621880318336684068257687409468512339250603188684980148353466828381152998933313339674352886531508419142599244063258724980665066782294428791058313084435737820557044392788587523263268802692532068054495928741221041594699234375263351534657701085305575521080795990354290262056858352124138602647778061020474281580394321848378285008454265381312151455124732692499655588764805905802792792864324875841247488899069676025869507330717906343461442582557055322915685409471494558667698464677047196514054502437926247889789917419756244386913271967874400277330951592572484634628725009267557414241977154043819799515547160598410768600072438185466498901033195282979579882262649400305800282939533343776657719781672264271796547211483012634943683043567066837604440557663309149615175295642437966654779709709193184508310717785644944707511864982810840715474333686274477245565370967443363341492076536635959613002958658315619025385227740469718235769146145746387544639606281702552222337865816235635838801974145713030955442060419194415226593731148363891689543554802503234252634190307014402982297513791682326784745681180878599650864624080930885295335386929021757704539499424003973519147644324658567567735975725279689361400181600268969204339900123910893323904046860054864764728461955077214110636326274098750499794308018295182089154494539615670686915902801890689454264072583841626790710996508501297637725927202660841881187714943947185554678796057143923433014935835952357711657040690539304957037902488544450624659159806621004806731482765590768994877037789506795080286033696546611474289610623744726348216184450242777201878159644650219075808063556733904213300822331149465066893534473360439975846661829360407100585564720608907095961130013974523628263446456168540809031261406783172137870896737958028956044086916217039120509831831468943040431509431990706666561405270911455404786665396602770048251648228128890490091730500252337730632465150798473813882426506325348702340118392590983305030816414294787398702359116259366315825409115431233485931715392823124019251346839009829986163374251532716172293097562872583515645092357059592027553074595139225931560174194790512280055435517946425735833170436435351510536290239449251908469428442363288856371583568679738506667753241338242049642486199973113412122776634538156986771782164767780487396221554757284355265540168830680482182437457045185638154038988606378706787750091311328456071395887562796310473302831430357224771409061415547259466747286406309122966435551796845913086997774487451195782968078792464252677355431631966279392404282976455509684450437624650004265565987127901477981238711973004557091680144265837209255164775452563980008465978543993077568810368476018920450549872886176968854114585082956839845195832066128603705551432993327359128250484269949525587006723496652624216825394807093531667538488302399421106157966495248573614628278084456191984663323466245587868491578419356945998617107647471228217826025943317636177897961343445059190105618717168602100431693530969417075877701669726247143659277983027899025981505544235961536792438560114239243332215246510892653305032312776558564575528043569788733072387291206535609205375357826644550159538027841990009718311664738644280149401955325148896207201427616276928890515246858143207140178064480699080911529608112058691589224894936806559880807594467136395409460895419933593959757176575097121853423830061566430989758852213501129678024476143902311989191764042649786053354182570811736332233138380265221170954074373178602753378161330356982763634697648452061152258801867519791658401912232469203478020038958601407177865421690589030009981777052828125987528708639633482137680212352423671982947739551519785105630279644094109028876487028728375929064101652192847352830495560265830914773781884697365578544378605650353666625507525164021351639589696981458180558865831929744510237119706246265180652658326474281956894784094568243357843262644976753050736633639140070119246592721630575675936589362983453768422341359556816418706546250985571436075833373176141916443598141779227198535325575098026491876283916600447025231320062373039261522390819827399673532603427125905444131768626699289622929245155651365982469945231219587565746477626318715112026856461821152284597255106770919006376339417002845937777478386808383132610644532845980652585975695099396494294035380605105771136758722613310966276571712873271243288521244083600248124001616365617345592144479603474569259606641068808226366947722516470362081153136066200459804445311679536166629909463596270590287908948689963885564555488456849822002388187466436506156786270752251552561003574695617078432151657808877699947276034829880739621224115837408974162644279342288085888385874113749755911075146297168855189777981335678648280478233595105708831514154235170450254497885481670309863664408687046323273288770311699832111596753612869171657996772317925115110022144123023363354756520737370276453320995735258105399149407105597681091581494294391210478377540417928284267508670481183469096456394906815556463519815227568401115638539159712316905998221797912514977167152827811266579724185131198158653242355537395847412318595813749491066543070177139885217031096372331117598741827019749747511090521119248921310857705716939874543493101327502474586476155073479229249595210057716020641461670563717658935485126547701571607144360415963769784267501155058870600153439283739254237479512876966970125373983155538214484289295763567473657192424992473193391475992597208888203640277177075422045563986075964778713273068377679766720871551302406198835245733498407239625645370107043563222569906592934070702045728538288961292521341018669332822505671612852543355998602506815572333183406885322433927960479481080767884695965397725050329480549703477130502182413970015754312451954821350443928222679287620701209573477052276759118244953482354966565955951777427851257765148788608204541746799907589050609803265881614816691331798088447163563821016647850732448273057048411633711372479877810899037836789648010762067341455302914776436425781719003743779220052320539637673451774406100776341227783838034459828921383778454124063409611147432729729966849676621878026477083188498673965046150658726065691677853663436309338541345347818765971007425037195815481581161858950337721837460842701874860420076068327479753501804703365449248508848652839410873726600172804775516318061177280353996425945827510998121806022609613316822284324846940976775716836892171565789865501670159216769461632461527813626200223928987997191054828925985598748812206553279462414815647877525104947724091468979469603655721897012200664960387649914040828665090257913084267003349547395431971047812159401007947769580446667966268390289444223251134590250860349490870092297073253412197667658451129390593291955926122515086027722489487180777983379501091684467601849700768979614716119908669787847928405136567976002908490674546248017176147395043225761855821605626011248416418917248219973571730449363961363479668408812835165148168390103003505904098084363876494991065764297368253349018784248481966335530572956535851011497943673298748334654363373215821805438305047001899568396394111414353074037769299130488838036050953838552553805699986165493029741936138089647009715858166316927856351930992019452267711920731659915365338326230549693937519283836383566457110021720270003414673971078543826692448800076534556795689504732591148506411318810621511861128715149679930033970301978782293039213221905544682807308486250211408390521774529906224552209799675481963844808730251749580756113450503921145509706177718274204270199609250672327654515823824592075018692228581725087757900708045309373348083088183394746633909363003564290713174985463175539209534308208663487921583992230435420162821664412156048851851323073080997668897283813067486636501854960481733406673895133938791931044098004873679421828676756675063537604575679663322699423652958249505216104975207016408205172462125110080791450430354220127873985290635538614942688072226086591893736298781750403327648933608274808874956377986669612866800505063970038849045577720876168319894933925326229072738781241937632600202579718226990938517465725946643803795869141829020951539751671886552449847583212478150215253264494804325293554869161108455222179302877402237701294577225149492838318424367748946777712370899593824691022389676841250312540454470992211355155041192227799914680052893146805751383377284398159824170130190915895491941901610783780399870824020999237144018670437874504325414436650430355300275564196751096921668182638464845552487481125132949465825598932808299508739109007314639115751808929076680167982649854637696598682371826286632426619457400889481564358823292554274443096081760023124848945879997564988008375453653959485086463248060236764557115906349288649147652023126592860641706794862610351305130760577125710922081534351997129387419339857120883695094493943512923135181199380570892839059904427996327771626267384261846651875070914185775548243257165207918639610466698907355059563806844618855662968726417111300655015438396603365890252919252055586707467007283818601496977752380255310161843077278171554303582568658316684527793076302891419880621325990814223702945463066764369407584532910159199711122065101382014206314787269931814433214021688464221847029958167415723023213215132535034649746032733252208537547608502152902113988054284071529705718987948943800992108717461823071280932776623855399067941703957096964105208702893056990547273457960264006831534549117850113112826617930525856040610554422029785617421815504209529693419003439439813126804354119661680358832300704512944717918549733244214426345125736689650761105016037293234197636982915008993519943597537043529397785334072554425835281445223765140583361424676558088190560488789861823940601126281107114360768574387914754686686667814096404761350737533896429288757941139811779043016934789831468984885065280339556695260354426459196255693468677832154121268399085375814129263560362325310788249006095213815875211153860295640835306726330383034016088560480119826300563437979264437872158002403209193088542786085366496030434273560452980848059865443879899770933608348211655241162660623953459930141550462713124186450366531719797533946953146484370338088019861751527458862856512996650322362634152223850324712256785460921635885374694876535990829159437380581125989053783795774460653845445551356400570071196043307708528154401515638297119663418905578665321582462088928329050592935076695688736737996514024471273263428653782806108074819804839726472814887925651317661871520310427532410767482958393562255244226808146305656898917449097810028582734400510156569029091020094016827379704700371542471661457843198543762661319959685314444364362493885377864109896809513995765204002871669212344300333410995182435638702479358823626545176496668894648888894737613392623597119116519230213468690489847821585001949914604843133954468377557899146648333023727152673076722799138267943473808015463916904655891218242008263162873413117097375297068199766015997734159777655783694592002034772581559124326352846716815682938055910885149291472227697388731635992235122793125762017173494923467468391118571372223071639683666362547557796492577661102356437915050817554747507493587764817568912033325757708692323678440087515817160843763332253421787170841050164124511321039354615937547387881927136009152322529640602294190692240999084975985987507761854360178003127655248778956522602851555232124947153143443038148240777054296600196557993780442379751787018523399587282970218304978432732856539927278309481365304061788692211141970863468738470071203997302337886367654357380951533666656193347487566682726341946430145059158878222414712346362059179334593781530018006177587094445004546252590313710100542407788744858852232323942855542770031235288839456815346847750863591863512675814020949039834883502942334845200863575660810133676374215432722158919491663780763879075136366633951079580233305343378690092941068145393891009776869552286356730305476460690019625444099027162750521998534509274937999313725666247327194179619091985020113380078184382350373011733074737487214880677607445635610652533551374160408664307158500419694720965724323697990043709159353736467715154791009356038767311507602568640632056858646122593790527907761007194993878299651275691118973747050883131804568907744426260172027860165356853331679989166327431049663839737411053638866781773644134337768367382038102048962874581675459461214770077210412855778250147446066907903874262909477666868823861338598400889171584468072768004954191433942509694227718545099030963790950668061412874959259929218369072869313296433790809202549141314609142285693423393890260890453113308410756160039187501814849362276460965079767944082328075916857292985628763253079476559319058785685424796529094766575929732863046645140303502620872075683135603962761155280090511440860415138800112771069386043213391782930750775391127347929314923656243794572110155235143444348920796255143455931861266515877930110691607238730629619408197709542384588823890911147624112188023884479605529005883485828831300635085037802765751312137126910152625762962372208221158668882267907544092328630111944301702401589748532486051805131071114826233943517566684750284842515978788909285564573835275676912501948211350596959730291405222094815939227725255285313249939407226009426428389652741712700267461771377860385887850827338795041253139420157457271310673082289959906435515664218708341137863164364379359253748870489813061268690409056103320311728560137312105163954701662533088948515206882173949738535827100278449458176864371646157060931855211183400968534883176181786687837985710715660547326585507297553989146711894059433958600200864330858231366465926236292622626077855075217460467598159658865829715690342110938052938074568924018348856196940734969891425348700519257166573318663758476212422045490285378348487802457936645019112969854283917858009320044635659860630313702262709697863929272784280675091308131900197263916258306947459260249870587247581694382229481970268561434736497433539319133508403023648345362880295665220664511870075111267700080116918606038576386918877312150526376083698761112947857539979825131688180873089931845669235982758909468851042439923676780474242567655753561519425251924615366607652118102200771716786536885731144274679830234894331987540508738779135658077469140527598176200107188572864519860820934459055669713018930616672334833867129349519863839401938081924338976987368131036067670392448907799660416072549730667044456254078210385409785563683203127946058799795110597814363389625288974417578047098227736905092439080738042178869272383729170362282122852299169909865543817925042230462201061899782131354563187281682532232878136128083180540935063757820993190661542643420275560987248507783681683270490384803674141513152887329736819257613609618009863649470147575659015130514510908596587965813907889952100684368133910110316676195631859045373886575492752552750376664097624200194548983049742195819226204232355613257922014720043725063357722767838384934110483188196971786971075641732411182356114987178963041325926029736033656982292191398404697371886041031892331344761955216126846972189089477338287543293525783525204686813200994004533827816912437165297866074583734069193228319519201208706440685743252191280769326278724586818584694953133449565054577323329783449607817785848432689530894363169463057130924896782673202731748409164166576252240831842165423735579198920545021149642898912131608661013832442884101640245939612091579718588264372378092020288904117120975805644498345104794386433977426357067792383223595306972399562797254837056314350753562433539531454826353900863240551280040265302915178338265438845959106944937721564739185978005556438427616353069445844930735586035564023964032937904765159519474736328350091666278805520301197340637809670636508046407715204520873285418180403371980132647535337627805996643572175507930376495157536907477300230307763981578336732231064212480106475799435471537182424324993293207586953533375181492462385926191041668616080916850213729583469751482844210778069710950698524430056513770973379640915986300126399453336059745904204820520210429311025938125036585179767223775926677528499826393556907671113776530314636828887110735978025573262647188981903821254846382767829210891936345107175458957118352645513289639431277269264725312416047747347010825931349706019252894164101422939348557777102421711675561038065677686796553953725211271439572335058578934215024784948752361872392388741322627974695002580380839881603386273559214257372467365736116245501018644228974850335828104107141251766751964711440143270293925341907753356502826144196270363700475414140476571260163185972090715704370546353059896609308264208030530901675631680990222588934418684446633154628535226843388360003166489540822157825955383427113381738992020186581888488750919775087917684434635682222805625209308027419296239676609105983930446408140514587147754731718848271565166176094128912428967143585746684890590989604899325416554315355210893849632482651480334649280044186136115962916142855419604434711308428497026344049496931705363868254240128951261795548789247559619620146561272705270528396808888005912384678163811158690579751511553124568329421672725508757911547946822740016939426787726216910125482070453918468202687741112686806832459070553242266370610074379401140608731755911627340532088967300108896010642217368123923932257922143173546825386148481113698630348124788210582683524760227649270331839853078041908353581225709187092786369663421922898972025899385831305440694792655833669262550285640586781101579676632947718355013097085295570985934592277303881459144941963230945602624640894165541583836831496301475596078227101224088413077585907296112571403039667561992095338816788582370739426442610858329218974888534936918959685325520363619735560779098199142808331406828646953442279020923840885091939350068906542223701273789416700697736394214995857758886226134393696017530971126693625403188404307514010831648035591094646139063812990634682131396671225804166135538617315202760515858257157928679030360315427788791906027924093840106666715041755938746244857350818022996808686868765077155054279865530198975015992838473662650768376784181266252539077338287707953270828878176497701458979472805219212349422104862273017555002338966891666664061649633826191795357912381911647638931278508302854738304716898318408657202400406395632570971129429716954644827829722756101226670702638959243895732811832663848237902144793302472057114168747386423475998094197589765674031633954210044992177287969816440560143549489854185539663690908357539638752777296485394151839722218485003816927474332824104722227406105132731257649958082031671052236538849181504982721072099930137097525543426347412142191845745362282053988773850319167222873428339900980169720826972582327784213148207295541133713709191431023807723011792676415500441463404372284392426320844230835704638166766493897087468532596108758022529936583084970423884851256299939142384378855936396637043035027312742346398111021584198026129807402336194483288599151097306304358010462268717637207140803725094476772858850865102349177520929514757904889881920436058525501090663454404024307688599584724570103569208313518492113047466932672512310662668024944234891230343106123771637462846619772378846983918423179831722264536705786548066123581506469515458243082597388912697009224304235094825780388131180074855757541830494140359631815043876267524204163560664736377520716782683648883075439452245459654730577282115003474329501500900707982211237848799553712277574742805329624011439487886225262982583472458660396375666154179888630143780850092578028651027058751549791356609076512981232819914981326824464806115884581270741704462091798422309309466538993078216255778351531104455331735493989130302473432298692730326445505761413855453612130847918028909378193995926262568946393627566410918952840176553777681810553012762199534941217045330375905200285479500808416557791761510370087065667553400554646688040740474322819407463614462392086408754756273095778782958459138494509585840295933491611310626362952733988224757296261283691234867177409496164699028862899957063379373467134133051043009368763410568507890822604065636137866251782864806529918532772041555258569514892669107392299460878057629889436927990629975165585065710870603968426910289074669690976822629039238670769382957247508594861728590716331634565115819331935381796628350230052947062982301871311999425902488958114040261577648400722817772944651817780171641276381673867622374287323721954587127367246901426919907473790344494645971262713846059051814681073408057951033140839527202313746506744526595930752316731565686346215255218262641033369659377613446478486803636282480443077585503718088625989577098847375613200697927152042919310383022685370630470511826093815672611745061579747908403885723947197475447593383782132847362587685525585215029673594202925266480577450170898153896701764802800920552548329010542278828319694937721779170832537836598011166828787632393388817331196923566357148132202207298842655145261243624347015274056878207420182908563039621022104613101254180746929185235853253023029999545331733262670910355800012997103508045879250838694220242242170343580646104434513275512798693482483480175663716616915250191800192778591759137261685099063076431310315634403764309419854846810691609806547256201839648401461860983248091785014922719457618175346668985306292263920844033716088999852588064816303960731181139581983806445846272247912493622221891508295762427631699906573816865068001342820700655032608409150150938904313727043658437654878488911736908558051001882860832197507077573176307418816159043581581864720200400030434753130906315671317835463977674872687291189870424918795128772647343747126858179005559536136541331612530115435336851552690135269794273478032215997119100920311301242098665065647060411820137725105887021041786738943161514682781844805150843949532379545025852402799765500865218547548656585046720899965167688293341580376171946188099643063642495696355443078604828169357596477929024469944404598505561106246961494471478644233920382103526264139166033303102791699581649913935590500104318000978724244675215800585948663548437332923916462463052990994407493029288929499179846739449705691450844509516142381868403193836625606529091718239791254414687950747157016921412720577091885259053564518082701804086942651751355520603897960866863455943720362371103389494818074634188504937248688252570215878550378489249299196485823055416762278650999414706254400040691190106474234361864363512389410205726941008492182489318856412218360485254057694463989295140392273625902990389550932305696798375641422138538476962309973808121667601189432680589918588105483713657030087412907622012396597376975988520490063363059328990751500487826112235048053901405487127259198362069748312019078194912680466730626887882148188101039362998005698551058620973848227366874659288609759238189476690344179627409310351466217102332131821629378254854193816577106149762830720783747339380125745927392869840311479112093760117145771149569471827448472446356963632255287621038133379704146993154194920902439922682062667281192523234530463540874027925493068043294056327748512228672130517680531554644387265338794456884819205008045524054430910509911128027292975398751475973316329457047650354110890829230834408500402109944276706473747437189541407283554193448117505592616911791202112089701914861069708703864738021702484601733051801841717190083593631916912592612730397639823982038455731027032649439747821216489338140068536390940032752820638159789497168857419884506578948214612276864791150254789620905750901211464237216944605827246000807237096718527260835201123397266100921489406402061980610679750253937064012764958354308303138337413244536347213487052050991538398257569101323512634962986879983823240727279812144149851687745021630902438319814226497367667765776980305112996934810736882905339607054833558302400880557470743567834594984127761414465864656703736252055245548911215481807088758859460161778217676970121436725472203856629390674334522553397672329987292223585588276966109046947411419280911639624046646377751686137619149162771212710550571937064326992601197974143786475786653717400181417004668559413818510960058285943050260231312730069470953821478659104105736676732804434071900598961064529616836960406107953011637946804603989926068964681981093761380182927037111971963581548970065470714128923770100173934060970923675218528129126767566508530012985576766361939019741164108274134962441426571594094571273950428955984321468674135887113420725066256360677157624766484671654480178178163375865091706793975844378684669217683067861786466317420505565355716384550605241606995820267772174440254232240685174089804875405551666337518724401136087481481396983637942056880513179820159234965161122022191886586990782622736726842092787526625031600031918702948207818248612598091055345987504089383144817542734992929267132387652924657185529793860772722704070154217441100011313508911092458459342850393569282193869257348333890697862512656058259617626993244247795501315035454872208873969150652673674352913404956116568336025284405387357625494447273472237557485383491893033501988196703456506231876994893488568206497700117949696328090682951247065404637973272023052448368454148857062564820734328623494795209506095241216696579002505394572555426512769899247208203253373955108767249851107947012581625272227574460486420222274271366827824130063508802830968286610570482601944864984210503360663820031099185072489780608358022828762362228727695716366219599230116901491132524955269413277431828842889696788451070617480578425442859927560340867591008217329466347913332545426861156918259908177102448016417123620578713191714440606202922479511737222900874349900422500205894860420773712971459949693216115703469640382471702985864796420537373751238665419353090884059871059367574438319873398359704302676820048373197310077691183454301356188344783172224913204441304551249554806406364195016314978839469973406187903663317213443543576396267900582328708411382572953441068524457998520958353479386061256708914903956751444373683745010076535646952949066622062279605894452171808832619359794952748828197238952422807773783299130766171240616744728282962782931400057660269631763576226040931603113872816376613204129611225610487875478207750839979731751757169911004763876659225523280642285953852479132003354985572496157363509415317812299256974591934646246985955039547229253332852904490479579052918285396781474803104879098678182965106966545364782429283569686463051980436964014705844796106341981515397041996086144047745782267020155650793845029618040988223327700825789419025842811999754039370972643957659794920059023899104240558647738197542685903947929110698026202851086461976654860801403065888721011161487579286208788131379432222529491534954018594930932753394443334182510291456333214336110937316275490871565100203643512648656868769879387965016091099541204294203566572260256194981672399687622136391138081600414325134977825272437887087574791505935798554787195211941769273765650029560934883264055157755959709733274470124495949239130283050864995070552340298722059385184183872065764224100383168778186681494150599810673121651391414397343774486004377628081329862781026168323269351041386522630222271639618339049280695723974645195493082140982917603281953145616817532691751698460815743676072907599434475165787251289986981820267196030890455909088542999260172915854470492068191418478144503817388058120872387558725979233252166984277568632082145236598377795452025423287309904978841795046551138435062497533838116302167190285651168957813036222630514398948707672909117932484095237477587111427012553974015636116966017618240779059712159552654341115896021639629081681249649978877109950651828999138159388836945199094808058539985592452452435345117384259575155062822993710047557847068878061469386531642405052580266358533777143508867240997507591619383312838170363898335036247862807221082840692976287715503200189281251823989320133764889803081967850797709910513274988987264202185902061436723682698059481604461161969429064825401014302327955066363214288409346150625431798978916591374249442210960456959624761387592160752276892545640602922045212059239367436137122515494935312125775659629706559287005663865815130862038882099547503019051587171023276674079185253250509440215993342594544831891919874220487684342899067526637696208078579526562151387077412659134599329877523523141260123421905754973488611654459632392835093111499025374115310122813018877838306504195154036618353772325116402998876126957815867107725578755441846350050597680092403575840926263150362256490556949836007303914857952150783587358894302343504085764482885767266813923228001872737540884049259894808344031004588032277801562311683182466900864635153198564281074537770986147317752644517529712338373539145374676420569967761970497528215410658442351536266555159620575188756260414607903822394336997430398934815216309589999363203492222438764272006887307465932019205730918274604571286401048054121544858118617114482223132239272193811086232369287318987219389969866230045268453257624845206815739148224729135489838162150497292659283368916769212033240974625408349504508593066568548173612636330693385413894576894883912064921586425425312384828654920876757292923506094520227142722268483545476647214909327721248998716769988106493829712106266737629542964718978345881920903834560786477167362550033618250048172994389273860798495479237163011989470949683192985964307716430809932468714452645949008827635890317992403500021922334742868290186802243564279267887299959629059310908224661323318096225665733732980670551994286619976561705232019755492995736319180505704606744011195125614752097647041250417195182445051176067983796287951316280701883879900312087127907629206890498963187717014080243357998881187343406572178608625452593202856796348768105975805039464751555976608750188659526170273685624367545301670350980192561525549804151695046053442253757846599013775019275637489186872025542318436006195042917631337835327485661893377396787160807681168779806144062706611590738642196461608658418865667358098532705359654560018627523027977439459063411540732453021868746155445593036824823332340148463874734437331175681486383112999966185387756980515158153657969496323205936987985011658304509771009669279266697291187089824954021647148217492991804978629414616300895665709901799299452410173043158803098028943036695853556914599442205367517106011989581414849228942567450326274148281717560402226079113053019001933310028873124740897751754522974080698263061089031472806142184144645978900764848765201082995324734628419712406526531480811756439149121248146898513325349285006688672328009180721981375385798605481497905501472168310767672019253845146975266918861956508355577069433704679706209049358406122451211391764088727073021946402589152397388354167315816058563483401345268761834317736760908049041789645502047858436796899503436159580207904802528467020462348586558209045512293871873110111995076168651869868218421128169793138016603996402287542501652051777163460340699453933789648990286354950735617976572072205440375323854335996370881755189244161769823250036642711742992653143359128302495510807734521900738211943108323646339349855521506172846404978658492244060311933253277309379336808825304793941027381490935813903228905832575512469669380457113355270691953452260564494388700000930750063942830372025720920112198757215524498395342195953806055433202499595946323054873828347181222156840719360797218597146165101782942818013476495981573092429279239127924681886505669953879463384427705340251586816561309466886281893069005577000829980025388657379657788956964523373347369950651171061393630046538119407581200279024655404300979590906113024673375635067209963828177640353633486105925324230930447225209809019222492628684540231952595180837651432338120600101739187726871148059322740240317271984080432229952241048065875731326570778919568840235483170655183037520685503097936912209185503936807095903518632543962149551340172356848269377613820343265488080640404734922081773520126582828219778291801437910505404734922925504706594657387822731200318625321146603965807232919433900265283748321490596755788593214614066446204830519771366962608169328679852449678836557819574610181110481062491902954015759930690555054492992600437293251314344681127186226022868541282792851350362208892731390485211747189651191306061347986672159186400295298104376031268663957718942161196828758151135842229291494611627224067215297395966531045916824673829776462186460793506028764978543293293031636865214090015480266968197444161849817660547574526130958324388142172738879573254531620185233252976007189241004633008473930173729200517143283261259819346726599248978436021833485525292314981214112248327090130538708156892291089302949852166522610825637991678567234966345242181298576256731769747418586712917988006103563200920764790427393538621851797428956883702714083384294692125550110966945046028017229398108773537170974046352835705531271624028525836384562824057212596732668866720027494714880125893133701615910682822951169060979997748932019958979001809652413876588853622753049311096372809080835679466693942144900369675546611118298694710203707819144638891907690598889009794140765361528426851553364381576895660949914042236026910213100644280337368218561867972155409438500047121642171354429326596055049495830904730711299652025036210827372985757933175455829170802802607485726953748416347123889874993904102281019576408772890657637648739531578387699139764794679861263328151797011321791760818187053108923889773396839047773441458532758850092620984211619612015827522443757151173705046591265594909022698459750772841212863245733472232823498157887141580068730303341782767472551730559608198774250687360879977080691417602941778423499879234637819933206440110821728384234036346102591519007735499784401880057211837424495045944716107536344786654872244259338523984275674656527806103127866813762611085712368808858513465496309992429004893111660075446578519709718326422040524786293336029829231651730275689285018750090330858866709156968999534490601490500229871571837983481147683235033712783598736236662442573200694188114978041344757007599944649297382773714341904309558363088894478333335161644814757777455973279055274555366793738331203169454789485523509577831434966041358562561288641899258732009102013160781681305860559928711124999728483212894612017754312425186461405484161577623922436182112995371558263881543432603712414996106544587747336962921065179193283231310831705023172435138691714122310243959499347689683125454876484139442437962936575176814363941907071342581718273788211583105582197778957948885331526883096077134203295464424307116444226701147794039309244998611604605605888355736646397024276131990369071336485786314327015349003987758655661463022420139297776785923870081208708902206428798298522654420235133363097175654791870407242471301826702720340454168367100312121534683127120468538059083407786619985381348298730961614869445258040191083050062188432322436013932932974498238183834605273844369156127839318214901413764870148202165618170864568131098632627207918078592285286609197129488542882107829776532571060529717685806442358523055231542966202256531475515855545710000675571153802747194308571084925557682199497230594089813483241417635721277880067374884140993174141869145685508221498249909304304448515515300085967543806406721069998620580113245332241168284581027615223773522655353341788623082380561307692739098279801822011388493694392007446962504764441187085748743236488506681093010680570966514240266303558716359132072744582272283713106436019577211072992681355643964528345258963021548946301953560962155239258566668130602658243883902981892843743256190228085256521851518295594509522691557200860491205197320353615841190475182168143539370143550211958399447821365083550110437196416463481644876310422467269790402900130147052523608321323610705773759228380200607602733903636875113146694639280710966440452851185828324486905561698448009928641628713640845352043878855428045861604173642025916753758306160542450969891886974181283134226293252719693923230029965098811177933511315488649929283168948170081524218391645058140851234134401066538095077755629356751672151916067044122065477741836686201656069250271664078307102369549853874643185174439846976252038660758854967387011077862565306742976505582294753425568698920769419066988244386313854484092617333405466781909879795944517839410500822291316572816426844776136066302873040058046608214828363784912417032714379868996874057213029276369437649721130782918271406582342541849804508478354427827202103610879166928406234970046609788071217414863834473577784827426669306098778019484441585267766035970789337899597471787871710768295184554841407775127535499428907700331652908262737178155415167243047743823436104548839830159759887719924235389567095352173469053625707459474176818635672860835583932975568998474062404447874490976065915448450908756609158390422751198204487758782678194468275785486806561739575083813146146638012289382751000501267594750452759594063042310304468332164016315982338076823181775832503779179314091064184410454879605809211867647178933435901432554779900840234898663709744265336861053131493039702031505175282919385518786997947264308395449395212964604046447541694153825144213840500788592595256389824917495941480569684406153933542262408558329557800468522832323291964598900296124079967079947108180431073358006559724846481789864308045026732568816349376989262386252793495142915039599373126319689567896821849523071728206654813066462758708926714208612573262289398494239318466058097185405036430439619579702028384719562370089719955600061203844095666532943123203689868881051171926307444821461932569796246552293088687339755183611153069138491299763406254048610017571689260005590238128069925733224240707000085724834711886653909529103597727850972971300926277469626099091705336685264402559429544403212620279636952909428759532694593445542798448997236566574188649448391960745121944598500124982731200838072374566827139355187361872827099157395111634611190181065456088567765981893600803616317061376915671150536232533302230722179645220381644841638288242678057608295400342115451678059163013941614396783285420779850737556110822145054783505969292189521711532496335116075194815150101820023352609422056423597412992778349294194106723102920473229886615353166606928999505415825647388747570702237382623479731646784062561994266593701688588117055827557913736292951890101985493730394022473135515839254539901368407632873051274422630292578871240019733202275949919762874907515746115582622497927902061511031471024940988678238658809227501227834971517247737815026082635667405441427868364774097483695830997381186738845823230105510641554611394152471442086061018153091993426159110058811882135910953206650770939415430135627011008901513939248122511330673843196622858529946174316330873972686485240338194385034781120668918915985260612815703672142513754914850752399784362153791896138477184595669384265845081888587458428157858786719344652515997879223350763418360878401751276128866825731597670962224875267931756041532150995858989060951962697463220129896089129894942057375378758653671097892814844738672590590507938352210403196015350655776381939681712982652572075445243675652292956539997869258577773349022046216954385347579124360792440523425494925557529512250505690712879120817633769360126871518983190153825566124437428113158499977049538215595312309662009730798114730818485324735577636439435069858319597070341414244788863772864607392590936596848699927858544071849225806337410533832937720936672392760072877834883479014201192433619328539186069387595280592391269283241936867728722940131673052956770149320493802322916126961991482669792060724646041890816970063472766790518982082681527599905529654596550742992720420016086879447420056434236095230444354691350837599878423826907281147847719348809514858657566385068296011759278168953445948148869155471113473726054888550939715569540173625637971657962819780279192735071836458217828024288075884066253361528302758721315237870286322588201770867744228187260434493540572255402922369731225162798783404748693488592669246928524476633840265283509530565056318147704680282533597642595109967363744826321147548265887397742564526671609373018267241562446372243456561054990641370597704177774356930822094699844682338611420573042494886843790317521442404246295683577828570107132821257947409409585440428191743835100711327395923555908104923188622734229440660461515393170495123570968082533972020740193993434519448169610065064648218933509606017229362947205425304652635594754615766155155297691671841021993179949568399136623676423006491699795739836034927589619195196271702431336705873363896954934010360151167661058915234415837427145856352735390181912649792521123876218085484055649232759039195010762531701230374463051098846919711714236796023600431344868747462331822619926311753417853356160723730990762170438633565985510755706048222161154520490513532721378669260038465778590837155374320854172906580992754936238331187111276562373852928524672853125595906579626952091016029896900369363331126246893718220114969887987197191637617246933321303329571604685736700401868856542780293852037048054816814683531922198615230436540497388332479279144984176998866886765357797334435636658629008533523371619560497359662829989530658077675076581272071066165168447222928047083830255225595161992419101166739811225835320159103724651358134760216630393372304723654643558932002997275313751761341708515667516421968461129925402833947385862609275065558456925757610240163379596095875114245555437387402820650268444089112648944261380164934048812183302240704812181010025230952506906279312047983116128434203949743082905818772263080513268487777110552767757352175098770908108789081143945193336265890318806845472622703672368291102805809512691442500073700596674964276465507058202042433422628268150607001591274610556835231923178030659522887923791536216571945360140204799182906718979010189070591993422452047605484366365386364807518537917154307131252615421863381194027363910332827369497914212972455646445199649003643993015515678721224636287997578474388027527224728410436486638940345270195645718848164194047512557037390611567331597187948376899376992825068822936728571435627308045155389921609290619380430158298081030587656795379447444318568362699940486018961608240477866230347423050037980514366157127155725670381841020124543344724732637519857076095462327556605969511599434496419377276490197877950282999575511872759677472099482777756505642767597488985302029095390288314837247100928223160736231119251369715328791839531385535414059495705195073312839735950318043650245831049391799145207513480576173102548188830479623917674812545856484026827752895268340814248868534003887812955713536007650511878169327412802601644875621156793905228144056673231814177348350426634879355459997214693842366450916558038668133061054353387935494255574383954184614187995838740410418697842973956497587959914926236902056237704792037799589873958287137623157299252643017884622531254438301185890794674813397809854315390716573131597949461936999491385176813766150009302266955137255420741026419811777854485688517982834986308490662731173291093129143296168867816971425278752184230798835770397898714819400203876923190217533848754480575608665810084958025220894531235389607354759271897371921717174868425104598252913249661940954432375436732170951276873414685422753624319554150795067913055896322728912589660206706508993632682559677350261480886417681367828982638042175745765237543187423709789428346747112052809526507790831092897956239240458485471257872709765834250543744683751914605099090073036935433573513728509372900515647166802337449920525558599223453476436399384164143809121055082503541322222086245915219906657681803117293280694408703465052476362463689712150518347221078548941235308210954038569468540623468200055197030403089698673919500691968598206892194128187925165637406758021446651265249137347125803368837105248869189025246756132627799000522312217303907455470735939906541125821465303113108074474067035564903797004874717288933633167444324768494128113732174761325559099896896187394011492058951489577608175108339122292638626077849449981182116464442524037985930186422412511676499679001092726476733437134459012538587447987008602784086275944263613108199267156363491333604420160821354768109394733137138168185152117626461729300776087272545088364206085457455117562733907255897508048334064894763240552758854729732600054050978892265744501910668438105935683089756771133003600688991228616447797377237299544048440413615280369194582658549723130831389375151650759917901792932607226652716066426210386172426877139597810273529888550684482149491771659064583530731653088672364321016126650312926081027771906866579965700901147247698377076081211706625136599729817191510412616651910629956803065444640264720808501811850916442389799069431950960654943076584619601698597994771845997046095726158245131959707189259610540084337412362071712538522279754028681924523222613545030105599263500485085051672477048344182355437853250901396367623365453131781884108254333041554827497768637924749112726347751930059692701638091985434634578214840987810322025929154013876873825297161099787194304985231466012807765185435412084587535956801551727059876245227265585998442311716742237471908125530333281459909639494565115036273325044545210825744280623324766187217227379524660366991422661246660720448913185050919150526412970544296333033730862737527614157638288498089730112641035923113573788638868704901814142481459890507280237982838974332919657177710715873803638493213330899628686260820644652662254815893608954072970158680575987656425932407945894879085710911842138811835853932652072330021388334124763109898656513754347855751920031265297726379975330751048168343069135578483602186821498688068219604030817584107420531165959867652014949207563276995899554393782347101486007643471724135549925746876092054055694844519970640244831141554748703017603814706527088763245015473016129012645277243352941351120441495123555598044674039534026859886945293875448517175828913567202138522063074084327914168765923395373210793625475008407959755273885919821143703669939589543106503191367054101525164287645683755216720645244416738213413946840817633655486671936996760069468311106374944425438463454356930283084336520960141925429851482469441216206529817109407162949474764258625641944022483430913011601797809271693006996446557798022856946901427475463675620511363581827206029340142304803589545409047792360397314056547023714689584843632665281543929041489481858618111540519673215797641229155813424846683791287035065129273599446263392980221586555054085133125661306908672713941453590207279213810706933675082446533734069500714025188936656765200058681511889708148969945957932926327874886255203519360015419401459473228112519547477710852585832104554967134601476821475285320264249970187584777600699954097723849491203977151849509597879739568543415226508098990005526551216787262869481509916818010962500126645805158050634971558262512216649953980584508805779674247346388782234923694150511721351858577388524001873925369295764914093183733272040583410252389773235195798436802651716550103489844639351039532018002819399657185470736964105021101993251768360480402237010658784983705179305157823849229657824447680673924535327027426851375219209416086171137215164240130463873930989221064721380192042602825396838746859122268707366389057176404017246734244069494568345011956283514837995163820852149210667907182069509461827738064843550418830858723258005963673279796940335884715598140995794867048949187941138183780841779086116024182054088379606337640660961403071632372798231635919389806772273153758758734836623543964859260143916538729516564123036323594419281721812058940032276197879017775281067975515567168417879289491488508556416212257586077092653150250277187621744621709934068786901317873265500914843701065205653962842227103957267006338491411089125353494938815540357978069192742727443440078410753528502294993329873907257987159411275836713563697272169503031802074339559636713336272845181497010857646613916580394356987147758360083968888905497749230044676068285315684879582111524620749081392782649275278488828015902903014693641331548769532351095692102192365109154184288140945907596191065001400535820588344248359999014359387246297120830737323449048780452128902375301409831976152526913409192078938237982387336680777043554477124422742218671772265152474422501020177695283577455780840850423576882238202965646107277606492108916952300573875797724711718937597178440921351230526451770595251663853440361515638705122229513699357290414122575102664783491066688634313606047622644704757653980084721418166592414687517489934331225031087894539476900482593079730498328881346472870018070569005051659803327678233765131166361652403760612611556130499951510832828551983832993538531946758127039013533194056801222463102206040539652668705067514737380287089357797013640479895140805258810913212643056887643132118630959219923245162331470407828490630873446580665859065836255996487263115091855979396020779539249618169197476920115285322073331271180011834900407363873616066943475381671589920128970847571847520455752379314279998988617882865876307425680741090315320912342724640698238777181805819600064633539729137916824193774493276547310742880674201289904984424963223506875913640391282662671255643515727012540921278412176209390694528163907622680133753142095086726423173895593704480707042318176488911762577611226259816491719323870068274845498971808366246991146864706078299264025539660289356234423695461830854017165971130301604955336715799914012398572046528812330339365733262124236218947016389625634404431304372609595546461855605361700449275223932856715456417411815290961242507242014131144226601100895509763152547836558421351691470837002078028821132997664778755234689894540267053211294852690152823959258609917288071054591057687191225084538023402844288515857898982804386449504172220588309694413383676421664654436114850679514916647038801065815741467324576060866586584615400735150261930031041257482750083628407270725883182576954706544460540967598800644859848508685620171625327961622127723418752483855362405736810591733734573900221371434066096016784869355405617938379661126437787180231660344639009842933363375261594514709853750941675976340370906809136012936919228234181347662000231922884496235703823392977822600069440052698797923391499159490245586879834267651748111853478780024029933653902699565355243701249930879892935773403982575216184769964951541722494021969659066960483267314387641209798156172722922711818602814962421868945102209797893737662216876740093584197692838502485628726131971743551212281339388589794267718732837527929381572445801427217682385524785703926175038685292924328337157616592377480759664536665009024403611309399957065588621300613000530556897661473846307361930360849502742893489357595918451123771086233625544856679167908174454495887077419517749096105438891885480977990492282515159387827035376009997048096967415249270218345087589064308230307789987208411261734416293768547911208692292067759961200734969218080260695038561503301827170991490757713303031266569703264311919730303569298076251415009622655671343857967686123640738347955666699017726888317522752498912932432990156923921891009713182397018819967079698233502853396533487189505134204244348258867042052063546430001039827680785809821770875391150938813910706538636881551800633642121886274627810234205512075732868670315503299015627240382897783735470326517889544516573984970286974498385004441342502334915324646880988499949802453716537815424154597798241889780407009820808380249746513708047508284381259602365380695602344177209052136609274443910588497719187085884956919423507916608626057414285003813294730009837586844847487599621782399214419507278009449322002754223953914580845443833760644860244432275749280135035328840440785443512390278286137979373857674133156205963556948353539274460883256251296496764078645129950350092961727990043611291250019440157213201256333282524454572671149016867982691873235378280278237007519877251280024355631948341025185418860399439872358452506297561908617865309299953904380798281484731654402678059654557798822675680128755223679493090264754569296213381638625671832029354184907729860825967515615440189171781429440111467674688836512022427942235818034876203608634244013110240932223811373067455195396482895202797815305826839893229549074390282069119219854820256607507407644783238738539119041410747554338097918386755027975140789694616285263944761059778413845102435708007042614097391063641214187132711098227133187434975395159487395987976084705788911976107721675215033522175070744038372080961798411469085431027369009749527436184482685868070795893073656148193070458109757765078535039304676770113922713890303917297735643186111340730736108187805398374588783815734465252671780380353487836089522435883871267966780774255270994262371606430978158919469694793342881058153163023591903646977149316828477230829687665283033374509619842385344757798228182710571164735684138814364307041038632506123404785644202961467955986525758370300660272958474606895859355402542773451537974014398179975969799768675910031543290161654947475504138535618153661657021376885645213099586218045340429550478476276787146932816674685013647420322232178752559763679413043729641773843267337710457378431901913774594435558463370682407140243838529855957153131219604168268029695801963665110000442592291505675385888369195653156326189074993245238816999773019412524876299712093356353914139507196308900984154257220396570224647059791621344142453754616941117208255621536051327576384413081915190315321086075744722111441934233728776616834088059007145091753326662285635451661255017094087871512063437992622683217784762852395414250376013204108975074110945375560984650650588496565359661733957597999292869387393699086847016049226109373878209057776702196997637705754040346571515554757574818152450383858085255356083496144357101237329799508886951840299747846055606901390713829585453097626671342154041674412805897795340963062617982637378313133083456559110811757462702300049823949446587208966133368245431309714645726606439050219332337485949950770502684118711779468627253263787308803151526859289522098076432151249713641509018370779662019217848719345673650625118880036277205473727678393420824773016322348842178643178146171450943439632883377481923024452039159888867571046771734967873775844243484782701644669431646222091679283902155182778851272502026613106474584060770340198752595194875917631599455199951095663272964842699344235419142768778134359693207868972424014628170615278965758215077494709185265965006657978403066457966670905172343955612663883134129427266553927561781052726605184351052119343247157460646645788346414575691182950688307810095342585930890749352222298643406993538582604441303064386329212603100484568233421352257130373337841349880790944572959758427397134425179570339866772606736090520091830101383262344176174881595226168913005827076404796694853063497105059752908806825036760135550219618301150583392530774683411902828809596616495911212824355051344850286210045315008049373131937450297606565821937049847919105544819732590493641601863692938609061128891658463416651146150278632490466731766595116048584272324413783342741183349147414313233054065466146022277339140427255389277531460326313995887666363271337456482124587468870946034260041366833998154115328256150649255668580452530511829131456543020072446948660627464055214307909151764172181244649565868105957072339635456303367993298644308374711236981117548000599311987782073036327427922573621994723475218261244678122638421296790798125814715494525403236106603754194946084269259457842292115860279793591706539661853742985027070445352505195498803162588369279602926702843156636808779914222569552054468147771059565161377482385377291831722377768768472569333756484316411415481282902917684887116764908032675177875197995107529762899744813249969491290296166041934559792189216928062982580289480925892007418172776479269276943179508936789179708298046577399649407858772572044311257147612934136880124708261420235904889728855729887063590407898511830170054187865236985582768605124083291364532827701748511630640193161168077458150592297539615950164471216380544652349134376985029977013842626305605851233970289012005376668044798957681435359909256704051510776753100128946921704904101964084359703837425440605149522613085146710632752325780257279550840929085285574516412806246097241225017049942925675623260546609307481006194379875950497177703672865231616940964947278618441453648261450077545182561105283213513241987785697256805235447540580911340162624251546262539492181702076343273220644286984698241565033226627853730139325041646587866068329581390707290041509832862668464239701599953204844098433590566099152478115842258964925829846489663144751353935750937061036423954913304783344201866944649654925461732756711873132712680455581431274081748062711524529809531080484474877007450799852921230195039702588679039336296540999286114418683963074525873702575503277001461155628669211748770322538626943686589588430543670957220802196005705653683296915973558056568203835666394134713452469078527065313803063300397318882814750106078188232804453125340743759059166106719283607727945292162094323630503361768521987831017097536784565975602241281985958597448748118349142422911971321533825955480473868247879476551098910575756697619983049740657885261536204884107889741052605692562465260260610459499631472869655558385869021604530067860659649471946767689401637508250647048708814818460122913834787860841525307876657157406932841382130802227061914284737639360417326710504341002348884984278574825617667612916909625650327183525487894963636298265334638907669732299260753897593706414264766924010790317452290487809168891761900498930343654196177044917233441504524963352887920592408819952594863701461587601353077964660850108336818891791970096733771163459309665514120948055488371996265711425395953318492167778749027910714908082369027468895541044664728768374958029010818663112861902780985616822857980928437372497210503477580487040855277283104771118082883185029581771818523513864517986489197688841338074671109271773334502748810365164165445160032847797586625709147598154105030736340684764421890377667412452125003110301344023415848911489699019152274383142306553007954131916052031090598152549667997344708512682998014459250529774152841243194455565588532067282779727828833513899386146911230695633434326531248902734451673319586929240374883829004161707916795926362441768253917326756126858797560630052979218319302797647580322349735977828343098206393721075995151645874944668128967069606714287978169806400773712272447078929158998193811622976714022392332119885911256899768399942719487904291174063779742827416514124722031755899852152202026282730503992782878896804075344521740401843748329039258316891061101923595093037030413534298991550313123145374624430913552905400819879139635123149687909491565710628386369277957096675700888994653003665449693315310144336215928291015718596888979550069380838622950178865594179340719269384845831620856876408154865382555976457536069552890533816709079260585304856398462386250244724110395215707072014373957603335859041907386763691327629435022465420874679988920767656964407464080943318396739421363552973673747729667796964958232652489585307965604483037936128049646867453730369747250624975669230106751597266358754948384508333436590110028077458966684267264820719315637205899331865725323366641090682916188528319283925508940978931429036870236689623272273880962841909916135545182267561053063478699090116361429664035228795676309167544152604843542398512763469283728599345569733821732507239487424640644872798778996333127243110257809439757837461393159943531430482771592113215348343767027638731095680485332482985038882403085219830770058343860583125449992471363319252030153846815302356178090783543428491511268176938516641758967501495088621303197427609103003033284545422595203937330551344218888459138893872383632639664006734733548703131587090421921111920263009445428169262969869659355473781136209975256980214969003991901350648353760488964144276564105439939868615538586417153749695404991022777848187486844990606781032312007011019032298990138576662363741782723389333490848522444683633511942261089204358126742757999693024711731343269137026580092758440849976846982084275708990820210475266126499105810996384501542367498338735730350655278623070843530430973650931622644995448098662911163535197644604768866842954693979070974105131842578266683758360294582584740286013265698602579086562880105574953718755197098044657968379859267535705706464748234083120061424455899579811257370557011052629374044451954028999463552094643758979445311366374636172557911428714027277568397193238596995380584146983191857308464892111970604776705166664034284756594887345949646172202005220288363629744433060690978435087491967815576561408983850895034016261286704419477365309155354101464472636135094861424108336580356405154535897370427834684540803592150184742582892353861088144633340308010082317564226808012207976140686641718260585868436666824045066987056332318958960212895634653448230956027006937996464663477809101734487633679226705777878809887494069096041298026844972744184385611709327875335010299149298160633376086186266769150830063652297195072656650988550155988161644477053248694570912722432320306916996561845989294363067627710871013546926128062249424032589336838653588249026930495694261819620731261890524665670423366192404815195901304209712859140708425729043538105761069899804031889133223051091483701101277521211183232288759253111922792742492291530251006083976622365471680138326590401063933340177935186995651122742804364507494236275488709349194566152653463531328367531159141775538277902620165127285501533935662936113489566128933957273379155869716705680115941351113562327157879468472047309139711505114977725954186037834542997180250542620433128913049248180494809242018897081967692497482585159935552025609973359792201517320891578762169037907085984721772125540088634403069001278331722978580943831276708136429605440192943602964477405432420777351071621052907504014001207795537526247208305516411358810532430145244791303472882862332694671474011432382373718676972696918075236641062955601979030856767018894100153078984131061662345253629180937305637921415170967086616170658685229465755884547292161288624569580201456103325532849747818413710361379597090045652183703224113858680305005919991782358966604353934734863342101627739541779006368186536052105496686777875994010184358215341815912237889817501620513836466292035973503174519858144819039229077886762976608096899946372707460965632797826734329435187135310983424119013916764338456390044068286976268561552583712700197483151572754761222917828056529305496506364700398202205553397893629223708128800915751313183509308142243785257706765998079811463675020058282692277506570979777362227402679110491906175352969000861381407574143887535335070228096690759246948245281075090782190528080604512228455268102273940658235701553643334069395276125759835774862973377918286953712927759697536300742163025889369129476691137310682393918754040935863420354838469455952952041831203534632294820827595227000554514030407487444673123715984335536632572267751102283432719325549993856868062093318766946623467444792364616895076754012457582344221072112132430953659103105702530259725311370117549972906649178461622289234904930921850473841732414902732140248488132382847479849088900246211246560127824073028132728659661143149783922985248787244695801538753884622533322489783805344162896629967926969689708682518512237416039375284801224669596689431353204017378079111695520489469203402053062203521329428274146044154765581307381480235661991460422599588493966669262949420345116195875607545766985914648714982337325673480733801686227151574367579903679932800658359539220298033395492721892509927902041311420657484804511759811794759134984443342453645472893845700202806865986707668274237241335436800979954152095789735695932591941242886441426232789903557030246323724621968326608906673026849969806947075928786838065319742010003994655872948669209587394176592633759577489851616836305780048764973130623840687663890828209065507357624597265129567729475658839847505442714546293397351419875309681458124861883062998053563223459681575312018790516967162461567068100446310995423883472965335302835322285337697584745757735057391901128378790488513439124763125668819850659013656971676815387755975439961031411815334013405662598359191667451811441940881012394579814057318030195154558656168989239824932643558816752809705353922955450559876796584726739602083817453937205168585069090237232406688491256887145210212470069724506641039335147689800743110570718543373038940257156315141528697351111649590668196345196777958779469320682737864862267584303075955731288206507544547659996758691886667821485138861128087699016349651038998424560144200825192609530050787882442812860303082312740743556485130790186507678957143831398173415953723242490487874373142808998633395924059968953271228344594800981855497770906024339506702570304477240258546927261686735807565323209894005726045960823858518273508663554563362087882603622489754888857261961108213237969371336865760322557601091464264559910100300049413769849084455115166137380389334490770543783007186290312910052128159850276034377556414424969858589604168188759415839475822253339145479627291020395762383680968662747917965031771109143541946228673958344955043886405357820697334733063796733741030571052600531434938286554400904607248784650600034290038182206531421467972090718485688217650744833246364850095745670011063830459730127655362528641925211595919009371035207076990743055909257477351867575193962296150888128566023080493633732085632270962599988397968645183798097150464384197711250459459547677341553025730915954125194326386605078681979712333095690323391847939368528928493585080372211221108172560604075011875198836453105241182319593944999641089993636282529544593359466322683171111922197247228408204481853044245736040697813611124524189436601137594894514504532542747959596733756152829337209186959688313627422339940223365775298520057042002959845374216317069150138314918874031233828712579006067803904755140960267177442660913485856422602979949374730899154758580964228794881096236056880289385341856262016395341250090014257529047574351010453304466903856379062624602384934787816668523418596087365776707428128189632533600629065065219438231289553211713236299732833311354038069035129119531371131062584675063815364773470709244845069490793705370303785472327444658398613686656121516594133468571516194192430389239139105866012584513109521607642632000187469265532541414210975625625315883974967379682473181230656210558178470084485263136257916696111061390020917299959962037431883272925343206666600096206058645294187571614246224300302749778498859225161585037777957935357054794782811332854168338475463538468859143650141081094209834228387770405426973244823736680750758908599502209028685042054046154329651006580886092991651901655178866413225948317900335272449782327731928272252616257427818446366420477254326177282152486727969125739481731549827661036752829637032808660503836311150346826649799074697839073985898276406723353826581389342370823689308765963292822515443907970659203427092341366880022721211491197648768496203053121205726326504466366776165769527270538101485014552414148829771073744003324935984709454910795437864369462876767781413323857285721412982812360171649908353452418861312745202639870757229326483271488834212258941332887504896601848064139430714256931428959095553495220769566631450332110321529433473341580340874215775856823293463268883761726185876782296785963453166208659136447799316988710612784970236682415914123427885470805294818270858216206165201564792564296427002359911806064837393604933312412585223889539206229065189695631864444824544144059812188901186232229136308688093737354234980423005296554557769082603077320846223602679275484326242316173387566920461198326161941180176771050017136588512057680208501607392345369373544458358046068860521307880654439817762041314359744534337951608471842479755865228003294448887667500367973620138769784833177807139093386365196693675488917575100642520258381929286805017683237225036222376980526452041080040892224072293471141088448257026772860711792597706438245154855305082317357984970385093679278146279598340035687955169505400620126309246971338591752696686839015650656032967030869517257921749069684545949868706374350798159270443049357895076277989593660097627672135475107864013962655797240484548586726459550363745029900087556017910980691405150394727633963483279808369107220924323140627185851719174315395007826883389686404166425824084183306418753116229906541023454434648677466189174364201188324281761354446556304954003251524450082668184286931629016558095235554383633872240124378707617436667922837318096731703561845087927628860438351559153194781894425597144345555310454579031117623239688346954495666246986944552864700760494703186985095160821080892840853117639278940715176295089732883234525497460984139040390297151451143070156162861970992799350095740714630423178752902775686605028834697528309018956522820279222982176779698958045205390084448681240540117189398375237394026740538443921937503955970360116749809190591130433600303516711900329496163184606260806032878960945781255040675575483513367309782811484732056444277487391017887059236889360339258151303207690506918088440357054141370805379519226203731884180902891857850245141103443067839721796232468735385928640901134015951950134690938987361912316681735149961469043469031804120469194526489573205206050423370550221817745205140542647633122540411884867419892519380693711465302546676517959958072922178858842562778596537287933674015741584898409654132610367077679632530336671702570669927658297872839901791322496552114177927448048814075922136210484313835779184483544006538542480393368947300810696714897320013310309911712877734483162092214708740219336317937803724770698505246190425437903245477856659052097159674508244953104834605980286516749364803807396589030389929992075191415676124584417952380506179526415338091837386443514975879523884677238716968828569345067385092628802842752208484285205958961148958608092530186898884883260019481253788881187014684911993887502259493203658584201121916087965207133513847675970792005821027367186148781643610568113946895979526635563263528057526183216777457583744673406778186091096021481919022913385465993730972797521494573291338412167910296015923041253299004690459323079076401992286048407428672176670904181951629434878009247236430261227186027226586304909427371269490394547421844598214577664880368897388156557881352128306945100809354555417064736336140635444117773789696241460839570381333077850105100006788131191888506243149363301548269495534518665439531222004611300619533869388219482490585249232560343257982833403685887945541401487017920769676788118211112468210513239407097274055718427938573152475739560036184141586424382126530441744305792211725091223508580311766131365397863465995156007389594812396036057982273366499100250779317992350474530264310107821148455143523417022213124909382658974338564453510841410883260389382188268611692539984793430430534923727709153977423318182040331884720699954398385523313826383613982764765922307892702753931111119238945190081177502779340868059947538574864473800933183077166928020734951471280116810332963563119868179101914872417217274509215487757899105726675787760123629975405895312756328704409442816377156956161330624078795735531378376342061105916971430562561859261664568864156341083684565318318594094004977603438568575890402047114837561169152405870365098883155331692860785144641345272242142629357808262396746409624059123657822452613545016996558972935974707349405659107492234076938639871518825583842343483728804938815643878418894184823522327350966766781340789772497462162759489011432198883965899162530538129364161379114190671209240128875105486542103604030069742889964694667937529283104769701296745315336141284881760251832163797850057664234721743571343317579527881212114545499236108256081609019084445191722922019948930280609703296126485572186991913269686375613667763326711768849697499744631700477243640671706317261404027076277462511224714659430429531547062378207275532634183664721036240866761328481937423688938779504844460928773130473776008122308632635789530180187828889771710663097589542855083716585418391803073116949623948342423471708454319614901974902322632816488135681962718306071304475348284743176880592628340333074159234295001113421080504083260141354492794497184830445450209176853892480482374707107688677320331884085822175634890006463369744894215313847893051156085418432599469177600865506267398571187935521987433232874144629727325334433729350096347719286851142089114766276515301545512511359675282045353255462134051734385026038757831413129218688306056665896473471659678135763472532292181841423045208489751846655598222965678755620674851065536217528095249185186597861244622185307380090296517459789216899971530082948738668039761237746465438644451929608899588609020592227154670559702177785630785394291025836792513273327290461693984765778607730566082797358007707199806768652669368109498121651424524079457390036146768808487559822076189705792218641078854230865521489165189813234168817169392820771131348136750637445889115791764657769347119325786195232422123097006672429000355794903584464626525786420817772027194609769162446096191757338669439720184123368539723055766851522161721602366504990545015831695349567536303626110384167917466727937289107774569571670521520846132060691586701041744448555741963706571201025878405465487791113733896790316409337888023247312042779424319379726968645466572931010035404612074596400619113069472262901067262504711104514113977146545779762538225521003287996471982042830428609595036718711512930706222447925991089077770245775503212193770016455377280978163916562199264267913263822211811117407834169439500025824845767448339049159302545489517081663994048220084257090035694800497181002992924021499274010106670364169506278996268923044799652722248399388940217385377856791660059435934580500534848731538562492222742477895946653917325653499306408964586269554878252297607952493912113395275293032283308446420421560725487686730532508800092246370915866375586842378578485169950994438041431465303766095083521549655775921673638797325355076640554049149972969727130840840107316867573560954247485477342027894102098224768090999641039616582520545091512023400448417223018069484318576357208116930475465132394438852779277299771035022279673054898168492856017158469038405195503513483890760138794255515348442383527580186635328894680817796344303239099967819042321517562789988583336661645167348362222401073424297529179770682573473781930264740254292867285811767576854202521203961583449465989192945466439103339346074572975999213762712899245852465827854775470268972567958171230420075222342361944205765942626550857379891006024929998186363819777350812347416254639800898838702389657234498994251195782288188334974609563584610948075777697589068677570513827949939266149741335575939016446393400400306080268943082842063213309818963083221459958063208240106036335641184277239215960148730082757814756218326539952279728813746301895554731036837541962132789276129603317699250758069031282670411083547477133888640755385980427258460397975491061659669517393701294218176333001708159140027428289638031791967222456087637478351745937970663648389782630735027473159038091136306217985045961342404578936465977536013511568356338434560767439211051441198077290044232073337129429479896061488694648641205116783188202207903625124044932407179542532474870107289777767311913003023253021587817526061364854117662163043550295917827611295951265742213025718088364746120549021212156387534419836183801411773107330470469301527875740237757291034881426836410813375904593665592129882365066905025683533570646735496030626047675348657925299327619149899651542403909117766933339991884836133311275818514264276177739311803063280229681979079513153240556178055477713365481508186284193025977449072779691960259778530584708199521148799947170289313419703836149852335935253501774162544229166949136120403769320843062438030391489775473618412349296357446436875855544233432045746898951315166674696609423120773677963545895400531123359944903204528463561129991149022291759298897165078959844910677427083603052260747566184742309313912655614272099209865347376685246415687258301950946123739578447932942595794976959052993005276029780758804517773739634814086000048915258822176709754600409686678765176866201339601749550089337751752366461483681098957708053291431673482498518912368565245944636019493808542775485490809998382191959420422382802353869854860858125934028445797108120968740633537288504980151932500440039888796425794338473294861273579583887200359733994820973154200976850999986656274975909807277157377468445393795298921501066146108649780726213144374008668128973823421813868235716719854373480285841256192696974953404676135728166666690385952694919300666251776664789571355937927121009204219225791194496747957162708736422397227881681877856446979109540601353574845536555306286442699659804771792506116208294569208182449261506138338577783734380005819321960001959002877948822959507125562210406898461469941054929616335854736921596113340842760505712889683284202616186804577458442500027694262498619863913295413520614935666247524099217655204767745658289328562464019102404028634762326074917652732291375012272658005364365092041671243303935122422484903008147851197023483839654153201669620732963204782115577090858047740186801382456232975622374185625350000566446348662195084032848070950195127435467653584034787103577645250372367183777733357726855313566086071424736095483147565145955540732667557462047062804544930590668668052333824098473246583649447844987472966545010748233587148419883358857774577197803467187947390136542592321712330992191393411602409093356756178708000183339494374936827374520486960591782967740215984262127777779541636511780510780877678484230424871374312937749448235456680141479361158367632315704887840520451940889681233339685022229648417730045109883311810605183488711491245817464044170371978182565300593441560522562637450977545714881057440881917487005747644198228126938513433866741289654311640005535430536901629126834751795895354887430703885367219965576076145272792080525927200680828390527421074733314418874216606503766946435283949679978646492027617449979189317789320272386256510852025737957583659688576202624635120979625196233697231164532004813213466058690202277375682246558013130382941338071292394005678549410785130637021313670262496390932110127226346501535488580561642627243200807474150063842135234328792337008225093669995951569729592744687523581963299722298622202913126595058017323318055474064928415137615995558789949578262129104755174438181360050668430462359194983807931419238373152105545632482910392721422740372614209547293337637190914801065683473221858347803343241150064829260657366192554716674075074110766557492356039343255815407101241700087231175024058678777215845270221773466655078248769027979907421641980301902481929797144236823814766707460090481883376316692183415337910629231996745962649035208706880208344104490200823552602980477216412901911842476162760766178198456712046018813444730406024700186729529601470933029536640074150727763281895718572100125264029075830749907142415881958010411682779686537763235032216184824930911814741571853856797617921855041879471565759893580509565383882562280858107916814313348285793662070054480536000697597350282940848058542921081106059900624232660977807392218019056744399395353144626025128423388808308252028649035338507890501961185788103134171020422025705799151412705378471759065882368231141792504683739466582464081936767515713528439786770755418674064255288812594368639589780590250688131952320170956437312601474925463353335364746938919141566971125550104210400832288515369184296911591356764735420311095720949351307246056605891543728334967847621759737244058063991614556697266427436426372668079238117119021607035004226965165536995018099962995310326022400335059230592289442416825222063110287152838295194504590843428763543480213365773587382727412350358228915092760576353814653132127534548945165157553275292745558255109798481003668248571127385587628148528583684453328539600679123692421831540902844468949976077211573962328970444593667981202957443829818143790414441217799102931314492877350600959434184096249406782915202821747270440768456722107995417270468126744575120478429006881368696588332239571972087506209190457402500622246290184824258295082353508694354376527355378641069403146365547745516261933613714583018209947293207309554780490740289032256711351787139440341039728437646767101462029430724148435484052365051789267565203920205754636018006720440546498063855045999691918472706443085727495138218820513730047613651601216701788531789795069016849126483879709526616326391318833279428482683880828272191652609214013586055298425287251287126864224322598602352887921101899478470931052216957895846557755402579849816877016521491058630338776080785596284262265352497607909401553333000076618986637153109183713012354036689655130228639806823981065013513923690143701603074550356285610521204366458288842174290843988972801025836793361234767655379371357143720144532946347545734064029077466138951889384293175034573112480494632444376534554431488046702632391997310314702214649787101173175902502819629949156576482657815610659768911234814822540394834551273477452903272697039857943227061628975239571738143379395329154706148337394363875625419435715166940077625855639029822126193021558275791737635441034186878075434016833877347263355188874960187064373333635628998159085899539718574636325389441041446110335811032083593708172296018908164667992162573804029472801887745070773763258287042771578791501504020451423074286181817373944351485389628901780135985347466625137416930216047970439791097242821269519142882709066337455689911481187546149055549983141055648727645214500840380403506679021107299823817769011322761141328989058224511305362339228843809374332223936975299188825364675356970527471745696187765444557696282247833318093846388824589523651095930836066644426125117357546077461781156875635878442700390226180394109586551264975164911861188684149060397800936526240239055393870296634697669922535008131023245074370015401752804295488896526405646605331392421000786434462749182678135559079746342073287227662054186151695790383519362233567715687517625088936600273877765528542806256688834811321162352020641719990941817335828025296662354101172255740394337744144411279427834261708057609974117034638285428981457035813111943984501776813970847395433882075020031742986758340820149946663036687015862750659828319519559188689288744134793381153982650804466182025358956845702118051269620677393366562877451122234901542739883368110346788880259972218476116044614346358740423205934935798895064569321047712308384647219207113353832540470885589815201698867600603802180648052165903373941920012035045265028202627718529552832409164024418986616407078560759549783721769682625700560896623755616408894044336338441850843654094583465459218906684666554297449041524806358810687601517232012290171027425869077480860642967103583988939105545324828756351591168389061598995337613405687714999431707367853094144733797307565323487684304337821590944408196093603456868941668568854138075020519933508458791291745461214400421969162648724022424403334897873429041504999885245376999444189443950317700533898344642730935687370517887615268024750835947989720654299591124913736278357071956302210309107456240021908283144648468855493796520474615246306930087461312858049092875357944447751448164894293347959486311625564934990562229959627561164586351683154534818106167828051945215933658969924391525829071192893232916447609440820715405320706012107449118474063319111015459393142228861812737617536799683218037431246913065462176092027603499913806883673556336413658468916141110832086114742615703090514376058525673117644153242044656907359592829588048206209478047771462671342874456719374837977191876497525890590838618380152976880548829631843592920871920307287900303317532432788642850412714522262729557113348031449973155415158930989062920029224717369126263740125935490953231804096047464743285668390900386912441293823916648560387974075621279445807361012385949575792482869690999151517856841604804223074593330982917808374586273384257470836371082694629612263457730504051612759857742535961992315109861253513753784843161130387423543020282661373998419193925801535113537183844966396952101986820786949022456357268240488717369030059889283338152614453286212794984628611790887323471077015560071099205505435640049336269112887918682166008235854440281503764922434835488847702696221940206400678835785122498385417581956859368333560398952110309190002216226701359664036540409570426903975749962111852885620925916090142247798648003507559963625907100123644369230636721267158080288312136079079190494638689927273600401187738506581540674037507413007143631594885513037245515732491738342009467043815447666296187621264640310111170194089982814017485641896967433535843085186892692868596049895085979304264506750122721713935243568394759181588575627947361815809623138236465608118729818985257428271018762025042415411267389000736986989629632791747014751375760340476097676748998135173144528834271857049407466021766627475349631423339135847647666752919503990306912408484919706186664806111391398316170686207935914113339128290107597600853860264263452044923165204462260660317280163209717394426431517308253865301096355666891106265525758554285533669293964225517704757222566574764057319288403234726071852302491298002221117939352162169251459492954946282315968929172261129296231645393361174640531231986672577412653332369810997666621978419237319084193492002863757475285166993008938585404519890675467556806910527008080008199937693246260522407282407652053812251111156538898563151605522114783402541508893222517698266854946323065493376235921852926668308019836335122261295045801033931166665378294203576308839243348201326258708702203033741096728549958263533617277698337070442880139559681101128907874042408246763005904504186447222442160729837098405507414234846307648842235507735462153523626743939827496294475715067010383174776001760446995099773664179819226305692418556663491508126495276301760918309795140843900446231619615937602761337570420697639494681954693997352799325081634288847708301937488866980709975456949662141467461173833763280942839885675334489645375769710247662361707064059219466445429243823674822363310404544180001205987528638147515141966233264890707268840519628109832585141415292159632583728999264309521158671976519038563264053013846078819773150183259277040334316711192923413898308031511764952591283228634413684855582898201755371554678295008017252803737467326146580594964109645759749317047894664809144754240160690662017126441307419697539335227162298759848617974294848150344202478039621401342539656521797597993241749622873575215452900807475040395365595445180883349655087416550361650701330069142829438800700597265987197416133856643375876510783409016233201646700191655627582427373414863064390355814728023182156798972259516439341199586929101117039099609715172508198304828538791651279905341311549860306054823920990497325354285437245845329825609840544135249270290766657082405029899648121954966196601132378179049888826559251344023350974099770391471924176032642683686279393187462437001079049240467045996120735694318902875201550272605321137607951176728576439466626646957473384338105162537568248306697489949580411074428731282321383259237125830045201051402454293006194788181992302944028196948294372315863064308938902664956518894117827621113058386083797406948966831689052489397310715535875071479110238962547530172317412362897631249591477941658619458173821753932186617527806979559276695664105433434612393781254857099303638378377809847104503525974489336413716525231725048255877663564584130625584690172891237579782866977784016694381131707181993681909545573596996309002739803326915284161653893034975550265668107945206209776621496748304947798690367345802524047117778167152087064784144428468339006082222613122963966420184564780033908950015275464444784499059399993120971479275865094290583811380320374000630463263830487124076233553734081032723196861812218470105323514879880981527152112777659908752091581908352928367116057075782949618767417467732265870560042994702969636593350763514283794960769449267582982610685474129111768427882088531579914035993197804636818260119174810458200062449744788430957775041492129840352092108052038801597042369928405544939336986180109513566113285953752427883721876203074892508343182386105898905860896022722602115744060161517825542256227308309513150940177982446551044049073629243925410252950920971349864162310569765418042272972086146720195792791823004656679900877883712398542467420641568966195575386564582979038633748738081734884999785411683221663969639758386123440617826377389102609557743813995357922503927232219210779648509627207604520416507586043424494201999300542603034260435552241519309131850422290045120682762022573545468825053729203591682608948421635385347532695968935473823048589580284487241989341758366236556443914680017033837870157464890379326151659279872807674704528745557636750596707158103008855127274733063864034385466158318110050421834078244077138356162491729797073230320823141573306034343980108497649483544822671696020329027571937464832882166385411252814993027478306455799322659790224791712706819532341950841819402886172807283744534839182920691035729936352930968350644840507520807772003491069333499817195339710320757701256468051178317725087676810703849344013861673050759876657537594000882615499784167854634309897316457346215982972225844873129782382676751032128400458282847570162714771041779786587536070420568294188054138868075092479043563442109070576901763944582882308754844813893754740936359093584005688320015037889575852264556038188333119871613027396310348796050005287542685749934769822733925305233957765484509384820703197822099710780450529982051776947911893113584603816660811707578030580733333601406476822489911461929545965611350843102503664957416141791685722991400708031721911105979899545380994397184109776848848127311219088891964006823167987646369766800974583840077554385045249051751459437550246324803098251106001356882685865973869533007176956336498385353209049636052877132403932468850767713631615044300339277227211520505458995902003121445088596605635451274851190504484438489183451895384631703097358085146896053742252571448876289191002711885298437251575782673618312755429892001694943521623517293440922211627940836234188011379860138939145930089477042035872131323004071302514031321527252260024046314886931478424955678985930280777851439505888398143751987631819106739190842645142614905348566526167267875675539780149638871440159096169072823814101264761326847602524770838056983631287352840546552949065844218667561720908230898994384331720393841098884990659299136672440926750903979376136019850249384609765295725598886530943354423681406656837670193225286948723632397953983665521831636409764438004037509831624137797917078940808513575281299099096831527336846613952036226616161841532149568524921336397006120620615434370685352976980493764557781966025697852891093143803216245493364674090410562886563320110664663370421961793042293355222249259807309621342465431642746137864987373467437523681650592850901583622747057062394474360703416465506310395145522109999493685777240273715881247553717855214763169463193106329366392962053504382528412247870926220805832694276273085934066148030915346193617260131134867755153714432490781334137668969956367144424940087008414351814374870091152583763769254153799656009737148472921801936494459124743567259777519455134746103864816586582726106716189433134737040996229404953593836858830946830144161040742251786194101022940926247871139190552496936522875441400705256189064176914875681563980364954512480644616969823282780429321035552545397220851864403423427140053714401860439801601469553519209158247629786539765891905712666042056061958346377257906448541045316309661255385001733907248929748066086841929095257118678676172879041035358742892101295707408218214980767514656632994098783214687148560191102009514983962617830696573726637391123551563241168845102905008562697460216153123836829304876869673695697907553356643753342864730063498576323617072550069413978294228212951716663809875445837151088970527118280907267762224405360163753910133492148530021831152752610046764702456183952134398791177208806781484328834271084521219632680568346748482422338589455833271717386164627909678775859441160268868412918823367809473258577901138291741769904125896178028347672037693220545882033381583158372412536126293504693108569687882646602855118205983177878371454901700740959266433587340802434530484635281489109240296090418778985280401861501622666521075979578989453970352648900318227448513860989071050356301603407358740752821182011926296584706614095059530520799148010464389234641309390209725273199823902497659267364078915500186164256177233407185907059559712624702895055741383214647743421681660378258214580126505448887134430590695095107269959311386065717546137781623995662298386505692324354002642530462023085462462972169453653913125963371472492987039546402241345784721529467392946457138035849695483236469448016448120606237605119933916424909873695434405182603551519765198734311039431196641461837592385097619647141197708921368075036057477436699255279689011441129624500658014214826503555892617047929519977554348034434274833565372928962951790570495155599391332933859688518978474785750705627446762922620100111928814745299405594792515691100075863217722963307701994170987958188717948795160418998958555179868787419995494132880825053386386448002106093050565625237090314329025065664130931218181384314087429249386766148329841405266127153461714211627057220352988296743361106352384334321074173383744693888181251798042621647298681578350524702434745320399444715676962274610535431308073820539240078458117229521478812849761916155295489519641884373521548074266094706262288715965940888942391237112877496923459529362423728448687097334657476781967989771050721182872976398084662168411584351517460569330520029492362281446184467417577251495578474868432327727778993967174897364112984336405009394821981346108578790107443828014161296066114160501288248432636262163542321768999412794234598518714177682326351606753882605422247515353081820662548517441888295144108999881449838334175622711737551220622824080708186840609410633768173786479551173747028065728954780451721450384064008241915114585815952237414843374255073391407382395281991041067922788193082736046990454849625417890999368958948518048530014934130801435522379555793982376730501183627942973718745386328956363722454176216399477828830491729425442453438052621002396904096260902891915687697170213122749065907504741253955763718444263353898120938630110727418109081561110666809479123346549375250187778972733585692034751149192015516148335028083114217275741072552416139754342337546356577123006716408030165686185068296588789298287197246067016621122273572390357253202215779699903432792143791637866873303131637148609201517194716204355042284573389210641689439359834673635591670569196246534174570549287002714794361950697190636004284620880441401511423976361884779132865856400700274537255067293389179258434352380121337923551886476029144795621386314726742598975292579308072341896889084648074926758302842999553004928612691696037450286682894615038974141684546925756121117828430539592133925151818011368597921947536294438000930097878033438741937080312618751683851773380323861958354889979664159945994464245806605081809339081940379705327345646119904487686582313498825232051132265740928262390859253151342529483266537892888052299915952925581119918328568256367075999817811150661609670339880963904357125366572869794145099460972411083500649449693014589546703539036494775352083521986527076961245944987487741381233679775261321356568896080224339484821215211782013813877969936558992720752066068816404353259835435390446237508105693070107897898338567563043694438232975594886288348683246469691003329715495094729139886557035279011522792154813414376919862049555324303321835484644698880217705275634821827053251487317773411982387076330847803691286450305651619714056242662101528273353375688293778764069382631321488945973364040575916447171345119164567955367067661858992389145055178738062020331456492108872569466308365719718636310172434152685025788322537850516970680224394372462238217521029260610922929017389674828197982548341601848927399660932507177348312055204601656015019677649154158596071243907248739835715634142866461021559167114199054912981327273201836551952352622960575293977966172178327808959795055999725541445693860426155951806544111949750742576203062650460712759532473585073074749963578355475501674191085214705505444001708303781895137484068134967140179701084858881265254984705375327257641018446196028428253395983036551451658686487280661385895989311249663548612523042077275868788091141902301304366097838650411146046623213480895728705979847890026792222048007805214611128010696322153596834743155674725263218715970225796308912681878295627366048467648678365895316441062813899239464883082898549045360646920318518302225300672344605966353752644653956235372892015614723560964478271449471565679806107163619131116436906682653146074256938414297380594706373894127014561068843480128845940088109684266182815736776102672533408411796527099474939233659362496451663624046348333400891873111022335453237445834607457081255171581303463236041093363122098641397364017734598578335541341308414167536164787086842396552116623145128700413641807801865655097962453564405404692354644488408227430372777951881541133836376243677964904345857285007593061451454302189000844943092927958871433567452397018334398103996788419746781662515129484336221305927182685400576925255549620191497513916666907398685230130593594018364524871434919744820149306651434820254727162009345148676021864191577565706572773686563680685966588900089631753296477544687552794870564857090523551050390735137945574681362899082768331244072418000101481243674247140482379196675466270916867355958343461095041172140696041171686532267662313370559707473722575998218714404709630937884004156433728531646562748169809402534713758046093464175745319865477259373783212199416762026272856089377941520481589195803259499655581653501226283761224607376475571365430786851896745892527786731065642498244038855954821963676241352110866877024642158480957907957621953817438215614596605224196814374681639857852682375960458672784936931297889088170866686681888620201725622505526872387206239473583470896661921262915285392039571649554844955084458401326782817118897736701324552577918806417923190819937475828279054926747950798876733922960085815278382361575672289960452607242690192106523527080573213532298822800492648105366146515344889162424338690536504327159496109328149916244137416879146897956048463310662649559019703046799987769892525929376462954808159060314419387400522047684677333666545943975532888314431546386472594327991085282400555487285034330771076018506731989198797287332742622450439488014679589143791010659347357531845130784370900621911245451714116750872648965207995269168010596198349070848447447357057972126879266690354939991275718654003220932716295898633844589879475655319197777023442299895091946729191199862454924867880501854212712338815131955259904475089867916309899057378228783724593034964468453578893251970041384073022299422193556685718325885302488738957123237868637172059491790070779567055574409945246785678156989483086449260248337816433976087981374441547650270294843551484045414508261912136741043518628707720639223336157344112503588046383691616867006793653703616625363741888380668724855410734226140102721951970035325687370584730496442545718086209649514086442216940253232658939167253544003306240530393746708503538649296337635602457077835148702859710817653439613947239295421430527431035625428915012189003362201721675981500708193131569053458231822743061592261590128669565042001141763273379517149935914264842586734205140229552375485478182107670482046580781767700387319059967033841076789087026270722115459178819909111632464419988236908004694333141153727625484523428890253028872556131169623099428746975078883558132934869192075948597163758386503423505552618005022692798753417778643841300800410566640863264586656646525810762949228964301552803807105427661362057121979751526840955540801614882488512247410249177239116322715093590033177596788154870560859533300323726027730385434513959816771143600521052294109161043865007967288059904589720221927743675250015744845364508339216384737697459856326510637803380312236944277502287930380371810755211957742367561969682409644799520113217444462660616973267032680537309683610020292924700844754061557386538496740808723892312480863621326138807725197778219844036905825206454869231140182811428732661763281149614099609895871127332063420082917004987609924515796500737159555692739707291330482147919772598618230266709139224084313326744821970148591287553161203929372250282108707524626177390716984299526327862662330290754400095479228274606569157559558690602886520508149974476776490424174783969911527940060791238209381615068850302673847772918693048725641325272027608153008775887226085871699471668705453284105165107331240202919666834877673514588320746877183517788224159460549776614042431633017738663038826811204338868883937238726059140017366646699633495971618185793022345236293138589228329709047595695124985259799759805890398627047446316828186794289207877374538915436433734538945045419110256034943065825369784999283857344957880915839131905465063063328004198418861044226675413560744711715303788730726680657809255914417147547208131571973724035824225040885000107915773366875003256632120865452027336281201358473692377440644913843296218402932235220242003657056040470563319332316555822736827850113660565311281136821098274208502391604366360765178023432199143493513748671233962992803157105027647676623098458206806904678069424605199375447021394144537062675109221422883057567138079485618333490583814953186024606771875902694973247581549950668099907521437394202377053494608292139154953245612235395254614573257336122054298940024061150945313272141210365652519809728625458288766327852148930041373883020105043897851240950450842564324838343465115001241975271532347972158494321108946844065556667712760539218518664181876037685012623343624509169291738700941617260933842958763111717720427302406518588813812277996899496700072190206259114958808943058148993767601521995058530304082402138702724451236399204006493344160774601254862305051229031299507606106782865536489882995040619818745665680604817332403517663792097551354266406790596247864287701548849900174256239639331228546737324028021837789145959878072144731545540567661252945861436921386122687840279431109868753654573597080936394247356097983564559024737400139629750810956640761048984813119546754136166888464698857936591108615797792450704302634851918579441839870706550576402078645214404427428878990285969473974640439893280204279832743554277643299864321419359217150034009931638906785334138020640800011758666472683090723697277269121775902521190398841410809228524956787579059073934637412831216753899766751249462420004090554486504076755380764939913434013808498869552015866889259720088141580903128239035632017753089710402905648707508677306781057336930051406882972776123508991453653320231802191431684453813104468049820672783746265671722812308370873004323136703584287125222906462599622292950684255788858012692850182033384966018961262069609502727634130980139102675218339876885470840214294829009457708502677340183772285077579292426592279455433218280814726764588666915883243472117987680457199155943757648264201246983312053184223977351071347261793596261616637027885804531214882572032051413050802460773628778781452238075415952784137107101667655650431032888404089129252501986880734986819396865411173360245931283519924429482444380992908438895958387477201466260784497586325280075256477760441452798132377759984513922669587234958583045124951024607308821159158058162384829550795933549457808352479981975148325433479576765156120368981778699805397528106696982931133483800967788542027916605602989916247164909975839296719584641922721666076958380925533255896278690677902260715138403154535802981675612683104022062978118474597457470965825933659639988994621130207993887926686562024626628821889125781011080409342642895988555381922527757793533298958770870962331365824404842405482824221107283837316298592195896673692983033758147614360215551967956825795626546824990962694870133909483270094551037172116802565250880144241859116825050865404174703663032721452805731330048834824910986727296293732473100966526996588374465519428238981948454388673473444506323435975453420779182145573606163060708137013997895560333751773875735551366366174161415028383560601598801281952627517774898918406458657076909241929709714744375577150205681727872304896799434349736399693509737881884745428646060697724174086954785838512917087547951813912687498853802820085050849327580088218766050550953630092421584467086863494828221062296128540377008066744448779451577160430879575493931156048594271062725905480611066764798710398604220424056007868539599395804298828355778923939585641657701997909646306352201818011651642687504654613390988505680159192618758342774722433282541519940985383459160116864018807086551008981113274197514716562760768339455286129869763106220429610092107244251439671576477838835723564033598913192547241198576362650612804072185513592834777170295351245880048167803775298617534310317304587794176410974057324897658622357747256129123489614881870984697526301916237723174376946636506943707234598368908439329419425599010019632236546147624664281878395599217271008531500597260904732685279990707277638997669790309665012490132346487172090784134318516647943828105402295171145370867179978302813647302596667624335610467145522966045475674096219445463824590267890323606630791342712303458674212217834226137403102979835002370423592062860800230116757415839861175737863632776871923816630501201150747703214551032073884955174858500725066628120846031112810722331176161470074619228256425488444833452311128187477116708265041259991245900150049411437471658547434131946444516930976178688006770338553240424685232346366188049653891016266629308800261717345598299774565386827456010201458117903964728613543357803903041273115717693617010437421532117518474819611496979642508627545499262913540279253829166537655854755742103806975636046827253550877158842641658728338325350650079662710019131139805699475935970514602198943599923028530218211403504950153031252636969167995689702692039145213369550775541943283078965295205738980385270444186828231442300396611467572180018090955457077345532732039209690510489436192705488719952633110327060431183936018758623336091463718145079089479929485900886538607540124535443337826496371008218151409299486910358040052093007466601186222943159846325209940968756754367399962328338678747319698860162671594965170588295786139396557793138235873262997049562837866580177954297481664654430212802922163073669523586006838632592992484357970941304282332590988917480845844150941918405733955566761541843352449265309502927510059126023861852965456224588486408379087283357898319810719312390247070781785046769413960360764091735443482000304649177355080242222229577971862381728029797554389790237353503904189815845753334982940998696042684963570114944615047364563870503547278412195292919451777100344577133824451566621359755071427122332514214073358270398745557717777486762282460335789772488290305910323087380224022396058124320073730618431162632127784718341368179747734062187570980065591916268939086231779374667405162878387326449055453157968506354558467568811684429375755900608315640306911116093037171883616277375976868321107606014734658662851211714353400642777091515409133118236484058014207561758072563458419769134483728847267647207354628847093513331898834397109280034085304957386981717917643743603642655326510685659255702012241019283207380918912455646619140388360145016930514374852137991350629817734673000757377052585899567591347584372632737286982782458982923792567356580278574299641112525790894906369908807158499275214758893996180721035441539346952232953027322685898805185746474703859565325878632839833401383144085941900438490355960936447869879447648625059584360137553146888777598776223506405536685546714418853284209249201290817515894178567157804690664593831677938208278030644221180579390359160895508813301554006484148437636039242844118963690450808050688814411045945319499912876020717381893515642344101942553803840326548996815777088832084615775336508126248679515483883024506170477489212602340914159881243462926640403805586033279411480791612421017510122671190578584776506933819745908868379602207177677333226876690657468326779827382047016255534881657227319439544211791354594696797476024421249801590404200627101641585095462493974156604232426320462290931418188608504674645258264136227696621813450853750492904775917012521593034944479187005767621307827562732526283900822730822724714410061224871363612065168232457952218535170447154040875965706726244021072641722048561950287361902245667818843717360359323406511820337618130476097013761276845165758399892960188250156361778187513259657031373339823220037946237724973803908814972568840670329026512175676714998297163045353917951006270784531498360634582287921688602601301454894234365264410900581667551911296886563150754081633248650226734509574641979394168160711770417432738369023304808093821535035565641775299068078021396024321956219438607668285290787542582429022133311774760864727237554488538454346700082578486479254130148889206933195943456003302260476320673372963889242465725821201788175984706160984123336691729450035211682624817054366912896113268818696672642035089503657007949190973361852203084121273892351598353752795256167133415486208196247553725458547493165620692020080533632370044596296252955537064887744580795764393829397966478608712380865997691241157633077495747443779354046483511270534580279023796907482006902693749310392209124117061507511057866189693929787108857954284876926162785909833904760856664252328795863317510096013905252069390592135160828214789598660696432450188706055231019802754959669703921928304984492044986341821229658939448664469278873018148759256255985034069281160777475191058209048288844899606105112688851281078107745655556272795788154906061581212097089470352138554724325484207205499923121992726647700167890380610904227570996666385067627518086614801442275163696054449487279760601832771192991851595191885740917299345386106081626058284624994737504336050747938590196226059440050954503046881245338456646252805952246884260418851239457087282724309881173672875589219434822943740108064326445575587896445160721252043830440761821766203538922720713294323056686022425999659183098452765735171107267990961858723972078790593647274521709552905724242044970413703234829744736525717715648756050808646145130808761258788889513419023706299796970390231909314420899701718644746187057021571006719243793871997974747449536323159176884992650507205021809442357566119592061218768501673078538454451987152334084438962190167055024147444376175009702591887424381952384145545282172936847610897752489192224468398877467221760077439221268065588455504673883269117531907295011949724114864991982199731328067106898537442885905274633089073006282129758171341948895541998479457853123110239982695726005746972325866254820324516732421005858147929471294437252013867153657279105926727986296988179355034630894523715826973714460313488439806380469605903950384052725236197471432957600556443277732662198491654707840613980977054309675150448258313302283555844664344349201439049931706420233878490775888089004781823681431132827545116956976431281055682519897665780233877222122430241337848465602007186956909384888985587995211951272620599298814842711048569518174860199849504781624713355916220727653210322932542427254192723671747841276644366355979743308603834277991309845759960433257405187209075892213453706876373331972802999041103660274115633746009807698132317047347912365970170603041374228219558673833187472483236940576980899340512798104074839647202392205264984321739878476418686281561275723567196498808257581584263015898571571170563795298545768683167814144012721026937886056312661793554733420780938434503027629211492956840083430498965421154679958943462192304501359610050254921085049784580732128038184096631640057589601106263510803896744721424817316314993914139258029881296340768779366496843652971726577425561216847337686873067676501228716411948918946356969971320085736552080165640886845518116213405085763981920581725129591606392443864057683950063483390367826225015879485843406675093773614441266638109338615519735644650861263351808404175508549749577398942039059380220450054479770061854909905664115887844710587496190274276741535783704472565380314639435603450957625441344392380664112713791104468194381943847945155063841942134060106199083591516240025304344137717105981455534894206824364784777620432482708680310442474810372429265813315219707772438416296873151468998404418684175553691266189834895798224479391267253837171821872988446438612987602116931262355289542108059847038448441344597783265078626031661283841338437917869667925515254959601753102379057392956916293761407080921569926721866000301322278933857119131085886489621795523113364285336328937419829260632487899710308212122446851069827992085793585520869201126204248985697231770827421119379240655320581082040237320152240893189903083408470204872457356759081945672557466885125483973116113641132656852757277332402301923518442961925842661064471228339157286437439874634771824667985669113111819735256314415375229893569337384780932060554729099163258805494138290665143427547584294943353190783578319714248093206923418005241926438576374180182184582833074356558628918139705137120550751716412501610420242001622672670639535615104918609183710716922312979215507193124736481731251926402362108565163921426446827180963449118445627536011156022524900705521271463708638988066345533925594922547567448199455428359161834705939460250526501953578708529811598380748307707179965510378989405478024406303065002958260432326471362881934866680780355778225259050509327366565409898549795464975098601546899493537345092235374202393962372493997349029146216520858956844012715130769449693214830531876570010483403398215941882566324760932414038502121820065831892275136577672918067560620765023268962774044021909062685540478906764019509688519261013158894676898769559368306891971080062619180936957424936745362258274531088240320476838407700434718022520769731141317326150263085377296944539025163375180363483999324692093057844658289621992962838672968017847474782421238596022097779004441623119978165209308623543150500331803787238930524694745119670112032843505588935832896978183906781935281471016511556342596724771619876387788936803356332737950215198828906571337987182610751927682014805194019646835068349273039513720460692418849939974586435043238178979110823244461516448836731250963295298855883636351596311459255401034443286371915414121318277572774200991445029860895251144918566996997959574188500348623244014547920857745645928661667019521324070823753069641307360848187652048420202087148352797852489705479120007495592767659278896702794399530955820298917129765080741633483149675871171218663452568818243352167338715657774340470459950566044711731533039100533874722460994195314597931108644428352586316092211338293678270993204284677838163065194433255317951189550608448135259039414012996783646141419385055558992517346446071903014468900206689635499340710448395330640986623074033321057948606259708897899055497842022668117967532829843988872550124392314258624294915590501901584594097355766594863793587923640402577744090207027601253058373419625663279646391782211651950808885314752773690165390450156229799954362263669763992055082523925660882326353334195245181125119618787465857878519465289145760859426975832034081779418628245871120150828510532067746234274226158515334134028996483683895687923466569180713156763323831517976081222457078364722798718980724689178985437961070764125400117128795263389636805889351794926004465719368416893554669552067923779121509729237893479758330642166716424508342914846346674482252158258639809571387222128182129462057445215358499544637172276714168271713122038625125333563547906762532728487177788126454883606792177130870943370185592644146639092317501521082220684772100503336283965803921004442667364461346644070815640585623375151892598566084889480313753841180816491974540892565436712530013202213516000160307039733031220230305425239817674382946949220193426074132858362328213811756042768625161268871012540629355116556064484661154106610329680442830194910186729108368224561387480038745644387217286632736589578410517009838706244668815738969758921950110464549737479928176085459394205196219875969665963203826298142287810290013769560045426400936776376197000867139801682892944941563913016952839690926458783552754986893609538942651873902314053374277490949934533969464321270665833388071609746858204003533022435969370292689279351841296561133626066355486623174189311293984897083665863805501081735963072265427727601456079515126471199645585210960608223536199088654573288562883432320302715441467066666620506753860650329988328939379871124313059117387789736603195136491432037226538250515140050925135487466963129399089605119174301922791201966980326615819488424583857641807602185651698110988376358045519380147952685484538641710493584290513475139758758315106184598251077153474266566722751612311647923576876838767489300423486753019243714366961894602606735454269290731020500900427109418403082241100842823423172598221852452263124354263427054568598650177346546267100745029274804725452890317572030526205704433697035209060189199369255436486297567088157805342468788826479276148768147486550279107361059099642818287137999481562527188423462381282144571007296164261393981421000905618303278386031240225745276450026115471883972686502290842030036429774622264793858316159682802744552859567547736846564598163422165925908554719498082057175829775052394438694602646063991666870009230719484140337080465230658477231787838203323010448771854524384142502069706833154518081430703109946799197591364263019074245793985984101991509612314833910586332485838401914222433717841542905623986624012285134827261104947457956405051508551304038473102454565155488216689386541605013017416804108619301320751685711137241075306962644853590061777245077051020510360138674129914075419993654420667624058913912503116160893611862321233426858905476004152441434294523846112949646131405449140343371283261998815750792917386791131325808810884720687091905218915365030192938317471890668993764017332132536203110827486331165573640868627982361499371200474107005422585426519616507054999885204630665104740832877640138751207341292959870451228631950416259507026670887084855189765214029280924750853233416049901681921238140042158565687445294665303398434051448856891171274523375588403068736061514854214963105024915033366332469614641715181363552212907754612904956277992853450601581078593533894771036289128609806898732783819995527977695345903183323030649148894567550340188788899681335821053602442102194355077312454123375102623175248961981052588761171208795666602989836264288930186060353469656324863896550302693553032530294178282144694997500893130958536501060869676451468120812822620857247007375518063091352225685771509834800105457983417692767398821484160769029483993080293161266054274444478819400794071054598085648620483061646174968978882330125212264042464541141818157137657729626952204406035778837032112868825363397168800563721745831490902332220050155402368575918150452704218686161457444071456416124354087380918681513571455361213911954914459987826640119348443712967108479876117359280564900658670275802306806042662709781136202799598059574495556227255250949582225073450126985210599948567644714133054854474408432049680953454853515814330823555872331216935915415795509614904929611130398571909813737803578485114417779877096612457106360263495712988468995776515769656458225387296574267830461819623683711531385922518703890007683447011165072699121513384142449942614943346706283661506775706593831086436456767508909162040174418920989904356217265219040478746831106473468322463522319360740230625615700110839104293711311778625390073284475020927584633450578996018677105568089713167213384251671121206695207251795477030359149714278133468253188475687575817225545402349103386342268130148463789494901518305301324271854505563356610999491074071204613237353578008608671952295981118467855265828564139231701401040605423342080674537961910978137448314607485270908580684352468936097518362947546595465884797598365616147149638108629065016892300178399761089349204130312311454936880230828001506890776618637377954961085441377845798023492498517750372404191038639293981635691192192994700481872867351139103819855787585846676739297352760035027272221216541110734858082885875637715819818161859629542733282567705841040643313514576958571611156565279624128593318011432630868132666259756441840534632397714297193850160651590285606937411051291830269879350404546932755613774866207701734877682501358016108822622542708616269639942950652844982819810278115416099172307456352475698311304332529236283136986048954085025865168015457743991740613285765112524708883115687897566468701954118711982175330894750187991060732753805728157145464851179322523874376789776778286697705517897455726867606392885331999921932439844010869417160627112159006026783661571825237903799600313032756895938333623273473479539134641879384534955196478646069401140858224183137136987631422132294365232123000711215196148263838397620928540643812203720492362209832909319538780549169026261988200580151280141975752326291639805758938520606693183506142106134266672674926872064973148101865937720514137706230861618036129819266727170254216984291922837517181832615526585122586032876257291962085245063713434981104216626810343238410739871064256106851195689454406809473470323928445382080797588973795697999751674194795495811614197067097920342555081774401965102712654537407520251234703441652202256950043052805943360975274934466290489510335998247163176840908308627414751116026469884299073535127081582078402752517074025227706520978375062761463065643562164146084617104290203907030308864639216578935048985071437235948338772685546667572800449705455732881905783621720196941494468408808166541728170198198325670454664689890810455657749769390589920889751825523492585032265000871579207218234027424000341067884800776646291222093874367907995302708030888147867033974624322101270242351861491734317002667244754843136378169044211355252958697495444168226180454289422030743362248391800827815126961323691333381511544445123108674830620791735183834799194407196328709845456978528798379221306146035330073643443974726563331530745170677786056156729428927285971927190613213550620423434592398672643738139012438577569551687277835814456161224128790609406483226132746537557750996720435236691851786327453080951991195244046229031563666270367048351587039891996662211981985799013009328210530780975661769861079874238735613224719570529272718335327410778252347248269871226699136434080476279668267616930263113036038544606925730896220440210670654069046468213242190513940449046786755922203901710519384548183107165469468591950908255211843102050291930362962947365587750907897769486303394999782255519583480022982222489382434587382042835013323052199518568454412079435609274343169010100883541427098640895126251133191393243816515641684468689735029702164300987360477049941919259445920982161722914620108762708997961044113996616552934222056217169137947839450185812515295962383141957640037060100046590388069644832636014384045504307586644179318833626727553489375365211381394529917696360901405335173777075776828172349379551830486181446794869109914483314878200570447201458232052080745009266717168397459575821415526218351902964611450992248150618758908306378510845019326469221452157469872377037218464887103106082573175692113312116454827155282108398878577256374528860891609703651640514775214354090210309433455817882724332695693320397168293555277230163455387240670660551695420366902685980902831489324490147713556720154120667937681071353739129218062125747755249390547762014371860048294396416213378357107142669125423713931228241041733480029051768998454148878807934333843728227336433899608099778151701968724223205112309145357570770117233901444582049044783330194858718324202691492573510641229264276949556839996199893291395472635788727584908676677221344649248763580598037746682080181814539249269456499821357317325947965304715214529276628950901288357805786154765556660613459241551377419395671868443652732482705705171580774019189289997414486933127149877455949289117894164736363046438589979950674133890988411896634323189106119340644963671424849567260065231336952409301395731559481377041825767709976894498431275859846920725341519463503807371041120510025561623097481260686277912045288732456585241424499932833679887117291025376882159953392477738566236041147810373382061854233577397315973158779491570433990864117125536872568905794487961717303883176382095494807437001745208328701429105312703018135989709776880857028257137934172743799555641026205542027308662364245314171430710594951801544481445933885567840333617256021052910549544615939630794800545332273871694433898569597797354831692371812443276780935556673466542937572686091547694470901548754007535825470739193123602832054773698836713512551891148125747797183057022783275031381332657816077030125130200708699868159707533840016831843616350719972025992990024625062800553596013512528439320756360042460351792258210683379111001617549006752538995836720721484606502467640792886030628542467293236724353992972734449213217393713915117642834961793990492524029089233458841901460348876727370494631770770961445211243231917362660964211026757514329865963477163104575436773675808647981538460653085778180098160514570377368415820587386495773132075262903687902441669564469852561416157409127525306825265194731894657285590790532779496320649599090489587897549466713165009116706963929864496659148991799657833210787384709299346379051858155832417128041333100041740694762630995126271531031775960755691511381711392847492463919830781862494953718006979169927456104229719419277663445586192905933021774259251891787760069465563716829519291615946872254872914761059476170720109729517134186102077281240425195091405398889012148169859107646585261079978742312499225187261218286824058205319119325824693884519732793171270725309464449084084900682647380232897626196714222266651711192938541556329018742530050005606407275980512314521262351922027800289125406523784725062023833398340148378019682441696667321113571263019998035837826493046442436741091642227820176467639559613349889250165751578209822962198508513474358103824119782463481784853330304022236513272731465750620719404612997867654779297625985120526447881182196373304017581034195454232571773218930154788456677437163437567512223430674804752524040258589550439909903228746026465661240128734380358367695343553655094806918877718779196889709333639120695871224159121811851542720460775112245395516772242590453751744128200693561705621393450707283492215515841334690534315355624817617858888238856153581919366839408985892353240078354390557256290248479313217475774727775896908913863109422422642014271569970012912591560402031778413872061968334043505819291164657135153728457550910636599051792475054749329136139687371639956706464551716126425077986976221753737627605453246828874870688344078240885131969217721737050582010416541003206141025186762621515474291103816212799628035904689090517729292774090920816098726413602441663460682670185641482003610524612728618802821868486142440975788815584980104426976861070821690192620021512951031310419871165181986676413553336489347969605330085560019848353317811577592911572260104593194826075151670450874984536627290359583453790753113871955468875295917329256322834380097938997273697293390427045877080136449208684371104780616672537678979128517795633787106612710421208740477480693405174304285657523188221535058231033145502030490290686723960850932506924274974881859145599837004967503134191564591668010060759214691012526197237569198151437259953529826499432786391523071714368239330343967432686952346559778708474638160811705886321488375591114488531516593235038917621829660448292821656034677570484005356237671253899054506823891602818989953380430255493884455779039072489953023292836533629777169152982164429680779893309701198969494376620126355702820438066906094504522010531349940667317563033290837951965405463247541739200274271326059030874925722458252386795987417300381571081262965382758386314434623040172352722542340139418004125021973887942371121856756133255694314172913405528195907369434771898161062570690227781065859829547830731856825989502850092670800826888597436813704061994095618222798420354390042989965142268619961439601455583899316384057285897349608398993667642861672068845167318831809540841429984911891378391307641931724729785103278475621091168458370909413957652577453514176796907819466151528301699869928067958708507735308270927766582691888760426371599860267949693003701869451663347604305248841013368470408263531989472676963913385870279133058585282504217687943555942255131221146535572854420842941152335913200937362737197016558466438269503829554753230881131937770765452153871620192989129996972737410456283413237389755920177481813576209054725630824073750017245429130324078013464357792996892402270848517831967231874217457770803951705619030863612658595791466152407211630017847568599505653669783689897751742190433578414825892091958591974194907720731819641886212478096037954941780470672690266717474373539859196435038425589734623034848513132983613738122089641159109888133217407709582503890475945906320895472960137516100399034881808325832544584219304768218782140807048502994824792551961027844203926474299346567623135612294389789576801190614233285233859932874670169156540395112146897106664196785154996105440601254818639735087110239633845549855652296820355475415787105528781711773398847901953742628677593581382070374167722124476724874308284764346854627410839311163967106862221614043931703131711672241662727284901300925200010913415831452986060458712682043156498935718614787319029303752391519305339455302044616059151408540752624698067686991928450937972341720798145593050915465483966192764179380318739889510018943857587072987479730438603771721431096396379074193686617395521746147909640722604965658674470177686535970671454817914619378367539276593942255708759637886347384142879064991893696203964469749703675605258507135215785554620027699121322756055594289260521433481955498199951347375380051319420247046073472147570724494672537537216472855862041239817494686358176123886105241138065733769631793195397048109890409866752066505532198496828797262394536051575524868655475582931933299230569053878988408999647286843704953728615365775112501351648050551244160846804126886731640589479209001102254050306435031065824478116182974138334808521197062109564202431552988459662026199975756364014045221042754637405506684062803361294507102393491734268449560381383571220947118144880390444425507883843840818353146121280625559214799125060959220470336107946765213734806677338612242401119391612739489065329163724768179033798050328778181859985442226510199316983455082565279152036258876097811734230756053245120300198957895815641855064397143506991885749434616442452825996932294404093254887202092028253351236866890142660800892449447413811575323931110434197944673938727363547049229114196581091026017753492498548125360123891157779747457267323474924269960842393322073771030177114301928292683552369042635419394254978657193319358333991048660611212635465862684948015110851499453531009211809560027555264804957654785893234030037867187600869151346423229856221728071795257324805242229959811649892968252591386648185215424092710827421347685521824639372578139022434667773401405519821827325930214601274410509578600565932197851000107427556849297880254029454845061242389905836788109250738583233366381971041158893275421695848286701369431361548344771596086421109925646521022578965507512603646955129178335827137619749970894159411468563732405285612452233609255847078009219559129440633458640884280460669509121681979895762705760156948224319006642482976351186801187559945337889404450856438467697504849125442346874909632411106209506720605665652859997550576929086106443048783557751391767746217012461114672462882890213801993432072488935363341420687717135510377662933910151598706403599430058845815644763632881865769965653848727326351892887671575835424496135679161613302532666248198574547792055688251249222512776240201969871794145527273812425400544726997657755580240049124861178382237967824498663558614878547572057279476574254437877274457337314209316162101198203576886198644258412987112110234958624404127896543881463027659765554548485053670324183062815767140596046730815930686274099817275850409386873319036443473269607879536817245975244172668604093197404060917660442171902148817558350907399349901030036018158790885647931789024440741265093826316458338921834448162734002720196764529126064777768938624447541036512923809642201784990799645115832193121619759941958219886903091442112064254992543966436221346504774673536006139584293500261288297266185236387915908036257488871826407714402934154422536454953912995195578553430921798361349852851908771357358237509363264923517147844827777351786554771414898023054637112411526167642241295810877363667550125981319095316479045981249047025354264047132043003762439320111604275609384454138317069937068415067331682271879957082334379207700144633255077535402305562961867427321204555808522365990527578657688329647587868268034790210029181293431413915123625190778794317056848570644070789939427218452454357225489184403393448617200109901789046313472184261383714242752662365652958833437640451059881743840940173199314853229274550940881830256260739080066464901223840634373102511661331641601033339040511809681319129770503832995956340300670580848918229760731487507205619464473304351264313250494305295757822750106524981099987452525371195194647859280106457701226890668625777757942187035352564386547167560102000209470115919108331181090918942434941216671313020044821884092260070877028443353908502137227705679056471550901618484827393373001375098505372595689658114336453270256319540530140289782326250411955909129054395935997754072852562542646456425508883984925003475641365342594966459814568017783614585212302314601025801927438075514219422869965296926509249524458725999728554948773444080305638972998975310360915656184528197651002810774451855177479700043955261708125865570748355813766151770184641042789820116026591838821956680830479178855127226585591949825222392088460177916518045102267389914761131565674976200985934700117161077653669420883450658738354496245037434972478956481928462221393267923851146981995071872570378938979218591673074958402623076325622163500941376125268483090685150330577610624112467443346066624747751476860503494361742719765628541863004860329620625249221689559173160565209589011364214566614530409344017899388671981348992330397296619390656084693424435480555213313925150009847899075010129916154151206619374667943345632973691561534833864388476891456127211355179411501603677065331882687059286979098990277075127474660973710467683243897294031187094499050035036598835925560650533024674374603585973920376951081823899085417190149680545986791552900291530805250242633138542089638556621444422427408346324699767047670390017846386581977133389491767379780852389601724337073076656597712306496098661766192119721149330375594474010992528032646619455455100220368981948238402615183982116719480754564192745710048162010830575408978774934897518260981825446565439541966044232655722023263972266233991354296012101685610390865259518754291886529583255148686505346140509466104611805225293391860326810637130666178961834413077002653175270923474044908354668301615610877844219916842762942366791919698673935518641739425164982414996170267798887415739964544929648221002740763249149055783116870895451998648586209622110797558877035082193040262376544633818605930955043623898748504182183466445802301185320063839885206936559033179691516569785685946745807823158221813498960819808271104456026509652701138702442541460262050572150193023080915309208063687658770317265570854438439022412826576222404312937221859577039971356069755548906423069634609777484656573090180848549542170145210822579592159512351640244545515740237040838268882383495881841995094180557947934703820393352695322183388897521284221863114557375644652997629328173640766066388967230075264295741941578593686266467707915789004959405876069763259643330653048737580730921667177811808207040253384437866044168673675972090096531610000353436372668737582228732483576917093461032333122091838796827612708952963503084591336337447013223282887759225484956776973782462253846986630571559179596932157860297775491844000215470350022216616961326280289032681578509531302870902803258068389201986397258136965474328028845402287869244067218629431463287223462945617203552913201193570241468725007132410060801731462207238866463207303860543262218474697822338186068629518292298444405645220817497623719819508900812424796208418322284210911193316178524720905166513379093308504057740110533626608249722578298473132643329266426521838024533945951587596780987657586855111032270088339675901074824710015127819353644672582249330322656941265690992648936132599656427177838863090089323341737059539973380716827822710176322750056017462793306618963594105368604151029166838779019092885868562656190659840131081095008967890947329305951574076236325970743569010585821050190373184131615840294859109715798670513781530674930200479796729318461372956686079796418664714123024480062250078997099536943446125361143453091484586295275180813395639736377791146774628339145282104199550679321156467505516321569863956070908065026893411009951176219088590597300640596766937545377881857424950428546815790633245989327959798500969240256999871466573208802881265337430022788695368122872463773027495831701817987980983803631064745429338589382489871702691699966765401504229678392809306527048253114989532046380799604632752249543096509139077631997294090908047065561212909478339495347049270686767900840741153602107846665663054624961047759115925936434975732635033656522971670865338829307638488733045752784011899238947585985562116741056560320707599892599004110729162562142708841725893806713139829673882255713658122073320579714204106719792273082877525221057245373872319827017349438769955495217414473065484233067522914249558247911465952914265105913516087400488502360676685763682220414543203157030504887319039945672627124398938976649931644359153886867648636745458206869572811162717312170967824896083856691794428378954335643912679684426472898916466542248540207490357053996738856495679120952359831260698131794578534585035798511234605326900137015981909921111105251905568550333950866880337539405092696311605898176826328034281540417310480203549989363948990972437533776431526510872365838542910868880133343243140406700242620583656060206093706650693731839942499171259230458620582690848193873343892511928973959232968017026085751624150386875155807729153848674272192815972061184641333951095202076047356237549549820431166370975173383358850492217846339036723059758813153181524988842094534170680193824791963020038041106991119944589417663180509854283222099861460794871225581211376287716874833030684776086874054109532637252886450323990132147659960395013733054863731298038312658396214930092714948077596605264720193395696384087228705656421527651463292191024557222998115704709671240859276165183046584300649725573662019108811808815859029715685435803668300793366939562011856462207440584558981418762870303793556428822429328136095242134734708903651991655211472944305975858908609845177669055229672456635990647506118335435263059790115110247702805297713262587113503325217821869181997415815465252552603626216268994955546774995137153557172558589090541309806527080834203571955615429105521774104163664973273993289308356647634157403526484460152507272456828708797429377029125325628025374333296754415686603474641053437429422657076453463948523724803220970556748235139394335270347458518869103023743598339568901667408314818018805892551732342020560939538600921335996785475274505504262803567922674509561559568450159763213287552386321763575169731115840829866783338386463132736743237832525934235589289837436227667058837029790065669016966342771943837022752255529864388786431837828500123785111259942689508726501821218669627612920738316500682181146182324784043193916648624493813879741030679258719403183948890264908035805504520275157246052585627083121072176426589050395432584538996964211392010280016802280609232117220603151980173894174705190377922439745720644966795966475492861168981346542558811360996077359635392750823381625514441048726669309063834910852876301152584371961377120138451623981409626699095525785860738372637986094861761589837638651073052040193673944169069811689319389485292196039719995392275505527226433488215846490926896791805971122741731927187049738812181756310970625827188420884327309606505285986818961356584814411532102796591918462521309742218506754203375779959224428869890458112109437916392826498998391214506228819935239702742049245988515739371778304023153116305774063468748391922274430967010264668140726006723929778329367465228578124995416720886261241627365622245769955010294804824848991381744434885834514440260903904435222705484798492052359877567759961519816200134410773966834240601245294938641532598872085283192500126456524411164041160992396212600585927214940824201333965891977456505206065397094192078305280503246054265863577331464815407425187294293445121496342664880783272422794641534459829188599474903618575772148498203939647129561806600552142464649597367045786875891044422381544200753653895712992625017159878519603294748662044077580628663160290157057649199059684136219460477139087951242396366610969156629546001044537940273505084470419586482705808078002988682888025689848445563001187607628535142809294652353383097296026944300086410287540566219551925586776574512331500743282943048358459882883353697841638891195910136329892530779608448790736682512663108282154885023973244134140784405985615430291979603657376057715474840002722626254563342895270716486421317544662009508214562556696524431796526364432148077726185047779119316515729109679652454553937064742507444102288662319383202543788876091051468030629742159538028072054452390705092174615791292974762732730351159156443738816051800411935024431935228764919211372438336144185569225342944470247987204692199458612990130768829885206895359993207306069752373484567967058151561117816051781036933904767224406126525595595584287829771368570939054630788252522714719117293158339987882017564529206578877450394154603851901636632830303416881003504122767512906434337029153437013012204965141531076807509516770972181602722536487804770491575138058335788295731629306004727484502064331695057622796120785504986049090392688302515174328976817194209906117150824624893324564027625471566159181837872797198997981489346448118055476008788129186283766856078386567717844840966426078370012080997004975412283937447020716935809435942836030763780688638757674111017552065774602732732762967474229080297059500640046437042755934361248033553252493084777315688973582764386336284315174112792130678765430389296949168707367228639950622377070587714556278553793169208121349062825740781952018389303168669794138069169116848165599419408466725851816855179176129378496114438598084203412734560718184882173173174173257974693965307790697755801820232312075836750009903514349080273228286875069135063665146249939486601752752932095600775569994327715047813265851964951056927163406717716182519843321506258780200380004914781865472524889441188659221909662691557129601192256170539697097166052294265113883973118047024631617628562831743548829525149750385391119275504891658558051790783811740108036981854119720068020483529539385477961693295902897066092154984200590012878470427613238813713750497933955920655371051916512075921244965051206703634795410373366735654635498676625607314397418343573785906828320165371348149520649547886305523338058885761465413660497606939133957391354292292036076311003867595018786798968431935629301253069484898915615019345104386972652682413235389818599302188642818383233395824408574927897290870282361022253093712005325476833270925433378855114024265361554928057005982939155274736112670604027170904195900943596066667435807299537062229188684148045163311622090112235909668732591279885539794314582267949254933569150993047764716731420127827106711173776840612095275804062152173398232048666164082001917017433201379786804474388074626950758728241679455308852351178116359888622985239321126512819530766100904993139380551566446371142309310077760794287763052867639346232813990263541112956842843090955190003902074626690666054865989039703163618579818483089365213389454835016682747402699479850580314075023381269901427070884388226761401457072483052683583056260959836738048242269398726556475499802245450277831463659338723667005319525288572136483636883728734763135879408661382489190290738879846405431384433590222918988684290389922446046140848492802612388109147638944979985637350028769108527752511351351863394024165954772823635569422574016176058607161497094454371186297114975194622300181302379570811108804259328687989106377987051603367059355594061811420745188822825518912426872071575889440290797383811981341377449059031379602849538917038676515858797841170025506266538780547284915409069743925856021927403978705863986613037830994304469112079629778335305781583917483200408847255493142423742486728773482656940279593475672212236226906326364235627684994504556427260006530641693131431634715549719224089513091881953518379653201477062216606564796667144062605835882055552655757400378280580412315280883019635075390966379450660869504552316135429921641030584940444482793485260553597332081032671322464032073741548722427103246234036970743471637855455465073151284290535408722102609109639166098106464180803248458422902474546790224551855999691346071476293008477384567838443434615831168781847339280490745384538390806176021250529672878540513088624862802723840550127624805468313854649039607368889354761782659299555435577613910727304507499895646016520737366513709521057919045304001716130973486210709047550979123306361013404639928924987379189057433144744182296621920089093640293457079657916593337982650553473731131203617958509976304119248785809297468819804013066143768791553877576345646346720574987906594687920711962590895776997120020539339779691425745610965889615679859357591537273384346184529280972829222739330989757086579660867888002339305388102215965725653940038443304585861119301784440909763769433128734111468507604746910295106418504337720005582690016037391251266697319908072259653678410620667840963303410370163238637318999398616260700665671602792963285686129174596449864357227419308553760097444727039165634442465834078818085333777121393585391586472947022602059643551349720424706131442746847682310278410322085820600556827499471627761200196498419636533355967824639112202343590608162301311061994245806801693533309086852097427978040133367994090425414158936849604009666064990243279359437146729079013312316249391716424754700734456754770840751365058304782801023357881394991823343182934957002908954480351916608713539435005520414306005930905989847969106433235893534929858940945399704081320777564492427196853500398509519869945594886618380689674371831953092845267390887426997655820365510306598022260786481860605890477559623437165499177350532366228305094399387447281111657692014349316137963240293574451048695638459100294261344220911210136244449231541445648737383675934780770423959195620670807271933652442921058061285982277286134697169180637777216137021966938896780289379976121382413277262059285295819061009453383692713178124185757742742697115842774368412436781296621362792634500824830086282300119808761377650004394421035632131943454966143671146964708836751658202620376801162832305354090044869888517890187626620075422083818875905265526768128278371197105144862004630258774267743949061705834968829119804439773736866849659074551559551656682552825464674921732653757795273055443176846154105356297202323270654164899166730166509066328280967716934104824986677040471135899740303123841880359672734890125420973581280500609764305669710403103071766242929712943525807010650806498606613010904649819039478193847674704627306857276831926386710086217418099433744966932149135970744296411145809636645533553808946895820446761253944638075432725082160896501861735658364480840009916486442083391521729136918479033693782395716584646103313063298131662502031864168050874969818752162323755531947276552913912697162074799065982040791924210269522674794215922420067105453049842669982484558189083090970485644902771733003005724154825823645782101634289659990816830839075997058230748784022509247596176214547834236373805059902838649503108187420109062114685653964812178147505892279157024843269724611029504996844581879255333978106836795415898426397521738623210109590739429906253414009825938257168345148470399329310888929069987824089168088055053583902607581155859082564274447707863287247147347437712416235291233275098468095009302354801293864606937817863983487972870000466205336259007575061424197286870559595760902660115438862338111502735549720277198700831913748425945330187457212870779732067415571089907410722529889703110514623992622297515332479377418424236597746849453109686311537513051313310964578550055981408186002137646735093443357853927192446124788657992779722960991517870895570322738607615540474880614618641871355294873484532993474650426627845219510715406780213850050898215648099190688086238813758802233999269723339551028450950637752792691655822772092242531685848185081599341365122404354363656936892356665408493198377049173444048009708356826580343136722183067259593104459114943276671599843278998118501083616779289636810941833938121694888753849732146614834158605940493708195504997281987458352816339254623360021920832240424394571790702336047975934353993529940962867006373923666965232250815255419418264056615712854280612812054533639610546913194617959098583016609311437414962386021917761605513272103958536444995890876319135784646812785572268703045813808538108421634183839085101960491897327408805843761355325158020276180907686783556849780800101937214779101594079462450463301800356538240394345188139491484629857306631242025549886522180015674327554902393660041715935495399930947533170080981823499738964784938484263614572085961138340583959787153584663576491485561659574710447996903957352376974135078174382066438512661061965055639725200877251754903555945468986014639720601742799479138425186913492878393535970398670745809973058675207016272223645338224200626006137870580627939424582039160811190735519141608936375276975594958244184003601480281919159205660556600431640058826243634316801071579971114176795747253467174901472835818041072748663675893958744109168745842952304764155132103745001645642688540044040472615039699440567556545790143495722988851485349778814677847931075498751421329020892208078273513371501721160278886363913976015560876778981800089712723062141342378215525977500673341852808488514408729290461589359852738149494371236255043647333259758130678334265596873842637974325197925522151588530617989462264923938457465205347425282710748767407323258115841676650699443561859816801047245405604901649089844493545699188314478383436809713668864134137739349986636562209147404738265486781479810448981218910925970190493514362848445202016802670097362610227625567853694917789172156862190955285139963549654794236546340394589837692874010921683444219898944575795517422109321383263701683111810447519159870334091899305385468786725458191700287980431184879624002448657872978891471013545580503856119739185347982931096127130707386836141529079593501220403397119169354971775634933398814044698299925927326924348777019925199036542637182831799115458935119810716958468992626904751853126217900918441278686512289124103348778664292456736936512177847256830041869647475736594875443688955569244294847590805142846547060291874560315343210075572868639162036250198669815774605073758771664437210646035512337985027114666232494377526411579985193604358509443084847554206580585765281677045383864306855920395846966119104771601319141817137421322981100801548959726906452939211277801691274743687234596747821572224973427160846172476417604882615864835281341055444775216057407888388981827881000124790504886105427290048332313410222825587054055443800190970276234361540598663432716910314836108660217929618520321037583509749510492901908740273611018551398284519938487798671332519378885594831612717245314528437712510485999292927398053069021524766978764335219288239364568164135308218622401187683806924567452355993696001019907319305508581663096599949156235874722340291469038576313967696585612704716236757674879677183571951643976238857523024575720272641557284319457576520314652936487627639447388940116497479315477258927110585831546772118096605713839624547954158421181065198196983313741638631708614616823826258409186414198145479529176339096883680290809006478764922542256481974049250559232452063063742724776371953749223904187783134986656483900844325696053257136830645172143438287930915068752639242174074632059485001040217746440918175654164645444201697213697770087331519593213001963953812743304983322314177592172284590653042205307019333424411901028387048811229090908229699078025630878451407840663542732894839112417838554687894210538779934283534978672775286836164373969037211860903055359458868975743482871400446387037551263220578646631938241972840147649113616221307536613215976782774630357075389328997223203400953179942138120390627572902760799756407307703883044515616201680851249114992324446024021502046222042639489740260663747433366720161665329867972299993055958624447767983208718729072127814401150058794308789929711966734100856618435259557434570510426016222357657151106203616062986796611688054963020304718974903822523008473904742351523208736680305781428352030796124438356659613030351640907505813596420562240356723765975271881379010043204606138894235019419532901794013398500589100224024545428754419237246144474837803256021277798424975813895323202567005946591500115613235840762847971392121352596438381542128666339160114661733856347425643496646605930191437378299944097881505309843207714993198744262621516666975877006841094131701744544869464845488215500484555379501534022175715083591954213166684292209335908723843276589455874781835721220069872622985473208102403225213572506577644292626829081497199091707822764641160328752824685329847934868987086532127284326858425183213901777420059158427877301098336668240478974562353919593518523302732919925884448870591647448968642455442383646576402057818479532690219166238349858178669819088036104250366625033322313537523223077458409791158766743818758818669952928718369762104540878282739590857821815981043608805341903883520983606455300776721939319200852248206575826917392141374829685698652591082166690944697495511718112375449007942312742567305845138398493925029898666694115171557295729190783204759256850873911256499109807428266331858384839704566523586454875594324334907661832046124580142974035787312327193857441993535879198191185824168348197307383066833410103025419139371914740225676369416123447586117442135586375840315193108210057609531571538122866770600370095617998540650408961049393781836534325343913599904845982244809163577241064425089915369506347841386372294711979324484070415572062145025641215595456191889858457408032831068269302640037748039053460685326928097311178227865652140864246216995279506344324806384096151752550312211095921862180072220882526847399914360391029000087327538786785059359415152544535949438943408310216990321316389867982643917269817373766934517792893291771999114790462208138185088346705965872578796267871801027438533490223570644248645075701391343290594156864405345465428324382053299799696965027700530171853569818020330143640520277909167634892710843034266157043756525375528831267750713602918606329087693628987087032287914283251368230148909373301991195260383891406053414744947939880314804150159178637151264938962974178613304899170369062802037014936363463852600047234841418975077430812937076006324678434782934396583101355810129308476752953148950709674934455453129666439373707562354117330012171422166245399754270559413637941977363527545646459525898214333740957855363026179691163867757380489833898778652571434759747503078512377302245665867313196627048216014485791556914032646120199438497109911467168438998703658884074561027934607700545370581282949294803772167733954952315489751656333278232548180132918275113040789912589042779740121404259140900564304771145839249228589766697074230681604965150906262725583451773374639057319587825358743864396294858200617333710965013038135045920395899535641848147724829461590169294037672770294495848405421672018796375810232580253590832865702365352122883621663327072766972462903104314878712781465775493378161474303786171886519189678644930829309333276044446333497119802142966670073851122303018153379198004775154775142749161365778625237105842954752978859644354427766529662510566806670692517007235596956615356336809002416807212580138567918896440972789789643354417369010195850740086296763324987436670257482970062921877470746836779522050829968204978197324402419481581817029849783765143040304818826765674485110039531171642381932650795213135101533800993835489293637369445036821872077841645018655717676528295953542561735467131276167872396316986584327277843554413946247372207819290952787933467819554505776741022965266951037705838454530173190319019478363309289581985651735959445483419794978167970454815451722590160986163651305426879311983535232322054598681304835282525007055149225926926338172506795876621804333585407578749165622668415862623844595429719937018133754994312427697046711728972393068137145967329468461937649564482248067339971537811338087209380584889497071235668491132953005735750868996696913230051027113537099259010178086785734534819067426794283039978625754799772961029815255020620641084572753854221587012866033851119836562527835545277330301356835909958725294797706021386041966388671548616385810416736331683777236780035044437327261611039463058139297501040671713903385597249728099698765368784909016449198699577197538021611575221090356549468747921733173678051117592564459437339987718616829372499295361048685270016907563433089104190909434592908443335900444491598546927700504083299554222574529512549859234144595344352442092218345546838233361993879434533543693684874714341171421447756192996767966877896627322427288391092674163303437980113708617093871260499379118989368500737704657496491519020282390526810790393239395958058402800474453268722628852313031339172022717521651239125302562159102420489046897324364444647169673697906690108427436680568139060278442898444325138885820204693909785950842837486141084588713515014226278419387074576196292474158489871999945750219948919843184416665427761945449914329215643887314228762175588526820655637235320332372038918121272036486165104878245057194307661864060259800251757549926238670466371854492471118872543659803425784860526531383348527125644931158197350751161016667988668473106332189331957135599904487472480444054765162326452644184827699486644596021281500092152966361767088054718327624784089681443916443239121238139338274379863669034039339440032473412566073445627905871883797820214403725875485445189661124422114237921337700450241483781314916307775056428407660354719256891772616848355173566210060782138574233954475383560670880965335568603768511685068894979178381142366448718433957640594791749845565392361834869522090419466023202863276008154443211071019944744453236275688411216459052475217180814318622134035520041845957241673440580256094924656654476253565539139473880076415702130905606085081686409134244636015934104095265101188300073031029917338423693747658151329783965340421558791138526099045834949954730408748238832724170726742366504691452883813764081016448344485312509335921533149376317650583080347750650738096330113951546727982669087195335110063012585765124685163568954242677614243344368221691302135456370945991442226675527446499369295679981785582046686717082681761295541629488555088010874391459207660218492379080890691892809511674976575131317976337558663173666497981769663484017882355854437459007891273048622217933417763301334152858079393477469734867843528225506290633906610699785326474785914606698975612954468662710386487685606423456850039941479587170658819845390934301711065042105640653138513793361495260367584249182099242488352664000088567848259399438670991309906913082980892124006307093749244524045998184781642466389857072661129802656506560895929358214441653525662266719155424813460856533156827545342769139319470766156416436013560888497313936261791737481538841075598906675512687439239715352038814202996509341323228329172600119593187581992248280197366108411848214819607271443811192112527985174763739143985386466733515265919429309712426536387447641328047718160684746885094307505963803827676725289493150223975565878786299328014761239668903378905477514416598255552772849382687194625227844772511986410408920521314385977177432485305216248186034964230806157535510241981127978674108551037793399773368933024857026234610177610004611031715176871684066524485060749053394043017631578067700027677505416833244368811740441367199092860707345323263939373965698458080211309979912125752956869915267224109119830744217814287187616301007023895434359952102670500908364038503555221395245475157610897494849761310103911864380001958119795497664341833178021131747954871818067093992133237520430232069506098481897412279339470947945521138741766819569137354689520813936667275468249414554718184563014307476892542088423891489050705250023296459187880391817244092287109488637814243004475091455952184290997877349028932071595503206256632993508442347196271225413480710652391058829133862158201249712676918344486562263213431516436193396657458440230633956157169946033165679876644702699155184054219906489040402759873684876206641656036385184006334119548097716529384550511276827913036428355049523188530637389033629358941939819874798377331526854391180711060375111950702685595549113107309953855909459005404311275816368144704163075012936625957767934219669424186226460869625927761120463946875348599850415982965537210822168953619761918911864535647429666083522833903153902454960142017921546383170175782333228700828370645119346834322585532540077783050298854226526096844650880503610745579278114022473276932737198430255808244955034524213367353292818228910878222806067407135481553286942046257062246884524050593135196457424866614396422115363925665736914711324645716421017637890040784079978871705649124304199936734174603780397011837251076938315814891028580450850767855679903642821190379733854185111188347219411120121337922931553891984703085977948612117195271185197432049845817288917021788612539752861826927786239479090017807831587361019114187223477370634748024979185467980006279919091250923713817847556875991063523660609143459973158765672435763440506645310879532191169617697049467698039269683290004783905457624986055398987501182497250149757386998246182167764929472135839412108838899364518193082596631631456658207653461326753139111589448189814762228002091394927736895352315200022990082602634030164302132440166696782068135394875498591637497275080625424639122114798726560322483905909818496700875734418278808309660454274155136881007965740657144818271162053479059389965824998527274261073477899745098854234844254791329812046716282246365136337996212790966841701364320839295638298494184944139646409327416401509943635561205992887636677767031060071330976376525552456556640011893701581148304228222092533364803599269969790159648192087775930646656357032973510615706779227171403996929195082528943734079660459671484707900306009652195382802988830584096658795216867100033873344257048693163490750045194004240361709317765764339148011799947960662370612837353359120612836124750829824763053566952191805727473020230439595256367724054576580065223616592268988333754193538625179764453133638700181379726945985842757904118784038644001611266353406221720293233971745913156489347927305921894488125300949599274621956169943820506397491609244475199302817086497773975078504926608603301279093078821353677433693029337530608928240177010479805830746558710851549734812085083422725996466358632730995850106906957040571502175701466817544280585466449383724079558001806057733802690919498144774302868375846179901559060028003594377778152571860618823820216176203909291365654203741461762018236570936560772413119876316172324247893032708724529364862924287575182118382085932689338601390759768969943946104040857187022231010621088160839190468285114983306818792379219200745413309577226252570941423621377987192182808474048577028892003514050542492234663171123381453480422764292509100797609434923289241306355069601556768730845424867629822952256027204442358112478332178757797652718244507202343367200715695250112922408414968502160213305768099202032816543099686889473356289378530356639319144461685134274469244271478821664029778546369027587211281251065055594326532211429341328944006420380482084297364629398554758618705006724662106773395454691674239823262479958909096470835724782858919003377762419084916571753637708829854155438316864520905016225263425201622952438424620876534980156818454564749679273693405421492822247903337048274095194384608584317506134959177241794050616703590592859783659787721173812469102887990726648114395366424807365692059153344856485757264278351838894063499816814563249153179169114331888831768774565936364750161806437530612335545023172264868713769321748346119250567210980825003679650063533553925901681063663133643448620415109614272062719884498766014499783990207848080019198052077497629898032673380960316436151306435473917333278962936745699849663218777007818402939245922420037701091836103186362712433866513323446342034560333247916477417633856490698666111232969517580516795066695133715984715819134759017902693383550432741730859745455228574307749654884756496720972273113596354171115093123258151256808192069788735657673186112025688622863526386770094573076841616535487114287547833875692805792209215094622189155249530947681695426926156399643706186293191986807180172374030028071740154584941444950987930725293530796835836614884613228471854237568253526152731419743223475632062075873149912897940493261119905163469536194293823015333808301745396405368002551219967932706935706151881120007221394311850198488021316124555094573070233652019549322609710636320400462916304482138114893191209576533432119109458229054012101281527467162623111561233783854475658650456767728448007198050058025174670129520971372895751149084783401391350939205117275373694995553299012379038418093649101377994166478173664665328841375663820782921762436709221439535439412968178565356610761345669433742437981288861928730013195029618488990471190218317988194028996568936019646930450350510900926182693907512357782485674566265601586209008845757322643870670680224965684122460582603820514836751044929582486137681568698088087576887430526612717808437940989469384832773866244403046694377852759111053303498032570004485830834001773020296153645241145998708393305563553204751352763589576070494881147115767821507262248277581776693680026913715932539265342194584440728619527937651090438951792199197576162804398588992460377862653018810428723321078753278587458884412053114761043743306675033871291426014346004382299216029502968497087018297756798216635951797706597564100788590111954458947851799586891462147101661994993685267060772476695184066097870129400542825589035543740997478385600854128630215201431107419979205045151142734027980038979461900632545369319836562845285273353322904810747382047227013809071066401220579830093587359523354234631810699142244295623959298167807978617677338593357011845269651084904722670820236818218351473869691007222887585962236584487457527637026622562262588055698027978752947793713898253010162008134053760973650092019258521150297139486853998144330969129870441070658578561151882800397423926140676942829480060757490363468814504132640649226973665713217223400928941705719335080555681098681205175357461502675354279077005028872089774315150538319072579237598704326938832036475622171318732420296629810580191794424357231236404851866471810007353301286024832323859159721899216185588098084784208513931313471191997042042414404747687494664608366770119927971630676234715822326502955142412169018178580269756235492410686578978776699240221176066164057969678167674335896596509646469311390974788191570612284785322097360516889194483739231625776242399073966194295700336173054122856878185166061170526633307177220260705635572729121732165184351777433602731269989834355184066539839616754460369349645396744780202183034180808651295748925043940520179016849973446194997117464513144970497526435389523521837168427004866634286677663273631164326255579520130125154973214508406358004511337796478082705820625464011938125216129155802792972503093074879405124388417038824049171754074622561918415030422782240849843412540596482603105547069253683540954415879926372511288804937206272087850484617435209046424535245911749803951023119944643551239022126258504603520936126520349067850910427061294301523608666116714338816404466375828304080259491161206431786449022293717920249092980310464713294626422205759074340788708146822835147123021716438525766627700763921380953562255729879977998024632053228772969632671644774388993411846931891642891804542716350616891742428900515303835934437146709151906264940023142768349715426186617506291829827637928844734302604844600625183284847057105493338305429608553189273708710202515286574569811885980998076861530233978452734154296978784203085686148248279446053054444054092058929053530508878634350767598680782633256741352508568042758029620731500943599702837897325366244014967652747213665046359649373532660278044678521659984532769311093028015632996417111326439471941558259393082061177892318034148167505605435350868471346968010225907594871559259341763162920853084698569536966578664567075915375874425815977409991200452551077162138151933462222882379863711531716411149149310925586929221217685124644925635871288604372549295886516893591228711013875238636685101319214157270683784567875179860982569608363539223051550726058653495798557839949996881581721350783285953570395840955065143656956260417476571017967979630557546420362323725161034650232422136614056175460033579974478945454689126229088368421256030235419550608901296381469467383534135558418044271867322541816191465917099196226774325827062702143484817206872211704869970937189883521848255573982648133083700427498307459321297976684413376113535617515466632946495122530399250496912103046372236016357738414274065686372300541391968752096208276555580093986072398719062965895614623752053399874433902246320900885455454959808511248399416446517624695570892477185905413247750851203923345417017441041456173324194754917471601436692191329004105080773468246274455260638095083083487880361565462889592207951964117254952565071760560149220673744476678733143230812274961776467728755098317351174127071461547145744126827081835752466252194550679962183193816720086280758944242982697155193416399039793952111401554214205559252471902501133268844005628598213466955249979575337257744625751503988780840424403440462280455062571908290354089276462575632595258211922982561471637776575216412500011489496777340461191357487415664867506658022777132742004209667960124763791658422509211847880308392851667542167959842906926671775834356623427229111254040178660863572892541666312712146004126793322705435911346027797965113868205408824096494395483967778953073699437720859409670669533522482403290315136716375641062566163060524814342390053938309112665718039662690302135844618793590030814519336598115196005027848070544816159497680321913330989519903863174809914771527050289921839211747779013901762483298698324607168331815431093450232057594576528420226552828645408430686609174991931332366343594733525701599041217977481272427736899679329628937058361874905868236101516565654985873351048056563379969627642445153099350478455569793874105484009373313253313925723259574644778064954989591217102086257395100427585844479914274602575363609689083883530828735337291529395970704360472906256368545346658511397727815943649941236497177223017161883891307263103680391018252479452952096558369534499383009222194168665692529784059265711948429061674652384987625064853188158453130173066889455767461587494564390541753071721030121424203458518009534657141132661300147012196574908948835505506847753335067400557678044174768836002692405461150299951997051028423502912971611795232699237223147647912713541347116169860692238646954125531421836789655191248527634276304975777003074714612163472727490426401178714926113825086450769304655056878914426380680442128175034242914742615412378651343547090576588336393325609547317082458363153862872954721194900092537749231770896065206981031782478686109255035081961940833952450934239566352730652829417601217544492884634814068790611266940867300556974428882656874071152728935050526333644724812732619794865312300745050565330257940926340863535747896511028016604051759297148872456875326248842761550146648264889577331342906059187793785520844665479228839621600847539569463519156975510646272765524657661150762128992365243506022765477572607392736319909258957318304965949454435153256050424720676703135372672375426501327159027255894310929508083219487349622311162618431174791281198499547732801223449079132512930184135612829304870094900444541788871902945704018421834215210599320526283695734893786230956711084980108157238420159144438415605858180931710936785087930395765786215213624528373411896531172096006566187609505590988278914744881968162054090054418565280287530441034895454225858301752114591942571951227004625669220778966573663383566724645599067405811456912734233801113454670420272482636584496780401366090193300922160021339733721843919086165764088564879008291444781090372822992765995467810564870394127900550247351544332701405666131810335138421033142069455214481153899579238516030602737942232609379622577623055247158274760953941935051427131412016244795616767538382511970662023705162431385257392621525468673936908739190650830365319631720802535341260046438009268272605997921266897105302440656967189393298507101870208782637275245559043544896869247708980157031635448523703006660372744173052686379698599541354963362926612818982539283541578383112547764769695697722666442424635587853062091680913832430929878055791349540404849555933211934181944812845839216867949498958405115069196619297488450131573722766771787072489441366348530929843273868085594094092396833641457720273464841044726194085658900380094514641975957959794829550076598977267786360373924796247806764969025212883398667893235818101934016555184213077102268780760846134886730727604046726876832884679607442695443280206932953066183981037218730116106011979429853717573793985068905701721689855138101009777966145359953145808109891257469896041268250900157550453004567816882403442186293835572399257755923571991043235622735572878370622978564563913946015326806149923907910829632740693586399908870950077880362471096234762663874392446117103617858055405512772065284366427784122941342089811218994702802694635580304007505887389093899345243486334186728901359384268750264930169252221747809291137980897699477422356931492563929697028667269888961304412017166245866400327364718718176068188537654296669405941025108267576253120766471455088878943500231359680747661208269672515655157753903357300016707922311197813974923619873531094984121150817447600541948584316730196567292974965724992051972105835291708029601097519252941591603622284591884519789059881180692984177194957902009872324730197621228920540242671336921828265685980558505013852679582681433719435126428930998981603257252343370005660792032747302698945841832914058100576954379967479234343783692430199592679271126891930461817560467723318855396101714589958421615849473089350501729499835302240500390503731177383811159564127506983118142972182330420056386980382260673402363695806469835270171232289771086554149092485189897363184080058639385209841179904786248234088040738629029139887577068712472929646040473590179072894897185007561417262594427803163681262145476106642727981650985242285684199068452266312050327051565353678246619004133867334480028929475087082747986431734731270336101835061580039788680086493607535075166618966231162882589144743251482464774583735534776871896249032546106486294561513792045781610837278504518064893181222307325401818514287480069132817377989778694659473796576745932128009364940601955117423034040194673830616186115413561380086248415200605236983587883773705373201795478700468910460213887320825939251872927198157622824926902878614810246205421096306593789762109454281344186485437291279288714408661443594635082291689678030499649504673173403242235702743072988400228609078711203807737572269702728031608241590298393109172876316150624511297645164410264940182249169833526344652723508152270147986179145788057596978307460243141922991135990840896898548042213807699764665831532653262900851456041755380986754399836845010585041991855283886931168725039711473113334846305678838636580609220229988879987299279192038772420141375254029176101061501962200323185103506564560555178450270606458869300500492108778761375148001036133434862003580067571097931560402219307438870639957441243067834908059426481650248464449615803942797198523535449335883460915110976323201787661042045122829894097167642715272497639171752242485643864988391680916729881402442444118430592999228607698302536791107135458123462060509189991288943339662589148730455721729547648462102941059526137445115935117484793968436080994115513159313922391378947861514968872440673341582290171539100243524939403946507056703094115081361305144440878065717812226186965943926718007689869525885265655120879720883771769537334403895346807055351002090713712677184342431619926004931963512451497640289791825540027172966327044936342395544149880172783615164466834098633867754540471460353166092974773836515431756804905585873547805392039352216214986260512975907835661534641253856499608670178491229611758811336772253790923168892143333873116656501889370076143204707049644785697851648464871780595866568390683753044516931205747439768623568702196777629944956774458985581757000991563861870536199678749107732223767056148026952619127834888999021937701117121594976102559370886859057573791820399705599217565023449087858117493903184830861395476728169134827384387029491339536577878817603574813659254185579168991853331075558391789344045312104502267257682194500033791896620020320501932324917702462766781946522442351859727145043796418606700339968244875419832910887510016551542585476750949719175000390583948898578012546243568328266176090152760315560189375204059153622756656564129971707006633554094479406927444534258926676361231261356605643011357121757088199926703270348057042259183880598108451273350454979324712145848483622711036842086169428966776488447751363181344085912227079935019507123387431698178719410250711210037620621434305754026232908198809932144966847493126249920292847394052574166035756344811842816341890610964142301246033543057198374021941925612438214106404823452871778716068863379482813364877464182113265361711520510651379489780683708760196802964617495075306797078300477045356042541448576627658353812952655931385069455135618413805272268587838024268907999972317966574805852117803643208392486567297555463169741139137243797589217004057186667123461219739882609277322265590874093389383854725101831729934200778734580136539030658330067708185118520808995126753110887252859780391183809169267078742346241876043800792957761822456791391121095370182112797814819405453256308002521535009094395971281052032965587955709779800256731454367341744544999415930188661506113839926159237988012290098125556007562324264431748989888506600100054618614317535564589499428794980715385484829804080258045455172934450772524313922730013597391515985608130737294528765785012021781055683392291614929369111748464005717340627873216770861167601718508499667263251559384721498923241640643277482071793256434319333062956092686268882516865111378534093977097741626436840607869604408493208061630464545813827981589925384012187225803163153837760272267233073431174296813795594619701270513124109254858475891665912927142992372700602273665440322944153016241893378038058334073904660018632265707088187229924694066595937817385185094877216043324300703271620364798686236776833854672871255961430304482425831172273043460854805159919054220842994082262937389472234997079304872657313694529427529856209199033075273321147471350220497139480928871517132693023366849744737508439223049673218970068277265351209486753140574541782146142076418088100821978664840585620628372275453721382712512937292037258797076752152406182907160252055573339443831418648207788926218955490094096961686666739340126388514543310828532564788011658031966013672042424824337349873145323745440209452835768432948740507659657221066700976401290008801386596741577810273340433925308509186884517023120497463466212648322946188766528458009232550041770439151957154489158705264384507431541009337144087181581346228255198216146999792968686497919667685021859790118567753060014652265275588381352254100668110019853906197465645383050328661491852534210641955813694367821302539798938814717640784042748874799577031165705458229188706029850930979234995033668817855837334323266942121133363212257902900912007534151767050873128008595436621467094733619240115798101548915452122979549057064696895594949963571644834060822294894339603124336568893956197895270847101355309580201959219290496842810862130203671255191904557306787823511977525627565327230961697804153454431185486742516810209217601953866306342503540033038020093059659846757444217144954654978199571887733883639315241016036109761158816360515018102973260718582688449930455696700819551030545034000138586687786855488272537580970777973203589995229345714422235913495897661528228526079156005328652000789803546853964460278874412765017847970501592136798535348954725771659828596486737480393973154922275222183756962714911309389843257196948949955928371971989532831986365951938704107369640172638061845278145747318137486561400245579778296791645805710641152194687573753481350292527574346989296332010032775822575961069995365499050085066164658788696051298289940859301484017920809643496448209026714036596826083959023881222022027394186881774756579589300352458490206692798794342553158240057189229589176413131869878064831238460284353469187617003484248574383945195939984278866807896936542044921453583363620751433553595749757670195009441833033084746754062842423408486653520748815660005125075505397425461725597498113289013037926559022636228601430416601260758712023497045544386087057080392307946081294954217827345065589529141530193134953714053661913342623493806992281319081409128252511369654923124490575270567344663798667645990647055541621008063854035807261540847742093938991106743901116722476229269541755325677537336600274702699605124615556499441484699813552767674033294333813053221256963572643681528048064040892729515421263933555932576039055800817874024939849967244583275998607182262557101682236544943151795179376542905833038493900427669586045331569962740199048542692949453138563554895830993565109812636017942415209334570487819431716242058636325729809794904773961814393755536607234351340213796330560079332560828486984455453071802327067399355435443973272930161120146162325903026115646702417533471889958747217110940756509572547279274903942313984801873173665282352271303435842103874698972530228504124542124531236183532624009989477467395719079101583911665301345740020773633980928060055059911146978439655246716180826990576448913537493388695559703263353653740950993046272419540589568342205391834830145987678723687271760741514038578881291378725768663023931647518740477729811777360880903805800748505501584422194019819841113098426771260826789286119841621734882947537754000902380182033841301938992946993120438289681143241821519429261037801431891305219045261508017816846073258041619037776344100096497307588197351643446512665218050610750994111086172213788260668489920791574457368629060602004184056353347008353602733188403852535132088113132413297409522885433248266622165700009151368885661482225479557549937485955017644818705636692009484950353606559996889472408504834001755232761408496773595871080957944128656240043884608959129368687474647716955288008970205399625534755926314281956413401966995314631488805560045167578203261355483486649455886709925468914180482178471453324154624709948724031108867553273748661178873189997216587620815574879265281734520601763112461797117547939440055444307673340364883912222813669992500554151248001049444128894179794789465604203426597994653428971434659345255993047188797717700630684824088785230535391363649079778831383295924347945669628438601395386853960130310071986606305430939645870998625834890486821865647653494168391906006730226985577491920017656912063480568352917825524070381526923723093520255881878142201818934661614113868024886828109703403865319780828644807412567276448361482052673322524750204911745532973348226871865791495819426374754944316653747134010485694092726737117552076743493995834235156476247802715364924348590876645218727367198120471654716281770417412094069919568531507456815840170695767599266552057221183641240820586550412307512896761957776397645081915800742740538062431038103698563749345350626856327079166098658126179266104538727238665558206979706617836836472295611828903028999338170315277700351313366258174600309503391789391824384925626916817830314456435999799356575761460319269475222194520550920740236383161020859350156644015882799486751896227514535680243630612164227619048545175835202578583045327718758261621011669047768267299571888229976088566184300254656377479901644641079886089819990089286366333908965196648507221990157494164352173577191611906139529241999189400506416629769282991706981909735018630571248030829946929171289716210851428766805119342647842135565160162836613061118911251502803178340167070851067103476800935705353389239388083374573677476337492139567025603600188205942316897196724367996269151416153641285878669852256711262586819862152261969246332601521783143989828543480787753783808509610902637626645965184318643031815002448916504190798703810214031722055132904542328643148144334394508569434466219514137930391297383429392640094497190259388191662535792676902189433432647288058085561194274444995867339553315180523553317136555819360769716753710973257414802695728816560742663265276226157346072258311518315808313066102524643601156717809078042892043959346777312612238053693896219845330592576796933331462209253731962308747253325580398908963115954279101301577399266955983732718233187787871689436849752264031763365048984392846589526143514956789219730219476563155591132275546931184873864903772564364686036174913501713696989263771837681854059879183127978585612092339145659209396635529571608907853626351998816447852438906475535776392338738465408175915781469366436674074587149314692762008068965992698228679362451722271810341723800640543384335532609917619003575476062310889603058145692747709891443259443107339043442119622725668114673078786331306631598189059162300348027747877170893991266443095400609824283423373997490360433551896779608986204286932534901843556539658107959899222173696718128129721563851552796055634138264920367542735883255969223493945212592583966958050922518281781770444625643176760247734559665450129374812782563701239987227786064162436396672850928225937709693875958156664761356441827703004038196245918269679371679069766128247680125311731358554858609478059441778951471580961386624433210596005412753359128501517245521627711713687773152616359196799497061417321063991899912749191223351139374359114173001278834661900381258490188665328170551838852970060084240016729318722100024328091145603913474807860788338094652446565146441732472541806275964812600865097361964955394456343298259315367621094929760885199145556061961630598954704978940307275082300367663250711757766052431602018688549340234762995641963897673991979936814485758495733477014143051411080507835394663958780986556144519021266742076436658068159459880174257361996934060173564528552788486852024271692308445082774244590907198155491328093848077040940057741735444728499083425271841772049032476291985409038020108337669094535372271242368076415644984196576775757290011301869967664701474548474488142562668638495294751112522510273953281497295019583469993199786936609020169485328540903877332472317233193328148953718267549701790752963373901815861415712801908644432529622797823406007149360652174260788025828429058815264241485453665863812443973044470277557241056657085602189334801745511918297272994206200517035802282261909268663478438772430805460519140125307225520111035811701898379799942432336447451438395875292783428142828436679219538156018654072539065335009507013078862736094672800785324313549434926256505175455177002918187420511823689562597323659050906945656753942099454335368004885228422377652373330581536864000120992839036169387913463175028767100057280286100256787049559295215638830818435256090218774186966897249698518292213246748368965797986819528092373787134727593089846858855055052092551434513339488509835511796654596627205975058048783164256852676043876796153706140492543665152436235524411180597776599840386965211853880206524933398970309709905117808353913859715919288001068884050217471197205926216854988430539187505544051049491358493276004816041598967296870809571525592113135945050437505064511052919323266269541851280239118275339972944571917919610350832509287803549710669392977248132458244897809295605501194529826617469630562845802423358288029802955811569984207492534120564857736401549693561669714258474064369611509102351698024526652765278532949330237683172764294854660213162847356524645486692621618988461995645321931022749887170745337352460965187938432827611577804502040827154402634981785837011846236788952596872835150440069803332081860878868785791716573823238538986708789404572822935422488070084809512774598236223825481631768130555419701388658080203186496465689826728549201659150860845800819990620280788319677492550949499305993247455505403692315375580972956049420554516724964134352676623604213098238496272583026801352865418156086228597616028327022183439688100402026316970967945945395750821611074251702971793886191003876515135946565874486280802208490386508271796795138304594149839444592697381728437194423471510932377982123759610333867094358052321817358503800910993905343267554408891482890070844238710750044085817416108622230330157868076446880450475673569928911822878825713789345002447744798907918104498641476039051224981387542881546557604862209486759036353267306254211110591173268374614491120497558369896755904405695236849246131635114338038998353842705662823426501480666541743495923841586339460207243321248711593398576177848864445927895419051060683925556111491868050995836497224720871057413758769066919517384797385501848837306736750781064469771679805969406288660723595985207824091007239377550610996197846481189427910083643110931407132069356605835381221167472946301075601111208359532050034099539326456170221759666868557792843060189566626117619600399521385525505387320738281118699335671632221545035401436695300607340863337990714917267509298126592895912022476516511474369785081413150210968152523779926775671278782074364832815528247410704232080081338721483085808137959491155151494390803467614088579314229242908174994759153342882279636968576185597762500302286214443049728578509037907427867717352993099966132791685385131704035526175095397956480129125832766676650927192053378180509826940699754730713541952497931873906762744630257562120887515621992437817785141782399746551642566194526538276481931586213250933720310680493677133479833471394267708706080657753560684588920351510548380112716885714377860349506773865856279312804868324473190559431563699086592133983235777957150465257617819373304519028895831768731758343529927158666755816116300276774505060772452970640573492852778429573730652253130527261279001186501143292965922763490896967979410283886722548581057659750186968182205636850500406192362179653496148258059934485668427321531671179674057900001875759494604556818915534778999808785090947454266236769039437936724668899696307992512570078752045783192575791855237318880197286593618578171310484677731030229566153786479050590390092127530031340791575168164363549544474442425130111846939156743215652359539286262468634002885364851122730581798605245684542676226974767767407458138594441356507518850291239373170258294889807742815907969654494153042589157931653858113431921915517317295713839558586375367782236224002511551174710033122044362281621118094196584498979780521160502438481350891969237814677736431484528712260140930251350282702099865252509602419869784788772770059660340534278615347857610844206149587396732155001343797345081625686694023744630813423635151586164720169742051154910847002766017652054642291149132404647241852118016199300114482223408767596992164771352270266681661388213826914041987320350566241765858278988536784368838518845189486425959370796726424171607507356343544238814098127871442227835318052630899733906739591261796811793904048157096224393248325870206841549996298361002478482945297429496551652787649958969966381486081040080256213654864682285538983763402993855025661215302585203593781666407105176703497255278077362859705854935224319786152910712362734017069671530275635375607362953609356439612282920265136819204352698158342209612158369235388901177622355360211685679880761628847537954265037088354008114819952994101855119415185071638462661092653056911330650563171120163673723675756429869677862362592364582434094387719088658584694757079442702199898783759364497168215150661336352739276228541656490235254424968619955060182446800258521165674142942627511187274499468379781914356240563781523391560126751753126183722985061275672219006214742065747065133894867939362625393257541989059973328730415220348789997857015486182771301387762989437858040975479474537546988298200257775168502998367755135477361792535495329620300087608606690349141452518916806166155166146184225810140831803670250133515188317422976000667819978734521907609850551942967672005941436204178439768607573544497252016032434810010601679751168274234181797964968023706169332209952482402142745221597429554952316728149056879337509105314678880815754839672500446522309228359488758157451108624957057677853239837479513757426117957307173059237489327469203127938946609393069494461712967118301585832271822955889413392117555871787801391719797390415429663173849293186029069844730789887638226726269461646899327288933334417004612548933409500374711774580352233209171308960578007783674642948312418817144379163689072774340651411505228900714512087627307828012762149765061809169328508487973062856295564289889609375185099207122433846842888189149006763819423955784044798683068988931585501097139586145188107524439118048683813523810727874051833001508466801209506709357982228563732566156665980192724781211262982712090665670127206813485774324421592381755465294953019553632365048487873180342074199754695315118674081149548981006929431440341035589984038806973000944018141170809855754839660034805816758422176803192648365927405163890871963891984321573591863442557358113400539838314893835735232199240598462301271026957120890138490199369482387223006386266259628720760984272621566308990806945559837427463538463711806979069341747738555276459648988436621420792522445456621618183002644594807120622656608525786443147135048931686524692043627752669926384463577911541621860858979456033819272628570977912369740048879084781307897588079391602190440528219817299118122619536443486802758655000274747899065277763904517747781305204037111744143465327391009589491205567770833644417303461493857550304625504812639880873237758974795633829042294487125924458529046339127489157701802279775099387671866030108624335024519078578887990825881533719958733047295663834309910533269855268296872097354095840275452572712666982282600835462680425247375978726335021064969160479349383069357493046186203255599002107925029546099997341013345654065009930778285857695376095986611883099634018545823790398044015847418037569633061828631785520632258458957496007064860481938688325460792502943198433308113167689948903231727519100632712480530211949673196591181224800706294158594503791712014985678416642843544374859256022792879405068135183775252941095724141737511811643060529986914173906799064497793058619413767408848075601348715505361367207149142170484693559912596407517887632634499939541178301352559885331802603702183607308754767027391529517773508580691800027558069515238315678219699819715270263187570558912656319077781776655149638760995003753976084998712177688814924808060750795903773513795261187305938970937440755422442863957157402540799408440757091675569557432085219958186523533190295264212846852874504760464979047705416043398614099623612767827974313238136056307934623490490418192981964944884577093496364945595681720825038377047030543664999729633111917348122689573907797098086849814282269522634015199527966496137990445647468892984663890449402927360473549765045329167515928818261646196975811479812977971326558596322527498122228611779661680804976044921600099552157076899964288763279096840935744025099800493061423884161648455229879760509396228159712438987996112155615393119933287414397341450061123835406165504901307825120758369472642414361349705304922808602275049478806686496941611216542421351872978284559997499819622291260991921756766890591033276369243264093344340535293620958070524357733943531006494686653714428025190748274411402597137629302330713922455942399179063054733881335438022566766927746613426382833210757805770845458616394255634979319953134835418278427996429827005819098262212054236399890586742625428605139099408353100325769010826185204367522926414189218624239033863601771162778763606802743812469709778049836427376579134778840426082862122947853393940812286218877384869588405681501902306897529085853129612167658408518672659130910183233308862161446938761482796151602012297139417189451277188603784864978458297227212712427698003054945382025984000285485346666711094191934569821529447584346092567107189207290059055984428987095800342841576477550298981366655097177282934602577246911301316329863779784689797783168997741810614266209699966884473489342802513674073532786451114143544518602240837970453342062506154563790877330695020877878013932937052862453069712887563839868779250340825799069021947199630952978441081269326651228836682636546726648581136378371520315398885129198835492337889108610096961880983107630207705053285899833052526695841848781600610428805234084979989112000616311980357897375160642885701163769372998691027222237432476475629029728563917461984854397752095472351300046389709206179241193765764390072188260831599506696465167542172655915020913891451755138498533755923333098794914585819356545294815124880778483544186583924100015587029228275254165801138248701991708236517795933850017213757700545559822701254339870861943784194858508695963792357788704523297092897717418575602428206868344363570531812184589400414307315382354786202809438992446786279927268864845886993626926895519324701875959629801405411289514841190238215806666827729403975939602780436082815045552046440043368896251663725114842116321092186597832631308268879920434157193870291338122711909408170554358268363622726247452568210715042690047477137256275103126941258839755581136807238389442781475725681505020336107925653431488624315607921897556442539692927496555695427877490028204475796035364912393953721380038070032931443362720270185339347808106713464490336570599419010779395224144298129755859467973142474664607739158992278471286592632526956907450879150497165501915480902255187355692651521020592023382053223004637872858611217247896686701900632489222735936650263465029151037575116049751682960705087140233635116802297750096841262908602155597402743400033174068245750230382245929348681688175802052738826651725261912622146961698685117070476504024276500571010681008753566644167633668839726166182368460068692882420454161264148412125631824531635288867351349584820745564028872831475250134472319491691253922889792627099005063100558548977461847259874468890641626938377584972443443955998269679120938842363384886156397104007708818763950001837455059868204684374998716871710720858826828052554651099619930617618658782286477100388555199963941959333431035623502738535077127006024431030849442120797251043894023377955610825028254115328761979227508671354988275380193083880934612437806765988550384536744065357908140225103151753289669311087576297665594858026837556828935558854115712386054874659082975138132113615604564090912410615233026361182834749684238204238314144782984893471359500016189677330669930074698823093021414740946759022240152686119091517877716104802761064469800656727790996220748660121985735317173749283710334780842270089366896910327588131246264970037917285498262684080823227776914134007920795703625017211576071748535894591697195754711598337422642704096218912677796543334494807787666744013138178006999995372728160097337178368583685805123097779230692348227019515671417301111400045478922985282464579784446142656287327620312950483386400725652489703176272577172192625237740261506723924310798751057516252531338450248480589944857996820401904924247390456728568928157762157659839163219691989313996393954128155623763760480346054397251280619489792643912363829397016663146427838840219259550211192659861494074383512981402327256158624989051784080115533500683615261374299749008518710884087914634700726771466028620998655253350688347724819917327635219600123192974444981860097334190200458096286665533793422208144888019601957746220321689452318222019449466691638181424006122297930583455517403369298852541981487795166837853999596700128322639474218997582792722693483767772608273515599676853556831190557674866782998132045451123499972198910070566682039599773735812956033233660662839049918408326354871856631254346765562813034195293222799167030793857371788564194402181581203639329611889182011423173485745651092728620942240543460670665929994896952772672308080422345602748290325742362562888846862614709526254857502850042418221160904809040505117553788063764339508525279309973350890028892294557889802796032301818154421463385044315627377447199087224880954082120410212740106601404686289332057040541700341087705403870167732885333433542461580623974068470722327515241112685304297338410393656323940459088447291278483332734749938626869333908116676335272065654493565171090169603279152142228502130954556058354364470872380002041249525737689039554817727973552234007906306161105582122833529012161766677063543208353363086760594084272428736736012767623802245746973879321410563402760772846942046752297469890104029645969739443611070438099865069836136800466437139523410608841091237188730927761482232696550944518110609158784415509324266987365960615525585481428145280809322753082131642010733082819249788271118925689985370574939894481503228479740488728197176220211117719561613355320776191103653988364219685199935169027807264608230737710164413402749900276840484693496878329755287824028677468070494765844917564059197489750294850165121859590020839405681363608254148280680654990245663949521689186441468419010694750773161024336894465433770663794722498609335859109396731341368947769189764895405937450911377775004614441537720657968420722275923303647803195084629019059216300371183130863724361295657545360333924928288166302169355679952117099691322222029434654651834468794156755134645344658226469890583673308748835843549610762683499853352659546518482192932359577922125553369053265982086586022252909845133348945658292097385692928483486010029875798465739896758933709663511854361905319853741680719920039428563613556362518811112305230144350723285081311406205191558249623224498625467620327682094435711355742567402126792844483006028623660450820282349646274407515824555511718135220117501260990304714728692103894828400079840045826245323499468429111155805263763126132312079227694193066406070714655300505042196922806361054623286208458372197297428348131731179328339569511628031481710765915938685002843710813144504707093816612929501319971647536969643312101235742562645736691410075106117765487751678502093200134358026067480226796046616807672906473611489340945567901222155902311154018405798117093563080107819669377494944187709026172503048189476059725196627492069477761326365871992950756600388218880963183637860249371496663809281757630324081275632191322417088895782484789375270487704272694914238629502096704341155814363546127758476567861154991664555191133459357926650579426620108176630842981173651106314074635584705405236173669435958789444068160351176500450245760896522703970185396095269466968685094837365680051596790069032462321472181430088648205908586728758232212071552551931428314430107526260813252186961576451108177570130398343003265061039498919046517012973679491094267705447348110228029122136110275971204425929347106010826656474722333715309088462979409486648870166102674268294305170501033119209078923684959634834908804416979767639678156750851201286940406839219605149618644833446835010887577952239711155759968173359619826803606508782556010627909321277610583099094461391097963617978084105050275978874105499054327341400031062309614985799175344584603696972487797175415409519965446938871300417336299058612826676017699244971194979820236369828008359739640195750024699859673525908933393242234753895916573474902138438651311463362018232317774424500101954466737075725601364394376014251813172005825858363417930950031520876555580113724876368300681002731323352401957848312871149461162487385544737761727129291101813299007013691930722986148044764673352947252835282885207234972588662530752534199951363216775906309021899987132508822581794663127844169341569051287504113808704092382988222037613249832223255731007088943442189549038765114364610762066162785729489083618913117933523680561425331074554854282584424046871371570445047962281187690979190372644705709093107474939526890163717788926901207082031607259691205216291695790113526704215875632301631245265069695377573086932675730648217535303660762918118607376860848836155052582253984119097116498827381161230245882412400621573268682728613870280620617547579430197070769243369261347848042973591011035288123703035279635049843613544953725209760153578232538227928994679732238685908690093897112063054374033266490720056937951507199861697925568976074577714095166213894541141748326082776421748379593156183845699274415290327005952133469956317858252055702170757920089514851839665202644513523140968285199439330346758280995883482899888204848923379904248665530250567161590151416934206619916180765132181249513803196039396392505744629668435968791446704255140944186807934432297832165277258578914158782874576515838968538069862564960134149207078675328725687810418250589629177026276927147142739027980175702223245225018537093793976192163383568552785866028378067193945451491244417670734027737939612242041879041412267336343089228815792759595643959565596316834392266116819895452107425797526471835056708383608798763079323261353324286313335010141036764529036713008427688576270567770464198272937846695007134124652049771594126483647767984039336484764250477139523173428490538778009048972928984611480668559466532366052923568399165594672288631969792307435201517356149915340053059938116248064995391810055416887750120335733714535724447157985555468361398222257963588128662275932311046457475525846850338641136493710354968890464681952559106595984254612569081371060803455338237010740899942654757403368686014103431389686281397252396325873375323196314048834272964173557088232161098245227489636704291266472399476331540534461836039959115801848863293037825676329335376797295772178030279198719354842085127950697997568866841278795457834854846230779509748477789860273716606963693331347002927274065843922774988403100593626692002828417694946156286541070061320089785466441365272221499225440939108604125000753402255082934063186106776302252990683899575941608833443437322687770238348362282435298621235137093138585538941472936445020232090118018090051088795228141007179773654573852487423559193965179845509143147594999269179785185681237989238674517470596913484609599805519556896527933261629234004272479657453372758760922663863117917142929143179807411004566105108124350019320874636334501426935535298804183207721570776043870753845901170589602434200075140679388467191537619213050682758227161606769178243568031909273232548101830002280958783937766578174816531686345466460677545425037517686631316147015292972772628335504187265241537934610087104322354854813892607943285765027767207087969496142110559729416912470810190440592890139088919896590932702143253685737236432902924037452141105292907587571744921021488385398468908181687252176802809370229252020377884358043097008208530815251813790004506867889396909967111609541476974154194989651350327104694451849495344776387772507850666369075750524466702265506524600359371621233646153587580130049232279986639353273464917673230201780415406269177432935775846806304235464519901591127940999647998922998789791262038031714473624439035015303390949269156630000636008023603454034690284324384763153744739596559476976231284569349466021651187699615469593636257123681233968986782254896866303636548094371128059316717818200023910570857002607951862369494271200350830099905056461376274678490691378048847834551966199356771092894328096047690100511180769247857282142267945043932709000185227466082071013365974215400950496394832634739819948288588754530548397308976931429956396162136908282866043751437764341400161439380637239267857210666318798124130162360312818072493672821538892373930897288801519094686593023273784648453681318228850348051815648957871994724603584072610377035360957956322284353928238179778959799870203684382330035504141855327962324736684920487638223594596149679602433548810699872747804148367026999420801726790336633700227043883629076363340081282261522190098398472604361060322070238230801475030400920207728500942261645200999220547216764376315848071665472386873645920441325752677592086716467016705773989515857055911869715638492337553625705447142202563328351583139734007586068979685688249650936433772503350384796670058649637483349910005088278746304999157330758970881813699440398066494655423066946046030494291213465561908480027566608426406158582852246917773375216708232488852190851431637283483511726957562978702089447791475336984490742055865211458247689204468532467788164093671153641875394465733986657896607224954477925287377780398728877821395549064076269970901415039931323222552709623495996048239775294318154580654904294529385926073768907148414760541134235784925123021960928133543536122591375247044548763327106812471158037758518438772811339092456034345089450339437758477778042473875761048383899610193026013427186790045074008304533291937606382725208773236468590271466951336988332356484693868854828087221435330252578118765879162452370991838176734412468858120421046173499303409128429546977604066753918968928329105697903402087952190340833885760030585935457330567336343499919952806932811774499179937640247672244841721134108435072678259405774320222630941785850126252526083100072883695306597025305638279094603118247776360126397056949007740410911851565628026788627811225252130005127290638034453780792806757568989783259340795451685333164191166615510775415288761969993685652257161088860950493976272165325106323405690409436584330137041039583237501444036637672572063690025240279916728600483111478875245420088156785577175814165844607097240863170171363159693334243294073389772479558135191690629848484777341475800125815342594837753151069844474678535213186901958383215496948494818717115901528432547850160802554372447281279128423548158793978782364806301321416281597562833400662597908411946468017123757242339538439264874070501150226802821864073894054073849793673752351153350237012346091823849656026718810735459401790751636103922532584107732302813176972603547244098770222977831299769867335844017637942024807559606799991232778365200054377935572751988704754829219749659793170043859206079061083414451592243492635648974524093820427109514817840862488490513509301312495236392814929353481021574010484340458811897156268133932215308556734969899703977375501855635021035136462897392221875221064813851555789327777323657146198004039835224844823815345720148142319452659698607405784638111586483437957344211018990918228648482086843933634983343991919720660335396939377435681659435906037776963271568963362902532987866612282083297059788574313504782549893331121890380306353331084049358670622613017365736569415669492866685788452373827114484089001422280876975155521869548565012585394450647760324732647620583745903766064594369573805666652529136610262499912850731377041678655236646965527513907148947711462818652696938641401465182087614700264100698524790578760694357220740540496232813733472560244170103786469693778692275784726413920649167740276297837941798092121340603281977383990684397060124127512778343895984222570015951600351147265587735719441676266149103147499187882033740674441283219364637995092662784023492576591792590277936848192366255949927646868262984050389392367968194403843899197663364234254884614668398638617256666502835538279078478836553376975117391050697400529749246631845842753463920539834154098266517444128908494164042205861676437431521750177211035634314403067426932496721974773127790897268605586925830182247990080360013729793750753668123588342168722996234660583322159686178214769917070368726576620704222777726244905809546729155454378735533195613102682535352704120145867420419101190913927094583530161084871670344906581980904743479657791837311844848522257761800260318117198819307291918159509210212305352019203932781348125021965994492562097342677580311336650637181435675688963638200213797502356330307063912970363610811203640037503962632468748010119738375511781288480207265713381595507298700100457870589212428873337522257489671346225134210899066724827830290389522148652685317593218985013805201222528449179909484249279564822973993802885921021462098516638867567848841847984833216553012675979107093264593434064752973460365403314336068637262610698595063252298414941389294873215352495166817919553688776638180823804338098584975279480938915827539902962017741741358937818952491127502556179492159968545322976944732719657133033840281060376486949966645945110963218599153588768534691306712365192448803548055991511464015929755133849754695667869836955942423308211739102165262739713068066759155853360031118422152793445582535817825763939704466316985596267425516935244806154595039252676993097503949059230532812509841064160091723373474719079077451902577088369059850144024500332824321304463966708014156086028015645674814504832631272177493213079444486347827129452891006231762978405652788266638090399834491897165624452074935497415681444755125441266298833191370240978189704605191955968030189011060514065089231489449100879409736987544230146265588910084559428082782568754823065654522170917774259574053271921428581879853895170717792896315310922476154352996072939329523505624994075989372467496350459371933168175426996473772601552632484094643897080244993274400018767456829863088120088653218473923056061487277067814282634547272740875521203739077442901138445928288228392630294264639667391615037623867170358806227356123399614447177799177925339012247896192716473477791547238846965730949170172452368522218993570786401062019110503721619329070419579163964614896611267002909721773116047305574631344303859185796405638901208863859131749760695143212350671973749878024868441386946114548596982308613166702038420724616298827733913341382876509282929427209770914627463907518546951634536207603380647931332982828989684610499117627969681616241739343004774950359604580078829055096245929686798298466796006667969068147094473953746039913553526921459258033953194889419531337429297930610860661152133116428008928477621187895049494823134125491574475401576388356238295302595375674291691594971565064215613870609971503354500567138162464437307490365292011393304251793385125782167920187673663696720317721412773761843144728077841007146462360865173969335048140626130185640449006104599508150732438334497889679452428591877562701504836560926742197296686652447727612718423510340682136189329291808320898810978508519204870105833992158263474372123518372096195443741371193113504065711617601710929853725553740823951088446627268513348447174851056136873481144804029772396417929511325663566898201759239600766385460277316214644927819647074288825082450258381228828418986671956691126983605233820771125246031749003788814244776298588985775752340784389090133158991329310879972117492537714647191941184162957111888550677534739557976615637579677828504041774390668154106491207986743657170347165464903030828017980218146550828262041003862012952054400947110208320691236688159448912215858412816558076667789652515360750721154534685220872875528914832123873468128968045369578943845429645830382697086009223298327360282952675612011510677613705230317832633411573299495636550113933436693116466786563169974391180223608343716740368977558819201734890876821518569582432232984215335309204939334611365535992216280981438183763508036580434610363954425401692959963501882567925105418743701654744961964155253208686975142669962213907736112552835226793872574442020630069313301191438298477041039948999143439923884744287239558996941766009630052435458252286419869062316395247588514329803247943896091675410688628975701045670644717110508691249111086070831824531642311352835659492681739007966210858714185751588141142114106483260718635037796402048415854088106681608005042418194482403745453113222701213475378982555156598786006940573348185797751619580329056325020916955262273366380726964009175272453879813203563585915629567065339370798615973634004954699667932522608405849969504145763593054125849087528136923236314417627347848773032038899691515055145092332934990902914548352211057667611266237463290108319398542026761479394907280583099099157173972219901869967853260668412336047513991026756953442077486286433295459775755827679131557439981284525377342468799525288090088000746840456338179416686180533256356922717416094539888929502299672471748791200612968945101510302634106753772032708223154989099739365168754156581607644572177424307824786832254993173167860674972795017197308852536714221516295102046737302692342922928449713394928484851540143923860142579798133455344768188352781445773088621123836272660542772242349275388787051903594049902255477659059850991123315732369991068204162909463629401520545769102372219319698686864325637305335408423205075927169691478746255978825199421076928912481957273405761201420599122163277058895791457534139829845429485020887674758032387717042804753422674059481285431823428116339778212240090367548724521740677572569909172203861809959459095267967947276921516380210917284896874565463953786989550390699617910414465907075826648414462800361080739333128630523028936611459763678234198109548237913758127102563024961024106265471733113471459105979675569901701961064849443536403678259372111455204074802068886476584216751112653432815270038172925940703370026150978379124667364426196314631648946227961123278813401571407035066609013326049402283686669905700392932956454866099504827461817839637632180280458140656863454994870236159069384864283475728502673806802204966541081068196107493475383481885239042131565907504606319915392217229019810347023988644885764897365192374228125062681877472963274078284523959014950647015460506736794498800180339284272418243105997326760558325774451920210928531306016730058978852561989412909477778314160332208561443476674316401252245912151096104718756689370025154289016486786559634881914659186779102326928267006178787099048754132795955891216690687092786236080479207577923798358489049041681605219538224499524840987883538688889224305535100073406216741797567249923597321218085867642028184086094879322633158392605820225253452451624649070689191477718358542678322412680916496187960696504693642516210211113134171052541106516973237039230181519699999036484406354295534621150794356256052273712953205901285545066206135108219601545519299352109573204490259469575829878749721117216345232651423882008439074686237683014995379581982648924826480763056480594298449818527778171784259125087588107855372676559124737859306766048495311675261271576624410034895961162451190185710589045788899213072554991555956652182197820613200428120892410054968243866971906946671037829126191289647157026905260059790454309155430588145006257500424041690336683678387490580704024332020264852354862694820215585499879397958237572561801820799395490303283516149490542631648411070401988096717461109304999945704241207948646306772102359444751093656137642811715445691041799945790158075090596234860169476874207049970536929137633910240863997589239570006436422755505318716591004187352289558451554890134955155066163587248964869353336075536846072468711400909362723384158586928870359978737301923322551885653182081100135805886285228944798182412417727875463389486631293737736297700543407098210956758091248758183778659592784101144692393099612732071463261881573805073367958941527840692800636180569053034800993640904606561623595705406564080348396887327857197626522619010838887676569022435128844150086166128641154535787747517675069710446879791065284988088402406306883059463625910819532111535395141451774237260528435632024496065116819401747431043016196153800585034159467863924813292360541048386969150535584580676346099237954811757098477774635721963981622440316424756899256874468707653452524763643452598197489604755833489421550825955291073483170784811847636428769179867820071443325983412967688001273285128945148250927994351083070125590019258850645440908338101704427763464191027975889235743675148111006091551209615099405178451016922682207668852636536049861097575260324843164232701849685811640505745531744419300261145537530341296776717157614675045010112890159465664378170967655135617285104718795864850963222848620025014963594325980759053883055553013517361012026916856915361397926032200269571622827882075895012198928571624896481796402027419689181824232575845869242364247702101976044894061249076466244836390418613590683954484384509950862536458414067228578443257372372251004354074782032783672100072753788993840275107038764188468268010870494713219790229677737577283006668159197227115544249224820725164656051863663970178277353939778705711874923099880950146566062243718263149297865755106423737681611761497093481060545209762887764429484770133803334133821584197614021580803848740109593984186041466732992932483733173821349327489108221334483437430030342981182625523028388173235161350527412092967534988518606106324109704587359142033877861608067312991590224699582139187870156315687969350856405711176049551216891795779192026844872046115838987677471831149835523231133355529799714453731950945166555408356269543333895819809962959412755304948188048818651713178069204651752905685837305254051091713185804904198270471943182022310117045840676937342055768614215526277973732585072447634740057243470456254191257384090130252793086774180782048381556101197303519327498437989620951908418199822557615307838208058341043539795341092671512168161565122796767693077150804566441658988829630905681629220872324969913164224481568574136002702853571517000965474840105737480484959889809221389058919411799654460078372925859990577193767532689342688655979474734197988355574385061761348699919821514818881733507061485404452822026307277142114638527974517035091176226981841703054213653498537825483323210166259842710117971364407475322585337189871166953255370303425531027813951516542767418799093122715451923063801790454580767857659260897052222811352224329339060454139286965834714955575862529879656595740392712204974078047213205513481015222617598963323849006538275748367148914186129261028866956602729357760751043876872090112438825714102117536729327954582550442665646437847098204259077894308045247442273059413848510069910819759729576310413103637882453905730739958683392722486481999380803128800426569055869502519838629192633860987442819601461638279371346270674527707022128610298613976354380768462787246766590961850546391912792505857652239900193124267623460175310745105935142503990910614579566349505705634460399047366794368408232968090539202245331365199838863955664407864172296494065838539191639344022434687028374140590859996775747851272102314629226954025520787117349467362504933103165710836689380539639647660047528274136643844316195724805644613236554698794831460711089223350975546423664467822223494771589730395181287365890940303351321620265085054204584216877497651849769647167121633457254251689810287366166485715711499192399358071703612564489155639581590190136996386296390008877728131294214770051019348361018552758199790440066299525393481423235092957023314814572238080785071778664986687716949939992070717012483251379225291754330014361089140361889304216541324714013016810475167536305441922248615218073741980071249355040128255472184784814319918726521034777474433289908860224178658435120405423291410105009935063227253496851011513929233966248344416108218886257623069964298580774484150343540155168593174780139210722063550038880889326359663606269881555969437405017929205934728003318687319485774648814881725283117235411119052921508255193000270704170680846156551944801782543246429718390147160394833353121508057432699128392603593686414591318153220746881442899807096004245166393034056674860165054967423497140449901975068776984147939239556506756375999691181119593910005192933633308175830778809919524078867018161365881652265602284554003638174099272897408031489557206469350170759398902325457402527505264709863713776073733975064166024462364386930092008100921529206770315284848077260512929709332437347940270448837869618724102452400153322783046280153734861014758623269737004929153817105070725724815806183184341901895473940094802015056293088074090296536254665505688508201371441562361388580981611947667667888808813098501989715423291908987782832352092452169554016338886428371886600522428224633970856858011621852847854601088772393973392241545830490209550604326568250616722852401761333593525746939105208129256855418266513717644841474478063914130455657415693431798737160068506977390505995076618257698108263545461595367511727626539113096383897878979954182675157921244013943059766788098379677962556290732380094911859650331170608304369457693940144715556717470870296419192156698807673615464098290704887702603222839084972103514920890285276742271893906509687513692103964219472253157623610675223332766266207350637668628167047683018722175400333360944421948666183583285073712073764159508784002513011608525203890927232553931995659839145392013222765720295399857816767465371959969418921710528325586750093499365145442429257539107464255412705805891424033068518175269397177751103341395061634497167215388947235204373093067581192497606696949608282116448950513383970351834501264341792409999241654848868477812908985501100545417826566909775476301850038104105576882001686509444870743525346302960744823098946183527870443930426577982246508704936376578874034496893883040202454734406834736970539020800716859653114284502184158268390370097377576792883743867342719374330265206715438531014949787062030594385815611833151970352941567502204583994650067069419249581951660621460687398624135134926221008549012751809715486236462426319634540202762205673922727687184089759687090348511156962085974996432560192257937869872882210740158265046605366189858794084425082462358853416306052049845980552910347380961870989905918577232792019701168622161752348223622544107146272280715784995248637811165679679094685790039154655278004299487832305953949804791808220807946600213770824195082132009021366645436539060456223779024386795611319968621911852756583798923172653795261193268802628995343928573901044435528424792709297238860307718550009736822500778735576845714558141633635295405763331920037862631136426249173809081502373666049810802760458762519664081398290861288768466996135610894729882496319215228313591082516366118665451390153111054500630537354619474286889769436605403533932185258052418004291161366524900483499336683377006769480880738239771825460263830303227009234777368521965024693482494262812482526654385288658570059998555647738445426968232075254969469109598335002084357655412900346629040761711510677290597899559137271098697146377586547554197846663535897563688070996365168183740916870234792043679836882525497251725528856959676206659334375751689715358657048789255794017116164229739851019369551239946396927296496671786048643967627913013574087345637240285490676922817820421903376790875100965061759466900514192442441533119013793777817162622278096928714387229566250656102549465420837042363479649866666633026610928413145595343774881317795769552367402640432678399536029759956987584220904627740713572804076168335516162544036452433168622952079229519323988477253092227786913625905030170268096984055587103821470901909118876550778655726445909175524889674509922433147243775605179797944553253779053429780620332053393617252959191309653498773361560958479757377582477144238768442075857968912225832717361851604563168857044046711023185620080935178796206053036489413368609079426972677119918519323450864121924692783441366640647906459680522240159443874390740195345803585882134884339029427783168917566572801851095092468136300395790328594374569264686260695586654688794961332208269707872379875622760705096451265627482185875029969310777824843520983388978190985617159216383810538053297573970957551754366926225296568025435105908317150878020331382097249598462039680839077820989126534259131939324672056943254970051058329011003353486240022213440259183702004430309908345415092569288437303094291328962596130338417460124988241712218087140234916039420376099307427202968549392663955971783792778322345026022574845693574730547592259401795578365168249588527594291149508730130215880564243206545556807601892385958307303229500688564619114508886556601817615902820916112771402577742554743828908427959393874515391033909633602765174277333270224650747390356069346814955807468485910640891566147115697379961298188295891858140250812177805116663345536230722081234818787446826300572666353688368426217423108020875077985451777829762916753725840986886576858574596134883776531576714322797894375046176425040165384844199836059239233247874178782200238961972202298088189149233385521557474529735480190457926042887450087379443566632271545699764622784328598371663606561249514382810624152479226576556713359648806846919609753781629846148930364940064500356606890553196548843615709118774138714423032129768339378926220470181603074962271787392756577806594615506036046835534173836207834982937409096031038164300460282750800806535777713080666901847087858440744388748516059610047573332656682820898813746985500361999721631957135781044767411290510871532274145096642047387379921356063060636360728744235680283095030891591412558181381745685159243038458562788050288434753895124098843621196929846239826502114412012922553996053771862251040515732131253611924695093683155961449425375066102794365243381233271496515483747957054490598752270265040409920737569512413123170973670679557037930130880512311921797554634406217327693748832279753338191892092114763564813917032213346343734267651637612601708818732353872904056166113102653913352428506531036916764328091793885287586491778989265296668708587319175238387535765850022591065176949465386085248222868165968356392135412552458906200988243937579788457371325803124356030012306872306004490909537851817181724573007637144920658429188999711788862949404875212459056065593850708514969121350217454163021713790530060526503414448002337541692077359404440751204345143342784905384056379000539623326950667213450158802022885362555432995657262010284607519083385904968064000263949218762376052870326866803780500513339507056283123199778395701250561173949889644889077852440737989604379215888734791027401260422905770394964724584110869021842479087694457437354267381635966245870362943289067581367036490480665039241189801654771023474411190698945840884728909806375413424202145771815943310408707902127431492391092832367573395102998597625087903118572644975503537006373498941330358669670493984106124543676715566389410698452928884963468750153699764737367603035104759843351574410936887054860804458102364222448156287902690038787789913968293445162821842678841047238058661285841003442611740032286662798027391513477990230262003109376632560029679870726051403183558389251064793370948911968064400886312009424426292313859990170686106512469876190690608450184442156408436296945393022127535020977346575959037455002008293148854620520098069717970806101007591049020273224016501331044681686787397778867086133891239185625652846421891086799723459098456832971438289253867195075240743357353868239638802778951370039577061039861582971513795670848217936350031875082160235054156733282414931335645109705280611740852044268812903339024302385386007257910403186325392290450237194204813666311998843149330258439793292645989928758438076926827667809352985039263796848554875890036223625811671229570928908901810603819092696261314443694316856002782645434393651472713967176976918962943677879482631180157467326122919383151674623852178136770928492679834689085084270697421120428807447853656692500964944134096056640551753900064897975758733483474004875992143469983246886887231036080071100855962290978304351578200402181145957420771057944740220415290818081399254941387510741854286794886707592468623913634896862093906660922190406795064022389686282763254483239819588271828765639497973146168125606348893804879782975235949584504994930176390164416795505756485830937828769903473026794867543184401006037145906132645435993009218986292158815982701804592383307633580876712505855355446073068283065956369604387332773963215916783563675769026759370627232127500178350070992879157559997377296914642601242218510611688812644799831783053739582111856953248854944256899493695277778541627730128173701049042518055186674422834423697505971885818300815500263446470565054950529339725977313207244149485944200618936165444775329119828894414168584087581159030981824586295389383987404051672813770102684859572637687139786094477287174375932065637279408985152296902063830017802793810442712624328666077503715096651973156222464002959401489586340306172280454008428554225044308374862845789363575133516123204701120810555827583759793681984810102718200140036701709225178051829074407749347977934988760201153462689410286650289799947662758832473365482467679375773187007805331072949504821245427615582536756622116358373260503487619298452851510111833650463712039941030761207425817075182528519529499701219616305041359805025998873964506575533636467612732490707436567333140955526605601090747463420935175104192741471204867092129573233751470288363372101639774321205120876629927884888245314984387332042072758852520805639007043578234155670542370370790842578749822480359178206792037851605207454176358862941858919788148628922636733964469059367323913072327126860403028322132949575212971969427105982753415562779345060023601068369862778724256920979923120651495986949340735028557390756071651595955682833301135185647035258901097789797547739497991294171685329495746380195317543205944998134243867284695973870887026474829051228944015251765210320186115053283832172198138731500201507992590352756676378683898489172004113972798067846660248535310339567790954926953271486598528945368512353523178271197662874086755658356584848129329990418438735714541671720585442905579000301466492510008331170580213930958674477773331505580353646801369848053454238599325332730209743453098364035819854272237357392617750463626382829433805416478405661624322490891216327096941067924189919149572497251979041306278724280463501165994158585990895199010651047695421637269809835379881056328846170844667890930964671100269800473854831968036683390391783008931377534361937522804778935546733491653409989225561288751560046083171356440982376785616527066399926106624390144643628055823495012201041139037798824214636846127706533196747454447210987550671588858788221299305231927626562151790363556518041024728736108355993249442177275966826788457440663978147349015904544124557452701254374402718103344141978622111519216626250168119683977405561579021147340831795692839580760962377195243055128904894485724706544651885270553258892285675790265042047666548960777360580653317586162792853765404123702421474172941749001641360036641003285162635845356562526858917425915957117258559009134365644782251634614338560839999665426722589395794802154984599956463386330957264488978777044929359400565797303250608220099407768074986224655829593855858409277343081592156724390871532908807462582463942195703429366795846077785315416712923891358469495425816144907369719929072897183195603944598166045389597484878486520012770739493915538230113591691456026620317371217573151783339137629118068552348197682973449102236190872768457364669555210251527471745297088009392596716365874668317937359327622267891778143931081606160532371983869994655189805509619852885160759180849276815081312350434045987714715541648760156386083141862693991528043987551276785439375709464075233505993056563601396471448428597883680449868504919235931592180740497600600431539354503548845691463980301062307791134311171122403577671679431963949048999592841963688313115349845894082227162344571109942417199704724269104812561564819466071422689857915223698926011285674697518505605298729241121215024081292985715675159084281676176511833130700028862042078493687779266429774320577154258605588699302802096080928210152446382563957247683888789750403642990482465476899482917735381227877602032585308919077496491469797240650747304118048638377845330940878469946783943149896928043660403428758434660336507365284613178519147420297995756411258456804431934378882957876898713849118074769848800936899878415474736345744415252533828859338756441991232888108027581792244937438078624129452491317422348441436171537050400124697232339530764045278125013617649133858495679779905557874631809341726137329555291383921111013975969446708266836554232328166589631467306203507247116247925832259750432755994596564121394594976914787125183064162290966782243988915250876064524765231483819728136948097709506153783624149659580558712921070521822166553748107563272139736129702200739804592900982041409672303730217361051107143301803761869429654958270091490041622198031167928360551918326655290739238883821664045965710893493780883888266330920397165071890117336445544147474498853707542309148253000139895995544306144588388992426133240812684527515685487967719993515309827693021509189189590049708629382104258024167871394910820481783326784638763531986838109263890994850039690774448643173413215022678701726329120755797091885231375973279757702775228792640239634256200218854959410888034257777499919711987406322156162746119390347970942329443499083164501046738617309641231943634903418367317200337424520462888316175921433704687815303698784017869401576628233102746932906265687935508557438811680662222697609961641221216613947912597401599395227070691576866145334293402237097686209458367583562348850904617280882938469031272180583429392097507635397446308997974672801897056988125006625661548535555983473277589367464372358900754940745122723606213851915604991495000976415086992358403552766567664129336120184735463372161545858827982468386230677987624918841554572585104630022085628171797947453881505518232107194716602315640655796486512335188986295202181700887900264356165277356691362298325204811353129220414215734442305660804217192372047689350731466834234401260832128748042656811017210775882594871038821680321219398993541014831469117939007145794185935047682615749101672124703123957075878362199071650397463393017375360275404053158764193209163209444582293316953235070355121225753745223775302227326929556280494796156704691818241541458993653610440529985779910133382811289532039109362089441179826994473589893006234462121712327716009234689134083082271324507793280882211658060626173757822639309359578807754553508031317922469023140694879596120129164765856957419347268355234597391014991085928001496752477953859739999771790022489642914803107364031802003585989551475815197106551729600383472404848491627047059322265494924789723312526292720200685680203503073302565046421133887463941208696937743378454699846189090575817391773899263585325075595273640703725034982552430066267435796998871133951700419980613050039304163767393154442893685127318417018205765067604743906110771291275676369536284288084601502916875873240529769772321519446623637823255000155903393179371662260426453909930415439447618979909491368645445935388767939126923152237281355895593222980065696470111147606527386421210881733067699118088992224047747212080035361827054062609460315106086271850853163011230983054176715821102063106634559172748901405510317874797878697128262100632833731820870208997826317103445484483545703613946117137289290907758632417626575806101222364576149404348551150070774506478473820385622898460079153697114626928605787683024717110268504904456665211366370627452296496985512220350038141445057750656703671660205387918968085236204874173900402427588386328273977751851200654941991324933256898654121721850090215595659920241640987346224438057943541149001376392674400954527193352019975205911158517358405432050437347776614646211071967523763972295707811379614069166322723459796764440678247190252223887351603085404979030900346304736536582669571113064807475537687674478013737486782021512009224755676238152515792237995257592568780242709936183024651800620446310387202101522675928496670393606047506858611062271555565950683978173552155034030454961310648037402525385984736403410648355472128264067295631190161512211007005010626852438526447735089614611514304984747940281441819438459229955335857180268929856605542624545105043608585021325753654330540207107293467462740712264981378348045341831634353957407901615376984888655288154375051654259861519286064031476565875613429767781921580350674278597399357846824127880330958656170536561644835244509314293085343599333924960672769422337885523861880072831012355139416265841372417538889750180551642533751633957946444607003757002528846990288854348139013344888852590065189589104523483592706393864616184580981281727650737450617201428528174548787471587740001034689379079818341460710197918512151694553809913281229529538285187694624427030569630897088543947227718451135811044349423971609134068170744463657901827563758472328773205866810065084893146133134687638070935576305672590918996765618607402969858012807080030753113253510504971048613503425827250279979026797195667937081397289410497921849078308661296035495670432208674383881311576645850168706892343551106026115147070390171880467351549017306603188784250773874996668950697061564478015629968552077603611837384031695617301257150712381729907882730972850623074032289758469352402976542723661495372129559156303915784476353677392356848483249384681263473137943615096049467338974839295184254407984390213826219857655452549361778977910803294589940956905176295325211711077383432070222533014025290311598416855110747837773500296047060495810439934675614094499634412208958843418418578127461069645527468737988511130158809348656518006728460221740994886724300060898481109209143001125300409003642144921823921226993480127303341676890303432649846700117163039308163816817738692977899408350661359835000899989208912935393705538249231767905145434459437789966541226829181476416739949334703877000797499652414720237312930950910493633012172748541189446359411664592431819876779982507607901762153695037335943267847916851948278852107919032991253956193215178738357679688846959455242621402896894045802296806577029243521626187319509967964128777126756944488466413669197326403719062697463756141320690485547291030732949172044482326834258547144164992202176536416629263306945401685254525823002599638459169218068898943369983750040842384179467755927423333853013995242393665669167887028740910654535012110405224072397202202845155052085077335117356890798728798422264831229287243846834854560715372586069145857211093577668009535949570955878803040468120188294498836100994876126869155538801153600003133008256515527199323779893036434799190601743772973432849179584033696512171780323737594643380779738269566412151075755418479256795600251136342719269155174844686831218821914310601511808269655942355008760255446661429134341001106198241693226611516936743622799226662899669810874579387152794152107800147942223266748692175905211920824613535972897607726092939451928544299850645143970139332155028451200360152633447037469226682052344304743201713558058386435844425315003240297328848524892044309350760852145211301542379981395563861400813767111030530407745572681978652329645236468357190082943394888674629327318437597350253458905937702768059482553913037771841415039128835024361637344873125548067147572307648845181973447213430216791730809097075624020239084984276772394517941753142858088982578271652225560031389369917817102694510420995778856234321844507982717739458721123250094016043401885684205466645910057423582247708991514410569355810497285143148967054285582182858249680582941770382431241966238363015252213576285471985970984524566298408696698038636099807997298957246778707813858197557993005257995933722803566688986485857339984100212922541816776775522737988111603065878878137698300149339795179871940061019421197104815577927247679039117664935822789609146614326347568030920954425007673933373778978399989221485432619513867814419526975306934760758896222137972832576960197364881784830814433857689418994959417567683016106300895511747511021732275827128141879287129668501729172882623896983164400495454636300400718848397768392338918759841546067372785617650024824023623180259876431462350729594166852217878270644928140431336807547020533819927589504248594193531360479231064857709741524174002768214363625712793933358121989289448937518774668788795419312360971818939384700770187316706688575313276507599296597754418058351970245759969126124974813434993891608586528824574858525129609171172617914408523528783611697535227297305408846825571712109775944045314148451486713902421544923653797921511926769280849522508119692613050228606743774029244697802527834571465506956287247671688451242060286254888060027761500996974215528148669031493387352941059915352278194947305182590355479785322941390165623173133709060382745270054560458314272730725298480972799749117086954824137621429432353378429481120883618414542354536537049809364856128210320588653949956436432054366684614053728805496432461364751890124683963070009336696559578996218552124923233142186650767822438412872787344735769263176527222439278332478951775549524671196514684017849777328238482564165951108946303275396257406281143949555054502973891006672797650494828840191881937947044290225562642282355845472266582848933435979942710296363886465297890556813010911980034210188526938619402377299883389103916331130954385747506118975557477822005616770395522021626600152068200994650573851885771303611681030300296104276670755241799202622681485950519586013584709310880263416308224347862102921791433249520640150472959399260197902589705156633120317807109255842845184824908213463776547482015870342991142168598376028774457800580783061338132592090051797731260274447706800665152463722676252230454508583433370794434420880088207519925294971448024142109699099058599552422125090052114892292376881668500807959565322406414884785768500635463569268066168451412021105439114358894891188493806724296879944642405212405925328598832236566905017302717892897274436958626330796652669488806941129173253245257779769424942542778294217868721643856783466615086055083931005493759501143404302825653589932537429375607164141608304625360218518886628579817286387485658085706632990280715480960539137548857350148417704951541066065244678395811185953098861527704655563805023225082411750710589960738197580744007717063920385342279800941297194534393330199987238661583343178445556665085601837266309717353844136809120774063750039615000120230674794524843474535341264205646429671340255775748739378335381600945807567222080288142459706607723304226980589476705132012910628691902835149365831449632144709323970941178831674964503515925662611002471284705566393997363404649804160913702492751699421815574759692776095750234988409150965994602459078626458238995031709843488316678042362564978162115689415621423629987365696999729903034738891231827424070021277543028890137249004434430906826489222730467781282990341366114029039909982348392269638084234812071840732936098039750295564728247204702627556662599653007917550802428805253179111443782441602957737741221663639111143870550048586536352950698941533079103820249368004471218584737273203958542523490594792643864070730229454911233389133247969701280843789264674773260123272114679716453438674247758207898781008608128524036140680106362806434847411081186320554452298008880127874127239344682944498078059420258254621545485605514836879524206939405096045044054622776081787342665258346797996443932551587979290693710355069769251629799449704712504802547109255135839015065351613686863026063922613499484576796204187767377169287173056813546511487318233414159201662479563942367838577617403082476281211544995148716705476840396574001592726949555275424112772033844525830457781600406571524309321497536989651293321056156114749309105856703240356924249635511316090356333438532623983941393148229872815418711641446741787927586991765118499479903403550126258109931759054233136054674473899610597569241461406543237124319148702275888064793014500399016893768779306404556059817425646828688433501194305448865364824284862604924336506484616162569836029008187587054092963470728735564493613538765336653033382992260945506375680707500484899451588066005431013098615304376496007038354191821584208342144147924836770150165938869437149427348641353729967897429526479091702141411265616204118109802793805630903342947875469971864406891183302385622631785782134171276403985308075891303238976778106188149269298321196433885990358144349406608945763027694843011906345486220683478041708206698258142909081194378006918674158154323667570266202926486169332286578162680138736157900060505841976170758120592157560215968856077046973681893884310240441313627152232508314647444869159707556385514277456595803291823433070368577710304694450741084792346906091214183015349442114508942582809179497928158977509339099283227545487594715525095049630254469267269306736324953132715226738154384090346172451312527268289046746029548728004393185400030453584442044286184820419470053392657350421949320743485727139722734153113577341686955102096566167272650402035310232546251134965784778184406021084160087289209754353301259217403578109228213232473070699498559576421105820038191713495524493376294310231896459722939088501455012327604858993635752409965453261162213812517568460519371961411685848180699570332465645736731691987853920677435592988734235615479250910516657264394271521417388535261291672701795573693535159848956797007383072238453653117740685281248292414295671573991142286683671154677156578233669004128507542763930101906897451385885428368980670930782405787539634013171379499882177598263228868655148512807746688272728372738084412454942707994680682482694574100700049411603104146903077783065447624605796960848856053221313021250407265390371895059395567337010639116641017431788814178834690058180265358409464455250721731897700223795033341681783940190995687755390592526325549271130121075303934063823627620573141260610812881223421990602705557876595466826589291406719926705151386076714252048426696241134780392880553193772064171994421391275691521260912160110410237392558319953265359786808020814636579161072597436392041840318491694171120848330402805478304383656807833536036375020156612295253829801352997407817914878975871007278123813554122776434824445666461856796013472452623282370941415364078305080450894269690285848427171032351932956555454203668029791572129344672234644513978276025297272822376590147460277164190963427229585002412716871380498082385694686635400778830918010661382298248327619277879681647581472300186045169069430824540925717707656292455778016437686975296860582537943561659004721156144432000711508670661427356269416438419055553733075133570688989408072125985516845996537443827662128341014106770861968664378394741179424092652402967497579390056308211665705658288594999753190167369428391657036132649810905387810769409150034141572331606498201844338106741664428126260037932505950249729426578432847531896824134892002735201002843954600376343749722241440884255146479609808814854201176003427739989074006361307402575826735196517626259480725531162620493073500893907203106172549415947321105709814177294022334411210142854094475601312257086884969194280090628076748034363628632989543474305821462485457772842616838013806256560894749375156575249063594728444993014268977773826707639497671567818904519785632688463372545578802921713496326797611852133195670187299316441656497068189040713332809712710890255816209730602949337000479831012271816846817231134416590190027772836287070700329259290761566935951447296503646213115137337302439164819374294871619473002644093129465817235103076024150908033448164944899451921923731713131998035792669327613287517618190868039210535652415677004038203225033703312274611602117705756550932766915396859453796971213486711673244876056187233853501932143875812321637222855397900965036381603119803365949470774315204805601993848922489033625305602092956855096603210411405131376073212687004225480190483638074608217561741993778451347216772949131047218566695293651167030920802944862406480416484858708952741158124879120624325360199307897931183364990096526859616646128201880206392238168583771447052777208900012624153243808442793715893417127878279771805013002698536682625842562691281632640448720240173440216412428757187737525160675426161619697439367339050475151076294954548659658384964789306935982309085649419339436145188247074967175228166529967252624983565222594851177172400461177574854163712933542183237561840374082125343547642369505875330807043483960080865886656030811548226278476183399621105527005492559079549540492109802524322044402152952211394506712935667741493599136700103824853022637863546289320305323281380799394263696579225280192422974927792572726578021685450778188697485356218891118485371511507809159653831654452612592448818733992133296149736607508354620781730941842334073813342976353199022034333626089965569051706160048703943404139742095906698508633473138960871727023873869366609903969851974773369035032622841406647314710402110365650502632623482458488577943654202992592290412288806874477739033461135060692405794840625113842519907970155720851754606180919258602621186325543797098785263457114608208214836298239702512762854953697767108172120734974399178206414727532956183762106981616195194883993100772367749467015649447435836618800519739292146616531621326817674940329621201370095445993050108959013549318985254616699693886399205710342327847051740895180185038529326922452073328384930669357057736566038205733536232062434112960135805409632884038082699745452723379815958951427479123633637277248086656971422393422764216904381438298218782433929161100332536251152905490913812562387553313792378018177866059910254072462563223907146569729719605064186536591380147861710676127354269935807745048839196504864501109227553732568037830626026917247709533796189540244708817735870047451363593969045736663933373599391751516027757567891718930920704037704687248446982335216490154813794456342245126387922486214701777228485343824575064604990214546712856286983014656418212223188795286661720836913035102618311321449498124187440399152095923861975604689763748444087968222614583872309148653693385567510218926199791887995130022445220275622205405925514678964708903603925567753203429227574014276840660547477219829177875764041280301968778644024734189155985265512445859534937003084289657872885651687350668636660314909846782620541102570129163059973533974707556568798382926269140683196160284659533131855361384947224180694979443236420442319895743512021039765555880478018316948422746324019079486921535127249547752372970583082607368331550020026017684248278898958757134031960660414734311033976986211087629619048128919494647440203711052684021791059597567738441536150393016596124864581490948455548621384607385828350677510455017845147022549145324974164461260913387773021229516531241504244135137990357116879583675369020446110003700950559566929852049460067677294774479289236477469308630372923731140279838791459909590530268143022571685070567696347716131859672230229707305634002278722270562185522420888434755112758194114027186222037611585214319960130894590504401455840950038483146701319156759758170862058648324891829012244443072186951883396497023291243337120150090184985927907515451712399614563627443171500852501288387805473907659664167498052699876179558978644631823326421386436092286098067796712825678053979082480269166542588884288730252769512392209531288421979130372072349895876151109629664287423132452277430442711342332497612593027149583565436025407924593948289493059452924383299584119261574201517418594779695057123308455450477745844548297490959046020764681737574336494301546799310846150895327629268376919076080619648296105078336304896859047057465462527281087676541560822991673545997020033326727917529163529725336366422775800721845702563548614945904254660668055773338148659357209793399810697044471849571076380637337964633480946643330834618116295335665250405134919106783850111582403503699916715080978504362526687202467964475528091429828859789034992946604422466305613662498726475785847576704821154785860034746573650625991753929379645415725973325773863962115234577392001096600796292709065769857869055784904373841597000881451639226562529271897811033907095137443799247102732860696163153209928906152832738815267799260713628620939240849383004974386579006296863800262820398175394768715984394434345808188381262136365932665347871692086693662145041707281070588224644128726917633050458384857054476123224154704462728935382967127282747598982883440635171716720939711620601981312356851439578361734522491449676626193616202153310893731625600059604231948170043791674273207940502983780818284967451906995361035283627293896252403850915924227369944895951624631122826787729404608029673998881826576676753924505957879028729410140366042016096959790138963763149755611491182650545664995937802412775655498811415539925577847709652379290666516532379462103697006230877750630079272565335126026681875012260988349576451102586812685920970093055014453555571284407022595889687537634671095665159043351212481692105155044677902725650537784596174275298328665618538336265696566080544217111947487684844185263773671695869506882277285985892681552978142449856447226981500104024821219103135381485737784333661709840447077658850662324697113757444916111677507770587387246982004587468912225362481709333803641753293982731145505291301644920349086196554951967480725150801570566262500733259023106033111419431747944592622116362839531171289169053668770105088614381857545796867666870013583203858534412069579212409413989818795905789727568690116537030815938768906636938951017120595348167942058859876729520909844473427557235902794563969808698921205903908652790186471041429910372550472597590494336979534135551611631674130783752024859888947949154968541685923704455263570347439518663902396984042211309294567199870709290230990741832695295806890582606805193006269312751588398072524953826784618497415297741158697789524847974386263157719629181827134512918748663404697191994837569365870268051703860237595990986473156088522141916626395224733244989217885561738158558553887642432164534805949235295656138288026598629564247847883964706881767224508440954708290727751666569583173365535333191907700079535655786601726465115922205024938250090481747954551210612619123661554766016260367902166539702121038267588860591246336773493059516271466546365994142916000178495583640136834012565557588763594277220865104600654952183329229841194146472546655736374212305815518614154694618762417070770239113950365931062375612533655804285097514136197407602486314906170068347338975835653878681789413858838964786798717874106231820130811964874947434892073024136440914488099237008163468425548347035190654631355295426599279378918662936598089689499975358171927641573569320368362527506822130663478655934610630067368968826023423852647949352550965484559012958441981624642100165308935793025593434100385405904985337621208602489752825448441751510413798827956270325040293334187112528306153141218507529628607096166617473106120444006716207663442809892469642398712528030404032322400728356238884143946554675139708212314884935930213447895210611200527435946853146410399549175577982804853676291863861428788214778918598545361124538851027411871251132443887702110339109097684490116646096626665864377522092668020713037978874535839636766645746642234509428434810745539964101676852163461226711295960929703536332691915731231064342906158206355281781847593764145789782465609319478476369723015905452956716997447990885382078831873453774509752461642131789596331595930356377362509523097014264696841202515667020282494412944101313358240019838463468013521404529202549220078309393237216971906725284177442076706717125683776743002049915324457431906803117334672039278460426749365452616429076733909064520336112089510584786914560083147027688006935739524605539017298798355681762358653176093736018208415479184461988171434319855716865029549672528933745133909241905355488919249682466640004969629598870930865272101631374572629720969760713702436359036967497598460355801111020657324931069092751747043087508392393022362194670645524156770761082737160200368336939869769690711071970293965281437641171174509740229667606624206652550618499998411310650668494477138623738479595130551021020339756075877621800598652231785350083837108520013258103725018613296747732514928407363223744465605460506061742347564347191784773028193915849528905872047242471084038963867928422560211869063689995676769766605185389401542991677559588230777645255592831335908928497963283433047011954003854266318752895105370103123297778321104442868639425590953662266065795168098755947043274255505202451963711404215087677051487977066484511452136465726683640981474549778018831087371561637876237499724231241804867089610802150463612548292323953092842292998516839300330852381681648071627427654825335200927608118120843500630525131589022448101767404490781978032616548217871916373177110321083411440364458741284141506669638246832888496211277693271800076698750469365440915116272321572983293816382911015851012004149123758204665286085742731592502758264792027584944845509623942202899988838305591318316630351040176691019326568059979741177386523581680555839628904703377391234630437047415972785293597624386574171073146308409699104938242195338265563053230521512798610080610116141344771484857746894606787130174288632703547881121213752676597788688627622719949218933166759206378255211601086486464140223190673193304960876575979441101129014425475111289010892194499494152580814388814788891044735243125335988779881745922148901714613521567484595964996532036128308633278747979575562828782803706593885200573759271113639440192123302221011187308378964607784856139778294783058376823920908087094580529720075857636788371161776116997512019752506243953557974602804695863432028909533129908502497729237527039083639580437621809924913939872898061185015361913031917716146036708574339138346494339023413915169510143034068085608937276680635870500622220863922731818415590957995435165279842762620515873245917796049289728756761995709616015897451701770190214696930224000594952528811196739474444627581821739542909743751336846788518119783227107387293507922129065856870948001830106750100958246661890679817672018881704554957764637088971699356313097786639935548889927740643452237769083038443018658448772642067505969149177812346311361718667319080892152502393407793334288267667099956778821413143005963426783189413466666193758494891442581886495822725499887895457290507283748309515966052532076788246235048629942126575135312660434192580775746829300179884659736811486699726107727285322175841661671040862027661257391168557575808293614271633323513178862601729408504253391811213939382879687620195149409678361814431986778218326882449039464988192446945939369333196088249097911853427997044726342655641139855278666803833852462273067713507283674932551423583150639758863971102066165376708132387446561787206984210235567439017549329258179238867951321219864953381689184228363148631792961338158705094684649413237724846041221403432399107564362352230167811340955816287217051281929369450811590722415646180129274116510654324311473301485928442847650526369641539156684096074278206934156211061898098822010545918202613434067021717789576276315324705196041932338096824862684611676447349335960808114167458047641229440774334646630691766625318524552903016649649416060591005294683084194334211375160271082122383823161593922038515667134003209683154772974174360930876145034727160878450687480946023307435685058262451368624788063386446329390319400452995508891991725585704073020202884077800931086389591579646598823928438947637945931371615754769497613045815305984060477501812179781931638201990133456417565997817752517471269421952764900609635520280914473165837382498986909744860109700566185457027932458253904704244592648471611215833761074964476068793797599678629150653125343781847099268798644903187406483402873324416251806869405618676708921941481018430251601460416600181322606867828305447453682139247856268920750797511589530124442228119776151991914896121325354541139331372709459290144412004137789799923949714946854492606630251651433663592578240371926344037455778716999445867842730292120746418134924852077802670761363026861984704412213245683088618450638857670676621280383088021974374817922615335454378851751015256043110888789054458710005676526126694104389642138633976606289411361086189190797266835547529087675471714922757523062255560875961407878291836802048010432895006389672016198020267173072333045601396077166805663181368457090659284060670640347183592062519131572207131679827037228591032741037530536502797958525548283561381817144791911153104794309829600178920738296644455240499399252585048569220934464195848299131005946004915049725808668287107906196167502994695706276106416289799094259817377889606572465395244248561758975476230603675489845683524955850316361366301813038506002477485361840467432999977832378713541953483763009334833509743345391869083871923880087593397541029226149075401230381348025345669158425468121019703391551517409452502469434548501754763704380633954399443718284785817607718760698742554466185517940933351852434058754286076625091264887787733476966258200728354352998480613459387126250250338608635033588941024276759886103915209999096543973896562116264468202822381458272929641911402827523585218119613148329537754688296129089713007296756136887801558521177538662584541731310830250124874881860241159791926061436140469614831485290598345879498740055651288425944293342257768388617379237094078447683841058123343915164103312727754694858888604446086065247063443476894938014623710491082707950537051089248906480509179196060701235243623651058402264746695724150364888542022091667239291366797526331901806386314875741387922133023213683665014665365941447757849181958638632598937554605253018466618326553555896901482644392495782461291851635604775991326680132952076436915370459835891603410862253875714063064112842300251959504951541784777119410935379774068885377969539387987170170161768481194394905093272109371593546217291744644987334732622892645939602929904539498825958424255423909036372906450463475048153043555473313723731010537128310365159257282965066561695471662868460679295070737318681416014722495908462967222874047978855855638824183849616572741782863042077357613851636919045903972375825970953913757529318522593365672995453230630576600831459409305531586131875457498363725482274290118657850648924946362405979837425762050923819577824766251336667731936291995666820471040634930885714240292638677272997777013095821562132163450140541518987635495700244228305838854462891889762332601272090426026871309906160953176199219723592182438749537681435568847212918762494945821588750312419928287498786506713672406695507981787207795550863233350455920388765246243670087270539581673619520790733138263645960433382230907845007481048482595653828094129002860665407155994409691474125326618726392912885025579981072738258457799173410810075269279962163276823991132402340815919188411787278531232255014026938285175531224688374102736752644703044342900338422941390064086739907171683248959679427398083556952062502123883921194479992118048459795640415038647433310895426231635325798658789633090231793783673243785527321871227011960998042154013197015446560976988261092574952424612062983888525942642402884523374213425109745036213226078846643268485464206268751875510187023189600665448585670290608097278804806606105382618013961298405206845483272088429807761905371426352160004722174275272238696103481013042959175887838599602648835634862619529409865536601759584403680778287153313181282618737447724905157614878489518040681742580171097072001928428856214886695649386008029628976867561555108812314217753845580313992921880559144180758293976785475993906743006836058450883590617007112719660408465815123428976494665222276305866753492753886663310198428153609452475543047153789118992893146272761350125236157563715790358864116239738126000066885460209256104764712358717235381994563643606550807884202554973681817323721207887901492010632359176239229618279434221803032264609779166240094289201644099346206058975122133682160225075723512417532445693690705841000095894302561160181383225649765713321215181591182890170945835090234666127162520495272839806179283117796490674581783940848227250784487190824560343574144353462433840641116212146313718158054498724933129891915778397967899243926520157140229122187130314029906640337344783049658827052314814051272938289945267392012172309176513682627339878352363585759673415745145861419320764755506671188703445596236364051357446353772720586108851985268554705298271083823986596791637834825490600037497644471781022661294749986199397658884596009264501146957958453422715975032686102918825645979832301064408893588368403721713168708135177055513150063274951441143791728455390862495967112227122273565526084254842620781621040005796482061169063893011359861339330611595601121043627990921566456387579485701424929351289094348044557676582026098591050934891970195645578500848351729793321798924739242112889046691718589335739767571586631183252008301979161680205199078385826105608365999029385219572614569082528761191540642241451453576565583548930077429565336860452321920257710588133822349906268515584293233393110227479816590428943903414873719228311336654975746342138679622750252127549619636197501990836390524076453697217792318812844622138972647329657134234501229882007106659333828447049434209409063496717075661413183171765154856171082996923535837426138790310030271955591073216747836758419760478880375445184878607582636019138780737554967099161800537143801222275164940507004477752127419070694703635930526278166233117931224356394044657328765913849713664316515688670380920588748314581022360500189110613518810037315474522157077540272678417224641498378363874126626419881946044488112436716672377020319376464070170509186023855781677741527163248850050570972207979891512383232935138077307737334768585630010581347864685237185221526386004176218836844956299107859516413295710336240883578497543898698632182534257964043941715471005167819969626532784628804143282129794323460035314849780277092596813346162124570999489629092723002904742650820751718871493068970189427292791682055102531604010500032872818956378048678416834683110890362584730613751295456972143434932709489406980975914130127493354338801095070285006009526402147216561800555989329006733797297058546812374908068234358640566286765033773887728685391837276728226423711654775155178169911735700396481593163229680683689339356288922682058350961974140491194876792019368172132237945801094331287069862302823917087872395220449120859805725334675328437950606265707903916073922944464903812168541665975346305261390309707402706599293856443234570220534638995603416451190715783166708457790746852861118187948716326677597603065092443826847040662374385929994535313969222295033809372266656789449943148187652906885357176009282244828053279877478876766559082425955189420947716462925063986707966014811842952558733181583617309233148567547470706009496606013394076476800540541019888862307690179426557566837659946523145184714239602775290714161903383356349355231026083426691297569059959813774024240495821693873401296807963357828586615013286780697535706060012838565585732485066807172469648396540704388491127912680402599211611401452477471224333641340927038541906536113221683228228260832728909036574694394104335172590925732958646124315878607217282278745842408682453921276911809247030277295695198376283578556609859708650856586535677065804373501382406399417354404544188675705847288633771960453029710681255016942792479646818255605264981157441753906066966013374110460910674237615799631174410649140750852158471233466075417490274356363295979316009528208209480042072312599302047785268309752840630907136586028607486172762095849493731306052108745927556835726069992884852985380333561266220828912963910132105766308437531733757604133625456537116366741912829561424806686649859624177869083629918290123024699216342405122785918256470920341433258690944854720546439516036295442377206770376254930122296226393497188544495727721168314756112723732700490904718088569958323811279756275365985218722660481115376251117568576743248026566458540335046908657783275700757259972232009053890812644454007235961182854338278617792714769206324685445015348421775311302237827119165756118837546601923005188217358505866624584764471134238858099464510178392045344547075979854268483421121553035646282188973754462553858596241157544473656069954446409621190571567164140044556235065238032264828915916289241539094246693341733675167033454558658013058888395060680312734446974525878713541317372683212859726395379396055582892455485937633368040747844949956093685438928335981470787562349189439617509746231359326951311359192294135129955686266718972424545799475896178585402782281444278617437248748474450656049239636095882014858895537780941758973703134095919010588295890325355021442488679706884683900333197937207059981750415757807017651707186094982599881673217606476443207538500456525201477652705323784386903109808077184956639297198275729386144179412662784569976413181363937285447378478903091564915089694367071112854086507781368882090296987826348427354808571708427690091927722359912157270556881492048978298187234276592351972024540168799329237999669503653521094989554370358162821676477338391885910799695564309924635890446578947309331720644919248800860198767130544420622150394135090243565756904898789333264054174943965426506524108887287253277760479951124443268297092205432523564191914714899710766426951279257679557840541339958514215549536347259237169696611522852043574288075668658890268694737914929079728925302071636141849856827867926894509210156106422399941876198264209595783062504064368461997718121240380217957019618945599887634847023945424900495346317664150412231225402902586314809422657063296565768868413304664194372538689755564854791916867925955417934563789317754614492188911518697361812911505221768779050699695931758122282391526827166391300823558822121117676604768321597322436861089905484351789031432160505395429717588976568510597665513112856559601630481748627234992253610112790990869784765891330362887739306704278189218894963389231812368467387273178139653497234702085771741618980605267636942131831111083203428495588721593738721421954987450484507630590235572980675415477855889301504513438294024306251491326878764465440244898045281023196978906444271052248837813841954398770522873785752668568119985228123807678994353901024995612165612892221531529211140233058324074513882080171692888936427141326677586950920616082685710203776009965363775534007637952186268199492760740340899679735612011169037213423209935657910420211573143522331069372410190083031548227969626043144308801150069015651017080255237516955246215999059085160670612162961631204854296346299234869819722589215372777088488111778306219915199313630710736246770458745353907346379739267136379003427894638688634398998921265590826188773769959591841323145431796004831561275730528095726608588508194358623326340400381308695975128671489668523068154180936927545652104564924547071862686015822126941172785511306617814055083961704565139414816335658876141019464012554986734586083294686525852444664312635240690892772049970618314738489250940591611848430207278112705924817140722207152009738806860992393792353693148324788118930130231062427786002478529111393440498430299039066298591487407972412433068281596642954988791817864677569580075192288369754773634348690482160929272105113016307322124247547232245081170179308427992445492212610733378545011173665694534454378793479680379682308487548351167322805424348776403668756899627487029234778449601506903784043871745219714734394204692853309342774584825762202313566597049363339514822181751407442659362760452986668485467190620094197313345280397910141847912018363556820529218182235605510170244830803204026550539871992873192028017371042563884878665026974324563513751068817508211525348157540242772977490653086697394352722939251759509292482226467669251483176786825385820904856298656807145053877981497111331537698299568873352330066957219666642130004683113967702133348789967546422281477621746805881142052348307078011051950974058692974075003740321165172490610076689222094507948339806439639986400676998829638906346966862505344935312663347240505963456395449284395721743540090554126845354759112746447195210894914625419773110368356928466116503536243406241356906246017657056900304318290956280981268639351050160008713717104031318190923842258599399185512576879152663765738013390802150475357166969160903317263875326530277180737124034575304382516501854189468000546865489159948090409342723891988281684906552940829936076140080974655167365676549220071091584191824477559461147441209861359395150403285605714329787036697018464014213215016542812407876245357377285019160176418836487844636620433185347527692558303262295425963920660944897623003650899246470327205267864128161327646898769128020455826511734236634987731066681180862164034046145880411050263211283914692358001819697941715920930770510405069453389120492844784993382390276631145563769184206880471819732752613013664239710673432633604408406311748314928448845143599536278714923011392829261065185075482463787287782805024406247343754209892193759977359653815087978823292700496920334928918443636475556554669445971930974833223982821400678997727202393633432839666241192047855810796810702526250372001328228114495657759570534799251343159043668409128753486541250067643600627966657067520629107643949880555398899437221099419271025943237044552255934233144245458824785156786691992813754864470158837169218969378106749961214680284568978808410660565392323376439021741364076429847404407432518750416690523184243638027284542502440450058923663905942580015264764955436478947582418412769622241779350069922560635816449359786959939912195662731752400908510370902642221466200763443666726825610251392271069692162668369732709916696631454694282112091727152973507559356932800612691382027242274649278689458601658619454604903046591093595537407156298005283895553725116326874076286083473778465728040408564301854217293675528620231316444715812867831126946746631937276663419555198565269386914626345111629583844797553054535445481709707126478667347731253553808488150035153045045843569550784634599070757457229240490162427742248043850465683515564497990418602267658344721159455009847172373260321127422050405797151043818944323158650654713019465859764120719878381733479136869953294048356397472780194977017252574713010094673632290005369748364807940277277859767490123816740501086294261740664480744719106160212989530993381266200449546179424989105957796435104553446036136786511487547574553550677653070885219396639760808135240351231488545768727631319408881703519266294324947680064239864777138315204111737796028446504866028139451310533074539170804999976880292510894838446391461557175993474139905353373110382351764314578143874230730848592642299720177746179387123005956893890598533332605037620179476874472426350729832525646059378144459645914113885174983562962537701770952863950032760104668136430454999120942394333854905687422667576162328089849951166856962839646867630603969419159181690669007428122454186735513209681108727947011468361798778287458626006173888736221044907734686443683849002702930499982462444739708076352728222867825092965251051118613448660498790156679965072483206885174769832299787932468581962211577543801081354977718030812236164301887097817790817459255731308663915054189454679606960747761477037816871590741907536813110508417160402217192515650587734824770316698025056956525648887628505446893594153300296005416959954971855215031294673616989067476915005083326723146270736026675666316091271844586649965866480128514259294609032898475828481575858689514894739641539605585905155577325738489502889604263468503326878219954956048243744103452258514212766916573464497980256032492412723265577191241696848728277142752081001916221098354179585942678765800382477445201610731261564371148768783599068702905289402816032812450773878632658120106991171185508908712814824379909517484961466906615712530852920098297162358379596227907964696974242994113789108085674277332283482393519810483621948130517010826977457088155913186890593762918276312059971356937624015940114149354594503209341223759351148597003059924288180918351134659250728581929549647428810095156266651834200357236367698017439367018400355147951833498903003454402110672906158996449951888628461725379424637219626822723692413750008261719743177869255807038876925090998359051723980920378049185142598582334495290673944883998642930952921197003617638384222588683869955249712763800964065418330743365535303711040201621634620562501086122193128432673308323732494423474285079619916879993106649659109249658558289733519198528734010806252101021016599781561760273647635453243590105986441093608650590362246154475748019693171936870275335334860128565835527273051788650863405670699755407906555636249077149369312903984361027675211977340871652485602453833434930656201819481109289249666344699170974409220667386275002661877023197686820748320542845322269722358198308826360348060238257823349217142257965960763267660711909804890343386985347473297475534138458556247173526608760183904587551011642790288114293131015979149562998348741517984740588165930620059280776568518527144172381136750173509744250387315221434429518009014861267665042685690100921279191918746545358527709673531743800802523082126441577236702579733572820162796076448340308902390792728788088699322655601468061372817112099184412943162966600091074955682773325456986326434891100741818323233985550668432876261053373645485413388815690967728495970641350897974602719184816262392316303085489524587288154554799024460891607946947650912750706788595947188303469608117716075524594001518596573156256197896840252458343580949039867197766941883130105208769934704364117155009819060114854786671254169618564231683778809337622568510806557341372808394767643319905567076364411961462598636111809244584614553420283549875705350093144395947073446418811923443461012565759916238019596166367796886409193111130154092170936019887312917039270323654658651694871383119288221541798666459104157038945949299184403026086191916270357603473498250012905163359124527522659895946304313121919490205682450936863607479429724542356214924938712313772425462846523784209858008370364915739981354514976557643997773410310241720094772182374403722741409158706749956454392982445152588336452712100251687798852754919651163261489505360539814622478057122513902316286124572308620566877294273941336107190888295190356492275591815666874699460460991174665537290801531749249433734983005920437774394317851273382564106515971948088683783471845858884933220635376670715644745306802195596791649990431100765921206451222699280852907207821663289588970344586914242993420374782576259443868036093052288118757363808141053364810993848466484255577589463045116828684937766958574166121134356878160141102845370807477478733951405941191285674712950267614801408271159225983035887006857309226738466254625204858605904992325450791359439572809860364216026026821824759126565142569435777325912170526037116870853302025468350402703413284508922687694001203013768485891260151144771759189199844108431031173888920948486388318535500198556809727039732541015133039971122068392710404684178724868523355805553968162441744045389322133911872683431578878044518981738390801223035263048260136454109599329109416498484173424777938979095275024585974834678187453072070084307984888813278170419549829856787592371579292063100741326028091890418876014947002430736335587068308447444046938858828668446400432509180830038749689667532064972204520763414718977508344906811893181155222223612386361587417726210664754441621050043474247845669246314823556741311724802295079305055852727693380753840910572120835311234673830566017815318675318664193555046330273780426358626524821795807734906726213652669013617995618429415084611656382917285984443318152091368877146644978315381096709665249095311285951193180786441738532196635389419338181317088338369149493187896301349787574948050238711589360322954552563336152789664726707575886010946011831301012611141667679260246072759650034410332391467617879523269573783978855534667836836248902413716963845434672810406621790380540446187775530071776094337323237059024151775933881201136397010807774485423937415485992505956164436389876839117319023895076998148423504995548099612913069317332669501719492814238353151710822930387630456053822653999790472262285539696572780574336607953948222938590118008713205435454760954046344563277118435178806536484460923129061188932692582386434922069586640047965203655830411696099733920760166031466305621649914212514167947916471999923433478408615623497470722580808828752721204100452654723430850248878711588589753566727556068190661787136411294302305011829040007316660474063320539487306542026034056550824987942994951866968448199573403662528841093932460654404925665576852046501031095915287148520102631026173404196240941091006749679828677849725005614708560605560129728142758692762693453404886893847805690612583378464178942473037604361961017605473909304304650332082380080103306444740690915161837989397057605446393588078061262306755069450757680259592982173072597442401473313382038731694001789776555464756890592287641379690463476328415868713918777110390806186428609414413186758795337280921329594817463501625648193250706003388541915700994770881456682622737477493745929817177360731423347263938455803302684233463328647968703477723387885337196043797792409052734625488919222483103942598703010392478307383238567569658511522563136472429251249390871979778709642883654397029821528873459285330584227699436289235135908373283826194369809774678855137638997049250893664867958958926290908264580280137741108217324571015573687354777071097843039289200599934199932973216230272671817293219556657064535729406074958109046693172944678021581420503315729326728213179009124827469441619713909397147286962075632398243634364940540412244379686562673770860635036463765749149806536854677133722187499263343846064898486031272811828333350503396376156124002521048675587501753785077351702472365852601227590182414812324213378192081910507962397552502641571114228630962161238694503905232241514145490980128945268362330023187054681517803601878023426498238593778733104098921646927902177854368450762104503933992939610593605429900179719207322397225235380988718156017842870149890318642371400942894770689386497346361359678960504647750292732963225858497658359846974110352604471900990169721106376098745307993291652955160794774435240050083474587970257301946309267912112323926859809722357563048372706614942244185739914539859575378048901596054641470438546955697037623003172814295945326709432140287984432629850361574878055207291009151605764522631974391315825839183136743530131197333526727293559825151104551593700185283232024141370817483741511309382093816863394258225088405327808700145164400244213713863802209031150720922076407760425728972288159621151589468337611932666569457289270381639535908966804643570531472645639057632845440090094154729829392169983758270347202641688766664681667045081486045793858369298251077929749303926274008698058645305476213109365286630836524183707680174912142085840290522418496023083609511164973667118095406926503171858167238005460448943314037024060603848144872951286572538552581662255851325985335699076561350403005847413923366805052550858524789015117572151624978975992106155018511065294227434884585388948792319339691184638456215472233540205915363253023079238633508140529702337232261778534425458238168396457253060221123670846086537873026228347142692614517407859940151029006724311700170320722090466825565327534927227797051650331582181887649572616191957967119658192311276864188647925859369669414369180155783894591203374227197688364158805108607002826328129836857589242148048068469413082945908514252461550995004751517575206117381447594001869125160724176267174553530789149621863985683451141757655876577811201345063290228521446906099450388366603051573474810429846387530561013693791750928451497665158542611474386514470019456839461613157774782266406061432720764478021680401648759679261492049603245841843459780023329956338595386397335237640282350100474972475159775605094485375355485505802503978996712089340592921588469227294316309186169901422308087701553366388989197300779979401199811356415204755867245575678552772483045697113971762328387784620439933498600653428150074325343223433131575796523616090608422734790428407864479643080647324902753506894095832290454339214776263881647112330042836262065593600762987416536793889759821558814578549472127011175592181253262918064345202079872372467203080060142439887160943686966896455509296512802047771387155865497711831044277623020265847255109466928093708372919751893981577469786676225114561479148132110632411010409013750269946728984057852864761619282791790671197574261947875537042094321370667927177617959143379197824450153045633594944078957628095961139431645115090309526664405884827928109563139076424900822099777260579259146402310101101378632243283612836196872442637057792606224811499000381152714913460780267185332185133054691941951133196970153908522995054633149292180977516074964327692158857632525672625506667858547348447852113279539592044454822811153438341794969485996167806963357489794236883439271309136392899188836836423107327969349895206003739177978125826824965936532371753643702926333493990502023781091042900734159102945051921098852744375337278814665851793442122108546419624732048963258890124692345684872333387291514590779617923797651650060154550299779562572374804092933152310799224852734327413774132827573196815527482526104267737029656601043352100618792976894793836615515564011709619084455964746834943046535275311709453881068567508468505358271010661293910119958689893822528174958334883065908669547029844557477844341673034955286011678534011648339764939291348898425223450824869229353088087712637230681041339332989512203346247359724983898748033594330116498167081518898765110850488378858824465986110611972150504176970759612393442391763945113329579428964135816244401766205944368896129917265600293153671253079775289676375398860733070071495717126465484779776805655930127516615507920349766150710293036598080095170133880288552057281792032431182687333572741947069928494782832461268076254183490293010479085725089683167076235188906801236892378056297925584368189768202129388736119451309119501262487078574259404644858086505590383408018671860741770306996930912772563545331611076244439092047603713337132386753938214601856780616375381124070128285090529425517125361394213079665809366642659939143711463075147185461484637182661639926568229143703237330283417283463935887815607524457923847869089092377128072446970027626562069669387608471245294348620980809623020680855275578660991625071129016537194384718279211061634438885200648701734618984293311597439495698284204450057877814118735441448275853875664190936828056389378555105469318960231177475215420115917279682800784370909804424512499705938487563589463522932894777855708990960061309335539152313565420326411307339460740412575247822886505629225516614908742295362279337879940474231641961021980880917368766767094524120439484443228279271672460439105098963843293558787225210729405228223950492060552353202397920884096150626337481226847948592052980361259636611081743116536771466514224973639814356470079626313493243936536545485808127091882790865325619930814880835468494323719962779208065366837364471582973678808116501695452842189170138949306999370977662113038038683558534044667594890098343993545358518148728288130688831217501089546040739419242601927735290999271953025591058990644424323555591553712536233297744487064195588858295201334756344118257429504115298359582126528362789917920394224924041979376166843800593448461720450062746972939484285959973296096562097506700126432598837233671620545846861181891201321049426328692989041512662668707344423201636460227819332278920215306348116986231819650076320397611506550190943467979180652283478012207187461404625030585329826963930450587081235554519696670191244523527201555236973487084639391438981020866740307858856931402729490912564740674738998616004610188629980985837036672407039421849831231470229878765661888423337196290583477166016369609535482141850332807887346122704618222946808159522723238207887240227999915696052099539349899649950931961763364059978604005637077804206704755885023266596724038727430470081042340777327606085924828251062654027738488781979431792424557133030344664571272473298167784332907468065078450340166480072355487990726366872938996013731818550371395892560512099271442097570781174202585956935351116845641082186702703908998984526205940214086503326802379640403881346065552424446955300687131402184597608968791579464953656501936828690777204686789622302247076989094903552465600757272627480677686138757924380567086359684679435027309486201325316290954533902437834773086050893052295521936837390718307329820101976105428054654152906529224803922825378376461708030303099409596859664339021447138332335632404570005361931041338535433757339854878075893860739220222655620697099694585024023813140411412736210282678810995917290113994701435865204022950827234871031051758387748145568013401819417611596369224812232684121475401261134699950075227922748952197552611325277470548155795797700634964637026460088533192479562708806807025414630123304163480593038657131786876068582501474093172781518902491497762029470578293739423643258344475056089130383254373601161377617745517681472458269825517175502181548315737104930749410027453356605552850056850777383610798367114338793716717856935177095027767028794136898045252323545137627898349471437442590828816260375450743494599473857995172745569695785554945883884406579405608248568031809864911512995301653280559731411396024587925663773599896592920767453290900350000943284845691598164901302403130990809388841147271997251243673637541664188433395871953938727216997156477346361315265777642310689477289841169988527831327506130730528375974606529121763384169141135205693619335814225449317352729777219242711463756249032277115953039388684604546077992967709802666818200072335995638769772302812849510294400078726875611201325005790471594522818001575388593868286348297249850384277492712713819757853087148857513533127261123832936110700310631370656286391118560008659738790233030340559468052057901420684898842947176354583894792212754939328396198072804856005781051531115502306045141072367711134236962554774069391811175441531446704553888727810608917690582976950551958832266278632972948711933265153070042542888372226797142355799150691038086868023442368469713059453357479889531115834304582509646993926119622720990033368652732674630416080569954901577180789117129931566998364176164855075672485456228891392937089782633982049996158082920540706857897669957745450086693118218375843051413780723023718089363659382918465919481454623489521991743938061796491803127318586690133608872313450222068589982881379824887034749005533315583258408892186834309401154893964186103073974227134755176649747370521033894375856163367228057662720317648363127165951625033500470369226444245483424567150764239831064719945277809276319663446066057295420258521868942467497094926161673916243991257460791290105839546138455215656513709160540360861547206697812994907732200567763062621257904985659577171253924585971102958121927035736460248363863455176511568121816533718958836548438657002871700807702268458668175959416447818608833941716657549977919820076361001511135238229267335138372691553383314454795485297048534560501970010652478844919284509327028295451037402643329633112970643763963612956385525157777231445936303299433772114292082235903796431911410061149936113615004745935523285426338315845442046608973152747335576014925582158646863596071708578014549198635317238542958056620110541223656678191653313264107987268927981215511685583657309171561611502208036293547510405081696485753014153058061376620255745130876335290333783728247377723582357366474956187153200874356811314094786921328281120954246502005701088791131701856736786740117889273084294997999847095815563883465374410196965083988495348469969367876694439480782084503583968020651400605543002779156084540463396426377051851483495887725394837361054046944933925993312651657813574804150485728094246698238818193195850750924277628116089242919195051847499326618450099244336699686577514180471592299274599606349279963478374217112755007252773879423506717743976082108625822381087094144596607583405391937937603739336519119160543922972275007653029673097704753694356460438972422759198639911116989130387812893411579351941830178708959162123520940054489475838910026389808902549725147619727090128361362001105317667097796884003394171208343050757801185781628791579214943960360024064990149833433718195642114570711040093895529992273338126551596932595585145211749072824412699242356359331665366776168147527251000355355091599993178922203598654389520769682914447585621435601113091840736341322905099114588008611748484872267398338584722023588032441169394581739178177677562762045654861471825032909904909927252209618896871339547836022789143608154683512100947308822186324430285687520873820469277888935702936395154430488009500847665272814329308453104110391272741120137504236865828500063177615217618296703013590131317305752504017570792412843800186983609407569786068862448700125906584201243985377924126448225825725696748857292154568985893337029195934450544452910230911884370387301286185765517890355812169403541326721470582689510012370075629889073850896714005627323169432056787231067881781592286160153662653427098633983403328349215455218404473686003357316315939106972774139671814659177859474851117223402559062186697947505341455254579479454188292233874470695788270039096667910509230234895727794335590693221537317961669128882121287657551499970122949950674326343645569806006771663829401623731193527192830666448732708246766744720545078039326440759474300789176977788719261875963966567098737637254955866531735263670923903185367107119098658202801335676195770901471141706113191679198636393069554016041470159683765964542281278710287257980181460059277307206731090533941129719527438556020934050074117145866030219747109910619924426794844060814116250967161778236122841648906906771796885602959263618827357225447335262286466261028454120413485904938012640514942684470100598899033470399578758082779933416024272933602729636929868256373278843423781560009264099306271138758845311104124038288395354351872653355120112378243190700113511087412366847842438658958661951940885064992760532702161799418194086835284827626753893503033887250771814428401191240940399312471471955247614031171450364843138136636927905041514997674312215699602284836193105782098658836729552739761623253536723654734238564192825679097639939025354706827643837865851208401431751318726620698320481425311976189991014380843849931146595385096649360742598330508587942891394435602536677036050241423822344280737175389024043784250086440671795320091116527365000770458802423366338697292898590635729019874116288295038593826752645621946666807746771215669589144938519329156953732195998534701121572368518491669799558381398982070186370975366610511608309195665042686105038617724442309194366653049848586035359685899042893877400424490852701654736251763651188151187624833068737553769030235506344365139652626474845613844027999611632237705304840505617852167721044055739306761134181357572640078232972437465606640927599766404183090900882712909160335581439683814911055781799108177215933425558886396343817449477487235085245054889229667708035350108037474438614484004983168128543508459749501025237192372703679596279096448848069612359640722636859760643354270690664922946165222585109922957691910855896371346672992351355642400603620416289231214292389666401388847033000677377876296871758853797659534008996531807920262038698544745212284958933863848174908514536395185351707164166978555062626362936950428126597399673583667504282621360290511583764489951782630992829040082090635447116644261784379823217569268226207251414581528647804518026795093709710115844950095552130995842705930798866131549166173003402449192468331904153653474266509914746874499218898935631594112374496590362548005725306757545268926642498301081366918424587719086903566012442324957902339908643171720214836854770810185398031347939403559459603018656324822057646118336473820655296049508528587404436673273321841517624445956392503176041932610262801705616174724143252985528533156573207615521349777788757791747056308383268032323503783548668300866422470843748343549109787910588833428844604580762646279013640127915716378489347203079708123240026965158873700110664284261830266057160091113553836633782075852181468908970705334930215180685333726234654114621654347481752687062880220534862337838401243705189601962021115830427343645618817353629879149183333080229704147561681104844096545183790745756660136720881398795267870928680546982896148605236760000633094320546680465135008965403762016772248258312443896415340664767514808874273056777906497779760429576530426283784048533738451496568506625516264656967846507281025895749094983689686796080118256623743803500545806902351819173515306743435530722900226799913291746496793449072707167111355916488210882922201193551398070248371185050515717481968019191213071451719716619486811251880329101489018972439295038314680735631881297690975064593136369071798948265788290999810526685420603099386477140973892498946175686746068591355284377556444540459687112636913142811114215356011452905928787362667760338089984405212368326798491456971301258239627315869250407187446899012024830718336601153758090432412327863065273462378770041160277138532367022592548463564622187688852550721164863169607353440831686181299534961778377986172370991098936723579952570327484319270900065156611989886910194265287370959241937018448242253722113277590296983517171816814115996925118980991622833704391548297903175710585737102062445312489900276305537967764366049985778018380883739307696275827795276809063428134341766929703144574449129662726689281342949083483401562168064033909110797973305007917374764207633706393844486935591164270571072375036695811092439614791383001885121562835140111433939349471786753008962275233792527023097353875766826931421805198432534977612069254744821529712273870194180824909722796909273307044361627132467510047356002362035261787260904188269283475732768032948984736907878490390741186456377195911804927882707306493532757291175561198756267744128365005636736888303215768626691914410014388048575409475589522566889661443087804033509480073306450577977190170678964875155100650855103680977697046623059880575521966042226208708819284424726402486861167239276049420166136394763916891674670065219826639659449201532386667874894705406997048590074840290511830572423021322066841342431236693164891818459631800236931773256696043730199452391243233104010264509250292868175574494515226556639134758562955298628605211928086984170963490763783218373507447905781371844387257620511915785071111185137086386335188026394953522208152913868293345403753872368348790609361155681948536252014668167240097293872607938877756391571014874923586047572100122002337754306484430684399117037719488600105608912405471449098298262949481860468173315050875401500380325525558421612063181687761385906650586787853591151788913044460877101620549423395162819479505416061940596989731496076681909624367083312587645883616160784226861039501380437880704515054560714089017543819341445933343383563416480558614424473862621960133307655960516779941843090362956772254476229821157478555471755405239618730315389429210599935547460248874749798300874113104092516643476132923439677215982043180672228135349029799798223426823813180082329996634093348231786074530297276160911423203796247461549787081169069662240938849879480411316580561203155429595176364243982849939637645747502483741960056449727943288189675387830628336723979242416137404641512928892145482238505772724515536356815754502323995155186563073913982834474760505562054989920809681955402280762775564868649148385868780792151683925293148611849140620916919056460660392799628585959548258672387709366482276579485861158658465504210782092026243766724658775663439045369701876236084392547961972637200034641200701744352901454502532490671147084467720596935850452606166069975201799831635861096283319776633275303791514184886456373136322235765446289572456587461526047282372996900506200577851746489828627335328717669198722108608232634577031822447265074968334635285189743720931131356265613459915724211544230988086769483060647715298726784879076870964621894105636347935956799390681957448320120425480705203943357960733430853678178856178104116997195831878058441663003196141253556877572298510664744309567452087330032726153551422541464556271159981403662593104119775310762632240040089170963491131015347834225772514675263263032735635416621660272292308604579763866457271796982091088375518212279451314594494624826636221382282777472460349062230844736368351127392640440940506045831974972426492545151844570373687804557827810135062471085858800469143774230969837156799321452391838815868508202612516021658386899949145094794121613596734762949665402094514776204439373525176118449907999317866980742636625492120959576675888756504695695372124721685140492312935279465174370677050914321546846919350281018272899874594444219329071053693997160734066897533502398282472905561418257314222632703039340381524637753336048324207857664409110653371052465332104562846465716251760461520903443291146147958526774580496450508921197999487584438325032031039995121247146893000378433417149323762969137006230385401780059563586176888578694303655150965078014634016207692732834855878020248009573027692860126095020535090490605270961236982321290165443168899975263602102060472444454728674552582724377457270978493913448398712741327939138725216754121881689987490867114497332826204362823083600048621507899409766240153777179460839682185333599143137073430066778960379600118029270300156321368911991226077952600661602725055114659342564085630652856791280549885637852098338556287599220495152646997169679978885846558255851370684451812109747585164850567967204809809817670289304089508735232207088238420855711888654386459119014913366507474034549592273706458967824564419894051748033828245798928487776553813577302917165492484206930744505997685706151526692786949243274995018565670183007917494343748308245440551597392910443480161844179436608188661867862412093129259072291753719141800966188448691596833519828040219650659038446799397922491395550460875286907789720252326794533234062726166620398212616271408610802466068398630005996179206775685333753962794485514334983150461452237983920587082300014668370949840113236155736695924114616628698045256294677560419309070422449672523893540724330832763807326841627960383346764555580124009291646666273002288454988451138292074056643851644950591350251277747654085481081397755321688157700171736656233682435991662252267728184772311657159474033110393326898532123614148265109806582527906804571678141875965202939963936754311167555112157221368213288831423710447240608065013095302741740074145082044050954773352308661841278651465394100056086828187907339243512036510745065067904491510245641424627923082356878085528476012054351415537424959136300710938436293156551926298343524265220870533729077809457480805192684932565707732139478643821375158237107604613301767151679886698677234471119934160134706786723164343440945923708058114113385640631816887557303002396995670925950230977629994792841403679185416352345644291307154883550937973525440892603895924981441780038716978357056389351588150584854774143986015930837910361070146704501957728550459862583426973563435338464166489739645523459772659880020149460108104099986136061879783045680530098530415926904228460481042698027413090106328595414357206697310793689761562166204467954588121531582549925294567250629361144114430528042193564558632636859053106284457668474437006719586742803441235412115036485795319473408273910501323350050555934605481682606710798020875019899937274804039848977251336634954333547093127587601180340824111165185662488070101949182465053598802302307452327418771582771617065133945586142972647153393562008403474462518959318953946323221968065523554258562940780198056983491133700865583942441744178204438416289384966030611272379673571142415139347390829253411746659372037274867404644723027936513617537274954404651536829802768236531134225683514551211279938412904255161920735626550304794776741147926961393265779060247143249883746691087416274787340678979940396899636272685779092247423743866927611296420584521360729351034790980101961608170940658906557081462799224179664123490129547832365122957890492713089074743347192787754726653650554418232086296516357742583561916402412477317616749154580653198447079373161868604419369357866087664583345517999533573747438437606555994197270966947985244151002167877802411706930864966882900078083972328450318718443205079023329393505467685495900978231164337446506545474111836512844959289142916373032934979213044971499439887453847602131321306287667754875715199610073773626969649741748822326018360490578144055830991474383371836138899143253269771358851198786003497606171265341667037857994668480696470763251856376395950846033123439215548003921641591787960540642299215078498311698006115140919103504267636965963632116298323855509073569428554184408848793142304281431648609456496281197757106108798143986723867807286565595727215795855626180876777151805832764170965430165288116412881450346963955712467716405895143380201039441392875648274970753762259495192072411397132798307835260054279994653602552584297570112220923716838999928100788435573958998304241901859919420349993159892773868394565021198955285995969194694681955600100903932493710180557265610839014464994432036935807741442367382320011075130815798222658657031454160741704034413706165942104294695162159273679606923037340906910368508223098494305994647028155038534976829015691876258673174225752945018839062143021263448965159734150841239908636644121601373987517006556048417254635954928763204883597180628282907365591054542410117020549982779062020136817850726739172591467947055295161429256203626846809838284564151731863940116578138628788901760384219971745292623963713475628398859575037898385583885172447489525201053416426158983441454064450534261996353872717324000986309269297068427188406553507363106963390476112979224784548925387077659374659158182291374672596526181064414023491409507970628591167957364506879380322509458618508413395784366116652009995087503659026998564237872577519701711612094995622094524712150515945492904705108052653694315255651501519261698186762248124079673108488767360215216715355284749495343548502400773793834848339698687499770950485879930662554348747635668985498523543486686000699742633720743392056280528450516035887701921049050430975825277591142225130551900369632868316169234955967870051495680881069991834064727004802726698761606937130363360674562947422125135580948598964779737958563634225189322821221645349192012848031990418991524029641433334485096043524050434252976091965453400798755676560172222065780686670603089323057263902895017787225672807243417327455557270912534636407817615481899801219746256383456378226956394344918693404448630662362842865749209694410643862993958431778650110181682941095346804031568316274396403171750822844630943552139795460878790306514455529963818895669086352046261939511728753413957096516016360136600796536883358851846290308736802736956148997940582230643829839428988285016973492219688789095681707099120520819110741339998936575924252949341729809951081517617267123078188936611377340286838948686849719620967430180091870816691865848723728306955152788099802933466183397499060453676322969166060225504363366253003326055870706049029309255917145696440616923506973690924299192157356609487075429733265282819654754672565645705654102780698575352569768303192779194554889134771987385859245362871579196646105188339289894236450529936473855836922896685087916929618436491288173962119499047226034047899200944371897538393458329069674695151836601024510767064611730630993605563518050053996148797553316440460753169394042186584645374069444809633790853863402842129085377287877830544050660703112442319291889504121200543191821950646971351019838765535222683923561659625199425601979576330917826068791082193805714481403563291646084437165881282980754562354667295061065153940476155492649978386260967847093430922396824922648812030259970051044449305616337572268151709127287259722420024575096918887640203530418246632664201289825171029906425079318396090281296803183299529728844838223055575565696211800390486132853041809988358577020058031370149626303268403185164406093691483251502246296705367820015560164828350234469101432162998578561993732057305998245212901302949133153422539258543147572140238843326450138509044466462738236962349384259285223256798446991955159584863881144908672185357451813127653185273168212392710217171783443361475752742869891647573846771470759538433405479340031106628625609842207624928131068380188402982865613449970144967000134613830430461603212678500557109845269069057494054703525487335113518672099132681453442836161036577902770184947229345719418067797399654690188457101632334472522425154634731367501424032804422644508744502117495975393051666966642842123930272752894529889465433497049838185957353640260318730361741164923696388678646202820245718016097792602647595731974979848930767836742469531383605924055778859407689286225324635091749797730955083710655782106297361504081224820986368232117758109897270462585607470259430240146909855842846032861181523395999057482586266883466068420709423356681562130543060317356164800698446060690306234435698402733987729216146645618008502776822806650113546016049123675620395312102543409414331855130268079473968327327514468195849672569306594404810120104440005838082333987827626040253157345311393773231160085647176123632372014822559213132499877140054656863282522639866060463249131630693866788026988630530844063874081353370951545977556140422392868623403032957480057534904265733988982057860298283939182569763586232604397401878091722200266654123432803003707450907705185438302011665461627158670869243331153650905309975898417208039620800461132327895766196979662738513535233843768759492714317586666710964986572843029262341444378289406377557042492573092921813876825506115074700027538266128949063636294504147032734125277947805336893875599751835769322924446378997350209774868247092369311068065575620938235190358480035863799738777346024912225245596489232027536170713342167231875807905479425417339572114948998996603890807192006525178493949920571466020885756095527157264152705913411146310657105061374759749111422918250661504267708141065978807595847654834075546650660536199268998337282521573892357544042485815003548153931492284402716905811569500662450410283088761380477644439305500011550265176629229470102282415241235492689483171178755964716747576007453220940655089212426972055903394022195460114756893363263312306708789359536811536037917147345267165387763772993725664661839167849842308323055522179662718132967928249584719471997873676433103335225962824490919827624857078831950806598790581616213382122091843541610081237957225423954043535027660468240025272149361393971422581591925447554702044052057400193062668046361294893264683695429653945164666255798378097614613737893170005910629008461936053418168484568742914218845735426886092515214747742275656852520925233592024504991694160574507733131368236615180934163157854587006789391069224113829378433112286374944338279063695131016693343945087083474253952024391703270106524708221790419813157983231963879664768416595512098730005313600655585629048690794955931774702796656358492928805625007182239200457541115406287311632821171716797938412468010435836530497695103741383011304664806431935005187013066218758134465302387857589029087286285899174553858369325811931700343625133935358583602738036638284616817102010497921464818452625627008049800100299001515055028437447875692581948464242605708447157991153642237185673134753553086879675388624771293240194042079361289312442353083900021888021117542995909220825493557308624722567260501863895663103835937354226394665350012435232074985396577657262861660312538232673139787186051335236230605541035324201519827729263626013903902353586897975809412413785312502369230475457854193184166213146216785247785764533533367446631397702359890133499045217488283454665898502907588626477303667097470164192285801875646823937958271854258365793094741523339297368511505933410007346074757052559050811939096327085552315658776730264776838754306419019280897617019759244571075905636874425948647281487557028065837836989813174768853238795911379392064953863957378666416123100550887015446329283324672583677620637409347317467228537750357559197447975749409536778100588220010371542622331557222954131131468201843396787400736318883879209197096147876184304206533797266496653239702267824245934972596983528491275358344627884964925103453564909734463713327391930375581024492840345071073121430571631542709327866187829440613758685120908293202632158259173297239781762275330332219847878642529594183928762753743106490862342836990622309032528121411285433493041747786234383144884864346818326891291057260504674224708369054816052444727857234018817639672211448937432599149751625632915705558968839267508026271453902242584527800232698010313982470467019124183431755206284573975469758689488824657377025758594718246854501887620585442081950946492603406620434457606940370612541685533237563420050270991457440474880282625320271177426174905436616323896221046491881477915902983181424688013864313941205916352078267300652130222803974678370419526536638230938424803548643836893503764339200184430881309310524384075005585772929171693123518757263728691599797672357899529496215173520772053958884117085685113460612141689308429352393349830126139620671547045225743982498735346862991186613622391447683960755671737752639493978443285991973213167931962790586816839764617582618337951187714150563286423855010294238314612952705056630951516964354333453586642020135189957426756255042046153186399434330196716158681197685658442086370074058317029447840109550010000292577690572036660865099178258593011801622013228505555912390638317532015168036374519227142632054359096890812607913297642638888078445798600145095039801538135565372718052384273158388523745953344025511559758571500989500777403789597568023108195873202961211738745919558723114635920528108938247345491089979792975285735589778094632754209010835542692111141820979733297877302689042478516212739841081006818724961175526510520895814446465786877087274513812170339744400980647751502717103340122849204964630535076232537943016415485031511162251879975371939456155729763069008397382579899596165679808905569261354493227684653492031413497949446296656934497735198343472235525331448443944282987738636224522528157582195012342012968209194886442692329160545109716077216914465525658624884294597743406770929545242439175869457910640078968152172120637249649994664183719624900868118530856776255956971834460179042125188276090438397362097845469806186650243255585979151119852832111875099593810619345746117623338724508725754038199097956230435698671516818898728800820313345038452180428547752297570984585313592239115842292490681911428108899119492415840517919528766655329434593573609676274019643837511437257851484865892819200454030298854577518548033740813845948757220014635253374476433744118153619736823787206649129259516480890206239368168253512576658177021707134824112939909108156170876267698904184919072482555029283860360275119582724827206701760340660705818932714034406492782520422127806959823024114174040543886396857250136258800784046412009838361850313456391369784194692247990764736594480829932597643283864613840248181268432463016821863100173274540306098868845312912001777876214977029305699410983680505065614602983176606885244780474314281821168275673235589360051509356562808882085698171593551951445043705567337599521769726270426193828493086221619110946672476354487998579333890680051999695644169331387565448542208220373237802406799057522210245600916360189075194516531619786791148383109548513779765468308785482024019963923215794316945897700680416330410172041706593411198158672099749449819725176493741512562887863199273997082293388974302867958686680211001081900337801699844183925686707408707671009086822916870989083764452805574851411569961360610340162325895868676791277771953343167257957060163017597503544873123227783680446565885324259126050647087991026602960872980252503043659741695849846051036458930826857917926321094361703213118208259562015600989912044708000898869251520692751273402430393291404297523518870771441568836268469611235976567187183469361960274689805470554916650417941621093437908323440845594641741927400491284631127342460431099407931630174664256579455931073719739062282718254516807650819820370350777445137283322931661932015369776778080208915306881505857118006200643993011879364407385060210577773748430790635491289580231164656627450617255703734826507740365376362711812962832039844507781836791346189287635391057926540725439587936882642313711983416744742057166273811039152782940295311375454448271120840475209258630433492984497976097665735846104325752724660979689913106160953080803771713392657467095959048082288665154125082737989646156540624295718832661739491291049375565192004441156284790479588605878088234480164598994451719417866846740578228008950278070295970091373309297677482552116101578453239216184975500017438145763709552886175470336549187928127775151292179216519651024357740958083378317006167450800546534807132587363320609561073443033804973465051034494045344189657091630783384809573837676105458551640150415528084333424955185899920911894152042552673346885606656263649743029131162751427105584847309513383807388249616660980937722329270660815587694122379949009457240192612309977101262621406602819263689519546750262090589398832343445725000699444539359229120086463203330866600611493614519597406655745835503221130574268211278637710908839737719936852464717254399870180731960654939726991534385486754872912792248884308736381613633119406911393965676337076060809647232881577643244307107749966882371860279208643492264023977535575597121644014762508299424278228076498876456023968741460738303705332657933432385176651417579278433069441614616387360192800777803714889900978015605859725183381199832257524805256144074775529123162015562683815797141186138754553447739302929678243482018195630880238595596567888828558592627383208794333548917232014802405070751319593058242189673535942315801355454592058929056174733802742048190973353001686084491135311009123378536085541078017661836489094789249068638123807218328568272767564877713788756778140625016156062187264274501108294149620671326932180941069549097175239720440236565154696151884047592199342024834910511782402638195279728876640002648009765293275637661947409817246806087778853664481841007165404075639895025479328173591025907002857257837931980116141869706196402847964584818618141670636288874221562773802995647312281470802329625190977380093779219151988752828894809717779557290561877083926465700320820412400042294822213152909929110161577160656942406613130308969261301990726439296095652806510111450813098955576356204407404675787624438750451195381929105355116638130499857526813783743068969039612156192327180393614640562503004845171239094833940458018640439616779366199524798271380490698183821537387875073453639900872789726049140240557935293671194449883232997909358225869681013497458760823069010011401874965154082402311344600251682602728900478733105244100001656719680123656651281333004728855678804074845505021121656627339571634785348866918370294988211084485277776966217100415856025156024510685369289829412143443244585037301308317804516314349623771326208477111496945595397969337067090440881755811092416617967194080847412562054751844580662368400628907041879643949146448201202222825140564215018516329882226837796650404435817689559552900230898569062645331025891856656883706732898903043935459401803365300312741442194532581763009135094315995090019154411564917398716491547477643594006813946344586943571602374338740439577191008299885100858109782672400666560348938934888170898156582522519621935362819106820808414776071564929936658203391005642302963361656546747066864317904542806464949119485807888875009218833393910488982471908925710829043101122718468408436340990455460439782920672817857777033350683270311100062978904445882762659400234336576834608554582601749787932526282064817584534268903205611524400186229930450488222637136552316962448403524980365233574860101195244986698520907581918080803531978029636331691991941625321007672904337054757207708282402077310651725797509877626269273871956748898075618914865192379739063375634997664071663463908685899843151111505955679172459376741183945636616039271001619166746900252890990964258663907066125709278584390641963668608216898381423651858626038303278723801232411914253529139025216310023995159332505455554592115516866349234221067686078857754418527353800026797797545589479219831808306003036451385928652543384854935111852372241199920602091457808737355677091020086209040328006440957537707968570104015877577687154081283770519103466309868070210879590553998703216394763630040674691070711099098271561398253461124742009231966134123603135241228460982129796455299972322710292289572421813514874050382519843055510465080613164028243898930671174345756540705553537477206768669164130831051075930778423015291041042288433098321789898560443522446616941325200684760604509119658441442425561913309352162935316738288747948061586683940226351356780792022847650272802628773768048268659498887488213159148813053443265976902092872352064392086147048087465047371906108001056238144808196363807142784764253645674585638784007070412883239226365851563189685590745359262149051060722434039561176568934688893408214917689482650834409537392794437961432358740163445243503799794808679779765634508752632852271408461202476888266358607825665146546547678779145372864863354822194473163459399951923499454957112010797395217335957804338872946322115190477472158977781527172534845558337219692381359070014494413143089329633858513904697162187325975579355495863229125560980188189062034891305439040854982464042438419637391583753995239869829847341089163135834926110271678622572419467874204830451363801205493968865070212164698509663645781652501030172046646593848421629236056880898103502813412383192950827585177728737137646716765052705430095764728595960574288235003558330148938000721631380796606538024159939628937895392836782815549702088895872058088526185636969543521329415169132574600723226985913141975727298661685639893079172277568907272053475974458272953684500663502171326039298019345522337623552424973728154086431901331446545330576045024855827661852023824672662782733939025740281191640828485015294271551270823070283402785389330056507256204009356874556196178499340432728799745359687434404365783788483720187381835069448081241167911947651270360546010630528699489480976650409268020932106663009409367940556741592926312103968931812716906115230771999053142563023559118700871424029206868588406377727234662717226731840152925667977098003297028894624882630208697150893718314980519537840923335102381327950222601281045572869140598765029363403289847178836819477640540987271974815432563226121625503233496972191809328545562802970648275163108276891171749679228774844148723058167534456963215119708665266101632315020170005417377740902740653054802435300397124859003024713607086741641531056995167579981310413624491583008272428807818897847636650052737449725973270380565329109645849746669034050719102749721302538987754063458445336556346988944099020271219656105415421804870894793984459700273689782390625787966815594027154220179270150034206516424371777082808167070340772211283494535688800795761531091451785038823138346947451844126072706265719907790209536211405099794179296172557253189709443658071741304611293132334991523038026809346049600665024854126416701225568272631348555152097000643079839234364076425460546500665592191711164068715230654522301706591461907930354236547925129112623668718485967398537690691525558992966550648959169337633147411898965588137487708014183138890147167361129847872784003094600106937579990577047544352915633886878601813333930729247842527914955131389674905114547735245486569364826627507037862385973765999195851534294958568597154718598370328166926379889607177174611826320273800281263993292743749558390680936141713221349938071286719678373967167411151159322150300752659939621218295891384028664239654677121628859348884062186065908653907455769579009148154911371196840643176965124956367262729554894164668096807684748211218634710068735020251175294420789330332654794373608192640797466041497814672675965754306433519324726959107884171506188562703161015591981951914936882554872038134007956866864558328819470865904027817466737635129088689995461728538756812320197505554196934155523754591622312083547825192659433731960122516087429063478638329470898276253073216011255618063132289500496973525384495766579330074087361251237071720422382301220214614594926442606984540879200141275064153723951824658287991380925459138249522352836711979793440348918496082232643782532322687404738497673833021422326975925429881363851837463106713674724843527174199938155962418482136808118299753026009983093717591659929242351059759377409608946046366568170839065712319124115062281641176146450236225325857836033382678205217961168037955205657366145700339355490392114821172421541126454715620550260549027606755130801990232267291595246453022229043486180755589820393747414831838435761950526255261909727258019513963549767553680355092699299422034261783974737228868679611617678061752780623627548855736726267518488833117870028249671401918700863689457072712141419832628151758838946482812268575709314379043093190414376849032560712065932818814546068911457382831286272347447837595992226785394979676720490937202048824122637734383716248766320574512286290512824069627597846778859646039956351063034955104875921929969170473617322950792517673805061743336855472341020735449027201427426989886275854077408656718441146586825651045090331989497094424301298317485047298477342008548278652891088508161689586950986827245329405174466897336221926246899978150460611417489398586660155189028931682307474361518320652365949179284984159915331383457395959759753973996582831076482260374358123298680021962139661416292206027180204647518071350374328578951540407830976455002475623149389470862528608841029035822078542068674904880374939974551810431950764713493732586647230381977019811927353541702058406438338399524273030229951336576030990369611630749508644314744331026990292865317443098243041049950301570897836029706477525480644702746618522815921310107593268144052768918212371425111305465268936044268094728322993957243239997628965856619427949919810784934158503647953859548092551959677785724172421154097861749225637285058312038687020722084577209468810631033974730247432777273700682018555239060792121727831068993156287103694090780517918935694563100066399385441868852928031511081691565916555656111867424213238669442049856630834305799012536771761891466649213627891951104063220641171402794995940452919104375865621230983520890182163360561387468810333605792096115597316745101990592048589544760953227832822429748310615165762630522025837482297733441887376096208211837040829847081589099508102157818029598229054775418331455832704975116650964370944615096289029454817273526458478910357693796200293152721816886953730957998514243488402983482839035819347395683711452970501105101342782300671945358224021756202960720935322191600574357985576552315780891184786824151813249988680075831804259661079410050209273459020549751414993196870573698998216314084134615027019776155095246815115689677357054142396762029189351484693892310233919948443674958400809155241593542378662088252387082058571587925070377250918439370423761844480567413465065174484446565145603316807749767275502531063155649767272933046168636491154918495764248934732504892962361681151287246778851448936007009706337373728541655939826043168817532822130736230505768119527222902715295974889493745653769746019741032142621525353506953256240941392356036964982681363678436132890755514727688218602186405528225127090853189941472667182191195573243675961982042062631653340139044514102689329436383189372974576049772914282474814984875775464139338981804864118174638743616542648835212350706488448981292504289397511968077253900658849845043731581679870016079021348227907784213994505637292495725073637136413728473414214030729019004665675308519052285754258852728979257741791970777280280185219600933494496761948200001941041428364990904798933492359116402755082919026054641463860130295405857025637069400458767409323275538959259275431971846231240416944706266875364285092978295421916374866380690252062916090685723040105754579628099159182932982213596010576996442762387300927272262330250306270506061679114320834805840968736234936807418219835191584080522449684129743940231418944318908583697786987966730111167139803389539787570819337660249423819084434769083719425504829917604297083001608373161080726630616616008587326043944602187441281211090564382494865716117848425251416442236029474220541074487345361899681304058429693926262729119635370080436319400468641946845203722844438151118340985431938438611723225925644534359259029707906231604427271448746464408943428406613649104412987607974353493392754355919826356347914810036143116680739285283941934024949043161769750934733318420922241016748706689787632640491557093863586503607543944945047878004397662459454563507318837842436721537781859057074672219324305072155400455767069850877149376258077653473126143032778499790843459969346173973694554266871207965138830159282509818185407887323199944475606442487993274638063246437251866474680299243930274037608392384692760269464082076427958234445626756671968811377752546499272050497389170012173312336704484421269834067600036105167635709979022428391808698127251785881455463600893978274721027756321682008498339812786604376107521497380724810133255074235815204049909458095690323142393062792642427923115744647964841419919970902200050767707135093096251814307636894547506445874344205623727732523825430219996570927409239241253419992012219970013192281037946920618258545535226639241853311470428454879433184361800367700142612691728572791452444536953917414928049380335757653107114273127643979173967067513233449278788958361699211419478017620589603520851201828327377986578062210145200057868286841697657821055680906048114339525141278483221458919222198361790867510409477844676706335759074879717016110252774869481617986483685764331154432928027604500498171087316033041798255964039140776085662397912934968936831644836651811875547000283782275184085769884129674308005674823284152933064780321615392062496579489444442855010643514564307743828486771191520369357360751731133874752399062154796027201448997097585500547654738909933822502509754708400493780326654662279131933792438024429676484934952282929411494443005872189900021980655239442904563824106764373131381527925466263078229138547734994214843094345432026914447843971589695887479988720856881487227006419994395193230084488432966531624411195370903552687343474660605234220621390030106513223633958564690555763494805567734608646018507931191763000218588083899159660192132028060910377309497167273220074518415290573183448332076882024449540593046926722561536277610878005559045442513069661346750857417990188547230920737701183799463027121134329725982327484931077438281662236111442578112383406209316057898285464911448711932440397235552449369933097094470647898143255959043242522439366181370335267242175610665096698390431427315316755239787182055623536242622419267993110402847346721257029914128801994024994998739937502780885439569688707380382481900570830596104298502122568175948488839466393583586798477760506112103686012079585268905678189673336551202622301725214817830374824090833426839979066091001912123699153365651541340060891261010653360196283134458137818450359419904862218625850455012330775594083457570826785711160313687078726689718592637106703260119250239473510977223326726790668196214311123150547752497659536742821128496184734694888208867963308362125599934045841985021681492536856657142710713604852759893459938514156320365500519331196202556392687857942324761287771207778107305517725223441722226672629773257907589048844878199362185623250596461969918924387589710533836230259081218182412414021222504441942381311641787603372975718792925400289281588362633831941607280183712240698515326348100573043049689106227688714643875278679804086804916419739624951555979301172817375911210954414256789198237784498121190227281141987350442562395966426264915971904551932687322268787836527667674781243574140267513366089040688225127491143660754306319663257182568803302871191134304607193790091661047237326092350673443776117026464624847685736143354447338533493728911084739667532904369397920820897168047315762658226377585686132595424861547334209662181676017914333628301454236015543992299253812520183401329197895094924883613898411431493788816337343194179889345219100402925743094695194199512358114126752367817091845118717078891096393395871629360706566932220524562780598410903097866844732495001044542665855337526154606786367752068055747125727240300125674086054313870151724104104189632505355474196129992889976431335832756550457478109522486664998050128302653383989463828032068921385069130706807508100237408865800950788783377173195839897753361746590163874209684398317816473698697466538628617232343683060484633319976491630118789139548305169688340306436018789187885926933888189417327326544084563383336276155922288856589197911283378101925824374102925360294090038157393226970354262658558969205600626188352296287439832385199239960688327347433171259946832862886614220192015717093273021117297264131570180098224538540100691373163636496679552829953909773298518203877363958626950538450753297893698756798607347682763906344252406808450540875438910855810138632564019986715597800135860364527404038839459720918335327578818436461035452038383887307499475750828030105970540860474286239766967383578009115047399403516134146443753875354778597504219564481164958362189997095442263442949295658802792736549590122172891965400607322929190464127475016218418387825728875150538906132132000011505246247186863752186070060295508286445833209048518116807807220836446734078281289064020766612531200629447200708640806946815329207804774898484296120397219151933223456426765678464865881318239967619145649830588494946225650446217511534815739456168289905429960508836051993546258871910528653661709485216315921380750189129666587752879928862816730449628876354701398019348606317044914248883769617642935980225484478077017003235957025308446143675846869125777938680104111771712571054724720093965501972240251027932748287903887477521989318406161606350564108982605484932927249760113240945307053634635551360343290207115882848976407372733596209909780373130149982741333509564033070119991638049014866124872892648313116310076706508054406635567537787844858853388373311042488731289140266914023106469761442749797781537873948425073223447506469194157615296729445868722232575548788921079420448052632373415648325664690581949645986401125973754316372114403602405144240575734803203653142625175361383668356628513142488458258459164080401588907086216313384730674779103379385559933379948968246253835823344679526115669159271414920151780559626590235302752981427522677928952230690480657047245442498206642622958906294636708726057409264494883575132241915648650382073619877474747061841650980789165587685024390294444487456591400473871953219933673288881630396833198313074516636014668204591709270570447292000219123017085001239858201380987960864327535842870728309210568739857623883486484532782518399938687819807675472103974872874898011544104441832550287076510896285038118208625368628944335632720255164855885785178027892616508036335205324015083311860909367541795808586142771975308248907003649815866117630737779123260162278391642378712773374610963520708085337124792287937262750503317440988557769503667376260888305462046384580313342357867561621202136328543239584343859690764803703589369912068291052716957201578314325819224761088619569852007134726419637127059362441704201643925422496716824504864774476024060626153590683272809194668284966750346323500097371908689133828225254682605088038666094045973374936793092574516386323483563034871158294657570862175155025681145869137528267603576095173731796497043296604766825933098358551504784778065239358718502076457200438605790853671123298625093004179416672331055212635683200712867531658064693039965513788694385741539778905500441284523131007504847001719247775396069717188239291580178196935313091804210384920483743631259093379342721546648882877233271924753292043319438225152092678612272421963763001087989791724440904072226915942742054911062196073399312263698242230165222188022698706897296559775450187599227547806320717832249311110436096475180599338991862038484156523348209206566952242914535493782901694790116259677862200206470983474680964042754946244586900167000330699817138135147031769675736557510771373884601834179417291326785478883343347185812216129628504799324740594163666887873645443277533187427074873515002761514936506761478353404971387671005160388850135780766955194602465184924507886568061407508840173714911610470157501329290253894984166515043450134093901950025883040152040219694957098404120093513286475962796435107568638358204058228083127294641100754760035751780549493130250641213189941086884000611282490659597812862349688711956334453239300049318506651520091300125890168172712762748024039982570356451671026945350500871157629252262908724340169325584811855847508829850440157850429383755304769112946608583014989802527482097144690084110352414844002554154742527092370805748285129440657543779661445207589616414050834986659792464697248613912567285912651096198588702927144537186517641996242428966498487123409708648368835760534770972628756023548522673898233038426386641508930923269126172361647410038541623577352093433819133948863849515808848653295083186415718575897275865043013939642134811533102448826056864967956870961289065420527444234560952472062838465775128034016058639844082700881973966984790275162728859637689153813596080833921900781211471655891641969351532715350647391335133021010092266229979117077909470011271029385909801641696376537972814946696850761494201959944316736055510195874101835522593412356481525970855733065263344819862670056461400428945018782898825741539492388840187401723923189969790579519806719237632761642736127211110588937136131279001562637136033501557026806272687636782576772190356729597758045115930995340784853370046515783676436881152627616632356749578847871882948671489788371070213031810529162284092093326681684109480920165064934698827074791579546366988044899951084111577687573178829289696800981993162050654912941945147269916750695894513188311994210623419904506505283021335860170224354694506484570189200372341300393171519797907343054290451134423837240495271862808575490946124885165033934844863409097586107809495305174628278595228025075658138718668145435771216764077925445999349761451815768587682531646745971949710999309887269398910039095724744482994769975229756016038748271931113936385028294374164765246368880991820920611430785364798920589095346420246522418576955080529209406361853841882665001135198641544307968034700284309569464093066865151017912598593447124745366426160255606628504350771216122445460789677932399809037434227683415941056516169349764318794916844072953133222305472359439760447221048409152474237853037012624341477934799061237356343785572938335521306159160724402913869229320514895132973200297856088532310870887193307270268871653799523126782808323102484648278288632147938897008447169520221358055477416730920565110385264668312141407100992693715101117281206098157779710978062329932664189447272948562018274216199677233957537372554469414953050457754696242762028797022435222675040834403834677140229394857465154950978148224984975884589553989137412551406226763587875671558528379544787058352028431264606762300789126143433058177472244447283201897523866903984382451698314328896773642348327123762562768913367511223211380929721138010083179286645488886742212463248145727586342682688139665781208189267372435083798889319009010799429306550760553348060471512820066041797468956789916583227453207621681081140972533491518686193852038685511608832101705757400481324014440846601701910730041939758204515858680543284947679751681030471361596415428360441931601521573758712367545687070941405078519880314135184444470518319223214519910174670324615366407894612238875505395184163084678338500884805886028623307337975676388711937372829622908585023506275093052115758061943354779665338169030967826317334678417100193601070124156594572593750249805478586050456700681703495344758588374499336209817835687590015285959847431886694154927044369013401140421045286466050022991099815998135209296850950663381912903376586475661208283265169389119859181158744179128556726630978796343363681207540174893760583505495696828073497843215354407293408040722819454095998387827857581055125744847216629114614595478085237343567212905913321673492336744952207482588647316895478881960638462045437147028985261033333439104514815171121744199896863800506176620762540026045487941755293736657088873830919795110258707399259732945224765773852802331313369459851598839252499357752969720799525552897818459812459003041987792080442263024521187278630187206873528667330059245353089843974127976588877952933639173712432630911522676290035944375580291030144548658290709638225230767702391665514068068393880760018295665524264697420516388976264436423877818688199265042615556798948339070941407189057399930511240908379240670826640393197643540158462925408534326081645745605368022031081907253316599051798850139840458175372418724600636973941126494210464237544645042164295353942645419555276733397308283060887660948582677279086637081048268386112477957863845753659869694384643507977881818076269828270278479670646894608324624912639938984095803674903819807502531115493411958378239328127266307916539189781766479091760134836644541963384791439371990830241707317820075582019712132778549750380650535772517013010816742138672809800157508532498052717148110374892194953573660571237258571478619844936315916340801087039506139779940259248984541204563562418345322300326435426251698526681803742425205464262394954560059692491588983504163698787180110248311878005148942727169153312718581845653333023105607118773109342265092131520524042220551133233626432516432358027661939772029038719185263466064574158555414564180271489395347312986402601513045827409400966660346144769477775166004639310951126674825786661478848879637796813400098952271728555828807353657059586288790339604447588589121708949855068451313283108923491995541009809076903064726242370837359656582676427331695793055105900109958302992997953631989432796645880322335847343723722872182156227546592063482363330517076970653590296363500350449813971568542013782334628028131770231451890004041763688582033318938797229672214812010756121971088236617610774398774792999280547534420027902138198739745732259703617306788456000298443132624997925538881659731121127474229652106435749345540377543616087128415162928413013236803968692319297144664877906159694012106239794737219693671871533639617452208744166180577598638701625426996788476676070442025650440013133407629874125233395279220261224371268665115449749160176532905862532674073479994622590143392764714676239612492885315031318570431955409495712646391667031182793723884962754838467106522100323522212308325507979153486466071631654917415387854156253245336537136767228877789203394721825684009252712795061104269089304459444633140517753312684643579312532395711751613572606893019898479397658037682301076498993200482905168516929732438711720225773345568347719125845845617168059799196706936725230968870833042466579228436744515032616521755326321282516225071375347250115100364704056764977225643708396390298286172950619589697227284828799633736507943524815006418824987075650514533234922988869290506239909745782242057155098201655179552323489343567248472182872783809240364272549319914631438311237063316199660830295417446733445164027894679328348214794311371303815687028550564296850281838835101582524599290319391495842621863221560261397595819859556330080991044261690864373978194185237080596210013098811258710169368952490666563104904171443374045911210804433224320352278750671528779092272631317708604045297726862946626157705431880406775417614952057633272754685822053688491816123933103111922735864728530307209830354422188265171495656724534395192670144328934217422396579952815098690352690983688034146901734480957667240196935215723823294659246680664566709160341969456260292313098398327256494975697593699200319023967504643601575171350274674573620380292082869665393553586900119786045086944156125289263942830740167508060699181292043986764419274522996359233343641065914617145785515534264635136159400212898051880238814599926915890151309674072735852672865733822761907074262402936234046325012065249459249986330286026068646119908377209092640054345200484272334898961876860516073601138571499876987304758190712218434001170381033080204322740834191429625111664976921460190357101483657899398465425174502630835795834948419155665353712876508042954592908137091398385218937290008028927665711974013894120669051506031750159347265810915246237402681874396293150502477562344959156305371260699830694483087479849955025729202118482408308838113230521868875265114073033334539490840020614938305176621344691572174974396348695014961462663545641458865524408367039855925973221060730251403897137208113020418913115037424639935026154452371511159252319255579567355391379570627024409318199346709148823930853970040025035549203191442072488390936107311312890226297186832174650089594108083703741763156690855613971362657467927247978177496127427893543877401236969920281369262848621146265477252702289821401311518700620338346824566929618659689866086875085053380502583727747567220224350627430088632840497884494070081610371602189715909076147989468074425577447313628811937326218375223804084899229105803291692591265867466232471524281921463689180534140985895028026987500471687095613791588994275701747142051519148752370924325333139547370157581682142769610071643386908610155299438587692740585111791309348002542282785339031959787269894237148019874511664474595034980881589139185957748645681416127163182724781673897503504403350016236572447669505579794000352413069737883415844085381858533623011325187137994156270012365039445872765211211902054538445492538490647151125614084425057204444931589720261617728857460164707737949943522769269740261478255209558697956267012932883024102421949453484152617609774283475107296918123990809881061066923910467894675663657674889891134171173368650898893098660152154196189610761269067480937781283414935293045414589233297593456571124712380309326637247653625005228564127898136141191543439170279177206123427935083132406236718581043422906778062324027568778207888972195227608292405695785186902914405302284797734193732305632879869079002586670103059463738273293906708535867014397542228682228408117394515219933987657361658634523363642126524770911433597638483209618093169192301909313856024931499318516649819893194417054262451706281714235347311797101347127682816821950924587259167388744620814423504972703699226571430715658203370810989142728509074031653719204750296542702678731327939342820300811031492153580727823515837333208028259953748174245675572726414599495053411938282534259189708423179812702061828840003274565890221493546695699206655817818416079548892994924167010009480637398909813965514941749215393412399641656559864824927651215138894413273080542325187119135007161022176625872476257696427010095767420918083403208109957809339789756007388742600209491984571125794976507859139832131249937249261381776526394746626646751200839942640781417624213874023917082262470004806023711450290367436582078735618679134937769054859622815636191100253953920675871873838916648379714703466088035716589689620553128333991572228641092022288925744189123289508646495310285703019771681648318832991759799987256628890088729066328745361115495586900132091792610347808264007466484004845081763080806219008796284892410171698124213153873139106138592358581708295220160130837540908236039564710041582452743790770301094953265130998578733676234891536236621382645082830349391955864147605053120929296880664465747478788736058917639340834871950004441617181420419029562266445409881167343298254841647154635322490609167065676226092633366912523018093982458433293738172722613565923695142982998423551881448865798841923561420598947882604952048392701072309085309196311901417063260851497120309502629665170262757957576902594020468428921847228852311333259964221812015699978551488449679228974561978758348169546380596205361776191436012488489994891287005208783739768604401626088700320174434608248693393357412385726942542994308707372983551826115032062279316935233317811487558342385694308150891468258334452786013943775958877700055774319734868904636999672656668246401427800666548225607103328288459268945979695864865277852611776885890223417834882601727449551413632470244977015638734137875879482001392152306026838620523456140473942688575650820957217420686871682427495987917784298811876578103367961699665001486595940296112019604634618686254435554728364021528719774224139726816605341472175631309109034928141981629604395056291870748483523056232888373525709280515718132363739444237997924618068293782076732686705337146726655345986715306296463523538651356203908732734758050543247681258641421178156477558508988212453938509939477016803845967205423135853882172262974016995311271997905056176406473575286401490154087392736973443370688059452865416315518088750583787942039387282461227550740464318799146891069990402543664305917661634305149065285386465738784624778892689901895244320681566283369402322151767104631945863012559482219472706042415360360488772592416845517223471957300486189553568999317125891941145153237730353846762496232045617989682169293669632496174758564008680966815488411917480809715708020778178626638856523005738037567756076112068493794923454965060384417970168281291385598559133289172446629942959576000956840693780059159914732489644357753306870749930637441019571703275607293400325571279899379204865110608727017332998605905105954205862935701527669352373290810690781506573904224938434848892055959452909666915840990389121765468705031632649067302377112753778800474961822268708818609391619603310761286735121292580998548510162556116932855891735569641337010745514906641095854725866553726767027185555910161204327777616756148941842334987053520420339158498241669895644610496405704786908449956911397110201161798165253727781935721348497353524487823716676498639575524498532568418587145863963904954279446058544465021537247264419816148479893531557824662539340887681893882992613722439267458336089334233626188660966858788180073809442334396908206690205898121082722157816135802882355316289410616920357213466507776020277351250116322012165703962872793127917320847496880382660672497093033966418822224145944893073092062960522555483278774516784220689658814669190415803312964496293991785988692922435813122951840981366090054253138091929317747562458397251144749899811270954516392954358114836216546437786955922750818896655953326182381566629183750598877700779806857619927755410671235771151847194972452962757873988511197057029362738059884119929927454762962364722136954659936905388080319349620799556171849379776670737294528547736768137569240937123823187437502086198199777371655612023144229769427058409494327081270591451759697193455183892260625751804964905654862268518806312980562727863117997961652304969047255116486745358344200202509258189908971016545899219128399695892251835133480984419852848690551945292512058973123283894193048301891735298917965552136490752893713594709050559761858268955915817329447843844385809150459338473705462990056841154417964479982367117107664654354210049316536616827753870676895272536856633655865667122591890688905882148896038883566035954802263003689990062433011404421195573171047084734069728799755845009907006524828570000791901038655738617052452896840823634063508083541456419760762652007305718664977651879514674112536188647157879239960095483229677811795411970429077994332439395289365541140966276548004998345454980890474532501395483847276558434769197237719656419843208912078267792171842591357028552088001625065783153721343927413548066884996840727281863963034826703181440145907626955951350161363669032265986266422705635223950049620109947438342690700514138512245117373564051191218895576803430542765223030552373221971969656093102118664868978549448080531109295357887337395634940661107475648794932866889245330369834774887539068759145757758346345339428708135547496642158531922276938498043542915812971502151857534517219900949422010426663201950329159180252911407476061186961428876893412266876628894635942588287758902566752439212078394886023445556779132487069782338725965550690118739711556409599823973834004629009631508731909763563480001235048241035275740703719343921767018723644673512145991005584335807493366845079750073821005230408705440061939289558829016198842138602725146910180353322038191708400876877617418395712354439272199283484672614088036636502054368305524489014490680968916572360044816138984660392569003951067358096700492476453230577732706091976487538351820660038981151482549989540195442066833091722053312655097281079259707014915871072679932747937473449772074578595373034260675483447418297642828085192075462320848772781029743497491142378957248910016652274756529979325715518412749297978769555854378153854804150000815943712243739219547047839378668331701315882418529468822467739673939329045428247396034595770983870746389268985747039586562790692422218145612156061073348361377621547502470038313083618829371825406408809198010056841703132534047133655515997668525169893437364713563378840620769343134021252104093231850187320099607543266649241070899236965800072662856401144085774923641989002979404304743340264989902389999439157565071018034932752405018038426216001608135391627635575421376669421949987525524370710823176275946597589861130769188468118697122639157263455154986926424620846223160077059596913262341104504894799669494164858090347320034581578762499688710979039348856087963208711293204091564049480033188544826671085706052065984107627932709064229784296619977552916119555686466555024969539170251600220369649723202653505961434434694546741075080062414561798514814766128629509667294993041569674874366336266465010949183290355048500076124368913139239259536582850803992867831642342980157165217528526050891205909426670346656119328096273791116676686685220554584782056362059326412254071859171185149140941484103819476867560596721182277014372714040527136042957514806133608032342480968923563490596378922444464620871382713129536324933471428373318590648968761429423208877111668664688574168175449816666469315381498772331814781122478256258205897977041478180486660064557780062425733001655933647640126072478479272414396795887933359126026144546186198436707425160177910117763944839879886538991107537233078741450813242521563072224121242718166799214609148545110884275329334895213864193172529637710890507354723358937086145029684753875763819971383723131837159292933777959104413257537580840848994581597935218808987907154918282088687794294234484577772498076506021300972986935859379282013947195758236061067590538160411881704950991105107278532504295667853984378999770634261968067843611919515931718488017433622012226655501611341660369110537414835776135764253136542833633294467718023764604975487302309778699350077815412359256731422717094120743899231276421576979724169628543911450186597220833545354097927099378535556565367919838751855598051517668067409737132414240638765285592650154216763800327751819966826717865690256604925614373922257843896443854242606530908462993054338843482959582634376063795091161374406626690649086158543586227382587538928839138349121327425194810212222960598626453919332366988595276532392129399213417430775642495397962431915697739805617297557989093085497182633241604666509491028161971333194062826899691485075562334952557590293906984722516701362721459867193739870604504316327633742552396481389681421328535703893986637532972797829454043807758625839591832477011483807466569356732925772796984255708746056014781874362305543201370392318420301757119067385956596293240290259242329863250441512901143587265625853491450832515219743061796081269362283905468083870804804600294891601846591288255371993727606575475198560251775554543367866433249700486737532745466428690654692535166348630915645402155591969938263100993822820720613253166687745065869782215006647238616408374327300119387907445247205594807386179809961083230813629988377957015166713894595622976292527621445649379655540366992390634212246278265596721406744293859550293992615768350083465898828969667297883008412570994316426266688425818328367162629736066791951641975228126201521656486533978331998357024955868854901318667056013403467184933911320555597204799706543990281665339894718496781747670364438229688769184081468019375664020810341561181336444285752939767900578591761829137831053209179249946530705030368028836938149572819904363242522702619073800325187450732887116396856775331472808059519291360647001851814728316717868011268124153418787115710033990851849563505413612760434377929040713776975328576864414050675631742581371285493869161017615518758084880464550333398787138244947865458276127703800384537925251410171594672082961068538058538236546016518450552572206736220735624158807732816241380719827325512924093795660404220942814447625142760358913972547639809586705573260871085653938977829988319721295391943898939186241625540562584549708754668694572572741994050128683283512314551884384969274088892266400590266598635627142596798563212924637017227357597017457327572029583752334182451042291811664635926941442381652974310081738931102006033856405274755814555859044624005752415145129980907092475336990223406117810375257474104369520257932481340067639759739502948932622896409394156624580650879100206708868013482033584486608825058204688492224261341992955480099180320591199477237754205518085927934652581711776877377929859178853732332380539450903201688113209814815661356917162534386351401410131850711877769769203551110015956467856664974652762594322461684563687044047209627667938854064113441782013899778979306851699838862478421413970898326450317158950618263656451189362382654600858637725180623554226532594531141203207846363845915047885492770635245970018618927837183296868006235416870878572988438346090811356287873810518553469957979519087652562095117767716854986778645043849744294904643102672553321259157549316725811657630344974013620508236686471719579325477459666620697885897349626530087313125905920724939004644296492747803143752193247839944483715148607595982848086061673325395621708913498742398850601608969405422397628390998497267705889338894392900030537927005573670998912226153067651277316062576151949168851034011443546741337817820952740869845932324563109421239519297334491912630342547859729457661876368307123849447599846981070715924296185915270230957367419953982320166644341735284645721094819710458386921312843718064257111219167834034554044036105722884271756841381596272022221322458186778397698627803037003838200038807891543764639199890258765821838514838695174079897533647823685129986969734307915283058716729630270067472202449599018861401216174445090186072994784960191735633089108494137881148600847118597838480636392015902296267951876035028865671103670588494397349467328987845435175198468152924236296548967667412389650005346967858776252573508062301949248363675049393319812406763502800458607387267063597846003491170676560029710104566573748407723467704701339575169528913831470065517233313729162637437760767536069907943814322311187257696514213937868511864068619686357874236605816815231240506521975766884553478634394334192888083669483201494280125340686101302794197031942075024082697817884679667839377839720244130505480589437315964177717215967202731983545450525379985578588744914064750427127302165042883043960022099791355894555737295598782254560492195562458837638348324283184236667743259074192458641394925151460598173147093398622409717445308631941588610973474695456517059304233511142870600910802895159187260268502393243600200623791141518270088552962253267806002001679924452330492085888710990193027830544061235675871439259270176494553170886526301454160044808374998737478408471819468090864638230758143165831813894669810808829119036638507222786093512485648820771528665757898613979794205240773773410296028313808607627981867780466037195683682923686187305716479651324914878298205935778370078937318141707137433996657583413318250572283138754716823160309740065830406946225953634922050397523764187169051904960090143869603803181547566381516200365224011090030759326791712231682812219972033216821031941963657436161976153779760261650780110657966301051075860832187628986071413282885594202750741236238584598232358948845814143510321133721963389918015866974335760838177221801467909638271072406076649616738334725248974923596406364298042272790162492870399876389936846289302385858023732862305684562174816904500481332005111711465631312988515690422030603821069956618084211905076881814383870100939636200322204237515546980558777821212914664183983458859137656351935616414509337502208542324327362581126604164207015001789671524023794351223299013997355574698706565622266931813980455601243081633981546794169113831740653614375624143106660889085613460303228282891143192240059006699745377356952463157741953414144632202443166191195519987030472008321406827286743902748016060121006692192000482725070671300205811214796133875788734014496198885471282614301021058490166853243044700089412161955788411032183460778287008099452727920248255562364273735175284796686698801218718502701039208018432572534794820130428165912674749421301132437574176555285211141686455848113804848637414889578541979422301920133221561292940515678114616197720705451074911016795378619287345746529500768545902694636875247323924027598320554819271832755425385677241395022479946592937621585636357167320236274838959852580029269358431217429845776307466838004963012463094061491815188497775892839467604955323028231562374138966647972621963782974555271760944242817704199597066018822495607730644530203650974792680451150260880936578289455628498951967016724737907946530783479634763729611938353716119646097911532579026916783732907446193584357930693562684669247668615261239546534875339679243657208032565380624292013827512893605469855011188403374352805466296530041060453203431947915395235683513920420091658012251316570227526439179661282577407636537900032679505039106666464588192144223609564826585893724527614732784596278119549720475683936636718519185062114779486014265666722243826539646415817558229303932788122489139747659429947043217762224256686588480506939177655297757173608762908777443248929195526399063584830087299794104623207519015443928485619357634686542330997363947871169105592755263720939500621274571994275378978694994360579726165093148091666700033525199385409320876657035991871697531063542272473680510822776840223012562687532252108735879985773173620674783809108427967869679274531552604785776381833868566752869185907686434787406114459233624426793358692103115148500521665621338595943853114794179564971377298108045681746587555148611221955576410300117013692863754118818923945787148773777359562525359958959696319178173152513828618544179579209110555325952465147687495829615361033917076502573893559094159993018439568163519070616547409211310743958593025609036406565003319173200679479830419374282393537848107031046860265004638442813263458297284045025631118392496492170421596760698935150219367133240662220054024318140139311127214695395602174124708994389566749725217152107008108984529081898558507750274994665022740061371630410930937767476127870464706398000173255184011742732132465426143821901087190415840293556169899671997019114461935529374587959517117666509089252115504946400502533499641929586421578794591626010443683859155373658789326901471513355560719446649236233300015796240699238449422145716113797210652135062341032061680817716045363799122394127158812571099121934503026879757240345841236090971079554529894945236740494703832117856586765389730645793135694196850764463163857114677715892213520120305811757252106084905243009990067421024097108129148416380339380670990505517879225439382052182950624486711683354463623800020440591918041378522950687643960795089595917489520241377938501998037701574137585658440306869195561431859970933012121024848657285180047206010073942344468953030519606370878872265616288739370204607779036441352340163618850073676726300076465097700176220408950139823639579668169936040453923358358775590190985512736992304195942869319292951558536330950232734997271172426070012117949080293206641062126952284316292487460591776565700753736728321256158354915456311088730306272551326794362650492391010817671254292289553455832648232671696739834931650650437667355235166928851978705807131402115240995786940185756145643267215497065104041659430427529162916777073830636796560375866743934356491517511999265451509640963190365289379815936520990791762319458645179980974215963864829973686983186313804246811558548371156370741616860147009294997838014019808584348659532973008735004735197055072986153847476618397280128855149582037269570915479622986903293064096820957647401297323814284604078450329781249049677320368547470377330348713911555574358986995473610981635030254293238903169412942702059055835324122668708288169965572190948899927280138748554543389118177357232936908996071721043902259087748432343984134560578068693361658808222506400237872134162758063729343740262461917240145585172420823339597494776013313814766010433199484779157995398661000300651520313078641922188442759020584912875786132314909422791696391319738781229595404658426888302405466902248984260920957211571514350107234889974021102040726964043742564280116617881909098594712657136336712936780752752729301755783215586976787123178643320324883003954107157218541123130623992501425172010424581959444736373037185737669589849790075914457638903004438623666086578185643834922525043484305182042252090860806145353730059762299507544886158776856328315019923678204764275199204660671507977048534492678345324548748268516550425471738701009510705030764060853836028038211379583699859745118870121957341557030622101405826622793311342154430438800170363020996373873838534093999374733886925780056962437344732619654029585779618204817851420414596325849971191588389664401161185460128748328832126787015814071453226622364241970721915573197821431477362070113067023662324649939897377364655281602176590956072413762321068847718936382495131205250116126838145383627402107977690170841375684710150021384956680674067154033241726938039513598339718564340057817209888560992750415671159462712040237412790725280830793862937505041428722827219179261874890637036887017359845584762414061820348470317045088413279231697157353885230687460001001441067249543110486249432845776235812774885966974419613605446117166067174676317710582737425168864933040082528173158851512989958492369584370157309061761084622201491447012310042064114005982430324598015314238520934891430472434170872191469733084196061964850405932772586779483078299582881522428147117869700271967561207736248162668574822467020435475389188233172749628962622166427427215495821343656792193054217789631119317169667276007021647755372335214856192356177689965882041380148518215146666185888871123836065743171056618490886139684248097928077303112000226907254547204500588563141274815687526989975535102095394152601602440704606434103043249943003878192476593626379818827471826825830745113149731997289043905898178917556304122909874948686417210131569516017816423919155453976186655090435992327953182831358922903537590492445905350700121695630987753261459834396661233058609756829190647298660829591521600769656507065140965128192397231160088032950825110963624180404721731917097708810415797046290627290771940099243489020854924811547815077276570892935641961507306991352450422188809161461839954797538433559699224213511684419252617409615622868190840212714693286331821013890481849854413674644997227443523628436025949147624050966951470286268359557845103990906768428887166979434400905712551433852913441666657178414349170684092233453210447436392186366715846908386769511545992982200762197154903196939055734132636524331423710793114705898261859180917415273673651257315771487295236292011452768986343238802534193429152962096238961017477817329230686559857033525955739096146366526234266490035936666993442092111734081977863906968573123016304281979060317874972374505012225399307982924050385988042943379830547591389026970951192884054369150934050073337254003808164619175365479679467431384195923467301445936911917551083165326561441513356392871793189061375113756106626779915128778220002530898473620821023637883601488408622053273838102289375173110770066983718244368089897457987946272906769002726307983816454232287824772266706006173911414070414309369725058081814398921377769323373207533401669233103258568524998018840026789940769116966664726924858835166517245468884970093189396564273153638869214289756593548529947527765183892794944136310685711263255026194519125384260962710887158203368267223869083655405286424544697504632278480495036022136781961763518999268518256036946908410469100211552127408127680171145485329172432296076301719654039472342815291501440311496954151541475653428259084460712029499772693691471436046220891438868100516714094775648563154818997831010800748877499283215070615846028312232890932280844896953081658446854918129084897692414144173865004159293156283289169950353571903876778530345490813668952710982342036305108600263064555384331224918925787176886580258339708677412808747024301909809929739319053252070089408626441384867314405970829913123103274969713635615406696264826444834156323446313059297747428549973718451159956031970788146342124259459845630056592533702881396481757741982598407532655176768277901825903711378385521784388671510921091295225255352367875886016157656918923286101485059926723065895866127981366719620083993731402566742667614671267262011554275015083560058385924607258695221262713205177614156256251931866673904310052832509986450905389376860792759590528099440219217644517656127666803059415689286980140466770654800111498415770220352012114085816622780762097191654996463014636217087860480127480584585738240641585286349413098425266506848857753889339954428116326475929149776105463156306074350487192923911706346051574147264955537859637327646783831338853322071124344582038245268273709639919560090504786100160436603147790136382190253807626893795580475554726361617228689349426962623080139977200992642958018759359395318539507562725503674325146975044500229354664218094870314711957248324255681310369806263874402695411947618754431477955703465781071833360861729582930614127179528699925128731577088941127786981562807222686975142193490273856636942834107449206023741087601959313323161265032943724920441014566358439189448140884975132401377405559897429648937000195178197034727335065865700189795433642829735957340250326138459814388741529078452283768049239563718467360313178598516658599114260349841658342314985960336407092941915262445149995212450333508330546099877518234407700412226362108882555519317897103800130727652186024239375961649623999631021540133055887482316548635825798394330532241629622184357878867613882348040577466668650555590385220522159967500690514765939984958898779754350982339283610264509378153503350098559613832933049975447622630613615998748228915873887664541329885515459546215932250669005608348861014845238681547817411112459976461094546878362933038859391040419193824640070895421886938379230219652312622391795060988558020651370203484342113216136280463848777975829876667742151926483770626507591085951618449111682219198800986668577684608919931051538730668533003205208257034413669950432014540351080479346021828189857712688241394877699408533395006762727241016528052807730044272782270116048795023017094613544245999718170277386833259165845408727515081008313651993109854535659062263522436476273911865990873034385986448401610865860360064978440749271069810216216002756221142038687683125249275835808884877230786223904330736205922961094945802873641591112773918716722078427456529385279575805612533976779639818396864107474960909043214496171984701742220355264091739819860807619275307852695864905016799819307962195799482125402712063936455776093177220723958543350378794616408640854737060206976446008696461475839147879962242848763812238781759647801543288635018318821638000848742784964360877964457720716505491804486180254296724629408229838970003898622556722763377884786034833178798695430516666979355240980348567472970026784362213789300429749864934856014432136278492451496952642095361274823175973771145087837373353374021210262388596374999815933647495809671046434007615901323429188048827779739029058634644785391269272845661631306772648679171872662896544602674819139387862803158670043617670885686503115480274756677667535664976512597416437927411003764802639787344036552866266341212420018085088288351331282718252853214769849539002182668003052098292715513733393927814034970982499535124885005341121968124182349200063742866572611148577842523236810647605606349236697018771403019716235949062728353545621311769589228804197496390423633231936864495995504671504492444418138898316672279165844392396088896819531145571351995454677418678839944487425241836379569751279034367039314557275768531594537160904505011883836564899620348163618988819066136720304666122375163973622034287132849393253162566172402501214767372836746878384421653595740995477402435793969164107770130101496602090238809600852295137221826079520704437604673689229140648007664001117380231547897572133532586879009018584088506038775412082140856009089914139380891381179412747478402887080828853861365213322161201455821050281261623810638975663744133460975874897281907536999210697990817040504653193066099633750866552792797130074682323740056153093471917752949668608396033650468025785251316147657236318049929257347061822267042506176634358946286403797919010185925226034448142053922594420134006097971395066081856479843550735375180945176116255306194080385349851606836133903766166049529580378854687156309913697828501090352310675193591385960475044359143490686279348997635661745330497921405188862030445699989547359077476350745442579848578008538902921423892809461486065877631059558306721314628252690122255992454555323323334872686797948484802754304307013796024956490250255145688824298113032811450145020390604662484623602179793539397757239047703149048410567582534196807034565774580162656236530711577683542392956519717285996954524927043240302784484959805687948209434226813276081446286955661144833794379052201084347070785152886842132288380296536833131733717532545808128422583459340810389704022242685161095893639185590206961325073711856101445183268878088955299334414725902260434665242141031413901156423638132443190634347091465843814062111999823555752505012597029650934897611551715933904030570014986390534926631849220008402996217227648361024397664532183614472296214853515249473940649258474167435334026819198513264317417152294914814662693590879080490856785342336574509816367863033353539981623436472242586412952005222268965652257581730729346270079345975002314940943294060866618567773850511192535145327977660372228057997051761270683501465284467570075992113576158635273936903482602209136230328742695698636697933085726977456610959133699254726151591641636595540000082338087319466605742431658081762103747952922887612944582417366093000423371210616158814035734679365765098741482758145148796703899092936122912439238964205299199740570051930495949122780944441179059483504450484443142214183850724445613510621223872031793062843599808223239143283044664491881192594274576782030776357277481460748175388800463833549166097964464978571264699176499960741357487958882212911780602453005124300025598482662732506492847570668375089896951803593908009372151803429682906293811413005169702360726924376908559950678934350109047778781709028604676532766937519358330595822513018379780135553407603958287052629378295872352249116839190508050780155857263543233383685346994391279764424584844790432538481134701233189654681921682269728406548618097488408840450266640797027831727423421344076921722393318390884173800055710911668367769984666565207750534694361633784815637494776159746565426170811530231430590545714461906202134640682290955976864870396296530564763018498379993374873114712895653288902175750687347701186802408077262945335431575018704842614836956892664038948546171898275458961265978727263931398389814886268663979622841236709376166895253725103848396413136172471137286212889713631101638482159599526180278831260556967554502350941925754457033561594716203218675286932583875303023110301002462380038469985272739214627062822737158389518946847556864100170071927482946501364342921330090397811934466616854378014642869381971865365864736904228640036016623148317623798999556177830690248324415685743356900881346056683023446675870690106232127638305756102992065345457045755118135577535231973168542393764879888953345361673202424145227065311857546231193695937207429186899269089247169717453406545656721220325341319678003060711349322940221496851422933752970150634854896420460955453570079595354339671307282226341388248798506058430709820893907930238458286244120991498311726974235178338065991542940852443187215766136738078266291092274465921939711032396335121331691402569538396826696293332212090995619289403968216659338643408066990127493623204120681883760683046095104890301191124306393375268062650054206012131473597129082186218249202765963623964472537099796475466548699570356506010683773866576855503001196302187278438985704096772805788163763832630016731327501061662742829290463854526898612663185589108735416989505736659851283349694946021514605998630837944428704178940380817788977720844108409473471446686770815932522710868113176858275477496227031776572357796101532071908679433528509574242536727575003036476928506820679454913971655833993564302106202204651402578026962505341103166310174369324244383085735630297557302328858988925171610198360433269047085844794167204088317818158326658682003540960508414803733247446416595891653845662757380449549816423385338678076272242981878867486386579147820431947407889435151466121742366435398088430110751686464104893936367624671332479367753192304703395568952646533789044016768814637216387166938178416277224855605108515961975913633266951090655646827586124633949364028998544714477123469366392542947881661796926734467117398381510857308891963836847845365615971192740267056595640727893402158593691297984043306218363725731475703208747343734566525876332905554784033763537904797874057428298383895572186525571111117973708608536371439531942499934606347737162192743220882666843551338896300397147529551817554238316241779247374579881357091572514433683264132116162429452350497592898081977715927061571061710729288759547965057543431966123458471113500212115771220892935501845335934651834793843630419741436020316054765996170148646645827067034161859461979312935463401361290328517974193741755658205442935171521189812221881749031505561858933241348680398661744567025955189186416918854754362965277745130503856744563474148649915357928070201721062110976401231820252561204338409156739425861172069409095024047554394120179925678481150206570992400309801265690809917448808422079213564719915303534284270967613448359833982721277148846305177736050201441135947361283223449389073354421565870460219842811926244262974044623616864000026348539666818850014879356054463428765290091519055731041755561089165245273556698107095493806859869252326004068134551168478601340847563718306791946029711405023231635460307058948392206453434681490094954196999005441101289793327608612444048037525488142771759432745306079489069902085123771242426451326323797010876351473695232648508809335529389621214641290159324836576721543115947426181509641737413307006299310510469329032990523314089210256202591190082676079143037363308461541101084881884995812940159125823900444653137871027643872904857137215746034930478514881220515095153497372963990039523951645239620886224455945205662858924684458041832645029166876510048441239515975142874292555323970778592468981250935824323162166832273387187284620702427279724028717667012353491774543384918836478248866402044078026177953346920659943616722017680227145158775428298292878992963809767182702590163852442703871161068303840959130853186800616810960197734164822439985494310811047113189712080597903927559726296609417967100568732231381051501705954956650275442468808955625625204445960044889874814233904833861037448746469395842199139947840088439916363030919581647149494343381339789947908726018124974634864346889297041574361148214364484454931813002718884835496290109945291903951303238949737194470561882899632099893028066743536294932083062948593769693541555755158678915691122539332158357898476627145905525184410552596262731234812674662002132520029537133468104928511621236392325690378551858998253745269252980852827230021944641804196565951376114708170044831824487693409446292137930244979500375440598945301837946342582846680424092983421536107459455066847022420169457287352545244993200420811314866712511479800929586214995797802369817669439679438770963643312132288880989560649991501028627578523850118187370983114523408271021926124853767468491422263081448621856175354383098815174024097618556715818783401419342624449275071065195758180712653978294550930393172513729668828475642352384874773539935655575479571787090980484968036258534863191053877247585761579120506656991014129462027896895604912229668285327746731381192510763459777001369036287064484342952510559160441851253074659658037927371980783187543226927726687565790357943475065215743679773745414209488885305464553194762319086995300558802267784165574272436188356524085721787796763949223010068595349778993359578349045612987691764564342170954664586360678142852896604445447713313429390119420514654820747092978060890514980601457985311667968897001246699626389960279558334961028558089986291737906610025330205228425093351065029655726977223379209763620764547179653878044772317491095081103475922008989079217617448400661026447337920428578210663637440747084551500928093770394565911915533469811057073021354467560674569485600596739078348855222759640004471638930379214298200102893267791007821902038484705668861393913422857486910627326920017664384118984611149577840143265806420253531259105981869367023095576113048840877845389448804852996637115504137384492976984929091147693237571216134619899258497213088328793618209212275750029530422314870188779192892827299002222892730223145518156360649755315206146979383511943489918980832771035140837071185686194984991463625226860268582188871917851321620834562837946933999514578601644864319379305449478153417949074320520686987861156412041763948865508153607955462836242009164459727438987227858572999648769903922512559006148044634671250863335095310142704904743672121083982721355811764746421159773348918746242947227752017689145859706921932055696051003593409278366818399777492252268960603413899321515972255644031351912799483342823650806442431035128421435937776763314690667530340457837861945792673375825582146362109791633515692625543467242074262992888419975929187755746486284046298048831760629867068118992727906405626613581189080985629021755099783432334249561807550720588770696090693084049335835638667343928411553630300649396430149692667178646821373448698120603453666987724603085412624034480103699302150860045446573488933823624372599331603362748268813587294252062807058893661234841693867200586441816987258066869020671143582165955714519827610844375707502319835911553022064827860763651907687274510735055591070768375893634332938822558662259975189565091691644610906090006227914157291689212773996159343035435415093772316540791733746084961415066118396196171362016623681809467424068136318779210170798129346908493138188078761936300133325945302255087801522908786131284939646626029135338791818473937541142410123591496433360297656555094749090486819296605309681043069025414646470640193221434176644457105683087744209843894415974413448821375191429481109185225368632756549769508558989297304978450835262939827365555849696624630179744256566272941416561172058326201563891047181788074077971231742326843778764928126818446624664948443828357476298223084704425503494762832366257551128168967746018913163284293074068308247696186026003612004667999839991762308481134312961562008201348095275213174540842174478965172761664189069063408861252481768900915430914763218752798081661749597026797948153153420503685988953981811974166253236340982695117416336247247132924780946856160513642877908025911276047292917339757357611394209863831987840678924208820536064592572227138226859234335769235542760415002085747462708427597917572070278843586416598657363971343148655043301152214800629452121646644249303820521704833639664987741912170521076171855403362570777706966953797731790545684996721616137373954217812055326334263803986835645102239423055224440539367295035944344916923265427111416508748987211599329998017330397653476343476085586083908625461694840353270832334426115819017926869275606082956488829433467767966189447644014513358854657465426245659753217972298762239990330719102937051297440122110020450967958877361208442501047446868664574882510618421516748927600939682395379974543649005662985609570284204075992575511697997331166396722734859046604510443949968577557179282224161810320753366739048754520994344747344849820661926621178499605654525756819710196817807332666049667716682429674667776451468850710199021826201290628672015950208581155955334168751306225063665787387530347502215316299926964022419822373184510176104257621967090395082427526501344509527330536280107949866096385291980953261236871790758912022824059508432356606294823164190036824451980541808478474910709342621077985911410033053624081817090078159328344244271981014482329182215614754753557545593702866332436538818097424167661901412175954216969724111322658950915823679607390942443959383143694791204202518509582483656339665396418562879998205722746012881475885024848606816802781375102999383547564122257342452059978735762138158430225162032771983936675342064106002346131138672368588511529217759919673716039108718797451478744656448174022685960460759503404289756949708722562864323044850035936523297933288643914771056232820731541799156696385183634664540643524155866621578992822373367369511635988319924552434619872171825038026745940070008061865655518334582405553430097658392153594846236730715366912978232670929273019690072007754346330790195474109650182118869880883371672767590721764895924544994143701357750372667591948390559378482912230144278955604897651597349803767612609954428116704378589720725859110096408562154877432243688768828815626160441856466850859827012442044254904109969756081345359648002306451100467057231937691076813824792268656704929863780850984997550231496499349274404990137928691986848457614165215755745728218580343688679595324266501502033687119978939773824182231565227468924674360787705759252003532391711816223532711146525498768048157458997648690509212785532170424036806644123897661292433145492450993329488743983616677868748283796233032212579946441557068125957601381877328885945216235929709466255676519039390449975876314506391906960306148008690011993639250560795209384157352693123383320577996987007611771026992830927526094455208373586438510028048167597395802148911481033185768898878061577028138077021198275178938168223107747959782416602496380634640966558209540727763587810177096981907257734941419457137972311727964852366660901685393713411682641646149015491939024565748758314914445981314708995844919028086076920938955936499744839530334768697586310585179808144215747342148771416435743204720442537266890251927864318560232722680150616821859373606417673773716367089778717066036633883485279960539427230219437691623642194119667544705142002433158911038199614004398042833910089839162402171851830496495105104691327688144047530763425899228548710026072064752459315592004033352102274885600686438768843097347585594856309804086722265539554097104019194513260529391457907901576660637872966400671495963912842588426104991748950660253174573158589272921659473018703608839729366806641734039276580531449136531767214190605820780945140539596797194999048413566513342760380081690872705430978099988130242235798822563089398172515249193312434573366656905483776393601963259827839135741235420958302393392811154938743573655424261957696019629372259711917336791186162265750822449423735652917425936531299311168852990230059346239437518328831615296537652388740189945359328516516709203650437573726740541692231697056931479876846250745291342365916543857405763611470421628053034256138736460165284107834188062032691066862746583112306087746860543853288583889659050788198350403393359451770190265947176829073628227141102069140821742077727353380938439207208316238467839682352756078732345127206914962639710116077702933130125655594976296672014230147183639562166855037093472064326800210697744400468614857180420018088378226124697680717492696105964628006817454886126525376761030366337426779315524498563637906295156564317804017439674430990965826025891424214885023252251433694986386446472242234778665598166670286998324030631507826363174822463571112515492064359414870730919449257168713801919984456115788367951775488664215971048073082382798116506910972172252722110737107851154706384637513155124439014522012069004388615915125237187706682570197983939339221066812837177387385441606744753080320846238540638248819037764799982899536103397729205380010352961201117763444745371858518061248376370584238204739458138587709983301397120553512697675326295655592208031578600879993727188095577381661208400171896825791360881586541360996675001799776885900515273514376702879956417997880954268193532676819237620336939538865914800345335433779075334210370764278819927509060559634317024487612428199594566346070539114491823816969910401660653095427656778112709192752856067029097232940466899402093161642230661962882864369404322958859924990490638316791508944457037567443288708832048552193154371058664541702616797746406201582111743973628008477919434616573760920391661600451735687951252670323088719359116873518630375756688186755662229847544833856673493696639979060002495954793540250660352772469682822738533268087745115319329337030035241358655295568586923150866251170552834961434212349706183500032867605280477534361732951253245536856935869946719147029922450997652806185981246692878936583545638572042033740053128021871982327306487497533185830487474231930974354093062582280768732190097227704803496748253698060555831479734479269578944427222355399627386341255734977369072677494049944292564482390732130852953840835651317894790595434294207187439784568494871783110135568207948053884073524415552024065672683744527807742153854496646493293092169965355000025593915398276453388341922530602073992658396166784040740193862078377200982407339541208932995162676960737382312094606856339182433284318696939820744380079301006361209404139975444645101221222849768951721798510701362033077482546851240281781705600833084901487017336513738070233117457047091761080789130345476914962264934696656220216369584141578716149983711522325919736385136440339183261708492342909067704307010835456329469135158146690412310805885117351817325088866074998313875060751389328349679850867603041836389091957650619403270696502296086051702346559168726891796509468753727190543851517126874847868810393261495948988981362425729933341744767184273713205973974426286829810737569742221965438539958437050313417576608886223131806234470459496416071149507975698225153426984411051128347385520520100244606570332761579171776209682747423541279202481454049479539299874752785105907573876995741082451754128878699039802617180368310197841860435602837258058908413284837990523789532990643678673906527226958620598399886462309669263078276540561023926779921188490867685059170318542557296995773680165014620537075132085285170973482096139699161909859306789136065983726608496569530361412428590030440487460699419561531626979825954508915351730580219097596238155355092056082045984313488690916831867486960937392887306725311694167299331577065838374331250300649170402653858128317439442260673694325642207608455789842067714024957101005981202747352232803813921034839701318698503743066074364878021523630344697963257064531175140284174675814809633034442115462265997299698485678943740350305293042145145116641377963665945719911672333953768168798307249503890212941782332163784591805636812407309346189453859953032253419926016431837402824089421303522543379331670470072385624803922711076743314686707024292128536624565646734147195489024788134440640584455125869374576903860696979472684933864545011217796473872265338728249459851120526884711357623943687121622672459229719134586507026146079427874204655723904470514045179612379395792606225801829442917718640781009626196074228445781703982478173134651896268270039023139308842490508904914513394115220439294882210986683533367323829047573412442113483672517657273747507469511043273351898949459839012199573740658539128263032930988984674127408604267182343500392792098253670230243530462548252040142984503813132308932535736669388588868627501434352402199155039738794306700870336618989873188592850325358269395127193861010156795979135626738155689965587974502315718553720293551581105868937283745629020577209902414416571489688884849756917862548328618124147699259529782717540349805176709864269498230223267820527613896198091032403324521618898605962148300216259661045785429880342893461921621107477600672522801436669230993484834941649309844333301676828089542269455551847181131485305029382870163971100860177053637128453463468292916203209000110798112006385290156050371193225825370072152140839925446834377203798976251284904904683581452934582604911396268582273823913636056196999336233665929268899716573432158329666954547893988486830211894599190010746376115153429071388662652447373991604018658567728459551586025872828911899233464919629574402744374517702951222757497360441320854360106009919640455275204464772332365224120634664945798221185425544446474240418245307459757512618259293879923434422428049832413898913029979844185016305099761080179165435644815896753944802434065232107976233560423560395694428818762878599344614677250634058730112300856834920815818075492443423326715728956245271918485862146033659765989660280771489107962611025388203046623434501378618106955510169565752997114047207953754292849150898664986888365992837342025735181742182438053330442633120326446956240895661388854951969408817956807049489101940885384162109352649239889161300167292335073551272044298091215143660717728222727763656035388096366049313954432743943023521536762612591301162748874492488843194485173188995691934718542120549325645843295815397211244890126448605620284630106834237944496312274414590259370059240770028976599150559582525515466228617830283635208593285415666325026453026607647128726108951556792511609290066592900608105187429535345313442468042600526406350086531430837799178960245040093549208898403322507023012456331015386852636722968236031116631174229374889632382509972729437281446306930149267122402478105562901050595482353807914317848093185731550509718621520521485849329927229239111951809545185829363656835716870863496290588401870257350646917526840772855012090300228197902890949663305216229073516008043469508052715840086567401221468303596894332139432870790576517334892496496661863968961400028015812538062214405011875527951166006476205191139446229541830241559365510658867375085539138592494387008866527700469589490788543883338444022980977091396014433516091001413120487307044443155149053544611053204357222015813925683871582262326708540018851548470862182236435899115012395107639935813585446045955829249290814759698175756695495604201104498771804617848630001768649452404906161128459657919289864497780576324131428243755614806739763535419325673080841996520722164512340121355673599959267171410075233724590559396087979330047146336563374443928197896907434182296777425446144595799176700192335951406691734605938803548934564052855924929123478843265711823115720380452396223147799749903135374665398883220090949992622869803401636244075206309501858460696456393162909167678009573801122632701574039323553749615036487378279733998350205830702856267024817010181034848031553202240646424231853390551833836727574632093048486238528668395705089640851472893806468988769758071650336522021675649099835642169785619320022399446135802401423353351533981086107365403594332518617645390760165910434627900235057738805027856903150322225588036163560463267276632705471933424134164292113584020271690287092942054797016254888048117633243171274510532694408571444749703183660330173834328729221197200812878030117083029159227042827039109495629001655259134058980259638131791676971014315424864311939526648112773649343069633231670865861873487176478184794083104282320558897644484245046308403918416277649679256236811345483320469555804711851057929734717170695176602669282411979313904915289948696714776415608771743215732312897699935904824700889207167329618846730608892671572140808217183703369446672255877326529114059893241070025776910346947651438320039314839234957045039044404398885623673637320654414795134491425553860894556524898732293009414246676852566232104029384151352657861159901090448786144608353795463470341713627805718857198982725301265455313779553406720464256595735445817714870184421993942678109940176525614457703277952720696552955597375027920952798580759839966519646323530582432472945299438313324882909965308175577123887467469856903274547437122265871193661510553646764482676171126772353142459156784299240784138945516495979171565369930047142334796824506119610803170617926752371086502164678410826544579835098295108738549805913074415748402010780981952856682229262215806078617543655707565887123781925894141105036439768379063868349459722944160771176416140099871454784385245212291915958183083787308488146196267095998989190099709492504394674256680898097279347825986496221943147654159958207833151563596167466511261500575352736256947646951095494937278522473856514359265348519389766043102662873167739619821796302464833639255671677555088593976752293869410428152819084164896718054217329350589546229800270000503838677538893098109941040723805960518161917412501248479774329162786981817651560005038577434115952257509193256656726778834568188713059483353579093311713732148638946452416764162086506028596855912364566439153643233644055584720119038107356362305665355935830223889659775798311075462462627352915884149219546468203269146522222928102546690126131179010007508973235541110989661234849722614148770447200672910302326443755622268453961810329471657127511839842289712708784709982440345332021698177782829036604938702074947660443671972526245646156317972314227942129166623329834946461955508836271542078186195256563645273151970111508882151982612936557641396851882053401370226149555344406836961673363775930633070684476360657251796040031403589848798328812656058845036160153917709729328658976789778926212220882285362815424724745719467558381500705748776766274509226170302558169223395749481686623380110728889388085118843284247741257535354032699891219990956455154300950514481484110115219325334033753448067195918915215606461208617496775279085121387287311777916045076199204719156183107735808658215993536269574522032232434515826620466016439416872944161835587866349199218235950099267030568389777061700118932320645111458356807152592770823715405662754098350967480007428418395506661964116979108914618350794784268541936759255277428163904582563104764772584566433971452748880231260558062144722708906272999939922412993510060418116692156872100456156327068985174110056364096425073393340105337960708623818580831329769406847984994743538786306872833903790285676446951428090775758382705366661064711311607313373786754997834734596434996464502701435457831996601488596132345918440927987981697391639900813065219415985842843497384338402829037118974358269624041678875906230689420427249451216175788279189327846058878889060948005413893051049564390711514729809579616117959699314171980694849851570204907715421094764412129303676920575906969761064431804450866611305368314863443520832030710834798856671609620495228024745035608563381492009124819982881233306146762471888800628641760775960024537977328600591650694804825768660127110602750871975209587270007032914592230631471665890301295571789734552734253508800474951325306656161477527742839218596478133545435507969842092490959015983589088292370544868120225828035877229524387610976554128367878144173954947880673105462022550371627503401628568315367605705219087750110518778168472473375893248599458747373849563041473934903756291468300171747579366072359658495265579917702379409920159091185532021616626749301674211488459465446371067606197923632050939018688777638242405042762636044984834880861400912183492903159257982466993935710542470667569331281277097081232494457893997869880181325659001332765596706017656425416323325296144979492296328846039342150526281095051495312520384468392034694062560905684240920158310468709753588487732413579099438166913405396109243748170539637152432163859999290930698218676392772294447227298167965399039842454400682339219783577572725912021406202573665762916058641157869934621472138149306766322148911761181755641411958991664804982356037618025348063903520084938879743262364206986286426831629658193982319102515620959572840011212297611204463707675675227313755348446822256325842419430000422366082336927499727523291523477720389899148734491382122196234553978295540468714153353625474714018137097945972486140482928621055517042336388549279019523688941210559029346651131050421060226584721980224720175894461594476444550694453421972696440017423439425689512182840102559841205056903468444378539376522825912267549370852888216612508102325575107486804620798938023353090389252121608929854555095162772843237666367147644768891476172110155337732317881089860835243149628701454732659324953238774585134246234251548281462002901248157330073876793672051394275388487308118749951730944134392204860239195560794261117100497887810104903172080833903049454871938983181581990425776735102231688961609134485310225104761386119063988427884904908866659253083648628277406897220869425671295125616237162253558827482304030571914786171159785719765020518473365226933681625521469955147384178108109090529996993809739419907507922659749373548050583405330668582311401106525312915762346712969717885563295028192210853659454651963678165328677142941938450185722413348704707460266872930420923840224691488671811882619770240172951681107375398716235095823954703836928135373530328583660863969744630539458677873152497110392808202109356360949706137293067560424118825944062430318829302597254716448447490043799988213920959294438596052409565202875370248200188006128489951754104875857818222191170822829012058805694125040983105531409043965189128743647540392965793249710339386280172976486089414340104393588302189034283439495633554520570445700097031563458907085786181687383928137662546309812493087277590077719776895863439884230939940008105340090855791182556960714446383030760345361771220826970656202758669768741293522029480329136268485084680369357545605613184055410748826909876788609018214108908201937137117545925166888248299007447507620873554507242093540237067378593060480059053946691693298813618450395842373359648256665345871325190413141482140279109349900668098707171237850471845495096335080212877928285337979317861887468745937480384450773570950739937006361108301556177043299316088465487762844817449326761234150233254323800920126182776745519655053543727725637596816468173775235970114669080358064383456351813279155123648408070107881081773225475288469000307714279984298130997084029478931210670340183598549734061039612430270095380218529146700658068451813898983862274480942792105982953669763526470462120950903714931586062265645183347551593415442238935215292260891790031800937345829069058029104733406712080858869900474786128600273290586432666126345001097207711083637936634996996435097614398358905317550571340981396773403470692075553019118996074155894067620604030425536585302455335693354484268075160593313367945141469606589974536073341393959255656110844153435192627409129317672149517483699778202008669884322750041518243674725907647523740266553504449786574480642915521139546706593824321889482239198368678276694365525185965708520534141376962446627265606674186416797406344522636402498999724139180461644390717257505166951810966080566524613379000335083337112314915757958647036652343562407877181410898641968565339844411205740676616370846210546285725900242590371587954395248662745660551770395280366011147599138183007087947600545725029383494312040532870767755241941174971245973095941300829276906350659449247409687149497783853599962766891761089356938877898153311553727737370690303569168804570897911245190748559709398947969611125687836202507534536169632497921978685423939395892042145483496853634349497252622535020404405550963842306344487683094497499509698914287541823972550587331104906998627379876364599720191232741192979823381354912782823634869289248370384147257176119941184907748174688310300142464528460500211651467075887808906512042577133367241272447801955888359521565282365319979883173584467946240283040654922279456804893456978480814323320256700216914021497398146498889581856931540793326881418374109887474774066783420944306039224976116641425700557871194370175456058675837001241953943470398862534089511012686384842039865517582552793104738056031302929683449554077112820462014254999481981859140181956916182184336117035374548253357383842034203172965249707421280040536552975476249411767499387654402878083381913058408128334724305210736644309903079177820330929052480769257341716982195948383877100637148308543987083409738835835062084219505967888230045670428279431990497181252910035286046885828122198006438422430180547435129255535660939845439558600925136022299414130063203177140269997606535768863712192326266719619875405038828515952909230506203149400644573076044153786674516800269577546878160289291976692842954520301499164041989097333355185991383352986683840351594081534303100582491572557775481869668484002340640826566014203098195234609634652351383076645253085737718939985529623120039076247406344225825849060341624844463629437882221673341739735250771984988762836203129571181389805731056970612004222701186042357276200651411311025938398903619068614439101811133159857757922083255978708901554073670301377626814040802150307603795041851251389287958819546578198383313643925074630116311271733205848554199521320079501769974950183360423906078972944363857825247974496463356592348903742130511546946522011249779508662646280354799042466710596525830837697449503888803304919464782043596574498801029231274929192406087967672137912838862955857769114957101845423566532436486145244088586006601570610548037023679967640943860639726603535582971362378782572897669423686171384755861068823180125309734971541088427291751268540212725786196397144366927511824695484867953720463608460661940441840377480753695800817571288079430252603337051020695893890753623154802943430293299629525428550079863974367730037989366642342259487398953638305519075011085694955837427071998673732044583264212699076104757537096707937313345361302611901276078557895575567595699198264146109952893768262583765876736230932990188056353748256426391072440931106124069994667196450452261718273577601222852700105293800698308609722485545047968783504104300866963125940195546324302519161818975183426733418728466386702562929518201647567201403600602664496566349213255890006238356653781376262726111113756755741538641172601117017070983649991640467367117015201661163918840014264501134530282006200593962834167417430566405143663306061908365332202897610270434147726894260338226478096080735888599800071263754815250755520944675816280361307809870002068405062237912498888095038016979540770245954811497057914138078323584381893967892652117129411671880592727442736235785021875552920715222143987577237792978049404416746572606632424214135569868064815051155717799233628380730894960387437885651951046445023558922066345400407533161268438137894989535929526660269606602745409140855376853978808594459228212962203739264081238757033143770203090451696850756841861587806036120986791027764752595968850562664449837803256678945590519367764886978557941919732247863677403221711834440606353401646325601668240490806071004285437614713931033637507436630803536974772747448611935703691312918497423033980134673609274238723441681277262876056724947096591315044934314367572006756506497852576009750385722255558801531902650165143282671708875814361436773059938469480796060341342257461970830726283903474772966712633515462757000500788159335609103917317600056205161628354971311547828515741031641048492772102421876302703931246731757511850992660017224915367449493804407343164354135461790265437709763727906148644773576965844147984122007296606868518003757849692823778613881590540616707142694361659081560423031370772625584587100114718391918042517317469967876857699076307059889877219810288457704842474722366343417960109933179821670922192882532063785087701267167188883439411848798682098877640235321115144466624515945830823672562238481222215161824708346859098500756927448590139149912191827986929990905858952483256463723138757849370338148208111914181335172409421024071769879770453620545932921836949191540896819655917205345275148691164525350435087973750988102512110253489371503093505236267226533444232009742756476702492969760000680970009119823011506357329272165326393218673498386936317533846373668329607602871860436366479767710114498518078543682169124594613970220142042094557254034211671523099370999050995069087486789865114565042248066117158984792063613256645563742859581156200970113371471224564485735391922679951836337167911739510177123020530115501117437807331818865385907559776449357734138723469484157687782889543466501624331823304107246610741358186885353631637862744137629168852143607295490081271735045532653311332520460400713139709787752878009508133910316152853676718140968408197953107190044436922382137743356131933161529622044247898246474250403942060136925422716665358424988130624192763331742068176055569801307469659934655744317087204463363769048001631060105921001113257487146230814575759447596549504949703635050234700039955340888314442424658993788984993227319501603846735789796460248830217037403242690204943320992345446328012183647955182237491014307687347704361803848633623027443671417613946901063656615662589339064254822964912946946884653525593201602428768921913219865330889230353140125855556950499550376120460061657352486686966662915098734262933588582483364410523706858180075742774777911285922333661019969148002643894854505499126599528326669049935806337880145862477069747604298583707071501810322818747291509249862367629593937538502141668463895008721015354340695521536416162612726327181717610051066670813576916087937682327691910067338760210117357421115026964232652812112000969720523723907726320787164237669862997814361489887449753756323635944543244650432297165590446822893493467696165561292090002599428476820231120768954998295412712942334869209952065983408892049992909891329707564792788233306781225860469723146547837061870741124867563365576247483699236789899677815476396311553331515489811691077408924851298572692870723393843610995053431467825989125587436388577548197538029942110100471248817129520022390408908997551944620349058230930481893111429634780536403137646760974717208323681736274662675155054213504357166886829836227465549793289771277526678746624543750555749106642462782048381579691052219679841906012388720201348581676802164416772737497236605735440902657205246007208107000397227446869012148506154420122846238313029960863336624766624324564710995996589030633279304478945126730250089617174160745481302392867912528868874120478058475790599126259455480192953894530050833124772927454547990168640535640953947247803366731495648047545179267003595722965588111902989093645316806929655005415014018556793092886191058287278879771993327970868204963303922725665374458139316072828428309200134850530462231932864073102996011125995016614434299888788675512837067078641407258497001863971940056953211634847990919908234020580417173243312215318424189817544677528011439684227885181579363985045624227824522364865190974462467055284932761261630652162409427790539315399248034177566566277179619597766545432282669459947714769883883175047221819419909797300993914498427263118662840214554417813928874386024427193509502897471459213021069797176890685779951107538267020901126664490418689417873475376772592413848704769378443096373959877306774416563711082270689831991081052010970482298721939406978083648042861371621346103357807319316307901197417032212343301904913154853344803229586799277986429311483484001625260271676161188633307974734355035009618305158005187048653530740950630978782197370137254933518642655504193725621604889049415440175369592833670824975429401991602928115241351283267960867747824070185541600662530680095828166841944828026343887406133217656771383311231045131505720147367769818894378127003885167879026127074414556325877514761878118032261064196537422347033625444930483852669236412248322481636733938324334445991306415163769524260209283261812006261848549257406516501412713658617079691592022445081301963141904175496882234090217756870624121400093783076781273623093977698069498586409763312976373710309288733105072619384843495608519844407521745208700468733336293529661519889434165904959932855872428377591880390599772373541302866195550094578948997093399721642350912776752794018962735269236433453474325244808386602424788161750239027905661799989701585341203446983626545244475546138699976193708786370075102059874271460555181847055772514109780983441022277202353842511044067425780004537844159972791412480887264468978519188401687405927518285763675057785785741419039961602872221631036770989901101855740029184085209485471920304531629692434886951703945573486564912217367239429933848542256140177441973879139880121866337336505056868549158601046829994987337185418778863691633029341834808986977044743828541889797945760412394354230427381405873663887697692729594470237249091651134775465634014186672996832370987278074362627493343755599986579083930735727355125306694694886124793570754230192502858509329047974241200242172466117197839445204047880752294656494757598066653150270338571920767762403254556302008039672675656872012595008765337052946399250720469591789198775580943887189506141611533759008372330294409464620652485951436949566370828396716596499200112057082528204187732761063425578178984355704801200367300289982814810188190517040635042730940400827483339884172144646457563576830062906758889055282366528916051154651476805284740496676272877204088412086732366546676409500689422032407855981833276689351382382095102120851309591958783314331139538030901773033403124421730088528149409722786960795485938622335149650420800458615186167384385527409124601360594206540210375045363573285729800823209223152298713631931663210859013545961478444036793769976557256010043755260478676828795167859859943104457993867774441619811482001226039632543070885541900137387082586707238994904291328050532388533872829184328647664957477499215227587783691391775757301446541316084597386340411061577770173452836550767363577016059256305087691892821907529909832085859179160666316545892620580150158731440821176184510836801678590694819470256584569593371459602818368681493184617235651178659520797930133051368804047173250285382192453814736207514081031372730290593723403494152358503368375449656949918184331451016449268963865307283870783598744158216637509920287482564184554954537776653419908024938082506076135496260574663503726481767841279892207855547197539638665227499935994865335223971684998371993453000524613654075404439557856933610778824312178631914144852715602358831447778354457150245663573574708481160110556856808278852236595119625322829489299991547573413869670737549661724068783329841554811433051559554572078187524874446847849562749001333610269675814561399256292297268469428996819643410085171357452606956745633839092213565115573291743756416334747747198542048939525562639202301912638060467127752490941104023879774082663610911560968449439840942220530261432041355214984583470493178006187437383869146155585946360570605871091266485937075367643430620094320269754054825823132784544504656144821379461476716381443007664872113736303285152961830355391522973590409797146488805670255599574265352198714900979091405844181530325377272368338044250288360511645289953439618649613086203750196488294886928825392981711679360070390509871669542265541236298625316577592413778735978434773677723667441913611703633684423502225667077188823840342371240134211816944734818803081514877754930155931373752633636381527199942477856240017544260081106363374952390369695233411715681200635799011273268784761234855657107889491322513560742767710456586407095950286495727857944558900012270719043558479995517753186985811241978664177661786282155792504063681118313862011643144634500345910466608238211653619797252290843659510440667890190476213329841774702139748108446240448699546773562558000194481349689946497938761939393980720458164731756089566500391193504357734615110609623308609097572806216183420143692675209902269023151706687872224235672585154925043543457788541005509290671330859281752594441539238635174595188800601030161032578437303173421799501030530536235143074753576573522875466490659588857168695566178185812418472885763394002513175077540650380886016311899941683792015750450726357406271134062674611763153347046814853016045464304534150765593350906266422773417014015906737960066990888280876699192964406354082552174925167984548694038076843447204066904805124078651527102564152657621089902527095607570535399264267076986653797360952267520337991435607071199162684823944678959802820234522351416925602618394327924379845657417893001870085695873268812918607979008126134993268049888611901585183127320194981131051613114390235607268117930010357776893098700118567368421359214231012359395273130170854545529692200099276297567169764425959690888200407744060553703352049879362319015703555576977795092596976443435514791494182635615795078263380939868287082377404442429444880086111530927422566778369836908852467797419033684875794385117672345827833687478924418611033876146070089688025845813265040710752276015385127145420483404212665386229716340302094724643474894571589518172943266028389498479802374087445272603511797240779153297424083626068646745061978164287385287819629065429852117095983046558374735272551859769105390049883242348823843372188227457966114188013777124423122824950977959615864853374749589734957231996517118183012725861937796024084831451706217966016345248627308471369716835507598613373047648131377054119868489244721951452028820538574608521422138080780981208322135813763024846767741534296628412276941898306961170125904878298587007508767476347635800016662033083139118819286913908173269452194369255284561679568584256029656188975111591022174779292295812851805532069506882006908522763147185480386968107536332465253662985014117073257559847404479785147044253488895520556778268411131850325467907539934150757460747375714981181117157349239933527285362151993640582469598258743875584717133254808517322465330830196903314830862389896820832688862530460826109729898255303690611160223662154482197201542824794813667013472447132775814086282839243259332136797740599855774747003532575667412076754104923629510132898634694627460258464112540476245978468896786633639995032942140079604261615299604312734445812270308804328528678765812367995977138735953163767834898831074392081989244878608927389711966544460680802593282947963319554667322728945906537736729486568141648841122999351989893666581136423731418774432772701277900160587186784460026530587965089156373848381863176964555428895071291194570168997769083706969224339507001430161407619741064568748573770627015752583103883006456478354024719822483844389990888239914125018779974527580323948953742386470754064070133087793753727674205080801748258139700937147076086661263897635348406723357366269092384979164390853990852434667524337950234903431146833316592862619847057134645515929428313389936747367703243534616514554608416941372162571693683522301742785682954394231067600938832681644515387507666115164234853518787043902379991646262271465789459027054009652066050204367552232059121519117322059135984030437554812446892906396636211733427538044992089208700738964131501773159129379116961018549721505158874919595070207865930307794211284448731477850324499345002297195724701481938178218123245240856655351790182132718645016986175024535211226740395011453605563420700435975355968407123905279968992198718486975060192917831637578878728407446794625028563948676226599879507051438331640083521813269150689905862151683696800381852526919210196112462287907829086128403135849429986876712573688976988105458338566067919734027584373470268197971683134188082025170953172989845658148234626090167707892870728643428800725500900045103949564712239279894921906867082630702067126168258393714385743937332620724448284100628771380714371747472049712188425278322509371813768949580148664195865274822122762177306454129474682232266270774921932697577180032526878307188070145935880796167009636134208411349896185072695593519730879958354781768865948338881230947411058136687574692677104373738138479195120636931686188298464521626821907531277131628990127113368525466258785993392326169684440834031238458312910080270416415100529814809116934874108109262828463662650599320693011723766583675908518878537313357566143200350241458219691816084892581845724027683604136921943849622566056648846290126477249314006934091444908336741794819516583201797210226072917820253596570723698773864201404846634482783880526405567901210328345143677573903754815405512811910532253197714617452400865084420075007288595359484221913953438341508654269713320830748131967404171352277389799395254001716815970617284911415291914865094357441662992009043912339186949053098717298056005239589649445737000093454699939516283692391948738240057025521165173740473045054265743589929854961772087644241196905161703787547476721117325568893167735842460896678155177824356404978501243038753423420083169199882809293118318459947903613763110028783965228516312646685093586763304649539817762016314382423598982836264765504128544573432494927860155822377064735862772471699767342918613252687503140939003487236717567142073739579717417046262326040870407406072822770192057685488411222748591493999992145923194853171459384424468948715367604520705177659501817899932063858690212139642875474711514122864736748381492826086541517405487932741210423536568455229806552747912603294240051495074366318783851501706740576696425427778230238330506726456988486997101397912286525918370624450762041294181666176614864170598980397061979140433227572137339981412024442773047976530325452098978059500581584409879411977119412749550510281000227333846798248445983957842789484972030514903225016104695205531554731122065996645257301951818835589715344282102992915880109378828208579681024062438216291467468943378649659756557379188149909593366953091979577254143547548746035552174849182797778403852194457227114334678803787019481103004440882893714813429803593751637036190891841179996976537738743392892918159794854829231070353765059491605530896141667626635915372129419850820365030980970379718920841611939901995682504418521663480146764003299800673671228690190178740810387657106014811184601564717953343882574275452229745511483241527843421529603664469534544575042013727057926249377212779816160817644191678633738972684247854475233727319657434547629968618546884047719493679122712371109332171822883615838756257489019334276314375464824016907799382677741913255424532255758407057622324819776398622165058997997886184912027314416806573662457195442902265956110029647263527152539089080189328515355399239702487519996826503267365520557135993509922144630996804347906123723380126053163596311647410987483775128036469888074542433541384758380400385989877029060129080800920502930142412040622101506873674969929340698738706304375954317932338817205325276380825190881436737866750474684690831219511720627562588094787151874741150712639680788463600426147436469405652216153367473077260832251702269702042845420833301658750684680909964340306469599802123571279559335395479629725518752965515260455783022788188564281933711715348915075714024424414796046084248104794203046280360196821095330304927147878549764438523091114311194730549108190233173620155504858117318825062176859365616853213659267629388690012262744214232604206504116148150123163570387867570908184619750777476709560382706466533406349625870097216002760882493973148004960238494955046263458471788437656420396405688990444048116615863963586864624709852188804912777952578252843832195384444910486083159130318531645901706059352324510354671947721166626765850182682214639871619819097146180545600144646730696524897146360112796326634508523494909473133970519168373828466890924408226913190507499490518150896120048589971252671796544079758091491547904450319662940396859367204772418596065581500692625483505463081194495965158904154164034038271584830400446406626315529206457325078538321544843095358730605149520894208678431939013181925761214083697470764633433677419931438897259685001944869360262254447246591622211233790684279166821152775426726117070019801781765791665542303189070574629360384719983378619231270143116374235810201345500914622557477113619431570423921896485976720826100799128428706668430491216039874426432220887693938417133537400881455952533482332487086811788416463336557243658786633404062964803560624562676984457318459778930068018052611931050809272339322464811562522046043030406545864936295080740208783133394308812156565366899659521125138064196986969523968841907958037917230379230300184837725887812477268888553058060915391371944197183286994780727091292637474822858375939312828029028169824218626721092609350899036440628026890938327900427380704668229398477044461460179712522688507951394107097778618595324573275837737089514774427215273860149136055847425998080109671661910023327686834549380008690083495358804221179603138287789130385419748931350895358084080678648191436165977034986509134359279225719491310368424650268800988557282350939671915972800683112301180654435541627812453413546476739024847060328909365819877288584780847286861219835852151206789974627517810341258208905386246698648982349506937936038432482760477277314933207720286481761551435897784000332907637464427320255754404167820049298586297739892941185002797627311046126082777912474431560813421312027714191963875650334163768564643665864303974516276229196820168685305633174322546861468289908502150471191113955672067568388024838230580900072138053718620669653305210084126064296502761231564128388235802962851082466426399722332512762164012847529639854705469046672847256934411603422864350714539070100817559133704750466990315867253428817008147710633709267905677481618506859257181493322712915238283704284290051367030893693743975166509067152257330737828011205420778259397365201820711919007535651986685817774543888590770565306134045669373856260533959291186764723987664756263500943287217463581815163266227410953012137516075265159582784249607540899234006194629036696312141658842373649693556906542062656196382911115672965299133420791815597725902890690697123991609947237425208077915552524755383760143191273799207714256435592529457300408814600138921779906008451092340229712121801892554526622813013525095714753842022420625544287138034428642806309195705363594331677573575199805266691038157977102087710145178234202400352597685062891663118328184400089555072577639844057106684431120466203196904119982649065914058546354061612381484436669422799952975339689971145016028605934935031021867742670314665526112394137515897626885180358247975679837211785912920636132301112682465221090191268777220739584820834105404701999703522655983637643365019052971290874143636015994113459492608180868152850357070991466829968603678439447758114263933074317615801874947143476751292192389453792564394729545804668797186557226567860479431819928037424045403934123973308851779021869191568530920386170931221339098590178788428316198113464393049885243182997522920620322664355943037266584071214959127754139365335130725805784537785478202872774533968278055615139003063597759429231593157227408597096218006328700884635687402991864594119723618629271139338757293501746402061634843051644026875281767189726127375968644252325849863402874034678756082974993279364575658271769058037818245334478961974657613167917639100186292899689349849878129689845798505815628009112880002803095515157985496224001438081176392345331223404860873264893861306392537922364591797572046907363844395160168944254805945479824961613180653506080784045677682462937586879549659766964617599165929314366069666652344264344298515845324670440385855044785715227663574604047774730079820071360469899428375867614776857364291291829176062423772932155325058816225370901024163140936247256119424225092935879441978241375090783581145197167755764743690252850373928083955872145989076968549942834579426032239632008237768699012723371609567486362503613427714828238684169842518850953299742794653489736991574097620355099721735339541541499895018062644643186497017465209063357984495542872028595632387588709982949589955605520888758708405579488218913361511387865523782327074529753307303750520245863870976963518270960510194832770239310217026624136750802362064428617379739759769801570963953191088316384330993999137730568680416421101076898027019146028566506343730737043704236329310701005201539504407052309037889863619521152138876892121208296856042503608937213025792121419470976053908002103010341133842959873412830506843308492202871665576432837355924182466396189596967236221213177152735441255782946993984443879798481249795725917195488513349173719071461883001461422164759827666822268416158149732827404278016867088345968634562425609501023716824186864616512778275878726727894569193003189189677812305734740396410650840800812156016073932200912413401148841067046178309569117289339974510255029527037773380595935208980496236987325027879305655471382819377405453641112993759742016629350576233600690920034669916202131659781623827026500183855968763568138506742423810901483757340986396534984873073122038607224362007698459276761151786999557581092776535509983824146255419464314414048086268492050054966978571225559367600451126975160723641853497103162611794684172565559110964637400612099119305340421709446351287565657854022696250234565670056007794648233654699807463663793939511229751550230645124343060832731057536892435892551800498905337539975748391239493424053282503660394075380506143467552829335223481100897091713065536495078134305816080889616435230013818571016199323450123818432361999930007763063500953573915143578643874067663703189494257603216749431046182438248225195620828069848774409948750552274200948944406054605343823051771940133849950117539398500301722410474246813765960283218921682383132792398532510487966707783945309398192137565413264695233382184370871599497672455375541541169810360772168764252192294559804234974522039534157346056077046668110482563360700507811732782436801087993923020976438380603838202724694913846397166355887672039255322778065380484716432974717171108536676402696432171986985439593178661053342852090302120917157057783623060817554758417662863629986668019262983543330178813726942815184912532813317683531222135119876026976895151445260915426463327559845884401304407485487683825632571653628809487836251404300530504356074382173403103941845972125698798818176271807050889251039088917401109189472130456333702087142818963138280189327871425686014487117041485737394158120565955057686974303045487101582372872450595495345338194715070377592721640177658035661151559944370590066009942734197296309413630035124441937519103008215187843199019142988410492134778201469317840667933918778670535845496510327285682890474909115315332323154310635767473219351078811639437254834601684267432125590558046996419360497809703990973968960330771004881839161878949393255553704338219959931388810631401096388152783803673192364429714140062055172768557934070465831578158749678154020421803477618913285940124238042961367680945319557908618593121514462798950636430356597549852417290659222869911357662790961165846104189420332548498677075118474418708806468039242913981814340630700141577106649971445731967511376720016043883747108719077909876596671601190997779819529302316680150642457978789331567592333418114588974281816686277885082316048792355183075448320240067064578987708137867225466562768332716481318055579258769393840305902433957187005256495163704120064226230536793054936590752801127858562507567566881724434964260520098093210724170845874604608682863077765169281765322265543795947440112015544143969952884690857129714424537890044050599536543261967012209678091284538675280949566376947669256529086153194082296009776526885366974817351345124769666291276400086411956120012252046198108528529879063127214886046430158374439197635138340155030304101612304757460351436282201840484445911300933256798249805206479370311149156177818512272158334242992176591365920859842369663827652687173653954458222336094482410157343597694175669782546519755976683011754679185833420986284482298868879838370234247634156617593564877767995471448910004437783662391952388900266733530446552820782034037721873238188670896863750149602360886794880857504808657353582535484039990843435453993721686884093316114179967022106566507700578152910106101942360573697932726665257042744313308917305323169403693626169939962557372262701334666949259217980793150378987760436033057044626495507076370939994033798693683418262389573982476623660417674691686541110957860727258544103758996372981061103833801721997840305941535450855762573706015606364121336686836974398915058607170819014084163174820020834251870041167189890824623250193459661082430578020062914703835469523219068653028309245148491744350971284167028162197789813137685956373307229370957393392852370026068195312634650388477856649025517473847569703333158628779663069810232586045149756353958622834165206306305029358566740919472847649284285540773095716480383117429513299445546672831030389630190897168142368935942860375487198473257243077459677213795088586214014752241960089639462802654779186653704379170825891432278725681140222072971693202210242080922809142163706877502170362939703376126688834313572901873905010007596689975679725493174104230669594503997612959309185592002926290547248887668921220140849250939900707597681442432667562104511089888280090738426432121240651232855055593582079963323943131595942481875779951984963366331797463383881991828726588594866611422007284523038556165990744642120837069732481547059190366233446493646557210567631066235669643276500115220736906357775319550678493692307988791734301094299414406610880938923430859846164769578895524676310170613485263757616941333228571658015057598703372305109119929471258956279164589902876417439174158090676283188600616624889534042213923463078023215554290729686821975229552711131864662954356196751141191920467124159564273546555177039040788368350462918996046818522527703999590291511003453775493889692784199018123296895914385205315682654540614099729950830039922556754111690946102824395944565548647108153124033969798360336475662005296687338316777022372916818490074941303555835295911806741394679093241937222352413522498714341209001893418636263058191841633401932555493331989504964963907189066612630731389661019185494583611148064367269502716346372051192279097987145795457961155524240829935191885916448627436425853249629209740567982789425926985506725816700203119761067074972543033877525255578596907293029879436725582624143348783211051506341747475495734480210924217856849048250683338952404753745981991050079537176405063653606943770443376445959035894903732823648783233302366306285595462675128699181775954396396194070297235657903296607705339017971490304232359477319753105861503640226683134592952915991225987694059269755202808301234124463990307237715549202167786102921728141923467536338182451920759648215392229013640725706843180616525160855920394728372082622964157329069361329752571715088534365892519358384016722635892551173083496257691453220173808508901951943838742755819659671777660504581722885453790742664056728498002166463757112155674353592717254637969256504707752122792127252032052241637744219687663923223719072376412230266389067864016723940324727920156877130144293785724057460805234252904247149489091070762388468136814007828360750707083404802636927960160476771848667225995444362500385331660661845314756481165801718792599424938301404694442610413555909828731951894655168262585998396470408281209593362384250357348831355091753974170970256408494092897320670658915002876793263839678693696861913964965577837955889753802654583610121191044631715326512227592854956767383201229600953055772831290490585953682745161329188930623847478471854237351463990983375315560771213571252478488148100983646734340308189576271802783683095006994627796651103204697735986589720004045543398933956571351990597887728565230823458261012097311768015275720080491806732217478626656266871061937329214747940034998680843048282898891538309699787609880683578196131499684866559422490056991991741527963353953962872729692369712390362529519625020927020656535512517952424431148039708460185140552954253427716655744821181092788094989776562020958679437304760330495728782463906864975930203164775616367097963482185093819065892158964860266457887862138570905919479952423153973201352337727459706894230941697374171262758198476300852472576214560625983546687451185836710308745471380153172736491086727598884727588430299522228859777657270139868845730693038024768999155772312692812730916047073173654031793940954775281872047157166952107728577016880836066115948906105698921321760185638386635583112731860236239583624165519198393854334546993022373548204452342318734675136768294603666828962347486575764900179790366916764345755813273632839108924167738923159593876287882738238695919436480577252550129968497829638792843596680953422018102723767629195263287639727304947266069264976538670477793243559257647071519011498519163331772775631916776489742980074518675895962562891891334600731750712640402173322734772008194711204711185735833694232970832189130973835927059178967487021324683648433186873313105491162927208384859784796800234919018285649370719327739360119548680307007346199936552478228172206871043130571983994322091130641640353684147579719055899947238245730924304072943130888247704680629158558350791995739723627462896766520966924516857292761266129817387337422769949060105291185028021396682611566716320823509878821653137646045961381265244732416172736751608842269404287936139839066215221914650622061077656608089334082710531476637953421939087316675898162934504879696513658363129772499602366653431858670827760068452703790545713355524241174478697395828396220202142766196537817101011124295131624305970721881565236785911880987413614330555332965566816644304899799565536467367649688559558642949803679630469799215272427327239126196502175328728907690572814533701803715297942972373985367069978539349354590761053810383199844404680107382070429546914103983662930351528339969234891660944829246597400689328952298181508665117680689998667310516237428175536256648385914809257655406521681154531762787959025215392902631112943696819854200630541261391778786949480538819308570601684250634812409017368103658049435888774237354026532765148616310815003432820659075862473466159489867985950989915434164200164362490395576048477474241198969905677368637358408386402382287316797972531983528595808381778409408421444571870289320898100386374376606379516976516625426728316947511326178561768085879898594029874734686271464049110164225675368456023052171123958210760777173498574445388453486322198672144184327932971843951805326283108086275166799762276327411410546712478123405573395365882248089367147734066278252744291301073293483021023870486463721226450966918977897919451468983451735461229327943594589265067899164377832320261900669562256358900118430178235851334541569577797188173957509234869529740336602436146771991941871086330984633358364886299403174792488704854015335507460354223725495171960234084852976415830752483998470173716318230484274876918667223608759945729807164440278726158279073118933621096770863012136087115892196924842084841554181664985803684305675971213337647625398958881498543875007678369822531003737876832160205331758576311549216875069367836713078885132096186403442522613511186652524412265253402810664037057927671063975043281355714208213800206487612325687664760518246760141709454748964301335654543518831935626089376000207501715533959109308448309232303134627164940079194928099326120814321699258660597151119212794623936939027923244697869668460097233144158440923975020566664338801070932900223079890523531729410714273195955535082071933779463600784198322449603921779127945584570402674803293944730728512595454303663988666581822596838165601463438017407627196168208871595066358026355161846710094669466639044701791044512209384570192901197898510054957091017382409657850520485137197766063284553371087856524233326048923211255458398774931791519972207976492884904695225399262674380272114782781534762984134679831444097434857570171418808626842775483254417963831317028259009613086323610842968166350363829324697149498815512459682929825945346834088439386032723102300834883228417522500229797964104097322549917156936885248629304705808417483852810910889175891095555718507607060325082377980520916067980113326198471674225994769307191211074827936489418247465443726753455771393235328696877280841896875356468157751450432775254681085112790621932070452742655446422831307377090857300030519911957430589189545663308597081198162499041855110882076507065488747873727624613528649896790044934244534106274106294652543686701369958587443240324637466354453176499420671954071128345305010831867299201000499231048426664011086343766253319706155943400041595609971967975517507613097252213724167691834494127394857067476453842746488113538982485851300300864814827027781964066253141189890441921814172930320869726001849233377454261544447177362964606904775433494762726887705108360136115518379629535366007631075396403083505461042232844957824169937323793526973391337032166732818680976011488131587483978994168698599075072027984898275466305958737641087472764180505268550964829437084618574578538912114907491016865099182892477102131842642230674962874004117425378754128364960702987221784762641034770945768516556735242288285181448152157691748253145308701390153989805857108615684689862032075028332371966185813878882817212787862647790695419469156309290768300587485180681516241310270807220426457963200820758061078419801599288174141996953989470056914114842733329176037081726859464010874141157456533192663686367109715129678450536813399695495418778033878859424998482905119531133534854747658948179633922006212947155756640430350490582834889885098707857717609073587614004915340337597826082522601894362603143394110021051485150707806511462043292888480007950594328821524152507660741810161950888959141714304814483406769091912520345141191532214822808359778583348328671826183427100195120154270000217106947919625556250676625294280190478052938268831166783047332256511080797437597026041852896382776225712896997777888624921453104341387369399823986528011177817663554984417537712504313593820907627832740568936345657999858602849090271954984048771868474974548049128319502492371684101953892829346863798440642221603977849120053105720899114953964260346294608976513033034289690459758162963333621754207881725574539747738176816980420414979470795492818888026912418040070421812107597229072455445277947521033571711380376056325184827403471185306092416876345406924413536208192333652402766119311441975217232577749916409501058465332668556378642158515971410400954743993338169504675620400973002111495392104198736470755687080326686194267402341845612032571907093818465954316087448034284778528439694129948781044735908378816951363894473247667072912435443340609273212703746581942822122663192061981646890038310673275973921964659658898098345664714273495947472006142754492764658547787783453048170170444362813239280744665985162849959150701710162383055726429686671731150033450890645507753362643066600953576020199951008363737112398354893285582314255584285180587652633810581489764023501143332690256081708194738942909025381111878065813340036410274473119251924827822421071462892958904079202261154605061141970201609663868934649026516806562926285930712308187059652174690012625068569711784776957430798046431880072741919863725590697986752163783970669880332275491110343615538680175433552671498479435828026158111735151321024082996897773277417717912539885544968935536094082389065011884247715755145856963385450785792208390653216872917704321577869003007857321285173207156088724556250218471560813593621216515005087871756345437053093270695809469081144545122778199965987777870728782594057942821482221940707440951447622107112513749776550384420794354757463315405317901157791122332966454963887376640765223564845048775343244935115672882415112031991724346583719100031910371812015426769378572223359893891324382841935819157587255771786802320664040637283588722156522213563086500765919677740591606726112152345505914591474013714502282543248363910257990887282118862120895134361179995878356764668928335419027656436651119968752276637355854354387647225550158134373897814485095489278921230864019191065098899534832867589222587913868013537162973635900379883871944521007008144552049914556687909751033231029885031932426362929482161418058416410869264771530919581268475186222548264512837379811641227234354663695267613345970586358652891027420171785603838727243996478294135468531164347678398011680246617566664663160255323548481894597138861021489863394540251725282255821454682604460447528637268573784859093520984373633709811090568830041498338119191577097309090653808006697465974379031036343550941720985321968424886060478539876777908055405628607781489403026241773179680405703983540585524705263995738078831464397908484254572372280230563649385552947688639558308429585787239338060198390791547877787778846824637330830425175071432013188304470075118071598020901061660859151617202027771450863818533546511472493097025586736450771271733083411005274712496118206163263034556292720255333314170235639541776397646983191232327162541671559613093358347154132274555107541658239328370246740142621470886461896313385693099514069197379148248890880306899939184334731364100031529449159919674292407766988491657939044747037136626072521028510701583800258207686973364039860334682080313835884037213927103369183325393032343622959711142711909746703892552811069498735206751008767638128256426566555809946348447019156972448779456724882824299998896609082259923965053072655652932047421470368372760425234083764396298213164301868922382215185280732098100410236772146257285288065209698528867532468236652155013088564468786966060684350239734280220164996906688631846375322568983359687528409714836962507566583622426560782709381651274010368272748611453584663324149224478917701133210312839896785748280017349760121535061956924473181254033209642035610121405864636526607550546847884610745694070681898805332662516441171171882480626329181028978841252598160602945380694401351025673259794845659058018521297364871051783515500674750043144187890936809044306125882213518722129242585953393888120156398047256773806755917297667906347875649075379482623954428935660038496969351874154046565702675529758598918822948566416071792655515100447201591393986806352826687986438125213221292275693070998024484590807710443973059293647024385243596823540980590490591349856245297961764983545657016043620637921988418772909883750660667047057580475139904493849264136024890004221466271938783550868717135766518866702360811907679623602276571886532233418420787847315862760356379953637906908576828554910928090859186879223019728187525249629976860709165724728833669110057146000452099166760826624572835309018669320102966141949003970541265849640531029634032795658464457220228100956709403254419703141361458591798951071944279059575703193172538331727048263290304717744626253023863503031985234062126862107049610408381619681083847685251932860318838448699873419581578132367008263180334251124454935485552989869291317684511007753357661731399002972922490941185956391115194620652511715451648568756241747250792456047700869522984692789372027210722616146480614283226114813559573727603363340688277718758854345310486578460414003091735612452017583217113720055220630397028019380515685853295630170962967717077184931427277281607968374833412840758740203025386842463888354650203043957212063207921673701933428093929526190201526696424173366055326159798430292804203333246831344666629673033725828594102306226423720081130399679555107041652267123680005171856896720859861865384737159063058771957377910856439729670790218553114866647826284435430425047338950786702860870827670007590013498191989782042653638078309076883596415095856509770947633999242902151262482205774118162139452105770582170767543234469288696604625041421472002639904480231771440107830026612272781512252445327473709390950605850189453538532875212139003890736646985950683576054764343416288840059788417965301983528335001822739262353896064988058155475048719183796375595794958883431365431583082824635978025129917634411362852287994082596439642534016224892886184404234670228065556966303673593614372392431125819247601769205426299678677423159891922085427671366991809332799109261213197715286357354978212310256920763917234800524660407992329274632530493548581899567785470094796017735210804543630763310949400163967517388073537676621794428277176497344922169615916362086596883999330741130334852033717179645047800557182211355315400875064696285408544335556836637696022994601118933857172447026282224209760766961893853942606081783981900686767520462429190026067154520177904869817668657302914199026365062083179673005587163419136604226218044222955228145818263524010317916871491826415211593418386877266395681626513873184559696732587634126920422953936010006115597632119005279264847072187145290014820633251508333065714260094024142293087932839831271006233795646338674000339643669436399161354591556162632586495887379685435513431581621767431356713265871992432865611170032411054286163427550649223466571770995486278414367524898668116879886750551603605057243429262023144716841824583457414895003627379396462428996679160770265214363395172485134496388361953550391470431915915557448790776465031869796475840515158248030480062080581919332988954682723925974068612183740624657847486152357994055538076530900378013583490777821181779835000929483455062674231096509253565224062132896040933647924524976782509036745714941025977867049268995924630969177638768779473957605664280725051259502630026499072031484621938028113871041917433872828219387634999255875287722543845848468812192624846516776988737870790265545449130060679323798846883006542498790369064848601226607835343793171634072712535311691529481051999511971844816677961056749128873284872619373880783378190059034738072328395519230048107712750896489122752010220458865659774955114493431758708764412144308553383065548408096189430892879170561623878595801385876039303057398173561842304044540390837903208856690569981421995368229239026760077612822932253100651988845333038801666059582277780703481117551497110971994756690731935159044667430030797934219033643239633598454681803324073533204980051921338572506179516991767808795585937193666685225008462844271543579582592250438187990119929657607083350336330449275797114209233104882062997422047645284744447845021932218178945350357910694840497385833747072316735098973635097159969880139241174909509190163942978904814599330912900814399277203277127581425304165179843293917268237146796677568939834079743362756553167026815980208548439334780421976329924977443333566199390230481940994836612896660823964669612106200094661095648019531179563953538959354901649585379098637760441944461158493765498079691562118769411732396742026212090216779458661630823757798594946707642267145742764604482795248958768375323136460503438302018323025085082858329757282685811345957866417439149080217226408926406460308203981224261069509532414141756731102882574642815519153260127750973182699231524195712229577435384138777561375153918650291940492069916116018987728407569315632677583832728216276669613971694349234045836922728553347316707284373512597406029544273280967582357673477150789651784711073051253974786026418771726072655916214671250648720049430891704507264943098724109077625317195036993280135376586694773163869867091191623511172277483014700047497064321517816912849537865060999083983360204828487685344945686889425388462726483337929365738003912878357530128985803338468675081631481923775941465407835466251987981764421191912739344084332218829638641122009028765580817541916380159714182285728647672800815243206768832742702685849152441854770516949585823871055472718409288512941753062617914361712843909317445350440629973775272786091921560940693938996251138361849746061531605857963157346107902067679349308193117999560475644559491913830100503744295815089949362464607865923226705460573890251494100335510873772482293761024232494133014424260945344675783817377653526869074538071858610995633190767481940396803447290866885467376968023180017745752436540647876709885396983034456269563536511735853922360551331057999833527580102799970930204327737989384856035812838886112194214412571771920275956643769209467352639461534452654601912012054653961560093724255880858276153962387311237529585112782991443898620387224267884112083065750522973685703217340138250915466095860821298265672142683756455406353589945275911629994276052257751647543306744752756800628457366250226713458460609823108373251215369426378517592543408881859404365789909111701891574305614735194444400899499628018726429174351716710131259138351012318549170534283961148621054703317495534944223013175879988374518848533827964965568338887583723293070287785023336390098945285675659901236304899315861818424252116700006510295496955807340645402177452732310568043602567980645462835754268814938172935955742712812710672843087778129765271826285193576342663775950990636106894359803293031884209001044929186522019794300433320330275063706013362198008529887709367922022215906718391171119426392774466734557086769297637818361864997056647254406838301434581249461496967002067358908754717254211724038434581873210238876151777425099693144226666490898499169025654300382051531599016386228059601798121810238217400738564782355993688223316047618830286844774449161097366951690667018517500738757205206765309979691369910558645618330734536989097046135293088552919666440333492417160460800154519946913662294584645536825566991060908343764468377057090916326013645777477007313215586307668167568826113492591527281372842966788958656998499594502696073185176381773921985775537683769967838384234421798242027739748648452578192575986644865882462953171076683044162527402457783356453849139472446584278029420653805045499172865850309637349055702390918471713718349335314185455463889433690690012062122785873971081962288560735053722101043002109835279357274174511668382520733568258698869052285259786348180080786048972112424072068189372701545516399568077876086982850538311266872064821262778303471176982025160601129400459763134972274447034290342056551854860102603429472181747268526931663253708757104792563862272721277046885153914531786391761894849658549544700013484446430696684327885749004287402842571140662119765839559049208594882092824377540753237041963908761220280703277614682502763147181067174232626107616763092608173290841164494138742795632109330619150489030598587593467321534575478163165334892666916018864128566833383805618856185255719618921523078738690446466173721267897430229680291934466766578415965327681206563307665339221405098056899840325092935195341375667570054932337921749723485493851402146933008798665103612138092445677201047339354056646208459392727618488339769193967077713511373327853984077250830919011163895594872819560419621223409754116243207545561317629626710748906695983854923041933498956544685766124565326949418358352992914616449842549203595298993909049033128621932952654824681482228428199462149933623530937580841854182227790276188929446766877917457845862011422699022953218373449682167392758260103017035112212330207006336710775775744970654597812345216989722440752209719243940374003067848715079510534539724382910740856200663906784459642305382552843812827278966182465218473031779553827796318721235305180348620165370326633967465695894240957797389515852869751134548709038034061498515010903096779555166750282113079078819275593081009037270455882261343799328293217637861472630683134407762281507238301194647530355123544668314223387062256822162243176479563084875083943067225911235833511002136931563795203515906293651935960616101122895533898239601274641758768306502813851066464883521278950422887464022426368675913292887870171213241958251659188371181058985325997840616412352835155605775952894333131612638529086292380354167428242286354784055639850987218135592988081859325870415085746263071084708183023273687804593303921448343782348154338708532426460984814985736130018701057914805155315148401483658324776181170563151976093368261760144897387370948686230207369142805559821430300270909066930842194584757523032600675742253637415764840973144005343870739320033848640113141278411601431380499565959495094910070970540187343478179533320606670222709694850548573989686414271358959022152234445769999954943580387164793368470265879737870153064139505600464451215055950098556061380377121021519555512228782113217516201856803177988688445171962044334516331878619248915874167004679419086277464604391551818681434748459118542794151330113488949236730779635512491750145279303910545063783883020619541037637021071463912862104532502410023095097398882607018791524268929175762754012455838349195713497674905383691011115943515371159246067515319902368134153298952369169192272951227496870703191111820595138523266971986781867367905599537790266983835758396422550726180322137446706337046946960413753433193942427028239970415399586155765528786122940023197678751110858722045511587262943547546627175328954972171013591031566877730386821390042159893041204402058593020782099957892039803712890272971081633335204980382313887084339732323192371948534591131412258569156765915443938559242876769366780538229880510213328969715688232829777006023023417971947127448818406821154139678766991321131703299482320464024102250253352286703544583435937178136958827522666813508312537921888112241848636854822547721787582746883861889662018198511758881226017854555299787044830684501665147113948045427326475933123100635456307332689236220474316201771145781326837782146430860602645473156200895079281554438547815061874234087614368389303995727305146513312703881463948500458855309631644328131302631517070766866988423357531312399320668434574674554743468782966747355827483111660772176977848781753974214763178905441129103094542655073424799678802500750883429411799029871690388975579190842298271800573532520144664642495038864803534204185731268165028906959304524131263665252528525240466442484207498072678749214552779712409224153247584053478722772365120211988629872935116324187439010496396257775677922037048590386350553455218601631764995732224200347642118467109746730437189257482167341638722757461795687186914235421223399166137210147616383887271618932222359860547241284061073395022889964897210335395493680670034136362900519190930348164399133828383267799367843148134599708190492519785257381154446049490126421923612368318695371823675029542209573749553224928366993090091155423078351400953298960742707542890537369430887100187729449969914589722800464930315763898499545112683800524236253813281476734628552415253357089603672173757827066070253246636960974384077696999684290876183275127391485019370811199261421049741705470113896966161117531689173025276610095994104192128164773238874521480809917236388294728203715118009636049545931266064641983703609273495334613620715564290216214142663119069739332030228958018821797670047503725574773743178322803285347640531823317070266913264917199851558555586062627298311448765960502516086924018820310783146066280389815678783360622750369693956760659640728932591650037807592708305017570204686201852756681347603682094557269625713200566049264628099235822094207636369282129524453580929917044067083776652105741794894949486882487531431876124031627235542505458297584616725873978143445152859776119297052013190558469649576432876015883172869307594178081926357551433350133338490354258125568462995016972783491759270239650040848921754274646600467024197042335360691646763244563588450926554217631081388704029621270932146337127259997088298652281998594588151511182594028515295435851824895296232031965975602715378739672162611519825076221222651444466734256739853425144641907608871234086553828745932041388869986378677711595373887735679984403653430475516755036189879611546766443184774717478473469937668313351663780038272250812065218920827323906343173283907214574162917533471217963045517135651377130369702141715614527831839731238535049001163403437321972308065922371595372349588676145483791546398119584732405151525886892307094730111657892746726299036667938843237713589750813502847121692739893986502259605057871456848338533247803252317373249127851561455490111318769704176876969990119692204484258635523609982652424920845705712108772271245315400371192898028437838386096598473993220823211010353552612813105724636646932586924674571449211715471562229889525053720590501900655092165241685857837338261286757545960158261615051035110728856240301612622883620775689359331704397831943356912053565868882124918238800406854031954386981264949615913239925423753298821644986769257140918271062897596098965857236765194844993858552871648520079906959143201408845285976400408756544545136329343289147954046952778690152230519421411701897880721977693789935761998282047234149602542393918150553432201697688209511756081606430672405722284825489593370468330057727034672024619774082666963756759551831187189941683978847446219991347769470938029846759370203074506397683805675440471551710634463036413910953450555243908495542932074108300349695155975396573857505260193369687527870088123644307670926711576555104674797505021216505512852496234169445067068940515548522750827901725118657790143432073536003561382995019764106744823393925170070876011577740560811834020204773907696819623447774328489692537057229768048387342994276091907115877869798725417809344654823374431446221212639047924028673394606698378447369831240142474574050012638562993159603979984011653238335067194048942044374638743061661406545974595159996521216266972576224296349113431702071308149689328639846558800056938388140215199600490494027326666816321111813911594327395352634956747455331752605001065269641257737848796781174471219889854722167869563816483299243663869561148212305539139614924506060912803233211318897362607997030982178308323012649656432193041448961076121083860331222678227592926658277510441761538808321611196219693206027432659887389265919291031440317238229969554275843233143515934513799402481463760344609952649450184867311138730084659280174845831378123517685688213871413321407827679938083634538551445760109871517676511642094841850848290940423576124836374270865547166563206888592398070065093787323829413876728948940520362073167203248558372155523457039304009038833741651092529249933720549144940806015287509324908129782151181929839035632292374297996688237405305035552166710516576139550297520292443969859752861100569710793516560910788793139881466314256028192846054924654575189109939512436503365067041007355659429973075604854468914724465854030644094819605266372984510094092304113377844561362257888788254949223184420017125259940408409413456666490217083014003561629431963065942624633801505838146024502449847364582864644294974779357973881228765432977382805438213079101950084889053346218791990193972556188404753807567148798552953605217075499624370028436325077675884258691120590601147705515421145281905321987544806004224397673956565826379891150721470952070181925126993028938933611588226188389570783187077766732532153971887145362147699980066368609170645183793300837464370628932831513186492562106231125047815034147387597709443446787636574820921198288347478428487859439245624965175755618507487569850488524145849070355235443642899149832023585759092486006268401893089376135949076310753030637641959148469754234398095016796804253892074979447656138944973240575817147140649218215559765130361755021459077412022678779456756537102974841914820925942037324615407561421048885779309131980128805703051797316195650501330495875583433682742731442025149536946935981917486082675222301510895688845697318351996959954426659153399190513733352422126453055004797124359587582467091281451028591274788429553314515279908176919905968196232956188704278377597655477246192221730469065299707396026530539765405849411003291204665107381811262097140109191816002766022445169211036431020197635098091394785344416264865757111056081574671208765368399717064261804054841052101667745389306460356241017817553795286609439899815753235021815398239802723011171022474584496664536905136974889616631666538349949460353055336701447396602925632845975365295924307685520977573083962279240609856534110056658622616757206260415559234532171458398805483728565964297847258292700551288952845075781695154294712570941366411237315822848579245867325641155414382982925779939211863599904546411395218611179766886247921916881047621705493630464422314327435173299090969655470953653849706380236788851885806748381590614270924058106324577549639939256671965694624433997883310494264679646269568207221349918563004147611247112308393083854571013029548048811050637187470418783887312182528236252974194672845557624148417261749719480668851812726279090081925181492601845620979915906702389389193225055797150293289967726358666086450418924626183464543850987334934566073130754467453108376647017847945223988088295119974437188895334228832204133854782800827390564148194650725840523745526499465909738823982684353929993332525821013963551464900663931449836983596453585099637469818390516818804455161604082943576043949934761199574455850862456862075269928733110388293433937906291490514638746745264337597887400733243185171000770531122349853249183096576382530812915446054496721389872736901163156838868058332134114439067885457817375880560737531140498113542645100708433097209235566957526201891141468682674760194467734432761628131154385232753531676707230405177420450962816509574059650004322520758106005237584833707908953103354681969196523440785022826243647849871934942955747079936194137681156624328823438238164406440694891868735052416260420785094715490830705111270873037802106380004464104801644566930901923882656926974882225574760313566115385230300872505578924973492191779365246211581279605263424915219795748177053450987812099787344646605722451398039349500666199455970735859177935582516868284748131338726156906288654082578257559957236675001631418762962036906555620951341783163673338082739612931672061267701709499186109164230487912697338094867983476944226356143643104047840599768969486938628811672338601495735684156183147359952372182124320456418465268783453910692096657332862899538699880758740083105679152477458690288331417086017761378638993316579180286276538367156862285961436926298169221049516582525652172122939545327241934002950416845947883534879634540377807684487833541392971088932750892576588145094648004213002061403565007485495096880259960528207430122330943252796044970124883778824290288480176363165943569000184807451553823588866972147283365387282435570743819325458892288524396948968161481175357018853180636682531742698098349688999827356047351839213693147299219274430939805127691520456037000364521792322995227093727820067761986889431096467097000041274351061466909304304493619858699935122700903918603543053345148311150527544796793068153311085127245774324698978078486721747398374235828651729066041927547739759073067244869362701563314938749915012859813912246223394204978270539308522984382619850702748654863926664477116010964752168523044021420574836329055413889219675285614706756046944228512783830851566761803346527333985168806139755356991363514845151858692720344230086731140856964155921909904152493266029699152185158774298699176154800429282507621090763759780463280461386301604476368837364424504881602954611333809001611961601856967227716245230417590569544800085271843914804806692619141624395774249531337103225073371413523324101127234810203141785413365707717731998225163156899524001675582924411439413883380056629909330062651685600632086941200300887677543540789051400455351906674593053147836962953665066936162696222194079653326082638226035856994896196736862841470857513229886946703658489255986551468702683687008751305331635760466791596257540307886649028413142213272361730196548084114797922897704175759923177706513042407039819216192756727995400122818358897621991307926597791164148749004335521075849111588473427765249776746129285206629276618937347033644136964155599292129769641106316898557782024686185218758594038794003466670608133456399863312309262523667713343542425183856428756646841295324236113208741541897458596143660877694157033661257745815624299460873297380687842997041336886557930252728091017560663471872833372302475833587076676390694273865646011088118942482440062049737938461201708092447052658804232573478284085255337698997791348938647588273277838624156092248874985837441580987403732331026913662867069296579034198668382664568592644219197012812164223008742160358607832669805221723047870777030019381363913160413438022011756158853808818018898240731875868445330629670344930508456302070466598854314492214937988965594332308475703455348139628027243882651124865194034275309632099705545845245440459194712803406432861801788901419509782618071904001906538661715375843062025349732887706150839743802349958753603163109519283767665841798868811349930178853293794353938807475328924233908279557211316984211561281522896628689585698159756555376952124213424352427846352360619285065541413110900316705331413167400159472493882586514640297700812732923972844318849638977433203211994375588437470566122512779809519447098037011474325029562198004219777421131283704884494556106527809626226964052024003356851290226114182025979491317326406868684371520596330688119237706552735951693991989691019451820993594907568036114702290809921949008712600071520093133287125730887909072198617531223056993696166019352450241290851467996035935059560957133576683459281488582850017412310877430858987663874652606613604075469627087886517827411558283873441985932442631296432342016631820537231857879921671577484635652330360917988609448989154947987119710669834680454247436230131783136170710002238369316606592035962864424451285317751435614525698603780275537782017493492522689223070260435434448267853095545277392505683234529514592887182289775909916902429870544059782293304204089184465836075905310069957599687746652449342719452870563863496236452179560057061581278532781581120144483854641246755761681220322707884896019688019945502635995971914015887957801024709823064202031770798998319920616006774874211643925154459658074922011305869149874901398293143924414033695326797228340796381301407894602043668086763499502082470958629629722293659715996606165358654415580688550696580092630518293529101705564298100095418717020125613846216188270321056162300754224804952036242279028349421471427117722846193720018008935849210138911261846668441222791210435196107120577097320536965534655411499571637904112643152000694806605376536854252520933434869201782100511447047121667986057332473266174500481782349480478351060257075474876603724256259346391255328927961510474272989264778232314044003504490847364761936568216271732078958835852263858038445110205042765706048351009510617575845771064937694556487638841964005985887651365412406681004642571094367026279823215868821498980876772790048255293623957493968185030946260370932749494546926262008536565512193663442870312147769404444672214508153527023252207111313124711453558007987379528843382988902627895206443569402900753403894933441831176798327708495139145984576741181163931017751454335719986656342277794900829094386525141202469001877393939480959484329669619641538614822404867126383655120304422915921663656302589345168969385702633640977141126673326484535116772851116544197428360068942024203389167581035415975382589371874251276467532922501837058160639282060960869186534765439160960805634738315238291645837370114956817611272413667357187332370713320920011073746938313269592497110257354735631432580686382948076906222698047060988032131237556205960714658991876704300395414397555940590547287880446022543089671311657822952068854270341584501014219857787203118321750051617432178779461567902644957124820418296291592903566869705560915982481284573245383085046345964861792860255108122725036568545589567543756968836119636514974777436093907306735234088151740596344919544653248153196659671622174000988614363079885320356117909500445404630060857374950578997154612584462319974275717490580200115841732568944525685100456100492217316385464765470094081469514333711953625466328778592051505270919557192519386225872894805313068257307603187500735145614171241695092249200148119211764573053914469233205259605372525075062115089709926145994457978320689491238929109077514583935706993996452659355593318704999046971135050894823882435353466836321586024467268126593311539655695253204907183070610667350398535760909911639046270585192767933540005098482795253189417264849817249659350516256387320234706432926923958762421528765614360980665301514139510053816569243024448902853934853009703257298381146004890118823480744447858161324484121963674343056862456485054807067970217520880977633256996798110862522115787519408620627391215240034630182020103131187182465857820589762072647544009830151284241758682076056512461828988515118509919002602169592651291081354339708199268203061574415079866114019252051602132867495513668931741321290962294052931646329420441684148223225475943386958313074065444195214721094568622596569356588213053561625191322572269237206890719196995238807018574017973657453922514201148135148875066699508403534123757838502090240590234204893628979661707400630254093015011847839160103342241118555507251426735653984579198177334699033288505837525074867509220588522966142777701946313561008863460164023278231301047738131699879184771064088421645849750607114404788781863506508868334116953322233993982667230716576014494687902960635655883555614854204715184327725592401714414622980380630516755773859785368223182138541470970785800766645143720268154202897329427160991605717321051252850987315337506215016774031253171081089979530744195939796561112580768311423916706135485554044651717441641112050830420320234513439607338290163154374360630351226118161935399582964537382950780665790047786474970098189169537118739155244969528328113455912143430333103531691761066555315696576350278853083952421019811970777414793854855288202453629693663337096312517726970622212858557082186986187234764187582222028767561804314925935259730446377147732591082761289101427903008839550378654301148754670109578958680484692835855093259758997882782005591600639173668451264435510503832137648051123691439011071203614628788782510181779975559707091103447484911492024364953073466035620523810870936812113438256827541918315231683719786706183324875708146276074152489244843103068076653225426651889177673291431391765006973135090041604623022664385584000658680399570435442892463748948024030115113193127484382192756098960895536128523355599024641078021619791628370922964426745564959722906368818267967739547357721822421962843545786706397124547824379381343398857688190123159292838038037861678595088879538244589718040051065501852211461709858992650311235316511851350724864663376354363848772382285974284995299144088012781262954499476218750240083035844760952982566286268633873801289294818590308718331219198033920018348063683759866395855778444739470300883786902257489086147428974682404215821613590916248450421624473624831675847923360110204654087621221936615163556016747442372324946821015834114921914694913172018580526875460211955929518165368755547474133700690036308026666435943364551503450480693647279562343931244742576892224667401907005513592604639496974688225516472907686312164917227224406299585518337612085725181310690345353774711468706247856640966488216263152761739303495143384407796846360539808625252095188149804682135102479887743732570071543463016788025994765734396561471814809948441918955425265823106941721102176248035893738198911492098655768697437570687904200023206697982623283135261563891874264198485789130926484190945882339830775934172852036971884917201503202837996446254050407887318359560257123051203580912417980791152055760504666585180642003283892054830017395660128034230175123258672408655484225260430008425683397500488466819502477402860245013849810545657775657049150202820069721216599606705376181054314253900316920568680036300768551400356481611207314797934089039599586628898776245043508225550928146980941473699243466357082533767163166305480922340393157611563129017246020272842605170510773551447006054982600705745234111269316669652658147807609398509362146207204481252343754179589103946441948121189626086198650477775845134208110790194518503525353022790629917055739371798826600891264440666232899152933284181558946034865821072953918353014264706104826475401991332626410834481262216704170213201521181751890693072518994481067001288181539482861577119678126434675606460204682028056839589133323740551801821940742010093615588137915522360865304945462550826194102720836476309004515261306937209553874591298526799703426972769500804326336558169476261483849892893217777571056133279704665176929852098681203970256575999596706508434171402081351232415678048651209863843126080056150979811994787451055561262698230714857407609691718107700960297288607628791967222255748082789849119740888692834529457511408982631197552498462174621411950304670105755870949944336602644197502043932301041070144189212569246647674193750264652954419492211482820331842326676674117246512673980437781325930896120856069404026111580471133851945665048204711453982404663662311428272913841074736426586515401606490711086550859617756836331306183554266637282390419996050596850479831846860189072919483254917785339880281240787564041563801456506325169955713981336289557570206910295524980200797571825977205627755642228502418626964193984581180687552165537059071428455977697127867014084247608266798050080988220202104126209288354662938105960620348238625962250044523036757533769946569974851666912385836286267290455011511077688493339429081857088715120685577381640323387649653282625562934881650579111149540215631435475980094144138352928849196611240039255803453149022321795239359069712907173593904538798203342206839558256742151792349511159748078359250418777856670847804871750471128726869483541828737528705722171921758436782926753991162752210083343195971613116815564568120284847871258589175010339470111972589050481891093581947175826846603136433866160461381225923533973948419915162286464529985310754608482403674472716830139510102253146946668358852107760949606756095600151888497265446969233387108102309750443731073741458244048187129562695103250988478373127079026508133901418397723022983721902879569322651336958982764873988257291577233893777985717734920180895153707642466064687027544909416424239114654540715946611074102817568044848979472304046988357484997215254030841384881325365906075172868691169305217022581437388525283108415604627533036888575206099161929810007474670066331253909255244297460306245908766193085415450810480348999854339397933140770669555584210015643658519101027292138905363412937368891683930732543821111205742404772137031737652573321629680597559821018450702150500738522298770307722535455210991576332817705387275685001633051175688062499053766433121992988699798155392685354983052352416454308304102817672667987014717199395998457219746103846873307148361925712083677362202048208938773436361329718380791381200136014411349017869891878349953000321355036131153915575806662790767397531076765368778743370554095757844502432878249486690034095230518747980682692526602220429384165271173645886384905053876229974277750288969357518476633531792024632803365521950230279975107043548994274261219648131450940040807002865840667935200240437962333922116623326720935254984442216506780171958438666378381059726835640187059217672970651440787368936076606511301801333905131499049221165309039747482389144848937230757090482251398745864996050724581188141934177817742165397600554289370542362450212039398341686757717615602072334389168843426735486826357449451582382647711426844870213904260618144713620293376843071472701811945939827459737581258802614814713410981324758517745461913481237645931558395193691254106419254788968723854566012680073286437987386840202045640572200629210815786523095183639527778193661231051305163158442638301970862266956378217373553143563352535980326889920594872167116558717172740180914234321145732855791150114779206876817106114095068051143138300239636861499687718600461048976041048375589727557910367702077047125746488348594206000975351855253281106523108751492569890428670212007649470162865043081984099807699372737985395533158483012196813005691695959233177073381052730903014127952004601800717058997165947752262403325416456848184611363390770009499749192597657762107903728965488247381502620830487054060117943289909744606370920022297977844519905145205737626483749406539700000230146372486578630939923438917814101254572745691136332488415322917028590195001081855958212262453108594356717956455067434813412001332561297195903690992464509803273169106417999655320343466125950195577357685475074808149402157954288719251220696239823663679025391729082425700789701238641014664614306490252526467198894381808215154531744064519940216573637665215920626023472117917966049888768878655808420825142546471043640148602757980412902877806427091098104028629843029634770618610165047604488101833517850386428053600084807891171694746608866547508359956448337796574309063427146876479819581656223594021094075002070023287967208058142171367531451550828150115271169658246534670884619118781568129071706764635427848782291316307303756395868225192639604608816774219872521750720278324021648957519742814131454472811280550471262970872951505375442411386841978430547444112915931888420944106785135337642108208118582310435379674456893924218918659184686298199354375593823088912118001746439464501616371416301170444460892399394007558267098143577171856235730873580908867340466564306241905436139250961723252832493849929432588724130821203915241034202266757137169204716967860957291617550528074979986127978004740835591068998726549044180937492792021961218046873865531627574180944058080207427760522473641833670213314553477722786333378054807393932314573861396175835158686943023058656358255641518333853520969109907437990736640600603283324548296732334995991319128491623252645648830895966558437458533211025590878260120846268789339922907989596032163959698084895354134228921528155779972685523318733127727212093288672936912587487785843222952280945945968681138060384229582897644963536456635654965185370421979096932935777386102550356884334683435916093728875815416374561455346457494259671214776198131258963404388814333844575567419376504883717753999956469746329654599603167325670640775697124642594110155229666691724410904767134814616198722957329506798892300920355365805447884612316476112817957802987922108483863064138802070521405082681951117549317551711783173143775721245554205691642180378498893376440807458462429618980178018184988193803801112861668002914786266255559587191731568601093876793419478205729335488389280953417048305386237915626167388797484639277060645512642545090657397803894856488499408221019268224152319307933914581369530618116859936816505776825451423463720696524118112535810379107533559333357444969935703702965945959135228367625884154454669249631538656985731784103289770411439374444801877860353491499903611327578456137129908492054583164452987626866614279767242842392208559876011816053034395631164665565851369255450851825625497853236926275706326394181384701868166152852640298427013949728810790049481092493784469388851308418854031109430083494333647292994292489400926481664712516680884713152927080628748850302552418101787926995716995185266748676287853092457031995585479610000149433625553993740734492742155157945393878424335441089812371732610630701086826728811630502215156720919292183052776059663188455059085062424359029921995925713235548654357608372335552240429308547454823434793650376162029315237536779094066847052896548596202071565400955225523875436870712782371360994325266495445612660557455485006840206694060598810752752159048913771931231419511597057320768703179995780297291468232832845126248183419749021460639579855049810564624894803492497942478944131999239799831559766725092530886298145985254294566963429864894075164408049265287806672100445686025045961320526610649239609988675123335150220693496815865290264444925524910611760891369972955233498385737057507645096076188312319322935902724365504794037442074570397007930423678760843671699614702381995863036605578071372555488819793521928665484740589905466455730081932339837334206978201881636904733332234227627832976603950758197895587476329558266585097947098608711911333518869567289524805877092813729568731609009944886345962738485913971386480542214636730763121330019190566876949657118783320289242101787721348214250447019573945858523609255062199118011269837767000340888317164245597989374431189039767424613835210014944469020002727928246634199334398440043982019674940731504548467216745253905810526696421827363071415369820297926639457527055522197316315955364597333972364785418996232943280427885429000567599068855291135933886036585582004747705084001835049996102257294148519770025473424664146766902306150018215822912854364676724528603028266302739169144914447261419913107098447340358541164726587955054956878423367806990896344270798082831725519390926825306732040467867536721283347163905451031407312478005056015066515706371303649479603174348926099380391870074911577389133527163498314985738925367806347742140658925081767177073234584379524511936951551909012197318883430078251431147665064153409897760860449017283352771694374690262947610582888298185739476282998397713599585081197393687855701713302028206608488942791705801343928354489948136819702696793241260040151795903136424729407869309575127297546653177922342316954911713300819744149264816644275438440768995317170572295121261090973944598179705356092505656337731504341514567974965319546220810203513474805998547724918895801357466300544323332621954174230169605946270315843969249480805832074132632052360408049907339292821130009880531875758216404955436399999663403521706058910196243693135363645324215920709430078988507977164838403414712506654252923670098530977954019921625655455346303613805963499737396125895505060460895717832964923224349060737543132885561290215927789223705568591984102115744854028932474863452521459542423736469584203464364913264407603737987606739371301984431302486334415205775792631360372809864947941142907621041231063753890666680756172278462894336183389690005091660612227855070426419016592505847328807285546993305540758076262017751048019593279774814753611241256439885577936496880452402818129060030964182444527033227984254574937044504152681072015810875081012926768597728339451062785323775174314257192751967830618951053535885796204355830539137455050483265737308511981142414754012597097001571519890420004124949046164503092315610466313886183948847700446954652626598346260722470970853551764715933255891314995627114486995764022007344405852870830545379920487537084438559589992401764470595436990883545411026615081647507489485243648953151559646581089539459084973716508873406983041262230634401882284340408466648479747281357719307968832283812961126554723342975309026774269360723575179103777551126465558088624962084117562232782573962183146884494800503034036575391568959169748845051410174663270503175401416408590743392681843783147470695904477321518909223260565598476705604131710940716981145067773985308006962939766333940953401692494343191250819180559520504462578404673008841258253528145746007967065608209304914854082850785393791684063597238682851547259455449632607807158465520995043669541352648609203204613123504680138644366787638907790642072350188553735038829116992405836340107970608541248624102083623899482287088427100760351107920518267560501088556779320851798067857335693314509975461512648856143045550101073388440903208343689520360510711544853335750299729812921291065310596362682319695406065825276860224518465030599567283352545127011914202274488989048659542343191051537079511478237717773817411230017892820135810242107059761290336360196964653648259521387798920645741321208685060031465431503048179141057915877712917360208120495227744411321536613922651057279908371804652682721754259281459318322522284843445171919963902079281729727547986214999119696068084764247720901354273368311159617425296739114320675614364704900960836015510848525375446637546743939109999554773492750508522729400740013343329577678798671354657144911691064634129487205845841119201576302688401840442708495093644243676745600831478326872625461295489055899225394756812843623596208447628947728900060033571489350353718989514631433962017990145882877853739719475762053095973306713925491149709482985428305567185208217871121252806147974375656090681233665319989834764894809857481252484895406675734195273782615871489912963880526624930574132723565937207808176645872115653266120016911448518455300236822541358460471329937500461790711612391939979725057501614429102502138373926966828947395257489604766449012102580227219371460615588706891584628975137270065114204769873330037115501438381960442998801325175590260906958589425057573260308558621173815291985080506523835507129638633308610829107613918418759029775389401542871945114135504765709312650324753180770579710127702226394666752764850954073959317738600005114351279821336719499910482546141490955616693048768727396288454697326041160876343717138136437425966887235789334893538539833870596133122250544664656735203984786105017464285271791532400023086567481259672877110512063766898795370219022344217203977180671757116765919840901677327636908050471047101831933888696406758175203956005272797902144863450178272771936448923603812088298069372750657489868947985777052985462565904742871898469802717525405285566867449842860624149097941270740674833890151768802296913949234458389102497555667215983551620103596248993981687176780188467224975940551135840431924999722253914523305077671211726982584639410844502298997108967982582517584794400229478239224566558114922761682920552562992518975451396637620089722868931852667057131786431267117841972527583297944681154872715040918683683161359258975655390785285678135516910908974004561751656127330605940136716260613706057502573860357839340181246264831827320974681012114141641059269772126265497564842282674133456045493252154646956181541636266295580038068018875249283524048305672459223857053634557951164069524365686106495338397336112336296124742933075104142373045160788511288083263312976566185706758592562988276220238034988331242869058574826799277765803385544765811126486225733867406132526120698136152146180371529950617744567635828745878732225932760863403902426985655575687795688567460910845365195310223789700075173888832190107862157616254470210058323154041669355701091296339291384136300198440306457880467100119557158487955338980573892921213637461780077308116819719259458625914575890845742750705745209374325483229968768486490809234444917301072680240544986871210069066312127736316476008581960947061045372574524084613859736462887384402897792372147612473036478553511462060266762694108865569280774820314984021997240667660949913323846958038127895730809405957451341174170842176648763704813178799488754191628970869924273888981522504461880716212793575380512815789076647778654452194349582394690523659670706246694921238905205207552309488268893371572810139889122215127750986686640111027182145263375407818036662793577756364302415409397074521690989678867027280191172647751599058394988169791618435134633599407369449450057853348804584495457979535447637340505234374453955527610050412054120557415419317172946111819897224791918881160873624964590315169976349043075546993047579300555656795461217527717778812822735688344730238740610105914656208843403314968853916717797246947211146314027237429550087210419955849109242193167895182430003470220328720565657369966746689880082988939078698581949587308824320724666584643965836646184901261998516980610309368283646309297505862288164424210070668167954922577614718377102112157445361032680835818418976733494756071017417321760148576820541453939046369279540043439566824123225852934558905034514170345977569164617274360384844602929745771561688133200764267893909802093494936511308291877570027539510168274244330163563442115344156874684496744380366461281659895175157691478806938658921042882148942912934327646331405784769188517131204716741336571452334860912153596139210875605727419581263463620630662431816941928057606821346209959095621466254740114846586398335845434617167851133911709607902300276245494794350733330776590170229917543214924662454853989806062397083984417618288055941397101429000320659300573324723280123779818239705469690875580236015642283336069849604849323281204128330342895496221994465045280141994394142956334872054379249838763502562223130807095037617317934061280578844150342934652023865930158900351685036739490902434809861420832950888326285911032823083489280692595987306370923232707207564702671007011061616149888766970029116204600599807070725493830496146926730340304905184065075207503869144601063203196961916474668584197224837228206404115913325026361597122571644234065671639979036159622208190478731074740043452288108946619539962865003639640345896009665311536212511908450061827372412300930894543474233714132595696530972651067433217856897233139066520098115165205140885173496379947962296284203990197594240039557172074946239342006913772302010461730884591111201594672285360911685024201494218958689344881672214633523692031757374863186641789938283385555461652388213564313809053722343815749034411426048119362187106274783172329018778894441225966922162907863595639033075122224008897158675887857900784096906698199202978040307967987339335913109954694473699370459048645488135071307940544463353870488904103581506942647372092195182038936563038350579453857181049437323593287199710744469170845000459488830086856428875684413660182728132024091249747226971308741782576072074203280421992955224698185599503170063003108435803635768105458618136564217562962693335572031074563305769181631163828746359943239527671355888846101806056243667785896325811082739523745045874110782251186900023253521726529564751556151455433052126385372438341720754526770004223801107441486536863986062504426794498215390494112736619595551603402353006073148552412542410155912071631905401329278318219558449743262954749908271146039056541674561830438578382006313747572054438551501903034639930673879421945446670547841513788762518402248628869826074878912056415201623227136735688823107170747379726626567680979624653024333795407578392752208649401220258041398213692534074642658033147045297911286445755658726319524966981787679985803139130227851918904860384942236359807061387531372046836825039548499288558935185871046246556186262264942286406399955688011676049582513089708924425187841410152461195951543528163882948097765502723673843785196808828506741679203747998330877271262043686769283166457967242026459172234864898271784871933454875254277460556671702863383909627999128365316251928183563026330797289247267125017593415613615732007619038377433898357304474014976889496717281556450300196860674359220477425078095895541266250756173417302744145011120229008502372491189331290035334150679789618120426156420346279613345134694076438741735509785496470077576219963045973537700758617446311946396248703436346319862822560651032008625995261903151166790333672333278650335522403315633391294444481361729624555084121207377261181628061124482857112341466916714636146768385999013261978099024925716872719677061488396394097100734883074653523626953025552022630985364086809730861623112804547466421010601772046000586914746174247833066906809062408156908300549969592686043153219384605891186061353612182753969633177902225021161457729391066834363388173792399912514531706671201642641672298549809489790365929516647153303777137605175657694753468642656057477081165226637501049401825324918163384797626344822217803311680086474181498479636157657312566273359461080149942908486650816761586611455116944763942311071702229747870701998225790877240527781400007476564997576961070523759897223704181186628952412450688075336156263369909957019730897379048489654283132484803289951165313518984135962632039508495626953099796662514855918409780286135681798693858751938631122020143426243917376108258167900461667593020325170463721208388579879055524158390839315870039037312086756124537784268758691280096335922400987068008360316179848934901882537674936432642284795520436862526069826194397509168138365893929823280667498178564960972268796915629676673626179706843107780351724428886053265982316588071423126315825772922393917253868422396682637812752163382776089533590930983850218170874875746004730442808237831216541280839124137807238926172173790061710757337434132574418907058320548404325738093247494114790110385809123368803941807086895532676241891367202203786377521448265895879436776232819787484845741586872019231130712894270613751685034736981773523444399729114485867045491576420231516275377932670850984352252511565013920512251000989440153784400364539112401859280138177241917113704938830696851765962713514630835434761946733209428077701977356574627182145619364849965741184694869710611268924938890060599526458695259747090002706037333422478358430694693725947551382888451850031368852913793142550485924298027418274951123626289619814354476816702781612576873542220153394964186849897994625424590580076542627285532041656845021012163136214306595712313360910320835538196246783923062452721472793094358163834979194459931225592821534288039695511532024095820784705805519544004137485381296173997316111966318351102592008577276296461993383700484836809408226812414828416494033330555860675869160125574168051501523488244423666734906463954843811035540645982736766844619693767820797245942353838813596468337476331505298666523572212931042190648390752377647546947371639083342022179695550490846493342124477776646996200115760827246490883586894214769653448528278419602238869252733741348797050314574331254569030403040942822056906714316040803625112734435120374965601472616349458464049476539973999405970398554827008421575373450418360054768864629747757231059903438049148524965901267216116790709984950707795601823270869504347682148948877965594305513277176543563847927887899717019904550083923643309835691833503255002262469409486610957964371898965668916787803133690273462774349542405455593593796571840682025737358770517755466571756700568926631559391438158073016325079376415749702598193611140475195318774792555084437806661893170979243460948609280799021328125556052300385342026522024024709459642299690704947218697846277107233957723797923788971532861531571796176133057522127896432067394524787346267588163004068813190299735464411894975590771430300529045042947937663770989592179804907592125873937419370146539977602589542765799871533258418839593792504465862476700918713498558193473144490304762444498655195675464312839041301558028093090227843766612640723252383851183658708269049810900516290514083951474450298373629031373489784745694886916219019440158802025046799947468802336017986780766218890847305196738799941737636518014993871987320139617811517091786877482251090444209167459658795741191230417069330202692131996854797973013619966916663063885098560135816861582570202020869782439774101668958709967431871008154819972126285377326508301215740853961709812075430376358296874627953803549389584765879205839926661274164389498440324287473690591052959836432606288175704619131815728548272373028111468580145511671575292594135254285967680856305406352022914951685773415571326523256798566037437324057623014056886644951657952340432659746728115950389310063110186246699899402640746731648412373969537755512146831729754771960681415979406914055025720787544058134720961539662118062805930403372768190739289285358153585378354184284202487825585948460140576720463278760020571533958905020842721487770319899399607980804150495453529424428741115399695165433917887519131320159067913890997461113566141212095575870831994789701514010968635856403404145881593931646895984983130454755971335739374686612920957075910281487160868027779369794679965922766056650198316728425056911038629297251655677728244297072418291356148886655588979931888346523513204293624663056158936213688260337940169300558108059078712294349248858092511082794822078326405787392384966892801914822451251841705452146342092271644184266219089995177833493950640532764888137433888436254891710987870779026292598764112632553947646057310933335976747781105291432424165737892869244564213184135575516334482487721169318103263061832380555162034138622262758602082883618991806727030820966944764172606815484433974745559879557195555669717548740218694685541513134654056716794811556655983360887237040500559478402230112737430619234809859952959446270696841823576175467282516781160217393466301094407346818011140681656119089664221605102743783498322131384406001283782602778861926725403843447575222191790489150140992895410399639770864371738568951246085957055457846679883879048978760365673653380938910654131397980731571007273976232447470057994386415638308035770966711595729930352370830009917871683076070304209792462607871038147916601338073955649905112792754970659986451304959313317236703782353263897186921310030853963363984721341085625730216269211854237963407226796017438877514720514243497667384290760216793784416010956786569523238154724520547827933779765102810651412961745838667615202327843904667104995343991049681843989989145401190922923579823656090356932249671428371571919437644352141268165372709411907409378613052808985625450185035933633290360018628372717725241625957857025396161834945343352781515687817877324932546114847833739834941140847981058456413875290087738386224502906988735572770736754465481806426039000879322772518911182318816075819558247643151602139387018858132046895533869341010393872949839395392849003563931083649144175695123158322402618351597189086455040992851317451496058336229411907169132913845355241448646060268255997279490444353111096211490345439011124286561607206526626653768999559316513074185909275085202329302093668437038436530774260813712492746631629353122428118689066119279190837678649917048568930677957599323174982723915906362002202746233308255795913558468320442052436866907719129823131706635893859612366184469867581939384471552570669858872806820049937485914942145915428173219228814614616177561140285105787140495450931640965785733790386724137260294524376409898792694721274462730923054709185084962641871895141486790995674522280013633835369900935785627072408890456062611831433718194113917567485190988382207464310572707182444797528981175674937032686611725635939863373862371744530160243685157941570322801808782883319482727754989345335649158741203285491253948857816507395432581472328011352702182983672569240855643867367532848048440590443768658237183990632549190105765295803269759051869374854812705013830913725759571011392864228937743029909490132711828947438015463789107623421310115048537612454600202631729171279895554950476810561332416222007395821045527250727068850315816428222981798617642738308071103958773825231517059889543661585206268063541485213997675797501002798980959520035278420242847681657643739765313735967294127511280418884077003176493497986209570250770911448426690165667591107029958351069942014500843346344865792012583281457749360674510592998155236978010419332441106313047028007435830036460786669975993025594166631022752919973083752604468308310360006692947287304870033974477017734296604592025118753963753004846023003198182043894023268713265232213668878279804446197655064433537315358793157291534342870357806581462560109714067360033121119510090359694542421909531494369077061972730492828305120439990875348075634058058592060200666260428343755227445951169715380272838559465637742458284591832997341171632796244109359256837853547083466152425819708539260223135559119371390956602608231615280777697031876653618372015113365630843787441961376082518173718529185301008490561140957500158945727319521006390842088312474183084327394197007184675006067619408976167538450474006021972527441551041607029490634712343480132744579293523284427174102182986380413645520764659466605945454137813810239080577174139283953756689319841003799980135918434651544905358277646989802080883372547873454211486021458697950883752128371442460970889915668117920340904364880473598549724655668164591348617987882602889304662664911175862410819432311547179641789677583221882946424739079834595064066129059840041086554014876750629428141129803468660286140203342790765359882299827630679470666484836681451390286502196027534907503998565857721933193609037191228756096432460841922702009018625150509544668713390008242618370757789814327171499585843840924468871200629446875824550243735792976097401167615481901368227328827265259002995780170733551444922348707963828400147624758731456736820622770173079770857145024510592980045078800096523228080374336408073420791978305514865416172798096788548370541305626547580668486475287044162336474875402220821492979551147919679847209893427463994415121098175177251165445257623273695884823563926346858462897079716452212855817654300567498000509480638998283338074405326385571163298773627628657087399515634121249703353596136320513207002233817726484777477197806779926379081455047921207703955666371877846410679357090689693519372609341454163512501101018075086675746588682737632796145718088627265997523657511210257640240777182730496581775106224452298365709554584536085303249246130727003630568693669263108637897081439561629605209011140186697329741617467537014451808486818485257441924319674984869303335192196811548543977998124649898921872826797947369301840439247878635545251800897778784116736996845936292998970961543303303971183062560085386328105240739590875001848133894553860202616907417588875356046267646217782763985679916431809678820045092806332778117751563439278202075317785707493023460604811901812981609618424036022334632823107558521021876877997888621828874758134777555501198834151819261135160659300116268329527929952285694050196435097838043654787154271225234422180164659328847137488580670624178252510836420855879369088322977888918748488795632137928437924173288754336820401507392994344447934907637914429987062300520818761688781436581523919942309914771266315564428228002643828058783318446371347662079032099785653693186022829313706754196756998467104608750134307655476533715788340486067524632173856491940434780401155121950978265583750781709173101224443979024524493157634379496008347828548876537831530017009325034815835976219452392235847431253179780005907402943564967606170863127031637854699609898174044553552022342306389474773235457461784485258263050903069627385459355857616014419335611454735659844086247427706256721627504584374336602257463378140508207432362527672702498487281213940442285453007296370906955316377364498560778935586168567908985560540628761484684180360011448531537591382833226583916654756454172962805395030407085103389975811056346947196074599201410956360911263828808740167304696446054287720138947636490994010980667649075752172763108650707259243018260434933717869475308945154440146961978665325172536532186299174024968767513774700940964082814680234418605411408275892847035424133180094232183567686361928216934318339810589278151316937224813263275566045506327422916070738917449263288971628000769692563582987693752022322968799733439399740257564128250504644910591709322443624686533331397541471114102661680499202041482087120565550728153067635540448692054780967353729229530454904958299153022960012307661871777689079034708175806545394150006570221458971983558693976344514701581481870309501894816917836114876297736644750843630965842415859071715469635059277345673996744667607677006590991820841331241622752365978956117008923023899181288957527948618352183043603628046399505236647137167545232565007493625698336445028592689693317257046533071340938368740121587491965263756278742198999196546516223650949602076285990406360798096533648054081851473483897660246668314616332120578152986342356774353662335448521585286972248853100452508131224489227690366731783951640640386065421168261936765232244932877318069520478785714856048071700982155042985531448883315318212525351088267408550769952372009910273933909654413092049429269731926369189413412331925969472858309080872496649561507545019830695562610937495550714441864327094049874548517325929831263517656580817586822971785228873969664838339391240950473918200323373131283980001306937026697451544678656763931462134183645838002699625863987639606092588038455181247005824708697869893321343169010352470818224717265807680717666050581909471625968958879530326974146800635024320834636624945795673704017968611548620832313026986460209353484435222198102952799403476796457520376113852776004932557535147498744352189663648724707247996187210310628551196164344801409760537129223870673885890573359024221662167333205546855791427407123019137525665686028266651549388533867366239439251203883468085662734551074872701522356685586055233621614565880588614020526721160547562646400293053350762492580027780464342103675954957137289895728656860931599063379633992161750512700644507699379222549560454824267307016788476546494306039317576065820322599678733113946477552193795886512385162865775316704465170235807121725994759900544013296485232100541220696166869000993717328873818389587261769189599599842668130885929126149719336652447515735497319701707999105722192999241406302447138942918374949722587358239133947102113362417243710894395759768601965823520455740837821336669066470956311228343139917048311631548310601959095996375279526703828446772110716512675584137439147584180728536035968358766228563912915750609036631461640188619767958984743358511204384877757494057375865992798246840448840625982004561704794999022358181412748201795509075015227427493841963561129251652938420715959612120079791342712665216750719989456508311603810890073449443890884520782996211828968162482364417448991998488590097780082053920021246076054854418290410837679275074142132629860435609191942875140205150905433478059654204996784542554263240637697803505539836621589269649641939593826125210672926189042158533297416732015656578387477230299971521645497471219703304431940256844921191764733893229167963203931701848042119242043668696457491019151542684965550107477387323826083510998864243644311366590439656408136148812507650630341371815198125191470128655095017103979358019306136445437494573015019391365541377018204761019546346042012076280276062823710558607324354633665969994105601829656812490522584259076161853385378611434745215030446261715762318344770410272766183536170786971288338748430748767535453016609464767855087805052219212063032866455472895739358217374489545487539629886431468765356477876080646654779920476617710926671181383318211572201776229962585484324507474271948047460996442230638704041186210668479103899773390413650354619428338957226777844567191614930178784122268846408355156134676996278180977884998148441562960444518657328306314801879817298590637008901249586684996575418233993908471362912429171149625004096812859760705941700003301010401883497007436332576015027090725597588391187884734108671225593423379190926973779145918597535328349442530344581942740313025851322704256683821083116154010111723097652579801107953573379990835961500456215709168850802623525638486043742165141652730362362320570805963617258833410207755019575220579723011804258710862621477214550463952916197428598001120493789606070255067480388222604900466090693342537306353290346330479330749409822256771158007288296297389685747984033139272751787279315611550216815902529144336633083523540250837511919611271103250235074052312387360604952702447061838987816860072808011316054269531496291353406034430547704600147669809340043751488436795799239386816080664373905155573109511525546103815837207803267532047720822784480426766339904983474511034663649686865761217443232472803074251679034939072518088983359784792432924280423049282702844042890171501483823395843109786902079363635823630125939628898582947168629524450448802280209322457914440763485817014114429517693646881596035598288366248713708725525828943836462338705448318933883795892979502094771963174988799918026295122914766870241853536416595478654813290134307457998051090403362226577857134566592032974226468584476515306373581359270792667060005846624651145776982919379215643934152477751623964103434836569667056800296777302216756508304203896389712522812926565078955763432271913323183199415738481422283185581659320492128658368441035944614922162944594451011703863623341472969325379200476638903208498355878648206655292914219632307092981187523139336643597085129108381994546486577383269101742912801759625977769201386364351028156756890314309379332709467052299049691366721208302552059765815252437192358630959848859979993261287799363878900656531811368508458281754154382607433388255932066481922462817722238055729937658781323486466517519591015247009750720500390308955878739083789856588105577978086861493103621502935265166602619538600171173042988886268968954405116975301005177185267870923452252399173696224475199569972817394298314874094202756304960415959112926931312279096222362329780897471628079731703787251721512648258921546259800507520875717956658119194355715625760322330322365169045247802256009294762207239455852503225986944892999508848524496701911885585251574202344879466376534927087553820545038496423712866123109186082158158699170962204318095636687619251760302582861759424464682296291790923528884452060774176914902925345190326900305166922860254205466303153277130373690407084033603967705994525964927215689115612636462936932597500892903230709929962984350088128220377809414493388099040857531297749753573296058908674842970007539475715265174195766455542810557544533549822201667472901924956122539722597814900073914887736846903269173472071917332583618510982752225020945087208367972865906374852010953408402213405020562464359524207157515718126004944169210009253825933449058444792608281468340476757641756488892122414568719535368657029178878484190080689361787531269624408402053319936267129974498173483031025855873530570856193833942895450207504406937768655864926625217842138252163852586026974880437844340469876491415142940258939513308135172269970548668417936422351614742098976610320810591901647305143781883107390469923985619985505484537630420518138051520075166840917410910014521667236012234653646803239329777182379682064036150494746572309685025637359052297599838881894493365525108653442843163587582450453515492167743356990538865536071642950775835442796704042678320098034695095004113812623900778229174913192593632910086344368935510904611790545253063433767081614820704085704387871677322544201416241203649449783724490592733843682608685373269929822709007050968725189332640020015374863370573190980170639278269131258766120554425530603407579825911530054288225773434787573029044247054840513081443648066570392088458059654050328048807447204375708035401130704088783908602637724422958853850534453120302981119011182178752118830868408148505790705311532656882060039550408284242430061346928838614519357153454752314656556378871731180428702877515760176388517924121978914035910941168761688533651317603450494670590554768779844759917193529297465383549016446313401379954480740384754961497786720875952645950007846994859651134425795603023429591623108327204811721236874898462436935582973578379670896720191091709015212475132683546401241718244514260355142152943884644675682256471275821074852727318725536992546910712592446705077077758059879340886355846873161220988715154679098573932961224054932224725232783894245332853914955026851277922064292530367624411067254979526105534618489903133753969036415967604336322990432935103199963785770033710524582051991289867217825403987942640305927983011255335566446496343381019075480550713950734118310310922788751080803033505846460839579077661211902025272865485404183978379166209890098510010569214436628502691281405816069378196704562929733728029295240184514539208464340382582550798628618098540662795038439430838258577231178928187124253293760042204272243359087963954626657201490474215856268169414956137059816287576925661614288280483220118137493064083922814047394743518387505380595997609977718261532090480214637180166556655603054495468154225700062939108484050375196593896674548750795116660978204083325003124716591038869427788455480726500232547933731409754367852535002124340472559061107288339733908773998141094581045802584833909455548059833249873242098237221218536779820663713149247264863616769983235965177782975382124067744910327072302369219534374251271705120950556206667845777326904790067136008751676878448778690818567588987765925337263214633459845765610370799652311496470104836483280834751835146586347374350475435285048498872107641303127000980915547161151543136044091739307985512487295342904100719407164183964085634705592089022089859929610503371413972587570676792382943750884205909092074267767789208699567801978412490923149410548137638383746112172638446937928611744192290503126075816211636998076605663008780529855386581287216683252559192433912979736837864476887511106500887369589152740368370233719563883294051875467070184212145635235052340159848004076008735729689078380325752698082368783938350187140512948238320177420130315061291966860899223381763720430253755813707018256123321293544764343791653094946621295638007264160688870151049864812187899568274143162948109883137734299616351351044895216521504710677407282055105199056072017398680583956353307860392112538884423161852034444375820166427008389081675318281352185083762083489043277218126615585423952117892214420231331967728812934819375557150814386656732991796207822300232113378364422323244733161735377172157532479493890149117440055428577908504850621766611477462373040429018846145700620283762961560992969111705652289841811666697103288524536166545473169505841105399123026138749495640884120271368276096545315142300930282999097566668905595792375222279133474343757144046744739479715627581107482065823521215493224310334885246748571718045159693959742908083405150195349123336780077987603507075156971621786390632209101559980834473032430663407719706181169822345874404870967471224651604412928335495834308654989281372452297847301848310582512656086166202296038968664248643985014591483744074435392749827399858274820137017327643158645003411099436686436137843992566108223753644302292939112476613570593668204899823153574919055435391049105429847171151078745605629750492544356265042271717076049516789347957954248196563000207284277899178683532914330554982352677747151092222565224286820943341190574236570059961847827919596817052870353071755184670977681954934471587793709539015252329408295594749648901381496387055945453495192820068667696734271532041998283822385239494401935512242193614932797076862118137729325545020727579016217238105741961987843763707982295722266917992410181620669032768042464287387038374113862711760315886334018249530807181378611126087108464563022788037615106467707450291287961754748474147954281136513783833095258501738772993063150466129983299788096322241214476009711781971962390347102319010390289174250550509188854620457274289445990443478989202705673553090967700288776579495924027856289705207920863844863053485660275188986921569763225541528828760835101448092765751948694115594904856207825749977053778838397247629577098435339455435503231566691341391364960174927443644521624019765117276906233915238710152655585651870140454492276820518141270297436678144362490624409977049413560427219723903502595519471939724806297825742235761341509103274275396697384897937409686550339321377705522400034265987234948365514859356849588510314823257853809650692985000874351909945408662745222007894879241416093232507175909698526763480772676966554673927324765582558565076928142190057443693951785989891019574803069029335117459615145552349409635767024499549750353694932611389419505584810030287546808557916082859223655747144800040594728519264292961100339397200193794783332946125179167642850305600665010886365696286037099372504621440764515377214237060255144248960378817037315640824645397428320881651938305399123418327928053913824084315271332572429192490779429301396326445934704424475058610679368683449611180617964684762722796680843635312691740681044262112609191585199280109720686304470025640108459457010149996054942269634284555140037187581002088152715444514974900124779660109821430626980447000363969057752553016251037730458232468109307467884555264293883513644227267343812064153257121209698291784658328434135905238761761155427365898239715269202945973232548470081772697226118935053297754271002313977571584457026778557073122825965244377094293121520045580679809689041173346152639210750286194534179901510805229591166981303380360869529219598746359965370004157264262759573592305809179152058180070668338204329596384178096045422436198025524571973552030224231613839902259942043342991763751672330546631508521863964699690897010809476672575025172273719344931092964967522724919243324538069830227772415448733478655623819135836068115200955443273039805863339293991778095523212044213465114171186972982062775301428506495668539517686186919030526265409181541748703602246074558779516896348312882928833346419681206499342546812723421101087646811693500276999946824681041616469109362319549807080533385772192059581863415091512995607056141601812842642646974296215832401993282199536674350745549082787717635791252790639006623628590327386843689731847317214037383199808375475376422083741056644512554733706694030423619897050339659619155391811125128224190920593620772649106402341613877902202850961761042236425976219187579349358187473723612554892236802131492816626388604625425498114403001746025188781787193688750955893838528143468526622883373350572719576069898191170489748313165376165546659443768799137313159466542073081921905508661050631025890445630127141819646201964029283527756797162296111235067048639997114534175982299828734671210712030652533631002677927442736045182079198802582631833877516620577566971293920510766496415910201720159723192683907030942928934973831619523500979498827413808875172330345320981814724270010990911932225009803882362022055955016960823641773834632987505894372521007320200663432509114188689482695455668367818961097666663929883768049839554826746898925883861225543562306991450147704009011823337410170418160087779874645764203261638154844468588390373093289901006232550604527313290088238934655595087482491731738368568597670407363063297838739965904305669218179292572089099530616697860155134446619981826123031863759943641790236363408567683348514938717536313946252344312614196079726693088870542779683044178377826868140296810182449349143036448824911088392535333738621358238259110203563191391338898668762570737064327505641870583090230163643813513555388537792901670117472867676429603320509254702418138695177460208457262615232710197944474742494411874213416278810520740530466498410085215553109334328351942722350994654240521537955255584532001504362913689496462203621967962656278272674088922693236250672576119484704008805112872348475033018409188311788455348004105589770202558516088589946116357561351269658453157896144705756706117245039582015268090004184938671439974811670163329865637001889036721247358146011059508756156261888749995840762683397272215578495238489249895147031104246163287956391161095292719495754168780291232075671518105328346077708994253652887831753435677248201701753630361548233410660307967769191709342315946912502086364080110927950629771933208092173380981787973371075381519040209062809116281022061028412612804451374794772161324291473318742431675916340316876629427935318444146085860667134778611423886551326027987998923566432987566999149640754025906346022734632530905537917884547186636943665309795011493535574036153972951872286712718054770677033314630007173402538493968303507378720310086425606995974074839906915837035113858012058412626206539773915346086459048040830693958782696535743431830783574212855186764703352968275918184344806382213866358074809275779251603172582203191348887996620607662773726098723254443821347340629915876115810987951259012934461004450354326916760399303025457775253107692257429852448057220738763275616216635689728270819283124202116631997733370596733060358331612958769421208826072007724647525907335604966827388751249903619288328326048883274765459701061255014004245584050489989345724290281006072694404632010907657846694618635143536723061394424900085588571223050169973087102826595277975624088156334310165460489162192563233015522820308089139118258259773225505812721353186538120043787879964170636664192368870442119363488155158637806018314204518722850569102734497295817748599641066785679885819129308643836721541649497819538969696496765879739395831061209111901911982949488207758049986144332112329039483649936727027035536975956284731796777555149153406702403052652352002289444835669285068134666507982644456232194485798757610489182033932998901776235842765443445181687337031738012124199335937260273885799831105772411417231589821980191446477442527731586202299369863139779139784840562539945034198589236526681251056969404407256397015535027476655366654983463135979566869637585623171238886389579397326095638017272428480512233332056822902024430570771703290131738537898962620159874535719609492860945240075226735780035681295768129590164205983312360756379500787519445889043719560528118010005591671212515573697455035244946046254993753675037052927662921225313400204383608255902935280166720261022542481823565590475837009070800075087167438868924716429119698318496516319340746649668703676984220501939329194284746646458714837433610103838422507582237205243212362341467029723318604628272197565119408445093487676002761367404709927913645544290418802607693189044376345708754472330445562630638035560658232697630794726569385062289922905867291321260765158331462690158549464636620261753561696305048489775115629164135642481470303476804494801216046064326555727686995599480240255868497203428374740325238506921003159538837709983299788480532373962591816133881846775579648801706702240768250702153420618681542595525152157101672021719403831972632553717971033077352693192313158412453603044388273391508701061037412120368837087740858872047812578254023062008674589843969140484348571297223370456067712266325178988214521425649638305521401049232356656291323268355323116136138012915263572544653797070189130724097627088854383839248338855310630867503319722411363986215076877455250837593156587159077892846053043623872744812852546126703088587258141538882673419658427896236172534272291837938502285482554472226872908616789499088723746320209443141300080027468874524948896860750816635836998575903393049512207671232543669880730037878082534481750132371947004159581991875732180645231815863655749771469411925225343746916451164669484212634113859935980976893727529951543165356715041564971348924907442586061882193835181907837494710449858655617767295839954293079475471796918681676699029484143489230520380613912201678476491376319823641841790863758322124177801390998142049013091774030101091609559838702910030383890862693964851525352009833376091508439458994129091788209196977536379279665881838959748574413827440633727727183177528168026461871119692476511437487001227161112181322499205770222615663570571747000203762930471957413139584694007461678680073264529496717727962470654637256675156873534413657830343125986988265689010267639404569421164873369248556259995960882334753183328380978877938242965193726911002382257840038769500754861232451557380834485140129823087659372787641486742429259058300072461439159908163246449349750693976205298860334040860104706582436312546505008236651667802467983386251573786380659202522468340363193267037406013530386669411042577760886389231706674814366404767934270938801084959505167536354044637664477408557048524188269322060749120232075770514279823263880024401308403404633824992858926226916059476236919254345020570950090403516675145843369523462147592268340905396728520902326703092035018639586625540246419299103732910288716269400711298390616962893258494431936809637049359971970972298857884359869193393187263763095436836798190555618345426988353082901699310233687276008855463429633396998391769931078254964680038512013585690387119443181209714746783821404909850747933371090755649215083524334643622671700337918069704734058843462405120864868104411893697259289755492943918757075166887623254999995278244303698360871384758076679544262290078794222210579001536621772927384467878926321796949402782725759481342905728848236650241727571368440568161018275764863727011906452309716652819431406230136297906002164360956884295313708737602646903112058828005511857618807563016525977138690236613537219723563968837821631151792407830219400102847001768128069454841710871311611939424018156161363028754155273385196347509359373758154395665321694628628674015209035469537195845386941498119253859644959308378001190438299572405046810487813667692985565836471741015092768100088451343095929001912619742469974637759085689340407376492617549042854724450635059726200567287412668187122952187210640578549925354285401494693804504616995378133018008082359939134394325383075732692861507718474281073554615858593924074777145474634422007918029628776461005945653304652768014735370354940164910755516540357410446381499588494994948482957935004882530694274323238197803985788432530455746957969456867904848807802245220711945824061998245716763318248686211448899957042811766582281688363764787293164827870714544632337689944120378299683665371732161430903198119330505180349292760428193365611029108158180814808889725048546207688893481480072002674002383041071789186851744598603223979697050919614834692132358334510153448965753075901610383278417114910491356889951442493006847647041247878550956294954235234546554191761208267738298981301322048070220439082575932559597628024082745384713862277497036365543357032000506296347862901145089343350073822103464839641907815195029459268756571776760058493941814535181674890021866397186159901987237357003405346896149879924701774140793315080325171466575461774687257112764892548523292928713690753876132758195648618967417829149281900732236648225296012551977852153398884732318611184898413165616341333252012172764361901383896790558763779661594985472612568180120817928979902885469507686023883638335129323827618537353986084202388975513144000671775354176677477192084714937305609616865337079278594175432361735640168522398272713890042992429851622472300285187850731534245128393928487650392049832149021798777960396669824241289026368507951459426985341278733833436471712622257511550515504974592787160115743652545370662228711996648053539232697183419577265114316798845144289183417627604800258904135145679429623785187069729862806045063336495734072326043123979376994000660822215117372095757335284601978624789160925870969814081276239225375546741339806420752503478123266403303834002571800155228168391501804568314455091042323354658733741399945286965236293378935711101356765624223685385292294995823397090723509481274388840858524878661093759403529970671757060487407694020571528009261887781903037345603762447425618066189529490178774796773190790299905682270924924084126971707543553378660036615583609930387568275265546701062573918254234301949737765552189352703224673120344876964664382494087241811077382844889855756971605501154304339220161215890708049608862267908422897185965543285757512276355822394828656398698616733708157228089375232170587668468054583854937207973430943365194519694610223135670924027840593330319429087632106923065693053678752964789609046349462894594615687581003514305456498602373826283455731193139487235091727139265003900524987528812873727214230557373389349494553524821142142767921207118492231384887319377922712835255459956523547034872241455551472826871329851037913052293436355623094962838719498018624336161910252140420850186752919418914594512876973650839663441512324046357947413701095481760089005541088486016390522183569803889267023216441536394379858768448548120056930730617261321038704638126021608420881996465165331636626682709904806555962803435039122294548962658443837954274640054511868591441212831339127028156470492506201498861809799394307246361352094889670622519268556305921877139774181470183606372437617479785843346026097737108193112027112823345942821833092118179805127907777478039646410356727325643337982220888312905428266635006947953893737221091382617265984080535569525096036575120287155972703098404945667788888014082926195070679039510061199559929219345017174425680874919577879601045881598183444818011437341058226005806386478668565325099782042006870943940668712248190839221407308953904385188501073561793100893150302959994205336114208221430072223673687778514606077544393831154038404069253986617370499601559634341582490516723642323223918809635477609759096631960040155514540261709862625709109472206180347367319969020318812592538157285355987859974492870095187475943199029806282012051044338502381689358578624114311006042266686710779939777080055669559426729583394781174279711880499306454883208922880351651819672920333984993217572601384981186042894392252229473572828425203976955992409458914986585870061393815009479363767521213867704711740329098468294352097296709715105406321296170084959371353349468970282337958993992543865377614575669283261657232195008990310504875992846367770879601211175238734508693038223053845839921721086201359609873012638876435774193749462692765668130581351291389485462529872941209735111454509659323366527576871661773577558313674832064625879959580928854809234111122299208585339709259598404404698655133115764300833363400604923224635523182417247957260221301278530179644780893839503139678146291360380341008569524241801705570353861797596324698642090678251269414347600668050470379309996650291968110533233867642469993299948022589146979237813906983220242157806400508211186093417845579572871920682990836415652785015027048431408959641947543819722670076901572532659470798429918707663159620950355560104841091298300790635611621095154949575055971418572980662641851784928046538576360823786078631612775907074490079351562381000418673211911312567987262942303911388962390405691759536831542606399617862911988241659231198400085077240059129869442490920632178867995511299338979589656993133948075674954080727819693102909847835139060920346876547322216467030284301016238341208727054628349761697969209535269828289349914778151998184154151782560469842772415401126984758216581705140055213476571711718903642146402267047555528440779335228253496686538566399577626368729584412300351884773181363302327499723762457901461947541357739470028377311282854233415404862734482713781053966608338150746231292158760006004366970763331928122681821412744607992252125704555798396367882826423401541085975499850686708967745245280980039640626058911235603934299352655829777426831864247574055890466746314914009117265143041778680293417849389502893523285320598432699451237380722038913983180698855031655064399321184153804152839224724099322561141548211675035001843857737549445323417071348899164777918613950519725545716015207721831342491841027525380125177275224631415824023583589247189203307815849354952176227051262234548703646147828082400496950704982557451418368843345638233439987022614763094428208930862166453135139697910124323522895541483115203431840109368996334785452242703062947526301765964409224107952376858688896066666309914653011538509122485269521001605850533974380016357203746213757655979387198641053663485740191867313493559055203807789896531786274406909061501239500291564847474822339951790132333481217321728819704465887150448459535871287455573910424454866836412084625393815641751708930092247647836863008647472146812461185501002894165771975417288446950418771909373417099797290663504013560480170593684872323099135092454877902443680785430371279228155169350357300652782147412689232245940212922089624220888684182341766501680377619655080018676971681022357155130979599701176388931529503193056818124265960226016157432864810383975895168763694460268283416145256995775725444675699126307343737433208551172506028685242432693668746303145339934677451428733382632504551409590496024682758219032806649094636321031663709634479321383804805519264254326429566314138023552071260619362493282725314137010436671961898451905600743453846333538889382243345829066574253980872172707274206837588537107004269920180267174063376789469907263772341191820334995274830531460063761321109180534028362251756018262060254612220700429171593898008834031069312210556427227928577489585676868837265981907327622160315373999596635118431316388765485749784130852266353737235177905673141126112505040548150344793462103855294873167305175866079970942343239773665675156773819866423522862707063843297269330147777989884255308441345220082630682895680236160621684763285372072262331193068126351741645982881779983962736599925056887938935150543662429058817883123158220177494122821294639951178785278222816406337907521763404093000285909637250662308738679211808747703677540840050992650200220169108462004201959883687084766800091376209376027266137170886069339464797367499214863937356780127429949716962846235265422569199177177307844792686080154536241312303131524195775623726255778716167115106509610234506048445860143307484294768089567526815467973801132167221718195338529197628448720590003267221710905574069904754455853884484051377477167699602442290596125097766290470980672534379896735164845777044387404215179136217684125947979002419419422990916800148878980601758248027666807675495519687341277543259500310915278504721530394084352551856333360278752308002812020132369275867547683402779155951001784640509917684848822542587559076788004540812180396041065370637190842574210473469333206641723749625234553401162203267251916680225101773851967839883756405332824401653413463984308971173216921920900086642581384310488965120247178972339618561655354533229146843729093248319636130090822270720756885744072881100145451935776378166529475705730284135981836289390900598235806279394969064249707612599310473472516572693540918351200120836628614318434103560607330891946261507491837892390613044961473299640353283541094196454210893657724371304803347525937815711709707019362569506376480055357377465042628156485253634405726958291777290296423769476997340033477947251619521496645019436806816351390080988699373170000949899458932587777379953724605004481427756626454910265255980055887030763615550123108148711854317398251445080417083378890858272027269040489297298004961786675026119651303114517609924914447846700618796772356495775435978955715470699731424527128672843605200042491731519341551643229534518547602910493256646564506084505419379644820366667336070997450282065756147809465726754487790715869125361430936271013510464763681298383846067318508863524828868397657969680537522801764522480065691134947667440971042807612356312533608649901918173715382448298895615129056870612568492839250297182942214638884276037229336439132201196079602191500749689776989307926330362823320955529965290611024508925619761870983994271217065418304634922375814251497110349679080490386176103923287420613644321620500524212868160370796053569284169979887228301615689508888550180750824874565141527885629831464449127010511659647288335566425776674129338048493130193619430884362478466446959234810130744606752290815773282571944042537327160396481985421180620088538501990567144016609058827194009111441354706001197667558708788803026263847494904008743521583436198184185705960413694371426386725858812741794286608738799109473569414736586851653165926277987142069486564288640781608344077273062186817173708602119553346381850969123541361102218839524254765360027324248480548541495455882584453076468988739245096708117822955860496840386182876191728585047288195298807253500596464861178337230036336865555579676468124102848207421172589449563979351422896924656735691939281081678135126297102283438078461942452893055530688794475021842775196032415103755405313340000892719782627999243457130057514406152523072382525420215748201441739093486641228249410294081610607785613868503907529123710449043895371747617233690271095644170363703686602198926415398565959716789722834556543795854730132866794426902590943806922497458201834896746709152611616258538302651716576317446490366447980785815987871242305593247116379072647856803787567410772946829743426722949748127399730084876294506931004747002596016571558001042297234827673687677168564667419353208226386396795666797325151153465934556105788686007841612525970566430876463290390412255488909237790604783069240968457400472567222297642151682366201844875627369398511298883675023046081427235357417979707106750442407160088597629619169314473351105401973306063841536911850950069257087419066950015767994323018889358994767893010241134910772704057395505474179961014808740693888961684942227202076562636468223139833303135191515623378751160209962337202679274255589224461941204195042459668116003187015997984362513250065349136507450229352517723501288572209862298434883508000091426376203035891403388830406031849980721076129172820458460050267222639067370107308285741259632154083544994835468909312823571910850811081377644851492710487918971708493508935597766999935655175145964489345949630263537481734073333875030815207496037478930506071207775103112922100343116408161278669100755317506166269000126793593927675581733116435311118621755499816450153772346072856511633489253854833598369678513875591331027766930037976764017495428818649891112552711310510059133736758503567127534212446591302320441308599066424514001801829913047607427542951200580092608836232765419805570498638984969220168727439918997325779849405938121647914691543851922147156796905268349464961824763065730673019479346792724798461316782760437560051370238059340368949447944215824631650953494024080369191167721171091472763293418889591837373354297923769841053375681929583648503898855761490420597506298070750743794537154794777077149583707053364453056572919463195677642588847452305846785892804745541206323936839042541229992588018493164239485174846728129198157014390047721508651646976882890422707032114005615110246397506904198355329353291578108087434387388299858611635044320224168599093802375449505104102229384493954127299759704835452691924695507499087950841210598094400267403233366334367216540833041090081366226556358677933385689219669347263861088011595527230567444725432727643241329567989788641324449633097982620693660711770521176029652803448475931483140727188660161652342500150523877502468557140801807169187592464224622802827592425553328790243091396673679274635697342079422062432639805992156419815320708856458808927370475102524607226374523008596478699930254565126892316612570470651394115263288503648846597823481642033395873502855772869903312174199758386126821500992666363217309185946118181740727223498037632396651320960105565505985225307113021276663875740088631711896571628872035753754041105873975451828743596370077265677074197621601931700329450914558878779910053009250478332087358358757847923372485054015040243103324726839381268438751468973493693485122039119429828617071604791034031111037701322954684870939594893318674044131148762552950996084000599293870374809175694563923141341859358282262683612466525741415579200631512303868223415595752078409771867320123688951420560039785012106833281871778169860420921937303431752512717717320436096530220623795409338429385079156783153605659511537707072901371953496948622779075444108662596323427284105567418210272647130467248699334601185190592388166827523662347233645800297754046275850185079960366702910651483479116160383130480596362043294600217261581515864755779939993371164291673256303314890099187302456166205672707987926679527764437124254422833951506055227291306756474364057003514398541470378663388193361769709052787523474940057365188755719154033773363027140405030618093378781544252260604237816218335396730529153343016992976679531411765605500492014223586149623013050121436885012320643692435822575141756975954152861101361146027387119322361011481565851945030581131327835660378381681761605297521360632197350774749013608264426332909779581724566128736521219280181890590660486698531284636391217944021774901558051341741812607766079700030824603686481242092795029813935698433665264621408381502721682076652391113297384145240366375022749408586404914661989799301708303164452460775025199555198520498475878790964514014192376905479321190684177871795042913250708989582342671521741777131203616246573425416148544478064854511811409139560642388950994690931035011929549028723254523370819924188056114974626402123168937172165175975472502056125123144557897404554802904676907318344615965951304427687160457642291634847426795565661182745423059622958397834886518038427143514411854716777190344257368387329024950887313548509441091501165236385979525273558574085187316258451853524966045769505387926352744198337915482802238657930287091441133893078819374154418987870504969702046722747057057887018367234615119096635332582904907500681991658312184429828498941362814288271994260115437883777908883164119984547512585962627107091020616031312749803668261866131733720492916064865370615408180774609565768736674509119795921446027815016265393999631524208766480783099751398048869381171579907106748305498106781525963875729536047292928950209008987572715888276273340440904208331340429934788742826427892047402316652654173272007303302954792422701495911610508850561186599806783604748494916501439042801541909673255033194084803670602309154642921057736209290979166991520489772203234778232345536565607866820515846223135130836121716170918289782704349831213333537715559066362244705831718432877523521246921185982929265032470516394746039441339724138698146427305079659635123938568154849427931347884867755216820990677445845583433550052432147896681584365929787456268920430355895954901052568168098550988191898621345752236118317865290777248139443670834909986442543037233606039924038843574581158586453797921944650020552336448953046543305245010163497998242374471676602050082911551061523421538976070577846361003517411612741349430783155406458305208976711464335511582359177570188349384365461286735959524846449007198448175941317367877336701338222471149238141328949032040939402708307622719312061458775594506940453007411674351276903459608551196209168778768581391681821539845850587793273038346298639810797674385527526975733772410837204576421182786189174951313517577359873839438048926928393465046538706824744973580781811393019924305279092618558009150676292533086084828327982933533784992480871788406227575579073549981948861994614806770815580730539122879479793737182112187793391019431721011313986683784513209963962686729677597206280101943431445434495356528086685313448996319668604085526024733442257355160991947642619795469357377627774403057537124166121872773294006267412474614846108804001387180366964289885314511669161643891294150953269380412889655902493674995387802973166058154029506621843998924699469952888516594774676714654945830335902995452499604682140268868476838225871651872584262307920478817861197306178873793508671723858181968256620494836595672041044905229176215300976025443482187931771692013730509178626908527611324146822869082722720603688445311715547096712387579686454473053842422166846351367900388478674294323179166989905773488816306615166482262444427869475145304147595136407424942524004773702813072508848888243395471786092543108730034921572910343620127452673320680780607526788103055441492291611476610047751585647185033993329511533434549813526532626331054143349169260209839155405285078443506003069524546952528526926113990403778484481121188010302250351660693853311616553274835035273611514374056099872518712721512687300324976922062678380655562291790271414870258874099982479655269382130446098495536162466204709250034023140684983145105512094401489987752236066393430069628349824433316836002753644967777461439884343536084597923159816711520345400475051042358489762707829595559990665389845786289137564183742615475212328181161724803626501535047557194767832598501026595646318345384387502008976801342914861614004457870085680489602870290363916068652089279713013625051607459735937493529459924548322221231201239261336550003304203250334175230169166748593268711568911016598840604342537566708630406130562274008956095153528879983614415281990845142948316590700506487864543215107117051718774100577831557790619863940686152210262040391468975307334767194947753229727234554923194074706631707683282646511801815748928312982674821279789099645452410630171106350880603557589807647015011089031467922576207458891541055029566071121125475762957543823326189059629370462498253873014098460710469305769274657373203455088786632215185399838327107385431765559547214095821389020075817780489456871558349134501932668589727967591897170541250804113766510601654085873005399009143276170139495447961028350764564275197020485387800399094046010988305723947197165682235032096857440278624182899003341514051205360635444191015855744141374337979860196946461630374956949682198589334041683422956298888953921279199088377595072832487174616868772882237248755730883409749319588476447324785041865092478192535190994339054369380950953234854846216405829241472226998198483694581940515477859868840489565358141802435788316825203303791240538914017720929683044386345037398295500591461680585995241026139067359440700152966066388164223356676620357434296306068404020537840650663728721977797391229740333346249106646381117508045177706688077054026480311348605569287723814640638534096314312781985217422453411195342408195954765092024319948169120793543967394263700344822810357087620161013066086010221025124482467347253160506071801746102813711077970140534277852157176132182828531842445700622018251778739006017712777429151358057755051876625335025261154978885594538823860294872457475860382209848510093998233699332536858432474713153936987623596890729835093418185893435356686722597138945477898436297674886068594650753493478914974154974150953075665606586243104503759116309522065022615257955932777445622173800092611741699376171098804077129792496123790080703230046899412265371163949133097126908059527729862080623933825201240186330061948566965671749209172464744163812932783170862328050214963470019169831706759714518399502749845208836369391127559906752153334928337002871644016912695176115212560019752236628308410187545926123581657026950142757062000858207166330195227408049299135474917402506485382026620754061414718255769771755934539010406988127736757834370282254112435886005816618086464836792116416588203399637766597725788314321564069716074028039286236488066836478476584963143063524231464089477254161151756191926070996664987549569607685467123060506173692188266965290314374344669382201415534056323968137998314124216340276755743304771669723867853169936214056297170234099213981634606122622505479143612459843964191527018705355461527291301470528819352650856804281462139657785562436546690199951928370479343885874013956231745061307024226071300557594550890742460188362413371469710563616289829096660398007465528092739424149473115181259772662334216492806509070076624505443857182724424000801714106417726592606373532460290250329579348533924995015982151007498064080718457165744314970361023082702591595673342554882840980982153311705439981718546833810113315480064145462518989740969179516040398140206737877305338885901145212907821149879853561499948973860912310187825825451163623897072058053786674987031201166268073784441544338159877038389451050858916335529987408107108261689276442556385863116951289388034263153037018129626519421003989720366747302282630264235051001657025054822185075218246178586786119195630060279986376568669745673703275400736239835309923053580744061301915121703131203743920137549939721840148955268996313489814389816230134867032089553869986813486791643227721022066928910025899413714820948947525971586385078545134598383316158196450272285115324516152406822501031469342220948535179210602852011920528623983054836065361485265906054378221510046567067634419269514223026345482922034302984123930825023156452005292166057216893350049338755227830714963058342391593948809138016953318047126185200477566960412435741663294133854673882702384428433912128072268459191546114931195447644349681009201696000823813441383074025136107262400865986411123711443167890987095389908958860097299535817335215520115132129171261774554224070328145592280453624656139274731523102684912970019292796365047609421988310898188486659737596956456096311122927232045574331896854891346353796664180901365157311954348103943411765829477077353355649884767699820738693473417833421923771777370830644840577553924930597682599675638287104378380722252543002266699879013820649476521343775547668467642741126608048840584452917697413409223247609188280986427178427364542203187149163840761276568905077705927700839844281084636642749156412202080588076951990130442246151712209835009702646954401031666846903278206429409137568189075525167375095095945564389445575651763852060718271083235315856383907885098967392353203768173263866003497946147390773845764177561106257510574198032094726102105139081834225861151114067407848697248780217435212398382759437453920854217964532495285683768028857351500635090089404651346629989574527993941131765674735739475462094027899817615391078907345032258639852032750045410298559110051747162805760602076733200659406921969167247193134223914686999222819073964377847002040395312668348635791405681663924195231321685557688943554462534011677359484113160641164351366285263006123415036014079558855085686851188453848582000078505555630073323439773113464909602765724976597845211845714663953424759420687879778989922438324349722454922565234150788226405185000474135595118107827104703990745696828230046798829369604002473036355429566167273302915355366298102870188186432356405286341751452152969515013008374614225135421109912748462427401432054127434273391287407344999937789946044499642016826138677286080938249127343546092547709827619635714408988880263352819830960481476624321216660492016716516049369427840246176487388140767105480540497577568828588999311432699454440112303998337954011032802816056469755834452719467390347714788147067121924463485381630530621550503601934356280490470087513654824044570003180930040887248714593577791687912076648160664835950929951872453716085285095823933300251318313358807930443391973578340734067070480379752740910147072134289622796942421561475943397856083707375061769104412234189493038461440179539672500178055031389576303144677313294550011899132684023724347616680765493230428595927289214442994387092223463115677274041931478979870885904242360811540790130835788742125083188915394314552026482811231202036103662403872885982358335322456365805789367709883648040483938054761004922247457403680797485433737514477677933577721673635684243222054104555635037164377939232680885537535044075452397920062089460147041399323166522082542967888873832214825785892802879955747126678620568305681172692535083705059334194109493480677638645058013321691503489702893619678680064291580352019200436320936897504819743051030917338970665784773354964450519534253917046469760063936992769436382003863735428805401791265298524291943002504121730895916172980386309733740079480261219606846689786256059998370219298032399000549440033860654555668753733139725267514642931188205042586785768354582138947546286668452864466341521409280668161783226778410330877451401538101975208368069470805907083207988869238352803343770944559242175846528713446191425636303014758471265440561346147225195692336265483643020614562118255075762947516376081234687667079344923282751590249510587360408786392811895816854857984996864973433277795170029899871269929620481027132383060812994884490212204458654558498937312998153355800194058434224653488073564474641336784767180522390072506588789472221174727726257414069098065857674255918141578529166986285399851662504080209403357555180907636053923168416931108257978762139696485220788059336778287458587393991854581073320361857358773029141187316023555902614574905486769665296496697802150510780742018182195495655024403726845875630506107564418944065900548148270786791401364876077280749888645667574911187071693491739909088493498820865615819213107029310051743177919248009517803764281940337248759080912371432017404987539869412497938662986243395738754711572540488342037742616303259781156482381046174570498686090950011701818612983036386015075771260352862204539295986347707455205343426065118878773357962476529929982926457675323126168717779512944923745965152783193804091714542102458135144597160775149150473478201603396333067099443545350165603640441463709842313417026807045989780113188863741546190400593816003371663409226471030075786623119388038706062206200803205671419045520685274877804072836961939670335957867910458328944193773623821184072343452307283884691588435440749894504216194295663773549936695873293728978498951525227725769861613296643190191317674423443251342694051254157498129147515539467658104812637059335167841363840811760409752207205744200376251920654558718602120326401035812174088508596067743988255283486374449363420121334661757432927698845334242056557262507790612091020359381889883027311668620601884975005528845747083585842977733202277104909051154438845847552010516477305004801861764106217057443301572367944465208057347123759099692167568644618771355372077751518463295248598992375584873098433166699186782523069829970329750853685840354815847042663262773239791506326589981186566186058681523952949855266867764388245657386801152556909027523870215610364960252617804810509307700952393491681523548113494505235850458868199253270642517596262059839217266708576436105936646020725985514312863962268996893070831819567222249489397212243963569288524005174094547019741587403940153685228726080579142990288826811692368217641802899188406092365767740715842083574215277377118276935252715954935556646665542868543643061373933696174538729741176370005846534752300130553995579466594015389660019477373814675778585817369914695376642213276608031270650730435226101969226523496137293899386296547040838852773892852537818827082585126732004866872348776823744291491071345579052444175146489010768063513851000322637016332801908371506924726110653803548129177850833493411871269183667123720907701263230861277886014361568508021525267408769161393207208655562105414661355262333079012749058086845162190047419121388741427123218765332526557419350187576862480561139034302521753042119262001914768877839630186664233656376424070537638609139672780596679667928314424981938130501087038928563960321837212883854559351913685133047966919419504004247461964526358832783310651369645337241092047401873180928938474135461009055228341822748564153742251800186679392035823164107861827546324991181355204143012676373421086002256888442287305422871254399761509211308389252856745519325664170949366500769800016828554389743855708655168271291391921036946934794996680015210438067040913819434783161098239597167646028128414074379085715917598755091566515671184674342385359937513713873936527959849260842289073670952915041152755531649742620753429503852166919708719401619144058724053981739964103546733640674545574102733493578026602208516805276763850839136885722666360739592868861069386970657461654325607825168766327548507902498806317671654449307283456340682435847931584573149404460442267302202999136827457886036610362445815054757276065596137913705722704785026340638055891018507671424596754152220945858522846893144129177579510417054746034248859013005099901733063803205322707161234428122044298178671220234198026477530432865186695415032056729499138957555073599142787390418146626323167827358390705538689741805214966181455699393885980264462100579124548153574635370442092151179457958139926501848970516815996403213627902434546988520382196637432040027764787068299102202548097836976130194551681047716649211011075302892761778053699942386179628967930441127204008246584604147937643297220215600335842409620519883765849109705360024948493331521673019962112212046043481606565624847226529958563176696393332177743149921234180261005615612159638880872981549925507210868830098992698227876800666724351849205779884108238671400246720067878482139401153177583974531108577447489917988825142279413451178128190231417509759342930861759742556535203306841007285805960957293837263638956535424169795585972543054774872769007203907555763255078342074107213330343740429192424220555640511207822406561292946134742154086079306869452928615845195960858435192603414716328845716250338976260733226220451364915887347805237641673848604435186348790921882446579297527838193719888155988526972299577641678438032804637322813005996654792220028359927195686058450702114123381113725990075169146357802881624860612166987428588607910212421143985902136861485443004174011880131634451404297984095946748431053922261361646174899419016881946343164626278693754037194077296237301175301155367191409604121596092840905723351271535527158493395905089829655879734408590193477030542130608803529940292954972069753659594188197389151364106659723805585025632263426289840672008877704009924668163536320231088495016407999247642186844443953091294096205115026574658057347315906641643279888817811445732372042632345916905193102096532423442794730796173258729425081548692606500700827194743474286650035013142827248693809465941743995541945330436395269399402833699460511903480355868280479972909752769552230308975414039050799772784213147350001100287618827916726881417464598671409546754432371592952705501638017727287253695009592696918804837968809293748333870678584192564679106735075039416593122655683060167527043297583723028943782371914702039229387232216842848537294270619946713681293464734505857409053523016901945255666160086609549686147162507460294109175617616124102235873349275485003973962613642755450919728027366023476676243151951361885755565225891079983785934992358611158799874690568713187097862367723730554481304386898134652145228767538216235482198368774777675246364985407899104072977286129976332299588457890594346951408574290773652852974932053727513184556482445634534536746811053255851537346999963363900755809492395667682106632342921834288998324272410626687641048432756625773607853747982531591639724456092970857774634352900579941266078228992159131293508538889691748425195095934826378700381973057294180648185983030319776600591933888189532260128535987563216644491086766126609528798239775016984702216757378422742334175730366421417178888869437398044940857537506139293293980373197229738614673613372357647047115974741911162506505591314017926731324087625448573024443491453422995704547086278809241904339724412122819077728265069604036588536483708417079921512527171493991601870122333116812556228151381588074089230681507157973360154083089201927571864496664799246816431313952023118187785331246509342042007641183772611796410401536456661105890710554394677037358999107295456398551251286763008110790890632804335030833646833973604487381223572492699277951414837437066718631940375851581255166948655420211232126492334334506272793742784970136547176424644447628956965334542807996876932581099009729157894835458807817669801039652197985899139167411520599083678247411824717517511969044203344979861626634029609293137395559459814503137439817337480454368796432980493918845782238428897588188487237181695086715963072560431013480196284929334928645146399903854514530416681778412712938357389284957919269499575445273167078514000857558233635768655049804221450124725133937347130153145635951828953335246351398262758944067104401378447942281345833466556309950283129632729018650533166123100681323589084527236078683241250573380423687004734397220290409253551456746270708180230328847320108154630391415239981649838542531106371081929606033039033599054408223123829675165372218627555456092056278466729112570492611681733355291655190783353851375561459259959279819076953295660119437005203484725362712063588625590124357862546161874076418997159172309140581765547706956358766092581704453723578337919221329313115762184882799998131233672025447948674606401684809783109441793999455403666759682401279152217343472095498758356653502124813836018701747034188848475627333109258481156768480836875133153488467994942487127031349413885617708688231960041665114079218535870278709718627370865685365055154736191130705874645135484384988638653213302805491143992157895506355763888023707239190896356408005478957207922336350184441875560157564703272674987462071805126231388375024020846569174917582043161708313158595527292977331195418709032354139351009401550190284964490320838844766303511551848655982083209832070852606775834053798837974025545407527882057083565419837430882982786037239776504590543203065560624658742197171283501234177337507275821562039498939651360255188736921369968341707028502250459201763646484947924839467311297949317872450136304294217010831020623832202418329883628382543424656460222774431449399700147618616404893477048444043071215068458360938955253772751012455637512456921623174259328684688090784577380809469570454892719831572197004743110301176571676678482723001866812751413037765439290993717409838035320899225843844673987181203416917510837110858000172666996443992569646026449371481256048563572978070915570775033462103813385774582636487783611174916913425487127819648845211881059414629055504711552826705276368633183135254238356018599261242883198948050803572196430099924952460313689342672240989659183503069764659166382643789606257868776229783933485228541437269882024589874909172019658168687822832184491280988126043994988529724988646116598105342748985923881043646277495288320727123050459565579983211863079127351744026141937661049463272063262167566413527776655409645991714391574435956275746261927468808453468339514341675080870345376357567939560175996406192446201670361591086447261177436648272999602136330127226561964272111065767538212874134702919423826400467717145634470216307210366408183800053908488293715197396543647969732131986639333166505938130701786172226286989454970754680443915597769274658532676016374695358283817126393739535718037089494748734411333283822017238227458869352470353747542645684302120115308658810315653733892413260446930016286924242882120136290682472929578551067823064462556492326122137113604460844933926977346718951643950467717918834598359672064497825379534652472484253627561559021184896833686010489714646111786921197967289070340728172014706304786433910876458293528023275712361562230268917294252003078407853197523627396586950985295695321995066524665260934854037824184076128860618635434582847113650020580016673762074398416044275984906871880282122489731191464796451792329053875612146822772817343750181890122074338169797960618514378716524516786829236187875053191900026129962014273099503859053631204989711286779985085541557104340678901625493242216256854990782226106136213037664429413999894131242433956531822002022609204120382187589161849144572214848552933401156743407352828992087531271176735915833596742481888305431746280977332011067136751390581312350222376210875182277304927413891776855877869072425160706866724710339902687783312637468596570172405570498197073586971567790145414318111934600578956825856161997042290512048311679556822219943961495667922314107068355841313299912055543251443721299216884166103632111257248034433692530830542619352396465140900204720996025191216342839177342891059556491118389295565265889974398711865156359196047830672703310332979107276534883881851738521306944764893574430201882522314388675891103735920066053907094960583704808512884242742523296197124697391260244300707634630148206984301331270226338815584067197035896973545411949783166502148695789153714693991933325420456883635260153934942961870821852401488896212741010332586636240754743210723594841693120726670721680762771750727660227564547511200191731500358086025322449624843184654989091493306455855638771660174975293159744726604685418209460854488784500725310617934769440596470123773589333080291767221416346008268171428182136067277035079490254958794957137357534676480325450797419277085195432604538102766798143086721067819485467933208915121172620028298773465619770485663878382060311593415789648664324015600025112759149766207350630474990472071069057779868508376666241307039365097778666484667343940651430613466652124044399696731657857463324630591208736881129462471180079510503910934157132145375902508350531343817988897247198537212150862019248615740946017536779549491429585586981197047256055666618346682626353308702993082128960005998682393371544617155017026536711276811325377048735865684047517218741294688195864027111532755836884870685082677289179989385793103925835659916569135919911409548653651269404460105415272552107168923270152773075786124990800988631332549821767186791879452947841593201877687044631252624497134212581792078121920352104494733639072159211687196577801302177223423171250949685245889472554466258348198472395104703891781110701052701835833558712549765982187790296409688746473742939129090857452138655332636132804168726938002955877836175478138205677885867059732655690410391188202607057293722068150024631348015729953481080299173359577179246517004614616258001944249297665424356707175653301099535770260858641102115936249978622760815434378192261047567862907307924312226963082595953126995137748074130338788879495958765838049567219152290691645741309980408572150613286598513880694730983200406432719168077010675464184626517897235715249237763806034325756525951069418371926546843455721789546959114814087894479142367207815751163112557332418381914059864680182105341263760851825631318726971273004691716065975213452181711262510211967774295927844016357681528689950591277997809839864462183601963663045634554652929142470845273840862242459900270691826297979203259997050602393428284882205228259299071033457339003027866417500578667283926035032576018915175291055818724115141714661258331290118378631652983364315325039569286697371436521276793124157605057612043916365479713073833221402211541559937824087203768879700525749578511105231677232320314355366338960203274539673902010174043157188650504328682542860364142069204460610175729474558314997572405211360607903266326273624462441463076161730300746576721322552566151119675029477995230063868608467525692364820045510899871814036092197201931513713862189110420985649327832712272987276610695284266207733129274428667229850810183713967974508004152554071418028226973663877288823113286374919013205349284603629227264552449678730244010382704831792164027732526662765733553867411127939218744079666170576032652233252337566973340219438630373864672384610681394846322844796380776649082728525854396642274289058009232344158377766087750824826388406908013997607017244835695612969534249510455755037108078198894821903251405077407376467677787267730488051831582489249031787276753791834075213746542309276113316259300794839727296831372638434471560506123289985679203930452452087382884590872763842049471512760678338373912147972071111548387865816844640482867037967825446348728740113326344823163625509130155548474220782119433702654274940481255767833530585167637530698505447027251941691886222517801468949209687558613557901587300720853132569837780992462667408640300591553995016673664822657410396389859497466706038845723879468246612770596388902746597202696297267347696250973286098647038463749575868181680112504220911683149575235259033732835964416965772035254906366263590939946156510804709435834112722467435610374955185815916568295766960848315430172362536733200408000030474346982909977459118194265719846103043544303137637856072699423888263290601731681739991726207317235468040827071599463816918735426283594481834558414899851657433598077186070295221626153626283558872057787110642002414121469198487597814141918997928438790160917779509896512631433612923674263229897256219673054851852838741781891399926716957373597627143064855824231862479076343426834507409732083606267553498374530089117548053142478813032803168756917560350667826456876571344434616368821348887634131555887590808674938332889533181207063562579702643880388080079429283310471113529833723843231881650235930790803265865040993516249580645281746495403505808158113789625871890793574739544249533988924088928343718304101855037591299045603007777766671448034166293699534353132006963851482279248835549788457869631075287312558185295571578385025322824722299675316763585739052933938571829063705938495379275625065271045509571463921779079199953755916324862720754600696012126536211470712500515710630051326694037367672340287238749797240845134620653152668076099234657782739642254721684645920672452887778287020008414029410818216877961940074799611799635256909653764114049568210275732290456028323937779315785525053262337062733045944411470309919805747575441148541076254819746592073373035402336853042520358291547111334053469729823805192108836649886524256128321779939428105462384801633098930215045513887749863995937087722958538116638684066206157722584636055039355566314825872955474136836085067788517834147943050337426963820576598875668931167066401038015606160360372119412852690074686326388408507074055994846728720692775807125849282382651802748632004960199606354274923943124734464752177882240186341670813755484995176323549198989303163407997844434724786546934074941906050125992340313549020048664621350061396549770450924022648518833985135595664565713207735951462057968982905390156997561951788783655915924703193319032897438726121827519670506592712385519408695266813677972650580192206398574931912559087939938172635750171747473523987150897748699747176426704941420760922739182441407658187682036182940069879638340055906910271280640022206477678782751684308961091673400559011784584988918561961130661731825118568613424051624228878993122932114993633880063118764642546153368755199231997824296510664275387464770857070676048556402960181637812790175070525555742459719011631542511125828942001877175579983983839164726084649090333405001605395484778405895792970107582696482064039140269756576440533145363683867800251407775454628257165647835958654800466688913210795006111697516683037590642234035793536728669762489517179820209575223918848535260162861766653067006468942850753296682360350088745431351644916316856875178284501634948188595453939305387399051666864554118214477897969322029261712874836761096728381210794472827411179397931145551981655454822531366877989071862358735909276755565934663053826705084555442883252398312379600668930427291832601500465135342308037276338505959221631354358269897605960625725531545464873795484393548889641064641986717889247387533252993097645408531581452297271091166999794199352480906375103649288177416633321413318478440181200250026257266259068478176281867780733978341920733181067576538275247001268393592264386404083479746906688618020482105539747271004024036474754726919888873422780912440720673512362040440230872149515890270105996077585215838836501012713613666595431929437837342759026427115074684963763468505633772784722120011308356229347978525049822148534054258387757270096752828452054433981566350903452650436473005078315819132948055425585819396976719676254314152003085747039897350125500385157725082580357535956020109519825155571715721754132286419847982490001919824996871378284722740229004776602557852994809812554768116595586101189930992819573181678186093854762265413920153443106796021150606315188949518891057226344036967482951964308467889462705226515936930253503129380285498125448987736339161140997075648341609012814402616657362689398297242536704021225645103673438900564953230955955215938177629989399070309814157442581676276840394456948513275916300094974288937742266436898423294643501367938528613633268051347790849169412003025634431648194656007903980949374328427245174702967124141519706454410972291224092421263918489781419753750052496462232133548016701022883066010378413504081877914363024433174646864316880090719197593551353037796970093717682078002090111575997168555086497187836829905160621355309301517798393656037219441367626579961977581892065076349309483616999333179692075048056053119308484371598640260040444284307899553076051476710489286783924301174600367368877302711989872973675228912558303199715792505767440039794248835325845786321822139000681559550055599597126235332857654511847688380662120756634691167439690366108266014105762218133135670050658550100792024204537366074216629645677563956598094263078238536400313212625043604628355738866983198918918806926442703242903766366428220712151196351058080682770531619242188202010579066759940181120264338010195704388665426030035565669469594066065145938687681952347850643344851528741253718200797484929167266593681702999135550840084385179533706143711235648562423819597665999468861753000037714663377273885704868243530855140583718376142195763316715046091785824645950250041174837236634370085769905223802995402465427841397974939882533368362459839642336632336281725497267525327803398791586774148061206406354138772357999183569609501673203996320175976587156595072905160963636617114787685923879190632730062104569417706020816902525604192753139811512279732564412317640470239055653382876296479733971581529976638485890699237403850234991286701826997720497688849616687938277122379435994691259303865673214161979457016276806476746899025118982701457872567956570405417967406624621479346870075738654779156368711120584624315609890329094043733689656799599531999398803936804376404974273002436891433533946983952783254316926999836788585285918238279006348428455700984901159453097725457645649319824175294623093266046469717873507651717251202108747781224980629644677239238412667780637639146885578028738459776982815500284993032260098108138897339531434646254518626617939174853318257937094772351869045541235815766688093408391357025148153807628004610462729341937231009592609689929951102518635254484378910937296282074551132496678323117251030609937115696064011593977199101380201001980927454981597079613849720199961946305518311718272971878363170994084264946350591242686572119967405790208909900205391822041079651893326701383057804875279668366443505552477569692311848787054914839429353796704530115866232821667859567079820019015490100571091416311301446861377334182463872543077782350014460097281732484200667913815886426262208773777373710135846887884294552237594819156318552308530488559452958563307587336406054518115325367614995400190801003087105781248882250108303461178965134029825727349153110685620107407899774684807402727160038344519168008591473494377085320315036037074454763062466733897378788190831066188587260334728997716733642280966555032831306296990537110651353284225706589731417509473368301699939465414246654278289868831088085086331649422382001106041844525559282469013203520459415076841875916535856594943916359881466914254094851930436594218919593782962986423785029715050390079372294608573632107523797659872369977306573162736772788406553077937235694877621822625213376368381787669824344083353489231588324768994681650424181634945326155846070423816750896040158650323211010447598049526964353477323670185317204759106557273085462010285865341351369766280143767779633507894719512688239458743492963363887609093089568157725807220395279770217706756127586022809435362093543826526618514752732206284689386717487246416731454850112053890942724009768940302261184459825484245769279123327048650892002196558141229041896462839170020105548563841730054344206957804709287003511680748721385546665000373790017810123844748547865660480166293656871573924759375019659463045819540800237215666772472686489836676686158319494273311432604909976248424805307173830005612160882621086338230682401079838351515760298541144646147182216928877645665561854778135944022615383036813026699117273554493590200477154341821715692053378095252308916037590574727945833839405373317024079659457455216332109100321618035577113848014337347330664889643823805816942641800850496045144793950178981850770152506627264905450042972753088533224463792307530216874688820161995576157866743988747575501417687898527549841631674266995360843545989531292895988696270061192618432850607537210641711797882415731223627803925227664687264625436230111488247632947960102151894599222008098789803517690851552847141645759852359247591585128857606338747961856231959655149583315489278436301288666321856412800623067874789217278003899864392846656128434829286277707825442071060347553750238503113882215107580293929427454590327580217569721676500523006169179547813498152314431544332196709376183320474513218583175805628309138363777781661461296573629388966587410774245273749421361698002338360313190668656299136006551764614111344602912542980901126675108038767941334609555194856499845989886329950640971994900696013146482233566807654531025211594300379629467003544130074776757770278537356302883926333616670077629542164130998801769074406597382141393006751329847979861325607365370472670824366611028700704021030714255168050718623206100103249115160537636329449087446758570725117172034016433872366991936730802935273178488252853237849219966177349337862858546373423848285090560495026399046945014317571688824214601107196449989533372031303282822091605532439888645569096010124517083376391147968635379121064989856963251048715071679100040215866692242206547670185408099551057473155442496487394438617616071097509402993228576497593366505240125178755996118911988744615637513312490223745455450418825672491785187065170456581025050733436667194889428809844623646030614191617984002748509362871514999686824423093838216998445243980854801778031101428110739679703396167007456170793570063092083913322263644236485743410447602528389120662164663686445662223111489070260608268722473277060446849040960648830194336081812154052710945460585067349304671179960569692647953473728966682043719458856636351474541565848651641787257289258738288818129976482071391171226333601192727031758275142249810360087650468212605741145412543046438356910313065999642522056532576349250219762246587780669968766711650774889592631272590365386311545332931476976980736389956455189496742615942971869435694432178353601475959959050569123875294814524484298288881356783928967118128343338490184787471627356989662282895181755202458476455459795337798914359531059727657638535393776547607097570931011558560040504669017091474199683487632647942170736970457287353239831171220956286789181804016547754199399645154189711337877532170269205921451078729360095710722729152379952513352781328069647119801326025152925387536234739717037211272270460322149370186811366046840337466917978804846797675677241438440323468523209112116150146670145581971026923281365403585783330291603028421410026637669658247760879128038641446881612378877528111558336257516925678981131728283481922872979848749057824374449520579358037209953683992290035441952212348184232441515477602014972317672187787585031807631455135510296406482668057251666360760870624023446178354555263237027938017534151191027516761254125966912420428183980606478022177570943497247460644422038158056474338157283177983718236409099999460776912613230147510853409439973616265397672138993079868626532710883065327875178917950803631224732892643176034760284394966577296182932381737683794431204255000177104998559943670097793243065820714186597499847902625016065220356629408666398090469849870323196023568576766523611959021858043612931470326264812938750182900536655275401320318102239813004540630732946161844268377650478386978933488422142993563563395537023608778677963530186900229700740841589777110375011734574310205053096826072679887257794763712739173880102239627192068518574396879486540462898103515433406520595671594525653497775122621004493506363397928919429707351959659791649522300492407699464565232100721125363710913542393294861872914285123751119478245766091281334019300984802183199122126678328668884154604388648483772776256949105868687715860353627624740368283699299297836106265901631124538766572658025142084932247142298330634035347287536578133397316715401976486868255110185999073776741319451995660237738280676324394306061015541228337773814533833870231794326430018907696419560004432681054441559328330487801184728781544952725391738351090773183200696051850182007649858064497752582106215903954114981543421940034266712734245755585856745597426232150715184042270522432790542297657006808242240149863104747499418084632733852514689449794114428015595884899044951413982909560839926210109757282835198555055566335761927571492568696511783006498075159317747483935595494882495157727657416173737632357191519872823631753644732932267777232646213075408078072432561129203825321578952111045949799320456753341147030579542684608213073047019720633944368664117794022867595503167247361691536965744881784299971423393163065264181502957196608974407794744377650241915154216944675895820581795346573040147451951352660016611071282192673254309795449440763978773608399032616100128744881988316626322701224357431798306967523255122754931557268731785632772387226822444830199040839056277708907636017847551690241126385861021877329278473604023245440520053461602697152439138688264873807953902636296052203687631118522352653000741604802274187210122213559267921380133861875210605990119617522503309538551769121715005632867604087518677442538027669418807356024867069898281850402762365033758358724497554926761060132793759624525500289078717145369933724157902509392060350936955832305575276239430900931326137871738495391904271317198650225333295909000150123113095024529778531129409109959448386688581576864061762834621550238612966009639289274854326527582152605714807091403169569624895518278479715909995087742589669734263933681379600406796493111124192541859405273021673941195248189161637738728963410915194453039687845581625035632027156802413096532469191855025947322548999237511174644109511902849012938623697108193659724862726101721898920418089833096497881481064493472013783481740846259100875810310616410689246696619230855663612315124949370562720255233303700391303104894976242445734854846152236116550636398190993403752175904314466343123446309094497954749984260313799822879158814612205025368068745920466986234017206046704676266406649703342445046433438177586465455634781056257884148145757422259617504573240254942394692799864935430925285677775400667870596282113690813688622350543102226586963033089869729753983656406265770787098405096182744589294976889646272341030262472610909601849836237273355117464671296786531139397891247404494809192655833274977221412505888028453370974510990304476492649989463646752544255932118509907596007276158936654719636866536084061579548940919902280429164111612573331223411483815297815688268900544304557210447140327156722215045742923988872581513575592143318709309224382218171730957076257953629864123603898316597695638004845313942649771252897604872151414410356481883814286847101014946489982969082861685037125619915922806858749379349207491910829903209519152255067358276317455758682205713815039571784420386524682270382589824147740289539862655122847949568803695438012597679761719580445817049862001207287415548700655156181995356266811049691832753643678989649747561476492025634071560571186546263725302426710642938983417690806838178107756056081290832579876358724464042581324604113032010091441191757003666763577160014235593288008837960782603512750112707712650159672519500529861744388776672273621850524745214710205297866531450721584488131679771960213234343603483257469529675249973491238049660057229097298988258645274474319860943436084402922630451329034088389087312025844022115660603841193406087338508922592691586021593569875305916037835713994128603398732253969931672520475845789134912405506233612373095632245135681524616415195895624509995417369140997824524708507823762159958853454835183468635140051726811778933795113840744143628865585589024545024605547384491683147570089787413949064692075422186302111706298740657255690481106078759970288142548722326695045547833484373835560633370100086894299664387632423581075108320385606079082104197126127335357739375289943915025839487407218364636849438492840135311528896051125922931056230645784333039420822858310106542570338316497675794876369225605507286107688439475091428494568637318266894928913127485197358989563371966250950028771626403883098248541745451850534106170944903217985222551686658656260626465073999185367365862355560716186653861954624477994234027012186321222860148120680634855651988658282071230375087606324476089524838382804655289054695508077052261760218511953125789431383599099023774441195527203058412151838897278059863236675721979111847612318955694811828307348306567077011627699973615055625766849073193574600027192912372069202147649802265629284388867322958811734678007157552179518122246069848855176157181849121127680073261587738913621780173149633703534376153484941629433116308086763883156550543137346747761779567316299973460833433620548356472433051463839273807030694073672923356251057084060592507078245692608491753320410657327429714500015183151314916967144547126908109259543486150898080707703116905868388147828885777941532112108626826815160472759936229318612444153111086466032501778929999875723841562965321177936564125896628161343136008129512441104005845175227496858242877382921703134870859101713328504730700523077936053868096906351139771325366064434869109931312808936550263399112298376946892745241818253941127829130106968314016632492660519007567041093632071418716306727917361027659801518482985398523488595212234264928950955902262824109483181871906559661822882997222652608815929909764930341488989698544691405322664236820001006301864016768187051090246566246778286926780810749088956702253566983372994391508229259043098429078765509770392344231854391806523440804047205207740237565296297875110105179009653371783872388259775253562924339660832012982723001621436679809507734586265724756461327136256125094858494360367821964786918194064753443513816227642525468095738530384432338533199165104441736015801423428589585143140135631570575140268888210867088792604039438394242164121774187181050363430617034398691885879725279480558877454292799937474607758034835543395880223058787207353280449981114074966718951261142127947513317812036069222848527379024989688503884377052715467100651065939385460951588889921361269578033007244704683484390353665430829878700271679977580109908482745732384399824177152679226148304869182631858102886068520908503544353003239617705215849578862805325996786654993867442428391709143681582008702007544485771958414537740186187639927493429545384417049433063376519148850116315653983808694587507774593377295706160817935561620355788931321346251280311557492675326367923191844874688768426028778773963476301072611110738236441627761346832809460796489715649273184331241994558780812515548840402849685804972562295966500184926662156624672917415963461978805285407301143685441454413044023385038798078148159657538986223538212512770003293839916688698845683816737643268228558306645161911598672075818168269314490544548628224504056906115822407866715448450622843241477265017801822191400702703200583526367587055445848993447712007472130271819167620770762266966652740458565920696168456198438891770478367512503630900813941865769092999230561893394742006044788393930116192550377770948902373549944455658063921490534088849698219430203146640660165371784701900293038537405822181541714264959423536843130764839442334841900050273314627117144842561611446873097578391887486575181417554883467290000332019700889526793397401025962840206356275753369373699943335128953515013884231966179583888461652863495391289154773231672515135337806831829321299279089485693070797402898730533960910618060484321715954922128525563233794186472171578481539200181859922247038583672969250657071601322428788961178474243482537413026322799375142958173001082077485713779366955978836023567852392425843701767528998396229208160145962071710998878977569951978311244467141247238663608606359258236304770374986701919572590564057650007956800932760843851042620098451939678580079529264591165677049284158400976947014880934185057535441651129584744991892136457515028814212270664616929034919933074333491480467636335204274205677061693489988994243481515783409237503389576797051970455423558294700177087458070038076281159304929549550445350768629784468709475912158955543562685548534210026549324524066739462131565197874894510504332280700202205726254308971462976532897195901790208973913857367049719644032708504516025811588529063851957872229733041873225584372737242121553651280862707190562833263489223262097064112878655229145954661843595634657398559023812666483360533732176462988228056309192964236365511791269886943798815590224466402938311635964894141373491985894316244835034010093189534322519228777765453615951689358851396502562686533582730788350935165131936061780222368437755228024285618624099587142950492002235351922569146247459116653269417416581224299989952797846574519377851755316879000660248421158593293781059243235394854608746984423426645813898732973671993520245609597501267191350423724268493112336956587401525241762682668165378663918453669366424926841208509611285266574377847220409264514865191578134233570782761701761822168870099737908932113372673768214919841117198030414282896008829944616243460362491663722438473852752786915351370313652091257095952952369587656420875586511296759287707010491090385005095457835991261535469744360528900407972890943371993817176317793319009415173797571668037020783131267416155068738728943335691359743943588796164636204895334622714538691773454548432701998176057960841427653270441508248340077668152126836032008226393564509141803467391635512493620308033649796046595120606902320708485073234976615089308220659897203060188673113194835399358492595275624153481995294418212671896051959279350549257163916104318966144473088461591827118112026183281554111110553428795212272829176748608462671680796606172238548650139207242790122649652878226838906556696579352756870951005601491655686016657015679134088279040226564891449167348051287121443277391735643176066440406696248114729438405537058828713572213554948155937609020521526748493044591669696864144714716046121462032342293362821802085642946330168890636590675869420371393916084113871599750848344529238190006674334928132523919243274867634221059323899956639908263761458761129298539469672469091057504209414506298059107698093982421140803338218089928037362636339191122273954102105963677363598320664366693247640972539465233293215308118584681476801417759217042244267222670633515413945559658141109536251920056526733987248078306473062255212905917127776689372542119907644944312418301403760097245019161815980099659741052249910135534177107868220361736891625807802286444100933353434075980598650679764593975571915681374461302776943772532923608658421768316337766109569020996978927767143892441189071128069353970335486123534206361498452386348570549938723413023561711119145956681794315577990618845377070092820554796297403571832645622019011866663237592177461627417240265817402631322574792555175817525741204328372674100309354958963709020724082222238336336731260594839776733016897663705859739656022068582703195436565796028702370205923264116644966546654263859331396824155629267919535333221078901980177674820787221784648922074094804868661848171427149897754090260389569762154689992956869191633513601005377864357027443384257301116249673720779909549167442147986981519722744371825206702428821744469332950962270928013157734084969701421970259577959681169073472870117985175228698261376172749633443362794756355881533009984490602956152554278244239500107131557422032876812206996899616462845332332450375103944963081562947519174930029735984827083128560319190779272045205792841486619004167095577794544405195495990351538762671500688418704818391923136388449657536124718263403913576038263678898471901936365808787908687208051567515266697488077116158601395000227075136236803843234245914114818135734455732630424752895165717036223898177624697963887876254330427243385135869939677184884233077441862210785309887020682716181028664787255504311227182299803914464112357467513887418376596314391920721395678384344519781338909365763273140497797071829805485589972859001050492859018032792773354930611209458172439316643545321272623882391553630935161958508137334938574530692448872684404739848866888126973958866565116602826773817003540677501584056745236467885297258465151909840393858335881750501424713086028829588661033484857780342796157563025551995528716428879004019588233103622330045168571966943302389898755256573259618153133730458026224752145868836202651956033926797760148962173676798779897541180329617192525658147594165048162884805386982514757535330457303905829873351205098625998477857877036056998326241104738869424478992840922174085909421556634707351815736605254739316657378213191389878995535182106209534592589945599686841593233441670912308971562916037685285517300026765121379561649932214364550930077839163466727093076626115910836561938783617158010528190324877307556413294908621011854874555348676246060747600429768533404537337060525700584832964999090843701741042558813379942804177664006361488855443311343177612305780575169716311631925207090194555064386468943501469723866773568038384576850257398059215756335260311207116493313427070010467665117855093838619511398932877716246245008263189153463795669883421073031645632211203245203881647064253188544330472457114301631925397373770353413117485140275443207129517914421565980240677858992495011321963280017932506922053880881915055449541975795293149488675130134583714309089519054585445429293371892493664263584876620126210936724845155425570719205291445263810657013094152123465620092196783254112765137529863792171841756249770842441835216919779846347332055593501394476959753893691089638561136036104932704653940917601425796977378632070022905521255492015803344054040093866172538554989745050344246881995395549105686227248131968703518779825577584856952981954478511155040764355908200047120787803199685915314258485851000790914460491734593041230843901623602454727508534416418789299081425498779146694423457826164372057802462432090004493051718549629261692117748580353798690016694433992992587877492844529152362529449258953237158362903503491918576888178863621080909735224757522422686821664312100841809598362049875966552519929960177047401939055250165920034652471677216531305301373041326275407083037502547369318498665890138833502992944929545356457865192912223170237019808783198160778337368130256254000838053915367411047352319351224672962874303415763126624326545486985973379551744972599288692362756737585987975743448752719915964603159686631358998400955626054211271327463248612493985740513649980928919193064971339472708687372187538827889164790322499740549234217494525339234903298773276520015512383354311349622752231266272510492645521026515025169632158031754997890366645281866846630697023372589330669267540185699610091025694223246819654212907169863428995641071801943588341161199141923911009788555745315636203034586214494891618494640556447999664076490190877143541610600405261424224986218646459527736927775861100851308581963588690281433730891220418450952154114835144802777460593842836403586474233055247546604761302178324016543459567876833785269044344287560399081406190290288024752271029447518208341149068665639006175296977383535021141706971298226021641970825443791552675431458136272256452797950605496023459363176640615522465016320759490984654514962709976758217190169972368603390760543771797687673314027892518134270326859711970339271367135404732077700765774934636441359762012054022542625703862320217730202069713280630376056965780637095729352404674425235923322493845990168300315675064117408177765886179803011345100336705138435385697855173255259316825765359197105673383869760572114674282357028737730387007983612041659754368043486369491370633803134485612631418552928634213338275946775588278619985129396996066146711176590771021019423115813739282601811473539276720318027898670570280425658090369546878347666973016888492597239282350107616859569655769502217649628405191127204720585957160640194530164952639540666816690970706014629411547299367215398295047948672054803166790158660806328021317306656319782907596881207324595385801581008051617516035524308816606157294621271988594848403873490803824811338841456313656438953107902004679833849508255409364580442815528079157058814504738525681399399374214313608255695229006787228700677097935527179606213591269510354841467880883529812370849217512702051136417857762831583442256345243685148362326484250925194821003628340870330477099805873246629461790158031560468522146517863617428750103418649588135273643254252908825684615795890930181328767470004099801730224893067369029207568821671329452995613934535517736758693815211255975066954928877228507956456768486990079866656813522389405788461167819443075104045889355855024456677117382677424997048301305603904638121734158692559321025605929102068791008715601717221595284754142729928992114909722517680010725106954414101318038097163323556722762748737845919369030452897735046766961685807092007627539284580031060592548943868041418132373136715891114718508277127347842549169355110724889505452233185856727601958889583919598543568299489793544874875215948950485653682114653188914710832742071594800584609092519243203235360881042803889137489335426758817399463162869502195408074668240069903410235062227093377241829535088733584550291385847048141662219282130691494110116263860299884014173264047026914262265747350511257726211562152890209385203622160971867350820175086621170690416965078237618559472025706502662732699516050805069814546354111243767885771545882428719678773803417155530459932420275145882439196548634073461325952399227291855658664426740255577299117606665702099100151419245830592682398680829302960038848672353234263032343166515499468186664640749121107483776064144036929449877057076329082818884823270913978740425734906874803964163247269568805370871141863508202664748328251064339763680132578868812545570647586068643798406179253922361589847079798150516754289060733299357353161032315971393835952767504858075886408704972095782747574375262860377834605866250157196264747031212118727722795017130563473175067005334476830654742673160429422093750048694121377217577912127925603599442034294588153789806149537260853007431701748216521358783358551162519120437566239674923526518666053108012885670347006370532593811462923599738793157932608087925226529527506253896920240880225563621405115554999204600163040556792422132198369589369620934213351067719404507009068528453383167501692406338599246858852968508140775024060056520871737508745912381591677214138452324497266231893763369123066760683190251773854961295850041864869009700657030574140487001848865494098907140482481751698094250052249931725594366557949188773364390001562086251000890096735744570750150826675877577408662652168859817684904575048768993965436514460895262809880624070853339497739689067572133353341788680825933215885426873804007540257510762513479453279690368377676100291273683623965807281733329854676370334150443543425293800572851410969737723977610296981725566087250006947217433275013593161847559978708932576085854664098821279061956239350175603117239467027780616344156129076473221936403623447822341282392666915616580475417434031595563004562529522319467784590562779931620252825009976544045306963257797658138164679921699091161911999963688876737435085310150549107992224011878066085571881040202572709068403567684773241009604752884331356647195024662247117289001538419921871453387044267890132603002268260447320663711418881226233990256017648679494292097778864803909298037413786304832217299805003419458091104457449647351944870834430723396583304895389544881209161523893640964295444341620721551773265862061393333764978751535898444167100640676459942748199477036120389757876418931904310891993005967191988087940589669351184178347289165943783185974780553732614654271422786980483614294162560751186277418725436440557094636258935767416443360413411312884874453728719130846878095535922737296647842889625835281360973947936198705319793918496716434736115882290495385237282093126659686436710158612268092534760253431960567487945243273510903182394281797740663667585887440043824973873361692241301619979903846434529507914449747839171847065152237480633709905248742771526855318281314659292543491678733635336052707278781244391597532632116491969752955084339050350521659622230878363798032735290160600043836941214965734210309407954756041266877238452811095047103354517577005162796361629706666553992295704125583181205080006367666889276200553292033444117784050803372433637162710669178243870344290232397054598946934681251952455527347990280995473236032690961730665258576259000593305827880699716378215253946902530873628721756449003357791124806448905440871403201202858551382267065768213254219028404860754966381869118078563494242621659411479398431179007386939484039563283476438119829600951386120655194540537005519569183981219946907490943870138419090301960804759979594602351739849699334871033491265098949481637589814658744971677210150413270925980912726757871215019942407636929033522488400197784369282097479847410832500931839587560065453103272909496509977118062670094557997390058189198097888378304462923778302967334970864026152373025983508733497629017388834424093801390209657144574708316978837144531407287005577913632973252611664311960077720270341279159591833605141235710389750604780502165367816003211335694459477038029706042929103309876728841088345489331354307392594802970799372988721920790531528468320939673355373174479031586620509598595838382077485977372507370542616023531557162521256711334328698556796316135793118463223657193830973582459837459832476921088761219678057910617356205067832562306951754397072243399800865450369486228222526346622425071344447272116542791219999353946063407746072758463911000051088152515974643712637303679190824377265510632262362234912727340288384677947157397898488534100982921988208450367279722041040186658338340737642804426392254074475383910573609312179649025349867689186191290265046616248795343427914952198217928626013147188388216512166204269285603440211665716412724115242972520422106936405451735734342971646213753149445126232273672968491024662987913107562128127659960929252777396069376294291249764262965807456206202075640057871112706229518466135331129192877277365210570360195950160754600814578492476558304744089671427065485565524797813018323475084417158388357240401620299706905974510558455981393799795511089092679654433694774111325198514421936821112996283007638404464167182932219370824556265947492871481570955522718876422799189049206332220130963069680894831803949474223659964850503538707807337889896560756880456298672671364810902157158361984367943834963996068521677213612193521712121776745606326796836403867378733360443218534340445977594453317196096974078822087307385999119408728739112982039415660219334617284786072650072690551382439868231669060284259767927184060030573244684059957671674479235942530781937092520499672194789505013181903706882828334700689436575925061320581761618388559647811755738895997135963815707873945237521548746744790540711222119571099780671549987119129810949523317207137851014102960116517534815530456542363011565487859399458352164562074436622954943821349475718443412048372653297822992438394603825810300489878007661735910387291576399447687578297381238918921958167015525362588706958428642104784671141547757519133888324840762382112502368423469542515274151024565632870747448400467754758226008642815702599007473243265731110634374030623297197024899834001393205082371794899560847463222551327243282261164980779601241966568197229842869025800044069195147745419246269262967773627680723741546484352736752231341417385191366850402348645240373864249403309665438414399817392448773954877827678741897063703534485265035317058716236832797961225832851560582382307554756819245609221045533865900144482362565198509285643085581664581557222920218193966621536992675089970986333718512076955194243930977092277054593027264684870599641117191510926959720297484120995713234441084523631796618905609272736277602653263461187296536956335852702225690864562075943891379038779569856581091223094982383940442519650589953381614940914637773566664313708198441538667277944177554013037316081133872775824762786704365943303879907914982966612761218408863603729772583125662799873378896504410173953514563289885868230580760207166844213035400847166520508642721109753066159326247623143367656531477762086278086301005136609375650238192560793194068901534076500722663556043229632436761573947392623836573630016849874654217737763349500269205295337690225605940159101487891047813829892408258394918707998451757930263818429652700784862947643968118820866429886023451914609564880069932256973258941772276365557873307912942978481814086032568043470593154249910962008827735264997080199150699167237964895886799447828648719329460734944062488518258069083970240616879879901038020071163860219034136302614364903154853983158923138059562555315377295230548938324031415377520326057489480667150992337398479706412158661908164401164097051640460932693941092545318440877692783134336041744452732259108233579300598082530586508700560528975280792367305767656197510433699459034178954430030932284023460510724155493673504928672979988090993497536211251525653119717519583297165320134136346707200106012694025583742395120636687997816451370577148380400318001254229447219489953192152052150958419135375285327479581514899858196878535477919959316292070874691835272217861258411067504166275754113174454828553165947346310676346347993804762465526040605941059413165744715584603899911455328202732837726496586105517399764769701667390413101720382190353944334311892285414623382935319705747607280785890601483068546746846115868447322371389024760230362375162880595857785968282794083144139608286567222086587271893155745644938000720610211156524255462899903603200063121957260461059373895338903108224899049882166486870538668824078431753626777607345905606149908456381442938715113988221308592255620666659329001589074038686485358845143013636232591537205639916067872113891584807544368187926404376952949088607426906866165969931481788154747234401085707365087552423955231769629057579431813495724062939437599242307310149906233389938206567084964369885000379498675485628043446940643878733481668384217753922727460916690417616081248639007395622987306375666777301149457630828973936130735659741628169924147755957241619076357233692685503113619081707066950826752040637035408635680460766345621635880561535982997996845315020212275506415117923111358041233085715296350177224019381684193502107200124711098010975502889669348736840893261635463436594133956712651860229971740570951316082722207217425992023594630350819335403685862651146574498253355157931473123497601826015439088512691819015988063041841860920334901752564961914246526087766871305668685491780891723550723783117300769936332889823428697689506343374693144271436302367761086061270416366605145187209977764918694959869743378523573602985936680687220434548531700910633707032574751017606023497702358330528158041542095557936643923539879991826215820044593814513106155683162282689997029104810762510059309634426001182187331025370875628562537002817810538648131762329302577605486186158694283505454190973999900580374200530422500799908259114685282637916826636376532651073779009635644970161071650517961386789829821100767545160172599336233915194299760795377692810678752250290520299651155341865092728753100281634467258618200690443291190490997182962632584061489293003210089236981399925323498839379932110021646496313478418689355801701678774425004497605184069334054713705253068784278168247518892045748177729484665808986364728402282079462173253902161842117853315235376766801251069796498890371826357980632190560853225816277907486223894679906411295922159209732897665470703529605753534764908009657114987992242769195537463869876093009762288209539797810449933123106044953190982425205725693597443511334640111173406255177639516670120162267387310427397305240942009482503116022381378459412762352191238359973109560271660621700496951340027718473962911532832067578769160034388060053407915746492437659198312516753473413513232624280944159086956145800774764602121158278575602852389916908509312816381835943824845349383558296056391778619819193525111933544647620015224168643289193987284295488052871903688711512487512394239030321880495994760902395234810557787003167444956024134959620463843599217021825628832800802446642268433727695118528067148218541608080546815455842874059898454057090985415431411959661317323972071927469359161137805550047827687999833109058033781081150790747081888615596487594987184137411665732753416621606485169576136173973276337418461871226000058765265157067628807917877619787218371093774826881338441682709241598039786140877729730547471707753933119557351876009069290575420138002839899752302763073400649265116313676406482928385748548844958110301144175588821309252607217709837157654101488903549504749027351276772854336013217515699158077662926457104290680080122402023886276632075792711395374353410395322395473790427076432910229404646996764126968634118225385670353636553067869777709959982523196973644416101886522018129453078777276859029935188314303075803661165658958282746268724210666758494469820556004975123787371215075978158547340698711638670173681851262479924951507257587485198950056191127050622667949638838298316210274360235968153424763186317426907161382937278853190627482730043312615821978534841946303580485934936491510070085242031189027520596276839820921847226910410910462449065146126342873531175768288894841999439441597952106247683139258436375969056724726164835172178693660768107043457840206020011972853685383339636977701895316156730021479005309159364146803541049999431272500704988867066833715581747275590558614871319476631219788957071558352805888727191871364948463197141917779157812844495237164248694746573466306845809758726105953589309932224007479007130145096411862493065299507406703950126335786997813521092100086761223219240911618759500183941679256726340839785382167081235325566636902228425109848132815478830889227640166333619211926683023828592377704265407396649604660021608051552187999444137348974801935901100575348943656265980992048457320518518346402275276302014302171505824027756700487667093516018816655015846743046065848182340932098151383703333210500672285218347014929141482677097953731405166120605436087927713430719816788108490774546139199241970373615921621957569675952735150144075099445861050943993129125420353854351958434809063159366470530304971593992259597328824382453431805721348531875657030303859439909361872595613840902186742895977079455774838681530046919025446814769738560050390777967803063846688851299399144891686200153713078344368231582798423737688985507367851419986475209951525576844278779345503690868154506078046248235926956913935019891525256867652909130437926746008767725367984744827005808130325952360800244776652874037484403202119291427810225099243748915919752653716161970382211518959355210329471768693461112601368086940712916371619867432263569766701621705557778730027510525810740630505481010579670421066282488458578579928246448755131070960352994793041643457801023306693398056397173774388145974824970502222975310475006798279307919082771795813620630125964259498114786871651265260986316508657434328704714032579971839828579934688276160083102714927459375178263006936292490335241691397893806317225563854289045886598716390417523482849980327225810130153967047679343357074407536310675510520632296560473025507474568852143584370202643053949841566067123699855387593474700282845555518696430227562737710990592101628805872928052769562183699132887176493237112881569843337104058708943738845509352322268619492897202080570028837354159848945974249181670209161469209645710290502993020271633412871469719307657138621807495210854558755030428566021983877790454530437217961736192650329498817795378912003629329130041337786111881161398122788364706672779900781477470518174172875745558512400220896686062589076283380174864250015126528061946913050667398852418002032790165231730878048579866187192022364204034118117766511624262656203720071366630823015430683353992088785806035667532065908653183246640954545750406194071682843546687371123028562578049453785134992205539633897072879508523756568009598784058499063618081973662205646447640751533731641922079508347647661764050077088182291225204950300342090856474750143178543931957337807242458547457529389092922576060386203288579839950450098093386686101320350979017221384207283295480919248144866884235290406175414039703914540278933569388995224943477485054547748991475635583339012257554900015881498810407013590321393592798008731438260337150794202302553912000531937434884513840726103558923569020174948065238885970334719179618545424034606679760551284840937015115527390854946298658196290252342101500006880403029906690333571844831686326003887140875934982515933402014176979074705805791153909647793363058026466188922811103110943188176401074970614919932167001802733560814237203085778293650530135759363388966475266808486112505423819547694624046823263876841002470010627059128570748334843691539610369683991860838795396688549776255129669077725599787205865913299196763521453880506334317011394416348694919109923076759593024967664970682868285668725304915206487083208790736838237289983273413747406769828898449936390574477976981516226506443193854593714189589621921413815847473674111859598626084423501700203511786304912520761505502960568699661138554172435906443453941358278075978592221154509047300702256000702057479551326632643254526102068945213479952822336619509242366264567421177241608928296228250423376854708309310409526216496945508220809437192270603218292273993162489161465175351915957876452613956883140034182905184512271935205017530526272517409696889619781396620256494309156172591554700232468181374146572314479911178927924534543182414669286356160399331001753689838447725918252190569848181102757277777347917379227880328698403329831129763000750343071880284468763827906478675799873161964873420931346929741345090970247225142948621370741036051757887418010782362244479553660451643603193108637229226609848646855361828446752265580004755974612128995908629350172178741385409941514900825903692672083012996111252607113249241960648090227476158544201074169061819152765561868767968407180233683963776265705333925210256712166154699437623195585978128207040418798728864456034829308763397437517459725427770288044933745296193455028769904335657435543785781910620063240305326707110803303636021474203017432300720943786172609136320060069940747716307991314960807775338666721746993762086058672924974831333476571336052707909100894392826609425788186435347004487734000881752086961541430969754712929481258157556004862323281656412386121030241000324393798249987407872508664414466684653594888892113129504856894460901413355075210592746681721240403041109498379621617013597948176538078895218358953175839530613996170283275470650242112792262613728259437222452664030997356666087748185363001675031609724195107513173814655187665611009385590311811761546279102335918859543407799337068513154500819434737788683798914363956741556242533988687821772732546754808664260737898097700011112571837611980315094433705765788865461453690193741900892822928818450423194597380375426216283564655797701099244298537434138973826903091800945598852839390336671610053459070463090357114745100983096411206738299334922171577452948332173146356608396207421341866764137236098784699610159035334213589559665837331564870246355416808116056493817890668382313467504516579804565929417948247617078597972582357587443145290145172628731913014434424137221578697990790294235307338748568101250753882207430501992818470370819685085003483242945263082234958535741056609788027668433971980029689694098960067331396407275188962748365668862351977869739069850397900306477274555010397969407345209145332832277880727210217185627453822119102361716913646297048444306956922124064409265261859520695153546381365567929392129622958492966062953665468963644983397672313795706800466270643382425358417384087886662456567831248689139700267093410484617569359782682231595608483795163058027412735887767457033218135294723281985514879694385280105764065495517724835735058839380309696846195386467522214170592516440583558240634848786202110709157351904088105613447013963485620587141513141570636043721239371608634119504217403387197027009207713856805654021187968389817263809463795817927263175255979462391297395983708289860782279537216324428407815827347290644809920372113541671658855830051738590257213336566815934209006209395231730912181742676639991052481507096417029986076172257860371369171140192890488670749052842567862803828320135912059180357534980506677042444199513963923382140438960571582959069502984002679688456498992291360670569284171595788824581823634379562351067935336513000473651896904048190681333917890111478255838107536203921230815939047371128680977697188238078959539243967921720835045001974839933583253285746344629297499576285067195510943991676925987174067877754266199593369142895258686400670559416815023997516842761015002626608512361405613744376609616837336028819070834180202965738608698278989699650750434667039727650316420492844825869420674417611135820870234685988300335025908506590520397540050666817487283173588102778903172928183556766032343019588607830655686420247392786216332169546228967499001482773123714348283073758531837466656677123212455466577025633646201539693264390777371261465112947380677426645250710828972907815613215713889636086461958263511509563330693088959176495641770365739781851248403689316123874665646445961366040558882325403979750854414962968443507431691384736150578544214031902095763957569659317930739768162585703026338523373264694975017241268347879721302588526292171106634013489086904700030907820682148826174150178637136569796359830486024194840565342971296556680921671876073341768659448388363486314199362609764816040684385273052985066007608232240774349411490930542141950975140947519705663150943554355916494021750566270650547335162150067247259524332606425211254270924864753497858174227118806018881306741116105690880906341161050107836566933102420572962898733101511673481833856661236566405654162248167550222711662942040570396029551136913195953742046011952839388412149660649946591944501120276188956970540124947103420853807217610715264858381418903464575170123319514667849536502456681830198787045713223121963619563883792102426246616877872770907433311600846873166730235882303595421850814249794299082406630392660305502076459804291365249468372047185844877116887410459115612181174545680960062851691098444977846636651423700870797165936658599734230680824970057337117528862030970501465730469076891623630462587150682265383315182663780977541156885920385893072349804247717413205070596651482811208820872279053615071562635184006965595927600326344058519150924336674969874405304376549465780652847554515730753870804677825582958596748492495852791890883146381427093418838182354107704081022424115948957780537349604054667839763867026805920210603220457427927083759043120375264635799841705812870649743439899922238736051985331687638164197709533180282785340691978060763855624885844381115716384129221773811959688042041853576190727885222505257690667926424733853455074306394539998187057405197262491050831572880027772808184330309108619141360553682104423660441106603098937818622729668021324616378459721010660641099805295069164911528564952643902997399475231727285043787474856630262118096745895505738678874786304438354521297949368235844339295259503629538125813242767201953422159568964862431735941105718887904936381723691895006784782154999987504845837311681640097457052269469130520097880264708157962760295670064771110509385015052354360088699382932935529309989396101062291569257369921487749598065822583014465253552019647172644708604702931290917292485202094449538222077347431813314128625884416286180567053049377402665224115388789850909265884272675630378505252574343583661360346218518639754074377098772761127292271513180992432655414001674563537775143343157858895880804931597983597954271713418916189582905541566468890684592335476254567777546334771919325937074321537984584371830345596900544518024225247454380219179971242491440563929389842227050826782227855207210438531707659598008865212624080504639642801726501799977661939733525593509370702806725653615699928649322143277123329629592487741312894040385613104554207334558447566706904802914279111417677228256705515273036654173576865804983990467375192354593892746469339206355602389142652792295013104276196428383468765004552112832153546366653156751630379675546788358209622233976591233002898630778774712417845578547656803425748493626147396822551605041928727048348282444035188428809268555791791820786070205568333533407175251078716373564317799358393116619413859901326492526342339124940337157393037159116053293742701245062914205034272405047522610426370875068176155636650763710964378382749902958380733986934898062680956023626813778588047352827809875156340454933446073928709608574830353110678341833601148314566032711091470661304317530082232874687651877330551180708122381427118302089023153742633030952298179486725145301314932713895578722628926998850702607190902969379457625709417666800104951321543684717016866706487245025925163468807762184362157554167429886233171284364313005346927442712954313245963078359372876253016442024474576045806415150308730538961937469406399213738876650931449784796608355157692644746164102096433189684410191481940576029439512315726238599834739532631993236571145239522278156421910543467116800025752452767788979486600210604186129905054070297072638778504420838971127487718810464827481938807442132065502370888341464616134708253155812169619670888447552798244607054213271891524155025121533178453762713514805391750966299719779357918497990732809734030464603301015457776935572995431471994725896654018494571986114107531367203203352455213459731676051934843454552350515789863446848405856172844250815465083805789384649901651869533011344545163935622865511523839811116054910909751225190270852215965611042362292375878280970552965751212077546316763860884493951942453803974436530322574534946677158783482665671409554019358260275198422351514219021292420769278272962777202355839039839543815739212684009854928008812654895492192468881927014190687274694575127514389557672115284632978781188242879853232480535735088009589326138098480877091070501993106059876996295696659594283518129261967634931223322887664322595813159776605538636367021807485756873979079317892047348984325278692070471876447287432801445410906203136999564522970636440582048722037897575677270296815297789751861777011818850604142982890113176296347548150637510514659840252866276800120283693643475883051166434200544352790208028007088526445449493922585181424968753195864569205529324036999942754663817700096887606490399706544218727034040366933402414461818969260548532485795623174189553888479578203567132052922702158376861991492525610607162944303124344120941051967703677866560399098872901406625505610459091552594764000148808715487895587266634580594996355908927722592516366380051707343204040412062091326834881017559706769075149978140203976951712437437073744998271948347147993061952764712881670604128118404457126358145377884475695659071508393311606609187417926437548611351113939423387805273970569393786791318559872966608129201120865973147816291309022464472567091361694229109207992482051903172698902441129116606981989172395005764863742782235847296754852040462908157004154515291923037717098869833892769185941923741775167704548495227974073395523432748799487313923530384229102485648650127072597862739444514435690835843727564952185030575161714914320537531622298602792800774114933834270732664704851035932310262170910481015991110261356845293050016057990314347397610042566208566075096277904023224242943549498289683405127245240735612188724249799621629715053646473434279619236698706967217975520220121660792396891812923900810375088592223643000348188784824326424883761141808042004874117064396851138920488077335585379550485038385196899069592048644059816123273255711150138263257244234576634134878997464534420034732251753593373850344732814825890756668105746758683488824032830044782822266363638028755515507886597907172106334303428837481745202810112563148174961618026357315377544801222117990512693851027358124918354752125371744998729212537872249479519380962261532915010079806616119959934282533665782830119181932396923869135819654140117937646804502887988729828328164519416626909176735602935296883236313463201209975043886083660146024320745047440337772002569582802316277212059855627369943359728929572067375295130226336169471164127272185350668429237632089122894371298459102234937152857594950842459133372698567828196701881792854949824740445991505365755639027724900283850676311493374572499029293486986901272063012560908376498268770404785506159172910165889086404267568190032880177804331011562220564214821701261196437713671434168947896572993199317260553887221201183054220782143060975286896304031637995433747447650885479874507464066521078817010430828076431486857278235760215928925793524801764921485294255971847446234717961538352389780422453739843656818938666527774647301655986835389662948109329216216196762220295076995309719482738550076914096344848941733493369120316335581748053571759123630644098172965390250440726500883867243761386620093410611561348444828749302060763643032288873960459388492154279913401371694816178426905061772010278537163734046710719714624232448807580911814150632807052508131365913760416430062837868202300284591729830595682569817613564320241507221638147536116795589329660821374692002952620782836937876283840151933554195164598729877026890827445410976039304151796669032020270861519878054697860046581356434502467176729885080704739178106714289344501903311216901209745808014511240592605854230990986136452370386814884483251347649224856417045745239268940143492736948261156895928812738264979493856207934937208335601780013073338511322655740779726071972280924333966760455241961950157648423232966842500677662971380028388659551909640377641017617966008665021472020180023736287336116232403523042309033711380318509150135491984259442737639678212645033842563391105108024473389123101387644730025660323620991222329826605522397242863650087743133879030196833220992655557104374989416966450498269965166118294850697876870770134221379397913018689413891570708782952585523957976421538597921768927754659208905559866873351408066575226953262030391195419812456089027412287310923224398871666976048728215507447536097852704197830969301772477216372866758700871698699928019969902420776909683169664691186105114201280948451632875907644885749234103624396563388912329451260025874134414837806314647381071969100738038417487789727502553256937731454708507189772754932608895306985864810961954125739433841435958673640954030089770340862830939936098397613851365414773376691828959873928378664922832643472042108549945453507381275208593474057026139365196255190873954654381278661212930256956736209706250446943484231712251915284770531031099465367899866300899482247299027996335919152039953784829022793592499359540361646292619523325811939946149176213602224409321031779290586566770931576347997855994384553124919284586422774389524024039332456170290928946071090653804860711580915523525590376518033272287012588444562145665520350287275686903744735251927385731887648468136430585550911090332913742558416168624918985964302132559055877301875782862712047903358998377418097516715565004798184575082581412672523112357813573474041695121382962791241983461461758131181860970427419815621095936224696240540418343770344833669259762297232042216988325033125480104089930239651555888690995069520360479120849892072939384498970378669570025344843302224337087523415260279097611691311578074645530078154479194403963051299194225748914925087114772012911854531214182517612905731376320332828165738810240370820134511003865423044669466127429930012212993949353827234315705128831736791778942699759270109784209983605057136279774557958852574251711178582794590513150334724637569125515784857105482860090148525072347686578788016465117752820169399648098819306389598264490633459538155613331564509728335182263752730149126674817395267496098912305892272720907534400303314462381907426091694190318736100596204368281332352911330417357309458082075171670956421999409576336630858224715637908085621924868304307460867044349253105168772349751036857407262922358004184544287691453281835775413632163474071045758730227408682820859393315951183907957764460160688046059611102203250416324788557825155819678844944526139997154685793786298677024511511493267954950703386971896298677449769599578875524049506963257099782268155176855575147745147521125722911392119280261724305922218802154310375721107478297105604172735131264189450366616110825666629372997167508866497535556091308356294655077918537175582031988631793287710719425756726091924502449873505636880604081826817340388842350815012293557731303631631291889356124794495197587832354124068871106915716051507020973336074866851502974433796032194548907710273034191572790497283640947833923773471062238416257461051787957337568300699293110833422763614846254855993475663116598777121431965690626891671342990267491729761924983974737622073353120159743716105718704203276209133819495984728575016555053959030563315155185230328034348924541352564782651813454805207286576260322983010099562301166561034162407268283827863944274690546654325444404553404272544183344853401054906203239413798730764623031545817907146743997169604110943765631639623201486333109652283078041217163651944537098198187346291290784638783803895511258533708810964980320991889373261853748913104588609407425667382899612733868421819371686275295063373119442711257019287810358160423315041682869281118158747372555176460805216294530191581921171377442504659873818386663381569572430409645448030979266165213343288452545447825774016447698691882685241604001990260949537611481509954226378583555802445827097257446434336715088832352863363661957006734429474543279800992254051973680240366105564360263151397995003486292436037278596262911154979453717662343793801252748162723253185382400675918638456115020139595200438391877093871960934673894754264244339274473197537986967742236465423691770901682896775780990495359641182851863357154410777845845814609238254530853149284004657031557663487762558525508910121545724878827939314839260908874745855313951040880183441782786419948462377583941231879655328545118397929344968716783631162830353151500332832594495679672868039001421132020655016224137013385107880733127587827785387823886087917862199601865845339668503992509886248605602411039581953315394816823104554645228989159983326052206561680050106329226019498975867887238565591506793360854042952465605936224854847645350511993722548395357118967739493838534932198475421537409295649962115395089018715136761375703514626544592632179639610969163967850919529873459067330978469333693018576975098691850209678078511276374999804957344793448537623980089576658848518559923398960319322533988327340874301170035286881000346602666486944371443319542959338621218503975406398338610662410240559732443727381221542043439838703681462083681257719380185953858378206199642601578227324028520732995799293790165732583308334147626287151709655737000084261584189926594030859024270891787740861271155848097547756815632951670166440433228774347801139060977051811858282913696604483244240669681030217448445489985560882857853240317029581507660790681486784828968555625566063574180999152808978161907363197829473449018787693451121178250928727085069487141712472540541945688575414518597412701246817094007695129908462738030887483397961046322481730186301999868453366495618014816265249437339739463721893291542929469845685949712905998763998026724944144111515811549516899780697948864855484720156902715449067646601503406164022472344576993671996113729290506289282596748448475540443405286299737003636014764298243131213676128443621907409543234931831734920231604864641873234617686514004019611312250999260397469397717968164931818722457218641425466290090212670053198654728198695702917860354820922767900124978046658795597927916246885793630660581840201069763598000767842059439280799112575530853320987910397332084895292611851899964749861845737367746000802807071852415870098247911084980950410289225812964339322091184807860180099835704587283998699613917012126660316354240251041819288940861476100426794325910921671999302499745362119197269250977084855252371294184665351833860299676826533193844231847061715455937346154625365875750053056496189118139032080486647023279214945969288806674634647215021571369261812155303642390153837292201276668571202564542099702551645438140202266723524805001228037594599172268921102090996727398528303707908646314271562013418237842357721823977118476139634765022753658521102994188750354836094910228475506173360055491839474549957137526961986065802581571799367732667960492189404021582444741726530064193681014520799054706170624328104818573656089548467528505175878284494332392480576071298526199479800162991506671448348461221085657306337638096604376223102094284373215308210476895515232167367378505073819334237869133218377693826168592122084682517371506117893678765631852668330934987126520187457846735728560983392565035217032674652719925165621694199761725112602492655202505148130930722714202198417845828130553016626876585199528035495926398409134365451395925201051233973131823251065563600153610535954269322173933395710020648279970007848298241417866854283952381235034566349782884241036824190749206561993956480468839527817047038094244860608840986049865576827257111606146527456743507076448041156521457520480046966858726100950940463821092651733643559933618521572098175427655114882705947956012153961017853688701989092511631799540065120066299952490247914623731906098082717316676658938876420259400192159882685122134137599765883523237992508751888489802261293587530828723276978796342583758661212878028847734871568302839111426988248286101796896667348700091815019420555163753542332825267290398387332008298456696637395041188098628765682511797653850556573907052424136634557343865394674034869026284328417127086171295579253292147486593481673865067435199473784067604363887394536573736269353246956477461456615440548525659376579762467807368238212258959339862698584465571519150246153923596143945203605642379821339401774539132069749315198894155030087723316415897802428098673146382671100697683294393028317638939606766825514137693739175322812498723809508526266154461023593491351297732249299819151530116768968901570272284102568949947118876915687478316978259769409092053731913076304593280078166189885191076978945550555457159393960878557500033610628953029603076063884920773378343426098406026130661844869313819054796629376565013099386990213262612227101014509529961476860506742613665406223841009831943691777001715803377930485342105958642118296228220018837712496824658609583193054990610019774794471594853867270563104032296688429743713885617759943995749189678492433285931936873881519566668854081254492045170064265225247068856971626114947766711613857213787879706008123619558723124133989216970985888415729405126452755826787864968557153643577181106599524190020174846422376214618513708312605315874628867945623641732050878029560449527477794296459787944636290970852799243614962303337865263501994980322234832247359984714875727627139935784605512812994212382367519459076183047725846682226143558436979231433774136608295937615259899956103957040778454965445047382798946333069376414398214251401666732590604534578571474543228261444519830958759150072190628409467935015656503098561495247634840972543783120556018327718293569952553135623372477495151396718423349269782935690158501390625000785922272742236473790617427157999012637840569540697437699581287290627062232844025174766841176428192147984230257358180723004469488947238395602491549929018370008693403871305723985065949807801630105161279071918480438095573857126192890653288183164831257178247904668932014501674483701552488640118712113681788143091466636147874282610731049732961277678555646899373499258598901807520494025368903278865111046718382082782003950891084214062866210430183758737746963514176420981992842984911328174969279174412740535476257573673760522321843761720003749599254387186910230665374981201040799098700889501984843380627665360614867673174566374895295829909578669581623896033148955518182164441910352204810611683418012700979275292673173545436977828177667391785604085579291680173671460371281503678961369258079724306506864674503163067403062907878895074688601978758181887438588057645089087610695659872742875667201085799637070144917596349567023068521949781163757952195624779701721701295835990083158547443602207414392208351972070949059518542248613753948102274770452138311409533784230193316769270540707359597177386820997351060479719881110919867242500333358227009550482562947702199542210942770683051274923022246873162133635495923163244910133658121257695899960237767423644976705079253688782755793741826002517023886092460296987761640870743774121992551388255778042054109600254684955757550090832683882465131986973529868038211045450834790216515577224241475072865137543512349670137310704956399766686304536947365105929277365280958127815170731551431471991040953645293955304390778107105749186422890530644078505822020244335355879018329853421491483051445972403581673098802338168883409689398886206824128424273961984388233582676130358430647338975221930416046473678088293529878353813388987330384865283450857444683905828767305893833861412066343609903122889001549315777327918069719675335595452829816406553668801410707048821080661646365562155030027373967361926238211628555637695241932422974119506186599469276981744732890965808937723366559134034742084251066071880208884300257983252300805866112504052893670652187693441490689436275670624235429038578619057334810964116791540940278981146378886168890919408783652453992650182134737667324916739267773607533066517673281602832720389685893940870814689645365003709284698847081673073300457310122867035568248877076853448086030861009712149154816475851779947940107830107069009252182450646510149091903426042690847918475854359296027853226318733638431941303512099086133099780474342815697667682035410850016946360287592586858778781784996073051957938066048422442752536844505739746201901177651068584813183223232957963662160948641150703262945228225367948081918340518131068331388982427100345651734424879503357455722578454156594207658641731210572355700686472250560565998065289132475151850084747883940340373869733322268297704097131963171733628513696317575787006306469253097738842627203087661813329899776808024110603497633838545607453014990894945640551550231030815454934674238259467378810118344711686911508988512588893889867187108476579744963088099757824265941207791993988600905986671795130354824223494328577596259351421830514377858642207845625298133835674646913730264296543281862071750571692555231844096081339955854490395501634470531392887828324057290416169872268178322653550103820906806685770623386039031048098002488049545282579947223465959316439874720944605798605562919337516687010212356499703249779494577026556305403302094406973075314949657562687088635331111730337927881800184158717003166956089918475796298344794796756646824849152372417500092965714235087032584217145287360957245293461765801169476181074239877925283330722590906299344919164425423696713379884892112824362554927765491798543099492185771782197711134135436776764677905244063295940130701097196589830414432400750161263542170438160547430625855990739548266275468359095728498966095402934439480435655161595164967541099354630001110564891549944757339964593060254214991520663119254526657122947206717709202138026741181472550378568220031845189863723749231385919882849338577874985980760815091177056875353119277129447901132383476917532618013789240903993525422552728647154034168596810820788510610859469327653757176900043411099145252473047291022569382564346904637427378511041958878879219883048594549879692460771131007661276375190291336762329096403582182362841755925667391028503654334090854262012484160226918479608575418239515464455919679135669989086806180782019933118716879200393711133175317633763163044773617013942507710929258960602936998722905799913910600701114553464339964247066840611560876423270304375699697199359121013500557566592470936197860597195002205721832595410246244335613032464264174060075300520721648516231988802256350026960891877641171009025300591111879008081824753642996162845429058802147143067332685224488690987186615587643163554310493698701501476482254530562908039766759126950075598252310422091907081555366063339303185426934064057228084705793126147795257518698297045859297505896891298915310645544417168300309967905188251994878287912244632550480002507233593421383299455827957139524685035095675968963618457003514588808433514497471082777266816256299218039916539633004076092129269302653782977003401744628165416165544910708155481900594120089146378549149720478682578383437657890457079232820064116308645532773454276056256474616016976888691318299584779200660349733913881783979932144086392089700336518819766336939219491777352967411984023467854423102375103215306909445369811318265982821573845700216453542400820094591116495107720463668224944074492512899258266066504473357836827281745794795798610242574678715325635156919204552044675802491668038394545434970092606677007423927894539468368994272220692403983525509988680318332967286697504097144981327187781989591929905386447442438850423557157295559190507423389563867600708139672572722147895546829175682317229066698689742925042385448531813435616270115867238886094153122464699232044169100558405513475955460791969096298885516157581950710033358962142402507950322143102402537849374864279887759102819014060644202616267726371583048060851208349729383744797480483440598703076414811732071519136710249862119407625463326581201968154312444972215175810343821451109085635070268906209522957921088120152015362119802971192293589964852195084885934176716509613194842744018160127017584816479808712229705391284156717179778561339445558480231060877769659768024134497092469785252466019464377841272740093402588006315993845441011875614660844514079092635941916539857414110250370971335910320864317625891933658949270437825006433685575476916491552026571841366908193721920143847484886027628615843925973700225903547642730347237797314090828804897767686551477564677273158366298364311604271864348569217754961758170364963323328407815073351033008879281955071166726061491241970176213754551229314589962297403613438429575754821767481157255835543737820924749769934907491346132465605249103796463846212806025420582346622911163036006386383019334675935486926579833963989684188166952899592402909744034147624303723133606371315332764988355933025214909829300917000660485525309793603106279463677572390822772258860463862973795500176050611603054333626971969287771068975630110873563325090528512815258168030757522625465466934263847555903064375858437448002396395026723059111414291385302500614689066264156991407608508085736834074200395259975937468161495682682567647159691989848730473024731977097447317687712064813823584612887636079363784438832877553815495980032293360768644240787137960173131656697976169036140633962860960572000257200593724586622128694209754393288906817287330312400504779263568650176820952671256035561386980518910858812891840792785146358674473223576261589102235496313468891245700436735951344995963543673093057777605436992121930242465507259268199073448139977103952695688470844056218968408454647085610712646174632412390737205603214174140341407458610714806296183894978811497380615338481118939032634876756063337029226420612401900536680081198687361366271989617791912588771771842980600801940159147910952453691334843554933072344315909421591757916363351894497564651162577375293697050532548184457518424866910284352117169448257933371779141143422341103970824949657115590783574130574713849096018445937381660659442634707122486558397549248287328432763771401771953673088871413143992194241299542864985349382411014106962046662532429502993344323334353284923739788084749114184414365200810490388865258358735029505514635157091596363083719555380204234191781036201389684951606922349655785673931363977608230992898229343386171487009095840119546250262114166460452463551290211296102285184335968507979363266375516741497364488584619009378966433901619086542795443661000982373728046561173460779914239819283768428343125324826234675702895556441755738122259856723710090015693756558638911382697886581737645714505683554267822254955186774348411755310669628766153251222671254686055552196039255400056202421460738941656444169452035352773602436882481225488594605889372407009134845626403204754545925154308742388084076116895360869609332323681708598807130082343354375341112460794407456750599293139866178881019555693641649708479237456308839200466579890707789065760231168608279320848698636483337500516660324158226521615460682476110610907515218887086595588564858758471495390141559847348829967531596166149787268947920621317285473519824918268912473825579719423666016481575662019564503003571467327269405680173504481315349708748280543606143753839183050730145861554617127892721290595038433899217687050474922830917451584722922809549917099639098021600783730094885177680258198608602887181675079792573022423217183887393243986375194552497593628508719010308740044678935743007528035182501462272915344033896061387845113702452393434132092891542197651752087546472280340037498983690015671922511416395070505440245728844441125703911381190355151802688681445711361303541395246202137310066967710060366673983349665837472454288655703901785651377854420692664114283238713802360412029463084932464955772615541202157562236035532274975534258098463648301714421044325930114693277069835705790122050046931784123135098374339202605225541259640445255029449512214678217232613827110309447540539047212868644530641026635486688676095044920599671359910454925819943905122262330597337587094041789166048360590011766621254025842688007597356541253553673272171225896664589276455765759726918645597264843818831124594049773769906888379842395549124644632360500668256852458775228122894826148383269157306184828809026484572567563787374133454572149224981844710325693307521053498862852030136588170685634683427168667601628482908774474977840807432651126776674266890615149543403419193207989872412600564229567899660193047516347774237900470227368047681417358532168063535832485234999494391880551825656857252707833771045351175234950909847199267635400388675717932262181803484357240457617909352073116832615003721393750234772099811578301789271483321546026646553726090487324879280222872306969636778013819746733058408226855013432604408119972489608831525595877330864688147518398666375233237346377904998427002397029370036457182943085574149900465914685958014976494942443660304620016327966820112491325270864741335088521412493383295305837388852863636519716800155875580217755180311346779345243318922063270818565983639032476687342337468691972693284164984714590723351022905032063992070656946488723181589979879805614859254006535676589370835881685807424175305161752709617040656513940263112114929657571263657861710469718136741313992422063406892093206092200723299494060152716127393287527099040839564833229519729929138677217575833098819540075026704496149006817703683944323377496517903387678061650690858540557701570575355396686182472768787755788059933464622119833350582527640179989840593120174332384715499085529410588056370238344030630117387309037332097605747189129645340900528936543768101846653859630842133504244072467283704646010408616534439626599792650662027060911203462454740492023006812158412994425479079481082804559917394266555570247470767791135218562839607340149404965244471764979278050674810647242892573647082572606356011792127284257834571076398806185416371737079617368294933078264447127260905055836302764251078121820757744337527093311768590593936720788894099736386342297168645352287198178037103114317788096398818179784482945616174801399902528328404309392280703188858738248596439177204537672843793420550841060166512446556664582920859273417842875025238463746617636885485061135275758221859449598545003716350481918091698004517492385714342690233568312556592714911102539014267756895577964140919940901915234585400156116552778551100028934083801729243233841327274665639997712817443872183183417525411875894618592330779689271962773123747274551262160480161295387597337600708697282521072472812841516344258004513863914615451298527396107454959040748739081009099880498012278431560010119611600658628310966821421903765953903442440290125075514421270740076281326571629662668473580993545272740399820340725431083054815111971459398294955631782561531007468561933050138278683157942853485583018724920982787170046741962866561464376976289286325512801988263162649173425017129330635184981506151119394406509351103986922858558212578986133299479618044471568803710151892773567849998754319738744795342777295019149757932409999559190097577949460257677661555390636550265098414106292767993172949485542745101236837657768190175879373618153943417684685547935286118175451812490077944688841892278228057263828196756124117805340494369463653855375876579491003220122249133934737721575187631719652713969779055631143141484794319880991010272526181393196867404171819391887357093485967255832838470091312461542613769949595370616292463586787844982222384502894441267108151705364082948523072623414928411292578507632634586977523114674881153876049633471198662111886010040129559154122726196411510366770435580016430969910502638030135435089886013157672556140994059060752122107633417682196418210268488117062582510052891432169946593140795824718689326956375881858981902651029427727499365389326813829527979002210701121509616153789355910650210006714513245406696532687756082634181613561597153757480988191689846460463002270087348462810319168313081130544911631387696178807843841803467394255605589307170313382798911381603399412560960484433087305627073132615551351251903918456713338227830470429016689394156633295541841529051776364234234095142235829439040188740988392213691779465110209337971648941208399849247173779788597600975165418013478914329139673430399469240743016981317436091877446785522802418781229190927315018142340905379395468866261137224920922487324701669443976911164476979076863303495112822045553329055788765009554813876332551494167314697513229079829918238558498225362226564534303233330858304286562922187039541746465795529897315587173867170897176243008077225448319852517345078680850076057594491292560606434114922323301587858444231258458762697950473840202386333391398473697288872649869468474880195068518789189345436784915523981076967893115262264582274258411558131480079451401302981831520492770334726196268234745500997318237236256444282168567985786336538105505168799300118046766544246715017578907455923628079912181184676807870851839817216485006633338774910736380449301537538243704391071400991982899509726980894080253454763662716245547445409756686551286335001752401274583388162353864745715017292211431271822295708515315773578535456889015246938163119526826246559816132885122426986017941576354447282604966842255009970731383590984177625969314421407184961910395315019331110387293591711901245052057941206424836203863211869661123436176722776661385839562823083230915306611666432139878942529699509408719676267505256480032517864046180922011639053119776803602851441472035312817192090701842464413238375152931814248174467235931414399353554959362636143934922643366134253889637619306082543426618661854916846043275732321147738618788779816286806494116908355349526059886014351386261845749781264731323807424835427206462393073183932141916388986402562470126899111024342076710652593291438003819690351330871947949996234498886084294275510313410326697732275397658718895325955514604195323903810102561269798094586884387078349788886454704155915244443913970414999176091064588978538905113458819449027723583343842621750950392147525351804406846455160133903191669297240190910485632506909311813963874362606731416526142178582711358374209325963821226248644194700854485883073206893630790812960230294681663685437869252994887037432498114502372253116124961735473985735957588692943864254051166350723931006469195046152809010597834578802681261369112299396730595783714381251237010630002287004714207359664206028266985666887907958074705620485772844938869561696838634016443690460886628505732165204703333168512404910661913410902277487886281502223571580003602719502433234106702764103062361018650009184181972966697372807011663124673467864863309119340681270863364784944217898510383451855938619948326552567641162471687295177633243913209422248840853618941582956608272254803423134591235403563968528295870118163815580274102402661508678767561111625089066134491547997935878681916035857586739771223213657275800969576950371279555434345946141724717184632753266234152797482414036646315504705916747611606110064406596777726208304372304848188308179212006457074308840614836531208991628899247114789212017352974315131367624528895249472512929111868944175181650329436429652396003774934148718885554685773518897056989052354968217824777173869571599866576898086595120174754809225260353868339636117281925487153269736298324502470038856515599588418124055493129730966210099475155355121342911840655061233938405819530132544269470694259468419075385820877984943294554840738914012350512587720245865880654148044760716782246185982911409809475742862813876603972601102589171122916044718847765797637575430034470699217524753796430328712412949432775934752478794801100148147093531896012980105091861421482471171325679307225425925493865547003298237651792901144952743315371497196323599149606146106637081512132589481869507690798463279169377725467498587115079455400420499272506807111172465036598472935709548527811994552595267888604612528709545373480088564624552974924255943103147121402305937000576751694107970343085394170064758758482559670301365971186856443862911404458075133097591025062539553554422504507608529941549599073191117486752543722733554426130007014042243564934999978715396024658306635525695333623129918648058564942958013639467843608762485240714748856991929329592124716973534828238318520708790882709441572686594822325991409706620518444382926583292808970729492711903682745797518464858047350021234092354819271054604145199587509442107721798783008548502989522157162093840637429639896881163581331745413150829142823828851570608151302999605626538529981150157085537572686857156452514332943153914960949437367939269500760467162771478642183268073340348249573842967886426810314637265168856124859190034210948100549705741987720638801997127290864616728818939979568276726410290477025356179239863034090262844801764319326925680816498337919051721102850043148826257510661110921182660053071971609181188055784554084189272920419347421283937684746677035921299289707828983332278081684634850183812666706618648711602384715076982723643122914882694721333097503595441304256270080695037713397993082705200085030134718954852596825589307556891034399628694333247282316090898163184441757359574423593078983443541326896086911325560022164443936307166319010275703317055645925959612086351674428557440226380300876321582178573225434813720447634417152715281042852663104956948213241532025354489949152193431874174206371301671494629329162124692688943288667279213380271520834199928153306081658613145692385411759350705437613408731039429661397221886214190649914084353305099415753515343434582976562042163693251849185277474361349182694949690636315057686615392237445869996590490517072304266930433296194346651850621623653702691386809974946326719580329754349872529607100965356596953636113583185982019513470567033100504521317020641604010876377295576949704564960964759387646238815058513059655155875205945815591133690754635111711067056072086267243124748996148298343586762983889876056607295915225500654437274463482538367719908033357939933603226255704554137501267982827415044856330068009823384167113780921553431899406525508954343700778755268524474452268634147712235969546852268793433905874330291164264360022292005937876505997497356790364441125177013530580503283746619720342220901365080359866349527207212744845736492996334559658703407725677503486855881385498701968265875416350960377537430715443619688269841398923950831830155885984367198915981066648267412652496230714599205467443116464265163606365801878428132026846443362797554689614433170182461609751211341969141468576508169347045713404259635197395326600021523872890694781380110073829999361702532071260067525672080706893097649792966473279644490246150953775710775918830822645109793938154494006159912940406306013701712660411632490181812883882301185381025279782049077972473155532911065166850736222986101414085739743586635115050545834571639198863556709735537659452754679348483277274698839346903744335008359259536195543098677548838076420075391775985688245355534099216621938220290709068669198732680400919634324895862591879330864654583722508600835956890035713881886912310918725737539902121839562485546970056379675891137993279304292069660779439914268674314510090094424111572624358499447519487391894027649735133172231585314921587547942206366412418186348342809294202849680297237916814034683466077309687237298489835901972148023702323183032699791527109524489836700910071588026854857500629328512120244165592724512657518534185507010770613870169630963237743914255544255413733255429105980087918982719573142653109495191854820759943353592303240527296785519363022477390963990485934647768496971911153562085723350854813248612373780370549948078846570422992429810693089628968586205641544436612549688195956335350853506386105202444288203012988507756285211109570743993878190917399657158890924986591371279241724529717475665435687162002026475053008150307290382314707165150665139341841368381152071671014165695394255550019609965293062535024914382817559485796770694389040142703755778793326943458325441292219594772479983327618131297610020138147626306023478829239370336569578943528510851154694154073642335814334513272319808178692125048261024090341222883016829977000242487890232490670714915336330986131118861603029494208150712278405053657501723670646391860309960908249801182008586797332541235363771281699283266460776021319340778869759242184199240665059496817698091960082048882856398252007222560235188588003594825950889924656227652065355157774915102074828643899120243009243057917576138999770234950450678854857654022763571623295592782929764061200200449735313330390460494112610631462725025824418369776615231228568053672503897442879011649301472919925091193483303921221958399953672325694717712398952060610356750121254427392343399416835911615121880892338575560561532081102873190900504647498137607996793044254926380007465450687116139069713928518769188584882197687743757724216874467824507796655174816166739056629432586880637634748703411436873854646296351488315549770327480801086235709264539784029671559359109723828836006737380327113058174389994092574253460456481953711179053198653646900104978195969583879446658951227980509512627604404882311736966334700583117444702210211694837882104502279014485336810100123706548184379680669298763884628621761536869808695817679120622063307543458714247504098098655056849129044419555230750854116788631426347129894319786820924531184349993917924723901971341399470085067011710599165797793887887960535037964994577205062726882781514798449320240547574005252703857267307838640136690170631634172498194181375387727131988763959042668300068261968926791596256976049398400007641489357877784026828334551919899021106243623731490887261145804048113035560558291948132976386977298709140799222475535921861738776846619370350384446722801629301347030597739977848627094142580069146026484300771932799937961879201533968177012847157258572945259040143889087101060025106030186483256938588245007776284293881627281208582021858115058517946097061240153197983887624842612537046584946101288251385071680951123678579700135532325301504091712745580273114075758848182770813322795641810737376422626779174904052084174466328207370052950320963985067552802353917151308364812418912297850758246741563685714069776839046031214743477256524885810732864039444693366051415730100009560777234949484799193569764559094352167673602686467453658124237177074863566069178322617606679386015211391493462031010165991297146102513534562165431681819192887629499480012919949409687573012257160351197482284133059705543814469570843489561569866390428520536160685064926213474246283028478991275648463164026395883590279844539838390016260540904659093509519520997521020553998308878455673151738448009888702567489038480826361518848265203493127822597095445330510097315959022551344794693317290110699053887976131575264678747978014348307658336949410884343009323672311999392951374627339075738904351131250461710461498118418341107461516593340822085573012946801996278068010861451790482834645369057181902127117797413492065694224888917589213729629553173556879133940005014111674274091201437413503317011318359794279476935071192571073170751036393336497699404720553142379188827007830773849495724920123613874288620528924908411515381104366885289801220478979416636972827899535741414110172684904713604443123111919608767701033871620193294621715603797142362952006949024963369888725252580501888069145107493869732053786178705621051726192155371288464730825131975723444332483250281180428042853039200430981433300553759371105944516607270850415065237532622170182981187717053897806933563959443095630495457273073440913984580791303326799406201907828596690039904345113285925128331638337100018173316361877300122837120115736197459094939614323481736701148375185524759544578732828697555315896930128854371028647320184501774480441625160824453884893764885268453783852811569826144231257109737001988779918875445817080136573825253449307041166067398269177542435116645337923424806968292416924427219204433684936342212336332307669808640570713605852501646231731937618034868885933411169942932011235065676534940187315930956386278004266327886602008032627443997876084021121589095988448979305946481339010100146456260736222667036036546630515597054153281221253184548600433422858717617332160100922456345209443868280738827026357134188104264184896963050107069457253449040655825140878441798370697202984183159312423457462115015796674582526400109134428927294301664345461914550832027818089028463236630776699179865583024549265911641771373203250560053106607012578689425398347616533143229783819913124485417535122924230755844615777502251190430946769533747362205647004066787584772111771372808585106185238160508997727676511918837719523920143447956472443676362747785202880070564709334815249702902922350291619381339206552336859592405257593566802213731999964453990342350463326083459709107795104945214268014393610025200324185276610272761069192570951317521543515173948342550981412304377463147374880934805307349637608392611391430743199290964858828875443771562440312928678683142635825001988978944366052850065724101000535341679581986475493008554744552965525918383261710830036131267048496105641751696730752975651532343059828967067558621671267424233476100178237367650703383246716175617762594353065499521947614243900604971924442588498261235353616598947802223667176443820675489824793597272617712166538917172421606113377364243963306276379795557995715564875233572803749660638824389940877553999972038250921593857706721878599678301751232945739370220555286662019537780527131288672659372648752365570418147373557161354187840252370027270740712433367638707081821811301646469279144481805513881924181665696442402598428935450533821180167032502459743243675497968011536325023039166909408161778623414137431120637980662204850321775178589681286565143593103794589209079345920622460751216361473758106241786744880447103562747158825881171892465515106064657619112900545929089020824503657276190131925622744207547545994760686622055577380048971034611634290202488587400179429503228982209687228046387445982262597177629948899130683256087810997618167612759288573783491142626597855238785177518490148203755847185226890454004180421417359004944576439320601575523723498007827553537578180065215690764496345417084132413670891961137678400865504786076850932418815208868600330093052134367328950951208878611204382199119806294231911532343099376828957894799378956721180335737017257550380260323831308348638798552604976210933759939300288338620986030931282260029272794207442208141301795732398014819173285035334877797518740823264246388424083001514553358582114992599415654077129102747226046806195721359086428664532656737672259796410477882976332291451998099736794991354428746242273213390420407753462786336418302238233001575121993564338755251138540669553855820074003623513940094889320487327658062630761320710668410964367644090830676603986922957975086703904043874226700441852466110739077409217706632728724434530264862108337224311463715507058079504948099520039443701296909743279896741178594606176783666527117322425337742714863214556213106816362263532528258082154074182236228040416228549124005217090156206429500397201091584368856181922527070938611671185187055727872501582197371761360286119407929248966803113938421822884351241690291847074333569362478150723802105656166902533257314865435875041270200001081981137660178438286978837923557922510278123700772701762511779803967604418634039656523801590511543869622066449808408269816622474221520522483371260231304172701363323615369343992780411915960718673180791055071289528268286594895522783679417380419295380664397299627668917482347811657989650221566546474201846728150157519360238964630837204798187661051931074308578809484311439368226872263376364375488559610919525376744703112035260699577827097522851359628644387479834654767680111037861652986008436281983939425358230092174193143877719056424694626790036376926607424704218830830256871609504481923405275192596663966713218525714056963841980236436622468243943712083843764617064154098320024146846580944556686611367581253900444375508985537868636067941422009418226880855152889713673468393999441514955616675481706408317048601317437880602764079079292556525317070189878300271141209772358367221422459686951449572003995099589107376734910707265845406259741208329186301953850966342944249783083821766043259787689346536559742284169770026027526249682009781684632697633128716939980272324024707691137036744243564446137301070350243497874650472457247653098805355526737283981618954724337364848866986619310252849093806217759466756827500903321122902835068288072064499554578332607325664141270213033190227080237224055736465867788825087515457638316307239716132534260009025492395862962965723272825831325316286440653025872855177563227873891069335726504606045919638136055134915630274798920198916698713480183611289352590516358679406460557716395966282695357857937204163593437053630836583123353146008398017827899047838218780842230536834699277963372033428408806832431564709625379453515971699680372070242760278401987943381340403265164750037559042749866218387362945926815940032099787570572058872265188784942444246260957845297213870713667457097862646448109113697522031576923715314760130252929297748008645958897043397579327808919852064380195524874882709918970503833673093654332395872052955118872983957024595122821732287166123942576977930884010226970233054501743509094176268238442559411504658823461957783718171340885758029948494346755843532708631754303502628679145177614722980286633923308173998754224472410269669496678667025087548451799360489927184208183774555722088654156775985220406283524810539740804504198162902697396763673081380160602563566116434491288473215875628628631740679608718580137833814877601798791679390922961174734682327077558773233730589206266431792869417068236694469719961084152608536008836032087485875419754134222741945044503749326760678570011214240804775409594206945909630866911764900995674377502076577569769533155319836006338172156844640653592259551081729412331139988375836291826145444900328922575658789150628988266586644457043774453274134372507963025998467161853353662706121919595778430629191094417638227664916756552528242132142077769866458212539100880568927209154568704458438281181670960835827177459198569275592134471017502906340177749269475272459019968961028119219258422721334606962472227610052643347411047069029776079712826661762272145103185390360872024286749733071045351984550790234597560766428256763365185920542902576323131709786483073121050544101706547050669346095671768319375879295396537448104364603520629497114538195833483276974178627126760973823222922929873426099939907727725595079734221867364919152040313045870617174419351206721379132786362963293584203256200615221817331655530843436300706574061143325203162921395960188633565836210886617084755994745539387292787784306666985932670427296171327943548167631903016158815321554728790669142211928866400430151770792956474056351942952428542039230472659125732520167933638071389576352360974644901072284069729323579744719814225670361774156712872677473210345315916301608976256164950297594722074442371845512061197212598482929189166992051938993454180151976594460776112497605749956539702814678980616921738273604908897609854980941694507066878090365848140367630245547219213272540388288843452555548388567539431662056924126646924021863737034231984716400537520994202474178294098628382001644354020501441957274267133023863694956484289680059731006398240486771142767114238039636439033719351417512261104707503830846581533119730038024171756766718544720083242688400054852849242102145421064547878837457043838242336040400607214590512278335830489158976710106327155840704621466657194141804650738880960663935440404619927662420265250783881725623968654000352258308304770704810543569031845973942709486598272463919803299529025261973372062762024442655488016941479546270701486866766988581184890179236351205577149116223199894134528236739225479430520464343987696257856338122901594101378087304285462888759332108696589424625699848186760190650359690749795096208024188446775235766834437985498372971288654264839790609472727720965837423313113365195103556813177005515351762625845737449406109496572738972198596597871460265891103771990831278919852940956895252606746888502772463202180058934422151373723259908238091826701468414870522357141209241885212493355449800689873428508958684476179056076710932724738829268369246100615965377023281991387098270505571783541064266424968555853481764626523338926631732312925798258479931558354991178014366576654771961557464174608832939942959267578668705842021948379985556504951622499565750189933069585127079473153870686498827150428732300184193617053280426026820600969462171034154722741113673930163997323405720423621262829699482780695735424139512855632849487142220745421686396154536735272950499653692457824381991547772337619848084125200510139064537027382844203993079141993051301516726365883960226659744862017669056490436520446198899420260983466601287520749023855355804323077204151930959387894359537443252661352139856659507969762068639327775769059315804151429276047843859469148334308396647712298417020524295005394324590678368643982709003956572585253435527016500829670767785763291550263729475846545480900602756104312098041694703167489295224442348448587019942374689807415956839149114343268062908467713146082661481182689476178769849973385003513785207780819285591825412216975412626854286577540270255502131220931356857754763723112115810361986675681819571561674771552718479953335797494399641838133306075980429920871381239260748194215344815232876566595591604015491897750322083710677687901204414316567273909732646369211330869374227789770208010188301705208933933608879705351529024124386664570676443263616186384279704175823312923862540546517843045205434506506273952814751485511839610144025928175697517148048557337767901215918803280066922204700599681881426637703606446198122527655370243341867203740299240082357625285994530746601329857127363287764319395354187376095437121481565822767091401275088661128922918416579031459909964400569345331352768912751205718962040678836618450751571655847048144438460923911519447505610226304589295081808588369699046100423179480157816494416250807025744832754074203061204083252381572769735005442521761406381933369061022412432545158690567684833348139783924584570864612949677357271149264295167602877671011634543379257829512304736783882683714270137578341425918032840020452463973613589546271264246722722655874892500902173033904036463059761133753457271949800531363027347579666111502966791783798703599584632422537452340114568333413648943479102918789246808119199238860619924867616688440457207484856012755258831051514849421662387955508406039152742628250642467587987360693156746422867099534191115377493256905683780754865573089784583995418364946807822924132020179331714448914789579746464782494132846124413635357662039210326184244492658590429461225369678417010148922209260029708163521132439170615875069850058356496797500325723251170025596133743649822318117665478064711763799571153886953105980582970988116240480909204913504106432140535917494765996301275749904958196913507854899758738483315372269350426143138100153926817169051412669211569290399593090317621032677302509506782770563652399171512849168623172479387477890899097333101515003351258530229115234440977226786804965994543185521402586996026955175784075628837728459040350852133716073513360299467157904433810003098305988234419510695518891265090652252233811480440151122629894904252262197044373162276915136662370701778888916133197920539014339205827751379877546538539794293496233382681519635254849913730486592634741620810927011809061408008258785407815372187187424866012252479673594070799665154174479054840484088074793357808178685856687721792872875355260500877806570636058502083325758113928031961926153571516019105545222628874647289133542932436152545714216032938580054838496441939711644540831109352864610414473152866706125844181406135142090966694380077689765662124617762811594734680075837970065402189438106996359697570603039562460589778943448838178769793728870796768703091346714806423722792750256784756889663301905753902849648841343986947911819705409045657143889894188657487918062678095941495520765961144259712155373530948498323175949191327457125775921760578389399412930424562507241687756895796978072668645831188110569122148148285512159772299919915934896530708508561559079590333179910398343961921861267873627689164155019570499203846435306334829309409147017481650082610502901244995769478069273468010411646954268325764621709996435296063070275914572405058057337803182076413422744243077996890811230725578233494604934518682689424775433310059085623390850990230419110965199234557053797831127082588759813681780539809581230383426629313541972157901423721906382922183901434406447867366915156343755066142024428481289286099595156201123796188666925574224608979953929949508070107288396945016273515534725484169493395632173327654783727396689812145298256828125312413660565534408039299107755980756515980847222402367634738192520542742737806411781289848610507766889689241521982783892316263891756572857836192456150070868023433154690765630757370302627185676416000058132419360361520458678340220148026439536570756741491914693319250814399788221679250705411395729488868243483460859992112219259052354946448147403661075514317001974567671763169754230847204952498682847506750605304853629368958578011545795008765519794741733046521790190040074969166218159052945530236536273352492454413748082377022469584301280640718418750407405316805533335840564837201249610170355934641841478659848477355851552301442341157696102750928349303255596540333292493146015534538721457458850049431066762415422893562122579002161181197051519493082139361349610963088885916043351849530570180309011618856226102170199481797344920356331723922938992184698838451626328268919153117992358972332597126002787485669710416189195946772409059757747855703399798402787867062752061257773760240601533339240952860623417996629966368611608226154496561982798618790456839566346642864081681187543905461091887576544879612730274326177838543673257336327917597830258431858110234810365952418222762548758632506965704637118394986089493606985215648510743383358064108693852143117034559499031639701913459590833924071681067952081714695006653843981431962436036472342475005223776308114795963009391645720826089606042268024812660523837576498094396686965895568371476160973919665180727479872433101086813411003559450714462254253285729487249829853917435497063123223935238684105917362550860065087671496736633161458395986407663582545337825952919884300763932730095110223506958000684656460377436934650558376316603984623777148564886755333828965386912259662244349433087531379811110008511474143267075350308642633751065619658036119920433470512134062850869513647114612815661603131936280905208346279604355632167803353904052739557327387398152103271061259686037238345348826400134296919844584575418401251276968759075059109505647180001064140723616161442951083744387221503731032154584535529489876636461416712031363133730777629929654102794375896366005965643080785331275418856915613533895969268145092497689108787962331769398777742525934841312368459445414373263905868245651964639899400083181005597148567622915196990809810924666608011914649917104505286613082028295336696220307958746357515865293986145290841104893778804883559338485129879749609771419185600287857592191937691252874120155916397653692665417104752544229886371508260366319087790220001486664291413027432753101039774615434964901076687956118263022384860050823193030643985793123259950589482379527359575455474622726722459821846807796991011653622662250261916842306885949798341656286169886089333836687406665884040506477788451595804331455367262236842311181697588679149949789851885716326519800576434486666084116659217750312432926786061943647306212610003113903987000026917936386883351986924682914149917733565613408653933666126068536603637899698964157187783084269691126004501801873962629543121379961851252051752478352246973014613852924900432725382647378863087700597200675928627987508529778421746753670977354278247944213334226241054633652649511021730328084126739783796770703786040313032832507392212117612689786567207017170859987634050118838191255162037929684697257703307045869380135042125884264294769509251593745815441121408309095419200290827419660710309813487153370541359760440285227001701636976583355524612426824027184653626143437903591554255851918728881345054264258112404939189683067402893531313144446707999972552917260227639278889186910209825581957115230845543971652622443991877742968117737064476678752833261140457250920850301563343358817286489689621712769525119023230339597725988409576015158640968994643763686130238260177684323665824638087557372803148659708710173212360056466185944830060503139792119809049743224025018670817138916850633190385124457370121514871414840575514592114664719627351856909035422227681956612055409536108865489348585594649595079786216024314051942505917677726315077031918068070259969298361492556062796252778229511081368078906500623036350761275426703738388443301378677253506898922988202778978503588199495735297924694812880666552038736565527376611789676490052610067313536253306067450635811293812920932181754868698283846446471323906773931798581444352072766575534999776514454214358143503246005989168959223293879794485857045028335196698263753255254044258242917234797397246132285821591708692635160621049339897635787554109207876219880566384047293934948047487275026125304130247531209185018817994248709532840693446562568197957122670079770473045858941716482262092778473309546268591592342897371007267401455866403665028524389060687367797875634622791605275399698214463468080169308402891305295473985082924300561917977044078067255711989027218769806559163239814611507897414008304169633362067712411903231149528193707446336459231901352069372712013816771776214500838785369738732671714201086678684275064743868903310212900821786045617728193162003416642091631156304386789998219715255839155684668656939098771728236085777321289894262818375038086784210239422467884587012701201130725755818109615393632363910384338181653593469721964185144345239133334022199925836419871768709379805893927324072095597966066606331799033137223395202000193906632747193194691797331455768008750470383366823859145271375332341650203751804905707390179077432422875311023997697696241293724546257555267224161508058610113880492871520541357875769927224248269183338443982880264484912511231397604230771426234492263741295044334367007009116742738027223176076594140435242986301161089583407795704092460207365659030108955723527162475919396851706386040769915457050337093500900328888986358205507827052283592922316283582380256388630076695434036669981549309307404796231506638938794548456956741986131871623738219992155500586754083896538006773717005247174048196789644522434936193238232861510527610402120896698714927521599905832823453808310994979484187852929609072578913678366398161931692048624963023780683435401132456497225487040493153641395986593203154270660144069354744701975725302478183819826844366179047069661170434196503812234873527077722116086324175972080476653078508441293710889328861455469012991074271756896226623758351054201222682537374948652933918313865061659898319905768380095955438122620112185958703838732790164851551421748409823486813844324038324195390205219185780933312602373786456881849399520898234018003240760222120862898123953968320519541082722641623141470726687314894901731027580534917439698342894522100760746808013410509651324618024402027817175578183601350938986212431291219435293341042465825090992073331760993732366155245481159121971839524848595509514686147124542363366437668063362405409099557319985462844679544318789491630806623685271235231935387421458287949952201936840655702841699692175058648516868954302300506873273752836128335124994922208171294520513226123582793617534605559476168429276770961513494519216176513798091849767404400649903369546507226555171483314287856698218930948599781802184374508345001858321317072328286111457873492001164317579273947584002984500786411599046393219282578737479402215084686196804683275910065288859245840289233652363952727345552960617613723680794592300890299642410172705438940086384000428370282256311023564457714590385068582664504457316370030560575841375918847121295517642172946103426115436480505064823379032753914248250796908952567037598730572397486068622377306050795985022338040861520789641034725335714651003371178762651024486409582358389236613084603446379085282916763247670254821226276044746051110146296555532049683432629513610646363431061872215572087936854892315704129515124021619555183098123057523648852517043747053296967017192188661033873691943998029785249956505641027240280313484924859907335307158509427613352446216693990629692385034014233934290454992350228389428702332187700121250618376126591319546590993606867718000190260856245462744074595848003761292666359746457438222902839858177848010337517639529394093386671695985413269675674404296640337233886878160874824913906837180330015058098698923177383292716908303054049545642745246720359924146978054466562003476538153736044890647224478193643334605812986412248380154696741253448134669244368113243350291196173426924500338711435608586625538129738926420270100419824302285896202386546918118758988972531593889894504324705010716503521801022286253622831847840704902470197669014443693345500351714010546062063358759380472182114261916283824056737934452361043901573066259862895624366542008376625177937773412539246892067535232163391463033267117817284234084264799514867400179428383168299467252013163025656597246262097128306069926668118160229232853603982561746794865287640539773826985950516183789748240570366339383008920887382021770950835057199235682899732129910177567917235107855294100103600419847156367764168462216993157190810947049401103710326891198955831484028510277518247636026079848575278056613962173001076801463943821803749915739107686447639517620326866326362749439125505081860799757782086760441226528605581471118393852947860110467984153303771228736363992345390257217940316493719422865506932469260560263911031243004801028432416932151521299051762297322803842142420332724528948201381616252810246944315138544527190471302232150989480644986942272206585971416778417042594458149005854600641400924566100237075138075453211307322620602536164976633859610965295669628977881679897958983076423903790891504868581900323396024277638153781618732322784948612126371650283780426927560308675469098842437566733337837912321212000372420085666100544535146786075374540948453862637110713516155217172786240562013842046270261793679005392590753145197875304592666016491230226942979647867875514729064600106899652189779519564287423070722629100632517872945570554098174051933636003048300896424657555699822302169706435946601171581703925381983330960796067526372143458916437719792391844207726176350017912075669028341532541285884521660864270480484449478919124187721228941418784854093822844755983614650600146058099911865494204187861056720667878820149351083809849689350890367414987322109509662324269649553202441565140902659732119446638084283491204461037322930154072555820890358670042430482855457238107722265718633228498434478052970851315239953147219703824223544322355200857005534673892406316660144600141441083671931409055953929974702201045371193202339975204306883092837025885149518384076871739302129363862272755491054455751304335491086464094734115927580014192362950963802365561977445858914018441309819204017670017826786148368085703765228239564585771923268930943431951080365528634525347855756157864343326171741087713795116275070036600194971418913015344599612478157541048824079718606862798275263141005690277758508378764374444102304347549947265365886189495480122271177147993703397406882180860283562796478625443815057805433932832057788268707539681789063772539032420452941876227478797532655221083750208411221433299400976543183119975611247024365447047170465325846377712255095616014914924261364722554517423510044626665722136177052587271441691017009935501614326748059829803845627270468207410196549370354191719444666881463141935894286696699238580040415106847093050515887454012962754526501842210077106729798272459029958474180099018832759173694387251381293831082863554659167116857548398741067140920617804650404457434662545640191078975397464599582705399366829455690687593229368909769449410307934539629385094267104995844436309224993929676730137176989107717233812055479809549035821365262025731711973198367118724749019712126145596587882206273845544494383640263175755296761042759551455820348548604701921053287565960784220734565589545904510005555572474266479677909498203080490298197697589774518929533503907942720501422386286444606232255746653419495666327942219248176459467633466101822628996715424091087829119332730937702809052056027688301720082011816894858825956027065874849370932308126580034911020986376229773389781750431401700043383888134730180733216498588837119382135405400318963489406817432786044379003330259727497866940594444728530497812869368621580066136792956635871466575071368771863983764369146660035670646678282126755890698941247030718752568665499882231877506274798544438161020199272349923348526405629637992577012017979198624777825768390638506888934702070283377133301692592306547857382949791492283803804957660247662240177496255088025550280653672693023055606118900514037410407012939358115115291967016349819201495970282617756034553388723653618111407341118095717123425939042823474308379332924988469755267646583660192108016071376292817947280988604698329133640232245519050051133966904156053717731925749225544120209823262373467406884612433869268344492347523292017900554160218886026312145602047451473985409034320020415256290419571238193998800889766839651226240375182508678089172926870985763977977912840610727266135425138540945028243355118285549299272570976360639348612807987923342459924861605046108784318016598229253601407030456338286525469011720902824889203550680073533642752150907679441548319442880797734945324912962848284732905927296590645338556015880285183279412104328976840268614495026171157531064582903239220824551979066290632221797039526561599255140101795538859302495475213787808685794360490963628035909388654616605303282068485168249066362205407412531109032083504187658690939131926150689309068932227745785684562238563117140308111119456056063361024471887339546520658317094765384926769626061702091754534919835250482778144784483048628361298588945631612690509360706103099333357981187077155824180727828745104713988469520377452508457726615518614829291440799089518536410939328233607408612016092021972201290071311351370206906593611907553187630625278050996072114602351546338160695957744278155592738967262534920538852709668455593602234406944105580437129285537346250490439755250136259053238097849282142366634657275988482387452017955072993015724581861493475170760995851614512924146217969887889422735417268833227137072744316540854252554894982952463304019302326430172356476812656421770182559315086620270866188079535673942840894295812601954986572555827120760948863748666274095775806197127972113890477824091242156414876853416052511720865246258187665606566561368661528817505182448675731644213804305282499637530071687104472343976203083410683231272898884334107853390475955079941324135537387575115104610164341672078529574540192743159409748427024655984293872655974801161120134779903353950542440675572683568370031383814196877636053290679370511291495190443757090770682340841020196992275006502411482849723259968111427273676430443085875926283568452181685599461624785495903343516726885180391553919477913826523031638857267065516390928272066801238292750798627151174196904428379949836729065452556363234501060553621821415504409136826410411481888989402347361773340327896797938480270093278749979247111521265968564975783835995810982073994711435747691845468313372670448827076754653169860629827698718575273253657917416817595443704931215544621386376356594811197656488035464931912842269994963709647226669011494049582031008915288746744671964688836763133458234105320696025076743206640127259235695592313662209292770674823607485724684543078072286401816116611591140651980122231204063115097919158264712929629543410003546707548864977979458087517840947539257496538128297684711220541084361102280890622319420283659960708916950851019771193398962743231643568599014296045399452477944730769800314029156259271154464354723555272646952035096790821948082459797654299720837022883485561550201000370450647300243289938670709252619506719731239231641141271873025450631909331158554222173734993362146843359702480165446676391841042477449286417095282539455007147731969648250607903658841681342890552927428656140642948258695915581056643634630905272782109058476772013228565667892385822260445483377914306387754945399838077953132982540052552611937202237854331174515653820376019230671525139898108848622185919480793865492748745434603403152298272836679602467518102820117593416637271287871888090589500935137504055589696464277847014656477413891034106185502261320357414481351957695269177911866191941669309611518810734292838393342025021698799714960465545587933104005814953066409435513356043145984628082489912516432131564829098536436768904024504615651504761368987887737020210363538073511385570521863151172269649340762316221564545119496572080120168566904842915280752241086529430866351288958092044918518096976930942919643220722044814435027328686805056809222169308771512209855220580010694733597528118661694504293655548589616945987566696744486509685749376573408969363866456410990808417984388624422893602280572656909940566671341803259472389781614074806032764899439058884779670338356193431948485128332274834272918024587691672191887579681940859428741858640536646421045538854580016694425619617568239500464571767314921791242979645478031921902524034751772350869668737634832166854536101159161504702217842829037489266652126334357392832823874643087843113930560608550704670575270388747311024036028472330819430723786358059789321554845113742600940266335054966593612043235607309035974647893008231194939953116115850013217001727975291329242141518289283829807014286410488593701727234149023724367063503479797008677727045013377788333721504930058105972682332699007023705546609045344380646026449085789306738465398188875254166733862726223880741364106582063862928246520339641891240556987793292014918000525210518120713596505366620926863974837507070559722394550852747906010040994890448973158910916757232688191931908116721364750440969968518872597159732503544821876896003539228160416796362364582046481669124734227618305463297406985776526612409506169535816089943905512193715856656411470147228798902587480886214702883741835450235390268197042428514467393029027141150282531740766713206540792766995630223131237707673065074965782921651531328613260482216353802392497970136003446140796314249445872763868903902484340826522426452515968100961607641158675772459684149036964554491041541129990785011847953460367838487311426967408415579991815272305005251307962497897116300445447497432951524423898354032708135739053827354804301850967591149098521735708687679986016270517407743263184363751157315986733395117826495868032913855746221228151965707770686933018496648482214560179288960227611996351471238929249771324669513836045745265260802562338981224665742879016164984147570317165083108252384980958826150926539905276114890253036268575658023115634779575343082816977658430201278194665988364742943248825513678809428803192843223887072608336738317127674110914019090439803148861407391848657633538010071094974693629249037138782299531536572624933369784648091524785837361314698853327591185768693825018873912497526462670054154121034110666944333042256868774713993912488088914433320472073083277724269257644321822803979506187659521057465675266804684327637900726790258152741297048285942941166196144658812423062688540513829127578524941076482858554822226858168508349225341422454433890161233976848887793611073330664410603528996243694145915514445559972388478887483504321278584140697272855171010283448662448816772174468967152221314074199623689257038653990830640163608748527250769875034187997210692700726165835887629095501016479056676396887264125031767473510085149508463483786582552227246273345716203555769959953239103364945758891762450194564045559926107145627651676522189175139623780370496071529255573361417289857510074537490732789652695493809623113939606472456644346744293301087043097862884719891644930138585839612976382809421333661177041127876933396056853294117832572222787326568854806010032345499398578210851346598500844455569423148536434632321866860216591526662622661403399762628315001733160687500233885710172748293054847727467387926331445513610773004144516451650117737847536647646954785925997119473470065857565920121395143913765848399950689670725251460604973664582367936047507542261241412088709301731139827862443301490690481006773298034226394797698250142069865569259085709970650621098714247484535909905940250079031858297426912392519192016001155448603683396084843307876919043033423048791164008566088054437116443207543446911414172552385092475739139032794612863138308876055723316567385624589658401195349818398355592811593935009793391282217297398402447671615122123004600011766873198740185542509680364556751075852514426077935801287187881152907639093068928989384819414390143794913661402393448908436445501426726032364801810477441451001897017286958899826729065316463998932088189990557608151184523309156969710104972945418421958340794850599549998831638582807445048299322829861255122741085404261695308611709933614591439138141103297017310882302991662575692105327347904191391599700525755113717713359510628196971102409453806747314136363389067566669781304863802510997831416808824114861397894128820545602627651842751979610140443411414571647315788313249791622038159296270142923917396062668858713181379508922792617976100081286248064598119164297422640237698795997662733646842230208224451194657037060687962271919906928420129001236243850710386606520108148771044950870229068779532739286912004550426264934525103152224061916077621436659555112413182516046185592015911242504650767073229103102320828932284792165453792828392179890471217023848669957364555162748161516750073091561669745081092929554758598563770633345509449734701991078667805919879805416553946951247302492490924193427900425915870852163140216934961911386824118132681996438900534434617249046767287754779418690890747088562195613495422422545503960975147509824499169615916877500383034681178256656024053250512577251803785544508090353579034162114027702456646882607013059670568030253234508117743077270990500071338602832800448648442644978430764862748049194429725908251086110169508630245832570711708814397331324708862320307137709897499299764079744757173716314398810314921620269260693260284613122927202578854682231179894736890417851584486372807824947057978632468249501891003821793442570964084011249299372041797678422129098431806598643194047581202618438508566452724333567592885284475055647734921335708830002945565603785462442892670631169748143270645723556731853235445001665841051037846245527397173521934610184253349390872595833153563154737389112925439691807033620813322064490005498819835859151689231814128133289342494006607768524449529809246135040763099390237209149365131875279429859604741354946010482381012078646627236831249873032922174859004518900094653194793831817984841176725899216053912949750899802121480999693296115674041524889080155709494802842496213537663686094099597566105582401260622705413988997106416786265786638866813228687920152526559231622604382488048895878651084454901556393727709103945898111628873919085985988603955602579705653063260913002726682496063132118228518738449119666839679392774392988170690877559953763809038116868520065952167841899148594652282313872010223120164156954288489197858311780937218045632817076227388839700617402933321580366658027690752587008926794992697578490065640762559134046998143108328502375793749453733057485408717181057633698884227209400846872945937091773599202254828145130780334213066428700301732229646815165281366857009056100826538788811266567656688019668761189057092166578022947666587913925950567280741807438736107153267158026661133686427678375330972938366733628444321339924275619233194794930281590077321555620559332994521131588078734792903584456564967573523481870023320203114995087452839909064752464540390280987543722700183153497562527847694972030588886419395811724880341502823309196924045650316098895127086347216371726259406221818679728310281802106135694827353968918443746490924084465051893026632754190101137566931176294042640491387238192964104606122857251776698455179795776066165400984878334904629254332910717444959412932695241221494103843693742915405022018839135834639479512984751496783565295858066420107859409151450016871146900312408280315854858850733874479109647106677179395387473201050998628299291370914963070232497081504026207412971907308568578104820646035690071663923036851261761854939033018266445965226210660593461486545915689119155403369150246512850484293760449852708326950998795086859666809215911661506718404370872639978641161073333367273947357254947066187400254701184982629587505297771803684993422138683474714692309717378001883708698086144872017039831837752984278277400118414506534768100098794161999739173051797106066016314808880484224673840516320066980933044957046300557162459817529546036744338751750635702581131047372908054076580796994861898669574930687232243732132505197766584496462972140355028032416809503671480693614533245082037832404720924523933143307412351839309935007263907605310936872309252555879088280425666671637551394499916507206291425051423871776797290730626275145672838477583639817824265956315531186506535237612158498085643726878106195607615691491386226590857826185516659246569784951513969718141464570292119041124475821813726233225357992245334833071736582478754751903198933225876051573083505669161309277786920913864752835952106007023191615603372496839604651913995303213028541189631250408937132101143804656843471394199674975692014699461158808287417470055812141242319765442326925831086194121237222720496739049415225159858568766014339857211324457444701114368521844477725615533063631373693572905669865257363165518497826350695701856618678471432104847753941378259432630685539176726429944025204886857839206237854088401364337465509997650262485551664680104656877639902904496576044809742961481377167072487250226588745155253922058873423852685232203543083556463177225341228327439714697751578270811024253615650949053059094390085074695005439473139844423817692123832939955428863109897600862926238763030135626752377448263747842348937510422149133460391482826969815365006367050258512470212466084354583638494974858754125986848403410999472142528966569756312713715139429027290333748175721358877899792846937462058561509369842180768777486597896297995812342723816203226309190153165105110226011281284903666900740754532615691902318252951370897770560769302574047923719345001149291244899796902839027232335266673190711172629442827477437850658126571339332531124739306197101871328805945800306545212769304199764559646799973352845386616454213005784065222599271516223779499271887864131212345874528355881523812172218970123455685914185624056082315398382227582353142685743460496172079629107567093146692194526327220267852576347682864915665771335848163711591233452649401904089572896591390818151795308799735071269424180396665076783280261908025350682015817293751108300771314362235658496254109937472616768226247476550383020566387357150832256541651364976833193883450623251262768658318130527992655766989075894560388513113643977800364843854163941108364756245027451975566709320358157021971620039149140240557207124387123391474953568869668568928314440576552643079291784288625515572906544749676348193297495921853739908570914295987947289101739161240187032291423434639323266431469090500482809122101810719544708257410631353409120293606301359334960390267551590267600586638972788276667825828320581604926408564923202793982748171138489765478354927761221723174048772831380451297481959448707741231363786617265137923965849116075999534689566831806769949705723224822449085385655302857867039001795852841445292472263909061124276336027927678380232952528706468320850657792330950672701273248453093831370741903973396975276427273144568437787190896155545719032156071565103944713155406097324147866289469868230609091500340603424916987138078722622217705662081280031898785976001122667086478008940214916211671225012400869362047887158778355105072370563912943343615835011101675469713708825202037923866128535259997790293170033602829509445726481900620682674433946426157715926519493280015886686220754714675418396728688253960486268735014310839433186599956761314562451849600663429948207504893312483005864871908452910372697961813035785769875464941600406230996133313494351821503207175960029019461777102109084692345410699399231634263708238701713948663924564929992365010371544824040774394015296229580847297731197699630637294936299865995580301711445414297667896417680782933165446018691939388935834957983958236443170994038809792503001882945260601704390178507144389165544451151079121399997655230780298953177581396852076265409007474386021260825817751990479766470242563521219378953240459329454152641792562975048004491371760359905958393379071426128428046880879620941271531890997322635674344862001501466723587334224102870571730441255570529790699935327861243620979322924290134089893419308718126195584873125118099360099559285258312877689781045267846133439786432790678675402549201764562109522241195318877364460175465373276407517829045661034094327286024863027891950420319069979616576441629729107773484580737037523034046290712239342958866212544146423655231329927894111905477490553886499279686668882993478560973436314689681535958244805428266185110200703127382579541117447421565609413654530807247182054828000422736538561104528740019119031528184543187521262198835338816491542298218468296293623533601264465879066344896995131828256805229281841114414254567560057225596368402567020142640423280408197046789778045209753114111155967073680807574240795671504003629807256262510366928734145249217753863480197857313123857151284508459578785708046187010880724805908802220660614536907806875023888943365913429352050753040411438956538574972705332619067695359111491372399128777159664922984252428148995080877733266313968523109411852272485177883590257672617969641803771359992343419645770232296707677179754133791898473153020641223775019734921461438101797171397025371154050943511339456346020892973660346105359705208934230079384008738234481649069453862626938738982603565264337185474680040691747079855921499679777124316214715497652149071666035932522324917992647516007470052834045610988190888697744249786305677262662170882356297282700882839109858613904082694252976571153837485296900494701226315031166247097325164983234793714359381083707750055638975420982118289553688551897650005866719083364458027525935512019234047929373035541521889767913298929446401362041193116700029552448116943791519824897352323451522894108176700531834703481554082904660252494999602856784133570780934893639165857585695052892603872679044389181210562955390877941429139410405338355804133641284659350096281570595623227787935717780368932054507097974738645944602745222716270306928019597268767149896519186629622242811672223567875192128326657484221336595163005472323146861265631002293515894840907616892286972842048501198895329294982403400183902140224889721887396211112610148557054358177768705513723996718727288174841647220352356330038458123571691532934324214816078342313969558191221266094025936748902279456152271682975835779739142741065685236444345113224538112571866350551089531696226354333997121535104739998157498202916008481070925331305051740337916841060410690581073283949567280649146472654368772766137570580451003957168896283619588975592302747489050296842884473768104996899125642779114865436996508645279780521682127652090166698913404401642629484164291539869438669497806055755734320722767318428103779071168317036382343962397169712517410610686423184531893500755593821917308413315511630186114056772346981963232053375432630138487231558939036709728375219158085853370032442049677681215956939011896187263197157822612907343477363816306047872211956510500428857394726642624472844634983317701223422877613674962380286523904093658041937975901073348790344971411318392208603596707540725256030617447757087292908237333052439884331349469336333031245718518780713954703205017723351658300578562072429657275399442095396307193305081877498491120012567781910761005416357856905487863660532869771203184224053662997641108181321393386883754120578745678196499301118670334802550486513924444531858458398608948396454934500555666086863779993451741779164525917095391701116972890613054683215589640563885575164960606948035917979318778044021799707778635042385887384452313077704841839211132660316430925680436586439131091071798850809795973592596659746822948524862462843230931837361074902058474659950662983423185366603110252806316904774333178562539738537969740957036908920958953762513478699916031948276247324632985805624920742272821038191446641750327467429207899393058727743522455038317085231625295619723516758826835828861944898868557211508714864390035089200604353194145238206006918787262169540199146849501297297807491073951243723253692454154326466977357262617993522206216367650778386018771031266376727994900159375405273688804016984247148477913685698861173226197395456347443336510109336623320839154187182460886068435004662852791673051684804350940630320035961460830026590754671694930804080280641192579755578401706606078824505890394800866425985767173759670207305119944250482750571317493512198212209769021652254637314421970238038612478657036229183328268034573193695775182269983846676007491156191472945440382834778429513405242127684204942619175277233461324119622151873524129248254407880904877734713473582109919211121818967760794327618144461492101063070471485691287026231225796787614655863449462220285935070758107139959115534344542921028007713238686283223331639284094615698369120217436443238527651870197329926394347929373647863065192079612737396889498394761548090261782539788184454279534043079822647562978011803346761227465875192503983545889118760026322183765466164946387405476315216828444631929554652885519443721224865588362311782018764217880892237358806233348277367592934719537048642461043916718691176290648522288688343471282177480500135212235736540915664080330948885304039635955694309653890246136252578025733575308350236554183011476278307734150261533362094347277705725337799568249813922689294202961200748638899267363838441703518884850720068617737536927716331265487650916956665920229053419848701734548230751275060559811650025540030837100811112478142100314944951139285769260328897401090043234464736646255204188959477786060478007997535037638615414549451703740851236919283400685882923386876958672783241248514910955244683087857369018505706958538500628219525285185591046549218309025292201457376883145535522131688971877014481367371126564819935707037579397775333257700992968871984996721229166864490233802326643268708281853710983065957540096616345749448771382995001370213600491703180307231003447746366187161440114399457189768293583019816358973582264809198191393470443207495789179841779547080486908367850037717710977530428744266351997943375556415704359064000222924431504527956666779255721311444278002471568303091048035655599155940417195905946087814344164177409330115520575821944849654276055394023022191118678910755399622428219027418527325028899540297037031432886927593309703153244608372486056363430384785902891636740283581990168713275065775513763693939301330300426114863284875204562064186859940253919931055447546996149045425009815917889938852482101448461016634009125526394847592892611735760141078070504010708908218257415461100906885247819309316651796077294507897456498724039225025251783267248671503687083587879828804541378654450605502934439229301660401806006193683683146629144104588223631645240980243070824862705778893073084911000183857402745005311650001473689658798221877256066778453929685750206653499139261139236592833590850891574114876212568547490857270740599921474635621414305339720074261166611007033916033793719278601890801232858406072229723556321561435562030686025942036707766699130558125605216361898239387727651124795455618772486921834678599336567131123341929205949214317381545461637416233923041570519340951392626622720098021685757069836817339768142813383751252332591172190891607324017092728902895940469029167635174481738046568199430484639099446527976981170763578853833163275456602298394933031236695089864263799846055766108380228421247045060878803489728180897841325326055300899561728646216498186935628597904684380065838727159350485778908473608202805482728756755237952719608856467347441407301839047444813860772836859787829195776744405244447918042013642655221362849997440301954913933972887397711074053620243965452167062559671929914425124681560640001248567631829134642757026044715849989371975256694564140052206907514988915244249711584906413662171500185437054572353817894140797692599686817733814811870934523906481351602933997658686021475209806592229916595231382886976370485045554298164763560571114993030961835910306510328035592734739021799942979550388624776500669731585643169009752593968380393504234195965541692410171195032433099815777302727367300289445520555626467557316279583287625831451964958517671413655059184352235792691290986300337742680998769870715837514282608375647344605572298869320364871465633736707059400172016216572436616806315600905470686398758236755236803567572757656064949805987568677135283423104697041737606933678823161315151712886777422658526695419552917764031854665629749143168589809545041546463082121761722234425595546617564631603036105592669596132777202075359847546603709545360026569517874413266857186569028140116785796460439055176017488909111415157125333637291117080763794738428619066089935622845540745518388994453301470023478889209456981443504025125594976559098802534045514561541880920896643564909739215626681738506618268511243021574975250582131665475690887146776949493871637893427076945984301424553534666179112464580846295839413291919494820363524631403978497288842031235775226511544822212490047265999458568580422126194895633205896210259635028832456146895218475023458273381500981069431967607832736498806490812322006937220414400730112025804544667067284603000664812801162943684933135441752528178814798840483672274662384509800565349792527360243738818159031563097311321608737216798305156310462355233931640419780145201111952665703200143110764518362670822486032066448561794176304879170909914337474103134243146595171038665594063836916148911799706253279709838963249622444188493928719959737235290166259325521905724530910554655219961231934288291631245719601013126059077543921335290968858987365347106165548390313943151322286328443757525122521591290129662403493048387206455081968262454620693543995581470238918153023145465471027132442140822789497982999505490892704203496773147536077195976871643788895326537560552626205632403641519628567470619022994762046593558664473889373957444366240147086296343024462628984096225288059757704282441686157356084261402244174488255142480706887455980632905440046783721938718667974574041789659206556948009803642086457364728455354574814889371020190040859942586505478952801420704332905369931192395870789275056910405238465729822341149102368237918629137253805178787844943492740100920237016056059365282300043747575115209516416394104987181566283324103113958470075561689893138868415878683125184678554848137928362611444396625985777581074939842689764946793725644551280382910730701043251064791826327023776553795416207564983233354787991938328515130961623725279134819799375524882212639591009746614207711923560223014287323461301801838938639530169588534703924963436592223257750399145884185593070483458317078993855613749142478134245438926786787518033995380009871477057930361492738744852126225336280234591972940483284584290023316174986990059861329706048166979535199765249450290346354647445499728101828816352537066854297310477823211309509780807911514219877633238708410699039260432505146315333632922989375995402704803030429608727487670679650222003671466451788678961670969546053866421086922732952587802533533029718173609362720699725460555762679662801081567871981808359163932010898702769650900407497263287045041774566096183212115939780987937007209590110239821658263560148052729094937629888539284254055014628839928617246399011249188231131730489700898549375240145205512430984374380715149037958155029340946254626322101874138378341295664682738999872422444741667733041840772002053339806877217875836267499589620057652186654940773403820301236277928375404293240893227155789316603920682869996733195246829256091285003106979535158714975873907146798871464642071103969316205336562413660859326017576006946098347881339135173804931225850638411624247339918931805979399248791141556795268413603304362616936301253304499392437834162116299503307077658104407426711187607954741802848852251736872392116564327165506250155576091616681990961847322027701780444989403332983701911406176087853752444167771657911802809305627261127615155482812326566464027593989201578661352955942359876985846929233896496339633300092375285286487219319776923582978679037868411696937130390622538188773640942558597473692903064788256008833626309354555734473171765024232984004747033412824194333515772307999301027615577611397545592924714862471193352369766372759417699732286999184753922664350992608886102388016785108027898023097233623909434065351718628366838126666089923523355173758255815088145582254805958373840841423338519562043285532165935257650017152435575775825827988737151174582643358889406050250777627905252819451705449116768759437348022402877092555834102564112856221864682985090586856435114761210825158581654166775247338560231035880174352917074715165652128535653942977432797199350398691411516049430931612204815547732234403620966152545517130233975170070444395824581507491646301456179789776090563735875571138112249576231704225354917826231408798927445472834617053379331217138994016537685454271497897261602527049590082350987392356575468553758504511211054101084848809464070375738227972536343500335534537328948427225985010832686511746643360596041362344184854577837614826263728215879146474058969876153019339457866249235727270388428160972674895146487811995300272433135805034304002561982696702513190237670710274997230951055512030144744560639649387603753661041499086265920364665335442217444754751456080769806919612792391503372327028069358747371292975954093206146912039976687496192416789605232062133889312685007061357012614136064881042424631272478029733399611716508524363439673651489151326943541663399300020296489180098781960650111150878917915451323824379507764765576127276593605950235984958296916584980040968641635679895728661658098900717598272882201303369805057201488777003729658358569365220923626648628485312472571986533322086367008716173127216666378163227922897673571967229658448829939601997793734388033608538759885922724039038168784384486080723911091453270140566628218228852847345053887396182001919943580119841882873488379988409092540275482014216000742365666761291713042692484550906278486087438722184421206315580603766705752196511653932514671625420491971743398211145441845939009243143483251411296692103493644367882443261953576055133953528378123542555954058726581277083555651836825909165436940158907836640511147777548034257921260118660644747414792746843626203857473391446107926621733623771771374918480890387959306094453883595356499622390172514230557296200867376685933684139008847137981314882250366249590777675136311539877587173551003241210974913376109733158760879667138225301230488483983730339918670226379581713880420324942497130947889350070902805768542434278230863340162302793758883253178896310533267078394336156627735417337664277375235826955221864200809900600243843694488191251245471556709133514979439871406517032474157162232673011353545607265737009483963629342827957409651256783574483047184117234110138446887832869592823331219788025678519956927355094232095775533720033361509309680640930246588682591598010050018513316182555546314187800815838928496493367956347379637737769642866055210757726421230281317192713804695308940545857612874756263867306837274326636955542756193453395397199802644732123807981411795360951427051058524862209289370895484764644754539113915097672117240042970937580533246707408915835776237290973990140930479102049906404794657246047520879692013806688757292668859691122401602184876225211422396719858212582583249105008564054107940565958900621258012447929560333711517223241864818331224188630703439872453980480692980056045841951568132072921037070543090861686106832768037093214798095341414381057572579518316515774576292476861876450766548485132009389104913750303665679612393281137720816897287313802776263669256672645095203498931384875928973181145129976903691788417593644680643672606465245285552999032003117501007888700645116904678344027412483372226652312839752631325962881077981928090814662847137951835687971306862087067911371759184708096504126009915891866525567054606566951408584595604071129004733849863610477174330537521711914048654611216358579184403226927205678147004528114807745977830556879495023107331329888850477528590935582988549018997695098589119611163665047168241289506407412118387106844030965153740769691526142646986577595582183561504710526619981024104480967299015237468556031949948467197932585803017450358397590806771622007721888172270865487530070402979104339289935485034236386145456367487937969195021168090029229896851665368625631850112221781993125698099841415142602753373027881349040950862770486671551852507259380380252661215845091826948820824160920150979480150960845304384705430460097937207985166639553275010798387969018388756579475217361867907457082028477478556015169161301304558437171719430141035183855073653475098776811599378381591700548867311525466940554827268928099422631076184314750032230592674002770901264542664278795250564353677259554239158837573871070254591647718236724944730844528953562213020790256892601642376217670403798073751708626652917942406757393163502870976595146152672275506984699678180666288608524276687453005878107485500974702856956503938418810209621807790865585738844902160992521070947310143698868490737478847335797904530818358414145611652670670230038031510428483026327381748196281877149010906585097842468196546550237680805842735145829200029006526292432831919799373324612208087517478724489636901660324106365026736090491995165346871497828788106289165468501211421690505433505030873044530728411523439144561676563709361902255788052912727601920272979247955238048744577388570008108477601944315345514957043415597004145986775087134503646380620148876176636590841693603510250232359630303245460100763253888581819896477574569870989878423682926539404568657783095603143948516387658678882733661281140374346678167536748719864107777965268507087880165626401872008196987285669032463421028803208141196697331505615153326265732827760963531445860728019283772075226191487724848696163365002406536285749896164985361251966597673029756706870706318616439087275513261855252836331693555494384744253206777609572781938613161503209488152731163501296492785639139509426875440825441515095337026595732268820111999997093152925286256783452589133868574717948897098316343124666674281812751158065140508789580893788915457432761433834040064691321737186526321749195343897942959124604508690578799142681160844588306633583365971903243079655749955082358709437719596034744406278160530072057318032257828544255104066545700323752014299353952710706009470928610127902678182273884589637982096589851203849171956310013791572417632418049274892506038420104681199013888444277378379996941249900372337381950074360585192122687452163722190143540019876774098750049013547115894728857470401134550419722348645763073550860398301777305326729871128921835123248111934802601191437122731927347188493524782703968583327017025721994095742212901006161889523471665608643079732085149681612243133565095371002871078770091304899535618981138445980667884766312715001734731431937782841758681237646958040815108865004761346795020748084039914036802543903187834599902047734806824167385636667918644256740188419709472835231954896405679640396742577530374222606682249495345586213919833096394437565630796603485684093451623136213337701362490016240797025958892377658346055025732321022938855885694593835972387724603092739561803336630802721066136034171403714491874776998297314675623558006934366308121231565449211347540030763015918360696702855565733136511952130783739548126644798663718133183290980406153170912552894846691425021589101600930447116079716626128796682672537899953510660139941882271202194499661666375323676425783417928807994013261108964286177791348916376093027289665398853653594072014043149372397439378115228234805188366907609276257182996233105754752842015571795014187634138989930182172715170034389402705789195811893988414505893291475986747455824719716872541476828868635812671550058235005585010177295438003099044208061415937065901762163072279153071221270508845085302224747114984581544918485424698672229042365737357916734243933582691169152101361464789480661121590844917328095397691641831939200514226351667117763643408709091436267521265894653918762135722865491613294154536936593642919539478909960496106003625589831350557593243618185563377868761488433423814493359038464305106411323905891215557564287855148073898683805385507102329257606920706809486434096391407770880281324441969006934060312670096155329626334647290058126389327242846643662712952466662070723562054969573578190528570023199642430378981789906928110240280782683456523057561862318834132461241352031616723845067639493686084731555280692133489498346938440426485659186309576205593421269336537361762855983073318400142445134977431218082865782746188270724521222665525978019664621877463239218886672113188722518524816527796231634048846578159800996274919922501588569191924693043340020948423437667127123165260530680417411341395163157294476897096739984553557285771796519574299424670139764299202391255889387261657851201509480104176185965291748199532040556311650837613998222520688657870625920224156517229731300251152995675314775557275422048300414871431667666670496961269661296706153224836819742665361787723965891917488708694703188199410429744033404643864633655540203137348817260008741644095343682045705051998158911745231511184522886802293305173236677992073058360213812676731072199729777890136257518309604931326175854760812705793073422303246316275762829037653204473034561488736367580485982304329345570803170624123306800498343330475709479788997127760063681395154653478225874447963191357108094048877976990013528170143970611007476269409275928939120348672520275746346040407739343490954124211896523961322420733641623351428019224922038655736934096325018663907082310612236629103023926948315533549591431212147195614956219378172515565044975154630778627495063869188195043468544049986202154942314800004630481766778885045859709591653381972989856512451361250308006086927040041755709977233895096343895580140971561446997284243653769978160116331068726273992381812519719052786092608162316056842331671312958963332885014872799066098161454695294229603955049075432072622897121676921768462154281323956156127700926369232382038506364468866421592653722200379699643264172399722721173988947117666677909793944246216876969209212038209435094750367884839999092154340853837219646141596661532003015344444555170313923359604492878966841469931164785539165220257097124198821488274355534511910207885011933734988994185183189739453246605246279694671980033347640060906590869093427692485422585022046134054081768655001471825776797770272944553084513012798911390361837164362290010031613266454377140562758643711296341572286538684930334303860808566490758472282137264647704176826766994347185967721803424540334896857437103331950144090568605094257002816557115401354210944663386867144352748212981004921811524345728790863585395465707722026447434656634472268977024763165702954837622442635250185963353951412834170450489733954677914058740394154747272461473297408887264148699937765529794616966992237504310276248336926939718011963846234807991651201227004852343302577056386829655938627796291269403068907253738170602093535772770535069312599251799466103041900371277200357938750362054568479152358623474398946585206555267978911301767580847060429944746818488383688216557554250916098115648917493339362421198290143343506534879361168586691593691784957890121637007109783516248713423420900699246563918484106368357094290055754205422997659981107222268173173362804951096680602635911001183972295681009080019814815431150150878766206629602791604146111393562064892393150768678558785025048800280096609851972384145095212093544175712055615751749847361423399894035353313941293833343602616386173895409155968979688112013123631000395589924835610281132495323597356858170917279409672962046067516534113800273419497552446078690761065962177482014493109194132499130778597487612743205624586509650937781218399986510179920663587927936455117866602382067473082672123971134083269833525235158332770574617572200835162848112004701596525964242557270684025279069622788052676270287647549547090131876556329623695320371680369957369727139240123249862066211361657426990612744622720729334489164109557898342911422687679296875099450136862172480118334426546977071741295996645100384371940149741815891817511846816357198828906514530262625883608183472021605364297033865758391582351124147544403286816423376733001638212767798760912917274395221004119904032085578388129511498757762099822351109465641073968712553454654840852067555611541238619005112660970729660795632928130426528337467425152121584239176952843544786179660895197867080731048079428111892521404997214049382447499238942788883769057270240424731735791464493795408376939318243869597194797453275811978756855425408637588963405976483228833373792174362466061331588537894977678656686603028107588474342988795035152616107191840505053816173618979312935195264546474152134770594372457067104025354946038228432186589687258381399278137072567045955466908379412294809163880523246261096876921888568236584003733167194735562350633770396883416558146092073480368905251187508874963414879066544545554616190409467709835694103925722648137468081447973952095249284654895401664453484237321839305786256646715515928518502777533975080625919768830597577392941404674459675979651513859546883185099759276384451482990910037245338754713881977323803217889613612037400956375788641914351973386413198034298137793672453592302951597559040426970644941746118234450691711021598558257744262458116464491162854815781626290425412200532475884305560710486208627408540595137455783918705216279509118425285862307987061755466997274374120098775484662916666998786399569225355109620717637718872291601737344750650650545907381425380889091093664007246288117430031093940390573921496747087331542901743803930777008792137535603342273609235768373785266283831389573364589877823574117022257303447746061456609989448659354845969241643354392566965996900253515406040266832683960550803208581359314504883758740639099353160039440038496593770004501804891135335662483500117376261870166861578485964153228698593149981368467542577027141687281863457718471277520006489408929732796479783110787606499068949721589280330350724168493194130462993492373674986767533254223977105092166331919130560575067929916772727221967523814190047693970357541837160985817572426401972775040199759594698116183160677269668382299256666036094910234664418444667496987743392584110546321534781140950310948027290104777848503690107455583839398200598455997206179102068337149107234603460678776870801263756718409477957055392715645885756012089438407106914695408626767573210505702134559671487107410166862431444324525075443585872486153457884072562307711083759183625318054352475164448158318686465141984321281081088575361939920253130039868218859157869527020993996416087034669325989854932638408920885562016132474707900296468333680553160989583901611344044589073021242400750554662940444553937555948099667962037983304127054144407991347094605144591651510357278477304579737052313917406710117019889890326306284033551247586844949527825250514536476560800931701384976545191084946510827079751757013074043032752490768600104323641264334063647911556132596738597548147579091992504477735535054804963467256994137788316503446633582164452758852481377273728647649673856671244885973124910695584350778067735991396068778528939368008308149830539047930784364564029600924609087593833177747214456418177962782585007398536065612798453808145976206677274336747847828326766694584990007031075833410873193271119790817427318571784821758042664747832299430827228392594327530163707589311085221415269203721356639335839065480987086574803749441476619965170373377794381529603943628225187296171615466715088543656164330504335513195456361145209529583828722129132935812592281124932597640788857405423528666367841639403687268742643219863725456645261943656989868198037825579762056086482240512111041865502637163998646064636917875641323604193164123589258472607375959488678951302963893971149678765421930412157070381572261974297999101396003845807707430623741092272793240486871078336968382569634514288189354961067742519297921816148439512526652854788280836254231958777894115058153518432530605977228064169045250003010507283025807188816710372086399627901861103165269958489996057009122212256667280453568368869145466688969309052697868145938474493868638831594120280873265470265753766521818823300946038769823124809588558593323724938528340845782053896043023138128481529635579314923498403098789726028263621105743490186194920649444765257457050131459567908627466479553429623438474269682248060817260354799329986790337337714482571962240890011211123503048684827263832321221977730130831448979427160921015901487710197521433154322804804844463611469322787832593446797860930111785078788607758971194756248421636281410995680400080414849064104764103796612359281026841191873186550819688987407876262411281130901762358854955353882660861706282727614090619326300001865047852396286577349188664506049884390536206180395742997932513003799923521965876547150641778230480417802019539250919057995319718016364545144888645488520626692658512266661379790136465403480551947136428512972971010005435920920772590665546181215271790119985139771160604667888805478347598541606961084171037296375319433470737717933746268161995031425896851306649675942583239824101642764359452431867775711965326121432320292468875005214111906620857458339558569925009879045950494394852857424516940045556750753549647504828464305070372133348712182044355057873638986217399181676903586022683115520304716101003051349764400508977716749718906010304351857856070412150686409758163515886111165584891741737860438158189330076616082985457787330267803875926729558226418975930110562163287369987454398935152628941715754930594952233660344525202948469274709579754787024990968383140946297148109872470452444962462746581038338222829525206916497289627017788174098109791854758350645354041036987552390229052757640358176156124990028591565650697332940787881783772142558707956616172537834185896423668122801132884031327099614464032086245628454109471820905445227173628815726851756725521710557648230381257371013738028720530096260492348628793731011917527576347647271566969188826647057489746633718273208903865537549924704723209571110328029353715671876106711099736505504545700384426571512330355062464291348469345114346955179094049320023418296235030852874186059568656201903521524885964475116878523220800045467581842279570428079950643329963832208227094429143135560121309959879045661272784808240717117571567460269263107996798153923183331509353750932748912910704174381368592404975779412262995712731910049315244983411747236077209080523508317641652029885661916419196194400109435833187130507030353083254934673259943595058960523920251350654981858036912347607664334726274800124195616721371558754544565226288245821233837789406023766566631015018741223291906193452259866515372355277947885173132742548604206993245279720270020887120061298327451838681522555737076471673791622045360682888094464927506682722903578047098426907709588396075847197918322369573569697006112236755645064974380472771082058080951691943755374933007662752105431853474308785973540386803669374065093463404147999075308704155476903298045547261791877421215017106004214898556863244873780406308098089028436184547473391294142278915609222397533821577456634834512801229827661959357004407376867105303042405866704311274058313445605639821746372567395695583487728718000480536834836882376728697673474479518380886293706067314380976077352018095289048109937495491130219402520716733430200718596867838218309238868437335957434111134144426422019659098210177116298842885160461673783680142280883017697139282730099318203296638375362860609323166169069857040090021799988296647128921199554264641516379646181061474519159242949058174776163421801866012555224821475988135256680645900523760919761154705346752741785026751433996644329859009707010336808676796395070066951986425879253166141660971200292205362365465403169490049631081997161612321176275591042221841293331809445393793427662585986074687716465396259119406189278713986410857773201532427915372697367094031774986799688203779546486513732020460517403377380242644007753311292289408566699025175126721214859598132792072747318559130928133045465436340146660580240243285093324730568318005470686673947298650748818090960126440969508172937936689290014989563459399198731301233163310457762287252273857510312555835764405704490075145350681450102182594927926268028373075898797762502165894791477706901971283249164832441702973147715503321362262062095994754128552604754626980776912517277399148650118618629522388753062165062480542488279332769895532611243015915551974297334102805840198791475231257508024347972776306775373527551068666328480155919707784198764946418968795116940573060515609827676768159436296133922846287202171516118939781400042409313124839878544440578570478487564269334069424420038837813118850829961570419954983852459103821140524059450085139211416885326140915529101068503782454983420086871797025182240846863393385162480277665032377286093266645013069037844778051922284082939267457220712508543603158816384370847684801590343482575642036635518336685608378077585231968054043820757282078541871242121131128537589301797708840990314299836732493641863731966408230516283631832056101342364727682094516040837332123527732665756612997985363768250253813059585817495357661876676258788769007578910644719237139680773992468929973078182761521705548600108425039495192721867494844926092223064907026952232852244268934048408898362752293972425339573454327975558081475147909461567615694379786914823839419726387892507149944617382660053653709292983808254651577125417390804673175047882642421937174052587736510866059446710807440931558817582344255505943991801000658407611620936125957136042782811888258666827780566284140397706959992775421955702377642670399883753833483762361588919905826957502978049408468852183165114480685564715081748176980638889540859524814908954248802743554352075664148660199602251928050198826385282775324078316710508056557802248916438430947565387029300703149808314992223544577988576494249323619169336290698575647472378937846027224555737027381120172615506675642099099524428117684353935075061088643216043789404958823678308268299040524548850601193462933743977488830307156400749382118216552072586637874611710411705714529146215857903560594437256450421492608370936060640452653797048485916450745318105729032166749709998267743765850112564885844499663622134796242384810868364682335764839411015732806897027855687599558209524172338520526502690375770811946807656477395726366292588297567648604322278053261621930945569481074150129205683231469525735641928244338164274773670573179002213698348776428557099649130425979538328127513201434208816260073784819759142069868897964156513310397443306085865141047602922218117208581200665069996811603175676446391160479312121639244809864897127718096403217243258751712914677147027099296309453857701713939574263461035923876895134115946825996938430376103588865387281192083167798164414750472571902563469068906909482098424654150454537711020845536981921387866974490536159354613184281029919918506255857742035761073902737354010528525948229816686878189300968580953657440836624567526142483187862871975140217295152741312449059980865545547018628008365679317524775775943472302054426788617363755802156647961956668364257475605841785839329889898740566194035129175124086737766996660607352928747801657007387881354742015601176754443059018897714893813986722111925154776029743452107350502420152062797943124399686944265178898720197819242353775205915950002306078524947521442628161865275027746312299048756409556320274209756522809327296333900120202900999549802298371609959766627952125433393324285100505388589189476002970099418637060246741642994144309692613152691557904556592224925264469744149673716815491817951302271462489529901010990157119402018981287539229979667828441384193302174635935814291611241215213825925617097179889948758164350540997964865294244470294117890918252812558174029029277629123073785836488737105967739442633801884868956328594716190791404491382489619236174674384585574578455020420354194400044005319075422050530118918767344668834415332156179465020700896295395604784021484575747738964143028221474042995616658749747529097266205976450866188182886548456072648115474839662462492855512958345358961587004390950303960115890544741285318915964930845206439473354966396464896420029257416459863328624062690067555723994664799573836815840089830370656368577998875169637454351750633218033747077974820820156220394961682362446677329608643215872332823103314265802294012359606970827661877695081415278012969397667391850189533478124727752796009337641508957249869797688798236278986430558769425362005651357894466439617551505215392566190058643731891390606863192109350970064125221000066611468978993006344997877413419989573074854198051079551586397325889263098677202255709957458175379773257684234031526428213141871364522759485192006486221810752588689889281815515264852828739341416312934976706053892659980431048959331260415960411839504422876899769044826980297461961387807682260370694834056615851090289096348054955454469125661417067718083156722877326772120609914113879753755907415006019256791631739903917208682101264860983811593327522931998991701686712340482437762166060734100122095105148149121288470141936721377706856616457129589365238260422187920930284305792056414291504760760884794837691799642626385475605078384786210325998544447604793932371179617965801393642896758328223852525879073397103486247969868531955610134887104852645186280662560024212025797410983767368502374612605518555901888521472957191787530377691584358205922582349393709242135296385131977349104954576741303260848350873481834013983587041725213875378660275879802703510965456396111877625391241944243336735689709945003033940707966490431095640421204043914342797318754313952302129964917583441434140825820281859217442499120813451139019094048426786161527957829860627738578992196371495660894396259395221425548382107024397682148697171043133207239887260715193207626595699793619298224625232245652260545895311834428352533125064986584059628553757256277261035534192113849946500362004711809964307647438281546961172885687428326421656731891291576706470769604638176748884203881354552420320102138776229366874868218228017695966066474981765568785553609491586372908134361134932793432880466088812246937690599511556293922217640095293829131654158023382305132303323819129082656923731119533170938031765738195304568131864480905321331105165335637620002619989609744548501562029137287786340395083295113204239673318422201816231543872999200863970538126525107532712660447165615023302089968901651356322744393197571962506095653744817572947459776929030493639282584013318410966843320356539260341871898156960429654774785077232686143436869346496996634300818466219984777352244457090975541867979460010894456949912349644749276240252149952899864687348938579839462004369827364195863532489695610991650397303729210647041928387626082831628290184972086986267266052307022681128843408326289340645081209345098662660136596910376899563057406028041859874815103109148595639860804357509380754171667691253601520991670312465330025924110204394254723197831174029510529997127282846767212926651149410241862008466798466649815588375617411449803525447594502582202976831557692310653500801231460478373602269294095839108336700612574462904617896887030898963785012064944442652904413576179771586306505484742603369456501091208929332323463252724927305978236448013415467903810794631690346519865841106225624310787351287450496617383299295866194055363458009999261689626185445708596053113281481802777067984677762633786145469351092632504266746701408600099858393776811568380153628197016263482175226208111482145030559977642379063052634439000560879479072349130839781474883564266162150770481884982270557073600590479291952106380027370680476220656803512421605270817189912502136999155584964896983741851165708490153534161106429056777870580199707753879250143435887435331677774819889516719561436085750503871884168218726105226447402004244988235795573224154668921504566076694921439869805003295162139840144394664618922407410505767947916364566632323541353271852363284740585178677781686187841490880647339627263032386630559700061816419143442874802795617876993091712662858474511684537477805908030907924592616143855938562799791924613993151510214969679542692636369129231285706777770056716441061490339373178767643647263472285059280149259396977349610379614371666201102180663572435647190381035462675389411647493884759558082347240345647601571393179459727690296619262007161450291781027971914215679872990795941502490701231896349769992940283150590891681852296587604435922020603677430150744727198179884922587203487075540289385674255246938691801054625030481395829769674607730090361954322936179150384301008073119582719998860295419908286352485083753699958353413857422348663785201247497231978413694404636367738984954245165933172058693749886291755477194099710884217242287507116641032843765367220584224656421582591053851260262818403028268822446579769473871612471344260504445168595629527244809411581673528993475165276079304186579244913712906601726956600136912031892031413372050115739857218879646246164742154955921260557889018413606155740787872984229627029165356512014487837920757119242135501839405836340076983977673501973993260124724224123275212113090283478792485372321906625968011962859867650783266247878000819972520100118821951897986757396607390437123288030757141749985188838928147730469119759526246101904454141030581517718828869384004089434174307809266214239148491106315817343719393256169996078328492424327198032372244564495504599759119045275929931436527209814980201938834004420213161445376530661338455851625510713366628595075709500506547804477825029282435876843816024158978555239572932600273204923672690199185608359626965447561121198674940651913707501761770140566023391838798849452458458922129225591184175210343938369844946903514950385661377474282525617908640745142700774096362052651399805981886680951800900534640211276253269640514967188625690195632431387073251485336910797340707200682168359949882379239439011579109802000453237291059364660289795100461417151901073049500194766063081825862514937784998593240428762504428073083965013074164203340003766120133547338905678284832652430511480253763929950359663055068310942935817142727089016075997572890054380333154149080264614598583472141994985947036021096389257020656377494418262754977997609445578006979362024923928932901501764040374843492734543517925154691270741966247743099739879261324636537695672259356401811584042581415458963822460210626220203691098379894375971260317689586595189196890407570024177278322986287723005266160989031649547692025228890448854437654352989922813787763430547048205719673085632414731627383301404651254622800692244269466222883762592784633594877160413038349174186212591126140137963934641301979597728559441390710920022980028069626590802916581691536336181157766219460510809615412660896274001255507587838015910346321679708308454462544811987409321495757140305781739683180780611298808563560069318144510475223176103134289412956890681174628642563884160276127370514268428266605735267301936436727526435566035872771401200760149983332425964223800061130247753339932576591980032407389817459092016393182951794568265467351597573242671591297229123465070207778300234927092976942548444704935731736267062542573571863063933774208766555255847856289519742303343333943528847158943542375279123215998560417619267458147847663534423686549054820060042751257722606496818783174601021484419885397227681379291798966286138456535529437569296711164791070563320115204121228676706364228344678534438016159923882036398881419582605344061418174647728924841885726288632352351029219070310852677405786543018419674852276130847130441761999751917183535372068679489279800975107873500203422689723194195155161057062733931156480636750326732756910759471975898054886354462878179623597697132350983323349640685594255648293483390479751131865334932733564110906733115237432569578948282051474415634984493975445702742517436636268056328379298403074715910709780890644224265719830174329124374273096730874279125233083222159255454455059812413207553645243220322753303563540892005746749921823970226991324741725412147367354776235570007448299704614255916722102997864926691448000552880951546577244831136607091049997443358295815828914173714785910525175879454183072630348763212372029149936829696318719906228872755928872824702661821530292760069548512275421299215087706493253933366006748570713840908204530387102123791762898248863577004636773064022693255453812956272160691652904097878691727397808160918170407210684537138484208925371903068657890877879245651456882079301871455293312675527171349839615788939629555085732801217501417218117069671460394774398131813675249302944494821805227252147681267079312578568537379403293986096126435124204251110189567437652854711038262491849504072700136828655721495165808231524728782773772949969824457754018457993539587463337079613406609148704801316228190286097634308501652863616118434767797754383641879714333101541352547308426150679488123450223593072852358097529149779845087093003292332460354693757668554513641264868590341740634362920679063113236078283394932979016637814206391848039930786961169685560784379840621879383861079626441987748519679372674593158185861762876990418237430276030274437250134331845806262903116759120221768537186886029603787060831210686851439096794962045344903318169853187706501770382709545991875549285274194463364030699947703034341077177193303163217086028749485327719211038725239279063420594052421900553461636608534948524012327877679248681427451511185089677536155997730080690880932637855476751954297285288889119864566614285263058279576051718790601006265392708934168932273894801279941106247424467896827259066063726786462468539644104709990476123006047381944911254490863220604828943521955104664558766288163935642372120702077303818954829293641561365470879171296940137733394497553064465762945761586890930346790480680501570411635352068863284821811515207072277476532867916352852940978258080114142359231905670191625397400569254642993763030445271749415884877348193931525618073607107473907118561324200947695583608249129057986957726803656526632323847986471421831387099309071927812647404477412869523191940914602579862552680445717617879905747190554322675586821934780243537010214173529860163715898449286975159817825032877462382732910993983736391826209109377245060353469837262210286827369805234850595874833902430380114028971777062157895322886686257481244909245498092058837731952872027128095783988747938829829567513336584304195308893483304113699755744253863989167001256766709728643296656410095360077088872610908795840576034908970542058245574035236879029929441630415147848564134393485993892419922938291060579722383932290176751500900184031732718007920549866142272602582524276946235265218376652030964065681449057880309518836169702523639441835111829972477102966380365497854188167296741033630375574088381120552004778534986963630690654486620292555871890027723841802013684855739486992033159076753743285016031766459597736951316792670826618636565062931384563525095442579730436154039691426471555255351623486656353247521400230931307566757154847748367650897269339195307914389909240072920868334087849091181100961638191759401179666230491211079751076237366379226785756605055281658780292405915359208786801158738893430149704822784502927628878246125330875597515781180179649009762524206329033289427955048931935124871431839250392898592053272514918764943917292064706775425151476319714649188578030757469212179553497884969133028024608643710271761202167443095904849254893264541911326089347956624160888257192709243259984262332874170721018027936783223981682135572815442399543968554255046654656636183502198952621069642846487337657714948136595734260623958667277072979974253194821348530051470844976870830721871837805098168248140527882292585862991293915845906624999206576769092793373919958183558034054198843495348870902062957326892426801035028996370699102273751613869382920141745294160905466650314331159308238368452901922847682828679165626607422355964589383727041862259362628561344625150272898600198260837702542802779261084148818215394873088704419792800567653676278409648267486330500050347851470533488664116133036127976668539812501416811029664786978030561475144801309949105174439518532155535464583498126326004830176657712173706557072910137612682823124346261205385792460571040926840672323411550687609138433240233237108206584988384846551630650487810274276383416830174787547816192704374903512384445186799521571868695743884805009091469134624973844510276505663992403888860691269523905960133629942132393573325580163117732582856754780540382326903281164351898576404202824244326370741422940288678868334339722616509058083065709318328168139459282227630780040417289206461166884948732586289978180509484209346845531837101765559472825982641335338132317657910731141316609036198286768667422250305274740001490143855193696955311348497298251228923253268865105096983715010880553841868969144004015010794081058093979779672869269716554769284689763036853259177677362245878284616885740496757833856600176539683731853838863933277582216175588728184286282591308403844671807752647453283236023698363977941051776491497224429537172164198117123650030203371779977132498222487705628600814395142222787731385281291756710256751891112683046340762590527609697304606945364094754730328278982891273414390607400438632062876148706316939970497862711428791151736852584451270435853430873925845975787191089135117910283454220386093284404306838655318495187999569438056651500842292781598745905534146531673114071895296750975520257302469825997906907971383045548965686870109844249954183740683218654904788747891851598690576079203577817651526210214282968731344118512509341871371335886795305111400436210699260927650072476437570091018325293134934429650018127373743727411219354135872708193219016320975534205807684000129935610168140721440007679091128414412549530101470632421627047360325251729412944599028866228401204757742208540428188612224762863011983051288965497763630483103881651652438573533195499544133404921318487228155975388392947831772151801090927856619199219595395378132368654833167392231752984566765357035047546902969768727657461309133569929322672655655378029191871835685028388084234366377395485217284006940238294390595703280812931104800009640294162525642152004145398217623596890301445635283266475740352219336898613131517141497539304899713667641591046797956740557665178078441785163695867010838319769712883464537633597585343110896732620894414849639199582281872938526583323591944947759786103243126321966709818952998024706746790874926001566154158237002993402910227276333367808866220179863651015121863814396771034077921678653882243426029418884023087641335547510248017531265845020860025210702057731167458379289150943674646060808167948061016437449612264773162451927222565022247123323613990654916635578453978059096475165481516575027719642439136312151874037451412060251751671086893388488293833996241636841307468541448731971556749213583339431419100572879229459112554596640473190357342914109739993131206234755863462765875487949544956326081490835193728026966375856513364976784932175795776966361226182439320991858185760405545753897584264715647676684913127739297231720525178820860402107741237842398797218908305426811029204198406551654067754049190881114510352379666940595145514446882030022105764047123401232483937298281724025570391858209994310249374138759923307575605696282192745939315625658713347120118384217377637343054622880262981886202923459595505632982671411596744266886628868847598602351946914376523671884833620525972587217675082360940498316158144602135003554551262210493245657336605059792946071935729337334479763750410857367688991208812434587784792253736963748640343285639581732616181372881717510018501154445119525624924301411019291530643687609888030804368045563932780442444184881609776603413308986995551531182827558738875534119086877838267971840493682819733841918751901455951138898306094543661656629495196888456022888961779735494940324261035234712345838173337321230961865372923598986821427257611475898274268536783110163988667835082598189647398266174087078324739234550592442284265562855234319435379212972152668136879283264352899014750288662106880519740884989196910181970454381135392020670198469732869736331545504781750246191608455810242404223690297246995145969168516426185140090436189188375478064084851013740287533951343313555507909431878128919655407477379587088642153018070939809040107416654687726716613071925404862343642305888145425972401545765817930220012033160203536152457903538569617695196919212188815607970847429455925936939690241458742804940789871077826487474721226525430552465056552466281613141411807720722941264218868814928018627286459868848032122200274073598908321233706918053784761784192601175946810394991151225214947086717478336184332613702020884095362749536159082044566463707789866001883067522968403775666478467109144799919742310924348261838839630271537565839069424355927039211287848608321980257465685655976391182964130803296652408621766042783828406531234417315374369480438959947149439605968659906748908182336467153326381172703575165608614461232774855895780404921121556317191903936021080523255030018741487004819492197815566360381673478390127237264691516230363019811236479664168482400644087344178007572121226445864821552096108101187763657543157336280743689744231418555526180252146259465867713941259005164520392255246146230859067780103231134484940539575008338976217129804057492120694122524405422987902158990963845853895817473155701792118642548419591067703086833774792821187617915499767714736766048891169821698558527890483790805686845781153688669249418405213707660453094081824425773499535508113250153881913917558391501181210229210467345029383406201466832842353465866813467226552716647986159876693807887830422704688162915464950700782751517094251717788304743713671254672906989474533943297918168474435885052524695308100161591266361754817300636778758232781320360347477042925596721770199690085082592446158519569178220260626272429527456753672146230221852814937963112765164378584091007436165653706949294893555814509495374155924144809566406816834534644927078998022224400290491904337912581218369759507117178950360217377842805017750267050163385186416944935474060031885372094136515719995365617391051850879010259897487864649649453827800095609924325975208616497947365461307290791259286944665585537158125128359077496037381720019226292616558321908565168792970260593993986909414406879981763231153700791520762153214218100682345518413762286083572285787660388919600358312109302891055766586793392201472071305212873214518091825212351146481543420757300878953942879425182293117437429346012871426524656456200971070673520536554640975400621031030620156104273685630517930408811119890717671760920062195478526171622417961416832541777083409576514995845708773760061718769504709795114181701158028572589004253892380327236312889199076039148583398944020230957921446087069222272802894971193063630821894501394265888855192632204898268624300676576254503515257050544200957588177304323298119436778687093946888879567649981631800393072863641050616045015855013585200941803783223980615868000385761981931920982763204802490189474593402025827281445672439531402000137461820971363011543905023143619562602079485012526435429454833032933525620106216966461958091212051448830064089808988620199406154200049547688345807946654699290620590380280399525177124793273808573028141700630823387873642107428319704014216253274728020854186229196842730992915448705492817499405433928546107427630032324510028600764463145663419469522307653639813689339918522943052647158680150925129028171622032663503036768584455136098817103669508862847760970062598707477194006791285626175783889855725853555328777563699400306172870098414074760227444837906758983845738537807817952443418962790882166028022676235033194284449851054424665971069843151700238871379742981109366453748066755793900984706548239241926816413639182095565717468472358739210486844893914028976587441774924778397677750667375863611499928633581839269312855836261713627745731684986778140333407993612101138206088960970739792467533168418701651440291084216698244907433196933128744851955872442171004967979407036347399590199427888480438987305629217081710141610600084641750772615571140435518277478867764619985334340239615154208249467684615388295771837073768800575457369627392415130134495977414176503430509895729477196219254540533192170355186920194406960612006776359176033387861203738647636590475559621468392672111935484375594257376072943646990216028577350551415327840671670319806615319195926262218888598842442328600346756229905089172448186300248948996308102334180784986840442242288571291496035844195654396407153249418583882319093827876555134891491965462631629817020870750155709847786361867962615027994277993663197402171234916822862652995376237646524528828593831907059820356612915315128565495052002523103848999985349036179345393853069223338907232244066727390299362688666012661320486753568336875564977082558973803047940524200621295047896326150394770453061326626365563952879074415411189191823622887604792919936055405785063358331857731280938571813317587653474892100617953131986833434948314855432417339307547496819589032116792855780408433750075023789653611599271732618107975043791260198866474851215913113492065749951568802721861355809709729125266082102603421753996509013801139073921515654562785402839106447052345265643602260399041939701495276479479140245933384166826368621619317741733171039063699037004683843593088031827278374391475745865705498084328998104660988707216313295028917679949659257244188854859026606319953974841159893726860627410775843903577744796792724002621956031792349828388166356632661524170530862783751856953728435036121970425672858122687625111271466442960959552858114276603097761449804182640885127363320313818637647982937352143151069876794256008646181362598790963996386580972330573099337183722998778207473490503548990628882482040472255707071373190344085785957644096347283129864565466649171923573619121264393832725517868335157552787418707871995136516878082282336137666354633591523603109489269739581690510112756297402055580549863131606010752209191607289726322095061756063531879786554308655989700932603558077789841974340136413124653848250521600818465189117650386678068762370678445100707703203575431062253694814934278449388126558746708416624826487180832688974496970177233195343872826277622543023575080886802500046667002237665843527052034137316571376370701726421721582410803631993479937916389890446654906334238552021524286511726144490427828207254646101925618896077822234388726434417396522463778780362824536174397755439432132784480494279604786863568260343880522185865049555170827793368568144411811407954723618294409492369958024824368796338050405482778856180934904131480861058281666772863922393606421246314836975223495468245452173212734438044232324401629811306027178325994616822005777657395894783755852248551498197919528397934543576483351446550737120459876357699723566417561185591955113380854800549925838456499315686929533238259432696645311847161540760167471766855200062702205970861167617431978113363427321959383224290661716322802091088806334299789083690614975069869133284850528427100178939019507249527373258762816981352198287651992546425818811125495339875368462898993107396366170832047915402746674392036286891199853518321080013014944487156511847164770591736734141850087460900430791394536290191386755266492683932460132295526752753227153401706081656684659763120863466218706391969685664298291434533827774736519778990783806610075222596382820835622941487417055160689440660606199921194708510810286023406868960786703076514452885794770136690959393660401877069712207268699957087613128415253917522527051711420039198879977830451161105602086079412375620238967670579591541046479378380545758801586152986812794636920854324988411555653842571997140165754056230983331886816063424259197080755223319190719054289372563305033767978643930758710647798608733562507470042710737054033731111380723585669276362258325393588288261337687444980617709996217496188275121168364247715445797678387874377164711881940509988532876287878977217838989089340599493719217507101262615841383787865174300341536428388441945387921238699961453208185393330924538976043631301146105989886609299352576217824365175900866747090451927896082205558834371107139392996494884194794429904689118170580240869143642534833348611413575055583133366941080910772542402756641898839954068769517611087812024631918820893656106955086403228759641675896145013853595145302958671061285111899128900132281136458947576024122183623741233897254923873459245146318181078571678026586404386789610278650861319364338133672233420917131003185134423434027423153499239542401609588333845059620679177135756927804674759992981484863320562235503357152816575876603491587609110355714906169971412374397783597881603239740917794975415733643816631569603454505760010904472725539243810066888083788350166185352945731879327993382148274426406405240500268827729438162876692285003822195058456986115055447053978752322021108496625153609140126302205952048862937253017677914421801735033448230969299457361463506535845726558607542124444428888069674222434630063209525210506519821479373805129583400855085763756307700717529985028249195276299071578719466579994325151658686601925809683314359266793189822379702780737616345942094038687065456803929041009565536874355152996595934948269462504932697579221719151895538469063340124177597871096903402211290055523712498768915991066469107088568803212548911964477561590747092527018676606055511392786211225527899035500194952622390714500005208824139234525325377042085223384738780910496031607163598279744049311176269426954267048754126270655745180003729555997977931071716662240453961136854383128053192560674229428227373809318184726680131765046586917890527922763894946225225158763826538384351863237836668204359186093843190424049111321070019389705380848929567980241006220697071651121114400989777199795729600548503100582978759032457014878988493855659513712527115423373004087184806061681914115395758307823453366509973242142931212404614463507312444790043293072937695467438193975673990514811912571754458928506579237007217259682356547564064169533457093738432477470958954879241911663062355408100581614136806103773253841912764308080108489771429013483064864246460375776707473917002011522648754082713315358369017628439609815365620882200761175021127410986476644982683688058878592033022144527266386164131255139472737352608150014932597174081905885726598452249411891823450498021024091402156712892995197175951511265876624226437814991918456408780448770738782186985134692032924725869974156240000097247335158816666555556448303672459376379109399036971088650417473465081678007151385528613402551622104095877200754675749779430766723029310086091074975991266274897946143443651464026984426618857508822651535683865035704983142150488777787028314146415627852595721652097789361634218709718495553103536034586327157365479961101438723208140349928634991003455858344629340810363271280784158181677488668210367518572994880559004454680013123078368963733856694601734989564538608355950203078568670187082128786867105382810389112593225963372699348847174175647276505179064698742348494363105520846811686168334059852239499917371103249099429871270499966021797726896831062814700248319102825954529538477208972443824755801357596997670092085072689523358907854470764487964085402335375047916526853002919623141326627467859907354612975850521627352676250566631002344607040463042066886591063369466308647359733334204039679298872965087395536953096407476159175796204759433488955168391370446313048619361779701119908132343282428216576682500244251391473157679360900496402563437322152694439565101653164261244796447149110616739793744848941391508397160262272107122401165521892125184282550518806019182710332981743749952902690747703885706561012546181852257621012897796148258423965486565959712007165264138523555132185440751679517703008713247852826070207596155730373457185014078075293455682089063612579079494796208637472954031849838836467106606795931430130412660213663377993775454778808759355216178590008947267238033468096471765395785604726121245181365842685645054990743953343843068651476841190453267531593222166063828571186414222108054182762977972635243393309160266114834752539571315870647711478944672440066276961390594926905018336993331254375815561272835639811455070500097182501327761421011286549824762818789380691091400398416867865500445110284922059325003597317993127504174503621824055900875536529721043289198560906275449801644101827574304142021448823740586161541221462311211900839886707688753203825687817096729255575702119183739621324693886305921234553798495678126890097735779497710835584105252534417976622116222477526918921987159436755422762310668018135193881539172510082403634205245029170455369768404663576942559900762320440762975644723698510147026453220392386017159192667345560396726427622867636796302951530508526379503111364582065942551144420431696869196580295149153246579691272065271081546275480950299153628220908174820126793959890050264338218789763122019303464100090738874024381894042671457812769265723448520608093302349919603736483621763302485819721267067599071502900315965736065449442472485416516756093428692855359376629214709566571941289213480746619476441722704748801340388211918024838703411645794062643716569512088305367453030770495262859412430225628631205158116834850387065868212378021542334701147558287970252494815257031322534144917455963848764130058912415178501197613825289185743723511094664702805852450892355178569944791065235283292335435442716154019744736757269863263438526459939185197914687939415369214895326252166780363314804853672815713300043831109007663185541017102280805908683734764366878068296413686271956344605193239564011668221431882250875950395385947432714691807779741828741457428437713798874195890401750958321798311204339315468666656901979289393644882404319789268516540952253725545785969788683463251636923830051765232555631040585393295564260067429491969348149538313850993104749787423737331949057086787232466164714297170402846940374664205633618847605800954055352805510691499352559751264768643676957702273964652603822458568212787210956012282404998815217971231352239333389100292923910289231354583150970616493614319848522571138763136506421470948270701935425527650034831774820458638532804038570331188209049077814548082466437406361793177051773184950385309312246733166485701309778697500969492332518423341493013920799254671853830927875648320814068312961867095879631333424627147888627194647433286077818528119324806048279247490513305256493839762093857980181179477285950693587426229654482667737657311264041486491992769046106181347725420495191861446926484758042587087409621702405003344213597212597579640257444419767891760797883727530915452858195157009109874957626527207209924286324792224310559768871628936199490955608363530260915443276374917106418675961007871717329203662431945528703970834559583592575411740336919029402787538718499938603679744478916705884030904967716148236248415792892560654999878094524245377457856700387060260504608048695847550178321864274887188390447023974925623412221772165155504027836288176950389974035379849486946367421346809681721226578095669865563998289221166179337693191417799190116907850452226225414393389112331214195907376760733809246672920219090479090096639004417468591116761669186695979352724688893860332957510694459219317958083696953208924120242697934547820297666511575514404147476568392924490655633799823419529605384129812594297432714000415378748467529669207463893482713313493082910526100877329683424080663035178185674504206863656145955234490059295107155414693601435416109683579179303770519778213826156245332368588699388585580966777201266333909403473615510125534019373244826864921033160988551686898435246132595216885434937883074942679969686660053785209401180838542527364120120098511607720246069904358847585997828468491895419098242766052364178217477350826180719685669829342529652232102112035553673618761144316847376370832408310895696165599349697293795537975541791293456802086846057063367273804873289444226605163295385287078203157997341225427221642961160655328340799118882472108401229451807715950160327600885241849631563991685039573483306356532719478529490621472313518561155796505183036026998669530442879696870364751598160062201591604825612320935143041029064052167698397641930633447914425134792919713650547877093250447388618525528664711590003139082463431849361591873504287798917970580360666079175975410663969057775281568797092895736271719587280304059355377135687451885321679470456939922962787410891700413004520164746467937643049425787347746916901746366164364044773339416771930452352205868824950322932524097554808923755107902752041307278757733756489153660681682816391255275690264136617660268276147704393873215082979607658055695807768317164853262399705029444544025436593448623694946187512251228157355539780174147314437176442838884947486040057537339421983501378767577658271797676737832126673655864895688163489355699803632247552451703716604533817357731535708984162629577983613943534905524287091492038615582066562836480059327442818650854872088572640833963925863928016766021026392489918571099208384803364327716444526369150457787102850072358966294878709168978315436316973753085580953608234491983564443568884974546717527499507149663069214138128721495917136862562793787011018512841648421438921112477290548835131387495138305897330807251826294498536870781008164902582053900208965168193467266387915716736521978455452712971514924008641480496669903871494942286985379345854136005480382621703276660447173921421501413178375823168086270842153544350814011106619677498537895565620133309228437119880938110233714416238963749215766040978537586169895849671324653279135194351450290882743471870645506200637125033050216597787420622599288493981794636590183397423676978191860038906209774242484382330258502122274353354893034945943535471921527008748757274337019593159073585382975979655249373245370635206614581242560158868248666434765873133174761680581962733008114296014319692951559604382057547739369435163649568030227348595275290480052278180842043120366224760934469762889045171160425522415145166145606086359740454269661252779021117551940913589543813528804766147686705264343943001460437385647874615941820348163815839209387447273954349034147732127522900344620711917457261911035116555441408375853118001469938983263640468643016814375389143582129629787117152947977404493860301453470847628758316048699707200244147415302861123312808433338120882678159241657305173862858850352984577049450578220607931906775226342264221955068246867885007095537867290929859197558337628667985981862807277270765327205571257352364480794821413185944286250741320990874380273505822663296766075092734696760112145992149377073422528196165223869875040027995169735504256086337457737308216885819712439929585256788193981391631608956998579952427621741837052742539773613404207644113838142823500796206134900615932434050142255248163944412532103549310480142873842079215186140314119555005660076946132355741480548162508287026725213673436520291090369397377034922110026322569066453519841592619805581707678215904087981326953551489172421367850876451749973218908274932294153502214998800491855727642004440635483974559314571262673034858450510238476187412543650789445704521412387962405245403868796282799850675405247203788021894907300455416217139044944940486258509064062447330445650703441301667844586224967226072419436720599779504998321686387847600975682504696931463112482462672471028886289688588008843838306631399251266438095067920748578991780120392082945907787713590967247582587699930804853875787954842995976072377637458717474768600911358474288098853394132136032089893868565335244792806555173716209957290034843361248298113124736908453996890684493741169364423444937749376536786232710436135594449407410961530268765252477605525923734289942622933429144780418240542606829429777674522959357428461560818323250182011396621565814550515943573111199122564582704152974012458778620747319172454605092812063416339001019853203915323261200694331200768631206370133106514502338397005421167116652658070043437814005431677461827152415827757557957590268921380791601181280655820388111063435217100877174025418423398645295619791232491194121558360755699709764907688251138081616517203629643083391578260146873109078328055180232797448719717848272388909089023933545500671828344792489007893586074091887317081677285294942869108694980965095160225416269053557208168730579647247406087021814780185299240613424282864878967886972624126612903664245922281927869503389183466693016523604217341284950379385225326356475004150738354747630769654822707810831469434886661063984524585994597863103012930433828341664182333218170957364959151684338654701304645572603567749448519300785714099670675303803281818992797218269014654118128496498405675386033067755107303784052613786008635240522821441704443032764244222865765519145014503169205046093319911439756962696848440481444050937568856277208099438947861684534110088011087028650528734707807794238042432206241551162304095497822933100566923145288206841049156865591101718404513978998685789369842474787036854709895730207788078446402065986579401470238766098612902799716637629281810091509406908045820661828277172236610983252407675438656174057921555020226313243594949270983028075734998657063485814630263502097469213721859837086788754051028903191073286979932748388085148973028590906279606967648473766966039079138064204213195000052715117429556680525355927452376121444423522486768838086716983292255783212204040814420259561588556277395176423926469903188346197644605825245173136954291420673276903776996142711779789107010258128300669066637993518210531977512092024200594167057060136166830515864960896262495685071599920152674581831595211654187116576851760593071489615379137683011452663981250787331795672182236476832885499079174445130394652241703077927435841196186478572866394582064722062969082336637324132960541102824298570863653021486471769405355941497826173837483374429278969265537866357552613950443439878459494613069221929458107882960851216922436449317784796919059471977718242516757797736579219422196678615776597901724835422700654320957205512486613941154188007007799826264030663215869676748992896651806275494551263089170113717168458359743785546814524812309506369924237239729653925696044302104385849070361840313011437765391276078486638163389285058215654452313270028422481658954361336317353703961488689902253659503708418484315577197800325755750135039629613388170058101865505523105241867773808992265520607192715842917505489616357069484490360663985931992372809434220230431153644085658266335903903235949520203912417007541899005284496352725199787192144375742613935130533016329333108340557889106382073731719304866983125111933961865466224151191278931076270501051167410637195035034126910139883222980260664845703693155334996849969505998810727771561222117348765748605084170531348887710438144050215511621427112524037727841563921197381515608218785328597701376941727921051016615915454661542487776696016615470514480715636033378254658226472630572658786194231036574872325759400175977267299239971580662040476318322529006003985192940360763570866954990090718647350996482849687201604671880971335649166518061999198814381048518590012810358354313507244843354753261396815610267722776389917266842499245909152716168537328233533249160479206988890605610013667557790476759084632686416132788749231742637143278246813413859031095863306435927186561733051768235345002343653715163285465389805980178090690773974154873178770507517886525814760778835977445779970740103540002364602489388357618622643783912736281276731864669389892484435008149830778970032080481850005939200728350312547062331994615396440253077044445361150672233963882685467695228653243756562052718771807091550876659434326276126250339753196056985875213237829487858065093270770459997171811928731613185638830015859727668140779011704747583677436057042379341635453074233814522370324483603077073953892652320872913415715755001742125935420261587387883713133533804443836089532934623742627810162904315067158178059409246338201747999474675342466618299430101640433686159540279552819300069116010760765867316366537083948745660330967406508777018456513603889128628902995255316634852038072702737932641469759257988192565433359645284506850187711372680622029696041021939668105749930162238254527055998299410088989738836497076691127722027182413917304795823193770167574357545526655882843715464181898012453705351907291995248086177533137821593287754657850432430232334713429781302782891316439580938408891313722433418332901594951434783404765920784600333625835557414120455050411264265200879904196087005677118464087466047595509661756882947306689188429542806680083328240419855705484532775564560194445444623625594574612879981693639962692467748644070816874111917627951373953065416947402284704585421558020654159095173852395150082068537360699060024613301991149477970174292338974156173444057118236443085558750412217793953094434925949505616546533065153999750012479094802036508601684516804594287792942024185841732063546591866745957550087905482948769356406230296663207955797326408719097900354807542336536919811281828687052710948588390656167934236491499051570369339839635286660560677918906494056092561922297554935147498234436389870898495770925684615716507470005417497961992846541949621430574389371375162591799497175424732523170774895365299725914955825580703194733281505337125114006297356413879596608838283657660369418791322508605918794459566048948080857695965964104962902267914545756322728220113819346971670496107336775182153651536818867799448083999210957956776029286716121862695776003810484635632434824099440082155999110451973919076447510787574737263905190476154580859260283315055010099785998648495008579009335526128393456889719833775918870887627237308135096951554363412691377040680409620403019499998807461645296053891880165834985585708133406093383668018099572194146562147588185541233926928045207856555039040356830777854563747287712760984646246283956756169782688935057431255123422169564249610836720353863292597258824933933921122261828891996781329156362024610588109303297121726786840249999763232585321753604224768827111571929003189469440286408846690712856602421416079706046490320419630744830434050951095512431605386350859055510884538542012895551731909452755218692955180414699267543237015399096043733652987192951621973339823445396482278791358596025394913650195526915595389516538321413068569777045073161799505743528581557474380381599187300418812127973087726381268413568436397827740197218614563284979834970216544432117056372359732489144403227779400889513346306884994861235585627564642016918415052793406226124814750018570452573000434513222373906437677497133122137129492392177479645985634510266720925420935804229857257986237193875546954661985523857507546799506982745419701405668608623367714631765812263316229118836534774894661173234439336232701257195956014882962199491984875510147015765182390392382191814922301353697648474737653778906300604037481209982987962604282705752875211137876835409547120279942582120344139790586319251730397699548891251770295306892642864671237406400593666779600903653388625407394693305751185633255523888113083929903476144783394031831890796510872171024947349870362359079614876634465783948434303780465982419590861264797989992447780432012029579122506321694195533661388952035790543393641594825535525660689628848382750406524573378529825412611143762822872775885223360296182668027764807223828335733377010230250797597043046870001617419335040004828756671029930269780341898723945304974004993833907492896060025712090851140420275477694715748500068997681243617029266446889621255716143771279227124971780368097798003956170114637392521762446026572672465877580371884010176986601507166709801654063992380202601739471861336622378165361396454868333707917129121399507699626224903133256235570431826749969576977284973972141615947022736338673508594399823347749664338108556226660644651441531259586707878837061854463036467365365427311543548137810063736105992550098713852054256464626465003670361126306959053152676872549664452530543181726458364100425281341026123232499260802036390858385602995909116876503999558709526305562447470308356236937559528271738568223537124656050360983870240696686248630256013153866162503708709708745014638447156340656641744567059998919671763599920410651725338327546664353503360226955539296589295454487660473773909347783070616004248766189600920468170267780850842274382146529864124383925737023278651177655078738126812708888638788456472553398881875437541763123741782985537886769599788494643474741704270281915427717548732431401249275333350986003445052582995604441288418338438102832797399775895527042192353260762358294540873142855249831745531989874501656332696716641970551329728220806953715732164586305879417921238261864509657451962701876678756180908035961456971215081480697294214386996674462787965882394190775190774830399223814793470095850890428155364096344509732456988222270625511649885046146144501130823032710475312185947371173934509590629126427977288382735909712962251783842621046394150292389177496781450052825027738012028565162270112182475304542252650001664908037326920216568546220760641267939026995251803061994486919160261097850336023615404661340770446617756061102202631016894861890158347559351099705402900740869376583062189852865165565214672198836513024308919778109558583714802731743150068406997856437289438870420503232129327070832761416273746809890719534238365946272885756642762869212862257741618198892353370079747727176013586083684859610844386491157800456715967666005291251528990205172208481951180053176503234094535758888392267480273679776728916198948602698700862252567999689671919727952606091106610668408645907983351758737528131343258319643081847738742615986948109760673291501940312800981812518826619811917145652210962584860851209956609592582528755223287197674227584611000322058030648069083347737464591080687645376486853117977462251136061634545201779300027700951522789332905547831863951553071350718570801091588651654237269038600106657167907659982978040107811476728398191818544749065487139105506072909713185540198518411254184787935839310321788981081316464975225516418330407369818094884114508458912846954460138903954815864245990443052052778094815341550654818444654182765947666753777383864742962492567207907102911931245672736656876492543253394978631697820308278631723540769245429027382465589825080993768589988474425273587546459620539856078326482859890071144591591054244560608964343443693927705672385205766906754271729368687372008730973177005396017828298406780613072298872360258709002861248768086626924597589884490168600098464503407624537986981561481795008043720271036954911148765161243180036220983291716428206791978648319157550426059806661372947647673602072019339142872459152537843850207994819041548777930099972545337669292475089003418943476273955688775299136076078401582910799486318556353348238053292892627859424309208851958141727481200473857304658047528671227457155591373652047679576876752246853574770072734353784321992468488809265434083699019624245987283646337258782054874029673257674619024621513987044156842367256104434020318906225659224070883301122397198919645464692471908552093535229945884206506994581292937221167967339515752980572078913773218342970394934357507985554874669477268332667791754208243936998612410149824066696795688817228796283315543806023337444472539826668123049728275433219439739810908259657347148224140920510413944467813561524315321839647523717168653357300564013436157887377693075848645627127700778154976225121140142145634421683195084802336006851217906102174518750966626580611867097630872575853273291465805837803520921426182676511564930471186364135632505918551385185250200002621032801731043747465468610371117364658110522568035128824990573640566410955874844060194265833075079956623093690202207862929245325049967297812126709854806530905230563739227712033393824552790026461903714831809162398449082580870144012709747197473227276974216010546798333218117194523331456531163923082123814397282852929991014076940680460560387710802276458328325611449399656565131031295133280555878548450840585273470374368026825385175607848323870221631139833895875704750492334535531921399307467884549801263602992531026312961809338471256522083605592823423791364080549893214954370270279758467974913949833442668335470493468511056510275034006765826808790962070379040690190421756113891367172683764699634822122556355919304483618751369199262492395893365745304894387748681531435223660183992096600959502971728894821108244347538636965520175088703495148917541092720427221554582709934953764456460689705416264301493107658830532462615523705689981652505759278925403622471912363724030667557183686803631490912549854971138983955079283201550456420315719855879045536940987950652806432539636415193995977251989792065359426215265911909943593092722181587184591290133435476791261684653795485648535324919820854809127653706846795230333814372574767100600955955108590094021369827607001283907278646923297503318446498357297829551468764340601430853275486823797791722140869831236279571234166875421472984887013341644616030982151581846167762127676075373387180309813629398608494892900494621887469966679909899806198152778864308760663708927428369874046992142391062222231910532441777133727237346971010788777110704558959926522753971774947328482346650377654895787602261863329203734724876874092876561399068860510305583416222951148682268311027529592494760715562566659165492436139426950525095600794972201303610482616524193503539568122777715542435768496577878105795776799432551884503697390137271582372303941366921220524178646898375498835249000817022758296864598021422810886318038771831006352413841272251134363408359279121036085586879451957982073537743026444866139471961322460811930382294851526890116348588975964369764824403923871563289238495183532265076132728381987521197069379280074012929649308812556462059867089745624848236475621559879565061808226596029021752737694416033500968492461051637657726849484289266007532441489901805386570002248216019944227782338437670711948482999440182577842296397849135740522656905700380142701761346567676950640184764527103057648351448290593965022165252240697997856044014892357471027377789435623789521072551408142563221853375936057068696403989415355860708228675645717891397524288790160026947927681083049984507772629635195068443263537580242407871595905281853862698622882439177106891510149936660102276385821267884586051650531109667549783010933208088840592279512724697706841051954344664186378079651125663162283224871980718752885789247384847898898571175316752181917164460668735278983731564442501890500898306977870991326908488172008297512942837193073029638019154161684121809834563387815967640366987131657550435180451429229169824744817084415058472273214969459102165834237860418465719141144221649923437895441578330512064250521541430321194934780635800633598388134011473467677872992508179310989712325579307794402641543229983912110109314171654411567310362855571771171635166603034496128571893907420225877692534860803219981125428499558670112704248163889580592861830410989881763812797432716044858042620132172863112687393564157747076760255703501927984659706257504519874034755684058094230468803086544060262642085121882130590589553505592817920545937111892617616024566139734416687204113227813662594727144266999358586853147277326273052335164728905381860445110690513597107625329785285651711291518712518815143096739525380413823430477283118874864446721258451533493679728937838924304512257518666038450195295742516877550216174813317309863929982901732834253071892619919673258916294483151588579729393795150304094825750091790329364704148569142479240508837289797366635191162430088933475960666074331505963421348119127496494524099149179937530074791136094487361406866430884144950697155919395569607146405070252675838928873931774439736541523912402251573645876659388952804828594451928931509173667070879508016772820926200539515461142873288249938089284339576078723391953405568405941947761253128973812407516503418272992377454073923424287460275949474869631251811936340377044496588755005434224016889821059193633442415758299574667730358990582027890018558849273561211254507956147742389217221161204833505881579771424160169428753237576488055816466644739790746344528687565954037916217584620869639383535185246268630126963477922391021995976269244514861014186522029367273555165486347051138164456148686080663040628547209244970890641882961904967818415308330115492593936255033298607179588931028253341251299421640509331078984801723673648612484369986401269911998732224408700383953717972477809949512842271773338086154570217186913335761834576238444433093233538104617254614418716596684829390311527478052885256940637888695101987886484338907041808618392072203749038349795742254381221432571105762179809656159470294812708447869322321218889553765798176506854589450413553929079025775284257497883263369845542432649288264796150735269509708176144659033985288824771259248747013396784506889031757223993540897924820966771513259284949227357893137110500324548660970620537236057670037821953175256847174142851800934262270297171911524472047729231443170031205783626586926398684705929652349565471363954919851803963372116718707410639916390299968382552059882663469632407597946296744047723271616394291855625058453958657578983018279848554270702185146684315429027451766964997672457686270655307350787344495651183176176638135156666207311079086165526530413276111023886905332797665078902053885446568780104209802347860539255280488133841736535285553325768805437049221732996113378271092606054908316520889134913847744036370515654653220627611796707736245896055727856587050864337515978828317154058576107082146544598220693044075393209299369935094523794628509798994033971208704695589639029701883190856053404420078572912605813625788390355771508258124603213399914346389356299964993520091415764403898506453855627799329725544453997845029009247631208084805231208319805817203797925924623732032984908293466644292505618262582716591355698754140472827274551962238435803895510555532229608460541992688409229545891641756743755995589974063639023018327555950135751340575487697111967927609702922705000150661817228173061482089337805745699278283163541571424261210542130525935080351723677419914505436155427859547859453585969691315862014905470886380480563467702309561196424669739229174582734422021430194248726166045321822802436143525879474115631377625800931764341630602041162521071999452429520480830883870060426297039505814005993214674732947481718822969390846753916932530430194997699824125813360410748603107377703252082601628062043807336570728577859838869246305902364367522970841029604591240142870576033266231022424245260008638917043866861463205594294948399231988071737134119177709723742479654533971822884742364846072067488725879734450281834770307961254878720700536222601545707718864078260993818697073437184391573880304817675486182213449753461441926002227918222660865690379142100111803553948571436013005314448052575276764666238802090505979805040633857757575908770622039848360724844334985641031647083580564580562261862518133749758942092539391158116063342427995514332981670673121203573541892423502176315764025428812848330104287218671901455820639750461040707277417393876306748256089547648894965984838831762088454985591785669106588116407744073972895433920350265348955184921237798518712974749979328534488257774087374432073537677366269775406224966410526441729398862768965214735160630599458944439983817433241090419011682697331756497199163331664400604062324642259016641250192826026215233251432400384017767082726302416055872112803335604958048273839981543467897626815294938537956527195892586789506114505818054648497610609105055304270942977115211126893232097015928183386455746761895039827704084294694970037219869806674330572321005512037711471339950965773939259415296414625062666612037899465183881800743262926319521423012858847543746672919041329347935881541632532482300515083868535362852298879541967322295629366411697633152480500461977691083089994394782158062383137900271819430700263276029024203858705553428007072915526553038332072927217802477137684047775612317619280281120483352991386798396953312894964827995188341957804706347193529968384781031890490844716502636192851147881503155658674988833172297653379328329458568583118393186164155585818758002834676962222034617964250359413151612530950328873504955755746510025971142554654107713026560288617472579668452898384758416280136673961760516546679680174957922361315704464290397828682208470305288793281861570242937037673742590008023715047256319032111013721594251352421847748936039593530133937150693535380965960154177160335124184681402693419979027708103213583293219084538090855158429090549201516010348615365076699416367949563241805375709984640736358749490095538341251129828629638927575335651307343922200184036102398471693491363754953549045797274554176561976227844411150444769681488959056700555649370670159918451621910809979368982069929645405835166980974519776509112949112984750102759741940319917494616245330243659257709875720501739916601901194934296932012891236594410774015343489454227186159534390715227706670304923075944619682838258707631315619970024727115438507876877181644491016591581429403133379089553670343277671544726856014757040451472206530730950770445451947971473985074628110980461179624152058383148164485534263915891378892426903240245424964567424587284964165435386866919733652765607449588228029601154075014806687215341063607676270485281834221379542874072391717491467782489122231176550543954357915375060797154733406762928753223495640250685094254504738520712695680944782853224558642965810699096559858490979538925451632836611491531654943529969954951032339181182148614381147106121365955008222345894462479557836038103458787777482822238578176488727507703358555421329795552407644747110664761202664896869047685095401528431645846770341488701446927247832121270661784867131673127864158237636236518043928709031960146296300597570831009132170584399904531639951537402575287536209229461533573046110856707759409418995442143747877781427867408558615397274933816612209879592876769085404742630509100620250072991120009383428940241498009233971116807199610231793386842668521381249280506610817087894043762083524072174172786213517089889959275625305056402513105643211244873155449288968517103859568760738544214626791262346400342043663697175947058261061269667855884075074166184514470483506078187633236914263496814951095346282139096687861724596800081776204670415969663576299817329427134722126962939709783882837533899477188523652682735832095103449810676808873695540929558881512380143880047579717712570117067298131253058604865129535105999020608346206690712503486605723286090437230338656545100719332231065375762794448722202727117223536415378755564263126235718958664193825596285301433204282450669886451503438206457279521319218092512740004226696182017505904614615092785068187659095965994560928837925618469142083994019323755044986489269680058071929341899487991183990242746314982030323036864562038330772608581137218860257043190791982061447231987643061335931869508793479746738929960045445674712307528970145630438836478004981841160976181183659890434716411293840142621377408415353625875358689038628435618863345676657732782069357995521548509187264500286129731912417662452782149789322142593658782552710743184927482295631428064040076183304886525891031472115717947101710073484514910631880609923660298924087116090490057461694800755492813591352511957339176760138762061808115351504018086602821373425400607209524172224093089720520243167874689832065736979938692004402563758873891860279984588018741382244004132767903583269653297135473516059057127661665724105078278255620714776459201532581606140008320415826016128009523025312558008541170641390853718009789989663312168744103847564510514936710147979153514870713154816321817627831412105776699003537326948218052116253775749777320528740107029561169765110393953723352384598257747607802645409995553601426584322960262663580695495846610083004511735993300948540593833136389017867354606704335223350680257602352053693825736496873761159699264538197952674265727820869253246946810368815523980393086886517759515900442554544768831847995890723581036102174119253124680862369126896793568229309836170428589913911252190852239753038134716807590113893172539329410986355884452082058784411610101093675279641988940355041178915789118464785116349978823052810449013674086466057103967839401719187167919028905561476919829921647463044747556705085097870650997261432450079165563286570354373328175076251422880241638928546954121279992380134787974520535848335601091731129976692421666361648026306696566271410253588131950058905715099977634863767222137162366488323812034923065719943822073211905659214412313658763980381281963090980875065667061680884077842863418803127225568921641746541053049679303155951395914867871169248091544566724895064392674486760023215965370908171935292086032002864097206899557419072632568787879588755890381257833838960735472419496801629342093899061229196686926891149129432001672514545660240458492017315271265480379134395524320052549495182949713637601764459238125514640638122497846305415801107646523271177608164985860229260469137422846538493874056698438385606045746211419482317888305820416379401253300447201265595493941341964749621544129246981651817590011363357527100853625482723530724567352345147182907506268627824094534468416616982003342527408616874625615674494517094455903501607397053431353960661826375420164109092816651256125367737050901829527397391160297614416888624301787736889541638399965929811238824514820389084435589725305277575507453117984675692551512035780919874286897038346576779010482798961739158944234568872176256991548411410324618763669119269426024547389965067560049157616990393186206308929341604386002107279849705595815964308774150409778984421140182333358418771929514093000247606112710085993294052711061377522858969629405457103354564008711811092081015286465691915257470515566499159165161835256782323795027235952455534010867374474545746743811929498736961901260833931770430953450378007715444584165448275640394246399303459694179084437316943117692691401065289847462522730226098055713094997937946912404821021439057800277995403730591958086225718922556610721731488990454875035716343808122620785904349215835824906061586015557188481926734454625666482107216119087213605033769255583939249897484710739446418283805533394515539201313487026957280909200682046420555776146002074850906097686308263516458757178188002553755265983041560973622582670397716895638347254915628311542258566838961237580361168825399966380123520730854337487346568087195302578847172405540038468662632520105284177006022938127069547576524596987916292730338703757830670954124716289060160261385702311609044799035621278845258110075116463896165890121857134623905384613587526979897801132381045623459627670634161122943740519190765001963288945011653459090959569868827567669993341731598178010329655361130202572848225447851676016400682304270028116975206046896899191126230975979845676517008001006643473449687549984247543919533231600878593562195206676166712459602722648252953239229536388563961497224308478552889236176133036549619165448351955003381393882267865638587489547944787572289596389917454851551802291746030324806996000292967197892386142138909179117132782336828862052805748514943724774962989558657896576636688687089047921394566379893947239241915529104694918124236590782115623519341684417005816920193217722883465328769026352736257994293119039991736072759127537442871704266099548594222405913215915784300898814095034593490144946828857495012129636286493968987977635614614896059125362935719075001731814897195581944387054754592575443199586026217864789728738714553402679884178168539368768487047815704448282407930299723857628726494247020230504941928880632195377794969732395075193862008560744799946096854320354458491050150803522115586583128846323657109782822454072450530150486909433144485644538614121585278505089640753369999219549190773714711754991334597585735295660051745300461384144909589429035284581605881665102479979406216951293709086388041053236627407901438914812252701882148064589789263172769951545589072008166480457351538232523673620983043560193874659366150342583344521843639793519761055525889542887534682215570585158419385820183684611317562464525921877884466503297533604781111801166566296256933048403948740048647912990913841807368955473925737392145998732828293488778163241236863326502389450730891861720409671321723343000197983806519753780911349749497036915214737207698887106821343609721084958765652837852016092872012330101544155334875200701625932242405041657200007832440567322926946120779346707520427576797398925941004491722650192775609884324504264760170295300540750613646350594099593021746585119796514476435460330020269915227610708271760012910017192324377688944444923657028000218707079348818595843452920537960320223829218850833935237663457894801148661599643370075168640085430756445314034604805801319974213009679886918206090274457094765656050662967907891000281687922272219902824551414121238878149164907218151180205355274101366415386316738124644319853414434900358757901109261668736876950782033566058571758020336050982381103278687617727474270295475491550651293529116690653459901354075206336213421672852506224245522456352487219303579691043471974801575746429644524051543159775032894899783559217338850709094911360370894744768569238326654536432674052759915853132564818310581916387894698265320427105715471946359722933190590883549071438734847421174840596830973780684268131679107447482685245924829454978266463604907483393787256313610310336983314379926137705434692219826552948783860243031055993041451329963507325607235414143030430980708263374037156046984408687527753502974289480409382915792218917891080927345044339534283055136600391193349465037955444104606784875764515036997156114012966968670122816575939810600636420938268923688412592437650374817322433618297052747661963125248818057967463846797842442858952668591707954802991244025319704096009200399729972693972221976936384791593442847111865556420014020151383156258927498685930215242910908927510131643213487760049958918391001725032327570134184724126952068970296890991859625334495972358291442998956932873056101508457627610079804084103376655182191556508724713309221726564895114641767350425708748281298513939835830552970202575699536003860090920174186173436028589669029194538617082537428418307220005957593658875976034918405164463411940625748608949972094009066885429587470519634517682230439870453097134304037686423058188950134592960300812366085901761819109676904319360046129060092486610367380656703118504575207956785673079627766866612589193908215483988388010836117683591895557587762987255700514582946625885357149498566059095085666321917211761549281202106869555062548554319512899593496924116825378558031604945363973798010968121800909098225285940668036880876422044092172750200715914408709475063601300231570978009686654058946597991203172297373238170886233253776338515717684357336974700909122944918083448674710587166084656080683755702156575019782989430425816663254497092472581324313168879379346021328062056178514071389196841072828588716235500284074749101402402516500893677339420729102861031533712030801393776425541269926163411542618298649820963895026449827236343053698950122165622631217095381872311589069117776105581865739565447648512618191070837549097122644182164101595966407669689803159118660940417685148895872512318838578976166088187562094069245136257955444314341935953195204284811738803283548026771819661604084343606094258567098783037229637943623133639137852674368823725346282099503254834212394005945841379660706960752345139617127354660794499905585363737370669650465972420002513077917442450199565963370493593860422450085207310345528195086318554594110296375593368154336127890734930759917642110459677300994711660169606283073006540007948562911000892293491873714884214810164380313223705402617718276267143184148252667592066074295656089798289052454355592219751703231665613905110159870380170224044127293299531743323274348826666102760031864933063944866337608236729375219904109283786215039304345855119986472325366175582557890072095890701234931736184183802552373967617189818107310139398780993477099417284922056180451637312406893462040647173699460661992605823806639186200580501864639458350925303938406949897622736969466628744910665073487893486652765469136698857082202946236520269260906154883273520751197908455216559568001311671588438456430617323225306261438417237558593705972150372667845629884178677958195278787424980499609703487233742475966619678834323096905132912288475962833069092628273119138007609480448856173579440112882331122490642217906529574806596325737704630615960663328915183106639002958870598121990460661696262237755175460831815168319695885153598587586798929082865851952628775980412620075808430497693445369523414902680733543687341636429202783205722452745941296382149447786257468678131413817660736584290326849028018185213445308216606523118684103125267562915811478172161522473195404296548352849944383539569262750297806261671146785686515434264012413499076792371180632035192726338737786317495436245559379905818665385944920163666002520761823989180579176909830652997456145747757501216578168510972205478465279291251168185179952797740442795840459182822804705228577929699694649585753106484257061890025501321051393913295319123994068688324094510777709627451505652727755079299846995713684592531318888055333408538693012089527284292845158989903978334049032304161785586703514735537449324569202728215293482368992294061380608630348697479203946054968319884792572636799627501910083290945619514384080279027760145463484157176598014992434175678760768258549094518996172257073972242678463345954802810509669643665634736189487910778016393629486835700641784152698298040225183672017966113982669517379993382834201477963525622108154807898193224762880415261370935069171671682499408430985227281781410172565727244921998610334889307507534988799812627735043147085782519307356677575357912162613698028858064422484713250663738392339825418156371620479971347506657926422561787441995624935874612577500776997270549602083549730114901393996301557082100494981144979722104019155005567872298782003073849709041048922960155163046550926755904147722276513992811844532224980366855028155909189515076585922448483001469269759611334565866073403812440163695875182040576815894098855643495201854991170126428964878078254736776288865316577290027346027173884709012066353832374332634983397958119353574043403000207682114131985991746684354593202846981810794203518597167706212469292630309047574543005925347098398386702381616135883066032328584327148728300423625244035362796898865366570063310516144128256716691426182284531062587726030483750589703850762798214293569129499051111424038766246248177558973559783402872783317061922614904525489382917337683105329696459014434097198688696132430705108950178872935976687323715542645389282572112938128541384786480667353823091874734098449312517618105145459461625100706257728650105890657766505387464347331553629177567562637316742073704747856505398227230654121787658378334477687252389711706390308445565557011180347680933144224917696197298549682373196187494482676580665939430104265663559449692339393596916746785276181682659031485843630717975286108251144655329590074902724339462241434422543048629005359659700505563509000042796207699044975902315559376666418391401824550729297406654991859503243215090994332263845908640850381921856749313910164103151263495818089156788430723896811124790118138408660296097164321633129235574256323142932394728519540618671810211517039824108686600174986049399864273961463821256850377823891657347396995714272960628277663414106237695979502357960382699456129240405638140006450331336701341690710177439258122399888739502060647620666521366456729047100763362032797955435411125217794106093362643305030273117024045611674969541584591910889645060064255993602131763040737885428315525738876419459731054379606873397838573637643117525240560154377108231029471339938643074110257513166044681890337648820395609835885552964461546685120652535907405322765911442666755611150674669278110444688777385008544779530921080315537659343242610631182448967262248832209370082277900794320766813104223283275755658524649032060629647759620440669855231772893597685082216964654671923396743611088609814318707771010871569283445847199660012673844538199039019802837129400312642143907528305941943620676880042844367056023226101860535541091529409736364588015702425533915079117775886983447735142211050823825386747504530694105216033531398392326520224519667648140638992461875853661135398614998253383346465427832146334928591996214209467145664067967326084908147863749120972817188233426808955748317164066514550359497459929112164431793131147076678386173212959337920915501193393483754094173253410508062393471938131586528865191263642916373926709550984863375519742493289679701004680117105213925462848108747021611026431677277199145213393326710469564327111368753670758533547053767932189490459146333166999844301730203062467275143013910779114443113226279886521518507417424400438060884123599109402008265591950865723628842784784542782513095424086298828403696180564823880287206268367383671770083740769394245934901538092825097099724529661169458592376634926919376706634406636223684155287370132680619330516280380540284985739184043226659396338774977761791951601339125627073124629411485128578650449183682573442229690686335960652469599538650278140355949573975350064999638474157314328505879814292667137205208199312833516845027942787785407816323480146320619933039759734764989416698380441039444968541522551282323254482823739378954975489331974475609744658745432397186317323953749435049262547863144798303949655658533896734818709905925087623493017132135781288074441051095883148873647914975784938602768646207354528764302411840650996443657591425179561941581539999587131486897315375705304877027077523706727324814733800513455985259305739017763735767139574901478651702848128614704615924600277968163882382745956988819150046840859789103686651216970331622067164826499639544572043001411788051073397434298360825872797605910558131997419522041735115760921054337364301874970337602786586549427834761515651115542407247089824448945015254580380931130341526137082663833987878023641003115340887108295062437904987123726107337933057427597446505792440441632556655659255738865009856552306035781725961646184792774484311259013825062793210778521736931482276604139692575821731322772185634136058384295066631982876737731218117794285247586083302938091486224025025406530997226382456931158449987568410167879487137163428662573208435346618210572921807867072876365454379759794488661275251707439470286378765941535088092247417977443554296439813730759740116944477284268777552876354512491868994136516584588704903057771814932939886541947528882243171434606779703612675040040405640856820983827759301416762272615276816917968929305226791608071938485048901344688381633563263406238954391520309509463312490571499376066160868339461502489447409442547782385158678979207712123541138013844140198757189029819079338282505572811685365011574265830427214724800581495268616164651208704897854896389437733922602099102910809536025332790997546159536467845208793184412783422165058118194792222218946902036756095164775394773431894442640439355875877423574625684103155491717210280145480470918016227594107630291802060639688287481710739629222068061493967403671746303484745940407061405881174328741609350614275323857133102121971918404903220164626105002339696583803762049775249187980236346377505361620074677999298642206070704788142819127833494909432252420215429244224337963662794261618544724288684135048462744966379241523379714784527220466815864139986074695528339017015724345870054690037063869941150133921072070485557998221906174601343269471200433922045028757618960307003690728566103019720114781633253871265608525081618531673774596876811958131921161729353542663793918186950278323201588170337769377415448170438279194089876634132244618138942196987169971265627608513451823925140681381343012639939055836631841354356700986315983654992987782419530967630113627299887665785919597001118177524055864440043445299508941139418659507141539777129811528057020049035491172297767188420613567805079271815473407934574503059437257172887148879459179454977814140167976276210836182381565723172213122553687084672656377887949153711988562350062796041807571071987153796143245662308786200831697161042196547969956233107250321167753844154300181612463565790430608940325714936844566067966373231605110800936654386387297886217552296729590832637872564953601313831858523634895198724991288369523115870223950329599655293789539282733329338710818789852700501839114070463106184981770353595045647772931929397032984439462125981570292001416165150602216409527304547846802654656122938607994701201000770049924764722916533228594368385403740753990489160400688558843769039020929593516401655701760758061942223986699098445346938542556439484534795197118879577693431530843924361902043742757574108874079203514620634005029340601063128340333922180882545393830016099350573090223143611479554133249696372439730356258120109298426227188299452200509451388282328206972775578967094141872959548774853867460970320629518014948609624332000133590686311697336661843726221175512927584596683127722908448878264099538751986814670240603660013469168668855672797451782950563556876819776683143365775134398376638806759606573059960981062323590079238514993065334513441652312460343868597748134841875770828414527076044331034227690441918280821769679643669888675348961294295185258111955035665357352658560106176904943931662015366740893953418167161433751032145938980211241731009229338620995554683818249465680004134985807416662689637851732641841618028919484837610197798952594894605437619951520762945077873572674029237752038767870085106803659754454266397970975267299797093390477746451277412170278484136254006469703218859313070617366995376502426230053945145467626033576836188445212272204051984985812694836404081909377491019097676600767703505973990856529937427858098566879034481903732549679383812064841677286392570071264010893423313087969799607247403819767959805234909805229363136372202967994937351373158484359717235169397308531971313130615161904582746348584455012726793285305301077002450273967255190022745189881958492033016982980632183753021652955383710806406455809575404144434468097535471759160807044352653466497658009979119093406616847338949534754319642721040049789156499212523827276912946508339561994765272533573031614354517343742893409838889746997000249594558480989509493163137540311145322709039525473531694294947976106277434651982310713890864022831928482595265948090785907225443650666762647457219075661263705281645976658204006679084503128145146249449573829781802186229779935026100624184292099309374525634156278400060920721443442479030115234338510055222733580538579429495199322233837558605713175373329221741411887943405387711539696140585817269024773268766128167959119382967805861666871857146973424728344001526360756391476015662469420044633927769142463274721307786172965973149053863040574597329614909209607628886215474366947911925880188787641941134475287862221147631286901567846676410992499864560925007646666893657867059178356280315226307084270898995157006781073103578617860104982600245476923051914822937568435771231805817507194956691974885486397811584080259206004951429854783582382215848235525521367775749045809158957866925085907996061110153328713586552982834485558720927952565508913989705096658950239062667510458976874413097065476178204179241130543562094003948405451958665404630649527175748919273814923519915665800525389176104543651203559449190942886567526916340502535021042824789567142832265651898692645530891857204893885890386811031315195203235737052300851793104523288465348454777105934332313044136262798401004464310863729948458053115050578076892021503964773212032409025257324406539431891031296768676229204772698939346656242551420667573872207471729766168534424404000091202919459330289965394200970435869174067880108593263584436791409823727540207407235410878911555320212908071576848724530353506926435350393876413319730831422634093523472898189192039556588326543052927250078235651418435940172441100176922193723560623519930028988686251321077101540325085325775580632784508922091924706505773305438459380950001460529290356024240507219282758279150221213682143213601059947381641073547127128696573123420347798319282900826185369857335470136251200259712864046655239975717166111096597946241126520426001184278735847871444948544533562736312460692610145808615098385496411254916440410511523130988694263112916372323399092225539812976929063885710839339931281142316344968537514878529830362771793268352949224906897193203381718002580229140276455756728008620144838593038232167555633893420003458467324207615177160061965319270475499076378808984407891988420839802164153771179236294840933189538538388288684270815562903814417383404666099566801423396006712501739767196569539880383639798712739426401135707002413068861619378686976499161051064074136223976875374737115781017731045905817470392745106330434855322885500306409716876682248355113038928759650314218485271970756021069051635830995128335710784362403324885177425480825076924881634686854259509655165971922496581410261370181950795232321384847211535046061773422441030082856393912407726258799913235987962592529627101691947272553690204788282989043963987419222998364030401281074936622430259176583175076225046321615284882990259207343510818581523740550768790755183594220404408972858105759409379583313703885703891526234825927421940412506305164334944777651719894410618820019151502885305389787947915942414281303562466397458322047126773611832141280920101437192830577254582796711017743167698248962976851439297743842901954655132992060972237369877354032548477889520359218362550156452706018583190372222108437597137028406537096247145916090579842130319479154283045399537827038637461672753015606658079625149734976653184707892216178358883898308685992626788403513395035349769346463109333625214425446634922636985236011232026645184020656286647614554684730351626501628072896195913331292908300719014859645298693988365990260590086783386675602953163119386776215839878369192032680600408335060225423866591527672228759600397791410712661546576756970328142385596026451963860587577902239090459242218813348906150951252390821811214165584451308634566554329879890136804150129372722914748730224063104376132175196160084624543127531064886762169755374211608865867260650315053740329481218157951432223826259145892764535096108782556043067496461065169606471390769931826148561044008799000502111217491339533744583570516068100639730157447751236112696422678923706003338450717682634154872887997177856785143886421798346565608563909194381192270432852772273598262774807380005087819918180341819285806440138736396958346766875697262362872856088657339741095697009386635078131042282095802821824625222339684388875974642077953442110165626312261283766942768013639055293354279408443076316089705472817019348524846512275916549451646140341031400292283368382666527856006161396792068516922394441561274101448174437021196364592469844194914913938167822218353925610010606093006688760792978689273119838619104915758345554616970033751405219961649966713205390956679201930829255942433810346606245622131669413841846698153444646881135345306718141469396348356659749777986836239179567534698772900811043428710082226538445355928001991067167510695644200709109353444452303807434860925177804056440761045425784420499551757021936944260966394180041211784067652866490556109988308393234824380111787562158075846886930428106432901349222705476068220333186482651195145487026220063692740697014172879912609716841707294335225878739933232177206744851149469910859543020824928342269231817266970034615415304772084335640817582178534704216749593078793006300511576789535150353038996120993987298903134958455066201446112470613020145146127569725526856157157099376404273431234333978017649174410119666972932924845541903036200830192450942571005079594183461405642878999186964908337686200276667620078919000440791217083075169764128380466390201893470672154689722253779832425743554475337232638033507038629988956129649639467448392823512873928847549338506067257474739516963303548225934828784907727983106950653973760472180733336886972882366416055262791703248148644011212266953289972342654544991830068927258834437105789530658205521631574292686022843811300691461859685118378935574313407612545315668734168704616006677683623113711778476619723909583717455492836622526396971718315757235633967858524863013969474345803794046915192194421867699902788729308432762508622901641082678405332664464608737868800317064915110800173012951199501086808690553073284008635740065341386541671882985195192850091494933921692573435993595602704383770125956045038862373386520428460578884001873361162928115367032098451194550402649380023505179361754242898259177889087265987952160612372554244740326504295714951035259484872912598602758235806867826483718757041027095365818248574549742274383801637778535577755016242435764614804701097203218227228698914845946675342699277856117926995055188538024997307978199695404283063452286560743320324358731660024746131284690782563597827151104806023980463323391092663839908827524564882179992341542220623035838658969805191303324286601967014871339060968427947327810548915879330123141155713443688282880246566346154528530401576330469094098789623596372749474899534908749061721018979907934306252295122488549082345535476688140252927729074397869536752220817797426648885188509580996027117988936201766319751472874163399623921579048283830339062667592590701720457626214890240555781550009795356976009009779166314950591696091395335034254546072113235497137840867099624475775686964847685180287628770050880058620203557750944490438927531880016526430151935084916661836016539135927257527033528935449860692242028009541855794692851942700029554356755117522259868666210065251606294905300107021785396731672036789047302536672580368058333287966908795488630377138910356477381824029618015669483857925712535892022160831168462853108969598062084935287425024072989886657666343200190495268545788926863056526163075835105371427539524898019133017140380580974864688507142096323846975154164208732893532081775352465378557591700515695175624371470216083787518538528466606544645869177239983094014720662344591989192168272146555961030848930727374094321359478765233507394116359244998726792547989971946221019640943193185914114127670566747757589271594203123785609389346297680798587969282423908170198844044963942374487064646861634957223016650648247578997122777285335332913931640203023998350138820150499265728707047477347576114834069860966866823938949246093375625237196221010902472402269304158987550795868427780461852861916391824114112597987252667788259558337737934432862410427040060456474283982050446627481168265650745654745805871356490873690957843222536548943924101363051374551200644014726624888465226709690229769017128958734129225609682988380456472564148905729846930455207941857596113671224050223835155448985264823559672255966263234578647519930254124619084743845727575589426772888065871520873974664872435029374765768123503921068247905231939343956639236487464254531452034798902124105218423930103986474082749107904753492541989189665301507891756003551605258718407745504764593160474869074631159532104274532479094405612950418537687228811709836358662100280539028929815885280270381524564963747406304027769886053130479419179421873464132578913732521431070995400194986902179243598094680924460051909923550746949115365702382287743053533517072630223557072914831388736669775048893106502262925925303198545759127650455603389398726860657554096039001053085514966269885279325124475342376622478072647162157689047531063937776650774267894175925751128076636328874501948816452547089305881259373998488542076583473957117587833644528170821378704368483194171861643632284430343035241091618801596274846222959903156697829271576688455256242037012011185986871410378879058312036999338371676921546117620970141258402745978896577098887981709837149197174313839778293447684524912372450228688843829114942417122494896861616064518397294011528659899312176212632030382582444242208645287267887534431631258287984515160361128729291257971142921778582747392510859308526271412519664656816906273638590706992628709824314558221945937487059963029961112618913003890187574669344382969428516148568165170090130994463009708634767149595562149700883923097342973322414874030345192803602847900834785325234166592028506742440944496680043363245264074023712875050988917155682427436301192318075935920135969460841669625756824454704192162464563444125266863009537379485097318587686700919176177378074664086887752491204730002706907570061689146710336120888389765980723729263540538175529176718912600360302501503574659129789393446398039533923845070148720692210013576296818934650072695054122017781374993649223307320740808566851727180778889492162540695266226364066426229067192726231683696898766036915986485980174084420833401667565891193531202194565931357617851534063718431659176240625673624006038749744419347941555070415329054179404384223476284680393043448060167061279199641720967553621945341011476043583270637985276074043976797680236754942177648956399730893678220104484207991052562067334208980628254819566917181838487327051461050991810880980916470970529842793720886441654850600406986706975049933229579967339872015094742277671398468060519868751075410459314746928922045814973248720725651047025685898670331206595227396704379748847622884822394229068518035457068210512200843739830909674419863947186481728607745473946185629978520846266651810428880968711349513212712329362590244867840956826416529525547675628714842006470580080340494422161387412903589381671329993284669728236023316383526602630792906911464425987285191589512380376943060198159640279710209543926006860505281374080329656895750799463885451044431302173922896969166032470553605388610112299055168113046074156689276911154120241547762264206403876143389223061632850254534691356793980970052741791648044651166832954757575180657275729261743820469885729905390954553940486879791988187506234036517143465800850491277083942936629342686850259678097902032688994129665878048066109349592573110804892380288578523494702076928102153077756887272350054736941149023474993312661806546768728605670175207484375966648511750338998865471570783190635141786463209627711115804710561119969735075539123030656583964161809293536795931333405260342372928050448420739727070460869946670640586094810969750909112575991375334830980856775981408005235707983261506574878270338935957335994748233196953873915095761533984254407864045847216338427681360763804696200680088462767657334012342811815890988239953878372971803315456285976205512593970504918348699716340741310155738987747410233938797125449822809367766383659993506791007093004825632271904928637008019816091260441823758477718623312287966551681048797539629300082387695555066722303325319752279028184748175305960804825120740275638852107660598290230990653620400010622091549723706093355991801077270370277191049345554217424975289582750041090107956596786548804386654195316053483044683232897713796542024985107208888901807550770687082666521098716641973189351805135208246293164194671930211619589181673964756760710415472601567256905854252647001610727474732470980860349809578691713009197697633609363956514789653687784818982979021181372520538550982779845897073343180450802974922615376408602508109181126130940049060773622369065639214722877936764366235535032578483034388827715505787771046373314796120185200915343649640046861164627885143350477351719497382286928236359693719374424012244849005840016185864772564086059813504788524996528671666935786623849511913225530369290817129084963869714175476492784380918225219376732328034171503561683173127838846825530251321027450280534102400545784823302517247221619902258245280020895735017462623503881802952874164616014100759628050632227177042381617069248108443740723752277788206940961782646896187422043162943635514307530722888522994095853717122007981679626021268207124594599823929429014903452900718598675435797573271056045718136905394116062038430718584906991094434727178311619562931550056881569018695237629986637075307837839020172935225701397677422939550828487172772185537148678471125610105103613926711688475667026556112202950713558219360471151196296090659247807312697085818636095527709280361749710895109428071225369908136404947394502062488571415776789362303849153557625645685560495393070290276406484501881149365198634813432915533447263693138439199212337218715074054091929802330064471296919577480830944948360930075996840014953754319257004498932949165354563504872173902006123489661462399479568425782925596353776919925409850980782898530468446228389094477883740183543238164048355700334859091273025897344523661806847097777794251798146566734292178643669278682225013001643706268897220946380567451623301031135176749535021520515482752696888915628892627495056012592984988207723124613066578759438382564960269708021118244636994980790670929900250850188076666610392154031066667936610121185694149197452830317654696286955055147111602992925091381518954004724106222421259715297304462090493456575313268297371512608793256166577522028866342378307554132363752244158754720110437197621361022164892542945367355987081433053659284935869744499862562107281513560909018614164364713173157881035051097836979562139059975672042141789338117759817902798292772217594627821194032991305136639963200346177681269181977471881078132992197004999491049514262614439806664405155199541459060290053749631268044818250098020046931137244491619563619314757084386640117928433391908708716817336508032020520578611458929441834753780560400836103350303829217196819238245181753499267271171858286482502829060998523845648743455924160933296297774071392207502278283509990953113574098364563569361851277889648110218938554089132988507968105497888113856260651161344844443888998653506509196336782080239805046451679431547113077098767794990615638405852735758574315355841629428166815484751702594729851207563485099202973750323399101802533351194727786008806459116645547945808862336950246123426975643715468107461711794086020316249065058575608666968435332603292587708413833158314263265320847803512377079987409631492540846054812634054827726558595453770405789993861212282985922326566638277696800384716245332613950180517738243238813602632143232283510434056045665050931892816542047346777701473448291091042945601641062342866076434034752226588859150054322093253750671162554965906465880561596511107932171924045270759429665459640506311031942075846880382724502058255430500555414542098483149638237047450463616616300864505429682896893726021495969684738539301584668607382967004382062586783162776815941269895215347792843521527323844924602401967143098102565059673170147863810025098626898793850428734627920609382592225381093019919903572767513946603697202923871873353142475890897777850741603096179807183604262032948185982480887853613183431181643413141349522832632923476602113601453353060160623844450357798007877995493994094137560513738271253640130465986838758204464451574852753937689524024263973297030275920761195786693713155141099605641641455259986278760767260301805039248036015480701065693275545227874796499323682460944726334304779431057796661806786659996965000757411890695039799747193564112655681430976424504780143931224287802025174356887278600032118783395847869896457834195257923335442898314075729585556062553478162999450800579793386978884263098581057901112590421347907669348119307679566171751415713695140191633842200730140993625118806468887805236713593673843985486228787367022626537421254533625264882592875869194140381600265829592657236967333711019658502507783348059054276172819713625310574801134525169978220359987399807175875411158715324139196410977789796286195664706708940517158015950672858963086422854802560984186134125193756741741965783582337899506655457230538630747109720337461503958757253352889815850940030793178687398157676653720118174910579639790077880280784774149909926017112742328401149786440116008179371875186882512691370130053633476181627468121776704781328054372085036141792848850288898155486754488573642852586131449934924676906439530976529619126773322389765166743117818997840167664806745435772862128661062018063970298796842775401841358261733126107349036790161741629612784802186045242630486142676556852327842355782972876387609355586178698638621575340642242320096746828382867664716343541541512865646533483329478824262177912210903584428930362603175796931079946506275417925576504204567162371378322521523577550551884953905179495109044372549245564230988700346839084050664524382495138434261199935833675805500636228396965283183821344043293523157025400586292566078613233617480369099345752344837287983276022176519297770173179318748729709079464804040739229524277733571075635654124630922282770762488433468454608778534278327314495650646794261247696728021086896352214312505612986407582876144400490429972611558148087225177038910780683973630626486781559478964136935961611517978850878103510838508437930731499393853057362398432323052129964207076963443427233495932582729846700006108112888410533781016854508837445029635153783723039219825919134354629474643078031216839204302182734865892530596420627643768917875599752941853433866697732931038951155596521588151648657346089546636891022906075351199201471181862479933191006131103520973504848659523492788568331195167261282990861883934983713569107583232981105007185741147326563111414317611539546661523240325700890485342745123277177704662785948716229523810721999588219605820071926932852382057495907426663190877448875634897149181745182743090229216742790870351222242543800375925410350221022528228100933019678772276545891944370474995025316562522910095705889492382325888617728013011088520550061941798757213361547912666851165280764507791547428265719438077662504503130240462270755121105356676302898665066029525244561234061168620325820867524947588490336169269738231100884155176494293440424620291835433931336454158083597015022579069928972139836613188106106391274276717440302699474079869120731479851648195367348064920029639954441923040904403481262673169946715925697199953431080949779327645108712204022514299440086938480227397142681233375668265369615993956720402330931443505142435964015282839420845998293636652770565252138224231758311178429891270268377776914092594865709573697622497190465287274056265880365230825345072139425491498288137581151921229511345890244907393575212417746476659286898422321909312034653956127260068022128740707282159304756693796470838122058881859293347912799077840539729688736761856408164995771505288471982662573028977371358238682416442518924026679480441633184839753688571479929178809160871237771668096325713498935934513646406998616693434584049874701576232256451329475169817562330385920621326447341322612769796350020523503955674700857000962653849151892962113565645299704681487487100392686123705586735035238262814192394393273302641124809378342515086265889191112744384802290875000125815673519443626472875746028082352360961313443239699381330590825744970090692376480215477669285662202961184518201508568099293324150474628955801098369985718482892380334930639197108033641406204557073533485247860153583470190289400178638852856603294450122647397264440678656143106347589659147415021561310647532945802531678096152295924329446998669010704403260963823922432083150609278566897061801944441344221886982615339784185870679619042748808484759030116302109491583563983213233339809601342067360560719930483550764136802879163946774576215296643469117689315513797412160996617863858926335560920384486404866972812238057648418741740420639050339195354855780326383742798016094633772636863028256885194091128088997861880777807813654753253740733890602516419972876102933825094501185763449271373320942247220435321822799291908087437469510033979380399723450406243929182479733233932756871318516194156990171390216420401380081685545212721176390428222773296708317536601583401577205659668498388923199550613011660243836487542184970107176177685153104576406705878039788173812427501564289353729561574928710653090177523197245554349534608560021885462442365105931455450282594817204964869565676116479317073716721775758492781458414102459966430866864607665353323330553928723028649763953612705521148749012751603994729401922185357143063768198277167557451905023667273401591988926881676738255220826174898287956904524195065259166831241109556647500451838370454560572107917132293013717365595181347988993107837135796958555193521163865972385718126335099538024605241987495745408886406047873845772767368982209702241317743825493067323906682576956800120707977769783366815995553273967340304266011569389722821137362702966604125794382101349787285077796614152040638685530317126745402112830891030908144341342019052543362658368278201769444017608632890416375504235934247685398878858183635732257306175135243764734176262431185223892194798368183678708076170383110958340160153472039308146792496582953032259671554542508128456811400602561151044437598775377220859923185845433815077809043379186572976363128045291443733171459756837809122699656356128975755429971976711069791873940137066481324266723027284528136730530135223105467426537470353263473091211353388750330601837980215727899418674775610738259463548474661007746537551165737238307963713508932144599995431616638106808473749158066758596779961483935704956530770117162614308769628074811247865517542400390317705999793816105809796454995600751662502622108352531500163088837636754575558403210841312438884361349610294206744728455735019905616538914740512950908946201797678745138440306896592087768182243210057187474086874930331807518712776650945359878384816513797152090357813441400569857434661359282573275606588173759925134404933598833700479990544715287961235998834169826607822898005876608832571704697155921348927822241188802161642167415324599777026658705471266613515313875865387021078918861612792430125008959401650259962840802100297860929494417506648308347296469041977923746470351728265750795725180706197826016969548240613554426580427372159650764434676422110005140172990658279196276368225201138302496338222511847284286492442578621586671701452704402621079084231868693440075196625272115641917913964042006594584318675338113144564100175913869687333319017721862731526447587601275137372595399001938007247861966039585747625703792017591728558649938430446627692709055218089784828798168481490727917859224205566518114885729020607918540332632255104090457850590186630885048433994884966101104255322783624179791202730441650766358004376490644277885860788939380074961630059505571860693688959047533868949960806205189784787761385487621505750628170216567545687037982065100996361647966025065420064594559164118305587461311350918523675503365839637418626755360916424455468670335513998495812324664488045611746884855180106573452786538365101235926238564237761999448022306671501455421710673241250984750965964484069428894147745716899557876066249233110324787972043931082303599085954407661219200483217411757286558671296947045996492270203794497820860355578224744514603934459630878753740057370673905165197476457170510471204915070531864033790538058327591308907006399984185184954964174216646239767657740439897646072716410717963214898929460089837867918069860130973311332186768104797047448702804734908055986451986733505624291083392766246614722069444350867808959739617606547020714224202290346965336168144658752050658867320939567949626622055418234961387555952715310574266842093791346207566128246780771624007165116026061089240732969167702282040210591490268047828038353089792231897163426491388278792241089911871052215134163736114216578278218083517003981224538114436383047542803991772424483910097819223392489680207348421801303178120905550126338083287702530444531792587150469391603806594201413034250984988314876229651072521464009278640467488490988509421272274365147863738479268064521140624655142117443498575871959181892122295428372968500785780417199341936083202743418015308657655410826339484948231297028646690175957491594804084929755995920100540908782739132696471668535181028221284596355004453129559667181404798971508055846653404421830487537786481679498013382987655324078620229338847227411891154836309588569198283917775320121596850694023866061626959030983698290708966753934384034116130895025056895571426488083445491051684954298597927035517559515598812071159024399076892427368571956361551741227609897648856766868489077513679265498842087616542796877313715925209202657585369752469701894509540463063568233091974330490150820967086246054796373548341270234290331047226140194985625492767789719296861015056988911505373256974812765042343205984438816632677659353410015450817213920731976526647748228893783166507035261064590333939465659217443968682365132273176836205368270308013708805459341757726589626896436701956290785465061209935130107400784479466450512224397382439441297432878624228562523270838835505488860397841920302656523681767135081094837587297459276649981319891534988662108653818928727354565431093691013422817349435771555956843725761778212899915092420884855840619234611831539430273030499816331367602664730755705009741808273784471364566673085698269513651308296416711627669292029765115850797714035527438331770775329808399148575686228659643417827857580733464110842802158034017198439993181571289326771762912355079367491326415837160689240824748429080342665225762347831415664251810309153821139900535917310339264419680160039871426517311458053106320962462326034114402615934408206471560251708678220213708766927237033913624251443709015736841593473907383555434085553186737187620177562325462394524993638666544855189311156217705850151225388536581798257697054312162743132723244771156493417074403705074426344313244698531014523948606666019167693029436295525149676764497866188398194352647718705220685801572819036948134438053404035162728412343616774456409596663139499200679961852390528077957149281012983824604092078920672693564664556896990352852358099138167142737184727825372571823534186989171555890213389163180179584506774783663004975073405423967886918318539472145163241576644808027950781797699421263001335196441930544507984294517353490433880673859474792826030685654267847681878872980536538554683456282717295760619117164661247025155732618054937046096661883773909111290900394581070300490111561900665937071382444143720242690351352393031863279738861592658675370492768815788879956502573135481340074796740714946115077506540463165421474218910082727068944873653844847770523201213088618559837528360578067230578727380364664290407671029448304478867374527883442618990401252965442245400126935343438611794095531465388195230786415119343264408048090485722293063194365305555716296301679705682479994350260795129820137222601844677354058961425500961671109088801545692087828531561469943737935785373690055946132480075087679901106989018548541199708399807286368208838812468393075454644469734285955948457180366176611561051943838709370241551094312949585218995344866854973227732273901743587825119316567208056605114750412814407489936456032524697150619222949809171557224397361563848232190126568746221987350834882259678922405114628119119489188878894458580886837877508861791980475295233395921518651462596741031774433441067519286574625531821557475488885346033873257415563798438015642801806730120188389136684362267809344322987432714862772905002059013481596518137688609013596655462807231639648904487116316057017139315266604558842172704159688711263933207431834146402947557769067480320181053746551232594635638730704833622723337193254445504510993178656221786644391724752886051347027277216746336301345491958836341948808340469628446857812558740615160154845001061182117555550426660775622345027468452032493306984916663504433450062686796659208140160048797842293046216657375045715842747948083422701022265816234340557538738486646534826635050053547017120218203989623342968973722527016677375521919541843648984649488491227335430817843221620778610129756504689886907045208799281594798024602399994174306863488982814355077535764957068134651544345590033535156934456691646144822516823421029478710575835708948282743552368092369883411568151112604687939317167009919239383638257941147471053135049214534148658046833157516944605584591719211024027344445186080787359200789301269294794752487043287259405125451764385042186215750375205708811050168469984158846773573365556466015850343817072819408356454020702907576666469142618320574947807113940984762435036632853337512528833764041306702971337693496301532528736862948245056304039049774605488676423667203716257460008968799126639913450304703566102009410403265873680079963027831460021313474121019563942922753173615547627946799361253918709049689726668942544826840251494257804807183600898778086481420023849074381265120744170661133267347555237069993615895068116305543452158089193832757073264720673600191689318151299274236157609310829926240955600781907287170442048221611776163963049080519362017349140301937149467091227867023550682153184620275885518368620448730291006432384554023414092598442683847389822510421516642182898485285046835473921489528442054348876966173565359537890164963470063551297852511574322480291049941115768500816810826925418617133842756461638124704206834631084144793215014603026572500445071416875621136516508580938457122951961676635344475846545044770673234109551549965169861356020012112312313226484708631776334232684204233532218054230324214289067508086212649682332092620985783314824420588255034482816407436614530165929862805302594684662565892013165035976779256573651736550540004905110324392839480885710002218637789003213641869915890855977007009287785421016466084268159082137437470980780662313854009764879080162596933071282328156926392389022891169608309877196067220305068953676155927435855545798165037359867235331349549428260477160311211384580178847280727935475361865428415024222018437126086303243994251839422807055281056783295813352738096605859578464168420749843172108295191177887211166443690744113515931258811507479610110750396712931874117096437612418502109189121423181516004747827101244323332003465393233700426936302350065101432431661247105616719421024157067351794711571392950636499095546299378435633269920167658838184344799680744845690752808860673573709239862761807814204756662993865624862456980997272740408891493368976227546414604693819935552168421616616286839157797943556078195227610907879002953249819298017797827520209484462071792871179004554379865648277745879482346179406043623305454830704646487388486564284246559201744711602719443725356724067924875724201188926194380748178093324922308761524765982608890256144328365440782887082469441708690355296348319854785259995788256379966063662182797085491457227263688741851285316079820002112921835237559580810113441220377583054869551925783835015627223635422369616811532868554853059483771263540311017363278613156492004020750447504491470871128835398849937267005199396088209865248871043887932046067342641751496952071768157742630401802260502022652359123299648933159139684306888262703663433314094667094119272307993398284001807386694220822274838827599383364951558757616033440422855989533621214918866425896868458079781948484286141372933465791328626288836679572176359345074194480171030029223461154391632638066335738648526500419136191510138812362873937342370930861025640552581866938942138041135400289390965091499154746183115906810440976835305804547150599804478932174108376239379963463464495754043492553648052439650031195319574131338653474470910688580545127020264175045353834459744795431622176032755448732971608428435001452950978085482101311497963032333737447164398189523292157247110389628327997563180525048447906674825399793536500183031579985407725126376585604147583639442312498027221354430872230398493504334800148991794936922594499700461882551409051193961339736224402312791394995027363143725339002259910457934748528728229731629970277959446050687727890465775898840876354634062482625928447300123325218902007995294273178752963424101784941089617968156229709372039616571578572981373405335850078782867957479642353674025908245202842982539475864607873896073723137115071012122217103258415047060288341617681714743357436143333662669744960116194542054262362997894597761178777063622530408184244659511559434782777176391732722045475663953814707880539319362906183470182223592011576364911139166419881568169396126407665353758383342748910662774140543527559889457165271101692475835818689875151082091880516323971414937882726033015414205626584245027638982565129698504255501694453170467507965043135831174154011516849969471072879049577853053020292323850622639721023516872291058803833848383167235394933249726033812621401769780682645513469746440856770779759446235072640534629102215262587506200960247016118389240699322529826566504731322490369957487633064343034759751154458322505363042536223201213117628325790280389972388218089942519012325165192895738677845902065449740357621828105428284571982620280585012345245963380317936786481104234280318673669571447068722779864597215452498537333985603135765220149672187037429942659247492317505274684792076862305856938511350686604594436611889056347003504677719079614612345572688264674672518992667733021383569389385440781178629364772766602879372310814949902273077825689378953420307016741160596291655271607776584618522879738310971171340909802588244810844300161637452747804310990436431355329039223070107927972005667213235375357815264738254442585535332664424732946797449528346552748680939624116629963846170985428097817847318253290885493648676197308051101914034020634586382841236940479742457031890777244985836348054906889046509212597712917980229616997892105983821884137388707282550846803678180840634233059294173161514824208441366420774055516681873167163692061861986768311278639275481485549436248097077680709502268868015507129098125153564426801239988924375069218190914127028149870014939699050969754434073326652671509591396194670731033270557487578009582963838807263509673462679580196809219353698676754349238434227475454862749311637854102149128700354200562908452126317700208148969959160475781311504583068897728530217745975053063047774876830400700960414352761856339771700218640794729225798528977419834600367307148898473163228465611831412829069380437864024226858487335172638724951905302605167894290616949782905974262393328044854252433160184650583398607597176587540038824259657290864500205681457880352933281266056873129792740662993278365137462125884715617252957992477631494626019448723010273954913800977341004392775228315711615286735880327234099317536742616954744360133294836419748229482248351544331073535547013721131984776303569807802458453693690271343451250058547009929577348625368244941583511614078409997627851847735623584443137731790539165964612081258161930085942086566808156011678054232875358109679476879994016813200543008144063934034415851141562029278335961571749972486247367904587806961347765625868847146409714375416687019570538680865577645502636160061956591841348307619657192939612391175171339916934386047722278302035217266143696016303994268777523890323719431087017009753849207865218591293910321013786068622846076432014353477550826730397342936208229589674040984424531209506436467335694769696384875374876402095419940834556318211938023263080223075123659292324493009454716793209672163109678715508980673994706704507283276631437889169848737088497537790848517327614198205022146526918743791625089998722160049053103502469254502178098094338524743342990825854160344382894444262967898958845912195378070077757214095805578639297944034505427466755123986617621766730965698842444541428490331266431080950230915402426643447730324459226390119910666658376144524879864933030798707812287688311954878689771648329624433135015880977606320450949823030003376059596621141210571081353628299749187963848485616207830627617494939682424912549365045064605141494832118468990333501575543927494841675025224710792736846538897219473385606104924723669977827230838102622877402492592597565267446436259663907020963715849880713275241332191280257476145768417303400539681828972523020831447374688696215528540132916062509872126766898827737221090734996198279954707146301741498731788641215322930367516577170418914662450042579333006223164176034765260952323442561652183183390814959583279454841030102307210396813720106616456887676853069634152185463500705731073192419238281975378734643959809295607545129975643012412055803080279735250073320708531899906503288976104515039277329910817781430316312069408804427190241796100104268261979907732716041607514978373179005021490986170096897004305674128329184544278312450620923078740306490742994322374298239574190579658046264065991725997380650726139212288750587801965303140013176463939187053324531652000773801708317810953297273661228874289814913208755091375403272217062282879341769967100869657282171708602142877850110331879570910499360459499807663175740388933465416327329634157282428682514091093682001489561527804634937373987938780127675756109353143197839003320667169163673736473571923393161347196833761247416659567281097033441782502072460954612386303754485440985086094172673998864520627623934794672541017913571337006528151436943643935168633385445616692816032442072943742893983886327802715915096614272460319593613086267788708690726023330330785071260324245503157014999679713572765601416567913745138083381679672428024806981878149330827163971760521693704545759639834675387904903813955086619360184976510475543206557405187026493943155759754952722605153749010376834446171377054902462839402631030324598051822048890146478032384383918019450054908901264083175652462749189167145333430295408452664855637285959619823187640330877527642000879386780687281409716086769723944257839801019323765850196051124359710104159119788812242847104795148934323451988122680041301747581169422888719591336729117459992210306053743371348959459815167314393347979113608327191143205328470951211390486592755567606408059302179175330123069920795076104093156380023573644404675859377503084155231492658935622583197987326240036410595680198897415896823202620943287834210033504497859625634104702776420329555696961058279977861016634421681218498550921848267882486687275103847890555217548721438011016830405890244114236619958417037453435677463393935491888509400638956347694604730353930789650129786066834964816781649001997744802772628217519146741351157191300492143657564694941834833755257453594112573496311829715203472029924278108316847456775555559011361771086087125902394046282535876825243897803260568351116531357398590759332230268174708906872222186409935857529860875441159267259763319358195298296531155775931254297433055201507811368632322965382089208020820812505083855272178722132756717758443046901103406189588420562749858692358518925951401419323593760509176522766758436895217290027301291497150019314040575455101807812501862746431499930309462055065351307458555511082280378260535786388329062502587288249240791442571903633014244504763837900285411164366823256460861699161549093900768867399129536256146813220790542684346846428001948390403401455894469070416006603557721709028226187557543358227247222621917095719142688298488070729478262724510315216764953678335002393117987248983194885690337684604613302020375026437751104377000937381673411795686086637299222282213116189086954026920868917739568181111963581235504181770944996908860349281207326128283285369513266895135750250540796067667619584167325078937606018068461185054257220244756231784882105293008218781522052319319574577795801273283244876080320354499164539874115757473954179261771260077524573647261157957348415890010830884575782644740463911319004550719371086933493130068668667114268245883746060485812964246166155098864202382421398950071490267426909305641816851121841170375411885880858155173724712882161848603789383906521122281137713804460464791576517108468832611568391985999482042746495610811177725523118849192268330790613281944195151206994638163828897007516663601075210480707785080430181688273396888978575675005295474568988774216781353352037693786134509592422876076796718399538686880913776941206390292038503692333044643370576859690058615584742870821001042775911797294025372209541635589461201223591591649247470415598108662826333799902017995177796777868374965303237257280403540354269462138222204508594608273428093786621468813937705422143686537391402601570758726435579707286240844500072274182500451855024021149324211111256808181610448597838870607049261810768569683632871965082515044681385350771671397470436611818397006537882227756886053280097804275419704959261973703016547198477342892295894160148079138707768490659112012041479725188523930144915953054013229854046406573708839049381255768709796721705948582547952568778943183920917221070637487967748979425121492811304150548936520129027003952948335533574561886245074371700439195092577603300577934844065888210635302197472754907732982259473218868515887252284040024154541014599268065482615311998154483281657623907885324559452727106966858432089488773646205832355827631361763240415140867961502841963480195388220695086819094890321911685419255467442779030852032259798276918059217800066382211691880071721364769836740481556164667121212883097529964311372584291815617310183564961447682422995343101116884448763485676024601959461059345136784395201569049645287514023237570851709500357031180107149579291535067686961320010457867391456244837527169612023732193587572279047923097358295381677285891512601887178030573365680611749847585496133242168478432145819241474613914609886065334985983681494777436632839623733928010670748325583916477045310902856421855041823651739138191463116395716515832254615265330130921841625393471921380010252232545271891672314145262549523231326949903280824833508778497295368424911338303786851251480608027075101954131791219418553715658569609701212817876674824235001254103982621149071806779755741061517875340031627869974785324078388073325607184469717970592614433650498834515215654490937935542233229933113091031603590040770349874214690463388312950086497364992525445138256411101713870941516734241745306362768181853634311270555612768431908269757145052651082485607567362169598614845816992706276292476562423050220880277262398600998911681612444697811039109715781242750790769006382919715474836290786390802821498875114469943083995005946124995655934966377191868427369046341857622702580819906882964967887431355284217422814769739558907474535587132154460761912097823947785678125915720440575637442615173402856122287391776369228097279785845932473392353376948248793750745945719160837348828918038136868136267725427673525799391986092961728915573581339419630364603165194375806629583562816937298368146953933915708798500389895134778622415374683274253412993612366430962014990947124357337675334634969287091301803287569371608466862052757554657000720588929454199082585139479808620515762024966263365275288677055806941941886504665532315997839770603452489899434542640095851874455218969903522338410703396846897408156704347169601106872070272531751704160733954312184961517599432314064512941547836696010695138992557147998321874402084912213521803062493272856603568582813504660880822068084791731558759904746575346950222233344894472108887759057152464707372091239003599563999107609844383704211452927929987022190749780400423087537157183922876141431561971853160981940953508538525998003346834945551539625641698113916210735624004794511774682213550145340056122824544094392294531393218184465598751054965151233966933049887670563452166419327376829949423371447568855455803722792097646562150679006381167331717162441327442637092996898605346483024844285313983636013018337525148167056961681373597319784215037338797147002521518573947788562042329264077218911123676445603811099682673234099209352759107177834391093534531824384590380905591650375934263776383381927531109554790581021990337101495329830422140470845948055744012867988556772410380182753352562623749996901099577313651650850324580453898068684163158702664286382966216840783658380959561488408054393833478639384151346900360437405502640665537647749023007487944971965461877341405460358556915914932958415865759240375579274884746375280119138567932673812497521052978209859550515154133425254600294253364457907430268363227967385829316341672701259995982781965328259428093052618721485043202764011440061757876932441160134236940521812348269696032496766448934193894432140286466089410801457805728766079830159468169172733033176127780610300073833900846133930286273619106649071673980279130223561557138440477801259498995975486332590776836992279396780665420106495810665357933829717310485633577363147389960772140201738356430586013462061605317433761597019582225395293384194298234927349623472858398521231483895701684339780820863839718461781090956219457123597574234726280881727325820194592522705098971912551971806043404312149115182558321974124373135803550063336005099483857261402640821267722476014036889115154516612010740385350504959783058597278603243002586991942703843228992955820549660250868990965832837873331783314733438135527253321071088358989755780689137056248814942625170307100582436636076726239214401828560808504781599563462848919889017965523560844922721104656449857657573153449644863877043338188258444903369056380654351298625753417225399369448245019798903024577310336350083648723133890649352577504381606525102524821272216012984572644788592687429008032970230736236152363569412008410484806266038428844128414017410209251268665165683493888873485618829929348310281707740381170389795396273805175929030219224206760413069801200066961783226374678372443025732064839852609179651699702724016523782171385505542884572148253699002340966058015815841883485497898547955547047886147779747687361834780213738786827097607139113291444828594734956964023685276966002744949484230354199642836339407501158718578122193109038634687416591604128149324451362218075806550013285346707685965060074013622324966368561180730480386798802608507082420153656059497544511614597096889946842157022654586357308067881918218263433819014167917141533288826069329649971007776656784130097518019041544542160077910641447153038888345625271898697301920132228204338739976331995791869603176089929998994027066313907899850653989839196288000854013845753674857485242038488013098244620796463529857219694327419113134519424360997099661563271115016296270426223409837908258181506036954838298323942390058183507868852296492045744602187955809980998960246252498995005936353903435170156102926890363629836964975228027796816928148881344427038366614795667149830580914182257047887395539058755231057179015047125776577884105018158077734684925352339534063019575001797212256972700744783837002528256020155532912685650615949920188094697161111439639874034925415247338247510037403680168914027220739829688472545559319920511246990972833872991874779835132282814973430445730257143817018297087358821663589158095446753251122862441597156322217367358404226235147411871577309205054915062930754184373741297423301959785548961786296411336872804714570994210099527797404331076518117404454978670793844487209502174107503408638883392245897515408099420393720046341030637789623654147979839510424388435575062552136939844411577538197943238242681855721604794019950367073965659696966063711605348487476163115212852904970262825312510149656556337914343598551913301717437959847696527981967663116025851460468014661727566792400584716133226920177909653366887465581720098550467644839298069078879701515697304730885329595048292692165459563965401549913331042587982750042985319555865820286757890154378441875832756797007898166082643899997283800236969458616854734903607224685526858292798798265578573874614443581192486857400308671036065151336805863060542157542389682236906716778743071067920875206964230166865896929303449328956318415216182315716716113861628357290107352759688474183824617730834054732635577769959361122779530159549407764459461250311014610525309579282301257174399187675712671863953782715891538514666931389782700073298560902207142279236791755131845031968813016051974898020944800787811370166447857097184451106935229334322628988822373369451794984253198313874696536279312155841878303949269453055436283630874143061628761780126612260850790754808878171952982759818045926121175287583969607077457405813190410395279596201357835728204725553087860252612444773564651539975258339792574246357418185002759919833899128002440473008969373087814483507455379056891902753232169004946383218323000243460697835242347526255087836664546590586799403812882018548238053964882644369566050830456196426719903772010039023934174676905673841394985660997667061421861930947836777150529686383236697732871198930564603761464088783948521368324140079671181758960827081897049290609195946112512554976061070608255157223819714938055464502520003268181392503678569099807795894061282504363219028526868461556421862471239083799631806848664587561620581803594183023316835536736882471657020661878713808932155410919213867447268406521476589865656138776139355290052125916664496007881181844183768233125069711382210023762785600767754677023333682215726171494625724354618997430539144400536742285886871653029440339302572057981328140000973886089210197111714897225882690155779385744148307914610626414387209616696158232541799528951708775015477289561979344018417081651322136138703651563848651479517271634616036924080010254231225434553359264362267240637924751381360556293969265430275300343547174318768736882863897454808022785060273700786493442061420882188833268506426613126062101858262042823716002518650420495175642335138517716974829164211615456848426018457438348132066785536479559837823342936448167437274147782607879325928897934322300799432248776271023029122797941098817870730613118748974611884822306940789221217830054976979946392533960075083142160363492367588666282335070689521093235453382562121513159135045291555345346812270653905108534051947029645956819808854699175178588259054585577115936350523375576225739971733395140640434121860217109852783751253450605258349532501978895144151338164243771869144859159299262431774617295131444625812211882690576061516944508376336190331386537523577747625846152011406303374294267316752047787821825200294342763662232038962460100385596346446553869464178189156298257357747620596736741377532347920690877984138769071588991125311248275777683470822960533937828962998302506370746602542380068920759387944736519665926274833535537218119500582452115743473108338814452338723314422676544168896572369237007984950490834066909749877585681975999960299652910294999204369957490436605909340988364524865534602010295845295618654448427421955042593607474560564110304050809510238109104747633998956263194030716535622419764264985563981321847597137597080531755106792697314731487746157147788206219395109907325364672572590222247987052459740338526760666504684092561061193919981163361679184317896807396792006267201184744695399161964011121246049582526823537067702840709233968001182226232188952404110105807985569082240021565141412091163541221008235873088247584173422359336211705242183587657442517993803437973041010960805338525648765001037116518154224437351130754777146642330404106812366858282504872367844787561362124964997391254085218594525900010413841976941779181623866216719494960007728739769771904725191638800590958938374502079984223165472532281153334322668405610475236523465397548151694611925401261066261392186908877028033498269192914071523866514492289331487033115562218316350769043858096161295571114300344869008286463226930364307020407170194630191055503749266897205034799302429173765000336277524950875062366735205076320435775969540887644305290266604824225528925104015123482094506053204842996005300157333632775234347322298308937550221384465473626661360132848327040495845118383843790073021501715439681547163401775296568540909514255963473656207828066526876824460031534296023552540002503936324592705793323905400197820819778725099825813845215660894038272708536616099832441505393235694941505026454587202583368863848315571348832690265965443456308190462182646842629753979986049835250102558662045399592006999189875316382377852217119744912416673409453117248154968492612530405981799759536908640793147101986086453134207232790745087077330885508618073538781967416765069974602828882702739846226946672474204836848346975932226455165986977283601470338876591708966579165232118376116596600363643183390242510014900151492056689715108824834985437427075194446841677657842947570019587057385603678569400529790317573749271149543606686819898527664433309025133417893481759051199682840424959437601052983622681998216860513056814890848205029483989830836689208983955159937458261889419318551623202760096868104549243706919226850189260320760599421037078023372914913479878581046526335673468221837895101066009384273101020914485940485742917296989628977353474019993061329525252237600171937709969618844249042571822535943442129445501317255519752576395536343144619229850886268473323563378069106483848820127815887826159752043485979354177643999936208789302683240981401727084181640966266008250424052950382383652578107677518767432264279819997481706569504859266182913609221149748158228370811506020987185706639559572821348361205294212415446340037535731281625466079751144267045381961006354688673996677567670518868939551586967966816085228205275158785487744872230961119883068122385699663845259208136992834538582627214448162320778067015059836509239170447459609792102003934539610151759448815270460916477274298920333979854335035238725720574026411992128219493039274216939098260305331627949270420175613723700502445037989616914810651956984356424900823789353189639477452903657997521974974033564395153278186196459069912088724195132442410464007502072112221563579593213350251858162642351411946208033774160108901745266073121184284410611642534084628627247948371366919079881739070331614471759080905323221744535512168268029576108383761000255194117792975009422656672417610498717230745090271953076835493070517716447152845646632469714340340749936366018132479025460619732472602956122579610868179867017866961728945649063179900138448206873841329832052098732470210340101558196213153320267188733347647827185438663074723092592882461428191854796606771994647377509265629403907603804991753507738657299928506999028650572887267374201162050300254953956383852412719238638097769679500205569495117235994625997002503823604694398027470519912194074490523707697353757712496219266020581943968191024551687005941697288385147546118519964061749630938073549187238441655497889970259447186478400148146978810604583748394901119558297395281624267373328160426683953784621226908858567004215074213402201052993702563061912903380945044892690977580328037028941657137623466062870917927814865341950421479381495077050012964415438038064679056121668390578962094808982250233688510553239729344968427645733027554814587284685323122886067644182706571289971196983262188945851337172715204323255029786089376376659595216892798220184651643078037813893778635861022951455279336860091132615327354271288503544396566465385260575210118850340419465791290609783276476282081191055711962442680709070777238248280094703556910852898737561367785407922199712830440556561284966270461588169787090114953452003493640054007754610694941059277853687466761184802305511223760853137624856506702536127259170409724904286026531955815331906288426574433128331277097528691821490245019603992343834748757816259794852070266985018633775991481535442865099182845091525607520546781011117620925739532794261697293788361509699616782700110180353919623302580939887060252792349920436680885343296326283776089705931025774010855737815363318279903936765046956847423894363619627001592104589535269024688969975767042942173030081914932337612881785281789292028965019190577820417916449463713628655406355635606223721219905115858666729224902319287971973862705816790868241819711227367582708197609312759512872432028683484270422086809538139686644950221338832325048691306346759212577003020567520809252015307313862694521567169486400610928969793046026142989085725163634937788163200643040482195456035285432051451056011280366567040247564834149052175733518765412861318984112279588508423960635824905418567513159918359069758808486098983524084044528907935751609929430547228464973614982913025449422805545588566240755438935899096144652597444245316054346074042596641993703963859433288429763715540582538348741151890582956342869866525413470075416939792922827168819136821360604866864411491881689171588787422021755419800667381242302908046888546485206181164978232555086357952416338418799075211401517387066139494775271212571523454226973530268408397231706249317813488834396444139316492565848464479515190137297138434387104778784560295446523924271647943540945407435908287058610877939873705839112809828010838084326092341339200908871118326370502649541399321441059977732858647762539603191941861760692469021026819014470469635271823493495652726464289429134353936712641315044286480384457942152941694719228121332229081047794546372703673984145175391512278684504446205503078289122259673843886628501517623911069219505570111162225722713907892243626251616641689899143063387579261758885059839529505426312680605838757074831482202046412315349516700206835492672164731215893722378339593394242763776658337633402769286227131787442652268301165549685633900151127282029316330172539287384927130264997318247030293095155701088048054442514613035195795290078452987965951549225989882870201769324065553132772982732629042434496405402328400515232237585372676173306064185497189398573568216537658566698222336774429840194988593303502951513787464689602125195137979558001460688986841389828230926237998757786047763241416919381179577995061824853236270506780818918211792996230906906624561877603598458278757990400515388579954126713198528981816482831363601119883977714299425109828571435786608812081170420777616098929457769296694643396083375266728726151494064851884737400600494354259151904642265439856216997134553183001442193888774603543077985094399467915608935756441675793348544127779495513443455809705673733809082250584202325457998449186559525162930706331619446868458128757275084031474651670797282928658372319644115585040236366149379437267870535748430990009887756964539078366792399748945383052151916956867606319902451189900859667524139221325691305795459672530466933549265548311512569874761312953042721007568851502807919350581275959539122419680397150746397095747291955245834944194057125977046702760258557315919748844499889652042443499330835335543085702337250163693503331900606422483329305753148375456662761697057162744001586676982916352846437803151491006947310156710557856401021564958480514654717907610711497610627272011401713519346749858841899199071533117085337194949452235259792656158490632811933635114107891584097081208179967909092289111009734456069488805177114276669148101017012529478004364414747607795552083770609116854596560244381228215922314823101857496005904982269836351339583702218474622933135155448481235764094937100197921407026505207889371648749855354186438635785254720160795724482838721639281722725664969205247158993378790137501469695374017299306804847494730830513675204342076300770077755564882256580149825102181730297995826091965205695103674188185515663468399431994856587055195756205274773365376810159830635847652964578722968035171965850884470322969285303108058101756590244286198712093543255137735517242089919606125523101686020511826896270950209381918699554520840082032420390147163772833630933033556773578052851966607782292859830361327647296633630337249101887591853562128009838106813236818274781181043385653927688441153437907151367589593962901945967173574079837367092990694726417324701767278612857106881429245533135906428988369357173763505615534593474135022177121963506717436662984407095695577311466970205143021409412458720496810491284675510305869866816555629901078929969731077852386103300091284168440899294287347983924353287580647035966767266099117251977040332807873473063242450813233225806250308361504852911366176752202992243362632008058898687311899931317516950495832775801955416011535804463595255663981966373508776345151076303936158802627735020718513097123887971091071890448182056517433046027055898688970159297073541590354207243541293259022800260145293994098266089589227335887919727876756617070696823952816495978211479738531773788393387204792829389353521146980614845948088521439669675806274215369703596999663519595191672447001824081172639541069084324981000278675626222187593373600368052201349767761123261348762793369444526661845242454245656459970057819906227422151486740554730546693399793527242520085969685019544140035527605792306112933874847063918445472743663655849791790933221113266301301756874745991841934042903241905062903194896832403843827600279372749266503854812149297602503531240180096140718032344157928474087620401520546235270595562620021841604452551111600777969549757227665888984868861041663003237156004771492674073600385338552467200844525242012053824229704684158871661467498117174561999227692806285052486257897099403384877214252064343974505092379045415249801744107131206604010803198349142328337825498556544684226803479860532685220575863277255209927665066730191922448758957051626267902410695158686298270684168397025557678176592358529711162257708490318793792712771328955825636347394848022655393423898411561584336842772185859143322117223749449011999213501897349897847830486211120459997444778791886821432685272750536103368368154461461547340698836274448572662715170560695850994683097270627219688466806346676128500179616440066268489596141185378947318764823225418220395170712871895444218136778205947475444772383488111072644127825675578609567039950809860514604867690680974471579480072333116796679555202724430768962706254836566680593706684832972544841625778356285170662988076861706366536898159577537229932949483312871752818027767033399862466904025874681122332824753558916263551824013285129314483798349270300213960735773912667465460350537119573332662871548125551083350059562261070032555600042898967656385815902471644562009055878164291029530291952553676306631698919833236564956189981721647907758590716899703822138721919333208599456928276023441600797391828534712905407479243396278546657615880553417907460495886906239491542413524803548080640950132107431265375797555138529075242405333518091765818473501672565337842624786589789880991515333039744113160806236697774492208070453638933789833718844156542720479018550912148130891999537112637553935983309130223639241938855287182444708031615155860180758058931715999645184632777593813923460578158079429046869184243466337346508553315966479400591228735243567553120796826092380753447595178909719552614668998449570822500252061017223570015185787724064960297070103331602786181873182373921977681779094500317997594435528083915362730160338907590733557098983013628541063468503276122747677355031933530047306707655314667057470925195604414426569228770468332922003280009278236792610907892602574702879814811458236170452087045559453964418069449343917900716831739840864720418242650600000259818722541006257926529478282344997858664366216526530958355589157372378636617819671430311995098245334400853472628971989299172284100323497674687189772500451761213853329139772137782566586281667577451175980418521565852462049098818768380309518455210923921956053448934688204069464775780252236667617186027135749772949768222908548338013808620826863882561825971487144316422762552251992821501644051605454637239299222731950238003448518388947036360919024221609220241813260118204767329388534123993999577705354381146370790456599361980819862567819048697809655987020651514642216979302875040804377833950098917136694021032713054514435959215139025390562860865061146912033381247485251333919700823446957487268987968177386251156139846276118190447043320862693037563940774266828598062961918022357641946370944620525372199515054267091031459826637140963278389168624987675184853928011566003426344622935085412407250594810494613999347891033080827805072121506696795396013641319615656275225932484830278423005573771590955804622796389465022591891427948125943319362194199575511056024644541394364775383543906842036893715802421013824478874509366020525428914334629097803547837068832161866473634698874351861967426333990031250203295408125275781567161616505962016211846841748934991763180168136160740884086985457043219435399456872332516609588166953644434005000667446267359846593768559099863210875550403813932638911155862599128942512384118032605878347381846467959204824274462736944141881591118475230325078292693744111861147750444907388251478273518532992404071500413752557623067657336482317915302247858666014798955924190762560218424470788790802444713269760136422051299431360826359646283967356889743359060615390600941946140896565865056590883600683777799768245116123315159442933666905355089243159397379123701086253223747591185958112430496548498078815719629308309992587206924665143626886603695246821457169526389585088935666762338606004187889967166841181514354097642786911228335536453517572705448484892131805365723930477121664907146041000346696181168518282070070522596746849761380699525885689551108259944299858593404841686792477816783659616288131936101630413357243845387610087176363436155020486435962087977905517395966847755817522607194367222762032933804406149991335249774869536212802086546595352052328452572969091030365387240410662132041238636834217208985426404445622768255493991269341359538057428952043482164151785328601437364517430546472364878405559407416729619049193974227749378595757632718032102885999543691703302373448769779916840243693583457379389351269375948185670767747519945587507373055797326867506668009114791321417320130974095845619087370147327302620136174684710213618427590802785916847059578013133533088641926019146123314517530045615396158967978345714443485450539379041792684184216160499554568443312422068466022734833655618622645950940215288237661616984544326998478155255031053724347327792939788603071412955008261677575699081970920082294707301261604533631847954951669025521284141948073689148985532858953407706694256997275690708570120890983733345351123561987040196469871929387691983039661042183950132656456247688898627393595231674923391975037170819489770452565262518401149286719349732743151164246332401925104664535970625623752467960893408445449336174451864617055592231170299763127403845050534869720831282386514836809617875090288302352915954733957871849959178501258294109038800709945442513402056782628209273860041025406964588078563727082956571093042196407523554943541974366495153456734633863887418865610357765979120491020245515658831101512303632125849071657183913053197446125132322594763413985747524630224742257037464056512611966752219966708397171151979314007685937405865476315108639166948098315545873723560457626083167048097998896619103307325130123463949921127518044241632294175070214905657305885031458165310851253590226092195246707878308813604315259237815904511156178197967334637682066784621234304953480419186725289787040077349626912418513823692166911946468953222938886032210196542760652400942353847967563292681160883011701844214526364558804076526581139304437188998774313330071466938985696297430366819267691178581474249715362946184726579719686913605976288409756034751904664218596069620650515468173612644106289215061011057637376897077173391330793296278031585462974036802888625743324018113334178012150494034760589708002082959283561095599770943813132143571012567736889925473693198727995732744456356095729341910181278558682843724516110953097029807384590385783400870180073987726717227006289881166305770465001415004080906834400092618840608986030885695902709835239781920968789541630904133353115662008407428945634172613219919469960752389274915056326653789845315731201002261416038201519269476449902579929622428186888289099780918969879202149942845166523335206142394915135175456186524422092825862748218808552663822661225041899540467375984173076907532015225388879702543941860048041065752665619378467076981864518716643947000033185996613601477786446424157195675997858875735794260392490694432348135252728082433240403115580606245753802112737503147344723003978437061512245986761005346713410320542164213813281505907162840090685168706422212050081599277196659509910141155067668820848022122333470399845943282850171953614630837272954510942040725822838621615072100811334811856101052208831565664064350860748843083978144660098900510154122851898363945182439644534395768840610765447266398420159057749288847997051434996286256858065678576862234913013982426088095876047452771610936974816851775206356357802999226054947091129282325243490400963232007916991843998172988188108965323447739489868705908564097831383257398161767296035605603828708079571405996252105414532485074205083128431826528386714312613479046812544343492047722688766755523772075462453663359941764422393078298675914457031232540763355087070892949528541000883092403367306289270193459083240306597470627652826364339176245057198884880964033441720825332745159950650410960778570405537599494416989910341715562750991820480550135662816065439876921477397638778888230265511394994699307538726110644772428121455861571071898599959753550900053380631600290180364477448688236424369771489337664723753668989653009135952523030942023696490540690657465240974098222039242291700403773183193209878954486404117142639825003365993179402195406465030487348183121078644035652015834730983149144375007628309314899183856544092896000187671662024266952861565706905304035873209018565236032064424277299870073278777074603853333647928489407966033570306060914296507889467499604488767760515550186662141261657182172568337676283931852205747758062261942206733137547201215520321719530197525083113500311717259491483877382992440516193803068524946734848943218067978417203393926037589117223028310825144607331798535154791416598391008446298413046191416501033737144791593093050182441576963902345552109857312313569325810814437362181214316811752100650648622184759337609098134856462617310368504722579147125918294461569937122066710648046531139330808032469256431675680497899492145627263660063274760856213742210730547355946399422736426941432164657314802715686219371141454056143334430880177213377747756529094724234117516692740851977891768391480540765534765972800508707666086151936099530889004622493289812590986650446084518274342733353978045732645129320526392247714474273494107886584575369528159368441577231469075384288448995321102599997913254029197568297069475684282193087178684932124742392479451771278602843190656309039736859177658603420019692675731050808552995546622140913284833342870008819137238494541286777216966390726548899597190322470157730843311350740421129632497239731099180357623595660483902183899670923096588377902376870342586616049106054673220604380466104071589516185444937521214378694370387146135660041489277358686471982858152055254619232199255914376144567126638010251242969802523688972798898526583531258707910174577099077906538359957394618124910001965339007904535755310126378300909908295712770755624642092330351406916994148379043406034606004195880682475565698268932155736181993979398795767058160272964672966753177695622496501510629820275996989724567049063994305512682174259171512266711950793835882070121112010556339976968634580372391295859048710641190458887782102355595360562118716819346740206047125545489756501064564391277988620524560932449346502911635464401628492032469288781719166338751361268916448749078646140238175488953608100965608607907615202090729951628583774198988467313003640447074077212861020193712763232059455011653388836973672500144274696271456573901570053144813812601378670036875639862364632029995143707786700610383817866184050583524241675423526630649115175351419304857019533911981197622308530353360040132157900819316688640353541311842900700738065221254700529868695267280666139951912971034419137492871648560408625013241928142152948526484643616753296032349822224302636519813105254560644562196418311050059647119787059180067561223422819260441928077396380195235713489925359940491199619931291986632180768358852110159273359645694913220836003282064762710307150920841812336636428578471087489107834316431443214620006628523167441049778749412595869672856999306357292863142612783076788530390926826277442384661944790097193830554294251048898753720440449736256528800309342377535297411701517253968609642261753576905931484818975003610313781765944183156195833623924137007932704073526438575375944632728732475356007630092828917399927467660083209156999745438317764935784465777450897823446844641358750391777412345292105532841793850184836939717049923865612710946686404156163886685637774534268674378036025143536555363847049186038749797618058607723863835179354698336099837068613212010551988216273988829105242878860627754139919773477095932184613563419328588594588249176054432109553004314408489829244851223667751264178475100161897295769355767645479800155596075051234302986144735275262592755791053173786922203433113851453460961701179132898069313884275514510835740298355153352579785875259379032897967878177076407240030600216457048323611224552427464841598332006218622259889689297734750557972508267808152571584017557824956168444356093666752002461189182626240454138618361384465609851226534636596508796569638644732074518469561846004880723246762840782513805467611376000582563348187325667663375023372753382732904145335685025553137006639859725356170921390418519779204599054752885015484875020954732968713281421835177212974950978956452804310534973699442475060763408114528126006353214691254846229385226032788329192157146013503317459064477361864118936587361191125707457773641753613442474040453120474180396942717861309463126463428306633761049027663845079676811789852859181227391613906833988819068152260600079121660405086896131226628329331989504490267235757665466887680842515118536343754636660871698559046114095950558877850705716891438485273313162552898560395732952860223684838160225047118516996513992558650761052919610638521978032892396215996460313232042187474843212123437954907593784642471445001994075302118980444907961010996710713323849770300547533232752279442561246104284433733098193149966903274090399866210927141899459342790469908202943534547642555745866115096732866787098168759824746111167431438101444363689467117893280904612824098761070102465612906837149571643463554210203196154586718249036919437336221043674834819612862626251955371062241549539872456464699001721080895830730099279148022998505259964254639059111197987258503663385188353949300418189131920219777141272874694911242919468825893196561909719589158972376777166923525383077686509380746519518565972296158152511386650944029913764729129890394162220849790707646848861872155409666013212835201798862640114127437958871729833789606824972173425089523085846523456462239341884600089265314415408324124817088886818973973427977792765445831119027630999203321420200244506321827090095550847114913944703040053365801386628758858489799050647699568986773697177213167492908007126145343002942714991558592410913151737888482343937218716960658776419886046022279563888452353753862634000852972856852044977989968143894475131325256387501583890258847679067336672499521428154609212417834627684750613660368049967430711295448591357084689739470061982042936463458879282531464847602626023542841429319529986236000932315990615123028969654668139248007732429567135905835492371180919635590757947823982724120895625067286283326750411550404508696074416979390806474421446858517870454671113609149723871848320359781240439535917150532111319687027218936133544017262378622277037123415501610349437922052706924461039168307674942397429951722945282367517801304821397441836558505855762531269875743294658891352249339354038154103560851496804137362565038978273377356043178263984091589579009345006048901389599614014529257513752456575799585365719144258947813867411592673708083736641185415193152446779052351996400242421736843269524912515904227624061012293778427392383973796433939131144115549910987716433757890471524357912383641517862780869660111755281489824220598600414400685328176145176586231145017549733469774766093613818962761600735305244625807751970357216316735044909040403985560452610241654346092452757944853177070711155196160060254036470385330204455698950827139421214575424233257011635723955937314907316634029225980791905830300811417521610189888118409105190634933513090907783894150325009684811113698394942617996677635413608479040227965321530400680680039954317707634933556716062866894451631722220979328037346623809043291038117905349521309960960589571432743836953163151777588669562208722602956834636164023913620859969921279924398795513116530780728796627233023661898250350270760042669981468809671256745784820930275058517898474542396655264815071439532337708249981814185294979071887780314877162903067597081004400936094208400639702169009544935020116808483820098651088661525518619309536685108802563404072284780664680596479737422790656215765558343928610494489728089854170360565959685185775508623387964633165992662974589964592908001006198488360395815517012500320498547824447126164324635985981428615144355595617437292642192672840166070346762511611236999468067935859014883169426924724601098408622800457905730639550345105706176472227635468839997598510785791946080064367156947976962595083089782056445432787291406056589477566819955518885219207200655886816174306837970051360146727423910361983908977792323017258375227860069506349203717723794257917542190907008314472524499621978310094206150048158171950403390486703915576741282418998575885485221795241130091098008672943912684473179375224938432162344455774922888698795557636197311772041958026828664715224467688034267883456704431817949095466287260478196566205045740632523560392530439002883292667334814345692767820735558890143084032169554944072589958235679179073170649822628681775210090654946058310274292550258779691103978797890390313660648413970339477699845503839807661784934245948229042021830385568987897816616742915439010546919090738700669921837346975160813001106145073636668352035092819965410682308406752392476028813720226691230195133652430008268286860999363680935747681552207414982416663374718119349123876034602282142248486753724486472833547341241690638404042417434960084374331769996477061418453417992356128909037965082814929292411800114112525212898132208057213113782996337584520383729319025039357205920402659555456054931498350430753803579750006046707942115556444255727787142199424505161621448884235551264901546335966669330444477461612615624510152349922365727659089455310582499463974797049315970430362967585575302029817494169210952947822172912051175006797722538520851960055928309053746544406794824138733011284624850062222188801472488914767801690011815858926177653422744045414234905915617736949782064664027355135070815908927801001421025017655221094410586483171143618203122858880904668570372594568251843703245563613452942881537401928525862578056053122304473045643617172785453906434764865076075129068225157335251021899065367074165482909284491032385009610928764517504245251156895779683109954016013447745454803793049310304368783002817361164895164090185444648611232106986847744727758370797546454002966311274408338592013493758665113522224037233840240727473278510963529683705170509171754137024720045278221626753999555833443801044231993498697171895408061540716349457580529402579842865354615363142225453065680989248124127503618549476054899545239557321750449240748527990829442382326659836480056597535321014162889709584534220135137336284760933361593733448727720672772546981525753941771187664366874736137725937833355173638337807553555115812144114179790348963268777850966655080804193893642520612795925303849081494358912467933347825638220769389704221675943291783377264341852623545130966581933870387835994633494973030244384020632339412738025299554223083853394466441707281374453034001752914288640459811292340443367246635874725228672304963744276005579373919649740185623030403413150811929715269363260104704107106379473008461755053506760865555686486841703691752729957532068705697104030686105861141869293374089695507980058091500460340661852479318082717526591390815117221698404367091785691149616558909122742388255379578515764529544024858945451762711749169608513580775003714277539732614992661801617708793171849131570747254151295265248678444279905096371991860687562086234985028823121289550357397532241041355222178589825416240825175778769720587545256134101002407634118228791281551521111901849262555590996399984116831016719991040834259418173212341708772460182666908079720161168662947197027726473799228345124039553784034916103423072120971575023657798598769124144114366114298544554714893165865792198912946477236529053304273614129186462723901746605335383567287151550363699363270072512274863348566042766512454234641894316173811652769242661457400620473808061692838332178475238057024495282478976287155431268236386522535786938087844704978775884675388931127078092400153692857718646366817051073476957505767729863206852130332679644423425014387629193708470779953350673289871919936969651210528044871797211959111081784681950583574383792935495972522943634069936280227005089060938389499280389908115159464628021033951035695278396595629300574082915963005763468333432853742954252205074264308189530213671306532181270810203608834560391238001244372053112128400624694641425068407489321742574118835618260353626731497844324584223064107554410565443432784189771171130956299668246754821300360454568627980630139300597196688690901867015665373739257773112269095246911700679384954370200029951124434137527758689150208843233872110437131400787191080512505814417645392047382691191323454838000913080744903298725257051829376707613894905604185598407283663620677879162399382408041464960603892029880976936239515463133269253552011063046313172415956242735479233429866665481803712959766340188137184119110333162961065541575378844030906891806316426004633912901849320180717783444054630376716475963995167140964448315063884083781637436842652716818214176945719884047478377985998497751519880739904144358582520829650841341891344808715332538311610437887262703136483631031810709332607142748320401699963269654587455721277896706886291995407549906465176860818996689704110170275094010710528806896286237845937002632152641532155258302133020131986687567253566489677465529762822988908531507048502736668008395920584220638907496286576450818251084216557530099442581201975036693420013502903164459170356118126672328471810261251628186952523648838121726953551769505638188558797086169947934114216427013246020487938266389242458103456001569806888236270457476921293018955206486834680965227390602540128048689717065902449434117030504665803499835247145074557140728399641338354655249202802953797250284954794597729269001415248810816320529326300868238826912664371701145049149862902028234967012634428887979227125345975145870550574986314779565730770296504090187644472420365145446545579691650126918595490317927448844123659113450140793716167939790749052316843280575001596012020657309287544337159192560843361782164588493278120674528696348881617395130378906004191276327122681002714595835126493763355328285943962697450226155462182088975696521037887481302323290090587113926756695470724516536084215095702185879862628241279384961807348934730109897036301229421423222349936062578136249668568319756192430429232690382944433734325924263211715106552250605617708832391691288299347989165564587404141867840434902281006173597416963454167918857908094782820066137164891692047367618144754045162677152455023938452392269079531053655493558615374409073005834612422614661812707010333556512944312750468556727092936886671874418534558649457075605130953455517342006630776310889611576046091570159008423924932096166151775754835944557784517613720520828139216053320053278085284465290890018329720205334902857702524581580130747064913195336334725359207965844500596604184848151131393172936774098793635664829211483110009264372297966875968578732504094565448471397763097278596079252655541746242104436649502503972252412234370224444194843787218844762826058216610209472483903026582129781976269582366304028157660632687870106871139433697881597276134668342865040056531523061423592585458730591013298629547622835701785101743280799762590738245255150897488812800367158330975550065479199529734725738187880270657817502331218832474931372634544790212955425658919825055624822123304459414043612223498546627956068919088375022593866741682118464542222994425842809807645750660137808869217989660926031182178820376522691205009384363569110605809171818760544494164089372530170082303308562147058721890094623521696588702264601177784875213594224489847056477499394320510883599872486945873490339033480449501633223567311752068322583735993469140604779881322603142154632157281937313830682657422130266029387521494292789099825730906817004251456344361274911637395556179628955785309770048271762104849509794148105034751096535849449672993570933892129654307050195616858878444453588402678037206537094796693703023376469996355938183234073676306257165458740988650361184019831682017714755864886379192875490135027096166007302104467181868934674193209598953736184023450954292615527021797240318045764734685971576212203679542960984803795067007435049995793597783129787949377228797975878170710526811596964447986558817700399903107874275909660580633771096693269330726801903243729662942760794749632426654425245894863225627061323092201889548461608803940492071790161379423976602986378664806709855984823972543393331784597822266799091191939359506364716705015078550850967957709054097128877497557873206290395817633582556503731399801023369981701470187598122255385722772445026067324537225617391639367831555494018251084465421600507869430461441912623791087190349883797789432532108397525098710091608816935743934341545228960517759940405676629579474133675640367169655853698049068830920586613746886570552047102653363704762841719780730218793630607095854263847060067172308778944103016816192000033744814083950438982000117325913339273849652949207769045727213961886279640210216520370970203679946276365070044361179940977571113908721946141536627354354628335209002331953122767767325364035256585577886477729521509156077018788482889919137110041375489983837914156702496117750154911154104684966831706757245088173975337323291960530049698589672508586930817528942167462669080311454501055275708994236874991285065106067270665063831419114253001169270292035074317231175590220808763924817154072239188871145956455466665230652586519093460193457037338106239648630361381501263819661219953957936729395433846845826080293978503615682300251475443707533532638490139549865049876882488213570499733351816323364245746155968262696833750627876799934610214699989799439756193434669248381085654422108948579637175158453966842655227360101603808713564137751976445421123537852064346791702160924844728463442619146921077775978885254962268166843743373644309508799358099688486094733408042139811200421079513311900017679410061478468735357917215313315387092481415677397934705416791586843975614009653131590486704388376414210382904132528402098985045806705660407758549967104069942446025290588086087428876274598315159484626994979575744813231477775122091862503208562615872279612130115843106353648496375847239118486266573044515381162464377587383309383858374990671142323797076718006913318735380996877549660233055563161274935273558378474101809587093311563362602991639628329386324525588329998126796061827393958418726838944383350243688928769155736167412801685744100113996317543929853399750609078934675213270598040031965825735016510124195067619024912229730177669809854810123368539122792181319070382626243443059180773211360673439773588652056240931398571967676823154966569700082334966308472412040095379027460484499936303227437249389185100193199765520843039150018154117473120782279021266546451752356761603539302300533284202624560553590557220304763144330366092615544635818757523566915493623697920107985228850788534376225220653829568927806699722009060497814460386725407922980627916358510236914397624426918181780155085546981359470380575824742176971542809330890425387948233586305519990126044659967827085773611292914898655469630967510997395944373220481671588565019228421501995884217678072483685035753116847204637638603521763722365418068881424513936571822670193296476547219353871679394085561270394114973909145182497564573383080012496295128088163237228571838408562716244156834234132214229861161867115829156619411604161791826236473795669691205547560270203253174843304101195075023835263487444114684330384706080563145828745616604763111900753777148761238545995261286613889604434836555059991531880886032603414407300552069028255006061445012726339636868650159760289515508047857183719600299707480853883923115949102464491580042733083005218975507229827371930168052467872428854858009169909307049490050111589756932357939325356296979197681212505617047796319307256558984957539792458328727571098073149235049095036071461177063954570525403852725836352349721722982041685258427920476752585916536228809218912546550745055441009192271869229350392242091750070406445074573084137299004129034444179899372394766978242935964866643069562995172923014100246783916720059321862543141269993940433338900592656233747213109779939628130434137084825091226290459366838994602844385110835514462806552023225318710128005256152415421757700677136257310954928015683995669490462071192614748407310130213880271419401727036152289523418279351793894818461639136068857713835894630100918637228465474999597704815293651533644394919420055389007316272241227450006162892523690886299584542816333945106242535306642643484800794054135037845848674073172348344388329218461232393870578620532744894906107351508132177918783141099162468794148371537893634025211677201603933309073339962673458292165454319292121936699360923250359026935831534186968084920107084545621856401176096037406426200020401935462681878652747137371077417489358040464901545725028471344593844187923752968607301181178310127057248128311547041238836779778382303668243745272965231091664426045562035396633452775799621989236875042484159184649726130168574472238577291318549973139991796296848224285862333558625271085475139011220030866576956654011315605303870049031774411947250036899914907989953777581842848607301591629214773400963765341706535530334644887389025669092791165187168909582867322538627848173098886948667671370202176593241014713949257223498587454253916224597364346464520591642965539503827370648490678703632549985152600178222009348609567747756018187602423842580523089925147898232389940826989747009637268637086187329107369173744362905027225111293863950150680042527810662427378558434201704361164563985206495906473785347750880310674569094146525739263934229979103895233895568600451886701997247645890453998065192534417475786293812601883293138686829273544103254382724301546744021834486110742769476909197200282348570493268164791744124103731101448428459193326274780157646523204937645069822196538807262393692537167484349396187832732547482504025966968783238789884830153121909488442948736865777367847267029215443649153242181208819456692349527279973038634410250639126247990772165691715860658060876033440869357576040690779520810213103716422566278944590809787563715198766433882535200215774317434974990347135425587440008467340139562958371773643399570408104561897341237690716052314906971713863869336211229067760983993568957719096344703802305308287361815188454454836136496544791829242371053006752848224507272228195180351932244058796196982727452213246608788625426694776033112282246522235810771611731397241973127050596600980888396388456664071830423280879515519553852072524586648606718932730695551346496327870168577031933885618336848718561614629298318677524133881223638115507318106440670405580745530691561671379988693617418165024334338642887557164259382652867846447384400704863386975263507053230648640671855926318054062116187417783045636116139957153278053390496197371568074591624057181132041868284306602789739046267251598647430250303175497706733450978069781938722103423022721625434007067819801309205967308064069236845210138710430815528820000554404338692155423735152958438373614655237381131556288931912622279283931890689999962361503911866357467218132309612547567609801461020955259659994090878743853688064600716582350547166180021684043998829623101820919472908093547177383273848641244296357081846435775121491496418229286069409333665233839958967058244036658212026583272168983831384316844538395706822389435929935737523736788697421292078462932005546917814797884426842026951349665252797652315823796480706235064174857429401105251409855306185896517053852386858968254463361581444951010220052180941942702028560862544461929981974750622375630799731237183896599553157445778360475435590207468944287287898343757230482240433185369530773794121798291553913850040815387184741091813861518473265137234585176298797863050795516632010011159927806286604561893731726781395500724771434731939935978058582530830619493228105833715310502841700622008724610942895668750155098209943230173472468654040409073483080645691704653516163625589613984678681242690668060441156432380229472505624052994876595478587436389622795714632772631540121551658775201595083960872861359391332064824771563629816745855637629209158701078647421956411639792369326013621797305769973731991228622803953939481575430660687765034495103941140910586168727603203725548473028977188281262211887230950313014035199598311626933617788813387907616986865682390979036866350565132881030752487288226551752891802159610432147833962217558838136822742301542102616837424186946204414119693643962959500825481062893047158450885730182042062210304083629732769653658809097499957150599559341252184540604821277880672456028281104558901413972903829514301492327635454907740222140003562218135509485636343902503489345387012202951789683417433211896775798479491633605177376044852603962341596302336848818649254287813721961309909640434973991628964384749374465556702485944164154544537610620581561697962415294145206349769647069125366719301907964789140400327809236351421907406497951805253800884644055372744342305161132740633971707015609919775248972602431579088700920226368299721368738693695293341517999290427586033879064209546014915304552924766505211442904380827433971331946586470539797947857913664324943394709830979442534027478685382447110917359646385297282918645427805189428266690342481067551909939404198207860319563424204174682413835627803080768237681196156605797959543080615914617419708001036407646038528326298262489947900558301291869279125882947637616179430915719539172885911638608594700493118023851054494887012139077201857541037571749629724177426438737976460937555510726372672184129129179405587343716733942605049420433770663346607767630966084440081149810238705528025525516323147519561229330935319262723774867619122927582818766179155634972216527621027206761748043992871993596828018217078848647149604036516509311938530526321463066748975568059439973062695358732534124372753132289105699093957536330608910895867087582684777574510792290242832389468134371221870007445422528003849106743123548921045145615505959040326892675475139711438156865317083425103548260088442226314826262416221415068247393447012593768947819477903862952760258947558647037554288412850599133429334770762918072452568472786913942760961983360830686847061666652476145481534474281130675347678071341813036273360594392414621858325805220047101488905814014386480793785877338707991150055278620786365174629056787726310964390769004216665099439563144203312260636766199039819578941602669451657156150217932598229037598800356852522160505140259554476530680079035154755662676778241634291403762567714840664823218294832375103344675640343109567548908031471276385537347710000772736771536349345880745434675189021644668467053107418442892185095133102437876876242711643340238210080726036068830387539193698073763350267281090165031125085098367034670439254176604770314653635002835824932948217954089494179576010773811652882242227125589424932877782597880638322507207290576728932470313512278147675286832212129481465595158717055551584064355980650351066071582603113118767404893288014960160251417530309524339872708938857047635209735794476173098842808004544088616707840377801410875528276989164036386683731598155736710337552301740707884062725402900492859860422155891448207313025512349024182056898872454169197561568283609274510836784626193381455837091320858971427472862132484941845406491497137792643892216126636422029434636267433133813597131765441477710648184019216377195557532894029388331917571101395076145315907866309561281003687506154356229484775219066133213828168755404915410762476483550586135332223794485696200212962479043661421683706598060246144786162333973065545216890461990755661981674237296503697589504743173801760299717980418350800369874827960974288567148748490739925086944667773488120547886986328777193260874480646323600977578067472252767760027803382356809718267869746067414588305181983031647053656625818126665644617807202127296855730108892619786668216511506455939867042566148074177778195829552676986147753436011660274150106374524447650991854280556567060647053306938864946433506514524465457172960584509713131104987013686026016169709345185493218967852995621125930027341327162307044672493007603901943167820720246383845039711454743896158567907911100245067016050147484943286607565503736047141773712039765059174243045211714135799584118758991076717896958125279844374860123244961497226747490191146515426938073541633060385889978899380795150557508384122912038609941127540634451673701849009842365878172587891628727262978304006495216812419180387782515491445967312109926947040101082004843097458413847293830663668345289888714551011782162761929591367852877257333787638870380970308103011484320631056995307506490313838822685293645227466855576514021787687027926651935002395699648935991026165178592599417627366016115464040592415247906866513155485826546588218444034175739282859888019477560700886779685745267909566150712606824748721129310344937830716033911810374898330514536592467900293154835779463096703690886811596730112732893180561245935330539416386452309913881667599286784055423208516753551652771020529180311348832748369731813711835076501030290120081702632162377996372855623567699915005719660515694325460182593946941101776271055451635334624016441533965141032397593020574157273566249494825467346250915012747870768030420230356713104231868512456328065856632339961704851753671340743464363884238285804456524420656949376552712402643085487872062780102129739460496352422075581890210281228447981085728211659155882567708100205419602063464671285725473313072260292801499770051127129197889826079877518251362326990143532824492639092451951942025215446985053097951581245589907353591759308892026839701365949374054257541514791953447961388377477392960399767520797866431065801651913396654378500124867664748946877484101109813341958076366930036387363376250448787778833166624796231852789728242934808425815602393754595417667204834344523591304698251640945051589986704963259823113588197504177716721601751494787028641564615610912548838171577591189387123367056611300214232484004932067776692930534160361978997430765818257564835424791180530538776784867772299554267676554812383946140235539382220771230969758766444240571154787971225156347091953112192040041976212190066390823056551135104763382616605221513411936536076414733917521521505526857040284527724549479755324474239924110918328013341549729949368893083938106240547192438850307184244578163847086119623760910848289710429896128581669965238680889972694783050147795228196141155896906305565026000635369356914959753513189692684763316763474805203287319472314914087972680488015246337846654954823045395250550545067416360256768720266446902944414911843705322896079491940536548433150593364743886253371799112758595231273481621191142354639439732526197759244736533857604650414814157181111430125961686009635736447869316526216716160863474106530847106250179853158267168905468486974248152721305475380320071395107998335479324764821977158507830727595008009728603637103770229388063120105939959162444819507924527467395830103661053061086353293678824041632598096796782498130865542855349881021252159006682261796390773821495905857005189713926490995292140146117576246568117521921040030481229290847842127104025133547803699658447043446255255321937950416870476560425946779895003665665010440027269429939615043161563940600054890517741982626758887988937659424323735265098277642520914583166574532941400529985722049415929934421199029216341789386800378626619055950423764562445497949987008186658240615132085421082337436457971992665394586945308258206875529631507824876419589403383560264140876868247268763196609546984582516756789002197925749704722692846919914945937629489272490315551131866183776895350082216661262935649761643047828162028561440321157198067344526596339553728569553391163259828911939082098323923101177064503235576703131817945803796402366526396892135051314555847023727907184281654680037342796440001230827654963315527257353939655026266240446805086097432656581857256340037531603020847618606823077687382735527959841595819092078158904552924225563470195638325315731250317125501827877313090331408202640149687632646127500364830145231239842426453803378923696187836780760391715879727711891490219059612066465055136907857371491913161110884346977402458666053904909106072078326680961255899574452390281772213282139136733590747389871347662550449542788302313880071309101485225686794166563341521650793170080729734524471176279700900036903338685703348058272316699218226949962152907298985273642254271085147062039722911309070180241783551758144991315829764085091382507246538249544571433945176337208209479965879699034633079517951037205423965726627726811046920303250972653865641269576739061872584162458857035004881947597485019636541212606279721451975416856039909504220947000672158208708892988814083345252777173395245920730721601562511392283422142845134720367536607741327870176023041137116207116968993611310828615996939872976346833312555864633459662425143614694166756362378652278651013166773483048743554653009082367868332288305362139138083728299764718811149729967614629356263429127873668455159180695508557892574914606511519761565986585166315988481795637616627091977006350564904855861439562999791154453277749389246170463845915759412989942679765418557086735005847884628235075076254237598596829395095173403378204940279616336339349835013215252905041873693336423149508813635288313987800150600817923605551999895762184788170070881327613407057431787217623065276933756505735231775809118898865942998823825327849120711316186146193391047298126297063775264139149041930938794024830281659246549461282513264478424914550057833763274464056807819490164914266143720115605692794269197260914564094844182498424809509848315847033819357800325177536203511709536193925055809885519088014059685067642198302820308824281644091807200082228524044499704581652411125039605386793181820312493545004444497286525150004813492195056966675511218311663134032891613331487890211822704070931779137280979316984745977304002751184627362466443523914644022577422194098509410753065411130134684877993444992233834061106318577034247214845088914970676781612170428456637676589775025832771502935496994705229400234978403922100846567814007183662470249785267472525328987420828483191029198465214005085897029831555686222549730460567228881251054874509045062045100293979659514716916957065729114359736445729320321811684524292114760575691914350048707727464353764511471751960473176170526581786185363673338871231173831575011985476303501667999589104733787150980143797377184895100146689362278921084471363542731093534850527206759952250960615864633783272556601416784890205273672224431888977207378322731398147357344456654846052245160715747215623801424286330080641847227645546964329714400510314062827048820589139477864951308072387766259349669321222180220733371049434636336771772033968213759975469979325164131736043578134198407878637512124330250637736091986675453496029530793382480388939101211761335747448538855037697127631473737890563069849530878380190625264662036556691071244860428222361429925942221472986853451785477217112502063284573546170652458327529406921120557480279273188519520730921785624191760391858520444317082115838341204523194508551005945001753760085781974759424522159767702397072766579305960799500816820774471807583369634037684643178500411710380518480293686918956439713810995891449208832508467448469741480552577950457909415704791231193190058407296622644306318158323484331403855795067508872310038237459657977983131744773641918661670233823189049859118608408075026763257397810100571306976196172231760026966540380384729552800801722915485446123277422920047619505977132886371892063920392236965706400278476705449409757539348514441153410412519993074755485475364985796257155822643714488843067631194133237708521584882207261840280049600322866744426191458911945890496164703056659015770622157076060856438937554671093924357015350856807607828727175740149608381258522079475567447385726573079211024121515139599696219774505262087229277617739626845084565471085877239228260329046799677927343587209377541025418101545240424065713593174897697979972291163994262061952577281611731885725500414016383350423611941334176751959782827036404391386310463643181740217561220010060172448596086785261162252188254622709715561818291208047471736386217666154298120998190321142547051788246825901964162005294829390017585819166074584426212749525417341587705770774718785517467933624140066479087542969182756274373759962594501954848387210459154550286763296958198456417812018803278443021388033989299370086582596580566137437259193479560155343677822003183206992057923057458027404472198950571691108871522069401158140598437882188061556547987840238371922519587582889545540039178791150435063299419033851082564423610280052908283806085970839431620706329083986443757642177206557109195736995039126681036611977601382274009876685879108963710859886958348542052748267792797167091873992383803591163403602467572613445391188998567383980255266141158969055546326202748678601448414042493489133338560950128429562465314439072249154950150664211121258824306672922065097612378699226355456032426211622698092276781291060502394561130482046503283836434120391005920226109812503098307242029350638658599416773632087253168279414966623258021207171898521042006260290588792843297356955872792293951725331204789911989779369515185316241737901562590029259037206159685754323497563560982230549003933296972926159700351689690563320515332818132431563717350973943003261146082098409429426629029339831144202191247574445051229031778224984196361255598462042897789556794119737240454331873131655952190083779864537448193396789639689097512624779149152202170350107999265743262079704490071996551302365306583033453817754064750421500330427965710657304259426510329500436054039006122817955441766176171668773386544141482906192772239867038748811161859428923092762536660930586892723358447229410362265901037612519133303905106188180523192130666038428984640260191230980087697876443631338264960411042493284711834705907400347051106213649711689226290086133802837180097239130681461374825758088974769148532571679203143568003534485171629610781624473458107867656756119911911542247411734855123297953395923546694584118375574791588051023363362279607144867095503669889290669651246053947722585057070827907784391822368346766859188874158833459290446814375216045876522850988573813109215649289793065849469949435843342342077107968838201610456700680398212984515777772430977480816764277738088582859982502767720951759205811322732171214530597980960140081209722140622344805479221765729230516356667307192022365293288605138800756263362436523613732300500791891017414365031992428009709876367405691260699102928827271861897067275599592097697198404890272507136292156964484538645387346196573373495344043772859562269600218160139237206522271036008151508222305281589752276917194861110023538370375954226331025353205264307844475273212665391397320287999999314262130720916597251009177974845799645613098692716420143215368918406162848969172913922706062558426419699195012879656167693364181467480203480344712461056194398631663360841918301584651897720567428564511091525422964900571943668010522962774317579757555458558059009839192444407426495405672362976675831341135509467288835208831994401931507548552322121075843935670601892550938763498738524120109444526864751850664775797011064911043027761426455051276297245498367052822087507162970486889815483845718486470429562306972799985837670068746566252204453598237553474374039750464130695948645902060874522820864705458390198613276636090097644888591841393312284934264134325018124498395760283759525462750822245115602120494997364764329240271212642246221838295012988642587754230192347219762300114749263731422613492345197271911383338480905992933099830469524640975117188735054673294542152991372956213831368770872807985920837467950629576762592423760942936918713653363171226418808037024143554626597850113300967421189262057770958687180098267579690689500082489717572666657228996686267045191648327191038881840037110520835584583404338861579942926812875100314968774969010865191071185367834588339719045946078424148055586431193987792900440652767661582729075223444645710331038194326743187172297674783907757443487564148296425868577070273447215827621140913040482031370557627911338936286313374933343553073149699867655997795521701271927166932521327083554712382437832518094541159466775610600554146057482023688457336947946426954869210005167639833646264446012661518017121535935881646657354034015105165199116076408235568204158001466767234788496244549382294766239507356838982300948965057437044601928691546493424102845197894773671391037237509501216837245390755170338395453990873329947418604927662513442255351370954072082761193377551709733466051949013075908749674323167686403337434979620470715894731291419151426845841732839324746734586825038064145504828276621498248077712185365115543335871250761641032038134944965909306877586961781482122159491586486440070911501738616200785015521180916309769825973674362238806586466380816353879861899232232134248666099183628013474189565848351898619688936107141072758662058824248887506525884513361892626473104621012052749045095168015943871043975489420239872345871163771376800536697504657751521425375695067522501279477482022317588542744584772544442967269029771225171059584630502906783172728536980344920268193761698654042764179691570853336952024969867501926815909792152733399551584007697418441900677138686276712150507042723816956874497648350209936037203323013974246774104666834523049309049093916776784452298937757618304565252758151629964375835243605905147643791703343401038347641973442988399989441702122547495498524455468228668182332123646122995132529599164173052227082257354764549620740306999558697321228890664358804569123398916742284791234128022813598486193777524773091531755429759837976975280701633077292686764520372183979867180271394243188200241714331529219429454257001568061405228128884065182704635231836965663217859854647158969841960791765479381152310773296645115810841124914453367009791637952996399655742836525324301591056111689870183071039021388603776445134541885663325049576530613851491112802488782651280482095417259295411604244537000805272492560935218769152998700167742792596894621393029001494526141187378965435294106271206126817080221881206714449332450660292658264266111957069596303012545678017944941959841652696520099470415839547196909045698043290171070942716097921340559889565388575060328025795837199551701939343428931592213846122298710392815211641230973366302135722896372975281080992602491421292042850507975025314516133076155219125357685015726782628121699922857988425750287339339272168812755436679608073726647814303358265177821885930596280111055062604303639751526608008833332730222292966184392510298369586386520960118261600794450319840740858170439559045077083171786204141986409232260835644925308837521844615413369134860448336406511361680147537459885851318363730110290541111020030647178765820342770880033033616475887429465946497361444960874913531542788181353043372696902192221654496939849069629478431906114662915567515140826203462229739443483613827816130674750427633609555352730709424170022986943339566162320404361804243099114013887880342663577024053324929582822957726937112187163816381465962492964312049629580971918825821871984384767189506421797659967775810767066381569435335524156805564360123831952769775285618135101343520612855823828217702462926273641505458003497903723265987032796749113940799735210931085202166876163308149077778356054099897570745490483045054523341511216475846378846224173496375913483551281096550792062246002322408313538701473052885937512582729177311380514569370036262027139757551599024976584999210052690499656066032712821881184508268932482713098321190995176796237211015864267717609284508079958027134610515762685767667188767061183715714900311110737012530119948448158796366746486998827261954814797201704799725171982571346775473976970102724651275355794585889877984261000295067725782235891618182247184522692819530889863413851091061338135910822770892774139783991551829827755447002976680169887095880086139790963782252001918378388917788015670171218069866865006222663596089806485969550706248582767761307011466687319204024615497671946072042576096949417670766607760664702316388669134487119470648196644841783639211362398194084468387838260019679444321229149178121215793953570517117915285135590337713149462063966000879298947834298779892217329958627811694412799783940370949644072065520031639056350508487366844025485755163990650650249042617866919580368313104305135417176437770165291374842241886403884109862960216776223692504968487051551119707083537088780614985869981775708856138084338138589568271134669218624465999033148755379687193833447261657136916794518319154175098488610640120315262261573580544022723267117071685657486064358263552714028627051362363161389061561993271032392414167490890775073834883365441183297192842570277314941750168069237583362399218199176962668599890239277749050141369625671547997714587859290620742087261920382416633634271281876930526074015503918398215818967380523081723334554297517286800455107433930901039555841733888557452579544287947491418994940907763032840404501154854289581856373409367434580954462104336102400165310337607798630092283873505526986937165752590754350574533805485386964465071950111138653906220064318586305608734304670687086124252647816057141228524021922648461090739188293569601646287663768359199330586844806051244769094247878181558643034340942043060061303174955487178005192707196067628746991167482593053134797647580968874710892730220156184192457252905810171756834288419863961940646907108359585208990392878597263548660391385178657816939826163918034800087127611262562676172556295953235284273134422159000962520619189884222442538873696478020602402445764245920934151204184047599534370494185696033497624061000049898817436217988091703875061353047171986183531493601170834882078159278592943425939735302961040321318821328285806697784700653160773337421290497804961170309367222515190302361704636526018454063202026061664857403175617732233703037334415217060570454997109259659249400341838643125365287994517622782711129459595801073105345415028819087009179037892838276767654384405224729089003663084184306042507616742058312475283736838381712012662838538756296725661446099543147194201256055061569644628117386857867590831802462390537528410282114882922778478568266844149198816519629630460740591361264830189396673754608569101244596479131293173703640417709107374085620236594034449292312149437946126618377777939225860768620444979554898748309556471374071444401203657214074723690014965492928350741266527870702248611967715163730387937743361915375024467653890149886331494619447741817864555366001417843354319007928017133039971678778405489164827599536238964681090286507041743645944636759156985492655887765490593379504448479187617811007515699884592237440948432440533076240203096505879155713053247917027831262981714614700363408614458862420313025189675700908078260997006439597033516238880368783391894146453889244140627970603968173995686254836743552911378284342675170229847176437668929164212990027594263995028157364505959427629924123451825378351380819679649047492080974528818947668155892204327060606111810978329003123640761115888690469509684587298794680719095394550833287465437515964637481331331379016544219458899119649458337471483134479280750388326492476576573730114104763566407248380314153669913499243339130503572198523771773038740631246080413802653847018417461209692239040687391243857912758720453326671092562974553745422960698549815180485823012004896887455404478613246707959591539165162263649357588065124028309034354861854916581865856368304182220661081650715963501203744320291216507755918380166948635258214609369580315747210196977986343759454908876702816478969934582665929701811822981781546411040466949064924465630083312081851228189317204660648442333141963466160320748430695329490687977542433653752218532017407253774093333431407633267140506447293391142285751850859977517364513349429128471801583657250605015754029331189426319155770284447779535280896080109970712523498287433118595421002390433751810622448402171360571178361349589466216552477708774096783568196761078823172002556126714138415563813800307264379762811482868581733274614034637482160811053426739926240155595925457698526373618290068784894980893971042329933261344349539446625970856319703450616600751784186000808948565598442824279466947760114216266609768544571338350919583286460665879770419477458235451396892745845982457809509699074816847189435601500353980729657519675991982007120350643339322144749296416788809642633442342420403009381413146810215407296442301713048104086863356814902852824860218604510064740201437373722282977971374647544539649287152094139218799665077722512818055645224273116477360403942673297334458050912458564491927232225447354021146110796971163291444959673927656215382611575188448663832891944842485398900704114907864030620836005343652854757028157031208009169164168719755998074914680138202580554197246261162943412673102336121913172301932541778075386976970361259112864809167670524532022681392777736921473044515974253470908082939989182488405544299483264515783618226557275529688193359673466624200043707012039934029665372909238122198781960016810292756480230014484091499046481576395497058150300008204031278464757890264655022929224393580243290099785427878463031282394452300024516071461595308699710238149852711589209718466095222008331368586797457922444223257771129493177214226685398369252015166353345696137265806201773864185079969214230678374256425500369776804697981108175638930821212811186726401478815455670825357850337449181323920332627841156509054024441449106763341911352614594960558092142387284052458250910704584618261580478057264183292437104111232047084362276807269325961580253598526436364325802440759301440878957736432369433963130147990954614486881162166844094511598470212350702489299695239365219669076678399918090375750664456771107304670869802360159126138572791870694598306195633334860464990369121251412719568725129404378169312409452897015160453061377594630013843012776977125299675797676008713505400649437277666525962330482834361047674768053086225766393462199647490876731576728644544912199343517043195731345474208233075194372677385477846571181328822689437535513051296459101435899426464204919179079451478581711860964953251170121485151810845094016766326642924280644388348068382276166184503128606084527196627779470199236942354160021903464873313868566027343325766223141805885204012539205664317042379591389905059924682937693149643255419122881762974046077703444501801167599328333831693125971136390020823867022305384285419153259261746082371346340003441384142984906972606653395088961877090709630925904988843518119708930285180042261733436519298454650725079470387835972763926858912100147202738556361395579406892856607911000377410657770669949205995263721890870371140468809209739275235332724216196932549615205052777304787727882922439099401592504206385694182224250698911957401245437859775334924728412541577001014464834860850453748683934107630190406061376533336440785255536775626758396276148064688077900030402209677962076083268737630518620902657682875403161711508566712032411306562996848367823109260688872036679004738330626228445694514613756190281509545919112087117207065381080951896645957592050682107214354139300847403646121986676792068892455142994885558376660571457264311727862781556145622167869216058859761082706856508965449974668235055808258459093349012367646637177613241386883821935505299711044361310260147886746851985809289226861878869318603327296647700606004737460754727207329466606070977776478696206892937101404173610548001945292799547212208574931536127583652264097574473596625364006537532580914575867298050107319483350706175891756787475836050307913696702011401976641512744783056514016876210377924242829019577087719314178309984797828626882453106704979333927807800136731797031631400968926242921244745034186434396403002299849166354923279035964088749381456517473546759413794477450395659864420118788555702525628465320153048474494619116556595902929439369221304549966335584156006230689397265988334998625963335606499371158002660569422610766031375623862518082974162004418046003063934624779636075075116720192177365791946380412121803622392067087163782325904795168779779326484300237583549375336138419872661059372033199316912085156106741109407673206974522546186911565613439824094886704729012656512300264203409090659882604278546999149338950405060900612327765015092865624660259808725968225593682661047506378891414189055953777889987511641875151083188124088916225777213680221224090082108913159338550551504651949375059807948362001011752247643231120964258589151390686426566211024284897527155233550395303447745234691544085001015091951783505185243056392910917593969354749741954210873990314595222647419467065360637277418542650556471403909528429330148925642851828212613075851055487993112842870340687596048551404327244003918928556645935408820512135598447444794213078970945328246738560353940054530628425949711246739351624730632449834553946796001029081404774659730497132077592992341798285450822280427302765109144457544063698870110140149879174420672134184494006597524418327698449688819388537589576691477134295975906676174452255264483406207727085099330843170251368267696136276172593468605258619349468031237143421551882941766090724164023276778166675324408028632453578381348148132930934468552370152281672180982568502258667247119480582822814708174394628761477802511946219303610622432620784117213649691579200610433189015616492578487655622600160481449585411436157681748539075900324870637894398366742647567557903540260078384500710710090716004243097293923004737966800348251596630768965304142005269972011591791104422139168067668458603339693529085606820786560236378820453952408588055305639540179315096565051243214348448897514918073345820822806390561741701816043643759934347646742488107262354943027545454957965006233559428463238041780895330783965750199774963607239171818289377234662938562276999389708778229440358781739787207935870055285841232736215450195866572837839107541458522810309936094147462237658773978657151973949266932523813740075182007234470551731732596990984577202924568768758722556911502115184023760307292207799782291114506103645161689859240841757841360231051515986299103555732533551009579562061624218767493204721182923303027001449494188362292947171474618460915739572209321549505791532488666238324940224240034972021183328458449463102666412095857091076832449373848896465733583186675714602482411322686605249612921011802141104865672440096225921263047274972440868026172545274581254003060038578375515045302126581917046243848321909972321465995839880846989558152020250812518185472807695681065565914929082574490506091343730764454768560708523655424342129761519255912084742265063501161288175415396762226572333007926627484933532531374345691067808961179823231560749222348090087140993405023607252101006798294585261776740862173449023342185082104708212015830038034057649642133479694326894226682137682884172138520581420353058210227730513303727089031605475552962185849796664022012239075599610716667887837071450840117578502852297935063707916269741329058165063406653905850321628205327631623319878553060673239811532860306779427314063010625367624438583229854782874077087873836682141925654229165558792623468623168933689582867864022441194087760466108815682528026525076717188139460286312534191702675927753734983637646346354176315630697818571266951137855373403780671123143425003176256665518655450801746078198762130478981791595930788641823584708770971755220256299665664265351233097944885033145318957941476853843787655652221463510925807002348305886491103094518639902711102511724823231802664482003633964648325072721299325261935764710027248059183927462080409038249479504486871287947574054031116578759721014300792756528052089397408743668323984280357991566574082046110860328652914555601858548839623479878715795911351236659622030470993873017104942261050721538850448470874731347401723536379069804084979630202845352497124821141152085860899795644740226878583084601873311596457262658230051066192288978845003284796159417075013024348350449013923120373902231511285806947401777946443080467854428921787771309804073479681326641482463715054460119220782164497275045555575538266588383191607987299231717087355024716540456384669039646840476307444364104731221462578198226108999291872558385959408508705242759247039744164304667142039289733353934251015107603199756192258817301206338646091105150250924769067546076534230224924609732193729339308793845600038263251322465784377405491292185844627722640628615600508893726712778152303066625934671554658686960085302360475671424715898663584964453189015782055591446811345822464266530155195481874371809262656188986798877526464987504205029671662564750918858449014427151036054828909108933150788088381826485490274240158399231393144788052066752710685802908752526810777930016449531434751955305615464475402224749388524616797195438756034479919766571131070930234870586153544528461330922843087909316023977518449848039456547013921136243939453051281312209629345341837190244527364779138830979831229030054170834104007974056265845278935603436034720426228063164811087682904125051372682775793581390230439847502375729313425420867308025133456203915664555370383317306075019161341900679276687134940471631688594500148063899165143690586163932026484123601380732199614618881220247534434365495260724165640660659948107803672437037506195460978661866205643325986677777196411772425953616441319722225309439916633914568672687767216166147857524600729605802275711941742722305626721726958037452107495237334422690450277090187419383714622947282552390899273033811458817185699405769575488300760450844596575629816414598646063262709572716856839903247498296063643008913203945521711387187229636689183320127613457515070137432604767353647919346984055935857773422322343987826069630938105625628139366965042657835532008396450754870854749995594245202106888606742324635692903714825145191441777257755572739918254988630470088519771100972988494338898779226246826103862227269126560924639902299505233708722458269811901620847705721172443166493383784961214716242639279683061275739825632217053735710937012200976425653717111285029509362244667119245119825138857142026770638137727802622499082615350432746234789686950569543443961902022655917388823568622299519984686987053956046075189658865181399980407320894987715103095595430124175480240249659008447536158090639138187703002896650774496999508972704752778281186953889918501760311404072812745822940115352994184931219753176496478336303422062666338877102111010323141818817124181586399495766173288191986050519005369721248266683889455356573044879258325600994870625696041091868935346869435902784715097272816069988434761224929158371035472134013321849745277728009890415361423334274598256632193317837524481901943105964751824262290676166333838674299294622598482359166370547441204142788805599990241033287788567743798146401790733764727569824275392428721336957074725375222253508190048799354368298763658903775152538510479363317753009046114654851306815358638201952785785196823194180649549975604038703231677344428834805116105620296589861358891325609221299604567946244390940073712333688782629128049919769597549584204509143336576299134839573530333392502605484399542542563454272632194860845604864381732710841023733083046064870741641129789655024269187764746541619382536551058383538473891353650903978790901943543621147644913255485812067315763335586461133781369274224986528308652477839307263629154974265011693268306809013571060204720192812129463799599989807852631710647541102642647435372901839536033826303879199970567377668218511808492581753262398620968244937784678248121378165620873904561393339034678137972167049084375084171032571261551213044539257148252403878105936791527117877940563587262286580420932020814797041930713889082905367403142748011159749728102290359332301231383547609334549247593648769602342248896943701487176877343436269341737769067870194469725512348364326590704384141859637978910090165180602568763673818672612147023946475991952413882872427578039859208607648225942075222488224384285070588909410289967887060240876392977924345841422696009953616832711748901669923489346189877944864872273991019519717371152367758467837288090613176602159147629966108349672428781921170009255658132491754446643380163382845689715471812042173561144710672680080003312968998276440156014959545605853140709864169883163251870447710872068616845159919144865099308917892210039593003592474665476684435802077004670223088073675322253888085902910058479315007656682905285469175222209753296883747477850118366121562510257886801321014246971039004235413528781082402194792294467888407860921893519214275681797736522417101855689305181293363761214486560547957487761038776295386233992059099901097077804785864811363033731328519436372194811638142126239278325752121769975861480092814279788975268920632226680515627907312731457796055011156033491720019860054455153111375214475003477092612484546304447776453350802112794017841251899805963657591347303830092092667842559381573795199728283907000522512194926824784864247157671139738918617832492325790306292280681640656756061739504081665638868535439327407672826354508215902916043125425381960092325647173523290928494053485096588599404490365487730845176061402446969087312214951863920292151334221815006405975506706858412747016769260467676526320628721388143740381663442645593198808706826669997760869722428608671881747119128077495750169172008742166473758335560615120994454768034933979712288065872819320489208364214794416099623167263054771092087177264835332129194911828898010378022945919446365813697397642684741815392519889756701221231980631043982003774976809997697271216694156453243522075013635946056253901504442021276944353127643943561177193362293275134660860931275562042997465917617081990193468179543275753701627318332105751950202440668181850190696650374202408454308692409320221018050657735309884524071580257056342297539750586191190676211013386976911097826077779345295099170367390932632112401166700399531410343906069011528879530818408937015051677829199046243306309318649138981983877588599625208552256429947018407466276145677999652441734098095477949052367515056294435729016629410865048130260718669077231456471097035585835457003596530956251322013792873730210044081369273371153818957361737966875815032951462282474440424256620206603717628891385515033107312602335337726005287315678511097713297990247384813515979112055292449097068603263119825557098681004734623940982418155691596983765451337889720347559927609537967093194094687932176564859576233244838460821170597563276608382582710765246042696008877546861673933931195250574379484729081040412021092565667725410336795773748959693916817158635714351852069129061036314008625694149350208254196640561159812023096984155611063729596073149491689730480711792496555672813330746244647348247389638892286690500644242897933547347259724008733651197969053071389162318540742959119203782593133056189365998373022738649389176418301408019336569773765765347861609828865024226072283385145840617312461258354767020987675651996231022691532099863614680283398480208436262900638296161952966730402405192085899917161631404296145634403797818074497644524281657207613234809605125345581925822533274306972173553243166006604620370729342534361254889510407709037957058234833924766443804603563636674519242954262126922566943371325447019908912520437165316403465739459313716537398164237413233331092154219742852982260210021620883095349471149829163515559751132499408909765585497482080937192935082686642362637580297405524447699042378090435910344958200742330220517976698183801772791083122633452712903032848682507343397922050318103580026340833092705128711461029577036049910956708629499173219596855830718227554228610983439640271117781002502764676030353193239263277170817831681096099673060354955069888277933378101803140403226491140244894416693820943232203869901290477647527349021882313241483612305821021791030131076975972575075208280810543850933310054154092015373586532059137799692975247476009887057783016610841602033727739751559452898471695251492903251052751060695518933859137274079766729333669555194744094593147159103427138449415466060163825641420041507742665202185661475303115551223123903136184056272059024881909912752234312010547232449878131828796255571455788650953647620046671752551911529811740929680579526792651082673096699605017740984594394793691144430044345434787175758994590664217886916176426042679569211753422320754425267542628389479416039437884713003122390777357573257909673333956888589691596700587962886267140176400080562155027109812511315995522002118949223188393167270292899366837084267773612660574031964255178719273971970963053627926808230582528669277249815173878659119392128788886632742629131227682310475340485295361887523952653974555495816754018624060450976024576227531638765711240840723773985936644993896794069532534383173359593319783434173203477787089187536851456184511218548397822410202636007646221926393983350784270380343216021259599390863692031757706643677454382311948667920498652822239925963372300302390376967545740903876837093997101431422069864331668960121153078616330583071880576387068125725598882713113777058648139532486466165571656712078763105940523348259382220191269226084016533697737197916662522328763570932496731465299625554214764068627871619586691544264387860043589861931702672572690920842191163294407088502848116446778312912124784997420453154366049266860381112964135783675887166998330204955996292209869049728622254914221300196770915233202785542667220613279721233291375957430541767717528202858382146280211486003119280773761344709753568969087055303668233986449999025395131660087813778438129440845980926403233672047415828067317918248490713892072174790696426286410165560552269402282313225194983727862835533510468289052666347381456379163443800289824225747112091159260709471851670350771420484505939258572726397245263298447942925987211130657076350073210243668730611225374839649875393458707749572734163582700265305314029444805384604883822521795233982241697297256649014717692937924097963494571381169590740707213139370851698415286434211427841156071919910470749004696730056558114710957192259161961949699206943653314438741306222071026288647046561603567667960677734045338410089296416345858538331765425928630455597614843099978316592869842231024603151240179392261149237811153658677603514842357067841217771943936853291021138063375898969986772894072928477283226994664594082976326530662359340366244486758029349701145151917645554809977427965052711970768061296294087099314330039542818770416710310211099054901215829371476500076993718494906881692716961175542568588545789079574403471661192662116940960886545970648086901966267278660193814940530835218726817677922018605969053038659622135168176698679565060407831784560958910456124977725657079795480169085045204377725499391289992462658288045240537697931019361285653766816389562883647077862308767811319730225980287533578869153814780618036278861207881128840787096180666545177323748867134785449747863163943460705040356094757985078721297301187439796762848759202878626911007561694260731039303783718631265255620538864936015338575982505042843520237165733615366363023220931832062458437810936658620823701337800213916538614596438104245303478435408031994632423093740725220781864178302912847673738785550638461922808052982035255148061687460991781621828988213033279659968286628466313417605898017763389497464965337375002295343689951000310419740295178833478777293161456456630479473913759678773306090869906465840562710497955951542014034753534804114694594377420892144615363044389109861759746376380745154747429537384175787249405768259507055877964532471922483649367619904192777030693945667155703655337126013527628623494263654826173817552440837241070658919174555044497960548266779942372006980856484605621947306461056594476879648943102701836151234691777410585799400768406138441918270739360074360762621215154283301546200987917430966933517940876952821219504929372694388666625328044649064094782179222337992169578607008329302905027570525573541996840198956174499690306529676628491362643073310955317796260112926258543224397138392885812564448669114768667504407893970857467428402732171536588147378852538233851715080299393856612857138744173091466043350219666414997670696376013062086058972474065459024742569810440462890768623135795329275668868650158941042895420560216349244762021999472030203615334639692828956441176741290076534008387722133645780359358008693239478567293255694364915190158080524960446969960917204527298520350342850664406334517395367253557714982039156403368809724089136345196201393891636500131027790389328139747389869283880448955856797269485609935969183071272744437225887528703593878670268159820261384183853340702197858978382259851608030172120062400227056657970339967183554944299541709353878646488861360894179705168221914043229409431241448018541771908442514199145031009067630071022466805390619937788357063439320153020847369589868282822308279436394308798654172974769700977459538666583652352112358774033586967226542278725875169498580714561798819445049465974770396434155663408706057554128867918506775911813428014747636785293804343094205652745371583501023073149164767521509635203285541206928363815275870556578603609408118668989945055128248565765444119571305861087180825804077776041485305482117253543521702448634361810572346369276795814847806931282587968704839315705881968955707918920620361514966862801523252889972550291839378725448248961960791508207253580208778844113680813176692816068621925766935274796076904470794932650537765369290839205984156192270378379876931751090562882523663304602859523957180146639318319988141938895851295302195608142697847761984120271174568538882541105784301250125230166886966653139616028199580859996784813858518885712466107457341324923582935823180000332064541946961258977038212877485190062530889562376431973474702687743649365606268470959744965312250509088255168934432156071646028934832321814587393016674875609017647755052846551054558930645863968186489732704012150028524804340401123476850466531589426798258516467397746574738624165596087359554028821269194378166656420136818031056846124451839720144832019866780743735866276893551445524314358044941043369368844810353455096450743192742484898584109855865683474581061163818580465025090190394290788510669207047984440903635842350204524631994183922088588399442547973859813523891863525583131823860148316559301570726039083491295081999421331302086364374370491220329175395261622615602727180139401540201872404052293858486479401569597619504111763961884891136895421291783576719591375280237488081089701434844208425564793579347554539548059654526616386034807903561298376382929156251179268415493913292393483931265015487624004642432014422013932324970456045532796103228943690343763544401994040681270247480058693750646819182353793266589399420276428174706563650713466131764612144678617151300484110976277694127672735454505147463391093237171072354214833853178000505048324483599893893965029837442095509695006073380923772679513699077003931487246147747505454813921526356261615195542034463648576865846319723813043143291749031785582009794622706806626158638633397691261371753526379830368077014790439915253946100499719942303605075765772682204013360458106827928710187834674608010259236833748251739781357244153160843235098784579624165171008520925073719953173998645331420964046742009777833851278138013228067402273267748805361310385624481567624345476757468518292798643727349229454840564461409387703152411338539485228303719690094768792528056114463600836466398114410363354212909113757852380270254738044169683618451597938533429468059493187806356768166018498556685377860236757871679548222803155530970488507628357460472303672442066102249735854797432773188381506332993492309960063419199636750935762079348967362604760254024010512502614330462351366392080977860605199903574434157753942787155439925640617922067268895734414637237325162628256080011766125096723456275227652778743234561556745324249093374766346812615480241478745196254473997843563093332898247673520186775352312462233784297062218616615781685020069187399214682788908834409930750014192375625247061567208322756113135084720948591602206857106429520775114462331501084093725104833554952725240070483099685890474085599592168621855302669539478997254374489166856534908200012618593805274076671166768433391529445772050344992251307949443500925060788027798319471363899802587305308925532358903618231665319041778413944554887855093961918097545726959498278227540433121577058250730036342588848605856452362159360969689535054752455023109293756398309790455898733197987054233432388287253902961003721505884094196621524664747789330508872484682635656998704658542391058551087890557987977016256103521005713635369105584274097815674686652289505827517423514749947048703206148725286243866369737448585430771857605063018926506663425383057160728224483563591959698621456399613739073530004593355849193645795912504665270321208726535950617892450709261828453254144813281187571843413582425975128934637540249882369709256733147221017783988287615636473790961603026554812359839062490257403922546109034456319101189274009962095528835653757227202747251660547626295065603592380306530366911643141417359915288954601563039847735575353397412076882566042418714458171427009370045409972482259369654771109361750602801060111990323659321682726357892197603174559923656620738349218790891180281897413446621722372137979261980290316328146465876070464198728685185340173902806828838220972619518765103532948021545144816279361351976903989979515407004633757365409573306631152174184225049528991356219809850630257680556056605038287930606955993144652055354468165819008776541188378230575403926279627385403874428800366024985811499944375787269713771385136827419781958821570424763257225634930773406504740357593344327311445239210487067536970832656716350539867666052866891760752355278667495220152639048489886455898268483558180045221526183351349502017458674205175891330682313625878262109451200983431458392276885090880885385237729593830947801016939313836446968340934337052760879186170504387173163457962782886130727038807872204161407312557572083704892072958471052517222167765763458822434937066331545131679730179175467818155939694082965422081323932052425659098525542158160095885382968204273454245335568741830333174821278505828223853951255856743910552240824309692642167560293401715042958850843314178108057618788405238064198023622042561198511229089969403826729447741071149505157363790848443020880663991707320251337580260513351358160280596677840164827025626940081271074729303799877057006416104567119536887728092003625869377668855132383762878247508866796682024642885639134784262541852057235796795221393244139555369178534304418665681505020727800623355327270815861599383980901211047630839685994736435707921129092746901373260197522475461313450778751206452701793018748695689905309783814502124397343190515716363144195961254906348744269747177117212752593379616110427512697251532260081773575664306992769248359546142102632767619341556294135493282455310934662802405840921269330750552467521303224785445241343111404281544218969363097126081693798584680961209077630991375654015397347644100590177541840375037120865337276260246166361630921020984236352308264235540136437204277713827065712215329861516136537804692451752480678172745216675374584461994570941178468591950835859754388912303358838896553340978809358939027116426013084353970048257522852707006893440917226873197760603522962912090590364760453631136113705150818680178281522894231976085264509705982094312366835973933038291000308344896854741493279756796444366530817335388593618357862383498427168879069555289092686925532208892680658345782290008499915597544021039864312516308178149923386687953663116484500553490820912038062413738693900853041508021531966807265497553371482737573382915584866752790832023732054862275244327950824794919127782734515799299802885623524843298185025104162374922704329790573277223339693085455421845230473617159545674723851483182566836754604999855448584802041182821180742746824397809561445560937150303565229340795958024093952170346197384464198626530587353010071105893588553236054012901808253331759189291234606011811617682365173793287399265311917788132788535997674063955493819497098557989727178800848830558778747053265376844245922822206365672549900216747846623240299990398515142875458699133356000137425248700109492730602605107884576149208414800190699800071269332315573705898730227686686049302276097841678595259719333047007626500956073917732940554523308768245982862442817125847416601802918388409108785289948040951410657323207510081295731091303467840910679389202848394702502425414690915499546673819200907649701027632053427324593518709134183459090021047442014470774381734362899364301316469606900338520652509134405735519845692757589598029307200235394770796769450285667813979754357999323660498012129931377466778720065290502340120872695714634188817027211908053067723929388355322146470701305724621724102816365421648257648141833825877502363440989762071962545623279446366004916189582082781403858913690021834906653618915168575232193753721402224715837282587960465218719177920572253078623828568703918288888705529643189138110040129772291519127647352357968300817733536813080422660705463167431647688682916119625152633173922933225820280410941021300894490602807731956775625530563515265643558355707423291307839842042596609883943658327295533970150824052571090860525691813781207877051724503645625178055805847882734108092992381771581629938774557640491765779555764393522689884691643052586619180048172883761103021342614300092701453478786156843194361835551504764570086258247230561428013136179284996683983657054129280681724894992126340848515078530529831130584708741158455139207926527359178774548891079227729728240814545895485572116046394617207174187313283486800773788810131441776602608136086790927374535956239961513582519683297795921367669018698921475419206476339653024330355321711746181608313770261229388427271081160764214556602991285315009614979973191653354759644220208894942940102643595581108346648080309571953236651978512402249864865736315418350324129332032946161001820072335538164746650409397398306238121834170602827439792226018293460399433024390570701259356994317552786366119547038401655682427656467191907791183733163955544029795636512261627139848718404518958934148963342576437681459084943457514333352783351362657897784272217366615187935696871096412992040836717218329240370700698119540806202019600140709190333569258922177997500776954097748458529184859685232725277130511007040465823200532044376045989641054084893127085377695742522900050808151740274326884450777172901799150217097166968738564978532878910245221898070529008779990648741731592440629519145192906791601015463297731202809745872668007235939316905597751303032843596303951279481623108101256939922444215219588020767392187533890459554063477595090440774922584544876910430913227245635678600197301370456785646499021094290135446840608418496847025349156397187272947339053493232403438834777027580559422423690094674070276688454598350748319528117718469411914098058566736219869318568233145236316241505974628694326211373526517526339008493959134233800731733942501160276308695806471194705512266488937158314660279124794456146037986138086950913417272220582044643664399902123161851142500406649461135092649478328513828775069221559803051231552829990183743346410468813648139869435673955423992868814809976508348409833749991161905347628546079367974629756980730229489029121480335205322726316216707560279608715824388626681806441149295877590840675678362784405809454188675234766719700203578002944378337348396433833384205178371412322622137201063473805279322162986415332812173145169203319264398509299535614339747936685754870976823192264154838050380572736068235357231814607449217495739223472031336414015486187217893609064472614237424829291806503091405334056860731775142400428580028666899428979898088023466813889508186394085294777845236942488743091498963609127604823894050732931317622986676802708069183712226019682172749950291302742988290295319700410003178573146935084601369562894932954681992227610878972040139214703194011109416983969677026502615297567764624339924081519954871708280665281465175580506785548387234318504856271625694343112267466734804058402681372510931913982068860354138076010874454599874063050401847535163906324309139317785898930953145575314318883933467385853154609885038211066200837467351720100145451430678946823822080764725576785141266175142765068835972189997354614961977100009566166367692388668603058260202547361459725856064889803074680955959755643394922247349320912057721539959141709878849065736861333082728219705287249713494687115868487137160057116788122213794970523049767692622793856504352566937400521172353034796150552600476034009311214514232193814573628739751384178407486694218598857716296785386119348112335946169721549220404349295984505170802484345269492345341151702634792808591715422255760163012167707333118610394369674264311158611269825323177565973416585703833731627700007390450428180356808074087308588319916246172024091801814001987674355610799656870740681678309765068492649617927177967493942625516885511876301124890900484507548274260562903141955651673790640478083795801127446969754593285158608340033472134709938933021300054589346106061858399440124357489539159648604346397522960543961432641781241250879169309920827775700266558402048704531012187982827085226865432232472225244432787703283776753890422589284492552453352851466174154465538088989291961586867751696997501692010740033994838941001337782610910715516105503451827662432514433042357109481829592549007333505148423418430434019723636746484706489849287737301727587855675746022846944722488769314322907465460540866271709818630208648426519427072114605740803332280206696063279253297464640433163607458279757965317037801897102213576023730384927023827530506022698254081711388055270475771148383986570613714851392173487064945334130446376963813387845482140160768669438592743018438844037792990348108152416964821784451497816596648159226555020370703587662219022368967726539890555575515897205862426130800793448406322641402623130469749587863755635574662403655403418515819302625011019822301031392332148281065416249150503787207128119347456892119779232233068792693037285851087197644418260265622021030351184887891385294011033931447396875002153316085635277317908476696955510590749451464049261867331843615144984200960012324724093256849736934553424745404781802667502197902254734830229693430061426799412011206277694114827945878939877256483608854319446442876265735031482332689371864852080278888229034920438781748657623223632366201669890473213380916822961558699681923001118097061220148994714408384623254153753465654079851696921818953679459416142084736023028247680562483410821944336461568718389049507916908868870058974485179710711817276259819361225612392785553999160435964795813898073432661919420857845039774774175511296095857985144242450812329567338737607174473053137045280066253380849525373446688675635621926368116617488384752219192626915560755363630587666939330797149980512692529989850465899307113414919443415537959369894427611803487773203085463671035522727917627063561156436550932077619370777892279705232712880367073026387748833236886780988209226492151878300175838212506948861159760447677705308889523397153822163244869923645676374020847467742687551571684050887351258744068960513361729541501787364340222104288546433405234061715990801532691357816192797194956879315972195383867288659676986885874462727141647038680831743616035624204120888181660285537334571911521457733188745115806146571345475200627017881562291192348344945317806398067873336222140278995228386511045587294788870992279853502442554206839136547731991592524195594650123935360866984082595280981530669886275907607184492777766552271028679904863577357077539136811999845967900110292822529804343305491468516377942850759303299407073083686061512538011407731305708841191504689957262848470429484681654603546955097615546950465026964425575441383976885352979905576073716039217357824935345716045696061248441469557768481757417634212050138594517374238018896159236683544800944792684297604560479662542801742931890319539624119118982333362211143683270048061904411604826345107851201538914115699354955680698821347219779751899800279459733423527662946452866832215282970600036539001002964803876594616889920225723828987263434180172616317612496449236962691258256212750002990953764501307523032344063385809706730977272437297504106231734381028255279613069058612272731913073096271584312901266322505222760346517103250921439443530138802362492844767465338227484360440101360685091774037649736690031547900913406858713508173194778336913256700988827491146488935240724866218562858007404368133582690605987046854211554840316965488067227034033220628394140005151390537903585201408505578253288953469002438147568136798307784537744071632143920332482139711461380762889552762247810926799178429988809485443247346813298383080486444811260089688657174714448670276792974514234089323202156126837299712051744928822630638060433321398534344323788098031179149023819013657201425183638491610375030423386521723200020572546785997383863206369665775848588932310408532634894608207380220810184983243605106965528187296203137140403845486183425229833230221710609702273786314831661119686944169727423322212505390682036327552516209838603017074396870326842671895535917230671845593714557921303520213067816375959366061561603810119385539375105285246753938426674981939193876610693171390644246583139425631093628851352572393756162848269006217129761409047678119101168907159681740095469359825788561521339535473450171131070796583462659962334522530378507331880258895329095461008247060554605516038889560979031608353640893543979313130719405886959379723166947571629594383379958952996238204376888464585035156712234034913367063417169368842215313663270282002105786835164137596473054490759647197189097244109063996790456625786063003736743585335083929474590925036192066589707051335780779151458185491294591550635917746964972608431887628689464973904453765384802677519884422412224175799931238678609330334139423289781431848513180798108267356067425267363366085404416562686975004860252247271306696401286575176559604384247407618088649714768334294516961427422096385074493168593603709433157555975514735660514560571511812430175362556023444316999036715278790940814303320075937082507086424056529102894721307676816893445868433955319691304573808885234350355579061092976662531716871544142814746914234681745796259416575151389810439864820600617869365610384130694487891637586491717367497490627915448289666734688276088189828532006226792427291496285055130505953785019505880926107059743547017877282254791312864311547722348364415113383687034398776346590486906886744611656546838131513565467529837880067356128247526143973751119809908340899949454522470215482692676365798428544573699382981942325383844077108269464191540915971488857865968228574577276962968850893785646270462721622769178000665321942668910465194517759239158521144318038766738956190702245009347076289821559095204878594814400313002956388639685054861047618959661230713720297074993818362428642804872561261392235904616807802363486790624703327633604351619771371868496361618555057674148549988337838245615177830986594823488404454858308326929645597318721216823074377283535539454609922394293376983626818236691245882853539741454864174375172091291287907801893196538059772993677143164679505024493724567225215292332082338704804978007729465337427285161061807527621592011467801929610400126646782944919261648238264315047197667825204245693141770342583824534603727093863695851874176439655167867937618243059215269447319262450239694416483084975422881972942942806847726169137683625668712793558536390651720394222809941148909966869405809123605763296154199649319491465459892862336262182723545541508272311462740654588202355647206454599414404683142426470435142792428387707047035114973777380803039783769892616588976611061678124584294495524229259813358720511623952783698433518668213838729048091771108839815840509406684365470369887747010453253800123486309623837941142442663981589277978481919071979130633931756868595735996792672894567418244978056936276748603492638415806840227943872622064038447818358110459601051042211588788959625516536072003345422535165712900154592254299046246944431013374708252922708823616640201478147132906819572507480988541646372331955628387243108536109858310292492053459384671389142618262538720316041303951333161895532735459725975854599507645037258320740034566752117597658368687190020883814189872335815993852708428598663003882131308026268285947131397583073348440601532573988599551348507056919703832813745302388779621808018703821897343548652647192696703305151536500073114274857591413719776263440417312520868126217948733575723716574773702216183613992712881250659165620537753462538778038211639732642903428587000138409111652771375176966857972055803405476652683938311536148579528009137785927750458501142398577928299411760965335855996331275102446601865258330629750888742537886085857983199846617478150684952641166596202877101666329273178537975737644039445337879174777685020589780493229588557231238928664923027452355414697045446843753108530699376040706980680509414109591042897558014027601229089562049570068530884970729253617758796553750952924544504610767332251001344088092790039052939728029100984836456652609624026674175519916784326854181344509188599486324226102695060065194477977342553685978175954916210542916099040285833613764594285819667361832305399258818509016262340270480784282728028343347987416327243054896668067447790992063540109172815720413786553609208380216610313384725131410807282803299832794656427780419715537765811251959809923985538296289415157801599003341330445884914272403135089493513049792750033155543989192052128639098704399701009595005806527827692472406614505060629743511952809307310592147587362673809107833211018168510214682053296707076795837531428927491723851091688497148609071403340767245130811112510584358988123895568341598528792110478754241958729070100782238418472746107219579735125096449067223562756503568990065691860177271978839823638938572835038283873486436838267114293253468145233242302655319312502466021837682244007256072168247495567906938998859530715051770319564464512727765552309571670988202216686186070054085264876928703413587440374290290352784439954604551396205577218141883160637638682525734861726587022465283826524228868787803419195960989439921040520553583779559746151497310653276367370995692452584531770608282973375284647568385511775787350306609026434536846806010321671588698865923649725335679410458895436169426158362774054240020353588094627624217553020862085265684269846560800925642075167265456653873371697319936225082829226917479301747764220065744081784890257591746446910111323864592308528402207817473262278429438424986402524750367998166760935453705894692252554443858380959070826712069600639668419837076309940997900846780212121826693611302681242374854355340010236441033038165402361058467834999908497879750225954843317056384577494322430606231471549996808443850918695070891208199327107820375210597447171669696849332351967175933942438309521121179632090670425218591729577178172951317307242867820937778948059028019921359222496215287975760576371671291643080224541762275200767334537003704889541426868057576946010164188976320580599822170417659954347123963006670291276754873718006796501982853785740359236979938818536499796955116381007184119142509286597968079832524890393371793466108169995593557012216774584731701888645656093688775194327958002834877791116564752929441107506604332052132396072318963214164338259001117753613825855440825712232356036456059548578779561632804212724634716696584283238749330735952681549814809725410882509906829322576218196214988715431872842058484696503538175889029947872201518335859276017734501769672023450169963456664427338764103074022037309182684834191860797911621107021889940295537632622271276210435845130238250749250801271379957284752258792301980646742029278876771034543818271128091015824115035739483044532266755169212366699550677260405247112181249028497059548208436875590057293069032695319586706071087466717417548684944200852108159714005331422432925961896819030218589713042626409993206976665319608702975453683121850884166905287420038985056245516487444405254404108716704180289764113499392721816007869214853324346580170902770707842483388568445714175748811158498797957968937352618402929024576773537982146878232241314735366676447598960917083297182793402552290190632314005016265775986212559330708131049354969512840571319413886883788588271649053908974502137166359138790220378413547928867530819618250586959511684135880340702254839773025773249621307465777795154921338147935011705139611397027964526369653814443347982301908386200399291789828152013603321513587206396797441314865744067068171233527001054691624674798114658211514001352135317543427986312943883022657191732027137734008993600429488387359897927350533895083419258997311110819762520506293858772729312681088003617785297502517295789755899589090547846056699048171296772231385797647273087848904378351634503375115858261373356255176488323330344185543336677714091955366176937095942249607710112863807814237271317282433024435717251113714887600309586538998868227663634034746988775878611950690948458145817391623969867834675592960809063523140623972510118367899655881663316987594301815712377153086628883646853867016486776175039504915657993659489747791905788532981066469980742927192140319874445099704874503369537946668257516314635299089150824249194253063604198539939606726203347966897373417750456105856451421487000513955101263931080990479321124626808765163508441546078281650770872720387170605286273980989340507387617881305429853253885309422464091030240038518511198768618687087942941476053909753936231303935145642890312478696928642759033321409462913392427589291346617589166186513423896173314107684493169589051141222705498591672824521647389875941740155019173863823559101150386125256175855790799277658720716507363762412527444423579445623302779887499579968546360936229635409093545293599684043459129233188934115348786583792074085625001236989418735242643273842653233992771793724849571453496242250474320132508087586077693111866732935818320758728293715948670942302948256235092609141427716626535487124283942008467019999401523822104678874235177740633683106343580980615108984987175411214340482352615458244630056405656122138364360143565987827461540786105973244058506668072169519745948655607783952268321142973423414011982573026129887536068464727816367997279114149476737534619353567806955772517072803408566251726184183770916924702058215163665993344618005035709879897212951753369289868281793549541549732675780942030558600424553670603939526456704946936222345219201994825765826357674664959924002166640462759618768530075510724231995831741001392513252323741554973548863043337624421128183010265477495672714493738883557645505153799767765138257152750891374626518732265551893360185976763238867216006014506554249752398738078544866452636485440721958956833013727920270532018172889013591006476493827328037162584877395050017411210679457236323527270070999154427399579125451520976421204336950863678522095749512366927457986869865903725295818457396631686708887349230059995129336315710383562522416599283645754527330426266483977178712322938231084701085316879728180423294438125190850204107311509715285047804738615032244015464078106804299204193441859849589795319619464947011316617239517839911804359513311187409317586547921493806701034356365960883638773093813257434036386537587225504621604495070661822404877072900582815758311908543821719339130541325781162388797530565291663358662857100231877051070079691596210800107557399332933908052111517925094308980235875358001735077604300763870649423033709749567118684546869182688406559766891161019293961498700202548236028653867143526491276071194587101003768505026502881209650444579724665463623778330240110758934896923320109872427684328908856867286353357523531584657056666470753275757194478080990094801813451785626134189962052971342438753591243273477766419664671478061266025547599244145661880907170912012261665668254248802622098780805504217510317105542361934892883392691354220698228790275415692300512407144894353441621853270675687141615834847482506650551567879257842273013768952085063680699531799050709247157555472129584221709847550801436974905975068654370204543436024967381181539749783622971026652142160088491459409432021295485700781823949225129760839401818000760107073210594154261210241011077785574300174866326560551791592173421130552138973279138141598553604927721810495259889658882758099290897850490141258262919749814925932033480399744495194187306849007979171183018863940877357255654891304646938337557638161744076532588880234320157241205010131311059668707606733838799579066455029917564440247425303685453639959553801286723264941710610832784576134203084971245807011870492821579273661604373501195988366068974126016210331646976731887216996066432925645450046294585531459659998124204089156647336664577356490426373044724568813812577443425864354808716132204894701727138359885649928735165078113654463925481024156984786524647739761145456261712451222473564298123961167253917907219664927981484199402995923073058965626157703960071084692089348669215107603267369686324310026091359310820963414588927209962273435413553707509221760438162658042868805835101137442573463023291026216413461822685717488916971035397885928218207183327674685331010475639292919440405364634768932254741272653979420168796508305014789541876254915804090708378456369487051964394417676087240682050236815667988463411585538337061586086476108123067436058289682537045341561654105583572738751782269570046734125158759935148276256366684000024445715312085786151430940936567015996550229526660740292787191736994189275092168673232649290779643247557944046791048497944214530629823079232600662135193282834963942661873168788601231566254177552178474165956417882715569403082479231164998466503424779146301749744075839433408551623381120482538176507195713917005657117932671262850492811140777102094510703649699550948621090359427169210996472292331371473470750795035899251301539520137119701938025002607908458350675097917460943200399012497904065519564171919926979698433217366823411802793534016353778506637043843923841535680779213465691469338711657404937034897426998116205503662742398790276425003334441731852244296103245803780714829179700685539888676065467398822234543821775772772042415940602763834877571762385172512526546232649424879973360509329082818706737650922141202531121473613904774877265256053543876707451503899409778322905194046383769741138961054791120031676404536057675578421515387814195600060042258437947108267672801993418718546268584719565346479679241153352676337828741626588251264878200966669649418322924215123713717839609231216261042914211544884926937816560702393913539951429068556207461839880634333390275999911720655427808142093685688677951220258697285801936214881467354005459381137293783737305228340026763669539803316784765262992484249351191638233826881673640201911129831222225032506270540693477670661324252990806030755234370334498954296874604444690292756532544206179632261642168037846078006170823128311921361710189280409648752349600019094870328655705136608418464406794216000811490840062986174095995295397048537307426009352280509902053660510364341291063174788109875351380359905327439869000618191713477470116304765799077474972323619463145796803476815356323213438438163631524943813232973155561805808578802736243262636957722312188691039615250488947996879464984041635350814619620713337356257635915443322351315792531947088732507837694110386647008609437704815110488000606063421490127865097006623643121626946313111086910431372008720400431172435149221650975447212425391169058753312691431145502350325810125153485372372120250968796545121002343961499858223177497474394226595232935738957215278079062356790915529639727638677816717643978843840247005680775336827530316067813549383262212825489028760789833225074950661118413718778590417854951492806452567177185527971032717783624240129025928691959289275282211560869103838554439815190658365512542339775814913821343363093070648399610110938272035636001464808882925527210877466524448330888851210514600384973458002081815782409402572770128348635117231872576009398467131970771256243003860245771072603406756465683005291229092211747050450732787979200246839567648945055930417963004563239011701795400170473540282041737141937020655483943466456648916121093616148345521708354622088987674131052541140401536533305610275981020572213297256618804044810487347234367447028864155271689254039264921489833227613090772513250115996605828692004888228105937065849028748927598856803221529493546320255239698308404945150770396379858150748058470588018808621823871646545944704181938022698352365023927986587487260026256801070141304097382217468213572980554281589333495617143832531385650825483133736160722972431711195263921135531189681132257781718867402426395460852787550038581103343588534974092848202081943426492304196181715538621355879173981025483422411956606648628751036769372183844632031296739851255954914052135886379500276694529892182076278434084681580734742338021652849321537404340054113337665166717238590924299182081266979310049253013967381641723241268867664885264507020056598355951453909033070041803939976887092819582858396426124103804143734360322119211124457707387128887710637003541721481639935089444525208927223265072629630865269229118546721160431191364211719151688831929202800566067480441887390690677640741319335326295886260808282568136378842137865670916146511443725441331523243635352129015083807753088070370277789830034783122734000587756685662628979097000027463613689115672937115872216502834832486439082632479314337750837113923249677514711754850271203615389397759862289632774488999843102722643900307889598337185585968934457016591632388918407287483121552259720256984241078846203883423175556854819729947273133958507969584467046935880550762493862997036440926397685285114757204485718035144593781031730825531885329368466551931245090959824447239057455498926324012448012762793181037807695432034484903634517380159966756064365216396118707482712132728821207587637368902514820592982727162087378879765218132648055546213636444780825194797380270212882450113178426657068331065705484795767590770435581163591306442747629716180818111704055285661960926323225979364762355569333540596561670278702292958853291761800958297715927887165898859673977118050309573424154970888008217128686978155501683182942701770930926363238929621661710427273112611473036534501797556640308043664177001128785412629444988037327078981459982849177930109251378770431163968975493485844233057562286143109229679553055977622682671940664229630535454519129686969907812419024509216663211903994879105896118812858945577570218359505137022832936806109431951128935984572889777898836563520400427543550100614976911849821662166050242460093113732035290082612667787957969071640439103265682102046099176478007543199869695403480247112420585782411633664177897900439630146290436399830510322368693017084091647862572662425282519014573309107685452752704190321769097999715168836046859011973736138742174422818512090642805130761893557800646743373914264750691825490229977748558187229078873081948438930455184340975455818768293314161196642186103304975933835625506454455784818083649511063574719962744101436173113459593283791337467194610656093717616253521463379593794831522415773089390056983745443459891752701347881717004191097154531645383495765974336706004287999721758913585079268923651767891486084828604798186993840810053998964406087103263417996842092621012059359451113858696411001663976598848232688577018677860274844544902254418760095531589700309020771246879844339938257209320374813941872325736210034818220060060302780199135991882248150923844314423514913778890907270491353230937760079674522193868431516430261733542050143317156515105604097928319122229764559003628695855776681870377485164412412566464579080281397671439322479950086003539795941322233117835877053706598756723905512882266133122738942180551750351913858266733278349964265859146568762888702877222135341145503118102681577653875527482306783795863405567716884116746687618144190211300605092935898600776423716207730818526713981927586075756947336713501281840135384960393103470513877078246025071077334988676497062710154356348175628085911186268056891128805028892591456360421395678018960452710010711686454479531267643760245969663676883396219422905269126762011017720179163474717653969189824633810701591347376125390540200152586751630312219504335425589813322418320856974805094554122278830759624585417877508326226438159342098500840371466171294246943494066074548903254386765924728112494228153649669415704974574963489983821633412015153835362755502073360662371351960770833545699632637980802253955468887892881242473747408329743058491324858417364190634957950653312417028438955530823918480006327601223292958679600056628114387239235779191337782848824442272559400514938580540266675603753491838329682104652776267704990145258382802289505351342515116212666549474967423360246392145701400991691343236811819311118817535313831507083703042253587354302033159230326486080836252541127467544921207789397494161314595400976949845185949964773780171154732989323872422172479050494341486934984403663863027837418401890116362092924464828322800062597046763311533298383180214739991024105984875142740618691836170778017543943772657620076089915004890843638544768999605086052487847514603293010372871257496876395191084451646259245791343373683798941471758948257444838239502133164535036334615445772745954783865793765197515490897388388712988754430082193677027558998881632714329536736784833499462221295393980349455493242691164965271882579557086171354449461670080704624534330490380187838749909841474382718787152950823807560979594956685816647982293611034336660719359231927435988167682893459510621813444170765164229039277758268797293975453913268788890420658706023946253499086265323170804755775353556513476281403635245018622431322933221090233683355560713190525613483934639233662014097348714694018818069825625224496284065124959393744283471094239761260030434321860374985986635656335706092433883778356248673201615679954946396457518551390479711526067361753055629111660348597077456625275502653098493426212422090087945454942404966103552172007841967484637910099188042666275241522240849269768587349719223469083911096157496484392539079132584201894000563107168464518677589791076357274946386131762518489537504805147443239869529978166318127150395259735863044481125665451793203151818658774854083283610334109737385495684569207311092223919332206818097894033954951414821376835687179139474363036163698838607765670035918706841868642952604637765900400186477550767762646501156432384517514296458856072742741927147192368331472728585318326643983427253999315741917918803270816699431108278986955442816421978026131235844064233934555424850762697838525413942224945317849200966392922684492847592290694014193032769857283169583860722730428063268107731600174993669967900557650534835393609978242403021908211076817037281119819751091355074571193700344915940946705494947953411907058968019190209746745523279444962131586546770474974535466540184700485017223719267140544103893644431647284144286976737302443208788237669138215747342177240918354265575764820051897995149518378556057328584275165486404992200073585668692986167831663203623444877995759247501962035699874030553996050665936450483957480089117155452303793545892778007643342511703104383706853633783901339619191846889386366033467205753851787973010074797491533028333182333592261497254643745423673377178717872017052752224843132052554303958822708397437708626865888718496256507683836097854626388790900127178296478819458602220929278320716005936289652793062548173751630950302824115128678807070966882735106825755516583760573826966769537065876648009148773234055655203022530421125398628369092698980420889881296681381859604179351735483500591770323970912340841952386144781456347994592721865498152418171794169700733182604592999880323283582642671835221451168043184304640870836415289971908645926240633755758662131478788994659675588483281304542393334539686309110902620917885134298270573636739154577838770730710878818696269958182073368685671478382914520694766155998668425506879098218035011682563286295179570100139239093316199845972515384679110047477674476028346329717502207347233907306077090308042879094358840812027668610339421214768246303924350767099834600202897870400967610719619015389893366009512168051309111140858878141200588643874895720342710369268265675091076721027669236758135650746179506225070789607171934833663353152388442325475264331634100316027427656041087748730056970768044628647528916429554280809724611204725850783389066159695997195669087953516055295996248963252593947415368064831136715416838461108110309643177028470776761807531530031549936259640560791982061754798928179040534615819880282218064709078601509319644788324732575022900371964560647792764656096673741499596295717789991461040019237926809466032676126871362484436622667516435736598773224321469911405168252526922368579129149718449634428117714178874158447143295195845846454090091790299953870798853837429055005350477332957772596227589663959925079100903253507849665149644302942590580970942023037579633585495083073996495073739263181571320829758764066956336379785822706872287032184773720285814275727439852953673136515796522078703278200755446335815571210303610858501640002556685805596170185033043997019527247135707664210187484302603309381070642314246094986948432732072511747718657136202075737230787901899303281631326220683831654525751027250603316386760744776750937069408556519418651074478201000633145553522159150968762065769980255969308548442001697413017703697493600481491113036484743778709126055146620768235262720146248600468603194339568219975763278926420763671874522263660096997655571490148488626461314484224576256510862068826070381488569365724729078245368200716407217987894266446317929672889037115049454671634334590143980504465556709256223098478396530885605012601798870029741838172761900658993820387773423207046136867564321554044580429973544534975511858975583779297898793063375834650974797934772980642677739661815610752794941253411100057164399144599572719802120785980606762671486374492100908141517880202351951270591396832651801272056541458989530574939217733404482906970652396636856645954635889305989327367659298717240773536116346602404991622553410085865350017913899736364941762013750378902052845349895080158928548130902826668049505949829161274458133267014295389932776323288988764885757655012242138143863923514780288000960938681572421881600587685020727979247266822092701019902854932710679622984470631405164675150060604760794719673036121324045329649387138637974000720025674569699966909900480100613407916406271722912645746322715580212370916491498852988309721826403631777316432300954098455193640989580073055687556008595647916395732782976163836144992402742333369546062784111841616006875163188039280734839066263980141354860562950170444445218800521899649827994345536883687440215015710703584386629029177945478492938461624804768027600979537467353570867078599679382494122139730257335613350554084238412892978860999933865110890491290922859757183032472170081398720063597834580196514597147921385294089379235935386567010067676545016521866187953889671812149045628097009332278192628566284927716882719875957595604160285359389967210503614399641033725030980895480508251394139080360515625115036307290850775716152326197630141760509778876916692197940257522793849700993941168116713725714185392056627889316715685686276912370242167884290748057307032874975018356046825569159055744409591940719937297719337070562582683959603877759162440064194319204908804903078043375551031197875419793774359724492029866017323756924956031761396011561071041949539194505116529082400203222215906872822102408831372971827052599393962770196644701963626690356298876407591417022571962593536227527739096609335314959050763042224776959558603865021259740904101446684459742430721236265935880161361612645496842635613610996967827212162241752254392393124058632939268019397346588768889117896016997220363009704393635126150809893254583496899986076375398720889990657120653828686620704313762009735878124855050422249394146056367765610981724037515628355722907709715537963614689745401447340107927339604777006318709248964179917453923571993437386944563038731375945771035748402321019147035395480729856020015847710795142941620240811421348189985220408866699422579126326344587122374417391820018340753925819127813107658490376964005715342983065203810316652495908136270554949245478945306707884364814593731760045031323481793250467383992569803928917745053163957730977541326648082147142583703802159899063584991343438629746768380167902652169702986177036165589247005515052382793383011423740886459875181594626813453203356556524454630960629323555747682791908796201737118228786057777505131138199800103279906816946512022749754729771552887370431565005894059996800267842296095177122340589631902311298458501367593950531259742166052114361181557839637130234751317398950210205023305677400158247733872389274650314241525327533853448993454953349700262499810249560812151859292199416707114433094435765699064642357877790973718641186787468723289722147383397369849753335424049804165175199703343869187970942866592068490636730053562613248242964357326483117205761532612773111256491979858438197966748102875684940979573932889178437047344235487203079814370453805850118048560699369736038753182048990943406503980488045865608962549195971078398735330658849596247804734985006813747103840394453515287083137345877418977084154341990346226663427247185482999681457785026921094566298768463687821658421291363643260653248655197763382461381626668843350827944473683432688274210094792889256861583183737463848010273451194881542478068672130694550673859677401398838500749911971892192743642676798668970837975589345882367588899091601787767836350944253471995104640348618917005268048359973200652575857798217373983438618063162640585611877443454074272978760740021709307376172763066336709747264633288553523215103056739447414932152342618510025911898902438121796592399844057688046206389122017931153884259457957967928290662574909021745999546971800151087884880412175428843109833643942488623920666879165233070616813988179467127450975751057926396105381929857052532733821713823051280204652883100377155056615089914928456727956264906844914428259746391551590498708131289258910327981037013666544220365806360490727776331024328901059089041104781665229129964311323397325769077370368346281646760566859152055313769058440814297666639970398312553870729121521998076910044518001369820767607557145993840137118474144401089357696192288394043108363788959668592940288221017652743032854816735848723185393229773680752605405462591230849165747541111418800089344865069550527200181406472982238596695761343234558299654407386459769485929808518861368839102187591535497652748699432900143174009239439288074845526563115503220987914907905595491430893792517367887057630302918177439346636629016629132505621299829134635357316570007870616319990729584868358654222392184500886365239514065916219226607248241774221849213983879302093562275725167865168996955824685429368214638501570903514691422428135552639254174391206616284719772851145439420877549891255091468731343049024965372863633719069156473907986316780680658734618617948739810706199446133670965960344256448232242566543003117940115499823412848846959063807724858720201823748040583681041979470498350901556608673836873770484924951922505493304957750100542488940311574740920538913680819375497507323061409249731927668832069494936338517973129183836307215590874963619947260538873242596450862120965234266590122681088235235360810261994663586302606381127848541977483635864070071755087888414683087956962220322809301090280856118546218826793142707910537784003670122608192289603136223560750812144384213911297856421817028555305137551187969615140266176231861432413153085900937003658846490037158145071754327387870918032335984395564585279389050135824902595927271737258185840040639331494909974776069478861927600159992113207845039778321066910306136221184634747726481705905437227885624799893219386745985061039925563902291235162182737335139821492108186287225091424094403702038707783559974922496559208048321986462830578913790607471992511244476060847265709871620711467318597197793421085526382980353215928927836573600745976034252942401084218923366134470077692319559950948341070310891053773758708984075440807895874307239173616009758921312395754920668501389828331738578995545425402168016932468950320727977982244089851931386549311749730454267774732144620043183344455519513338752711127274724242211310647620543144902475256765426350757642341623274352258086205565521333063420353823980110308762910921522822536096350384080917452701343672127287643458993044998372267947301824087352663989934880854632034345302513394871279378887354331902681835953842320820227441221207077343560632857455720682802317934117425798005858667139202095566513348392710448014276362947186256586716688181205137106409221487362212456837064156053921110879471311514361974661737939961902819894721149170602163700376875696405473255071329941915209258485556340871266529399967247592710609286233569938546538533616304194021445580763507239859301116778603883937226252897179120051290573879975868455305654924928960745414541992093626274728397408727375396924368741667504263280253966806639827448858790086091051693134013409403193039744872516820799332992913474412156107949332613096444638153533695746268232025785696721550254056917980275642822997369017243342973665260917869253383045866919206212401136436211469596031918558533931162410328581662177929724399692115938021274794803567691854178918497101708157023492323288909377187153680687290798853148449177583090342822434140475922719707604139937644520899591791371102541704012615238345645966401914230087539812201732471635809857363017332726847295170430634083853099770593648303124652916227270330558368693166608892534115138372067364072114679545016786123652104221577378201457344664668391355604101355588644458175221719164411773301725163542909257139330733931844549329975888105375423740182940063391922340977740685837573117566019530316210776619889002491992208582766569168219576232449925320620427897569438827993553265252719523231500067428701304954610182010406997521173247971748685602600210672611185982591776076631767208228150244238696553188802332570625376893463897920857622259560504391593934521353297708787564424615376900026539273966774866118676103929677235233704026404175519606086153022803627396092334263914442541578688595533206775287211970094109129790846173162281213468941147392702734130448543046302328900789439578281588475638002954640127060917898879510472091455562316650258918119155825040007262759519800716403276935697924907270518389065977844217511604423307153960011313777601037911332647961142892015028995116428178967464992537580732016104841731946434768448475042028000636196193617571959139963336446618901300319537974782015101341642244576388803736895765660228395067329695300940434106227534125157701150025347892739813445256573773286291004200593098380519374406469700901413783502243266823723152672125944572784864342925239729751218457335369158875878044881651843602414668858195397527349306563018329010556276072405313989427049904508604947644170183366181036724519625135804629674965896246627982238411843513118301296455053027649712757711951740025329754927236654101125384046862211207740573227955481965940071800273573739699318095559338238389383377491664013973965528119003577409771139506220646298634375008369890273555736357990681487295504627346474355795216736833682472302792803185187520107445850013026868271377323810177527155564023765028791211067360992481830482151293641527947975147764396053547212954753233849494835592084593122125246079369644978010769792804470900278297080782874052627144097820484257411413091864578996691623097406128714105410477916819877609785470878091707278212709559467439030446764010675772016265833255265415273780123384703455592263088554058150896131477364836282966768876242615291386885887502476465969348873006803753349106068919574044343459375362481762334023540544153300692157427968459009991310334174152061030128830560432828553367506976100546569157471354419102724365408612935343178558206731011172401858629144094521461219334074177054371045934742740137970684994235235921259806704703982329342577075162972387138457339610369543525020744818594154552089765253724224529726435594326837509949670280168109462124283450236887463061449355177680318346061457110382911752011266846994946211034528089563327956900978587660996967506752859890743480050746496111364539481063015776735971941689677470384949595865599163604954153025688437805133049235727939888161595279938389411231515833663052420775004947907902650106776060094408250686672152306624211612537884174846027976260681403494688808106532275280808556613445747379226811093214179594977441005698896833451661829120299962478309904895579422209754503164773016097382886748951259256735217394503363336932702836963794391795645746421132365031179242859048318735301286303493144755595331969521494141821153560481864244217808140304283049356109164800703872747667980334947998709186839518456942259209691783359161465860902252341207879790234869754385838196196321760637777804600393246088404134722461030386741034319746793914558149172521499924916018590023656466067779568591799142027708733344536441186242681462323508375920442526909227509204790935048656053553110764006595022434029862302672054091926306237898737326431797341185792483336944255870914545845659262727269922698655934934708698806774932227721998743061959058245028316807183181134273029860221901540574958896901463391816371089152931192169970853972596601855910260843588179417311985465265352114907689394261048429197856721729079132866027733585017895245949198138205025109321479736844313296415361743728100516422185445728875855199345431759838498999147021816402539858341019886194071852964105522363873406924679462914229460551638661577176896949909395430555674819804874347067573272344219946535245354420335494313098406858529533428171594639857484105366472834219160144061150095671023919490660168049674404218823761630671665869298643893995099170288641101498128250829518978946411596409510769868575543542902675136590768476808922518929289401510794033455683620790387263263938773160354900687977692239654567829914115680426542039934194705555657431660484490540897607649378146387209381559445347163336248144967673638794237105989506227892662035047680928592914332583075714769752881016039209140880539021871787310935241341469743050585115958013511905625829944338276482140896455400623949535043132990785313544856771740266052740870936672820741228145855251713548425051228419515986593320889883502134496891449644711560639703624926566140691585427670343936600244862224834067977161360758813139609001869493061122072808122611520158131224095016751738720150240616534473056080068402483443060353852517166694243498502033297331149238897199714207030626728506741782326030130081520279284364222188186223853368339613097586028099407217212253036977400896906585725194926512958125913978702180751038691996914386858131064272531984034581947442767889336356976849080564136474490637140325169228958964615101162792459293947057595504813767277911579876789727467832357195950946440164191716271004579671683852964527808855177495889202102214402776028627868516684781505431794702401852797141563470806698004867400030761555959479340268165250702704600418051457763788462623988638693020915199567805031140328883049696422647816872707507734642395488288211003484847013243086231764522973361063909147366827917841874904640078956281977300491712293431736004842484335003146557707949151139222982493098495577340529415719085871515887678081800115325189427318505433358064633897108726778687507759278084031105594119264288900469639879484297639077893622043781150252545187700824255645643780587703794875395672213455947812501203494604246503360319458255861819392514880481231998612716813594515383619558748518062268240539571342030148185346102520142265964632906854283966506504970577071636802669607758418473311876862625391908576600941227764669077488872517170325379157653164540377786512007310006740184074477613274418406305341660816024903322869270337598741612231520325407248406909946408151781630583708736068613108346602588393320038287919722800315890612553099887643833712811118574549818169143686664305413392506456198034399507541060494653971433322234017578309989260056466505202906528889897573877660206722283481998049638035640454915037298650519612216178013624549555631337088929812051584211635255757315149497249547556110502750537633889879968097343812146613057690866183557020172674840114410799060260731290355739213473774608435605406455392811697283783562982753713823383696566150112433585981674166267243410897275499313809811412790063098454704681724795919772132441704194659942356040137261752549286590855514857450669300058676881261396980286870013885653913712243336145411252407378649679670621086849969341199036928029031488595509027419015893710062322261909588894658428119581984365518892546614263497565282456032546262111765760324731856170105258436319799648971174081949008483156863984796255316163860641695983569797730986158726320443178735769957185367008078851840689515786491117114491312766392498354265403164637702882831817893334062594191980082762313985741386410279221883363653733020408707712972743052171297676215242883478746174756716936175131338574579569785005057516320420353567479384588108006043689677189860109525842034286684506459155864460073666830920725574932562790650094979435967976514502622410613620940849569262644283410136222344177703143308264266781649357491992179888863922258352844241300702113507030966080443823983889648871228735797694028780612234258468451678342895808421466902805273267698810046237693474300438132630134660030674000282070825503023690222426368474194779219639238264903527286022904146130619611318336821255241794800876702708831141678421576499396358358949662261778339665903605722992703541931692676876531463585392628273993983466998121734513667562505988212098874802947214580655739399339374177792286427197314293937791539778373623465103855433061799793193471924434424132192624912753908446485792868532997021692618850959772957963467445320295722018697973861393010213957803471348177290329186601532921076351229135806076978486200216738734476840406441273193795719763343320993496388498169192540399369552091507149394636645702955936126936057859060398830325212615842865021278594110786729391654718035807729808264088276345935161614362620065633809930243995124511213566711109113798238290912924963876184166960615325652369988369718330783363493863957369467189384324037879004819670708408545736442420830696530721492362804381100658251882056106932170884481626223689748847777963079349564549809614288342030997999793303029622301219258416077109095296182440455120924176055291960120620671455361070683060641744820982689376125708515450975026684964737171609345431692750871696058404931466624984325658990516018333265965533301934738009000805902666033810716283217222829354916655530995158267837249669856232770143303742472009897716101552359430519855419331978138090381983011917910456512279604767814970682769095351031165580753211079853532419242268590451051140015784240394891313968536850385327076734575617996077614166933858470804937662805224990699378856792140648497564033068679386917071874052739566151368311847382077993634998465294304804970921197215469307793873640782740002641233847824322553260531991897149585750469168616193689324143316809337948118317521539118994294795234099507080831336181834438531656465528489272363779977521758744096421493968589237498451198719379518667629239475294850707065884394775171929150757048074877828405623959891854915405387780550795212999833746909381640920087701396057991762647256383219821884280518573236475963819077502872940703000338781360256973238134437914352215180912632962717427540819618473437703409032525286599134200633427935410041887315355033833582928789446377261468901874021952023302076558096573119051564870035889855313994801271339341119021044531765376739433018483837631691827394144271715101716510556278059414493986198933466957208736675198046318695426926147590176208408146309471184108155055700033430169658671988269818576832841596429489455513729996645862951862826714126736193032730910341241761260919846800967646836231428415120090821086599263223888294165452688733319912465658208842578392334289346167114499206499709949422159929578386569479040689261317253633704135766093073701341427050282336670638567584695824711261697921521602758474156720970544788058501457692640024080934622040590762291989190439905633305311912766655844030344050641283628305744090387496142309924339126947671724826463804790882520140526451658236767699130867718723913304318897132645284422249185661598061688602972280525335556536401685137651178941540289158201033874687085494190320672391949297452987644221032353919255953538577113656021898210966414080697762022889754343453806513016534806724750280836462021324774727598973282462560455991673442827500479507332208301077984726561608835851445097294059835593118566556419265538084850956714260611048377390573187542557977943824777080734618352945017353450520553784971304502376110985821946586671026972393125050525477191742807383057808632868008212127901601180132487317384461423247491075606312122448272119931608317464097713126581720293714845816299867072393043142297117128944289862933743499868477552411142770914042432279260191898521647368619748318740629346056596526249883920138969023885414718025368238953041580270104595570490956360148515302119504547170608989239797149092887404077512862153947920589525646381414103423255058918103538567016794876904728463412462726611145840783783158270398364565678503664303261734269266568284740336475005559322218004392967802784446195837556690005884897054660771258502323122216574643182597794945861901586671015691203949051932511972710370786940807753405527280502324471593934847018888319040290640197185056057570500476021675275147587379070507780174553045355726760825439377678944688223354226307197009778115577395166429128665736983622482933603498559451834276450381577622625854587308780465660478260108797301038535647555862765823696520816731753093133178540312535333725171324019886353750950233772552426276332398115499006305261648303151292411999920454591035556416074454384288673492639904257502410292763323089754033776403415912235388433110016211096490967422351749417678415565363555136733028232072254328353184576778804433293236896987389109166267353348706795793828486573607723011975107001134688835138224435935763293970570842860517615724084727383790860613658553924347464959888175842284794454468144085484202785804095490502595593174950299397905008093483469315126005064145071492714305703833091628211717737088795019177684593235008709890638732286846791473999684045329881302818657914594472782339901166411555907822341219157192488769405785044859314553913297299537529633826488574328130669663791286506242553360931101799350941071135740244599489804188643839333008323400748463303153066805682211339985555585620196143318848761665820483540620335152802742135068575922085301884668941800622505851879796949143972300964347532085455057234205891973553835860843105560646222465547165928395122923275180813325573401710174293747734024056324665248974707132998927428008755876738865398930452715555384482464149678007338841645506553717604265926937767830927889622214473112602577280963169458074322703261843909650883017631143703414174363135175761375336667989502982199700473139896215694997908743507854632594270458845016245253484035668168001570809707442391566360508623528866602849185233250628255951899578998072865997067959377362223520728989880496192365029248509637797043082300102169257092325795395665516447441787707297913947276986517510919320011350841988232151095910982448300022071790086365854174850612694105658914891512520473112034282270028119651992603973170544996017134908660011407852421337151700385628269398128240503048802913996168568810954878199645001201682694990797622658428623696939544432614014596257346500564523367040783263219946581112732293145046405092546430601992624074569319671053342366864065766785482078607731013424651547391910478339907688298222642616686131399065157340651598359830657477522743035152854743989219661491362834669373495625095914124422962177514534976632293685505524114489526869708280432271113919947205600216438024233586546499445046440942168711044061388802375945749057388588625187624858647807703812736001056640701437670443597309122450764464178243704068220307285760967491061459287782469389651153184843000809597560617100715145403557608103157225677492143929446390723598807461820657046769286773817801642786575865785049071820565273769526905010840633194144242174434052039964225409801538532612369322022212508562689991971876138356054713149143990231422144986737978832929989578641102692423552630265685546417942266452570663756572980861959154087402754927169936314538273030322569420693272835636194161537865909117879616951237712091280795485399743738897599614308955323479141487788925204816767585861355176530270053277018533543611183980637852824930494592059819166479144997007025515238838921820875343853385206474775506289984427292845735301606108925935934483610393008304710183917312585337989932722631786284417705903703169095538659600947204395723575627377406930983056154037987607776775813794340633449007110283881478103944313462612811771143979572742088423335922802321328812600456030318715203921739894762529024853334729245247111046702044442942199272479544275894291503591608748736403579936985461823629340614197290101201120758616801371869683826528547885010030083555422715119673369810340321484645573703015530630343439183473827271502896766196299937096663785141050870200090711983276197661425712692453262875647828561935793446224758851861394890608990241892506560526721565232150284189896278424935971290107095656820817973005951845958934607826228059118389779829091209379976033495229868154488448800610952836975930623585120911503483141077093862279066063240530216460468024531362371848203024414456244463733852429854341484187412737910944310428497209159291130107114203827790921178295173167851036865653798982781022472222327425725333393343122389856167235014599448602694447427174724215644170508330796540755688353129002830919389266407035496442781094880944927065251134279200125056832997704165360941657173458437035217513922060188571154049706414941866024019386576349829167332357324741362550072255922918647193149855685920890874022144397873156868738529629484900130787858371566498712439752842433255403894293957446281862601319475363513972350161659064422357431690729561495370875431281858337912381718307549988217467076261491496289220053177820823507843013883979954794508269087210259426534451051994768431240483045067989944121727228832316382395842020508443833356838050966898917442560332299191590856885066067974303368549438971324970461382799022496118094642341021824578797303947248064564190069220678240287376370560670127841204014837854031686697968719389373333205445257134274337091885260154558747084656366421191666893797653957523430013682322014275903343310830103137393289259154438019758789764252907533420200401340830535401556322922439217913097597921496502333133711074228033313276366970602519049527778759683760001781648359891201032124053299406762634033523488774328225750001528786403952782364415390286120164212160572489038303149097998039538065672500103704834141977654518650036980183040117726289617747689048793371593432616940134091902481994136617898555228690980812988550363440517967137087280127884756028968075730225386797667679457553422966556764133348023925316207142875751042772717976425006294027098109357962564106142456515510874368165549164545113384258163531809663490562317234702446919832285982564654700130799082521801216621434791973905625448982115437228048109518997812038652593830752106082183282213596369557420468432964237826428140125689555028822158093866634872002697709266747736349179229295339173771201697719295046711660763410422538229815318966154748080546020350524686919128629632548407336922228725319266284090424588578098560339088683079061137064219266708561814934554162760986122244737313676456472844043617496023252854872579215437717701855307088318062111478402469690550887296522726093469314834547714201455651092168166717827820143881064441817956650259196069756659153747446907316846141773973632623250323027978022563493567450088942666200271712328637434386031093375941192894280682037893401993721397775199872851239780381549610900236259578758483468213045938623841681833771713635857008107680472013264400405382254696341805338783913339615938361282106498460450390442921844821847962750004282512761920122297303062295901427613868672642693552105268487944775740754778114518232850081460056420381776964417740211834908866961753317987980770448608410129394868031529662194755748283546586354005272967391766679357609201940980995220719139875528670544836300279730141109730038784722426247408453608123916255514753317647136067977806484714606208614183481123992701965321482391368294471241943047028070693388583506531379606282673883891201146876686762765659547398457845646719612198310294462338634821708771354825201411362721270814354736591484839807446745863425715770724019181549060870110537787538943653810761305761585401111091844067191645300335922696902170664274632200559251264727366729788753364684557999722174910012767807759854793055330831274620845316787106640073810932747693430300142086370868560515769553954498969573828436192083018614692480978920748146722714126946280411452369298042242004337796517843417551777072894437344678275205894054320500554302078066386337645889281978442880098390652276611853763068693450029887372969055798324979738413514900927957057040191416816445065467769278087069806244746683278828159435973066693431258265572555325617117115716223385731238944124736713059155585840230801821152767822748537417126195868826581955351746232002403740004111855713633478904046792792095640699526754425479618695516297265790184391677479628424834637664433220107630950082732226155958411665081495966918798314277857144596559630807572429626028277134803455920180876110745128671187054330632049632885823045248525044244550629244486976733351219679599766516486788760094297004824484606163087080868091321901136021293959226298768429700182627446424769905776754200609949025744458358420799727498461126035560199054246631915192456788633746293491066192218555925728276552450460125427676070916023988663666354844520124278765758423014188362004825868497720857938832796752546865204827503957460026231412851902365972291173099173717266638343710000475781022723819407969625296071734368317494026714363764090947060495276463966504902856832781707803261259615605280815867266357394498697202880522523697214200345221142340799240481003686242923276903950460253683143170914783971056612419353800589303593511427978458663429281956620800664746515084516817031799096915261974613352089200720019665682487939010902215264007597292649330254274583386570738744987607194642038910779926815913155947934474426638489379558787972639692595011980178889307242190285208002292834546160547269262165292115918422676477620878655729777508759529190957475264163393139321250357947902172595703333126480104006108284806301340962200566039358056871613079213787373377731104819407878526002722291180727109669924174858683158394677440150875989127916954058204269798723832963936726114821246476900746384362351377253476759563320414633911788276695204702112997361799855747645893704122175754990384666252922362796869537595640993738632870349162945312453249281027645897576493951251140383281582071430432771034686668213249656186387173017697772764905754423644527600931405307969100000477209923067517760763698615615154791247319837577582237230101036523862494729564553049403023301262008721044840547177354056472601769939600646467977008559556804955072610233302586109126335735433328822881799140596174706666332955453796384414987394640679509543581797362409018297445819901187713228496173541871875345616126480327193598366191863139778094417472371905510490080191772448265297858747697446431630725777166424721116672980348878957859698237451610386287191795770205499298657971219011996635815991745850719750444075436120834614888404395278523682519412843937281663233982606484928721264223396130810946693739081750835173342360571198351697753363497867703296791121467622128929631097215268326416752057748230369319698617024222808675508528494561578840108231833019148193224019872217472419502511695185978228253553417035800069029338976079572393443775455768516907598048926279054712764534476391652544896191883522032346017669080502009171528878122848334222484994771486835848960240771062376439063321375360921652153238179949436182630348907428945397126760390963693154195441481045250854130269583642602513598243021030497121998553790978356611041872897662972456905522105260641261170236225676013686905614932912893372139458010549990526197233797817565352061064400825115207246066699358232368479510176551639309800553751118291286002935049766344210436244772026408152073344636074318285213648818042636093924090554464541193959175786189059128982051664845741981882870172870373843798303821311964474694134031864349595317511115572052228894575925154950954642693814307840898656238907917029148467196285602770649094341043944574367101825789251799390061654847304219904300596957037404031882868538356142491792039014510010940307554653904675519350189995056155221732737002571165198192360124333425976702297791770151766010180468312602687823782730376403434421373018790187824999988222170396575590858746715286345600844516817311710945797790991695523967001438461937562619670001167691692814427035656794764333837278451412984327627000408259795898816583763730123245675968552975874416170530232131848964932250361298137209400021049517683228125919555840135465311833776607511996235304013526288405099045103338793276318403288761440301866704970087123547464785231088937843931113635280853157023888754919799654491318643987151396502561652903185870652006585297843018491629014880881125340504813724058166828068816552045371245190723208507285830435320090919402488850172151142827428712874482553323535611061017190285505923354422107991645364985965894014261704001702558063868272908984921005361296536016837310455783473036567742843548751881642782832941409001770921929408328034326526299811560495046676648737593227600824992489131093614347703703236738678125037717359956314514468415481242562648533933198559309631902130247091086356015636175920458538329908566118294106521379081770000566549619621967245199227336100108637736642950604541930912241543041747981616127104843873549173034286861294914455130269724542496756125551372047279097337397619352649684615919703129125140818093013539385476429566280492286879727253379758602800095930199733482334053516714133544253704008090318902449035586717931081540176923802196667795834624054590325560663042464968097163126608008013698064787052206932947229132332979921783588530627866030327476549346128333751786313166641940304364131522335079582715388306804651577277713177851141333949972398984727107075967779324258213734183228069193609629313167349343936479244238998936415735392333551184339138885840435781977507520116485285312118966842698887750843775639305464213856366847305391028768551312702499957993702763461489086966047673547942184576683649605067525185483660343870514909884532287675325263557902643806702700269653181039097727857413700628868616129568660843129297868503641278240696024028115081108017586191913085021300110005861799053654556369406133645393902236334020922035042878194703679116851556851805282777197354087143517651298715673011314586200068186286917726299467709801168068475591065462321018303340665332193247926944085707952858734825080055814443369817482861868499860093771847798654071575580823188763611104055066659011008879733520229116328653468667194517164909089895243798553478227004607370974968202153083140921825989455244626464995573586072065733465131642551759739490777534230047463670058012280626291209160261395818829250979137258035562873435532243339820413856749268087246878720529847392861220977415534502512895828910514804606600141573474497923058125686454455779720707404412364166252861978654169720786401159697176891244835292780472453201986641635404622928755786547566536031408824014623135034123240759029379842968165888458806636455859244931508140327623621325368235445586928434388775874750086722001899782220434387580966482340917315873693937546224619229339600831084354629996378028623103862936585141629524089911082638148126363707393107470269602186186189727376381328639632589106338073308938740723195482957022493996357325052601783181568419050353631130360158224215593599648102909088759431540885204386721766225467420866397259309225975220036835763831978717776395593738148318028658230498922571586480348979182874200233183541908123673485700053529173251377060076881296783769943783042022928896812155958732859582138882126760307526233862414618027456629997698975002376097217290761201986878484633540761172609415498693266957923051545554050601318208207184407019636385397018663292287586327669500899845125298779947855374679954975338435075822248141710141815613834223789744079020717078660211226160437486658738153723899272918757883021145109127131629604439896047312745983982770971947251252099132814890936454887488200096223283484319383883387465395530713112037997056604501518484271790775553988065224691284499564861773763516420705114414650974871724049217439234016724179359937699763510134551332316640741386366236172008774761554932887456128817005919171412569976560760238273018308034432824107551740583334979965576085534807854821035610933126025840207210328716836762580711159184973702805946991329812677812408077317708418774169795558922374626983483357419224499481334611010140041580939450674478898719194129621661265662319687387992471654008088973156135623608537750682636326111844601077617076060171183899969317778356133451433161961653894413644951309945688346810697481986372103182330233265212284411835898827335827393483372031141081849277765409528159772114864506162864286376090357386482201966670368352020266075106394199775069779755459154369725503291298703713737975988957083435481037279262287889863255783446006095685215691653125491941918143330027021069588995338199258300225856756446355826701322023315912180255473355631170790710486035180440023736034803331804523286738986086057698962880548705510208171946071784563283022676509815157753533962459326565324773680923282847825898586460058345230969206176409996842031477159825881278325542745539725455585888903938118522489666841669002674059645428552410257778040064993737213101138907830912657868440764969287338331494957474383264333517476941774357988596599879700334064987189226191811861305683585301107874218449237324249881688341254332591901049877723053518248057011263797506422598631660961384778053988397201956298376206474875080053015286104563570031351007977760444383722641167366691308956245059466476334549185147876087676798478361257111331890985360933594652341036092984990965792785038918189994998032034405258989090417070312112857708576995350330747489596965111378318370140503533757497042781611753293975347288883399368808910443360374499907895391821075987846473717186789818048112967810994618290650465744948384358309513753211299509178397180426944456491677796572129694800382855153495541129066733889580184645497605403918400464792414442463511620612034039149489430676747404508630295957777059202801606669966453000924177714784018149376805802527850158241082837609423463478307638521066254391478250884332268787558138839487877473150686427537841850631681148074288910682576132883807733077311110763537429831862047590832273401060961610601036056208815078385924776512356312863626970918897219456187244404838702871866163663714308078365416087025001869120137843738933231275772719913753716549069036802598673925523070278169618263309509434412227643876186677562845049385007457381782532154119926604568949507642011847765534999114795636895287318643325959725409654374395358218705995378437200985247129951363020211321508878470342346543330513443529368265955777405283641348470290750772010351167338750573234950451026597945753821910924184720807099795679576957747064656296446184394557372628851012364297363576665786808169827896125796211244110868605467936154787818305594022330476971727127469515207044026817519377003550396011786266005161297205391104841503962495128813033351246923809176026184138636607330635929721755618762877139452624674872849611859669874685184770504913775313373365817889885535449749463302787981170043284490011056894218742556005762526067690481217882633905538388124734340571213971388679407169304303184242867505702421792570757181821041524691130057701663058037228802957595801252100806131503725687495895628965095106651493233271280924299560654484953491566369606172346411381794274075726377664366159587963391903000008399690902861809134217638386242056252384101527773410329399471028147309680147344503824324872777437994283241039654264175082725611815558539904949528612574907457059248286658666339190342629350112992637543536942811531488580414452562977427102141038318919806169210791877980723621069989491254787102660422857248672127521403516977413008957283069377577099389419657040139022191047822802020769495217482072559554559958491818229960901137109189032979108629588021747798691869289396390632633063875978476515714462945043236181749041954221681527631490987003687519048672351962747390937307451946272895607191641836913476051141963906526996684696177841605217401579222142262114985056851342616057586185171098041794731688748450854933957498674069377279889686975089855614615177926862180965601135784293854796535602088382201004308356268255661691703861519269274856349258074704133407411313553821576093051230417682379956195187798418256762652361774993140186391739200848999029660825547356072083078752416836295427630199376806021834536623776378652293793396639799815719234926360155807242083407648413987689882834614798034409387369565169259125532227697649018385505256902518242933938160858509267587351289297617252500633187065346749923077746468532855942447132654905562315572577721200695223000004198285618344730861719117597346440621409010350074605246178223771662836313931600175280236613597229006578055958806251698554748185385209506134385675356355488047059511737104450386898634805930713125263853083131626131904812480236897737653093234484954119021246788349565327154166369456843915580069235560681021116510697069574025315063054121867891080300307759107663142096785862573634853255559688046726726994487102179958157849655300081839941935230134671029850284755663981795822485859737653617304948754286046528423596492462501172415282564019906499333015210178777275770609186378380944955342708268828406743976236740599776616247971468231015561674778216999364631174141545765544938779220041120204473849876323304347629505233735930238170467477046493966317350501554882892598516838079532831545656342601142394166591287656393706645929129767761931695967281418111272164312169521726064213453937460765175769541121603360368257390960477946003066739271012867981977656974708616510626509727932366156838853234202718985287795365371741564031661368818727263962228198012179822616996599234867650099625627343835302865546566489278916655682832114003578595957840688019169570305467473928249770168136834070376501251873304620060606666851619836225167204932780159487141039478031601891654565845699429023040849433212567284579103063073728694416074787641673819724599402921064636398833402494257033501166939979451129032553290781429576061263820635436648890626389680821808992431185086858650917427134476679897561777341218424154072625799362587432303425834512387169798991892034131124452048209258233772992355003165234809810930384986189497284162866948330433014236222286827044036040073839456976886172430035188581379854940224593144402129728056284728087355425313132235354654365900779285408670363288633672118601215237552180274080229397518458009279934458123791825536811535250303792408403634030360251214809601890419550917903101965399246933950832421748170717494809065432459270567130966229412776083783208195649488240893539133374038806283711200086537772177935143021209350184468315845795707157450147334392828703764212562828190310477775136662243960929514165800807363173387012150176018897584747873473375043128142326722059909789432972943307180469043838272705197328747363348368684903217380014729356780806592294001287160471716654712955818644725760059887217354233035043045215864170940337694949301692660186170981898958843210647286817237068190315798180746045176485242960924995601059637877592853644781140587094327098992764012201117441738777144110938471573812676774519320390813651230217433040724959821828998728613296221753069889882464219396435223801465282529360482571352462193647942403958501330916460252476703365522639561210736210159665722402429506840981549123694451708816689151883828560385413874804311745819067852642356208144018359418179144618762624283768142704845190963413587994174579464482543282482823856155595201501637058512978783606976471443558874945978462770537807476266493399598910718741165388889272309760290063971004109024487887111617613511018729840330241015632008154227053540614092170648302990823122647933605088184431299133190389169516303950171436711098345670852087185041931497356630551401819421288631639472869803826852212638393703418902017791255650965367687087061489658361655452237406884416207283409905710445676901918625265410725191630361034545385280911348772387968706360184548634074913636503268468872964274805106771499466355752907400210267992050163762153769314853710389817750666030957839220909358015696042799452276407750504304048271288575659048371180054732247247522828716112854270515825665213340832264895343651359591249807565401029795208771393141134103316050235185539104053776406551817162640938290629343376466995790888129318974783254655119634088712641464764666486093603296908241653526000227841695994189970625049889611060583960552722423648776327894143793676452810443431741070242599438280509344683060723161655832817844993673412711450717549276052043614584197364892142349945486181813195193490109368197585228991323666103312295636575582980459368978478091460668454310553655710720637051180675563736673709467709215761120103730154829438355821067629715194475747281596894689267321783016926104544759697649436577522046549173344450349412250580836933148184974144071311823778103483863384942301046117143886738445156008757142251385661396935837230305088454202980732383917474322315978612211299048542837554992375424558854593876637047678886140968305090859462923778971545248861761300581329463116260296586785641974013520157059414506940842102962323717470189430253786768590830400798352816549276079534096912794024869747240588849321660457464074473968549856769893161109056808277743313173879164682018608000428550997053490880087203795612830504051791261818692615289052725195157524892713281509104354786320695605969488595323876962248055359489975331620049830271569149239954100306961374331687684837283939589762815571956999501413360447199456318128403556941497207868284275319868224138141625059189864586830840673551331061256296522977244100632144673062668616953542554210622737245113969683280429673823915701265376731592763809315884832132996100995358779270286510445685128313947174703594427661743023861229299466473647588168177340321325004411279422472302344121587618332178811612347183406025479426572092187081912570695412246400472893556769856743372868599018094264783171283921276797242158318600395497889533366394395410810853192264174775758967668727592156468175925515842190477188408756023872682393498895762148185264619294566301731314900799392417817646515208684025595820350727578236311765431651406477461939841387402835408747537273590725888876668172757203410211976992129287549513890039040098707669395410772896437202740929890765996957170205498994386638598716225181430278066577673268217135303659678759766757121843799606331834407789651258727135521523033880732324154468623443638593987255342932673856312707218263348648803894020396092270768401595818571934279882350454305248699041374434449069065057496204868959978499254808898217998562867227828896259394391802624729486581807942600464838479187566440674326694462059840010748108052493559765401103890500091133078438749577693619287470109223548099272124925713633034718765174459977194482633828324041770645515076610905924718447297446794858930745535769885569746102984049245250112525234259809351475420054216752491494340284567621820964380884751792937593736141756832300084293491933426024753780597924283495686326950882701332931681001528023466269611633936146602490767677957157899210101445716029399010857380951218099808907946438545954800394808030844304089680944115203739489437246508557289980225955369016638222523685455930915791805406919533881044180830307280947131805344947450091300030764998882734441979879623668486388801584598761151724860145454227803689014095638249674415068980083719314601870182959891937097770918965141305561088115439139190744176634110749016305852261472431676510741972205557199533407196036640835596455043354913976136259848303715035345276760206393011118780181560167998245922234425811837146129731913946033073118243250251399841324099562486032336309981870942405345567273532833061749634880021076421839238724755529880153973536422489938691910548353538372023007078568032478923860008579054495627251032600905097689590970603308202608254005134190294935068444513521063022570363139024626524312608241588226104612575874950664453860712607804473668297360094418437571169615603469303031767966902760457973885399904979536448159229674088788938920643351939371069108579894006288343183094396913945806748063393577980271742826472349386944557282780073040912414176143181381910563678547013694703396920573773271282721280062021342926294720051627886901197214938500508309265025387773512994523053146559637894858984845884093749897176711920001912867607545964291748827784229833395044723304879280442133608312207426215122645573333953250081153983933110271032544599683550169373868508505647109083787392085012967638953389192796846439116980669128891549031054375951705814266664026262038060113619416741870696130896943622079656585798245665371090609780756559439751899076236671767910017577039100687667064898570385185749872381215720849096605208457219319714310808893699017832337571569355259221702180176681650435667603954894898707665792103146846633283287017862945667039038456091539927112170563838030624138240147928696635630068169797896242962842715870786497410816165994800282324850625614143201494060868860891434788777132712217658981334710473026180847641381124135661407460050952887742688356979505335788162611872436254191027485215316364620496558910245129636989792097505413833393023188749577216628990153237499301945715604324425395178706004769292820316085831518290627342397011045945911501355435483155742488364214309448241773659459511951619766071905837987472102170392761357019993875784526952644710009463934251461626790029929218853792737745148724600719912328156623583604045475707712746775390624932272268770733939449728758537445684203145297017690209023430467145474436002675510663096319034121092083831493739611179584188053801287531135496092322449683087366675996800280719986347808713861614158452296090185811231785709320914901848708565935248987940400375516946903301154767408818273210110223399044722339912379321785706014702228865062375003428384323024724854016093403336177768148160484116754367368392909671385783357975555537823410596743241909920588400537711924673907493067815569990102273172695597740286898624539078491420578685982976171318940042300193728542079869221261169061183926925127082414686710499839483519211455622928182212459295194179806960390425018151092618528748365992545839674680016136341021097178846456283544446387770579976486110220884462380761931343042664420192426992050999963256839940779090324291037099851155650551593590238414379053732392444362908603008163996206293406806696496390546872625192734414995763512249930288611025974625661879571420149315974132130825124993884581105809188720323301409823516478506591619537983751654611159409809119109250725668779003158052130781479505258370508977374992949273576075384360494924667599196606008496674097549390793030406526918548537936343410932139252636623215660081830376783311754064557131729622394267818476332464016863758095100796356199577606412722186576725425518184740961440859942013768995048323173128121423967565987442975795276814021847453995108462317976552239466930513011960301584353410022487752034014063443402411329268659342368083391042373237058279261535193278254195674356475231069301973767959396592972289117967438727734645023023037482858931143871064131270350356462862506168510635081298585409584771854484184481491152954550552682518798197861048790201378085076541809291047718301266574784873328458859627671726322848066353275069600888508151382949352525411435486630540299917271614315212288099157407779911238808738093488811901296513353114491199956434961631457395197409990305509534944648670882817283446630811029216046665416753207799506382853987778530746288560247470476754997690137810415795337213742161704933407716247177621731539089452810123579273512226773181317183435923713831857177971198411410341158546756950622296302461145171550001418199551801620946341224043405514067436171634266986154222902249750239156904937857636250496996727748566146719788780960161079344589589657186688179716364879744067649316201613704015452384750986083514038982398121978456083303786664812637030451689715093326331104192134533812167149356469231944534736639245542467233210488307906845072855555586044626103330521431089669442891050641331621884536653094257870218785294249927017617466486603671650941965893001336549595903741303055257524904524286630285312610606583025737696556229255549260376188254448288820239864835728303565093626603836160951488461097083885122896469265582305425432193595874784664463094014777529946601343467679565866462780539774244171624767729440842618157101182933681624160681542289347302190420161881273256998360985379659814333318211607753117183122855375992743503857283491737297731979596512025366550845237994360411880215286662319692693011844074537461456000375520186635990206476812363335992688906638833915873491079724638231921805013087272330130844716804665452732465987009986927515752968005010523423922533349325424234872532826984710580940717809905461753493728639537244897173335258547430255153109528398716701747657685693488035184452642463777372764276863614167890560636653944165327333498140565812429651029328298947510923301700972867287988707246554753535110391568015685428049060756025360841475251088012384750805783480744314686769078424530916090502292319626375768531089431795395764206803373076003330193181429378600804705984598255750049603992007358019076492287474961714603541447305126432730971483880131186914426719708601905991266758682056695113655527443101657579109288236254797190592686865739549665418062617249509139407689658917541447741680914475319716461411373817974512796665246882080649622714264333250670830289352495615766745884262952167565929405061699673383436292739347255801218329397795377841147852289545993577027760878700467625832166286763632136215723361592945191944054030893365400059391025625613890011702918963830057586600658258474993081685113037863027055372688531163463884495377824142050451095998636298069654608440274360531623589751189210793917417291646546589564273295722004844496980033270840983238471740932409003888923199601578732476069613118525938083577694127086886493744020837185677360189226757659284962704733305238986708794245568387783369074693183795092388539726858378285640272999766002707921123047636746426836180259522815875054407180015710673819817034091465113753977734414443270743089379704432320621170749759115295252637665037784978399335773480178176771636121583123084869844574185737717000104399199916368139320546527214384992276827069043804879403966210926913573617122984117899027866936764499101971162932816960979856452895074904370279856483731270383184604437045937534770129624757493333767130152358946019251551347616872336170521739798772343502127760805930802853568315667996868092743031424875889960203096110941333515051254131173288840985805248746348350455381084868978035001969029484273736293999858216244365316177642557649679341758708881481539430824150699160865616584392921926037682531174322870325275133159295077576638471670451973680925564189162133826795541466161964335679768292419580942842508269616883298807999656653118251910183712798769964987031235363897786714721218751040609073226394432633608388903239704533766791375558127075489165971599735354583724252844445087518128405309700439983506421311140418855567230665833681881239336086021958793069068095618023886545849865808684655677304742136683745273001931585202865914074505360804795736571108563811707075187113362464201127847718374632947207816593119245857053374564954608721604840699726712207636857852731753220113456002539823419717496268800490986882233798450748491169425998662143379963750017652324230798508218563941986329722559716814595611025055670680451281859404668403055174901793549269421829276430905441800590352525341917609683280885790747982264041377466071568641313280615478677195670799761068387509854846632030208484243667450968602276098018591988563491215139806862530842153709710008551867489230945956009658881722646292165636801235648360313327157317727231382233979711845739487773708809622948185763331125912774738811572174947522321948956727745491023045495930100381713177195086663564792704550632231218620931427221882337400971876066761482224392618129037527371831686397592406039718220272398828999696748767480182835204553232614645917719755154261211083295711698878509291242451338604767626216447288300406664132391724271371194446306511465685284018614502697623036082352063316878465097989787990258575508364453229731004530255195749266129052771400725426186076820322687958866063661990717518048037165243378966269730635426027262264099829040330428025894822591735639070922712942482887000325058247260679513426041115917982428497442976265548728190610166643512102387709742136323402039465395706309201172142236510559594708741330610077835902865408437668946224079299908991469160584943877614079156197093043205568753885416234564921760283102679117215858787279175017934336640245639480435028600155021756181462955279928050528252826018207353147781891086985856804976845641258713970960060745014949592468677084193269945552613164803707062433274783557045383998563316165089844213057505340051107818911658865022147279207679339827390138861823329361086163568422230284695132909848230516911858601536141948555394039414500584327172770091967400823360835996848223493304630645111038872438648566091361531263370405185499839709602404215373949035342534991196928690852346070124118192205976785057469715155079285302737759407755616098419410151508214487712471156815928384471297528681522442379422018778797640263554777813212363943099077201981130089236473593814742618504831090246540648375483118448945070102039262855305645964814206462953698357559144979756026887826123335380125513020427188517036027146625408101526442366528155649711114159475272978264554349181896772316801609808685705164752952347576529591277885960915123850986169742273212728311511392515577158038278977320804136553334721151379179150540792730188541995101836175531384092863104874915107273025418674072499056880251051683210502026584707987086566862417041265698774622511682880672752028956254399273795549353348502570191652427044784706873133504472006098286710220298977194376107126520728526765147229370251970583724275279686851324299915069023981351327555279409609214685298990855483838916998084279007663162041474883624777979571679594217501423501173240420384354419801896658040036281923799575451805873239044602195345839532627002404475679950364456054245376956651068960397361113414256850609883713586594162613449068750669417645038680034326347433649030780440576084017134992944101985335029911218396789953391690285396388509123813318917071860054803272862077149184758668334426870007040473334793137973985095646124925961527037784217970742130742642746812369782307085741303764192044277363872192088381966635937067828930248586294467697923095119252250642719546901870174747872372833714221778979360548861056010949080644543774589299676986623860709030363695509980144045919116516986977930259654406932282347460411005073482761544556295876276824614999944323639542972412706871287751141121320702310706863301198311384890936421481316926624280860419607541257996668594834038986762615191003026603176462084844119149149739745126507838685291205092923504550217222724001017376295922488622042469139044702415311417559559594985455928770241285118635475173963506820682999706478242695167808205034585897850285244802636173078009558712316395257831599139023770025324343000516382315555085294516152699278989447988744075237913802445684173885238462983104130471697078849415141287184604624795188523056829722735386498187296260463424446913983862480087806288846238974908991848511854471423687305524543338891743658918632300966957290358686687742785172272499937097812924555262662703169776585394730835721662086841060616071054447798927762548547298618882002127539417695157026129899383994689428399531734110558687190431653768545165300704526142051968125916444249213048726083202766511027089443997914647789781840146404517452104298756121829962409845038925362770477322539875554644561626411216616055493079105470266245121903308038329163642321442606760591989763867550313732720594719377620361410464488732019007573054544440073715326818869566067173177191615521978626341180032081203861781322954062411569166214043625449898859250733442037996524607246685743239203019441417988464772364054206190373360478826332132881907838781754777106687354174322514944473403158304398807443707591570992185696631910191697884558355014928280271364858009935659181664268806775272590636725530755063537035223012328647055091734932271930841680535968535598337561920814902560712766570026535055585292920806998966293710201897498004067713073116890700333656712339831630275016612400982490469449815868637316240367784847022974609106465827819254447958441137960372211506394931119401050270277975777559962887833045043294780801662909900474057636021069695342155846167118737136370746366653961542631321223093436519775760919267963698521052406211507853955075568977707260898118867253296004501253339294144160975111790274520507739617573740659829938666526732439158984307433241289854412487072161607625881843012729718169315341694188110244699250135901614217136271006379018863933190213292296935552931201765340830384288491167972491729637098675107321253441014403543120664632935338724571824730532522387336086223066269641135337709255550412603787532938468436234964042688268484352373365941028403638786048350938509872555363686588746193602971695529264336477003431165013949329321117510830245253746770337623691680088588719876100007002660859614951014313075313798865361680770313912995043487475601239750176446407300061875491929114372424318389909291990216782810860784562891544180845367134788762200007191988390881159750696021346851087546615515282126063515316145605962419291495429213011527882570256245687513824376506214682707087213068675794514688694408353443368290524996607964503979923763974384014510332666333862103971466686912045922606262878079032101961402733439661458366754097453805628829022066497507903332344551987392331884638446051414717194494385115817432953561584831800393919947244340396934071796123204807671860709170669648749259645734780178730217496489624576462531684096769084875724675466903509439789586661586190007577617454740076710865792613337436943737712266910120376923497181227452813418174371705398509441756879857922977104075971263595413055240845935622880991598426776791591533646482322981784943706612375580842682164199244535108948716634608691208489937830679723995349722140843020137671127279331726369410848043557142680626714444759596357088136374626207208008420878377242175556906190647489885915723022470696331163689096137602788064407354901896655645333349602243935561072382829264205336612224853074977899130109495439752973022822435791989064955579930525381555781485873395388833423917425732493051151156302603784885086050281183207742705918340174083764024819181187846604827327117242608865606946062115078875934720767176304209671437087804828949662284183040253017481484650733422367410914501396188312000861825498270673698593976556788557234508107352238175017274336858183687522118368317867468257332343325290674433548933693322803622329010949173317483781534643204408128480375784767121087548955971006483025888664379738544843414911147871546616469095510399596612250569442015854111090375683373891753776710383032339831179958580936406534426822931246364786192695626404324868591132379807307830670473019478548796591345144847807465816077814995523392626079107327854609456430996126294972407774595688666460905498915310396262195777178934127888041232300733321772560103944063293915207333027309339101668919927116637518867021216684039965237112914286282333070504747922862213316185564106554495745669212167283726961557690890268365905714430380510017263631918275095807544825451033293883877598415086411847341606354141785008874447796683437954435160267668177192109626080936425797776259823631903205952111074117725861703633843688358597637294541784489923260684292935999380389471876283827717722355715058376250801695335388653850980117722620578206584347788576292388258734280179159950818900711711889722486108975092525139558022355959776591346086272967172216168791884545525924915191988184815724802633042215483310693311524164615639633959260326809485803588452338491649472554493346227068806481278162157845816848167706339901037744531836316411646802134410483159974111647074131520030415780850183512534637684349187514125080100905711209284609207008998244450964573217303697583408148779911263372849153597643271001372965696680988140029410859146088467458891267875290226947167894931277656600768328332515075560313980498363413750910149169593289786216018590704198475922189450226615485785847945455772555836746158769698493186338897774956151825717354635470814362333512538594153223022403222837253591273467294806027778282627148244639164081780098674547148467902108666960541610505521311023057563763720393144931834816129393618128135970843064205509383014634086933951226734750854766412577074509647101951409609266832128536392292077962465371702225588369555214279268995503829162852729266416646040568374585515436373336020551068746565842046435058094306184573452355510160638764044685558454324711304617098976644448025212602098865562210366925360845987800176791273135848436955102311968565705243061542091936267553951176289802966826106046672638758196341762451388877630565418748915151205788092120492248707918595622882759940267426417253294799300073108922190913120156743852930099064124553714523781969566680951763628301889648329594237263833441415353979014524567615429496491288053983959218374515075754155804177187125132530372112879164533489340752351202097232499527700482181631882849440578788771491755187067380631357625680565356743442125472633460273771474055299462096263622686998081944129776719058356820109136631141733741356575451010249726267967441270732619867392675230285411335999852115715114558400539852474751299849366828881423726769941010522851862429036904314877689329540252611692361651094977909288698080848380281390219373126442535573420839751097102100850729268141807485757937727541335858705850553671674267567686960191004402951570404214344061510340977604432739106384655143190305812511844501378785206875544946984022107981131858261277572128444533517858423730038007506681974810606090308637254784136335192142099684020965036201662788235712329795531694449631406337728570550071306949906730061165442517636486805505313946129362174074998341249027606629158633535252983360158678366764004644969641457421359953546376172156903069160062162434783922953614654683497597977699172588287863890562359518559446610828810408898694764769298771746497121883432128876561234580245550072664529515662081144081318893732427160754604784073528793261781501457467594625077816812090001145454162317791300289358052665177336946835453747417857995013321137844014791343453062405610285917466158681770513859914652048411861593727848858294826060795858872322744083126818293143273075250357390037913715768666736890678237464473683053154192758239622086837144179295709926625178434253935500698639598885274145445141175077534046496261906049862039303064977775434991598221972098060044629531403037938292421031293321983463250964620236162254677753564799391358683458129512135276994923904034942617808279886651836057441642390608434157577011946523723544432141020848193687142273030898784881117132868218345672067166149288490428747959714682366802268931406567847138673970075828417598555270744902973915370110282627583970315245114741991453384360107274528803389209036422846792504540131990512672158738147543197203223439774193053287558068611073867921862668031412541560905062380921080029632188692234650712126859145518998560760051135095932743162757245603104764663530461309337761857068487304967373771406075436649493985917634471939203438444852904567360463405431264411927971863637809938706025916853890323634552413400372392726625014443924602167132288907743501185495939832139464746754823623600950553396095281668457963853757487860360200559287427442656205098433169018760119749861609379938531277164358895403680893222159712792480219136877801258703355737875339864680130989601377587397047244481413348971502043069375620914814271750312295696867559856633991896631589344203015913083599915470639462328642879930791524783336562116185803058513482794360490287891606281912702085820087369821880578920574785826430790851980947200686294308327183563787469799967298895987926634984856654784280085668482753420383494199475926087791942291360381459124124996710080200135152612730099241190831704860006265421771733040865641623724421999147816624336131902630209541843184227861926303137078057122904805256443202968439270107068103639582178863645214170624499522954616692175034371437440494272410629105948544084648674249087170140758887908790877374630361913228349187768261735175173382588987263265287719400456146524863442269540352975731930071904535086828531576799473975458137549942816465096723791290371250294440668364603451963241512353168649236416617174119571957885674592655076681544188883057754161081698877384860759361432846597880990752984306699176808961727813435616681908866931839431350310889818587654023606076910639908036145797540352887277747766253236197165869289798026190852748817088265385328688695694458309377162923123072182665491307310355747480324339923037336379380743010084055852689588351313760539649735814544409486310673553813830983026393725177122207541254290360102329703773615250860884032191332261802906776723434957425055041149539256607700718053705651897184507949224552142379045469915570764678018576779226053008197530660999229659457792804232276578231672908913663910771722173985275508576278118874590416548202787221012647701337160404443183839232726880120884601192205309214510512706549746800886295419927058012449884999837288454695070575549048447284609820617270774172923206508385176567861422822747741290119204862118439081118465867022304142631179047358925694772894360232520466121987678815800865225452662700189256400723197588397077195167840762936222650820226216729263866998676634260875827242928630692475793587570180194010292159798518349867966795148172456841957544762784322270500984546012456612926274355603723976009018428498990630138244758709132658659946737294111918539162362816599818080488695460791020656019352245990024743531461982282178035141137345944822730396280058121282564839913055059228298036500284208907527442751384215153653345442959675735890290265256176884697352725652826477027112852411999578277567215622378110825772047048923961166920156648533312633160546180748366594612036825795690819014745745753621026087198012586557873551474570766531316948706393916879235089991583249942843906064640087466941861120492920219950784603028051960307313619531571387273466219164805101189577844411614868557610420743038034626031983550299194731500586157406822940660025816911635382193250115867949748361528365723136719023323571703189305261122464254869792194769718636403890399186103560904537016177316423562044102581154917638707985077873769897982327258902047053675526458225814155653658993315512150185642350207432833377693209258803023812199364669810702059518513435379024947199012753868501049753606666387757441050308774034758611078301429102415191381321658025066685394879156801685323675691077622448858989962674383852211948704194165286873530717818707145309197906187417261083172180785406315248812595020975225825018495059288524274164409102599328174465437694056910034363260883764754850305628275873764663564646184618931264147147208925753602540186941409666873032097353747565346044161304373528428563035580021871299779456781352897388730305317775961895781616625366851361726651358391559189916730097978623811913174321898458564963370445370881144673519891924279317515380392015023444641044915437358326798670038914781299731444322743338072527901991827424396404233303272685406755821233430298819680220079869293422441616948177434006126503101815120713879087638875849874539670280127950179969052577606686995947783144183224948237983230967137276360702546734828778696287740589253850248819577255165138989721299782855831607412926189839521995564084752577698278347059828092024166982084993617491620988062505877617533165054440038327575259955649754238466687851888569594356737805706702655832768935317797061535097480942934857678253312493728429413127492547488900453049331575995127842528273214003903286661639639851982807425795871704159116395797833110265683599801131499774980215313418059602485360896425763548954739620025032546525775886584812357026534474642668052067513159445926194269241465443566979850146931172574754371078099173143811316088434378900496841659576614821784750929906597449473195018942606402632998750050778731966347655506623038412261330218600224587245447441558005142611398480704001786394194234381625872460874395691686210487659806905215049108365612591126061830628826209900649300284135819868073547424026741447647539994218274962747373669449465194056504836557425069494173996888431821968043780653356099088476304078441920713379064684331361482430725324452962390277865464559313453096887182614138599574476973394003914443153675544094482541421339259789629156928396809785762071375506620720795748800795373924024486694441043960704873999669107402175215170950121523643984115044200459155764956249640980400760322026462527894778282214425705363641702355044973561925886970084337829752639979894371396118690504845124454367386582727355216527637951739672063144647640747197837131357557769606450626722910769282540745149529030319242414498310377757166072177088814032957337713740975866877391358378003152687113100786333413891755254794150367620687356072579064021160045421307492963226740079863821316810408428888381554129417227039848931958498824661189296684474356836497695165514857139093997012857490480218900826199213916755172285664195450273383371741983966916563168952514921858170049673783110248561807945398539363291959398837829616377581245758142008076860678499515773911799193566942022836710905021923856053863541228971560105435884890008067464111626165443266403438195584141327454148722364107663341907301705511173305152660166273206239621694002653145142949645785588837644622686835929897310598693840174753635654267763410530511276129221292099164490318828846567700576221670774669711443394476461517897138319969897863935572657369202082672814815545155440339924758269817956303359225237610291832314001469466213896968950197696451375617740076718276930489318241025648833036019737651154699401082341154162063829655237587746552585350251403236435691681651408908733857222615512594759218065902698972029910740026818586932272382627400796114699068026320947718592195052848085427480329256047562896888776003415778347419113127247801525625824070192820813040631394145332119270240841822781628211847994647659641623119514973685397763659820783169302343510876166716451953059445155640922341115720463888283094095632566015384601756766128733701034990963424181359384580907340793984800881791483141262142600868701775994577857886917383047039121668674198426873665108047841685154578732267598242780258780705687992546287923684095412126183657339158297273671681419226043082535854191954169332495376064495347966671764301549086143945144311406112636126991395759882789346052537501332658444580861744838304845662413338863221365468839875297759930759865430643256943631221065844845973990690951254993846541702851985683906504627775557608147548635232813261750923778337036411132044387862055433039198101175472035866061231307395029904738424416274512026894462660599499870389840282407855109710197432952654198002913419896439377454015543546946220504039856554487504244516683922914222350035424885074838184287832384370549777341854683310320553344478975463296000578456583709298957139275946405774465835458969217157807961760732832197859126704515589490768144160054757970379158206341588438567234731189738971542545017991062329700249079823660629372110662390873693228038034398637772587800780385444261479290342962312458055705720073934555537323806594947476443701065618407793038938318199052750671809357531296772790921243673815628145260558435469470547557441254498329821535721872125418205326893766635592558173055609181216130696934874674465378134248667499189155117607412246112018003065326181453801115951711895673380823981549529936031708198900420599638745913377297823147717387776608376361968270421452559054189293559318253378660235315187821628010910797688799557022143562895838400627886227423211018019372849146213654153378549149408127589840681732789840344710849747421557191146935781723071379975349425441754307905286235421929581360556461796647584887075790947054199311533892945711778608474755108990326297382957337288612937963574901565736672967505427752143493848124517265627669197555389823929800267753240944149298573204335100256355533728783411223056901596137300985519269398447675239720047339682180236352568649794203527241503798268138908051502970779326510100273828495342632563284713857560426271754146554476313838926964147358557450076823035873121677758897736818798222489201748948558569742618885899515117065167581057236690581199031634115532735523300211567177867887094410064879552004373247761282874474321800049650014209464844901840197671684093025054172718846375701652547903815075880297584721113127747335098793297649758246479826975120762477954266948246152057295156470554764375927030559834069905215880404073524708559294387994228831009441882061345678142533375618352380769527965245847393047552632424676933341334608775949990706415960703738024092292329144542678394228797197486272786470109398225233433082238773065051666313432000908567076867626888747676303790826789712252610072907128574219376980854585598863261061914979823704939602405772209277328875190346850054812415638423519368698368878421273486221111624235558856801914855321103065787842076746693472672550302744098046975956880979983180958056611624592892033877369567085131251854097855657915087720112137290968839486580888773973231273480358512704998080612179666314607724644403457726725132288883185568073427735177502109055795611538338734087842694495915567287047428659240085870817940510716648233998869668428443894742010370874894049326176180734243635150296622764762062600368367603628412340884415713979736047875268834663443965350506415591171475191159592422984743487234816427381718409684287690759682404687225115178503955380707652617695135560003298183462970563368408630026732898457513215473146873996976905187101936092191814679669982240230053610543522465849017503464932289416819711921721841903141079153695191616280305865345179122400920546350119392761575262798734496179188137892703586869975947173527111392249383644051108207152645982500859985846563319210229072021181995346145506902450257956290853639842098392877289104216817442013993134293902561173392897955656851057468846742274173897764892684044208311152542327426200841297822780651535892208192173258049385681828378078738256561475445839179687946679385545476741443508492088488581022678155802679071326754323636095346476208242010558546829477692694593629500986940013800018290002193630711543600594346085285072547471263094945471716435133236927839794496620433646416693829392706629140344623346506555145164660857896818066592092275955936335467496865098275063344147013257418295697329199319114565678713856955165769651749114391392729506860452625324924540523927654212716129649219727192814026497321504943997609030783817898397962077682060935898269496790845801122792355671489194878561508318062119991313957172232671406383466379748867525047354631898408556306366536183250649867692374433506768529542347292339449357668048067480293596521955703053314358603011683282957018755008046363845936451251780592417296389701487725394454171727493818295261316160963079740702758103607343928255649392602384557451025035660396295477901124968793698152642297273756088954903681033902299870896356916999152083849649959198556284851956153805155452762185169805177511965349894456425932186964674826280419623800112064623226229007105693060094505222420894243926042519112432314786926900899688608812751588342840167730128580325829412319068215065988937426603830183572275379697148993849044023997028290915458795226337178866017232668208102108438282567581816665839671808587752783125595866075996934879007478128194125359333620947595524918214354737624325775719923097108331989210210007868351293945538808118904487412002215835606471120323442069755550095047917574140022212599299337563326843924767659980993668384935831206468703037518772775625322830790432397629578699743168502633745316434202434980801030849802323333665529601799858989829192957268552338981298665762620862990822875037156200933501775419107710372904789251755127494760985152715120712937830123716544025913223506471497085507505276728646512861912453108481683639780449953361452514310103990049779966140957541946999506114388264172262355664402268317912942835158694623804436064830782214426906555348405238555228137457161921765809081731297923580734034754832741726088052520102501579039367778247738634681427732562273864038260913776231115304883027792354760384125281145943705857557842343604770208016413747529967991145611405424719838713681037121754094724091949901539534592581667216392624450287219098737146261868657923174809376690060870130226533760023073649738319372659639165652938927924969330946615437490114460249981977940412254880089044056133411179066699987423696974092993218555316318776240458711569358934760197964287531407524642593673373895598415287526213308168886234225020224046806081064003066955899230275517423024642982324184588636765342383085484185126209032975173512784474354915262883297041721922233420505479969891937820934947561184369146728667377774722003077899796200504910762504003557067111500198998573662370151338060043248047894319205764368405263016589079648865706155555280770662023014757605246367933673807763338707357490990849015996289948261907663348868062762642772740309880491963492427018642943626546110110605938857124093205952501166405062959525536315682344607891850991194888588055054045384647137847023275772010114757058875603812857817899976761652459577192023359466648650442277680526147758884406296393182028962321350491035597242728185008171074861741343792724548148728382993103348046452328528271970092515502039942492948933516036802087822656519604552026957901212273950338292800627907132785004242097496981805497550548387065232881291008628703321375819918450565959308464290374476644935390539874681233070305015563273434506305807612199831539724934546668509384960300068154349040477749972395584155308855808335352533655278953683765718391097214505516367174857762266838920400136719810372555936140550262554462101870879375538341474499734886819752406773910446078655837686403337819669365498970748532022622705242507214193592915121319780110825460377319732674174564514955695612372260706022589368893790352185703925645680313436822521399639705917034124584327285630972707244925825169749419713333896030445258934561967052793894038580251299778045901781173263862240879625010975427901094998863836631166668805921551508790362832420126416657526856239452117507039677882220559800641530386434066047140733602432321784222909329388636503612801413627624624636409584802830792559261580174019583650808060014156013856328368652940011192055695759784747472956228929624429516276947308222075310275653936361397035450278365238966431415501613756330715299912615785111093066520117633961172220921885711995060784889377526540191001940386282795945724828105559260129892072231989481170347595358355510965384423095632173247032499242244385721038966166161742290661362775591938775744292799338162302624465154523520416676612025780716394427941064211614567147889958705619513227203723934263279527562344254229821396993893845730918837841524822242653120935796398026692168245893881976506612573469833278808915757737830358044795091637810174687454178046612022607318176000359195243875379806521165838592356606746046415143326971848574845420779676242482670255989535452353365920390075440221035102798171740100795487117153507625736577339068243817754202467552569575425127174662902808274938754790478248883764127493160007140717097793466751536121737983476850701086381766970659793726772255107249347020143487501534048473996353733469580784351198393616476235919718778414296550777643457722624454514578071767005831566395210531858703482990542525980291314953928210241566339808546429780240596477544223304095317299798412743497978783680947894594820204718995580560699477990770153829853858629741036842391427337269852094250612181132867007325439934967450804411029054117254131341228703020162676389773358340851931935683231549547261798677972597534451026747185606006769042450425881135086435924307975925776362324801975188363334464044078161761195979348872106354450801720893522626809571745936344583690655059840272547178384339604204524410158836849988634844009715237127240019860485077072276926820431928180425266365053504402142019630252080543186821006137684804597206928291796229841000435070036964297857335470813053937964039260800260608152662872852342559632911729066617143457909387686361423405608721943335564120258782909957264448363623683500959479220478278480570848087310470694495137263063409134347051830278869864017570885858178387154936447879124652133510607715185558288216552750140638680933895608851959227175131292458641977121305025028809248839357310896428014920615824164122434733432066892424636986886084030909897037816028249102624830173146169289175911978390571487350597166384075930922198015268742270441261566472208277023133359030849470415892992155123117368987424098939371832787920299357739697783919343718660180693049082854672852655943710098892764824529153082916436189519887202253843010269574201522903630829391094447018505543908959894588833978713270149873121135307155791559891059648322880529955731948212773411247126580495974286716768146831714207909825366433065568407095451934034666775119160204618188173759228157954870936113684500766407989009690111638429923764558547045518553178031815352019944827895134023716668250410339834028418725755974369717958348899228214957704474354322772225267549352919112565338881954819745636616094598618459241432529492272206546829395194210409960225692795638591162664835239945452145021649597471731622887271170833008511507607353907614180113503709233487104518590007119503351292002618026262643123819931674087606178551878020001553449888652622908883526850031542357347148742380194418139577596075962049564014938941785933773779722061182844251535013165946680657164918998225705676846215565215086258614467929756205113030958664338772313803630539714937275462905597612704466796389165044035545207793822587500482052945302079992035152731954534735272154652496021696823628474696209562578408744879420321767283969032938749395920902130221021691190974635707670395509813266974800266768381608700007693762867691886026444739566909446198094615684590819837413945001270264901040251812542620978671515842902184407982941808098231255244986618395590149728814569674066315600149349215771794551830379931576351837471142573628870083081583716634748606639112224756634607794014380318374135441831012353638528319168941805050744747430073714111361162595717150320200121736900193939822241671263724780961684053841193012675783168890134518119886190868178709559862654325459260915472594211254325144029478415130149711296262949659225828030503395471704578207575041318206143310804743707162460751263897415471906536041779778710722918746627238144685729470899070841818113274145594432198425031888937258957884626097594430302716040806618690805257879957450685990516476403918584454362876824240130806698701404066767679849303584940767299978901983287055835420414095584705956902539109943926374383111195938422317293046855279731748431794894975961213125271332108133729923487386339930800095471370761606253709111328473111180218514590065787704624179206952390729939368901619360572516604561584025040315806003250050438251579120540255056223440496179210157641817089230180636392669979774761436594805218868023005213949195753806015286864566934882725982461444139066109430362245809898706374735684380038487078991320092134474162794454868859724471410474626895434004347177121983908599743118947148908904967085844729403318285565444200059702761764991928065723242826674713820691684078406046829491193518518896551166008913645537513905171125094373060304345899492596869601833591983185221649648322389238656824659048212823686634771549669356088491122579631862191864464229617869793375929108103320080109857890249343232085744970404012849534215138916655949736207287755407313072069627862848499562946478671825427564499128349460460464737271667943352344530891894802315362178056374783334513466044690158498855071596590247267305494912091668580468122731798975954178636896808532125943810635464209904394795973596443293932076935015020106476150369178903093769157429420791638047706987884273988464423163189983335437093472860491071481989577189001459361293229867140026953455123606127899512722470926039200438644878459501784047825522913901746347278420338430158594702906173926832073793295172256313881098920915330206858965064762995917702266272736381488332284971132596464274151084461438753103353874909303930008317759646195338379777087704145406117693719859353141118896950911215441689865473252709695990508490105826106296941528538777741677661612998421648158694079039732527091646486942918301939872157813869042414473491231854060194026689032393262110620640090206695898964153665427114423419126126875811855416738140275469763373389051796218098607548313650539102665369033520805571732265378060972646492363421302055591089317046593651424903985507415874843760651367374957655847640762031270452624630050054042701088654988188012554743876933484290565764316155938796669670803363967329014349748316491538442317515986901751070906993441382077417488491156461049751532483166823661053305328588880841528768060317243035066080679244886477044505168283617915848449985030658411309548867540742628725224041298197101517079483521207463631677613146735942541870265793684710671143420059690118103174114069000032591356453138814689312035855835662669670059796711241898637554709925254795890493703416551468596335508998066444139525542842323367918786944279382347898036800926707313625316826338586444003294255958357353284475303126081438953605263523327605304427342299865789510693041882529729523407222702126187456771699887449372914148410245941340916420126941838564736632332780762391431683802522486880935329370552333293102973884881174636641362503113128462322449672412552001739581616490698796006508051641869631720207284473380087091043400526621781370953026303085768521387721464469980574210374783132113112887772062333803309091104855502209064627225931163073070257425688323205020679886281011918297924503308016073524853853909368439797661942766565345673529550931006510892101597646859434289637804511631082625671109032726603573880099793837806466509074668177957843978939495302195503654338535985269013496880148574824316915596096938568474131837543805597210347915498111979784136098995240521383206074491732403553818560243225324469749945454028118667179590042425306783472210029415097225703772274199256731981211146995722700355186603448318561634379972450843396990961476781509954588336448031018687958753362378613694387303697320501445015215472682998855720934633907937838165869497837341475301515776226791680552782049436486692971085582387623472087469472085963443718089585757036387188791423928132825958536647460471577211056926515845210038339220207878123991358532526933952504135485037385392697180379720863397574567630506037756592382247127932389214605260159650872344488893013599959531040589050895232750199237749015185089030842489012197452498556195662060062532643544488654135810622645568229263731696179142621406382383057676902455499290703397880459942320223184407794450222541968803183512396020543094293094228234150676479415193886414755198311234871819588973080224937416665991737616475755319815569837817460979624229061232048276351051450941429593783619266798944035793504624127015509445171440565942848641426842951172206596015050357338148504922448539159293319970961705182353208031574587169609143596071618022307803470079645090837910309056425115951835210980168692871319656886567048454669234809427013904807486138948709074825609984017000634450006737800850785664428404748264490987227460590532519948088676524684752977148422714161426377143375169131025871680412173470912559356891863023862623892269669849768649010564280157995886809392656855580762840812361987055934893976035610989448524713546550434502930128920806765150733500875201039726859587383708744560094442261188802329736463594565433366024963897600774361472466985556809624754894382516397250168886672745863096009868841097735943484960440680001357585406429871148059842128539431369558539253235878768713608028863731739860467300347314070443814797440936698279475357152712904457583149175802850504943014185884804334894601880241913109380193263651397599479567044375103032166381564396349205628310056026242769917273216037213627303377641297460248724572321702830282221693262778611948925168896805328021768801171562938991318200977655597766164043082901727916440968870858031058239140120709636046026971281149822395754528455387180660304469668283179417974940741124781839781936984452397551171517047602282736600414535941109429873096616765066600447353733966495849236495110450973362969359154082210754661166584526494617199493980973778124414000695583897644039852909361542298157362483022534147386325565986544597313529974484897553907496710018471024685666301503272818756026105713468107907801789412885575380099566907567773874948863947765352785173780823861900458558170611616701674278291735576858249452767444606939844764027732211504333688197190032450871950586855791843944230626240441834608685342888734594390352649208434154065325964107301127335567022945202512569489733484766914686032234420210450867382398301364560799173581747764852976923961545699284770499790088823378538656496768233950796846762564222293228419554613229300338383797063792419825964579908266948735330035890136890929359642259799085213746986447699300197045029704945437239628826170250348928781554187770211625362195774194455470988178993141549405323916653196784342514044467183819152903836201448497182938917626876745273473277345123352282950862263825139015008285218999396445827527559671742471921217854162267173290673975038545649080013048170178594355069733159103785773017175170105176788898621490559892698019770448422629437167642712167923054397202034288431242762449139122592503219016385050152957611753590968686573949708646314273892635400990330947744701532407228337360965332429906378936117805984880552457798562690496205967109023424772646952683084649424425192333320339191105442831766000250770089337674365510918966233244424313171107246438739408711671412252261031119073415831338853526600333656571506023620206104286315633486824125662338769842397077000887653312203848765839364493081396929869064095206250103684474635093584634099554880314610578545037532891121272787377169303386407218491076752772879183033958759509494609239953481552811212175312049790953219457505564761710047101028090602687062037905468446010262898511987313214543150721880013773322512099416968047712766631592071287403268358719742372554929364954028838767465281384906501129018995480977845304314260090152882330577728435686465186237889234573284473840548133882672704216805754229069231396663658183789090452905938905831716604319939358883638662077635645051841587587522993209812959707310418752828985756470859220126822045506975648434789315510805537076383871815103689883358518318016763160584534984361218726011275074044038728787399280672848083991696436306578838657476560248328621765027088686862896789778463459190380854295773386356551965936981842999567042554235019670118215661318223372571292811947109406669882328129292211215950331747114951602418883952257634697378928573669095039279503975725046027413492636988774067430989769058667217514041206572939546617404349731199605833408346314975266623381026688572214255312244998175999287952829595607942112687441099770513784057016139417576378958493651913156887074280322491169293147875069485777362499474547293981785755185406824999126955156084085921998048053995121760558664574462428845155135691401400005102996868330224684290262871206731331504468951557556557696363658341943054274894882569771450639150603594451616803376910344683935667709896921919891218217582712804069990226190242964219774018023732279597675231306719335830009644268899736950132371662588479463897726516508700397910340312843977495203231704168899747510919511623458550179828607386929545624660779936100761036213904767605690505550848279211918749272030690968085336578119886210147658775921677435719567732304164407662900659089689642942694533317785262923870666156490460828988054058908083075100744054500709001737766841953706991652224872920662793349824844119461084446916743260476120996280849905150155594692170700474448076594535618690196794625264643468153525536845154475951539122586260494723975053128397622304184129189645404903031153248877719195503312432116608307915447489839969500547681979771346015198678351746607942129654714002557955225984414978201127480393090472211745504098583388904552067336650877903838106109916941034843111881341376336447512933784232399981209092429748463141399925139425245375933799752495813424732958011442896890712752418454581157570360245594842883674460262192758812891974522816383251511008104427320689483404644743053955201645227552953871815492801903999097492203729738549639565996466281566941250737582040153311249347272280215197949397163432049641602798282252291155730365597442428224648676483664064764788376596726086347750773461056447444410338348036542002271876719288906690880532734323242531339965991254088703424195528518456098578648456783163995283079054782260629088063469506651364031119820162513946827544811969331294572769022223230683190778590485559800777897529769617160660274930080388745807065432134766957210288795132100711945309187605753664265356465137538189737152671562393386232841654782248165507263265461495516219292384187475266817648968155646329135296719875598732757986413422744073869858645723566895639378608397986836761889242547253999557117132957413810673730891316861347197952600356874346047361273742060713408688050471064012939775744658638785221029614339074318724268279951063922189121850485435807215510139782325404192393234386412150462067712182627135118478559460816959907558211515367279143290704830977942220670864056133936854890275812558172486459878316004545855861667816536126858471036331931401237352149319392110010402304266988302710492027950646564566332606197697732185013932334124145876935561093263542463629042693772588413329094798606363275404791604572680176070754154685292506961957371834745834497384168823113979838541187234400862916271392777795595254922479952205442830787678724535884169815052054119198970622924997820810778038539648244861381224174246969973863285565845448870140785808988915422395707881356419062094942675934343419485753636050783210890610823633210180396517812871129226634637450289000873520900318719648845775036246806166584195529558983665412538497637875915259715515319738574165809022546433825296098029743134654653638848597155576867080498923756662163519619434248135336853182224436203626360135760940888470302707396992481077159722695092116854141357332222784779839452487266674987129914411046654965888607828073161548146188942657600235462072274854493494090245773380556820427871187732404767718903287665985754000315122232043877982843154392528226392967546795049984877053360538420529009361411657958352936594069834999676072016712041392550682005723698546620950869290822908834373800665621525244417629547753013301862154079764779674907046385212118484267218752969101655863546511523795497070544975919288443882079170195894627296535600395966235421390424321911800107007027347761845739190947595123192668453789786478389997848885488000874454953290958469487681132332485404814073858010303321852055676096117725073102339348466175676377384273031228307878464230322654871181438973727284012141822566765894276377997645537461392444092805408166770389455646851354190017535031777590056435716999416634868827851031171601866794294362293095219602895465193140027607660616047754854359905101258172587138583067932949123824387681848439804659878099600841743407123603891486725043871895754468196231946753491140887332551894073512536469549166005370037947323457156610422059046839563590317995094226935221100406546691990950856667775951932826155949121206415600929905589216649176023336467035167875161550830621497113718138921837214743467678127492889772288560348946995382463975757200499844598357329215468065684526373663046434631710097809674078067434489377469850731533073625597712942960582209247504592909496153700997951349719807247430357176778125942310764947429733737317580151566973208355700516542162674592269323817740414439935753493936333978149148629134000891464251387388281987036363031915501458053461242441107625934709859083732583018227254735404865964075991154069827214847615094427531179613493300403210081930406831305261766834117550361028657260441512061786572743171445032370633053635376338578951687038345737461507242143551725034240778725650060935252143564051269688353932272937591427858565701811389468022240854456546086944924090746543159149826179124169273491758005079748073253510091146729131898897245376386884245241822282961685448089658652264916521670452581115119019824240830988276173217001515924299798653035242314722016345710702647588366040505100719704120811378911646583966646367605235523908602219676114991241412739937242287900738965167924037199075486840183231519609229865707961775171119302375170007414866796565839687948721542840754724917816601680637718994384996924466383795167255186600597620367355119706194246983049816433868741528228550642147248075458704177901312959998786275383738308259239202911277222748950792466215867206823126585134158610566363895294370533937212682612275834693643587782074521791504792698703331561500062416689423943314021920674060232086034688324943400548114730559840466268183522754816854854347284412625856639906474006510413793445006580471348335890547611674022240549771734092293405092982509058763532828148421913969467600916227062256861528132599015202634175247081230851480202953321649806783459367961865664368015473523791162698909821704915233326013875175144031705651766982411587227181935741192001030671362753118819148310085064889241558894978892291417215381230056048473867148831168957181828708312169165604380770225203240993337735632900054088976828304169083129038350472185825359368947619962422778974139997856763837304404017358524548315170899338733439419586318119251181058768553314978295958836006518421711306060459970425519605789934694512210037470325247015353120796624548603592668598652652020701225088465993047580734421846568148288241107013139395344201009105613176128794211173563933065296567563978846675701923153265451932941005828496392017627666370864195095052368140070293106538352174631131848159881867666391765986335403422563902806965029640056155761973393668794560033647328360814947874699865275574447736087705037042993636958576582546630784726193480643334706835411434818222958800971145254107178405281811911946188990511220528928235627229619910592825387541115720277138273164735230016273724963181115129725695606938536290230483442234874460978126491584899781305031732581644788408033786471160435497828702091092940164628975338940696961613064390891208729640485907084864175865378996433073241253125174003269818609474952797927200069702178766425479326643333264914357968143305752047489005357809887286620624150105058405167993940445033410285784455208583001772337584260397915297344956260934835341576044978400703745262635709136000748945443358548004809884392360108383445899128227468876806114448810927914328515134421261243490181458552887016735316215799556769222720419806924853603329548792944059567827946331742006661785418940808848426923917269478233811006509767821707104084515340605898191544093807494324120442019236681423856185056240597874529358472017941959814081165922219087094719766605397245634838269377001616872746865980952241440324612508808501548755958051544998114938991910291521257698686959166176715861532601418178998593693479082162631060481377693686019894880627907890253126753426163782129439120625050881586989229912546370407523012199733079919134187443922756174317680152505912521670800031691661249621402539292353361355265179953576347395678846069813782113138377476120933006006454054728498274999356361791968648943281633167228267595411183815761464930132390651960380250907590053782244063031018329974814912874926389017987092664584572971786974506112707186312714665902423882489264329795017750659942381126283143991924553187490305728880974270707811484506446423721953033735928521734765588398321233973601916389947482673078937967518773352255956776076624391692964644286271377634221092169566496704090021903607559277243567882967531421245109477591403612956226349267482277900683368287646884781909641815313549011668556790037471602700768713615607873244330638690926081265014375299638533998993666929446993795492775695923756243855508889753994115104741636569015849638083919266937442076746630691361004129896469103778363282172748930820867971230955008595288352333918274932361047058478652797344960848952366935603945395799059454873610297306238766379176116886705973267202884156159567810877083815119071129625397849408979800484914003606026281164897922845068508448046791322511696893438974674274602939444383358045387083446951081641608298078644363893769701074409770396415251435206118347000443075241773569167021370281021909237356823808690233921751577909325402141265348932108963496175813542778732489531237819911159497093696349050334274643734218698134147289462662907083177242621425465279934299049144493157236465750427815306867278916524164208746189831279757010269818820304220160050283122628249207404916797391086521053484119233264667451934604387493953720753229609769116673671314422033980539389186399148347710708003734218182310480823469247593145522860774448865886431924643387822351655315035963067442859638048823004752212987082865086197877991791445393380551768992139417533555688475845808376314324457479603653905157954075393364082870292736032887197699735865972361941405001876886660008983641456088056280628397324534720325365461041669172906666353172031719377887456385706952290489655784274220507045286011001822881817272077311546273844182563419934179487877311055931929434342214506641328739498563733548318471902831495597138231901106307909410408664767356720951736022029428322146487999564066627523687100817837247154947328404929798693519306605870424320765833040864490553833200643807776855439329163763349715908677821902896000957899371789732000985004187024185262616401519204629793695502370694301099027376054499874906813597349115421346268839441450038812106089875068413824147434168073999940906514379948688037364979494079622654548166549892184484402373366492240449013666030461674464520322405526266493830187240753536567840530337309124005876305575376288216846945729513482752657710756663016247749663382203530273060826375671412012840566067808258443325180808418504622131331802100998141426087505620527185020706080016901410780996421089462993465977058937768840905992620925692805405936917676010455714226317578334648930100377796836168367760744810344240826494349507743762242202577132108566227083585228213724334929790404691250731082949473502302509566182036376963313034428046195233085961694955209261904138037886619079611844324128397107924742894793268073117552436692754206305510739874496881866488758309147684604352687618086978234605504293593689745694112070206532661781699395290718896678922106903018992695474681587491110014888228057609333877942685572841323937326268520274232481745842728225058586027572594376307956412243581048109590802891830678806907237195498229986039313584722113858130812425813673608445252976026187797149589398401438004547360133005909768178383544912111158846745185697771967986442811732394699118913469770462157871228667683808690991699372237246087427388683471506518331103369575910223929441277672486275377210561137120427708492497369088269470024536613015120365565392074651026434665060613773915302751244066424013492632547816634808657290721155791225222704257384907243480771591685807927854485244846887891872576284582028757909579377355739483643194049725823850167577549596445699576778004431812305398230400290555774212201580665815479369299612902863515973138209366745649083043210093239064332738459477959672692681297434488787767427807950970611107974391937440058216590453783497411283864011388389471353058676091418725082826865188860336531372540834264328408381683441580642606065696699829374176922390187651793098566062653694801704854662560186564717828991582638972443868910558011839915328173479623179796580726296373700758368890827087443101774403481006819552423325542024002725404846666888829979144745288018906794897751977097245374692739803888486450602059043199336387504237736954501282545803180892964462907799760388950355838534331387507963943146313353702466111819101325795607933725032405795381038001029771013332990973770643640090636014746500178858349761927805261031647311543362095788750037850683765171749661653173605271141494816144642926356830760183963510036249885586202758127721666063438602852547511410368905164009376779405949243655082194752588438474969073662724928706669914551678090503254547413377987751135144436214133255093379292663129716071935818839584533430423760372293822007831343116758064007776693284734056670180822497762703905412242672101429146034021794181064219621270864607814074791507935410819680725455907571680110461118782302476349071114648327285397598152410459392703030785541198030372713529842835597000463652254849892731954792570378425562530922205782247306047953238513030850698925573617668260195163895848141092750435385504073300894104306687750295419472334451882721630475238621613582281828065200600202505502446795344443235531026118078639094660730831119319566572086359622155788072794944579454541518846314374508314056489428524862768459433451616871227848488442072595078395571019293444931394251447658707364825087876465657856881054358650779705291807633932971814600088520014899099714799195698535278009774444950343768122324904935357148599495422260613487431224853415874416523754029304975158334868371817006455346541534541566887641667923999643266195101003610793790415825554249669919759818157303057875404574606562842815362320557147193667432141175727486547174334094079670795194858009157017113979920058993447639579294986555899900728344863829652871457336015365130034820402492374342399932880235937896593473720199957461518502081459169993224644035477591535488359112463565630801677370680695564318343834790433884536215590499881945750956042404568363876608528325514070999297654478491599270747822124942575050096642291776612358451986111072603711438141826037394549856268521990635811361094991173143730556804152953542551312594890103436017899476987557612664179882547243731306475365969355604003386743077455190667241565842127415755507139790469249754284715719384200762416625094030807318975318965730616807899891156545225507150919045014350937688480559790067492692063208157136515337483957293439050617188152364757141585491858395174031757935216066280509404313904549217455130088541681116308370952937242902683474987385137019687251423668750077152993262955837976937063218077414815303186537740802505009093951742835463678835095447572408701906061301111418507075694069443847427991914955627599317970001482137406086925984081622711799547229913228975224001077585025111583434474818963899733770137051311565297059708214455047175160751494540393634674494037259602809492244021866634080919148865452434120962713596854399057731325460141964209230453940183159082297040912143700357914366590602620819547116498060489444928495004342668359783891781337058433896202891573997622450231815932668164534223268436027674796051981701865069030120992980535236818252237641258929282145674299369158810371797839488594165644313481876087460554304637753233923897215977787572970658386041902030848683939639114827040841456140809708470089632048831579122366740087943612410712830378676362963192496026252094537583284759242533979019682046147722706461320705207899008003453183809017463981689960324652085491146140849613670930223873248499365222838528499880486666939571112717093481583296488397145436869470812896643107085922523501972785077942092515646300631623266817186637245158400154045548100917827288992770445988810294387626853593794152630454799676208402395066288602430532856472680800446977698260817574144477398008293067803460885404879977906956773558435238156050710227416644106929975553096588895779835764465179416546497592467139589291327778705457726973788650127423019284212102867968765582367052904829119908786038483865787657192273212961753826279177890673437989033062860806592213192354235954475376597513118010542240253070443343226986414628201340210521946937210598390731623944605695809088260656415844388523232491348417560166141084499403675017230464729637610334816769149853557984121600652529361840323201355419886975527158427076890324942233807250248511155844533360411835729184841200432966687106457330239676913658077305526434011678641039909553359625572854024247149147651666089356307545166027497835908917491462187415789665366929020578445245084355606657929805607844650676741385335206482702747726627662458706274034342811371331412240706608701310562289175641315336365337098865116606792118879419732926751663835496019902373153354600012971461638022298396625048263384223273581088362340364313396709336254152784073202265715570720233213387998825868851318125261976401287157752918759593888024228399793342977219957031647130401640489476322726999790486529197503697739808845198602316981352150189368225932791274158299823767081513292867349801940382721880813452984601547379882135250663928285704260522615055085157933460364154130634861657336900803591867883367099014646217469349718419588637118299212867729177361267936388599195092794670981335322076417079514666855463091394682000073179266393490218125495714416883646533896640329249935576616707891111244636295282940481844553067286023991166934142918829672167696454013430607794908939387889151404452228364384743242656058738333393654101570278250778384611391531109023962354669946694582835922647489144136160801907037895467683811868718802447926426253113036623026430996249114431786197177518761682670910254283306036157689206903413655172264043890814603504013313490915411823225871648971698859335293349493013836313917854313660628368411280087666521185668799648257002471661932341911675698452171215759665774623034884523874312187125065841803876181505206577201873639036622616922753052009849339703952134123345161497743394575067771465169770025403895428119301890996597020148187014766303922156375948278526014802486293274528444709477481039388726618136657101029448451270279654127699044882465258122968308440475688934953810083098287760790071680204829332138879266917403038993790861966601261464928280982482283246545529382275069185298696512922676713653953396178771691428324425274673316719308690341555602832917668603498377067028221700464911464464991022709708634125237930456309402019443456100687694793454167044234048351150835300619348782961168314837739900871834294005100668140069579532964068296473413951392096891955648464400447816025946718093649957664858358560589584588736244660890572891735077012187590887453396737512783823681910135921088882570316677372468933957643696052200076036168772170575812771159025517883819417015723058955983818674437767486715479865035806144937038097338413260304797108785949137643235414655256256287406726186917111139831170971695263134554487815367866710565404545033111667186950829044678829872999620886685720847659220762657679432350841231793286864464944556561047620292501919137214543874120375126136343964792655293234255930261933599564192383762668332165674727760230012575149775977441217949402118832581036559748410877239583009802766185543564351242161331883684284197658934302441926644260272642388480114435885843407281922094152305848792953977227404980204480198298072576843866112656589123678787870429151112490911427282367971710633381006301384843813089149588828964495258273595939980150390272880982926083330212234693409527641430602322551048595444341450335848985906783055403409006369508283675602548275416496217044922743366936008036057495563937401324886074406035785634492766381622221457218879430025040749057588569036825842739279208073185586017082395891801272556490420380710384321267194765655600938221522545372614247978220381222585896447527700964458165370324662560455052748071547329523882354177051060442002361897067700116749858910591841313876141628161581190035540891544940553021395241032182332443274946754498471004269332646380295155129132350737096200579521352313196317516502373313714884999228135982023245163578685356774808388608022912102021810086965965740947169580204968364422119256234460625536520398592158214098001504080084665355865427093240216022406386109443923591630629583222000353132028465844725309602469878225248741940425553658794928126825289521619369573579865313484590816581857958783370515910383679589026212961287427715583486855327592121074346044521382177778860651061931478173699006123759043757875659090923154871085021825030205376584843156380107537826149490154205202317820825587952315032731027112363596533625999342843160007356639273743325474460356032739668656863466198704359522210534834581697517532595023601176452275812516567571218074943851023498876788620950936808734215638177000002828577380956689123862358158719870138554136467220570647640714348983594283817182432458505121796819747552811509472150875567720175762373443091353558253865246192142017168230121045990387343908311092038090862926296230078845111726491229019285082015351100425185780918312441606399398115410963106314886504455345736735450262918164033963443742309717016346549920900683668948378172907141105741927268212886870527071464021980458329249010370116381325291286050032766454039946922475354885321516538236889452032714344104426961068922781898294797319079769784045171049797647510619842095953222911175877944097875148751547693609271316969115412030413583237814321299632268530085730328189186181692556707674454568952403424068059032984811235980666415163944315681932983790543490298604933292614746320983901501497385874821603712298239975386774071821590267847445646906069924418328007456445851865070177157328002156611871621231663550827191610324470742911335212981904768095020748289334219419118832772395193318677697032116959418162208711707560875736120268024859814003142080124325951923625758769808207089806693724204028490225286288169692284912401282021327799674055845828502931738219424096416522755793397194728077219773383919355055503008010776438468893655057100473131894719363957118844385069855627478547743539787215588167477771378490817476646835212947214321548218451902631377910382989780417978896862845596651053413406274747187790283043906132940753770685387914453423505789760554131248905973365726413451039070129284671345360538942876323818259918391336616836658756309623819272362176589773997597083717379028550927999780099599656913531095064520704682516153325306003461696782223433536336914933458647514314058398811202297059287009076212615878103836806026526944278596928331362097298253910784700166216543734644793186616924400160162234943477729140088917382367891119201408419264015666995049460705390828630011604974970079948156919761488433523698535626189571620308287510610284263525429504073845038520981099319427998593008046743788142611961926108237029120798718741508107059446728016503390166364865057436156387260856414534261396003629929130445578091280553778708682116881272533183073021874230627056644195090143188069533904074278267595721817942065963683466303965298643732960844871473786174884092133664290995369329792723185609699228212524488579006734329758242623078143080667160618648176141582461998376193782596991533139202373999735864864205616450134470596342177125077348097558574194634764281835093485089956435920816942270000949669549156376950027676434052731436692345754448453281800143502562969735007790758045116185622845641898387394411735506462070115743091298918278740518498281122112208502859932088334401450155460745842540891185444415195746481450839753563203269878330783130623843498991696526306678693933847955531081916818735998310231360053767693012299676180339753613870999321868951770922657076622003128088966501333641320337859300453635590484091460329178366457018330596745050879300686516560389493264620169992596368565758012325792795328377167105115938722498810105669750258435452486248624486278220056521752108234695748978182088618159498667458936224884533064242214057963126943165871972949101881165691955060493719268927128634005634959764596938605025929532864041474486856523412631698475393975482414249261643672421351236692156760953001198294781344666056051106482120010222588010504327698309702014555056038717012624674832424413462073828709392284107176884320522922924289004146478671585886624386941644691437554891162164522304554665783899473576065628698480686172900681150957400172394202723656035765597432713849185385801440530168197968159677313827871991414964603203826969994293042971884907864521227633481350459883456420546573423591416984570947504598755380742604714896348028553026896717980020872417213360049017363727984703112087015968878412022218003299832912389782421942774437867408694280513174358377253340809898290510481093668754256626429800497077293511758202544503891296318764209503196761035520231060316410564763708245221565666278904228243339542777193140001883401555752027122968506713980669861094373119939858490173450131867155767725200395251215691407576294620143822738278118327960490426457628455946188034761993321486284973929259616974892461937415111497305133336136660986396008826798369108641138368754933868682073701500778888012444762351111495173403995036635112232665040030582525718114038312094725382253826842926233902048836193233483011436548164071577411698931670644279692260197403509172309483468634230908258501760195491976384288815151038187476861998801973880865910677346049919492214330008589558139630380140115633661232262781283165236711419850129845446003303408844779270462704619855489518004331224458288645043167933554004497207711096852615804504245786800729397438959233137181263386742567024867818239945771049769788393720140786602415561335451421415862404247947634983778325002114389342759840173518938825532940353462342396052791400353896914055819097460124206519896798770191126720488402996049160745349611143297435749321450347363471814782548022808147266060581327796387348605338458379195875535217934896114730325302885402485774256311238926429975049075159279142360408548336463575856985097824894669714665102038690345267162713343748833804313907336013464857755300868732195067938469287485048887333018793311482600685786094579669145508405997876741690327740158309943545756715142338119432984220780703989554936148685748578198065077357614728359351135690338264162231614298667095953638613609362468348777645701125461395017078493486859216733897111940226807074459486187662576585518966473982392765348309849479126894014267955933403574409290173141785920491639477414359540898118122201307914782140378143163369961803340947997194434931778634981380142756511407696967322555269459948189534997599788119096213716283220579929279600237462736956237380083418538502275267715069408427594997587705774237945384084994348725622018250753137491169213489748376522127339278077059242288429144495036782546519382329463664455824221540082878732460148521461937503093737680529235316425443270390616565055477478907681912110935806169026644988610734863059517145059247664935679241660174303392116773936929624156371091623609791558636454031147564285638219302623208747631645490349955401682696404534490517460819771013628339015183966459411930002686025186940272124001536750955399226425908514702923466533663626203425901480887512249178367300831566029245727835199229097883747260648601774385037089641071746433436304011344127423778094068147497426836962627751711496554554938397282385059245881466015493524060279649664531864246542696455651024917976023953862171165272602524137058186184703598242069110330437418856368981002145633900837891738862169956355634641693986218858549022029431541549664765839234506690490962274196277869678055396488450378304433800702360854809530418566643107415432366559978613849413717877673354236915752775851816213964570631712552937851381142343492829611617175204666819258237665025933442707791334093974578878587369580572263058828234404951866966287789786135327569042606622803499253753853431823377014602137279724713593818125822871890648166982095595565742857972864870093171101640984936195342371486947717534642032947495125009712826286326026431933209023930291455582308697449620727736023582007889193927494757975330352285119729104053217043392326444469263835244486250764929075359471044708200453049917963785213212789453891613397457358945305656946406840583438393069865863120718227755660277686466126884959659563792423967390965914087713539528916658522781349210624584758594864154147545890254763734378190010536944708915767934266674023619891890133914484483056572733218641528273847427458462337445945130232508385640077177692713551380050824445018440233801622591398524743722984950886375200104837477474524025329624155024726405354364737492433420745768866738076420615739782821909843881953454542536797499682165410871034949966942911632650611913603954847890359752574833032955467328277487900516318872055824832934369843539375400141175593018052165291967796918455423860344889662608246752447596416588064390033340551068834611799916359716273592619845481894777153035036667789469647743061656375918466020164975756375050654329611139651333806148672351292774494365079093984378026801301741595766738822954202933318791196810254304456926245449040215225837394660753950280501899849210168242878421152903193139086235084356649560670963868013182169388234193523782503508194888739162822625087941066240723847864377402381740305465244466325895658681872467544386127059907037413639119249860241727513767870188393097902309892717781238526089820858960994412635259100873552876218040740677335716758017242018830889431846364404932045039532199118338489823260978646898197505881597939223702746063967445626744513589347545187401405831466784268500123174098315852164929726456269846007611862174096820534394714545915701680559651809523565478764073709362702124473471190161965813900764356975441569787519473267011864110605885911518217627737789785846076706763711683403088027821134717274239320011543611408570726031780630409404927075423386092096277140837229319630610612971333854753854002303781411339293661685292268349809745282915048388259012930184771626742189788821417781528975697758896423646397642767704412845047617801492035885953000662042939621934388334187303002323663388732767798762183216175712575137457820589582948829627939823628192140503649122369178848174538625889043731016788781585185368999089211343617626365735272637317498902773840254667367512639388737422688928099108112562633311261917186011806737612102974166602846536752488441292151806860026857609803010142803296563234986386812445154802223907480088505877687012614782975970381172380894723227978681930601180943493638036531272412174492284827725158395567332915205348667245050609541919525548815883549080225282177229956898899810468154807050938679874289759064822624455536027792402248516326592238350960703125401096299841172500850855565580481617593946085635585508466350308419159498264137814063004888305657024353825355286907585191537816650143311601971818663620983373553848588576697836758034135869704983290716876461650925144719632032054199316436978723518436480197513412297116242970853457164526231534113110486727264905526569072152628078325580228859616790281104734627062841683320606661519445385930277748648574205692546728315188942948404730172591697536011027021646945404014683167814517842597401397486347875767343396529926697186487423828189272374735870716313897853126892269380141843974937079616935469660871950908200500848620476763313484268839683121449541793934116853134150520668986670950902789776158735987749980872217652790452682326003950213835334719958724152129018442227291185744860463698113368583204790029420145302754219504716492914527523196447362295049795405831176728049438380003917337043281426553476528522525880030146787590586630304416801484147929859288467794380952085064117705352079705203674301561419263741242737990087530067782435200963538364153694571251050944966588339703479612704067033204779300039317683255820331773585390276995869713221254696748082579333697407633352672129062989174576414563840734082318029201436670523763786514387206757320898635122384460366681748282161741190148812210292021721237166814860426495690142254833534083779359483556835086330971286670330938430578768285196322464568712580555820111099599785679637912490301914719171298445256744982084345571078107865416429553860938754158406886579743483765121980594050570690590010015440956306072229771775485794065109579189460399673380974770893672553680245595736576049758731316703644185553381048252953720318857151350421339958097639047867086837152994184378296451527045239604132094863450168308838398958858218170340772957848551547043757433847378788142402177317985165428474338889344405235840000485846786339673837562776641078357714601087441171820302101331038680971456412536489516412500380237987303168702475182070292019426450487101379083140899383542870639355437917508456186641281269705670249956546590281729573850783753529125051582509026146861562264850131484289389776265872300569804972144355901238222528078066455569677837970221499771488805641008585482005910973312421425679130069290970268037381122910044779802907777177985461324278449401095711523351306902977451099091222700640651080952794047762456205271405650983293052174501255062539037563332490005852277654106591027432545055133361580159084188732713790059645087003901536837700000878780920162589878953827405064191579449272179761773011316357660859335650588775902504183599170911345561538201058911624092169795572307158782837173836046673114956053993063948552398803700759121610458309980839190675316888561566376044680584091821363571075196650376411977791773601377119369284476861574872309759257252876343357194017407148161272087104144202389774042202283761758174161674113084753768028688163989845336008340605754150123357191390210568065097304914488784094662165131836393331492347053280727350796924974677642869144335508173059699163146785127447563982862145457491253686817084854722960886211814445273768007568670888779263191664157770918273121141307657682298874694185715878540848700889800961918829223880780564541410037571218870756472004905133094059760606942140786694545850908269582806033154891275755100549935737265541524748743836609253701633846717377677585911209262561036255987143089430195226118781345654905192550607787053114222543852953860695820466062910316203627213934333913732997944132661295899165261244884188261762612246542671706586991285067410385585397332327406235266356362581536684960472712386855237664252355112827789769091925164136972899026414670885232336760301190970656597827247548187429291440838468582731743093797487889770583583326800885504869761258095341609048294232827014231175213599128507206042510131425595876680395100026204697049719016158341734701382956150874514145473836056009113744465153242695052612444495800185023113721170466790106089580844164774007364809574474885422284857622318500595083180215911021921861695291528691930543585605790365835987072555813697046228723118164058720992967805046805638259123315787404415409463221805282661064942673606923748097468341994832057006472599039297275931142905637083306979004510511664967219295855647256763519133841484764883309214359235103880049941652031061630964261894775432231954575861252184967449865533916754883368015681831126682537891927382936839116773837165878548604966247473027972838297201430452304937468078367740336467246663693360004014998206759644047814953234235118781052310655718156557895270136640438063450762361193029370285489346122719256567709711083680607933905704828321172023617491974313751680764423492269233230163452325243902947272412153618095705467817938201435509634081738450721123192854533375332011827052934607696008119731286250341947829841500973769543304348272905728478592805366038507728549861521254715810859571427975610677632900370738781770535571075978193943485592029997762163604667233525843093670353111256498759455404932341790636772918501805624442127903152926137422587347395492161321087586123146625250782242490854083980778612534450165359422537091414020232691539622901142890237043606579446527673327270373110905468138814932069066777005270486618205326731165303708988858073424811316903786270199860219777648483554367689666480682674199938712710033772431206957121720894065915233661932595445392968989843173541403676171171477849583655298602004604457259309742005139882328045974336904696636182891798584857623906169087606494843285366271276587405877859846967571826445534465655362229760650875109723732599522714643728862167143674807996317665627303745625330642491761782429746476467040940080051635490295782357596869662210206890386473584219116775881763037588578969967644901285226756795748266180305527816693390319718845785878018477455604629156089960365258500363095338412364920994235085514484864139801058699810427901171229950180365737898260119300809250493851850425356797590622557099591871399869135346380638748837750236492868752573307479504560801005183861235780343484403054468373316545474139756474475861617510560682973433727491940183857932954487965175191236139297017900964807733139468319665189514669036931233422716822039293344130040532896114954222283967335223382645424017134410604949388232377933656261396297102018122339436661114233925521260213115945378609581978475944850986736723617565143339322691675756949169873006191887860743615016798876448703363957580989646074018550778133388133135718316336205674649867610433717608873911044971464840395070134804914225405368373020258579987638318460885436731922917531859884338148729561817565307659386859599251252263929915794408221863844924632771972206542901659046910199985185110256334700690373716558234272258636712242773470658493132234659017943134597019188068801338631265228056135302128150163294862198154066931002435940044119748926148884278378431053667660749555917997794357329439094638137914672359757893091042519207498519778952114812179029062115508476629818563371967574565991435739030585627464497726642865956973488181804858119529255283588245919272234171250657214283883664935100923961769280670495549040827887591968509826019621539799115592977920566278742968160132300835494837546734957065435469735583730557966381849602155861200650411322013141645682951096242372526960609814556555401385584527944249605341924783327646165947996748163645586880337039451862379202471740655304296482404015889451265027683715413312703681609219913495861661480640422988078305487240594204389622004047669961135205313134497907166119423383897691165892353768737699572135381178545960504524714489461876605894162919439321478048062708571369995167997416790465257321532446054927611172835348896118154589828445312793449344797304345006721539884836345911373116563535226033215153061873083529975736550807116601673358763047519442986813499370855982463896025728586184580972161167827789249943383990187374479976640689740775052505575736517994466363890539159934625367149984234455079099187306093738706185906657018019201381327556936556377547884628613774899177444383212265370976876544132197110100734052928884733903981303793771045157414944045130491965782095787581211776953982977073507097141928711538496940154273393162614060850085197139602783236892107351030194497449781660873857174600667798922472665523060438336938276024113336048763877991515095211947305511219894609043116390299724364186903473964637768568253496610861344513686444734770928169360574934784394469749057129852670283248411377112548251082415606061423575969914964776923222321990902986132592210938710776968873111295202203292283139041066154311834524385739213056328496325317062809567626089442625761390740390577440324633898358862938104239229079164928567836378837521838438230423622618296087720699257921812548538269994603768323211334967225174007420337969074565820370239537014045047992228740417446547285816716345317328954995252056378832812001408407991400824266057809789887905125179338481833529264479840904303109621726280976139391694870754634032445880345579123387051281349226946098035256970970648283218686177129720108296580612410374031407261859616112860559727633589734532014343057551193522122708021276620147240070110971324488517565333729790280861160423414042329562594361177007877834439172274288135000030470596582100675148990608658448974685646933747673180907701698799254685890200566517183486813800832586490475585818532508358834588381430882366007058574771373155240669971246902799197109047175335410396662492867260377091825806659615037371216359880581104612632208183503563304276275305562154513348295339064878655963138456742244234775992748922045550218932728088814209767340539271577702996400838583699989001828126278983770465549999417048855506729290143372681276274262712143206840489896542561444148943789661032661457766077412111571231416137275613085092577463742400255419635166665639292634337029337801452114169338387276135268336770441521416186222712899940713779121589062189478467351426109475051613648657325864894138297124483564493084509406226400145622204981958393396023261346617108270737014478460946687234211000522280403232448736164136327781246881313587596868555407491036888657583467957068596933298759968502306812721160662533129533135270305447440289550175403946551673572728164059272353936992341276842465048112709077335573958883091587226196372646502890848417918230615277182106034124409172601417929799742842029120169896632504621237071730257070360938774911158896969937436673624913972554309659082516525179289317823733775160095011771745123486777947817696189358569533596089352183248289214642695234228243147646752537755190855804961256274901479086746165107632571296002634888350027693746385746402441733134940452363133515174386224504018808505847440759512831428510837517435879273501088397237214460622768916251457109062379884417758914564623063707500442087193758188724709773714049738926572966671177251082387935875497393525074452151959527763404704810392088989498069524937436258280805309695147501415586713953078583142465546595669826433623873867987212367873797045257294803470957774096161090993793130365089111947406023049217489907419854134447460322811340685809405907035662934590676393125422145281093333449880948696959775985709309549398024304104550461021827560012336915078738191166771313583142559061387161617822851220134850702095955727911534264016014309162247373953028907199382343150031086368581051502985793852152353455013559227142834069903976026083453106525880394878498537422980033458262005743071285049677252387340287052817880435892653869213056921776019781642856268743648096675018085357095370324122455145359400748416505563185415895946974025094163486953562873768869092746417359144426425118673816988068001977800104554571551632673190899523647079546431035318141120995593368315627279284503861620893899865597268129913234423789144235053571733830058259604030776342988352048932806566810430035667274471464984903070336132658549442275625012578470160028956300457510762802669563496861116241331824609082682494974274190507389078410291265609478801807386915555548108892103621443025511891153388639408663467112704503669723842027068659512976324527016499742668874380899339686025204804334058506639342831947202163969219799226678862697755093037046485538767070447997779049869867289873937182125749519304589842890814336031711271873784035473502231971613795577157166259884976940215007676862413716860085246162527875788584410785591605179904770399185138526616593382961948717064995783465803672023876767141794296059707259782613496304187331504863350434981519356599508253720893970252925245077913995303085397229265696471886706210766691953369254224559845276564106678284769500351682494336828634994593112711913053213603404399424627938896050918017291611440178280594322927576207421930669217501443096327224285162809619797277035312961729762332229611771320805834141610500713404033665032141834845313348811751399408829620635622012033675978005113789216912080556062629334094826051403251458678763060527530175363396871968996423008630820742249943178768517936756508872909963549105013439644314643566061023871078392086405163088072260169743740677686629727415413449932132595365422329730827972363192616587697867039213673973058163795881615145685006631136920721507330833859415935433237472893635036928770010024021094146300252469483390389940058263913613588514016409943236224488368280477238027165096291127030428935098786020920790689487563521317563310528696315869945619821741525466208758171295077996824740446522380436223387443399988819542215173896865412901821505372712310907639914706521148066512804295238006108467495266532769031817346221064060199569406180510996400451749421297944918502753045167789302602436723224912373408063961751633772007199477054291648752197134710074181983106988375072006609700926110722166762338708627558346816580501900983409614397276863320234497012241403545396253551650718806855035388168698923486500587230952229166704660481271586010778740243521113320639942817889727310626526066640608459798386007884089261392318354606621584509292113076778868361664649382200905847087953203874630463989603430361649244936845954895332526091124215096083170940696367591876116287008161611641081015694167477346076394693797578771946623313721941414084481693154055962977061874513915589109525925309895760095292152471903343033204705085626169792252047867319075764965972211025700641879689553682761490307194781294780499974397966853946921940988745128092877953092579880406917098032307781565286220109450618919354396097209936433191173516065327277827761872962647040662256929428098945319709361261452279195109599169382663862565418026981540904019672666441974747432677027198878319066053374886378988398936271617797533501784150163804256150281834736715027851395176152400093862239689477554063132593288405970474749195618354790934948980697453931108602549412119646277811200808508171390494050909509691697008156791831382885570136215431436533624287348112835773110254637427861679043608903379860098114307812996698075770014367820862454872815097011396598742497763161791186621708323473598906269022016918787306877836880887333048026078566216704311703931141012322771672061984160972539201088489781872630330744969855496116069996044260314639051715888996779459166006278879123270743256800578709764996173041423595510093367372436894244702461860159236356974074804722441299158550762252085682844730502240635343896554364207162231559234972722809528311035331035108685336115963545292757473145468423774364319590312639957883822112768191044345068867433716299817878334072760174044587387097610482134261734788622882790930873564736664146343606018709761853572263524457224717476379470016676641638928526063344601076559628456393459035153756330755353476314031938237810387386378981886476664817852968384788041627037060126538855185134804884528164187535307241011283525388618690649336992108191917776328503869840190555536257138150727984198663795205958084375458298011558361289104563779223298963488723797547323012326930483583349776017016577448977742751415520090127686813364889579158853412962159998635492644633531797303253310973746673680282060733839916108969396909916435284009302114239008987951736826179561726956317592368873042505989377586113367550729058611989592515569163372193697700847778870230833109944526946545122030769099530050084556712407809918844578990546252798236851654218938103878289934330626399060670803630683028671221978659505987386216727450481783188735054277156129434740362384539053583753041688178769915636555915569504150143306661393325452473420284715193594327165739467550276014355122870620714028441184349054337994873102198052056310775986629152772537591523195267982113132971669908073504530659329250461322406186095495865952349444914558698399706162432977734374578305208880855670128837233582299403226670302434933972170766397226704844073265599149121681843968527090261587589000596742960996713914785609169287677514831113565701661451272014912003959290318613022396146197506469386151709355868872790198912098145238865431871008646242017908944188445307608532433079236125895573108699658623765292063706186002315267640634324152164167982245191795072531294808488579866752186896569301150054432192171375944836524858778182729456033299380280112111881015030247770803518441404240779440270066201795943948433026273307941693991050120404849923854271739601934200162610991397399022177242550609338881864495457228508999947860618307358227827058439144980643144190446173791262436972732815694489227927183591856851959809583688061206455161330880347055269749420779785802112158964257870499654634147345976239334573708924328170989570818217991438558186059975723360417401730505240070204763038838720237357236233572103015276342733886454272057269044310878298379710530225815598893843620646063081738133003395987062411639121099511902590207852717386910403878405850592303189844309844467894982331588148098497119446560717641881020321981433437989176625359170380476022068274420577274017482225735720487506334335517388288004111374457197471193676724291268542694084569540830857227243459285058214366913854535382549772158438423609620480440479595155357495642281701637809741974805810292582011465211057788598377156996536038790788332799288939265416886626779498227577503335059489248041729429504156439423256554155776632684235319347438171973360881346463735655701506380120976296905203754212195101345028385007563307161255668698292860133098072186705851408857616662906460275086133104221175345906655612992040686503506222767677004130545109347911710786533977453430579392133827209534248441433414559539590280176770235485739735221733484741973563142765611952338138373576273046712085214030172626574149936709188855598557088211367551334030622908103559120046365064402415000323408074557493388423816044352204789292641711094071792289444883396650807282060456057018902424895111764442492303998233671174717503005826607892850417766779177132951944114342538082932777238846029159067625628937390367834106739275487107269660852321817149158267519905282038400237055397878739076702241185293267942236827615032290903919376647878109621296161076001373467900152356768325856881987133390022672033689239952192869710353356274855895523964643735866393347103426746928580035155273588799568557264849589531658163746190179781994076873057202593762076637548528141414966950777403250780486871633523559918675661087548619598287627305655095745486394436400680636626973880862731646265639351344796106989146588721865962391190744080425615604651837094247329804275295134127327381980211672171949350210302221774608163161372201806356112779167519244076559032016009679353863697364029454461499586113136622163236358675075254685480121748315980511011943451727821059319136857249927605196611532165728106127459029977900370323457303183619470817379538713989082872632250073655127405116087389694220022978717056404945537452928037674568524583776466902465161138689396472925266773545363096265955858149781570349434334190740947282164682615033470254707146052233764950361419208347861143823690362012202277940961943079456113047939740401178780967836549122601940643089392271086400825848328608268955396919288322176152964606610148963799662136868252246455460299735844913645329424610721121991767351251495501033669562031312382444800259351858647292659664135416433499802501937947982267442722169044295804181629898017029101000391305990079149455527018870602864839931357355085664386973868592744781870625881943775081453700932536127048277812437381705166715044888639156322849499802352113343399899742853227035067206497702693769979400083650570949854975078203709246314304060366177877792295201201091952183374694292238459776870130450838514034586916236158719650693852209393498589937062559719422485174720091974602714188870120655984644907741377842940890032187318892515743855244891717870666779901765763685366742199501053773567459616044081821182206376450506296772069212420570948463787122922652078862814072980574397420467779756857175678598541274527320390253796463182007160721534691261869072373133390209260829788438436764136900187036424221129034272330459263567126415394454151889676902795931881587004802399978579117513116325208811073101650029906603286457311223406269790902325803301350342830989557254362074929462024990870030065199761561010055967812557083332530831364914526839768975478741441312615794699788851464213821004155952987054806929198673509039609101444809440548070642523282462342452637666939499252789234275564771648556328466676626176506840629283976542845669367635152606350795553943770647488497513667195729827421935625359334121478909921355286729400452265277079993732309547002887147538831622380777535062660562448549226922031983350484715089190881011731684570608919526931570881153015533953652996311940067698208541979633135603366711239460047539553544926051960748699633792727821617540541966882503253943894795221904018669926500841278108848891984698919576871737666925246362010358671947874996665976187917535050133495149467325744836231780528899547329017908080139795321040198145376825558127550345796076703319483618552033721117304293029657907907869665714438516732151532154446254644499956023596613441912201826162231082785486644752607000020422017230328386000544794879031472461517794167796684921480586925571395739987676434124059983065090278506386744921493148983994670266735798662049276244200546972360143986934009262750389151675746718135387838851585361481702074619719170359164793416201431316550134802178168575967808050791964505929582797554949948648807662864790704600514869427354886622517189836352165376582943252837849963339425974226085458892009772410118311629582594397648019883438988874452555635448204873783435974884853684474569440281142350930778590611724971062721441205868625634431955401779486263416665156042321940760400439306659254736281455942342942903561984824526706905519777551440815412103623979569706807378014876505170274249888409772052018486043443842265260116233011885671212556211638059367592463792426675365032642673039787328433038472862285240018493600309220660631257970621714073962177683851148689301194955020862754412802085756200994953926614941010823663423374327290008186272594273175843316270058533297750012272742476194485907262365045480046250631881379524728568607810988764297195619672461554225958663661233169363018646390323328540223576925771614107620377755515262046377761478345560534164923149133688046453726358960218209691004168720758315299597205814755256371491099828327343252537921084955684099310804188485839430975413247369587089473846859821305995099910040502635728917169906250689324041095181459776574527424985823345842932702215750252181291932278820127866974709993179122782182430095990612558923221886398934639773786154239445762660259887836528250924017850908853247477764815046317669077653677588594918816605210751435753648106327520933566582889311887855936796281351240178442828604235936367705896562834790230063093484722396164050673118263555516933760313998101111463097682684664572939287041608551880526843437953676843924489917993303289304411730168141260476683725817112443436259935800291874412164771033620473919469589529399894298338991594566105540784299842464995824560512398712593803888229219828506314307042188348886416829341606399271121349838424970384006071674970247086929615099518248848218236810602754294758252130051201992087578976456643954906557745828727005272040700939172910371446348061235349448861468824219468612311744765318480529915322873856420291995222715873261214494804048549660379690907799001938723096950553630236685615825286521702129539919357645814135164980909245042037060660250964363699894748629967586737803606721523336453239477590238117669795954105577532461316548663022152671280521027377472030450971613463326708766988886993222006091797843956953521317302155548486686261981843086550938342511901569675998536972849203592215823350300741786335505317724055276499163757757190918534643825100522215539394273179635860515312447214709016986113796684795733538378985558386975831125115525933142924840282857276182712720680666426788808393186796503320637646936931969736686782834539415255563298146327531900347826042274983438614602061191092762303991683396379731283365767871573388795238353266961445746156739820692216112203558790079182117596071162532305868623335874838671487756135052392928707546852184561751619177976874141382298665173425545518133421373467650846413578727604231830755839815039441455704764066263989036311109378554674485080975868605677930436123617570133060904836034406147922354319862296018749800994454831032166936842156075689868168146798411231889463993492133776972743926904746438163988353640810343186719201303971515194557400966859475671087195270068241673766324027997393060163286999932438721644575336988001907489336869259293452969242541935036782235840427853393490953481426680653206252671114327038959072219117440571657359606538280837558683423709618876749683612383519068150765987648930514811872019632818806560820944539795030266132477233347922075572283305770700836264062491294632962538179190480595128465768852451119993897665924486228887338410285743753099102606268099431299678945826139740006145047981317523738018536741663584232529823752754325223301839939278914980207771707607466310817429584272326173101290248277228741653158867663755229019502129771271343263640520955435748297678203685244394040236984573244461431081530783590924672725428637082408415063173297948767207294680336758079896378474414606494378504856310033174274441573656209602097488939387119817894847029359894560619675315620637689198815850710022781601563733607186669053553531001966092995762183426265557181592666107759704312798350392356540272160035894711141028699465995803153057088359471489775904092917350668275094305407960466393253670154367539369933906640117198054634421855472280937718722547100415436513378400327768113571597375225198141510630238697112628307377891804951899963552005010486811557601987863770457508941893954273214598569841538556234337829079222822039348449858799096525530075017271532935062119951546395756305948431144384421975669297846972675035041402525111047980177855251085842432685400392202303566692384433733977952729408192658498271205383699642175156444153044993461079004572839992501591850942687588097836594091982145909122637946148184608890199335743750393942823922206557465255626360936406247197222771738908896217516652341388127204823894786093206031549130789710641274894783874238417652169028832084973372504041554896112677362059937613223273769659208484934218087143790439084371450234435655642648850708304786469409940151474305654786714025512259688935485542812059119637169690326829917214262825120003300318300663660989606127146641640308553301720547355972486602673154665687076858890071399120216558073683473234816917231113532214380374309801700576968951067470435233566009398780021829153755706264462722720714302356024514420271348318758446610200265546364659016155978428932286205128806433880535038571092461071162640005936609109022099163135211682538229776565020950460896847531747535166587024858321263338461414328898944825434172841357078392381142295302419558874584606040506912460982040388672118525979456948295914879201949055463110064942009702386214987882045377296146620538775683405139853174498743492268912567540369816109073528389322908797742089730679565721547208570564508216890467553672216571436317121084065096416142505108614525833495242645462311578401820252032320408965500150546004445972546509850738070927153470832435541647078470484254301623355656218190497634415484370973124865951200003847415676524055558707070724437758854689241260409149898712227338796984252821709351683243614288224560767148042089894862591434605697968718351966390806116413784161690053390112155387716973085219632766579539280964001044651188525374603424024072482534717165843324995634960552785076784728059706764131323163330415387065977561505098372274414156093156618429040098501517933922574062451710697841843926961034978852645308472550136079680409790787864944788694666028096502394546279145217512170217890344242429348932251992069474797349822162404974665045227706503887803760808906077640973389675352388583196044345979132974410197353858749230783038444082284925954676646232943878191659953348081850982625580862451510959484092203273785204855908134738324431255285601139735882989212926304972708340841259923557969947570898024070723766591143571580455113602377098489468498649720295339679979163806080934684238246004427636096128919524458367602982917749211101719947633559706570599571977868441281104153469078457964551438437794838406626610548338594555994878201185958075523006957771644558720855974466569497374479108018699860162005052985868282853790428136886785362973817188837861171759705220144133977649168061737841476164540662312082386176008934977106645888130088461834030177567057393383479801458094668020662256405573128443250249408818735136067465663390258435731245202990430875102520587167650859957711892138292720799468596158858510474938520084952860496656257780228840570705346017963976815794400329544722411329253451682531889608325505847962231213028617566202287371532487155345622375008640607617651902508196198485635029238670970728536414952258888413597471746684119392261414178971109780737274587730484479117948522398359873368241332693601137746564741782036143712678573417246819722627223148889782832577178133089387605433197883018959805303467393540512945268473857087898487667874293072396864265520206956353878008546638545145625586985564071562308217531026831200017509073926719890854021503810623910023074363462537602725758207447511332954494926703598089432307743626310249785857937369818964941384669049334056023220107127550579571270948224793171907890508240909837166857045246935439253930072510283569235478668589309367831211788462550892112042012386427305534271688055536236379029629525544692822949607078649372463545121460323343282620453097589114268769912368377293951698305833151901908914690567909825184207560084023184147570539236584884568562221329634053024671245881995169831130719833628990342259937494323513504103486670309389085564898972952155560240756035447119144881299737002338068831762820741067452712491497549062392601843119559473575854508793359180078961375152495235770537565961118190429513312045116374349354926958502533235356727347426981866942385611418605013041547292204106960567331742254946806188063551544412897896847912033601124424644948328538420382093226864397618159256244886270197072000199975057512598277756917416337910623133363435418847532119415876844787037929345140544862547740158483854188586649043434898230943864695912116500755975800359804207984900290322516434821424902614062632759222273796800655165224741569011086035589915915977854614321658485053042282490513066364099373947340502078646965469317549758578426230602093171638543710611919450721378939366504540359879151251506000664316293889470402248336844327953415386147413755341613554189158106888826888634918339683544768495889302172258053125592995033413679264608389860554308423541912825938874439360297412789508194572332169305168580543948043876043505266861445685783863817000797420896112375710729797449861083267759073419063594706003673398505861500935719551193609099465655050906796482827078477112720807543182499262210686743050462735547446543049885279465859549498113468903696538074145422677875002143204795377031567480736478135599996127378727334293646024422063527177429702239582338183352658432920964707139269359911259424811449147833570647584848980338557642077390484251788898306643361455232446919105004824187741280478818340093522098052567277310255699703423882828719594995984014436482458706528227589037684426474152353220731233799512777974092097063619005079904318074168553022212214955015084214157765626076728920137677770669200455658588891528577654859468320284007437319665100984374374976218344059587163436256887236990926591910667050534369090039784997769551119977607939097003874663053859485491631683168800163535702727649057700618757676093248195630249810833877962332067709546382429940496822898403247787436553959902808816333320717662742931112044049233785912512850508165529068000261368968617256303799873598910265037749318498619091196544466669720792800452638479903214846829217207727807479545404845518548113162494452387622484458642824058901993715044598296410713690178998148838657923025163779387914081282274884706954748611364810296355087942530467057554429888101552875674129510648749085428785381896709121879197685462008426071683333699168820143766425417080901933356636060701685608677846355128507538530602797274544040541187609335780650833350218192775955733885695312344967762590506758440622821583504819700302216965103630201809854627578682147985720614718065570034092813530773001231495327725059969832012105246230530874502415540655352784960521755841330348782870429093891416219854194758472595032979294626043938980212018657779648521090801861513720485892869590981138268638951614240270193860093222921264843392286819008307030457759771913945989304330458596088463672183386605712087162202570036736078888172812320927967455502686604898297284716160975825849880954069295678865080667362186186210087645699333198187543551068223946897704084930169384356362878776867698907739646457792994658386558020413185788680520189233590004966019873570890296083582539824185296498997565431315646051921270859711894683614907021787602025327523077250666472155424999766107097916376568829345232093315316334857206231027145512229760005590548204426723004952264080929319049992021616080008535239774308216968942830477652980351633550182073042601950336427024975330858474706663393645626726015177431597847323842764490185330086353696210555657802800219159405228002783494941097817191404233095191895414143994017159814242298414282234846525904839614373573571124037674974602565712009084505797670404446107048473708948639811181113711024015412106488569534138286085230412030686548125283310061295461954880291705888645549641486060392131939045578512058802672488792641716293263256103724218211070021334861374879332910831821560460393774983846823654374538771166925383406922947828495473826059772434561516091057217387757060630872074165195565808279184336433667474203701014426209866147216924899306050184785267928203573908842250923762942703038162081337190126438818085900188838164844910721300492550601678286625403756936864164258770116656486454881207297569185436897954404856144862460317876458713297589306661722309674609743808922329594115400643021038597306736615290748017805982541445780103054181139566463771769577621148814526764538379347328290199964388639908796020901001732980740719297981354865913154049001028036144948769517438065717929008273705487951562174455203763001081969119788112661592303154531532893771077173456030276720074054369836132888874598126681952785009931468170227409854777824736420423171558003153790200381581713234938371482974303770924751607032699419161557254851173892969879794982295932436202141535305214132153990535470068252024179019721153019895547288405876014438663532072709227495337368144748593762310379384120254925348337568713122862309184320843206843369265971290930443024258446806871405761014950863785492339987787361582488099857114980586912643482326059048470916958687937888050554174053708596746185333394623163644807339977828061648150190293864002517297068804767887124418957822726241858280852659738193355616095992744979778090612036351414559091038966518435650124727765801399157597179140427705649401951312863611192400047562242770395325702706263481241870180523949315538936715926658633027194544224561434368679919628811739719504063295217182561175552064230266120211706386343177635141100363894442255163317325129966933776468315018093914084695196283387445914109146021333197139067904725944329217877625238882448293308111568531152044379419342486522056784991738269043341472662207078734507749082815588691281351513107924171784836782847714880676957829950628221833618385889983039481646018708681488051802782281458907337091110080361099790493356099137567145041097404490393244768412782194285021608823038272780121654052682280888370356799977767196703076581425827331396631739960212133564067119675612224366428855676383544980490924882890856343054492225773788453753795055190982893693850261089174152126348027366685270378880733973654576712282237903000199118817182176904676378176241917485224575957267584956075677429291974511578077935690463731458081023412421548692180942739478483822634108014097773012433927437728085354047194296713689926479885581254165261690481098921423569535375449888301172833003772967839559836235264402997411296485354614026781106903192666180067572342247943466206868782354294135924955881966096786028634098321216469353026268403816440888011382431811916670505095841266523720462141385809716441892141868103043066108213489143422984857783547376513290915992475672748848669669353796457093791513574618202510839801126458307565911248195544097752788400872813830482825528956929031918675588127569048675352682743671371598379492985152960795190556950284410707717307901294052480097884922786823229577949417000383621788084367394566474590072137833726097602370854686343701944072618791059930564953198592997437469898045056965748762207499596622900270234666432086355188120218407299222116540018318527281310718467688849492907551849470486837257336194684675542545094699971798466912577927328416539595713434968330754305823227157377591859631657985406994650391869728510748132296351851418876268112206855327171449895758861460100181326724935357649811972224683096774262642413795769509963319176081167756486381510618121612925659832499810946578707698316331770997738167601345047481690618120706662881605709100475543785699254899658340309520098588342161395688784215152930628059317269472877217366835159330583960115724814321101894291809072349783622439989474796402264607661248173950606167630607299758592381899205055826803158905702058526148757826075350777836317439265553395447810432909872658635458410009207149023425089131330772654151170808994333016897636248245899005259477903670170150215973603580460321656993519009978553479453653503102458254766694468809447165141280812938993483381978753632381483737990308463606721002924087153697536674837177022093520439980366308467269116625271822264416195138616860269196154686991046447968914629584082139414606103427620402948525256528557574042200608527832727350406797437661562662747271816808092888922659574196722629112696606957766750319376442883948476903608694592819124602687442001452446728959288735482941474220627217844240256920715091279181817215848866145649571283061225569055202940439886674218129594578200645945111946653746609016813248923886668757499509670177177898604068786219667367445254970825690242617623534183130180465601006200797113661338178547890631480919653414066617550240717519757000576799860309637744420797120748731787753554183783181498460198522765360685995505295260720613875804069033324891816607512896683256442599731473298197951656476397749550003304945689409091946583133003796423320590616635584190340648808319636501976792450481228379837184606351190380307826548642000042152539773402269303265667748043087576099769637055380862835344905816049649871237033060087215052768285489359769156985767161274872961224532883132846589782781580185266768117002390023197309173650746079726307317501042482193274150469567252092384705893016704390917836837061997838719452037400204015453173376213541580672874910743104857527579217967606253808615882946776417382620007032941028403834438352652633193241581736081878663064267985912232522426126509519488437089819707659634689873067196940641602722466417136912883394627136678611968248721106617558314964754388984437273806678241546162254463204660312180097829002226337981152060369172083908831914792038196984196877974840839829070166499389406420981170624929973207318590991761623921249101426323586449270610924761109952230409571487904401443793784132057357084207777185585570685444258108622502495097644072939630642364158558043573902880357883545801738190448742818398437672447063827111027927680946501577842692741640637285919036200371965187822759542329063799437681188133748353703500947212409863432368772214358482592909047584265532088853941632137112406051847549906470499059962165456323409947676826382955358347086821534108512621502418788540712428876999209691849351286639985215228583676901206714963033517929885324669189967558556959556037603895892766479275459254751692676856877891690561621274378984017347122389190336849724288378743274307302573521466682837536780603184706684359531709591190068472703099245888983025894719348233664393311588506346559479943609237188975289373081682873064745297030829681941804762157539452180953191870406761759157067132417408076139753200175667676514611337760756146169656945154893503637180637522879988514274259321398312620842546426565914206770022118657433892987147432488705654792810034867421935463605139464286475220190776508325481961495531176979478956592689920873820180519557937215904089349476945450307056083835786009401253954861482844598585617000599271157383450852184872985354064775533642622185910203778966000599688434230624088068532591138801235596209187005758086934155762912799470898807041811744589701291616946657625718309728325490186481515516361963070199425556172503127299691472336300994645109735104131158902632470555222605007841157431211845043508310646640375486712344393342997329400147465507348346469805205056242648131353388307982117805261802800137062887149973012099889329351796824492816687954483095179489566240409210079135821899229501524920505810552728611332806045520608261095204099782017358300523499271465719362373324542532668657862478757013735442889657400775008126283868488210223212905024206091920158242579318134183969784833502188887183370217079711477404989950785900128359890563937149530465817707480249170487272758799311392392218707217485841991729728292132642891441476800500476125016167882265218239342027350912745138251427914277904364501941117575412787313621652299674227384575980198867174582085889973342584134950981990354606493724043083957353789267243711828946477958251610483108864701195518590208651864469636623482644265117246039875262578076105536406550987308574819139845261254299612651203468093028548016516735481267257643727194716434770851672582819605841846091360191176143980626656801521637805373433781151077255713910517528861935799094725928482556449087008408487306580543495326317041932980930195106119830688249240991862393953294691877708000319279222910739337433347462376919329781657333304648851060066224714267445011032369351953271539484537950961995266688049266256190781438794346205892487987857864540033014499644139440900105952191414166666152386872651910817910436563830955891190245423213087158278775454233919670659804489638739706279585138509295228460454582593161761696687440107700327808789084970485720828245474330601202189557758001803399231182122794793142392211027747159771291656176196187409280515143077979987190368108606259057593513995414827472053973805308027251929546175822183770211824774759124616905342462803355372005920091847577404442294860541849787252549789960636903266056114103142489095987887565989021134662765797842600535213436648829282419254148374383644397317164723103959819227502152020573310534695794389845133593789472148637437426083531309401851274319697360848581470918546657957470820503843479024954379930956750174881598231629248381981613506035851723734723671910990826869818957769686578115635482534098749405620168188390036120880608364850249986133736415948939438262082651963689022302044205606387715750074900131373733947805832291150092225045276031944985279137511668755108438152078803692189748790715103136451426339552363686394237009123787752480912881680026350984364844669952910301217810029059672287070535089173040723323919288235638041392372038081358923143153480285322256119757888614916365860815786555826223423540650687939765915817180842679196675258049720225301013677359995200853490619081969908759686033600271375503522428160178641842195401282346134678887247687569902795066751719877686479105612767392782998895727703336811185872211743013430878072967569727617155384295793886860023071527266457232943255634811956220588798841164716534820622020723834692579148798598374458746164228091115536543380163208465110766620480308267233370504014715015881665088696991371794943249827638893648948035475646796512742850446831751020883243870619780831542644191338719625696609806673712180181912529414036910072524341463568914504984397864715547322664637409220731584761877139186799646125421803768641339437107013499578529779374163058950760415848881218353638469526286057030572616267895572969468544498620517298633295002966245139848261145432235747244673790182014075415662116202999963261902745453918519462665247821228814530417177858003593350678372913874353461986423519310390971328789274333594366189007512292698141513165734494586680554405821045701109714947956652853116148237129420025611696153578254050491968097693671059303626615769055111906066655898012001669412668744993133345979930715438219259439574666616125118192702801801912723901116299776535217115521337069928657553566361339783944606376289707102564695646591454723370373151757438963559812128977299869024823393275818080601863064592508621491198634116111691854770833528127889233133523988770560660566784002750848351135620502946316177293445142171171123212215672698285987073213448045101875611146185120220765288835222593293895144259235406859208989365299424913153537151659205268236247132472264978181615673148378683637517030242403548317890330428203320045208280461549652343600915362852977649118134756285870486427739800992504139075531330522969465101898545574658706933722893138001633801651713847654316226671973613214647498480088793831383001480043028303838028211646497012471475833668184334258829997395725661297630506009318500365193271128220307555440812257079085486874662845149690727811206333377959606856026374470945417609782307957439291738675798395652793619671468025062500729947638991360295404775088350884416583677176159718665985158496406826031420207674424400587189388181035385389037696555294713420886762150692023752290497720769065258215265104017544538617187264613270211655849539664470351276264574207625722982480090287078359176403150993363306593227648955717981982045198156628102979272200918151498984923525467133161638398887785210939642402888904266625289728070297475728611225287764301633948761996358440270445986230252576887933558320782574686872900939248714568956617316976660565567029772750839603932771216173626318746227154581102222136740807651089875707483793769153457842434186520013976951681512293204706547792913215714267927628267146720510118254932185771283969067963183348309307758962971746001783933224526532401295069915918390749896837716773911791066217046475259967068948870823069243323114235909738237624744087956622160924656040037180529374592720310818922239780419091787424956924382538005412704661118925524151412999853733540165147656348390674890543196667201992747895106418595660797637638384587234229917015040705098530263764368056056201121026379550719834520995364072759789010469488365140602565755067999485825048168136437218848095910251061449485135352711117238797539135426526505420677075628950365044325127871439891285483631216355509668008968058258754806948095505745206604935505621869451614988524301943850125522191248097828651739948251112299710186472443214467348087734127543202456137225126833591174141289160583704578280502325853279206976193944840100937928839505914499544553420944077605786127894026294473057643374661135288041791143136182405865003033414550160236019713786940473884719628428446524072718564923572740062578874365822663171460194085440126955735136280006193559558963453678927621722138731946719327217175842009541240106149349011209246519902394505102644249503566880089630908323807032894317632262198622398229428268364080223984328597576633007256680440189882432319870500553232153915774492248529566311525665739325679620951658440101135739664814034635648708281457172622952501428412488629367678158414272457265758301862834743594427694103484958264465317010018398616882587600030495421606531094604462765266244912798504440668099481941465024212252361250693303931503801137394761551937745167850929973099100469884719311334245339675086198395922835491339050432221820895413129189136288866536846830641232116317104667701376226451048086961274694016678314895652805596459013475115291711305153099136219339767044665964857423968560403714713057037219010673122029887239671297692537425777016601033337131329347843707983828778048516781831152532232881457746187142897262703366522706204625598645100060253019365435126656656551182862627654793079193108644172842501670712217462123283683606706580456534659075022346601633236407851962645557394215917285419256023895349433705063661420021568047950856547383248798352423608612688211378081581919329455846901957488683234966524859756393258826081391566466460666746244061575886705282756407874592482045322657149402386741135976930742108984644610030922215794222721052760147046357333001798419857580646939606703248122079596761397597305361455204187350078249817116975850009846690380422053554192975261735065809376884865686330255587383367641623106730383523674396757966653268497066198331494558072335965921103302567439559443165466840536966299287420648249611068542859647044677749592896083806896618841503583678787729227763442479738743610836727755630826737660997414097131661173122426512511331886383999793324245340532705005729828484999697972326288341241200769497965563180147212573453886448586813668930333236353189883240410648204960336774314846337319156364427279378144283032051317288776978199121700310568444409450620010394103348317721073705630125993170795771466465233812636971610879698156735024077114455209244308687757902204998966167103556145080539033370895048897882850849094752494758823455908985543740891663225349946230549051387148329340752741154772742939945821048558697111804549463994791556554820765593691773177866011017739859866792145593626577948321272804746857479012622019210037364860191493113552102098090211452862888595350355120903965563517823042108471590521004575856414543438687095814043735171203676940201501633480678895087241155570216600299904155187023684691478978231320122690540458713644795492750915813973309090932532263574138216002531453253130886799922121673535960838357250054228753551767372608930253244578468221490264381413069988081042669790512282587069850921983024556012325630071122770495510634352153521698028654623830196498716849276803471569242566685144250501153243629137863132021918547233543902525398582157630053433377091649509347606222789149996932957573391970363456769950974966688729226529105637389593519583433789180851313190427971004737032249830820888708866054018763171335870942095339201340780712113156561032313131130675274420982162214731077751640665033266098868475649231975454607777161548093934048797310981262407608000362908103855951755487469488811204096867234451622637789979376864205580510844975215365826581078312176698062349582779286182918983032130422587451840043037974614179800636900465195639693304420490217572109124260434175005880539788735567855711276959391439137367121299082121310802595557371861060849780651667430776034641717953372509692466059567273922722119444123508580859865655321201827442395320303128761553907902146269408167716168307424298477572901027069809654458415579425399568251496717842138961490626750232234773418451536208342246424892926284462581450077740649236165593680132535009536022451329901267033019815972329439444806671146121465275012346583294599454989538352731452335156572982132644242751287149998317848941932941003606045803560839860552726873627250444537745363854171499300901340164409717187090402524000916749394717124002390816816370072229897598295875212205009559239765598090398881743357573892065077857039716269501353003053344571327996846024549378821737577211789106550668338069276358397018592016044699951211301459960525787652208654025127434332519238043192320220174684315723863087420141714905976763421574056766986567750128776438602533778461580052646671157849228611889304066740152678802848464960136368034462659915714278762656367646415994908984548592814097914676283386318236976639112440250753342877170755492353843168516173641162224294615944358475737379179062648997615272072119276324787905771939214461589398806556603800296606330039594832655046098590836837482534698403186223161648048368314909162673058642453939876489156367839228359790423325939068297316181682828167275162562696097637319512472318295464842265071285677195346285608192111426695999192207216949036814022491665463702587849707963626938534298511463962887979533482484284392363841892493360426268353697489397881159860985525917496871063411566387777493578819644098654982208245020790421253754626874654574208269312117728097410567125059980332619576255754735792575346746215609030052127061937014322640091076980932770661099602672227025124491468403211733781967189259604905686266213573607005542995000001210543654699807219548139025826432302716906395638240288331375500831445358825564092286371427249428344627396110745081958670086159395175051643136214637387142772998627800057898165804328367438983072349842475567960439467948100071348310320427875756305892900454210390206953520699763779094319893727631325291734746099701702565473593601864877852659245761808226580628688197732526837073390232542856441266079265028448412934375531800147927503847292910249455491240327022476048222159509739526700077100475712794836445607587080858233273577486436960911980622376389319112459258765900413244718503632682513809832786217238222918040734009841521567266801798309190555917807193363029009962670849421701342550540492110919924493360434960519900460663102759717552515315996800430202923171861487889579955776613228649986770772243063397231837514547795288039186529847344102450603497202323821384238043887387089420929745500260015427389120203084343564584014394634236684330613554635409997293891016369009959768470560439453957126300772575735034712650674142582485700517177171709051032656196268309999173958039186878496047912435656047506961479813003307313124881731400219833006339605969465089729274029835346378958356939074487594987046747026590963685456272094777757566463235066835676291633763273380839738922615592670512087537332470216136779873676840448207786259196235583895238489761586558350722533683548703669010560461563235700509904441482948806495662188299830963877137665143728070201311878094722643590252911547748826727823223461706557963920076239552813472472059841029777807391283470101489496654935192396392384087623866819659050572543682280684929985337672748197176974589277778025522086908519601242920263793399405381642332813272658611789128615257389387260462537268871852782929018161215860669527119525603026012316584766585414317376674078808014907763322770411918881774213755106705787040199265974075931079071409572521773406078580916354306414434646632422005667259107097446137405481550133815721302784765236013797770764590721381486824435229753376175757277793382896470504006130258664733555153118703230468680995191695208659495252502794095886542013179456494205517090815089325667646412942737614340976131020193292042403250993873311361006973476085167629352383805179192255228105327975815023418492275529638936176334938143994346732904183482897326756991558383198995667866469052993542791418484101060908276692843436973109472953221681086519853278526941530936430275603396044389467781689395238496183165745523150688612640000151361113363969119480196233980278735113078008858948569061408322398609122562457268500585227312140376569806080938276273967182005784721460507607421755293416312576568517537472681899606682967552762263414032583429532292181658085866652434766727379509656854014771319405392137771237076700843913743957790640908210829164869516654830289397259481617627042590305417306261278662703302986617140074380537584792520328419506218275682404203572295719534688479464903402444270118177179190427799512158870844266526084687190627815376661917895401706999655555307936750921560078007823928465452067280755568318226324127876236096810068419520543497111368324975180476110385644955003457960243082665161378666187365870017488787177996322359960383001819268583308133433414634401155296585395458386427775265470424994659049149653088888651698609011383336952637215141641827820553499752716392684964727698031590037576563464803356201905444892019631219842599733532636532142859216705979366918362507171487660378539400176557471093747833936858408695200437742831308955268868681437376872675014233654122942247486010706111887188024809719437529887943776001142784917124057277343970017801284842165070530126873621754731199261943879389952951194234862917091860207933998966443345036457018216598708048445004193085477299196310574102666686049943052849952404282333105530765011687151285451367822911717355566077076859904306086446290688893249832500436979746445618355051969945545029991151072485793010668997986916561363060852590056487971713500577102121284432595259188115045232952054963400416528469082535014376637580968430155007396880461833732064159562735184524930398904896150495230783742721491023328550377128202836081153126657573752928663360997367514516904266660718711850063896722026776749355678105253436467868415470225420051694657696574477218136753391325886328187993046742014225515162189953365154023710050060582695471390672533774850010295172213084727770638826660467543535179603204508090284294807522792546013186429312532244818804478934934809333112399957883682235400004968921817230779666594597021348057442184837746012201967477997824738753976155222247657875038308031293824168504950758712488071201117703270910472116650265395371647004244727885926698890466523606298127060308529538344661400297217629016356428840228956704209799129926799299747341137442595022829721793529653802621085597308107374164897505330401846405820214743211506434926125044853456394777686219512670272631998455903233021381847708661310214962044006908608075607787290618043585822034784448644449864164586446774072558756249247794681081443857385677588843357641524658239458246048771872861818384945786214765613342201706853763410160428716084048967305492559521555994659948759282907324530371586164712784324596180668681217305198395689583796258143533074976761678562230090780531483174678010746946754806150405429346546925468487220667891403544251536734737040962119748208594611020411509374404079694741281146213150782467146354530857147352934389145429028620436817075839759811323011850476281935222606593638078076450456525989320017077185472781924968870985620738534147204374036975328026525365604219559517846393306216069923831416071289148806494128741525354678470974349728053924533318947143097197342866480930604951839919160014315593294276167699560548452414209446596499383480294217193031825755973497063027358167431681764512205954541169784536138266218046487733800060547574456939205827621133250448630338639663791363611182747465636552612816797312883186193009444889080309364221973488595463591755051956125096313143534542747620573416393741781618644242997192012606502213620674058197664394148913706691361896475887295363371397061554113743708296308625719371220433197977121870674487604891046304258619060221045455218013251403656498123636485747600951018881944536258690845150857284878730593938968709187741604571406969815686876757420171243776614083043547045283917945246052000937247495605131942834573117756909514127792820550325968471865750187197551466486045994937544882639938455745799543293262821191478952752892555317923211059499437404000290929863649024228582050823260533014564033482479410691547334370792061193373115303065268832521936125551368229283508090945768956320360052685208873360863940537579027380051627606646706620641150365460631233822313463140492765296173253635885005666548266251953887719865723698805137046711836287519626653656127321622942150516015607873979298134931217482818119861760785781819870459336224858926437244138748107697732050661384683529596854403876111662368806327004261321665801157019796949903657586225614167229832998603353853245500304801624355451179805890642463142763044381401808856816778456907751461481851780932860348156200503682033665843217360138067362199263353533008868162095929143242563988957580105218620524966619588374700496820960827237527342619394939524637952275993477151621429584604288743844410434705122081184166320774034229998841950381660622161616559159541635418869874018557651014616988425795518079559456270115583484244198007861237605603366919024470276808007656410372432440487032290342601444365928874468518902595637595478476772147075893160354285585390522412057469839115277168086378652047590573208803554534284177048406980039779208818359338285147511506485769690073378111415723314227109005173497436363045505976601893039828567504460586743836149701843707588864100278075448435777603488908708592038595762702189355016111116233248828123485045515350417185355485642256837156736889224501322351105994823076941732584907167797437385463547267183706801683542768091385256441167556129680708994508199136025886198617592247748104990051246927473926595023860560815812217600942529457238148045656171923610591282837452747017251645529519796719768093052216034058283546677842040203139106752356346916565302352694467705537777037147893442294645587694719640752807370972598811392678077605892422205968829815227217171412227113462370974551825045179004499479815201579110458963691893482609326213970815616314944695478249827510705458553250886858614276088930538717386917568882783200704119313782503869211496784756118866046289982082992248665854390192055513551292418615748884482148186712922952647514418181831755385501314724443161913764137268614072410789082602115131500726320430954450733181174165475653848562134759190111007829500735704472462475723605392537669576809180710425913211810305973657241871618625191666311132662080447811342109117975695738257820175486215299122441395427515468068207810210306623300723708355535298536926448600047899648902125575606999622920187557483741527310829637355123006988178563462353928456105559585328177562914611748408803632408502452496223282036592514298033598650987512452862900478596789550171623779759576820672314063711300003034571818807539083773625716530051290395112093676440659256682230340280330179231836355867387088091937174390215313137308502293760843031544438724204142318634201751392502679292669704052196212437058053199995217870103704829399758657623722210835374973875434221432126214860104241487686610221927790147224421050681136490145475595915725280396788992538649875662268918773378428501032159600448787564789151555933705963974391985857403345586446298863223892240593077250070929649217560213596280015463776037564989206052965703075683967011982627784987253716688990405010600173423595688760400099176877402242489395676148293935475433511696274290079990686637312738701018902483783160297667086787501877693757291416604363051538682936920162292811229297147574891617842828553440627065035732247786093552281128556866560400482848317497104965776359306051471979280155551325717190615581407154737209751864125110113135262548688182022650806116563624477365526289630113068301699448110174429799854761583989011874332185630255472412196843309335061366950935560241172414121488733309651000576605706421993262762171497116322502170101451400928214282081363451734586260314466954139160150303393466507057964108973000599662687032210393328444927857838867300334228629081815084231145378669067471440863773821720927628527072591982199148865876614833870994256976223929944408856211311167570541495005295799986297196612397063357811350776150823239421068070474803431621613578877491787082643416781752491126146425258222760149217939726514994426651126747165676142715496638346978761057329817887418598037911960487090232339422943718690788222848376602874361192028801975885657352053536598204938646051274216374870099275875448496323646413831958275350483022409562691765363016430606857821093553026481927103393805613975352730767748245395886428812424549602608048791793685925163664819825863068269084486854431290695977923962959558320045292740390094834759797092918719731276838745183452136234806653152829901927180283827167184023973335242074601964727455087511716309613798570284023155085084295749786023882400538391540699143149917162561308337638514464171450184762419916512262235156699076392370688910454545753884228628942768847150287112081868724220751227069004335810163691403126070337114708468962347688521642496821350077978816225691784244854346190214701829624179288580012409039287840781482740922857668658774187548723201948732701043599083363712401482689722565671614118762728640468199200669666681734671495667464840090297145180830837803339556865353198177105736442216020990695732558381793751890137712149336083745449487595956093977788518140171403294921774018198878653179189316240540904260238422679951529094729162808519067441516061473199424865630261723809746553721633330413248951639932168900308252248998685757026158309034346767805866773962231475834575399586952839386344408274733107578936923944406498454580101352173792448288154835048523386737305961155030743164393838185290377534503099157411964459477061252775056359570134585298235210658733564124845764437341627967855380835332924127320287737474029026370231090159195611322422613287376907918330686027356971239644227557708669739026225301926371697897286916122207753910483108318864559750348480103178848969886109971569114818273702960581957140748782073227173049254919146659738742043387315661680843940141982930754684711052414606421702758154101284094576625045206071158898462131371638348967572485683085319498234637377903520171753222472350041346722699450101206299225175398537452291769247732941003783544339098230566461507869311172094378374505711409259660562467146079832366750096353746668936945331213296686869558836315082166506841599684162029199863371119218507530690015665836583123382283676524556506246432192595679466464814781215409280714213634984201059613429550867690256983431873636012454007450469519096572916689345191779871659067455321935299508980749432541461276526360589273144307969956675312416222865469825681417059067948710124478252608682073465205238294682112560411178564359682529022046736697806652260516279698921921091702812409796723798172681325937265097376811873005544014501008179915693963783942048968289642562529139220120112656208241916987558007184891176755546037653333676684643045699749409770702408004835582470872469947304400008643926810203118308411646769956251595302784928321606398189697299108511505723000067648437296849655948415282416663472093975545166363951246674660067055273557985553672916921741446926563953776567033674340669051976250539137508046603558371067926349175920443694234265709853659201887062965764325982810522760653933121894413187448310213681863675071400946726671438399936060475515828319922043145827542728325306602995689446339708683446753020024202705193349123951712334035816602120090877339354428552191816850085666532024927980627743933379526092856388454701776110704121282034859696822878350308158383053680828303665129391491303516400464185491523096804701027084424798540489074249094224442020592461140617812804658572044958923332450022932660950323636250592940999076797582681047641205761885158164332176212777051389867282602822144228656185600169514032031235471815178885428935952299835208389015272979735471391025021597841075377435505218255431382988705367034326117039840045891042087877081320796121564292648618623824017141881850541806763569875784002053609223169603848096514553802653799298984156976959352959547408184540344973302496969522575743936897518516462695992631179042466465823170806161353685798948440857674198050498086130665800333044746601389828192038451166813873023620800158568630063983289449343880336399178314199181312928095052362827818002721564335988392173430608514891165657801918734335491833124573222614376962575235583155167847583704175380013814747123249535567902170220548160841081537278635819852669806036578207707226074860696846288747580569296358953150999810338837227549779784955478173344743820512465541293144075200950823854004647967275113547359551470263631731167263744360575815163862221107134994551146457371214264617794086914682567206477460678072778021025055882570558420692935980702136298281260747411920524957924987035742924964985711387372939347801720156132610012103096461196398099764557601332773089853652566471287338656421878377490657957255358651915562060909317551243962768460145249598895096904913510429320730139830453687393592656238313341809279498830410069749867812039639978639861480036210962392806182638671742135345077599521348514999181654998565402337527269270205354206011575754451374204968211992260955426428836747159096568560823672031976713997574629637539882014327896583249261712398911457955018788383518738909232562905236230817867485435297364123572198955900701199355259487849498770073493426050265527700710941573943449744195803587081456195328709024559898109478014340438419304538593276838825451271502633837877605227999343986653457294874267630246196945552140266227032145387752018886587724601136345348973729678582253348397856539353098420454294049234704985397693069418344320584041559796865626395075821230234977603436495787532665830800879920413784130687712824110239607332203287641142045364942030953856031753463383393200462821341749466385847327145115648216689244633520786495814929297846764207215563941419099744895550849821173964417388134088155184835772511600138562907163269461831383120866085421299569992476638331772869245361680678590818579839408534241602925699304620963764994365984607432056783850231959249267027913371207908151371523059200665792654177472667318759810991850748137076115832989125267829984842192393685405765918405545843326815781269712917405208352122019516740855251987675505083913876269517393239245577344714498436848268607676061538883274050188403710367063443658877393870824343461880896714047346920386433250519227093205634991991276143627557428966921710231455541799741500217312103694032469733961819974798424312648643511759926154191623962201354074908953597523912187278177144927420247840935272065763702733195083718845534312296010160587252657425025459128389239440735274795326007956350147583322820548990376296060185253901582423945281736520607064948875706229375072143494212061293536495266880679922886851208791096457058259171985739780105385615465231175102327888641824965418773087427977948695006380613087049305379057906629465812140608151602814556790836487053979961058869166869397010986811634749787343705335044856638171205925971714360759679013922337383511612339141083656320110472063961012224329457439793203517307744430509704242407908209646716595902587000758545946931622664373138183597548258067157118296961416103162455579611667964449909917158297854362100937126511740511659951390306936547148005856689614846588384395606125791267237952264658668823776529795804943564957785346933027379383797014272631607415708169538987929646306850958343498543293931604865971167076421046860979279767748278677310636599374819993849975841163869902129474981219689863612899195549674898947863595371217822597469904715605423394650374297250183529960315921249412881590359627260205721854829564607509981322100610010212240448214033175206631136857867284272570798562046349429265558193802491167479436867841229663606296713597188208614139259133483496256901374224107389376312678844614491503267696003445970937605775646212285432415455515620629311430304852599807811589263450140844556282647485343191056336455593353756339045667274889103740646686951634837696060828803460724109926541914682156827069354059725888986306933666645319308327752458516719322320137794262239723180529640914946902602470430565254734349110844901278965626758348988237712270888687194453686419499287077886003193596609580490440719482449856546870912430640836777157878854659296903369546394398372027928776290248460008917452506859815540603753131695474805470112284090763318553753249846877423142912340153513084218966113389675648789201064351621379496385917224094477808475988709252997485684952112483735055204865118915483722845372462121337621910028126053021601165740868367756121127101495753458333734912829763795874199273935403828354825878713779691175773620886497235022374220460885908573042677596840821775408520854523573955582227874756008543876219869160366698524223750044026233179717939803529011235071607474591283236473695802647199100378004574731522451032101939250010643059610809331262331194494384070640020725479630139090585468567574395779217182987824384199990398712916067291542031684875062327841701166835592848455131249685239704274232677493760631995366945788205330029831536575769735972887907640875484369625386077439719983294400582944399483452130380924531100060844971490326662335821675139384303036229975848701438199187021979644132709157647723837067153950833055864337531141192854285977039681818880461171285156612450953146704782190423451114670819854822364390311856990393499202699036140412436430786200538607077310478342669170717742531702358216608108687172800570381734064044976037393193545605747023351153164715811250851117618711874085672413155275836106959544895529997435676337940105126632381256001500665901795451951315545886862079760504191627214822093125571293545494568313838759096318920325687679270961773570927585281284331110720973173004660409333339604726784652022372846158303884464262134431138876566116161214250990293430927456003526966705229370935587423436024948035251668270334744339886061028259222738355858211411000906478488628999555223157986592423627005528583958905606928961935578371962275381618517659311996420461491176529820280872879166682560154773675827062931673674494236775997419872317530430691712606615075684750863919594435362672096093205622642687616457793491990106438993553837249647507198088576946316227311731107667066237024925219989611479985956399337988558939530018239599152201306339581189935517041427500363188658930643765998968496427433610718250746150947050768849468971122294328024105678826724829139483679276290564550683326113024799242692125621074727207054669374080119260045148820656223120735272847355884262729208757631320811794816717154933046890168652443584284822301260525881046679664971793803357269086654896750315535696334987449216797683219232629942870126987531668516637067819150691774084253243385912261980110936956722591065638673229169282831444562221373218106481193778834968730461919991806067664896655663318427096150738019636057974330421923845381886217500577788358879910536186978911168026788560391271139380865028252614253849738709710856150121667165655621979174621345040062220245845393113185059053207334158792343944581949123671832091697543813003357445154095782199980308736371298398965258197596708281651257616521085631255454296875559087335465902529508163973943098149667839767797624692454840680073015158063770294847777353196311092578666117696300761267784908765082444781376400321858585316841368100181360108181833349601775295174702234364118989001600427764229011011407202250215611749079389221379494377934760323531785962539381796778385537822338766090329416514146691409212758089140208352863448922373136924342613728929806261348378824754980666482982765350413351525173550902685637527536954360736323104204504218778102660366050969571168207354802556775205149598854226421823030548678407800295850811463643020204758978948587716664969412621365877590193407637789717641302847926116891019494266254603977688084042733950818282482873299601655042112344365370213639728786182917847617721964640571632778778664030224100297798678546266185274244931523201241092647536676836040426983055077044714590229138073089411307603191417411212828426500815300576847290882506689839861304596937155168551712104221583680711353411698220363742572556964999536822086061911218567780431172989370281973185867228203172671054964040882966255413604299652072597967046012382572170852123724832620350584738841826270694819931978786612563614635950450972085899560991196735471330034063624866162109257197284857373832147747317607301644119021474991658641269796223190023328221863286821172647205228567446058654705706566799365054964989748777208841253134615938648310572618769731916700181161411964898652352800627269139072370871758998508027348478688024821387969569601404544523811313114508235204601699176728328339786043067070367266908792613010538596134160277546413880500675472151647561007373805780375892741645682766990280440770755530920871177290659210438904249847503205316503456225179309537138763148825581699246403453953661317213388990738911495678961522217993284027872599412838449360118877749427865739695562029418731289023244917830835240419815695522277566720460309825294013389765972391880416367104775632770624079088703162858840808134749727565098010538122472607010276784823848725959229822579436849626048731743961102254378957389673393676732409990204211945712670290608075473280557616908318512833238594574901542393863645282637861083275982156808595318202149217813895447926475878816201736395622953764952242764094112385915144722636740664998286081511236103723349640091877016680190908901502285635342637172766255275824786873443261648943591404915269654956055310386063504376868300539272807576556114672084069944384714281708327711759509870853339156436833233903924342753323147689142396063634955474166991375008007618239685682655776714835466791192390084556528175974410844524377836488709028979204743283341110295963641954383192167263075199761574710742006635583826827569838094780039185096767848475184636191013568030900429840629411987525792726344031669902775468563997859635666558766962971543746510741180680463708507027017994981626734436232002642339657572075597949207502235604643769973097270760714807919562371446851053906452865233610329793512954317542524397418371868118671465726738662396301401820487991189702331626994182523633634722577968819230191836934770900370382681312004171971939925417218142206116807600787426736216453970025292565772889951095577210828043320669390517108282454781797966327016856928792429134391822223096488205010565130516952708014778797772803856546822377901396445396562001130151615119404903550582652570591775418345545958934212586511063031698845950481288140886104779042507721820713965165703454714994153969666298329347564920367520684529183707151025104499777725741516019625148297423267244985987415013948664297005751726368386672614939312184014094140069231936672121940035798446674967285264674492319394938159161077820694178419021134123994158232368907433059829388754329931557812784650165450416958617012869918559610216247371503657677869287187672787400390667405381102744677755281478949435020896327463261049061119976271356243550371042447430772290540832051092197304317060426148037111948039310457770536154783283374699456574571243222425947253976853467907023020035891210334702230222878505611181752859947619874351131458833925577469972002491264927701247653056240161653386774636158536425096870629064669698464525990121236033945343681189483116861316003150004387371925236704481723727283166304144408718258733780461663959870609073869197901151611530454830876501915058481142140961005232820953253377812467135331380998826754147297579165046409697030205461894316971512548820153135054252656913541311159576725363188746035265028421008914954544276968231293793988174658465704078500190143893936651156510410640708169631693609835851127657619240741136050972119631465274138104128861977424574112490247544343009649702759558265650350632807301222043304641675350113237967357192765057691473740248185083410258635599891570391781416751554099079556270637467105258398758792618051077630521864720114901496014918831535525803682482883949791691928378452093366473327954869317884673658049606043119462201123420743792326802330751787077919106995435084097449022124254202770588666268185782506174705557709612803412091797301263665013836333457292766777169870632331357042531828748102113432944048687791616173047783952189570136492019470401942854051986505358174323228432661865950346772960450660797223844249693715867595610389731394806832129340547676886231835058309519491733235868075976151930280032213688045787444117415217182684301733517415615859331351326967952208575817381269563310487984291288273593668503018794199966344437162416707430872527780591996262153343190813739580436207244167680407423728654201319109235691505050366074687220501829982655553473819596072559786013510213573534645557613547287924835422400611737183411755039610063948946122739702162610896151255500776366868536794552091782963847746148217854187427203504752072380859733170472869310068687037129232012214370056209386368883412483782515057430188590764215526362521381907116848180281351410533865436312833134159854091324272378016448061503972432067624839455435738478702527044808773326701423811538071217162994361290570344786800256259305969654203261910321463463270969523050861449556701399586621753833737476028379803540512913876791476481642261840980620010055190630361297347517727803474620730743333883635701834714508266155240229374604879389317700489255565260267583600631052186650448599724726373447789219853077411272362569772684524266746717697898307672172911836132012239381746464602852353771814829721183747677449002432245558602621239840062478642545844076234888541348909622452991377437131708446824009527523977016846482878772436400409470152637062663109046800375907408110658177913859585052687663161604915584383846929306487801489161813487492849398926283806786393844538137928459793182131270361892183890533915199594457983217889192285226872689219392884582514277780835571719713443043694890067900557429592614863882371115808058173658589414521784385499779505557391808986018736974097852580104652153225229595750091036736663355350956025101371548664959869855264617613800294192992001504931132502357699197219810496701653521415355706422662170810968202543575477202329512977440251202445044934651020002154883910125083604673646781454380464584868824659289375266864660345678036588766538781099083579775060676941031736655711539979270054098108743205886726059040477960969912086430188740814663996299382174849668256803142903158902360384565137038258473777073572979482903281122159807575640091947108368180197012075196996845663881810740646409130296091895288957852186664814649660812576366471620306764398390271166212666611164396237194697775124584579076130942768350331421237175116960692644024154284644387584787452222654710684952983475512285967953513967625132567091529734329842903639054677515071229574442901917828001817368624393970642457879385671460811559183894400266447081919363766744976769391865539261181258315817325223525878669998449022137997326214310598760590304910202642993923214301453133768467222590598811680179596903955515859298937852030756084229687829335730606240991833843471877011380395688450825632702344205451326788860317174080321024523467122376563895755562714368675491834203076049640599767682645695228005123633200723430334111199887588569433247901148337317993613871651299034872123021210702550761481074651221158692282820679858002904992630482175082541893433212322935503738383149075405085567781507197291838751676210465523374394400163996143687083660449277339063783055889489503677922889539917530630741843248780590245652440512087636582842130867229041627014269904405261861029304399457612162401312596878343773757441808245967939730256880034303068935595163339958550779845391280537381874375344992451255363176557134020660501528585531799421286593096271203816688232007179650417059537813493673375979137349717228530066195505269811539534803019146369544785676111681102796404157220139317268174591516977009770910927859731803055981990384072933056572006125792459111198242502689561487738637688541378941803593302196802671562492503718699570566925089392045299551957503404673747455678614725247164508096964050808676273756656478785020040029992884461513898712942924853259096465517471626207144410394998567832613998188221264926910953143778040308206370647581342018552278504913886385171632976687594315985852230808045825378325267914889233651936246173134358604260388941890177032407329835566392947175756684305850298476529723643894055006529468188639633929773344129728046746644436646681857102656430437355965634197183424550722181824413498193951653072373455565702101721122962200128088592435030244276329858718728628865516971534967393304916480628863129543658473483892432346205842052884585108665638289106025796703847944812654029725580098768144427284183175772432200564640183726747238212592742339469423935552331376819243845417602414659234640559352610229044841049233804948600786734275812587999950341406729631944807747783241765910843484783864026971540856686493663415831118069495963318663393930904672789994135076435908628132537784613048070793878509025429132916471774943744913634043148138854312640521739786940520918202589396084910298603175587743907269385560945898760161366132090867905937933769410109629655390203011855970130191394249856007877582308674878923268678486735244855583948861060962102729286025278727214157381420859474133243949721958063235820271368074107665367578023809004971867052218340208348475581598096304786826398982683510403945406966391842882007612056312543183228412195415965198224378650384573390882096412221303949134072756407009145189608515075541554548388890199522719082401963308221029187066768422863624699312000173660499086623074619215812283864769473509415553507311228932531058286005460058564772119844183714565194621783038983424103018189355620810165237553866937913748718382167419621488455620016227385912334583283384158785256778872749115995393970578381949394952370342720053713743359681453623377564573517072043837515984860959180393657094526898802080572431120031252033331734346587991609369848299776737482461499458444725975821923558044351604628461401339755786715972448267199158689749169431791733253971250928268168896117461683365958946198439368213766157645519792477632445388143361340787321754243230193972763677209096555673897782483902690197834446935025913570231417773702596404360384577458642325780827478407114283727278352952470155283319468747338245434946784154278059934025534122522527478053978155545216999243025028095241743330373751476083505866392772258200707567167587286722017866375161521303162838970768841519729297019168678278687675154814768659589711414153805225562949756009793587796089933989766396484502584557932551711717798399854564000019863042927806405027728388775363247710582554482761926261526889500472598565262761176111031274498345373648905574694527315958019613319171433911683103834281857242323098303885690898817834092377672298550266951227305467327882623713114361565235255584721465813684506464866976844274988496852052676664782674763427767934814112374357512214063525652908653978975481112187769705305543074372070704117604595375882834658382009468226057102665222982716289884495974734237163625313713177685046048011940327686147420227789305651949008539149967208740129119678584767677571370582785935920185555117679720954070530190437878429090622836741649550495143991801677760252783883712061623686316356927883503040883831756477470689496927699907223632877382474424299109848315905454938660332960919576765142826867833583407933303726525674714735241478738856369158229146205423245672236408908173106423272631589689651879964482161529225611480726755070144745790455843872884603267129998876814809296658809268816788428081872863686406551988734221872499793261056270957522924492538566342390406327243576172913786494169974595824424762785299675657027750488980277437646155164359723415512520264387241563489955383046646370417724850671770730399526478442372072287691583785482051470015417657521748957729087122368908970080357433501532007073129246814297376993809633864140488842557187826340111412036360827093647645038488516007097148858161494318944208678597083964197239401937842428667556855343904808375231928988729357955991758567052393721406042979181105576478935634542916257419141768188126833708440773805734337237922179822645985960397192773924275245096281151269646340362588362552394863628364382420495397175137289396095835821872198750600962460877516349453190813242775255621353275424700926383040212111737376165225601954666715335901523856865339674556230757906386027833732538586004712453946074233594303652013939209199546883365748211885544885301541752830153337628787156898858497331910256176638824617820676374984503113682163329929627339746522635717314556392841153424745047868101853721388332193236528287227474664907639929433346117182334120380241505222373787573130820772408121586057166339613296600863845354965876758927224745813048392829378742973019856890347299087209325465026581371669678039471175236520913978966679259282102558500360645822598060130132083687531346548788274825130057590787592113773631663848773533886256384599320866513569653676353665648884281810906244580294210170531990072245014184257374510019884807105279280919224378483333831538573721257179193094346066861390289762911058824222402760139773310030915953721715022089248668062651154231261927155601430225941109206822507671296240638729601886344305636378393137183205680755418990607901889309871111811774343540367221906133797359387603139719853196154523434747772279909484592014816240333177173426728345817660774823711119133839111290658376493126777360805764739405248617648400774751516534892779614141633977576754416941127169756994970731998296130069899939165740296453777748512869137210231794269567737959055326995940753658487913566444089928772320449166922397097833690152059220261150441615347754373162997888586285657263226368922421374022262298077149888805258430019599829198821621412546808536308434311152898864347253167780234283763392160394555391701489737398841665908060653120799233183365256131885444133913900439187477521190539161706111981914758742378628542393056822622592852151235238281377762007627288257299589382503486036183640189453183624623750307696569490502013688554485903737255582359104472562771100328320128843177875710884853328388691412454003562353850174758863571393101427979612554517597616864501587560827769240581418515654287499465415149613190258626665110690218075210356447297009452637453594587370513715015221151451004842870557992049786205305278291433313396546654925524021845694849263781590548440529579939075005133909201342689326377429219204517303648258078334740223826334238524264485811912347011236666692114391441424104354320898297765760019542678727512064648570160866450199910920792666899045708213381557163536235725700785256793740369039830461763287372975300611481768226090122690159714085445172174082521562998671158584391397807033043217047457801963580162940637490889571619433099646956612901867974697428753998236867273139860463143375747586956400177071136331156024550108413499405047560043220905865251039341878433823724943213493947315265646576195667348479469159953578703422249885038425332097216341126652228557633614890884900296862536345325775706903934907581107523849594237425920347918139810613773693773804984679282103896440867004025513655332216133977895868086735449616293769522965645795903799207702469250715757737096009653879653382641764654546177906205753264705981135372281197626066593580184773748387642232538881654416852697175639969612858566596133913345995949088646270009992276031363713612052850052341260616603100991128293176086018488448671292510193392365038695355112458348279418636987660362414088134197353541973743263062810186626885546514092152369355695249628077616771947497468900785202922930771849588494683341494427566661695170974470209565357209030319380830925115327925008164484796269678864768977409495054173511062905293300850274432587774237646138126798228707129765407532605748720037437279440759012987309363225028064499488995909886951899998536890797523782483212043535292717347801029417040291617682569711292688125871009174961126267871412639951870082203633305313591799495533565466097980606691100416982587729184514942699995254440985379893928811708763217815333147224167702211957229043171676960190230435637048574254126165845403976523916266220115963601051969282977764494776639715224238517698748479881257613547755772888275070048571520654642980892186941933848023368309512664779240635759762104252976077303620127164859095207659203034742184242186315944530578101498460626104082191204849201824968879146181484000646373713107287053374378598526071776806111378345411624527865447101726252255436077337741826751428652672146354516642666273634548850453042487350158540744020078263026265844799223448847569156884526065047147147890167614653534243053622351620257426575653438026653859570437038585039220472709824895535125427813917066972645759020258698745667110674377236903740290021178092136262693667419863954777003487017622033585911337072436507003476106500079734019732135293864764333542691914038283350726111078061057300335228464793984518499055741262073819584158569258667885419233691609559462374159254204774688662923293288244297884391991749488422618047851474371133435200798461797886883474265836047775974990456815135729737611869040829184597292102320732732921329498735552020760412288113865056409049538272717263530080396649349379460703925188400910950887146307660648344331004707978925881334996311875824639073563973199921458510278681378110115949269093018172872512846417533120292773246633760649243503832449637404433674833524277560494753281538523946448896407691192622824660101300216828985369639969054455128174874236948558928515078242333400382605704264943124514237513687458361255656857549932324780446797828792841654628895273403479101974414909788391302849075245019097068814527770212217699355100627687757963937525420688315202975232285066305384995362590287098999809301386851531197909089108723670897228685421069856355169865191353942943929742128286503202915644107327637273307388940588753782862419943444548917684491763742276386107181803050236208948433602814459658076397710269641418558098285238894059806261354708141544818322338139879622917925918919854062601418713492942766817062671547373917364279838791490308284016986764170017427937484132442114585396945088871227627002422882147875797645292481586344766526404456405334606279891733230051883286761560555806590749910387844741408142989890111132372174943931504358831612118035748346998077809750650971128816325427851555930465227822414668831360082764666710717314837678340849227177858719496052735081506881847326973418414384142611339512922635683450892711456146683685582073436249426793006845414592950626739331575720183355064969214566358991508729169430092542060951598919071699742580144430862124253361087417791062681953857533687054680370460204501447150793002232064617183668550072931778979627457478781332113842712178095236525938926134811242837487632283445614017970763165072065431802379636808053285764982819839206385725963995354127024846164570235106645564126947586581830483655026406676865792505074727169094545193896484798482233107590740299522348489389574132015618948436227989904548660040131771961575794039817095129977759262766335648278086935904909162436134380873109898191562330855759285442848059990452457950566729058153002135330331505653703624873610082044448164633862336404531674720960344881389079908059776413441995009008428526708779379786164229787488733952339403378469054576737820200426680389280393094563657831670058297792583372683077519569049998288499587031111612010303554427602558342931338649494281355035519789241484765112714959792682116255487496025493744531418646541460751143302533150170398145892439451496946298825702504455567281713643546310068818531001875732766386059064163444246319079315112017101539625479130782208806748248397477204570060767003029727786965289893539850470564932838864419102915390563912203557139181256388096019788465478383842279917033221530788339604601159814464837689300639348141309278684927271978847934606301124573259321171751634777988791595383411113706090092560953765942166436877247923147181993437016011980956583279613205823517487655788486137112558475929138223437780276476624150669249871036138985364949355781687018742131194386354805787963663593137979313505189950178510458415168093541343311743688345368858937599165213931349814469985153351420605707693616440420231732862994016931849200584213336549240617639881376899373662122658012752308364312544681669245497758158351140462697875772596190233326842952557115605134806267312665372508815148202824638636376075167642509053641032599586528786972567258178562310160274666707571619691263204469230577904053546780249685468473368855195117127372604719544929379101237517879787257781764432149195102680933491256310376673830707799791175802944814837222768326691670771512645956232577984121922062959095259589990328447773298969417285857921455011381022079582599034411877711109882975808214084636393484487783985360918100770225733682916809994199399139166505800248226857682079829254963341725854169912643655239191239611627833676231648972895994820650153859858881137254983760023514210886342041238664247218565843593486455034966096731033702210086897150805215207321453564691508427829294245677277406071870666771449564667261644066388065242077964038111139861826563581470756805246212541217160022187239320811714238571218585265487583780847775830048101541593493618781639608671449236168810294339463248833988062868894537477939573955412087974903581608167683550288734316418010119846369784863363633145636240306481478115606870235581088116005561262673450480546699515315876217923936026624738706706239986558525684097109892333171486088824781874280369939218369260429382312100606069165130482447556137510493781760537364462003779558374093846202436779228545609624159320507053288685686964027831025175415101437099657063440929512910803903482134684979017165004960223804777375890451417295531603679270516396752507253201658512009184444243228119981784093050067785172299214911034662125116889527638103412401621205435125242679367536778784907354701831901860979592379706852268196600309706069867771681787991601027056056030333762221897788261766045744769137158098622422197454277075622770726681691889430037925930195625554315949304729338639633175035383163892737235759043170413854873812902058175998137562278538797978929542939948752476608253442311784957116140972465117812430367454578224385380279489343754253299415565874066201002778780025889963134187749706504401795567550497329197935176450877006335501583303854474440433579578265198998504035065922532811164523736676084926760725591833561806820874194700353422281038895603258428858039337396147828927406500193046517464125804004430190001587750553232557969915416565246694539691411717505055249815013085232181903329182773348646183722886847921033986204561861588710942202845907374163546694630743402793452432524842021880070297607803331107114776059371526052925939272991448615505196598517292224989052835124199080971136660637669028932579770823400226034528940687087842796049628099377818002990824363819924034508059000188955515836696889642871254321378661538448211929278845021741531239298281403362925060140583592480814472442068758426072894971983545150828556548344014202852686323080110620031285622133905272344324768360975313378617658925811037032642968773741910358348093953933035290037411263701544015812574050898708186974995505315017678635824437050760041078130327997403664677317383305852625391966243540362586025718909756365419723362871696054477495134683040233192489520223950897989808345450461128626009443862548798875946617615766391764379415627583153660206255529817333955235945130422080390259506041360464675557131429940753262785492981594575156940711183183895586982530076111193204042064904437510944361415186199204962056278591531609660082256348710948383781977201168858427116746288978612275230593591248852586866919858279603976433223528742791921940188823344680878662441029762891947182142446190998000146103430733916893638489960545572858065108385568192831614694675244274515552417723382528963861428907787773039594364854484503410888268579268437902666907778715672298510920610107191534348146351962243903432137244318790442805485417909579017121578306692875729738519640235812002316116627807640296533802151546539666881105419945944151898074323547884559753351054046523335136343703725209154861445238477713783368642489614034816055980357829962541290428784837364494608460380753364597711016115048405336298306033471000550340995216435274741370297477011316409773313188497076151184970117043730461467590462873617934465309425341562110615583402108021738012941921365139984028526406658221676522518329361266175658090493486732609572417173533955510361708575346996491294881577458672654148323172708673957009063351386444623495783080569472482038314408928438449924612623612899167937824969819080624068831966704253299598095266158795688832317809819798086973681669719904183950329882637143449007396370088097515106647791784575408269077610333568291840988837617252200180422013287311113399763549613449031407042594079146440124317219466688480099003721986529937382177104850409051250179141937928953430090462526077267928195615389370571374535550743635886426492211827723244203392544866884050984448830746688046024760973207259418312810663784931005191327949014206569092662462485233739652741091006647292167415595847451548077621865073674730403089779359119635298761380594405749001457796149932344227815973167060854939118731424893825291695085862590870027677194091341631192966255729230058735289377961621083828193914459250611953843572885733783369576067773051213350726671435560707382618547872770389245515391455481193794456873730156334565863012854398136009471069528811950123435246659333230944085724558344851388965658390628102178758916743794018430088639469685206118697180313331813338539878549391426536928332180516260447686374326392466238900814910551482661782192255844435660033840556707208601975439572744977417757503781967681680680647465972795118724557777799942365713577695121057760008869267930578020157000272537683083699340451583370650179469335527892047203646896728461538409320460277639272273229983178256458202387019997300051317173586296352137716691495218684590096257062647150465431806848201809292160897788961457363379865812762114252030327295237765472682813131384719157418836149980752588844931736496879804478701001970077550934148023013403818812263866220159447391235191673649100047958951484886966933823194115465740448967018084368557061987277964029426670040824012826080172158044298426676532684650966088158840728181912371028114189334529593680682137195562823684927987602428974097759169133878165282114993147548653524671390761764914278330446438056278152555849282348930938718443399126999313631563221894011461367727415225054443034049120670844548602556000853924417155082935214412215741701039684565723854742607199947835496884408229840964651507576613698844188010611539908078710626952697980272540528720139182951373060508652742267945311123613625529874268977699936711164585589619825529306117813781379596172900793752961909503438732984698737985726838170948686593181916930469328377437566677217997918494246123027349242375833553394318252981223067361674806994391540382890591804743585893367295087719681210617024091780770616821749198564864473381962821186385253615755153597246465163831988206195008389257519686954363218089640992622925602958937315514409804752913825392312109450596047539978823367002056626446678529549961301109486986134534542912407545576753112502649440153163595159198703610611162142559478353206666843274076851174695764292247129463954250816128258463039183364526080804280291012334253912099445021357593964467274718798015283461374267337112747344338526253837188167565915717588352270306403276750568484126241045703050728931431104860712744701560813674419223225748077097943720898138514671326618283294097941225872005279719302982919649506515586823673429480106412830642716790453038001585703730444260785356205656650832112587992468969744145680792067695720844415245708026261951645895570571467636101537945800853904639436724571636820605953967251223722292135700055349878171573540827712116459576266849960276088345798990605776222641366716813931775783284858498897436839921257520511243759750839268363369090264772709736755288964828871237976586295804961966639175524647914844924540750343940421114414512547532188627959375754988547847741230853954298309333500154121406914255344750855909126667692294615643795450470018935807961243101956717665837686915653487384230126122032344820065249200030688153010887740136681374892687382863715050875455195587195694848966598144999210395452024976588474368295323171292812336694428493351053296075468986599160404924685983576927272905104828217449389068254319595854164886427467385616324943092720097576706021238202291355420341516566322461632471005961544348187155144758493067874667740261784983842487810150131059353357013373058168929281568960453316999145647716445195286093516647933323372829629931394367182805125384612402288813450357338484207944707505268335736945497678264566324442696210619063196925605525663156649048871521396153421730570219397663917109578450857508568539923985285718136157546391661545679722713918290700945862515396785923496938037953468040874494054793319037821279608241723113421595643668436992100527455070311231301343232019417746488051750575406106949908676672175200321384817887182972968825039068322321545260748817600931082720813621206611288640905454420902572342980927383111683574900690987119301119046942263688091209397157571177819913287142268647942923391205673039934141409438275937919897025352971304176745596890587996479150001710985263402178477595820457503728599597705608082624876878410123976285812482333225210043174013008032025701927037208974229903644770871939367338887155245812445649802837566130237675942204051234599691851936058187506351580060914151881050884421435645084078295518397058425044580818802475138915712763459554440002377060482907544095161839472702839976290622839137020257354597246362139645566312100154651072277965616076478748300936030116024114067286033498855653546984773131090968307449387610953440757550463243811380933804728509876478782230500631651975693378602299734578827675570379716582759490788377449095129835833298494360499224035334978537418323111157701164299015526857023367497224806333320792144087608081005057873953613391632070733768496230899303359258636336807256153792962214813398596311075191123746297864970374645031796584793153905113189058402879709265929406551224920971337048420753529148920761332858058981184040421384358975396706999865952713220731259180304843609998850908947384561513496526496224349108588797459287318786839854803179505139144986703148260033159144687203884448156029388604605153192508308940979536031552188823180469472352505315313824472643548388519474945364190751596937574526328585378313417106773341804109704920955822250322666562867795237929791776736605199950456374323464255271561810470379623154971345239704103398629426920933747382863723043318819784709657778972725152596490293896654961728323024090414518187299282075350521867953593703249779617683526110769024582906019526275528008434445799039503438203265823731101083907815886563860112014673283102762368143483268348078596193096422855311143979008557747910978177252491757001166607700971495110218555971824485068210435826521666189266025675776434134962537879945252070820716897226280483459707203590210844321249764536606088954504972626778575996454177835853267885556579270142777827218194308539646668877120413464757125387174117156262451419175642704492332711621921272125523813438748844472168464232546778363003285735045512546283173937163360905694980382506061150865061108192992255766739815259427497350890690899772109633176766436344330572332241127254368294726312221566307429350345593130290689543027888112283447075856104819249679805107708179410142661594763657691729262881579418299884500101632162905527249177727113544744747292437056158652160079401169821469872092898596058723362057368907650837270339683301605388926425826657016314974643172487306117808878152747737792579667230591543956958033794071809983080822337313228163828722939212966605761755559299654806010126488885884152486516963520461993546974226810660404618210516803920424792309040255988211178993149659926929124410215811939251379125196343475052738935175587378479951622146494131605334632285533971027868851621999913415070694081631511998969679085923766944126037420490122146871258084115763128497436750190636342652685837759928702148514317765307865206427404724338992779694935938931919280538957540494119019004245464590471403570588009997932930838680586085183981048376254705282184198774401721555739314251669419350221116037990365621857441247395389485320936342559767046015952601040026267481983476466490166937309368077976139888220559435731453590694894868116673714074308202351511181444159452903433679733994306265659859127477489333981688417504613789992589666218247809395723274399630917172204845610695821601518196596824155542510268367069839754312873997386660122478470991071700539619231161368571798732104083299577217332900970225509981677380413524685436229932636123459149294201793337278410274456119963917907609446796997437099827789949434945322043319905465992628696870051705154451838572715065380466725296306696696637789679905622513687721255656163476716655450840419616348081077126230656953708286909122865103328362229385466508667032684756508673612523708859094213693967066339487178992090458814652167651342276281748264263655377699385175770996671449030500909939219009538505838612380141490558548507662006085990314685442831404991366520678749672729819722701530988717003616330503269211541639300975470763907066152847970067942917328923398330769996475358433284146622412057792634401218465001268576926606529978902811423575034934067847767741344423771549595879374801395546349754076825713087541282589995509404015612086220449794434222677831280567074827830133952997601544487389344856605448923035221621221617829930890270898389061922509890140002932128356765723693136264767916163662811123017222926113669971632102148296245788847905403416385027287006023882547341806465669016129181033880869160853003614345296837775144465854687033119993056931863781724907971428988209569307192171856471783996715875758781621301526173061587095873790009858158900131008859645282233657963948315323208814190213698839772536449039203074581290222003981528107325090235590869965118378502983571028717890502852144116453859774939265660697657746326559410565738452253354856965406151947182450127930854730180458282670638426825198312158137305535694303123707678620826744881790095067236941547008912266609691886945472383803373257058337615083137717176888761922442858145376315273573250693427795170476623083733223001310732641138824371472834038449765603981122752946132016114880785175397991122021432588988854221173776235903745471296113004383892115406142648693466219834228307768725309126085608099442030372152698742838733481709803091148116361369081712409826087270365250375156903334730235014137323114119429632048754448130462280215979617339497670135803444805132494407850012947819703927600395077277396329199660957908514413705768594125062298669247804985660204864319006641360210362989075162877397328543359741998316959559247099275374283766568477887830679097826705349387301103183331409377476300373648644567828807636822543987846807974295566217935809483735266026287406051102880890726173580280318730569463841888531931684224597144117290325478432661449868494976553505828137477330744337473984761432277679981557689015882642244693891705931456460174647872658443442486868311108005666086255772283489703957162815801457147542190198915410635358237581545003194879891014342627107835543052825381221629683917054693830713103527112043830027704691673506721627198303868796573005342407366784297379082167568187041351040202244226653592899829165656024726333648291999764034037252794214541229730733559613987378151691743601011160217521567268906726781631967398655933210863542634227322912370456745142798854087787964696492554880287276467311725834659140073229943498860984694911503546282651546142328732753143065132669094244879039303301534103529802289104416681361227362703343409145998524066123907842823776432950368723185740537058080363551498699443589443759726175162336826882198581664726198432799871303348417070091252387349224576573660210050405127554338332219439741976907199013247508765635600952911740386625788132593441009168996252373115455643368626979364650107810798415766593765189866473656820899779804218989799107346515205441834523815213566869306924745741760642329078431192447661995183952453011794609382001937442047088830989281368743209388899156607187725648733790507664072908970009052044141514748477335138458926445300666397161349594678413255153466194650579557987602647043151801358127303987797268221918346436781645708429164092863079644460094470622027632526529566212268905908017605642231006349017545919883225431069387472008912852849094354186846632119312416378162939829236702658799414773897837508235745793606970471154716248329474708617914825408507976029754086270464706467327202672075676847056307883647766750520332089922907394015128318953800686716870597695925459633544936866278935210296582869506435158142537119411855175483904260970087478236095276412358828846554826412829423255264777505446915892682874934522705987721826755657403063135911269345210631547354233057656345916369686180618061296268615415898181206968088279401482105812313730418309021221477104718474155182297179655883918827928618971613481301711476013385447170698320504084038891241159844527969653697173528800439414846436643610617722657574831494825562873922874625866330459446327844960286621355332240184850779852518335291114421206466487055248072167328844843305656410081590330352220138624694892306476507737610048587558882103326264787336336417574332757724013890222563645652761082290681256930981798406474821719477630957985386873792892337611122592654936356907441416772512605419737078086150669271740346583263395827150405649122184679471584579558456541806706911827259967189925027980385088096529653243737475611859909148100429967147067201472635809983239893978164235078592529908775223649498002344176119959106065359902545982055791664926587777302693360681409551862230135957568739579647994549146968225346625422958570913032914479188059936751727936693419121815819697592316845548093312067789087455809637523107615569166034481910357597728825624393928343838229241984509443123226970530431593082136511221304042378005465537134532909939169474295339048178318064829621970928927218888524862053580899267354238537603663854961039512892190786432764048016287861985421615426308564217170198720245803772565557566905586194512746165227863783071544125102966243728214956842263177208203911132203962389676306100345279544192873207793031341085842952588713733660108553177107108992575001284772763956067725473038310406997389906507350174543376628920775905429960085521324030488660716900947973379387459969653032813871101311083624456147776461975789216127362348281972947119833311512776456006054972884207357422156473278744709036840677897069676036963080614054192287055695950314358190269508868477579261829154058825230680157880783956365492114074403111868118885141609395454322950477847976703337766998074856294013151069035000502388212759166337044277896099160465501660893154126715884803707966014178664135643524432071488640905024558388655048788900437959171762661197291705002176600477732300920868609182560952367169781866256464750958380769091322528129778936960738719568441290888436023060683065530831484406033768281774959238182108318604996341242938168708885999264717939928972229130730390232964167970849729641946060087941919336250076397218697524396536013392612610537916000236370437802007520716237136911921200626575752368166208020789834344991382078481957469817596787562027163928068111308034812385035794144971003306095402769307456695934247950281659579462621098217798162935007484163924595515836349225488775690275189181425357887380504153792270708749598454627908277006140616026907824116713069987575246633263053505911163442379740601004080014784662792414386106537497959780802217717304343969990232905469726239930296759164989564768369581988672996439125671244803646483436338221919873415011480202492694044640464102574070141167613799317979182916652083458329695329517390835464308978146412890253684394007488074000079603831566408473542607513688560491495937604293812353618892928665076219384820883595670676245505629472003009391970433496665999123506704989906544308216241985276511604462544403713088331388200321301739127672565570504952641458980074879895635908685060236087234420987816917563499680277243761766083043033172208441696751393068147372118891274058992923480687540720235986556407306024954749943520353747612305889947751756181079060057860908702550678210516527074695888979368313434307684647076258408847933475337483401389695204501128505880303623164053335209100880653268888075790133413916279292032091538054022410486292696014289962235288385610341855803253709691927444261381508203489673667158785416151900334877546945302715062262621617565264915322066964358893127178200373647387288957081793562179175914721605928143266367379264196107116689007538571396840426769587975145052397054515326981670170049868295056250416217790434617931426334650753642525738913719324904418213156742963475653232788987339687544208932606363019473056940102966453357458896419193492742371815572317509407428277139854490709172868704043252837786871671317635150721158804670245238767244578570213579943457552382844330374286400766404143170245086498330490540212238842919762818592107094025203020689092326269347701021927879060204945307380173098506099556493648500369800472133991836893905810820875272682149225863304786335804785164864517406661580443059920152394771320932588966534315258114927668786124600922830025665723801952984660214272436867125462102815386721756612061738571444198684524978351320715758169082251935109792177556524149827175421050558773927119074167786165410593323759168488640143091614203635908443904005292596998303219857112347061889594384666471324325612469723415128463550003647437822352934160489158509953096485219673824143068847279344983762434263851741511787054616344941872795507601087458814521053502032391890029923708191882857951049529083179851267859789317915939705057521648399469671301704324121486400907154016864759142308212066987476268932246148638945546819851494468468437791942253294993118984158839686386943407322139303650848392744261346510399164029277750463771160788417333947403854006645092345950081715800697993542610893018417051057681071973021068740133919781475116879139844184051325416214255512335683346476631772775931013646161478078623571335874332397484295030019712872174078024761028911360795440330994118933442429994564620268033961295726918755340483537781872674089103854030947687882185080664034850411580095482435272654204421494701293284337359115231058249547228385771833957408538162381273465317987560939942396531859282944119344301650167149042983949416508380382186761140542864439349210963828960993449575206166866786501217808572734236078250530708641061261149470623098755382047086020446350447451487089631353300747882502069102129336627381870307930797474057216336739073476699388847958740087391594712644885466960704464643742319492070788523942317001127340233615957115587156312958057897568743738971501998944054379222848304515166790610961294496579784395602836512984869206986270228584029984705494427598274421662865519594281431962488765359795065391599042617967796497353583471604195669369568710174570376145945604388174309098815547307406792761709583250423692297256744690036346449697951229242768933284299110832662674078222487347909109598089528526696213527166596922487780407003761873352431019421753157423227322173935440700622343546723613435207278493969698862307123188503693089015726419368187875611449354506842433881442360191189173818905067221162118469015817281520944404036203726725514432719567990718719688347614261987870065157874062813160947003639306824921413560190256107870387436401661937938614943748745259824380535000251163020732203046255517289884597827086712269989108190072459945690669488241724742606849326107447085779837529868005758406178266832841394807734807225905759562057746818462805090048749636527760876445959945880924829966689056949424466832710892347725200952236130974046067175141979555926998130941470022303535324429721237660249566283310526185383536549412923478675438917278941693393778124824529912895483084561249850445071900527209114042564726714934331565243974150280179004735371118891516077217477330066694063301159929833596394756857204127831007309619790632493028346584389697329986873207022526181669623349954029232231273103473147461177917050551236217688773510582457080656368511729640906433149665082759917941917448518851511090116089224283972587787101736017549515234376666634180104148579168376754968924530200323305244136431221931850267121970609276515437804943858957963206290871560923691279722181596383933916904079721908144289424010721446249211544239406846480914540614014456094591710242561041487752892671537471093988510349531367347983330610212183532066574444710942758350832919323676671022885621350738400122843015744104588630796743244488294859481398668601883488042155198545870277563274247191461447801744263967116925087522874904202127287446855762961009384767410227398696231349993231898071529497693525121378790636708297480277462504336529294582930542698982950687047367916498499627800594151045251173715514360756552533200433232912094770576800070574885414246252113246348174507257508563163061415562756970145685506118366771914376893949363734591585743057640757898928808540305616694499186203028905518490219868355023255583223810384913508410528489022218477659307169026213716665389618529285752995209737093726902190996487417451615322823175424136010343121263844919261389419222857282387092258987629123688567795970639318207193761556105386444798442579472654751702504414189179683514927682626903003286677456860313652518348760466544435198245657459984577368962114178853669587348955726885162896756874359709247878710575786527060567998557596849644432670716477648373597139515888598749910397793555143519717178009408389030327025663314451332530615947342251705747167737883259556811366620950124859893867605544639400968010945994481824630431572779396030213410972330840143480995479679628306378805814722428062739939574117461297554205861089088898205098753711856424449633660482291693004717080225268381428642500444588899440522097527463465735185158879764783423067453880439889885065364023600493592090099893598537156283897320458937078468965925296182562534206393535440655285376839340205807072177138072872828938548625054975391031655044008449660688723169682589768390963827999119780100949625559682372035903967625180677008324068940036119596542403821843015673718666369157507427697475978271014325117369074681161944198760094221417045684900177524129197086968466102387618562998238525524167961197756405620028212454144766765395250160534145338503890800468270724165306921354333163913696925609836897612293468310856100136386507067651912115918621163404793952489089111387152407770009392631761938313435097400773290542159029148995240647075777809717519875130607271600612606426247621892852919399196555805674801513888480876902750668296785274459098950649952658584862584773095301042666472018959005391376891350611123617027865581227346318675588503950310827173758820532330157185939563345522283417789188786276700884779648915112827887737213051189050969899406704965061852639008382099983150952890390720784153735180992984046373375442421247287686460339729634347439914718097174347721358438940594622287092044000642772602391828733424109616350257113783253027651891158759623475924744743519992351336668221011850907925995918185011307844248451125563510479821671756070921720087900797131726345038068956997690216218614894975961728550644634522348545303598352688901126835952602342765312374962317964839883743891758183799418089939476787270907441369517951422605954673655419939336119485667715248591641330724560434555598692055892578940018290142867030568925684589214944328721710768859765324127841220009073753166698788391009669842489601570085898158451408763173388061893861062104642439171536048024686558233563290232044075646213933621903641590671433420918766493306911288005631863725192645419923349471306533468108801529393994301301864377410696005900128426251197952424489948299898736664918007316903227809138342827013105634251687747324223756598846338797507512765330852130470714444924321948544655203721144270118722120582145574939155226446547211364904169685649365329031399699485659347351842538648045898540520609507386188629317575512762899130629946704974831673253112154338050149455779847631257963230351481140646898821868798310400270665098201696134155056282896147281922569542734708093978744224973852984224115424141446028283712066189894051726250754118268295652275832236856280315801930731708409611999389719987190124726627702291934492982259376802547407673183520372837488591029399544219341803981806042438300161698473296007725560245276331496724692734889987969803879967770311818980342813444908478377927023297926643478047166460083321990108219826480572986906061553983625808684184686590943587651772198177352917615028960344956041147756595257542425592606627494841869075957667968277856171307338114892831538202361548710960623032795173448978729628102949507563119209821817868669719252665369950023964028418913947688122631331399405858245720823569133330261486428479406419739650283555685524489754175416841230629315446093658832262143454223257886040181302436736029031396134594498092590132004511263523377125167588742153199749641795055806730216314841833322917200310064681412538965297743557807759239176913821656869331846885654539253431853280059362518532936702473431994581517041110309170653878613136034728502387335589992787951639621312450992113858384556279538556922014809535883190802166109371205930673184642818671638438605602839914827342738119460021748032104485841062344272625819516746439135998490438526075108312286957120015641518042404403389529459189485463404344270760696774068552344023054742757221345890775691429496892852554011016466697141527191510569278121904119167383166689699419501773131153762709623701172383275809198671728144227388355785605489863610367648149822953757455365663563446348463891106950727404326187068048902098000066988491276303275817247914392727414292819509122079648064142652166601102709189482268412790057749558134552946790984597859283923596988006037385189066800972227854507175108973542550869115723429551197866015387447288949326734242504996351055196154873255866862810738452512092032066644939506034025317333390031263706081395869412952473241671578153559632588200366106834364526045034801009289388591709790850157558378472017351165639365306584327070489006930888008066355074978928257110394565827454271966617402767400217828805639212937279150234307711064589176621958316604770166917465178434889696342373244045545439485070014325805095034968678203033513390308644405592018791365250832576465741837429005838205051230554223633752539351470904179108423083752793109102829401426854271026086927113574400013719001411960216085377928896973666609202950164658260520581555844262046252027155676014090985643346286061737565707806432340967798664096384844085523665335594869843505480472100013703446803697873550060232059893238797045990642146402117427422213573726399828063668070984045708295178356261886277579924025292700730770702891327374011823091113332395172633628295850012797355135227628527008583704787959707409471298483475809332891085655093716286152865718777884436316504458409480617327611490431917826763663950361811422234432291598303266423049233361123603454613327896027020361890733531876432945597720187982220160509013471785103103909563667069565174995983882089907186960818013663272583918110688831239472233686143989645849436218848988218123287892394222255824579403469755184017208327179449767750004321601596878517652814651315597610624939391698010296015159304716156436570747972177542759185243973364134067408735312367591696146864152162089364590127789380809356947540976624007196223232654383139573168923095547343801513068764926231546459331586815532499982890608402295655327966712725685285580918448568686814190900901184704971687428096844231761593457868888002703828357948761319520495614050015720520149412192187491018991159443687316912693649798574711208699241208937753828745033095860920287767273552217347438495279142492101487668685243721724094340643437104297571736905590571692807277020458036332729082309984470434761158227512379079557305230341592318742011343329525992886434212169769753756474968180874138170049618185693077450004829800335705615551893165934275430440896375010874879909006971665486068263935219531465338217118669180655201792578235321575655650994026967345176103686969373799071800148698960974077713080985776190405812931337506873252802404538156522122500531392930602840463063774446873950434537524189807972018030047892434914625111183660685418215511276276358029613890977833813289195011127086365136793724324931890585155119321060945808641461081728835610451616019219049380993885090594895494008101486454677224777585863340013590134222115465311664751267793368457035876380774175765932001986728882515247408139381089308665889884394132206545604727063748148350522957317631177561930435811208089093028520172442400593619466235362548390592617424678549410375450473824453552820710462985602209105752763551852833401370497361544678940179176301489516652028814526172216318593224455612221373075588228215442268268041418509174343189392338272632517070934135352561245535259438282705818272214750407866599520078062401427532899134096501993847789189642633224502233976309303891769039790916872835469653545806448525720323685706457229482839450765465436133641167826527617285198605987072535061553457754394520346982733504486227337357592585203897106880995603430079494724293155000769239192901240501299230394190163166587748925189296216541386687588266702217962794730010858476295132030143419596392159508885772651137841155653636271008305309968579944712026665438563884662839410204863289928288409722505772729365240319362593957999253262521583971301233986176197753558476943570387630910581346119318733624677280510077610197156621473001687477038118375165796676822788453166805780125762022974189542969450288365259849083482297725046234056263770938017437789190768270967071546212029065286294811256680045603289152859794101557486810407710804702419491411912919657865074067553303501663212921194126016925731802111826590299880643392150687507605178779415752131432595002011474196495570196742920076339329632906731190901928389620001127014536777101642492859894148627241463185077284330767754217012753184611009578751071971186456698228868277623972327527727633979732319166849395859506409056905714702745917563490228565450563860574281458986035432942107326368355674606533248227534880757368523056874579220169130049472248004647215392910543730661928772307070819501628125831149715636409831042417489171621063956023110284105232709867994284597210560429456781648768505163308166568631712135448049138116268853972630135520016976405021017361375621095880695574102460385430270673451490572346874267631700998426746339310754458660330852180973221395504826149094332876154738070257210309286074952862067380752385342852636676578145885502174124251764607863592630721196137541335809973036975566934551202542333068455951584366361128351778840170999558424695861331457422605722271652243822504060414531216265315827317033962912803798094808396316618122348541601727235754312630210569151276531556384064318036125556243488737459099601693708704758940788674716845180967520040274193517900514218928587827929025137086398488387663120713578411441249638881849563166981967282071635617066126918927580344439177604460678378511086211209907311527783196224532947314975197664040482393886833779710249415890543675285867761255660533371609205524956170874797938966536037788364163498827921791807166348233966892072636645570781365869523238234152309829176374042903488888563533383984157520239672258556382226239984059178270049531996147843939256899042783576172311564417908940089387776177926505876428752612693513592451755270090539199196454860544292466307689770663886440389974628796055300488041511377198541241856248055437558903062606745319947251031918371913878032867892825400507388753289942156541737353373257852514210214788779303224172117407678074537979696968671599811698204085328233326024105608168753878213713113967637455179031350786970214447612773113449679248949591066833225941075485493268751526260942692821657975636705671359594179025576978070283522278784375698950991169037105134813203015694839527877226960630553130315007277227534501394462078059091489607367876633731904058258570304271269522580619848328856352758123203431839705242549859871694032672602551110764923192287150581216249414169552574311360610175311176362241934538987106258260437134589461553074668063589018898184611980742151319519244341600934201097617275534827065643770849346565860770425674405660156859515227624179976095134359118876209862856305306086427235646354165599877995833940880546342351029824678749544103355747897907573119442972471669433687730214238794005973738301073832553692746417830244181911870205989695029137107909953343924097847501006663530617527221901777332251294666604323172604536548788416745683060067603761732929254243803015724550988895971618926932518591202564138768442533690977431892882002368105547217065297744293684782152449625484587787149738543474036054211062173561291420929206788391017853062070379300670752066036185308960823583743807055541566277924075946531090344541539103922568070940059539256635404887131512112252094542283619180427291099754286057690554494885081042631501491149857084513832496377618501114122451938622404171149182319287230702470191144668395922764036561485115581493930224157813398980688545474805102913429113604822770544016951530645515143814311515548956978740801612891503098961615743245353700369009769351770624727880402885720630352107061664976508976079007870470545830545176732889510283788515889763452304737370640602689024864421260684427597169960647538827055287635711601979051115293493504385577401728345676035846266722256552488220319690893646957214432010470211073150863035853488122194853574320445417605017251655861484832201657181156229112490704046532263749266995373965088681464259817731012704581509812578536216800012099034103700171510204119578729335677858198419570477121306085704542179817578341930124596315543330852516267322729679093207582119547012485371966401929107786522006031280683714853322334902884413201436098475641760610874743300118836223651252904875936351963661055417139395505271148792961174720911271126247957772413233304289180222821669850241053389059729529771615295499641937277204248446582463389533107061335713189994204695567317908095954219012029039469135622379925491112372682625260767856161887566024075069373101158459292242357509940772180568927404049949944761254526379807653065505992320461210627057679057047293815216328906255856910047268922617485661673756074530099400966288477905486458509410725130746447202844737623975381231086680543802638886345562104508241307568832458245703244534189132750899153717619645611344661296113274693529159514717033911733964502371172868098106227827824603952298524241423597814526785856687295521536106994438176569450234908259711932545412753688337766544177981027265547231256076122244476363293350312010033310537399638409357407232479262426755713888528907801194037172828039511039233846753157926982671927236419423268161524967451241851392482965697123586045554484810746528471660366312213128808079691069895715922078870097141145532569493733093018906961637919704191189862112447015321734706336615353617796262457695584825945597224745054913061680826163622836954123722410088328490271438623631543898936570615769159020223336265152375999544836849545610442749949898221406426677024318380903245948087279188102560649736206838051929063566818169123382588107614034878359552968608586050306282513938462063897253867770340375474228553096291840445112929534816808196443553424768644347825217287038971997317204798517080695225849040092188692583862073875543105710993079872411609969899594881279277953952305571044680622180151145887456871676669899677069148771281730527925712783766262267085066938636835313703379718707029829455665382299378709967002048563918540876340300244015321725019487441737077973337163595617442182454345229748637062802774741932702997352405197768154747329175029678389420645766114761668021165215999230745254504861126026549596585175140274415285891841152829350545495110192145747599047569565383965045893973654275321614311918161955730892069466342660638972623127537539583426580420370757654590258166393480946169588009272021868422732820243046606631952499026413720618578755395204820999069424875529747964841096139709550133800712760622831579595002676631602374195260353132900460412079230128778168260342598120820661677442051817226141206487591645566120958461124083725034673866705429373919415313412109075313468831108841509241827401148660740647778828904541560411633494366287355594841355549212523263507194998598728916428646957562408630186193900245962674737759717799567191472301234554925460714680972280570846955880075638056428013257231382151627667492220888194355975157607394012316143267335337649473017919985187758104334225382947056068815518143338411265012018322508183683688185292212986433360850615469246043591825034637389045837461811924985883335699905484277790438055555811442565814824707143723003028491327742395124970869506696314148334566457427155466011840096365780880808040321030686476294392092090119079319970687173066763141693524068629930264776169273687591490210186891922132419537085803843677096389784783513983392700526501399770328480744517885093949258747024655178397078851079448439297933594150822520806080787811834295511218436722146896065949681961034178426749100636563426497687021402828433829573479840974340450577327941628615529016317024039785680573818778972503700866575651147842407232425736932267793400977013017567349783921962859567799313606902660682691650677245550615126686556186980743417550571802630906612449269456374207370798875803927640356261578950132859284607460337851626257413230863800300125266167578750054322721769287074167516215943555447931102132859293151582911989954570789099795721978179945972938887758034668356426062100144261013849960011972744571843727080650017951102682415125831405408099112639661750688306344024832851607669532646128713361469033152230221752892808265224019325635130711127743229637453250603612051344133010430728718238293108292011227461769598949422397461544458785166255491333584311297676686750387285896699946978395835090650418610570388858881258434751745139973014947716650561137597054556831538041562912766061957291515602502903044649518632164630603624962731527670129268862447777887185743602907236988806643570170565088128299944460432822172321587326348852892846734157228090157424276447301177156792669209023504931625525064847563648953340840316701333642725584816193835688896922908535143630879044542844466771951159696896283502643974125978200764012464048477586233360568488780127237577200316212195530371277772260820594221759341912657372481704211434383383232879509788670917528846466016336614537203260278819702134688705269353806982260943803747429197064012681882802902162578117565742663953131443148175250876245023629811358465220933321697151029619723698720101289821739170824318363247543119190112738029072051220193899528424089212449171154925856528137372283422957060484763675228692553630015750112382327755707070782439612328366583157182598692835424628649299436663498011162569769517561570617016461549094352382350082424519619140650634813564747035706181002233773310768600272918082945109653098361560660149031199316882456762320371327839744299980856592496580334082986178931173962526408780970643417467020435148715430324622846416473624980780946210849712631751481759441962032718623162951498235220193512362249388607488834641994218953244988562926427720198248771718781549085654033228658213052195274479466953107280001355419359415498065810432221865805490258453222867915758459304555611074215864282146560445546573742548883743147396956684721160589183166692693797877680219021550371177809194001313009249350437763842374691825022189701669034014444867897428768137075922857494077008288538846291378210132397432394665424237812044195318004738673198357546238897711813162855059175569166602359209394344794994543271044212059777044323467619393705489122314703421027110274624957302497569613820388559714956717258286463625854611142630944028190768389199904769887136717541211862298719109405371016126585575082547752495012878914342883182815415739643176001001147980342426032718254940782686547274988749111106738470885378833979418825073659821329493550107196149863046155174897113303561130131627611757733957961305808095880051752632693828630497289897546021586127597435193792771507765196558964566006550770947502546242263202023904034684551289891930972636569262441641394992862028389874257682606814774894160548011674454680918289159469418745437883955726528289876201276524386879890544132752803527881022757994820333065514860762434621741578360525808871809768135729523133379298315795668157454335121747047883672961816471365070795507961405953638309326241746252863987105965136872780348686732290170811594471636896370940673426262700374780366362991351564921792798892695615370694603373421541329600022197633202236992927363885381204771879875955270306796762550097158100653944528087361978175704096295386417102199818860165531752770914699960393536220645585956193760988976373026933667887133605063180167048212865515069320674417079706473201433262081723215843734085381489826287853651079277813006764988579741671838835154375801355446847128241956640532599307917911201615770365032155174145776294197978431103948242040428036911148065067532437982137412791841493778453176922262588364593614448047199442848717881375969792516416925492188688041924624977879925487492025448670134789910069797384632995833579821466157816908490487955656833330107915400434041509439484774960773799598229951864785941332929976678193987625217813847848909752809471043844300152515045831819409738626812799602746657763528452762054496264372210275541357647326749126072000836874565530907201285584111422716110586097144434448414438166176391613314480319321729815102823053717261197535727560335309781831579474956910784797979195032179214067343506972893532870890898932489462584698341850386282539150601286057162115021573178430284152584282700412836480474236554096975591322595004874042606359529208920180368261539332648305003748146236658008610792716845620060797712726043158596277685539703846459545401876578476692786933894896141146525536074656806441195329647454341147152893654445147020203340141872208000383958259605901117978183298777947755417858018257526187307445863141844247887257933070005205556437889535039647604968666471733701039452136149219797363414822620335888732049635357390663805034598669810780138141901531511692105721332825936796550026284592321909422965719257724711786636954986339401154949567902276239931150854964058094871411596533803476378109345027132333018573098610629964398297165344048045424343390467505353274353504794156530784582276596557267271589183596715785505594767494892361248871188940609266964603620848532486006117519695602888426205700203694281453904087757183685450598779300930011005826635133728160074868328027995818431197519213473590345052948408920651001873613250702545561002340228467127778013045634576903798712883128708974496919962018627749689326392581710813074116805086869950987516065087986793290625991070681922260981440746524730779490125458978561766533710111216751487858395507094955469521972862477680642623408213565120350767053289232062451192661108138073441673702673965424581556475147853819937409728562349349924418252217314345131266177309419283185460886941200573520930634719161695272747733890086075205192153452794800478355743106427524219293390895329596969801405866621138059772426746986937301318681429609193029050808423785328018709491313891143435966985945239915612954060252432934864735626387704227897126507042333484997205705492356612676245445541072826549603544595831934204707887946578107994176024907158171681304222009387964559155767296847681694180820150675323838152416746516707439501875321563680849366059890364113315134469903940971091396541673667435290812623445069407680412342998008684964239939825154594124261596702106522152434369097123634508610049436398374586418773940220160166520371047680539799877510410490258316574680587481408347887634794340310227912999442417702895671427458550566795796497183476787380505181338194207963719094895628308969729549408190630664351273293073837246220602168516253149885963774925721082715496415266963143439452944300106069455604178362738724798021422193156396255014616231341469960692527419433151346600094641625402438529299240604785115555052610541306565525889737685030135821000844393622664356254392109028968302046906007462253488578401860755954995426391673743742043986488781689901696855746973148994401357172851585167320141700750557249583721882510770475294220932735366365256346239824913867673910438897226415021623229591489882508032414636807191338462562186845907564788400063350830522559004143058835121093022116620610159743996188072517721008932796418412344356667780838391924077216713929641845011647057108748359176273958480584300316621164419671091039962132644509359277611652974574762329919928753231384252873844621802036542392189949687498644958252989657672163415763953573046120130997540389702012614659203078691564174071551623224319529625580136898822231883516545582581155019960136699041726910655583623898139231830636844512746725064062214526187042943794647238593498022576953033529742725088996137597920993621541413894661177734923618989745209067893491399698724746031233757011843495606858945823266014076889761161081571715967072821778036523678936123456273062559195221324632093225133099833268662311289003794725869452035692386733672196251420472837091031160668621405341689393970791193641308476256684346421420479926886786784075750402095301954407085325938476430040861265045704197983084226714560109007927244090070367393621682026572170339404759993732046237541496972356877578235723337636534004607299845171384611033856910282973735660810472947273851150557255327323850112187060222622088542289554691300650098922841194651580196646560529616145944058236480461161207401893352556917947971612117247338263761772471650715791888870942536555513810055005445726332968410701125341319017625827508689773624735942235496592275858444890069638730134634203135964945175348200268295905905559263985060949741745925865876188929595268651850903133205625246915034138259132732661754679257065510003598177970616790560342321694682445444090403118306624659883907468280158057937973082048781637946393783224482152584861230929481586892855185120914561023469531279476812713765263212526798932091836614261922071372094916170741976212331815857291806549762840968024380177129607473349643912384072696516720453170567989758389869780816630702557499264527097556844187860904814397574599220579361855017119648161462540679850849670473762882745232042059202742533123087451798859029647186392137078740371858177700233727101275314694796537137194572303439078899725446111252889718809144397881203929214249559791527100310115506560114408994460491136504972569594683754274725358567065255125112260297944385248928223837611805927341141305134091248966261822730696745396602545316902582598403835735656880339333809296310850585210224500034842586615232119203188446224003400292034102531457726659219092491327518957717897927451465353442763433442300060951333524789100147485889375262086713009012893021781877273893951619083765152244155865000827099251524585044458141772673617208644880618317080397283557724972498676704799921549294672054813779639492438230940120529692450486787529603514157286605774537925020286666287478821185293153465536859797074300092833456146140007314426799803741607099267972120278123021728721513545428558153616525678182884452177940508823997493294443241753954348528195814461628707074074351382161352911016427139488387737001069880961709182155933751990342125737741212597994665701081809966777621819042388629378081501091802050137493624561873715841248288620513348470117405054097725035411428823222950077227357992575261440505668807423753709431355801670084005653906240622145944922311288645949394688189959580791763006149625004725569455002500193586103805066807978261013860112344987656499533149016133946966380905348511181205207511855639090087777099531017022409068056340090753337159801036715185194220191852296274281887983808887155701613195785335161920300951550827837972450903709805733664098480079150894113064713604655059892178207432478286785833879731060464476962118286224142015453718059568327122742964728579427015667469906900549482034160798139324412960235725510257577418696032358685326837202964251558605081777105176912629491351441373614802953481756421279774220494797321803390648210454770512534497831550054232552662470675980269800881412094118533087116389812201265512210890854608176674013542884513428514877947301410944924785894100947495792101498459282590516344015026103946076939717855919554178607498020583820581976393382628082309817967220070943330521671464547358591278932200644530440136804007288350853499372545118730192789302472607810143224036380651182828581441333902122771238968784267607035170925851986644073332368554436111119990870673365005268222159425758599271799356729764296140543646479728336665211776219812276575619698823170640732298071305900344548565225842334607064725546594429437894367533627061765419023581898001934983761550665719203396484892136544764121450189873751058234158146693133161362112476025816521895369666079252522959202111627992193865618166273431859766899754011180453459072024829093589829267572581058940825089936912940183135585967488531529142904858440235371712644094078969960191421379490255056907848379105771515770362065006323897430333007425439304892972815980028164368669059753782750623860439972183347763481353472171805704139818954356540989023595404284762686103967111522798324703181665996163220761612117423978672141631687108180473629023645190074211535006058467763629246819424106753024044248328656764224361823279883561618590067940810146785968161530903331114293918590369369666436163619064906196224187855704960624742404016200753771754700088711166114846632684633640959379877556436121174513245736406610009135041857610460176426607925929769598642585007714925827864376715013006273187418542352299088304852111825716001425485037739569611145368169701851593038381195725630423905693707629769634969011606220479809485598162480819186171129687124710426190676188115977612694864299828214407396535702307560555751156160963171348554613831995134355075077378905416679509157599912761351356884232698949940884241983569032733668752937765385643689417752735841483325901003322028823273092860069798087520654913731485229536252737489251526355437008888448718949783842615264145350706439802491724558639634276692877890612532209198849469837842154440143127367572593786542241811226586332792268284476301262656130744881069250920990924817099349509757645671447329433525899077644625683512383956310851963903374585662136562433028177630415240174802155277588706012057170624393938009691871484605039953662755441957629419308036764816985362895070136600685791355418306953695161124261832634526811698442298038577449336508635679805678833923646135020917062480198971792275973985720736618806827441384632970164631451690875194541569864637956869415445420409341143280936759065822583411949548373411708636958512678722988268781734633137258530386173544629296355117795675899214570074014259530638231654740703993910497634119170971299246578617973776606144530530835522377938266023672981133260057775982708804160373192604607299880437004760258703083954040157200629234295712968217200006981392244916997955227644917277291558026821081291190882930709839058503790041217175642594320403544622004592570431712181439765550978955475831204308713481456507954016397733599168934129925457415574006876466301461757254021215587559189800297053385029368207854436506461475750915199975739831655221941466748161789437988700765024198671020251023723300970838984579849013875443228667019344986025572294505600609990290235218110288112263381527886456115146364156985694105367060261335319334882300327776270121740355942378506705392589152957991769498714293477309283554262501309553176669046215771647081389447682874969842763333787837964335276382106730896629593198463284478487840905002411956690411119566897697582142297423679788579190398737041111579501531058498876946386745472376257674566224194578292773502600712739731456048343420029862835154712466228137712318017845810698535740464408418244277768094819194773298563387981417921579755733789100860441148921973990016323236424581338686742095285623761154709935169139200645876529735208404686672385402387021551833958297657684770415743609982234492873420480319294843336686611887143068845665982768133231657219123754149116184210471636243387374885510877838941423977664163891635337407638579621137821001771790866449961071858553178941842823922162216135077549005961978289334050779921419582310394733817759963919407048884304517178091518979294866499418333789317824248417440340943445490451373560190929731641189435089322223393828319721970506629190050432544298169072379233576672834736265238732995932894185662253340288613256067194512633326842163851588871468385131847023060833348801250127923732753337852432667999254564400033823998754189146909445002981859854262159190117873316268277981774976605321671153260808544960729512606877082673748089870790944787481567819308055593592953071145282054641173899897164867430860074954678046079533046650679384839718176068369977357893460701696791554847006968044825933296475918279844601591074182663379774855815608014181385569598973435384707024339631723553530305051986418277088093336235052396605723604434527872103876231190747335005795376462995081150466980634492257342069042847508082380386623434810765525037040740726077938791035599943922902088960312286054658381246107198668131706044649509206540968003884642301792145509478874090312271114808910997859066148388173558293268842634286786883352912523097725829255111717380909078905521550173207394943516104075082442297650822288457390407764832218319336956915839421630733825960785008178516873595018801302934205857013382975526894612731863640962584007285191841218565621914039862661762123877112927035984672997233046416644322069932666666047469209005269269345278796941623674678607190581681662135134513432872071470169847523342494458501376820399128663719684983931994491301761075084612880380975598163052780268909787898797578083403089934976100845869195273663752248480426777218691007281851322279187009935703402412175015216003843971128207615564288217686805924235421601541429427437241068382487850142967715965049767150213590554569118908735656108449523431550064500583341721068885921052282120082372072469687157267131467966348693289337773145940078443197518241815952427584820717188069741120031844635496197733501136364124521182538583054886947807347985397146069816404842326051140949582614412415771612825950223176170227869070199116388351898577531733515043667612158750771714498659120736142667574707979872037596509035960204853218346839720285869963318957757715426932234965950190268904791632715681109873590333401808065508149428176703121088798762816814897861846891144587870806066879336068832352682259422967920502482381459937149033855003455581104567267850873887786621121059997673221877771380787154117395893850425187069354028956369666835614638480764335435583578175762583339365877943568537076289454383858763965008113131155037101820236560445006782138482774423742487006527338464747843632103104640753534128142782617318764930406439696473531531342180358022097327904432752600077326063817606795502370458167541674383645190532059610444496997082314323056834131669394635859953068985683669865195956735292562246917390202579828358593038808614734428192345680676424095779212448672944326385729778309653574333016708753807453281334659976566792706672005734164637967164503825349295940946896921314889954336128942753595674602262050202677504232141101182193699151267503375930904418584814649910529535497022766497068219337606620064946486263195843125362068779781456465088435417210827459460104898178587147474581577857339597490168415036091626377091674861786189078632499373826884442509852737171803920982406244569955278633181554479905826809627840810899648992178557818191444715480137401630366722739735631323764658320349765320240922690945331445171931724919772541982128433826572505693801894636330435929277313646098553172084478277390313150772247733107450407161053005471139688170833630182334418392748692968807757406902137986808042725123019896121796747828743627797352634613113254049338003365795607029812904874832215482404146531340657833944280528744737728529832807312075873685704772729510478069843332259927653239185428419895302448012467781214509478573153300684174588695951181652133299698830333043423623034661855470056673867233812425335679333310289776729991060230393143730012849330744400529509168348483608539167390510874434041613133110462624971202028112456361817921514844359623620672588168633283106439712375995882282022136380507882797016279638715311478423269575441152232929732416009666537661621048874827440037937184423897976822731034421599441707098375454724071712713732022653113606848487028191178029379838860007976015509476471501907038731099224115803909373483108627573504656674024115724355986690807279617626042044931694046690455009578392529171962357241676360930447871708705435978538588072178556953519356196648866839196651585163251509323790366949879902151277111345381002071212535223840931781517103310802329126942286582674111896864993776551289447161545393735433258131239735439527463305018487650591257997058502214204847356598023748341990504929369248180687805276770955860852604344361346893171867373559644088827520007149511420266181146409868550051912184330086919507760499124975452270621488306353211554101661986547217168614264008624740682765365909854583534135409541375168173698934189746773477558606085999391206495137559882825608039110870683310709860090365084561664408966714396390697037453731512160701161426603341132181578143353685620207492889943660940066867600671764609448327141408376435918179508716891299945571466101478901074903274849066321580307599135084415783177171723264485544730042535031953419692305190245757239830469020095241806970978912091207869891274194267317372671802842459919297447690862584322106059678028100006201940528624668269778700548470089488584758772941353461854474225137429901929563757680319854796836876676906874031572523723921608695795086474839427650005605315961885609779981987217880640770968468539748042095760514327587658986325263389417200675900586687249869246020300182743663252953903317473608895432912555891480479227704102219628470272907530486242235347423449713969989343738759833262618405986347696400869914541918868655526346720646150243470549293953207445466068506480865929171136741552617913214047810494365454749798309381434294306760619158848248708474347612978379761020177763068822747526160793630054334788617323765589979221636856843752794625452731411767169184628488022166495824015138213877080250268203717337323047088234985819158438261330061299663107760656257519851147812554021713526544260858224458812676340767533073664655808114009973390619766516213118618219394642758315479472641064551460044985291133301987098051029111684864203340756650987316709199017703210285686731382887830496140712170699978924589348444328211989828475869596391387974623859309781379932686498218322043376721185462218872165278474559561186094547948314207571076688276482552653627740050911413285992502988315060530014241727174496515097776585135473549746178963463461203744527412530284304126889820971124392419162105176180859482380548268424206521278821795301806275835493412939069330937098525058172661502432892022229162879388654232478359916018444843072869113456592689214298201186258344796938753521757492651621821102148032722424521723659981535085829685656510118595224815463991361950327900484179776477260621891450026178111734908201820518150080159188744401524095266025299204970562578190802855082284214423902257375806232934875829036002912857574122249250327037987271831274280732444405075075296003946864231526415220367040869593671414515355394761306717127998833092489132646105872240711342901660447684666879097170924852120856622236711088564107735934171601640284309927624232891432598362644355720881835375189730324805633675644477968214658537392627183148735833713786297243487487226593273077813681015481483739757732810955083517412795184846622995545576414987495718023929181779300568771600910239430456238447863450331110681407447077628954530523886841505745655589787959373189461888667885038052043292154170152187555678457081257295302047712414741716855074242473644439595657890464667853935297309482279345837439169079993765628285587512244322922675449599572659176924481515616134729105512237773562642134007414832213581260232795449805766053225223807346521180893179670784791305036284503055594418033132553579060391947923139572976268371238553506518085979788293242576669414896764574063254922893538934642209889399008764758692789021272942786277742303238147499551875668996397333444345225240238296248218893469228933957882551240138793790863327448845377958226157822298365943682291743186935172595003149623757336601798064125719962863548238230588356762018585943096784477996049155664269989535308616178982617204775987012623968797771936415110374777656560194180533922282202347425721818799503269131142618747401248576132224835653652962536915969001562239321919927522963972408311682631963663839348267872578560768844062607442964204129124485494475684361186552563677969938882431019007708638047091339463537172130404931319083229741027928514728039256816979230245420849466993150077138093919441101340345221547910534132904014150715049142954146530051438549497491339675653806719806558672104364828055359907112894948022121810790843541178089057450300394054203175243437799091635819093122225101842201436834198363811915310530224447488005817585756235531016275612469480826415821316146648330196933387316010618021496340105339746023819370734875390015065686700658804290756210031896137865838637177855743580384295871915624497823093300835753585115163297090988621115677710707654381301946556770624950336648386925121446629381871395844225831445337454197965231609453121045292115831653156078733447696537003115882785229161864007979726733614484299153667586566495053847491404810334412588758724218064431155243114432332995343247575980940986774647282073353978582325588953649304310916321845572827176803972027442652199452356178899301950852225400352208533440875261471598385736025494915582079857671424311814114242382318715562214512645972019127007219231992357557175764070765039325012455300558325932588836792002285967239727314361756954425118114164613214553653269174041907963616344873306050590971503900091286714405398788436567941385427936362928642443601513236488550921951382431655992853696761735416099300398698686359352981900108493240316176680073229645717465444255157861960782883338287258803870642658971062012697083057908614246934163194166748066092026881602495764041170343183735703240451871064351687755301766046491303592985923737398472193752626241122119460012050857488427548695560368719646011353081625991212013672308373045040388410458149104657132806826102281426561981157090341750281806969081064728332855902945792199975725648259431410651582871711084143024813583612329618331815847329275388431697138606054280773914274598614117571312893641294777615718827183776679112468220047977735092944615382541014240232290803830358747414986411223860270586266309186132680277878667059299364675831572453810334915170848514700407118233130485367487035077718539124816534799659509141398238502249291855469158939806363687064188298059457371529975723066344935734986394837299206373664888194044769143269513939324722623192730428339529351233357290211781760011666246985201865935840598657841808480929908895863494207315586195281588504241768733135655759983058436167882992133137834259193754335160711236209949007413749037586451425395003644371579662090694428370146999413188328973696919976039765733379542083039698561648394504778871729249747276389462538468647881893520246439402681228705519287786899457442618491299514791327138861722838313696971616503688703891640000959363469608829669843154040897363910904356731151882153021280844946704737748519208877865081586578084784750262865418776468429923008012920185119325385950884719433426347869778647944882449986070234983227844520715386392431839638859018581172201108696947616802458995241691613532242668690815001559385673386350972757020953088416948523281981201872878306551361442225584073639956319170800047225539273252464164965385412846102667341957991615397514584471672591323543732324067220970146441534977753749499811027422691087535836317036238597878076096780874250929541954050627983455668728310537489668988402031317994753880749187512208944506362557793671799419179052680872622083273121634933736336885193364199543517462590838277636955589329215151394108433714888692265402603544650389203661158922572208060876164893566112456784953189435393428316601050339461615770368143523570872523829296297645659956132817148426627383955907817646747245667210096229437548455371499382891520270787155805135538081600276181157617451432995338734108115689922120890452842742976872269942815415599539979969873947930565080379534840516203770649925993987150729917116399875192856277613158981015865763213273455919598148786018554769829276523191893394808251184100893866598946466872510494148949476383916613940299341316478810484128562290018749072372552477512260445746146350467948113463890378566273059661945988798610960652521230509865916538003655745623632517483627712109181306696474492733154778396462271274165577417680481562169884795534493294141774139502086041919725608045313408337486529528046144427588489546022769300997263273555039609673495484002079463709242700219196428176312464472472966249820914015705936180462204511670250003713179018304675297883278703676218168676605796225009061231052789472583547495932823581618709321061379427855695273216581301089010021814280468269683015476748660787131416946981747094960034098562759164604809969717369727412802921215681719183563980809797149668393838838361966035655222018087853357290918131565942925556234250282269648792157624735938020664356791261109270900044448630059804476289917745305403222117377845276274225880405463956377360235153807049101054692611161674652534117880825039518282215478869795612733374256647074471713127044019414106468642801337007642526560985074489678196227632129241917543271647687468456783100520599411711044797000339876670020351992947131340750057305515117379513240818157375419803496786434162132258488372028671289591793936396311397745362477500967213204639601024314658474360218185383784725394050045327143748050028326369996420655490288681871727583684732228508036586430869947376534633646418469910708672123050012059724403092145146276455989868085528353528270733821260088167965803110906085529335319247151497650451992536472125437464213790498731883456887110684723331130944178728190297873666575538253573122841557355488139390493881022215830627853944925523719179969750255436127350273796889407241623870861495120392007006030465552556204491873575962046451815144123121026438659446799643653047665157383962305868496407009617962117244262746145600683154062181786375767391677102738835673270857627361749185995928515712779886885941677654783439143378978471781489259778519306139552621255606597458093580738523974984769158798800994211570102310783838306659136031600956886154609661692172166121872102767925953278292366777719346612296928376579838377288213857698483640422249354663849478743846572576977550433672776721730191039393595660108999286629848574634875799825794803501711742423107384662864925748418976352855638954178798351192392867854111299907943490774012180594208509594255764729242442569308063803446189368708148937345743565499090378671304549806532512848490048797352596689778184511278415167128501949873531839993071761604448070340550543000349049589150414524438552435917802116677702270868276156169424078231386801032178411340715419255448695625724674363807717010473542261882884196550247856065369616007663845931945798748190937127999009145842352313852587254777345941260125268477988347079217564126049387907739144888269091002052835133655123454089431814626964879357851127809724827876668994372990878379497542515917871559446439538320115327559205896182708876579890957921912334887247108194246003382300361756163820778177732216854504747633990423188614926631940924213864321725728804922550255760260787064791991122767636365729423598763269363846822520415907540827221857869954609188964540910448903886919738773042031918002644214478546203807064916541633999868349652769153430986018107305120141752283947311584063783001613772438072054350834932457054856045649327307349979937433210924225858036607907440546365913375518316080822668236027897756331310645145093395447306405956300199210281907975676928393923423139085128563197450700136143360666453642044347216152994301651679209405122980011218699557831185016513820322119667823962183315074895672716968663742175060877785724224546261756794631599505915959135058818389323480382642547150457401158832650497874749481785759586541218161851474468085754618668368561560328827791728720488961102327808697228046274329748614775102601801777635570385399437377972669910344208045469292905825716402291488683252301516542261280593574189529825381394897790774453645456036677593187955030401374795139414878000771177516970535734286370130631041501895790671167075707589273809475845889989997964744533021406089613964840108899200676099322200286995062426936841109488717319305471388478810388416379452239566416597979041944139669103177032569941276915215480089050163377323094399754893551236066056564679509321739676046603193259457685722073268411050703786969301807178597929370232537687329935792542751437110611586416231686757336577964291798971433706617441157456514645379761001358352731625540779983433680015421453331950384074230470984278641903326145603396703797278442254784793948984635337485812654951289808216230293096118613863941158314897572373021486908112324618090628097561673579095978767387007814063383474394407176819069108584648903983808887359873155187794958279140197808458081653339402760916856830449095861782557738529841958298567707730016258765579756603351401611324472655978862776481819896452300191227258429038838539306196326662927541307508942821753806097006398898181557917698637162143526871921205490090160367219915901973810500377698547747942646196983981084006018263857707758869453277823640580819148020018375313170612972732007713034175458600728129732636858139458102913752625872523449004649949699983859298201769678583041682760849909126342130859518464281927552313717226171782900533895355812215218044806442123044937535635363943977735396826643805190797310893020743300872467889612880491404947107523621979271501897349520206912336186391440024161674395087022213791851392534902289760501043133774836764356602901451333554095343939482874281990148701768185551707261293655056985558754848710477265756244541486775702141340127445313083828693564138028868042595051808970652050876527128547458064321357749454126095688574092560283616712650124088473150628809448072882292059724352162553208177942151003828964874716602827231954358627818909603904114244484933376352472101407590312046842691906598905248403096415964097518096655743367886277263557209907320861240760096220615634529906045093761257475589978856383233133048663412840884960190243159909514429513177336461397165475138426882296114519491825202987809708582081961390269132335188343231734979122616736926431576846085213847705735287678723580328817740754060114037833508945802620220745106434034253161427035948442728163383001093718496164026890304118219231655477737754549238979928037913146718102296232334325115473340122745015646183954864128321504698485196123186732787067312750917794402021458322390279417579679849042859429575227447375942296590349954934582984403120326596948987209223416587521973654030246478861232769366055968452233388623759929003551897326890832644363595411287080795643113843436000920245469197714921218656214346081894765653009821406255126645975397219933812181435903332284080960660866533298685165313961605528219148830732500456312049807826763934732173990219302799746632653714341865151650425052349312377825134395895392865209543679594722189247804698395096260829822807257803962697209426093992044013759142399173955793931028843133277426216098768469443936135791271902906309186779927357336276041858011289070507585943439388897836496004547828025976188118537315340459228484166748356897964774047389410871291079918372637592478183761851509168560939185853723118381460610600278914235907079321763822767367961900990189433946071497180333211290418794139126951557032404063921691144548574979235919176939439127813717563390331797084720390970226723338655044914813675610598437628472659554358887867633582076204246876882352126901406785760349088476017741624484689734084645211577786409358263197463319893077657783750374554203898029359235390364130219363591433684952417851807233588076330571419258408113982072857249547812775160313855488563503136730759375585891702418825372959962139834619866783454817673714181538652359337650414754097986425978790766574077688244749331625458628435487758975304644021404064440153916523402419646107109548383557063125627040330653995220288409613794809041878016846221084111332484565487565501020062658141821716572555579481513857352497349395097799433752331348080784284557350478884788776029998601221836696471650647250323424520708663922790079954711034824233198241925874062575516154371388070702540682712317754862498902771279447006832091444531642483649113873904960383278310286699109510353004450250087765534325641949116395487884659135147339914348715903216997150078070131412495554371470936084827206189000448791450055266556885896014520231506225787327823794152761589748280211203182564355446298155661088157186726345518564830889143209553615973893708442464946373863648861811128374444721244839395072984437689136222515514064640417955519870489382275524567377342576462254690626790402644388563373122503888813299829807126434114806093111743537059703026998051324707709105648305000081191000744540695339546574953417110969338698730531279600121957923367743245575558270920570482931461417209833750725361339931998939924030573494378173542502288819856282448411385179982967435559563644411404576715711442951942432672524664658726814729826235262362669995457546706298157795763744051440401269208567439430119555950570117914489340150850322964227864711774421892346684425205165372737881865407390173215388232024238483869879640129262649650910702185418186832836426280388857720660508276783499790405451771530916698590236087888623202824392665689159995033644645741544498492815018924866899805009786560074086767520984021651832722335221020291033204222413666495181862668469004445673739120335298190559661836974963990668957615712685899815053736988987325795214576127184009602501876728289731327288458158799580883027630757624385673758520798918552237010315634411099519980342470366666960414319905144485474826008714694303277612099373436509149396874951399707291767025759746321200220430568589631162329662207486893303766943120032916498966907718058992037194770099768937820683536474435999000690472204065314929160584698533322672212153467589524285634702091180532263095711211876477891953969899806925558256783985748355822524373710519519927550760063993717071994798657800921283640977655052039583098423054878864860747700369757355243897416135336019491370687073023964151306265124040669117516409157903945923305857244227455291616349141802969364710453831578911081703319247874610882962662597091535369104593371637091262843712389097274907883936507090246169260325204580944876688551701948624573715707586801817299884609908476746802355877082013088100524970247733674421406824488918505992698993181510496254779583608313578109300025698640271916816011074088703565687343761406548297930961678451030085590912979871944905841980034035946774226752403559659072067083400428331521228971871455567684901506949924698598233490284099573929523821637749039504569526506793302933485830025331254905193310558018352821850921745196216534245669113606376023906226919402645021620498467165604188983957399391046633710435147006426242810830866860104411331651230621020567240734181107766118043976698274912376100532451451003768325920431779667777234026950770361399204714501761697308386930630464146965367723017449887198833805917904309544356970645564966242305385019295253033217877263743433478207862322045624908151492960118018149777443430109928567739215445467096456006552826666636314614238781158844171505934058507848901269454346297909545166736920697634688124168691854609417397864621643966287533231577665580622514731291712682015331892209084568964763900963877395483044573279635746287303463369068865722445321950262890043472408282753040028671850714939028780172982390710128967869522139655085081658885389199302155885918898551543250704550621582904031901655290866638894631636833418921879181858232249950046457387003109159045788895339395789534021582211497907692282011821192341376358243279220397292121682077468447683481289703369326612610404536551005855721505486926527857522288560230191123448604751256741544560112388938047693846983666148714190954359756140575067118075168514444313293812415096204299914535884219050627866469295714740491237825235279169676130316401646461427301203608454080132942624960325850088983797247339131180584123500987785050574231251409329058013952500898540194950671064948680595517976435602670232714792453087256767461897352213067096330461335490278497484023251033860664102315870114290383221857081420737741533266286805448339868600561184523427095832039595419196200102758353028727757915366890251275063380603277603547827197858556721466920036804929746747471982533180109642161136993952557798494921934492356392798870563032953309725421976245020632548385701191799743275024842871805836592081073741556257617508422849120495497504721804606162565481101004422372588265538053786290356468672389628582064870342015080235652420874399119361955259056525031390585733740908859940310855315272441212898685362681375917280468723871212181667530383995676377098935105789078323734607332210917891797103342616715744936401043554320145461272122768465732911324308117555999978628993715373245120065656525541923803000077838398748251948528734573366973167738881360083397708478500643795827350558650169642995741012794258758773288127347199924919948733582592961100530427646026355755858934514537597750526140049712952562326833949623056232007353411594835551763071078264563958245631804747054636442820735412125405305188572747769716867837952236965070853319223594120263072550965748510915587401941862334738553274287890420185952232978382903766285830084965003976189326981224724125648956185228792399221226765069958613807847741390420286835223198352025116859967846965414513141764815004074492458103174473099631980230657468385518086570437490348933406003530385719052000441836150124343363212674046379016816693624037472514582342192740055856540560565505990291362396582947983999806997218348828253798294402041265967504509243708964795380691637293120412081353012798810378818433434260103648307574156642668736955244270899681191471318374604008233890396443643468932348570063249876718374372372070967094332617791310887559225737772219552638740796244418807442236202677058629438360909281966864210063119744864276361933326784393669065646459562614301270594483599175431649502464325219347835982802940212512457519559828032664483685286121869319087245720675632250860731770042329748004645525616282945227782383646627363649612264352996187374486237634472093781999895723273297291228337765447091493854239217077121133382710560614414133268328061939610006712064412405976194980975483856940251538180604301513558770053167043239988009002516557491787353004083215062889225266243243237001599160124866181486624513928203670558946054939909850458941436214478508826513239513102084270872561412751424215229254748031621348376336626114132029282898435366025637571618241420886887570885562932843737119098005460738800941034360421354827584185166319707468523750570109181819799212779431132200552469671631757559744638488520047029694267678659163023699363850237574281445052366885645869462131875560380164329471588866223665274662353257306244744502510049836082377478436832663203587272718766301965915306080045443911274221884755677823905672152362915810547712068321979870553815265521391502314345076963759124638686977396579738775796227725536861802115467816527813188385966227881198806729756861013181058554872074361767797247646203393112194115263302666068209887881326355175085150451014921658212694142232842086323078965662493972922104871613551658590642591326145686355224806630998825644902073096839425571665910605596372749184681126429198987916865901646175069419398136785620206168869958054049847690073603792017306062742668809241976991951881882480938647607995910940422092784806942981769944961325418303352866894219885534010077625894484673552480153653701457471225609253326356582370410331897124162979851896309956858773026057287772754504510977117843123590250609425690593500568785407468212334662537800442365751527304090318808903866913318091733584291044548038167125982936032293127371183750400863028884522484021338381385695039904502220517228260576494392670420707324845227149398910793292073967500614806553316383099672618713915336529129861976579874525880957499563850142337242507870414044430081152864617881025564290217922654024995577988618396542368288044591836170451705991138555743179157135427307726812444829708942374542376002861440324436286080534540979713069751921469265685309194835025752000330323550075707053846791432517206477486601195465105167829709360293516069743455783513783293037062377751096802935772705704798092013947017611291697313229933880954557089830260248484247373614767585133987957932026069761729666918503183681993092670362540980516326234356055158087039064093534764421072676198540545835811306492246080882576558122059995415523582805334555598942178823351640166431138858367410681422588461125114474744774668064537720759023629249400207335072989497883371305529958860314913977393497546692035567575148859345286772066216181909820584238152400127384613930610069407219654020621638607974978454670215694527057801955532910697131461016508343398379966782175919399106795499051421637042194935546887530568488514804812589650339912966982023840343549241645178867937325517751501405555220352590998413864020623237618642835828192432625795017031960674185719913855743669046442257986822538577647224133984201687815208653873164265200168341255312015702861352356478484228366945682811060320026464777701682670061590499244457182868362532988308464699475404460832601887753641156856380753827836919384136612297026351955766016749024679263106816618629680005717597793312342743472457739471021710639551479779054883231349845786913465073243455903236488926793900352833128147623575452722511442589112088233378197418964914714015420062335110994459414232407655448857443253656338682406785048827714002121617895616490301446665585395494915336674641106317995859261161013904078590144396113374508688970760443453133151068324288752944924569414588831944558795877419029637628547427771896186371008514193265511114998644985795815764082408581123442798836893395780812273416847357593753703300567646366979077277798091568281158920047014347367219758558516609824080264055359538835554078469097028237233499455028693635562907464875531946458850705662222158614090350777762674867440338746467332076814709508201756981822580978202128280621661458121561811118202588394666463018355367504540477489330383605345130672706772037926585213900265241754480003177991045436444356774141357101584319816398553701440701370068461698931501459661873569435829491645151300121181326250754940382730011071565169484597948270581705558188151269226639757074673283361546920882514724235879710972398618673254739986959090900735714150974148466370875932211987635567274779142047223076592657823623466483131495853604592101560555777768942486408516187852212820113982472933269084500848624198867665160447046795764113466266072632369721023995482796584993700670747195512086541318128811894281646143254246967081747032221747024195849253330322133220687314553892255634151669711423460156795910475643957461780571336438253718253023731685309773689422771860406112569738301531281012214089324383050659382334484154783752644147541995651966350269292434884459998328504597461086676494036983032224420000533702772830432901265817720976237188887896798385146849764018284611893035367490419718556178458810280621649115205441576412205600045820029303696753358616931556455380792016246348848922990900301123511355108071034083825116389823710205508190078174658863630405166089680815216008729701882403322895621549948157061258106246339898263091828617451764278886489930999452742945133176430207360588690783154933746126758469355609086091424389543102893036459746702176727351282669161268035379379068742358022652650447768376777707805103000178944931665232246612808215986747876947707166808134629147448552513852300678092456024225714859955765259889015429091819565666707307817945793906671913355663500185417845244532536777473599640422498117976954277376948686054944230828971575833044672972506653422966922709961169438889584812696265064907136105277739891722128320902932478706725867263163545757486444238002546521755501957580211409748077259050504886429182199347543084170099456149935143412865898028991221585679532646607369807666787464157058522262600562773424074723046842374882601614991976887023621521875242995658343150984702897760530069463089072059513597395692166785363483049654693484466903900225393666240465257875412399883239676123340514004411797421775116592362204067851259126877217372593480750643819695585232342746709174410912166572619463909024732488891670215327888334461311402443470657488653982594321139888795655979401181167961121968898621365600066361938078894522320030786139078176512145601908658129648864173378082071376915923858351611476695761104061833102708955884284262492290195478706231485519721363540288110458646578427311570806608498436532257297570895152532849339116343789505179326862090540893595347307328085870080468455354456292302576350804310823004810313859641952123633349960081852517812176328581221137275266945051160173880809331619848338740431192070143836467836685327692087178418475453141120005489830701619154749005091202464926021313988691779470148465128582660733594776708432014755422360203235298682219812501972086309708985591521424368375064550729071086981829010277208638632910436734849488821379275853079156759192111323339085151808909147187430018953102949222812461751802553060615930567062455529103740976762939126809241245262425924160333248061739642020622000869486550524132492773547350556821385046787482871755469473537229489397768161581552875557897688742954139376897107594950733220488660462722831610623641982824846208839559681496729619647359213950101091181916051252789703599094553884276962617356981297441952612856042617870586284989548202658433437326876011260691070152499445337005829375245955475328130593425519245430666424994863635901284949144691706214723952573970772857639944039778130892797979153482954766966937695382525182775642823591716528913873640865118763865017029172367102713322102771337296139069650680612565208473069644334219137177058841863016296737666343059825486220560015048748903590851032530233445584273122141386827879010125307321915120651271537879467593528659857977778401178786269886511745852427296460833549947110685962355733922648797202004214662070563358399909413284499505374600692931826110746851776197368319354292805544386437682994607947970191144618197110056941918847761869249413814860080914879927203277271110572334101190136995347436004469011791095094176429526747433279546017848096057297361028358356411630714903403764763902648042489594189552010031741576038574039958651373400512065336831372285824399131138704241296925246874089568375784864142838713280482045749361910124030356743127687075542071740487762748066383552090463005530563824508662858548764329019594548847401281898264075574209514761222332657397805580303659281465667802470631462961749488579494246770897478167345864987072562847472812811809645819920432808770551264683623748909243406678505886795163399629979630026960016277175206247070919434549136888079628380965782924625078365513263165355840569731651531428923450078469052255862251256740071678878038698706213187061012277436662401381042092550230903887519610388495105342589864928973730141550175074657825389012859409426825139840787780915248669720953893598462578760815572763042775222907579283879059709285275119991327723572156157488133588593407893791522588244029952717868854215447300713756085445758049438088331328618421067367306256845880712546525858881668643118699412436391144095486162733554130539064702296417920488903375393477934434323839761146566188715092886058333066504040092450748785003783217605836186678817471676961019005603272252535157683138833689428027595688951536377767663031345545520763329744012270468797893937252740398570629635571581438709113433035723159440384695550939145171008722919656359017170420824544480924312352762299492007176874320568832395476860519303663196326024326012218235173112459940146824935773676976601660424350335870113986717403809651830015597405788633806842692639763103112627422207036110986646337204670024294428805828971653425781275810454637235842864665360374631516683834885393728148591841837853391960434033394954022124520067152864674926516346851895721509760525780031740719222211957698176280189289987836125716605323296972220528572659362576791748428048082077204936508563823336616968210343789967792786852090342877959764561144301468860731475237611542961578707050667712499682087891999210287982977038352461276449573001032221631725737730102648886482665935505776358145025769528216598313103704367619700263689392758456713690408403893664648761597830598557637744927875143458898765125077448973120342969314748135619882283147896398807574240434075634489607433544888486943161347186481189126855212443153441473989162142484973072671002892787946573827653299903530496855707191780075830788963170337685423568206159128160722311242380510977050481294421300017254942552542098081155995673141034706077116836130217179369674333464138055153003193067707316496343367326208465045066034549061690675964876317081858894554041449941606944565949011433749164847440665279574410074969450045674933181520210629069351771743502965358083779661390357504876543566381353143954638274685746425356914430034199180036983423931566673630836111152374401897333020132587271655558660370070845360468563286063671782680441824716852884949454754239379986296711425698052366135471206300141761921551576463824725361944465466169171063021838010236640938713541588468192535220144237269020215117270454346098420672742327266366011397734840630310282708938288100881478148903159629915479526722083565551875356566910048547929171909514284686263957853966482546945626510991852432960895529985382898891207384587523162227673507722190186479151609608055465400396955726459757795172079802794449498021255345937151449309411772052486440522336654241815508529055966960370651049630139712022064551553722427091038304473264791599905761218852558619045052127983289260901577639310448523066770700500231305061787934881498037560680829600509571435146627828927116463081121771135783477713410596920800204616703200053611453585173927726487746774921471115427095008159074814893763096577627283319354606820584175893656572642976801059671685449668517099122115345771544774875374855925316200618930231111464662521691488902015382440785285067448390024430222149935985725326401841776972037601224693565915184994961264826271064311734920778007647912896004716062069640362816304132764221603476630208394015060767955780446026899063377741467068451794250543668311297766787513493698747174714442696121884734895751886013416375200224148548337110931367802275512392248957784395710940959020776358297959639226201730382938425753115248320846064040916742819145512128878120935968699883614576365148906402625934870166458317396259472918160390379028163332756251212774832508985499931661797306836313860243330028406607287660646391354802924606929556978491382269360221020473194453172827059899482595861803789108549170294820942435707910089992482744821704077819799531710164948930733218005581438939904513876667397528715299904916592407574462303214725954335518064484411048068877577931394188053333449269425797541091662660312734220300681247556729454846993066108156776657264443563449231748722344442363631708993314137193604955868861795767952802033860783069606646497628103774546948443738201372732535293792793267442339032878731409240449243279121595251698455397441968195562391938724415430982241267623394803967807386964903374087758296209331291112249780153404619291332356813929888011437126368255213173839634261055352130261831290303510759641528568999369026784648641918333967122012867694153736992131334160156175408092012050852309689347239680384623829084647618707928760431263633373213871096396876523185821212733986702626870198733718929799760684122294108206443536895409032795441902368334895588129112875478577043122332239324436495601601342146139719876290550143400524324114022186280216548825041522831564070133244519710794025747295516770345046889053856881844432215713680766511767640800002748433337475255432350714044272721970545472516480335956637219878447707377196725674353504106888419663987359475443411502924345382193768720227084318037909526524996207988571776111388212947621506260065779290532802424441631403584965081178305796979821356875367256202391980989452211452749217560238833234442029181765569182129677082157546087691030556769545919505645784277796702868243865323085843956004262664638830649538444432823749965799986757711213837407675892042056270946827075629785248113346495475392986159509843498493315266380672530429518783451564867008273925821086896588595069475793408889870456834718067589808493458807788172869899612728872572479401381670567759860961617710786486667460277792355861885516653268830592040714272267984595993519927067196384649768919128954785180595505445495791440613772477918652064458618611626016272217454219760686151277362132170657137459582359217687303779135209450021356248941897988472274894156068187890037312968857729490047692250139369727676743961616409093032604879954889077722116258507551622766670504151371597324222626635057718780050618547589101659268953787165858197264642361831477672555426682316213675636797160628980247858185308218000129352443613455900752064620403079838587583700346232160910984946910664911853052915125498078377747346496385835287026699456209908196454918094584685956291780620969728778341850436680757454315440291660873513872190575894796971474475309053193559230635428821183902160286931362118280340006155742166150899818085112176331744428644443647215172744842218741312367988506552584277930378418692380821873537855967924656879135956106482314200454216453150088216173275534505401178027227086127935162350719989224654096412812007780830802321327888243080867061869440633225501201116588709814124865402107104637047089581834260567659838724649535743063038657060817100308658363245299765097349666135186062723976287168534432926038565649517412142037859951488067688959804518668407688555511549846876588353595948523359353638597923720980648952423979236789641695987594351518943253095934488693465226612166468950929837365981676375892716106550696748472728474222207067103037653945225095052850483289499539497522212163253325903456136582693324104449539423037316721888115287389869953595688062944203683624749828523192907907753511763869345736034339129368760738549946476111050945578309477744629163780085222984646165777930409661220509353747356789897648867965220782778021123647971336633265695610281313842297934676198451128290142287938768047456765193114342734932694352499076023185554586211393552866537070168922731675762996540178154229221724717700366503121404903038377178791475749250719271740936210437479522779329267596992997990897511442397488099573007492359862579334311377123901375595446881501586343106281964546318862577790500834749798101451147494480855352339794392539042872604251358496877062932694584410114161728382474343228176620099738720989806776893639948456196082679122243066884835539077837980559628141230143631398478071247094747106418875012570215883551495463187006040069353687600849451409717095336074260994463711761843553255692392514796733538967055247609084842631517154127023730981014835619609386720884430720489028462017917366371915458197594698527587309898237403692744208560207403722729362367197259470302325102595133193466814961198028163501447251790988053872889495813000737987375116293924691661429273969322295916474982590274372962856446712366687560104644866017913735948665632404047486908235210562904557252976126003999357703738189296432611503343153023631242478705332030521972170996448381302801796151798132998000525788571543573538916535222907212716015457409176792503937777411810813101756905269134509314588702985916857556779124558294458885448588254660662951580661700010430546691739435501549987373196667960995838439783350952107776543028968909384811598357277571778279207664428976984806751254620625972627681843995708143186779899506449588610092646678955394500071105586777173202909886557379316029231616582747766667532840165068125204596470016743721670835726783322192765127929502660487610861067382326282698834582847615093967676710742642066877935708228267043676215262581506173272478351147459712894322516227171119600099576851740523331108388143514561045703117587862900610761706315186745439042406867487667856733052810766143645468942867060398535298594881192679807427088878426180622018446910267313989570485187114047785353581711051823591112316763221294307322998881184430573325982897644607448268395100796094911620985824318971834922410745257129914552845551695340935963805248498973620935980352815137286441726361852414079124080694934153209659597034666926841394737531908824325618471003027670678420663791405309754434817991133760145069000494303506015350352309396859798147588496722306231719536041397930147824644750171798066317774070693595833547276307486630237471941928467683068873011606281297258241213475696798183735867187562668016740202718860537054704229222494548873471152642616402045001090375855322830021226580292382256097853676821647500430353918012238622218103439397371179162371850666705776576260621599425104250780042248306593495205460877617520737680784344739438238218125085460902741260445143559066375741283109145644138468092556878706695501554192558922483798338633543411622770620003356586444520996237197935204013692740963317073622696692338148552582734184932538521288547842799573461183528106372192406973497402731451859894251925892036494037131273451546232014046394356902216552777768156429244063278147440198295579080523594985810167614877146120497764991872670954067983607678905885545497750243939397631601700605520348230637323310402510281971432437527052328779101043452263497218129540138393747278835071335292847426742126821992102095545792028814014185974400640477077082514718857159959881557014450174940893252576922008977838942714423487757162929182456844743739723646990583894486333873375042243858216990376506276533928760107087125030802650331337118319315524119176845476115764411016039981922481374643124502005596441758611241211263888754465947152479920492996353351920121572481364790889495015884255887775569997541093615578718255567254402404593760858726555544538467754725805411025478636274272639598820122045067553318552279106395981940257465052050560412706545160781179647498799776414652056792932936019062081992543885099245981773269126365969365210538930099934808213392855909522962820001701093462062023242614612124372106332503367577224538566014756222599137797225907994994835843391587689933389926964484714216962539923295308444271102385850224479427917447348698022786786590808577239801578964836725237743123587327709392821409543929155726222104461163019251150370750178303129057143935886759301485905601254931081388654394202453080919395667198097129762593089459786927420250868785643447255381457942764658304034486444066096316056217815667985255118270584910759286322515603192054354749167217140438506152356797277157723860568979824659492344867382181097124227275127989505978973335895782170842219640083384957394965183671817248836688548038517335551503795304876748176025068213605127088047385293964407943898808819580323882791575810985371400917156456534500700063544576323733361703729368696469560943266116078530556712939336201878613620719406579817961308918367613428060829688248047826544371216909821981819215100381273044058949392589938367641932473300624730724192872471237240489593905041840263561886766028519017567814647211887748205234098611055514201991166461651629858719722303561817863227461769225407739667505243122663755234398540250681995659854066314863954637807419453988675663402266114835816744665665740838397876945742221764236570717034410023057035499594286989543806115751435216431688479199482924763589239505878839166375541523949452708392507498124844247346426523152459354771398590927945384437806309816473050660169365622493345604867226504669573848002286631871975177526312881911206856373652185558781309734299922806234978720527854167457204429364528786857894540533197015294494633036093859438785073080867044612090729560960989375271279348626712421681105556549569268248532976563819109775814671563022790213526730255716374603560210593364923093548014483523729262009088070468693126572169406856187489045041386530122882095495378123064346593786543482542607441347367903863886289061036094283896612323101302985661371758216789545566883407900104003255909379948929337845025285839306632002123054431580422059501861431589696039817277413748044584380855454022487932723407783622646928865624162358851949950499037568281187003932703680869779232415183752743884895127577253860185674885408665131761636659258767374018417353647730512211923553897837614325664388392620847024657863209544706121288230552474509378617309083490967013263737996696659542168446945496207003413643390030661802518649527680487507343200112445792785422369465483160243624248118504221845151317002248065000629929834317800606624755277139589064531497163231678207142975519317128541004684122191326014262055344882529527793635641176051815081591573274895122832977479596384191039310002964201061768868433691732258313643951171778734781108712706005828936885282350587134221399623291849475770203228886689514583185234398244455344691557190887478095618072859164750020198088043014119533551853674262989181028033476699745229463093159611916940164119265297226313579132470879357976086582980870776233030120981933606908662877364262253383967717182149838308677784906725827954773655350775926459755713371941453943735359686619193033059809481941862967773416459750998234765895006843321546363387662913101499891266322911121660519135740308195499292018715777958763044562629174760472877602527455326859636024374641311391705528198846245927477029440741047257149792740882986486496047008648793354349157115008089126902459304894873296365261287997620511447458544297019375680051123072819971241763262323722426178777629620563364674739328675333552806511461000328152615596890134034356850517218733601572330022666992070942503075486157942074660241035843789387637253708219509425211216294535338251667561622425158615484268848172846460720306507020433719073360436066720054576967802930000219561241812827139121443097434140426670145709423360252648266848454868357577338978751279896381988201224591568588201705535655072347811472188962528696128728999986037857032435104243374072843647677189932840850098710410899005258842746962369913726359707146630944543979778349743386437080046428911116216113337215071581399187310871557539405982869280005263817071083206127751715498668855660756825217545700793121515973770418611836764932360528849237107905767150710904502100796031475469875945030148109018309760755151912331852963030599763160830730889156270066667965216040711515852154798962932730232839244139662039262300096114813607290132958246688098061428083857520628836061212373140388669559094739195902187619300309282763324199717989571384982722745251442212263784292912224575261434074771733771396647974789003297689975459662685323215611183001764681367461537404920549180154408718261909519729070522939248756662426228749109845276498320510065581901369998434640042081813769657054317334304155420446290664195990895772965068094278586061972346200920577527196077017796411459064073480850452836913641544817873623773981806379377658543236426041622194625841417738716426237589006532075689726450514500576987938903802957033905478963087836143051473080714062852026739566832798510335069213818185467223083071963913653642292483007250018722728787162342775160688507696692346819511661508096286332401099355235917270764320494244702830932920854030823144585768004543283452035760684913321967648937096790415944402399280444189879983422015160603294369271746481196556889297552190178561455137727801404809358889190402704425042958872338997776946917973557129712461077555888625049085818730004004580240269255445434758221125270133701395261141941441702996649445046297852500887286499269563549913965797945315091442462385641190633084621594758816915026521883352251112536179964054545094797026670689555723246211855373534435614329474033837611191565057683202393130770552828187594773398678022553440137656047850699470121047736064711692942276809684636307761519104663092873219870113785058955749237337284239005515163384674277528224428472873066302092606379524097165629749320009102018075655602962257486344714509902303797032422928048921751327600377054665420037468374377782402934368855240447913439462625979647086138886989097434003644128652303700284307875911494923463926424059347142839320485521383230158605131212075575250229790187593707914534990945344167796026281214405419416404067089961570823432361454870910562157451108991031444845593506698835057500536161907536966650221652200652986470108338609026576077029869113298639490755089886146409560158679417208404631021455059281795782975214498318793493087460428191952324477803988464049508447072718661227114907391026618510573696358434882722157021575657894204463668026873657498097609029296367263108725573135264622638988922806170734934721219209423680533616036040276315605069612788941688077446232082176704988602782963569365877155572585356444947553250775132365558774961038372242281783155855204162102870557620715826922676080229371210493740349590006369423201471021803977861262061237131776898434330875879410404474219022263505166223020219013044658203877758118930526278276722660846976902406421864841061832201345834764725169074021538910584791803049712175200748976634714333889060856818429920884799259846062359251691938816429144833387323925564153103564881876012013505470534480995261769486233169003151594578276972862315594272299067692468413639984050412961471950832331113995163755156186455885114535251646220717562934230432820169623513214384778425778563236055853275370241284554134236428258738229239063707357531006491138563502118728671095997135439941707096558161619210957882247511440113285490573599462178593217428188090712226738869986404697643674528813736991168937749771010016642807751809546217298397002230678910717863684733961697521400308126188019890264111837262027320317334927647942609763879303073734166955815603364547692258047835872991816184108564467246842266175207964874068816539945702502842111857939614892484234863780737881784616374100696056004855717997577234311573037007235004975059096107637992205104379803439952215122462331803407055319427217380694041109537756031714576960383285937530122761436749813726652497937367000771230613141978624080038766792806377227976887712886142036085026788891236949810400031305048089628732890306235560765703603116552897205206200080505530671718347234696581698913509407239372582575583645876892705823515859870572407353192992573244076240410886123221875630060982272743755588701447903637839914093512643874967870745863233654237486490261241113924013584723542436430373514156613735598825331657031868210848325079182650816289124472358400988124824488471745023663711139813446231337947196400261273296169726106051907660412732844850503146589836698112696748501869237273080177080161965962429899162521850060571958180154794464662825035577980994521653532480639670255538804325187717927273079482688572522568513535835497099306289629581154818802754422279456263574828383570936084662456474381028651000218481362580582902483668638625413743611549048665499458615567219851178300261415340621145276799542641537329895637017767825714152065008454552719554968550405804426559244729829033867177537664729910079831003151806308301236866533506352169516615845414093424669398991321241422017093647089865857103152581564349831336648401761075826601019332756679464880168481008021115238819873993690933058000803591973210454098370334136530119839549252140696797783026237563558953076926218361337352419705266707684688593937735129482795757560427269288801983093347788679792709443670599861670173293523372993096211582744298501767360576859993953755893232568446759349046494469457528797792151048255057686089220384908637733551184043194376783607379351103677708976855453003057511033365051925198371960168988975285576079780302751852015859972820146888251870779551573943315768126331804133767575542215381026009637392006828997037233740189509127106905396525926927718592442098754241397073035542866478362845839909784083298253898753991826090575181472496580129979012013449051040271496641257379483954844945835121921224131849317627599647123700121422089500897389475441736188281411476463781676596454693912225680990661029277029967904886512262645517526632120300460918716514140981783035435692354821840828361406909129802322799163240813806489383004456334703715898740641154043536068358778605452189040614428423696016422914305342074687802054940918982824512071614197276665793673006463478733915970399311497165722248218731963697870523225821892518528909210909849899373586098355953547660243694808602058487292187341238770246715362328359226593647217396477601798690483643254668181926588326461704253411198776488932788905439515067736672799746710091182356491306295513319044068600108765372880521210272946115440426830195671581209952711358479356783621283833786149802118155325950553469950284423850749446472199434484884203705961743543344692340090326136335738302140487180700099841684597086130579139562742833436971945159680018720153939587174939932796831820908901819892877528708994619461568358168277422882104560407531160076376719693890445079097302206783382470096138356312337793333055323875674514600822045544878979841414433523663649597773369592459226943969207470683399566275732779492613187467564265992658796665065931217256820407678020235089585237700699029222980608365925270407978386591929096890926497879546494656480978301003013295017416654268411264913396502584200217304598549606949854733478447610407124900218015711277334895017596390578674722986043864679750213605802846697742928125383367726979450866145911860142142626103494378751488071792014893617883500446807903061810376864897078698293084569744150853587252261086181129779283942682718385131518891343167936895404866030176454879266168254361870519975073234396383221329510221095788117474911334486857019957772235493886301033383558081081589190886614686680598740720808748451284558531342474125954563124343441081798496814269662887180180029752914441300938648713996155259047516623252059701367707266180655647037079959983984841616538263686178414851635401544139512465662852541052870519027532135771822931075831751116053664073311252482200120118473036741209679560210693120913845129252098901386910750828657168571652634644433786864525073497382312974353300328011416532728550042794832644901997326329179307497837540724976327323532320530841953713277655793859672230358153726708405637682666263226808197188145019455079777981609754872358667953337297030072361030065302553114369681242221347905944255236307533858252927712501190459784301602919371524819354264085181503801048657125592338765192341741830997186749590517168711842072233972233250251784043244914437019642729354369707130522450250344090253847133807596214048137180699032873156643374694801904805553165901909957251345939224304349857476588720327451093648333597292252232714229877820547987093608164929418301676682773241943231428733484558120305404561314171265325169845207777847859314103892757585331311061965139702672774518847013291355225080708874538699417178542198893647275655014198839183012501931853857602766139264240445893331645300535134504475628729985873358068599913195917621672657735900647613729641240337505501079681347633998129025953485626375225838408676439846339058002031273345083800719966228697040972330243443054409265138710527172359715082653304203223678880015098499337667835330732006943447412131597559337146358701701835201360961182131468836840384226791371764437812660842621523375320384161640404373808421026785140467967030858642539860572388676995340730337362278146462761190971274348952503243151187746709789439187693647172133315074408052794148566441397345703081133334041214180996576474318203983251656487925295198487548239875504235094727441254838984249115072949853206642503245217611169752531852722420400795577720112527693443942308425228470272214256323063931616522984737457688314178055581540571475485492558610484132143638441883867172543932612738805048381333742669278628488434720525034576374011301908515397749483599120956538819077625339518374362306283732076490316090843358554798107760585518489264452190988825987810507511789528665025437310503606870086323088827499931895166832469742946509081297289125773831030705584283776604043050256121693168381624957370483440699905961135122551715016728715802109527352100703944373071000305782826526054915905657637910678962461789758435919419986237146102255866906739305222956455638973459246967320207831100962595303659896347433732464541449304838517556714132315509885374647504370567758878683239080782888016456683513408432750088269641635856751278584457021620247686906432837771458517976814774871377730946885606231024010404746628306360636313002418907981561555541483784012862436462147051115846223846216461659445579156545956875947953750263523768209285112658201265389413443644711921131443660519843048741201691926949608608248623357099064701772399966869719219643171743841468988936757236893133517934000944310037780492790561794373532530028091414982069993600616006995537778167431603835985021020637847477104922382319125853545830603612307771980986379920327415530802570656758217487227481857669785332539222898061707312368913186881031983987722702240030984300617875133848795976965011076288186119656401763163918246903045013673150973009650413441485790793030422449233298322497521131985115642911837772807027974916628333971430585595175960891910368108430967398379069138597538885143485814515470345034880538247901783291103117813633737674321734461432306162507238897801039332026575844018276973879168929666805045314962698395500213973088798619187427594105420457196172989867705032474527268043957660365015055247243799208768225359168858640770684438424857963929714324471211060769917608416340312240437670505219483224628641432859395258830414607046522909295285572878319903962146788052828723823602887077722231871286656813596689483585824993883172012159938717493499824446086354457692304803665398847127672382714772185576748130911891076736169391120908636161789628306811650609823403884133035809045998310208227963783398249699965664899189364100509790400989878970947199240748713526538843464364347049611134945945507793626359012834205804201250788332056012272680655732576134698256527873027326055400983989254858002164882534796674569959798317777334443056779634077706115934728554199698986398383208858006372535480806499792149620480109608920158582298576370770556171322267883909779842834568442530166243610133685035977873148120402466261412789305907361316147587121157247750852441503999382399185440193672388676017899014486588918561501095591388895388930606242744794534879701408874046968670316011648849339811794893421905744111739239809035886873562134300952574776668923356225968018760052468505199837519561452294459221001337848118428363713336067659654812674152534330605122829464727394318857909982935098715223792701205186273363000828718616011808462104630583206223445240401431112747882428111836491751071521231216101758683218898227178811506497002319979886425158934145668210423618545324999572920376173999331397347611220620625963518336404955019405567092848165825017112146628612622175396826003177640365195850927224885859422887919201865951826521480566595699201056519712195095333435625470960732686012931275256719123091885016971410848345066423381768273564701004443875438995849925945292861847461346151751174340504637606683883826055071967294118387560042910301380279132306117684432441867729573003388286687002596066729651931700222946006510863708719542990974761281866920195638082934199951306781934148122992315968646864377278512885707850482933380331957886917206398872435220917246070632687102686744740257853379102570327375338446976563124756429748223393047923578449615832105802377225398305921092968267588612875709426219154663168038399246959525420580992256164836052444488370735920714767618567711900756032369495638453013247894961657737323384054560817809993741624169675681902674291462807590424773143858081895323280654026327605453410455537246704154103962676239892011715203239071434105472916793666041043970249050938413078855854992635657820163612571745218150496388130977168355143295795343316527950390528977632131611860767855521183100037802275977350772322454678087766580514834216526647667846737452959214078380723246721768284133387190993043168999129870288951415277513474194188450510411174076633991506050031554770982177031268195913128569788290105294215315793646331786569572790763263092720158071250217743177278264241938814399235517225169938245947911771782139063981621879912596709131838916857622958024805665168271467290764496218744161728190470105959099723820937891004946122299922170656686306235730461957632244302040127449705791965883092757415256924106179272207922825812359991510843642570418518000663431899362886362433090970735946300148366981103805655935596259816508319145680409473073472382831558023246503195528399069730019643245079472973152805679327343137112282516222151638748694974176167456389847865638758444410257513532493180319009070161151328749456825752202023255240139510098293205920688067022206187742784188743556554085515066639988632692739142301866891601760901615387963750958593026040772723207594431176136437699293796289827127432056876440936135669315086618985359940191997397997350574586986332115418992532736159182968612591178018272979821579621788500039595368373043099790582444441998481480067694916334533306933919579787506838480453243300331336614669235322641165767213946427192736627857168028997488782079311627719568899886232852875135841655483435936680701177644632911638337166947742394616111184000233099130975684859674128853241056324673355655255832897966699023836785116541318791832965479637329594374162827134710862230875262470092435385738343005407135382285266673287596826049633877657767546745515086522400958637704337466910572772988566825168159769639203946455755348031244640478709155246940624155913032622676023548696458536399179935018920350918488410531650137952980440675585507427905530975003731071446670439826897058696808592880702757896699882585605538337813718474590744298858882516824033653676270049715382695838217810695561534780839775663181915649825259651096290184331332238900458509515002746039422430221431030590095717436401325701241329408842514123346412961823821146858116029390376904242251018493566697794908860707875180252288064171078061216825565841063781967586684207476741621152605485360311933862116731502576327574366445312817864853047464972252882924045154062019765036746758994716229775311676461412888787367711483693159097561162378033746987685741809773249288193797300929415421686329413493449911039922873589684036583709424980145498759228170313694064145827269512103027402752497078618378444526273028793297028918025861807032593032929497553458114196793356791076154812148410941833856540261412049046714912367095147814243339696604043359054194198983581902246491804600571618904301761234027550152842128085075244080120899988180419605081229342822230987952049287343127841048618327082966958146371750835262414189224285681551060473139853635406038226595838898017937760677644277784208181744046918586461545868784859586655240352298775525784771409338626890201268510047384885528272502799396979014341003934633606213220900406053380484020348962051396559782907835989263582395908083473553061860378278273480743996930297220473659995308364952885623811477191229770771115275963458802397056226150866379100551124950664316060340648752643393685758321901192582476252977217214724258072106958979666368970977014039752869649679362919635312179856789042157206077743477081207121298160392063988812726050642425938396011404095486667778675750615899995076039565680759535849106056345887792013726344343196363251261374224563101497652856919602459831135418667690789513324534230421632978751246586893157630598910664267860554212376144856200814765100081725555852294656609223291189005962244133154152262739993883431702447942741144744754144411702049395248132339524632965901316819941210076073703609059668814990249288979673901634199451668078392516718497812749503604517157211463808717746811541457274081679954334362837207101593824145982794259373536926907936267695290012255607703811825131693177648495922665492577188253429147944186078834690592366319143543034858676738018859353726370458734567202493624932870493061925374502373370791106425354629701340807092029635539676641953769556223188312675132610728753937286900567031554833370153935906886684639700508218931567045597130239625573884088534072125778806382874592156803690269313575515729914979229286162202464295031514733642786492096940515754386376539587685729770472068623170751384921057934758613857784842192509207980403527287373664033018097337059616135189905232195685908620336834492969491767767957901349655180413885835172678243139913959529850516252263352092169825498638433873999418182079586088749652271291657168128219362910836671912164647997570764977069367041283538040435859348377441216810290046781764735801752067661691666930645326258533174455926050373939989672003825606797548289525430424309276841892863857256986091688726871724621650032263564823926907049931767479350842266937983681937178258357667524121345033102359673444690308618542032578675800243074311936931395358448695756333419421073763044076269246296489650273177520739501786062155856292345715846920821324853497955084151910981098407309534190152263213842772807797156932303007781827711792869111184147042578435430460245770926838461648832929638163600974310422556614125110760602607315968696197518724910827705284901848701167417527079562098097404935972456947952025438873867707197917829362036171461440079223379567225898883006408700553487296203109400324595092441921544499754897128264108548502158137162927816712747105802621799425941400907839732722367997980816796540154175579259032245564689058074050198048014085058794586302338033650347068700675587373591343136454559828806336960225716800750212055747713523311583653152683664741311991654625760763883918835937673644139756656808629016762107143652936837353421112067357160836681672616511153739307398583810144936926473839332772523080060310437567308669024155300138523921936546192210496100070860948290155543831335540641324212766625210321274688690474646090329011999968527776551371461944836743919634985554227334789985741113445277820881257175261428325525580234631339481562559356555493486434630427997217959411231384490011515717601738763341886606034642742170967987794688148818816267139216254257835180306216456921235722917877570990428898569299219965948689772227971677562501229989488870867524765653601881945425288617878088617151180475214644456867779246957835688466516902505449492535739363178144742145217644263482255052294842498305638779573584093631663007680918521520682224661270991990973368993201263794492429088729081730421679797428735920970683709163329937812921331454369468649011851035027545806089917770176143028662282808269439505326595601724079148325672771940620693801823832859369927733776947030284006621247343387162204556141340964770408704404156825073350190910624165924364961318677321280933080037794199253012896886359959550744789937914280448382209922901034539102278328618599016203998631579758464469720990542205525202527829471585130729693321839882788590155747130610190257197833656152421528252893713762886733953955647732461260465219818848498894652882108899783653981070284033920515645095112250571418403045070511139364129173177129710343159680661634384691715350899494239274585543770921878756304898153210741737143616338965928030186834440809018442995245777108593895835872209939427789211157980412499889286402833635795774694107931657086662085851708265490974709803358982197645979250535032544626822207728939169585629974379825007532826501097389296978241853503166373858380941058619351831870655240261152138497185760431581334086250455429717601950043272740783014888887002651045540752484132867218729589029949457908528891307142143187712391674895478171963930985526786516504135012144565353934668627200071902473178318798203755373488855369450747735150089540236478016623803707702241552252637819599886883070656806342575970180652018881962240681405659924948618598388326207634338486145712419502622099041846363339248617495753662472917118778610584980963443439690321522362241570037807424283835667223940115774528117870414284453463913542029957371006091300958628646057441056482605409841473154688382644282243041897796094513082692008001784000348350078037736996757350211661849979629191181216284251344485470892012924186875746213474158539629859066781393596917132394307704687457197605907572001509843451064848608712680966734006666501482515222195224123759944959339309121885369596165995987241357311697898569616874601213183014304086551899796179702551224132343386739190574484054305430613990577938035764457640475188838126549220723642946076546429781735180070232036289369470048868268540692951303295599581731909397237984414456684154670211916717369557157726610084682403049193851055369974142493890126270849887563152033786553730049628461327712469032756859339200529418006728312468262311573461397426055518012529303496685875065936836850487563119525757308831083591983434741851303237411470808185245723037371295013136250243503375992297304071796387626375301108271290748674017372546669441431867664780580404923338618026223003482837686363605059762455697715777794002938288514917932809928359198643100700062267095934533363802325033025526946914387793502386643728031181452932972401692478839502035103444732450790362486379709605790466587837684923648846975914388338588441420585254388092116867800116864345390845335011247300942911182663980021276051998253043201180477002481846655422046390136435109150049026934116410307838061111883278894538481533654922027261137568047153842663648588979461946508679917346910533906258782826587704393288635782091542344621606433550373126852743372722927999674036807496099992003904929217532119734033857848336970724527758550862005139907131828638582693754712557071992182474166508429456492529936292915035335879481937239121586602251367641176122186701982211624359756266661243284151555672328168659616179365061232764528774249647142796996223256362375055234612662908764850442347902875154092657630052609030974076170242025727450567797832528639242378694928342729903385467804509354853242563329921674467813971741532728417021687774060378617706022511181857760387951849217981902043316527966357948432183263340488236376813547942107465843897395930889227071610710238989059876002145932363273093071313968297479465448546565876670585271080890209195591052251783615989053292943049358747921093353756078362401324421455524244528783216218502100437568605469279044837111205794174778906539688338229966089717154532339909317562647343668153210136472246298002497662815999695016558693796150716552743996064655099451500534962741021954970177203734281181366186420338145412953820262009194389237315862587313947944122519600777676362819251696956759091897861271465687565640063897340650583845911937770410620547008072656289429497380820402220959625115468745286315240366391995935231198936478775461748510856575083127272775741069907647401446404883591958857042748299706910495864699979299444327820653437968895696955359868126230394275501178919801953816672356173671251062510630583823106803459144477383357080053437256293915827273074129013466927876670461128916114069472961688069470129396714451375774247984992097047248317736438543094622727340885881762930462587061260114331535508690510367276204626172709733735736544277293873130634717506358768304964047455416058172364791763556873683067477349706822166285093090551342590806646731185583025279021282179627385581908419448414206244776234323481506657321032158702400510679737412045133369274887753144137453949478652452697762452182975422905272454638687888008757228702507769449573977036152322432087335764644949989474679807057144475614290812058055961494395005197577583186476224348486003504296384705146023574495366599169202676767816803976980784426220304159524135759040092170500214992986231428880069299037643465958658186306819227156254330425953691546940826389035419068071045527881516734433369634062138232619643792354118833448102789055785885617433386396853198587855037793565449064237753409617685047934973668345780934660106509731212624023819424040315632105502517241578185979165056697608532341175248894575023993110881180307488768300959623674887574533188044950938776050075054063059799465222405665454114830981989268403457396284836598199538129007182024199095044788292278048076671766257729384210946773530885919599902587217409200076941456547439749166090524832037607438304761238439314564887020843019776619789462775438925652873072807806940773775698312186873850833001476328918390717052276816600296164309836492862859069201437405064479944393895467158503412459031066558937210523988280815263897608017236267799545821893002543598938144047060901010662881997585719970090230757121490369226938212459113938968175534981522736941143430620018420067118827586976945016042941780094741752293119034862953265874390450379274180059314372434558111151930908513271265578931809943183551434972504053154045399145144167726573764647603449032853717251954098586538904414127538024073459439201658756606689624694028068790853938168787924456881566231349908260414303393434052198176124151841822961101691208211624647298675884713862498966601739942283382459610327091693363879629981435774569513358347000820547235621457287384308334859514091837814938281961318953850255387746979688930003858481251424879208444739663888964380812584260914873029572587597975957291038114304257372035855405035320706560073796738755641925421675511250749075654641988267517002324139908863693809055739839525441940874953974533404590616364087645369542883781076410132497416565323723402365523140624430230359831230199291112876914315770909466868363417704476859191977495130851703980272761255175748547527635059718446553828872991422286953991988286175646279024263179843909633711678174525689569792194459971690706428560948721840241332655342417939410518813822482423337104241390540958818329598372108666287238820868533404464055016802415503843945099912275484808299869175815481887522246548315041956664122870721045924789060270550373856922424319119172054222259031280643309144523919974608965469291582576845039155409786031813594005960924693270697875432649711761328101533283598034050104844358522335545136847249321055826118878385509197645471190994487990618647152886946230591075712236516766068731296422801491810596668451395453015402039477353205556555138463931926977678523661610924850664567774493181260861822369219652080728068094903693389067958101673686280953125612821271832351643531466989544659304383892871386091251905564905836058407531354092749229188120772936977905124633893957554893650281907616483597751167429685677326297950609544959803538027536657536651655562532155402607206651198962858766917692391377469737812374757301458278942388284063638184876415343182883562618255806233768177025221595709916253400944658448765442195727076712278324767224829653854962239394720546619726982802354926491677446818048021667808777268530633489347507854055693162688779843939910582147370577994660728048654340901867508959668988461621831889375659682760287323577008346457253649991632749085968322130624640811810568654267658856722702938339995179430583762463099146061130690885785052146902688839720862012968821239699136846986124893195469923227237487237111306974542704480504935367913741058373721064408004335467203168367776559524787919025618258595291208208624679605849898135393609424753665547927726106397317786706276151520018608910588167574411257903072415364665567912257419018050595507302353547559882133133812654223449490313084729052895907415984199890735993795135717125213816419466544477475237757298759703587505386084149645584063214003349549552209898999589238741117695563310990095970728411866089852037821691445337561267531541098993769285577085006561066173845198662889516096944031251333962307198263936293814958661481512100116184278488017277213164363464449646776474295747832801965949603000470996718008323571409941919324400994624965874128113072043498373876125201884816520123114666992508470944008638392577545457429572683746114380825463373715614387930469650770383955710091475105352245285981666137537902422310334742285472366345077606156592741371864171984343846327645617881161396527090633087926030646382456867666595234243929259760713941551895554117988713664330461620391916143343388674112139776715949438544219110202250521567941196049165836095232946577067347147089145380759447962720058613788156338104621757516966687278125589884308932192271364944355372198504474197539391068234469796177112226332192635092423104313066086797346541798557440498205024870867726357652013605178717545468223681032571232515331782370663909335237518916169858707973820730607038867387537179888160673547581570281700863101345209904752744933354304031483640210786333694441687620921867088117954373432410845032244844406467875970825010073906642837137385281818040899629604046742676953611579650961879805119914959467946277784507714875916964064140649041920634142702758215876373210351090518151613404870375067467449890639470507654635067744729982604208174370499275388772231233221161557439370207237989755546938402363903372005014013745190098291280244030684646695041776935493115908299746391426740080785483938088991053001365899773477947603288657563899125991351411096101961548858100813749526604714356803724736438020201506169789115068985140539533150924237688601245463428136339404680205329621525273545275678914154383643276050748806511437319052975060079600593999348124813396419944772236714301991938656569275151393556852220302135164958859440776353285945819976963984519615856010552488032985068642205966667148839403235880400379876133515224521348545426929715630269286531420259633164013111650055503039943976420593594165526372415767599165747069792939017843664310912742795703719615878573261110597761952018492981625478517211735041208522997129975298835811786076940065602385251818088754296125532189672729388914496565363737929678930010976044457065366865398805652973175032976866743252390130972143351250739885320823449235132782095602507267008655215881569266866067061909586468840484549074024809883066536098068783085248868324891712333009475116258616469555337010540969551018883630635270448040066665653397226976444484929911351151557688439721076647094992714045492833929269794855929796533503703595426513956441693721245412763162553898699782043895436171950539995231874002937530094636327883467321217195292188447078986087338713553172011036046507757618513159914381639299693997465470847421685123893487949289074330860247679091236187777328006306438320880892861116776822078044069271869144814764929457140522510576878545504739003582303456422916374515182965166496648509270548670835403275120628031200209024690044792992039975733196562958988895828246697285193102127123548576633347548942428321684356858075317717003105871942814093942944495416710547957113360004254859355714383584814137088204616790581074776501762156812081938010074037036129945304005758444888599204484235458185688102358734694342091768373918555490058673657538311525908306910544491021317733566927608261624795243776518275817519563809392811655732988567647814924804562602284476577765031642410087732245749237350661500281611731240005248867643014337039716182670594082203861106130802384287175437475603114978463824223723685210804017817992154221986004923739130762291943499296299122169536724185411024688582350867679697474640430565808323997653158457084098775921422854368778786580400445672906257110605483966246683090815576534750962693420047823914661114083787812288144892994191760421258468349038473435549785179079575640581793700491183374423631190311986285955285210493732312636803396899306486952147503191837041496692440778948746623731688518023335806377996884960620328849068504296506224059923827947609945922318941637341660461041839608628520475637186401124131989497928288402025158815240131880396164653233463088161152349244439893107825121941183856047072743706368048072588576575841742192902927016996372197011107354469556135077368323580307169288219128334311620779085890431600358048353890780838443546283281753170582621871522888411556495368125821738051385618031611538119056398377251581548868884119033836723586366029317567072713768326863690819883458063031262679137244026334692173320449539456572411017506552163773678623819735121055478864291179177704500467450214359029413933745707571378572518896928243052531560104999207043907013892994518997251478066023194665866163223804422981540487136688360797934863201066605107864371972531542351163813119336551431377307921876347213503361612195875787689409478967995001572222458579185528438670275448926685843193114762808933118829137455109887979672332694946681463051183416551655787700681393835861589924473395429053988967891830123265981132951354179800726895262095099697812213567371620428354923098094904735623832422482812874783164314887003105025711452670958622005112400322719323171352762413107699958114226384465957593000462208751662959757285052855548463797658715344465865499184325534624060586581796614222672280508295365459126724041412883127966100430705508685117169538761822117696143306694004716327344808152403043927496700335760474163337719630686379729477760897480256088571064687014589055880915313886419638570489717008530724104874803081548754533515627208830123899626416948839408979666193222156055904321102357384117884657643591432495292286102331275699973835520505658880822369535985868756953469579665714719119799229418826858617568326368983917000955613019198168280810813599595194709838464101604418797863274113568767481849368742418909741964575264447333528858222767058765235315474658990827006389025877518530116464640463028109873377144030978093569370451564621199682882789614986974363614495895412443938896647776673397018674681470922894674749229103356467156600903256186607016982575037789837480784263036492112205794831851250238645444397518307793465220311106319415373504864541533072772286766164770324746478924088103300100146276845376895778566025108908869800747498908449847040413735471665269262631469610815622529532425499981603084091852670485649089337311900253932867089930727238862433550819672822206799507501603470358600837416324001429086221147189333797146148956303818956228304692893597177531374609718263586112130972468268978107525976650179953926740209488573491580728894261393865371962711526015466122599731618760642918940544024181382304155839494493824065795667279218099870895084824032326399454180969109370331220528268948927369484785344169571362363912521101907057452539918670652622462978902466560238270241882696468771066919975150321587235384391244443100035982991740059179224561182358942587903101590629433105817977551615703733678554106088240928502160845985932237742093035423445477914358591942714197401592760783829860310295631790259059079216911883680866410034624701044488721476205895100128229178441969343125743707618535098379851653702900440401628498425247937525141759645690585959862970618862297616138271600818741848865788087166897902741164756843626624245704413349285970905245302787867221552575005960759849202436098851540104734469784473451744042619346080656525655255431888212690846700169711397949750845158457708119863454190758560644217132600224644683649327583927311444036919973195184807170348817553981972019536961319099823901562931042011538723268321417551222848797946620468219938021714697062892095470589504017349319951533536153569951409323524436955037958955075705202973260569477581956188815128830855393935724710803967827325394669081470002764759527691490094041239859262923075883653903780120435725129712506356651264697516709347623046157604572676884346070129500356463800665723701688820016315586392072200050063468823213869090167912725870740708029401280682695483073374407242185100350497027209463783332316501093991520249756038092282573053979795713456279437341696522345231332476495647143271727744620207978855298669438654524963242650523849546301239003617343036839224384469445274125313524249333912045966945240436835255406778496209342012195153608378039954268467613722171505637434486828313123672726552830157227367532839538725307689659330029934000790928095319176145012325722436621676501213001144996970168665842405713831939060980045671463401683954702127130313590890491477148029658246197702868030458939467449427796201744248985008123793134248189801032453456148667512373865240947002492112500332143084779721039392658948261486937516246874730767895195917572749403976137554265742139178139058599917125873775513949419862270181023882757717120370957433372017048915804592226819661001395138644750795615601760824446728230830193053570510751491259247260088700508725947312241194702857960206030960805590575246992477472948426588173119002289806232311943286071425413709217836520973169545757354237720371592587183968634235532611049639088289888021163846866326848135997121551871316158357558916913658973012206055055230647878933838812719239490583653864132626000323727285673054917545187433831967663918039795706074783587245861764892052384345119480296864368032512967173528051158411151234826593247447737325124802259948488961403866229316098581852827176465307647968661964576183484174675559418500140818023278746315810932322188983757797220681117560235010634777536473804028081039909373864704320692221931419153245735613967387300569706251486673501296062959719159353693530540807081136765173076283489449669993874321893613207867268222764123139472708697674770486301135397021995380358057305728786710209616935440148801575563080517797091425574156211331128665707109358404302647658546793146354136523205860116994113059488762288721977359302307320835777835146131956257920928107911222191810776516702300158573291490629085803299645558534659530599574221015541236019108186215805382328626021926599792170242133734527054888934337586428920338854693832181236632821401372989061076908041794015836570198389960065781684490859455291038207638346672630946101996157646630120261433606017667370365212884913701201245440373355678400921724707777639135921914722408202338162732610647998597682642617096692344157741219243559167523411170113284702600675328467266240105688224618728104430813477187690848389753751432656729234564260112548978915410310448912531164715101829452747968489503993235067453864915332970101790865769825196740288237257735135536993557578575171043439910935987067293752536961989882234977336497628545148609280521201510468129382208749860679847716940121440279828287043867550767904966582189780189586506630749881969603754051793589054084341435768113551201389442399449096292135889649861844145050212341578984118267969212253134199515353185608431689921573528131572686826471363909644481337884143067570069497673990649333400695514504845708001344357681814990077537284238190805388573058502816188309592963884248952927825652298547130860244554311040349606070576010101633751302764440742089866652086905705557860669975533743337298263271239382102227777817997724782688823295033559063526852062759108787028409193385064170944184857771223596801275281597522739821295528141178437431017141206561423325832296156733790965995394790438105594746481328104758175389894510493244541943248725996163743842687236729239877149226481584755145456313602526224566725517483871685079174543791164839401100615629308553478867499438292848252653603199275360796872988130621675508542628062993858694018965014664078046826219477534510958754951518057299447320775914041314368368303158392815966930695811749398193597247639501024996782656542512741759162792056898911912797553855992774216612501831343300337412297331465356184404818848129875067594192375595881296954508689847749722950069224084125063772164115440271096947247535615919966044531908520078537964977970726065253235741193856145157477170602336202000307201239500518495775329357634049673168978780177589337297952337455334156640530505609891135914826543531667821498710360501184333502160354303281826340227327108008794052560241689425979880284072585343679474491636554001122151719424751987026122039418799796511337963509226697261091648409315056632951103296963203631603501102242544761805420593543887641815635270755494820899462781082256192531111473502041367735962184058843114577617650221749116092206923175308118284466153446882458558172388378230007984218213891039887210323728047358466051016263487247030120774665196319858042966065920518740432814245959732891572368645882524457531386190335764071149670150356957225659352542987748405888800631073179839415974452888855078484013131450259814074592454158289050260712121494202617091588344267591095302335334386426555485020634255090488547738412602713229680764628857953353876758590645595146698865434458953993328609948133664727672329793563934117225105377649557898647702120967725660282348616840780106785748209397693301271616488097863749911214947727232147413819664896062971129200352076737254004178367549506914233487167877009072528338378791922458163962543653132007940811310384204097218128316394282847008345101592862979085964784450119879292183942495808913856721050125278893078890527000285283609257955672314709407631975217413625547635033073604808579265194589396736470051881900110769617415486873575694075721001546450114424930501410019946645875680897530260998253615055823040779563747994936013989684411119191433739408440739196837455469788394014986657097467600045896650892147586341700120549493675608640287634913396934905066794575598966045371470260890160792303121333363482896584558067789767624330236953735031279897944570223547965622125253216529843306645675004532275260600473463238275073017106983957798151056065008137056180185951342983182242079074697147942301966504972073648509685156609410391789280904166879366044970842272196590645197178795223874665906601907344799395868450916337943479575627726236972999627528042754040463508671014703862034339190594751673007528645512348465437537760065352824169166267065378852137853621057068025076813566568185653376398873689538361211472928985723387487730125776560451175538250608476495824882097771109574369074790761113669676778077175246803020496786743699966054447651087406382399167880509520931599732930849369071038086531369277305820040616739353420821381777351384948531032818684185583223971889784168463487718840172313401584248936374976428514549257394705540838393632529230411896573715197573477788361793927184606936373618255855714918831684212131952981857238414910734458539246999487902290022630730712046800892000921970351024656904930907128373546984665915730657991635234498677509778027865948633999401153947793111233446066553663560461232195714411683644578257666319695729977239713710151011822848645282098241308477779030870626953943527374912067663140045175458515116518863527350208605479542350525002762089073806020028054294297030020104411753020369232716211826398632209253652182769175865569870774679614823678526866373140391258380670700958877706987032493174147735376262117279415574383801022022224028458177294169264405999173914648223700466596933768683799701021501792752921515793593572506228109137775157320812709707142461960108376068932097346717693112237565405347844652498631837254537407648541534291609031426952088976248046694059321751034649008767046184160694472769050457353232368932492041540274940931831198238929957920224154187287622846369211648605928891644468219909247121136317671762645657083908789526329102803320799055993342085037465952639446615882410849498692647496688617810879756281450709206398870593377953006477262618572474708308020422522382136580269843932939265983709019098659488562773630638816161843251383123803222787744985387544869117456037958468236968676602018460985179714417777306426750357936665902618385396675964712025424263807003174718352053000258865727479271254594005822871252191629548970460490731776647848006808717343364953521283503573833378841877864477888713329176158656316710611765516515730257269240593867723268072206044832754658937030908414472097297319282868664012019629909355220398539040885932460532887979919822056270229121762838420637070434189984506416428166636523136879790940695532745747006227436425773314126068764884964821942826297194730912240169719206460281623879795988563933938255859695429385224361680975800752905586172882866120115710607412905805326884401625542166935008203673997976223427359684315579745719077816525608345923471607899309400932236733289672510793075345762755608387689312178082510605548739042199504963893565749657600910482746674722582010413951717254028918885278149177074004910148706721479479400214878943007803278753997946415342012132917001343045268754573085602979692294615427145223159005209565419142609374272883906570677149507525037463655955323765122018869026008028555233821493336563340132482715889729038120362904907508620120288984130741407822257240631788304576648376883240415390234024410867527104828453308708960116628656508697746578828129568732081763773912003315474833369030088277787934704799693696975593204547635177896299249141317387423582343539288885280974261006798379176042254359632410425955942195159156524521241595497225215580935770665273885396973338834115451661263316871300502422047324847357687044148656480770780715141196182584426211549099935659320371124633426794019210160041336735629468569281900982643511098056490458057398801301623820453512483215439450388375135528550707430013506580726641666143896018209653942997207934664184280352531805051446333088619582136574181581936657868951562444969165422253132301203714877258600206266523826690732635161941918031435862499650813472217000309867084636302373284699898599174063311055091439831162931502178074164266386159923123840330300351939325555579692081580919147066275975037919420434408111011529390949140756971558045598060219255132797990489487508986667632557431098371623304473259641261034249798253530063190470574384847752339577096500433883828114436239135817886620544157551838608235111837381485945859694787626298902693335630773580940402837720427400230279009883301196639214039295943256539015112625281581476513010756863327468049597428373679380400165279319612734307214310905291769959531466149256141661753978041658346739211325407684899098437254970529477576028394449112378312444660920825018115034577356152822330735844887560102071314000051932714591219037411911746723635247342122668057672031566234592468850665383603832241602724688039984674075833977571389909547100439160122399130607409052120215628855677718401196242007387568361705450160807810111273135839675607538632585713463097861916661425903589214270825271269020024420210050330025598511022108918505315355357186321240455322374595848597457419446978989980567993804421392048128912074523374985087348749558925417868008313939897381173523265428908375950468025987971430192153559221049609078282336454732883140943420309239698925001142732638669880323454939264095188995916455369934052994278042386878253492873897920040710378588656435846022019378128570890343456268350089721867293759508685330353356767082404575481684344447237220675044887320547058931522006953255781776611060669926334172548880433523947559850011981660242984770847820186904653973604170373626254625386046010558703637162891320331414185069630503248667936292646817289241590228696479472395132226978951939804839209059511429868408180602466735118254025604703107258480018449700644092011215844957525524348761378202201710684426541226801452429872862815869720272745825718415617047020786020211331095144395357281505693628385944604067586310506695045822949065684149304255637137511431028461601088179127143195938859114064260729729954599350173750593216661762456335643403652779039501733672635196195382813146040568725092642978977321652322745250110515261327726203460574303295927865297804251786820068702916262254961373756059020753884777580916794325800910714645204677884528414293654958852723889316042782955918768719169038104952198890702492725124001338388650820259926280056812618344806950611591926334986503186493647687179405744964007939496689849088303352928464904571330892614002943229521950712160348246015559841414628491223060879329783806340733206162355403335934413860019311053350138844281519026032996124670204859101775632400286067976294286392896191569106444081382793689499778845371154611062403325162120184816004953848520583606847248128676250211644570014993005078204524038335354230713216148453632423759266951722887023276740738801930025191016544002464496606827821819454534523418307013626422063868994837021950414904094998001968521836679767167162034131673791365532638703303001965623052607971158810189797769783926380547473638772479487332713494894825421611378165971994982415129631534199052695688727688253089467645497970918433118606656170623329135695610985296151982873542213909977600139611325176226044867211924946623314412195884305261517066907387836950119995883697454225770478613527815909357792339704039318209535079778380931242708585449726450201610804296581228473839040785975462826492850254431545843333604328885991240215133533206518668755665090516953599355851467057865859400117629347272401004541801125205120748405025293787503284072063241079517354741279937128497533963316497679704951889629573059347674393262736439049413057690151839964001453997515477343761942989434152845026000457349793799710605366737816746124255743873885661643552108749975689439690303560223189041027415073732798142311935585425052307796084225688833717309451254025602450993173607210949210680421147672124568438418711405427536308115098178118019245247569222013580464963898872219442676093222520764445355345112994604627728934587997706168507040332074170789412397567374874077082048243276162970280878046320666611095683236561527913656625832407829255100534788759529261537691641618394695544442058162048415334415614864152785298131135039778286509626028964414868337259896133999506348480833686398046091665896339561773414744932669176154513303608695539742511480966843808406579744861887290677424936046431333744668269058119857022435685294413290689871515748938997549558545341710711480825974289182668650174370877603403815028135354042241713262789484547010497465529504721231169027274201481804758352932141776733795275652383816273298474610500250476281501781294054318912932771698326289750267726115833548252394394896904241642853978131978739134007996419684522403525284247901042547182275818350807790123938894254332615675764696604808152791445551753360502522124650625879722992174337013371804689750037321616275279713621336399831672116360179627527660981229499113962606393557465240201866002271015974047197563383867326665761978335853340238215592437036020205877604901836010899715332662147436988281061894266282446780407261972609367905231621133024674468672456633991446785345807481065522758403629220754620085412510537777706121145706161876096817419990485883812151744984545005502886641120218307372253164452608083306469857683855267736897816727472627897237572174906067871568150279399382168724605990554967611619491663840850580283330699536822197321011596012205881798764326210273863236859179197493887090603879115988039365149300352274871161947815530851304673469421662761700271076182853660965111004539286305441247153325228510408918870789458561426465721663323257997969613635098528267102738115732504141585836962334326135389049193819589293664740220599168094693786446773968083779625590086825333526136946928367640383066031316032937627216450211705720716368236434921989585897579561567580005122857740587767757177012365394343030418998382176307443906933539000593525627272888564628463879044925435854866163463714066677102962050502217785553617734476033265381319258037593399754137164982557579430078199026293074217935248979088555684951780626607679288781563395585216708431656549194881954880267271624620517242406181101773428753816365211209060049056438438160416436329710453844153980218899809216796962527834161974955103925511926919722052673080452813684308058317951754810707497214056074088067453857358152552660374116061766101103011469555499018350075320362218740850637283000976486836956315681745399940611139859990846195610453406914885625864885293571657255558688392621931171198614596869398386914206749722582561771674414646084722176504985059967255568263132795067831897616287086954823933393509143807836307345404346056341168542709576790578094971329285343364325674468197033464752188036099476141073915572421176507063410436944970486390753126919300887621148403820377054868865616328717046465442053551983267525728228514623857741706168293493494271564078727817684106461273589927696300702585832518155662959482506318840683195870370925902955738416236642373068087928571984435256215542428374019616281796128065483889866362231578648254582738864716712774223670898140049192517838596778888442540016099286439893378658387798609722085964170640906731666097328840919691416867377649806375896710936726689679751783437046325525736780004006573885171170014755664840182107954218639544578709293546145912999171258955457291612733390227741956959474138727700333850449946476472554731012897324738697259347910860445650475570561468051648253101719877988549255844281299094273476736669360357831585146174742604607781892577689792305820568939276744484009091525145888403392606742588050619601857231841009391167751024625347493862495102715837330729211274195674511784888509791192734842948036738999785605452348423405926606727226132099606900535198404779685962424748072118572456893882073301402747281603396054067624254590122602640937899052121053006424064435246339542374854323742444984648224713509609493910662883402297005383558666897539376359761067765745769741651693111055319175527099087149202847672555891679962815959559428290740447030402852083283819316738488097565956112396002153385998477691498954655174072860179447026780265318321616088435231772173568828605776521053426376586480648340746031196665664820215381631272149189904427057435437198646013925155020546001687717814025395584413714342004366338934674289129591253509663072007715684870257701804071370059020080607167255406964200919345178021753500453551315934131814796876896581768966435897487283567628070881248299640045273238193625597503423540031428006843637042260241687855334183285248155132685278461599849603369135200479405279333829612567759141129688653729697247881216351952876146597537704342357122699510035212302394335005235458122227152758181083115540324740733393724090947144577787892859915294073334353574466603810265517279456865719178425951776939267035761686420626402631081834482479656695814416125671949877656991568076655394655424491938949633833102301654620219098651094931941883374338322301811047519819230560544046845985466881601425641228405917790628102472381863455651354964365398550498917278076350518639706648846358596857374578670193964250179774427214857469114303776810065872352713466172071804382995800050562330390131933404663140363648564182393139822948338564711284274548111855310115443735009978695404569085916087201068418580254386608956048616503265330830297655701787207558804529153089140158372386811255757961321205440540253562489915510008110743282316406509703115728678431678013033819858911337320417023472490641075538971370655352582680500910132052872765685615263877603610662413577005215996468628264961201853115250704000523139106353063925370964442957307574987870022350994820936256846190754097193834676166981529289897162217382270085325783010856720089133072196385726172259789990063849893775886029126169117189171040795672416171386285094469395393600084949863603244023952296928979708546527503269195586848260810970381722768295494744357147899175337742730891301611928394712643259708588714987691537787533189335532847116035272227200504203633581162243904925163012091443747736093388923998603455958979160852652902185533600192837266825662011983638798484885994555953153939518697443445924469935353585421662271668808134121129000155425632332523010924074118210650568668268485647017844926294196689560155677118350592919039436688944983941090141195798712466465210818225244450433301634073748931147574658756689517983214089788499398082304697422415404187149714265231865372657978114858020945803228968821179048558858133281891944270959301712624577044195819385841999548579066841476183757656397092690063065280905985582916133142255118914201631264743583532813365137318174376426505270189795602731696706474294376792392646333348987754915721379969317438067889924000537914244585825622680518892581804738852028910314925912620421951849545906870277269703040186356874181240789138606566017767236078217806894134540975774659050505152174636064805507122184721447760376613853965561687610760840209022367337675961882725745641376469212806559031884735323648805437559475833971763291045671997265559273728061447762912248594784553540963786136897873294556668443470470432059289218838480370319626458470016683880875351187543135003268037049484246630453504544103273774124210232135893728963762867831471141104360336746843946220982281986649611652924543374981344813008305426135621225341576512646778523702402551249351952743937924753211778194162475577413241587863036933582598437991719172604424628135155694652282254724284085066034333469734881257489822313348057137090139590565000094171246763504040024780714851658310949578658199224500711428386028848988038056361506358678651055010004451072553450128794033740424688083064154819583892211188748347543418304424714832996512885378066329469645425631364554933704055187582388069410265704441364325751575571828129010220748774897454613649935118733250593841175975162069587635097770038088759510590971807840254461159158387124761151414034175829295742152905044283033116595913237370825037265283476611898633177754722740984809537993728662245057815945739637330576229737105986620523870167677721711024233056014288693468165771708611224476218184415681237494846709461441256994523065374480454196005406919987653339669460059764203876257269844876300077308046162030710908084326976744072028307677344329847399792090375034527609078233861608845520887983141320446778527801250412063666526787291707223287658246927901606662791446494270066300058397500219204629283698366555124322012026814776924706177328222212534677738768383474223875703328411323148347614999688121780653547847576960801491088296174822159669338307646099148052028509627489972241103757376604897449383914959911743477563407813196196691738343845444731353409928127472138681875742905043621065127705588132251695821960130666862112209872186411996038540674145444384968720922883830392485620870317519730473225137747130103653621081921465946507084007084087245424390618166095006166238524640469555666237145385366706187074102622423499777670521856741256805315712529090470634612979126840402022954151097644294727856806866953444654120745708872660039996779180541846952462040787330227560790910958500275347322743712036314341501708314163495082247728058246678436174702640816270205117114861455951359936095642892404092104464573769760704235559086884242403410988214216003566558076999384973755206623779725150090024284680408459988576091807233716580892181254154357892005035520052299444422529151887592445737583675164382901535266090634388225944038230134189463105483702481196415909485762629753901369177759918934550547245901572813312448957928045630704907527995713822098355483169708392418182730242281017197474872711666834263929679490815748736246697056362847249090859073789010568684443324753907043949136829712054710518833774763268621133287679691277491474786020772843557114923998051224656168335344889057342215903498120113089056576690250711027033209973271128185389316168200769549504260391905814195429691349172943566926509548661775951042328659186916431249706977054353872840726005973322239855185591469909211658600462277454396706565870481258437594771267318954305947548588775633319624502647513063529770591028713466793784942258754159497656746079970047432163268595235301448090759441724844401989804345723306897405689305462031836270421229097164669289563963248112323184601836055693736222358909468959527242318057763572968645291694152803229685927855120668272403888382806076021661792818667240154763480644493434532935964682642794536040687478744232812255249742860425206881128867194953216913159838541855611995940718612477648101177658510385620830513207087969268625529397670345291718490854757236439988662033230461630206325581217175525223069773377074629529887821027634881497964854330519865555734992533691638730040133658164152600089008326996046900912625890875140905370239045775708880224746944013462790760371034494157183083040624111056046969402519577580730351528126844411809624191250319625970582357733411455335091321002742420028811401914428631676960896084801668294866698174076216236157996930075503224118153239590640350352830491201513982711183679442185054007309016898935204041195034584148856334260221550765203484809256363996967811953807610710195926565697010128547185356061448723875133095106955892894348074906986179903436674262183217652436055877877217122423703598732360755926598791283850124697046849211316176987181437630293648286815738640520235930093595518619537395142750655473136669211466971603150889340804835553522071507501254462366547465919725208856043834662169774386907734196235664311482749879092714417731260810600689340391794951748696573138325502759146641956878227193713757256951445431597961658115126285534760472323256829382385139952641555545138505169584099390921308041441037140200502614707785148849737708742393071038921115637838980556856315409426678179688780241549087152906192226176184236034724898462008763262253463370309138969888232375063557238114577698492275878188487113495808221201118367166067081373635109743781889057779156011718827419808324840720510114371469555477246229479838094180149917759941468327690492456534727813473066022162801040850367256993536398813764914865075223593096372731012128416518611123742853297778201038756389062251319390552552840063522065319282237946222015212068837183309166592960553526082941684767477511996923715229392640512949889713700104408339534205868189999471861013077366980265533730901131679062060909158720176840383525965646232066973863017163358200079259398899725311145432692603559548665939443505050192197908568982589330841877161758139737007431385771535224869386150936461584523066755287756834453080150204392219236275394902500780592465925481134688264756089079546783032642073718554239587669337086693424587729199809775879633579483967400410926830997003723679581263234512718712056711696601601873456301502073185000479708375220408826701439108473961050590108548456210452330269868879480924728562637852649609133520199362677344588401002487855561876143448602792989322500617918138665443896410890092048860127387425210563837931007034773717242919539880949246889823947716611841624028165152053357903762864469953188758759886291449248940784452026998561873353149338369931018803983590106058841192594406925307547981120731571978865616864266064229407336599055865680818540186315864334062770972847382495578378732231413968653446652465162127997953077608680057740032865861926192353251620503547791456694974873030237255539897812051135531908202805424544710441184778864686824466472288967124950843943010362266046087341613328772098256436584353943686721585123673436798459477226777183193509715054584887433200040949150388612576092183770187188642930892332413694814774950384020752160992457817197391309187797043662273545625765044569775648047526226582828794672257877102689662099696954903594610413343647697589197997011604500335933163016834172558696256616195301634878631776355372255682198920838515938529976825901935727980698744491649053911500670999701702596640857993748477025138176939537131682054224087412699098789202017202039137892119829005879185062170893601880052758501245592995220399059194213909489935641207036527007714102753078493256743332278619671014582309999338485956391850767663208004077018771615522816346795658022882472045407167842833136339205361788053266172062314139922470978716865840933454716370929377929771720365350141483985132599595636523087493122562091507777046213632617705352358030763485341138602467814195200804115888775186664980039644771797479529034371941063052448230510043448655251582124702949743626237791970169967923946916141418173771535453629712654409382981898548329465525876611208969944037276208042513136140999736397306016132456233253861225235648395868154669431289059806088098523683628675785040057966881808990751174718254747794192735897983832611506100593256006704328526894081131194753697944724660794885946235835063850617404032518943111577937350453309725432557738959995137184112633967362922844975114802175203881632415059034591197095787186726320578768150566570566707224258809951770176909397001250247737073550063171505573214083424985719095354319762512020841105607121971095887812850035871119838777035186461236249820118336884928421025339053890865961087984990325515229550434394701100997166585612724120377407467965509526370106713925756201182866607532833173470138932842505923689477011276333136891871378175935279140377169812025938091141297159431300036116121743791600816363147457222811957300263735895908519334880655708342316313199423604621296750166379159385363212005710666873209870016828293600034595818038481997045180426015528885465906307421017174127119031506171046782860349853817732020987460103671608886023224069794991706399887705339755238131854375559820076376456026508176558115528170463306415470436514677713329067512503674302079151895476493135044797201698651960861198645099472805698892478239927997474617839551705857923044634703977450104589088619198221139603051118662297053876430663368942592929706010083324386754577997678099993277877416971991022373753344525600649152997182784234427978058317293370716912047060307978626322405188058636285700027609029164094633001238705648446390978111487854189552992666167037280021602608158130946864689630714493963271374204865971111136524327776091389672853993523845306240106869947429896515539889211859465828121519875084094912384532343622720370530954117241120812957041432228410139670705624748595395495887589360569232478924069420619880016811129154077591517770874077930738759961994692280885084271397925972620169436885465173747421711903429604628824702654836369802043819705081065735867265201307652789421435616086956766214737651071871091372138075558811849228521180289758506170234881626120587842075904609865167766446203555479457854302801367014071374863439000985149696918595794704317620964945114088174641955524958878507600521967874467938304453200798977350578290877108193056173585427274363511362607099943635141192691332288236322089033109395110618092194088355576449243617407330506760145085259723897227979439529797073231810919862594958267614024323293091285644348326912651925993971953351999085610946701907458904329275586394663240619896043318971788082947955421235561572248150678426855228813386991821764763746357174221597929583354945828176648842341965495324704269248124203593168825323589429352009953327501942861732458267701737333703591426371428183535105174035595257792453421447819097056583738972998046271673194613001258250233082959054344909882659584758025076388832473281698097517325225753371627937760759545820531958410326067487772329635601887320022836347981608414882179794190753736730669504623913611836489827936087155895120342638995155119383751011057129800838444558976798902813301138183065709114785063701897621056254072012776043157014952511249689279340569760546884238875934537247790488774934862669652715863263206679426469672528369655137885686329811404469421342080658111597675495792043217257379376085253144829188713785552570525050199897624411125661654312074725448240553320480883050157300180442310422748438389263220399704371830577855692057935078015854328585794763828978585008850177071492355674542231163065459336580279167343275534794578420685358496010610615158535061758295457183777400577261623109761956516005281444136718348556525255427291199759854126087955319320953917546070020428486862574400395135210054959317335716307542719810910826047715901845127077678442676038320027524988157837795183188470127456766891846668790559411928151970984237292221077810407867660626373687876727956453584734028442050450609957782333737288476744595807336876668536008451332800777714326246573180398963708526398098664357646429825681917222371215741257836133949589230763770463541977935287563393580204482558660870144913398154539222323647419170846241999563298100849629079860424234738599392979455699644373214587255735040905935680499856185119372131983645064156440041317925279525824764134889425821162532336520586089969545785315712667099321323116288242754945434342286156427337841790883820510908692644558764697490728139396823568783006738366159346106740867652049660795461109885213870655230654957918897816439064405937116019289322051207909366725358962622942701058265691192685154085600986516902548877017728637879221367481881309397201360166288168916746175020348712349716543876221233222835954350701650291473653874678910533427173365034850542200503109905430291747843199826882773358781615998369438842135651196740427503978939161777118958585389020579656901997188914882692679685264981287742843858243537490548207533957486322365239911622089179742445302914198296921611834807566313909984428222097777102564197370271471047016070132743647172913962353061149291020510369250026703012242145317674111839403224713105573472678839726811239195652438422281381910779754574794606752164943200759529688683149175089585454523636084202359709638225885448760088155882051604057897982409335776395568886943840993049009375771700196813911385152448327630655111301681452487079844726222797132313803049522194180270325831331463236578587261116306881815639854418741177295710284231958071361175839188825093507138063915481132712561537677591273295012582723439158179182979040972495959996721955271484255472871873223036398316927305759138214286251427466499565059750236473936293563532617412420683675621835167341082334481881145535038945194491769298403194264941392279970032287032444857608069325799968560538742654907267590452885284971550659544082386532493178275749823818284102149417337261109824189672159337512278761756813411339052781921755207570972802253868438319297503240539685041819059119107376785608170553108067975034717569630830088102358956967689359812726501107590153805128480869046614461316253169512963062381518568317710969468059105099626193081503509550076679467895591893854156527213667977938499824073603132484905967634705540349408668420780310719692107522010818048032696884333429197804495339886385358672418268255476303695737279620379514984225107041917917635995333997755189203780104619724237183936187747484579120474589613317413040933624620422959563267239409483155677558660122081005472016631101207211667009338858999407540068764352094352845234978198820947192492271655765250319189496166132120101862850290491032655722319042560485848320894549780623271472301553399946383873519401263240602724554707987960021302646141037219197906301383117367939729202775961742845182220268359588779040496896553223362654047758900164994376939366979591082217694934745689644850428276639778746642407428013328471014957203090085878298585295213292100732316538708180216900554700804350159132498992614161915941461922990643844042727493906454807756995572020674928055059049982405386247765839992866526454051866746162578853343505994871182583951696569827902714720497952225425635523051500713472509125423111713743631643585875340946939273605158374255123199981158684800748629612795022065972954123378689162258863520480786729171460627407477400989244670387660937153354813747076022907107265172417652881379742487712540162863938763754163485200949327752806263584808856153669943952053329137268119712805503609953110580061087216709909485957738238771644533474426411813996137757341287675427523751646331748105998887486502277247215425226001253169479572173157990957591012979736244118986342850570476744963657171690667124793942070207897591247050739343869076201760432735955089991813797324810504820893982065657074959209224008569127706290033610552398713629472558392713068428090726708582009749931586893655789818869582117296405642951602939901357376498972663703238206280145415507335688869481644577547076672066259074969792360736559974729209202180631603928911850673051769488412223337180254981814113826514121358141180354546013382120935497214703299945827153671331802860541843315886156073635832301284182911285178622742495661089492328473649153302707869852832680221833015726740624668619136999288455909111913100486923995753212261070168087532694366817132684526719051569924737873506017147462853439874625287092964470882731191992831357560051374676149307161384081027895310464243054740827512844379448348684480712658576911248317210196803873312832551198332889523752983437704756152813546890846714926905154124809816159575480976296501592460187744316604573220338693065146938825380355710660945950035309087337380539287275654797636961248406639596703382238001175064667269567842621372963474780948435138792750686361635880756492888466146438933734046809304098746965741662581398923405409534413324198967460004232306114322573096088449536539261195842198321042758826351212454132451159021976054821053040714859805944415821210245172508572551560128994860921658553444356144483985770808816015710254727124228801043214011674065797661918508535108322009023676698617398633964691527852216237528245016071650708833520189285063781732784298553403132908667054992036344585098493145518563134684269986641347850828308073694913889424301147542155564478862696047308419165611774099981760583709603977499093709805263234646075249656240746757068261451651255320358957497377658914769869088994125906298277259401018035488743828555351840734832289932133805992983963943580207248926372381110627537003542449994442732293601153203814626101819984841272145982003394727891287802168334511290297429024201416129495482580074146179330029150140460912216911604119077351936206861473257375539880287437004127320412436344858239212893175448152000514104856906135884910169730351568798116159572444322995450634166072371552029300428166381406398837206227259465859705960079533619481051625138990447267523061580531725791310928788773429724751213651031097491724995183914802398346701993370028410188246589599535494142554663180519362740970195705997310458624879831501357162014935468874074295314405256772579498352161442711645695721095767043887139427643064931201707839890233049342410282211301714850841669981262554940875425158748540940064393422268370576050177677148569962448381303352902050208011375616753672731135498030100540942798068262162667130538590210125857677629239338264865962114928968823071229238899939791066402416810000652231799793732547642592443755744615392616260169790414282251937246857221930266273636640136505292978893373542948298542385643660796129376054929506604930696386341722038383792960336274266870919167940600615686069952093182480758800824650074630213052337784637541291914422901787355914048772959527982318337037869680921176058966730734744495173674873952100534058770418624611520918785175400683984659539209923117832349767773906916034039165059854639665100333335095808848941046831129975878438795848183456414618204949028010680463697241362925280873719212184775127263500919292977614958866137524725120066252587181480672192235495173199565063829327169710199357919856387122122857731200941867857010299162399598534147835433013655729973110163196312038725051980009637900451894442919818737136231794287163104105581488977014387336506941197420682610281932941353229720896722871681518682110506063474128794768253987744865849151177999692839809663986277011402472513535489171514144490296521499304088157917662056448295764784545103448719360796651186895750024051986475994322320669207051648032134084575891620917456095881183884752415642486565473782675768749678585362288528135039210066460642459564172738764684054168472793902071921446016329848799025361446626395269487280221156705900821042147360677147794071165922662638220691658092205633144256171029591118895340404298324458155948952542413926680158577880504857531227352705133240744172777799072847872764704269932412157099324766425432963012174042803768148144142707925694546628443266981254888745598561953591629568116774724220376203433539070866334729611392291496347893595003460624115473429384045512550298752075250753189965622734765330659475102666531944431108577502128014348138535453189701500438182169203926548389552073414782776543545947936771192186994745589872101527822430972438017647402438279322607554967813805559425318158906375456476974172400990401621764741228234526592769987110560410916354527388875371427768521784238362158147564594493257090823930670495087799681931414097532913644036711178636052891123829745162837074060227265496654071743661740504824929045424241543512151059422384962575208922546498449675379189655987632725373268925064630174187174014757295689446545917861278082672847168743137389759006877272066869568722780022865717631413946727885804521870128942146843738389801434121810697741200239114559841126805712007625982963118462689087466288298643367938513191016810806066349034211633335989515809870840212789690694065430404191299902251906656807905379426650129329946272582397083925509604073453086563715081252326542473108117423374454347780784305050221448639424969669489560423726513053112788563015575272871773404411077415251157092350490571288498287139760419709648970768761402748142202930726810866310156441055574247109575881762013286433170450326777306080811125232821791043579464801279175983431730867878714653732736643982906567898140595075345669114498745551975356392517975880235483073215253118391413060040161234303791363778928887312641405373940949740692570467247495944430092757477858272943578981956471102254070190313202952342054538438427331603259828947765568949445995657026895051798468189929189285073400890420240397854668888018163940188945782911455801965152577683313600370750314131189515540559507989564896620826522084516428066613553800612686663642489363398864708713123295024700634210289304815095465914898897846500203956601774174164819577966258165495659142673804754789804235162613957110880292476813821279188384754544243275642674119640390987103913389993195878644018026527955746966410480304129438111351076398963817646484762354712586878604781289644306397123856827977989921290695213041964685341648154453954807878596641396329054811505524780391138832905095167328324664646725346116101052796368263143460820351627603549260879794077885788385550058155111529531891279118744293924626915418411925913647769998992306248537565615843347885955984680405891684138548216582495233351458829153501932528386008928048918332465080869016805189425384771373467206280796497897029858089906563720369419749949796741668193571646146175747618255785127328023418587821510308037206295996856358507439366186997556559804256376629033715393530203628771720453794418798781313478412692824306232415110705972430372700274823479161104520153067465615960755630022422329649386560348984938198816549734169044986605974008962447128296654467340837831892260832808203847296791679899535457491836113835396818616532167742002998238352811821994625462026636391614330273001241447439185788203266472511340737160570241465645518146017059124200821550470609168883969434544806760043487148132100204789987579916111354785908171483923921950713233485052943737793672875616455354649375810459325162083837334805171858625369520396403269577772375421195013882183039978713709268894745088303833246309095691695994662014076606196122470582384732161652566140462488149552587187442337687373472123673938500140997512360440252788340390535436540331118652137677952398564208553267090631833985455646479866181045716018733892958413774933927461189152976581362571483050808222631549005974497425225893204930649088425519660953043653758858240524721162150117728664486720523061935236576239824770431299997646623997921641616380812247354462168378128713449113470631833738319063032064253953817901889885119365509953770880138957134404661533377105113316031964552581612509629543459418374166568639649914718943002610740636284680008069189232148570647391394751268926501402137367491019459568936648033297008321298645315209865293459004326009325529694362451793263584715373618744881826517136711891817172174441260969447877057490985067701759754519285298794375987587090734339544605163881357609517684478293965208000961898304510000775076848657504525230000842778197411171067721563428745024520556479950052439768647044773206859204649581908896322553033287558141189899937900107995505501260614091794870401995126354852427279805681506443051212702149955124900439781337103311403561940579469250827763711158708712812561554576437697988828941149556760714288351924246348755928330637539601708617201153856604979846706917644610473962754290313893467470608666090162813279010502862034460216239000278842548523560851232877177999837521514316618227281377211574724413775891249536566655037248708771691236082654094406467883497898545822648551781147161540043073383318318929495395730726351566642248646446532295616437578303683818129573712637067115056888279265242301041956217023649858634833661475563199167080037100454985351321597537398635390094853439990493480142646065080387221034617228059913671721176124562078223369213187503579385512419806154180113563350678569969063459906289471040703140014493858471412571539317917539314044146610292399019485639338638044503450547984098814691233988660763618831951520941262401416287320553723068995647939174442207184130602632033701536499805767454755711193485346846479295236653708959978913708008907459385139998799728543341787091327205083686304364650964553787381423098548576890304398124358152161984082897323686303407286891421209986642612734453321420733717905891635133819426066617836082219989532776827924497508048531267524668717484267796187984769222324004333247631418182851676272469334983623983941601598029598639699391566216972869562652801344147771573283041048084979851739543468572622221167549220871425899852727305163093281092681394599215764220791385659738701255368166777836729609916377683223784181339741903041942947592098712512911599253849571397340373849215743936799098531508420077436209412528503341331334657889220760308201604934960717592415020075052183880785704996666791198380035442247638417051589862814638055591139657541964874716588004819996531548637566263286919053955702280854421458014319603445867413083003194609561923774404863239811089935401916070029702957714804453272445212584790548380142781479862610139739454079497836937064455671983166673499108217892290033948255759486995247198221238711631572166029733819885083547168821239404470535373178424810794954869411138858281191505111872736595682436160962802086318839182298346967675687524796660474303448684627560882956933995056658910430986023709117857757178678784743398344669791365440679884132574616433543807074163008758872879259099013717953551323429640529303449881469651161861727921405133631394880688358369478118614068234402914659088206483463605118551958096412822166612496698829696171367896641198038360415456108298475275337017892291091858895429606173410553551550116475365132403104543638884748075315333063993474054389453572784057156255953765573099965728751557744356871263573755388823388060962415515142912863691339911819668167062200318994801497174952773566903015222966878900537185436413526087252745801351968116538312624424127029138285047056615793367363226724900077239983831276321593741655968473283296660441550022047569802220321515847617279285148553312479515822405192970713832777979935349258368607075736259884956603626821226551346744765657126399949867011535837992311827464010660293959594759141396611701242637662390282905691324602290849526703984432978169748294282386582974625175906989995699812206009385450918721738948613727921117997115039921667363116516026947951649179198102854591151171215744251182356853569452122560385840430080262192107912440566889098733669935425935253897847562882672012782775590310904879343502552524682748899188584746802246558506102706910710310933163038893283590938759017989988495259079163663303741023018907273019804599096173224304008490937139162870746448219083348792948963996685701351717969002974170743759594352984550008270920008111604272200129105219002628712301312701423929171504418450934661210369303187906293924846690334794677756930606102899125824455248162906786437640844209307549175357335516872343936859624292861270013695563783477009163273871535040882569843490351674288043053719812599456067835243192760950833459731538709202665339337649833506040565027924012192986250808488749269165277695695319390895244924964352489497900583430450623963607602674063681507100844121516432810465311084481110582623124870751431701083175443471864585611613437122600498600248406264391846392058432978426920524490795679572374577680304361152182084764141129963650406029740579307801448999156109849537217269993845376852042104369700528194588633783715772441839637083013587911282456406773762157907236222715840583110120297131710858887433978401568787119654938253328599815259028100239717067451408411727727131817864225608405800774315584715504259670844224765763989037650323038667261371893269581668842653586853378676970861865850726542944339232891712428605457901186355801091938852559327544138647670481592885586378071135513836586009797682531114164394854554001517072368739713794549809060923749267288456125959581182674973346671217013400060751929910759458026955014832022409146784746819988332108806801212281473001627330875645344649950435321019778902343586240798845746830086849025117107565715317013509819783562314706963371446667394619105991299969226010576562557611262771191574092407649806938840698180646358000851787404469589226587457847228260467342588245127635701249418684823381927630909747954527841685357508950642513119489350973784855830221382346904193192853984660198143224916872287937105639017932612572173684590695377987550762104137406327159043362088088590823723682852554907935627779460019160902771750681003829356753303929258824271384228548135907488392340635832633144081164834167933630298311310097827423807866495352469496499865716494605056953978681956280017521977218865737938928323444230403012782994700562855867776500839282030691730968086237757589894919351797554071086080808538883762481725149682156401815932656084601188094197753098205596413636401751414024462457615257260965290818321239236590663712375158349460334608834336567306788513773134597942679334494637871134855971608392841456518910287648323764892333634058613988502810178078089687275539639026721147128429679057584953932554618193645465500719000117987373038244330003461995510795919015396287677299874692953521830829737591531706762839847172672117482254853211799465189969551846488732953034313874429117568541461174670023414142993569072176524095866728945936119559960160204545215269401278012946086622759920872948042744847094748314952946075182426830542802767246867856297169476691425796997184448405214836744349842825713265798736778275087357072530870146004615869610864735930024600410845770790611042289431544448621960726103359590367050362097385829712641769907366619951803375859816689732387273097814912666099988150211452689076175287418178528234975808963428451053862272519986235549444093884248236164074456282825894631967326924930390866272322365738497660731117293541888766366293880205939592954025936401609964804708347991751688733777614094145673108570929441986224604613561309256666388400301111745897293809638634421947357831463206458633534395495122974194254553507805623932804299977919407553359834829513162329441239788144644072024590729968187728145806597499808112808707101501874290485798606149431255953646666365545330188513538941814427515924745828607703424440135772170080707834648859153622384943298625730742603124552660743793115018980722134235844952896376549323192452465084408910504215432397027912234290310235077921471173189690455717760561582570518201114827953318774949865259355047836516874523223879266478261434539632451554933962038109199258449796875975152169923637757874589723570665798279209282862067161912604982800214243219263001551298485832524594566733859236244091256240814312086837152568983542702277798799992136042822300430861555767571767607828045971833768482220790211623711241991840286223305887933417391790210506087883267076456205314274458428127987852104903918591635193397896700961346210371332072933213472633745559247323289351595256841457220680069103335279385656522515820637865011563486116888305739967415175324850708754584211420835412531991221101387877607288344919979528065615669856909263479726617096179499819836323703119374598364462680668211266903646506962944580771971599077087934777693407010245791004633870793193649492298554997488907353329946323531588682907483327687001283581476210651304749443135847583053979833074848631101194221896904473741740663094199253440775381623963607336058605047160727149284357709451658614332817143337197430703711173683338619511696648724667878186454193159416516370329130894608580698925155120122068976544055370302751869685150721757457608622617498346816941728647572683886059425412386198292377833133359467823455531631911457011039215418819810879165418571707917658551057801743436116456120359296618203241844589903269801902671477475011484729119463341145766139518913905090275240617935714498431761171897488423097955772519086006722313824498705809900910850369499354315059372491562740052147099425560588790848509308875575438160735324152073458116541426948084570233411461284060173447263017953567074094592891122097876724397715348625658913938757807613867839579196809703751636226927396106403261264956797857267466879533814236431097687884828005723660809165168059003101532854972549298350730295755512799929489864086685786438564989035153304073354704349314216320406762967670794139509837339046614915370406258809702329487193807808729603717837703341733754965310556373783391003275586546506663369851320756295799775028278739467134668956827693112969957906769492987080621475052848988872443481263654295069515843050673837885278386087661426455697206301471947997095493071812053297636945510894154998147829625913471178157086403096455649736285050616131758302849133454645549315556618698222120276090214130973060344738081092865978191341528200479026180749759763801497789267333082663737832635275370105249867370084356611403012744072281454959358798761594294956317104241520081908013696174799021913637199174233458490082638171359347878910637727859292747005135365349832192069062579329866074020551921282612379561487362719603768305900859093619001120998272393536427513020411316784288447183711355550984585207253826929223176149156939121840317625195353374865715745880042092723717762742127000377588410692795493201286209460002076279392261664701813535009304498080299141241559852097784640378210237640289553103772671205804310073255798983265592559899018740990988318298348758624372809806179104892697094591830198426172217625038588438542226110650976471774725165528858018483108100235707889492841261005252756512251807660033846790204992951467004663279318748836829623610640086029323918740010728899175131429835963577968403540362423654842523444123310959887723994012178304801258004517099448880502798440177604872474776101333515806926680409292007124209783158849315685629108986377740836910412852868543420925862192908606294053617395530754572189128980938833352801268087360573483688535699428059130793938841387971971161119912241025771967757443145824910595292429053350257980052364909060827481420795465382906977426940994859372111020249641843506664436195689702453452262036641039029806679015466738114667359933665264052398629919066683209374523317103929571743498136866120090087976527567179127225452927614261814269194584511725759101949827340207963038636440810339691834386463921767339046229019169891193801848555058780637918859154830274836204110358636980445374280557429681700997840978733910081912040838238348848687231539306432545629358438234713255105206820017055847716457876709534824989205218056252978384604233041611618093576620903295777677985480995471482087867950190384451035267927154376787422911222665163104364368550755615740895996124042745895788657143685016178468003530004952108362541569527707046095639011791374150883842392976737739524901474939540877349186593388286714816668695806210439451564941889844138131823356006059284289047060902524343491664434038270416154117576247326848377083959597530944574707391793749503554779519467791947724904897152570721815824451289676990680209356751069631898810043780938306023911402101736164985400803547704980723923197315367592088283380257845006376258601935354048520245544521227333024816301735795041512151380757306463945255784287903035513778123756265273629679900480136043097332301709813732711419936695623926512301139525260548680377512652544043477463702909109693803724268149027805251895063284824878918152995117451911759259208064272519242412217867592285076034187439485514054371619965482164382939829377324817118324068550896355564884392462749620601254096268595967055798169212430460804383609159077183675561968681037989850218044677823132466514238537170942786669959936547319531246365318849760030326833965149274249708283335729861552137730423715985005299843529098560266707421388179911874136808659858338784450902262595884139823881090953170152594692439539624076407427830370547126345420437612982592513555314610342206976792227900531843947980925323305615336013668939794219587443927084389038085473246650631468013311771245642044673367896391789110097323017512024294508116892177786765190841749570052662439107271139539979334603962617243784643633173547038094937826738872217096337137937667014279065540266717554919380989758718471974565947611400961350644155363218805955205684767117237279476556267675789052006887154322764316342698664221044890336279688620306172258370752088225888460062809523982054037490779262774637241548372893561985999292234161021811976722710657727823788857199537579763748475115024019654811444986932115985265380266352882978015245512674285754765697454582955675394238821647650233335405492819517442401147017432593640889215422917486785079174141920077272474110673056193686838688153904761874907485400161187797059051397347459446217918432600687839143421428931478043599220970931605561848910841999460668946207806086326434574610960552087018381434584415768897412043626653491226413405924394110546920682877370268510553124958157973621430534223579340998947973902713250966284182102809399935562219135557437682770909634869049685308790720848392761267324246996193806911750163234737087988544903970928638158667471117930484028744851177131858365183591988037803586982263853225819386497667920922165186221518735857544147013350048832432579631379780569067774333439243634626969475856934013523654985187420944245941508109836897292274089646506219872270315193044108432880978377142373505014779919069988210698954932480227668712087735700401086475942118572578130699789936977751671782002518872356789425543999413447495762530171641746811925583048633502998829013785505872145008739164224986692530879516278429337448357321784338924986374685686866217816067202805033422906260445368314602021621072717078299145970508966451960786549114559588510709125237150841853786908704705928178392839693089865810000118738014243491723564005485779795363926968848133314595802253013052145931958995446641409667145885058891821619699624712403536175424441462235783697233127758756297447401932500306899108699306554241561811585075280260125052160338887020092375810467983595075236372881009247424284526534333374283773539323934732586436697962117778607643787815176428909430545112624672101386274985259910379731721245083577982214938801224412413608612007560714886159109957490994335840938313994267659983178386638652882731927467362135349613710280304131309359745213246568356268331119990634229154901090668212903662419778299970362359546114014616757228290648179075369232259140769630863272438698120710347573840425964763036320405804687553964461085978741332451017214979912032590977229960275283635328071859980970387172296515489509572451762719992858682955026678816176060223865120715373542038006622584315796005074708956444474788833319497313877268221692977255576329784450247868624620981548845020907151462453138878944334900868704051546302348062557584136146079378239723858848284029589392680462942102726017258092828883443234861019999555403364263851428572007095789586691897817044646196782891259392780883527412399820855409097807236535586381642148020386775819064304560816945799378775995055538735506056278385291194157447576721275107288119682483312895057323872254697775413778164417876908457781140574977678636579091976201984689489459342911031013856999599295832757972171934782698849628354936152545869568545264882481321371922857501370067056438238650895463351281405038857137865281895959985465533235043190274990448203999808209131570375606085731499451862448419323391331458458409158582232412858526340469547641993297954561169519051287897142622640555953505397337243919140523359535092095029901428638086873982598488901835818854374875267331437161358745393173617961209798717934448982146763009261036426572794315086718385403086282453545199106742312760549089642709953503702723065334932242586332804521201707860901095029293928939087535526185491644433200994747630027362324489999530028871122018316685037865693283863795584972537315096865753743458402833325519839675412586693047494571838243469459577894334533174012759061373999481231080847697754243186029036877842433143338514087623358316242097952857790025970249749976135496275800093239841704619830407537184583111280540037392390923430572712244520631297689688758397234219683963430797629785073367076448583060337445324172697833359642568667769993944178269320268686353475287291158507880116286176784268040873516373378040122948483002637766222579133537340577429245332068238685118792645745346297729849104831649834336241684551541883580513874007564922718942143279054341004920577727087685739029133644643193377080001165101142102214113316741483771812303815078499390096088440832273634062466079575316433691420362566254248166777670868545441757466933478753505579590088260806302756154449847097816241684257345156194116406939310578763088420551109171775856931859384942218244053504225151326212351034656077035700343029036393055442618497972736224045721083049373422465512616294137040554861484535389305679372308872719149527159749083113089019422445786319043900692604764120399666887480734823994177533631546811861186164584734757322983247099494636889344155372464808847534017173779028719546802037470332260555185713416568552291435665546327292156611238635138474703046515498525485341526805234161526408100607947725562256051777727945754894444470332193957208515480194880329082304075894317644675833386515985586863848511679920766898554230861411794775639325256646448517154096963060054057941890350279231571946840856722195487434366560490810657712097444188830099721741759496337898496909424990915603158181666166265111007116488493883577048011921628737359279866337455418571191118841449363040492096547533171927146786756704509758206554796410761387056482384860972773665741800528107663169661276236027144171234059905614539405341282692515035328025795009801294185342464276053346964313523162811395513424710476431085777120845419082787111806596575855793629092703398976602783855415518033389086176325796532895094610775952165739054338997519116142384583021663943974805418661912557271159308105048143129045877468770563711790747046508132629679768392866335302811262656210723751503400254246435569073485536552813721536383641613066821944554870745924321344077710681072158713807643491550289357617611847036423641695868809626474371680256080587933751793147339109437636809023028722549580402309913026115100921916940409926200966983398958014639274828662092581882062990288030787221224628054427292246323466191576346580084525032085344688677180900379089447385735239523374341672378038369118936133879546961909259708784419258478291290583462567522445814700787201028932020652763516777491904190965723767040368074420606781006839660538819041405153316218983161247790348498137244439223486537358410274885583108292116248013989777696800070138121259966723267175877546923763846562744647579277602338318892088918852150190810524744710960729122817685778591246683067846045528294410157451879269684973470912404150136063849263318817686941366583010810962865051518798370417752430252957429917305715083247878450151471371420746587066464532026482374992113435303257172137557464091196122615179972752764967487714355873711284964128309796191764203762611322602997355507689743321257342122098046168574289984999816422419264994036583628186686356253433775922664511498715919543890132327965241166282431626323577566367970466991790865124645219829069384763553409170242952190512960897827538808712591960476374660772269177683825492170496187249759276980099863846468084357462602325795656455815055868327183190767636857920781871666764985091028257438846159161862714371846566365799226985965804195020853188482064821635074063844633889750170225477538642708283273409972639978893321172783132453244796432041769501630543431476336477492855846894320462199129846709391890548063697602771208454928714721413793169986865357288674785777378398967640633899708269886824592244457692013413696696153887249962505911781617791552328794194717936433368898436428020122890924109645283494365771430311665981796038413882060690690960978968285140886302144872615089502369403107711013693932452986485474497642277286037374124278119950844116343357713845481302290820985230332083835472817256356832234540827811309856216448497302605626954763308899918067042280006120638249507051047975582882967864492953892625582059162704096386908098139002236409107620376648652918821168528699906317225694669844718782496583467803848370949737402082476566217071210075361180823676493250308386183030186902488548946834593105173421184898648246356578782238537941414054084429166283158189517513343187031478875805686336689520315747758381930921845901735497254976008162359046121456757888070746979843592383552579008761508857378242311917405162821252800371475968545518852512126966319214476403417779554156230658578628394883939493977996176898736880484446004734509708920020340718124019528540890746175204763325031619044037592018204118370700272786679899673543238821979271108220244574156685252686050454088511649608839788566387832841692999847308396652153403195401380584343365570481805109640783927772097829562260120425921861001352192076279837385807971081968628167853456783573740355630297492782317006496766173036239354291445945463209900350747565642122206435154027715760501215638207590364735179906657593182589618191686882765601847998667171365238833368531631782147844811460681683051840575631039997615882141134362981495134043558809086009819567140162597065024687764436860155721450223769692377420170103077743940782160438034664830634563575408792899709414668369968618096423707010474899458686053591331516952233891859004010820145803310166437138300227309299708457953165940975979080285063700073186339098183128875036122436872304220104836573352949869674757414417205792444597168706893467440069842672827901280466018013838948594547609509518393680372912118872357688498172180994718298844787977359487652521718923179620924324977188047681390622682257046388521471835247438899300209574749226159204320955277269759147285365208729712879733644565912334509326521967092463758777705999543574673294641166337927486514284625301532815318047487418706420079464751374339884218745159652640557154275311378481910409561118410652905918890746920062953691069329294058573936649341889727134089680361876593171985504123065833125114295554200766048956649759363145360660628356765330846611220620642808370572948279974699316189053400424826724727956818375833185971782662330949801991830664647662560981529434035124801733709945071130786246812065980970948403078140752169642259030606791166253758628241053896394431966634910772252286962521705488121783796088797110771608038075729393238804917013488072737225724289483727974296235438360676889518146228174797316004558442315668996960857522735198275624142196058714280491685100502357066989915104501869305134373103562978666754876036027782772532232049817752288885634635485180798062310571691186533286553843543962263594125646899305810354788531226829538983178037969690713235307412540811386633492934176424258304645382996105209008523872792536733298859385091800351594183319147354841699362545829233936490801831992900779285807371921544272739902453275378936131240656960682184566105640369736070927446805232777516682359754614252307042375499355704564742200129027976942380791949327389758042846269433585285748408331639206753482181485543347949528127540771568649495982293663984519657480817352283448977543934163282964566007604287766416904557274791053332832684463734704331563246353107558464676341243792527721499604997114703069879669233907131810995944594389669232315585725687708128986395747707114814601274930164752741521160734454674421428563336429740563848538400461402034505411677113125020315270874032204353366469424441549034650634999624498306624182415730424958293927770770924616066805853146488219536595140762608916942768199870915762625123990012807648477571643496939554572145170371283585181637212389645509912438888433466830517627035791286732534742693687942461296475723952617773169172766799230799515010400507933072623251731041110588352956088018529766491888235453535770729078063686399387979680743059802455220476837449331488828321058697238901473393499941401675092797774354985749330795411281565351042671148831834361111294655934584847746656160974982610075757682484191149976657395260160527016985919512550118764217011062815326855781711460637589351146093265052868590143908320090943571175079214167655238356701149073320968950586838004312598341517746437104382393561208254012690158374264348846773856970758776845973286258741609817006066483234218438554388326676579708306157863173339895804472716670132634241631075449358560784072732301713427291093506336523987110647219534430981303458944290356828081529703137092114311420940719040750106741572899145397046042067175385116139444798862034624545533226959329083087031098699756077243014168764252327010033898503578886332293638838852167752685205885087361267173685377558424246334619051587593499606022093824942846893676561091456629345422303662333571393731125427280941892329781559096554128593824722258780843065017617680219240472461216359875093672881347575566332175923978333143888836125245304830242709396617215364423678183636878412030663672040887879869778993103487877941168083816703587896191318399245084723573357241261229919001790720897874428799156814720152486786673199919439014881317896416206629239735281808896079390436053241725047510905889290303668366570255343681175749703225571369641290495561842956355537428635815187513349839597731480378679041565794174048438305710938510109090300470155136631571557241020908108803178956426362507483999116745857148633200793775389497275717646338041423207211158579211200939180666047695728586632111012436538676291008833649765211494010095025959547379000423309838854822872716590581900055188182378731113033065374798752757749688660738121168532964397220839004294768674889922078315364974747943525506184507902632886186860548365329318651352606669302988823486225356960754796475650339198335386779247817286464197423609436309651976780876005150585926737414595259103040411794231557296333827654247398370719418410128170373007490945500440758974654721543326995291257035244161682431044376382581112696887546002425590013857976829001060027541410759939663144068121437352704943334039011509372471512552796152407656726536017162363161630255959314844241780204842738242770713888530655660544013729585160023939484275949285716613726175712088226619277934422167273985521808007403467873753410995271217270416249606254319887429106970939801688032509125806021230626577983271397210920351251780639471653175930771567810596273311639506952892248913928068379230308750599837420720640069463056011000527285139604446142595078053666080735542670215951742985261496928365726471450903040993138652533841924914557840761850915017996737194252742311171928307738766414460891789873251034134550338493565074238560068864564124116931077153390939228473765685255162708143932752596128549062397395799983630345026135188099560867609650836434242108944688865989667021142304146067156978248612119511723017285853151133160078474844822307657429255221645981865386856778062872102633139358319915290473336188787175415046178258150711397749976843335003715436747042649571132100841502308812923327397370252536512916287013358857092584180383092804813966326253096641014068202958678879761564151166612214397805479507697591314341176817742013008873357408027420251544327898710702306245077317524496785837352669510929218258677880922111413599015846946112336049520980232329682716324243914187640816457731110249814879569996547149374366189087539180494385597490171973660317039897202445782577224247026498152653357672859008951225521859749789280934159905644998388901338859057553537303350532676318635372580040024772209065453651358941549710161453733403032596860658300206986721460080821663916310918162293224921487255733929377544180889889387371961821891719396789651030716982771493140188026102411251580687292604202243713923871937704172925035840819275241809640674828940406076074802294314596174350047318863942091010995289082930120626151959374828650161055719670447682020271395254143575845905373579849921194184438210281257221958807268491499929066880102215910134966105562986147200705945770829048179891295081075416785285535788955337704077077575355991685340194937407323446828306183773191016557545326436732683509693623106302464902564299626206574233020387293811010821104142092488850074284301404591609620441757636097470920126481158995939659334646678881220445008603634070083657607074698885102336157293565814605941731270880622604528095215701146768163364652792256465606787936253400525979114160668000447609553837563166389675603790213979141903249934223262527364997034020743096376763184249638181651685154375499476365045127043183695855789620252897370596983488370031533604983149327353644567207764946509389070756742557079992249825312883713289714054801201363357211386531996739595389737815097259433623817024963706174855224609820508808935210292042740862360906560513831587771583861822633104858345250291151185615821727851960911108059718794244918356588188456079317727817677643887546399328154921604440069755295759043486496554423272905361355273839950591371967682922944570307612171162742770144729226183085599142001061548476302171465430353543838034095954727601334593998137592030627300545901549128667886514804194190065085251875418741140865655875527492888815402241161910970433694049885754785134912962870560029797428654256574743538501570168262472514919040272670513961994785049201046594483433949832142755520266629478561949415846841512913925115172204824432388530970732017208192368811489848230671676761030965743356425608722347879378318405502378979511315106071078528082189296078675917607568633540361147605279575282155278929834669494641691892071836964626843987848363496617838778024376323449666892243309754247659597805360241042091612229568348886191460824424504119734129730855764360955287480839777721143157605679917646991860809137447837001349150573276624746764247572775958050237240958924500226671825218075903548654606929927764814159906350896785806003176795918751153417458960574942751461305626859800637635918662659375823321668830660578685320969207836424668798111366073765494638126294058696039227764016792163507794060356247396689796474624946202220353549092568454734828798850593798851094655068061133078195070419730631526569301175209280107709705713841860249571211975779098520362545638380649553665912747002308790516871581251001484870729493026414240142247327530566384010421832535877239311255357697628094042218910734043329319062534118763863505536057857793829945236191731383857087227561107816198196444077141600911802413308681568023551102774474206215549308179729851710246824503414264632276741505242602843693632670100991741315040844896936501784400663578543115846527224136429867919922530911901826177119882321155560264353908469732132256173297146582891734825921039027134412294169445401299070318493123940313191636327747370566784886493113972067813280281750439928397086602003699754550593185156559467774976004010833659439861608423121430420871987653302111274449127022567004708528156470654618179130319922368040331727826847308492589664688363619015858110705307596820260295523643337102532009040251361137741281147402849155164046540403156849605368064476256082745449720078411953881701994414367652361310758603878284480452445959976287806506821602888140228292239111033689083782170513005221691829385017235372409608771748397647197470971962586315551638101519565000403744898042376043445211863445115043919314773422376739360477323498286982871491992823635416738006093933173231090951763001497462647005399259856938220140941031189005228831004659940849363680606288038823092869784036173807585036961696732699313511136160417622193600682574149482952447205516311956593949538996454724612127186163877049814405504934764644535709007580107447509949128551291830671679758883095164154645800146014424534170461858046302667456181379332954608862002916893090934013647583065145471500574351824439181933406423226859071740273178666070721789905037985421585926355607615041599222279538661939840885937898965386614566340490037231260883011002353873776074575398240654474772404677618368580783314984683749906836032720612566974384781789507680161350883813721491714481671046951411157797607724473860429473358685263674455449099297037156143066484192078401552991300382837767673979779586408554490238185750517987648968446489470261330418637151813406371953279729266933529435605158944197288163642270735070908748468115519873326161029266170299389915649205146439074950575577405136649063033299069505602745108506117189969157612216083677431998251917123246912563846028402826187268799645857700490877103336027934693898544209433326435881249134903065377271065833443559264304469384171637847932738325125130461633121058111843758368645260581453521089790978160264891236411486780316007319924599150419851467437335019497790387533408378898971850697853278781584395796074067967257531472472006786974703774033744010321843662925126570050933325727122624655379956617531331410071699779246609138628043971567225855761061697501105853516542581767146224961932008206183208040122970126598819989144084127037680442936211691072135448596407274316820290896915884461366474500459203494150003012715494123530985116899127775056616505328061970282190242643465183672785384887664502433762840773478561973737130918624785683765712471746278758834349891151456583178900289229182182493259643232365549908420322516817644318802507283786925801228140414648541976418713338623429724440829593330093311485141811659252165259937809986184045113383140285653510523971926656766998267319788065674061059461440168235772764822835563295495793930290225568358795057376095100771774374918372470214990260393635999016842190374505134892666473758970576234482641759938480169270538533481419283265413263874884810423743278033846239991903315265965439541996129889171952303700408280342142338633579405090379892260444371630974157451875334835120663252674924600415981759147383784768171464359407244381474194641985087544882122183007118079295960708164691457242756134849591068162011414878381173803672974933830648411407170863202081113308044133135535899208379039734129446094540898956983614769758547143992367577625453657872499805915226693992988882103122488936608159984145276298650564923620467058587020683777348251536023807018896804512941471257032680219438503672908151742382505625780400596361106624937633304932282060925347356561473097746446750055830713669019352346359882176553596243868891774615653562755891653440738832304040760306764176883529478212268519567224462323708234591280542294481840782772001738506104806205071208150208516391220409187962773191722331565058017891831959636094587475539456951302777686977135136844991082008953238268193273177944995715869181317540476195424289517619458257995648520892255796243707625791675245689359131157205139063861348002451148849781300984374328937384930457503093004966844040390584456747929401997471425102765226431829288025310552170411916596383701489671243324053722673683085321097200709688842347813906441524166421795396758541644796064715918849496359793329240897196196969914582757735499748648587791997852027656773947242889908973547809880076648149870818475974494000835553095377147164245188198072413356129380476420630903521234699240875646011715937542425632459338920987147850878415789670255293666983543266825603996368645385462672609370831270897035039169374699703774811237458080382413406101095241039793768546479788705564768449286627377883446868065496363913623045617018100399331111780606112440277786042343648691227401584155135812521555599285063596901074586453975757134775507302915990243646879166400444943550902093881581956353994952356928495964399006248171184202841400505311516925771207912580988331011840279812095977470786064997298860277244531651592039435396296135048780365383638931859720644424905680838160488632798619663061640972235031580035228907066024669670222147362803355653701424074832677078949648955685798410275153850054462581415732758503424873948219340608045947198194008692081505482761829348797735328583399611656700969234330707752101275359285690165458795567320538782966012612825321779097917346593775508942784771381891121231047216110826242773563357196299758307224162934334746885250922086763394543919105995420156724297474963127986102630685378562106382993754709349776227462510460800592766802597996446277717357071754000184593177165992182470368936272379066320341739967236834173664529208582715070275723847815953254121858736949438711532495287297076950278285400675635540864473619101272225702595297764668932580982893107241135604288149361127662514883382071873352388454032628547078726383739632093911056589574110691477020985070122816508340374707455828355735268265058115405091572787605548447831232328815162567572608459765058960596618526320534220627494278169185847572967621798001468418153412103369610085098117670985998687348918192097665574646899568980897638259257214428735971322419467888306369670050402077713715388539621734890764289250565182656027591449076245682979468536560351232681474719311907255999747290870111107818823321502307430163147663698091275407834374617141381950780875227898603074855718499345071639647323789202046626885144317601637328163838491897980506741194487298846675588913891448556590476803976106499227309459515302379511023728970422595974383579633692699232536903429629094630446037756611755575888667847475600734865210785952829806580031785175271481259863505123966140236657813336692966524924924644713133960354803480317860717917989867146018207115308416805973592811833679239050319957177146280886060013810532103251240410619190951751588838302169854022748748296866230362042555672561946935581299663294125796751180041152974022496560257829049741118399091900071243849616628620240597046635648727761593564974720520098839422922328978999338177208561787353179387116810432035697498936606104394706362945275373835920752445514721821003243353098019244310368716063638868921943134008284085709564507589946664663400138381542817933012813782917607279359220845248367326079541627332208246712334519298965832289333987527567689871263089030014155012053948557866518561631094211692097133825493081413532186153154203150759766529463547403277226750338264487480773496782450831063934312704131459355444622645861075155093284462775121683632982968833725557996532822743184812044258612918735652670631090572056128329382713406146228837594353116015025649543581589145222432771127268599996000341576038662704114814392751857176919511025261756032353184856423140804148260978234117969559826250036280291746133979221304638415749850929268338413808976775921017653701387168434122398620971886653978426616836805085473993353509122114607999267602261546164731329192933905011267048460645942831862562457256266956310907834932349726335644271421667183874179246622112809309048965395931531414744692032278588377915507022820563140199309107935585587779702650594083007738562519826779715647789549784364210495417552670645017314177280316900540538460365768156833003415447118367836886876388915078822227819610536012243278183567845282729261857604844008069084979562787054169465287102197408573805087368605860753428136768504998209876252077640986907963098489158976156705465956479617352751986203488137806210402171436048416008944762883586590390377440036425952091131884186714360861585437220151902595208505698945175974966356190103618105924837653001319907987701586612223317493658370785222259548401254976483922876805029385855349384933905508687227353768175068529540315181537822672431023832658927321983465509551048033778950759025769112326070999180948095202340691252058107205012065914225003997442157337410524692744771061976125531707525053882064675224227022281857696207896794587540937682686700517302836202957817012279369154124563261738595329179754338350838919828660519084732391315489577800198353313847036701230746983926555796307699666230187737131527025059683251363415057893959426574011881364699059333859013909475554988293339164403494323327628749931325783544921163508654754470110612573401193993019948555071026267045220181819219377314805152288260698076551132060377258888497278599277020001439990207273648349248690986006526940846022195712083999835759255948516182937342351320897717638221085842741602442595878421444278876250154958668520749988939690920181860168878899731075641106315798045090135766812252536811796054031187613431049214912593592418013905868719093266266965205443496335427511196881034398494560930341920694747032576407039184467106701850631947717183991444916058819424174210618704820460086234455562923594910352457376963890716747743523387814687004683584641134335806062806458600461321423436102753071200609947127644750635381245561308602030681464538677070490834898961649477996962700313056175450796765616277269176228843422392027322555257247448343916735303730106600979014755862055019443086246081564266718933017007376665313335613704729129222929397816064202602912039781018351293628944279448294509607715903576046579115537708192181303393089588064529178469585750007876013162958509524284057763410229888914261413339519425607770419345334543713020281605138787845222251647838813038261617280461928528647661133532316376088648265411186223592595280157664371473266394090681589981335668799322341550604873641886780033109503444367006523149609334308593970251550920475891872083137768699848295646923387067080872043340046887815901950998767386509433213193673713476271315365034900968823896694784064194540216230920740189944379806072268376978545893801586654105814731750916847078217885354401649489624556977379093968402905482934230406992973258691290888553788002141330418463711484468130590198639391780055081738936761449675267827626264667066816539736823667281123406359720413705084416480600021722333702804852092271998580084464756896192198555185951452497926379033925305155245978361280270633192283657209533824538407405469728087816676120640572013613432112849120424689957682417953705089191256799825402322255328536343057347954919706154712749142213752539023469416000265070726719395830993847939971449133374669661353513657829679625027850308111924476084595684148488892837973088735213181782712221520210850102961094469847210120160954508645472506939663941959015161205154576403206590920140135434004292133636919281571468347483526281791255552696356050138039952910948602795785038806827466651337462083804682338826810862889086135407720043705943367682651768508166118402169517063804365535876341825907032440639181482633209003729529197265012800632997115547682941732773492743665772703323935011822262549414673943571908490425381827748464098302294627853348873111341607416793182478351650607495945237740495572850636255679497339805420130413570841087405537029979667279843284128644097473482742325115712993999436825649494678901257304337980650362022494544073075272006327732747797956103706610403221402627516844847422797140371344623478828938818548096890601046962082069781452734192092031477924292676156074278248624429359176449636198883650257770180207760673513738727562587109992110590756312417016584411233232827678290019687680980028036184001856818871325040354186476305656201320810899698643954342401350875478056079396865050105249811491405262678954001032586500230466307205499503234758507183511723962473423946220446773201379636415224904700805567517195664095160733255128057791558797026594255099939981011904096964359073639119899554348444671896731057669489933500823868358530780098157104846721823247778051196808003617561933300026663765591982523582525911636258129790221626963834145739879264496259896393734114671693006141726030566831459010374283832148054150769523998393392555402728664450189198831756527883608474142484705720793945834636771664092487564556594096129590858358223003161327588085668455639868968953773571150521745799473939714388616744632223042345929293146515073490914568949469271213445495774676015903849262322606661032828911104930286034459919747253517869157794507492363260707075391305756749612945105644656401274140408213862869068153694359519479785230778813591467789810486189079544297932382162473849350261971405312764609284968742106785633827457365822899173450779412450632254492401210710847589304386865683888277689542951998408242865123646599647923189842722332649920200916381633145275266867288913846344387422657949090991177813612108984093756825495977922460560812685170457676272794719378258960501043661809887768161922220791559036944699984254981218368454280479383921736822327271659676784180090436263289387371015969458791434989168461678578978154612028335935443967745092178519865539985584917609765830063250362811239903694217941252096336948340071976094824458366877086339106036246421502197021144676072782405905149500762379458127656731044165024795363949674643219720903030253676522409578148152190152815673930056161414495266798012199341292227997642475368336197678042554881099286132217288312861347644569024281831981429968434061964575101938516082443392350192300715688401803788871361193771265050740290771791156102327980801390464520920860065105330563167991139574689042862413593780744262187077264741818531471624588180081557894438066913912596255761761018358217397788108202985194243527747770843849461595121096524401729278442348472357400255381473656271110292240767672258302794495739200489102247920420041574902620995899611650741825457534718069091421816023534255403895880793154468585481542167346188418504089731959727493752853754662628999068213191174740571693793967192340291845547997104535084663948544748113847343213886249861682037487156708877200139407509430643750925374275907978126027345644841709991182085134630723238561825620225494802786939182405025621075741808033949504289872049666642433830426158655642633653406411094982608876403334937744752204654808965794419478408672959569433773771645480992955379244898295184917341364131298542129642456979979588728623354089544582352591696548817829915584726011702544460365727517553307748612475357129464207094381299990460781152239913551987036650507527304361761985424094749041015824768991069447992078842674457785175197957339992947984006560637561517762744344224657388162047017291403270302849190239988845010702954373068831345052385936355111600089039217734437895664968502909229639508573010549252627999548433532201931777806819528294991074681303711462977291884781706659418269010821647531594057547988063078978563840582168386388577710948834483738756366463980298132194400773000352239529914759237343866663711888154873616639005735863506223044064369512418633379919213251719975613015006389112130912451435195465173222470329475850718284521785739103773285355622602092952485819392724030388187809422631217071252992630481442977512498827732355349643734050341209032340734309211551449253679075842688602312637425042051514353316665750245856957604268822089960482326629164194852003759299871601969905503981090131050550257561789806668656936732300697195010226354237787377070884925939870255290748563046611354141956985290608680487454961969403771774691253913775444304040631606195530505171127830720321128811609281401020707851941368661100371393410408170761141176351370387551520706827376025686335349162952885778312279959131878571391610678564228694209577629320255729582281972663201691565766765455973664042970479041109580254140643805005584931594592631791955053757420353677715200894635178195632866038722281924870298552580439075283308137362983147052325340083042316727966763975006562877641483586090387645358173340089637640101017676717807554852128123718583264333051962577400884538528857699071711185273305003137095189805762970295661518454611948249076998534736723431052599018601389943208052685473869133533312566006368360395815250237279780779249644969185530078616382321314855313343108379180767773223560480781284849559889630404392281433564241391896156369468605747342689650735063528149067032989880848575549781820561204668999213537606443198161065321920023684495989958939659421973157270763584850571421152040905048283562587639935234704949334846581627302091271838935592560554567092147231669921515820022030050412663850482672255135999890026446401781954469502563907283037272707766351247998732047073948006232992802496406176970870398551531389859090435099668515842072672181866637645915452147952908664902589030607469101005863559520571373948339511382434676720833098831101307092422914520017749794269997232015578617517606200170597509668600120193076819731638172151744343873108960356294638790170290663157801355571300960370453778253121116127979899466877011964395697723812548898382612881877193188379014487630617521886987865214572591727763461088639159390086315818980416701206759011588245786642851991961413839458884752607553495605315384955812996535135429215324028229170174017626519071868030590673565844052438533747745076402923064739551014450274237628248713954788441353953830385019670643266152915129553926840467073010469169434508985401173468605781863342354214983515717728026090971935818649771280781066185124425485034121559876989327891280814039908461218318067343815962144306937560137235049302876419085324713872588201920876491176144553767636446805408819142779517388250858268530581622885616972944830662209223879140298962191671378435507168521603929084043066613606514368112813327077384127022946042980707600935461466048713439527867012629977915414854191840489271922646673797695554613082786159104881007358778851993208805565265989899924769269846251238921363335686138301715021218750833337423102916845642176317542086801256527486831819525491567926392562917928814962608760621204965938586694846690384974083915670709869313924304466847683307961881905346038879465541557520927602696265680662399375419355116591247269514066132831513261276801163535115304779935900216608864889760574908548831644884364124375070335038548717159191608335570260614729845122490973244666222146388307991272568262739282114219696358671735947903543863120298880624527806544662520824190634440297909681703294306873875120827497292041123034123975319101048144732111309719028264071858765012220665079626026124128620672318205081461772632086313070287126249513763211894315174796268778711450726940263659037607100157077711966522749118232155168293704807321648476478596652537827632492643320920921745974843997319621152543220672755086458525131946407237821554057516731667790518134348206635671437871362865567585412840257660311786209059321931970008308778163662296460629444113307731469251263503756430668118925140115022084203483586887367311792761250706196486332510404683891901700823714521511955337361020083493818621767709801838746902523338349020374627408627484313387886094689685199897887241310716635128532449260551666508935790916455422925067648019966482013143590594307296197588151321904138752069462518142475159309402182727823957099118452414267705672341793112615565748112611836454982687008339886485294544907868704001824762567864674526141343979206996964618954548499532402901952682515605675436637900593751118358727100963642664516997472394805196210360707419789694554876874658534536834349122078525907832225980887292291270674823733777655621363854862869703823554680392288543632891843153833367958034072766889099796143398572171581676800112892300390315140945233398609146928998917559901785841798163380897508451651727241604846157133574003219885432445346172192245721797915397287115280729612915460179580184772658525522674972385421532183784796062488488223622704512948099510700164627961012632096460948262820742577328531684392563274061006174237260491613295002151121386771197191843592847410360441835877527830401581398157764121457921705705740933410920382991900716378639677954051338345112287583135507732258775655665000069438958707016133415661967426595991174996656409519114754977310577589806852073959601227822095614327061499380909472184542613036180010908349711256463475680421345517216201251902163839429204289732013422866124629340637138909928470653958654886193215002049283256309204771584899688214559625781343299408060846625117385798209316288398813042061800682425634638670527260315610974555502293953529673013057214437054431197073234189411048920165276080548335536396630169836642717025441834437263730029927632797088278670360750415527929003425360363601498539547238721317545504763998929631075896762899178902324272689777993372299060957103510316990035360923922243964306122678375428295724971530588140494819236850051894229338163279227647803796656861985311750274720140065552353778610366179088381681483891004470291780971919912955731666974116858282134121558838494454229603051545055931025583573134200973106174454685260561602855554982822885531132298850268202034254769563318013346035627164987921716305795073955280227623504065069592507758430141983616019529381237767107109039749114175738276030381576332621718132180506104574070007609317138082673448763919715858739322220615578796335327526068035709089617549530616100627833111610576662705245917757575695105245057754437796075630798568329192702252684918218169543537592525117204097682634548439720886440860173786553050429233862941920537277587356290176435106797429648867319117410864916946519293656767581561152699473946984714885827697464696548214375599440360489808594819945484027914059409614267616296355083268997279321254286298293315121898779286285299937321253694807822357340001068775198427496328202693765812950490215947118708856988738032498192804061860194298500929166980323091727916567981079405434414407540349558677267275683711620700260779272360396498202786681467045298997242246080274016688441228003234452211400895857208071848399619221251405570510346096530820984527119276982611456020621687606793512097158294155670004012752341000826529699447538513044127602215268166273470968226503585677429735828472493509089935300005819405309682930497589405203934217055903402354600015235397922825061324811047410855531920041622545027459227912040969535069187573867623301208656298024017251770653851565119173054045929680185081070023035217085185838486238597517771802211724084540173499763122454483888728481539614465039331725789437302001630717460007368607979558568643400048363087124397939465210311301362130318722730959882927336975118763835891430086423192425710884385507559910072394929601157722475440000768811178585162420090324141304938202671687548874033322227400389853420772988245221299775386065641814438380628250295427412175308716615620521710451822947430703380666857276438984336720948704210223411555665947070036477391772293663260905464342862170880235913952619548698874264527857300522308835798715569735935316068908315652525835291411588228814132245279477714548345747391832264877826715872470352298980793493333772265055343446496680841532158658761973537594422011477915960248951745823621592227564804565135816129888168313541033495660364343403608731269264684096147804703680362034057725629368499518208456803965004883299105347668262203409338247078963508984171207139529031161193594935570815862001513124304113222022941244052961953093384692414481005392529167210681421865468463044888326522734513970144439098224252277033963787463163913143291321250902428258403907061484765155643787631426151281630147198637772606906519764621432768515656926435987237207133942888950679520732348338325831891805266554124880998559981574764023318932500835826346602417957040228013791421919512915606958160204201657209222778488176783836405752610049261709437411736982973792534944296374714594520166967207216432081000277338903874461255889737512357639392014622792210824738811572503805755772611583048266987491985245778147966892407732324548215065338468048229997655150781228962441485498570685811286476580878433535021283121890410784472113206813657798381122481192152713779020179142639332698012961544681271762538453532450873744380095276956303522143877538779266854545788901665285421702403275570322269771932719611820314245291446569825021012557233780229437999484241974384928278869728410414216255498170046316578535731197387331544584472892775436772289275212454650696508692904366096615858592267387626309055259568075339081317475020183785165013143075387409547999555671040709009626742837312937728802695581380400011773284963624743942498869841510400625347050659474840930762038625812131875960567646317420658345706566940257578105828229537384389150388730811304300579709482454336870216807945842898541694600817466222247161386499877925183540501952316611193056531547271367498740605323856833744713503058765012705948261265440849100064668862147109878125536855488075699504746200131088716128251971096741705864355286013814935772533843555716079135616654808188823731720949094063202520111631981569913035118197559163462607701364410173475970357573398318683500590990264299399093203308588967811492488333907147895243303024584272247510904310412743113219384893256391003032038045380675161761457271688557533815009563003341563573287413434514012411815525386514384272379656746904116003910127752298910855488348597947745478254941092028873650913524887796110296633528704123154152206052593694061836437941684782720347541079330899777581704959929973706399668878209023610376810747165103421833410067331432170472292964266281543881911489863347132791585084980878416681618523771832338571657596352998537236401110219380698335192793002760473238204270278538197168439912665634014672284199379002424078810220767509801078096197262800807370643966559928013642894008069071701308594208699729560053335125057650736664308512267596170903099459795668150330175010604259812378845110054791217910065737895798795311430418784235584385029444809349631855892261063031213406604430412663860909403245213266026850171804503924927345884739875314202800532405448066307450663724159944823940143865309112425740845400484544206891138013211375544519360515152081154243490237263150782194415118754588910398616134463940999286333125984953574522917596968902807339798701000991562816567766794915459740313319186989677001144864344788988662380895345232488530205216430830797381320961958365328293611523309221240779911269493398469971767518939091445847507047688165081571210089464073024601117627902782276558020582564919525996094282190380198823157839358130917498550916787540657880646885405649605444621169081021527686809681775805238727413192080484807330036250836589313167256488500351260245009373941474071362697303414314590608058373963840261573429554264722689694711581312286464852431887155414561345824271850506626881163359458658836568712157012388091010877048403407655433332462406537909210577139672047415888302608192616747682331628903685536039331276097940053700077920842442092799905078795638486244365852963379691165792770877691953525798533365443918160280854120387736692398578729787177367471471313028254536943719631722685491498671079125345338665568291670396282551619311513228134369084308070662319485453273126899403442063256887236494650290688217365148973652259323681122782351238145545331462937061840346894658021703068881641836846164545401131254212736797731969803685038066306757068825465123466952553913457073833084014801808056990827526991944339229731903514043358086024788891352168442392772582979367991808174805385813029790804244898554848474249932275576450070746987937740876948736889992950457607093307607573371142821635216724635610401050446425417124620060184462626631051580200280999593459228193157829692289362980947972613934016372576041442783624927961500279969366696808322089159555905451499900981737231503219595313517889755387682354568185339239950050683987572282349092869352769752712863169238732812369478908698877067345410531320870923859235294129026144171540682501148993622096847656628948326512048512623328129435504504296115572429019427798189343911035454581673335660508340946481275378124288346194560935529641451822950983495984755948283659229260251739217304924699899573157000642260440376140159569348426198070866151677755116419532972238528215311128795851077950673308130336312262226664236049755099319552307458830192024770292699613690820743519901733417830242206176333568337967589634366371038615346622769799166282801430718297859022392697844605964376794963670476469190606934385640617589621746275600769864566906924874727010277930084559495168853332246388007402301502924581975626984814233355616950801956763088188735142333840085566929795886613830390055970035625489989996785073567499599768616650565516152790575063390601478426796130774895900821465575566064766183803263784337405550618016342235682812020883826583282135740726032018806848558966277630851123736619787460071613028893731880108044437555212035296807225845724993145648170662950210840264395315133913939510633121177863461979039182246036108835073906924216638348034438541185995800158272858442750912666452778630774398768648404383134445401539595387285385988940539626952944482116033494417733717202310044787506768384570012787464370471316872830413523097674440284972806354563716618187255168799733985930497723208736743395747118679337154101694960955958118271609617807929968664619896751954175074374350897195604255172610018143591788353803976499543376747993779977305298629159940271001145974518560908302849492569862559099466278181152936339755189726497115741116065681315202236453617698327598116493336453586515530031033696891218680220338109145633227135353351211228536618679832402811866508956638154013514033893301558684239930960890153337807442863259976171221748224716338934409305476525627314817010962480927130994242416471189221902435670272878432181654030075795060125591801428659392429189661712307791646776292952434246798606047961065665874571444417561999577221390091078124081049356491643841410751421142632792437968422390314718651790652352481397432724753589685906083551828437835630322182232698592347185723138868801330405723081228885937881191790721800059223895080313762855637880252287627474223438182298890051028208702343111164482260942958132651500146396131462838124168235017044306655034105992565321748644877277423189730497642934365089732927527861756822000763042536633137820561186882116966619344875945502473616375795112374366693968346341010542338291927205286002740417173914301499271957540797163340385497092160179841817085850126893094512225356158523898856621650094475442963978041742412476347538864331009401694088908377999634180292106308470296015251661909439812154390994120615555603039283178725733471713722624073582047041969791313750656306962695763719465320686568720928437937810057582642735809523443028615671605721941333568129892955755240690145696463041138243604230373057805388658862462739489900425684390949753157405953474232833146719414007643169164201431758636396487964599261409482192593092505781916019134376347164039258162091332063801737447577149018653996147564474594123884491173106561867424619232988251798681319750465581871768197180226933467970616187219742702721264810873216363069853033955199514037137926724542921410138072955120254094606719086043245183164353525868030826675044706660768781206800892913924676670372038096156813455281019216880557888701381644902019492000747940105935672972117868228013459209676075466324912090648554549792989018046609218166705729085509608153232077122716686956894972039450419870453153260218318250077552232400998951395102630819020808410643810388851110745577154114728425533415844547214380741962437176750350805084879016441797021785741556741267201303630090655959201692986380351240756344838104263032813296699247704112091654437740991478666908193324185162566977045314280738906267450007451820834809248371349781492961311880866601661949266782751364425687157305417079020344949163258651256945888816320896995224732503670167193393609376008122450152663720196729000228022152585686658252174249820381794743517653581048863630910656277982108109014524752269413731552328373886304639153203135381071467223116568350604122490264816857668455729831450064101491664620933310237054347168711449986577728712776597539192951320188262941801468757747291643059668882441341376256019072392690722760156391089943603375997521800533919556055327936735881548283714890987089653877339299336108334260512023140069606276259323085103370148510877445478702119969765917768878109678503839450288796941954286624123949705450890110104026795678761762337980939360071141601144727452237959780028325305710701492819252663168036628929862333292457165145896950433542289094079341957958799515687369197444075443340805864133095715852840936774517026127991593485115956713648665207213750299143254248981379155394042794186088193266431293251166173617772403422742110985410865223880620805033631914478125614656861186206582302856418526461294604965321731055800103793700610040043532057833540959465320900430366472389493685129014399347147175906598338473909155216304652527884097937164995594302280891709825481240482171719567735628924138087504318757103065996348155890409745684606326934299694563319113542171026395249965204229497532534334028612477069497092839323230006953829996074777881548306392000420833925371133478362547114072757454618841079082377902171270975428091939559835549099586854695518407938133444543123090868788634479967465149537063677723915340491336768329331022742034709885484296819385389153602864594819930339413291736329186761173401720691167236097655764823416420577971849959268096674671336209307434706884692867127614557834938910736838884611230566189039642676228696570786043220903122969885525261847873608986084228580967850869396234617362432185877469163182551967576453190688453947551443972609662271044675036577688504786093328400637179935259087703797168470824823846670424140098576450434448579790145675742660942378723280620929805416485818332978779402077037849877341741794185076233095215298129084589344057363290955312066119396571050841970253085640150036384980468668413287364539236946796807657013633565244761485512115872181884372799070849964762446491342819762208095339279911821075614190621620618538651733819989141823061655313053883788097804886905821145593321032623625049918395392448504680015097920005987199563829196275128358399024512247720960120536497010212439171688508667302994258366401346554657492115087534646521807676050872086875769986177414560986324537307631056999421800875184392320851293271125987702320809738723835876071258962084503253341884469650199104988309554393117232420331629577531004749978183048870091461976143161480698232289640013921668315502157660856420630657549000048992156490308820030046164220116372977284228771487377075586540980385900218930028174107534225955990891408447083264258205002657756875084715675802881412339347756763601483966406493022007464615885146871364446420478864883514476464032795706658683041394389240158880617083194684729323446401706820395171075704690423448509248537734074477174110557703029527399210503244199854742612951611350191819596053029157289838766643574709901972233912659007974446870003309856690793424986902562878002809807537454604810986267179579590253555794862134930914983444955421955920664029047957549400692656649952674893403745357735103918414662481112756607094064352265990297793611859567060159961399563275336106362902120467895548429967239219935589345890198144243863998513455961419164030407280498350112066576074989196435856926993421718781469118885424181762864610017881491918956386574248389560884302101581639080535787981243781425880872507623093092693145937229257841200771794045057612023882304003094298688920519359009523556262564674632046729445183656681778927443806836638627989949717707045606196206919313725778729484556453182406736568109653917965909702493157756165383940031964105158596309506930939186920581779420471674055379892327063997038675404497939045389994428079067026027580228662869575177314822023997170199962730642633125984904009325206431453481676993380983063067931948144340509023113362250705074746454546733501532890635686797583243296315393870511882850708387922936077543437292433633108664559143829826110929894722695116208304192598953264257845364489094112900568455831948195469446355570120227022882772390452818760560797456203774643646358522462975793652282341736721060920636565694671441862132553368547079178139234863719653590118445058463166911096241344115345298630943096296410819461978994312613856623336434876132237709854293453175599965936894414754307018982475930480693749688085430814900478198701767799691447176221370849418937050911596960129156405618596502749890714157543995928996715703657223352100793640447520204218305359880397817914806498788348962769781042037576280918955225891090487059813860329545873635046545585683206114823502830175940803356179338804640896307793298070313371712197266925481445134301807933297223234691391406637797472924948588813965222231680201126521053809093803101482128556505748625546893707866923213456589911953379266082052835318724542776087275885082449584292649017872231030891114227621268342891893696218552961186052273379631556660632260100069909688311388131562546556113672464260581262445513508433322391005648473408242383961846986003612390621487734506617928403772877235582859103566109313205490233798623636202822998814221807240113773246754933533539706474057709058288762073079740070797110759892294598622740372530975348595833522122113338396126628413302934080687596163723632251548469430973784049180823917084979968275003233219929904733914749636482839176538737204239076196574912080145280961838024591274362712652735519065769113453114413890997213371651905603667596981603562361744251788125243894230635753679347388063724575710913475061234202679457590175965298660553929582502610913828200837082157765427227125381586147011945624686116888150766269330797754157701551922507908359865793081561551508013950970711751464626223222498354573859812586652656798886642012814597371831198954087355042144542130256921739778853801415345276926230062432008098023909402684681224440330464172410983487104848093285400605335748106468486298913620427176550951172099795023123922327173213466614306523233590775927669608378021017165043339775042149321647249869147635071095503062450644094903815052482971529339199425258459528436904034935168491628165820469241804442722057792157480925771267388158016348650193269960071750051339941936682471736940648600983891216442652915152071928421836148410786811381558064621246777989190963790617337192656532029097143111403591496739854165810092282973629781804054846836933347670929702416960300646795652637035484934610594517938338577911975520343751746531699775743734311682179497311449405404272641395625931814534737919411067925842344565748283240567508075928624677573484711499084491930304410673354542488061344035127823701393199714670429882298483027681711527282940928984436542781563086942665192090868944430331961204156838825963628364922222973291671362409705789473278786311533682690000625885967826350770644419908186914572021432165328140510617051107276806196772757932178861645183324345656452052628498593558062133062479139431181700525419818067802856489069400316970146570105267284901357884114422695136228101089120024315312637339008861585861723427879242963614940905586421468230298746170038617775819720542402195807030390915787698062484971459652521652270450509683163742419245558895784233519442069661761382659105799579023843885167271995776756988141479955834580373079993575265278690424506765742675541488989097917345201818685555677101113391992861996489970693707116553992913789751708397427700047237574516955326419755300133583147521371573210114270794928020052350233661986883969455131587299835173654997843049602746478170100631423273936333744644341618782553658141839611359196434433308774384340694428140353186239771656395215602019298585434851953957307418608006225173859251199254039296138982935052417175678620480508820726488314853988822976525186491818391270958976751014176150574103731627703398199379614054670294683408568242628359053492005426118613372265528709545514529364920785458381800309020226731602764301547907693881657246704552792943010920914069688143220422418105712125698202821926914830633376005442521298070083644266500663555418534450620627129206840638960576048680792958005894300911955361000179643114761030987645850012581350262366075965111190502756073543879027222909247407625190366142061655139669300804931761508797049697200045368396576984802323314558460803756396741905159446329017740439140084659324614638209958633808034480050049800209309975102074120802457162122091987609908781035940063244253078628894697269026247285358409054875535394151915742798488602922186559441082300481841611423247087641825075171362681715007473516465518851551756606250965894232020961235928423807492948527357535800367504136366409492777592799036512273101535301671602731814854951877237434681749337504481639356946954142297089419876784687378821110005204888845794343731131479769047519552268018820990659128820052959047332854878515938017529301020503714042278916580217574345837500957071842349416488258027503777987236159211756020467863575409710624796029268121962737557083928237682031812146630740545615324210550204259024647223640153205454804941332552757543899739641384140236883910105389833603948324123398610529511353999328133418516619675637553394919673628451744154242019602282357354959592093635270971988685990952588058954805185390735887150882429054155159081654578023950413171659552927945621153711676051905385565234987327756957174071802305117249240069027626458743206831671029304787258580397447206201370601958325144944301313208184637994972376544545208240178351559632906673728520819654616123160941755118260543349762749755715722999603301416894964156622479224962058895863559871287673907716717674511436129592916086292283534155428912552989695932559773959775633886840596294216874349692948992785321829595469799799986866125041242132249836337453906450740397191112449541776158442891922466843312776341252753211743364641010334297291231538124541109291316140199668446189455099921304040047562460616918977399761141029448141377301192069369701341283127479010969402313612541148508852043131533367451272988297150299532325653365260068238966399845532354236592192539906407772634347352947662001906426926551914795194472199062471636916479450659400189499140087068560034520070231353439755920122863172642930184683266918807431704937960692129505901373356144926410917220769614168013807249342464641109371439168502428785559902410671135964770561469470963838327976658164320946376340969298791057622952765984985236314859809900450465144413071339395320190738627017161786041293236307982431402166980587854034312489119376989949438316314319412916816382988070549199732146175836588288154577814508007328666984502764693002473279410301876890731569481998565498430746446581470610252794477839019484312259430924244849791109683262901970642805878267213872451693179812920233767604501633027871183097460360663993493506130287656125357508927459580908279695930944712238842963437136778779276188506687888621833433044192055100305777213706119442336609984312054245515864562211257125042247923266060606375952816238952995957126620083210771040977061357522283044306245915095075484623155522049227202105309021714380050316309847921478960358164616547152502312024005466125607941130844287228004274164556471868520455171331180792353130020465086171998130444902687974153386627205416875059882412669979125428342715630296746529824072524250342656642391002129551724807748826075629798562530006271866304241980890083505656415124841622405150562485427502878609101817645457667423922650778742909708608234777725876957101665298851232745353908783554583927852344929630351194090956285235525744386670858474813846459758780497983688196004512501076513634835574108984210198356341625979083813117122443977717831286692942043071873120418427724482313933491504722336543972906086667836852549052530059555458426537386162675692225406125318788338539687371187543209899776305094990294732467721822502607388120020587252676047778282490146418301209906480913825479224965154434298994762917402599229248832251877530259361558195490730825884567474620256391099764851879807037182712050026010787734247881220855533384204565300619210722496728950633254177242045637604752647473957605811738160556718495284337260138701419295606373360124923048144341241773091610647429654728054926071980390373390996098731756115998578869669356123775712777373396674383783470327463313993266370899568679117442570881451540113856108915963241383466373983996120733213523540882892652863582849440939828312658543962349654664692072463362004739155782392144200638068883710889802892255130499174521071165743606717215676145421735208137291947842792861929701153351073715011674565869534424292149560002430798130807068481343517282713321840366697783517507209538767586403389687770835438735339906813456675022173516877632027208192424458971823457524365689337823441334703070741224535533308125324600554349663450971701906537687222806235403533189833608901262709188391827531219763129949801595930371544555871412391490754270435880400816328330437721761861424190234927591791922785649326040971865784997548040710794867409694318955730660279542394334470904555272103388525365331066402492186678789549894293522243150814726391286883587673247358602564421917725158640867081055982886274681782715394595140310790925854240528349185128936651509697201547373337831211777877315008854602368575205089524139922920041016947135401597061993934673401285622485461065319695106726896283183785095375616637531458931772200319473035739734826470035358459842199294036559170788754288573361547121033074561227526505614767700787941499619237979283192989702636328808984607648914324566578755655497554077197441435140249120134733853172868589163743908317484644315205259619187763986209200078192442788225809832267017782007382651735824069977399689158091498808797789692028776912290100493020004203022984896280066632521982456591690588600413706117251470504662939790006747547700848922794315111198528685702210037255802697460041787260031254585439274678669804609053705285040955128109002846435278030980850278141502012807092562641017191819563500595974989646772840598307348143167128653297269992467926190843293005731631524581863139395571416041202082013708858511894982770005169208213045122879554350587439596780763767782371412856602649178126360775395467822597265077418607848262871138306816216924967737839402168301911195251187999622917190588360827894994542284082823443991301179282137987261300704401259243936082378778568944914444611729750570457638561977717359807261677636801137844031454609836729330863448628605298328948121901342034279776882366999159259218589592216838068041732828969471839090353802189454704858463077870703279643265802120006684311158546864810425776215064943807037387741103242900417212737056443391679664112847398415413577767539090409138804118532042619194195790753582088818801689455983758277898412262158620198475314527894825258456584679161052474355298987413842074511424768221677712750538975287152619884787049711950592838166536027876827810782110178334401723893113239982074007791268264710433404589503328065065300242870703732535289213719881277391875271117692807461083912637736496314793506453503825988014753458166905843014178545434847715745580976182112669242694140879273455380316455122473400443247199768334227126498459925980607732888166891905389775071450248238804947376004087654623114312022997274050632236391601909577352237520602341969549710523837901893413159013202209472249038389533708662008552096947752665220063929743119343874288174142744665469994836670313763292130670008179149795433074799647523025413537254720488731479562443331903432615077813311980000529252402336114018603907971455439675548846206618330131289252807629444443268012776192136828343289070625739322328581205354007978832697142232780536610553738979622383031236062525136762072330259633893002502160892599446641930175012027678077121869708639679289515276162372593273202647977517331666588643436825497696245703900439173617847698219634349973226386638887038328526610042660602106993917001176292279263027003448395646650133472841633118063737406751104208044443184190673869137439678178536690015290981536844037099100860399627289374719693721300203100809998314054813030607186335730806184133419470958958496110385154611092675846268281096123163212029516059448083113989955439104820707781526437054311079705155346306592892496277582449427019221933276753809005180979943492166506874518300541335983716958613153063474957583026939932726959220063710779768519574960586671414063919329754547148072408687240379869755453964820037919259890883719830705844459998385458390559929602791429644906106388117063105837765921179231844962153687069326724539777981100174556770394525857984259500338424464911272053841384035202233517618701901424244902872590463366350652995372852667985872942928548880112281927663529687118046953649457122888129051798411716794105150307022670253824719632003122568349960094764144176678966921462106865984003966542459662709044247329520785818747789498373589639540278642752659433569521244457229488673481375916208429338920322585021856446950734044844303835418745365887833847689821395774013859742360906410009683726038386747995574725695276915729228635577788259040970531116696477607556872591490800576188735982382669379553567611628618005812246540211594303618520339366996014450385692933184282113349570055561444298810498130767034936603116556588026754309564427357439310414184789963920742973899496434676586804651041311407294286364057103966132442986627086051263235122185634060450765320015708057248137788432238838385546484941587546287795736020336290297999465147720308508228490793110850805776535263473266669080397052614779392184279402950156236854005664585637011617430939567577619557249017818832762578698214586028877997593139752288999749792667056949223966286429064009295758505727544912926013532360749392475733040124259859738059161857180310670815779841711793376634313291585371076569578758886526478537575221311177584360481092391825578720987096530687505913197587927173562292472431693297916082907304073560075088864900624906418149681478835496933156926340969223572098916190679028743858746908675410269858036340151244638395426610851137995532369908589697175293950853802811145960326022738545755437709038369234154910812244017408682952372865035258268338801276961766926862468448492992814821869858623635247498941063481269443167903687176541742325943759332452817891047721408561741255045749004920762988149245060122167217865141776505196535202070670186312437548792334093817197783831619406455490490341408490792095484934865089973953402370433776838798408690680689424038451307296571337614851792510628678173442025858801812286458509132805986609031479407063515770287082047545191043718840502647982928538036112666507462870395798370358799875932898574924566310829724842437623865943357430104048610207041787911002255317567455563965457969989082876224171882713896198730960250250033280796896668354099012347721882211607290177643839664642072832251223514401818447300904122478739115641233747893201474116238285028970383865813020296701373241081643727349470806897753450523779797512573085215799865429270435409397382615840410485708598010060089667747623738966447131708841339761963275743495132010602546719749963388131758991577101151022854061168648823815875579210970726366728360009165403997483931693718936120791942873948067492231476828026075864091062684713091871363260472568590271905926629031924802850517114138933700254260933548253765740181003445991528574604934342383039572135181151334535773303982665535912292394541755926067295845726543149527837201483375759094503947920447576495735714595397094929027398316198227678042533449682208902504930727524145329989466531044912140828883187214886568936923964064614272434026736752296284602828411017196840081677150294511507101678622742251945000129499575072949332536611238525740926402437561792612670561844121363662081795775418736853520437114736779086392442952934296344358231815476679299174765085650421192430657265570452570817354190226062073927193359330935553621963361907768434134066611849965893034049193206852091832391629337324586806441914713941419120072034266115975837809912124549830550274208254986618088654302149933602823335765251657972114136913594271937243252346088492985240158496706974204053628639479474192133903361279142081208383805522890324073507660045091392325317589505348182228306905112087882096967522313392719116585327542452386013096431003732443998335172027711263215462959450204888382850290913708774267139250369937908508283574341389431449752390847028800439351305934544274629992047113457338410662556426480533701333475646156712858325106851927236631142481918764650831578385446109380523767517176340827445549868076057082492848830486313130491915536395267968967223308659285477203300532598310734839668285584264022420101617889490827038923763961184267881975662985470036054233673389854303187380517203939432213203871513141634559766837991335360619955605634077473042219765034922330848982723209790216820005739518400935368113373232992649131559630719040731756735655325311831918640234142021837102051144319496025030946785217539606188659822950346452944344591343111007236820149691228340453290764607629763206623974348149868861220518452791248123591915025191677006251407072375177977680550462062101851517768046411961890569351984312273422085335713891061769616243781749492381747390995484220832252374031842199103552644905878716544077163434748464941595006295473398736463728378297785358993692285481294462103273477900066205362225769145943147079531932883507968925904686209219105382380252066658448155611764230780766786145545440430117468974721959987739006318751556175526004013480138245214047712688475408887665816535046201180463728165364963497462030932331086353780920602661570420125949494849399509983158893280510038806214035392424452182883247077764021287756721329072137585842559960972128440003857544541518563004873098306668317315269948237927770229142312598730267978265990147586066784330342049466594441329202001012207717452126067472744600918866996162996264564977660371547281304012745906366864970943747064405645511902360679186504095579542744940143868580585391747905286137363931570772050007420664807671073397379541194968686916827748783285418768164523171760136700335090333768657916304967552578311887626854322517546947351213144547868072054465016186709842120411015873616184192263343475583116987492109459010373045807917765677139172959136387400338444551309521224119828449824313789003394683450676189175308135236903142457761459913933231056738285845549839282252235995096426418147084773900676105280442459161453425874749266795225484260068784758462196643584909084466404023434964328887858441519393980448448862731763828367060712522002821839435180192213198092008290169045672517187040151235453633573540465876582623132740820390078281593289621864565538845435764057579564595072942334499666728879022419968591227239175381249714730059116986700378015400555179998659925117597944070986718125448276463039835259307547866056251598244883276947438535306792636159119575013554140372004374943396240968441465755744777926532838304195408907994560915560021319071241820007445979515104586821918750972932225817112679746618934744875229461557412523793534177050224843928611245955430514492367175171930472800291192165482833476389201376085481873502554857015041011846672054222674403978417912788415993912507651387453365157241977182230794074849304619772568520207098275854877299743602744482695163098068939093720086153186872956059114936505226279909551650373618328429975845148557511565251739079042817081752225135258582186268606704677851948246384090129564440498120996241100117611418230921172337175165913211693883919421723698638805024862240322728405628931922959580062624650785974105085846440014526398766441078134356453107293066999775535997056211635773375417022080343966663533391718857183956924431132985286595718422376885802929616444138047490104501727496549450600610906685740606766206000966962863525620538760873673691989845553164234061964558568487382364853519718376134701173012224368242537326478272231888151172767888689876668943790431495227480469812826515280633836600132110143046640921553549350521861526286336185326503611792637849601083528271208633313685087281518017198561388419795588763414077332836746910821800544582521566851191814059084397172407678584821055499885562623666410495711553075040269363344186984518037150398892760009796162289626505226389224825239668372528009837773210084654168083923076430313946353809297371417030419764252994336624970101478943341583340398026907488411410694077163269469709912932617812328178817408308740406132452180017401901615690863333088191595426518897545501856374505743151076487388908424762756288151310822484286144501057984838827566684904530094530606147164035498527624323223824853671913724202234849369196684566117230310238567320872342775740582938351620478595061871434841027077926850835735379039548058427847524598244456282604025425249547142394622716908822269214923457041476538219000811273049716399162419142291096096989019555312769163312950196286281913607522568096961405568430210608954467018543196095415493157314212432492449423115452246110136665388003748128839040515407067442551081627488735796519871229351328597742397074447630665683051810447079724977948111209300386077767668392927716233974400373022883922877380624507381259751702419036062614337661076431699355757724146306374908491346229141758982493744361058578037382101149121095635274025796268613220807204588924386024930232507633535815942624119236277308747147130132618105001842267823519802892218750561159271342432474412949849820647673079184823854048218910592595043009228657524195105958641034734717357262001900697482459501269716421171329168555452905669354394109295707830222236524236549881225636062364096792512335753731870816755437903835683836334964998834349302106568990004664760013594536053390918572322568999971117518357043458897237382642695022465715993187511918680708475574746286907203989877915913574152702523308914885658476561882116487429553325422642623238380049620666616276170774915612606062015281578585205733421455928024873148542982030497953568487706573974799620568034933292739377589573754119362037263113123143033985427858499681277269782745240714895174722073863061134945979380793067842089932874149264323778935067152478971811914053856222052903141177661337714813891950431766691639541567992380922155280580174839637777742708452911418311508301809912424555760980493418071577774617045747112481026268615451988847835512252759080304666473552873410825867101544415183975621504557205986602851951399482431520688119373296472604149834504710343873127975940360044433193220929201412174812775246843064278940336544491721284580779590827991917930600846313077469685855798525799218690803349453195716576609057915559858566272098392267183944199705440381340597436053327420045922113273553943031416060869130525269003914366120822064437024462849438636155218496606373502098800027812197272505553697512978173730842688618858808964700654138335734731798948062028965200518179417319251203048547897002327110082305608186960178477571340793654552691025357620953958675555964789239926511673310510136737539610375920650862423845113745460434724067754058659594292769025960791503808597810152682367672701635492324623041248135161429452800595442593894631155092831485051370918731022048095427841537872186063809061197113379795123478305232550286585231213923682652848473004546491851118367760410008712226814433549067607379072755862729196503733671268581278003868374047081332328154682112399204366704881660403017358729912015378635744245973940800169406742138807938221641268692800431499686501819125148343728935778530383044052428230677582869987205085036277308157163819775759794986373839108973262552733807119660174041114415974218820813840115219931612114546935121164018522369760236771929290221098367112561253313637024658501403788217460859534176664927089134643309915983801244609688823634577159479172512512170425450326223981572167390568554043786845031088230950357524797823460874481800862429271412326616123051771603234556822758210819668013687936686483990280261626156500342803936045540109733282950183309309207339187826628719203398559636385810909186693353852846153445198272981008322415976679084048647556583054844595104047113703935279320272121632771724724681413034826947551599809086593002292050224762256500209679463658582037257401260213254888891208246645166421159588620702555725483080164469116287602330408568560123763625191711179920549629227210602889691691405668567766753437471295361083403481035753000189418814647560329001153838877280343215855042914019269490557887423863162962935751588764730437941269785900268624187216955133687027668993853682071273955074940052848934823924748059230726235385252173820688382665632625621735891600304743953744703206116656245355467048645276743739681505325509872030144537521599788333121089923282004172432770144561218195941145643732384272224496475773864162704782980596032361066226014965728511983688340907528433534285429727959486653536437155035797914052407210529844515422045645205036042850502730914246830726180728627967232693430586716036049931600960997892353142201933570316218825841246303832920183506096010366623231632546801321806215917674797780107397294565469210517778012102021139965507651699678196983223570502516395557889560548937949959532195404156682889148775366375888677408453770049126842784200257426602733266141127831716209143143145351588993184631149772006276593456804817652770438826593032509665676144296687251498671694016984794363319148651666988811724886619893871806580053965771042747944444668597083810962043511654485052727244279434768819291097666178122979490684913283770935868051352074741808460313571186887854969090834636115418806622260621553841267930722858576187610308105081561606528397597233534104187394586829091792851828934394961795682872388016637023478814206964256963725877002128241563336385607531159454009423851142487327104053555257358167302549317946707601673678625785616242840179871943570879886128026295971936328001650394868911604276668923436783957619107687408449655706269482313284079621185638211550318725811279629163005911385025207100047317164579568118488071081996685630804272410629782213180473562905710895905308328460065544794522706939373716228659039023163702612353264845947410537886690058294372067651100173661179059023010919905100845070835481194766807993293364189836291439229552826793905579219660703509217479795609751416769063677342370284509822316053989636789551688722543138241968914033961426108419256438578830241491011486317062866567101676417130685533982172102022972624274619172363296276581535322396568167197148137799232671528288898349864704583121385786059905983516515717845315079239982168557935059860164331456159510282942185756072069145939654932649871253851137126542581783391953574965241854039391033136381875551100153808855654190724082568979219603791953856813898635724799458103861270882295381256389510107029151344293551826327010725622804534430860104200164208622966198236975637480298234140698316778739357261947223795908584979529969651797065163991700872086196263157778312187160315708796435944589882144626226507489712891917803678895279442901245772293535943479870953668224884641165046610437542405085124092122300559512820099841420766363779694535142156954335641010505858246450079984012168744732965130162053954055524022186516635321834854966853167413970424960335913665649839337006663286623453431239294299409175152782873330940711189593458884416388171101786709644712962609701523961454757212022823377237589180633335622981760620272635488710379535717328393177228995280965532942849900574145356325860861897757437482292278177947613366637774805343069642594114149495200475681395774860213317715268703678581259882627533329777001546681171019803477760127715234587179684143033338851897711616620661214995405414572436440841428604301732691066841863688499955524352419964292187827615295287198674057106378363970659951663104305820473656325847576305723024498539207242193427748982048225901363726358981076621056737326487198301050424528645219171919635632780797369976624306834019269938573952936338566989894770267368743104107954525611101906501694262334288954213822818243450667708591737805652173686688919385194560002525169073601086242249807907763903616456334343979106202724520384180938007678318886333823829021902781048816276698915907519327513201018265843098740968079332638282230730871755341549521422115913515700244060619341272007894669265436468162437060692313736679960573242037552645439819825554128701068566559044365636269858397283453765582484622330628278294750035524166882524497310608084341281515938542390558072266232787101855393063572269435118195176431803552447012837549978932154915240982548105632322248664289922412156414404015018040223827905398896555504179423754456770460161385456259633844772893939240982653731824904507454067008287883307381057350307336561614155284820977698620191938914677063135097453209019308994547945913389398206115603695144495134236241426249900270320726528873766112826262201120636504642094578239926672932546160035684747045815901151108575528469576727178564545334972186496558212181638068106591125468966488344364222585016226703442903244378344773160770467737599333625292378044199123376762574006707056759891953750941302225639878587104295598650452700534739509124940980678737009740323265608641673312805361343481203814118662744961150242733145613939944008287357640441148474110855625129153032684980126646244591176455779331076669601508002129331520951210375545360723864755437018986503481196564105941686812746333647029132831781809433643328710958522336137002141867948605342823328148895595483749195187617512194177667483418413036346709104822121784863346469018228077201920067073450894718170334174637993425930398887786422159657413031153346275038619712362696196918892331939207825704295269773715447275043805295348126848679383124726233862588060248650117386843610954828214705781761899805101372201999399110728880889010742179842612689845487428316364746695580929547019680310196192943332391703313012222611987696531354856885760416767090611631232308958124215045198561145611027470374701628748058980527767733443324602441296362297335293981809582658094549044907129901988407248378424589618669138131848750561138311194449934963427008203808733832368726695550972363579013946564168631738874387634531243614585367656326186278538518399824805891511566613648347013385020706214245039478510615051216640673331327810631574782248969933364990127465192311807476562462766838048762918481673365625414567808097100861690750935237826810093914873252668391314356558476184831626943864394380486405214587655160578533600657520945811186595224053900360005603102856946524380604429722929031621712647553746212428650764285598296935085577556659577482004200252111734535796671341725091226063675050885574174229061245717009485724611745107685974078275681830636477104081466622679772845372278194772478963248721839956521993548764833825890064973208887609760981016793984325811905193272480945192402095545632761627990502292972895604495898246748086627924228876699490226899330205213608998123460360565590552243788686641956588499188831792714472636494045493010662086564915081547938889190141140916126130271938134528210971279723057200186592776043444845912257014850499880920184971692282220230484736270460054666347910255674159705830275037046351695068663754956911285218175103189646491676535951225210019940328477154848316989464755386536947603294858459901339550781485982162843248125228890765066445334138187688579368989229146388389145650073362006252819108255838166352206248608147928135710793166300118888676668247331205021529468019025594983910944752097304655899442349218132578476085063035876928400425212423101305742870789776623113896092180705293334004343314359861792770299502244333691916136935860138786616808277647424682073814062969494441349367901784800384312138619231144193383670474393222742423312726535180880958709029775461137971597103247604403307231954922268898923111553408736780347703687818046851040973319825047584192165150240450862638528966554087841533710363934151273122638042414208071062838162213920518881145934357240635986230520660098412551824177952104498724451022958292033971678467357536293211764381123578241930086817290073932471680935764718610182586629292111975609000377401373877966392365622902303114541483045515009250867686562448750752748074689858463421929427630348402014359008953587829899511354175053726901570135886981076672653999301885536783926055789603582577588282041167714134355597764256459425376167093551234885018274908238814146498149217380109671932633264809117101022496060640019849624844338130674880746535229315558274767449790490945629421715178985043642052722939396006616799408570509430518512450948531133415918928507222117468344312911557067409911667583517433789281843278863306588601297352140096309634683355232190174676078564173589592300918827659659533831679028928321829929663981176972059766805651755680367878491124587878207008471493096809481462879736885457569707246194662168466629615609889862042386034662387491986610761036075748729749594715301788209184135372091922472622174140619201590245002352936468531066431064140649929760738649171421429358483477708133838827664042987461437650485561145364003235909470660949436230454681957473916406557456747359012744536305233461310097698325358569527432635864876519022801659862984008836702891685274843908127582773513558227573376669152500788111469636758478180998332125295668772641257067138293710823706509431538892573812545797473740188866416713335482663092152586006740220384117157113442196383482455120994165521622941097119184097814120562125251123742445702670468814379906208222867812430030592079808639061935369537395014283750870431748201156843804069728174536760423800638642687475651991205754291076772818223247520511742715390302471430228376305346306323385363559101429244450020895423262123657550292250630820292111791565767667109597205430565987849692321681255615344932241170423591840748530324290212251266645562802750334759956452935269602559331331421828096699637503695659578913936901106939678268921964548353437347753536727524318847002423189955965831769778751612390661770089220434596126779619322597661174651750676258972503596931289425218600076456628505926340449055874617162483463492400177468626214401937364165806125264319150088199320893669442057419806147923741843233908118632216723566403402096801478098719491883493804793406689940082537422110571673674379891541749350952646283703331545917894951745779843686174063684149480858814996695702117951674328080062080022911789974141443410267225386493645536145243792483742907686588546281399381201111152576972909459703445199793647866801447402632930768523949119330001378835970960133847804777742005541884443441314593914484039607677609115292890177271236650047533509555205446246731950188066156178873396101852910550576785302595880759279100897289540727004132831240833582137432794906978564247628085115421738397835994821358047156167442325707713346912542777264187865432104687558756004990379144784717835119491976692440448972687177967243310095692650197718306435095327469391325814135528717920364519569483717584119753726223816628935056035292955117787345577226616408205170206779722301408803185743681070085569456297598090117585055406745333338241145243984325712551552890150470447279495618108905579877584936547680532197881649636259713391453854240483890158358425317362622308377772430124565164615896966405282101970711629281352126864057351448599404394503330478935449321300919833916486418592236504339418100374388446357125061278587605842946391120226243811140888308990531916524259005037697280214903886033765428526117020299915724699665313136423904156547356197051165402959573979970149220701793279678946184517855996732012451330643492708571796453173677537400463726919799419472148723353647978938876205731417323898537035488448084265551170354065631555437204687888986270392680599878992958859817301089095315701526211791877917376555483044778776983827608509854676919257027372170890821856755449458618335379095143928588225962466258613180575163208186706570274922026194875959739401057375120079181885000914428440781117017248010212646405739296861002491378993228055750945697779258398272505582373142034931017071606731825298718761920114114042288148217360368391480859302272525480345012755038664567764139295853185637520021985840968189263565735008103835808749400925466413324738549272023838255349187458278144303793890069007205045573819823327203160697709978175523322574253899205195109914050669984500331866323943386186456925396840421253382091460315604373687939718712795240911823813226594390787652479811880476367529940034069963348265833807516852240230802452827960013193279429638573419060275576733943869324846189549747212141254680054208313840356705793998596336180236780330236800241602990254386832437329358489552342136496069382404068185237775710760888118683748568123278855006484525906977268223399264430943785930590552506385724086295500987687990424968238704526840204062694970763877325069214711990170684772683229203067882671999782343417788060251314531048907872360332937037556627791089537687451937015288463100783444239457434262644376753480796189298391426768534689564934965753288214193244690334943656636925061139202301249726097872785033616787989096306632875708367311049547203757488629600916712196583549052841245407743786534598411465293882881749193594680572278805419592764296598307510985326087968570170311568766429332916977237735577172735841149663429044690528107078545472354613717415173476447155935177702414165920985740545834585141351096888813601646953630612047124216159602287700196079310136251308151168029754786717782612676173433141124181010338608571934420880724659095801373840795247032438365924167336849465545063769309729420534913344947978033508524639237283019910744246464680460321524344546343133457017593846286854546537474256283618783080993456364266274191528377226985779151927431231533862851399127724664757513719521676929620767177863535156511074500223984562437292159286422975082668964884300611920684843695929353703404646842192632532912105410529198987673797665509377206654419000726477039355577591065096301274761674733964979082140316666823200334925291254451545239295496103166211170145429331531985887873647370842412900810199094663939691822585314585549118843437597419315632057690884894689030318196324473703985342301701760460115856527239693117399193831020978794531778998990611162318604565040162702223964332682461902149795341868654629141433544561800097287096131421655446013078971444311581358178679096362132917815347049782518035391824747482530042708848027543499024892288040610682111078794102069071872883118164353806014264229432287514472254983648981138360576507334352519716727277312785132244283856799582487689122326675089777900773465392514666529386538296032590724579546658705091638747492880982712388326223287465217969170880320105579863184806860801292244023945973809112785244967648004253364892292193064617099297901007591481937952367636759179951451045783943088728342271751486884103003202140766256356759826972168104200565292730991534174546686959674899689979910843992160748559490443184808970640473873884531093132662918927074525223287470480401581966580470240919982176264526144341468264495609805831504432965278871291339579034143351874925761571101063337623134728822208112775307164405601231624167637751786077197409765969162278955577064632903700942058610628777038080150335374149322258092230367803559246757280017003396870741978312144460335290966785244821868684861288664378160792936066380022153607404631457243246468448245816829084934868290303183026208981844269103102806155294593958946534807891874802040825636388338446567218698715990002141724674649539911736896067376755027511112082878212092021760577505610535558280089793147487520263260244283090151655853595134282982812156443616478120475089153314737390601474731241527764494681449625974707990614434602812593415686051169365878736597599107216497947444571094813847991717059070230014566407105982625920914270737117083821681658619851394818569359165347499089036988298425672366536327358085561827435986241531571348035477005072164242784071395276545033742473514278865455400108290974839022413876676907954096152844723774607858019735327344610428558727609524609477874569806988927086393306053592623219804461159380708181722402485989739625569032186574978330064585583546523821558251979074202182096882576218571909348591439114850690998952429957833693286635767985784888503293062787724148288307049251334952463482638182452905035709866516766890479832774166067657418872638232853959621322966887438049118739701014374503903756704026053461111499025636675354648827344680942170810612594986984666599370063485543753326959038463414590165295908455420714202768118090838139309774461764074778925337673012844412765007354529335039094847726612199577191677811969801718475782254311922731929840078628530623828075544436502291375803959122495328008636545546171640265055172486331965897448846891010707457538585046761953128912500216777585332767304911010216351977139967831513017897999297551114821286185160645039419530861514074812927477563226096007579818724943917101747117795472303970262296360478156813722290095740675557694636178920272625695923211655049014243675836456353729604353472460924538023947595891208589317621225967753897435174008888396266842353915794789554685722784248336361330306186383018419231816128849965246524093220848198682930377516969818929440373661271245805443955820361444029119240829680298013082797931138680279485654070981303126070233909295553166822130116644030276298471097007841946487001316440598600518240700495420624630389694487707095283514638603461204618220571814847841566321498523030367209873931449312969148075469152407562414818829320097438989336673686602741370413456591988528279680185687921438857063215573744095358606781350582378254643074396399087296996503204012287250395970904548808425626205825595221432399321561348383598510915174489383582129971352734513592909916611852426341281401433097171007169795080477307155040614454780907620909765369098136786496424110368649918425724152927198959038906988473746735684503846314768283395711762087235936885265402014582093764923710170548325043073498962872546969601312653529726415210513138319917875689787689163118689652450657017987519558449134729139116167331924866168943340256416227657226135638302811819717999480134016651683211462741456103075431963998256645876672181616723392490401310660440278683919278562365097949194286438670642083819990404720713262753162981349353004845453012878863395574613584940044919177375735705905384975296633247814119639824816019797906936048523506411535513312693112206997351934295880021644205569021362107450188207962629349438591445169447620249206706746631002806977803876876689349190865614611628496546821171422511652571601804846118012673337161562303130035157652609214578566756817794105939521536161897239487631377921787646657080133788430249531573017772738002271695661033639313160422805145025321833031512203610176861854901825874852037528131558765063361313424060353707887562615506261310696353560424576143008880770379744884209248724255422135854494255235880392145345698440070340422917679158795325135611191367056293639098595088605727177271712847903136615240726789859921358693021172411292579255396113807457421210797085397819717890012201718077847971908642363868801313293776107977843531531249001666189804483285450075021259949790398787607361052945354924173458895879360376742579190994060547737350616528270866048773274014035201710755350497873726873816903190633549618772478107842417644262333798270068049271449196624663533207696414589063051336108331766090319754982941570265904781022078726528610814000114065906576942727765654984672005046544570919850918546742864702865158822902864948943064337950485707033952942176119390401789223530716436834821453454251127049080986473823651774933398652238150889974289207701608156314892080228029851700704963708122052410517248214856318392367417732484765517848406185758268800051750259434139403756408069154024388079216874574123006432542424244248713294707220590928848357301004808784759903122049748933351937240700400765530403623447114859004472905567516069145944084328122369035831082859817825594877321878009058062945836971818187881419713703998252044383285640169720737721489358184815285550329407093722864671792791405711813357586736828159515587247550796286068209215473425648463440343577164171732490257334006918490835309524814462260631220382824959861880921471535739948614717891752709675877791678309924248347080363310237548182377674323667245022620330613017378076866131836371401606366483119504045934816557738715459402128216136531727937251514602593906492670088793178828349731084710702235873850546585387908298668487702802199616377841668747081397103043292892505330504726453476503895358631042603517353225387357860451004632399494025179495459878992522062841208160998241284705311568216490662853345854117154803507363351831996125895506778475342768664176883694790303475773197649809783022109770040715565266500542165772678132849076420332734033086215654602179297878884126491448808046667973773491425113123270649420572822301101826679051348808755867499861278678806205940704655711725578557580294950767075079627043855406180852006172620634224822854257740823622072174492330622817539046261239843907803622473288906314575932916136753888539628089990858395520390762742737318353613821904736397029399166500473392783081862135897551550458117463380847041879520147353422516443788806287380161102516639325385378957731163372063998193329054623467357205355310963717866097137013828010318340718213921254607200925641805079251998184495978763073408680157693391431293615271945617362117164499346043665308027106265891071023946638385634614823984704286593105751611875946398543187382979164521657462177718195787792753908219915607513798993349260816891123142646164930974725073454652054937742533373205482445424364836949506588740181647242528046443006108982703440155767109870692254639030329580984059188466201264461877596020584643306073172149697844667934818257005886717734551056559464918219005415416275394979001438785807591787970354944512239011565397624135639936027856083516706968336288501526023644702012510018076299548590653942625482141398762530833195134021177662359143254324924221375041318684483192075265387342579446987811895207786626741744281020997910144291177265396175330534699192718327968276301684960809946697396432497339654916778226715682841805197869833789167945057244752431505528511741594191117075411417544840692861141174125446482222323601647399259699995575493616923125629969198614217709970121713399670975850876882793215273657820826165053119089072783129452909078982906320879906854427255893131436267022714030317341681270266638557152469824810374927065904136816476044046682054862988102379955957992438696357938242117515182797978797449373496618077254023883813582703532491702639336189648179388868255360939677863420572993195771070859655661689594133401893165374595420158217839673832426678625387097382035948558605986401875048763879548682084119111942327324409737073432966318346381499206551066041123742576067906188859087614396836645828997163920370373106766234719624092189982773627180679357458456074264535032039775609964973398886737308117294747995539496122370376714810710144259113985832870486018104123649691529865502286207701655635531211212001807376722954319405046770767312304577232710795175813409143342566131497347047421312902213732675751735389202315888010431173027042971765961379693912693644906520070971072015002405234088078728574102903358907755394065008897648122658483072708499608807480474737170023595018343911386577533225787325796867556449679974497928342392860290505013229488764411679153880588863514780595120405312198415527780373339688478595255388066499267132301487222714764471403390778244779303638160374610933883687294477224941703311621715448222321989506784584399320661027872347290755792887429840057903834531451454978552222382637276679273421472340029501212826885503007060903554999190661702744073859832151122818429459059620002491878690642481719488009241514143329260952780262244499546920580613256162104283405373252893220965615569624744831427360122165511118154298665030095535069336652283001949123084175468902336108726162745276885061112517491395081643822742310224699040943056562078711693866648524333340889010793343985257673635822694930477702077332220161295977584278374343659000709721455046585913621994993585630607634191633902147732974568865109790164705403264607342177385444025941779972092355408179654070117214598182104858308249566045374273779342235151282545867119525113975529539541325379577583593104441044893409655224441058885663716604801912319881191911539249718516894132572535829088005789104012239744823028532358831920100512749921807705137045489122518536717790195470274256063056305678129214264716156121081945562043420547936706999663644377414596010289800678228626873986803994905664787069060926157530748453511398105369334274976365315334862231432139390824832722956326994349081203422503198129925913437781949041869538593552737468750476059570218015429623700578118638060828951577836502697228058362423473059761323880862918632943523612994679937661321963686580097104702786841387265603620506189230102769000978764159366062841664287137267661258480000924664147922656770383410362765468922797239356826495205057194175060997378360599149460354089786714546121104494259600030357836499910813944849901992685261594086867357567104359927019893002039198256998280000930593858107347053549825401242238174318747292379467282850965661717605291662846579655103665645844806032175804526906658128693917978181031213095684649602131426603981807452008593070878041077292455567515678699741140075725532571040482875426304999225261814221329409747613232986230795083813349213731586311591533500715459624300237947970992623222283625565006719262159944383184542179400028551033376207613020353701884967855751168035421965886077987586471912320855994629461665798725651096446991511368990357090235336400998565956146660599148179523902758237781438120468888904795063812421381037806022425452482057789788596368067730291246476921680082103988555788312584959266057752263810261957753424328113426193288439238464693558823245705327917776960609801173898484941024954551294296910391836380513378372192845716937130454363758544546596855354511969628179128296082974390444319205486260531324271208103135912028796853296215526755510831893658247074300880087082557087017170171002418623893645027904708941432409543339267502388956269436920782376064118753476787859812695133325808284153165390226766238592549220959007401987952667937153797547593376310741931069514465705850204279072924531866760900681241401417952033365663406281583298146803108004531633540079511511220585998365487543858003710284415405782807295961334901524356176773960989459519958398526976902604691411508985044894132444035804277385360667708097447158975411412965420252614083284396709532140746542998654195460865333983554806201798265054118723084356212040532244329648825209592546022598561147062548325333751192340702547462161304882899033950100096685149506645707754785124239699088141644995841485374628065766548261042906799455660368828686349869492860051713442029366708075157274569656714102215387457077910480993281538385649764054137764256532006713841479142360390976271794553402476859395518891358342849987600730310575149465300368805121745875282460328779978390083133607132520385512880425221631095703894623096329929980932777217298308548393726957269975015375135104095400391617697761499991682338270297854695482207290300755114467368152683951157499740388808715707196291936402692726047380367698045053834518022589313715641453136404673531925059482979809229106669911377026198811738600221514539297598004756623626786671571895413368491239490569074029894291429683266955644863260647854093008977281327578138229685221414564246153575230370976130263302600309109264440156996384695106880845059628039932215686565147555559745810206611502631618389577024719255918776075054374097291510799620316097505555085476510661898148289481546138863772772162891007708081021422841699692761557869195871566518329709900132551183155894083870490748962887756309547999491671189954783200893863308126459824344116395181657803093577376963653282220272165444443818084356480412450577547012245877055266286674912939389242591491779351544699192287040877912344704505335173675494299603265183986912644974448270430927242582390227334856051248484079532150517850346387833247272662410971321385932659285798411700925557922466688573859751726028247156532184932308029910211743958331510608435179413990725824620700517752631043311435491168985443614715380056425934420763512222167003606212906633363878903459149429199083359273756467565186343719220499530756794178488706336421225243775523944520579072409679854030112009856076177367224846300067222050678285366892919471790067783189360339200146129836418379631443232097094398887236676008938029268317636374327769104143790042564587512524440886554830575816710928388163322875430835165932279807540017544981569356742412318236293372176241186798382952769446305770393995044973765701799437833655476189350533296637151824461032378794749190509129935261474425452554451141119243311681131017730912971325049435447377763663038753887585967162606894738750417747450723137956475941083839680802173186961897349385762793867025594665995076878534591756400358887645319400078228876459162985421527969790682702575817343135619990896013709551316450306530112255376399807818006324483486523762229454954962798149509529249623925688314039598473915997206506971780542114094975686947923840688204450617507955844322027607598693986055336704853057465889462504780608612009842232775044716751080602363106566116668802344182750031833918031957908794809924974054683869923387326400519646637930201398220187110412742986672707899270952411187181014862165316426454964010982936122279890024960487880238238244734487364636984659988522283840864912607397613127849411634229188365655138372090236173860606898893092225207285420398285782775644460503209963781066796567104854718445838281559817902100125343656165873926608383540721726523210218540158307277293962882431313604161229836788317814452587072784580043090274821312347890808636212192312672030363465035153380350521695242492340129088067014229394144123904234676543480133308191822667343956446937130864967533629313593697108289663842503286142184175770386741483318538295666917888577137464132022424733661925031194111318275196466485128982129490774337701864810062237509117210176601080541171952492140751084989047146962443090596917714148733919308220555882913595292863516641465066432723517766668828820948205063070328164195923278777465538256884512029578657200664318377969630654920030089435080400368674064649165515686965160722812505627161326818084567560290600378586772828861528084766386997524092382878280343686363688067041944892828847903298036054912105729459410073902320800729754624500065312702088568588853722543586542355480453416269401825153105759568506859105474133630520341645553950401001118399057684188898517565436707513829303974295004710334015052555285534089618167124679048169165418627162131608832877124299125652839498526077645335476680669825694465384418652319984606284638680677196421613628545548734332492057754789159827527938424347818748414279964738085101178814330317501500018348409534554610222459679935914999397889135131950195605631680273428650321538679145554359951578105852889110442307839074060449571964949425347311521563989992352568684627909234943503624390829235620074938867659463131910719588965082813574713494555167919614177948372149387569257695531128609675679693665446129041254787665021681182587712043518289599203933131569858460494672992637342537121339866891305966816343017667969924463894000693153281338329119953698903367324279941437792664312488260821789728056057601492688411283126147634335311441410706218998335980737337711479986770405123718713531280794276172880144305359467628826947933966341046144310721085660167829904864836066311688341965218720362762250925541394513221296409216308584145792204070074989370211778543944036870746527408890222794247547008316226922576171535720983878005094640369721810430567061838032295936563985133086115422383714913747899897074128718831668100791078998280776366720278523813774845794431423380472153374279592253933481253414631015243880623235789889327136824587016275033206159365783646246187293588617984347816374130275888881127989259905973903898021109311583469460929446246191971403656538485507852711763207928349252323827326295342872433655575743578891592947305678575992439099465027128872113239250221418058687323608978097924737274237733276562549332947821919355136896463818114066079224250529571471650148066761687758560196739329478855738274227688192960444276010555309209321111601221142683403912945929134690427398607016741084624432937719483760809117559758331046498805516254361835749177814640331695565221666516890929359199238749881842094516686087235086214952520215967536202410382652073964796762406723229636557137842649893832292901028305786328965580334050510769690144970633582238766315949601009177084886043278337503135927983294631272306849698996962310424562375439641866052465451689625101581387924408441905691969715003752793516742138189705142569688087341931135547824509569477085672802890950761753024708872550036884400079776331213082580596824264007668572148831198129846726419910605233513774552539069265704233019004304013021093044490084518243040296152731517057235658430111651564336298344176486345546949909661846648154165281932583124253884739940567505989769306485705691966755445337662027907755687481237584534734318433933627354537429564631324718138132102809143554354569262677083450606855340478126841350834707142174330717383315155078175511804625843742808630425822974133404593727018860661655158831544486181176694094233492944190599133185961438424144961315461013368300311201259572050659659064154899970391931098529296756633939023553238210308703425564600085430716726421871002192127761198921590204690339070177317007882848362532597404351733598067718679598648221403278718286066870915955924640603559233649872973432257798100117920336952592098384834874396548807858984845949347376455726484861642217809534748929592497408844058150146596136526512445812680773037693668322770089149531214657053709770116889441629427547820607077338363133471132819732969280738974560279339363415924968848283023676982554035650303836827584064299036464071453302486568572858421676683421551598056917514881169964271907035301918937325257590230002920071467284709333566246779951978202734424184403078035611016977308068976139462096735888940778561963277342053729083331103964264644525391869085406357864216449875051582758163216822544359139278333384969630832382337195113113598769407971459240076509173759919887356870010521654137133372610693337373441043266631370216219832395097996072998443714026901031427608489555971360435247565980226492588608778013578191737801626845863221721528099408038857825881867725921662879639412516318826663204239617658960595899536468206677834927496244363413138994747897775624321901810924046034332734391309148455260561232003393104906421500637082878525936313436311178579734354338974297856154363016903436639361903802113693557078335802663417712183499691890816675369821455323676763065092474020231446722044427384856398970041052369845368946165300973034515618319943306754287279917530385824289536800500277420510296050167775996237108837958664834197165282137767236420606310583538344595887864469576315605126868508368568709466876501520064042993697443684248777556106223260377852619622215360191473824940950570368831304560528684042682024047384032918744722637403510625961634416591646370864008166409843089075607840916321237885010805790458353918953117002490239647104672425520716009798441130232194031705156959748112899716585272451096367220687508199178902395262339752604748095165613525268571555313699141947005014286400578174681196044253636951868055615246348990933724716719970872236794120614651531656437233741203380873764970282858012140430562791147419644988721066950467292056781132668262204962162568889231646647039867659179194758502419771163285974973656418746658124268885578854671194025944060023410608468536039787690548338273312818629759030034887385112869329867804107441648548194603362563532085436279388982597271744974110405043611904572181140346582568032402489705875173762925353616068566080849933363884866548298088356834734283379364183509495186356269189531126214367266676147358475509701969801089027218702784161663038046033791377314223286512783102778264279979832386515807890838036214546070806736607221591808864051415119514177044532142763252282527730440237410535385810883397935880743289087393667368559368877162059628449792251734938879213355548222324214914797241937175024220221635631009003344677106784350523894872595744286773528084385847614769512347627665565059436370745041464112717309250510865290119583749431729760502161504338123304582628539722095407076121138300157340929359290643315231883768045395730787275084251611490669479221826733018260482884535026157528408256497005541268882507191005770899562577424090897706380848655200638711544891019340598471572070790659696059382386890571989692475108969255880317675853022558069185809355255847703092116066379661481003064953452102798011257917947072343414545391276083373216834261365651244984319005695619350874101949789745438293190343810628680576353600051618222163109452351063272201990231568780548338494169351879463472521213074309721390871182363624274970160389662436582315211662455857638518246935959313787111451190668623383941029218383384377249809343820398760642757801231170377144016186333752433958119618589469853065971362968809391034674531646195587893167196232453058284678333937891080194763965947637029142595829247974534505131776245093759959814132711043091401709638839805653941215873889549449915343182330463523798141890514810062419159242883660963595054004826979716530682713373791504251513158679510950602610341165764822931471431297391475940004617330491762758681014547965628419123059702631298018499595484485747209204240481358543767322147986567376022004879706844198083771788498762644370519327532913993028844786256903922709787223246136760215778485205366636889341037374502369125399942475923610736865937672626512052437198380888593969149332694223059562214147594129884881932648752885402782046202500786536954256333351040804924578599792681669057714536784401389676447488029102391132242510713240432841944134339346694554367582486694312544789712177505764153851457478161331419541128097297492739850017301380273398925872463312462186472063626712375756503903094595350511728231760080361898930717806663372757193140032669435514819340444428718176685512230409567344292268908134688584478309635793767937836938161362177797805063397749637903380031963480221409026399524748567278783799026495049911041484549583321156116960132423423154714854860431085863191313966607505090197366163217556765806626198064451618292410210265927221496003575828722293653895719013321049755485349448340561895020329530005158280029806011420474463129160486465995700373031812923728940111193342094241777674519532471476128160615297881382096106093115133933898219858749077304329621042106358249236739522588160498263551131676070230363452654452977071862436981607703137264556935644338285339491604058431905856896730436378207208796411765379065393418361085328948181118171231798737183640019214596215332107736336741898684880716350766487425975184670099371675301372447432958618407074079114603163078272671784563622940585787296902572912762552250514388873690207768413223153859897977829307589008950212635466024947057112513957788667803214059470094363894395742530017819689573830563604859444943793701462205205560947385375380705538829490345614425699470411253008170218470308760827172265212259020684730761153132027747692470462117853099502225539332416893923508319335205043649949551941392585903886687757378327885511321636326928872840777002285107312412455393735957606962244692485343899155134674766921617308532535636915634472366335550902289925017105441609580074795548468172789485053001602384473737826088201149250765715204340600053536900889124712721112044675591295648528902184511585362541797417096837903588451250588038919961650351398902377981969540394245613593836238693323790651725411225114694554195692554761628297276511559144556616809579058954399794105813096602680017060671580230104219907521744841183222440409711264488648477505496786700250332160235925469324145838386801059499134249621543723462156335397920867589916247982473755105380834550667300912474448421768881691200747384626624801514951843742052517969722194701535895081920156389281836908309522270011241098704951746904370720104157432127622390847024188740151063733495934408153900941946278726478946580287182208319001003398805786204957882363292017229411097427133140471645717206255095895617485066811187812896632683425210562592213100144937001513814023097748539340987921279572198144712979845555533463326480299365147117118675826431423050363702385347931203330341850182023208337286531141206884805603486674534444338461724195510509707556448313911937961606045853299065457321439679497978284885469924839766708776543408442116601508826016485806691741320266992536394431085574858918922161260307222715195025557363437420634426824968252852655038859249134316853504318908073298414472620371791240169409596242465022939309970972058602668563383166586825748084591162143454249013417855785139757155050824300698726114215923324173765986540498479494089009033061682242048558582965951519479654529223913078521886493106426806993800599477632335428263612666862663756488654007170666231022561713117341565278689383960192096373944418366960087686275734372773867576938823342075739763701868528589378829392813901689223298730066328966309944963374134816450412038216979155991041520070833299705796058189334113713945714608686127744806614830711085080131822427775465699138134345780807662037859898982028883969898313570648002858489514326391416095935798369282191978685097701097730249213959541026812938156359006795834146355196065184095385570295208877963067801880559571359635812151791201061710607925539882953514307960313164312911066595056093782787466982583233800698378004233111249503162076309603252866785945647454370514181760225613823051196142145415978933797509193311681522574762400004544147171190768391850042075965196080362535687665768891043322364841188058429462340196527636888075700437970483030183095625492870299852694678042268714490182966553993328959603802152376665663042434504393627163904086754198775548530114838199903996982762610874052276338005159208530029129177088967600716264620545999391579589739569501502750118579874337860433383379901109512878221395523538739677691718173252488267085233748084839375738280045914168049312110547872997908677840139498955550370619888301353796564062527181587450009177862251232763785183324462264431556785234453645718585512415295167572321912996991004845456282665269508945335725612070081871944536820600557931896617833120574327870461010589007851661094330715024234540623353792579208327296108805963627744852310831296716855946663322715468431221330765270120981478493966881216882803255080597506983211413492893056838024547634434560663890226769823382778789803430135233017592853583322277689327153407576606774716970139903017950705172631153850570355673987210741936576556526519925071682146556311603647857455284312918321844445751079929998174654038166221595085947133865411870773540641249962599970893395402530217283381869930758407006269716080649123099833145614664029627620646331398912098737477298272532278085836111057599278813096527497866369369302458136729928044499840136132928112523494818661754491097305381789648170815460052806431876180759897831129289726348462106398190843463036085269467210233415787205674506478034169545114661970452973595711707970850323512992730966883969113482637432254082823878226939205409138740489102291005457083735465979850439583414574650070103630358410884256593304020666883045182414144326872339843177578372940267228273118063805423996300976790324517535625766410309328891486908042803363995467934392309598997244329651298966606590303606718975698118173237797488973296440172414347491196505437128898457029032185848612164454455456980840459266394317294077801482612943556974542945478497579285645756473717304065775673339202111191211519161125085266252445696435025792208409497657325271901653245555066913846432916487706945555112951667562961268828411112407615472697208698888065119354982490083272144329103469639557898645012763342313850632966934383472827395591197351030664240393309528472745429475593818325470580788841336787411502069929146778629961817420361231251938341965170187292607663135861929062131248262798771215077770259845014541532285565088480673609973224446231507353689251212416760950959812870074920489145584128037856646163902467412156024574150061719189856497838276809493602716262904783941469926064993829751942499797968898592726790255188393814503246356879002268111025313850758162397233955879298555612475722932153592967843196543120839950876591652505341743726793256627896817115698482452674654556701809511527343913090793257664857415442817413556959538333584390455194537107841829838919225911365663745035541145679867923000572517087234220910579296636962287693688742266235928871247852655810219405970279631162542103599372124059569980736501353066625934146814240907522596457965579853741654290784917234575940082326413201819535164892122128970031802018667055918850086523491824166533670163948893825556168367880169705642836044595470740564783848179174884733156697353113850804259681229476588980359395029476511321862911362765363882829141010184741961885947966935904695059395183046404533370414986170077319631461769850648691236207625383035920879762387176621107268153834642067213818936894632558746555126310920544160511653259527970214912290739482425598731738702707447495585962224083460794143268794169980708770890079381553376336618607478977815890279016345058164057005718713958935753975382833647242830185855053802886245690319189117890892541987700181984149121667524356659994260572607607432430784020395513683629192052067480944298729367820904829385033944802835196170929729556698576759086013780422736758606144855856990179548722855671160819576176042208212352730854889570878627908003004352792749682317634752685959046878119455525372476302223235080151761447993434280191181088061109061172774883002912173222668315866255104730167561833447044947531907605270142345562045698768598668783099986441153158867159305317071586741944133112161841428655460011587405695484266170859757837759973400105955871320356016315478082570461035027336516690591165955512561370984872547455667635732329400654336302201901851066192492652662034466825747065781248792536144985304514658308917121319045703822199305054584889844904407074609196451264396935296606813204467229222066994461441095649075852288662793656515446988033904957352590716229838917769742892841844484200411430277314754974332932207249818856424516850389080964540804045514470077796547207879393314444477855803776824209391231580960465301726671696734582814517187380758857903604861899627823992505356715850101215501280163651318551777095066396093733079234857154782082751557005744275966664801620150306838024601539560813890164418324251924082174638569423543137220501425010264769063532237666681638902089864007020907985770276513072601475852626835691211198160780514320842931663451689531853315345076404411006032214723203871527952991691450611055192520784380869488472888396337495370107751748466718858446863160937124221432217302348103245351981983400053149057919386298479352453535895316151702257670086794177415064475420524602039408549728276767176421476321385591273063200249914188493012755734799822601042642592865814863362285280779073908817318812295132152570223990252037722777030141312851826064092789089053876962388490290413076760850511572786888533389135672702098266173694887510605227065302790742895307603248833480490319307730698470922257225390342080193481518042559739507733101140292213994117261074946577790260371221115523358686293197787654337583430732021436631621324201956524310960823866545802344918960498787057088540441643575216617052651510345322003199701338661002930393380710624234963455695777448232240873037246235370982940925820999498814824025069959379775012652221382449540899962760959430023593187254513836345542027003192603522372273116545673528067153683356948780838880419671415862057116059663315749707781888256115450390650634147765346055885482880616957178561930581995060739364415591433793943418934238325609878945193282842052383249478344740245295927636133668918317160954550250223736833126328602746327971171408075311464954586595740028970085878839494597181312243209692406909933278510585724786491703882444879499689427905034487018665449022816859335691189815690583300834225614027468343090904567052663917256799843569571353784339469334002189554064233433065933816794077620639250157555021665978214224157079517900911310550133902342535561506451040894034612416009740541040895210339389741990622578188143584232691482925681226651514294729710268320890562062787803585912615562958362187120812114946181468365345663865830050915179890909593190042591625079358160015363657234378019528244209473997275620437172952694186966085916745634586574135833626557077291525640770063102338383569594537574544254323188403168974431121476846236140034630364656087328753461144914403233264391760117562623626174905018207608598571216027073368124540731319260182018122995276490298725987336515147364427447812597148019276537456919510831315723916316694931675146546503887344372488673438976481575616655453279384650259817065894194527534540254579062697493399877027497547701994440575034590966473569845129995866652359738317525174957327142597821980974640128365345085784167382103423713990944020536022333227583531630456567429403699598623388303006190362290169556423317426525152752496572980134647101179318724151447708836827826170927222690482646196554550593177960965174681138117848645590188067787431631519188003567411293097025988421463922726957628959299448226925720484015671579341704587815387720787955482369494955781212041746560008960690879512109409460067323412950984504000258540657577404296047190072780864580196438527210971195936195717633462167232911253013241761082478753238466105681743580889877935348586473637537148901205728883425885299836494874109748192734301357570318347856716728470492234473790687801101492792754884611593281447868909601118635187405778711391611285376938443383714612091408095249562503498745421871701422674727959480630322356973567973373572025238755076807651220521914560863022319002223159262208528045707067612295051816627303391735047781317055284267480428563130201018900493226841920076508837986557686234761737666011695548089183073839018831900225485899775439845364969769776202741014442521589373345757826889017194986267286136120196895514004642004183789290488011962474521547429952111528433507185961805512086736968969225973480666119219660847429396645229149075435702591462262557151806400046829849982797976887478989454226544772228697362051696022960549613969656378916995895316772284497475208754645618271800989603663476604310559180708579030269476029232862898146230657017768942902391720278710371625926977965876967739523274808225699135494491805012627939698157101505532336662465477663778221975601006677779033303242021420750555800997015658341015098772829246967505709885537947762164277964230562672448840433212136857152263424319990239679804756594743554183180514906239949216839964450799157344868305183590032256876812343997376748761331892017434167170584841662635402997227526081682586231973381151007461727316765522290929256527431056105282299316519402443841697277094689940812868956388018810710076500488991756704145412025386221027211586802832396960595442903703644728400992148462818634109883184268007185646506510854993979139864078433385970577830378567922622454294598357429465947312254244032301011005881599668186047392141538019850813244857742073626494365425865779444197840388969779347651307600858588329004135753564296799166290310340159064055847204543275169223994450691322250780909764437364633661413632825459428134277135445522991437186762377572645419765126764834557577184594915944480441020715376526413586380862829085352119356207816922467986959767555159219539881673415184002628495113278229855467667827095990099833313798855768035487420624065442798977070241596068107108430879206600120435754112860426455155136680917781087855458394856925093445997775142675159246159987417556955353109373583018334193903533544458551055661789126019198618210932901538170317696847799191938133751478310040435832252008291295804638185795134488324461804211782735568645017035480871087267763529036901394916821857948272122302437825967797494207250127276679963106999468483431386033887277146639608454128682962923102422964802302053937279598802166931951025657588311612635859182745882839293620745181608562547621944080792507320170921392913591014779987514928262653891429856575638582906522373578003923174810400117487639048463201673141701192999008551893322745679924481413833969427813701739232112724507201921419458205724065706048416276698702986359279949020057431823562502975510801537472141010187008691983180808158725808960619859916875307542851738058857024495992013628710444978323581903901791545498664447077987827216250095075095944093789458829391822785735773190860802335840563623737256612464730671698919303380096343554536702300590469868795081414906189867980222715711778151971109092507992874056840767008208494666728002218784871889018102052396922961731292154495813520594497908433201159777293940041494891242985927339411989379964017916802313576594062325066584958798877663414792837326177157838016491911240652049293245800741968965663034516096019171494737478730624259018965577295887157908856880084579152996329848126408329503556180150988778509343511136423804746599242892080410802240521207861234741240104256463760660952859460762707553684354850295875635684300792561109249598601105471044160574975559641929480662852819916195922580076748884233042529310503173113635008356306667324957551556618609426479092186975851605149629841778858581400794543648129519772186558800824230259782377871794241922687027253912141082490726222456752567470745919378500039510878929348475901971720066890953336107907767303041250349820253616211198447929769172999183298957399003522767143411371195723884304469521299645638299743631091002540927408469830773880185589977619961794274884594624973510135521124004438753091421315008703172215179190961416046432333226843944444296017400609244323559070446825686860624326544780427562718937772224363525947634314102506976727301803466186795001508295810558334766026788142281045167435547278728267726602538894043635975670869849985285183955956805468752452797951929781931546899492413235953777448092280295647517183947421509394353254915856060992515593677565911279501336453701816578388345103177429363540902465748635093414235999986914958138847101924518283425821084710846163534623078162166979038840073005733610483996057187231158230354647794637229566925653130884394239901059792727593664596260664443185591960766234359957414481695916178905849739829873408475801867843996264995601194846410791389349732314172914977589210118795384266581875824082532353352408597802829351758520091198854067139506348859808160669292119034789773271791519800577490104162608396331381156675029683616541379195647451483412985275416315538453768305112057146711420864894621638581577709516999365580636830297167193962694732053363363286381071549583175090984129045213507844401410182113848285423073671075301920267483490368242388789242460714687934869034517711601231939791854905518998431059305733006002356830306262961056779387081158466042958639050646449860565811976027337941767409196068585510368205969494473701018905766843802586578512384375244763380777138953401297467594120415252015612941126012641540687643886611428950486021438958471358349980501998322129612656339236300650079350446780208295880849017767545992603902497986287550023289916140537819268858025330779513513235722143616219838240562330132109538757224601147344580170802471112115099577777728681851439937672960045358161905513991434011030118693148083543260644327412427307897309194381777804634246446134537837300796140103037594909659356209226003079891317493688363663318953716632071306720251455614450436093295265078592460716214062202465634984968445736380927055747949602292968871852101462034611971538497828033503470075684230991561339329935689128455277678783602344334826066629823874088579796556001722351190405020348972128816227134638245634256144888208407557586397557143889681154103076151992701101942567853920596017052060680525534091774112053810239760353015380868101941722480123362046442481502705413356711369027754023084811446503917894040795882135173073875003167586466745255148378977676346152822533522564753902717612951560428283516311497153075319371347355050165128795125898026742188222716226999314781876594321922292704843644874334622839280398724353477857505810110554381485725209577964412926954035612704298486829941165477327286419623107834257680245773396960048932948779778939583576347007699333222417992922431114502664371824885229460002245448054525629074004968187204852185549130141412158998241228181710590494267450437728555251243819745665028958579006190827088853949318431045132671111935612259155638271534333230432440184189391519339520594689882456292613531016916171276554275382370433651084789929725053759187881453754164799689982291460576200458899704416182248930270029418858022829425646315072828286580140467335480196134477972568320404765394532146945761663100765187570323528639316425644931502802255039157571141447819172167244194856047502926008925065911961458631886711936820533628838764279244792612215483434910051126182606747439116682456741439922258877402627424667661382800746052716764199816105732218122871317270243735790983010547837361289416322253742316800172807716949483258427167237896849475747502638265623308307063670300507224805977714831641750309843813915251482283154216381832510386328477838114586071516439183924747134278426335855743737214533096748911269396413215277944123232665287041668976350782674980550032755819153631483093533568343572920142533205554023957654694959344452629219571929300585607006768414522930205027461113962476485454861607428137173506201519696733925004535634893471758963627600017054175258245039992440232350270786511061068796630664102154192565398116816289439434673100921111929522049709009737251151849715318662803502470889207153944854668353274940873018861724725580454672870261643924662465594693648402154960518894496781573991214939373964589690130694590052927172084022798894592560310228629610000902789674203000106215777281456131205234511128641862068111464420248908059523588505535623942925997120917994354209044110118781835328475024173437841155522183248405381752989931412797720917193913619178644932521400922168586221114040889260035975194402902120125682349453768633734805965469544434863882147896803163092255125623625238713969081548732993068692907979576777225918875011310159691244541820308845232556154458451775148808837312691079995990688109146863319245142621026832167643775159195660776056232929509087998458803801551209040049160854223310008141972695802427209824634871380306243757548730308852876135541547880835479993450447390203425240454994660333762543107286566704629323124223729540485473929787100574403296041283487828304381646677879294753391777119597278656181262329066727317650608187256113299257792172327741341530923991370955166777336976010965768509814340913686508494821000801440294906076613564626088723744816176077213668913680140243187565852834371905361261070635320359320374250716264980451035216030130934034217020696166974744033240588777999620109525478192156476801670191561499229985613477537432408049701437160988132378262038942723986432634459446195992881714316474605202500746597230579537399076008978822162323815270328401990336307377679984034302308510085615404817120091354701886187631434491578297355922478092648539747832295446724912801540639107287222306695174589182319775451224438506291257670331570329864334382574317670991368682955098455312726815593361119251504133003774415851840781491226795438370567984039183796327077834087291944865299718405266655017914511581750665193657033150995319855676702670062143716038867938372526089586681143162233865756397511044135813563194059512624393046127856820326901937531703925776785075612775277105985761461985119032821764212031422986342424340585829746267565030480678498088709507136375948396134115325619025298642236667439297812911553927102698224340248859644345001127235300818977969947254880570635782339307431929679302464311045469223625822769966719657798620546051281517497982531146694239505972861263503876847119174693051197555919143355190512352954581701587820083833498458906775390335850895119265080221048026705971500082199526270940635232316767241460709835835218218659987546019329006206339437889801187981581130922466519427868819520431069146261148628271508735727793273970889085891515127742655133587298453814278731483352263761489249113188067562766578789857501470524119021992429234858417478436128803658476382145807701376598041776705443433528350475778281687551243131521179569334185511296520886248467744935381568484165252542135332841442927111021232609739419975990603279522476905967673373741897255897028875063648032575126728625255659848156268690584510042281170870976486313370086628721497781821370828766747900810142336564013447996886297293782371233056695305274607242057572748396596579554745521187363213716575484210129001805746396739582867609538355102194297482440337424175940258498880369009638829698509076121672718190814113211500885204730876551207529603805204725453679328698264249900840812845533606379055328647392509257399681986738990206395410423998054471387098435714589182369060637439661475282877083780414367977812029211424862484105689366614041566573239177097544474967423429014519059361009389321340670387279143966423244109365512844411921782521459651202693068045948862755643688155153410445066671431812143265344566467525406072913233423492909319624812748065540903019947602782198739653736805263781714016629898450067360905210975520544038435608606410435232680088953884643363959234153704804843265133972962296490013809747453647407736731383137322395818152518316824520118623679252407494131923978960191165574277911746582555280159184998453392180545203817381172770397336118981603583913322228846663221343184371535631481654017272060368461280184278903560726148776956615690453558913023676535255750793845291329077469961883311543486081523738958213488264502650889540620308843544578809085706198988058192397363008308472470869109349561382668106323178905059191024088606844581419401083898711335711756692516649952087193335632222824977725730767305134263095744376150751530571917397939700736039311058304587982941012128124138802840868879087096551297158038161000693290774995008099862665328755128061265177965566998447465229035838028838918579225533719662246691844821499054040877709294333649790498237331597061539950005928441512053879455626646708448582697343247371955972650663885980875449665059142865961675093645240017220958080654837093875314475652337293592116155653044454539660608361178277313238879679151163209601121588306119355949074763432043969239369810334818660832622118991426482301229430988398856194075539657011064088702147793176781064564625822013588031534301578858397831533975357108852288528536534575215929592738230846172484734984529831207144076479714700414185217236474114721425465252777413803238410717775371628970988011371152720939824785111424472284665254752560693732449348232049316475263334985851283451618770519094817565604113195394292778663106357411331774203714270211545189840491535071409100655228765589064787828516092950658643566390261427129010953361504339460307799752429903900335836742480980614583243547804715386174686120425008667550855735654631664656917431258238918255453163549327826281115396413703635214064079897440299993749604946791332135704284886601780778314436669017572890820924309841460844611101942254239923191806121423846001112798697945410679900034163457468950874502665928601265915980712801860378452080068652645300053236784520749747496144355422462923513156720025448123064693722716316366240859054483701018340194980892309694998453093637681214910670706414822028087801244876689862309991873869232776304947661508270968054833972738620313430369572090377797797291256801669678596926211111710264486813868467722658278233479419207917273506016996275676994134185094731302259958036703249425867758230502324668662515022796124595715370180843238843167917200772712937968425564789445847288062361804987580406391425751650525130427000368299464616420519464162504096477719552206528568275200343714440881319918420536578366832408209508468349108132328282352924478324625334555533917637476599891330127608370796933667359530356411356417914515152435564298681487396174699713702928027995408787828987192577853246240162777065071728198920718614939644789439619841961252241951028254340828858255011182324375191733128911577161003532439511067456277259582110392997973408467512560584839507755833005491535721964157956768123670890505827236936074603479070214773821572336279704856904663417327289235770002058348786896014452230468437957690471568592782779308768658776241776419691454115898781507213801121363387329677712680692554149111120168004554680809767015201251604968494783032462339161661918457069623615661075230571112687094774383319711266380898422881597178966754844313081492901889125419966966290859982786926491114566518487350436795709725427355907594358820811696402132465630755589535885575228003797141673736610675145738536521273700767537562764233098167577890125070935618857201322108953841202519598466625391450403852040619500451358876218494729473736638185882531821697193047440469644935065778973201550814207586163478258245072112391896026852517083234279378283285622903082767107034598022785143661613727699348477795012311717433894950273871595885705011184472571746939949864650424462971192901267240677761557539818083993957501940886168442636883559900489330506641455308352230468061067779393006084692010844373531556599546927829490232175339629521090098069455433117487211009766997706903622401710471081984410627420180477666414853917145901290698752209233181237096665902771324872758432682741925893902833397268615897382278702313223308066311835723267239216588674290729388784780232280101623039730440218210710232062867508389045784901296632366586894931289045928700357699605686996321651670032891063569838433583875022491696881777723357177767995739476087842615959341654919083718064678220908507938689960781474445481748938446912703907704118980851781304567196476745395755741767473615364404660630531516624807557547212438573825889582236289810686472382130923364262890747252122517498088258724546628421165673793842896795613850262110238823935360497908147620382662549879595163015753548261001906083560232232102356032627144436644352465488322393775120967539121992410269676241756136870151472592734321975437756927564355923167897117712251530711535643327907553180959353069994347780597438393347719621046298370991115448217033404421304551572210429352598875848592547099614664269986291640762405668227716409388392530427888066988328974594246315533983609399488367191955597235493050839081814755790612252232350471714827272461779284890220525199838546827899714404121594899364796688916383965221937504480397258070789324100273689325336138479794230507629021493515106931441873192876787410535937352250182201543950017839032537786916685598809113613261050041197412112586335528922197246544236531199332727349651962800442995111729271858311820738830739343612711403851840679739062259919747200672790589581449529595177613803529576013834340278325093816787612677315324847949125284866278298593289537026256262068001702982445681883416823486305266712306882544938922688655329192330678067164213383757272745305225969333241512831123357520739838780893941913880442587816062291321795014450055468282109533187479534688031955688728631445061302983203243638457294584955829616019904448644854679497241280429524068913417283389220688903876085041658244823422687445807673668824743248850533654949348225563507213243853516924071455715904353967108762491844596750324601032979862737543256248389820872407959268087233688965645165785811624661467173575016297889891801411556885088170583599506552975955287373846639679649498105263381851019186008366855227726514363124729242678950934604458591984778381319708960020961473274742295608142819755987463345699502279924888742004325322474748785594774326485395265421784158744303215536639211299331541754523599395702057329457875616267788655001415338737602210095637342132473727594585552033188888770115178947948739293911331310730483743556351309147094017825395456871104868143340833274812450317837574298612914233346872384697883733404868055258202900941745970063686553834667699678110297942980525673849716577246820448234017250788416167901824237701130029253382935755866150546021299116197529979815516204935299686072047330429881815571277634925079557640840166073837396880555039616662326297935190230018525168153156037546043344868750947077539506335634558907301831396195600264673248786574575075634188559059087237232388770822362095761454197179489039020882027393577480793162116281628847120705253158072939215431865688860196911264740336037280822560248634243972030336341521034824582049640889934813483753866668045661815994002866245841264373309856505357617121376415250327382957008227295103189644572540273058038044277136353529022503453811312853301218137316348871707087897323609730533856141349613482533573207036780498264711963337501072130396124302132818401694136795212490791477690778826973364061681750327722670521209163664120855059461217713089766249068625593255720145941703631962187114481292368763175332233656219716554782444482022544984440958028998359084155198448526842555717212007681082539012453778970693823793046108625373783392999522437980869714129179190316259577797013125008041881153155652227546392520751016183288394831175839817726539598074764499209747178733268630009423080667200411254612328020863412806179488010557160588899423708571995799538425181879245838639032861479332764579913805415095645433262085297341069200494334854878978190996183235713791975016145003909780924946707924773857361856901910147333974342256136751123426752876084925567509881172829365441786672052440062505117950748072594548851298802462292231168538893871458161145744401807951123233796537944710997233056382961597393123540190087896141553903715725688719060293413733825461815955269885840746647589264532383800023043290880137731358718001013233642155755691587732304086394741821273772115064526054891166211452151770888797004989466017265565816283569065919026927476703326416905798393017825006570276996843161949279377647462262825309687370428481424396857220939139061929031841239723528437429225024017531001454517539715871754253822742906513128270108767056018945513399541919356651035887039360350895658673035394587695268914419784845175506056068424289282427647441490536066253029098018737404237954043265886691580736084497482218818744808206366860619527567952336834373917460783345895619038562694987656658913451587366797401617000254681041451818210956344719916547410406172238791271426469729587919180914906909582008893028205067723595047733272819892856248647445755162912380381393016748215187853121043518355135425271681644262230074313521820978858237451784542676114048811191594148023078873506962812042775937857048099657500543776075870837276110998750116239714956703763585819193442090580428751454299820590047292588671155616899234663613148297417081738965170021896842114358909081550158790152352419372908972848441188868743154404192801233118692537938261621060303821823430221603496407838838918587532997951021391799718050231895679503832846142887254891132346709005552956736531382007915842810774428730568108923282472886033809935923095737759481662588156101264185797412694575363294760965906971447454524272365297273048117642740097119165919683753782194043396433783372055449890963613674986069332046692576102444475563091079855557984556323556432460888451656374510955196524733281999141919512046359945389234498860638945218878136862458979583118345608984453050620796251959185816348420939347929077229607599285930673592918901998267326530453841446362969154159557138281306727891401722294539346794134065850078367981061283530389561106717212254699836126381798819568554931915035382086346480440874760234639516189870674243252911292904664403620290072929647191145951924942164931693265942972378212167383124424358443119506095276822731099359341720676593208119094215913695997162666537773209320184794919873798112786654113302474996118732949366158831218784517517174445524398910567262789504128483476495515318886506405288069900867476782908210165878391216390580851903406821380752382823142048113979710044470861601426838831181105452633798977453027538331357876478874019214561318269193872942984978565597433088404233661368152508730662045770073790812769922434223482017328855692081467269650073377972251930066396561436700975637205294190914447002674918481077947977503444909610560344782882316668519815390466908150028119748630441907095939170885959962827667129917187862983258181022173585625098132652090409891805494083006574234874535310688860738058845705115040079347107044569855245995051470787056852523768429214532380992103543987571956244644254156336812530789294864052386561042637180450763973670120102772735821181039393517861143682311510451086013865711053788951404587029791004099723341210702216968499684867359877170775222635810656856743395449217694795779782662100524011893428168390028025367585549037616352682068054994514844354955203613125880105001836774290102866589220018609359030032671648273407954734694248931914412663992499903243621737702271914392772738954138749431575560029914804070627674600746096534312533525887306814130782957323973892870403317715834997012160507980731865355849199365437192445762625676486391513905539505268669433090817400545140704429234029220566339049319698106553369030747475160693597831929182287617180981978552937468238820060443861756297490380963663578897648734344433912099656456916067152966501921582130552322479696666482139893187508034219694440622640524757078347445080971512020595211223257518083428631087129721890988405243543012455953555676708823419412574724681516305967815258237941007749960988191923099728170437299507393401147995958977089806786488794456774815554654197011761021577634022080153438760022564913385299951209653393165725270544489252353358428847067230605947659856755267013586370521582522364353534119868409644409699305546350589050354745148096823360398723855765401295212160364722126011855152345968827475405928766345450522044283682143053684256023197833100935459735469280000430276711725380892079229882436687121651036381060405155642879574650497076725589615578706533795546903477613089108892264336938047711945633639930739267043709866409426704337630583525320749677351987255309225686991238216452601825667229491448971288653402891263847192607634925190066577202727515070620426275033465205159184684371910287406539014046566372690563895757397819006463078224700532923092624912300394951803467089598981808415591470434804670342119942953765144185003791812903072960910091973126100590062585211309491803499985127674683631241375931636916888036860718343168617471673498760464360938911895262204539744095204081450683366507681706398371867681910294407909335132565613080336247253015754742412967296774937423663018183010381722792484494557342063237963631494665075467945829065212496948259931582271041745278371160288832433157341046576169038389800195543846077147446112176685127569125396735472539891830231217830316742653987095193459102630229072394979963304785695615523210912375714261077157330393158108668466533109443391188177208903756317753371823926189434942429652749616337379545734481193091860977766530574214736344900691848540227069368306974559449612070857233896210540880512417497910275402730993707657327851079809911741577396118791905569465114874934651677201257566458334450575835140259242942825332094049907102530871508775614383101363280623149115493178327288644353485792103813352087654871045682573669534177500264791041614478495432445915600769973565164520407349605466239876799906806879666778358638382271280436899043547318204974638802460200788971370159189821077951381210523415692631255307006797578240372299620946678608764282373840145733904915505706784811580604404551037713326201392984189070512560969850267710841456199082660996372143352915885064086171882929978136865521962599820018809653774454485087453556944515505282170084792020050756260876978529430233416437473636030603007987732514432378286232593659946008301116387997991805299710680354377281151242223379332206520025105938085922549654126436558442734755720971938613984558093768241569658961122642660143975494240738787097178755740807527376975557188631190986435026685036745136988159894627059822411730002431614369820923791088209348753483655536249503694426501762466553578154688166207075070057456542679202002741162335121607806227701817497140926550002806197092954832093009308861055024618768012923945875589920622301395170937948764006195474025146140624283490068417133022083929938757150069457755194892355718873973310498026400972731924124234075925851748125379226896846195716261652624280949288323929676089820761820012718082119696529468984515876740560316616858609254647840687218973748192120761316676816233681807101194127975807965728626898599542919763115597631267396313825795582526462673868927616072450717548286156541162160701698161163449547559817674698198021458029191166235670804585224388015934762034346718255430378549080581041968024464921323676477858557817597040261471331638653633125021151604879604653780369657155650193894482845178015946567651224635866461172890576811499098211698582483322252548450908177917507271035392558762620694576547316204079898345072223786607053227247647706697897853037413251790602720933911135081849687846737030887212875656433134255759806480291179247715339328970367279112499992157617444100559596776512458472493375240014721945610276401679769687391531640426049828994735987303668410095800136865229127959635053421835936454240753764481166960881708008296915196743658003030928116684622946220350360667452761211082136696963241091756828843069725716470760288455876601265162311949342553245392352460318280678267038634753892330721836053110904708886263208343130896432811355132379738837478898238039955696789698058532976604211647412302258376431157845480524553980635161479399908597826304549925636170264676472219561506692095285605626757890483871107843103741359696112001783726057663076108157102496657578912208605626846423196129560427028217890193702961273056416002992327206578126382511701427539964303494724501491510135262828196596657301614393976959654553416996499015662242889361724979715436685871639326018376104911385208312858116948450039222747949417028002507151319515389456290442602597804172679208282972433130419914158127518302215654797159635183586664208291426194516551762216793446948993091313849547920410418681628501553192439686697802958653629873050744486571082962435734005781084884044278826688418056666829126593301624988211770957898680836927001309969437084793995129438661433387977324642170999451277675315816089067566431256900084871532129870791993445841616967076156655810608163012212338299678122977488159088252148911761135361082970232941125065296996546271882225580414686507577839525665162707589874059874215213918918558895469586008839782794585316322815088934553072285828230257664170409924725620865539202222884146923172313148304307823308749536451514954475134805638214887573220895701239037260766305189536513808043626156019192287862048884731812880980945640103294441050887521450322544243813644320694898925496800014684958949344809285862696027612866609485493601402917607903897805695603991031275079572471329840511041517540414299769952548353796801608047964633554819456794282706897965675654312360237875081767711287599950292195296010028695714502035999592203675792404177751070894841436456252437093218884202999945027022467747007236905757383690936264559270710063462508537778063436224081510968482346831258547242467460116412441796891622828437643611948752810205542096047972046626651620372668069728267760640144996267918572601222085424950905470627268942357850377335666997293451463601504456002721228943264785295763710915791408106897298805087150370144750593544937017216047995461870497182437267832010979386696123552327341061737906329466578052531360558013636275258427665180484462746589672158436788982287842420997653755857294051296726305916992445982774478853429658394348864895923969966536537164227929729046980653625969276275851803073257905857804542471041028539313474850756041781691653945568521791607954601582610206106879854888769808193185651580213679788654569012949811522743150703663467483671099862289010581247861167873103542421431163565233722602200031675483646983820104785297367632580815640692478145352514675784202619588913659554010529902621262299660221683553632697244646136829171142576156864574510827447357115504170786887175359509144605439280559379350187510308291636316858557071386101376864470875258420377718707416976025135010087180444164656688655242706878251259244885887819415030739062619622547875359053498955745360800000021377004692107432777277435400173717312350221838463255496040713558209388068388291897582193099565009185572046522099713447166332834355128020188789340622424343418538334312735793309120134113796219844260876412663238124637076728492551879561027910198080168804877692523463315483718555374155700019814857000221758167777978608299803967411990775158072722817156350196381778629148040093546878034048519079642429593179758304867773083240707020920873961114966189647775503992832200824752280504377520508643389337567185337024379903572670052161599510792124334018724965023772246067377564594954871179914727902740448204203028704967628541716389383241857931489929764876966154951850025167799927409726384097338583327182581497685972638759607152377100341878234851776916864315936684787517290915834407038777939972074788559287000119615488240263487675668371315295707983647696545767883407665800334348871338171861453668075494092526897700559020310897206691634047999279653030954637556543764586823012722264353240536370275851955743077179811243763061602520585604104175007450958078991142402546308985537163848219015838498639112134081199970893148259660749703917510656125783737016218671724299938761092092529864008068294065853460731024711251654226731455402159338481746176492550268151567026968478762019362077891385591916673566841866559912650089428862952082900249262001050799454734582848265404931742674553499401507375119573116424780679302558191976234434574080447923520849708343521250956137313060165098477372096787593988507379690240679691073185340712255426858836260768198192229598703552576910304769022912869647529266059400660173451919387427778137871016381389156945730903865165839760398024055577097076583641347732221578704598532006332402710403059578830114558634374000373792433445691015129523852915823072266427059601067664730224898789453355005804149499668370189135685958732274858657965588872387719228257493779960457053670864723045345354909658385004207461552558157993131276465009890500243626603536005585511332433920214211934584509086824543256412710809917672381841995064111508187710692752861455940757124375366758994013358029998363189470288108195854514571883691082243230973196038058118487550038266423927549171778736768952119005407855873709905499311620486381818899210923543230552181874742643205943887571763554917002839149770905441364261285031592899998549726071199625655887418062770112433014156537434870428885103628827856220847296713304514158160822087782512767982588471253005458231922462180885943313753411794139187830029073475487772018468988494996919641623629887508819899952987082198156918255440610660961395076380469315030226918228445206910716793284284121005827182406335497068421843581213165436685662241051405892949882825930427663939974975895761930680804659469277412005316996342773770467161181689867948478398365123430900489473916316702677076072406156138626876675806049300362752998866400228331192402388606100858237496252739016843073721114639393208374612348709922422265877754249289746335603041466335408588023038883510766108766605664337792112492327874757175442032939053872956644080654864775868744572780904073183572726580825412035595774322183654393239908854536189128482520161500512904434977287228105480469750265203651153725057155590221346115153539645100808492213966165828151587714876462248480770397993241734519044440519707109839075371473812540163413557733540943203420852948020092642858899735823520898173615740130019578588437473856985910342103420270096541592152539796419720175440820137717082472698002872743802956918769960635431256906473605696355470338021537440990306906196572806800542642196575205912325590488198704847891986779757800841644603688809725520381910595357596987519739676356939359165159774589817801051919688620912888697664700994970859540006321923480231649065569104177232044836772571302653144903509216575048914780710810765010173925867358143091020670772089411928126669798223473829750608594456274823396854607135376565439843342735174811588990806981735641214724418577035344741209667680348244965074922606940363750774655430201616863896811750745011548342346725211193191678613342870384011128327472728801209920832696379993685353557197951436619685983908668521038836225264645556316064584469004196366883627303874003155662428081541654326954329948276221690562756856250600577676036162753909449180340679223626928611753574664925671721942065015982967492044032168898819210291513366474917751294555141931430154774988097581622475341172680539855146343593174056438410676026904169176413440517257382238421826661974784109639632557468690044135347550556252736242372285124649079712863660302977023781302112295475559219548825349988609244904752277953441410035476537940043505895663957025055661977636894379853089039228254106139457334004321141298692058636686838532096501163877635703432158992263103329120987956709175585222389577179463850470331046061472376394249702390413398364291855342313413746832080469948523336879599803007499452204631355769569415282226583952457770825902248753381630295877312328478935488120131258803319812208687305790015108480062160615562634547114130860335540836966465894244287516486883720501157203853050348784411207533661578127316471408789364667189772443668628664768343765541788646810103670662210534901680950554102441876901089617823764860981776401922039465518088626261537669996990868405721143470716179447173887170185201649124625239497729763658791912235511323773194137054222292308610658928945481334248160450864556971746766802925887254290975282654985832801540125772687859553351315197459195456145879168560068199927548752986784117587536753594318381032813191200374386954327121731999592998194036572127131372026188170586020559427038208482318428412421491669256946187556017173006065832396587875241402729454468510585615390187911488944771560893018104110215720887504823065224047361314008973769383713002661453950789550808641048300061262146854391945181593738234902211554780737970846272731666426981521566699878139802334944340170580954045700679780602075920633937177417857537509448438549860659665797005385719190151321605369657521825564804694645121371566190944380500128142195436488805923185094889449360408857710840008822506215584286453675667147996646675814024927328283163125529468873091302293591508608784540583996473361627076759249814064014855986312136534716221631724951322072683246506085643398821909819833197141038800149318504590815740333566627955165626766580707252305621226068229483269497210617606405444184067219345292714892897449578236056163598913636542295125374522182733360624395198010105123386996222184279602880824773886996435372629201941772157978828184548368895449880124843489559991226157666296060646289712671928054351885272743237159930220006037205413807403662772609741903973472014441836885572767253486486553330029729220515640033534145151425229250058765752531163765013616191406894044925583889791586363554012252745298259703350748814026720094001752254872699607968131210101079868530879996349100865919991829235841724285124428992392889016637696136653375254544068399802580521525994249613824432056204948962036340448279374796934553165099645735278071328723085393454155579140085338276646667172815079672730907551547549333782264898567565168601421006594489239753613504449633245462793992578124187687963747770577366543188974426048853860294911425345763807020125270700607347445673130583268459163383542337986546839119790979547282125201754003249949431282563120421849105560065824600282904608171122187631857137882549089634719288265871356663383451945147751194775484886602692535390583772676298316877059631792642029213766838732261730188775350474716233475043900770610179935283100175508823489473886526701280386106543886842777684405989659889357213075619153502358462356882259545064860701023828531647551754136094255492445018609441275856589671780769202329263218182635557740295554375792091534432110562099415890338628709716157030019124646318492978406135234208934092941271331629931194030368935865385726447069965652809630590476545898288436289724733738064648661107650430677596891990356347473146108902568574692911708042281569679183791133412357457116146440502508356833525519510647753934973936052596977556312274670345233820142293520773531014212370257514911370578773831004700628542213003197837938265035782460725678659674420409684827325079948062616483222691232434409161356229213744494028614429742521232098316136115549514319478779474774193830868891778408982239850986114422681695854075678586344163182295145909226389058914559840032560754875761318775347304485339403403692270692648757583985462523003891062319093340773006497835270095507481804964902048413662885497984253248608580386048451220543640608529795559920905927353895623550319048167954392055416905899934310113742833219370273994996242949465057913322645823953587357910165296530051212877808880719705249245838692260324183548026605055541721217148338654761645474315385060746451713093493865745000757239815217081196126422932236855095300417856987687282521325442092588814252799990013204733691297178369502681883551762326653332777226885220404581020381936411153547060366569117658181540164979035561279787882056941893045039180452997164766152907626292768849440714112357274972780960438861522394049584094774963056157415047764017231927906171450040728477553056860083253772216042937928159906024576763627435745472556675328574209143401574138330060734656358549030423956684337143616700067686723706351949573306575593378750021495662936408044489849174397516041601888916597183591183963524103472248305066862586667445756912280532902364555540110232867576723343000345588765328145102690230430686907610516961988050794293140434755858672569106517611209361109675454016924064500168200429942226614994501400973491717136950575848248169390784036548868805641954102254265813171070570719980346161660386414048648860881910737044888080473225696031710362667711572354221061255477183310571308615849182235482209749951082496322430788271906094303818211011582762830088566281809441506052981598097902167738245441186859626575595674340819551334823733888189929886117303847895648688326521123674455072026177327560722488156687913628191161258616984339430209957564663073025142625662347802113816547545685608429408853832650767321221481042915068636368050600646745952736533174292445248613535328601679994910440976261332488628034224815601920303380207557690067088068308206397209610775011065971527627398637743686944272615022391552060649384763366167217953439506231981395624631394763130052973985386728734169616037453891918043470722780028676658347885658987281790238339059909702380276436956007077454751320302323984443115376954380535833743036111179367436760184468990854995715051787505069196974404836550692078908368012893127699729317797130286848189176571534742279728407393842824344970024765993503838869287159301021778551057832046885874763917385275557829952132684856350882313359994275116139236853307987354817722086198139967042390712310847488118983930808597530379887055931037013003813032028559165077347350526800777210115729948764272695249519364540012461985999816048786254649235485810431937299519789462260819388957365670081612792571053908340632419066406963287699018666599661618357185176212747863327767178150262225949549738560265742119008018218609666290593374748369835491129969836089143342299676235002301621766350718223124406469307788019312152066113479062883591793273963604535448359249399933668933487888203415385520163145380305599906681759366425278430385851490744707713126585407566218395439255858435143313238294665418479207642588081290280072081153496229934266840498934120681661979752402970852377614489935932829860836897591188088691107293594337446431450477551187855841586345885245981688959823740341715526334646529653084655905094637102526978219239448993582405857715930800970606267273556291531271109014922365491273561663933813185686622918173035025438830384567602894053142725700749019477095097044098225077795780028203214478868001849115906014209638567900862923776990871687998287255443804902423401004524297293082586494004333388357628747216169413008462162011284262166745616939360990002305100143982015084442011701267532726981571105307231737923580174407828135690443928779170951480494159355431529063622664351074834212507428815823684320366003435402567924042310274920121360566978763744139791359132684500721470187385904170395284230842680315103008059670656829886674100996635092063123547243782454963508084171745205687091755574313263561734519814050888466126454393224214787058014642674696687257904425320287312942181650913740902005930503069360068221386577904284713437474510211237308375095221333531215933246463750526437288471286384580907040833955101585195775742989570073990666684913639788247865489712443099577961989801291395193188847918149820122453619465125784437248647286401980735012998899666651410353811866369956312799260884237282004286612876057753598405077465097381027496152368410235076522249336723185895559437399614734427905047276366552442446345766235025952890122540395853885281565513476205887212349046140078051031379560741946327012150297616646957581811529863047979865147885559461306907241012568095138174370697394515879255594735204448803097702330065638939172994389366391761066267563160151824780637442653113432695469083597991006506861035127185261441120523747453854110798521657491628758720840225906495308476781892142634903128008739547856406143584223520977652305661418486747712930469707319858908265517471209810986042781810215576947689443958872933377939502815212947016177699441442894931050021692965717140374030429854067358834384994667007174119140033170227241545096387453073316279199760759764110888711460991762247747942072377975478158012402906734522119798319104846747200210467218631586108614881407228205346323291624521891614467409950407978542192787690451796991341061838580815448398323508269304540579368712860572320486759314649747897335407886299169941457493020177979657769601722914343887840277991787577996525552890141944456718777253379946598438611126985922835501852732762455687583256933099635097421915372575004597592792824500625674533156026659623523881097455035743115505699068881604722708642292537859818239823820276693684352584812158670959732590465492553808572745875091829611249834887093405127724042077404265570532629330723463911089278285954890653954295199114936020958284542519831743077335769786084236267769653954868947384106044009894084662466334944831129227874396806077705993238056331207400193308845045877784732663601383122793182905702581914612065293391440649770980653294725089678888156132901438795345199842036092993975349617383326739920113901042282580167908631602947006797167078237186501679942030219155730025354468291722286380917099593686157434938552004681251861590446661683787407081091246991573852184723358878148229136835093814242162298185713829755389428416979150215270285396877344730470211392799543519814972869827121929496633595056365931838610800158410272560241055401440051526459626496529102558042443125225917626603515190856591263078699908856075794602540021508760069112360835363169586635712118925824097244497609245675096245045503056443745157071084017074171053188804922115395790224388290274174859214369980975080658468493486388593647033160397622532282713819279407083799046886417066745182147301292673335395080932735265565933029929461913429265072750131357648498354585090794533556192554085357651768936999359305965019101135263267183394039329257467040145474138592298860041722349200113063981287637993433486372156620433646599926553856843249788181276005954134713395428028135411518688243392575842834162086841874751441505859166307167058617222540844498769764668001376045212906729525602793240259380102917955058849857180348088011482586389087430214973659882497078380357336860571435792592066034385531642051799428614982389819559177830289445086099325302693097186841902457244741710065181217263885858564019389125293801631723654830937737044014418524010825429648413400318315813097031099551322273030905173797382972251510016336290580949775963624002763564200964564650927642335876556366307046482801323764215736361536401010545519070065676147782085351812082407130295827087766885471417156607891205440958330156607039046802290304190196098764437736368061378405741442877882569249623123640563981825399469264866959312961329949176097567425961196018963325729144856130773208713784589402210040817164133156771582552447345972658308965623351410726443635462320990085040609150850787968883812394089591071368157781601457537530094076034488294103310422138599538593199451754564465258451155309782442001253747080087093436681943055621128689315496956735396970406644999326636370069634380262224329180990631382618886859664203031581333844548839132381322164643979044435690314057070786681459171545469471340466130114760686189176107912785607829635136437719620057135580696177999630905556271219873652380878432454167033151793819969252428750861147497766058611537061161260520145649896941078183932755149942542002552235474292872159439508468076911170593183705307633153922004522526327257387447247915808903544809495504825532285862287916712408702710840465301249465646247456329441773893873601819045509454259174478904722971337878103682149824528982246623827110844944663641128337013992675438254025270953790890054851818465778258841804394124875354328374349789385682377504794105830516212622153806853591070161262071692083811432667362024631862191462392304526370206254969577490001605279175207188956449188060375295237711864999994236352319199369580745950152578034107734806376239998177099762983994217227337364667551773039116793999135617940824582770521954718144240323881822535034669785888614933628706615718860288049276715432289781903421251553411999842066964610919342465995629959376403825095682513547621251147222610392049272541056442826794091206945860299496175870638465167088924377427574697231885578365640263405582239530387773014037494132817189755083683890599133657511059203975575564514094189294443954147132306573733605666078082090506835644940741092395473361023211765694935394373774073472450746596863300747927667268578958609129011264946504362594331392195814366670232704925719318224023919088750349196310771839040359762801481099738493552646398905151990218605861253751194401077826324411814789875047423875577677470690028952252964195602096658758220128554955756040883343295847654583294234708932715354747771998492181897494711166134919843843214247234131043575861481252407221942553882272427341782753030942626663247509867394637137240678776167030074882425355242193606954191594011274927932987785650736574110196727186768003775944860065825882587049203992477107453721871628842559936863929465173513971554114814470315581898156188916969208866425360444958415637470136439326319835951773072114921301146713571458958010808713168688019974499294987370183545343260593512181491265056398977311257973345000520742213078438983456686931050898054052260244888991482896939870066652478454465815429740277484865806152790936091859061236508535357400824155551231918048401608411026107693114541878429995278569959000536188431375383522793777893752592966843559412093715745767064708119886136974126876907336612719368193685396435925072353098458953644805154094996825540866473683331373004214602723804265513618630155237974743142683835244472048289721171739389654425995376389784634336642845802780058112748830551557143040511349423756794157793500152013762195445276128994335676599426241057318942137423348220112666026783869883301217728379080915848422001662210803721315164053410954347645984528136607786763341538620991607557375681714456769804612326472060212826496552136977749739136393387094379660085883964119193439555261553281451412845156461614622249303928497296233749921515764652105177914308817884201627780680022286536381753512652557395543504447842858813720958645910764448527664336442667730226095557298194486437173740728096032411915470020647199673047054888215719842695613006981812481766022198712076883134296481308695812097233516108859484726260623167746723930502172551345313192079960396643232886352630903366026611039188854551190178652510744289540585092187173423486423236937347067720700635888930360334024778431721048775878914142215147947615332485503465334288728208286390092621628402899937172209152132617719548416801352534237218190317316225345041332341407936096391076756549697794747265142200191146393607798853327873997967773086311362590051914354264052199987821549807519109923935854450387713921596091123549054442919680200149650665814234765633537210140549042351211270074449328805938541868303151301182155101199380675438310840271446463236947632224316875246195751472428870153821401648532820216591987122462002763086685522828002300748502445056392439043721123837084884262784421216026487669717039280729509124855451981671562233141772941177840458411136090316367625500067630363345837920955077019629217101446174197941924849961762018777434806737494529477571095984714244892167985631019712011155363130678156559347138053052075693328242040367702695715382811194114047268079705243517885705148187828212278118188699890270624492475129515825871248228799514606128151385046591459242345383699321301862125791310238422445837544355302837270870457071300436181301783281347673568740147884551107670062634300399461899853881078512991122665772052260890594181410584416685070107495886089385818875374681065867034992131855681742552873409314701365843426768582128344121456210323480970773671418101859485706736309149918171973889838881937570257115676292445633349082452927789897745359909321679631512157614553204788945227028269287536810845467022520175047496790053268808346066865239987654939213675676021507018647062804012903442264259761582442504066629122666120417693554790066183637925799449896512121386589833454029100290529387902565095884491497816303973381811272117700032132229785647980920780377420645049340792986209474642040022193533489279673264920571761132683782105745196638614789124849793791607016882304960759282444850353155921621057689177068822307988732924692707415618242690918785433245830284739343475130395766486871930092430672271892618320132664221289287556326794621153845609882246671479367290761379613924072194214659807978570416212724436210846451054596467331911442754674495507528108591279483897945386841845438087426386691605719202497259578774645572694715333839792611283063313560723597816678156782557664711981829068528461471561149394499657185213049573111454043406066606884932207989996576999305605226965589365701442749637380073335385060581312535211958393816281013981526062919602800845490776301527073300069243691696299628682840721696809902213792659795523085983528243044939891799595596077949050752892046869309708690337802515051579559272108257799478910088682409986479178296315158074850939126901522646267797307605303388485630215813550916952986491895515578479617089787579573813442168480399218980545412738745756552106213063768665602720750000758500386337975736131755662260690440283803256708986085114744240553994699745353400868702997754035244839743693721818775438667568108400278617183168184316033488383881213783844560600080508884399141155962129897785446535479475679868131090187340246762850269260908541350369471031145071958777601970718761405838243834355697912085109979357343818064638368518896806106300209173956273788003581054497384578343341738244529035659779174855616737790454931680116516863184165419357337134395809267792469516137014583731235148939172357125008265496994816181546645748440610862529187155577884010252446951666827687038821290381066036358582663013384345571142837088991054222377312659308485701567796891196351674863570129999851125608486092585923078907367173960071765394954322471587892997534475064854051587039422001785446716643512112347131138308225742115808238900466621040450142560513325677267428292675963316307697805729499403063019450896980963909426597011178093278909147990200168250411151898193499769395878895474359682861129684996730659865410859806102119523954065735301532449832667331350035283700849252598796699500373808792414787039630280386290140922322197963923634780470479138186782308975901223371502606443189648386645313766496549393995287849150582899312909632056524938695531596973946541484978218831174785158754726426873173450615061354837942367332629299716816109298824329259944723552420648520305458418383940645782460467544086573544284749780911469041919551122031637247255122544578981139410314244809414760374262222529632853564516056024881864638272518305010406573214639686024949774105993359878972551159048724305612853436496481962070478962244249219057013930970703627250078667769623721447074636695449276539079364962122454350799105708533627194938138863198294208559867862282339897669729110302188332947538798976736471741909621661590861511697399820828872556779145925030893118323335147362247929806576873484680963066945028769672925781299081129734840324324128942744883405386529111606995907042259485934072423161862651187434927161199073777015011210490552695792814907762952959098708290212289664550164200211138866091838511334563538149928895735347149380527850788450624861001699336801999955014490654792155121247872520988173100577813777186519047704167449792699341793672360277075047662169608735755377783525945623991748224846157590220883668530672725825212983934983487025323208254575601099514609259726045091104153260696042030133498275625608482631782996817225424784171840921080394793635191997148377150648796434207697784423975856995385261385256915975300445059992178124582001922162939030991830107920979045789823783517532226498023421859152578893118189189902549723662407258845462432870656471307548026709804952109538806586471265299169323700347709143518316714309921897633232230387775472230072169472263065797774191406997615817869544951909761040990280310096467063461072155327685961460718964303991141444221272859708957172222244744781970923271937769707160076813593185666748354552481568397981232246918661189086186959531188576467132349833410680930380733023325779330925331861531753538612455807849908490210944438519292287172945402601874285579816886488688430805756394237532592653456072302403080309109217191419223700663691511602587777113688763219192165760867785942038961272803812767530274858023978600965790996543716879758492416001577852137520327983504178439479268336762017054042053558801540710456373239524551241702249281688900865687959793290354098401555309359004894214595884545992647295910441629729973414536069357692288345675100150362505726115644768795052981844175493137545850673148000198596346706689705673010772244551222191816917933628918702877102625537028480734371116598181018712730999982153308582286551813858211988990101039446046418860394500267798016716840709404384262174617967479603371732348631132918924175313715513406674458497918181451246877933169599390739971532909645979755217400913818021324328339898093209053598414146503330509984167505999845389797808159111861471529046317405801986339423873297347981427844386179084280841430760217499292768972558221600249243418898986581981241964991863403809063458401659718102941884742420873681597772511204634579173411562014667719280021953655528967205887636822802144180463906626764786376682126634662959758589829090837199020824861205895829764198424064379623034446552283271488586130705961160108748469062933065029976704327308973573628117896160316122484626005147164068756273121414548044748106798757025293175079339724210759389543927049805344518336738918733408918572808255465153636222569418329688910881718074707167751714494253331150188389299225468366752785086264342926370602154574992888600095573969083558863046753773601420853858859186635753134827268035914553971296487451010687250344316410061716134987869769974407437174319052624869675432626697746475936155971149216307596784545460837515299039601730010101281839209750307200602970442049971462176038035816558302800651613308434112359836918442386964868683107977633618320314722596731982226118951542819753521047921629479315602444581403379695283290051899115704893570894431482426786502814610941489425290231320348639194381545545705096428677994231821163785653844743179127776190992395547689489619270597210306796764630813321991604278189999149005636537214486212222715869731164147122497152464302813380507237840906616150148614049376209040590200479102620482888364644636824169749552711823474568897223865990899315971555689484398947883271493646279007431118859481425319952665048162389088448615606410603433681873125101263189819652819616111288386229217350508961816161535785191779756312425516000019604561208092338301789171114102050369316189747351464983987683125067646845299295662514527624332254187698027210464733179765577119053836879942699870746993283310858948086675780950586742296040090468363599937428399145261676587778408648408718581124729957723553613239438938088536494993311878357086532120158767010404881216443447320619651733752037747787325793123535039979440819130988618638806351680675460268865055835794914564841363250688569104622168217491820766837109262186401770556744641937273067574510452868772591912156708123122022294846385524459159170084080707789272544773307571837388350291547537713409596505507570710475513989390701176722370458069683208226090058683108146512787204648892414521922223528144082852851378592084227074335046477957154487587512640259683803788484871418692693938408382091031820891609403396130387758110093865542564002104244794648083295318239770918690179390407645772779138656441710392957681413691382624486660864412580384897005479299324221839053300673331435046447093000310330547314549312082303699535411436003401886667142693021718870059488026471207100633243811232126988052951980933467331009274222762061920638833184803464689680397483525105766365252868703593331536672216200515284012970594979515697280962049088887165585191207932553241777797921565512770314137578139562957326455374648210592823771315113301759310996874460914349349954715492147535125748729814378428006675510544359310352858309178999484329950975461842914039480126077421522160820794342031670419393352300536723168749251678521132201526333881760460526923967133995242238211766107592347946347412634527530711251479168081391810736244392167600437183295544801581702022251369017782305647589358352421427828480844750973877988308223010902276362572902755644945718202563260138381971135233796678783598981154189021404389692477196131493031593653781424695225982660519836067002586233759494459636988293999102935575512195278466206009139707952335375452842569608683401975866231613733386289603501851881004198150110613673043090641245978228274526481931544866291639664423606655148440813508448170555176017718542242267969918984424268322732416951326595429221440645800167584812216392866676472559379461162087457703818977067408540072017221625992561665309824121080663774405969766956911207674353311743612677365309631213501494635961896421949892100697035941231960785046245566253286853312259571963212377538206565254820625018608474096755369902940439309402083191505523009858118172263843177671604931972925958502659742190266684221305474489501705700284050916948423395557126325912828602744033027756445609036426111876030072983049373523803554929464259424783706408701202400873325390054609377513286904341658018936167747293642264268721887420954422848198628258249411479656014744659701168840028275972876588124051313772831191283929855485690777182386086371241542228536607618650983610731143692221819699948911855440027124427319363403563317972191003604192855374228188421739202667382088368074184853769656336561633211940691507808468646783579056463079207739976859669732378953488207882560300215795318959325212904438805122441762531136292071499785855453221703721236960245098986005974192546129727011317027704582710237408884752722714915707530411165145132094195393914368430308312688369014370786892813137225320068982352603775329503978216068809051855973279327226046897511750217667068351511361916609697243324747711034378570657809370661276461431907002463966805578686674678788112373188398343764846347994424107193128054419631448337053955786656722473834576677647387735735310743648837943332104767387742653805240656339713514115030036908034033725201297042132451032472618075273399259699157083596553036202734469404772798888241284316431341789949033368140629312276950314725106924033857401914921146348800891041408310748150234602869623247820247982922982796449383574460936230449438651405350781791680388431321924821851280427806269124752468464026590653899994525909256441976116233390122896547944014892054580080701738639546108951619861228365854458612081051748723242709508800364012102536694628410420468472843458791008347027086554101923152257172672495672437788583241612859225370535051266060809640808356306268699492311557394569370074324960241627530026273057005083973710574421076873177083938387963701097332089674511848168034348850831751596464750931552720205555339884776266667154558847611335321649083971882790786173041134636860042744163934103975454978764366817047896278373456817676085568313756086139550241630060741685664558894645809368431865599426504995446533321243444925945683007111619906390138643391420784817150758112035131379691956553706437110761970266399763703675975247707988301459153618455229945212418921833910109062054725512990711444433025302713965604705671225702924751087706344117572688199798155751040554535490212514680804104597528598216123314989658139921315380956986766078592576292176220597236331554246600684518891316409612394042136540857843637855110910755698065826710052536408738392596253856453924251981294550439144102213518891234903495339171471096754126308991117695080341327117185540335958641321722502900245179806515567051591951466172000561844134911477420011315478831105989590543486999738322531841927097469787440818680426967969868680287072293402477783406310436980437732564705537707913814137125889623148635174777961258411974695680521914814745618938485253086020931389525414242698156238365323816653343491685018502064666773393451099132031306709241979360421529452687613417809610622682770065341872489331436317562955374210333766472865940052378281096947771993026483982531878516552457704390364579607241271884138167218542368144436896535915825873192031170633312024434616348270106756715687320959299767595653895915808461465961128818457242895426696977715708210277316493410735061171125905029405462442996302336952506138684276206309300087180478428720737115548667654412932202428641374064098580000831979214952624625085347995666574531346909182054621110827366397282275966449352404327163797361300861410296542250475254714692534236654789704493010204986502750975799533899508819154480928916710250144471131762727662360132758876609463127835224069290309547412081163865560520381092545233985686259627598157796331387854129573206504659913575299540229547248293891660753358095598104098048944844784771617417919403489905452979242104282680891614644812590351577429235557581504068947330176411609580795164318722858521891966558566089046506528643020659725958905982953420694361048178616942094061520656289387939126048579074449826633824772746546039011202012139367958107219429533454356939395539056709577171088248078787949126100723866141126504645793900142533490474486679986727569325035876617132733071201817655838824012224641467808476851553368228213012326294203584716737231184770559253095107764453140539700719488479180815474055478887158830678065443748801523987542346665650865745281544423770181457748770997981706371568824440368869142915201353551423732727555737440382351459998705878251128278519079830595018325956746407040802747401777136417744934627220122560390472817903764877075931901280382657545616314122588465737809911303461245138559945742924689200419658176390682444017750288914954090711440624492428520188232693792198261443872269995380700318673134226683615336324627163621572954958462231678948615071466631480250155882211096335275017026759223010731178235829736250327460892311649618337735822070004625090946616526051016622819534643266312973961760189160008992866916876406198288520277698360136269665845440696673434701223568389446917823294020287155262074127511147016799798320662122058192970979853772424305356807509278642203325538855849235216726343944838611844904701650824832853311242839676929482844631030122563810978856441768402357218973336238696189322767020238011155605032995899968409594088269711856849078755201335781643784008158234987838354610781485600791961522870183339472768737012376853098302507008558545333696465922431105097836951880588626854563189693977315646936806949183678180103171909134621393758031061921915991304999166603514084500513764939905551267512942376146151554932077615236090363857361002056925905580117682187901088827599397170258682711626689152072826757506968574646134793990642691242392195841443354669281881204334375440145472418436218788995492139221842564206273115564872474111498274537407917917762147919645620862544102151793232068826771247027313259787188217047121243293449367773759127557138001802806286374778833040345382200496830741426483437019538519070998678833522608429627279412717200479513770141189665014124574607886899796262417559525923116455367485932096272626254867289651123144536051685230619505627815254365231060661736666461718576050263622413875110732326608316679358259944048230244241515591096501550813708862325126703564734824478308078730666111784009954806002589555198506761413940441365742500365324456710577519603505449174027692497272600788810972337086745141173007910326047237943482021311906000301870194833510035466517194356901423327338801979654681951081840073101020287173444047546689312403477915563075558518809157303136728805296999966849803099873861778454396399167007549751401804644625689166274952757445832404674279413843906425994259918365664182961460431722078495252878807642781027060400580872780439723843996025037769564551018486029848447603830948911967450043159112501823848007062983370910942140566882137899116402212964870830041112230774471034992859010323244875621558473220690131874592020974524134856698075512402079175776107347618765219368799430542370474625970795482660018534502325593549682200690167324195136085924731104763946274880617237838546922990458168023746278518396816261331358440636225331554098970955717044881953162150847614631187402217440200037162209887286219396584046191421161591095870518689632442414593408342680600829446135476996018272838416460060942382688825647164606770237253004940956057213123734544926556268187729827546885585451700018052831769085046103833778663228544707808652599044121941390756491016571945779176699531599170643766448809213582109319161994282189822270230219437154122479609204115282301260319647222968621015317375699415280487442128261250694673347975842733503572065867476881916068990932285646892511175284662986792595229758672754191626686560683578838175799926714848596843442339459340504578131404224443204011011960765171372490170631565158540204652109361058275812152644920977533739532720122093197386400422530184979438575043924692812682878917412860657930061508509097545467960728401015384950387114248730549908964365399365891229442947034818023561710761266959623959180444438004014076267177147308876572509903700445682237950611017392140185437289261078848579710381396494263947592904963525366837719825651197201739850698159851957674312925465393186838024603784563765266176472577441811083624435748931281901312694335521458275616861195910105840813278497460248842018438005095947333737564664344713392170406939493745855789447683551868323895858769811402420064346614464352647456042994398736585653755962593313644212065158554374007276456692311758737757434606740826379037432228822892360653619131360749014467044970693866783742032233862656673746546023206646878861455456424082601178005457411646194806015167390401783176544635662810137144800782134778373805998532823332123293928449420959939311468816500207602288656430068019917826479035559753082281823928119404379572983606556105701244633565529062219354615584944799280433101801728404901412378318095102365494871511200535450334751964231953056866183232863769900161476493872843100021454940322871143877873457343887006889328873591683003608816071363742082498013709134647559656255640341600844023261612938310904481445825333808219159857590227633140645839870784248288262240059292119403075678524636306961917738211165105560708711859706168355713118789064658981674779696268232861454797925967796520742116988157612012123743218428999686907726409639766538301044719780517814996095951780698031100250146486724536639828983005711535137914378234076250166413916068881377508777465175318721867645752825951960729351451756367683849838011420178370450740715587314162361799510712754401333050113230970914585675761167894581190550566003530016031290257768701342019908246577745648520284049933369974098303816519686128254670036443490924798232531018152484840010747477924644228636819687791960596446558686849041155230645120240766126345688187909254709796016844718742020869002146932735337410243506529344275472503031045259222407772538941997353834645279387865640879032023465731275421378727845435940259289349776190267699807410487452491018768453326749871896726129584292013653143895246244271693918475010139455569994825577163769119797447334116362112556068600003272862863702999519283458982981443249184691546628272188092011507596710633322321102810340949041963298572462664379082021427130193446359730809118837225914579470008631272688826196119977308305448806545152014646653310091336806006616858581313294471574930758774956925161455752643605431592841538805616396172101026144006927908646046584335840130514314623437852146878728138513707422210756847808473920016810110751987731106200432591475785276213682286610963336314426139974134648404020561372037622704302924893215899559892515799412694739695503737863495081893250561821220672626474696942861639893260667272006600984900733138498892057188458164567392403437440774429752541753517177416366936066752760127404879575986488428724627200179873536106247870176244804540398029190762043580647736450643062483278130427666089534679767384452535521414295247074112117776383657643827344355244160923076306208961945646110969606591292921103285824825678010496173494686329641132422187531738046515268301661692307626462787764934152609213451044530439673976686274096129033671960765419418158025551599186534510992156464787018242220342711228628529413291427699738996128321417293828164236269152148632604279802892152782507679371587875651481820933736804501075439459523312543962885264422334737868859106774210096405418558620570317519395659993613806815802833524594494603364810802247303852604222581721933915972096616934984218722269437642003840794087535748946885436948450551699775862254499010909590718564402874762344060464349068890308390071504343891241635244015548680982290034462641801478337293388897195020471705720915781946779756532313365450560307703235218609985487842225943366745707090964362042586494224121868018721830972887298759072606082701646692332029548442097138898779057931776978739302164876924327371744942522493141874050307893887511942830334545525575467610651784544174626562453036488619018895522582964969956684813726576767841757599233025613595738241429933765415760556559483241334460749621668383744453593100421311189471620527534807014002837082044742960625824922469626608797497305181465850026050808242817113212573238601665129316698136526000380129434765050472059741388247192767844399800227447543099155549397955360248048764407766966170863795695751137052254296742870064421076850883294518950419571833835675889998984721008174405915043783019005269793049376100166358060419723241341696170740216612321327533011883916359467252472108431959258321029103728869395037049403372147770717954648720271898685282413216159427631966620041160162926301130510305720801973066697986096541494183006136786701030488024233812462840352172569314276549509574932680825013107249996908877823223771633419581386423661962431589357442783403934769369178162772288755787346152704578239556419562131102457951209345845011089302809592358459287406122200405405304307783638682054414114948205746364210110660488707773858825563630196772240351432543174324986267017654570390670940061884693270521317962857502825957920822995970137954676330866347969980357936812178144044560850675191384512498739758075661951344182439595787870079851175539316783404593256463674242215896978034937965905075954128444383965842704522182755876925136255025288230164188331824970398987542381462840379070782965783918490461028383024377797352609515050594037170313286843730402632161177002494776018169402035492434856908019227827630421188335073108578976779607282628456480525718464435110225892664461565667374995963737450605502297592712292368925648689587314053311516557355714044449786847457028878761583943455045288366273474681445051184511313951500297491319049967196578541427715773490409399788121426418944744962390531087627731425195677977934716717031769418750642181577185289880943899333087471991441381368163238580919651435228506886746076338061824772791541924293798918300683137340943276077680534958627436759987591462159497410037750383679726035065368639936800098342068999638250294746005146456405999063819971598488675143676505949316753388613735795538464818192343784372205494858250210355318631393116755447242971902881791525873898491405360644723543454820026932734574686214729926283681589973676404787484239945350800461051302858786572083858789003945375256281320936434443790771776057780150108627643401648098494779561114513255158195063608950086239352176158052073451812419355143282488615380547887629016613938702119234257734220475295777631853999894048937902469421333897086884540670377679091020501396716657737543878879222314774250718271726322857121479785253644736594368596443089438179926981195267697457231579511070500918157871153446173847533249061765596960050203731688929383243804634766201664365213911162892661185532432448421609790474618565720963759859416918187509858352526761685644384075090732873946589120868885199907973939300576898259083806791737564620233918496713473246141367923664581282955819953636122389343653101178917403973132117794391080594159672607044873389612451370478672318872771322999858640023414580345618650749365108773645137976296071885169213914464206349929867147050960819949733962216322286682570448519574704187375171665129356423152360300677810536003515598064013770724351263856629293650473719225268468115871411214309480662038820620847529964941020042412337029146531022442888159599164487478916484051535277382405985834675766108637425207871473465188818960730495478796006713579078271341312514407992899431211163928486755485611771982242843376448656387138357269126957443270172432753679819849007500346580931315601946163489691089621935504544501764102402069220023223660142356611057138761229301412147125564244953888162447581004566730781836609863397136033755116675223418435042804110996879795658202816055421983438360342022775426742561961755017221342424435302276006100001794341047642034723097170251991102505519680090295542284127849281295461352263460767070270511511121766076270380846884524705541564723529100170272398978120312885689518243923127991602163116116316013516567656660338262239491951300450839719922664538660072739991190071788626737992119297032433082532267372242550734005823849211429243097606148299843830566579280857554914828921155311224803983295063645517267401034134326058894300825127673892505877102821852406952305390971581020573463881622013453757457481102013349082106613044872490744081529752922605011141286339108061491142855799240979315469926763241606854177886578382914669821642969671557881324064644349011765971650279335801347485823715149759497975602858053888310534086752193209242543087084687287468036406744609974651026267695762096239647847870381343097600009036509279214322479661246212301122834064913360125689006327190327120392945558316394968596683578387802550435574521302283353653131593637885454304760241679384974760611741969492847824812015479586449493207528941092547369406691303575255621765178065509064821226864235936899966036397986137153854171642287055520918496939709087914999439090349429713581628383687045735616120310235032617858068965503629836891669120074885271167742926911731943203543367077850505666626939118920143828768443609432005859118865754018913696190822084256501400671335001115710868956403243822589480226943652408830389639519982283736704126432499559305130443087372766250308147143076839996554665909884633427585378539000811267842133759742999300665087844286176589776341187730874560563524502516068964904903250330924614015095656445940327639181000220631339135955543393270632129475684437966961701738321996614232737251766487225381289711341520432001824462264978164408435123871937303121009334092877435137086764421178545049505399167463488496543560338520812547729805255242593448476276045579372870822013383915411786677921244220135593483140810880601662816905079165961774588106485984436374492581661768728919872799383398599282154807523742995180046336142497829781395606469772693885862309884856427233943199193574101025386331927972342906768050252538608145050780694873007934923077813325688514498163717928450578523262436467858055964946201987692740599371170475233244142434351060790328009606730580996054172115800312568272499161881947994649630298874637471407788692470579184427443299341938915818133008506743087052426898427042262718304608296906359398943712696440198653140880199246739689066269154303042367975261652019364889662446752961616435507123328962151049361937578907352582229237867922965897234478771869534786930638112941353400896428623139895889597681411364871995597298325901454532672154960170278859025695011181428812305011222316276825935093031274273666347678987208894558769684638442345420062025836049637088036387155167860461051714179644978619695407546489982134816863422619930687178700647386360614546358845041941660296512769130222268998084874664778611829214490094976943842445454560010951490817180528404789736186951662216489211286716594285850962215759728757503804875553359069245964615727683681560821211623987654613178587373365449799525456884983836647641530410416731832193819965522145546064725256821986813670194422851256738362218972631847583525554946731154908035128354961253611370124645260149156883006992179695201360802891780609336903329943706678915499815483801950803711354375448402396943277042301366591843751092274398997710196376540096569866716405093326437236320083449035243560560503699074158362254254049280897185141292757633555680573800728280628499324680104680655254732264149893178120656631195011281292656977390957142609896535843414647170574281778679530445003707123843319849051236768795724552347659925885898884264405648826329785451196218831218986678076370223476384893891468006282098996339145188820517918958230854653787166944796456941061636207031984388409781749768345757456544805546230125202145169097644998347075325268964146932917373390436359308996338327050256429017344160731209333346988034772588509222481058612697879039365667360127246811800662983300189923982419555316164873773729438122861713801171073082165098573500243140014067609146410805008786971483991995477456496898182773019704246815462445185483058126322106139345575645819589057230749117484599454975897864453849982039201574235845027795583633078169796205902238678639728645367925005227850372053841213831630058969401942949957200382844863496950457083235593220754662171886181479980966840849978385944777051802822714829012021161013605786722468146843122859654134946037207729970120996875171007378464209522893654998615458009160381229529367170260982112022086924735753542240786306335625114979203665000654798490419915312653624963068718746898390244810137789428781832173007807876768286344078906932297807672525378436939662213476900912796342229059002559107612646303762293157600559426838384303420036422725009392619273702852951331833428629658808115706757890939885577649477069643300943711780752057863567142923037353479374957851701727699475403990751404473379703461626875702050028411649852775834546231756615634415251708709749385404157421864611620891623945436821730884011494733758571907201308148580323407228047703629633361485864972116810553702821096496240497641511815598074358004297096483817829913473869482047376048325008708224418288378762278204162875488661143448415729009442503399241254646730366756303816359699933778411563039358989381929290092840825410102120122658979891324627213779344669477010204498211506827262400021621222764075051148426258202781017284903374168659095106097432969619221226094008652643827882128959187709432595475114742128328962989313673900235157399846259963025990266672866359245762188991741254990510118098087127820316123948279657708953781899436912571809968840258827742441482176915242144704155371058410959684211436964677240604239869280600591886589928683151077316114562835998759775788321588367062791698037135980660882869229929770302873831593716080521042642841735812803575338858295087655067819719477469021681338556595560601543853369005852318392488755973103379421897602720615349881019311972978806691175430151771308429013141663375036163708595183345198588770383654640194726672889107424289012933174487446655263530757168934133595119538227411630743910037028206805810750942597786212745408258669236773152581998036214670506794959032004668731226221718506465690796809945909501176924187001146688414036964113074047222786274332579291226785078336541776566570371385096991610682630294525441802114617004096240490682669815588200996944804144949470300960689400069088934974974500386891384527152052630772343109953688674802378605438058234073542581061826775933636679766377285006511926407794373302129184781057406273800098754564433270043754635379700183363221939722104064985292729355180103149934931534184634842900463517374554273217531387901086618699549488232108663056750181336298393114719059802208205548891807714784303885858903182016128586611561090475741516468759789840827783461205399285749154484585473906710851762364523545584222740883463470933933058539122682190046806300912008859462151295012634178089379374262355885717752894891271522052144103778248475641901157790515992185755107036992580209441076902072846992715539583915344833451663371260481497491297906340472531661613117212844840043745173264096856212200959832052700106356206579178626998275732452215324010498310040092584924583922399731478200818209535436651597338870765391339078683633618872272286416308917684144819384318541109627643453267444271811953467895303413498535749958351463940194108554987756350037802051474684657721395026229431821879754473903854574621478157654437726852250457700889932057105470492562837179250637329146938923362057760781107877353122066661203905407408019476375192336887055533672394675661056992742056816636129998002187076278864701991974497299839540443712249537983976172970367402929719376189746680050127278894425231027424986740139816084496034252733661307652966186869679231501651940142124105907091786707311967943881697021920162829392400139652146511019755727498069988285151815100672635606426455020495288074558553159900722048097515019387507261318815867172477402756765543100620986579312920977754640729216717387413666485227558628492810440616271590198132087861542995546494345401847675914254935646327000595457260623014642162528632442597738569413586046471640700462584710040910505132445383712130731353039008020634627971347727290636657266314173040433571433653530090895400397107134481933871706856752630467270849174438506581481971862474327292766928317449620874862065076760176386335287659050563661713423828838030071026779380546392125847332050964715589199529811939244846914715529704798134549119537107685966407161452806673405555304805501069319502158418130846397194174276645172542613446177122900854390982585796220134413727057031154396249626339719084031250234162447624846517698483322179221287451129840049763918131417263972648853255527741225822333130326078482583137921842268911772133453559386849664524146920100883851321683414418120504463033017825245049802412020163600886645239723191504478948760827136011479738083766647487586562321937907795191376002105641480392346012214842000246518077126251725361630969406588616868164046771662272653063405388386413673734602229266166562856545001346017458490828745407212523045717808524737676995377315835760542895483522800625465975139443635561653252159016439324711107923534294767050385202898270900271326385649121930849977554981005703936207042877700291354009831217208237335502945868809822098456969543864911749999400231260200608025081877276633004616946722263742239675735329733443800148552655316355688412414403909002035458133379090859516357346180067241714807249809936953476429327958030445542539519225434286794368776651445812756215373885070942803519516038821517641749782087739228057092360736137571126466693134291261132978544966898714758866797607267429896571604930827191832294961018363767428248227155605963475039709739918736256765189569586961211597251351865106583672764813608233937198291898892657740924385878993913498476102174462983302609051993899240473873584584871111934696891040343609310691465046942502600602991315428495043098810554134152464581252305631485467901966292095408006345999497277562582783949209701445053588537883397524994261963738591837309750507788148016905137182170244066982907191520687099369741738840492116644100323204127572733885714738903730864172685778433861220238975338022749157745446478534368831031854100960989118808618711080648590738751146030822024338776802465406738326758431152548355754079363701917194189971696802758446106033537042453740130109318519104618674807803790984845052929294617153074230060547426413136874081735740936450417025889699071862887288753940036996608494392579247668745158868545809271369392481839950779731928070406423223960525901363653710450535292287704378803631680268712390282504133330241200308576490419639686162899690059511778390482469351611579133438507144172069706567496534654847261630574600190622488520299738710635738361262464115543674497719344817670577209837269029125392645737728690761278234657574317675041050051428254940468440424854067088149729915581070204127564658258340237444301017613557681689506886058787983115730943273599761198702348599321937425267695460316544892990939700741694291463642479938299112140652221992224586386891422532440067327418893784696254917201283641023972964569071511077604639761485651150512978423146097615712568885791859086350102862710464324606804457174729406212760748471371771034970826578254511549362094025235768012331963558560635790068531252301828362076696298480487130435829696199116586128645392774906524248475495145595074939254660580734407462772762150547807821328397503125222350527008260784404281299693832107937139071695471752618116707510134899994167430052570331432057424928501689120368082442044556382283044159974054521585402741417308887495500498791660244510986059388632381231580379433833503840414047170363567524061582140830254509255788781412640952840037461848454093598760490418013072617195944582147691737056311016671398374096574588620150069724869805479189855917891793622055905772684564676879839706293576623837114066540067673286210621058961318540743378704060619794750157427590966551554690849508995223417357983981570130510303944532339312202690622420627665598757990773499255863163614259811205617801649645742640596024661079358945973989328541368691122550178292087874592520054266916011807743999697914529652358962943098208603396155133468378245023031449254184136420797001923309633084208274635589989899526600412146121483191203908880036557842884511896081079857984606446385399837661762188832126280791041854214057741016536722541432158683619353941306650781490784367098528799159041982755911127656263180570268616276398842862455144342695356390468148982543837055947297089609211556063375124944464582374479154619479863837623367324100243668704131927459878614182547977481445456811761409699369430519351079874658686449980435103015683244037574843484945501654913001316111339394026016834185681266875832880110782112231522429231389575796628909030069878112182562894563882999725146586408477833838245198665429621689655553211100066803237113539537328432188866201989474217158457287185329869333065085733704612216208435664487156353327453258017649905473294638948726251786233566301778105972633155684071506449985575771704897373477983467060420388373387300261809194241115136856319604880286387028181185582554980082202984814749818430209783409781576207554526547267335609396546363668262941699948980529497518243244556195714717982622753167693824396151495616633346130147333425008470487922981884257028577807329568929173169450384398538652955870054301482815694217960904910467889754896796461701045742406650616402854408477267621209641551032815216897599692216773346458156511396994268750819727904918113271932604998522800312997441619376877005343615890522147913302479183302559647359712997388607144710462622150664942082448272787793165944533367635225769264604910707757241176003292036098659474076697724979728345665783269600404289018593652586027868034522250138365967602828677020647122230574372119393631631446209185659415649648652408230677869056224073807047567834901223347339712835251572198719912303270150202870063500870368080075112127175578788900672104017290993746716527463405930430910125486961907384978653820517160829243517457908854382335743510966755124692991489573310624734546350377215889492046375363240399946752740958077565923916395317534338748483186395021113457958762693767578956898222373980644546499153779138210139141914237207289083098752978886705440702382987148883825171740952078439736097547503342364374395993344512726315919237588058242110171193846070615488680743479783952208731858097631247039320725803167135125739163662628951800979681706846860247670270153841657563208778740281860182027791133859125011171588566804742795137760725854946672056273426947672381086307787151307642949049042142690199681950793258834671777075977331774306443764851358936059444432073676419440852465579101852239733958973438934615916530009734765533357267872864845020031537231509832388739067844993827933996420328806119701959991155142823610434979832119762572540651896437858072964152165724635984481291522424724692329666006327433303374997270688400619152706863372346301552028637287054293071073977158001616415788063243214817932769377500846550829315436337579253434331379789272853518021682901791047610804921445804724076874529266791722401126332201362940834040883047511265612067998965630395912150680519054880961579200299130944668700338159005166878184856430860055478389420336530792938832681861921578205530037049303970512627926496884838393185956053108850907449626378464723478914359996501184277020806893143394193114372950880024915224943173218907221225705196050836870311226934179901883181487060501360981299558975515106738968150637419441100539351540524388440402336162322883626211993115257751483345125290150184654611421344012191066353797902709285129678058550176147135750634061635374331241386074216272671112990048546421063024221025965254602881591039580164183139577018157858235378694100714338813478103480046151015359845671870263131436050393607330214272403427448017239416127165891013521884247793858166913978311990128456364183754178618905800372295766949643269048932884624825073747954221616429233081347551659275440106255286654621728702184449065023640256787699739143816642429266678183697543800294703249018608613119053583074306424894012499097243778127431875877956710061808366289214802462858461878258275193957783481849852836174645378084273065986931488231193387580521629875480407920172362761172999112403057316914649900911599305130300922800687304800644779227541262103003641019951409333298264194373294027284229641170787368662518524564924487250649861178222495974090072785517029139725520836772390887338054477204997588618464554189517923095908321459989806714640467493347984508256903033912277338156611246242663640262716474970049470498467282911810534894657589069393441173809199306593371811632778190327480042451421432555222175874789009287183881478435496576637005190542125047704968118644563820396901972678320651713820453982629767046145847836606556425569778118319561028569193279998268822005252723769386083437979741161356995109328776034464363546731757088804795404744212389687254291355682682644104033087976388674884462809763136046381045169847588826407169056813017208457804553427956503355908012398810853532579404102930387531521317830230813310395202256062881567752662186835376997436658986834522920580547254313356014774143936134458616743906201081460307599011558034479377293556402710433584143602569432667520617866294130944948894445416930096293984093557319546101912773421041861315747934106111574909782388100001784937135422759593986766707223623261693702541963428401867042514463240307454936237483250898748667067261496542088635201683928099445956508017183480850887356401521244960815978263257867018966924013041749434679672618140508851784723778814192857784274683316035961235179820042922301481963480644176735380798289781138992248698679277223582645296175168447043869861648057052547969697524072406972838647846415287061963961986436297378110262301714879170941569051352906742272172370690199981219816248797660869790882766770116244215674959322720330690626772712897143062232391519554245239039969294308475866778344045773426689092433376359837744355287940710525709716029144473311114885676857131973399279086547330689903776895489028318554063829806781520429597966438076968619331966519193568309838579661932859676328091715235849496273627029175900125136367159146253562842725687841910535894189353462182839057502454820302297669682298717249074242864005052005595190589771492553821197723021973524416153606427506857361124127801145869777528358778999481585278998613416174791794472213056882015329257675135543278237364882615514949314086634757595370425998462142410926418253943084655551326895997672038382874239182245341586800951904138451088383442604662995352447006261891182418208114963738054977100650977194639008091574924949355686709426165838078590616116987246104655340522530756728889076398136293468318602633510689895284977559867760324093217786809629561695569658728757236525276195299821342648559039949772680187158638095414406509558463248768487014638537494807514523857872996839714506829448869047134948989976331049456936070664017154640343793123981183835900496100758212814555868204533019360448472912674452892916928344414688892568700975696321479456428915779266135496265314862019597342322508873489738092073333612059434945019149153224102452041065071446061200803364074629959997937743352047771552914245409363602131355770563749943669918885421843616132201052738692243477134705189056834990355266347122988319367119858195886800511399576185386550428540751821591642815655861888358563628484159644029124038816412205125590790468989060532666259663516607186503526814064361926557722808065768985609386235960910380332464720962927952513984723321871530416215280521024306844873071429465195071363388014281959492366676508407243178801041428489641068214746941944203916419282866311836367540689317830618477047280488375107135346268494949741408057126384848890259893312428172454856034594851904073782467969517520088726740920465885507461765800708550381898114461335315833300117635472703273134180393270765196839445661417916250176318014502096725827465112953199437442281488371271173133056747397593770604246719554553370997003460896977633799711475888175681927886575078059896998540111275076555588492485732060514060323385076300930536985896501347785757729148828659942907012152806529632756699821929081975161808620459568703687537514069603650977838361197828846282911407564813490393441127172128131867538581836557831715641414869139108709969833472751432136167639951526055835523708316986272575377341734964551648173639932221170220041831811019687230943834195800025254248804768303772623128113913622996841776483040168081786697529174968700241225216749664263264078999984915135173417252085162700646410346376963773926487402404900646390669533835681822109364950863536174585960392342528256381478778469229605651246739728758413045350280344396038606921382158971156316181568350111090684594450240344692085740015208002107063533512657827692963409686019472144057372935790057533667581618655344249910782202747572552096502008465005163109854334356206669590792511459544832947713159255514517766686041529959000132204514881846512835271843637486525798999136452916181081092603181687713604779491607830880045531659299271230175418026738652384498334910422137208969534170722702658973781409675423408693771055500280035338423160565644644011232317155371878573211083484060522387546922585441100071458136262534837434048843955204957377583110557069430246209359431913444899815985775977621475742901374596418072491573184013725295919855393289388557987932487552435920084181918533429550751171307634991205800375942138952619221657630578982233174771354529251319246188509974741208651571602802493701382990727461538393653747536181030532060386146581955646561768198470938063810334809465562450790766122711729964166441143450850096733085043094488382574797363526396347682451202233349531587667202072465712440947675243297295080060759297328392802441365412722971324756466121914559529244326658602974684130604671529004399595220354474980591953551381638458921411819596424082159419272138727655541695287068370703364770397814081941541495647876956580691384110462620450897255954706764796480504311816743655346210490567176977660391872762239106326295791784156090914650618215485741224153904818522133514228050548002317806513908843848008047386140885242216101328330728603059235909131165903274729536444989256397803268238597624831968678166448829166694587737942841164108792300123954161429617461735475191154239621033987004302961355928697207843554407495106736485263125478573083476291398644311214956140023129127068605850751062942167451263524221056966761328402338138839642348518592727173271068812456183597658260798944082619068404105863919835915133981222407067872782460341858657587501072168028260535412702177055262691433664686685970361054457428059770963351695157793353788375920788936962892198694021920089583485530205326684739685760878466022583981226501826640120474042513330478979619898447304296438607968724886199112990241911952531294471150865845294195210608861426006184529410754857194368082055483557997778551202602926107174478780876689791792985659449758990024278799794925808829952446804329463740186906665798175830075967575558448527373872001953483629946506694296594365977463022579876122220737228980202171446161725555897902560026863520752205680008229013971993892505899740378183156992056166138462031556630499797856783494589938945433955908620918046083323714876883124050993842115208904109108279869808746048200427890408265239348665034639422062886480256487477533844093232804290634582213278551536475997600680115636654876163571830556122742150350430756157025841840469757234550501473292790738137794928118260282544440913967427646866936370435527611780163102865621508852993504977653111266994377064711986117303942098024205212525573774979675356034419113274835594246260485020405429485884030989477593332293973446374191143513334255762493288258687665226445597853406625890471633264378137325291087932460637746739622265450347040320800319222908551191973438901261926609734437106108218912229044375886793639384248908501208189111488858708479992525654948148335571803324095663044490260403813419368120136371211042717787930474013915564463106886514838224019279965880039981871003192201734545482370973271275057084923382255791506057063475321894874867734359076455579594732872188687242487142938628556609543548436922794054927524689729956171875859220264933226449919604510447596151069018318585036145517436033504996522808835594211465362876990209165919257330659272508456005554864482589063636159590370577417650225813530536646057302931046344462534524110608897425515182930744123908285370833715314438941691254588380183453536571172469336265563521510418625357808324291790806881784426976345526455994981063952892735224297130500450803833988310895089611240809125594011763324059341675169342970490975079033531277731512307326215011642971241671912703468485027721945686688285196533147177338235460072430363749412198226768573236335016054675855737116766820756484704796986161834344502854097372162438571708680339411707809982089622866836190995068897681570916147648558943148590683258106986843876375146039253500143285399760267161423907681234429446975073944618698637662494079294076285485257934513247767446435580019324902195282786647794655556886615100723479793100899847012264675661620639372666248522849462221613319454105178245589212078570559875748699477821443016850520667779586318516386066201137405022557767882872106042846504926791410445739829555053344946079835267081300981714328022326386651462854600819767989440301043266325801267827147585229983110875300623058372586749891092655053994732489351092192442217995217863843405985436404291877132414025460590755781264329276349391751230586756604514076053510113767147243114838184353583986507915954705742346004696647721581218509758205538989449723657553400281532948755080865435000267762739022233580714517412563998132226815314983832338448525364689780429608790428187569174760488068015176399788299592161368308440218787899516779238172330438344418881628917830682060958152325496463301972141678162308092641052899965100103020334350328396167603284080631069911408375007899133551240873031416476728071073480488670446470607530240772272923574142708662233857985701939288142958295277959454446873091788442945676447933559914036005358503715476587803924021824598794293666810198670131929868904379782649766024326481726510263132744353482288918835309797633113425608185676349689094401104589473849240131573289339028678010029672318894719168975033972543015471104689572304342925064440747853528406539202095655254421105709565269330842645024439448469189388873974926314886000826669914264194339884570891954752846438951633229569257167022849226885965468336681140724558315025933170975575057255472656546971475393421725543007381872014589203707923652258447865688539405487970337139612675854951409395743087187626346563051375172966809267325720558453913907638892679439193431168387233836703662091933619506703816387811605841276938927972129092745112751501714818762065754474863710542990741136666471468329768548785110283991828642859717887794975818161258323227075231726793001977146147235837051620044962254724207006293215198329041856630569590682143367155655497480066469980045003855819723281739129972308315463264416332425393620914831485515248485706472586694912010043977105469681831420384647731514115019171015670994639898489240894605358112132277442310640753906406794610853339237819761686323213468085392976138180637528075141841579498397363428089368176409346985451471804831028017877839081512793862843984196362963863952003147027692745740196899973895629213592181358187914383038619262116974695632128104049720772411251499006257216035559278833560234743062645627616688128708862826221321239035623879784364919688376941706160941895567119226505859472408204221737748316387371820961573793127204287760599581479822933576905194279508322775980383650485963751629959793803464734566738447564661992532514462211176378673524105172421760166766728232303088028144402631265839616355196505573765444185577679898070255787268063238156119719758808534144728776010326779803848950525162684972906727734802877994876612198533084735546710620789369538439842057353491800255928446259632868805518999859088306779314706950135026249921243670248040770023317373610144510058659437635773016368416142590621098309351635888436232247653266209605450737128455440356950094601922879267978157897003557902903338268371263580806954276425055427696301571529381010377634449640866010921639985466315783033494291761509215076386258224619087469956661085160633180846589531633913299693443251857095450664323826312103865941380498342147470305833487854831295933766049544438360084450171211405576373401227708778816753770630098458861163694445474855803292034701334807120767411497909706770191068090747316145605913702507458278701678542121694828432309709195008156350938141741988011142829058508931658536306652992514252623214749985600126127609581703466197054934577583892213910901312796410902603922366774200054157049143486646858526092632622104572663930256069103426165137996976064282723668630975460210943402539151042922816811742343049626559639609567934803806996404238115852821599701062370660360454412695021140867433982103063189727544540013270253726494205559066953605789576149074709098824999829677587224770806504023423090044323883097551275638852644914772527272349572239042723871054165135845166803302006456167891609203344488786095906983381685112718449212855080473970423995962772302032986719566020035703509960017509930188818158573067748194111996120411759753187887304523724437244987383897490461879665978053562459189568252035457563321106552962360265980486502921004583870747483292693146333571912947158637030247587541435673797816008946926091019813051707528704202471975770349066099276995706753059952874622332273206514018751700555417774768393465457943406161527911450582932502599296282546467852445311701522672685062811286793609380061089571887494497580148711377383637454368876551111964997778420033275425280853185986918785467007722966521432420914694973319441227948924346010556425685569905753803594200976221053076554113505629017940225015636959467959200592977588140557700729762369228532441922310294002553428190326354510612489240224939248542566264833521050357637476702445347902764593162651751406472769088523290235244588958957631779597683155716001334536559460787917430326739006267277565130756986021644590867234544103276185360364442621300760148520924961605536013690785917748884091172494478755777260103853767198457714406254094659048900144349325207734653916335661766686283732258766582047940855709794003382828852949107029317598497214682352958338780961442048369222211701646098144176937211493704064586009542803073058974474768260611888032795794420921647931378431274495678493033702910438581087614741831494661079359393927550961058993470911394481493749468613387010541024149123101914450060152450570059400120210446578882425441362099459346791669053746705699499938601759098853752675213021804979633324788689583488240427457191524562344659240909870500171951934528467520882596294953157451073639506731916525751558906950575139705501249170535297546477512824955877174733466902482929974171780536601007485160459735819008531453274517845692783195594093392608399479116799921565485963438723818001515651223074609190683980402165989193031516327215826758148908025797583347520756948431729381655672033719872242450068264607836681724870027417117003432341701074962903184942671783891329701922865767146461979878244324991515825782338112982049813234992740323264938474759089122066685600143095409331811846052863958343657920044111665437161344283672100798074672406853837432257707054381067936539549684449589671452565063786344578938318141337753082646135180342379615296499839531071247000712778004703434228781775317097244273514837424441777946873079914528377190902420947500523395055167857828452003844476493961549893401759742505682954407517118170343218800946314920887534538707286077865198149677109264074647468396742153350045832951121550954185581683812259605732685520286638573085305939669869639216385533991141599468119364373656034853956050112738387259147356845274604476804774830395184860633677179420976070501218238985617363151485686209466348146453704687831596135899421607886285608843193325756157922246259889435207512819819716020621605711108677708577291236226468613100621910481348501746936350321720490677890964168868446840924380812071498535979526956277781377027486266819649313238743382143065829205313250573921773959986182978676230043812015875298395504043975786462656814028208916407536049866235525405035143280437750868936014422896465079538485039511738324771371079322855727149173744019359946666757315571165603416770983132252204068871372843140010315210389417798146096248258821894465633546721522018771844956079168477496400800125990356604291264930156596997157918435899213220876014121450398996543444928662189753160826976043120713590726557277235688605006319346757020816403781413242732596144867017489410600720529341914625977625276644200607051154138171760292120892773454629876959564799875262702802759498109272497137278787752105890494800928588394290614433004290022679084863929560333292689269186845113427067307974355142133223522433783617696654383284565483141383030010078605728587066482545922582343501018974794094238298785752486500246376948558648626163200571132956495259074822470680470545878118332754920600258467231643068579880061356877053436521361830638563628002385836953269016857090324887404188041739125287134768502633904535168416902344192882337470621713340467329196946059148374031228599738717319610474644915034738562579200730488403426620113792048990990220641775175687263655241353858423491341577876532365213239794886460561800723755290165523039739541238387189153642014199359647421706963309487744222868395223172619872581641239818732744595637126758928539479301752371285464973489529419574386824736591504485408589006535131824497071505055219853734347669084256539625244682122519249316814902984778872100303344443243887770217302795109482914510517553508757128304213086348942379684651285220577869826739302612079270716500669579991376659692818198332483887815784106621442387032258664481105909324924445699783135635810704009104284197337570841840966101014647994278062699603673669958623861212289166946529008509620222072748402242031807181746643256607822008110790431839271657119345244301401502337471104254832572783704326038024485910216299576640176502691799411414271564429346500821933381068325466525928950453567348151169812360770634325057423189264301949678694388621086580350674427520930504012768982974441367758382958715976898854242303170549127859092971469867782380514810743357036275938133189273710730939821640668277364159370554085141981750572615384993455905270503854489143052648103537181264478024278316637694124654898786735367276501518226296467781768608589974267462947933148287998645612785682965980282823389164568543648610899780288883863096743876091713790614133995961383347521692874115844377562421235645325808567918284668869330000051932815025206431031069335372520445045650033324996451556394057309384698113064040021201529425184865310756637774752714450638038440589367124440716433967634360350638887869750923779420812702458684093216829012200158223846872887674754664431973268453882725890422575072893075601657808342689326502146824682631679975352789278318934506523226773024239959813607390968198652511938652412127975270874355858215474526840430764241210711240667021866616799006912986162727013642988637052142997002820201273412443173929325747467699877242071243722345091218065314490877472709848418229111967461486527597734516486568942540597209544712610287812553320911749338272211752549144759472385508092042207605910918895052004060285545995547925050952333400007685568468270967378110123855765571126690903312385172215394524156728496608068435849284528444674498309454271947145715208390007961405210821499203908647735929714570226182452632277875992241657276172352188517417496280638036835939170489992691632992983759550362757545005369180041632412807820083377210245998099274033695986164168806694334550788835683452746810429214829896720245671965548910665120826843652012497075635365869522771465709251691740850142914139976678404813746711414800916990095501668557687347914314713495597739659590290359361012446786599135468827445146962024482790743803043928319036758293050244862903368263721027830426328769178196975907024655115467032862522297266748807131002751168476453786196668039200542994657863771449880348082062100886864774405277640143138124069376137046641862330075576023390201607383083801758116707577532273047409545564258956633451556744129502610890791763062878001988335349097840705626964089305218271235790838593526563185717867955319536385115414518059056960906570790809457663585943145113504416746393052978852941729098204828624897933047070700103344535080880806379118111223250561615887784210584723586795402325068825913949636845699483637817040987487546113542206430920876907376613825171830230347778194479173516023429669530528670341484281771311544680567486722714902146268065817532587207030730082337643777586933041379334182385244149315081788934180069619844913724267156991735987836241979111665822447179692853595083167136626643744190757657592833716031211318555545978683820963600439169386945815189248262043447586870987241010447364234203321020400235357607513659872459763345141137607473576382579117735150455146369985875253553109407048969059806464718752135936455196911551849601065616000702010841277050181506514679803584599662652892974031782146192430725223963790070161581656343267611879405144018567036635470232520433648769328230949663573012539347569813068004190127213489062551072007860227583626437628193137847817270215363924983957022853593679289664608681924454487449711746182405592077621619875314524099823014043445218396554097129541086363323651821733343948877665906634450248477121073000143369742433053113074208690155731728631520413210517199630651739184054789525560469624293221945634993971611433186424030782807383093211824442019759392374497214103060352737359333454703745777537315741731539445268691725858885700447442141386939920058597607003295211652143056313154806624611159075895592851567914945854816864559785799844730941301116788900608590020235514599014239769587881679618237239007099644162448885023963024254225233866374061296983986167023017147270549092262948840514717006837568763544011755584650189595994260705429402641279977772827811635247763144869555305012817353103826429378937643958250795269826151286742102767523159448939715772863759214501334710952941346012396976401318576239312695686784099864636609221891185943386536141861574231702080529251290907486753754646641465904994575761635041247423306978836111714460147259348322036510823216537682402395288984143302985060988458779295995182568580376286784600415273313886213331611469208700898177238557283701150283775105587213696766367138572012250452343919460082009019017783289369213956591231191140604109650205404765492785349274088422378293958527853331590257236367895462796661013737339461876846385440370101221221435445497338716475802160497229326839999166344787589531535277512752768291224494411861564398323157082946422289704649851841095604664235083867408424784815346758196927178338977201583487360767799914132490987009301612002033154581581635593791257133459960069185339452392744219706515210850679830194130585997292945973672602404355173945255368505582647321179378876880474022291120516804826160874607039551527785709054285924608020193651183904546070329742226520324077815726358022523012197760763630260063168676371686172206560734127600693380833692460358555484076248709415652898324055190273258394121907480758225167807012803944052985271776595453981222570788171860119556149398994364919239437717452257902112840584422735632822477207308338339568064914458596943455307275135913694626601335359401470428116882147119583361968928818723858583700131712570309514216751419551053525088894091481122760001906572248395193931853142237764588891584781036092632877063719108091951870021026109759022525154347282158896718241995579304627902650338557994531057051344704166053281504183398489882829863636556746626852291366851353426370819732418164609526446492115063585930087684799396408788396615258950542817217013791670678966307159045609845811780154696873732856754329109775490046642246956118411208425659013237860089463046735738147248050175004598549763872110445882069834218860558038222382935216589465022738756388907932717108699722057674474180564001230382336008178442270301414259507473935820124109352813770658969881835142517495833131489675870138501597817777506212372099757061226255725473528849326130878107105780826024385249535795209059442254167785104878894363870484516446600692654856560325984929748254410567234024996171861714107153568698554366510401276856884318193259502006967662015728147947658612839051295113870947088563391505414819240361588273668039688925995580159255945661088123368164983244885788095840585723738528084249818514540265744327799515694689865573663232734201302562996028631513204287990893211089520221921475530386339229204065316321159934276020945940869725507119520237148307548833046331475279265491848440197552268950454901319700596625747555896682453160490920632280742173277403185382842427706445713691349689871427555530549151577503600404498547243143478290669984448872970419500648223206545025519878197690159205668660356380132799429705022713252781071301585601989813930015464518324494416503138160819502945187820016341459914810072540678080938593613238530234990825649984842659992689508095032935191292449402350040726682673891168787481065892789721814411550740379775138147098604028275776398802609438104021357407793660748504873895221860179115163684310668177837739839082135623544418136278345407983235604457909934376112823983826794374245202075340257385050930855018768346164699983875533596792656644867000427154683607282589617193305778107476732307407385946272128267400232946327806713145423707531545958044537653027919055658501910672965440473290308836155054630898496442253934335019360932921262945669211479384428461966662933266113407091558158269150132851741940203622081032857440697384980007810931692365375260883526114784603445876956031829021221445851002084627429726246280733351517708188172883561999711373824303577756962308989185908487705760012233665031401754245019033588484778653197678610551435193546884897296741293805639021112541914175194287877129909679082674523455977386904798854998627354126519886085347534649886494978240662789023733451083026141150122085825705874367219160239704401045327837635026819039324158819853513456298403331790327024116605442345990234967286225845958581896253272187598093251525488261541864257653176013194344132032791447491683894290435406957375095889476444310141424274001102374118665040281959296901644044534762591505045170557352210258643265380867011865615630112402595512451168185307691219011253007849355224207987047377822093164400556641003873830881201848696734457242249632267294891363286773534048459823748086203098693518697355176195154075763451349213589598308475515062149944181599601148660389334618060006686118307920236784151330215351006225090325941754570339861049292893340314018294093676776168770423025457826903578656837939034275736908397306307327531448265832466251042616233262185069383547402522463459991452778800102809098957441327720858657502629776586777617669251209097143512957934915752781415194437446452613288970821422586253366554310684728047730220339319099310234533747165516673479921973211346384225158622702498332840810662542132099741739920489767223691611267063639806874946002498742459570792749945021897131049458404227143294271138114187283368144518345091614994891326898544936897725991258789926156986903084113424871402874218655812801370484330229641468294625323545541503961230152153633623452686486114862209764559964246520770407637303079754521604269083396314248204961180262110129269149404793985768897368747619269778687280673185374766669439135175304413902672371313632498106812447479084537026747278745795145925306763494641702391481788135381478255690566611761480862635312717453942792887455136795253235124013402715588326375247447311623362961426772843276621113250207799192397100299670582992953216445668885942029786502647401562118667425339946333379817716158845586326863418759010814659120785034045879192526720211401332839497800943188850061519771767126376059936728571594751778628205114626205634060715046297403443831907968652063082957692461142053433365186035058980343768958541349030691846418719878431290239145926696406024719901089814333734803905909636819122792012841941959719759981129850018497252467454654027626469293436095239138340043180479235558971443011657394440235623509186888015003151358804700078957595035810337181929625771305577657035960408926820285413179836074205310920488895579064679051340872686756298863819603210031777753365727025236016946253202204814128577663104667475150185202669361555602183624773785633093384456993462360976484548833788152912968940168489975473879060193502916997944825933148891929417188181557408198402517223727139305474947939559621829790840631841645987740944681049011442838473138311223369718809957726681677343035862549953502783273963311887164232942024383296214668856545024091872502227041251993402175647277628004836575564672612938214927592486222948260797998938880175518132224220806047840192611905038995792172838088747371212270401937266496124351136712821706499040413062953578721358291855032921204223581546767097515853652781780039190548483499087798004277004297341277378922565902103802947291459772575240763678252541940821768599601923802624646535500213204451133015678705554900991675495426803297392873210723208533732850700220895468607353353907876847952346074856929061534788863893922620123127346447506506823737536906031385134698686952447143986807867465432205676995234861599269634760320245907749887669425465770250566311359473204560396755456004453307745322715184691624563948837954744227672523340382099927696829448204419198136366178543570629544368761597376934458933873429686216774655063466298404717152994512533300625790297312287878279354194746369139043232003922885664475890398215843716546260306296375757406842232141448863338061971988483919809468459867799956102969792469447191984980825384252788133432359590521992908624317681711485883253651657940492621320854107086157359283707484362018397230894266459036212300018242994304348875275504247756133993655585633199499358262036950159885413410444408746799157774125805348458264004806525349460481971274045411285988723965291629428139616013315628382164848588918220407067672215070189326745551712958237585396293978160613245020424344172267579933851439646049198991002031136092662537878260366122557461417007094051523581238011278432615292637497042990912143666175981580208178250245821148027790623069293301029580689005697774265835001692147756416924440939198879819064020196164070146076519267925383018683305126118947567344049817817524077097319744782854494517939710145865601609136916021338207490682752140276787532100482788528078125780940410168287530448760808575726770777508736774699561021515286148232281665399768893643987682914067428039394203296501703178817250119871725564663410419874237974701305534666334398359839037813516881690219504808455213671299756295308917611102473667280070030784948277595969251569769606369913714053479169583409094787144681661571870728697640580598946369345181795852434272763076547708553320119964339069088208492291274374543856828883174373517782072588141019608515937624687634366281493247496729673256745758049478072823149191774167543660257045806338961963367947795066549784538124486491388422600324428057667231962329646867503161336169934430418075634835346623712382609607327017127921264574116267016515936965629642960743674145381730184693220795119883095105762283870506958075389116751168750639631240457823040618625730781815518537713313670317540321790556497052219812434744624617346574115908980358631964270688414246582032863567205144265126680184985511148356835996852598089729196973868535845523789518286033006093268905709212202804946818438113998752134837881037113357702378150381195291367211490290010180776774548231183294246716848776398110052638187534781877909570882008392868543603354952706970440447025930582541481772779496016831354007873026224303641025819172442454424918733676035430604673572436553094673618453926325690407423063815163923728074531185532527140182738619097563710601877815986705715524437216567254372179251752707244805497458845248732816911989480223397517076487856117399768138914415358696140865968255203425191442074624693161445360303776171323125137901679779756465895784488145572678728349242971425246800558781552709334144394633247918047682398418806987593833186532859614695612405471683211746120496915591066253827199121342211564618065974811603207678918526146250847070100681663422187986035314873337875523315751302657321320075357647211044843950075005375174406905681366890585436973900767282259119002950945904420070199447306506413754453903608298422408837403070601189261618068938907847956712180004715320955895093745650155822452471953086777379624595783067891697725497663207645186645176866413562829774758177740571201728983926943395991099624942295880447059370472768054911124966995073267514502379105079483972895967121054064656844427589030911538724317108704182880885137066315467066426492221016860245987327864649260119349919501029671906692038065441168399669595835284429697786425978900438613022229763326154576229804946310267216896673020296287651201938544576393932247815885277588889053185546266708348929935065934862055461583135296056360973295742892420070612355918624834871368651340132220947270594602229747144780775974533185917861080145118685896369253229128528548276428127877402331016462181521101208140180486312528892389037977135940355071665138550225672639563827686787347578226733753068009047118609616116684283827417406012636523909399112849681671046769931247038900223526156534102123961130107371753372735992810638844610496237027283581693084087577383429650226029315567189962046097758488661700139857927541798272963442583281481535386891373503283146275237576526862127824386578786515267589295329732900341151320209162695456137805934062222904551258903172306149187098031651069418653003421351302316378722268600506652595917531050483306098214850631562600615718865821383424207485241394836398861010669406333483846442528947747711971547980684190557860841211181610778184741004544448862119011559837249042988470705970959740175185279420407882211755284712065015939452675695433547605092952783087990262545843952316105570689098090786724473242185388708481948869269577227687801195886967881560976444865956654871810236582298244032975513431512886036311236177641725444247829385815572450177714536535053991061129257100807251733879757237923522652741628735885646626494301105387726773678585586292659662212684549159466233618645309679350948728942182094863771189015313208756132621593323238268111845270372553483588036820260474027133589087235198749346830510896365248523637478285236113859438008659733984778114098605606837166072942261457667328242842204347189160413936998072213225423206117399533036626145809573593602466727820728959532675408715223889849229524607722368014589650015035585248592644932744897569417201888511435184014148706606666299347151136768580599124684489889405817482446377019323419939899793414479797657264774965737097511534572596617044147210535921029950178789592922213229902529760919561949222397997266301113767266465641250519474771544922123775837093988632118201044838501165281504613524841577326422704752557341866457395892711632211338826268519097256656722585203369831602977357201870726230439614945470056473113539175420868479135092442877302244289124671999217598198363564869507735058967546516388679717488271723315816916800938871100574049912555566952707836433088297374907114374108443390408353075662539015947412771880255771825676872213548002568618219255675602279574608820757251082979297778604212433165578581383130940413347951449329497970706441274727301104417181107290725211438654676368323282572831512024680675046634847470736315493469308911516303424424007553347357392216334204681399897879867452447058864466249735570835452523518136099190251685607260803880028248770585286837453205972913577396181838742161650269729962895303967698128688406710939311216439846708892219259800924529853454480914260454567419556905911395200304027213230270560031825309525611055017322462892041762816865072215654797871284901034945684410748771826579200827713613716150917881842883671147163869206141513007999302666661368220539850846900242614094458629779861503072601674012999022590006382522805960498898508987905846203678820918763411421187275858423690580816564566340126516805784238950681127622128323080647252598209503756789769627036841356162414080338832440255090628496913760738752383782798961715365094862206811071429772065667005857958687386516810231553476696726701012702343519578915242532713921875688888777410142145013494682529157821003762475260761363068876701609719885883245428633176299086112395876960161521998842849025370469141967277531096156571853285400862187709180955351578879452626844783445823528370134118785609447435971233515653035612848912576018389215046537768897600770350848317763781051609556765352005108331132502418781497421737297966684871393797049886744964359585268814521317835006219703957860994382533677584662077864735170743081301687245892203015384021269426065793836497343943498664166392475367945724066431737438210529795997066109383817209700920162862159604979257149192235584093246947896305735529225010332126145963425673446703792218557777873557890223999165800989036040346078779852815727375823739265156686675263520820100369683946537499067560002803783928313366604102344802026368653675431141435413201210956204950549118314415808743037485596617363906979120062981071315509405233787811902309454074648270000455721295586235429051209501842929641914342952675817300177264197541045576324063498330241069020448920635716874873364064613176279816307885376207607911252081996921680552578340316685845891934886963610774232511027339161518319366118105632830178058663458576057957616041471087874039255431500917561831965611494828093979408434497058510304830240327243334214601446504841590604102699631314007315479529493684819087846081664261149409186878782425750209716437180047822341323605682904141236897798073839117759766127937191970481369383956980346274807010504024203812682797423358431739942208545338914151448630228455789634267307931773717102069281009938261033233395436430636591498455512418770582403280551161258687245388888867815148694772449197053172020900321355465742977995040494825295351247050112630487185285220345120019145189172604917895875676293283146354974916022911795439588846562966094080522808721973352925662820733532409727641524000096311531157800068703364757623327453947280686076601950461214479394431626789330398711892936390889527373440713654477961384767898757911811784636397284259632994626075590664251211274956140290037908321021251404632246113509890012010442541983890179985402909234066449772530441456675428320675386998391126893228918254387666509094229543404794679215863848347129733730803248409333497694885209777992682768714118905914117687699592734035002234396982744911183990180560776271392647804246838795979114465447086378617748199904607544005945587591298686183084316704716380805328263431289372619774114916784809084975815160683704668966732783612868114193455909479913387762499537346892169145858104228793636852935252235050022449219839283973549726977608672347372133426302361179656003760724357436562951226699048394148113720139359542139018844817201093742682090384112245771921788159936584969978622427961357943626881770530572590934327009141921675064122437296053005420820545150614688157481524405227061453223378399959922247876698177943998297922638520232185062465100564452139312712611638844156356507578551809516259976599007640738680716711870830820952218803564079172926743373980131922080567806988999768985087781273653483406621457572923620157314545078700126466284051924894219317109278432643720775253303256818977516840110612653355328195184807458876730352450129744359109945476387104005728296841875514014458819100417789560921445599070390153654841212161326522975468107065825256353856319761390627567985714792168849897828596294408479121917933137034802230258983790164156227790793119727333022569560235375206736181372794541792284627487997533954878473818127807348360244712393889170700489248726221193857796573614775764984934828786990498965701049128856853258491736516712532144616502304542686351106715979907508088691293457006841201349744823261837274354955277541510884925743924039719601182804152642215270271533873800886757740275315316570834481323115131464311763515891997234764896944417728988333619502391574488555280255758769306939906421245024437792063039278000516422073193259623584177849558636814738488082551183104491362178313180262257294222745715629051384420597483646283387181244624650197376031964631076209412928496189934102270273478583225448419398163294120258761908666642190475826255382681767521532483786623348874040404222495298404162796138566918052812064425512452908350528076214681326096151733914362656892078335691327572729967222267487722721175873575658302427582285960900814336273914090195814670066399129699904007971005077685382067287354389900380713226085318845528907001784934643987333844144674129155798461409061782334151442412111232175367176391492414891688297420513742188555713007541225479269778461326027683793142394114724205324902010332720431472838082509875019289508037155167894019776445267230270040920862448004609332530742200592496263488374397542133463563579884621265612627818585858279061220487083301841393148462854528678068288725168186145349769339401206138671678168841409613414902435809837501384240368717009443755014457986341707727047451245712235703972545448071981993279627714825784018232155398671512603190151509791859282654748653081511901213924734781740586013878688542258327197230415128653792641328149968605386241110420987851246072003904200763222546194349478016467191490518679578451389971353721093145909910790812012566291999602215196259495708661644386556225398551106766923242640121567594340044340039726100889672491063075449448435590415579166862721181997735055750807618997040724953310090240865833549842165255905873121681615498277694619951550694980176069264708504082908077822524952981728334480341471185020622335893640173285937663466214396537317493757567457237791028011075259561053769597628251037522763466327367404992575907861598848409550304855796229790877217278168290266682682441515939691140904832335931512523590929490770880075485988467443639815588211843078663190971905924426998970866180651318006699721473287004300952268886952110657418665735482729749689557924278813341001018524796983721327333540281293395816763992428148423444801743664519632901064688158345581813070902982401640065977290836498390899640799552579486724216114098871550771648876913064215787372991057010460697836616012214201839507406011972248245248447586431271954540947353911561185137783628913674685837782989646708905794272068301641516750486450541598774615707640141018601976479541360265134532462707068977051310138581272765701231592776170958651302297806893803483999530485591559437812220717011319932476219931361731857075454102448361805222454692870192427040691665394317161189731677757881989908386359546682099628558940652334731597764969890524315482749170682855869583853549924880018821731576085824778780739270133823139884532508069105363682797354494893731198285707779002905293276148047915805053475909899911057783656575657157981229844211667719614249180476183341214416078775665280533347379297227278158828940729646385279232511976312220242435257945158041571296912901736696688626279502875114523519773014805636209748309717396185762675229731884187985807581981645005635038905223277552311503556487749152375215864709825821951432601692559596600335057365175562080821398909816952840782994675387637551312936333476956340160131753834968271072048583269890702343106826418895525711434202638279428445430561997243715241698507859957851704252801985633039086458847050500063932914087919331241714781066622754231441051617767997643356364318043608033047470600824947303841502200751581973221319024573306202408233322610895604266250611417719331483599690724153159481473472887996427914269171306478129121175164944947717315413862686557364111075545337588047855957765557896216457376808030685512983337958962703007605486175080614198551400815342795032977857208826876987643822683796831637645978377423401240774414700889904174628161715711916152756691610936608831893599125722765836984875515173111016641627128838795210426496784103804326676392151823987665867992768543995997664008881285414367708634570460389849572232330683657860854624238286670463640056270742534202908947588886048385160633623451606647717987682166485451731893843114119644209355221466369136588417589548855681186984635773858705957897372160132603581862542652891994075200759121832286808945750127542362184298588990774691414501707846777732864733099026024895855862919459322565417844255519545181627343857662295547387536656856255870576505973259502178720005668779210188703388219408552716987613752699363727025048343836274101430750639120269202054867870874712460559734510701351900407297395450648062124442241733629450610943504921706552883593000427555880173985749209728902123251650527199345898657160865136245853774831657026094621615945499747289834657873393643953264053616717619384171983090516417450333423127532806727422218969776439186176204646074730791777336617081756572208571432348195763518355525506756693486254304126673288183153077436719913611527488762859550231965629028933105800184609781378273811387502378967734942938784207045858961779833803717092228324825051425771289675980804554146223615297380022078878347913106937321440060970423689047890921162384209076659130501129416694051219575021005898696547201229026760544182268942371637652014598070233121028228181345235065649687582653502514970998917045254563195156563210194528283427384106089788273606335212000259211930587803839125304378057773244064650746150075079820956120089513585903112711047685525107874659360737116201874178164919189681717022946446299624094320776564613515246882177089186892120694772910640869222000882199632360104282795770021740768491573863787071584333026634359400545844452051538040806471169586433953276307014777675167972614262074722135390225380321802227480022746589383651889436336287084258304426058397626387980123733294055401880405013358326085638230526097729697558201632131881405324559510181023485806492618416447052779083834049787049428194955604553322380404750916657184130988795036910683945579423858859350843020767163240005017411466176846429910236959767383847063473010846909340933206734826811103219333039084676021005606295895140266086639063934250190820673389837101214804805113419608662863597599297320960004088149866679770486675637390288207216359370283790106857061916601867694741605903597218410863818490404189441260913266480860402667035506988536499311641809803136036051218846080122031003361991080097432315862144926953651998683677716783907677475234925777297286234895018154336697338365470143122866564362898351926166535633230694214478583052601824717966749457495556827397855097946592416915743556380374176974659733912437546530398310801777250581017257804967357688720105022521966362094029437239294408292144084539846113412134041534254573863498556751229919791558761617226352969851621829952930915058181730998821959337537286252945662829512614103277143252713587183695713021420187363422011099526128698309617866525120774158518972079254649362789982035404318716206969701581757825906668188423783753960490937403346405732266920291956025480969883227681878822907886307737367352969841369367697550793977838984434643642805046460030303082225587852188385753735530863034922278913091854362962189289961406351972972128034418811691625104354206964620602956297540686331905297800399565868430912794759296683256735845211682845819103835852639047692514705209530567252829469492789394316785955322345995562565149013168745431608648280850229212907503601925034028842874376566956543414699015021326127220319190376199066252871680576419463612636684998263351867266475201013121541290045914273026347448970095819490290228883956951461649395995573944715926111415102277385297835290368581960842681918202678582357966523559148617864232447625239114009230180367518844743590531702036908981359798988831806979534366137036398907474688833170345013120053924124198636845608959488160767571770460614291821183866770224054206842849037403009884783493996200877883734989794048335962484959481159659929990916770902356951343068749004278036668585118164492067984575936650442307495440604321172663555093024646489134879028155513086853267457301453257555887140062974121443844066571295001255198904317051764716345134726055575899497716251559322059674945883035885169960032594970872644139334890811837321594938104214131142073788481231661430971658773554792244617379101834234867974127016495251544012865604684679469395544433675950847865234077296661565084501660713204488648531556350360173687092898540204723278682506827741889483536010767854076496888471327683084003487292622086261350173913765307354500135724141709488889555638008841679298359427896391276542639974430531143350767310952397040919131383460856304846506309353853648459761809741140757039283517409727541848125280805763219097289168985621978837797095574196295987256140459276337667157278367228304435022654906460051769229579986532740160240895999785650196223278186576208911959417155996306281690843605557123423513582781961517617575033554987821631053535659769157913285493932246231712566303019640162134123861114555882660470678359092647238273061148064747556288543008076996655206282277327311544656804494869947769858081650924262778460253325681706194756633388678267848048302003573861763862737708450095316692872981732629590437296061415392287832073278861594243019054797697431248466744082168157500933903956252551340865246588062930398309072274093767795933653331404728805602181275934577704176817783006219252141279676712933212960618625816788430282697805964098585092856263437666720512837506222070238965651443284631632937245594988793000414658838373244096315058574117986140064020631832165767530754329952350457047555577336038574645654288622363768869603665612484590778425635780245358641301314422573988693444022889125821065217709477075864395802632778679256689447694850287425977295298266270245930821835847204168596123819530774182737498027452666337973370231648541282622751409904389490450768959647156751065524112490090905854594153816152676500632966118459043162034732914573863401052202786529014577675179147808378978763369917499783663341919654634078603403884847096385318190457764705065302372229763695996396753466459661352154770367363905275661070004842724897180899410491690192754565668823237009876794325394554757473075114391881335645147766754797416704097809791885352939619752081864266752871421301984640693488855474521217286863696685214391672688608824731894713288895307683939411991258624607741507685243387510431477850293031812578538085750361173131602273952220318474070397367989729901767231343612501766058756243086227305553099044508844345862081478021548094076439480942720923638090161010820189016712545441250220114053671877842079792066710831119963736115989283557738950071085162391054298311177344936007734513407581173499133028446411497005329779601192548945676495899615015774544863848546989434695526774012411734007017272672819460881282134328567639521739723723123911773044941230490644151073088586000458663704588070251941305447478381781972465979455044457805295553856159617867744078595023546425750849829241368077644203809198625472892260938199168507468673110118749959183043354872498129377688389763471793217068887351100507877838928924964475217929871867534568111205658890861317699296266368632237051112425591148676528319567542323089473165020060992900791513261468497159027697753212991388124637287873853077478695121265783462584388661612090191656227922494686931871980868658124674207005411052326810954232574785318194134691877366684065992183973899623395299893117398659440334666573089769702627934501568658850195293236881639165972913168022149703499859620233788732199837894126830253964993331925519306879669929858672919218677888445406923988500785578536327116085895941254953385440742744384209045013075801339735071985456760015180665293549004433482233688894811856282764190253657845555670251916743061236376214271896604411669117945017331296950368886028800039287534751151516225681894491610982346662967475414772776000024901751057817911007701304764525012821576882985071745267249317149853297673777910047452167641720695596044930914361586418761492048393911521339959817682695598446119740815881421618635278134959468133320385228620937766418856334123518237200174293461207748731782926785516843269907827778156887065179736203744877203759086850830493684328275645844854969847085368203202104619746689568355378211471914924947265497440892794994821648949294149244554941408118599875733558493401971207488754892089129608171994503369159640667950809428607940455725854289313084110397627262992470071881201878656921646308803659637518223901480351572869215108630094186580650416808461206899331241244388011791008448596357315963025888375231033681258325500165669759762155933380878424418316722555729092715032466093954489531504027497866156374096313535061516615106476594372117761310538516512066164979194787194006714529786134748829492690030374255656996453103899081867660730038876507670073131780531962100654579384694796614896150406962983845366367747337110578168600595774724998518766643391652171650030351519513857447540648553343910576710461318794418809193451545134375455716102992133235819189779541383242200087173615554327545259947319800836670767346402785615896083037675262819760905099745681750991572827160596465287289940302858602655132611776268685946207151884683152918175386224915772914288999320722964258382255942282770426185850713440499040801190635567819504715314075385321223725419005002780231071239297745871345316497062287641365375348426510805218049291071497858353618673660989904444874198753452232957229691734244055855965948487829891233592022921952744548279159372620347459503479571792723703204808121255866173972710191952483356545855960178337964808093417992639016676055313895439292814219321058435036362690299966720457995395719267908213968769135961343687805513189105018120567488018085653938060454258394778414953192920021713581386357718934240244879893637015598108051463826769620029094340755859805989971451449952025150419795440956528725345472161400550246098424905443939376106481575786498229956461354605211407421092097806665316446835091833957223416551056684896165925841519092741875212367010238186212645353160366735697632884948530267500217873517135271083528650404894501753426112815583846610337603377575093580205237664825979058668814450008670858304457672000675858208293315078848227155924761072060592695031046748772846909051976517733739581233201631425715815527240995067726751440614248088749163606969230777867207181837513745247164088041189948480631372007803076746383965444586421625515739424379944888083596026736122436316481454888683453222152807713407587140577606921873772893614740574505600973730888803017103659112392316144676605064666025257678570230679340314428954650397827241825575319118039268305887328421574161790818949920869673507563257314776560777306950209970230779147823325860842052002224194984992807377531657209179700009902206487684718641452093231571746899271197412209404693638998469008910071100578870784745502670559255643659756467363525358692032368492742046567287552894688489184995556707030673671834012161956714490427901126545000399939245870730319507825363503110870976004298760252272506307438383303071889848613387536868866866731789106517614942338784278206323827013258550643763905195530524176147778724993786762455164707717516207990970935923616803445108293858637856059734308515594129531499704275475993212850359127528142240676733273868855725867022674888466321509349867955012560022626303419792863797369597164777866024568996017422585623746620890051891201651856688151053011691761122465645707283230394423940460285888873774810380068801454108837482200314643901070160250045302265839254820595695856774899750042107652299147006076997485147568983556327495455501611894579109351325554498897999047964064567932469325198046438978902080310491595554544384891309498744770820916879651852803894124471710706840178720589011109933263126882539021353548998573649154670220168659376125094930323703624876213893951255955530205577073810477164933791569392930202847803850518467688093245982408974757959013036878478567722377491147688173821182420432936190984453025976036216045041382569643651018955161912906248464658945793632793651597818287760744416258996239997747047140495649435055498074968321923433660819260963971222563325072324722396672635441246488012270197277719760980784586454848151331756505392513328592503457182559015585572048537134898808372595833322756338675416311931289213001466571323943133341280784924215761529611940478191075098796701035899575605193935202472332583244103729307167965783107433256449464248044928212344980731871726709281127025623253354619770774703226436097690644169289731974552819661996914947880576090028881885564337069427356813968844764943985598152306079493363438081285200582722114850928662088594002053641744678902491406490966224537498037926177133395687347257459320598792568153894508054864264108662066991663031630456324800344229215044271211279885003731581530789029019470796695211285354800554451978233328663891691764812512261546229030676121687353642986479705372347164798288646906125052786932800686324760813713126427305246508065556605637317492101720709150793809861447449980219470308441063356190554353969551827651413781776579678586762318233924260606937493508751220245045495924072245990396965277462069693331262089067797959497091657727882808015846243599785374823749009118435265766039342238680645375763305019402566815905924230727105115760917854587055041319451577873362696143838075146066504341364538243953411994648522701337247451347542959278717181788135998595209362225836528844426837109428082342985140059110988256955756396847422953465811376226153984341726994795935993365871916959965750901532537403324090353876381620415545723795865801724436914697048035865420175090975109039953640456834853952284610699198888326944494152096045834345798085522765565994107294718904855948151140267733521375889289034702229682954248601375223769562235293750194517117125733772714742941573559558898496270676910667345867253399843664707042515964466217860658058341233365099084254066407857501485778071524992232025365565572883334900463979929190779910846573587472442824226664058153754698094769534459174743474225654735563579822690495404912378764994973329947678899411762669856103685472152992875810213728282014474179036275358963481629757865415290295362176153841927432302365306387771713363857133310427513962103271969684512240501638247422728303659879400799428046004009151479891785155317107564114893795977602464907664005382555127252471618681675669347270859096428846776428395943459388659093148072248351731387124670542999648721463588626836232647554561841940950293313021268805498544949346353026142152284227554833624480505524766984162394695202115892604515156737662208557144304583467778901812356946558671052260397178326160483178290204494023991365077890396064810179582923989137517958054358853732751445608433101344826834011709540651842151633183903525856449225940654534548146078087671100494495036079393544427003610887867435125370019832826984160279762733114272037338121236747979816601518906962608266046057728334021162607197566111195251756422020816213819530243583463262354193248851341581920645068778729400593014247223539565499597303940013363799700593864393314292300338143660123413109225992409998912150962551766629810498722405571954211340278537246427171431872394079822244058083999559350355982697430344020495969590100401157017399362598168406066549443227447895887111615249839992356136953166198161973060217541092736032408642482673048853166294252959849318461270750310406542942915243211319829736708314255558441146227665447572808553768472367998644106577908531981950373249908725349234471148266853304832692906950563143302769475865729228997818644422981268590274977545069833315241468383986055683973591602653819453345364875656143453704273556421214953751471703080372997714255221832416037796856209568932538494068569281690813513536100059075266633255936911955469676181694579999636721816680585877056269110807324277941051429188496590049671709990469499747293680763456718028406821476337760353166661870865504378615273608349816637778209234255797206572484849509301934718990486540141064481364065632601029953086200347985771972734159940670448104046345869116327337140372059912691038353877667820301255085767358173700693402473865886024887867560646843833365390073648136979029406311037158136465560222382575171261597563466235514299102356149416175371050446085650283524349590908347928549974056237855951209246156184470098015773959715707000001816063137278998199756075509691215905130326782221401271255935860810476907135727857914542960189939763641026281929426055464433558095451806207300189480155899988730426417335565549793440523971422850493279251656958569224630426206641719482771484329365138624105009872439200445471578486102594451819591931639622087611440879726901189484612376470251034662811658586024443871364230628813930526833727935868305623986745073198986885044817031059588231760338023420541931637302874612455214448435849827742492264700735884038138885253421738196347270668596552364170961976724062833960051383823134826381311631698718714762626765701151171932159127418896193675814149633032704675259019277239233214641810881864819421287505752850144805594734878817132258806817377523369221122141201703500944248370383878949599701464029249082442497807562939017123365622119573968017975873886338481319883729191782280242119852240257783204459201475726306415269091223701977087922556716568691622733636612252045246418180772654188560449389560951571383655771743907335618397892005440714322703788927215558396458174431563492075091398450004111796791491576452178713302082084467385599535764442995223955885563069099088072914243194038509046657599676596739629110975166866979576747097001598897736591548994853169755403293930074833825470814088756011691500566942218968122301432665196267287275268872053128286635134843713129631301898617349646357514278228698942413543253511366584614532893396920329099611621484901124992933740780086671373169424813204985120542042221496036226933507872843382889990298518128492565941336304942760437608677387008452568153144276321854387903668675298856272708704745055560755444399346505438947488519925090187347519276524921626279425265595910335816499741542245462295172748822774266971787283119557756932152736902384511156787231680648092287511594910857233024512915891591631954510491519729683612059990347680458376169083559050017124335669986607703124796232092969599580912241655471593382163846183195265482609043626740935894354932207775146795996973245562314036978715724900805946974739934678323367600448362081651671584435799460121053657933676729366144982928813670590825481651041312768052396222954915761822957855163656694402362809612703097297031014313245623920046452850795365501735842624531791587131750233284004077034768882932998501224175590337604333578843520502181081794524865825860684144221364128432491149462439317237830007368626324292243466792344399338104474619521586395529616222521945399797889670588924264534850657708061663302619349792113851025295781426675402417473647885505446218256102892784376196210056622860537033075829493619414231364572705999493446952419504983969272369128053353001672146752349130408170586522602951846049043132523688397550757847654249717497000332388637866142292345608125320270390733648439661062820253289311230323009299252221399377519366558858449324564316396071235868910547105928604410264635236851716079148938774777191099048027432833768892949665062660514388247556031712952162412378268806275136088654333607131200888331499953566217593897302064546029294355465098748296236840811877409414108183613488886755605413409653387591890221088586564313495882693302488542232969324394938715939389027793533443011070483523845327710562288680407105619096595695724293933608195805818949417906770129821223567982089236225440891665108204785111252484694102359553947637340707344009854571486735434323275604383045461665697738489532615708749991297422223937311445793499876786729091900652996485413058895111370535900051274520193485309846375406530934007094741389416759421472674928452898594287974466025682871204967095563045358937495958235116128620389742767928408695450893224021174908548529868890627961248571597210597667366826640460088443386908550924273815709507095845457536876479551733830454854528343746706066226195734600707994608117353315861106698667773109028760601085198844692904384096028756120019691536562452958892646091029806617735857726729432150910914212995117129368819885630730327292710643633587146083956094300154766871447831392591526879138242954607964266144482113863017372098921209229235853508649617242888065230803914873931567173400731357374350170107481898935646696659744061640433838593131404744648451589820290483327620588120173714091810996036431596523991933245707945601205199347019272898234691529526436251419341463822939216676082071298571255982204804034288253060884609848767178853668088338907158627610825636460315357051832964159844251142152976732707021115342497911321868359517337295840584028506568224200502478553284235406950637490865524863506487648352376901899796476330760530200032855879744399719156357378023849098610487044567095736552160727605249883084295970961111635760030823283883124604366001398029214809601175667120903523052588555218621817395204539265929807202233171738249540211993817342134347884974451094943257403978075640418726267751113174668597507741231400207183963122025470099738052469551182441482909720201663825441613168834715963300511552302042366494857519125805278208469669436430501295556111378665095724031520573211629055514748285506939231461214776204165437527000332776048244960991068960168672924017814375674015176291859398143528473947776018921641598043666547489148640569222373710420447351289303927613936507686969666006201887695134341829259655307644261873449451605590058238289485707879010192193828964092030367538038510276540851701728384082644765250477598427962974573997353657060607501747991674380740157908258401852151594721338428216738501641111990317577859532164140573994061804257101079769125109590089905595569963866987038842903050958422476036868881941654755372496495356496953290781108906709503997718188751306136278817292098202699207249359960679785223260839140278974835093697249837154772968624400896508155606225668830754844544279538892376509788541800723065679158790763246967483469121044164005069992015443535537390516460205851400040815487662076591488037288421851968039743084982228439378664945754689371104023259652596015258252702040951862960293445619713689275442267288831693676925849653680139315752143078363334747046917480043562502264997014036460042408990936182025331996795069134699073411395945084118400831190587458428625721769852373109840148206451160604786671131989746814217950843585787444412303801531715527967618082408750430361008293910245776542051340585568282584429592652045683294215682379588068500360264191892124707041909862392743153078242608800713149795646496095826529598864362157464516572983044539101737857607340204941751484176379966084010566423873833422857269836897118043679655639406104037547887193751840269762226705465181183088172891034381918054036043722838269764192042769452907479075806698803636466101149311273197431834315256483967447521735461969260543779228248258246810285303790357334092237484106893597678162627005430994299567905028490586287651240002655928121418690044861677974256393951546676602017793828230782981112245030600851604520104294870315252913975656001265366393955080534583311027560001960007957705726423289492901164788800105921416409781564048205079327017166217545440795388524835969370727598363851315391577168550106162215128915407319563510613659673038553907441620445635925101349117791622264820514621176466595360825118681648965766433943746839111764347155681326468354986691157867726347451090370417681020936421449839378588159699624702101763158329980979505878390327968675092321173631091830165603319862736536956248179712002640136772488795873395159364660026000562593546178185696887668426048570554613839367383949477810912634574966891654649699385432662484092501735016528732388365718682345489484475445624515587088061675019344567915805663740473423078966305171504769568727439276408748226922802056532528137337755184052384088422546300307614016108726884175646293010965086016201003724595987034151363786281744236994672249991714225987798129572929347019046540067237512739261414971876529693840883322041429783935645585677732527060930097893320426513732252746279875918232356140263613437710045894353456243880782017240059397958281084367013281471864520509324018876111367744934549331219736878553906420960756023359758653033782426939357504992881765666724293894748235144339906300471717057887767134940447562142783742471419219845953606069893512090101067065644617111138282024654357544677814421049613731023547807934965953052254184635808717384256592180570928525431106866376019801973429288534016229948970583555507259756734849222422067033278822505023310176994432183694660741345272292918571456424024684657544917204808743753863288557338185379965312061396280204463966008619872242879201894412807283289894610027268398832731204946128245368966420760012901404908778158953467326311979805044384075303382112273050560055066966976300954067456843768747781669787284066660312954392226448385962139564062867789519875493852154785722638138457244492166091703839229662041189163621079082039283692300181599231325067190511252480547818558341597558745296425262105342867925466170905981778358265032596724964490320480767409935270062095950329863300737103615018419935663440754500266038202284676777220297139516964460375154004833545944963177155229704208898919843334485939754502213770298160399819231565036532819586479721249373109322689697999943660757967039930623716363604337126952408681940158578271771171052560624560380634490153575465305070573719004185357905225207373293893666156641188829498272098393779576580074459121796575473343345133144073466143802462955125413472463346157125336229474276792958571069932315732438877240229958377167226788572254490836307607605115988945736535902019360031965186087640326711531270470721157807691735378777438571466434253267962660108440242974944075073151969279020625786353773948900733851157480279009520708921561856356350756089852646982586219219715875755955835085831450764012939952821557159268413534638649071172976515566195315002628119892639179465112503900675372509037375099464267810424771392105044249796625348688927106231199110119268386073414790739104445092218794419402293915468523214081063328852059589869038053126781938304101694570009769175904673972455401264203916017518248839856191466195172213972057965758209276001842633756602824711901056807268178532926988823503908032889916229413262231355642555907994339703558059262447261221546346857140563640755650357366175087120667799784484881419990698987348828346736776264480224420278166521562634378699178962054493271474166553172989091014207159759787199029971585802556731374629664380973863896761843679044654501837997162382717521973808898518856416195276506786278700553880607325015144117207800793108479683326814324624834994564656351288112658148763720036429775867527311136972937991718421672875985657143007773867127748351399035867707690924782721419132212259229530133140392554602128302644970492702837273157015665071161642689883125431423642455939893023249561039867829907989543033483546122221221864607833006269773158717807100892494931670824127863728304182523356391308151127247901127728105106497617503671640963658282375898258509004660809137671290374901786106647567735601839742309322668359509266602737166697993035054461746171508314984560236475281154993469050957666654251916484860019907357350049122420879570085381538443089707335970227886583115712743473734410391602627486126697888546663221498795333213613720077539415583586781826313111587089721204542754025660252500676521985654886060132494327959048929185296872417662681399417516297252716653198091088387245566685612428584521426537189293973822560028804504136645675201977773617428286514219032480267123501330846226206744284797667490028569282271011411784277110922376462847473200860079659434603424218752447439112738535534889921160647543399000651660063734735511181507593070289104502459691396278510796534932357416418506667183761117057405265727958990835772305018304400076354943399305530057125977235922662055942718321765412788759628709507850013452543956204080198725362521259007217629878794717962110365821525977208895704721521623875938773907734859953367096159110689733334696546601335252447885469481030469426784301060226246575259587353196410064696307715772892540352855185633181194447058806908773512192281957920810048219206240357850146818539232208718713344504460871738020544348985803228954630529417176393811162941144632103577445217142538523743113964714433958813559127909174828154936966256758345441528787840207094412362477893552450587688380664165908928034642867275018935433177882776228160407976901653059721128013121524186789112593753399064903940483617540221981106286645236558112671273094313035068481519262329324391458828083246236955172276833935156694201548908338368498523470459879741734022562482938613797119299839422921193521462527995838504700577544104478052140199698306032666721574804139766219219380404842767009332541368673107670857013674469660074641062008230023891458108693776934143770203772939918551785824987928808935318064335651703276541085111437885899434768669921280067987552698201825102658081528208698658393169910983045376284184287190369368049087610893432289438510825758246774476647899415097317640040307076922552389020417469820630331721377700345082360300391833974158325674743419725662542745819932183187877279873776922837632157460385600274131282388566713721321149123359565289121083366383858763743426056109715605223779158298237312834404433572639882828632257568095132996673023647979770602305769037989606792158732536506409678723201922103958852509842543464108936970403511668601188627203452582194512205159355304081073714508702895292519575910208921363787691966643523703675437701726825182787230159673693391772840194160727819831197703893807835039918084101309208768908540250576714597763330358384486466014208608586513302230719838902648661762384912567361678102787723230622788001836306705628614376026900778540562996024831713775966497186286566697249179785245128550179497260774225517921235366355077357547825362753027294114455376056579492096279485788765889369680627795015417974876081051597367438105392628666484505929590709489503697254175024199776562076060341833492022485885876724332550529120755540455841187621618520187156482145743196904348986128865695467337790856760555990595345188897251045225023442664766601601829848493530832603654980868865098686334543952908946252484092188356031367212012809280665642446870762524427514058035017152699759466859978733778072202519126671100658592997025099315587412231462884992415767008965943599945081808353658446252865235189369807388678575505345339222972451688372634732423591807512243231886494976366671567231699127839574417735673280826647346377850595312088860693360564768899820716835806091211134664426985691095168889447858603368127796847362694152783289156079411037926751753702826814989418634615043172241983085433875269853390391101416854587345749125774274230904470394852920545014130783112286746097676551061243705881366180301426981977523118605046926897069045275902460075500738141434987529944014919755713153710323882475028217322938119502652585048816391230220630166229306661012102904691188083129365674192113529250587155043746888453065878053883739785681638804127176507749596295899696700601794144488667659441328428820720830284004127873368556060142438127419782629518842034706792092714259313440412883913982512996550161780709961077222699247065970988054608727554303542768910595693539031876427911707720740578527356116708566803914073901160927852968067707640646499917283649117437017751900960024804541810252156780634218802644402601705032951191209978816193591744240560360680030389515306819854531011444384682402407463012538967320458896842798486980100214940701284857567646470121590507114125993311174612800324921260853968644659406682174866089262286174606749770520668166678625287889015679515690315924537870982943175155045631405759296596413004709620813204318056134547615717609623353369447009261616818641160140412146242709032814860987875639656589070153694229602421332210346436095115686081741578140771011740313007628254530394445089532039523123096553416694637440640669429182070573148764759301571819464604163778181202946732352618915208358049336877708757176698567996239327442426909541480696236156186358897630639520305631930732797457655539450931881798012634750723200652917593722233140009326261665705196189694810306883730441192570335508564113319749288542964304352580918784086111396745043382307349072091869494661679140609867947176740909203126642738359958127532489948510579381999303698864054502436451429153454661517972380550180304933638561343865056697165416055143430611545451152615276960038280361127979714269441709177987067540459544618615481392514178371050605733847946756457349953500750740731051555275447578208307821627206057228239202213392932352990702459158463257343889055773013126477677221717879730226726138984575101688907797890775779952555368178195072379050058840939345445571937636745046894922444262616072837281270378335279242483820615209259389729990664994647700929902282772820852131616407387729856747860681230242512583798995650277759446747301246392416948686823087323431103281882601160007967491610249056375539650821500083312835674396930856562627702766038934323337039978235463243639497760821087017240491412861758646427369456448338756323110219545650689550582840360868166645884979959763943328629004515563851423793472702752460628273138672997765565745358318093239757713474871067105309949426377577624925233481127409979010107635133657997926560245113415945881658039989835291282631125353704578319510247428974785247784271900224642600171945312176737856623573081109336249211501327783168007302188016398610808605957620092602302869831379751699561427482020435910732969766611058108912292003699528214889414840741506790734146404810417935677916753659364400007990563836672707629051083896673891667918261023482386783381843279167615653770363830182620296170774154600305896293863247753572459988556638688205540535629188599895592383054059953064047318258572024529246217720927326619837425652652238056104512607889018618665282361882518665831064358251728773620461863661460057094951662360915588048107724221204093727542312110197663213042881833111183596347472648260176169658329218006379086103135988726550729296182233121114015501314986684183799759131093228092857891994581731836787160773228421734838325618224817172483522612317408803386280090724420584790047823585775809441644886467463706198166828954932462850377834082640369418844340898522520243432867246746621510038712473272476100741071662966355303389969034485197894216666086833257046357221143052093848292926450117544393199794285612394018595012747644282969636483159379846974712245176482565265355850809973491640629719431647929373875480822815562837424252452219776352196605849157130976059851254552089224810234635431979248250146435739198886582731836765518666115061466627271069869285576330915283126649818999493101368668824260789611755349571967847713717422699458883777516756267692268052220861084112463861906748405223313691363588157250130082770374129309311955014526617386405730338966673925861357045949228551262614640237341779629326427318820444740222368072781581105580405703813660857259481875300297507437707346027548916013505127538145142420545618929313495660037680090731580375335346465460555521081117777072124909147158318319839676543962748712030564039243415039446479609154756334191798973726131888482359925206963319095689416587260444216361865946707505513103770527662109400883906976484019010785968546775362128586268769731627489448605162551768703914002406552882342124130742726182729692935704730353314258385409791518153879531581289679829753356386991572996524533614293382743975374928778738845507073648963956873923016219581615415589508652869422977840209184467583486281553557956702820242833242705597788716308367706953494035311393093889536288172771494977719118140280539700258960745070709584041820028262769708929605760847778220467138658697209007235077914956759905480027505034448189076366904156450392367165032778799020871318970812523456751072021440802751289460890630927167111643173350224961719577629788259518806342230357010506520176643332166104608286462884205966317742333621731041815099777676413326172297574364852371518445220348923785776547085037978370055109279706132119842929851940869274498504456747105655139351402835941555302771571066257326011749683530517893428074439510608815207583405673274089869283660943598892064996199549260002038834920673659865077021716412556262295710678364891715901813882193966441369620653605846734505008142893698941563267312801966193869563700561584016812436147866188303088699024512259327216651173656722017785221961442394623478933712109346633042343946074885361529798654506150591756673533958312344738645999868748749273811918666187246486686656067775405423054314238547849191043389207957175805400383368417303051276637894012384627916698612131139881235877091158782213421935585249854325792682778833526785154427690236067665489573073332288637317782613709692319659653145104930393909657742899535580955720903473066405390821048196273952401833048547047488900737907416128314233183472116165587680145669383537201014177094370404987050518024316744870906989029529625510351078287756602557616411753156536131849451238338058395749572599644964402989607705002433688703805671671019595902549084477648938020644434744740554827704586871737507603055060613957279378356412138005942205568398080597264458839065774613350726595014083727995716727600904822471342153704942013420679830833329380399007603936079045631480164947427347623329116782508731267565857496690510266417220773464799600363093441578507493751399797909286474313331464988442528937550206442305747437467852026713172112668552806170443419776514215797848647120472643867604986097975360476435426980158944740522042373614326191654225288573511954504536410286659636927874035872056223054750800025772954524152384194662719194953763387526308332849336528393529927478555922230569845680843525088899702029512631815856375497760331403424361416798321778049907554321479530062241516643932992902533554081618079337847220629178869869349729230547427166713716290087839703115197973080882284277199060423011537981684823830599847419937216046671109009901385980447740857131000181964079878011129243560703708322990135121880521745828409709091444943638611853115777066550517317255313404335322313502593358812461027073390103774388248065875473959554532615367891177728120943765986746595801256952754752063746232736006940151995405019561665744896583182739619009310746838391066609863158616344296122173442193926383618526139471696902647930053163694967052031179392567736623588976614416802667898898062730675079068312818380108372859337327119623359945410410916047233566477569831863313827378003921752521899508121027404896950351231070824541863451213340728146974634155226037652258263321493455533067093833817617104098334355473917061774967011462625069524952437979070642151053482382934975389128965573959048838348739243487714349468544121403519006900780729244131946930025410560215261199914635059101959477249944300933844014359815306839861179979938209105737499179025152804166632189719452327341667255457587369513411238281322613639584027300675215371536541098989780206876489745626886677040545506502182165094630676103150712552910808967598775236383600482507887582083774534659830672086256702405344915101843488136222525203899769440354643359056915636026420044489315777482050140490212039205252050479176310708568265946546858829346833223675277350206287733801912405128079667404003120985362528179006988152089957049931312574211318945643035333798037209796905458392788994472547785885674738739014190190186567157241039592702364355317660969070277975049770150590662615280936039610780438880560415986119680313534697666867464124663086830675421140288523013333399811556748969152204753826516921007609497734440312842347384059847871350806942589939639268800925524693884634408169958819516504520578248887769443757285030281988370139272669732333359524564026276302636123706618278356921494484255186680487781746464920290975960567291439772719007065670999618656870323683898330473374755577186149817221579161123940607921860290499662292514370283275511437658404347992545622992457438803244760005878818606441179633193321417673330065170696241710917079848431041912394867732330081313839369189508341468583522329739807109956605008992190728937217868520493030586460530770914621055163716691485874820604412490184770657405617117177286588321619778552717562073065003435945413896539494021394176888734475983429040042675708132162588223989283792755253416577025150491389824760312596703013059353054470856037085775748629690067780720192986263807244828933344229634183214765173322990438276574273446256269595746818631456089557477072195394559940872496382749959268880354668787251807763596579030429105938249081287271062864077668527491721168717268719807677270014412595101595035248202073254698823178332276844008627975182313800142522903480546735553837845382968730250355672091469244927183874432875077770881310459392635117956217195990901721332971388615408743563691921650784544999111526336764013229555744403913984906043313733004631380252530135957855318288840307669491746829341410419315547480781535041606358841949605909589003848724393299519335647438488295887565511894653614369368659498336855247802884855483565877474126353458723009515352589544976501543508400331601508759636715933370519568091016897759993023135415334510414050328006317032485217424330836243597519803338579972487773218263186287770161221177482876690084098964776973419159548977873009678100346652970287435461912258641047638584597717711304374633051638503456463921383923135013442453611791745804623237728495513334273488133594927656116388918653243743106483267436648188752678307196913613923816403080964088671160860330730411490607859383796167506489783793187866680520891000433977000239909711089265347535940905956284407756054440734451848056594310306034686857052580692292209553001812825506724372201263713836710855647341487526777182964200082286446378773195118096767482276134778602565332635947526063449655748535268581797256579683583433459907448666758041786814677605412204314528427226052637819203271521141529714320029296639757667914582726566215156496288479748858347390430844631906011468832351904530014815267821144333282292243478889656739454160041569584055745966577541105570120458966730734523783516542201594336566813471071126342612499210136848980631734515519258907782571775152019212536625953919215318441408516129165472120988952308989140777069804374567732128598079263695510801497517218397209270439430005679523133800264012174627237133441010529758537706869889037951931313060439232160055954537493666450621474211791216205854576031823872655122163753641496725966928198474550455860397687711571460098984243872439092606060202540290823439599038688742604753069726951908460553515530260378069936188434575189361287883107808459322260866643422750261337234143661731547418662880110000685873218075841021111207567056679468495098293354535382965104718296556825464033546108603104892686092694088075883604626729049410826737658292170742629129377327625248465243329330357010500759667788781744410976817413025220286676807113134395779338836833793248521339077761715448876945850869851503538484171291925370276368599452059676749337536510178483548136090592279472857383917032392084725766718175531895578945655783749982846236416665323756761284151892347717224019442112173693566802343812213269577217431983165279636014637981519626112252554851233770129966021535203823332734331708326591139010247283540594619091289062298359401690712035683440677431384843919156215475422632975956589842465396650056345684199781665332097679607596835519152962711171795180568430754477783284120409208374092118581144103750813363331998773402754350696584013388212971672775387635364660880508983814575591159731760286009600239562069144840661110334681744262076784290095017471016612740447329128906899020233297977267579085579404304998873398917991259215198191726764678109299010717159172299214570288186396217853494390983398364479200468426717967460488764957334513034847792605734567059321764656673805619972141650147083423931243424365528980475757988152041751165393543546678116497506806698271378422171346486588593913181685131970588219507294973830110811322297681041182454223784471243011467176852916957220706920448179544388138948721909850213054314866423802477165142685027494456958141362932194408345915616821465602796236493382061947801635426259439063914152788458317287422161998625591348303600890822509962343525515595422799670442684528441835616862529424195921453189867464414432266946811858153023017647040056347741036546895121264786705928128353229173187444870632710012716223158751010166166351378832676030563510461534181388688061896858995113776603623097342076677020388087154349958139927479262195372443491194375477647335446327713439098636363122305326488834663626371958652944852284588518009650421678124350686024746274811338707341516915652668837394033199300256616560379677142497026590411670715651775828018909703521307271670999202541420039611807310103460441497613761748087503286816798705240559459535830289198229435869790332880488641354282305237146365179365584945627130256643499367574713855863757224157839069123878941558730619871084040457387380380970329002406434065801603902578772606229917118681082743080496586387599017627272958278933454108047814176691136223122572720978451311637538398429120857784385044178447206400243026521270323185197189642597631219223143560778091364934570338090927062388281218989361395983579703858287953442060649894008383304459049976373146845886816236445048575420777357336526237293369033964602044072761396204871605750140063242208251975013805047062549275087793760985370342093710605316308738125307003817276005729935238334036431336155633006633642144279684212606531631147970081620716409904395720701347122839222310906470915560958725771728634565854560276435683790069024914087088653787338913326689584397182708163937516203153029537481580549005837700852037149532864066930759825477577141181236160811796169841032545516468220904468856196789610992308837938472421497379136018389200093270274485882076787822046741669987492167926203633581716908273074256278994343061094394065270554469644078151998805453354095243143230729143450705384666481098225859517998188869854898697792114188441198368916290357351043275930480426997311155105958666578894520491634464688556012868053503353220860527188030137233922638030233824148988891390303654516599035122305384029468783724902075659287610840722492127280138399866053922825229985563152773811726517798413829830964011502658878895780785084827390175698990413209105460291369656257298439773861026284274854831615513941873214997101303124702077484737733609702344550431256797333049889192701974120398479378825362229385097507664761404399514996032263751277838933738732435201064760746750693406807740281170533398861230636666849225914939037485158986479831241923378495637022317705313267112835569661166701969705744111851133661563326390932033818208473442459324143365707274955748710647434364856402554722069215690813382846477613304992062282261548029392492383817387253793423748432710978040629000922811058245696751586333917494422290718278093555635465651374139742478135834102477780905603324261775807386815463128936212155580612181887881921634898623730806929311386134395421105634795404693522316096242539914254495926355647666301122468364883418650545484761431360792529485988106746270510488984600083110733353544243572609985970315873848976236656433629241667391985638370433984928077008728321105588321354508323256138589744820495622593098864999481444184617604640034543113748167524584980035877279725677881626787723708989552248176409372119398994610787609411975738454987003349904759971560509852736316388368829068261637392594698220770830464654785661408204095343599258739947271154286708205550527168375652188957330227098603517502623516233678847519354206074973693234254872105719937508243313263754846281453374272479705414450994520741745504035403266045362193300867376214558134042869120506197446915107744215077742962976278898162772003002711466734990043804139002122841646514616236478909618405015096940374617811187688864894198391064122588395801461064351003510933087952271874561486851640750429515107206986261376502682848497077085887878772150966343471310045519572906639231986447352493361137412437133022416561940328116409618551102674623178152009013401831615640554104337748808451790385721052855999500084379212056276605031228364621493350075342039984692303163416365426111501641174153893522170333152014476223465099901657914753353927095301869004275835505830095385752652833811870358269571663123396627452510295604535259786692002410149185262540215973174532896976867204365095498782760179787002341607968126746415977652000517275000620214998278364371297716037790537150307877913421913445510207315009281257156749398656883464955744297430680667884117111525469229029789975887589408409349545917843672416665928115831165508306832284004631907561532744649280626500402265658328223072497305192235933416106296198365448393636118620860132674269439249177048251866602074364182787243002047227357046324672461430575856038930208042825180081359030301245573900163757211948282612270859778496992871130323817543462557055928568712026013053490365896464499962446797535605394907678576920382530318753150566680671295807444474621597579998827375605554024120573296122982329018617205485945361353062487593966167114926966818072169542866076289172948896271758600525230269716785696176726939815298880438567829283711533648792471448791151211618412901115359848376268206109070089194030703714045805617833781568747322014451356322008553934240457970391445530589510715018812362477410588260120768138727852966112685571381678770696769052242537993745038336522737026052257300248728120314766410337821358685982730621560032119878480177451089928217374762337011543211447560506361906943535752188766859156562844624736609101367441501548547644126716432502299565114687948978276568963186338349945415233691872113634189132588496927211128244872872242912492252612921491215424150878130257577944711567944976107858568820477905214985461782663934608629402744888008324066896743983557270185117941302931451301377401786887507514610612642717553654982430238463108690934376891552795120556533684008392707994553761322490779668483281186960319168810724167178245123553686281369790321320074805700007203972826216682143607860480842695798093079800615291813222470617386742067114659639758467167158259098432287475008765231874298884198834689396525573530872897878040492785116854038656073699624031954161699067105001842754637096523677978260336514905230032848855742267673866687367632005016473651574639653887389621184718152509103162848403792238047982955511171452933015782009130633874805125193088890963422622309527662683864778259355456939688677663488734751582532147475187803095063064527164047002912009035317913892663783369916616178649353011430374724735886080473957081740732444192937909877479656330599252076634650668365343500646320226162739392494041492489602713851806255376454454222712161809977424608642056056944338435730214921187612547517277336994893523318097635365910701996489909618830333649291054659421127976272632272765955524471406546839238118854234270357710025105584296847332589688750564449201678588135867506938115895722600418045370774829648523251321942377185331565235688243595672278953800141634215942354652930234145361032912562276474397128208038241097122365268238779367359354417584184698654889964902352654402058710000707965837241249007867239542232841427651430542612089092912307760183374913481604488568667170242953988497079213920736113843009536072671062878721861986437359698810735249250058463810123890025830078301390896696231540927783625826122768867352470309476680968743391534751653633990053056609448248571451827584860832547402505115749370006633971507251499219587780647588418847986263416038152019523797333744640294442403314761557315477893922712861817017721974222042695106683628795384423618310232551528510899447004154949035635467863883651099979038489343183852689181449390745049451881689853979464791260444730507692952342855863099100509595678799855793058504474520042973673185845226631594683936951710127168616528559370023999847785096322879937667416928919000078744898986738326595007417668759818812867933519334473048058366541950081992434109868570956571246977697452393263125623357360251296523052722143226394002237715952587894009412751498255387059396048922654030998731085853550980513421694173338544276821426207574972966408776764377455439089361984149179494233237634349320158113479345220290488156210171135377873825606565843280895958938190921097470561080285461210214923092316389926162041250832019249219700044195519394920468806101505149587487608681315042407528401477431122677494670778401600114574973602969683956681414563005805979536334451023931201782457548148638271628790464782268370441767997886603034210620913173430256695314847032834806246253330753581569904330889967504266204193798124471889094081936114008074975578954859308561207507286849162634087870347081056104231553009409497770377839244005350550612411827161614719752960782733378925217006715839899913394455543447269329138787388318320645743722394522818224388034326858521119165995857068085555688417991215873949042957157167374688346947949183323362609933006991517780183946568233762346821896243378340083733012252747369724534650815475348080047541020204079221139540863520938298967766396525127084291499467729368377238020054325555281147261892884986353353109451136603995159291041734907121320280911399915343616043967567141135092187136799748690653967164532992582515746864085180775297040016929816735665644229021297997589056078687788653410675200281877179691768367287560316733634205256586189698566656740047185526365515624511804907257788221986602226247479276826990659897074630390366450850026550409987450564807359145220078456584494474953599188138220295672896642461837817903350506376992940884166439944347498289794105127191910703627022156144203012284893144216181637218878204264933719708618806116650625054085744141154298255610694453857792527086171681920970620590802707641929981275650604488470051004689323004649458991149873562010039502640142426144947878523052397116319437428293531091830454608339389767804897473650076210523967991993829617328006670616267439210795849864651606478416835965481523155738248957969995629632587568390340400060704739453138988669353737189729798900326120164664976844343871266189697887135452643788372975485038981150188692260161867985745319372736665487655354340769269471639482776194117899726209169763244591263604019902704408966728486072390150264868412440512843524766144011411965255984367678083099247762320817004437055657440664098314765595539185032703990288790300804791875802796780046146848332818979956668494476709014595832532304270101276149490174538382536566109784615209593421582263012507156401891075261593757904141723372402036936200988956077162639786868759946116522153519505841363100424768253261118599291085619000007198761205211169459049998065247578943577410554317712358382428882341771844827639313472353797925784850868718597408314609545986386034929563391082596498485628957165745291026725326832442546789794790318717807491109770748692319236869686324550136086429734275529922873081297870391392230982331815499567885297377585754086778511949673653700262742622939134022866301577196073801366620181414316470129934452463772518384490542506066939370434390962198541246651589693989070486803748517598384354547610618859941315171654394503010340733490607935998403065555312965208663772377618796580348467293065487714058330319932153066239438537913820608078369484714354528788961024304863029927094679075379954487282374237904420689495217976789298043445789517363888462539174314011571144536380088680760101343366185115274644735741989276925583596379798356559203297536066019069147953181642233436553000515805016002855207688678103712219207284437865063763916984701881024552806883590894989856158524374450907965528445195867303106431673583875592560124795435469696300149189842840750120908001440043910576605866108995487485638430640442411978912619304171999525783145555871356370558207263036643290849192817847644102399459736081924621298207797877139756538949671873561480572705539285063085558052232003487032913878223508972856777328333836338371191685789050529956232955037948968305063203760628265759538512102947364053113373919857374493921210005041954847904765466507836579375147501356227170914520908835913433123136791271267498951107582525231835553129689584110525976658653002581671382830110186740503811470641650983357875058803025984066196024320489318573385598634053281168158620926500651566952480204967810233217892960777305590159408894440814933164437997542233736870619399905757650910659740136229473399287981443397956229117159771250713872921781633674421328321789665194283414213367217598032122759988735957469090547179469501796498719533717157270451693531616432230944769958327423801775127577693974915607077622690520540545760617974156452824515941412452726953479824866089503308045499836243523778037941006938693743550626977736396799275103820728175099127745972730746092407731667769206300014670304974313380046953663345319367219825012340291777094436630768886652775355896793616345052645026351637579819913202910370700990814484224215783353716976456177891786009298386793524309941172890543594159124399088064199748781881387612628693497700032799177453274992839712842314153527544665234755672282084844035155619390279847025895030088954417202557289836994947257039238527546073064487016247073157842945361482877908499406379232166373356919138453462584262520426485177343901815643160910121813617376297675915630589596194972714796468054205628422677921946657946020125812100742311628996041545723204563915201969017702755659382906260883194522320989413849555719851409944698552804134684028259841388454723173025259410016911610705071827817644596420789985052678791852311699397426472133434484026508096405672744528249464251347455641180833057309626123874720928608914948123539601944721172825670711458068774646920374583879021788494245641552966042031442739286234882518503834313510867880031111211945671275725298169894818910549045312562515443958783026131553123136782069006711763834113974741205840106542186640950561470667183881686694279381237306792984783895304591102223221495669093053959234280140620492090018155020761053690769977959581681785793550447254413602307121809619526924880511242847050027496213785289536646902660773960823870967865337765937483207607613388934645639541232704292999577303791990573516484447747898797456657852832357478132540302494287122520562503598129975756179391153935346711192318949063379176686856882204199534918704737221125850149258067744141847020826842788660517074222613704429210524516012588500837711443142013654832159069794440394180955368936388512881978698879385651097413416107078435673931374505201501489899951149437359064186639922786018268162805144461722080836915852620559631939092459036968307369982910857620649195585458133723960526427227541191099001160132612286314701161720292076316845520064592575499452551343430430590600571881564037907180676175632615585973314208812277616847035111020854216804701404568731736858035998775802494491166307710366189111227372891744874520444692279318196486766371470483551263486702270020716227561455442624615657244132865625222492036909972590198558162497524448484298249111889201256906086388144661003743394843821926443399362588620284761689474913730002617949894333995202806954061414156758842998558912653669349312300362780679398169963253648288439846401100870251623236173346247695662379057017614677559062710262279516147594823851977933121319509353135664928449632148312824274546028666347504564754987867411551859178351351242869841060000877138459957083415399773733650993937023845666453849044067910423652054553109225526428023504502026205268309699597909471831033091710541117154366373641614788189044210045988448076312280122491711560703849884269329176754858643911551199340421393917255884569018944870757644490499499265250769815488155446971670223318628616578017153101530028603696101216079496782482050664280192253560261958660132580272662992258233731381074930510930904747659116295901893779069097981962417638222167367053640707300936399029788779221380371161719799953938947360018859727669414001156160339286975314964471446720158718226717014249154258220199085728060276444139072618581761706241536266236066051390114632727969912036778650607424174872733014621118501348875257128970044860836611457615201307913805062181013007131177647954044940541813271075748098135822886182276938181386754139825887878134707554068089516096227919161451047642542785476471060328129664691926497286063621496508344732491897988897259867119374973561113280817169848112532396422491229205665053823548910658197706903335302729851552918663901876387645360145072744048282779053774014446915722825362545948589110808013744139201406159957500750638973370555551475849022441126166044390723797781492085968902261364823863678038416601625568451622343595012556689037920656750742383424555441457759919730301911171477049662250566353893254193394952840676800274246360878559445367278648031626767861448159621617732850849347379149067263451141879672905749919307152491519028060744950610606099106642665489500694098373859805573156785851182228930424989672460387875119290466121276303767196493482886842468616851045308539818147825021108350935053840984012854783774920217135571520351140219855739947507380944134829559770115770580030088832141771338549444483726983228568225579255705181468891364553776752963183505797580941975671473708330240936578429322969402722050375019334273171827782037483759076559042426610614803111333892255869190338342946708458488663392394573608290605379481569296541517386300231859874261213075476821020217485943754288094963983009640119136197945816153883655723659175535999923188339001367243849555956875671839282300995721985051432925774855778239586173078331814415788081018595486570294947779852257051720945756110827279406772109167157352770437266710886786569963131768679053036638487984881571400705335150185982488666015414264046419687709615771267115784611329961576514735741988258413106492449088136408363436761708676595034286192950137464635764162527546591246053837855137396494881182726970560766318773064631958904245570115150189706024073036519825856531649954388222186716990356341198687748057484900887430596106037695476302631138407818529988458052719340057731818342655439872232788562489295303750166159222994018630174568530298988572430666225285780071072157051354182259902783610675956473187914385839146454287306219401530382195464577953531842561584179233079332915437368226611477163666340331113808119763176895610100142288053484903015869323359816679684737085865597687250721821172013797979584531851111278535525958283371613844864008467690369154754331374269657080862643527718647803869655354977201938412430451929298797874075990564291389707500054524881883396924695035197480322630278737709531164488425703153958765213275631468457874409558294181263837997521410944621462401162199058400243298265408592633947706871114931741797427193618114064569164157189152746725007627720988668636100854879059384745421515588064560020614038801581219203627565934882289625007917791385558515450361553165086691971137426196521078324173161822763435003989297847828448800704026355234847914717490753315853743479454958647335718957965102308269599949603403822152087379533665414041755728191266793744781650011309100282257353318839229864134552968926430296470388889603767126268901839382175691766684145521846335109289901411223441627776540838577997612792866446229198038694216926153938196648029504196147616687954778515784289454465064274734257994524095455853427818560369316675579877511759302743891621507132785263316305086463464668964910299087009638044376921749248738102815664182990715663263731639684684751334662494766165062544335447719035882063809306844171453429659054742734681429851382089724170430838411540831791546630097135172990242503748051405597194632973116030006315459965177728883573928743095417675935382026668047901231245331902934678675817532325593537633948234162244511653529255201339073353102933079874271415203196934761929966477421384385242163474630690900663453806937567263349667620339619556706246790291958209970723827809555956958036160425617304128206267963653485345016303298951128735181216080733387582934208423690634340133598200319357836258479227527481178524027364514286204547700048317711926223746503819654529421911367302606368856111928949254165043934505789058175005065199971275148005977619541171755448827848824185566614517112808471912129041603387909846707647915894901667644087715178944358269503202614940899759442913108349854740395842313810969096639995192372255977261386659030084684126965218261662800705021109418637884083874283292355188161143756579041884952250872140474084999927011776836398833107620616633418385651807153596939673599861183852729165115929849096393519008302418976968657565322979272285643171465059863856665752207036448239525122580144026011529975850766760093627423471162393505742486185421933161799427134327706103414590987332734952419365843415602728866278430941394948085370073920044322457738894851459687521465094075037806544219536650564437502543169068764206069370722079880027763154273654359353822701457158456700633496041092628283001071275426931241460329206765246510152502699210219963655369735183115907807645139789996608566033800648332699758922078105160065327561760742741499141183334215796274184775401963827928348552124244152283432465920919302646225018306766725401575104793266869144691014795205501346188272664116032026931816497430262908344026154586738514682458482191664652124949943721526298367576857129234765948193344379608005835601552862063888923200934238605529194372719457110648713625801938448992348930434687169589021786652578582693102809311115122762864761900799444176127046961817171848896156599088230466808459304374243850019813315680838598407483753589508458471639756779682256501239484723150569869183609988961886140485547791981248339165328827122924528552338420904649356459226964249539616004116199480567106722730395913142815342708266056289501249904639905350314253871417993092641571796529494341535112486087112461378253919353767606154333754859194444280194358259950309073722620008504237357369305124283107978004248276449184315953882654555690310170429349172265310045372537306609070884126966113875295811515568250146855509632920333342990152428763035105044218813653657630987825900837886796187733915986528704134095645075971622848936146918948474809431796693235308524868579222696350822424085142653227854637772084725066612421721202739726772909776003236613174053721794442520755277995865277321736368402107712525908523516187405534682210643291700094812893089954938339432384821352613771678866601965366094113900754917747997585716465137816053395815511044699011296743040430507908089454002458107755605697596080317699835037283836315068296863166532191603858834731522518083138867654402508265299323778624770203951669754593916126536643926032987873989596791838486394696154300578511622825682321943377244581274770543760028069571638763283242881663978897527678339384120254767712322494959657771820681004784097357457556812855860595102440219763526646386090313766761373598138750361325803580812056517793999497946376689753426958255330005791344400261393373805315065206103571491444765829431967359738044700344324239806914755030220489724764233591678871305486652727773535116764591580044317755295725964599100818551480326667713090077397579760757179346321603722244995302836657447001003505654003344363870737818410855184050381665800256043587765170732853696428097546517747835310627537128585075445259003987070768432665584393001132749392819724318174834854941525154704131573508161571910836717504297954841648150273467479699857813444551130861347872204292517630073027725500166781880188098352498593668761392299078272696317192048977648624637748705056400262438669501759536434396658715314758122591257354509155377561286536869376766714392557119013387261929410061268882750412272350695254132021596327671413026631803321830685595394398593346723536717083590287536299722748395039524095965961441945083257079506455657491687828646516774570559123954320959881693464772721266200432065597703588996613671517111382395290211971444352870841283467777538449388888764987408045503224488513753403204034926229258413057584336255669245423970408082668684025577891325103427287884559522106040659298750402810533961520769489997636067250059713788902297128876038991721484949290221324758900817856834107593120744676798295339140435412251710539125418155091728488497965810001542692798547934597061126902505068116646650932731601439811547638950906112232137023491976147118867899887449929347065432489382457957132460680807456289370141225552917891521467258017692982171491011230269563579212484342323857691121281146314555157082106310309205545766517427839312341471594016874812657118290294647292152842293728617280257792135362161689682139675329956571320313337569592586380468086749180394680755546091973929904626067590550350106267201038603805146256243438331559348180810648145264242776621916469489527577091594321100847386959861614703523546851822222628965080437602084520044258708399027016350732072755664704559607008547926921827823086862919695723279947948221809032769909922203186377833800540638177283507153548317785413393049015055774592443094734566520962105225981903715438869616956428448071340869507024482336818172413166249140118092888212734270981815336468426442375480269007665458837833369156045012063376275747819682285107605217658323778266717296432253782714681441076449579245066354653396904331409856340519993700786324126239631743367717351872914205810101349211895842851670521987292404834959224922171397535316591076952681459154430492072850917913973257136206367648353061251381001088741190534191449926548965919220399360873173404945378948107507823937388474828637207510932565921400998218622698127380784594052249788820932523764311212131233794317015576596437544167693805773591608690084400277545574070442284568835505623224259569042792080732050934000658892974251440945626545081266928644645612643192947754184975011114643326012047632587666313105058764838180879345088971312896094127663267188131276387321216003954315367952292290345702501872968064181762979017046918486609363376009325031994151731539312655968901605551664114625506716792473373080232235426150629243796140871440443717399714145818219892401710392316137010363905511731052678881562337145752164962567996095972568175786167935117524215725923976938756907459862779056179761442182288848960631775949765060924995467095017604077071074067166362424594080182413064606020186794212735231119119933653504122876117841065997509993242149948857489599202088677439533227507494882704665526731403378947531536235276488496329820299741612555377560534592605481319018169918008123733513697888351311253025209314626059421733284181280054727289545287508030437452126797376171569427265801025502208880032300818288816345480881505890763416785797721074069791387334826906130395495249092531152951784668718966288732118032242808188088503719770069598772634238496219465164931165377155646139184631541367053699036452036435384666018591765645520840584702676183341295604373629211605160001549657843389736340620088339125275141544308171020449087454698640284879297684848041305443225283880266306473286470256733623035318962912660962430785503708032370415466677653165985126162888770641369368028674271458653895826951102766731037322263831338647096807712551708197040403120590919087746762212936728526820877370069773329461041471212676924088230752474551201873300638166110575908098079653281815860624194475564354295801350683733872509394402133180373753776967069488098968523271316705625455428123698546500155094726315203016461801528506839889644305863057565472878065822523362002135491387226739954318248488924179246277576689984982759166353150454722179237160113359463881833017144075507753369588046891962243629030579384152185016241692679512092785105415431545520400823927733938603868695447021974668055499044567402610536859792446205828578531633554049922704795861196966981185821855861952458442297010878474193630933483032251737748456526776985988978652181572340797782294254393869215598483893542576811028967380875031406631928472510908651614757039628774365199571085560431012364748557987358110143507896729145804267588126170609665173054406023305434561086946556602582049523394465431954696292371766053433796793535996294401343639447473871136316078523187761944060667602984023649000725865332399245044393086382888248457635981239863636745801764185240848572488134112826463233644772486917127245104802065851635221419056713594235895976884564223384194888497925132298016854813493704165287966832822766468477766223689116125925415000167913922972924783899053464386404347048040094175285694446741654814514759480113426828963813223072339423165957135192964418645117048410544987609999220466882733184043194386818545753870535579372816542131179674308182043518253453551045179948632576229827931433845548388205084132537965509279978326604184775729353875320461146964736265593926952229553813091167651808554409038744185874029420339807391774595001010153417621514253048605763809636511474874907613598013971171012109103300021557595751647340775947216909633561408650665006664142626156047500692314405923874995976212108211150900684832111691523150979661214335772021210873886668586551446181527114258952728706193378220284933147837026200820867585886356972738154847856490064037492198012471287662283758608631038831062028256518991271770564370954715161296648419541469625630223022393054532497034122534049973983403019551491520436083715606636608765292931310910248169642135356108977180035150789730869444584262182721396469359556703694903805113036581422344039719688885047982403108751497152049898895020824089352075011675642742312793881481700988881549482846360751506236119540813922786015286469144867820862527044979926072489342904989260779206908899267054567288841321056081305703478202868779767172654802095694182429609702460940751470419738702293456815657053489678548351136190110897722498465472004349695712118680969400908893027799507776220566718644506551453770811175808079987645278482056241436636653677038333202018338975734868153384316029305234166096699175277480214825432223109225683332836267287937066579813486322234898804509209870981412929212950817560194349908584487189294787389743099054165940068511405756160797644717797274961537911468615998266482157615148213086622361602648359334622027670829230006685930477155994251863554863946355653867561113632768494103827014143210714970299895877546895364571066235124643134140746391711707633729500610793097733542256824335724162472448291172498597389546203690389027509629336378179952938837849416528374812943761757894606970533512466147073339774813146673433606951687213981606486694424521745666855541348632279136324801198389172544501242352667471917294862205352517366019948321766718340227383086588323064836535679631588602928837392754344461215706178810336174836488838445466552704135732772703057652507310596662908200737084985543726939133223694390948107783814657465121141982542198446149883707580058362780561222165706148019830171388076896616562944313809455435013632362846328474673161745329146472910489001550577501402423058028156064103900657335016264172113918686871584775983770152581947000560879489964304822945851802433258217823740410567405202891650577741052091522328127028378712560726493894277696372759069027410744147868231868342281972662268252287682984151692921418194806149738963875248315302296035562408108848236446289888566058904739651929714305234623002829518446251630775592425880826151466425611647283478502672627052315786067125271660464342866521667902033485093171496299234115450496346853787720269574926826693833497813191090192051681798923976141687509047536492707449690231031063037876852608698503961892655916186638429108705908482413005047793208343276881580912763682374562042152685606917653408115160997228664664948876087813957619662686842345328206532859094984410518742276399082238841487867152114203423904117642428178512070060600843427555623967740419703111786102834487803158142036671659562665136246132944585274780476203819953816252432820180478074974548064465952884097679227474809821026627504199991278449328407432193042450159961765555021576258651455333726771724106595341435756828706033461471900670287033598627522258141280302965402954163044419139621132171188823923210446128264555419609733277280931735701127898355608155235210216653502298440202774745599702659880064060568229459281971416393559127332132381284646379666810959883457682529645591857891180306933457486321160787266689279176027306388186327052926912052338387047938905685450515324948329089639824338057244855490888686623016049550217978375703501100164575301426736124643632265223588210499224332096141676415692953681439220467197681839318635147765504647452734035307346300676219797611215007638009292562121619663375396427854658123719761412521143261895501613519424277176902995646451296755463747916823390933153230889125598944658682347047105597804897949627850557920084971778420913344075907742819105865019674222367430098344707157188352046586466367103149916230894753375513338775855032247134231558754845850830640601249526635789191720240481557188701709046314604222851649268020393952395921292474241413790339192568790002429051765893376770861974136471856268316991506158515257345450341242644480262413823590994657287421863082462638970228648383607568756525830159396443243851614011983238198244604387851158811224644646636595908131446708123187163870900954389670997193881047543377716997918104644392529078313517835971615812061411746460932252834379176195453450026377375856562731708432750856646630329318979030030825601424851717323855638030393189476592574634656963657037153345837745905775284091804716828051757245584791527581710396892083237044453116376935677560288287734203152009040398062269480826477462124629692495717355115119427763294437199687442364012729830788388156422293013560842242059561757366404559222567977972581402966628889282512277188284063689906524325490256587754455116927960587134595870586314118341692548861539280300511788986404074547857158398801421304568155712383600459400365044128056550522679335088346577096413142646514710434802750200855939922860818754948599901661090119192936968367833715950851331961864657473283370022342894908681280270656447036728629467105675522774207224090126915821337248405554451227389202029020872487204044622960873331512856736074364699952486386236557732965136371491298805329975786315492183419392005882018123878080649136897187647750594285146502164502548101578815535037941992390480944382482965514096018404627614536835655775474125438694892443794157329818657505310777150799450087328017372234198531460166319116104975799261610998972712413163279693623130234861888766822032653093778052473437911730965692344200453409204434070435311997076407948690188097712793745410568773464096425330079616912446518433580520028860985730083103659159787028952025982939539664377876209331932559032777100849896091665753287418022184128727220444832764612575320017578190772469663063371832718954413684806649558388058828377569192377326003600382006841764477746173462756895339928406299735379970842863283982403684988586241537059498737369398267913390109714880796670774937464654552406876872449663743436899719282186008679780635819778087685123615641366919943273855077421162261033517368451830992870075568477543652551174589396230532169525950723391398645897627367860627568916501679469305868662539596297840141785979801423359268604953062398311004723143686744013733668377510750174514881358650863256579878892089938057939472422228987597809434364259682850964188245690015751861631242688395166570948077147543718178615584171543694079827875187853398125512376953580508873623569679075434696210466523148335997600560929643274153216077434281207480060543440079122648228478009237916537692922678606322252938475533205211232506849949328103387133884763582308243946096538688320776703037054532007757428572465080338631502583871254094024109290842092324551427401052452287939990581634863162296518154017957438871809533035705093979172521484319782857596255485143472195436370795317549955121927817203012376831369269773314787852250232038722839752195249386903107042287256565281547270813233733215442015879398596398387757980581803574029567273597034580518511386155396613094187265068580277049337474917639987095117432166360033419504312101735832682760300011337639196365313362427793679091895061608120586290626443337629195941882127136293561726140245806140197917113056301122295732047204766622425024156554020078620552972737226268856069434799528427490040684549258382208485210710042145230830066333290353569509779805655926386137671488233208187251143673340182416732656481888804176854157040821411531029671322094600924163400530603883851208051454856907171532732636695440129397576965579271130390638329523270733775672861683962496348773341990119413729121768102445004556966222351506910436004809913873553157213764013482867382210102789272742660415078113552388333961369627107164896641283818025684648631356650831985280580213525250930835463241598444719656292241052609761327218033514560275247671007536039324700143119299871356849756092538389737532658037775775141755552155590389930894512487304087935280002198083746364343225516978089980791273891934581433415191355559382588328547131796265558593465765979705435249746780674030375705810421819843765239222302655715740835036226322248629023985139761305045239322492693688016687748545635573185420838225745641820069025462282094886541225387808952845119871616402271262439134034197389526133066518014739498437056082598755762533400229245254243365019603081032969902966741250478972438924550793601160293219028279265188616157559747947109668249218404018514158730882686725072335167010011553790462119161074828109930147826260600625787312444643544852806568909877101902750770424883999413518205663999853399567625125111226355018097472243932991969507042128486173961590940987747448218546330209136113490055866990057612816698107972219083745394589487849163764723689881568217083899185319588284475682052714860684100816834210929861926805623664289950149836734386837909017661263968082342505531320776258861948299635475920315316312817837022739736724686224331089165633802536242386007881299256713072685634372394696226659480728066487117676201958477064212504903390427204858562814051481760657777742808736665084956698960976523109182618190798994279813594477497219434723036220422684129972520885762673649088688653141381889383108060316527861792068031885457333109504361198204861471562627280057060092638579131456278040012901162404239047142888190560899958647455170977021378800894781392139501866513413766163174064355312949714181894419168631745429075720200362927179262122870510596591394191997914309399272008118324811337485528492816162070722206219931706645265314874436599914709182973752382762062109194633296787037881260942331572244581443710023033148861008897675747722747935217632798685905748551237945908556341907135653825091637731196634223786167966994292871963050059315220932497141888981054228859695575587284451580590066023565424327835655324858958830842071471436072369210687518100522708804958542388515524918888385189991393002408676523704665381655876143127590140557028578711312714001652662395067576477161244122272570024131222907925835653526825236705261992844084634328550770963348322936466843668802473109465744373711412178626097148649772552570070786424705727625061062195784229920655996358585749234362149423889222393332256145058288813007882999314732231070257329780731516427933105775980349937918506928438893162818420680851594818843918131301877817182966806052692498139739460088661890268188439887298698915794829089623935566378623070920031144387503204075898142804149579163330437126540306743224017920933741796377833279387296107314157333231434873444408194348720688498119042562915962046637327240029713481120824908752095960481104620324000442562757287254043481212819435437827810828517339129816882730010274857322007284069262996921078788995914362771129415323615969052861845499674933188717366670870361719092828480119690221417297954579127549821997389250218362981885093015751126478286059920609925497057494587264035314440761073653298403188970201346024018667426601660849058395684075357493413596225457216151345380006395719815344192651841721573299882552390363756417496126671672922919705069177309023475228153307556438521136691711531323090910832528433658194822762276165147130996106222125719760378631518214395355176325993757349798530382681733651692134318183412027288438506425751558096710222736383986469023158620174596133107461858309813573517702185526593636513749310153165630195798049825223728646022952321702421804650561237925099005922216763636531896129669741852016181339214770803718184722547246208851159133528281320837447693863748662461945964601349452572814055863432163806800771674925628329523115867205699241148151201268601908881608815038955234010457058121536214343002798410046784283845335296624745628618486400164553432673038779579427213046100690279480129043500022828760739822581155044565960655843401663481270304086062787696459543724114150304402480966862358482540125456056888309942667291979018420918827959586346680290481489874706253823763130226065767542751973390087234721773010546405676277878202473783516801987177185373057561913854988212571082168516890542156992158620781173206958893465958802529871381590271228101027332980059030723279215698894383864326771530130501612342367760509975386845636005284048532460406203064250956903137700203824981224661992535408748878633494470988881178336916318230800290960575242425518070558972706430032950501621719670766351249156514236598655468210222132974691393997718225368609055018516907459675988035544469268368461802782178708693265796629360446038291286053190456134870470505301467750275842107237341442977653628927152119001547244563380457437359166391354543541100307215438095309730946985669764319260382986197705957816402241466476140252162697920918724592654522560907710437310831659339604284179494655717975919437861181437651712619238614272325974777396084168931375436002329959208085939280255620602990749692598111894667082590008463700282274753902588008668396953277569001638681053437499446145799100896955446247201444479261870169542199541528071048501742900866918621484125384300842739298593773799915980893589219660491295190396079511491516070360470323256550376980088003194527162551915696423216442452538401998134346987562660705350313988099849955699174634339028141739478166105757194156769294190107667411677710599099622128608127719430440840406958437574206772220678877774660701153561971221950586222329972078420060864922484807189826919457415981126903859030544695128992671102021841724739827139398671862082435159515213321155260554037775395265917802337599635249064302904346257008714412608199020721313373625135532468115745142295738772755912724078465345156665000331643443466496206372271099403018700557683840271416788497949231230612956787486115165311043566188802087777798397936328410821509552795888764595056082259383969704312546886699407580092696498592718767184294336502521211535737745242063259321531025733386951489210669083853543951699380785902363199457622263213324158239302717087755239907111068285965003994152496563875558280214307749321578795280754945956968065037507030489531491607069440700749389161590181806964865971883653532142583959613053957341951906465792313871583530979163010915531217467365915573956587552392607921338666316795406086023292378737128068149565853984630858353503624239893081197288400907310111657434338596830045052271840189476345989205346719023915524629963457972071849950450578596034216497707552433532742921893491580651362726412176896429348510154702774105249648859638404611591141658266634984792022352443698415171458511100874269660150559993157704752365232808516423340438926895557474680812041361255675232020965482774743048018135849131953494420317132956640666646824941887701851806641759066761286909957099234819800463444446841441147104268919331477466260441384940723120954100738786967137734150905931438606043542630904425701688052947644412476995143506133701830284279916145897249450517667900342354295497187045870078243210085534188609687665215255662216214369124777201001646240955824844528702220395128951779604090444933032787471791264708857309666622932314206692505743912951098178382850197231619618897929765503378686841740174654112434714002558436646730513898853344307328775053286311847492493678240028838636767585724873965119988565569826473411725576572664633109325240775888460629716807690242251957897516195841135465878091420450290021239398333400514959335578295674424282835294935157910571309139899531439619910957756671892996522607410422698985899772860462245583536399121338290392640581135288426585921589664612370509814712014872210547863670007140880863500338979913057540015005779923694888917261571377012388388258555791956739122286872536641329915507514807098696908259974657441011997000026063273457588721490357083785660408930329519714532189080626822979571443986965224085589311985022278911365074214600756801562109772935796408925493179023073817468111405574790865515299756251907559681750338742597067334905191836559378206245680487375465184929449929580350615177742704715236851377064908449362061114547342044255907491663990645069909800568536501340210838192179710579718085760827793355206581680364958529095565932429742971275968500107540476994382705728202596120105774354923822867438902809462514470148889020693900935541682842908019482342094774255649146273679175033710765563820843509983554483147941926781271742822362316161592513293405138759326092202459266954036120075529992784186219471756229426578116772199402614424243158412910147568240288418413628961953602677854167674923664634376051489676878943612518410665468894291950455058814766498365886726163087047653765574982904176337221651995349943116687492696523730035235104044224660600340338152176945171189645996342574356699882985668855616771327082840181953517386649603587920514812037602074263244729035624869493491676891360011901337079947646884284226563013791677704680611812607877069321814695216409412867107365649652306250545665392324841202644614030866891545010543309051682231084750481596156847395702926589256468748930450945599376932967446435917094567174183354717881590629042785168745810337519325239456292302529446028244609398834786216368440175474508747141194153299859530513223592189770687244039215703177643915589351522936230623688471142430877558491831195317013038835560860370050421644622727681526710233371215972211790210668903691041287606510029516847660032654823748306488766987384667777273110471365065055264527187815488787685472385799655452252045878583951798397621394590586367771178954449744900195825173436363631538095429850956651587785835590862120017096381468420785727388796195586658807442061339673216828098798861518476631153020020164420668385859889175178246677271242547991079563944086473795436827982277914040300567072958862497266672941162640961473733748355133850093039041615632850439275727342368569157896724037677045680853910285693291270398038544072950880992424396602504132456003389985871367889374079238752438876980006516158293007201429160516730644464982655845167612413409827395135263783169608449527793445621440625074369670021153964688386619371904093747744213922311615371005984650105377257596965598576712338410962361133882109541818929579700018899871022975856797352721642546865190100109303747120118337655000010228761548011501807428137321140515607159737361827802488579595513323746647530292248343477105677962965129865451063406710079681438292157248340054459389216426467523894040292502534370218571031257102123616380003419038929979987206572417350160036909777320319211348433105056505320744972016089671886099755332733066102033798282396495779006094912753377665201611849134871619590762295886508623390982995696644209222035371615407194752744844920832827198401470484201233836358276557513991022140348855783198530092634522190088823309651292434330078567921326990966252849879848830811731083387527335114190957447846270871095780898052581442953449160801782151720682605929225144286832151539607384962153201138832491770284849646326549886846307894872568646796291731052744713127685888359650052710452843041485076211174637528192822168119364194326142218976519354715854402559391838552030833281186463851900484910323557707199123787477959726670517834781949109168953086532396283369083442477361549035894198449996353063265318772743436395883297129222928006166230954280769008807978094765167090991765825898219223757558238812934994143391523560723195664489674696393961832816977817066637391207250009878378726543669941735624077898866455529161235555279868962963340436237777000607700101239200829674084751713919942742239650518923797381169095765629625854156434409360689198877290224122517097014971276893866689173644761093924469312161119845072158267293480823114881869577512137534247058406033961095705495705867318762993101584352593741118346697287198024418296634077281868583905161046210529273181966188831326246183733931353691682299416147736220386595368865317875232571799542380481301121198735177967494005426028862389285262009325158345580404565897756251377584408226222215029602336488052545457095281911265355246772060711214468916405791341199273417215003277390331404530185612968642205616235107026066674482203525397448856787835538861711933814548930797782103006153441180727483042932842238401917517271155419629643634879169913343697393963797904169115860855084310972552750296449547445948400044514351072257735870175333942925440534427829705137602198826005264710284450256551249598746783548655155417190315869971527443324684911233090300801030855327855757243890745046681378412043025279131070101209351564768870586029459825043307234012655246387847237284493166536750702346191031809432777835385468445883379006241109421536695559706625572013396366041520440510107663356896637736880458290704682361100240863895178418320983527946655003808219675003693404457742490959966735576807418306778493327705687067248538640656986082079083227386430307202649112434017523756649376627600930682277701812937945543250058703965920614608220367345569773799702254601741315968771538181285568149408418773043824459803192816069977695152285403918358991455497327092115473557560948593866171163650491078348748566199043450663849030841277242502575303510213538306643586017619838601716962319340578989798941721801543092546804812100365142282364509682130412487714566807007712668005641608754955876590955487167058298522157692404170392949462890675380263543068048319507737470077774035023812486474830935362393896846536934178703568982352497684544188728396718043384280916438005475151985073165970172327775797083185669351899555665128426663117992993789130631185699236746227649017312909841784625480809103461444035885834067519067183660604662834167347799942104650910842930146537840260415804494732453126920207770413195166497855708478114018923258091050861768750606058402844552591532248564248875919839220893418608596913387266256571271778559343730956368275743572074144850195352634264722150874686949755504067324716494179690935308843269684258139258570523510276235626449548846778341946481650171515055215705980730249456648624174393448366090655310736927750769540081111678852384286519575954305709777325213376797655253306981340099268441654345216097754680289486120557516808183287010773614936321573870130195717162239199249976119064476931266976856889328939825914953030650765949275615645964240693859722000344893730956052459423711405390935698436622411448195317299324951233860958971650337993272200923113647963622163322795701783872881252560078767234608447012887635276202212694101040601025779034536972517245553952206943119516715725584811175703221892332148553387551698810139836040364921925698651947605925680713538721961066845490427221968917126473252819962900399658325312308125222689960316837555379860896252460606125905679682897433428035792076348560826613302652237893411674679379054747682420780339623140840072391580081896794303499223452150555091101259251780886453524199181977662465677330221015663630280156117578581392871576102427087565442266813811552838260120572335829815155959329120663870630524582896231729345190642556902894138721910434395285663274287926428623860375627960315781261145952675714649400600157908093254742304774779956749452869950040300372733328488753246597819039615593384693137383683364502506324509044759765497575179570003360585708029377212875230975378241689640715013948136466964738860450123212199130507242050457142198721849491301002127258389962906926165952861569736805482580999881687136772630893471933196496132367012501133828406439905609256364243771027231457529276897818288577133967679152385676413328904226631319181937959262627366938584694660594761881849109948229213255732486896559354428443217339339890455819775886637506793345985372281376161288912424698655775458538175097803152295101036849394547408645587611390272576342052260858734760737449748738585385593621797161940160869411798336277302301665014117487731531786604923903822911518139802066970830340779390329075094024899298658464695564624202444250157965218236216835337921633457717670005034209564341525384954111854114310054512056201016251876079683852260659394121758356697426892545548890461003529646770611988768776092859719674666992461125115819308146876443450730519818551023724727873446571649143604215154781377313722996012073604778078822867279849893563787322272946145871370594674130944389238109817448958473461914831585662875790997408971753165051675110094381870385119134486810071625156474249859951096892237384964557301825134667922676136752411304153727978533971599747171865494337973741164381560767824984303595888921354991409522514069411635664058011598074682428616060123042611349646338055324236510600235868701981439900381021976036955810606216101787529257227757952198266305237612285353711119454771195494306137215416613354379993738478272438722307224697447614382805776699964183484409972103121821146688502515245704058953364604751887369251025373239414928089828263735453826802773418026448993954405889656343031342512796451047378062686899673111942436499501784972930067687694360334773622702600300523303894713746191434940774363937550209933471912030367187593830197547701125066034520170806272724975957611515274834980443186986548013552773819923058308203815072123007981888226644182776251924082778573018029506796062377489750878921743584494337610825918365186860107269544596771602172820119299316198303549828864185695858904901153338081908720341718432072478680659492562480680460475087391446167392660268918813017358803409147051273935309836398690648954678977370811049926822113941674927512598650715006167047730153728439029241367443125234654953183462835177607189291106684286579714711634914298317951045468146360965952740824218057108115853588290214946744508987922965284573087902472846877904881499580744744912498843220081852413473414573907654914663622155403589557803501807332528725952618533499475321216042967599665162810308088503660173378271985108618383009461858654279339249179661933825125451200860288408136260718028881263268880814800936523487318377395451560851873807399184706773780284738300790414300330632862474544922648004181827396353568817199880452472901387669160273038979056336529418052025613821439907699437126377753212347595099797390499995676862530750668719229120933000484534314131476469444174533164143785540773117984743058058502268073419383835508309603970738285006039109839087733205559327569224532111601269103302783845056816959026255962894145656078221423572933059176353094744120110706553988750362653366727878731699991479607083272247551120971517306654610784095757104362075295304492372520769761371219335087767132875379024595760982594822145676884684883913671976848015575873109718619173643095272880487796051296963225761356586480457956304826769767573983095642296020443832403317712175800806495160135251773673843776737969995095754874885173687880973520614347554878897199149558750576581970342187082522375160813120786039000631848624873600888944533109398175168171013825374858370261952568961621582841442933943711491733712494885809913118959962498473409374004975116046061011918077341667792760741577843254161663488433392349222103901075255810138947345782937484729397136609334813273150088048766173143104840063357114402960816817829722460180917273937928662877465528619865821013952062021568263623864698993837885873780436331097886414699776699194088780818123525534648238514186630605808043516782726492178026187191336521818461830315374363306506929928112469322602478625411471593342964282154378397057984789317895482552562439145686270294363882070205033430484900502085103644963196707211262211958814728875552956713353499199374700062240050844010625012334969390466384160835921742603824149991224836016892835672127804696908550429774242745178468392512098103119716136836549196604540553209392556191421236995883422320153786318627214781073113112294224568635999664679700851759802974742711963167785902337438457708664251007730228537618965671313226442952184866853347753017040416611868664836314213868593679245701801438542473094350635875698526770130031010915399648010244161042327010729682886725141716842459041382330636468836804424736588989746362258144726227264514620340798205090848820071773523363520657245735296212904309081721625140631570190350912419760337742134101511612985217371708242492788831737123147820538407970418035527761039357603625422762370832604158150732013496629484628724980553669638151179021062618117358025561314098802115180553270490703175825996682041053235400098850592669967003397038427833107550000456795661382318879811554197768474934693307202952462146031912793676060129151235928908172422295607992036091466446207133824455273645582138397391616333886084573532978737477153175710952224040275604266690507997345182158160568431891000120575542169668287653803466697205284009130609741182510260184827410288705405119241537124928975646326425618570918342561557744237737776935508674742243837451554815649440221762429279744849252354875147606144109787318237874087287431193534987925315587266604179625379837789616705454516101182200197889659432853121084630614287267404853066262201382414021187410599388145414331484544720892824810932260797790519089788019107098141917358700613501227935406282929906278836228745997806866589370083684934757951121985352559638237684071061858602941173569098150932317778444746939717824249770560547370442802878754154567599712219270721557746260985709970280165926319232249634594150901912081701441255039288915913107878120282199862462961413110555555506248011153934546451427271985081457556061756306359721155738821180300429596470874411930663942738609479241859383157480485921944157357676567344992617923975848995964303996265722668067810278780252850394708916407368907331663559177237027310881855738444018450096708896392536612901298009140089685254310841384249882212278653627666977636448941520829880186440272419767907966867691618477461059015288348820538192441734971070571998269056474059181920044866062323500942365860742069622389451199432239237068291684920478838086393584833323112202033174170899622517358738863752396348485148236474035940580893138290142123027571818972653564920065665448346682984928614805239874846656075085976147902050969960186570307961409835230775535517141211973763990910094285676309341595533067632807089840030833711969405773554440517444072566243342015250983737466819108512328125705549646150185271054262066546787628222475271867238260498937481903333850894806140051851776549287491981920334257402726702011828398818796350906106649781239362415176572095765500324040498840801529133510790662340640512556751441205786604558504973694361955201733501288184588074721687295267029868597466755834533801610003737669234704930112817167264509508413111270656421958026914695164468401805298669731767672564388981458075421816653664891167148207136860798523280140265455042511095940289598905253444581846004602607254649527734528911246228162121838316462094986532246352607860107701251645287158627209309533314379299608917540343028616508568690068697468179037678319392109828208940949299578827173390129972311656537062208064143929829548027197790398467882022658518439642527631573381167944882097898843867181302017516273169230777115660923505377612565403214367078884568189561790764143908946236616839002874433171790064887503993913909661896163481236605087501914086997766153770058070101126535803565791514522506685798690109592805239468628491068272854197683586371321206395359533326533786055713322965625268952048663214769279895667079416988917214409545135859299942519961929660128737363760426857433024720253301994056804780747898362792683120514203207310850307240516746732659033632814051363218562116946241575469005060619294409037340427068623084959975572004150400480547365589262164248306969045479398817871526387102298887061140835083147980834214012033732313356480983064043998532262016611518942009589934403806046694488707463752502436457280126638811990555313593692187601828252905247828743651944339484276592101951504939491108099963493017867514666244253088048161497809238339559772184352911265598351148486542841209563028018509975906984160092889129568389559400806692208284655373330154084550402374276950528086546562122586963457719074692507018368996781525924499174290171294511780906785555161241402830536066375900370816360155822905014366216598995728627366337670485325328421669540075126086906757142568638141834090113464221027864147261639064490262678642022935440942801755941659315661000351679372059731349007857870660921175100411256912180601466087343128034731693329832152476305335519043074679034042664118062294699502887024376837440644878486692921827194587775722163954421214609419952272042993138712875832655723530570569453503554963934559835336451891111474958528356445881827058140666454972251015763659617822692523793552305851722158551295134981031436869967954219984824168851538544917405033680560525810514596179634410598802943914688934895374770970366813210794572230716514342337069135656501685274506022801021171853426640223762313864599553085074322644775662819300572087759717682769773830913778550894651068524968711042303170643842909252689208296378652673796602068608976369370160880803258535556635026700475973382848989760648070542740052019927448033580402358476180402129603587271383647311145292487933605980389217897919901882875765714896666183878485257100737390410244167172358630969835899556425663159458547044573923462788412708957784853729658966328911634210004075461581237706279797531293677145667081180756705129814607320864868353369318450512826828328064647700150585155947609539563466782248190819344487843933607222540079181142444651826029019531947403227278943125868094018749780038993825299622565540625036656713770316876499025592904344707692007620736591192292078997200603244907785851296161689637843829211568770414576650156303510955070134183931797854359931986196275924855569162596894507027328062378317423886999771073822136188003420833672666339498058439746192742907459933885879064525991248284344231015767911069581585940817655764976751422146244283538494930394406713945203324063333915434779811009001322658003758907620623659755648772777907455646162405802224489459273709678894646034063094976839200939663306040084395907678318687664998232789557532792773640993349040075089083857299623855490313167095695275124160856285640522672206116120973521311271173282318162961530516114877242514807142416518966773105706351802639950922795015327341730607787972837146157773057896296287696270955475110880657365427343027798111155110898082714500792078457483903658537039480974287964895801253867735630699924731591641403608582127796766720167230830770268446339988626351797534134417844368708520831784777685885505566491728491449242798089475473940247094963811858184432672640577299598210735906340139093395556756260804632890854330915393702988978788795544919433041313441553125811823130739984924765909583197802322225176082159514964058818815977888989691830032777120553107658798137164628633182252919857198584765082181867159598897685246021307780460288293763628127161974601896429582518512253634197850110087794740704760371977735054025288048620014786750509839365027727623860361965653774599767062186472153920260072032746231917167948958880342474660088692915257752193641974988074871278425206311242281156512973685288730712975786404009442508083363360611349719367890410054137144288346800460637148537287113626298423812678654884092232725288633412370215860152541291885590125530724497995642533309210239564112117358809949430682453986759494081566424008587786329507455127718994382268518948549006963016916141352893363748817964239447057259390408034427396779743349635872340866748497783517696380860310504357631105672385914686935463339922417340183567237942870225365987760198394364739865693119262535192559124793542514978885493258967912865960518643708651908094358499282245778711958173238968636041044090284231701755780133562834491437094529449441560360733107914666739665363209291754326785042119562402461922953617523735066241855018346041801310464451731536563192980153624819047508616921280372431680041314819852251423222080818646203403138952018263972728659771932498727466791878313985798894832846692964638581612076729177075497120891505413648021797813191013723788880444597606956569599019041628885967443972787826415637076924912144521127884646514571288658007620702316915572314682689096593182988724206391163989337582633088922970489246571355291011590168540307414335672033493656478106437015509434375959900722471131408895353531673687774429391308173156048829961134172268568182406131966648827756270280392969465284706964041547123458473801427754982383312146614898221501469376903615100492490945895032267717739581640451376934396104666605357953317769355810190622739698460039708664242636586421014267227089198864542697313029263544592297554169207230284024847534155432934406980917706978122611261896584386193055372068527409278299423289401782065157781367452127814854520006765071584461011985739525157822069419442399385741367537866926075205857169272612695419180445479341178014906829157414744659135882652044667863834717257276944854229003723041492968513806163699529330286110304249046177018330561947375331450704601819272477587365037862555490341632459441949973269704742038053529948775663363246231764483607702013508407266814365542533124507925487126716898473603115649893455197290699161349518932616192014545954753099927777956419361502295972829631767637912215512640947233381737422190818296862188915841590396539319684736813077049401469925724680771655052257322682535649462191891527950299636810980796674039578610221335887617966348857744361982797806860671963056867107060011237250611214606870047057486029894727003618016777570099232331856053969853506141148861043752767311901736264956852556913328512127205811570459588250779869304775885348462085942270381772522389343292435139296353065366174409615177185955777080209838577375238006874906683911995296959454338286443600439685850834880830243085749766248881974548785732653564441511071331350841566975082702274074392696726108327781450380761631596940333562175096968537272330892280493507342679727219843242647283426013892871839846924274380796316952184212106670279360276121520286457466158965104533343068326863064859614791771748131985595501623250386976817680831524603834465421127468256124863857865803236283626154120853468677318913651597229836017739063389449094091834688474369939394574865651482475129287908492559193150243889206313006599729075326596763945737094632346732591693369652622512318766852271608809014752428991147988686628987373008145729092151011724767969343597400834933279685691274876550436013350283516908555816606265715575254159995891812390011277021350853190831395752561375105679543526805197404406185710523355346837561917670253845948817564768431222746331967772373709537498359646888843426887695811441872627675986714623197708996108244180098619092985060169345546599843207680754653742903031107748173605434878112691972309185434842808101513166455673428851056525175373914923716145215784048092468087438185167089351697678630520015952414822816580560059955463968236162916291363916434419198718715854741774027099490378469100685862611531765115605175057854360896100940794762861074546059486576007234694225629763295017160358917412438131630980192450088907928272693367319539710896298648874891230162911104864908581118491560456591381418827135407404717754666846023162675971863227393216763418860121445470165557829247287697706098980768519376375656957280570183620240249373646033044969415822368060630447366990769210898116675487105697068798662536328124935336375657648030730478337909215107835021400982824816240804393014696732093694206684044414313933233287496719048007370912260262920101673646905199604849744471133465547327623330089149660098478331532645131088532874718058601201453051039296362134235204114675017815469153345149569512963763988758054078653633566410113753609681680428868651262603776740494505004662252473546243938084303009234560180846503503228386411558704553510006520435843516428955175424410247759354907229507897960916629593871128115821706892816256084430712568416365085607083502709774936613126719008061317868942791318964642617815440573039226461296997708572323561705639699470280465219356073305418467450763870674542911595204024733865009310638435808101553590463560695957520738389847288798579619768128803069314392760716132054424417794323002801935083139322021830226030145905811366904154194813832009322145185663893180021904736343494185116816077626830371652220835493025360913921899414650540648283155700926692090041639378165244347031381496425278964905678584746923640083759013693236264144353800124855545617796714510303557640305959995482650887759052538150527312507744760679247819627876719890083803969834002978202256735105759723742127476152181915923767584740899245781263675819561227441984010168345091061499397484221154669581156187225996438607567336621182156898328617442727746151999805438116775608430005039888688722357543498045486919515969362262069484864794083005310991783153757838407902506342229204873936032973488137933339703392607883013013787469766603717453423404782343076843929532547758165173516558101006037797606889964199179816149252019765181356108752023549407040337837541612193452150117729519043858102649585999613303465910575347920183795620331937643053984079004360440959654425188461945026100479600871346469955596643671138618186948574424552786619584832574991539472135833590390993732365996814902633399102132829516852430851650264231115055198159841655644970809296594439406376827902060442101315913155925313995464186812430849218087286382303018836585388561316235900916054489755699671628258879986714290401871668159001796207194491944392180070580001430514644324086769679911503450832774571401281648303917376106351179974824646165801277464305087462253893328938982678806235088272039207418581912586544259664196754478093369106478965001686251192026166534972479593831313226317063788503742295803399069029838814501793522118400778238518022503414497035756639248417840882802577491527669517441345497479695810840400508705282005697531296109631050672448744547712095496021504354544979085474020250048768665041130743778448313905118309180608001669841611511738159004104206409621482880523925621593707335165294353563178579182082038477460101943604164724688176419461260444565257364623501804459064998008525886215241709315609003068463328902292494908358598451319555036685230436818468704786976766138846446090399169400018926115064219132878545008957751095234801660694997475827085742602869430513414133228058125655159317956057758233733755615495006039979206307697929782016471500947451318126786554070691854711979510558653299178825855819031767410560992740419084176601082832044152387707500012442678295760963531880874190377156477612594695500672405426384421358084689551798523503751105729691509596134843979778816570322641226661173994586257272069661578184543191272300306682569701082074766626420692789220147329401197832339460624601315422219128156161187207786257897712346548087129431466540111149045126559806063526343972949744486198896215842263976578494379501017768698225592775956092323369394146689412524899056622505867207267888530502813811066076279777044718186438372680495230386923980589567480009721644110044596662867685158635645310746968559483891411741455134762428999158378277951796230007529322988941649229338606119460578552267036697985397380455651998926335115825903665083024678573209974381993846289666491752964384692866454895618288034039597609280087858903913933821180314363060631454949603705418544520098924802286837909911061923997127980570711432376039337012953594052225382049995833620535576750451438753999817354078673676247029034172772268321741729028416722870503776720072371291919948819055783481384828392911748077404496947692662521072185497097600183137369369161445154160250615448461666620149251254769494621047058711615245508981545835678640588221037424307263405411102824947113914145529435682221926822758702750557057088697686592259598840016022762024884602179443207675959115551983089824944924225760688451956765935875942248783370059166562272944962275521284444977038241599961618072883033121359024098146271540409483392952330111278309935509945671474021573824475257204014814550527101037869854931895363322445316424487868196440869082003918797817338602941060054754697703961458009041843089244564057786685109886825311993542816545219385457256072306130646642035141635476008397134185739107236953455757821416188389824240046277422251982874335614815859027309799459573781595848457441791818761903718632655579120459243265723529584404917854904728932869462452471091036421833869045674836685922722121404563217958258500311098714025079218415832346365694766371947947437825840812208838178449717298551432624114532354337486379243998688575299830082056648402236722231246201120914011519765260581495257251868896987588364516497082992327985872101281233146720817593538303655050555409956568413111699379050023208174239524095025720155687940094545045792030392545169931791803887285062048421870585099609634032254202428478148224662108511296359762117542881834188779456796179480939975850101481950042978585656116336007461065021711660483719640106543195337611696486052388447886684816543659366534978117250283046007460951987860978006922095525561867084309762603420064733512553160356876060346972293546900331647346807329356667503423040020381915294520935240184371857167820196306197798239112942213929251233216838429531199554981985136148658825311875316916538694024289018700363020919718730949537235964791784422383532133540882155685242698500354653972294349911696006439545590345519825428582656116818049713713567097798170345314223686763773308120187185123014994294550391641220055157755963005170767702012330516839547152251171727294039327411140409095876462591483213009562807480448746381710488694453543394431202641325981134254131902887327570966888141405137177474179834734076573053026833167839976180064650954426517174291701610098690963677026275102426124939976945196949323501432247391343782743480119117645140938089406010335387028518860804727962660757492798937433655702764699386045062249518882463906480666492868898044060583461947001667664025796639213359653141562202198751034754058858144014955712571685887974331622202687194615230298904850157179271741009506961805525889331708637128745159342337290884290600285823222580960205787778612757672618470986767630566539102969429116073254675778732393933569261095651299875099315734554596643784536497003372463875352442712234136286498153773680431682273109504260201389860068231458441771224162460672519274438445878749995581769606245917442412734548182811628578523575483797529058587589163423037792414920552826318056870512397643991913988199655458985550612458036433314248738157882593311429491844371571857738934999457056856630555179505911479555310913507913372706494111071780283928014013715293290497097937414238475172137553187862344098403519363599637166263135154408945324987664929376727332600742404363221365630149795378913265593578395975035214462832792243921455751942647052065231245140262264688704447705897281569089722526448998519801099386913916597495550430152050170738246274910588614327235793763231710945359508572164247911932389054835540824937617838839007445553623620004404591118598850307308247974588257286484523097650474001956400619028757640849462437003047806605599372268378766150161659190875255895665638974227615897568577874567639468307529650940930593755322140051078760905139023828318162453791626391737808912181814972708485515577385396954732373822236959881180003165127786789330053509037498351643333714457985759068400015116138742051935042860497371593390544946732888909094833615615765265807345623813294336760023015093671663193317481175065429123308304721795165524539983223632855210595118384940482123316367390574331986095950280088240617138136039887499598232491268565970216317352010721222509479644231472728348119500723084992263315952635953809609597136088449263784763649242999565116272383088588236782165145355425862922013072338041071916690883150873605364806708846301650333942750626922413392545276427182875912795761166013456278030419883514187760052956824843114448692484430551031572870966842240543870840138048585291100038163123770376123889813314958484656062912352048383227667667607743533321610312713108943490009563450119091190567297215723919036638480242644179390638673011950614192384400841927862246602717216582266905093073450086843868185802109513809896251173733388627221575324546931051394203936910640147210105576979208386677471361321280182054226702861135700869727769985600349041323348274992072448773140423371842661150049778081152915478033137738150880027533519860845126162360973231992794701357413703647923347958844684449318147476140766403738436808439754589047831503958296171211174355695865930729998238314481358805709811602056990043450317402778032470195040884865152382398605619528606944223993472299181248673205392800270985472674625056125769964227011237066919021188998528165925010671316496609555384244157633369103023564487185091672733231153835859706316727421037404306434574575827893819598073274730387031667860099147662696727019531279291477850804785955183241257979654035440495801172055067026424740541341595262892452360844679129972396203936332732800402712803182044819377116346237980557271588136755668586322948583708288188036662301868917118218489436599203663406353921797908059393480273305382542768728168711585601908156039513335687005223729962572335009678270567169394646882538144969751192120820012388633111619142807909425190096950525896302047505665595755951049431664182883614992412312346454330950645264008496259466700805122433099048587564696831708033332401636550054075387429781426951994372424510759720291600621926559496390899976822647755254511748980653675209911932197101475487326740063100989949258778120946114118317910762661725433489022269212686819320148052035052207669619230184692125760392232688974223693147340915219168217126788863194758402275162300620662147981442341667547242059865376120278753213882686453587017268371871126921100309998213372110882723238674846292026430050148234717957881157006820249249643655961166978245482504314341681964859388212952552614314842713238500937936344168808844132201981655496714093603140128941410083119521296949619596906189242551912959942694821077339998787666013528973640906819663001233382920990272849919828887252159091739530687192073188646389991437979328371989782042230091774922245333117172895303401401559257378509972937487792663684589268400569636747998320438469930121051686267706837712913742632454655842236489465854802043232894952172176107341279088158747616477061415726557966310363987125862086727327023321260752141148387836222137703995804615473280291857972355261798548389530727900270964239878827014953166236630701210467994254419619247158130892290472435261717705208567386108118913277005368515391912372431303436042635582991439215971636526581012676698527483916400348959853655690157106025486058503418668852493662339506570973373435812875222399090318685597542374500781292911891037731618347212452968139182098858145825162643668866488524578373207736936849283985440152944195512180868055711560217417516343763990816491843534337287254993681453371796255481972612865320528422510243193457227750531334224590219749629866927339452932113846185589472785691515128106224230474157962431730121260934144116424686915073777511393952624545637951968670858278592025421276643704517007175751837455431410162914960787829559661572453770213423403796310269158778951467716247472203842665170105434251705375407454229442633969707123302674187611711527890570284272282690014484111864888372937681677565722263113727663873014067085269198651952109211824129491337069774134295865451843844651873396257118130266631469359220893420619472537505965104301231573198044657582467221527456740729030217329925359679564176202156635147697359014229344722344687480864879468322063528796325236684714589325627989122935905420954599211419534826292844534369002221278596913174572642705801669410544121719208783650091870301634279682435834505175654728150946868707245633726383978089074635317098190093686667654946970603721447720661606877762974707748880581797527881672163722017613147540949045960854287829164229666202748127359116482443177623008864920999027781909840622707545577355627401933426998985670827882978878263034911766431380687631695065010047484527824405367761420423054121392379920804351644785419953658066764852099629402259783747947060981107419207909571570486697074606867233308897736190176752978685364987471266968306453377326372499340844550923544802789451166679995001883624291951916306551575562624182882892151674803937179632043950093702601537537148069642749750861138590647300753167194662156876390157453350695721673166243301491409853678707444746428335609030498913215504477865685007540045041937878181102955553649784246030526230863035738996764909814771613075582541313013282970221010210498380243557836912287872296719495002323997222086863512275109797581816435389128981599927456532075504126998049191592107662564869592975160134907208559756517022654294190393575724818496981783699869926997549924843708725668578322608388908003879861010945281787165659051011934671439783505841357525472722299800658754686996772186813805494928410325001943521742702403903130503624045759450970952400369694458141983160340677477981859624122122078254660914319537561433813055552214958281483384890989063587361666045378306553795630639448622128671483294409400632930779670179058540914672863950772468745896627047458729854808794533642845833001075209498760730938784833849489395924299868136896754665569305901091190935870268095002295665755956008759426096034597686357154476938391659310214580736598703641856286788349504060638771546298500521352542434817824558666918406548844250837250484852572857601864383092287208103326109036058878956604312969907118964627030135631650129892739247034288052302082357468310088706110673221348124128252627001990360028558235513520183825805053504572821680421806126392636760670535228867642075984392535283749935983349068286029667401141997231461292685546495673707723086938057356512476033551262580001460779861846877130433576076692932619300648017193438152273884671015037580979106538191774802805590998141506512505112986667215902543409122825392056994138469042011781219110624908719728094354830838246400091455617635440405668788873421888169493762304323693846228472313431043315569338866591838210259890279881635198151017256286900723475552953877082382755395683477337070032164658528120163243798283712411649109553637865608285940953986022358684846393511811540858549983621657998648384226786460739107340719038144022894842954270785582419885609982618809748856499590538532493731444249348390607435104455440129245143920202869340526195494109875851715629538593167655150973130746148394855377414713966575604670625595547927233713491475934013254883484388627684708212773545151472385855060938249369498114220617298738993914229221724660397936893746789056895472350679646124269275829490492517954834933387107005810929982213658481978918694016543167046938809944866781243348599665885212129386236366233978791053961372819268385183114505230896495946505297833787199617781706091336047160345025033896036602041824756653611604697174895528718579932438335372052243998190040176299936851797986677958813330133426676838470408825210125041749118351028359570188687459913450351956907314168174161412362208351209861674295887034229364233087303341593639549366829222257182922066603982495675530899207529918063035573865379913898651525519741568136604565828163528674388885841161264640669089704180243379769360072441725849208796500443844891840950223856131180222012125291472754967411701144127160564509282242287766762279814211651129559909869366451749343892087250577978889865811734355778572475965217339438808186426619434618874106436876838881244349455796472445513289850842411193656005365094054384552650918404438697659724778440184964549552761970133391829880005860960274540411953648151772488577207159636368916522199768959783993263727507944268024028898834086187560406465165086466211412774710448517784484536491063676671935493315358030779360275514386389511759851950287627897484582115394891481962748779451607093861730118575317635267615747202150683172818016877394965693970427798916786710239731309225052546732382304309750332684436446039560851662927932717807094742653845970796767731323619624048527497018250976616530949910222932979149809103106640264232435325855780381686168317918014749021385394641383873155812638919508747742113280546258872027215122730671247495077625353393260952844488027595905460535094957275928143756717408266166234114016002855999699765312254792630020453839309434638585695880029704520147299988778723613500448316558841686621443021141799006197894634398591526999326083874048489997784182299819738893547260001773408260761409874255262590823153822747737195410272354915077025249868084457576011573159636924571027173319407203286679575265178659386229506107860950262037189193521633534030195974580595379960820728366039365908043499934517544251809223152782380442046311545261799882803030775993661452547746711463962342869746512826572281386673227076000079044315305704344322870097968882283589350974606238830341330089699157956282913256489302355587855492756262359454955992876200408206055994653325828717380544275346632277267917444684433182937420434879656057200676199946624813472485403463752820150054237536459291119162646795358478286359365058905956523812759419637018749446281073449153282660193577112289928286499554203232197953791301623012690838305192278562516301944641202618735489794128226645743632551095844213130687808609379419770750907948876485168783462654970672354158820367969640926270692407108068791167288685384805934922103736892726446208433042050839422382210582761480471187235767511501135016093857335131935173698398660273254646912014725992626603466585815164231511576669237964348369052741380575919041913791251260629175048713009564460509291200763443563560896247961574860475765835982094944708771808728739337395790462921201218306915486301812953452187744316492859403397169106552172426431805478317771359446994370690679853152513762825563610722111016710384110430587578186414768410988095960960280783110838663080365405175964415363466570066580828726516044127385710742732405813320468041636999957639414987231181115451588996225682426769375132380350509375398057389868731232104444400397457554592016472852698869057725965533584113212445398856133450707164238331454761714348445679269588680698771219075505092670385485052643797119183195344616699184808167542503503754701881538081877590716178175465224430134188263161235191628804221579873658762742688735771811680135209446201515913335436745282306472726482762859702031396861372343024650235660085338747195972484170926969331698039695773136395509761844232983586022599477300009124403729891343614185528797882323517599024199815332747157948588505420282168178107966510811542231405329510533111340851610910886607262416846929899338990733370011758944089913260930731883233516657754266811896227079308430647546921803609006886645262382420341726622113067313922741556822030505723155505655569322730814657106450073033402484007218431571051935634687490901678956552263644266931891183289480666071650292152128780220524321471221778154970337975208278279677261238189773714744828686133866633690341760252782159629567018543206331178298459292589367135124854439314309272566456778375606191234755552279400106840970644968935575886222848102404173906749810015157273789217173892945809971777529649951096485779316892784251941254240212300202489859535693479885029964976041195117770469649232745508498673847938297721071975809254766383927590553450741113252927509768148559656135644712117725653640186402689501814387067345066399850012695867781767574968341326006497547972474271648480899367733687735019611825650418187492081852858837946559891094289307463291849503241513978837208512408321144018634829631928776720618852507896068398851492129504474630107460674998161072901385619949192258265490058494193596179854821044530794141454138259796634856916475393908687526921540467265653498493159965815710627655189292126124411859270411335450170138012559945491914445512172549060423299146861866328211889461481991131443645058548132733624758354033041690474729506988718921694898705749848941143579249810041743928812071326596909185065625368092956123664603503599220189202004144194547758906712684004139523587648299816607480933223385656986939793737511455436860120167738756465143560574557474414335903235251072222153408497202467386131876309577063980656383758516127330623877279248376746121783075526696992729737533976715628750310554667753669770748470601568432850979062317935816438657650277719949503045576796771662472861536888941382580138593174620016617203219189550978518228105376105450128408044800426880219592082053171749361139904108244900984810011675470458956568829727607442949252437478224670159244232275621441888750219022376048514953004040347201933962776802201938812263551690734650369407549844733543564073225751176503147380418761500255540376895935795479498290615611071045412688702824449251173813418068335632582725985349819917660190977131053413202460309404744228201465301703825285778304357422350281894387648314461117042273630503685603413054205001688406240126318800973275438355267061541397862348162520796222969363802605167076806732427101731400439467034644897621535025010978233618355271297875828181113058608735905182760660286857493519552158281388324299281979334822928862934088758469043339179657484078475554585303271304423600361182539991402999230824779265906399591450066191479342653329187921579792279578170118889530186346112096029946356575179418841164361266185098576882996581084349180145488154484213511137929332912415249786400815588675139074094857759893051045844756182445744239644949683618776775574704089348175732138971735058359277465701850423840388472769338479651476701273208741321073415624069765636422878912296307389420906054128069447062479904436169928905412286594901430056160813790649446590738201643959847437500126834661220849302564329386998215708238222417767996319435844841475147178972016483177958694251152723037029063491078022056938002676571729779588226315492316662500813730709410769145686778685041815590116378157599481261367537261633220485919181800242904968872630037890188536806147887330495883253504284013434598947324430134413074693867887671090570698617284496966593702946694358961463235315604775804257071153426833784421736557582435222396239285644982368895824401362208271191278245474466307591025859808036492740200637325941039079334557426800338042022842993155572705996767704799870161153000337044065364706358014690899684386894823962378035106473740165787193465581976890998423371181444784572214902969910004495575991121649415661785041461621505490883338072735482094515041235686651849613587009294253887647109566159075391868562928899446531064613421679963941878011783819873245538959755181871275223947708988145970683485516490371939852166624926871997540776522036717991265332297063111992217622963457848190978047482186173616361841501216497347518973365952141932831920309950249377909521428201342455228216371553255323699876342170666624906289485345356208765032384787923912401251376526914189983791131364327003013734899052648982977718922340674351499863078496441510759010039001175311501497607916744807096995169480020162191120885528832233935196277017762258456534748544619592288384232307438392505667218274544759349011967060311380566876179704368435361193841046177978836767649340899163885752328147752136967799142456788838352437516374448125153093740647285679405115340831370576507510068641449918938451825270241007673410010005425743484425232546803058360656492560093898805347712418877889761617584379391419382706560607812698135932980792256661103013123935003941315412671383401984011668164403846414095908408066554383230243751481618744180154166662784047879219337795014909642160797149537818526042183934431190371441111012642408498662459521376365100484938750168106971013227355504830476107830635142875438318881918290008347286289902550166931163435641988197206949215629504563386591573963982478507181284750208445086949791438137004251686424471787352880198470138407919576594222493202769371049394787942666568290381440788752849102453843473403545003656021656568965687735548978760009894095509487564904941850223010776809253515404390747587154745948096488952806884473998291394953542185186496865519917374233899641750827447973318863275029127213569797871784628179176887816792247635042470730941349106922065626991698104328661018183543009524853731806701413400283475125804641669238832791782896344514017552628320086344729173598651639387412150932022366095881474650320837649864493581562230339312732569327158168799242657002018502136834361470371009700498185307994197598957274546613696061502665536740614455630999195911572899390171028705288284333496246141889093742655724223450226289208594543896863350136238668280489502204275359702508231948418788280079850187259244463161099162055648475990292368082165816523676104113278857754231177749668583168818913481289987958764012944637114983793618927787684568390737354640514847934454828111344404388041516499716814672426606079813411590223388196833289681254152138629046823938243346287183638907123400589365940051682101197177671588704264165040446726367148763204917236819838278132545199470546758753843396150992301619475559195691331397312495402484760491177903092584743478043796368087651868301077069463041093601740704730574435630745376527794336169192797814320053902937898952923178645181198529569472631195233208519918400960713381146955543813497711046828484159492409611656147821186614790037710509979436266236002424586695915191992020125017267033789743993740013770632081724511232176879806195377613475276909004499442397793927198505668822613550629875026726191108332853504873794348241509665901637254676824317307677976892125269049941797844144267498528617648416166760407350580275326067228467856005303721991327339224240702778532501470674879559848853944234136181669393281156547624851935166841250354871941693295594422531281697931552609899059558569792540228138526072393061729078897914911647509913692834085801270247497991444241972019441229637583334101956900777179476983735938740262096422070020313681240937619363996157537763654652328028579940667026763345014500089338922221407497207186589259653659909200373189612828491697881159672445386812575180684020734416146550693573375426023378869184722797459904583548908681861362038977789062614614942673940522815808901464793723525257139140512205432277138836118017371240701107503931683190654090389954980291469854048680932825573212129029449040558110489670336893967232236491367426924200530043297609021951165355154397442511388386436120173991216855784828858307405737758812072383107171137295938406134591476955021104953206418484894136679770075554149886976974013949178864603834417729181224191859177180884906559254077555373351410329841443566271157647068234151617504053829562462435495056787721438460039069496540316316299434386144789786485716418304762086207929790409442726366557881539679783968581209478996533358147393547716621018979197741708234903474151768744345180904868727784675337030489777106489443621696771994959697821515725548663071012084017512157307957080349604732086323561195821213620010134692304737753080978263728284547410154111930248310638413963172900646129567568801176019007088466963867251866575448276603782855450120971180970166839237465710225703238350358349962470286111200490880960427333627388827567520720805088920401377979641733743184322013311863543580647793796354226689741570855825164061895546176286214027015958894984504080207216555299777677842149991971206410538984893166493663443993171414183305752326879336131632626928789424668636959953916691579821829905635889091761962341761591683438831164029922410437668446743504550322051140401136446190134417894639845394090083262925182489772028806776362374881486312930023721060696561812622102095049404457782487279329549910065108568291088774407425104011737151632227418373664383982786688417960772895863737068331606160413043004964888017648787449752951357377248679228071066055336399484573624107916403998247371383373443943545054584682657918095931487071017632207455792464428338822623554545908361646520908772863049935852791330208054701774166640458434213504091299243727814596023783125042623850527493262083064914827548626491557954266860544862766328247618731356726800415098298158622425740434703377969770939419757732982697623806618375095820328857760020832028477605382417516442020535054838554516587403890273294542684805044989977631994674558071822153280481733017144245660533671729524421297617543778274719421030763005747856096536116300647869077015495354553874700769405158898321814088992479547376875155280869665229787649623272588711868807204010405226964972099192586136277632824700258872277877864453368783430353383048256605332717756167966397287831012771640082422172254159798105012592629896840703886459658145415282448001389765257935939386247703258898684239260521688395105926691859810921507313126906273977040414426507185585619011048054359912692521113288149483164682147976705147882003772689470816370185984680205091078673368995673633761679406015755354276712238244443995793875329117448779776416948679395074992431261529871999277697009838239690714081587927837272732863305535759586976047787173405229984934766884289929627321351380336487083312005889631704673683363016848313374707621936920353634065920041101923646309007346043896698243313605483064973517066943340635072786286227935914554213664491232223292282411584589287332611270433068307021652936035570861987520522543319218903554625352761291925143422062365269568682106874137800968473620871607832497842449494979793247735214128508134649555384221932333030637854195959468944136203689409287301986391427043194361360138009479679386542808292109139868664682580092627127775709673224656769271537111421083738181749965337163635774616074580803172244200346992828502198664159992471797583249248380212740348036614480164404474073852928291373521989657231915665493986384039530471658259403120516669900727622143191632360455691184160581412200851315476153471360003158680668584956509352096038749153329827494180244371720545176117655291290516964685041690877680142850602683541133747667717917194301376702726450898189303932001542951763233075091015047225017409779560437532947038107870551214861259390045809425675329874201979036311729953656972277185994053116702392741467275832479354644386524574509458253970165280252595874925161274646262816760497885352385604370225705650489676721305377925825688156683027668331159154176069772638135621855907555588850418327777747884962718606886828414295832741088722399593201926315180553573650348832863796598350596392103003388407337241983504007535297593260895160671308741265039900260191691839858629597348321460815361931067608716860407515235051868435228237654318984610502322647195654491964846543345058092446392010772379568864983773385511307427024402712720970795270711673847172307387895074810840766371095714361665620807926199348508224187865883794740683193169433853639602755418137600853459499120270324465162662813236321925884409002175901702386513286938484745439894894591685211319688075524551175287963965077437298243255530090826100268311314884244002846929773748583300008489295367483403715944888145474271433593332535696083566649924763484165664847383425401179284179110856967265578353600262842310393371377499985506469625961215637879032891378832519608480870236873650653146943489382853798525245561626175906366566819037510199230411307386173121189329425435129799231856798437954966627053543395255004084103838031080495018016408953058792011550808057062329264390590673996503960279882281440497398780832649538212623039039103805367207947199576069706246711830459712270576920873293926725037317359238859217450648464972404128678633621581228450446152167796097865244077392710191754946956241316257734558076614177845775649490889428840020814953964787397288504467640491488515238724579057732457158027238013393798734782157639780269366332509411182115370237232633797108042761916511791226801262077320019409542363733848524076876136002741431917766281343878836255139666546464577855416018471357123272880142872048383414656077371341137222283894663881265411355656048437929355482432206375029631325613059604395456600680056879465508924354553974853329914186635048615582245877965550118718895779303106320460762753452328233726796202720156055464463076320230553442152988349743895309772791082990950893771780567011744425230447918544239749906243616998506674308641808457862830774307945393484969057492210558166423438257271969765372408775512355118278074702661564140604989799920551471313930268242024008550218908520141938035128156733938487011802700410802528616026524252752764195618082694128526826422665567401657866168484268940837022486354469029452745406341505304603578084957994093818072297854068397289164404074943930246489497556657800712319391049004389829349361675608503733515857917578198232035081071301436824281331748174667747450532230415910437979527653390159166425830614026118029747122802126729537011830356703630597300479283205012435057415859200488510377694664431901749641095726224982107953883540366590230661194036161552752753290090695354619175110896636194780553251927435534107266271657427417236056853523939660650713818536620960103352978101969489674642708224654860500287812622948800555656375905131980684455057260994893929803590698719672019006874443298598602581277191135301439179705007270070518784941448716451451458397434569718075321289693901387416643450233110421199462755995652600112478453655524837095902507374511191934549985625878087058593440004410600629761241702942030470644675279324978255270136562320121569188224750018945800255556862987943258960682518366094765736934962951004103669234765767195243233329279335165445445392908755613351532057430217730555310869329704499480005170613148233924947843186742890687188851811894758677550108288034384869714886001763985143267957515523807272738514056854474414720636282641178863878984127651181408614706569329029090725136161118400776903293466370930589696874445752222550651793165210036887216260634770678331115079691688277131366886094857822052350374349544337749851601583055601657987414665028065639537583037634958962423644233441811408783859406127368208555246759310128944947177656041817706848277358532144120874248719542171604505997950296671756296877247541384912212937338759261951695373987882606203241533047373873384095047949830687176259569129984560629920074688212936605110355854856133070041468241692642185558987405510919482339133378579979043635209710277921164895712298062802619536271691790028612354800395828831973176186264063929421688276939621945104260513560358549039349701599207095545626502599936157335648997534597304586426386943207913955681376759739423040326368606578657995928202126497936823108208714169887611719117085373549150368453684258393368358972007724090721053358847362688414960055849651522242167893359548802470613792669600594185860799629916253012676689075591452199167486679685214795355166615202535779453564966872002854946132595303729525010460414242012615299315561191095247040350022163476906923169860013642994327738202962193592064485205819751183698669838871533422386437566455962389145313925922457154303211109003351899928503452981447370709466302612086642581968056188469446946614925741136303281356382143752699740348228357379701034823739055130394872184056858045643393481115216062918401407430780860945727245043444240309505903801716941236157598825615430179880953111830151205270377981844585544282718351405163157067242886041824695802316526905277144567353214732981740571677900321402421982802508272517394695015267187094947930532890188347354848948366290773321803485709480623356478392204291526619795565661941584966907204901983225757287057176095985763250791055423120294338831388542980467495744518206113636812469859378527050984588355604182045107539705550982101326904692191492358346888058756371856212639381279950729911589732770427519858381661770411764297804746652053020191885331249914295317434456912581175413212259976554034726219367395883818329228257101289169468576540475616665971571948556816607718144970569444846512957170102336239568202562486675560115119797007271124630023540836064605001189236533867779995581891938058480112350145455059600693750746334346207917891279743018132474648517306346986289413475187096021495672685669714874661269985706504934429420747705543297898615276062291098354126463616308365882584134359808834922435951533512844323438100558409099530320923670403840650914214665660934025568208747102388974307939375665499744299712190927098326944074080866249722931342407284535348559235474307439778330793096331193590742750001461816991013273211095722034763647534218302483040157234022651681311346326440208985771346906486528081028799307491651398608120861484413559754918727560619314003490405633703030333112337942487390157935248167799978035038533415995005707361498244267364991028128575049070495124560831273265862011593070032344514162291963201346312364580243555492165971270811960833315774121705269492266063132149996699897796350005926502758692193429370742307796779501586419735170335426114115419819621258252872204088966420467044451690249205624161942248114249385664007269634554688613897461614580053358673053109490473486821102507871277772991520871466525786903735370405701385577326049808347659571183952480375989737374957158337216820803702387071213119199967110668280954960032580209068773722397398951495272250957732122045457134621944423120902017530534686542114087986556634896202856853432024711065730531256819579927799229604913900761965237350676139412103395220525709020690086775625081569974459125836884777462210828589610864377957668446943479367783474568600864782083654909061867931923899558161633678905367222254921878673382712558710341600390764538835850674173402429853650161184814417547616203441229574325186054498010336845353557658790247590255485284919949473212629268744786595629541516805136133515517789810545357546053472266925793321266965125116452349265009246577424577304425724614881739025193246692529056526677923332852567675531017677860274922928231400515894660553859288968297253038662472645277000770242173398096039798165975618045838842373388251945018936140546850828684718901031158888339837063385877330595823098752582527792088001613326311361549834685660078957038310533634266662870971106129320899539073271914421456926028276741156679933514942924264503105930727522701762760654342576319742091678580226691288923973227136096929235618043518189359374165381537970264937401627020171975472545548401625903982374550657818665940491614846139771487275239487581638276743104939438356038116062405713678769713775950320019010658187149242029129701719326933064041208745154733171377526577442841639646647088285625322537678172001985471547235322049362921433296634034531763849097786293668930206682062419439680910422926368592083475014541728679441516693382723719725509029336693182532018820302949862043229057316901073370679630546450755583687293604048445063940628163192965676761432777807830180543984159171831288145069867689207852521819945067545664072859585149765008745432803083719428849493561096073701704044674677947494334187654835899196840585933130701294264238856750844482340061016846211086613502682581057652887269047229820093387847421708946682965232952251312474978593456665023141146104789187550811209044809974148648818008563428353977091896365629683947393525604275613999909255689975195014774362477129923936022228339262741823824154333691778696084840409065269250974760485642818306748842754418023543341101678751256485057879632586055021413441564595653358867037960091174601356791405370968605565223439169470485661733651783230240414182852241319332415636344719376884594700486269239631868360953552207232161207559150337734106365901414066255167931483143225071492079607703080733405776230091003698069436302940546095305709795995644277858271702382726053625202352375784457249276309340081383344762388681632516994401318614589618547689220750331130959005288643830110987122359260694773124112575571434413232452154429631759290711756192378941947492924070200718433707767781802006443753712396571016248201877869017819154780450161951274618629492333345716151269787527130504963432903850098028279150722165208866967370211871423833711947472927855990560547090452208971471703767426978310580130569173022725554026714569723122501563132950050205419516923290339825263391022881548021729790873731864611726140919809421823591006570822589326260073375312326670251471824227255348777778595520924361496725079440630266111594345745443020106671973072777173475184174882448248652788145085085063181037465172123157791914454503195074223982531629070214169952342338870860434384134908640203343162625573741478172567779162613552626049936846964293871545080820930938365393515619426139192110964964519709542721625908319595180550738486006618201138096799553131407454051958909134419608045736545124259574902906497708521781275707978128505906097606505436262605586644575543945201622048099607441727005301277410366197461762987114052724024332017236411829649095392707430169438333226023990511252884715307517764934728255153762314327523006959548966080183898281954983756534500103573916020005407516210865675220542549229195603443888878273165846417965698011499129450919627136768363064080880120747756305129909669770397564942152876261421352459149381418246723028028404500794524518666480210632817659534829534474827814415080493637392162621420200235427821768495279423790903809084519156726506740779162843779714941835416368947787105981674641602408520395480685898296488088263408154039686118120636933038677106662345079182654477527481092231994343976200125310888274126456832778942785370468151699913503666077558154018761137619706761771924630944293530118584314869434037202403777479359260220963467205221420944866487737511765431898129396343044814690997922602721554538900112706751912891158804155101938175568929010470498322297676751103751887648629898489825412869388883532552872860837278491113674144709213852009040745091386580675439895795736026217776674128062857154056627987455388984914394450174381268862534552545087153600732162978463691045408268976940919024852557298983009146218635703748114972495215413166119930287408088672627349855242606308553995101864597664220616089461154200730154713310543710171561099606885177240664795487432219197439261954583837186362819188781643499395790513301115016623754496636602421114949903312064920156010287448167671501087096755276417441641184902612090682758280843532298758941782523745890147675388766777549537176253706758906082891336565193680830662844412463043842976026464620913386050287567535730315982137765824977773977709066764949107741250116323474645712767059698943219099685993362687173766123163136691466875131007204917202219182951143780460966612648556081066335604254298014576602921351978398587536746675588037402552216552553254572442915681251517202458023040312461810813422238776238268672775727612172630018508999387276484347109026460947956942354514953080355845421519905410355661473703985283991034617620045499861662126862368199565222374630788217088948927090825217075493342337264101327593985544826103808876664360293714239068482331987998909010138376616401787599138738211732349926437823035109019853757398972400485807567127564597430607290320549552509606345844425204759703190251310685049801002030318617406426002484096866585552985939431198276874741022453273376379443373134664470571146032801660326887453091842689642931140951006383901206986234195030397436996169975639719318002408397023702899810745218196327644700990643147593319044031384298846862140169816824729854052281881003644682195845492978188577000596389020074994350950053671621606058318483251115423378027710016819557871111438034238881619833412046915839847601709118910268758750860332156956855841862832646316288470410807958765349032419115925974806147661391961616989071707107443890524463592466372403904311671678165452102449877277986794290897614835600595129025356063359294256745981819377285265937363517917614817868634427507143034333785194539647586720140009727470629172599205194230663087732549192804028890984687982309977631060858260635758821164921379988119975228101091769332973802546445287811065554360022723538592312783575365331712579656497041132717729665526696619564355576876978943285788880445542580445647835110364375727644510690523556205119610902698330615205648441025971822616054268475678719168166627304544544653617540029039563175938489867607550632841775092152675361513645618868474034200775038430599206209754944209900246909193602646838981940958416534553325259683170752695856482170546609530962919261387915489857019308393319414986696481272050968987883404737920194505100204091450077545367548831669383649868588246148740028217001587103570069672828363345811367631419574771420289923815364646698866764025534774276396617208366319107756757522513128831515526053738360576437304545466083066528208373268083637254583042189313923162066114233956640745030155164170319498553607889245557917671898087545786433457823334112565377385336647697276199624787101944477094655704643541855070445489322976222263459823103702804985533742069883634293732943884850921022397402585699498121393251076637208554226932529163831956782792791739361311657285927941061028629637810861252032127375032253858548622648915100225887746370603648577276878410014032244691562704531855514032763695630086457155831965612101834750233745856959596942248645087252133087730711377385394643097527634848637529237447152276066955625617518710995070845923164035904815360140054504650384727233377392402448049653639258888312408899399569546484413977980967164917389726946575839119999801879771035253971939325350710480052395170521932826223455874796046548679327408598493559542471668676273443393979818279608966238068266863612958354858431412775739190664381105054515472904451443973390161685968034901751690716349273120748433433299978945194092206752233655537424333510838070998517370486292318073986201084920373505747217851246535791470379533052388955882768181489725865874468289791785581308385818701410978520562469087381881371455636537260574266050285647329587117980385939496683896013413138220571077414207325304283657270279373315554231421022430180164800495303964174182821046217394061287984213011611832341233585326097152449172681511420277823909608263029254820068319532532394764720177628304111914301591656655167573701379720176551542476081613060164889920205427634476983051657353867275828657339948481127481092786425355931653048020845904066113925778301670284808252931706877852123047353913085923199241208396794862699997090831214473537514196080127174367310419136676243417936035599568977863852973267177406048056160139955909404261569247605212566927259313118519332056754189818545382186640965545170078609353299811177987701327319732288892402372127995179560003442307990950508777846061869820310104167429777193548914415403434994522155127224368481756430959901776324976168542491789675925458481444196555156999710023078746163258195615888230856059961990192352067612848436889340368784878705854035929193469712836075968929922778442085630377750639446372043387689435215325117571060698865111511528198570075227008167154478178421415234065089857217766183182216975605295409618936321600448250857141099651799201398318252385435884628893736822381093798249834715027803002038985131603477088604507125232965509184098452187068650088733044796031171670518891870938356479851066744687908513524381073004468632659613988057100477509065603305309034091790443689783205932163585962208525033928596520014935240303192366001924015254530267672565807682569836977385297955849579998745630944898205055353405781563829992809853231366834062352933762479923960820412094940709250362179760880359473248340327375526401211326581982281417999301224856576634639543347490811162232148101450113377783755898455504468715270002003244873586025525148691972968379517538758337927470696334332677808262087550336197597623971431066447226993801678347384639302643509394311335572193095453646852728107223408110861470735227425575675625947731464396600187010310863024129814724376466864935419782355951652971701037915884936397231986539281628421242005137814526706690274613617571702258249842842578480307812002573968025832774442492536051586082499118983194145432774573275456541667011302514474253938225862483013409278558755093883076326986996930717311730657224043605593313316691056272586795588729950793840017592263931502446290255257216348512648895232573644072821541315304888715295449883340068665359118290910595920399661907489912732697058878126453154622846807362351071176508335486747896579295888398154885780728218586013859915312162697951707083420746918818395222019511879035025374292656236748035941619561275553855031274591531103555559969445712229830400586585938553629520892270693603819160105170429158702923424353107592673965670839121816464766861987364632221276435974070421444515857829877958897845491791648601267309049396648463275284876060435129514970775372372693946567413599263712984189484907139951442657426989320508941777822291238033914136146836272210884633673597058262084907558524320951581413510437983887359081599072398761386910585598089472442212996018002978842218713961514628294676416506556797743878809964394009391952102702793792440006611297710579024584205071991428536168368054251725723744047507618309118993130884629227498317986968160713083911055566345556680869325440754507846116261318835593568941518714552464420150200050592422636194581483718256468072273236165795921767564376363003270661464719328474553606332144897236908173567951117079336865529235063971314589246921527064699138333767549046823019964541536569598814292329355454678506863928322998691787889024583907517377235094532952176458331421335527083060726356308875413961181735815714782648656175796896548785934290016361264998692835797121919887949233796257204669802414756795063571462695442015961516355793056763225028007836401829013180476435745694501361785255915365506731026693945581545930455622806181862424052139295596370262734056762188099165930980030553368317894978737661828476771001907912526773428610286324388441783675066837688422322745557286839032238410797203895356986687239404720917434260985590260549614510689103693579738539381388872818245160084883260076642773953869268187156389475065752535202014770972083669470944907804966569856616210838742980210298642243197032952864197139097392509522746847192347891378304030557768997488948115618010879340000419906810324866794850702907262992021750793482074953211064619731283609271484053265442756281151149014945202262576219487882869086760420790530425664457196903211050361575666394692450081376592005734696922043514667007266723442110290133917218586366892436790885138690173687339530060976485498499750727645194281438719237685424884702458817405212207610827491229550175032984070358714286728161173299856956451907032309028795516282778602001950185727613915861136716402095534993902436123654145451320224413783152334629122078718299846527159239661755459685075193204547341774559962173339408005397959087914418590711881904221285900894930399852133894171690961236034357831438293050850284033493101390573957484623253298501090779957264206092463589617657767299107866063331589832449495099808098590242592475059837739975355437367690645612292670067389061181347628782597457044056689610187308552689531323364406870341785036044679909479286446152345115792889567738111179578678737678715988975993142615610496482216735994061217102951136765358779612750167595932800507294319702000705834432146357827130475627997711273740906787629563389410732756529589552381611128991625021891288905874272858645184995225193656489011003189378084041266305292128941488380945202591999170181989732701142021502934698662531160943396933475678267633743390299981065413759801214311221972321247070188352268136037591053215356194246082827553798043831470528144035013689258723981152197567995047154804467879800095741642420334051996227946344291583635276056298789553659208106825492842811687036263884257250699189340860150556427150699855801806651425268568383499808624915945996185441814124656546995110516149296395099849191239238405845893840735264001668205589142375306440981525412676509501293744526079930013437341394148939593274071194366995441821358746380510266019076338043907585005131896107364066466952517717616092815940160043249364064970615635564767152294977993494428396342737988209770407473964262767970736867950063097771980407857995480583625256075514843356216846047292306891681062161969270579208929108756612664955970681440983090825509667653292016176362771217099660606330089609911229105457699954666442393776895942354408335808231906192604672517462440915800979288853584441541367181520584402820534653914343722024815069886693284497191689977864271977172303400888651685787793968925776889478288887825650463733049466751109851620036887730840363980254771176744484145148091759361988758790478632157911120532248099731436787002973048776017400584289614596124225246984827807298968893911746292623275875869197109711231859886430731004509276820858378337790696308159204385040978606576267552302961190430605429884245719065870923506121076464627883588141792311688350265238015046840887316106546107178296110851485893025893543512688913396498552450187880644793722036486204298183089334585558956388106965720549560293421095944982162149614732923374136979490863115023754667740020579453027866436355524769130853376878402575355265421997408653689779460397530219821930246172034386863089468486670276603620190994413084573281141282082004568315209696565440121985283902624221683545227081525516176569487043132088099760603768223234096030066160444359596859873424752177074924983159045873898730154099901343642929296987914774014497210021414794734755882187939616605524978932084778793097155335020309992325329329055076036336558365912617470385129524330171934925314354860051518342626703653529085288033327260661610468888745472727908405290786066329499579661347809513548413475334272454447353136751747257824214583999338839706755761718705565640838367087371027049195389150317536872212099325881335820095780818592250936782480548858679256267037650269196781138280568124972702004189190190236172135567736938122148299074692492917012419118486005309019745570175396735849796884050718549015446100365700656413702054472028860963603285360619506515697074240324196449361507488894086051009103389508960093533881488186406745864877671025125739714879685937098665633983546926426199759246631507709334477560599026241124199891325949668805152374599230487709479001046334088968219819222821989641861502665986254648621697265206449365587441619539564904878294676344521841061834548959391588859859298700755584944958556520105746516869658435441330666183124997754437961206897687650196821331876647522024531051557213393239310616359196617898029973271278505265511715986802956069836132935766041390763492375176838935120625422384633600236213101085298159441189234677694783545821557496753083556486685182419701344982017595585531008372300708732816740462927002100477376698907828270411747866228369892346214604986152141996259725976683479924522379375010637568913507789075826222074344248909305482425154814198921469834767077126308997189828821462928436800930720090204378709010574593892416687252395452908819200457308946245330294873993146685586440759615595881992856563052558368965904089253330406340253244813332464180745357872291537436475917335385724962446407261576565360635001345771758226717268215983868598183636423376074724557457858099012472832151704820768943193412864698430829548615090233492469672324728630579289179864284999390413952931885339979837282388403813194282022074783368356831351436052667041271135454826229654227015396555428453609706564387706833131020539342303717825732280796728042038685695773162509929865808887197892089091150180931570471555269041521889245042957933937345209536832268738704859901848812086400032318727296226129196512033235880322674715973243200726341818293825615729218815684025385728874992257482384297395115210584181014741476024976759369401558495016832976668673073957501058239309774226210882717454862511725520807028225582454656772835785858657764978215487610882462631241455119125773167183711150231647890589162212118391449333155756254257942209282516638277795018033430471963757050945021540502552895802299479093827711556525682126839612831224859649942053900790100405000638995338291816574259252331853761452173774793733048842091350490361258710530262981436379363121213401272193661912679364946082410116376718915227352752647451600631374362518355634439842797931201304032071098450003449714472785966633753880914833770541959238717969032699411330082589893957552249288896963392291193533980519385756651972033596321709161393540268377195427888590833666768526975093787015423759842903345247569990333081207224439235412821335407802350473607259769322844891934480970656773067804818702303847043758831262344532746064441867305945413171369310666143115910512532744754404433105858718839063735347234259645919991123098013232749924149541936349094993184711072157236709626027218409609479605873079791284965542065385806381176412673949540274670900286452163124578303670376818391233879282800880802306368464740754971339265138634321568435358016054649614330425328468664739268498876804232248366502998144846037868945443222873327317251257955892788614839164092275090119124644544215673859103672718097134725081489911270092323766167984115886679118027699909689252899520024851441977237177398398866404556685173540459044667960856735303338445972809164558887959751975072032674397624062553393639727080619704251054289806745832235969925360224086587389291939456976441134308488905348614505209555321518587610756602403273726848587471842100078767868761244239713881733663963168963993208813870281368665387656970555188381341169761019944537650823658842315334853352333112552101908719280778021615294626641206478211446032346616704180403369594234679952343735437503974658569752196567775836304826289852816747378292149593256269666293801294153745237730259378297709548150072509100942371323062623221005177407776000780152221918376192385088768653685666753837122422752582727960050287557852375590926184929311684659950367865064584630814852965555697889301196840561984843784195358589160311031629752988472723679268380096058489607251367612328828392254133594633028184863932708197581287966730906477236790445378742859804842654250076593877865257668336251986694944933357611354511733923598825572191828203575241168298259479896752324602525651955463656653051244182880493962632248171396740397076392795996202128667212830632197197899676800069252401473578425493093386047900890086129487008969206345545480195805149491461949664194284127438926724270087013225523958511053093762780211304872668990592008251602946598329252779507143039032128691236269615361699544146899931030835493040785875184764113686566866883967492189982974692804611714344518464321545391116298277851874259917344701950039830661910151053274024460766080016567932905930691961169997269509368405355315495351237141920075534512004934654882243259720065692175147157282303690764763972834893639546204404976759724069710065636265580385578767965584367396425393793772527258564511889343448208515679647286854696560286090195755588514385853798148460690188295963455580550781514656343698349378852448980955347712243502597825370187234564931655155560912422860983504297712407764734092502438071815279189324385170900811704681314821724122428480136549135803533902512181698066902335562171016808836009755661261419849157892584447052486856600860542086004366576294603391156220266075901946133681415046773914162248277576966718050805631882139052860443901499890459869399655903838905026143008244211348132481282055977100216364015319952111030099706231119801042329985653496969157061155866453712459095083886496439075203380543260574407884582487235145051063429696069775060606301821953436437597046372599496254599382420037615585099949596759336926265232826579074631056132281043714245791580776819387128273583305570477043918342304154578582218083842775312637364157484181862438620631841238735321399975199228532180607819861283949249846420229053026522213765456381679256055178978081643759037694316760048624881140512460036950391277475956162399587936337350298547816791616111500383731776306237920430265869750813078203704827710270923970271980832458660413063424103969842380092671951067099365060967575250182632671282190473637313774840118174299989362562918568144121744579548896286513139110214012900330965329330502213024434511435228906333682563590514173321687644062642815266017875147684411767986352375029100529201609453629594071978894837715905355296373186538837251791376849149896146150869390485220149827115198304935238001511600547136076547158642428697359512455998701932351708907121822172884983761427173228917577150515353257788058467685187058101595126715367392693853501544586217698560177297004406509472315069757857523248555084905700536578174744157578083743023465147384948445175803338221888612338315216363303291442567799623136005645872476403546533095950804733550695699207187993286680190872803671154640918190430815755604721446756442518762485328701265898116878759662243249758445627027791667177374289628592991710177270403795319434667057546932351392186435075898240248823862168190601382811750139850269508006582094598293285715099130949473471159167921242804883274884283036277625549451270779705007308413166239717248092123956589184553773100301263679777641611263466044499783524699851153809108855666131663884725009890377373507120526424751332067385020278509364617968980018387032743519098834105289362575969000644905728728175555377489639833276981329702952133930358385539950299897211147513244494166529658731943114481303152675075533548556329518406091304376993043948273729335862665644656837630048489052779862279866831457087413160478135542166150572059715886685821454245978397191696191804800856063539733354986762514316802408742838328239248499993538963995429657641859642810425902166031364300985571756488923406067820519343398916815546515708289771714785123896655558966054388183252587212330406211914525845097850829088251760129915928734695425556327965733343566079053393705431853968758168382795664288230954270897933954466839771695856430520450668404816184360825964750883891829999240625488676037621384051222825310400283054260885344547527302628792094017082305853058133934907916436383728188506557888835103620013854134041657267469064889932204841355122606978390368470170957999704070019655305534955571549122604851441807630404599774969581744984922571799231339445202630534560949324489267517892724798912708242675024041135391114720050498063057941653951408330753570042616768222768216374736023359697177408247136244708580471245013186119514993894197746646790170732562039896042460014146913485995500322143821815148373691462502597489986527295943564655299565916503871568657070058047930438166853091857110058411855633118696504877823181497069940708540253442025425982196073256191693825848355444793284027365031751397403994936922838542052161255404630252842487085492644726873843270708406623690287791467195290720836950354106519270273513777252139676409577592895037298998575012020328806624472556391030987524688187109401697106047443867198083896963194678028068531409664319831381551046925204759627785097450156240856429944314008577932497462545580638134437729527275695799776011905833085019792050249583019514242031872517083107333592494086077712499646486674740838763088828881701318279092466895839937603233033803964512833502426583553420576476802182653518859239826903050766390271402381840453920957006599790283670840035873646321668502286084694053021356819818850581740049030863491521038061678719468436046552171019525746354127923412839824174043874139331305634789116374400554300620002912382321532040271473389599759342295123264762467180330709003817039840208123055261940300663032875032921696450550918379805003018394275722804500499639106063131879341168016817776126789830076381215638695358509775014147204700573391541324323847928704530666915826072359232322818796696447180260353677038802642378374229937294914927034453195937298328833635750590012818430326140235609035021006226384798477965900200970955060332692687026574196629349494904413802524077014628865921154292934462624788058268824888343082427758507134257148926427596998437634196184881088022861556059138863893311450102098023350610905734371766408884273945738913252739626761121780982013792072495422263972392715511611870900700192643674889103224840908354438359388778182261934273619052183234674439909603365492365015922878286869315470214616413953054701671057336918678862802308954878270195095527570807764248551449599407705539730721230457772479367607704541775200872001695742472305454278016958192362614793826956759659412882844951902361183685165253259351109947436358797827115737880571186060366030112223216375681465422304224688064602408163982440160346022924992055696317781750393155698448891588874851297971666587422029165891008032461256449801841226904031368409472730786817580129678322446154553607281521978350408382513303614961240608929717072848134608919378640938757818784292342800012241463788508323940397605835689249641071785910415475531131395515621772748607346709865644997450331338905239814454446173870524511491069562626824284298925243758640670786444884205040683198921327990012121755390340268236975145887696261380794435535946881912614744041141857554520122042517013087205904875921228673614144087966477369059259859548470528716364473646084584950781977855963599441261881950489152442983776945692079341450688381087153193654569709396948476797817498036873316188903008823013894635287828287867705943510828159901756545491655709633646747639577877404206395804664387330644143262524172111096031137002279603029767640672180430344685568795600220184398265466945816415459473643603002470908133467399443354658174648384256613361417240681737579089612562221752629977010765424552231147829172537214595991172472692142122714596919433537381476809447087410761382456294105793123164916807638032723514588518173288492234044451973353201299252387976321592381945445676942605635032411390664970577548714661077381867579171518142164262703199479403859981401039245781516938827010038258572818060137901719565556713857595676160860659102495787619433181766748065324241739963557678978859170556831509493059885518954656618906463755337459288714935140704317419736347356089870397321027039236164555732362445728697014430040737194467680401170357867271853858347494594907005367844022179603852585733174820728141331947883093581721039244425865671040882189355392424215283366327810136731048211554094301959438036347139377112714496373443806109216272098044501806632326285704673801562439072501818641283039987740190010750878921679797857497124525999469905694769403555909391004318133975259147155413269148966816257629399288820399734114784321726332401015093464132994806733348002839112130178286763015875518516945162849935874019078665310008314054285815471575452276259783410168344030584895400538097834214074865990341954796113665103478770441790957656013550839751930074787053517470447988555878560261847245839655178399219564172235512526419372270691945429132620242652373223161620570502627644483172552835415618743620107599217038681550460186741747057214369123530570950592514027701314674625582670910324506815687861194836769626911141577493299174902048601720560994931637964299590661806698912778296928720012591945272161270214232685445292703079157446272329520847259529167596429859212068983964557892598530784048975012840685270551134520183766080042037461426418200169474671220782580792488579494725097810237242971726906906737991477780817748600862361890832911508334019434740774558631670757736471323018175356322613722304128968278794321191345110876012642912983118360993938238141424175455972944773160616985950126568559479275870734833864103924425825665815894597969945113434643462386976731143349944624665146897305738925400015060472528106899198441265039155973063538850894577911661051646512331797918908051252740826243657345860829524142341313520671071491754754492878916894614321486190840281265808519806169980843386381739122164452191141205743017468999049440734909846838570637997994074090530870247079743007726149689071221818505254052359582723486264356339074413019552864142721747896262296890607050287503401898565028468104354268163819447964156327970428682807355082162262429397377030138657317433096622183758701109966855153108607963467915817784086542148388904913590785880704430699123561185413897577235074372460083574384131936923309330929987159379663172471576565500431321573789939480837516705077445128244404335279874427043786723789211976054215355664686439736379654523077657833057254898713276500018090314028259012717537299593423746689059215058707979610198844536373814377859908571209847207919031636576099989413911397102503298203183799832376374712594589936690525775782711837082540435068914264070512811137647603034270612361254641442099458302378490050619582243517390777275556212265647693388814033422631797682856613385848108425614469851564549022582051102732155176967191768233135566519964028250456315155061935243921343709740987457832694243916940206487940931834232909982252354594446388991270119543562757011596016982784344026650425771843258374194769835103926553245456851478071066833761688919021390031831710880713820011729318240695357753056086982764201399088728496937421497690737929583909148800331780270393305934564427869819596060287584605614845492109145233142014323022589904031103446750354038639152896030996330474327816726017212347207429974771988716407283476770314921694037061334861164532417333010949292890535046778060408580323287263326741254312831201066436994054638811984852038642542266696130585102084076042982016773777572112827868892828003223480919725344407920288419144809365697270342916819834302395197434833723319180881076648289637947031080628855602255722149002182304916495993179018005393896411567752739928752587161697196323836921404667912038039105161663668636761633730259298551543444656865714526055846707074946560066965122489476729380489027584849215903362018763841366507448680451438298150051623433131993680230705934627729093148215651484579732734688803142794522409353015047662492534587768281567347541843646716235173468069536179140129066716707842920172408145635322270287522945682228253983233648851082058466669938534143683610694704032784749405508981963686890046876038452937222430684407270646685118212099111180186779443523685048576022744767432814977724034519456114161862988899609779539402761618536174567263782368730804597293818957351557729796349003210351655542615702715249547151562197901248095154822743989588484089640354089870566955481240891415306803317327166349511789107066970782298805236985319213499490115659443969315256138718997404368545760877075961854785616711341674020228748360840709401636582153306417604560674420631172226148960691056618945527075607340476723361798654187040410971847393472394060108885549620091246466615194813243049132407732596603993967317211083498805407597288189397447427040817199021413648598035618566070979794584361097372953918212788983882308567844686672357117656526616188546934299155658957953179913529798015873710639621097094320510279485434669716328155064558279040209143322752394011993873446298508305532077510313474189062055998723162732395938027948827233716808408234569271195558055200991598284271454678547831901907980255941347991725335619520637844710155430023643416049550376437553970966592803761244001721154714998034802140610425404068383542960344107276620159192385325904114308386324432539143000976945154162897160423677838251379412770878219780237559097846638495842962888222815022509865355631984918722634062630794459620186656696003870843673238755124573221454300732824559654659697741476799619452910010139557360929386504652471412124599766924713483844760773207673378946422080298143547327609809684078825081396476230435723993858704859605247238314376787890727106831083701277674112157140809830738313550363683932153771989780299414913320599709388979393274403766992623579107060090232622538735030114910018637094838926902663479055309013067856273711033450305173484964432615068960987838734892403981284569395026147326807524116899868741287225506987289946193292523465905482737951027205552315663105398485085153746589735217812262095092165910321803528436753922521380290343989666309364462987028119187807427281145676623379887648177232278612347595827374275611450512222033454110798164097696101341285198321227973545055689299466800832949740830538491284398347705207289076853079514882708585989772587450453868032879065443390165439608971959433143527651074602316136885903500577475709126942907906919197787541090185623216032653418612242829156556678203958090266145077435332231963819960354172212676648848443205677019189823188500203797887206684304188388164514372104318876827735726652669335120220912383457571000628878083690415128837591799504082116710905798558655698891279670448661181022976062169016625415834933259020702709287548864699812145773164252579989269074481750334051568368517980042303187918056955846366548010392733527362252431700565994051592567075942569016071979755110048370904973287552632739073059186747040240692316790710825668255181952860927902106807035310279234375006677800541454842395356669635588976029198189588933447554444437393951289449984831736502711867925790561384631209340284195752094261578729296943219908514910515028593913342651624272208481275079362810343897026382390112825210735345638550836573266670658398774341328147622631857353301137493248080337547170180924537563738685364429817364415750708035042085524991190604797961130829922748084093838523440726543411702703964447552872041758376426546392604195329288528730645606553610718747476504437613801080240548042280374291598111012531579399495440229923871517321549005516048722992385339973955857949088141240094309523171411350649532866891174501616987956183772263370861747686888788669680714300282515283998001505243934186352536108214175023435325251488141647746014238703946577557867867976803330420939161939630792994358793612270270193121641563272104256258138564613551563748244848612466197095151681625596602600033170248139872048477496743729098965514121532920359458745007888066973127107662536376289022957754879074626649913154281935316454914866321622508406068694843126945709317048285297658723690072641786091388633213957460996697941969946116391955763227209481311499231113410678300860137454171423528474116735566784534236802668212200051972115926333405625092933864723024804347807835604144964526454606280543934635404421633630618493687653618968528330446703680186949845558815201372531950227737835244948082845372095975848074898862954111694949327575315597474723332558367388737127418943730975744066082092229629143868065525551320725402376916222503318261610273378779747062131402714640085042808600641553654099956793924343986871372828187937592970736090233873800379045165347820179103578868645331321797319797239407590956593495594170893632841978370470571129135131850145752645434907247727213837690360943490774742676368052937087515496329499024243616070016411506305859205317694640970750183456067850810463365017344174397419032626156996761426888129403799464071813028189067907161225778852736882494252690254605055222472054524966030634648176646288833766473852778173976496682170250344787831638870471565469299678768186365625607748952179538639540683041975856003493575867690054454752782611411116803735076622703209951483514684578997188311594142600351344246235084900104586823331097302811751615040097055256743557600239145495605645326385157012513798036704061684174841510186347673660932222641850770266136443977187529467521140440453130771800251716108628334020109590253258704120064961303014830304848245956606975727751612878162893840642207846972666355881101013449145609880016753653061989192676827027210834657221713341226430170129499405542492595816034820662971749880914394772575656086358429145961257281997616769412156404882173455214524579994694350045896977081187421629475532448282654210831523488431493333540847069137683226172677039118755189254931136086494374559758916400173517439451258879502251398797147527119833223511592610687708396965295301319086481113425453929309394360286948902340239281062075964954439443943709677556615804347837479165979966869869443076871675076554954771837562188294549817350567965730895569536723599682330323348268480841951767237877722233169645137988596382484599166520540475604407470074649572061027494176036037536752376860531476976818617961258561195285326991906324580790135312520401729781866778005374132408192743648313787541156511458916772658127184694607750429796753062488013824472386332747252102785258792534907802124220477010523745984901741729691782932466722680574545439655548510569249180343167168592835411261329235024644919054861852349723419838160390432495450619446164913674590908520469620730678732437647470294401588007577271240044990638538952090839376422576785534415547205879146631382509363706189788524276144190599491961590615034345341898450755048944663132893817315649259098785751258018153308874872133049372703802786053820252759637070024726367611532263007989263883771740767157240675142915861365391149598407684786048513074357792265258927829697761221364678519217570352509637617848807726341100739670218536157735313061346760873437396657381024327428295401088736746719730729229471880602715867852879348311283561224426795319273238219715050734278632706577969810658554284672144516407431383444848948391891659703323247232881640631217991507564435448378338553483241155837406758133761993360413979517913075167597504440172725388137746863472369972246756428715423547816727600423756185239527801831520676474178755654825346450930796134161906995410382366065435879246485328162750751075244185103309850304631224039463988845966592255001313502748553300316701217402765616584870129639616407674019399198618407050222441633428251223916114077969102766944357737555585323039769066141294238342196390740732322582886190945120816445451322192302944419711391513042659252382846020421405953448887304551362777269260326711931066894271984628731099852300901409859920530382205081994861729853802370914733777071677268619327454988367480565937613598689185791555202504705167711085866838322826522914075510683466323565466560599630813222943947735278286343180364355464935054932814150829559205159806683006565559120468956750815760660194714136859681625980811642131403760981097201001589183188076575802378527724875018299931186146917852895877063066988540268880176808169658646278436382109611071236771037920757166147027283014769492209666509537243874457734567304581817062088062395289175333178274499405267147556593812847806121083209923569355194787382049694950547098864847579233340587398928486314354006306256028976457519739310359863431881601799674060655659257360225804812022438651816075597622885938338918393347647552318269265280538241372464359668410385897613519151690885562871546514572739877591059399799524807515510180508844892570635739964130830745073782472013042586580789413879374856351819906255566434549577536558899251211232046128033248381286688971620754319007390859344650928791903609865292336352366341649134370046457062035274820956181142121491065704758272975614969871749482024741856316532187295930188349279432014529024841715278939311370847619954444006784057105673006681280311243103456728887820786058739445894910446966675628295419101752871073483410119030403836096106308874192542204276593297296980362721874254579786572832659855220083150465873400639775235240497376440378530758822820262009947564920933399616132183397811501381129142843082685260305478409852415208306632914618144229725963522487338500446497555405187400846963852743401522208423807071302320586902642811519069628345051986770309877701038757372273260783538216083573921775181235176370255226284873770703355153324608046465073705297022705081673724094381659779788951035231207389899245785414980192423177148542202234295082567885115289485900689363615661269777706320448765883485402115829365168658522073587465394672904505528468855316121347764796745569741096656428473874237989157715130219689301908380514805950396081929171971137618324532480120289247372628867829081138826698884162817705644687585031814402222039757167726492145867082636038214581194520393137102010635551296696428702352617073011423828084189697277887568178967751402760293349075106266191523018221774077741243335259393649887309768113411205915398094133125752606464540215681967618375410858863383913867788869281333607693558419131133174654321196158194431896106676288312286920535853962349351913046934419127625009820323243110845909800274933636200622269869348670308631525004790445323469787246049545439821267224220642443477321669843180302709301739921452316429959129622984715411815006881571133192176438555018819057432807936620450322834792756653207119349960864744475474073707883310307640807255718323857153595987499025840231915896200002297741618748436658011042198003255828861244046818735500108169255472639940004863492290810567780682018690789378644895659624931614036438216810859080897947045047691618041173091012950571044497703871719092596673944773005641112889532545039009038986705100691455648906385686429286201990229530417104074477448397153995159092907246642684255412213382605860663351064149905225198197421189173984751720402962220294781445343869051211032196907063449653910079796000419551467981392095841704544082378470358960277955863662698941734563604531968590299865916235592210570806463920457415367465208748861960383719038974249915949595710468569354890355056955746847137505502842567273234078171507818432363169728060002414720690843378455044931016651990563933809577758288476144464807093161481538486189132267197769336445517781131630740852782265162824185176912410105618250060091519168393481264372942504089473735528038358853229011426504872164835946152235285695520145652118248309199100592675305766702513516308306006082891365654727844233497194721311892549130045068201987023885052624188211066928087882107880013875103706970618433365767303675946670840529838804222445703775035187510725973750449796421755224729706516725342149059659946274923934750945026120669831473008026737861570601716045717307151031537656889005829206851689077418608258964245820050187251706713575652947761754168680214487659333812870279877394045059450250765323288901258391796743904156355392148291996015499297967934758132751689754954271163817459340916950162809009341389645001068308573498889873597009778705762882925894652069446799004973804503917753822580871833650153723071890622461265011647712289261446242852598606373598456373408516556192493347866394083108117203003706695302183246176003081859879665257432590024422095623554638837389072059758383676301272675746960502510615943855311900973235273944634092254530078277412622960652950677627635953650714279709025154276864579508432784618635190928877986394603955170838436448729789126428899244705138883569193931517693331017170970057486907608061786440459467298688408391465222560386189697356364404893916873972688097913528012421249141321764764940880055632256471563084782851609826216370965798172533237982320031526191083130642946031132972021468459717224345915698811016332992913642169182343898039504311043122121343977304660301969215038432016254816079556483483098064157375492784897120088031467127691174008770873605751117182829209007587151935537376910613120812467699403313310068424596691590094897796234195172372846389983947565903454158641410936688903656205137664575121174726662829326128846159110643180136851642173276581025050680986258130367591073073741201877159598129369547654873740251078291785901947287956339391799410969588516942240044643923112895107726314641987662875665657301286190942365143335667401631866759914819837581983295501839627775445177095584534287215611266348504778605443666476048641224911260291078550093138826017849238082352904697963049120556886958743205545133269302883990387865906199907628303107421268916099430644802399425048651182990496384158505489512739085562720028033620178610004964878351021896028488674899122814595380874000777130282724113890664604799709432433186074951797061797919815317739501579605826880580212912557789916861511731834824884505459172025319916070013613700117782871694532838124763943704399999628763733875687802064275214796554431051678089507986706409190125614370542536383697842087871820675592717542293343510127674147630154954870657965346585280670432522715478112485821957333345293376270549851498922419328692135309343396966405508960920159676858791457410403435007661936847931276925078686898157055954211346409835372561607315665737831951571900814579820437248707878001075898982025827373215840684945108556169173043678006275607660918906175340251745642175411171112108370677724352459779131974092958263279535024698090448626699889445485158283476546838328065855290986036331303235761207196041076508389030819538508959118935810266850374271782840544718115949639343848182655739491597507917461551524294068533837410596595822706462100155863090755025392082390290384476025021599845321424224879227485105363621601852039007603872635900808794190949297798430286664639177649812343036620914070864818893029280323802807113967999760973184040528462207892486624141585113586635390990819683244637947601443598232561924756487842217246763794181003233531135556983134380733589920167940436358144240594824316618499937855556143781648724006319483366172715001985063103087600471727543555051078607434924623573738161526577999386013692329377773985000652555091559975327609945073232171900443202822776175967695180920355898212561590347202528492891991269748430595686230327773925734131608347311985850485135278736033264749176377246063276446779178638318654329842231279036467490553416180352964696899977948189523013806552192851281895571927925956248211565478339036399502870574750684274654718439554174646327508413437377909831386875704569091227669778947269397874471987166055226820148525458054614458598370430281785255523306759853935806089347669915788376846079071108571505906293628780219404919562179109489421498975888682289071116438339670788412406116541404196830587434957482303817869324282606619875896772959225628860670393850267906483982591308120847421033281970587896929755666982347839298190290816371020694238888120952840088900265515407718688488816230322560470326106137159551679292342715518478916214525593056121537604060345449173340643763431110444209700692479961976834142959967013869722880032026032978109956130935853597867137097474341449282266841326345115969302010772281823178849083580423006976144894600903381529200103295551744472118659238566598225373767054745445542534450996691206369071899020674142408462340091969669381542264855453933411560661151431168344695628345414536051948659895304968335743811444600186124250750283406985864052883908295871667915703975263327335557586857792302724000899432123877868368503932834686116681401841945878247082297691577982972985061905325175161871474837713404962872953214517834315823696225598269355785908531400870759815790578294841597626896306185217669007235359445831081615510612408270363533338721325008173572108134905716597810079419813414983253397782136687629227149875227711370245806003162924599971182435081371141031894945990938715667339243544851178944404305167991473828611834779919987497475315737341900797467635967641367700161886847303066420180382601708573631752648474213090671736917844119593451260753481503819110079254710457237767228579895552859316726275740100703202557839838653899980450830976285929437193173613127149902658151079296037232561924536465286486185247286754614067505589641143314611863950081142767740048174818153804989600118391225811894930707438905115714604279721581384059769497645660680342192603385111949657012031790544096101590296094479011881457957645290208554978089734387885505459004077037309416553325716723240013093427979562031009798606460308797822588803849826140008114453950295406421143860508017718089819294946820540039666713205510287039056180849078945685809932644232742570412666279312356715949455188271850971843751365415564424489383658106533135549669544857540912808508921742162939950927949605098461953282119822110782980419217332109574377381053951756888282761805103091380981706583285409523783044514566088068689210895788715519539387969153989688931269363155238390382402529849820881806332182990450989462211662737460842788816270384768256723181386837612827757427825699819272996351499681381633184118869301085064887350099889665052498875241340401864070555136480523128049464369495824957229071201818882049744685342953541668887321972000991449494657960017380466479249231668313053426763602158497835416364127451670101617515767185618742687987507876340384967832481200167056002226540675847194782909726905295777898655947245325150082506106867580715179647804621195757380900805423369202660407982353972107623389672664369272565118575968980471573123325294719384492329496761858247869031549183454852959969319264592052698426042933861205899880257099691714460055779948927398238446224880597021226152109828687739582211359673987493957629658820319155386497786542894031701523309462492874504224698089487255666385717772381039751200351453814174698350139370507068632572796779211281691921216763486277143193710679996307125354343473975053406389303973494047695735542396636828988649397057480895190502603075231348438497537408109137734146321387159862425945828467775877939781333791832314593463556971137334013538093107909520731947685050001996225645696871888310909370177188914516563421133124675815099084348900707679562638508967748924027889819976052492622031599443601715884902468610922417462297973999715715981704425112856476273594838847284055987830374210932651416740052418670697233820409249826097353728738109834617168503429359545214278691168056566739152722343275186618337752204909368874401528563920369078025399899891163423399528669468121269000972880182811802173029689227549035784730277569644640701331304311825291933619903372272509897192758520748282587097761617060451561432824947529929059938696995067186149161397716246619913530014403291041536764628520867001085195468021184429137978763622874940445815295943574909346226866763131830722927117433845782009628181675414343188574206629974826474067866986461618783824075137197517621940211170440038246043024061750935986290065651982387197414918917480158278100946485327928965371278682284417567598985001302572566111239068268369543333258037168272696012577880820980755267626174280607677415366732780316677645196894190286478426201830697451481187081191254068019065295488818650931003764241913973015134655778321772695383387019954566814046818129528471269541053658185897690341810197928273002128683363144088327047601762661232256819081615626562067081812867762920647396365269394597585498418223664423535709200382371839415472281966172321954763483915718980810806667647510883624092597903298083169259961074160422435765900560555500091448969221976922618388706049927394606510076918493192881531568674157754148647065167683508847500229423382025479060536793822885809336658491783232975342703586536879570191788921772681737307385362884862815996076447278541915254691300572649150172902649374471272666508677549980944202140230822707195279158866060268960543112676452658384639497903222226786123869647804283013360336522772958964214742202396846456887538054254385805995365162010489718639009942804884928414790340086616718314966332967780508279320549833760164238314577447181100621595147893772465953490527617027090154310752874267966022085988327768301442271962648303291302326642792479502673156705928461184430432900446598993871954770841963690610182678583464488134380526351233149353461066554671135121534510204912280871945974187151314966991213020131813776105594366390765157933308840032610730534162975548409867645176826259196323625943447440160432876075205384747824075037686428312736728656516621269597723585128142379896561215363054694301646826819287663105314247484600680545380331917561817949441151113129805224449394955634575527433067502927584978209027069028209535504241778825076887870407705283863078267583310351590788707141784401201319189261452177405015866357039721029271356114982878958546245147203081843880581905924305570536916181518368754852182832374720184603337711353022050988558358081460790713594663976439293850109137228852017706393088323580390547164737376048085235564385101970107305379768534136722915783346833317528940405902277841319374142500040918118105098101100615028017603710801088885661649762899084001544021101286957948385771064986012142975030783256871651383379441533533881050856669673744663615032752325862956492168541299253570909999607633709499311969449751222098425165268946155183920207536221881016712794458646960354118832738815284414581532291497451854413708940379890418833023353351239916021526778003471843793932110215631263032721882492017845135976544104484268773457409734828193836465671942056408535655819952931661642799837372851803375757280001723411580099604917821864977684673189001338431877179898180355305012676021423674941020961269104408924794014793843149414549559455302985002179443834461540937500679007367219750168071575216307685005710288686789541128409711587564120446954397281379091924180228786062371845636295938663679434073836898700313995031125826698456128065733922368721138380759791226356774131581525498304334698834220074090892183006304268675770932423512857805506084927549454726682588194413073130311100822659996316663417597599831948859569815214074353194682001976074264367638906395432988706552906115435694543538192972583954165024926633319559477819014579892921825331012715813351951321798270402664947961530150790479532893333313588640962329701691476518734511387719269094649390323118974214011573474034985498616742359300644085606377779667043888331896102732224240575741527255793317065290874535177691393112516056455839523574704047199625917434134890908098149415545561759467004134568305877391982010226492525090750374782541049540181175225279306799350018822672364298036354433413582718117071950266510818080815563716476248155599612375018435388663823075208892601534269024556890686717102138447678560233463462992468837070840806679520530911304481840651031462892319294747797905808602667667645608959589611121797382746822424362879915752931952632999062170468956099297061539072307895558413860692927995186710329806133652588732791766633691326918753554346674800167302514287081049651888255256863651404536052452621597544176487504362324949149190040550139988555489551283373607174146365605758922162166302415928391400690831576992867385528801064914056178970457057106933325277208151022147761602185975195506751939268868196090559730359870861422003997669164755375104860023116702856673430287857984969193055016933674044585983156093509685083252447212760419781508954886414920214751965437020922438003569710229633187802242843592435406695341670985572047177157113789045239489285729391212846660531462346412987729662065162867165090220979953914426012134637232633582180568187214631231132638688314365856517014588235938328399245321080776732635474788632420070499768440496731827726836394097545035339687362339464879329081137773834329357412802080982599164775353895456278465576372082529596594719404646147068260788280998705940366388440847509681828258120302972527310828513825423213951188377466676096832810819771357530158319975036644534526228953642257158118810308888458071101364339646880688838606797799080141340962872683899677635956501867267393619075689330263960180380027892955851542414013031951578544944527962172651409846788110720743613213343459768290192077106001118758243364273672320717973863406077179661617735367848608005538811050741242903494969366583962915179962124669465005804168708305500242242665338088554980305287890505471647572486459800076456608027649078930776423845495079599366760472043311200018877448825711155550445858461832623803787551883509666279677033562350980795182276782974217843119497588314071081155243524046581091345845353937972287936718359970064060585220217922018596055169293869153333568605049859716744320870012811435201600749561991509622511177643693966251545202779951609842569966607509172771275123448371238771593215264947124664696200686126882675820193343710521881165594427983349247283508056501743218824245453363057314963731718273223314725607807007715484528881710110359103629847813545796353245318500877109088650062579444601605803979074871636351294706112281824065329899719878056036333160360202863612803633390298326614984477387873858018292589416581795905098537327597821365810875920207578296434837119246864028057800486073726983712617037825115176121922303280230648009710927234648986070236395904411326908540344960090794467481851922315377628300185421982626916548592355846746307770356482857349167598502030290265330834710454865447732086213109150412708726265369234777978034666747286566222443855127566974369028349322895968813784774074512778100575713319135597734683470826534705114783412064911038087433223537190929322650129161237667817103853471663515320766839121792691056824447639780327606287781344913842342020422365295168801721756909444136209336448918831407978980146944080536354010569924180474241220684935594262117123415059270770974455778366639041267806942504149589188696206597646600605103505040524067048868808680165525259363531220383561731115856035079682674953078773753212443228594660312535996530957303784132339474224012669756498739349654490967965096366109607272673524823606643416678928161587833771270316522807670812393206495436408250772900547495502124974962740249441389189930317087786030806121112868529434532153988588381698422782359155378324684316672714943330007857659188806445342054524185702507292543211635482787163809513049342142356155651379169072307557383832676214757785532693173888802726758422887267115404481070904507321782454141881996138226736067340644037568808920598827143251249956923364393933862272402450076853545015647699433674546027883709544086456153905615096886655549643905650888467546261538153542160754276975789896128106468888633537597861323993929610334746279008278640159691558231241747350284699643004106628505522071562806446105018498419988824283314796379815034435976973583368691307876010352158792320466233470769357203632441795577189518270749161204545345817965221041547682098392034347342402503111329321331206143347762982389417651722021510212542791126714324015787440148473393627263233629541043271956854121367790067989213058127285399101855824250623436479059104466971225796731219096616485442043862538885152077374750440035785580344123092709226299321402616005710106802916644244195915742425603039104287736129388961356087104411501494205674198116411832998958216252050692849462978888354428241737733775031479180099146027841803366164793726904931069703726805659966412435366791620604675133240884091485447667711964838004610105868655021467595600083393965790260337115862411073508163341068569692719968916458252974158572824948514061731133993533286623721829004507322285203438583868062231764356000255614544956846618346198558595110446864220490829094344134491612805620569724912391946711464946642810045958899343086263160671589114448204753728723620028849787144885393843165300910322664630158883478092292078888557243972784806792639341043281501335986248991308928611461972551100987211674113052066594180611828276908270331433506146468580127959528090517176081804938239476773033487698329139196438132877418457384615155254951232159543974257551876616158421062278547127371368428521934132008245176060477704366053670408566153503819696522526349259001580358606964259160574676640548288541918361241816604635044229084266234344429098994528921536871908332569033274081464780566132463225541970149191136315880545537201460998339101999838461352104977914499983174013944161214719762835958345620025965744299626291519255215890929638912888970563078575281051503914358364198624653796631151974379752575122015694049191865516900064017500108344052887745640104060504975028285849777140166184183463551891892450570690320806611098977267866714445683261734671184827324579090864439335269400185922903435270368026522852349919312614496482465910875479637370867187016797998418960558572775551100680318121588860788089081158374568185989544973353987211204829004691614410419256599497777216363704532440769371113705158905521988149105072012284588882355171017813103058129165173251940738619999268294100457303316579803762641239448081060615319779649601633861562416816232742187493485097805070736120369251010536651511908205757016544580012666010151824810845618943540322108661379861952718224450163388156146248956834490425527002294994103508228864206121638767622369779814229057049686919293400211522757082251447412744943151037553673817480201741256339714703442699769966600609938954356819676565102758832695949059784183865858763769585044607262250510105080085261083879175061736570036538491288387834115233194954142782487489852610751407868733291826340038143330484667442744363572775772007566004238217824603225631642825315949136013205232644088375107861202858338176140357501676397572919406547608615011064276525509293933029821026095487210457931225330978823903141346601217590113731657471099453462535567153533226669621345920049047955209467396917804905817813321358759118517945427779162342011472937841807208758020764022922027231071954240897277956570939237629356433135529874585815742451012522691839019014502460934733380852018964950300007211270851499866507451793506082455063998345379416871335680133816072254089096018150626142512267003421209063479842876044742442504171837181950120990686996023619473700067486061778050126730792239090555074649350584033015765691635515792209137084359311140853157091750120988794728197351697130936377278175922192343151747140143642278223476020156828403152243312430163409491920345680353478446328296054020173133039462050056832714726145671392148216185224334533815908990734642148365374371023452207404026702303049618211563943676183803222204704761599667263774067856497947846847872624506258262287288863026749045974214382683960098629758664053963296450155146010339161450424277509525572210998435668832308945466980733303882439066692503667105198446009097871863372134878391157729920437115607363585256279330159159782320562625761244152384717439564378131857561464296585007750850575224263302572642809795706649550624841453039440269723686851139797310006690833334173948667381297061402270412944746334499989633479056877542509425422723256263478514419569681455204912841030728932746113164619675387456407945308678407669875046619251018788200987110275259936642678607650742437405857547437039692296170326339487124501453643970240498521580700125482666125864416025503592548705222571259990988611817344177211931556406877893306106952869893200341399779291889219915247453544746375266653380521038863800888670984067269345665105491716927155153805571265236610874180581619056308050701641154731827919101499639220839769225456336597069073442495638528829460574683317236758410711153618102491024574022947128608628222270700620271920472679906857219396752189559683756067831566661550578588693046051099909098069938625419401529021643909714193917477049741679367063807491857131357326179575607150864734360579380194585897485067727682110866616155233659941760532648875230979368387003963964256930341322765927577595572857351801982219267614267870417209557050249593996469246266631658720605693555700827240705397349734465437767808031600732221169448074139057273767210404600119660053953575476044907569745939210106488155718747067943254483489825465776757608002228379887179310313047324925796950323006643361395546965171451436466296789390361182752747916024841373298443424845422245612642761825609251326792554450876319537621641773106592379937864368473792424077944978231113314488974451042455539273163989333086865847704874218421385043735542987495444645856866314620884389072676526410663170307327394974746733407253053756131714176149784265607535519922515397121185594326401016377545859288530198165346228817943013891326044562847860251029085033485542557731946803014721607167657440128863241070233867052133769047452655645919151343571010176875980140349431932412030246155673880316134236707045051209729560224173340271371801584072409681279756661903765003136181042412994946081791136399248304270211358194629562535160866657787827718966142533931307469759349180348375539410651188765178318076510117622670870683530123458323497880900593976243206190992252428936430063655382445512981153201419600043407889370343994297399794603605904028952178571093333403549958609698927779969150180656907224074728648645286897739666672898876681746195945354381052096731716593765685466815909460943063933633456624101524994884734377021230974711726899636745165755929298880511109313658040330349091242088459860773936098440549685089804617170240265696227177089736337726408218098698478913802502039993260549450562599728892880489277013678802933382620378739663340379551785302246460132059208848488053044332152904871115126036907127371897101803648182889014717967004696555750504958412685393245100027092425528975018433000777344945225420612024638297743191793574514329800907055502105337474176519811643379253383118633221889101733351910204457763255812906954113483954949304071222097766562173058481876803416770497341163034081620688135094571084497265055947631449616906267477585183863687744882250476190838683027565299214279724661381951745276185463709765720634095921528167500702655547155790955585014719266864329452654624468285253571526805421665785668131638353677408648055344551287919095000266716645767945146645535943542169827427918351732908169848161619048705274231174406840286762269244408681363428668898674207500599957122361497825873369195522355435898920864144616131420357989317429693320182809540553480503659071866878778400588908338179779540786221723617131308718049912548710634917775734427938649879266556930863200877883223543771468853285389248112903718319293064697502996838148332612432761205934343767156254007069625913155492671598182019240861202977076538544379131776277491702376220164822082581006810329768901612765971058149737994801344428270897261869776748007516655497776307389966004122449556276129758762427379494732577263601707888848251362907185327616020607423573169756964977661672236885292318138068447714283790927448245363227633580013364622508379264526102434158906704144884806714526215681638702170116115812827158865282649898037097974492266091185361015807499942358834505850707196150011908643268486799553333065093013739600249973151929131671884171045846666070606752709235228312904715501293557752448345603282116865994588122479119324532802485954726223898108178097275927185045597784817939263607850051361708460870841293651406103812848077503219940038276080875503898341610168412982900597040910778816071197358351528531178976572444159977096912352948198584549429002020092833046671696460213408775317875153689406273217183190146490607268542844092740133533346472500917315947087191571304726061776429683930039150427710294765092867681053209664208969776269629208074984827770165835873418145765672146655493986033392671451477457203480337783967559714871118959693069208219018522862548060069395957160120328679404646141621417066859348057277428347683429326781169311652509353051972629247411684325790136784760213726194199457638412361621141560737047287999751386650334736911372964945023800126026612589170672357539092163339616483288608415858319906179292766859617370836055783979571798231240117312254675229327190484273295159081047149251625917956499304526922797127304407340133132526245917932357155108005096195947138668568821183197201866836369257512902476639270402267453371156085248938059771509780612386081015530836563551212673590300661230448226019740216208222326975834129433741330303446532302871911929483370971586105956270295666690094033990109552373068983348426132374523408924030648869242780151473614311674454203701099768570167278525072474742195105703990846203507637136628836254339947612335164195676871663299151638502626185479490254960551253656223990111508228678877150181262000760454320170324395033058975376431839677073084859837146033527997582931910245339331958289658689377681456494050159089275523680424225493849097324473810335156919485814259044379895027944820446456009690525956724700323319391702764689958593834345843205364356594445734868195689482824830132127274468352641846595548151004941737847135614727869668521711826219891164745309433463037082750961661421496624243359203022079797924062651385111876455439236936710899444760214232521851104377492159229457290023230280658921700627003924651359493256445348028251794529237684425056864188332185541937233170101588039146104448126371439933344208499015312990540491133459660929610644242104798716710297067382210331574315282340435499069873322865604808972247282244347547128963950515184132389216208183692830667425415294256115509736611909172262452549728555555723414591042076339055721859691901382003751030945294773016154213367599791163997040211793567512222196013926792331916694364819630788352642349380608036338312855051935056419299319873131003654381301753678539915948785263284317384008414526205311541312765848509735946649157681359729993745810220708904787635218359482758520972596483292604036976509942403704471762135721002434483011572928011702531547343961496214604354566522242818714056108645858226674605499701735988753520683044090275300703984818931475401385116667123409429728735699114202078287052600435654070657587234725048340809067895278710584497790794020608071831245524351509811385821378152019207548591480136832230760503493202384410496027030356507408953133800893030095496355082443229811962538868657160101216014431539957345908839661253583527229506481332836374668029848530410698444702141525682235367542723447480570185676992431842352820622293870005023825552961010388376013256407109734127134328228241972172426573442171995349193116001503716484406630509442088366354092916423053683578392417252702254773303216447389408786864186214220159332594200882086051436338057622221316501820854223374641657375530577601410295188556424565031245144048144177791257803153875629295929125704423898162517711549260459424889723145269976942569238475564084341415602884532709066990270746069822005077050812849653072308140793149094574332996238231565379559871667571617337193233953367981985888212070335528182494387611308118428409682622281851628122848664792882370766554667838340435882137117941510700396456402739319258612067034766466966433275981347637693862872235683716156643205415702824742598095503437914259467539949682676005970488423208991720340663036676328724116222609896892035646580819812137131995111129291172036168895889680445118828704743936303179614332920817168911744350616049835864956345241598938119762905421732549027626724716509031378748688727865993006596824154434515323545796248429210543029181109336581279122381402044833666498799673904945680926536707428865024089752701466149582525897282229624855917890165723654011363946014074976363421192742823221741786872404764832333718198142958917696601438027001406568504154563716462672073256131386116749235808636711795747019364120224209703912132286629828150418323632564982066529469869815915605047275049245175082616404275726200700179894760255069657204980921248498064297260318651801376408534933529141641905354666550784911583187752782050948183460365097082166279137795992449641816746951282227496733221085193437606894995528021485490444932954329830365106699274645448872311010757970378472915368600920858878686406078202878587817320070074159741285819153861821532584003139121385576385015508957862823251142552318823091406399045240304806151348839671886240618815287827268168464147344823313701701100701706188238566345174869571358482239118827373075570290498017952352961060328473429070203336947170191258038813243635736334778153320165956421065770213019643695552655458314764182914221862274080959251403120318739995477531123449733003137028396259846260821924623750151549985097477272408310327013080053126515122714145572766704866346869519332117129299178234769743139620479057366966187092143215207128443159150253313220856151662686121063455066733129404304811072527768922598302624361568538736480461934878388925523933028069357741559561174774375282548051234661186980623451842899960412017080828158825911624098952122553846813915238721226996560670220359317943351301976820485971320158747473669081906364497324811284483731118398292114810062408363301696510534285976742548462481040080209136605908811128416519469536405932207949633116166462460470606097169596537184015194023474710179018911702867824067410749745464895902234117058650041813851702762213842986753332761115553334832015160866567494047571592619195658554446904439044365757393437483862745112485872641005000297391112847630531222504047430514544903897904836894724461222106207941430183689555142865975570697340998520925674913781145489107768977366484939767329665447943627967118896682787226319975446247209607076827996093004756545422060026896001367239336912300837537175566871863559900443200051516743331918752865587510641634737297128214147423220030616557840861214806689880403458693405558495772946613815704882515882707277496127981762575240650054189552227505086125799225116529281672261845682219761761847174569536977487270037419557155532897773892555684195623419339826350727027701251914640635191872976816821039471124920367580626376481986272220295349667671896220631300181336090998186771847938208049053163930602965726670771003935219042493111944217869253699600652937863685946725056018690629911758499324149094173835076392218364823242791230328756157413386306913756598535183447830330570019883178492298577396669861977077330175594862635899770002434060396946156593390847447761028325842507013523475972132929265724605350501234022884461126699980326210033977727103784723914119816426354047568370294475101077247926473445177109970924990052258636094402513987260662631417603330127384233872027378475768780394130598538645085924884625129381612802866316745367697802630741714995430701802808303713585634719076824100811702303426374028554290498681404755947073284624434874221776694826138501250065809602486558918340948591865370982896151063448415563846309264364240923369542501755094316749359553404264870047269306300762946102594147600197516759169140249484833011585635054101323038238583924042397950361770860398048902950629584632699315349536391685386281503842832657030822172516435874520162605337337540166211200294120303956299785723169493123546123788442881515138208926749328750614258914002422819139335261097125505281783930786100944651750374593508027938218972273730857929609964045310475026501562636201317695992880904150635582379996753986588725963165609221367312667473743753652194862354304971506384791334000301013144135126892680085679187408315272986931565071525542585567103818496215049167602768736232654335320221900462129544302866520582389032538807552024329251303498316646897428560358426703932804991213185866360005932993402873954086497444780620935173001645561651725277806898027732481502885048644689570638570084583669507567712304473748852958581878649888082673882351356005519097524026637833998947792949262044227873875655409135037807640063730325008295317603999708966238007770215932807949616130673704327425715218001579101074353140740851932951997908197684966547253767668305694018099347099913159758452986401713446130924839431265950369939386519922667923820352880713234448729126792333625779626938597670993276969654650946143744490691046145247241887548094688810331949772612432328425908215941464983853657743559416105657933952262905151129116761493506396103924225384606577237426717963195301157427744459601605211391074080414999618364861412182905670884084985569385974858728128306881473870382053028326360926962235505707663968053902817658880090341057131616377920803192734940621919147579304644440634109929911561258022815800673323343452904297557153132239753499932295522051597161902703567075153940076770661447452217272298484655049868660530820336822258999437926562063581521555891314637726696187293592546958953423373906926490374778840960255200056319912270316712027396291295646184806248994015100640938061454968491373017222707286694618129658166459597735731889294284318834119084200170155875541540119517680198124683680403346408239957041886733948421319134035556267562548933590339210322649988305856397179559729240082894367804709351826594721744415801279268684057901540747941205164495642830845226266134238693157556647438060746018412200250329826558673014456824117981156986862943777992420401522591512002817769957047221950823720611186681420521278250339815202830394089418833205605038301565549375276653329037972460364917209705225120620018648981635662523495718481454611006461195265503444527122276303155041218277272462996760195720321934465006042530177015025236477033030137030608259681710210200329513853064296295146620466108451158330201989472336741995562004147940951633868832670290788318814902141198856536473947745954657466446119105564061703848790328152078943000671530905038127791554866497196141595253401520563367642448283096441561153670954468431273628176773791134392232498462655904714117775305445842341258280592631494006846562907354870079697296628836921714638271237058551531105220549659046495147692613525339184464562349828360289843652469284571213037680595392382935073724895100147704622285113258336685981404419907804724329516720421941998728877228724807263104457617938782504770206274477174391569968329984110861121614399943091335715323342780718854709550219856405989286812914083042567217724108511871079802353245393108264765788907151007866164444327252188579364852793610754868577384387064546961800541778523454632923522796246050450577097313705752588211150980961855304099260332249838248484869891844274224791098479224584065318959272602253247557083206564314925376361534390165411106702249233390757503077297987451257928584337656629485947547919042096575532349028369058797656688549694683366391161901531201903777756420793927375341448088084940024344542869339022818654196100700624226738432489905248660799020949030277477478459018011855373787465059099256631475511097260224895522037345143931291628654026576915163481367355005424466714749338337169462808992440225916194161491948989854797571124947094151509281458149039456608747765196487205188111746971782981074667807944892818417066184604900329646106206051641956297306296664206452961152112298898333160556933076306473950105178589858196241407057244693635004313324005159535078070279835023446709340949234760994194384852493565488194356391685691981729768188050633028266415911317091095126733373256408995732496180337676738034445060538956722017459150579059813971028275468593536587322912395948481935835624351178933095701436116915805674565210679598101004807436215092362665749177351698436048448086436481354155986209663444425387219783184818473136336533520430849702599869462495189168795887385291028869895854564313180079986823490940033016180902190001144559714124620827498598362254233677967440108150501411976256099103951936992345271894831553709131538853133552800482544862076599763985111769145672876300692727694805314464962724706843281432305961791561674970864681922757189428402366133499489001568873208663017659190161174592121102557079342713736025090528311139188393145161773687454779348407226064869626268729211991846153777062616103865957649897513113353540410022173946111424615323655848727050824348356130036171122795242597301987721667535609637647585139229421395815832729677446771231816587885631771203398961466805836511551057803328450470711740043441344257090332054512076373143763348912725925942137045165042769824238196553921822254900361938199467288202866244887240451938259330511735367079241129969660980286708758505366641978837143901675353611708114458536266917984741630174990617850423995580273148768752312805705362513343275825476403162925030573941213953423824170853258094215455438168366460887831777527211694242922834655293249783009630083128773153019933101998407590365680031912749066737652919586999385000741006070219366536952980983940654779675223578892486595943268759587557482777559290223771196428879301881479339551351964696325197719779487417892891047072943863498310374502456677815780901965923980979556131607141703178785537864981611140209753836293711292429505944346186415036123008141039111142318327204115705651705073519977518857779693692780093497052714779846653022789358411217252150637870995195314643866222741827928422747110662597235634206824488485933612825411866828405313479592065423020852238736444371230475645413746275613611881913147400643678505494181481059465281466920365167772054526405777842718879938740581345246215803054531435774129205231514632983291229009364488763876142127594547712883951444706055113342351409454343826254329130898672377793495959138264384297377896016966910491878795298547081788130765726593313572983675207493248993519593876770885922610905086620119246365924273563987405948462661686480025856063785582132740796533511900815997265787273334949517964635454214175386531141971924141489192255002228927530190507581537264733171864656196749610438033214685106035162172818085043647994529225011698845648051615207985080452853982061652362683133405327806319174722964465407493221830726359374571318306307673048497693070136702091294084602999131141617621006097139890260702671597071845619384692200500232019865727182673212304774420306655634296573987325774057896864357194604007250086311188188652776501989032744864897814772211210612558298999507818521454634412702379943241579100459773169568533293822723522385820839418009216285692676512520088417419096160651874649023168333276272963562029379359050542548435171583035406848317027940764612930680868647971597290203333850184247592512693901225393561450174925795537840440458319115629564981335038517659477884245189687421677622072464786408411311962240902551768679754331688711961156631561027497382647209478925424362541157975671686340034819275727315883202495271874615078252741175745240311250771361794218669831449172913276207872845018321002992134665526929643595601457309583369231269398139911689056811596013936118660153414540825568484181170111588843901578512762910573585228427335266086638945630187824754359148979890761724061663564383691049441447812838731082004842996726964759357954081572166210210959082984876121839909739545649427551165811639070957995466563230845648313788142561659460283900268875517568102080611970528878053797158554377898971130551676364537178544522523095070021912072371543138710467334676459231616520779975479620767504787409792197106312729244710042116338380908073154336692615833774334399536149323851834643376583406941040664261223518665990613531439435822094508103677193444464970472435514280465376737923698153964102573459273579026457581237736317757695734210897009822579004335526418062632717000219264006604321064234119829133835888706490705511405275675187050321849815505886436174091418039902384037619993349584426788719428120221476378480889840565485008627023994974765002363084114895841488232007831214356810864889935551963548265940527227778120343913627078708015888446979280648012425319966192185236478810870639899321801615828777180959030994573129863807360499793605325504397160669895065987707256977642801982365519410497016018650130057303897802996515515811413222399706840464288336995458910054190037806579539336834100509140112280167766237838742645595352317787901267413843829170572394291060448156821741570684315566152633762864219847587599305872799057035315906123405712145298046845207357585467414902257482424605699860056474124653389486211003282811553712370474365045102769985546271639210564134020997291494841977546216819835420468124690229602140704743459709563785420441850214885554669167309811357851656121299169589074444842615422708295655545954880428279736974668197090783542826197763227834636618077203528315761807616062304006098537740447153335828013950231328886178242017293690346908435289612799608731294335940478391921633677059620286454794558205052382807455108531891203552636228550087574317114663876711130586121684173519164177045745472776114511306103886754604375607093911559853339892102705450862393266695860612002332039979570158478417004315495791884453005226402283261539489873308658174033441628893671488528160576617772945812989199628335522153300806417840602525388946022788694773105078243145610648061630911930017320200613849841360351776669739655856733989105421179245919147588911393898623059811680961833052655882620040443451219241332066322328153174191982509018877356634759052405198124340646947333276463141018069580280964310126946904421105387336897947970994681098981558758411297666980086154327045283615311325584670961656052744911627451720383552401434616915310082498160084594646523359855672423188689376709977958692682235164159782512702236778025759450708541591805482405884239070125086936149254955402618932059904290179013318967994539872424214352528841170303427478640087068240408127724788940961931629524495604742156444561857104544496037632596701088251689309407064857024666491960940940690273660400905276949986452230243980335443039382377047475718837724287973965098692710357582509254860626675392181308823253505916094117240827369350445715865791511356736613654196803095041264669243832020598236774765844984646593856128498957113460405280651886359416119034740040779247186547593563269797572960357513367910962105591056174594071180510056990106192059588643911923189058033891312404642710362454199351240299061646164411113475764085988853494303793439873006927550857464510749694845906125740968386361040709546139578792482107802726682842389302708050703043950617585469162794748773710419053670366994988382655222106740645115458078574229719847867713066286884387088038974329941489629887289862595467524864418977833760787882602752955147361269799309072808448669731023679968046606599097441015314531894808447457600803371787584690430443776686382395164481022062869538739269934063561512289426986569785577927790765219513557294933025663064408751703579780340533139477215978720811519200056205612920780702966839214509687001434207466794878919450315768917383106905068933754337687925218010435567550644577521496439908840472206283169944599797615745777882500967325613956106818354368654019614797780285745624068125584928929891030608658879004972740454867355643739396183436319211208049500690067851756090308015314285455938213146248623653226287638275783687182603713656757723795591772135331690475032988877110309244178551926774542780044845983771699349323188989098280976053757798927472422770013001741158401129640921277948375584565715139383874936939193949413766649406753578644336456821701385619727617445560933073543533728133876397067564553282725396018024676304789923769034392845722106373331383281462862003941245324040321836653942320272495553799069094103444723658026455500336877397859779823502469906147007385659846867826444564071363910972005190667222088340188487652645712562569323396311045901874875189219867194071119588069591723454336825271194851175717784639271348656256343529663774518592197949474749333333495481067823654323039361858414455799222377423571429203433903834131588919059170188164086081774123738174238040322838276882721398313882418396999678200092724568247870564922479563407881293053115936526307293188157970700657473036286553395885960638319702087574271074716939057491471492412530849977167518987927435377556033507811780617360861330420590892294364493581952965788158922021717584568413860573183811426911173733304626124570347762448039933073053708877867693649318612921276813200048977428199259424761715375868590778796441425664822010200622078937814845621694722613253171826820038834553974967768842731673951271931548732701087483913983023026785540805613044675493985724238798640109624444973899459599495498034184262824824744354479483117377628977898238757670455416462176545279950375922442612464950772556360830026487915486338660154964420917486616541923464072575519128733341639992257422867752410210531631803788025103208609107721141365856195936341998562825081359233021628285060723753792712670702061786516851259246493755829561029718111911717202695597998463496240135048551618056422029077586270798452972702770398847209415537630390402497918905346627627311509259085615111577085707076534530042165434598142928831639524975616873262380399673961673557908465905200873434978554149033034648522233524137397964240642575925459099440557249192159897505956184728859730760736356482137151023206032188674183745929788717503417552006773645762795100689063701787803069569650448667467216174925040521576586064950829074784981976726033185131620675702554476822043102134668915561503061195427183679629218226779372179405440313881177445920891052273041753628232117321992425115987247141160236747203219796485200067998434793109096573787989965609440266280127302560355959199485619339009114887392481294527193613939092654761050234136635810284879614956320068716105923903510716250488405556066342479790312377987991896851661235750404905957960783379560143862254930036105323057546587923073454252018862132903578861127461341608681362986575544130000158982732892021696704189699032596713525161195350650714422062133738168269860380019735006384311948348576885729737968160831093938255444584846948588517115002604215131667984325187592023363776462883414695040031087368365008036081151080120345246027349275525574134733299128753060866874408090724302412044988108301514000351880784981920047064394784618542808311996351099471101128558195873023122783049042612350946395135333018420297672244255793717247495247920844412993475708199311194778330641605672284816481787001681049854427485390717506663476308479265114874274184115092780368375208356994394666083024078623683427846887929423275175618207861587796811137619350683471493737338503543204878873682665249977463437273241721821672731544137576052221875663821991764824890420546572758838925969548164845040349561489328775325352003616460000217292430547912282090446577316448230240719999436353927106612688289789990156766468471493161930070193423051901380750951031839619546979918332979539446176788815609291873453621141172538021642982197779550197874785606902213642261153056663870918258619869243222557733243725412060877661972538636286536502322575001230962288404659895708595238100033502090220643920534283181997107639750628404202380580335295984338479578878838526998391580859354662279819944308991895708849995571003422475116244539768696381649692341512913333392757587786796453184859473327405065008254238410352218575621752283145335512738984237814502655779881296798155437333974996955341905286508434492430361619999439205682702519354524068090547909437559231656394653166658424114490713766827690881243914010123681630096242776988305545671210511867354796306765187857023348714028717360588536027838730831372669519209664635692541079949673438604725601130697599641882848519822819605085381223143449545384473056339464665110004650596327096273783093232507874161528719319035379551993841409855371985307552287889924180221546494665897659504745900996759746773246032021426484972893290223107067228146119679554535829442330809294376794682724263573127160767271422692745818821625038007431518150887320408626611964054754281172003247240424462253320157298608280399881181252468837964645355523093550957389205394405193572521355758724321781572522317495467775305416699536593673913287421041014136878819489647500572854816709225935733561227344057614295474005373216659500626554142857953381976211820793468905225000680364760177089976467918815162327421718637895236657039453082604958689597729307215634350232104266156986642213537593172931867097373095728309064260480209475987213008363773630298360659538515155693541624028943057593789546753745534764941013568886839615570511673215960142749591943293304957045909563296312671280982195630554214432321815780130386207174115908066145677707784946253116305278132437874217878792418232842158783403279987877676188115983470799013919905974786003679534048892290646840370472678396408337036006500479164182668815103309323822564799082647857389686324326865825756232847383874165318481286895145401506275503341641894857989628126495403582728985400539180425718511780924008225141046400071462524089481962284948385272605224630269271255938078583615992035329543903557797329025639001704397332248973657740743270313294538576077341779745366631929200168641551917343747859171453927917157465236514864805064119745074867789512551017259467827358823465532532701511169823019616618019371637988326390492316596571228466267029830404589282502314435744846427304103969593068494931781023612636410223146514421372923860021985343102754301020451793289137515695971959780729847466508804311991797173840534020103238523025197988668366327074137792496420464098504684949993712888784509319793204386859301997399797724765536494145984539457557591897039140158697254914534503809889102791690117768660204539133404308360250078567087293934813869926086297565216809649512441830331548903164658942301085176444462109457433892757461477892512900993655798657366715222882945648952404330892928716821118144794259222662296670337636024850860195573414916878953272777787484709439103922155300000591560613050110192168900773936340084247510476190832630831435094262601951828775892242809714876581599785261839067183538771675694100632796300997168248437587350771228120969980789078271443763399324468949603275642635685712835073110973046608570839349056302955772925000084413174959901044050861072086426650764591125671022206414310854793577149406433933314633207438018687160253587437518239725899924767126742921079858776924203675951328169020352954539648528439482751988637927347738169543096136583045912985827149409141667659773576505088560706306814025592816429732076043422166371958344990999418966561302241757267142981980300045668053146950633375065357166632441372881279001306956770012905090903067218725613930297337104017089869779829629358422629378811724120919265809631374163660618335512861860241424950155823837267243958944328929708240021445957440450706237480225192287760265812307970583274826197816290301781867399073452344872443338127868468798856723447592014651789412155525117390594991656188477203795996849705137366358914241216865838484874654619230878177253714332137873934347359522190829901131623677611832616065062975323580758603745215735429230928421545734358816790821101834669496367179463450345265528274114829572251506888450517193226377724865877861596152471986388999778312938243610649592731073286877224449956441496770852276622969419085563533243557109120795353667685815447511652383423770672008175766851332610684757081966535808876423427881118409112288046935403687227583145675785622195973769710918952098044055376744662902578703228906927925459127537554995842608276211469666988674404776714385000589918986850373587411207527256247808956221242543378763789260833989158436586500701801235876906914051889751495395991588603646806061215383683452269905620965496313604599369747907187739886115404702545635506416532211462518332278553016219499114644273739056503163635744180084213726510509298265039589109123900607815991107236456898422576830419968014914536943004032685296138684570875587942598711135363281629162495474341608228197596610603983550167962923668290707403541761268709308290419626069465087537789118177163516138776621884113822573869949339506682831075467390279856900290909775838020890495033476855870538930004672462657836284738220977950149522119723757425623271376511047337170434181631358625128058625906839831674299872563553073868957747128927582355810659942636383253955597801132210917111266107286544382862470198094538897973238452969268448669491531421694796483023774604802226858875580069485256895100427594541468475383154857228537118322528281244543527543461930892524484235436371828505386481801479432108992586709202349541309805243165523165731728361986013699566639505443752417743688782455069130671550391134979794738317986677385013748994391690833985370729499199106806991712291053920456488886023059728036778458111273242989674817082449554270475371906318288830138396722352774138267069450558142233753771362933869331285733341843108525938052607535058284392963658973804887434761184187838057639003095842165280797828712347906834901366835248434665461151568849728333271006051543976253498308430146682241697700037648443820680039330341709370344837576612159870429555667042283143890782685911430299892611675899850549251598528387353989558594020524109301138523438732618513758671186094489805074318341493743034290775618696025462728790064355072143560097093906361991106574335256501036778174705438650484378313679610411832584273970670561305314343149557294846441867821076011455936088526693599428093608621931459013425580927496585557939804371958104760906919142660512286921034587084273378481861992721836326241188719793585664041565239893699560380744657374896890252246497829849287819602720279081088649848284768614797911315096535596103975417612961905787386054026871178338450857509804288982283760756750893648484842244146060266323611870098935870299418714298987539120143457074639962462195472011771639794637173005772361688019346771219167661503200475927467697406659089700961517119429323667616653043567898449527720129094122112006483649073407323370459800839145449677488954559498444876608718271428812303529931740759659738577028650262888267856151877233934841363027281124130847235197657637614332969127499556452346327385200004876185196031851133073024160571471832098703054690669065624747374143649496607072104554242735097677389595669855215072644228698433560824151351452590091719732028112841539135008475511013328155535430869100110724818686970375360711021410563205787877144635438595847363762199332949548104645467058285206095718266025119126293938358350998403710231723104581069507309821360779193973404279742621196722765984822157172859186350579363434815241300522638599504281138690637095530022906803161517409826165546004344658135915926070602212728483861031086202421513039117694952113096245129917827742579523473140113384022913795132584960995184799852951187608616921677538094625313727109147742249499548656358931669086359295624658227652491855309892295279857805183874368912729547223577017180438590343815032575696598673790363659781212811305776512519025979047946018696536453414644204125118197217000983182749045043822381739082137231325281607324412610802722089655749613176660454443884620423354330482975641105707389570989285238682584911075005470114256803390087971568107352892223364075266030855638667213444058223283114894429036751749582109339923145915153081312537527610071114295554196699273607394295274526513115499251703640982623338290569077507971608262648838391596066161513226896926142490237638585302054837683040576205641126332679746623384645831453757243213614258921441654745693652006871749006417582967558325650128569966288213432687030526935733074602395298766442644085886561933057937663040353763838063911417400200882276632679960523588865650360420067230074399842908410338381121944971603117128565175507633856467793873504614357170402167702921572929023777667513736094072244931761785855150118255038123051598345376720491475196672130767803459015427228667553991036871549259109841558670509450468567715351816627439826394176006585515969471712497215503530045858081900934499152994556014943500098771741632923187407919027324463305586390748371269167539826836463216490948769592958940431373965643994039973653631779725776066889636840595208062979623098372850770829254888592084856501713706373617385265465837628339046640766114166503445168962936737159938762655529353189874346136538303334299215141065557471325287678288729427950645688693761663443303726623086161498190843706642624179713157359691294443128275088099173478104424944463445564571913072449074568151249800852008972134172754377089606884661670912040404407766808298868235101254850497466006483204765528918786146470574699500289529657095549713886969433655038455259196025583249169488148505819103746369579223292282507639222207639022556680811670334766463054452856865501625583405585932442660015420502288541688143851851161089934622929201094250793403106768746796095974257623460159926886463996951402063264447897406543744361433409069748037270256781116803534580327992303793872700206174188992110444984925159006217651057109588472468663395329712014156464296749233642757935184976009365625243396361865624168088895352649537982077317395611415014647355147458073877817722885372325421876413363667964337902642685280018970191000570063932052608815506392197469631850469427492973108227570890703337844818832007721151183912437801639290128902155676703986304332586717713503960671768121915030099371247655037922871075779318682999933882658864169472787481766202436137048807521718461549019304263400780530967043300251348442702001658909977282650013275203730473257114579919997338898016894389145651581064145830938146545955818046942790483306944709755375174808092158840476247758100564440613959420763446869785043626463883447162612152199103039467187162359169996947878015840330456440897340656920346805019820088103097463222349859770800827048201807679305579271479462955482995488271499723936421223744268375481777598537158247129695508488014342575674478333518030195007165329616708951556604921965953273763695300552056976066535523004949339682612477716726543711272277590466589891054779421793685928332193347727536557899293417787457643804161008640973659739171434630618968833673442888938043605203670148314612258345891871131687576943195278731101233327596944939035273956185394234193252512657794985330589818320808660416808577030333465427943928913016750620412661750833768034467699487894689688670117458330635408025518943444876215658514207489593078716165157059845371852784558677639372459033488196303903070126524735264099970234078852309184695462379381033738534748656004597526636366570203879309200468534561204874190231670428321207686104570769907222077792813954719133187047775723538010485785632445555356726077877812048379435421052784251639371799838761763775462880995456194527992585541099223503569738030964424737975633596384273359277850418892431317195137363717646884144168577048733469187420224166775143839562190626045683338515464376755604013035168526231407857177190967572651733317589412005242042842056107949304859968442196034754692621782336124382590761928002813026474163831346003446928397932197961254864918883025662822767082706092532452445239485280576508370195621552258661521038484961259023778845998034180302997963570109692518680446600214056614055744376565933700097857356162059826866982397002756840387171349990111538430616571095334061809443820316020689335902097609777312204662133026313073275636109454016396883164395707930101740359461678108811158157860158289574879396618345062917380040644364224441802532680685708001927816906318158119579916637989451718649986960455482785720973778831540067843361850073053598209247875721452448890207730846967584201512820652202767585425305887059564196322748664680190348291910556722793885397078076513104420700011167638944608342079317151993973812964285333561953470419369805778894211427210709558598835460694790863754161134913045160684756211709114049404787541560322626477596825204574722816921817446769302978788507278664977816843175769158821914773036406625202971868404987759378108925256699679141630215515139210183592528779958890720786867873788816114785445961038157060374097937772393686478890977933694604003379708701480527289319279188271394563609119085152826453897396164144579832852573776436960895368148937876491834756635410492697184100253572130916038304357829229217766998512953359778457051715479065402310344866917845253379044631656606088040161835836724100979959245564136539646363737185204427241499155886259504403453592508950752444396600436662855301042770758564666538758165987257002705074201940594262860521996114118414214345415949843277285428533037790925772424645376152311973615044812198007047271796492917282594785248294333685897532399428337622898215854704240791760102251488142172591860538961198559812029705969199817091710546359709788833705064947026192071083540219412161002401468317976833367088741187951905682796239229322258534706814707210084842611999184379645720902313021799144388344333366205980462887324970691433910421132557239107025110113990356775095539257946782379982337297473920356146157218632457733296627596088501556983287287053400419067993074830834244939220884405314315155033887005617146089088132285847167239343048667436928480611894429743268810398251125880859317146773857456839428336868657251859450407593150337495402200353890653663500939362540068095959052457852019283694972579463123441011687334498068124137693289990970751357175286696226270960959732959078113349078865718420554771495120045984589173579675891386323400302656688854999793031184917249591022678033056935459922444068046544406602531142895162173821978944497941665763548814377736577456001031413648010845184029754693351867154095146312896762280418250028444383441474342099070359919428023572119700731355490707150402331012217275310441902601635506185941210016345587078817961917776026482887945249867622410737195940241365488702725281810510030614221625921569036602116728095412356575131418889307366916682782248296177915302836438714822075001634522047693568655611055469097898783506299885613906298318646974036604649559306086321761168187573219611502628882062870757859270726578537345338324680001179238010034076021753777027451243299757658598122900127687739054776722315000928111584970884485367913824122443536132561070083543856362692927403727790504367613849503247753245457862826927293857066408793911007531744251896719183681011391140177303726107365258417942672978928901590680208411882186098283487950341581387172235981654846738389323681556072303526094445395955319027063963371272931003637850611180957084398501604850683255659427182662308343232987522262798857519237798312245256817238639176840370500527071994847215614842439550974864244334979428850173875093187509448978451996274247275504108567317326146888293114082774723945522981139443885233358683908084346045533681493913952986702526147427482288211950231780817225625994904355272807629979467023469179576134151784584274947841989405457709239044879730304515897093542863644930405994863172112499262576178704680142250519593780211052466893581054057118333575537793700067821784468395074524475041909524525192553115507067797892177415563489222002179420241248882448266023876833826070691017430556777214918979295817184778422237992985895598278543504088331833873310378989923472016015448438321435416680672632618990649062988148346346392455620893681313847063736990374611667565259958748781276470577017755749737675847484082773345556950705775524467185569061947225121937123874743336591441900033535915579648706150410339819287931639181354979084402125201749232582499558237915754914708921835332749174763088045224299110611195318295422341179824399525881203455651003711428537689496886886802432194301387302545845984925356293265351233836631775727235456250224189657647274049944610359668237616200481048688921998886645976598968801255242101081911047252152930305549554680952330930869783911819730637725207140994652792495220601796945242017139312501978445510089664502373113711960178752681805085121740612920906674255070957625245024493142233999380226645199360604222618883786809070599514308463216510110821531638011973770121940069782066919089034150485911351417339773071952878512312244565054696079328364185487723283381207807171298083688959014612731319771269195661545412607749746406954565257834998879231413353050309915005578535580083219911943013366245852767393623341395423311021662834437301149110846882570601202845665613777181366212053749504956050772157515494692226587385439750240102403831183400754470768546564943305016999831439991475503806721731426683854862668385674552765005222192465957252230103940951370342200909727674048048832970561805620778808840660192236642067760512411228511838946224263768106307514272201563773063714940369042145477689661869317583497341504970575322672569327669179660936441199995561691130113396188612040212569024194224862975044759096480054697516238496926024491955425546669375752570254732394376749169683227321615030722523028829481408961689391889808697914394053603140814215842963418986577048150660826043897968014701494675878276166045275267422016116521897265061227516454296234720893176041356073745649033650449574525383093321815358809054656297105271884531400899830688091084033413810951502197701696301016427734350401733977569085518525859333555361128547703730528552110756706727157530454409890026997270997379098403473048579665062229872906572226901576017061188094118361595397487178064106450130700959019719227838555901093766194721509833039657839871964954545854611372714837035125173108087003577228202238463727614292283676676059414432246602887086345114723287008240173630518498546479511917324749081275437060143977137860656139854490447392784849336606621591774959943810915796974796405378470599037589828233980976199168429788172301457045628428575250570575070763815258276021493152388429721026828782425106998607828327429657464755936077763927851215044510033656576534721903318767240754541946208896153303266298170426151951027135141457592369713263356786239862361468936748923953250500998528100050183575531589430338172455597105245258339808415844573886647820710744267532157523414309105588552456262960426974010109078409358116985625439247317840190628031316852167081550416061970110048257373240731609939943288783882917598896134530809801026688952833852734901894704570801597527684744031451544340576773044017217114828103841219947102302712785358811299601680973585317638997273191060044830507883837898504321410871866387093372372265540654931243257607126566071132281846148986871167157500374577673314276904342633181052557603927663648296710705557177079470396157959091837477793700327453935073092079388926179708550642200266510484161040047837299267689823023172985112461208895936194738652274801158430515782179395922495816229411352067776261631381117934931382777311677891095059123910115898861270165231523615603027404664390689316816309901247126725605041990636573144824502463291783901843227787420773360480694161983405672646182237956646912895072360644135825692427233489980966286855126225279184426041435723978922847824487529234819455138246707057946517470232697676658041045592287154698016277176204757379454793941785297676247365755525610736606774031880114178492013391691709969554434594490051515431227169850968829206420788254267425111136119854225684031109305255408364525571436162211360557461408905631518866938394470708572921712141727112968821956053612063455919860777925409731728394077833119630423235646586669452055412535566445900434591332175114483373421820409555753441264177925592089585662215213681505799696664555084373721725584060226397071523382152805104896565412119645347523209760294441473496841664758371300410350794214240609667291159537661622760780116872015238010992385297807826256513105446789315048142753352801407052226478467105835340296452199211658766825058348460127107056371810240728565266547273267021998506715502209970481072549011035976403934479018679436747490107277767505906479954601870161876053113141501124883496583656817612057830367500052104245051760408300980507383805364285500686092861561633640038738946984299338949731503185542241685627073458918518192098023628952086780915522259288097573727518938172535017242132295501615026551745670195765375640037050667456042250352806796326400787912333930232259680147339480384765870248798697752413792768195648342493831224756934769337836363863811347063998259995475798739294925758611508784709069972508096964282090508265939347958051678078742160795316310743796130562741989480746783115562047043491100724761580553196618789622624865423390064696404919575137659298723943570409983020120325373953026524990353634525655746871858824659954487978880881643128181275253953807784166716719315746246898500512007568486641684247253458820676925556006631475537250951490721519326860569910893727024836414276202491019302431076125703485511909789176661908292130651644412969081905964161662887779899958227072149168839117709998487455641566312211361235669106302846149185431690403874048495683476442164610208970826071285149968809924300893244580408372519102683193739448903436690495393980576250593737114618742808634071762919173768169000706341709548609634723922509655918178325348946909491437625084359118045813267893549655684026277099079043993655200497651979977880449839068575249749604378272923239906747330420987652517312281567032550079698254294256058044316658360710232506471625884914500161610923069886701430089411152934343636496351721854688437174069883221681726627405780604489326334005030303040452739237528762539909896546154253658832565194939383177861461300923813935455930434136342990278389166052232536438918067611750110767758355376570757269587520056309932413671813734991581193918508476702370200223773506870915106421898343265025146632524922122678235443720266530921611861608618400899402427529423367410057168846901485364476939998628004454205406485321132053947835357390643164862111908873880475355679368178674321312746567088754166252846141903624200039170600745046651990307641404753536870613213328631135622590813453631393606713531665919184204249923599586802941518498910935833098989194040059267609948245361848250951890626809225373902097785159238569630556041628723848475240706206367874314973981668780049569044019387518661545406669736706189468007321641925552400211096897394754174801979154031481059883457559782734522141348621122834420595105160178350526084821095337727305024267167314722809126487108931453275166229952213534356163426196144864156901731887463578017404804836745516871540445719724629533569629565537119642918228104046200826736233320651408422663625361222572133391378343437013473778863204455438746774854621520688622812392404050252225109726167858899802823490522710467106697103703794868448073243007670255577908441291350727332815505038677272545614360627248161100146631511072873869562637818673178942037166790877454853377172140281448061582945729793639300855309259097728325210473243400585772986281785358017401180818095448680065728853650822337176866894322962746968164922987063115146618839241700159849983189481826633420470197747124802444283809598913803929867666172114317567604449403228791730559691868578289574637921926976960774167904978586842433555207734110495938010394213602376224332550703804585470410395710789979140871932379080262305260709780193802371049902619113101550316863495814035080077405286606352482488160675510603934205251963428143174401686011000507670679744218204044168062862910049564107333172397424183595335903576034202770995442010969406964551554885853400229670406298962952095825648991781519426818760813891656678548878740570555420075356713846315280480849320694155872001442282181285323134805460081327514446961450125113763380029062329569918255755579055727170662505783150447126797099422414036597275844331222737244481144378729581524176583246970417256051138175763861234227828244383793580946813016181357142110087417509285242573570237997073840045836080905937293386026335906777303448682287327877647459294289471929013155173256030100686906176460076462978062407616806593970672736271144971316302976378654068397512985683311414118515344791111853675708695613313012600059917701056546049690288485642546738576750119919641839878771245801916494785958050149561934983291186271634723303103683003355371098240964695761787067871471236492480371321875439655030694084350544453899199170969345357514377730519289176840890237205516319510873334053567165064848730071909360004269147996140853988746978144458662071738697920849513556340813352886300286745381125450325507323565187748950898152064572696558504721193806326457716078799459726125608957319846465260045736744606708889279855442138832294888094317452394569225277945954302775373560495234278934280800372019945242775984340256564971251657941213753444685351929914186097506781064632578628679359952018068668716468085673854144740272299294827253656327215235051224052183751284914166547371049679672832951699550542194641445317017777733030160910004871749588816807765250291129817654145854628634862111123269669928444730678389932193853366753209548120427767623937506454023637551668037912435794472516666085524261588293868266022324511382600337940131788801576906779315768514590533819274832216362284689183720116761355455966164808258977163915900379406560466036220311570248176070040961851170808265029344403634579000857497511639083167394911682623113706567553904197640636564633953443219777751783799391944549763156414072076972879804008218707406588222852621624762236189445244683781879459461923201846356515516622000930866221594058742816893830908131142010785155979860237397098369323778241743216476391686260119895134811751125486835780516409227338348704875600119201747669689237943172776397752990857563186432200734447705756770399208570298442824153219481352159856216164344937384887842786514627724944493223041045229324721375745910385093170107566696312897784695540340520395317487185065430464469413888726753440853704577980688016139511845247140425830347255262036775359252831092925593601542367413245696094313485409005209936018277412166685698612391000570834518495484715159925294938055817541180411360821247768372986708075588461155364227057341655302183817813873017606021293267533818023770181367668909110284668614121700568230542571569004196461971559686121641515736417510501911696432947703877785699144883261475564548753582812168896100205609093754907694551038774255323278175372257535298132951133238780027061814935164426486087116849471049287474820401598098994024314071148278178090667345447346397910639505824545188531092487047119476597650144954776485545537287274501921707018117404990060535660284460766164816161986483206408367740210526971717442577574871995597894122860252943777631604976419091090951561578858109954298339693805322910812160760707696373194673808964511422899955308962919631184120562180197602888281338127530645414160290127603578434946745145845719933374982479260834423038597022058046006474321750847025784203564243549126430013948566390203967489127278267699125804519422533037463144048161858013623522333006603193971856637495736095794304176015515791371603950005262221415336346995638220239033070911045672054721301477569039270589272620709464777913291315388647793826979445121391352095700021269131739976371772482185114826222332749213725769843896724921768391485184430660459150568613116651025586197129359239757693535061524645304051171306892440346369285916077505302963747954628833469820879468784478999121509605145462024979346166863681765497152210216352757879195276939882024046002187077161206865572525161593192770748273546666227829018729199499185300147821646740017584195216245785175647483536683384660003775783927545461534053381378109870428622109367140485646266626929383234746113709261776285787953117425816822782428843858502232996006792800514249917806791673428376674418905481309101620609624381919919375478551393839178537068851497441855145661606318675318026989849938105278124923509189467490935703314445930614577316568433971119571418442818462261306729979870237209199385970942038352387828811836399144721307078733259752820751540719780133545619421441284700716302495777928404257344887349522052556696844102784307352965820858571143577595483306846212976641506247034796695568511833580967953500522138123310733073671836874307051683472836614225204265468246448169304085998795531365333177236521382792538738177334973251091296706509950347580152917666428100701384524159713063571068403716840412670560599294589597643960523930667392753385328608961609719829489204563157508195233460650888707149838823434752034182956758000678425908818414969879299153580248771504888099920608427972394557898333909924379875610926043706224334706707206485299087637473235213305759277229585696139263115575340519605583829081331691041555257214835381969608155145468786842845778450149319059930939357479216342892132063789002019109433129433937934771960309240286599636530421163681029752397889667779777970745595154870148591093900654920360765015581962875359038319559162932570774692381401212437553897824666005442253194178465578071433137855584248613308384464005787726230894277257413715059388492665845085432979092812565938847925429923695504283675627084153907733500270568568294404609764331247291870965943200278381701547059772048949564983225836278025203265850503155684622493743640915533501853793309684774941709041479593995117964669986443713186718109596536491088736096373728251970603789005622920102029648409926231184112526789649608546163462721539718905906613332220372174903301369027553182642749877638046110196933104692816901600572582911140156053850616594265235359288072515224404876469704173051394085346497107577454494246914032564261768071213661923410960042591561743324341564215314594727231947018874980248589505391733570907909639714282462427780558752250482619838176423922505430333659489903465448138411744980127236008130561132214376714734569217701645996946699163343744662977977987835327454864738901938574804622347822603227689441507842508009681272381953246024980056775841986476121136189310023585168637090625152457014171617967162704263164091490326649076528996748819559568463031952095936186272104810125973826433916678634799182085619717737202452770998094130576651262379043803192320746080876199894610232363413097469618155446335722280263576526319287939510745130298639794733009569369123288472815984872394767666405504024285934310784401068014586137745254380646813912923609318976646205844077266324286227690105529011581978342758520567238025306755633554684717258122102771159689718857989314990588609974616470975755258621712252219711871582101432333652641138619289746201236904726511063106710287922801738928262436089289370138559254467633304362584948775505568982014879977404312020007033334992046623022644605080686530202435510176546367451569807000340457591219332243433390040099211248865699710448630799802880653277455161131851393340450560795055427280120115512608232021793701052280060251482579060487405901095015747968417446250718414658891603387187815427772541881065614823376593081089680880986169717751782734555532666838589952790772169921882190167423740458582538952588757317186176797607077296034543506817957338176874299290312741930371572192381552215597234435092785150369676221130443319391689585960244362823595815191398137892648881535271148176424635500293336022071128984169368701151109458452060414693897243760814405398353563489102213636833196085232847893100808991255515056819135281393781704637865814493045928230005640274004935888614847095733309142539042406244287139707458254552268688368382798844373358770798663569226891424286260378657791112303289523667487992855040584488005698519158620835201094363667705348474267434618166054159160008298958058893759344770366225850610674590454419558913358907485870192094842428645070422877663362194931535459081712529675751458407335092998564410614676466752645851048075117249741737462386754825010095206228112498620259560358370896548824166214183391162311166717540739718481759947888685917605425414837727406119514918894497106676609744711546671329702065819306659558352287392160421023799042115516288814040806790837473607427288788743359169344978596269478051067492002621562188973195110716521481866268655198346687744888033386553961739713270372017329880983132276673410790769062221570266669340747568621474657794942495495668757531978120282027992939558872786329704019801513646508606292527973934953927207286523207286780069544183425731745569928184442185189936097183570517197888778562780704326195407639016967854156089721933070654057802195643425772271944161402502886640495663691100913393077573246374756992611755176159367020913666426020189505421272765720284715603488267023490873091143138809718905605064926560004171431767124781667892616202729343807605180012784919532593679242847726277155877117010591032616203985151699513926763372627988515390063192748661955981515810960083683858933791593777947263201520950777505215663398421656049993651733554981132355452270869586742739162170209371494226709108433611675909604555211743805160976671466555389577306761243483363008992579407526678369071175678824788731118606314652031999127083678024116623874504730155655867825716154072245040688710872037540578140252471695325963505299852361382589300031947849808178697597394442101549355058066353302170471856841015769119035556117892255484958980219395762754199800282858548186249804530566535553485138351251411047887791500634993343477438135189003633205539749058955154483851740886668581174420342644656038455577638849711583225425952116172766359798556571065362946955562599103555120566805600739908070464694243721096510756394098015057445641546443742646658822170101367047398111665247374574351631393217075933338844924921347423331553204505249193440429397235702655694384270893851100624112729163765891994051440437476250445402333443861515842628184511524016885690368403160803643948929970223631999236120691809657323769070667430924074833078600722294594060465526929671261078874101372400604081542608988150876707886986214767921177456816625946110901042939723682289277815354936893917928203954796345211793773834499349323881949215249119776520088397168117155745045480463235433800827275538003731203579005184085214311244979864324301102979215160380063924201701803481800927675453495608140115148025111211608247204174122246333519092406380433519880294036056398616620209739646121036164425232543802117796088636415787010199138559526439731417564733842466746446166291969121546518971508146394399384248584735345797910152921577606742687164283984944327617374027237590964401307545218961624214037516391792976787588758124945569190408234174975842202161720085154696966052493523294670529429063653020764516585201482294459612716909491981699134213691787466664652555129072725820416796967901724515692009288844275055248536499585239032480716486118770410460268185908449860974350422035688981375659255641398598531427178800840735692207493500930631488184591081813596117147678641909016704967918933953486875697210345548975972781168549004590289027707072985976491320292387726176266194100591115636269799074080763200937514826098032787728615013105963225626168467696739639089784736040505722960658236574811209746645786960417093535558075842095017760560342431970006615743240474156897426150938381254245714612658940601173995773616100761655277141790947158133896358013064133431695533599704714687061308820211854365039458075507787360744093000307302230421273748339352981700382090295639754363189256588048585083555784097350810216381935523743865082602585736139585536197253543619442711976997313295636103074192360977702971028090195331493506138107139743650248409703547695696060824742069771859454823017997766396521000289560184952128149524774853978846223841381494888708139203757141288627364261946252446076237186263836644549497001315891387257450703096148650653255507398895081287464503945815289837992384634925551719256866042364504744951075685763407635339539642895643005816755089483755342296461975828240658676648718150854837145468596131184094839459965458341442664708703554371327932241923127598556079938563666938837241179120973864220249675321204431629706197365090989140729068505970102195119621887576612324364234855146205718824100573315926128534507639339295631946180769804312599500987064663255352113329244481209411096131716999951724815434575309098783965489957407165685941819982049458058272972643572035090161617703148640602614866683149000797426192598446959047530293919587606522050845380762520156009082658116368591017027276212781051207789330029420923686836046787889262655066554513620103710400604526148253811128102187280299434985259091142043346573150331844007776110652640920278101860451945048516615077085551168099850897134021424190994318962258023437464618097355191707962066089713361874010583217427480550729132032696729228210940536279465376597135692736621330182408874153484121128531690573738204757040443595417274260086450473753366392509573078176916737955698766509323838756446032851463847720021502448369430960678324464908754687564494568278401354529449952605837434459603106284859636925068688825139622050603077371712339836909011554494030616933087796582889049091654094029106696790196730223969699648147338401410707026539912069363942145802069643786231285138954247458893353526192397034410700838325449569158300270945665888688277179522756296048583605682453433863393846677045367506944663409181624995133337697739530927508157480883664726939537959070144107471671090447714760809277178801284033236038178042588082020007847246229253057147449999913778054675063467276328051758432326098369106339063667074955522152970234591418977507613591091956039215579710259434718402724822474849080319540781696370052281384716879379825790325848983760848879538937731494940090663805890994147644204424476139066009666827216370319065621810973706621841326794491542446281741163127310356169518449783444293211534770958183604591474258862538137432237089019683722855678064282901119607706866698302525486667108460238073854907332383872368866246089206528158668341890917173249381293123728812392227096262264715865871024446291988326941987795092396592941932856246376624019507732021692581237993891287812355051124799195578497684263959978873223197210933857224885068034991639719032416114309335881343093076103169067619960987614396915906109455197504915629728856904515226904592187287570591279161458116469300446544567501257146408793036722359596026315090614758271301572412215814427828051775114671759938972523915686860384358854261966347167005492615216815510002386861189425012511964268977740929452066326665456528488505104009971861634885612572025238435862110792768020701429275689686806613909458662652570524223090128609871967856151635922005262483358451830265432320918097822496859198618407293298993631728126760858579253393701356720407475795013935789890826080666118465814227040430972809647748619010158460234454328254951590875749567625245168236922795613948284812215863310728234616354457829246415883406531028583447401903671175750518488304064628536266756003262926239431314948436266540028620109546591887799592445082672486937611108361764758076324687161175934768712012481781246534486529197371809171932882498180987141784093273950140378807959715942177298854446896368881646963288335305828764779320116154285518053452383421938486025899306875644431202711376885644115655681681953189013616391100184508345223043551712388766333569160636980378302591951771427536360262812098710613086863335935599769324946177398398574264404311096418995125956123642517485096330270814999991000525062775247170330625939898108094816225930507939577686165796839786191643926021642301069492303009409515630420614078352272589032972819696817876214895177863251464821852151508499172696630427044719476747137345934923816139454615464257884263852052193617526366099660549414641243899264490466747107757052331498361196125090763945423668414504163196582987561784708584057358816447640678276314741068346185160286381393687624831452106200548550919684053785716997209896881148308326740065612414810160507062044796786370475478039393783662777135627846775788213122980355733010549844989526433606408930439276141001182563597627970378582314678784771339200200295658868321420628272383764381056896490636964123668009310890718152463900627756386640170621877081211461127980262918941335341775183221689301228650632207531151262540267490298106663024162685561179483172271570768774328787869358984853975553755910998286832493752999324684695020891692382378927388953495215360492399428770351206853564455643798172501495580584897968916877810112101731825192135814171890048429670886453537919658627451204820649421615042401291806623943404139130521735967170344976876874511893185867698527827991465559308270510148271403445186328646389593630801533770358280027629534865989993825016172217623845802272939373760471376260537407377990596384014059917021514182801909752696385883235747015728302380988210746634774514274611491346523209777075950742056135305994696029627306112961709841401130572301183317932020374688354316361848614790508485516601950388326300360012902334595482889127445456349761050184197099596608457482636045346605264154693173258964521055965013649412107412420865645908934888144230981057576083659993875998301955566188053780077857665355451977053828255789041729150756320684419695564121762079013879985154323406541047957803113701792099822319344095204994374406149283146239797334033349548380418059573355179172067966326381509924826457483609762817232499499566936352453393840347540053150903453228636914431980549374274553120093708735038773479479052859769050862532088651419718733959600464485656825878035115002697299522010257961890429320033619801933477241205705197055991305017538596027082666621472436597856498470790106812439802669698803107149746536155590336339743998362913378424563611333289580982421328038287224416020440689876005029316778554293758365798879449963983476654525720829939851451887609339223181676458314334801673569110290185948027976295752857658838061890040395122152796163673115788218233653207298370919605997309354254708644522742082447242898811617736648908752770043918737484522639915093399781163413843267849031429052166518927763962800477572390085750836023262374205302559956880886992472543465006977846612099511321627293194124739007310339187530680701021864107645566006756980544436736067888362799683406553295932444822744352026867373609676152457154719615933892502919951430225935254128216507054610411400690159538337543099925307009980513392550803123366083043811977878208993689566834442553277328499503071843873309618808032001711621445202487072639641667497390742620538403841663594321482021250995058429194053987747902347186848106511237523900398033589315232022939157109416649263611757664324433929000695076164841730466667319638717631647344778940040298395714802296733664522428822574045511606540164312054422395677682465754684521492181047967658083097436805516856678073471543560026527582078501426536683913662338663474877832484651270984770982183843742161953195829207136403213695800532579231599280423704104048294948951527799485169482503252092629347512204091830945035128724377179178356683032222171341406787655702373521792772132542236736743947234073230251128444545170984405159700092286172798730316241383961906037822300169435513487168810472680546625294060243610369612056649087050851158521494505114895060692160107098735081557483536398305283916703211406893781087258834757760484671291945398114967796441858798788703399664635021873620715344547684464952566821226807887044426469593812088274498066693852060002104167185308906070998130734540822597131241006500702206018483931381918895730933254682713060187856627164069028129557374011328550690364359981886425233646985255881533567800515398443350924700030324506583091208047411656224298249556432427610590642592012793671531055996159688530336340701416596937000266077591461453733970501977257127573676105059814526302963320988088775939339265230203609247816608073997816275155306692204960493396529618543148120261006978640308524543302813940483576827632856759525716177562533766094404314937852069414723032392762294379356562937339467485970088033143143413561190835494935203384850342197078277118773791251676879140322605986677052974231876497510076272827046479243335405259369584598678762536540928387856832642731714996235159000831527967633656582598569854792992098825799006860332212092348640856140962052390214320760457996412781371980507430421612853178754889518103222684961701520715917095383028091447820853835383342672080936146026764149512079316212577992306952663778188811197620421030141937664263526180461384513128528666601414084129851015473144328384730037551012386963516609219824266064504437150478343109651970163588670809075552899092642536495470688075421855770340812788854208876358263084691623331614399762608352548761430103447787865241018533885562748847526232499925084381149600278049479918267659834349598399061468372928276386114958505078054348656008760318550677981422132053070288689520518411974070254311954411358913896483866479073721872077723243729324517405379814028788499155485412285753683773260586214834905695842166720750226429873219980901233478920207648368634243083927878395935137080855741136089564626474167588797366254087343665078204907488624126831244204096174795604485572081913571177683580345734425904418939380888188501162032662747819694775650880751915714404860180797164798575453002921175193014960751557362748736275334916180259423190951755779775809255972573425987039191218343264393183647054461556208047208820657910345344373199758908743219125927535291661549270068177193854095872511015606794156858614474165697019702438632435188771963838269530570033356642662521557424360798830651207147064767268897611651019567018070362041230121803877753829176181201918071086299450563460566309279608594932088322268797268234539667534377113131258231648306398035368065344531978177544048721602361575763160548032050351733499626952105076051621237928766252149364381209132042036989045001521339953796484208608533976109742023015128357606699047567072498922926881714114123936171231206301400513859375051803202321490041592628904079861382472705568227862511465739400249404064054785075896002932300205628860729824100272055023595470494187449013788698359918410480537007186338313188685152104903250806941402160755849781444275184266718411328845979315339176916837326329864784156463598987179624102194034403943519598976174939731535022972621301089628492788077624258876618035542529274978271191736660417767278508473659362226883126879996800419561891642161489398385684288718662278155804588997659994039783280763428634489014845758483522875136768439992314920489656488601806227321092776830131935064514819792290528512839297952457982276497712968318968444025759611604584170318283307247050612547953241932737203676858164898274809227223980834573067833894625914491952926560680973899340830014399184010584769852267017143463646015156027841848320021345175869159158060886880051223981750240642157782045553310534685159897438945773870187391082015998369016363930231320699585072916834473644078856487263778547015689938030636065175605410517396382119328353688033179082054601069255622261966362307259164147954721704989381417011475223489431010291135428861298802172095689161204145509420299172801822460596054473530823355521182538733225914256674539985380514091477575714611873142607982214162206700417631816962934272248519184101368820952533421367787925927710715444295694795605680055194189667086563526429612753489302805158761039669862410481395331264030528475033093426795148791889200084685426361608173612402809353975041989922481321905374063669603492851633287149961117940268497486197109468063262048872936374162688415922701167651051617440887208489415338265653635347016034193546472877659143499200310600806200482972392198318708014972572858417813382350041554833075281775759239807728027092501503408704761398694340483567694955139512878048624652756481192335954403750167165367578897423814734741013322530376939194130834525795100326468422581447183567770468914158038655673717407093159530862915289315151935562628054310294345205885885000549262172586235364347521611146079162832927134271347652295280397037123787969831625142048385996597973802535862493083818996513591499810283351525606422644676403397437983027766599861367151991636810494528108275044825588512353475879327557048879466137950590628688454963337594056209241282627047753403918082366556853991057834387311843637240685875216987593857275612905392966380506871451337809379058754165997267039513825233883074289349091160265400001511047349640158026950628974592278199259046073729199302493908832625982119153496966940715627432938437386856701558090599127491991731450625844110008193867960622201832658318811259864106089596490105561863587787341344303037514281479404319972553350717230345344065356207297487901180997503960266647747828858626031494941643767958535179461161157189535675378992935562497763318388771115400692824777330063765222541064034125679527653456517490386498307867320559133341143555914826017549466304651187589115845471208662730406890417220410097809005515527166834240257053888726755158615590841885502366653648153869549271400957216603002062591135261326821744658657854055875998056247771682008049930635432937576467312152921554416523567518101576732523937084718536442556891934116123995566169629394982074246558904039068542016981010042373914982563494172445044557760558449368020340203860025306768907218444578712342500758512730223725592433372643264795136286427251565673141289428691057842679478396762744564160447491025138558256421150739094346423307708952821225825620723710723810238013051892107175602162249176665978727665504027965984290105827982718013818609210605045485595155111473368180494008229249108899889122310860703288925076113039463260134737654112667812242261267143388560860714871800195774848434317206418740013970694875318482979466891886593761288579259539242023046670322304399270580854667913953490032287532731502425221109659544648207420753655170038344775199566226237294928450865747625228184283273014595830213397960938046144800780927338995875416300003071870913917154996921953086977266872021869023359646374676427840487624695835999589919428518471826866391273225054293599968683961076597455824846893764015725997121745679565925090776459308158628065140694978348503651260561525259163143048936311974961875000548254314323376560673273486713428216272412981420815844349707548074737959466379938171370257091585692621943516944177673070327178474355204256391999390700514075278782951543058070519049452304386622261666742651808834531327076331856371468343097802885022600536355761281136814872833851519920658349684857727490986480555672652711984986342716359777682939672009076085391433041321936935018305836419468694508149165209384210408087536270986407440798599073942152433391226028966789433175047570524949142852141718918803358105850294157542797130266382168322780134370494076034449041190868506832506932166572740129114198043682804716769877263820343357714480282460275207004695372307070780864516485667181569709187588413083863602291218673760652851831248996245400013426711485424703524219242509853958424612949811595640264540300041531173810353162237895276870054970896935851164945115647684430108894200459589549850048402311670680850803076654675631886311251821407654471782145460657767505717387152688669832942912082319710733356525794439731590107123016588603357499125868421428079072132428207710507223417658217300179808496214355573678345928236963327600256581394306845472702713519236663647113528999337286835523807047486434666032001180464590859020317411029117770586265812321976275733406802441596360313535580377054564402865898777457845730645695449664972148184195784241005794411531339710111193131953306517786615432090074750767432118709982589235659578538014242811613785922100448961157683984469492152675248658216759946441251516733408522142078415827088077192328652114092531771972188715718439053609191592021969737894818709777997305727877256653654223025721068390943811262374629494282026587032917517733165530412018898007091121319452392740567209938538268499794647122187059912622133714559882044228474380738261351544782769709181941674363647280159942779155252790256070228765640423447157939911882742223502166585811363779553158938031054746365093209463603322918507357544770255921319693885258863587012023091975841784226672496596224946619193161217363767729182977267022042162226911147784832295098806151035601241750553826483091133846373925492277828148893465313024704106424461641619001992749375846154958457604844041145463338858402656967140302875825534301345647971874580855241817313736753284227288038318421976116740699790408670526803651882930365008874302830262275664392710138476636449563750104407033454282508652194703115988728581654137378034001447790827018186011597186018251499411326132585005996605465997375082358852206092693315682881507450851148804456799203394413226946990965161019658543552511072510693006562903493363610038152691791035258458652096262183621876598128831275739773297683198702068056651895965727449275012927649176223628132062249896017583785496069109562191289837514553437143063176603315828997910882457143663109414590567268035287584765028086926279764836921750232207882288604463071556290922823205395962835672659877101788821281552400956864396894102602182590308449510100837674372839692050953767736398061330529187074698230415030488578069793460870852066521253702217700590497673940202951830943506177339569250080608180029653752024016684031267145179193571071987180475148445470812791602786090497810481295240859137553418176145060414187114083188329098041291633109475599779310468792878780276637592032359847125718781533720345097505479212948045483163258371829514046636047161719257690913866220287642117611425728330896530140124556834459830339522945155271143763099196544687168943672547541452159742418591665580454195632559328517833569983178168135852564079726184898329103495565729049410816585849600300551594879009078448042275512947378309952049082556319285799312161386274947328341040256899354457721716751141937194196132432991827285167201193225641251570576432243323834263295025196205102011923732704961684054208967420240126666178878823602535750680812860307048156180321148631581975844757167535404526560423372843760965786406494803699447233617158237042088709481533824951077122482309413137228546509232021393211656185501403448361743161087413178279999421780794914097297965043098191573778914618077502931126140884634099416769970915877884698126761056865548742165010346520485396103590853544571643267202090554036131264375473698170639129056922440236785418066016949512744827617672096527910864201963578922201398556770806531384658731139191428990439618156899956371869535380060006407394073461070644038071835586302340003472136225098895007977771530508444829610804920151486687753278574587112773645110028854687150450646873843984304854334687939362457915566447692783309788769217223491511228387013199953083777369872693073878519046572555996510063322045734262096498191942376493228013483303148707784662726705836697720384121972435909511844507321568942485381290907690268264619498402497498377591056191167873601338440875543629812166173183848817500304620650029555617417803195584115664408897808894136594638165541978026931766111992154945244661933838148359329814309422019939507230913199289559877395190185973335092273696263254223754310194019871055934779189578140273984496950118307743967363149800183106325518092401603770875869180963074890575542481135826913590911209891199959910642017780096257176946415400193236284658307220680524473960908683047466146113568043369126362786594274677238046186336539453322257677841972084919044852341549192137734113070289485608707174812420231255129247609620280316110393143303158669481364469395401233962587328449549683262251260228654072029142160975813053939268514490333986924017927747638950391434512695617109268159143010312652392645451750320139553867935588742357363430718769002636853388470689688838355972260281775036901648554175072381510077187578052593813046174472997378471126355228146371352248988701284941196877224974400791209855127584996711050024305410681564001294958619879153183163892472900954846362346150629202351099509091723702701132896919110384547303872829149255108752930479537759258089477777707568744235185857076965480209864091085882368076869226010694878337921861931989238916691322142965092802729584792347669404223668766040363416688684810523756386707244426410911818329733041449139448773148793593176577090431894914074337025632475409365644407347705223245956688526338552993404028364619263941651830183470446267932954986510649111062228095474947215485301838676863292250288920995375789404868108354094825205614119417643906568247924601613925010963681484265608793800804660970897805631199789068217018026410424160401277202500093966201467450791107766422452415993214763611683951656857520740631884670638991056278194195698652905551793209919871771201057593247445131986529416449591923143439313842841881830287239117999228940075085678688562383895140723591099881496818623962498806576152561653814148106998053515275725264058920944764748967525859738986078790452704648555386638618818437697708394409289366642162271278806744206014446838966848524642517862132212944427180205327731742311375449173525595452604354933695961348481653108681582646314868781211856091864327888306897893115148421259496672251159240316249208893465095228667202748605676827702384575466253392591560141868737966025534347504603369202637751336412696065424023781182623399625493037760169801828803923002721115367341344379352365519240980512919566503539952294424300865086005526778614252390297573761418255568505325847841032241616125423977035183228834116647857143464915299447408717518226024853938653411584999851170049840204796492946711293638913792041791246241934954460072787938835157069061724244050010107557786060143076195580616823010218109723204552761438067835548807209020689059932236703716566239548292016576362647757825899823419069496296395759331590140032987788178518042164114608305135653713560010728761189915133314548138326272678757171526632360474159279116612449315713693889182459268478879248840837945715749040613612378685223311794849883433291171043096159232982688729178720232968548185788900871564422056725230997792926843745485391949283959800796984990456349713347698355026343722265769439251578236133072923377063478660181746897785652616094238376782126759372726682666509207047286830319187351433454300814881945510606597462988279330325457563409511054183207814513401333833336439167523110301198661210507127231206961665600228572182413845234833268126963198855830355509732337239935516913473338349765970593314087132591033799077241036559025687570574341001489731420393119146056228947013990890113106775144666073183203601522274082310239101954672587684658838365528691676987591867376707644410059703676979795552736720740819403991002066530028101108602988117418176504357640084106634154486064973841943520576443617813069695452793553479577548501602832729426482968779382459908276205086506836771821816909361931506598484278261840877365733582834598463089716063237561959670282203570796464422434061978113887767324678863308111833304841980359958558847823963829834126299534925434653597513045960996664291136980105036071668639699427112411617406118154013077768451796973989760010066574234725052971536931711836409045115836635195094721833408222284053586584275351194118804093755121363291568897171678987771152929820709875095318490254542451709720189462751348039215041786734526601830411762821329755535397728080160513495562221083677893089182223635091300231856191484021980530592735722880537698342058413500677686150238486086484204362542480919741249459867097067092653678535168954982745287639254566386604119123566549685361726881677790237835220066543275716125133282232361724330281851675256579138629860438719900635172634739238610839810041167126403731174377692450289785094179474177974686598466191482331636874411674332856699071511612481607084579587825698839584692094206444476304318019441730911952985263408928838508703142072980712107453493717217940024634114062061859306728220285548268413282724212341544375245975810085775126046328737897223060191866860673966319036213496427951335268617900243530399893785541582708229305794165989298221367662898829041527509747680848612735110163415820085685927971954354159962284810667551276071190307330231425701276875406825080984926405637054350565384257921984552532622112238259741632387197926937638791335482325793158753421084583039683565036367696780334256314063853093574817783675811022873051186670758247666976594516221676020915805944059983194757664311388417994711514594831131146956248524185280954488503590986727182955942281455729652434750134016678914921299180873873909559710239880226536024494435678051580720702954843582431272336952995628955718748873721160061113022122970169035552989872232624169060752960050298098924809278083083107788585791899026102554358976123537807892288926875514505103382858061408793926356772334580635439182014589897522876391698791071666566225966457578879782292851772556145890798643800311258980195243783840444788276619238257325325398495677236407582658281235901004888787744231473854076300221333666277232151505763961701914623860236796580409878522319811306409564095736369232136821391492951604304547252784912897056836264612372636021120256185614060996314305704637687190480104454794003925109892651778434623337798384436914031975423037806698508003788525408240355150574568070900131533645335824781919036625418861013703916321353425682377383429874256614576525109806763085644897178890770053057296451167045777509035399724562891108872170432343804742777077876440089111059254319167502057567709574898848723411281905172494850934145188874103524963735296479402738695793474612211648483376816730800599519426231852078707340916391553167666282780420728828898255121835387719251974025431644975646996028839003226268290919050601665852737476001134635355704105358478931717068769931420867344455714011271269094277744945334713593945017097553413949768342393103617979541566575147945554934761316781131475960831485202268938125296082148935988687042794034962224415616662751072505597617603350461189136826412941363452455798892199596226404517049606099609052622541274599958298470156102797379392013924138563148291614975740740777080455744948562159196060756349722331761905284828848309879458927079320890005664694503588863433803875221231524835189967475805468158009496986445440790721533075928897113271373638903181109305347556512627378133353137016742610521239622502237307190742332248376938439064057240553515732062212289451368081239846359183492064720160198018253543519275673101240280792563167134702594537671282545026383556554197336677104546583021578749935036888456509241273464303808517428344172094203225617293005839044405532079247443099302850143080328730099053907342043587640919201472073976327522640199922994184702465963543280052878417433895222357897318845355559063060589092822626872328335948562651906345534603190029431740399665414396240683057224414318122779899882256698736559419111315728205547202836724197691962331961261020463510575420722799911892220106616336457094318982825244351915992519433490735927926783234381525000765907939453836414383250595991512358869728773546334912606794426805049112762149097470138434645815603372551670920072391356656754821037278810108995478790977426815814023640501755174182421306976756200330375113131624391268805766700559701195207302818253570727828898253115341895084521412621209773769447557346649957495654557542385559067571986868177391889314145640583881329409639648401485316153185952481954246720500851105883044035351261589741344059746877266318725717602244620652724313739732404963557200925969461902808549411960721033404820409394091023354972423957398417953479664834809752600956107564637001823310179899733976684361985765051806236273282833261765770315182746741789516238344769878705645639850369110160504363108567686687657744659422750812291707724590701254675526700848011610666334794421240656090130096810738175291566311660145763891694238718668865597005053685077228051590958804788932825894263258660775013054895628941308593760188072620190509292922874479465263338618366814859602183664309377670596659564975053450140524942084213826063595559322469698196271875863331147119979346316910072655861759220741302441066065568849407392047481974773007764863336966028822344746967777261153110669082866439026153937338981944222915986294356841007883240419249258596766048538241621835459435607850468928998633196293189538419918973578381618840006948532244529522598713505022797351922074595978750643180775365617293027357490879019144509678378933286002759783832149691126260247907817715882931093916685477199181150877621599541650796897053690422242162376034969761733610373232278166784721368525771817431623557923002331536644023737385570827621944508869076428750667835297036495879322957150811717356246461498580253681202955476434894013072445370144156120634034409888085275711316584093826836002485709779443236728787115392464571991844324211946562885371211757910251231193413388100490037092843385101253072622995878087564492918147152558451128524387095098172668562766940463827957809444668123425729344536252611853066544993254247656640988270134679095710110336537521660528750331857074504227733447457447275891011423370126907566975218026024562321876132042640216431203463785303454133423443108696606377136191475410134120130216007086971681989566604591541877250294536207949249456808112824174916646334149886946400436222172210370565076997890377965629877931522381236188038989189476581043667756480954258324204138509227413251133620109409325591393178993037744841841278882973767957882347443773982677044063251319152890524929728805625012392572048382244261057027588184196347245313293507300968285506966776960523780692296956477505661759259908752840686474029031887237904277466178514865906871045836546728244000038794618662596190838011928600632855260157698752899020574258737649967396716620426145394700629076482018781284589991294418630079933391404238812232849320244168275674203247687150861299280046932331859078591686786085818864419191990323007121551852064548142850181067918976668454644901283419378446220631447593115309745158941878063264806300639134674315056110098806643248457063630236122777807456578201082334540291086772462815127824025046570729339566886570440127985829296270646799721100484936808444431289710988095887062078780132831780902418079719335243392938657459720090438791158904009485733431065612381776564260319321978142104340636936034493111330762399729057250400027829149448439363540486265518586227925215048364159884458302112892811898634757186425018909759329643060062724274143219880154640264516373168667653588912437929088166822114492591114733813828968428971685583244874981128256797652057183336758728318316682052027578030724836902442230717516982693242912596498242616221174923106191576975558919018386467225879675258787353664678142272828797229076772598522622514739789308754874311534811531198939731263570612785466108174496495183609586047831573415574608358338107523024066542860012237286481416260690709123426981734031061313819910059066951483045642946169070375906626868678794105790043071032633522994805491928842421578635069130461620046946032607440075036369729479445519433849660743230742267389125817899272965433309278373037271812428737613537232136372572641530787701540418782819969855055373138659492115120250811729628629911169939075300124643948216877044317177106673084676798118133496633235440161945032424527174425020567443103360149018119584382070881711003427885642222036690999164471066348371607173997894524708252088685064081087695385515671650665105731604201334672922531967610466418506090932418239479624258715386589584510363382560563895622727865694813571431758537827152092385867208027000539265288907222328182301576619070694026565196503548999421047189740431441123518108065524014725184365072227948384721238557958582887182019523576636939993834741095787832147215058571887786320787310565881432700325468386829965317834529084110096120921394238254082839618437667339127605372622782853277610042972046182454470780932767965355354653376226504815492018792230339678043826940296793507558871155533557844570992951533428551389943677845880008890317376697863475390026258663696499445857980168803653526482921894925504167105987367474390081312700988622748621566943802242713628564856852516391958669022335648229017993798923576449371422636428657600920279121170712785199690558056338926399656050013958485082690365801580556760593592055790863219722591076041194868852923519240540533257875093482153129576009495740745056730053097672668703438298328804292898563433643984122953737621473613339426012599243118419971389892650018007873260033109855549453756486870960924783223962238285844665184098663579493277023891074241383579908589661647985470499709054144679754466277232853681714532630485494254104662955015039483742048795194926275581208223097292514389317279864221868367401189340639142451538669282180796996328171764621047135170832229764016432334309876631301353804290343160428255702577171599723830651728791153511441015792771163849326951150063007388593917431786709827170512070467025433248069715043092468363738675179436798119730270131550328580723953078478367473966514438092972409653024816364256169429154356596663063645023693661215501366737556123416987213823456733791819542353996775258385972511207463723652846108932419622415221696466933435445799696221818706894069501306537952947063086059210651429178033918480159376371495132954277241815443220182801002561302140650929414796592651124851498275826862504200377913723251137566067045185091259506261175272703433979405694856197867105477786078741030506175093912791120592653959398473783664240621271028988757103235234224275728579033511167779856382982737542697291089280598355324273840982818743645890473978257942386349693070417898969855701231237016720385081657183835295730347668861662903815702681656244941017132871781765454940792528906120130237821434549575918458192767370599140429114181746602581082809492709563287420279648794970998995677485909167723796356450596937787632491443620563408737753849210533803737899674610628053211035250507680193422822019019015173539205373700535599549497863962791727428285545803756606167489500782689062595242966465968316350583592530568165693232404441586068542612106230904876921578456418509417202709378606310989733443455671565553385633540698636775836278140495237604614344535163663629344076442388236055845802267645884927228416720123400682060024885255301663882523376314868129964037934772798645411067975044028707844467284488463441163382370700358626588625338806631307418191167003204209761291789198034142565570304154739011518569303354874322133636351817062418273591801324016437717669145622170739036931471781434083969660005473237016535873743826026767822005696321091055235564178503804258664300524853844570634275863140379720699274344565980061876566347005694357311269969112346605258406731188429946558940377611277947819631443118071886042191212238319972156911517260382901197404294394147992000553311824586312776632112278744232206618260659410805272727286161918829662959442381874324573121539561918864755347042182596757092479439823337710771917711168671995560711990042767027191993548341240630727547161739816316939149047818164663255647159761795522607257687912387695838764795665298801297571577893881252216357332333704720406572059183252354229428725477376084030906754010214607507740610012060746834527545670453237879747438183626074196946319509082214337574815145763063621584165793461721716455311866371978227343616941409291943629482572849515535609832706346168925697447717645926892423876179872854070367093610766422652518074074114056469992525526562877941680856945332867099313980266818878450017632651236275465625097021149186038668797176923028487866666017008259773916453400993274440646733947780919566221925641470171313578878189973070559171633364243775175618782216082212838984256188169003648892591061089547382248480209681799126863747903102491159351339467955463394426833669985576775593332275025136337167261842931052054344609362880486570309434385477469090611680931586828904920440541198945180018004564609818483820498525501871513166045992373427251426288742913653936919451704737032881897370306521928603508658065966430281925552928066772342711278904609967810979821496458134111750272836898839512122931691773470950917464312197398968703782158682712650756994534378546983312474589567537772729754138352691538641670319748798865393915953348615603124534800667778135617324565975632051501777558399992836532071432750240427300708053907320216062491768366314776371933779068920733360731494429841422865913287547441459463639988161470940943719409257159167003749409419503427115779929110911453753841340932834342771724561052437568911887198762203731625986331505677135071259679216695590977830059968304275459150231821052678997529434196808727220119445415444205505920593491725122947388498392776427137879632562679785170354175412639837911667152800856275523890812287279136901398679154625812138062138986428152993271334202827417685473281088418709187197426382136243060301670593211857819760956182483025240700909510171220831891923623181454541004560036238297811548217999464129871287954294830782798514227228277746297778045410923293007995745467796819604705486514513001810078406591840282484096405247946970775605312407248271855391323098345859489390500502547609696891853771446258880225365424788592018583772206318169729922306722270729818093845289809682481688077146294676932893767370369722537012086101081601208699288984823872210697091889824160182805815252305266467149798147479860682822008086268567877149490827992954512324625394825626460470424624007205447684915003521116126068882567898450647505922020824663705032965312096270748564708779163265975627534779475442702396419766001195310643677610116351780135738057657284392129379987423193144188086671456685428674899448346225087007019258628706042371743204123691127675369243486866707515982634236998252134323197102684484490171801899055312000883194943837150287127998103783992985098708581008430825570860398336567823191036240925154960906296344208752716639039980978866698664385630146189737825825582606844375610544424128560769631469305987314625894398732699573429949567731064436529418232880508146818244079917856321719449107038896410529116455121628218859798479746891710819165420808384157243210627005592234769135244744428891178189312225119490671866925954078025391944303041076947332747458503772206536357785337560602790891124393391554297195280158360887969986911270531307922588217613594740495208545286970729326179539542360609509079266117472031577864397381640308114474673402353621522118170786215380948566042933703294053542384687101927571817431833291836129876134285768964136647892674265541855650546793379701655988109449897824243831692483152555521387028099534948863157547681006169630668913074430720934031227271351439479649648598099890756789691848327959259171948054803193624448880350186447130197317475921915275199134360354814160508935189789146810542764206104235804095643020036997290039644319640374213950434628849053228877590579421516083592204238062724209124710184014783221781615900193111769554750150886438021409613292831044511405920705947867335645296304843627674413221919311558475432626385655831425140244589896800882892353443195849834796920327015569404178969972249185680969081246517226095013997432733997526695333793606956379760890482107907264338889857658628243181328207213332996892804378401525672186919679109416678719403721710527921399662558275705945287688927784902475472453440552251631073285705920726338417159642676880081168655915714206940917225177171797475413738405105245787148411606453944197921326574736776468943312733636696804665438590428672796312370047267631047397345299676598546076760536971149658620881690528947477205985189859759513682750414666613974415942068634788284514678468699586172672318239930100381861772279139393335515984208395341096203227129878109422960738676988368232130864499471386921442460742615087930237127517964714831623730853263570719071129401298964202885316502994119617628858118335859374171687819976900102528154370350054375031349632341683557830314859005920934013556818337779261439270630117663947986376146010935646261207584996281968304482509759056482477467459379283731250979388372608639796055800711898112595509049066796450518812862144540625929949353979742975461879503033769966090451825731982595671307867020944584034879581546273836362864290413941878709732170455238443516812438131415333471677173214784061042855803757686260641965045813147642219506044690327231186203329592665466948940074826796524287657351650302817703324480452108193542709333782792849290740059172661477370755865350878691614557709812588566774174199023451542251776916207860242189108508662284855136174202772679488240932004753924558629991112749452825078207406661640605404581768864086053764885358541349399912770877375918152838438099087076028996096512453964926614064460430252840086310049731037133141676569541342539604732914591971803898373858309421365449733432446834654766222963323569758090896542903818992255331469895064214652266704482960983300701411229487938307856042117022784808902357522870855532420900206025904604528780100630258993400021186783236777185598804292537487289256804227105591260793823059225189921928311449431258301155179299786691186349593903484912693788438996298874814190180259510872505817239127986289920481169924324240816975521993661262238190752363472535471047549610819673155688687808441996054295506827618839596585977645785903947907132372288389287059082182454416027189947794215794234449895353611557215526899026695409203440754358275608794016670553281789203044926648154037567183962303187440339840580544013240523874705145225025612353052507657856252754789510546035017202364066498039849249191972177243603430068136009171677936236926129125961693522431948013938381207937334862026471266111107830145503939358042464577995503065287861519086786270467574464248609920289934548897728759759310386704073912221265365663674972791302858072051251085356538315480437678130879236840122565276984837629021363512340131995180619848083481070680666338341421717797008518108598218844663487571034420545033229567093902444436418662802340322153284560100016589077075899427747947078373904770415416849027222224401308838204875677506655011337093333371900868690981356051008550911318422282282735517802284918444548204516672913873141009412077419456883143742144836056034792399534656417491454333929319082195515334979126352680361054301923717442392003059450812500936189589084444770463279020867586692350841417319823238527260387559257605981373734595946552127165684236650825012692008602699430370708129039825762110061370831653483829647342325098373034300004373548745715751749224889088569218813648613952173971128359678333683728902917309418077320901111166256687781522675654132456855227874762382811271862505086363402863837410591985388605784412816400334637020336272427603939105943622613753175867338531048608302076520536583583472568270500956240068088774087184096652998866435897737200193091128458958519142296541319814617098912957666073905432909066042805995457788728766153992436143198753080757602346408600154376568417750245563990427436407487898594246792736500341969994882818215802607035951611652564900286307417760341015892657049267183435764646357440274996722052653602811149483019343379831736044567130118441297515920926337237022215145636999590013700118028652746600822064567142762405802546254743850005033767895943131884547521897689670993470680428747039505589113031047283368245134410889258791681447530835802720788223680532787912880663347438129841157502651098208049473374798947438918612858326922726143437257323383819960305604100252952972903695273028957671711200879545067116482915847819235912184392719434243324230866769087951365005383375877453721448280514117961186783454886240693231779949825531213827191558103196014532664555620633937493459294535094366094367261375125044375535136291871444597319024863718657599163219560265710177157395916229204347745446262506827051433944523492938725149122047318489588532248615920785712931860515420694782786415179444411762282858649277005082374003149009663857080016736088047168092324184678843533794083013796105285524200754797164379480401542686504357226631408614710247698745309082353857501917034298942982639906326913779489021823140057114840523723527677226546335820328844763933557839553517051233514165193273736711985750614720091923849352258818408418171694439577458188743012639064845588382785478254348614553591389492760947362757779877681922296349896910816707881905773627689970561866315528928126700241533927419995733852265426676340858716687941641760573308816434786414277529027298444896090343315913016411247850460552196411674719768357950193943023972238110640208269656095589577782908697389035714082916522778004251082844945249094413789827854463542464614337237270194902299732275967308716713422794209816866916802493481908156560857640292928442843962986458697107350109249272840915611862354675163320228366528677490652463975823308071441512321872926282828595146177613596150486462162964193348569959635307258723743029061418824651516943537314709709059712068250112411199187934787597940102933346697839687299550227488012429151964170150247832482164910624020330001285718485553875941614931813581582336589158281223205711668011000012693224378452905751279194287876765561148808438047322821151749520570832889525302229427898251848695132622021701900325055959550450749939188526589918145161177793195323472059762401590790377719395070357569441816936236203854421520884073594913584061939643637063471959175722630596748001871617314655693156224892648161345115890236224776053490847278553353366374746315815285259147342907959099423734277861580535783101702286281482532714443418460257388557635631571631133744859141501328554411916162136408062650589806081770283364365736342243861005209228198018379893998742263752673321174483731784825493439343569054064092858890445373463017438848383341570706887129490766100749759491911477281055444822828304392626652322021308260962046271023667099293291892234723858411265105520403363365917092854208433153249598673858090892691595878271585031715179513682368461756894059177653830956161364002732773508890037800345445263452997578474257907715311097182208315522406772650300966998145986112111228604926925968016740198344357244251883389330126405022811567688218079333512605421871214066866719541069010890402598931468335997831269744260200315629656235833867437401015747467025158680993714541984295696636758712811458075039274446789909372131882558988215588862025853852970232119700071712164193597372496036186238281172804764672289844838005069596161850860568950880064598690833879918480272980225671048780180494627338919706443751526157809866481854309631467729956687348085669744277292915026144085571982457282955757329125943747663458016105250836497136257828965075528788893159045816929580422390688649309126405381455271088770077228115772572509658520163529835115567869335496481495671131665638578200699697522841656997155255214098145220893693829272055236131716707031280333497384129031760365841270415749299490971296447663723187665157776026169018618197782562278724052192009602168276873035155772582577193687807326357439872597658916946734856936992660356974279266519807055817814223170050326205390210196148887082286143904477997394645963392746027134853772802859443189506643670185891549929016265583396830410327313501630437930922268767338760886880183262450319907755333444375988018431176971602133312729048958840434263285871212008059313369523082090606475044281365038165140123791522422758914641049812909440328974938430106588229928937993003955515228513486230451862275619101568067752780897774434733377138745448845352832953633609913968729227291375122395983631033336139490595086182113663163385020814276344297150457978512200991380786368086915987822121151272127072978284815021718591863300802275764540101775365161885901749313771916950215233961681823102117209748491809432121964783963948344183404313663590628048092593694572977740161479095979542098609491684666448602861698948583067241588603389642214550228361515688178760284306752155693986844278855819145625202314677053797172035484881056405489592761350720728619503550506324857627112237602589226511658318962715483933065890881318906310212922603309715736445049058811850821324557479752896824108628681147606440294123928028937195653509168021615305591374444061951321372516582131151502615862637801312569424472794122182965647686392579435041655641410819423415037500861442789148676743450149617809092551025467215422411658481331064890354640507663172308435660017047186049169261853264249074291740702810543563174310306258428923981755836871127389489470369627658783493030400256616975421231269482907742327899000813541544067785961766048090560260606664724059019186462359414411335149962797987685156187540200398427435438840749656247457507413582697403441808693269222617465096067026610582712381676971890632166048524439406366511656207538037361461938606977067039418671161838531026104921283287621523629785573959856282927893897070529533934103670043596601601653532723134866057350108432588378219805393403820299979821260904130808726352354716695406239726677206144673975621815178321309212073957012053846537387380007786585531290386303698706314737297844746011805701909966606039344076354500428356302774184196279634034745989044664804074050809193201577157283660976001247619192321064003683563168839839547702846925902983296305677727849037920385848061367693978712868930446830051465582992761244509798693760095994629071965594413456253581576299705124757886554526121917961083790924741553534829121068545930631716159656068400677896230486708824773376413914707951460480366640174490897014623153691271296742907487634594651807796236690096020079864428513398497177381119131144946797874121656934123154591185079650725518051792487311764468289294822831771499801334092203156100216831001983509456483182198447859535036276231409163376579410253647572243041938397397696537894201367259810587890711085431468024195841961729658729562554888416403580291824216074688799087043168455515568986644047201694981287301149656529775199086306587998939388785761117094179389650707456953248615098043858351659393767840293230502092875613091568977305894464465370420565860987685689974698493228911245835201716365477033719828878186373346899944246212332807246944117055271095990489456727994888535438970492548889930284903659374163241792268054128051744674966339321844807331132634672683238595782046005448856621785987218186208123063658397503303143222840333662081069038666423329908170809233222181645244146053337230582555805754997573792557507557933827931922206928169873604295086166725823313976325369850388503263299483891168034054690298164951500279665460418965636996797703387033303734805254198488640551329058094600965320545836078833375009498923155224571803654314298129974300880860355989346055794372374953889906625804320119123697702299745500748822489236822214942722787637405813146860098234283632264745387430886712127020548884458797876451571133975806204973037625209858510710743753156935103533527348804028357760220100301041864520664655120688004762179671284466837835639279577410608752589063408990792121061735290386941018164011416129287746803027965202848073663586468305812327729410366533680080680072108319091248395038014590533016403460210442056125844328331688857852097565465892831999737232682471143975509454898057828898503606833258679150898733935108375582413913849787489742112572825618929084595173607134086477668851100380289424117596269563586903416700127629364695417532521387411750788476070603195373370441190634184478276358857201968534643690692297558721610338683343275340000446670969090184680629859911530418690714251988552083121562563600538320632739471122566370597001417625294848751398905976935871138574829434004746527359244421162971441405967056626628960521672422023203970089194416501996396964809896632107171925554588737790037923475236189803286258993001221694980308352056444206414021480157675939943859531733068923242905800488079326329406071055912846456549856146707938656267355710680324550087572573941791114164695161357301928555920961113979931275013770169926003262268447938104125174202772975397435852229505324461227869604206744999884468956338012425162319488832360289022326348511950458010064572124333572269176692810373208280248894430216835328313065987052276354921420315640814462609454191600070361841100451139880209183922122547306904674112578253977880001034930293359767497309256274033670889078366574863791021756212784844577951443752328225678035145273518722932027599112880162778695810387153107595520655165062111742692685037510731153677284977233061312934419099607471769549010157886615128893349821927602969804432185691336854804098935678384480472319500850446345359874398594271844125622789572121698710890809326184848180788619802848138089180160185386577773746022324502081006494762245322909930665516565204929022231754042217218319539128167523592565661957778632357531131298968271484601262669415250314346763331404168691866636891547711326826606285529308172158898053946235610086876029739365225584837987276394787926469448071646346255471553173302235016145830401121550098014527838531051234867288526884157619768447421155817081390392514893090160548601622809311240900582462342027296784365575527311478581950818498800268673763107012131538078092477492352286592753883705006971841185658146351125700185049197491632415442376205218276706317534080805883096011959162401153726378063766792384769577302928101484819721836035184149139082009280920250096421280626612910137646434055061621089839282087088758495256152690365573173921795839889431030573053831307367844326041866537842448130122002352797960156191360403730640406447338336669495689747959913359030568250309203639537600115224238811054474539373908718940772735279640363026270956428873560669710295793217162354345344882173274323070413117389070251018040986390752178484136561965349581192627550210036476380120427252367983242764256038578943181515023141749494885169987865517198347772592443376283389771643388100657464541438818212819143795222082010694575379910411577556926311363832446300048379258691597737833924560792982621899231330597214831350825569028472328428081170063416615748017510745225897959172417213732237806177849604661753712478315706056699988382059976956914391382139700547634372520991156547869180674168362481262427354208334352877830509722572723607968150694887057953592334404559861249700917567943715680109017399533774855905876228499362229478043181826311013110158506536742785520500855432287741154627857562047075310166780574770478043838216816046136385020916799741902369201922434271291055292821524384136168838575932702439367800855242664886670084957008210970740884239702414846976831142388739777159995415473267274775808197891409023945496609615559643133024345377723709979520745026112409746498161830156489516983755501371826693641219502003865884856887692572466354480701408702377054124214267373093499758268501345068323699424038417986711277636429363115071993070595924750889972835180750778929625944669840616029447785086143096626667752347730703186452784087101114437349385348033371543908802031704335067521533143025825139278221987326144291140639087871436561534587075448534759133594073074500188376321772823023104032109732338129126966646641677459028701824866382448405630570354159082496531245848756830672154316601391441876573835884587282616149031988048064227469132211581919264460381674762872526781168458784933619161180035746808468409560424025865487545114039153339675353444160250728666432130589798166966207351678374049246929951269230246754504875403210762400010144740425284949431784159725459994394545760182554822165222901963784687388062022818410475846955332313531170486589519930779399843105931339436040455425781138181983713149876184865413983407126581685264068967268666919929943654897808406626405894010006909407491217208995001884018376593905131695084606831407648790669408255766235011171014454572691521462134053784181148220973567562005725331980957831743241832185505641456939683158974264535871043117578943067389777093258218457614212394332155670979825157493371996900182386036182181189874153271343382481798162112464282078558256913655745919226866412369611421390101449869702677530896013086685110324185330505388141221519338846598826805262891863577795491047254832322591903319649098057401207856046664132980628886384440681392745372551490932826597497900807262023745537612002389555516655274588903417916230099541490698341826661321998089602071478635931345170501308613387300413284480717215079402479551043971495698559662705042783892153590277252572626006729131659451254088815165277378398838613478706273155081124855874212961580462507222718764387578610577727580844623145143666005398868353328347277003256989187948377869173777018139925670257509109296246745903245884949107401649595687834344010935836339308726333878201611149438620717473289041493600240154148913931441019966223178808347896291398281735822220132298807228845405300110689789187743755824986274897770316458457055295370232983529791050975798219054550141549729148241546116829953882027703709796435617245668250655927957303596523920669448577862392196790023126702163460637714182643613312704163686059316984951004793854147230203340701071029242146773526810478260732147972410349047686720580981391291470543572924650802083928664563225956158143589147692405137814745416332449524431614894769043669672202230091348947907215458881347039128836965066034546951505471512328655517821722461648458377448841854413926068376145099178763119543487409867085741246010490740478998645368430524388577444825331950808480289835760790207745066101871877078639001439033734910040612606586234730071282038967251244810943370780629479855051999566989002222162169691350294675566086426495279784720005670527267412021061741921054971217722109402602428534923868805161759685193205511497770978872465543059137699369555649967899746272771339019366107460553265889243817316883657071419666226014297331416907208612072946054173684326723885742613698746997921624883570205404142566077142109603278049603035560531033408199169544752600496218762470348553877984362893548671023731819613455776080800281722650047531033113395366713094543708518814785595698306882226979215539208490828860831493112649505444536963541412859000662217030582717508276314985083468784762592971323384367435620961822811873928196601320674361135862195152595267863375436033168474883289572767823978825397411630864848021554042779312466520507048407531058724914721864487705289242001934823258783462182726619660297731097364654639564781865562857366511881613940802985187094792544742982362781082505614140972678558394259970244608317313066201160162369619495375343722167456521735810959323618024329971944083462675811310726872381250529251145371658315162752736909601844488395335136803145332141964382407823858683736430043575400989607925232588825602468713696143719975306365278333715281750303379023268060495764148618678922926312277028273250562417854625787577452693360390105122147718586779454864404322469115840421948013294274505452520764035590298022691080565746666990277072052109573464344271114402637684320864655786578588126532993340391599370238729854353228033131273025098616442558405237763611567717957476117260386321237041815861117603937105127759768547527450131320676401161068097930369348609309220304964699216943002710021276435958231968555985309798461710188168923304728384205270641992897642167510834337960338278134199809877563350619143295284985098018480130708267105294528187182631345028251815789032486872267299052573753646048507312993889344489237075113014112958239717346917382957927165445051775758605500191915047797949848624626403478369838458079946470197405546862411989253920313370412889422647789214492542195117255628485397891661035356224827049001343621358725488570246975652963805415571904061816349835090912932023639931145035692678732705814923380881570606069353342623063724963517090355735853547446780180384125364088200551355643947284240442088178997507534314609074361068707708267171691923227976948375196363149074626415467982025130935539392107689296675168950827108711776382672408420975293602929155152745445881299997312639601669446295790095551533029776304806259521997203865465226099607841780244324929833058586037947190883517486716515518830567646671531739275731285602527305086762686635130805359086426318069440390808321214988695167906240402065430757526007357463024370882756459201721439651304765155689583813993860764373848356978441910607486811769308819913221150558088160650920663382816169996747394367244592491837028300393893536629034918821084397851931793249376604154651955777536676536270886995139582596423904165220085854419210238305677878111329416212455532329424702244145732841714306387493658427279463049241777047846740162802494359800235951324932395994888301238290813992417263084084582233167894947955876526062056528594421637128319550763167076039584265483116608745375154874330333102681760164665784739317564048745950719463483591500816070241212644926827198195781783102456984457775703452183315616129035532252763364133390393251438075493894987821866887895244573453834717307702119202291299898595436008745900367465011130852102184723075552604046381859577321219572655006926327137843390794784045533182040378288228684434586352839446276421951041457041661888711580230633949959640679697170782548332667858824242514453124418487258824981248671777054147738922466728450359806344381958710796424130508207880909092348073617296974081976632568894886390361276505996989579412637133072019337726924594396464957466604889421430530829591154870997122555563872278402082070654181836378799321597897819726930387187184995371385525662668334286505945162002786196673891769033961719371390555090800954588755424800432723630323454227417750542987890575881839648382428181532612183155436805488252318422367786375115561913735126480028249395340047044289924950316674035308938163185955108258864741597514170682699172435138878606630918583412905601164607114989853992813352384147943300180583534812456970487401502091502176730894987222182700658904408079495372036612637382040594362971172389070816174046204199555591025540105024023256207976711139259108153550241073759559513534316338053060696397601324593636591413115635126202476795098209192775068893341683053516868262845404045359196536975631961017987208666867230504589934729398390244817347381198424539263573076819324494979825637594158942523684832016332993898860404031323832419588402108420410355696743932694167590809628331734078529497670611417239851996633807579157543632125697976980558913629991955300650801635336412862513109703698090649133260668066895782631192299780459184341906084189386257423765127689019675198228951239642539847187137469681121132033577268012250340849582746177843050200332771829528113257303598756448349514065139195526385610828868604355230048478617397522893335002337172201342240053027452206894049553970016965965038705220425044765912322251388520225453255919054019364215455712025242061996489499924480283242434669130588683030058913842114134757502109615373048209633147612978572789741626678597912189558819142153934572414403065913094102748029024120619155515557019602285454374751315643334793373661969900876661414499187353681340430726906848731824185674965633367275049887782409136247263494495785285449271260769972983399858542147520533840157250001308020073994555287174332249496500101653807826227391193643173153769724807381334273478778148225165221327810015298817740834551336431234535559250930311958149716719225117713099530373105835885178201144910047355539757250965700472114651437870247647866091588343574805868102536327572591574650465087296207166841572851920756175498907083648046634667149594104030010725906794602993912831152012678398838944143273919540887653712178794683626321750301863267707253319068974853941883616319560762148341692990086388470267177385297199269205920523504563065207916289087311448325814247189992355295960193020277600763759756614180061490087202155120671121204246114296581409500528975791944928533240245052170864620685396121593446915970598141651407900190462741543568344998489343477438172302285107174234405439193750865790298936520436854495228235039692024995325071305817667931271931968698469314756162255107116497113640483961849620826184012659657940067964942621831362445872005285847871920273209579214285977126617105820332697405706340619118429568585632071122364538027199792986784094807446987974964360625377346824429371978386723502453402518837552368404451328381966917700000746151990143605237929585657268998664537587059405633930613334012967464777885840181511360406939799015439667519069939354688982707257529419883829166757719855268726849990633214582889436535660024532211758705586670942248522179144417011330201951772927266119190808950774175503567159225988741053977231857674652008325256910807282819972094394232579153996995483254230477755744358826200342787446494358091854955204745441901895045864585317281237524285639045979310299400072975957297477593084191366010738975525055816726559761893133787843897548385983088440315393713095660178057256135793554774027299865102054547595220792775316128025626472108962775396086593319168009267460773913032275517395872781661891329910183142235303421469419633092621900194884071358359972339703958562853147435563048489206490682931477328536575901437957464831079384817489488034665765834365623663850649250446089193975246924542086892590672439899554730515640182059914721857311647297233829836901243831797550008053333496660043327001899416928994914123671722686193526513376894256084584612286423042852620685740343679237784795343590736112062873234152995090461632181529471548221879720413703867624963485947924153335718817752872548088231869539481786379685088414356994589017747923154894451969228159536556076788402923517009461608430165701411026092087009019393817365259752552325351685759925103088772220366152290049114790092818260163093806171550576281432942062168912816281417412367001021295184123814805013116306426626702539566593138081397074694957885812006594799579529424844154402552730651689603527434015859308578425702696291736493754332101628828653588440061134956469849530940850921543301362362513618870083036642732769221996088602655803925189820712041189381092959499002092576808775952321538062734158978435921092430495098853314077985807306720924096366878421095007990396961402228645591742109047823452893845634769964085581906874413418031620965955635482552936540323396966144766887179255452352537010796108957248837508004411487951201218975319385729840417009910983646410189148505021466784009957869211271233597909550731893946807071530154759453544125424738335251978864395404483023190240451637282206771854581356739616068655217224678060099878315808810513399668876717480842011751874917097187836685212872284991550684203815684442473939552124801158999726846482637219422800307397785500338097045629510200803479476298875623113243078150001742226106000924759574264261104959337158709880640706270683677440134557216379060947531980658288720680088514949368609237258377355663946974060245131469510653971170814073654128943591098515830328205641897440275423539957188599570571063667397694964609133176382127172951026529857712562925328441756981075419291974225747170250219309534910039208133613556142635001641489238284265738478393556238653824516569040530020416962226536069943009399759112200008034419809944912057175991206799753871322337898105167871895634802282082800874179599930097018776104678651762504565192043738329299595375686072787609097013112986526469880346077831002349076306846972273308994580983361508607591327490054210549521326639042590776354555169365359051957750328240559175494363088053817347360918721327866647941297850925053331984186005659773356611443514261695297763879124912907570965372231657095137683328262894891758824453202801525473984701246036609458486040203644979386625573294629947180516774493544513745544446884426883863179634320246327576907856146412533645796413236553507179355517584398119277619645277485115921248663225335481299581509951062017732453890457528894373690566156888993341150016643649508480661969299407029115800126474743175820821911816282737682295889983977604426646212747011659591658288639954918451621519317412269797994976240933569248053631864655294642380326761194800670171606769992234148017106130534988565402219383918286816499902575721404830736295833411292008830384427490215736441699261598421816741841595163248689041925122267237155137043515301448918893340664303852467149135094743747972158009332768934643188136807754691416104735782992908970847498983541051765269737818654757007434258369391038399102517442205902156131241217184593445480495376639949515664492353698870547859069341664605752914703305587077150524396863838066316308883750894359145802428395756361696412383184658413315396466808450457522533381081863373805222369706207197268001152471170876745052960455886974673799527988347406385017026173459076518948973469155151308589277989154772006390044848731870313333873940663702809300516129588143598590517830254225389101566518836178190470058822099065863725626470154948882675208955088690752286889012584058870007876592309031716239007012605988016797707445690649397412525657817812080246894686074245236056009900259081543319006996352358340807424967902204364888080303400754111342784855025507953793378484290260661496662939614177027597604036505294854611709972969962301761468219850901099967824555088176737533816885763913729881447824284380604720721256355131641143784034311847845236732572771936401795882066004402153893521362632442827685262584031167290308996627569192873544002419806986457383066660845507285061078488161343885340886814476311611230851605918164452933727535286616475065179260616590569092042416724691153913520845670491301656531254468139364330279390013190820967120892090125258836807049888812808047979240806595745813872278453869741978141864625947666563441227610006470042132487337047960636884956996868076559811629708565997568513996327284339283415104041514492315875494737499870671741112980933422226564105850262917121062074081149740451997898208327092507721886380641686356240695308230924216914248051918773572098568003450739563564013645492679845533959694923701666327377720093993672718561393101250890869958328234928050909531211452315766019172656163210919316607275774928408801803843214887769831485628926108544705034860775357609448983655836018531354688047590443557651182461662401128425439825186023429049967499396358864851545571825997893121664849721784372622580766393502647604452344809841022246055458662748783604835566458476156222297823637277047205096468855561416486048880794213917504054094585952831579042361091643986051839126174086795754417333800271680268876575998559342632303773891754136798736592616104593565675158943626458304239312664377734221722776887814975914751066714517386601163601486806978736958509167944696804776972459081052974721658111347143058309947894566657478500687813486093842432262179999843634200438447226788817806717088267324054310083709784294213572287355597301002972506882621662158977566895099990289839881193228308443512323575117183423084673945278515546780580328049953089908257032137892037413388674402849756958617882852233551973203475349021939064823339646140021268586668857025154751744646029329837081820865955303415179203692195437892179951446799236707004017915674853940554023329394735880703456923721315963878384722095083359409352202184324043545232520717940114481904757602089156902415092989726922672144640335380788187627489226225454570549042487835138244944927684662444338187855023277195722967753665790679077615146463503519460901056179650047912580355182013676678404402437871388581663667097652930047402339691071429469890450853226705598899986384194390440434260902610636838100978348553389273788302473254034093401939979562918039444821197105953980527618041760153975807657865323318252754765528347356321439298959039537460020996182922670201669053161546278936518768613426026408140770306053403782404573115921081697477663066747899650544720105038932763480122298443129342827205499716998270060339036044677868160055371856479727103652446703567282664821826707398534580824327620717405804201338906967253464746128570813496254767367614571567509440578204603144195240409244375823766491925886430145848377913240150784660325049457058003862123348229009195776177487998196302671255108804603916062055267725766877743849461200140056670042231437252161439183494841496396183836020725036903702781385430172302567282586176148314405940457898598242690362454409936120758580219140686068596002033463693182517607693337965888813142791516336462214260590589210521284689844824599118886001941215533614179558010354955341764769490149286345481250604751883867105936182470172398372057409374706865011588749150855418653211865171279584749586727608006278071821405876464566246687010062170879941464683428540409796041192059263636965178520005452615626172254464081300486604857495209727805228848061902896966357932136204050010414117328152979883713681589591391579017777359861411467015911162750967855898745939483638394750333455617697541536994203797986910376281263589404740857706115180895741559195021523916395811467528556405374559101297580633381825831512382518322470156588827702319219460992105189757510121420093414629197937205901237522320308362708875449539890524857535285307174421955191058513180851363486248839103360909363676310381544761594990506976032416105210165215741152831295520300617885904646034467575812718247788052617109467884744815067519420496838333578162812837668137482298054174488214991131909618329442331991508214264600371042863636781202310022519723038221705376569803870588794481656601224833268777818647973056432866954211015497311993708731321168635493490123460382621024804404153040237476473292619856258341921496413723045332033472512988364437872841346233585938909093228291460816014311512614528649951896693099213655532336757951369290480308700011004895580362580671131313603931159742065600928884234620084879617745493044768700808333927689198190575707522739641315720241241620827244691013048194702269489100718854313117577575790441107583420059553788670613958581775047198061242682485616372283920446055215168981009287451433281200828611424898836222232204349469034872888867716061221421325476525189198129877887608318451562576043713254495620739425642685518101103906014912236472456111508904676361020419706746234700834042327464626527600021230010596067019607605041089424720683850897822438009341798344363384819040331447871374484204632798784130338129734974065247289440634594471678731986187316525235281848982695737318280967123791524472513371298433965163868060011560287356441090002655778132669154244864115966983804486982775328346433102655650357266771499722547034220749972245025165361267489448668895494789118801602757595071319087730624479045520619248749445916007808557435342553772705897235892961027738686056487620964066545434419768931977664310785586636809363143347862687636514376290282648178413408841852487877028634662180613783657723620897828934534314428528946474128841491003277816253612687240779954667527810178031447424010579889821836783195327152540240012633357175826672500284205059343701854328220072098784888208253267422302039132672261057036136456638809802435436256109168222763737260580454542802213410849760717585916731148823805622915118239584142862968931015306872359509769556525695020009719073739374399572780547556340033879651423534118820717637630645175030300445656588445182679245125304768543759528900224908521210923060472465756677516077666780454748359459802263449032689371045560301684380241673516470774812827555356347704605998142341448355889851904873175230959585610770094213758027567980576437134258974406829171096004557622972040785713538910575523779971139269580306067643017294577937377424865685025671105679708056843526091944414144207152198154725282998190370722332276278605412239814207824710691298063831349381395285851759573362120702608493593538825529225372834598882476215168808502643870278743855397395172049173680791167237336281198094826624412182649069146308132857545673820519503721122884817759263120990543152515312300865401099405007473798614799788101170053401952807348780164925834656216200681315362551011640344985329146676011694711653441124665955076290337088245319448063087344146371745374446925626558749630030851860640566516110140598134330383385940814040978172865200894249981051010852183487741164540008913520649350072744751814716639692762190023524501893448321469459673814247807072247386268555308116129875964292536652929676331614365294110762940759999962533252131651110793393154639092249292590085149409406919227840398720005547113309481172432675093883566192467445887361134793476539129193202462920844689473653223921036487246964798427891915883921236432933393636587921659308435036388536824033112727471882722684925359816796691079433751221634874786309256484565100266134095841824739831693469014805110504969269734149980346740062402569603426687408761552356467013173494463631013999333932049099453230128995122418529840470193325614835122127702460882597291619290279439846069905045694376383028597588734993247157902542206874783305378354437392230890615820997824284074426246534656419589782739580654495270301540073014032415714221394469376152154650168842568614004003154798602871509705353143861235090733893401133442242029968518474797555167426550527299918552106616821444294484139016665926854357092498105688230316086658781949627480453758226121118878399444719256042851639912960930166396441413594676609827848252308130884668949834540004603228223402324389677100970566304548573986914966695115251949952252526936864562377577446935200229984768009953712041824541793027876297577707408131532337091240882127572196114515504489131744359707100351508499822200888670178252261891909835901025239625781095130104512557724039713194465221843476070923994256594906111570441347896687553277748981824663158857800021942380995513170392213773078759445196602937175169868338933283188199590700556558035524183880040901027815926560921288863085288611990986837409116917944078211076887502295857414024991743306368381918008852863800580378158318277535835107723108660072440178336243500881169213290744555527955685081961069416606959353822718020690683234762627663799931781592562082842230565072781433965670638696904045257205170127057805398758526643081561422640695174550209561613102422983948550926617094155355201653212565476662960194299129886014216406498962926082862797412343346749993184488180188643475797903076144493527856973249683789913735078866461422920768542139587273737541350132709705727737105260994299706230640549287812255507671148566046994623234624550624076359203098909097065166906311724114885538941353136052906683037843461479077381300922879203609234843012831744683386769391733591171822502075553524171934609757851856324203166047228205444578605475166732741143850197754108742743622906112369468909576513306705975879927833974134389689755462877491183023960149015383022224817388791776923151404330088111980008141112991056801455247653487828241015626996915874979557041279100093863771200807310395572753458555273443492066734878614378723274923745377115301139400240208076096967909243928218947766440576247932704173476848539118070709556885503117438186821884802940657602587492268116043222370590159548022525828950818357537392619885415974055897031895102468985173198153227668647178899773346467894451940701287066467486825905580163870909295283189209058818915625613653018577837804758411480702838453105582381671921427564491090307509866439762771685055942825957484694966490776917487578685036888809992844193987572546267033638629147172073965046473609466962766511546178678929195126914522092964115339546454062142106890715094381493424962234469578069633381567464031544313183434018252435486577369500227176115611092287485192138768530212025646215922114989915393752649674890917050172897365028547969413744063806565587672711702296252622948385999946221858828037906360453889058925035221452695157511638329082122681777664626626027910871915172456320174264425379956913139047715729490264156772961008473760212162021388656290797127381395700172699458867108336414966688424044521469063245239132556425431851949257987998130359501384258139769326365661130279508262514929753732462838092807933460269492697632987745143220220839086175664140115261635198046264847814766389982171097697139764946993487324882758729808927956143907056810693796907315331071449336563251165082421457374691336408585306809740961983049474066397119881569789164869687614333200993628222434503120312918627436867784187342085350865643280947944298767025509983776109285626725327726616996276393303624562499827635575434445133066173681617542474641988166764562402332812417925615993481137776215983438023317916625373305500406129688422041374515956165877067043003692239682329053317640898831560281001549948886540105082410178226186608605433901094511004542503747855695582088064471782625985262429819648137178184573931490104620667737524722844229220936870345971595617785126596235753327419596218861215050301868493485221390255020389679856780559199824475368762715598843084148041022345709979693857821681016164373065585127799520705607770471033476298319486581088277367510315218543465728345076338183463228121054955988236745474667002970453464705746539605099763453343389897790451329552693081080889150756268992746017009716423561778050551981034537329300197285676852350897935824444683815437401324522951106085503267567006644724887804901350301897850152881639422543499402239117920363703237975508468894464539886940457441565364284676575300432191531157594918944011359113697516344671023200828539547204067897076132318288311600851466990570329980211744677967066702287228383673372158699243044354085210861179466671630717030625212388504011901297104422993711515720177356676796073101313083463910896745199669042475378535004457027613519111413662507403695920234291499646840957390162495905457460371217784143059489806334356279679708476172515743901059755022397477908647005841234883945844454381035592653750800657036519432274569581615335262183191765860842249443616426482285670142713424576095235653387185490562187626795397065450766908663610774139979349392053430286492538169817304308820075863774687492413617199787907400762638347206162545539501273408253762041670356362858121225954731796468147582883103530102875130235130185755442547380988598516456050717905014244241183573474079665564105476922015971439161209764378164791660761241189727441712070636872308581057877160365722460545741153096360337607520797368025876224528171128359054551038164939992708643652697565429120351578436539964951258327454946899500197240455886079172333443400460849099440838338856331433303530151423720624145804668804727572860395127178888481550732592002153983948766888182335760713781055279528666630137845337086855963567542055799974203438676411573727724613567943573179938709710555104060269788958297367090418784487675311062654295297457724587539077455183470289118919004126842623730838769637341277625637830551242751384876492951754109656537326187116816311598116615598568053909491809460482350010914313612978538115442609039590782045626042937602027959601235587504873535364769137364018067843341342854011215934339715247385820322418154185467766384648578326134064382209566414127715543871736721778888977189104099047499937670322610037717912429402812734273352446984839278002542792813725423192820249785928342170265567726666845752197104448629715116606136457105138068825509162814627290637320400191972561435503545690564611398549327601941302442294012920242766922786497596223841065543244702526087492738631075748097648307796494106161669481956403238630908558652215318636181638781074009554423405264877695668725513546033065825535361649461460830265709558465303290910958843103145857546924257392392503474379280794562632139567854288655760574101031301930347639897129655397204963243220572221630355362139948652249786815307471352714443355731024972802865575179170974877367335215811194920135112121865105134883821886883674868911868237775582185916669286267672345238598547274338590705319697133006060552791751270831465505920010345954678612995634130627765703492315159126523975893675268644046472471318419568216663909211389476518186216855613815965339799586213720017785631224212245183778683781073519317400824649842416611268940736901417652594032387579214553032523146224508643753187636829880302935912053842733580875022005246034113823646636627226730558841805498564457653013250787782908401469261768211953750073325401168304910638224061586992904038180772022710139408242366315265739030285465115550649745482773335955203697223496742147704477915605321545745063230536833769711327728298689395115466480763503835255041638666015104420685264150145586059685636649112550694666493809782600965932204056292210741577539724721893246782229489893505935049058541143158781625055359262876860083179111201935046942373499448338416844168553463214529458565098868340403745884307557009186626156864952656977810568308801538596093010783550378713608399194742242219459072167363930670022704735467654337951603907485211932307807208151172601120515224639935402212978294463401788528750378241311335656751704044179343372376608064577814097869945013419598906826787592042303071068149100675456090712672444966364763482570971335665421620480159086714598141824555844128422158790775780930408907220763720889232946223371741194864569342302423904326173452682258810452198074628763743862864409534300479451336536982338006313473556481146008981322539257649183288305831380691361123522588372447527753522334582785166976442612789419746856586949642441622999400629335885515889704115045531935437158952006970386030740096788309320128665639798941928799380071168761872631731262560930328946626750863274781117778243890094959258268646040626619240357516902565097774543474414174262623674855001611856604052913878677854369625015521968826439986146816329068273281611411306733294409437639388090376058083742799905781882642266379430456227626496481007894310619176600980350434834602444959740608725141878057732413911465127382513669630603026633248728039366373801189578670804145607739005861430143864665457554190209440817548299860957643627690156428675342931260231780529357966289259156139557210508298159059226274223093673001872782202519569317687370529521063388235540117086566538006585139298217186750612040723621413031296345465024920096060858045541772137225577487225446786236825821225142772612761138044188476252092313328113757114166157657072488253179375035399115448772768005996605500638555443191213389264940639813103114115193509493600299732437360183448280283664904493155488788574378552413422347051834377062268457730465430847919361335102875346662905889188060491260673012062788716055409566536741146649235324525656096379295535132931318309072852183381841663499747754891368335004586697182298440771418684473183871897136274262540169189619925047373594635843722077844613278609611100130338328540418848753496064815440499026506931217191524464217417009232594637861893026501729095941570799053973985128857628086077605961861972411342805031554201300508665427130998621516705293607782792743776226928178958841942133089746738920177829848841172135681489341526363399639099135933435997764031822196898304241321116475765662747672264340223508312891930216039212302180109800184589807237268904371155648512996510220990863005186253167376013344105260765252233463973927973937215223480322393575986741497137447566173551528227473202120498849871506242393257360808319008055121795215656411783987789886073379721124487347680861777177331796606125756059573781478951734410722865820491563444904439021970709885806486943959201546371507071943527241160435523615332809081146726098719998881783714083755633241237931456757840105920156272821247882659708110612697165279749933424556816645405764671628937994162339039136929302070584835671456336917130666057736762187286450380404365044841478857378752156704037831588725250476464326384284300318800972360522437966585125812654948829269811723240076226082420053487262557027280714466588838624200705692372124074590526797278193187517736909555088420032917842402900863738891512012913771517196585191951356256465332374683274539919349199820055631120014062329343268945130917064457069583064825310042043756373085355939691140620540693325793808872739536463896191186352796388243519847143377693970093643237651509716011464354691002705078797070993736324813165976568558825468080942504681414799013789047948807431407518906431196256228927602089820943893640122283058567489881421738133444996174106566896883089214390052834153128848831551168256075772478097635652032832709005277617385711885565780590851303548966904114483581637286935288998785465165288154881043025476849954176279983385364373734598019709449049330462160699648273274896653731131110339013995815430365645253337986747647479243020015213396725661589007882914191560072238811606707821199197038761702054213466851761937689412883651900301177689869922521296936958985706019299182961187846423402640248901505434299041381418662925796398473776482096479757035562179526791551028099216702648342329029252696980254406027233199708145685329080295791935988232166854182160705174260563368011152446046780149377653039940464645314957698820569670556357574495524997829729788620571309958357735141543208666576427543892903297545924520107641388228808361879703412374753364699494512144933192538089702970740320055164232271132165349355585440952103606692684434804217976117693189199734860338313015204477748915499512018133650747132241861599956968539516254233835600257594182629878024390272923289967030582006420124729614464743669131458177593724048464835673065169891826010442519195917292696590769303627451249204931217734697583159199773928768403137981377671425577491879207661129347052705707859662625683793365223577973443203295693407593460835039957719910180992775828301993598941449693048989064418300011893796902870775135428467331030001723152748298901128605082426264205055902294265679247805441765060436031833490613675838077646328759031912814528678771144444237665514423822374246535494120800230975753112978357201680418395751033875699804846804098114409379319993190143522382675487873032061459531179478232687870018658343484888403013495418489371535096558290726697815305626006511226458502339606688929189142288819084825047410530315742673726415817160660483793513748009743593562487061669434943663089152086647201288407201300274281955828579395060383854396579787612024295862230402428711338569216073868195742767550722618655999895484542115972319195626630670571664551458056716838236700435966141064099008288372251195432261666770556391127796375137805766278442340612660392113287553802810245286373147445105380946030356645740568317617814227562147622728409453943236513008586465362827981179474485657592255648278788427175178694661988174013497358483052581051602072932475700948310902128786819833513460490793169179587627447958632744581669605804694145801328442117179545841073444934541224869804297875492506667027604335994408471588279429122130610861767352486747955332582702814291540588617994254940972282357099233566306169478579104727792168381831436065682144312165489961773745176680072192337735693660836610027360118019217713631187500946386280344876155037360361959303390775900029648008487431663310843005907764263654839949840637213836692405043782669292839685857262523868953456792471117511624528374569460318535511406525285495303109425051415196699767702213178735844439263501310227829543502376568666515456908198921025904276318486907736195124892677472968339946636444547625851240201911726626911664773482170874262719101526635337868870710827668551122183707619581372643590153071823810319762387925525191015145549423208030044970505885034944236215983756626374210770489822909395810612514422232395807724303280132856563030230015219532981910053003996360515212651344080013083214349754771223444486985648039364066714517346932972107296278396374788384027574242619927448157321634644294528531729115089025896713231769214688288274168656948877080988632113557736952894327496031274339334025677651943354724152545544786122856635636050283244861484202434223325333989191653407681849796219691075335205023284718864929490370252553751050326542920615637637376331517430021792902713040217876762395427737701803390281996562664858713207848663439350838435862677014744512015619302033640983682646004973238668814932341674205242247424029856342072117206532396566047693354584904679246316942564928188265897948678603419505628825693584368917997766223172879395302734187294352391604749751119978036827988984526446676645816657654368991462057430321630418848405947208470126301580978881882847439743584372425240793613517303421279157476596464107773076500954713388558985088843542668658979457745313239464584023771417679228119325518757547811647072771002730296523883684981579292463166855876359190262715410706767517774970422122496815469124790741898631481480082383781940498041774341424073094310020376824073972494603174869319933833771400615236744937154495136926771026007828944642813903828845235697736653805293130243873284116842409796288482235009742296893920535402618307852872637248347604223469070250627339800221544235687170304011416273506960439623491345883401275410398010490711138204653762973652999704374893750696127549639464782837262068305513536290212902984716845819448163974837844398472324438649874003876150178812685226183197272788641962152387432929285639162041779922986383643168676732999548081091441745216755873881727925703921743344689835579975013639119536561352023555412919173757654160636598925326554314327522541787587331128440072268486922856952532160876623827062495574109847708400850704709506473190201806259067463125582047193351733214858094985283581698815099441848343094083096803337784193635236463906958839919190539436376502356460657157114007624610835927244662480918175418715238042709949709014776064917301248813272429728918013757242349548685740953500290114148649498976629611329814889362282703945460332322295992342370563689776320621872124351490876896085952414232180782844720147139532010112494930121104116702041858111972535334269493010069695153364061832254609397647051185389113968713868612152180094784757576470141614384632724156410252534679882103160395659196331324611962435289146364532975175788798858273640098779641160005426218495653819465783228814288683651624056037754640166666887764411617803859676285572878921937071176502559293995335624515861776971736823050696116815931016934402232350752692651759811905477690794907222211426843063549000998683174542652041391220465558888002183075568759926691253547656313103776801148088175683257438342279777278981164801879927883268717596174651290622725504784818603187066732899939870326876979800094197328411329108154251365033165869999247257968497565156026985590076002244003744467052784884726994961246229714531585309930158968026455990715024323760901156467915309951945159242297592005822303136386491570338092426574202959462708106789239970131918432795846652085260006044242174444772599112893409974069252121868086461940825231405212772510009704135698329111842878112410643282737178636403239222109152561383664616752788114044053147498467833586745193495033013672417511350122824229032412453448616180370268616025262648366530856849089998320854320147008847338999972592639352777141101488652013210822070809296724666607749722717836741237948239505917534062762839358849776872262879377151678946992885956007156347779513360606645628341676667410461675666111068721230476792282802810196292313522896910635907518621424162932799190402390043507756276870767530573768302341004033519962766421085455421734079058800604312019868490355861832943123444984343301151068633193880252252354238132267296948904835186336777985532303538767420561161717283276160939850259343925124565273944665732479171663963617732588452531140969462138369403175623781656727407040461317779532231354641739529668768933352117973868542718024863336924933603595311528835906049372452671248835894335147748550102681921958436897399912196552344259175176844774455090190129446174941543151807768818779941681566236091229171430395960214568914204470962852446460070271713647676985311784891015207921016265738931319031174839179281505648604088747577789461864627394692549688219051886001282149209806315218506245510666889221291367888554496195941648459102834726286870564639011608099950207411169013556911853165749517919216337593617661208750938761239230157651357544041792850655137714432166719004479517951987517258070476037899811781475464419985688244447267743932915617755098094436006728528917270897614231167195520321699599620588653002802976114583791638305577589984143177647460071866442469611367687138659224079299071748542756128272808388624232217233304500205855224712451512555298204323907009078975317917074516658624909311066315641047221486169400424760488437404825514997199050414875915982741330719720910022465484212721574814021885864726026491254356030682270826619965942744649992070543869862857676738953514786198840682261233865146801555247422876833714292797362692698510348774996269666426457699735428743947416326338045595527630013601630011015046403625965713085961724295701443397073416238229827968658723448338969949517317573060706984258210928975501461967399374287816017833822475052176871944198103188547885029635568218889827949253205641363656479680776561874709929853401471887094047053522792821432084599504560510379498204439641056955353831034632168799747244084223503839588407504397003868697346888570039720513835514401997327220242827917995681719725013028036606102626222164855616435143630797748417437900280165030307265300269495166466052627066549940536574117770282601785930965303014236759330304298208909245752187244543250307236488015167142490136627032142099947732314193705049057415795709511267736183122274930215781174716864096204464498251469762342016784464611348868221195374154321557792750014995818894189936329008691870838388977479142203059789515449626408172176513405675925300984169365916264421952488434767607595436393069930983635298667156889721962282279727887355809165697365190662899933836094323870328259613178654280264734862401665788461913756124487506588933536764611581880465396276093746205779290021739798099883232753769656857801135434444858305763045546302837875388269918474317345413268829884226623837660078483427301629630720663878384487284090239070282460178335183387916622682812457437755938026713360046423862901532913840305829293737326636099194206393180054050202255582777707987216825428808478386793359903025977615622022588419045804210142004267021141324656775541722646664332731601976259848931477322553545634104387506800331162187967538468164530270018335751991392761043931260357202273614903306901792875964017662392521341525619928799971776297987869767650690363276334079384779510403386444585504432759026057754004701617673722248410263658706957729460094655996438229018101762502329644426557303380286239634808007164053264022463826047035830320661727675956697619795941042247189331339288419767298611588096667977334747548240059585750690733607645915432156429619056216299262292153486423889424974859491391187187716181012449141388395760136808144800580371540356030372582465508668620544258787517553857720384328494363522762850703542992817169070933337295194477802924312951403895164643526506870280595074181591874071671957707771454754994239708488067220482758249568471914505496907787812736184410942400170261015250697881533476360002917009838196146283399044857649097228813328631735345692248273833184776171765970220808546283993964125480891007929624410292997551457956882230249458700251255339511520854775686808961852372410948387783979659937487741322478330291266503643897280455367152166054712452929192096593479673469470392110963145905000327860819153150115061561079698216255760969671971279415990750088863810039726737089987341635815482591658466648065619561175003989615352053995077786063601329321478091814159456528529619009625337588690352432813474445508567582821005721502239024634056032962841554116024102636259083951814915876578189119621942192371810748794001090613261286883482648348770564665549731480489368339328993684044896200292441360006055219273634363888008382931260701268102225738723217433768530022383206072019526204153047341259382281238577159073762443867408475879449253570365857593941625252632201022779456405117704674277644517995231248110330797288855314044474913180919219536027547056147352438653126848159402122329092496649167356206719429657340698222059593374426412648070726536520876506446035846630724923770465371920315647683910541723364953410200676952238298023663248364757314034750592556664430773611985094942665213030313672709756540356752924770963951497044902731535273173789934884565939430318900246189401567345272092558466132621442967287608927100954383231244182609467901910447153847570449755613064074530052728888402607051423077938214652819249581832886899912335515590224548915331432026823692322919063896958232843073409623092578840907889757415177770351003038321743451943857780753413491088445209210878486433433428894870152035965476702002551985093033947618956168942907585927621382980886879850653628036088899896116305825907573792076862848469018547402401401173708479984242041451280977894431580332057119944413929672001070827661865851301429359474784280480269599810984753057236140679743093762979037543100634787027420762935174103588211273213702304722356291537787338954438488843427830887497765669760407077077336456103631238857856965207658124665266766403222474872824472695181973141913659817076993467630224331657518406194042145351101348866651562431577606576382515953917298401663052253842498803500871669899317583115751843199285408027413918993430933984341420591385190124860667793902682024386638549360692378574350565787991564220728107497488609564223162605858737931410014931671486298294591375126860983882187617757740825073080966594608115544360149431005985985419140746494134718315308306240757374804201476269857434786195736857441538645575659325952741044540326826131984104829218862375164420206155723030051968164266086807367960812585770348220217722380119373521436033535298273196915160944983219790224791897911462432548812636799668774027423024036376534615452409273704551079651440200581388330908376783056834389389074266597515740380567719183527845065239126000769347508035037037160063771210264660722249231320553128043932044283822800456309958629132878568245415667849352083783122975347056659025051415564899918697468422218434802064311132513885411358700612383605618792004067100403744139366081532557201665506342653771593556271560907415744737722894726458285024217036192899268395121419855796527282335684405232383072569223694499132071442948221515032814232028120413382658256355793709990123611958905100566505213791824790792734861759066416097461775530686718970318350256521596029896503154632056505308170046865327195416488907992698894801616253235109036248378470981077083258582158350565647675395138298816904802377327738268615301509022682314621662660674305549612079377928769417863625681816857813004477569421151772485867128613471507978172819528132302611219831319404524896886998685269527797397402422963343194565916917397855609567908601077336971525002790474017773582064367195115683061327010950770498360960189371412376156277152461758886566435227628050797928078315818327688382052233053748644121878257211320739404262345379638891062170740864552891354029866000954830541843374939324180853694851194868941597334078174175999080158452808761079084739656240020027324737821495695866062742173510690043171304505621249851259408571140944029332254886303312233800319318675817827974708513922579918176089829017928819616334454369686614213510622495742865240272170857661512265498089333924853844786900803291025311390279778293634681194013008884449592308383093714583284387411583573050557085045744082241673199850613840873663076335303191167712534852839911871293817698965509266362015147720565918746145543882090694866714097121190492390319040169224235312240994577443662561712575248374532742652789758438413715466207462874460886299790633158698265222337641250743936472627308990737652422929750819845776785489238714924390189438459144658748377062067101585349040134147617235262217178421993103980599616201149924182228535979506083106977100987278717358185508870007275666122251248676329449921638294843905949253678618113598748548537205742449488695654063794680151843008608162724660533396441512543447653956541390196952751070272854817838617595950610212426212308915448866578175994894475615045062764975423594032738370153453531317570252808889070161947392733969992503258973625046196692546367463546046161970362739765578055877641317770604698827568259821767315822636144859672549934659799233040103849551762889400001902836739647407142371063216986657210911987487182318772768280694566866495366295075692213833450298065271898405673348322434528301733714551864106276436625989348345064620060943747512002073980608504085611222093990276208315988320925962683216611794236644525588052272720498137542455632080241708606981322612664189451404466811322847892979146609278495295665954365014315299172983012395140020246059723551463046502015053968281584832532494075673508628743263406223342114371689053402760786518978281505132704577301091472757531062261207848957250901051777768371188440236882011041327421255073733414461228876909015560853996760261602676553581557139800968183515691212753676199853955835689650349516668333960865632481030892140363114960672327287352544868802255389601309382189074358001182740642622646781855686155195391896432897228542686679492571720448406595920079226135320736174622006011398032963314206398507178872079641335484734820217731721381044170885687186347355875610546494586780258875849992869679652761694165018775296708935096186470888292525238585048286709006331979265274347655516211529822256752962359018151337712596570050474016324389131976245079380971535547228389878820145809371475670610332872418970341701129097438054240052945737034289420978341468761915491806657246257600654359353260906109519739651264340363308770442296282540553139941817660088216442512274952676146365448248502336863894007471526715026043817127311773153180652087818392511534938393236213647202425159436848288167133160072881402088820506417912371602758210400773110070352393435783951402440604633595245601585745235282433150470680394021241009241003664090708823711820934569084336584415939695176244735808126852393196791317844776295254457337253333651732663244424285812875723642362777899701694195995724584045306505076622088192139230999436848507051148053436927362101787546072226273436835317746102028491900939442107249780240267159571958641633400628910589920551219379335211869484833684619856815457582740529965559050326947142024952571258745703094496699025254450768547220561517424292085373806117460075719829829780301489175049734803725188923701869332779572034580276173242132771728431961429597584758462951427537589665748487556345468907540906876899867898720188860617866752660366576988058347700357676891116252694241732328551894225032271671520929008558068397872237569556648773770840700866549053722530975523288042286206286139986243625347441588318836962458809783213149898372230402024733448558973923435746185134886876445885135011184435738091870862478965838114483570108908791982462185840873318428649163037173739639138263894496619460026373053105735288101238712836574294814044823890303584240256394864344354317458689289827345666042420114512351236671397018354718442026323490203856418421383461777006763090604225209562488773733606041906978993141192423620882125312363289052536902382055499563427776497462303767372417928880738501960229401291561516293919991409449600965985794300177190713218061613290868704400907982614353300940054212271310866525679519644057516824438697687792355010375878433447603277348337613233547258264457937372030585833886147046041919817088415062086970889562280293790451398536979863330989294475277289427013460084144216749929736534380535138405769312013547299469682526923510927648495117088082941760166217081903544946317432458500842718425540919867050972018377429333042375347854223298684729018994773603606699312584768541192597873890623432225042251124587039539375699886009706900996849628506578675476219213183860014441992491390733309139965868744171606776566168974770270460301399770677145243301622285534459309454541776385442046132029116612412383595964367381240520736619752077337530781213157280263030612909905047801207603456413984171089566910371566510663667495704048838652947239097545277223963796117863538850191516046815830151305153687158160401657799631157569005838873092020993426982107793781705371006947247541139184970372744108526146099339888693910544661867352801928193799096389351844128603941638375985278210039283820590578146138828881930483968443814377508684757833308616110776474734785998054803596020249238762128724094286099107891447660306298477223575930886442399819304473709460786607286848903313330604595858305493677791216352120581504653612599771039764652992528926555947314331675201169077831919497980246065728180103965524856045627539805428472912525061245288566474595354204530410116407220429227392329320602524005479858188781138736142168193081073592515975434716254844211297794467898305760425377028217166776878762240582161359339255692278350607253961758229708242248266239051434266114824475704724834236491096520075982536014300913872368919141827017915060883610221738957506676175592890238865304359838233141434728658645778031728915826544978923403999716428799053630412452479259358201554479009166942161669657953279181618804169876311932998798938778039981919220948382288106467589384268598761596095844784399793364432675909085685324697408291327172196235938022429201138246702548185377204040157511221458712836067659699401085056852400910264139164498892263083482480713960835203751182691405244973309008152349110897999904160548689407653251017870223732073335500895621324739959344228759564143803904692600404674067480306175087728844846900362315854228989631602866418904187284465464438290979433858492705102734945891796178646566086046344129669650757012274498353399449544864718419705034643428480183122105576773427768892305960624180439201377433316669567575872265422330675601788510350335446060267023736049512428833285115597651815404045886224324492356513377395464225830602476901642843996428645057800309686820909339275013165850246926688399391175028588472632393178472650343058088603587910762567151449254352104430941498862616535725469358668125555697420668308385632189831250680683509569543910085704041300783117928766384577005086975017435115412465470415167169725997146674877467057216624429720595147340738801464493752978327435197077141776572654868064852748421922701630660936360080632821616740795046867205142289134437661161839563895884528227139970255766176114803172322332702835746522678818669080487960651793717732756705034963166724578001852010409486637490931517106927736114830586207525515523309098656887200050128289863761867627816416753090562695867467279074829414937884382086211127151386914212708594460604416941391770371289731679053289101913516658966664401661584466156615911850394997912534133613979477657647546427739612185849797378821100834264784157636650073020949107439985338829175230428282424846457432165751868194874642372669167669277377262590516225318166191311997170646046395171663164076817697721780094797733804031960705639952684021779292269826363521891603525679323900641938641956856671927122881321995789002141832245999551190333193968114060484598788097346377135895686463986795845315379142704730006316775841035079897916568184099879131954724140019706384243539033477869362446895821254420348864463140302494720430767982019030598773894615727124150018961235350661259616235553307258848835652461612283120135005106557534676256008168573696515069992069260563791800474615348759889044808604309646560147224600271054859902567806150201971660271015891196194622019594160017668501269135830160617318492342543381047197817440482379092331040020981112358578265304215654436628303051935605969167024442117514552341382606285611290826009632085037781857387379685186595882606616559309335269090097419276308990958979510339620385744346767266639238862661450853873738488724062602512623858916987643216406319462438469282192494147963286623414452745624138386324728839427535911200804029054232389476695567452437878220242638072886847002935455669952293321546590051426163354331961191082929231259833452305088183576515046400861654274154115944417891266264217263098027685644366338760251341370582141858775368510439530715098358840090188503776625266111885721531440815872725413506579591175398102496456357620903999315165893554887758600493920866832152472653642819583325813668933125115415575484052374774634763545759611188444007430170492148645514966728312205695742481253739474957138843851824149678188138088936557620173318010969825963602491544123535276267702552281722160329992481670187582057224463271386334588212250688796266353226938943230559186912548821358127639889615084149947011235479961211929014549191041070415812015152353242741338722067428434699138936986929380477513139946822130500602334997698336253436260338344173710891883274382171422537304684206496796044565096252546649166276378909782646897316325620017112786874935012202989641840621809275508377711001765633103830973544455072478361256928575853024916764509246007200776553992953640888363587005626873954932557543415109634316880831116812637467011800885468514551025330339457794575843285026524852440547542565145784142107708215303399261112587516549329473711126228006580582788187481828013499673752902027579369186068484756175065010859345742061999240167927157958420903910980443684631916187957186788192287037585363546810159228308525247407523082583835829848972243126323736037132667744032276026569570800522434158831688768526091193809418718791047535339884469452361247241801781308010552424702941984061572499378100201179226746146733515523271195308907230670489136786184946040423173161031700113746722290103199503786804676922723652112240227056725210947258501552235996115321949328435267543741607243387460581108112122213524676484787212154490778260524420766886637598414336725748436071497501373618304300266463574010994312836787652919786442401631574697462701242833249605507722235242500872869210954889797680033317059375701533794297021514847267987242550376530699430278938803055688276366240627544159787556921639202307233402088903698924421657617148097858512524654089399599410172211459540346836280949232221626219245491539903657032363791266590987548722574337057755612113524088614657135894545220108361688086364958284835225804201414087647955302080162251790234090570430620743087431646613021903819333140762258786829676884308156063183261458836369826038539366236141072923590408923107512332907458073824966107460614035149015373302607240968054964821320241412116203988922278472725110570290321980581280765199855031256052523857788735344499442398766775326150378184590074395864234741323866910438624020920551706159975429209895145095012777435702232814768067614669781939170285481549609534933841675619119242773091381400035211861216217546949796250472001871452554565522842758272370517925622914380699954315366756870853787778429864394112581972262132767148035653205195162873803211906205494907196639109733041458146230413347233589456951585797836000744981331087676109020405820871624341285074266095182093920096975237236732470615584643232571167463311461088186657290947019857800120418049024522555552601244823159794790775020007896147079221248686787431332244359787324700261298753522534369886291383107898118087326912109682137419264523095763633002764716775265799006826242645045399434968099240555432020623320851085344267237865718897696300997738749332325166909939339244993161350822342324937408347712793512610593497010963284933831442180578435229412419238133118751115429127130838910616777951727498092639780634029155278450490137378745780561763293172710127525732696891980025446343772718158269814039967056709302774178701250244609928167021489892366555549613644111007124197421326606421756864611525000366433068180120435921189941323154480040209233009434307579118600784173408018085954685504746937465411496098287408559505325433246237268807539133614580684516140270714549711539578668562624080954894353693093556736157228841879359361263532662865766594832893685812273084061203407322007723148322352539080381230768066687911850266337198061653797845146069159938114678868437146248274426787077077194232857621987283874383450517112730197839323738524384530468352981568400910945541971903550872630317328667407115855580748852489000851409189583495548548497105882791973057789481363682026063276559565020865029820311429193360288196500791951267881581454209660513291431239705720976873644594564083735796065194533073912489439810094781400531195320718877396991704685041054410131557932110373639180067873595905346687057628664281024135207338354726541039338877001656531620170368981795348484239215688437686393696236241374840359595349095607666870150488621995176071492672349552471257509783240150913347248817296931191006286126068257086399334915805517733470639255771307400180237571850212765519619119725489605283402511491832981779122288808770623533866075363338545473776658956103622018831739989882539255888957137281030845628000323796686795586700590340287867722492092362350122396538356283700018001249620441388853166487433455737461352275858922430570915341575116978207911117378355709425383464623477198251648552106949908715958178846407912502537167463260191425828862427053229385934879548583470920937126502356243414329937333460381144055511897062975589419846610145739264619634695225277264530881694265611753419458331995287890512269329800197282665941896729053065922900805369330336248582805432411753361907172809971370222562966221560951668801708789589247285541086168048120879349078378568185501699070953551598467079636242599583278581471347280934890093359942340872985426278851168484346175222711759550592590721905807536487058959123958949724652379111448904106462322166783635534455920858023710113823609835459045479446658014774361370036604491272348204533655036199471193824043769864411984322058838335310479875646906124514226743659729916751887445298351797509087522074875273315438059837808500341333322069190562972417512245498548011166861408709786087588981175363020666479680496822847627222308758869507832987184001355009912772772866679412462730448419951882796965370713888890862657109575999485883785649510446446970927990151033851159062435026302869354784809810744747084391124185763848948504305435035850464817313601115970909214333035747537400703625909168081669909983862293876605665995647115314055522160860473132348349111127819935218942975390426590699280708956650108772124969175006709612436739389408403566069658859522150916112832437071823784122568890295053838393518143556142213572729759320755926928316041026695475494066113305752477802492848659431169396649115229444660881772976755050956677761496639430493911467959215751508831996165723797059125500825272355907598828399629511509960152375790531392332635725013904211090680780239433400699804290102058044367670251532086751416890450455899158168710035612329487114468820370555569193093117132851750897132960101249366996062096802535260671966594448479700272100210161488688610301286017330269353924740386037180098011729198596208498428968477808709132792501392405337032946795086178221738317218065656674133923756361865622185173112507127192061973340113688350671288017934841896156062884887663047330222685603715620590138462139258632819381141388315569112885271965318616537184394059301934595032521461479210547101882608694675590737037181740068591502107982798808789901078799421347475737969208909724262467469262761167776062783693867345772307357305913023367787974408485065533062751588222516128896845756026079284442790472105514396920972644866218654926336444035040279594885371805219485278609327743832461960458726343137154985927521408921322246504889176854334983342693851052350481701381955618702663592108985293666845084895459382468104335579639890239140799461311366470942013160989927124801840588980213184527454267346341960955822165851516800800815391074123608041135069438951111801475790662259141304041604874388326277750758635345775354362561254698362723230681547904540129986050404167857937588087451225215209764160264286312786526874300156996885880967159320161043189034936735553573214442222265172703956276757733298090671510120872059462368729698248446069074234303948643909242653189290027017545179493619377396266389440460634777964808851847970038120211228469229222843929833896975851487898341228222675980680643831685396564533913697643900575377031438751047728046208593549460107362821091722202708008096083128445825032377057007693036073046975723568952880064791196306677413661139513092289296498588912210821114386934403095630054221544706682549604763799822164415424614546817719471180444979657032964951840899889066675081342640639028276516463171797822050327921918109623003357640237029631765111583394092387067823235572173946916274732716828207247843317494668171647990498582259967921792788145539409606158355573669605126923906860041558709424262246346469472474258319719584426548265381578859830079543416166451255288603824163180095826087277578781631753950698583910034298885721326692378752571961685164425925234219007811477411796052539207218839838346195816433638269897976422943418923700335000089031854117355880070055887515692593163100148927128312927986425648497677933565223733862168658273824869773928066556573670943287682962951705723260651328595600474661958560200690076794054387418759512076864789538276320551867748191818376778656419664356867747111896516715280069880391955887393983252251082267348381683437914601914466978387875956290441018355895730121839575015576527667251025002041120358275678878323623635532841492705643768653885390071116347662268341181797294626694260052256629501483144024272465128972564153964350507677465625118284621724644811047022847116823482928215131989605583759050688299215050613575162507687260322228890744420091995663563892464366194472077406295544509009071430703285944141995815315733889933597485196326109221489584485514398945408430536973617041932615397912373816805639889495531282295839795656876216524342767978777213871396757186180343541841462598955991436305565789502628937686772321266355255085747420254868173197600567128251080509821641914204460109850584638130058166483215325072440634888562032104475349591165530225206862255640232233743191821297353622672668824441560692795591231965532406594033880485301723792431158042945642260231736082784698396587953968832449968770380302145542555097100809112497698856818283411688123101930080242590496252400690246868173674224105165743284263097969330765999896869694574531005244767850631493788056639185243498631716408014650140926244754773620920192501086401450444129456430155360638715385643502356315852709380569402978904028534003224704425827553958940839454508640422003096690830661496484483593159711696969992104007973100675780326973437568319941187912398391443135216861815560480368882449215614592858181352522581024763142644785521108905899284399457347833805092689689610279579360042963669802185773356972852785077753219184339136241281136859814333736975013226504988921019436806607468264072512933666598997380763265690951970114207579025627737374995669932960286721939536630578906177420213703747279236130903346075000593591822112351732151047519041501933239145048278757855280349786563681027844156876924085172010821564048575600887302223638142528359957815524426247990896679596567991710635644603708485293053162541741263441805782839513110988677982510466764163847080614318570796294479125057797361693397420038901843004958958179147616818919359428922929842056669246681340344354343191986253373691758160666467751589920341139634858122415783932941900239177330298333698803978605019994238002901332414880273522041320847367754443390705040204323000630061705037890697814102267760563957669198566768833367674426456569341625809098377630192055570278018825229160143380802347764064068400711085758219121653945857543957989075693366991298207930654120655166248450791918467550642269710302770818146507157217876427106943610101015164259045010392201805756159979174329524938331241095808620724029278704994829269418366125661485018654258640417767041927435178812218320953615134255201938359440630387659726750950341216839107349427492023623930912892865270713303853134155422886713986178468895496963895874737551226182996104421876411239777627163790167775130863349056348733476665519706272618905381945323205500649632443438538251715392776379077172310783622457059922369542623585355115789896098783887038105894323558074419535908888204111416930253830933222468151166563783516695674214039274542773019596950188861747701284013772312292123001437342253026070494869062774781182188795103192767030267750435337936733749938173544159227012178303277395501082079070904862010773509485530210926425483845455331935332543569529948130475323787132966487280708765400752277752498681452578887992166282329937757172746734724132302968181304650880234216788367784821241454898563870737668669637067323267191590319758939638362790982810301342607661962178416341247829586666290530559793274430281638523440937406083105569979675712405108218423610219125480860266842277497878589698634375451154530783199119620631717210462851366074682478210683627237506700815279982167551519633353159398615000486184004168736756534436827548914905207576153000519149576114756977618917079495937047938967750458162423368922532943448952253891289125112888148790405030799869627857451874170714424861083943135404868945983626109994624231001181591905158698277795932703290780862784633705132135547457395609814328420018607790685096471221719944743668406642253232756266717011147473974635013646300409384196588465702663865938708535256146727679875332349362078605909687689500218556649221527350598229751041260947118770319143489023382597649229947030774945844110333590339892948206443434900733219595384514171069754472561273430613222547861392034341144074153255608673054602544453999204384609389805482089610874280026680959610122987669292567633345154141192636362139882802318646077890993705661280938987810118818401137585854351065860914848844085762221199149911984860703594389652652180483268082962293358129343370987011180760421808785774931443486244960052994632433794665561989631555523581900851839331084389353929660442745429229512401698899071419091475329315420943859593309962495428910782303076200886738890622852538673207531008819920087729703741828529291491227642468050255510420262219037470799462550574952054087806663818667639919695430265147663151364598663657676438776115908856142662581323936902790596408819801445621693809779819079668433989416622504913151925732565506806948198970725609679529807692240881729814429796407723640323147977803652298442700406452888524396753309587503447262905776243714682041677031484519662721373046611821189458272072453691950487104186397198025954985504898570766511515729962321653614790182009060338572221300879289910164229544181527375209713260655998513167514085988969868124595514192783959402794788589189321098664393853913790940211742840637022706349905807175841033253692693327735820442767547222698615899249990487922143239634275180999476801568306918082579663230440240963721828871271374930712551156918448660964328850362088474036846944527877775114781869101557762201765156483168273957099810360787335166342206272474692090957877998031564145386209672166385827125590106129282812252360703430496399242928723820560486517998898321563049771539183267919443272759428093147079884878442004119812048442085682928366518561995037745535226333531951218144899845637201611000133746606668651580181166838018516875836759325953831609831344434266254867035042870057779309842605889192182249390209577433518950340434880831350428038310296478281002593660820442061975327274567935360032550976747912940158409533393813595611530343939383719281362989140039690736506365223443155583452047454211419602617441343623648152070088497767833877679105131157556721871215268351554063094941679872348041179952152399983654443573909678223431532635530304596167757356482313846544040843750156442453834048892365608203358341339936806642573260519698227507890233143314184136362172943447228633205171582793910591569444344069731437464227263597622264252205735789346451822125779552983097636655223357542995207650378397230339564870441357059021155360341886811533150209887472610966553624574589782123112516600509858960328660351045346112122492313890956393855310327742069095762692360977634522836750976200403189353863269469394945049966181552957753996699464152304823487045824602954589818994542717036164203556179573974313662260104379116980094871432412407905597042286352434921611938432156862112955327074669037823436920360492982081473470185029359795344676361979730349445874691189766014111109450387654914502726828909980151300511538126599901231601657462208406748108494449325430356898231667964596174165373853536345431631198551511338264195519583302025060099719154959571416568757091294491077676353440321999885756503768173004859570350243208699423819983227718514951084745550901087260096124344389256548351012103890517132943963412269716497986825677303872988634915672250624754318441082394174935639118301114116317452988479302464233819910092247660827924269400204275216689655922348561480452141316122971201961859439210663935909402412106553872828235817005972575040638772552081226187767298039772156197170818225834315527135477005875443151401014547522414891090256046662851794732730373101265815625805136087736227210054122728934460517259932515388244305390396321201252953573803141789317082137353984315748546296180289416543225799381035457289282924172903963962238377231827319799169293060075859178058870336771371138021152543924703010428339917699211904435877087562666693017701476472686330446367865775279190228798733360854344661604451589770016554489475384715665014952778683662138506667153842912398912102857903580164695147616559760238338448133929510439111899292417349006202776415052052889878454997972004270731670445919008085384580092552811282439334431392389969128012854743755484423663094588265977145274948578315880251718766026755555895546565908761307388124210228369884313062243950653235380441742893738808061866638131733873658535931766589536843197793063851586381839133228667689509512441225934533916029120264014130527896937506788381359936273662728747283866748227355450709964746599209939925949252884081700934404128545818436326161022664612739820056711443356554516222362027402845276393838367469348873843568661438798967993938592800508060420920395838489718166864847122394342528261029752166086411770120384066604530421936961419651163863802191151674082388357121351784365767789172732695666995109839897707936924122945902541175962560760991012413871256227961350225472064652301427222633677287512659280429775908166460924518427212826190404081908204102456386405499919576943382316659147326122257990993537280545678095745423256850691613668111657625049311214821045922746466778375654206275747100918637792227261126845538171856628877056133423682934592580558864534923907608053920722087235822289657293255226388285770519349969334560891959714065729228816250499989955776310085555047163621427373098061522960758536549725574998088136850287837842210091910749053271713493185288643343122520637255101195297150105545525575135987078426329652292415643048819968959996296365814300624387533722471204408114136983345373059758770846813859210195967240501900724283085923557850713947210214063733510860118686431425992286480132641204831889819642358900786487822129846646235351222098253098484770370326014653897204830948690820776443274506328128644281076668104100381655153527358928960382627194938481627022528505216964172882298835087290673213099821449518955261018187822047062695061889833257686971594349204145975682684371135827027155278139144221193879345280133188367692676389273726340225072128097895548591561208880019954211385791387587347489018456502986316036140684130821985279763462775349550785594754553698982001885472528310797655125898647661495697732902206403262278668878797215547769370263643402989558200543257334090037267621496161228492551234711539675323072404887531318650334510372800867129215510178507561257683149944099849815307629163395092632796792895851253563969374848493164792218141301011688575791194459821183738943871019062603171857953453440070434127232998986466102217389387544865207566468542072906675076447295348712927747051729006028202338691014161486036332706694335282366722567546257775312086175277379734528553958192641296991983204517323202157992873675289775622384060794157263461585419790414402353899782544946575575590477634762025912135324747981209554885842912192980461366997781271133959788826491801437138809939410994574265031273804339777061110262000291765327155085827906015122161320698821309456223615449685097699810995938469516020423470030141523405326757955394956393463989082996195865766785208479703944941101853625006307712033207299027912011653047230591874668345249441929830944397402343638769829030394458464604359464292958333014045104760303009786079615338204129032885929139744087281667105089004642626303904869714368322616533412283440563873872373207214711088641246528378286388466216887764747251644524330603517241715840799721659182875567389994794644109198039786779333564063480017508904799524622923497551234376500756000113290941129949815538391574436554347632920996869768167386574642218556543822606027105561563502336441236917402653206556536585131135508906133278901708710867728520061712930744514928972739493877536915224382099395657931971058543221887304254204335912340355511393526128308470749422704205751469425029802968229802511495754898270723630259953977742340980443763436603858638801557859940425697320216144811376239572412943380552332889194597677941505927074658830888251055346157403095440331305147097394965868041931596599899459649807485283852907892014873810379645910081303344809971488999216513950757672628676109652099204158750238791751570891219005195488614679956374905200867000920135985369465435868068013534094599858391908601435466371105975114249592368832820895258547497905979365597619972920161306605481278329156473396237761306018100872543326896045845222684570895219312476194003394400480801543713315973222050698914087780104624669984122302207425752170290813199416384040227279796019429830832285865039021122830501557726688849196660306933482657270122270408000300759071981365785118083645870412686031963053230854947257087423794583648339385959407158971237835091151819553063071377677730706208241490896456755688160646512515515750059549986682437375708332085920926606964726881849402592289772993225613526012047262919203468608839789035166821088254009258584365619063009162033516530100189089132219806315199239105503870091373783224199068759787964034169629984871462343345557353616020715394777773075045265369387547514788255081855133429967806232029744851635085107981218994185082107392693777360906369543561222838363189366144758356740758870205955402114271191649936330133473625362407444515883961303501064686480144456533628994145403217075576301419603512906035886624086771625022339982408077644882267371876853911916833802487657834292749932617022915120966562335714342366352441181343519738022028881410471369078967286303807267133463323379493888356440416449331553529067334815723554539333904544151567655401597960018171786216359445948268238591745189819253921515042421752761341055482164414735522575086102218075490433836039721296727200225498701346696777367726253870934610005723301295699597228635263343280813716575919565765482978443843320209488131743036753731522100082249004346456372604736093413469865908829815100163163201518192454259324271565447483220857559256877223854084968039749490575768528457469804387256829103335987119822310938731961605845598328106912148718136959680527002907535951524510928704523360691988552002240317496674950153467644669182234734882072415600937880455065944484633087465251154576374247151504398173910645551633584251605240380677978694442297965108378160398220033519495557227914940547057625092591185135722421258859652832449257953813539342368805136700734266540751815533523023341303786467894638980528754097962667534737257870265411862061725779851806666105918113044476131968729790601473062334593959794325280859204822608467162583835120057613832617054849261191614178469415202491704837307043241627116972283258146960296465361078552435587524948193309613500079303038058612564820375367853288957225757481602057255336999673803129171669251528195601811932683688844909997252420603676514076194155639094704184547127792203996371332891761209935068326589620836531745968180460432182649238194797897476013576038977997412023252375583683674217525118519266293062106065178337160991813799239325440161371203574296746036799825639528612120633631871387357976834391490819239438872231029866133142865107591294635880642861861137602758484806516358485454369675565752139892173932420499787826114727568162643964953272775037803619276388858204799524640367055201282544293752608695878237142185713806417395895792096040634769827739464307407994517253686983482696535593848799713833114243812099911207583285663446611835998073154533576366023587488634701137060266797191259195632295857263616817303527475935091227828561141652346578915972149876326899712823403051906943807902321542982603369892470594010149956734168835789219247195368797257587815074897404227636648421847750019070311724218113854543831638673426996067158294239302168828198193494225236651189948398085924218474673016876821600354849051875767038866187316856437322051023501240762323674723337272830601371718569004556850602141898671260981964190541784837269273120727120725130922812163668645702226167663500143389046857521399103557907125679887369224324098591466837851870673842384495442490475626587203772712350956425565159642825764087110527737890641303072613615676142015701105361882008377358087631416935893823897215091210871368267644553656163409266496064633304382610710184175187380805939206388150554939296177768404493294749565580587274690975196485619553321144090709078264747171732935189971098071065893606976644523679080599956497164422256524479200360972630778314378310093138712682061565517663815679567030843301697006127614365161201730058514692750923766986210649613233836819437391144104571665311116486822386968577099094681391546360932831114360090268018302957669444738227428549402990172160713274631850177974056822498887927900752167854396125519196738936133966169765660194347962277240745185252769476607711936669696593838320013708003816547323337566824343947691902913365739635055492423798089761227187012288802298503954536753179070881079687485648458930612428824213889399913788956402024746159814084814841368225415758256858247183496726284036453137343689492830143620268043246954517515017406742548103428322137858505029192332489414146795441446494801604613191444514737782655762051450294594837396180624451716675423122649197025003458617763391194301787448124453029149196724394341143063564214954401650513389830094950946309988165057725342221438497439870407228585338628142479707316167448045816456790313993437458169141362977918221619245661752087016054030807705511903268489769529552078550780943257287112785083203192069065155700757440460774504621206268697033197458739110583856920289244157382417979018607584272991972062681639495190896632281387019106211778360746502583862614418152575245484851429303487119252211004979738376118033388248526407921142994635699993517538282806328290520924349966871707167712538162018090867053162667231209371202215711174553505118461061179139929999301338394032111336378276248108387591913269495857143989028901301804939540601744730803554793387179179780008808526065125130050066635862118174313093138977097225125310335557207732894767159240431431302006766845205964134899114001640441260141142677301566517683441209320827837824889593114646602213255994529195255529957258200928490779462182521970541341039578323706875001560564624586225288353757555234258137538868326819018033588304522645152881918594225473213478105973696041095920695741916230771614267453161041792111335546377128952179688309362288577680936007262998206344030644696460721064108802752339289729439449260248106143425570813416552138933587886840731682922744093933734747700501329596047265839752789434647902287741903587152277378220280328824548798213857397615073494290256348413833535376366205682090039240841018163473749880063365026268622584649047019826083305848592941580152031989513371996749250532036782838139673879815325587802238511277376196612256777575219480456964546297740518982834676450945938499490263560257017641233955060540105223641264471859003222795413166167114902105348271027049344596470010856804535198215270829338641934587090908302756194085595883603025282187482660637990029436940512516540366771582619155859048291893625252152137445333766130129462114355650284258461277435481250330330715664019902364571766088112461858506304823252570119951440158628563474355919678356439270885773684796871388140633319686178902019691836410718378522183432466526159414758105786345244669065834382343157176628897788251722392212775841964085473431594289155970305662549327046251487210996710806870463447215424753418095764649290970110698696919792414803361336231549115692627618154407451380960436562329205125698948412428663651148224788024900851919194747524654734414483931277009634677371804279085563782149191568322848157709473808449205424052913511001850319845601638405705130917967131672491342116860403707558640181401376388083803314398732438261696215464580767073305678567850662173358194049506661123662332167229661928632113771928862566032726060694652290104477141530376975875644453317206634165481253045719758353254113939689876232022425060054575479137384309807352230562832261390308051730360388449160887670081852632507940091659685939291361455550445888274251552087176780532261721502614871737870145039507410606206481678087664915610374893554009946208167931327679122031039528492760318047974266216936573261251218844109703417067303052468582473829198498068696633830071803644163672190524352818339515968382021809043581458357181125778002752599029611999116554777989774610718424324580322832185854288622709847699869838257749161859575135203728457273299347143882876916281373390189994215838978676984762628223839086032534735940532319808663697570979929106353121380283046507301715924934913734577846227799444304245796493473360152617569220225156108177998807315674155549396127394159038341459674740981200317484252575332673851015528265739644896817799609505202020168152406574868984941003313058749278951345894226036577635517531250569140492201583581315030712329780309609698046881251513600253789854967681094375720859532954443771432665475900806186104236397092827241583719113763940266520904290945793704242224561953715148206387159016806562212570839985522683937216850522977413186867377030792719292054367039283339219274186081319748306447777498249819050685317999770350148215982108618670654689156560757289510839006879406832668992868801829689546099716078028518017193015957044325895157454217912535924520857674127142968556978526202329247699240347144510105647166829637525064176327644245004487935744779941585745507822608258756938808958269922343189816650518535358684514597008140274996227086357203247374234333633284134205726006577614124789651565932492741135130292779829075013110823527834234122953535349881428082340319799405477166978458763978255511033870120612570119065582994491533378596910551138312734159035267527651703162976251950328069022969425170937128434610647936500700292461079962238321915585785654139540902344043100477530422670581155051971152329403876947819025075260669049541146191538070195870273380402162699276672360763277062927612497627713053462024671697276165533038087343599275499882223228907687268088579459804117924063145458379432810854312203449692494689135251638939788282890476153557970092483255280745279890009745250943356736806276555365488260361461634258398471746769996013733147000408706898393631835536596148382007875503779625833978437555684991164179253572438824301673020378837218343584705988477729028749268738848563012980985037484010439096963308140063533875257921838415162321761296583923361554191262542006353525989311552430924930108286511400420807731948776352045263290431357771692471423433380696263402329841657902668351304880429339626043383700567443347871521074683877328341837072545118318512197581542529982540748872540106210577111632321490573395677020247024793818415228245438836078602541246069079501450935405444702141933668346023584842270510811393043085805254855946897496999011579664914460075018924606815744036836290568130796023155664303266389239423991110386236557235846806024307711383582329072632042277672058482573420367281299363464342195734573543814957661441325129497448857323935193023024668670372256597961128637648873076559377566912610567764858455863420913241825892098846775363122370849562584011700057104290277778494199406301425143028713120488931948599699319221371982889461821375721298912684885622265844816357673585383985542715809830379337452096556261631927498198948246862888475024468075921171146822824178676758620889545059678749917171374690869867085532743301858474322395517096917518021092216191528475098632887231668177955774929072532054778849725273016059316575350443820071687197516146543846912977857028077041331060550958372773621606459111635842913876532982216263623779732921212463412142748164870783919235027573684685085541479451277618414303051474540201763510224291685065460364319503168758558812237095394460876035047320994137836693121267306457741194548977790504745179147932157895758595895097229486708810427294988598423574089911979939099906716840684136146249145691551612815449408755695523127414801708383559805761807938497973316290410101475713578461891752465560833290798845017883450694865239570784095841465687544656014135084868833099512675538464877760863597506472687664643973671979818331211056601773821145468178191751984719880365146473515763460788526582958864111751498275131390452115489541733517763232964970583667743192633314956467869072956876289495055876249254022587113764501409236590612916744573741776983307974436855543995642278627404745104050909491849399445641750418748903588105220848647259043229475722835090131262968599659659605023411928479995095608679415368206619601960543905554589754333407536975325643452206742206474708846124069357534774982494463131329062558733259173325767452788487187596442365681260961604100779213766155266204524389450236469167853331273959723145971540438527915762909424703135305384494363632918632847483802769224744337831283857925714960349112698348349412882420459905095117901150262862824826391192316627155309206292377057012868835016586709367646377358725134410919718617444739537355288348839634919944394280875821758814196309434226216449533435484347737227507793004874031716438529332709654823334194967762305656738485005985233169635132162334758912936787067546525544640592625037447108015739789166366676210936709904212689825772699041338188723271604251037991732979701898118106459810788086923291307635482065467924682592432904527877639959911991595388759601563672482075123198595189201923461932167487274808726587632785808389762104697526638468113379281667832115286227083300836932559765078185766026599104281494617720035022832280442636871636667155716080826343137266665133153061069137391563873615257890898093849990935713649103098562515864211974211169587047115867920029010734971231858395329148781957249136571244752110636263352989301871329396048060541940390735566711166933028468733301123404208097675899182542044872863581079073141291003977241046994261191377258033772161486250907633561286782503425501307795179467431581763224771379477371010721419286853746268337269845826788001658374766277297165803101864020916995740146379029058220884094692597737654879366029523413418041085459457459358955157935784406234661500863411421852549360617879750192124891397563238476707486694207553574976256435243934904380436018735036826338128236471881011771638462779190481392505226886984228448391548042304095802037195185161775462500496231458522057682453315738363795503726098053394501746635632672897066934277245820516293797963722125464551875905438500694976568939925395022373822753513941091630369876590708956479642459553324160740146702614057826009948993300702066734233637650231818017286078823557485148097193378565851972196839132970250997810036059404887367975473158081191957016300584286527235802024833233668523737452603079832859490726143940196628051260184981593006340044027442497077913513268422438665554091087836751450745879654640230219165077321158046379204043180199872166125574064929999074410220125043952802152118980911721794914682607038044130583770366168118679884393445333970504738881563370937617479752803174266955495147394816198489190662241991636076930752435501068603383224511412872558498387399009783959986509069466368764261900213041153988080147266149625650182498803741389238261214325214543103962174298994837907599483051852104272847251650331945027581877678943817772556741286519167647071674489875166150974753873061234101012898456112387114933305534223230620535281003735724555992775227475497690125844457134556651240407196710968304104049886935575271932625656241156075388777882113339202463452293274425630026389944536023119953840530556098961573540785447561792530768534799703929269992661973251929458623077990741241082889707106209786482337049410094090693081696977822216175612685609774800760229171579022530455262767916989648179890355224637335293815227782235898012453647732317621064378753511643710043549551720487863419709307391627671813957328195623610310695439794513753587498038461083842853459961954140906899565734129739640395552212165571026617738063913881349178841043676628845043293464698364315450066245097587208388590216455767211103370982861277548292106382686692983091607128609453080693395494363865987903659171403611969171568829419460334546704150837674378101736332975321224990579760637296883349697997959341637306534670836098150327615364126425082373357656991687054898949736715743021531982395861678406438503841256184052509955853500560651466350806999725681867628756836491340871440841979684870522788978954545872052181788533695710046347958619946811128892925324934125018847450357147490793322458314667394803994744759482071517538776102215250498809213962279663603503004821737776523270797062315165983061842337939260348044051099049758786958399183006566527565162702641206113685036363108656236087130997599638596845332472990498445363160456195212197975923869878457510515862427077066658131020807396723164604560079208596041199434327937444160253713978223309494876548958112013983708595217580692131736417574955362049995929982552887068143071564881672712354200630376115503162908874956768144350204263584239556658392281534511040022383826871794808363081604841813971048486724982268603858670815890400494610542032747154909682594657076144108027860077684237797250086841595131029329149653722752703046665100227520374176795037998723423816391248869962391501500063663981842694786710912902607685540898802377793092561352471757841874477887354249230178182985328294089116012040622636427398949706426508770467497208797500416802985690741352576140807973057188964317517776307145048289822659245242434532387270866197607218094932275611562481739440815984376667561228170843786496715897709215588833847776842432301446466546741495442560042423627340553938514268099739223509191098634872680829807240493505948547989440204053359385647728490199954043416193677555933445516977606642116657390953839425544317294326049249158654656268534762035303996614631233786406434817954919327662706431936945719404327215026849498631158087114178043230094304661145608731161538560878975065832608606386319780850589640307994073800532661529843534274058931025202325158950334160184356059790830022022845323403931446357398828839499588591654536861433872997050698565666563843497742527404421803942947106074961411589302807143082967054100602431342470099237228573332299145207893864738153379845860887816209967310714547370000443612743676435357127595757472353926629714122996716928296057641495100901441622503348129238705508855739026998325310632041066003901872129826403979974570806077375025195991476005624680903310731657362893811176521006722179516624704154617422934979283361577943259865399434995587837115834366314803281269217468597186810111006779287104241602593312664879100187232707416577446734491125606354779960819213033264380272421663826349644223264305494817745022061757799347596127945096754126260990371803818688989060895985236623631142738584823037529738123630702570009846545676086741720608809923642795100879256669748373273905453890993427851172679690167539024781724438631210337846534902533334547484756861161111750337316868741781584170670495430790609328568656174394914713436084376009864955858175079071439647298516725784400558850474319273842727292756815450685968364976066422166230166741504125712296626189151487238631116433625390832786087378831534692861887223517893840535751519957410131345231698924517502519704197670212599100566133872586444725901722834408909189791107312221855692331989891795104989742470316116667060402337425112681154827662049789581910725132088425182331771022924495546135355325494554652728253237456009035676441243913457120708858659882761260135499439270931770453888036100154841284123050330621832132873360779113468283523350262252131344936466860559656930552865711610559666594511545203379708595677823286813048719187161135688360455582514761826211528516067795499427167187003454110385274183980519242249823497827857746180141991248860353941566952126939961794476859741562721399374866032945478592710846248441509923031026442364143425023118535021232273638043432205247283580571867065467760555302344466238218649075619194778797436651845105643248491506826523948572902036271429900622781050887580001194396506223996893760704745093038549064815609162142754340550976661530982946464443469277395016193999121923415996344789985983462931774219010410186932063822833930753233118829640046725461019443202230591769019203779095661309516976678598810469847680985269413597820019471648162597911044235915994911672933053848084213704781360728429113903629471397634967451749597686500510191389506804839418840610660471976469937416181788916052423552319644598386372322757856388593817078544053028379517350839227538901706638969928364574799998029906550710454243784856349634685702958956659982633774330259920455923134969692660254089851198819980409846034689343008797158131818821956384579437999667282091376214139099383848614178043339821756072695787385750476521227309405564739309038304217714861369538671161446509587430629363945273999944375932556684853365650086870113588927997116791897123488816789074159131877153241292652827084741082783235215020679606521458416450149182264373265158049643775336596666584662863734629093687753738126661212907638489523253829467810615459932228030982578809443828599723805231830988250408197488994084585488693699417478502885695785206362563421333370088473987793625534869662575647374868081661515487662416165911188496795371237387712375059473838463284335633574600081097161962188511926686706743805052058392613501151117777523803680640923059989791371701811882140945764458848260052539103104804671664089855224855308594559747827081054990891905068235043509952820957954768725498986491772084653554790225729630330904131281827647510383085841402173532442765340206387557694559247235380190610724980484815035001152312659928035303851702293650875446678784857621667001039631608848412156643775980804264815669936407647527790575717216309131894993071357070819144077867867556456437013012940470721726416324402995565253717237210332135022881981891960565843281398382523687806278821948378518881836856310340012107962460173191489077687885062861703015790419704656740392177671018369155194862577920261457081640551583952758292326342337312033014359423197820664170342341055566152958268686046419348720337184040402130792208800910672818519822383620990171992037280715174773351857299928092879189971103776854736368819500545031989448654116782663452060749346610936030283534771264211603458139697265351862284227316553623278468318800870407815361394946851092540987117376808476564418430562089808421320118868711901631519390170040200747241774197479939510550007308454698658599095493912388901108228237341093686934130686486461429953600876860278636886761809175143720344809413997382134243163168861168441640129964890671171667010072476952688673952892247684172047193538531395657410721324130984889212263153392848855577493598938932214725143763898559729953442298882291189191393536292084177954741148101496425957126712582282927004664158043769875760137257516251564570744147971076815526893869888312062176791600966721802315051188128802222257039412598194266443583911256378738465527845525068031602291307296443032679056174136422351270866140791230298369182474680688301386544236086809293315608126470487237547202139836815902198467832019215730956904714328568773699916599419939161497593623805776461712453380904477994737285055906645501446274659372436152782569415324904681818923385401100133248279302212075386833875637998385024949036838834069012094382462765231787764674836265202056852373888619073428256355228533253660693706107718439492626574755252988941333719104961992295998189408711458828297692787641150869610244537328771045227140160835135621752106887610056667732847246124691051680998745161339566214055050688150003521767692473836977757340080912260670925453680383754036547016867594848030093098882082867483373216216197229615776447622139130459332062602877696609416096594678692602320701498065244019461420729003637193441125072550691010358175818327927020392205212766647797829460239338820671825770152107430341923520796112404451428249329998110192297203452724034205410228652028625354336451099982952643191134409474896473677374287590089168417174264704897468769822808025003860634905426662401089228581909272300993467020706758744841616317053907012492685439024729853686017927408823644565634517033780700805233540634142591256609912255408983574765572724438851275875565680390536694390404712621604535361099164497035724372119404786801083896605376777036479899763874934671010961491664089702305455889216279453895375671080315909090648930425985426353647142122235269157468959087738753751069120531814063018396891069688302275193295494355927727911605600611583180131362145296475169472555679254904779882593605280746368068106312878261233134825149067712138918597077760515567723438900918220846979110340506072989363575660625808176302024230437936609281708583283931516829160424564320194751953314464326261482930012610896078090034313131556624744705032527686979919986331318319699187508022835665350321299544715728573941696151621849175429539160583264452857100444271685124432796665668491847586869025214799903672417360131857965966307905867286657854301980280087415302360001524259947046488669905994015305322230634595916552159700329154166414897924228163366543759358701835844694398298369606403830562630096911678425205995644862872972838110292672916439766033622393214770836899958500143151309810931887529086123268902002066416874571234053112458679755559956342890736277845680334858635997966017368821064012491614330773461776562774268918076970340804061157389307960139584109059386319211136137142274864450927389869518281517110417752409024488818898103856422405443584651061386424367552933892018065010275117853497215929164006057694772143671212347582931643088322864828597536591431526781488106788733370036305730200072340941305794633787619663750919882656242466873064394340785707579968004444772683769235814187634428897707715129800130185002148346217208414317041669246133762801286118884243195495005443321371083516626764453629293511441462789162861423010386454751736436093272948787913697390313721425940829558410612741201610881751337214006871701264938272686443328464030935696071712090749211943933420623871364050678791592196711495977667007884365050342991785906779361802441402212524342577518492139825675307919529318987502131389342211406840419972586996559346857799097047883842699764639958239542196215069433344622526960707816935899854437729149078301785591639597313266121406175312406563160903181557391710410662120372300629458715988329062012201247699672244565268226373905977290992692722212989626686405635295455917583238438503140753629759471783873403104389668634432870335649709478690841215223549342646625163239666508517211076561914287162684155621237351334935213806675326767819978933370483410325301654741237382077650145614227656844989011895508060665735455793760570455926837547388327908461631511243386820595770905725262848069971275308446139288680738906929815277578552210277841092636846127889939084535639280966076221187921990242140415306921353467953915951610259197424112933674488820037987229254722974333141124435824006808281791638658462530279555825456786500507452942117480860784416216626286264984967953486273949290711832792415656819007549840523453268062354017544906513577478220288911276703597361745772279663865097637740965647452136342922397487100640418711107654352862769192270368736305492432625411631139510984301473878356391041831795676110043680431299971907853996530054543031736698802360094018695639758880520069116084197340376092421538525981911447458894907055749116809798091372900689803590961961245716431593625259609149739315250675256580990048183271560184484591804525671533503202686654606462540958897754678609981758389849376605977271503820955663007086014379519646059088423491292804250625090026957145080425677459001208671742404849973889512907279649035669937690456333871638489175022941161536045517181899027456422682413758334430310802630098444241203815807930272980193962317384624416380456511562224291704272311596953838713756184999075183702041788726337324793632150433131530753879647589442542058574310010875533443726053284585477270058914842483039138790407220501826821095947079669203279552455059999113241637763794138963035667581253160460091721020642962341688235350405071697873645614754532130711666634157753265447896022139009418229544195304899389772099150177681521887844555952914060385816028703507814170584829861145770294425091835683682906799770195678425334630293983994053366926398662973322965349841926969374687451419306464956115940806068074853123220314303633283063719033278917223947878055092702955963920499159913320315240669199894715681071184293346235195950826431327330505759699234705549682090818035702661226039845537503351435328997938451138319007016721107480804718223917393525735878552869034882357492530995636963072892595935667046104939852299221150868913357821582410023616963121247462276414370707231586897555762473481282056278075876167753934271304884307800977298036060930901897825997522123412096834555215710596746261789615712802940382205247388118463331861730411498026232826311809846312977469957966671988129851402700337920253929815874285043097887804248144029454144331580046830764679583085665656763458944221189097966128670541494854774973225974821095987464968080633740880196503273886168236873152721669961944528522908210966464236369373860127559730006121545090697372161760395969433717693953928532855766231008063561265438566024540203326117719087035115940138782132749635134799928181254019594131424243257581946419706352130594135815244061670594048024330294684208383023461136542920388446956140692600360155823081549102885866896017061947426060882014171083682936140437404545690966952724218467772579231326277226416050092527973513040749339904181625413634175212766723775841889715684675066218125502276737413269185009881339593507952953606058267639191713827332431175855378710462378387380497987761509987752581853272044142487380798790057685785660632291261315859938691671715168268205327302925691125446078701787656128725939497504442456971821514639555477690594182978621477577527941547775612368070408122642324599428765788105594763896804433532468748565046541318339547514953836734908803082413770078296775767364479825824566863150372376894993166677261878212060938240950323371159918844548841441307583274433668596833071992621592622453376782443813798909488892897989880471414357975445618128321324760618463432492727785353631224423286102317981952714895229973951888030168893638570147683778695264223516909152441206272183814857832140791845775981874389069065337836113774890668945396255199897072238466351178010832536960465139775489396520602135983185249540361454572567956945344724851857084148260059388420375291744909664175150696979317362836771064954757404263369718237342923754520439862651499525583980318541879330291829954237252395513566351244946310158562349708578532612421834210603664568853379138596595284894643827141722377332825569796551110046621049002264744333822938491090445326580483476066047023896377605072269601409591672433025490654240094971187639601044133729484728833237943422698280026029697205224928828922175026589651016507389548972313580394269560610102017931201720920253972213127730596180172549791332826110289036558353026401270451273914320665814254364078551541540851570987762051739162795277000670985072164736180989144303647923063390965894770498405112695604093732882883226629588642137474060927005149402933392429684873007920337236488428279344365246108267671083220944147283899280253840467461738657927941354785853738671200394030990280032218502662640894556702951195858956671960587985192013413091507121831868744511729326132799659083625741965917398406581886460812227019749570159889554736472758514533759663457690305020219023033948761355327631573970427214046707720452669094952750933460088735171603451003997852526916600998560951839473818269814529901756150556318602878716453683730930065996382020604372388302813695700305748470744459473191623070147233970318986408294914090180309394443794888088302223611792537117674070299753958269666151191413131749891796321683183203042270103336131311187458432827077450198090603132476281699280029404124962016873436208209353522540384846444382337912365237386156625487396780712712079653492943583853154644505704249315202568761357659808526945774645485976609768968369891812545996442834428117221159849310879269471393974004060015960679219168878336752982013511033167133995399090283608409620397886634304412697826091892549077162016830210012402706710279376331554086860375595175868893407680092921081747145535649765050434203980682382964311120797349645257018364947954989810615473500700363833099119354928109863544429872220542814549312411226302286151482740053959256302283466467968379361075700555920796747065470614650181444683058711966871904607228009323787314409407562998223318494834661172774511576269815688726545589722107843093440946731842780685532793118768356514979392687923263924245610285901753723783088851132631402692361904710477901827966414597020524177392788911454941996680767173048681696066019245322843499763547158655724924704809093959941328219067757457508237386937249324760155915944823115978737478053914294563415046372346732583199119788523169909004587533247895787397801353300585452612791979279859867196576382363548776006874290729930629132653305724375576885409124886150619302962602372942090633682340772526536161202201276447220054330113145513821455336116060130773969672970457001631881816868863957243010484271736923910244424517363142112585752921020066450862560917160229430392626046785486968687761595700551295979211314170363809275489999397519323047407536822324610561328263614437779692891556567547410810559646444147417880119512482816519540820283242065093201458837033856375095631622391590815595987814782493392309350641208495824716566933758274507683013512022565105857631589797676902618204214629160465672690671813312341881951922956564306937089679467158430725583133582631031084966896422232904521408018074360400710566682155871451252123973471809458680253790760614217082919842435273024247841178727556479807662742878943157098390834849609084901969669490846860545775734388914525675125635919527313505906260300939635398178354051949313984356768324393014632641844563168936337701711335680303830529357354318452911534375018887204034588005169162560047177090084916276382706005869774887613966678461345353206973855648961283283125374777793630935300093787824447316938799137551742464333129943829361548033000470453637439762399084294646716848556377143093668816152481900303235693946106183432352504228834911500416468937805549381578892255169871342134060532784361479529394539030916321268905867917873033143456109479030863591750009210484568253216284740138837909999046319467852733720264973904313182787311697498563759285979834665556413398481467684732130358560031127058841227235971586408104471137375293164258791342191167631920811814038242503309417627420805145571057899034476280546011596478312886385417495486686831536327939937503824906069210835662479553383634304097332672637683161932556266025161807243666523753120893649218486060327738325760189455933911525598997137846892115901342177648889552207643638169560063260735592164461382881267147008652133314173590899012218201691369283225032295323321802574698321383054777957109896230803645942753184275706859692555484579275209832159502995106560549037174802118128509013073773204625188329325612718252941391912619580089079872272843775218807273253986907584501028067013792400410820753082926274825433920106600541966267582179714540087487439745712669789863278540996888529032060032504126396975364339053905924289019146272711398443783791125127037842049722243832548370619773308589981156036783524245788307929882370337916820005550710090739303701761789497882306221910927726578350471711388687576370778130122695205685738731563294929528818964270828647918764466420088933062046518632118645134779021735263426249367932205550630719226814125220067309016743006017589673277415015740595204222750922631104627521421771534388017064757777906982009113226045981396467404815766867388534569060122566523579679847872741002206969287238564580232914167172853437976472369697771941146632470996761939100169011706183497519652897649462638524942473574903616917808130581921755107237412329603134327700209363064579288378250773702742345050442789133953611007253355222119268881053458422349179872124815768224975634848419525178949425836664481785234011191249096312362491549766041124438406679597317861691743701411526954475268255934145505286851621413858921930799669376156409514931903604768839230735971729640591503989176763329960467262695351154276114908147084030012389783512143102637961593933627176957567435822095931395362880421890124788617606323172723827870612959539897719925158392507092256513661843085696819138228767506334641341526822433619585091212350250325839950785283165039676799381364735795618967614755829056402757285217923044423405449602883433381141085658894221468779126326253781536767832735405165910288408382707823036979143930124966083352311351729108079127048354917997532394286116532748338977456395274494488967283351538358851656804253270517872741289093030667040262914805622600847419994202628746352452414039798662161378989600310647152611202040717579796220053688590057933875976981562191825032483599204307585567763707083350738190530800160941425347740645540268069688110924268865123241328087289241645777039332818258711651230085288509918661246009242074170095992061026931213942046319247447914469362106284448562227041254519425505343987638710381605064459498582965097355685870042417867163757941853181370362442460180702600317134563221194731465405512567845946492813605387123344353144828710217942490489583845681530476472760595734312664009514630486704789340633269613912347507100180634683097219525752191673377605464079185949040254255440529448177013929051413568710540512482320591340088899027794501522261297662094062635417690333986747957035227910397898534767837783472254915625235421594991647521417681758372317230507424046930493909284189919000096190435861910107219264692497147334232193485779583992664042412610687591028195608940203875253659065090440927625208979249041876871454863530047163411356611488629550818008868493162704988508735236267101723252809152889411430362157614946191858023311279045048972231496981111817829156383302247074578569905112257154325954300403569178912651894997569443235947043335940138546704970535917447224376993441757922434861935940247784490093296720901028050847924924190434841870033703342840465179079249983035689944716915516093706388014199974569566624262062461142409867290715113044614648967021774583755128654838451689828319781253062088840861083276741360571795787725242973559047529914271602482484058705336470143894117084807968024888912444177954739468546288767043583151983196802449525709864806504933501664521436296687945155208471654989388892495315283735031384277746747050671977028767964733808853625772253169258973546659876033339705457017644304175355093259194882243289102155771238277032044401837261043825731170618167909829827004833668965625309406017648290335141080830013558058101405009297635609817567727899971223228226123735936686824931568484174000444915500109051601472901924220693378905812502554203654615711458732818634478366926066668446395740860004538709066244442203594970409643293885571110383763683613069715103868209411904167687521144574895346430508081718227519029576901091146738872726963112686669010994619852216671920470828348354994335523070640977809262834292478312448870166592228766730250386331806368943267238588370757726592268320686003704510298119675601270710179257987479551826678249278457160316035454046005003060392211001412098894872233042909259803024965274425314075371179415706788370605162890494576073246735963108915666849913841948136773998420595602213308249909780929911979145753254079290656507908080367621301477805584684033789849282104046557120633575031210576819048072753128562281063591927773080018034508750659623657714811602007789661606187458458210244350716621872768910525244433159022784241902666351655645281824048555176644982053811895306877992251753703755103843859500294335154616653828272841043594564738801462768007394615596616423525088678540544697539879589349177434302083797278840406160508179581626528074515596944144849936039728052361961793693659794684370308350196920009084493572258686658960832486129683688588089267680266152016094492549743968626806506387335152550007683888345778697305594875219656922349885907225970006676925168244549309881084191332258415196720029333277905775414459681309132761996789075842880043062923153728772799800962995140095998935433467378569903137815460177042132374196803911817065909945740257314803623206384370109988772543321300500770556156053508696013723508368190410411424191426630471853670394595055154895755422500925013403111158305395717397211236982729778284365872964025346317664096576681212322550290193000891389413143878009325046064023047334754825447661710201292728799718220632077199163714525799170344526533263255497896701116285332571047508790341713688587195510624876782223487178821950759245260427923478197488827157830220670032485242536216107843645678457318851864052617785256629262845038254435215710615753095753648335549153529147314946577106454006673505550841597713547224537481250938384348742628863216217881282200617932976054271828925301428175285023405375927887969524325917257716380945582459332689002880365031666787893182950213098138775109182298472946489132362510889977787005978115348744026141610645312570417625103281004170856717988596955714199362263741384844488312652757020132559139559038279827781810071077962155738313826433560906338180127918145355242805747074896872905614412171182000183784238961128421372756647849962348666878919071247062546641330791733717943056143915588884349923175290565740040743781589923894322233513433442207164427336772643487578214196880788659300294910824970534428474274001291695511938481315419249551754464944406722765507799714600946307932591477488998451858795763627308406410177152608908095559785538567383786067713202138093351188565854302843607906020944923215516016642389970676237681927117000654400675182315729928367127410824037372642853455982443432098052311910940843453380043732212159612203764791030487520622278049411796561266909534737410207898935050197931066606505209364609971734182172321339424787144671564170510901475414076864767629402832800444189837211295780578720192613934519324929447787839869369417608485469216821837117450287962881083457496369703274622487560974410675230066226609357355579058676460624520441455120771750982668606593517583222495108614438514333963453601465546350688271733973443188965045165498381664844417163374563834568937367027337675739223480269457787124020922518473365817745260119907083348068452696145511670434225672986855898185941361822908616542961300976668873385633407722357622104321626734574895011585116008749004852661506737412995416301106637260423366704492245307926141596248532098616682273481806847890702664605630986773779555949880161068563936092380523307605712785202800964221939391079057352537271021540941668195424291287743577244548041396663385347873807977105629478727285438868476321248169075470511955567392860053027648955310129203195625102149714352509391993070819954541617803499234874274621145337919499924609069646860887526314206830608306720258562577549934873147200209632037665500026301874741423024078421672756668540779627149331595045769141210000908726848687918405763341251910710094103598418286121181080065286013627867998401066129529759030406738635588629438570025239071339408939104861776563834311761321054362400626735002786269000278363948206128163321444875333907696376638309528575319453606376004483077835582933304082359096334207278075068301508022068799438444855611310803530964557831175271158487427483824115040969241054411181993975729879484256916305075802198642695561702458258745991741010567828946246694066011053125314549735913843662681256701999690056622161581443748540686732067470480875125044797077557021013536856481814431547014718328652023425036995714451373542754669908744432289499427609812846267996900954943747155497597996549087212380175916067083136198538381373160205995126364200214729277217852829068299592379506444454051137767735497209982903016221511222966040015411532941980359018458213093154721154485766137104529296488963770747968414350186794385725385048048434030229321799223245426365575669234595206289899747864710642529042006171256799656862980516925988071590754308125419935950334792113289951006690983615131061630730526805369301605342942461875390308039679651050063451469496782758889366726149084147889999096074948636614625098287432431528957717889770715574261039169764847010194789202957096685878352118512205176640910357493310432455222471593545720417546864072041221080723034658328627882824507529583619403111240923755902159667739216842249184511951258299945888557452499964850527243315437387855997629274821758229428344073084854346694663151154838248583134924379987681683410705475471393519329246238585297357693330990003587901509055520149688532286164218906852062773174116823296522940183695484367800500700987414153095328895090656103629614618256955572687030357694743445959514746538493253158149437534925774128267471531054813878826124687722514675624321560067754490627208431741949848289592010709980329313098867466680157382591359278402577307078412129605157105679063658245457207001719853198261608530724769109837347804334982626272017660075104180838194442414992754933951489531778535144305779539142651359614774147146192883955081860807780235135434969436942240389979103071241809336210889497072815623814302669048889509533573738160678963463279580154369820397093353294944652118620877498847523174526459046887764789323309456877668877202357236244734987795332188745256445043517118344748367442371544017112264804388253931214575009269336812988232293245025696008900843212922833616944723867984533787677421391475791489281745757978184175464705215459056822382966686790030288819659433786302502719948076427755533741075143509265352628353676350922981712625369528241242651174584305269414487359955593247422791364279368269887436122074996171916636087173493736104895593670192421394170695381192136555593265126676415699750075663995638581230145425238622590381867660425449882816307755274079150350240031157364759264417044483242081172478911316656495118691267979074763732866087048948613508321806518487500929205643096083942646131937981816668554750849511418319546496396725454159552761675510028437292162229151847801911066610997037318555513460571347555103134638280047579664668869688439566457541479779343048616084138665183932362881869758975833141804816005517202875495685969274859863732279601446579307982289612472410154910743555187897604192499905932977376539501830196133667376405427952669304229270246742521507300143332818346286936649992152208037695948312101535272470641703784569725930183530173086644595142615470121000989911979796526443439991520322248149732360803258805502593947091705307176266842915684822113062555112567073982509732325397073410287013048209495728406682768317193672239177213986095992147954033266619642110255907464817674945283238097815911224358962072002941938727617538449247661743661579892250034570958470053030242874657973978607269975703513369018482793079473490290542272372727910892708065549793416137266061215768617170608799472697895111362333961358533877685373790827189254953935380484798378791238357689870804834738241159076042494172583061560787980630842605156226874848898429449009290441013483695118563603899531678179914790259689514723821036852458607655837631563759034169911451822903503344224222204971502641103265314804585068593147518114830849842163154993186523611698072956506860554021838717509549629776303700706491768209225917886927310808338711100693919735806063400612230767409895886918794636741299508932124113721912141913644620008426231867857271344901817112247967817824994622069919081060450353802643885191955430478851804828422546959341895943529797242750535078396408543441642834405686379154695151357290694789558782050084333553355845154451007410663299581224844893323673240095175055929257802026775479573479934862183366253937084856847713971887836807631735630392907621070322615775942599914166242634892235645697119750867868357629377396278506783403180273882952180579097101290100375597021622361061146006020217852814041575112625603337640345784169238632798757608708108116170624159429407761415315568651820031460760280528507553191843311971371934278393665055954725231851684547672146069455736471890951371097773170905262481396044986674492365059461452972124688643840051683089218199370948891779305034977393330387691705248124322931858813180139626626335563425804411393431084757531322394359014673788727730983687739413153672633881015297885743349028971083650379983048856111090178344831885298244982188383883601546753743283923168602679151766285541217590074416600152227127162861581720908287768839608856355303466247820800784698168859648501914676119750349691318623919896857136949486564848197327334799504247713758297232035481263383051043662041278572817978817847005432019589029013150600391130758706930239399411766215018077728765324000025863432844380475589889230357786876964871728441923774091320892568869637687201467371237031579491723440723487302110143426928747601408410867890042030171741488695472643562810204477820825742245076670678297447409889176921432350990039748666654016461781429965725069074145146691635142929179961753010936780096906896594986032512552617596363467865264653378816496620598083169022760787508637561601426948263529356338300203023482895188445640839486663159365500213304155749586543303116609769552070525417644350361410332429295686529878839035910814299905057922076414731749233123399004935926241038538676548191442434956119866471224843263363246678338930051907829079707186316574486181454798349207992419818846918698670521912027669562690015691128706990072640688591482959549024581506269350931925994487429443589141543489745804963873780141327133404887064246483537546993387529047702469660265917295862415357228004689331677684236364252480228519003617584939304482289733195995590239038069267802037150153554890134751727123678077468561762944013908116092644351571467579342813241842489384548319610880933104308532726709941427289339672199267787702870564217039830747790861094165903641735649436216554785176329595117790696166641128952796989639865355258700023266585493100319772166820369697547990973896915361278725476112139925436321974264912259090469644315035382900222590445983692163275277052842161875737789790927298511320150557674432486659002357131811488128056517326220872194070404223735637442772790683807614672047278779216063938806600325361706383902542156825055231162663022232393631195319336657413586280874453971445123376400559057438329939444634445212279137212671029225058984709342699182157061057252521529646481343231701081337202762999559848956326058717401757259502734065125902512949602785694995014019331258623750973431234497218230658197160623542768762218805582544779355381966108114052709636728495332002458217263028516122542643109211588295563783870849805187075936668238692120176670942783474074109272646127381825095592183053438118531527186103810825810421020887580357787351194326242045434571541078518615835408541788078536489958703582040778846178593223638686427661131744928221274401194284337069164733099205480922091546875863315277012783287886382785077948283754098609772150190949061615952155989069660329673157244322575668853251704212976778720762498086688275308800001797713259374851257673678024803539900225070919861708277045810517092951673699856794490722295005716420013566577935210935669246437638583801415507498640671296908424374753095688575633154029939378743316572903813850947615378106891695958869683166715267707906635375533737702838910124142807513066002833054199982049199772870855629786784665174991729981798125555919033550556283076104617098162799028055061642369304626137536288655424142325011634016847971882701494204061487483885849409363661982858799781077633893429937204256147435044146550540338512669586925247450606354732670327691408456972737328136853838146589672954702544798353352266007178802584975129341754627880998430787316848929410263921450687959799127265319813646615224035448727163083438261473925126870879312411083085754297127864885845543803556964165221654799011848599188163145909202918708183954998131029357319749323628534752877352824344318340192149252152135910021034639419657636706352100040435701341307403441309870737631878626231972355984551700810737957505542560055405160200488938640788697709681543132306780091585714662852469111244136461290954847217884404353278214183640113575156713010263567325321165980337018981668780429394883431041020681296878840505695453528247376806933768463712326883578978299853821138584998156541850264513229373217166858574587682702371067329483228063932066198178661450428986147597420661848461339356969349811876062533784010356262798787074580980263949741753940720734111556911241445792228168459189242499849275816691162322382406721916052508007167209912609461415571328095738598432276864248002186641293221696114723109403754473591262394416913666199366620067039454309720115835962628962101762009637215168513106005521016621803146436693638099403396431353426544388461905009672223634999686688609018727574734751630453947215896985214501870837804585672893461445656950119679927219938450307115338893243056194673180777308153475855216636100468317483873307754912057745098225996414170877286606190098039063614295265853949230485140758540277443054918537110755955846874568568254589456507781870853941876661887974614189714541962384042645609939244094326899887058943815888886022263277754558065468031777844559691647000641690252809237353546923302107233233823585103493375764507132259483067781660520669689532868127162597634652237143048039822039528806243784440580661616936349318533586024312108566677192593718295539286676513521577189834144995142638727285101334902337007848747168733526399198410953030326593102775025524633954676062802752012820553939577315585561144994608668342695997547161437732089871861273352196895864164217491252256495627898431424281499576555877519390535172945463254499704618196420573182674202761618930926471832410464778312274741629823260657405525980206179995067928472240420774299892083489688209334622268011946256663600247566045588001727650491763310257424904871761598140781916900783291259424310220508810772273396545411204012439504247141390323621116084732071017554719514364578578172822995968187059963133842556522248653438048334734612946899729522594542265602096276081060028243126891033625733970907397027539490821414438717189100666522728407839585883651011336008106194311204233020107357950546340127454349009324791840056198377243736603036405232199782590363259750250819689440273003615261564750750192195873717103373013192927042848329504071813687431705826529278217962901201705046992176490217754590740580705629055218000935296728053364645039072771515618876042376630549423963175765139415040987850527861501400877745595286596432081996715610519912961762443009433590959438081721109708217500149692030816870257470546049687481098310510107327234219556420317766848280032736945760867412799243425477128432662971835389883754509587551183380923035850712020149662136099569410006915622637350769877085127643784398839065366678206830690396960382384045449138794667006780704726313621288101132506476561374675139739411970521671057662191545851095737843617011752486311609437006773602655507978480472049817695922704460113967832701815701765228042953776539913532938695105239166705353519705731116121100093001981559666090089450430975270921928813849693637088602087115173736390060082834222665624680356276617627952892475221888809048404309035283275791360108469689959994024445178703194392242720983738390613292425356225363200324002729379329262402273788328515818912951295269374778906959015783068651395946166850435953725354892347964790513012569699406427813654290365602255218888060038266821995078723217282607904883584241722195853125256596068575679041911585261237962950336387856173408731181706472470327766015602505512887494245464453542943717096321018564363965253233001507825716157206221067760456168200663562540907418099121442281147252599952852781802219187958043741670886781244046675253532674995736149075995256127447864713005137336920139561293629623752400570704672222793215326570277978161176446066533714217207557291690737697457147229474456824978190279518208003072593465532226805950081536709249196357391163131670242194767536490739809266689100328035845929690268771006546609142780636620804889776711783152967360332577760597000853751600926010149877635922794308837877434173264801507311067517270640584013651597781272272044746617650571137270436735374807314934848938002090535734519337547178137719712358924472089972548952682362579633457974143654404125771740140762936952863289923866346464833498642334936475379558716293949824565724877321054702333511098608059014535365192004664119652562690758356342874853898914009972483134991393171504279965913996890095648514694057609541208006768244982397648878189952431713887376091704071427685442428954787092717909609171235551408911763020741597114698086353221328675380039164799458569580932966350968846652779501598241398054840265431030835096228315395369427090387368075946844217533565456148471898198242673548775972602721635778487760471797204366316046123521972393358374062548614046813079804928617917381450161195651182222902722861395204425771523234263853360564781448806770886709116032696787182675023764498220350589164434196207032718726254570099837999953826347918408686191487005591461902108470505038618055800965010013194199488541928571713986966739771382505009660424273375706926614395025667710370027650340539689008627548688705904605848255820750473738451849142954347601496726617741182919443156118132469433679773106980135921974970211076623380137663362182494939757481027130587429041510505961031234455322540113243121491019615101384117870137481674696373985680516426904721806082598293997413459881191991201026027760534545456559292012892672433443197767649295323325854692849502268824964159895735549475433224748883256111362804807492048634649115770825956422004536360222594342275840064246233127309153277785854339673635888581141202033657929021284716487924602719994532586209404640176436642476975710145155165140337343187624649021174086612276378112053332114757538194166437778833072093842071666527642516904000418873174791138564764804210770471131722223867986249458899698471472595912422846632397534792262948264551017067322371005430465356946520926578071446401711766995920476212899332871681215919231375683469860753479812053766329567006087738868310539015313980510411528597196158107152391637353385554100208211875160624588657342371008143635997940230456179462960180439599722092413910304133635387543306761580223979698810727529542132089408549998529924460066349023614361794613049574415446368197392218107439367075442025619665473882489372194630019118411279477842865934588182629982069578983635515097024901733065298141309664281441469248684931218199291269715846858692443107472660645329847762001268184303038820991863240508565396411854270247905570912245649455089964548879164067626691874606240433464836475155246489321638395613508421789135064542684183452895162448837782488392112381192357984223581776371286889870695531045215860462201399997509922479492055016043890593505636062212439553200362002979178830224688343726704021159824535763694094275558700212360920520839893874647471306660136892942200513187373165279038335347052808365439773564149695846945221429564806435337197185923992667233478823609254343635091986755507809770480086331412955169360348397737936364175754797201278039287953171400163846309168842006437280378087657862758670329153493500281772608972263295037126094925953877380704280563257635381438590586216853231831903968802511842636190393641409361565860513027097917146742182010275651244859725763244370867581352322527906664506356147088992293628890167254084993714304049076450372078798391552043648144744525430918910901432590826407921336696759843630810152557393149279845348051482259146030343647813262538699075701602120166753172475434349627812723913950178107561395534244747333690074661867006878035280850857872501133412902024507010850685817498229582473908339223419051344057128556748300142215920786878044398676284733775753444296147803114602484216008664650258639373010002039781048879176733769136218033504887749532370960726450218506887913718382328677710845661322324440829744092934973588034545658020287231232570027502944767007362668737939475294146320925872153074817030381733513955919987812277353893753840796705893627775119601956623526181805175374046108047917402831570337782614883448844935611232603224753114280300776392273282004164056068331165849687682848556003150912964508900684940212203955212750070167508909464038337794687106329226175794277729248026306593918564363118701845298859692944371408165949174344315667768513471717268644259310806338668462626392987211854030912189153613142032428076912033022057952105649394435078119401534728421084489401371584686021680214204827424935101154346834926051572116255854567264059103193902848582374787667779769582527994260796431692425281482061969984913755192134333243323389153558452854151051698525367402036053607578542822869927008869177169962908409253215102303247769619813496543072603388358945916513011366863888136516465017315983823022459766158465089165355978076863478237784126325793942737077602351570559171951544927310314175772178393128225709187291328846988508644215147093897242079609006587377543739518789177785446919047957303223851858387678866636033938648200862895135951985998972575090357907262736020127587551613203401061198902270449115604643360404428646021637274385171922108143281212212155219943210847566879234294420944242604407901364754332801756525308017442057222007685498435024341241343390056537068737901315529932464917413915026219707126926928869942995690237837937718345366609841982384768117096792658968760863679659412247642350206205752888889592612342842720322003962987071595617844003943329290003756430341553211209975470293258645982317255036829802963442025133576436201057315113153461252369813834927139550303028614422063674544995872723696232418552063457637769248980497732150992801143828712462554537640364048810654203234787457104270625408622562730670195426676289551232636521852384355614258100093280097841320862978185767801774989242963466098711073549461700433229870110805982439638418752760624024062065538476590942569818716811419442203272718980851788455419604969625038486610002128269451864953085238468782525838941807021358172189937634409488630296992069044322466661120511068117509491740666057204275101678982888827336471636018628188013958675033320769618617491941269297141603898881576663242855302500869588857537998326355415432398174574469975227929404980858568862224917606721473054690516276638767460208251434133804044556646020447781463512097094577972739291512828174569977257707407147337471053278086071443555358466865706290941050021200770946795599465579769689220167931971722732911976123089957988335830784758666549872897565151465173376737103996954031387769889260182303379667954029224364610785472729098593446483345390848054413326976990680883602568279311673455028300659193693279008135375804694680102454436731231129341458463066725115123871070754728335466657909860509874230481199558655778516093652186945459835225959414469579439207148518605922220520683503186355749221393296450737655375835017599111795175125269683950277362941695489505822025258603589754583658496737367403433041923622652382594735099806691880497376357386315703368329724683372753820384843461887796576585040811990249157048090351762443908299803003456848747802705838079400500199579415506084671944179784659958149227030264041036148388298242331661311346103142524246324662529997603786482779906995570033239700696829543408318288566143811725960708516630680976768050602020601746946768920208180308006301712010087559850107256516551170096347724303927619692289714919168087867288300831917265170169405031195195523954868538060500040366916353808847565141220016758020894597907493908824506501611013148993825490941497343561049473496688769854906175572629202573912054006035411981659266539099922872682573662789074589840737294265386973004421670456548641949997616257961928490914266436391619125954217516918904887166400894859227152294375776639829981722304552628972698401791246083354861761536508696554198385333104390762293444440947838124246779029277821455046952314035417254974676579615134102720151575808608991662860826458269976832446294621457838077735195947945993898129754895975266234731652619454347734194391424294915166480905796524083827051527603377762152963932902622869233134536606669566757653418824502328630772775697154108141065280213878039166607083084891689568262776131057460302335842635070366044239187935770196512857498056340884038976500522934753253738139658402659831684009199201879521763842075720790858779122740712482469705583151570742219613067508746371533039206554194989887023355407345069163012231399033182397707794629219177057086368875487026008440464749678593243408875988643572831871691192825725258918238966459335024845381431502982090993854505519435470460509773850926483119712181404949262477528684392253484578145654960327806160672598606380002511562936005594139554148604060840445184323864443052347884098964212593020599981012007556070266674779469137362751826836048779976278327804668681104750377340654013720547066830918643705634893476556739041998467003298731948574226942989410145377255121665315476798027524616773412689670219962387696841612487490908375194331442584707962942524470830446505911999835879707983505821110808251602119954684812252007826307756807535745571720060127149932048270798521530792606192906592557547214943177891935131120978336785023157966346778289240216658038090404936418445133023329644290530056370206639852032979464438672322327760861753808826282868796758117762888005820606090478728397948581975020532516486750173641203998338341494231682921423745234393775487485751883139149391033355185761928361509040604737876947348815165292180331795409994917983168975789459987315702910641541293950915462170161092998029713126916928080284931166335297529365501558124672877457697980380250141638002007830368294747517882796603009987015863576187592346083742550635883034942213324072607415681790925925787153543135445437262675151267486637662597875712019124806787863254513055591128335414911932014323663372672381405795651061911348925397716426334963210247960622667571183858864338656302702154557252478051982567147986012808708653534860087306696261821375620646444036573792028283802227607724516841869715994451793127935507189281517615921682286980589738940833870465281186862861915516080215345433294202798122101141373376908010170574109048549368335865561080512229318360270531478707878759835776134798023470585772851760510440472559220227960545766711876596177303133538333743553846657296245650714144176864978260944005011472652471443122768117188916449512318061222921574387270945602363652184393661258198628747135845927873841585933484805396445787567826913620063746026665801962735779518851331976068134413401900973763754193496242570052750649023951705906121102007759457236508784660934648821360800852476017867910917586613148219218783265199755999368418239083406762592382899074820312969651678054855487029504686160726364814490280197252595321417812236553895569856712821860390606295306226093579820479442206704880974595878477062313054792327844181883001930208629591178021966979606754296864313716278052522645888709373943817260952080978000718365993966588014827859141206459454312287455986729405746762327211744484223142937999263267875505231702315708898285233211157333391661464077447465704891090017191670821470816814295234200341239378348245200888928572703241391177538812659522885052639095370496277670893148502744091483495879744047057698882566290128502900707747259479980984550741036363548380597251566246813222079787623561621728934242472957354691140061582158798127697490137132627507517826566657279870078027256354989881690032303742080089600190713938462665410296114681901195586175482355237438502672069713914767700116858428167724074850350376367881260881613469074312001591010980629850547612973446462066550125128428708226479134759943948018904515954216140613493355128366823838957288953155161012830526938221527297457596195219340439090498429393193808724882737033869060941504398505519000843209351369859094984631164310564724608932908575974105991538552194394995320424452195979330016335632377123102379598424658234577177780815497311383980779230312244944081988057122231293026674107696232894691226874857935157771549113057076707321658164556351285279873986843573464903442267519615100221091410712804550648381276813445878895221212488158714141014209607974077088330388627091526450484304359816021798883492516517927916612448189046287019534938015256671626074010719780744241227338290005017586658571203378481633596836798419645796224129278476180683981474206260126362350549311976608898676533245743034950562784741241773673005336460537471229100686766238939044355306602504781730749233488988440056481125357511480697743440839577845645522373410323876115772631121355058156156652025570555081809446188548443900113224189306587024766073171293416029223433059074008499699214243029975497178155489263063820810991388554725707540993281601157862270629062676201371420703877071081220627010084052239797386129628535394066459435138017899278393577908533743576246016644349867409155230094095128250523905782838016071772806152568793326949435909779581185347514411536131549099758524257374612841933302122006776806136552999210373490240335842095878747924805191672586001779091434401497815788531845191523558082641104640715004602228178061557349029336757358116528815231547365964700018189426142839812354034164552729484421079752337181247092579669346724694917570336835089000115720914325514846666606960047709837807225330272184385238281242362241662790931081240965117163628969100609016460765630761455579912798879392081043779776203083865019965923209183094199961171157570310185689373907349664592278973341975285544957229108508517496099738117212046707364476744353079196776901507031136702295621339492031248397011660725368504984420768691566164614883797112749394292997241742690776746017521934750911233964559814917822050995480983265091974308349198034063315841269072352167382795668961695897619188336600746219732764882709381900336059999810769267903414410716926181314178322093133723478886147971508793614467491039977850040222938095162060834278283879275161090416161899540577778437132206337192738388824800088985205598551071267698010245842477597054304870708165607940920594820941861500714188698590635899205857485127587400594582673745127703500776804924477234965790056540761696469928106898595198094084460041517360582359655494396332292119488477103494296144858105617391028019993649923466418056631213724934135470990510502551648606834484225007379718422700600328854557563383901398664956686887893894178294551739529895588788481854135862478640067783647161169046825398576955171919735755184543025588289779115524951475413057578725506236099655396385143882860119001456876358718560112004141869142438122154134765732576755791208193300206940824846927786144141628304753786989389586914595964414740630413289747218515591136011090371664504798253448885295007249046343046018429258801867047188613607957844709380756128192557330026307421331085313428550734759056626750335002907481353254044777725743886280295812751199706134034114583172400361220127503642146753685985887084306587686487613108330085138760781505925570920953847419671878214950552380058821422028201858261576592768278294404633832162459918793965581714951981363402595741317144480968550537241281758654386849118607084032736093527619934785134940357641038793137672325549614963272214583268160133100435731699186938105970180104174477818753332051690712252865925819942540595042116546984825354324708098751104593294995249754635317579475198182537682364791109941590207735329882472853222299074335789732249379138614013212909610916939232486756469923152717970540652870691233721302624034922069022952294162497511985844767830801989681785821836666903979699795706431037519232543259959318866832213890271944069181677230606411953192909919321705221431774418057367719098644793709417650344589366501686162513612521899325051415881962461454778492211378026783864502946407535835697719995645878801480820706099199190919574711234393088046754195785508323912373138821197537370816919632506361976499278498037653735181620165394919856008422559843932203706125748150351111138546133711897418683229471533804016254345712060468613695558036784855978072589335706202075093543717220847061361203294207328254727761776134076387539481899577011819077849819680904452440654513301691675109167000528414740935452663588604528230310933338626648919876315441312363631403551740946949045333681446377375707463127494753464935503525363347759328392878466437547413031091946645802066192955626251804668205059221893949085386707773816603690696977770493853723534770413253581399575527370715081269507676511183430627444332566621846350403545374065420182296071154506753869608485084006670820702935732199985822051458493311383385563188348215731981602576503628074361154698125585274182845885013041571254892383018835382170457894584644679300891123358938979204660556661290040717755825874974778840198399108134364791866155859276901893838430556042592154939033547968632731441663322443479518303826912311099651525175245226135104582086424197211541360744782739090571805826539628144596198217392073422417113389593360998808144581310326346096149593262655672768211905098713004581394744435667405208889164724599272917204025132611685095856960168917805727126765342160180627556757300838409651306171953618376827604850730088284401010960965955915324576591686648153574487774035135007336876414596219113831512231689931733737613842133690160817279644124336930876282518355600968776390341011662613357165717299078367280838818561890596005266571301565819878194575820565567314112524250548661007936721573195079507754209038193750662160612848780988228923577854064288249499047092696886416758176344946568830474628518668375929323956243197359211753194681424468568830105792011378119103905782020015457297479451610347911919225249208306172620030278268394178605921702035246763408678761508874845775983453309099920866393722180700811023180271390939484698338249188985596720920342387533211031781221793263792089102637071695642441103976567903646033534462886683431216373195406720732888093246669526716745317904855815982008970888663229607019503891109156153535754077138002033712567718173681781016499045728104063902350941044517795061783054818200287739113953398433589038340622357696749046058593299032557011826515271498343753028421126320147794473927509858991216997481669607693682823134247154748752560094417056519704746603193417665884832955754784577725806723520363237744546521301110516981495049960210608183700117120352992585869261343177546375469975604896813864122233302663049762789544524596611052120579710250720379745979207103514229433624478479184689252241504996615409980521870062448360026705109441353466430404621159686384072680310706665120280794036894180797434219871490817893180893698693551905312697450233859319610747851829913412144662057246596928648955852411670933991275471020320427264271664193579440790269576846517727029697658701032278928640761971215399566948955893525275202310279735491352583983658452977828966629852809994466466305250368546180645756678644270182608347728296445966867571358214669692505537386887253245076683868011843948315882039689755471527685219211652025382109498612534346108935974445349903806703113183955210646307998914477543352513585208735240826618345182550941177639458705897701952332378108852857580676005551148621282212036474293523026905557528120090915790882855221784209302815171566490811113452490673906943005667029320809525497733183668615969262401188483029457329912216598333108284288735559641093140428609070098766922916093849932241756686819402094675415737214858846753220539381091637634509022521894805376298744981138028423123865536122310509670880429050832621546196081932306755185382115574102062783948750871553867288846389943040160361225590350810624850525822110600945967428971010309932886627085717854742960252494821847829018743213297784879872036088396548331130220879781479960128744126857219867185537324789256110770442070155878651134480619738738876296708473801988103292543989595798167458380478423299203218430565344288855712739018398594832048288877249807673571046533615692850919666246356872701539141139903911415489293283040091875220852182021254954777304093679845639395440865177707855518683940667607589731588332908979277867849870272949037011843827428875621023697480379503688879632094427113119498013747785914557508239958395678545350879494564263638979804601375327642830831965935591298825553492078493471229272698634167836586921025898824648278577108433124076286248913244680931765085686961469099205567525985101649249553334976472728597559556978916677006763583351820110283127531051839658308114259900404836779384460342221570870548893800766299962594417207792178599916011839401570705775957967952437913085768305465560634370475816612244699600564902096828500147703441456591046381729836034621311811284352215663234144535237866304587791556345952136508162916047463537247886415752961113005967658547250285786584904759732670334011092808327392204601369538804115131822293841596796838800366391023637806675098339264254490256545091028507597681613172625090347444971640703274292807783502214509227725807563787164744178064377327561326406975286065867697880474006480634046851974314663261790510373338599635986039062599313778427682554486393510313032327243467518615180650344775024430597606836173397989048831756989953964475889766226633324718321881867206364444315436609900826171489195469046087111418740407262839385663445336720031682025533485180621524101878489393049425330717958227102016097108573196981107091157392687649507065311218178061002198566085142297847424513197695962987400123090231860709735805326652402597737982913972842880182205595229057601306554908972075333494275726109171326995601263081201823151802392819531390429225513470261641448558593149014125860279261274651447718216521814873865446051185610920730331715750391733304717765128460795674032012832887831034692077119189695746691659963814938442162900696933648797632316097052823022368075881554352961618133603013996940808766876893554672422463512747168678017676249485558494916707094013546146892334663084059473586054639239427082522029985139262976683450780797766953799248268026468591928352893518391058815388515742775235249638050214488323498731509913339889526220824122979172894685474927727707323770976137176260411115351852095721089532650129562451308845391091822792058017112770261215686523764235786092130514434450000535682768973916304031001812926302793570602912070483840220011580226442708980235259849705589999577298638327360051687910650846249582505391178960267531332317315932328364270118760365673453917547517999943136674409692573194645876625761790998003381778034935301788217391922068712148777417280028614801909697463700225218613861370587583413435761532141535623762894994176772709469321044057863983070429930712207722139763249215608994602947147565202321034556120236191554424246151027773002072816339620898623429453649578975617191654406912858909619485791060279714891785188105475659162750206247336431327263352623953948727644822200707286258091711702479923078604848944548149087193805084160141460586826631162882589000949862643697801956584777167645529069674098000328264543156638687745454712132440845573835949802003428864253100921814222363104795800961815747655060442565619556751548122441231582997538246717258069316701506779520497365206339744910367127981097363090494936632082466916276801586050120298891288181626845779010561704024523955000536883072764172833996243248389537023495908457843218188446914075136426056112744633871163152062474705384330574692234332342445650623950233673920370066096816994959632300696585209756363292559008417963336968419601066918111705052962928278630854531490342558518365776543243581109147049059377845997424209741467996472139996658805473077585706358413416662347559136886603324300790416924725083618551015477800330934475629684631684680921679671861371818590988991302805969141551792522019657416065592220329889450421324067746247807941274159731866780238641825976939004249449027927376092604010349006989435308427880074794079986284771015281499884890615096521934907901924844265086602650723065782681875032120456520900926971808612230042655734210579356558980776688733874265196342402095284736583227223380462396593202391827772823665219168268534678706100695032416522183166973950782527155293247089504141638269644810758798311583422450754026484021132939313475759600493539725378552944813556640073363013557225141312576124776686508317091163371488174593649049434667989423697336731367862320270707790118435151254738512537144706371515963173881218456071690517135130462892039723259068369007975470974464711288040956852348988804304370297233182636978200673377125123507766081331746611654639870342769856871513339028181858165941322485352302257288155407407921837369668400652495736136452369424104167925999652101770421311541372879306601795887131308564039248029401686931121558644113763688718851792060169663822066138750947653424756181208587695076017849897312306797977195154901332166475730516169923258788494674405247920760097341123370449319347411251317209825222271499988400139802124701339429024757411874098505787380725393331044679620321114439171516977508700355025256826072505230756086255048512348544696475426169124110331531294806514139518030144681387461421346661963261369040264510674232626850847349201194336201472948753395413900796901466681780325280213286294184484606810373019264071845462663970901089356588701320625752295212374732996018587017839490076675077615671357130544771902848683647791184588327531440970833751372999662980269660978441260370637035657002363670668544723871509214269823472661300703797486026334055492107119544289757608167477518304419283615603661976398419408591152810283690046382400938152964689354620151992470544796413494557750126105581750996714709056485069200841189287603294890654932514995224722320833303415842168144575616839397728512500899438086683166843812369059768198322673990486831814640885224219094875715006242279407904124321699661788250600946793417055755586224238279010768157677290508069141037855609640014901460063270148681358409019003727119964838336318552874764391023483519652276819126592914784877468699720130692135913959637327054426213029303543353584109379349844382519705357858073029581223983010570688872978645164535162694457040444934043885631170429862728168501881880336062912444107140961687439652145219004563642826862077096173416887277424563213465589013057896566628385557169503968843302692665059087870011980045170450642020370641462922974224166485070334278523404695555684971297907609227899171063576658451263649918558092551612844997463842178282126065357679711231320850834782583674736884853714117479445281132131399288839975339318463770862078207952881217736772138451236471801507709015069580670196039172839000412615009610315919013292025149109148277984280343304169563726531366749294032826953402828285863194865050851946146866093143268434687159432127306446073845318917862373635819040613249217025499691077923076912203160594808422927401618318110169103889706181574470438948455751530927524793223719037063099764713826004199867631414141364016597415316853841800795123000544921310076171914412884334348744913850304845076503697632454675162854501213464154394651304034510569928125903634242635412484230850837987580330186105818684084784224922362318834066351406547006065750600177426505223599757358485074103721974370420795676977536759146407996583434890061960963986318261026510363867815871107153950985857578075233798272542172921925817267476937913623633709186587928363773487671399034353106361266046531850552765705987773352032615870506255471541210901275522146712039853076871964793718920468558465123528385698358569388774990674538555606061388495083165197886798017900075628054050344517825735426523048403378272317643253960567930803911829251945081810478997779727598368556414429278051891759252052045470622639682246258139571026461362601972160974266921895732391216462984172360254458814465924030403900806961855539730732273625039972287248411967317344658955576776294670807074996671872635873504071825525862351754916147803063147202552363177627691912789305653319022144920391046864048059514309456354887974196433015438758625246661896604709095236609761859142520658753398831697890597627612759267552761751421151556996221192884206917278261301737936558845597772883628889936798198675693217989338059871290046850335412277105475163291951480550724579172687355017934814918828606532008440548759513901412443107458004110443649996228337678590649183202277937448638879796803942218530613495253406403515542817602452130409586179378630689128397864347052393162425380917564580283949530667549257806092598248418884814884716383289780251046099958260708844812922042989951106052515928308092338430815960840743669947226365541588388531370376751209639820806430688366063042747667922728612257631232557088633565983808938765982382233148939437501185830290603305607950941083494807062053233358699394588972771543854663694176290703092407396592729276663524386749632217278010201157848190512569757382029030480142700487847798176800777663528394473456820550251223556243581954861842509319096937069081151251174321915154486161168526617493555333413770085420928356737331113596728601917980221085832699683532148876667084526236023540937928114369357001253294098756576668732128755649151691625541432097129551078686277253924934172121884990674862036797722769983483504727156076292340889752750114313678204028182396865492446500922729367512548598275408174703881500817692936195948094529475683337219428075275844493932299226163853888195153992658860865600047637509107821659164801658835880048633418002963231461599250328615876523941600583793084601433119904216289706327926492548837557717409790369211625877302340720319261428923569690967314048766565401386611281179996249972698717235731567399421953521557609367411290418453301132895730366142286755774037607973768229613836657574327853780169623856313203969693713896233871779247690005935616353560516405951086339536503743381443381674193634304721616312952243192530807127643758872801887110856681788260464264763981708740945136819148308275042499708676269151250181468599014167505908685462047247232619913123970779923866919785455123145429395145072311033069359422964641697871320604320829609178567527914340175934256049385436706791143014715369706866715471667259534112433367727682571910954144089718233241860486942371042843221882687790599400107903372263504156604786715002172824146942982563188866498724145764490512806428969166068574528805353936991386142858801806429263773518209448187183895911105979604477691765671310632709297145362400731769225395161671169612289030347164557229981463962848690449213317718843079538687323006236422344803660031303153137800259950664904067290234959256906903501495675135907918569608198075992838431138606001271999380384183728143061556709132736401219651712127054555717064842453969470498097306286002533540603202655747697815603852483009406607469451545829370749987974488088598834650255679916829841673861094223658192010440283179482496709750639195231668253299131900882125313768429602066228896375939127501287902795510176283133202959774874584548711786097718581782551757552505467141004887811743918333550156946543949440572300475988294141567918352767310693473214625987630822267691206240811162182476079651075491003804890908462421422538065599438669745408211053906086402709261333056983501344705810632085993492387858720134031702657840411633487518579183659969094432912058575081610695574849551943718453826013568529023334406735051970951906081477470289389401430590656819539078848387142148816165076952052955923735625233445684720482744026512595139342943961606861594779235388438048019262897293549067903599486666735308203854854985077521791728380037065611782901266588587751511860000466984405839947958795153332316879361704620308234604386006476017460872122546662904894040225844248293330113783694010667436385582445062705651590771248494158981323277738472890894567443707286074972087119743723793543190594694824635337090072695564744715723191380594474799924795436613401868173245361677812744013597033393219602657140664986533759380416521891973630458004200941494079071351471530371822812028757588602481591185730093450810973013530765844766758781900777061695389852446613351707071634385422110253015345998113298316166888327634292161825877801834262032111525723963610061990857840465055288676028117470830111095770378927432559522210065154864794605700183024557291598813787443748071235342606033112212519663589004330084657028098296087439229186873836109455407558912637930306016317360888902699286516929531009745760356948325352178444387713730450231360920883247973447524027151471756553303658135607953922131351599382798619616870329268661544859812152771068364170877974325524276636170837774955210193845182737687989967996000032991437746841778129683457457691677722060796493105510426862033392564365933826923122940193091044664486147833199257787040859784922885501669630067704454917901138697184917703112147479142032466867477903542191632943748553505514277223387996781222412415165207886497142404354708405121987362865484107776604589694985259018152068473993551325055995115525198624408525071411581504921487130525048186460044265060208703032201364014579904911024131200292927471086040172480755855711836492612831411373598327302898110737930303737815810905146044350355399938165124673258079596112295571663943922220422821486880680374732024375826876292216898999087908337044357845536756503445167248010230175699669525072801337573559246495206206702103246030485379656723524032112805537677331163922602674857217415686481493730012711329955575143721335357012678638366181723578416436291126707710571202699759578524089208642594699602040676146094597081655628192985161532004397160455896490314256202069785874795069178505890347201421610493626437233588638409716426707651270086679003000833303747949512653931075937919158514131666575514399985846656305400715637440100876843196840353569519783895219889841679496686274027537448310987924980591929112143431835581462582933769040924008831215774894965412723024707215192733652661708698712361685617438614518880812633888817150845954877952624153661217239319597321393466483861990268735466067682224712776350497993698147920022498992488664812845684297246743077826225500625447801925051891212900721157857326442445118995353220285975772972648664979964343173810882749406730251758965258452325246180004658823797086880667729661214244495933562406999436839872642791836415251130301277688752649773904696886606743721070717154296747897858430193292963398942983316424975242218107586373477211051162370133827103269282181656464213015078478679713489666911158501998378013886833171343585484634937722934080611897750424568722936503585124086105814687187066484439824407199638448535152867933165951243263376788007622597272616247595421411211660535966040241762259377525097654871341823467505598849135470061660787414613541150549220813923724937359490388529131976066400287202847013059383037273388719772429293453243997783494510353373486718074865575845884379264048615899799164439880452646960685953249353325580644483078827088816984400232848872309226788387247648889436438797781732388293049361256777373873905623920630306739753102216316117071250845782186566613450173732895027289328254739408887934309325732947931816255699132024947551192570918786723785557524757076286532534611422292175952801189811878051011080756924453224472218508406495405473079057165121884325473311676407746808409095095309424166261066129502087946273811211398753378620331745488813749439197927232798707450633644511302298182646988907376914491665235332106606116956450445395508284113188987004042317466858510761705006791073197424138311710225633221175094375828892115597811283132606331853120585689926586921623843033899414147986416974941989273173828847208418186261100981384295199720560423477820553982100478927496618267588761444666765759003060372291810439748337916331985148913892802997410212495278811417781684230374119270101572662176206804628982002039210427306095294590431107734314307045218991570354088531999484040100844020639652053076464312585430851989229332302945720180043853078101929474553670258447158978061651427868457212529054811746159908744117667234746056017976158635578838632940609174633446583636166705504346121081298938645268974751154473793082441445670002391801528041692346396989212941595284194576069733061572665560942965356733857737494493013354473461547452839651690587115068554555891281343488186820054455854712704512514310001344736732023352332092702946429118092226162188627895580427942823796004187387039236357032188461274177241496781907394523742409623419058139846028813567278805181560859456670694849354584929560420635880027119254937357059498542440696386468469807246188590880003724404578505807695658364008513031332022506818185880986395187045569295305660295060103621305141434408185514250685890407302256670290302923402938999490065687316552694639948646587574245489901618416698894144185502011245187136772611816417675967065352819098760659309958801803589746546313102771612859579281738078146995914399642905317316389460005672419167971065606024413898587305070765389315295122051778958885669764677415673968388168640221952955800441836354137027290936629151193476908934989460581533261408789290256129303677833119537073123614071208285756776547370330630541004596592740753686366414643872472974196450570019551562246919970571754528695698327871262445875222973765602662037405009715537104493141283970064989722583169174005290004617326545091182491231365282053877329575246050068541422898704291740790344760199485330173982083459428132579844524604886905403918454299923944056114183880330240200063216431451370354710081514283990671295943922986153654462451492227394260275432874590090161892542286285332647870722602454456413398028879970498240990230117972293704128327887517144662917831787709920352967951496215011818882195068287260577705185049251278651245135417029075532517953390707655392773020834412803165301929921371896427310055572574138102737321050691651380856717764111718875598441145581839163904230048583747987892745954351240467059328806903592797050864919741265800200013242747226322212112080939103483660105655207309707555346390273043322911852576392955865513218635264086333263213462478739113574592489441722085666387456603514826256930425305360565761062951826452144070072174774130709656550847329710776918906863649721894586407832867763713969737933774841664184245488345790650630110367496307666145970997961818804125465831517782973392241119195861408837129977304782312784228009003773421968061684482012176914713531689301122676440918789512338644995211235120411744370454138713335363046156530897177277246626940881252079273537103629620484486690706039034976152804906806742935559186014149827192483177774417263061265330722296730312653243922445227378606324919915704334768583715482466001253224457259550645652170522338575757841039599390817829492466108375239991129982868524951949790189709958626495907409280934075532591197222912207560301102086422772402287751873320142357392314818025358737075442707410340154581778873744613296070049934911215275153735571628047761733216908475112546084963048166154583110387797450684569400989988968198269588928647592823693528952864158451196799959180321047357538103937200538040473647234734049379731997761325109274038818105184939769579765247087296012251144944865375110365285575595343727142109367983298539764986693866570089418844450034484769339395213307800811769493934683166709787585795530334512106025259868253656503615589188735520201651604336380963095689784660995535297747005635794000413828294041755633455138181751528271703396085018734272318709903285929853880469255250182471646833866026954518176810834697003085889013342887748098305035616732394550202088068156215947247789560236318961590982706589108480125218064759536245396968372283782204019148565332735887735942604892530107668581005425994894995471361755712443957238626340758239471494371594714775355101302961023010448984707808592805921935694006936682475271812545350674043423357369089009145235980856435535219515434513244681448914089793975018954907147020636937886398163773527306553064411273165108861271185772298845668517727325122517284991072918246897954655811162441275809480974014310233518099708045189168825897463062865764900606491118630942490071190599173220248956793149973379326120795031178223110531457121595094115111781738084960869134456399765397382831127336598208003930879999554485525007687433626448546357201291813992799855486192812315401485189105129886590648973344984368365519042782802645859336612890966733280098204006987548289544432252274385507324350358170939319199806638743090820204295682904131129095187384072856284199168543071033513518863032890879330760053136674298255900828079518285459371435359783846722050459152344131728857885389051878722654517199006450381669236559783666492771580279688078209571200070948197762642184805635345512212233923395087532680969033902538754758184185393435714284578615382556096759189108536460776598046312654313608987136570231692665133806116859489669183187598081981468739028463661429049416942987142961982864881207900958015640937395260626165437505429634984728062922469701098508651997783216038634596211923706331798120048189279284168438371807932310875504167244059441088051801097525859987376725886490232114073500186675099893401457288446663205474761929740610806124174751658706929598795310533385894265028488901928302223795163280036263622975392639342595133922099339855897442267350625926283238418077911883873206528352409150071439614154783268439461271546854406351649625612734510756751099132127431843147624659205448342259413046475225382920999744441693221305399855231492508372447502472872845016344636305925163393246225557500647983773858919437514925531297527668795978822358840074736272708596081321648375174669955412786925362877660260183576577280304559977044960319791119509292398447606881333403610887718322323954730616427083199711044078970352861039764225577863203196686048070021225455897511032397620437112388019773011418624241908963405221910591859223917811658750139627790247986117813008312806963059129464133919084368617233678403061816141248856263289655209114575926489846070671405840692172879650082624681901628549192354952793662594269946823652259874737837278380761458226194240896688151623171899366452289311376705934895844972258621127020959040832750589589301748089490634114863510672729520446379844750381239055633390794824204607594928323495632972029619589396243434562321637379441881460464580332475762191031278486154174451970278035371849474022757898486240993546270014072277803119894403407842820617601182528035079116163231605289140752903641682379299448621202947633843357324542754173487965398273509099960512252423338908966369517489351353993547226949785872269400627983248656510489497108596897402178629655214497882495264654214229783202859185512909844570113449285633645808275417553734898287668409607976216601217844431605645213307632485529380729005044959957663941114578766185722822969217488308144678188167926264598328193425225665515075159385295794072483455673318591854890532368626931186615643811857483286812913827119606077640126025588049473463802164022866024427739893717772587037977656691496175186815033617521717547405722359704147066552631618126094623693131893485184328230554249289407462252851740579904594227817816445770451944840198907679007998550755254590026477607908266424925724127931081284929575870486965452260233120790284975786032418408518035545359863700072822126321092833946610687350628925406406486351986397627666515646655966865614269238295391717678239233564420233363296737270806439926073912855987016227285059545941338588346124697777163469991706175362607805055609013248786898191926768425823578419633937582628350192952091891145356147906073037847517282639296116717335354882255240989991189421134186402324207909827125163905403116584574306538914632226502613533134073246070042815811090873632275322296550720403761879093222989321670783983275891218921869769321300460746021522626982412624828891440558206078716609003155088971389058613747630890612566767748216651831476966478546811385403243652141080132137045780449455632440945549040569541222817398162143392576228329563854418565657066204711946087814672422781577376013606663358777375328755293108706254509620656216106973006246817765649810815749976683037431908344337775758866588188019789834519161144080972722805171580375653239004097184594461003041109832715159432406899846617365868572661954580536661248580771542562628083001733315311167800207426122533608583306623896721646515188014327163673943037291974774563292070773946890045110149166797691386845203946799671924381324231254961905458373609467584455938900124256892757262730936380401785242381004252626540993126345849953659932727556037277398834391809448445336655149541160193874948647891131276572402276681888426174452132798433882591994244576781465768310343767704996753509957508834461582831311045309031838536693482632042977562984513703041207780862268398413192793918240870012559721686126268872831064407569643250935495605954115729800519806084948388765797193931482818702718895495031413536924225150977981728667512400107199972563993815319260188149102240678940642803264415101914990448080967199543331986397413179688139365701725919081859383686612059990894326344259414518073056886007971063161851192415846178197394682135466898834204461152730276285385290988892711815835933864051750169983618201464961386274867229230777579067272058468781074754903577937104079781968261553708217227855959486385998848170361043545653664256214097428601968900452213906836622913557066249254683701407267271065789227448039665494249361242867271361242512804561466205782154366595673989256462591725673612647352362619633625272999098482724658402489005238069809519119620314944481978142910440490061946115082262014897424361189592182963244909604211188126952089879683258041896420659423954445068412973720713002582604209472633757995233979829482158572525295886455964373326162988166110315103596923077725067767396627340964686766174085573413796566233618073975957395651123169410335415210598244194970863220732369792501133644643060583805123513333520184975329036112206978637690131975066502149909083572371672467376086683688907681915656951143357119523493448101721514769545511606244776584061724723984645092830709735736413942816346800365320817394900684212656817480913488878341990400940869065555456446593359891064144755583444036075878043754703695838672448512695611144003177090274893782756647069083861044451198995323071271405383084182305716904502553513707952364110585037833927940412054513265009023307185616485455839692912983492513803318693433260706630524959327470865255251133204932071902803046462827377435618673837829946233344972165104845233610757501424589262039208562440357875611186411841111126341790202615295223854158005479598807686330189045164458391081065418824194729542699460958897255939944339160981463505822635577430930501647424689433967299525950377137724956953576822252458820718403981374001305508992326139277555404780059941188473238965535535021991473510598726724329218371483125277348451574615925245380465078906981219528094443832313503138437544604534351183486541751934958928952973223594010728426969132717574817566802191476964915473337065678515383567191924565435404328687577795482699180083393771513605356248651982282180546022342838725403976665387646204991090427692830782713927552653106144091180307250334217129971021704996468685503410563998793722901504818290963178009872214229796746089951315112683447791033568295943165545131667191766259154281383964567972007418439215500946432790708860640420976922922995715740845468727128313534535261642039938310390191151601200002837471944392310238769169993025566989205342056841796668367294498800409006937348292285223334741094565555973837878052676652114420326439895498002479345825593409235846785977305262809047881462495596594172202022456911036174971487423230809639518910456830235640623401283594829389111049668208687818719752319317773925825289173262916267353733595951458554948427554657621578001645535144864315392707421926350208296173542113832103728494136566555720688804883109728803700890949673952017065848479344332117185568339859062822767176240989566119250546603230037542212976285359277433345240772647825695011791326026204847433207406139367781699824300362971875933757992028607248863437706113987003418165992201749651012940890951153251304657893509373446540703362348790412298689864077589212128271893918626723075977961795294637153482425248866730590096905281549495918137126381422490657140508256789537586499612058221917841996642342341628638488558572530954725799286077011099720391091004366760486890068735995998127635530001195184666387151512648147129844725427481558908962820744150295659105835353346752039875197895943306007707855915259444200620964928441457660642414434102570438726728516004829060206463062316551467136192300917218185485921223161614913129834612035783398236557227580508539650219840680958959764330456400033753014854547734261296164131721792024474359752290610686481620448678029933663693494500079392468198684106676414903980068325280163433652218856666992987174806901266667082653730194074788880399142418127987845923194878521376689865861537495055906470704578336844522796613363571794335044246050281302680597511845223973609855556116478544251542577137170825502081585256002264944033109712897194807502661880316126276547676817473976553689163389283387304388922450726503949870598649691697093352646610930324714598862725604226333084582044339386534185308517619216366181346159535792698448927017944282809441101329719470286940294984463997176312478374668744227701064495624589343242779494299514171838027334622341093600549600911704823503628138974227196967146731786093417525377310864694232490737138904901254913561868775287120242316098515264799081949064581425014772999194732570306016519171777360428541019518707777992809078549174830068487662321245196369028895596350700339822184411496084210512718419504725487335637454123798334675532326120501152745967069414016002373061644354866340642200239380569125402607471044332855673804634921695216080459733953871849785545140250929392447880705541290289772728361940702171307264617715297178098530883288258162786014765032051633503565127472580873470889595967685377511660323432623944924127052170704468066753583367860885854942937339840005625855581691116532462528609673607245718639147104153964467813122585032255160758668410655515224667106505741518816940664495794355312344808074372595258781276816648248630326552219352487947249198330771937624923756330460099556769081378126590703262774694571594112313635956934072741842427461868159015618222918146633079752324930201154424591538414969556559520958340466191938480741059625417176234763620437392788684917249616754418353524065834018970476707048580065663325055640953271797651791418700468973669993487284334570020560242792651570073950330201676682971580590054270185852512846804990322603713489326239581350091855793762601952652714518666455803431710558621474606749919633586015758896881261582962312478781939924690054248891089118857071692704575952151556130619113397788175700800571163848582146131605186900804489139065964283137364294046695813762456252058578963471418549226912407342879524006641692601664357569958413172303386073835972593560039016879668259164768796433547000176467464829392133450807266001542730438312562155105962697836645978751063743809568886495535729345658041038723946424458643719339033383643471453312598539598016811513054226323868769146071188101304527156965956547035013573379763952298094539458679628499638536131588062357153468124241893578239641636279069990354216839330710853685117438867567974944564816429265219271255399065271581032830993386270231614040239446623066825175135341203675473468989041324055148437609144432739989106020688588158780367455499628429302746245272721352017934742719384558783399271647323210436045039997759854207994146145312747192574263619838048137587951529231015417298002530705184886845312058177605249467199712473569894708857350950589275452339317253924591033962042253289513948743748482609233311593991245400785636033487135956976025035195436530900481401552581576564948564876239150849060243494182167784720370776390196480578216096279522364906105399288513341107265551241205858060135271693545476180687128877863169939227204395419676849068504354947547042318905784919789990470990101967056900922515975390181402295060934746358082354498207652722057698978499652036588494492888276279984986900716785395742115428050219447706993852405746780364577383927479482788631811110342391481547207510919736942285947872836447784530236709643609384892697730328145278161028617761167239745958193698381673820809085434779645119746868063778710135273689440085667227894193567569104715330801798812388148120111753741031265110409642386465256093413865056953391172559881576076781466098544134443813985636884545718797582342583766593584337307335145625389529060362751462387299375240446295414320580281920821058108080964143146768087177116001132058804476318822713004075018402752865680216598652535397783691124875912979843554914499395633145527164101734196754899408800990315627616985614912292992286076843698538283878431071175935608432797579077888081605245814075365270621035763578299907383696825547335035201803302428444493586096085204689835303667534412711605650662478980853360016652961654039603156198711208196313875698363665770472804630199535932339233405462090196730273663796632557671354690004337476707194906274128422833363476437139027086222015317309785497882790518296932859003792977163288889720920707884867336669308776575342143315652552659995277925843720807587807837684046346106390530798651386979009018623983533861629575821928611890783637005928823320025567764886953207826697892850198344850225276691058692090323736784791704958222366765300324910392799758125871723837741208685884672964921783080581587139280322548547942099060721451688622867235646881537727524310576686266403287890022961953711285853190507217213860661027488313572725284717779466956481749431149835441655527268051819591365690821304014718772491996525597222987525373442186757275999691896451727370857279362616737612796346322175236065555235021457205671979986979731609002995483373827602501474605817049459369585782015470498042371228855496440164640449287088569473429390912112302112390241939663894084600680343325507125941315537460781127042904353053234231496560792766521512120684370742039211463369646803008762205393245395348054502614760037421763032480639121314997979400643265076707326528385746908953264187739434901585630417675418967276576761325938538341753862861644407154467502448909854648428342089592643262943895028547139651946042402623973957647621513354888856536061436374783851464982173657160244559433696214906568453469369325654177479324778147573058986068166390162736124523663191638594599079907358116105981888895599406993113349730974194321767438180146723300976174579042872527080066908456886821045250315036846107247596598655839145222076875721167989615395875976479906602240304273859383695642268755701418271641966831941210647170633746281299643600726902097083717733345117596928821524127743172829177618515226125869686241681549959586442037855440364296776596801320718180030151654020322652323534287712429030428222203804261559798255569156702095993622176107526077634245963041288542622881373073304711139257339308270417425629202915458206181710375363290331816327506206909825388849367388994479663005421523104332276118919003787361520560066858097214455100242776784516702802096508899586462544592659086391705089558334497196723000494275737896587114915383531957037653161481581916759023770317564981565851628571449369950289602972413227191212418962349521428025371352552207720298918940915554402564352452684344625944470912528624541224666388161705007769150912261218158316453749717433769255745552891713087741769326911236100125398049818892213664271145148838098717422169548149219530312402656763611336301750132953191179475352804821743849086794616023892809540616282283169404813485185875433819541629678193917660299723834015783811167019470323038797784638012284023360652105485679106097650669321854352835396788795064834742496655436161595490540538836146611434384645056124373443656977738875828924670890579007903216967373659319008390995795494284629523427239991062651847955616788859033323687644225781684189008580252765153462151079457023275431413640878685843999302000383269018085198195664245901088903618116097889680122558578675618956049098529482966341093045275005452435665015053699000335813731866628060511425847159981533037314601678978532880756443137707841501500482658628630551262682496587712207532470930719760845253344165363460453302213368318114015400122627166341604469669269730706300667480699196091535562828097917628429626348568322011722702087579573664655415677122943173400235942642178123186752726710464322152211882336661494378604795076177190515771449892901182195617537868681953006400182326703984718730784254536189881540669415282035210801955753859737350634360632802006289789530444228091978138733145907761473699529110094695505809902612656798757325964662860353755311053928443160045976631750804585493275855766954720142059691664985315608491181011788123511073031023154078585796161423813046745177350449403788361228263177878001864031486229104181628780635794135812106956409561017818849025437949138927314254249541776172509732452048658640769744555843868594089347300043539862163110281672818089337903141061295110046684090888725244382318363438309032428937987784336991011902115404923742078265573034848983038002059785639017132071543260876068331010746629456466377265551518200599535459337086914022684302307058004304451927327184405290572048168723182766825944284721234560889921575683676022091329904503299327261026819988014487730121651176499330873080759393143078915884858903877668996947201236084070409122387650672153307793842586324927160194188769678988042809504646900331213444035338347702576839834626244931845787471654467047222121062643975817363500038311745344984258751832333821162735783877587152657936445265419436689210786675641449454368204128338170450005457171390158114770184052681730166663743984507948487786743213088831685974532392105095403212983877562032286526580188886465508405970819476818311013910135951141411554807463362109518656329275415450280700829063819101125798233270970594917245435777653830817981961075277697726164264329008605596804038852438244322645630193375203247421800399938695151357741768473266651908046885205469668227299344144776334342321422208406797176880434226669127848130622523122229115529781208184590827864768219546041506843135252215206023312044120990540595728266532289903553480519848444464040401996566853233692773108322756368528091575929516503896705858876996707438031703205745615218306285442459349661747634504254398392809555566871677967031084468982848284589957570526963957154069227699605426422218623902692755557896199539097911045716064693163342109433243041615006757575926320419265630654008824929706653717515467622459780324289192123745708879872921358739178489965244239069192475858328519472327460656260916269996757540945261193247635766949306300273216051822137011115500845768191448919648368907387550429657821664936704895126685014643351158085624791362287545089007086848119567142568729941875235512977036040862046850173057656457357290444348917414621463658594839026529466040890109328788434556002206604463776428224761941184749751738081527112165791231105785085276716222920821616339135775668912764668433316402521994760935983541606130037435337234824171234937920033245468187126330463183607154035078061176767342336055476556724893738004259073543823610338393986367565950650086443037779500671811245478279192147398034226125312831119914608322224878170887552295713824454076440868084277530093152530337164366870690966562292404137895746241307429333975464754852761127315188651518447620442206263385582233698429634402429959564960355507555182961867088999985559441881720515698333266284043986912179204858995677679243916843388686216651908468526538552772518682189943180228234203443593176901543229332199878543549836516303958846615241906345205372301329829760747095480550572149649708247131395847225243452931578086595206170128919428881966685204780181973535276893762677742668768882332372853246094178003979737367410206671681638993506211899456080162214182066098994054057317549874250740371564637072317083352508692518665266568143738753120230579022698337702182835065904276625488114353191429610227191746432696919525210661343937983732286977823758788271906722741797344384251160998950192091153207904398431439017806283220888766754081845208694055046837011745964541601911361536708953304994798116984477404309989058454777565015134277562711030932780989918622022201099135840598895230750254414410327830424576542923310225887706713016440019573794929870869717367460387680882146404457441064231789787028199876942801060542189464845625446334346976036296178139503539581827221209502735726336300073205000447869375848525105011236203658911053706200101721847399158899883467688418346943436328898183155653649935236454366307182895135127235610041652409506617389758708832237826766872547104872806651927327207556584345404274490327636370280603808032164745857081499419768781926447411159802886983345500383371367720977209920229055893183759681213873652225990655288932552054262227030991162084133457882094791775455057703270042106869385815862156614832472808117809825525218574639013458822520770087085643606775639574218623826560806974578072053172094345151948815379926348496747762328384503886244660023593884223986763513758575862836737691948189166866837757029772741474744173855007619358381521328030062386923242086432252700812612891198397536127615265590863428588854810941840331110369466856573573184452524468512111320245656036249629009570169475767241483932016865955076610519356165084322243916762411521176881194144884762725225542515707032430687871819089236808847986842054509026371255539887259587136488730774661766841525704028791700068662478952938675927496096305315251084216687243796240709964154334175785386612459830751977869858476756512979822520067104400399237631699848844841587205489896117699670571532392389126396274743590158989195900452082566713009224889286560559471916048311299176388959596323947406058315278912179280459017092102683076034746121920081282914094064940771431067816335110904953821886541463185355071006253224935392087918462911620052609551377246300122397150892724653112147418724228376235055972978156103490970251322290973155768109163552935644765639389395322100368991062612905702996506089951964604004612091853157513489560466162218007592436040245903087648384113309500670219600230408940591484991832222204995188270913867332966086204489943261359961230376485375171277303479586107234435269480823507543843824770341226509632671265366289186397566860978548148668893253076389943719131590983025517156542724453554337819503465781013596085275707380161905339067560450544604262048125904580923691362730216442918561357883668033917473715230688082004529692235030131591107909417252866679681467838541900889011185791305255526669142110969536465546349079512148388591088493637764942370398443263168212496175153824457444905623110305176614381269664465949754086018967689203521777248537233910243777151738960584918964266204919480334181813754588686623407471842043213483379469949824623521928737062530435430472525839243857513759020440143907421715056834584056091082202279899545539586542707740447295308691842629950244705685517533982591810460146341758937787405333186550924148900216557604508903375684308182655359497635563754559998371674355272465564018167918490160470632487206940351228462804898967125997176017606364182823884135426911244250861063456684758994126604259840036416516403107188368612136318633688978050269637667406931843567341762813794879907738554374483020341666346894113705808932448935514841470244367320379493575891850440172859833014567395877687819741207471921676371151685613208479684628733537644036592891573414756964828020032310568561420507095174075136125317564709331417222649982977529751431023793336125355504644793980345132917896643257124343308508028950208268147097008720472260018801819559127665644274151991666135102578485441574501123388615922540580347281265582246683702290623690599727667418230416567505947717505003158367927873889647169197373113371125750791133069231164058383179520079118022061446168656732174439567880739405163507935731825595187580638303855536647453610869589413318922653323168564803553144426175945818285380228412783604700669893280469699515252222335081829937094943206639312338231232343488466173127772530051508301775957127967692354069868424870345999195001580319475335737404687471326627197286436338140183722718284433666889392284906326276488975160846416174226268173963314761848670319766386402343520291102575316585753882803986880496843369379289358861490728315864194081969423941291815550166891430042386661554798741641065897355986618328119635288887423224396137472299277089722322776649528856421458866529426465414762296892747349934437879946115024295183115043882994220059440635010615451546857143638864401077445194403553533257705747462537630153760469604411046373347108231689624298138825191594700258045336393297334837025762258728029426085018954238697002382759920872322022753060986791671987327383191878068285223149106912254249810154517584866998029321480239294938362193169600105529145101739524565493566187273695508720052865371489142372964333987598543351619242679039083903811548545784732155256391695044426591290423976575463323990008509918034420642129055058761614645999384526164719595486390043952170524124208381154828795476543013512753739673063464493947199192520977874480113949728316104138161751623768128436468734865588304105250423297288846013616442771727490604529701664079950229230618661986618533034483855882106264285090995752544906992336695658464758609246231736890672769161496706066101988363561386542915007211056829560972643429443440589874385777067685282998575358820290514229049993752936059288688307231263083300908634613585565034129600674339319693913589046059953101918283818065255869638022565043539081246722888365320583657926123065849159510928010415360396398513115345246532640017860155333754131009645265598692160322117201659635921041927158854737138044024766384810995670463694467172989449876066095379989999159652332876215687733018996061585519092007830491903568406797147875130464786998113849919053942660581988491912009262371046375692026872762123397058710180620128035675600980008778088142548430225606432095542891442551489616465130858449431155827081497992371834627140854284115028942888985238776864708729424405104822894715703705451976969757226377614241878592856963241971324228205312718056620007404383637990928181154751147256314323712258664795568616757421524406275048675463169655499330085101533029523805426690946725285332798325157960679818847021504377933634281789680106452177356194929295073627043826037160729679197034980632113850801291072197447922926415193767561056844350694466106001360782422848412280044081539673990194990020315640074234994436428588876044423079076366688704279779096263906584497515849671906794935931158529652781727924475105441369912567303065169937971824257483494002814696893440834114588858546127199786038162979753716173606367192361835639263473090028941267983065571198979230653556039105937978998501215380510078946781400267103971817045654157018047954578538741234140145335295396768599584748269871734163339697497643751905952215640880472395885833435337659512827474307838164315770678817441522075183598814729897186599657520906063926956623694794032624168684273904338720745487621654910340004504010018391458082029570849777227641913301378435158357622267848347526665152520512713219226632984362012656189547904508593087317073158154871236284134486286861953748022968639688732451743876044743300567398011096680995708858973293032635266930578161819848241562687215465798961800482760158172548780241976215044325963238926433087651204167993911548264214194539261921983105865862082170653863923856621947236985513621878046006921288540194146416914857571193477395971374426130028591171686168212216321401986903480681250463616458813633943127671695777404023544251663382512794479855353943952928766477455026352470535216181873804823497850644812196031694467204396876536538694504473125373345931790034497126351312355471554290302636273774546126597132690149593241439098739862685690825532844238709712702354257439223520024477749597890690864701119808094462214523429982261166172692278921010780156690855892110768220316314904426031250998639157150110822442638509015014951155827782541175142914417742925288718249255566168077973677985465869950230840418414646751005936478442702393139101643027189968825399323835137595277597136059228773550077574439154217166633269804514174344102336719018548954824532403924844465770470811850489389200480026871370425114254296639813388899364851932657391420406227566299892551695127648794692582980410506581890671588839753948478267642949109150537111904321340576132879755829741112607502531676386374143823743016039312333479934964666377171005723812763447723121548232824855580857762663806762682356024188005858096181200010252002747419875093390275923290041284191671067931697939682285765383370549315404405825005612207000621844822216454822375026294077915400136008941255362074381824340401244738796109627597510576395162211038207602573110500933176294067472114525765245342300277974784006985360831069830342050359453989418191960781360146510311496259516636934205766663546717320749041704560260573490751223953435210497614546145326535656058198742895552811273915521624663821003354240302732810225801032924198856002389163830732876572811298019779177882715880908031048772776139134974932804718863964587687832899169691135951093547057418196983123314867538429247678219951265239682523112546739302801518541745303253137217664506127088025290490246074307990156830640641954757490986198856887931814030911150644428939766837356616408995051623180538732294443773486231702840833676537163639838957228547022214855348435756626204912343540320545007913466810854784633762026865845281140447168121242107172587716836745675717403208164473068557071232288927577064606051178719472782737060536047675160498271260704565540060441251066032995081193159479984988030148942097398432583538343705677128139424069147859825364750791689094993674614912218851633744763451451429635412932942924456381482427498389904146261815343688960508984801683611573430742957287651505724772901294572460188843647804844018366625927792085538561036832082064487472296017241309802843501967280317628741613862129515311674623389929416524248521964423547894364515870227099777060203716053215024835433594428973240009641055300874958592135126739939750845503488451905548199934270046335843398044949854090882463187671295908834776372179116787935423617495767612529330912264319912526845890075469850514470453887196578452216769918068362035397514027020560347945717573643760181202639138891726495002063486640074800217684161873428599553631568006568300649780228092184568584052716230654538495552472502161616508333744561653759552547512109573879316552366093654619916664898349600344397918089081804662598167890088488453512937548229598685916055666604864330217272866646250184582106455171320354800653522487358050920389530433878131761416759721358325493474573226064114861757926045942316456114978896067516331110165073039854420546873158951325709178985233108746891101512312169159367021164617988733717965235238255678083990438920994000414285705478023018907198698179000384711861372889596312953346770159550064446815137765802004914445096745748653825035554399329983894418066643692446795038177633880894402114158424038184832487256789202303639048789585473532243050357027984534045849452603964512531523677098405040013824701472546060576051424784462077788018055840561046318133750324004745457915504420446684411867454328415915682733416387859336303360296271392950346493882579328480336777904108201647266598154424821865121295441436881469251825298649380160593402609344618755501118608092407015554489900909202056996245737545406868581656269299378455723497743905449166119235405935277956832186370941600428389262785817487567974237384817550482869786657959619867860877021168909421170032905586320487940551714921123982242975834543091355943337753358915229159935352742192376197323559383920867741116447953923271603249549435309727422841014627302267273096907506487105887066688621557809987150641171313973434208140853001174666424712887367942579761774852625214380235131482071598532264824389950060260786057924122061154758023547394677443038503499682439946286093134441895216743590103321166888287960494316436321049789146130907780368402215830940952047949251012772118804900427077934868496924939503182999303301818392126571094662470430214379847269274137563278041715587227023346853222957037006772680884550628841537947119187631926554885049972860671525379334134697206011279268340348437128567519367827311001155700660120980314208308759038701866694834941970347159545490979004334230091402371116951883278917600381281383624878760041180756253905528931622043763497137935948846068868361803188085445720877819221022470716258292347618782445107028667413561301128615563527833702849990734966693737616402167041356099016676873603309003454868250975223784551887036795894997431037788017854895864992795079416663246492669336043832389371480123326301969025766949667674325806488550555624097817464333673709830901371054341691611642923411249776669438075967722375164810839523982976432187966517768942712597643438659039662939067353681055038035333182729754535266087514376828931784106943244477449482028099325526611201457515223330068111378194286231844983808959618688364342452320407516528051483164253070542158676352661587475485433944780182523202218612580348330592301213173317816128673947366353627988815941191582414737979585988409754015018324358294258687674183792699436984350181721650089735588854093765127920336515008092650847145387306550247988399097486784706778127547755500147236500574840767783472792604819439191436976818411253493733555081004849081950436034976760061083928125989782200481118540381445947948846405629606889879384561098396377722903844996811610450413168928164835840792546984048981114120720621641539346489262412493575582051299815756864896222039151398295140009998456699004349957469040657499533893682881538890819606614412762903416567236668512055287676669204627446479881109300710522177418283349830008912591170257008244989587396402283297489580733559589160784234072971373708651424275922388045964771490870335048337756143378831417460392710105249498981829865403587958690780646113683763280711932546721598814950251351116234934271094799469003959778483309067010803412772727178336775410998901461496669554877705196103514869004473604940941611850441733404152585379224017661721296758465986297837885336842142619421407701823805052880211300326778768794145954971725046903907531265911730791185084984846308514086448749145976271904133642376659288113137468339669751338957754854128424576575106021049368011088108776776260471866962917156678800505464532400454934682753089868633137412542118686140856229559839415329204528150605072233358957138715866747100292563387750147219334115880114364737135316121454524819281609638347859991915417999549021897525272412905040821961682658602230240511823827892027881594931893541641750615784641070463011495206868887869401441337946458389042866514454550548896461461904889024667807343340169457530282745047428315948690917046769248392836020860983497070719631614380409302884208250170148876134186387719084258973774739464848455861400823950772884422464930466521880776332009728021556618534354854493709929516463211089912701370592682945378326926976232084054645615268492787580697317772199271069828017442378445564059694554780521622018531088137831373064279637934391365753553357488152707319492742044505569805539587911320361286584210331865149770367642797780413458403914718466711281187213081192530452860488812502222686941373847292221000541383999695981325281162720460618954631940563901470810341934728171084127323954791443084209638169745680745457659549961617300790687557795633173422027393046110407133511390461065055144960640330737951282604852457240882184792803377608969600387451974787617858306066367096152824343722117965444605000703917593901929999308366188486390352025142787090708881619713957555180062402714634691700407815789527958920096769546050100726939933042283460274720590344543798991811377133432238404428577266523617793605283868037346689670804373758923582350250336357486299590114865094202014406031556347000458044921608875898783675899520273747244211286482134494182066781200385982402740656266310098362425234425956682055542698883164829586488136101266030938271113796309672989277259561096410999967241699176146510868147180576315907664612881863473285453918652472049960242558042706668597017287117365729915912978898983314014986247978296902744242625208776427786442942960881985838755139041728745441395689317329398157527639096157742961821975290403938916478877037294540082619244398220700890590630849668884560272666020730071167064355584977983043015853405771999312545149288716670555679465788106497119373771062709673300106725495161649124099595415173840159517873466258904258106370762765254495252911280072482900636527978558479949557867517814489926851453026524289778404914619246706606917756973616422341800063602997193516994582412110453751101324868532683373374882317008117366720980257799669403491379547912749914353942919194237826242126706863001127374309606688822411083663986266739835581175792097154752192727372346195621031292260229590691881984309777222140125042476441805849677570945614630824873956058166827078851595611841895678509661089320300405331085576871607794760630271072802610573760599302854351717560390031522734877209271730210526752460730097879384566388621289140480335728429141017318010266323711557026157978095302895207654007131565721909606292834735404969064394190190711750462630462510847038963332106406803502876883607379014286998938889241303237182322357872592240387060836254622373510533796324330656278030708638572386490894712479786709570440331119674605269244546727673554517327365768381481247010875270251146952901854425752869089404806027554232223907058973921090083927894628398469750797250879491012674271071835762105003750823991415733387449254135096581710903834799907409833563695093282217032117357834243317836186105727955434597814598773556750021556704355452235914155853592197001646883005533541753726356693268202524685633938622496763427502799167030808768576125975792427245981782568970901557980366536020117859534484637214905374803261442593545510142705932858151642039508950620082416395586004863575542092893520780944388166860530636071775500572620987914847644927493582136511648977025784331232208639981638960298981689751886426652336493686399389530485767420737034196897287301758923109644949858796096559425739176789491494192962649613949109821566996758149760853371664492477374677890555394351068811517497528363897164214793063692310199143549409014851835180634714546926419575217494680256201120727883271655894664264243210469372704482996503938320081367004285722375337342451131542314619248084113831767046208558995817139216979883900092400334738011089036442007199681693008561930713550993523518434198276612865105269123649782461763830866709994952464301317678572290788239527855047653296361782182933311234345917052856298898445700376177477443166604392790620535993049292440483167493120750588208660135576436492736294668972918735854433273876697045659088039848668510490131099337032971202930383937723798706927925072300888966279612122022841291099680705505362948025165937308270821794374121307772785158590548967199837998495381183647249560168384647263918719709557227806725407866873850166539965952557062877179094973749014510774118324687768232917416180479621123688173679641117365397108039776500125837640842864676315867734361503512594363119147028300294613362900648938078538986709641485404346821305770516994120407714947128299134629072143030765579720213967221250292845639765126840604000080700994256562219731926585129664636228668605420646071139551666338827803801840533059661009341728602919960351491023519155128858652966244930376536642596186569649752470699565485690170459795588692075580409469862122675987764061263842915829430481198820187480901300022648700103620944729188770924875272255485456629471526004534603302031745789330631355480325218241625124759151523783038550112479238029142781971042973273381734424505259891209079803951785164281450779281750762416347998523933193440092382615833908021769210871195282194507659145068467225762634735556140380295717803079184568973664492013631842993616020057885481321062102751419513855754570536831285034129109178740774036798556742349922072915499362950611974356806122543436654683715205101052817918746310196421258288455065489851175082886878305104833041995691402771828965015246342241852632146836700662755525121707751638795647679762166736492537600923265458759739869418872842984047333068516831425072756782871336187881011906595877510250428377427386035518197114866818073189866953014163986545974263775507118935284856802222341990782172971353592977207494666066315952546557971355006993942831977052773084806012663264440970270095295677880407921618510481708136637278501464317563902808350471385393640555448422350099859798462749196693308579832250273458151438561965756211179227628909748713356896097503752340625192539218945114142479663485186502500210440609432240735088399754454478871461949463198986589249898792691416854753499530518056455379395439646196664031154995062792192723929241804397494861990824625540931739270481677485993164949580837276547115237275295940893202380314964798845405277319645226415575014337441721519895455840433034975627786628141421762035969344385020515707022564656250982408135547025409634641810283878831887140377649458172861064427373604685535928496141594830810367875469842516414195359865166774470194197726224405168559184038246770642178920086644591086605137685567288314311103620668146339622210954851477740901682723968350750039822716315751569521885320231081912548930961269963737137935983237457021001501916121383917747270235802811689387896704206683804000622803600292138383916416450408344690952077854725971587895678903207921769351981719314924286856250817669724017599310806053701099630640920352279707909378074046846677956526999520931948885424271444472761295578755884772364307817762541313322366567727547955941908433882544405191027097960481634835232521882424170607218468669856618721780105739146753274950432517274645196942066649628188630399042680378436047423127728584320817447839984375404633842689048350790115525781239469244781788452478629667620177850891835404183498128510088475138277001211504190044597161882445688867564153900271883337160322541566722868439372288886710534891508750727809742474300443376566105458094061955220827343548846302323907540854649756095014262534184326190168670450732242615830161420777825999834321748382453332864447076408447991446480691623645622693573177746212984936440526572014232087156527766342756552721747497924768155539523362505958737042268160836527196975208669085211669292639231518065899406543549451591827554112498935612536232216470881379368315469287122111039773451161204824121618139921027620380643791858419297191383351881612494914786288293861445241970312123426098706130119056955878867491570446820527893690649298217969287893595120167452764260542183085519396961684466978799164516324089249285168871986497943369786164273377499291284451107810091544819695477049264173456557252425178123792753082280308527353309985974385672613803946923311561944287053319225193536187734961982756528010002929419895195454149131475548148066372859088372280182308894001222197334258761705260042981421370691304786233611181587855803735850199218539705456052132478788249001949667569018583685319012080075032727747545092670158561847673744441001128251667300876987977459323061318999830500382425839999370156122880451969105132954315328068069246890392717255411635613627244296410496788764010255618481924330291236158345729638462455419225197891476013429870884535229954624944778263194296084640308632082136240699371710047497899361592710171850978043319790309389437161990318391831076251431465059958809292056725456177212170131094616343339982887236899035255485303161647831193076996008809936227957919776035726914467872249988324919883819836114764282816497671377511335633916293434366137702026063460725702912621230665251345251877543933291136841693748630433311503554831151085974899777775721069400673320031280298300119889882313724230719599976701659248988128667264388718002977612411962310208950485666770856567626160207813392253354282386486649804686528598674610106485297927685687833763001246063106153072667667169257952114738024944842468918836457690645399370086054943848474887712237249647744739209528400766670919376957281458864153116272876033652491228043303763909981053583401763762964300629013377987269292379365810198390249145863088690224094651413658612927086840252380752932281396902780548757827251873964280680849750292249902280337293544485478734238809840649315646528168377026027356073874481529971784394393585964389082939837661855092523895707181691847388782593009025969833577354169369227803836561875241872201414799323491079055108819304707968190923840258263362867038768487206015281439054547274638578558813373779494500684205879508970953253270058009927532111205706966453566538541094682055915741606993780029505804237704703652051961130970153475296030150485670241822644128891024496415002271120994350881403381155676040497938429794459833488672113551782690146950758172408456995803393482721423785765375076044604526815523152806538263635796856170260900195409416793267650821342821341116742169830950158358992174856401441992097779770357902294360238463795959198343071680641125692844817398998776082403122633570207461345051071001812920759206777006728473682535182501106536335012840354465091315723359885898559725801236599969063810574864174399098838572111752557397313443080052312084482379555102779499567737042466112232696148067222370796926363643847210849950513251998959984700705155323220137596895000502808459708950838598800221026586550497067467631420855842057936204988826785054545729043630844281812528422219960469587065530812394916631873375240638615411867969116990044962801507419581031982711532991578697309626196093396055746454743168269475789256944226107287946968860207658274303257652998868663855487716894551415437063045924905268967180987005114191422028457136479904993450358432590333799690415195711958421026485696656670546321151503175287423463707681737976748308126759817476970423081587568793332601089505448969902346427939773600010739028130929323185254626455057106707688603372562153211918520035589479039656890730878513590516437295266888992401271376780508064460772968474509669200454666834932360726767852938594319503796698413295705545143418286600869914698560368289834060695919694302954441587748491826378878187539206847338439175863017144406105769081700051511766064284913206779078881516381771448111570554112248787360699812393369632089972559225824935051961600024613050146930540730984180345188654952235592501928334412193215268921277137858456095085910642288874423049992480485601443678117884982886818343852721578450280751481107214991940012581893340953210035374257597714649672899209133025583585892073625738785955854366954090922892556584629038136245537402646750939926213099249908775227580940396748361092045650420420681939315668647406184996264097393331177777290946868208428149379165556135953436411127707510353190698244406883041061941306587498534305113126038807091569443989656281349839833308141024012739286944598871871196865733984899035087190572922248813484984435510458297388703166221880982289168635829273947692172727942781996355716375535553277248023427485925161943207239477228407801474121157319769199102116127151168538169136296495712356958641679093402411586274273668278032779871903044835874658242989526150858100666917131264555604121401363216008010698751019793025713203126888773335508840407292524812658506985446360581424199112616075236887302897529056978039244678402211423400073534361693647401180662797930500772072775050083716717807488823907476034527708235448665243137828985237301932361452960028663924444207531827734637729316868485261433119896351030832162912455399646602678202094205420453333768326304821534278293952078826119886713818947407259795796510093517954516210811185465734587527874226666857611817961016646805249829124693042084239903685860780539746732144080122456652103957917982926953701017858812205836142358217510831613858336763397965341642277047086291212042624147340235526683980245428834786100002991162345605366136122924462742752538696222630493265708638041542339838852321152934187580933130437144682724611093658903768092296448834798977127028244260261135575601671832254350345396441191093449759083956919527196046475456504950927930501773516841059342409876473953557325196582285800087136384356400983387709621841969203516923088504526805613934760442030014427600165503281158996285326590233776828218388836854212656809147406050183804619269214823650314804163371033113146464679999314811262503833811700613665387804399865213058738924329524875797182383652790332961939185898801567619508633813480074326733098559687140905681565904041995041768345892742185277726471356213775993251137412462180369831933083524925381850053346002411905236762111493301872065305971466759080076231703568010135505960499829624468688802765773398444145651517733917005888319036304819490159117271872135592520914030748762089166482702664971559027515538972652073994946767148341948514737812476513737542978511383466295736667371789776664073389182970349721280440007177870150497974451022107323234045765375726841229960246634905406720993045647612734222424613390853184469029061706421751665570706469065109520484438474463980872308493495207934701589318063904036950336538570513902067895606754189179860229277422543497571821717317800029163974051941025772473564480214279919730206312837756923725203199903868225990111925100215369165275934526967920357447303882385206526042507230257825958260539207430325935009065819448326640618162866966080306451298512722917747469924857087674931940775673839739921594149319433206166149319342743362239937429538158779830572594225843529487835420457576861073877993579450738477578213023442390318725566456262088026793996375667391485537893828371559563753858607535925071498721075399802074677038032914839004192130224587199833972788956035967641208598270039736471407706040710012620544259760724889068456396555120991049042196507679974237091149819859633522211193133772149543571873941121999537149368095015608642651157941266635639250418668439711182161924847840775452794340183298009952738331570741459390734471833402917663298372316232498490419123893815601582187168808631997757398573863802725647888224196336693122254281947277533163892784055650462258165446648398759559739968119095211833246172307157461739290566086143833262114178186788100709269145022728963475409479447915845212050179453183839729440860612766567133643548134174659002695028184372424040344313574930012273815856451997586738061907646053167036984333956628550961742713059158554406868754287464891578699647631162084694644461679348269714291233578745859414946511825787158211170906652718481371177914553798357477437910673388769047974340355477426484176357527539420341210446251913364472502152808458942389457001616334200480811615520548231331983476504795146849459244951835293346645969455171387120800919756996687893217233499242157591399813875662172562255738143767352556954050191264130000955372163264001284413927488615947280685520293600808522087939343171910976489574668704310086246029318980975668180886681384842054096845767966855155693740581152836808843662383646040055203982146021123442442051558306811001157635390337626997903462193485994015441408048221507040497153262833369906941132783057908786863086702664022189565715898844727548147725914833502502950271485783256971457254459630450336256570771942211097546024562444775518314134909656929443347457419760953794577235779746873979484548461211250987572109424650232178338640554678531464326658809755052586654635334808632426732524063942119320735816350552894869570552465122562256054511201375958908305575079429110275841400598246089871457825538918525843412118439481939269483512796420878625090031992679457793082388138516615902144717678397439815818495210249170352680678932401748059335472383915087858921447264816893888297967177748538882137590960838859267499590730932972090879724451207504237823609429319181694902063356142766679653458072512260491330507404511628795811517613194054807935431460350085100618304822330895156577056393279069727531345645824289862683976347047081627383531266770501781615853747983073306955700530179525430093150616181787953067984036602477779848576475146618460656957561858517141288737021468447613166711298608531636698442767713368393465638039612780994955255785936881343529250666781256787235746248632612605901220672916272192198068716000562043566056211928166391131910038438189750081094547387762810281516972452119478310174003946668454952255905884603116765651053023538418744262470699374655388241082912693317817954466314470429545956662978281525184970017956560612748865807276775230841328219868267164202848391771298339655625193595328160552183036830830158643224099226712579308176778428438957035589710065099687990545779815737280444124803797939731340908246038898957711457416928484729743723589689021393462761176168772657586480555436220709323501717469135917980017434108682477882897656804420124427095991190074045014767683293574686322608173389719991185405362972723305826215328826944034245554110235673431477907803688411087461032252716464562603401219232275321861019881289350743415420077413730955902958720348270154561944550637042290583036670627539966950653304333384222027625225217020806850194416315250837042992420957581031693739888879021537589771594788571230069285036797419048885153058821019623980341906141344639681574547954296379216207494796792688156582126182066240260470880451898208454809248346864984751004033132317221542281402348035983945006830178194018585184305689763586090082963208401044255058700862869610072857868084120964607454556050089206760189845266712856979427857882451517702009318636622800548718768090954877100737803856781644400274775131324708984040710059491950458691944108547380082195237192165621257517789798449153797382277718878780822814324922863944068938345937827405107984759511590125293630289350446685684316254055590828790822577101200737488057529326882856182636988137329518614016788695424875368198438423499821961986421292319311937634689143908737306945505981920611268260672973133097470859387548062779794838402735883154264448777763126724462203486559814199723382013986483942763547837130852409385978028012197831704489771792643874945577337247980067464660228863330277669545485483812486554083190314833281438159231934364315625174010227525685792479510174920713630173887797655886609823755150696805543035219541610377541465076096797258896295261099715223711910283888333523573476757629586935573188847571218240505607232428240833314372793138300501267595461797865830525491759635377060466186930870182736048971023861613276839122415944649566311289316805107195922435529714632533677249840865685700719228617076628205746755288372919129519860669156240485642503168943677124689616371536170376849070626122594721365774647690808010225960793335779616772313936184040080865176826467043322399036417756974141735076681298704076280953717962774788602196233590487777521767416832052567394796951634896937759951198803053665923881354962180224528733276302786600852284360584677842152901617244786716561425007502086776520620708208235135581701132690393625432432386521364559936072088569529688439111243594457975992884018714931481295114799396517312118514853155030810206212298729728167158813218188575344457276697992563885094426538731442601612823018604046971615915746222367396240196322785470224596088721858453871320673642183490637881315131045129365995500002417655783115821058597844136716602973119230981418569208877630707311911856227661049414187929798133354319193878482259878053150054749894650222823366561438777489572854482818518396714410015026992343490032407244051725711813541301684058042797324610603286610720654003873877704875681552993818156539632578757635319369240527012379593871551692898358012035097364495974975605234605154450727098293500865729403330082275008118241019631420668600406586744209539638852328675656537142891580034383118435642058071551006573136780344332602231957304791390472870876125969814632635624736232749780518918517399104391502810995790281297823518284117902695796435066749289800154252850347317127882956825348541629536281990144526969475732275472295320483456367873857912017052212733726313712410223067061296089518657064512170906320068556838073960095333610239355991995575908326333874749867430295851775873080671020457313480936171922920089248905253109608945654472521615523183871757419716781854712861346826768686243079827322667866156047626573715324629412115009282224109992513105860938554441442026205500899943430947124608679314400833791814966302806644601953246531525680868234931904490003801989153540846327144557226107717672508617290050904165309242353445704113079726868987025658046381717759499370014117650500163168433243374688971868304214408534371974763700928552183532227246443445933223531800793567010498661980218794886656598654461621469819328696856972820494714503792516141118988314234590179810936107885840970519614571406930346527231204173734258675187084908350968745223137588578742220210312556242446313314586360869777363958293563075702646513048538714368577452928341372012822418706487687900238345810635189944218591051592484527743484543236355650320215458396891525891879374437703054981852425286523704522280515608490122174559090865716265892604683320168646354645944785725395791626758042336073038167690935938355754264473859463909721385815830027189930612877605814347720495420674980530320209711968502344355086546675877521116913135617253437491311478029530888995900468777149278659636118072898802251774101794265913259896253229360331827668595942600598588667418365684595214965133989077251371860126018905509142873275505881265910799389827390688581198301330503170885007291814498049839391566327351923719136639277412498426581713584861630514379525042806126574585555331138418787866307150454610951515402841527737442392246132784368032774785220422862083828600728693305047481895004239656058156859496882071049096008216806984974068835069081392792835063142775671943453213787103068018718129199343912073132014419886297536704708154541207016756226905779091204842385250980930221820076675869780918462911921583125099385011047706916718966797082966513120082692408259286121340552144956654738848519620045181550546905087382854336736514374479331464950528466665352628759808592350241995398253338407711299486929128597921161576393610553523500552543538396753351551689825838016141231436200509672138330127734242380519956150406007283151427163822892290027480241968291446864672189712854140373372241563644043865128499308516874786964714055612429163351408775970871129261609882766250278907996271776459199041418344631756891407395446980799370437811944956577858929245739249665844436548067543928658620607105139895955182089372147090013387222086568549944325963640003961345899239484833545594737675241165427212346554232913411626028716836698482843312425051038417084121471056504090723968011841129919164964385111388776931193107450748765810197242950261369697537300411885298224645353350963811218860926574742451471254945494327744160832504115732653478726061591749302662210322747664763014214184026460738943463347803579506655952608137173282371106265851083252322193414771018063441283323059454102248044027249821866953194006786336779706160012773616374775046547982075332684900048585962796273439224370314149665234860397935771904464884577990102491795488875894655410662408902232058025567929006599270894868832175057939153556515927890718471281387129567791968512415413574429003122476544865808305404963727416261207006617444211042435625196184920776684436231007979108668502376141113587917961863740955175499584379270352695885734599734827317178405326144532283738138955107391102996832480072686073265811970878760372588890611418212501176644487311267063375667245045683022937682539526351014041911083558624985500357540566385976207987376287977634870865643134374751314107629145896272535869289123698994711171290394973535645757057057530324679676001612502558354946282413790243492495703113007083538834807538031381482748441068911080203112712354379030804222065464440284963991502940506802040367105483524040906680315365882969358971096348303098890927951023582845918801573392375345136386946474893574246162775273870099378777382994130687663427871625207338178544576668126751447276627473762119669843135308251316439079024826433853790432660228789541544722267774134170865056463868662483630494439227489753693433653793584165920563744536688701828412760699093083673370015910111012651759501308987370236057656391054430622681273464363044749397134195914198712004039606095976770261693916043906568840663107593760001416325162667057685188135106667040186295531933974283258106120222008025434527406763073453074394942568583194238517298607391901977395724929279486562644970994708581911110253129662995321836936886012677675829094498366444925072859514285746286528385208728789209433096618691997386966483671712078828136005290465529465208578095952388572117184859659665925645353859733284541776791509300719055604447600923438704095946786798203568631483403768561731250736400737135143329527200610118646718750591980800583935452388011488952419724354481041029175808603466848030525392450021433817981735882097852007755106232294449194967240534121630390660698541971274532347347551626119351272633675128906287442448562860824199307345285005745004325657776718960935910899194227624839844374438267163464891962473146291328761014232397798658760355430162644141393550799668482051304335876001252029960137272184280452306236499859048029301488435916319608822965623800525376386959992722609842562657762992769541167022465273701561116477700221687644936267823288035964032214451490166836904134669575354583900158057541855948197028205989819020749002378087836293149494089253988328067900354682317313359356050522832643064022404636685401793924493361808622037709380461507115735599687591251205041381012115041458573948926028585934516796038347809812477837383545661027606479035073923034469121036796346002965573025319670404259183710933633423274966989540812969284798209143454189712705196274694480164599641212287109964904232968622536885116349933764173994205556637118170454267763156396028847330123150768175332802294497573733205081655611101839453246533298725652468509829377128430985161955067847583009162288627720643118595833724489253946612027735501096399749539885826402043346059213257156836219551614488828410812811055157674736345838704155938632947146143199889478877064392024861717320571087828798475945046780601963999435514879890472541953942524992235053394823682102998626526212087747752941379525485783256454142940111235990254238329012031773862641166074907532101000858006061302081626915233604644734121752173018854933035967325863632003945048998540317152426722948672581961434127081449345914055284426428712007273987198026164413490261151272725784215440751420256706001925460313694872843492691901739356449294436554472084912416248624410326273972302818241879067395318519499439821382639647425991985635177672240431810114563222433349952746179977332927011661216823863359238659645941291257948590834038041370736489143614754525275513442737702112877920309348101944502705208141212257804386458664366356174427553790621129551683419681562671301470890915691694139892819928332284986711856003731260323349258464435155081586177395476159663217195541006964853709517473454806470900045421534136171719353242343670767713608131380934349183672104015202092398512282899769148748848639859451381716629029642831305599873052318824352388430760969863220024116576476552443413157108604592170441691679489769734584712753950182446026575303213582036543118190286430750016121160416420434643332919789103078454913496342712549426710606094476921436573643886638088551107637499784194105951916280198510930069669873669670811523048724768216688037596970566799407999398085110086534841010773656794014313062425235543661906463828176962266853605159336638042796895379642679545846234998969834489700557421761580458268785085205992165069511624092650405196292348317923039593862101928571908074861967971745880332503137834709164758883792927474560203653581392294778535889441905543075295264257705175920050967166690883000589532258629825513799747502366388462050905252397607256949903830497291621395763271423347970010126034567546514558434497767398088198917384641452084763524266951607173254860540759950282356184947831902445331040611135153769378245022641844703216023420714078014713130980258054262860063544877511585824353789580478529538248211507259981357571839568039375340359765467443238357136238366604507226358175370274871383820543109122063115647726455189870271171766222766759874925073338402418319419661603153846103303984418168045808968872148582941575188800535596105203803429854723399821395765959711211710790527469488686811872468541704515992084725072015230871764387410579849011089239851563347612717838658844245430176262275519306042477969944050683604945533324439499761914943892333747553014322377465072862635734907175292191686843364739175807525522227820048487867811068151212066890706170246599988237146479606520026129202605042470714228124275806991584257453868235243743258843600240196688569046147369737246637872408406264036082151992596181042886509713648081484905041411930207991759863654178351245907886710750617456759456864710652916908294440585114317130463194977052276011534326276429266984972289858427100753966039740348345145740997798338220859654436687706794845138166391683001219045267764449155166119952482237947544016257588564466487311137269691520710253286928846374336162584955591317782668933494948891973243742267289908206915278026023251589476714605594186942477823828710741412583369802365771748152801630280366183646614473406246745145304313551619538758366320122975407609184974449155552745422424691154013533348895312921102721221853640728755461639676568409720805056715081260250684258458966838416730929130405382780260482216541473773622852819717842993175330918027296727855308064785966441268415088284258567716118241767221749634707443812847558071773980563873174738649822763046015811207265132308679696221435631010436196088779263438073019899451435207752800406556525978438561959383777474282401965003247974090697526661368478083229692573912193916565650548829466130140438091604756289124007770001173335691919498555129621429348102779579467783507281769735871647130105392161768898565928231120294757360756621137862041759560746096473460759935087588487311728658346932106028029598174613017125356545972129178158436984406028026401633516713545603059442229672046313199633495640542378483868284633855145972642824177702155702401445378360461985722954533055447142138544756625056388586271750001111103009070661800420832743770034939997779052460326882716655514382169370836063938826285409120574992314204919656285523899437142677898172285778169930336375649178161424953482829044865948431389775080970724746881581024760041878244871835595379108049193265774685088292995043487002869097850482914902005211289022106316129982489987485344654232534297034646260484478651915770539301343259364712732902317641549732487632534762246512980725860911077977995801918693717295586444664975935810344731647026775258410408950860161846699360428351467807149816010840478768741273114334737169973249094645959611009232514933105015647398995376233128837815096905370474144037357090247221682773678172465156456071080566033552738303979966267362555263008034326465180920441020015343566411275864844816234332222706531827773825012894358313554911287459905852424799889496299133705411011925279451316072938855891863815040142187147992544653055145100587301083725191921458998626103530384305484005498714677963760374482970990793251175772018646272127667130279284876691193459470258699441595530970529314062812806769057877969437950461450253372076332932029067370686248721526136826653761310052505088625698875434596272901858477311558065209166941988290743623348513855357882537452088712964363790393884602572263213055702556470546037241000779010762717714896254502822505515013922519682738824663613230662075593602750714641415368029643277029430067768662482114627540275221304565649658057308744225955733053269178893678284660021303265072306255676574098504396498070523132149701692472333993853284367207886736442919006411701653583693446124335917955111637161547254463983881302921017228760058559514201302170076452115192137164209536973223178319422741572805926717058606858297445478724035389571258684526540837289892643774693402333667992782549519843444217750283943074229182947230571432176453692344558462077329252700378237140862713518119891799822887515070789066080887142049335375110174650804587076934827021640726151887356233064976804810016192048188075020096335564498468009193311538242700208939083996503781875882631229183913958862464459457670649073774273843005516631153503966292161270415517259344098196422201265027195792044591290937817471953297234559185445040190854352015427459422011318181661827264467847035499825594546697889062990493841481300155176393342057088162733625189770512958097245651766858552951587151328091075686566365551556154819294818353895997653273953359270152127044817705854014415631658703098288440953523139009307493265966174532961722114397646600700782529402039329598468364805061371250205348180320136006362501413543965159019499864474487857704526588752010082825995743056576673075811690385409605220680429897470008520159130073575583653602800120346217634662750626699678965598032451898296218717121805670589761353773547049469542027164637501022469384722667290652585722683332222074838825079681909660525308702171032863393483659026620779641851922297769600011298326084094823217658403110605043996356199164914063119502385567735948444454683255678499521253573213639072490973003968056054675399205588626919682709474744877934843621221837522916011913878891055914457858370037432555788941321671970958125456218458246444474265297173004001903899193905885688520300264749517810339296559499892246638289509611391859098857011157943820951504582489506082841489258544568562341647030629253867978981950941751302444102126690512830465354310669804899477711873368042153868934262613413589170900660347714475315950133054151884434364963382062040027371672334168326911567380821612630338389854780765068566293341514429582650836008482379629283250899816572113602417697006312636504944518070489805490691811696831024884936836252064391248546209710887645858303864084658464799652603146227138870130409626065193128690657170380941913947105889787138682818260186956062481233392583195321333994354470821291630845910163192034615877068387244987754120963780849206641438984847395984673326600288799674061403553650111882790774782158661801903392412836186762297422701060342742075244649942970304181671990455392283152848707034029609844586867748953596640506950024980898911607703356887860937045263106434649855504003606602477936651854678601960508714616496596030675270685435861151333774043161406291542986883800785810646328994754095741015415851454299828237360205691153003914705077397350721006718438222538711757634563190159180783744654235517217853436849308787407109178625652999677367994832354282716809277207614708910757391453361916958984390181037123540250828877688461330504280479287174346797463180146811055223858445929261408020139843549038848842560703230494073268824541019264370931225751369926230427611796881199028936196076216182340246803269637165734612805060750517976506839136002600889062958147626884560093142950162811097170450185614582139407114391223073881613893643186689036543858514196777176377583366724025928616471287746651164442337643039474314595221208247567871283113789589376579678588263574983713735780126003923429465896694396901552452731611597680869073604379154764463422016589386796871805864269139045851820716760635635009064768043520151948194312833602246249539651784406198957254523364894887834657183767675185326660720162883823827336074340049232209067870529223111980971622329518161506228821023874275765112140416176853129063225473059041318049810212188627707009010922381604596751580941230798262454006668095376953384216504063159302943688315659090967878161716488216534555665520031650617312239314268734777302788271916526868806368942253405241534048008245932867473385135934379870864243658543286092586759970803000262209212583797963704934177649811470923299288290281742873649493684635085091808639420523916073427519484555179663839108243469583811678888551758105330707329223942769913797737510693388685047738770031025097370257346363244476056643301124436529247244008874560224434407468822269642202836829860461966664535128505177528607358022412315092849210555296597030875407132841988786950387385437700365398039261487638561857838753258184789438607448551604337109716166661594228530736427788344401563847642264265847118332603627576039923050715070453103394750456478328091135197238448242421521517116639426424244380671823184243996442495209462999124562151346599035263789872202923164899580883590485042141315420582387754397320003168006167251927399353364829385831575418863585234456870539366298741274612117036541669413668443003794341266173265941325644994447920068606326888032911859157403407943493141747967054161152515018760980506740188367826313055618728933771699745212340005117847410649770665640956043960878626908680647167461240284570860159021359626436136025188667168348225929802770493573145409514704685432806899606362748264076216142049052187634514212354088065336161432006017016481102484979498671713911809605103021399074851103119956560226048202444637675404565603973067765482542291010211003947913673613181147889005789432525903084052385062645011134395978356364856862053677581843952106944486454499980776069990302934759590809740277105366906400654758050379858796965785768887899186722617106653447346607048009978056042913378079900278896308220302970897040469426328472371958383668859117587946315878992405192193658467947169200662961182315427787412350806098531101878941250452443321144930187506837055622857794737793463077739358146111638940183137652930271942009446025610711927143278518912945644994454054372104227197366992168589917613316793145044748884342076265791391726493636739372817981332047021749816973017637215942950012777177818914894888532359623552039935911316904500269935834246787281040157000171935135440177772129058404384444486373537180854912373916564623637955807277094007997867432095014058490106764197177804792475816112350318542270972681319226837272397269592668428151222226566682203895278873698599675932202617713996205248338346805365191591565579028474662872028146413997955544803534374894330642003704669005667620159074383021133323749406074950910978427254794206236556145318544192254193430234634946897446700986826177877019126865049421877916999031343942597460091334539682867197772010341099934533945850294614891427838053423194438863214213909067980171420413159464952276952256918790041275905837771154203824385967900177739901838905746248140320443603002248166667918109639780199675195924647692101725621653125501572997856049133264996871618778783521181926003330452780354537460164146703456835343183252516513367081895936470866199203481104855423416136794470230315974942287933324133341368279012433887136008302726559107766263758048726214934058378453967843033262435471485833066365489692059629866510603347928258003537907736957131241093545213491843814818508707298466375861780958029170657594992847782888368790083675599748224948662136197702024974233538022195147983542253962107650867983562528061566633570999547013799318868649901383318825428003602288542974938144624575007223895732507398123216510072277860004052518911153974533819806370457698918470545965989882722653693691018194236816433946811847016534624164979544593311241166492782901831686860729700414375318454369057816963672670628221522592249561157994534031834359345336430872194442327176447440529972522503078917889299136018446879741562461382611716829086351188573775187616866028393752035279048059464680238352095239403820118718307344291114058804721462774513399467504322358906192749784475578627745679989269235291379241202490849190335755330883306190159704917234549849526367784414263560064329954708547440630550651910978049928933332707380256300168111583778165981348072020521874638835335286688112274244246460584630773573473692331211386354069495424456496830704627431331812285451408030685259566782809458429401841885232809076718662916358523545073571028935491193030232246120816819821233298820843038707851052185154318759152049343608063173407174689136814372261884233695481732532880578141165754955840249729939819202138935886551091108757556922444933701612072762650171708604884822139296238942005022220750530145853841745836367510699174424718095114755143531185721682746401024402251203327845593420886666947554366903391287856105879944234607360605352741262963056396706768828025771335638017485144258893227240247780152327023151738214871058948398485119751450016937089504949089178039392039884487387213587928130100212122154625852432412767056972645150773038333038036406212017638089014903354642713760473487140566197304811317308138983765088270439820533259612124027822523811769174523054244061030488515247022157187376668851193178831951480265088083176112216924247859719166126307262862551203899482269308047987797924738293817834157948585268305955804422470431105330691294647098018654553710323014450699326353446670100716550106223040248239740617543498976419301727489190633199234329720005509810926271359825429810723763894815195138241243205117579731549920279311266881584622260148422149333730780331986005675664314786266342457548672141780802532026788334826601435326071790379008950425072506803943359013992336935261363320073754453146680931546210117640136023325761146202967290966998260596673088406134225910397212878460325988111053803066105811052848842029841714825978464530482249568284999724893655793093326504184296115259930469237929651925927634104344671911341338437797890293013224338119696833187967082215799512964097897160664549657004044809320894672988845508443249807875760611642144849812030292453993669829094753139041780556120673718429830964339219407918061700827274840972664731245866447082169262637463390111715651975746444997703126274288719890196415182367213463499561350600094256602155203225659898442646801039937708708139593774246857405606241354477465759089279089379397973878034290521766481178098935709577921530509453027311775429283339963779349343876370238121017222354546239774137670932729087741049642298434656499956540631845474056162246928054349570431627740105324621173032142782562116210624140553541449356350304549389347366874275831047263076287623022703797694632244245148843674527020490253397507613142275215364323074111586196419390288519274929356305111484997117807602829683271927640336521657543481033219835314809186639677945948687387224933222691997425527242221546367556033253245532038096644310600761790618677502275363001576376481272106609038636920981997120239924078078932247415925518897504601215937443614933018292147855799862448237967424458343483286695057365983357616541891610896982728920333262169890168260475799369581336699631646987751411208817142465196756175552075631271610959283594083450890649377981396086578608044161127285328642708917039316504161102929630271274217528214140696472634604725832171268201066021851062207128578102670259852924103680033357275531613363155345716124063414676468750856839366673836069131493657248243958066296080812475146747440681150773142438057437771493559868996262587512392556036647919380248761913737546403787274604244783334190071415914373307733743419136821182715582656676643642705630866384279206423125722917271934902683461810658959795084554538607893610023436605594573707307640295084065360316578604760188335742411694654377119179736508320983679920675111958681852985066227745757390467860593726789579904387835638128369720848921209179314754316920290448713468993073509776824419555184486350068456972551313803857398407482937621074560577764735338451035401955363912261139740678896820412989104822411598090100229246616944831987079710454299394348888850492681750756097339208990800510444646382304956444892795770215744465451662935302460725360647567487560618262511651562885428350525902833037510459694803781664273683199802815661754365707892678683975779446568430089013826160692240329355992261741845165727910715528598384747556029526694109482182299442080637531417641161900639876650536090218118267568419141596660108837284463006933068729316118273091124785660435355834816606984934752429486268458075398568215699883874762488538024866067194312371857160813594362632829210139901321274247558196754790544380708532095507369622065346499825272835130681046076980553323822878854857505077843362126941584194229940773975258695244675859431627506901250556996391322820780869610758328734175415708039730018000132985480120863020797793722350610470957730471983983702576255096812283056551971268844897325783247253704407807589028700208713190745985789406472718834671528544938003430582724221659184984453784878641172556908908649075815715474568424292457987738585705816764061389213458153309444670519067403467197818803126901333239077716310113841558795617233671619019137192127642406959423645867834819456114628850885227191314377347116023907640352503456712152553519856096869553473038250578648374214468194769129046718117191777966601541196783037207873294755226694082763044300080777265934571678001123513784267108534463655422915939642431179468896243230531375811975457565208207626591205511485203679200471712382101566541369866512190838747498654563801825919024155102477895434642010110665310937340754161909088876050376797981505961740170049005980116002377667529007072218614815136695419764867879691065506809156237478761588041065404469295287555778978859761671112353230959934563019022756404848309749593184272296159706753211263222638911204953897618228618175089185016601493423086723911124774717640672581798594212624639943718539128343916373297988949054665572574081120572320858701766603771101777959924499986019696878268289206981036647897831787836217448552530713875761910793236025185955403038376283872504851749067979210019189685822162258870171385319863556304947244477283656489428929970165891097216551806435939078338340189479977894630461027163993163475086155327933937953759753707307633672249180253403463849693243233290374799843930737145758246714011105411151335422988500258813600661577169655374006413315480944381411840594337433400726303452430347746736174100757907317765046169295561320066222569777089427406176937888584152646830302540631885957725496252297342809426252155718251568250294922772321400085163424738713510345923023680459300785576592221502622274856444782328668022361147343160628323764466276475959222482039482725413503994681599086904273275327820170394310615465099811822113572438907976075492305437084619981500230966604177540804741242257105731221303495408367912328349696702638280566750978051558678732010063324255342561578075033661132635082379786043416155900021335026430071010535754652961773161125187518687455073890795089499248877475223189971964654632547121581437702100771870141642707559675158856394254311691133001156463630019234832087446163786959336741432929928373707339162539433018944825451673394286460966968092396618954000470253975953570390037761340932611679297416503167405967656298549935030347240462190136956993232278095741362042039634289378002330728320556378695321655434815921789099779726946607671500565066086566260828438734998543865400969705140006461533443729497115538288532435426558966749947773883164504536912833859071765954955451386070444251170150558853088185970717579641476022674583298260845717654660420493815228291407112106021096584876268005293488350616387500703866267588058755382125126064380179609549329458085508885511215128417689143160848705770469155033097915744592954327678932439215113345375802044943866254134571312257833508564735740165981435649912741885633638171639354292637025216146944939751189433040735580849691728383784281730530107071774379395719629841800387726614934694939142130586907529692067566257594301484633903442555523695724593856997748049621437401724355514151850861212175574714216126521327052204484214687170049865882572193417641524867821813874353689190018343613699877396193269524547305036205824194477142192205122277132976763158294895915435504844969831646565141753548696648486170079320654300490065681733482511253684688594178271734149978602621664529591304272531576810692247670134279461782923419474317438293459852096805529951561316964496745658545441865195201764256834198605567272684733372026389390661509334668711974676473317920199733743463786410048075231643151867596341158193752411687104773406522536158338266794411210688490046122315135628588120492408476277752082297632247924079160561099405775496725583121560076385049475396086464167681654192881255719476610832252256649179687447073767039504042796799066154761987052506893052380592162450808349401246639091095873541962938333065549076921980839235429983141741226897209706508782568405106858011400834419148440282776319486170386072567390162752454685723273455756288002037800347530237341957544187889820130483796807553597898908077057609197091204914997123749053857869531933315577324111394226183869941429035830566652149139507663671453233421001422732925941552769066927820433876171044694672336589459058033696828406053279679067046889076117299576259468424645189763121432525921089340048957686178777717021741070718596949855511041178330568609892394752074016378485216284666978184618280602509421811640788576812563668196023262425818943531851350099282379088250692173261465609338474784955931079002929773697410930967692730185470037647652358677331826519688033188984001954983675409718807435974512950698225488491671284058260551589825701135680699805542654299275002089138009641936020380095703139044841584484519923367649519521854870321394894913093765210100777451551175865930287765275692460955919014811134571216532328674406986662487375638621281574745516504948806361795836512977004999028713588320947204313370117417967839484957925426351309458692484638806581809752801354277533238081193437663209594405786483295783457684451482609229887007198197223528209600234850087089680695761467014896036757129481396763851387218840429812394401485101389515074738247549801984098253832820451254749177448800516995195018551898175418289126752546173544920283386909755715887121269352379471668599969652407742764743945189125268627735945935738546144920578836087366080158754508242958868314790360914342351649523897278497423963335227316040144487443363345892983667568484798750650557327859237536131349719948592087555100211553354429685653934160399949915174543415218197636646029027253611352191032436862122759505187335114407330623635314637284134986972602597243711777673324802593191606797516547748523752422817508038403886775888678330961096279758625574014302507503828824805708008808300248287382107622375768011837723252898589710867362896112715098343438377881201602911738756484111515075161324344624513962076343097079414928223391301064252268191490095020727117295569379458150093734860031189312163093269592250114340318970813687762081188245620155651101038267253938889603598116785562951523383190561194903979385190363966810567593140421799106470599185171014573979636587324451963643769908981296680809766253028814684526803009969000550509626733131842835234465293641958919803120436048108361618897308656307971427656800387471461133172608799561104994703354864251763173441722795663222489594408644280062808442689407245565120553240348328523961543738905214835693247825808489372520604365216092789073767318258939033620705058992286227914927246428568575962329512145301679574825660211148139742199249711774765619079515447365928374914480264949119135083792170183852976414384459563627553583770187952235013224428236398356551027736442216602040159140421243291759440448287317265204495979532022273811103647269004116632945503913365420853158236535412608523912769957893594595976543217392388008653405163245823824120615630650808336537495925535678638313669941441269280030060509279356575996473687053535482049616426162869081805319102795460228231822670433989118125112901750379088684483958981376083742270566293183564707770682107263320277259620888321026800547032522919806544836381113687455393080675317222470005973063767051934566549004034722407582039753926583315012080740318855138482147817615035363845927045042933070295525340318003375430990493346946290756949205443765774236660676766564599451148247058617205951309700112619532942761215144776696870832790975389462333740570603180714190026839227218013744145383835650023324027471711824389508355184632430827589240280331580218307046156930484741640412737685159654836314684276974134402700793828250786876001685794952542873476402815013713777555850990235230873393722364991250860823864284602838478342976101947065704527511057956708451252520915282618493252855881629764566052527052952806580084961616249841976519525838305985039641333528467370642506447841313201775584783884297144373012926659388123382066213982999229618234497133368932273045351372344695869867129627167137206119206309641321371983948120360826746014716213613278731003510758753815405188869525245540860774505489790687177730558690215398776429791010042776674564647968648195554611938724196498683743605114528316775508545435463336138693272521976434732759141331379491536394741679843455273933917922195055832667307004873855049974129980375438463171547344929260070701056326206572030668691834773364356325934330045307675318451680254712787897516041961806711740837745464063366390128385283228454781764107676146019350036144719701445759103331926523167046012779321714035318129490806258268689953797540543770124225372675262397533986524441884495915300032436783561329875924309012397626460522143116064716000961697300309075684706327191682274382326575835373022795709128110546066296098057537722984148421255463778645174117542968312175635265197126268967892443544713685626690087495625564008682622398277253660568156833764506611374483653819451243924414749604623628053797076865807953857831876695867082075896693849285595610434799946091154989763051671580149354504245696086331778245514085715171207418115089106269915539383481761412301345581257868933896499349127927469823403829135192065625405348788254893570595676195492972171507626479680934730309317278138583961611531526631140641364371920595149934886915984573896445313797482541915658309491530361036774546884581854576787095613445488546674581111722585022914790287243658391399716692794414641507413200676512302524503743527606759427428724558867151331852580587973891194155029914825030435485367011359256222941241458902388513031158407229503435844936801016354581639862900022266834454887169983540140457114552214854744704905994101810962391975783230604612437996679598918362522698517424666899713993103132315155093473858802799579974571241527048076380631369622099150504801133357497808302530342414686318646409702229453755638200523035028997744742799895634281233802124989700206026485795796045896390113742476641078361576330361914509499425504316827339733164703539695403945180971318545785936042514829852310974381919598188935560413894632828905672154642937088674386583624989511183876877667695004382554216605557174108993762654387408410826660536655742623134584140471740214857585468584506341531854122872643157924422537532060315077728238655287607177894501631712789905876396728031338108714639661722417904662244949875664219839118920728692235955036645286804413506469805289959759281904598040299313768856898243539666667500838004761064588336875650196904234618437151279163537662088760187624510578554160406036349713397299406817795493924107986491942092536018866379625283738226000532302263336345974218937075624719009219909614703401892938343667254579511781295527412632321114540820452823069088637015718926143693243740151383708175033137196397900255296984069173600243821535501047818677766186629051471661728025852331463913489055071184049070361402272096879488424422951771589851515885062393516325039773552911678572857576655828318556993684798448862060665156567770872006905807749191669516629288159466683780118255972398895860439991729550350220464689280499366508235794805277675571350850766269813696976500915111602630198794931647913618437334980808412847714157928809185165796444817109742542955170912575046709766201211397651506048263149306106839133082116693700301371136750579642354497377012586552549994260063086814106068572372813043654630807896561282222283606349672716416694381290919768193696005532988430202557508101872245409391973110372001456034907279878755512960606623605545742296913622709678100744067100225821723343138135633255906767776399392725176653082317330527935323274101457384704628435815140472843821501241563183129746400722245349433500044278006981429831174344758271065127074307792806594387915059719112595415359775171008519652312647721013064190946780266671074713999674522286017462529023807977236805173155350529862929037467410386576927564814395183513657233907763349917832182048608805360556034620182129737739696429902919272202674007911792505230688954637435336978613719567491662072457716030720554615564222694323687870228190160183236525776596964475952932095991318880725583761529551901414809466679439983518770645929972929711895357861980478327632696995106621516479527829738962270744822404734265545562967087869965921823941208677682260862628425078308230553137533012126392205464951517679433159043572808088298491419539720378457863112066163039311104852549909882393961127370553346153649527246282228416392389960176896275932109043309701579103637312109073233731013255323653437165568565991980409370969682034016680865315054649824561658283900947813492324654619863303441343488294117461938008965445679365929486740909153720365699875018223035066473183819360912287779599645924182024574449709554790787490289387890161636701980578245536511830967316160860904012297829755158280338467568242546230752073311399640855299182059840280706880166224665483049817800239203076935306060896683276982556823526768130233916028551707716648707837322643909700743321729676529973140429594514568822275560681260692017595929994953235915706270337024732510067263356376071088599960104227308551901061029641690394511223128643028688276672032822523802170286736799692644385988341132940433732244554492709005500869551572645525790993545525925897260574204012504880271012089517889151013644708505649293086314911322951032635787060315527192512575250677339794130373574972385127219643079319650590404639272543891646485159040217355516486679413424914890029181450640351892480358693998340031688829367421941877347112303252970473267486484964009062095200261361769177671915148774689004360958877287220627572615052706262548724053715998927149359678349218781494613581603626961840000878323046949307950157567266072302625002172226152855226085528600615243191283161481102215786406358002502257276613350717381135747765509547047422310311440687696987306688320739393808880299236227195890153045554120553712989885615647621523060159178189795715864574424914748310474433668257985675981766439592792930352134752501497195444789765003848147547995458698911922074819680046487349143822484620497985753424688701009073151163124623762932147459650524090072126081059114313214532453007507556298854253852903423375119458223780161340752660910530879393013739797847943452852815981876176450240480873260517438455235155686339367495242401146093470362700393680742032367485550479713434441329609916137222441815755023478186191725458264503120543099913245040792652800332003326002473719864843277446583713245386971666916422001700135091322637873195460794225131377499917769062750731583192653761341495334777262961468715109573832170557402675852342002519733971711824790372895993502943400030637169934164686055579723782464841315402851909450038699646753094079703960344822170582740856529440898047648255720040727399141132898655647508979213753016116000969967757904249074001799835334477231153442658163215906932565547323409177168645237681240942774349913106148000079881559311967957586666579973451779671251901691874334086348497382568452876431301274904233692056676168890275126118732167797758010414442472385070989239563332753133033193038326101924166942565763010437433379185104985107836000680218490208981581002598976272232348004650339617386862483134428470474506806723431686132085367642686966578922904517204798742473900881226998529365634867530205742795266415710125499164994890645172333982867417239150519138880973819019622107615436138811787935785279869254792151700884485130423916581344703332710866607994775148010231656612541276588000920804459002697020991332063884783702382928417172755872898657886542407867642966808563341577343693245064956705602375059425974876913202511641750601745398142769138161744751990793156322991076693851786868197803417091581742653644961917938665636808857218089383693017631252695707843049894030634431840089966922694948362593738133114656973039351385384117103587178708955110973329924508800678620530709910104271394338725638173855466922350354122976881139539190178816052743142359814732376374165153742495005150203153776759351131537193174672993574297113128889330070943378787877033267982776895325380547395057768925061663730197767709785215923050767006566320875464829628447903607584681540763325995293776019612530157678270723479065513286827970463981152927453682641533516425176889142054644824695048577913762928651663938396962050181917025187582785264284677136555073298670579774827952141359031100550959382642970111428173691083221185760050570255033348247409978105586040109917940439486624345358865599810423296181621072322130158187860321863697920413724589582964924710679935724487554408761809242639871266708242226748139194752174231169080007431888262058051583584723230687257576956456969836366786221450102321943001441070048639129350917828570452161386205911326066925843413332335672254876808667054657884625388641594096445727164983131690821827151375641407006578660490210136713985369534335340380960574024592943493197799691643327454430325195110654630575610615522732272063516953473236084110540244683165332584751550226178926969647007319096448720775293751799112056357324942581904574920365825306967301438386462136652894063158589156086708522159342143097854175672202966089598832895869178870122950615480474511778150234515835247738274731082509112537576669487661564034176478828967406244554123841031602978786867413992777692479121220504426873560272379112242049496858815169842772557511246631516273041505211602725008328621134018288671663924489721407754029422392366886688459998530736766794402390421120064169272324717275305938141261039754977287170569233781530439339170268680595736041375267234683568700348303879449715284207991059349725170765269106362937589460536176220185357326871458170860570418865812362710857565687176166161709680065365090551099463878065850790798132309838572136961785923228358383822254173197527211376920553304125455814458987716759852190908335908080693637306933480340360206267631570402984920012841759999842826201292100292371556449993435674125553352644042810292782507952911752810151698112649238214078280609757639810134602103520328128277001129672223522195994452995209430351532470761025537715018992526848448737219367712233943098437390775837983636476161325446783058700096352688131357965989249942380310098700273468476122597526363150394306892771306076234919046256470265804582207655761254088994188152684098416823306079065858850999018898485225963600897642705687019665022749044904475921319266111415192195999122904776786985938701535731127167385420497463272352021645348267327521171572646749210257164268477402771538922945409716552204125961065549114221833845252546850510394289787750123017910323455706336739847912642792816434544456000794052805399738714061682060266369756144219139250466151773293945498283296094478941036888337684427319399807239037178766807723498985546285025913503164901674147850931503555109699544649206623170423077490025558957054767703413148945286707345378958617251768859394353832628204541594433017833344729654184027040155357405425008966479921463612970827156849645082264044060876410149976065476807061314340487791312274440717220893244867106245027484729185445487725090156958150289717057374652288972796089412974878306313562585189921510936155888343071700911333920599915163360249300188316183980321448699268943706444325526692528528889234377955601891519172165179959784129398770846209378834363749376523718131779470030951903667281294462377288869412267990627478541400123707253372016369880173655534840339007718038545249346951470441234244447469379492146776470684782804149784731003799952509458071257748158685535215253279625631939692818482376519664328564714714549421420774225224323363205563862410316518736066418155756615834147412227404241034795836242465066912459219256632138166948256135534047777229427567682692518005174272346344353980158196577137499638817624960269857436465149349421889676468022518622104988409118483323595530494034230038340894494389805523924529901976825939247240529159205292798407720990189023809350357619767405416196343068416480961657523498442371582303146109278030270888067763982460941569174508763668593824898946354825535479649506834628309636147128051383456291483805467870345399705279585084207846646012532248334283413573459240975910580325720466616195224821300639586069337039237388496971249212645887470362987289157742509146229526629724141151108070170358684674376318169388534377921290182698826212664411875584072409664794630450928348817518230602786759637259849567250997539756588697382800575143874876675102095951618773256949846765733699742010765408304017878270043591335694756185010870035143377325668502098907998962587065895597635812707954528313045704397180574293384544522776783713342925611039970584978999120196017000977038420989187653240981876745455573231972637983009250647511324042030135910224447082460651950314140666870892734503377519634568343444298302572889037346536819853466435338742984130566273651970743806510001487743084422393396931733725456382253391014602892224195615207297419500287830584979063507150213171328615508818846655781990931857518766070816967017331201293649853692029787475893778108298098789233434366658937437428020275073329130595080847633518632119376830612625729090652900116429494508455140663744157782757389049065589471432663880055664665356641716406077880306266295175402353721168805911126177796396594801876133368119414764501860435133375689469537925582472737882873977972187311756166247697984129220404521839741151653041563235904846074051297518244694896545787355965176476696536703893628270995246344520553846930142630153532395515650013369983838968986095358012986959285126486468639130469653229746581708054416644430302485764904593891140700320554692165208161558317612051144058557102538423385729275441328388360091062068053559536747032471869658910487308573218784920602919501339556405810776462545807909137678119297046514888788974742884091940211490676953848301498109374259120634864914613248888395210374051455400541851749859246093252887596422720345603083881196453055941426943087056398095734110135514153721173655755466663207735186564448024245761904256847970631551670907505247502329720922339221538583266791935601665108961830547965245996662168601299342196719438815863165358927775548541186239747501841839457058646734401344209016795046755017287096693276256330565942085169359481861239913830079155916187032594917580784907663223732006552986283693157712100900058826737679918502652525695177458347013217355792358250390718919090877271095363113736094690680842356973700422838129520085806709336454549538365559731785405312714142090922867051282077918441490191944056141650488948927945329662609247261186378812609077939435168868034000922735048963529899983432910341860297146277361081434580627815947564536468335620996046424672325576352995024560684059091890692314789891655904654563398817956999218525096853888890162574349622846851573579829023358701777774036080275534736318583424457442849736307029358666093840915339557794181593233529814336338036283517725029132070761076380528884784864461806193971482866698816058521574786262310193079053354094638869932897799986419960891486431323438297297888446480918852144660770933426341924613640879421040922242444429242151197327344676788119441827331247258097632424341290323159505879474833919869900656872070928171300576226295551350803172619739231699714112034131548850647802757044982505511009106467596624353966211338730058940201123383932264411340008763153353121994035028670699480043285974806696338328835323713102283536906343436831379216437956503156411511265466773867342302636940742626409120203499423353863483810311029680052535127014176383059220650166129649525120242684442435438578742678237036330864028216085450800140704390910217770018817278517655527693887834611923745852865207324032063206163684933771657153526597522389360601378935921521855046585929415123796739963213212532884167969024901210084933449946453272093266995728629010645498031024536773836140202433216134572496511342963868785382664837772965659176996557664654480589045431216756605394031317191883277210897457408694603196984133505174843002551378635246476222080118902472821515544279551593279960678119029568238664857117365729542106624673707438045279580474714221303878938935916454891226894087190018560845015492428863346617641883141724761790804786515472256065195217920185665520127622634191253536293959756327979214397677503155354228727234587073868002431109453206818198701221803219170162685864139449156477252911203604271078714676948837833521017400486978398225248320398914777777256018119339563616456478111066385633430144736885982254663127220854279910938259145303063494243009171906989669162117856129383523557579008832932440583286974386671719707924058194226374860054035526009506678389747304166490845833038638491711789203008378096044471283590779155134172219658323326058263740798102823533234098586856478304634076919562128387430416733693120824626774149914728217682373721054071814638626796830790323137375625254923038523405119497431852994814207279063377851744346768488762489505501256960160232600976953412045481892839771481144148875785848407519343334071807406278114400647106204660422288447269766004575485275066208104541197527810833976136263747343434312610697584013520962513412393571783294428493106803328912139560602152470266263508219954566556437695656183391560466990852371815860781499390260235458162500792611224256157239709455287043086063283186200519724302937826366019300641906311708472684264303147822921335244990289347866951128790569082122282484030169103112686110442849233626948012353093287620128151395779146857838231948996939495651853660305722499287985827156275349068298409975908125851272556850185081914335675398236504367973967780007217540774448656485215138130511236404790541986242931941686570907854382341844117709246816944120232897985515113055841069514546310365679028952631302479993021230884630570383955568253885521013584121737344138854397194017318861748041577474323441215937380005736090542139350526436300823031140511467474358150324723449147207731630438329182760559260600698373784282429431626270209988795039459849704370903062012153544953285060774384992729576027570897473558787794969001546857904931356926172443755922090690492691455605660862849087888927188871087648003854556793444149062287110997205459995180709192570138324979416459856882620211365454834663799560631544520291566254450796789185419666657093829794690628633892828852775975439633840655485140019962962390592425959797797271718393999882881759236209327355701788887540036565120429164860606153249398036469674006808624699279903325533968324221825489263494823374015700990488761141079404230479243497547875945370734229257855653341242962532689209851974487093964447140548723214709978445915241125791558735670547920766750726557474927453710321746148051511066472821954289810888078738529185987945723026764383426205544267877716244461610457272443479136807689973278438627393501279030859341544313644597333102560790175073503143619062233692206270837128505877139583642489793592386542380532550609298993509181362059416564224177311437773708066663795302056469341059515910708237694040943214471384687670111316558022741471914766463100129431026570850485718462268828637116151079100549489765323451149689311216564684233814959750558250017962289872540907671557098591617877606869133438623276578414342248613197899745275316626072825513555052607020550921778759625655309958503619462830494549943613936022353604493662732662432781967497311626873882117775118870627119673501264226387760852719442257881879994109651836518812866425342340950196041313233722956313884479806036578444228658738390935874097838358473302085724350124930680330708362288481288560216689548680963046468051251002797729990748014225090303610246800027713993226885142177344467186928970111850118992783340345162517918654830389847739049977037852327363630341349783640188670500124556125906131942557363182482434442968961091711454958564495617687699740633075818474656347486757130447973053891956864905037839994829272003484382328082327955277103346486341008824352392378380070622913039492241082587707467859852000073184801160292847507890829314541453618301009027640815521357370336271537994338196762826848325837633128568771534921308604326369023026897001284618945608434885856899726777653088610075324749910215556794807866329176180610168494101559893358215681287793649578628885658072984512944153739226355141579783935554920182188049836529873336298671969983208296082354478563707491969808073851857857753875299031978180267022412237613517651684635846577556725323447857168511172127356516544696619417169465621613588941029067308739253064519573058611055807133225535779230456765415165899641441751105137222897328776052519064732373791666911901421069964081358264996373422072678959410205974443097701112353659926020401577466588040220907839494157804141123444366073940705122222572826661862811659146634347527928889361040023737941012270000003400339839901972440186518373758360970425110534067895225361647665556098092051099443342066402276966716578866148975969694742965975340692915247735916179940425856905593676217495479456694867635838134639838834270406252407005760656014559910550173973221435204364317767054765623809699154709922956341393002257540907373615541934706820421507371265653018459863787523241536457463755285724586136964289519196567163733944130515395301596257509558453995945594876850580411870664169717143077417329668956087849344714248684802439702570726319026245169339201491009630697474377850833865520316713774232106256618025263952769891597955418629640305692553924612397906098696645540277302923408269740072633513274790158071745592994246969613726144695869338181526510829950546945062544506183727659313091297026033225462839871979734141400662870747110622096966235516102861275857671314806575977458256880437129508733301784761635979846906422245348512686037388157635842652338018015560859442849558027068032868170800933933983649598866689937041901900837006146727808907949652116873125535060725243990471979618468719730813581786100265013288947828249664011560857531925077454781863579417044281819989513690386396767076815722646741069861344728143965043008021682862697607562541796487006433226486815284050403736055464558837714160807247887692108090113251719918053486979469944077130359294513385804102350848394249232226812195432702487759986019556448077885998155776352692660288978960301682001299455308025599209338295838056255859317284646533822516356740459858337562203491944987149172517821556220250690737503083018556090477182251757875781862199881468981855607589190854724687448861044163992606717288585665329516325786050734009924175171659477513653200893955585386175655934345894222837732172380064655208939845339703482645922939803173152394235795001045114840735180884731891533539239355110739789274347223622237602130649793646192779924483023153379978984737128398411943643173772126078891615041488046002532725850667722900054800127498622518473617327236212921053965299154467618909642307735104841209971341041251197336147682431230505219425864594945444199682657133968387559029456645671790333508023673434224163178534984448972367369901062535014218901237781222997252736038361761176585780154765800034875048968941493279717742859062041128647851182549762655743365905243232553835132289854476804156792869781728354494357473163005351917045344971611418448476518097715627830620477333702522474494768434434950019593985972829768166727069808779832847296405969275463623703747214322030927589169795060309314892884131611277046457302259711229048551105264904426588218979233317792124651392226498074794217257534267555537736393248213976685127761474075617099189050872037896467830109779186030112789913039222984952084225539609694916241145002484164950861372933041816962776024535109171649024120872010937062637857964031850587133160984453946867933344101590847647412469649352869406853946416726507310427571539454386329908327291118455401855312285504436892752172693693074360002470013587008706354516568961499515302083185630374743355593338324715514479886987555463448318973326910832454112165918487422292856104634138372040672390465009415149688348425189606883691044989042890320510601508314209811921576382219740945693478729776932788331055438389037670247417118840567022084492779704195454973657191201960401879378470792250894975776444254529575355597122843323261874784282255853598399766439721596614408680665559770061438758480100813342451604489204390099312989415239996142602745684831576437409862270602024822687486155079192752554131430757143702103370012258256385268071062060913241904358049338488671104807342640783292147118068804277499835312714250861357837448620659104835788972902939770204481762582014915316435944173161105996646804447009659314478838362490747207979492573687506547738834617592010281826009410976657569742893120831893474297032948251404570971011886755788761524169341850566063571177321399926601053730552833220692067930305127009874276335491935619668398977850525937808537683831222666210006910420307183110000628577452787174509791744873812074140352458792647795688678798771507183889402924542025122120536969128000830070140432438513115308033390049242180421943979555328955068959654786632849737629861415247790204828003554954222190508560106497757546043910926075194234784620964355023529487921159009793319069318964660912702828697920022806261756409467333674960601891492961828633816097010165329719986338350193370381314166253565831468964385570654146150746522504809364840558076673020601206762078081047648862669451168442538343893306894187317607873822159738282457243765243147995119675709100569771393801558527951951450709691001801531152994483777260576705832432924780737280266060784415909419950546078570129738131766819926541712341696621838768001621014270988846689801144203355849584845359834317444759997016425613249873152834378867442448101956815601753089855436797367975159162028651679089273562273286076928693541892344948018302068340515651836696496804606914106860195656820579667925489848927670901241615932879750933602999756267819898588443058077237120946766198835018773177093856625452596484994718382072268534031764934420634295513839936305813195892968987258831297168953387941195483753414632804189734590902329084850386545114062819679523803579302198768382913755932939386406566100925658665047020028309296655452013609618155783105146377293135315227324731219941655518456283353856326429985479121343289239070703456569706892662905080094390096149593500179951404838230211551347656720755844013746992070840295729468153617603420612782626482244929861202323841362542614383160864760812984087181161675231278682554431429982795130122786345765417003929837021018661703874066046093036673355838202458682497010327235786289778889829194768968960885343799137356371592973292183743844273664504066993486035244432136761607875238492905501921852948427167814612708794479049703296117400251989305942330121025138606496808431866442689160097738664751833877989520921943099926757758257203193824640318407894713102321128888188034913617083637493565500989694877260575535250732268530723621587897008116543940925769866745256786623686569316656450809568879910223025664352603007271088928325622341511309592092040197109192327356794910064512433652378848222795081641281558565547298982825616141652039072940851080860428659956839407133384465225070012701753232808075058511501254744415292529419998237194917501407228624740620731982001728460061657652605264822300389786172379365930343534603156984302023892361379374353707124745100227096667158169766195907906379364645803877761866243632771953003959793643984029315136327516965261733257635593934745572211772417064382386940989573029891200180876830650312515070513579567217410498459899510207439790750595773200335699824236481789275095539992791503738606925309269736323842593729265770581779955589432797023569623516354315008335575666107048420794244620829552517939999986817940211184074597618505228425960777373305131573309386431140584537859822475160349461415864870539523582189857875041688553467499778005810955160981487206968811797244951696771361935015742728105659092624551228064846400134077131823478624221883444644581468250122592361160355207571010932916642139503514807884728192082603394428775848024719170582727132029835761134581575242785526885790327122570332247544802228092029890200462479366022349969174809357061185714004237913218047322322227989683144789622783536521540597376943315487237305739536322144959641080791137685962747906254856914031544618459506127307315219506467478791471329278378492740534801858737399169455916199974072316790546209834774737861474525744338975735221696345638984400893465066200633907349946361473140810009967291171289459535980737890440526441257874300273896265244030352928843437087566958763764854095598252675776388239545594721407721729990109979932538179206811318232770745102468284998278869743182819404941905291679022960177854632373802537708193568340292304568235922649085201434807388589894816170290081773808825279980729900933975611971456475726499198677633268117712492858545417476889777269593638800235456448999246198867342052401806294440558228461020030827778944547286883307740461159770412821531886890741121648744374739896936312924592657290746927894793377481555447252696591922939294142877379181806265040913017533806631480647945542194804782167690337862645603923310289875734343428698980379849447280470802337719960151863939818823604095970978082238384602723387464249700339420408447196367999846499445989184661786503666435163794571888876298403330292259772026678089261253055265182466849764381728163404106302230766427127702475828652666137018128283739868889649694606774696031660912605717835894117378928531418847392931317580119437260874736018916482957879891970837885722690107419502632946654681502745079094895885946402950746601172511220559678534977240520532595396495307135098566807036199801944191607474530114900236804541975373592913284711220437517167343789095689565214611974454043220719471256806173070934754927022536129615952952096200933552373915434899730104109874200064898110543886795038360072119314702024110056527444185594728315650008101303325743851838431089754221008504262795700716641416333972881245052782359844806877161236583243639054943420817461111060148274003841058953368152235254804535983514852448032848513531454718353626650750056614379441045525127219275371834951790891944402138486496881211182712656920765859678035361210842600787139873389126550131377839864618372421061472995385754460830505232604752125802915486482889644428156852601808289017934219849258674549266883171299758254386152360546725541612922221105143309910186649144114738738726496788739858548338415121808839208301759095368400002984862609113207227759033996415284021517129051443585066190100480683870312443643753052224459235962194363298125812611955826372564756981370581255433327352889640175400270822545541213483402657225911158286174220088663484184791043983849412046672817123740216518690060396351900050214301895620441806100874730179751693910783298240417053785483999590835333428141040003825141146929640647122750554387728647708241679815746879432228414876863192149169853243587344849339280379552077908799213134577408944284856421215626790122256160765564688567480231310787387865734782982026969842501079418135187411799043944777721765148620033212144284113173905334044886585043743264771777579282499803006294119853994798821709181953702338398473297770707691774389487131764753482379424523123010051694963050816336951962113687076658394749000672353161486895350526836903484995348548259002038962525588989899605568443987330845943615520828447898242270299116094951939356947726199870018458893602796384707167413592013982500304630916676936799919223976752409953743656335898925620736625758363751096723999463173839563300254155126923017131113636258177750235111122344351043487751888207482436366522426857866533835553351168992434489872871652042674001765367657389109518992440385406264126210253444490154200857935102151452421284204191222298277053833150247235465775064484157123294031509562328859654405101959262727751943746657086351755052699522634792008884975773648735040696272385936229059938675554998393291213645101741064815243625989882293516107807596183123390889713904098356804986320999652023819920042664781641675941326292525174029443905813407513415205850092748333618658499826960760125239111270829325758856861216494465338900127655498670386707708044753644472310599771736752966890529684110898977617155454625036671687419790386960371863565815261536532172010844458553131512431065415971378509300367396300750976702621275335381747610285242988755481019948780945325781756234373472612077715955089135019341527148329724487974252548287269426458154200756125762884147024740122338915167277257051983655200445970207344686657813037598741165500626918325427204333092083471016264643763081114360347537686413174983262673380823224311947966606115794229889800644950110460838109541042682551285329298468388315021848980690562211621191710158013014783381255002883209119400737173002907908052664864217141795318597452849348903160204317422669667906427407524741967719221687960387068345037738363577789580617704835677132087869855714491634679869069810139671960263180425041567377033141063259780090479765225902485399682020005753296653467953051224909882124816307718237461437024940217226902604887873175032760162351460589613465658374515443255778850283297537163451249132991244230884325619266880696814745781182866998387044927725884510631528980761994315759302412056642842623713370384653649799454834873339315497313463176346278063918655489713078112921233311012538639267606848958266778925702277712262117066978204939969531141541953638710470693636552382642040843647780916919069606941747835718626082965740370128761078976795159526195932626144156070659327633545091598023553044857426478232471584027464198369836647233782399508707988061392161394513516928962170242876950235244732541945055527942636722861179413840705552337413860983945653851191921077447834268592136270794110076644153100899999148351778346979449949998891218037702228199616636337316144632101025489039821272471423909455268542303787948886189749911988809391749210216161562910281022340212727945849170405710010411842785272105760579342278997029704577471849005052796564763948356351246194428856946841468096970444471493848293507332882444217839261539599850219242186559462876958850261292576231757838246826375286678965866002599095801262610755201534742951768119559297632132112689992772786012906863244011490047748737878050238077003270480075238166937167861715423121144347236139462688066722216599413828206550427902912495709544224361107700646226399336440285398744976079032188411580448872090732611519927170171642787423958188481400976995737294017465737496457423085080508131981517554766128569649738745261402981683377837731402378273674461718476526846612199644235222426099754991065056883724274017650841213021463483342087755885691867304571101744410538832734189521471989855712786447959650115474739443810745947037051997824490306059054709170724734710956584319050685106562640379827899515609065151492453492756283626843484455691279430117459805370515071660531065775575987448233740482228108465306410408343427377669091852258505653898425621831509451935178380475512147207961045044104126876900486564210632872026073388633598163486156339600874656717700891461588137604480934904149026313935424299999607354778201827556246857156451944635229730987466656150610817076205380442686956036758388660372320525504890865201347021080865780352629421059076066469975695308077788673865627437112368335605610619262736186287313221572865762330887689655898508314297390584352061006908296159746013362256286936810700188922207401993224297639097653168131484711613172380147531632881530107075051855018132525081340309778365420295606968080684182451474683528741112297290720675810995549178471379894420332817429031542455652409270126297082353550625341314849096126663196141951102693861705290817093538367862134686650963750471806031119015619093701212007439822660213876330060822806543961366221208184050666842846966229423721281648507664753648062378468303288500206255348925602255198908069848577030410913649337724805181333046928890707842748340358907141333119006518062841518288839703519180086233229869495859394763265360082599032449042793754178267950661474072036113727531161666309292844597176818922776013472598688248692727904548151055501853344277492330924213338710700698709879271782749635626673927649580879927690844571557869355190472462623621919683919537657690242346791690160630201735888753231028991170872068512739784966826361427349940079920169269149809667135012567125817980613371238645652127668544352270604694222563944394265764886150993576159381255118683650433536311606501375789622183561510374787284624808733434949785497533394648874505912061844110383211093941345132994293706012375066892237626759561530670921619053621176121669558505355858355071805977016731894498346676572265811318364850758914914181424319986740154751468415147513277079566238312284601297083630293892403937258564313689731134047591971763046784823032746279754425562881929621777621070624169060506463277623351850115357809891386338457979574035069374494346770935544164424084530101772468882234564358123294182191803736150915745906012834948956865862855369411984324765152229831525518161975177694857761636978611205522719266056278393039474736609544215149166849922536482561414519895955836810238442764841722286519423170901850634366054627745833756374375983900527740083587567349171234851862218850860381469392604529923125483721154855650492391629896630802418062249662642593301769188491360470478379347542167284596516380928677160323329303818449925651340487822445865449507786294866531183368686108475026451857059420121620963591706060315296003391053994955115783963411177274442595003355635081864893156167148780107834758822225811539453831759480660903407122374693673259252091642542397945552534412497107739879367758791178964642461288411619392727767522601249245168702883442088979859863715393204583621271358778195555430297084296201559748003113911947201504439499683437011328102919197200485713301949916935834378171385804369428219345970328766194331290683070068223249739719226751905939160362525124982446322089832558632153636616263772632659720025290978998048784986651526409473597347535593381336936389209206556348718751588312658959956105705892324649434506192691417478418247124807718665025937225343137509769963240434034306483225504691086427807102533160772538669701088054551851014184896601789606296061226421881617592496468292746538031022316695803858159768718318231823749440553173127989129842503983422161503005574896494418751584775964898180895500558919156381447695119951410562620124889126625956301374547018388042955833104184549662728044123189289511207166941167673932782867092489946552830905660617285031520557204373541424326158740054304121425931769165645274911117212075756936125650995793503018659786614544754756394619600328197751874694951123756000922031079703586250034789198033889421675155252445824167351843211075883636917340187309603958397607114569637030112414639279343801232358865567606725621806856774345663113320116192721485553296262852790140979558135521096420485669108327196949052665352472631203845560366013664933766242404460602548487698522363130324892804727657328930063154934269957534987469702811381298958840922225234827989690271864443624242232254710485426253393685661815994196118072204443414546912487165550788945686110440040380623901973313518389098181252934400651062682170233914014177380503459332129976496724828786584037326768137940121060244505136722015420730667072479696551741129802287164915616958287301899527370742652996515246209364265340902987335432643815403347084728377335493722863301073501394399305663044700095804760194875346174014689933534770573769807913009528104767898765507065159978096280652197442759049186609255581175089949150715622873230104524197033296939357306264879937282661082090154757720709534922665791382949399273479913945636619267172474840455577481521685626822993537351556186877564882163835235725452079052684470844324392812228969543658278779649924220004108154983722339775526969832047260050035032966403649729050971350236760243051623969915921140381654886126926338250976085896265479305122824809123184601063143382883235634533692459793134871006826499760347358052879646915439912959636617985797153396368456188234433573075473080684008190491869871755816450210410405961887065491490499583422877729956334498743526849187195763969727675404385094560521012972678659759635552753191708052268568953602786544662909768133854631936570883629427990379404784825619406811011002561463113034600367950693440287415910096858555141125179598178399557935111045197112901135497879472063421815256753418528870175777517580505093882740160190527426632585157193619760621261970996424491014117946530451937134791897411536219474671296680173076507400078174512076783757191380623450411286145707974435719411860266102767489294503863979728980766600309081663946529520213927380891005111137883712467713783255331520245664337002901880970561275800890080232705916873460867985938454997922266105798359306327112096549663440937587491652041955260576602614572352894560334628073025999197159270827764230150492002082911718314072855423028694525993684553933944226651888801539753639398615907496911682748314120345961264649185306708369800189347643962676662585272294618807834574902780073010392465580343539983852115053815635019748883613780269877843175837491205003912110710959430092210281654166417613407740306750557102015706591291128284171758672077633421664435167661178751928770048624474204113739567769802123054647106465801950973067801286265193568416241495144236774347813393089539623545807207107131162377591746720472575622643090873799068944191211644404377084590283308956288346540168497294707237306055384440828201805861082170692528134871298853907168151638006651257936154474742796183046699894485492111416296709973625502254231242716248757788140932982985206121420527804776581200176083307402621773740363631149787099837460240683862180485793001530663698343929198669233917207139733964696312751199704000447958550475177816098165978413992477394455315294171848936603445124941947160537229753942257928438999344894963917420017632606699470094714135257789384668858072101004021785054970801803013860157286770870990406403238295181824521558376631292322376079802559421880214700300099257710795348051617070441683414077408633288258958561554329051444095341966428141966737929735043610065159615969437231822346374458498969098578173702331250748087991187463977237565981259722213260655193948056913840065548359179464213459603483456854870617977066531038491036431974473921048921208186860321897999470153303727095864915323348121219533819866543824493262671067341578251534996614193657798011543693402176707236497491136991157596423198994385468140036921356398391127342901091766917035807555925778255978600966959929775392603866335812817571158777579315216880525564251001141089875521912882725666598371061209095008784988670026331977768103083156117254892973465975309183176476140876002721698777123950586242666576012181399468869507242292644436139276607707459484978368939999766484450319218247062608497961142026527765283772110016698892651203296425606446418708360139524876281141991145128842335364247461048063857130390035031009474502003065503201066955736993921127124271449484130735865829038989794602526667926119250270554340499586857648593508343351002050536084850732020239773868387050948806657079698873696910036395346633324442207645110088101714153357870181898152997160444467965502326255493113048100978659076786198325637269314426630531382261014107234311903987981536474458190320224479284475155423083753888231606716770628588479421665213318116451318220036654225058992734211319750810524557855013581702655457750437481289600534800530572275045493421548724877289429158265360483927519634991704082514715305220486534314521809524348878554686037415981086296360943543294466407522582365155315263098026753125338482385421407926515755635936861487088874651940670350406203157621339072100926188360414610412785026852944453353020951694357536949042402414342231911938312253556396767864781893162165106009193125143140993916620854037585543617462602113501912101318238197991935371647150397467140643476086839091914259109140286584262174402297546544647640228354222802939145548695519494625510757650213880940808330503250980452056998554720930288071945127034514691975013457789826245196848853967353006531300401886135477007205062561986510769174327155444194650323688081630368928190269171111655378769699703275256592882166201334395160953361084626453106293579715819260087302443419557019305385799724645244882646941675452758247182315914397632911152488527929204631161082489351759065368037963616126406223125205254295326826762219102518445037636557351339792080150870481193149649958505927604299847894691697758224068129138345519534148319360516847268343020720441746200259952893188317919339159512811407196682857602823626553489678275106881157624723706958210994734234573995411581281764933887951120940445822464024422292707526064194964433636911148527212367380099833141393119584746022085954249158221763705900384853248262447063217269428940772232151344019606145042589892961873978010440451369825518046009850042761779031436197662481990682769367872918102723680921725221634155370997412115995433972721939507144521316775349300602044184174671355430535744692630630102367807747224430897161419815695031345917342336370798594109553042935531252599568722211012348444866371445322975445337988800934444392748056312690242501522343550967733845311891595188546213493954738863121689621385956280688440360904888122873383749493654387858148934978413269460300708642998091988793431861692341174588570517582572732903572367073142308921451592995687042351006516645991163671663193024258877354965702748651148882263480579218100619512345566961089785588155882529507581210885146392343320304478859118547113877674668125312308872616050309499697428480223694826865317861154257730016384525468211574546205501694799891105717944185939966639412854603651517707695466562104890616680264984856275450271601923835425147036363487868309261641685592880658509074618486863979422267920676580119232725168544235185777116789941838838815870174270180185829416431279060892813469303069184060169929992299922889759180350671854860424654082099646095562471236431945164154288927154815190717580433569315775167667225925546518879914509848509035124661265483097641136568165750744031240031547801194228799058102755239080507855270951143316394505637170294050815041988059978923275401029088349726694882316908389904927867666511019033554473296758880173671133300572075471671221415021924003957408137622870220016639908924886537738899942947033467896767482254978327801423861998154446049128572682700410522050208270079264379851991184788295466610329618000835411267047979594655015985157334289851486205294195272672965154820408588019651483131144904768998910870473483200848962000484176790045831133983280375716801757423706106783740691703755026743488796842707051298348109460177616046084175252819545476933665388850728543327258505701298510200010598390831113188834851975131011704519519114097437954982977220061321788170166342867670472419307663305383423480709687538016209837008579429109775126474195073505292890651580049156621617858462818690852900257239431800445408182973957786581700949955393471756731137654831983258799692253223829070930010186613304170237333920230936269836081348210288051700391196296088057326273495899790194283466475659055358141207971524077649816236395297729729349413200114823680026801334952834385398267723608865778809915381086987848735732088160442797566908708501573744548130074338952620563467384222361697961657017440882061459957517667002208720077346799852154176738223841077515770442529038397325596723997871754021563730978602065224471246691109995030186656674775014330471453683198082509386755928104526881457351816824402263755986269851268932582147888282857098588318519060855643022127206044914289639781741734935331053210555468047958747004210909339348027334741292228903416978441533014080588765168890434289693121804032112543982108823978704425492333933352977411147515784806699755769108700835477378273247675493383300695288451737839028673408707102170237882162262896885639854113289146086801963030342912785456608771355709880151108384251169538462367024961200650283504370881587796827301738615174985174387666837141892623497583271637990362104739113259515678725742024888349736853069501364975385966778297604068968688807851991143247456509448632273782438436108858673806970396437898043224632612765667126002032131019897922161093205977191333467375908280143079910247436860074649489045083700464694345662597943146437458132940677334248484601919741138062738669848090832579405476100123674706786690528772255099444482735757134841592025160233089123822261082008249368562176593305395281891292631954292003195636557346698070252522491270934508999847195360463363280515125627816925591742531654283271301551004063568002951369883199674414861826348785532901590228088614663635221418757302721703335495597837154789900785243183370775097235747325454311946560677577910889979259036691611812200032974606371030750504992198455308861609444012474805706704537668761532619857931215032686457980505097019610935505818132979926418740741024323781680582713079624624272323578890481975824224407192657493126194998509327425579377952081773709116789523120822977983208969787293165888906302177289720290818541910182259600853112769696285668774052264018623806474595030485084532674995239048932480981118179993364512029870325196400328279477485102273059661026667605527723676665499993730940651448291247025760206257647683327279460426550856455647410606019084330808000335828977989857060331373801752744793600048877756127014960084284360186118804496815158408280807234588034587617653840910368281239188585340553269633928630221979149126204505746543921268105967333442677050322386909815355736777799003067323005970945513169601617539889610544161803715858198629229632487100937319370351138251367672448380819942080731294950458376661304865806140727469055770299186283265585370428313984570251761445328095540998265377836784575881991396530377375992197051967247873335322254064878847571564704725325946918220418379967407380680606182676421012938302486587226543735531677704988407747525062979334040523372740386977240712988429638560572512115262098832407967581571270487340063459769629047920562081460790045018396566876606880367647274437499394226173999736666505291516296625789324651267072402304940925239893861315064124093080479295865091247994546173504790806347973263174362369258798736185424797822264925229693501484134059849224113527902558851813242381579581873717933143847138927715228896625017446108375375816291977422285903655343385098534711507981897696813673138163987329603709025268973842018565056649072337632822385165363380008558147134544911140869539282881621391895740233286166786832157932721645474194885160864225950913477923960901194990891365001563178475464936220467121820555436661091520207343935536975245933190716192768689854852722512898945052658664576045415912867174782489876943207585010415555657674497652284422111868734974229946691407370036589411396788899412922509567047564894242753513330319850883502964128086713074372003058370457346281597140812818612131200952315496739724284739444807905306693605789443488042624443537456903754163490612910519945247785298463042334327794120625899326650077944520222185790582806619154556289783261200386531827373402679679210023263725134583243578232767464146689815114177564906321185675098570709768795485621304275610733207948110473957759984539427201358048721281354500627878840556194525595022638653371797416055312760108867778933084711248047253929899713582954484335248849242502251793592254346622299798379840887857392084507990352344304177535523181575540268118176299618330997120686973304510027112074807987162915573061996803504936526756248251819072687694867860602046032761394693007657367705139083692997128699719564001050588847809751923745541157258751576920793267950842185239675869007451513809252881750503963868602292281968094593084483316067299960850640229251587537144982688128255461951762548141772103242471392307035681945222676036789307526955839320912566618519199841560745086770847502261566946234385294813061692515827212307961410819209922958155654644739011111420645264112692589525559745045240093206691884698450953220292366748030950387842813376795074568217364427019641455954566877156293379164399549825839882227186080522178056152342232543841506873500389135524191752049941505641749062526943607075422114287623079912245524114852274872893528802665244795052230356209990667116709473881891097623478053985636018518991521269479460167181800424200087279927816505909069299520770080113121638085033328501030343417817297735289704624250884820431517326969701210252665822164597394084755987035439553012616880706140346595554174256662028975837256028897630921419088509811438010630623499481659651118738330210278405002513790763088231406738722338751647495252013972823317489708705366297821888348504574358170972715211582852392399543591967997303911385512950090357238689676668956289896567749362481540178391937528529189448348887379393218735039775055697803177791913936730947978465079634539813233047629056785911701720011382840057814325414193495368563617984642832893385705227726621613996369411668502111505642235833005913345062857315680153654130008140663410045874548121910560456355002167744839643380779358950739353772221892951887188081194475091667244880980446966467905640578834181568578307288101177993500777800321053925679872252167135120971126198999933788302793299247781680566296848994633600422176449711096694659826695136637530593130595042177960355103248039410613477227344337553754743961798314956688498948168213188641663493850050971577010311741966046066149067882979192775876972954637391277569428405373433893371029145408498409621650390050654517980061486930255369601155797134216434961942559717950056206655584377281380602270715765156141753057976070497461174996524756051808346750322543167881081534114436803969840894882135568189649425946683953838046579933580125915737805204109723255882971882985635105462921335897107607468863355291979544182421791656987834715940717480256324775407698926735083641324315091996051259472273283599861341981969880979582580720253832873724330558509055772887011132286128761748509985314897259474649740885215102805307939884611759043401227420680171475476154869064420113534251456375451246514744263653022830210258845443474119128481967628118494851999915897137817279609790522524688308305668410507006338587449978840023894494998564345297494273414110339112777019232478216727048193220606053317716975595459496670435080985466458996912843856211524343545446477980706875336038203356948819912740957499257591559936254115381060759373574767674416766734750541977880580456412792058979605273595547114361975866152509565888474485946058574662340576205941485681816413624897953092674271689242561188536919478472521307114094686685565718163935472196203520289303759882541709108116985519951242162336348081183013453152765867390156872583419623557299836696866207705515968503359360695318579939398129548943371095549285419925063403611405065155886589775237835016110622684287704161612411296117833755414241527832300745764932054257612685585257633604294793133713990765162034710894348688210891934659824219688036868584278319902656592716816293459768154914015274236018830021610721791419437575174075689098881823172240860912175279557520505628412882860632546704839396558709960187973049052863045293487628096189899869465184081772535019048856585177917910467918797719930341323572103376022884208669043146741860950653808062875853751514959439523332893264414035138333481968097144751007393010017698841782254389496570400658919090086062604899202129841273843770969988395187867041085305043098449449761155845877017829419228005944228759075346373133799450837614697362429005720452824461420805157854332777208391074706698700462713881150470352537740314781878720896342859473773121377119991567012454953955018846349408909389151787754399973813905828723607636822445526384942810890369247267910637659323393853233292047758337874318615524103032132357423855572099363230283791990959630204986971070793209463872369694485021510829399587464353669223150606008770743694132455469773419339452676360473945646067087246490187160697228565761809438517732080078600151694102586693256270240999929478122655676713100623744419024879630558173754550492533905888537600249706145728108568498197255520082664092001459553724257679219454331555102543889769114319425995360711263473664662850507628336342278480006340816414693286857113867907386105905639962136990409376335659826076966262021363732658023997554427214220441830042789289919738119579928976218397554552139640714301181344337200016011642025112062242608167751585936245952577668442621587134277237196347675114158388487299158957578014391902300309958432356765091412361949416736953974081306762879546746605722176599918888681760246075254828303430941088128331284340581551185193881824464975835663573493804922233560825045762842563160054885596757445502646694611802636239916228129637048119772366711439893330266713879808698022524912637160472121186941442087242941931803477803539267897354866358244219166029723141558670967323930482204746183609752167056069284464739651874131593808688978877827960635035970296845797946301578323635784955054345388995918451868552397090761111941657562885618271047010952222654161474891955122188028966421339332770163892039038216304369175528565984657122887817250428686978360444772835580622199564911072997958515265386156019668290291196713671476700735620393638392726972249701492753919166266591656658469354882909710888498076677110491299379728280581324434624882809889162730508533676918675415426144417676270269450006959577637123553114752130278337317687504741184848687707901399066810652873285122676443431416419392167529102358937154980372277625837233745775742398702494105510697379535148948860648264354749294165581656470490832451699726595499661212178206521796818895543909238304512171765405785311626798096645701951260359877261216499262479382383584655888196878220806871362778191603883703042785493451517166936675178344312585227066879395726374052103248493381712401484011254510399239127816761596065126685199474626671825415324826981611522009884991395981275123901470918526748002541843553688773652606035651160856522264701721817431499074866315916109187992320684082698486503540243933303758075626478776762277338418075080689968281708056428576249835808769545669608097915863744610789108393816625438734840314520335760142643443617461672714818742897428731464346448251863219123318086122995165348060640312705947515178086766832182923756730419063326487930622462202813582405869724294097020157861999288040979566011439734841387313745550191153363747188454040564383823302251813214200944770743501981061623788892550119307189360351704127617777461986207676732560875048124301654740762059216514083585650031626179607555977650032349218778317823430888774686195482034146206907118167497028581612597323805259911737037781239554140176249622420361170435097757365371618238055292381317792843413737859380472980101205381733086686492309303941814192790685406742968996204082283635598178997572799069063440326956424082912237737433374614666402432620462518711104007104123418735750634978475631089520660583148839730313554541390847612291209774649898797291393739133929403363585187196070088232418638607970261175949225967643967753506863466784667404770612587561392398113589465147383026709915865132733624542584330491603723606549536610844181910066698475986292988692678044081855155353041124234525607171192527631711120809753140333012925263551222027291383980897204922237655708724004531479536642288546526801852378767088670736450780800083404995164595290980087853817123982549994242547294501298227050755520301101576904179871159495906600427358470838958556722694620968453449083972478474529377814958682364117177870017437345732226437652204240105823635996462214849238007164253126729288074936303729906997144788951555048735575810993154511367243055360157511836762267105393995461121298563493579516655046735959465531442413086623633516611170057972138774830348635731274306843646930025858310374329514523134603828790468262524784867866986071705126039989005316789095762455594564439718618669675002209607053172822426134573778854822521663841586563512009537720804200443728837632970255576577513809136048592441313055765206183023747692754828108943374069751992601694888530206256243385704016460553773602885926304694200648517372349559317533239803714523903749209183254336108931401063771550236466988760027434448818408741958041624967217242803095883615741466244087397392581895666793704259124224717251373009684680990845351416487048894487239974646491762682050231640466745922985177135521247407415349810064684434021910448224895628048686667469437829155794463944060981803808572644782226623540377428491761624155927835912820529783543760639711825916064007573288055794530599486732128004472234010584569132116062969495594685522732043501213750824798718658457748393818914629628889951390635297570577851491704979710525577219257078638734873089636802500036492718010201781120512221045308417971296844954009148100885126068629451884290978400638843772826669275806607775781796188441127282957779204135225887155467550248594263193072211363937865038044864577382577338052508098540642125395467542031630863419101217530624630664733376608965833908031705308792033615639131303544377339404352313569676035065786509761351979553184421424183558268985655215893612586952903771081649998923817176143152852812027033860518544311787859780387374120555284743385662990667851781339525334440571062017784151751923314286211997692850160933905900755725617984226239190044848675902651897267255623616853307154734270309985662055219284161604430648657617741707161686835332324041904314125379408790021339621647188144372276185140510282586404426472689606105077899588673600239882944543612074939985430050989123524305619315077875924450418743736584791898387349842955596149425175548970353280259933523093776517708016694511906411578495549539269804408093332317247533332956555866989345630668419721344119595183481254688583524853283278750310437793536640152305829666879085125414275095782185637421057193087427680804189741043393555501284994125597218556884378988131777742073791695569098531776359123730859078806849476895499327553815284321554406308263048304423457694022905903593101733280798871263956727647008016917754787289317560076296293670994526655954250967941237011724392052237004171172813214206321903435078004341129895794540095362629996221862043123745024416166025541625035684359523831908278013592754754758318149675124850305506774615719944836501680714167898173314589541226181527655618367274758957616970679052372670457224571400549109996238722424818449636293537749638821099189489107218427860822214108328103095674017582628604858263652216693294824872209560194877212729891366576911639283759250764954506076812910595547408358592583874909700977035195766645228680776499063467348306747227187928900860654447501379520585475921577239955423644654043908390600599576060755964393269269600368084261083396877847035299336668752010179748523346171614741393728039559102183003918948130367154063688294842756736454457075041054042290596335500068617758137404589927175569585628370554229949505753953026993724227409786097490114495845471891169835393752671848526472691282480245875969720818126508913415319409790766926652665268269911440177845901283386323582631899979575855977254366435277533990276702686124149923243913126191908258610134636751220132336804256315261164330669998039711769686253481133213081459490632870405382319320575185612772756966183656470482020348192565639579120939323266039468674172223043031543217654417943996969723231320035478429638486002347750554662830061698462380164337949653024391803215966217181338041440008945394524928226287996027647855057775309400970482260423068549355020370960964435023081831515842066164345223768663500070970506082728786958286707950458566291503730619045327285649273620572551079849887290817985877403553132462687374462361114766769043010075840940060893620996429515572205017881490700255915882466759864436527619608261281906602245109778460721876208991028862459644846938469382264003173985464775250584434292413329660866201363307396574875350314904995154075689811978029179215446203483384006671795945839002855989035256631258994158638975274991964219122301849332727098550887106697888624173064990509175184264157188030388462321023999149357863956451276651899350483873866837488330493946731650443471381012677724289069125862433772999944453477403756469857679872546800048203050963948012866066373075993859489671932348942917232082887520408547198738819067805933630501693402876976410995027879319918189309492546290633127815530678176552876957259299082935123895132326612018574385668419879761007761736146425997508249308140011709181337665983805575426504861667980080209896131885564279990152930392765793256263879341928195742614575641243186864449934338342925622352850362703237979858860899234112202319556505215639200852579174712466606040743281800863388825169359229132321052893153038940322635977645017298545329483650768504977380264107466883331557927518952715670473831298934346830997419829236583337860709662906693539398458138599570977909297903081978319804876948548507820569527742240013745206015230577683325135888075736822797193557391651519683291681765540201771839984068248290091624471848856081880813277306814906180251322660785322743043307017188862547458785502603780386542007366768388770162849719187528986640594112588746156709758127441991400480406089086298287594240043841788956905251409831509727803972829298311074500476370565405342254281447375738446345717994928673949527505307335327092961158170708901511360980706739446850923691972156421378322057397973074329136666219059721941823370573250745678575969655013920423210913037731606720306959883577482243531788146048310265164663670307239789271024888634821712109343085049705376626728063147711885653225703913765020842646412335936664788603658576592388830038736308484646535587391654302617618471787860606908486449807255301249810071579178875904583492076412921794472073195795774195554766209953677950741864153426606762425532425408765587533168340392446492476689386733286679728272813952160968276597518969668253764457887194803971987522753093163769997004429573572000895277016230162998793194332031737396501529583743296230892430324113877543721120587671137441617534125234454143813039133455484797426935413078870672278746050264959283152969074943338711405325650332729264520953573182642648574977476336659626176514506821286938487942539361284841386930492932517556689200537144244090326217003172325521245722360345063369454107940606295389935035318736678339649189579750109633169635178730050981986037750445825498207639716751237063134004585991715171763124822282099129498935992245061527106510451206242526900750993644163932943829541692136767752689741808118247319022353533612432428905871862565099602646619817956497175205354038624123024972958952241544542637021634638481219784398275575997239819197183989410892694759873585008730058636974413478585442977506669272350951057299598692308570929313129955012298321700092925133064537811549422579139216453629235693957297426034979920701396413213051947158823260046584342345184112829881224720143945584289498239783981909084962794993051945174740002890889628648234290258964248429846277635609542523490789053208995713138457061737891776426267780399662215359921354647114969029283487434380496233958515705507757457768844212428306410881663271506326803681051140441246573940926170773903375382811905629308307617155455100366546481638648732679171926935637516768176906235317303612661075596009891286676624422844859265524209951836650066898170418391098600669787536592057930053892356372693859766379726865904102022850511449978653561936425153648386174935722965662621474563672951631996464045964309892734229256114601010317123343032844753268178339661473838224469759724806828419611311709019039861752121965338198785502111495496026748818416007701148810106613425367447466603405254890781557939673506295081767801839871539930327814552979767166328485568087940094805135315225790921571780048039498807619407709851489558080535473922097871669817286971161080986653454549534751447286953855845035079216016431229187800615660349400780484121194753145977621144271562653142502598753578829318562861025157259341176250410271400223788865740271499802601780324054203084621079003289153355256223256837066730750308587743292406544712429762489092179867707179983622465859896665690223976036198887751664782875362579774378043825529672023775799420037024574824857021092658327936854819133120553837901782946953840281673369883002519866933181098937690247673510978361444861800398169154354188800754657146640935823246961342512559164550783351848172267564674016000888687608269261964986789011055193006419517733373612909466272972492944590508660970647694933935544396145411719073776372343739118395054660023313135252805055838700962309000411158845420683910867114490669345573915668264772863404922987937543540389394993470122216470789332922214444897415761246247237913094042851009140325046962931446751407418058632611816533206752077046738087409477028453991598061777268004712651704420029780641273071422988840822879905151900458929231303026263244632372350411166694193110801446720024484420221991398325889900250203757426916929797205045877307880750519783108304769274721841411778484138767892400877045143931303864050027233539606516912380836359803119088708309695274596353977521641086200619706523794887837333911250072613205911853860622743956821924150695112498825501544122762232090860160004742823897975422756693910811815835186971473259768583603733626338309422287944306917345653891600160087553430638320853424109679270413200707941565366788560412787226230223763936054180503028529759996642094059047895184046801370030549813356568156796514965281523189646290613044548542319185629130115047850383791944711321457949133243775939574738070000512755537558908367283089006022370384399825288819658184755172330637506731006787279796909182199329521614430584897081340131569105271375304857271559376756004263184601636152345985844296122361563966838206926160390746260807450210852514813855911280265084762020054335497574303939519331564628415750305118015055385016412617435431154343658791291834389454603536679813932863101134835585247347142027468860021543456786720396449338647351622265003441938240569021494847259069950231952398459497591805572258820648775729442309880661191508054107132597655873170684591957191772325492031322292800158185984038618410765696245548566529643811137727721203558484587707413860355585812146235631751272005018069444871593382818590382269088135839433159415806104097242430623056661823545973549596607812274771553463366706972055127457410839700223657147714496406132827731205074101507165873402936079804301133533883174613126803254732602634947653401960883698755332057091222527704480418575512959936369322756292177431071269718294997201750365478448006007287742590774508093429568883347205170392545417738132542645947874784034350073211477653281761655046027284485308979009791532209613558377235210514786528764322582683435976862812311314011654623304192013961398980587652166838034060378763613419587171214116798021577613180472459515230704709156166741104519625387795821706504254945296123455813908457107304644895697218978696977852794892313007508252873020578146984329172872787646353762309043878177854347053674870578150815628456552389865447780319384301969045169039854848568175239221121381798745478699004758850987843119667063209426939874670759942054975657078943378888753730479813952406375230861837398559452285513892976785304359207444786170237496798849592476379638116927614470820888218692433236723513314934223256740039607080590708547413281864020674673892029497176754512390384151416972832430054843789464327490327680474874546466806001792778804380665682431765337642010452613961188163573038610610611346955590317797080555261857322105192139457817623959114991222268574972241238700830698976184243538246539333292834016339649106246355963650464898664819533760088394910700767816907779520985410700032634456423070023034899491746504009197391390606779760908338640720452615409911475956153159236619831706123672112843655478316787942978634550356068735679553761547121895043466492587363778993794244157928725791792772014743423651889216881220759711674624706703205337416354877646129469078639516923093102665235894690404113709958093124938630020344385862718423582114163780225189010007113211424130624808095973394137186518460594808819242021640484610212807073308019415838864018417179280336424836906177880250503049567621298269554682493291393271644515149703012445089946219402906034560467620325992036211342061815559910937579432885459051687241065139393309167924496944683073816609617900618446043897054933024159376845918452317373210071586021910780067103543124083017749773413602635815553080347698273642613712812704357237323630984185927855188682080697148283207027785524929400943446552636495676695895532108568836464363393840218627779808138330587896175780803210417647425273400876014541895840727725546553762930007382957718184624494886188840505633661190692240783305710373539562009713396576733985601914850829748085957777951311003905368476070541477678593564455489184903510308499474497271302428233759826113817021662039014578136777073251076272027988026777862878188629622187285001035501259106666636459352306542667693377775383683107797961277491743398393480094502620462568087797197663593622970750457671605942196630114103796579910737678143643206389165088373161893041909769817984781174515676298875874775649758111610855138531548433839909280265474125914114529424108585850054015693876820783039532495684164461434436405463029863803114984346009992804204143701334980845075669276596929897195014754911249323644387204174463326540155647391233549836887972595487623028953083891560178067443521904290443578748624765373610800316193320506857965259673396063072807433307407367447029286906319947722751954527385045197646483735957344032661370860065863452415057670844778533125800485106050537907739596658933046920058717452363568891732584371698419760475131834092145819250886630570065532069349009157152062738515905036862258514657335090926534987139000337706366372689132577739055781291438287533573719805595198139731165138466941574211116718813507960918102231741470397196371198676362516545421367598924686452463344998417749098600981451938241112258153027202477446342137747376337132251551850765686840389780698220976060293288537253461941353712948424262750745013842299173702955743312372891718708074235552906796190317758149133804208214483016115458816674437827020182459006365810125905380067654278965676088892980319755836900009518985394798462529905048543227914580229309147020990747537734499321697566172279846413482842595764389024709637413064896277063734707562151279773338240564255374714474556286699432555509565622384014728322042501155169727616447764120006198221729951108006331165340576711842175092361218370559746254691774018165807515386525739733040604903913027776400914874426523753444536688623488543059118597916585888997948470918079799497423866213923770730598604224084023659114423574978573344818679640830808522937299986521520980537073861831503938923806484246298334644599667952596719898082596475237811119941050176713801736952596413452065798849882746268896094344726500441142467237862562551057465478792864894339682111166438414129566530385020586771812849120416682312107601628028326387473946575008003559531308632795684236617606782984809879843017245003340110044574268415344632253855635116953485229875972467280994401827167762539243619036918901496059187500155190472670637681646242958303058771624706694898151766358645572301172304019354009202007513042031106081940833783255144763015015623125625572695767821016029130770612002689385741912774807111110431627224781118954026467166747713106896388791542275854518285302650357185466353976763451655310426009677469070351165197639777722461553383106861375234839040887101558478661928159507741294516241216686550823046677685427029225038400563358248256307841804681675318766789004300143519176227270060964428781138420155597700707312981594938844205287868197396209334726219767051669980436959017955322201977364551660084484539638726274808690547350788802858153356403148654214720907163215701201666486963064325551054889414721032908597054562784027381999851829416721665063160432621088455030762016911491848258132700604491569260174239225024889401939164618575921852790673833548120625409396589742857685600726937674461178114644506176954581375949095901743172907153947646949254861286957304373309595105936717358902251352672918767067153005365107918969296182271986719207000684816094534756037490902781315501907951897622498590486678055922541913868490559692036475309481274991543567884587045024222593893119894012348720168965984237202280865675687015716752939014393362798136202998763707320551982954046440998027151180906773352966672110518080256785486466557590802394088930263601595223057762931366452162529775330451445427578927276087645872670244525254430063144321395843736121081764931003157322115404850086635629341826689851665742182794556828975737546997857668321009791868816004226880950425814634078894092954015363552234270869536300688664725817826392442858598085708996630413670870860811550240279882649778400945983122561561031753242532558110083937310242316801193732474343172460120625581297980230923956075343305971424986086035150335518064180713548769561878522961011551756141055841780128652397519050702727169427115407262982778682557762334812246615612261250173191682154344940078419712406519398761193370127382417848528973338536304962498138005996863812464186399221774792570192792388162206880254748966138689068662305322415594223502445811582903547113048903681149603901937221058402239692639337069528606918942642457555722062299185399468966931079277146273139614642871613172730044378514580408925466501767198511848346768937792070861168695109381532778269690714317437728063837287660789505829411837758053913857621148441493587088344460470721993332610315754960257091154144607219462834404315212769157752207967563776569839633300529457755772654245566849705496479026534140698089916327681500473430640335898669140490397508664857336384811568306376842272931896483477875687441228695529012839117067700523737848473560708685882649029844543051435300749459984381393291021231615963510404892305419206380460920110827519341006267505849840330111835958373621366856258463090691652043308966111329579045524982650479415392461169009299289591144377968353342686526012802613391794747120910637076315085005122191315887375873165280195141196022167427070821553433544629180931495095681067144918140166467959172008787182108565690187163068762098733000771909622101566487252727454443369833389212386005216323530884661088127474155668562229544389849497096236137358420931090229764238167171854267396424550242757501470344980505598494566834060681537389136412524936083765239280105199685099839245671048127324892842239093057521151499223694779522600910288254608473225720186474679176099168337621351645596695346942089371584716002070698340959247819966147845049713632058620778177584522402191268537579066452140274810386589877219985738561310898174245753857181798186350683165066145087990704870264173516741083609908008125377246359380120106351332146273653835973724125482820596739409335272812155909691632441277232457641342283545346060399050097864941264934310866999137513811440562405501388319139291650452162965912858797632611890320039631973111294200096638273723558247549996426611769191628751122263167934278542305575707104213013102818778120616171990266924345152843775122538756010692141731013601715455981358956412827066830950525407426002563853554220212271748975132238279905501670599136251115022428135531635667259642078874305897147142613061210332901989881770905049502106514319088224395083642624913943729179381715188349392140345307078277512549098900874794213715678906756296249251504319634629526250946222939964639359889378549217726897301784141235735757446141801020635602352729513954775837802651962003858992274696307566088851142417701850655204706048305760585899927885814094779672930778394437914872371022677784377218670855201767408808234748735518187926334887988457359773526602817714698967439447275392790203766408177104130484842539656294632860659858602050992663256707237746866291368564653069010358802051479767861847595097053303702737559373085753036492480633044892300655975423404122435224155683337866877753402002514158550316396381166349659844664577504608433401441474388273255046987341886443106748486738042355702565687712374364003318411946977602108017565810176241974219151126306537172613072792067748645774040462661127011404291627649569083697724489569105707940737010370672337062715531997388242901724831786613537440234739732582872522644805312899798185071062461770577315768675689487349844429809487369226867177467473690379223536238467050941562830435099503775530076028217084468513442718605474565581471970714190889273455265285448001250621377855015228513415701772966045442056118975660820337190256335930705754293122464434822257928357375840191299347551462545970771846848206210424033913368006825555432188081070966458671736957499813985120687464392601624948558207129118326002003623046585186744638352080744110356307617836535066121552077960819647219023144892112349192072514561741114266796809267423616086813516800181724098255318757827981888215192290862868445661328466237092467122950470134385894813651907136352683218808056273610502448037148741161836703075483165088833971529494756457586065382961294865284942411765682394067603227852174274128395251338572331411424264136569718203936343915777798613431282102972496924598918403993803341866760071348699658467549708881611844080799832253441065409550758438915409206909511108065903568423872597786942819473301104566456181786816719447830930754917871682130896526563081659976863527493194187778546231098091572573804699047031259791686265064074190368879665761324036430504388643922118262291376406144122380223923933198198603447801585434771379635229418391427749927873178248627038677186622961237966511116872868735079896393494947127412554726698953601060841408755891505951347017251314614070188101297608867116008645158299228276736383668377669946173225210619987587930298694133333300659094373750123065110495475500041543683083396713694687422632301281795771714086857567838649623644263797500413475212639152147843989280729726336548484341157937722868818757578946954146178007151121944094741219923834186981066990938490007429210730521844777540923259705213258173882652121044314572834339407101128919729661195627231403766803209053749394700599800420128283431957123401338286935315747304007701368751824800711924807881371859693445222203828819914952131220301157308529245690233975496521519887179220878206288969858790770585361055927356670939249076726426958036686292862584689573787467650460855039983101728760723443625956052390306454029601932779622007884709243962219296718292093351068774725711256815259519190373865623886032101489584315951716565896271701218529610764922538130230906003277271631637578313684131950203857701211125294759397402640664359152512412657454782526235116300369032536988337549179978013004792305909284762310674684427796547723442443180521078438324719132526734200415811731649406789485585490450479934549547672309126837867080947737174635384934342214928153335572947422687920400769706101529810539836474257330813973404333453962592588050811250899644671491039650402958798527733390289182589531238861392238908992670856858982978088801432082020392290671901053280334481485791397776496893976328705334232452289180400201476061324156700604112889498351068596480917470266102765152347290937328049817138783602615382120815625410349246709063744758763851621217468965261282869356561591339173924708115028035984617681440284850871890278439505545288249528296308196397698886530309889072917046036703191759445450360118501041102042318540402168641206669952946069230483600486630661212453964774838990200795804182933379878133219915375961380105698974109731561274393442999940008293876099302379116474359161070751635168538030354385137012613691902019906344967874827897715600900160717371256179330554034001703733586974092561983861368112097776261750103944236672095087225868811793046704322878115581965150801843351638625141111762107654643704384317435965359162552866313682523128361357548213500934092900131952182439363082018134979894747846773136205777167575885279754872597575349475226321859873606911389883983275245784604183646150771205831421927253559084365651351973000934096231283525634484688760670197248780678015055786907836778832716367943399558645749762636425555572357549340631302187637484402763504769901344251975235400222974215429942761998777328742125427153427716414222560948331026295572765502869133709921440525174490309271701737682028848983582299846499374769908066001338462758418238490497724466453458933259011624918533976890779533621957312804591177083477540317521293100429865365321536729029167188767160591959809863474669965246672727147123448294427700595460366930349949618875217865659567322189944895576719499640265984304167026409783519540730171346338143696976806207572838830147318400660154540701557776913921021695367319564768902093518904176617594583901118530003329386706254775685953651567857538824015711346281343573871645520541659219743662353021272798869183236574986676169315598877462566332716161553968199877350700000018657629983930806700872771797154052021557645245499317574166024302163307431078689527880844188206124049839302449044301498682437116136510795450397450521808852792906730867464824317929857935022453280773732137928931800011407745189156396595979056750611013126347712482255744176689528973841814621090773756005617664946272065409809116748301748776871550719841581505841140129467956720508868509153932415265342634365668875120008072439256485765863820083689853775044022473159920595034990821771497940243049500602986692448774793400538137793492977697587583344770661238680481897207753599206269518604918219124190572842593125384623469017575336003825945061449813380595706123584402846641479273260898974174558799102532861604288436976200802847000350794883515859693695371384008647687018920841696210011180223654536703390632366134325918232584394314965691179393569280368613643944845865162729849422482664113077857853981305531897781516990492192727153866566177921733564421364678413756303690509517849362266905337427434875918604976514683121263460963692581664095484362762856683680333636754970032060264571355834186391330941338853941086168002015718231851127442914944878402429918965306108760665582692372887834675374423587216191109261545075320096430180378061475317735433440287141930422395220362130468713468540519266046418879673269539622570241919821789810377642773296105461989243039853083339244404246111467454015298934652703198579902639497613729502003272026415226754923350877978492152555815654259313213106593070762646597584668364448225701214465216810792031736557152174706867718158888222435548826803617978529757547262161353537452960387833196659039273764446419541356561626517764211701557596196399386166713609331953392939270308143684110249733410966312533916132791027568657929270600366394375438945074523938447075593804730638078572949303764776147779233074867655322005269649256997897255591611233076578455726259231581667508681930418631616850084968804683608329299482805767332780851242653812184454846358676973468610134491808311517095834872726125322189862892089681945348452706848852580818378319733825410077545314886019052524946142009161067684306124652515569595870407777874446893465014501113611033895801542897565056210791777273945765422304571430396137383330188391663051504127544904412183824863355798510180892000991152565218448758538487438529436559682343601210412477498909818865025870362034834645953869472615850923727306743540971194815223400533376476629194694650192775276430891351317457533218839902908834570176670992335678690001036224147435924113075565825116816798483646645206590601782802177229978896225454784393951462662782843930819390352473888328199384601757247978481190641364373937700552593747892913199213884984254560676432386345150101100245724523332832800525754962367764214339735299114695957640153625922486602654936811201253223777081444606168419067801212363542865610997728171147658499363089905796895609279116960588406234605552966816186017133821840180978228615523640631962871062259407185962782171877581979399775889265146146321450454773469356257697577187693263666881146987502497342865918894212368350290172634253045582883598113079634922784658930067492358474308800087674393037500949886312774769579540798125162128282341798505263765366115572368622022313654234949465173135384248410343046758665694801712648443331041583190189153358928360638704766596042999027748606472856926032649765527798494679055169114808725900922462473537155102833266052597218635669409421246626699439847785435432649130373755221208404355018583014816270143752249294960104474389370318365470620913670435561622746412305065805319248047535356701846157639192279088536651249701311021056008154857662008760182598891259735078881038702400643449196480174378364200307893212410777939444895048682112437555817791982984391717280182079373725034577895424746560404987494482297161405161164274653595459219845710772541639982687739422675315437713044621683659527281770561082452568806715800418056358983570745868764950485239163756288791791363113041126475289933379069153116574342948545947797990996409494752131320454112953318603999754942455670972630989559840054990122470362787855301321060687096137548182532724202300170514905114529902614550166621058755472638332669299691246620542476908994561187674678071606258225672389608462878867500406140135348958011404014728420507770548162201486349153326098555037317182364360921125362689255383748471004234632841977131859518584331332504378663783291243286427740433076544995232063828825178641375100341516757218953262591261215785034629951162900997848577771605582120772534406089087126926810054240417487507606925564992044997229760172946515518561154250851019108015463688807105429775424919506626895150144045778295452478472348743147858049613035917922597304573171137988129457766704584024028665508398351722563037508462069866702329662119093113212349717346663549458720394258129198401106297056659221747241747988638748088635622326346387860331813097682654610602175784527952871532095059456986987805535576022772857098512463931824934341580240598207917351056550960450857653773659662959022830819714165308958082319557941360138465256257005183496618248993582111483075025576550351441675936051898567942817529300128274266438555800996401872658401780265411173511433565171738660777629821034171211579450316685876543535556431777401509012129699202611984170056014284980543890790908689006436787512892559430747217896459053240750503054468544135007454362740347068216643947474485950389690727699772258299370012881580447128172014999550381805696013303136117154299613757550354483832881987564289135602997275827936933774149554643762302320541213758082738353244986986959057844765671954524599552637794113809437903735021625485685371968478800203818353002814905532057192399144647930385478363982341845853822793710193520061304799758740136098023161198810102584900547841211847411280450422164479281119077702213373257967662139750502211474080818348463336799441797265285899786372431302105855712812616865634809665470189498017898248992495656554532749436280190732064939600740007924580486604357349086942786101488244945351571975883099835411445033636249503210276824311993306542104708927012325599361561574964683562476820454535088051957119463033894036176126490279857864135886315846420239118016789292464665953262156627384134398079449110035683806648396498589690816140848302651347623491549116962853286719645861708060592883023858525023914179809246409234583659732455576379753698646062361018548674339203382409356518975260772713411515622632013151587508999382884596949361701529981990232580806200578279136380924880770248645645559017356596647406248770136291277987296682344359644065758822814467155657929877875367508114927133929015682214897528707092423683070392614175875981424276940192136505944333058064691680504910100577096257997437210644843273196179878264405318372861099498502539237523979115367320775022516111391132423586833430054497840969042952051248543691751551644829678683696955227239115500339406177320766497661427182671385037048707266854310211488092152331871227187862811414301037793902352951849760729964611892455228566501179755753994386821447696094721147124289771069089919949684243794297983595787134723721069408112235892176631256013986189715828011840959055703907828954807752263291427846052018014656233400138655433569700107024045152029649803144960215388851821693926189867680650431555795893958163114970031612787890846922413219790367589404925353526507759876188737757985025486622380248631479321407124097195740940754300328197062455402499182660092920996045281375678923411204439439126591344763522910169058384861049363897448317473353902459811901723270064204054073568691207776413643735272560185944485079330483557673075268942212218312928063523666227523839351790549382466487353708588063938757880724169995793608609673795301871542516739529436750373311671770821927115050052669292113450941859868966106241112603897683375374057787334567096461530783601798765060066530548786762856157929225210711861757266588398410465471161464994722464970484168930219784689468193040847856569855966980546759207366546621226929580751417074163376461703062843954400414537604757587428493803092647502553906445412667714984237630756628177972550265360865056934658273702992530856906971990365402756887320044502180384054335017254103930075740511629404481752376972771090185214037971459103614783082178617786410237084898791769702418531712715023355190325808540609864580151707950624436279695903985220820754648128502516594928111002596440774598467200531223470485206121328064487281981132440661220082851341920141983881131909198062476569274475352390820020418072539874198204951616090567916263601502369443949493204655869539708487993306945281817136902413512827729678982558696353201323198380018270751564399622690893241282382630532583344932722996998125632098563304307070152129530818786421240666942286213374338827758282277172008458371314853758825047335930809815813978725192558957901390101081729007475170931326174776301233073987862683518062286450403198603659966271226560153483710014562916101124326076974041061203662433217526407712196564669057092669969587328278481228165546577905531897186650346774330522389581234118228430879500294747151494687651483547315779529970172325019749672207543818936516990861579987666981091730818288931198117940654833450867265716417383003405498518907392078654441544366310520647521712873084766493830106390782921769023337202794408214914118897616882660476349484463890583926811708071152427648835678214516834432535709002465052336567692806119166335222622560330262882842074436785743498584612383209890223126491102947931160715362866094057035655413261437756823923828646349873569296479628211108470717461822508001808085068804063319335369454921571410616690656332015417610330022475739453875279729427514606346860788726424659073196469968915350797606455508694414353817638504516995442146389762161602046120939931410286270507623145700481414915474779541831955355414279522496008709621828332833524605688450957185421896311354456560564840060027257836934758000337969384592321982391598919295927161710810490950955334177650764476814871186406692628158704452385790065493621752297984744795084354446274718896855368267088112431006194406873880768136972689360967554997526900515649736066287146609797457585418185752115002851474813729022097245305426489968174964980555210808045118548242577781935815553032855333589523062398654772728540445821806389658374186717424053697803366053138478883756090479979071732316948949249633254848954648116881113777408930593823416238554296106030608669152336386480428770631254499359487582357621879866815429047254115269923036528216960156672319099514896500830631135105819084315511359336794402927914231883541853994996624010931517761737469426632084425410312737308738267271745887759126956921269899916363078833882141129288438597096454975475781509397054528744294381548550094441668376294905660234044262339208657817378370946954841398988398017082301105821819745283798936863921511053771651502370475704572731177604414764325449743638873867229105807374937065092326669573931999957826599909382379852568969214507111387434392235696746222242573850645313111176476515174414188607599265756680324809722128377462723696353635077170427080386012691099931395168041479010589042762525820631150908069642669611790757826571790179592758849082007263753764708674290025125562769382305208474016042501499762623371918891983964925268206434126465175807002719794515522151349304755339170477550224006966576924453392175028661490099289081379367886422875767077507908502732622801877938191532734403752676228487668485764394392503250345090504246684539580850561069840877904523413905798404187754329941233520463848708596147281427514141948763520721599036307968403052286217011719674216465943720073263046087057791553719671564519403846821745356245961341965244937209902830495677116360360843514967448657462029607333735830092305592955930560485259583965196192001238816847749768505231615499075721005863596284761399458501493319952296261975242596111752042742685328083748320178752389727377203800655437845240357489916566776206045578628685128943347907972536989578463740263970025467550169063894906268912394411162096284631808511130994924470709145610654043649445319298334667944790102835644575621869186505909496997812850844654513947734088416016362931553126908190409687201825765140835003860231668725541254384929410906930865054357704707433713655348007970561794480562225436586107856064454072299674375801748173065131068050761854742319512403937332580382401472321861417615985783161984366736708896411027266083412049535351875288507374807752720226606297536805208184190888016252706173556247179996214854978644170138575424801483395937533221822667313500904315629054587498344143610829564888859973113521517371967301129922376880856646331815825336749260786602841624799245701526984461341700804332547920420625238538065299801233638308931019983019565383932262877307844025205679757451293702866811638561800776995415209746167874738812579248078819085219699785940878681732319630933027041300437386294385223572947195735932569925322410803166194810341309221613621653624044601678336092923786963739460840753940468781185133693811186031516043189285001080329247696835567806879869169044125073678681392502967512222363275016475208883325839971889212988554025359521258302862395943572776932056091472301577101377017709481684610231617080023099784290658143262860206312795832367837221754887234973927753675555567653869667813681923459457046536655472804840964906049247953425063658290904064099102058920383311962819167648604003602344761266902915288592466307379035875255513959779129840894078896332979974087573394142998452786879744451852017252115711609535745274107615457827888166174483948478882180462265669958234373093947987516758796253694447602943870869673015028088382621048237866875501959398371418858885754491139302328463973300588168585152823023493529671973569446271412355970243696280498606338405173277904676993236792195327968171084560965796922531078842499263695587468412496535364215904854986082336693829777599750967588032371388872873557122693011368444944676760963716077486859487111447653086534588291359394876299503179217218546920406978211207922354477421943989915414668097057171967233151311790218242118663095094977235976043718752777245111379115802864179559141706671109134833961795510366219695808792708294767385961652074211616981502973910143273996283634890832582238395672513471585715223662420060165859261066258692502988448878427189822719676232116551663279406727328046645428744112197141215476492460352194072631489594337589275080769436393383910903528784596010670470025241083516824707462359485420324427458905382439989697465053577896226447413304497916155711200454871653942461570161646833596427327443079115331349046126915079225403818683373484919432784132513497092331481321547553909588714205571864921129541272153091236144643380695438716834643985016325245195972062488858005835166371769941347877987730529423432146130632628842249682380502010263982956361211825268073126268993078122018869425616009762320849100029301454314640756769831032237058380275943482403512082527155783838688727294812447071725769084453508343343920024351112688541517622475025749597642789101862944720963807704515250564752722326103142109317169606413272794425225020006362050089962117167635313387733561294979000708218720030182013131343275727603113919817731697625190782411456685478185458733137863904511512554228841794629723815291928305421745158953587592693094376149410920732025066462681162199215548511399586660267152142393456695364496175851956141548569808401450531379893950529473931171371439717144432039714749217852965694380832415511550851113176572987661759546518793279659639900502730091439618718263540416296214963419765946625091306497939980596077509577054060833083580201749722934628733078075221232413796531265956787746393565095214214411645582068086152039132079590622533983492884049898653351779725949614898928513585917793985253943375049541361465302496665583483561944314679767621738031426183743267564812760375233321836438701326498765772460489336393037783243667250114325463454058280516798924114285314216488696394957809873689390614366052666096822225955335551531265872083257229129280623007099695539251358158908297128050305325717119857325172414170854335580435149819685669850495893935476689974919582822313157890050912426125543392649133048738082525641393281841006666767068218378826930945902231443538774507084176254953466766119105038671546824671813121904164405771891295237872270864019740546994524768431891002936850418210340181914145931421683585904251221039596211685780000383034967461595484175090550263707859691308293316467501813981230100307225659229093652360023830500295635451147257629778092906119215491888379139451974911310266046425031809060313392765250982387538940920279870037565928399060157879179760846100153271416097519558150717127246466502826721979568583984409758607205027710956552462386441914616098350908174170580926353239564466480006560124108043347253177744274598810569479622990632702009496553802960926579857406328950351641641466436251105445503455915357560774500095562012024834570268000353948830566482489708330755536434492884428542264486786609590822300131256285972929786685744874875185907100930580720889407560908406455750678551415658093819857985475527362625139103995876812028889942937147649769097076494446677288312188427117921705566667997400398268007949430370313898456533184961421160355602028327443004828221845633488682773856411754564217702129947661021990000789143345435141332741619206941453640489618090996135742277927019111184815660736903386867277578082819939622762827622509803745791959379930369068568008188179122942693444266933504524732405292075008592811271276062293889403950156407187103619720954464514006767424174708696483397100817852974797214098831791844182346248882143383522711654636605279440430018553520724235402238343395425009657170964449284453327425550793825145918875839324322115037160033493067903160150640318442539490378913345172730234115670836228733371671955062870313855444817037633205135180014598053259184546136090757987340185536419345710922542056829621226948273178443431123776789013633377197836361802624372818769869517451616720772353335614070440122491918346275631676295908267988200579793481441320480575339221767753352450923732593134963881129996485169098428669032425082297151474102614814270379322602391484316824017027083323259007164497152744480404422495495458695912149974861953362399595825711794842432132641376130857574176575930391485407339943410505085057937030682216180433876816333569438864203249597689251826899066782215347158549835031900773999888234248434952903527356598813913118583760065892267544508010851495711404179822296314538196246858523212527593971303772176841760153242146322772728703762100863345235914055944657213580882786429452405222149880283854477752283568427535701648061670590368812934373276288877649632260398444799289724210847870275106149378614948142019263321913685400015115925034075082351970118393061410500870622258639229745788146472505897161656017490574374881392517860299407180054877094051733776682073686092526860689301347474712004987737155592026889910073954347051821103607522952941743257600882935530403526749560995795921843099202329927974362107582909469427135656392608412968533886128980928212650480822560973856241645939508386974223644681287894035460070872748048225081747507155778442152300390869753114413746070144539832468717854834458293478413160577706916086034733342545790295878215254286102464794907167819481294601067313000753411677439426249656814436831489399457323575535908710987759424763149610328875170621619311748088435439265270703910674385090134934929260806645695984569630335685160474187376740609564829864179809785593936792704220142555582774416775486415138648595489315884745508346263659616014893714548517886248866050908709077587615911972675838852043870748897921462072367249535398438173068206479780758931683594549479805732387567791158623638781008382324386527769862337293016082641021296547851390012171790331578002789639566250367098334641337110041350460218484945220697313894056138745417329403261235871357535895578488166855799517941816047535366852790116649017236420560033364594456078515848569865069754633095962664144863568456259443771480916168438896510223757958502876373722375127142761553868833524053920261310997279859773203108888443234772294865825497982195676668463424941054883010962640489897936253346938038923038271521713058039447323657978975500258614228190801897097054530781490384450741153177996564798497034231268401648152484399245350511671576301710122606615932050380170764275680312909400187779635445756031332804703700811435522107706808901675474020986277763518699284760006484704862361737868223526677983914119955733918202661967922369838658639142853428413839315930211266247217719483930606998344999350665659037432282959839854935798182954670342431885709266571072123656572532240776036686976427201123915078972939086829750992279292297813900270529491376883411828783929178912554103475715474493330806068488521463237706646605792213202963972417934661319358673319208789694729749602493910047311341123441748078264744896024624760958285610449056474509727035496487079932679298018355845434704563580769042189108859939236641425283558307081173466734357166758422947537438215184302958501476027487609835153978130823841788267060770981324970604555303972548732878398461425878674598255389778871213902284327078876693802645731468720116234216295010941135512812012629174066257894679809883573864867579326159299432959150235067523069476296240631288981926528350198967037151274624451537622882597538245410972139366889928834162212911200303545995849573556335133228547170243130662394585282499668627483805934560816245927556332840316952393671649448269554742274612227190620916065193004271177228423242146434232968454249139787843517792179866706641951487156650813648472397650587808573346853288538226022673594148368245534886053194815501848830710587038558436571704623448394752443197356667308832855331810482648987812186182749010296159537813348093591448314430740408723378967730942320580321980089084185478399726114536159964166737295851457167374147820814517373819304587001815307068244637587429470426252002742119121781930492072192210241435412690631308681774225618491820397797550366324089720943956688477711635372502625767865021379113598295662590582938003168325514595714640136139043647205942997747643655271243576487024863251056924280105513606118215577994082399632804365950982627250706082371043828085857138897538726914155838435764514400195233670899850815861491503635300858835648553014421069676668429038574484537327547735016945178753936372656700855281861659205282200734634627582834614341178697686212435317128097578323550397870053700932214483981832523297231074868382929004180000414666360352514313514510620069714929694018774916072900303439106389567701215195401220950213476792983047535278658142053505866236885382405651363748369987039690451239084315828090740185160942740519820354117427245520646533054773752986655688951860975546105822894107796587016175986100517751661366496615907830329782414194035170791014427309114569091619708251961779168213735517703164755619873824171933302303527822880470316016881372483428272498816067875846052788600910929694745867305844848409037969525177195771486987258233243931360844611703286485838597694277298211839660486810895217532632691703032564191567042661323563441119749916410023267983062473749761241922397405808542096835034738072956040037017635158524054039154535270198958070749443917097664510581413452604660054635420026986926827124536426773092985918641319825202587599885963440447784096096992635698382924895691835492710070426450799008621387686729469470717824571237693271294079714913478330343700534004208078615297003361933192683116408498634849625669588960515147858845281879832372893707150277244320995306848519117754930915237460775144159155524121882647886639765391305362062852409049974488678219392271016989668617406772463171683543286885229202651703767542523284749163707468338043462330006651138550053229916657039062957812772742469844290725594301961950351161635384748489019776299404709672960743761661855759270318009634838408372371382366869558957493231576532577711486946154117684096476377263001499234886239954429026459186954743652399149084062592247287411259816019624066495402471223279149419595264578193579404599518866422205082717474356972121837278373192340273871486056556686726808946177212103236044107679078092474286419160141372865442504022811290995898589514449475851630686190529301546332138557768466315539481749700960270100193876888187671332163889486303610849464320275264420976292355201321412550763326051335452113806601923971606211230465194279828014298016155135578614143137937124504905549262064096023230936295579696033499714258305603551050365993754106594375832779924182922615091059351130808464110981224226195922043547477194701156038842846840186019620114323314349167065213011490648478842691260162876720415377728392091054884545415820123876271791244195171267912250234358284467525956527680990066203238226901633995342082938132600780844401144063468688285576602780304580749036747032330638302541511193633248644225177538422664478370653121226143081573434974470842732080988379421387820640269221473410897015032074740659447935118330588124668415861235281797033229945860839720837913489674647534754695349343238803971851247765060619133367379870891581203465267878219136189212819729306192845773514002588351858558265609631120665050474704204506296384354775582642769252828570478479328909770006700000612705952314580781223883014258173234236575920977904756365447997174800068950706691804160924698711751834171311916319329104500589815109638749263030779900798238153738494989599623622977342677289627196602579336649190863256252845122738420120025023819969294735897234017219117100962953554074051706696957672862842719697338260242409526525400307021086585475574368413297577129058439444618931950905121666101490324937297728170635274208340813592105274322912712568624000686141570860990498074429736752562793601334449888469020865466902393416001955749050271002270010628025679278538330917015736426063809608298459879679741792772784975235719001917146257952948678345764936925120534694960398645563738368698606797216571976540189009647318947602435008386596129483129436858135629265532452721184796042486136239122592434380709463252613413840084315930191373697400485769855168810912333697870134124244531591960262729303416156103296733220263347401700604990079679210078288707133644141597969944825724164423769154940166005518752393750633570628344539156780259472213236649934788999953064229231899091615720206160904000859661386701978594648615436934465287121913718306891250390956023605398641965292810729205639787336342701185686041662145523773759588673902712706206554346691058116440350641132925791346614880038451741153230522462026415570601183292646439781323596379250930272109960294113513128267963110847937448516567735820289084391583242781907234739182686265728018234582725251605095954265389578753081371387215861403148921509750251541610144850912103618647828290803757025916764668881575500678801629911014848300841028782860792890993387675944219256206386769391732312021511692661520747687929526767251501317693466755569392084301271507795491089583685236698600857590541035037718100568446538835657643084777605012677203391364515613329330383326285452769429947972776412771670209815536812336905340036592774996100909965783532282853175807685326387889343127853576807005130645267022123113007221026617904273267938896908366005930277862956336502294107632565583437069004884593699641963713813990364189066367941810821341592810079505674628474240106988041894872156118159315085047082682604860106000843489546829466169932066736252178642402662550249592545173207088457626709417925319901916779501969206341386118999366397095298637620947068228063222007041664928047225663322912457108506608596534986015162871664240873831223684429583877578527049995883956590728614848988482885073677897013090047414725740990035443983179244389098270467572964934249783792968277448267314439673201893447058060305693609045762398842708538705792559176996004233152846692175829431066390761864179930433995169796663542784585446111390005279263567569556153043932672679468305651006599022642040695057027278487017920147140470203263693670548975912328542878286220120016996146592760217486598250890239378077852677033961154403739299005221593710377461285995364198002844283960037608647599082896899187190277813643926300200088747710080770237753426334405124539899566975087066880265612006254665973744114011496355890674196515855019453001073306678363243191743329942535370810423721659728737471939889420069663543740469217662446726316024956739963566541035831269187964254682827032889183499125291591386239890713314986330919320718888388115401993296132009785437046976927892079044801505435610468581822975702885993762565414253444549298506216533582612031724141348319557874735336353426416078367526416208002644113183542433940539122213384296346839513178004180843063757269193457085266025972847439904708021635204953984935274442625333779022586718271331430104338362213802815895489006813174892263314322962569543766330047398346242707525901728936919452627421735815000841784161393286211145753352462023285960084013539300072597715790600683671705668758300987077560815599290694452517521041831924289543488242847832549255048321319661869764359698227321498336033627262165458199294060721167456033459671206686131219123551191964285483704027221044218903427614440038197258342718265851714330294239247008202115888672044670582158956380151411034852414109040734701556831514212011032015188670374409250194300366052354682396313588099746067663634071094739997386885459246972450614285453013896097962037220490790754255798426150895367434453758011294048440664439019885044825042043088641485083103972513789801643818313030479160619856256476458030031328250951906488744554150012838663167368513376717969880722884154062663997571157750950379624876601593739849930110013216443605866246644615637852190020331348546477355201419718340018182659409609695367507481104455121336722027954620596796051332961823445869026134627011174174414672527624804224183228603515011257265804467402606443953664041694521553838927416267626678492950783146093716431579363431307436644685966006355913214606123381874895292436967955565281835843219792621581325752667890658535697940143817491661093348102269018118214024805953817931104190433643265871694982352464597321922803067667996731308531774633481947245086505009694145581855258175892589548210899751893766357397560945646630631465926200826905366689028030859154356209386018494169579814016905383436645994545195626930967888645197838335253655923640730103747985098848876609164312400027200737916283592873637330913025482395435216998827808502950931215348770972367967023192373794235719098968123275727917424159859400373805805011042528186073834531769747574636662609863612788081286578502883640590422074422567862483397377372018349546891559812134793765717310234674982224582591658200845322689209826169997928955814763750117761636548360594997602369637822675806368185548029808906710161556662683820101352086187248359324949002546967813451681127273712665969107373645180537839068831705385401245200478762123780639872625032244260136795813183616660984138147003508866071077994041888929237400835438826613626711870732724747807031793795452794089429108867184146887690533600274844443093554411067625520164520471093031509639416571779291611617657344787919193436715943262764835842460331979631001757520029955140366633033486424905161550733541956941646671126621494930778208839812248771298763213804797244195326347567228131736845334066292074254654162590908664617441391576907473723249946833556801494402810169697971570919059508567266616335978431773945878125673224981216502904839540378220940092039785606955080357676854237099999979454159394055533355935209026565963000259644742878607808095553377296744827180121420039510966808573408368702097175617318547261679262881590578208034580020839993498620166735140814473275654557326728268490014234166590960472760125857124811470798145933646268146974979276264557679413170266159077719935123682494615841403138065020284625056190959469590142725763688400786953487938801372718247776392121618342075071600646906899367370844629326444904447284979263206815065858557528164048477420749782736923599760255354329571530410590296922008489248325008601702304124645802186290204344816877996803005411417243817595773607604467171721692781610293236388789109018358566316477250562782431559122714086525180175059086741413710968948261242776349891365439159765913883696791643766167546543281976453273646857072239109403305620237996707722441596480361828011548866900354272829544881427158779385551959139293262095030018917266514077384786621484912922445613362157347634978981806434403853415135489885509681810215768455687798834486288963541796081104240094987139363896644145043169690204617257304304342152221507545722484999132846041614347932152165846593788365488540116301080287754888066338819921963890286549710864090137455209933939937478386870976484154026535947865338399854687012257735051699543499717003143216697663299917924860102448917248320688282268129071063568630997695049931051161508954492691770739964221070469791796836232647646995717707478979178077356593181663673783739641973685840321482600852956861431099079996319627893519416804970177526270437003023376760180826663736555697119947368942929366592721193839986297572659283421881295788839847584405253854146341056598069908329099479407898075391389895680070401769221353316607448917541451199238519098075681384835000707666420766983591758253295767373212292931037462153078813676372201668808335670012142947519891270050322654775407345959397482726256362285860947387341515839131699956554333107155130341875024021262506705662578009716227033015717754291784395464771540391045288563222117656944540965397588995892952835540198592247285797405270722832551749156725565461273532494794657478595443058156946595898298026764195804853188819860736784411542209634184915724617609059631652951666512951263597194976670303484292365410642163826789967371135629834096579932931062992550985574164472076493564031829446029712033837977642883985106823045038210250317747317978860031561658548616541163491823219851885227415279768425190971788969603064118094719010742446356159097739407393801591511573077136991119779939927546402248220953238724834969437449152470018766592531613689935579461221865925788241575209007627900030640922527074495021730694275249859212515217430869238535275329379193560545475433970122764955201280128517035626510560627399548166232968977206217827790808631347142014621510540415757874885359727568084064726137599330924782020905623744721109565673834943320808990629394578568186131432840130792261934647231968352632386798875951177184822355758703191154398854240460745954882511679024019835341814911732558219501212517013480642737590315250322086877562610285535015506418207307912516312579953122240820286011807485404299913269553490327389269583582541702394323328633906819239003311901786116522937774732924475329131953745291953217938779091747017947817178841108154119029545432921808782841880177552771739846722067087171656929411264411793196907589314926866920839112880486781023739686439397717529140494206363169021978939879855011290444344959339629702318834899259755871928067922614803182039582265170748216498259432842024450775085387348616458112373185855180776529211602243927746114631203025142047940309294543603800788235395424602028846533101439663152359056392245490247677853812097346852079280577652167487002372909418574022621854750119431910905455812743394631897588577989656670975042151734968235977358779081586487831025046410188543337999978287823617133239434924076037632116510769629906246327193776650879769912256146991125515753977095183927284843870279323110580885268513787243209511391348699021145194072763626291164569113996060771296182183960706954212555941590339565660394679390858675825455002015537093065675160779353589490370167411219638602398355980875677553986481604149874929808310354124531289492757565656471744704368307369969935370876219964988221794396795881101514451750112528243334702558241199959076503343603674808575194404885452635606384674215416893917062747573133031527055915694975883927059042802069668945170294377046314711016684980895335208555370052434944145660989252244961254632744104879744410062568131817191351266933679373500083029791929138365929378542443274966518171725880143465274241371415451161052594697274795383143409131474266778891880711298422785737856883712544415330414060064740656603362854105022610141357971324324461330673292561030128587685481713400346837472632498593497967277893299918540603864324261852920940075872332371721880392593309219252620008634495351879806024971710573770674861592009024755233633304232354292709736390528595443905636425881025247323438567411621189995445354207605203028415079135428009254704326280271962844578911568018872957071547057172739972033720331064640284331622502831143372578162265668708302742726077499075204227732764646027148610909475485517751285742460900501022514844215299646979090286161362362610846018510609245078929088440912396898090491132627200370586610118936395396704611923804100526492024559202169168184857925286741924162144318197068633481702956871044823214882893708194212305859103192385232684485288880873548896819043977323076489754517734310903240330702726286049119269183477604894475809848838063337374237956591916256055672735794691252168257522693169829240977485742353985610623446505031916343038689723280965901453932419840435259492498634367468453327736158902426086269115747775895685527783628172348118688623987066965460266904567458258518419788995831239332314819975844732679333119062044851650077827933309835314651151871746123183168247442127347468202919918342468118956620309814735785968989949346970153175947962305286615843723003345915945647421468586367912307384837831265137014045929429374334363942503515647162217250403194254078610037408925340888950972968117745193362311669418414258387291321206504109805526531950407211826714692378983402751143004909380410095872972087628151778799799275318378685458476501820653482658394261393593614461757778318860626813758814366524160063811460500918681231325364391346306253770311908831037408110991926474889557813958839246415097582345774377122685658507375977580651043284436820215109775498821983498225069254679306703423735231244553711560599446165961989645235941780778812425631601323444270760093337396409544082513954235949091270025094811550784902104851730162148700091996143385527140738455630258349398856152448530526531214907450575897634807783352070244217140441537401713497563247545277998243416815151093506193793282381126792831974568537562666835268878656685231807176125686588317788869522692231644332374727482623608828591393793159829847992674844668533905396009352393903005142779117863284582671057182160920431194516587678688196834080343556446413129596228244719212012959992551560967614922553617569448072244820226375233529549268986353570568530536437596419699527607780820525164676612995937482999382981772446357507049374642600219102342419943624425846602048376182926870438866078099377948842348050746860677411003914458868040526760369174844637991104512858924383767435996015595804035907369223624645431725233601770578152121078515229313720533726710766518581016524076450993086621618813787121699939575670879432634969930127787000470638842176406944772467429524853663812932001332079129626194371344297913270476268879439364642227200459753011650889449509305055250247407877203197836173884231367061227943643529908989965048292198778150470877071806987826249949774119668259988222595869184618686098854580626116962307259309779038755646160756755294900348573801232951884352827605689420249833735412131501755632119769951303564664405816902020673122781264149633459462170138582974470068882344993365861977680736560923015354973535524585960524695642178105579017298986149125991971812531508376483364348313293409101229430956636227404714151028098992109111712159514769184199409882131694005330612914410495003356910982917453215444248578740053460712728864010483656352799596588088665893023044804782455135773383376196187088528898743569541854824846885447204755077584717357049023396727557676516694833056109118605116181724941575859434177625178606189920948520154464295218174374958107561897440429592954633045536708106366685622324459228639349286759602575313878464280234864765084149362046208614983676798806950667655757560516465436521687009982189428899754991756979330056917626189191484133561174070759314149457505869225844794893705853734656823511507464026500451523582138533111054377953970547373569993085512850464603542154167274985916684344770296292601076171369763125586084793177859184641399268948149418162361636766347508108453419251933671976998255808967913402703331839036437312261978866490275457716599418080224246923794228449636400503798711469741261936275392033941972222961340020981088338791856860954689009845364356468149523907058802413962450955758945382275556553133691761895749487688349869461307592860865758538055245151668989603587246723786753320088353868201880129374316703155653923540016756759403742755810356904972286012752139788810647059113793222904236714243792278832007957928276109753952674616710832920957438815012738880441082421665013940855177942663577242705863410985213350480701773664027740643325518044189612766264839732170364966279412289031693721361869080367000761416169040465309464696300018175785924696278806313224352720865608921870688545873674625175553734564255904395091794167129500289779472093111661663622787869666245960052725866611579108688956396235004697392332658744418736883770998987584034732485501948263090283340102330138651943941959577514572880798015592695502847001543110266994299608911710436151220319540276699333021828474702616496758617471092610239670444594352668689779137068421921075054933603993562439430051411994438553907062415123452575124529682093906912627363130449571271547001306484803809477659687676675182698281890320154451587456001462768212305960813983421864721533007724244694697790159635510778629320079099138111816625725335580381862708126852717076287945139064251518393997639824320044036933844513332502680976854975505591222533974179587513867413547052337651273284343241225745619642254337385192556625969668553934027200608566433393735429657351570897874561382443178787190247026991443427900671199321688312893991603683714745494158040280947756779673130559078428576325034367991150845550833289418330234252103342081205966604767144813577771179261666876602829480973376437633541540484831670952682259439006334003931987691965853376363526370866557621843665621281134249662163982266512459859972833528016549606000758709065097969752664642602131258749445088653151215172925925038516466603985025103255881444548600965409929953597689847706824635478238527597301194827077805219657064069882328596123443428668584771621936459924886949820110299493644779901228280107124728179219334559510611086938451741105210726026021790033552957546202520074234108168257119298470865878341451859728127727881728981050397304575950723418073931461716341340641619303485181858580671424694888885917191673479352818204729947476481581567527074722352351451821257496628363469092339831023017709464974278682664755887462285569718396419010285530320931188964171617687232536322340857760765922638937515205371224582505204365904223671546018224021596180783134808529763131190838403518248623927854511775349824499639150160037908065689859142066652930801622552237524602196801600292015240899050763350300804212247355690644905965098046482921686470914279643605637960483336310984878669107497358015336324241695300517964466300243059109354474791957123804658892432646673924768066616355368100005352367860406497404547563983197227241631771477528944636459311789517213839797855381904626495165707575647094524062687339405099049581893182859928055520415780868798373991301868572996668776358848115276534007053473400208407106612211725284186697198610493611337674196148730223141748434365865958336915851219993738755375581461121476330568513475909462154850397198890432420142211939302274667890316984794081498119558243464550736934810751709527936500609880922134119214728596306521359206100432990220853221375726167118151189231830338675158628802721406870864485209858069624545161314971229083609385095542546077523495553431110971222026962471356976414804440946763346434756349703764898519899621472006503903601860865861089436714972750913993629001154491237534103368133478880284850892999254214658199606228722568211528742549054291561404174331866453578191714770430919055124529495263336901886235424259424612462807882266105353447825637012592684764484653930651335078709213005952225115056290483129337995769044837888612860714024232371454959837528008642602741423888026272957083395409384430285544160793470666028016676461433646760116042633549737450836718488153971321695213116665912472591429531494065255669839800140865669713166865582026684817851434912689967231836591005624810606809081555833895553326519463490230044919624898677967731980983339792488328165663501300623350984731478791205815919480193748991637239416974856334515564347611829756497881324681658537460703708945967604007271061825163212604630296416162050280845127009577145695828199566420638520582275749069758669658263700142363827843493549869594413468994964350102324194897480786104852660879320954525941702870211344705651977781758233012218112124265827236641058995832412691236937294865115046450343949604951460489878600387347434349504721954505825217641973792255656931987757375891961162457421989911684951895526646939534900529326861397928390895641126753989724347544823669140457244964363686152169160360861964257830970243186369127907076677150783603788022607615161476587595517105151755202044726328730359838373768713206847890931399441788094189401286297187440877369884736271092012862180938240437523656123378520481579544126398006806321530535177345512979726091064945425839682306593325725581236471789500848168951936801978545285591545192512146999659784164669525727971958421730517827274943227161550037928656455755901192304990770260977391820157607040470923217524605295017540428862721397491976133895819486599675108072390318427988312661089176660577610532878051477096808022226139177241861714373868509284784213153446945501678813078142317523097386071787160152823402533734888284482414062955936280938386041877149117562338255515422409112865347302732898455834556346953938163415216208627243092752572291825174052766040307247813431257402275029338751284306062838849235941960199792764487046944411994427896603581452747856136160814550726209820629883713192247457112985696798732092714375153082885160640577031720399941036735768497160846243941715637069260756052984142346220447190511873171325226778078361809349330844590887245360108819746970123259211018602409880768066452231188961479794815977775082977080511936458644344483910928208801788394490123502714042870453227048878551303526303938095205324369851317352750252822896774141765295579681471913388913901471202273318900796612885179396225328396708396385171329250780814301532342841354653820178636770780735719897464799412474332206127378891224876004221218787248207623660225248640747846856391111385819797459581728754850345725373755990358033716716331307520110596420660237268339907377885683567543032593702474372093309306840440563799215077239853217490067032888001243858636151711443506782674241059060510304748468879172729421246774437329106443963291341886475512108786965886254772733439692121121790776634157143274699262244914111385510048246359442854473820985344834475674401676177349793099082067969039394231213437382891316837876759240347374754628675134552894635794017202511716864932208413196510681433300632995565670122073909490675419231616792243801176225121924911479944564974288942413960613118885476342056893125687518746205837020889610033335835470691227860261782266547249182563342427670647830111262407460800061320183172490782045489370011309294577752459987672038580150756556298371340935012291386216645495296564831530787447093174807868918008906136878396289421243717727824497901784724886685404531174778215268682951941181174150684634279862864919839969591197876298682066091164878810470216842754545083366056352509622394850323026113708682813911709036305701266380535439733304133546170090194348060179117384977448731197821079925866531554547262855061825807067919207646596016553308610060021961827160786044306312870057129610402632776618387043294899539732727780117678504860823272895163241086548524714351571788948456426293537057700703421944122851727973971276479929063025339035243121746109118978522319463208765100150899486929614161165511050423656415127069612978779163266640738428431700228994203707997881564769105473351718342091031201057577508524220401961586463886342335799263635741533856592598977705476446259753268063243273159973559053639178548803937200253876361792620367513744617855239928297721219497073355963932210804377355303428826900276823226186903062376260222172649818227154886264471893476103784172422150786325622670993523443620306727266151458087925964848234441870302166337465624452715874726401415608909576933545081147870187809672672925427758979139828749238352345677963959895436131267683234402326476439296184667043523673124689119538612071967169864661191491859013053114871601997136465765975191608182203308138344897676365470404443530430142357648910090428430928180045763649126219283419752435397301206388279582058328053461103291841343858920783840501657113008808717857416350653580868013270122799176089193781009599722083956770506586768442660347640274732421432232543558255195375699555404028623526145101027921619160919966464133076323435394307988182057104949109505125885172408192934478462546281610697798670816722307044168763699623784675954202632092985138308449685055947282185437010078938181166486088987740200995517899176130615333100512900564906685455145443766664268457516822701973057226340965817953452561405884672282259019736722987568182972477274297556161082770875766236942313236483695729489511803602360463922498026496241180532725764639889569208476020848817777023395882288762097659041511020479592110730982151084684702318138893666589055261802072905828747966899189820112086196819854045569645065027715016705750614961639682490422025005208392226637416201210872334107147187909263004032033815628840138880259177736965052589026701112036369914173237203998507808323916878485487747570328919032612006560154405427639165621255965564608390400929555942402816733825362046162709383570746282613358820224619802445250746790770693113537741947955405865620148979502253388837359057496111722814610316608415537971085414353965298307862109327343384754362011040486501251315936738251787911849083954343612262513092645249582360057327518907622975690404210411520713261084822395928974944076633898654253420539020912621086097930304739428729861384964892246162616857732144019293744961304961111653992757031169527312382845515547563719995998736042358792824925115001938532649637009713813373510298337534978880454521221086660037685756237724503051522014165550794099516909187034843894811022692753920957819530759002173208042948847449048039751247942681323096228688411647995827588622066956684029177955534255834804396805761289461623230314628238966355795130551524107823219314297302543427027748557946993730450398802042341434197372205982929375861241488010185554043575051974488687088166963382060725718566009322266272516053140617858962199734938885106152263782876043201217294639595858139105849471466395365617543343942397529008552494577626842691472032500668991491012793362480961776142065176209768703450168173829408482726808709601123091339590135156290133268107797244862214192101659337457782660411349083689033893690470384250053141906550371553398058782332738861448337474739155694301525337499514959102085757342116105108496633336493707794860574617587239815134199157408663147168119808355538301050717473707197304614521818821035276512755191872148042871925836869896948855231173325752262589791258920627385760323450957621831909940804785128557079988965176588675631885066992919574696486084159397472533311251872817607182166715729039323528279043294473586597249557356752024060972836622434341958782484127763267587442420139214593341210693724991474864612313091776633968776000275009505478344340165283975973689013968867968904874579407182065718872988833219007140216522144775331747593465874708860172554714964925836955163451032805638396595746887208809906278583221747825276030664085275746972979240670512175564529626587496474844147578297220208018423169421917121143843733382949031236128863620921424845336811058830795455701081438946733371830116878261817927573036316962386934738424624854475739233551049519669753973096643365206436959302020514283186308038385722665409434378776673818818559800080684635717111170805277481435712191207869595451855675603233148008645765014686920797382826665992141140820328264519124869631791767281978434474149758858979287392675247324228426355737228223183847141278073719310812781837401282947599478571852382584775315769079056144457662218939726432826759492473919830007713312969716154050023160898697334149951045329306500250233586449318828969929130881753014588266567319475889900713331054755395408499014228474704927972424436771816988270576423605440297795636629338111246130701089983706266722581642291675814033393126304461814453307164719681613526967125395776340817472849921099544759294842130613767092245610632361479204469956008691358172644322860937903723934939269232148643809913352921568400727120512715701849919640098355484801137503992282541845699450841571369054445803801778639889650980517788574829444157595974585076684896358691975400296253492115045928356876951486183459128419172624001126125737272455739319453286394072907386333515487650461753469732644243697816942302874703729824327616996747716625617129046000002035412944713041421071186832553107618754027645356037670581430230818606759179038014352939349581587352181446544013339885580440130819979353803908203948558374299824170286643477563421873177809669678138101629655757083677461123306195283246956402644511894024089340260288535951754702331085470875691711880876791085634700681141929701964605453927826950356889289505135658514919014769946634660624545259638454431784683015736438724663564195509494702028714927418941453786271526621611708922174000212462536585693762792870164961839010115152464128782377733699053978114532196326514214610606390582191528793258678489276890868413238398700426862875003598599631681310846743008709192947752079812276077408738948847266188654138930011469267028277798958784940031350554343572291721100871418232930421755014299175503017747145266405449670194143220830655163702140443242707521016982197003029158469766525535666268239133237854826756647195225143481940045293168836597758634461224906375691898125861698859371754423037400688619250154118779356146193664199620278837674625461670120308176912320580743301921468326318186268433056112642055184516434938095506553797558501938539208046595290990254160457669970266824557421627388527665491857340690996834521403140580970993613127890535490548696590192459740305707866235742215699553141202138357062198269519702559054750052285177228081928045937028851195783195708707512649340704482363424978407489422559537328307600383114397956796655570283261368510274703438538941962224172303771524904285028076705038343318601099598858643775667017588572415535031351206804246088326025828260921401520735358252029215244166294738111801960977872533262678554884896674104663223288274614282033010306438056959001961263309819306712374839498329067061253991658160743740271694672668590087997882365763633034836311586681551574214481899257677670983431976278275062888245910726187013259648299811177284436977115203693858060233704653140577589651217231911859091743008374425755620996180791408214092870461503254141645884063216507740776724877816435663722026871912866753306906398815289870652280725385980050382940500103371641856715225836764844431937039264901196732925412617327552764163342050397990203398068673545742279197611278414232983461928466867249958622292934885211811074101304284270800523641215109512396478611267652721155861276255007893377530757750260312974860752335827724857670360287330525299658140953001444214734423848928664983973517381296538023038114883305831896867262573182307090892390329871828273453148218615822963909833717317553890761500301721746672663903437028359450416840634872888182775283044303870459648850129397235652088056560576334711065334664445775060393077044652400478922475549308975620460154891932376402108093735076775645297395697799324862518096754980583666231959515145767318340257358665533315523396000135336501880588479303279277574565106442293231295098723590720048590663366199746397840658809114998156899516806961524341970912216492932596889337247717556101508267066989266237719982695652764846720379653509277510972246720813721162435658193356730032977869503831015323490252253764596053919097010961267377848322191435514418166694117257656828610871477587965719819885530529720695322866496455095241398842256136358606949324000943436548866220147421454888632780260282384772843447696844798617912106682762175877117124124199648378585785051736906772277437019719989319575052839922852806597210304463223489509397681926068197285629035261078832780951250731770354106705631605298457895366686210856073237390805001485569716252670048768139680840216259543075806800544332010503477110664520949842067250397205885828516037005121706919170179033374017989333829541258430627663997574050481316364252737068204867493270867584384652484475705814241121309900536697386852238266172331534632128737965350278844368423181290399393559081206642767209832491189561656716020196496953742741401698712602487193289912828141584347034081637292302451164278053246749825897922279144282224348701012752556081937039795229601805715032700654161792542559879869561158198016327649152386027732587952446295889047931738382459149081429956495615794256746854529009267422371015757285548164248596802468956355697841252231921394969293419744051848361446071696931515909386644305626117922404104284739454410611100569404714872600512210051406166982485803400665396406392676594505170446133924741029226462761702778518725410467145473914927627017271696282248661179090268454884781271315654727082186220444843025884566513695053447326179205070063434079208534809036594877638754868032502468886856084379726707888305314397782612531097217899504620207043193419711669678369465603948487851660953721577894817558645125461952966485330485311241266938406352448209431184923748214992791329513967902454775020614024594183124525020573433743352777213065134126610290608210963487584964656601263643779958129699531148027083722995558589537234492082829680854690418827563893649819637327197514680136224450776722400369409194622147414258331822345986834413627648826737869421130247685063254102987000016143172658905112348676131176374262458911051633165052489622230700594262565835150640788125659921460101554470840106087100369512451275231627682489623848674427059067825414220053466093743078697208299058571549584201832509534477848482218159123474399612468602434367128116217913990246852272163149096852965569922163285712599703553411680815935817298358793815382664385774287238995323489133615341190825910659023849510229857747320127790680318272941593053709058357786473997934650040963073150378354680312699056040384577088766683453663507313702278359508583776714162937421134020825906456140805886860699282626086510332940368689454919505942457887308004119026030000797850056563400917100403668344594221469358841528407487296918455606243133098104516303546538618091115901379000880310030018553274694034760381944404416836170731996533631979752136397571718331463339690635017726744898265543445028222473962286167619868132975576287392936722507118794660062269534959566425876558473859016080599880275277655462201057814471201793805247174743127645203892103048268879948780538643143195246143688030202822349792899986035807600626188380560108297165972621675914611147740956372147499196356881735955926155372402300526805307350804952806240219920057219373028021099000405806773507589732270668080488110936382983762418968558736067045806369307560617766428240926568936134256952045825658303447073202231129134332317355553459739344794950031066516887637128783424253763154726864379243404463737893046396717777170497013724886227950172198901828244990035969408025072988920381060705578628623863161678938044875479724844193971154414153708819890929937116897724820841562445574180881431517714708980287219119821534533354833255674661121486929976131308562681648909735944151634661773921961910233023702058964044871504047339405938878489729267416733142926603990153852860454339294650416306146904524626201297408315578545055751338349475181486633142025629926249379517037787797481616370655491657591148853580597084476752005661282598258771240988648488724165293883764796295484814382479106982601657228823503337549998776978131590158697280612803085596693485811497656098319389211947852625953261771785994263255816100256733380913915160507290685078060753600295647788141517616596253966725665983354182594751521260085306673356278946660960842917932628718225990714762425449949673171065843210219056031770906712655519258850685661187394246558878117516882135354260129583615580550415880902339406135101553398192226227585624682124378184788096388754831774528885967091434492942693377897199342061419482959111219295004282774727305758028961267723478895159522934808247694839717093525194279220322098295891870894276609741794277935161538294916695505346355193732763960381373069801904668386672449905985713120193531158412965659276343676407221180702513816887347564406820127454887524846158284664884437674769982059647099715432755309821145051088529778306984888360298998999681431372431108365981785397732342840056938828155727674648144960948961823935486009880922559869542391487662284480587779891074310847293241058925925737006854289944360951352535544761040706535055388303836208487412625839474501057731977092636506971668051393433351374873029726552203740047093566934567795732033385862774792791263238131521872725309520803974720996274243533551795824410432155038587286805204410326264668062486995380347880142731482907336563253553082856020443505997651370945696283800754514988612319174716495136715309559922012076309448926263301683891221318927625310972369555023376348569634298345601732658923290932780231092362659675881920349578435121747136060863840771597137212779276587045437758720511159966080118482742237524557460240541425602963790071950668823328145679270258522729027421008792485274251085687005927985311697153115061248004805421540150242095456923570221754457219732553611660984779693839811875885786096144015727269912282584923753525736375585320304012734036685257741565017834665465815465918680330909431797574260715791600659800775076163953793976124589774111361459440237773960077166376170106764969614386466080218752929236754903496298971186254652619120804747915013335512726300178404072389897708162428719784285146448415286615002541819649707916767764861966161407260472635112497597659816115256568702256378101250756935587439069943154352270050870101729403428192352303965768914882917995393036669929151344068547014274476611652099903666107432132967371654955507463693438079139638445968807728257903686357978698150635549644250464009096579152598282033950625521190799083421269272007397762611177505181386199878199767307842684720411181339263502847828374534799924793665739223691898173250478313337674561739798934326311917713227222787614648912224740114008043732049337599455097219292049154349803629065768550637012498954561490549525222635314641022234119183764087308478571908514476973091372944127019604956086870763704518901231239759781219884909312556704076139382186981043312270877153888721282270859482039937384669598745201657056879401424877478775334111788962180760828983942957162510712919904170987263953847350463068546832305749070492454793464110497708210523821398975545866545022703372720428534944084404281459540620602558658240050185919690441784354812474283527999087222444618826678460733219218499198946351272164674713876424364180494772960844487544018626408284946651879181760844967485582974651152691410825233742687516022179408594448192502087241898561640306749359280053052298975236857430187141420837570270647443547955126617447689417800489871698177589611442126925721576415369608058210030651559086781362640576410967110970500762472659131630983704664438244321996465453827253187487994651939951347491538136921548555534191724377439419443319091449349082325740269875842604231207869389542131716844033214737773306812106938054430978815019544369952231503517326687923641728480238225386805518594009782518931062845166994756120279302351462566658414440921778743510327580053175507627386631484997969196021580468008766136630994519370292080686482445898082949156284130135225728514107482414011126645465353816526134521667224272180985218662515662878793400721824860871919837257229650646335757414499023229742287425952725050268500992404281125765986373304555570691017311011163486568799357681032524570459022488681536278170499525610131801801394167437302863355103043956421248567786050575342550688891437032839937596284922215333925157881162841145002689234383130496180499078085692646006406940586685742896541706796616329911084387605056270348069063581622673236645692398932569024414121964371802374598729448822887069648521320476075310225071539172125665636405200308917295989851084780413022256979169448053632647611206722438261904664333046285695431237304667194431978952918036604344103040754980434683041592862805532762230474312567828026766971129873010028945461176982874238051746695601850516986193674010123243673220285606520079285200406895427883562741773506211424711811175539113771809694865557129279604066525353613149614290571601396067457969646866199470266697087126184948390242300524105622780217661860268812964179963042825940497984056021022923730034427232450385794497549352390142239697738588063229077624584930886644407125522667300362532388209391973532379559852618770340217168113613664244688995717687486916263457858627738001523551778365164639433150313776199009536476795807434702971205775412249511815475228326617710129688702031032461543632757901006677029739396018384081034944577499503443621887763970162856607366888171929011783232108318090467496908352040766073839342639038919925197857433495902281958300398870520191860504396204029434297586600115146622952297208369892790156862829806041436406241897828546161075536486310128576857894380960243685388116124058913729169930035644215452060503721653632610778292018968144656504838638712617223525305518512117650440267711584306638391563064600516095594266732301304535079292188022678621537401612231908658966741187667223797373890457501988968138014241288879445362540962904034592580676449770177954074410314849828995544400924237355292827807362728057907252903589993090686638027764540897325887453054579965355276302541881676012286944536041772075255643663631728154509137259753652639181847643030762327842165270540155216507366682069259530700933285511475551203781461303519086793522388065122633099350475342997286779896753076242568508166130281061045856947851828364575874697535077262991113354706290953748351069259221219380373709925481979588940118375202984484958844463540228096750301970922415476599111404795317872647153362902892481998222317859391719976297850062099490913833551072970485784233281048642395178038610756708520787372901906142234460850677767985455967834605919134512333732199100869938845939966793168983246121295536369319171743852700009019835978390377695767901522079011498181343174740645330845430234528766667328102047209217797728079483418466774598546711022701830114143637643920999147655062553914326394306134543261905160715841631431403016195499001131272637148876461370668770723565006752381744206797779494977246230011452560072417149102198188859972868421610505664390709075217715010211987965144956994369950022368159661657724391224492220095526855614762873925485907301267120215414791222198357047042069680232140354175490439342325508354725134667742607281786199772958246719365496268508892359583254533095694779558462840604300559602851272031124318737248719954792120959698986915810993209860426500338637199734057849703908058052961914218361516949466170077907734791041417237545123799740561578465906597370415844543631725678025192599765046060209517877893854868426067206437435467816830711588572248217996307343196253147002509870732369787176078051209523380656094838268200918023672226703638371223851694815810037009115278292377929938614194382775357959613834920837162853703974210922058333833714337948179994855616729442198324122129018788499298316069387058185116823676262908845580352271737665952119814438457895743423361950167888873099844066170199752675494557436823688988279160616607386832315887492619965253886907803543481607269813597265976686715889685543854009600013197625111961249214747723511731806637134910851586267275248294549256429575885292830325840746049022764270513633770170224824258618415509106556105234887488512994609691804887413192477575790313014069993804788200044346294243698392857467888293404213544137767750266407721358675667540392346087807769473695024907664460705324261061026498055126614332326480658123591994732601349017277143657567363026016345870502820163726305947873601844290944747810242466692491178570497386609160909548302311387927296702636627670398522454551404574599196176524320429267376024273278608029562687482324132479065066609893306138891269654005053281055848397446058757989286075794932504565451494294452847843010165458786188189685882251105739178079861302403573909724734038111031926778223339484944293225149148302890307324841393097063846327869962577006159273243156308781143322869938334556564480662133470195502903358469274622894527653730261021180899970758193219351330992214743455793017932368607946135014720636156755721094814595528849280365751787973772225636318148258021574095103043741485193529754375996873083324314272033511277862074847053222232587987096616759176161543378593574422879043662656778542367114204472489523400791297967779050084186429134409663175091775603194965034275178380393995217593710780969200365097414472754551659507001417401868340946504207669554574573726901206269848696156560574354109251127852329990010253576068450881433631552191860524017281059496829466029523206198742180531320202096829729837235891897177354713648421201948976144506853603595719268090074939741850980855718817791593746403634922438035244722925614515045658543582449533547250252472138075785462291071279852023948507196812270475998687762484556034791242598856090574363358774550292087780322968855487855180709089611253261665917331847074306510073506851861027259732066966085623523352571344861135037876555870766081698377204392929711870873270678198102732014903673619545113492728036650913984728384281643446088445286859574713075543795339523214008973399591726146852682180102258799051358844042033510757043961008566183582516188052789324636371114519909132229718423862534888554533855481092941679624521769407288564447784207780517314134557942635340027092682527984537186037148156365001778259150520136673081060530796629854489989680777007282031841379765239651005282801757056518065078642818056589825763803093478183914019759823840198801537130465887735189599674778162621166254147155066695758038357466527190081135499352200543981544233563619201698365531920537328438864896004026846519999818052241153645975180921591436456913887955970555444208737677338158920717276744528590722702881619677621513298776811664114019295485026371173874091554103804610138837505539107175718387013101901393794253505624482572801435277069251287581369491755798473493300838250620235461904670131224829184854203913947589152715310091742074684823878253434600169091136514612976433452371316037826071020964455089660933032335452419264888113854053552223815170694867413210492354014541583803704906453277420649173739816758136833494145152445236399573002330999859659903289280314595328395174232979778559161160863771866007722918397091411326048459448002245489073806810416458161510178599205435248538221074347080458922891039063405810329869956627591598822732203985191416352702879923409302855437540249744003981583649185350662649022041447914169299819035671834206789014819256058674457678942523232839241040892506602683457447856251724411111929079119914510823933228621489552539370247262644738976138295583420720937716684249483231760392697101793409136524633996108814541134835802663085748197164637502632471567959076864161761468193924951844157071396018394731916262535073672190246463547005328544811856819292514296672639710566561678275237744897160647968797717161763047642191559582663630409539244258263717905582184451963388778286544187545365649824846358330458889663807925296295572122774280272068866330638972988242786664868197448629540622159379030776055674004032960864352910595747701948393464991231817573858863421539734083066078512446728266883327410207979587812744972868218686285604235456965053538270018753084853046286522173356079694635968622736481506119918553524550121177923002336211382795175916386274848223333593062049533254084841701515686188289566767716824829947763032121391596793548109832129963128050841175970166098141319289790511972861888121372957828511158158088111494007548071190856375268235604883742656728543084595786915248873035557092476460925980371941485172361279090392845560098324962271925387527354764264891074835907146969543058316164986426003040552298968124664040318532356652881953635814352246351826180897335757178040710684184422904010000381557322446918891860683684194426506169434281870892156468735937754172286485088180073138676059558313178667698809579551843149249970268813681200579952725383219350990362857882037441316906786324243370890335124865234724666543981212233648173855512816698476256345288425054147032721086664996532245000052321739496969087078461091729184696099968405048744932603273278626979122754850474358863939208117549664986198605320804723839972747376984754416375772316580569605201954281098717315704517016504258030014670563935393168765512396353523958351421067048039614251092975841570553301439329542131341066192137354523665715853512819203080659919538859256244704466402369674830892927331548944740052947819123226352251047853050367945737232209764138174572406678693601201452700655138585079715555474895733512964729072027505727557764879584974254609308772402629095884667913931940533920909690919724321873692510571298494522973192616128867902510513454245679056476348953179471542102632644484011032863879645574916883021715254514690172866768594199916891255489433949907257453068969225558378121485680711621885376341355398269280856549192029563484564194510538294196989997755495057103411504754443178412321705134929492910865853267908198816185029423270042606162671986311254965255917736766712495069978785841504757031234622909299174373563946876923326294839427712047893730015056360052261404446823176259782457246246470898895965899230058974024776550168400539042372225931132829003084958547282036341040051610661916106350762706022602964285494922361328781256412743843182773384046751113738372252961774233919804844062509973196004717493334938586238445958068779426867752654902278896800913613107197403980496523967281874719575983632031975454720264316095426474532455314636509699503761128572354128971700031493979312721226045710112354367856141678350928740224625180475338163117797864097904365690011683630286028321189970863366229843550710165138834151970953889880737610590207580865138198256309740478613928956278506241110575450640426618486972950794120880471921851210580716283774857126312441674526466514932072258609943420918590734751442870373963008529297201249182444322152770225963766894365940991757511185675966955990544812081116819867088411872969318043522715449650573654241222878973985988645929250630983925345726114524996388063216140087248171970766240282697244867963331253035952130064566234732794500598715855830526324164601010880223877043381783932281378072616124580780692238101130495955539177237873000676112117576514008348417602479332405040511528647581532367715349099514455999289878506339598946869661980075635780638609746853344457414706125099335510048024063273820543201536853296835328562518275869195307163829658320823186641259867057418126122340675513250406409019868194558311853785807051665873572255740851839496295584119745471256696336572113539439552831736734096657696389991998136315174078416143981900156074453785768011220204102639219405449266323072116255881935698729518617905663310006056304360492068099698580587251877765334856958680498406639342853448755716481694909956371351673818458652307157561036692239370840574425581785954885602068736385730813050126280738829751366044329598045486386111518140810123915975527787338345489712478448008023155454005199827467303574664183617587295853878311069779932088836484587453850326900527139938599871048497242777613373371094056030297243167905424976534390408019566470276899380521498290185354372318932157182555292653370748325022784833091268414379655850865832403890234495075284952825357241081678474193078345971317995403182478454935306689887193003438303148666533579033648507360882575605299900497035733212233396486048702539051725079240541501494769751364361122408639481894329951451735536334498205373727044282777119638804718511666243688402654879369673193841074384340894931912140143400786520319284374584536666841642348343488045461106149016483751152584442779743172679124240092724260412308630697365290317104010537945492681758943928379221493541563973287433758170680392816304353647910667427484528450976056241702682661119507896280766291209801314903147990993285210063288970363743546716751844475570117363933229406342485187305216799086465114280690391864889406172887596961180904011276836078079555775702278210851133870039874780273703056561882874409522851689112237853811865109258257675905356879015216990181261507847598979207159296580532402914001222158619919146138569240462398518444940934711248242652264257245585959299195353697496559388903562656773541223198422275416950942025745309439563275299094094077351738855914301393707670862219564527146228726492726509830367575130588758137649396875473511808730257203957778576971988039717240744326048287526136939764628485752507499718201631292940332710174729361863109674575847187973606190190781742826335898974399309185977894347348435685529447490708801954502822774643135580683447402039962164099599202798101473474486026144106456429653875744285478439409897033015041485684732373989464678166388915880994132501740609695349193569311564565291296396998531532442713410377959161242473034985046820903988147498523689748623054451879834961806215869174389787861171744550300113736619027354583110777889235102296300704272554573179275185771729088578285967472302487726757147250968409403395806461531654031734419516551925034341524192291417115833130407202756229393115473795966331246691930428533038933334606172664725982648153671345141331082615865712165444493517731334563716116826070216014891083349267898191802755072587140121143772373354059304796336115692812585528341447646506633860024592941147922185847670094857155891266308144112592351098213014321271885877842942717489831317736151731967725427118930004642945449518022074555585442008236506972472038026675419562267078585126657994567121294783297267280972208895329795019429007816772606408747415048917388637341870323280096565761876152058705551001810464615521266963305600186559995442825097914176950653906488087576214754322836817879280841490340801209968271838522437695654950154357048525718387491973201525710104574085389250495212462801782799969156204399866049299623868090150730596531517651591212452248854351904752722389143966159313839403942637389377829701411897103516562726481075133711314599897896682128456702132699898529590664339227210143989201736206010961467817176099967771861599081796600676312590916301427230052412116248101753551473577118568273089328350331724608584142145014937004218284120821532884295075990326138917888178995859996799390540527610249032067634746724325588837860297527698815325801986131286019925736198414619473478923975210245469376443003761193139253907126794180060640185735471534107639839246176877064870069948285231005260272717744916468158758725032119899676917747621120936228875080461114165125574049524327480211113413172992635941411361976160036934663880645036957816016591906727247973566974113393209075067748051483754230859670397735604455317725854382901439443365314413518468018263331942772790923642930114342653142682517390361466346087859273665983005036051995419012075901504468124376951514632895011883702593194911917242960383368412464003629250311282036045153303701150718976113468544951757722405564327594753904445306138792983238587038485480139358482250263571316771364149540016101207481866857918877892751382268047069078730986051873180798120411106917496756691321785348585455011396178447055694234902327216791613078388846638195071972994985053748508117265342396372219198152102045008443875501096724813648128944927066187081322038265567126391146830611360784884181963533732448632421270997469055052954044029859161997374910650373986943317795632368857750165304680430469279403215188217561443691847709042023526716903685158449244009621337024732715163665228639857586962461921012134287963876505949658002950666823971864068436796756695136496874871475391342280473637311100996193020365218232282637058340750836589216674368815240889683130029394700935257464422930067123410461338717556373468432334624677586769707030257502042326957601423427066082753786736794393160996696637666810894348651968421510462706555975957894015221819904477425817485159875311458095005638603622346000588723006976422416455479604405645388020258005647326606202690705837034085018804873307035956760919155194011933810839693118647194212835684103683001617726516430240604064083849564363642677642419853585436273623595597121771904685135045279124964293534113119210424183048574899894092067490878598132677415480409359192251783822776949469193129223494920220175177673157612687559411115820828744519656459101496217103841013033028032519214064849998226040903039828874428091414717991074010633703997470984890689902118325410983512502831173031304091070119241901435744763397695131831958510791587659120572908095128257065364151252936977593011125901557303978640406616192817450430129705958453722815158277773033245671341810462272133840481818194746705653440274698923690604930741162716788583151658068419925075379966231339146432948394231801146001192882462595635372511592214239767688290120497951506385786490415638650401035314073591029219213303331087531406975835710216522561584441781222225680479046512373534723064433376972896889173995606534356707780898596568489191412000148150665708841389648430045731478626225174886655094398449117733515042532771894318845149227911395589090637229989136585997265602591992900923300489959707122226732070695514772014146108688806143166311313874097961350563862474321889008257641667478876618935819722405443016707221104636171801673238071258271127817420392415473517534326165679297991519495185531279847242430542987327823705324292744580060372056905289505488685179573327466075820249882544126820132960963264982147820413317583547404130034105375021825407702218920338401725168002115188491162432611346435004747508393582876999340665637865195978366127511712883969557484428529747358917242085481271191726773034224376040874616470689904146123414367317809007159326212433752465983938270508725070709797991142864435569173900757524808887683899531210463819961481361204089356073875828821231806224286919754460463126817597003598896072852850417216912555201975779295421988082730295810094070999143707699199516649607344532071108393411649593407392718897963062608256253225107603274598146661573075212854538696859155537825926945275611891894511417532575943554514928875000607711355946812430231700878308462755588878252664897750088634466970635057449128185036806149010352276869600659246164029743300876543524927317269159618812694452392263794849653442083940134010762953492222739314310438949438158320534650761447549980879060559020136092809050804877046586635683628776023754538048346964777762222426153928382783709623749831780946844076827662897157636064129518989696457682434664497837558767968152715448113117020472888621041675284405149156132314296054158381545794869077244039529807207437916076763213911358953379953524118858712719337893071459834885374732560225024400602607455858346536093389923049079232724964636077454899352242569204564330621810637995832999582716909656785549718784574242094297141508254869748597853296460657603034809226583120327928257599255086714866171377766631006219231871242064419641952221393179258777771312484240498088559646918814300791374257355185239342946773940651310716580928925841938007787509683109110408156730101815184710018397278982822861824801245401728226652035736617507229646574113061160711194878750400415791486036568437133533289236743893533044419326596596769471549168925030482731721165803971684727561431242700129676529485449664237717914400423481628728199873766369987557265019422441145861831018601966027392132301973290626226250587034925007038599230042143991946573177705737657188553133741521200284723885920970637690225421943996136683030464082629163678410162118043277759522430005651337163973000986341394220658197076484203449575141763699302848654494381466279266271400193147819400237933200657227890681199960097796446762875209621461728414647378310863021001086115802528564496269026305811016883566462541867382476673808183420423086782641887475837410331767086763910702679080797999135341621645954533873637137732744809332316096137822312603115932716556124054159122168056377246026636778320220957513019630513986750722517193015470981158803492386893223667214759096710864251097379067835300417687077145251435995375056714630692050753161807292351105660796340176544477734948590800973004049304329273545108719098070529983251812153543101251636708011476956111261673707011333189424395013538061841713480110630383109124681333031347909764630866378238748820752475735471169974104434417497459541725028399837451036454924936946448162145090416559917136575061659459741020060236110629128210116884665940620972060575880574729596879267214073646081846849222048039252787961835026117816756990911515639522515509044540470685191856772987354015669980578509571731612911504340933744736450663748804595073685108504681319339095873257733505275757698059867125673696392342907194982103089824388668947682267805867116586194037109245119973757751467442088310876037522317254486641643104129778997572080962203286813523441252336013422162153815576084631930847373132447396794399406726394457086239943264385723989107769367959938288185077571202253857007405908916014964649758734369842569594375406341541640341696494445828433441619436719131096408026969636313512200457325923769658160497701290568847318885308000043984865758858557865581865929967203384095429638929246441168431949972699859254387421351207573775009763195400185096226781920030636303414037915758734419615798128632478799379638274884657015816305176892746012975670641019508405187026355776919648316241880635558724607896324967624126315892318052016653026296252473786574610906542602365635444271989900824778991690631705021704361058228859833099597032080358677870618721887507024762762822499012040533013286065174399222047808089983694283496267944271186230238493213659977096627254270466257960044376154391404553791769839580713514297005555601860263625409594105399149220059213311582804750592719250424752499069106798427105205183328537067669412992688754276551963666704977006393895494832905247428630908649389822358625078593456318104742668786526251479259487327280461351680225978668886917002739566196615087917939516157629718980395965370912827491487744005937223671335315166125395352737137416150658265010628654444603479092824072189398764365227557900915125114365858977656133495826156392697257641352460456670985785475559489825308378735896895391220833287408682032541498200665252769677334301758412182668589665506681052295802640648109157131324589065419999438143704180468934108307900366782011562021138419137601636768486986558837109703748833817114404430420395171996375380885257018895094891226016783468637028860226577339730065690886529634623283550382627867524819795711371632684357218658598723886909428309712903922965125609536662855098276277794948422527021563055210225880593793883422204880549808916579783217768052602983271158017730701657967291484347951246333032577821674177743371873450015487525943716728230691021001591108315419839355484173980406541299274441672147432710456971525336902003560502361374365230588307578363043533612135500069867160829957266417451924791116988171702392895500103975951053764214767818459204524851378461693026869965132955732084959703324133878301924705902532642943248967502179467003396837609679261482506641770958100227900426676431487437715701156980072652615564262689647765598043944631242636456584373987328447038008224595340762935952147245404341278792478491215598930411178416908054299827295072063338209204651770855506804405312012099069145985556890353150738608193958286723333586653838130694444790683612869536079095775670886356209258882252434571682165183324068206454384927348330266011843194585102521902374875143612860628202026969655459742121692946365469957707220660243073771147497612920648251443945893824013121056872671158224056173247407516718252164699566586686921540265604666899537367619486522041123747361192282059239436136039863335061986717784502461963466700079552618852578805013665703266279532917198665950306920615151899572781240484242652941821942553013058239028372889074357861032903773957804721514114681088661197462663229108320056245708574412028112246068288122301573069826534272677007963745967354730422085770775474896874452327921124389115110539978132485940954064937524513276000855621447275343269868480100131232845808682745511689217510139841088075290207574282009889478596290065998524350839398879673572990150166037713186449771727257724902758345566061843586689840796034071251636939853964541908107365750689547605543963936087133543651654524020574497080406544296738941157217498838569229509370373578833905190367361544842541016454629059941621529534113721365872709874371739523361596318554678025280857318132836198846826457475869982617232368398567176681065928055050442018237595093135359578781217406197680279992281496722758080993827669992610487766517139409978233679570155874489845243050576310194931365615318667657307785651295243623016552749222979746618401812965421039145023454377419295294579021260219681199805128152982643519941049342525165970832858041854420502546714522341434601419557257357018264634306026452239011842426878843074524180046971196326421295738339852776862120387531708772150484461289509879519858394997251737520216304398744701433549363934310880150868750148237300273792625419002630101329377415707930283364687476329469222389043127026429030688430292976802894176324089805059317484758884561636919017088435938060703911362169222323446358903632904418963826744760200588880140565356404941968860838806207631460781611958923291089753320702788323407482756470670655859434945366803051938606836614015959987992555032954255278288356122499804204958318642707236591562756955183259476264931808051611000093634671773801604716749706220112148491301572402990580433216615648210423277824232777984776618530612551296515984178847103106637373311115927050859256582165567612266073302985462114910802743267639512150712710221856624969624090161415219564600445882355577274053407108578739089794753672466513817654174855141828800709514249005935326930914934937841060841241696100382745397085199342092239392932673598663562974180788455295724164108625500022295532621420811094313145925488984237334888464712654468782825556952667239681891963688172406768334225815676706917301535433426162350791020307780953054705232299465968767751136704605124959942945379381131286442807295079393518420536704738691303438483125526929413992985927821605354714093481179101677814791070725367142448109889656045533493721137028144393775514905210513437394472330280584673044939709089061493929391249432892434185172722471579081392208796068313430854957340914464389390476157702661404089555409906023285147345398144681546549767809377076426100182076560075728281719120017875884881591403045948365070103852986526306397288172099842059186570083512518881925990102601972795497810951225223883227820552946443950472368753272062977732673108504283069982122163448386913044331966584497905726346554533326232045375387295503158320373494610924386075465498280023666872547678635186793007995871050660786294017592495234280872442873179740356915463963231404756317399238991565102198532339455848982760380745611343614048673846439335418484842800313544381327382158793657564751461743445102520536466382163380139197014972729038260718446248034920278403975636823640040761641220609811047152223771608663873957662975507533363174104966401095674831114179558365935776529212689701155275378951122844004449617378212361182594417173387025242251584498478193276260428634196481137207863027765829562447014384043834213903980067738110379019521493246722859704808385075605550349684590830002744231496732093720305703808207924048814232132036626604132859920402694872758703391942540644917401516749287781447629605450926879072886701929498825166765932111772966648960031380009198167953790810350011886139373699934833077934077459501608036829512661371552468950574042628594391186884928112988117360549510766576469065663249688630243188208489781229397995989641332377850744051754069778414597527379129054387737812313197378397742449483132631470437566890899986900710299124662745550967171755392213373379724879565786941153090963819306897525534901077233936802385339953935397783220905590656184253899793626608638947940653620677460685896124692751956941939147873172865742114204965616448722299077671037533885041682774200151170069654212366508422407522035663876005814794171606686524074296771168553452457731045612716359983884306318688881627572329762416909912610661409573967724654605103269187389871449518487955456416504090335856302617316364393910644940328624383239451483576048055946297189092732630554350757474489492179889340665279595239052392079301183525990695416889343879376045053191168847611411027253922687822119176798157454145454220402076822393197247806095772282887471210766580790169818708944469134842947158478739910113222076182600401314772484393810022210492800063780643302502800803650315036920010023419361698487093492360155769944955831014302154589508326403889965319489597916748683439771007148721026932332763739873890275882875721645216727196966575673606289044108276294755995431319583219098034270445387703624423335557922581293720808559917044996698024015218804476037004350208847311547604515290081624422283869390435489268606553944195150047925840964767668079716505151106668017918228938800953522955715804966810927296069158422128883356118524488965700524558028447421597403922412417676902097122706120708099298790070605734378975519412616130744073326309187976773373723944957339704570524669685856744946851731583963763935058225753628611614503947778226659492781201732250029248638499718121288053454792628041099610115428466810266026339871767731198011993850622701358877369816325420143162547608833921882656792533165912515661723387500544523550492384225315919685792286399251314574198579760932336924702480328257091592801070727131741162807840299192583562091745259154202345903423387073779837064244391127610855600566200628489301372437035758343283552771338999043579848825573329630912138542677370434377671001908444202040868683935724242869889148133953565418901093708981031959861483536056967497976940891826199578505406483015712628671529830076974373187425701958461768069684572423061194791354661748306404060020365482798485407309560939286936748349399547615272861926833764156214403667670378782542539983052188965567528607804264713155791677095397347909645082783421674457168500848537217872323205200088359556659823661875072466623726887908583326621190747830654700881481345361315155989678546601450711924801918969832987940331776993584072288508820448903226801211196212220669838362749829091788303926539176621182325844260172767912752860721884783532603834904509612713040971644194847228207157619719174498752351680332389670889713430051291794984813654331824642653624630143430906309252458197275843741470546847642938379754007818955074517680949385403388913062870385606910053553474232912312002364566410353354328548607104695133198292884291347135138833778203403428727886177861776959136179610753393214214114647606405852746020201233490765718895010464237663666027122948204793158771689498530501456544769117654677960956790310847369829492342365976131589403952726064601638827619888393392221241821084409612043596315176962004443179457781070900902980162701326424259901198005709385370067788557982671865977032943869904503036189377806803604840524693581429831676475292616855973529192129343782166150245559633176924865583394301241645032731941592923941979131046302740839342691433724657592050729322909223631005097646781274091741937505311194101367431233522099435288212965208744120435732998653607380923517718106319640217668620381852979363069174144440873119597992041498117526682061057305439184397671408087743558632512688845955466858360774481541116273139461273090108587192756244960770412415307516128856875888243863918103338564959794964418799070716356396413016215204320831692955534752358702247348670805672972000859427610149258892455728583459991701763699049433484235614557786144641206946655685476829060545392473295871594745438445083127335354789155359011827006513675525196169211159036595802711141156244459912300610491587058714500496162969933798299604049322024865285820577586574907843689954204626568554018530712553838741272143519879498300271460455249801725520076277866550869980900088865922728221927601790948974083658260595952419330355498775465052459260063921186364071670778074922956926177094603011745796355405097160386546838790994786371950958182391313813875621670701251827756788114851837190825405653868606529888548479520363358106671304185111817463327238425866362332758769783866858054002758326473216189861708919616705855648395320592928147215976561268397117731507391738535524905922451644908561600709775166086032322619016691539731903839505599792637674839194228006554662251656021031291948128358267973890451280221117581408299561483541177247122939605276394881387818315685704959158531141115238548778681116573267875021473889578833518326306589051385001323209788899065180808538189718120207707598825230339837269371455567180069255631572409935115820192343958334285220915486052924283851111350985853623214642120980116385617648379120710078346172258259984993157679622592057009461690609082905726950686809085088106185901466721059985278303212887099088037970210635377926419135641991899420186650113059870786091746405068994775842035335018223580267503071527771029631848102149831862999040720305760877882066907652127711598998157644412592927473508800186954072243383990772951730394263747881978392671540477606101083919357211044173355601198211662338987847328701534142013288453137352530699337029640895861625185039222372749689445677909263714858387224660580879325666447523589630948176693706170892674652974992040449973399608377062914558289473626735112999965836063762967043416843459775813249217236294045785750758800070575761286619606145539679534921790902122340645688214028262305930695229374381386422222887126097574119089506825485541688619389282901841854148358575057361515160520042024443639561181804552102931258527432069894510794056049530760190460647571818932178691538076290957559609153438673104575182972075941871989459217719892926167975736085083676579330222724956716810845547906644379665909402689836248395723078082390098874174196754573932723922335957480214547330555063181953124652495491876897140951958980673396621600265229156380568037780857166196861051254246404691501955872350583902677613597104658066220290320196407175697566578787057027066712000812957435297118714183525501566759133739066538477438167184071909932758088875361480103211386415866996164254341380535107502321839960272865467033652699524049456947390455810115263884074894144675695522614998384045278063898104809407887257865594321966637835553871586957522883919539612866984913857673738752004768571733089026882080130897976574150880364759081752708894707457247002250124436161016124302056841510550410141433444717282577157507452859954047234116984477920334239762558268391135968951520337977956009730985052255132410202545393275562931815636756584978676377528186300153016615237379734548634067250625326112333773520913202734018499816161745003738130510806589541817413118163249778724851306879020098962426022724509643767785298413016116594184102411906487230893132921005953184977815306309641931471942147443434820790094672052178749592721248534708872218254644022553924519296251574801480411420667460928651219478408485033181621153567386857989453592047199622562144836089158165573633716645349698435593743515434759809769109057693238955787558471657253353668024801539122901214643860496908283708689991888625898100934988337886012015779210197528742183072176607183907797111079281410583353340588542200175423942222276697508420867388561187900414359436747337437582565698539119451479355361736468842472223403682186567049617737552799695986256453926746749156712457034280304577574244278328956652652848897791772884767839851447757674924085513255838052966395781504925954290320186594108990358831816091850755429934176209330126193679716606650941997243214613457670768701269627086767394421080847435047327813206121437120480517404567039943556340024550716342488150561737433232793045719406132900068050887342842154765900622819971399008253310161934506110932833257860905480267858069471981738784509883676311775720652311252799684954273707655841558944948117790912283440923540860801938089918645006339977629695543562133710773296965657892441789781508092078667714395364337803088266448409307508756089828193415874744758422479295099445357134264061902403781637943935380712208022388731127804633719732570308727448086114755066642964790162309772903670647073242909497508831396348865580862351081125471062861620455907496134854841789579579560930327759852341212044247173534290253348338483870058553754578501188446313953251708694619069641979864440752478727236376404402521281087566615756996568772367955464804425184528066452809723031869170961897745088937138903727809318039625346021098506029122033684205906443354867175674741904557548868092619205728950618455765856836385660528373575700894522022399696002680853433999734940213267271263880080374003417750177555998527209312669696581642752581110663802439882863019753185873427859787151097374795534716694978730628235066037706076194689631520387804030809334300287933752358026421872815842789313348289880828726512032368440067207912601926322146658543554907445711387146500906529803736783570855169655947834636870833306585203191096793934600764070584030432449517915393502083744951472512660288720877714875315352645872611929668282033119958011179275653299977857433266354298253220820592157378435251895512199943676388593992073680410846360920780937346557210662507275913983422949575405408200038541013735940953076747030906218448582785012113867335482012164795059919091429572897361671505705478555451636202217023298232989525005258328604123267481653776815158134191015004257684491499216441497860875240559047979957088919495595629453190210769270225304971527766485293493070918138073985159058229721446747203786340661485695995826873697446706005364083209046094895707550001351441546284089796085753809787022296353400740035923519389707798492795039002177144961010712109048741242975541488634704217731480039404155845192213187484485075052419977646177602943539960851438481099928843920679793838042398376183723656028955644141989443529721977441672213862906315212416596316394459383677285864552129413059514621130119411634641781951032692946770874272514025789040504084416006358344245764645312534172215999760346269538313425214173751545875885700422111419479061937453987900590276214862128624917668983352103563201007857884012364064851408166918329711049327114616715620279134343211287330368824295983781321835538373744054530987491756550715218483671893596794934116168961403989515976755683750379708390245730670586001392121531353954830519883031075896942737359154232663508785940244709976878886674759284098711877553612029378444612769801199067454131367370976866872547704296718646107159107224489333450495997317090846812315658358968321908515350360917960122605776970877989055036729516385344275118287104477762323931394719005822499448659661439005487710568745108798261258688560646202815582382633853834510781586258331523620153347018861050972552606457469359372843292841588124979439586088659957665495750209571856410470698566058983754608617575436261483972320565784197409540100424204904679336893507325411343487599957949743840497187760393053805898672256639288620553787653964730580429023488411079868664789057339965856103834741126279265288022051038085629824568639089865055114378906086162961391219682624666026211810899510045085989322938918006188069114991136901911590343481107987515993382534566118813819230430255711100264564437293953127451819714167990535828748507126897109987593019321459158727298249072250350623052455084719042289889690477784990161008272053905519099846218533884130259597223937109016898240585867615250635987361254273846194236688264085804944568942629603557882567825017173847833394946630539051178504941243142785028175830482260072840952241486721349527107233895884137536127270639732232360134835058452511097624629159238184904072047152423348512159231533637934503358512577849089407023359249693542989280814837840842875849403595817661043735897597987688421151408845844305795863926805488823355871767895128019933145078975234683839279956245558530219409248822832498965820618432220564470114110292325635556725732166038144214513577629307193400859312296090268099493812224860263331007951875742259511194896770944444494716881223339220141863728329732695877512768515879746854554384606363263348096325313089448084732171760977591288101235859232785995807865845104995466334373258452768736624765188907563888676644341935577059967970354362965337768711081888525690220899670497070679255364219981284319103192944509665298567168387835308381942906983873026551011748733764432292244672658352889396669069805698220455319971928104699203221871214854188279177011362204924437161988438645327186281195747025187889770135736184307751979693297437373624440371353200732377618815314731851969224120465601185974294518985210939125698011438618539064458311174382133568955515672211632665697755986563805667714490036093576961733438156209652224104687811873708282980914621524958411282164888515604790364929680330035297947517675333962244754748949771662934275176834595580778595897908072383627932895780516003501799049808607325403251787608886408039754129018219406760929905754008497909388571195437405480817453368076774899394191986151125450225685318872196508358176976682337372535418466412850685878817827020109366293831316738231540487817914818246928266877347585650774901345991355418226532965475078749042988233480151667048543707179380933954043132298581017175511333761777128096053609415495530738715744260694546428767528287015950446374105688988244188837903709603890958289695794650999822402714559360844726786282529114356446520823301503335957607379416507796579466314328646753451712579110721578255959692185832329482424957156978325192373895747158107586604363994629133954947750324633635739917452973518433884691181034010057999437361504657030227706907841556520840757348157067073438604016583267827121536928023986577992405958339378153052076515445785764702450032352640172953618495098120422605930583163657917109523169549683624468985775683815354048399146203459511557962190062804822370739194666850855666361854965206529392933814583286700214049506374350020101455260641662748949957418420761466806433686084649252355097599179638932485077646250589895880713602258424077877732024340171537197131589390317033026810502624351830958621785411936868145980233109650915109184682749927413752882150361071349570847411948930780324542826307277386433169461320565514154937124880810830085871513147429283491169776382399295918937989776119035301128416811640488791621150877774392619415083700157240131959864084487020217595644199020686468368704107653256889990481484247321600064929848715426363257073268263507748728155577586936659809364681706926150819101003852845180857164678342375342801328565286476638188303828419611293569824169899722826997599472608408696455640407775434871609328013236676626776545296257995605603934135639838824405178489526037666836667162017610800812369480950230481708054967356642314457450573670927684913992948996530745977121806952094448230522631541152970756224191178858711262897791605127926342449264146956776682068613209970490289942962759097600725941174579502454422448787519113389031871815167748898626502461067861928161564934622985840237942732677827608106386382971433286903510309629508558147198260512843091886927920775849021538769124386246638099884113988687794280216143331383811971349248145417047106685323368251680441479521876431833708158259111419713857558533973142875100782829844926981286480654590322966089136392629104801493820318280240713272968136626702603138074797286175703787719176768205191622366585885426059494368719240891940610434216229572363634815294150632774660149234299954526916502178689838135897866510508558385824412195099460365864750416873908702473335468481500032003680074478870187071695184012078896384976722000860161421850245195434285237526391772492414429371031848233369851294739883458329949032206759238089718407676916971672846115637842759309721318791556052932320131958497990048607133732013389832164320816555502905940433616306353145922347693400765399762894570545780206403605018097985572515847886517728062538604601693471830826551696092905360367316310368332165694084910355625602973867805887081224469410612917378503411867733788196407819929900157293759093966114808238826737259637080348566884347779382399357597390265427258356909230653253605551481375583657749751048781944177103614007583089555990517725696004498039724193613013715338272623009613989182197163004331883091584949437014189312006887983336163514659807403434833205071560413276962185883349194300546915182273289541489076890861655862820063336665045125444145550314952394374601478168358999909904417206040723967418641477781219687820457037975290331776423778630767967871555277762265951283270716812113167207487751441390707806436457101860691425341375964072765106008633739359421844352195993602177446512667240528876026736930943548419171346499520645065526974186417846814280354687205166889527101520591026190942392440598290869094540492806819699708993954242671402284257215778977689441225208850970328642065473005578901202773704802080695371599106969736909530439612913715758340310358789071381872796696191421772908840559673488944856373066720069136603895584168604434804422078927430755557070486838787432053806714426974273667737130828730472068668449565890129531329193755789207229336959642771839977519623792514765415877265303903478302840023368939623356282386080843526425164341750506773258714760641116058863798069751355099177103215947972994697530947319584530980719848864025634536255610036042862044972237776682804383696861335564927630229474694774522976200687431903464082671046844772706069887032593095479170807299702792239308939395361334516038935086480914829309789192984147552995653325865544014422445826160856845138679459695799093155821146188117355827911785818424036205821334173004958553774230162601560902412959391065481780775301501904259959171999361727080147190857387806732545839673124690606799716242409946927909668074132675702374815901017235098406320449072476991028090913375746387938036062510980383041879046540384965864928474409640458407329531574579274139446669087910945352367565779188042130387801669151132331162946368314150215573329369200822177158843769120120569438036146792550376596739453344658287673944125535462555851704212476889545140238698689659849563442599993335238467900036428426418337107392927603301140984475463627228728619636431450020576944452327044015821339762657844698195698805577256138753605384251705099692767874531976374587527572379001343989724145650654281851949740482151821550626010970071454173586358445357961397124801458660735396109745987018561973842265022257153939753286969809870596459430990961645739253852168510655151178979035793827226558200654749321667627261456028809352644571278423280186673084890102507663799438131896224672092818357203485976189549920412232730226061846476517267219340869440710193594918379648308698908856109369192083365928195347837832774302932981201324204334448458685009932744719333467274548236378535471815970991528982969306355369170743460016357882792271023896307756497955370440701196656091385251864187957388783713337236666580707668863277939484698875775498831704748392765247224219248057555979258859397315664572154781821010077652811526736076358496478595659537532198173738611033648590978550407765162667169617815227972405594897690444833996039708766903045004069389221792119454389869022039525348734637040811798495511824878067248774158975089396011142086385605806600888837929089749733029284756117372338574723549257204934390979928660787078245511948467963443322338526285491233786558219103558335143629989851677894035729407346348124388658811551250687583473847241500006283311963647142222194059075865104220826223043244598527778839877831749952870960803917912075670806876292798085812050139321664624941920727987520968920731927382385867022744621876417092143595644753974772596558690904180211215195714239105497290599262712789830091946752070167607366602417795443574679123680364944058325082564619843478096396043578472380394738740265400056547093188771190176059910156047902092130740331827746506493544517625070391800264748324406135403732136903595344661097247864261887076880465232644889181874406905552328887090835401715306229175058060953937779086372092275276462841700014085432591260108175867454240451690521534107894560283591158619532336110847566584180845220820368948211671214526243557717068435336016622606388301803472009578790047927567572715544239675264681291606177281624916992379627867238817690225011974402928672819523688456415499237717283397737118764257229266385676431977385778754725948508278082000694214745035381723524569919611849412317632418060988416449218863382207288721572818367662492856327799819374641184964249297588048743330934554593792946563634352867673337668179103500359170059620270674272155511772894083451278705213688927741359587352970645457938185422472780482481910918391343126019523194410708644862486681852911546646049348048800663567131893611314744607039425529666714646137974681360082959342115719181588554183358450056961224830074496083763293193965984657057582542921193423965853119819104577738730342940980196434758038214620520966707413877793300043286249986534360837047438241401244617733756768672844767657783405959478559936427748678504808581547167414932269717161858255362543362103456130293110514201185387443029045575140216988207135426595054034867790444780387203517734039802275149406963881350161062913136205613918928259956549751799303694335876716932192013777819785550497901311209944204982677240533270016736114117002313203141112223841860324436963898895241015667512993660259285506750494114140806726194001631479603092778899735895735630039490546756055356696939079262830651762436069192556743246408838544924540964897215916758956613725442477244687665713964586880770829552505408092100154198868690358245614955680902217406749979185335629582925992958808605201874114543314043158590948611485168603332365654946589793601287652553440013355264786014528499359230799718021645036540982508003194223686690570220603845686838614936689718455818346473703550770839611050654634029703973447813362770392695437068380531884954292557163980771486009996825591447075388310144930224098964039901118228585209482197774171456917091924414074676824205196914016234320352159719597728427974313921155710768986759237943927325036111883830339495637035167495418563984610176627076601281618415897594643934538425303027706789079054926426383535263937369455375683702515197390599363202797397948618293250711822860277945801398586384588380718608536298028153618005744767003026268505325502412277982729155389142868009578390253587644065024750365469652618564504316542923579518127576394757997524033368695481544517247390607333893647819794036009016414237914366343938598485630075719206485311071038162371002428392526408712692385952612119024898578246127672622621119645085037115103761719974691233137517091929302014198666426887002232659130685388498151307451125156972842887324566612872319849402288582378792216315355569660061876840350429294914195549434359571408870554042491047416304832080878583435386332181354972922787069055204114212343035887990521219079203011465800357990269989794507145317574795986170367624118788360690867462654553231374149003618231127090302820808923365996829439340796432337627557510282842128151095708417698927704798669516486047777107357110958610420471981385094594845680492994802081673873549889075609687854185591584068350050789276492801635898312298382278152087010342145310287629815007692316823090163729249021687069313701144189892991799308541321602801706263225960896761692383833787866460851524021141314367190031217200088454530644945097187096016850084529439726599697655685940807944146116657915894197553593384790190262958403380751751286807882736861198304827193919600074128607879431471648183731316578145658513508185263722906876516557872809795732133784883353487690867029325651695893616516530359883237000772536186942121815846813076346558966691401554847947637082203888591606920861456354085350845214332089085604042202624211195696280036373937573258259805826897083204618393468680627983017356100899863517702018095644262629589232422065572358013033082002106277154772187884055781902165551395653505141178097114417295800037352882960154878927241002804969640332008227364524684959499880826181778311281520078217927768185435436124034199140523786769111324343447460492095485682402711820838957130005947820262286449272327722869077419238326448759149364308267919869430762500548380601475398034359671763747573783691016456920781971835590733114154360686271013533523712188338529602086914140193740589077023538564370302789696845277602694086424111614960132607660797899671577465217826333185211184370955297525047929263287485387112507590401678680809078100527260864943760289346517172269512954977125386078575225542240833449233301925190600549967370125280720932580390918707896742896637630681507587634427717572795430740001872366383592200003378279412783832032728628841627418141392382635259455955510840017151376640951038595428410177938675278831357407691722080212595519241461616679428475424168548874118423781161136329997220540570184535152393491325008974105963938906635113470498068410727532034126904996674935827984858966920312043063410039678602488275187661705671052642387194697040846109833091974777630379317011551481240690903448196287447457630662930715847930278011216000164719792471891128857373466302071949537020953931815269640783358745048384713125145097309493923904022808941036409291915253679047211788300671387241406601776105531443618990796659077674579872312844579417242012305013657223412686148323172679207003509598685065697390837414426514500079323267637367631501125743013700726335881565563931648501783370079545271418600989493155267335127929381202400048337682557843479341523936665856074592413022083177152849370038015259778598636359710331926412451507267856207270493333366778142918282985120073577056227277979189844924166231423535617512651527819095132569079639999381312270739151515279930198911560162674205970812219738204615908344186042343734696744635088408279787393420097287033535202728351503742285867047461103729529773648549929230381652577800317504779302140088797748026572536875234540885995103547272106759585196270559394030784506589487202695856545838360168229789597854579252899605621667986888388347639305026103698612470267436602091423554096070034587482580508851495259518499600513147401319889286705009624090359036532903345002841318973992278769903906631030473351926585953711450521540229225729643955856556712732246697454401116526824395530394948281969511258616942216921356030679843325327000057742424609543074941375306097457879175250801329965865660306355859233588847434626916496951078569869011640636009410085935050026140587323611773548889430432348075847609879473704514958780403243085510754325645780070109200508157420614576961429599105250802263778896542033707213358503441117206904419634596347779402142034054280980486044982937391383974568984723319889725159150249190894078571021435228014871011179778045805804601050835344192073593671471155856386816413095265263305706455701069850207828451315314331151925990375074728043740521024887443680360738072059153861284859769122939812943673057820921128719200989897270806971692277118458966843901973304244308131051146080148665870773259559948231350090597722244588934341557873201797563157976584857612488558792868994619946908621208934574099357863663796364173702970091042755888546172337790828286956993943725816563456365363613601125313998066124892507830699863746166118011546253333900494573927912126810832202343362034405437773253648241441403286862166436869560093290187294084806112955937275597698904746248040968418612384692606558727802239268953996440478067043311661442432091022373938500468347929831948075062818641386318060966421522940995273634291229429695270987306118786522499832677499075008061438271552257927131439206746362069594567027500955717996147091660376682065611663689262994116906262005713516415697852569757831837393288609586682289839028032927404718608582894657646445812473308294221154291940345122770294079050085167984278286658343177574878945201126935069433066195959968007237155923627016016992760326346737019438677849532494137204377387907977922423686549710051289778091508603059855031801697850768897316534231992636215163451507150269825095413667280468611444570750376867320599977605145187934209918033670282390685161603609850005790041275419511147924952494698624339400519057252441282777512419046593345572936022472879578848050352395491768737627878627447030201761024791583905935378458988703096186084744855045776541518006502810141990928444694149530630091118000662622562808577281922104791215742744934741881694198949512110803962107799711193478849785004063272849961269119925892066904417899300904130944272743021980640947636550079361270227158647677894124796502636315545076057303891627098641455642201380737849002871056543014595205812378517886845536626898910847185695541233140272764848326713157814056711141838214166569814843943097779905459429271350219065310528054071327962967298832489229087910750439930687251205785026892979149004228512222210073074547464801694446390147581570114709748264013519292552162393899928180184634590375347910971640046349078718258374327401818153468460935496596893807311183097426703340178546070309273227353170294932202623346665090649233921542685444006094741638735693395115510922326197774016305185795682350291179483906121118650224549235389461055858383584155642187302867381397762174997889607220644075707227734172118168824978293898599767882738943523667992314279693107827603289135437471419460975911541252719949709634210199702991403677337277030996390292762131897698011939744612933778180953454227127824410928357526464532773381673448370554621227144989691718583595714160671518185570116371144022349012733727017179945147257273158750871498444345764912004045955080331385985938019448751667912584677484349414495378380729778266455470368860484982871620463378525770068486289012816604094522107119074507891431641008025693224214502090669257166245756251235085243268530471377527429556000222517101185670452727880645143557999833350913338003033185656118421624585832543561107037859177203239820111647589302493999699296801081112970243149614824897010540987031580750871657769447385291876838406929590390177224886031904488092233547207153747112353224999451818385838745762707216128542979252091231360183324976596983063273481490177483047452131271704411966179720288079461619195278753478305683117769380142182795218109118761681537466865057869610091545755402897405546576217073725388690199869987226432733958757824719312425879935146716501315138210248915309698680187850746380289293382508874588796910287135606683406062718393645764742383072091714055020286893064825693921547495969223564155639028198515176402070305985147629887964355180269634745982077375976214972739361173174099689602856500794487348694838403318790701333039676565140555631943706247574038766705591342463794472900885633466869687797191237522080843777257482414985589325860252583234327022641167183788667365842504882096147560920334342091656616225883167525769604610977906434825753942782881376632394304104491109890055680753337813043272495016339220288050830710883936597796452183630013992323990009244355711309237090711236227483401261007235438537913402289948661038416854624761671161158044984707455741176992715748027760320986180530456678223618582292727688123090454225937491729324067976766033048488953046538136776463765046422441428143071809725475234649710143438290659240046464054962270263820312738542260423031637758984503569192770688844513457465284990660781889448136263164198916985213017969254160256971178752945293452502764781083538152016868680941315711499360306798903374590194796663315630706412944721298946037924104354556758393695604601660299288476681986561037755589845339707173358417987701973628582095429013399890482145897942020975090126914026201666162074424479930170436938898054450583838963703733167852163469869642694906515631305750673598404017287382591455102123208029966618543628767354993510471754532532506284138218535724027687781990001977854507265752917380567795907139543373921573370412933083740662162328389725835526689744515880063835408220413331856347506814315675455135692165670603458741468905924918410746224867485787805724697658210482638784424457901078836200507038642805185328915947077362846663058366702502798501694490873810218267540696611234927112915474118563247806604424689500586919092308498050693746993829407274266468966112505928101727298481435863553971686900756370887690858706318773494222270782215107652972561430586918203047840722073971206575486162007091764211526449419546803906601312825168324363004743790586824815346723008164739281535904593431978313915838301458773734651676917363740173143119485037276805394180892429234480227045008528763937982217663092953501599461815348192415240547259994763399169774875605973010200847626886886837943840814992296846483522982550599730541783623110473485462922386272104161333538919487336831627015935078211682517867252993437346428282267996942253084770091865278098273804839336527572016356788822556814293792301876177509526407606147907410520696086420210360380620979017149959994973747980099709933171856962593897260292558563791285292898692194139310728049383253183010182104137619092589764037163025775125545172788428084366809800104690458655172706382052536443757481454930264701464188668379850393624430399430791365297590941259627594556145384489385954110324393539873743243589258143451707253229298559732442615996935068200394779313396003329898220811135523177609072330834159425655078106142733312735673302023848342365000595196133332673921879369340635461581147834075336448485534601153154988720473229838261045525542377627258968254599409778514856076720610448082561829949492394189247355659523174942342450647426109306976432403560063712966057627948253041673471181118478819705946434645131564306386073438056292276965124380211724775761223478504392443562602935524561287346450208725898864104388247991130820107385690495539880784008278084467619420025266362049277343096533582905491795457629313790986566201877025550734675012075106425254881789661135029567988735322443506854757277114717854032322073514663614950727099710828642674448204392765102225545294024006378879934215989238082136096919514323528348024124696955659097180009498364900058431273448375165378729189406651961071267119073087783387485560975589360141879035012697709404108782970139524816794549323755533942649648421013604305351032078363618109863056684710370774862744001426470672446151085587769520290139521039087402667960644945698409157892821066914341402259510344731975321230262326016301187802510230995612650655958370772120838897522784455630942036470091307156279572800119892363330790879489667352204213754670354609155036098024724687358337742674376206123373564857164554565750672628912617975242438186306850873862637444598028803430237893486367598365473686634812541395845723752039153850058101501303785741256469201376679917798291759186886279243825545687910955839531464303847005680173393748965108938175212491133159221626870623193982873845076608215300789300591087468106759077348085643070279442964792353548121777687350935769745092456524176221653554456334806635097924274129247680819847170776408412270438755978693782947017542806988801695674094241769800575238957142734174052737458756910130765997785100315256514926950174710437978746505694087827463602965460528695283302533317456499510557673923230081644512885908547782305332723040171697426844326897950815968774916960846067228940835202467396363606490314785193268608160032012168175622703988974298410417776594312725774922470553155918116123170250821346957034444630021368158871712329099740032534745792591475082475579593514746753979891625983313071544156086267771695431757873991988699793592563278973394719903020754303351713244032075201961893519768131368896936365524029900474487071890384658033353611844843821316898993523447223853482793289455226567629550059061057749335036178421351532980162511160499121731288084872595396701891295943560486708118923035909061580688133001423453018638619329674246303000969580888088140857578121784669723661582964992340431730330016298580287684669005668148457111945626494329279265604086501785708895974957871216245058754698214427962222017428113669111973992339515700228839453226673470693702983870542727034432233461129789061010339716443206031016131391196753166783448047394511182434991419181445510779301721096887018894434742171900783279860558530690776429916372222912545844199599118412048342802492724739728278831861342447560198847628779587419122474571335181067991952490114130366099442080474470751853663989522383999886783449756941543982424329782881199968716699610668784158530008907826062928508706277906260456348879892603859625111821808090799997786229540451043371036413472549373234864219274597064786692140311220383109379396637253874018050561035438731706794253460447205421254937062889913551254462708239091915529077208957407183039725572025267782792017674685683917300771821040356995335469670370417527106674129934471796147064757186670128990053372294517742745285856767700270208982705321641499580254901010221340812504332915524498034993091749681601481013165281225107437892014704974682869900068951682245354208444048812473533969620098604710897832790646896849899450320659364273194955837351065743813285560345340864397769887112030453478022405168032252247834223822497778088037403461803999166458529301963573066525688408652124589999138101900030993685478605799108839975143099358816084790337302815766110340771554378889853897169326991709626933286971796081139955559440641746882654286773096856589351000042990252937175017450009493609039551212742206106545128142595104619102213842440207020614314782080043185426510977292424070815744098622541319389174410061978853583509682062647080441759958593417573387664160313312526125424727415924526580200721664953098143028567995323620482096267019061352882417518886608850954982968977937924886540754299794686069240265015322460881484558423483088298403806475117358692858796762804014297030709865389467391642572516603390112254257440552282362640818187146886329673788934380525820255850074717926463045318686803286430352978151991364059424521209943070238656412635366740834870312128201500157051628054886021031731221490634868137703547575645122675000338735598469645092514921072779240016714754563392059992594180211791475927965346462696172054417082850711616793585085451144976904671652339718271039490187655919420130245504198425126225078917254012007247706169429131159559616129613423784162087117350604789099735227941996281119362339604208719464309105063250357631744864183494335111891028665287578990281295949678070367056374076217694356648508426043240040374349169646103334293587213971032503206702294490426787295390848751448982900704724881238658774607001210333438897300824089994747566580963011520052801006208886185967145901511136988628660068560031151155743119449714032089878033930706522805717581455516471179904772881382583780223488805630794661773722433565627261555270354086234641509981138718295949488607946413526295094394631347059535364433562602213572920984996126513291934393290984431370732875080465053340836138000426968903045011085274226564298631406474360701743647528230984874842690998737696817054482362583995775885443957004118229262008852435628158876528340687876337959322035238567718313828844066671184600087655154371242147632730907214975948650791042859325102402998439248693476947589216076754457848390163037454526991849083160507091146390203515837412555349271388733556488156224221728173666739775304008075006477115047792032407027833269584812165076556287469899710705987089814102883947055323441189461118694435510753402707240702235189665375682198206814433371811364950968651898198864229696215708203350875233825718024994705464150445209257544528608709601432443555489010708269158771106364877446503144136204510778262340065745454263670504700558485013455013562107416668502495229452334320607620182769082614282788811614085818323072698663837618523233709985377275048993699693262585483574161166216083486408159699808560323566946587614132293578337198600606744225091843411700791802202984317536658863133833708733742931051650820286480325926213165307545764233522773741815475010555533540860829020138507945721149306669201448918128083629093679644373685329738843826594510782771225388322994696172623237832757548223234393439602195903994346828585737571002192143202251844234601865890613078424708221521608649973335360457084340453954293255942187295292325445251900674267290783693282889518890556293947277469735836709028591044203389853316734378661140380821029055543685267633720568776328621842512354055507964702018690339452432833077358480005170304739027326303441717949153646945576446857270313892469545289957651245210640105332984686841675870964982668564220398556266714917050448465094459058063153514864658664700555426667152684845774309650354330178923956291287233427519579432841536758322039239708288365934355287990065670484665611977951304985310739221955350108459993397229872774284653452235489838731279354025755202361115759114358199778542464806343050674154707001602939026036880321990022315303256643716133984143662982413486422207113177163338825709681885693409250701323813752731224539357172408786138951186569040822496450018027894680252388876608205513100192013475861910942593193848463621245760719029601861970910239028159350819169796463369789990728613387904046070416404235382911320341688628240815573187764919889769635773032781162673467478970746739498954453274902594488125811367754128328853836764037783235809271183043536073408340768793756477002182333457527101494220509032971220539121209746039567515943168563925135460449923019941981757327657407933036484494282370451279613993253176179454494951086918912601925123313861085370163159069873737518550559037621778358962770954517317651894665196973293722956055930967701645309884203575855552692065474328315079587273702672630476610112702489425124438841127061923778758774492947890866369358378281886311974385466557573054126575576526333514191277898778578289023852321732460653820399263632438971618064266681764111014792720626245147337701850318675265709605591734137869534738998394465293538444293299985802463466221080017799121049285521316968244607330678737501094172941880369161986463323017838562174772131559407445150070685435706424640096644793911419784404797159858895341726921822254858971080886704313387764233826649044608804002370807555401749821941475123395985840467711997770286445160768679424028398078301365669929927599448362030250797407007448337170902833878309249942682986156913015039830240987588130250676975655691866422190869940360237002350363446980540313837699089180902358341503955393095062896460704491058565288010687923359222449287050199451647577232976761175085691409424360987088102483808393346148347654614947183528142535317497900112388891182910967770624370440596548959348589438217101110836426427700106446041901943231805207730451999326504803212835444314516576712523799188542787626544663602753186009518466067843764497100854970617540514580958155012752846543173086025184254554017240538072484628304780971818950814306673939805012827219065027506055097068194513929099353247211286206178995748206943701824608321499376579430932722535664881078210707682483390537763665959579050754680432904061791402618446523189513482321269769233383708952785309880448391849691861959310935733438400424710668766040041023689426127896990356577729725343182899044433123396967726220540022323027721655442614433479808971794699219820617295461953487247066061197003982474491556726896268821672739327553522103499103873377598948152132640730961920494106027616480421879057928456724070144563693891419750163909466238727935660670221709412487170502063214291773750169089047114250567692783418315583342556653266106633565524614685068028037703335872503190175163279195692664841777160213078410142200173838493354827481768562148115907780430395093006374100334362333477508890477822232586896448946502139465620351302249663327348833867794015546275655770667552777314837165925375558231041467424051255838189349613550190580167517266885051879435498632123064435853376998359173925293982054269442186673419422235098789936452134536980373142222590863935776301066825755385230560289837039793287268430370446315542154204242339732152442351611348204310284855241031815119546515248396590156934293116641887668291715311885531619354475110287099913692287873530240500035369634597902073142303256704961198945323449929954650536770337189562087834727957750396060027280839354832251744822278055948775311834384344460168602804984192303640899666328876878112545679146407821204234730094398991715357972233400713209592473681962808764226665089443600723221314509019953270066173971124064553276547080854714198183444267380872303703565658151637707290540446714352160628780227725396883889386659352583581735702187397900179129711764702804181897501658633166173669140826382440487385383683900869472287795959201245583397314886559407804003944669123255110839514154409658311968344127099241909303392244377975953205632841910177441501697780010822805960063925122115338554475358045230389775318296133033452966945591883630510499077567918624744176114374484788428559360685779182411821386055203637462739157338738829451363750836783649433111780659659756322697699922676055657529056787341759542403504736692325758775274729214819705726326671448849818753344539137403386315668449510153425442142121025051242364996432076292035083208017480473128818253163486187171405575043024487330270342795044074110659551556656582911291461098973167166057002550998855623851089183708472348775424130217374444877601864586110351015134323314539288964894555493704974238997451247729168381884818538256812081630613827659276709818005984572032026472054415763508111569438376019877094741904165056927215670374680609300286133158242873191309547145779331909569508741286050747425656946071156025243912154356352256270070879874324285496229475212056330964357223064591508925989601910925316136996342659744762635862050961982524884286919349531361034251884591381543131781405468243983091930618367587291052312527315840892555526372858721183240210618045144202806078042313257831753390792684436873465305437482498388875729967958711754741041571665884751724076563279910479174272602263769051854868945679179032930096608710694013742608066168986230156574999762836001190657289184812913694649269711624001087606795486781990840168123386733933994414915232953201839393182235328128692654095746186250010158638933732130656171102753388337876641542397808829827674107654815417910837550395760241336452129122126920040114210062351289317184041872797189363353990870552267657810429349735024498715593999440305612895569957035621923384424121766990970444869044358181804947532389912630756178414964099597047180577576155862986846496842905004858983110134489209859549243449358297793988628937993614133278030544630832314168477385213391173594702763836591541793252281929811400364442187855173813951185258972052491286398913622320651281088922632982195654673577776744678346728738406407095171394093698556580022532035872964606170676170166479750581777517589494900016313477907340064449180437410744446900192253895240983508633617343977093730310194637816196879461570023301370726398654310216481692006758536914299216619071537203440803521768624728372220488066096155857657437980146652555803012873620722902159276244074832457323689802299165980969338351185282445422458771256679526198080197121539954425714531607812893995308177420907910976762891243664015261912236526625025568206992277931047374527474191578032423913139131625348577115734804350336335880214135882577997724399477442967413798975263779627538399768906205599120994857269414999041505163600147860280011401117563291004680833928385008501212639697831607309656178450780349750454978019072414752644533415279868304810086816923266737949484655756677982710933387758953510366128624476626698565082684505796832067246830112853339018857342389419281675569355091406902977317477646331505676142631360032870992131447350633924718815173462389057489079390540104311159436838296052028826518975650613685669659643955964329806710358021217374179097471196938956271510868815227016808767957279096769357520909361040019374354230423108858330846557567980389092619728099474524242994800994344987410541997830559677494099443816571202389788641837576332010880321221238552530058048056753329275932275320152212962954101592798549633173521982056841159174137707812352260534239967063775440919353317958148143420187773332537750891120753264389139180550423662173668037089222093975364539202865784807075820466174578195730180396949590574629607952252244779793061986256152338542696757926715030782186876449810620014132853114915769350534729063410979225899249479679037271124157191239153976203252296461074875069179293700555616520893511275562717294505903073416175652243443699861899648988824319380402061904318705973581319440477955016041566997730579662645560788594193847841427300162881315422277423868613509327390314102261650932740275644217953508635811019180969464410804182076681806001887191124590904209984260146873628222127803873958523838491359016486929197757506422803809242079785576651350681763922896904690085529524369662385709375044196380515532113120687945339896186960156781460914265632413586856324451617022705288723892554429955189866481181534881185592126798006746844529493308225759748830030240674911514794148443132237983717925190555405063187734359133775517665197947896599409685069851501102051033611476323648140489359010058455311614959492155543434636398143576428040400768781777321696924604305064705350249146663107280478664844170490532993850711161195549103719753826988699882579674674398893649254673374973637315129257044964817437232775213977540639041584664692564180324825989262920454590501842853868758947151028136257975301469051960037234704868984988797031569977917862039163096308387758855866019976313945482415294724069454372784443042706824359615367945736549697811250107406537984504454009707358391433749762138246653330098858538835343338929306439358529661197749875837915574104341094074085031624760983198703169618289201619542110364466268563181006031305086740029785567324203162391917884385353856719125331514253194323994753079483271801610411962596034844959481005755950307836827309238232794664624592039101581561877317876178918824827926452454105779095849350443641793947622020430621311733198773544365943426002185939481444043706206522314213125401812953113328707304493033182849364687792533169171260275484175528048573841555797013694791629485198044851555270579865749449875027071134213494360923745325710626064487845196519701178843600452321124648279960829489792438509396758342977049239943163646695996012470705806526134067415323170647155779385744159717809219352620507117467306402102024260888322464450950798158488202063668555293987721889151970953966276472518052012436097516143028292394568718211023580017932816604957844800468473630657576226006181338804880186426418841684635586083033705563717703010717243053698891077394006530080645074206493011002086280805760918556882459275227183151218614105468439667126616140243332217043700073525363782773799740755558806545436377654921969178479008780396543129162267074767620108083816094566629769825046192931712495779309342123557249150202384867842252734265692943886147803920977273041490702267243904381610685333820515007111975102329279760492116055735820550762776555428695701466806611935551465967058480638345103316263829549122335953140006100118328949893700602801188744835592974294193185397465853033242644704704716904652945075945438954784885554033976858910360210275135838598784736059809802985866192244247334709947905937484850319836435891852013229165917469766672704832006741358277136087380655150524385162914905471525626960610692273787795348809212973594446206061372661211846682083086299484736377155374132845889458007476111588387679699164253308761645797593886556896175019050809939354778043162260077368837165897856980345306825807541363402578445030059688642754112057850553101985786960720168979260640069518817707780998936482853784398688798899043421746368700239320425130156561040346270654510050540057477854205397145023363189029094480371958066390617381862870119992263167181123668423097809619897707438850903641124893869454898623658903446117871248685994002367093629770949675171014201695235723763215956669061803301554380673565072165327979037214524862155939909156400123236906134791078113042676391568352789634659619762024322177342509245294611557372063355455548618452381865001794405685341589564315188354242011977889565757715922018149239439954168530538597326195939630649546875125086532258954409215211925316006114961270124553052751745441233018665528694708013193810358122260879041840494813261193774397036703049941862554878061601888495946693800909066000818238657971196144941577206854044862062946300531183264566716225234037455733992950700724059812028364843971033264094671533412489742039041870990776967870576831042758127381485770368655474942103073656183878708853658717516540733243930018357534796988363586933656323803420219958660603162279416756067119459305479789306432621677339150440467791757297724518493413977519508654888025714010228272465427578617416143412762640912443651179236114874642651788043131895827290914691084152927536932606215032013492456723243283767019946348120625823416873171555649191996382291621891911791835321526732299606792880221614508437218815163713106990315883283520574101520313260529288792175663360988570617584486957644149598827459483614328191650662425339942733920818424537149272938983324679188644117437147449114518018282147033419451102611412985947221141864104302544790746446482891149281167881121890823826367979744349615698418084569585312756375688564683568046106373278602803173918335450831176997817351056357158012911381156430938644981081797100172124190486970303915361966330613822806229306126955655755693273941432683640639045121559504124568717537173092655418599791917159557596761277932730327893609547640640043201243356894836130883189256361908070890202450777112088137802403153567660125885325453871769041151564430651068118965123257445131886548959920050947651991306739105222376645152328505697869634717491946027694952217912060988510664017227927383628784102966755071799023157872228433107557402117722125182786720357837323158803286258803140967220229984908269932101440433288274343835020041928118625979266127672698297970980911137221430920016112280506601481339035543934179566166391180380641546139561260271720036552769149802930394153462306587513371610544414858283436070805471137061763051093554069398063860902204711607515021012379922845717221249481793549484289596300906747605750263393914809875916397845969235543458415631584068911063184304264043281469579048488001603789410480272216792216942148704031015051495094425355844112165503567876702859915131255437727617405864172567177131202265747849155289727302836969978315017641801794825133522831584920209552053283364802055821693794741269924332780286060425409427859430820636007985132399882276562039010524622719491816375018869082781935524071378369775157459263542116382606559422722464274498581156977579468588525931107276310539797556752427567492285819965501952905489403412100831647577223445380680836161471119657526817042828258844619602445994182451851000321218329072053669068642762406252921347558172464685031346233362967331664695162924540050942560940710172578055624071702633636583345746662680951625448183101052593479483138702432517746955818864890758334217807469567386558512743074244738882230875187583375736222583382382451278601705988692884998229067154884196394622934236043306736860132190657247097023637608159415000601766351012679987880144247094831256454797499401867733545691573308547203610943258582634567496420077556772503722583357885837671532516821554778198184045650000153938211376302381928237616503354557232007599132972792770214910275527361672150513517456300925925460620515716776807132963171699676273248082819781002044699272742344606852770287375657534225534565829127423660831206407739137815992292037801453127485419136511757638366472337297986296102970437942106870062679313951491959435371740198336444994764344652151613288056230040971677326775200929740588697742611857061173184389845157858611751435245807435032896498494349988859514199466478253817405114366303476584295044749067149714056787482598645296293990269835200205579425637276701889279405000642126287202356414401803380859457659269679027054966448345885323997278155977536768042799568613864259351225050987529946297135160648441922201391658064259601239984523995756111476457444961986638584227854259606603538875238281544062084583315775944598801883375462454048989089800393596387850085000468637761823663125006462182814677605975670239517034002743943375852336052603720562369249393304609309806947624152197224500761668912364928818618211153977009032415964261899995194941264356113885556716545734111777086807599979203506015145706831676797284580414182168847865090522484282922221415775814015691394304088409670491772929822354159034131216271502911887519057077841326868703275640305800950559185243360425529687647221062842809192878575724089838356457331453956812616155201112574748164180345883102043449870541459437368497052446480424333558022447912258148137008036184370663319120873701894349176371045258035360605761961937292987065335416731565460968308859125679533089570435649573194946906331866942710461570866827891865612677591204789027612901967303978420227372099490300859580442051327033308730329451662837100610075302220286909400217775831013201614383858230728081958640330499549089413995191727882928187136792500143234110037589287279530394784071391921834468574259234869659466530733692026398651448087446788288296292157652074367622306265604303432824160785704858737308084707508386819821669338872366521356156227594001750857056540505805377226552410436160689832927070473571759847422053071025342896267071545061855601054634750003504439554830026245601894538866259545396430282797629944576885908360359048046665238461497197598469124654988360116220505975975742352217022300603351565108748142844417088137547753135743690019882126387122913185425996919067304198448462845126785093532191912815709129305243301037086200841263712322801382244831735485487004683851107908827823403506699303170152696635195574317107502813513889084415224765340114958580039045556175528970692490323072858498106983496772166291105086539050567109303599713041776596049063857212330607382530267350542350890747645700327412100563001140203358042092170171276800028700712879348972628574739026035357736659641738992507887391039873753050459700225286281213603807424073760020847304689990932123342931592395609924708819472387312572502165697954205135337147094556258359211591128066612647718525470113936836410190309432024297947777741681032307318978125480950950034007879597703450653535216864504163997001067319908051233684357861816562089456118109622543556238832065425313542482333285997403230689150351740742934444586579542887651350571187567409564147887440295557800968615665361450426680965552175758011236634435004146689427076251686983831756067403096818968678818727514482838318016780837230710859532792695391443359823254847310638822435815583313159832846648943273227801848142075877332487943743328682587128353812079918324139958312811784474999120869949597755679385348726692075374775820694329471183302828187796904897378281548957928451133009436929102411274241626982881853468218457871318417930413245409221145404697953058117713078136752811780551521644630465008690263355325578439222409754584042662877767737108552086921715541313087999152366814350515506514761653419151227959555147350383508117361854038945694734076474236462798638054493196061488111017069803169189734047154933840360572202105599949891394450047224473429436219754087269473207012502405497912509642096481234739351399052216441525756669461946933243157270710806548432754093708872585572856200265264670170269827340928120761008885491040890943672190356429134175257458742498680091559446125089741429848520882228285449080478619713304760845741999079614975904581446820512104095596004070328438877265048657512639164030255033335323430959028049209950725992958315548387296724546940914934805879317293235885542131139446201837281185326951922962926758312507638662906071523844183063340075598445279180005148176069607142635125474021716756485313730181678796889026126431295926558838679392255193132496118353108720562011258967932777219682053600143568578312850126060976078539908362830690073370494515941071141882617003222027093452227630373426854260906123672150603249914356374116389730530181785682725388629149055678742552574335672220298446655590710899391088125751121749102763949049321381992626667376425595190297744117333088067759923515394976534428449613907076071525761470451251366871330946007716943426966842651257890313901236346987886355316703096720210474231756301676712262251409208652957899676035933740919703829564761829915511442374838867325070934622918307515615771870572412447529814128470116544684497961175582067047075432372327925295045044318970698380018520453197816912403224826586562838795476263364115475674566069006169053547044659389112687224420121332399820921760227407771852792183059433121001136938708947515418405810077673173109023048710039440855065721805606067517089197548780975098042997165581730878809291779387276715568982335361153357284957201540903569951285855726610488821521461618048771194652198896718860529766067366300646900470341606519748748948071533142961467413562656042902006620313308085041206139346655110315231152654155650987369962601187666860621013807960857817755645348088764882105918132989234935051513498349494782812050350858183056801821189865318672599848093773170529244218340854943714752467282864479320281201464180357543315969640267360670209398449418033832598628759162789698932887289222659968640418294257277200950601583823299781782423742033970294697777145219843874617880219553083732705950743443833120479504361895422616872879095727402619825221026006290633865622792020924709466562854778480262435244998531004179952206200913289002792876253389550193934749893397786833387250326727456487302521825566709782972422890904154247860842655949599694081606975825073543202486191181034780397538795371549124913351298699453924816273949650918962799930584977885485794709993266018820848281500462122694883676176893824644092581240387246554757013838505272545001395490989479085643412209285607364163604755280045265540854526524890927129608003409872499635485951265250412966019406134815231379624639389818845999318800694120243024758969957442481808144060590609300790539100126688849502733733423664776996343596253290265140344558916797902619364350146995848716774014716799694017121190771170686559454977530410054389799048853341873245667457187618804280717684853063144950524084260177361376617198557331841726087557058777131212825299870119733373470419309032010662173433124576422518318731762438332667858297816982190092745290830385109537907549422393055256303464122519821969763444492689418811780824288268291868465283357958883994912076733206241453307291523504376447212626626203673691890611310912956448364111809700369520758061763819406757372674191664417191372731136858412448504058836296761010940847953282067122793875592601366143520443325562051251817143030878571613198383220532878004345989156613307123251791588320425090848158942002777819775977591674943586281668275450913517700414220984864731836746922404265456013376661852236692017516571980602091457841481496582447580536703240809986875240493419717531801073578040789565069167358373632543910473907077668094183921086487719302657160321068061151825088412359932954060688229033407365672642692567102189841793252983672250181063622078493847904590257849559412964860887277034206308992622913772439851296440012621970250928498067271710304475766960962246245145986870387256463548758491355752506990724071532840074548827416971336209709156696690595977023005983656673612387808770004030472757420075873159789677995045103435437540488407362469507734261657372452434550919650707972133926015665171665167040273635586061258401336853256055285589117393413727537961166296755487263954998350516798611864486311090094096670058273853409934330119592634572781010563284127870270120594389387647414067393515293559762624641580052747496081796688892088750681768212772451055567436210261853588287876281791563178554915367834636888645395388398246999433113911508483966594901498795995058979362307683076493152562704318234174101168183394840966101719734341831674623200780589353311541415984261518227389731150494234137525436291135863133935177679834217011306088013909183109252997564986602011826777253952124716957822608636744837344800905126743439509702043821927230759079576332788751550462088465035900637977566052994628711228178308852302855915729597016312195626141359788676266620667492727857375490593786054250672975997542142173278404964346781625399512357568884673851213547795890637817690316351321086819145398523513181075698854402180356498354315052932043007209907201945573750099932537262483650755146424110820247021203354447457916147596419192965508457609818960647123331321218145811572689049334871253783736012195550944411783353003785842253659748724207107249364581170674107939878928621868099980528489829091737995261129334394868847039513024472954664252947360968010973293288207187369961648174744556733988949958044085980364065846300407649464465242111329020675783330946086201133715933753808723361508280738881516178418990527947187137061547721202076795348072573598262430461644798747667249258095909121035559121036483980944096951010838236899543618323170095053796244629241337414374787711168962402488657765277907918395978046360966254959080030590315583023947702133724602054884907952043953571088646949634616901213646869148430267899387725922528219119614444956620314981261263439842994284865224874513504150535693143876355759785802746627967596410475927072616702569102376734128822204019195034211821557947366721073218386691651378197374272465485189669441970914377019851128659506145191560506130551494630212700605346602499565770168620020894275182203867246385907382850643288752413823504108960397700503921377657068920240437072835176459519960233659619921729225996404544688330483809846968420212268625578049246007736833599008633007215244239135184546742568384530171518972174602085029851763042867771313251677507497413190513385290663359473381328937066462926494644906441151374235178087306256035634593003758493140509959529038518123023228392063418826412174147707681661291529270494389003056478850912704945959364137475581364280318990913060299329988086904886694388051236621502075099222323745621324159136702036812359677494634764170684025083553083478477658881305254798133969090948094918021069457223397563664041855675807983319208286874505741378687633229854478508098083634180541694678889074293893963029712307623259230244079118026465419705826835957792527568570909702789474167473480810496130046914955839802537637484187571862843689101489869508400834703666942374101104151104009365753602670504952692461392359112906657000169637904821181098036309390787946760247174547737080280246001155337893389183218624895481464350875364285758309811823699221951673445851845968047624567873761694346926425912239977248363811857275950929086348798714600611759506561035212368505060337346242718909138785577009707167243916842075663354934053598940201465615237553999482749755134711292788748619869980543775628235889506912855544439408323793523864870783332674155886759689052274337021174092893997325483606419896485817777207986215036674517615586173782675266175791269923296668688298258952544506728850386862057741824886327978031071067276787351524881991387896653909297445875884193692925184147930187552513912379152305332010940089535060594045806997790237650439786624238437541570136927119238507943814357627082630766094911423694257211331303179961583990654275767443496197265973852304166041334947541877676644409722066052415743495010568209869863639667259552705020614142406647731133855213026907139582874405520011992119728011750826097119081526299733255962149369448607753476874749437806825344110281168446698689375303336847354920015792351683862540750249591060154950224131600027290399376869772464022595691322712854298097632745801894109931304076516332391525946253324962398921276544207530168681756570802272250403277534263132093601061310318031806541522295026217911747782597580357655330359764716902350849821666128956657377473001861543366476838234559810411328159554822437012316164927766367974646700596277374156016058836797912990943492313802968784555470352080082197793634285895783869111881149690183886276202333534901630522117547505108584880429768563183143839225713154188711735821265496563848919877894115350654014785747598816804728871002210050641886145565943339538825920252022817825052483974493465246254124481177487597133109447770183703144277036497914920079349506955988311240428988417847827287092486737166786742233601132901476930727181674204265859202392085978745158824930091927245297558623752714191364521901322916872884062936880346503462829691031951705105189601464558888244154455659169101363972204503599364069206826223386118555914881568116077380822003069170348109216263276305553767832308260872559884339163553512164170092790410651856577999941710039263911499511776307372719238000821449335597578546578923847590174605093214760196157847351098792577058716878457878057580227877833546580501690251963538582213106501911294000052716010167228783754014979079003600840923685160430227925062034594824682767983440878864624332184928214121843382030522258453805842143261174874260753501648720542443144772106173150602375148062768631034385368948304191913293912383684269559587915409985407098803216165747655259919067427656060009863667558338615445171156859862980712107667517607887970098536195032243273067179299092714421948638874790028638139797149459555135367106461859620119787205283871937582581708961067105975402843564743661688260584019408971189448929439368782447538626479003434844046609317013638899451078686303761174687289985993334050194588308214728581181463357026947062640479053673851979610101794367997083207043129132159490699653714307637201492741006801865219879188452730073969292448685356397899463710809776820097536279893539362258014771953009475628902696513588262057065558277487034799972431301624769156225434586606337674465180351067824276993765886212275256194432963799425581708132535831772185153949139247149519197755296377098266165365958539449317836264886387699617640233654533665008024031355933932351938983097940621189559660943902546810802491142558304818394016466092554164012347096975383080860872611955418808733077619775474147736862670073372275650016128708081797124140240342466348943892616092991975415011123618537944353687471587966877725724904173604840880340295163749492159281371734814257140763308821268707129576045059380914546906006883296238715585666560887325051682071683925432293158803011239548962909304871286896828036198199971125772335614886235288258737771426046182776690956487875140125988131035466366046296232370449292827979270826094855942413759091166007342809850069448482466826490032823732001021853863558701736346703137083715125082477582658269446962060074829923496841887213066764130783906081874859020504454463179476047227886652286187804478776522244435542377333278455025274266275657680447665926660027886842304046206130144586027628383814507427516985199308992749657328671867402980886185628367404879282459080840335078179566965763723973045831411876971083765136533039619307405967512154091989323397696386987412893454729356786022144889561583865909934533008545482470759625943071317338365498928842038349419748382757638353346498960644829540048918905512082212117240059381330743475214104140704221992808440933338598682445557645628185680221567752650103520990844142238231069090673940040449082984183791160032975076334097538738522521037026763780214527004155475479568749917016286692154414136434611953345142542270665355783008506559752943829603923266571605195565832389793737168672200142249313227894527881416321421040482935909735593398481448606840914928181865232630097840688035895572285833388317852078480173786317979737746759025119451890637180593088313399053602628112725441103992477069147911047988146291357539750731991260964439468382511012508353631729013839550262894836181364735495157879629032424608867866264102012212985882959402467071143185468495237216071086997920888094838568589704314912503504605008607074518319983900667558066368237026961045537827698036840433718173262233419403154255438702585917821267929068824477916686102427322584390221788001531099286871619497054873532286336918667710082155529349780262760877012567503947696410375563047231864361972256468549326138157882881200567184961986645678896247126122646250993230991327485909470536621248044389478455310229749748810792014031577171847000120295678246310538905055444122185593599364806700308056017330106902122964216187608123517445487245598822097335770060697202683279506394687440571941334949649714115264052554171793527109268382562545958312672651280318910807594198682420511916431363913491923335005122956338955682529305907803193509280224588593520172636521600458204992075115799390547110049868732830813783945215999001114400301021707997505905942807292935031158794581113456371863714483925241466739661233665048029694410786476753346361192864321676860781705038469949733430270703353023932729219725444872491052063333030228810354273938507422916555660328192654585460645862299396350347779749379970181099697427991536970492402693513354133281055742967344078465122331939978240252663230284671552207131912646805844982006731786974677154683313638667104667522912196560582563629443878700777723610615038266861529279677055313976601142736616008164423736273474805107759991624248988212876385996924004071821499864547145544826371288971382643072404304350540937817725510324446076133319057873676891078217295002778836944518258173753421876811890738908441638410059845311959552575912925477379772247758886447136764933946745180094434097602381622412121344667379591251089560750211233755330215374191887768205746520489415355330370930576189571166550176344394549924185295599427524538089942584221311232888241664081034701678059527306455923390627461176878781135497593633910631551621311293201807490591055658378948924665426611549892724030250083600806739082004973863290350399534922453558707890284422939752119976413498317620148795693496065809826501694959592856481521615244929195995115446813834792392918314131986659404853392603125752776130232878231191274733251596164802444996182704825271364398515175462736378602552285050934364226667229126557395346534645988038629641918603231562262568766559181005082251704906665831826082865211677712994084927880015747621834153608594242389731119780918540143454981595752421405800276567911411515785707980975618986360906357795769545703207203322416514879020638218043772167938489459940245175661157154664451398812435414391438305094435036601974333407830716780556335297931331273029966425438911950800274706489105837705171132664079586657626049639260999590161012799960177131811837888157104478087157089446927640504057799209236703112906324044794125735099135886566508160700114218068349460858154364955161949413853310650531947260785481098433750714765456079394739519564625410944016720551936268011062720585287493879799336773464757594597325529359860049499040897138321747099265098909460521372667528771957648922533486786691980273068167482621210761992624493873937748887296144739289209721030969385306165761520856250676205352876749457368493984082212882958818159543177513820620700926744967410848751311264561757277153207201261117472653350486982370587147452422604461938352079596552439568874470220331367941858723981406788491893743894209664650001729481561201756287475735686193497550488780091842962584624924511932330368553780772966291675494091506546036016171949540782040763926047944552391279335316855790769241427221640053188870934941148327775323312743050937257001574288419933163715110294033149468659739425390757949789554432412466824947473854750262791449833654425863965565638493286018863917155894109181778323571187590975789170102341536981872767752053461046856290103050348194787843719031268080470981984816493081676811547741592085203302945392769029344371025450685645401768882838261459566279241372717662749592724343009012979532656971358818133890078682597448214678147499344545108299629852855739276818063925278618867712982133108222013285569966626592625361763594064766600127022905216879930551710387528056388351990599423971535182657790575598357629374450758169071665162497930578136164407864137599031811044319468180083756214121121302017049785109344564653464417961455218690750495784652935370796910708285700243533471741924499029563350826408395909889862231942121178629843506607310370656882647511718760480615104707593644593091644514201164922007944286133214224617376788734423362421485555429655669599792505871297692847931494167505845129892532387944105600906934109884834581258759869579774067459117626474899406958781421966929354662135240816674838939191223972704525412635060544318731416703671814113511193749191869509715323507630095449003657944048777550142175032722158550650983340148066078107846169966714765452169899855029898458199053568117163934997321909184504850823636441802744434390660344997425062609827431813135971817054508016684114642639937451335447696694857681392471577690663359269551344945969609339354274285921052333694387764035837869682379064681078383994464879977448301803768651793725969600081080266428894795909360156274004246557183992738093412495459070010191490903005360004296809696449499263019069831644787960172567515187182459894064050597921557918385371578580927668866866921699139402365548283047340065602392712758636902089943302886346557880962576229241249553052314120815025059872355669774074581848983122819126874579615007262652103992337217038600848306636132894240965058173277242017360214228825955745579954144138074222560693511012655061158697749331028520450221463640277026533529592821313271172352000874240154117199794912658014672516361515710944560425385872981784403544785449599777577981269040167811343407020322174725652473803610291920961015260508379456113399778955742732262946342543649991323776405421840332851043231551821294040637866002827232555711433690412604088702613553900329339310833567364865630236749552697587068317557963890550506102077331770696702541399572504417172974208096812155441016010014128470447845060416016292326946518342686168080374485245899319108808534748078598847700355328044264783448621409698127395763676952494500504883326297616650385973989166909112262601632482005976309023226202783613627796412184082842674804039810475408083936335296217758547912620383877895908768149232027215478109377521632620022055369833047700705474530484146203644851296525712576046884316748182735795477419460754886302365514765648682056187308553167862399439428409399586433430506145373244986150638097022582100052459007180583199242229318316884671235536583044432746262569255043794830935384054371503119745375978141712675871394470786328700617404742735089665088292163785216053147458597775776380121443037464275397285589949672125643923860755858203495635540457442308104798877756327064234041346913475263346389591953499354667808693360288945468663304232530993498165327591195770017052903903502613689945346296080724071683622910418214578952727739471440054948866164728849776963617491115990539005172239379770260335191983595499021996786438687077677639848559739542613234232008263588840028919159757619864224603137753240029404225970934045441089330781536034131417880957883150644267147566956622111980788954982182360384401654826810492884876014024321319075286937818013001610160465308484414965283800964678978526823951206119599348387358840341623597945877484499238796712421018991183725358882420794860771792868028504414181706348996601534491447462375167825770028807817399827695789468912010367942451937470919755041099248639583771845756822765163901584458673812303077358517594697358949470712280374711369106830248551215510305367595344406994286957852264776405118383678084681337231879216604259059450969889827081362978651701912781025670284441842086477705260545445333887732024410271677909708141338488750454484996758080428406655684393545789856344877554005948369189607950912445683604822961159281452433031896813544038727146780793268574198838170202502581407637278475392174507252614463750459022854259417986219189470170619496802474171099014788873600171972902476466779405507997243496797504274981239023714599419252784484205337366537523051925474438738634818382492663752864036453952533989768256519009960618855327835257778507675471135608970218478118260998105153178761375748639485348888438344283803087990007466334909530794785421954370353674602336217062838527654577113114975660449758713584315163697017115571421377591677613491040906514419746149411291924385607154760198301137129676456676669015253357524049421503524469741364525279018549144219417338240896226783710068290218778513920470410530656674229018380255736198540281686164957470192821629018848613879670968992035764531066139063303684482493757468076241957055442148963575096218955478385111255083137829310175338525097176593852125357823504522975642601895768249764742433579044226560358603546806292570693077760976254973288921994342912724401216418714378305470726600002019305443956940794331331834386899732537558172027879031589602305894822949182163765248893597720978307435695732149332527340841129469639169320626598124038294643020683903064290361923717651329518294411036590770259898549327083535956150480411615613837274353965915974880011750273094439930912282706606517404953121221125250000113319068614440100406004932302734936816552467842820741077943709876291704272223238989141974288988847405706831452850071042721357158832446357522350131983623885104202427485874228013195836936583053165501054657093492174223414474397343236245422669613177778797089629911954915341922939692694691750641096761695085214064536481436295648778968587678081315580669619960406208450840326218083339198434485273125236893029856070844773384289614941258816925699038141559598361773763298014794107260180012734789057279883649506290121694653476959423132237963250773490426890858181460651515844153985527300220727548244317348195541046411450092771869510326128276995100716395344542405870221187050335071341285802823680395239790972752446742925427963782673434875471306512819264308550847134517775469667689829198060055504274767301630517839166099461101268687654621275479670386305102020824173567920283388324943728502381296037257579357711271017959437801796647071948435254246400018144600240929716030090167580726948346191281999087422763673464806576857941578188112007962159543446479897365578362902069124306312927711517002323108028411648911704329095355105003052595746837987845740955830243951536776071871141955743389985803141461174095524814811583866090477243073226132919905224259314741085369847769451684264924174093781503063389494281567816256041558025806619420405404337049472588505093573044233598832113785099691347199315645940298927049561300863468607985250220419401969058957487011655260516633184821184898199634001704279603283461562712759629175094175790070467006561582673234160294578328771844385231488216603862454535454874311291190347788684283449453866289295422852686507343844148656364871440796419363081087440049381483126831788337283453152070924277404820128075459232806465618389260303024179071075581810610511732611660230937602747461778241042315126069824095949468540952404749414379550818052201725112285969679333195469763553220894045875646113765872421992646664402230153096679098811419259799815459710826748419443879370237881965301211307885376290584249914414717014430409213597722258826687604057897960660569942865963433547111568517692997279945712147610010558730370094812336351830990521747776486822751379616880323188563939170389135836914620270974655232557691208645758656165169708763631366031610542003377945353207840175873246470905574325122406673200301065566466204364058060932996880750666486990665484002636357201653486383602940890255714172573904464870734177165418865066392669360546981102347942398278183795886285742296883798590049913488150320493985460654300499552757492447088397675440418632963238356631156697815681970018850869372618911433975704508179394415445378907757804524146845293312245663265933762123957334681075310993223803369975000358495995185754202119586127031614298478729852298231594040009090304408355379611906650839456903843132832059191166580364780603550241788788797428649874982552271244573328337171475956945564940535008272127932335397686353307030803767600604667137756636937796278659135960229699512108527227828073963008367973501992422744567476331206089558843723887811745050372084955272725939216695672537353326483501128798790072243958258181911574394555818399122146606097846879979725244724940981058975647521249099217962220665467032719462954126979312488998040075750328325710982657463277398145506483033943183274803635080662506079389107976469641311133042857776193296829826865137161938893123394828206050573187775691548230901839494646907739131856172928508702933088115218935357017488834162906639006673229454245784005580830340796689398238731345261398843540769821460148178676095192641314965167977016214679330494704034018050432003812626879018855560104398815168119140407244495351825075623650888517129212706928753952869192460716357013847895913417928153808022699410418061562053350481072241399117698119958317525859979025812483570932183780878386125525541435606289269484349606850604248487911819005587524735671276552296545098384678227948672615712321417644100965154855185310068910195335092032751432979997835597849990661166655806449115254794939828148375496048756275753723416612100109908443582341676403354998577934479301055565015569835813262126660329849434465155986808826076193829321142653764450791168207337656623657471562801045211977976340152320962977042485909807402745453274999426479102948478713856797497511475259298559216408815029929792363379086885485861614131800827613367143384744478102943211981800707380996826670163404609168570870898246310309888526010944756366263966314102885279796494561592058152870590572617708302955188973452027752569622787354661489427220844896028704005141978564647514744739799514797738849671879582599382709899062413438666206336499274173124337245986682168633073800937043365077058051120010804188105436442222393637260489670830709390753012742119676500887741629284444685795225846035373385002714032138878147385194970530248991369921493175042776183895401395636603544411421061448306942144231955608863603318101276738241266386893433162864053046922209104411101591983986491334829851688014815793746926317338612089158523739964345605222526748434516907559396060616500403345861022321231213357760228116335886209863975576981063901757078138837829593909295252813301192243904444630435544070208416352299065919021614138127205901793838501905391327628326807517528763762403276322535877777953147303382636491512446711843278317040549239451941252580933286337137797522131673799928684993604601226127248282296039647347871961278531905905829932394026641100317354251615848555363203478967771935277350239959222308122681848171132782403744250766668614032589519888185333819300057622423629469522206483599615538527691799507801194529641268206303242439190325009771861711902518788052350162184866843523668537053750627834929055490716821028096912505325211740058762289578091145457958329625542174818163674377531253583971008952145922990475087482055474870109750444146786237111504985727364459672993163035550528854554589004173287969410960841664935324034667400627441568063719526166864608200631785614831803106850845182837754100218052143085626778565579080851720460778980802522558563737294315953958848177563742363033667628306242272924312381441753787375897111431377349894328910111667283310931994594554012728303498959406586032660291238574956767319837958180565582498120595023199973584420063928937629493942915506008036147799029633766446872718147669182712106848830608519111045847501994779770436251395600554877240617204586378545014279603601909435885357233470228619594803803498687707629898806160319484456192756314052434967120382987586703768108990974547493647227687811081073573996382276134022615121290032809077396155847895866912607939882470379185903631222892755622402045667142655278675838024744116559751342732285134120479409328172247208645066003197591122964245326790703474283176952455937671516384234700633518212571847434914490638100606164176495847821192543403238677298170569760497087894341960275916311474808214999637232643729427087863458933306606950667370923890107108638988882383793205028355385437407092217859463040848678701973238378019985925102126781097738873170010665662019363830659830891617202990902415396416048577049700364245058868227964697269258121815067896217734869845101281044972795076962974102079571581715802523650096517205465278337141307904159461133997276624846475928909789590535115646468541192532165625605854740852424443213535094993841926557237706334207963743453589599243661774061655231309736990689693324783306997832735720273939173259325441412783480208970683277509379864127485721211947301064281668588051832298238937123508412125735730933430673090713182756519486196143396266498641104337267052723544710477323300780086456766768158653722779432651225722918448572555450805976882594805868812995865297575680998082083247511068372199845053664752030997270869716260961259729459454688855763886212215946633859713260241051614024481194470759841130480012865014202808253417265997847458386351602386659590396683157436879797706996944191847012037153427755700281311303849579070939157307869951966931932779600475211838571871171407190515876269662310054627478349244442735642242003224120306404541932774843981194365027599780234568255738664475128049869092879688672179948596188530278758904822725382977000246800054270460653243209093622650461084305095393569541661705049686820972691998326470153491768806746811598526917025415500708723133938158498895517783661055613265876385377671118939987653631539074227951694516767340669541125867114796808499867627773843156514692131452251426310224596833636598523922734340161827890664276271132595181722497624546431932316775151032999782224015575339693313323702204482066033278196523962349598410625269276520656132067876996801396703764911958621549289623918344772543490655763833690341645132279996464677228795423423535546246392795902241505978342389246442303512300079156114869147080172407689782553598015316719852868189296513842931280087914927234233161362669648434024251296630761394197050146943274897285956576401659993554463582949415102926133626677008817658234634991299378554534270627734989275677499368842099931769060917656232863273143635676723746403153328928564437410966310255840201484809885273085503359873453423352963994342873972422107103003525613234575585590797638474011419180675462805200433644518807359461819021526086812149214722102253790145430233332318382691170888698091686454439559506848938842678283989984079667591325380486880135030796532634798718107309705396543969539374085124287832224609229180149470408070701836561855119435804165705808797545409275390809683834198162958492679326916120760852072773823347687626961041633575191855633421858474323063991774534670842260169018571948772984189275706407537589497032652820049568328386530816323772024837309051271195071198798082419300419996510705294974038179791261201066635730992507426117406744005154413428991744231605871425941610019767262413654883923281159097583369989142223585842233425625504655823000632140012994101440386986942197818323001839321619818951494116697422971856150406675753078590383158970305821238401182190938548825941182134749652185621653069734276235197378828874323605492177033631844856281490852696134575649648632920280673184051213313508939688153525234494826363540202172488013515142739615005016641401424863466861425835284292816420231262473667386273982094588041374022950951394344549322802360177889840623533923053856134581509560662571569170453751931927625051061250894049162745557766582222455577063401776827806848004415328127776752686484447115800636249823835744059403654121709372242565315983179257508264750416882804717157043896600426958883000850971258937748109391102847294053704889563811729048083394634483591482897548203063646361298626476973591935588701216306196974603616453155780676606682270534805963766754266967311733872752897993807074956760818551951145143788646622512846155432136771259193494812576781400329737721545471620933012226234617611165566489563545510354111762704763077407363601334930185760302300991867635278697497594188423825507945288164815136858128131100543170109401154448282934585006208556976874736098199909391440867620990845801315263453803330542143137863914665921492806488139448894483120337225345917322670859264502997956987851512615524717453120190733394177427853045403213982403093150529385091920523231583780026680297131841905299234144883925420396738631537499098297979241018442218518805472711679044624746377480201722790141747494202627177654697175222273178895918835599112404485459431346759521408862634155106113897550852510089773902216347720123985861030943884004473862513572376118250152745936886850022329863727230584681559815416971704154957915110149598059851268074589774011022391505983798772901957398190671172917510257490254924476278148534965213899766127023343752512490939143269855818311447297311944964146626921856693528176440839955890054256276241499271820818072055717671118211035690009751640318160848321556118879859232578869143440676136868162094598399554105645559118620442229781043931921236401219222309824606433605762663174341541138554646197894469416460285665758138474514771492505902435705463468564330195570461857012903493725895925336732781720941107636520394145941353055810963854589499043335746642017599997027109677204384043018489449397886754321833062506771624467942252131429218608391410913385557987400951231793795394813427137420266933956851152088122835907302751908426155734191065220404552424336260486740431895118585587960974357936048898226647101156820580955362991855979431925995870753904201412056301369174723181362958237268744111889231227891339535207473122544322164253468895223096266767431450233205950093056807517255714001992909152259686742670533148049769369777600997192861822334592296711592479156559617950374880224457080386937261621387180470076233512311595870210929396870637875282464098765408184294785958288856563787708817386715099712669257856071621437597071330682417867499695551848452359135731891172324260640091974278264825063487149585787796079765154946185830300392211197605666068597636011357120669393223563825078125118116133829236567041523576814385895200631988389319613558098692507697354127216814085358855401268583353537634570261100728531712196658993182538054766609548351507843364089887327898805066199885717539827402962821633495097984664785397909830909144984893168104857978537494632671188256405734905802234513931289868759645297406657355410927271852810188903669800331168015022825172021720885735656219937917252988016473872939565912306977955280769277859787155905401395872903817094364013121994307349481460904137010474344359900633184632649899719576133990653032778691572889549039753130082579950892870075645555840158532891573287801973178355070200987536309877284641501147644922626602501027921026685007293274974641871287553370716954159051681817844933017628422665689907247392484937358378247496578723549255815442544129459141392781973729286693245907338100681261069959293152580790841068167025734533468618653727990306173855278341676889523246075625499169461926513019266534737011638473141289787352409698163985872387561357029812130251512798080479210828535426929597597014750265258732953035507736143868458687718112169169348177254676925111102556709088135559779634849212812565424611157652266519464631473519609380237213736906116015372591069442933033627061445808749982924086428851737888531708462035236267159930873703261098632802469236461228101457799624489482122222019024121679080274554761741899397750426939577088572368851637365782380918119993342060162973511129094503750111654489566734402794706566657174541390545888235529298312201931459912566601301949112217448847314332548394885377254173360069109911749664239001210041884159975151726956621565167553448204415139057186475177666674494044389604795237245560447444693957599176129119794178880576265298820601862092027483385450450142403900847549667211441946333124326509976531604751239937003113717154920196045304638272984600245075383520097521037853358377728311975109814968768513074391477223527209288168660886876931997153555847449505786528743894944607987804900779160569477012167265410548119238693296366416823926094075711627709268567858123854586158408919432230990134808911688285655625589422118231850967034554302850563385958693701262861555031849900002468119603028962683880011546408890371201751198493973249883461535607301858746428365860084603909608965549993431654808171356737402471873860692661072674746981031534282166218758139526815598368561423940187513792715730562461531161037066067603717157766015713471012349482869771655904240663187344004892550676891911654570600933208310651447858372608401012552518684923268103999639610657150082848308306398427585899669725462714909775744613680860533785694343118381062734799770146587175853061477286986038291200164453543129804244001216638995872743969524986483952593986294334384895497608726578012175869595864783522103994200834091885183903087886613330143662556783917392294286185566308277214662955796792472229407122030874055732455651725376666277115590404947832051367798856192706544775832540905250107265583654045363261811441530533448058326096633811555441109831803340380572496782697335995414530525115535915047559744598761171406211014446132313620602103503041711293745910222600786724446074275743629070932711499147678847979609844105006994480666808915907392757475446248109490031991588138302051714995762317593256481185134071473128494278368024975464745046441071495274134900248527449776674676134867309045111967309893963266940556040396761068058691177541795748893632655439476085177219195193489280348842492000304763434906566314547603918759589988608319293086403507721476999890027076638947514993437022388344710163507726666384309011618234298207131397900005817716362790845303167115488028199721084320091269925085231075346017774814219197027381043831716503845908240049098334583062246870627540256414788291677860613236762895388263267558922464582760634948688875745778832445435282234900084745460051818633738117254023740688086290113576313657651553320333803505451970849701330654561390441418834416585112627846293901277711807557158940020613352370426925173491560008108930781853691200802805486780023035638879154573120749914683095836787058541892779293130682442482047623113118268687696526314418019233631291916465120606553859979755305823609884831983654837679655235990327750074763172460281803349730160545612418313664778628777540207591872061588161384057331927599397100551184846433458430342449460821298647769979107903477446423582127431554150241972891875456665567960817746604832811084640079882700736381624861617903873410602407883051063392696725525091880047447936355415297944580163149918834632502670952298025464936983959251469134275961337052789140715942644539182871978309454936973929501945990208661559980591691629527421370490480934948100460499861479888143657319638187193857040117378800802324660852546485237159861907916773769603846163124444350921377844927129284444030564729143400401357111645989913729140055901548932053934655674107083069601646467773473049099856145817962250938728421978444271941422817750989278653362569868217426118063457424393628509638326671935172975193436796607043774024790687277134529058971410686072261816500270830671636968108368938371271918599200624030679992250875058198788096828488707429412027959550631366817079234884469927944163721822003598415283705866102208320263749488508495474073680819348038046976199507770458156253215006799301085886608984193279602790933171086891575939971077566327994158485059087477422292565555487342860696482283326440083373878358258328766743599796183289694895083453671939569066869714954593645026802728592635113653293536592403001081793513651448958916965803391299853550504286065278098103226643928943026431218614338304476564631345728084417737763067996693744222531546157290920196163576912601044895063410517106468391144951056108406776728770393675779230671979614550608931036566021805466803209103915586842971860833218665836033086574183444400184651746245087255700860338913383723333431000507015098431436083674611967049761432721572922193662725978858517418008845661453300980748364280424608885271625473414141223154300782548396371431717698593033841645245001464339351876436710684910197548199762748081756582490159383054780662073835564402446214760824938321335818198664624627614099412250341119874613646100179147179485412558823780175954916610366464787080607089013391292288375717595310570032369648221795265959286349376700413457995168660363764152997584187920113861401514555615077391059999129137462433872943587724129070861080667528918407115401579206299327380560052977171726463759846980659080789848879885826430311290064535323313602956767572167447891272084340671200140886994028284521267549193023848022153254526739200935674950845708280805435901815027459380203481000268112610117945588751494810395015953480836574089754199498789214533754777504648885500058783466282474482823821290867366082543196619200395294472968115105069565515873142227145307049493638700329746415909080442806997995262233544743711954946668811531290207075414343487054651550686770838626498595678726521675560032324326906010718274152809061465126896114192994800607765647428155693250934402618880925194652864558547253061028441510601794224058388438260156964434719286134774269617227223333677764716548671468681067188300905138932583691725878616010326589294884193299114377220618041797979788897912886642267826107969546143452911995022903910761479776074265512436330826836595671818870818752169752551182296065384740257767707701153225118447534250000255287975915483948520964337011530808726395217271642271832260942089878153843100585381697319807956752251493592825339795785489532019260232786425286735833443035398752656470959046583880476546841479889941820296785577940655537580348362868328759189479288126816443219171889489299739732403831385543951114060791375340369722072403295715338217643424193033423134158198590695877994436265000314797838919495459895059140123767283057519617427185433893605838564785538470277855748744962550401317051220883403538691542695367392954167725033675404169908884691844039864690671208833955907454422481926334275731347807973087927801365853035355734226815712522267712958651691306185339730549005637542214643299780519799293724909060197010918706709083401890331078912700247786944648221870112317587497749650618757411922484770022678132004463760182499607089419711262883293168858021989594406185344874161166220006094455901304668384973011340471281578686161490781830968902131748415776152134440176737881052158479389437480670333186248760669333749673206440965110250304176471185753857567243689428519785040678436007348902003254963191070233608725239940750184844667148333359715426726096815215142942064586149389068389477124151245083271227610196213059156704652374666869299162955096043556499649688156971954310644025388982676678644000988818259056299369976224189751812801068007866053611431395462075800407839208405591795611822540918683555070416945480722929889935401456321448656138203502465427104001317854224399227564276165475544852246960201184406569084862234280879714165839992608064940454524792589179000965291000997670551144741652321309382431345808502453773046075754561398562849458536195864408025606964563124478439951706259434801667934056384741025259013279330066409447466801982257053634563017015491959579221641485766376015889500593344284626413618813475960935514139317231818143854074758853763896466302982308234537663363904200966781456862821446020438270105079502144990390746800323253028555857919364502018895183732445323106317965613799658163325822897328817628998522894653178524879201176307347648772849989923223441620059292224968939215191691441025112014290073782717287599132420457334221757624188655063690764297600528013743446359850246371885399370518642830555833928776291185772432961842563732089839578808927330167181715794963967074000095852381755729444439931006493056666663006933267934705074242076884520018030818588828690220051924221558519675211158250766203788137021382893361436861080263868328258324986525333966253348649734683783630317100883189843710439418344416416770771776540594824243236203470341742623015563057058657648205895366392230884362324496109266192120504863644312991727254660959390200184966063741323281619635860997618181249683107176978560312214683844934104652105766364893947746501175406931939146894829094657968452459646491504898792219677575798660168070077808149619116143265433928095406595251977471469601379094247407380150496451771091031775277589386775128850125433921888530882883328593515681787961376975220345064223500944335983572697299905333188558722769331722883704388453375409641957103744005140342876458829519707170616724133329623142668279243485866293257741526760155176472795098375861437578637958281752750097345439330121442111731036954222633845270745997471970646978272803680397072297954015097119470726430910753390417713924632147915035641022813240320216071129071499236745360117731581168296928315515494283790763092482288591914454862055441159747071321873002761408192556957556473279439984858290685275602384584703143966378837574845269058408893793732166951435102681347467640620666589557502766572496756759501458809324483088350683026038997126315705175141136337760541564423281233148667083157426470569307776090850137250803352413557447269604634650401240586950657190550363308477482267702642024765487153151443549935336816535131802635678430298470515833884490176778894107973302391608839561401380792531814419734219991168324809644801880313632792962097805407713948510513428503840538972146376691075195799893266808318559736271522630246266106254060047283402021451025137030882460675943786594231289273915463755906678649198912404103499836157073193044237514461084398588800780061556009611725342854541824379291105199742048684299786890525349129656535128574398291350055252626903519468122916087015187924357501429870690472077985239824152488092016176052696289483142110946046028095420675620068176442883067953558542097190691978241120576694371020681163717639905173819354286613283107338743001636887675264979288287393738343348441892309461866810226044659293146352230827037470276261249074611448188322268830340034568068709215266155293578348083543759084230864907842988944545051494153061265166991984937681275109175667890286461705120022806214508700559692794113920630582726363704372663130144538835047059087600799289854302766214011022998143543382069083656798673478032663093608715333376534830116346871309832588762769283169552787351333553922701581228340395818313390417475438664846086314199570570991530968714256182420693691687554320240958598221684583311846076941830735720116699858489876811688637513955082281995082224820842927389217664817948016150331106329914202849852491945184592385342410644446416344914340832920554132533111112434410973865128033687605693483219278959348219033684116010929551298493377230193150392623608804832678879778998251563346457339887096764221635369683852508337928492777369415892372299780686299901326143286035453164114062585330325071229569921821699024920973217296235381374927087846188721018896857465682596434229655229370084148430874132713940122103680956616228694290497081610227329853343167773731116533607879117972172217986949034805948010411436496366277085750612316854156828416431526162032047190500267246099536846712427721631511222596247268994562247139721735446135777698079715496721088835124172418080702714384710948399318970344476609219427564945671155275905092464651397240564364593354758061257716080663269581454592561019093380433222685888801082582359410361038724821594614903196937666964812823467158923937942876565976600336362861952880013781880466391159984427207392023010825087263255381131628140927092075595208224404497004369733969526753820209234624186878896181677709836780947701302652408078448063099395732549820279179346385991160818389147968071198000702820036346428297180194466146677796722582535898628225752552003537111995660587826201709283730091785565221085698815932356983627580314960292195753606582216874956640943644294654952095070657343476190830705859135613591507582294904049573007357004645421191653159232360734118496655459478046201356763506982157522428196065801929318488975302047998200423822785849904476017753882575545842479150881445601593365513079186099175363798700235328913847133191170315572451312172231522736419477831034344133941824452877143263438546075026376159784238560016674490494986623686137123542688378396703482011337383587998064366674833978345596646990245602362810572288715381977462973387249621432591587356775392799430620106446097696811134338079044463947273314692720152445811764515885932661930509909528043930442213683780497909452542571423335905166534019998263168429851647201916512562231648242121407299805006681785633250237999524029458155281392192264242551245321973659930401835174924014550678873146950190059524766870966273837291679840035149293276228452616390647000684242816384844064371356691436975451627615939398145231818735215979361788893724909027748558316748567616931363744669522601673834377835226844482077879674951274603544559171145444789608071760976631994940037836180659308499634914547617522030261383347431991168322336337286218427383838638969481800158208113398714352443434515747442531520903733433804926163952606879083192450488213132465464655844379831707703782288804660623144649328587480154290315931041445687873972924314802215031866043453446108589825341624717303405263378171355450305397706602472230202925745102832389900772300269971249820504590910392487260799118721692343880158728314134496093276773924000433607494720863827536524375964618289594638336857182206948209923026046417295564619049720525033731061068671669054704526354981010091809062604451795417882485178990311382306073045924090464516961205088547777378783380483240357583662128149312621817535695085482833706750695805762402160006019565877881736484791732316734733754687035757459680044697684477327847248148094030634298764946171738493420926549376599107506924492100143190514027563218133252119868621967074496807934634702679352085821377416267996934855753630711587027701725232832603625379460775733535770914172676395801041809318983644075668827153161704180308755544998828557491130325227553490033466999380401012148648666643697614435377752567972052408234957222962540276088965828752116534229497612980050675876178408519920000519289501785725538108028993172700775113648328318387326331457191037137162310009924955417226228084384257747477219990037877454258331558413160295327267026865721081532748585099138597763061413002431763820023592973097011042534737912672605617969318061903135438996054761816581471092050874791472249607626363307129556557898821063772943558690114656750316345061150675432387613957487685541481882133093269766840421425349039241862691877346386568739536640319651908949018408482504315793899471247947218193265072813185767297448553008193254483691526840600314857560639774508849013665360954053664682431457537251604648492729203953373976125112237321004748444399295781305322678360683986226157291834805962055709367149521222745210483845335618360058485925520540278381769421738788568509501094606216176857537451659863911372107810920791138930445698535707215060342586027022337888099766662425182619182485086871031201279674686192486193159518641123528113469654825357067817439618341725748643880641184830041752693165279503802734727532599547123834559785338021801122267646680232540322711013952655060356508958642638300073789586969319122114095139347677291726195314322715222336132465141482660820198961463636793563868148157813552472905883233289753062792260469587010511398253642987982513810912147895006335486415622033315770782072418425044920720926712516160434095221459133827054116463124653660906221879902156375513845260541091468111646802080830947470788417590528387142862586067728406932849898346467307718845647988490189478511010512909504668516393427274469241136976064838801245040970744874974206518885620557435106174184057932545962336430300837453398524350450450825387494463226262240793371697226908717412233931372309884804067980189412181444639674370269349419287255976290966951499227644048780167564754796095146140011232638886051303451094585159249860465435169670846878345249464720271386063378287404541555157034456756222014376723873966156183632771024026774915665392110585273344384387847085737559810633777818579717949006032834417148761787483400191154901026529136281500979922003797788422878718929483061467995830094008642823382796432357642113065182822777865145280228173892878113837937689443429124825830563513130853656489004567109451570346942060655746503230187925647398413808145765776620070464385094037776812781673952443327954251036983014996802457022638459407109418666369727263686822938486034632480413200627166220438212514990649441027439244721015255858772252953802946670523087028191732682338082211523234993452468990452343580716433111876178057943173526950558457226702683881247684751649878364527086397921334599246238487290952753703462222340133073121735731146694827989803523813814559943362858486655327329714999864451180733591526664123662466437098880513683931851532666059446406251956978712351648341371469949715968304322103064607204690632680970262162286735580804453165141191098382010140155414277669041816730707032719581321865153369392517945134220885495168591460492962305048530468360150086331773460461760995875358547681415259685951952768240525273916705610922421177845542872277138769113713113031714380108086063192952566207638150417617681615452274317055186093541195091779264675090672325119972110428136319973183237547537028775248321479433070091072014355231130816197555872988650482759952109262076796531920950620970470904094060024759900825038007430590576967770840283375530940715074167640368610819607949221025990290119988294955589693256036772191176003152031639568101164147086925377913759797446099353057996160422128452629443336205073679768784518700453174429931284263936272758972243740486246350379164210927281031714214680358858989955972890970898250822275200291243109792534387011197127375515869877867368947991223275239081533525110897599880227096706921494627243726765193200276031413929737758178011399895418951784998539241593056549068237783021806192370452002086136174077875652726602691507823131277755332508617778533997668096796726730320909958646463630243989377167229186530245460910148948969933891597733322188170995685000743734248958999424624267121943339680293390855959454888456399664905432365864943140112075120225941291056961446683682753031973485057578363546313434987215808951071750608588054429335303807307399539087334945987771873111537698893823872430980099494371179208663089651324541910958411300909413944835333501582982609035870682285226766515681051464421794018427484540508533970160620347261077798497753828847337890544062711175628594555725712332521062025528607513460519517595403465110955393092383067424287174776461885983859746976948730119253649942115662287131951379585267148239055114716736497025798568978824552262200626811642811747997974714730174364963243675459238536899477595216837461327798717455316867698507206855302283619247692419893416372917124262510322733479929793018022983025676692437989110145995762196668860081048139728173909947782050995348373566929601134745538027008226852352110671652972803758190255690633271745341241896073362260575144889117309736594333725846686080499137713033490479889765506547170569193002536164294157706244043949112560311907532969298604010802508329918578755830348876032645057700028920712385520651936536945707852055580349710168956739550181330507800517589003791770782732667953443203431225100554027239272235227593922437744326116534303265094955249293036135637999370208284246681382878891527710034976355546715216809433529070996952583211212845742339177638290161104267499604111717617243108674920264091869078627544075998864853853564537709969780649642148914758692307383360026454773851616538658684318684418346007733861234088375741696178843304860024950846252449046899003706351798990073614326682914193675055062734490510952669932193675629658152765538750965538065182203087536747989686468988034339952346678083633442948399125968910603884086096726099798306991314801320216172425251289724499965145642917833719346695726744145906445086160035134528496136458644480528745041500229027282120469434285877286909238654861889561602488399437884444061713601708424047752597401761582049167835863302642454458484756808957792760250922983312498855679954420591855940781793714206996010815590319364110523159429950727680327475090215431692897492021026889178488575184338433734931989686294536815141992123831029939732903723078555073760294501315471148416383943642224924181969554739699359582154056486418966012284508488580699845763350177807794610603934883062265188782865030343238815673510991050237840973698675459111042598562861810157629231476695059325272703890743531512250032537929845689759667547102709810357819802036987801438784969222063224288857964673810443273794640749209593808270001995485571495190791864366199225432746179450771863697601063585248205183871867957288585897749408278824807303288821626125381776148590680744917688606940806445277766735108329743150813716944608623067081025364085395442076244266472905344110913878142959993779155168545956501727429104650551085651225062149802287345629809978739742121432464618968759129262701133472413735935747583038725708794756405087153347859949442242897012634545057846963573079021014258832077294256732603764429388914301671830080369934962281022116893104407523369218838032048139811383851057489235690382667734170100942185572251716907481076613540516708338703482353726073998949929025886226598356836837625617443036725616682508836342601211466844644678022821789565241644949745011826153147103668926610578340198370393651234262886233581377968115203066509500188199519135414185716194585783427370261961584101456366494095217211075871981788264791416050442214859690446254798100910972651747395738809939392065526039496831278882258296861495096379865920332423369817371635512753609615808078320184769513568798377018693256475521800695920597355197506222885591337302752924043102389715475603379758870517069274987738422139662083411633013567185144884280279320631065203120662871484989356335861048424262613745706151449079600463441297781868782665548924879620757990861256241988874080936771728997830575954644000598923452590430632724676292379007852576413513354215679329812660853990391847978424509147908390647893861279578550634782351308138749108126384197518692210393369149946750228375594641304721008016713930558422327097571761532726195170657736523277387802783269660629903620295043005464239953489678891960763434495130796282478180069248452758173567366952698496236532218285488119772618768051946642010297849867880272738420481228543369859493188468013690956878854075919016689803438761003301597744844391491399087671620820688428145687636191645382463727447951813670880754824515119614032703280113572484561891810688158628078707759225332393122399610903832437943443724814438512192350511309095211589911522610550655448544916514895426205772193098632223928100802222214602196960162011419563102192687733294249565982122241202118290382276945735523655709609995650601709430456188719091213470644514613591214828292565448181693042396543889500353705091340337132115772815682274175409211700007447609583159189701890140148770601438370829492266246618829869369521111156296035993325884322466185452748922260214956566645173112533764750437280753398454393075500935727823106744662915630592255364071772088831349615175661914094763938733923640079064196395557661029588206850089810963108687429862105200981958065232477068341078684273035321629863719712105880374579927860041149638003838873419616205355958437491482699271067112724913121127302377410362968888814607821138464026133888277064596187072056467049395618376990649223547016083897416861411826866169038000042174315160503682697147884194281693046398531964192735336671792533679910176413555202718435132632022075168619891974871586011383643994200374487685560947555352285589535532394706071148565938202190267253561130581237705847830434210153126226133454280227265774501353022361199830954750174745110707222620547433748804264303125598273494835471021434275744605408915601248412265784770723031344030328037657984764749329454245664434812228612551992029787419051087820840987342979183047267822427817920470180248373652021541206970453169082212110921489173112787809816901803819125902430876620793115981305244132165040330146972284674937839380632608130950179284051503238123923181199329624267553477377438583184519488792431995512529968689134058908960908660492794548852193766828322141593791138443307828076272407686385582745294670978653810035587103807366762448381636455432791042285575385320589949287669677061412851365479076394317318468723279798754745061870981128177672445468736748291942280753474662938388859047967444725159883465902801674260167992452512401955052605937416747595643903266210784006975824840234141951529733925088993501191925949579308094697532366007960059150456848637814657906580354721343562667182796273213555524104011085123571592932390616363507855071819991372983430515915033440757610870869040142733097729548016923478449500045024426435314352316316528061861928065823215495632382302000802759744885334130406715580378604044854106833694362714868478326085627465748631281916480054316900949381388168691377810212900895816435725492479758454973217940124454038778447314639033776015031299364462500269120655560638317932025414674945265428836745002163585696970516953346400385498920575020780737776416672961421041240087735085175210954868178663356542114623547499032568008317851242488064155687470905902312229659216493934694108689445796809413117116210605910320428627265473990874839646087431960081871927827324375933534945451789136196512984368724754653429279690577211406691233447711659070644530053200103525865817050594130209654383932624849091529213541759525546904693113353653839556557926258216294166960545209971917461518812971180237976631491505439337141782350562291751124411337057268904116956792163437226492052198804999729983124406321363411984885353565168359316442261700848093346782651905699596790436013210572851159068319675317216283784730266210038552507759025581251532260148288628080315245385874067854642406380273870351091825180590183966500650278964616579994568848515003636983993419126782621503495750734510575147596779012723853912791283280534245462243184401838152487162106426668890886083507473400218599934892781679533372975471132761933015024702739558584855130558606827957460782348777273200827247163467569372277942711822477318013443266254549650309936396133166455247179661077234984518867406594449664973824864689764011886069006512991755631531706446803187427324606377144417814420662178310657650255984574710291725849373117018002098598747662082403076903423149711602156181224807401782883846402130869653399641062645293283073074455818637242470885943660633951051665966321313797487171605703100540657267588135448630511009036775655712475750786132316236501038710387233749058414768037044239705323598981762234359305544561507476398655647058177906109490020560120864631255319665471877167453928862977085623520596355440978508866894150527462986289353042440529305564067697356155598574453596067457392490900700577000036777786982135349863826915995229123879332298052499519040617076254462923064583485462630026394775369692219903895228043258557916956926871525545856844623741504149081024321131319611571216946356635464678628309229003047726359494374840311381771755172107339800409296020865381075083819645469426391395644641430229012821177802309504196174830390220338306978995960814472232463323545408788391943391417965227003147584284560485089128121143257241441821048656025674741560444674622715152108440024696247456365045051757379453749868687324130966596170077689079232924299756002754829548526971529972874948916036073010333938758530248576158257581887131929083794680162139502174790327344363317792216065682969045416584245327227947511687034539354769939016057988006814240737736086053116279159728257807107024398439062777344746688381417903558957987445026217993628113086028979325242036006249737825364439897094255466614206720797944018234484025920123737713604928333656325379782636769011107598123150238991317039500907409864233709325466251733647588449685598752662333949475292043178746650900275671121651029957891110878973796294349763641173046937390180470578088733497362774016061595249052649582836946740472535460862556861942187793868944669859155226666121792106737426509066845921253922217790328403892116325067932050963679165424859421528937212457621624705465786798371696391403455008327857366016478508084690674805536165437202779219026600800075185629488176415374933431374812287648291110527688470075157184609996522872139793883653151844110389144835008727337760144324866160335386417402108211210656394885238068039876479169036333906153256595369563883325063625968747602442841134238160401881871857255267560906724833414112286780833187777115807610881685591293563884246838095720066440597420865214053594260856721845671040893833493937314444543862490547142792382421131595154920555208983592993487973035274017269631845052740085268084969670323102336910688237905514739255135216232603328883047002463610621610738593633094861733272661053144746327841630534549084752015513828748648798228486204909669473944620622225304007401267563589435395309158069079528889423631564795511153730661495225496995992070799995235427519673572883797177441815253941687153155632673357406665256043517563229172288115315408385204688384774195234534817906992390547987741286302195752312987433430363524455358380582062023714896910914449510895761595979385814773972735167898217810406042329827970667647491918912487963124437079777272863678542439750185705536103594792981358842656973654102400199004683313081915136039416229558424730898818260376202064693282138145454000961026553848063840081748541029986222819812617474849434706286119524830429710847613172048238316232000479099274737185039089077390637162434295978470779895744280813070074389336662106969213758875281043904466945200927385075584440101820468504683167270938765996014202165951868887708910555415270799900085956405098808856096898027047460946529117575718683669133655725386456343285929372806902921081070076714582581029727522546144823764200945251188410128367310894020344067565120042933776147480773908375498749053459985129531316083360980983447181517493817864903852193154737138839973768997116476621922434600393616783071609262066155143013545252489184297082330041961165058391657949078711984420244264352393459812815925421295892403242894743636645225680608763168123182386100730927364428647928625820069469680284406479644794299158503501278954983273242471677175787660722827161716919979438171992694303181074941977713986912753916925368856152444198465923677315362456830447563772543523888741884458241453561086464865411513135614633856667490720704060372178225424231318254054546756997953127697415097564992293456419480509147055502503248180777503370175691092405567746710192950154577483116125314981265349221658681650108908750227479162702573194364798097605812713045202008031574880889179049300164158950966877164590154299917188898711729995781829413831303534194228357884641346236351161280192474129833802400125239081309331808979054421055290453670599718858286416309051435762977925000251029941751962631241146087791918167180105483154086414565448350551511277175262519641224412185195165772415233586441687559867966239150961612054109704147788248778946541440956350549351051944648941388296074139492959830562052038479911537910930478970340737367130931107362270826030662555852339259927263434635708883853521295673503461574894993389809755167788235645366087922824866228978564887438516533686020364472008811186799060252087793043801564919432970072232890576377607302642332597867286664506950430404802398320271253460739468199096655821883793431531255711945848698092653737639848707358790648881868952588135329221115031230797677094446656326630725607859982862217721100098138305596583704179356734123695442917615632394236049777225312642749861117063825423247747090920270668036898702857876212563277584906361021675661186671774700940230790846337404555961658292245974400512927994079542421002095914635849798023374263896501692422077780938291321602271476014221795434316573254795237166847850314311209207150259748552181106795668348658499289241151606897223269330929627702104346494236930966863249134708751597631196364891568731582180374558200214438118725279622454489104119306998636511034955974050120395370524310961571073573979935400027736325136554227239070368318239227545857385002295667477913564462704450811835623341701113582595101047582779737303036990491272371316272150339743106442188725764876522080289927401863956638937524146683954744390370530144433369331955783139238891228358343269746581676957926200741416608944160925050510888833026881260655621739965022804973485339822562778335741043614410693298879869148115596999015484565705365842612957329113738252227265541827161698530146569374574198726743833638180543145048402815213586772932725419629911924523048131004123258733791019775756446855304638781204994165326089945020505935630515658747872307368351550188105582626897537762725553643209787911562565647294037433935178502415666680047293980641577549781415944144861225785677732331337144540043390464407120972566285182909231343139596243924774455688918700639176610482521314825293349525939895453187347494320970826923507568529697618339356690792764199647043880876468648356950356995071435520462778838916687510396522026382299264132065080489917129293358494085085185223924662621229150847533102640977240581351716517079895955013397591407166524775226791732249529295324615189356098865629155716413669034353103640671245289029539142232716409368953168045216087221254025928595476416807836985081153012693767245901377611508055172334881659909224301025189006473381585974696556030046999823867844221578671981465917214767329436366844011235970509951079322260258055839037751483909301486031441451055892606383097361131767344573272403711224513535062478764122692003466840159026920018678863439249542661723305965034853204022125163908296252422878275257265691669614631589140253155631370319809976268183462215291772396930918818421782722234327853871794720083592545707452256805578777611943532339171659568385872505216242004963239583578706508207386578698987040871573640662206519995120321365385971493420563310134586124930514627087340918711395111363622197356624422893248872978330883319868345731506979439518789268356445169754869124734338726709688291965494138123509213226265010315787503457248663143933925229379499443346003666541081654479511630849092851023281370221890874927339104976685002888578799483021054644775708694893516075724635519972131931816536174874580522967521220232272009237700860202308041718555604145762408538031372272118206429950113964749272229887475070903863846527295615552164001350591418795059048193771348611475044861357753391359934002115806602434607738352583834247223191099897240687160086276815568426389014789085881323293434664014798819482432039899038459045201718772815973901949778862534096930307838211448648972632684498469076057890414923159273237960866180394993597585263575828636690281922370741689696850451413373456156511283634152774383967294751329758638235941515684613301616275335412615840763369212468368919650289744464281802473361118454883935321558084460154608392383470330116617425659300695170947386903116913287710927512079047641705183032952802611456085975904206539827055979317175743022426459527809632037426585171970427194069397341910671619309318345262406234673375672557793561832274000386437868454189194081200702841651542113561967617221553845045431382918306793673994553272546371406124633108949407644448264429241238698373403800158004646524031733321910353808239256577841275721924912733695075181033019758899549026871857659427954385903414782406798540212327617750533094182276398771058649793222774874057488020672324542560381174184577375532718093770043443375915043322344999796067095892845084715945481972817576021512897460697651081903268689292568374456251015917266369275513222790070355735782250191542250697437553343169715738091315812607619527365649772476524788692105548019489116195244177273366701133424395166054650361440632318199033107724820267256809096827634420719277385755797042477679281635032758446881944032782088304546302116121630095886049351276086490437733995813787168961894357955666846546213181806755879339783752224668704483225080236659285533276871504479306296853400608805213806264906001616435899550959027421372150094890945386271398620428226679902049201951379862328917832859260937587711327392382615081499881107939716470888271931831549143332210940406517034424128282745795147072075897562530089471991548249530269776272707986702853084572752681168442113929543226420002113129936989998822970430622549639632832776844437636030111755754901417278740796222066981568770186055998543724492298355437171469756398148797445244557571848987159596934141402593537766825399365880476632700573531983637727230268490730535006096683847095856611509257376803216895431167896026047286256076608357269282008011542486151983086309356607492248910704469253676744494190725789523267305946896797064767647945837331568003581157185038134609215894302091825686218402195766565999443694393724272733071361250977710434007624284218503443205635725402943238261485957452541572163983970512882643894286574695698267761073645220252260278480766919350098474506824353788588136231059543576893475361363980191718742085592324500431952818619233930837029152215916081086204637849931493411020795797328601055836332343891777116263732003929566972220500491728600750938815861198929117885708038607134436531015025876424315897781890983365011324306927031535036295502547210586096744121311884310222085942673137008221453790951027082172503293624597699515590776958798246543346731036611687334593046567214798645662863757007480016278926398156193279087876894106022624874396410842935756340392374603081705753311536252930693723360862583770137905544401226360054652862105414065630333925776544992174329631163738416413002669433203158206065373409586629697417127864233448788269926545971425540263444858926497997537258857092422151868934361494954167155494577480634902268852653189952592051084414194483972390023893431401385638304945228935030591761889423957924608504580234594385296283911736867108436662842772429426894227330407683175330669207006778627024409927639253715381870447876753926070414621857741046968692122859362490950846564743198109823232715667201464858713547966529723827106272768419999713040414048672637258700592567638631094640777803062014497838190308511955559153339918716351751696118044249316545701540100075643857988342490063714225174333798006050727256640332474884798480525220348877576953671827175098608344678326089966892765891461786338542918656276927875312896734087116961436139377061815756175854836037163748175281014067558887609509340814019060284671265209714797844080764922785105077653668891210293108224874638275120772988408949323541012895344213918423003669523779278144394643676920876169349344317031072924684611997234518041693533811424444302347283974231664227378371033616259233940006883107272821078306077236003710838925872069645662576262589534278986832409059412090414544539329128987453348959121716933300010006098242546717696322456259142242189048820040219414983075533234309664239275034783056389937410395648675944939088074534993383582546817611009725358389340682578189904830500388236705927028935912786448891861388621438338451050384674115246682433349677884537922432410898048975671474909447930894205405066990910375708594002004745762908657884347833025088374510824923135033825815279554209887494527887260043595299581980701475201969699965424052555930595035660502803043534144684417343332603249651886248557445204226630578981589717868377594817194815344699906026051300220677698234193550363683856097530855236407035774144976185650534676647616135350808734709188077998783426343864043551284876504780084097597695150357981443803326033236902239387458412771696377311596290703800290465514675829289417139544249056369392166563694643424029658980140094420535873097318689022929077949636365717972068909007726548940403154128359742121479390054264277724603275915969091504150745513023398576608275113687475808556380822363366541088941447380836476099955786033965795782416721061089396769120168823986500265690305839254347036966446446694585480483991298904718827907662720716377128914237222407584374734287219646958217255005115684775717399905230980017988290005384896564771215784467305990897377597736236937915370121492400899051437323186801244301241999727265887069139560240825484718019796494943307707172804573890370057220730337345574364802391205000413915979099969234183819779906600424282583591212787724871248360046797874600637351524417761490057038613432725088802124471806243669383849640762416482622135068177693322455888061926737067969068425024445195099255102244764995050874125295223069132962810366900896608727976875334787399561234826039428100047286255138379377855147545315571303626136069117500562168441464657217941831481740935777773517021202633074018707794977358837740839947814273519056115994613464865540816079101427752066003542693018264475857741635382524915857086277647786545515571946627108869851558552652670630277443457108242698403198377401121020942279349373974565472912271427323493301999544554307076404506251319528106235952492618877101226069853247317593440697012729625993179681239592167284740070001867592033023715147085667296567347718558746217115725913716726927169603405779725994258749526796702706098777911041320142364374127486832538314401664990803998428592463598569838043969150982735028300697001413315726686644251210165562620071396073098779412982738977964614962815720874695611578996811807034914463203854804516756600851558724015681044044164541611099272402340627902965809137476584025664982485810915825650728037717715022470233331028209317115853817019285317181142277977693830219130912020037434454282924025285327354952187140953629596275302963910475215016810074312108603956544545401973732761325527311524966750479028510283227086436113918585347739405857738556042895750386768244223489283180440706262235030752898805016746670853598031802645704025060389492488457780842584224407924511503542603584461299804356571483269027697790931871736931044701297075628097900169090126076289060285775218878406525711332957666665682226230435745852146894239305689570574151094463725030387530641447471604781924898707651789819481969088402766946218161156234515588543422570948118515730516943215765649693642039753388531580396027480186309656003577048257114403676230759925780645170088396260382667938064689419580934151511490843123876428437737945293455519135023405475413766458114030650665490164366478766095411458211643073963269431982869484381000327747475418385712012645964459863241857676665550112581648427374733968251227514207855315834815214543823667083289038492908992287822485005485797326382287896126925802609681836132608069660438184525837869619268898768839935372911485390144809675113109996424312263641617631915936372390585634009787003755962459801096279762193898255264865545232695276049697167581875747674330638534764186864036701609468557285433196446381857955325047984779281522517681670411077003968751968151142571095516902709984067147040409052712543035244540484996235797997177873150168308280986535792891244694712293986860500419294326584562487064398579772589529560271932480777654572165228153207106189775054001802855017378326469360624645914212917595284751366054546742660910731413324247760957308261447450109810647433087239324345794420915380855331318607409660131328898571861142838935066739479433797275285924373036668994771717343140081242357845215458103180773609189826100126285167301134630813449470337027632308523913433148260204055706265268228712927795437615886275867157384757243836636145084936560585084670791947537517357239557645725204794895338647092654729105214572042090439869336389628610173044606930702306289501343814019685811906125279219041165590160565876485270464434400855938455627151320500151448914021430852060375189222487491604683942425998841056904901458974783130969913740486191958179984869590006788034224391525632657193069209401237445276204825102470503770953033020352189637691742586425443208544968357062983802196249587309769563114179125668702085517994653288691472661109721920245735863192684754999571574864856110582574817716773159070973006383968579061014727823308618051132467673873778897863987449546409982861892560340377808146882510617274225132087336961162994096857083734748163972327724496744932870442778001693443792919684537134558059940190961855144347254190376680345940153021924514101713294381432605601978008520711184926365475577212515554218133419875113098912097335043479031040236358525624487611118379882773545702053343126391883253445917874469476316150645750635372847115372566238033345297718367110433190439635781720763463412584251983255027721986144061419633855125195404979316514802569465233206962272608471999377380968839576628287419579652436536729583430447087695258092952892980526278739500131472110309639624892454089872815069057122500117327372316345948135699093766544917404629333347733429642485421061890377084556070365742591805642545772628927567973198292686751289943963023215801381834995668990682826776606518956696879433714662685023147136741477624431237033863343975755618371197712969183033010554586075511006345977576739145195893378772262523788808058118743139272705530113369332623546847275871330327567350987607790004981045832604513603043920563777192042927615361542014396026154016413023003727807572317167591494318913056703933495888022315104606356867398839756049390598509836451492799710684063758466966037357339693471514739435850133253423899952691381222875399587921516008599473194251895844021982061741807471231785453479282859773529599950444798079713290499371008067686551201114177645175439710893432321102305040359004370673080001311654698930941794698931527776689333690129262850122151307004832215317735936884269883005394546420911015248842717095562138537329530500739031201845368501077311544610039533550969418140652592398731466414535577610946812838292614216104772974473607367371568389946084667696537418962938268974769745636651040700094826589973042179728127418599156667882698592601292292306110455346244265505707117702702505312984292727127073568031631622828567047456178412386561049965748995732764251880476514067877764662155889339607488597875959678116936004612323383158284796251361017570282400104777389874157596894128171961157476713585211719143852793546400426571192682127872714348892045802252236336861181390743747785129632026437992707407423609824060031354689542258018310536448197938179413363152077361604832398893233145871694737217050105394135365130942569098112644156623378347473245494007254028451548526458871593037139807600004299081121997510143543594500396876419790071753112261345733623180043030037096737058591879843898119115651068700780227084295645441657074060147710860929418710202115228469694840027902139175998272834570506613778029682952210686019190100384833536466064411595036710526495410269557557963813826964444963198592410568275457893467616602310734729670244381210042795629999585941986275762616026333164940634579148845136257489325762496521058252013381846682678169891221660923034672165183440167445315249536391740909537917086127284791630873185831018355609038041175731329372600672706400397953388374275922797027442632000673042171879123188250035173018939899448567282956735738197448896404554391394723254603128824915709562964492674940830006323180683121338826283007983943391752417087491078761275184687199545508199099091552174681663856177610783410487704928079204587312334486382835373820597654704008465798991050414613440656547656816303047659838425845297212730589646506995938545387886636529637242861643736274266902470917981365379710283160127562322704478754261132797253413945627300475766337522350646005503837628223771685593945421352235352318374371354894952860133121655102984153539568210543693871430210577727229914053767328286732157247422947264739161829890020536976072102486617819848355294632434466056773288609359514406007908063273023363092149725987298715486971590833240192347315844791203492866458386113756018264856327244640510712302065942434987661389981845943901235668030218540683946868321253172121116842769208268996495257207944207912672995644984319120045782193587246825806557253424787172253757890637314659730454111828994361285718159241156936008398257299284476472435196715075964158191334834971725343059578711775316383787204285767391191338540748836251212069177376896596175113643978348056832066103163824234572385620912183468538964280061830479039690961590418642697682341725674176531272727955389212107924701377889308171715660578639634333743288255041376114918332735461466574881408054722330532209805996017405402562484322610214711745063386812062064908186843343694032338158198500828125578767786776835836535918721398447398734705051945863413833949698005157045676997029074359912743619134508947204839771049214963255213946108729406855742303851266027331137225384833933248434709339793403721951666984080956214995634449672257252393972703981875584500275606874403532480635638777737013892153963190210766253094968276949217875459968361890235347446163552161338501083707773456418738779250818490021289863144234363922515301227164604872365028501599656343316949128660223984586022457389700695819939203334333380734349240554317825024114610723955257410431006860375813115516611322241939616699075304941202282442647289488863193434677589329816882252053768236691315866981778091313798387830170493739178171302959367169476103595310831216201933285823808637387239049711763137902046568949627791855492165713999642198994591846117254955814277207488921124255648916906104347611539996667008307501995712162670930736954375457106064892123534180260985637747599701045259910404570917798921201599219178251368342395520160162757894471376156536677534369642220936512653387246161506944111977211236777543850219248865038214985165079668587965916647237328186007674147875667512255489362484115054384306394057799065355680096518816386444744194005656796324721880659312898288436115068308217434162051006478024455285420994692476846791440029373947945523608556216008410803094336516093907746474768509457749414969229869361785029918278742748762482658521237327496090555967420792341440014904432514202822274806500100667662464695575777301652723701516220223007226528354475215206819905611040043120370542686072779236392637210159151879713372567519340936962730358687635776728719837956141141391923094779707910501841078634207687053778717674816411852017943167128982305687304652157606971010078586112271377511681130137561328392888436857052915494889905828072096270264814232966280412615256012308047316982084777324093133187794133854456491879731199168369876307836724275844758785158938966097562455923348092680317026729688595624601100218160407582156547086621119885103068601623220223425138380868863418226200311201259432667928076059308793839817162638551402339825499719605599761170893618990557538032616860962620892987949940729674193213236563876102243194367514696731974416871239256473162204380116200123874408440149004149295406614837401195495371305553094956628585657812561268926352910802780063165860551564664706733643079922746321909317362476757458855196067277491901997042889160269174608267866838127088636789300268112278602184786682288448365602325517420324149654708807373053760930014254884381159217185052279572089504855516688562759658251801688206559883551991634188586855596085778121619645720692015828299250869442950888527834802907209380263406883028748745020006818572699514609986105108477294700912401924991916382301400794179050738719907817966553986668617395746432217631722873119496678937685598381353821813210911575819764209341790241669450044180115545302970927214533522576128281223216687117310528147308157708223874038823985195017036777271564122795618898506063479223758979326397894004673873863840539716958625644267564179055218777016267125797010729359109894250903834400010765949679173145328051032941973653388693355985966562778129148206755097248973233286137190843236275681360527089025823491931108779074260376154580497781004526797049480937513524495925309736019267196448642898770887778274952395642230369153375394941525608017956868562023386771658532611808059095327577759305699299349620642343196539437471763924538790568125593592652366410126702981635722461561132992891610284658747933532305671632431171109599253723515960853229669472005423924965953680009357622795990934263993839917198241018585861442201675053955267390322206797240013652064337586122517945143841445429853204780450238336694737662068354493043012671216377575748769484154547174134788912267972520552263728394296860644555815186576197276683217614151249186538759120139108348516858941446284513159935221278491201194072625715294442909703135116672650022156772429041202526262425945892064787431407068982794479048568562659782973490528604081376743602833693462033132499475894075604138259190495130927572451310290110031133309624781125758497383712470116758726853595897092194823782051913458435462305661510655946267670168282194192338810297855780317336577082983534922429941191528009421965861037125276103096682798075009600391009642589095978220748717884138890105425714844012292847452091122143987588430492558477837349400562690577971953196001787522822184608994761794199979434932332519322220715852557488478661265743202201413468929746041133989350783271893736139646921671273551368168079109030539637756790543953626340723558133783563619344857822853904150639274741500481938363264805380117401976223776741834750470585467356381273898046460325214218211434880268064642106620019208976043371814328927735971300731770134513467587562501928203624583874691432066636046460184898119590472134758101851751376695668080594912634775967651559123403062939061780280638389653128559289263535451687986521455887825714092875114245315769938250593870850426294039749675462597680552945381838889419670910336733352375946203187687355964659985910403577260710449895483026762869868594590884644885830306557075348594047335456467991733016189516177712093818005216161545996321184957149212881805323702863797255899551732776975997633763387443413251000656679813051408413757161666769207367480948018622732956490709147491935663389111023182404143639989476829677592449254078459076712966505624493493809968028249864080656615150086605550987698455590302940097275027260426611691238820515412804829280539252850896330370083639677840079000775938696844524941091484255804537876940516255509924679840747927768374523424249703420186077821451289045062915657208188506159221258196872889552062182527520588870152922455664523123054377326536789951807168397441943815212992736228665919881809289443939914561329298656563097049929122519403546423113551176335012841820874782220851290815295384496836061728186450249811130349649660897894577779365954604419596875316772018503410991403913532612969381748900214853058539737737126683929626048377171874031855526447991327324672104914893697422637577124992887293741400541528633887182730820791190381211911143514038856446025549282981961011322503778870579736074471969930480625176000546269067162093391690944988013243021309653999284285006892474332678481833108610985130522390292738483314806802395880375702808297970296254600125489247748406071959082709053901034634367288429012177906566773816603122171155835090663875066600491268310137042478439978682314191757106830521119766758115688503263770988521219918484169558727240609631639751768590821386429363753744746830238918236225964880977457631489676325288642957270083422437635857173060842988225892595410208319703652745171410751152840816412082216519361587503004230214098316825185094692832143440620665994289370916322887825205583126711532702411562511520445377002310181074420441889272706682875381881295550872713157586465161457928834457499878395423880099825660616519799401497716247949151233772837784354428341935182188674969621726674180335771632967475965066142615293400055612327064777277980736136935117072102546840533709444983464056643895583678114605398720930326039257132420230833653655420660751666140180033959620368354797549253464584185841164962426598949067427534016995001598467080548951751173575450255542719744048973782607623728985384885616361399554386224427367461422622736416575004133841805189727703114471089827317070736714059645149583571985388767567428723549005703094210523476540919698149470023024811002746127045483056689954296536094006961792974612107521424762820838620934796587972790857808221207923577810419317519423780788866582092009561884113644696150038028002242323030577675354201925352038759686464010703460420127654348586722149428665874837138372282640403993586114256764821705168462479842377708282745376410061760852642143967617383188781189812124182636355072203609639256374395929369399916539938662527449822861194597612317609913634566933197052951760593293532074841106783420387900689600614849334719381579933816167374057940406395262662104789528953787402147876750695989652702826963613385532993807239203497960067060302110807512930317505212969600493037763873033607637213829896832208787110827472394658397283794822847149529195842461235235492784142603356600245338495537151199081339949329966427267009209104341711126746461525630034091810595230503226449920670705260694641561394650165311795964694204208692033090367365145535855924585337676406485025302511714698383855839174582556070206465647029516183031498984834323211829072312856924610822194110881959154475014169584756248715102454539719922295045156048654149054891366280291481068038052533720826921404876614838757706206910874026592061976767076235945011300598783658036274864644755544104323081491156430725818988390615315866103879582175399230152196346426566858830362705603830908378504034101988417456628039248560166810738825476433000393360994208390029615959491208562376343569048548781524550402643712297826330828869720236352126940293010535061305726393532772113833687810075803102011093068225921954964688777985708035402359895710496288137411956824491429260811439828958747533759324502651242876839905134183410034596074728599911018663819426197879936286332499130681328890707366328856471714738894312260627800572539731489019063023177978786017266256385432879985051849760605557424063370960971300532602308009780506286574378136716494211600305187743220616787547268614954344989611217408691876139482105034539878848727432031599892665837741754037826571981955966870160535368287752342440883028148799166720099731580221030717623029229293895219766420222886062039167933359288055241549387280568487597913935520693068796009974060232517890334333157569112633247186182863454535823024341750719581513789629223701813478758068403694013863482631585241359848310026970998039454161456523908138058160244492387435944814734475246902550317459439597637833422940054222727307122599039702169359208684970069169785898261727854876144521747218906231992574608120412206086026666121342354887580689708948735297059779231690271035820462311503463643658318146841901434574402009743771506902291816899022528763932558355077123957840832042640471297760829008598274022282021621923158059055692923042820588289954848738320093298223939105785218623285523244344881886057068499914532194154426801056239624575039022687611957881923412442710617273310886693298508437701259501164004248923007718799982825034715089286243014553771363359290538815691021959578195153883375466072522208693824352885110023655532660487571775378147069275551671162336415194093202008896720158236160930670982505297518496939770840789355221011312355841868112285389817867495435931885758066489704203098514976405646447131826458712806957727573418668339120198650835869145636782195795010447555698744362621102788006915575730149627453411641900037462401288366231344780081442687733778027072703691480153996986799734670503198075699409108929605341585584074801974953452508819772140007714218185500915574820262228025815435698663043274099027082245500980000845937751401816406755181454771909045066421087709252689293495442890339567519691638353003981537468547321782077060384628629161940973888726622941931203751142273096383697682739200280058847463898988121913047239108825986494382096321865986763477166872128137842680691542062310352004631849103756755700925663801403307221487901281018694079372777312680262001378032438306752915295246376805622848019023822152363222678225705413125952492881316018960913525455204756419322619320851015581969688507541464398916505851156218185728608707849430638156420128055282983444063440740570241316998669708990241951899025427092322606609711210438667666742655223939437487513793005372453378873796438558544692836914630815156596995705414329113483363620918743323850572142553541184549764810017493876854992334414182040424417953305014094816357911516845244953290494585647271353470011370720875173970341565557870945731229147721718532478799552648248511324392620144507569981553071644460791938036941050999801883148855904413267577542382610658386265064868910603864282167144700246088340782659979432700476594863264646864779742149507717851572984658471040356786734247899280073079602123211788385695016854863228812309640600012063665683526248961410108926650496998460894580631109417078175993574255165153321714474301805140649178706655793636253304361691353120033341902469223033091724334258613049624654095139255581524149701233426465350060162882466555352742499698713777812135703649103005370561163838441291290493410827515562680749202294485459683707274469025546585857675935082765333900736187218670829156589779637434947415958808150149957871710937055754606467021001210719276202956339381412359357841622770608784683391084447578434501549807201944116704338860059317847096508374811527014533943202648904383376319601096037195266813351672811337408093775930974092930543900670785348344630394652713713410841045103129065526545271434312728975336835295807463585062105368865833325234074436539974106680603770916221223100895414334053299197393173013287792819492976666051078319352850518490084572357179415311216439796932199404728490181781747878967804115134911604748050578785622150499904656727687142632878744160299589891011194655308558478646709551513960331099845811157501631219174777917166660910110763534604908183625637459425317955932654552570069826338112517942691634140058491162818278148986968213016625040438999399934889704262688935393282271828441126699322409963044130742357736636679422485206084865422944873079567992095216737033937262744168423221512211247467879656287469879309588149871591749281348740387574814321846704652481823427589029139068102027203383810182266077027741137173118548955666297531829742821866832213574203592213558237662700138059991842385725602446888148636120977979438479945791429257220933105362682684252257453279262822548766580519726413648014989318929733149698739320724598749461470214688524258562149542865239246465529064883464875578804290541495923866770123678376415932232718842958527114885258313970022217202126119881510771341489949855628271641736906921394705308384164698723955823094850502717370850096127438233690118618440537529484145198675346079248402300246217947654812359367730522324579405467614717773508751785490242902802077456289511335097321921434026992504751948711688207219726865985432090263671035249678168469828923947821301890746255939091542444044421773781026583804267848989234685478807159017803203226442430328182734507808765240250029577430162175218902569581545560337652163183247514309161883311916271558919393010295094769320440260075236333218996182033635732000516527025584637729327181134199865736562446851186883092589129770414993537532355513105201538585420351510976769827573806895162478603750932377181627053365059348873314925248373796925847022981680729871006105601538754886949994576408655882003460622878929741828908376226518140613560410698892519652907891608448513935706644363704284356201067824194354497599435554867347497405614454277371496639572183815273210027898026005692234452120421194505534052084890022388634401598398381785478178737974024148064764041634997967555434922203977041055153839051307022839474949008239765365887431897114489909209512874868140869817045134913299255723949549665370364948795134943770065538699230957584735595484629413577887347384582979707429206759004217375238027442688007834822125979835254584773766560683246758280556600231406253551415041495864449437069169250573806046457162266438664175202013529387687272259641765926339504802682719147236085413080567208883834587660786358301288278803330192615221416747001463815893124849481453766713469457055967737701073101965504448992538449606124881311247154958041450264952504349763488856951563088261288282023959076961222926207144885142450241750173217858641940950622004825448717782596208298668996145629490488743521092409110180898073640001173519810847148114518111600229771343037356556604047095039371469979020573351232071667297367052989553453222138489753451015663729648864741103325415217453023201938888024010636190412502808057065607058235766327296206272460935090282182360734915973909895561324078777659937399955675278150257071158259330765761394079980003727657891498529804153335028242858831568321249550689142126478703878517605788234890492419500209652119528360998080225490824552214568323816323729671520576106833849049164555826517234692662419691817518087153457274814338325302142094289545464941906912536343108874319791464561304513769070162086051806879802434197348328836875888902431955159110233861946750826181663338943208408324959374010845026338932418950499623576784416287965751036471107338074630755572040094862656695096149801811058720171043920637288413052436584895825396083863449410804912471729792370059249278835650354350930753397638796282894751890052928091205921430238627288504740940089977093803689308574099246061592154807767500653382321277437217252878127397797895198217637483423589148199811863087384961804845789017573616528734688857442654755269154300609725106305036797360271368000844391146627357243951639482495581557849807024920109031664837206173002031651347639784179652589162944380272305750132628813834030560635483033296000560867905069695772119488926724788875668594908779485863747364428516401055150392156713035072573659041128957605633135820904499453715070997617037569861681213320456070511623221116083125713714306279117746325399750418856669327967744481398240269781396852428108603324971339396290894057386991742466306897934368821762437664619023456370822286271843574356117485062452104049279176155080739600125484821839505094544217462708838570359946288567968536334468265179454941401102319973467438416573446004570138270187186578115662232985560418351332831782350895800897704646855066523095354027803987085277894403822287923285429808957875990056410359399020506650179920382639454102816773542671026012901733124014839903332565245122680317682429583313211445918299575259456497788741927396604215200289797794814648662952378951015531473188207877680849676894190890772383951227691098380464210870669398306748915269915067541282529619895922331468458882511022929260585158614863153059727951894032694540472884395230644215814610881736730606521954728231552043008170281557660151906750302474739588241393101895359057336815856838203793384037865711532697696235842262852916478997133741863130671440749719889921346516855295396373885308049975155935700029783141843975165014700670892304611060432061889420433679653946293673229038983517604007837858395492415357251508825341018579939277885214605575038530492021082825857644765181282554140810930240483146396791824033104251083372081515573704952227996654408932617540560271736112877288132804019867059986935375562498066622382374895447819659575095880941828353880175632677493950387402361250729847289739524271506907366340913928670317016706022044377444868996119248058383124381712543950376277158850529422241698572974243095608537353409949486460229474891869533544665913250084641690165180562222561510929380415848848471712527651743710494519834081395405978371182378601885849588454042014719150763353249569227316918112409420238571629407502114064638217021519735438170971886724733271809140616402897789710183019793864276864194680572150153393381178073884676302028980808675505549220748436534727079661304150706864784781744738850119447794310454477214179104053019702452348122727740399424441963003792280730458089532920915291260845733055975396950237048567871921444311223567440125390081068205436662424881037795165996301762578178186991397963041603464108160084782727405776548309581615711411945854187147042899875813195783750424050647005330787969748673272262747049290160340086551074743639796328099744163984499711226462613388956245770860330724135004464100737580078473678902925427709700658421711713839479715782598826756049687008669322705562766626075090774647766654894341515120670895745345538659475757714896746873828876379466020676725712459843803138107182067165752692431131970311695509991751731869470193714934708175737051127325291286859825093027216672335059928510702024392940049898588057213273533074863341047872187765575826344388831870411004915827178684060537772825362986822760300022058317360292244734330206515929941596017068957232666262824011244613405591388042147075056551923272311017922139844117814311334880574851908590379740629950810858191624109628188517857813199557307289721412502963698322180237904238783658085237386095366604218063109341762665741144980163269440468859921943836038285373422367050935887324995527822434108860209898654618165256151921612056312859757635355905941549003018151583531820881340651562450977648976584536950746964204808356694522995705373721332304965848152263352153812294314024887865465535436923069050057552811196263338694225556696014871864009536125004903437112045298767331945147075345010300250920526056355317912965002829548286738464544113836142957794822419762979606537578733258400359724000583214614964264617451560064867215140910504824352817655034252801859417334543514179753194412378391610989700610905888591419166141830010325149117178377337602752149344206845631949068325219696214596866293668127798866719660244202435659708483556041766090781797203320362670567808291562186161508431055233295387676499896976295958576572594287213581995006517880951148390051358538575551163241151214994870687329039032310152864822181779649038905601180163778704145799704614815956041385110129717449789508011487300851234200061957917674386510610336526245543638980655552290763023317182064818267632457031574337737731063023610806873831727403674316191885879457398946628114325369629594499515337997158846385577574683638971963021372651974250702819226880950451649421752209519778857017231900966883643687669684309764874858752432820447873037065447710513003960163671879773861014217679885084658749280119216463716190379213329569552177335617541128931780836166352296549282296030747434704589546215394834065435780801737576344810373966129863735350847139296137775736030660253509001811986657729112411909686523163841651226361916545793015930786538245255624534076978053199248461191025990408016603987196699001800761978286425415637358004476847004281136104563373297038917833623719303015005173919979157360499222039553880522918098003151334981753624232457933430192549802410824082142845340251412927316204039362349624781893965310412179827306090700515664047874207840068551196010968538313485454737076362808671569797091122970849127783059196119038020519961798532394650378876110651527577263385061151810330710090227785113663768194566569318148039384202483065714924532646060217973632298989249100452448368022906178146661162118503022124735631451938200407740284876156171023688209691601826395683459880389570575390712401940876161824893998253677224200309195159590468277609046181101784432891686634308133041002364867021569002415076644468283235190410815012314502640763372453878131371397569973061225608955394212148018148655005850143448272074442564420924194215922190690645092195157451101647353670124383260350655911428470062634234198089798428273826325419285027143086338686425401120007853706023948848462734606446507916910625488873673566753103003784266881174428911478864137436118070162879319780598295722690296453093969661438016405489777863428350270887061777983108600471786680995034927670404000845151435206594185249858971892065899829737830930422381783918238399671457650645645442405124474662075918607522301242134559093762498676098119686430738069103773696391465511477285021119145075152539012329070032169595565067699290162192891346610226938059142623700331653298768054151826275145895132218518090609508726017423436438281804515967121789617358742566432040033975894810945800085077402112190030642997739545598011477391016894881500968493846829575129835989096355158328537001977075113856988217281096482503520975451369348309356029476923535845083057759857129860007014758843004304279705785905098699717304141818204639320141325712849820972291485509989423820847381843518701380597241009423624743053648115106404507791682691060380836371826460249932033395795977723285632002860440189478004096164848949510108048084792528682594165401486465492446688676849436761653938381906494241147598333101400077697022056953746154792333954267675094563865786003519401959475723212703309996159551160230685760834609112147418764165714233565571087136732782100164574603721269737116599932290857670769763104661379315240033942524820428229245846956415995170590421377262260097624750167552200873937240898872827724434971763717133106136862863078443855802045867003681023459170141095516902161345372397773970277307696360526479775787144246824106959983590991846038301678133275093205911345888846469113825501914831413036785561319338066241006828736523038766474477465616705203777929563538535401997305936458472196435470953228944834716923311627873577586407945983679140586458475385524286838474164154978923792825100804088825437802764658565401335226865935013270032264443111686168166999943922250299797014727013328197759074647285705335880134141720723319780965324463580443230514854018538523836774509935846367675282350477969267093146510672742508337054771153423948380300179552076545482413681301442428851233366502217243946826402603616629963527414890881408787497027254724588458244166424834875191939808355493234347320306505080627064521224835151097461327807294371837773364170124633769863553296812046058296178787626400336406127987811875837620985280379495124824436714883584664095426903249875068239538041391578358514040147500574579244887224523435998891555197986238724078388583352955705270095963244499106190313785182441757376442979218885624551219106178435212555834982558849531414281330234066133609715614413691407959030814063496487973014970853556440121099266763604327891360225837063529373995785009289613533208437218627944134993111742991110198307995550025438132961408786857771905534985696133411571997473077933843382738664140318641815271801079295240259006917375077100119682334318170069355876580598807684362882069995827699994381109291932136445044112039662246714827874381950069349020979238446743653953610417035683737243596900675398857267647093073163565536744530378359985368642809319460253726536093374662202213303669205758146497361028065916730633275219026500847876226083847381331192444008165678000032219872578792795480949201512214227251308963381250592104599334650151297771201095371597139864182901062670935323522722338032841018241375691230376402080337488065381638492186347691100148441148615877977143108542332782698852324628421200223485949231447041410272669387274452553442924878189069990646884478600813735137724303685730988612571497688566684507476917560572703801778157277783875282557865086129668226897903866599276090826611885369240926942908895089432081276392372094003198299876546706773051176399311318402717762160308247104656411446331242151546502283160417014033039561155118418967277699097972623229165394709943519495935282208532946061956075684806355576378610858582364269697853165370240543353683211082951747694690343466321486336348778838249897200884620856035442792441650139162345780599067921582725429850704656349999849597337829047080071287795390871251610658293427762481528523432653391669386483009312613896717895924213042877382384357904957605918327983476599746859513798679740446690799986462054690725077011652173615324095042138455740440782609943581620712317950926168625113069420995558900428841531705333019476437737353761430410039541591603720942322150833346367322281591413034165017490903135896009014423035438946968395686982795848609595326010092337487203100074982584130195818905347456570732609760128662203959722865834302584338418089031434610532724928991550462684773577903713471453565307139754650859713416471733254173046835982403331202434795033984390886224535126175909979470983154911066074585256504712337473035393588019692710727519513139998658093019206727297885274628989747961228971395181901206185709446025972161182257551947512778500213260163591328304739168221036018941020839199445527745682624107420583545676225344011013322094532362213784182997710601512933537349081988780903120031714004449644660096886502045026158694419269360103512826973216818505032666990169749100816420028634638403374815437656841546845986964795615131070814318200608608944821592943338753004219238139249142688765598888816755947994053327984930453836770868707537352578825770659452296470117858662359435524435584023207705765350209668749324219830509726641670708334011299791915790513962668749540095895490886937561727538916904425687543762655122358162928706771397105982357983797299645919092197000793045668777380681487701109644921595624011912723826368973425861686117622872471789798526487372024611857711586021258429465492680917274555656635885693505849278413966067143479142047109446364095529971188024673704584794398861834930082259928445088574753682824936435819771391061368247621274498225848752482624929361376542114642241187074624032263426604942092135029729480941778915646997423161158653446608012172390024824634316289475391537643585892532429590957799411577458944612563165834354387912198120210683399497628545391284745260207337341502651073499974204282309593374935470013645080047205539458295923626796881050714307514284189747987745756534949362246991837981971197064485070090477587686990413129258370218329144092336018610439613858470698150584099843598064856699539430206379075901670499483128486967183583710361207138396284574460510796397848466394607448454541108105959679117363972004946038533159926376840138124791374152557682291019511899937075299605270706575077806317509626955540866304312961425470174050502783887504905957108845599624582855484903514554339163872562057881444645389378219638917931854778351484439775973590172843540325177694388585963879403168051246682600843541813140062438662128725251568507273241141303097803975476994985755575105827446257116591391281815491956675644395622333120102971684245783571643140915417523737240266587798493722379040189164863094129262448928517653034127347444887233490101920150889546572015536723028347991625342904844941016696020921445839793183679267228326128115481950505045389832434271806847716976146107572006109042315878792130531672615662441761784246293541374853886799052418663242785335404295870776609856424169291411792212366150005418749861729036477386002891462505899605800985325764847147181820997019442586985417578292088982237508160750429689950898688942329110904012589381662967137039274015553080576305429502752808163498018034029170568727664972245079481898008841154373561471429133900749939518664194830314986378754619562356281357309589738282955096239312835538722319684027882923212189631028665059780621598417064691471679619162871737318390005351614951131093666709492653065799835931121591873373080013614771278481554193278789599093740362834093370688256707037554083053646132228437042122695581462315306745016927902468439124836248427729281875219117300409474119162962615506134213031744541984991406229528770367699643541047290295170150573855035628073697178514482037674827398249151636425665390881776615876912776346760485089708919090749340825274286169791034664764534769982305614739975867733164825549604639779906523340792897111818530063906203847565948084472068806324619373747345126676957788798386628113896740898210062748969214784149658450049947646995699990906153097097521801871753372203408903606443671354227941283734588217196923332698401151217619066808576244646389858591103111212631664484554924569117016819479311748925877781987167186123486268826837837059706499627133878314308622690829545223635610735229605496307329977517373206548097852883527985393305952274905233834309177035594202332665787393648601922822428834662345695753620231881203547748909666004326433382250193102506173919638523565341730662258204396286999693095103390016481216748311938187328225539613432665982333031936563500058078862547049844761864779850342005387280689576466582277133812596244433550831745868408123823951419149191892506784788401441367081962139607818228947772137652927756634025818378871295366849822121047178599390452914419604053477777571003370644801557619909202613596207893717054236083820033148434015211652112853121304674079333050993925879481730010122083268391376170624448251117771843612049523330851722537896591115556405837107807113767189342970561941935625372039792529177023537809771183151725778245462828675071631349755282120175099853804232180847875104513446432761233242544498370154330016244085638747692901297862040743262553185174676765118224243813171041995137503022433206798982684128694212068513227319280710136822102799656718644924182104226176379595364462718641029333599391814417420084292462207068344788281811134267623278400009225988980449743271705538833339480566143364366129796062320826969277555757008795791735945399978980635827963078728540716928692936601513695506185978196062650756163886164763513040061822803793320444736336380239077689392298509087935454891054426440845320431010206863917823350942946471303514279172643510505092011302971471840583997202476518814873658559833361200231540546923833656634057897920841105056836435511838860895052195309341541372785773176555116152869951275194417368318800082624767574608311245874260624462141285041389714167493880995232163291572818301354568752870480864603702567021680191997614873301870147803579700602212071623724301128829051269510335089716583397549022590909960333053317561063209896837242797681220888308583068459495957078711684861843657029422596969122024606079790341109525477260605555978106449227313498125961482633941802892461517516003112504324883794628721830116951080962143020053018819278274100824350514795819472074897416351530810578166722255764917292139249292299662850112576890338362407170117891839669628099066876944100447252699469750185881167872486440502181237610808876346170667993354611892357839381650810461430853350931074256119139247522273220661261305576598102039389996015155019605554757948664798573005389622342432523304801956554016713221196936557215907812858324289707361987706081497839153813809298686839770711823657183692023257127861520733664244456332027051396099799171500329684465102920583336505399456877553830693191390048428563012685354791872157328887228483899717980710289723652683045974413183371129849737817860258730844587340312070777590868835650508561371343310661133698640124254094978948101892720720114059687401003997990165249601258605153817586103456618991733670298499357961248315000935709410112111202787960567702540666273656138813522518841757419376128490556130569372680977165971851716317513596700463874499795682930513027570636762202898879583297109519747155190684119820562015713280430213973066835203266874087822681641688819383110063325237904786057648017920350016577488639634333774019559679198964665143800994677615707768987944939188489348709954304499353347590992157285554258067461082489944487509968385299459566295213615853364779221800862094273517077179751671271080993391435785834091453626442962168627775102903188636749297636052947204549634948110681433792048052256445951175767245515054555497777176016617050020836140642974083214341453624271831055766159728118739842021422176538814615547120084608177323251687655643165769239932014176139330496773523763405073873877828882377778539919005840484350170206373372372213541222574987634579609236198022091145836869106987348699467047001641625557070999732804398871768710808564334093659857680370112530887165159391691224484877572566200658161368460258652212630871632849861383618763706326010443661158299304396006581357749942974249568534806520486152817427582105001413476493903608221187290978770127513550659808140348539490291749196122968605570030342270663093904217625877724484948863319696490995023697285251651896965812585122666507293032815268646229447230211998088624825025219937332706281113399424778360261656011639310345800909897767434176145177226500056629770712906989037787355453479514221945246255358774557145792514068109761310249999347481262484712202871317052415759108338888270801642582684979039006791765500321541180297159923942004601972770922076782231192042518827521667754694183116681293231194385947113671329034732719756357093495482698525531177528499284507989916198460203342489443665875115414859227455366036675608594436573256927760255205334218839761220797672514813967442879161400499476372481406152155101741296584844949050002588841071066472197136018954295086586316612433420556123529221822665674796546836131891034641784227669854180468011882444740433198513911819215973181196969541702608690032318700653902641125124423181188492437846315111566002437929362871400957211382257453148387609614313035820308743432714634533587413927960006785345047998681837230709341395213970291246346826706661116173569306318955193748710200646326209927317976750060978580766414759416395278812189908162589275351779372095177719596412316797764424307845694313804572522843445553586664547264142169847671419267831733221628010689459406106792440400414712544279616759172760942394448654106985877984199754484545668235254613635348642719196102395917750479256459248033256803568421389299163733579034627553105414269441787799361285943991396367767920169878543426868947009589803321749133648378479846648313063091671147646394859900522729253023433950948950287797291056496973614742416356609653535166237302840211302332418870774686240914839078753188339450214074451165717863786822731265018746412073771289043018147904085994345120291241276762089943442856325159554169179611127969500432356815118714827223451549759910004909854492144003850541410717047300176740643976489974140382172590438345049985516168786028626292499781338264108522379822902754225775809980670181112814538208172305082688903596635407754856211002858749538629651072215553459439452437212083990287062579426602784704167754930662513030030588576729408719568062719446717658624708396539691370877862948487095091608896742879341498060283988008213243769650252374857451636308497337626345794857078952872820236744290773105571742580393140587587077710241240921540846993222086790762853641066358964070647149864477867929681190518540627297013219194537047752301099422642277880085868859998241935521363336285621347152141797905693606404440127305368123091786328060207532620264599129239457525004278895309155805997852689521451518334906610619196104925137430622350782134756951658720045871174188314167304028543516072721402081820402640497131181604864134780152688667643883554442393500143540416915235407559904756735057372433514881795090239620434841571049375493678220134756508397684252970288520283057327266463432944310259908673849363958613939230497761541320664383107292475190906252397813449543217843009353516390742888679176944160590297403462819137221842534272978328208711262908783245885935882199377874636268957774734613529981185746373872685652645204830904768436335874109172228489349551928033753258417053139005949390590001667703536943588449547449882435945377259339856955777290846572780051188613594129633017736147072046961300552536404018432172324895902440600954441046033393695218066904704030784821928014732768078568390868388233921667820354410697470804254425788173994241248345303508226578215986691020908643643297514561143551016791896937863736191805173336096160279660576265722021471477083451765875034709755043584369262238281120076967292322269586785876852184315882929656262209000716121010866283875227440062338136496925341273543382681519760793980313556838667833691543129985078317356221986291585564839008945808000688606791028370725721630452670669551937135276695031740211296866118862047076843355804334688913421115343632411611773793991713962263972293683249028942580396455708064396922358162596934937781229346043057326500996297950693316644695545723953036612651635607986863860507220708792545745395286407410361480117508264556880848232246854038594188584151349918920842413277831333723807494112850169464751166763799721342186854375451737917232489326989019315387704419317639134284795326915183433862815781095411929522166860200795104558078744120404729951506033906631782126615215683578189000570565972832556339942477334979794864692635014851073220424149219046569886487815832935671997470845060335708354391839507097706345247802309025462987599959881323911104347231575083602370665404727583558036331064270867195799287713199524182775904484467185312075020351779371456400527354066154829378233145187652921738951290341095549543731220959261759319008624327067940139049853474126323142576051313190012331211826568886179028085300750129411244895530301537499565461071416533530583284296471419197392579223278537530229083358090927449088715249541303374809828168872436672255606488440904539727029140130552990214529377808829362592870533504854557387603265943913446363848324450479296159081796016032415289069127816665314304426048310257432840848854571594957764782573681907691976260169215703039489093786227108800587486220439082557272487280275452449963417916833803909080406117192439398400649516922153547437330259651587199652346235103989334704682771528263611396463823764429037402185333158382535918218538960795526730691695855882259958713919254031519009311115908276821278156940247240288810691435631819500102781340601202849311794726857431005874527931359687472135392557989963709513588361820394401667419267835231505338198233920125117456427176948830939903574563140664644644009807754164740012822678323737510001384304617707044485323528220527800309882696404142217474071856738362815499343155938662575593663791273889306001231553452920020899078231674840913347615606006675668075401152736771388079297115990110373446444093132389935029423175052694114699479048787113945779779263997149449532892421088496809389728386163816018467575787288276048955528272460757225859800321289911430137258473765132475466918931266728692365208755024096578420733589056051541212913314062756165725343898151672542369937610846744001127378463108812772193587300117540513823102479605909598941385891533853276520567530606757510825061751577368167442209424283980718007234116686320074266986161265956902751976519052882521797773459437305803105119983012608005327381284199322772541064039000238496333889956096518351196004017039577159055110207389732869258142736419714874994915004492444477038256896857410608224064667506677842463222426231387699926873948563810717925757561346031725597355583685157372483226955073633013274218986446500245789121525607950943410805305140708119454367726312927303181027851520514042416619111334138777794890468636074747556154486488203858076248731230511455706888739893109571693852481905748937459478211749754322983110252837116040453982195958796890788088118067420335586129345938760645907903166673695183759050018088813966030512884756614063338379367753608391361550887513120648081509292779097599606038424247635918953856964189095158512027471090130444338315458481454916977498280736979842634095270228739954382784173061291381588345909550233329404745331282688876831198415974083126002325535035063713146423786568280748412563266962204068048345627254316570136715138446662033918146817750713876515187536237127823397086797785956889841250389680803433717680710309970002797613713409768128927018076423644103559186849448985348978937395971154190590171460529703829662199751799630255938641171290958678610777647285226856096730501907532177363209151192046999004152960914060809889121656665334321487507320765579650778196083437564545185742429733501936917387373406976081412368203483262062491619483557297628365256834849762968872571945564112666355281271884923583931267548780829749507541417703651691645920361518524467051725410848248000621092792877455915363030650567112929351931425180386222436195229207112671359226700934690105078929466252571666889997324882769322915816295386938173853906523281003831381232931404115035327886707130360484118994491899628406547626151040774009770467745669691851726050076220450953547474243891218853962651538829673738375251109186109601041172028379896171633059869589634071194210208113387768022749785888945956573137963228017014289759472330665968013982856790445193925309399688841713606155945202298546571068097391036203676814350254135468497221485861661016599884352424635084702497920892279622330640373095181202641430499541208696861192370720914925984002303389412791386548731321291316850708372359327186511126538114183178071533175431748591981920009811611149098614265521896456690699854003652319573535505327894146327002225292865904827936552717524473389142433384960613807039699841017413112511657810245940715113834054162770564333680071174234769118673709850349587381847882322022616333376143701431646012146767483075462116012796009924662564048542481257881390017036342774272848336711891412533826243186181138520337799917239020421818617736300968645763752959714223912815935171376880763624432457886552163375575647698687922314338911196989196338419686968027945424206270056519555147421496481384561728408398473939374894506820664354162525393495427655369483895100217126003058513602028797623445346352397544167345760268032504994488256441866407120194664257013467045238866228451174122981656569176410580475205943973139210052294958665527050513933684870775970045051541182602251801667207515341663644613334424601392818812331698219413958004277255652833535245421560062957913404220310325853510413640705125403660935186907297439656272409072399628300158993736675609991030315531917456564297966503580790288552956649425126523270085660590401593113599825998316269761749450828104195666956042029732144499885971331141803615540775225004428741591897930545582820406767807372091913956112756108150027365999193543571946189347556584216853388837825055103209204747362961027104955926387822235122114606370087434209247549564104013168435555355943092966242056108135913948311345472287440910412798615919050366858756628778232328906207833243254917168905546909084161219368541834176570189397449432031297000921574769583398681358096786119319054414783775923772962560219011497525098957572588838496858258092838114920188359224690344866670234136831705056519160382952120285119818978806364433687303424660773303203126768424425098862576585985481783865099902450074734200732985727083305264855534746249412195682130411400076595939481639657282087757058732565814680165327600657494885725477480117550095715756891549735700319154796430610890209126206548532292153886110399172331524024256297000830613056877895659609040066457199616273193291484119235901784608993498344918942532469343634996444014947413027928595163700450952096648576517324476801961884010161962087337908745642650922973120072831808684109273731549467400048784209498034404754662362332695709439484907399505600261664512903140936331051151555066569100545973450307819825714612503841577618342998839636652733204016008088294477892776726785931398981517305467087918839916399260739208686000058567000560174631150843639264340498379641455394477564178943248609962978977906474935755634637613666507035914389219447928866400941782742906348843517329508572718141845496249820594541500667271357669207132571304745320976131212739665135926181607283412386655749303969915104558729602266325521158760517960794027658348150238670483895377317313308817268773301971819505585754493809970890639459246572504521885008851906606797406392951358581546062974151841043896295687227772181326630577967625952368557918277548099388430833153697751966371845403923510787837815456322704856959675605225598967673318239236043642670762645842001232583001926514828357529701708277077307910366152163362554420321982498709966347858112292232408812198763977694591971036860003287222487872240362487257927064709567212420215535987239502959994858575700718463223178132046388590216237203077483079561021176646322566146661247774956583256709473332228804105666804911946988111199446229513736410036022406527354594495393841921676441631441520903925824223462122383635920671080506166545172831591972299215907154492562346445364572506171201849387350428328565422761470830302518890068370404823585386805131944365452427725309516687022784495936508363131588456107153467320542023532923720277818981285716870827342760632485733102159495828713011904156106816177240161156596577252576529892453623768784533018183668250600298444573730831301449803593592853499454440459787443359408619571873413058672968086599945235807465211108246194932545538409122857227180601246743157934275005579465367865349873391344528938864692362433579059783042767272377213432290022923063075087332570637227245659579687566907921470339055432769389795614160120183695329150342254558537284622607454205655017067515327853651824602882434632778230637663070727114005726359432144310488970544029600062743248670972629774685835755615709146420754450672129661798986512617461356308264814231526945632654875531556538235794005226486592276269504019516408197691808852328814361871960933533157037081344966115545949264710266695069937188640269980821245155657315494286332007996831539576784727654912827762055865165173971494292312912969870161736938142029533084886574556493257060604711905349633556999394923998823077647060118324495491041973411179115721730002245675984626425097592354611043181937903680916969952893902532246573484407914595410982090310745890623898052935603965774875562571734506640003887808945542387943037300714930968169921142272704163271477435382450183871750795494030933365517919904114188170935127690536243355759659563965164143338086404672041893215921206151517418870661435044636613421814520669283063940595829978381729585584246523032191852277725627380221711815185321933004213371288787055464349387869819825424200177452040106874755763112472472533504344541129219733186603949502955652293697793447000751700178333870832039640247315473246412532290441435735291849284043440347843403332945568560795702165508239469831960740362874909793150845928130266920701969685587772960457152879100676687545435007422062094428084672477043989026850089267879493940319736871070483236535112561370470673642216882215875687846797683727851662162857506337639174861259277700033681706160337857276016282547010853695386525330995975047018065985886327574152533294108545412384413385624301700386345098546217768897091393699085503869341861831256400101792694792298489452799841547470271107884311795851357730808837208914455695309238596950574622373122895202854851172863019019009211551070500208445222032468071914140294620380657994708791252060377014501846302280519698703330676227060582559613844341873365384133811782100412464903631179947737318195547609953429766564673589869470857450068248812629876529406294053968589713991796256478761211992537251761880058685427312228793639985212129313489901442641747147683629496869103517669147777110702774361171923109841986594277199353944730465680287609083863498341878335662998557420170463244959205031635637564215947711300651634961308334721806170126877927989290363384601835144400105223690404963279470669728757861290572675650385553619617272688853838906215157166063790034550369948867240258411404543807115625915299650812916758338381315998107070159980739546296809445720451762118409409728011248525511673051031028258737085333021854071309090792853796195975060105077173470782600397071674396223495600305114947295278987660026133010280774854556924410615254808727551155392428786084626597627736691070153358619956760849479981617306802548071517935302044580387001991092256623639856684575844165893351217829746374059066290890097472980383246952698469002299759844805482475553818590795107243168221082103755284706030996437429642554339924220437717389616688389218219982155580268835293672608515319717700897182178487745208090400244784021657298554525131414032924987055424627336054072616548990573933504147596854819591133087238506321796707946763660111305496613260733943019826300988677085052649024216656699695762709202057601841901480600151856901940302062088039169449447928809099372402093646566492801066113386338422565946461556762256550458308566118015864103994140837484912845580142701912988072485838703864582836454272201694142988102535633558069678587163469898923655448645966480832398965689781507832985548260843171015233375510358185925868515579187333438624605478708138935595320722599074612237587126458669647048377032215606165476728331306790089600199405951631074769085116225563770527745756782503484947746127994338531590787891636002441273649791120437543412411287768043568608644441262267373859466398671566493681159932529398771338444228277429998240757400271557367223884233726775242108471066092976981074717988241610177349718128594480916690626173127139477096414604706144675060862105780350133563703656841980526788393386658309143459791681384349892044645454378921455274517326108697755364878817883839241584836407139285163951931042315135777628104121835341191443034299190784995456074428419312072784872822432617537481283535489317849368357174731662448817866195224924139038603418667912237646903032069664890435530430138754715826571600179554459385839957576804902753647399680738403267547854369420185397215475511238334460949526087138066748879088503410603243667619738713362218179464305747825644565609689598289329904429012236659979563922012634492216495589034050612377105144896885753455884325031513376459896227685083900149485731342533870988319222102874205117419766403043323104838042090859727397941475622655758550191642746142332408607989639164362518511478983791788232381756789629056098322818677496127100164133827643317105083441876297756523211656160517150651127806067460424028184055127664088971444548679704575107570598832500859287664946004507107753684132163138371817951642968864799124862036305274832651282061951997999386741514404051290926054262432062527021239485365829144734034916227809985087688638535432182589863581020008196598103421993323450475541540271201580877713110136672009235036830381918736364960361296634703744925058143498074028740289258253281437056871369508107856589755907336489298340161750793261655383335424147242962652599240407700395224248469715097751706910600120123905113916613165740094337481715188401419892383186553803732797666755529934566190641179414226954982446711500186861679265430920275024116677307907372086895587528576030588239394880052883132670648325518652729043819234958463190845827429535180885351354586542789328194087753594512765777576211821904845709623989294794821944912876651508576731685207203283411687739583926416186266178948327510807652810029973382286487272799111888618951672550273896362372040124326526728675328312019979399593732633248883180285196239259861754258823130890040773999810319069950267220900877097828397672416995271204743867030372783023525709763834821735928621356367216037596100433353599995720317013434819829700094428693546670261717974547719447372317062890393608202024965825520329241665764720699318735486274423553461067491548319080685315354121450828904585893763801237179179997864353261848688769931375613590931370514399273964740399656240506634417279180942554855230335191266836023216899886614150260520730123014835259799048849637482008443836456275333436614616495754296097660643835211225463380074812953846564006526815198840980035990048877543875475489309544388670572168804952774278311963017328171115094079517818956438534799392193220991394645410670724195633896000788597297578925051087047495919646934593862386074276417366924666370692470078294109157076515502200029881358697764842302763245272188779855808372860808244552958251570124489858522797539392835521029851248341568018603940833729716193062736905993862899521169097961163272040777151363988543379721283330248105044893592351649776403622907959181280828092383086627351503989391267208382525539459465875201293947899298161049654882415635698829546979450816478424079291536477044848770246512788401674600469321913977905721700032940992021647311464793896153270299703903146168848236236412509980896209126877291570467765530545924227371408300164715146775854087447024058620278365754812291966523555591640146028741036056963083712213596432607348875556593388067701242271787024460280441444229607041342601056525902312989508802325657694394820380227201521873172989129008419753655081364282492943066215209652735701817985573034588414177925703665007334531000329493008505171852836800212065196282217765367197256998770988958733480322653144336454058606422346573807277251709447772083778069533002498278299140248308515202498315180024734735081952769842001414397187427226706913388877627857140869392525187684030697211961459854410166978730124669061468238356644671926668121846143258992358471205087673090132385728110751409954696366604404246017936184743117686068196348029017865075130624125323901729795123486337164001247826217963034454599433424376913421212573980965546354699869987637146711049833975771910559280846940539647997720424545528276146432990311663995709791460127405367454995703058394442283266862001740889677458252722623895027242548288674188792004442728662508236766152895143748456024091619965245951132181106395902099795466776304426397702433611502928244764549802966969056578588178950013727450288688878186908565779467254235655974399210705257815366422434437140083434524513979196436902638193337369909360570829574951722295144093014849275899446700367920272585245094383450551627039961188237718441680291312330267693459782105749844835647575478903761857124611765798354206040636520177409110248962196076769304852624424491866161629769336988265323334953349569324569163605598751563270752374565788941183720297989566504519880860783910563965092291806054205972792455699206095771919253924708267382405766726528781980049357746366648509310015789852850329677070427298036359411758454964891332831997046755345238271621448884571072398031497350181237992850352023595698502968142079528297857886137214101758652244124394772988641655931882493206978453438399594971539915516459047072875189555852522031539724208823658658946267160613151923701911096441284934078288847583845398339010420840405394474660293708957260590186259497915359596784600100387360918525830404390040206155988700858247141495108104533672901442186840701457626185011154768807661506250381146088133256570339535975840917160689983526600381958480419562013000606480020730139565650518070635195807195965417635454991275578490622328995157555906611765934576002667623004739712133041593981115459501640909496914057181753707645058635002529857807048735059972765461490363633764693785533720188680893305263122762439253090960921477405966052986078683014822088594700722478262121613260002391766796960132680163869844647994329028447804190630577053260721129472428059585051845706924201604182909446170620307331189335637103584293694971099854539241417912793917300455107849858817980380004418359679479272503074512009860792846427875579393701786936594578022310648446735960533652278798047916644757489881360582686487753225566053988019560653184007843180787486907026129037043140548411804789785946290435240083849011680695205938560634414780392504864717771079625158177759296185213455997031232654467069556207309937462751785785546400503129430418448471401954901020013801965235580943044396843203476310308650324128321081747419305718127259594912479041237968464998930235182582720331916732788944429974208914430378793904224355663013322236321635356428262427471410846428337440652794805347266922822105074586964592609882309019155955979204599533400265002730572566401795336094476480493025667585972764869719150651148920174967807934291554516653947924146107222401620360558146689359700369164243781020903045567858037904166658739288221052925604837999220971163672659244479951540197613840254960921469147414258390068930009989170298874493833005669662483305638572306927083389003588569854661112408136645897759954735765315555712595553903656564135001960286159244614760595225832408913926507718017735821138531890213250678499676311467798170009648840857759537290632677392086451243020127877046440923618862137163511015612497977920860213650549621605232539246444953570550416463997813823289229119456035669445511916753199439832225401181039518561688737924548561303747538267689216731653849638225003590777046808204125962746155663241576180353258284739277022287319563294516414888898038467802191544200142697199847976408919317937191002373025601363211763827632540603119050142477423869862683163851829077198523211922988255636571743970123622394562988348945511116054443654816682491770062328615862827035019442995470909289103993610024152583938509236587998867246036974699765508915282791404654083909522294668656506871025803318769290861071474336097088141006972689760100618838537487453098146050698332581770430312996481466929954849295421306203088095211866111230075136450091769276243508895783161884754587928684098479302620890128773758188878921221928515599858401470764133601160425295236377893210334719843684944092441256420369108387053938844860963957141501406780405463715248987581477605066410550009872526989513069253114598686416214435534941315463221994955650102530625335321463685316619751627956214201924942967050859907256992737314102796673086976434277070113102961036597440350949359932608010565698213949012614464628296786233574485208514635709559150371633198970343229594033492679085432522241977263090907969163869881873965090364756810547490899879950227124730089375284729008539965134824339919652833715899804844863747404582955632198448993899521294877140536225605615337776684811944224241058447276281798340299280378391760429184987163613529237806022232756677010265669834721882561828940596971875495769622527956145192928787406862090026445785646813747373428598226055818854547617941655500126905485477063110484326309314787238801478028623169904683271158265679564766320747437479064972183170195660545413568191390594878794178958988476021907536170646479678674189123317157041096112991810804310925320452729261676678162124092478247773189453818273139828660921149462047868768013461960121713979706345435641057895727174321938319760677025576981111834106308488778649906404522864004002182541330166613089885626224089195424608644190924886046037120697503180778069328262972742403473371155571124140532468961491037919138262836283703366665014446806677548410689497756815920622448906332982596166861625185886394230784131774445121894983398853540398251568286311924896195117672972839558161709372587873600602225833776422622419349457719445193849241589281037197261335164962609610660201317996381036278777154861238058270015277610909298983890785304871142581731729892259434165608283476962784985507957307033629555694631745404253071750783199640844509545393536478400067905258750747641378482079021261253494570030974374865068567983534786266747032343505479188393007665958074418640327711393742477532753041076807579979954682224132045348500484499102719937433392909481476059243412282341026089526927933071777600822106638162803322983134317980402085398017852831345716984047238907964389405385788130013220936714708611725478006204983318879978955396005959943051104637972269304835440243824852014235421589397462750392502632447814922327450294888342480842812314428111177329848968135063494592759310568815488682618050539291749042861437831213355739393316976105692749102772047400355986788461988208696934175345969400182955580080424224720801429251903095602042820836707218210243643789165436921892919409900583490377801586588505257935185446515425472404911163437427175688575699355089248241833346832983004326828236905548271315859481553126487623664867387117913406807503419260352604852782930730834704318624305576113840081699779569157936209447746218665473216862474504548901605233040754160957022552101955485634546930171470459480469649026784965793583257228262345745965550625158849388899479804729368753749158002486799193923270715195776495045142922964242404805951577068781611855884497276533604654522088831724917075251496956621201606226668884319585034247331162421479887735736363806446496879601532607248564546016088384907053028654390712609308584811861866285452507026024390205933154597442803520256919751216843170304351148934431086646652604409347985782370614861967998879756601126425160245296243717669262022179279484935327548999148721763069932710466438945991455201123779998105446161296927640386943254586064006176741142561127668537069487418340164186615391724235012322910148254915943943612383887793481879796118518708156443671544591173070663879275690842120358620276381105211740279880458838213962731929499513019404349064463087186262799424580990336542481174622029205445322050422356947651764335772592961879618378847764791314340406249963752957491040248708855070328866858370732743246091677997854575145338109306309935506763216146830834398942927015478749926809850964599822622090091920266565314114257948925744394246304916533566957871879330055603961357917902555815860449492663858263647290302414865300285315080410252369494687058426714691417307885128222407565581008137757615162012009325478198942535439648564372544021309806972763110862150943141332409991801407951731068551085559093024307516228308071520466390711575781755916067953433545346639305945539337611752265157286376562287745566662137647859557489315113808994505128865178411142061818668592029120162457316373627011632099804362014489884638242144785926435844230276365636319300086906015324059436919711849332326797259879783032511370255352084007953743431702899085674558277561399636509172085995665982547651391337412520202353075807990129796950919303954928106723660556880808092417456158303363625596978744579855190573758128348151965349736873968252310255551550661921743105961783405515503033544309788676539680367218140520779142795005682883687871227320218760821938529910121795239487210601636489763329385029660041454444233468599838855121719487887687470729466433578649589640146318541303682959626355255597394613880792931407211895313820624535286336288877599053521130721579177075118905118991524939723444624308115199301848301857329329600026606195619624817504353051715336099039773968043351150209075283910680826006798713878423960277267244040938904362263024755773749553257293534547147241712071624295010005321089797571964644850434800789410899525588599994002108734012776088110727846799486641848673211753280258961298438053214258030513676132521477508330987406163210304212476936473091713504389928481503600243764649706763685328737989510762570651854747016747352563230575092895687919076487464379781194848840273921889900454804011797649871855801947124515020905080618270710753036964808897558510549270942179069629371439227155806536548310715867934889223131910264720429151870731222859723712367904563863830792905020060801257058367992393886471641796563927819869442592674886538500980644478516358042681704499847223499835552984313359967642406184523932304556966476305812098489597198448467702910436458458009460403871051323968701010010002790661895073388243092756434105301200600094447032844322626548094523459272028343287685150138521933020886373672320216866460276205098095647974811736946154363571173999725071072548199436973950639736918599445530828614075209546702621918502003730776682199028292151508021212712681909328020424934402811920886191177511241297434959045976898684637593108035566026267598775511288420903755182528986927376691592058072758088525254687963893460977434809861472256344033135934098188805086887770187196046300063901251061666617150173643333567551851221994208764950021993502702346211237986450719583055536987189401700875697161507000621899781923180723865681387881668651247314114660468701571017311642073718089787132097250015628749090098683927389728050439779272206589966152063251424043110248041134618259803061192622687390166884070717656668037700444261187871566464094730320782166234569308866233902906681074431717035504635769151447392008191701046690402861056548410112053172522565559178434008626066546117246628711499982827658626562443447494827331255400426377723607510301358840194573982073459390315976125022578200054107773199088449793342580591290084080342223526165361648427971804656065632879302062431260505202499181412469141793865312427079553519393393129313458212581595356723727172203230655356667333438551151355263677748056209343939173687427713836235553397908517998625825440732301453601239950549195690776871592450104917518304737071052350461502737772576167363199698537163023654716798088260947525776559182543429591819683738085959023322607258045787893837228593077759637621074530731985095321184823856277644871305078130827707952565669688374227855006897437952188583531551290002278737850082058525889973933761707786520139342478024020049436340009731633052908878557327434802068757891377840353201891234922334182522178693665907049112137955150501236590029762100743680190420800191535921759980857797724216342950771294390460603553973190918830401036357985204978621381576266245466716453886504564833437543548171769014570132949550299379805514805326957980033090394292754034540890590900354177453525887380430775245377303009510483473086482966734873986912249221070821139042847997837865411101899583271118707788914764564651753398932729667509771183769451734016174345857017989224557912962862113542457874553915727880872408158953526455409763763042300646790002069202921525029427405155290131498821203281331344733965737735560328484859174422438486598805769154582862364389316009091567283267772241336364976800677780761515298733057169057112179000851946187753135208412313933497584183284217718161124829762553107860963400976201031173610490449519157922291087792623234168024013232399261002286003309593104995606018748177037466768651923041433515547794051518375958233114228745600170838487997851713397735659528931567509046246157215266763133029490340692937853960298139615777799532556488381968941928893925815212643376028577546776968833069344449992259912561771010411325348321211754174705655056788018945525693608164647005567096896146132574047988136263563249160737686530612182025461279976281344924198611268418871818217036584705639124355033691011057262081681121505293164343800903228619311478267613643561415883259506864734844350214635916609415485823247565147113412671783587868449788848358486845676996536246291227479369808508271373672193510963665326091613276491972338745771593368556903158111764037864429345435950315265642001221895257872911129980179772678337541094107474488285236317561156991719940039838708210564551122421335684530143652168115073515677955347710141471466875157231920828854485238961765025636591909863588845703982044218468869409169486049300196626277282803544662530895081148291338427074535968186275658625402399124065024371157737342168738995684180021490927830383320009415199596380312736900113074963497577680716157561897972168141454119636099412025769741589917603293803305551497715516814595418385201304133987258521582436218232745454412888424807686173573008235420004887456541216722804975829296123035983531683318933718674846740682977603582157664795164228137850148185629233418979100239735845521047374670830026215233718494922467566845343488635412894719369668994866667091311399738260952485845703508688606215104331640321601633312039837073043692660420642238417742106104188590899786817166040860299274701781745225598700207043054913434889860655790118027858129187794936351797814125012008825041718324330920091738018372239279102826937354814019010971844433631934577310763658084285289285775535868502338258862117765170120050099921778872318695187015507129858525161155649645572573853993724391879784143246175332311427764134821502036591362917458096390179551309670979016887833398160376302265717927592415750128759992734071926392317808864319410425132237304809069074171518945635140971655391008542882741928927461561115269640654771369939657546898682622430075879677846974061895042962229691251990911348785354547406722581257083770057505768293279201686964734244689706244705672630123594707713022369116676596680776042287111579612816861715896341337640094424975702136539619868378194748254336892544450599824598641249431165573649041127224244193617021318153807172296012772775104697869132703826459074692005623750625303224963060390580223791412535254511732513934958319936411277607626781498407241656781324164221876726027919645350011936499296574642852284806101898792060206281700565031514652399904265678591960780054668688306167532904182349171418217878331382206913033403765158243588669795281482312963903886694622990548259293840358156404365552913499931396005027447568011160081795910154450995846321443313208672298743640779193778895886645356263053967450733443411435534786204080711216063136072612696448180497922472815790434200591465577217175766691625543822150480578430113930167296698122954220838207402654145738357009846121529758436388872703656022459690841201133500041842322412972376798888013345758160112349043713421488799710848327734926356100035240739664754679367158404023893279729025454892830330379822208417771465886563916029988390089710679240490256047125006456214078077088790644160027706775887749929724313590457741203109721665151913924182352139546204372052847146843024585748721464664335955149948739335413282298529718974452643922568424788135458466831495447741625337706978860398769116063880989278332626700473001447393448733837662771503035858122589400255110104500944219254274218553959708889557799486892396765855137888779909675011625695770033708299170888744760030298888674376084507405699845094586256693062626520014367660978877986867855736789129511175008206909266378243640394384226887861687913768904742044118770072914388136934826940223367383301299339730816560592052843257919210065030236920398080618552578661545493563025731350763033148336891408345911221380442240805569618647268779613351526862139429833686438328775995544787750415363571823828260722595444242090325566861125079254209885563424297829076438806539670110471237308984331458702073468012545981074114831064743658427303266366977752914738566646172637213215765859633246098784703230326700338066854063158004656929488650372510993268323185696010890342721492912972218161364275984377057716754610498483535327448395363473440425086036612037885050055676228447912399261015228675868976077958618740113648006850557432299031258044925448615961194511995628584955998782705639590505440614446432113197171781991093645028047636214031696915754359593718420572963019450519412299756812949524848673187193326427269370467905527597874611464137806190220837211285361717117849231037915001069340878123551970724838149745303179439849495589884775285160675377549931782013167513852482119751667389121596776485868088525800159823093470012896763518580346301365146309755720290354035149054475013493703263712514376119519573510486993827634979159699135045809484456352613122513545240029390206239703511929514526495722377742461412285127136913450586100244838392976016224879017781167850368372892036922098910104518728788141376160814235185324649680298429507871952643066495617048695324411346668684760941241049173108309411705416634300838126232248560116952718751906615699446088799001682195997533020753702739117206025614990155306901135936413603196518926655132609815733802141714541878388640187726845860725611832801013157284045209774374489793402113821199078297363902849847170746311220870107566394189742951127017034932426982411557359291368165913583714712516197317035352747670631972658114529810662772097956963201284034956715464484191685503067809714925966086523753763151109476498513847201623553492018888350898886930137802584365854672044191353288172301078354821556266286048153147982003364147972394276013853330343112293141772255003226534280651380275120739414410980989985844622644975074893406272248886210535946300539643467045784152165249519667608772541142374677363617606998444971974584304211844735761498237138373011382797262709125044805713145948096684162899712899672880071612060068048859096212575669716989883224806810933750522000110548676492956721048557099933304218984597599144466244253491204955912228057838553841778724792677181845449374537592123714741318557363540220282994393946523858955344032413206551182898113036257824035600026042009997321853300263449128874527623708338805063678437781006993058404309340756512098851463708551021270403004400452360439964554704699873538012237767060142532844321777682823777444210773034877130904541253151656641421505988354583110968896839057996298494951902548920434384779135114957962150701794256552552635965421481179539707815824108401555646988217884285456237253342294468363924126299119061568660023673867299821532278827720184093041029875690605984309944773248699294878754165341629642571844147836680066882947641656502812998226663501409507195135131050025899464611342094174513550731592678778823339009381461018586414109316781254553366488468646883442836180988934752246781457940518812642980587522574861990597416950720425853636557954666458453345447429985815209250432755971281734375931530342485684687371718626430909722366794524502481980693819902362342550074850989894992904170549043366578967520695539002816671236425238713682633765000771865569518276320840853442058924009727441668067841964573486110514187819580209033252572209154487528244355582189495793779728670815853964987929202193241998199921371140147858971351392892893432678371007988511492250661029433276774953823715130341787690441196643710282411489753867928494205427583455162648293482734660500389806451358108190254094506835464341342976975984176728492215264908686223118287345814449755721192259777715565080852370017805496112444998291315117884141379832134520471679787964176112191398072524381287009301645311263135421615856693460660960187759761450082295496504846688110957007633313033713077783270428019018151221933333370925698443082337155636362673181086967432243586089559119773348449847665670804013383591469961869237980118232183492233355714224526350602241604313326762135081738804600985352069873170928418653721913598474296057203302327220062708218696741291279516617497699115051602966856041087011232585122660940271309976061504155338265365352992341695312807906863850930935746465583794935644830858025450687767989220618964434062275415809563625363258081544094649249747495327050861815771687098093327785982188896866254250533182474038047937239826072913685560607102086408466314501701030692243733674726752014547371067159476738647615881948455489265978638388578521576832778678813292289228079180528305122746107873594964097463533495743734418581100115788205789595955329634430449316942537060193991131407964162248259225905303380680814403679269467800060911510333234432270872494956858010513613420696636082199866095088736325980814026828317022837702146360587782974465099238430559656677933452087482396983848439357090932478875142619247280445180523218074223170443911259365383838935472247233858859164876479942790362252928782658620165226897202987574001680558207703709816868757328902302144863367128401181808616665585714471188870532969850685916643409612734887354692200100825046057544743796985668874436574745769663274870892897141960576469819436943320834925467298421380363279757181632758633117318779317005327601300751749362820902638949416426716914284494855873855974903745038027108904174243892208020633492451082262001871111387377569335276624922252389801545464800540027166314067107177119615830281981146620259046803952646054853334894262156261894495712080001933437508044431158986887913530948594263008256036691275538155274488672053028472769553149289444314886879178741404140191402322583212909156354597758818405407985258280265773956153124512515884856742839431752339119725691183776712203961613800354691251430356478006836879897785841737041316268426752596595290927483274957838339271508944109501375347826416916672633563937619520886469135134402029257314311094899154991849201937722910394499410731060979094793732752512265787295858061031802039695259093807673336118351698160484405824026011292306895006365286665656240817421220955227639692395828724518790748837530717859819744230908587428781568889303018706918256714519689139785624537401934819632723327937851144622269509531596947636737405137431666070261287064380683592751585322138772392263831017534767124678753113540660610339222591319581948021873249730397502695103657658917217318995003170533400793090721560806774011591179361311736707218380987854101926845228337091285658940949761456008243805458155120881277406606366880447150808755181844848922309012050131545546869189842022217098972932950630911912944928927619804660695068273707155871175721242047934848624619560956086124723695374835416235265838157514014675501284388211649322360919766501137903791943336487181864851775859220510248818868437933747999885106169676125067925820829254724401756525169084462385893370956164841629652026380737189568107717325590129704635177398899908924113443084629335983526642525968461549612962750367134721592337237220557958431800891200800958672625650658731633099457493998211515658895162228274085556487953471502334512538260391331885589846734733386257476352547453984701846369600763703720760708972026242512884708398494778377279978641296494332438831982479413315068699204104786393730601938721341949467675150735028284098866659122803536803765565831577907318208309596825631521167595093253422820531431869584658666819851610727173873321069512333027079098904060179851875565629223881884780954561282467938908196964603143295103141517285255805043828206353785741697099671897185125581392432275433147065344234771782710356012259627368981265563515690122896035472346224732564816082799993026159166335566260132957370981138510325758215773362193067025556076998972826594380126815869238646264473076939423342730047315567008173608232920872673609030902186495755150430237666139346406065902775543139045431885539995181938676351414718968507856495584607567901311131569848128282428218968666378495982707340664586154710088258609937564657785096995944801247387853681293313034033740550929194383522314689951786005122777111965043751319053764599795287193468339682369204978518907322176237109150457120721262683276095205956634765996828862932161545174716627905032244240333314601916551089082362686823645701064602956889628526656751099052974874647250635118034605567775007473119448693297923070652540071274476226443841850539555415746382864812438126486162433854292518273276989230565014273172867424950371176255310218343416076671512077391808411433989724209210691175016884366852020064772877890346773907589378406085155695122960321490561697332774375465914709432996728884120174728059711735118558157464606272978851510985655868836948191274022756093305191209989613105778361879775658938509747495050077955672151291389597699411402588891348444960843359932794425173792712358372963481874958348297928896440288141948306005798384935463197211426020984559227880239859425176510735644763960979561176686073245062738293953554592391371846305863076953207547308730560114532074747993987686076134501293933463134363134696763494622905881635082988695957000445236031309825449731313335885138644637008817663320017435922366220357459710770615411223956591426856312356731335191682144651864445376813759434451891349750889185402142875559852545550082633243047035681389257142315245260011809132942266410332144134922431626539683298469810284375359463036918760773775677598036935047551646546143093676497900677186811928020016006934641871083616561861703012910337536708683528725983327842771374395177793000386315794320995522210853759597413170831444659953848032664430845460465091598664500614346122212162339822108613423022981656454833927129949393899996752209388616266613471845787752532939569893442847935865969711967286197361885474790981136117365082019118691429483305661403808019768490073063420683061872246679232060702322813267252592102883440990967453769779536819492138973660722440204256292907564943043368394427178818989456660623254267722172113784228365267004950855851259458852686974137803645955851477893892382424966679079799420165017054332923634339072123971182962823096069432718314755738709393329674914077838224565910630800404191754362797606517873198768760305507278258186919259593635704117260759972091940003690854939048516446166317769031280321608822264502111719686686931224932611564749511615284806586175322273497794717396401438417615130074999581952053501997950447134760570009869207927990916201667464882422933273367209266357109841903748931107460786662671235308710317655674893667020637462864469317425860016263480228916687294755267699237087328395698517472498291513971348244315667181725739851086850529861292115219628847682332797407756182382300333335700054795155384806566716756105259829227942571941017778154694446133001770720298561563208907181127295810409036588197082759121737557172029948017917025271040608072860597668068975028489741906127695286842561295243848816635388553920338184397581779598279037405079662770998918914108054673955074740963809350954124444882540865062623625085897851227738100558508786646642597287617245466287785982394338430612020846194780914622165755919024242529099610455443221706426666331019083331611584794604482286820227729432237280665072239681530309571086106547673490295337811357450524832551940716129520215837222665854714335314838659675878700101650065887515024565136631173100030678584793654346417744015938998247802015055177432335092432546681765005925279130709630372471889761554405436226716769920003912489542293682886339172802785380562116895569223151745719139784275773543295596951694483606151382335288050454355979197481665935498362503177778981639780817445662011089195783637533693697887967108753081253147791393990955789461033012917274768121273724378793092623252952160368858899635239749017398024587582726069207366550077477754494023725464125646430169975828490670810487224051026877827342309284860978970231586059184200155601983543638758897688347505315057636095236198225005228192667698727063713104659822347411604252645744046879734882138857057575645669250416408877440027525023808778905462809064421811964068770731104299299961320980696892293022805998477154698767185642799326113873244032214012168946846180709842407532221649693456514265017710297478706256965085262629013055870271678176372972607843858891974084616316653595269974907672855472591063545732273781455114032750242213227081756539835824831502746149007806861488798207594096924926211289146442761972934377894982661136248050685651665112167124327234076113524730991220812917111581691318083632074719550633628057013167193662020943012437936554740275622392146167306351539142597637001790746474484473663044292212552453430102631974743599375580571662345308447818193368788852322395546008965155756397698655255290135667373070251444432847538463495320309708105750068496865232282171895641926815138025095232634674349663103477051019207960120071532081728766684871351472420246733952443421181565848413556039800151979516948331081061726236477924741406738085658568389894033998048082661990166664269551555424184661398927164287392308879769269098384930954287225712863352327944963383163407878799640540271770881025737411895146193473236497029970575168012154594121718672942346010551984092144759695172517895596833643949392534004954952504660383498240726887895401857919107172437092278186588015166907567070284035937482347313127037003905006278414614492808175575912056503663388384368209059568043588902614441711113271502945450049880270517648505930288356085797362319512676898851331718199678560002519946265517137484751359790033218708819140398396524138534732415274933859570799672040776644314535314702061331290673081315410637367556283714748615488979060272101407013346330384597908249807698605838980855146989595535424178540689335896583219706903948883171756262895002087419987167083708162629064209130675129196808350450809964734666775943499563206681340875052444588565322902022442691297423284866669627247641864689133305724617050470114030604614905613772528275597045482177011233103202484672790528089018655769278429783185120116139365785414199653073280857371094860841885121143159785003215730755594960066053106958546429657235762626133522539651027975490636472395433589196096136826047677850381878664599001044442634225525619446604861580259427302336318536074786747332984930251028124648834379706939175440911766187760698589077846402813822954606447469233260348641370387859291888848369157790937697198277336334414236533125750772871921819739560565581586418583264336021132680984514020117352806490122582281362465384772188548160613294008753487521489918443688541639153082117884513335879379824329540455332612387770486692650925157753286091598302668848419627077256292633684344815952729863603899188666030330833163404714428915544053626855217528526402212872579157307331974314579067777611393577317374668144156933334181816711125727234918910118289807827400738318204341097352979007916968144932213640712426847927818431160099531404882309624310405007624254658156018662735797551051639635453401222257840070294987855418339667147041602219609976694610523319213016623315778493893730154847018895835947873011152207714904490174109899454556615126085571645140779549065702009067614173147228210083970166753673039886382201540367193634420999446493443473622104490107362543261219919217568668063111390325189806169280418749832473325161509089628930717892018165211072874888083566050777375026106607766080167503567935418257962939607453799631458731517306029012337252171855189099930309157057019222829228378749227092083540967174308640591702491578767531727459740850403455112954016430218662592320908613559983859946633495951864280210769192905805117556959113167543771056306775278494780727092583052244412127456633515218210666058574028105743126367201144432709848345440069456603146807104026047465540137446794109613157244930373473625664443043153701429620960129464568595271122207357304530783514526681502944782237323837438660188546312808267940808599773296364475587234120247366479352653751933039800479046305209106460590172080714583826945698989856453065017623471376965097831356648004183773154662899385407955783766839944443744153647955589260615144795328262669719410085560425242425317710732714877251618042359405801293843772760740259822277084598986945205505025590196195663945006234770960579461469266427430236767471396229593009639984393792310547111262918331233659699204339846052323845023941158034771545050753910291041918939531501532617942012164499162409744083106832978454942705373215157311818652456536473447670070379270886530181721686182159973484641321465870048846243568575532616870581562092308561318945426660086059168946481752626723274106886794948034047095301161598315491365009469478375520529121092752854756897518921479274802049937938278778290120993751850741010670514213679243923596531328580756696474894321849681963830831808639922076460742539945399106975863135641327747234519093091782665630202160495858851704392849235473600736893378864168156194437825871582328124908696775570965558541547595448614360995425626312869651229525718048543248186425131000564202622163948148724177978299327473930836316444904484038413693719521563283335595414534444918620183767492362996093783268977490581507436761570182959168986593487730412331738837245181799957526327081157288528344475037695793009198805320655583601228771720841045438984422407608504548456294280316260215842306917881523202117672485605868305344492830869314547535975094164246969370211687356143538400611536444155518864876030898501162606058299726849438961566099125833665643968806542433996687988793408098940785477872063004620864242760400860578155985095731116735778602166513683153893352259063538602071447719301229558046816987826475806821824148674578106021564645241602919906311288136780647980020497688461777460769627204716755218043375776317176060673268592421858677483840713654330477217276218247186770649649539625376974391552327714256764594143461398609192344856435075614235686525413586552578492549036212015307270139449440020640533865670277323668614835507398984665332837891036905393121013608973894517940410342500579442507592317686103679170132276724287884769868181724978189764504971682054639432945474119986717490333947619221523931753678446539875163287454320294265415773787858203535013450299044215476631469201756727681135534817532380333642284925860910846666581822272927827264983639516533928683356739978832379228062087687966079543484275274140447284038088232700930799778688617624604114918661889792427606300529030160483723430548862089680736834990878489641136976985040941510610223130219589765179392792755024740970489498468772304591025207899301521301912042701064241733758901811132162324869230737927721699290742337255266500859307824339725601966173980397901754652919681329215800189833554329835437794719459218928843382230280755976438832906231053678970627312208442682408449929866032603023389560443219389599897142877357757533900773432764078020633489562273764826688237246378450023271080837229629237567629559226644661942507774628600687473864945047610022926769593030960094155879717096363013636711985644359885253681674311527613568311913057591895020882315044322541859198143285544155333385942793224990213718445295733416146437559205445239938078662078396953947567511845048911371568117730053290786888465326709361252146695455156462193574654869539715900251859156313284151399111225036540920656817501184922126228598820336644256182085021013429331858653747446036058571106117193768996286413487513973018475366380093904208635945258851496258991113280794578904196175084908517192070759378697333435495800748337195274662334340475696075917406945358221795727357294160095718624924248856000503568933972300400291075684987278185387993136648847135192550450986954638872868037492298483998661743231879842848656095635744738929986348225689251400682831260404289459345278846287974661761780540073520949951737631693283903901241116923813457437935150982972693090864893104506000676116936961771382191968208146140167432756536476542752548936319814055524010877850182109606691197698796562038973120228338441906382555465555583274795596305724430504633114922356225686348587381639365542757732821048033978728068641347029033464870022142770123476453362659683222895567990839657885731939230560468463169204488243725726223485202747737918010504886877356462754880877492927774970305468221868738716288393842276569501537869685405904348524957846345038836904202265067212347635815713173862672756115124811029134193019617583935947010925861434771089801589615279354959599645636658116681994132813350830060850841364845280323085472908789245263845538772747974584340560466469587019737252553778989101034701519509873270463127033990186320600506954396315702074180936672317613844729205093710160652561884639441802551152204619827180984969129355587235667210303716267968731914012877140901409906505751975972863350341004905294114077019013350816949218454863590189784623247401471158142933293590913917585054470241189314670990291008070226300369505987142765275239226587844644185843607413790374684536425102448299020863403898979648887806202573128329625256018797642951273812667562319805600531562100184780429604393654336730354435627940592375480254915158252437424921975524866426514333813972550306323088690175056545187704070116857989569984079040280081777393985138331491547567229749026249943556899800540846783637793806499413708772047958005674069908649466554191474055722955009588289518076368386546240241711720930126021779313928196857023929367851222893256340612139880868694056138725553790682178311441032510553959149304441672168908573278197417119813564592239773602492593020598188103001360199863156235798650909013309143065792924051622214925405017310412928256004667231716961887306490833644910482817308128578043947462893761559467247574149010184201136718615225681117802336865868304928696546274595284867106139263387586200384438066576115772093903107010131072139250516473955807429431545350259867799519198815402300287320814680741559065008371192710579670372556889980032455440445881450856708586910097034678064368815191278601430809883002789718406192459789448152203887718866188671889998646128277881063752843702957380829182269961509071617359323749353266189267783440208500287708944325688023612070569289103301670353931574829393043349424955353559343925330191472226977807896236644807170619500938304693553041733775313038087946748489973855226894019159744756340841682600549915002622270473053339296414486605271912499123477942577448806926587878448138563315965837001116992041439971446093490271384329495095876441406955803451719764499757696271053360904467061938941887715098198120217109048749136124033400659794039567284813866741174735318334095986699866739901026207130549216852276615593682548804583132198476213928377532007562981195922653814997996922994304539246891215897470502375788620716694324477542643482228383614336436641867690556568205044909750514563681896144318531432369029283835779846072100825249118534783008657180742886312348870958238182204196300131771343345207920026474456072464451656885621616451416151970842849994057337731385098186272204992243823660264251453029887373308225021163205522702145799938734014550538983458099934008504795563760057742738750943585630684379328061055275542335876718500391159667153180743331721033553323898251039044155421046257208230602510002375866202269864902401503921321552336707675277080076204966852355097109943910653373518532517201109044580746003825323018359928287021750515550007880121793754887613200926577400382002322270054647566291594619083182508697960326595168342562114833922924169033923585526161706038517251906589997192605628816948760395667804147948533178610850924699089702414347038265685886380300740265191887572091713411670933973961172566350695427272382725870530305344036218329366529013559069472590452092952680468828184148407215845864778243537611970154364612952309373098261343255286945188082203028375525243870661107197341886870959453808483282343361725676666740702790828905848997261066009694839056664286977987512089111073089867677199270025842815777506610536480460487177625794272718529898591007463209784925795317564666517785927964675931087375224687992305810528226317650908975472868026469279864613395848049932674000041484056691000065281077822095108839922772639020543486045001868594361604280426551363338176705705246072579120135290043984666573199845547309453409457883455750094935435262583350213080531952495031598718322351574654942485584308640744540007122114842284578283013227364766502053210872590078619073050644317933442629507943595598193943070968641356969373755147372416378011265042399562552581634765516073841347820988638388044864695494188630184128231958692809797044289917268193422764257100951411216759600289963539703399184390145084245781582357261878860826918155162785768258822086334099266042772212492762975969356276484953446310538679710915911004536963197589696248135423973410398639898377740665109680901718472159312501026189200178125798729856255785676770131751734017946284110864590340216165618335478456696944506179382206285745225996697254975319492865546943127737924458490769041229556498819898984410361580470147601628541337831393275273289975665241672860759279935862778754593551010744367314144375628644559843063085409160752817621905760651934547336913311187723592333810773065978155344126105119095648326328397755479293853220684403916523819891326443595419875602393350249995256194764687062584540630616695935931538258328744771193706005058395268274321855009902687045160118498596571405833753660270178980424138022146805691413271352723253100524876929319006357709292797100683112701751613650437305884658842860733524019789018375717316102739974283606456152958947565674295890419228431152195715070081369969097399821274468516195015039503786393143750304559778852917748157587009319927372975519964871163184794100404385113802455762454190011712163429350845285030153571828548315236721514307637141420457686039327063519277235617679080389217678316922983527288026871470252889377160106200777503081596979989605432686957556178815229095997941320496277826453572983177318916530604889795403332806559937435718096511706011297104088942253030766579562542840799664592308665676197578042946826860884780319785028434318700780130588421158986839353155430314099569474089671983681965499851494996585857982938981455318316551095227963909433575206260925873876472011539751917551272442457184275998564364935071280063775520601938535376101933195559173252220450256417926531500060792695659573995716945241468884585016308174417269555618531252225612510422943801547159005059793667494243042181763222856753022671878787775009067787269408186384660398300564259698763428188919785286471314987660370324217231378292691356160603512290641282953907094351640765246006076874248579484220313419413077314488339837012570909778593035838671490864728032291776703051707446109698915294206832776424260273162156114394154408843689916491048404704256530860768510089642449275458562397447279848311291258673478375676309901248502066493173917426355243512120926541959926819872251173248311654660456087403705174559975605904937679159073883657994264111224592392712445968633900193522889161751638044072994869491852747414115676584000175893336969489371077652964225666679430381474355203393192538592947838370030324770521821497989859196190587698147028079513803986300122499459101558681913244736535317954791556110862692337963202276885039381121116939692367983441661364809690301277760931246796159151356884288452927428194155933504226144841658335253889333361025450737304912245982803065335484454785336119724460383216249297050539050418847667661377296825567076272235867680440011845349716810281904520309389708982378843270956679033286653787827237025176916382241083610597700396267021517799517703236772134811063954536848201675105052499510020126938883189575675088563078794897764237671157436777837006275296160986365500404206961639659163704736617141977166816902579996401769887792027704145587763257334052588902735604314218086851572418926346814785989589336155405039118961982872155404410758946406636633916213224557435006843412380664578628771938515964226540824921697359040714590333427018924090699416999602438924888199986681458959578054757250910180187395570712940684736066563308560319512413620784812324543099596238195952880143914956964616389754464587687519980059165828904058529928637904047235326228880177501914675370831307487146533422580789880588404170609674128118751726292114833225631896038778191124494567011814752667263966634600124729555732836827806548562402608371571230080786604199461506490621664331837646455966531551340649930800919575420305575674243635787652511299060561373310516641510176529705311039375650196811487618217155065210841042776071307582942682660165239948740985027444432210509203200990005493846751768274851544872074698620299427767491721571005646682542709911330869875197170726658522043737866795986586061067395928293296958946176964790789699890768780820808669358505563092282473513103657534722872410519446441736094560933432565539061097871457513207274178328376730966848486443906606638831887929658623521607547597289150843351378686135044159562608164928180838709694137225379616494390539832284124219969891939661204719196774806124234914082430866358340668080153864077642456079992667408995133220057697384286010127401869488966081470127867593146589498200552733402154391272611608459528377874419295429628880917087226541994267586843208306407976033043555458662119685522139653612537880276410827719375638608841751394419284484069007359552925864033252932334462670404458718707325874441883097383959542399709638384168985046008369950281386748695933309030893020593814268208585544942736458433918903897201387319008537673477501093745910266446802847882294843416993821482612304324408230743513121584162552351737580049621032615901143565054935726288764624509023330030644936214785280550401538051439574101742138702546278155820435615388671972735127582636269071324372594688448151697364560324983392096768972242904158159854892120908342954922653862954452372029776561070753139034991324539616303627254229225468721529125095985277622474443252615795227986431926594940170030535053865349489308447742194632270966906721372226176271951441720493609877847271210919274748309028113780626454757234185072283134973047528116745493365116106870909787823279529801107406309956040246417536893035895654088899149776431005914418778658784512978173226261580868923280451253863776365081846648704262790410382430451268569318249106893101406413852836769632351896027606368030442396156352484871364852742000457314546617072559211186538429201781148214232304394712406978205298346569144827388889497354781063054618401336816091064073711129447297867114991340203365904613219413628525664444275676813002366195731409899323008793212529661065992150552827044893520078951591793265412001503512536746677743242171171930548950281259582221240437079407076464381435161437260756858320468645833505911071943590538110182625717008333048132038603915996934267831487957026402701115613764297322025126016240052344121185269379376493158610646923116764033208230309990163739836887289125341600702292156154359465510029311111794123020067132357913399723603529737008031633216737633485632286528921525592253533035452037947843998839472417272807130103893213228114093223340821781694077498301256522486189770202812793898035252322147499267697634551890329972114266556618315083125582931819415777966881561585247418298167843475735811284944436346442436007464363421756915694189599303941711721364492850474084381859427665964182657001762168619027162387903755504975499430114927246948116898806524723246951398762352178137461458800863730116991732902817749134558500341273674346556376766012954330448736811362898451770522346698431213675241687639977773624080296812125630014928323954661651245149687340464519441556459091521157678126783186949759537337759126840748361500081125654311443643722654331358362511974902857384791251166687882090618654531735935714688837944218482385301533689256269160649250610337446280908709491482016498741232108157917705827493123327002319833827317080325212732159503023720448475390763399699887721481405088770656040106073753841389042118378399600228850581489033787314063610180670900647421635881589867715051771882688909588221262842956163715561542087523672602436973719310193849920486475844348020333411071552056634319113630618617077949085102670485695750995689019736385988796941114258344408053953274107581735018424468522959788700947109418919955263136395848568732381636267733521902107279282380446121923374837950112304301454254233683762444780902705892707944295361154251724910877884476551252111329454490201278672969936389385108949362575213795189973953558618515528961250644285569367441891377876350218048866322673312821938137875600766202688111814226844497019723964361379346503216440654859412260890231726760271508195312558793130897110184432797843046915154278644751295003116737128424442589735573966938763762144094807419610493924355685091457017717183191182537532604924380586767408812298301475660051501529758431036044084714736794273733411794735773645690754654578224763796908954707086600201329438882860499047095022027011723243678743716592535527143355731201068494919971634878797666539577701228064376352393567808265141841188028006393556545522721869058955096465072821580840087141594309426780449571870229630405316543271171645749112006078613962361417623270030303689566681164103756829502211422344495000227887037872616341291238274336789322748467813987643597981115277031088260409462609756861243085730978535609882446317232527490910868031194583771874957306206357871345884433424096133931497828045731094038331583509899386940196008650737373892010039105266437538421017800220643025534550051175192099290011849173795822019863447119101327354260409058641909997948774294756195937935801087165946603438605434706621326525242101036751656370752300809639618732215271926844373212594069825966854017260104354768772892174861733144541381322778265433081386784697561153031615784533941075485257466372350679402267313080586130772744977332521035321755493347909736332715385053549619465929442027080814885790768855962501514902030436801705456961550767367853961089187554162075148264735129320181584523457003045523348894675710698464334834073813674117458872098060027972495257734265038591634677929395502468571730195754089368087882410981203135071676304649507972491528881146703029035228301085702783348136681932707015644172085991514735509644868303226225419036847718547275982165104049299307491255461639230364469635884379032282444937908302082737113855661394367874122119671575506553322314226272692179658745904951359769554115099685751204718705817284030221532845961860423980548776818186048370917153661466654641617405846553155266259674310696151237759221188002000710311833927478978886576699374565533123801845426205915611155052555212026430164215315718361593234632730031716905876580224720358202335376791240433805052586820710557580457297760277011893938418169441263126305847597721427292749612830236137406135954950046511026865656904568108595786027860892416073486112282406971191954923026416836534824119884478038709857663966054941297871949848341157923039829223077441451064213161784083074931548037811146764482294672797258022488886652758967950214568698067231475955662259751980142860027536834665626257293188918115113640407788181119243973504478333415116065951918020132552200816681967986676506619787070071893506499938873689337566734878616535418756037995749573440846183389263753186317771223571134924475978598006003652148273948658923806402467394374150607881643870950198383583309718153517124006343215228393832928588287311455080544046800113147404035565548543429463366312483281633551632393474397800225875103931337881728847557153135116791089784561577119116716723010730306694002400273311779243384929983097929134041013320660417957659221322150884640187696657179210223320282378655880588422069969469999812143224719754054803679470926741681752290793611353211140584843434558594302903794343059793178873412435879624844676027721625980707052563725688603606981856415069280424206084677968844793480749722931747936669211554315524772198287018343742768621635963561473223024703509390091485176362741551277586714607491167598896549652930558019182788712071863623231634007282725095647240918258308275802622530747959635276042301110361145994025129234486763777078693433296262920722719693086183574811321408692520088650002181898501151894569024533257189658586620381355474386741756356330416744335343802008960952410046761833139808468970762366410348930436406165786169014399696338303958505108002243180219722859485746323347292268800301724427979134013265575415907211214733848785031827003315408829957280408372644958952648422259269233012649624436006395538605605059398820674715130371718728272421999220035694916280404258080153967838037100505391447682566545359248971873703116194552222077055772221539234078115061889768860670260659431920146949220297160426063018894766440341281209313859406589107786435608925040848047154968864022210780190537657544761549618196625326327783530068070630326354709371647582701336060179937134915056567811274032464271554938651403852472509703745718105068969907043888653120840897042369879766041901133827414729441067845692913849353612895107737782593231993591314652442664865269881812394121591858234991995759244510582539661242553343690660778113973172874564214881686159482587832357627524037304060660218710135631093157797141679389608272691645716491904391870478406011143235427640088957848309712140632705331815829848316518056232356004132844701552655896793399459717249358260768992420910614042103261369363060849991254621135342000443290096154299215036173481175651182728566657487156942812724672510676451263639012870517772608302048549853065208777534622456113003249574691681709558500918439674244308536762703454068436543595856738181241520403856705235538268798962306697092417570754755593302974637601506291245475250348414673646523081687152269199371527858368622718106397226543212733606707802151478173461723017560615423961338179194459203603268818201832723157967686858114063995335069894044820623362757305938462598320833334120386553539526847742097342605382291485767145991703173080192851473417759207839607947236614861133425875230357248850682372932952440736692511959333279333069596353436382560371865368063713584085472468466986510162327957256036086005552322861945219111258095034083579465648513693004689647061716952753444697530324843550132669084428349090870663447621522030378689372802335998325144743747161300998002851581863805167101461736071011620183387591735946747837761498728800553397790013934538950390116586866099575845797514521766316977303249099486684837916578781676321443360122061853199999587582701753854981253346866416564006152411599527469728573267861288879739318074312297572124527603411970945729594867767714711339176947879949216667036138209507349963851708871488510444131566734354633755949589042885214592264489589762953822240940836803449024051663435461116746566360690137463547767068792485444319866395671939329565798359465725702987943553158085980417458212667637227259142470897826979334223608731900226435262957271352562591961282198908560286548507736340390135180746901778858220333547836108846450660783033533107735394979708980608713175889077098182818467118975491879149115595489742957873711716176165557961086932231443809757211015272784783820547721216350894508959305662994009178782676043270278619305778237603339069098485525488865925698893830976864069796782892020997022256757295046031604123065522229444402379184569071163478593534156888422757217264556179259035726756272062591703689598702053517521244671778654959984061938134868134088018860662318028729147629031456863281842307590821606092664608265199022834763900965570639633181448255789347416544374083176040566787646869051161969119257571269991418985721421874774453082970965454150915333653922412067185381342361206131154255024689756067985591004312232757918428293387145092762855979976659282636632874102575045889750983566331272586268294593782122633655036038180753212332733053735531489345109411747055295844584379150051364780223816902155019777844953030228527884595401647250987746208901144996111300862367643191023670813097023404970069982362820015834347082657760080263868840218979933082570712986458971149033525483332940738174509072985236703898672874107056887228863657162203435489905695705607975624201375178052833980126532080648268800940750536508566534348257965244573204826480592100609619315706011558304380002386747041367535215035928567851076548378250888838586350337525762796162580162641298479047941410820950186912064954555980860107888606921572657325513781236532016030330629129461955507246641465852558272754322742902629739140116395979312407276423668177759343330809303238414906953312871973466182291699458313630230381547263682603507633788328678594139649552415656915899858192995463360936970143863627915673828530379746127388700035574428108285344729863093021641019499682011519241601289669190704153693338873721058022237423608999317749670400817588990847900832281490798668285914870400183982462602580599707234781999975330554219830073902134178057105210776885700857477504190834031816494013956319037288686898041377914033783585999409508943648057778671481182444588593848818573073912837898466571911296803458998072113102915511900272325604854233545649531186836198135019601411091746188102078702758213464229745646769540216425345691256083819751083593915478596610028263004120197282560508436155772323621894990966146918518086207278507494903560879891379497501546624733034361332605464709064016648697169778560222128220402087513724207115656512189898850119328247844663129301056817931619420209477133009093225847931591028131742136369343191377798294303709723484129112641487308607154621665319193451203351272377611765450409837939335206796556358487701374178682006597565995630594861838238443942523447768780486485846290787654980640530640066458277253791485398292905467048031917048046044898555418433808222901226562587456950577160275252263888753137554643815189085210076852001258951828805644043319397860234722152939463992875215237629078881018262313537187161764341499278889947058362495126525634480850955904754386693003836413866970013966062050441552810534296497954680657095108474342733194372345601419984076124192199243404805732507149030483177209914682770280037986015218113572928045633771547722193952176493592059274462069100113406783877689444935153353992130670615908274385033450803598546248703259254855686262813571443322450101859791942352760564135523548282130047042528772508883267984861952085915263072086508780070492466742754595443081912767743412780227357411910142699021705484651823402819583165000049938575536103730772772736624164895331954099103730979762975130374305095810304166140557660723682989607538114659292203403708922650776722570983563462894165866858642627281784716075927988639073162371285425600085179265433222694825270980077260062339550872860357160969405680543786305541174201241213008740477850842620536779410268700327450617542138041272224252508580437820457778893740236187073975949010175202246183447046155328038015422575464308403045044758426399791173694617262960870441035451837348578536279736653457811852766818178812445708354589376379027690557985530200093529592841660127976657334807525457814818958420312486768243161556499149827676918630738022087571081640434990163253084100808508318743199676070797897316886722059187781251407442124206105013168832042114245230426211872369025216632829064890427882628742536129337537358852583466292832664506049463847384729944059970977993803313409002740579598380376353869187297132523586869803542341416601007296870240408476295937908056580688573441640927461076495613587848752527000174757854824369221032090793461248209499618668264611302751765975777589884214411859826946398042875934124669215223832375839654198870049918480812133085126028949082206743662531014388296640675382309516889833581176498610758924658093828103948051534643330264238500339559433076556488902738748119252259431590049292190546050373283997585863490290226391735884790941118891533028677281338224519697214881132975511322613081469770239998971296984046263958272302208875676974439446358471867769816520926712412297122731568371708180307783530399846846261054527017942378052976855604924920348010136263702744362029484903180992538354493696329286013372833731475093403957941136649247316824724105170303773696892381155712080956400368826225666405855672771646396972539256501779235836872704479698671557679717424251092606364905621386287331734141055546734773409637146097771535611717792136792952081313651932389040505290708122393867467390915876055103092039925597966253065648580632260274092764219458972021129605583225119721769259334675162938233568385707046665091244508354631649670444466657381029420830294983099052261813260553760351545040994277932243993863397500474865143463063020766857075702395428984481542823193915684718001253385570759254329614431704192518482646867463288744886925096905210759674136038379244211298366795887344411296457525321497602361388302130582711969270730564608253687163354977274179613276558092773655965592099321731394141940528231720266738013881990196609385737411062481910687100911822057476312522441507723775913140129521038849617902109358712296814300508514267709928006631199943537109640973116014295171590392015683550232065434330246040240151019388351697421109369498263718030255201838394509195178893549628329747429632770028654181590346322417761615403311502745278456000226243633680794539374813757989381899546605623911299392051420694019922781178433054667067500637886916600558747546575422837498532512537361774443444863868231620205353966095814194328509971388136215221033645259735400741735731821001026640594602953403345745398842300785009786134022630248121143061211258104506413374615498903545298098459922989583622295181233895839857237609921868213517787639326238316023226979049615372209119718135265027035599772961142772122476935049463228859866735841757734309938783806708929262417479982787582166973207827868548223509589419333970014667705743656290309064803087532976864867337485388574190405813127146204931857329416060783912002012417380001696341918682496984783210649280193301976481816768243120801049986223444554475860808719348626697471739962359747054716780315367359098933049045208209197218354763562299071686793588369279289833507710812553144425664950878574543037930918137897758533278910074770308702904530513793671747717513094683135618948089635236290136910105751242579947885976546565437614138610023635647005529291515818657570276515900624811511758414248113421313025076388324284678524741055528413732993719268310883195354429005265389255727763391819201825924441129456188495695693977888421156308703460075410281632546287568520963643050725053106829003173593551295921003012200066022934507708028247417473269144424651143353219785753731436548434913942126442388369094735941520812864871428132779145073533250217549945042817872111744142940145316321145462723780296766428259099972113320756216921528730535869270481814363632302160253889621425644590714597453924104265844838487365593743845488649470204678832837204226744553329370402344835041805396475931148222133698752365868736414484860941272763357875190106614444524021529010232455344828492969962033777594148170212507365682948630904175977156233672946372038811093642195852054065646256372115082954275088428840942444032467497012301495311648938328533104730394820168380542601362263362507140440686490314195104897675779353008423622956238628614656737521606670237955537754003023652127082495381239672869392423381321868045307258385632702193873593548080987383247139096233190792276235266208330952958184206049135171606197350867914536398134158902595851217315833248369175349070533038121693010714180378548877863644304251058388720557092949487754309325711488857600558747738683470936608624461666567167396854471466493345958381258281995337973358789441277816696020683884503664686544926040946407178197310963210166550646227286782062887161626440982592421062761152290684438991705279952887239442603489021105880385463293650260774937390779430874181756739891141133692376433783411493888404807245070270382777392174083646494962200130646971959723813261000068961803808434618636169156463662877616546271093037624268913788958163221688711877055906924980403231904529293546017220456845180962584853490874370944960930230260021479252518758034289186426699411276211681238510061450036584926843298437128282858211948366307282139990290506564215837171763276142478163371328492694858701510890397629644516822395472750138005237271796807098065090604091414786029254642886521176374414046522755188083281215938942056890551388042897945101585267159480974611249044877540308095454505780045908168354920507226250457935399283603057661342797625242786636763064079062708453273933101097321277965246945523882748339235689906949326603533401717911000829899752348616411852674240029908292898886024433057016322032735939549958178173016343174744491068928203247470866842035494408851908384605940984416002010036030267038689320595366932007142533343745106506216083980053561266044517638286416180659183384140933507295502778787785960077843389243439989827536086404343546980104833247649392571408838548713835142577367540176007262209120537047651433281647974605467915995676071821347068919058815125681677990436062228574686794801744216361200969883612506193494431713896943368126872358851105953836000153624270640180198635904925142373350080362532697100583351292479187024649203929446908740860095539400587491329442528512866666932677612043912779281662946392275371679048801303883810721820936292769569728698761091100812655841034767803780906745876788417464775149773244164629952628740655804972380739514305735076699491386283573587825126146168398927409601493229887507906459450136526359595360427363472634192036469678721482228543356300857429899692960568629946813396418302965322652526753433227100949711802410233210755495111642899669599141257935223868016835201103586490796402652582215433136652448490352125480768912046804869578786691394865995827976545737164337343619727169454356001384337195375336421444576885809119827449381377979163096108394983450403743190898488943003981012097500087811711630026088699161702180800113618071158623483902160840551864301456847863813942914253857734364784805795779243735141623885267378620467359043363922655906530098307584463416634243474603173662536087083173827422598591059942525672666315035138268023644330442996913319929359121780433391617002518933405176109088091171076494677889022341182740148190374264355985648208038378146134182091006209633232233803356114309282754025489659474942476487916884316683015298570990986641046773040400255594811034052155028401632650012896652662497012061824230558064419172989260033379016812204404239422769351553527031987526964280298546392913190555608180828161339036773964209410749212532739628023236906977427019879717298497808972466692637055607618472789592587912518034970552828139399226044131395434022456453423118944041132306408876262110876708188401261791365296886039095474314425178344955256980930950777243396125771796041276627154005114938608905966298940400124095202904386518692531488152721058382803991083868420730161981728329684787506265847530696148248472121903505922090988330288406865680461711471260309401688433080274336670689995903640113679859663439732306230087263698592991913188027124734710104080919483831043704946383580908285634697348031678295407693536019375904239631052468410642086415710746492507663810027013917163617874488804628661102683825563281719473817062291463609072840387680967861628784322430423019906226939079968945305391234200009262039809924005279189318719085775747856687634117578308750411785150306314443159902289059637443101909324939274827822871838112311830474138298185135376916915697126707969220294424280995165696725168386711756384888622674624237869657206116394060176969574124438477457070707297387682451713705847828895558639677059957792342531423212436150605119306756315314482616840592000317972397681186381852283061126752724860071216418601316203388086270188819669091309451245111685823597821960585234657058154143829154306385162405267910007992448251328557639475249423116276295346088597165995465159955746485733365566251330106343728327519092225294453599989312748999838595256360363258066496884592999767619203135203946117654391272470329180678559590134566986114982849821100366940695136452489715167819072590576198365267615940746297301744812012928353070282766151273949408122725673610952352140232134115110984074657847753066658650548730541444663171604078190366025560988971910574608388289880271137991761522469027955023819389248322923661136520047118303731397644570270212551096099478779637736055951671159721485452033923968073766324016013430142822487858004079514974296332111621801954318210630017587521684934809901596126529346944488187170275000718992076339051350381454775245918906306330926093910758006376014644733965988424791108057852812989996249028445590908640701307931870405316046661758394571731961718796115430250060198021149325590627997580079958365764711365231309219922813470335466234247414858713160097116761345935293017837163928469716980505503536637188671953498047429454856251589207122891973219096970352069517075065724315332628010054812942900717208466994217592707447191590250661454135715899320005626229923992226038998396619039666315856423357951729265521744133679100705572868992904672144793796684503067297758832491823568067658605001379354216117984731440236127311637003728488239818097565712019297243259573755248360298646309100411188547368940894788433540706986224305953324413247245616989887738834239560656026732752683375452209015746246270769909106965509004403000300387825905625303734271890992839077498151059485531884492121050651805892697976781136689450122522061076879165848486639861862719698510232151139596777867565830034979020253115489326424162129944534110682184422757733203300908639466179877128457377174231211762970495762065982055461204567399605723063763044852279536511961876980669501374197464123916353248118293689876655541538820425459010734354798163706197555948115427852826844130096995776935907567260344186853990216655588957127442081507448506486305158856560898520345715524016372454692112961640304149267948259876092975928954736433160132910657686358605334512221050890447568947514015741479108061752647193753254205747922386787249059311708859199901785149475145191133966139363869761674624616458307386434081158682922829627667046582811207606112027387640373013255487041987320874263772929509892250834735524962881822653393433433829735516632488418596859534213733483689446083700457254174604301272083469645710633163339944170636592870314190201268189959602605170132664801086188975918741731751395704525443026569177888314483590550255867828539620927892335036829883027532575881853917371543830707380871940048451865620475257733618309479681295356822785753323828517103102531548479434801811985242398598821127580205605949638264160960824489670325249038633319574311279647303116001598390573222969183183163077335370187256342879090564843955019193673801854088889372815612615140615912788580040537228658829634226438646078339095332389495519751293570753473264309446076206518838639022135175835247785586134400600871021584920648748005452331547145029788284546950702646761517496573686170326688124333400290987947487628542209151074178843334178408220279739155713927356433382959654728163600612288267141560836519760059094858555530196525077963811513431191055065463414996008760507650483412437414147524667029853091259759682161448836580825115975321693830140710327873622847081120456405338915623281511916516934040143418376793016331811668388613177695676086027924238988077805235364639472592718238909116021956149856078243953044319914886150191614614997963110963222079196140630523019332858329757276869958280388716182572003296761113230651062216568423666573563003649321060882698719760787136169477940638382792315177223101923515064646489527886350299396076447461502823164933500017081382089198856307437655760284653722856724611911588071721107677258594393751808898301394615757246260279181958414646123646815849128826734250497248658232024892045351793865309890379274585017424754892870367236354993363690751818139237928823758080744411534872234580847362951217038562815081508040146829575856587155844261984797164849008827928544533577814394175558873017624744466084184523316178964328142911207342791802177381912511400702780922162729771254636930769880889598944654751121836380801076483530072083982703151442512863940914654972339276897026647057321782616417995219521648278182501255538848327205014284776793914454777582055455145904131503471771510741226465316575531055131457700600666289866214396249771395816214677495075502475653672807741697932027807463082075320698626152022671071959163721358449466330044645411411858452423423270490338067863272787563147607989370241874677172014012323171134634536599101323889391494289742683985274863564859540946829204363206633645271480398672985647945539568012383315219169213305428608002319119404045120148390792299114002413555194998391736295529757365813044318097457673269883114083685449435776107621420292205479435618189137335334718786179510208372032329047774299665870189980347181027672164882817584559007480570462666007054570964523109236545302606224938125370834511000828179417246460527697545372224470873244609498222807638151627487502354895523906804782176810078351333904422775122959480649340800956679458352801518378157233922142976950882930287402465872912437524180745825731797794136596124208664243897778610949011359716484799780692170624716983439563733799035325561259820193946760392283271593339917200487028255561734174659087469536655518787297887948212502042321688762526464587784561151966300520517214604238669225695712195113775810045452915905922699615636263681628933224062460565572488267883941894701241663473447591550409130582214232454215216799436576533933457521177939350061062051537477524995566016721954261603616188944673342660639592966544018097361592548860398091130407302316353473157968816902485248357802490697096413305955752782904695115724790698705713334135083249421240539078873313472886708020298474803976086295220105048649751104692961521859516138068838038822189439495118833864731063683135644388268250000948276806029816640069487215801771447284147549007209692597451655852082043869704168295275389764443314859172067425221136138400557687756741253427020273107281563658989770449183294706462713011810193446525018691282610299953329867190470977403028330033483580481203303247104224479368402820879827583625346537897126373162913800136831387169799784220617871234245336828868685931847539710667694116441999172337287464206108261364609553589331007987397521020689969417810552969110934932831854592629335133486853525471842559896742278565126833640199916305206042892266507147793030546446110964306174649834412906450957559804429950314953769614653058350737328008634131679297795193721716881503387139612574937626842639749819251058368946188888178607394163780499414795303758406958028476989296003714992060149676876976859995589993672935478529012746975226249351039478245487353492164467801673467232239799536928254180101468259007224484340361001643660866117190926653999707905141297533630568553058023425267349878137234983247611626960098591973764209555764039541585637819713162087873741464645073386329862193725743903035503749967853246696483023807790529476248892662455266949809534674282525468960023945814863477354620770324964446587141932669623676862703851325133941290203203436396030273788759166422144118629645687447522795597208298270573211982810963061442878139184013266971456897107306849027889339365077841887061104491323843925306810383627670540879305509031764856413632621218841020535087885008562247741953298822550981659911112315577597259891898415797058013880715539141884323759554458641304507769316687956146037027179045679871603774031262203689074019517362491456367570952413965869811005062088802837830978394984865794393899018366749234382382343161829191944255316935502900308870898064577501610144411944635833892701759539333855150453795408732646186512541970352228956317513230861529261717566573578807348938899983051035790252998882997963981550158095196784238776480691182024327243350258117021641987855847131026974348231901570328269592352049061742948920644040503282427093146250400112299709540878420912226515991403070762295413136495854390539487259849610003301505221128691108888879820726757905611626759374943288924625003092774760871762110955540812852059251674361830698301042998257397185784854897835629676327187108788636671817370864896650124273815720961984929257827798472337432429902119124617714719762389411950044234607613590609429754671570794195596480696687208473490007302380458783019749492462216601884383042230049478169720036407853064502604867844024456430413987701227371114575272186840468323856086802397504608663534555341930863537876270858076877407023988566086568684880718876213466684374885388048277569047858254735908437906998378556376321389825287922945764353326687259043760958931654987593430693558128744496054157365619341882632539415610206056006162856690822451504665191563850657424138007258531752856062876569643616155610406345057706730660888985540905035671197529664288750009022654148966665494125516027519969960079230604616454002986542862995664818829294139698522479926209129562275249461602597481294052159298931567839737788791524351992636464960959117764807149812362160105754629640639954902045261675256551273299000073821787086703306395986255260605781149168241553726539719583071387345944550770302180425598844264721954279889627644969306709720093337591870928219417402287253349339294053237895972980725182040943311015936726420040117919275577983238679689561344771120024854414332317443929421255738435451208352563682520769251273452025357358151579514441050486194108189368104640009035706328321914998382281846089531411243749268268249367093306706636636634915376224894436275144307319004952996291797114388787022053109944032297774859372825671807206062762481393713424269889124858894081488133831556892242586150091155360169059059175736800134694453543585416516087394019195592748434917056255351012398707897292171703076877726689760639921155468231112226753182033570804043304539558863785983615476338611725896195336613017726328561534767661139976065939366981022964269764230026515430274173354908542184050497039651999780336736610341269126660674760852515374197493040972144480689709219840750890462934478760423573215244620581688910681084895938830450276002172413865883727573795708027642520120530961251157810234667905260615930204563381833403976063944711224534485331182311791693436498416241279849877384657431124062435330464269970045743811454168967307133846073526867941493991990527665157935145024294401204627271046397642269354158804982721653155499670133600292967251005078308010432785621763809170760675875772468427801770386190679716267074093571061666144801810117642516660659998502553273692609066478801914662543337732269730756358187535316906353189791159344988069094953321975419149926747565298124471456172941505061014910762129687172893465103273162515999331109793190772247841498564429499240903642651047378357188857231754667668347944317021431905421648460869440826805093289776145363073623256056865178240148176954096538920639035620391840481631128727022985617987421755515120570606421099811178295433793058441150289002060425316613938029883105792087316026698012574428535315677202746567292796713018832571804713887724499240768032748578125857289395784207334725565820523905894175090901078606738890722009274850010942362411455131361487932955402736784429159477408521963590364079433331218637085457652937065316476760835414515570210634630919014999615246994480960664768655096036705428456397173047664720344536765726480077238392475011767183368115815576864748573876190482485100716321933910331570992748103914758985309235043297547135841317006539174222018850839847731480061766649070883414455159367045975066546001387931576114408791503599509669791776545766176611889158607452593648927371739136722888215112291120776324699601819714272787565168037013652727290083732616433578174915823299745391054415567133269684543436936677170987043102971345628238254969916202185563781084733684304256185148992084018691351499620487553196154953883984791503599786590411628594464365270761672930194498612988500975484032126446441804939106643011315888365121466512331654812910199019349090181834310367365231939762931119528476368514824330269578301175077657904396081767773128801130122177503256353545472501002961243115919265856936910078344384069139626297083395275374414208720809212639167859044723835651898680832629955084626775976582688086111672887036302055362650924248158978857778544229805789728264913150216072661150835955072885175186342587598125933331016398973171039533906249279807436128045856661210947273256875671070871276016290094796840438436504785531883110082906293633066471524504342899986284788827248248584788323120743948193776997329641868047342403515470850472439059324167373939699996165807967533646664411885176020241569981149510780570444865165089035204145131780177008565960498558567189561803330842103105100006159533940549063315265430011379129399238413966743059493780073203747590089010532218980916468427075019852153840317961732586691281188430558656787019869839086776001164653333445855593644993029968230381456018924105079347512160361677702691771669370295314566776095747996051829941028100260307063470822338972441050802995813144090155293718493689219971764133047698342043375673460744683874643084499787800619884606341818971123333826472144798705638838456649541925881860246370198350198289149414406946041950574082493044504907108345079241769332293606211530139113054802236414831597408285813648927220190194501220891135602787540417580740803836137780504206532431913171322415302138294695344346353856149348603452685298603973631476952252369965953666853156521630539441306803110746524528703357423711752014290288938593384651442317994273379558538348812780893772427295330578420175449174941836080759283624554132278219107123764209147333374321855813386151828954655492975174762573560848176172057791406653143043580669688222859548173774774001935075178599052689509956140645995990191008806125457642057428444131598601775779542509102918769215478787394874702607906435091967594587371217256873175771807479261591482442833400044211447621740259644720409280188814054380509136421183844873045531359340513590775752424334278148754391136800471193393759996670566009695544531198797859163316822034891884274047515079619292589997116412263584798344351221376984433505112198875876834096599235233008998904862706440239162765600403538295749687722984161904964899356465833877872554177348813995044088807503234661423760669791685611341553604930390683985646706904199891363432693116085508019649524136066128910682970820732590831242169409739710083686911354564887867904171829097029087646029019817110102969330625802981854124018059440176870713962216290966553504240670397642538115590386440228671146711748915558436317921763143164588558827589605778908536917650771751048915892914456394928384045447835302011297394704696765284892820441263963955205931235722529684426094042577183952259595490367526237839573540684726677226858758754201526710732031828352826538441087841606288511276447307342341165079169055465607547159212032607772649252404299366058104108308193562272108127377544420791324786803549005828767545086868920051451893257813083854485898972577977999379128479649066694497629120337452721603044883638320404595463076524427541516395051875040986059945834323818659336285103997223287853848545683226445517055168208727725428802028504699931621133170653657674813054584415835470463197959177444604083596027921550967567755537026210951254583828230516150601475162460192523161557805950881067397025479436395138104306333797899968089922788678703798197521681431378925198417937294448408894169834209649429476102681901588692459050975134918681477816871976905178041346970544702599780724045671039029481273549548081154420923742821299553617465347123152211606699447298986228083164632633745249267709893635932591873131221940225663832446505061501930366398401154404911932583411780382963515795557498394318907079252304724538909429166059260207407984235021069649304781609265904620341762478968766345338768119297842408386235056416621995816566333385635281578561710506608597453831020749934409605986379380184849957019580177367560788256713639398462717726749728912463059046211684870050467400212937757958408756756700471949610078674328112066450723947327991447274950533361499223373669376857042217183866668591113452095936596267298318283089348186830017784383190035078070778643993504327778164546018366122516397711425213476979179225799182791252921224376748942641827294470640722213960098031246325487030674323298322152856035718438517759871041950662278943857232028811977918667866303727737383884824475033408540487899021436798201379115332382020430230038390090700385983802013831459459071509765859606569651724657251664045581566826450444779999290361042287298105732092112463228791505819764803991197287931538514177952303120459859565596846005981024885505590590025369679824770137888414089801391694082886992462155742499707237878425564915952759040677615955421241367698681045663038151879512493113215139150042399391716344161330378273779071672617108297334220670972501581168440285923908809456438071528553946424347338650132113281709220541552582597493313933313637251472887399117728336258840074800271786678506675034349070367175701100663792316254890000486251108132055448374737010943428483262283411125254549629849870038404573082707995074404432211925619405450481030149740551108194673129531788534884523413616945266714780890562889579434803086053643265270540683346112136642419591142799384442482266665546722872469728461261517131531131285139987706924122335445894847665471112463435930966494820989143696445507065372803434618396294164037076792943902600545168266283574104356314784052688038701908863509242985048114665687441185646891223462186274484240695333011609200348367761461194014119693097621870206080523164446589942601615787849106813350886624241093530601817221685088460142388177088159968240400877589793166710840133339895994626018113031165419187148587532700666579766997586521785987369982229152578917733120848312870421011534754497159585013184975993192208944632607858471558725760941437737938122994742937446041235213492616473734244443700692142574564264883413674109534979405511879361816048242289058486204131175758942860842497736122136127458301876818859763202267265740493402643215780479311339163715624624648366568341098842354354528263890428505219839920583632325432180160956594566453353302261400349436911216510726186321870238319073754558148502245040783738258646717789506011991707068723108611742989420992382379702099140969899400665492432095864092920120696702767190532001084270769406980000076186302617536895956302708434552146966473139322383620978446361111746430667056311880699547591836055229521693321761103761451481928191590557767219052125832966135389941102187518194654191115260713993364062617363300100164011753408998446070597741124911125351830809510128130824538174615848208149380813157112476136576363059476929256390037261142014833229136099020543502607882849135638630154129728575127843351578434221152575959178783653598675524004530229947055947817366009179805142662245442016459471084477621451548775289708926957572550016747527613124713241707337237428172353485010180669795907851511060571026648440712514402590934164256511140244979202856782901641502687336318534996691207452361991507403484301484968160137948275834338878364404148830566975145928231357061852002814946914731673872360979814776728019310425249908878751937374005725208406829034622805683263118041884138519194658032617897204354549284255675159707494897437368643952312088656174552452688674726695732246963050446493654641895743431373395918365353204117136297150342923169395872178350734407921959103940610809296496902158344304535300485411903533685609715252030437156377880917501506324739039700610972028969477721674313740386034866366410652568409372731961261520035153573306002864417845701480379483291488478129125848036569486418609791130295963151957375718550900227333198385184747464036356584128114808653645619497546998670331229294975536618685810813209943708804350599325082331621809308706335883212873939194454934378430800605256989679961880784047419805348651288788980548989769977611809421185668614138018763450850326730002947916764634365948971455129488519296629756705639641109086626294145550325334074260741901790794872758328967626278233719182093289385433380272523019442086640488131617376563770917603316286704910700216832882160669148244809797205138353644861709091427355046410267365812473243585948377132317569295569628399765768679305530560071523022157215123475754474236028136043224985876045899290124763462798181139825624159582918838091982086635362759025178011333206280479141400071213398835730444345782321909629549796399417721867955138214033680267428931670999064938755428721559832564055272412222357563248536535145704171856652620507803496355187620191232933973025515877699952994691659737106747863905662266616274378420792595690140778584869962402536051995506823918554947821102755171197490316740233884946327281468347180675982536108704847665475938660571982632871134783500990710412153226696623811615886272600650468173090701629633409803644696855727039727178197869783023916360055593120966216628078413233325582868823752199847168044588826201460966838094539355740329573679233188603230228821746294582623039358281503865740631858498297245957476704105608679839147295106311145001100608376091354276641034432700313444070998805971019085019431383285200807126803259929959899292706361848633340395245408383496362985006396409167116209746086490920217172289995183650860152180498176112155928281814185665423716292401715884085849702776707926399122300803858296462504313417266601972294823853137948965420594238350348711968120753785831346196881960775600785674134898989879557563523683622795011146828627635324691863377159265956942135511515617353687259798144638252859120238738304733062552324997408024089785403597579676567923286272480404801879403541000542758276199056839680447945236130569175829134924572351440931305963999783474499007572387400472116746184134318213336382062980390960662794833351698871558491728810686366803811058773835654217688029811141462506837082742914992797466866538927579087011441945927373345136673726077838165039996730211025701649833245881484575453658634004562011996801882691509846529377581926228541061003808480701380622280165147899601269835851883775964455077290869026882220301170987439684849414246670303123411470880631782717454003420276733962869042994233827654196331547960625333692183261389518902629669138194492088996594689873261854706349691751512664208542615086875254205703956699841347795917802631576797254308592097890038225403724336920520403300641039569235224023684908493266744469458929505989067475862824562645756468644473066411186355074541945871172814264012329383841950749746100424903429192325263841796809762102568658685899463290568135203635435749231190479135164252142882458954122201092606109636391114306850625839659477931518796593035855316845063770796811261423676381045334194096409076570802736525864787292389740486215481554830558019062407874085765322549081591961469636776277638256767545585095244880729448199444979151833568476024860747858126859300891139374762709685096399479273333446395604638067115459720701798187899358330496376558095557342803667603732770960889851136684324325641288715609696786654765021626073679226282423533691772212549063287457231172632803720972798610929331891456962655590016113735486482169763967939585030609766161308411331067546261996441792805375927293404412721007930021938958833342403261963338704220193599516992855247433946258903924938763685735649560265525370251588543020211250900446733492387495200468294769190633752896957520394873223211354465933905715754724601059395181508024854591796513306219252078606340525307789684138072734596716868825016979355017679737598914643141857722160400463834326892266582656258205556744672715194947702876240852159158324201489151133167148912018792911200629895121517504031820025784725823252270097024970986106341534248869240985877850617236885600955578945118425984685771673659012845445013604266831969523980518788389747356799008085790587506068465203134606307147177718558445822306391586777481735467771781619623568822420099085640550965202996362555690347887048991509457908394143813473301703748078574646433966581566836192352970808123579394599277798838432379905105282974946126302442090364357369991460664080113199576491821369004085555698113077022446224996516840760056661394648046929814398420527887800300270327593795787024465049955558404324651336261153811864173070602140598930798348346314480562008863283653090178319527280732267366864236854302258557473011911593264294071719867491038309216071042851374165944611439937314110959732649291319808953169094998747934442682624542598092857576439392102884523591528478245175001557552147063419629161132482189032455247925203401559834767809148113028788851149712601904570544764430231322504671065160615477903686292615517727561559087223240043053717218703790697736840184698216016630761628774078064610487297862823667956969922501999480727468333634569682378874390028973703804869337580304859551666933294214449921561685022689920594911736246718214734975706973139896731700899956827663359126825810896615304234427617095649183953480602261678179780090034122416167628159809530139278081782337232554142496775945568770111020702091063532696485413688961060806575408516461193431437977529913802430434244848481254682810174898352143708430421299998180584907502659919693796938041340986886905675580071949651185387213018734478877325419074697857342846949324198116142042230432402556407057233013802311962809760634913587409434313527714649999791729765167086969100539893564502496881049373252665640298039956454112442751415574744547384607866398276360477359586957715659026127736422286862585022568663085970862032957370045678935033097426110560320224478078347276720595636326809214267739108800727357633423597213629488539165395593495538917580275065835631821983386243261170166861804824951622735887446841810431134433741064459416198470797546794376807097895055280591917982033160089976568001212088985178624508772897058297292267738292654230031699916212808422927314271685987975143448679019505367206103356705913362944972633767853999715558415242904741237826125874598415781794993108195673255430690260307362526095824323204245496976339422485662418242004406872426486631801712810110133368638518185134772101448115083631391740260599268097043631657436137346193650594017065597026088898618548120102656945638320313010364184660962674937120601083488211667084849632090943537626737851119251529570862088720643611597911056201600914683017443089150376951909098671027855890434628713167181366603762510308590803919652537963370881687115523888489824332609040801423041292452787267846321183971405065012661008733120400232200397381022066501412402434423324127723230972850016316685537496486721154771983531367200961316874612082680759131496235232594620615063666604998360348767908010742655856550736798590009319358122221438477170648923001037899012521394817820481352999353837655169614522629084665505092843720760536516808619838304917506485284544118463949984296535943279969211072356987646541490740598303018092466871996887954623356854961303772142015885907932416900086378884743578147331278604673082212993942359240959530618084149409439830514643225967990926905522267951782892643066175389644487808515922174707433447854924933916478922326595162806515824603908374572882485698163034696125959057900309230615602191001843035816934525205584101845017350564524705480431819850095087727904823184343878915440903479960707531512041775677396526977805283630166310710537817516507325298706235994994959963937051982019069807014013946932843516282696940705773670463135640944921673049073676829428568490634895153831569048407811706418338968422356886936932192063261410582709885509905494831175534537466396867044674117637853776061542623684849983807103795212817996626914419969190365294273960780848089152301825139473393470066128191517116331547436160026245714694198571277527410313717469971761611258043064213347432023477824071078294676876309737027739486179133724574936986279201560807224820780232731925179798444016708099297485926998253403347340538501267124733133682963606735307387552578163946642375255751676291802610250448569500440553627598724644048075887615531388417566609531731030366780768449269111672474447104348081819963127887123102324172158249393736749125197626165938036575144795497293261608069833244233173133204315360424768569289855756818494972424916026887212660279722301389735086090479251128891839633622540834267186207887727896247069495683689163612684248220681451722875311161123624964469855631178375220570853594933676805847510649736959978877936588738487959279288499282626971326647482469404631066652488946738850991055366374691143156457095202767160121250368342666350750579719012163923463872369920939006439028563292704508893116190707407446762370105535823103275322037770556114820157444911724934746483360061842836840853328522960565522780449177674762868848652297236152327303336073532252604600805556051531187655291880497332271933892887301115824751645091958708516456714755224728864455609432363274083387603009633805823744971770448864068860679357944483662808779990885704574797841994913593906829193980516966217816529421249932362095373007401024667653821594781046477159338841653092299079872295087786103170824292015759084543578557108374093609499097581260064639555440943525779894472010720796058599629908573549394213198073111227245200964929737165477431671835148334857496501171570656091360238381098001290506236129007311370729189017590468954165089846466412766163935995350355361104307212655228095357844269106489397765828068995326335364226670725350840645899200510253289826363155568517588855889772061565841803526916531443703274211151894558108479479465461176929134007037788534479434465715445286005261688686913742355299313974552736354122064968955215579474861914131000957597816510052921535998389389487224034632482199883948152398555050015248111905435139402622604976405651541523090601602744933245312141403595544488175790862891010523423024821769785766381244045668230502029838272760964842613251275443073941402313653719200280192758023843386254403003261034984713525527849450850416359097332799427704406167635404515921368781753678560759656203016688864341882834528732107131846405022016569620382911454715344136891821793793640328012521309517604223932848242083092215639864225599806764078769377539888639318234113612079642077510289226522249554008098367898464716262886427514574026904045826305279142652108532105677967130105661037916441669275027633219715414841430386433067200659264711221223310349625941394852625468132439561036743846595198296521777924004283732435457241544197148951157299392241161068946618478575276381838796654323374756366411868353106435510234750392109593743754526158515302173699255372568341072104169547645503883501059997207242196443889328382149945420585813458856195261815681383458058753908393988393870213944270455871183156740333359955004039779198830240269294538629037763752856717409300491544550274624166893553276043873430172317648023910774608289669288388172945755278841810399982091173216293581603311797163390401447126813073330232373117837220749376048585520652160839900316798382063919579907618055886672810366474946221905932692327235993628911981803101958223187595097461747710713353987380087289416159455266887455744910746324238688873504877326203896614021669917665444733126145198810120114151972448859583030147278232730732492096754383067121395229803323445388211807300991469070737297953236372816861798700736312621904281540491513382568965613534122264990756477990129455373340830187030368580167279591414321813332299754022631126436729566402327010177063863659789174883905732583977471200552141549185791782196401250189580411525618996313311372562871586828892050444486891428838338637037650558983540888238030083165241786795283204730201394236591711374761463120243066459548811753109195727999818440827202903368287913949635646112450969357326916013560798270102407905177561487671322096943142929017007772975032475730537945629631568720044845407945022776568173579946070179118957603986238943239246310340519452000274725914048785503229746288380289152113376934697584917662546350452866378981596557219091795230861523253921010463893883090596895616451414395143767580839434089989262320076206464179515441182571207275037833855319283445644336458057860189552195606539099465680427666328276859279606242856779413945486249725405172541460748698168957818000261600855872724566179036391433487601295670660752393826400669157264512371935120600334731695177639027155804952773496938524198897733185865942448328397145275358350883705318807089387133522166991463927835989499789492467198073179988544582108289720276162886016037925285761529152124341861533771617839428438169603541818094902830385518284928689274970247211160894786480037578741138427134321073534211397954334819058364417954832851814679153424829858031666093524633243989585161536450015021824901432044562760949980315359958077818599640898031211747510140826815549627962183756493292524443112861265186628835200689304236782185516617483302834505936809104155647149503750888672138927872627797034143796728112179159225939149094200934983881343103600450257338238917256462847181709634681383986141648488325974905683928871775647064091936677559917506672284745528185211353574255636125208272361626233292479408834466473585952254698227278866457230363899414570341523099027960708565754862143842388046051444327389586469496715995081244485402625560118644943000854543541321880266193441681102061788415785234384502491922979357082826709784795744428920208469671142025099929021431746278252289216827485404785919638433211805005500026708992897316294022724677444939813624471723650136892628945023600863393977905621015100493551574159632673910932408772997259434056519270824523421691272775690668295688591935578477067112106956026785664496904466281284509329288638330128944581673414926846789876404403855842802905877708052782831283905412400744428599825774475718800488458920801077373124983381434857114701461351545703130420603169816216033831082912309656265780726399418521374603156611442361547312414516028345743377548996622348711768486942084125564010009434598829963213592539044996914669694199126608463725770333833018586102046669496264287825690474161697072696991587524606600813294632299256910167441289093517653679445541747869873055180529996203780514308965059012163218380108678672131722486091351618254299866511865237706788742754961327559065553855569408664136263730140777890851799896910701266848435449522501673765429479931440120151797605491127779667633900472181809282206695549678161949285684902151241392411438770885270978187858250699652666323138940379428225012416273885590059035808322906557102671080572869782055122399027947104905541705405181716026526309574145678802440805625161123507315294795937459780563544078957795931960604480062718505963123970864284967436971791453040903187401473745230551017600100155683787786386078348538935963325955498997105213198890697135604596547030907492514122266845978134405366930700264752213789414603101933796541563916056977104761044214015947398809191760470207120326434602765849741266756797105647388282413551867205859918360586147427293446672945638894984134194479097038839544589241309179363573171712348581401181898352490561101424631160430640542483285989048671628051141112069086384479566525200208487343612100945329037239064810820584949547459843473603826780587681629465577916463625133789090706830965854653835952760088807918852814998455279609006432791210469373947127699335925960811277817230605089386549746269210325162479111270896922292632214000074119617003834427381484976396374800068121468951156200213327024048455286817203277177888643072472830383255679717443096713146450440949386172155928606423495028610437428959848390215457091645517428952955703830823806156777880064004598386818877881193094707700632311837342999272455238215966958371898292094545207231246467283549166878188685800119534362532538776124835613206426215596623435983395243516584129151323940352733036199901826842654840997854302161845825055439386697196150663172241865596285373016351874136247123063537970267594612421306094236476108624999180305577013548604757356786624774004702260288699234104417750073964733255826146051991012299692353660958792362910237467391623476480547044314058353522694202581998109421913514083967491522361798704392580401734925574060302482783102691840815922660901762971502158816964537691685576820687954255775352115257481852940180849700470032680818394727144272703472397622359603671262411018462244365873329098375952285252623422733822681216763439931699321717159576077304670911952093318480029871336245934759014169989670510640341474648291573679093530924664268622674815731412171468001605162464460128490736620955350429528077851091625640112468903778863232363829394819458747108141839443816046061131642455485630325137377093113463347801343997319494433879893669986232743540786152830928978582591462201832594510144230748247722858763370105947113650605649396193104196736136674828361635822535888414700721909826611770853830471888764389537708887952244336713610802559756706642596951211999115855922637903661612415562536918823961574561630555477303206449707018909035841164115158623694321488840716850724053500087170890891359305893879196459925038033644652496321767537758194223331046979170578449208216863536553108324287349059656792613993868763036888692708436976260293414874702486018887002376060312823017252354147991707872318766046144142018984448490169937341059262864338491060194958506150113503942108167294087647702225585242335461872500301997105635192353843321154662323468030767392468564740382422164452261816410925970373110297766178190612125569480917297645378341958016015913532518990914110368346965916173807534452539954206277995130817175736704808817287969353824129255035846265411706227848060459166728059057583138759001446037291291991998726099237750461374853272311483625775456740247352997549355500979152801999005520372680948766706255063217666675915375297407274894492167541782456872362542464619930667484698600496324635631282795487777980638760078009001520046949727645361845373281356004114700658477360749449343038832769453521879930912783204837924419163873966605039310979951946306997577015538778711603349038973311357611619984723892873037687464183939481012756422959075062231166800772645031473876160424395147520529191012159516456142955754772999936100662356718993829114515284377791444343350136656293171501540928273658290437709132510010083379510419555796846649871028719420540215644011623769209635531913420682410249325575646443140161036255520301695713906007287981014871592012176852988690706934045342343170219260765997748962437267881851566307515844008747699365780313104738799950700026141020692403569698679026717305308753628171515769654647685471236777651981944588206654071717714983739605548081818123227783504597709709162739259593332093659216046807936870963982892923527639102747247980294730919576141143727510780297123020592317086736851863005659043561298908847988287062127440344250642833804816134224064218949740813684555805791203207929738395776400910378344344125376592928887427356360093053027594881898506290068827112882306054864810801868435424692415361526473679102989167344015436043032436240955857349742948774701889964214879535667507598863451896672055502326054524977913976608930516596842538255546235933124942232364046784085585912947819470347649154297659269202265257910040385257580170778671833136779631420198043798200010915568045759048037618395888974712242429573921007109237862374932359508713081794205958354005858754409351816586684346656754610201794675739185994266872697002192570271844941238205324800640723808047201778030135418909245610818729170643521952283542232324461660073386725306566316434489063907334728920544331236547125303100357132727471627196855539260919324936797333439644755260609266301503157918023442693191652541844272113599335497227778212437380494610837757150119956208372003623580721189215217393950048360508558090102762436487869701244366635266654422241947429797987394330997008191813790572322090964540089017204031709450983346652882729975007594560381999355612343902481511079795942572868459146737700013693215111946724101425089576392683187036441830291535117535978468695066727567540741740441516385445557927867297425121707915730769959185002626746427607161214787050044440914046710241809635926699331192867472962281991364030900470750705685817466222784056357499792825292843525211532644010738363503594156588157703047842481882948574554750725061850218397786938792654228414000748072903648314033181835937082629908188049685437665620430911485896209345903437055414321989595183767961373858382892036025203509728623021029487023612227587916080238835077282900151702694800178681227208369888167243899358996800006931564498717376191767091859215218347211739450683778409297788248829979534221086631655961486582436174802259448887608193893594882348175276105908143958869381064030679302888907192185344850743875810458571322850081927074420076895347542020375115761244059995486451379214612225038706243517600180019356482858678110110712085268925697320592857689623651107567899458888476141243994441602623427185477061291757024737777224479368200851674329938976413001861639383179265266268190472681124965327010304415597604798935272101590266860980085990568887946224490165216843933343613640699493235102560881493836378625009530911810920970660294917984559476216769071107255349058784935599385478498444373864992959014099130919591238345576576840475557890744120872045817342561624716393407576083821243721085326753780846417495054496090486974512786432091374918052753596094579302008994918984075254969712377532009674065377321437216405764441184382875432590963101509111846191696413826960847603347740701676122033785456058825965238000361583962916184775442204177009840251762452900796269170024259906896628896574095867877767005816994879783792004145181915154020811063561872902213918631047974693364230142769181944939651475446177476695681386831692295121571147119174580636902990579350267711516268025219794410339207241392836838286902303067848243093508843890495779331886126899922141279780416269798920107981535285641829824405025861837669454099265065227856436994360964382795146520747210474989173763831339390960700146229546933246484604442366719236422312455056865459251285489201326432477083201771582664583442588198537541642344413476242958204076029961386600510606474679937040354162626460103723392514954296001224256026630972773661625429551117357345747411059977310522899352511835351326809227386729858529013872910114128670361006479302670647406195766162863878896223169963711361288098301757640038922412080020829917432227957915502707569526118169157884894163160765491984198400660478810823112179382584301544660324708823115094531992954013789076572628925143677851141972516407025556148416903322447169746774382751637000858845895485703862094884746553301811755567278552589844607874763436291622917379263030748917999149123797681166402221370411978743842227227287054416235238344178229762508336996906719365755719870332286920908436158112697917936751574529674246979714286795319924164309490333842210485901100567046013236542070006556167922387098695867242049486771059810862467656354032636347599676640812452347969468275224273490929086722120075420442978440321040685936250508722359194577914283675718891753298166724793896382108456269422897486641288581677657045611698757211650415489796427328065193982140854511711587454309795498689109188174592947372996127772170258885135961631584464416973102862531557386351069544439004963602013019262214089390185307789138284222843865201421700854533288687461674188607880918782004681328068103852273218959161025389433485144984175686513527792342734933653887970373261039284517202212340366328670954228789656101474721832914287118897361896810926946586305840902452604937205931888747483778841971671664826092667999549993781396591900494817918596848842046420569856267527702825440263513706004475929072475768553558626436911824516718593350294996329407621685754259074454889776581852240525207896724122409674531072420239013909822122985840341619414488930281039691747447308793888161025722987428271334023430200951151904640136936684690207326086138002030889536202661844205497423888777676245081494751472513082283493487254449336799889906810849820670233045142842759236941686120729057092881850150361688589533626075404729350364510946851366792305753320603330777970753995191628943033084745615456709005767630914553741372327989643648345239167160387626144490983833930192430664244643720619144851499138410444665231668232968262728495717400106103018578478371062928896933364325741894735180161978483680932789609369210993603982194511981469797072405397141920460254470132196676313411659801432730188731665490604954245006097937185638846310588955349836241333894234169841031583047598085500498477272469885763528500425875594612371414004509316579310223958078959079447363056670571713292715312107487670610882510543755751842568927015236973082317924980991033114706477509121286320754337859720473655522403181090161545915131509349566842085695760848858641516729094311309605108771078905135157612143218725772815568276356656689092036160520128743733096589184062374009320160382726942333206331592313588719154384208878228271519869139093394505840191457545901850173478301556989752296750145209099522981960866783263947325309728557569854240412658215716373667157832033178521571504301141013647457497134712617462620849005947771590838324505564228200902621637590076704365732563198524063745758106560788607531007057469757014384019892396201319585633596563125994887927914175000138532753874328036962935856194662180836204460710751878216929272916588534872487449719133585552579337684606992034009596755717406076669407324661063746418117533735068808653619156237814760078488147722289322298602615187685171118129738650363621043848816439700957989337989629212283115913016053379309984748054242036925120495559933341225153414677106871016043148387387883342801565371921075241632946942527695070868545553109869906418818895924728450745112217083440892753285932223724881541052434351687455926406798894826899041638229188628272558129162020025106736310426581629377560675247703655016567563205472374669339701897112282277420977618710534980861151172796168567683981639979970977712525351441786764084767485290954839507172796895261321777410068225089813894055097020537488086366476253382101025802605695293149534563920844663463649218225445369915396272305743985769900501176148469499223698070584526407972731841990236522859010969895675453452200134487488646725270199219561275804006177034120292994820167525647785264545427589357552194878198873566939541403205020455524843449530283726509375103476285160956975176136340651736622489772855880197345099511817710521031325005753900772419252885696900979525604034579774962783946264387934518478063980819158588056954003186520021736214760842212170007721569301024097798961516236941395664092759621159348280170922366849562271082213942501036124634055505379885839114088919955629061640122747097387606306334939783845252513098534659936408730974527594624792308789515435580300215939546843196224583456362319433075669584027285738223148824032670252410687128979772493811983710297689277678079222310736585177711410011453719625413873715501129955350990327360742953615437382731254101158512180512531888874536878033119357366689489326938087728518164310960300098939731569209155212377262262657153376134935177342994955128998768496752703822199390759158200831609714296353373431248232226868401955012260876073461294118775067554608544261604666572159829133084125508814576660213692417770028051139532651511572848513535474084719420193619201172170163031061001220267052653186854835502156856489548822485856982334587130587008247516227231994785989957308881168863590788592023345694786230737780119906876527875053754034425653057741814958173276701534635271206659568351874896796868324617726849290391240004468462850595546005869277412812146432143080610678757927990456855447886798343907220141488901366975559726209618938246469135735838147737142803616622528276748387834603982671259009329667489437466014463079114362382453084455639655706076684944335626679726302770832250575827578050278232065301026845255046638481247950258965745246497456969294252437627180555142343113510429621075545864572473168879180170482322977546283433388809998391850151398315493668222519421092674593804002647913571024937252916191033319297392510685561876044349996612803452034428474316377652758959234983299127467000653599536469027152672999434006840630821135355566183340717315182127390936905505876991892864628859656292423738839579666862849698078616157326438658103727278369630318187166910469906240295953439329401551798848352904634631090048175040595723409831716459640173584586747335312353935897989956179945945774657828045633298784579862321436480281651019953358822779139880838238660810784291663610120541949761131138900095207831406749922464998661495333062027820900299942281150945347421950951848735536976776977984746807017296856237089304698858334692731489336013929996237600726891002502508840500466544344375410275231754674187721075416506475806933646994473895626128276819192249883868518475326866340176280616171751813934050637284140854705326822650039605218349651627753678041402233045056050514131970581102374147681051523755667028734345723816592854303168392625691230980807397220844511962513594987887461945302881261269457389762414298766141859897399058753580150880262698642947249070467180541923672929347752092698027820228881335193165157345924149296614059448332635676284647605557813254421415959552896032385560032531212122567172349392699281066725553447930187522733695638145179036331314736497898169680998893039320713136322439086647587953252740223306228719719348349441059373108936902565459450506684158227278107718943090096115005059311560371950717408645136423479860599066642523500869985515312586853259786722511584609912930489869583892311182243071750602615072905442576130932244558330120918044466887092833379859499085888654216704243472667876596763588225378928247932692715960542708427207423573765469822030382913798325416979408129981743700912528231065736124324398727079420445498725769984285172402506309570039749654977453010103429423825314594991516549371193874908493562323188426790763221359070683449784167219494741701184488843808272839429531843273869577120932344158262534877657911031991694539528115014347205008389387003725472321563663956488601543981098717225894831333574218879616369340847362407229522739233612976279715249881941861100773228195890306446115152854165552320233815476030680434515702312851543256694236862503227678763138149556584418690258596349183938670588554146769552134350426322617661219850140076920578322021174145456391006824897518722299954280926283601963607957395605246960226132468560400359455557906316034622348000757246272144855872827217090704359397997797052593049404661693423746450879510910673402764352150559750313824899723254136420781834997912791173006231146066720535999593920627318358173669913745988833222292473239910330381814842845861736907762600436911415590069510828936653403506345511957587674899280442350141969984329650909774356802108986946074482705465480631670700768993138988313380242942245254107787272738680699691710264344686938635302428731393364227431152844434532783603599890777013620884677307291413217423746662736158746730620853887826633117464317773332542943226235104241971586341780569577012853016171510938869301970657026342182808856512118133386545930503727212069615447129361014734893552439303266090484002936885600239391953354630100214557028019624609897059236159024239321018508786749024824503923713145446093582255180727542263984739508370271021930444654728907453725086036910801565326854628062974041281566914545518079135548012923921208200322689499296888838297868748942971616212573373960599306973239442901217959467610566749758317929851845826789746208723849112965800896243902241582776356945359287145806198817426466288525978871014394704941267640021407017160815473568356364450160861217525075776996516871027160512053997763000512266580812299090218961842532387885209817118280059550611292786368821020354971080481330128030698150836287624578244427637694011397416227300244497092536696421928069097234717735117621676798695595605282994517797858406322555954273616931347389247514038413246924569475467618908024367925269428842060066661565589629270831701193682118366222626962226729367973526915825322464515319564659563234116584494284517495381802579090559358707350861469882048766297559027760504146434669615900418609372905422940822433939973662779936479982444080452413408178386347336173930806873200753505995534185405010688897530167552508503282914177346388423052566436283827351614731735120271190481241215517122694752813473815482191361169899964088003006360381006198100232778908494765822372880541572922132392150960434293976505577845186652868380332001464427614315710551680050464606228964820395938323397246408183384650344248702217563382124854873642235396674829781768966812628733700767211547183691499899363286433994787885136692768004293735753024338626336433755645054902636826983208287983693065140753645330608557280575593066406377774724040107903591049976280511714887258376824890767366492330654185489064153797697539219433594046335505880947941712898782709343392036982300073590995141476750124489719266521510123003119140469444692567916952523016976360428775960567660290680219212303584369866644666470278150036026841577217321706042007372072267163818181604661700310832940168651884370778206460118145356760593334207366210725556920889701079303159821993454438559309147450240687613879334738799677049101757467654106861683525494864682490686766308537526955172192708031546780513465909848121972438508660734124051774975075188730517092437236227942481010691393331392867804752900065536076034589926855554214786446993557084716566038204067554090288794862097343458748605123336819190567342014348062393826982250645047474177218346663569415910583492526645369248713258324701326787709495220142087079671681550076313088679738098581517774408995550449324586851581856869103323324598412494941827287179949776614997097792998409374517613804173327191265222356685638670733685772964613360438322897877416297347966529614898639541950907547593503440399383143388613591124127992680330542922455406356872898618031233677239222888545581886887742104944876658353050688659761730881581642608345552462927118422094983042380372886536940904622953426841789874956923426701962320142590468032136152087825122768935311943253989912985063487168841428848204186110629921860433422466982615571824163822892763132978530709966371477679441698228762443123197832244522154781751058061604221831992102436198439148671240595630071724016210449065015883308609942753962037924989167188179293657187484231927158296475021544361293123332436686165454153243291101684842168913935044658374498825877423166879775807226196630293960981698972804604176790856625851748816947048292696005097267431344166977689330931642185766723598781567862658837684579892809947910224407531383582714300360983593581280244661266307263579966736622437485524684974277577468780346019944487103317576436982810216105981929508431314326669896436183126427952147208705074492267939407176051210485595810950587888621544890138437621610409511110189882332752711638128466325584456433602146747493408350027227927028748112346568467623670700719635920234001769722703503801690475913260607403245695798025705314518353404739118513786891216806041349351604423838691450750139086124373926205743851869426341549636455327532039204615070484926489971823494317994904017949672755056792207844353588957970025257660072231077222062374441094216201438065648147266134461368926905908313407437350345349253326454157927615328427562399297409694403762850227751884570372860380435337838938339359318172737023059376087779620571647124485195472047382976368275526535400575772102929374981388876133141431936126946208783858265431853322451489629132235014926481699615742981409828056556460375728424836822273539574236131427385898423678633624384195308212612303139759722579894101999955893103795029236704885938551414213965557885564471021173454057465470421025783616450002716646242120328538447876372926189274337667725292045361486190602248765112681823920905413631740628493975405901764834633958763285196624347678994047474039238411483896079389125282404897279429627413976463780272633470417021559795859495813132286032478200759391222386758054440038041531473577133449021424525519282821939124783034276447444661525586455028879294731788488415430214927997497998445069718747782856704956869523103083467514905839025256441661861487756114980475640161013804855607878376142384268496581245526229715502634502597639456586029931946676114309644306255378323094336133318649431653553250635374202276950559665078535216950725165025166507336787273262817993539360023053699481296582206363114009348387787833598272182047081781148834082833915524305724036785466677202624181935516379467730583611085909004164380933414340882075780883106391432912539685532311933211762754674699611162535643072109541783758527670310700031911272712557481903253462034778615976714002309009200271481593356249810470392129305534857475772109157573897024608763466042066670338189323926327242106513979812768787538727564868758089079777875830289540088462985608256350413998726555062169043126495577413050567528218707846989419742706700908618291465178887243913218916534400224197995416938682966076963895083335764036694174157116367396501614421258403706664192595833829494164145376746490131085770135661936513706211572569889532999628505356733373511886258815071509027595779450991633361237906402681109747482190486980880247604784789437759712627627226542255310632267415019876462662490984112148054043292070723805244304003872530482951856209625752894249320964083347233759952939771340761915279308414350224215459524085245905799552731423429752167996875116791147709666301036294648399688983816300472209775005468851492217220763132239245074211258115513576015780714722859121556508243007417554709962332080153926215200593333434081119052534001225949770659704923818811744341450294283923109885886446036260086181895584704395605293946775761662833153602467444663915292960487718841517805836853180802379969750798106808231782187660140418864971309859478853039537862249045372520178259052647731987442725444928537456939488861700126579266482350014966089936367706020364126785256860713927730496854083283768894943130696574335642761124032665900893930950198026118075006809048674952341283920580964090289630173838792291102909760610185587174161017872607671262156009193858225532251327088252475363834839379255462346737147399384871002695962682538801093146011585059120431710614870936002494134899154705384764378994190851114348610648025899167767498627535770791362223884191321683680595314671281068655677633363328476368845523456815786260997802663473076599559111236430556164468102337008960408292144222645042042832642017639136306618166629961091706046163002796233287798310851405540425327838042908594792623049154653459381802835093432966781607898204537337266115640641112123982741169608736607752291173795919956816424261114004840533462470194853840198270085130509250061127750475184124694457010560810402995104490943026837378933288883680872742565461561946815568606694818047971470622883372077010897511183390648710887592334029453588034620517298977324174900116515806194399083525019358831534849107922867517193457361281182312364418579874882372561732142728255466807433091404044765912250539150500913319618508664054750403443371004843501423797875122006741363847489919437755630460083874214362502164453825182464010270872597802941261042746816577871533709106295208708841970073262537929802723277064748737791984473530382149357171524228135949391704475489549122112067739524794502916219449452666183005746957661084828889816239699755843820382986389487303927255919526937768349461855906112138948309642785948424300548878560775030933471715240397907090328695490320199231412512693617417743600792189329300581457962446371097533111151148148936512707733723250870896936818575958250476695280134794765991724248489118119648694013698717368725874663811671492590792754278796249561949930942396728760056002542230416877352643575018314281592675480218064089495510054339865175353311436621742637965288276408345904483828824457165167033398680949266433580641265807198607665913291891810374985472310536821701118650337668299623590625002006057179901550726087840011633286657334493504941066847754944743240560651090157076482481151216497231410597057000076514204134722600299475387043930157576189071589463362195432143844576935331978415129087389760293896147180458856070500595665763341063341821984749361320176844901346486958851332075590246351063686938588519613313222466274903578463430028587497378972275853988631520322511274907110688695237428774924792356026979001778012394108399222007989764789676139752939737996011463871181703870230500874419966374371899963867228604403155861633624082399442220289470889599437396782871938943315428729896722844409932137916891161364134486908355072391519918097879459450892743046044969809631100606124839832779996978630307927237320594597674117713192265813677165229967764756009185943705041226918674126562603589757871618411501434110843971104646800722350412154030595704273827207649538837841924417029475487014145606452280458555624699016308315623969197131330867265830193556178144033425963691838444076599784543357282731050875009522550140260655303264005070097576724833950625060552505256635525875312602666371928205880678134582473347777008856044104502769841659079748929062077802432321301600127734168136232634052262934151836566876472112718411245969082203565174628414228521729704986640843933660769287535752239106498917463805584025030126287523073873769060231030084201848616488260973253613122254730744153702611898184166851370248772271360774936858825094747844755833219855042409870919037623131190353022076082292174121846180481188464055120684670424569490222506645976105664513240787201484168604144134628254321932352116290986848265709167617044628183532932397911529812805411865746962460045386263013860844297487071963218049415139266803978032052538312373502066362441815671445973007169810935947135213011574810743006203590763028076131191364511232024293648489520581731962290955479832421802946040395174054312107253239599872599638384729945721797891252514739111592184993859271479746413386247846687472485098428447014337572468787530386049083223760129526274898075115811211697906756654601205365447255667239459898176439440171272483691662518425859303313470463829117428057801033058854069746556859281975988871473461873941297523740767972733693515200626315790175877199845713797101722888531837012846034789898367017370308741417183469064322658810345937457699651790940201152551198985348242784864375925990212524506665840299358024858808662048110472317208579414246818667797649459678917619401864492649449966147787617753564094125315245946363315991388424375571787095087344232603642562138067041416157274653640557368812317892978109471098954714954838486467189688909983415760252031693947534171173477196845664368953815802912537686002082102450978602979274634243911637805322765645275549280372179894224835610812422264444574613267261440586569042547324154171426305851246354046561051430616566073740781831229384523302962765303205947932607844101088748765177668227241158229514832749959473176356853434382322804482467671912374829759250368396375663293850155443856862042893786653160660754362686565315751849889132286519743032056049654598723371703996954549738427973104168756322951757263510847398197921182074399007870026362066507390376473780894263240946990460273309526122894779725202968441088413948438827793411079139440911696284615352363499465199181776361591764011621237063973803558448342210517303364974873779525490403484503482052556087009823504031095953072075759192851580503179627577035224038417674427697287562968601014964742876191293767808314222382899539730220263071774607144366443000948791569813608903037458730837213167201201794417616821804866488715784446057165947134360593813839097363847835805851414761796749812214922568054560824030200605025779064864207186281692680198044491997661069450862086614395309751301796445794435916351616312308024891023185188322997592420704556958372588494245517160087940538986276088453962182139712559775286779358365408624586156685400483147830270810002507329203804210841003348603328426921488673051805035123832445976183044106754466055876889725353710021609723835869833923289892466726893929160979932131127325365093877534099923272683063107038977053340282492459438460507076449923987717191084037123955205156773217508116505713795551856382658785524888910740543042077774464618882989824163500268179414055214741475989799940067457352328777582199608640362449139635099171351100234157087019257803592250869384106894943588121138924415380452997252053852083083327551350284341605735200045772450342379567398408119492065864159556754225675609032440349680534368235382752618421791676725633836513320648431431646399033782820781734019831422187648540248569336656929819115353971217202778135409780620316506893326834114693937913275567350098193308875899944617674376153771259275603073612890474085929029790380904047564930598068601242021706543646853153951040686866975896728878187075237880410793561583932751492764119254064807391779546098165311663591515797608098448889753479592164868183440746299344540716491360667535909263314224655803927075800121037920107809788127567112740628122851191408761226231132492570768640237834112261222499140304020887250974170817322266846131800614828520851279954051540465638504686753888520956918468646471374091632230684063006852652063339212078477335886034781311554019803844920966854272233276807865488220788597144354513314626810025287802441075458025643286687223731896287416731048354523991109235360715153297514169411793748476460006713779358790552237416659182423184519786045799883780077464725058763327675569627798072653792882709285475610337544616020239313335379155431562351875863621695501764639602024834610206119425206924870024825961809578423148996853032767469958673136604007665167407756039881182869918467086369802613549505281319562460506246849890431940927031755919311093697363804668788293722647316983597119151116546691451209952602561057095621424703800013657129863392819880705328768942918817495794578765629881038971047993567158818548795107215864336815494903131443367788580839039365725116491338447217272073235183998213089038820427784572876953998611394876439403212837160630428536191036013367354529110118769297085832850823815902031634133947066232119585261916044458481987452799747896288444370357527504930593618871165560063170942755856598795030967653124726468495344814537194163095035548074616924968778108411404135232860811626709221480692683646601162515249082916360128243473743136237089422992486654424927889090385507057360372582200616841055480532003668659855937838878627020683313299570433235953106082805409974464857312920344488020864379044714641874674456563963157352447863163784304787806980662260300867262917378628381734972227507577711088691791983850956700511875504660826087860775139685801447001596092507699994002758286598949736710425271922756961116841521804243964350152343063515890217930147144172027351843353498537510536658780177596940549174089851926868998534017268276912982553660829009448265310115123513588594351168096475659499458870229948218598033757758599855281376968120766315027050555705896032823305442714543259981040635527683121290124347326956208435155069729575790099936124653854674444501255997218991192353054167552097058428088876478744533139084116383545536914240849817212990627629352008593119311419578829365201189691493909195358014645215773098691844240458723296149052557095038420596340866335930276236402853470285499046354686668672437396013364280547095266611194929773329175526764363413961582059307941191848605717593340707092445883566339037900370036998962710964987465962339886672557051652320355684333070861012349493697806576175904508724838222450286037066188235763006373151155018294325933980446766848921162198407410318745618419997160504912232022824193305733751450091426775521803772859821287598613638513087255076487379671469107603599805935710479850200039883682639190913425254555229423047858392433420051781413765438681507329591551262920172461431219434296950519981679542718761107028860508477789369099944949318011902764786839031443256534527556401206093899033295645669889634231999814678468234481001087565598705005446107858997710571091354020311744265433059403296351317150192733685709442993581723307737236437874770467507157672449674406874594635560860914233490323380345396867900391679351681449518001994215239003171312937117466558557600961732268986016793402509941780149593941727078533897475211641786294458055396110374986655410718480074470211214714153731595858269248834347867997476405968443388776789979289827547547747295924410016596525757486668951354466432654505280410360582224431334746355191759041213189216773606909417416737303622469050773623110059923436298700117793651918331981278381664374608092088246475594241368269138628586754252337951585885179517741772085449235873840183793907104957314600983838923805640832534736961060485078272248058251692037696511580913253971069375523590106653813941671559814617326226360674491467897247313139504485159431524391088891998277284254318083247333601447768540704992083661836150724817755700402634861000721122907852665170304906445338439177619586472448367910926935348014619439365904460744100958611996553193969277092232575672397816130512351098802836971615376614610463817330600765769309351660626378012066655555441533968519731005036003128133431813634289595519142187997100405427070284936029567576987276862534216217719734610161264057450327340514999696134281389973107496176509621127586908676104282002800851039534712554005354159973003879215211376011191703349423210280721753240349900784800630038361648594457730019152604398249536997474753991824725983178880057355215847738883665799811084580060848643241977283629930401250477964605720688797845433390880058236763779771434676614923459073712236872097068871548081341100940236679923881614006682377159300581073934207095919213317588772514651483612761068904670692034095894713764221757722233164552459903216118247851101797930442452441629278538190556962058571724364219486367165304539186090560281264536872881514860709205966973657192292656140828584584529162688879957847282477015384705984902002344840914480986707351616406440568975597151856572771798587948701832438056062326290001591837075183854317716038686356996196724695448175856321361259192506941189271565117798520274582568107977174477477835838144050879140710499600591099427972212123352343719216184265565830425585564661848330412570861839568079515324066139255820805120153850793726100866076389843265471496076833729323853047450852265011378470960923099329858428785242420842591499950726879349524648923952725051273302693936181164571617322346046773709515933986106976535725101417903300030965885997981958530305182548295594759621541300416931396318726281058539502891733249064269857642867059643017112849482664890477700057146626816641597968352532296703600689235034266256701899569173920708739860914982247704351670564596723100610745233376541007961464412730393407308439353901136581307667222070593134057480997968442715059087027308857150963740648405525862331421550606164668541143032607364470359289859458166844017054200932559052369233748367282393992915589026310182974508381992254667846770356574545776563963530418012537971397269393340710518401728006943966108231064224340590681612837102641377995982647462259584824893611984457075066757785606843894243782988219198352496881114135846371260684173072354527188679755128412447934997715427640555141349081263812714934104033000707014427639168719693276128296625587815480572834329870918960131310062400591162443147593326995408969711489514908563523244601106671385784433092323989816042300793207629888916239899252710839827808186197393126942514381936029554488793272027954686582409014524016357682847059960536073829886817685546182323569107433845495301977352904478201293413260374187375560001930648094504267874990457228020969328222186977512225584425863770386079311739244791077987946298041297435430852582573958757380595203349562954581575923347091605003113900166066884932039308519915506789630297405038832062217432924257366549448476168434691071951991458826267684748802229244196158370560119924789426467068836776863378555300590078080450032880204844680171665825496373380307407455287222937473126555309551988793577931122185531549061279058379822540805255411571710817004354708065534771333009438121674278939868961165596411916020874308560599237251869415822999221616959234475373597849197911391802074438190264645411183522670797224641301635780793910598170278040844002246282174695696377900676246336474645956521307206376584665632673297735395194466074299018616406629443308943428041790695811210402640688170469974024312984906187035614714452722856654610619956011505541794563098462136995710724658323393394888337262319332615971610210969807430800574116111917994200611024784725611020261078307763017749067289845129606563452134697759290062603332208164739775724438611523165755344481571326538459845518405947671442231224644760373123367735379767566055968757958149620399586403004662729221006839958123124949955162679984293132615256839434582036195757622378468190673212827359560197836816063433407841464693371597708469120388605605104877948261313155572743102798137969252038719031523560009225607152876025838822118258745273765614256567080230970279397268863517976530751783970274931314722598940005485844145266259404209503066020094340617214885837008316144940469024431686174107125721060428486847227589560883339555706519927579040027788627949753396463966748997454181059391093465944118300291303742747078187797926206848070001235218169588653236517751030901399992616341940477741267144833993537589302290899901504205626335324319185343688823069216095307225081785500557818191772453770263017214150532386631654535958894487123982989631452294258759714398661042935791752513891024936389414526816524438250035359691989848953589662062392329546532772769216032127893959691047245480920753247889425846948585655842883303978845048596467154998210957604819891414971903902822528956665353159026837991585755481385875246662945703824830691478553359060481589374946080394339203828711318179786927870153364747084263278042287889977750624679267845268946975976844292721094437813681970894489188533536738069184793180510152019073752807381071305851497312388735519565358375934792254028017006958305333198195962604690889029906863140220816788792106821365994200582309164156773169112993310732893980844482668964678523385147800146158968808941098026211197090582474328475019539217905049105469373665245677893556502361269860094762977141990024535525494907241819511902256946067392484979006004722965764310929386572402054783445614629428667170090267012893053284459363151844486318278826286496311660337380513094481068947833287241359416514552209664290981547031479633885311260318231729582065585542482179563414047590125371055500346269402182943635044545621751611215146999908843835703810035111470415088781423900491990098718971150889740154865738748159637988729684775081413903418785051819689037502306869407907002475877658050014140017005577327488577980949519043382001015716979136840539209952457225577488996425582474907727536330176022205845371150457122804865381425203373547366131215343593710066661998944756796147510036543595335276980067881596035122099352892916538995442568824083346678459302616860413243443489990931641411157772324181603900074212118086358464917981464040298890682630116539707023944646718046662276521389204560127946554720335257637961929731607164460910377013125451286631936523219117965993966063110922221589258994975542851978800004469270810189737313021114403556914451598072477344813008695867238132169885708167837177331719095982682365863787509067814214852568522917968105247759354924109395259854177457835202892514290720314682266726547629029972776378719968029535714758253155395157366609298067930221152407576398230080283921344422387059643422021918482286457246883406242935665941553305774483073257860024556292574930599426548599124977031789446375905641481728808846870117107291634832106534177429072059586878184561519929419978193664445773818254588841849977536474617682082082849438906985740481202678493608436183453164402431399500895813679000458235395189762740178902701378531702476956446282977712331339523627404011025911097406977597075498865609852408678752948454680420746361458431686297403516602893270648541731027554836195536796469561318988348709401911549597027690677619944749901105772118465229647287560932123547050504032374938591135029116248150755130397708365050533298897508682001287293514158198005763425751677910978866471895654820382652711668877604208111303048663915924745142127634702195887672825917350521319513999414472390214311307013965701362983236535629735301174145212556075059330788886978254807209037979221284246085497848231113850128493894175786573523678130760899504452448674168478019968325331206396696442571883919421244732074522848719937738660837625109827854862947991943180103207340216664044535016725894124991180484569441788095451870373953986474414329523785230695017689920313674581228024641425445562222742715595721122381618233493372883023143989003273001489538146450892741420384124725486961507160831209443585228659346312860446154404386031162347192431051850560927695464324522534282584780006122767587705739999903514302610864914238634865097668057980993509429596367250170827137297413340152805772351662482675401046054220002240332069254852117666205359833094255951974755094121542816881433443019664236980846152875969349052546545149814560080560088296383247605281185572902654336365167491871141242864561393499606938260779644890523360126500362181261977594252424652168206832920485628406259784202656615017123767773106764161224141871664368226967521616906134632094916170729623267273994852095461707192626449436742714457687226437356465976528383690010606601135177570449507139631728692422098971797336651194247832496645522431068631511664741053411495535414736528512549264695257948543859760652008317788708630866123447717862601051395407441119810784222591933640762258618686221959795549812814086604653105266372498387420468116509927349957425039508336831441589416482343312515178662367849808725923817498494294266308192194825935977104829868019690260567691321411305452142072824928736664494425063169983533338697991790155912001032421250696422164233905308012584831466246940554473698935688762246124531383009315824856033059631611763083264294273125262089305960608580734741338039593524660253504127452512320422140881468440182643754638821851185934993299357898298192007359624315355072322633893154763792717614206374257474729589050254137482589717313651420686491128026552356964507786168250102649014259334109089561342754469630865228986080076519230937226339479844548407092450137462996022305328632203424980974656367506576169290369855815344794756333231193830336658916093766429121712054009773068269194412024272915820416624425671863247462091902247913223517069998550811041920117182769466037513388514247899979331345629691147907777878319582367096701227489654512316215930523425703389477579833832162037793386770202825996102643287741154846018974118178269038343348483975083957713912898806100820208079542782966299104462013061543890158804937512363595611619592064681482796699212978278458272279156813607177184773330172001372103351405862084799939509052510167090486408324650028113186057101859739369431623377389470636258677666128150062186685235477754946797233240874791855848902780571134983590037233481705036232560170080048735110623268480211548839796103211338189522875773619565868858572070538775781170287499787928558835772383563479714278183749868438652838645909517397471075480189928671194591331060527286893467978003653169590077382411898328232821627146909089369622708205825248739613403769633152490631279719962580795553815011483158632183445251577306840999995377231378488100500379618366555689470095061641981612103057669655708715291452101548638273104591092236826499866012145505657668481647787115164993259289971711580063335208482891557787045609404936057182905946854082940776272936884034290853670699455271522138615616130491082073537484310122625973665676795815653237413735422046080345665193170278278967578018097131626800808984199340478979363092299006606338572303341387987391399749212584021317449496778324239881464956085399953341872847415830322273363130013316608165283453785638601179389032067721527298165638071414365410335964646405379355644874109542876436212468378467930330861359172718369293902978098978352360222517893495486750648047871828208760091782558802674319890736921625046667345933511183258444347424356941478312084437047264423058772163510111646055035509626372815158543508962810131949835965281265438952913139796778802254310147483884379346736992357327962808611667967091651926070810303698206624324878782168831190088067225613197648367140995046537555681115063690938607481055701040176623557550374577257981361435227793908404163669321355158876377431905114500435566652188589998866722464935089792200420116098810032806778407657732745985770815948498079177809817508692522286596251668934709641448672196980658529837297676032263837020151235416407478909717036194735884574183180719632560474769983823574837212401444662094371307959600150677476401934176714910713243591996412291978359319337600601213354672052292992358467587713559351578893154761301316906874913452987092494364894185734550254363898806177271161079643174794576809359913581261348004898876341256391806765164959282200164001990557352271203480493958179536972142298800706909120907477715930863729388990539766600028636919014940220945898707218919503644817986975397360042120816812328659780105810306811510703986530795284729550786601482220080602529969141147197792579022327872646197875448748096888024330871976868755109731350646173996428124207647952448399477692163345229052785505208672824753302926608888813699600068341755755507822559414085073326474008861268190736826627648142745062403836772285068800183771984041772138487183411900331533180297563737054026921255602833400282036924904342037100471133424091680874546105468358499742923745926084680210977771058101581516558741674106884226376713635399062786326368402389210283399026438264546270777771649280729324379677924955439626356697920710804976737495841442324197368230716557929087082983089281318730079145197286824095320067216834227788156994050142299117827960912195771385696016949416243146654674539241139815227962399862766585960868693004217649513634822830944801831184192190307223571471867556169815324883523788733926878043332805938268438196434135597316342493167229351890168583139855757633670481826042289549049629737541220631975797462183731553026963568217524004893561211561147933589671932755879269431086799676292561130995023659126148633209803708632456744144197506376390094654654720766573576765379490474744067409816276387023334912311246570930681448716963668345415514797287172087090776024321105438882117690549681769100319415140909570432629989890944994645144994101340681059174966609684608162511187884910878508912214970285381783628820297256618820854252692830667396000684962495490095238065286259265925110679888396637404889153802124261387547534868216817540813422201955306269028126085195958673837797650799735037859243603421497845783062437169153827609360882674025547815971512332668564897610478286250760582191783055581122937833144207312339241226431693620647355591689273101496527360759616998961338478483010662727782953725790991318874727721198430804039455949962240286861086551936954298483053462779579284632039443626118800621032926944028697676874390223429076166728331933047648857591055730541631358281862610993757358392206792933554905412069722205987643600372499555530841555416192988734212597283026437787822375493715998918799258009072376887705287698145627591225949524746624139298660662181352198623765511725358408542047967640017645721292315417060344240912297119345041017916663492534803225357422234222929474812702554299317651371586071286145232110799796748223746068517150909782637694973160134777785240638356665647192075184816352592677304156945144616408504660200008922934113188496614585154179829930950533482410586892491207865635874721811763795621100479434514537574091761121140458149715379256833558905033485113208130726394219222032851008247186776621163562998849776135828835804255042825331701366343713370676535325995820480528728762602608722258461927975864099407969519375698941774806761414860765226168311169766425313299022148479778674688509857651791249640321849888741730585460327663294575432005786781166218801465192940990344660820094026225746593276126253101613448889999889108844319974206662181873956811374929242250354227287263939356522503845966257110165470301820363909199201218985822278859085934087430378683957282700128226241553221981520779944321154012370590695577122806998749835258823600809725331686444455480666653375232749144684190097315667215396726571414068672602136270538314916398743546528259857961311872212266497205036436971746229475038716164265678534142325963898462547395011638585543147306075068160671136773610748019730766293793710956269750962779088961804723782765596834763532977262252496232001194924593531789018292076053983277036754715078528482296757149167567708739633901068857816454053645299818707862112434978781816379505588447119899788793300889865851797153999399341076762122596911006101154226184574097683307506371748529296277346842177186148408338194409307042759401309324878571803842675984437212349670755831385851549363255120213804975111692120919151692459098257762587113934571473163366223937775723161910494173913433199697237961974195197361233066283258288941248565281327095632845729610234486040490024542673484975598521181131225296615109187784125984406798506233668051192385700308284177226335207853706977708383546519174932258729029002018109226822298968791729416665238643081834565412127539356137884209856648300661549355055729663578285479331344904223515031659276237870197429597228008841739236666840376370860837337190547336754044451174119703696021779861638852794850128261443073679824751001497118584974931385451508614933516366814844268567768476322899209122466923428794747550944479034428786705918223026993935425299678581665842689087567204262361556128305011018266134172610289130951527616980159352878211775280072535728687161367136349201655103220059649770735882004478271175319209983647329719258865089539392305333265736541244636291891451818302872304128080656520014882414140276772073839183493266008823912882553832300928767687309736140688146697001135273913964498747357089766892204845971983883050816855585660330102610042180650381710692751648567619915273237025921230369917976861331654190501668248553091811247624627811014702955511437266190563958249180713054207376390799153992975049094132996992996679312711666562153825650659082456076224832716862011773663470505122148615743054636794136446806494008119518710464467799803751211948920843548847869035411547612915621727507239272586958545844178418877445114037182056547060428688005260328591923974091910012631016999750861487745959462040620492577408702135463212724969923442069007686579912376950856076380373027161146928440300070018573685463573102985851755083170378864353536803297429012904139986192014851407661260303203097292007950743248602957112046195641901811503157019078101831770069164028079733837136190353457041986414243707198125004354604692897272014882764187754703800893390986990707380342455451724025629543647386883924344516037757179277493944885288660694320363190777542167422656928301893744582985858755387650027347162432294151184933432821903570461006712520395323720644942962747228670426480813468616796761411989867079483397515210893563822324083932473875416310280656700227483531808774967709821992807799645830679482620199461013665567702234176025035727176787824358246822839621537623753754175217093924700472194854488678784903206909259259392162959782655594089031170796985469421853196633090008711333496790628827233029058784194684452883574715221473023674301773290405750273450310245797733858830799847028722124263441346090293694992637955052957957499598546764901506336175655233301363164065079408139896048514657635722247521508042816249064493031151829149762413296636279577317439854877987640824125575144644750326205060586903084655314365337324381370744141118384241297759290797341572240940867355871028530952065983186593778985653136885510374415011989344351059098706202816968938603613108006889807727013265245019220610232309294852627319870112296145352281298063142100453653875254927321287971246760800349347878662850282886426530778818968253046919296920698037613045930628355637563734803189248669361197588752409852871522498230213456700142233943070105290774867481580814763203389087297007985324799919964687153526313811472120529738289867603192689244495018305715123941130553640161164703989174651473477840097731520813001710690386979016430939103908739214606049794161948957240697472868637539717449032644677409594895697099923018902540225475009781475583808388398083248768866611033597447441168361585128588380199584699405610262628108391335807615356947500732180411455809207996163952567686137984787230588104377317848584813972969874354970139747479276829799133410289584358868233003126912921680187045478192667184797718365596497516232755646684640228378823177012908787147760233042633289388075774325652991037368977992021891890427390216810356881165119529339948331643123495281720596883987351931641866232277203257237320607343716234933480999707934695358543101139843437249612506283477434603611674366502819956347784706257751317690264211273359443587387870777782799032915113351515899199184974526895675324884121952318052944931621164657551529391089705532232185571912833972740808424548075534233173118690747155825731417101981727999805961375140839908867052322870510318255623588063247780837604366115139243001199615953671685285381287943919190052028275567085678544804692797948629920163965328822536597196568555678884373119410343767365170390925844576739914456396268931352729567401072832828019392931488401550446824800221421316829192792335631988051351825098477702696300268800352403637388479677030913684849199127511334513403718506884730084269409268678321221320062682612699825662313080426855819271663394223793632749954629373447651892461886637072021591750951742429480347951688283460993938471322614811579055554117948487609258193103503070567443192858076677539926610124397094210418352334341570127238620932673296509183549204379176781012739807225001869770613947627543481192123674008730857803828564027771956394217763354777932174985345745992844906592797715494764986810657333281614052239543156737874836047429227092409508117276903927682066244755666712757793193609476624512345322011575892160644976711068448603037853517072603197979443733994818337017977908306547650012587529634123674006641926902696958739375231397531233283978218309495110659568204286213611738655320489438539244543001317130462044220719513401775534053999381861648416290646143178237446686355216486679228013434807542704646731807095914570560237809565743609486715080689173143075067317679270596273668310274797435255542653354846251253530273480021937815643666527289714267913088538600910745254742281591436104945863654920961542148513054628280319150903292694704966309705322156536177090134359035717251993266813122798755283665767083187693916895754002757526389428771660893525626701202292033601715352901269080229997608444364472755486387782700903221727041870739536966333021277379185173568777466873503080374799178221140123632979407167988935553334756520429756929959432497118416793022654450234401513756916590355873421852013075160587971379777194858337255606382397011536421010355777769088571039193506518071322716681989939437751415234254848002058286318150698829930814959862619771693459892492422046197012851444349060312265846512241281291772593487235347639527965069699337293654454310728635542353556665265706864051798498183977732018150082577114977499777597969242407162162249311009006125252836553178498858623883699978394163727051752609744008557566422948584912532371775984004698713922840319733499216768171305835575970129875077086067261861425841374580356761365405682448843524702000940140986429097721379460565713319876172319824474906095650782930098492170238128553191931147537711061739459472328499508166479340392950893261002662225441017540264506522017588966482509710089286944830173509979493469450732932835424947607537472821859873731278694734812058677487311450260073753091526923518350594508443138173140031961560022925982129160325369744574420697597256478762269309049074342559982401098088099348722459087790311356667978096878785878305699643182102230636826072982619351769739573117625830186106456071057503788028099777362429660324199490231896310114304830242460078387370878823144463660692410329016256451973646754232185888100588511776108890552982871218900056316801613775942047474866899363508953161492452768999706688205675950866815113708145596364689015020703277955602494860664057222140561255013140922038491103036177486770206724770732268315202238964745706656526092532791648510102404405122811820098290801691068309630368591910611991751500411123289545107062903308518230413113167567579819841478928525966264828794723619438890942015520517381157032784871403623133306761054238757146200503666857593600602306190331772681846995470177193659680694796680177114155065121709773767069258846320210023530741554269191318194001532895528714452849072981592346143091738903841005967198870675787752244577601304283097423038290623278483972466620448569036210644398568741862120148174161747311972784469790824183569424952835737202332411182296979454940423841274824281624122587533036039061468848724266267397889839517259755713828637279626846226362678277427258154700676156059449268724307836027112726478164965143985303790922630755860568461990652656805199795274910180031738909730299253204043505023827362404309777072474366570105684863899383111648787655010522775205441830844251480168071671504671064292017595545407000979913201747398273825649985567203818051204836252104976940303900166315790891203574582881228023375882135659818933467121731798177400916819390670026915564893667895366352936523091044079438085549035599988898764211944709573052847548257425772558655636987815042769623723059870196775522597695659237508992339067152320120214522685889681923389638238451944656534648332101189086367558850941650122961743389982243430329658226994245651854926361451787815736472518081990751313727347449601418919610482227552842766938861315984787665317534721891895220123857806203500382520043183570861950482637882089780647393704465328407444266459306167860469182168916428655738404696464136487461406644100385692166823193758187522361296458923157214362485287505474453342234130226237775464508461746907165043147611255582056136042173336782581473576969758731809333817546047291787613044520385495190747691535346048060122846663126469378275026194531762843696560571770974964337922319778428954359970731191926192705748029026601486578064827189539047727026033152645423800301382750904374023919110057740470623417390053942844165986121743082858331859253314687683762746608807741610575000501626247981218681259565162363995066742133576127967740457884335173233332682898639712969931498478522735643719477048943950799272598782851495022335782742957770102056777434111769932470536770600943586769019950923547225815727859591029104852669048043282824891545799216606520846978584467124309541497053965644680367787699661757915837956999505484932438623669341659125457643324750770603870633503166052641180124560789402621056285537278697222538042590272762745508158073089731906915564538536705843412535241301109843744676290751230525731351174222282043932777070291186230992135338874128952267378735770760221692692654031618824410148788246359779911419435287553667013160058503380702075373540186234205795999149816247652043587461191199910359322274279526068005355234423579978546579304658530424665964043143839174392290457971328880239724525219714860257140617235538146146794640228881665677019224715986016916518269636552251043311980940893062384014026089335877967669166222648915783966076746048681328974494464404202987788348251505595746416830633393832712375542328662891529175634194651329654822193600206848570007064650719504093253585900709770706895546837666070692315224308876712833503404758566760829000511174008340639103646077290109352659684258957020671074936218512398637500743178035053300488086291672737241675454713838812020607784499029563938632074671471703714991472690475651132849418884324255604630355310182389228239414557791092256051181582397415848172510485760854245419778843395522748290225650182994450402776482983318260690463037325739247555617329298219139400959932341350272599783688039415348932645388578098539274304461217520159807942305710254539490753018621296158674278429323603663228577254227217994632951938057745593628641247734898891369434516984944998306036224582544220789308559837207505762002347404986825321721069758020347056859841118357572781176526558560141576644003779463694788937521695908015502452028850488055154634630818532717964213492667789643693934314978977153633320060146970620948277540478237256317964304884774955144944670716059855975564719443644758078748284854027468777010037369873540420301556714259123131849166096500125772263735462353781181146746637987216763360450594345607752690730703578407778335401240183866083680991030130819636121812341064771325494474498462565759600274406074703598314294594733201134300876490756351473271540215977551393493731709073022456881240441302933481653358168252803788004929736246347803721924823454268309255656310059018042361158934241436950103773159257498441967560675332420933747564627776820195583029469689777355861360421771798494343721162052342453972196779513339780418903530460046493320877728786132554163554343483848940744009505730584658303932313307682691419416246744456901160985769758242065954720946078727571626962797146573913848820708972556848451769237074232343843505719705508999619034400429155877545465043102134809598896322227904421333104396925008350966465083711816072023035981925854972042893084036650493090897180152323063117253914754791409351640804230843114113074101944158189154864404898926713198478727393107400968377715165312110089630373726397662261228015306339887135194146414201837331022418957853700514876555450446086468515724404950443690545314834018660540851733778235599746833482746658040041957921094678492263901542555785536820740306127888077075921458288704739777707268064571119728047247875165527481501924199820577759218251583902904406460067323366804967756789908756729510571955852725777518669682818544561653708228147845770876881663042638341032576483872593586007814638291647117413398979520831604731848182013118336507339879923585059836259904693464068967364319381457121348992292436529884815308204914386834035631414042565204230654817696763982423025403009879539085307217279710450978999828847008708335189802775536948938381786772202414843975565027477721060247328317417794339274436261360575818153186593822817422471139318732919743653064720545794602797220877541788157882483053934689727980270173690219221251239180794640350387226813358261237332777265551981880187971325974681896883859936222057513513066002602558050666170702154506547749674573220836972576357815489194109360124930744116890599010909340498694597171104072294858772781877748939200836428540438806940931121543477375105225386191257071823957841739294619336091750547776817685077158947542278179664053879921071651573018135685902047098926589204950970764981226844039609038144565750414565375657662988790087905524996024486629602706365242731303374316540612065530176280137392560059308692009873181045006366853177992073752090440859208416469068689876469798486018204131621841279799027026133270094280385988957244587183195872948636284992219470842142241141032159108292797814569430369821469193989307035208865984242757877959933018799149456882980935983471100753441855593830535519744161025662509764504544754147810966912768602994498499890965851016914491490940204313216213333407229437095366087733014915672179572844251125688841293385376497686632987003907110028209318808958558791087327007198106370884173881854337198531781102045839977472367774611704262290251383223956601164077194835687927816407203095876556978686439251842985320813283119206214719231764354890938748909875282870811464266761225362721930072591207707027716719314682804243507456311548923095794132959035685040650752239867347255274573073640105851795020980876808116391826350649284870434917382856079195520312693792091474650578529678461933189808576139794344383979337961147906181994829945601132419240843412096783611826884149839262507633574360996324561253673116524604649281440575573200168568795082181759473002154264650487431912682072919053023166045318061557231175302299134803955970977131092249039971936719701504729650120658486470965163554525761796172330924968969029384716015829315583650533349105260918518732411916867579170146927619084810056819538028044461955617232931011552765786674398771809238499658377814460427368831567983148401205039810658203418803000097368973313505168874950557817558248294056461235167992385743815723796951550486638672710690688971805463017570279632074886734771970435074816469690372180664344615726891233772485657911376901038549276140031792478644833608764437982433093867173854682339541474993321192438281155276244334644478155812312601213330064841610995614899686431006403221843842798329552171208892375091629298992767132335399454652879172582618415177376709598472295999975826214585014312656556133185224009763163244950487017513675971851170083977173571371416002636016195782222344259952923776677767539515473236585829565046800443446185639681254731612609579052656943051694007459620172124919842231717155810881585345999164824718906888900475334696707423394082773946944150500116185248543709721372210694772326486863953137111144195331216100501810494056270152736688712524984785988698147995634640057337854789489033212394348156316113741332111594617543449423659562075891941003794660555908950644159689576292336417236562783816416108646084375168266698179369077028069803467987632792740968520818356978191328523538932290479283838053342449404959258179436566990974596041115768958086568811960707242739115952772858939045286139061742518541613168085611999367833036490179919642891554391109387069600437696571407070954959733029082286207411102033812626695167417596900610030519339672446979026923144955292735597815971325824049279740852503137028686481645702947580902564371038280856704872272192976298178484358456909130358048384832269861898728918408860240080303022091042619170485471096566022903050952469846603220475720748379356904272930403230110504419624694336009472636877862408547165788859299784461737286390494726948404147432255525769069240016581137649875356333458863765654829611085912892922739418012423352191471789417508354124609410417173246784094845074784937520164247120239325249681470462637887851515738650107725884383674687496366449579421936985367563894136214476800500720445313431818542228664643931017427588060942825997040438942538184511224154789523764447043478604217031259515195649807834379084143031132356193003548366218930544880835994910774603965197494423817502524928891570382138383532941020331626558309380201685826953500091569634888185995367611622909671880708136441730681241009467783380440156583578263386125465337677099829033816276504622515651452726052060617541298672132305071200959226273197128640024324900352635426029068575576338804968660966085381412127368342919846035704776726055948860014120149589506815283475662003926048157132221265531399351173634287937244876250341867947433070551431987911125454678710289960685346980033429567912820881559713643420262484588949778072386521185692675469765319037042444437132615564962595698054243672384046454962220314910470550554760475990664170931015371818861089038063598148105879616798769533171537544478394292406661016308544612316956915327946737644840808676427231662934078545897964071480524474128565163778938906838756428328817444407818973917511353598151569883253208072917148184446337790968942939685105392368656445137778428228493635794241833525271963368540588568712604981854404519455791321671811024786488192552345261080223319035867525292966895500510178629886747521965660472798659293681135329422300148280383641666329561683557196073187938339460315203778505076089825827203642682976955285377992445818816702820577313551547482100327640372225392445590834949429049903173989969357177673867447136126998159903552060198147361920266506405228642191326462089252266292534525330110370782750284120757605955312246491192921159619928805720586100209098662390877559386024020142899615555797072424235612739284738067570089492327109772885694607999333766165380366690672385793340393309970670835983802391153493923377944088209298243584911470764416083587740952714723579753685409616710678816944767753537045296006702234467492188058795784132952859787042674506875859297758065752860484234939934487371431343375319850320973104731839561880192455803968543828984112204349413788201577607993245239970767955592193692680574990473977674532976108221541220919836550119759125392212683423550502904940224026631680838381848606304606141882976498058093121352609512337815630309050937202930513158977109771469394240198774106173476722873212346932749244446708004640901213534204420026933659120210424523826697755108278009016796663609950516501470478356885642644364965405793716742443768475346183672142577455487326188465655793705421865745423023895542719058868851490679751170281334490845396189145653269015211817478569606717078849864325184574222867838449832615957249939910815948701950061181709719645857262917649301137777558815227239750481238490526656778156564154065486826537410969929911003914028221429571729290567200556893979706861456848118607568476272718725181452774395274685078307381478581177032301231318204507340965822544355781206601920457986361745435008762132751435962280889278296190924638555962582181986508630615117719358694693888832936115846885252881754654162352409051527196657672560263196066141459694172109624917919597510976768156133262890489299607437313542599107710210892772107903010222622358650975591939801706769016135574832963515827902151977609882829375314014016701093659703860355630749613079372408807174625335611496690572347695497112880173788584786416658996156672949549689827783097030339794437855796602164563283190792199098685206359870202577683747716489940923217618458332791878163332191962586962519579047697998620378857207183448499707589204919145220531414073264996892116517985150711648584248358416552545614140055272122778497211640489346492327848320486644353423723731910479067451125103301818486492364820093150829991796648257064315613746261216307171542251300121672396281104383270671132195702833661113390344103546443775828042125774384146627202444721473263270986047297833760311392787871790139202704534389258275344809903214477401242989881074822590045268902455280007240801104651825056305366251803866409738411170995962501615510219516051091376479882822281607009844236469492869555041806388460355916876714947852521622761456501126712083297772378121717060556295740384106733955883104839419371281287440174058659861634158974834215633306347641368405457681174675621571849986141525909673698022809801009632490622687518974964818342687973156831022121793179672633728589516979451948182916423330378888091198882868593091788704984740478136326017785965782019614981330422523230883314975783472381067622943283229293206513120813892644491336591823358373874120088938476792229485070330456696403275247079925223433782152730562896787188631490641766014140240739960101776553751222539764864311548147068111886675145297496558039946574183742362569133746208722408793044954013510906237974273029847082900812292916758866998952882562916963747059541751583835356832598392754693680265467301109243548298308880650745630857231015986591546301907814500587396175074825178994916636137322014199852474399202243545767339210316300114934952055106631066887874525335411586211601510119218964382680159605440369341398862843048530677268628276019447916059194666447382420197269427026744428899138993265828119741361672461508984435785078170817503612300036070285261369448128026956564575162218369348147563482826280914244114294899865787041474476932642722776615685715228671048070511229954133166564502835223523628147516544972686562668899163602963553270374359267205658556600315300740272868866555813932449438335358481678611051066822416828584276422765015449069258599041080607314057657353612502938185626807227146101582953616351943719436417978986840140091401523118849957487658631909429260760008714861797873816570505133641217223323805269249072354301500417818802947152586907022800670179047622540814051558524782799988542745734758330301124421412565183980698285799851615466283686723909525400132383651558894843894826364970958714995839872956475731142947558513717837814839709781411959057081509760792070307380841497143755160963614463728259431986520966858321045258728651875736011326232414902023851347842215910506727164722373456767011393970002081788827575997503763886936488289956214905847703956768134897617506867220544972423171064737592558969503716986333395358316995213165421965781657269055656401160064645667511823452830017113342788594303139393752160085408240749499399998310449429693432742473174644757372703116632603393198103432495636180482614928625454249841595596077557784488935002363221448550586621877908520511358178179050451290718687056629141752071592748454150087516915294814450033264343237630132009734637182639230854684623046361130900501051799185296096534033356326739359814690678063954961868981472015199515038909227489598836963072083298635556909666737357966338240339507606949829082672735759105123941736601530942493903362279228749632009458289016744288895736376021109076134948541793717557320175759610432286069286310683692782676461428794142915465297613179323644368839488762917586216731703425244939134736456604034496821742409052076482459009271879948113421523204994421819255156959113501334865608973271874295864924370879494907864574872655689919643078147178412433121380738773722798984539447744754396567729452688994639825429938578758501936325798677452373218676143351802937791140774002497008281003725690793541178798128967493157851556129526220708584115934486126485260385293328459390457869679520736062753396699029817807599227810587144977039673364533319705728245862826509457093796882175844355969402967570898000638643179624192433009502700758074965445616485961687448837075203653191592686441379378570671985488565702532352400638361758962767006079459329407308617127783092914449294681803654060616257297081520104714347746187752457154399797895134306241343828630013279690568719843281297388231824688292496229687495252135647977877343470554888835465324424473702072376925970469334151165936480355271426239353170062844082799257706748036764792709040327434653567346874794748248177314611662433913622932979765050064622514516164393212021340408276926654208664656201813369178252122030118796496270505405051506765961858002243538677234616261714365142306811131330996259090504951762326855643227684855191930180518479463565017498517647180298811781481631806844070222438594730493054309707647650003603171319384157957693949403566017329813713827123298254750210150144003293414739230683694241973726162515827249493189055095759545299382581815970306247715800765217836081909444217062833002660267536371982793435445546733174537220210130496517242825975718817588772795242692584676812753062592525079129179841532115483218868297687847150980274247630471831452023436104468601103439484033328055093609449045739149270282018809699648801616862252548410497664950177148906498040214135938277763312984152994956911330302236775299594277371844449046849716259629869824496465340024097965109204141785224650569687184141496882979424420334513458881407911170737085859941594498056961584937074527735104820225851552875107977739536872501934523290240230055330755936335741317952668208301426758873252281744865415868316201356607840758408832913152731705317618907351392322275045210237422692157576348500986525886316048474549838671544674736244635344318449000376527818841533279985426937418782918394126779221776357677440755739966499203972264170198924191560893286551377504248723166578447534160852386543118678449133051741679172343271088164039956698040029085060100468936313064888741376838050438479561913796356093022803403488687887195530722767557951699868774081494020253875816198117665887890322606135949566144569954817705251448590009911803190486067280450418232716703642374100888563719204177442295542333862313507460427596436430819452333873600687472770783370822498199848595916942770686483381714233888437213268314436488122056239948531587616304887271426671083486105879179781430741942813651149857687058881184474755992514537686643325609883442512163133107232370446217137831313680468543433567397147321289544550405817570214478484436051119209209443146676423295128666329221410287626287957224415254034083559817700742033397796413444754560574107420792369648044583711326772172258959742665315395676221150451885518973013246307537045254917433399464860021261862144462083381108808584896015657531114786251542468837642363829258936538008472966101442908292744761419891475696901442670307629520735594212113274645434292179308089712979254757898016980652407310455404159224686581343887474701197043223468001957636679891630036323899899889920367522810757482492638207806978078671389473478882417815574130539232760768000012973077483721605198430835878494972057717016357144628367336246562262190324123680509626929511435241620778384147074925344490647764064530421285070075771521722421413097086075850215828341771870139641962799941746008629943234431267847395305811199064367180308985391213843295573903716598466422159385002148861774583602406634339994679936480985606249431670699171294803738499450501466312347572805976645308735166164765129303551905663395446001713061270164341487509423302037679388166585055099139751093917089206353763859442676699001450724469527421685350475527746135926006305831779119378103727955149361786521860051209988011574255890992863090485283625655594384634114545202171915085328491814479793829480946339100411112487977140916938002302758538801162181426192417212451289794694988773598759324299282766001072835243094930870606259822457325495247115909191994028545332675426653308130329772954859781662498561498248712535796497125053951736114279721558667183228690419121590456206357850957141179940198965649113064272093716049055928158123937769732420509836307557300100028908219939724481630900009513994910266136354400274950620698891272461461462117219983087838954656829492401437727562455317473385939989760444461663302213669841915364756183547805416678239523255448849056500448188535006603883500983551814866423947171220774873831171930170716124638173566376068280985479852788737313270084103282735415305861850009286886566939125957329196598077939268861988833186409537010036357046740840956095385924033648806909001193703778922864222180994201717912248355684622362517531657474525197311871560567731246841307104778437026561751918582171764337898409080591793734709453461439201468513115501633648610914772224586258903205985564976795900764243501887451505993308763521123495899143466582926754847406880385216342940744689145756211655500866262324920885155985589694315604098713912193611059003018901118733306997665230261773766256400152292616842039093183977561231399779516670211201366642934118512016264881147447892145144539303120585203160189526941298837108710111602365133348680688744080396755434463858551386671529316125944377248493493117764436326552252850328605135542479302817123729550296742028669995083120402501971429663191422666110696711166280489396361048448389694822317666723060103733543288395932226225507615681723111110457450041030619463911242194131542689487353370495606658618282335349489545869639039409959377369404402192110626049049694424887429294245427060302266030045777726770381188905950670337366057291152804287910802832258236330127091020256761583416491228031706308552813265679458477884236075311227445361952014131120255741351021987055637583343412693074423587512242939298377618306910709468123252631762929790196218921903107614006168516549088075844619926701935364847307968262855236996834941488452796437776262588517272700432242876889226888316918194226108098298150925300681126967476269939444831407894043373701028050374814638693780405501343357069435326576155780260832339667999540079405390749768996518102791909796013831412970981865647731958645182947645410619662231678169100379850364684980072992302960898883997259840209699859244330350137469731321075012556682543430373175309989039372069149358574143796798715408837553955827427306122678682611018643462437219756888581233218451362843037835932879574524105645006124306849821952217098700752832333801020449240280960860661014810126812488091674082086613558373446372833332414281603251357665731646523911099912124197553429691945135306083701919069219162894629533060516917775400058011523576979797408293807048481802253281465598206242163159024449364118244686359354358055478251859531312674558430223603833875610678735814347692664007634666970886826671193142592059245320978042697274971646490594716101501299031999993752287996989944886878332168957280047508130591781977230533688989881852824356577937599373225697575151696198197552633426480439539382711451553330688381639295747266465179011251645481299019694038435002565837194397307771403295539136469746324311977519192453751986233257075732250955298833447028400505448796181485190936362427196163760121822807805362497412951467817674654374627410249801220353202620587912371074697042832201779744246915466460663982263284792036630049576831788035895990390857758247802888931574007433105901271095219206501185851174593213566042138588162592314464493078909555657852467791142217126084417369668066907033612405005896255842242638327122978784960763798787116044521841100065552110435536796287320786822143488733507736268718425222677586133024625536341684437148893454472430105016059328758199659774527605843649858277869050306709204745093733889065243674327658090273381299760948781514545466212301337833681865748778884752331346825817502347548393978812251050977526138423145781342624059853798135307022379615483445981418476129734785048508831238534715399149556667294313928705638818622026408143047331092837900248783696889878647818576252394841880151457617751075946381435086577730834743168913718424925471768716233393245099471215228242307410563368363068125205716046859466868689277221376790820131879748535638135292683792530773758414317519540674629776297560965295388648763091605646348057021691893190262978913975086729043702027869318833116786325407775257812474291702308394156521588990643864805813676967666006519771040882586493701700682098219953646833045652456426742870851455071505301865887159084527935074585552524810658771626097067445558561630254633068456248067884763381293092307308158009838468769403130307538699710192423031133093363337716933676387612881907074178868278414410227424977034951458881877380929551468332403923381143915118811771823226985302188703596907236599789889608089530118582724653467008085445438454647199157123400260498456542166590911992354384027012799463277035769302330873577830476855380429808995363468870040791712005908899037474221783437767167548866213201105379339309385597539271529718815156669106927572142370857062626048370154467732832105582864653678604153512278968613227489436633828386392790116179670058452033517667493543181278673262259459190241551054900177933740688295599591930417414096267069052188251286176608575653140799350489678666921130145458072531526200235165954820999921306567846710599100892050693942928540767236240929180340715916584360534323012059282022002849569035798610317281609258468439057622222519759229488093065347558218255528684637479211493364495601052891177226098368604392977928312707965054833290868180775065241304353482287229669907457332978746813358285121966852264870848694500179883979424519765239707600222522957733020557555468883972863846719814032857136912337086947200294139704457030707782103143640319645465572901679172066932179038307352276659756473291694919095050782747237396733470314432040041811879725258898024225919040847373305588238812472918432166325276179286069476883446882083453438569063408712656573629908901396348444406059120157398654729786178297690115819764724954691477895157458573507474745476475619041213782123278776761689877539118882431273714450083031492130376265740167358434828594862791018457868347019779359366830493062428347780284076805320610922836227366859687841163383022805038158595807645758101408864997269769873673504974128395716944607354186439884679128732453221272511777071086110129980774167083946625973743952843683052422098895400036903124057202887934255285981412088595630351069061745392550375107504315439588330285570870653305376433926380636995433837167700836643834508750367354089664601308837260935219474496701721402432697423130915100693891871129459462551527082383493075346052277488779581984972495802053761645699242690783092214199785410246862766014329107580788106069332448969447928175415754587725358057398923195100348480490057480246646978002438114033745300019889584872000410686248368996836297863742579143978342934642628746123095000223852924486856104088596471834856323657407867293939522560359976203591514034257410379327061564682797562016257706416982366109394136917455027401677292320913073319192964939720952021308820512932068807592952762264282018626833998842360562163992938269609052358128832037648342945009430269209875934376571886084734363400771813786335529187251513078813658942422638901888951558552814898028811609573681956917075626480212586625634631689677179222620656767437910059594895539132518312279267284715181722840428081809762277258605029740017185760794984492944855326451556782004277697632409740479063280414970219250488958981914476318409503552410561659090434498695857139138300277603005220471920047170223350933833801225064068858167053249946987946469507752474305406132561451817905874731978485474262093826666554188437261313454763419355056500385706241742366407959541387981061350817723599845293084085839896061073377089035828804783357275074368969251841762868935001409774841195868554001974142679574581315707582315048300688961495157703058864896570639069651603897428156921058967954350188201445767021140244741645191136327681328841596646185142513604755255186678792958372804161307646790308640332247948228215812792371279747282054617548534220223782493821157549389182685336388287925999660022923993971095986189021449341476129570916476476857649229295472798396304294237541366307113868799080509021966478215900492440921326460934258702632841295709539499979968144615450045652041565884900495559530541847877118412466333167496287545503645925484729971961115385645873487286943094284377186197492449476879256867082132848841956795739330561456335945374376408361424492939348215159362689245986337615811041752490073807614084720016220199803840612956938808682093992726824880362619840776764867188299938462936496513644664719974976594271711365879798001044542021493569206908941939015616606442179746413014008141149496133667751755517443924216209027317621601815149170112487457516386904461078785428862276758569513816474523930493154438913659565890100328875855466325035589931999607378560668629210172269063874070501314279836217696679539646107767808515365866070945801627067482287030110781918917353250624120294621663789839145325271995318694013403751149675905982403813749873598889411726487355737385505537019726759778402093145936249015435889179959141047618176342456083311325962801164385516373164801089445153528633715665943127044779136043381872706557766227614747100637709385209673827443877139321189361231090525056882881960719015040471744512084572929296488217427606352812994869855210528983296581087389317704607559304844308043907440531622411811994789319930934779408052678517012978322073886790302334591657793918456169315109178666988745606076178366645292813798369709742040139538429773505989206144748611944023953498779850338951660654996901324075756301928264608706065596221935287352010417210020718775218666682991380434700973298760019926846317284110895125605692319389331807656807087647589501766471637483948562788889000712798786635495415927289099035864257957085404032782677823473179399209779066781116990988575299488002156218319775052650090934255321380035803591651437844913174272858277334338652098935953218017713083561116662426483412282124194306393940839493003126758131522282829430787409502483046938192240742728695150661880590089271286055707025023724601776830406956554877291503421479531959820679916784432894055185780552098818729175378218034707317728528606750248438891846372863304802949430329494286133150548543229199206082784735708678163154526700253082511791582530291905716955470299929868167579895461956405470370872813232283159225137408357609534979329638152008718749134012085524316354610100701211538970515808864199936124841085962428406534413810592451490528738500092241430473987755822803827170371871302354568388451838661610841697502602461578236157187408037855085040322518363174143307096074620908439577030322059526103744774192829908308890266330933628788161559076803870122883857516374179148906737834047121157534147664459424379620790112866195350306470639585287334155834082918726540548400622490551795513590300585017030993859443184718268632766749408875543081896848263621903793049857724404606531017758841364167204233469542015050520784853889268806978587787826941648329676332758483418874764405499608543815497558270869123136006982328988225525832342914302251846273164727763793932659420986571063814352295419024289122550419711113138778094676914243690934204939154743592150983991031304723600548039381836107544453218521819025145939306353932074225415886028266150414036163606742791874580623019299261490002987456150537663252991152011771342371073896846709403011274759875308172232117146043265525687346615300000100565282269417788710348864828890859957416133349300132833280165801216442670245519897971842418470980165802486355000258446413902164110921114830076615523164434765128732564816509907134859624774901568358265584800803875192935583119234208965333520846169213375484758891959239548727922731150131133342737410075818048540699261035861228034981515593994858381628786084499248407137358131909250818461156542617156789811177315518278971855527468113520920088560302674384620111984345770088950263138560014526574375028019572692079603084161175906846814373455543103803454953247273237860842828170104078806814239864603503826407856513171975621487143910016307218806748366347739567087018017324150788446713701431045510967194173071038786573387941020848013244878396182497682581133397131340391404618558751347058116542662116146749404532825172019771369297162140776329416210676355577813811572867759479938098807456298734691973666582728219263990545354130146489979276577600074532196383804126820275828515555912654755250090120433082998505840252219585885006975468493656104211207339464379728524591178093325109466882251343744796019508397292453407189682950654205454648110045875354000596949385312851902848187539988193257477656641241462904266644318909545446269783152950260209086960292448489579456648011648696896852044034414729260295156076205671500251060261567196464216242700792499991250652171354880634624543428839412271220723184504653200927441922163715587881606739727830888589015764042523808847129106408204912713939132208081453081910873357454011467892768444664161545757322876602197412184386295237503107897798501110196266822958141251245723878025503656992051306013963395004948295952779433557769365782867831314507109439521009488799821939739946181150090047727348429668498093729516027745331589987856443615208079409565779477847690928390964957636238980868752502902511887456346845034845844860515930571373511304169267217145969101250441156723571050178224565843705976237751037639330763853338028334082566721740345428734776793072256505519704968302182653631257412984576447060613842817447925549064973365667970302932392069086415080597863926847089576996987401247302370294256347069694815851111895376395469083112729518097686068151826299448422948240425521243390464886176443104516868393542512070313744482818948203341940540543075859700516399286316699862811636621760035707647494237691263779189216211628129943362206004538562661158818803655128481443137072118942215953418192952114737522103541206346718748838148906009276691373585401051516918288659540745768927463506951236760123711541120380483695535988232682327248690949103153746472730149439872868904968828090105789486433855309236606767895555295635125937293416706250279179462293165578287510116421408029030453627149726059405120763469684569208838952892365522464385928745046762644290453133378224767460156722067461996714191935866779074870218257142925626362333996017387064750244432320696527220278062855104842573372680542483437097618306913869276881275801512274016436575573496612416047159773556209669558985448518707626090922133367078661500716261576015851884629123061305274062479914913278713426289073263476210524439032850545354686647777737657771800955185951835319732172512084664941762563431064191152370639381765691521636191501481453444282941687186275328075538338292951010605293554379287273281853761278893958318167401940156801350987433048395804995721140465815084524075687077026504013880566002757925071102178248816459995384780164022278400119622001001394466502989641738864166785729981428964464338958692604313515658703523703722659522518696378718938039702964728201598367439602578262359380364676215063707043950147104141957603775084379959439622907396346362802940514388999007307873548769299790144930317308992520975667661020034198195950195117427575635360535808349935942872232807959874859052720579402576654431947198428705655315486404696158517345511604227976146556016544583852923228722143857189542791895589073069152122022477980964658115996941083053470319646391068461930030219207090010483347367953636339600145577792054823131151125554061135821085890533356044634753147978442735244864951394037090330132926114556572369607040832545041847582710502664290445971290194781593845833870109880140809817529443625844953458786693508777678335499655870594420416995402898029457361485470867587769488077049465257576447698343037370657694449429759923893525458634966964743022783037579760818541423392552995779591779891160803874228393768047514050219298359172035452292885251088280952841000567601356462550213668306737236411041288280241999011479838936952532909245135998410044711336219547391871852099863683323902172611191126265132419942642819784638357681577794367920750104190688788370535263421888256023281301578251359994509816215950168166014604803758939730024863603229927743084073993831943702258750374189530340679179238482355586734901584022962280991737891448350097008078197767220884358219131994624988917528938825061052235887524422443427706627791814127803290814906921696744318746289930681612603431314185507093607061193148716999534154221700365348673217267923352122756334669668165313781766372802682066529026309500402651015936638196636805140747993009229547874342728758484432385596913702351463318832026047739291621819638892672528732775242150417256813620913164795438032561801932378693885360674991112885520740169928945085381364182371939957163825858187784352361683552933114932892926246463777905557454855365819681497501932521823081911533159268028613583297970266995522680025710766614759651681972813392757784754030792295588381665053601700613151732359406948420702906099211608529528976540032004099900505596839571743680895514996446537821673414682707462369841210479014000231989480605666140927701375788016747727189463462646538673043585106782501558379321013716803309706923662384119810156419846721605579955368814316241708172511407049604490811329999616802475196795901228539984132121122779330414310335608023437136492251612205795184584226242268186419756813111067033946033636680197794827677844761156256610309555344936396491591253023685273966539940903171967494669259116324779082568952679980434645362374855467267869830777479057993218691342443800257068217965182437410759079665498811247624357893832363353827957349512054951758993459605634831883376574633114325880613989953598051697245685723799918624029204238226155035594120075602264648581761639723410427620584556503012169362428056509404003901623562084150868209367149982541777030340633028779019010762645652836092418137680368165960327713283813657240221436647150188804608626127393321920599759241985421381832473764132075479379247175750709689936633438885738470429397515621802645990673259022324823736448151724428576892281281057261496949827033767361858354301793458995222350569315977141618875340358139294488068251406970745732705758470259124996409803917405640901074306672300357916312893321161938238067224747004984856596126990421339881787914009722713251381407419517935865183113402162735028779571227899997921999201759845978845599139136199297133265373475602992770816503436351713205557762062127515230326386488518835370872455728544460025832547544397536229379930591457824408784955821027235254689284872479426028019125840767158552474948444594976257675322964426498474985813989881859661530904902475368167124841447424754236953401357701890642398026146634561003203559995701633884709611822507025897039425564254680440692870765466425980971022158455827661295713244675418440608155612083505961052155516770894736262386102492040680331797272158759368071323799137560158166834450201153569824210630272838039351169715111066053826127761310407293864754306839453448981696261831127821896113320811995589080138802115757164093587970731009544254426063099875526863176643325113524350376911687456413819123244385638973624905685594654737680058650218935644713427558863076544633936286210283513283785394152219564220347702239873111364830012025934592844068464709686763128906314295211739293187859837394962872072388686472050534333921479861698703728489188307881887519047512289970777134833047686041372965282058624083477992452812341215490230126159911800093864534034076151579723451332327581780593564800198507420494486083879354084344072937953276994403500747339778348634875693443055275877091699795653781032793906766090572167357464839788018463217752488675690636976958065286034456127054336327312285733988540278573140631341063898439925937649260216789911152490942808414148653724838792641456365189967231072423942060058913900519034166800970883729309135332658422248196154046395676203279696454956920530992472161874469885356532223356194297985482626852746270289174979386729213846631662978230085944757596749244025110685527292704369320292224808541883816897913316391638208126218061789072901555297150702276707986517285881360333044291949829220840640116758916517924589511455866312063064190060381533968351166540993025567186424708592218139629290819107843927654113913272449803880859637937508363613455289954322523433004206710525562774752866429402040378041338717522654730274805932317467084289450900749949665812998211081868394496102090948279707177905691771399997411261156906468663666779175101978914162479118885959378457029204186321133201668189245811289017634311843967975516746400173043039853396597543254797552700028895543762439965351906701512924248671963146920445143650360400421025701153941416375407965035030493200286941429573268690846010439850183038928822283818391201502272114409684708286478159432506820946824850088758331860720089232435843697124427498807684302944965085439243074025118610184633138398550383697325706231154992819943832704220638259092343345569954414400936814990113205029000972773648032598797024469454774553903727954321239577114665555906645139081092390077371070056955393898904367411443664853559217829533645068610873921647896595204291332705916118445915906681001358919907404790870600611716952819252202018423307147644080218523771703819733839492469342123897024962984669546493453428630348008038638039119046134506067641388806339888193002897331615956690204584829030142681709932184207924975166213288553969905124551284375854141309840564086955507116588995348436355023833930549522120379195433353830456104413373108072181788950399593537480705799691399429990274796031966304746757459925640538633063563362320400486686178931158470747137267525413120995766286361429280726397725735529790705068946590740491987342771395602022992000735472166393556491632490686566566030168879458509480476580410395901705644267958633912878346724195898284191588906662235797372827087731697775699976965232597342567120843303444117526499752286845088188086631845542434309858621583170888760262937797329834135226669708327461028538910878850297716888332656226038424496135080338771972572646051023481931547114395741543224003912397522745190455378901912518685203167286246072258210220244370977341814988590360195593031747832241022310144825121106982385282076807091518228587072639893393743810958885994625050262631743760170403508308021243283270870856651389033727920194453945875765590955760092163313168100441848325940304899253433708510917850217093116796459107532195215529786507915814481232002063042106291891973517246486208423415502333050086284830802347670864161928577185303867768272654341292043178827032736232611281773881564101947286944072869520619703596691600610277874460604800269742211732710168564399805772280916981848635870318990133128588952049324586845316251677813210806704984868232943668632913734261356626135971353533803075205176018849599761662098352474319388596306649404963813413205562912230301747278005270682648751432532939079595999236729844517936045706532615665194287198973171099687755911007175582115821385960343203380904671734850616955659745654588583468997578651090819959860528692999741395789311673232432518148349117920273549773593185043127327532820334865037769240918879239965410294479898600248006212870806510878297227330448315651452019789455275762035726946793885929035043943271473657131811647347511826229916667513907395820943985200510356489585217154247874881592781251943357485251444835678364700405341068849393017287293001722274383278595073065993897260756877709157532084254349145600596104193638021725575515791936467071960914976333854726191854718857367473091195550649778603480043190438497562570828978553771744724977419458245783139597585653095231080512052140715766433896695548522770145717426223928769443139229269504151580350506656854758664401356386180918970127136779409801001029875205895312782754211229872422126634030556459556494435120509459034132296278877265613986473163062631006017004998062105626802190651116136276188023348615567825194150865183598081530174147947117880069650964227882546584344975835773716043328316951929977752885998492740118609450395102085860867337044185727887146588987097123860481885400421368572003624826677077783066771727139645597673169282485633578392766109366675645387473345712989474512259956150406088854793087052213529771932445392834352791295822056657217393982503945534498915682567333059112758203912547675396479300958975727629940986210327270485459265430593749893687669750475066278763957429292336712848432504084424969340022646587880004178046757232507079421886073937775068984702620837705613584470416452053690154425951849557045449701180584498804942098061242412660143279162274366467966719482864281593401785221834687430916104888730425432485938367714351801532648098682964622282928178280331725631747154211828608433515494553651803454184742556170245990256332165136918194742232636668587607286492957080025745118744431551844508103285919092823766281032425478917907405164165364919005500307007960846706019640026203956358435815778067404465175514153573907963018210415152797359120074737630513852923636696058702169481661289827136531515267841953435024730901132051384078711107621136566543860985673329307106145298617265730366367004583408646920363051350732882527689409597275986454655289065344879081897049458940189788475037208359822390950103479184586398767907879017972346178339304514063380554401104927728481924036813001251660430518767535707695175283419476780724352419826383487614432309988182476577739114473205534533076683457212032532032554389038258850982659751683666951880888404894042483737985600087099924171156550448379129036214202312418370548809520855796675619518862549554766545581415418383713400697743928897315720481097728054054083086900909558916778233052865324088260247357836501056649846078344690902952558410659091115638941339290405981926962065413921934842136230397172565746016041550695904821112836512094917791725112521376653696307090722127641418921679116340519641745548966363820697631170551996292679167597776334974619005941782824546609243940750057927622456300756045140758422420196507717584880434182479000362906996396319794757430376964926095452213313362595483126462436827861540147648180248196794512956003710264103395113725997566276976609094648556523333300163287267275696560290250754827201647000038850362955820432026059782088736330443361384077541871278892853982179031013091427532348611127874957719487947530010830173322761907091311835323960615342529577027268899813752335735490035580172514237229867596557147833780254507267932825341915756584617921078418547520269053684638173003953072546767210374920248359442727861075956314581416771630799550245916492098049115964059015874320741500522145455562166410234427949451335843547326251167841788642591830850243941619462569484182343058988115682345597426602359510790779841412904876436518912312612832625062789929420159511314499845882488253483219408323190479904488874303540084278703298782510157239089551525836424943560682840808194015690802212446782729937317791946812101786375578505228187222257024631471233027690732227974714646313726192404175156040425336120053747116106547309455884138341362400516165851389590344575978128799503003061374934432377323765369355034502981515879739952685733606789749016940586361193061900849497186454571308142704277630816263844288730435033505656745886060972543257995329523697250094183439302432147111589409472477256524330981943027897190228521803338119631687679233839124877697690929658499335286061734098610833749087338746891951887281359092167762372845896019939491806968927602509761325071782571028245004132481626500277972747675535822913252911443655029872578839207983059640649859667689387143959423345874144925157069272647682290231588148251476818804774470077280861902026435488918817580760085677449701987821152370246918899994328290543266066139304311724729207559696610315454939839939686859725337784856295386320630415765313560269533859792276382812985285443457901119773130113389552974547836308021573933190429614656498155254599563070975720203181294317691183515892521272490569277310467588810345487629289270077099856168223364932453159618640513858415392780061783525149806814183236243430393806923099175522498270525831792667628068918373880330290365639684682167067508990542214728324194851351197155734455197025131263333050668859351691591405946499518851466978383362053432899901710241242082204417377592349909588192663884173537150898130141223016654227128222571196550163525303367075738445861905961344248430196836547421326719905961389069657286883285901155193992004267620962581845335016303619028273456219968783197483835100145736234439915166983711350777889577483435123796074568191282633524433999674805535157044394278490980892282154915163456781970448700426085251598103980930804553648300336611268208093890568413288087423612528725563452289300183551027986473318963507152301029645651811163462221382474054916103771758839418247101033154146549124682131696438812190647209321947450051653835042666667371925975953913160062733536939003665638896256416787481449686477394678554610595596436799642168621502572245110818756337387885552797837088793028445778002015076201390375090292292816865547984635537722321465513645715615369941333776628290124606721764064051610585123930546427892115328533330789045274468566181247323184356834715310924184687172330388589489283443611862330304438129125825003683929873239559142640471159861397768279063870103589972006568473203833243911877897251056324934462508001364383844773517858286730401842282602063100351201034276764316144532106905933475194611924819316655225576123326371841199043373180607128609883920648318201293537393304512844419130938769362070095781018783709476615615452566888187487529390670550483783795421939954340025878868844222839487280897067080000930540710787878336985588538183239430599078551824162508859719565341495684181372363190172671127936284401110437859713739331515535137998621707196347004467698709720526136697216097611491793469785198686522237092837804366979484443470565867491117543533502813816251271277451554949466033077861361466926001288345876361898513078983449927764922486792429160340753119017260639895922739021740962580084396892307502876875835985138755295384632486015656390765928418846041847754230270773314335393213721493496520707228313417607348827739024241185661408388310904315159473299977529658106392869957646663870709413701410376234683018434896927358386929469779521897267831034613048547103154177420314494041788184303362949004485194134571997007759101480361909274283902100389599530060322770913566398112768935494369715026877126043089493961928632054185565575839738190993057098882849768243306373568646268243534654098537820107042519088285665365582290881241253897786584890092435080531114355041850846921666500744353696822515212894243182960115217049956663802760941247447635217253936509801483159937087869493093535181774458558165943675372290118810817126104374736323561526813956476507105804141611088889279139162488836506188274467341676060233763881404393414934300797587378979245390674211435716222450020905892627973922068771347123973911351799339098188352320250217950696630010628402021109741716953744326149635552641995914657894569336045386063611229847082316420769303909156490326169232638531308983460136833065209318160126777645789184072114460773078942956759115192299235940507020476275729352424792303898398271852088389706204788333879139690684021004647171528163258583066445769514958159336999530067957677853297522682054491414636572771756403664650670336873118635048580516009098644564152738091322930084756194591493595678869509090892760462477596962738295928989287023018657523878822238103458463837662261130409252612273264321702551206222548081838374775242732375371057191717907021003326725070242347181653040489559594528113642353656877285633549280446929398713007922270111141989359119909734568683180222514733795431644842829148358927878503999161677563205795121749684327093735893240276552569813116745062256877386036483171977888533247172921516045955462547640971229605472078076520352633225282728315448219047864587135480532086595556228103082930081918918373185892092725978470561281709382542859186716978459672623045328290833892725806431734060407684956633444425191116955892270261794304718048275601172999200859026531047049328744165640839652396964262846893428085439320169971691324538815878660521947898246341004284100356137835951448003517556323492013422320257321322456923152997351399000161369291945855404971018653325926201996324896178289939249367667674779074485256329917618277597085122261182026611401641616598756595093897220249580817362413319191972549289654322165095045115986059642220361324621135912951730457661395024899879113157809541471466910973286107187515055298389445119632378443014299497085226644927100607173089032814469868824388345184413126905920141263446000941606571435275086496423435708894693138852603426322627192610923312461877091220463505719692637345297930396685548611986119190415683022686844246700543102881571281059597280496375815354050012913611564344843894036233420952432429768723476500789569540022980684863881832405424499256398542923183508835512127238875240476245945916916564008586203176100597596944631733767999379655411050542651838332820607095218000028243703883472955586079120038251891083565059732718248062481026006604994245692238823900362194929479028822674060809741057866095866050019744594933011000148780279900635311732509218892732340173245607763720939783908427567920344655420102783566166001543400196814386083741302157112651884458120757204652825005472466011070896566125420739137685938744565729963673178190141731394998539627732976251703971147912359206293651092464911648116495039266754922046895101418171954489108753335204442264272509888430638805898563126777821171472475493776278548300864042920861939061186204593377016560376586386808965727251995507545076422515977934562664967537418269272045924635014718381599874051082778687054984648572616220728505472026837728796156656887215615949551477808225042092595154268938852923704004515667796984908151118818665227151948326612424161275425232167416371142297496710131405329196289747000440382700301276580378138766382113096202273113003080522409202711692170483058176458914240346042101669050688764507260529679580131033306674151302528227061445299409555365838770467092102578532882024054482853641118543827170825300182670917986795779274502051560255750518336917652712297136677971582851704219263304687298241622674320900602063463248509717353432797060965499412913423295028220669564630740110441340061936325186427338873677871548135688494966602781650339721487967565909518404202736895871558388276024020829915694442814595077462596651600108446374334059603582591255963531860841226621841070258877217308775359355930271927242470529449246438741197139829748627795792438846511084786808434840933617909577042426870963652360928214345998982431035840170693645683488446571209489159276040026039319814016925042196629914890949168470118574454309338628225877150219133759613161757226923000804735657897678519586496150157577770082991305095738854920310124460815116446351315676311260350133894198171449514642079178592687532013237517005378573540102681756363690308934373892520330577316406425719253266154875350612662160598852476613100183754576861202866788929416013791873417919014951753350115179802399177177751677641890532729876442191854042126832977521954314180724932391699360231406993309296684454530697794275883792809241458799211873639516969959632716329854500017951284160905459967573149898729428684431826993332657213105994662667221306699701233951301724062430845289522311786031969876497420812792048519464574930902819610368403817577217900239149033729736709642736454056786343818293165489355033868485721949534784472778055739434645021063151537785214764126120295034495408765149691764106169408852670737147906376159444322519508705303621501553433770156006162547409072805507652150592747359777782661157100602909771223570326278661894983114524263731835001100662572210683182564965069835868476831557359361578978421560412252722884118012519302974175074686374414875842149738712598910641830669776503746544478073846451552454587811209643103793702229754884302891081393623544231368283468270444230707503418268983205401782557095727526463829662791409130910776680943435226714684917580562402013698856444887375464798011398165592428586868816884105069835182331226918239707968510732087025075983293268452079408892548029565333918968497976291262303532803066631745589177495786562251627166366473013997363964272814311677461395394662334929584470437306382686788728921158877642420622174492271311363234280898353371162437661115241103572414318465205001876688638763837236442605988066081785828882464171871758597356235002257806365274070290790456923715244677944856409324298080184678271652141376771236772523708423504959295312989431505320150461577863752023044708897187702125827751877601251317530317593685856483506221919623342032159333114536918988930705181983430508638088453435500970200287057850854640431545716430851762099461325518038646338131616152449582749427921817757196577499203797755420398334909580251450765722494063176917812938812360555953090452690320205427691692484591920533589305904180277189256108199418382866946949516904763617175641025008438056815103985888518572527383994621008888041898316694017960465332780953195295931762269534412899068085127101338912015119832339605970176336362550727035338881082901828801240585370614525824425210372163696516866734781692779471324521032657723067904576677728746349134993911926531312419287365471473248592282927334037172608993907807667019625926613309068078079469601887352007426245416291147191720056853593523772180234942037562973558971484183228026067215949290729385147047286147357666480341503736923579588328699690100925779225812086190239211049571357186598135767378307557537493241086240651423719341162941198303210588010894094956570166909847748808449391063469836704663373751878588136904769524910112017245448890668861237636218382370841701330707902373718793110141459167437053291559587871380172132324043466767710087152007346217003850888186870070804685535228238761651404247943074983567486219747117937313640556320510720089385841483949977643311175039768245499883450309674008173220091744782511203622800154390435369507779426086647027946383974993911178999744373484483883824070870623389626936594691851189875487738869028126650009072895732958516192353620452022123458339052470157594887370618877468499230393992358912310692173474516545766656106018138258182459569230565690198698249110914301419381433107346543479706130471957234089278572816148172835805794985374050152275743776155795546880806212056135497391005514929718180543724892580846684048637136474336965260491915835306290786332412859217081775173930172445842617422333380993375475211049063790907944607421296350925659764547039532847430335457863552230230637509906795208595832435403735941149438557962227337935223809141450397918827489560254873755021198790504458926652716513688733413253961824394297559798123076423168826012149448518666692127965313094643946830688751490450740902927084347246448457479597953125146378180298212234351442435542332906563037118431520866210574132352584254032145891481893707951653882943539139290826061073415799794732511338144419057475271746824214581728609427277979850692141692773879163737480408745754918190497406330849491304715944618885281763185146748810165524878377446510776267147046699359854106454847328237708186626192519700992104792910080774507002733196830934465302082092749379490569173393611213685822753912628373340696162898309880717790273301964782569977393599743323768522378794716373706589563201017266457083994888761655909269311776210840478294124095888857501348784328753164863902264606776221958777146517787081115695237882495182411345514656970908595792875992185635894849404742188588819346794156335276689896662467278284329586728414693269368046832070681075095460240069974745054941795266610537393202615287401046915485825318633317958641232401054935975395712615784673394411026611287193959418693879230682487701778380603156191180271897905613650582264931931675305826767853089729095974094401230046277467449893527466220711740385043842550725542490457734558916984571275715978507452544351589153422755361578238273353703835135686922108528214514086408951823893219665958829044161498758252148283020836716161717054034851474398082091087519608004144995007581296216302777427993031668930111666204248542443912927121274658409063645958410881394305815161498207242997966283535440251037562999178512048281123976743126357266042352461345560645927863284166994458794052719775487333506427719322534134696573505169596308009733854873255527737103052256791152893782244894985184723987947714603418259054195902365223824585896050610895344770536001981614016376855679556351725727567810838119871049334505322065320961953943796230372699112369267381647945400534943437175313265513866972651650117400468404998172260390816630061515541700263353013760855258126483407067567968123866780090070247809464056632895144811226073107203778917523922273102353438443443040249398004466102016092356709445129759171413219335220342418500569422276746989800601662163050151548805474908726364673811011171200765896564618021354472877774671484551188707455352470612442330419949990900521207976695122336319343856381624926570200815438024325911977541976503394058560135752899036946564190712914558123616016427928115355777030175230709991787221516225129136875182364356262602743577169960568895023198598020182412655069184770522275411753149688306818376657608096615642118501614456083856307310132799510748525127841566608272121889945608377864231702550335412759244935643220005173068780697480942701424424973876417691674795508620438826702179785899609938701915268007278776783687498773937446809318133549616305833506150948694719043499976915799277465574750376516681086405720931965694008840890522420662877953794050880310753622901307922874396917620545416459789682687841970065177131416452419151011511581307382838410905144137847099340236190606842262298556201904718815193335587347638591857681356789072245910940289879618647905828247336614722764190917116769073234652899292775833405399018432279370367252658052565351158206121741288327285092507530500864117932805268472277260038235892292664700504164087394992050338152867892780686574380076084558671118664428696067949409956399391615529169465092523630761832482868396466492625489716027591957368989415404874909132353828931759736880260763301990971199209572974241577294947408430945652722028486067424947375099702376291711982788716010710529096512710055347349559943900436409430520156361149333349054657541657446805115809162992220414735409486397779382379087480647539119084656589313079592007181210450232306671440096774057415332262365164204047092046363914365256611220271305113835551151445105406879807089094025195072801089620875486757480694020772035736845654200115212265861916205543622735096859077956088007448954974107932846357426740184730387191251763011993360441402543537733080922692559889506054646946565518295479744425143536521400452500282708184759161858571728693023828890175650783738326164918713918707641387829260382103054832121067696757155687449344043955973903065086829215200416888896125101686604684436820743932081145049809113745551228694754898178273485920858616033090814514077742230753023200756831167857045116425975678013816053953244864697841887343756733505497209481957957175954489960370597467081669017924786383271120478620796835719284045344121916632944540632784583750134817253233733413079287110995566039922593692469444961200595024715510365377445740673606045494459083288499647023763234848750630971274079783552210296929783554087323653409029082998928280963583399405039557063051762431695192991659133879490438652412007122371168311738161787333082801656535011688378351968954997881162971539187201469301807657590271159346860742974438881338648797891326068970035570697339556722116548535546324733834165456449081903469535878062891878424784020332806028824484911297813891095213776493027600399982726795669316382044012947950693055159786850367689801309625932235990302814051321452409922681911434214243497176698631944774393776217765297187309564097233712151300216185660292079506255123165991826954380660734133587972322508424900377914476970699586196854600205746788941087009079342543065194598310325814433837495497564164239256616480538399057486675621176841374053300852728577128632214560087431397805133740802405675111946089992300972884444569060340783794604273457229790307873501086714601036135608861928657260789941330082178326790333644039391017026611929947566895983109139239115684337636024466938972403527999385100134570238016589549643368117944277987460893573283283824312780109474156207392503424267897500154758469803301112665608104218359808000387296280037722705921443652140015375944205971262103827986079240624371291754147872975676740562475878100842821673725650928975679047281572788720469647786888617582124585382175332791445096737021177951900138090325362707749946086903792539052037045173521477790791505092780852233286161500182338568872032433429925943456456339904327424185035088107878979104048238012051433780954665590077385784772160811530492495687214763915200862071857538246890765950474858761987426941537986612410577401100591140798703868306374604445937735625875342926280830095455563601410979481210977342476035393085303601891133328913693421634376881607806512778533911366646617548440648360220306397045622201022348794538168006600480910887125708998344136709296228104216881747840051449127600362093561546613723959762825379084028147070163412847219328038076003303048662956028133448463576460829460427263975284486585316759787168058564860287125180814807100393029663093190464700252387141111131333057254665754662246270732276728005547830115299649043671723740270732810539903619605134130610273854048456755341690959898614639834652001969013175724906239630950452720426290452550816261914957531187440882652720824795894404524012451725985050086130022545911567798087660446064698979379692928122369071482576569400288065160730504479860193610994870547697267315335636078707154943619501999776730986726837737188403870077711094903765329907736094433615533023079609614023118329586155175222713223755703616354285822850104509059094921990093269551465964189497788135755748592441430461082713042262385196797702304744602246857438930182753994247197572324999013584452740107229475022906464296810509025827345918891772527168505835166561143987509202099232579148323359153092820139826543086907785708706342428725912598541548483662666364871546623535846468672557074674100161005108542053420466448514716349406652648048025555051888481868533624798140750756956649369106374187311146460043112960559345390815796554884266907494603743270145847759086962082385129087897779835536127576318199121061423421641992450249893393517166185775133225702397632353483533508611052999824458116049411714225698868156199981785515951247503987372562667748662408798500582248037790984049345953707458190064445481303926168178858159630879748032831381588482489409071704326074223253613249943005751740985355556763066405853234540138212712589054466817137634507937839368910205782126635016093418688789662194121764391711450743270637905163911196881947683122554523177148119762552855181784158460412121280805550910889841978740046354695996497465253743722983704336091475663441775895909033993665852423926453338197545423046914983622413287942490066028736511959541296519358066566530941652090255828543701852380862390756667152458229275074600580744128718100274535592233615626119433392881681312657607266800140255186628174706996275831364948669825560899659158389400284375020146805829337429325915014426240394262955139369753551266621608782694206543050633608347089236856726163007680629198178697122850340878099438666981668272148518536786286166784522994507894868079871476739058520693116067424259555678669184455280868917080928818829664575581753409424507106004222685059798556835662277902430554641772589306827445040373194082071007170667618056672522934643584354624906252102372709619781371761173283557695856875095083934187042955636445113314612082262211893498459034779708487426844080241226034147826485244644558735341975479622559484078244189159568581740587182248517334057008774780037296448554778937027234183284850334655604721097583649868225183532580256892550265807444530704016105117419421557268681669243897175300508930082409551733937705121901545200267551494693605680879751245820855396716169639635996425111103115171547260444505636413639739179941855940940022978348703637483368747205854187668387368031852953396832776191980240862531488784709917305070704155728858175724359617072970152704494278874698954393213100870089436476113254770564636842454900589892817880869806121761011214400845466811595675618136184390419403372362054162959807540995244202171098632064890893353101425270402031235941004910858035749924253674346130408131483817014538684251873426635623844015882250321719359702373100821715141187600073003209116483263296618282333098359478894899046573468682142111698916535174188361846521664023192584112071980434512707063901542082952610060439136385157944590678547018357306619727980740774247210753110354594168617977434550564981975756946300197278004418337643378721953583531864412794754444980727137228990873782492050670461729072120886124496864455978279753252904582000694472154524501813737343219012163678366082750813971750893850230548555088818807691974961155686338299988608035312023957499756636170084244830228393577524793261733371902866734029636138913715356586328217030408112962634249419071322772395570609951385622596457682587477209275277730258652811858550901936765662281420035982732080505560914978501175592149681922347155496877958865755389226897388186417944699943883131950618607983804390536683114162785287486593417537208494402802164661441180440785690324779760245533424712935406349252441785093191954432193808621703942619263769750297439215132531201640145604069035072466566942120652989970538412996213326365713612804120517144580429278278220160569612185246423357838936738197294250820002286734956214149192443096423622348702116580760108456467559138141902361027585434900392168321825778499544032350716113341737005896922726110180420995975489616964948100964278463845581820549673104814011363243200264951727602242623893476866049750696188069731941834640700812921898041913383621584053594298176022606958073505959745725291686453413643378884536337045046806139089376411406423740081923771754516233920080468732034156507197556674114387460968399553356924478549000114311509600559625308476670404830913626069709542657166070660781965482138320221372378341289918753030209803925207256416602171457312892215532001839268489593030769887740615614105557716020726487802417244989705243938879825732948368793555816812308346032817402332760979307829275554206607129228963577310127554807091024662087428046473167362061894441723593392497650892786258369372028660648708702336882384084596632748621173371883594812854825856024377244667370717602746034838818793995978179476802058970765832993373114510035681030933893347283614775156554607068979161405602567987310259759630548420003552149611360699448905446844168841456370251891185552035184639127547125051493404332946552804049241414883824945423080568008647257105550364952002527224363958236664449840954652537820321733558359907688259949634701327598508474075075936919466890329664596513164663071511665085396088534860836452053133631041041160582695534028901366994673384380388054669607675226315443327111524113145927243416262627564295050048887866739168200599386522778027788002990940008884661362752568024577957757877775298382869469288196653641512387923030711792355881891039199974911373209900243885196450300646343754461954084540072246731849247811371966730765991070573450063244175230282625347270270025058255689902839024494168841225047866646139036580307324687357957980636239559880797050048962219158386379596364205335062024292099031766936937198940081948506878287781770454529940838521147446011002862646302507524878573954827986952978091931233786796365620879559483265459080140528942229206215310110165287891017745812700419840501178511523814755626219116168779178416455855640733789579871726706210393763403780217126662093755763316600424763041759336069932164794653807212025991339111027067229254528997639337859519075067923005448831250533488137805965659521871085391481134266270821213258214945061004678840573386418575773534098052440120591573842737371262410531049162937425842451404249187791289136986192844750430335858763086534281227385713549360230641288536591245457409107837079932379259128682122053457331851086578002901083594954367205177994326032870406444844756503684717397913608438010742538982296014636870138214070012983486632927042288627542253768430646778291817383947986057916361817325854444383752881218038478307671093562331767297109680802020816187515026986450924256512128235105326547287862616622684341347950328579787961931635847631888146085280016388170760248820160392097323395881245992020536318025953273503224752465226496347714748915548390142796140772967323281849002721432586736271833257689632034910575866844964854743790869756045533717450970377572574996914707218357186563453104820320966293665840512358014525784197176112391917619326782567051259777441272247003095105918315928316698323011204617472697244451680273377582835760893829500615882959015571532019294456071915225931583094132991418121401297279950282154817947211900981774980424269040889296504219009769988266961632852569782717294134474680688195137928646446442340361072541294168695726443138442992983588837658298136411170654323222071792638001866058508758799145838950877883977355801441554964182551921927647318149874791198833370841499793090692628805235133285557749680482009294591654278232006336363402768318307914495475920177393700875441639901807684415970782148090109542281252714558124200858007621379058961680625457182288385994997180967120047589925849181345558786309877517945093836243590938441183622308498396579744860051843862527984919848758142449426025951808464323756630997639138912236670138957837423878808722517639316013869902117135679504619615385455294359292828446060431611854697968254970259371462376731590734285301089527025647989088686306832616453963444530480995186135755718159264149868793687677250242857086266371506257025633755361972990509161570571966010131822694699613231438292792402948345235245060381857753002123341969891826054595131612633074709643126804784388309800634522993443530463024064119704406449487182149079156091489305059939817025307618264600590637949566465067602549597354654406287757263735238348541119090849402360047634040686954051983371487586686303005645418398525268565771673869541123813170152301329873609133653781268225842424901860339471725223873526355371355221693649724160163929826976328432472199418727327017374165503383569350899995644064361217133795040629969902404210447751424474821170024758445758610601259316620156220920443171876555302562473173938839420663701392473286405178214386375382145466659689401062810713583039794246360101957108992515103383163844601364556205614892184059016781001468020913603467606419720414210194710385401443958173086845475727429690948911462122746444220759981127816407480459674843544413217159893429169390835811185966022698928309200334158650312770851031166596584170152561693430762120021613999216327379604898835630884878293654952845341873783425209899661337322175695293352161846453360575671182570799696192398518769613442627070207620510754684966833170515556826777103967571633809872850108176268705067373430126038088891202490452412341340410619655757876085288798560209783636952658321438182199057850138992355424002508002034722019585615621956140156654766730273708368803985760891050346980473528498035716303744841132785456953447154475224464500812926427949681146049619893485442368216241187828128533622662136435929774926497067827967157927296081693404462287838661911795493851257154738611424096594259756971918208139760494598219691727155090531161729325140637552918765224949776299551587531659208760337504235143539870748652616448657103396297473816346098611669237769445217808987185034775067999528867450139550163586869783961782145882890952666252962150733923239083084410945894477489751923085050671677047294689502459649120676526556169660761202310378301340436374352316550644077162520346081124294795705541503547733702319151241628092980343637197037121855844833716315325351644823719905394984641868252031046340813733760017543250341230156926976647122724481919432929217540571035763843895398668327554055879809708863806015656868493290584383458663933882596031655850902428121082836175712685534422201300008173921185292694444721304030197318708638419040865119268924482808391894455356396620451845472924886296842009918555145756275661315431624673024565675912773304716336533523889826749859583033891534906504653930539914273093998265908158734376944092782942906947232786239456775921630731420963259589720149201766460904058178046558445808680162452769682654898945799679235876039172660692134804279367560934842007560013317378581044395142995757590075156295180134657115693123311901570632114956014348583214610734482953033468444120782579695840142781115910093782286445433625032333266778506280169352610437130910918665362783916724609194650864792005161636809078525998345682023773009028077482018868407376312066977389040109023761680863748999505026259370428791692007795206643567971563938179773138894310195719302324838663302038762846948804587070105575725052654652399291518056419941249473437164570535530519011371913766754621425228312106193512522784475442268995257654645290632643815025967134981402075262041542029179544700533439258719635991065101870008024473971953025943528898390446220548201525983080760772775306029157855585254651332487772969547428863672350120557167838308480536516466021307570887763712202856465400269016184701864834752580711313098907659227608514462959607074819597727160491755435159672412441789176493851041922158546348065439962430463870318570530010540368817700540282955453115819876569573379461467369796150035737867366739810651977541542231028288969360261587564453657587356565930610259106213460603867141332120695103658959099021919081018893976015919746222210225960968642295935203304013612161729780900395046115930466843181641614339555868288757219379766829814809518640748880751939365977946356805889038306679421597457505126641746359397724985760985351665344302173521267942268583803919450065967837831752652386663673500164282575735568908860785796595057212300827051116008912063247393201600007106518659240905837045057060233971772580186555562386812538639325095579123636387531850811815617033709258118550135488988603928729222190147975835716363477223561027828498410777142538174878456390644716329999774402985877278248725880966548642148289411842846262389486958433084785769280563774391071016012064971633049279971448614716904082687738430612745618934032114500503313600462923495893925761387879297276174216160375191330590620632569057536116273339695962812400271971772472096181481273463657303466289453988647812267239856708573641647660458816573107592503131118414703431472668433087784632319391460460649049375947188283437415411053484723685043998343129289275238130722410368390373033504725370667354629967288341574248074361501238968256425353822356722498206286703859958600950427066737993689179598317360368820013465166655905220134842329482551534620161610452401029639529054494817548333508865593809139803637459863183233404605338506489107044518962796922550333836788490972826829651035191203151298141772948249192481258304236283266730808572034592239934359377365963176584412672307993541127166776133676740974914227981937291048173374479361594673849292101169265202371420574780136175565845063903638081260003812494496980640701250019578005154739647766323188453542118284719911096068991974969483563499860432696392303254336421788223403006193468132967232989031169992467160358849449910930964411597542035704639378031372644670691712046555060051472171252499377730166053972829215720014771431330465059345919694266866361794021660959777161196542686864206570928225911060472536882288303538572095340344980925177258358529974704495213495344526894078236065319753845653712806398719921095978633259803110785178166931214691256635416005002230116778820366023932445829019768934961328560980230278391648431091742663302427241499895272015841754433961701209446139007307148563244888995000324774028857603728252085222279772996260491242747629276569898297006183822450662940432629389733666033248356351357855389534739511361136048329211603758036348997786261526383699707734782564126323768502209546588056690444576890957188330209810286084497667777789584245186501246689991778528960439292693870987620867741057506615383657354358567124748503394442777797292643268969221353325381631455334981828369223317338679508394313551712135651609676562959105206723008842756289852711914075501911015154605375460950213204282479751515553500162151248510044673733255760225796595146950934326240248092886959529977341905884241317538705631206760024344015353943616143452313233765263394483468296309763307274923621436082431017998784354285702378572734724343067173863190015956327862608464795637271407800161928845426768754618543045418596597484884058490999110305173455588303767947578886750929115625865224321034349964656509776848204981856128817094604358251615605198669316173534105722282221554471190176502409675925464598840357870847038526051216561045935311393413888015972418003794528134097914724100723154074571984764252979006652913012990077708415690020090523962694809001574875191407386724536120108308273698668036861896270131208317724289753002283799484471480584093507850016052866051172980301455428179473760253865993985111810304275900155498276056001906918145223254967070246420183656164319636552672659490147182112651997609128115647253457776039082696706250398706934470874827405953462653185791074539954653988752921605988838654548012526598858155256638646063814526389417185481182973132684020296859528068545240500153587914878065141048316516984210330464204264065721374160470222547548085821288432155025332228461066331921877727042644855641921666141910687896818144002749426433902675840129322511365126360095666552203436418184036929700274970001280734742154406180251909577941028140501367304777608149107165421558940072090221643423236830207250419249835004876893845309466354179352607313860845472682532455497625097151612443081520745899671936979576915236425865529624247259177455299602675466597452331991207995739751143933220918493379061738727972639795688543575430899957211486479845322510113228030026646292969408487559280887370646153435260545606966224045200453495812835388291724089971675631005405191486973664216258000167799013823311576174042838489887429292478360178543565087933761488111142175417508748963707776408651353998764751582254228842425276880243811488806504334588331133647910725244115851382200689845590423836619836373498750843925942012295911139420355884740440987022949080783644302436764025569314887930196831411519990307918610844289319964340146218140298617116897622603502830307851336980877962403969110087077798499249132001078911215429578355980697580083307051838464016365008693152370191839697878232596549574838761575238397981108421038357979971226616500043672864781957930110694691626503070300728982866124052747537498671957359007948746476556791863382235670442483622158573826430601536523714453301429986666984878186776591102064379856517511059276411236191896186387971177579039535970604715077298336631353993519008227304219660026893816579223768532367742641731180809302176758365415719556702127020078736119192820340086908779156396878308698074294406919884200692254357826784019261008198888835603623643407698674658579826855868703554151489446982804461665732767196794073120669426802188233681020400148880671757884231157813641621712641425043255222065777868720754975476459839885717740561484652744170224236730274179576275935964416115790957403633096006869853289408896703540914910406705548108640382629211575990824338904860562391132101422208078174868758785262563456440794131591798962554007461793746066973305035480876549497095659666191808889279938130587836098213277360129604156882128030292374575289161805172682669413031725427844813761281483226442214584120573404028153446309495404671405745950081611318081734457946687572823272390459165065523304878509629923609592622882968156508975315249790259753712965041088219486370409883567068532819029444960654785737419430466971685775483830606765812833085440192589017587528086436321443350703018281985100816035030431325644195700973235054464466169218722441699580543445970124928373352899135514049358658719215683495785004960316946668461495049442262313272998470320556364639317824829945624513704404164979932722836354471449279121834327405625870870865552481507028469376600925832401997569095979727334486313374974936034369296292951451832406993417130424121181161782097614918679657506170039904990908561740447173678999696504754859525391377217061328714259602634712656301273360107900856271272733177788474473978874358174394311498841808671805299452704420538448056406241993571878681248169465329789665100745001998835837354360808733408210801636134963590183336622158439231297957906612401001076584456113350307892576356013532226132556619962497676552981929113135231673769366996727229131139338468298488832674277954640128673161263226858876069615077284773667753562710451535797597509162724844709922106436313006648545315689259412526027271847118393377951056252941228910625155294787823519468833431647430911998164379949838434425417522252439069643543767920498965877190674048503429243320266235502563633546547863339244502275399504178363144508123640767272143409390801023140846891896719300668175450953383464386078236647250744745559158506977790696577104580153712536072784845755886033035821269258229057604632016047420096622646246824317666117068952721830757528733534908021458685921481898972832519436012419668147440431557357996325652618991238635991525615090963993489970408872995997696945919317429140127617203612151378306200879316888656834718374160230605055120759416547068967548758597644128581194819436816623729911291268691064983063840678454836828358225275459375581635701699154536704426527393847153828423333272491984439083155693917270933275753056122870189254040169010678799504286493187378284851497863073483453359032825850775115293667853709605152443398973001680099627959406880364342092099628378777134736141053300436250433893837407387213240007105574756411378642733102577605108148982140215293542129242289074001755772691771189647832806467494854479090217270343543388938603234688633921424445714579407262424373854530473032394130787417683338992983039190518768559560241302767742948200587538556310432611338047466664261943665457668641256085230146361458850534793804121123472032472218145607984508806385847295275785015979764845316698219711536345201031979251166932590375005764679777408834528139376466448221387647128050059142513843326300820141534230177068220050617299707530956853087294477331772136838232453587343820034606621338928798681991956485326509397167557390456333292962393616520917391218047177333639167362467709268988880447240767232979300620445769170283115138900267520906756138072465629471090303572477721522548191761478453974434590288930456059032651364024684524541498704852930857530271573663630048953917931091919621782009186953952910860169000094681990246205322057386631799540751691098262391711884676487556577583955369559086132288435320971241563289398354787847704182954821919457456597050409127029043848960029755561531583179291787839358631268602472830614568277004569267543906357449911872819164767222646676731936681027206474077619963163241120439350396821138439533900391045514284821163334082141094217142416825284891128623412680422572793154944128408360533616576656372236114109119983357033634833921269360836064365555306796795440313571419469505136160501318244137212034906287175925262397274422497596339171552722464217248636159025961006628991190576919194746627451722216485208056065669893192772741778007752159940114464489827793202248175296267423453666688450787559471265062652134133396581543366389686145076571957209248033262165554156485379313852546625423041717201571278608291823956815510654105017797282977782425397451787617725516449759330124668019968525385437144540325198499399875994742391376645502522637241441428605369857188016291683991463566902080426197787669566858911334503115255949439992887676442246785967991236664267978536291897041205768522737512698240150555653672000321230772940080897273724934993457680650246534752676795891928043860916082908601465200688718676524564910793670905160615404206378437111211046378868913786353424040726264726750298525453962759149992205730447147335064785365456196505328104506379922012879046437461530823212749679375787733412224873646858378059341803578295144934867073683835171127268845530942982648003680969128902755520218165165340503111755713115141045115960233798115921526617999291471053867687501368583224789514041796987848553316292764974394910832213019182548500172775565909830911778189564893723732284750328097254646096670199393890123277022046258005917915099732665767834049401084333582551035621007178267113573504019906570144336610218333439030542212910010216105504809622697336800718129829973527813956683073940157335642977944791233787680270782580437301256597635328379023685723549151454312958327810301221452699285272095827846680835964029972900270218598241530369771101138941970024584270194387161742315100163513529223598859882529830369567982437598669259721801659519051891734211803874092121088500775353123498242742155400395286586445076617272195086552556822317117922443997120983707874139386871771399725185158428249207597160603744617937864271380357098922513662053444017394288856370600673859313649678323091027166242756622145785963031400378199868953512816892294602902738714408209208381529510298737148561752928025157805858841265371781681218448985295238989763297491107906148542209387378831222559189572096509154208288716465864540325175174065483460584967160535654088022022346370669994906362008066921181734294259905879199174397117177249669092636869750667260760566835454464619319063007282350930649737803330767871333554030982346585691048901307279235799418667209318303210110154172159291140047495633681879217722334282647327644602283371221359107179097395550487495278311758476591436342554361371450132959496980634825604179543343129484881668399079830281899105297789266829379513382167641783861805440896228295540336825015692472701905421631233277096742106403738994651426483635568499499678179198357215435469575424254887706922238546544792449511607128742217916293248805507952069856979182352959472914237616307571060461649770328229919863421664862167385812883594127166214274750752230877045405514786132765996872674846062518765502694011017762560080186127796053105026796727268198328284129554863575637850335585847886774927788812675397260589815430253250240338675888159219039578784034721067612512415399274821906152531404181045099019033488173219452440170581986985701763978338191408485847207136000896134286917268668625307431668633966603272511142115805813656275871930596401953297042801451839056468884097282248472772370567813977042633485770628244614201549076303118343555871115448975620531750501786338399055075089682369868179997027067063491153746849411785824078712228720891041953740148595671051102483065808901813026606398710634885068366150833369669992692162660331345115899893372290470204316574878173188726466144123273449598275053452815603979996592809966750152513723582510304778998870442022719670408295612065595025942227195236438354094468270763594524344857160025092266791628028609936109690784028189887121803930553597377407277154777388165638430644063990518816577899612937758999557668891208216309458640912797279250145059726039911691790713503755257541977050919935743870954435516731117369635405678874845491711147279581023111998940875185463169677833543480345360518896576380826768157426980092374719882458369904984194253988010034697939927092270905457137197743765672977976231909896148886930921710255396844630327021543776053508475197127979789945110227319061018673267407531949723087627213202900764120610406450603904844154979793297270825091556847527641067841140333327995407418584524866343671879169488688020221788456120744309259672466312008138433328877429860263949472974541143388450838830783788539768563829295921281956608933143394343886712993721089520614382405010009819721384436146907783852010381518357115635446101672422350318656407225624331305291721542904029366506852008930721032063868242551056166772283134140136679064353561261303839573165815294002063910576379613216971375275180049242824551955581797472984908356644601194757614935966184160336174691633879984557600503463018431400344597440043460970473707665005473849866702579069999497264389114057747252330859280780338370092214459822213794363194101274571324240192282530828019882604915951729823792894283118287355647215106782250619088451511158327735368492726368952231058444043825253826179342976961747912655662423703047574651419693488704707202388528671103570905273861168248994213092553262593877945449312907382391355728865467517239130390588491297676698068250431813146210529687342174557377024914800596263544282606059613541391539522434791448727739738837733968933502426529048680054512842785154652990804927691035341045534485502494600347987441163095723424795537611612904791925929220144141354431967229120603179906994010400992083604973630840889772112541013765213585519457638362276900591046689718264089153979921163566425427165356297607796001367188727127504409601179532830198886039702674092267553328751539205148313919107979574616080010715395461678403509700379406408945604602854604978176596626272797044436909310943483362871353327150908227947230186886598653191714807847040318745715129477937324951939793432026148721696936938636220107019275750506388735178400196671583741062972524374560378152841626314291053321425467320333859188617044775081672683273766867912055633464336516430516294502024246017536067148298685504916705903669100198892731071624737509822935860717486089946111409868597785986121043498741309604915016314769317015410984063427197492702309783217324577314514179262603455711912156819689060580063562658296333815952069573838562421165123166633505473388563855546893707361443382675702621576670266327272510741773878614169784063216629900763461876051866454921839382208787813018293459241964619849846647813429617645989634207516297468598795909391864732515731080837606870324179842528456383387975742975916930500845123378085005495488910984582677614755736594097568244644338890380765521087919503993532302858339989119431288587420394492278826378342628514653962585656937098328980160000439266596005770138786996064208178140992195781084712120953577104546223827641773641559709044473503183855241416607146578189846272420773546408066519149262480478988892990269398550471425445932863633897247609132213679710559621327250827087395396239932341675211332487026067468864772430784391642108362820916126054132047325980893305399305795575570265145832465564980394458306221675249728758139046454854213761686036708921790040442958713341842979033136065127658995720236258308087290676030254892917749123877704323003908504920435731589794471281848282287318289599708546012725785073582440280686568580526447112684922563604370679712005864248254638950729161331923248832060535092366815414288597826090686593534117301384635327380212201205531944773843532765266067633106125897256369169630217582261067297973753815599914989697530911147597073723847891804169226038721431420570742914058066086194964635031660473853350898880399486221843704910998987025991955015929786691708461079620453813287334703062983540831201718725455945014881987848869784093647441736919824414032074975541597252660832758185192718748277407663470868717931974568238973434332735172479445356004078713730352403401672711249359901999379915693552971204452068253489147610346383034479001528135115963408169243272661539608265096473330418300714910530074287912680137499179003990851307540213314568033423238762980896997504744585126827859295173106392011139098918625521484651404945493989590494805811860468795580907487534623580133456391719862030416567169341347091676540264508435112234249046054525073129037301951543964822639105436012054583055391000866362315613795923833143236043033384233815582012360065310371588646257404781374685246139541808868287077302136023093727184824137779618149203399287070654820849520070354606833886896614451714813456090528298917013113850714747672079120689402172423112171765033081222391020102166801099857149642225309302910075432384278386777126511044002993651121067676997603020188072907585511457476745684251932429087420384741911604300988511856965305555919902449813148865973807054275514964606564850824320634985579913771292184926336461085101433111362948355762781382643878757836196801793146393910116606526917482408359124192199296466182344666358616241698932852858429281882183912681273699952784607935968269217062654567855968588629644185064822815565534961783879094974537296602725776663262605603670757646407836760961550650128299379408262759451839187074636266110626975747250028616512389643295964428723253484536373399178816800346137669107605652177705374082566852170681766573232719385970763788961814114582500457691357105007436795943568047239947190774629601340940927646761351341297604735309002055612100022168969800009210251298110398184526817090045899002202443933617971310828787063538577562930612154200590210666637846137712676746070303375023060998844874832361011289865677367316922691369491913047955468524430248810112485381994989153662518426843778281211338640846608415817772326025046692187386840597482317450424987846136613974872162592460295752925361962380539775353393682695933471227812931923698238829774608912308990193179305079696272495538608106248446783153963970894116283047733666041060439944751389587220318112783941214724020155343236976344177845774491348270056418477486680019773470033406764186113985870225518793767317484623402843890271600870295855454415336875391852931343381340292300392474356349105795358798960557168310854035310821521602265744089007067817664255302920035803699265274575454001198494998954117010241253724841605759022407244790369558563243628047523742724360342053858228485357892707136975144746197482777817055161956224736836809777814216555639877594424023116615052653259781074300869383648231768937671782372535547263114337084609618981038220858118226730872319241365061488513082975589330979724681127356889424568101140206828709612279490851957576371477776061213151318426284489960256857060279772170231951238833835767639015293804652340739329007399481793421997347409757767359249655985424885586255689591250549080105834709077234820009652111226805975476726190919397768218729010954164409416833359172479736554507898206119209826480786075544430831048224398885863885077942493016812167097010874321588038175746387284158394571844584884062623782588232639995594812307840819754669866693229882151099841087359662330123516100088003680277103686780024284257604101958673755082480231868993060674010377565754938866708789415138798974042559312881110381786931498242991905513732257762404538443449513715831184206349219199817356423864049865149935430261325340139998839176535101280869727869984096788646567409121160584681508228328313716175581695609214002490624282249160244595119428859996678661276520122379124283902402828970111494860657379294527805567484349493049139012971570080390970039205053591829326493572833902850874992360776329518750063250604050117860012483568575570172738061344763552320918516543494247429015920859942965888029808260758707606371162309423246180601080192859177339920157594609901173670852771195059062633995191170982480201290723752476232521904700374919274568881833637250351888031492236045875383642209261314941381211237125498792344745902484955998896655514663467629952303837557770598842270918018672651027474262947421999997719265362000485561894755136611348674172996695478015698534660205314644826024744501497877401802109893557088778061355316308258918821680434656832889245799065866150838160311721366110945712778927223076590445186852788489281440398480374190693356204185424534925770084181630322744727727224220478803660530176589507024146584613176402588422686852138577109673477310655665787585052091767520165124781775485282696097085523811308070124369832366036789610144684927103169914688956767615822399488665618547947056200363344878886134394315986766459666053351672531968755861525368337811408128206244428339344304992300791896350829997110477532906139421279451196311944622186591155782711292471023603047642518204585115181707867380288957234435018627391576227283641385735883342141214605774162018851073064013940681961373723499612574349035015957707985677511539899746098275314449479766565546780906080951388624748363246043886211395969528109994636517072247189997045824578244386085333475138800403326136803671815996230361111444289403720515173285657984002347533669940227220706028193048517096404395048589986317586776969327177114370636071553804425184713803162963749966599355557777037629995830704598836053891585059568787923541661216097491975588225348456486520495723920365637608305128915519642736193135714086809831355066945718662547113522060194445789459756083413210660455643779352940635782079397569442379599612346652019750188412082008023141744648587213582799571300714054855610908123670025807365121432555916205863915678767811245998172365119966137915054614763200312779660775622443839239840318637796700843768490030278567958806021702903880059812366520132775650963345387734269791874598177106474623780188281523700955850104834912769132876114669524450967754800204746064770377889989740049646232427222164826274352941335792445563056917526767689567633088007359350998169539684002554450094030741735781794619065527643443058835991109838732371637005333093400582125206602878897722259564172006798412028334980018962543397108273057813140358434172503874376882141593434885809305964814512242613243135541933722373668119274376381866254264166611948526443247541893254714648119309459363063043168460410479274258954630558184265923864231422101481460088482687276246249913062612484836460889524643216258767447947441984150796645903874704233088002087621950046186999724757652170396883812549420750273403488790639852489100629037965391152239801396132337147390911426213662292919725848466547149581081293961226171293491088427474842176384359538916567073386758426226348799105154833960986919611613417549814046869553252362496855986843915381208531213383998665007041985761687883592627761501752561241722393225244283501061460217305503456403414462225712080564509601222740720115663238536942350480457826060000416139860573334944956950809830113399020558340835376913015098961485698358099336774443434978873650082497603977903784626037916131995186121214777492928495030079579555514190980705456440040677659909624421553083626903036938334561973876210442592356399151713129281683917340329340743476408078390831223069186948036724172983080299998508189026267985179647164429875803469969303225005160110581238119367296319957601010308419094924281267139098532879742578332010273916350741726996029097204820990195389083256833586651828561318673261157560029331128274485546068970241014284477766647803829960067924669549164861926940638344318879631159993960861375659508133652468221547080863581470036709151080284253290324431372077522569764160053253426907096547002783031621120198371430733052390146716430159184550479081475684965388873632218274068089068539860527067982949161445650179691395024509835363616889735110714329597571611155274757296503262046802297992741214927963371933147837218020168409561596334015400898135220584634299720205561499705386404279738654645120686319748132362284079280997722706483718987741939052878230808667606758434689482979633238681406518972482372315359611459459866949242064895051851432370283240206400257606859808907424047017074721949400154253391992540550562378051344426479947922811002284995894425279567162789678459758842371422224826289055202290862351824763126427532769786920047488088380205109194960758911138320691830159045510858371165382063964891058882951436449500043416468063615484736904568245220345175072161869616896670606085417277010359358736493171939596918512116563484656334858663114537285013155838494411670096630631312113788620853680055160641287515631192112400181723032149167413828722736776729312284732661832844872163689353940433336223312025814933653282824494001038404118589617455572463696243315152563832363218995794446808605209077192363008284742157209311617066632403999956596673944324891974564876529881107556804969913294446057324438886306376240371341656598439187741278218423571439918845790982085099256391319078901336408362424995961810284217974222872960688870858986142886925656872774755064223032434440268963218862651531154688164093421522501868709899409814873156474164202638804659610473451939456729601874262250255192960284438495690676284882481613498018266041702849542827214718635067681663123680905163142930335785369160449053745632186350942380872495509340802169515378043318952905952356423338016452790243449434961286080030262205534574934601737243233660907091048465882701125970775619874823971818255034770716362316886731507577618921925867842321804382702257581816028309196292279831517116535558637968642225843429128624815609245527796402462378029889654500271940550852276641179618010407354337531665163567531205638560013906729712721847980859315811739279947796396641815685476851652766281003360648243768410690144521991858583867499344286735544604347085966039945253583090479950241831446282892709719120145660990004112533078536280782713068992654555868763025826662701006276563433159479382292345042880375324110110052059328577970595506101830446010691332788501996611433995889296054870501695144048262388507327400948488336503300534908381799987471003183850127208128663908378139240359115609934363886540790686944629547240398323487716822753475852011662797222380324853108651998990554551893068770028200873772078964452955432402583264237131223022365329462516185702715085206089473931604886411681504370991646596706189072521891533099255275098580929178060740967888030215554677759918468159286368658583531333804349769822454413372973891734718365570531495272553208084334765674645528557432923791005238602327191964111330441352913777162840506077084479350769275152697573507017067422038310969904246346562966190852644791237357053431862401069878104204256480558916889207112817753104518508807354556316345393870599835141728249998395043638462857500582167351762647056226223765397004196510882605463504860566621241189093831818121292998325142624346499753748091045228906760240189825868125850932336311948594086774960778457113068593891805589518575020746657477338942824488513405016549244558530348493014672554209233471156910406917074277030913898720422386104819211208678932684378920331058507912000594871109069511329615557485833244986223850572368482883326955664157078273165239154781174894256388908340811668723859369573696992351669115358124393669086507768814707968252111381792681859380751218601956463668379957247841199706141488957119456621467572258594256493768695296747723918358886160387300920896423929853986975575735305433707588308362041244528891291958992763392517903968533422016538311987749621309913292059308688998255024795813891722783331016361949382126126371861014767203658313626445426954379145499172035208584507559324721310507437801711505047942049659759135378555178813896251396959441410275305021130540933133706150734243979057300969838112568124020349236493957618474765735216742649465273058957787156762609126086531926505544898135533678439078286776310720523326110776913255650235170261979234666342423831910926753090678227022153589817892713414917405334867554171307095843929990668848855442677288412636577323930426743257524693657498348255728558858101810485445389628809804739302549369041393851164090338080962956287198847344607845683943692712749439751263095771925624297862596821961245421463511801897895049344054617654025281854280927941643914666970233034235408125266481137836350557752621288140773045431818800015666994107187594068521484375833767741772137541431167923524013185974946967953159960849991370590512411821229152109264560253911364040314980304062485917022527318867866070095710060772871399206002009862849243921981168644751957764613668349667060371550170407937135865911897844311799129754688624636223250767364095077777009797366279910750052739171664247827697623300405524303264777291203943321533268795476227031358080455140054088209207800497233234160771619846950614095815808011576594916259282783530745527324430013946182234564423193953010040017734049678459127089259424410210832283956555064449881040416790845601002353762358105646717635379341529263366916518743209452209738437582861101060634200766703502460894790915995044113192072125854707189986968637201721127950726009757600312222612063245656193171707519436861817082734159379113960455031416082003547343915373166805206994240144395748563827749283124335238213648431879737464863590011582182475642698613790123882642913476577795639702248058902975177890585437288075927358402842423406611411604161889177826225740447861146580253581150622525324580459172293442469230450556484842476590582022509729016207926701336854459130319612608096276916971985600637149812321603094538011184158112919463729423579382396444117721828081922896676724225739082502595683907488955193742423206164320444824203312120604393663193220527804999591641725044261591656667571986423154727811713198036175759249947882627834657136021953582742973695924483364665831365236852390639739131387696715609511152500331081688353757521006430799593499168525851316363924554445048150142777179179787769523014886430482186736176505780690597473854422202262890159698647518169939739569355414491007349437147543368245832201271005902725535131470788005557825582858693899413318474528155968673440092258915603383784263133730434646013784447263835548556669189450385930524442905519497489071351095407491721695314197047048276090525241286722733808582875117764956009749265711258851253062757625573994941154126474272411059030152155717318743372903710800517441538774128578924565271469220304764432227599791113304075827349946150222524153987014685764199665742199038741341978706601837225247269060450436151821149496309081872932488688129685018388172935664729494841453864829306609312836846037775571039031175301123511393503662118927370346242002678700400491942024529628027225564729170679002107651781670986695736794208107269479032187902880059663108060249443643432853583856412182085665724340292124601613365118026245082282185087282609639868482320226968240738285548533588773746797449947045111184239479022468822663663385490477479480287122592524668956487799583074883703329656973439293680925744694280229114918537075201204760664001284641888933605593391338439907693389716225771437407333934321645210251776309940667364698227812998598730673520697438113144756637978986075489076520354694795353609787689007462993219401430947655694556616340363263646444567879965616389862580387705162807781319835135067445474174034235871207984452067921739859883236707252088799967908572553471781800361099827626283566449144225727673597219314863816432123531130237040476405405602706940935897056542913732012703909714660487714839143319472333880254883045941611704825079175911826325179126482955914349488569613860571234869845896212639864589513601067031997039944172012674552346995946845977570543887117339290446249463291758192791929957224682344324419713539590165151318690977402862371673235943835349892447090647253278769923429739932986028244514813234682364219376272597456638365537719066916853280911362539285730454200783238980556248172902503161913972872660214586823261593415504641301420940850629381915309014852256878041331771359461433968878080427101584742498638910729101146128698446627237426170853723944414709214206335406202158898619637394649164401866827696311948764898182561996567958842645362344094927204963205811491103883646088612314279619666823805029991496511188024497865674444843318164768705221159159772034440228751320009778176358337644253604911941707013568343588096428086565446998152525529303736259828876330502852456189551341126048432393314809675777175545555104903946387985233129296145232324590302004207558100509332307136070439352265055175499513328289731438035936782084699678912487178728830723645278271124212392270770250144547173155573100692920890257912368467973889944086381872071351399027787699411000735239159043643125737835067529623125174210860835993615363626194025666708821082457309938765246844523674444033716870972466939128791918154889899407774082445810284223433188252175934523303024459720419414014430086747832399001121753952549389948276847696613104726340399017385529442205486580403740101076464547201629572636279473081135839483382355249136892150260861933685609850483003512078232334224881981971363100406466186697188651104526833728208722130833903057335293198028922169806292200696955175991603187020206385778357949586351183925730759505225281604698664644465685674596411243825635048039755657661804250489219622472944669337961394824291973597774521686020018553783821501511929137686454508069047654537879832654294370464583184688280967131691496028074757221421674625769027330920856498532953252896080904655339597664384993067989469562782927472874237184102897700565969824786266055878405468672927782559767564170002946682283017795710504902239239131021632406419891632209334067086210211473249736883581473189451954491478518279356788417969742717462947756854152653829350313703852915801353044795262533043111906408602667081713113622215165642802183858620641106762822590844555823303443996746371993405010831892182519803055282598723660250318357038429930206363518606645775352624695387442299107451220674574362133606086286564166374800858933876014993618003210625894546225576038077469410940661620521028759183097191608898905973549139644891551429582278160630634538858814134800057009360869237513225429970949389607148373564366692171486355237392618781578987808733760071732358678368302398761046305616628118342900028955546079817525571963416661596305228247091201426132064297491440871523341359157122298335240113603967560537711903763873671654647826147326330680480987862346538185226915150173715036510788687986958804236003920985338170587859206853297206365306554149664808901324515710872732732661441691395300504512036467776582373617800101281249530784998220059712139195092887880135193115604051541688012150378988707473508809815347884480076580541192622311567847460986356167938316841776525522353697200062209672419508346312259197551798938938733212453471289931711795967471923998998289641424265062540525148406605112346172899468699457092008666075993279839488543441953904335964567069344190163143495447543585711716285325230684113628965603138819865700232173685798748376404985796055860954120185580082275487303172915174692775575733828078792683549215985733448301267247928309989247661546022838252992592502635510358695708684811849177298426023805821515276281891308743349209273267277649860229383426817696475360680388010487233917217429183419491012474608079855264557368089801666153449978786416821949719299329962366958580877055983512078446937811900048502980174257136554973462764733005660292472472548188543694007669501300183537985259105812435624146293170836478663812573118245463461238442807209423904184894763245932990027591071758160832231631885950875178339978919448535699106370984719133880471530925976826998141278760232262359741923889682468152330588745600210161763553973270107410693675233463286179873409582920268795056648478206492456223117654195637385199676429098182986778564282074164927529943307730805283328162424682316003498760024588697386982501822076966622837378993193673186749007618968646505062517145081611046069581275595601643136372350856265291475890197091039226024519665260310612735770950067096121469749028589142032138010150890265847215359439203750797639284977463442632498436014800750243953636937530099485022823248700427144247244522367628536949809304563928273262071266433609653420280720977892287252130957192737925462942250500214449128402684488371281914020326481032933301671019160843371394616989184273489953833258336411293274770491076406151722644918116251475750071279728771652344388634662616092409919379764175649647024630771007355177612851993554735124562205262872750249282046630701372704327223188376495012149420421749136826136457013893955924646126103705868502656540361522139326525600963419072643406036519404006752688729437821763302820184634607568470010691463199174164594871268254680826619200186461936894636714193896190578149126604533355802475019268570305140940626366190649827702429720876508241136219264944077655620173679488162017412953483422812032682154724239890882527275875151365261243364710017807372343907271680019954092028822697448516983748727120008830479784634806695000195661817746307069273960696027401289309387171515822865591111993111784132116496741813182377246425040895298382166128651454134189592004835951280631759036730039952305553653809779914145862556174919899973884587060305665230653212135112071673539544746732366967186603719187731127741644975481026573664345575400836099784509412316955234263059571125366129769879090494093157055863120980308118156651119746332442590783451720848485112063105267363527193360660881961587164205443097737491514756063373206963212172045339133408081962671287664405759351501910764804201407738192813755416482338033859557811497858800233738402226986376059376483065770773325665745951393765387546643381971191602548542025335760830476901262377548310805383558959913868053992488214493237149363382828934533546815355209007240474435142328009293249910388257471453471781160585244150882413206512036489912367505283493719178234377024091063012023086604254684252304285984928285679610504076215306596051621059231957988195043487319339916921918257974441518298246476316993958294841807635156273069444011445841995891312162127291072105691789257155090923624773154507266421632436881712969150709247191876145522184466992781012204815715801800150493561950350470415429925431690215632790100534826731826325389518616351558237879536864419698898476089783828009261889926882217850281670390304936458606920130498289302535663209215093148859523913937395866479810097912765576868877138283219521293386875117895366110251535462941490631354568460240303254554813502409437691212193126903646580628739027082563513832932183839196365852376749856993843854288038711087904341541128316871690907284805095288194885227080657204267988470824794255257925432132840444179221889740861955895370186760744837060004025255483819467476440287260428349187988715124500894151695358915532102262504666602427522014038193989613682585718123487745535499253962777529306257924555557813832801191244403548141931710306215615224811113531728606035677288644388167448387136480564326205557038693421881371003521669418771986256615038585194157535796614335186862113061424145817275030368076869509755061476355910147340172278326099190555927259068362963451959048740911143376097790033171567565387270180758832442789809867207131405360668805059851733713476807114786609976868090884544449118592356547652050987146622945759803123426390510404666610946804061777478801469677193907525235014129437247097808525119874270349952777934250888707705887760226469698997814481141530001384748297880459747007168635386340595047147741126813286964363608150598565600231072888446290884636828949885364589355687972676278797484802011735071986217426194156025994457308369969677177185780928658833187186920354959045693720375011868121635942505102705180672642216328243560717043848531819212684969293562219943594177227366328582506995628191058378493210389342663261455225301433706647595113395262916338974963940177893236715310783573278513085447519043795079784107481899815069230829719394143087948314358022910825221336356608202263593422382333496227481794180167315343200608515659871222409569175569064933907284181470333991496805606387288531708961941990636609046749770738538231960946859779944943766778281420791108306504576686460034775126787336634875781769298730036803850451730149794225032618754997224445033986479242587435709809353727808485568596187727485027076256156663212183862245312895846244235982877508109406378529456898199991712391609334596486475651145787892557291503407317352038657203136481466533025771434549370115291300754371645572601249353680078994209869961091542892271211979466422131973508751766092147359924385048482838323652209834113429248278102902053732026737134750666625413189504806409114967917052637865636397621762000315633247412936013779190975412544326384980080515059263601697117706690492361180458858812134743064122272581752361835121189178102274333099290131881122407921563686866734599649239178481704419792808331396782706543157173048771256576808751195710516558030373138743901512169580387686142647026037527170295085834146571827132705490430478181773874637434500224378977927410054390255085741195290562885600251668847524115376257635127201050875208633882457389490154981258811504938595337513885520491487067721193829183951430190590042308342741080114597465151480121828312823919231703812923653206416350097074518424148984593753120696947428795003821801873688451627634260943983944169143991809954398429238828008160458485399805397774703833191443980473564545038707101008800730215213026164258710773523050033989143042652543047506344459455600054507675505357273438206311140298590924927869105861890334501547411525650377709118724642090542149704928643355656709715841766863940396163806175233835943967797147675766248593941437192598837199335679344127278970092231938356421253415874982223052291857294471254325328750391164538421380899138927737245150746379807986469718317047078920471126439269190024757985377831192332738177602787303901625134267960766484745699861344377993171348924005978608310604231018631539249450319256551154157585634995982023549979043760243413195500991997094760449877997999010905258223699741027970557818531479223888560656789093816452099029084164933114858661462651965010815021158891228715906152468379405314248661927917328512092777483906735080823486056196184516938652227593622422648426553911765229790480844350006846679508485747028969890666390719284508228119602463924685451444501504747618132952381622419786215765865667328600821060470989626350290246855165057957873818076243924104921146986369883539276397104866712382995370284115204574287198394994240138439957767203101442444536119947892120923865479082135838184789136031692321207164364698969518346314263333302533023941784763532408654285322238931576794987953478806821763059638443438504032934069501563420147642127606783710591303773245332047006139116545274458785233027270042103316828950618915847059379240119452325776582383026421567847657600847891881042717637714518946543239493673133103424760538163527401491187158150532529424044016419296923032296249793967835833279545964837803362445880219161947314408910721509928013957193353037210017224922181112068614483749150309168488585100895300923173386045416992823524569491636826354233949311868918104998927211733649204504748883310221823853305119821626190538987664112918170308732123322399957967703740759104183748021301450021173724667807119150551763613016586917747629063794868838178440815831712594752245040846342611762018728080171273695101223585903295591827468207182695059006440470181398587464611913407938395422021681955537682061270322458082900036309258160757408201093029859319420913568188287645362378332713717290305623021167892247946801208370021961406154071517031621146889419278474132005372826326383965792694747764743076161863083270104288445872824784510668227517778894652805307326243904965698965367383137824916355247847942006196584453284479749239096970619119721217917022388627841676322322633787341288402080766969411751056567533584191725385201871656749032221766653245645733209704797800493635593933840371271047929327105096377827099762069901923485875116742665452557596565422181279231367570428839370417778736914289843191723427896055943092449998055548617613259330569117340201872290262448380270075998810022240101375286381866944008886985745158055897066899876330596357594437612660529924747309001106738119455181909721951230172999895916701514982397650523989491534751176335646922482256051813614356122211502324913946181123677139029424104164186730359494267276570537302821072507398982933448134459247961722056590959006875607013152120807590442874961171113437348035244805071238665330213684634931165763679496450103484533064522664077054887446043360536131409962467711271564970224945757923125584566430027321295148235067898299716156997902249173749087960111005205070282261893724831070049872546667031210110793173796109455810373400419290235804936188870952710648479263726973971756758285296515791070708414770669535537449012488250646621161889188356654287089475471870722571904419603301698143928171570184524747247823834056625500380165928301021235237375804442107678216350849745336400261267502750457113161259213254872787901249513929448987659323205567919304577914729865416865376100428429684803035506796628151120095965773018319624396666230425931839195619099821962452445653920495766014159315243279004571242219925700370940515548100436194947393339444967952063008511406544039540583856296356743228610970978540791230587699759290723311460009413039731564761202487165372586507627926488864592764013993790123617597773556208212816476715522501388977969916955648592872642780806822405476847594054644424411134428819866755022876171724502144656788863269910654970407194881141809018079192157773102023766785053515886595152170631015815805293681355258759815460572399435814564697180545450731559116753312473462037940608198630742577134602338880978799246522251815103950676477451357977954524303682765635519291849071198958127756953950680765076466303489756866969298803231706877731516276007450166339287471399264639685657478315742862898506309599327540535581874561208871596769976004894033899529904796590447028353316288301588524130821421187085231417630982158448195241440545972933177514678018806251653667250040052642833174635526988951493323468915333854021360884665705995502387341432280884573418140202475340870237540427281301259731051176126501956541450371123334075366621654638291922801345501318971477064214742150558949528093755852528915635951826584019569503136479248353085615022883582301992844009415859867604123504791124162095000534094699546563970237350910587846070725748540047399050752594586517336974734800649904346695928858054256515686418285183600041595741588067635112551022067072755890166634498405261673462298422095888815726726934829775350046608493543680121528291790671177039353611924842652120194178638078640555770232636784658476849030216439846770654830307414719578798295929215924149821497922318406321058043343993967631138782170911895930194585690230133281215725654252129694954947961176215887996347649432568310590231352140501456286936351801707011637706745333669247301243805094524347032023584809839534324693594910508887265264153741477761774438029484242889617358497359513566073583430582850869117212504824278079181416785499567411449184990552168759621308339989893027363820763995772198830063694481071019021619646781001942605636154973767927085644710945766339145377459435906757181490439103408684788415496348448155646579776865332889754589858244626219681159645765109843019728213363073866841088431255027979796412633498072408271291040233258023702076683512321535105604492874857467315933428425543050918202484762667203040275746229057109161728524746222794908543584183424091192785689048803824448913870754278161369455654058053804686150312949332194160045738536835802184659316407382297784889134120951020621534503652594940650924803519346235500920827215958703768855128291935957321032991843850206790516936640112497376978232839921645410053576085242496192202169459902739688622629058093808580045579114505035293287117465850211212601103506169042499726427578091108803234692246017332220144735230484193659896747205263110796925723238749666843594287403024806048031626630327342563030848959483212095656695232792571213394157257169797506831140154330220473296487342332218889638832958350470834446364696432987641217309314874345195807445248491460197955487960681765844034410750699174438603087958598535542134124613241617124622734986603739852953366299050320481298101176656246474111478836960727009658231717009878473843179383632339046044332496210669536325352232270135530117696396529370693319384504942612717670448040566633358566363583491591558190886594604200447823806918456904088196377217373299964580798371494779246577376827651564464397160199816334858475711464770021442076340914490006242952783528983364977262742630238156176619725586753126749609482659265453959142727523368379047088645885327724626949862816003900594159388375362638908291963174755216377919851143912007434130571420414617273424948699697401450432852526781059107941730954273186775497434464913222297658433477305137421840351143314618984578915414852303583046189118157614008499979569841917193758280699891416870925412019622373991192908159928426584870079554699526574790438458805043422764260085409387064627675128858902587671250420741602965004357611219387546112004693154658877993355907860666670253773416685335804993932605518445327980102916034666680291984930539492076997399616334609074951258606190902896014783695377663524784556509227461325184333494167707357587144115563467232600485611472358175819135650274266840841590021175544553265773073162526236103939210099048144627564459044864230648179765407938233445642845701658170527322786462794279922124028327331725181768627807090254519327231349645474760348469742927523473930638890072285223618039033380795040760755818945563272161336432047067489357207790847773777736586005853453111775047621150574974108665853059759932739013829526935046749972127073952514119647294217585084862276766431604079375720301275612425684347547275904022274601759624353732329794355510760923529802195556532118069933246289869864773848052498885399857276387290428445030121825789828478032728208850853891746719731740039239917103234104257850921812390685051001898414933931304033982633991360250118029976052520481088416751493585509309878241516133624624621516004742177823386231587315103268064526582036788308857581176357808414500583466649400624073462224997556678629918052009802280779638426542797893929040763749479919811089720421284795668447824161169136659987539565166675653372270072155904789413659248462189720096965688312501769693514418024112913446186323098768678543159977808086437157911207607707973278765322784630493220081060937606252532771570927197843813972227034186696970391342431784527225086439788423608287963151308710237530220029029231544973798568284191715040615162728228306280847963750592609136232694249596215274110249915967524398541630182352274745609101761195661894724765241836009386897921815361059030303476659043049479025789265722612842876197280434565512064424946700067439672520338495417092285246231659790612532594968291764369821207465744712284183117939989701244086067741584540750668047377329158027799497504549845013671034841291582174451399277535897761758127342824351228761994351713579627904123940955756723172645646303404622136052332303987000412495671575924430378980859553185199635889081005689494373326071216507934946911494936800765634326092923837407151536076864878907594936333051062709026341767363543344574718619545966796400504839650595295701675590612007391006173363510872377369481720739677817708629906144301412155768294817903920972110440180571852998039530778934014307399975912998352300262871902842234059507630976041970642254964318132811040652662343703874626696273218333195492038303561095649715665753381588638734354146749479310870428697766517848826268261369106350662966291020135030639728106023362013829560477618701606968240876721420861796182236334956828772954972906814079887179396442989695882291696323298037879687831000909907448429855710207591791159663540358772527638078683077891699501127432122626348148413232388818205726531646542144071986549038360815413680468170215583940827810207205449524011375928432524094085922405447543235053727333471063263845922071148911723492124435387565571395317650516916788357942272566786416987476489344579634216653001342791818745027478154083738363311695714237053826647983247287054206354264929445629805620620487386804187157006106357395163091338663168262357782139166841218062511920011622672326601505694375242403238044258466658153050104518259386742833337271567251340612198734875071817439911188507074097915841671545185130189930497359007687037296252893840339219197132970528356192861054024236671443925541693147192992515523609209291112565842621692107124433848877051171401530047828952930594806755219067409173198142986782814057019557591945258895009620105656335754562305057438381925963772676942746268894111665425608269235681516395323117034968013252621122366805737465613471294143442480659276618515201624214197043768219129236491714562692265951578654975240132882440391365087338857309664945527536119743747547035609095387098838611043611283542948971272627334013823666610180851732796374887377101011943138233449363108771483058358130570799012464750951524066499563009775439938524207308914697196060380311394445398479666463492760819245878751273290606941164109552519562935036884398806517153571806064349494840460260798636625011772329319739083809012114885203408490796621218388155905696648153374322256800599163171708487274151263572838899472017263012406870433651062534248684981400252436534233594714689397412960366141814604885350789618668824736952211701111161889234458071102518268655480574848792971892133665854333675422775210393280684927086919012293169844239802929190015927930970868864349403841753616626231773434135524259842426136443779108663749355814168975886422715057137135230582113739663006920078413391008099545278034794982334233813134125512528398150837191745860598220708756748658112492811977947461167389805052235222958886543506466671527828413979583765380371211719936639808111714192116738517279323312450692842859620923060139076700606076450549321989502051065621540601818395570773439002033359118915599322121881125436006757032834380710566355997470306248189053893060917850538340170816533549498166906690399654700082847503877423491774545522878534950715943341675682000576531526317713945314448376627777447730650105125044163188253580269276725988762331302100552535713468600843576807072195050991697039280161806054268422156383640823871636430396782439180815419993565896185850862428865240192443927361706878601093961433377250991910226298909979924178923705216067899594357571522477913917157260900114204289163206466645741585324920722692324857755055020203042966073687647759823575790334001331347162627392084951587662692875361550160372215033992300436049815819582014935848633470555538149145527877536641166967532855726855025066273423993275667883066397666570266182040507929443768447767697959822921320270807001709623020695385301347826947431013648752993964100110365723290466860391783539639810529585752994001305403124597222798695219118751477863410607508698110769177988708716942210135817612261040604743767260947397768749093599139631171554357732444490956155124578734831599718962266551384831976640721325415587536963032269187193021403898892295785756545777755089494607173944633895678350029046911503701895680743494648310358730260654949719101476435302572859524789946743028964151719361284683928035534593157052293039575685921959999981950887327622125444200918480597663069727310563404847593412539147935710213585244170947134239911758058731963296644464144276377395649790001128760826477535017205065893278611352102239332646627393654292176444757293345816873838174117137078725852259463135871702370246801309728270626434550276090863549310487102296767861344647859617498052816804151987517245543554969868137974952813458343065546962786000737263100649911924898696985051237849583393670323417753688794851800416251379939206606106100165617210229736030724727812811286577013653252830977187823239021181221772160852296143846795892533967696400727325171089950008325157481033392614648932274074030537287673702588149577091095796931013702106479312318866717686330878007330598663665331981758382362358156170482322233981024721985132514271557678850470594558371490809593662783428524827610741642274778397100475558866789164837527467220537394414719918920267913016534070706810151335268247729012497645302897434715260043061326038932852386449659734168169898487478818967884186051185433805219622396142922616677610588664159024426205962999039439786158499434047413239843507705396209115438503394690211653847693931305460448974628668010017925940322098227650226403411060715220915077183486232396544380908589414017057313063170242908662455743556563118560639818123201140849227729368246709375464796827296502840556106631034535387295951410940801814232439884689007194868342445566839154937972620436851857605806988610593196499951030495258561361448722717141474140766866667398537657722747390370711062753043974613288334277840934279391328014669246799063778538614548834903465303599672010572594296509736833416421109820054481885089179470071991923264616553754422925713057744524292960406842489598442178150674024373870157109877315317764284753639151661410573682255550727958135900760052291985026690549022626746690454538748809118512944241787636354042522538388441346108292327108829651718068332064998425765079111311925054561728500868496516809225019694656628701589146883214074608160619651557631156181559569157847319514843795057304773625290349970333480961251117033273118190565017216003191459264353871210308331088996470748100734808569087478591718233833750700151439842626600897269572212897345796090680913344059265016772432859312962285839389134663477582225358470649819475912095331098893511058798102020163353460352296788806960693861936319845815497102663362944976103874456741744189892815065699775733166504470401923728001801794694718906552826740630779369505134813034990020279293607475920040704587639450841400408723334305824803924166950122730985776641997206712895889937115570376507589306754350341678756857664888912835080141813185163163259789262693792161596129613614071880504974593957998814673902349450446191225858964439845546542266514785080043663167889506114156410520629224987000418007550624185770411924249966969426440945674640653991657616371149486501619383045904872187166826819343386625970905050049481088671803102935276350767092861783938493808938500061961641306187991399798277397457103301195535425892207972393100750469538213271192720856989790442830046700863140325613213681456362931701900034096100636539587463543702923830483201026346995001978841785903892569220224311168318177180769850455641116281510031122575297159277403011839981853529212381249210643370807062506160906915062720814501982909098913408432576588997848283258265688318819199725815353394095460263690711481656702015628141903180305527540229414162354894691203491618353649982608523281397540198725539326631072445609411771391585421922955874850402193611653514272805465962928651164863857092163918346369623085890294210575131733509243156152711358599636436650920482137377205828675432017301919823891778712612833647981812222935279936485321157498367817972748527933362092829791228887335779436585623147736694779072490892147071781818941104657298553456635970381356671410579365336391548384312121535291112235286277617487588911262405248285931193378962945907521838660013959596989297523048476688109745457690236770066481294512708409776120183501035672901240374907435694758337037800304676308725506032330568107905401793692944687802119775244305475849349234281399411043846645223605075836926847298701430302357887995425071813494335492386246777356967423453097153814094729700370429146908529904164276570146719864882278707398929038210194024411741926030667348497698910994651632817180172874624861352118903423078801053407150942619486734757038741203485395248479105451798417937583624349005979837284179467738084538641509806449798096517830817801829261148679788283418613816420260904415052905802616095697187669749821269025947142967082294344427214898823014215576543924085014454990909774358910744714143136531765039430850752855752303847611372113843521431916924934448260445594028202997853175161033541875479178659632411685821109453190819353407541997128849058631326667204902380344480665585727081979346078969851389256026932647780317063473195019385484708393673371981920394467519759594239569015291892516507791163833127133352771845931701498701302457178123731448789273895580457775436508035170190376022095674460960869109095680725157031442520162112068419394688069767241341878556765057353334380260860439720749950350886899762607217825254001172100775651788115512186641685302575471438036356640674094673218121315067112113003206708467576927308316717252341932307155764466803387078654871447436739809983964969313350858014851080400580561322326203646832619718950555462303199661008094803734063396639473790204772030517105163906963794349241410568760911526156611949547491348776612116541592261605385868074782010614936883462535964706792294609970763078993171375550878583254694958045162458760735735653609480601238411870952060083369833032436198445412234620055395169771237643702228277554360619298993437927793100849935614288620518494116813357097870422980553697221246367211833302516068306939859191395854474471512207167413433285809995018713482805969124503048352192312760083797774348013869906058354909810628113893195382006306716998753669355013851012001367423753849739264539574535599839642802564934909147671941753422198161443892526477559385491268800387530659763956932457372414743024737461742264882649202089502665289448857654212592164275967620154771685836627731290874295716755360326802421775945074917463265176567998982907072814382769925453759747099794304516122201352111672959361296721935403919716113603515003576850191203437803835670097281979278714505086169971159227660618808883029067391439748381387867006844672882627414826603145893628659757960030270337837598280271621762660196249857740122557452824550771685597587638046238032723880105215969942820284679034273553632467204725854674144646342580756205626676017890743883660002687552335495893636409636902544051075892939337639988486888358219620814043245984955511620514435574339984826874344169686991991032235331313734353623484187935538691786406395082721912101711956138923703101010079212611551237143907599533467506876709698961542757150071944138547931510439338749609378526437825516917119043884115688546051758988889781063833972489090481309636011457805063432744503141054028492597533065504632978182498708501872390503143162235309517401570007124247380079637655032110423742740607950548614308754062880709409991498523464459917181810799551070184098043679499733153751088406568921045734195768501151704793293677419143149556939490520182004148426591260618329575815400364895959357098414639449121012372508563312949974204580740020167022536876988790206239300255972793660626468336562986893050155982525996269341722154186938943401587619095500900677685867572544349058436097550299206741487712554626676345449712667631827394188393119138477923560996336703722319464415226408433730801303549842996930775547440209807272880997845933986087791356361224845939611378956065963299147210220274666049594203808903184134804114106135213352891397319577155220870519717434741466649435078566840598387765502084930651449945034918478028544799098647743633980620872983399664526484716842345875534111630613389265887696777599685497911630295152198577503342838610057858842386599831530157616580518001477726526293775289165834586692282551392615578867926351787158982951913316352923729674855808310135032538953492488644598393824602021956825791892793831403748187411244179872127075640776110167341050320957846402770937570683212236316727833648116346869720947229061979957397582845326095834156757577117997805509447005301475295003786184254608013728209148366653438458689638736190292256607691913657377289439369262945230028669691334654396774391220115778315195483920784315921555569189250814981611791024757027089468392915908286183095887115693103915249847778310254044153688159095170795454902231286995809830057361778423126143034775401961249197985633030794181016411385789871633024788741448298611967912911541612425389848186578809152803015625758267363356645430801304607731660043259168777715403591262200287482086429088557095353351016942512832957826928898825379472323088998736626600559848597801989457564682645567132050445989241104765567390001522524224993199483097554960445293400466200012444073039712541567702041235539273498310197689192505163397177896625864230860938848459115497270521468416623717104883101422194713834734595024785621861932397939091969682558349437541051467299594233527259985077733517890096967571928516202130634684129818618517848249790562321998541662299302691080847375343523716992732800164301892831012992007711494797074851070828467040370764839445228533990229851465564022097683524258390485420328377972030960323311143983872995257434774307242622187861712458034331117170530804709767241622546533924282162212050439236643428106962273067629115732140315004339814091757896730547120765744158055081125918588370227331430009197789045604695250602331330707543754769958941213050542353135645658359825318130780821220607741245462102773124850783535978891777817453789196085473567597265752565152451690737454310313795105239698889741626402108030714514184421765050012742214799554363475995113069822858023140476359955557980135849113029979393930268209047308239148401226454253389405717195207138719778764306210729142499599065277433962117920413666713392679347819280904180982438822681930068652360109761523584212698541878993912604382698638507346631536535815875197721396476129668051763478007296545020205829508895148338992158719413803561357747432251335705248537535089980178708190496567294303082112710570569984468023206896355346631555048263746233517780191070350544412167725042463838972608305870832164278220653014226722307780289880441206330536997532180016726280606922602936781823196761554182927763154874181858684512380033508074385027679070159969215654067421650696056456394219689978919093871127470558024709021882891636325834850187902996625876715779119319592077642552293979885523796892126389785362780098425298893389899181402121277228860565157521963274984024398566632533762963160790741965557122730208166709885086267133908042740808568494751759600018936081158406913643548658053126712642313517603667984116962602088955490028825416957953619935240375136890511187655315758244657972148019117364914728411288574773448006323297679967314147110685124645555626716401690881568463490356766649488196318263391796929980521097818448457508112971878767108325206119522913757936922197523726707243452002638983731165188788221963113556417303457807935069358917464683610377082794699244042479821329537419938705096350543316233685106288701832947588513518052861660487281772296859063179246990669132407589098875916078489257081844308264750431477240924590614167803599430653589291655469476740129889848774258939292316914617437540366893853438157891025448119119257373189004270378279152815580628294802198421798502202156806984537374278743163309212782706789288496354048956642774973456970644892864036823097214034132152928506514362783353215982147711499273070583716103534409875548208893040653262994562476708059639194229901723738178983873625781662047974991982111135545411609169944410103541742339186917347425387291199637251561544944575241000782420098824576318921082117471553128506732889917280513526098406000947750664361151322566661986670305249389510392712461530364900702169176823490392952541528759995100187136403787831759929765151667379418508297191538035817887872741376151753926124813172264597834042456533568519997759883332608841729821857566765952513008940918881069174442067164952791130098340604513545287551179096676285405334098728505076231966529344491945574998285568552111917207192382967614267129152422913002529760756892133566499616739326780987744204493517568045170675136232074852827007021629109446779637983315491771804562292104159685294278150330609290331832866565968505070410543195322384436198887712996175175934104726083156624397800712791135030095577711334103421957381200773376063461911664168053910913853390121543576555925071556043175771924628417357986483560596892431882737243060802752008456867464701852350537678939479014516400763459244054104983801982624995030773775415435788478564686294771950627205057276956360566799600364530490161810685125828725796560194857076976458943045374888222672650076573154586889249197477421716084745612823469291970873525220628775423483699194081774547445399615218503845628421218853849214576926784281641148695472306878053824326994073789396824785172208405237037136521250731889091066118124935653835353398987450344833447627806019559628951739621897094597489934421211229875976861139780927182612477949624819818785066553887448324601651302573605730813030313169945123957871214963248029766115459397590310496722901411010550308912992702042096140677999207441897179332782561212223932943646726183684792562433642743849187036781395287457404282485941292571578050968282369092161248341193972295257244455646409589706128709905781886933974223628607556151080455736665793246491491630141135916008590659062612995055373981546159420554751168270064815568109355161374389254556308507063425819215190120228448039295150372736071335852927227038543011292931767527855464197846080305037552692141795356163001563848058770453030096366262201381698833310414981763975675898031759466288294392031635553530742910205541234644667230357812928110981198156925869700482764265107750244163448941498727600213883270799924585667965204301427716444036931628551455756331714016425336612542461305246638573839483666534934392225678093586538441856052228779259536540640685690308622401281928500224537450235750336319128133787790552303478531781897272758862511315334245988902141085755901208476402984452246016757708722881587426845555191350543035206542598260420506032428060755376759433846506947363379378076605403033177142483462908980455996775559679231231199306200773889938134133856181966083886316935059911792594849187492970704411446306001878354566908433539551169404652092227241014171626620624263304615367140161743109131234096487666006939680651572409822262365474254990937054104426264857420136628866643200540833478279702131800097559208206894015626690225541493436208307438504031118658630745412418915916257769444896438308620099792697322133092672639964862805974820120373330665685513711479879715549033578675242791328072674113873925267202299931337937546879285661421400560781758137213703292805013531558924644152223442470054084669689319929661834614975941887187878544078670519450631822906638500159605142892281403751695452261327027557630232584701975259418384995446183628200972495659570998327946055267757337616487706913188685023223094332640788120252427102353848574537848855174349711634039676250175552447315484811475142130326289350198625615738855482864538342784442065396703649955910420107301869295074583705340227084847507702353781108999769385363166808623099917695324408014379978736341952896055662858413518780560428275216504497538715917461395116352308849546904932678449590249505816248787392908331037230350685898615710215940492797307217124931068925236349993639871914924425277656592021407592189015229004026649639312861943514588677024584732350733356826955137600099562287549455847759981798272519999454092475344684737304208503436507947287720595292608988765831850062489440476393007259286658283897392609998069371621633550731669786708316598267859078514654121986004527058094540171356581322455457518257221118570094917725133567703218251254516096909889785172899569468022985011326000850637345852738324424856996166826158616817944057335898333125421334396351417948951988203601783366695371561614419868436097810256125442456049023836168278767887455314534066940616726175775813826818983720674480715586845252813034868759542225677212954628518470159649751490836287617405525521743223998673308549004517077895614771203390457313666062133348934317752413584637930290758307677760041456192582147375375968389057646462640524192946183119958141242053551276740140542920120001618352289187498487141147802438868271567849517605995654676226279455147754814325765617656674372676522264992264175299216851945478737640863931675107462293917559163514579497712190429934017440974884358867607244693720406712047306470588562187301639658339246261870498901499379571788294532369779961624217748855210802318681710392106452615962607166047036237940874976087752719171840918798926182978886753238628191474258929566977361202504670642417994571316774336970507135936737795035917344453792642876412855460143843441616981416593886262807213097556975036047447195811720553363965852276438372864307848893731491231357401163653334986857910845088696669033558702566837654256631702903833009085526017621998794201339433253162205607526957937031401805251836712138574181303495107640085501198777843050040459624218871879149183937889131073524986124612559529968688757809219080301694158569657597930081931185828383229785108485829411854499754345653787069167815851622681259813869205847784946755001188525226437030878670573441809360854642146094448072765224523557540303438831179960401505389193980273122709211090812889311194377798541432247742036760963814467540897548932732525838189120304895953077342128426639402396307622418530681908016283627894021720904351865102540326853415538512836607838986878291319076551057275050157813468238875116467397495608884812150275477787781660087875771064305314942647633154306216001734520092873616987184755139740209522476843414753176051396166939709093377518556986122353184924836071377939560570837434635497205691108781162704968424097942767004431344289567133980208552609490239232650768178337019883480563557755511338819064522528893512748193540900189273133878481098609590980571549917805846122126307731608821217469229682098840900515283829130000394793124105563107468309749492473847234387917657064296993310203604837437490377541936703067470774909278237620150885085618051664449190481277190765888401798041757177276599030027883122207393619584074007932446139189156381149701569319335689880007297709280320323921616326961461148648767199733936552901688533294567046259995294825817336324635962970239309873451809041591719046591583334848619619907093343048290460456816564362718514257627901258369056578712797367962044265769086655002626256963594321219625113170266372232411551635458395167769489764712271007246764860079162621636302310161753101692167864843723334498211414310996589385209913987765221876594142546643738383705499441513838651436262726166113054904891240553503969792195642106598501138757283349848303578165345850323345305356521535961134974146836153503222034534237434278950107259761092427621838052240672869123673311660022832865278241843384143079609294972864821176636079938120935375278362250161974848303390751883009120165221534815140090081239766023243816668211163435388901540198070170759131831920911085806332075317411679913993480861024599394809244930199862952615793876814652438280738482402590387591829380889938020573796279559228668648096517814409888886339583215805850693018927206263074890476111037212472862416929676855357760285108059189790445820046812731983573855342772065992364258870725559389715028844967261126772200185413738760690380435686861840694994082754015534838591168031359015911930069934396582576154098690165746268911696794877244679035800145212064571294128488787853023432907840313906891585749198851165501151551144368553748445268639135134937991597869737345610681336920078144485802194455271295646940212332421876188057732308881559584801039491664388575627591781178984221020411105631328151077673659413584952546627539320392539760799738729430225508860843804722170235600943564844504640183916843487837032250688321458526568709052978442116527887348311131715000737633080440536849898092459421052224486552057087083629433740508740166797344897284171193981996626208399296280135391869654199651572033293422634812732380812520621318082705047262064762807752270271274744685041446976819752594228984598031540567429520212922984911317710609776094043543002746191488769662605531365293759648314715038238753655899302884057102862264694576623062985429339641782927942981131820484440481350617990580835856124052654672953824682643439325593208557349150336257754231301818435468093181314989927173382993100278902298089240792090901362452104825527394908457767435055133136283904940397134957972171999449183535005904759249420067170200821815563145190695650265811974399010431333307900907790534086458889661549172067208616211196032887025904054194120181014478783458633100202707885608885215401209037305453652939694870991306566156819678807626663212210622385226223864401858704696961292048498044155673954412096503877520284192781303992103258748313341421994479555292449324983485166975279859806361170369993532118309819077612796105655146214348511233762044182300716657383118091532163746774759075452443369200770652878468869883897281047065943979431642283310067632368742091261529534404367070901607329007494825757075842814941851111151664557134872044968043229074439574372291506638488710810332035013016713376965666118069140959604843449450407695748960973169814812881492841782008211521676670989930452691250059607561118088354387594078599410272837574387140663062317337950989565937283869411939866143238604004576204507721080768665876011631362364840643550175552309871273391913753483703713850194874845536223647631167745757077477435653311725473112364517061745861987764990086840111490994015514665898391582523556536777958376989235507893543139887106453760983454128205470864147706594705213410029194057992305197992040378837426099598174172205702879663820002313557966327153736953686367831127291801394185777910353434068843276550362578375281532674189111514191142664050217987824900813309846941660179636192214488415872183887253384317445058654897884698278351945821243822867285560015743319775218938571610852369985540037117976414031411652115370886521703169787702263877969600820474859414587937152282493552683545331020426828611814930349261672773875757449029430097690353018343976720580000748471315532361393987925048794086831685059369403793070807778929265600038001981585597313142913653499793359618549442274040126314415874537205990572578360558883955805060268918203537919117817906337195516179014719762863559250140987935306152080307809791991496847179620488430643956050918503830263536141242022128591922402876463958010969658168701712711870530465286137648152165705388952238755774296832909339563008449986242907287107741154561953067564544410909664278665729099194936247624841891925136587136886087887605112794261908619815973298745088419672458878271635114472576210850068646989627925697294178736573538714372656035493023469724442656586518962727271890163266031870596707160240850704855236155426082128996121024976792925243951654652721012854763703332279675204930155532551888663751696295208945991897555528883613636379570205367074965941057588473392964529730339489790722489413485469088535919282337721555884318129632539516459080313267753225074752516510469334947765777567648899826362808894305880004411644275352764293203973428222948225327955493692862204696835466424973955701800636757742212011145405048741764627475399224163127406686133784822641494693831835353990623850862206734642171889820934682494950939757709819469065273786644229026505433265213256870348228018452780945881630914312242143015510569916653394371916888206629990376312943178560874168846134770427541144643954076642918480695732423370667873021501681675550945166263133856560145233689856586800124452249443837344676769753588169312750501254273743640378987232298944325689941575289372332038619350968779053591146033047685079698897540899729823209522621929104257246029854094681720468892447763734829796343942722959354194752454243301581561346109138451713951972982536245530503811466544748894701529813967043480760627424608565860095471200838490987856357879265377631044328712410987067231725492316605605815356136188843890591957662308051359178654492060151940662888367081576522847191473157018256035775861778566725950807680150447256280119321256754596937715567052155354552071432570683170151204326455960777221649407453894300863069110321651303136474893045399879312936398552981433102752554458246828791172689921326595231165494242705945981759139885399762060148745244428359042012418786801741288374840863941684410635298287834368064307450525976264531197562658630914543817254540733787177491590123057536753350626566839085208638473486843226820809429950840866412452710272563213437746075117324974095540072284516292269314398522551163274606047017030931178327079288914305356463127992800260337411873939846908065936251818927475101587134410727554822704841711167752369979989995443922721107805965910589885830728486932213068321027744706886048011071115593224556836773977274058336937059666074800948196109104630716240121272214133495909324616343082733267969868641973550836671762418995217919269001578366266287804727616674377774566327558896492046441957364203031563555735532243182501611503794290365043586624941011732603782683959861977670602237048744339083282561284134104864525949203122079310457158006650738526055045425674307032578716033000135659614335120735214623223093014401239841322386665383862346567664968843808062283308625690518511307742132349363467376519031161397842479416846827602539631518860976043290015681305952425511462255543483296168057398161944947875694572851320255664607339735302879226412850312547152211660572667726856899514501942421825039071886566559756974541608304826566198539153096831706264136032009004682860386111678100576384761651231574644177512043257019190207083971936416013519085578697650670598726750733259631060874801101676948125132627607108698094562246531240772503525233935785364054647432963610460758261677127525186428822021217472931625091509744656780379632819659680596441498259825348743924003900503663355550624560478740861999342662595260907543043510627855227183240903000119076024786795767833968211049928288042957726405599415614879873107007762612888125146095247482282196055292638381981842583664937265299366895139461182875727343559878906432790019563282328597408616867950960049906673654449985976336355857705149383349664284194337446997080845503441093612624044817926950817037397845139054715763634311983165409441899733235994077759567301118896138951705723922359191519370990189285091406192734757927968941558701038413889266032718877323323317994879430606387123234853749975346210420781105564789568592586477987369276541214888501288727581482213973119446380839698281803376858151298195744828916364145006891578351337982128463779520835811686052902795354908511088967526086481211731344651732382801103184570907368805230884188677650144350205044226642401737382694219480384322112570682201798113325291538367324988529210543104302532009526498859671011842654027725962757588923810108781738375075848367379966447853241922187156792002016309039014397122976515219381770458241316599881821115257764316498495604740065340058283211190747635335412264641485001942070905810660759282300617011792296579657253346520175972200092264843609075289679374258868370354704451425537858372498766376752362111519334053829650487719555345184676049730210592742269104825888914827091073460612461951028011012710574848289684727542574011325534744016025404555501522014820088188254087211683613526036361947780986083317437929047496251201830455721973789388634802924713071410794365602953355219319007804658504943944312646493195999992613352259839532208577743262963365785309720532797454325694272532063813779571118083148546736381410388957348222259835056240105082052909569983480564116958767011945087848705153500383004717584519844593694202770382513043344268021471665827184440502563810651380229548223486420744069470277983805870306832151495101072457093489891996513395070942050961769056204343504424417860260715421897853047976937458912776461635010304635911144237372541680429482958353749687865472646298832444499337495361695595550080462032648868509266882480105092710590022012660580642818339724460208721927429811784508038733517761748085650589313178575405408004259452268003076627891460035260867667700558331039112316438297437956302472208521920289255561984995734731908046326520773635196396368785309524335929847080216706868495972997965280016925362815329618145296670394467839544352726688467207879756076719795254254298056367857525119889551157588682778336572858114879141670065486879605563166409456267277419154000931881333443018882944543999941341193429898359565508354339974432233204522077502684513347535859120739636493723946802739558558419265137049300411704279512176220114398153933858225334315906174740074956184447434801573995519221609587669939251655219318852928845374847305130843587006579265606030566224920110557243246145577672948156437030342981516533459631803882272867374065101822320410899223822971917408792428877143112432753998357359575016524696637356820778585428258799224959876491068693607700607463911425619657447649634063677431407849336235318846855596197639927865139339010769064056471861946128356200434204029341994894279231098704168320073595583224539501030474034660404891019482423658341477973289026327083619736085291601175906522195471718168480003771424845285855674926484471552646414326570982790079240864282709925513559174779856003398405529785419828949191617947707231594331594173738575355045223067441804699239729464555478259617611427756303687428025388476698462473752936521679834660823532551466068277844619861480255568216811569736526992821843693156673438119384310572398569890825102799064951732025281806832286625852995554276216827056122917367833283802311855153975393474624204349723417452674991390160861521866879171203298491260178146743042765928709504450799495524593303625262210198912196757694268790984915963516599757220163323767049156451130041458236071359512663050583136470149869159817558586175760288487288210915156299507375340227635493518906728807637625236369606779578079549288322642136529009414128066726515823405601253703054853960503365380993892505358684116122394776082893362714381533806318722244730567088578198941792132201859427289301382368288981184892831510237820478586135245895048671173948960053770636825428184896529885037425776558849525967603895807442720196588301150830508939939482761017716672034978613871424876830471771275452325355194137306897287030880420415614738231013507771215294782919875154890219024609223291956466722581848726089232702367371417480283236167171000414362908006544814271872155187553056901666845558705942082313343633741492569133891778424050111604251903884237842824822341023558030690707705028604723352326768410069269984251496990532315272358808549087095105677803459811336921648886773259554361395618368314398096369551061822242450760450160383999680365067962313929271827023799659552426182804914428719677282173643523596875136839721273345487693557787143756060127633525876561635245839835213314630815930250904306140947207851712987370728183266437296881201793470931773998950729351153076683250882797320316097222945328649803896635046865393733212706354853366268726390788437828696333235928851992049047702819285145542455367858140770717042332487318483565170778050759038881977655356056651216507541142321083567281093463056511277054621526194422441647686394995842528165488751673349754087936349854567851900820112719286424550138922902931010820406233420463610326021238771563625730687249387643519265908450587030070444275145373715241332210792249985489978240781429841755591557247379643858165196305538689674840325519196170303724347027726966103840761200553762697559039629734092292622390907088590794538231345967557700301071906270254693550759666472948291117844987891195147581464061465126683004473074414829365817463733067235720641551912618122953360908376651910153803578753272386862880377076215051983311435788132231445926730303181484402212589750238720552710167319047077620844620903779399295337483807573538313719708534678371420914674605797788324873987056576791641701807844235410515700623909189295052696427948261624146567372512606394054890407670987715246241109194794451388609838695395932350991085827095129657587171770668384023262974600128054150948842112111358018064957069767658822950769764238836876609653572866582146024083565513961721185996700364370952047212316874120790328591937928492101328920536486121446988325697109706982476423050552161877641438940613747461681633447423020857241805462401115977314054767156896244304037162052683650702536239899836054053756116071207422073219296449158231088725226197473256100107319478009907295789260641673705630045441762223408871686493894489943636676695569409360162074019561311718490021418123974560870878028725754580034047246765436404332690909716556321235631350996731199995075793355473203558213187638085723293313924568599713102389014445328780165373357120582135343661951862393172622446516636777290113239810318218205646643424957963025140841292961810597703495187437654494636273195654698523330079114324577090604312286486349446301388213189526887768096236987581631949286091857133623339072607995821725148468605210084371541044625491798072037793214311435257665688176867871981828181925643604920640856700587128288684222573044742289919853548253913132226549457388492947633841368450423325142294818130657608587679034252679369417932535643644910013646228543891458862275661444873756995152770259430827358707999177173885288892675323714947308289379431466009320715933555887562615863452820729594687294825263992650249322645907402578313100270538123612394439215953832831972295288501138445617557096100112424352991433190769751715092350172144380033772616146717265435593962011480706529530448023690273860080483689841344577210052725848712767948583958365016977748755704963985067069525727845755043293407283633982043412278453083342991479311047225908666300607390807961231750299681453619748304954001498123735486874790748408799176036650856913906724567667891997050069883797844816686817832666231495379801161652509474361445463528970060015738570924682048537991503863974266749914286177768911668300354391107424625093586489494702675269542414939987781268864739844043934956756211471894675048161944673330251921011904578881499449409595544418189912806010811878062589944111302369749331905038108905915704492524660029749857340932192606916723326190139120344692121487528996182667738018725144068282466714085135042157592535819329120190510529041338944734026324331589138805395571036988659617368633357751624409881872336221841298896380045110718638929891033499894766945323926857435747360008337461217446552814468115321876491290708417765012490138185656439646180564950373254426696191835725346434993924463096821791777987221328077145435698845730698097216680042839863440948773116964045734334165623420433460270198436420666061202367927928189766051446810602821798909033779000087119123896621099927230373126114641793771633768417783133766399546543641543945943564294840322982892507143098401900938251081549067462448952640660876955125957420641633708743429754039562844954271514731192783707056114253274854518553613773719962127794191736878116382052047005224579921750511477958320995524957292438737280435847377327972692537784798336467446662289802752770745426288805359717463174024997246123266820053628986466015667682997058430450378405598306087077884785968280176656760644387236660792221716047702888346814669787165029024263456187455072922217277990717196246869755985859900538067888305103322320727561845938905473112787881249826657523615753178935019836274809946694353615482607844341631697925008022041572824523222400612354554394943029545491710346007411954550974515264944785645273723561222846429016456320829057141787826887273639090823171472889818201219655387125909941798329968225503265321823377470859272287605162155311589827688977445457445660179525384913417547044604420958073044093538730160309417244599153565416634606059922858870484873634822836343255532953207079969570982794807444916302327190749181040217297511438481062729902485923116326114386511379550356826246909782869706406319587973844296168446782815180522546460870917232057658979863044753636061611553286262432355390766185997578583813449259102754404956294932766035368381148552403449918631980109645469159764885779758689824679345853087687179774949083799262126320632216277005856513841560117349437781163003461106713568420052941058112571050248588294495257887376338055803954070313087684189889626250584003138386001190300061077978166134634128351675779761232969339308706686888557216293499050053360215424719703242342412446669596931025462708541364971535722701363889321160010279401894027576896141646196693376434427444058654800380530184621461103227566459520088652430232658866707873438519471052533875354014334821034448964665010626386682789256459063788332619686436119958800586488060977355554293275322713716106568674375891556931706654504908639097014247329109112973369569783446672371209162977117875347109170837406395737057211453363197761926731277804831480337210652293025220700102077476781753128626833043774927175247979222442510272262206721730279687510921018357381994729663249300425424829704932487867216924642337278421849941067985253924062793872190390609069499278843016862201735804841523718035312298880544519451265331910663368466735014835811863065584245653953901348457175960979884854871398301434919893896123062746165290360334082269319338819751540135996711948395169093286134694868178643801374936735524794767960146161523646921946746241213672548681767943762716405107843872525939637127600410852577269931496351133276084368812784939858574310149905333176431180078532440514239477653334659156782358956617588324591977687836002775360200554330885690693314862383446595051225453954795281430179860782553129662800348600292240389165251990943628448395770442030022373785049235861266738234265204632795042321736903979719182870381677672087550431012612089322042242946592525583391249652807536186048565224688469492243322324718358522340688050547185191057250594939398223868524680558311683983078490599149290501137834299911465465040621544088051948965416558371429747463637936769260480173885861689181604112712759689629930935243313644448538976341696890190835898717510728415272296315732075138592062359063961174470163401403065592436538822285134755625255881085192994790917072373449508465833798110591106543491027199795875217642272047249916460281432113588743785024111165319313356576350109761491394410906733635855924652593862565002598166514368873983057963385750450492374513284800714930457161308559727669297375340542862069165769410723214047360677668509702626939173593375113971218992708763758938734439019890655837929357222935986225440704465181294062990734754599947000507739996683970572752240670523417973305086628291859832538084891826992452300863647908542901334152114832272832131500640105922237941714587643892121171493486675882305543706127720000805250066508879224423885624403965511928842139085812866485412728262038763066876383504667840959694413522785335335417999625265901587730815695534514237316892635819628547024914620367516474813054265093484295070796485886613404586032607830850704883526753313520535869548659819391674060124703767790035428324569845661814103450391546155133602203343099422799997089158453722650772240755732153173263339991017893714946045937446090704303285162581352169488739467433354856698463137636604317137623026720162969233707498877865611277243634514061176247936556102729792471517260072337423283281936153277269967946109415954448729487011580417567831262971168531953391978760240990126248926352053818060424013478971966166685546342171853299710559123785629556935057464708196950150564175223277166634629630872146638771937896783645416596606381048079498357788231567526178375334341550121704460197738865756468647099611082845742648781632004295511552229228944194906749275344118288656722664371541791528939302620531509593851953872899677746531888632074822174026570490031361078872854998897489695919476858499319234382362422878991459031986127252631754143716057173443315026833915679121730625806853811454568131417556641337569502986586755997827587452124275521681866553764337275561122153672782212444958132080508388823930354409190525115832779935222344991146664126379499843240536173224261337173177877358126525350180703407597804286975432583915415627052869597002002915953063487406214531071423847435356895464419956913700616252451259889098516971002372146910767449215503354366716216732295046176045896000820115312900045297936990768195013543008885815912566713158042618412811498159118036254522520091002688648723908700271912807452962187614303585854183392638774724096914918934831011222482793455418314666955031790987930262248193804631185732453920867536214749572692659108193668536725176849258789608898640439336803370779859162519055192222869182260270087263638120230651857139194603939374467113831175174266860922174909727662182063792192213379402967380754648716571054826492943947251856438055389476656087276755274064290400387502751615533627973625578897222253461827005273266487425532572963952761743861866937876245545805434539044364261516251544702567871128135584135879146448608345488762292422735110542458996474302853399002451011628584194333777818116330482122049848399937394603347256647495055331613105207815445558619225775347043926202390375160174512656161392308602599386850491769272334838687487102842487026763061896266147351651795814787756962148564602468377860069743863120946100688413084840944156157243573609796513887428112405385818177952484343376041266543171975668096154990458738591536887147752336625723920292387033352988587881056991301954645957935843271140997639683467088301174266935751630441651445275162581527237891237734407267127747790609325396880795284458784981194176035659825538252660370663437403389621185593082884215307531705120561118760292085717626422860954684602008512599162471585362068648146463494933119875785450838411054092761795886755662467478322925207108450954497559708685782141993194104571489507419480457758871550878162663332380964444767906572351965093021449806338536997553721352667794644341913555016548284175571001750827676864370875172015331325410372594653410315818561769710319771686155830571224258879805887071844039127082888689772616359636098001366812433581231432464629418872588212854169459615701959881763273193012941978139440215091009176584274383865154694881989969410767698390246942760494125101747480034447379520567516492489754275516226817664473654984477914568271551211871023173887209332134466150709310972804731436578345406060992221747387335560800089672376966879790125520768262832398701850739126661258059381553960578300002554192114989210341092381734952047430454125407086414100100453332201562447322357686572925359366287908730020150032212852408078217634170448997458431649776818801182575954281643214688531132534308516250413735249484472371468275417940107204267676663692170210587363807373048476085917915564836569987964391198920907417088167822309143853627094567324998694952939113379484865938446624977009146782951340384956470316678265692904833130203827330879833628217473692108843352210028384247413198698676564312298461479818098091281788643028769273465236679676289732825946525038978364273921911896332111755508744012453806620260939597079954800893016800384017507660290326680438103115541775239172422736682931951603264269919651999383760590193896992482491891795847482744265189063674923716300440131617206412891808438815697585716330135879377115955712643648467321573127733593700963182966839111756554824765449703316339395480326231690310789765791108566062432822036772687344883788774269937491084131719404884062445968526905582871650670011383219322459364694668136461369479789693176274460381492745025266158301157333904313243349949730957138453357305656810692921506879893336614843270397076553497146229782150748162909585754364015630400292672139664266846063480978488480450355169575772547998097446200136047937304991077356203234888638252797505357076001974320589287300636888493351926591426203107444698639871935795437509104618717756469466825311596506144298968885410153588503560892624559158119223507777257139279545474378866831836165399855920154685073732693063409541544248521351563276363461707243749021164272742923350266108586047792500658283295328841164865463029935019729345134851310549753043107476744403542709117483751532398259507700319917767639759272208258002710468855234845877689573350382162555302803330923665718996722866630716871198357659245898514281833486054697024676532106104728170836188907908786654898046003195818028218215180199994766283281758910032850432016940628697442613797431958352136261295244360769563220394684462445453923107214127382611678971909421806068464851389295223879265474367706953406886741705850568616104894277613012388192616052416363295268701107696192372842531244381140880184283911179361665680389627120482329455579213865058606963740545976357732866460075274111437818579139268862894260438479455084489153754004903217644748155990501803901040923158974147839447753793965293873112143308605893676739282414269727255168301557845127768959074140964365791378399961845741818377156657867122098552329578930503601663230147878768206354001952961278178359688223787080887621024619296580554396112722868424171150761079045090798326633462530552839049712318217444395831058070875939015424631340100801234721952443221950847798264728581280653556144173906389457280211109836441829934411339083236824476989292809533202189202590112007846184512977222943510698949370072312826357733597407304752102493706064414146568739920992415615122850881109081619302984633255728586332439896562237050983847587589140463571045040436218404900892080803024176372822584837072203389434025264605782841835617842333840322122202868604191934330080389242310312489372363320364478719406663186402646703553568961005248490860821499496693324348609299307120615048129720586846991143857905247061952215697029134051566604699749726653831183285871032519066620449382254977324254874656632880539859804666499624903720768094505764287384809161173586586009104151882521890410923474965694185284689905112982106997924122605228614766492907803111115441709073956101330690259190815981813042119644265676820549290901269137067393063926673430310324146599414462879346700105516467304747562860238452934439293938546283648690645956207651762998111886504591346294796758739402852336304025981774119133263223769120271786879978163826889531290861724070923889269437553546387746209502968355347383353492624849166303919816151507138753373845700657788865247819186151046471201017826791411720780227721457001309837201595410632813076796031582543287165511842389435962689631492720580444382080062833296290727841387691569650455601957489906896068523474832124522443343363453917647775207523432333556337261457678875455238552061458143121872752087618545954929615708212324986542209213788363703329372161387641838202174863573202915786416569855440126332080834121690685902109330187557833356496383147066748613536272746109996814882227023766658378871519984963509370278228759779749242986955855449476061022481717776324160880949045585847995491452404941432432080367709027417112224736311773965877148364352877584786140502641116253616479169006963228590296674605012192827289068646726527985460888153418504530890683084966745806527474078719499447838064841436906503492026897627052504983654292224132514524247950319422594773478706868727671658223454784033906871877633412577656282630577669277250226828373521395364041247378529018934792067166114599599467449802073909382681145261873145054856106894448651078072787144723058370125456454398936299924975110285753291051211019389981621131779177996105987009962009485497423534340728139653601210481512910818058646447803040576695258402296225687546790090256875740026191318975802102982571087823839806101359297146172048547867827664097133200645658043768101076157877974208118210192126414367605299584793796672738859908104221242421034337334900405683933867083805375367781920512094000803003390416249494868663335557728369432479953082387156755732078274353729683981365986339962233985923044371889866354761113186660463151045873989746311986144621727290075291496046873251269957641206141926269872473854824407735073858247684023067118980554483512202719905663248155864500671810787650628855868179606209592465063429306166784697670667189796256299179508636548808575312303064090999625854859303082036142509342894315126014592509218888812545565628774986124751105500663385628675893399633609182139741872739852811175803573907605276470131258103676513902533131435778002292477186306815911311803258391606183375865017924263301886792223956313108534522961771153377388137755675063770018564003214214122058437228806026980805335272409943229723254908213860701722167602594010141759088154486977949445767150054689241361223089879834079422012561849844410305873467630573222314331945798404793467918938381731624031970630649655866739538774087324438647965180353765064736822721766525703595085053755018479451819260168550440005184098945949971029623111505959732987367322561988604909345020191000328449614449334469472664236033621699468878917879181542425382678563722994124678993089459192663255594671742847567357847413113751808022164734961926364697261020374806692711260263111073887034717858819889521251239751374393627150335104306989418333250868116120023582314304760147170460886931790932130569861053763490092715911940930067851254962454712116365313771762561424390247972138101168746898533872540344773108273464300828484379794885830672054066500381300079713614765262508372873671478936332745272128245073109569754239115013728317210724959246790655357192705547828789618540727811715396063320051726283290614427867797620328135958464010128591068573335107404524964762494772102896802870373702165722513147822007538753463532103926696927240220882141977151719963507446988692864203544614101888485011326773150900516163613609158392583064405117684119991757007171882511538164635232896284474846794058017211691931360314989861401092953262785327192170663624361372612495094734072503417694113548404814608453675760226192618303993781040014715828840341446467603837591347517179031611775496218322570798886301823981415441161114222004493334986488654089184682742302509571800838441426384795838781506531761698354213165931145664423917049075342389201004775889939517626504963489203220840952399642556811838680167106585861922888790454995410239565725749968205329915020431753165687603324367689458728422402318558058127895186939428334973963226092444294477279657912461750072877632350357815301593731744989912660031875555774500100645158951657329633862111796566188480958099133839205572267561580295804175976854473160932412600743310721989588935638782705671366422421627262164765294264550987316519802862468899881558893867645169524694735038927604583342594349413548101875435618386277347738300815279478057829991799212744601666430615419583579023266873653019764972155398842023099993359643686076450094070085243289733946745128052726521146321848457103192189148276257157585815340984078399264357207593622927769457682033394492665061228101547238053349406739132791750561741258925820758176855378610618028331993438027829303276298336979516813480556705981500776700780648527199243189815828643067127201028585069211953315602744010091478458732374710343353375596593704959652824207379686375321365515922470684817467771681266050009896959291911255793127690890591021481161846072555743759824793173003702695217416327718471062322159639429321605471157239093194047023700059809951716242117468500674864491227352076792947909726298026816139316395353076028972206919109136859214879394914898401085757776799244013666795000073305745604617517060016591992384405089920667020059136225600810499634733579705912896295538867636506161905446966939228483079552419614074263039959686667749757960560680315306811972463424666323180876918607640546245190914807014284675234569921618930932016446204887120385976664861338336236183731404065803553121325878271009723308334209860764495433353419326684273430671491741074976344182058469088776427023825311307788265951004980816380598969757444956824905812831623830552437195392229139252006685145242435708365272184112794275979159445212969573677887497547096772991524922170188367334746475689683268984928718105024269759044781922581506889610238922925051667054269607171292178275359737638435680733347397014863161126837097329260267318804870617955284381636674130456831783536719686769635972477078955529994167466574498562725935398404748606947503725744089788037535142229808210206463806631475087301074166773271339013214284119597181468827645893056018750213015615893041978437260121842321941116810186436932683183929866007440032869111608249275560963885557756443939287690956414307087078372564703383948193133171876623596993870072765063781487744720861937747002906397617030149890994645506171250740517902245290267496655212045682271552921425698603086146496162379008682544887473988417938911007396872409326750169070547146280329912900128752729772674532674583442839568080420448792451018702514854022404609930042603275906409660871678356125251795204448091479056615041022086133208760615208939061207004326940085128090838406813680185944012759897516718714147250955717840248328470376276235722006363729512928586467516797847000555733209919832067357780473285439216413683721150825493786827483714991880621415410598406858922804668631895681920522861295580069959871066438772870402086709092227364580516746844979943959584673941684614852308120409582717187790248636682925682061189754694087777970766990252841207624050472212350290862754990479596622468935359519784567631717648389438177479089059170877378616351790787532525701781602970110894854955651379197454481865232894627899009813976658304367051174129751092928548926408120152629919403894509746311054371728692792712043849759288984978036434176941748017837078002853253546365696143849175684450341975215614649637861911513456184685073493626850006907191306170449718581137583013315563843490146740920418001987458133796179858391331953435508221534380873079087472077349491951891365997989414817878454942730444598592083952162301835643123899380347514532514612753954500040640035033065251176931405152374869062804438410461326650156748182675903977847072028696965818311612535517556307385407090809756263660805695602134065038477839666702268313977446810219313276299079147673828869901298994023997582285620959436699382265224834277376112713397921682892636906573396822677656596467912241765567707375702640500444048411679274228321133405829024359190937710387924256965393687880628326406798352617577854120368670484920119953908642196480245080354825630026844721247887452886943201181843078891868642630591822889436008723840627626125451892631791323672434455761833682496527924607324532748917973142296864894317425996901807889278742206176887228046143256914928834151873612880094115744010908358735368471993077050324917316487375465244168271036407164618371018237249973986108857523696287980746880169598004685184245226456518424966252349011536895251381741863959615300629051792438232036672320228831302516955002786612335915857364872944449624926844861915861986835396828234970484326386340064326564570401064339085798381961480549009199719770402326747900599857153632451256983375421443437073867212907640360953025623915520485610109638007298937661006043130007270803747839446450395776720967366142711150910076323707312320177420304368923084718236880379900981317557160996472159181321127087956715553336782831649273286071610868535292330247919066319964851388897415890778049331340621314081649974764799795328086063060731562461912498803072941638665443733128244079016113212939859369770175086732817865039845364945859675080708698500024977275806636648512868912379139375702252124790829674163388208092971989702330814753529622165335104039341069809235840628176347852850494965436209835615806420811524463984685026863561742091061233006106583782784074095187314023211777105724139013994708039681058444997235642774588301609437473704671522312953225568225917998921341347152776125987461081911140077808041679815595206390186929754831521588328835162208496007192908788251713451685506213070829325022984160316641009715167266888955227484391163362575963850048950517539591493430361127378607544614099446704960094567546296428125479975146816133337728854680929250250103951528047212397187390716875385892224701321650582620781516610282020617532761856783098800106110518296912620522190017407875713649276859023410776620179475319707118434046053847550866537745585872856362033203309418674844729628498778448727123036436634328007175894051409282207760836118219071563524779232587021347578390209801165255030340688426480344748755553862481969154660810826934882482654706196464031647476666974889010431539331120984229838718127448532119909314813696542620921112208799507176091680978794695293457998218567325649184638653435018762668108946009056982307783924490991114636203687505881363767974624363157801898476022260200606745524524554693218088125842265150143112742773936338141493602287953213580163168865038128351889520731215872865257143438582588808269314098967920360042224523900765043758258244426942496691967582061735346682279772104708830965476942912371992109095009855188249415548162548566572446462693627229481165729650468017207095625138242891346438231173446900446048449126990780665890181211967436708679839600672838189674220549836436896164348541352904345526893079312603791569771035466388665302936204152970818020547236239680000107508460624145620335705565578988644873474942144942290802903489022081423956550104728547004424289827897594900904612653832628444032617180999653240734874532480700383896228956393402271067972444957070011950846072857244277818330211862019721223148592375964333432056771299053674745653469965821467667276621526604387096538300255692994208749343854243432065383464297346830767854570266276773636798707972766698694125356451214080964339858479357056935257123781522226047546343417679342241588221232373485220696701529586869489712975298552675331223719674438997663863956665075813249549152078302333528736284417201084167185915381979672967970950708986174673128592931590593209008703027223493256492410418520721717961420447935502886119672266794382778247572905728827201342919987636791452949737527567723208460532433480347396541931669184201808263496885228059296174417969143586187875501260648809527661121805249438811882725145391461149117204290453940415203185233712958790119212232552575140540720705686387697416045299878233362463360069474328952184589846090535197467576381838652113568957410594906615708679073138677040841790842861509587218444174955403254670505831309193345779694142029588920957168908950468804458740123230507949299081604120528233329978547062068890037577272330219079531767155132019734622786640616890011378887656597193057836505619270142782077426052366630828091145126353884907245700006662333253843689981072217711519284547629753084085107614658311662457678340411631873917543967945494549198864942507025552584270699452311370087166630406381318313593102827406863075849211909011247037198812470732566781705487816465357535797619275079421685494513871484475058614635990971842818298087237353312858990765582310995456262299385962482595909551837087962425744198862122693808660553822018011906911560863147181028174247536211295980469907069847792312684689698766380147655018271819098794065799762729417832930032178229186525236430733397885620232705424638747282780866810343624169910661376859734943803584102402167975274120606367348428092961235741116880132795574750276396966936702959909104417511166094891507212946842056601311250728724847465872897833166732346710411913902263638138630421063224306854727618951881130763555060031772540590765593494144398330044452114648868847690110706071281204042919090822938592437752029479225796226040647401653205289400107285034968094038382014691940550642454003991680600232625867313744961426594498516757064757813201762392985190446057167279672622704312828759004023587462763277952298678203208058613377884542305127005084750315716764010366571711811415946115858339696548019555722324771441470889618836885911400122193484062150912392701931156868081583674349138666097003160840602196338630620462400483230560504264584023054389810934065724301626815837116568603113749594453736050512029618536268674678480701635232970232582781775327098061418259292448857260981022054340565185140457901338742880897694224614345927744922101094355647510430873988457503236180939221475058243332142821278512499509550389415340417356434171444874044201943638400283996052955845901064465345282699145915825631893547507809040381624283227864912310250594309513755623292034502100970902337354402447683619784886000638579805524445362271632667366500939223716379646191649764973081055185678448438618691460755959071026254316463056101140771791891334749430926871742764894025920143143841361192736659271204956463273349921911323279784390993104209321882214341781984829443923868792663131864649398301665230848547999133342051093448203785723695666093369727071087103845232961164911558268586488302851069306027010261121081832361210098056825575239996146900467267892003627082848860494387822363796189514798868496389596791632060079581602020738146355848528092924359113744722556165468102297121269246415722468192599913614086912938665624910241191783917890145835113029547448472683637939503200963258980373809143021467750969718374856575760645740503259948069665657453277446359564631640959235813926399439516787182983167044999565600773162562344612047256022309542240561065396217799592248271895636307700755012356933494671416437287506783329188169509914697410637324738511054812770001427442613108497859483134825087662215516640253244787687764460774027942839623667869262951734151925666637810514324512673788249514966388785126054091650659666912977762828532690906117803474876239565465223944046256461376574451348793022305737347838336854305787560377440947828072490413700126476260225013701484372423804246987555218941462440227955034236180335311904142558611687433186345544508553838888732969534978745229967107864876473176393482158633625468475720532143380182943069689418903084948001437871508089207997284577689037127808988510043334589399412062775126960015417604249259590637710086440667760983880864026212030997430007747326897788279945849893690102667250196912056208408000452576226341397007673469431244897675410038066195692479206038789393032048976637321036651915137535243410499958349760127183354861816225342868855708550789663819041314319239174989295076921615734590018274455171407747193279055731372840605229811450520784168516574388745535911409172933215699349729936550859627076332503442637121061834167785000459174623267523372616180099668992728253259212612248019041041131998391468084017402986730365711899189752200270718690277072809873339261356629002218740643143688445063936763538312760783359363280970762465830366350849722482311476921321181236706321765020034413401628542731894725397817669775585669284771515331461610301719749460876246132813117460827179932288996292397086019881435615718639051271441346037474477289742459697117449893882046648583175547159548270662799364351662730367837741608416699881897463000166889367451902784678200593780563405733034625603867704762403521655790977601345328152617213756792497485493572867536943799064699187502424440013094410449238598282056721456739003448701341434078519164379220636932301166771419764655087813868273242781778756558458112021998472068792303896714163437055250211297422386514392788050182814359909690588513844104765066597675566505379394506462468663276996218804971320932607457239950237723315968692709480615645025993670100444738942549936048989704805844745431629007924818146444963011571921896611508783901026577968986586582374780378781606823174095742793289777237811272189034169106161353560019149310282114720989045099830361892433271718680991056457608451000891838268576302333337031611746316744284904121245992043895622331239615450599005318642634179023869957713919381254277942003124459081618116253402617801680189544550128741702504773324088794186617119763735595515679371971401563252913522597853980339238950918843039615532175295039034734543910913989366681661059589903240865477024053412196646467249720118422675703334784633516308576403562237155935744680157843492399118391637253865353168645718740603456609712400552955744935082628477560917808858999835852756512736451083112856282205912315952916677427673282224685563051538950283927480456476541384205052279310031691091163062223956264448121430391594982079865458820917249251334300456776046796708396851574060627309992313944881910114829804746148740196081026524010278342533914435549218108632875763220131446792617448372357053282703448252748110836458488645752392645842521804935704633159774319675835596079377512837159562725865379282786662467760422384802640756935378338460339357106938171322797563063552902925448876512325628794665251407444388705609128930740905120064891594129727760793754537531428615921443496498462867040828845206508416011056703482812745097907520652576808107502600082573122371967592723455569794542709395556604814282165229128816153050561852292842880985961541927304972328458771335207244537608881652160722454322983323654576199787236611946674520331407876223026830954624624611061015448912385154420171815065647815470346399231562283533000440243947897309980540371130650188251615969718546042219438299857367420265241166191570593337844021222859157810835337595682663474022093008440571022148792293643775150995294561121196028606429085049758517276247719372216642741416855899339448790704424310760296072767622628964113187548112107003897123618866935136223302216555802456065846389639332738786870436070154142669014562944353708565214928649651938904421943930717693570567782456211003902427369275910402061393834736949473592941684788262639141217734223426167814740056092183754157902770233118901171303212564714773089519972844877944344935894046509642846261991815966819647220592109697251381487835148606890831139494954399307346876031117244931711425854692699861863522445658914780826014071078246627092946137732983980970617448727122786106888239920650661380276706162412546567502429899846063206590175834838218962586615716168571734078114706047823115984854500247483401899511040224065726431751369465053964251262750117765118534835141070957328392091759656626402214760046988844525044319180211573662552651253902675189123385777898985956215944510673574941769273339472316278637888761886943086701654902451297755115952715095440291821800782811607428164979535436173459013478672880444222775108954282139799357649717186244226298574202063039291803455378296998395265324399371928297808246472825863933012843393819312453169588227883862550614642334448850359396123867568376241858678334610376640880941161637758351058150984916835851075424865059601527493215300698718920897856149583972422000001258304628286564892616443324337084443881865492597018091297886279846838079056242290781298701187657871953527580789892740060838248090864534813197588860442617163333360034303883015165157146852673898048699344233754848852138268379008629130617864662880919981886136256359009030970565997716364340232213361198377603650511641408868125262187108299219637066099263623957663138310129373386001694496376420834093624090540355990200341179177736830345944471367922116541626738876892885979063222702835551079571702566727390298759033022822359200012573656731181144582885728142625393945905465568939061606620755976080100621144954444175300579533111020894163395925074486004032367393238042097821524477716468508846605229380894995950748121229994753202103712145145934393763608651251425643747851070525729929739419871907573386094688412668277443734111630121474402143893977530906432415005364369244858191757385891704266026158417795395525906261461349562667181567248684205654783216833811258463656728436485780728188749898995690939510500948825958330590465825854443989974574638280601199659916709358579732521344656693739696101705909659342927952579778901394883799071563982388606970280330268595875701367311939251066564549418545442832219226214700076795601148030384643766546803907030649935627846703260203683181939471767111527948772477133713534637303760017531748043460488456868658620400207279810432407057941246846059868511294372462576934412683434925814464811189802229223145897033730072209299153496015422501594090366495866801158460213998327838067246173775490961841890214532056398270065506264459740598446711669581647251247271218202046609294886871223878728742722066502827204273544150408017387423028021659640752288259719914641257688120220574506670949939520643651214547867459334308897236896636984003686675689101922979796430683126938867868892940949943662472965289652997742677539454550881770955930498797322371476572819850710222431857793951160071740958092528059377833802944052217244132516031104154762153497009640501481869649680978643206209692764397462080028611871069117145034467173152075120183774344565830854284363251161750642169698642780305480866829667207866201188358064681133490342156739057149488206829981580132044339417796176077239526750104419734735137016237214876824140876262217022493993499200050126876458268548353544654420162776649720340064344905204157811091830567038187167521201677469735064159584093529005879194854219364836001236648251736037002225904905755799875246352583676553466923360235301153335789831587804629244025743495074474625148611310625261185342672613387308390733693298517203191897849360994443241714105822993085299703854972150677928592770683278919049446231149118202459725237106629444441982092179446522431157406499194568884830818996332317969318795633534853212251083873884332982044733518384577715687811888931908381586308643949911282776772294597429583155824797978372005117363206125797349750319014780439047711211016706758529536031085208127661486252419157131224081548715128020766832520771757871368215739495445493531421547292318688088414628761295125029006065049727667975052237860840265149810354162410406433652195271444111736114389000549624432814946858284962560738198332467298982611059080969846479038054856220986265446161592990928867460340042284309907216014900697124512078105276423604283996808821213209021110739301838471869598681574506209603036374460347500903722100890426243088974751772206129825493306485380147428428296255050348255038617366787644714375050481360885188578433673718821045050966848535394609747973213159728032686033632112526975210061409640607145826518292184805789362258593929517386443106583646786130192682244956974885627074255956075298961807740995382698241507240345737201243575135619110777049144823497477142812189076059461703887996576135460348139244509882623517912604917178005701498578728413291683381285270704449512206915358386395931233054543161795196187363019624016904056337360871254973345224913475735160323281418221553744595534595996835771552948042397119784791042714998337222543284432449451026394075926398300707939149013085395466149378636881022556593642152280401057536468902399758948740623698489900936367600396593191219439499472460544304467128322088060539508347743948875027397455506631779926809828125721423282740668841785512953882393594832798486820724118351997295551389481908426738792757323357312097174128834841229077908625167023620636514647517396410162606750300535489094328509826823978518678241047994378762633966787025895725011542968475403600666654463237566863461903141706939654783782346797096538626892281415389173374583302758190774323386455619505163017485858063710769515279333935119250751067940521002746726959147003409339028840226661875535124361755102874998664589033985165942016321890247886538607735913234738963435865927360114479974945913978509818037250897522299107612458501135246961378779333731649590744314084966410901045807167564957457037711679655922322965858250770704053317071095425594872357962351714699158074327358754532478410982103610590655149410281694366724985707572224048306934499790333961734124068439998137020897673040295932728201333662566537196336216110485587938542075892795783319413385442534050071732217159134687116485631524356229164631769201123209040971391923398473321245744852703345814382693102961756244454819633961519886946734972181065118264704157021904798400501753307911319556377050978931668726342991583172301049752850260450215122341333209450350494906363616323884260074371187775720394036229747055289481682404881438696418472253817406645039520585511115118321184332210923108430469713729320762744435431242526114301120958777666969390420597528430129304431572214520611563139249302406726386080976981376651544142425787591553062892492945374009425022703412501707499252515816606110730448408733913298152061157637685954987195439516452049516439212077964100332756001194913434116602850185753583737912717158693022405061550228190034546193187207534568227730305448040964132853497057688019102029076623023530808790933700691676337821122377007094361973124486372114054120596970011008371080055683591196529537291093905310904527446086079837476668837460588804318140723318335329767007625930109378443067489874399071750541596780500150453663245000166587164484235840688148088482080690811368493426021774680773792403483344505056149538402395340329294126041834990443900589135688147165558606405977017284365384390454619771296440121299226850218081701987043590216196075320979082284675651674049771007484971453933137050670976105497271849207471799229018894632612260571928877696005611432979878384395228804867852648066012083445494338669406029107292388058989189459218180688214758329472235082722546827676163275537808085055937373258296831284587812088976845506241971150326701661753389382327293753033579267462663108549607817581810443000012937511148198440236097674340676538410086090119045939562519091991955102500307619158157067170970166214970975728744177042986234224728851334467481427298054465931776885584119973526494749416227324696026691120492703765309820056283184826934833033154586186002409534133561143496398653347268750894556481024612209387987532736154765206599693475475624858638817330730458259264947671558043865939505985686227427629781953946293189417577223006231050346701892065152082817373726031322067900741689873576430930098824342005286151683412327532284383305247159516890059698419700041212250146234413170167216882500869004763236440170718888643459060937048973095371742025989287045539433530128938550040096506178421460326223352414097520142290843246114956931274173564296133529325698103077254005400681358199761433999854059845060356758233378449112705706304600437668371416393929420676180947222557752846365906144232246913942166212563980192167558762969969071055532772103185485598889690461519660591543728552702005371648109895802216371725870368575282345679334921502320080694448800171683473115853565252109682176615579349688232601221376533275796645126332557049009264790018101034081086352085466833713723135873673253601511091481520485336167619418149778614909275887247992012008548245232259300023746166138008044894033321790643708043291620527677511783482818072875315667089879660197774668894897085042531937444308531019073398342815980835969674380557068659738946766840299739366246645694749320617330007327691961017047839503936437022082186976970959051361180879477547559252573127220257763320330376750849682230292593500031669644380289363984574628335776523225725607170761279720612777564356005679044219319673009055580218139809427577887929805164359817603089879039194449316968077681220903925451349619574996869422671229175213156300595880437871943961854299478753142828271527278759131124559033752992240671889066304389604232022171928646401162664579413471688908449385505900040604105416023281643774808251474231924496996191848123017573458871474444100069894559752148151226248219477518175420716045664361628911072835208394634152435161993490526531440591131204790492769170173536664471344992874493353781837977745883233158862721323176664079995970777346971207737961880131866870789617251672883887304234698991008860156337436364391133001877633545760345445663234443441599173057568045998791192839737207516809461682247430289147173693396852547360077895703003697512592519358066946975892342888778435263363833336151823432597544940114248192117553576463748054189426767435978501936785508890425885688582791551344060045386275273362196053214980198039836041060601146765084523463822839412048163749680488660609839399945510271442407646231554482797545297332745461461980113126924585187119002167150983219915831530527959089365963998687384698119346029908474872463187570874030330737284491613052426637929595054720234340162787033149420083659654223192556931204857256046079572224872003285832048645780861460115853343542777086710257343678227857017578666787705110023718137143670158413585785866790411726574522540500607320949096415435009441543028971620478836484490561298873145507860467448389017847383426319671303851754799602831611818232040365071858129300168191784624903843001822116169497098722645562910242724705102309328662978491900256059904617668692077921273978547848148881189701623765469339666478650974555674878986018934527207013397619511722767366045496485578091539578383904428556603304886114727982126123327290042711470525730694185284815498412540332341797767690522373499244844246678015561483812296319253323920173797840933639204286133080468648111146194663294171216597351775756821112719724211491014824766256903622509492733941513572006555994189163859244212533862459152745668175278435126374910523213740588469562323837556284811915979601656229864906978288250154363522965713552135437039435835974858450072995556093927526415190798167588304678945348371041049580581616588188326613580417433389939783570049282336052673578936780043625271172391969074318051041593358714642290018427406320032186417242555976947000900264285400515181664707930283088262831565113281675173579317928305954097288472000253642798845903732004142425214965813273308256155662185925419682474189089746647550350808891422265858336071178002030790236306919356752186606311366629333479455326033426534818620833506043146833849921759955427683208726467349567094219826724799958004643648043165412830556642984633436820199495161706250685551550626716528600773936302555083114567564174157092599939119575431593871957009801504085472895689347037285738486471079042913654627546922541828919825605651507417542871251709217745445812370707854839272893718055814545185041594416465621306921522090367911618440769743397695374526787032824101302303461808485600320943873262596933922236571656912415426953553940890651544144045301922638773779692372594117950015290834472868369417049323733930760676161039111030883606413369434853858230547087628346052741468295069692390465111122363994023707019546147916705709236489136872250123002251258575572031091673275203249912959255079210331936432021187822341040577664331584575022407163999860235833922472396875955838322884966481393880927251396644557718041316273509426986283877486255731907351992693943596506323505463671342183347697524617604286858844764026052198368256815006239986869747872255605376453498832958914222518007981750737185250379435697333515803793240636537970981742061743001230968811081255006083033540935969175086284145652781521398412982989999546688792033514987053052593773509625203677896261836553732072827146907922146963122619360880295820735726692818825004849102197616743472596234818948103650406330254175461873050903069263298326683735309036438003831472412639371016433900445888136479628329444709306608152452153946931529126761392161893033363566415969081619932124179246273386635703719616844938944562513962349013895008282710271692165944646639815120939511695837687981699022364583824114134230118758771701989941721100919209827612900341855551740641112154132482436862511910921148720650798672338873315362269285628476184972083805132009479156585663814447379909428478410335763493597245007770112004359745949421692748263562733516803923630533453393997369541722301870643643624052896508697172217390519705043155631321051029271206908935365217679058791193200686156690607985673596447790494374606419064466303128018427692736174072476442559315089104747009204960235275122175856117706562215128320996547089008847536023300463184428657974394560406293215647682103428799082047611517529595708303128379497397223142900675577909984091789034165602615959665802315910131546610135905686123933163474813820950678979334862813430742134539577332408791181636453281325585091394309236606350702476987937325158566096079646663598393382869652103913358693950677212242185668222465772237297181650618092423937862990838528842426031884893146453498932966130898845878439077297817010671518071555953340664313379252732329045831932044257915676562265831350695163776904998914114776349366889821511984954644221369494436798611928283745891027176092031835000314575941794338102999506303698095874365591759708403250438610032708253576222508178688010055731094422378519442277083506193728340051926661543927742840372625832650202811199750189384643376228387411607255582793982930399570353832571658324233412165224229062859059046269519412188255258778566839754612281244426920994782132665552570143526633274176588815265067049105550308720244928195947617417449812295214824510229382430745222928198844567646040201504731201151207796641073962085691762977321153357713407224651401307268749252397748626273352700773588678980424382647410542991791712933855969180754580044454293570714119365200735663662063242017131874232024326359960776469692598202419726408876425588241963684179432535259043632705920893659035819010433531434172879576937593969601661277677834368562121072005499324567483550920567671881542246795969426164414184927362182184907685518761651613176028783183279824926557703453547643687068559547076137314640307898524086209086479226339869830396971341333653533224815955556004586479560375442882654361410296922088905105972356628354484326469938339899141270493136097495459072557720694034208628170397784500994285813854067025513930105110783366047783329919250004566015868967857479620790239497477143073798163371732804872750208346783240261279724302066750533032734574413982031875042282611936810712716175912101779973046332984447271461162265239286794962481981203772839744789052197698557194304402136250629414300362150181954697361229074515356285898274231672183528562542768677553939414481147328496397609151945430050230393384242580690473714485530696352941012984713130740676893418980239477062926353053200524036081729737988809173620286973689627280889060778207611723506712484421776915032799760256441166349928648178898658032746991435643141111132749470689545023349170574707303675240432656079277931566607478382723895143546379121720602079851833172259156649096949176045444876064925847340168385621726418699387041924605420164336380055370523307456015848372874441251450997311319561375407833872853471868194793042433480935808050176122583583817701055979813053372321737144173063122411965080354101642375700684466275600957710102653818210961881024524854566389182260047084593447451332401004209070325920104068137364595831678692801938061383849419843068830963733215852831013835421431528991708170605900128167838006567042696996314254202177065853692886475957991793207392841300426645428400975837582254651305861270013798665792299766867346335275930053114475795058935077541540883714579694868840738831187114637530006824377129191240740065728270305752444557237760676546391017393419242500708433147653525745362161161614394197586867533923918153793964932792360861854009693882000700428652066759223808415827284118903196742461430376207131630241816147626109037417583958036241070682092795903508380226792140396637962631890692207453598897570692682367058781680313920136998816993429912628378094608136463419640336196285492750975882453553424351122975722974313891726928848509996661666787834694448561877855306362922976922328604445778645875493016332562460429462777757552802252866645734648627993713304250340854783723590709237082734820949243026055401453452776040420064195769005142196090628999187428823275361946173516255177443572509768036456740601306834120508116363304637450364126774985697097154241582125463689529428461053075156049980550082956920989665191030106272692448580835481080877406541990935002082930226664216493797488292388231468742982690057342327453704861476430369929665579066482483035983472347569837699223358338938038279504238761799796220461187213022526323547914155994741752691832813281659235456984916185289515464306777149594284458339820340353680725898970650508124387212121204843136848796708082056228542040487787173255143933044768234921408171537963067232405031994663542976354608717425424159352676235447305894669962159940160947562570215120329619448888845339205458706720647108527048127374425972759320200556670944675906409700691429719395083531886264837316673931106095496558932510071457398062863668159856791548682021910663408771155543390756515142967669650462368490244881183029961483508709431225527593637716991334873995899782857573564622094762427748552657332005644687093351188808343804063491163896577573453151902416915336140222103543351898568816219315578888272998410339392466278090687928473105821197963027699383587294059676063220489886372456938087176423254006629099301551123822871301607469657455023273575373092011737439611464604076443853179417780120565058674418127557051390157116196985317553378575140689599564013871818447770002635945819982618099603659639625803594721405418122848333936118573002222902212954802634620070482712730792538454949829575853346775294137932923329465668229361482060778314805734988961871647789098540433984174878037260562607071509709715189765224559892516331575015648394138010506526140773440332226595169235988739967574030091250227137081504236665742379119107761370562825888737407488381744849500282444725556548296961924535943884671563611909023511310907647672075153040806693364033065380354804867087135061656456704125427826954460693702136946871881076035407228514254912532457915776770794541922362994875749676846357018135548019660916272166491439252602413314539630974511670373690214039769872456834808599261853344261549565912967790341602433249481201350532046573764587219129059555571389275592236453659739351935916367151526673647725553647024107354548579210144225569509172629798069836793813895821023246273838315198950622812538157487550995833902866729142512512388643766359630393283508878970423763585887880874194743881709436141629965832745190710078185790215742592594966230363498762071608544905070513689172172116571875274702913322450005300515778837573262216575979256846149349483305922468101917679172510897177574102774123104444438317509609863507171506498347678579686951524808265436383234974083995946846473230962631234046555245346257971943973887589691641512526105728640516335059115568830250234431782132389745070099576115531458936485896489941477644772981732879971931197106698645990259582575962244454116296465526007288557373764565996976643368392035544985168856677506923596320621826302238415162904932583735111680956738045941735292055203648832174592800639190955038154591783535579788830815348341339377124883542346376476086867986114014029498688151339812202670655700862389235733388381847268794284720151857222228667170470103030650849723838026963749453408365120470824830466150624535083644827569503281272030300897248852981528306805903920352329925181807191762047282744153520912695068942424829590295532903099121068531939984370063730973088672272047094896911596567286122101984991655492419939260362396522971084641916903077712532915882054685407171519229736666402803843712933252276867803762523266759772033982439214101817379422049399190334108058430110388358786428888163655357230681018187308514715057191400846184265120148114776923143870105209772099467065736944665234982382646581931908614328089429021675982100350938651536331684605703216880293370233917013581811035649273118013790729364918265350716929247321277886070673337374683675680366836997617637072796849851712473617704881728919956758044444875600301854999690296744894917831984168043801019282725190592060282900151027447004603584309335745048609455951138718246309016457072107296916446686439221098169870636804445996771091194718786991614665075449438777741700075137286726736041356883598176130195429471684466313305611574957149815822316119360211120963993628730108809042085202978271818055223874220404595626121774902891735595321203484134793751267408313157599142613011101891512151308196453149793269728165358853404655971002794686886972741691138252500720501487314669360402207401972134589110481496666386490274701935162724323163658567116175397884813643259233492872701320703340168628062624957409227863237704813892912218755185592234460741368422296254388777945457777918545117900233184182970554016389219799152782839466234020170971972962581080852444586686110147225577051431979812138081356713729222434855194734019066759790679919999773139836231919250090941430326011153031464245138461090781095877366074424912016199218164307291924944409117902365310075988291889809530133340354783897544399535532693856663572854074633171993648964099702449226182385388231456526317129271076774275777470993987377320243713448800642124559419306912493128171946546816666902052180805887326135688430983354882047287685588205188949639388663475329021232767399986638182017454191546849063017591121830108973495326730621455302236893045483765948455914687846858795284590327353452409496942288568864058681570832262847698046363043132436341939746417132180717882572644995631613006284436883271800402429745199068430381224639377031639472915283026901081039772476056109691947016577593799112066229709993305784781108516311425854608482024990554422868118766805014325005439687490743401282550397955177346125205943724240670344189673600238304520110343426338316086929839470216810418445519610511191813724731330855305376529128792492811064090325206588136395920141879212891588772732203797195025006312192481255014197654526655732270418880954326240164572240275581345599457114964085022988008527027674138303974125532517439461416668043335267726193963159049115878594570518748534676919171736616377018522923037528754967813010549119431436799333991963332085493507308582901418675568788866274926264405709087917301641110577263940553434402118032790733857330088137193589707766113535839673343331232232113101944860400331460290467788040728609131455479458971521029450111385749376508479297384735160703062710537955083459439890772666147237282971835191905861120535532636459330189923158198004698264741343677357645223452945184894306929305933122387899390968798897478409939159859932807864780431038241761799478021528017152148788012128781599822090074961564931044334049177446736845471565085291527089964655968482144875801868518484276457486008372328485139757502615119603317007220267544078687503282049123246054538788541981376163443487530957680430508820409991194271587851681145519025937854841188477253149479901181400767318504419568137482279190934658422898270917488800850925476058923005972388587370325789145582734228249794043604934302428330681576964997072840592881323877698415258831614329683502208651970753164593661387597564531175294552891132727130718602059893498373149938153315027211908912023491599093719258224597034905724568737346803054715750715843364070017006410336778291439294142005687612345489326567352150296745423993737911977012370129910757957240455705715014520773506518429218971133475761877137394128834352475085487385671989906009843922065819662243373553629040177177084955646100417562511408489207110940119524759512919344809993895585072866420604412806138441188277042896472574366170803443180499667732042115125266788499158951853053903169870336487062998424537775168499734716762682593534682564329628835269039610637875964404519077916488103180520275833015913553372204764887028665077209207472310278966139535310279569062211895638536095572112486496455884661868437288290038344352803244076821135603037224495499060494088007928977523011359358779511827420015486157593686895536359214747972030264346915833465139177307550106144575782067745211022505330403841090179031158148067978988903348014565182176346658771082913459181705764219373910482306122597352519794669891724553386032186751224234888072777554116378173535266191114069912040278987262106515331388584767721080668309644765822039761767047170868981482188156301366251774192507116859586035649408101972472501436023229126188643499530183414667564675364802314691181486142449156170795867909486372956699762005710958785168349833458808014150825019109476442082323399860089185089779118370477049891653336532200754755418952507515407061668978551147501062354906690890293125926950560252284222618717991165755699373803072924115178321727751093270826824060062427600209927236751478991652369240757663292884026866226387309745456609611539225307955762715026313109957520478738289909991825289204274623312176272046793240846488393551028226750915342816572193955853601839930520938888133649755038398652516876960750898088851649709758045714423221828531806667682648751749359990210126942844224332556828776463578080046258679246041107829519076813905272061364997641793044588041179006847857682769433413052684503448334306949881685577638170253155379924052609458480158835623228593228346747131057878574482239911383276512278461374675608713645118427283656337349254985861795810420343699268122306144964877991318336111257222820828048717477151658412132488810555359965791572892034071226053162800243289821125472336252778413654670177882751199357093571687994103008435564409496290352512178412752697259890312963289137614368653437326568126952067333184261536380709415889149974104244229826571599976860354463780794412674185660355973389719668465167306883362199782695357140889084782261187598375697072711695078941066759228430135530184048334862047859276593631115355639631708969195653979962180429603449673871029408604508699535602286433945733157498998268143769675955850612801034667826236560798955494313439291830366327236790445980064228817532904500760286678877828532234459804151029123784224669690413952932865674938705237401731011400333915213794694414634865511969228522930488998440214677687853633554666006816814638270344919038158438301912001452326150152697488271252732935065266696213876628953776230248839318404525111666015264455187266169211976532181317831652272269253405817635517749423187569176090934285853565473397610653837933751209068050957896623145181114331476555559259596620797546323006895899829776121615832859557242575578083621756525079384292954553257509308584008412436857515301031823420600143733861196087806805109695206247585486411037248879289844646807953318138910443034726179632194227974669221069182422582801873851611531912568673216018821099568551982542373709672062921913022310834761863166755752251155653139097712246291086603893796050466692585012170053037049714684997796573010964400729721441781047977887344842740805781653491931528835637087223462618315295383310604669110050101876525616959402547351059401179176243026138477628951314210437109377609090765221092170862760464110254832405930313919806777733454185125907323486463503879359182347075189800687536463413294968258273149315867896802005316185276109407736122731185558715045331191539828729441055626816531468110703674953594163538120692768186051503613924972902355603643567825777931716524464983999324441905228562457083812388853525263659261909190934158642337719065031889982401714357068978947455215872672778283230748963040804900064401851318363082097707353116641714091982934211892968763943727471740971669456910895531791270703988720675619580456915186025671053197853424689535808155249388300007781214719148444517035226267534047962265857603006496133400386827847065431211381856123069792313254677368764884477205125008162389023350128533707974667950297505033584096683755697903364009724118531023133650349371257369485635863277801701464874459790959015117535428386741972857629122911605546583720609114820333758861023581416025205627440642938958865510667596412895848008093493180301964593053948767219219235090735238950940888875988908797569655698278155749061732456276616325319503727149318723144395862320874926024809872858303599931838804912777633815194112308510751554512938427279589858816140031723644944511095210157385057209119214880637690960249263104476259201280026478018890647955557639047001208003457522518407853032754208493749142966444748061100877719850917690042648903158308461572800428257881061103631631210888974964505885499661229107175054477289954353782642931327613250168649482279986356292932953095987495687217455168072466209567421534317475350960230127316212502924859664733114787225905995912824711613454758581526995844314220763500921095397127855388726350252719053811636432736965219279913717849232362748787397668127956873629194025247752971587157950458575183141972707130226394913524005984165192520344702558419571059974787312249360086862353494501408540421768823115154826479491557793303994618625357987409444193862340903029895985871531644057772150136582102437155619674709236402744589021980855760632364104163010160022452359735069917809678412953058529437977978717350486261095937298647247463683941535462061373117565298256932989958112259937928362598029167731120210218178575951920032493942217131912027086060569626363639043491868280429936272513703766387383263476263255811130430203454765464776387953427056716104674802864374954587587952192904646670030298674637016777368424068867246860616418926430647420089823070954664510522397620972836229657575836464984990943254801684292856016366566067984701383364360120643495639678020205998366138185927067038270998679312099950155981560949087389922955952926352736787195289432265084742805919206874694406381585821557542759660929763120061402817559028631648723516721939369619280831540603550437773910334193493931362483181558230962533271849480476284060358919783363085408387445039899492195433946903175894343225022797139770806017363830750532601567954864667729569613034132658545496557745938838963621227954276040049897489894231107896976530510090824709754919718540459439008446889363108550904636863731240954998234261878958476894611444877948911457923906308751260524009706261720032282689203243138477059162654097683951963938853174835833577214255353141979707730909648626801138791934389153127204399412703720499041694675806874598676397552481928868000409625717848366229158552837165505963477303234722887499608352041353449125926225854094897213957256528453554646437122490376737174445840649217401746796778515350836873301871902308981211748301068936102158628332196204328599200301395082026053548027938250522035075500370467517528151201083856601865359900102907570309609342940001528040204609256719676120103293547459340232246183755765553905227774494549458759236895381591975179458302932474867406586049381306524257902990539782173836412360956385598314763540185909847384448690825889079387146711086317853235169361404263233165284525962128486690142092460301846569267856988745450806988059442780443173158884464303724623843424657682839444596010900139927383207461857843968175713411715643079098623469596631482970954401622516484417140339878633917626588194161980135107173165672564418093767076553511241808372718487341262089854715649796766560321370095696538053472606468582145815934771428411395031658947596165936317506146416289553822201382706698307544652239667295929882606264321945781634420243448441174421008685359753557317806353298959317354029574233758898210270467222096483647896713500004893101005853621137924370573673628024477081452048487148172143317434979901249761867042690808847740904219853163925659378192970234366538675652549699417688615071400682981985919428006271010016956445306003033117679477840446241047755273095814347756131890185542973959498989997317567493331854388383905084632442179020181270079799167616057584291434098205800085223083910675798188039289188316940343975236190764280611613301247990315583512004553248204509594828969631355259980704601970317111965179277952321037477850754504699102942013449214234226707129453991921878006634635416431517762208685366138651683954335826820700586756081278507187724365194189129800307901983264502370546522448698641182573152948643067053086413284683963922232799986407027966281333294413020844794299778732568091380384454853410185562238693224142973389369918492725936647408559752141735477979285885459121185669460217797142416019661419555509530538389151968220321451786492290974491937461543393911850650921868686745149941748941997470356468835584264634149620716084437291135105126933955343830088870358784491348751531123037538051945251229476396434863277300237141476607979296077569769329333458491898722840431992014713799246567156435814384011019404601553799465837196366003435664115166212204387583038146107648814231158244926044825995369770344900427755069522327275269977887577462576980811154008017999785773942583324475340225490557655176202581427657109880620020392184344299116131696431681582318581477254959127735786270288030822983144603217381370300639496336168348255834880655793602139192164260494970840336863688869155282284336878038954291126502391753278885195515003779543799839937651946824183338421637659739804232626266120709764260771344876275344663963063859359811119614016819310168066714912147020997216268313434659477907127840899175973886452607899284535312926422013658246347352191674523738041594147234246801703279440023139335306436800517888662590368523935854740053529392859259290993270975485853316263295204628397051164413965277399990456091117005493332968777109987284053116898082126233877041751852998594055664576844115566063137285086421638592881995676924370068996807892085833610489048468129465765938645975461839851740799525588506319732989861392367494083461424716262275825892883879539713363112553761194246255831690302798967998520447310831291146337332303907414462350378281490156572697333213325410877258002602995197135643892318066093517694120805363778644744422853459814744659286925659913424711134476296054910883553879733954316019896740586881576954063619363829812854666676334149517133033356886561356052918942587032953081099965147526919098091866078838350573229029878410446412603266265239565252522899907916211112059400956779029046073051394619948474784415163409737686978566930088444594468492694767876082699839037958832521519852304928258354711964730519535108442975624802238431928287807759679382241017886205103722720237734243209910346890124987823646720799955267502649469991400427554120289257787020667068725618073859366440522631616493110001363799828224025057708328872598804086967640490387982887734860745859044288017088579207814332853895426238965642368291810712280431444363358899149988687357586574550599373416257860483747950077370679824885010434715100053470443430503933801147152562607586312577012239339893856098947587851587065470757596138189022881418517004821056119931365302724847326605858125212526032786109854783452559384382107533969368645757672402994975236962563800906548590405011227634663729890328665467491570663258255849400492886963284817743379159796201564516991247529776540199685528108310713747463263723903876106585909515536240399301249621198022741387415407866780988835122390714980866001621641289278862202864822882838963771736099913390714869961224639053718245876730905379241693731536998949384487002591374932242757060227980027996735772644994973458601769113822900385306884436431648887147935840942724038472004910567212192447727545434026519811892182585764992506524115997186387918893848425284349473789310943771253383219465245861539310483313561861240157137020792584633329447910485738866980822235592106236413642577723538252666900204505085296223699769369193969525030945829972012563434762077423791310026578899420889178414800116588525702907105815835806231206743603204514677719553522581799072047766154226292179921329697725829080886656134495384425473625048092847092758329375526461084223781726499279112856597518293756776197983771531859136080755318975904176118247450994245671317253089122596029065286450247498497200612579031958190306118504655943672920077022244550311594213912992557963251571176891747569262533239923612523856414754858299894442990460252726375094319300883270468392290899741356202508398147028856771419713460969719543177757163010039650069156149691133117863619851063333924942108102403385833226967630040250334834278759826388395879642608213602922911445559683180045841921095362990523174181885960741381750185471419283701169438868453152020170182958505442919809986801377162028892202061361511409433398583376271629021746675396861583193803739431619495998766859080545516516117405517093022480993245685640508409926824891240161979909715575835950726096531481914513860660196887823862254099084167945995468115800725283762098949731069481240919820496991152136048135751791381871209033008049017808728700358270397440541639450211507221844666399076368676030994797722879873540803525410043010198800261038203874786611259409402267930802052900394982100147436377519174749075980732983885118634856262500049046423075445647667316858791756734976868306444787866147587365813006958777112425451708857098855938085482641350137807395088996088517806247600590363329527447474411630217484182057361399597570711156131898295746151715598650752732415309339086134506541197095890326086785387108426285717307962423710174191771436066748402252854343960192934458781344843431590824200100448859914737529349922112505248483210564776240955303839338300955558109682689026554856204150892572248416505836283595415503519226022789044428803647750813321334911558960549810049833740009271279574993833219294107686923346264613200408682860714504143575839054477903313404040484906714764800918816422622300280943737513966388057694928776025045468445512071238518404243951433096157159053301534047385906019863541122791007445981882627410384711542513473275544841514505481018097518151303337484504565867638973309013631449514816180778364372853783274259386818277796024758475092949671152522226624387232165003092208960101516286940544652046627532348030199092123888500476795612698396641851870510019278175202825969275345750740086463992319732322868869913266441350746728753036402164234315631636535937220343925622700996916193873686424987513208145839347568902193301381814001980930424375057022156677592759241234111731774962017156576169752636094761667801141722645040049910609232222942471466806242707694121170239536783124585184804158441509435193102943325900434816972735677582534829948476630622935522157568699279402141736616423840051180463658849503947847879159097717792114974499109110446462047148652501307614194803435249987733411100615615923322525035025773065697512283015621205652571293117988324123413765718970974159608252855700326033064764536730173909379494796267744741898011097501867124232466205895393231694292859503239982599760321654131155230782634303629471015769746469175136920519477027693014092537580148647166018372689313992490974839733626876244776397704389975913890547265482795991817228282945811460729608613297032327230372820000631357132191255846974991532961895397551230944696643500695670487502362687632397053357437762968962871610236486353431951417287645988938754188137320101532139053391126321217678122035037297291966968396622693377213742825299782625853612834798425145492883371854437168079232660302346703693949736578048024756687405248855416344849133908474282072572556673802389942521415633703269588133883102608687490299760353926967438839756087034647012376613977198820252635338161257135501928161998766430319892485721355842141210781339112141542671165498031421116633370561027854089205654543972030504027434951405303680864040935971915285954360977934538204947976825969473249234717782852369678842340968827119897618175548712093280054789646857817972747098666201028382102904389670763965035138352524585037874365913548935211613637564234332926758254150011751422719387306673516787227660935598548388698671159805285934202188233401832158783179429996883810262117229970299584588969681251409668650495554851098560831094509866933420891465782032309187920947409794700710668043292894959309890223903353969445279227392636704646521724371669720203158698394282990158644577758725475295359936437127904507193962751248749209262843411994345690529566203612552485359921047190882149340448726039120000957449070763475294530001332767597786577568306932854322017090720220812035206261765279626724259485422181131599966953748553674337542703627839116070349159896435643934497473655966256562597772311497624239824620603340757114619578479871919852438395159618247038421118824794836937610371520022584519281090066055887658157148989613807794437856284070933523110633857057982662309226032669191566560968977575078384057600909431190317192121257030726201858283819967665553631786901433466824312525792085360119347038077425972656401952209154954319333996598552508186907252168396623146354359169724565685931541469293615566634430361544658035045145659384649256157210178600972214878475520741425359899666013853251198293895782184776463943768138249019965932576513554531676690681220016418453620495227361926978894007046144638832054942628713927133024322378926122719249054567146492001438304570661852771788388752328069212917332889822749094978022845788079931997377402498816529929799835161962923930601484841940026799699562755135331065753246514981312491309691945650998071326720396357427482468629248950910986469365349896374856191455535246267767157340269128272003152823987168358982206059243718163506140374178885222374757346735957115523624663597801385906539315310290244614599223902692911177956261105475888156790543365011656827550696946732532408906906275864946202843748920937173447950754946238625205317628117642471893707021721270492123195532414019772668510798289050538980773931907920977600465955092143081783736090822884973371580952934786703570812365427706124716488853934659516627242608664770510942180269066343507001375010301718572035661179173276196246027225827768936628302769187644075251527377746288732468305267771440045492993422814718624925416452825141639633905590923890910651390741762525075310067849533798137815832010883525698294456667684253050768591350201362516661556716971383072025620160757041679308668935752457908715032830844137746566332122747026509596173100006234698835776862790619203271123927594253184014541522041383631033903695990951764076440008570527377989002159598096174550320006845074854382500020012494963600133885898775207746776767895772441678652178456717145789335851205423992981725524150796181410538362995384720339583601672981349775152773803839715574059482975255653752281107927378783979329637538157390288372426178927750200412224727825554502559792802526700747991536001157985794164836445890936035779912574922641893157843206099242627487005362572496867814619739210191571488982023898719384447201613426029493283763393086373271890313494884985742086802535490451755716819954033805760163045087739160076578455624975014747421388057315122271635732103508261062192248857161865943611156955384570070267303257951795022768726498556435070155225432993863363135657426596960260065519071014873727850967130018220498227428088205733531002636142886831728506758174661369385245203221139444517523744330095681824793207223439211876641216182595548382659334928371672649566195232968884849270901419504278761771483109466170288659014559193886862074419406713206263603401717402995077627295272958673046939638900943727525727364211998329567733618382624520236093305738714076202377936831436464327582203958993700328621361311743051185464999810657661480287272268461974324152978588448981130317185478302638038141441208372190057463345083111580696272033822556479683210051416585412165372426784450743870447553840846047206641785638108294626809716141751401026494298060857918017203529360463042466087503060289589843911151506309538895714674203314035529759190030609591751904464283075326292082065065061172862155050737480394914285228248005289489146423030224904964366766879266981637727088077710815127600700675562387061691788703395336568266465830072885944194760243289181239756900317598077367347849435525662200865281013447028300374733322361450827187109993054685966237707005468470005897584165473823675175282670544610429539248021960448806948102903464152633808414343527923993696163371505466680602872566117514838854112738791006165919704596317886903886776344078886908965947850472930090594562161727372012712234179299980262204284865764043815828922948988798564530270638409694184269845052132398089976369736811087085004168485208062271832211781325655833079302750241815012098752062120397123328291292144324365309363468159380337520456396287364413601653414827656321291332334984428043331868875192190219718236767691605284814054407638621921668133080238525853405615939877155733607333810180670285769200973191440655112314304539212115067979358927079393051330676391157606439754107294977481576065167835656422421859718725459909417887163492931718938186813694006860965016181722668215752081232495673386263215357936262700846003881045681666023959811868784392299443772512683085929888186807198887255355089436280439627142343650086025082214850051583169610760955206668838344853631528922221372308591892874822424377736414465337508387566831731221907182190987921078342822446824467045898541082950270836735244143008700933448082416717986774754379213974005419797898040503378035409199123067348341654159655370736456303653900817280141425716339208041526051170270002275560031314256335156444196354161524080337607107727007031711125904472094410940518358597374830564065944182876222012544270512383993953173633654728653371898658960193157029069194472982414479674119324627663106013443127562526671705001658049595355503153284148392990965439166703905975007589721166287239482133334905744326121398403694547453595478080351548104202246108223724028213707127019158518478896449919486049584755311401492491208782260279245434446915297535353348460836456260139541633342745086118325914148772592708669650600874901892779739344967903535400828988506576700231757724885771977588874290986520827272961933402685931405167318817049311505767374111393853584630654925415548675007812200487774525000752256878561259631424903210485780969068646742222665712302519419394086442124471447878325895348181000573353045034829467850820122601908918407944829463114799176139403209465906073973901578643894156966219732963946477159427188700483961365978550353419756893344720286125911153258244863626293509089521255843474289926234525567322365788833887482143487854883872198169820693239930231645721777774745453278898571051604218599070081563271492005630240403630977983098817666083797882020795148444578316350337354553757518753584427675193068652956897917257491006556024986986686760764198544917640311244863235392103853918081599954329244576434657677339301717639279370329543597869596581169383514602238591557036846540902126977439699365800021410661563670284937295366097030961091670282976940486650411398131785289307827529688711127919345221188003113286140062128364894854539138495596843409901947677168970052475437608286730803988710118061324535490506106928388698242914370145598560785739477659975274783620319560860743614785705357841277889449120653845061341526794538220924459968694843143019131105266471443691802152048655818667479337278271177368528276021976578324137687254543198761133710247643024812352870822677302994910884450543089507224020511520552697590708366655362592862249617991563692933984441815222523512207905336764432142201384621271501307916686197865925148436125613010926891847760365578533957674715961798964231455995482008737748225273089858780337637521190725629664226355391048386114129883490078689841981282310205826027335971121090829572616218545832096664382829840377884883692315227439019581509144780194011740620952308963268432565422083833262626535950252359173313768926251321023431299489196474805416827740365848560348605113479926226953882140862212492221526514434506240047387166425948093438575986209375683215749659039009897133002162905373078365277145572182797911292536751974402058660488270028360045011843362765628132995860140482613285766990691420045211052817196740880192944217262830776747089433286246008480647499114937152192514841087566445210356176794518039057472101472405907284419102220894357124745709262713116568496325055240734711946556233752049698506592142441731190137227806954830040486151259966011254077282074930327060009247304375236905263067423644804384352159078803208112926407039277002744782199973358985390049983499832828750267665430654834383417994460242003296696693512494986818816979017300238733069856557478300448233931351221436764181777826034016210908633333520980586389619697264596956905429190848206879279010844129500214280107661912822273753284442884028536255050882676682586383205357559851584545107872125171668706271532934114693209784772485814184521301669054021351503452059980323882580135574267378531271558929683202410760839623905946240820450159370396756171571612353425454174656197014589018492999423171652116934105496324867134838061153233760500545043600330764254372525395525167976734930042486479429313574949602201083438268420957908245740121102075819867979813571137559343965598961124763717664551062079867258151123118834433335162035069492075793697290921841018094617639670188289552104780402001248226509243626092543059238074443214869592964183613499197876035974289853811085341840426848089298704138759688089532785115976103390938487263041991951888022219677125119098112075316593638450855606541829221571722887649938662950318877548179068573531616418140746598964494459654180016987731118557157933986447784870692690377980510386672479129737266625492805889249328054888288480192879528486329837329053949698841333092506139449700885358906841560461050220011097226577468256476370576829646517850412694176749678913591135991270434680175208143851540662545662524193770545840320480017266363584190050231227881054849577686144082595808085391326110505547798301374038633442793724646163325491494090810021921598974346278629993060689085925859115691780249166952269343097730785092730205327962116394742354794520511518668409977629296351336048744323037779898038186796851118352940902624591774846650404654667380040198616935350425314749036869037480892822323068424558965996161116498961058212585124447212232502931904460157921361715444859440200812832852102356052356190463311409084859900339169258846337772152899910870597913012147862004622882015050649659453987011518082327654803421197413063030102152477667551240086873073146798561420015336069717456417437289135905682294846078449578185300783403112920186236503454915983134419737630084505403641750144204650658296582369503229091289675631273025619706805502186969391858745988528515095362711942595278279001206141973963101074112566108604645960447615789032108820652792720869524233464033553166117370345815391804018267138699201234534764607288083317372161793095043255493846905797753965349002867967414248272983769418235560089652752897718261300772792098800660550422419623663604987938251887117245436078284438113317506972280605622166882945547936590386038544580202883580490122652443576658439248554312381233598302707983862579064358768658304622332077525659984131191578902996238644603530877936708596254591014537955528075034173486454945066551503887663954178860994500498043138514956581521365759539714280999275547188969356746680679138089525112994687869633105693054627801720583434911937273224359085287907211007353654397134795255796930976391320356211323962476475662908139709640955450656628161764213721378934373412965460615057043316778034993759878836953724439498641357814011891798566479990082430282446059534373077160967451668532718939891826182448537594030184406800250652537405022468251242959967033947418233863484503774489818255590561252724684454170583616884652354595007435422579075330415131654615771234972236984116992834837066195369168614303203983244886002784345089194979381306648024819242871874463083935877931226529876889594936097710132262638109253863271503750865306488338528348079280626999626423288059141351270103835523306035435208116772838655859788314897222870838610783122086697251207897725877625958897054613796149561378493915653461719558741947914736332268258279295810789953776513185500559911577641108537801190915908182031091386321453638704728886997742780214292748024893189994250148186208928860479359552593600020158011734898073299522257817550996575885519464287044994711573419706965569792048256504989732993803185382015979575603868707466605714975401304783920815948113591077862356740859780371749989939347770969919469956464439570182428574849914087039227574758367877610207142129776405250581329728206732446952895747098060007107989204139002300009887539220908396863015227229971633465538695600056721930273445341185070585730470501285300007211560527396210050663673626629712759908555111860191365888051804019189863265117008153987992596428669438915578610448591060973066606440897019095840147202933962616814749171083855079228520634227631144216464097568796737643723994006446362557672185859357403798556675748930810779622041673012734484669368206155086443943293908753424068031937871799321997641657895451102647335463195657963538890630871323396264039629717429646552028628321712695175749923198642233868121155219177319186182652820515546612269360662902783379532903551311497423477915227569767230163560615118307373962860196542626587717572831222270105193541620772655741152736190614629176730075087295246639938228729889316105093524582770113668056626863793576910204805618098706968500889056690219957460971866328954061115896855953666820733767027871947689809690375597082240714218326823377360836742112530213768828251603534736720592377080418664211902111074635880802061811845596240122827095547701072703978322255701382327024593042481027275583351210068275744597128626785214260199937836688507742867624786004903672428511829071181209420471451863730584463331335595035588841981338273622706396383190177922490460515278002347483265849574649196161595986352387272163525892331408078064795712242416381332259511945967549415694352714713229320580915410710144232768454086900018117452806153518389063855517885368180272836131800583173427540516871215788281476050887317643086407874303071102652628303233299448086266812347516120418515958005974024216641135338366351862302745403717651116174490377688561759035999229392497143541143534060587584607097208867773199298470943042231602371527477495843266436712846554318901565369982105041023377952329378646389414985394200188916604861389617841357648623575358094569175025602270720781701050583057160887402166027927331694161523042486658734621531589636658214731961960066884134167988855629607955888733544103625006492429430443887317467168645550317375148329311557577683438300524097611200089282671005591871257157979622913650336387718925216927242521665131271539995952270109177815463030064848566456856770972627372424431077313961410557093069911426165321402628002507529481718842366019182705962047269708471745766232788454476186082161981561823276518096858797514987893770870876902953440283115053577620908356882472711564141380224846966032077803358567722637995929798291210902944250299588047025464860569850906451638455501799155085689661948131183667564593295199646153459072476814990598545451202161983423006686317725174910550689402689594964648453547113766717512491940783926751812549611969427946414123034446824694595435808545880084293669254887282544332535543252829470523050153131394590400901059244241661969870478982369741259741383412083311882275547064196779056962455813987774009832971610021412458266538865974724444244878955706746004750754486624555383910570037349210498557499912634525164466124328076882902583692351634898911707721931923526819047569740947022962498953299084927473195585360774911134620864387745565651929334123141756752698201915908807882290738472035634000193015041831935607866677266925994692824239954883353904452388328921357908769777524066323798983824541014487351678959788634428499166891696104127126950061726880710987971514544722483953275812477753874654737787834205447314221079709907390930644279133515502933343811705858967830127339073483565219727561349008904663888932277908448384029956222901550807283531967496867221135920044029527488597653436797270117906546031884220682949376727469787118804820288417794337431460599668716088071276673674406336047154001447045309727766175626506135709688172627911956056903700850913317760703826937860877727877054828989680866547475349690583603624333130664832574545317897569576434074912583414968363624385070358331253773526287175047676833780401923126908360070478499481459395279547151272568003748618224275192952969776074417991207560964700409397893216237698477407325751753645818705563391003564370292719051099827472962673454404403499355049159701594368494916694249594732266503305324171644875056645548996817803609418656440153177301021197764946439946249095731116380171282692876489284851435933282551802026298762786641901015210347215092785377137036584695153490463296008744496959446248882517997506928431467459622118088178637104299663859491834995687915723858054055744776142991018942684442039403635738730290830478156948943325493248718193679392481145916289407709210002931371229754922973609771591537141831806875838690857404498879823561894257056723671013097261775541083874722319308747130567040117030158333971030101851476296271535329694577195053015581877348869004881106027887641617811504925591997660735897349064109663111872836247690897984558458415780175699404629880677905811851697993988289282441431353976306390060991905969141437235790299408576244888895307877441806624439574273524094921352274299696333281508809332861515890818599649772307344093684457148351267484811934703428551568989978453473907673312765042197525397769894534960890704537067029691569607080252965158536403142847942918309044487876474747430365143365220658037097398014792704299622275714584161504395270462962098578937076170465820117968388847155063911449935020304488355673567800013632089459728484989160819558732249173925852092080282257637378329663950141891456946919550981053119208010132610713204001707141210706507250665194681215992902676691810943039104622553232852615027331480410018127825335310072264179789055787513111298753548284406419713852400222374425203742800252784108428426293069273126116908699621651889171598699854363657870373373786236899343816835286213235314687945691159351756110176357851014899176803775456911667993675899549696901531841066035696611887675710463799101178274670089396694557436246725905973370588933837461961827318528745587596119491428624311543759739644704946138388497963966380529328483811943777218602803507896676544958459027632707643504471393695010719704770027592459348436488827709602262573830900248952039045583367843714415802128848236299823350446178739309414705883441272436641635549537977833356156862310495829721192938818526682586780426363958154033209260619173952032354033053834516275536624304757702778148832434980933444165976730461740600666113915007296864438545387754636017245680424292488311420584222002074973595229666205497182794690353346561393649093320692483924931558872548220052201677405700278791838372915760224733055603775504960536223382740495167194769261185407327408668852104920095049171465901873698830564050282095647856719962831048827487277034286765653776444850774377336577292230286935243274192656934929601564013840043672511105079204736884064082068839004101143368605834707811184351672620218051447232678920230922623177210558734057644734786538518980056779023486185594761761761152472133836666521779662514691528464304561813667998340793698813971265395568955773790112423857640353416561671393111990939127171059122004560726705947140834767653443126031439985640891433959929731084163625207159480276886173532738706025896833801191143873502955420726607617451561453674713987017891536974514676948603303729713224334193303319694071671375324258635455408999282928656877629662959303011981172219873999608148496807198114684200273038686575476246161389640732176454963265309690870171822427286412946293610483405648831792806430924603549665594420464831783794216522941706132160924752822386424218633468190275672698981288038560064297749027619845233798871979278260100588416620989637954125884262371889082000333649173089922314364128154643305076795085881017003907756531890247610931103763579546149320793578182306635306799165459178711018036050930490613827487023263227146159549612858486839660735179432430544945375834679556893509608345165488295860838259061385192626157022691815782815394720519858713159790352441956396227610894659471922787959383678643563212183586703827369871785193997191390022129331064838932216020378119805559673862313503494675392368414340186190434704533530802201994619722524611177114158755041080914790595373668696135263171192544330752293551816217373771634146144977929710714096171722295176525575471302990969749068916081601041344136087120570820004504383601894813168447433221989469184460725850208486733284551880126803349656964732964490879446546770450881212031300123305303146752058414006672411417400966879890264042058649959206607418290500876298004745681807531537983086021184341950907786846662019685410582208081729427227123620798034195256857068007226666568825456567018801761082313414270056997661119071812344102018122795628595254451546262000431840630148712996342353757350234677293047620953032117546068396148159671744136901530036131872801633865993421576299961997571867464130329948626633423092049610717265475469384850376346906862363079651567757544671727101623708831530857082142097086618629091919409787513528620700918848227430481422252268276526878044101371040727814440741243631878808446624179868910285115317715535357596119370111033963030908705392562665256439638569459218366780159818815522321693281948168502557204954570238804933815704221830943266907746318979863359039306913599488465478108348353369158769486962861201424287444706670780962083106291063391869157238830892617346202447951755313728731686859910902340685633559721344397943402387228381477221774055389091208046091388856643011810528314888438247690289244674372058469611136600054949832304427642880540621557194730622273484995947073100332004245440024632036277555460544399465058368892416006467737903509212092962731937511342541980897012803540500548748712658842164034835727802175541552477452474633167147884466139410420915283848302229165879299724739509114635712178787333278439878823217262279447182083809915107361491643947381070716987596236473228122468132455007941618872537715207863596624819726885413557802382791212964267981504395526574149970528718834718342172181237964173639962830223830996916418873233784758804607070101720846329123204168272278343958451866354849388951829215925109194068257625751230274974813644201599532431842916584820356268410263923962636789584363264149536437681376196963627899271259683654577311724296076375684517680983263159289863501577176700727039045164807800984142030441175601220573329434461257362704457532709587993592431560985649115364129772699647833602706659147231584797751208745641567457211378443381717186983088647836260879851160822190565824322525620525591909408020731190879108542807217013316585928671340039028499768873280468532114859194374802758527708296062289569980165660109938700224027426312128673013629737069616996160854897279760280186825150718838046522029274646172394544988240898508579836897252740423026921867733847239336230358933370317941578987977318233635726265739244178120087442913130197577601201115106471064356085759421521311322087143229740712636501478133366933301812563371147677583025940733478476894209462962738560323303892220690178575213052451501141640688813955684117252698020359758100539598781960442529775894629197442432471668582551499358884928384414859705601046878096385014057592665140723965101081277794382654066955747083954027885067053100440267418138673468070935792234285617589025613065281114249616968759752184212846308491168383951787487645001263654830353446103756067136207885309342231423403694138131581133281235512869061009494194655758098757146512496465332610210230561058484458084296729624185827117469886640714954336236720465215127096161113702641145836303901010180929570192740754437483475095076619025408107536123976553155360680487174079798549280409038949319026935711324283876620626922908198603283446468847774868453984970978839061467380837464145335892651735733077119405548899149291947120388437680261210882659491705375601310035289692699085552525666922138208150326226896821927979473800554379240046402950506304798370578075570280880535677178626967808276887567820301281000162313860063319857345360043144877528667531856232922618249954921827801752474164027266705966600052052654688770205075853972741767508758483015056839879011944079951546309524356873256744863059374935677249621012928502572972407121721821525095801146690081867355374353866602449500359865304889988294416331725425071923321975317736895559732208092550305739106084696066159377703630889756899852697935774536945656474531685864786171337142592775573170764871013723855688545718360749800934963717120546411755282853271002210682538300121298363394144870616269776971834864737700650335735124113642985419755822426145180181164979973913503949419696642525075223752391481768549954366491605870439485056396362065562670951362009441243704384964814852794159189169427464600299133957031759908601076135856463221266636632623828829454002412448312792244621363560324611877300222327287377504806410166838641221657181420390610426110479997834992459786889770787139321714348124413169330603459226151523073428279319891944429657234379273643358307704366344782936319047970363194891780892086446827140612063666470389566865534304298017708739367614178120680876911819436575645341178023048649530588090204202422538906991865478644293089425965499031770618977046751355723787383847203817261534598852888774286509045090333394647709756975593318351664352741368468422596972534925527969883155045867929348318283747725063257083682180495023664454491434470748084698824178471238105295942518952960957199533590870201199508513655792776190450960829865979526521877693464219476989284952159757649585490638185873158503821733634313151342239942500120595331697518531350071479425045569268148598749376428657611128028093652405864114971581087933597675117664506451751183201624718820739138961301811910492418094236083787017104819029527461982220208194932126236826324533823279708639387994168295822737888868112996340722817571587368184883370351320352292630988035919136423022407663998648912384469396244038006758182720997070449918311927017878290878107952379547874621459625636707900467560337513167094461678296548232573594186740149997166997773494892740439898564477319010445322077043705099521484596841996911448144117019891549616765609610930328824287046494720593914531944872721820164198653966526700736280622878137141120073453168735505558686357170175472983156922369092677272662358110774578796238440779893014428875151463707810943204260430904597782753811260429483846783455312597347451962917115678886501736394252968350365086476014761507256896290655122892589652799131489677471481868274032960491391534179855482740969177947787591417165669954300445089381575652998984398023751885284153382728193674414021525210203672662993030783382425635282050948315549961841313468086694882799044128528837518626445236511830655740814435302452527243902049181048900716888433764334092188498160758315420219180583594124388134036427833652700101208513247017846343512798172889597372831402702523046943039881069021463668392404899649158430140984464728929916908066869258465426140612236037375927353103079587826920523182935347640435973881088046535331226504388695961188312758624799471848727872073921805100304607461286015290301593484330682593673172906669406636757919271886022133462824722490772805085027171285737176030146599025603584498152078513317540444044492163595218523568638648218667709198812327085075048424500736472625576381466064839105683494470742054004739695957172707490367841786480173822853936159232647415077580315686126815062100964736622444027056561712053459695166259840504602431956922082999014468334390701720364354500473755085624921519175279519338598023848878713909452184979090524251966154756275094202137460795586190871199017001420830902958522511210071310024023682632198299071210658056673371897381050057325876400992122054129912422007247678114587997508201952134372729081994085202875619196655814975220099468098680603787348987497845507778493093244882879727551231797866314809001238710125883956204505803112322388475341842715800490476251265431197882941025601318500223861769634770694126404052004727846660792854486631129692693334677000185539565399149374199528170778706898455309601430677916079649812663779074842835126855706974845738937849271894160690865657903534807523064987999049983762186480754109581074523628437080472000629236906004012526946634478889583930210406084409557115996834478864305971256392777827607578681958575576042959043537222446136553445362622394209081816940140224432719085194109693210350582566991131030684016090575850292321115168580682710319952956679887028727371244852913674208498775942598805046294075881088135360149265422346541914762168782023717858370286891944515851133617987107187814709833724973525986815428714355657333573417120125880307209856157425250981965802895133073002949967621515941822344645408529562637620804549139430172164465923499789800021035463244433969312208349533358164824115910909679264808672042629964175233598225653879471900998353715598318736639091973776385871144317936426690080903819064545647354279541279798108523537896988443519203813566463895804052747449277215244175608374855733436211676677212529253829964666721805639603681654043058385927528667884768475566696255166209890515582252215865854687636435435045911150418346995794874200329934577235669482473614703638209685745832677027794265556736506580249081017448640175353255209613942078663881992783565976967295619415275171760999238769274505622644298505110845473517840288871390497051719673285500017618844408692210376736279382707913293284749196244826927424840154106587251866721194781616457542068652479404070888630557479028487513380561846146336688484463586042216671545413242920702904387548508867992986409433592644850765208408922318998598585445055356429037393624734428703037505376787618444398428744117689380488476149405067034467132799479370343877930890465706188939338571470091618149076997354588576595275984387152197769352449038693552097575107792509432944501332221592378389345796755440359866161566041527561867352480187942710964606808463345133295472126561510960722718124713489010099734376788368696697750945102854611157456717166544434885678375888061030822243787421821362997094795530654199250117337449729374442543065613454961784181267395153948069574725307013916776397139805571234319022451691683257437747095558399658861239945230750039959201169324255284251973132669936449485688628195631392089431318876721802457127063745168495688052735586941849150243769122717593127200425776385940931324970275006692286326099795478486588108825468380230152125740659174775797718628675473229223876016935048890964264199431762281572815724417055216288736256138932813825931354028666656198263872229475964952205170445089768906760354742634711238550079316971559048838099812435694496182796731434957847032396952514382061818371535265444189150666600501406803325177067853256408930533016636446885360937685210113607695298596258079471736266144207285904090780663453701546813173990106006765311190748186057744957845546079969555008708539412834460747227539197741326108921745384394590880735282809658427579818716678742060955209812066644188852515356018513120917539385532112703063217819030361825692399404585589314183029766212945973654470527961654346733376376774500078043930009433628177287329801035456051105114317558314729645319733191170862864067608132501174931861640555721413869270293057033074229561081120360509052533296774807731903198332552533823287690100566868100745096530004604369251568050899263885232430471360031662479881723096027862825549691483126804841458834034038296034140838011791572210658682341525230300776563055721882925936339874730659819702959452779540002448503038911633339229421585630773731804854228793682758046957310379943691004725501961509871231054004415823392200286324429573403840024263092403806472144254238683144422909650235866237665355595877749703054551499624457224166062724951067121545342856455473780803368539888827049670182714348263497883020175009937113437099709743181873512610336265544774034174471306570256335400773056359758442948203622778446889814872474848181833075195849352822415979490420082951483266985445683313464776057372513209512345661724947388447926985857827565700850998206295394287321190084379001143909437675010861826072926175665588290801667116668925406836841215677615131031956237525841974665736943967922059897137831667499606172683332703424821115363923776247465843924074730028628202013014012667046898554513202286796634687775208600621072000251705086202457879894591873438625674279166223688916180497003709943693651070928059916897166878563213151720929070519437253185934217842016318331954600414333141070164896216581482677878644361833130541780779058130120767653400880031040235563178769078963889401513447859978095815309327762267302052142712157194771740604029072372875542966277700974619191442685332184483196912964161904603292985289110938651644186806320635311686319473442463945842856321654648924256456118067696417338327511799273253938685824456263615649795321135499025746765364124525677188069211892984059752609229941662447355251105943955758837679325011122525401751469146798154204672286620545481467934976155878747471528483689878998991204619114387462323743307486628320951405068424672961701549531826273631429694668868883014056904004046662966607517888605588692994077248714936338603752711279709597372127581307438482183798745231221967264645308527014611770044099657927309773557779506094899068142048485495546886010011565308203459226811086263713912319496067264046409791561948378544962514611416172021889474068359059760228928150497040384840681484619811910220714039990507022916146045430166422093891765644393513446505665115394166641482609413211676233289994412771345191467037348478374288602158624455078797582085353846746072990966910758966261825772302697025912119756914518733103834663089166619197173312229370929448126730210221832496988237399273396530638612340359061769984536624100281791236943465207817564742826941974415093767756733736333886019510998832880364865331293988571146964454559851181043473123369151782176585013409971004378504895100783083564860264115321023110567077977197947932307713393919294473785870755763589624835891957381328395141059732442312975315802852350598163512759002698504515659903963710886794363027944717561556099819788637246091127721194790808796396690244238210083205867705627784931845864271367160283315520575336103175686171024731791504212657501945648390843703681852624333592640066807659727589195647595678769332158440427567594106056042696398376763645926623008278542576095441559404694963592708881990173815359222170441530039867170598680936193021734000297207136018844796358662627707871909699186375664663272219954362707459787993592094641822787436732154220966066406523246771641463222123817972657616789137803772465190438069419051989544488004358561314747597923949699684542781193892087217160108691550632453249034223579409229934476671690250535481895076184045908555990464781148520260956145382692759470175341754049978221887975785632976327721956744067757528709618978274898994516330577100750493483526533311804687147740140871192048101195294374898307767834387203879135813325116920996696064234678925790671253444742357476534317801749757394181895323445844510344354080249346111595320943503987784749034741940627775144246663310094580033267633232622733250414838125777363220791422949285205225008944229966813081592133289994309861173214777981001325805948353531422222528891634927557762254065449536076810362585028892806475151200375164428929962496739105970011338031735550650454632876309997371066569692930559588813306107126638059853637294350377991472799982675434775217978824920083033694808384289386508781217670834360140589020048489818278150170603313972236069661777451711105745216107804471626472692847532768879023436017244523319575476321361211193009401788622812836443719388837889066764551185094782308804945097392783360802083894805510895708373326723961723402812289744680183411719729064175994445346822147466970472931634202380905985218995391206459362282773223532771563996762894593797083574832262916623101560191742941677300431451147350048542882267502881421832160306090523480317943445554104403003670422113805581524663541125725820126434415433755081009198041116091799382854001424319487261079057701573857276588200783024556715985215599879006348355461047340737848226942769947198749730193058578085173779390481379059508690600172965891533939365396047257005299232298355919687253588610127374457919353999600712691483303341813608166292542837902629090769407152254315664795062081808002156256449901506976530595199498669669201173668444439947108405332090609105121241019939189854332776864839419811164116758993467224903196165799192521126015031254475476263654649707763129683889468906078030760499750098103902444059223945278434284062578065508306195423253644609554567661302085003692754104055320896059727588833068274193521560572533246040600717096434017461337919588697202172627882964797480985272562301685019417225376376967530190113753971693508288189339473254434007108586747957592786050601964768605526672618950317969923436903753201641151331863377908777217401546234602248819604086728329767528269483479089241944165069695626444321733472097676450747543626686478043685440453350149142808082294782309649061775898876736017039493516149737760980610496598802972682849112236257017654915721225601736557926353530859518351275385573008408520097352988168358733651956948239827888583650163484710746653594680610016921646473499630873938408942911449651479303764224220569017667965882629151605903477747335706369748673799849161513458985240245896560336599507589187802224102486850746163787510972803680313419018840732276377299233206420054533612185043630389169775323046190216436207982641252141855935304475840510087709091201592165337687882567683160084168036573163858097466664604419931328208877662209811887752672763813212130769807830591709083948621867819059833941781170970895597156195628802121544913902094624176525143182491789998683576123073992212965339402318672251485020176312214023998641701852664011628978772934544416661814332023995730745195942497575046607995791191636709778104862808273429556761268747050593009575618945646476612879203190893333902889139664536699516090433144275064799418195372067444606976552027514177804368226463682556899785267423728426573000547067763696135951422057024574719945116622081200039287625767238473225200388412368312241766695375341146514657996788487029049270027705457025664392248134216768284139093312683957654482219318545102098690142833039489109220766440401910860774016885706189348738930108711458885171435830270226218574299887105000082754530229319074838043988399408457365604469801131919477684057864217334947673518829529363624740489036477266558726762663606926083343879333944439181138101642069062356018497252700722971703104920630664705496911901970618525766548671824111056395863405312363347165903702600519216557129873710918547532944180729908139727915673180230462623813276768208859223688925385680009672163896568899750459812871228166805099656592575297494270818271201590036732496328722864546292610738983683545118475707185971729532977318793364513950769854210981736600356864040714439892281969147201780484744248943766387893562359195627420097577434080117472522983513350596173517453766265390948361258500591676043442065812070844327377466744216900003025607166956486103966670475735170209777855753624577453645622092650722975605693417330852526504522857981170733032093944534354452217517821798838841425903479005159898383960414671137796383551382523068708527860448050776023709042376216441364251318710385347462620001730274233170673043741588928468773768420748547851480408628655455395525527531925610493039519176002125793609907019049654660455347334901718589052366966582262998386933477386526548370576460253682816393056882028692156974394465345008752247401877812469688593565301229114817044121807893880729357149598029402888755127977034643899719708080594939154616778962985242802062256170581768111242014022519922840029066658316877795330631374592303923724772470105046568827940617279591758353481147124126791918230884162145283759905645401523369044331588453317050102515590710014242221556584760365135812269321775963201270869769647279250277540932509521850465827303303572762570396558048478714170353404445103341667454324647061291501092352431846155323338456142758288435334204983262114306927142812875095784959923105319009602679992031643002309029432407848284299754435873790720206636270979806764817021420416591162535398534643450017233658868090729324948583454270251749819176628127084207499748632637275151029958366347357862255048764074526742287754811520806731411217194465512344692509620806486316997977423338060165632624659532527835459838795455399346908285260842686443440946275708062864059138797035133836313165717224447310096880983914886529896389417990880589699083990729229208277306814149072445228755916148735210340696887728034030062625347304738012322586956853518489515029459097803997074394771473777560106303175517892174474006951905769674652776467913938810127249788538089722870214944197692801458126344117742721328818293515362551244221728720276475488157522355678820462157851871914674042666628514712398422863934994289214743607110697822921106290458609510514638752792394231802525415105281413863238469850425289348064051935701619342230692335946462538655587818133693681650304346996817557274514235263835307259803956556382508077897170565579258153482508856221870753251454852690052903843451192088086633025347856441719202635502676606361351531797281913880005696595608420369703801649803408291755447372295823706125800256935356820350998789027688168401719150934231857096712675464677805788192437865719045920397316950750113151270993709823049062936533512849594057322581258315884073924289519513162275418464632559448102150255465182942871111908405400853002979582405867734735923085693000215708537309564740624123426301108643209408646563453844604089437870728594841880440925897387966330845469288249215399556667456176450365164031756103455842040407859921930545162492935099457261721654887244617115143176443681264990734267807641196119217324828135256895610886934069740382922831649146694500435536908014073108194393985368685712565538864715744676185698004785045307917526340662909316891076886269703751263945221914395000840763406113958448052428256714420886979609548543186516380664727288878043878712137118299447268095402013483951414157323500699481168390605219193258033902071249136681529539889099189931469841535595935655138672676490498557509608365882293614256088984129330110692358309424381060967988604934458619754097642161392836678404567426161414356391974653319422334080567571257278440876867623948732335618084621802860371417150752303040240131063577822187686702530110731915225431963294560625696834419660089908431167437174980145893498135073894049872985500824011993194873717562483133685417535160687598476737774443945044864835267008294573048897969016093233080354013464334278773417532101066797928095227265887116385940869511758414423715402569850912299476170514383582009071601985774668458608206310869074023742389803255245171181659418776133964528679216600903286155147898004078727372134197237380338947455075234446350579882643152115206382161406052038106734143597506095567566934442553951445729973680977483152428305271833895606275169816770750258050963414324189418386380430349414825231314822595258784451903665163313194418571470735935937960956181475291350983582378760145173738389181817073995675457530937692954487252975969321501972980636753996617942658648841217082606971355004980464670756386749783059742400365255219050938509488100251769105256283893721627411257955171743012798269901230031475822592835045584935353446901760411001953013434288634440954962001890040941022270000048611933034624076402448119939815978930482193129087312378656529524026493862780029929928519471443549002761308406455098578518138770614792564402151164536676879637886493516187101129437135163523141348987958730636159438716317916484737612988126498161971401017026778250774336378186297434230656573169342763030105377636633776606101336226473713639367031939649291115055638943979371075310283760173818746858210094615517156083728286747649040952986238272322289856581422238211002826667237427638555033952768574357337112833921246757647628705110213394996418537531013954826132738235589662304308563926933686948958561492426886239748240620402091642924192767352775295075619171891125785607059073280286631702467432579338491157317717687093722434869561474940389736359578446021509887556959077312142579280966605611264143989094055435056041185652401857705200262152070222894003281683305677849968867585705537827563929226945224946605262381144912329733993515642240196507791128663645879424909938112965739364399612963982548331549450454925031191235309901004156834450194392206254574759249785275939171686248882923563168274955805553684433510174208727252164260026218630153900006162154911090932655280529287971405696001997546176240572265513415398302920328746062930911185490510535904063325482042638949274872059250918784779621781532760853560599180874247418974848323834752235124136890116560779514758886498077039729810095125533279891646531237152123807988238120310470831399573964590231330641408061674823228229007020638622601642224186750940788436698786042703002365606165454881527749336695172805184462650797653034626690491961586656832440581124037319432493202831148681112697731506267045055018918495074076588597964120920307524401379828657127176074986178611443672568934842977362621346880826144145087034816222164280738360017623834429109044543310970340783977914344775695570998789742295896326301475609932854746106919661485975827189096225739123919543456984480399258458066546338392455846812503494348978864916242774830827542347838733893907534063851854240704551901837769523700126061199254881922713827832260055127144204847207220521951261117168634700931172338893050543967371490192486919124697025640832556051106563200489282461640290501832258095335590188945367532074795311335266740509318279285841410507817213455954065513141311775004184024289271759830991893190730273077777304864584810275586186108579183825950714819219175854706190173099979647043386439151696112140870589707897331027887443061982736081269246580933508164094138354645807468221978526844054557390566980199037717738980778776913035941708662342857963590180457749543620544189825105379955216045220811636742802382085106376268428195210771489166362600837411900617857441060621147685019338157894907975151854418323063604792021590296986056787874808560153146564190620628829570183020227941088259988046347338952853645301836827027221867439904215102993225608124864392313184408705042686677604999420116111695174500906938936101663876164592847831895257422400624692301888115304531980111073267165045843376602172728928258791817658780848494778687468023023205447656596355328594545366027493646106851158958015693688485005897280773538342978797372171362679964589521627749374614764057076857998290862566003292566793947833320059790269494038215731339965719068702527377131358923233767024342785788698437196253152438286233991263598984152514234243969685395054547441965453219699477543494234083292242182109480531581444720177513934235931290898721984553554954978119843254805804393882148746699431845445493472390318841006303155240270830921573457602427203410515334904387723669236818071665179120425166098846555443576146212763297591084702433924173932344255733510092382588445493445248079472800678202573837979081977329375408517965080178016263811917771054767666640621107319099341727885242510196699796517084412603855697933230633175083665039051911657434162982088809701562923589365595519692174130904807549019060737662008789300277112538505327693080496753228727275017033233884338938593364097219202487639439625324731673515707293509439702527243486519717239219586494825973743575898575637110359451940945144440187063857645378855159043824466143928734407960148509726785377562244534068633150423886691882914053848322746169085417541078571648751978497793858054349753483942850766359988802315747747655269352505600323398848854269393884513540634156814851385729024995678574769147501340190794281585782629798555981627113415765142970225728462549627217666836311174848823337136594582857356144945858069426659836107667431316098723885242648866564034152332016083252323331498561799491557892057664224654955641121184335911695971497588726726925806323600159048769650180863228013621487637587100787905258946832100317254348728774883013330284414752203690724624189974523896824567174739302812902021758750558643655861932169347700979364140639377791454871973507194586800966929232986975093652627917829445441315996538279006567906466285637601602473646261479334771678054733208348879258286191969956749302908495723836118644485559198271390322210585713912319882121423338551195568649109817252937958487359041344190621733154710718424787636902566710548209620659497665958790554061906670041994210937987921379085104835269134684340534628275890214470426680202831654827128820805919564647218644604396580811469503572953092848810597537178084367728816258359091482667441473057656644282509828990342502158782091508121802742061187456241379879263499034279174154038342245280081559942179586005482274205742569083479554867503803239030253048715864517073633836219886028018104488505626367815197052469785477548885802727847858657120434640161863343525302006083087249286565938759551915907150781266808257270449172098464428179943789254967200978440112637310955697154327578776124348822059169103493754743911671924001754257721741495526510151014085748979713563476615743554577294078710559528521809378172900029057138043693602053534257203048021719891792251196649697005587009055829630358894718490608625975078577115007904700911915041242754879000320149155027895194696952832526331472321113443095678515250192957843896025289798560286988243655089542450102239668991613215476293318477341930098853019835275984890136047458401505437301886253168419646139826066679919587047789792140819491450963995414330037447103678748515594265230526249861136196490328334816583847212446658129988585977492625268385903135605294039247014664136405371271667588724012621748772870536710634072745160857962816659831667511229110353116092433127529594409426396143747424342153218471052857488225781984006071657560243340595120199658299372676007513409954102839030450152010104319724338441537827051711805650339467449510677129561829733993737006105546743409409906367065471003465871298712843155912633170237952986014725124880238942839769931373549858651859457806918569172398502632505468228440607314145518248440216381361455064372887313190962485576955654829519813591012110569915583176526316312832576563314941513723840452234861272857140588603313554273319587028321853923464436608192105144257046025347784077804973190971024045533828410819037448247773884249776795658532134098037302677320910580809938406948297972508305373971573859146933031694328039140615175346750938794664024940211353325878129858454093300220772499333917224664046357217122378795881461051148383898273118403637891956641331498415167039099187579764327453587111581953896480512044716042217717719281543783864974919172814669350913061638511384302521641616256088870494392682992342509003059799226454120129384613701892576295170027187865433599149649484851860800815340690162818338739407350789640344109007691048176120469744044165170235031285164667392275393375447370449312485098028764883308603684964540971102760616966626218034168729167997258324445362442370197135916336510020281672553642065432130453809650095377784026273550637932059094852822905223520526572975051682286967148263834888328358689143192354805002740131106792097595982958614774452764775292200606836541185991683916352999885372247090394218350194507944561088821657412175660663452188447265740300756655450183876256977675065656111106658334156291640548344971862703036465974998136519691829284361336306045507744033192028391289686635960675421009733812763434275147974535591503341554497764022455054395756323086241454980262518300836005137409406954641103313766189587019458059310536241963670238912390653505423969018969686284002435542801915034409851138585941687249962620560870462033751711465261757500240216351302568176136272594685780256619424595217368152478220643203937187991774035252106228204765435383644615019524382010763337486420726758284191367790303319465040710345424962810404644557775339617840021957551306397379955061551493946957333302222744879535317340568538660405398993116885653980060192888739336171024983824776935796078998981339256497557747372046933593235431010539761394494667386108816917785517582749237102998652990699270014786285242869061520255746319483170859914741360647831838246845331925263817272747908732206741717153436648401243084232374964352669728327566670039651280867631704020815163126244795847664254516973586894839843133210288573419569606191679146446828457363473750847736170414988034238641868068341797217180862673619232823433444273159669991690272880160850802071277864506514981811359119958495138295050976767197565218790039344412417412502544137109259980961661201815926910618811651529523222469397384619187295642462172998171562130825207069688795018215888333678761211316187456550061301663110965466791147404200390253450461385997176650588218894960734477987064662835496741742457384157839729736902459655599819750347890683276539121394431866544366866397355602735830620665510645245857329324347059303180882068102772679638321585499605977378373793757076232876410437930459683550711339287914326911766715628101317040103124545797498045103839568140296828726213666889439863666919032249869543085588398620614388630608408917965508816177419513150191238607075516201933232402489997863089545723529663721453395866473095756893156839872755910968272217203190728136003568873016883153337441221759540162713419916620619445193994320857300605525808075437831512780544809556128041574956765415212165015739643354706783841529675172725231270797348328361425297313852117404730552255355424771789098390846113806841513194218209113894920201000006654947565814743142599167457262857008728767251476795625603912981062229533760850743996233927299465896240004728117008738353303432011528752937836349570533548636366247763744326841623324596614208234971970178366358078791925351444126621138521741061591130647843452450076818491677991701320981262403835114876253125454872772333386861740214928003010593577353614214345319198874917094609263656189944235655771139579903162395934062330811883077989290749308929359543330699712180218310838482566523636877407347765547227756393474735599935003381971928546097587326674609778041465622339695091533458339877799021424251178004360417109003418718500924551733060428334337070473283149707806993500662360302979636199614304529726382085821592840245870258998436809924367757482785444534159936226133821488522719564318461432539201432493991899626020740614586507265851478182192604970034215234979511360977551076435077033770670469652839206917988108423965553803628200532939862107236088349142112517778881043522479327636414454587707484230349424948458676032929843691200401913548453526174302647577016487830047160866986627663859781900475632242912849326266905523990301868926961520375369814657176372836146812195554633506730398355226015972892681867971371134594036206459585360279113497509636345492419845603549520839371398427497046269761330930940578718296845558145795290871475322767232632972558153975320924101651175430104902011814733116337259307675981690842131491932517743149106521273481086557984693957947738568414136035795351364506615369758465503644344007676297196582072768637322646821351813990465143782168077603944566371906632138328400514880327989255240758783559062150817763139856504119627915295863454805956805685571397542467221334672516937040967294874948586193432788351071797984965688407597806071061436452059744551788163749762761153276754837738023539141333200676386612134600372459995316188517348127960710779490316225965126300820354900032528141354559872322967584570261017638930676288101061900570887129459267256467901629276669818102895175187508153868565102560501372222146458822412670149774352154092814635763882310709586760480050535386840832688806338277805730768436073066014582691894269366587501016920117049915763048344559442035345830302047612933462990819054606920213010705651579336188474410423060375965892402230699908961912251937134141894757793565043497977748652916458445083575344784113481922594463443288903003059746325041952109915228349690538312210119715048813194335367435948696430991333525369718187364184801063389680313898080149990415805706414371374525805187644482618591449572196494223170530354605150377530505184343198755384081236412103290483383401602802224676090375643010281313074803206760742744672614751103222022897725590193873845335721132715040638949316352246808404860523406044046935414119950875953359989970682648041057922856313378697076351535288777134051538306401425740557818908988397307859632057649144809231612826687379912028566366163548507877080869392516985324840949638304564252312355376252936645728429299668141030865722219807995249084832422202709768524670255021808597847224205146091377512892104574351143824032840860771187992634595976276311310809959873635843563188188623015691198196056073096912592865056701804053219146529609898960240580465576379763090012115194596514986934353753699060372653877971848508730532716182919352037963555833086863966366015425483533301809236798267108125997953617748341984756209476149635446249666743029308732452844949092962836985073990525162851090619660925821595815967621792937117200754324778991671460863712396697649136126507103610077562668196714541312317376795113047023769424490969152560889910712712191304541728826688104027663658563110953725563229181009639072769499578944593115069787900333291684854701113105228112059473370917898477734343200711957430039203402374711418952499766221732560835338579949813726610684399073529310605498302965528753034295584491073334668250670860593800661167865883164907545311919342984409872372278949278976937352459483106337573602101233137520313159471740305231126697113619873799986015247894530362138197316698229975833926812031960330693809360016629473427595948849769239542454967468665927338099295485876410951101531406349993591258782154122969606884525922365821416697520065943937325204192884899132212389698306506996316533183553973797300326924223055286964930601038626941442173387588524073008669598656548131928409705199981533346301771564476356131218070234255809359923946806638756165822424679427943403627159812989494296747661562325688269093719561889208435921175581284853635759718639225814251500243923032709784549414923932888356970763833627428050906405424282412257406221629860918068094334129199393031879674389251100580700979639630580064438479598085783588635864208899359141092761747634487036846241478062013872733289422353458946246509949558116712836272982545198263410605747522806771823934813011724780245398991958773891686910456637239202708162588233569421452131487470141530795451396431283916363316830953428851507557570224659436427410228289990308598007593986852597924254994958021867387062347748461288165723099757510197191622377118212897431308233427299470801855032289979437375480587969744994036664999199296581885254306732180426366634394500060505594263150591216494609455998822961849040415683330585076293606652275089323795228431892672032207548961483565563506594599065962344643145463158889210840792076259321816737883634525821681447957331750967774083743194050732250182902663269102503266818260300628691626668748108767263983178823961575860046518277316128796592211984748609603809387617459073144593207479242329276157511932178451291600190892134267150281452363295563639953941802428977450871005875802680124420191876643200447116233366731050784039520614047730368561987241504312086921386645602955026809094583802366001203913342855201480948458946808103721677930574997168012756629148434507497216436416017217784830127602483702026181445689298300107993233041160250156211382437894654796492197277600681324332121567709509291959847849490026131346257751282979253328407843290601013839144679922520829695693179780270311576320240560437288903066457806702490781737211017601861433615415326796141160403947653653965310566290473779899507171893790196032996074467662173623778292941036487530362038083399115945278613836630792944829846215936018942122720600071555916272041297769465904158831296477291785671026906526822897768579749829319768889073129083255801160147445576550096163727229249703046456287936607541432789626580985480805128534359711106964067908360704731445947704581443350584111129962637519252269348083155713153736324808582982953066279499782203891727714855946694508483201748535523356048473173427225090289162643815230115597399120985740790836369954667128032893889196069806203827434828980530764084612569063883798728033768684478063527467627370113341588558386532846610119319791223573207399498778019616399113283718794460786519877777819787828695442046510664701835021384945951135113317885689905523731816422889167105259537266825619582691517736500205233217061701617782385515737386188248005637219081104428646468306653432835553093998665333161985602452996864444684007589645658872935295357605542073438506903456771679064299214219752827234561862768395682326932379712885278755566851538824142530241196635215384950880506491989943003715120456873980204067521834629098897339256198927182007531498466524163932106401738192717678724835625412821863545729928434051593242743532565736646721581888061225673341016316421260698304390804191012278276506002648348329547478545581053341985012642331942738414983198270929434952307799407122434685890887115256166360603591962175813508867207386840653592495921182158260823577082694675128670764837162262276627333081812429709549197202539199487214180025922318202804963583869157360357088941453299715828009571131619589369161191600568678244261690762790124910110979140796840326918158586721617680912310759692056421415558713980811353685047698362142719147975486414622887856047846808931985900483651918207056844894658056857240769306376953457994321379579975765971609671978944370671535600793326797032909035000656484994900718124821487405503002777401931031919282082119953594235664355712280638620935157819273245493193397513139347749277130217498930223600180913197034663607589601464885342284623646925507050885524355707645716344434227284355631000531289920338884494107129769801851012946121725975427387995257669704125401077446718869789152204451591598444361303952600136557037559414702711761065760502392142051216964601646055523393716223731991167185036591454464638272100581932293147265699480161700952053548101356733259310791836460500788030020597633659933659246515587015922343089514570366902588496079700751952758710417139649613181818331042278056527507243292045019851754593576813056853859259022033913961571090243975305920845858183642924289939763408258697864723339533393841659747955058654394746211870283845476777912507302474925926925169151039139014408352272280107683268433036919882095129522153096723008131218670583721090240268433400792937714193071762547210797176451391719533247514684700864856604702806546517244413930749367432677330636305718447801762565968793253052385228420168662273548043309501909371775252813306316109190021444886622361651887104813139624610584188492654595278613393500382974108984949524245296189444669494692341581864976626545813715846869463543699675188528142600815173931083288277628214983394031776693452546365095188611000917049715159223580320068004913404715779743862612223530273699028166816525299587664711195533093769322860289470258682627345559336105051732462401212028688710221873845408495312767915466033361869581853285679903825430645601152934915352837155229717209809827370438329644017006514304629161040774907839164559119179177600970840067617786667305324458105142862463444114609446638977923740979738107336267277400966929639085004824111626597863882653458291705611534762939812165923922731960881615236650136621760590759490803312242095503282203207138768132366127443110663605013845316041943513279638127834172916358080686280505636297840947521468201571391431106500669692141446192713799067809525089177735838041643363337549167136624105436420945027328111436433703474694070390326415517908464640545413404937105067839703497811237960876873287870278435810869097976457563894877447403432870072890483292620846243792263603125479866621889681141182504706913574397806775513223916714314975358593045917651441631989756566071964228047375365099403957676758000400817642191649227302800288890708371721247906598757610913707348058230339847140662628759215612456780787898147163651851156936823202095223816558026414850928964339340910922450437906853230460071815726365940180129265581293887696344027127858402779284095678052064342181773283882553878711391651279897291578769431015066522626953102132015494868000765965843736018369196116073343603232861461532801374546684022008682807013703418976021796991904075846002664680754666343677658146889876091181967600735445694590278612358062975155672220424062506621835355385177363218709524391305760526151725560063407580523882730148854934726151848423707965979166996927360020620240367844266673201972897055264230846598533047694503072551828548611760041226119128775348309382822811692344788555487410485899747232619478068300834695995451231446645996262271816276015402951082547870832469718784963782540927823468137061883826994426192258037720490732190462433866122631675137777895380868799916372631782767159657738944853615755880820982712757355320747272774738534130531722725985753736398285529586834280195620448567224116507619404532034292560326683268902322104911749747399541550747285927951900507458537935173552688106952224394362902049078952317212701384251635741732244857470957967301262227331103012283282282114515918795871355552456383626767035855207030360339068674705025548490095799590675862769254584203345537921763145987313477679991282819000442953240165685084330559225101570297470463167860805710557077736423719707476536017533911729621982389775260729921526383327165637033972243784956388283950721772765560014792918305208902179463239369632350791438701493354117141455184974835773570408794727575504846010095531037851400811788419153744911860134635881145223511418170249170355913845134391657095951960002352534975716340588498735940216670256813744965571337828001255136606026002006086592209845398764096436266040733815494815637493032243246021429539971588939099331262735712195009517585844315653313367186981665694491043819815901644347310815420561170930626137568674373283576591997209665539588971862050936217788677256905927524991180632089512351187535590262893315059546878624270882709603256010058464366176500698546922283681324035436603277553170194692541230506489080993169572647563023719319979621141002605206102735558023924849599655986805084515021680753068557624739089488292394187754428379390207442467627347244377003198720554892371794392554527066418405360374113060638702315181542759420339327881108018028265763092467267462638943620933860963588021364314553313484980584750643029615962155766734228644021121429644309468885234735708282381470645913566504479288995222244268831482490683363339926789517669081408357010831003760214070470588110162927746867881701697061956198502063153259593707716697004136695247107421116803873934170180183974317502706275987310994910338985445771435958313224337871345621309834431509007102642600862329304769204142353441629963461911426366702027285159165082622824445256558645255050197977930405562557771744505380335839779326969375835099750756309906033406964294250509002570342972232363524680621139594081689837329235237059024370521914346177661057898309823222141262674125892527472191768573705436835748223183521331222426211446801571359457200966139261485678674349262636250567740644518799615896587043220063169745505608993395503435668824070460008087403578747654621459404235677780151600931112694185319534283368742678088942817892325750400757825138151169261175784264808173039965972119649837193974502227495274026256528957363567743715260022480228633282604481765359169252374230741893535642195037632631368423463668518051633217687938902625909854107706634076728472235307131347502973596523282313400294440845260665797554105835674749151645292342686407311229918850256591574173412728859169753106486819037865208234055468533691811692672244699126227561799524502883594558755891778653482834362350672398561618818222349102469421256727308627147173415352398983093016098213084561751631304772148764411014503925438904498146363047756220659793237668711628018580030963754144826428625003800168188069416948548097300395345091095416830883472499163854724987734105626510213647856837997373226112326279147089817507790670693794951637037829273254779682681033401669054770999977928647763778228780926048294733373127424546942402163180124047190371783364356345658356241451191597477884496418000947560617037650382311960641812276418941215227856535556803426732656258545994456278058172768968812675906749614890362305340635643374408687599439907218339745404144277502644156316874295471812376500609700772208144179849554580593467345367965045328929164382361442001237616099523053683799645710987770241406973781602497446014955398467172133359392977963508087651525994827701353461624031315207607815106707467723093670978227132934072125476643890979382793207906835112476102340172856205839395713331169687588212577569381656284101076109173190316992986615319188709502698314699082626708165529386099919198879201252890670819118821700368906927460544063861178583263225401211750353897348025364253000815359309893801564314975312752609037972006301523329438558661276017087898621541935126268969736278147497211152719428565178030211434139773221500917814379786499706444388990887141391545499909937614681121767583461297689344734589003558806977349001806293018203174867167711585121654528148743039173615321137946043796669384713156915788166251254426585840699003447747758509020294129621283588858671562433420706631695050295199917698290197742979510911849964957420870631700195535510992590727375048633572420563531055409213525237241974214186640628685531152743298743331856965315177775685538802642551935497497116934373572534209574416916705380437775127026018554528542374127476457137826828055081253232110149675487599898189061126072225762051532167892152764957687257974144595166990534079498882942320638432223882534641487295463580677902765036417437819401294649944398661382786602970194176577858835179881021983388902414222863551274709408105432651783507374126015378902287181056033489277548906585582641892507428589410648450581013697446146476529770250566361580652528864064021852671291840723958185520943296422748303306115219954782552131240994229733809932958507203340244262901054894333971072540057638114064311278983866580116149864855013686645021894264387411330984793568572936309174705885895074070715590792935859476694746785068745665390941288897530829175241288362428322855593864788418509660019601066179469991817932333367440701666797538881581702043243243416563320355721293034315850182872854088409041537039979651415946726644489291352647954524186411291436400092672531462218476743086652793198390350506596621899474236484987323712225106005311144894583212659806490043602505782611189712998547656845013714331384622018978736408644825702681469221179706859554708925429779821306829162722492905989039507483801882227095702993385902109234329540911859478328605788143224558962096027893222247984697580623983834668176697057503957749566312060935279826774125606678080781302598388517922483508116846046151448652183321004881478325527143668944266159576722946299446832947480659085168344622586452648613818700332851947477102322527052581020767058931579837298693071052389442305606318347552300474540653546221774967643155508095760872360150834150166460715040142744550651536506583865583611034233831445401860136896587289665095215397699364233701702603373774711129612726806991896878223013947252890726709139938018500839003860818624330392194077615953300744653493463065102241172800335143686284109103435786818657905009975793881694371740455181834619182698568877546550938669274593988644357142899342706676265998747038860785292277516278330994014603843876687135529762972540591393008393675422562607555307870656752169772123147951405408919347642142263531134310605818057009554509074819256143784424188373909620064160145879059129974135758997157055020625184680827661589445946279918534962689494254588725079606515995380592010806101106689224150794648973069100811150655167785311105808715444644238674794237088358336740364466916325986822228548662128834205038676924327805214255982318181023525051875728550781919929838641909159726264045281374401828613796959851244128285252660167034619320595381738370602584264884940089472029329016809211843749666755461390243993349635297721710185529025022364669694120870464895986858667229504926715759384162741756058116595060531426050851673173762888491287846282386919592497281636746228753282407885042208550655545881453196265058805064077482232348080958917028935121165662930942976448957139237496558743684643293959520533490001744842502325149270426191765288291217586385670658793351351639787344611404806992942128150720946726637275503256190077663908775541061232828149712577485815424585625896259390113000853409376032909089960399250121997643246205066022178868894929804026811360259313495237477746171004474434200054365924004059068818778875152711028931354385942010876813254140947946071121573258290564869706867797980167856326314143981939222777890860603794152369413008345849069101828617511287312519077875320435234292867739309742206346190191660939095522272506220952581690928895367677518891138010811012913898763922939929970398211965055472384811213501920042352240086922242412354175276817522463144775442348717531498536758248070727883297982093495354351120844224795999026714732056130007499050011906440058689424293723671380126783543628979309432885329271671690683698104854916075546372295244661093080772958236339734875461197952137793648269360990290712657957204364365859282178163070200971717116448396764523373831432122739642788752178732736814737909726833957249375647510276359104273126419350105144464267916689155878229835482287998873777514373006313794709226095340014944159483463191058628021427744147300284360941324730166220773627074178565915310432289045622045109946692498537850044373827974322936305214619946482967518541946362768442537393976621709254055584456088958207483736364013282534244732623128688241296486206720648286518906736715720477228322240599834733439853981999116088294386805504324499600612190872064227464921383078428472770194097922894478694945395208397033675901553076669209471369531508617424523597057741918669164201228962920121869496871914473304691439208030458525687399037336499774935302096962921458911593188582335594429774589679006825052804040015251111306252724097109215404783419937973779038619236486673777111762433104822117383235289190003455415663477298470444849859237799727782037861943065998804703471489673473603379831362955698896261715342271642115149869791059792470083193947927444287917134425755181634094293971871242218356351094090670916656598492907363441778313161180022632107369229618063932110329537050239300997154142375930256230134063500152860644870158145662721795145845099142445481657929761181674036850291978264904213392461364364951062738998206663923091177284820749333804704996345691511339511717081577178467806445008017887228632227700113522714226379678006215902596555886582145031566561877684300155691324351651813845289343066613777839908678593900823240184167503493712299550687464407693781241028352127663411476466663781586407635741338531114114239818687960806505026600657311445965389526480080467971378070824347470489645732462581023990663362417461481337121671769629610606375281567864221907458900997746441464228136767585243434598441061029173340483798716656147358798990465977928120332373182926515667097764108477760113996990853810603922902533280542464095783076781303772800845508617135249915404776092245442253305968715788917900961746815845955491504169855558623986151399825302423541534224732697257344714755529422077108125812913395401854766243165126115336950300038776915227826387419760679030659209781164089368579565651077895320313663699182006304806421923109405222866607097609689302516492546072439659093308382219743344898735327968667243292060582094127744230087214755596432161728723019363648813648757555147895511636822148384890373660285662074003991783196816357135132442129717239118119758127382495255344442495713374160336841445390345656526191735303309527242117164511265215101909202013135664561073562886240000217335804897031050262959397899575666675075216094990473463477159732908479321947067656770425325144148104569337058421962094248780241995864965700630095798653780152710341657790001924106736895909566915768787649940675205048862680220830576767886663626832767644224517436413933080842179081618016214712685935622479495253816833637392178615800152260645914527588517503218295257278431343693718928874510959277201704514762482348564725225366955256734899004251718523457180259016566061891571124842456387749444831592733916844128374509271617322073459913297042935867359350693594194437778654496895527806373396696387667790072404346216063016619405823494818544019660116507886442385635071091878128434578854418675202278657798464040050477829888965648231595113597737238669894267641993723597970891655531960577584473144751368557587274614356162344532027628149258753219977135476585347412678191578108359605038016132528530784245366119573926264712207547616704266674344750578074570481241854822726061331050241387676948681833306426712066337240904055825445463565719175516653607412097012477650146689070138554646744331501750265172863144809398387795397200754488170288398569185346250752071745782974455215070588288051492758118265499604666462475908902747557619810732780450600491393506926012890389792238306718457300347221249772818635968642949355981468096688905935112459906958796333474571657527356120245808207677109845243548094541256875541343874971674218034933210960417711548663725898942712778061225764785142825844881228473330638054603753967651086410962156539895349014230858735864850582188224522630113404470722488467056201114201364637402034601973047982206019867685450952496565397725293720037289387573921101783032980101418584675789848988811761979876562137824879941966031236410229679799523942890937564188662348482075739550130770558993554293442840365051245572256050079356158345007894366982410932551041774809909724996542548040118069355889591404208953365299966975733567228727500295442009904345954822550001376446680042635001009863314721094543506677892197461517001008521417865364733127463165289502239924447863676600157575163789066077546997364885418107271188249449878098711406029044935448613435795312106532541096844296577727722035901748698374197022814741435423152782173348026064266269548379762567524949117895377337504389974938433964177992344000997908815803043319444882595646326006934883187823140965798073848004145902827844197340794820268441636797777154361469455399108824908847943729863341054386541445222416676706288282799509724387796936520450251806118766124215262626903512722737100302863662231145727959847742914101410658622082931558303521275599751309358658389790524214941787865962867673046285086057911406098444231593528147841773105100024415462939779468348770194003565593715948080606314158861507696387692325914040524965030561110365714080936734479337713629037766911057442181126763689576835897323329309864406782693544726101309251519315709173508302245322881087175105981161308873839805898051890671102300801695345924198283927936804956321500559517176051186255351397618471576532994694949277087532154051532768637137428517713342387328069365679410056544870097551197078429760359874689047489826976458422863997997077727621831842962286483702730874936059783081346486011522899992874997375498030410650719719199703329277118489902417622327096500546811692739994810275488839177380862721610385418815801215086298609015055279396039758090446267117001416468325574606413307863754672478024386491977655418091670787545882573465102422007266191671074400515165343399001190679106860270207891801855722100078322657922135591588283038020189660141176691919102220766658184610382911892258423118036284230459313797865507486687294162741451373614199328936464718457402123315245732849654755661910935052892660842496957974998268787524863481263388275466535499727537333001023212220405612296764095861035107170593614723560335647911761287818053130801981168173771679971461635754299950207822854214112907785947394640038809891559090537149320411469608882520433283697772262206132252490441676901023044076826404151839941907938699882074975245504685728475048358176712035596353673128287501046360283061275782930730720532722387034615727500401883817138405053734506220314152293861819441340227492526053663325301936502739231410271863388651184431948853951470066170893105186980286203034773343361349650174378683343403608489841338638068230861694834906835231378393556526169625408093390781497840744728454545089666948678146603328160352123900939243286613980253022641634587021012724394115999515756995093900417519148668877868215647418615027372676994956358899368766245993959227198907162920980673557100638311747658181286402189714133928952677579320672817389819379650099339188884443434119381751827914894161059620656294150692395190723022837016005874450123640201846840849899113146450136610767120740585362707529001142852181217970530501292510558914206322293911432859505586000870715954387701369776830112920490875352811125458599419207497594375357304216542461666449060821805979610840272620750291808135287331655192151249704110693131141710542077201791994701491431927309370124380025550240752369935634005083818711030489902426171529298513097357550766992607898519482247009230222864098822848996341954110807641615069157491651421798250146565955663595447076873895240570012315357575319358769683636545502400333316253271764661534228244916191175387533213189096222593478056141680694005992103855981151476014373233505924819109887036886964223134496808978994527702889741752146136544123242748601499417332896466615440487213947518762195586231775678972402885585388932292622897807387870843163832568979313016518751993275897345586365334918466311008616517364470989521915643091686635674388011755278740448075264906051041369768877373381646653136558211993995684247849699812936037909913670180352145640044613050612199608382950024927816392004548766316694169655579582278219564627489695749631273349335107733936176318298009804238048190228592991840768424805764013552472037967604915990108914600504223168385897476066598957900030594765015891915671920792632559887764922692847383801766909384823395370413097585197735539369353145605303788175822905548485086493624259639593257890820037929433951985580795182905576713328575615595169224068709993012242291161075438479157793337574389654166065634947064747082249927117716165581223740632786225126059279595660218896918211575993861649016428018810430162301429277404955968414863513955651129391885418807014401366021111567200270831745996618514506809354285155998510682562524064951347770379848910432633396994743212339425689721557312704919542772359334383349385862976059858725162979453999891094673424554388829931304158668808463963344475147960770170293082071674845428913848526517008550908214253518937498858185585813124014299371540146559352128559616995934687245693022638355574120355438344873754371107446376462900453042532494588777817741861768291306975317219266379457972477559920502193989350972257534699059391303690790234754779825514993102016932903119411446751211966601588582664575189316529005901935240705102291889855191970898591804848098686882847934918621927011840018032443475115100188326494395063522772852916064619107876881926469710747664353225447677120601672268358064300585637991309100061220196382974348845922664485662863654023544388522507656622585167079143009376642102631776202661474912474279946456809763836596112682326750729284073366837607387057422124876175204184869821196878808646091636717355059969998848551522742805362701182064037088781575892205444571864588229972556729826616658888683660755982185344338717396558083659501589118956143570298519719736830222777429604435677052087972532810323506531615084380258474985428278513741619481691228226131077842880816550035584287457664162063583068439967935951616608732782841316853479115079635924341447881433415028338440124596053202132523191237664710817068738812113545584752234862060553023538646615432576440938379148565973188739140413535689415183382237411903972036379490497731433302413020276564234006286637321606943144558266597260995267144204868222929739545196861260583889832911149003440975752015858437056197011013041423053608679927532182287666590704550291437885004839401233577763993242391157733855905991291435284305730595299134874482530315041483291805646830398861832904290799512141150801065880606917150674610222627639069269966463982971872494635452276655212807348153353822559677467624042981365091824475755597522623664431912482178177295596273531817779952010047315247204490693146302061703775078428419471798547962823754962665558614767657658114999083336873213020879371490653969955829269549196958280255074989850545373439605816016727692064364121720542936863884446841176571087298594425195622860949881147346365666695249870090709772555393555872812893419463900460280625742030072522610264922049712870358553956694419465740308023625309384459949294605050686882495793238598401620378949032528195772780025190024549958698956713265007617994013019750836137471845738692986986205445081838974527650680120818920522375136926603398169575735696110314327825349624508941312745569134883166108020870927800297803488364259291229967069724036901084815183276992868336347667514474090167207266700355732806255798844221977837479781451872033904065161852139682246313431596190136143480764421716597174322603370577678586739508807099640701769126005476492951357421294513756502813640609718194227069101842459512954786363420646372302838661601990849781800130435399891764803928689871697759035584240224453488547907454559875009957465914704476974801527589770152027613114823890933474731054680085340313586497350001395721724934412997556917134200709326288400706849801170540855809792762405712999430825617758581493560469180398426024325234198315126102714307079215866470857363816961110396550946398325342484256875295942443343171852786910484328346153323761843853565074081631776780240667672091262265768163259867706222165383773570133341422707332311446622380252460153793751072314918480859494222959084655973455362245311134205661763271678633702644080577022137375908234593982206304721954319663613942757821848314105020223496700154051196722086171473891172174143285899658259060506052543507226191587267664738466353916458367215524921097734248423849700402780990550727857569342664926940743501726688834880858407155670013350361908782372033593292610440594054934609536138277491309028960923829818492986346921924900729869452986187417275785525352002953906712160306852676628290916267780620445700263691779770680772475421310772699891285013536086836417673999302971467875772903037254258197906683440378714625691548965716384801748207710707291933398682182732408784383902795697714521016539298613276451813401339098523795898066170086832273891644901200725933747789715490348772180837293051279570978730903726839926975140927257612229761785605178375120955877407961306316601735994497950939040669795427124745582255751415097061470650433058189734232188426858092292266533034578598793553651085291812055305146622682215855914607123224363600563193030476479899428331216145161016693180241372461656404220853290053275634172745938606286404427296914925326347602405605641441492165291876371807516584998027086162970419389927956257308876069526780740738736926129299958705174581286387897704649496882008365458623074694816892575636763803683843172385291562242804170743438159184804420585745714388473340465322566311817324898050543684420827915347495330036701912252919692217225433684372135492595869366112246494828285664741874026643947763163928086912223008245046666747589278958751358454929279313766398460356044805691240773527673740989377797135943039214926706478489902657212669668656978734186212308093066306034386157176216505435224720368989733869779133642725090067580481687228070209960121044082468848642869043703031551889463575024978674064660790761391730698098549568671855398178062000776425506227728058769150424949630918491571390993137097135311746588873801783228484912918748643243608049961292618444040826173537737667465983962518207074967313905650152058710342948053452084758443594735898484224978781929952989512872072848796665451390547036225158631512203060710669807351711707609729218281123564185720419561935028249338916454648832727276864508692821253747640068274883463835383414599437776479869766412119286404488542200336672311987689933196350041864301661931926891651540183480613247365516628372496939673342219744325336710173989115307955113151255341288434321713532821317268827547530680650412189168738981527270910524619474721521767680429190046453475054187679148136274594681496470035573860061368902338207041042742674331965511058436513751959609598244884896001352074479977325859358238870423418028855116687748587068077480521365519764250750027312480710210047781850625000700316697920560223708002952489159178134440015907219707540703790738158995620385326098758509422967087015068253932511155728037683833085066149984644402030316961941133836071839098144957896638781096547021144902264637711515197420512439302893388452469162437159610736972838546033733089209828956889635766486739139274989041993215221429231341862210182309146383799726012671145209262211131404343492391406664212628068892601843959735240201317332817362467816576153585676423857179574804886812580993157437825398518309474643993662480658230622591934643466567468691277872185398015475931587298783681251408659888724445737837242201201899484608024314002350953705752042884678280741196943339129912708826191049557549780814358217331928315944077594283262882692227706320176053236844664677578306981783160408431520854015484130677668030695636799232478798964947774634260548811085266440750423379343125158349800107441672099967283644656601848932966430364229582110066758833405254862027068611277284148860590363553742622747264848584462085574041354971267731949975659878160372303929159767148498429061317824912654613257225595932164146641194578483732460772131915447006387153667636648563149019374059727367096656362781738894460037966927063793445083790940114061029317577305387692742328658454136212225922316697771670738002533867922766920628096504544646083448053947236031833325232361203148517821435372685900441380520312014930808230855172566665993683608759577106042738813784518656458130570253927564760919172372492062657618763509027396826952986790447156131201575929417593902616599509808252714047406355095113008082252536452696218419197041632132426429978608194617032622570110275168764399975084207961743466292642237536280285063186635732994620870966302501448040250131420722436670533980194753177795867256055676492550880770204100644133179397870966028869937310043524749844338591468405467542316818961814234650768779753501500221778198832455203275395355636036626281424910456029515044179123399636511193787095829427053049819437647716954444801191500638044299290749731885114027228117930466601415765574072894227116363045447666343396675183112308140071357492392849471591674461460488381738318621882730894904776456450285370747615843894565454587831604258449725714687904348428155574115986214482283387379705251054868525230603757540525313634399948160787610186010113147107978056452404856339245089330911846081133714492415420745283995500204161420389678035138832132193568139870843005224611080888809064873932087790404306823818864966585145791448117638827372519816420517782058991872925899333988248124454254756574687302407418463807023667285783326789330125301278655859268893002297455000941399773070835849948843634180834533556856691914648546270393091359410353415372185173129594147277912176614474439688332561993353579837050146651850432489841602249733477414080818244627924692485020672928410590792897230518133361936308794350012305222156089202946716060436963544297041646996728618803020962677435158736154180030042718234150672920731215255896005114084753938577111975967517737430163902201842692860955254328551466616413740667481908559710853468621656288862105822913917271717768887845468615629495030255296213722120959388249794015916532306906824598670266699069362532292742111026396199484411717406537855133485409932443412152904295409241407884430367037021076608437053725226413502684668748769860187337001941361975027022070982010883020860185759900177143815006916058253425110291935881171867087973176452495245860235777700391622935004940125280788114420868968114829627398683748686698795484507694384377682178455221788356193402333260866357977321044137536561148432954922093951038748017211850609489053052469711654033139864150325806326299145780424336500721382258555753471630395440011856285400426780344249295979642626819771132175499309938520208401306012357659405357160292044969369232315466431210573490221997797591816481278965715896443996641269644944206704640051319901367697946458247602912166304183031786294821405637674200756788901614669340997253951281389291282077313724947865953407453942598904364820529781393667972369119030911102600562206498554011642494415732984840282022416342400416375923941134872530257632645372848221046383839377864240328327878512042755703523460633640395485677604889910035999826481724913038006425816277134041899246334239723561744323647249066291904020455659640362836966785539859624522097918783721646205976091791348290678315098091487182764875028815200308035158259655379669911260077348105527717739294122051093514894749527944487815067175596052475853137806550712930928704893627924492257197674347360080188390376835072256349380761309763664452597196136248136267922771239990979481576035938467341772221645942746102987332061373017641135380378284467334677666251479136850964187958502845502007829539707534064567362116886223623174371464321016190168145098908001327670857313025734938419237908649918098998118641241519081346221325453099271388274699078371612869620544697801070316970913463215983384936046373995238290867634306393949195597298832176841509859921422214292068592371130818512800522211195766379096850080866378248945142265518669466809727426768289829517346695325414550614733019953905133026016774059351199841082100332481038953748076780436017019909986169323202678841684847143093285625995031905459186030958174619252678169197952264827483772729773537898903663548253764706606312215000733934992487969914099534998379866561916831886098983728778533455413104680683000020430629768527471742963164197934597983893320744495003786133398632919162040499517147989102165002237397061559547966495227567386529124314597515126643305742105288776085748963791123647304305639079805553472007037316816345141663186185941949190739782512927413723387144797985652222375594160467016774875907372519056851469395991686328184499578446561018583681248494412321353559976981022414423621070182618805821209298779209122498262178352245790884883588507195016382617747596399750805519894623695306356162004627396080884174571092871125884540163043997613551019777978165080045719296161132951355802442564681543747188613916892762048337165761009332969626173170907191066720910334686286698303630323388734310044475609153232598840533507916257316295838519104597363969390252893212591828996264523486835902623503588237571226100397926020637583919175564123044407439120023385801336785336241462831419895999350851648877835704644495033127890997390223883278548453245600753164835754631634640836762293146707024205339868454480153179923961693314624592195761031000955111620358486997113737319001750533550798788388574209215457833587045151363819540149341038506855096968677771674998597622012142745368342822650212655771815011954600698001205412806123805227704179312433660252700879313702824289500361914375596477571614555491261210989032547844115424117256591319661900414919751941986504508703547070273287210904269475034359761695484115173164651065267555662740557385767749693760503972921324290797208941885043023575554679566644843538343463719419123887728814406044281923767609363170363867085862242024731249068293916466674664487450764853251510220390657011782585540091946397896876277192115376478087058548354707481569769407449532674627433686527269384268364089666555756518986713893923161414170455189629560992318053509247890354564280742188153914075841264186044228156730245594254980336636350851878473326189797163725435324466062985886292133166057074077861242751364637634794808229844824148764624597307606011141017498396127181174613083573232714901121959701598101110244204582562134258133242089180056936180163286841079449913644333944188863517598405758451596127268418528258872809945943784576132425758784705374738082696651074575832262123191986096248236263959995270100829444871609758809507800323586149139850424030938952754958644798243982111247323691002994351233911790199578842443837759096630908318679735356679521646294911977975783740678179026866942773334404721492214748773437529583122348829820692428123486229681613382944020072403114009780045744547715440552783193354807852776723350770933727851608235706491226307911842947412393164234729973284282362464257537126655428058659175460573001130909145439690438988165490670398750868030743792186879749211900054793942811924469325155925801384910249526269662738341900447212422358962025962228638264205672530577862126332375997054421786088213077398083934808603041677071718951353446830428139463437876596163908531625499292170998502535602209758823215490400381311855941608562559369174183590659825239454024660296277621901853741296843418574216504486347389709828948520352043911458244023989399557296048350572606402374779847470891920242250764850368501826652055838619860657247946799966562882110744028718220200093954852094613550441082553214638935608757653654573524030817445502429409742483419314359722573097445200869794214052265795921206665736852639967404269289941680196929611005390819347543643748837277333974307895926488140533140154185018999960451336969515025682261645637615216964492133751110243640370704620195449072310929800364377164069053768031761101784420092664586464512933129055346892812237942640380282660884787640315232022912106773511007860597814629005519680242019086236466894858296461672664764990857333364231056468309856979191607463246349058862215227186318430581357415193090269667725124845590829707990122170903691906055769163224743907913618113140626573420753550174505459176370994422347468648457919284398368718937987076983702313924568243179958443153530548900974381803017739741765560619971300633607918875013621275363368814584543700110986558607089143459808304035642942624318231513722428412395867550292060193988085688175645516284291881967005096603705322647698726480567004577193254685482621606326209691415906513150754852818453043547878544521105554256314563017838650162465105951178454949178607363383953768152336867283746951553446748307145455563005567934473036976315180920400231443635552733233258974887838013865246891168728810840220992988059868033024015199193335374396352885887718160617002957359291792540256270273969336553218936328893776070844931033039479561217861107521650892205441518509174413660891272681164148467913516348693411399560462714146192278840872238448490336743144357264295160407340365680606987345003597538030391917780099170712820183051973745998510414992477705492426813906101527613820014494000431989373233609109772268874288630736607777943254885857979787356584652716350256214282991215289921074525740804700949908385024639373069090176150551694086110143001036761219775790667811894109782729405141479580079042307067176844960351980523334990816236573395264821862782981316536000624701260821566028778466556128097536379825869898146800718903504187198270533897446162305900894570565997485478227498742466215319343078174638753329711411298033877774679267157711954332310285046653334897496704910928654567316180933439655318326129722064625925580491858821163788101398205623882456495992498530961329486721875628365137448111814929547297892188605741608312405963863371105227807070474079596490780251968803975502237479701188654871552384380718211154220877392937589587293541840316665482319006232373671969660878028547502654408598799721208352006746381580318728289071298771367673497219106041980977196620292595694126784737163321753287822672998387404661540264243328704267800870936861141906033996443939310158143373478096875075944798530334154396565030305289011848171700007746381748512009550389452169380592274385046463991717054696401315062955122122936419951024409662792421099415413997056427039307957666337451868655939346203683862725597241610521274762153581434576967036194600731515998709152198859156034782206728627492147968113987736946567650960482669890583261206251550455464182038040274854351198657491279519533441259707340890323603288975882015784909057449036779268518308463205047777102395467078399354772082838468362357648215517803097252584174924316601540706438650297273162410100193270920094285107184946316725123155318769700863303926741399545421945646851189055813591450851433914269218915039837750594626051002061378359508147490511440638747952638859722208247391919563808221702363877530612270602366580402051950916009595496015708812251913301665756887544305400909793333494766413028937868279298599784914062186253575502177232779079969256740895037396400984982052459287195582936002955464805167027673282992371277317090812076259439144869474982147763662981997019040224629320224701240763222231632084002113839830899301278020330305076669241224185131724710858841652900760148690078280764293995595597776388128939371486107966035076079671772991669959571010419067648313743678594286123705059536547822823652066702092318522643722593320651968244103978121586326576703449417411601095045646401667396336025316030775663360390872334248257078251163075165466632861071617886891086943059985469664740003761139310907655226579766619184295193686040884306873958658321782076379758762140509874644587392922360246691903001754259093209219293842879925448594618547135561010581911233769262818418571574848354748437214103172240214544164621191095836292188808561164785662901640125266411806669000219810066884683917271262269957698675711802453063471758515771919484820621746049946727511253256763494167302691180396510645009157637420800082127572299139871308579541834107864490336929097651833273082414602788376244071814425883359036153730644835847176454419800888486718846103286368529026797655175957054408021126409700122490624611202707706880372571725395718302967291471315507188971442712486499499275786755804840017075504247530055531032098720191670758615582622399134682607810833371420413646883056516110706244228996474064671784075008525148034374161844220791645392270740094368493826189581140443451997272448321247242164705031909426718943955651239448483852513289692471110281614259425915855453882807744512448801441321311014477600141965954464386446448878926079357528413935702987071551524347150459110234805150153543210219400261222562793651153712098386889831978053797015259643732113955102023993540807218072847749237343017334888720678063681755367250008378579949384179152702628368363819303372798061663855901438690017851725629186815082314808266572711796192218736411001330152486965786765548561418141211041004766019649406588624131337384981781280602136325424429816099615697121883702893850457418634710384713511642510360050322320512887529042022774037345953500356716364641394072394384574599908152561170679410285891328504422944808112041862716581975961871085343219629190698667149739412906755785995445569077392521351660531017679298837962909512245470813496271672552035828193325861995772169363957471711383977165095253523651653334704668988701106424221102935068555145540981154893897150044231188935477564482083143481877429970220290162919532637755976488092940782679788897655593670822165568018648744284143105561247323109745129324196717090580942801534770864480839909007529035751130478016101650875985605564292331416406083400734727797375013667335970339472292368923338447244749168268066038430352787343882696841357112999567650711008859117062755078654042022570261504002151078725783476952285295372681600831999437521160417504916993544639138124407170172107679191931816575236212152729286722178257779587267004328701644113672341546667094194720818455160792865303127853203268581292808849120360127485162464218072818867354684995268497281689808210701053279657560123840895027922200479801202250674954991411615383151711471398639843845808417179326420455083934859330520919738734291603421674552010442994973062185718558172927409421783793199746198601305296194441379507341891988458248954701241618049153745611179297231331423775908848397173830371340387898352529571469690257354029786277818033734860418018749682367626104624273703060805569867174417779027624599988595750246044683757814169044917389709833517874840019287090926210996405970418531270562482479461889663907123081213322035929606889306280826447135998541267300331246817435559689875936215376788223070390544563295954515761135238999171786196101622853335020377142850135200796183834192781930139140895875174382562827945869166507627085684599145572948859219800845651029808348947648731878871086830238762734414953439705182488925516169547606687301729396729333185420825845407889235006690833530102787873080584300212157865268926766647998026190646708963945432211152921264282754192543021183064514184323984997132009163034261588054726381649146366361209631321899129774739925831662176313269411741085927256279895311651854842765256005826207621117495605087409845986967971076828661543496830882012831474770911727928140461325648319688566940741912656927599463230978414658608902265702724188120426517872978071076613139762241262353557456002108943474917048088485719314832273617352200647175759630803086675017327911021490864364533046958492227707810252508290226818178526452075909594424751614098258710584779124691863919245321099975228491352771303672299650451508864069401868485398005578214515802738238039502886987793014431442972282969886564629251956061425932243962651432613393529246027931880493143457094879346551803612714605023287503073917551593566508895427294139090534942376838498414710793346642851112761270013498537265051950991648153005237007045615194934177580197764111211172527361833988730647897549605634829695208936748968818566256331604865106003309504816318023885707008308762582621665767783959614344265455045706029347357133117666392798094949045382739565205200648635323570479419729343787358009347633952970975644528755001162380963219032903947064270992360187165777536373057678989366903891498352051197648926411882817987702288817361202193559754419540130971787712413855876037366793024645189447279938209843222419597147978187407080144878041523080398823148432950519601918724745678847557774962023518602927536695882520513326074233163371811933197457211134753426288367452454039765190402757586163429574040085077414657457912651532104693851961588461261474941986269516501844580858380920625383770275391768596460605201034763332904139691918699397737531348013370372698478239218229984789827777973419819970917988621736568122952282335070389230406383581400930685346777141762837541926385148791294285907673821442893848386367633783020071869024670309480556550497550541859390427709919826209233420626502448800190305254031229919640781530223255679062360492258342792359609688326271521690366932327367401990980414291899501163967846138564504738663006400038481595983929770769024416164942988701344260109525136622625910316523056126821280691232439318192031148822074757033896086715203503315237890664171133706238395825334372570368151955558932068263073217748549434351794773482480635692491917742858736241465547043079528001708626529476625996956156323283616661311430771878389071237074725208164523928533396358188707784118565738843780764621043754390369909355083995079306270113090118985955157948892988002653798131583297718610685003440670735074601082676148470713572543109581824330802195819044760798262868299285690675597871711123062048728636561850659678325286184160003364245891343828308284626844052525853100741780260107190661243167514492148652599715098971622107428573759639524091886148613940121705944770439255339130065156928275797419437060426065533246574197301574951283554381115132501414301661798831711572065807034778403459932880633065060155716471976791719518518257876589975261823686992860030330519175049116165918050339444678202342150368896029922417868430182134833785477855042282192972663156449923625456650538107483678168033812123909328396630885314540246652513069648790633185752432126485303785770069824495655248717053662099721293345348210682465185908499857349674723860251916065322110893186365807667561309992238184426302880343660498272451170775807512764432882406394379742665037242504713636546992216208559150186454878735243913140066838887837801747233763679400986111720715987402529224525067660607080173660253439118585530613036372416163319740188822449073106837754608508095048109703302886013166911096344190515011071765969985828006320029026506631798099429861028768571232090595111022945881490724694319250646021551637783741499040701780014624861780124882995353468217201881922578525942873418153791524175880171553239556139988796661717998943278063985860094899321187555717813191006375938115441314132737562466382199336769241983803958457819278724684094422053883555165411863383563215546869332326689967957133182074518591447126080752096070673417658030737643656107580291960987855109829479798825637798209604377110488022948294186976900635056712144304001690893982836080613233292640388590118613382555218536610873446826816614909135136430796295664148694469421575677423817280334246417240495427415733603493307891217427950411686289068810741210646854855687392824952569946315710641810657077339522965813487313801913946747490896896042176299455134445954889021126440831504134731448539928014158909726798629118530331913431589565673839750438496016052938957221738447983986438066051958317533263565933847147617557011431694420529535051190702808946542665006754561676617129457042507158050791266193736383014455853124845670756441612440642964175910367120660634994315143767467481522402029433422170549358408312516779713859935358894088855537615581682137917266806489459764743368333685855510464251408227309130564211696324202330485363568370288036031450666421386448548869184237488651025548145902021536726480169982500852820505404961035226638704024199773187369994103312718644650441782642173681772569295226169741248524234333512856479386212285291041530237368185153830260489751377837975000073376546608246183989342739252587082748915434391690887269888617030080345159406637607552827067333120881398366514600060023573482343829054624898244695863641070775970097173478416656533531360896719288170064326703408445669153577540150263685807098684068407463605385001732903713997893388703108296910559195542609229250830537879172329460244109953176347937047316553319649363495485027786484125114771765897061969964984221175202530283279840701201300289295254655526537000752133478686150997700774605737920906666484915633007483468478016685632959473665281986323312605643496850109137518548618238596057157424892289803928894221316401110814027398819426361929499738490939714284818879490796717447882781051064741540742149494150185103909030606068080043769999820974167029701835201126836798604181856333715387395075043529153648761390685558870914790517064360786368249851854675009648193603214278691167887713089916869320844520721810980938445553005568992770327355358028818638794673673484499219122515818058577469048526290298713010026143910009180644685225707565872392973915633163001465587269294192870410380405250623193476557859991352869433821745847668601809149844810674985482673643457314081780081937262615425220240218932762647143664081720128038491646876771770433535241452954722439256863142595054861317079487798537459949215961243085667108536272612624053274067733878526756369922987344428717505133359624945192564838669887278246659863098747629614497434016168388593603630887651397762630055973664008026126661963322812169379201480463979192134410141639496655391047518443158921615324773661304275266953821394574851174269271026876564630013758684317173676828620435353745860160526025531478385935209502638161836754605649293495886748118125015658751476507047851745473026133103058481295912714162295881428222923695035025121025230808225238893348426532645164617514506380409063690561858697368058437558061980747973343375304203765840151986431744775167749627582575534188412694893032857107223216957623315461228272166895488933616109353492039404062476421151946203578574013086978571811917408302655151732506440252341273212602881947096890906493514911855594152342940526813209813219814753609664945012803071270596252097775706735952410293336257918624750679898672540471068401123535151170995051354398587602944136394848437747293079498020359062334387683270748376098982146843963628559745578757651462920736834721013434294705729682045707287863136398733389412295738938242479669406330763035834786654476700091739400808854403945038681964596391259749966778024491322655414518365556504248972597788390282644712711187758455655770002145725234547430169100893047469937150262505966503439027039295219721848600033066457878286007841701740310540523379312740600467194957804207578793631439525401862686992548829018477398872280323569688899825687420761988161374323562403246295556762074814674928605434649494468387637235607855831426505207457443276248243645340675970018431172911758383480893228832419806988073879352624725839991928694437805128846136485755569929088469541624014805372672288176184378166946436590214774883166447317651553387990835343748803530754431058254604022640993051426001898115533630478591725579278627850358189541829749901367915051324983487774544097542028667625744480152415150967931163836776807578521172417095019245113702916080072438241551993581488447709522796869337759584955292860339842120004688574751090525517698517196429873147131439953049881512389337214278357248006123346503234123449978820829062990038873649711265531892980752435259985465674650162069860710403113037459226976705743157375171338360040245529047601450077963694796877180598461460234793199178508500183267319086040911290356591261682257435537993858481316314455870559950978419817496465373035399771794245502231245629131723117215216620063396223383002222508589321761859514608719939471035457171398051285412446702508733660916896644536926091194086595963119327137877223689020120982060280411109542144995956472878527609283781797128357159088075575937448359211347838212966213661745462034165575228081798383486873134494865122968055172387761974688054351549688804916399406295399875044859705152901625760311233154513156045274245222191549624124519783223383743684469109465310996321412080380417744778881322683772369318545929113966759443224735754626492930803453798903374192907826605470339183804416788645925783198373645758188063267193710286010101387656885760360833696568957798467018339519964230281496809081978935334044823302449152939491454423994379652013926339497587860476201134860097521591244468804320341126400722935204410628048481903074144457568552731834515245891906936948664650417315750176518004688546128127847722908526240962298302696498059725029974193030238586780377737162075832975746276688348900698162241899886036314663987524698043358384057966636544909100439717957359908292394092081156938853575647289772081996326955987591423797100168639831249932192118049055628527747899728355119346313745807504679793266622201407778748072680725170266317772482951935724831435584288182278183113628173808409971112751413346182792384125723219610720732429532203202157122111318040871059050675432566877279368305322058010036557550197698616880948546716115864305140017577626027212967990943834601298436316822789424010324038535399847221847729175296253766034029415560521789180912844948161828318256353766310380280455349713573142446029299826230880915515845148905344251979273317600210701635144870057138556041130554501725164526816060555960119207357318420291249866048259779616885422837558076650152474566731487189505876400423151117488835632131908949397199644477650884588866584295164458380420551518986013284261648402866317397368245909105789084368125913099000995892290793005103012555281778237012872405314599934151310004415541636374992751518449826643090029137950318158286363752192798098628422700580723767129710990148245610950529838903889006275820926469340843011160904170279141342329564333382332743869812413931261404297088702970972547380127550910329219472020099835827985636367987868264072879649459829007912889743267204122953751863065936921074084111473052643937250436614061725621525517131150644383012236137260394299730046503575180625113041296441655378328147663162797054810368067898746670266729853461387728963438009652155973919062353147755373450780477133976120872121522739773785721444945147152970099635581627042242703721932549475376066655568386543005632508306480315854690266803863319683379606184213745590170874974035542730977494621443812476834089864334233280000845232445042883052223262463272923629282129812407636726254862896473617691236758862084743445383560703526720089534437406184250624884902766013435751734504857551897590420382400734804747684922919067325563097217490978528021528677862539336798153431660081401064605100108525674536406994747057797494638480901041867297498044912900216590121403460054508419941011308810305152064559619722121922800679310626227443237787741143528339489939235340851468373473707998148766391694157118118103744189570010897161196575781310771375782807860275798285381998992933858001792602830026807003725434864179277123749032118941085262819793131640530314035479851810915857646975815436530841877001711501314988835504764867688018388989865205983427565010646386790469375857103095718315410041614355061322365302621297202352840278681890600981218396213802827406918483256446304803816862335629396087376497098617109180717045659310911565063827302527308409204074712939739270526835861474223773147919368979306018721764063143746915813315068037065843762226118041665384313395118872272447067099409799207987558508349721526313243002508347867727784317268907448686146058174854078267241656357050242480477355453611370540042448736996228712278122512532665646239337466035795183406611080874570061375896482648000670447796515356111979062247211265772612856807301876156935038412091220652431362254255936691991987688413783821610925893725956737092037031796687569035387631641024365348918326901868133036219483531123058149282838004944803390291950600913267932968785293416455229510959299357421806364002238095627492677169223118415467121064715889389077395849569572045184195493267226907294512925779104609129905574610811875686466220017948013255457149984501128769847882258341089192801589843859815916969629313171223994234252370953851801640661610333061718694074147957723403825431819925406656848933079897150698149701073361268284310692105441026640937119613297561723153546511400212370239327493907829224223800064274574946438085417166509180708617282186995018114204531978617200446068729725788528006556151693139724993102279230675269259418375795157096814955570884464748588338071911968616911948343034055087838829201094674752707281940894046906715926578476596167367447381484189756880357395480524553869646723396510099722077378167488927441705497998468725206993883416137250440772692242699507218144791752021007776755587955217029145688670380535509042445621199075118986328451274867215025122516978083954408095146688704402280574721972037857502586592930703261168105440473519321078144872551766430948963679563016055855969000277815065702973538359155978295811677461049033914719352660943405976774172905832631305665478934280848201262300751712356431719080994159163690838063301453166399832830919382526252285924247649527695208002756012252469516909697292265936070627318464128366790772541082802115196163266245814921188852226584244522080577692921532907321888255409253504804336025447855813645346289867940434382823742135548917061426021656417993215393292717547370433704011517016228075454514209771548523633392476253480807451089341458743678523449398080541483236646229305029965852208477955882204993578607386718877801796888763481688260796968708084797355349311786964089396988195292746527459480564163821995264099741476846539976662222394865462150611934733272587791013459009153854926690810568775848230793284646562107627368769891518112491845383116399901846857879361274863954252832302729349132424364322407302465319347305570958102691807346297934848694918774994721367452969091132582244873266755907414793616724279180185747182121921441203814350035952385145224670377061168079941501383065286744208078220658426841259565271062387204841535111028572913624301816970848120879656616668019748876878413116595934526142300212171396960838033940924031182084224251711027420953443834520155851679755968379866901909199524007973686039044840556788586197225950218241852514423660085824491093558836615512762241719333284447632467742387149674972584360959039764605412844879614753273198844846678991532783094457830533163069081232612225637725066518343955737153058434629677904369308772931477027602225237649344336489337531460115769867630450891625806074708189888429848894865080182802119605302627979597441368515040208950700935184252519971035512395423200284228946564868013738213597558335420364702613232721861013297897393933137147087186098807524988116825531207732407907130661119983146191887646011251844018429970368403455762305857421160999593877795812074449228821900221514656181052449509466160057020826235014153831902559254614357938522526649789415308492271992679752297369487796560810568901780796792461910396483800816659654949670218338238749292777011641206016254977327755254949199466281132265127878918525685122586623322059593071830797515153368966032400931066225011727647020638216092622880720406245795908214081773475210977345949610560188606723331764219653008708169287348862235119735852241213973546896477310630920169213452559482168727245779765979298040882637761601329512635305733351321851575907366201722615045677918295888081480392048314932789594918911577833706098045312236825024852485446052687370134072666152604707730261646204283230004377802952685183589863013519282290927350702571195729833012851254944601065364938923544987613791341997900840840925120113825627413163265665253457230261071801629133923187662903183489187018180514827105449118284721605589420764485060189901487788893559950952099788341082862312334036918961250621225848030731245271489291925248405780995862915613508861442290287921730728698729828815318481613223318841731512003630283924168025454137779014011745459764711694487602933507980265344404275911997815732411225355532654900359177919692010980879596147033309101883448530656468930063973278597247982379724993393966549670210730496027839987607344579153362841429528521166334116005282714397710384755396972621480620761924626985660219620263254669213445437228112886072095972539474994749268200762558481117257745387288530840724024750001231442834975464604419694263821232681572494397843371264928806266847502127409533789792271291660007241726118918076255785081283098894662934040616140766446229188530571536828927657634796647156666264262271817019902687802708133153450908737394415487131804959052650264837242082675305857008669027686656375357914139893599526205849665275419645053424469420205496458309522074869606484666841088346147579456220057670095907658177947198100745510212789256023442621775589726234492638772495831358327645592831625934876965916666393120120481420953223875849939353223255958176564821494907335045746511322935001822880162503655132418731572184954844594159160771256900101811597516584787277984855436508272767773418774087307111466110586163750211005138156454132499953060588218141534007216731032356612457048782614483712748994138113711891891715222152467345694719577074829016770749673942837383306612599218634021925002986282114097498451769436725506128130398706952146883336899353899465395608058828231642121098669879334433703336500495685597678972847052836030958037921774072685754458941159199879244760985877123987116004741823759590571541101889237352852262463032452759936883152461184582271198152575484817024029681469835755054928654329740596646484295269565848970800873773892196263369386545435614492493303493314933232663219921345087624846326876504524293042542238961910711165364560128325439607788309414895919407966996323722515442923616013503075171035328924869286941213602824679507754635067523843678996080278785716778564610485992012867682628403981654442126654663450285104001838477691817848025479767316578136537587410228248887432216150139320804861080230910099098200419605306036989272774169252098484615844997120057561320756151867250218488594193434470347557941039124277793194653814508353093433947011430293015689907683374450406293254415640017939423254431954363063301735434653137414306312308043679469698520007319672460381685294896332870700687642547667515453066958495173449285142488670249996376137866784746685278255992500426929447587031362713468132012039913252197462386736177441036833151670342417662290086534885570693854560995306803031494533726923284514313022127591804019399774474820401108608956741214489901927157769567733368854623313950063964554752535060048240220807166000750782981767386813483081901189932828849176842812956778449034528672709526694375027331236956153681562221685242914577909635097925385177097187982557808402743568285705088659960474712568342010824909394421095084090813048208889197237081445663017473727505589496166891717753293859436193119915089547044207912884350541218200739931688003311471247456274985100413570453135503745874965037629245296447669961679858957423361639107075940919177405875997283995123635028014290168885515170652248858516486101419839315047436764981667354401670969608193032656005423110033122216016715833618269478750190588690285513416874647561092959306652846250827645099490571835162174794511294751653442069705402760615088606772009711256057868429003959942217007788201185419791710697585083990089385130707514951368162819218000782985356188112586272763925951251393620684490108077234404802826685354178289783294073209656553286768059677030039780654959123451344916256180007909548732205919998985757915438484563026098670361944456213942801970822614792023475545450256423269006131652090524481883674646722422981295987303857947349032641626219759994544806188328198041720510451098649430135677817788457028996112759166787495987040012044244865756649186700276928690918020724265903701935430107735903968505765838390804423283509165045940480643614645219487214399712840386411014250484023591468474504455460292201725829670724112105935788605311927895271703927742141148378105122440647366558763923639049101150772060360011532108249853433144267986706241134948553595292555173071076429108576467282948103551783566432550237590920179701170199028709737976122783902620830753096758723786196886084770547875491410058380012894078288668461920670592729800543613266793625065821460591850093068899132350256589020815007439813975496552059496589961146969766199497755263464441960651301129422490400947569800099997230282397752076714090279427864479056920446812345951152732810055929030953758901515267157756951669368602129909437202167465871639175224069413253514901963112207971445331181752756611527860004997153674406053716459166179010476065963714350359748611451382332564940186547512374807404369319998674721946791042878662394468435991413140605809654867791265343017994675889530084117958911836685598969595997049197006415108223883382272432930157186546459706031059594545384627950988221199699000434025811964158681839644076424669691913812743123017438176579042673554054996079589026378392267746177188239027704352242293535199111604394267816496446481808515011618907504993767241053881330926646269062809111346831715651935270638128588741880408249373341766203900724712476075544733069904880502841915962588295771385791418162168251976609099921927593732137431146460026942031819328387468366697290428063037343164231826315629188460106150590937278310119244407148979028818974849342841283913938916872289083422760402577464078740655807653469388604092803592960419383032135640260977053470708665372247677187652009760749317772839622595424686320491998512916420146183312521682756351253287600073153809563142312530572474797686876216577534517071781794063375205763434101295621691264224136384326072309369636042230663569925172682200151413420293920790012633094022415627380082130924591363064594078851472196117039148597874742281879833909197207568872169400949402130992306682684543749433352183220372324360482774383167511666320812273875081008445774557264261094400270130843715031500046180329547184711078410249326778025869014017743518251654930225193461259852676985880997840037297451786864335354786825722813634960189370036657887403868994668278123118413335273842252309556826081619530004464149634086438419257853062711511071653300461221554543458321409658113209021622216900128167835966575824847095366215405315518248387344688941139644608621525373823406927805544893622605199680228399116339426500538379239046261764494116772908803047050504718392484647956887043491391766642023407242329293499062288386483515152719122782023882979255175167247958066753482729104754533216464271390867428263843525641487208259265280397699225909329375247643896554487257467670270351154455314398673673367584874171432935872085629924663595982529291666131459037048831142708573962938063873652979203814513513886980306939714942742111244383559888302732755947313468279669118493517076941078059334896985244600568312123068328849742140998364593315478040502814601982125177794994073176680957470553335106020019043019928788504254980551102054706846981306951530678173553888261920806884685357453785683103021752138849695382589871083302214340897153166610269280833359995352673438038305322680650952431484085201582492026918158373312487360839204754444358169199616794049371818114724801583627323594639024445490658569861349012394052233291631895660811989492124571388356178015453695241685894040935483706411995347148978783442441656752976888791862273772896401175836719979912196463001817772368276455519404300408076665220872538238904691339757460787097656443308972093872378295310527561287126022648835182085367842484836410562256817036747784755859425589271275383261752938874718313229691792996002580386238745225687799432695591609096479123854748517824517380531291031373113448163955744289574532789623880649826009799240824098465251115973105484924743007594068816370425502447490313558366241981221753504144414707643609403544266853649871957589941832320814721809321656850311264879492863329990797181300776420302206177776892928250058906307767293926496684458661461886789225436728554708619347214321974128410439429163417415449601745297667536782173149789285808990258274874654385206706025478196235070731190266121102724028202423913715102343701730033281881772660494552665819877222553417566094865182445437468666974665337388553166850840092733168036783761626084541967558277689346554235127440665673329158316233361077893967486047330391882479548018571740202989152666404379596810837917885605822785254324909927827436863813148169640952957906956880219125780679247643368078883175672460250967316103784287169147868473959515843549595397862299521127720348938093229189458740079362663183303330270863588401563117946889654103437470522739464256961921047505637536904290409719812871598101302209664854154346273329995160879473690495941212031413609262859093725404736069552926522315993641449517143641526596404804410543488837569303186646746631869727184728932066998833913187308598749922681363301176301507450893940956873081256681079040959856368630814456389667055576035649451316582103707483371872832138740938366067331086305970946191908307134361885402511047592667438480311271077439588422686700771001694559905896298209348079634326197728893690007718186933366989795121522525332630115803137458737793876078219478598380537364349785524915344262675275819345867548446220043296686737686287468398753752549576174477509520202137002998806165939320388371249491353112042877930414722446535642125264009626547818784840877944484320815198585944792438188832215620870157729719017998760948634140496767821801125408152959068969394735103023379354096134057161009177719755124638349319366665459501323960386063889134775340069122041391866559760699173318925151405917800371319052164654110198619854671463051159727624599219551506938206752129895808196086618135713680876025870051776722384791517981864402394843831798275434819294624797968348123375584940538537245586515046159372583281064802771973582230225645696824220173041997808471191020559665928575700866119375980557890005626070926845427022612981910175157660530253571558371647223098246414577262035892617819440817975564719637094706713570753208930461404511550286795699718005428270944219046111693195657189761485957920381698120149712500900028861084012273824461084019075734064372792847072407366918845091503420923917716932595242033247823272546126492792297217720732061884388933334937404049997187313584129952907224920038458241214861928746509739690840962594168406409830918559738568594085834348299677746571148435212471990207922551369212395569177667370389041235448012837771543288964348440101830761694586572134008271951282716616738737253980467819063740516772517676545832286588238267550464746952188902242036008104811700243990507969647788224037819790342646738466844180299120084286228856462872380001741840202318028119335874145318029688577964659946528981426168104862581639443596131951072326050348534263977940226892553459882764047381912860511006035248288761229470150442536774427598579151275429904871681785047145230693862889786474819965858947742358794340472164818888899674139832576252441255673118652703681844394481266320976272915087538454266112069365264149133746673293218482027010123028962762687158827559477608268145413109181383422856671080210980046233127980214562680024664774372273156304309259209112192219738006516301049589313319697038817834852927243850937526288304624306006944120309561393583113758369958141503151042140893006112121469168952670451261004296795538624507750898510759560261956593423266024446733873126364384977092168368473559022729278111631781426183086870195689389514135477260193535407062283560509473321900518754747674999501981979232096973001361767547053462068647822879480854676505996197742127925460239183100018993351584081385986440064701380269499744695661512070196907387866572834529872822403488206348741469829094743971598715322694438100919816006703698268112303640253524796630074154096901463967441356242162601446468236787961675557286122312953156965723401299945530646890540421464752290021983352788110093399934966196167339894783848390234454883099007419832210454409638045712775132002595809986213501520587989710495442909748374375676729223559787611000530354296128030910831983922010323736743707258091160406581783697028184450418342138919850257257690458810523913038682317333482077220204089676401180270800861206107036723768663101798888089491056961302506722907133898863635987630360667252981136438346576922596446815939052712707857384110047064064127058611592989584151536366291143874667269338587447399731918350507562906912692757192394811467704612573686711264663984545950983044978357365059313343661344961797542760846740245387923050832537976710782559456783053944631219721122152077657191555515166505173208895704647888143628952902683060846785238589377414635407008228016663524196046377669559747416097362113850242480996368905255245140739278177748381195559048144131144549412483130443165764454294687910053371501261378484613681799292425336992579163096649459772076781202247151013457173054718548445431021833943936452016230746817562116726295742415315259948438935482960138443576765873333144779263319608331727588902043727159529192906868031896118142410579737016312475809012556024404616895843231169717914048123796127556934807203952502231694726266773851671050515793936843812129355480865997334680476443507468086324257446126844100800018471941559724652111146641859109531336126617991954377915377344807061133462588787031641557609736428191506935253304017184731398937032858171788141202469202125989406578905264670745443463659097853385935944216496474800521624029932092464699902060604048625467130184540768991691520894471263383097997484768560347256582470260819475096636713946757114422507819682625515635166177270805403733453741433445007240099059008170872237514323189256054627909649977859570162391284967457629852607819080821460070707677184001775318908229048330876569632178696718359697899316993722377369042758904234488935102660913660602850869719680170027687782745299733906711739738580704226021289426786448507307005091918223673197495643584071607992110827612722350989041213717326124906327860063606975155479576278731766378904675036556795169211377792733620542751131649904459924989127468820468001831707585440342496000049344896018263681808269147291128564490998159771937919797862311840295144724643289843617499343243858957646764256665374574312477250814242629879329509120834040677298572108125748970304891051813062131955670401313063370801029605162953459835401318091476778449479736762216130540089254523008030021717493644043987475077212335688085184738871306893420920601626643296361729894145483889099014415456125983538047594247251151935650627255855163557482367691324211943157564768551170741431850660525379596102569238967024277901707353554691544062840222253249831638704098211877260927448365481273579518793080259891078347030346208787354916943304459627913490517812263946061115284557458939076848756035289233773696794605923941459637622156320534066707640126571337101378192203194845268072990194089836746659560795397756835180383185285961320321974517738277087899240863814750914151780963937798839507914578958401122038180541724993532084841457722726246103267275391762510929452704455897182188350960796517616444775789529425120277144477451368154403695812894504384738519153323791694637861993673774560345643773016959147400762222106706378471788200257542228839042079958475188953747520564976155748965655518820269790515851707246657966087863435196451822220668077575631113708654652541730835840665287904547559382379637230911935413737071365268333456736087424746942409553138779079361663954983462559590854754876798388481607992481771143726177521722939033039478696386225614440574204392438714092560464869336089944764778324119827446269831968915842960672379481738140989682821592776420411275423873934779910560922752008362717844311959353297463820414370322510666508438748338164978921455251806951466254536678046705474322975001083813908181105956925173792321622754297585748939177806056443467282466442368820499843655196460683363502620280149152541894211828281649623624966364696590923022932798815531674000643885328156017711225442828499668251120832487794413618984310927274379235219355353318661817361995547158824513371422180390812183031072123666317413972280465708751234987391927740295056493747367792173679813140683199944185444191261888235932176964564345796414848620666366618498544687401735605074535021083800423233343414248359733631147934870333770265884124535751030738850220352634743037091176390473867773626110587750173363969587012037827615665747157226885912090898250708226055457743117331339268965707805296567006583409621195593287956766655738140909765295569826447368140813326494243414773041810251840342367224961283121893025109883575887935914593193255473152370472285031228738196273200312401855697907358201463192600434637752790838166593726136943041790284589457757630900531695376174290003450563375363835314958620808817696832054746321659233289214348487822243012967688412503711315058530414528318394797808058245859146201648319966675445073864078915453483863007281516576034391452614847455988882223261853373329624685161796646101081838420288081615219478298450495266012643896145417569234404131634969818772039328652940966768858393514351466613198441322304496113249169735820661466025587382579196413991895045086280690257357060489877964933260607984265816047175149502107762267525717679505837166480574210529444094223265483112907395922703600600586908122133816347430255431501317390653586744334008709571574044933178768007095561827717640732099735311459232053789318396243532625355042281198823043787432479807408881403049065002214923785826078416135050963647337736590885522635991265576633775157446781657399418389799226743896828801176288693694820386806835995586028887795312642081189971625818542157234276821266805893857014577316459713590489406534704704412585313521216213622026098679506556735652583794531351005391115638685014601479377596119357994001437378644320594304783851723256935848916671565731989818120797534052460483918605448862862425853225530486905006213140639448880494388647742095174030973727087381688335346636106117611969492371158892382752299929874010388815721568041715690753789730088115071587059806559337765496300662728436310537274643729157681746428455709493304317261245335397014984373134280834721748172812550169347454434951212394435105143877458970507728363853527529199657609991153722396096431391534122714495367493923445768243264424067715155347184259701276987671499838757185424002804495547538138986034663919664469760792700090480750963870558256718607425756172264759287095910540497885616878969665256131162714846206462829413339128923020312146785451663980830133646458462730678593464744367197093249600492425707008317022858841138432694498586639941749672265126765315185204193481595632333796252511548823649006659681902839387564531282381901100733932124742801617486207778746990314156287754897734747292735683241030402090324947557169749116561725825799394258347323395177965447072719957996957839956393442840217505678394081219931144547988703291827132802602906697668265105929052354755567189576276044029344064444382259437753372207859966634955012256500595568019078291539567904665659550885813533636050191809299108629159742525390563236326151370963244517227279270035912554220453739756446784639999525292134006384221838349313142421790404579347758274248656716157487355094835935183967527537495744507553919889021196759037995443615858745957034931415845827411747280567473397132290071755830349519985885060343080748239311754249388154779454899188883724488036940640873633657068683322696244422647600439869290375598863973749664323341403942624471867397754086844370606748499028245214342945568100935833795333193880532346703625486889851467478377030648641456674289295513295966013960482382273593308863381716352835503035946127863255158130441088680058045450345584398751649493215499814947165470690186351040400464651783874021089693274548874875197559497177391543844576345078183115496780271271141103528247393081375454503474483473909229187476034002938318727745676099942791611820229946656664480757435908264969717278168152968021983413092128410126800223207655026052262372794012498818793818869862291728172843913871037474154471997723299866456543537247126453712188487943184724836649313624934076450711579310539987268167511399453265374980753755467172601377818584791133448821084271933181386217425699719146282115998105619508319651091611525977820960913336702088536508527530502329073389367850928749289749423225465061690068827830643326339488387481776074929343423456808801456594640126178257937601223247535393529138846170875309952972823361674142505181770894721078217143676438914419176471593003548865301512605849334876315419885787145293386554725008921404712678872153354159476036454719936761221616179437035723097967044352833057167167647928986843177859379146763072232917853720646831520564533504383691634274813140208303819849113319531191945515916331348900977952265397317546305899583987333268615818755973018647767190046973609286551266000655549813228313329150720738931624362230204497244329906552162664086682454767898772868943294377309258773652924318439154167237022143263642888238566945881700207628404227702729186420610287170584212796343467842842594587042309239647486962544460510330842186473762740408625272175718692441849663355816358068014091515849949757227174969630653058201307919171701171761876175476439691772587367290015226746308323263738097040842998469668185751584144455579998597362515361478610862452325860735193446194229525947989297533283664293450724326262276932766191176285182132690756592230873755742563363544433022823759509551952564096605192521120874391525340299864682871837941551978715662024126366438765718200660734773032071769480250094947163007341085103736277868522597363496667579917927878989738303955007023511801608022222265931699648976758322524221779108305356813589566594208961357144058484342864258561110117667716674938538930914870468374833165651498805507065650245269833799271823358677235472111403972429539965225868676263757533066419959442825904499368466460964144935076641046732908307007202501364627255010744873531482996341767023381618080492423975103868797010891144332214042637897429994254234005136168788587411250853809469397764613370084340927769394174227516260531787378863825769229862936672838255769939789331451961611980465421871372433047123114847154966450198618911989868633569143565385016041660349531018759078174914759207580529468192835281705537725667866379870905728289477229262799788895321590204731310329861216098442459908630192685680442326127980251182903823779374685817519519634076930509358981212547554758908039327167920747437903434253672322699618743965665830755936872142410293167015568147407751666502138450305731498124157315067266181341003653171420669250034374629355246056691447929532911840427819841441998289044208335066743060205867175362955963255687196120873542518909078097826984064228759679370180685263212638424418440679068325815969599515150757204490923942599152198993648736642315470872307828303523292331016863031803712111477126380566815058778831960514860742817862089349529688855013082720199837419168840037783913574610095609805873635224673521465622526870449922832811204135233659052160581816593145078028660446016428064894665307364661530079371242571646308726010613308147409514052805560994782622677889910719326132452061779503025616541890628998333254583673294556829285262609626600258838379177150480302181140057386916984973744915372977083220828023277286363277802151407751527142465892728766886636535418865923623448589589388340468045092309591095767512633129007503201997567817014580378569382299760927721540899515437167363022370155862214555716812393609342485257484016738558733140740586193879391853046288209165060008735160424952343707908912810708987887992454691328982077659595110792423117486417048470344116218394619244137932176224033579071485911240180106843039795632477374875323745492429301217865110197679222769048713219014968313496224852705455819360408410459906831623993663446897143591561142917914321278913509075919051289045832341722557544634182013411984572094770429695805564097525909502382836277465732334508786472139443131403496354516208877105776093836176181862915390928150695734387869372023425111410945963844860472401261859492078267988747656800591111233621144817207211770172698452242458973386875337796725932487614902581259509022505067671556173622515906253761070449089341484711842163197364678278160610855694546597110645053645105163222784228507883139225909079280287311654716175530588889614677949818152719276373340070162484120387182694874465720250821698954980191774384474076977754831615686116362306244068294027278626036499872393313277023565794375209353233644950225423295763605494230071340331488124716344038321763572021444857640318899029736700681462813250082643860767900023573089652451128336617699920137281088011847811713556947411665884069793834063254873401974667225419728359293017658597202127900857606008718650243103523968805979380837234169689756599271192195859756543329243570566537375414647641254942868399589183733144970478765917664030953528003685524006917903405829607890123658691664513685020012982768640777235923077304191524231607128175151302313789047122526881356823240171853195811725733170180079011943716484543644339460802292586333347673401277137354296376014506143276327418854959062872497927499195404291242317524929429012403912630850891772100978510405156009809864234627190165804882751631628447587516729417482292848414236854888705746116041945183924421756651737050076864276941548812891592099481366485393876190252965482433026571486896123049148652968810882971630428760606854087087333560339720631058183052796300605850819719150777987993378952161427213549005494757303882241668898589885213338962163375119863725542915880743607632743874691720177716886822667214101650271574547553313886456570502245669225933772841310518686201476135047268002562913337618556986890742269632384655866301078304664460397689640301556751173643155275470678721834246882608059726857725709076399850208552106778563582228614033322635842400728037999637635227512476800705250680592808489879695754970863022139313459700083074094648772163455823278328570454984754072516952289833140932149221450040595240116809529678025519092203423060375009959089843714358699001551171770626452990815172640985879104768097346692431243909317722874923297527847733088126567059960403381677243032910098047437988527981361377770018316022620434246899583424773018659445968976737589012038556934828785846036101209616554559321721064033416427358179785316900300781887676118346648449903951268452406617746362124117969637419294023759289721910685117721403965099065119868238521688514816317000772129610207267882212099131855041689682920270176791923259935776406251929623997254174200317134195599089787851763551497306541399779216317019051961309202574204061977494317972992671627732167054918877897172344888747543526294959240046540923637288220982852704265974768094695075930878010627457553526057750240484330822035164144819075596171756718664902167045082612709539182974580664370827412160792531407451563213040127054414110480862444350444503012024193147307559150942191290808113114958403897857825628052419180594610809971398795353440073658971120772127202322155816533274220116067920619912308169111776954989658590900050539908329202550212654010166475072255432445159862008073100400418422229778042215415968518226848255049373059583763715685749103005877958904757450709925368010886859066305451074429664385947695289734129373957564570576049821363750968698375905899078165343597074744689758510519108356983242155613458828351279402397002269111201977060995236382280314868916691502558614751607128787596586825277882195995043391238398079343631440946172402499535140605609778082259195038488201423675152829922820252477339635021077860754646871261537594927782930906349942208992650642512115346361695280352924498018359075040057912758804923317796024850603465073997921720510635918481406615573497714788294389051396830633071408759966191202598466021828190405880531323097568856249457673373141504028104078117838448927458780816609771562601631191046937291588538493372240475749654749230077812385579496956640720222477756834444182904992307982964784017412567478986066910859245341804057492785075017806119247399358866760318419223766455416959679453054792774648772394294574527251669301669549925445780734502122438780822591265453158426368853783326764735715750011326150881454564375574139140705129458613366832414597176819584329995246623159643372893720331340928871319596181509863510239065763877006679107868680813415445078334557050232099106546389065469114870130714383547933413017182958546709002737652343428240622195997572263860390189738105508728836781803435454915560849725358115443813138683435332551194404411223420502736391044397518801781486541224628158650168347144920436396012241661880537610611237995699393262232283201633707158668080180455104284473922996429736271890341657663874908400501191346259747299409268539314751179774460507106017722918447785033864155101418989008938412937279648810974320792982685921065787757082523842098994337358058369857364142196857242220857211229141275423431628580877494462697898936347839997994209170278764913249986418985425819761434418033786580348092828749118063452707095126536308157125443743426644874345905620022008361194720864954202735159806436208552600127505240915815420003714223753655449712001511991357006196206236011280322856046308887805496759394934154231088542507044087964215307766251768275923274886301719690928831197890181166626553333842651099415097824071637965322019612464435157379475901129959067950105811748573754640077751577486637989185688693183572834058355200773066297095384333991366145191229846056286404873211612668727960601747508067231739643344680584763233316658780842875998940600834827825598640951762519922432691632729260173714032110039650630099115180306641134925136448303299047090066857869688286874767626666720547570515667533724832014381852571332943060849666276237322798052852147700846729559921265795230862473752756577456744509326911949021899317554412634494380679041475184215150858769315102930911609521397028042538028522634409974856934439890453486450436778985246108325802716731730310323556481280219952491016984657312971903951560849440700524731728043731277241215115393255796078805681428421802096009724500237323128559580573379137729309736843932538516276731335669977521500365076601031047292130219067129173455474249020769650224718800296862109685347615356080774037764885298030922348507902627537648732356599776962730065732205341277073884108806779086904775506237318893495762476972458770370428183759201747090904636401544913006087305081227932901216398924508446918621017603480222322573440344278883742229690767976345705351553271577489319115688806613302544747428909781329810548976626623896447565416377569923685948282301290830966104679943034262298820006232224010879688480215159009520647422589002057580045540500803136713391821673704370073421290716217217540894761064141087415543211877857294119118103346359833076805005995855853914898480172671575569862877561530762779875713573284211222417601192272518463093280038980470066519919988122568483119961319284212797371492863793032352899514959373760154595557365630471968452939545345162760521134911780856263733198454404424199719181516103952488432995438462728010023845200152891185397050842449077960712276489317021507978397019329078863946036775164108738712358296962904392799902888428771977367291295375454846661855181576785100648569619360517521431762774629168445479917078675660768461211731982146471760603565073007181349386283349311185350161299382422648902312328807290642272911536508410703280369381938077353962449535368475585274853162856926338658936757108349431309697833949489115047016071833416954443107107119153203385288925000676126283750311561195158050100914659373321854509999087850830008652023454560047959909444986564699519907247724089058773527080432612903526119731731917302382856494176588322019446330060438008041591733650356727782853566446745620662998883405958347706647682328092405118259596569352814363893063382841414135295468915908015282800347108283626860714313237817767713623525049953694606842682979957303789274790871011050520313986342085328474805928868710157900484416607946176621535051660244447454063732690579572598195094993625418667613414365529736690867039002438197421594512032742284745131551835202824429572313255812291088215080128915724402943295411591526636155989444958148476432237678317519656964564669076837322657106237169539241959436453401003592003496978922630564872758604557654741877301950876208402224088278503338082747045674234433329937120679419205968598766057648081460897841088820479736413380853313138024441183210267751593110579805971310829540205987764389839337791406188452518545837210335996386475827197318320955346300540247375917267183634005050177349545751889046591152160863132173175275288240397974581672225259621078059439126894572163060970039371557129808199688283227875137259409435461049662024516262778871010831514670336655752476622525514517582175807701337560829114879287875295270628258571347752828838563691258755566986409300930896975694730239431507847747311273382127846903566748653728591115229010818009394243174229685795119495202464124575072707681943453034452195656433378427826811417629688860909760448101824035180123724263769327060449845144154331963257189993503449404263723044070427137049032093354815234199925679909003822760428384366073074645753908008261921502582759735895405958556012609683056175729482700959138244749773859992373727736656817351398438856566157732940121424092982194606251988358137574434675508554303756919346370287238745238808078200818481661473521078404586789214546913017073753230942789308566093487976537885196134520476880985562035777950424046842955216825754682019630336588905183371840292168072406562956533729981995728219004021642726509667290535959205033673384518721414379676708779747190571855577974359875863241438352802229303745701817851955542833585839799207596689126352398671781842999624756133569423723132722592603978995168279945529376696695429026019556931521090111171092166916425588924847581374583612422107031154171342093916347658955706381971205312596046153014065180722131890696354120154909312438118410053309802860984768851011822635497591687769186878425060819133770465252440287795126894210420478627659695846414769585388686867064729662959827865027928638071485375435998194809900997447446493699054947683656630361793985546641464914080649021597705832885476973840755414952499879286005860603558196733117038695582385966139896682151318442485566848702420263968170289644923765331006661474354902307833013784601200380665835888534389897160542060196913436396912280130009627679388158038082375874060133610788582260153493503212630112838360916541915757151505291379473706800907938152946978200648725831798357951039410568283231285489149898625215374088422539577756821893173965716378852675503798644274938605341657650694153391847601224322842501666092792877961704676228958988335516802235840195298156571215072974116121982300107589426621985317384018424592210776711385057699893987282171962996400418264708169459880796844873109930102493869613802330876269597072674615453024481188716190160819649241226103199511978785135438128035255242251667915131295794984375027615694233517004788130611384212881053033430230037129736926879541510748262405300024204279215570115245660196755479986036349891395567531556315873790841204087911915542124815413925477792901977837883241797051098173096511539439580259242997458983757488001614081219727899637788376628991557297524744549388931482705350097442899619963821447889398042241040096175429872975659631914868543912082788044506338355800602682418995157525214885299146828276093004809888559141380734523148574862829995480741031730577850288667227848925988054411232565218592011643850061036185067963674346182647451195274128906499871181302987534290823567503895124875021414619469614608363774924839625043010798374007726725638111182571375716086526946686861280583660220508707437671015330096389719790438590283138368719735568084601337430437182255047626575557294605505424976360446327506356562482032847864251856235858438553714991473066061163060924438663362022305065889735890731036794508853729485402267187200856133420809794061719654275031292495645277219729371100242994325052562086751697818144801015953360146462984356849241869557302102020915640813332752655527370200827005195644908696025720006325151355162687800697531375504102600419948572767824954817355345023134711214824530732428610676578341690577255437185242573239984900641689288945868174254357001539542974815431819710716197978926656658811033138166313874060719704063280768534330533383236455899977396803789393172517619981597771276142562409828106150715859621458628840682346214343252008249825240637778868431551055026982371235161655363912047078088183483098737104830277986150888119715470508589860688933462864648434372664451615281766131834850762513634485276123797921386303960251679637492501187064067788241454480269080823021904805502814315642192424873196700441099048266186425114183428877481856521983912094153757354922221676992948677291314342455026596662214195607049943903150209429091054000664742179315030758395715288691357349733351635189036200746605557801075461974844252021907558892729566387389175706040816245400040119001863999113016499131313844476663726635986703680076823395221810963023956097887958908973914539556601156461491232478907948275125826594075902933866777134260282110153901395484611991308160891776027812001191156447475949650260036461288731698384774507692036416502514196206939042358279236965707672960950386885684619495156609304424189252074623689316522819888149332103518289587786985631126934297555775623830181200055733777697181183613438767611387360110136399110765641969692422491836778105221809284559545408451467761012555164809257647876741346454831204010468895167751574015209166162361608208749100890896692455424921536933141914718924676767598412098608219889273564373269831183577662205441615250662153945269496974776679051054367796951304365576073301660813865525255613174704692702586128778760689164038957757813225665794330237659140031642214160622758119554166622548094228176848850401918439836902869869204613317974826863027427913915544756466773885948064792929366481625898532576616391572196909245657191880418136532110669463248895168475882450010706380381707904086806104400457534220099501312112701562062100776634976897125741893208887067817481038391999575023345396530209174467771693741284793956168868699606666695001405369776214027130290884670637114095764529302336163182386704452256323934436726029204991313412632436730958845297747586250743007129610341868709591956166670349102409367279402305834935661070119366035087924045333522686322986565678778352940510304117900272506821071465275229130229086775111156860121156790847067053592703685247305904882306038365985594504576218574438521959724031850516296742208566397038270224357389366543976096928814146315066623192650431021412994383951969558778337691738970952187531969054884302835116199573151527692020075641728186642626489845902869579389369074974379822422143501073471666677449350105111148529852208844109718952286550261636090999813339706008481074464549425460104969494821993664322512378902932409984293352320617287109191645113608084223080408458100608254439424180767883326069028293015492149278407968573465039575550962306646046913820403555681080155985787868428849618166296060004424516727982190411254107548147725221783622649618492874783331187919825837846722242281857773508690372264568205280313442182366726195755835803859094031911006962891914616209136949182384774306515844754003923213379002405991096166980749366246656383402458897053208312593597244559821747079230950582799041342432089547491831101480423074789041618941205697336006550179949843368615426017962555571933166787660334928907720238191517344553874466304282054630985453044953566821142482975526005014171674947443579061152984252646702652224871270762756511754961419234710478014003454598747851038804763237930324407060362888614591213540338468365183648297100511055222733055724526000652684963802058584570124419545732174803584015439513556924943409616915668528543542877546089857484267852772476330381389565804904217435394501570791372151693918529006713372807901946406707354700352228044636484382357623207861374818857354701782839546453192980739731565107230898849158923679895589513082075535090824233970145681281554905828040507791265073996376981456167216505575941073278870847248153174950395636219318126901949587274574064901050092004178380868239277040438813088142544595565826989397093131821993530073812317697647040035443032695422969884936167899366017500757473152199420037948137126463294061504726673891878060546486290131590862696248583422625327056017334557853813219738109073842278496985062781000251179056634732541102374826079829330308535292465633898409033472253944185080958155109304499157648728341772187052020284852288058099793330001245427448822308893818703684657779111181073317022513255430883012508264786293470802012853693559387183702663546731397412980960607829525351745085620508897930880856003587315497348158768426278389622238024580486512818350248475270199852224341074363477081832302512468385199349372012115761367978760868185979346755438376790078568685097920651148311177124408715417772023296479393522528270816113858864347765685325260492443915425207739003996294616713649347685795485876946006183319799341734251705283315927232191572476050462433190518761396386259432156568501898333148274808696027559230939029158901071609632040189662924524815510053266893078259809959918488112337691903695731839944116079050167692334845340904158367875035499187841620353184845781978209657434754812113346315227375347332677663436451556566974988550738091017253265996655607354852044497687052776403216436874480491798374289535520090053259150326590469871797601089458006506840141878557068002586679008254179249510104949480674432001733431988467366294058627887215759858362868106256429897824567706235207591265468568284978967880929342070383656527060817237157294305857049128417067008386766105833085521222597092616490093777510404326577531195824517966378681226297127191826035084591639756815072672373179056243912520135395412783514482574756092349070722852951858043198001832426925580608776490035988802474942828195333738363656223225489997409886333229921336331106083366238369337255168118099664844484983138264495679098954794691028198007959197481412708377283070526246761945743264613086500090124159437199894601398344258688396935844226294708340163300654082374529024051863813160838669870796832064181977898561234915685247940054086295141012215556912119849229802551363450996384463403059691290679052148305479530954019191495652975892937552225797024362400632994163910777394515747891028305763626258468754939640001599488441369420198218047695875696946307659319877772146039311604382535214327474560353404505898513209642520815240597708534965480024605500737966288698609773283175499141956495458591970551866687685330284637531820831337218794979562579861560715672368891147053217510496131614649619076042146444758898765930799000131611749968315885488569048193271026713602868150589019371283739661524376363304001528856085830802770222794367247076249376011195811545311299405817060105489068651226217835489927905751151541683134183513835047719822273110859979359944272649605160034389927912962711283445103760365730724962158782993076283895772423114143828357728813557985313806487123734935430884508576540590070528239951792240761811818554325825185062794205483108658812211377676603617431686999100783269121405777861098350558700323674159067185642506026299655523791259119446499069840862127272289064139595579500991933372501464817804993398093192531445183223690823746536605865587671906843342984309142153075853244572210844526544393093271712960625736395118092251978360660628071328725329140801626027603983611916161332335988990490572902102235587300685572318587782423054493156770434838608416598194716682683471229471744465312478267783082442451799901950445375775836484370461438538415008606046449597346736222464132838592436398461388786039591382430094686010380966754194606423765827413416218189372275560149748268981114589036680327778793987493836025126599501152156827897673078980771147562053819526299244780783090073685315047114837793967489633599664716555184482642588329364221343759715195124457373607919942303859239863551073034771340967586789355597058860040118192647466196413082035768241918942278703209059394690321056665792034942063611402614536295605915732169415485842949364129306439800074215437687754880258480658836126927216118512249106421062434309532004393066802480251500941975734281338420049874016999454686790198134053285151850274006472734553662141108867880669077285506359347298419220921592056393454716493102192879778554100305565580315001238498632649259814242963771938582813859506808026381331038298160319065847590814261333250033541197097596526005295596001196099849672463043351002701120103510660768570692677868890809869582605640630623024111622987714459849034311874554840515160897529550743282160409046836529053491206117098820861107034286512265802964943794858549421672970172390827197762600845531611808064693148103801891358187951928048061152274748382745885612050347829014782451267158997643189531440351495396761685682782491341787981017885296614414720276048980888607395677996904561576343483008535511136885269537139563617781348713395951824715930774012873791608558251386175303913136073285170645017719703332814385894961610109048884096119190485582500078116034656372894476498295811358186920377081955024430307789732819769200950959903328166517036472894832605636059101503197182522394394136831591637823672786974191238491002095342512634665394045029259072451987491283632357315792069534894157709806781937343031626275808352645880762124683979767724695468487611262058942958239591369762336558814699672927233308484499395840137953106173663871996689317805357740618492619899816213835249123719752912107429218250472404245898625195935583162212338771638291532757260917591207371796505203774316023950097210813707744635528323957290636310797044361413363101549685757912357547410974265978163843306688893288129725856755822301078500607361111871373953577316277182555208314020929387531147004616595067615852258093355499265773703838150249366176740578302599293879456783939728108528974435902538501179885365798909007799685991554602014766511201677537462572929880518630799784156772826773549959218892499000478253947241544432695405379227179429400712917883028545445397374653365278857149464565478432503766545116301080248282587151861196498369347738068332203701984380091164056648996525966254148212085432197346230283398618707669342524085086416522273473985259943653650400393416691661942038737104823913043318422631026371111462949437483319862984446329491226381626928893668324400842830685952168248834506359013644135446654200773619977869485594007190065078802226484997463273809635945516456926709863975540797859990785586729753659029988410014172788186854321965811745138785525800306675830718877184193093243507858080537950625447978240493606944234158092771573710206523868739291315383881011559626645446611153768860945623298888409456931173178492508310291407253796640056137279056022270489297429693892911447768426603976516276130320085608026899000154427787906763827568461311018835758921974415125264880525247154899958957824488137199682588771237923652405892054071707896937767489242539976426189387385838809433364119527363040692576766777451525074995987362509106889161397280757837927110874625052948030122418984575800038135315192527652613256792754632856421628565768491987607821104334797583320057086600495278241696525968863090379185144208006885970598831373454764757517082509349084117831500693094081741780626754428895452875359467106612143831095085805366946459836598303985348626640300947466918933814733907322975209480940457912736460062435604014102250126489173657344772874575547919347071206059168547981492255088698396665152385900904453879188210295386683134752657611017180155079963468227182022200482951816851601087994669656519318219364757635683326777324597234661649110433453288433004901799127492208778492446662326705003887919799747149638349845895867029101637033274026707885635126810068119661217895619738924334567074763236957457860805941482066614867082573514054472165289900972363458554446059815584446618838513848039582324333622939559160991847353369279104134706542006144912822155035948394709656415950573544734785391557501096860197828403527963296069422069051518225820636889660257629979025303620171218135601838299601682620671400232021949910295965873197468442733681114112310089705572505150691551407480734507209701494077958448768033230569923236030655076379134731184750863638833646279624755107733598837283212902188571655296848470043169883855535146748443977313650253956512477992469650416391616915361176295275108454629009460418727513226719466896038414705169363144450699966400745221367629713872070970168838757066260569526073593688017465941794944415234354995262010723822692171081641181487415974656345708049712502650168492278972487923393105017230371978341563928351041571265556105912711920638303674214240920519086175811720298318034838147253748787161498598297410005694921849481447436012109544273216399577859768697307029693602577675649155255321978401774030187288436555878684530210196394729455542799294578033687836459556753456105264059895914662536768742889790216602577963253476336772946097987027381658650958751999330882711473451551428042361785437691580370666707722456604365435387323771799875109671293756946328640405683483700468710498380496004484389155912774348252074994096908979883407930362707698310324720499451337991888555818758004526896949089949350095862321027586587001562652134920886982634553896225134291559453522456187498546213983331339342761369673728904261741590339657530835452748283966498869168795720863601769774499567572540110715962758260607062458383152516739911715206972908358930165655890652335152613268862701863086204631647712320362551847863821970091748788020038966630744423796802857905155434452985683236549788215048381061482770258207677389693822828445831456043113074155917609506919450447651753802327519559485003006038878205577780289808847785811515140375774286273469575482159391630818773855580377157309290133806216961630875618284319716224448213027270308277329841171660811605595301138403484038976173462110679155553866374938458091533253492336582990178980230971522114417231163330829241781432518208975671661308304439573299708720458129760637210365753435119609563509389061418108478323603448846989329374829520163788449169510172991374158570150336099631968550911449851410727413190173982462711464034575851890754766174205974513103819046956277649530038042657925501934146999948663504419529153325530126926853993764713626500776932908511907286629015209362356513717342813569655838391069257514771412456939390181095105989875837397146870031928000887242896371274528896512127386053032540100193079204659478614385072852363992636792184145344236018618679820087342613862879386514384151297024257505371575024733427412917459314418331698318898471165099034282660388434959073245192980239759636585372906864412638352866140998020016366254489128114743110360833405981113826256454322884019873480459888545406482919911344556577851312810693908576053657586585725171198162782937299588936821829157349613120931003686943702483626373237430034848076095088620741476726333867460112163680382772763969834340870843117370355829035818109130767258240475218108230870880383391891654949343419531366536897376597161104746550944874107723527060721855406913940470135006259163585776860250428123085771494872790006226594242816423304142368922477443081982572361000023022875796809215605647526948457291661794046030066739273919658237785574140049046211252863403454694083384584811852046126686074147858333455730055485162579213941151084420974115436993323062879147690413923646568749674347027633264208957365392843555064660379853155267280582901675581258379659590224042976873024434029078792859174235548961081364182972809504204684994699327488611529553788747999237845296036029382431646814147452065280894009635553671629031523541756385088659496055754670530365951285676551134972534319202778962402432782397949769311536844354031855152018527686514535806004650180049215581448326648062537337804934832019775125174150009560578884248173880491671253690048958710153282178255716152744114105991226006459675086934225327764260020830230184310951093670337760861511458442791368994826414772893934097755723628884986584772535434063938823192631886067348237378029831555986905124672575984859552229978102212595168200581736239727591402404083279180500190863746440031874534291696683806613175763487201425041997255072257591929330551862135639566891887983665360833665178841737815665558079452804338296151535153567392478880894983567308062937288323010802121637550650484555672178370237388045000835428572952576411737805810792216153816518436443235798802098044145943011259023860694052440847842135396532759917909524417113402787079060974311880712488019838791171898826349022247128961095353813304207720698178109760206977727809389131487314379986523506933648220418158828562250446877754547096443592082830277418126539117923809870581251813388377491888716250568361956633728452431100720291771607792460815365759574642118311379207990103841844196123478484373140468087098480877684219724551155486460442699741315582003033435331301822363848632069448187095333007267768957389371671620680158915681505121093527952507438953779765482714415529057758744699960174351774405966744572914080826631366988629477413015984063357906950000084349533761853650558146874428139011612650346739093985034213978812616535188086211466239486658192415484686325791439520247662159012769452654555389839062319274429933991686060457457226771637930318978370700865753984976200065719889389253512725608018621027271670695532623974090208658430167582717801739806064998700052810831647009698421324807412004160800012569474423509871671613409962494771774651475719672483745827991706380168867825630098746132748921024476060520569725127887897650788049800161041027944091717889660239496052177174039889384359251972785008660055598324431090119305190357325904940230786515790898127916024526228252108906841532837171653251403957786140707537205548596505016432456166904213348809727345509556686764089497430533429010076327631594048698410485013667161682827627278060564029757380298861493816762251875323820548205027965517657989949957302383574628556410326288720927642973201536178526937559694077695421974627102847925141880850530817770629255612431066515949455513149940174732698868892825193586530847497710809248897511554568943649451995736691221636373592100349166329385147787013133182594078928844025494035200139669177445633247504670641978378047427662777178841502023526381387082468146688320846980904392798889697960069383758182242022840190030841851197753799323944533869070578691038876161735634810389269589405065160722620934082962720156539910826505475115358174895487631961196704018433823836885663597389471695148819802494100812568911973486689314334534071392040334179595531474548567274019964106520098955843598412536229813659515186474324323394341127907320164079231697574661991170891379501446845793211146863838852713705313004621001735501026351617349686368208062786726786618379020308206857314438828726590917971895481457551992002450049476228525247249876679364775779554059369023883758000018236161328156221746910144366117730505949919172825299649772849350347651761456258364198673240835979666646977054676556148814289824868110119369829799870502193598537939477793457355061870317884168803823981153777681290616790189714372232097483313615711947158487374539245100457786830636579457376426074019935782236762538764753650093751648051061048104987770075532809490241461650340806073850640319952992762137272469832742352882319845454869177430376247987988280695152801249480007014138902105133440089765806339492856427100186611099852934498620829486935761812111569029289282424655702429323941678265519948639782103656231765313418548138738674315902356582254028026147694040883667369961767627973769530140370839950591014556342068691140369022332001563425088728259869564348406082898193422912362801568132424921215799928191343391186897528427109157569883572057667449328319862807532914998166615186562296454336670512882016228822010362154073535137948434199004370066772661731670017645348470852678895161536537032768456764235007651461558856352223581707446022800431699301449899364128751904176801095862033634928575193678962995482574840502260846712393085890692321280909611994894259096499826147793973110070386536772717865664804315445146426184227211954282480192350732082846327516681729962664177907848950240371628284630003709205689670860367762028374744430140944358665998149960589836679505278389118737400963579291373390265149889961723142723728748072602171363085136967598275843391698296277637484953424726331911523576926959691238141023383690362542754669553909403253260772774223103707030431320152265676685275244648813360046289564303226519822954716222276937010831658515831891016039840772935506134081477030002778648291884264396056152673651545184263316043463238011702442798901087354158240092791003323176946197086889944819318675081022017140322794903073177086994260487912215175719348115498171276276147306289371203960572029759778622439050620337424412904055241713263873985533590360632723252767298348115601667529284960241859163395602678370854686673369926810372422731123522438520291502252956009948316775207328625460390164554618618932452129085936765211470763705941331275172822140365623723179460196219755074235133058103107230931548658105879188915475298399956460544820641474220325099020179579217877052294274913357215510484285584517747083881740721787853045694151789719943786543693377500686980517231518723619315262313080251716228276721990163172499775824300766094181373990161549148962245926395622716669237149411128189125912836651557824216257959160522151874528529847632112062345504318015568395054150188329139989676233534424957508082658963471642070365559003636093360019725028246705218152773975806757567989136537175203193010468301664162093928514541194887634743304998647127139703369663870380087746178357124452259782899813751358635885500280963719981449166336684280205528434237462148722556207780971569766401365085585739318368347357585867337443491325997621993875109752079371447627017517381421366114854997383821426099610588994539756392544173349444443044189748484228359730547126373353241851318657604784873139828712644791221804558799368371371951292782408389578090096470880201353484153205020175684725342380571755959206215122738311274192956203910647885386353918042832698053761759918271693455764236217597827420680492959436913800323875028461947004995826287360152119812319522761032728228484878100607840988897609547309496428148894730011399981144160587406389799246247681399026978403975074489840365874125117514833159877609105185456515788911386016209175921747800323158799407163735296258315140887321904281681434520619742674936306238473241220809851479638124363286672643151705334408804800693509538049935071661963120114548888455514614335507645856969760948053587760921558310321228714194330216893406370079006789308909174236150734291775014097132827932214788822499555062597164276334634719791744777455405708035573815098405085148312210772053075155913272120060222006642338734369208814921000374347134901772329287042292434532397925510296876399552486239184875180759510864463850528284979634882451508226179381130991329339782989390358071089943434866424124074994934075098125793796286652935626053594448041571176301984962683602013949044640581435007027629629507445326500475474037512065374232425478257318095191955825571678415985968563972530652424739442235479221987172253323448526406444513471704966049293851489089022728951003023969405747074459478128737081934788446727716867588363742289458391035699320262357035421402996834196185940960793857418187139298692803543923050699276861501154231726340875039581376877348114741551395717278705859419117661482501879997990281733298007841778289283774220126323784165036623653313476368994482986985979784582993297535621372420606779413988518925040845622854251372963961587247160358958688247994753600777467885842419986245056271861369361137627767620913299549544022896390633901373603848557165595664459084239368466710242501562616536993623318033016886522168802404283749980977903701453125868140864611213409110099183646629587951554600366015696843954633927211393186958128966637033390107226555806087775183594544753662972377798021054635892167315576281710968667685113019545030853041446858553292364404278682423959156294168358895130106837633910431323396087806192038188311051808923696093773338861515884848015339567816728618337452494563040014791001819616342620184296747860449513453941598222538572982627612623678843059587710575599781663048179363184668142811734019786847921058851886399096510960709367488933541209678633512369553156879850464421182566404624657834757137648654101744420463836075962845446133126529820729407168207625250406941939239415650073765148840804949841412677282624783137142133785071824160523206556747155951663286042448969375570285339218870201069637214032479304133552975697783074500227141258701083163352533248221561921411179788525768528038261901945546211684925204513581734547751792704133943719677391210962446767251361531769836918229036632289500482440584284252789867759799872378215316563570369524819656667137573046833292963758851920995036457668205281541225840994621698584027660502859961263863028468981749011499088758545170642339542808045474867822567952445885132474487980245680484477592958941251401841740959583894934507067186827889142882241031490774643523554723691229627613063380659032657389152815815686800610736653012473157035676957423662176069708529888250756153118378051292697802059386038811244739849740490611573356750333941735019950621623049024102576164673017400498823326980570120719335097857918313099388455430812614283624733940204182811660833005348634155995521458697619679559597652341340074356434334066984335307302913878512551956605145367205845143004771821740321248627127326092645557126495534484020006773902125737149423446966843185006122209663871127343840825728839555612638109278543593722812347486029133959724974773007925477930487811618500407294383562626902374367113383902805181657522634578032871683988994528620371315626834743958215915244997111242135084347487277386652615457392247442754905086082751511909223885386737742190920290581451239513309115570511085717173062863615418307880994681998393494962231406887923259393946617507215885131764977143179637409387336927305200839653293294323346490556919871386021602944602282259054186494606376716531034950235408346046778219103432796610486810060261683241317416095866343028386746540698004646335752878735346475626777445284461537846778385005494221957004440338719278284059746792883438689107621365531184763276296720094469524430890961289437376059976090771721213331097872919429336259497042079761812189166166361909167239270244368020597855753151066822740158379970673085324961582480334641707116566888152886960151736917615302158872002578416021817470791415245504831621093864586266671525995126046163925590409123840943542232071840630796262502639650836982402233869930545872462649066796041393237398475925158974831915245908960320023981312419349349544946935740024774288105870868088752761093181437622424209056138145312257045433669588343851148031632376130206682127678205446263085366855132444764626089602922102340985949318368058224184752241286811274567597940812621316265394709087826467430667451685194979300599690108267649346257003208353505808514317129763019260662389340431570175932509318326725526104101033134419833280140942895028776192443938430123730013170803366678816503119367780515090803421183226435054734942210567231196138630545871604820370040724082160193567002817485083472788368788381957115947743028854876717507055623734434536497091158173256960802929386742672071883599984089298905046780402499683745060204395655537020528318432363919740694254385938120694775160408415014420865251022163154891399112429385912981903781370126551979254393031940519433278832036715546863043701897957863293373783973216135612690091128192132405974488007298795790423899207171870263645034038937972088042118246055786841604254238731170365113746221639638471240053753778785497508236779135913231301204973127563018558411804895276345078482300402553475829833650698183657428438888783788569897597117475194254343199961667693378196314822183613736825772057908854321233632805684265347094674756883053876743929899330842752055890329459651791464446178750995838116797564836136047159441486301565326527569849193582449722798696232491065063599691492209050910550761608482395192342303008238409788057529654036600900249027138527328688843861597447256606983194473597186874734964020175403351274622060789253705166809054862225482381239944807930111743477874707297969442195112972504098569008371887404280363137276633779942732652996987037606793367303525863622368058042210823436275758694244614731274559132493605201456694023840239377759811670721739181174874503133618343052803255521207947191391476132009794457278876723990958364939256347221147474149238333082781736652555076156342825200926207567226279412252594034416862597370306813618563857245450151491777075244106205402575599522757735271399127499760043348087359957234361974343088890480395434349011388099871624759015062352487860970755813747770546422475882682148945216287178587941733880930588141844164694515439392877464729801844990830949516483166638127993040856660412909225731979857555054813370249807948953590298318643401945515975519412343709232890300680478427494467679669436325082905635383508025563041565638666403696673303004741264670768327614031311902660503425939926572061805644740901859173153509343604935722304475489549648182888649016031458934063593915129051932802693563223265045431078322972261593012168909298783266489569306173173868689521498148460471842845032470382525560865312917931800449886061441401853349897407291938178157636667865899731276252866572383206742213551177014153888796780382113198790025847861269411694332959659687279096236189627815003964515932142922688032600105477872586481713591227196182506734420135980278143368694044169659568659805460155745386031467444368083067410085087230524566477989447566806247039201679258541708208941113011374102105427621195781419112192915691567051964624573752964277366573883220626057716428277066359952366572378464625260226656524505841724445151756423770839150692882472838326461225603260934446845810502685628622786982914437113417239328635102266912075101090987462114021114326600837289827235600103569621476800586129134079036083969261211712044731774661432105683116346968597858282806740265215323816583867657777987834040660467296988132919050101749545916467855305339657549964111594101785714962679852181311711153702378716732648141599413632192652647888579559499487774544894244072687016999609701205452899019133397253727668105441473857122559981922281188257714545540431153686863651955396670987096264619782997098534242752540906722285484286400308169705343062025422005385278625713177136721278957428201290255338209683344716721815890007684779044594921614649277797267190091991581612285983287319775055596808363472262258381174494356114775440718778715367921288924512303878351715131545775607989713472277455724264553726336471400464042571314123547584382890314521191591970437455090776917875090404813098769692366172915605742990907071572416424443440290358185346195508689547955676616878132478373568257324922348375599132275083253369973980576490372120525730955064922659179457203397730653791225485964090478152879324862156844804737864224589970222257194349141908620687182027309562094408883903365654039074222146310773336976418337948332717103600844761264256629873309103385435734189841961147596166769571565636899368258556176795853298661909397453481395088351097065633778302453203947598886183168662751612100729157253992203784371902244869406722988883373450091289924860272454635582307957785736993088485971078980208279056621085139460245037141969266769531343633756797302313462862012820403423226698056705336093604401787483774613688004848638679350168587479600524532001347007287974040662378495713030446543957590965111309136485033897439569227384396369840545887830973736780210947069108717505415432218418733181388038041956658184589472669303402313261587183406623218599691539921125327445474115064222951325583518027036623330541683004444088373930335502424789513163123668288240661984747942153504028892578794337233156442367389134704800135425868037532008587813529435288963505720419059649452447221815569643398188937739298259292532609698012471967496451881629288903694042411314221623736092033169197734563693892341173185436056026648443979050168511270902443896006682223051164084471510682698400465120581637771347659097670358954799965502165966435856896650576541345696681740053568801801516737235814064910242031063554147667683693507202953200226232386404664794720400272912794820949750336482444474969872764785970969251261065643986441019285927509395111182270685781561362098375327081516897877249974662998097157290785345215772711111245749414990070431352690878372200945028810375116536847446813999109860068714811633814479378913628680811110149604345366978085593827482832231727975937773870202985777025122654762311391186307806429189478377028855466239240678822357028244371726994270325297634610287085501623245425269716224392915215584638971954524944359309095471015637663625275711514581480920330901991504286280176425914866443828386396258097236834701539080432847926373599369195341120069087189379267840192509423038700433127090787988647954226011519650035624795422073305192900700768002508364084614069929635991285339143862815778623561447539627846798913755292671685461687758759836145452111983718543748289039319806058574917994303840233551529096916223785134454235421401065690137682178540464003425786209476147696699939411956635763230984782719779846565324087117919589184804916461494159884213820525231337272760397079280631725901342631811977928327474322591691142778767491537741583067644739263973067011174034323689445052775910939969544297923965779803560266984908970898885768904156322386705170591644300218404968622438287092958514623413846059867881079622173872694726317562052631335921841939612528256617200952451323094220325253319826208570510947378116113457263853283110755316955178509485719019582841478082747344418099994341165174631448488221743908275055609287833789022689989646127099705138624807170996995460750478079082644088659817710800328490364809161496103415077274485077592032196940260552731781434793309364563171337599971816005342796967099120004000581539015978054070959135427781456259325581794667318038832095131889168968885457663217836754071440109777270657360499669590024871547203931232978921672823611679356342769795837040786153744116234279199632941086079668889624722358718399879114002816432080558114124957928944297351679023234335945816612768998495092298129658938949866760124031015404598671289815349167028536475750223355683590718391498799820337916377033395055732049576854556361253533105459916727123313119292604844241430451166455901543949807982154907046703682906313046340539145701151970511102793016610784762166388082998127315585927523068963928043713256733203858305273981399446323650517523865042166390170689844335559519487026132714395986038822700246874956013547318722871027450739249799499332495782856934012669497806707706734114318416060115376892918621737911882217702912703049863500952961286956481073752384593987335596314696575332901141142687151581780189802163653847262359402679902045037926496608336447508949402137286628803752124574118235680505835623306471327739706123557347755679167991993443886073193034841207335466865933452738151230073784335103663720737379164977960723424173453758084683543306513563017042654734382773688668013898613212638838641100047038819979460271661896617005257731709646216151671790742728013899212435351117029143428106755329125581906670306349699710317359376594707452195712154421373344404164003997331884575689384311426552650327641868107094122434506995550700291824736008973820466684725752367790051188157047232647983446134597318044027568634126398378678527545193101373815628957417043481316083757958176698690955742559228516970746881477297214751230954697904961700278910871468301061918631221164612750732177406569395234160296853083806009027916519414379926314472055273170582425701247710616299268847138114682625454463107961650273156074931012272583355269154428909318004657819567582876820484593577711581747820509198845517232740133291928117055141355247961573865078949564601882121000340698842352038502323451627103210897511577239701498427308599643812654594588306056144506615205739795979188754386895976224158553177378761829232057921333784684744425392828683427904937652966028946889857130020033346302658534311696923486777180291497690923810307064064788954719120183657698906572232209397207167326495360444481324451995589977472432610072316479124175695055960832664108301270347347206170504048301508640563757603182507467513723620071816397747899657473407311666895652783191266051507200750888070378042176883371686936374339245737209967901090193027130435448396926440301184982299481724285101294584209232647388059294015339107773242495784733534958600151979262120891868747457379530365840447245550781020796166056408559286060653574941983527223301035850911596165764868022242878035762376665429481197074578633392161172246917409602748347380143512742203394370940388365617762199176050323833417899932137538040808945285085481434470428538537121848816286399394875853023307322558946540675058269471584817224467335955775440567001126884142946913566637267702419816249380843618911658958604991849441946199601022416760485190686344981937268780796120522660362812215333999336000165800372590680436419019397977834614008678163786116193926324877663142234383524448007715961292995729407054802611480984101133896585921348192112982412105472958518954935753876961092058679655986296509552397240773264532412910405544947008387627072544834310869874675874553362210137352153040959124844694066340943594839451961393309129954195231019969731799805630148635116454182790373083919811897808388824686626657932715251320016847874212131659086268368059362406880879795613761811176289691060313358875994258829877230647357966883197326242884231395210415833913765533435710311276421917337308072783552076800628439233981546639894312054642031994975965080899184456747572998824037372858095158491037570430376365834461928121459799111470029912964323172387053982304988560597870599874464402717920751947469822221814035185658701530622853267127500593486182399472786769094931480340333633804064334987648434742283588562785814345135213826942391570226461129937684524958014143932038566647930018279542308380600612004584554901465797692540646658719199463618036394729584363377813237198849209819352306425587205016315319469767068955753706343181370615020330674287468991315553681661116025187713126071317376575108432396135485364535950773883306688528698407095563744814147770310444613646851960724510874326735612246136095692458158902459500378485909263532970059057626734546883871667256794681493006741877629126926659212696425931096906592370542587606432500206934862510421323066687378426896310663460724630481555428685547489351539392342358561408774535640211826074215945057089088027806187951996948992032626007721337603898853664802045221746979710633672492068183452172036306959930441834913219527688799073592457331813804221015607675067060267903614250891461418019986804098687558103326637793446934350714696646798003347450670624825217480211655531130869970728981250811503270474487260662634191263475524172790805677946425240794442102489429479461423028586588307569120009537019868557328848873173397441396024897972586919994728760558188576193671271981702299503375969534682567623095613822946690769681286961956483890787998961582387173639972251456883106355525999465951945348925343131682151106531874628040127696093576803542965696858007982285337772358332730886076353114239730313439292054426003685609794878209625959610351989970489823472736941041789616108546422741714132376315487355094779073226414169514541115387858952838836017081477507622185998325260598165020756862202573944438465786112549721463825965707524842145149540354724021504746640818701941740812215936552653443032977419083039865323785394723858427774648203993147905175306187310411063579254643218221189688057550707883490326541786109151385342239671415673348077015061609943879748527288131830653555771810907167501005649760977867449621982221061209281713317786230415504994938591317708039883254880916769380979718275171677169525782420133720550638528604740544261308866203694810434604890516502931441402020332449206663182234543140730039257494935594146577774585187183102990458465910602293976868632321547738243014006484812597016371862483613825631476723165933134728439742449184447391520240621252458294146805877464936813247144516241664302211400095523954514042213198667390746112461170771106192231576430141892599351245709909603219590767077988341078686654374829357204717684056837539728096332498401681772543577200043118540055417237987192391882443887896676110978291024126510389015212115747277637171954434085351320471285915461874198584350941291664953189060775859807732850369144557711214439084501340762361213443814736962828994258012066275621878516302761269422871242663998890049791158665123598065977409915676498347756455678614546155325393330359600727426656836235948897667853778002855825946012465489321195004469338119998723196562507902183405837651750548614947639497133286942355835598865474091970471990380881960568689253329930236995865050297918473525901244152475429906715549754775680592086773533558059743291149176052031389842023969692872771661317175799651559998894120511659246149858472743433357684366230283191613322334049953051525405337176244605061713290757183499733838656118550951659066710632745830944218255821841777472963255364509069910641827356217076663260663322408660867078203451623216124807936304220172025275978307426518021657512226726650142320037007764119584979958839239692324729407077620550219793082040990451188690202515560206921631669422782929305211931369831862030377502612225688797787909121920135444450355991709703915212308874739817355923433725060570345326104617583147325122090601247343341168957628982316113696413682818037779762706845999094442228927414515422103770402990847627196203194422328969795473073956811710760915886812419579359418978757888633324041091203783703630004455762318223167691229656481604898259809520648993433488014335335658458754696027938000490441478573679770449322579557230333335258281858796775848617767996204676669772870941511252733803132063434805432131169536794444835227394187046771969263314080231545412893205616122376511875843719032391975013755706354656899315010978744204176159560494204018548525012586251473362338754875826976053899395759990398920363440945013638442881224298127339748089987232028836066350382003733943501725271381315319401678375286701893320758354535227204013830173953972442878982812301362944177282696844160084675907611551551068888059980140918241048667752589987050343922964813842102482803147762752959335701721728208006302145306180993793837281765575921846468631032511650751579939685280120041508726648946316756769962750911351238965537041380966552356471256244405576771845609541618457746434925071156453323562174243584015929464378013678428830049080574561612962873208867317860069531245671926446301905768963045483072268936385624678808157491538128068821508952356497805999570805054680140343333728658809381001440422536738714996425530168577931884362288592367071338501791287879538857086219011098874448302383936084870192054173438962136248790542370902041654533436325125839293399893489804203705294133315342141951422176549188048936056082515922663329108057049041226498710381572625665690492344709678890410431272352366692328461384708291110675382454692715338182058596552554643388813222573174656700777916931287371218637178647830624305790943658537798907653321848246336268196431774342224718254647179757006953379026247699681850685830461489614509580129971442711006638527017412029215454961861827063681938359833871886885474509896332745052693086334141104752866380863358553572493822875512465489582611346464074298298420990172323070261145606189418393559603169532864311260303958112301337519455348768709219969094717242850205083039317296155732424483570126193742721203071908720741629231614927436597801709649856533250698950593966087559083121320366103151238113530205774066337277582865709175018732857802006408971087516037683411243030293902185893319803213318092084353291103487761526019056513525824804897778423487110598559268903979884571047205728155598909589857995456468276508811179719908999118038843931362693247099978620060282970957937181535687216696601599314359942584579589602568735134773604664917371478157119292454453052740367171488347380258115594930412388379621630117021674777007379659760946210504231711750226827270538969103401923344735449850451035074684586188626692142187975294435824373122397419581674845570667947668375078489487991184756645361709593164393078753779290481168898975645956500644918718875672179257782251308286579518616017549021278781420870282336638368405541726571766359318180647785799708905366010158718739230265768868926211943812712129743877849722280860897710997633514968409024146415153114009217101650150379877664648747134732887031390649243102640309578116785272452850040271401767061101332965003269891365262445389744332231011922220687332504678168889966217319493910214704366388549165298177637656522202529091001397421762377960001504821882512953037076985879220378360882189237119635111518152189758700480855535190843505764729451763492466317171707560171931314146618180186645293307453321201808358708448204786214331798744917152295189298807295690009286365576207165332904044079285527425939299785608286543771092957611925878155115865967832971702573371116013905418329525566166295138108795423423444325435285884937565998717529032510905488338012191083483029918099482757952190510061672186240889241422475900057483839213212273908232863880696392021149575372935975706637019797929920391469923475232661297347329436935721077753857720693700945012236617437988597136745937015666236957901736163184352020970193517678051915823283010784083320245395770718555255860239189717310959473532410620047114887281088427065930284902440304995209839028342853327299700144865608738036672585460661515467670002075782135180180177790278023260950516192633281694013607002452301762314220389711422010518517780172247097603170744927064807987291955196630897247672716086420266721437590021064534171567049519924883739659358859985265346594300932851216058104891420506362474639763058264365771986528041175983513618012513556560197331755548721580999490050737499673898732668357519901637782929779299188430590955355462365659428958350576108484555940072154055630359743216952088259036644763848271170938181113008864475082869201484497724662537454188131247410015365946342785909033769352514882650874501077480369597523916832879696416579578816290495027063451474472395322076031460457816689550018650775368113912455689471180075447729059043706020474951589301976991352924511127753147597080045830407560446531278574505897399911997459383664116558482052268117598355415626454401625514265483452216049032901379455448628288213771598009840789002543096093526441773566334865783139862089295409603222528058404300572409918071281820500151651374090237045698085302981901761334615756706524881038502011415908999071774675590453636932707449514879009243890946344296900915513905186663074164140963600568214065401343522529734891139670242393025255961357266458449140914159779130883164879552130211105663392924028779173953987088030601124812648239830530864997781379837806191447622670581421032862033068670327157578738668251126920276308925491907031318684624349366249381453841457908617798967348410041404330706542604922901641840646076061706544557862865181497121648275060205816173142144812245747985588963273736790148790908711511447187288865087264349721704109578262980753336281124842388010561160931829882681634890554566288435010047747944268593008970800042124372047738733121847561627491717089704747933611234831183300143349840283756973554692445033611213100702128658237164218304933962782220366271805635929683955161789731239465418889073326653838680016838802982358281380149325114199498274307165570747138276077913979220289544948896024563694882407100912968387444168808637854885374212160580588085067676882977824510955746107120386919765149586955561031720885387405309224987709273169290061228786216031788780381585779727018986975694883546370077403939986893380734215283580146387019972347204499718244144416027823163534878284680825911070042452508555679787275525584410225035551071641157510581408351919837046108570622080393154899756395099667465145677133332575493549519320804547960730077490100756556795668614243802476502398373727914054869146008656289938475801762154004090583233723128474214901991739563766449697685975129637604294542715233721416423233591087693685278614128377117895221467134562540269783784709713409899125856807667789397760334233280646217039177761298412425186917048226924442544886457753932989841595713446867169235536782845339526078269447810457423659955572285748388278724600195064801188715379718528692509358335173130529396202761906085293385943947463476539040003328068922574426313164130565547574619395446186249800699334549767448969254309119086874747781699353244359442091936428797657967904720115944960925753614016810764476586659831047581534759392173899470455161012990346753466788393176440343779980318241411504175554091971366835376447584094061914666268218606165250745235474151735271830196617755487744291875502733131212123141765372172095139554531090291435449588783138653768368575968796905209014081122523057462096561282023173890662265834228375941942652221715567010800783183454751228877285583442610221319322035536528389497964733957287476692684663001119004908801172680562673278507655325996628739169631793697219234874137356023057099748743724795339035908411687945594438436883204663249520226059348225405197750165705041735984222757639179405755353356781734730685726019321055021785379543608213277584075297643552632547565599993095546905170810375368570457681688450240956569881772297507877073837505655094006051266490027589789102769388863922638526505126552946340160799840207469160744276101168930259785231997824135563915544907176432680929824487383472544204689302700653608056283579273112485515542140747599089217399619512602944133936278635504068315002322333183204079104861542127430157899570781122859338234678793298743683518608676729746827625121674324382888208949886463458706275237706522082222909788296898298235911478718617733295504284780982123516741380419215781585336916219214482395444455334034904449168463590081929217709206704656715461014880181415307849408987684549395743662922303110399406739855969754720641949320248756053104011352856661453319895027628911759339048462358513334021873863358705350170559175950460113190358247772124571329433702724691049019069651244732578614615153277415211900002020812024427211371169435313012165553865429244321579222516465001470784938856855562096655490335816612956442709597863259949740046936665046232192911870431724320150320412429805825626239758554418158679562350204291718454010113821753850982895302818227575415211566964977711186164059970417304819579623950784118997063533667009755711446504707133128354383561718639809281840620244861848037407188892648585852176728737170485810751676162860793627065225757358099994968389267875552077501568706923644177490725441911879239373280727524164537186928971650601644097665201940416224546224983546713071554052176206835741854435662357974485010189658083761717824973092140525273645531131659995768317900575543708296074143798849606518035047726351281180868448957216800666672751215202305970984525701255301240354762183058193227539551273286617171423842977171086558387489873231810723358225050725534545835892459127053465438351607561239629380708271998974977291233249597939094665300248999193190469228112410647549849714413293067176157835391023356522464881101225309705461196984762823249234666486683038461584320281729427653509596671915420243097345423748248143869316805209563373873534509849469889437974053166198250521755461475656977268833330239578924189023716371658748743173233026763009570117778979144954640922116604397227119695284092787957667564133690375154842825520489051650348586176619897650190965067335433222690253291699799186708094457399272715985881863212719511469212943937930994584955657947304961955116620494398620765213218935474694212502102976715808137652368586878736276546043293829717728379323068637801402159723688176786535215487228537961408346293449116278148843858818819881587116121934785468278885974159967147288789554670515547139614563610238162239748527753476275113251013457923910686091285977509620657701735719558377709589094842328729434094595770482459965850258153218124855951659205136960763620062377838121939307069425463021368137075772406614808425861426786759883137123810549306230105545488099215292188810773316216101990625921265117096072896387953268657906157816711432396787971857892099615655645126121992739540450357251567639031843630547075815785242401823660767370714431457103961058087508592531535712006132551980083662086500935551866904191340842370358419664651230087577655143840484418499484202717410442484194162441446834836519676723089876862284700814798593105560663401324088434693325722280372720818891807139211342354049761009247147949047400121286861130750744925812231856022194684801878076438164044876155047361994404880897115598180943148127292012215748723698277396889961929388047134671130703422932477355572285339803208915326351699275731446004157631647020765005285901045944330962078659503582922185704702592370096037847849302459248518776466733163983478421469941166723361105781880752419870915792435197026638616112396884944639902225780515765870571934346020782316064406229460173447978061340179139163754799984643176779343274922092893783394902190296230288099600854132282520145111617861293749254765251745295369054713986285781100238093315267849481109116268347412483554015535666323941346830539918952490720367120232814852143879048733251021749200759854820356088009785895771232724901116496492697802522177171505402430416655035304174761819101195943189483646748792564081858033370296383778319820757734812927377805882631280988658769575143281466604754170452182647715720835809035138281671557328338092075926863747147195379698786375238083580075482409784892561373315421940590943714672208645065584401577757133854646352234591254571467366340082037287639536103814404968160446091436917968222451260857158107433634535282508229970565426374636229919895773506543898595697349232797596187891866818496797671850218982813823029525465848979611624552199995246810963775531263612657692821529369439673686402988097862294413953647317508947976593231824517092934586633844320918650295723927353176157618696317310503120460046728285602447674761615698941051964192580636072516520551169993537919164221745178415393707576684849122262715113512841813655472168909949523102898232132142283779146156200837042417307806464415620648402863583343520104865451259006813964066449292664776468967638440531940116917884725110484055502385833488489982531350039674509424623652560117343382724687259100346845741776409978505595529037033218852884313893508600079400657947072514319078325322821560828703504322799895589174017038502672153540073253572074892008522412090302402247271971002466039657934755226546707481929109075264920971439371868636218600221480318170555818966774446837042332693562738495481210545327602515131013862841839199866635449008541432654883438195202116211740409665670212909792493654219408154631622236949532926081831488953232147373987434340676667276255992932065189088551586840273587343338573124269506038952708183503367861781788280633386658944276147832778012993487111525163822115280778458222596182938854746186680492323222191767050608263825128603306276681924634466805126369190845414632533822801700737254605816796254775462607640793848273532048034388313842648953350483311353323568132789265853886279358308464034584045396372233932886324117154122771415487788223328434596640017000678931547394777891495501010231719194903455185342085107031692694794417261784127116813216161544385848533953331911462631092439924611855769604586517428898706250979005237506846866315605466986302278504827915554477956104697969291306978392106485751561251238163218795265921590981505298766835973781409000394444133759877377712420811561045182431795196399584034253843879943153617453126830569828016641227323867913056150716793695067448658929924421129123715634204876818316864814541326710459249325752016437305011286663942678541934072589744384317880770098161368963351937901228022232516853470401180134252686951543192639536714587120254248155506951333706862256237094790923991827485938937161938840538709179216547074559503679413068466189660863066560232647354396145701689253163297871371472364840428411177449040530543264403978996317038690846319504500232178879048014909979005053119703990975990675510289404907998329195764654127545829017826805296581331499939390309221363515704181742666415445665420488727683475438297841237710290054864184750215251718365120963642449315572572285595998800302079304712299689238957653238244775012685542341855028446157918493695563405385607521803436683618726616825019642916156721115057784488336541485612628259212111837786940547188843116832164400936855378647834381726011201860818472706410020962258216427791874387365672055680389208804225336316076359319940403985557207294136098684551342313798274248207957059812981955464605229947456340157745816109004515448881325837626132361821057956748568855189996047045298439418741923898942056755028316245704085303121647172164556138926718794735319173545130585101963441563031292163138697217789478391741259478272761940445462249406958678098762132389750136347128270290409336258045963380820750623161007847632934731622369765707183717818150037632611715540266619653407482504351213694622127055820555924937183877295183570706185824372754819429952869951920660424467697100024983696723405886316151308103072817676725004647866181847113465337600526032924242405876190335208255957201801094928514832251558069336003208661017814467557602535285462054093683361341817350110126849211456963674271280297253505612965634833841742138740549330351045223335562962424757419333618142076105704780190709021399823282375598294508542897286608647410293376767368567079754117166217779015589343012661727459579780247436634469081257750855599945400647293811404711951006653103752224404290716152208585634591904140420654800465399036444986772588159834548410766627354456014437748918446247828547573817066939448348285220222856129200167882169552116693592345400572430778451093724222537977786193592560623427255973981482917804034041847659702352455234623307899227323256083889136748610991936384545201600434807773570799202534465177801973910151851803316166295319111487286112767306605011762520981633024450949685408927567365590784437587080940205451758207478869443344164101216826886860796557723540378521844582774886898094094206062999638750491831789681651359765797961088855457217827313943014171524563859973364120069668206007485305304047778957517171183855915037093824284759700699615225066774428874693024274400735693515239261910149608718944683207225150319050809771102046252677595796235748466653994066351423826054528193941448974478899753134418410915985515405035130201435734880381045902112756791237160380053107877120333636293754650030387544438341189715654150382810566652245119166970815663016906035449171736063001118554327355001538110933209500465245408495686634197372766143587411616633518555589135095187274874271904910895323706116718219828157990213534470059084636354512148535514112767378377171053526720174671964992216104516813657974354460798316365787090863998077048968820784487497301173472297759155540113248638654304768705701672041613405920295225449829472734132540010452683118793435820288113892840650343455201073507562728271943743411794916846081101534915495901072785929572105473088159794044575659166101234832813637339437378982392380711728926600772447163785452477397735308682184240709824986225017907049755436227115378662426788519453210993216959984915621847150928620660479901682181953592617388972051319411067172185423610555639145975797926250570354046032639780888701124021256426359643915202693208515664377594417740201087591899771158694078488629551892237379439100933318848424790693981071444241823626471264542576422511264580939818445829967477515094002760478756412866765644852203708779008992170521669595522679481936897777686178276080888776080068253456663049368920275531290091195251346758012372893183955019826301826131775519048372521076688987936382838898404440348986515978284485989199499129970684210230445998987492237043647358328103659570715634968438562431622519361645040524855075665383063965262957853597900851094672250812670984284204920492431257619127521420258557429613308566887174977120574193414080056288008348578093497038604582054760647167042677578709346708251933196599834744868144314339777923113341218980239268718413107705853133536490555195457811847761566951498508301958186572676575213049637383730147744304179907665487441607188440621594841493553109961659964926077630774431678781645010336498778100105697325716717860036903045236438946850672110239066725683427455869013815029953443181361633185721072202158368013324873573253966431450572364728040010450785555012080882098519960788564993091992189879933258159107950232794706680136972608096530146779650602663759118067916001604374367410844844697965680217133711043026520392559903561753594876208797265137161883242937985109733955001735284160876577331145794706003130767067553301093696493081662141885473885977205165755685860566758175182483542095098946791096937585119484901088517271367555188659147163605536736565988683483206419786885596276688422108038895957368371792891016447669168161360553235909897440262053460051932499281302024899632135054596756352285806570844929576285997686427941912325962182880861085439979969582069557233319636108168145302235488826248344269606126671733865915413109801364609380053634129464093129052442403349468572737911547632796384905986330719009674618990682979699193225007643835996017718476302702264744031379090853532855188958295555400784807424711861202275321458109814120397829643418314458285064348743931089299421319594884392862772130396731521837912185447978611858908388840954427968896360383185503603498522303729397558865250822593369083891518986320088156165319673506914172312833246110118866116652951098863487456987324860932833849330556477854539566313910754726909410541514228552205783207435839124337957613318169208828541325550037835490525612630077726291093010027151121730575141973218254746408457476607117852095590908352717834095531837331735460671320256158513555445427548201751689848558077060142176760972508326575040816601191478800580411459462990195133700675651428274610490060829002216142927789444025418988489533720208137738245225543551515427224255314322722231259817949721692581278926778645603906815838988965458959881915495620289828983757093026245251051792468464351158315877071620950481186561998062826531352387572775582029662630887704913325639244938917853656112890350320004192964994036818791201490543736166226104211547424137570073087576684440837153473133013357463564858166220276913045236234650765316016931306763838900495440755064732246977452550636145134285186382870245306563574856906578473258842894631477596194059693144581451071899378106952936346177914037523219068812544903109251049242677607413729598783413177518552536329194666624473509892909928484723548504620114307063579951025032209962134591159025168900183346529965842815815871936171934564755811591576317552471190117813400720087127320122379104060673875812020307162857776219350582072540449990042425330999471942004745801471335163735819041084938795746138842997350479783525398689723261967858916208297546889536446630529132411563019656864194530376847850092168105704870997211207348387530835112819391443852192400404682290876576704359831338786796354376734304395584732232051363225940566783099798739893828207835031846831056419543653295543903710059817514561926581177783768674815465629745321428629435545829095700536474327093999140868333682217555374144706391503194626753807817967466567441753206101420635458302051258146433344592668236841632673286655360846103095427728261157519186709819419900214660344310120847421779589978560092747043916677768504546414077535533581936571244272592949841783788420903359397157823483251721357866862623273195848405640014928796379642403685496737009293757927463847166107650981973885792558545259636774847360761950818391136471461221024241310911172445713339608890127025733115088499669938076807819533729147708626597892228700082847265131761964322462479487148026656851224457886928199074551544115442024110950836239754689652916594989797298913059268479246047715928286813495520646288947241871904312084831698785442548894640557576948109726497473046888960053193319523785282482795874606715706196175077632287116085111374423946406387409035540974177904296053750324898217606650963501240108247255286634805459771828737313467320293360920013231875189030538866350309289952347278982968523218971895409619006197764325235467439732766015096489801457555842775131114361555760395587378407753425369625926730717266954318760612661227201724349761451445703934692277587419438359466459168165313744489891512150977607343147422112546541410324239323753397172746301997056610696495500199304123873492636355305667219011581457226539390332605980750665092115686846979543199375098136129518893885578989607361943635975931093216220043967962273493328096209175386378961183794968098336487293427529651365811594836447033469936772065633460111845611703685481858718684999042677877474412626991190452642674548171759913598076061834126041017117172990340262969020007694841415379612284362241057410726393272799695766980799018771513464996249632999744366893753479435635999279747227858185996816904443611134839215650667411898796988093419314396115258236363521484213169171515373691839923854247335773882039663727819545775259272820084775884597838789317546640374793987460862277072712720019724042344471278629583199061660870278849103685579066028592002677165660859401028429892708346482611689746252653198438309127973781052718263810293970195478221429982599506479489831608499869821105379446231056270455210649479718427390596270621820418253949235877012967678873793679581718381138018696787997867075355069275270135271974826133687615210358321031238231849997214739437169943338771712143256762581107685956889346666252137931961454497098460317175787858090221973129631090576982470506850435362249524269874573496535229408540517738755246595327328984872430607568682414106699836770946695597882055307216939926629244341743249299192868244758651502724761890644724219205310501212941405990057106791373049104415974141832266032738138277568364399146353487756190771316250103834591295374020883511520145165850028072110070162315326034706558855137786426910482108402168263038161003495380800156920115600592442731964163462745990373631890485928396245717511555132284587026638242432860462631053482198361902704094111997637612718262677520539182445107148931461297208637235656341707844872253525826471893938503878549755844115356629541770304026683316099502966269978005150478752096048186850474488804021522775177998698293429671561019999735769396213620304090974975523213136924074844744635386302709539933610394076262801213047342226395995366188074985566276586789697725563758511665099177353103977233562842128429452887412846542969147072132528812116436131605360937355995333421504398749879334570569441938598345478597947247757631102730975701472592636741198504217676040041637406609187959475474621064001145118206968258845963271135907917390117234828688653725683634038399023652353429065075498838730273470296941508188520973471011477352140076791059802051382551978049088475497303933839604173579325464259457812316478954649670919690461794661346646903482548937237938095600501359626346983555820937225864977418836564363506169217828420182940504344142115317005067084285825770598583798157515607444098190902778068750671864357835687122235256257153325109077844350089001827792011566219923418718326112892184830539665834731505827003988059701194292187717289158797868640645063990704682741504919851209076602752463719491597763926090882369270462733156452133312212436100542603780509948698412134952013255945827958345037705103763800787099984161428690182142027607923068113887797238241520751887120747868662325919197639107823848664842865991773580812670598997903389480266752603954569622640389414696281639541321572102843844714441204620646779005435535954557629282181892672976348308887378685953549803246768056087516255722669547079540195803189377521075847001073681658962664968545064122347454402146677553547347960423824454608707048471097960031498748263002111246303746086939807848582079839955391938278989993862320998009274455753339422934236455964658835878245948904480507478970549153517714417019520400510208134930342569151615005342987614014891970065480783337914305709492598664105119575668090020900342206662012342856841292948652744466097045645380731733474815018482729479822614137744441221271787388279170560730122005673221288715555762146284725389219285516659311180852827132852989143778453868949439177953415313833455549553800819335748130547623362211450176033901886891225036836663593350754307183774900108165063801965351974397119025907972808648408657522373107739858634964685536985818727660791249501265424290583085117944152400270324504965976194989248736978429330919882583256225792470606553744976871742660650862327517562417294836291636925676516717557269054663252610759993768939029804238633064984417854830048597853177507011978968118113168601339999189301735618685947223570169267036217884622630359502492957401699268388617152450291480260541142851506610253234874544418266997788388777803912843048869091536664601046979941942575348670370082160631711201868284535136315528683208681099600456152073098797520923159634932239218052574331371763494719578655028538874077198561131126503631948673615793168820121730081601599213431342217792073922336769419604906136157459814131258253173080968449744247682904002142266791125322279795336538358861508204480355404949583583568394533240145747065718152521216542695774693271602153721449666267210532636065469788520146256842561442228555873245577700838491335718874581502839556020322179910214083604403808852982315691580083909605270186722182034355303280876975392569837288564611133825719300869374434328685479358909276709695285934387210225272967793977505994565799245976073901154611156413794609012160342694256949799595048814669624093575448723674473770380621674602628848057303987623942987200537833896477549661337410766684987067681641108549890468586593468328533524387401642930557169872451760937402043717073279999522105337231914816952315328610493910420778461930261841361942003734998748477915976687497448495379181510301488035097565908189699789583009880173356833765030319045425765820677627357454880024611527984217979732081156205289949818764656760025627992889448353275460784363110727511805679311061710546322560021965925960747595731278099065096782095168207202052278170231802376419740654724304711289380120316233063638566194990336349587345636163764936504038821422192181924626669827729918884505380485422971178902429788844031375832610880365214904883094892447144816789242660457712625780749241649636530206824608753936478989748692127950943787951384905505120776551743607173347848477220102646586082743330050507460198193814514787304923924420000109295119416083255721181061846164811230148866276822357383251291122894775436424442831218302155414519312452449813865356829698437686600981762483644322847756173162281725792240286987753233924492337985303674213175835569247168954524165377381337819282066889639758908490154770450470104919551764416416752514527522170641937144887122936489367660818950357872891147189751261707741568310648381536521872592392109618115054642911491648197918858779101110892647140559112358164352526362730125032902843494080081226624002780765922617513924743259843986102702868775709700831065764967639127493150474105432654869407462984355624124929863470642017053895490737958746205798387790462910161554080786429485267333946797036571951865283798233744045112306076703298668330690566171073539725938390226745210681239460128880576761459817475782117930764802711437737955454131007045144807859078197000832754437329375401509528774511332191512628883597720083260303320301601930261278636857708463692871131898096672532170905086957003526842370782521280626676848599060099983719583931330176789750671330482781048931889666433248599198055343651032991641042869965107178483383360163845697533444915110849538301815944678911638023291860598950960307651833031503332071161184915789044289143232600939652919278044937959082751131110558998843465692771921771752115018604290327757742460982569239592038570726043284232023125379583885857989413714890699557493566062767241755300664301920196720314512197771901936334540096148115348236725522334003722328149763227156542503743179620128713164190598192505015535905220437467261295697292256483478114984890681472730050463496695707897038757020079355598100546453440470932546681472212191919800506764967040728531530415716193914817283386330599924921347104251882207729893437965590256777134035029559721136146357358794108590836409653211481396694526032980338675161519667590520247536732039327631710554412032341813854339597097629557886470226791313064792115494669044555328476320277899647373757770900948412002252996195993937146413696275502424372780402068928649354767143372336220495873368834043056693829779599846746254379613915408948859694909514349959780511142443745927243849822811068451723226958793244364430005035380195488453725385897882854860479568404648128566871408670919284662281912093439463118812916259047528544183553550209406631028514309334259346079742663227540184628601080029933621120648315625506830566994638376448073471263307311993733325117101854000028194107766038863556986909469049800896265383844106346533884868790759147614343076932297936348678856164792550315932383231261409884384961236229768501147533357044802952915014766686593089529796597010468140519863589605723630374434031445360808145776692132386665180916689986077580809184341566152204055638696931943815770650167501179316148197917447839979340574447183725152288722882327718020819165814246567533579738419123454364264298309577351478510806855160115510626883100999594925967372068206675388877269860354812949242173000011121975815557634087443891769976235745269387664834280629335217140049847735837439239859096705424814675639130262327858860966916875344201726379690296370850502089574190986421606132161091477544425464479746094303984634524442756380647114015710503128178825207499154860753186112042844105089116510988466144613336689330998666568969868620406632658954527698237709654338061975145512572038576993261101759317453573323069640655701171770682977935562153093168374439677954359914279821424191516390592505164195238723502479323773162248273509985967855596966247819630371993322493241710494406923526387188283449960320617117550685767059796881111590447386018570036867534170290935430471885908722131396032536173926320674315580606610254042213122120510701741093994429168007276192250302720357622397868932280620728650839400916278098196123101544034348436485199444916304135156043374143217468304448849941560615681114907146228363383548947054311798399513906020821148797257824390711920069744323478348728610289082308495370302910213502144827936417558199341839933550235050009596535519707704526465306647002696016332351536027925737284072477607665595353797105839837368739751377458104050212630283535931829235244399611059823505504115854492047428903413189830968512037592335473404150008055912690276814910487435738388210438364117872079150918700329905026753518331709417539672789715528470869504946798699331139260030372008702876179417343715219944270759238317980275319999313557768473355358937355932336175273607662989495665906640492659265729530575992934968384290558270534705327272937399277132696767982354985894867972987200093055647694338649800804835747589028193943562394314703871688344022231413577038856823005113312730593599580296898083469564193851425474200987806614556326782809516423563833730150755399690223618401572309100050394949611684150792504783477695972823522942144838606003924392327818304811452866070085374391858378201739557574231339653544036957367600599300505721399155457326805789290155501972934060843080814811838623788651242129580778477146539682530303772432507912904162826441802130973016313301302938360913993130430547679341665540999015923994848899103392174912842005623577117080834960681571921366170802433674936954138761489212072742138277053507451051949470773292092169529714476666783938898041322685572549469881405148795246275182253411948994909393170017244345854902117729755283525141375069920145622350397910166787400535184723001079239983802427587449493933890278744441391350548988760294195433538095307020388888346954100525562033034727247751379645777276235579440515326252091494484077570369316228292937313486905614880041144819106917472266963896338040175990146585895955779274119814324992746691160146899819544300093420904878674064764789316200745944035945312036317831433135081203118666289205963470538961526131438035818054352494995861268282195472624506495945789660319726887478478680708291800535767907576421729228704979355683802264551651555871279207038851859855575622088640814578596509975688107202377580700299342666554864784474382629886846330567178929457933991047152278682697827398503815177251540484600071151719489758435475069460203152188865906348540930140457996981251904433202788728460925494673379351534847851670612147004234559255907498057000162245478485243001471942921390832622003769457572851593020252427547330638961149056769602982675627499171979498296561345019201533441893575903745141725896547475998434698244747212825658711395455706344764892430152683392556707095662778117634275163974533661163535878007093170688097681382440662342357640910266056384668204296167602868136099025425465887277303602215865663744113930525258019112313599327190706371668935711389429315381025263202861844664380036534924950723115223605623458023905482169364568907705247207104885302874557630799697200813520915182420746782429464189481254141620189672338044367052334523081314425879041650933968550445602000449673894782133885237325400548726117482772294926987880399530105343759513827005164270743383796516246431968334300777348083086310908170805381430882115034307284156370706109470142115232159348028308937419581965414782202276587268407925766104965004679568591417058019310936719178294834545579621366708735250264900920143193322721750410063410829105937288690460400616458527779437763644171952118543396875700642908103964416693416974696817339602628678258912298513698244634695464559559293124192294534881343527707168208414153644729498998717634439905229998197930596043340023595396703838127998104136169796984045772728497787326374102485512724378017019036919755228588260992153117658670950557354631423168485080675452116229543276614908555235319756048178785000709897756342402427551474634418395711242206454785954020238700736496872321936642445278176139522205674668172354729246571981926462185844047223951445259963965391276113498880949138666008017628259321071177762521388404023921831692743263757868913707873753283434189313459119251042122528071268987283785175022341162164122074402367421060153240607947570210024529772561786935963655275448803103062840633932959653695975019633832281560595552898092011325593570811259183554339610053397686065322813516134382447166838780644120541658075190353838727650328236767021154308908408161663015743025241846275741631832041336095895595022331818181076390047457409341796247997511827902131286775380821957285926683739416525665449175832358213104821243866473945981698446555329516559714681130555017654989481988714837180603078598623574588681195006524389843230960524318040486406857408581596730853913263639990897517061456120691779904916970813038271802395327248129962860354644399920662052744885947923189554227307872095497973050373619135020233143429778677235519401591777882957374034840973891234191269760317291520357949080636079446240445854486816885361264148077759099134895267934918729712933089824434164472138100471251964104507352231607319918956915605792739820163968643843635162433121368488245083783443089776469645208765505831011447307604506390317670929038334978240540728886027753733187491119785860807851033277474238510288017198363839784634718746280733367985984853621851007638771673152322275816956729156910664385651349796820380509072975965901559735158812325479104145125317040013610786247263097563919470052509993385192888553068024457136883818947899690442305040755121415154827047806326156772977603090915860999173872531218466684553739525464574253839164845368479378679674381736127196165643434735915949497110682026349144184940158496613734565427096340581393228039994275645311949867010930282425911558138250003824042213406492498419289887730977106670161968699539350746197687253132589640460594491056058815396932885450766418345973978314042768136755744133645435624755312248517062411957793305551648756455833403154243864203123281894523343377628853853656981863685672859038525434509947459551895640405520802077277720478095487940917350323329633069906161406373521171271105783456591768518168152870916520087468149262122183880768205737159232551485980708775953476276340553563127324202456305797754058450061016088095039980065489413825544588177694562898145535564559914357560561392839814226235290544688832846640594434917662327359394867191635156124649064731172522163902063550841774521041432865502783915133330803788130610656829013694234759833536929178456005523456547628520166673296472290492467373901122665237567616753333707065260139523520771807741743674543866543040163837286001126766514274232552777845629446994831467586659433587218629097215907828437536059316548042513861413106086324453080218064554035347788333004534723366443501043082220022687786182503777557801540962004440223251215005675540159371935815058223862453953230598204816542823490774207887534818314791786026349655471211045980153901040056697592392105936966578370671860286685778485542091747464260105730603258940091819422267437107812047384834067582517898846170930424082221572714674139739872249784297030382201362679776662707071954414619841564439076880436348421215030109243967630173519711607576214350425261323558945816607435638323224574146963139196764565077555115341208615391397937756778382536188676019326082692044344618936530190385114189302590610562991969034608197275936001162084664800724737678487226308950823038816114592376290268746162490583321833535441974180713717496408138036264292855687226987075129399598968909527930275382604929478589135738705414277645828011429047753995745612225284855677351538100708300946683241547847378930318667100088572610931276965716378797568725009967834646949590444400325915966468584039710981535336037255365211197371263848126193685564340196556924744413618987818478991842783909750588829246931847756184124841193978273394781703207946976194979001384796641368880123430762834230167672878547207222833870105309401263536200844710592096283371022842914867014984851231814936265251401710693752700223286455594306744867524384548626966880372201304080428635301125410901582331099358640775224399966815034943575607162201296172061447496479500567112426855620900201935989549929558921450309852296188908591378593574538862887790793936641350776284857907246340838860566224263691557995286025448536229916832597417985185252115410960471887848875217008617209187588777826460015514748290585678833558386485308803626673616093644496377711657647837292812437287055876108506354654549704384238149830885336891309831015220482927412301998383147381491904721557104270861624362449334600649971288818322955918380491276289799427025764640912341394671710986709795431390695270347658780868699638833282896576099848422086360520323497807971298738424532763053614937216025131950445281048220583896065260077352759472126050824074386221630285830776956472743047530886847969661438549068499217540374934203704355325525562366777584457518824155191113974186688856440736375422532091992046952221307362084589159015098185440952224442296142069036608084731541710212899163884427976793735202896621182549407942957976820534490883554298182643951973735008386397712638989427128793212524363716411245673837068892741486380309002486392800804249047854108546313621115635312125519936459616275480358572965460696033037469179651962390122016591465688283591034663247574007546731875469746891829055307401824445614898680495944757378543070766623602627731119241725081834838276488130617136869240540858538963488866919189105257610554458001506444009773980806659673385405440438377822933149538373219778331858913705243008746725871503965938772025066799300351405790576039949100834362695496132679108939361147120770187560570236640551582768212908602576244973339358649858957378612928464163438973239912943350291097933418819983753156205977878278219335288813069473928195117177765794140863229596353425996992914784464190418820616360089509429542108620570190824203676426199196830795596968692944126700843537014822312718876452373748350453251655773033017733309100809830154540980013969766290073546946253157103217880042258734451277566313260900033589029344297342495411454758255402171791162876873679488449931339742867614917766795751519889762271758771296035044911541151244729809454166581186860878963101621541923984430202685352808247805188905358646410791736459434458185331061302051310845040573971871737739597402782642123858331179794367918725759407573539051161053660457813162940836559128216376430797400160653964870346712446742280869561320070307827835748187214536861750448019517016980751530287662393613680379170193212559648829824795143090018967970237750242547715511228015993342614526376986932817791807259214451255707056118468103524744232209938926637184722008257964252952265115073135647833162271129769600776391229117498209687629283555037662170885017094893839132245344414501148354633446397884961872539094702009092516268181366530803228516549934020767948007360468891152958235453431398680373775522399649962295161343037432527712770764214298590111101977615968209881550963062572283172490340232819262527783798665059229479786979854611662036478435457178316799769837583086817386725363093673674861922287083572219612475736882933697646943720277302613582721699242633927914629263772698278614877868443637461940063056956326786861310758898609812082686629998591822288736522198596832700609932310117651703845579127322943244664703034044225473915158648599824937617792672715550781735892400377630332778429693153003410998698296763264760757442246919628962146852830039565476690551473466578513808635819477431316191799713955878767236763819816542020518859156618032676189765532454050398412046615739405951758587539339884832916466526387525423877177705392977632946580085222944858972138163871012655213513528035533719044706643422803041152018521499341943923475027024014389464837687714888037859960758976285935399457697122605020048393124032983391577519269379623987955321332581077315855917851312200980130893889966716663920649540274245142170536223201083788508551476230802058770755403978376214208901838061675020159485396791906611641520399791995220687978406214353060562922988484092653877675961017778366753147248450460037366849019530861882615214933667808966875971615000451150422522013612693332689827660512484694737821039685589821401061994566485335515953820440295136718735232445768839139671276412277993947891541060438123270331878317876188234265302256608691715366195406183025714134473098844698993264163070927033607809632964061996637591584553594306353051219453148416322338694016359379658173380917104360942883115917926857240182933724622119629216089894383990079105299586134629043298972960267800887248628590991621231114758100655770225939829479832465778466023625996828704520260963630222930689064509173290446145881583375296304388585017202926398163152903385533852605788515913433512893391817096324211968106615084447870975375095946937485833022649307278425995240520108914549558755700442287330709846049722602384914759346324584918257148462505527630185185660845113350382802960476891213018354694393419691129235382514858022026590298833141769117251001228005326399895108193058315059625632103290146448269101850897515316495162474585931257155153623283414483772882242984867380036891925137044522081374532028966000699051666908748060598462212833169645336212343874363074767275903962359560774243478591652602152355990454439929471130992441430590659176246998419728851362435331403845658395604343485920432050079718874009598694449336681681840688934746591741315839564675854290602926704983904221681446482337324082405000567481387278048772787412508816367318733762036430883230319962533113123750834406234542934549369559403786705344710628143825044524631347924008665642100979243294710103514766796074132285853507534317035970581898862497606237958215214880712830197923954808574354827168221456673926239054751941623911354685572390317656644850963250067078496607310335298340695838563433431229598762337948448014469269152077234846840054060574740159475148689657606930102419830266198415896079444205400570631057749015042634086891375726403983810975598689092695635213061968428106231604964697219904853414464734957120039170028390211355077314906034991286401965588350001147725949966484582017718708856825980225313501915785515430055751250292521304925984684722981434945954873289101952800088563456796848640817048910187720878593271649384589340881143510569078344780764066661257319127291536667056914265728089925462678163398248708829235743856503373893666037495683486174511903425388707597033125455416649917224572197193000840819475138910545019400598474632090247803059683141273958278422902809921834651049334350509473896395309788493444462641144609759449137898384000599481477530812400935097690043095079727112993757861246246123669157389641902836066027289174199947861808900758209049293603804402957961079104287195437868551379243777925722765159513377083567933071410472306745367965620931133945654753613667173390843607097439810018405802423960176720002517775618357122471355104064012874910336678217615564717667034491255101585400685536511000648663058527076992889764051145275238099513078651007100573831309874557769680086977508839838297009618937295675862233142118010756882102782246711619352808870154581860989030148210329941407035185478215402944715265468026848003630416239296839342298359025354303202531823130509095791919629434341651593180660220992030150701474306732298652074916150561998669286170381610875971456714427046309941187397487098681046440739943313301695536612000089182176169042304023116667891898301777942538040957239717934187989731992238069897963787146868306308120619472379530630227938008489421100755021406437056091349336243963488622657376298092097647428983614378596061475120159423298869685214775886130425983616847840470090137963385281939259610826037689498256339753074402558189994078590350963138695418947330851230064383699241692785559413277374410775512679926457670335947274946604147507826095225662020735293180297349190970136152339650698534256523386350905294405859669472042610470318537694931202316460852500199255723874464824873067946026079273236104583369738908104891338813154227730464050038990468909359697114433799309978120298692595286889297130611358137043190531766305660190336561098879455274534972182084652789041998472543397392095183726518837698358877095422329372043375762733580029747016568459707291875538322216049344295263695306047000412872418465306411715988624395842228999426892967160199463996735344105590541458530836142806074781494429764069443851308017321913958685365172318483952677569350678742865197258491414487936962972309826068442601096087196004847167078454240860637729677630237908374733754115095937357519186294012527591322037858661163128738149720093369032793840766221960272154285034261413425028226775261021079095552054814331815925626435276476724649803724605297075838258343754999653589524656334588556380975307243911416832723456830032612090483214046885123063586440046690543636711790093020347328198482990086593446806389327013359437054041398182027439311356508468645778544406010916192063273910476092816311175986420543709067937740541196318333656056498554799247728885998653070955643828869523325041988152773716284804593328898151509131725587343401346721405304149436496739476837030824695165469675796493314307983627433380846309338124325319311896497260464271864487861820637922196581883053320742401718306049158256897061387466730529999611190153948921905316734836297174819554340347568968624833303866678813127424171304484100025742528009810989921439302377864171989316905613767738643077561509397055889645361035027477788820820191526133343078780445005480177739613158259558332743401512595743198859484485188392360030994191838157519446997358014740227010128327175320180213979292323435251511934838898075008200720851658739411024964633157183862542684712942777548318602372189348170280532012189780065707410763110522350778618313763884878302556929569670507766474455169885013009790493872872475565214913531174132856523958012066521337844213756027382259676447696417636751459148342550669080455412542201894771288846588722227577330253278914282436937838962351942139589128200744066071992243452550970393440773749473399653886483947135407678578926460446345333764987009575500077116081697932273286379966398300379614844066295714348420617064001811225139385740593903667127071938256733490976566960966677094643201361690755815606412396550881519984524421242098924280740829580035641096677173886170008834324131412427540441175916807874107232984475760234370336936838468838723911344658401714126591342449564201642352092430298940278126658929400868757929235304296018763699522747100748383938708843839111106551599118806765448841321816272580595892850312459908628980217002557085918543828516921604507830148312668968938498684974594323237857262086608318190795918051795923477984708772108511583189861193955016387670438695085163503702173734799724885567062113202175221700121294561161547140176476594900821691676912182442368597909660370178598735439655530170818290075301060464658039122589134102727142642099464779355915203585591934318737402111436283067936461775124263418488346386670983829028537908003876454524346530170686327404789768277625288268432485583041216167477498308776928057243902820855268584824305092353116930322802787546386568053986840532246182517367858992916503991486463986452207106870581894401922035879904739495504775685882028999751661489147708719434744125333514014136903558321255248067534469880471346233587613039090511459635294498536332448273325230241145428199458032392150909818097710968939414392753563630905336885257188847410507903380483072705745104863258178606884817110792558284741158451035203795460827603809986545028411032523268283928790951542279458486954607477890393479438129233293933882584207175404329653376155831486885261351037468951977739110422251909716593804216338918716015072205262198660753233131586097332901680791319351357558203135968042561163729622225900036440554647027505845669337982783830813497820769616092819938429386649083874744382116565707348429222767049173052401321799855938821473508180703138780691427814273805034311965655055505052616544641817991286747825093659890435055577286664743946762184333118511208888872117101482724005085054055825160845757669251418558012710523006975076129194161734568326540722031704488200365542650308290570163102214880385725758201812532548005753621159894983221142715862808046201429143982590456940110931715302122365316295760563379203475312765176383245806074399706648325069276516114798564585238903122336344847991981417556829930118072771149192667262263595350032694432310640802580639970215381694883177646599069613721160666043861504002659026785898721991612009875660838320165038196792404589059217150096258996062546566631983267097267078801223644403397836535009667233859677919079919164754752054796253972824110638288504634195693534227352319665891707948769222406423006000987427439848322774445430820565044347896710772853487872960903700557707204154531996581853867612993515747895915811976881912639866880637300406038736897624164801199309035494794639142813774060123383653543018487744885286321956989978086375245324880780917647717134681751609048428059324679568919668542507161752046980100410516317145374758253008046592731975387167561458274569967228204439151424424116862382243605219250798890055491556275964062312646510400681311470409291897759340123842499968816975038537926557968248421975733172290721868885532522945937171654620893040467252464294514505927706756905092407280834421590446225703762064953476494020981192525780311928650955428104571613010279633935307750875295811961170599661279085762464793647887510311881884880399698157911614628197470952738548824330246513441227225161323155987764713023304766936143601865247852725923028533563421368390831541818209202905016995741763279343455631935661130343597332923603685237599600712372673893631728929965447420289381186031747489195690859527161327978545101737758488905133638916079324244388659580593023971468385612509313990415063934689599621088116259249078010323438251543231688107364189321698837041274629178271555034829586918615715607392087586607706249020203016119099250841221150450009972410355255442814189818587347190021904193081311526879926917743276235334842238299744648350737749464408052527326280353522776436751586576109663731125632892248295987883912550322044657919151039989215886894792386048029878097906341560179044772034647271150311820215029534695424926313714442985503123723595351657562539278334719439237918344024961624315826813277319731856626307145080406333803322887584174838006653997421969215574806094769920643369182314744292567904508982941821806757156530605955386988515187644005171673383639523205471923896064063997958579190108801254746525903673341890281165276372204276164031205645431448215444874738573103249677785247885884931379725204450348992093443951193687843451185337261803184065465925389096756772962187303417659602037271576542747620571065843158577467995007508812821147666002436446167839646346928291614573112715373760532675442067581011383189572971751001714747976860676075261296238177006170464781767018382969111302305629478911030264863845902266263291025014937187652818731568182385998777267969252646427249288284097685966065980978601321173237871739859299814293849864798102134512872228607091116496106916356837921903517169746216025734998740817916270097982437858368925529167372764064954721852652715413305670577982966529784834054839420307035670919143797400345556394648753259998687360094300473441178572978935011373662400662931707085942695916738731407325654799960984581484407223501455056293482384087273758768105934675796799633031900384440344753503723028440396340446627809528330614557461150993555794366552760219293621784408962407596681545182921392481777782655312393868311260555938546260005939975036837891601273037794278393258402116087596037508312706980483579473018444839193363865106181112265843448650782396983874056607494179333249992083308261653311070248463427983680805413513369860795311598350547538786246635024245816732476252010478423252623746780921777482525075362386413877253332505828483761292201881240275501277511634900112191722379754066222367402028241875828424418368107007025319031249553457472147006050678574296973099630323501274978985912347683146644258720345816452452239898012036317062910419558434659527445685081036577190198451656285870442392925881157489925271800262517618492934968619871567721328464014000961521563197431901196067323282958171262968979607507922600798590735046416171132326527217515584639031040764109100862843082152065444153503482870384588197132273781871018521876977001206945247360386791200888082708819218237561497942101581357463413114327487541793120316394567939602831471627886323994806167713540030774479139798893649715054214255107403986136124348978862545868704191776326211239167767729973721836515455793754227504248642416833052181821886112338815120544440761045500176880708436390453562209406874830662108123850400776375290126381180299915643328275843173440245842600332831771193480401100304777129482523939897679164892020797574953419286098166751924582424123879915873673850022185972401234584171432381292281279554986083015671215174124119315592094847308188782583830106583472696063999464969437515782754652771543421058369728688264666789687740061269668024658627045064285584466858257844742989989603122988682096644511666495772719542698029586073530855129325385115613405838682201951814996005005637761017418080496911244099752544097132507938531434916585155101704810972043078847486614658958261234609682439492946325887648496934403104105586392648545827849172863674041617853729858885135470773164534812859076715012040901773357786933883222540772129880376750398313995370835106452185452819667142596601022062543411038204679253119076716125623003846413852292188919866184537771594085529658421552173997704405822252008697832918325091599683863169812712969459814735396889535314451934539289528548877996643394759170848084972615143721281693627393156229674367373577591024288878634695188019710981011879096912907005030294542639110051624140187847480945303381795633252517741156410095411256038875904281251260236062191780568132659725526316066471790395561151518409764102457426621563101258335380613563496345284605350597171901670680640678218406911777031494102918261751022281214777858761069622498871600082337154690651723245094430363986343820604276282441283865180943976117489136308864640531874347955377605136746336974236616099659847058241338692650052537943092005093352715398587246209178581941800785396834186184375710286319533949242270413011443214076168596490629985743638019223396008847249175109362012114783400173655882743451811561270473493431218766981543656481798433283765595104707397764942069126799794984474048555330390813013557404099478661786382823138464937743296120755704078647950929017126373999359378122371912669955259311827339200455481705147798236576267212513065511063080018703596831440956720255260946807073749086981394786723356111374334675296627763954216529301547290145888699120455904993362661244867630916205553078940828049298813995330389242342954645877554003536208521075327864995555854689783606817003102455063184771897731474216674420022903296224483824710074215210903327107365400073287071391020548672369347322382584649877453564089029648007369788261714415380075664131667503192587848356816906493238123292753875991152042720863149063090993218912560857703550578410656867009643333690405616723792657454504296574279394587936985210276237087069380998278595034293527085648056993394904530351239525760674109722505155549354386610079405662484059085331554877446286680824944994033192953618597069256811628567834432080641416114180476505082206481770051163451299804373981659237660746480404390866503623197848292303486815468092011648540750838143919554702578866578855678987168269925072701032941299094360186083191254679200285789833164944127720041099827753470029997632347129471315516324024719905601613448739336881666506592683181956629732479830840928189503451770381101987387859723616229014383164170857755538019586030878589244989187896670177457256360998507481624826331136884799073643137827196141232935332832310768727026408706776050381192405337291711506012985861801766979307396289050624164110631444474475899498932468478252008536551127192056040909447863629925764486104182297201590965260465049424458850832709446394470590076268123635690664544522017847704423608484161014570280958662114008941580860691819552252515324839464439908263220415732929655106269480002198962021749323369625327481556193791083481755513439030261774568566636842985623339908599785287760783335613215819663902125778237484802083521350123930456650236191923112202955582966235496326564300983073332357090048671246745353274156054290098049707683077673887771842261475833573123963588085056324268999781104263228543699746840772966330106173283462660965466288699133669795220364384089812750772666136063194861106130010262826269141612023296491914918922204366272616022382354620385227359831774098522585804949538864915504637843724243117245012561106506682896261888713337853174523512609498044574179903021495841247646264166392264971442581528576527090588359938192259545059846043893030816407543613191323944319879988462064324094143054238410831344446795878274573835475060374150721325516337322404096903980077417027659503620750504141700604951570220668944061529081345817671825470433866656458888478906156415770202211993470556641491321842806931445031899289902784397274800453226988273287091272552507098418754755033026658464922667386468321724791024657257518644093855186883310663585124239916791586877753893104074561187460790579925957307628774319079572845158867318566958201005239632184161737086991947177170644614689231735726518436270346636906702601316378495100134706623681071865820257591420547552301100350909877234207323664863693797627444715667009396243467164792425893785691689904245227360252265914616031508706344393897083632689599872660868839229226353983577929057100613734970613829771617879797946530663181389485694311488537433915956258599773670061431398662140622109932577962539473973257831841009909949738214274109221050001782649344316295137729877402964805848247280222015722762880078747477265740628943440979233887755030491285690835847308513412409779562084169821390873768427119989596391925102931614266006761517136928227182836432008148845404434300442693976740506790358369613218979575464261236307445520061122362623284380096636802134356710656489583346884346516135710917369997375981065007301524739374533804740195677243217256040523909603827400879373418541752669928041319883858880748913706704927831350535747376768819283021567209134184236440125468685496253357935158891367029368002450413112864213749888719754417937971325694092475357478111418124252214495892011482033524665067392228549113903133896102293884755280573785325764967948046876527152071167469681754198439123881800443425198839920557518528171438121263158685731798657758785718036197076737864360242445384775528973058049995372154332585493029356924831998138797772883090456163218223301568487722607293470175860549522549123272394687115700304987841709146317368279366081716177132515803002767630339714012378069333580490655343781942798174948316041479785989518996867884244039572810149859858957524589112506047787405635163899536597247329689198742422465202154900568305321988588494086483119568405163890890599835794307353341486708633767488789100579122217078025874163268619400267114987595669177508362766368225708262430472872264716257393523331181134914590711121126752475926653157819926901700576613228163247872097095194847599641351578258357970667499637254430289654956998283117148798427669101362623550776445613806669195169630803933046619486301092303010995090620269274526806307982422761743718008764860018045903625413527932885415069655998392440203924294786891591090127451957296639374122088768703988484693768905884565589379430080527937449099330411164345700140351713307161542834412008872816412084081704216687486336087821417434598041679069985423984951499062027100417213138692514147990441982069883887555067057337083715278710652989699749047078385174713373796050584500837166218032110422983622831585714898005436418635161866768131989135320096744047741655004090800659220895134162011667703933829543619092104537128451738791418024387377470384399818744003617616638511887019452362987769289969145809812628620688202445971853594986956924459204128512915541428038737560760443067576947600262648742741867970778437451231283390685961498903407219698867895612855741284180690792881376602389148107926825679583411905226566860048673297251203521460015911669501926071157034569104251659105549710254683395622393630544596843376953053314845815495294951861755628600917404317814871040233040914353585172314856419645369757018029413100438984328513862212206864490916672115262735296307926488503732244743278805405838625341826948630188798668946839806826048884152516208251043263753801451667601180577416443215572472688447503074425902711889823764591502663048651187531777611624506476203117708311464017560902132984006064317276038839747421422438186800954801740398676900199301997051837896301683170334045993088439161213202268883861246391362664812390905176839443627444224361794497847070407472249946280026734054176580571733906771052723911816645349359317844086775293144360280662621232197814145482822512904756560421569752861154315471766894751654934706960283804753276502412174741624073670617613088587505930021794013701265042385948459139246697045839111376171180877100283604542082684017362506505811309706904146438421803109970258902029578550563861033112713652574817772787075242446570397733268354628671681383350348613718800923439445666571690906280585998751632685079200680808069859357664504689839070654666363400106638855120187033704868031229918979519851075080582466874105222128546630762245794821855583238192201815859905950483958558910115495054616892045585104953552489917950776649372626232924931726711931309831082652223608702291417233841703752124510691346028010248421575830239843026816263728757547750951259233475753680734022222977406790438077376052560796873056532620142895661235344328635021657772448833488227006358902934815134475781889803073320674492658115587953518657332171880124313290399159845044426930839167035497473558864929512208241932792577331255651157611700004861519138952773164265709307976178992913729246773694872103030127037225338318294763111994351412090729580075279188519115610867528744591746858040801911929129555240900673329121273984878699277261835818189049142658598717273681369517049214882561181066221481038321482905190656636801087959416703634142499573398676439828723844743531373528759398679491612189275424903428696778573252245174351182235351910123437811234590746466174956140149689532302697936064548640676100205579536755780924533979796113146774591681200938625100836801521762986773199179566011553686154847102892792015398939047680003460046119968416126435699422805239120657072764961964730759270005796409911275072065492757360022208823938437216304901991742240913401550862859761620905047836945361913690805828456079890655890301296166305463636138459504919181545500549082332495707607014826697873401814643891281486928065528212552949245990482553239901383059591943652583738038256619902413573145509419248505757898862475581595938390300200756530403831601792060510204606179258421502431997536896255902325674209453093460150852849894677014065718892544691380850488323171229349685553060529206998307733001942241496912442774882074504704393176395472715411210384561980515816367523979637943715036768385463362800316748915632931971633704922439243647980059838295469910052424724689231181081370613692525227685924230491151986955405574732836913257561638551862098204309935660405012690623593247908096819821620836608844590947232448092391875446816523433229109289072194416684823758423175832033420094651313337878508313636423573234783516255216494237801409992420571009718741235460756951003568070274186236178365240012006523887585067143885151115852468611866608281313041042276968520323280596450305964322645073816167225731599790311862133402228588756551236716376683601924320755734623606098656222086477506526701081085345426690583806759418823801342106710080682766157132130407051919128998907363678340211956413190434334168413116076845170070887105447635190953858642758220010333730752028151024283965584928879876099238014316307506647186037109581896188986222632773621563329462065131490356379457608354911092106484248576058517743349522011999415804329969689292807112862505697077287004428575435661488050756734702628160423032314352760132003802466784555626682963266431267182044248686044153578088807142897495550672392647825747776361059252159106452940146236292841653022378791356303719305688263731040964459568707711344277906473918840011331763847738144670529707381716186814065158002223909881954515724711635272868945845235447308948052735240270443022338046238774027642555922320370619366071219991611321548919416282302814637502894058516448916651106551711563212771566557289729836785176812694090347034815178960343979409005627926930562245434757811775397300735217051383539910236323269529275969316431675420824243106256910526510508423747810864339908629224598671487608170435003740074899661977279116151140636344208366281720061527324064791996664819228019405653697628866378633964392561649533540608862747667439560040275860294842468188008705661875044259439003834938290444033576435110848300277658632593597730023721791195535367103095886726159810450850806707128444821194925760645924392984048213151696082650344327788572580667395953956651732703340363526731439314977752462023115764554312042127983592755739318937312430061664069326582785605245652139363774945631257352965306815728708037559914603579705883963355099202613797225660369062693063484936024051925282456695121645233284975931360849165806374647741265383510194299783262718673849137007753867446148965763311498360758771408531836304511136065856716747549773365467427294034547627112831353855695633512709669432886879292140307140219013115832168365394167847074544034510030405446768055193366612146387437101218084629533124427297185480167864264606669164173632555333041310962055838000247642589404728567558167333642178726156792924031156627511681232882565570500432393483444237879354459396341791762110478372490161736735675470696803460217306357530905388897605602265408752123147744814939700900542712711007590585543131138206455259368721128637093793372451170971753172356693685766915873844353844608186246034087301281297384045309000323996311936429135138973375607868977743066038209401027405268296694547787672302257423646364796261613986840812411710700252608660085248532968440812534092249594360461374446496711526169066776167527356699529603004691929121374041578294114910347210050088003136593027686528298077664229488206245205979972817972306385500065088857648382890861048571526875774144657748420811244578298920437156064966349313776156804678897449816252406609409321551129486475670449853157445082437443507475089359460949663102384133967359712357731692607241202462607962950939551651107764351179216105111748036093138845404147212720433013323986715269564765215720257210379987201077757469815425334246292515849406629773567722320730671637786308257348162660968748295463813512224079739864668447203914242275784786170876978408328643519816595009368197912225714622297344846710837961562966096023111932422894001631651188182725887792336926596422345758389117392658603541840061886393754566599679484216130552967050462687247366623327150022513638626214621528392600286655152863162111038420805084368120209132828275339464900174643029150653550483637259184167556754746249164051224773947416404649963426103066290410132204292859065203876855815518331082495566721867321739160592090860492504187072686618807251919782690262720545059918652292876330355546246533602267152120079049538441070842864995367826007927230954706626440497120961087479367677107891406473653570352986955846147716039572271089717818366898432575744510390136308061421904405819413146283270418563338574382816777997310400460314286106209031863209832445566661489502246250754003011225246917836282927811543723843779612347905629661788599983265271376869717425853110548809879307566731215501194339837741292697768459385403845548200641301854764743918724351816532348941696568231040585598892069098169178497737190604816231397381509960862431664854221285992473719916200794983102867651581007501223961493911636767624669062319464394176329539783372619931997515277616696026808715707010132413913528026572580219498077685121711720079089451150730769244161343121913641480462730935947706330000494286151004310577745404317960840080051944600744825465201679425785777432309981916371660866665094744573321501860958546785120560667763041551359141172054002402681328233137963484694978999950398847066947558302924542487218945838718566515556698393661549114633737671071631981531453372558956018643910606768225794489741967523781056070458852439149044200275766062380770161090182715410100365874829457172274444989341255854857929109987255919077274657168078842894217473234896283456151810287329789902340632151265670313824042855323130009520171308071171298865970911823202367952190674552302165732639469049711796070364097678553287484853140367237756476332780965398689947065872664613950412914154007689321198495593162283303559195093641842197327827950917670119332500714968891910681967554508267623401263712184187994798757091620340658462457427301332836950850885305911810887180391028650895761012889942880174727729615921276742217793749755059811034931642508843747496631923086933396682657421401269361261034641522886637253786821104825616616979444605996777463843227933065715548309609537667803675406634954010307104719030586033226781277686056611458268826116696069368276855193827795313564463408888943254566145979859120659622616567954193292515438437615473226482707774381316984031807047528362162558024580008735575507816633478034725448786210272989242510384824091702965494570766420376300396423999885603794284154856292808593346149221174094569962618377200762879746647304440696264651481627594432019639910500942360072745570032784730601823060993605589300780777918454444274487336294178434092776813572963286175381235612127574515868821396289264099778601772140143582352117380467071320967243432738129717568410730931890358255527890145926707203655291695909362894385284197961083590950607574029037597240944595071698910799322014052177210856031570378275647380160692987346016164054139038881981851499574363855441724106795900460666227033194048662652426971070474642628403912193945408512798045146998813088156815530422605303731459421649917134646178288767628973341232840098929167388843695289635112714971948894242974090777274463914233586324938210847999649605988337825406717309161721590561621299020101965741754412340041432829386600424351954982447486356701654829478031710727413736166898608359936480890017738590778080711371182380064292983249869911291543453229992116308150364945758422726007445022667682374998355866982588444291711044103122140712321992869757442513357530486585863825271434967859007360267016288680530982828017212290651731345780378762299410541710150678826573384090222613114694399723690889750530252632020947317591742357629980858094877148556153735333368130731223051520398057512209487684832696871569393353889506503332899847005229972476060094075593901580866214629610204034314993334797687196048760934099712936877936669883498422359471314533160040227928644731118756577797501161583705867915874168848567796936991648786135631866308354027453207334198107837454523552405612871643459132969993097366458483890345407426377253545017342548633914695679495078448369979315246606959564002045155078004052139135502185440924472290070704853555347412384151407480239453029171372088042478799217934828805198370545352400348454952382207390747588620609310619018506732565307876977622465678015390715104920944728044276462641877454376901661254783333907496509819531473014544341100211167346242629239013604297483240921952394473759463795517233752987191896136002310684532574799099828289017238660169830522831488575128077229168919180284674718691158890299350631440141538954607119314072789175691582981142058914388061113593402321210074667208241034826557800558335670911346163783356957855632095931175418987261946622928966549184666315446304260651485774490467542853261248412656251377316972627101723601652409767183272036619105121206029687279848959532391870993434311059656415168935485098650592217409689102067625926370939389724064240975969821088582303717788979691800604280015060351383329318018905753697580653219819991843823614975313923101836388920598333794805243050920429630962875453545592729118936752245233129388761372547365221579537270400970490871195875222394966199013116169081421627509453549335739657919857378834868634745100434568493830672305338857733841125840711670699992327371031211114899468338242527818732569458461927617905827147564168417794372559422441103741361285769488106457161819344173404091806127543625137869957931079507897045891098232069760635163605003422919391065938946224553794123595969583267067348513342993239743332311611128830353747958747484729186844084063412923860081131702888545764780202058939256127861744569688231948890828744621006180576449587641649456706226252339126513759427504161807801631937674191036496982991697276138705666535526468373563780340970794835605694402034809515838064978903885752887231366752469682489291663666200395208806812972926404811591754624343935904628748390531392654060685288029961652535972316499816796188872779745902163887967909173549255573827904435901145353096630368582316523142123413886823485482324176741951588569714513315352362010774312173793612663475138694893969118561603132349037969877887738199077081900109485278641512148697721796383712894856980137662973614721039553297987623692017732870675178490177032770860408496146885339060174066663097195665627888164527370608909321068568347879439923235048948328831549553298594541482690573111352790995802334526374650061211462807965838838984160188539886398586399787399521937275615129255636611260260780114269545071568757467419679583816707662364999158789975518339794259267299835974900036114040441023056420177698405908909789600987401759150324005059715082618658305736976401975669806412480457092499361100682913182240811201985757473365589736346178203872361551029542606063725606890489690987286871253428040924176502495608480826040079692959814284165838339479481302932609796746829391263262220448362728384253304073004664145908172950291263501835830713066718106030121507758076115160560227472359493398357537309535214213157680239158855611462826380646415075786369120957349694725723333896664002555787979888398678621465363960144704998409366118954403066892717337551127391983721585441636686946546971762164905012499568146250896312837800769896542406064887466696771439819142300932073657283085771971116864758690671715481854979571815161624164548453733163447321646053349601736159375861820804152518375758058357953559684309044008843193772158432257710116516289597307645868485845306302574730126276984286197691929455814749518297375633807733753504680715534091292352521843078708861103742007675092939177643137094642133487735033795817674228524493946794356086992860212423351978418881517263927263188316309562270143961558986615737991801690832549342985939972774026596544948037970977993997235072924396320184019452346940500945885356961367309357373541458680412153402474438363240581268489321288550586555137966354420128668402445695893065825502916676801363868080216703260026552651537789975451484430436658866373155414494419596559400199977785473901336443812488575287484573980021458006604385981742038407024444683920264252038854510878631002423498060126624986625265583713261406566872774942565023917025508616675211456614757756422904624005044797211820822244087125767134496695533757835911224756494751866560328098870167104882499251753057267989243401716344063336798887487263758705905832197854488296181486410908655377269293509758185213632299937970593348078817056053544838526586235441127142750060203647263593693019310705301357163247464088682283167320075975703037887768231804633566339024930750189445789973636294574612152854297674551125692318578544179959991144820993619454514659016049796634299771422786899453107651564770557649435964745438072903101982811075826817406972398636846246303953859611088326259115809339271459615034370972129921671178557778531116274915444415728410276200930700944245748913133699770662626209543727207138999161616216095943841305756780343906805518889644650921217757326600561271314485093019637868980748254001741389741059274479324003434760501395551640826993512801339041800329167014679824253694034203998602866821618872039158086632324058239315386187407238299186217929570253289956325686687112032970385704265471383002442577167215345567094354068089051881345026878826993557502135538759172208617255858758071842720992298934352653366404975176260115024767420120799788577048397411638318665562053853697504343821246925203333416667178154613990211103801853698942976100135901499299179767433569763240804041802019053247346670319884030820262586046473835907838820557183587324193555357680220405018175266507800792945348377303896728286283448184593909811849831913843684006194913115526719112017461830984287505326282929870667092326851296056521724562991906565499211947205943783830763165845497673963546120968431661738210272905340500600126745477499506994089220995706885345928205961263555581882044053625216237673648045969946439169466998137035479054204714387775806452905060215730064455843546715656830111166598180625286186005860015217084281105585132904671600873831307002610558258433398190505300446855649060727449270170102839783752784208922168346854413978990503244813792993403167501660371181083915957431970227912369614359745694957454439305710569446832427975319494858128905421678739923242151531153007964324363466908223027801401987721423101052779607244916357360972723780331493816567048518806004661119256690323076233624681996367765724615582384955097265281276448682013349431762886824503517559633720738647040737382840136978343138480290912163512188128674008216347825666774880736062134106908637978430531364024567991994023766635380773458890299756153125462462472658523422272765451114399848804953889939460992419711084884318209174785002411788699882301792303301518139844444714743243661693568524001770365081441847113375977547147300401849504127426023712748858646165165288443388539471259604244763272174044318822038816118822006427482857165403153175684112994610289497128618978972318132480144265788438742033481807228593202609244989648025494527984631285458835048006338426592571968733801091352687217397091643879155421545374094148176626823126693157757495426868191474584607355947406649649660788473284303591346749891267583005700761376895318435766801114311844942719964622329606808603595053915926012169103493419506586739652542936148688465888374988405405077987505078760936627589791911858682377385144913952708121524155108700655429681622651588006579180162916030403664146899177880299688632608676630557379388891918690394193174689571162377908978286720893696285697850965170790388964493994403424424494350525556310993624943346987710757448757061646107789868790477073121854563983311327014297812952305203801179077238547261957714324225146349053494104313936372915908763844727407540384512867680475709876994277394829502409980428666017995639328351744280497806156032462665549080947357195318877320890097577582715819438134809948139790166871503068152757631750729156976535876720327954588437575336749490763515535909790048954782690080592195922663961042745827844248904121475572229715861331240317176368805058352950966244563935934217686043119993034385326324319498443498833234283810362766791955724663888656859949631765750732506667868815889261843028197370043082729022952823621692155243535022321195316517877386557403168386635512653430052017161176741596535639021160598093000183058139683937714297226941858753316137411499109250511642212617521479946421000512527236898063320511653760554803441848707204764180553874577809339872656971925573444765236365766366862629511576134237028067165946502425743367738573141594272462686238618020976474979290814865765616399383519877063716856860585031115332714669757650856039861072048945581371365755081893835144869217919040127779471548275206238894563741935032902377894196817861096646911806366409755952661034680278692437096816855438220283054094877877563087872517362399962460442405635436129995395220611483557737430688623696503232831478319923300212054570135829262314603815900600876993264844669600774556913970821408211003123809565746323758510832919251632432942441443954839483941232979548252502158202378027787010602467511390850358395697674036580156182386181414393772719065553688289413676527168717608358645643739210447838730441922684813334855449246920262760831699925058780217418707400812536751554056359348114443674310506289692908482433910207145048896836929158717935901850299689120653850145616844596226556882895573154200169748404705572706632649802007173321259543744944640853355815459198577906022128199545685119743938419470022274215469466380392771417476701332963954294181418753881284042367140131079245747247793778403752559796164774258011987093806535899193020326126589684798769420923376102421848750857769324573814886256445082017488795756339918264334296070759194173313966583121989478453124302452362220903800529294302387777911194338606026038251482058526418826045131494761924559416267285980642603244733523768156248307477455524804118247090433787669811705419854889059841420155086307423436253606988908419951034380837318243086273868190052918846890384608861631774698266103396065159714203697867903777445060935666505763950354836795596078170528574941137003602207272045293117360785024141353914564853497777329162783520307573364119021404649416407605540502664746141245021827105999321913482154978413446842462364410354462741216048592939257880831474642316470348720253739433679431836116756790551286361514065057521111873382607452095113105837847970457705255323457304372666695300887038864031455188675477523599489504033313913843207314444563671119841319877139233954458996487567296744254617775060564611152752711386941990288892146199730189131554653151820535741798844819960269064429032639197029793235099977585685761437239734576688420732965390088224651578077922450243152275884002859690212333212540670009464998645379316365236864138550860314697869799052592373850884592375103054415161321995026248485577531318033453670490931635255918502029854488998551226760714984765382641551011173576118536882463802833326914646642260434265523021506194977569036239958159133894685211122584612065873246491688013672337203619415961818039760946075847685760816951983705200409428353425053616711461422495477667222103705679713515157757413888641102929619755243716125038520973416850987683385439857674152954184525503861555908910600200694900413729871118106726021657073735787418737977940591197344914477273280559699730317288410271235790053465337065292701680167381073426884525951254637351014710177727970647013902603476101654988118795253313714582672173383633038988411111668160590574996869384957387424137209823020637213125500731168291022836745521206366174909289770639597154772652072918732997455701598142244798154145148299688892527903401768157336951803254242006183735693400077214796879677856006108743907126800912534769104644682661178807444310765173651654678016929054944328890169893648498557902616589589134099563112225908190123677059817942795756453315210492406946698160792096011781248734208885263373628416719770855240294964628838071925810848440208777914068245006149661790342812652324460862371695233031514460109861198230129770036577947931199701021610882728583580044994934084379623458684853496618687782910659362623214042558167964673693217482702904218511799177369027185355009455394464234815317620097865411653591562332007410004193601849601265091250035750455155125571345718028036864172804199679381501561070834277646125131441048727865569826174135392419626942404541823272974040023511647487318958311056301858848289142352607061499501425534898440235759377180323459280423803934530051113112133263843265697692608541192787710783214880391552981266276129007003545309622201101902803761276771005580520849141687479254733982618204158377055766524159350884321138723499306645862303273082903401551986862794770422827469148849734227832732114078525540568533405351361944872939391920918142055720227894430161079916285438900418091426135796966889508398557646029419120448982159727781669385131270800864822577543529767325294960316158417627195923736321863127100320298609196271265616550524814740743721503253544066963315378939550839198985827150969802274143868524328446472776649857391913260607241379244593715665958925307434273785353196583250416999182345785236420865385556604445626029753636332777277951358040066044025375711717251048999930650243712531953500499614229470941039738431271187413423768178267033635060964032513798423236137975112236677242143906820913581938161750784130982546080886656345038025444045439008941896270697668341150341915065295027810747775412146602611304665407100700796088168102232127036388575140868126880227852111545539126039750551292420788680095717151872286177407575003775599237631960492722189332362009250955214597468961043054017701060601467464498489243215111077781695223321025580111734292526843642250974788837329010475796574867902567235642618863467576061291463612767308047303798411117477373235046858793553003655503472839513311224599893239515538533800091496641058296457181729761728703495211183877690753377194691192516130424436025217813578572764991138197742259862749338142707342373561138668150552664657252340897804383765520553289604622778011647578223651262647476880359646219513977530864064023834660163300454596306357614207526673348962662229910087834172606675450730848868221992233059652842350470810189954517354636033219645636402768141188008618000807835794635686275158531572090274354365130183444461951321644648961119012753745514107926605528498539660932662861110734413943019102741016899486292618840822418116760570662009867953958575134284708986030354276696001960288678515213185461405866756778051646129420570692801908911752574989268438160946156713773242090434004512277787327429341044340644218738633237182670207658483477951756945705708924154057682029658131573967029883254995977977245261791245464896201283093776957484672330408133059680074192420835104239031128591406572306045289809257093350241746002247105894649526752291784197225261423510198486579346044806512360186707462399133718288791943710827640350084004627000044126319518254642974706096309015090039730190172943539691664214961281855948463202462853220265038105047726625867469419756579887401864107222940145868112599027103791631384741665367348207240482787589005415835954207807374253589533863099360725210409641846088400398438105946210561450668496387977447536394204221613449723467111177638406460441462188965743682587862599010514585957520980481708689138196806928260368379509143012480587538081685914059400498117594713503074811471780218480671128805663119307279698708770178983046186587976537021800704826788496245695784605015684530067075374345753924761535405489105530539845854029236971576094417484028600586634709815620251342446141733883311476745746750609245386888724832611713477480046793350494849746704553871947846296583670847087364768522077670794956627742955019804355404594709970430266233623460403145865989985092113941926636425445254547553295462245225715858977547642565452698431624189190111271155449329982884036914087340134910853453460554834241440872378634933986833761505434290980802012335926046654542549940735674686066952787126665514879073937982036957967452739764974239269679154917273038828809153062404075242616505840098827935158852219947892124171423263611573623234840071802980291078481379433022858834826951484693802105249263693819106675674708704514317711952006666957598301685457673069603289239380923681007112280760383267761246506499866095408648053193067400447979636235297628959753627400251944818134354339923040415564447495973712729034642956774352750540018212648801336209833858683650103269439715472107894815052500211877459404511326816459047747720370705748326820540774701323219791429223360113094014874686996445317333202408850466807981798924906370043382130269207008183809702287603707044289671869985112954653903250024417503617606385564506963980203146543894435510635581813410657146393479447888484326003139867628239120632892124521615352734833691789251195010014178399328669590273170860198896640806465477210470101405933740144735971064422609694172392010858166955722425301433524384356080331297263971919976762162725084054802252817158859530875893710412016626022489166313115283524791164969610717493071990981016438302043811846647527505267880420157327499506754733404732175619231805659728153901211581032502386584636725790855014169132097891824121284177161405932428101694753362446897089803256091972844607901458102875038474340953747126212975607027402711260896448736460266170479540074921082102918778154321087966465434871354111746749334685693926794387879188089760772914715054276094502908736812753417072892308190022996006244231938301553457612816248106418395175978606464358805263944371733892667402581326766377540307018821191788326087967207455430719499753288479863197572598025383541104727324760276378823953447650685660540131531727086313738274149814202238286225975767677953282352689237560252412497088604582861489171627514788614841887897528310823831959783540995335475331584294913962216448143473456425741735706475499109101921028554330338668566138323226494254141999618551426699470686613193655330179089751886523543966704878054762173193339536284527026898486248361103519757064147018351941117387659179918304762066476574933470328037853101578512830755390442314362226143301068949380981431663202900947504458399783594603801879879762246988677913456305490190719999462531400020764937101122131071778092313009483937052691261611679314414843120787053195628140985230990468027518416210050556418872225745404121115974389219472873169669096258052430278076357269664908169470953979560493577396684869319132300704486122516347575574086941630933539223001626559186190332416227456705162456944005766851182752362463312844144605908317339081234041652820125429699797412914937482975184217156052689588490051145158355640713065754773407597561193438008815159495821387672715839718856686093370417135728280607885481935650949425042462067390728786155881993896679782673881211654053668041405616485749506178452793904414318592127114477631970232803016854430014355625968512169114335326758523865709458163402424351468006711869893740086644852657957021837894651902477427891642939411914822105588418609276140317626720345527604795966595720343729008261444578963322070165769060830632353889026500105648730799342235727736835428220897488345592828455115402178802198985013515756676643922171825651380528679299051559894962766338213569780039128989384889212090417941236138030018432177533060256189380485089456544351923238529065345287968362817191219207590579228171800118604976182815849383047631780994767278113552421858546275131048427725388452575181856585736128881310813449739588848498678445100661175832529730814298816466583653646300452397402679166341746856828960456947458005061943604352174852007772668941377868907219499392314965714833381035401049445916372204533826085069633130187573041228057126921733537619378553491856515179616332882989983616620562726918853920927821813749415359486231672678864564407761079272869336702341087430254607828509197142220556963292798406717384882625367665268827743863700780084958485928489938667835984683723035570512194875854231574702087024578242537613693345837818890339353833071706008458080345047498871604548197379221893353405704229576768654560510717632793062191100947763978998858756666304067754278630677810519451228763694730276969835472853164134436983584143627780981105409862897235965468291616167060719291970859823782986943803524944356843093862199866408947615573204952120142106257282467023970437452151327204662606786201202851768899052255888906786365120008883171537810466066157223206518213174187515020368881514241461826722215521144790380693086948375432042406397188044730464075046195418214525038330231422831188192684390557622903604313421022678841705915701363304119110423748501632141030936749611299789311448364658870551779304610485568156517884500066133939435286250145715719292662460827473943045348362430214429103294550688266161906567897462559256997768063673485331776464778313732777194927080977829400206258104265803892686359882068486429385036571977659922415817091019217368895614141485768775584617274956125696396723309792851126125973882902895851107206092144213399151313773262858378514171468648963880621676248751749477665737175188463607746703202921298871640935682944412913467221154157786793210143842535400555773370336309525318161191532483102342636994587067847788722162100718719148331136298035200194602762507709615288782130494878601108021338899304577792445585081507352061656125219853008533327799375030704781894568965302788884840074715319473486178129030977000921004271285434816632319320046483417945790491316440697000379669699514955483742710716406247656844704625268568330534344907009462999307420172434244610417222184902573295962679795782452282945402272361148039160518549064752812163465457421273146661317903923739969330134859635788501717272015046841828399292850326631238021020024313375640322306206310295917293608458411845908996349764164426940116956533354922275077095045243021768691782233015658969338490753832535326296306299830860723236743085426132857630512642976957742715004721983327574609529683136042356458651375187065885853276621405662346430566691651446708603670221281141700855348314222657126632027872050058327174761295450204326203318449158523681791735996494325353262436416521003996436112212395041785248048168951009359370376835851496594423561392558223209033971174309048359432030556208024478351931865617234946906606573855662027432139745933917806487403202772926455049873839605738556741340584534766461701924696126304809514087396608511190980600033177258901971191439317950821968360562107242965078737533270026411551891728417242748905250240979525817243614746522704312694583691815920120735201599822336700404232723658506330264674345195511258886630773598074611387080706208202907580234586296122421891882544954881536101924999860226445163645017082741571311404139723790662858317563424275925539674120293969438759504846466944229358222027535497305914137316192982108538701348682780416133095692328135068583281603178772442254228476437222198381735399718181431264079782474364068910455056674687281683233136667084346517183211953425751714232478033265902517826770847500689776944487205089570379250076383093093792284579358331081825596534681811629949192640598779445304258291714775098146293364478782884602851767439218408877601392815470541739663475612828895785265848083803837275260780220438461383217419652461173674887788247958351083047450414335988590509575457625562639530655477177800702351541505814471981375662844704615726072971872073793495870968759986528775514525376996575155026794031619004850322322881527367098090140709381067328357726632912860861648596966058888559573426577465909859280522950993584971328121197587307376006113505172702489871811548180766205624830144827067768060606550043398214290779051964722286161384681582393046813031390286062178447144799992478440104578820232992748662839440837499245389996261568851074603293722306421192343875670578874007609104402099969690577674665486543714373481826880862396797281027941970689408867917482191406903592101506585625462255893387795091844235094476130150592332901837126171552201195482486211602204490156087358208969292895040675294593606419738359243214139904665969349467367053103619420816209704414476136232288660836569743707852743704643332228047987752241581981271166349795554246823683419897869311799792365775060988678748704911505385197901612988725904941391220967658486930719169452935405544078525443285271694907109726213011081214719760787120637646720871329758519186988854251410037450906935532532291402727130243709171644694667256047740707888942790218977289460317850080989373670230639873514966758029296230805885244112516244715265657180504612200071866403629568845189071439827074089505408145575785990846967476674056066891388426916177718731514671073126997547071563059748177077471155259075685012969723311390744010556413972448692103443141656003967087911720608305212891853380038692015832670903255361847841495987136453764123480717812351528646217375881686551286931509739016501951331496907412981231542757588047282635067188239611827525921154524543660956745931676812785419060341424118282412854041776541385914429658311411437295998735456906374296209036630821462537740846709793246448681504073910298412437359909898833570045782778401246472128580786386527166601677493013061484203692715482811375705032018582045962216261144740271559867575216187356868841601216951047604009635408607085380015888292087389711845298521643093544076955345443407967180283179122324639727294423756374510770243913033313155741458068610659908500206134663872837465166511395843213310030900640670112121940333065300390806700117230968695486979173929303858276984006662838667750599398243808478264655064469484787350799489638731330447834510729882879504308717319913315758543228006576180405215372557579685114917956283708784228966589228358299253694119467668528173535240215146082601090062426085500570472057791558187943765335441543295442750513094893790176285841854988771520413000508909388174735252386668252194847633419532735104393950064289315983802088909082501142793928628925033043701211496444887052504145219475680656833723482986131174448556212721566830345991839942834189534512683507961078574313912415153978023481423568539051990820043170063882707956827712189767803538584934470667165299389838432875473934120019838342283273539460624284433192874692910665071763072723755933813136385025976248713894847565110285060332463566717583332688514208150338976235622161506730750057400768615434939893565320260374935615217054492021902231857078287658251071544866076834908470244980244843941979671833382215618367861594647149590346080682035793480647055995491158553150612032219963344219410050109676180194886284744669978835869231471713562839504772849314922866516473454256609683612394185003051518935916070938796153756624800164025655057026250401690521743228853773380874268830608538032223683728115174755822024517809321506818731300985989755154031323447892599771272825222507395202177373587907264183994467347986009305720781233545942981796269657943807669798224871927496759680760710236019653758095794973966018270381374296600290049269629273585524245571642434685297040507721496648977509341111647078655493978702795730646891895882931484246024079267469115177177150787980389969583145665873550601971110783870510373324114951740755089692242237601904774196448532424589468288632679256380664828311947901591095623270327422345498048953404800677849273819115603572749379769476287525629183840465676420119147755762072985025494590055190204507349174045456328903556413876263581053883449546486688408493029720802733982769112702933942431387278280601594454444897797538325949112408351954331843540225180370733027220031852991786239819885861187193990679608451980238208079051625326699507622512516208783743163013142731164893367322633924162258292919769135542799669790896915743584431260758331364465555463663301901226911240444000183524693070461128497568976607598807636523890770372412176980487668621885052390604008920884561006124063665150228931725843913315436092516021672835207638848296350901821022551977941083186652538349338882298869417598005579873541279736474299378451504600660323185992051276667568266885123954984471452752910940674012793643730567703163215863806918866423768704399270600250227192293428989262660325995683550508787587288353388140950777072399260506552057597250434563974250756549425222216366874971091681929526538355888283643500197578063223393923628692455095460838383287727481458416977256421319199189095203453974528589291683844602383528801437536809127844193144861239369092534470209023676904232134860933437707067160564085875340451307442077661264714781475456456550041870021362390547600630619519868085278076435294499085661514471490100706205857796791034316917456441623584848105919891685943384030421011470643509859929119590192004946105104568624437167751177564330075565835157747636162107379874641784454112989104343475756303612546668965317653035129000853064594344277652661758045922519995469185229216025230709601861416275268548512533888835628941721008622169196574156379807082048435264453847295055152906936621528951202426781237339835851349323366711934438924549030823885609477213703734247832732446089520204381379549425332516886939501478875364792774969982865699900113320984453938908420174989961200997633216840336555770632558345492828011218318049551315967136335879488518942046203754489364542463332221559293748556081977060580945235362807936947810837306413540404299177969119442196458713692717335520929521510495585319315990504187872882201726531491502585533935372529429113959262153639551569899893467542264306488455253838500299717727479067309858011835882128084764089934778833733273351542084665411253591569477796819707991478457231009855263890434040173446553697464595908668439276231193012979135212953719215390960002489532483480713154244473558395961790174552664071654710461156681699099269565329422497628343093077233935135063578011738000470889169835849952913955505753259193413714026946423535767292592043938134870629046274368116270502940550531549081048314806120826411900206086264691484426526457189332330552301440769860289141714256930150739341663423011361929818455812828565870019522916664392365292020073292880374241480130545858568185083683638444709845866498933077290522970735055261667226456847188016348492893672065598027807320560878219194993309982361608237894258912094790175044992732307825490308890825226142913574897486768628531803102974968688573305540502201610658556583770974404794939281568819656916595118708726609043681450073520914470444177507398378293112184781590762038205725355095846520397847905601374334687238958317802266135671883070249310223139753270144250888095474002563782411820748503319493580160324377084884173705982255836107096189716740429805154037113003643115277295318439028882703779850537303781617652978529390454657375175593235292723812938104764707647399364883392259584768413012898075777264214998408783591813574184589509376932800820164932253680040760073764381813278791638797219740756485713445997166752584108105162334069742526400071890433206643151046705151855569695016478730205185258008364309268267082849359120487514984069595545651400697242140599258591285786566240023013756214428803290686865724237347622158538653625082419834622648985041361028709764069114803765518805084041149825035270205856675939846204754876192859795028817142599840627539572682404097363924565069748376549232574890746976757038527200115383620930749924543292315746025659233634284324450917383514327894876082248163317647853750379468461783099961017337227961047936399148164093462892331290579478056908534777135960555956499770206598745487421918753486424270969470836162213912502468119447318415872504123805435342348332234098765807337163043681980143160469508839804495026540041180201408138133593319628762009494536322257535687320108334437267848494261903994868832692490687029934833823550348439171198191022391881731099151639096361755279834579532198098886449661576180403084485095945643511429195008431591639775302819167143115434364215042569577111544367294577380164485905766968670869148900760780052990307891086142762591038789399725804768431486130511668751357192154674404925528371976914861816846118241645285616223097748919739314801935825895598939840353551738517107651316549576622492365670381500807735022142532620860368401075361434636121236321729963000036374409737418241834284280176400112429714029656908122970004042139290357311137271210512040818146354693042602814126010166431643530297143012447685516511990436856585649682230084853432245074980455832992942174744921649453857841063774366618685356915446857569598111573812036382394050110917681054794158641095586467660988197375212757082233538709625041697072136592586363616162006904171404070274260669606360437640642210549278014366506268972021879726233685047010135102117649111360444179206750712420758386601732457819832711614939298106035286776948558279874824361607896476412077743258833108140819326583903836856078562050860949918307820928169107535960114821489524371506300388480685012887009832033285523051783679886135917557905334172118625194507457977589077276231413461746047000785629244797031066381448170813965103727591661372754254353869182093966830205564610185651336746099250610538032324437179286240505237982673255041154757546150334335803644212365170932156673692085400402112694998047938743378093994839644929188556293936673409470566137977647380173398015950755204917321274954353511339816340589820824994675603574920976599982385909296672262380768355678176200695387567997190634317453701025659314664272302973096716372308332479311352877224371907285929345884109999715481300213733203510529274650842822241748811391737941606825044644169114571669919283887981376023055019325768315374475593733484243437395193099998464108267354683666517945931274775346008262573621195124230659352886111239217009364242205941619483822209423689473866480981951648606018222500695573015395141380869265065196549388263163378097958165020865475285648914185232915065938830359439639387302260148222205892900424167747490030980953997273018870085373426476410013734629856940694976119556140891900682717324122140255758729913571004568109318864943328115432506823841533729020995300062390652601987557739400635630679666292575362445743349740757406474094407164072234434501793712287294445485379801327527042340193562079815906988751049660965591521414529072368589854335830732701323950790475558778509471115992112209411941247027370180062932295164715460209968298078218779119018551325324805641499275783241502153501397346424056338109249999181445845657115474394251644176409194490885435602974253512381058464906016178002004668665431982731266837520901864898573775442032470677736980037423102038778651196189015746042106373035238567028806343466333056281026863913725621638595319987548566777635563212414033895145978576228641072155530658299028245419029114198523556838118038557794629335017893229549218623666280597291055240091427243304705408794279073329716237896698854509505688724002025588818846132535711232138455847724634480656192782684972711785551714215737228345865090499812653894688155891949128962332647154629523075499617143441625371775988607742737389760340602602336628310911137267976946734627923655738175616072015513363242112005476433872277541143554317784170370087680332096617052802173096157436389248421671771878926787696144152214081879863667119470961022143003075219981036152764859282447860161770226344003927260277103566237884827760158860392089299413959882305821242532789214353389626220988146758883031618228661733903309344086520659076602723916201602682111440219445205147224863105208803008084472532927587407618630250920260758373227271204700819881087985696939437169125790329737448279676977437736020186414010588788108466071460691845437002036046472864500894208765168584788198081098959174339619016931170807050321486013897763266729625175740236575250652035508332339782651929545924030678260557958772600232877055820251030979065979348333012838831463181464017735365242086214475557134857926940716084187654663670857287606910266971927931964931973392554113983176828013387349496040671178735185807369254617004406038101618432765542398417012069039909183265042029374114101856074318298339230324656498346421877189614623180822313642260423802844328842447487888903744539768324123252694269637776750274680144587922147287478683101770409490800340667712889164560140652781517676926022030799848895100881692604106867686066790005336096773125020464465300474271044522008663651261400798436196911781218909453145717128706349790636955580957149169450524750643976828068417435688491354459540389014590877578900333945547459703991379891107199726643658054548577116989888835352724605594149000656826820242869711376064577570081619539723042642691276600382262861870270364690399738230457988297733788555498999421302944291892409798722353472754351295327985404250221983075611827416604489854012472795496999151674267398239665956680425962451553360872529289052575022399396250388863849927082935227845190574536615654744944925832685065686873905618119913126213125821743800884614588079512427172427975123677571518704394368357158039059323838554150853844316540080919056483902043026595337520140261848288576457183118239130573281031236971053525446640489648191895336554963381221449469224719023378417740022181195987902664443116309706596897873950537360648927096921682754073980484922973923355101413792818926134945999697172055558174451992743148005206477403407448219816478415716690420818584467698702904879656772257196211508040248451759702822429314712963084768773082178699548554691681137594988834470348342783361306834314849715146676752039759179632076400977615979593817841284450829698506084762599107547624214192255115099262011243436054376573196153688161835752088755934504980953832770625359328736111619398944747840844469035997698638632398040413170345853050174189591632791687240845560623820915359867930232732063782063323907764559533498885137358342058075870648128425546857305848304169397003073291479144041521267959000241243556383735786993726878045041440370507663454872775303389394935719446123627348955734903287060415350542838265831773844829957267680896689836276549598356679076218971809219090427034221876880442632942803599856537410225228378987570930473572729753204905157325390918674767051678195248341356484207269946559681292277443232452901420989642627231202789638925842081319050277428266645067257514457332768867112216473376740661008758330406286331412027474371698438027879135842813332648643563062916192902619515481597565035520263189422158227552789353308158777027361769543096033870583165567273641479749985953759958973106724364456035122418118109961873889000472110546489688589244402911683089562348922710309199723663573034375158355728543796477810799424233255951550348131254295990132933190347879610985593425214231921917704111163472752813356718764650864908707456085215895355462210611574288715873453615315875543724881968583781021703161839252646737407769582001569916159386662136529298882318230612561538320462121621174331064403466473621134266989545500951010792307234103964111282286520416969529552308251442066420064367037789441463724211686009802589950525887746126260781965787939484721970326652858837541530083867032793121350778224824903234981436984909358023710640897198985186614537754252078834257118196370985647933225671929646249396007829847025005417622650211428489991682671758898371028147172704623059122018359009895260240002552634893819301076503651202189366381343304160055240041971880794631131683773909286913159111717728396589701268073469214174745130348931499963441713076579331677850533804402703799753854069112295394147970057889372419255443251974307519612157261764289797126203901382036792318084455759268910647336410463179236386829940731832920862529592541373808188810751973189776453004803495793560608322435710263976075638671416351038621313217507708896053627091778962112035659526432673193347711996094934048803545710631193878251761594246357446044818999089481433218189192733292299603874055480946823839495492725116522923894011855707633785044553274797341993328714641923367519765621827766576932038866857912543987775315467914498892348798740167604303118395677397762008536502410096546816080179271499350074726889147370503583518668422448979497922531472842359374192225735778695194816905079525242749751004014071715658003323297975064195804067342343308504000613905793936499348870286813913097589905877419532222153047698389758376766062033014681851726251142651011559850175923751199190931182396247460805546711861723903607789618170496624401033881820003337132513192859729591025124264103322348711015494671216076549277051664152865643876876940362943582154825117094483487505649130569204700263201501611239492362399423407689769348083108425308089799770754511091132223853342339884500083630797344888747160322403077759678333795557897166250202526449914207293291943941102699463816381681852380610475883623977248053691921536423390997418930558337092334545725385639755917109734782555926770117154019703270019200427393996346384568636799657770445521680086060117397346988672319635532113479404327815668933787387210089125554380379411450864515916393582650394151028672280894368387501102654850119283672532897658981878025931671176223834995435828590249760502941970548360472013574762734286893622698467015778147619155021122581031881660458126069885449887160776946342906173717214372299965324527351731697660755219011594925198609038039699611274315274079594574411312400197788001533100391071748107140550747126947507400941835325568119107744483240193377017173006631915816744158675153962657420474569195532168446001581264119653196940079976723219837258374013592229451965880306137863012481721467478483003946214010139203680234438334003620278306529655315499266608448714077321168708496521395936898402659810953616650625771312071553707501162732876587373730336097059687831149421361454409145056734573831085195365925493042735862097277122276589078456236827302291823644200116255824727498385869959918469330815797416453753604437339787135584861297916968431017221138882946133469575872146352685364702818475771714697648319473922320799258944273594405358872495930848618139786560371192675731036000774236764006415973298156765337169254755995217515354938731984849296325036098580072290036317174261837700509127166302021322709722744530703064301119689393775302608825258468103351424585167772663560299044601846021758484329209776530651064855522685517978864538611697988766507344627572134899680726812937083630630612095198219713489173203133773104970915118263190792649896034838757640665653055067755804169356633119084941658225909348052903227437856999592974622066476075135927534470969218125100205694761298748590681302852482397575019513014373232040279652464976344917079596630773327772461320770099922314382115287426301532602529831394454344426556036066900917660482763031908324189634545119916159247547554017720355512652552748145463448054319648101411819173931637410077168365221627149220742206511142208776362522694984883846659003139764630084369357706647046982751957917079198653606442773939222128906416607775956681723094514610883204019449508320968032198085358655782839529200507631864312613079222618597092789808945135065266005647946330856274746778041184880167132668870687764282010199967634643153961039179007317659747605410012221628584497884229716284062940980767977391834281361564983168867174184481248807692805738949891441424953735042020422433079496946742625347751534293571864513888857446696482450233913997571231167948869359417627507718810442274082450843786723835658128820414671688466479417171078441885401408256122440544170908158349856267284178623567411352589794737110332910856851205084765164544993789339261073762965023201083421989302719659864060490482603609752603861134092113059189758746973554978858214568493764983086835475874146016100001143251570492950704714536271804950028829350423669513500624159495280156793089586316237152320290833497808294647378032340423144729464687280417918864410780044696293072771568604932093892757917857620927244186563622233546186525899978896170966638785461844878333627126274710627915442673602169134737259486095910654686821966693364836843677000577880109875041370734067927820488900853000588931504694503145330804192475946170650231008897200916239857850139421423362755988703491587218239533581520749354562778815002511536052734415920068876937855391480915456504686634805019030095792350769373740734545307556363885299011760300573501549504822606949134911809052103946740052495674635701962545144000712171380487796564397022085931693461975932955695102880699738723447591060945788177055861440358588136303909205735495493374975906673362105474481122000501235062620500291100825185949256460157005583866944808418264608296451631750612474405633387251228293292389092493187973333982843735333620635916995300693521538625791932859940977998200388388315060602447087324161366417310316379794289802167424744068157067559428903445519628455608463952229205880771875476122252866948148225216059084922372875089723896632318039512662700341327683489899886799036362116042334676832198324141301334958094118588482038227133287370436552532967310726895010617316840413802595756384556887580365824007976890437246004582655055069206961906258922039997710293194593887147822179097234436234005432061124620998144278118753178382335583153663040867417569360830432873709292405689472350063799125912233985766519847048780681377851853218423225711400720616303062097946419072466846779033391741872777225210770054944878776720237428358036253696342034065963608530590180962142694322688894462573117307623137778567542630322388082255176620671216075884055656628187225917328858181680949430727921355654134570309207204624618463285693392471301946453302501821429439449774361867512348317412226609405083644537248292905896932187903500406581159266721609881609803683917934786972265778470130670279454834423639882011596974906552913303484380209973145851460578411068793013198245230254382857236653972308863215862450142312529444871497369868171416412252459346249334177095436405704174607766025522980539341752705914168286471447013957801452682004076549790872783621741525769605307205037309000454075022230963148099709649476692167932423354789406639801436853556195839964636685927677229132322998777294653601737651199955814052453564953852012255094036947234375965692149402628465926820694114557300160841753140097969688593299255940023056043643717656048533396576320377690246689064309144520249342291763022698394714983363250373871981450386921300986792575848666906786932646055995427311341358265585696654542598119813419181390425934190561792723276330858888874410696620674609237099106372683302647403962425454795378037744129305105619668394192013401790995769306559187122822681925460168037883620007544681231048450807550399408989570759017460658146707721744691982860446737333332724483256467535695398950172695685303939116292823068957055612983366406884740119836758247963585387877111958559857510611382694764792878382376720157477625926504832355118152975778557058888969031889722072654519219607933478241783364463837281698633956133005707429339831161964332059736921111535465432070643700244637778080187673204278411392974550952907370391246162423971078867447531143128439589096556153552613167046155360508052555705972816846113933034813811005388324638297360205265862287258537212672308729652618497352053805923007518056453093424365042712536205297734959080323459673332939430193395875100672984323794241215487088745475854345613839658754886872062161845117931715837538198935915967665650973032163275889435682400446921277686751448120995851820437540992062674011367921619968610064831254792046986049712960210887972022223840431219253308687666456183351425160276357629920112050695490048826495114556161294692103292648518370122202935430208247018440189949570277323141115711927722567065990851899456685672769958347691947250228571829059406576632823091886942240082721401460680271925084350350221051994756844941874853459804448596278210621967902059391845131841974961870123027581006513124824624807345885879889692024410572881844549325565987158230218025375612606594716920432976302226737594661432569746496114627413121744100266978848465665412205770824058177930013657360367081378923822693690713940673359671967085076992745911755893347660230828920312266934632397945274568671279946440995600432629325515493753080623753631700325814416960688984239277190251180885594025860282352813629839842149296673728477592537006843352795334217708551049766931729291351307408656200413034001786776268649066447907537689893828339870946321327767262276327741469407758648620465264657779831663999685867536235592768024279139508309665324517999711541048689606252874538061510503509953910365586905922625547495126230243664944838912183916084558335964344524881868575210671967870047196604027923941180999635237308004282621535824117625126139751699894808195919429485248419302049233609141987984094264554990267970752270479941040436138731651569512799951428204246560059716315968738028764912179381502508235537834696572212544684207775890914482606286850430829810998424082079583576459850002432894620088400587349493664531601534066004947711286621657614601513601187971052438145007244565730054145030792671054246685592831980423769407118829352426889390753716593737998417414826018329030437819191574563562477190627015398633998673899788480546765087908056551787441138539672899462655064051450527382936901979950490893213043809232008330377993598259666012411217807744338703614028362955267201538624721196486544824343671473548231240060092071731871497977681916244991441140814830158997839020530032595469544551190667498499340914224818043395491866470850450054759326904611486041348843621654276714697035742415534547511196663704554129701147571893015562908731343298633949715590928395601228258567246178266398141312108998311997155520093456421941078237197082753190318756728758735487465332625594254977800192443200709698284359855779933818766952202415270519828911008293320627515785185846105176085170166624702176262783985158616733673011332555191330329797102909164717463454868061664440530146388270422243442211472009668612482820950119366970790854186655407132522126369898609446501941056230485621514655070485646132719076394739347497277155491301441220178703180637194618980752517201486788210285891860251957334863545011818816725671739353495564683388715888181910036565373362390518759912186863732733291527091624915924077762812002760488006518673772989979880213266135196917921677992988509871003905915391628588352883576330538829481208060411693637358600679225362316697899019537571118330584162655614948628768096487524518619186390027644358305548933789589369779808398161301086682824432767722813921138048494947260487801626906655482834432888196003976923625250750897135621041585206716601051041899131453824253612242574912564223392059631255345164525355780934094523766880618671076037570912206524605047484505338871377018109798541010439177967119968682216140239413253903218135117531297591183177925543767302573573399623494631250655100777315298618602793915887399461632225732334116151979473656942524681323646452827125341132174548224307298380218006939711932771088779306673714989802663543194967619382815245129967687839145197518825781897384374375163683841263381350367410670046231160069314596716547352413913183249815067469971508166141091544329652410292296297218662422503038161178900365602394602377615345309523895418415919875255200533823615765394066393510464184326433221717207080313002000488213017688263156272545320709693474201121313792282613391002495511583205310450136901662849196764142102689303145005631075273012750019843179870636485011547356465890599236202402210322571961312897851592069625760052097620823649387842894288748591335317454385942106849067423562794425569197868356663715171743837183968133830200242865485752009969149844266925438413115847965249355878603452645794157888966871108443773135443394702763923814737763473971357823384567890297067988164378458082648692191350064586620408873633934099781927973670087788950026379353141939015219743294301839944045712512434773417874895341709895466458052024015185779632718685127119659093253688846925460905662152451361651633825805915503673838887025689234050241477194625985531539262900442006667498632626112738009720927244395264528548831861261975296354287843508628578771122557045444471597380039294457716800750129791378518324947635606305174866311885992912511691546326930608404781217406135707558587176307144751149421930490335364645333628622913654387019200836914448450095675689780417087853436741689549306203457369817040441837016426465385579760569177970492537140203858300638678572606040397185291719311683105731035247377552828412517614300046086565379754241115154907850151619524851473967102659971462344152177028338035003736687280746887010189898859337634371890602091460348508259485099622097083170396512186975045071473216943188702335988760612389536491358440246807960882648347345258557887641776950079036579252215284585385270799477404088160241613195830561811064804898142856475383924551954584371410408526821789813138727726238619959783721601112839016249468163310727718543868413845560547722276417340895703563857545488055405877790308195462959834433799378068574915023841063717381228737584509674448393674708191575685622417633201621226375422550380053967913518157358026602424431569168453526939908758805672925237603349962196567556882098505789311647817666467750358459788101279950108588368854716962479219892189552334846624975999688537173746968443816553955933656687593007968954325101938446907984055679254365899557675488454025401879689806416111620798904859419852348932234354084910403666572595381292785045075152679263709674363023017013796071198400104548480672689703798802883273706374304515633977778478250536389136902373380174781194241955579496034146052540518479603202955441897892222655073084897249003787621407308738236161942816369934091123222957234293350880035318998071392563006464768432640486135458105012096745655363913909982367545732585827687375549218579152075246889021088919735866715416140812168072382789340287895027855626473021582426403444154576149302525814315149986882077886906239817866446768894257767808973114795126411652062967601871166258253339621015943274303138781906464541052096872476730041528921077436432026452377219792310773082909592746917992834720618271822704158607286251943908437857732846666639366516218028391629874833163656476034202514284767840493265064721177650389509589422540824219703784615590543310049708674871063214385561524179379777950547493027578735288084409124467297643823515184389063868821369155954877465059622475253733801861491518188889617131878218415417640704921216868720560212241783315833152950721591130114301962408622236695999144964323063564702579527116673704119587221019738869533665689471431683380369039883753744728439200808517917865618491842997970917412809007494908257694262833364192252463695542195097550741174400346847689585851300948113289267856802886777863010013365302029308875458969991796997194225725233134283550062929463015189256292731714905492226347853719560298645151725410113918519376636660577543811648094083104589709514940917074315858827271629039928728445919851098854141420121955914794552553215009085934771314066940510764961287300446079337054276979368937334197515407176230990968596262872665383850514351345860559619347662058781300039539551306185089983413921946745952004036307793471289195189928972143212531844641324660504512197567399492114688704088476564866002633499166281706854613794143933975585511862895277479673675965996551860648962169869989968317992540286616862800056197686421808159264353537560620053496388428466886302568728847090119318644818110505194234319471877778972953074133125398896965757637938200949838545812439200084462429969724406800886416677395269767695831922233809452269037649465970332376329848772975431106398063255802150211531711599481925291624768960187503843741288286604070169632223619718219789793667167145006301346637038822576440436445835414540378629272237147779185955640989498262457725965423494911743966637996105799694919767162991070344278629780716899254513631815820380848579894436227827826680878153612548060307495470499253746738922879204635321405965053477600216758983611576829229437429524368305883388662198159788204210995527549993962720463960384334808808263096191906575639828827874995248922584415434669291198368574520691951944991845695286031470363095121799788891040286862121327229172055134782805824317186103768534910858322336439772725404656397071083260041224112165399666927117143368219343038489288947426615698131305498388315430172416974332272882063213561186959457967943187143073441930147894996089216722923245931594260238829639288048655679049357748042719761736395321182790130571654534436882154614915421428294386636420429194574800288553992019110774433307075363628704490611423888073827958062021258551898687254548297795950039132549630830088193830433973411059347317579884322254005037318414831506414640214170191701808839227628479213695452847999855239660001290100490843816834204986989966588108111190386740339346344802970252409932912219509101748782087875234267787077452017852267332392137463359524699881304274302122935793518047174365983296977094642210556017593058511909780987617637519207535272256867480942741419698118208576589968377014022804734039735713975336325777675208492987883059381820943447018704288663390823409144908519085362825334712083947078011878091094559256760800696479531852660630485028473142540474458131199877987940227690851874590376702304733863254198314697569216884101433175951279492898206645356359556882057781381430650196651582359979347841338535432700885343231828288519057539443844162570194913563582375772588113141270557477122894567390927277268283875583999184743766418362110381766514674936543333103536438123802761223166630962324300841372475466719776103633463270101100865420936702492872187952892458631784994316241823837021062400081292388236163326952785839694544018120333316711580773282704956861371944203487252666042585188570110356963038210031335221243334068413278063276237161990272986457766716144252575859137428846015965208103496871702395798987568379920589179242538385824902077410253731944303774950571961652404933509060487876183072679181078719836705678532524350176134561137734254970854437133991740979703203538119032599667200561030790233447843094963068439086705401103461107095439529442298056063678434587058860333805580053187239443457867517897987294242493031827241255393907015400092607694093492270528177488876899841475115241785142808437833376645827052240492114279411725727238743104253744482473179741161938972414142540684250221383609874457088860604529876630344792824925918828025823224872731552912313391840410341151928287870308765880804289419158146433979499844136900901693861712169949287743449187453096541713820686512297252602300059903091068129007466810938886844309000518107767042080672361989352956649776370201499669528636936116814397962966273375275982184460088630430842325125068967397921236218404482576244520449574968617870153300304537394267640965199809581825298076835344162868531474613777865550488149551125193647001592154030301509871212617737394870058451841271133864597807956875777302805235826499253101073390483881685602764048988338947405862891777337117031446560366560972759365425147226072007024377448412247633603536451080097684306301024364229112236034392273446133777485111161661330281098454865949835972323700557907035161314806893398314877218549448161971989870313966783780728600912925194090998739377590814801958461313903013396852817916297221769221838935530162022892984792557211101961455153981517127721937937188163265575458426990190330265014282862547148508390189091649613806512894576539420464338594806402337924730072886058626433228399220004430926287374216080867536236255871487685755497089870765683542872392861445961777361494305124143399653867270359886672484556924913256812342279548750032927505995825665821652596088743438686023792448506571628312072053900427733591278145457902039786821799299474093817491283983201588293285413834495103580797299158806280254307474505083054704331972717909281599958216148824026493097147291784846935540113853301168475503958872888127579621847303512910299199846154340097233262727931868389929194226442996758063124538564636090075409319180676639905590537902821396767411165263265961242232416192088089427873473234658339925614608529175726751607322664795216797980245886076494426412368935059858744346789805558097957633820732508276594874829280241386075417435958972816025468675160958601189537646333523098657444643120724343737869247931032968353692122529110697348316978771226334690855243072965326429728486315010568479360320332359501779776291388187095242681535554869809330703953184814251962527771702583718121989701253789159015724985535237029514211564701279005065522764944458821485120851828668675517454816813739435686808895650008158134242727763912250783634104980518023727371544332376689877644875231689188414432778082764461944129678957019266310519761168468424341190103125024316477257842814324525557580641641228009825251027593112310979804056557939903783399618800108837339540169953914478399960065067392126648007110235584509161316691627159585786334745464424728401713043138943514011998101625577855794842615794101475022126796861003034095921299647612890006059813528187562686426762490860964113135235861368244194704510874340647567799146399609035559356382256548806078437968906172143048124745333792529990624134871647883324055991828562779093422344037493706129406865394244816056657274393321996033715263764632308088553116376623511117186546692766927650202392832328084165881035825205858648377118848239320469870630002061491787025184438659007697015901256147693060003467689547371314555792081161911333734226125792702142514499068660262951226736697042804637666563220158741022928016371843179727638239335941333683832882458014136392319025941250139797902870322445847165025309679802127100568637801810482336502317812960635711863318072714322458437083890138881110350226002624646119048842042584896728478299519333680111362072264174901043016903144327186006909493799688981101633161481961383239301207164915050335494680568565378207055615861109728705903909068089164821327213722819012256571295633737244911696778673864441437122550738848753760044584786965881665033645836015124485369200406013848891654496365284305524027077033440233091687126376329975977584869955107411955091838464897962664918043543699813854798974541387716944877028523395632056387072695888693748872284719584030660891026477094167492654865494095194251464297861998983980793104457768484870871226894633363452846263085502407550136315944577020220063192095143018104671362045745168454369309410156273386967311915416118447635422335690878116216132956495636186261745234092217693630702823377904602314180600121897662652292990013149166803717357079997141587223075924116276116749179514061715641931373070910011942543601770121176883648106062700559767831986822083423330824143668095597815772063078468636531036792403995357307349529052003721930072834824856818396311296661305517603923866778925939875689863234847296868615839310971065192256613343661796917907020090897543499793751191982260785619243270496394563149185628980684340318121498139284334419399205824145509867399906463015398801685545522825493336341846182451962536600985398890994092347537239964774712102019914030817470180426905843859588575562607206534005670173308894696402879736140819169081189371482834241385577792094097561331895374502072224281198684548475640452039117246481135610483931080008922268825826705820514042406877065562307861276218289379337588609601944388203333863291117585167088097662404384613852345668543298495237894035026738779044576377082320959265034553145884449624021372205248187765152877207039731832864523718145323954307116417864056137012194499514684344878177036111050689713631522892596742430720248073316095238117357381758354737454599635271690851731111387748874947618535666350968794395796384862810854815687604417931857596243170467231540317961629520877461880134683524374046897520091427741549082058241757577838304768777343874374651557991509061742236151954441593747013955173806909829339688281130009210728543749523815086618030555972742219070987156852184134815678728571524902806363297175940657500032742162486953834883708560987177557105288253225192193863539264473346024430868531120727527638166007190048992786487484867766017062049727212603641648699607077398123669725064486780208855223130819779081862161661841064187706225283996991579180717308343923172224215992566211702999466928928154850761148750946510609067654102298914173940399484865706749622448257537914460279749062277643463913345892436188933520151346954664428629504243228714319479402573874420690495444961971054068823489600309274958590553646628744601441803766700385958899387985790939556656779616252736083095357635031450922834183156791171731222655310294078112916492193219884323085391809141795664404115314596611156965024455517403080892637819432389415774507178200560969955957416231731292487295478112628255112986759807608799913893281722275488629711133729653591625590601756909565111697314898510874887718995368416560119149651578112582860167508744507111739741908841180100497007158708743034100349471654825670243386166696979638871713258571204527767081960611630250497699654065644279649646537424283228996450779201993696255262818305571435946821488300114658011849937587109608514638857332449250536269807985632642350328391385707870001745345566428925982547701033980715224549772554709744129879386844916222301185358516820286866087840691573526206907805861037973840317050917550324145352350357899944664452352429378340335929495958507884017385061372276779779422456457700769155429459394994137414654162120391689679958658470628810607197715930082883223614399457756189343304700048292356818185161820226023305118582656206128877133098104601491054924309533826293873167457345548825623262434565402180642050289961696346040628056379932515748691435127430623856035794389723891670243520502646810718089329559896089206052493898151756367423020024918817842911395454799146851732441672022160519924159635348326951006073824086171153924223261285104409274837895116593520119690390571331238393937235641518290728171369647254407615877200274108622638721826873584583894014706015386413487596174415137491012584621945208430654304467746313603116562641073163648301793665505211750939491477093661765861827704441257491568378301169774956410776299540967519184029854152010460285149624987870175372199430349975056839114525242251302870642581025973007932288780017972822730686639167850275722792356663466790030090328452703553383318848156334488691700356362063140759442628727590192595275717051138024579738770159381853207730893848385926671511636881859868768850260000256597498225228328731257102014009401638891083830106165007483478378405788922420292399949001324978471146007733769421492506349955379359427698920578627227390135928016113808783973030684339791231616414945560909317229431361660264244095836726213703042206905231025846329577150034093287213896294688350482098230799367499667699868549480403430591826010797043780231606621492048220331895703298659965720362699112510677706360281925841457781615740613217524581131180036399303146952725539002939573637995463715509051872447156120326251758681642343618711959086508759959535500843896661818816995194251905761499679165306577764641340731142331911180227214143958886718374098544641706259835714564524247376414042677784894285331136804711506682836474550162773624312352296693906342564492686946357277859204599787361856654420623360768515871512458661579351782246623986947559456885028002691791365514203110482200900143131542843121849793200453401164233354350438095397812209070512746934673417866138493100939138420780974208192461327748135247433533022548812134909961760730181623780169545032632534506788276799255020132406026765752909618276639889733502608951370672164322418375164673561706665967134326614231583095524992774084609120923601235885586745176739483998995103974100387737152039196596504548933748994300233416950162753421786607852923225680486479537860263178622299737194574681563768684695816508283290937749887301086948161807770644827111357820508717852762144291193064881470918991194105631362480973566439030525203725072412319293704583772974257949016457753083813984451870623765728791256170034339609450228286413947948930390128620391233922189131922836247292324709027735727313425923567061606400839717848614668036850066710168519313256996896747327530845243981349926021734337156192380214816328908837759007302659380100442580332117776697151965630612052874477622981762787040299611631362793982703188462247742051916439734182928064613800884689915063251547633787190658999494620855732837371304953466659403477755414427353361374594796191189506656332828990217199684133934397100507724705831138778873943251625486479840930077930846768177229354266431189786320875982871428213523420039821167529350434540266027663833900776077049233079126993720187042118161550136892826860075862314699157334856511605796862900068059062549100715068958142744000280577423598849765024964257879220912574502047324370096980339224692006109057873371127112848214456696174072445852500679230113665712086697863587070214478135864038389986141499256898206597565724079907831612756054696287821832676307892402659821408095000802754718377114027874094334329777433716030990884686880686519850722014994515479268317266724140457238347138140575729949772993773749920562782801125143819867427049667751287994049192241266436704127069236732843950065902171770035490729422669448690417797833986591727849054794039902146727365958839876598005531441021114784834289839778522430207057534855221696170053051145777161540446945657067759943730622095520071678506056092371326044046289387674396679969188256532015389989323220182863941954282769868339448215083859339760006812705419318639459362505944589196497660901903821042527533507051509336049199230045425397734962192531601141597139106326115891018670577390082840170609513182244337105518793263794678710985539542453723134428128637795186906490106512597081770782976383688498700750112486200816445223785481229232450370662066151610019542910311501276026806684986987803787820045974045550985353939876497175114198319665080303319998407786835289369771812589576553794273888104471536969344787395143855282117777303534106578914530796682640533804986112560402748554004386851719619777455687703707739130813286286608643537576815784940763990824300865290316200929824771359257390179857653596779177340390579647800287265158921667821380384932209092964815497290361653405678785149238469689420049477983939269131659415008264318769451413119136403474179223666805038845124868586771966669156116680837433509572679882208209174271319279314529379414218229703202349126971164999693489424285075974092885832409915641710837174815443615793806720213819112256290505424521331238653726543553714093323769924880873292646166831078668254916688240760594360675588721795613015460492641811390375375857136723329059128943806838991144841060545926434001105420181026673681262738678765280769742914545049031691314050425101831107174744867537701744886261345072532868468498434507818444309706634111305013821456536590413953054300962214857602801322241380061682214903931211675418572610910997233766676569321283354684747257400681171332002356318147074873683071332722435519725492843049046652001043511026002133536647787318228145184022505846467719509699324222633962780572525347376547945423439596088416977583203478560844245904488536545439700931359832683924227003586084331696758825890270056900913007432854500275386851769380961012126844221820532875259507082597814896791925617462757639945458797623506762344423502372919295404641758508434385402968362414496064439275042889509380558173406830633918723356935013141592182429312283818605925628420812312935774647491349927917246008895712637461373697704812908370124929206979877122917708351805930617102991464010039777700536792152982866798297024053263085448168212630808326988633640907734844921966224960054623766316045540066848004574358857384857165813942506264866685881285304846678324263142699897350532784309775882166670595359642305657494524887798265748351945132957827233807635367992946576779871413854987233916950694943219344741817975312103359050137984384260834937315678590148370711535339861787402573843486506732167061499042941137121046548512985696493080686648134634590952941169481340733555621792172493729483352772742653943267863222378593180510468743058003691160845926985978042510296623532719227476770724726541490276861484634442819066068187939036286817664592622153873113177301171598549116485328153893101182331864401581206216895598407815815339952470241553677862057303895883673489064056903545746977559272082713957126102341101679077425961514519657500838825313959776247274732007801520158449215886652106697624149864391338550956367956900056713175987908663772678574345719831565737285820368539405253520170781404619462535683571484350439225825868276926277698179009513499597352948771617054055688920053097121017920189272013927980273080395890837164568040303988301334610445986310854375120728719841850229778992326322105025818711014457940868057999205791613544182836320951882409254145154857194777704118414290327328693422911237636532799043619521115362581111565795554782572117177020520959674314574822631214447897263633610496939069665005638550015223887608615462602985403930121069590101535830464709785724215798656845471730878821548880543450104345831988653316825240277270069292480741255323920827669489630733888930117675038981655396325947456140024494031787310500710963367580069100766036000067599544976784931360764175142696324308691484484190386778511793297254764537643909349333252644653740624064783383431809099315919573117841265221802079614548407817888862585850420367871167119716414737732393005273630690305537137709317946689452468716165232156344733908081067274800245477241152348168947119066017164762192189969706765098880604011376203848177603319310815749581391837373588104240619567025457775693104733576775867511938534048366723355862050040382550472480662127347262248876333254406824987486181041721643123654494446360616706814336850293961784119954409459930117513829075543056527452490386067054665886760204552476396018464147077840570566841369156340087159603858508547699736357359294620612196953771510591061633541442785779017449869605582508133270866120714407164790766451102315648134247021588046650562727132731463493100389920254819348976062847451305583779959362638925283580022103356547807438999726276395379720235215423212370629951676731564849679379139187735774123832249961551011989359332180291812078385936874867078512001054901137007873112148867303084105495505441450628722947052126908368845026393322144873208872585306424665442638160690318361891368634194130520688389621343105845853473522140438687406190723637889824923065749799166859514165424040480784907118698839652223023726175564188450430929129450792138057196992882226968162724343113623166539342986147802174860828859445598302139526899907349376178367808997494476739882875929665982861238232185187300725406006357903470414256589612590853298931583531766213724945567913300991820997734213788686578993829342710192236563185306303566771875347867077055012533032298235241540357081676141339994676539615981470153100291428116918010897296642519700382713703943524179535805648230825842718440969036965848116415127526332934315687052043507570301562485688474463562583256498975017892776403112435334714696149489490611608796141169912695485634482747346671010247502183020983741093001141750762325420548400096678980093992071732240874144867148989737050547375708131706013046191075378511700526830428013492049596863011988318146142902116181149318563718635953491526726083849426679386642088703560084326820303348826517214190991005826214575297564145632775558785973786310295602828358985876582057855428850616870630515401193932530758302346366090775615406328541906995997302752195056154610434296041852411065109728198294595341228937550425931267057815487606844535971364624021558286012108107663202050328559741471780804803550585278313085224291271104396273046389249163642376928519982570781381592202983854006026265062557228546254211996789077526715607413976907000845509816281818060776495481718342557744031155863520630639156156890080826113274563514057748705198977603279868192217973104585980718548477688518152434749589910853963641025763355166396690961684740029401239270818058009648779719150467058054166454290364281027460085504018851552543014168626655259530628051891877842538308485283224831617534551109801371933712167811848556989782048979199147980807398010665818729825867577444831143372421452834706702887626043281289723728778058160102586118606645578916560374528327104663031397523556298215147957204018332859217952547675999587078047226022803758104016612498699226407269489575201326572351881225035424674356003391870782773985491992361815422256563104927885111437198862267844885966130993632506922387803001028133214579086926857062658049425660710750699619142739378432066673705854005560833609121261239385205128384395202462793221069002643111090243446415795670783313445178723678951911278630403159765009891831821883160129439905011138921036754658624102080520763163006294770305774395364270613381556458663502167641500773808727331538304354808536874019295613206610550059906972338272812029410028895809757505245129422979347440089107712546361941457139881698092013533250751356151765986546720100627883695896391871048998811687539704932228155672501315989729530808601048472567771494527687281130341105765478457175105824804484416994385629611687819728560897103306280957305989577475826857695064840494871865309202812458791959061155251853389601476730064428853069569988743447602265297004002452076008516646316863213277883526908870678515463704075972094895525299014986292449931517093972503892220911702580772928657221346401768562680308048009723008912079112529185284944439031730665519119728667907456803766728863332338724539867415275978167067139852780060148836390443716682175348168503069811252042624045243663258367632320558263965528694587999827834858587855907637188837365909395571962246682393203624471106141949873874073672920389506839453340526283899062548724881120317697952875988519449955430933181851038327088350483352799779584301476946069451875249437027552613621441314817815192943763429579129368220582012388881745715412298304412886478253550642056922806877497163094306093651128458931738793032911723435242931809531440181905642187860250042464684133330250857031627012210784003164031007519524027381343748831169773716704539099052586780074388082313546442306262612425088539004795908428151925029870873769299725208116068096923776413835803711148017865568127239506681337330462062794027448355474217085424269790653519730217743067420385986458970041077255162344920302554749520431193751220824644419895792018319139605474461431181656934896475161438593411763656461485493723663457074616831377867589267671470567190313037452609830832775642542229239096010065289341225395769931395686385604802526270105892562200236632578789068994554730791923921233888568984850014072136149375305672331460621174863151989438243167113450311678636225273226450277112046693076799826202738342963475049857218977535279455155886163961354841967469521914438943107503783952626284789100929117641069518342303613848553167383591283438028052244547656127281361663481346568703088625469626418668058602805792744776644175177635541797919535639654414269994001277838669493511275866575168107830265951223069764605732205208168037705260429885428178211661724490207080962360181708330476534312490441914619589824732990933354340622701253368971306358211457016784168950683959580677372535843029798637032844556836876620145416052292255249545078374519682703338766519126982001211210227694835143642339421130353430075358256465455198259304403458635163111038288274364669246643067321863793762210278757285283842283560339039938599508454551991438107504928513307891106683125790803713961077041749034342068753540881730159000256664097279305866389570540124965435650798152129325341599008829331286930017428178021651388587922380268743816846202029996256841192449566626535852811854682140327348083857441468820690596116681316789967470128095813499562487498067288141702449410262992802769711209591811145150754384020800031750294184795059611035529101789207641989593101037016455968484620784591954850974668936126230122899950381969997210591373954028173691501722998620783853443442114107321905379233488894243553344375604526639467333896848599058891988210558986915587508322101077681637042725765673986330032814041351998113875604387953360585533500386263691758632122408333077712268300197296329303224886775801427097466748665187025542841225139826469023320118947202314443504994406038498857550054149199255284963205337780253474315247782360232465212854003806879381960779281308658805980122839254749272403947437731774797909750367784841354997600023616125939316588001205038582793798585026842538225355063568990697060368758443111810401128649757780117624795907026823139558092876436390922520790467149617662762270315346878375811914210990809535274703799116294883937980627200350519771121987097520076274010231531358408818639770636729722529944042402809639530899511135230830683410339923961872806287450313904894147162870403862821348632332173935600174432883029119114014643735157208927873484445963955837933072572549918570753248246841206034727144837746573261408103756149659372502672076893436245801922771098428230624979253756267741818376940591748142263621715467414859050966491133337487067591013061401190757062417502483618524670412309321255317546751525765766350983977216972936681836614452016557786415352870710608088961288809238525229805289238233500842911023305169612010620328433045180920877411355618987788748134826137611326244054332081484572920432821076456429918644618999293015965458947087679843445709928460738454662593647154543338935076647181382140983843920861893038224586746083257939418380078240213560355020482999546231281272367531640291604925418192756572542535167497351445155002031463115538564832740641938107843401360413626506089845322273209935747777296685731655780563432446730311025456169171164702750371415466743294508607622805866930745031284900605822980238277606069692596245812177246963353179865515347698042272003273693913619194386388895146742934274763296687461794856080549571305639342262601282917600420877167892031842894466691396913271270442699230983788431078588054655248986000118130321396382188538464168183393838390223694269791389811065694141849644973996615045454317010644661804691606278997757214181303600921324428610780600369762197998335615279153024111845126864778914587990309855391106987791271022956027289762393712718195453781876530836776867242614446316195139348436711909939736682671195374789526240807723254558179487093502807223450102993086133865411081487662676414949336306152411375102822809629584593453869692605419097869947118193865312431070950299506969539611058444436189452471144406732740599255320228750475720262309054145412005694664526841650085115795495872117139747659406114296727567878079986552055278127931991111962160837894116695364449147846833724589027986999997868110085636669957854246411452222977519767698386014224421306398064360479212055293962360472616917358786142209074427292300229804228380695861079889780861151518737604686019556992062181494873606408304325208694261490621452628831919102004602893416207670329786907678534391831518054261467997454937926598275697015584482049843907117744814474631241462049446545703479536256878226465592082053677539738946708269466282759208726721087883364237547236382752311590406775093339098497916929919377936458837842607171111747630449238776235953873433366327213068245882758266840724433291723488589417917421238128828202875262232969974410032334474078208142630204007979237912952782493068879416356156085788634668842143743780327223319436764722283142308302027906640593475391418441554409277053161416284487972668830528373453340044797238066586434129757784356954775140722484047453152531935196572919616172467230212809783996844767798544613712089269341470618994355195229789289340504926329196925864773227719159234193098326382587108684728068068034243244568123433889873355193948282338727161863586878293588493339018909758604049198227442248030766256202923033419657161974929568222526040405266433454175620762056986035509773245648509826456060693564277343483784529707396640565318775617522019040229151017188578356639124029079775258638028139512499414590147692184621342374045955568165043155915770272887705659462082846103650111414828930720000702488847110968680846306138448689224506104167426534876990539857306531090170163053626455279727370334942915970990872106469240019374385920677379025183674005097476272243754894716616545275858172560377110128944339605394401912979371030843476563803354820961389607474810856861367999426189588589689473140854097171557541297175177121877252406910489284853517380321087127915237173975789584918242820639161276202064823936352382245140626362454405887807074950461877769694963498303769564339933095986905049988761618845219579731386314071571141921559533135628671436054782498036511325715459493139156879347195962335609288489252203252259468612935779517892830954629113679128674276307918239892318994667955564790196880801596501711864546194539749113536108834107596783888475917444771730181383466634553779992504552523033066979354057401119004016912821539433640445334306166354803909690474631243415461130111993112534152745083309512375580240177977020120250985591178202979714070028184958433888547849065192772912283366497538764282962774401054091299598599885660508698121657351707995171603651342246678001553971944430027540428981915674706074721244558640552956361886884597355290305639232459636990120939156023858310313445289340019713566265285510547414056926162776849104057002529963280205115467334367540306526838869541883238516361089308891067516545492731033699508964925707780072297755056305361111313566101409107444555287215214182598265626168298395863978691981604016056863202530758483139649980207376986703708296660559089017849204578420323918040052381280073304723744282467123909027788202677647587548308903586207071872604392229747200396132070797194274742984918869779981740527250642737002711128827894225741294255850523895168972773646596294441257682546861506401891459687409311625704995474748636187956741418938508748718820109626665061852380431327726592781429508752185058354996682546624128820903961606775843606161242681420045569482231947421438922923360883637907995426230724255463072636463429060685220389882001589255907998347294554165432800170669739389486361348842517383392304850944842095691013144890776537625098150345830732590838426151540920369626002712317380158141534311624113801367457753474423901971402654081840288491480373498154868523703488755953756396916712373832353737014003226694809871471481955693478424891520854675230989287337713079023597300261353510467627126230043843889720257564592797597407036308137906422649223353296176465419663595581591674072797815437346320950219912048827509131665846364816763568448186266024295521013558096697248120626190179615695179545916483202759786907104487156656641014864549751925296609100149251279184710975033352906151015519095133157264481082180925154905559524093700363271073163694315464910634204605453385093651743789095010413592284081801799106134586441472626118150055063911611622213045027646426348203689185111259045312081606110992153650803943578205466379232547588418801307904654680241086806110012052879379156069906211410501778383894702460319423102448308977621468622902830391236567593234048487652654436321388387365638689315441022389471769084446131602480523548021543323285484008760221613305441400842973604723501215225848125810753165549728256012715815677544660270953790337599071671883615712051518652171814076643364224758450607714448209470871169936175168723147156962017769189886488219339893609636986593866852336899728522167004710463303304554849412607850362563735080551401099979203814855428101297815978317639805880530716066953086924694935891632062638094741002742681424222537030149170413283137048078658645176367503943440483058788752500007010246436853412935933754254564668951778954217411024212820748325514703148656250076274817414953454499300321331332969340191903992989689283348897523779344600431439282210974809842097914803948262964147010074365013687132024923967641272447679012856062996384210135343070512483378307024614951029812542494607545713808606859358336001310035659902984865966387269086643387844103156270608478031268263565901402918115621459611928381149514724521592374529748656223277520999762439572747256894972338719802072628866505449629069565870567833368592018306167882231207137344663757119038787504367567418666764529512463418989008766910319617217046824362152774834412438795902033560601886313906653444824980979896774405419078371408523046005341123783233750085241289741966758778425606380842925128390838250066632726352567447346024463458241320839500540839734025389507594037376472924638421486136476094702783039812165322744344922823428196632137780576618080789480184703818168541030983984148201401004737443692796226305802186395151158573792961175005936882578789752427862596727445305913206893805606261193418814243032457582739610647196716771460869029073959636998486443340706252952247623919363421813824080911129715862817755536949897583047923920716522971556422889336125315042625455749488106515693010686774196140923851532136682757892629287729893416530011166728380065222560135469897473243665986809948951409108042826464903386928810099699625738532903032256318442865667014847369131440417341183784600717347818213932545281463811192407946930940709274689492072795005775684235318455268193016862393189071251585526947745810283261259448085698000179862519780794427382379313805782390762133327262971221743479108088621645155541911007482158632138894438864590639478786737927511780939009099532800364691520539204614262030203956750948180234343106015134909201385997624651001831502726854466272841992239671228884445511427121051323426895643550812556553906397374171884701464306670175694963140600958091647360145424388306652706910868198865899479412566098216414489441963257918327978711888135320727421565824380109992885847857353440081188165158327960027299304009740200216993582747330226701430542962895313394338278714167608414886489980755300556965901048292737062228232777894583610685613995223296778946537402994610195898625862701650385416792437333963508461182616210838915974101523174664544540614782550999009904860948554930090037130732309447846999989000837869125006355608777905782669908161197917186018737398642150608859391609291934252429221928965746299010813196334779723461450341068699515099304462047707802227003138688508377737919489618197609331956167517742993774974598610056255964918172866040477241100047994992873681781501754572712573867631740853053613487454746398627780682364284476440465291166319637561723318432233376760274360229947704738993207525798619577433063855257422845612132291494233237278427079438184043366488774069019316355834785496773684725873447335541598705966789295109999973821552194566481429650992195571382005515504619805040155289152046190629274358008253023961527906795541685939968290267086003143671340167509099987594747242016597929669849331954911907794683569161654071242221385833338800604783513461071592655647971375735610984830696613654106943238749676150081503473150061811997787601116055349863635619076232155919065262435879146565229610499884019177607154249656814638921920010357312638890927844992666311776470866123734628989829952033812878093151140525366252167755041982669691886505838539568744790119295250133503975444117128809774938920941052238923857791670719017936818807764379101287552097117521368899316063974795706623752880468162652842604327074527893247903098630687096178299897736973124574005873655874406906628017018000333416742216047168541588073696936494336269405397659597617598775829396106162970160830484201358057512380233531884701665537151876214925721538198254487217987285230552479385881027649166696041892229170647224398250679581536114421426608175358652519819246500381081594585227886103074944078841710476694098041701057948816147243243750515547942873222392236675097120183284494304774013004682417164534819161812069353351524706203391344623263028769407971398439354767543939022687787343031724210319246260623876961238572837454128685838777886136890114198962334767731833501426007355974769579719102284590068855119204920395274298190753631436747956155856963902822626477394990155495660406564443122471469958235643748968334923722749024033137396041100818469858084079902415763282356630560593148357262711917943552095341047568557498520993073792702262688875241305152356196331116268026288435884301650442646101762315577345759519868808122591966700535016775079234198878504199171892858225004933407513315333643015090758788611621728306432347574412482894428747275998610527007268150088906827667806160495100591052484593581968134131402582031843981463313270235215504169527714219748195737167947233558052765934102898536518267987213536164313937860243857960862670240316773705620327151094858708518185657769816621084864666256958218717211851497217573826997732288572036842795944704023212342948143099454561005493285379600536339165368346398445231812285415388630881740137658243970647319675478898500720199911259513485944270472733603949290032915246783615961125625061264798999622861634042110587014408246584031358105459887524135955661243118363520506425057256574300973173646798362491993469542838371649659067017010398795980444768647230039048986975075881647557593896611121128019848770255338335570172536738839407393150809243992479037963396301670594952699193137838912842936336394561692529436866690774928156558828645176947330234422295123244632250680790995729905386330614730186629264931058422503029853889518396835047046406724867759170048026624132977017394769925443420726285975483037368080608311146183162507607003840784027982897205574338162056875083042008573307604843464499147826726080077741659287809308500849714631394449624184700203583067923953517102430974154042809431151406512951681129375000884655846565002249842437223540040131596332593166640334463605603689012376018515385283113645426859016312308451696394615974718614372016344075592836362930904027079405486983450523547569727003378483054889655641519409396124120384184522036518204467772586317852197777213167441916814698090645788857416544907476932415383550579693442288891318969598963802073792927772002873596537354819601239318888150323504728194173750490902855714565199143040761541265342790449240763863697703871045321598787410968497493316948460316910885283583507694629527498897757207992979658256444280127272576505808808675099950773898453245557145511564764245009929201776344656558675861654601040833829760394290842303116931651915484111763107591966564624685201158653235664945089207112642182109164345562525043350469060323024739719788088717056661039706380023223590926148201520391399605109637226022059021996750133426038019820430392901227055203552993062963536420341156350379211706012389788803970134083276453650902410185023634931715543647909128769569066205695595995273616359312170690904917229308209721221464967959688433168818199794446639485068875433441995529024530986887297619086466856846849447943291742068048711328772868280519264090543803479163784441097620456317998814580481892702120080988911653170119363954725302373691252662873124102736387139568418948662590207397549843613545847631174682945413829842874265938785700687326571254855059333571072818123344332782257249436471152752630005901927309515052009953727235179862357610936287735030753936283973305627640356476709243965566269249325345880062469810535905512011804138567901375317290625870127549069682839109507764389644573735814509267269841529092714359143295358820618326090404843700585636298504483480956991805854615793361551616326174022822603451131398921994827020677694720948110583370687744468205183586573915944572258589725100357780248732311167161866114913966852711227794584083923931150086118116811192921546828862335780254305820807972598780853784286510314379153027615829543037269483913475048203939505438350769595268897814339412889987743186456694496722258418321994760882511031624203055448250954067099687901695194393160955386250773331751392168956549146781869881804729467322206697655149633589732235787982714540842596860160366709113273082214112956833739861950174338147594284196740718529079114883964351993849397394773597577226402990750135753786841109333879872393355126994736862157643473203857514693627615022139720316944029983648868680082262484083042198259338703160161329756781820290893384741101074458086535890553849121384312467096830554381394099305131358499366877105125791344620595417999424896293924412875751116528411626742618362348335212106855200795316648964739162849070799617156025658942385660320764441786114954617818428188500010389534040353606426653549936633285208636409049645739257169084364805230994275037322190264510379953745994917843857368294216576722159887602021851314939538685674493167175106051472908330193023439655906123767943349831455292412039177119827243009126993324098615558514545750656680679293152475610016658316072452764492730289301570406320011734701250948746477194976880613294093566096347687649446263865346662192985933552830917649209263926261699409242422726148648122206562787229241287366121533179427754054623141663499739722156123350388662207783448430336811535054847976746868512074336995580873077250746676672105751348366003971428347499085337165221011880020768575236007105163098076058673018487651091316214056853105143211070042440127040262997118465450605806439287958564605620384367882649923809101668896114256698052833081567885685578974621820808840633368520946988008770046344251334358766326766691003408328681480049300259425729164479233259994893372019100838208627073033537876619605512512038323909118701694123162599149683398052341713997706893064820410673437175423734264240810937857196261065967547975001431913339875958077889638392622555271148993229032956363538525492523309723490380249101219960883678837327783735506764797375284357651823844552450050792351779835776847592503284898111135531496726638749263118012382302564176584264919218397610167217601314072283597949810783746894620723013346149094760936602876152315394990071765829467266157094770784028940630405902395019026832295516637616363667144088548628071402642387621196077102840363865460083479788969652539782403553583355921875824667544636966616283420176887824156499669240743208824330297782383466313975684686328346752993057606174384575730335298905364575216573912829783738845126803160202978336411391610107183362090025180833855492198446012795742561432662694807752804967185204681604941542186792101717287866866442726524211825961314106163864612500227582090080812682234574159177425782547528632964922306728520698961043941636448823966974510366958745906890563466793923023538774395909870228724750603209324111124643510189732938826608976388531157503840387747790270822319828472332087505650340044805970079452403990082411396652183291065034452218814360186594979065934521773553161806853050660241200265892470141410982490318116906131949410469209316646316044921674726761400121084343184232956046293881155416199201163429370471446239905165386519698876699293183199946290614842427448196497925873299207311266242152501842278488090395131796566700425221778699694798169710451812667406278609511753331320506388306377500098653081317613834079967309677709740286858818972479429818191990340852585131789810646541708830938365223780901425688104768006126101759142618362650137032384973767436860859719196960104991812358054654069622511125519540300290787593123650705705485996075754150701020272324204649317583273413002448335006513099718752091276737065090463890263196637990156287420544292065067099261178029304879074045966613980734490314515657135969462625392166496438359384617922924034355316347040511346623372144620857304154225133702217856955071583701765514343951304111867328663178073506821030984196382035681635056128635601381910150883737416930933411780527350841324555573096403246548669532870735300779074514229396833075679568739873505939497801686400917999211231309921887519889346851265482955556673036670134134086531289833242878646572836223769008762619542708219404134430946448572991263572450289053891262722979236216375529295129986681180083228983813084776958526809387792422032017721825084657664377242818511904577353560414028911127336470917969008062721600914919212002874830803436188058265663380312144329872125773851133927860645748317915430624934778259993883036778331455749000162687144365245770347063025365963530508931532831278851817163125188791749006715413764282770432169711822932374211868853728165639652797211129356580985878746890392533462012632256026916765510105170779577715981746867031601707907213480204382983237163543117368472184786813790127520251636743457009516616617956000365084789595231033026658162764442421160064482745483420181507207287633615069535843988018063914207577042888484810019419867693371501051756556314944630202623419591471367152491626474761822612852559157921080322180077208230948196903092177108789369767375675112610664474791965529324176774722501818184591798709123322466918535544946452406483051823813943262562320608354736645486537395104172673411710847690282895920830826639293016603101480922466733757643776741978856570959654257276393729389513363242310455715384802650201224604055925025808376577562006760021178132763916085893185850841746633797560053627181893547991076711112968323021123366770275349280304974360984333702563442827269182859235898694451623513698931929919181792639311795602659791287428121515830061731122447331244335370276380842376725330146343448796602379905290770964896674733145744560229611411368625429746819672989249829615907445571956976528802393274141975818730837492724265005427699765346227130764215285494796666351752978844205810941292627306652166487273815446520272712863140175833563951784170693358270556581333724971343448017687637641536732725850664898879915511533535595345777659256085982645471704013177821674251488708023594518131906634805244552046322932967919139077476049979519024626580726670686268368110761460959622450294951436783973592997965082857859720353570055823095554465969514754649304704028014997396941964006067027018628243256787929299447027347336237696489056050844013317128438088480938042806226405414254886514961515968495736789028507385165219462592842271619079992751243283718607841028975758043492742831662851919939417145516079551924755257654393342393718486314265142117251956549294162229783988012943536519030249095389802557033437102856525802867581763656386515379221950161922901355894385473864050033978545753694623012104716142326602404750042178012555609478194078885234393022277321360298541222963785602510095358524932275756076059200659225247218332557128444905024456224427129958885252645682158387770332351259934129512309250603630064301008582492304052019837764119172686458814481634254947952252281958155941790411473403208257644999057806277351584024118872249821660832923737021210359304638888693917669604919130911872533781893323949991965568476066997633834952932908923662021340735070820644269563275481303811875420116104727055361965242371795993266102072549134822777198547120207184829823759552895721068550207752503777442461189099985999236115706946697792198260844250310259214855727232132875549944557675366048321465232357600885789257132100898897127513917154679417326603871767650545459832856112772044190985188359757683799344339517655113919141106661136379757829419308425188539440352515251087774530941349333272725813856615424428588966863871473027503105790912835637887258614046765640615500894988086104856868208227324540776790406423698221550334510967820828386250772202577310103030814930215467297111969193156739660645241584733332531829623296019464897484107208800057282203107397530681119229167284202944740139451600703618506827573873743167831383016634274103004498537814139368227992249808050288036352064491211345156230429622851229577274129579026881661756513626132913390697769080590464877188574551008743736064946270430976628624203775007185319874796425790164305908319764223613512779346373968727467405340303712399888157575660687072550846015632879189768512149541324991190944141625419099045269740401145345926843044687591535424192347837559966091129580935143644832337987492407242280934217195424287803690881926837005247907162029591037566482813657811844502907401351712839065204141603879296281007219682406594635787541741824782989006923279556708737187207439549961201011441161479092771102484781212531354418315257430966281714592083816053152739339749986572944455651779650309014058032827615436410931155315154878828623901091863953942031570271224289331395368756651293062984919943719222161009196406457702387799088359088070585074604913385508122737268164336824108903649235703308536649932319939626670280880852043838449700879858189929941874499280752553096459597669821810567173809501074136124431390423498803828587841040511302358746860734739850501851284097320411030546097437801933150100258449245695657601293499680399055981672115620737514421741021461601195837927564318738638561783781745801970237186276253757169988198105209211895883765108542537754924817937303926783185055083867746221666822361638729369994606152738339950840934896936245384980540187715434040760866239185062498527731940394223608366101305124175894289164595898604301841360029580219294770523882393988508584463228114591136201961622079305113760679295797656667601550643599185245628886197514850789539937405697480166158764287813904221993259761922211930218215259565574876554391428757594416925991459445309693199517547574176008210093269968374758266127880654683709626112183461669679399152763975629637997746154273228590384181614795270928575153700603107691148760447644304126124864265380236208679893497943154162924758887123452505358134963350729405843911651768291555634318161781663611056745810512283903610462724424381215197054139477260264210056512273422074758434729328667205313453706340707785168042748858850413698249817713436425871165650897526193173455624201657713238357839623922370795354157015556634070841954796712798153925055375081663784347346436141440557498196817046430848923742663008352215917662591072689482080075129477658061537938734584057039567283499583450073330679414845066969013534222126518877275361946848944646140025045744963994853733965603401656148990522910883206389359100710061067493060172233404079009633318548267962536336123101262367519659477651582023758677006316072756895972111316847204922030002002433245300189479511209498306105312960026836756680540707642434185663002107792691920556492524172805918005638227826209697706110304866211927384943677026474548171907036096242031094274846973341376854516253821061856235316967846428528660743241005423166049873211051445458448300470719098558198165609533936300882309927942564361354742431941081486562119666192067300532394621840098001709148280435931265520141588822586595611394212421549401783706078652059279877250437677850362758244754549612442614454150701571994728544266884761927514863249201278259924374270749955723520772946103107479177931396861808845613589971915202508742820753192892469741309454439385264146243613748702943496870048488582853692133521658529450999485731923624413595926535721125129019213854858525843010205750888114107850833028755862119540085997795686163787524852438830559964123203231586482726685584658358346766196323024702379758710427803199395372210541171233081577252276328155431710516933023782366910169390559808040379873486766541024591408586268377778719768636135466090430371686942932046573271193975251578488653642058365315481803298220808520630262666208772559397491024089293706841447687349893539887595803788602389463684693834354997413132886244423753649357669327134741626337223855167453405844675952056888918720660315823668626747280007064661265332608566265904034052305945291005589149745858950840767084588415300489105953369961694233017644702300244245421551338025757580102879054063788274283004906147533552448996696190771909868831374311694019471662167169500757283990889195830779876027739506888600943477655139758945776067404498494136757421373431411606670770933482772491107730902753066637919224551442874634168517578056280661879598972739373503055393522876408924223637686238144192317264523221267528327298116585199530203175807154623984609071906064246143887075081739600121255819300702075228808832914669704407206136688497089323587925698857640435564171595251845462773905754054653336648358476883845583570086951767299465139613301585746576389412961211391960820530404031226040227129266859866310122858470746169321990623095390049380460784609891136018613883863266193538129855329037664661584055543299919091780383554244164150660061004113881212400278652447022345753485960471920548375600368677524288312236352712092769831216542809300721436265056237364610007517731735649753322826415405030489215490600764451213046223327392443256608211465156365685230558445769738340881656700729357686227578895072940715568128963269631691468018899694973445796695750831018028224984459648821947139790600586853015263248008331379238070839444367159030356307013517253350010219154050113950361683057166994547192895916108924051079300884815819953308878125148044448976905751223080237827495779384184777505162574023465185481076356436096580247276612023638348267571791795459506164847017302037500150771519206895715137518915858475108515346455420113674143765929792781138147264897261064338650931525611034666640656968336787221559553766535974968023004531177364364168780598707127809607899023563660785701985405739098062901431535443847623075311478209392021896164944397433373816388833671527276650052101301015536946096037589229753292224841266856598220457831011196694569452488204928257136321871050079236422874684249490138095830693570921752713087309346347831211594665875826783264427567281817462373107544544601898003526823826708680858920782096677215029608086826537007180005183803674325338897108604404761468703631116323431300817091966934903245986508055795317061342058787589669646366751125025539068235675855448639386356259142177739307520555522253217621312544725813288420742033642910830014452193481711878555218397206727643255789665899972151881139868606748611003689219476327637302651460694571223356603485631006750956344341080933963675348628853944714431380996358033665202956332520906807719228704289939705385947864805205429346290427463382683619728223888200378730905350858491620497665322156325678122183938812372192940108550163445062418046044256676799871247929866181644632356169274222639997039960965976024558654826988702156994162939760665680198056873658458775008784751046848387314039221599681078207643933916251478465907117305028784750420437738991846250311806663722449991398898724177578182087989854224371923285602533812965748601200202300965695430098782532302865991864736262651643832085733574676227780760477272407546065814483595598633383392982285193636700594071144982884856658487301610587957012880341126186824703441464682264827369338407711743621648906406226666093211806308155037167665258677144030891892471665104394631919067116322234069186637445095958470320289812543492661045383143754591789266516819842567418640797757421840554246412083105386118555667665987390031807257121463264799199246286626712936388656222911229974347485243864432987805791273201476784645512111810986792602622410499769756180479884798796488321548444316595025844885274231489941029802344207323800931682781771657246370797815869922418067815591794044161488456606561649790244938277246954734540682869920309632981063614135868538675653703238750281132563638950062792616933212564143381775781925458431753960392442689800270363530547933581815447916431969907195840833766708757529020619094583332003768196972002385526432596309599256189678311393805672580549683452637425236524170490071863163959244603306513497928445065189268625676922182135552706141321418008952738502683023614702923973440488975824283526250991358932608960500877652190755302153235267973385469677444081668144821621753148168463138623405851630119431498701751262315340984034616335645766170249182626068007367209792446947520681309527083575599068281801786514219331561587520316200399388563933457526946461810346225174418784681273082133004755019115829012663479641997249136587813191300782727584339484625876998225880672977496134205778793628266118661147108084658897562390962641740123715212875891374771706109511761602526100730234306967265183293327061996081105777004542792345894927602738185812912408830913900337095167307739198517597930568506379461335045725393647315205433570860428600698606550362961657725351035015418775285435309670136561266357988674860452093865259118627585147365411243374093849743896597823339546306105390844410828373722886167583212309465675216570416834105983081025828180761717067584498622625992250896559592296525326750213949407720131686965511845544749254458339669395071817825724528272933394309487432197151062248033079191595382810691625874466286126104269021650853273245399907859970521420100613149723543130578064488635596422853723748845454871672779184504405539692824500271336324911032417913792002921755398821646387560286738225167035234253210729289445256842179032118081881439191943746854533725502344853137464944588176890237724887629500909091871472419673168182485116726729900633508289510440775864101862681103595034803917911473733565855697026045836719898712488812367988726235040644859165380087238814114830652054904905453675492972009764119005656747026173409653368495429209893112169082704670652398576930326236598122384824736581370774098652772054499020734399141535982139491439411470763307480726193728514258886278322279713875680282927051629816174918812315122683193141598858063763254917506904508528572046231717437984701350802941925940826299544285546806007991416877773869235611884841095453748564846238782477448027610172736111078771346756358152856316466471504520085075179747288903549590619575711071894501041547034257365346806388929625158165752256574441962797855307158243634875536590813067039281316076943607800211529620639315666114676518683690590440554538323259058837244543102017426226687209459672714056531733528377537222096882264343855448506153309892616223651000132207481080470843732922021266368621845874871715973940515124060678170375089445842406711140760042329345138807767398954423299640059604836159393793487462861965698171510773224957181999724409709354771079100302621178322783962215631094572101856984092646808379758684954291464856865013108354984250379725285862834600831902204609048211798399255214658870764550718105251544337956513291880249384921034410394038568778923367597853280327446395740921126815749113821246094581687170614685570162477572856771246234323222832442588692110049061245396061154598853202318586223420523665480841001869293189007317061066351434837826416375464198486235742662715496496671576770300652613412739409595380902019231040730324607908811291116770370347501650079838065540999321503767701459953586929584549167902467222659000894875381524236926471349882364572868425560879581959473831825537849139554664480993621439468594966055272567261242839915432659653774956583151261352636611687227078750555809817727177005096024379641251767899094536003477598418457428571219727504685151176271540303814856618531658364841520114279401998588174976466893516091901911361440755537723345767445865268638911997863279710689089632993154495062589823069625109070792543379518518872704709674063049607868006222847949219813606798002578532304635916184625584885146706515505512143914133547158689283168796615121666138053313517744547143497347423501421789245252803423314530226372559870038966395091228067013322799389724071173052907064620881070374813568925592724323510494514686735970739312281891458652834237861647992032219640681113636411778533138780861196322080194071487832161758712082648111154234959737761785687386003338613022048761189484636290947032837665409669212820820398618419411958586090875479667950400412135665318098935543157359037558037488382146498341324621839443442163024415751165160838494137621684149295572586779578375678226175221080896259307037196757829908037906932410713478127266386115402666169542477133570016769781346302250783130185286040418247737644431802695558544308603903199603402679406662607088483983037839009840803769807155319020817293086980161450945044378503868991634262010118940883221849326109679426283147112902058459693310932383202466284793367452621129680214257874728604757576777026284183890091202362231544176630796035531767617887058157334599739114758521590025926386691839545883081617339565553643446225409487422835061025897251796723048851833534769191034336317728763026828688184449975253252623028204040801738704875877881434936190317682123408436489577954373996246941717843422104940884225609727386624192676779368296136751581592092231059328491200623956463889006945207862597787730130274386159506661828223646074568224970553698531881748312935606131583949667805684368494457065501559937272801497015616635406025853152149266030314890766455242145987631419749972598923176015938417945079312266410048456091654273301208972974171086851646448444277298323121541938093736109479735214763144431003559552076331600022266934615384411803408738777646270376250597931085862478861339829859836709429753947164335094819152875274874585382389032301522642248461484628801646423148074187005995694233160406806247322172245139886141205136000499345524852717947352303184164019185485557740447449490207458030586928781111834310049458983117310355777619475306377522404138112579536954375171181065772986415243707051869593596746887660950552238493471746255966283330660191503108357492410242762094661511178432199464943368935388828290021188237205405890578437921926331482239042143769866945056168497778506919677839093304770468174676847826372823526413590047550480066837489981708294516876043025738206920506620549158223675753575198185394944989680895899411197139359896819267673255201461400395626401327026880753547781541496630486864890219059950916218118415286022727807048461453254922469610389627570606552729783348244705366419139770537971759950780302508653737074109308640741099018217514763854384717802715973674846057077936531431030653592832016649190358403978265171111146537387889484459293830250237529019437474525559703170225803149053669380080796038190248914146440128850426815552451516160492694484059171355863080361760317547525934789509677407360834328031878457640732699331047669387438381540727844536141338935253265027465034497018521788113598544980320140999218218437556274010588249993535976391496599333808451448853130883007016462858637221289107546208356520059561073552042851274132380425254514849148726330501250083007377781425468321801253479344831308046361013197322330970202733667370954092884895347969473997895975396574892644397407006141771452167248977745594081496701980316732687871792246857828847621239706390224106870115039960937406780178508021719230676904519897136198876884532741191619550918949244745609946785564328223003052513920769866965168818046842428306704148277523147940717402720000582256295203543422576542635847806620868916011834625885476730939960184904501499630996030407238614381246903518471620285438851338195687839650525099999838483328284607897433368597131597356561861457831304067822665817266125511278642227568704029298265867191964752947106801233284217327503390114380747657829803360597507796708008376162426304062113154243230217582077086718473799798264567164998772185544251301270948904385140351415987602357698521261285006498613312220460320752589765285801391237358946106764398760950647530696833002823368628532225830945228461774378778764911788757940467485986258822246756363302410367482368430604248356834180517996946163154455299029752582642776746563892297470938594352153227319070171360444195391437775562921305122171034651779918599087141998451688552722306956865229288418677982531218171691243357901169439902687576746829651057975432629047490877917866479435285375237344289604773190375151977244390900613252721473040380819795116405118234776138822511659085875028003160917254927874527399266324581014579267645883869338008954780805553895363459146970289124941080332999840659267135342263805787223031546111107056535604788852883259494577499957736378844964374391270749475992386011108992943712041776846847040177784387780440474603289313173741821597181132759918795437639525404680208706108407621825023011854635928849925907848325358730283392432432768676437443227785649393866158918725789194255721795670527571485062970123564130104563426141863986706512065928448770713664806621141419945062502535384697064219799336101296995089440677659525855021395344246634126289550080786864093465711327800885966638021772266317870318028888850893563785265781448072566636347733901802700932553203744117671975585157807924871371764794455172333614545707253646081231625353935240576736777594689967603135008097322897498077533032066756991776758919555654639408790653940248144416173240937103321694759598950873821902460429704458881940010714952213292672827393448844035900768639045699539184235291094100505556589375718647365576561723568998392777823199001508145593544317457581238496056458355816280550872704551667260480020969598312572805979319538992519788323668688680002739414759947987393357082680625544061785128874904095294255968191347953005591061245775115647085068456063798927539519672850392191467049814588227716305187365480882329503208909204099848688590356363085597365018810427954330964107197047838948845004140598063249129489485739995980135210564118907221039215524553973445682707768756190776306755716846161428988152246940864885968928674552409832750800334755413929405880067682534326010309261546824621638543570120376267374408809952471399926864896913005069411499138672004466609737453055990767561758083496471996323921454973351482242603406459204729258980409477385396977118748651215094385994299171403384181779836338978682322967416645724574009672961138827242367878591661932613071194211821021772801723153260162733897033301883773403949600065837855309584136408014805141498888489739631260671776781914039836816752957465953145390843848680185272838145582942106916792789909754660562531980377251087628556096368443801154016169262970033631323367249728632145503995815825236986203964352647110682897552497914698866684628953717899991846845737166688090904537105636375939894859329657826564871124751758109929149222837243932622176716142585390749655051639725199122023990559536670915188945212300982708650949285399613847822370367881246380335663686956738538752791715672468683703479447230716589248427663337501610193668104656874433093029831315682569000604729956905221011245337333344762703386143611855576091789664533146791690849186388108877243604091802248606246898272244435208230605443843933616803997652106148438522077100862283540763170960795201782772161652927114074351873097010061430202911414215563968915117332523055574618556426901036436686130471915600854903094528892913745066434599760130377607580200779714579265491839007881660546683294783653208988966170159645317043326524616292304837265086790566493837562370501512246724693681098089049981681233380530869952597494046663458396955378356922699827740496050324001784889971788019502010766334663573676564178310159417953028732995225891731221731294234570404259193195124279729788602391148498686984768597895359433508045800872930064800945949059592796508340278508905508046451505797007163548976183849291941839669508784293080989761906441182772959461808594653556477070275539902427295661063232242979506667427335878709149264302734011318019197767454007855218806103430768348141117941805225495118504025782086633353061540466487640514390520253418760710541443312883808941797259613799188579998145574329661225826217717409170029896053353620706784812912636219277894659270705159897631244358369600640435721589630150911792621873133157832156075206483752345208484030981198793629436152671588434707290076930978083973245138846433036139749856823476585919289321368484340470426699429084470908880358021080564037341631150040139620781350620154095583033042187793011390814020330740507251140660648202338794640599928313345826539345002637186718692613379383578248210037001639545744863246298487652114663399010732095240053495322326084724378854384347719821807330164053722385137001570640341186136050233671635703285566291605204248355036891634714059562975164446608646645196791214626744210330391746298775262735241287555452016448040404074590200840565616696632030483776003476268809216790692275005954363414380897617116965906717449063255957851448667332808393028537696713367783819322109100851621848822946487300094738272482269804736005734557745559343006507568898527911469047438792578902543406357310053034474957061682629086477919487810535456675590232313663557126749006046742303862664312596768491864909260299533607564349388957751169533215915384927778952505291586335346968665526151162369520135426060136985632395238325886583428847944298715393858366291633131809781992309766509693812828095759294289426268959365856316807594928109764736658151198835868091904070600872123336493426149377488994158061900138819801752160873063704798415612953848088821683271090199603100385536253302919207837133118996518323895276852996355757449380316669584242796798324792718008948634862141727161408639765412527645018902238432856143533423363513060450194651254769745015210131615568426852208659953293501648691042431787494388041330122819405006003387396236010719392111568126151499455425451259267359188729927540692223606308145786368706618641522551075987690332090357579995136574048371674984846048245694877058829393947456745888192175365853954258439259626938814670518264549064648433231657522224319589899888202820404496107911330365155391249514652494221115787477583167126607093986685394258935139906462358991386725764723346349765870510836270706084569093386261559052718913594834525816461837489986115010182591429695350809929320777779163286842324231921515721515115914564357139453171349611374211469549958436472294403494697433685541373226892683094930729932904732261818466868766658558323231107052851292832275473358116243718359223684219766335551590451523470637847170905943878696539594500078518879826433984342511368854666522458971450187540909182751802334049651229868429127782783179105030175976720821450267561499547081669570709892536733175673044558471805434385361826717037363243193548954509525376185423104784091770641625869886495134790914746363084096208535937631845599550920615398502206684487023589424641840793009309624184679514150183935196622637097653948392359249212466051604052175251549061587901255223623843608121486013696902922214851479572496297753569960203658967641603478783603068037188485371975650653420033523369345767374506602992493637747321738005481979474649436191236413841711216230232661569479814091607513762914446249874796720879102719951198133763616161489727386826449739013783540262850401462491607672415209875406511202750158816485373219935435803756783786559254185077270204003476912091535918899458095516975783182127694165839420573849095793156797374066061386921835230459584665207671830600409896729579978860373287444074446521803965890167511172040319950294224028652702829297577608453623327344268936340315378232896414686437133396776605421329465228930582315107483204291824279897517913281482380073726780471708519912389053157488384885433269374650945332272749833653247734782544002472313653542068491798579828383762502485968438807690307702243005208725703086502183582977185303901205762668396317694594824054545336074201639747798014692835333985624339783463987957148689449213663997681719261745206823421119309224003441149772869751586400838758244319090569953162615273486515900951011263406930716256442630991058737642579989259534228957865585315057559248994442153190191836873005725229414465644024584819234826334776044100418428671405505214330358733969094499979626303036192088337254185918840229246132683818199835974889064095826884548400602068072127043770134708358104011042130745130058631843637675954911105715692017183955649451495129362199398428295171505986633742981755438455637038251770237157996367801061409938498040492952409676800645858608011107811840771564887496742050736660823550397924214456327472825635048448725340863706425864100626637879132688653291834452792688920704636188499125442187398519513026888205383579452928809571680075074755772728587952433145859979055048363779770290882829041414178728466625233658872589507826517613616802442105707973700432914019431736595235237216554393505591106456982924834771579100381883696884758074502843939057141361465919904805781317628913033493794946611224125581755306518239537936277736485371573561233846463803062457701519565623263664611772998669751704555134054853856151306821172666106271417264047896049147026316080560209574070418245240394513741490476640404134158608370450795111762405520391910389112981521148999786134737242504201743469480247311649135873807511292671987578353580695372828316156330138587641706854252920166592595450607641438369393188094194291730760653567349550516198093765436982692300800729340065687699606056611365979421800280144990868174298952144842009028106493332924020407735184166035433195407129916806554961012286674801999421844964241365547499015177263304758933313831536572682590631516507103940203071692440816333181411640159264360340257104288684961885806545790075086292405456830980984020854700878779295617400747104187624216999891960562214032119422314029476651607342867259036213895865721080962262710076225332760742457819394605244972575518648753231709603889843825693728009006451891993090181852423303264826117161536550125092660096240526574017651224970356110325410055252495391201414717255872508166022517834075782956040086143667012475345958314567188104328651541125367873322389958564277429228810228996179124546504505944076930040183793892080336839868297067733063346394587983491759708486426110444002030094069557155857618934767763067100776315919886060486280706619437016243564795789999194732193787938128071092953626994351923304300082451608089155444433468718927351298385334182056489415179583445622926717970975883067418499147711214612613871379326034188887762787060189910031056930850023925121860118290121246174174983919955383722303946122827064222980300662088849822727072848821035460058279849044355560076130424415620536981163183504926863510789166282789658019501197735912304397172700647293149489312342542548077052786983518719308620470101074837092934362311398627659372296111453807280361947201348799200107878721157685480422023304096858433131501702481142603813040294002823525425222697852194313139776712413233070557691090680082067790028380338757943381250941336490840426454440608823206552489134448577596096844399973943074373200707560883123183470691788360720312334694176894707924176735394771523853920872732872671695430896143680836402929948915320686573082299222726435292138427128700043077000053380778050049550622147761558131130665263586427861423444590951405502439593033157329062378296923753232702018370338298360877625163069741478932221913670531443067441909768403449768346939399456852522385818159484626367355937790513347194775046571573455839096019134566465137466675477880945027087303432165662352889215468417055076781542115531457170827540003165276465427218600334402870476563940860385640112317873776899126553001260005128362672789323215661250473214239588148579181412318267077307891713802514929415436473511224300321845378493323856773204244808973039540741912262684907621952968504213088543693167672394405293662447929749350817849377035296287140290175610607432973015838366554513408483596223773254994343002284421083777799429664518354678713559560813567017974358845462926516503417776039662289541320369786628208566160152549357993138068971950248735078466648898429298343376441566295728468970650723585671859681298171357183382341703584095713337565001535539269930020275019694347694934056602981662256606291823289113208896399262599494556107245115107680871746872653727444610104812244457284780756264131133034271043663756717834039763425787816060258533321035542788529831718835709286195883692161754675418255367990438506373256020086562040788256783327608715273132646832227357550511427738789272910019434492890184571680923054423711886731159897128291993828692388140451168143558316025535285207438115209935910611471962647490537877139016423888044060831126064983910951504835021126518613539780716261177715723944594307796626079260201037211684620832528789532537131283800280631139117247552981021980125807863915462813779198262831080377696832237744860703982196017225679938641803714958621802762211266994875271838180340311034681545939949428391103935957788643042225104889871877187949106267348064890377461660592551355692064372813713640946845154879809451734568762883516849343765253050454249952331121759849028378282131075582344954578909433841193844353980107571339411966476968493190162743170540267325729238740041105452556535267924646632795451368502330423966448386811531609153423475914221536067830141911500219600637659580850520816342584419270228680852108931366567028411165021309350734985997057303959294324663687333732762593257107831947567536152674317767183162628221160197081974248265281359841959072565801943882806185754240955841077381415812808897192719474490899386239671835266570673368134126571445843583973413091089376142134768624036823831689172024203604224229445169706030464076699345331944249001592270525934447720387887201466543082657860350670699645005312493635244987927821483584219157924780658964215929626986476131554816745000706200544184979653362364311105791631408504474381346691069539964321452932456366413066306774546557562964819322951729855957981544019012408771410581627101434429501950463417263404940755183962313237305171678617510826355764395792727341026112346889265756695162695475253585592867351489282868622524828241266799129811154004821071398998873785963215550101193022821074324003680021901327530144101202807465914598108049084425023978899391845767000058671558429024060985700986049046029879866068740526278659927902801429525530002734458416706657325289765102114996401747772386952221440753944447849671957545330360420678635321315311196724229108199897510327329805519203431181481546255527647221702685835728349314618892287529124542924463213659425025249747937895772588410394759437484395058296783165092534365239214145300219649925601828489570082416802693255117780479106440378004308113086470638904243663868818107856170523390904522987134972590404605018405801440440358804932044960034629895840690130339210922079296272978662935549761864436092849154670013128259358107425928533964375504897611630378079223731757395031202282689546208722166557045115831402280657038569687580488486803956924873152274020383752687777027347614101246235991784691160706063056007138763247642020564380244884581500827010359371017949594028115355482620490613941733505319872695068225137556631141262624243075756895110580042471827130462938215322673818326396121153547660606636804472059538746612371030227539946447853007312462319914279729126755608334109674720888288721668964414866666779902671819568493988798877555810326005852882669819594126675116873256476927910522640116354506741241912025292727037467654708828982897514276236647183570327810068382075552874666942002906558101195436015866505133239525027997218490999704254968991328138912972037074323141412733226359161951904281054850568212042905604250383357557396796584467817632795743442748302378700887906021230779743370480655122251231170311501415585300153538203175409784141476708552952308757692305092428832485762755625364374052202336362788186364019632272849668933506006840947998745467649229615290397864738208387436607873812676210437469986135899588814494603561883693364590389095083148248987274474838140563981494589918542979514142366034722561692662576663382480664399554914150048415954005527071627254348373426848446952494317192740927242116921593648151509162705304559312024090186469487067290019974077278090973202929759897442535203820564376026663791272002104503060755815717675987857054901253988005429410314953735706307089815681314910949150945414554124557884080820449776737423580397510359805749504702292178829582468523081600783917704214278267203075210390756359327554657397796397258527234378160530174874589846153067717068145781523124005745615491951322146131374756561369339382464688687955202224012875555973429910106565966626630878277380678731195265622942462424769349766176413696787226101189727938897949045683614899395464658684934816704488352975067313395899730991193509039400869675354762148724670909030463161222045020474222190633369858590009493236201839758760543986841523781832451884665322051874715616285590753023709301786571838629036108379295248204115395437388440118113169207189317274307473309284858443406213026082139781712256822112123441687509477410818239929515233940293609980428492779776016502313877682651423930501860938763499301972528735431938785736746982731206407379138556959696704990787529022678135454901991412951443274389923890745695921802458392357787777117702611641040957478188143869452941347626318647786562711516174273439921943607260721829471655371806612513733392141437600968020065444639851392390141047802118168990908512337007180895687140969672879548174834413031765583719058848269938099613591199310735343327336954942131814441740528250199947704991896000087782902169441325453306878290253467883003012657304152218202955480069441426121162403066444898861041458200075110626965769727972344219982896729836095772704076275622332171178920603368435797878969971968029856554588863961716028697644480509031139224781230322771771973368752694281053677291589907538556627321480926821914102089672413727584188648482449472814118815349866063135730075842480008047904098482382061119672765058313191546089735950480661079345406812522843264645175208259772829772326889397203366662451144386542935787860744580342797806949558007636101657255928002978436256758748830108929467371594746141978405508646407051041756490506162933434953072958020078428511778872641767765691126968416474791543343245820087250291356596280507056685418215259538455066847919345120885716047493246637975789730565374290368445661364932557244397844920317427349826060451677341191194766203851051966946679830011914597342155961533289012653704466624738109779451908560515535789801429547528840336356392252445516835205882444949336298400614605898575144917771636105617098842741541544838576879827342570137610777156082242990173567194928386113465265038096863844512941096877643804153154031103649823802854156883433814616539444670534455653917717280240325212581827889032122634249697777120346950694101560241076286039485539073782502927053358884858420027988904667855395410543735963574147279496536230221611207337404152875616878297384434650584611257545701299388902381215266165745238069281377266746361857237736081363685483077305199403836310268873980574694204284671527744492113597477134739659799364923578776037565824534799757453265610443840530805866974298309014398957509089602442540153476210579159482175326522091641240273719412467868279893334207778635598232913549810393313434935538462209904276068702849603617084014428005895205767019300264408864707360759853096225874281311950919086652097524463809747944110134606178077903630926074711737678904785575216293936005197264472973179594188066533364014884906049885665023788850148597358423938456611805486615098898354413777488419346960727551858159877870324022025683233958136677938145652955524735369564038474081887596149427510390745730194585622262956436674163509915210222770137318434916411601861961215468204142513996875790368571108753652130435808452456280612943546960193494095826030339566681861171361498680527441358263377874064715404164395467622546891882462883904286635657836300446402729861545494843240369090314981948339916181792061310011443393033372877703387209648518578205114889105112334310727064414961743861425001104983089293787513768043491873614397445494086319369258156344218122161827036158593535127457649307604240530657433007169887835129423499724630352294811695878335061107442379096244450905276259211832652674428187761982691783428850114693143088031891910602018222844610300848457828162088063162335319717847000825436369132566412617802980203185045477189299502297952400442217689381639689382667116054668951437797753627418056468907170106275471943934895521715696221265988084054746811765087112004221882123417793387828493122235424144500965201240487349244045581203841873596129355366257887324243709330883133079960596261755807309308080923872637345012096235561917102673876327116560673944253517839090637422065489758563895807051345341047623613593496070432588501432059903578626394865996264975488191105306085705007958328320326409583422029531507308593805604689695102335339256564961205787225608525422365815510116927919546190432744911021971619958568226679270360234713658083618462840345808889809595566112350033382688817481463350414835233267181708606317145659255950526895504103647747268677722965876664320960641393962926077081953167792855894777632623424320987366019737191148518605391430197076938041685648433507140638355257973267920669188700897219743954239814836652267225028518634029332191187862072242776293076957348309604551728353303673828214892965444145960258373128999271680792858399057281947936132844997637904511136178784287299428025346951795327844059028228146500926395371315436432795126592645144428942310579030763989396753070049645606951476648402282587600829009588852484589746870917101912951745033900914897847480125563084769939915471005984569980314700639909602660093412238784871840131454685888722943517221914512859060008058586749500356487431801555830632162798965733581231011233699209216036442848782591925400004207101810988108455178309455339028674667004780294285572424552538646531203691789146538977903915497088853232117715232814286853068431880125860481901051815349193939725816569428702555685271895266380886509612054886644061863203624937671791217796723085796314386137996643168661804455104199468057541234552250693346953185479935821069166136923164789689544692061073327639821967765262218863156850193068863334815888924441575091025210510991312952865594689738676718458300306369834119583197442189327804323267578247802933704242085086764313441177669695338468770448816526846244337394995266101587871394146680742226764416365651324384554353106318585250422967860961880626095443201438861222434629258619213889786673806000758306168521104847992507862127717903499614429290224847381611171527657393440337182543418682572256532000594766409950516577525435581060181800324736206784056398651187390784371729306925367532866045260658734603913122726762432972666153647319637500640395594193740149162831861606925419695256259421369330672565950035351698882493915081248913821494015031042362981809144887557841545624405859720125474792907922854678113162286260278510843112741407009912645772089638873021611103419419599567916361839992337251006654283362087698765623537548545135380523775356336192727456584974623668212042722960193971219232642969808669970284370714840634457072924727381754184129934913595273555598552297656811651215168881297530891239519911576304029582364980126595752830660525392105519088645759879015493011083086789365478851996007574257037464056929276207466191614149396224485652368448772851947145017143598048388950126111653486901101561440392730951672398816578256843730329499798355178530369887786850243349858848372235669536345661338119959678908156328167736060632315214793259721317256644865541796179526167231508202580965517785433763427814826935699282929762968580697400770288362358370614480002505154211317338803749014446162024366152076583955495989189032529196358165148417648325991989515728259496887158556212350075857065195509727823575371116051732269142663785120288153496783017391965428392246352461494007091880005231310423077753313324709847675244047581854692801840951304065268011222109488258580139753159646397094662981622105557539838639143953668648759990993118227400503006427275838727689726212719217199149948591162294204879080301380501334272306448985672388195878692767509388443346946014075270505842227613862713260148217997694006981136176181630369147203271435389064059850847888929179624696052272310424827645352085129056990749333527272437906949119925285580758159117847853372916186282992235501199911557168724617904608472957208096929603533808516389906416076693867543310932501598472396294434161928160836969046747847014829664721042864659335813392601114636698980111072179828927811495743984788105020903525139537092747979379761618231252632045532445982541884741753268461976973610521111140356570416842718640744845580918873533713357207322750210774915433006757353217988735716846913270246176007406560474035343388979646984670132214142508053120157310854998330706978950663336889236563022884257572221129856807079871943836016857603981392825721063150956884646222403581522284983662793878838031414772041747117517184432405061565157541193213427283484167238674116653496539519447542536610276885281636497673738438419296457290275032217679899752384245383301328820586283645214867799872246628903668276385727228471808059901007409256550787583472981488302246501932296625054517274898662115923862335298115934532759202378266267672839806489740711538520967733457693728560206822087986355583917557430936092153259274375400617353764689758690934793433775821892777663192764392729424613422177183194512458637972380614887277977175677080084380472279702607108465616597594316898423526522029124216454874720365805988314922737998547485102175015415289748487636926484362074870337033946928520188900171143225418988105027297302734351530027035693523764334305000962566863835261154450614800883907647638191806851648596958780876898911182789778847313372219810452474292606380510526519596085395462722761081165442966375321703698279427366712908614471011040862023823937163695091642726554684453289568484667506288809111198308856523213771103859577466357995600577344958459741492982536316705715906041756015722823122123356348131762927946125149756464635646797386763752912629710293255481441803114757846224413361990594112003104414312006314959672298231730309856967731677548195086551628932468909945018458999911660686292085286208631637472719134561819693981271064075338619703046750462860242525637838170829513825802158161745384298794011011780329394060961816414412183177978471008881289431698741692160877890099429923935485011458685297733943602731104837902212012252704970149422319603484275080081066004626733420276917893654295442231798298876848147764102136767717942018919584159818842873667389264578091461334387946067578094808198905703742132924469573813076344841447899689645719106810639728409395563987959954309771565425708810222516090697100359461348759749107225480084531849089059159917183335247066414332405108982555540373799276945185300055641285717588332913812030113671359043102908648608780905615387002764899898454900419592693134603503446761386825621925509656713988121448707174040775442391367533869724589704971295305601216695038909680901919662798965237496693732934900264030069717687976395952899212376990354177703847027597596870192083376333137809562018001716645151919844386463617957085067156706675675618902409314421098503828801613096784332141631573665370160779434030810735767092278855591861541794001018350733104606063438279912798726022671285571735478954344543895745434623184898429384156059151632136806372952193233886375093543853643841636760515990099904788313220297737419220218656633692750088821034488956678364770707420189841947869692114683379844629650909110546074273989304482654086562279737602590725877579919703338441728926666766861549111411830652975764421178643338959546316794541087438864520392945505432444210944975040171787365528825139221811621343521965885064556660336978407414573342621380219342323506384914006006392085205009941695145296793581197314241111592642648218778907979880664076591160748721773709171500402957352094652530085184612358200787005808020817279688719639343174181337469769149951404201556742541308789073905362188527910931799603653399909546668172156376540274479428804926213612033424221802901928984041993705845109213721001633908970272094793634028269980254422539204797209213707917816329896267091592442375219254932330712470819847411485845593857583863464776997680828904342550325213779659957432557385170615279443591614158090342673476822806842000389725148427861634616972756018964506555232646757873270163025205180546549044544652727943913320835657174418920222098878992076032346245191708088034685308669135979879096419159211262624276028089274307019441013022014398911950763860331497153912001911097726062225872221014260457951146788869776871081673701690877613567551706445423686769276481278265085728500127947062594437010061135650171202544649189192861320769399836358438927898514143889492456083043505603201394810536195577266998376273511259299313197118012817677569248136792553931163938635675275688081273287861892137256940706599974705398042028744880385734308868109353223502789745969461557193234666355919081411783140751922309052088076328037297509643046969379954778550029995694903122624993538823996416860608635119456814662388890123333729619496022624187508791385372553857899474438838988824284511123248966404325054660512308227871901834554192079389319160020199101761023766733034974419850723964954986040978337937476469625660939974136794166316128160527221149352708689012926500749317551859118615008897428643529407790753021044701259116627409927897074975608186266332819636438724673955442704984274442375721913366070808395918682860178382214575346513815028754886240547196067886186277917384025569016174230136753014157361000299306212303487977004504910294480752582474853235689207840415264153051205764721300524352551973682420362929801760259847644933266480670245911323281940124115538537058590092391642818133062974502054242471893082658140565699354007373266349085161582933646840872328698661060450961220884113783774438211093681331369725026049096559213859930527507141200596961483218712829909220638044557432370894532775370001889420665489318422729888504738690998579765569602985353145298366873949132504574572213468682331595694245487101536689966430152075532153701854161346536609396365541751389479982518068437558916364503307292790680788853826894462482215033255775470384025991728437782083579750749707018919046486904329349371527248094955758887429382669502474071050736708818295268854100941882240435011606094120149883749718617252591620449947148752984726053425335721662803159267811575596626900520352727979823649063199682306811700011441005815165438412582532348011668574234058124256110724618017097689167284992300530676355805184318030957617270544567811284967049556588319182455883445035986083874226337866353096672731308603420434116055061404508424772842442814067779477815585347782339537584713099610188382559517860248057086855951075717164393108971518581343229144058849469181178054865490233716719474743053157981860285747687780668136662968170646473627533024130162789497086716685329233826711517530116799108430570825217524726678506873676446666128896990445192480394796888438154156242270069527731106171569425018782685164878784567649306217220559621377765916642980981244633894222270137713543964424508492228558982450832328973137496924378698865337284794396085788268236233059860783935151502150366767191576480214465085809910684645178231054550687227427983096423002366527269749506772222950034136557045304663161142532408633645817175282311940523971019946883146609826768050485676434067774427011012216847238063840571470170376275740048580935001413422244024194753087041168321138945452620903936700307318616983683648391962279120445718526091931306890005740207928525047987276625399828768702917659931365525050501504272160549980081226375606268118256464460562461727140263816197349437180731714364784174657191694766518714860174062866489048615325489673375793188717502887660598457201071571360698991873721171652899886027171209170434590432094681601762856761791638034134870117421334998215578890241976316823885510481919232501475635305976253820729734172687752460394109021982376003410085874153213405414722234555032616874053030419582658639406510455764778422353630406069781549559370563929392254419910959205380033352699229235485339114328199877796994785362650203554995608532893903377461308986989906980959952425854429266324681317469455211733002106778380353124299564794023444576159521982068380386079265699608574261850710436947789721992220408503285305389891883567851357690775944627151519144809878654375945958931313533467215760840560944954984461708427790773549429479176593633151001397174860791365641047856389030906755965142680464146133159031520506450138067979516607558676106818413312272203842713205780626584969408490424039401607194801772824029545520891289759954814473877719300750850792035047219185892215988114047886988459338021832738550407881387180516786487069155549987818938572372276077218033241905952443461170726255047205092424300374543837228247181492726156810943930157271077627196085780698192504643658458605919238852571219218021511108492327416334722491622947831312285055341961759056364064321806722896849331648245506730351743073266615800654218083629477884602307969788116179596997277867948057983369817884403001265926413105902365296092810416622646131653050066009911327812311129827978457384840727674345869226871012487735443772104785225898327823928726151934102293501609054887963271032474273464273918295169664860718448863588323783808333517944570125818804327852715051184733233809264740148371411077800345506033580667140370027716910579082663179247658686301022940946525884403265522713613089616036232094015493021926389021050867419498719411305537030163127272800326112741491103376695577453799589861933645519484838516643899056824141099233671301388172419884001170370011496153569841906962609689646965992000714971055285961187704171433352702013358171948550308874153642330146260026084632895783961502456505247485755784775918166904553728460038881972650178901492966170568493644535520942985278072399530958082389543602035402661636151533012554617628570086028332034157980377047147140282299997910186033657338180761830637255771196651986588218262562137440830949189976290615236584461360162961901586836371113005391499445717121923840237641452262675477997930898332546605517950913183735826476285535284113178021767579692409038917514230511336558376702797081662156748443559726164292208424584233904132860292541589288779093377776146027805504685522623270633399106807824500453383384021645645688308826700051736344380667878730707148309410834146334496318441688885409396973963880566579437167117137877196810818355696449919869837731282051856110484366626752947710835150935073980513019407908128846552657997505971615454980591544974729316758296249144800800133318563984349622918294626715119608181004634276877118761078541337371995453899765178202371793946742742019669723145346658403157634444766109744018195203193210849709521281876698621120384693000784112976226750760122648301853283407178029310406146828378425635038151696831910087352558212497319705491692299634216861145110517642139049510848046818488265813591157212898629641259368237084069522634148194278000439636050649766779898223755189178686330854904470233333993474190495229330347336210333171764970280844356409082240043275849185595498228120098499945998257844845102164200107897548461543822932134255788811470793957385974745321790624861965115271113870939988679506416706144833740862128263765588426537081520532752213005107978219437853911441797445835124812695582704930300764567899863592176245339610772707421194210030561407192566193208232142965488036687319208903359023168730489495402127513972343293390168941497066365849266189704341228612949261355281001971488946508385645577862539610482844215233159487135611635433105120939321383528610987708032914128782738359979089811843888815447118192807236627513447514995535627725765625084921813467308321114617094119651830850354016519904704492233556770430248673015132949535114944451422398597215565346296476128772254228748373480848297655940984427736337407429947968656902930308911057648049687987390318796388952951233820930457933690477517875522731046948521034424065774837092537114872575521909655322160395663896341656148633337164291519446036865884252718658085293311274385142007482054923143441763909319740084779716477489988013786879958403676529011006700882506409626436691372507886084366777307128133720118202419615585497679871279308361910114006342790857360071614590109693814024175980835787910886524953569699878874398994256368327398840419418934677820942925337332833995271013569530947123945292519955574679910371810791831012717419566649002008052330834859053848839833181144779631942791800830182456477375530947922638608048448818199783566362899381728216615775587987540912662342373379890265994625134661560988663552473954745462811849585924943054245637593729741934271357717444245715031209352527469397301416506252287445632238112608567045906156062157633060372833951773846874915369790995322871680311328985716355056850687356812363718796113990078061033802193840311858006019465464423041933174995888229010160459062102212616112204620063975796862232144839235131511010530619920138777008725864471387089103764992983052335436268941789038123656256412245090426230623363282557403916859030202524330352221224203016291285025388348831941339888970114143080756319448860488978822438826875393925288259585269122193098640904125566571233080836505543158850606443980286353167504335648426364124689130701609888500035102240198191137594292421103519876217452994427822545118935661213570633039611739600203531843460468026333030719055778364458088348512961856825387186432288918275291820471274156085855897439746685134586795215735083999248153797552850512403163468016689293265927148305222938029288371553333862006637786254619574182400540875877472402868815729258093056969222332809657589017613734791731659652715437306048423704382854453182899185412036808483780827194878756546249113805088423854643517185571731428683114585178779768055086631520828577987537674996742032706347149388304388711688493303196005348796243534727628800112361477151175890248989450449143385059950246901755720762249434727045203803094655106764807247259360500353898734373972816372465241199221461948149749766818717487600058851767803869055871983980056124941805568221048927369649402862644627093820134371884617997628590270341395538154181767819246866363377899214452338843318533607373962488419523891051057012356601614133172916149247514873281571920598242357876997494125097580673025370522566337627916714039226276464955264641725561859032123311054287689751804208383275456271924157422251200907779330862984943331132093433941132139057816185945348114761942553562031242237696696177668231517613568085380522862319350830106436767520286656321033300848267540554945279335837115278455117344429432787810532430141296603517564586037497132138843350229518965388281648712039474414654586378728749243980096338719366152335596697026416034958151937669664116177242746876610248822244389443911188033539124221610313282896093494011935891018055235541140562672981795136599135683330520638278333406462798259476752731850803873507415033586950552991655593052602378892082704956452031765551567155145797401063096459049143583130792050059967287942714328210753430009266326212355105570337504276520678974286498263445194148036144445292753541521437745836578719297729589155643675320537245631925564852029812930260499795947530362044005413730531667942983330056187827739976704474318996855513831061308351063570855907550576818104071545764513950735787571827716173485928371977737931125872741072398392536166550960514116785574106524409638482656457272870314189120460105315491187139663340749417387359772634891996766123559310438890999991049692115252490534620410704849778649007997857313465726891772416962746902948442252108629305642214804052983829715175456885143738338481234116769098600084751614957784803222215095608738030570148049760652271073962711679241141736244841229277687194778535281587944267780508889164412463223610084653906527791688899497601734430840055138165622299741923119251789977913829991786849709695194432169756428831793797969982553890628551882816969041277839795181063263320376364907834664511931805485278801016980129755624984505179554172544681871718967480042572365229063653141051406497683300687831604585580281630227746716742120076875036420374576046570068396681453493043554337639817977989881386082063555256551378997371356740495090994059137218926104038022511320020527689353488373601798728599126504119577973797341808145750992043069825146937190499857811573638128748215896599984640385364267249577248472491508504905484537441892963243067222781284444121482486951540032809481311524063280453662352391260525766925807379222189464094100324315204018239565925462459162374056528356898737592415765949565383102928270438244776456104194405865706426540765961720816902811065507762557521278943897889241882789716181644861697038008852228332825701218218045922846690794142462856180720235698377756000360352176944044414024531079904130350058869330358640795759495601491494612380424354334966435065423439434486367388145925885521328432256147216788772954190329036406643057158120282829259703885499682683214097743473469942532643045360118265057710080777615406324376285894026118469035428130816659073715335735123109952891004859130312861628459437561090514885759687261307262263058205406865296273783417702794182415381161141253606607922792494616386946949753584208787045726585114944122574296916055911069286514171059594235673731431770075174032201550129369137174588667653618165789741503148408684332094798508087203588518777375862450009099974868575932683385983393395483915815454740761207914916058151177928823466733612856959803100446161539428563547001418673297277755111172321104022208125518624096746847588666057807791513133262202262748237674298185361213910549712456940298767173489025666651328917463405562498761453942515505149768033530135915201070686074913666781412202403714359681237468163270646985256128329022054590850553545191979344876367504643215512822970790560325258599617139633005198383024442033383458574305617522772835117793891741267661350537051546345560998090878785823991667356136947925097740830189289043660205912417297721225340479393683492324247867664335331286914872695123947958847211616062636234317082827919446190276217235646820902347864968116355823745788266377658930805611776254438074724404177711439756467222984845976930986223626499848972632392470847013785282430057539820069290865496952857614039274041862959925884017283125644599114179359422759910202729257461013995651401558096534689735132221172301063469632239985829817308622363687777036123659485040311689849848887008355254406295423931514863314109170662959560350605223174539251095298771111123299426569353627393966539137826736701644877097459711680153126017365163549753097822604715689727979993546680157387613023540828347732703895254490294765899960602036965361012928647702120666889630368464100212252308675527271814223712010675165058313045172986127648844521626827760704479599503161174539550861693210272587619298719258322175867124026419591854743220323691752907499860096138010754560125638826640246569849724069294325187405906633059933488994212265877614136302788495601694410882037520730083566811738424145456603704828709771972501181622752792985656810976823371403359941436365127270019346507366716646854827436185092245128946475487954361375315097100642075448547106278876364791857290910695587285527710965280213862068783306385936287020579652919592786653632124519559815592819540821391332777502969481089748209231642505177151470739346376018739986570402973388518337636976329283197497256832283060151989303943379169718309969390768437640167888397144078094155050314041248559555222723157894599291459924902520038844132597503786579606943851869281369677199646739810587714662111863845996783394745213161444700205785431994904355451939720580301447112922092315390359746555588059750830694234083160090092940235227466267596259585790760637084330366519331649721295553936370606947321155982449954722909843518289124206067709676507936546064896034459670855511800785144765775929882149318238112114714370843944168152402780500237504588586110274844230464801778287164791476638149194704446598693850078008560958421375181014964292803736412540888017304818401358393448805183890904283425438216065830109037746881165930235553745298108886963523923043043862820869793795716706569797940315527492657390064322983867989251617435627416511065148850362372617339136876553260391750579998888568497919706143917988594299033540675384661871885117346222979099487334699813464564096345962748608225968233574513527265551416935562315329432229774189423730802293470006529466744786486516819119152570379406362842942923348091438583054597522588974507626382707334487515995703990024231578530585676678037652148177424914655998634850257280345711211165958026131816563551076541490492417055613166331764346446133070022844493965355894448273637854283451948032560955756261587635846477084036572357836563224950718342184225393419548618198088264407433221129269372169118098786982787650437800023611653277119983387792756711302571493971833578372037919198355301882113034686929468833393654053145488398846022472687514189694011220520620007433779885477881432098398950353943363907791941836541463337893257206481380385351026827434748435895620112512387915612890376226463545692947763739849773765204959627609345877521214932757476764757743874910461699354177922614285956044652796073904554866325502231148256895688871717108536136677228203540011921563019650281603938593657363785601440307728366489803801191356949847506896417171076940806240453182431060474151212291818665208660721142342417048942661136061306771874938424798636148458092558257893806920429395146044696301400604557324376182710636918191185999189288177315225587245976964391634161426932263959571301035603375638992751143419530625530016334548415227372486957087547271104560851151209799786703036162919850986121209391553026791387781942480844386028928766673253611696843025032249308375597961739334835313174227931489497475747047473794692555863629575072788724102654692148814329603009369507330059017175252097647817861102952445436131464194005814045298633655456573803148166047324509756279860656893549968706053000673536416252248268573382248179847779463559999689062127952144725566963830294976987569495945290063462499530340692151811575541644448084273252702608032226640065257569040069512570372010263637965801065139931459441987909170952770258232044095582018857368102011117752417944542501084972886476345947316959754909299342555337548676509034371895044873651883797153497129631742443278580495826819163947849924853133121542342887782657654800818577889518581252529150867581434040354197193772190175172950574084609003537898604419028851766137403043219269736264164871468253155982563420215024298261220504503799225294002546708230509123432101280329579347963672256909044995228709338207943909199935362415510133909145002042942895958304430456593140908413291831723266961084019705009761789813730430594532228969457013379686070170861055675524977095885533494785681142355964660485325552010166801699047958053987138985672095754076151048772861938617569463066814620682629055758454038364032230088104378021139968472727269045507015072239602047656303448342609928037965241411493887959409616695113341896508055498381525216450792525541815806686077114678524623649289011111187898462742519635524220808357636011231823101046429077619339272451880105154422338957219991197168550394734823113946426301985976193929484389797220814250404148359210906693115900851373667497892529889112533914714554282883704311859437412444669231116044774213097837238729261161946436883326790889535972304639267565055093541643328437084051641082356750923768298470985302594887807725828960914054786248328793133699048009343228822474232488631745880233374509553821581492038597601131852661346093503668606338651983640239942642525668560046341626624617215873633723327035673873441465647313014869537795654553881640110516000919825412714183446699224902470707979957625180002774884556094554824207674083401893044470858247442611292990791526396985591053390728579798535756020253452824513768448505407097092632211403449196970908920463016471690144424761281743215719418465728314518755004745852078271342221079365092740975742653949436874202843489851035611231434748026203708301829330027351705350416192703493421833330842009983017348077982492291469638535518325380404538573058024674394976914579685154612196411440707103486006461337126071821064119983042659740277645848612614350496330524455783177918796833949561273973543405991822850291090348207250207598775929108139791405300417860326166697910296901640667943273234068451169669677004176771394176095307888207924636818428832123621245186917744993678588167391820040081107450002504360559712920958156697779922648164880812926660725260369331799400971853126353467885392934561614516747615059659024617455601893789756524985545071480802053431538542119150490559212912239112417874073854709148271333072147219734696021847166352343456628019550056191433150186013156645374760068060611457717493340548755950186438897607135737809181372226294385341702420199566082965459523160235569201433261107737368153779622928180686982209906739417675362527786014525362483329719264889659668306155581018723572448247801843672830096817175158434920567563687079091494591003399068037607313842209850174143783441559949885777659692482230047241953794434880870995977534949780090379027453392109042366843642220659516096290358990958769382949534894246422076182817757698290142953412552279942238175384994216175995563124108127867541445267990870221522896530874827530252659551065906893684493516662897861061365050881573525906921796374776138310650392580390386847540708831844943822348348325370962832769038861066007019032193355397372663679703821393407080211227977002102854073915938318768370247678579908774395783998773441321726670396243079569132323020818160231230545656390137751609769496063676213423957607112551322343238864566948661777253041535014280572555070449228120713755629900977795878585718559119837076830541403812654195724874044702832394744737257573959932017240124315535220415826178980643830212717409643790498525149152869402130164017926154284831197368745079686478129881548939820512139520291589354251978858758602191923180320410253659066990861149082421361152587289572049092768262978290101243209050930377077774174153187107913266981438694821247577708593221803689323003903572701770035569308502458839162528904025289357772229057114848813955173291049031483712708030891237776967314848398083239870142571492767918559043259564128634181063700817719369926773061554941585870015621418890397033217208817581595841553460303616850585632337661960524723195827107245449667307096240649715838770901940782318935782539518575879593930284768081029286528594820855344602597297002710977825799701514479705135284709086704559145492074956243326539556921559359806522393992630291384011455170359055428820343494143295981154885188718294050278832352902430500500562388209282411791198793324396429667545950538442164637204322882210054234003965078291700161400724116709071227367576817648712640057208615166825199088784710713050995842667007615343596020751357960487262855413583846738880259897989440284986882123396055307836492923983831022897191567402378110810348400401576652346643456944395834038420219732060271757559687962425092950797431202330378274477006728242735277203250033762125606626754132255808539620854171416527612448642097949975319114592615931454169679413515386738575539721613168699085254419300269773977107652680766815356423169777128427849678223511824762817087066926333628520101313394166590406203012085640200298669393571540174416307210409493279733394243711990196651840469981716382399651945609846905304796937708615738801782931512059581142733730617943985379508014935225792223060369307128320305850186450521822418702057876131106922789204119031906508904876806567124896640058750765201256241978407691399283706242748627490761127382622219862646085163138082562852226406742707813521925186904909607320219204766958911315436255610216973395338203211760434106487496071134701456561480536875806308193635308513911520017038813581901269285076437804554085635890081373010045622267910913972537635832189196876736278675223959987301957602745063013478800561498235820413658672197822640379987654050485766182988588310784313020971317085984069914750309074636517826979182985696210814963758387982999041062639332157270059900718620892340241508450404300214571724986667213020882141821207668236415164910706481426264217359010039812509873022175316563977005016050820274293173433733863693850528148672230863353197060609874488787179859330344541428985442750413939909708508322862015839508655840707920657117537880294080182603440894731347308784152786238129216878307822086123412862943869646201527901659071751736297349956532672431392252708743564398318577605118485132291779690646781355074993318892810171930656904011487852467035015635521860983871462224742289504333101757975860979757356740312030495917059764064589751235866692944996937608481536376007028327014494719152406242022096181234244609872762425983983194160337694402395590042921036167311811449523897028751027561684352062162043481110118160963208132602237470351708770810660158086419932912079599653337217799242285416626011168787901325881171851555092330367424003673901537321943742601908232223042055752432890403605813280713141249427410853467728752528564207306398102504376606529768041437249608100506876980445046864430658686994787045871721957145372433491755337179680218791315615462722191796099548783889129738182719774422664966804096573431591478165176921498749168447234569031967427320092396351649936880732432933941976759142957533547352010277649131618075608097967359880949710045466256279198798775568545395436513305967651292566696882740300032048583417169163806428542280130503202075575533867139975138969854914004531399552325348585936087565635339294352843792908861302334242017945946967227504647586690732226919963924331952302014089405024621555965216713593960411681249492424848377510777361343280400498862400302251103183948595812493710047772270297023210671014056824436693023242138066637046509690866276714859959746186771184507531895274308468249901821302690352544076572337648205253323017004090003504761512926353509039895275508614660442402919473749791889692365631103901092828364014920494014735600543543363528274941190582365285671123653362587789391206519047218968007958313144828248993981582841966071630359427558162779017121438804489799960533090260456872460846856553622631521386733602480041158840412813929007591207089533544137572797929444709163109483193957183637834034572287516975246906957838067089223765599237124727471145280797668636562043315735960015806040664558012571219089095600510896515158626300256367070009434111393087356490303557781660817310876603390775054415294213912598802356137410771525327682131553661239068546797987851948253057310525998883362707099976051833119184542166453247897781008402810735185013992863560770631302942689307008545441757015184847274129876560908201173967838365122162504641259822322444826626583500099573096392951656932829407484077581772207751087731052934363667471438873987855426723144442946153035024344863335631019095182430104440366697576372295879054164557994499378930841465362499366399140667882151509632893042197179496376496299740101677831832453911052353112410816677111762533501219441722956425218782164840031816999597910780859869277685378611163600283702961578835509486106456896036247846936144091847907206794690147184357645592644519066158002823784598139395596305682416265025833493311253250651779414054333294335457916948926894176289574203686028862755770666289827231974776289270044190541760217796970911387795329768297465443407970275337088166696852506262092455199432749061659223805674913905347205614400632057272632814314068400530280373244043948032507591025267655536248187286383441117872933793479174228351048172153643210449084186853081439189844381251700287330313763292506239104187584216890100466564986561434130574712665730313678662021188355396262194390634824719689524594666042789803540385115850050175663322578246784418909722873719402915443235694613008332474936728144769866288717128040442987438317325139182380895119460176140029031018752476641722063588624912622510698996909483049359488513078015865906015792650647494367062175737496006745579287346024399870667677115842594868902148807849135727485399327305866338101598310687743449416298684061077871440638756170045306126078647887272338045521384663926733231745631395110219518024704315889321657620124111713538579554378611962504471102298419727134495676180008375526979121639198549465824643559180241966726390104169116038945831326711962982797301610229768314196949131859001448918051758320084846245590210210556085777586478419615302877424172256607248370665406443893336674329262180783690720776580410256859243155778482500646067371646082030821082927463102886044279128216805930632367101237823889906708861253860756462935003456634997791758171985973062026433146707929959381454704170411287207724521657996085033244983754069318799465813381819100096298986364181158740181144960421226792813316930003906586261143911987222607095878718465511189160441036914825619964131890923096710205597394319886612005059957397022128764560466615540884050659231228223799855964228978889552722724857545896336153314451885771802166398779137350074830690316279848897073271032928974514206468957891077510481705892749311256765949552562489568641324686555231271517174957572794997448168994382971883851378550505705879089970487930608122134248415454134216102349952316314857700222418766088197652567580827672521780723497462947117467515599136432687346707621948223181892048215954506848048763876243510496953250428051270699050350176061081691693528445721787214205423450367286516352982209457928673306354900947955306904408122704304924606210614657590478896257797675700211964682735454672543278017735113429025473835882245728986273195285286563116365881408008659389076775333975792385569441837715932158263017162800799442883665435962002342532639942973131647511034144120675087574642238686117289018067735001977137101406038260809544386577677909591936374812110934857952036917135234889599873175140701608708956211326723591140625675513551428066496096921822599461394023916861934113633240212328190942933868917242479858162016807930944918934598560961723236319410390095227128433679663490175022260078753576735016183428708362979041763449515187735239630942854144094706955008149878957655583821484982578895581824437055685112011734490397616774534746778368119798275092248001093668897542818141399984598477377659530787800914029839672896022030241279654324205846297408086798540372101338080379899152059456521378394986756301999374003956861175045172693087021809315118557677730545037588412250930020442552408396275834842007051468090897225714655485749187197121443568035167519261643612068073165631667248939830414234674693275579227747589880769861680545079163559222408829145968732897161111881665990873456372721921550065060229969320603790891811916109706442897211046753547155891062878510527753067137341186748338501268992875853842188378249043319275860878347644604103900345121632800860519166592126382377526319939344882217179431452759744501843671361344215566337825870524669408970236112207643747672918649345100082738618088143401936875648434966724093159576797644996710235170777789563719885180968990339992570822957560781932899671658883973113468040385378834898643407574300377386335964969667417802182981698672488141536454913742060327992541872037030848927805982934478291061133179062107823660885065954326556411622912312700755141156303329838333103770923558615164539948988627355629515074293191554441016134804505711245709642654977590529313091396266002921737878511552039549781139562206382692444810289264584768426660657445409637500012874678744310451767569314014080329460108218179844733117171912808126403540592720956505654640032056942622766231892770561691228795436398250326539076217074601173640621453181567192376181336398406791629410633452431997773187024721870414137803126534684182456139045849976631836768497548331575175493172115311646793059336524069749862950237274557262983405462874065296072212304856370057237455304995729257504542386936585037760507826523350253693275322125753733619260389520588677389439433344547232952623727664950274358766044788222585666124595136680377558769102097445625713174500859985148753867885593851464401696203843082541926541624897921669665816232141199261351923864735122498732153384498497743463251510828576067402003341725591422761850974500344832057126084426107420663006222306848633003769040893785669321451771905829629466143783785864713359998415061703173713300940289939202177696996508124178967103376207355339315188913189630045877908661155514268600780928246913705962736067224066905327780551912439456129514401928608881876735466411304601561155812429012548580878559809590824742917365797189708498251194643902934676845136016202257961763113625650240339358368782138044155053121683429518117081398783370625505464158300377811265316285297604214325421849208975484109493320900990083581634900699061666062506752776602483066087732170840939131186972476198617307092224153078093850809768252511734256377955172270622937333686318800092488598643455985199147928988096268907214562651484784598929317731541162280050662515538649779805647397344121181832381524169980084835111177689754340211435575064030888169631819661989987485690993519988006177127326531022500197987342023733632218413900952450018052409367130208287577094451559208849097408129257895896418114630475605929083503642449845320167771747830779134778848231910736223745927712874385111779685677148917008974428389427574165193048718572170550977519662900161347079314018454993361400618089408460797991908199355338092004312132722065451458588855581083702872260575183665978210527965301316734689942973355364699588498860968975621487317434230503033216936718089190831282545975809927504502782403532858685038400550009461607487555590335235693721780203771799394475380798499597981464228974766504316363748661249522984068271451307299184816330802103633089008399992564505110098207108678627660884377785226232331699643925633062899871504484791126223917818891003173437304571837442107430933897312323006996126164136005489955562316707342864378314202378471599476748184641529841372328631463133997315094295610315719602523592081213625580837322382464497504452188001388013769513758289917809907161447674726268028728844175375428292582862637222093223899126175412163399377149701226185880958604816385134808089709369622214809667578862252132695833207573413134283704697989781041701772362448591558826680933329994893314998227630199051284023527241476443088653191104287839684990936160939003125768300659621651011459340512845129336776048917823803436273887296895133125184874107548264495795284822755998843499841222926145216924099629021808575759427981335772072901580384629346829290639143923203372911999126797033591664219726639232413093000837077993947351877137028332611680805033430231383295611043592122062522754231983297469155247388485773832191748278489501045861117873495557393094306352567362253063685380564837471116654848733520148916489716803951373745183736387926455071911936788128240113980497921888380692574884507820691007702840789641686695833347382945442687368169588759906215590604767061073849462012777230036379265314887607194795842806817564138825500920056832491615100517666365662294171719458821846696907696383492939012055142200340002819853602902486192963465673368490248519718398606846498523825291424647230587017516480210377800383642476944199621272556421581197558519076104108384118557047277561684698080763612595699867311126067133550929481228445821674437621015754554422702267936130242223993906513951224284851716663311361084320015586168549098289915027789740115323878664732653930990560381180832246547975938297254932618851654646866799923148235059907941399396331636745744660377332041555889261351932854096976149035207835578655693120996457744691199981572547103580572375555666947759199021384857663692879124634299458391945144391969370365757673020948715806770682027658071375615999648533704729430273999827989383534842419804981857340120989593390921204719838786967408368204599251640051701362546417044025612084075330453946474420057384846544993688065148152622627026479156715032539531537991484593065373959180278393827466090039126436424946925384804656780020314205904791870020863652380905064269678539419757026780021708469367843238262404370746756796016891112121518864654206420267347478176067654992919398751273755464107425754316791554363634174937343272552105113425337448653611318460543434742614563944623086647942958332627197737882638592303147318824537434220075021594847900281597489055862415213144728769721238381060745392431796553406585609141529713215701983469274733717168341267416250320975358651801379631371922731780383701690381523102309292388073613088891575412982342888863010503318168526672941441341463148411262316539560787021839225235619896609468336908590711107639942675245587153947215803929327696789389549528129574405087848201911041094163278299124603593237490668583512856018527583247202033322877194542963473641438901778979676859499848004446682277327821883132068021832997821880397952351682834054835464915839063116246762006777795932128845758388600186776048947163498754145048093140337490128397815094977347735929535456789955842465902009599960625057445083106800549574957149606584716880429024602076084434759692796700580779444151610344779226542139578951457197045175896230284378527749267159708672408797518498302414114167105238430023299353760265290405606207905469094720846201292468352823402147243167496462623854714544269676410449433724291332249016158780314354504077637959653784454494605762767386757540553035348318097582732106957019498185857511930001086733362338925392561544847609832668218242321035996246721711502002866825395889088730477674226435809372029965553284987966613201743592282398625148703332032642651184413283937499783950387097268903637720968401456385704053774799430932994809234507799691589246484547594817418834335567895876793546229666657697454127015500014747456519513532382539781436629084226900791527328428154190671054573803173315703119159198101288935167392967186466289394967721115999552533613938594774660315353126355700937429607099377118074447282726428654219359171456701518709845017500571067936141031162065170609907921792064720736212064118213954629986946811620719903941400083292344226093007690366508087732146089051969103997724624522211248257815946857949677607243342978281392748439942156659738290319332951957132552281442027878592631283898588769723877721481775179425112216029423588923314922216808658646704587877669062648338967794812346428689799032010471935939826120523320549505531789413080178654362904730469551491140603666951104671427831232034477299853500184537102759380649105118669225485993489411630422866254997582726725759052246689132342620622082251198517685799963554745688377319528976440121583223724819250192884398036732891627631170190192242219345369109623392112951756155711948180202695549124066957911561985520551766093872178480931743199247177396852588923444864814963938068677087176446614953317212127392091590352198534539697057872094435713965544244092487193501826200579496885547573317774092932907852741488620518269907571743335710072791935892310758413110776833608860059219226320921317091594862808971370612923340048369253594059478394472155980002599754713175782763799408026625365223862406338618530168421833080113630244777146607667291516117201787757734431800749744466242255375671470874057921546179389374384581458823650028579325856103733654095623341817040856081000724058827283191597136214322769826935088856902610056358936319750025175025646358244279139275196778054857547923122168973431795471573245301963051599266277780201079090920243703736713600407979182421592406081172556796866963001020713038108747630388268919943797442015202457789862957210163737555443247979444413655632659696208468824142838870027232537354626600473357865183685906441558784713916217128828086487966675611445308483472656373858839244860976462596714257478327579791174929189575720952852377685249480586145667055712223376644670653096471597924902369855849668798495476100769508803618541409461919166604622941449872186665506622721687238935498101386486941567604483434108725153457839078187449941587844822013261897640221405158460667931060972653092604831976046976135713013107459640066803983743346572548111615344015896199241353641325925105375530212120740838822317048245618312300591547546655210600532223006518190257725453133824642200171232761104564524284569021294848467200379656903978416478991146304550823911380650169902958361079587049932240151150820170750335262738461632706182416273581190649762475021599523186916627843720736247976814858261399966426578275139753598845369139444182838593126178953981742295478244360188424432845858493160918774903954223090581807891356467672845240861863844190748748104810157263534315479877167815380330493748693997739820543494310845078031299040270938255651521667908333238615524097724566077926859718041278970397916394834681427658679128398405166376117726243799994713454247943951104450379492329014729095035181021734933895740678178601845645070664079778506567114082481653217182393273801533972752705347174076997792399026111665793008643128846622188609445253993846260461781504008907053809323331224868766512422113202094774481715145102704426729885351418837816708846527823581706132965281360785398642116828970226371254614267611514426846550179712482965300197874930051156988875790142563223429846457758642046459865965288884493810787873555170837904475513407639648090746349580727227539266038055284672505958318965863683162614017450706720695970495451530546111907197324671617622737485415460533772454996126239090705567331285709692158550240535359287035362918018314618103222532417801087200095974315215031473191175051956805605610593341084865456939118518208594234523484831988322518018828707635177261909208775553008035963613349294897145589013490801713603961705606019779390226296526865018270838239070647128448056116042768674729866264872735443491872357858851488388335526813597040753325183870261395303760444273459764677804205145834806055346705073182408847520708979645266483493631415508607926531712753971955949100595222261885405359605818894633670317403621821426452291282860104565286925189707045423423955572936240901777527620239557022464914825991597418013460960116502087777846846277734097116814799647080301001008965647491914344914476139376572110918546586065287772460404583483106931394257533076061061256103041659866943261861353098509755287508197845684670165783397441278015092009626747547601532635621847433790650997605842293593953228736667463705031482352269529761739842984616394301232967920026722558517138342003308476839284680147521996833568338079892322119392965532622774815160875917042882040024007483894446525391939804864962957490885417781799908730066416009988725225996303435538536432540272575630614431586854671231784057185072853703024683835499397400936383013919079542273539041846648081620240112832949796163505028619418855536503490915098233981651405841853606083347877462714786975667288072369404099120857386650144433858583435451989448189607792173360407991006627370295699306843107447321488124135652161091614390343132653905560056239487226931745965450814117715493359848452495469026476784064060316370980307783006148928728317755006201004942668210756212996034470003776170065524624925432871603147635266885540395368207683893519078718801583262311774586558466621927512453815943295334433031222354040715529731874735113213052998658600526262118025407172670178503285293839161022268056858676117370958060370096156228173726662367762328064769113710761476133265218059926742447095105937372275590411731775316922882287759052827612237867349931295242583978296144181263765663166191919496566351930918928746572092551660708127139452282559871764132387329448157752785165688501609822757813193333786001056733817782047385387325614685936459257531298953372991070499191674292072201203556842947894824809910856122408631152832958238010355789115351271194819473527080121432550862349608114335501740321724125170036346816498926705855478839518575357810740172065622662443608138041658012381176254121536067896347375329675286825574125588183909648044447087587620056293659730539463555858851050579313834696459932437055041393201789128249774731334476542666943635376425857864316603939579681079027664771835828403956342105939571769329095851845876500579369976655178485995272219659875407628798509086222591553399321526208482655688778231928687360225548597378281027504765381638579217434833135439005328547272251883649638167157276173645461487811954645297188110549685736182180732308806437155888109264170767871549149045512693547651659445993830091094677173468603183683134102688621871073736304053764721731214929359740318614840096026346443645502733641508655455111019399162897006969345632618609383562545595966104768426471409755141461061910953849328273953770098410571087089641018981889395080642531873051442092873832397865354449648133051740932069250711356990130159027479904020106631158004776792395390300061910704501863999413660028016003044177905393437384244914156988808296213757436490147496075722699723790780243147472297652141677326248818124839431397950633342948844764611928078600683164939040310586416382779113310977112958744995772048838808697914624524851898587151204236269161302850459151923075391183077478732649587924422055858307412836886318278361149277966318794323328580443801870141609536434938587782577949824442448998627586683986441580134665833879931151766041744174934440279091693353287104226565285353356145843407987265658425759254996041540035883119045861233033989283753378674104060192741448586578286160556050567689400275750139173161600236138787455263789941352106208100618152244853786003343545611588525554468747357986551179313237028686154231508881981983205205499411905153968582434392496541464542675101453441318480417041765486853094762500297224043004285609044599744927822768575510709813956476341015402459211381164223808928333920083210152445672448498488071700745549437882867637633353600634339104221369320707797987863868076752683062669542559428889104750360110622537167302565286181223747751860176151184549660014887205438671207213942754725195786167278227377390137806925302446395585673082426225162660167462953801575008438850089360368335408838631594242518321717881538644928086855154265657309955738962072048385938779812881605867198983496822862534200466833020330555375203765800639431737190935971828229449626053217888825138086114612244581944771259809196065197070386112307351328452783769411151912859335365703363076890610066414411752782123254845959080809467105174887622676027208728165838146271918846622041919352490469198403912977625546212587440399915830591484040287739262280974517581810097622809106908386386604077806070673956926098972929039131221737913558642565382599145997334504676755551687576365823761627044349820413088926684560183614466821229702394558658818080567982739859146874338576528925406751216174423392182189223008050097207579820185762968324162242295998582669246319377795651690128076814270749585674693208774831058404713498039519988969787488820216495003638149344185598383518354369281705605381833373737546712906792230958368618668286223832700702949154766877968833436411051324212974301844668103235044082965143581972884669530842830988876970504182652143982373310608726099843520622953495992083748449495091650472651898175288539552522465402713185301802073508165554643764763565144239842826868738472716970243076059226005257816008692452339268959968742389015350439213258423888304447491696428099783392480371454580411002587931347631679690445720667471038055373172906935286096864134315112204564908603406035900290730609101934091992667175445356352819545762013564998373803373801415289408132858971489651726448007330326742663287787284234478984182230336660187447698089087691259625412991341719997339509302534839124045076614370142211667824623769343599385596670201853126478612593391651164964025394127648083321862727415875716162235132195132725737860033226810143713919725160193256660773533731363854381295518912220022515390173198443777980719538128988834011791979810692452494490916179390615714065260488488435401310409123949016380563216303322176379367155058411881881031813887112988039676518296580515528518786968665082874618454879208760790715420278303430353660535323231642535077834308442451864354640537204307333619983583769349853324543630833172874179988170111947249769466439349993493342998770582509246658785713793419342278104530886501207380163058399554468603352385319816892551721314826570149166525706223433381643673622464265473008485287601418207172323653380684740075831908357354960251567163941712954991295102928441962543767723474527059035607662892387982042416904247855754754842586584599476997548967476907341320005594462579443966993011093716020960019796416639185642798515978893760406259919533679239580411960308339714440848199436579984405660400007367392938192926664948817792535325732521416547963682358397564583134700796252840039460745544728370950339047532940019870955853235592413485300599852164795319124871204692560833792795729531749518635574633811518463579094381990931788272495158368878442582817178042255016594037917544338684596465419571346652448372116431863646240648977416971960453720699631459954267794242416143191190256914994714423697906752569824656889673243260540234661402132559596661443917677234544548308725013626228863829474402741104845041369397835313132758717737214153450239215302037399875819791323567483237204258798914883263361269754864421406914689152823787218570922442113544369096227367778223940452930146817601562907320120892673895270297972457046439366088188197445244380293212758679140272196663049539647981635947437383420545189988069072025106527124195118903640626460131098639973111346136660095227258116873584825898271685492738270153370361127775743250494164159828574589784980110820189301249138700044591415808371198990529714787206803266696059349799287109813242929648973245957765238444124314862574269109470747202710832451163168388927910856430652916973037550679943950510041910620717278167493643992312788105344426924183638629309494275944320880892763233138657128970845730724224746473078813770576481347626064050079774480552770742282420844769716023967013739759544144176879512856308868983884682958505654081242446413799873624176896141235597249421581157127701338748201350837501367124711969693708378334812527647090013554687837396491117891124440615460033601521039347579286229743544468638817493718733201798018567124476090855741704469630281885661674260027705232795891811026503901755096400494187433706753673118628921510385035145364082971802013094609309210669702457253377735494316057968423500243338837736081218768289388605235399374039193954639882574673210056483416631732996122215732016034501932171646544953179236897428700905837096249437755048130555436340660783298259962722183952255202252612551917529269176740931418495050744248581118358556276198188126723279089007899640813112360096587626725446273396923767214542174617421195249752690049283218298535725396411580458995105924343993565568665531462648568110473037076058124404622724056728854561579132991194086926604035765005254477947214934367550569987517928204266870793630673181846050101119283009599632562787423614422713018058002337406786018214357436043742970156619856789081416758841680485978776353574422320162299226192025257067516113019499241241655379894383920677098829985629583936053480893923961154257214048490682163467010228718989357594259178682365678953739493303968343935179751913166211999463280547966063330411705551356734185979323003379659693181400590018001597778614168446758069670330518753979442005729419826193538648311950469937788349559633898070596616411280130338841248841554948352509957029347072934448806404840338596739418917168692279053235351998531863891855123233920256299514434564478554891701404226071838572850087069759126525568773487651667673033778764735891169412951543816535254891579459747884177616122488808228221485173450204288840347970242366233547303471373898368754976350351683378879675843752973771505603002231923897437714203561786829035778592703437329275121434406736550573275129169280204854213159166850190594874838464540944651067178167016186766690663086487854852210090258726201920309984167516847960028979021104288228884449694127845776341073567000166070108221306910310939399301543871698341756838752232304027695273783750750925229232072202063387765811954899511783107703984855587252040800508316602259050098867497184503133868958422149288129877514824583468134362815386150612955455895043692646733735754910300959584556273690906496378626217312214505662176078643198242477669555821731771540639961774045930204348806893753665931058744673898338339383182673755572718620986686155272313882784317897021322800477945559020137214437997763883201052920210461141565186085856520468564283659222681121144808691389185847035560790510107946194233439253873569119856214798766024783066189274168049569387681741546741780065799841106899309334992418333396908816991660541050163851656793249812066269202705873407235364662840508965402958606028226181722308755147626175915225906674973677790401493588481023299471396500968455833248374971351813263691508139086570836344771153191105544649485658761694304576060323282996792677947194621426905060537867656366118497688897606570295483687843364960058822992984154262438011756763818429836129136054510372423751817404967934067322860062346581756447994790209881365078927723898825878012332433729827652184226906932675282391771832871592177967803419812106656913347541450580835909749923252476429075423234691469710888780224789524416186970062468346387984847621677095955325899684074073833614493148994909907862999223017510646235549442572313833345830575506236498289714058425632621688220339508278497227789326837621673904998268630480873952275757098740060048100179390992146273124684877487851810494641763254776537213412716575311295823215445019809370107126213791305967214064099117189131797128408074478812407905383928108201434371174289899657487612600506584784209938431587229621419128274517562550167440839970480652200720156163858634665572581369859995214698968708708041852180441690322960446612277725386702804781297977303424734333996596212883815306731633167338770243821171758608005676568436453494204398869876978838215020826637350116356645679912446775683410236352271226690098415683260173307619622429720336568107871032057101324522406848281181697462572622534261986282306167594340216537646474258129251969019459057386406397199651729079063789079491656914096386610551524871648089485073197334109374217501936222898144463859380088793596168373361847379458369204517367918550054157643126821740982021072819510922496752302069441730520955265004829047199905882941681708709205257939157696847252884438591378695724774761432562898424995081490116989851026911776929876746117565078242989451660603577035401113325668064117999392240751149635298008440091677156915220848214744074488022077729942765745872715563829242933703864922217519232711758471334394430171054557415691728205179085298350097244900835543802611240644409250473833562519367072409972713542630605407191850426664014371077606257919464440868676091816521344872713793270237925688305328540701322870040163439065638695408192011938258666683753364566046250912599719136427179475912707738203130911760983012651527597530121404660658389055293363112098825372036808083732226463403031391027184652329307830937980133008457087330236286283975738453987178056794443574097505196774538349811250592887716595482353291374677660521809695021497017812716068352505498258272267056258618905653534339124499589536234778313567310916450603812775283041531153935361093964409838559221422386732135477604893750208187205195011266901564994163001181725295515494126234330846118818726533794081456450519138511108550783651731333204572670574048288635085917637902622559504607612519056465904990670526761002243603049775249356578065925496613697972828754609091317945439677226782461899966451127812296733411573082019539900345799016475478297854912120345127346742840340567572972719750275635689081331073909521058717769094144809731776472270710140587537219357260761190138915789550498987073488643033322959672300743452083576555168326689550784783059494610099048232095851520050678884581758642046661102740900426732948920845634224942559103847907680829644254307447071413402045382380318854107333262236215897990324626295567680228442688272264241145081678500958301530503390593959124876530286383406930635943578149402236944554933453161134758441546189329230796186040017591359772295854979490709694848785908639989673871445970391400170053847743819484070381809178003198715955005613738169469316346119570074135446227113420262935181897155327268698977399991591600612722277930107462973296249828541560237187435923336032993932391116825727352763101293023502250487457499020275487608569473259864027275068771700390800151266951235150898963164244355153272900435098854372230181138986797156210022698874574515959912513403302416047301096023171438129884812763445630012205717871473159861705497626613500179739505234796487020442557693975867307444568458609333643089678255857703340751040926391746327489186568690518939931049538648454488998863905613748465661323093577774778979164555260816695984342257972840474050129320103701533847793915687339922672867155447075142055161429431159977861802612229672161600211928250027183740343772508520998237750829687363045467498320913939947742599548697821091211046832034113744643941998451637355669432821526072164096060950647006416731168950532575651555035587512688501918579738803501111765061630030028377696882449624272964573021095802500694697610325400892259564361365984012072865653512682456002070381805298452121726011494292294905632583872572397262437109058680635443683879415216144977663552990547885274113124271301648060735896031356706016843224933845527214564416549387839981015533766776979898135542074844239244003976413172664269095301829613007521864602363108238483169469417628032963499469063879198225580946442641988507449567714439994768403876782317631783058080955084523680996446486718038182398596710325430943663675665925030952697648280689805315520825904699813059218195621486246218956775678832868158490743173444298989601893886670476653749158227726765568970334509583081249422165181259628987276465797475800793957268541936963299299414524061016844300691396969094972024131131077394952623399637820596961057304297271778108184296940636817044133151365708340229140086508440853143710659547721638177192336740207106928685976959498823680850433680184049905018081324114593088678202447470589363624346763141949605137609739827070942020622777973780012054378777942211986966479302322596145834740876547158952441904983310824376451450495653645695266378491285465371730878017766756694944463251056979094836675577764124507762717109030861814429171753059215315633732421966273849195542994444248545332916041649355410547391856969904312108209609455190104287404378617299508904425115916643550492159421278902310291632292670245461844124048960616143707786109105052805880072244577348624084783020900514922598766342854635408037491350585977865086058470248180633536301673047313680383828885269563903132037317961657387133610742624822277330719757768209712161039441753402079104693794726571038390296268412255578345242315883537691299350875601240904755825035587267594249145675231666561777872615234216887411358948628435535568897839086654891023392701654129740140996602701387988581360869820747994057341932349496308202106379808980381944726861543060651798372214784663592496883836337347388134146590349942936951722674599989192689138911371280444191409398656574374325072014445390952580088657469897011754309190716233163205063639445961631521069830436477707225434205572713332162730935174686665200595984696592065021386253630680823208225138832428419466978828931136740711723261297091890689497736543825288056265575618085371225431838686494228959230827694038152834351675225145720716614755961614517537806379157805943190576536637693283496539900579819623263994876797167723176817767465527034039890478649871971148111331543612185754626248685041361993686197826320275521412530811430042184204756217776266173559297763911674908153598383862567043012356673833200051196671026019457009130664696574173325565518840658455224874332164536303704537922327269788880088310965668191331887717160647447736716194153587920981834213520823335434877678249925259993486505667067908933675848302852126053942889139383599193685817789822070680289157992178884611064499050092726534916072278331309332700218769768647745710859946817265055261499911449803423645673426147121699591103731301111638291106510473727162045929087015243446729985469061473933667264714796756575888948414175480201680078022635141406320375141877504982776147358452622520927554364443273900280468167960371321645711463276001579901079776236087218514482075400019488348094629739511236174319288685912622798650648233955074366154391239525242001832238818500539866434004879711832964748764134532209908099785884785248026233840674158827017710421891058756371316554939932817266906187793636359039732070487341384191788091379082055305200484805114725623896445728641037887965816836447324939070014118132054932665577365142781349268871749817697613160952422800509356905381251836371251087670879842943135203914420701442584234693806912958701717447962532306757217978823344381020266629507391258473022070804125776250446530452688804794748603540360322618729388958968013411405376800053655035224798861410691561841703138915946067270343998805232514764750296490460336350758446357993656774914707342879592039246346713266729376589774106780449290568562749605400430322683015214035853781485350133335153961918911590867149083275098437570713179434271620216328446555984665923035257356615781741198580321508368543441374058036529098980991710500158570258260296316153938920135728564532376179921351694149832817030331953266826742116552897306358775410675284353393104594514310070816172512699415815113138773670913388816310928173922620137773791951761775444706740690548203001272667321246805578043012937119283227590031712161782505831234465148489188182718297765647638829257918999182977065097929644071713496017609251316335364684753572451648126871197958691208648308041912054686009760894643558837287056691573780046018328902102284871618525433363493291102638770192607691675410273558262279948513086196540793732307884901877674971190586511821331528248288868625966956712421251348321755974950430881009463596445171524767765529434711049204043350813859225915774422270278464819906454658721139167153626337385902865758107697339740971729764982821927757090120843188964410788270753925168371147227326616636299917489915961212150131300281414812086060732350345044341331739433480811026698494869101835033804474953451554681389620176282662398424260070641672126389328785986159959891827438622357166244371787743687984494336906610313491593020617821175930317452922035225810409388929551090378370193877544155926657927295069227634937436606500298562731526444354396657581645938740617153992226715344505220292159808754588118049029019022480590812104562164949485025140287939102364291297544313962228587372491465057657481207083018524159542370129827741153726222147903247353751058556235733251806446635281721591498860051818031998392420659786879120994548323316341482395790015578745780461035479294439573727077593972359400986886831684276757541966133973101981263843255547733099929950206243805667565841831800336211513184684250147462145037324567318902841837908649055736943849750041155680310569057751071202834295882330150253993093645538831566909868036979156307262008388128285861837254373566993474523001287255511428829687436001471059031581862614135913791800153112282615970715824020055787640152172249011582555193580041985055456233666537436648302712558498847311578114848506745373433457927216909294059005112391008489186307968016391039577241190169753598641746182364293536594667846137550215301080764363661301540893399667908682345098989339772397236548142908801382149401543915138666963260348591525887224216988027680970544186881821708451491040611215864723605711574405527857686800878169490843052249362143087886253635234940982333587864484235020484919818897996310937705675477130734550715629659590878060742446811082277655120857408342479646322297323806811870709764125024554807032875234572665244258600572815987682628499966676599478864111706657624338296353285799489403010641007739312210372667748808391113195646097275129890779346388519191167843513339631794326237190416526004221980050777285199709866208977000626260284247642324092573775890905113535754875292441178058155854938359270469728684143113209010571437238622282451476088775188608578083781629898754616375412618337609888106301467511745464560204774346373578601126781262281366378852650603509633238155080293847483893983954646981205532270507544339138232052667777069760136264773035864877667912308997603542224978589193445344217081191020292760363071634014123178014715627015843516559415842051372890996809944751343519631235099118329702088291692291639602048258512771861294187812352021015552464525206607930538285183918054549354695132695296891239088919416048141954477986126215261332817633999952186135587438904929509604792023947467562687428252993666616546864039463534948206407138400739094888137176261133516579907986296923343711430815673722122980784556466719350326116327317740835921990877734309109827519854706139880062416895493445524813600869511160212176375511435012156455409813370076337946442536028219157751752830066111456579649213637830223343549938303863399118903949512900646472666691730916628250558676002173622128387328962257618618884203889054482122604068521581729915660836501685165462135870264745564583081609151993166130221143971366152857859999225930080969988260862199170675369178502298841096588530367161500509193837787444458124876319883635585459565297816943734848997535184496358966268738875645608182087766880996434702487851745397367798925474860256994997563194598753271658278044274498339653767405279173338786726709601408305118241463404781515063483884723686876604389407224757593887252328533696080226059851101887705997942510126634908133529378655350923873198101325379719729358239831220342906971526446865531630685055563335059446077826495031202159739368320860711349254311934486055122813899002298998787703236155337600805879068859933879546546489078004714953472470639630054722900718285467693988053208882144442612769534014488322133961578782961782840335068168119086802810337070314040411644563275001698011621706967008167041033379679134254288201557116367357849424917832039337991934948281342357468101545361061820613023025827577447649027256273111635329184687689094714887533265959224268487162052971157598034480180858702463153240181065882442742635028726398709897553316513495349593591392755926549406671979110863509526740861704221168540260265792003980459857482330734552297409025216034296298759289061267893612055959544340519300092338766371098270467828793754294477910978506633293480194184650403976790233197735574635670935958611856050776867928927103941743960138349926495181487967591990218526932572585439117895503166984952329778162351618912521539721368991548535076437121552213294408311970881722285375184791056869196658486996252601885136853777689551528189673899660164710921722482078767234192737226901456240797590115556910266072891740035732415196386608282371898583750467522486724931437276319849135620650985537527361556757459142073134795445703168718302165741827251854446478114699367748541111786120835063578617172885777025418126390652321838330911638685401083995012859015282007631817451191623497777574009189626336975822274117094464038596203714533027992676423508414801457435457672893213670481514317881873490956541810239099334481355453730219083897094252178824066467655116446401936458360391960504380144967844545674922271942707789338694253009358479748380825996962280440523500707110806106071129276877435690533502537339063552588200727730726631369190402784466816949823767380944105070806174520941863357033618657446862549393079544854819740709183394520337968415093961246722442632449655715825545180027881740539334381862461256318391180726259251329600789099772958332951144460143493466651460455974903207375268935514213438731735179133477784330731975465302526661289807250756751000729110208360365413915097145445747753562020664744953639228036691520603314973785981086010682367016707449452047896910663933140133933276206030117999324235647387907251177534558442038189891655536949979697041529318348269901895738998067407560865703018047079786753900911968722386191316844566887309313618765044390803717213334981247385158439608265089785200135599821081557435518222358922987917648845862666869033023379820139765592651078481221498353047313774260289441828803284642304541253877770810488475949840140697866759768224366887601405574321492182560182617712875559080229046006341222125100716714434268023790766977819655463343406142709596397210461250167302935291014971796191237618169633806611686401840696623518901669879676649947224004873342264298476762099358974142006849066272457416276011192409641084880563581479318755037982836383859547897528956691727474758833836027681126995368964460554697355144657613861079489728040572954387566212642070101974788989349218853299824706600488315051536854791022508287414542151845400536437813689402320099536681396071663262281474814909309549361597359159934219574182523080624604154719646710728948658559505066686460730667410907853644061492832080473633499480690153967731307323793102331684075506916610883901047961194488403319990454690975911882749967846312294435429694132026706175269206218701017063217900282238042171082667690367347977956270930044573682411977488590388222494618136174408605269502628619964259784053803581873100262477079492630100541073175008961273093886544971763189630322392650432231358431728854370023945836299462792722681254941368096359720039732199570115903276695760417172332448492607941555670507375976478061422729242616129990816716960069388873325913789579730887937127608861887100404434887236813184754949952030330649551390201666475383666370715985912507580551279002150183145651461635622897234631238485225549110449103755371084515115378789075875776070362053972671040389166474055073262722459534945032397906669332557796177846027080207773217112282603846246400233387062876934374412114054445575508083474506874940630491401868857368123501174457254914161615399975336347817184511856602551542653272634790669014197015887470789709994127879712279818854728439301772948252816672544051694948027250142777025173595958754749080114514853127013553247369087293498670298692637678197931955979285880565794946225677557927939301959287039346337798210917392332855313585145507163583955928760150705588766195209322506789856473707834325413115423614370278736770053774094795542085920878921538542152312752694859916229212898556980283197868482443813790841754070491386850133327082906751477745201769599738999667010598848416374666286063226835107578381661499937410246915573953514242926400862994608969228725441684546976768864834789706257112843526664755525594080157816514332284424584822712692811061419667832508423391200209535952392329473214481229984715997703192220404361141763458783339847770076278696375347271754139280138155808314065631605276803619480367301238046736483323438166750595727430367635044753761242806507673419720680322016120301255176472131620970934501159441955257141264763394799700853369757594791757602396760737322748666449290624261162978724639252895899780031114029253819442558028567647483880688628682165872525423265970562747515362796438339287073297309200502029584674724338370685096551184512716420159695377769266784933417823998415307928427361349925003911535207423142785007532107077127367621606842065578350738606070104520901188538633554690352867883084090246279779113719151736693743298052278821219957536305763366227436394203384979151622004091930492287476893237441731649035920691408643331728635696403151037689211874145414520330717388536915136504454523189119151229969043682865564473572806151754732215841294363883877763150216453448952464509247901133687762789215090701223092959890999964590633447137216984539780001058913106030655705498128125135700814212412921630634472205261797357297728975076147749267912733607736249559400999201653652485432131569843368643270710838388392449149362369648106085582442199625762962553241508829612272838753918588213230729795881141551387437415626935705861371801399121832225387069611638123650168164979943984757184728731330130500724098222394903723073800970389978967131079076515910978232764480535333004282074551944531573752544822800330885118022550325961433842301295426348822084632681617447133435693028759350234501026666286030625915501664369437826434682015402830636116775583517240759564876240881550435968844624491805317149310192064065192987643119331370479146071010824958070167322098231749981670020578973770771110179195862526794791523899180129107040338841917459236153144131230816585238265514917568964164989797605307882811132577909460283365539824440119872962764987534842168367655248858372285325355032493122472165702177939575483586913575896301910776505299378809976263859096930288690944601998265698231132475202894812602878882273743554841482024525012375194243675702295127316729630107699318980051433705520091275255299970644405207816630490327445529867440503554279118438892385630485379620945317486445702331833380593642943291321847179719307677304174197878313790065214137567953506943669509325756178788428409043967548223507765658826087015714655433003338887249470849234756678163588323129470060854229516962874728938748098647038225448324863715261172033747231018763112688485105908366458509661714228388611039970017549269358910792282144907562446728963261077637701023047635642669712062557287896448902489540407455126748273530441610489207269108406354918438801328794837167258348444959220925792651079080486835798397015260499238539978068782502930750572307414112323769106904693658676807210038921985022438538021747847651403382684551260735343895972130888197254830630003659760615152737506456892325915710913681921654788247048021927461969094573507203230913793602846905794559742003273694846772526214961299215142709536910584442545497696706571528741842464739724304158598266540887929598057229831142496946019522458653816020578311260872118670104235148348302992074017073842161937510527260917690528263202253618551854505662677841263210298421664337789770428372703451272433298133819924604166586420623377087323073321126034861440330685831686725018694601963279720733560753442869863411161850469693816711188666641914033823832704186154161685621003008083488852682163596820849959725579396424600233822538226304719861938539108559426089775956725765656746348963648517314304540033088544349744726632118865413945046844070211603147733075293685813810818375839618261365394589207929127456746842780434225862312539198368378764569800112807177580289317683277152815109400052372403392725840646553779146648093798853721045711898865653417933294931232572646462670935923104941229820094666243492981798840201675172939329862263394649046779934776062447964919148222353155444104098766361986309114722259093347868796040138969794310363872902068415714677718548128684057179091755879340998349649735540657532953697424427943438834154178239717573554310089840963862297700886008649304205856630081648675177262316047083587258870216763084978259963208828777850754341529124329656465227211305602488335892392326312652210497429671114804139005095987992055827155453237541459950386985946506259186373976241778339030218000783868991381409961510624679715816178491266352586525571736634252066968947682793411841148260643908568267531407814233713444108421657304301443879536608387654758158490650078985850141125148839184886000399506444266982054514879019628690886812555720183069924533009647518192114343118495972374427763407578652799644378600454422959290267120604408783466578735537065045849378812498735156991025224085968844463747717468270415553508316681245612461745282134868062819138962442185130448739387400850266566263853561551648226460577663355911335905543473984202027975717160341944832006993800348597767255005867615849959595884863100382820737938956788837982483462434580284607471496181230301349635333232804918804323652476825011707072607338234300254143145829177462176848642923307002239446783522820638367766485957223597219215234273960601768381358152264092611469020497823980919727436111281316532052029862981099906639659627496346266310738710953856704983059460465621284358996015613540886905839605590014462563521317252294468725345359980645511400358078189715536435246543930955327395105306331872031574281820589486675273573418382231043479179092381075220821643222161253994495771950339953742641335908123493081361907126448141016400829117306914369430747110549554745090781624621804453846156105653603833857573939269385671201866488272426893879104607644639365443757327545478562281413977398991290478324254434018358677430246054635963006128485896136725460400408803838579104795142245582305240368026159356159457413158082878916346508655766846645386524467705192076572976029258864478408661768754703595276261342115566675947342107857716175091734964328220305746241357911421236738643076139186056612768164005792117997590691215376661302038390465352155859279108898949148130555476420093930812197643410498618015183685741070838670443799244073892942770217748724352911438465317800718700133744052046169337335743699055266917743447886729788722492325789603818576439908798923066164785092673610370269265611655057167990051512986483420356549400100172141100038837204151179198835243589680130616936681564891329403931673614180769842398180322508374814681086445736274031948793771777741975805180826663773924150574648691914683270755781396227396128142235558322490819425431925318517866068233175851715248885394683310316749559881002760760264045742865898688202005725195559125529267411744952763909997768892687505442799372072189955462420759263907448453320107411648641690091438566885685713305314883713345791508576045563884950846262603621168318775387329622971794723878569264669347877634303481790255677315237320707444285280768534476213083672580801737058237769097441870203403329203232270669899170828869203575405854991842410353031379300902816913774338446777111854095612893902688452702722305201582261495908814482736985196511515302603048428427081583857986799708197130305795398830704171429711234642917309140255633505025653471544242867885581124226625803679000160460214670222373165729255215822779084101408580771748119084865673897212748982805291142846399212428149325123027719046811244006657656277929200504088979474951919101138132725893235119071123774284244890176572859219165196787756927320626886065988475101708886085690537252184811479583864664123845584499698786628900777876989984253595581611551531244270595542014005341411927556644346721878931991947258810049052654797641925737968779727348569682908190315346441820948196551669928054306315837265349230442332572519910748385904045617616981106211996057037045677796793894205397831350764169988746646922676506193870638049128292288013214025624754626726598546208035516317668639643423099918257242526396521722683878036672596765716470330188888065839546334243292268895797093600075312484550663825216538250777711750399615092600890074788745753294474121444795731744463089441854507577293272162424242250611497058592452071009837979170452025866060979403163220591803859194037577580682883097442672519260885550689179864631718327470559063936796382878077770177900861048045243514907870999372245182919836488253618538561748791527716378568723894565696776443560716528133088059521784102780034023042799756697106649614637737972780500195421087678890698398339523057694408782186697897520989372264337268210835094087723923950878277043251640072154040925089541768264034236949754433189648165292569390152785794924881691686158703855407292014420376424665606735325822622535396897833617805223622563079658910928217117416635026772288351179819828316346273919545925731649980907554346960803766236878617427438991481133432583777206657595804938322529607720528399194324252482137736705172214019835958814311583626636148916434624512645365411988345420504994045201429284999007896252959010292824022296384947734536541619256595125193602574122430631037160742054757153413925175595476718209932300113512354254357742624560824865241158904548707174384621136205266316271579830381989051718686411231757558187215155847813595515992151262193701976467477363386910932717996610835378440522180769972155487260902251754632923466929001764266836977394557244311957195806852059659940724090131581098123899705975797650062332651856868151788037496077116239071351038638887997701583188677175488687254200053829890436462569015411412834400644254016257834209160063525422135511317918127158584084671808816358576137388385135286410407002127334262363907712536192739302421797649556269603235641577207510639727662035816400588314343974278330749000650221762851206875713411583284054209153217097470404533144774974712304361490397334146246483848055139901411779047143635183924343906170420186390303475837396991117966720030630529534549055878022859644544331075570121162411511630470973759914167450032656965888437585072515526450627997183338190473665258439298018634641419025307247779852981838857038722021117235808657201599456923939552360314656453571833054692685676801173959882273420930716990475600849387378041666525953520802129061988649942367365976234936583078552370849958058273439589748309762697842842876696960330581407876182082350297656014629095043020524766889773439572864086195714114305228977207808266749746957486313353843816695812507562351771812564696525921560874273012771389297216269274894097878155814122732389863697872584616617908282722029595067070382339842513133749509792026627173089834613382348305562577358564111447686921983535749084735475572616354561864030828416668340515698206744115541711798836573355245835834480921002303175647913446627005804673994531379268950116840394767733984630520802057361582858854830340540015777069117368094817040762135496507853887611317485323907811643568383596737511435997831250274654162776899033040639061960954128982157755050395909744157185704207856485615568386662281847579478654499115010567878977499436092178259338747023076192755293707286357305440450957094010250102665752471406993621938803409250669684981220199710637439618250839651532205147246638641184754701352074553221646240366752908795858105033377019219017586406506868647849478001055003569341430026243047425576003838029607488144468504051992196394341074481029946661037449090399093452800247565621718241646054124313223076359228341891122088706033142240559434298620459123968835871529394685685241305055026110388894585082387577761785761331249170885411810583147549603469005341116844141842248747094451858533159415233042488522445941782952403915566299250388945374625546059197651024294874081237585675412636867060271865751377820993670192986075374560364370850926364338134872241809867953498037785170437577903762073901739366934440948906978909007078237505146326586446469531737382482846030308974093788316261476394506307729215735167112891484496384376790990902867087982286801226965562885697971760212979490255291130029628294411220877663604337959618800725769384501109581287855389115357919477455197774150073724735757595744063629646538569262771339931283452816653571007768439106837177691295372632606346411291745111617253719123188883824568380915094962113742438776855761690832899449420685273339762276442872863499550286916180082609870079487157316610169157400627766525004815655143504099676865349204113360646149369913741484744520720108510143141688171574758646908747127928863089446278417262523510046173418721230884851165401236108468783619888548405285977427787067174859824566144743008362518122952651111855412571053582930311186973320460357973751788128953536670054677179778799391967291056877002322917329025046406087041567111732806394797932965621693605673367864172735991564799533580047506966123440281873615398465104005284827434300069069982607585330984573434732635305833154876505952950429642850815115632759344495606046122452488689683665016732729129762593978877332383963647358321967354121094553100353733441398518444794567634048183440391697988302170818107979886431857794796558390609732000166115418151177942770356689246521422044537497100930469482178325885387269574917081867895745139319653989513607626823617507640161333520771000214735954333269240096911318527418905200746819268462259109359718249010088273110131005358353494404445597295362354592930197809816680430414961595522933327637346491688350496412015179228855234747445847630136493580701663267928847570535428861169405400980335670574475782138128332664222102103682797197313781859673855410465254931946386051118630488048373772928804600441512436982130606078272076843996277504126447239053150116905547091940653893713971442618462816334943543432535684656122448807992355499047385238400236881744024596856400910484145167838039187492312284307635901385538982045594163067911159032310804580447444594593494949563382215498733547929907390936034640026080522552568662618638766348601425308711873504234502608381965957900016247977582885436701291802402344198269706019585189127939591125665706356066769052497516484767345305414845990347405196547543305290692545169546609678778353965019772237119567282040853121841718111257797187155637374187522775176024956467060926089966483299194790652148177939493836200491859097577543686293810471426106860534949924590212092804904090548642168343754557976823793074759848364641723479597164234805844450499907464306134369872752519670248527286395714285045050873521108627538224856685104292176621852815705527498465412053428221146254306054255991876616480144168345951565091288133078286058502107843726833916758572638787526477012848970757891078017314895047543225531049724880402345480290691424392253352740322885904961320897612914037261248664951036312734104969113702613021767018524122195763790097644984751572924698334827401929452957490845498159845602942306940513349064436223813240911235154809464070047360072696952412383410989670504249256035204360000024765515005238070689339365944409112462020383428767977393346247918665579830617793641276481642783341211203944248556998721196770061788566219662754267556190501197297173401263971579981520368292984394316581792041777931188760314418466217201998714310178122367733413867496091245736968849778047717716193280176978829654689389205883375513043313785956985941432394673652730266278151105562406305212812069199767528638941575180715257636352877510239593103359226780564785612769953013919127302981342707054100926214971636978834049269781773380961676570824218835213520354044025528352887978856075932191085959949163767997298359720331102265137300892620889865933955205810463566462241039651716719728687219210675661699562558135080968912276952842557546514239090625533270544425341235408223323757301705789860890136713520844875681227952147524763941286368671091755548912057115367929029408847518743035467533319952133565582909449273904327061429983865782308633747164100687454422868045849548966713053517937652108433310463110958689990306510179151583333739832132711919871849504948136840737332057720162890334703691362028188758395524494327683129974276228631493902251010184163724978585832070198161312664650169785996040211723337022238990992290281757882818331160137753529312125186720576000535916798399796274781879181591278879213285920760831440593381504834768854469651078370564369850870754429301264377186991983241012129386972922867763439418442765278739451963779248367491404621686125514735664316250641320540603294214460950566647634675610955766901970794454004492780877374088627786216849482310652813836872321431111296522404577349814624099676675787384860169137604806458438911052096966968922426413803723472633813213131788865240309738508255419601085228339261783732527685683250889957351730355634180786895066997729458864758912897396899000401432355742203196064001285964546299985013580494255189608666484973916446831274403263755471675012223099033193309264684609258975798835439733347207850707618959846110508981223276711098457582775331970026707534847286798156797714507700722467253085011471482927312470469366897223889792566986491156724707835790081916965077794149417986144125018852865710542388783313694565365412253653145145063474174488675677355085786045636777229838684238742707687461708625409361325602890675312200520959513420515334663468066950481386412488463822378512566300590410285007628152238165974781192527905336306833410122166109800467674132341771436228140331575723553293189760382775551069580427113806725842800163646097914116092355476395577063815400335333890841804772995700965767852560992068333977840381937738669404261930536370392655358958848146149962765983443162669801928541391303584555475211571992617879824472716972236670841782254898701012725140039301800557067641017848218914250741595581697976664907464880314670543502937158558903257794048832903599177562621989196524969684030743586953823769354701115980705391589579545481791375462656238605862480916994996301001041845580786680139272800878560229234004520741328075912161391830211171127624375551966420373519838671668414884761223614364898063932588790518791374326073715115708771297018682147571744549777554419015557272400321528116629617930234591559766855056934919785941341140493253377274235460190330551178596020611279918720378039278433388574890043579576757943554727012844872461993367611538141050315379543704483630869021662906412623601539105138950700811220910024896450965784175594426739005815171756643528855411789044610196948665663366944341226755245387992678804355569900524907697676796192166257738394406131867120519610950214888413707435352835794535319391319112235365565869400048410166699136128755918613081783171108676818941083912425178529474205240635127462306340758883994683017225186491775232998502191293253027456443672689159873013387919753857168667793421370833889768098800219788745576632195079248714837735746899762105444022740954814805059248137151284227185290744521168578086530856176360878487238202724795422814301766656786631861202862278338975310439716377606100326256677553719522483293196005359162512575200311237409533652390063901807702244198428816369098139202031712094584839682838475282178049431029357202260611543477787632558130863459836545040335169436016321825219403485222788267772590195607589677507708657803929191899754350345039756064044450546428523539143362851404758253440553780934884302080720572680323007227231821411132901569179372923261442552373951607271577209933763559111222265832789190598178900504671787222069132470760523981131314376525560355646997552912009627100733710576533272744476082208624854553731169183339400188176611895687853738894072391978335833041337156566150890505565254771402541144704723623131593408476651549894623013140657194630877619241799092230029830099572199856131838326941481041464781349909274959536473047898404818679689056609225164207733931958576225996438472858289175577129072701091296655622070998986692895544254434479923885535557045920709009507664083497364016117112417351981091055329632240430550535872687636872294362935459877178154408114068093469421743988779098975251770544388440040320300162849424203274858801741798382120362447573767517940825049651478575432976133532127117572529202703396446102333677417503504116085240019375716308143893425520930530158000425454333254769312897224772157845874281418944795720915316577532371437731372815923414972801987438150228542788274485259150009101426606618543832561734224533286006184032623231143421197126544108825966007322915974609529161834365881465301771063804979546573144449221748650446425951030997963205435230953561050859001452502978975060229051839804864382769232267909683024050362999600552003459343719850438533815142506717348655521142111261542108903090066589328494780161123448433733859682400481756756957278127717829567518803708051685700936090481154879707325716767666583436629172619843841172332052651758779528790016681199211147175097207632421688570235328912535923503329343433423154641408572946001945768767022292351882701471564579547761920324446175880208402424193063470779504133910669737080638071579240166660066843683389603286068613053913715341019188863635326254194058631794789635349684092583791471963179675781889220636909777924273921021549130840268304093681982597158482985918773705283058752777740543399786318279031282809189318001314361907603235982377604791421269158568394252263046595438547210449386679986400382937456090432552227289163551370731342428562428057053317174830705242702466638469588058220550935959538677197420113688676968625265675423560357182180761469526172703501897182092936533278666435259395192595147972414602971901664353443405264443009781375901843535811964091999151988966796809754901235093918946551246768874472059020306078840438892823153781127563912546422346632872595089231966559955106175134144359330639941005957472139856626126678964346460502100275835030958909974050531828447575810668345001181454068981115216549122272648284948780362676382556485860012942931595448814039203898073216347502075768694980993768713936534977828261389559710610170487394701999843886636651245872747702512719030081203716976885791680102997018986096127112033979612219407880606844789247691938264916749154222868748008139342479390954275760773782368349207994699681520180977753908101948014565833015102786927814874743158362435007872917058144484949955790465760217443436216457167600854146043848645524204080779705443761907722522901606534051453345601495234124918879965226042183858099397186426143635217534782599077083009729693484464913922758160905520970799885918766310702341295365037847065471161594455043650454617554635620271296298430304960571219027100234271144797069582288173782827976943166792480905328596908709691796557140695894427027916564559101803916063781995872981069473518014455965615694080902441774185564349836926699874878922374214657530058452098151230953264807733631619303270639134830008953192541051786244962138271050526938825129988257610517015103963858976121643037615205051908453598742662897325666267796116351529978651586016316337692043576085144218651575359861008968346001844594820235824227936721773052380855142115810155003448015184200840192771069036641213366427675352059730809417639835790949849630265558059912672413828402967993848896953335033528360243534237676804102824389444016344951005360776728735726803516110798440084200131625338844556345041695237931867256239824101462420422158612953253892035199670997511711060022552181766207600667493764656816358536226617689600992177884769196364072836267111414589414895598309832787643046575305472457865856215685194398963557251443716250738363113917352213274403641743502084705666013268688527929657078912764179486349607909824695068106319818501869384127121321102736506322408123722889761959266333525648606988089374795800076181806999074638493909887724507215857506799785773383225971706645757999104673153654156168501152622257545285393379911852904805629448399193962820711545671041407930765287848624767017803616040281058174324358083343038447842303654953431734775362693049418284914363580686018588753237233974225375109282639213778371997343671276571582434973118737040033286765014585735872074802806232054441864409139226923618800203705402072047417973649302727825031711073545547987951700821890851330977883914687151022515720589826378414786650184115652739290879087796074235693748470700471933998228783525669255047844713468833019157590018898171468758922217952362640186546401999336665892381042265606080415966946666827752480832280306967795669589569348922424806160676969789589277322966892680350286241206709048856371183173445651858174445425437618927182780630803400882065433208895924490361501364510942315214690044365085406745179608719666474903226975121486734677655738879752582213362092749390349890825763942035001440353849523100743429172557423392140544089096093200624467361935885926851083822618884339680291267496782714311281569915893246195688124533036595522161832489191825081162743457716610176935293176682810036803158302009952444702117461874362515795877778448132175609098167602552776702950196808220461684654940898784024655532653632510793341940661841230365390785999939434940285703304455445677740900676563464103947959459878567111796173810134943184261638513087717543725394096931246744263644538835567067503180102844443970704695360382035234933367202760562544902262934876086355532354380612781255854422446099428292047103905289372234304272547914382069217458570106629808298566845739357358224323291741314338403538640292167380588550678561935241782077665903400936893473473891593499908511438721668329812185029428807301742470597020454557732868894415187769879922001403252446977385319457476547580878606485786882916149366261077534704939745826215515206379932969430800228051588210144694522051636526410152300478793690985180412106915554315915733684097019794651409552477349394541253863858551950863326573289350876952111542966216190777446978836927942757668122815525741064315876287495521498201494648845731779072842462120191461103837814342067664044473233024738300287699274827578542527643375427367562958015270467974657640820763878834467461276249934678204747101411223088169285953354287969885639016957247681614957182900054591333943711591708038320419585553574572207393029040081965802859636943163370928202506571139142737174859014710989138968842385820115640629205810628640017384112264127925852755741392352733265118376983708456147841121026572228412120728640230641150041949557098760506321171904593822725768668641787120938038215971080539271776170249084585808896573581249938629006786272854848882605441517318310462539796954677900564467768849922057575022160610106361064171963764987496992974195449463058609487574644862583064053227591827915971948638192870554424696948477923305187384256253887485238156166852761248324677050477621184345287181502937791052281084501005967275290178515785060446219082242146118703210320841949800069880767238624338559079644618470389888276503926652387002310438397372085165970134819830423572815839251741190356321500145672828432447365919198342685219229863685566104117529928914189601763716071320439401290257789975331012098186424569206714518984429918631971925413422483898062425559629213815389609853271952258109470203422144905289519897384805454682095273158445339803329319321356439745037121233245921670468366535034812264194905217421704939964889985543361171106617556907867744810380598414263746317382992412084815998948098179145263761476508590778475431968438382446409125492358646946891920741986120172228268697273575083637663574977319201631421307484032484886308615078082668729299403616020493838746256467042069680016918699413392834703288006265388722640596302167668687772042586139100026037174540161740835669878427513126924630274155014712089788969479407313448644349801809123114313834867605427770636831653699428991796184018575938437655301004154867167453080854686486728266217067786969112765687470191608877084101438382764029483815960180379337924402716918354194809524894547939869195866596073157618925717219095166581581183734079272246544255680163932014338194208013119475213289503123928287063385951469508841791773007907050101266738824810246290684173436411373973554557740332940241573245718327684710320143959747044645807782894863373562781329440820500569059065419757279599715589608234518925296761346573124710710142927871993962465551091649338720425433705178717065067653592122629103594332990983296242808311662770409731964899887844335566683560510910650831071560369018407076500200817025419242455196190855485300837364392046747378116736373332241075914060021621829210540728177310555845556292023185480498844027290002412105336432463614303254317870493000259391270137425520723641018768571372007829495314095621040734732394033091028224438226289488033610479633435305712222942626502017077934894400966589362455681272047361271268918135278198436855497813696817716578410756302659539901337530972675870528495026251080649268148873030514343145621126761402656282618044287969743303982779454507937703018569653474184336973122432569807969177980097736600583004039726161866269591883428199751313433134840751106628157021340586627632264054718114755965096168568012046419180019009749078582687103550793536412381341244226575077772494344959257347031964875350409594505692123064795728114480801082780133225258459086309703459860003199923721818317895412000965418788948138852834873910478711837905559586439609295644349184892268704362792106436768767112212926056156189642362581491947262917904036574291249214425609358435321076601052072378061734282561671320519546576941275859883823523694177946747615695753294983114461880611796204691443733616762748846090721423957064197709048640832184750910205053256176748316935049212986243253602706952943365182470370214925524747991645113381906989943115107168507196717100962835093970226004067100683393775566841074511378938656903098228933391281543909967750890650706999170092566169906084658302204210012054402314010001429874076256961543849206302977138961443701861845815495260960990045936065046301401448732090060929962491902993942758864282944025954926756037491150476549353720222766418909902285387925519447263695014460857502467407574700262830661973420805926764936248578117237130800504398502624159207486398706949951417793426785142274182608997410242401342315690197108091558641005644525610428471716997561926645851352944356095604894849085152729007692557642323874076178069245272338788871956332524853886551870230955163737784914286286798828192235640903790355271088464883226071704133685146950373775456851117638411796461679738103465232101044764612793797610097158884495747514037007016383631304249529895963895590876364396848490868057326963997207684941710018313057169340439966166863801837812822050144481369008047843474676040906461720668950593917860243819125937712500832283528566510421926347929945951602873498999104636705509885602893601805119049194567369857556319259914510496380463871372136260126650847450067067763824967359223819930841491122533170977749384346808243974858441218225577652632448816454621564684873133824961334984475655347731075345086360449186652137501565818021674828408117289168579317783365256156233237398566713763132582245011338970036271259566586103949662694603200047622522762268450713550673435271628073869774951618318323983316577567670872556800450815616731309204250290900382433690095387684714181521266227264778250908934596671257546713033741774890177671025433675292005109931974347690284447582538891989445307561144473761980823061819425574542259215915573954944441877857914485701958367320321520093600050948482693072622591542066339091413734231529556854152575798274539436191466154824043805769184070093993130663860553159324639249511408651204362520171998975705727555949787737939147991760567643901044945659761762973811612634080123551766629568538506787746169416224896051984660790459476712441661011417761527847799767474179355633311616768344168247982690138741614440404793501262621826847396891272116863586759340272680598928049917797700530904126775904204511395925307444548151132730722481163818235335306702469791495352337458200223569173456669203747481366005305842314800757019899210827307735054831205297136350428475329553398083855641906359247325417517691538522811533506775035963758874680007204410340870218982754090416451962845627825631976177008400423031698269393355733988776205916313503045053343382885281131376952636423236282281001120983919110678053997766740715545004485171368532771535050399083542529533598772488080896588169404689500907113399754967100801439704162292093305252795629871706540235808072871332619270836250088784428325525586798368572415403633807238495645333305386825487007333622746538701723604196056027402786001801531427178992436462932436127285081905833688120646333120104174530365613279765985273747028098330895993898411089507243045353891795021551542629959345432307033755838498529574522796360518613495385079312289286457231618063448610467630408715731646020585993165520062472815242164455699272528233051997250315281021131344930928443233921141694810728738305619755566243784902784113588993222263923142404520057577675315989235578570400883571124583897661098708530490459115996369611051407461941889017556526956603274045302682261488250350673526010324156261083165556247883082667780231110475789082413391410539571083607609900983107345272546034593796713119853284410460674132526579924827118367489457383166102370958456528564041218600320085265931292671771007588886763310339051620076545677323808764028565824523079805376362326296515545451868849100447497597285063788747577199729312065946603366101096064663915779523707609880811839702838832689563772172391099516636512543021712401933712949966179392052117511931815611956079585112177097588167224576146857857797946933998257584501413528167766513456827940317542576466778770159294209211889168963197689729782402857554884785923854310819841470925351264809770780151488671939380831822291061317253093441226963807315127673406621018295193185087815813598299833397245292848052708965766917675899313855115542257305882630527990952652635217140370258821615642971627868721290116905221341643470403219445846781803796487320741522549686236631328569661947307144700561976218729300858086699377180776437864105477905336208678818155919113366728172450265681218177528836914635667147747485048892223982845933652370295395422681691178828861965842019986666988341283616996091129433325617039766271589571787244740072228644060139302784773939221473421338753099079908411197952926816528392643448654772044771690938282633592299729517749600497300151231477874498176901972346590321606289587637895663622424533506730380898072370080957179568025113884380573486644159944908123706531095118979345039894037020518191249941024146248404062337711149058389214503292562810679704702126458252997868224135750363541075165545352515947825221280994945441396454129658867428567737273435553945438298171165815945297495300380604071538169678831667464512910291097125833584473924623827438522198895464605857007078451897001539327148475130613159134675795474689583578026858344395179827114130889099605926217030129125716401149416643902018273869055369658628368262569365863160897215951491894241338942319263230537387419515717633667509566230265625709482982691347338301695526978382571423633783753186191145121043077050882798466089299012222014113524655925262186372960963370462607103569692208333783743242236574640211012719657710776382013323512726226845371193452548784260911519772651872993953617140347375674277161275842996293319398179248509909441913286440124459170874510020161370054821894500565337456180808409832263693493850221772766197645110141384125866322210420483646781524453303802219372676933122646862291545776755324394690538207331918449848089510129302086170192540844116422709515574821317850946121445075083183399932828942347005685406933477743308585949155427958851396385186628195281062574192633982475092783455250222363759055315157865612405707295288422415770130777418070246612300988438465062879904088491391103850634958231364802206297273992772392899965506285342457858453212941666587479854412433851619215961216560941475561117021132922778009925825305170206990638760957909154053130959319341886899337932229571478495496477330716781257368778274052965410800962827401063330824152928673658734250938445962934609147725575900835981662078162092134476866432179265157042311374743393751191233899092041786445035719514098312388617507731665872981589484561600634973279096742325467009924275592901679348936735252573918168165758640055809064298594338885992915646475277689414306621609483371279705711657271738582453758563665621300299460921171395445118703969852501445275572889080652892635071724362696625093165180016584791042443181766192254717775757778988007238207558121275198058502042691159609958128225853453328840100479213208051889391534448393893572995376572652122494529589313227262355468147079643606389163302395125329388382198916030085417493350910331909616692830245513484463786688734339338336981017705514393557679763510491287060975665413016067274273499315144375854206311866171488361111037950186424283499035931375997817842634329939668893605627968196012526939938013326254799338513251042852331999158644497902200461520786403362918231792053226395150379919280802473989270362803430529867713960215885072140032295055324521949089641963336880287422052219332809485484080964647586523886808022489752613891667436529015103141463610653557433590052506884321927219025796228934356397409561109836601341438841243366454045471190936287277629022089821713186485577241033779860124668180038356368995992747031793536108294332135713369750605935495364425638281452961657970310402656935265217194365148610453763201853228017057635283884709927202439697640151685610146455779196817844879045077030639802078975668424688833543228007618850562617814463863037437340680949175714378796703299435809762174656572587082932428793954167613702699500728453537439530345925133644017593874281938950855485733321874008003353241226765428548675740593853907703646642187904554131447200018482247760684156247152450577537628521818056835866231802420502740813832233062302635509232481801252468115259860093505772949177136228970156352612575511143024341175354635153765592455999436166368241518975186776518841108859500288834898778444539680951548861953961239417677445332916975473248970378418048441983594261177644243696664513764511818755253418451070966418158407067727124490957320147575690170671911804832099863866248862118538416985239352417735449528446549321806727384497190720292317190150885941834491702691099109602536638024715858322976512105502508359288903787439480067040462946875715706605968643773750185473548052216903038372406708753472287170386897916285093994754455687386819240476682058080908616444334131332662225926439388022659180822375143236993351220903391157831547458446933029493517138298318143684283337833202144150421116307278595992204724391429538404586624093123358838518683352831722349983887270824165852419020040674683754599150998960985085207199756335555931494509466328194713247767464729407301687160236027278651660991351687455801597557112039563258439998959233493735808612710043315119391807147000787130122263452684966726499481905596825452144694001887659813348477483657948423444647418987176942203430945569944349924985727024717272458583716695936265587819647071574501205879103239631977063297723023791653325345940770121590902626218912182529663656323331030837903989148573158994837507216323279040390782179956483702893094186249330839805447340334574431872967553403998956601105314230352804429928468948497436792588017273061522966517643219178535720961979573445605420671682856444082389334730231302739135822345531264581879776792700729772994118588712123726491372244673369671890779367593793428111127227648149212847661029813996710033414012582751942023461917254854751262066751907661308995960008704397679445592309943344679135723405298986328255407649182194009458173905849637291000477598514393221088741136206256786451248942922141367877929466501694252329562345837060452762118950613392534252145041668046687794390874100818192189211602816768135126867944824869325457307097872084506639289859707412383660229405466438701402404440610289250354692980950758710234434738079431568305206722430652858853396650985653439649664997721269651920773337635549595818834582458280226785370647217729811032048390442428154931027336420189879446294528599258847053213288702605101503492789944354490888452529004975367019586925433154311958737626626179931881916990307973510142466048484462902779286220063541150725406072873226921555267464855604244428524863560245602097845536312252153722560526511463519847604966528353282247098203097485182779459311707999400933710939772402257898673260796033269335631843637496166179611435352056245890454530588448884277469228240078953947072622619475585902362252633138010845793338709284190694955959996537766969414270249319894128275289140766176706845676858085154314176275739360142530446619993936438252657426255710117332901168443066346042484837729703799136830299434508302715190787708974863546566860362483907304978925131645046586546129169900530697321161758682729082161137814544750855882085605973283082389134099413425074916337061255193701288283082444756704619620600830495406756196059024869665268702266267118947988911774079416020358772683245546924231546771941503335232503203022328185838567506134322726718084934944816811470888761046850823030219065968421361682030073744128190676527192867736521578258571742290078268971321028817648111101410646807636952381842391507932532177642478362627823805730490743387386138478537982566661617187973937406797410241760649997832670014233138373246391326775542527372405559387965629476473544338204232960372729753836435607723391096511078581122822007655644865508406752967115274290481333288036159433862842946911122382031521960158986239325344149990515169084680906708267381918963228334101787449006848111438735268444915655232614832281656819884273302189239158164287391817847765900201642685595620612147182212368094308631141867445623221666560443026179835577201135821823330527731987958412343075532884659299743863688724465594862385659807184621240637469397397521124501349832982448558352161886338336485423218367247503110244114120738482294604391527716175446757383913414853980160686973914781928250601025106327039919820278365469539093089746926174104960461149537287233634837954373730262123972839836049486941792668754633521832836893330730159680706109808780224283352762502250495247327878549387831221903343483999946706101796842563781022344698416364259054693458408183404291296432904984164468996383299936913868410428981243527843480815344057448400315047310223118497498756943564361830239295771787716366169129064782944210144445659185631543710587365574457687543793541438610689344825852750838897367409188369223489640452026218680485373081665771206157494685748148647761956520592796321415296702202764557246862940023555199985276407084665596375106136729847781781593516735212683786777594114210833678224823666913681852797787241942591200363296844919533485149819679759188598939490600128304698893378336018556058412873581983335355597788955439022339849413538057208234222624533737448510112413016939555208606813919891950459449229064402025230664331945782992153959130740098268202740447159444333191823955094425812218942372259309666525012125180487040948957855740516882612489092563024868981035522223411638224954071201858994492390265172397766173794560454884718481166581166341363786602716708505063598943999244449926302729758113039261613306581291159769800421664428541752303728404541734725371297091855695788231634930282079018423730832875301833250906454274063864231709778098901228077043517145945676370403580142076540653817698484271365120982241730753541886546149179074406832352193758625463387380764442081497777986255737186474090956634450911391754416731615729027507718500018678904035644567949505423241281531997245197792380375554062030086178547422627287054907870762629158628475593849946994143997983883754541672975873567407806193729829229043981634206023579919174059672839958103550129096209111414007990857272301339017613999377613867943084746281052238406620013795365768484597089507301778903921317212747315876589388675630249462752176830891814267642763661764326732739469619912878737882330064758963682327904872767845823901672325645064652747850161330944602891632291872809548801324891159793863738559565772235768888382159046988289627413799281126442465404414297740771263152635600572218002090408311925952506306405913351319625527340435551281285075390416172275647940446385303637830881072556214409333391616856552277579031682357793099154000999332541090588481904944051232460403903782079517751395445106842855480314116607350559159406034400885580304317157584077961608565031323306216693425044663037823550252363299004142756824895069564902006183235104042752911414937783767728903349262363253724853803975681439068206503608781717402655843866030126586233472686373272308655906969078601946199217934996134210780386477442522118183468533083256831594282823162352514272693387219658488079613081554789829265550738922305105931495007025166852831785804287552550428509192493310412800695258113479970522729025589297815918995151653583814787574451782028402588655022909823428542390768861128514763645667934700499213718692398532311171184733047095513815695943596699712345179023941143786835649907293274713522039876329595810360621222456442921070791197593780860870188558270028589001274499423550515960599134971508343551390344624625791528242822424904760423101625018930538941962511736042496249681651484560553369054546097357084328063186151725617664513708144979111395533086947229252256795824502395826138597039492944784297121089019369386554722331373023047590152784225457388777586307506228934812408070077641150858953321565437174080601140975900584356018474273468978981314996415187104329030128816876443671147563716368631906482745561652315238213734507409143966346370600271933614349446645997830911748899251486347488276337695006683118379481942551683369069939540085848805702473029367865588684867680401674284321494261163774497998276240394876910532031728570113623384961469693588573044173518255911318187959702479705071617792678555575564637123822778928426779055626461608804702577495676484845213921373295797407015453474248734448074764677604270950599125737304873336720594447650482242283848791081706928719004293038870216390260244048533715964566999016312487456892677533865909935501525684999121749823386252169199852103277171357353704365981447849654270970057598290607100377084421629278977130058464420706300736408447268328108768414864474814779377615336020710274285376640531788154560632859772500168316603325032819408617420163801305119169373667862950307810251395061108453833727246556949298631462302209978445755523237726765734132985562308060846477423770688546111731747721200605369746879198872642757653318384434535952314710012372468089090120850502984742805981672633547217813762816300599266469046298809969660751010297906183004482883829171380517870130573769289091826099750443753671485442962991478701019584239428784113722376950665528618231851109085906035828178025862395553242511156808801587741414569522503728258294219072159441085949604435242709584301719631706052062867119712645123295292653156503686471037280864188751422994142668045689944819609706994981471020377221951870425866451087835857396298222133633719411664608320637158506447096281468973581136439995872746086199591309627444779561972485743213346754199617960056434022232015477302796186199649612952979457644961549020535058906995698178392261485455113624847307369317519270098079633893104418605477849991102585492170359371932374378964591479525751326559054730305264191870648547084253525615927055533926806211400102695236392738165623584739073747982086015206283207278561725899896265353317402876058998894756876266799444356878288063739572948748667934509286917887498814921325383409948418405084002493490823470588432469556381876382280255575086220240322074994412004700502355883229237947772796818878879218817334169160865736433803985890574268074961489459004740568913880866718556065547560397727359752987664744440037784721009474393613762162974223144545435748459905160328310404122558756250013469350934903297410629118083497426347217636774770340075573912938544861195995819842628109678379546885965252626667257345991030653879595623243559689945460347192774269816108319525588931451893195038682845614823153904931948547855838664708344367815584712360885581913153200532194188958861683081382700582143689155015479928468601259024899371949320640033434049734338814925218512342073329014151513906377485478867653267011302037411229256970516158945501728471568323805100746770628008721376466206574834505789420780508750152546638648693168477650517471319898689915910549957177098817101407735092726014460146639379275908363937955528800876909928366996565724745468398876446726831153653847609863986013882016742180821319555096482528750449178141469995392726825688300792347498664890126800077923981108158262562583981852522620482691120749758646278768095815590745892209175367314700472646464547414967603734299597943326774084081139660813535107868982988399157418058745498275740502495494820998687448752228345100047716927320718809166171516348058100842487017556910817117560997917745041739922070504130729803382639556327537310111515776243541744864979671058638061370350546950609281309555292199880040436974828731065373748238749854132685913892879631904810004675201095612027451388066847039060521448272017627692638881328023378706151469392555244718006551643858312673681459917035173460228500068258323354887130476183876957563794149302645077963799008736699294495685952059256525954514464397868631247616551297717098165342686388690952435831419965861138625912511559087230439279660101742382155423650008501277119314768010065957830838734631590212509078888353754154666911521931056496999947479475837710051618540288685809424176388402653766015551745984613645701826340330098946443964900766198264745444921622081657624454557194893367034293088827817002771553987890880101095608043492827734112816015261968763078145855841092871932674807203440755033177146890422448566499469766293170702315404985377640248795420418318321555428578130818994522463729328612195982622580206555031443905277581998705124978695478633460554156089414165038334396900793348232166692044167401074181857039801671037835069708465862104981744801649765947694354509706509701638423966457170022901219126059544493884865836238977021428629509355846523484717972986366403151178983266026100794020038729623432122141856419132745130759165467058549059454694734444774857278096838912936605074778503482815083572997337062210256937320145116763638846277779081878558439666362610325744194756694314727722321908020113435723730433959689525585425367752746659595211509493025253786388585915127464196724963056352712305790516321526883378340979657925639350829987230385660244964106262986294812678809719747916798299521319894306677206249210599870928391842242512468733727503138677129284440024000799414299029898698324295939833908549968315401843586956223362733258101301264074602090215595890789179224503098560455093922996368023676825369392317474348633608571457039583096992688580055007177830475329226057320215570154020209514229612948704088479880482293337884846983329881850218686024440022935834371628625154068663523896097910281634825367384051929121935134226359475463349946698062724846989772655362647350900402996509245834221485356106733699500158828643850019160550310929193402058653268505755824936067127573866875394342655053178010535346504031439900050949413608478013589801648709021812035288699091424664669344376577239228844285648416458388414087167229317972946956127072389032667470309029282281493750129388879915886248312848183493384510713980826651655582169352834179385782821650003014294013970055909460806874343957131916495818328506530941215062418127897500151026384160204554582195044760727573668465722366346025177348060107760697863882742018785830851237718161955535112743638491232827254897245144984608821745352013230401899049808332847964146665495703975977192191220317684256039405442442525355669249510258754269510319837677853829049299976482921954634959217040779212013988274439368681193407281836091139957624216327530509699127189935289022126999721975375110478526663927285348298270900680996427345991398376082214761899132781031891284894706743484831625563758355677984822332907525206416686020147999267093410948077034480989204373072655907787735076348524638284250893737720182850744110593873242309289483767314970964499614819381226864857004844904725710044140830666565797714692428432918784074458596115713681201889200622320493380246035925446617008927036053443315942849420792606732363194640186718445875028781940299260859017394681979824570716194429730524564727197403587696914828209407724320578140840744280071314548883504535814329162153613319320138445730750453026536693795740536585010626164019680493040009401353635422664994384941306372114995067189218496217420170495322148351088297022093898111957724315406356606403749404819698201929696779729001096573692462797213610790346487727347378723660209902263344841187858560713769315656825834142880074946903504049848877346535093455306421364259216473891105751924099152933097573202768549083790156004577922925802253574681972975354804897514462727092343940797203024926139179625139524085325807118748057465064130932643560769108630851249063213747295620392085275742461064638084144987521267237838539464435979408927671061210524770366833616457127705074395120801051796761264347675169014735540130727648723488577283671256239302946548351002721992760382475792014882550971688823074689571523953876742670203896767097483397673517069880677994234878126442279870501983716407277285065752621245156027270789181191060237228523048808630256469430573354454786263355867885836307306484333937771407653606819579480121879964338206548519121771851970322573436149905883983281068316174626740754483148655068227972139016577909024149728391271558902562183259594672646547290271750010944097651137961987926608516588333548005111225415841854905256063998346684549930852211695095534484800965473301919770988902651787344394102288240518083185755418993540474585105638200827920865597897980601675358659593395231318707885930435899255168176572511046018205333783573347596532325794917267869858483874582067714956706515613495515483239715069188563550217694415810746352411120399843778406484101666538136312917184088272234334770273012681925741429774705505093881865128734796617002269206185204262184932443552505920582398505705248428424600251107003990914407216052942497720616861398213857354999446341265761095770024851708196248808261339308187665790574141170246013671610407180523483604990018701143597300988444263357272043401082810874508698510618168518642671927025736625036445681919616547174206869281944455176436758365309733062369231548010203853964733178694449312391972516997304864837825859610775251164558153554058312153511955529223637634008289713521529311236870424178747840581791623276391277328423886215931553401357689876983273076915973152123102705351196783023149392654717489038795588826073530581790705568520352472919352887863219809181643087436882985251204567005943752429518895696148838451526675511888216646523364589453938675535904775022247010406622496183617719982662013159797629086241226128444143287955076637045309833343625929689565130911492179049652297986801815466114386293013677257591566202477607497708202210703116012972307574042913721102428882667372399314572619041772511010529834202073299713083875338864642120018283578078681598491260499032625734642125195753673254579941469322598738890115518221405276847911035472036909759105530097201334545476107406259377792024787315244700990507601917877465269963053888266283551709375926119504138018495304644273006202714222244973852391952170402170826430822153757832031749826558576227236234887476165060857577500361301303010891250358861677232599701370461542050923307458873833136379459913032436764637857960431146691369932512004149015522728656282682600479616886534975885716581776765377073735301192427811345216070167099217066437844899191068377046684473969195344767079077666413670721025931593427174278086063514773666761574032794417012863372925356243707055666040266975372798266195872988485173352092791704017872134336887079627871204532435851877370195581103905053700099024553861022499391605595992523252567190716075644067439251306111528195545090858050635621634513409696620932758006469292447657222519998854432043099873427814898684958185111250562555077080489487198805933206888497817982845200555883350232090887672056340471959328922680650286005385725691364325243966724580439580032232962538073008820358367183909327183143869632697722938654562722639937666051488387977393716338818674568085152991147475958227428997528593273754006787526114985517096447651540797909604336330785608500429687607446205542240145266152664599229419677084249989552803343404158950838603959031561610401812142105954886038663771959568741762749209115247308538098707562352307456220976975371143389107513297858558380842477711706462240652457252495679421462757854732439942643456038193920674044549104250768324908464614098329288076461077648012096642925600167665937200345571538229560672012593292291374617837487965345581253200043797358953607111677550861114020873396829043962346005300969398604622652575601370982588143587360982712971987093910302284453659069029099859257582497880244355346356704453050921446308602610473951157421379347638989964939908335563641891274338017661403205544336443206050215855917389159137356206568269035909288188484932448428563068086389724054373681495624980894520804953879487194465708910472802182914392193294433499775701298968828073846006735123704386282812555514347851166031574211880394660300438140943679291800529688265401780652377132947919714540752528174757315450901281705258800007762499196098336578750089923429243900621259385814889615159831791906567864977534706704674475166071217072974453648121602462479809855556924541765224403612599233675026581085921442241330734896214080613417953493664562552910071964519054078662148093578321748910199309676122935985461165158841121845373196494607043846426999899179122199793068091995397253455312824052648255978965965049813285414972022716560067652660633295672336394342965164194198661890780567313199435894219898522770104716271967652275748017018834198087686590650993955376340105218682004889590448062120804200424550988047174306060821588322524708368523420833796589320017686683526218742021542508345487247797826758743912643656995799365435920074959492217973901155275382953639534201765751186593116646245082222408741485456376706418349210438760506166156470395787331652313164459749639457692658693084223643369887617433163633699989789926216489098480843151460044825787240238350035114028564098122903610251095545926524942378996614782787969915627261494380852547369951772471608500498831130504663563330255682909540536886135305323155278576123720093204031090381427053578219794387697723446021635522653186401969972269529980467376700358130834656040224335215203642316177265952847801586101145845727685662355826984440781100036170761886237676583842410578607510675102544771083138678483844906954824997692567378834061960213994084780740054189044242232232555273820182928748892948866935726271442484889698083407975286655153553037937182683462581162065642843363167608456479059977803690241554715970644274234137665646630568627990876004033112027803259671059550980870163134197390835724249761942251278786871971094603578197863974081791738824015531975540558838903989435486504697948462833811007926310760614575210303828026137320838705885771348493179051584226044576563112009978321632826881524557616619456898989139037700640569193748054974147144360159110610296214813328115244544491352461283229747260805845541111196513501198768348996462279704083758937111007100143696537956041181620861897399601571110359794697232062737615147740187716247888307617276563185653768165283273769747294988259165259080862088149671719464239035102630943095001368143864831520272973548789195741040578519452681597181869133182657101894063148018705942372434966352132596602361783238609002408783626440143930791246109557822864078984193018259089553798889998053473420710049686208001498677392831844553326497036872395726539691620521931263052276060110353566934670155476222648195635848904914553701032631996357296800834639455602116628818643854575858910075432126707692754501397834421726079763627745850416618626989809442917129179030454576436899571482651388195238294880795870646456651606649559905923064090110007526735058758613930715655005538273266380208598502914651027673485327337531083879958229165466417104970465040827486029641100343658432193128193322372642965909438728707134939758666342712099727702970519357283170531438565453758134167233431588576325577155790462326014863493350287686876305412732992463888428496785954917705613985859645270943260864858601507510950226995788446467652612980886385457657134318398455219004823301666058783186946935672560351258497882687511196208587213834091574256672060849289585685765141841405243145706952244420979097737638895584265592756922664908894696373049092569772546989073920895664912129125016955534356658374578582422169621303747744651823671903501789027530519749716949064152098590208706135049425793022043191830983072718504474196280027333537987011028887064072576377516175690871608408848817397150682544566858973101422309902306431824232385526726893303505473997269559534958504960868267069166122937445418661092745229736767905707395341651795143967961835885658370073485734578645193734535783351297606931447149192254697401308532803962254837792181434645297105027255298293119088034677277328954565766212748716946212935035801186371595953173669387297691925638471797641029995026342144879361765126151871865281635583062386989593114514032979296998790224159626610097412624150703431990477135664869732088167558650818426608897936431154488029068788627068052529377845521328249319946608189680385789115048331538942997894782394660891157239357764626958724370847963149991752760554054936297919704997893371103004357469384420409928009444486619974529250797399146393219123471602082401178538071045191692917159494745759013580564168407275854103206210786403514804512942540599231776055274304021302528048702875455974707935702516923683321206206689865352942315144561612348307210257388687249191405651886714822750480767846600783617212251333623054090947144536028397232415418129600431501195718149782418102740198559243424599375430438874610475816027937296901668181480248657084490995623626809878837236929274188311676914321837321232674664828182677090976156407135771808417790113389514642161401879237134217133179993431602462771832500411557213912772286538899145417498828970395690826769517344980370901086482899560728357158002913548422039913220431741792122575260033898088953917526910237782804244634961130038429076931486806947586100699051582269256428704306477001118451278668112333592545396111267212545524139162448241107805891826226194149086678148658827808211625548603504325129213207453265525502748636645321307686795723435936174942398075430490408881177948481550257690648828847074224517187642985420739290605843881306888552852469929974993491103536134256569327237293235592030618069129314812953020810332482135233200241955813029397593380544734606494883447699310052044718685215417201732689433452233218064360342938747613181690645496911379870043672785824607531846073901836862183889893495971080516011618061780149411095992886272267259127310993831497750364753072529920766000028857067478104729320922960077951202592383235718231434920270878266626046808431497869250689153469364976686313073297521130224416928492042345003948304823612156410507721074063887755786741934725256672100060090190378302267360741010125499102067830707493446430756026748845907999277180048190465957949286270833914593056951008679950003832101715003884262316300714225538696308286034426280012803616441109426567566867431647589239184696232258579585149013588377001558449395020763356532874812300333134205882816179555492511794529491792063735132000638150395240621453022831274236920262541588236152997832666607528964785136873824900526275036577556998931603630390810499214148404659902638274596044363146340256035720720381311910176119855809070993091561038967422996104977061993307422205417648599440609467859960149140297610496394006323885671931904062404269767340395034623988251894411567775861958214384578006280415919611118072859209723135420594286633119132788924486945432874885481431345659005112670388416096084323128163746656227235359364041979589749909876084388862496651006759810934585236495967692740849781462639068153182610364830099666208686296328893079183636267076329329981016692867554160900138208269700093998451891693136292728045074922986087100342662113964538115805686712926311209938681811805726434063302338378380867988451161443686758189097346801536150098462428180270151532559616530399739915740348651228309506204788729983224419147980418735855284719536181752200006467020902437841525580166569145438054679545811039583264812867673917100882389459418299724375843593101174488397875911754962394056957839266506187828028190731041922215573095485370073661845286303560374088591348782678461101210305990494435070060747495252336691452925301305814219914874001279078462891728917461923392007751796658150121359992934454527680349410952034848245159774548840970660706674869006706948952839730960868171866141452187095002600206082883134563467414449954134289947881067488736806492258487244659852644296357719134242229481887550617223112489621407831921125182816518945856146492432817881799213662428520552813651558282799807477748333917332244782845209140664126658942542055605888258367205168404530679898747364435007852341640213790295352682938277018905648338031002638801197871135407409655583965291410765816942165369803065426101099262307589570988330590369116573105004831764963947952555672973166760762284585343022745096962234429060298097152436370186002477366748748790235391117643576416009122798708804599361363180283242127315760860292968678053246895342469169754708062225007575729024926207106334300243537340042825943447002321082282393083947727750897006918930669898381985039368509336121553919767944901619495807153490697745846453902893483435129515068867626499586348533749786573954791685271708592472509680176730298850361166481123219554547622073568585493903947780323599368396015282561606243834098993082127382400033718736508632003620259291076005346519546563839296433932106624205814969177008259484540875334855946265222763239181711613568377402002717136534893349395330256129563821983695682206475330620624780240921547682507743081732908505223610988524050322760734716705857596852944389023731279639103285906725220692948906689266784718078460979002667540760346498958465514954210304814615793459429179924061690257252471027953235300572090312557373634287674614540613963408254001960667356334133483781590406240539009512437194687444712651587700696507892162896920240633669260987503426825483737033728642712123308168287717468419838288729104473745250205994603537486472287933705483476345638039813306685652714813607899282585809924855205255741214871647701625990258255241743314940347028909225238666602751019127241249625180457411818274304646393809707570737295460431916937977555061775406922843285441054551286139956194044636207624797098007002528849922958357443459182884326527073169414850750737476955412190851998808185647115139849693688801478909176452567451756773406443544356050900403642007567931706162198232211166384138718300438282532623307314451732331401422399104348905245268143372754641399996421143445133631263483638669285151005783846610387986733188193050732243547371037948840115016268304052431515719111705643624751052810103608810476908247297730827263414412610959415200334257649048559416644894891651716457796499258216381147832703334013691686978700618522790731744420330571953610615038743200974035978778944960667074667161567699607308894271333107930966441982773442646091768977512101762824865893600473343165526782974768511456074922517316241599071145246852300313840067824678123332977958065936797876551920967545676301429561384632811213394280327762081809141701326862818768135508285266560794829235235238449432112185351947061712145104183323241945010019620311886847666652411577012580948608119165497744527833429926939917050812598367808836422994252554918392383367332228223781325762643233217123619887408849648001465046937860617335905264413037583369972046359199931559840563799285623456864663379467407348162804501618784068370482737773723397746150933562758425292100872764537201181466772603373211186096653492084734743633250927885776069925425708851250253098429912944174876235036121859981767069866426058036855852281684881569543909985248033716585593288278528401726194151998127076852245698974527899506156471303415294379001899244249787515070415763495008383749978986216341270349100547796580324436850018361917774788725105581792400637499494387082803182378064926570366335539984579902194968989948680313795231815320514738245944171194905123337925441687535978902825701368353709620151189104080304916928180644081333724221723358339547532684009378054287724036903536971832093460488215569378261119548250644727414918490077353619077641571824620996034282523286387376385229502614794130781853839554632494296501104849420358750015194845287490854022520269703137897005648006152171251519247021783782400295527534748573177882755332886383679214156213723469872604533662902129042060137233561956844733183494627692390051002885447551570624344377338481261391617192858256547509586407254255703792297767008950041391136367305982917949340997477532162423386849278622800898506920575814828917718312307418577600894997421298699940363305301649268151169452728644958189849914758026308833744285065009736373718724564881558431466446206859561681416274867193230069881186716924263341675589097206770495327691940010615056482228682521148795360629857232701775856046329460435576133679238316776870204335978312567971877647316007708635393131208965678867907694227339458137514142751965166839262028076416104481243687490470614235576984944057293381567725760048590516190060732655341155046806461123311905957979347830725464908723537384037371634062384070529495144093869581796819736222247299640469358868045200160235467726818908286302956054391810171412775756832274841428841530727504772819796229673732804124771917650830871441082903513714444545210882857399572554193896303373522758921594179762987240131836148369474126606694205357666715402031929116836553870162829300501413242729922559192299687824321260518803695899957988246571696578058581073764362969003666342478020687130915826105114088585240663323471222180574609808043372875302303599741025741838371387666093820575798372310110965980505179810457494359668948649352075720398259035397170660741247776978985425339171240967272860263385988735595145863969556618395759168874415523241483551079546236674660681624263776312905788366750819980697785672975421291972145363542045239925575026177055690839044847678407127068495627473474007132984744664882524849653981019066233453834196558004548136958089849221788453916273463671821359354879506918510650389005416182888297416050868721975911779186658740430954131694194434516463095961169513538284194868557084781108761348671405001953484959132656777645817011334639407253181970575041735410823386230653174050545628007077963971221321644408172141942390246947586674357327057637668561020820142459057442031789850659541020940391569128592086608985139124319282376440136233956359552086704520343191614366289273929844869668473401658298860134760634177016022088878214088775330797693044877787477806716163332290930300826943961250511712524274698277473912501291357615250812974171893373385199905887605534789656565968127711945764052502788925559817935172679947127182604032741694006876560301511291324194481605807006051584215643823615228550285655616584417755579829319020689586225473204362608981340975405243769304070207233023832831286890298953882754395569962484729751086045944644010128939615824216308274974008889612986219855976584865550663332930217556600084548838499171427801198069875427745597041049687403853897484700893649692447380750505965891427845224648053823945273904226894842241123700523712547465082155852003581406284036099747949355839617033219350616227030071980150949835439360992531356173164361614489953702772556938142208883096918665957426746925749129992252110159521198604576825961047081936494613234079923429196789391139287970988448552683649970667873642891671434007007299152252277204231811842011539723873125689615372576622518296325736720498266112859945390056001732099735437242774704514658637106896750118010506842703776283061619678147342319583688152884295161548355052542739633543670523954264129743188833721899038893327416291904053231246337699414896143495868174906184379947856898542636751175278063979401635286074293247569150332826361848799602536385262704552612943567997540231069281500634936556842377920917462014308424149422091704888128022556143886778148903496784560288639970710564734195047325220866785591292989192963372488096440371948563997499138836503750908269761582647155468344291224653162256117278089151267834894622488880563516960348435985912968863153185652015108931188016775203338708829524133494751253102449259934350873488868676473138800685510870763266671905449265789324626335694670070885947192702726583669760631691706067512179036031353500655020770442338442555017305878475060914554484378677700608981915986966244512547984646870913496047627994869503134954459667251364262526741287615199705484404859963472272216282070421101478051915207977902703029443096102928027804586931868458238242967435052590365306473671224377930576870364011706512363013482619429917201511129798417279064719091098618063367476838655333999909812048110041153950498692130744583148920215558469146735149112281429020753857322578008116282511236078690188626950019900676724834228667734804314429188728458415592466941517133182284293920324124060318765131997901641875890170015511136985167268863654621515970100371493894550740749407755370761963013251665496652756471409474152314462747065575103945731792649716821554923809174391218724316168701720240001792206093362636085675159941709688630371788967917928378936926888898406140807221947635373588766618286907945984586835955212350250727471822020225736526075271425098555965425225774916645020012379906832079951338042811162756304693513276827456567756241035422678568278358720747292065384646690963670182727669889751825939980684719224433115352053145960000753677227903970225075919456969148032268411732061120913748643680628676294347811247706402539825038243593413010510477067437188538496420505303488466601187228803986789677397652758042715753266784456702487178447837561857821694945084385319035112188181610051528307856385630319547874674963322271054952135650540128633161384485342450691077358011560488066639113245862067003094052091156136191377983389706539518999837424178050333831526181298613772465309419283871492456334241461579037366208611373172801704828749607665242698164704861890949633917118118420075014803972383743882135201846619949872237250815045719017390731016243362669475914432798574792957849537123217843422673348914021474256660581058747665522129949860719577878269286083860590008612579198964206809497255073933198879063231504939789405700796315458214916573939619539023691414947741866386406027440414068738582249875960597039866280673739700592542384564935617630580642722501015368701881581081070017459983588690340611940138000042574437487182082084263627684055345507736827173219230351412231803052880835420633449493556856539421051137938277088426479848120994943884793666733855327350647976536662863694390803072902957226775262717342875162345671062735690137863930117299664651858744076764939609801663826855705778998759623560637138930733013256857744840836171255575484545010755515592079909853494927222415113307083837043664550529039488817897868518589725714333748495837451089362597193582813710070156060865664039534228338989624579821165439223366885468454147732821212971144776339342720283234978130782419536796010072716353415084824551205820112586120449475168436375355146261707146237686083555798213737045245036518849372501187785569904050273011713340564630545659646275762333236339554894334509816796195648659388849494132400056958485893642686680021758565420455578075855954165558267740983524552417921595671140704215959256458705598851013306760568563591150383841712645809880318675030885755271920384319639092529248401560456440069511143597368317519573453499475929329191253054359907839368756384984850701917595721813397027856091352015663501907652786981115703263272238293762300476759123352585265725775025779543060036825231199318853821817098513560963709294925652749779717868934384288782405134172265258021960080896602685337121889056383803856321547306157013761915432947966615061620850640624541169420821143286596634311532853165934142059070704509912557321524200003465910287863364306274066862965057410945652029798768042560359341164832787522020152883672358089251677494315911912014086888446747520647720483752402161978032960263710777536540493052284063441335650667872631991803183536639566071220261990827374951003699781028010270271978417282833641653406161487087624077189215173614164166465563249767372763984668071823605226214512753709701347800557678768829731977156012888994430684785514585176578371567744565757363454979465466867721840997816144459881607358011700786272264439269718089471869031680280620806355753388047273810717809479672770236505192276779316669888668636213783350754513417571849595409396951855334225127007358220490658778912955311648249733758566894401962148354084797241375997297094571080237417340050324637036919313478427404957724504550678435182692357512858815213486342217492139875343909278779609524747409644308251494544386499760925075479808600018592000721529688008085564998452203709148629854410483141407152941307014453755298112866120679570303716987875818239360117855015996028950110381905735373689024258925029605505423947438763963467625253972422385257378351213614314625584504337862860642279234862793712753870178707252651725757910176615064721383736216508631967638764576187068333242590830526283533996951203544421655394711251051004427309482957818561203414268744678227462319363891526350005837021455162132340448872838999072338635743318323829100538944873742656266368255489312185706216359240020215634572110402504232987577173820728566750325085210788112989105504730525328008597280069402229395548218831639131596043785851044006396076492433194801636112249424234123912166232191384706679866814450709442672083672661412677545052794197230276144975555033524392785278180017152653185360137183280024169820009569354925400134144012138916837573957521239342880550744335480583330572865614045998781703370920131924740770195488017315924628668418003464252466869838233882042085759391713801682025617737633830128366530141961200140552070168786318746460769636096679125434919678172565976185140180407825059392187902757750756783699237324916087913714300233070715534673386777732972846629067539914996424416099863699495569929789331983098578449970575061535801610755929280242219517814307598933990681575998985013228881668205226495054337777883587696968376158324741279314806834194966816530487758955036253502833426690939477686468503355721004518204719370484996050988756468570057404562316837969118298258922986151643846992176179914623533098698669093144011427399364434439085786544133615651801150998867144464104627643466581130020338820092305298066322054509432852253830774005991870630765033410979411889709705338843716251316832612429087863746263558708562809541621368366663975562820315917038310294870490154730549851612379911330000676450676664267089911925096900480282178019733338506131134924158394568519642998443174169547327800054643991380557685597582797109328500235696000261426191670195943208490838448534472665402661663891523346878625747775836120257902148398992899100778690519125983170389961315515698395056735891311734162136354205277456642707025523585986089674257493540953651853391451368744314091093967034534992358348525227174485308103878218940788137859808628743007741005145449289439181331792183929435052462824068436397539030188267982361039118783988059248525309547062099622571030077834032911941630008670159032847689921226315276793660837311504113611855994138282013287805757125463386338558519537666890222650929845694634549498534047439234721698394745018420076757016750334440229258454766877371789303838468206564439790461549428884079158743560246427976149629611493056884848857339499500301878534187940438693601354546456772896696404277966437148276950551378770673239177125438243081727030453262776911075621230274611243955106950491229158817618787773955815741213125080586957965899059873914828730075238100579935054402344717796005109291592647988444420439977474582500006054554066696716435731230339821416402237706548909728693036124734688694073966618226743685855047307974205951477012453302790254993691065803410448699161998570644939301963183916936915068320019380204291458425232621000168189100899627173911498018161835831418568730253503720288810168079959441071407867179146196568518931620602119841479073643076458242377484981523374161261032858567082618573133699726832351353937479198231499258346020580795830566942749370114804741395404501385213353447454502896417831331764024578194742105449333314085419852555997558800543913045076094022366562478978393831467673133313041657926429760306262979631320782013764230759332292127875560938105385856555042718448922064274107236660885630252454699066087247236707248393073391090275351983918036741583298727828576623829340441816532788523443823620525151656227952098644712094540660044190924985362427162443021672516416756680801891402081140132815420936949993305149401383601867711490769923815046765817282637428200463960898216407796168015461498144110716723114857890944725204744049163449856198911806563760199623848860345381581597055334922751776438645614569827046745318317372094982924614770850443692112717446743515371999565214270001706711000452092384860655288256666599924959905123880767549588850559753274272484376859376053226741409057255335140316367209277859631602381713330223019372982723665744481133561516023781256185363621301154139981599533165908197304322604999027668724900408316494493646170211099139437883665492906016043656656561467742526155134394418155597310898353090677217942536466401182977236062799895982767930264944462459900428004445717762458686387270427898722266633395446886695826152134614483678696687980228552593921342945206202115571991858734215329324619438477966599942483182065733317076466793905818443439832890593804909111112907022617536583598025282549943496653725166987512817947490522570855819512144061207052341629679512822177545242445426898139452541515134303413121739272170733091807086743089322132305502815002134822742112491180051727710311714178533719391186168856088164451272948399399742090994426259111921726173657697281357526964746995408683845495459541952353432595194505767998344533490889357784043645384116965576598611368805018211135162982167067226927535355065459193600029842244287680319663992305356195777467561041534418370427342443342948315542870933640988819095191570341416724674090711042094316987286512201400100828510660225237908631512700986625793525581485361557611423994365372620838275328086591010618338793676597934734305489882389885666535927747065763659217570862491037527066934945210256789481069275059022355881592845639924903982405254396918420902080852844790338063648341610106702919278110273838522235060085144739762190994161598751471973571756121644880841299080927036001141424950070518608376978605132117968087128908427736204951486712376962828739879234523629160415546507850457003423834205844329784493896794165594421640169879321612486020944578867814814131832117174553734887803429482538427053999301612996720994665337293574603101897808199383221759765479853323573015654787161765114264658177560666398843559757421032616232323288260235737922937940099954468145759057709218450565829217784717560570388806132635798435166669464239866399994164341355258039094162662143897180880818704501394515140316821420512498429355596466454216634498583417456619694214415749380006077495031218887997518826079767985734791327953474618358110398337901676488395558725220621888782469444268654540801075148134915032720279287488937866870032260504932214657444243202602508478177425977748313461395606899891451337704312658854151952219014648402590453263456687608414287516849563080145823317207087221982950506130754836502264951913858912765708303696324947912566448175117972765626431800682350269849470527210863394593247030980808618645599408013355258121617220995694906758213614178155864422284732386122658168329182978930429949196849690350543881850952233961593403279281479613706379573487863657920982176054997363605545275591316098234561160727626026050135465863789188352135367566965972115852501480338979864787468968081080781188843678641539606409869743159769230687639828169758722827219980120894257630551936443621045923536950055058043180771077989882681608675883880666098547241103236553038775366230812334678854184934291579590472929299228908620639882113328962693040788980809891613952380594244318535498549229830517164822412072551124186556819315285389503968372462646994939115503114263556482645767352029991275037507195098148616341652002893191566296387106967542841812515832727748208800780134747665751853817812083981140876276480024573784164383997627675729787369252367016009521253784600186995930768235467807674045698502738305693173844915014818707172473142230692048512193033413097923560219251064857733122424370333932849824173675947506870868199816415498751957267088366595131316774779353667105765988402812088705141589659715264682655604383773680844396968129188196269235246843245316550637968710986359004453967580984479111130269746534060483835578907379133452961647751322499750206503426020053737299478607168226177520410147335570112399940267627980259215904674844494537428183168336334183732700660823112386189290950844169454447694078206312097794590242612758341265353913862100364767161816199200787835834904680190910726109941340414390555734458152689221093039292892735225806517313799900842965184914969377838378643687877273612847877367647658726065469358776142702179179957012987185916346016421058573854568293371324651155274447829520809686873375984613312577815001182181811160951624945699214107186963480903262937164762800456015547877453910130638237384686874281412929947171039156434899986611799038011118652227420848891431831877855323420883625102608381455586634522102770609881559381585185231536931871119736876235199409072932393124860998930092871165614514352280538299307790883463066083389727080898032262396879905943071102547902051959280379572369780266590899412869761395236853004586464833863727063520918979830971199911679077629487596013240689187769109027001847419005861416987473704247221430675352485121747246035652414518111026891007848509631814311509800876155322685376492542744887179686141507390997811684887706697455840775268591464794001469069475701278332673296763956190766818325905660691216836281978446165676235486384118396046358042943704111809664656691075180796424298500528543761697384443501968557630887533952880375776039091226642746451630604523050629336969186381168188931711129916069102241160216957012340615769799264868298903777483378294881264212731798533296525966276815578692566938419009935828333187971982856874312320023828036348212485673178140375953565930442991770087417285504753404270109432979107483152837267981948846681606251745503438271831355678446885543266480621514565318894261495616476857176613640549293956890338844978673940668043825874847864282972024222943003290968136236502787258536407040669234301886859028467002441863445256009814305053604200834598601487395034536393845458269526196813213998705200609984948582783236011806208656725361497712303913666545880002618112080003337005277672130899991382816879518737926428508324972588273316116876516142478020766754176238397331114607312823312738900882549470716781795590822736870088346744603769164347830987228385411748754185177238663282556553595535736382163889019155693804092964949396816512832937338033669341255738468872390803507213112008350820605612338127448728523432820772077625740733291922595963376972924183769400911588200174775805159520063227241459772950853228714866584374724531537706164613988362154988105026010011912761279165892414525971487105035074302207791539286075222617442881441231657974649461410354828261386397259300912299233454597705349851549480855427689384276891641249950015644713093351467064562541771416501352897595256557767347215374468188353931173344577774704198400023520283056157559264580760449094772838970837494071667862200517487453419061669407937904727719187179599736052891492773996369991197653768735340180029881478273569923917849936776838122547537659063763595573941269840484199412323732703281483567793541073380933752782325783442307841245071907761530021545319280886933484462240319307838227345574608575338197894203318396821219045410260348472016669492153484816208581811605586209596165738648707216324983978829352582727619138392364912733636087607065085252190557514821492141390039695096484612743616147143633882635178295184034959896975552355625919061926608758689205452768079835959321329089770612225641133633400306074270906065830647114239897666061664272460457805788997009078669838911744744510577585243685197214445367568606275813111419217585889212080259134090713818257277594948372396476101018127817688629164025899530035579597772943066042411038291888194128775032315736450869146519911275205806720087562306917838036786951777002617187252054696125619831029939862451806683527779350558290538408357122056310731072304653219289188007898656966314748287443320355018780107689958616252027541220677725453932840668204484839483269448463086741873968948028253279068047793825566306168665820760207418844998757776661863037192658449587722304855435038546321235981451969201543125091311771657475551133095313277994976576897940553813153334394660239147924499827383789051030868174400625538637225965479008093324206802214868611686869667376542015111833505859816998202269992484457551154463555377993290225622270932739415540852308055958879296354390786231575224143789176066997769055144779244650979365411144307673537229239412873834935273393361821111003816577905838985753200725240230568930848542370832432127855165294430973156243610066487377013913672425758263191100668055116113243864579342158696691836853927712587158558762365537247756164999832580254037541094856450946356905968827987537924979570888331940033325038531267038147877522571780595623195185310037430541599495495720770155482580081189037522805833527522638044375051846030545981658593254765704304705382134070028059158186519123379391402239255154695210422215566766687289523567748239327937918700932648969955165077953612203876994349962508477269936658721117890196009965503266282346714114859794005075041415249459383098280879707366599179656111444617664095318941657743926732687456095689954888455017325790619520045878806540646160352769254091642306388554594336861818513963356147989886201408305542233204920637952800793755688781952051622164281463770270403671584333035536262699763981668036847161040140108820615400861985304495593956261941693344559404399123259983616199593388436185806019959527915189193253943850223203273262984716063534064166668063253487541615647107681127485744247641633479558372310077900365336576683027544328346528049299147293814239554981284560934445753063259375155780113494319293288260292677941695189574503787806382732925441446203201670384019396885043292092860808772097562096520190676836307366798348893058254374049902483910274720603543339415177932958781169316570280118664280412082537763764637078873823851159897294640654828720541565370893279644696018704940091587632027426231452254794170817316193291214734411087966166844503236393610571946146971172829544657322057315096910425066539922743191116499763249980500805563547074579667014467570676292101180603213246741344077023522260909095602570840991697362737099370983532721089962225748605339194348820554787796912985128067775702926674406173615537316306688352502489207121691438173136617884381875239064778904271311988480508552654515572173633557325700576927820753295460919191607296143572363058826019417439662865055090671992146423946743456249741452654119971900183721836982603320010076855162974571341484097673116349900704776761642798277881941417091271298635380079251045568946715834031344107606613171591165004655458892413636282909181780581070472965205307290360954978050474872567553153756663781420562607222713287061759052192283270648034995361972665310854418142560180120093014154945146463969941574666667225165227845554482845094297087328527330774839598153399883216870752452839765834446552355449777949228029216993895553831111852995321349817566810975901014797153240844540737412085869546073083038913328743644784841238795792346815533399484227010000356640773761773468504008847621593103095759447844812697492698889155908115504910428379373325285575159193247754298258577999239338691818237252491218774188948710439181326584731991472189084145836005449936834437699914335544039294825166813101612424740169805180860562472212618853161634016085686419876210110945611606764508985078014415684639353572054528147388105288969906082469409075474682316945558300907882248505117423766532960656738942970769221787679254505579825610490464958862821306466664798883515388991105664727834773050210562701084458301427620965170189796358419583394315148582973565482251800843068615913456447897522426982419985332268568518925448541160456901716252237092915079118957816525832190225843442017409886962986420619857141630693554276714977476107440188908695061297149718971146131153941292693590547620657651026857083882129273140016485196427098606833951567767529237759963402399100404593940346194982902014956160263827609540205034734991526091906382278880396382380439457705053679567847929744192629036989225549762629361543012913972359275773039247641161792208286230499580630310586997209891785811719663260934302242390908001659863696773029062712811507337395158565577466404634088695451359673655345242244725184484175491578438992323723804348369504825671561523306023649481860229217172512515720315887807819475093871515769188591240685763301018462461495230279538316967376971937482103241714499636873772979984481938560841066588241481328038808234044303526855356930996501422372521119493415481449021482946453279163411480161505324465387704369554963204954221135803448093233041383666710897832832807781669138704817527020686406594007765742274060992292496580896272541373454373501778570240707455978647179044076786137203703880637703990781913722697586915456312661050353357276004887136833100161429768831876842205904175966788769742222410259353037984660623907578250923672963742913196805629644188052799001618521212576679030321931695107534577242532687177468070648580293414931919309993063809491974846619720813049296699890118293881567814856349014370256880202223134460595315647272724420907818144967459277116576784521449143011925766727726835817815236087465245262047551484710464197265921762744187688933952291179379154485918421224015841666867103012963485243095650494463166010821534377065706197536038362574692512523052402293327622411448923254867474510513299251685033390948236501755095088763517212918694946562460827890867585873243644161393941384279380954391889043317508655668253405738132243652542210687858519275550598264515241124293929047919203214543014775834002658414476471675843904981163010901746840637130337314453795675322516072056550789885613892370501886143596310185760680320200363481134706982542914285159767413102462703794186928804117736189294110238576919789030007359492676511995911171873424439318355775151141743367369894094520474077500918433253845301311221090782509659198296140347048053184942346729062696369318480326167229214700216518008585983342407218219204488833785845243284004246194116200412002114685688091550596986947654116166103012014037864262964791297865679228082229928746791403800220040388744915038089388296008213098379279857344521836303785811226615357004298954119945125077795313861296727953214517150556026180949253490224413697583618934379056406871483599141081389104653157711454975909889911389409115580137573738807014819412134051344924963515613224775547021080625770548677555436142635517584979568644766982579275813651932094271095892367632076834600570155668770144855541205379030299143505375163575162552339050136614381384156287045811539325197957177628394098582850803918078692724200367471404488289770617908655634253459162652792239084622048415931323013084631251959316075272672667019986925526600671255566221470510432007175570207995088550304890352267059798718953139754687248860555878874548541901918161553547529313202472132735725308622962223404198166014511530953717783609525736109284536470895378051526703952050029666745788524789799212803257167361164910535380719185677685918095321394056200272229366788033856926109394707248229063067084598962435872571113365183076493391296748982683907138130336617679060427808467556600133269174864797072333419922865977613654490080914923353087921785887409710567501129992266460056822190451753498631103988897891365725393925162660931112997823618360797302651927854205061697136740982738827746053930804975256856659303912445798548212837091106686177141258985414171925676425182859612886883562107156747617020300303111923165907327309533506838182355695690287931364498888080158534441748536274358909991261316520005158731111341339714511323920631716840581930988816288868051021164877163980907238405568395425256052215866956193772331652635844231920181435363738832949334174303284486379427269308456450790790590010018266169220563116143916311565566598265905105312119754652390996328959248348448967691187146506008931794707329795659218738543314652696817091979788770823243853054758691966501475243147835810782495221793503371363228636804467460032716110964348892798102002943214796899182161107358341526444829996398283742101400976529130519130141124595739192222322557112005817596284250288247759391177805419474659263430386626530446496814966381121468392294079106872605197307172573326285329673477506385924776810340586010367936151105367405842872716393599463843486589758119880751626340787361369838900323579476467650716373115873874882823754559733283587777646229619021053532270902355146250686633104842856003854544783474107655446213242357259121126563029060745695879008378555180978311820163163776414968314646480755404980159813500662330827766596305976635374894715422484606025148874417046320031167119527130879081408071360135914589542766380693647770300927846990198714732135823623112025114251554765092473240217559775551280633652973857451778436636823113632649049809787533356140957247656524005741176533054107616703046799474171989347332588372836911007075247875949615151223943033473062022095786482087585462622476855675890780879716427667469993811070318207866945643918378508595390637256618269020190187908828895814820767678389072445453521709462312909563270905927010956383075176693508523524786513006172105365707274106470439201328656193263098390500872365397655004135579702634109448908857588653353876174979878265873762555371807297627572695190655687522345016141811677264794389444605582129525117247990190692503792553221291740243429868427288723307145553000850783542734045001955682759706309337280863394564887475228389035162213543241923527783325496173290479659145783062871376335880434374383106620710296865156015751547924538597070885083636675538948822347255289828164075954131387824766811495844012190751501828182052030312200648507800636915812576628240583888351624763947873671417379333469023391250236301901558705503931065382708731567124163638724800695627093833700262280101699650240134843430242297050289227176853455899473994134429984225944438380398659661202004715613374255040753214092832721486273493820752186101915080186106268411884493781380414205166164880232675340812261377909870194895065545305405679316256649814728878154638865771550592408818401166042306722300615275671657834850065165457561495345784348972992472028935949432073488226176284784378826973564584239205799239833677508070109108239153049219794984138394143290577142278249282177459444854037442655314146680602771787319027754519878757363019089366442874702689317626539255019331029149237810095149395802319958633909556633988551786647767618657726500298278763087685703784917414417413098519406889719415006235886444091784247320076521874540390752311715959754692774990119466345543857472008926509503173003580999331046093429423994436367701352994385220775811780423593485286933224683205941797355951986407217860538612096423830532399473724545854239185313016682937339849728771997585121285148988281404471566120357171676503739781505482016924959555320227727186039769872088662219346428537910580620267075912840440577318197629849723041236573861718428806249205246706353335435769270063735937236952253371016469973490212365101956513052777088058391078275445585719869533453788590908261818068257709939165142621797884137470604393275797753037338110925743539361403975251271186216209803181026582492087851359972408181819421008663915548109814155975406943084937865069371643139383993295126868762316887947660764336114643238190225149864054286517851420397435459532477723025077617668695675553192191525254815680155236109617054856002248729332291631530860179088440975527859343946417070625849421201174826934328984592545185502690427055861312099602556760614319550235039319180903220748159831112811095110307376184307455544355599241565454960664644981351082707270178999683716700097145232714023956996518431578052347293906837850865768511206720767172968856872874586651325385666194128533728124660035121032856791350831324477061870993745844065529129311569257303856901193329294871540973615693459572018686007372919889365037452695711371706027871739703363466293303168583169580274062178665155820120087537164678963092062826901255489328929307900497559687096888349181498883111664839912601596286802526153227604210156324294124173928760029647009925686724382943049862837315017778324751012961924780167418438623517307439378779214403748903873762593500640730674097412339524627120355724806168326219457629136264327080677263642802709137210960148480486554682603112788185626429608401525549967265294751010252516085403960120796916759152827502062933505533987105412228272348001362063912253049057933039582245227798112018403752690609535653049100867502646104698904314130128829177607101765910548193237397589710128218914846603966755436858275938475799643430641384389819266310975243252889477290145089852690949112263711576765006422270329290420086546493522041280728114920267877684414380378134371091736666578690798386889191941067384755777233910630342776051077747546529715243050766781923274850787329772313705879450799685700829248448101998633144815780474529051399770383931383624037253839455262783417740165584347317767715560319661122265847027196002855604178763490692042329057004357984326258069446872099464990719178950413457501936755195840501372129441985968658184742091318885031047592996249466468408721209353518312354650894379098643466563468168539039844925579656451636112574750602735886930719843141204702297353887792344706919083579590160279564291559821287213436022923856381283366139812555360452536836195417981413585420061888198782802058550366210835537680137508357585507205864052959768319604940773689363444912435371711763605473456420744768430663669573123554446482943023005936286211370454188325534985084379793977922016647844054060336135580819198530588096217134767861827864397605804153363841315668184361160457094894801173929604490558787111303846960139292607170980701042107936353555018808946424686570687063669626125236166938997762011631192766771010129073939670163642650727360674344406232194494700785014947239278118870638062136667259646137123932480110001212335364411711174902070052551103318634278042921792124087619323646923046643375938207863730211665814702436663222212961512604690749711725864502180580590632370357254646802560317592790271993124081054331063836855116041901274008082170573195267752779185966404958376683237598639566464354220315447588691038949572434727767880580160447066810096533865947690537464610837763872848599654434987256992757973499951065805721394903191346144807283043694035119605798010244977395620081251961704214776698295741374045947250923441060228652251762083333291166030699663687549869041401658145798172679272000635007363466213231439836453122588560885474285879009015487188150694552955972234236653539358832527520422943502129701828464421597008835992298862361651483170073742043408991592258795133546526855400783221949590592606403459454474884900060173763923662613574338295300150766711035987719428530352933788740773737526239577633827953252985325144510957288009134859547440864252325773650441956372488316521922466496543051619235304532755795874625095792310532125996243671671195601046164308000064924308408508876255322488224545495677571210190164880688282266233028419905194980342817207933964068169955820981147369373257475125454880140884472521148555488741343595355946183215533440194205301616826528185187158182894648724581043289324496993842390664178052711506462122767620784460069585351577320343692033947295835137041885640530074363185796857259867280391844208248301780088339603920323637441150341852098628295725260670295123293780449399418497553902347133235464457763267352178119508294665155543254663994297240965578323717039804421834395998739635551634396594273076736088292300957049707489618455651027366857413160639837626576927087756418466815026918717803256372699491307721909417047650035384094772530738945159876143478490426185608879497961566038448397813531109632374652142341353270949862121270976429296820242352114695071357751757788962272495664452384343484454323446247299117471193940115742431151424522814425640060914755629121200883114663923883432733836329598502028938880462555866086137999079629494516579429040101274707442223265674880605997520387370104134247849320289591723904626664357479537221310345064927100188760418452339808501826788865156412597508406327772080023636552511563306732252193151474296790566612420043446945614977441614748961074584853122630398024715136664631661742782314792037355495397125248597208391127834686861958430398056325029147651996048300437590016037811591024373797045449446762713829873869089737742222524242041218388369229902162146850057552952072744296860021858678671679371287371535416923845891061436190057981283392217580601670068167070094626270127641926644797424200517455675647888219838212885930729769924477454425226649302738048669655469253228739249430421738300364335522523212681564374098313456398178128350453635865107250895066391154558404663627306343308094327348857036261811106771125986741262002641774993050946735626242687474329310135072116098505752412077375256424542963147642551433154615899042747268705804407399179819242853945699190522751102130336449298523570278998402994765713534137309240302279731433950990807869815342635672210827467663719980724606852250542131067118354595403653781347867120734300868038290363772967934128196410184707296225406586271854371106338140783269617138684220748925259461802811319153551942194235685668952884391500000424260652266688074660566734452363465800748407149444657462880083841238370105468099293257558945660985654349173309433657636460496073074076429325784984290605477165432548340406881672592329334478662226268175067445549797389725069910046638035102400784093433771692595981107968803269955334093742446174926040729152287315870871996117338298784883137253121890037665917664342212654598273667820747308357260395778867173777151300091333979419267993445448044175800952680754033028750260823641830785638997240546434796377654651680133220413437590461166243963942167738813119805841243992432175151001930182011484436188009502071816470336576226713531044497765022183691823237852608085571351748355398745200399179043743603585812969393045845736656108619286163363050636078607119802929933512548415612767681381554203432299848488298424292710127289481736281077954099949928125244157630428808669025884971041877239371672588859145638359428547243690888710009367771533008453347312391129825566494716615319309798843243452716065422099505273217273031474377004536924629425490820574504566909299869974067914480072336146900282573424014538079751012357698012880459322166951546519622020575084634906670981964008880682067316120237484094788024440005956969788348508131424730736416183708460494697991032154738743475675165228582158666248681042164973610114416440163281194741589149773738839067454840121763916122870092466079074649243162651186943797069821196736834049595015081027937791046227881221538333549273774077497520343828569332955466535138639121144946964753154968310144841029383400319177773885519297641547606539102827326802923979498789603361630550198082876442687825744113775364371680861444008760157503613887934063313705366808814104825798232988839263247023112670013894284538574196733604850211742737156858664608044509948780453056335740212920117643637816863232445910058329014036138245134665779626415258310587355855707658166549870700401392014858314218770539899707320644412303210844628221657198123406704358147897847542434408752210390476246160439716509243079188175150440678271531354955359664827580787887927057785062790053553743889099251472005602347632846342236047253699141449830549821209945638953684883339575436798795566815519721101387699892944867505457855792274085665782616447744624176571712519597119974048438060184666573884054874205710431044756634026216670453559862693195142662018013537678350948586278628404770639427414370670665138837042978407020058205394319609643408780530886935637393314550052480891698818471624253987537469903969987822256236322457795610349139297412559703521645887132509453325396437098961770871562202588845168415108503815305134290188077645264410819365424721329335672795245043018268577032191551282513998291409754286060024771375763134404552788373020372673992234793422213951311478228510286933598092552883510234357248219780766550290049139702647245927956502807955778349725617258255193745488103236150745251657921786279020592554628874436345169972493088803524643565366009688130847871793032937858486464533664220474966442022061173310616175332745872342248895097961647897218993270123901825288371585348663586786079726785737679156913850617731109877483545177277932073051887341601273632211338953579710767171979298683312341500190818947096659925006266563864942418406734108748361307926493979470977937050495780531309752867206032903344473516631341791510135221781883847181055178260305269751316205899335851651844378338796081781134232935632618473313253009049124548612312538264043518947946122495108415082928707962651309020269206403252387557365064837139787658793179078503085798350901764646984133767294215127470958414759723133017965757854256913907750733548772619638163387121538544175141849246734094900221511440714971157219576061736013158475037232993425331539845931554231911322082840055071827543008926327087131638298702800428149609660395554920681259382977695782832309030966462398499834663236845537033575397834691533811200054859454084293374685684493515056517510444038888454485417985301134863269524506335989814701681558955753040025247276877488568648418866109246541497166905616745690987538598743394415680693348786733039613332563658509011663881932966815962075540541943493147055122369310642467775834455760328637242559004743941537413239225765156755098277999141763223850892613920480064693663098421929649641674074607918314688976700210363960769142962587110670024904196941988994518718070059043332369082629157009636882851190497045631121052760998364331513243440333157312808452377807081929629469816692008140179662985097691334113047734110757123202290584740873227576210792769425891257685377388102743596153281549648651856515318320102081197218499534615646024488610868424375636758973324678788237564091391518617872101690062801182175790441416686278576420591239834798641049480800693547547081052256061927693538924538449410492933979599273935569370297494910465264370109814584596385086724667768601846351936753797035083100954748948200972513106623191953255122298543692042048230691687320655439649116891613814298175104387955117591694137777245139225747863105364428814868306379427019472609946830824916555535049264245094872243192699827027325040220217335035350555447784377252343376014185776618741143633380288164112636262161757831511436319281105959610280288845940285053477809556336470659025910487299460388593184684250544221574735538802885518301632235235659261249039450283538593614517624729554569061857692793405960029606633134883379743026707519477159834261850815656265688969475480872191014481666879469470820384426248108259597617615557226469778784323424648516281067464434025513893296456537069467202987756305295151675255234551779501459097479922325364922818688724844455320764177126209353701614294420030362847578360127922082527429498179562486806921014572633033396011126681038519554419172157248622287296453679453430260067381715589754971072561839745888979128952052955289438870114591527089986609671724111825496590721011860986958875507144307704533717448847953080796567055146477209232451630645654350621610720394943187465949910674284831462906677278611866056790899095596363978975734827159784891981105890285719291121882066111452437560644710570313369366713964022296421287065436733870622828776226002054205477888223571377217285631135520027170163507639202093848838234516758873893426395979963605751095843245317254154036211409490037132199451740529579624332239380877090292467001707806402589497901762350984863180901228673851441662920546646815844841176422195534708140394389516991108368439706099947885158431065354968416359621895535087110956564457022779499479102651564275258388932796827276159187147855271000933984370902615023745121703634877136314201048356014373468229901460524886126838669453645649184283102275407632622851352728103375040840446145196322284434681240531852643010747839671723008022861537033196249694165504596104991454459548102251842390645310434562415995578660853706584232809216934529253125263128960309417514338302478498651974759740569393208527533967049607351258158339996872541884029547700918347321794350415444375544917198511485189130051116953249471328492486165290178566213903979799231853796103594711326620650003222574349351552006252004591234190231661035721057761105331987599150088764916825472740715952097221567205648072773560535400422175225308658056161862233434331002190291179925443273716024977286760703778918988217247808946096479403047582567770549102592769600188235275842193877447869076667540614393738276780831688118383184724711760863467172485770702492764774792107892707019282094594325829523004616464344217634294007466604849874772421335194290788205875464302325559663129302363517013762176821896804886995236608316973701797803397714615691703090836637003125523855993041067696729727930779742254463875033863171893616347462272742511414707055404862668003955622556967571600717373877482070267258174686981044320188658278382875638340469492835312636932827793939768483825374549534436736310309563910249167854621883349842104806100753451929954712657213634443502127899130637699221984734544570367717132147215219457057300599323844660949722639783461247627794319241466455023467496067038385267019284850232052084060194244560451240353096976583692789657755238567493194162589408599703509514874777083907328131817160136532244662428184078000070063850020947799000554671267931178760160679853944608734389465856632761414333828603265857374977438727715446458257056221967708017639358001808777581318941834358220515983288662404945187120724410524881650328571178156528726863790915050016058937176122059755749841816554987242631558282921304314476365586694862456539627320416502298712384504651947492342522335968949596159224183802501548318382352897958344636038626942165868357960738997037610178464847125690633300344961586831614630558623069297197159454726107122474971744204337877285620962844214268338143567901975728756095101553122811705751737663264760121597124981617619558082162718013916786716227679566021434611174132163144020443682201113189140605023254932360092858163693257871773295882546932547283386880729337581262677137292335848357005149021092321055013710894432205316573637724858595030681151797081011139174948656613400353657041302667422470792165651521141483821085938439070072386847811964682800050472753063215434920427168042318229303475711676041566649476282296738463530468290458640052380448764598579321321644731640853868507031282041752735002664398870692213513464643605342707445781851022316213254407453167832658574316549394739344163721280059591821011203237505563538414834190630751045418348114587270616964910176024959823624345015387985173298604441356738473278764956685044961836191929190029386012775397915435879619422495372159291730650602925289814816221952896612207720828000712339848656813200426973167959559140031430515218315935004131364732813332661668854347884603491664617775662324870961544465119535111361741756654679740306830187501009002922221642202050044397554936807866859815137817290685793725800445151854790550316721266928860234417659678678704108059897666609990419030268728889360957857214067800952997430028888302733222820667533607452292166746579569850757820158201139873044531396031887012622638088915549693966902941052559154278893800344628765022382435391377137286989067966923672755855255427840624177225946967114248058923941120644554279502694503501881290055613995771314898780030516404707994532013041862046156544192250989704788212689600298495138945323672261604395433020336461313714277252251039363009209180070665963367309562381268850693842142410035858896892087319692809919501142684113086737117633760181087258781916610849041514092917919706067498562875003998197586819283626194195447535091666441329452348803489135897955495003035583286054097319453301293938421596409986844112791623152898523254296108684823167028487638042898919681569038686517155386014713884948269018951383946486524335002571119594249244177355400560123916326051310614150332599530249552341940939999932425109157516637022230337969474782850862958120210394946967210309484176455328151770791257665635351502853666461120466190098679193712339863060123211137595829222344615174356288960631809922279517021885871598533934469889847895266007477038787917946485198037736478951211941828403542974700120250302710572774712255702204930056914339225351419721901753957877098539074920584772333620294942576641312160272865765127811652927110130892937292644222454258392693876249466925725767941352825748892317100645202467725544157128467653078267177427256263461717851700928995054561282660101773095079608575946269842808460014439360171738922782932344382124501353885986393382160377199965975242185936405737425221612902301697690051799816788732842964437836232505001802319451567622493095422395947777510579739699694187848500734777589233022570983966260657459565608737234712499502597560881396122943973441542665671053802464119663538577371016934595192576882090606850084961910059843499757625491845200205653913262776242742481926232759575454837022414051761946847226247315073491130387260481885063936244541283549926560105738574780328169732443746285642501693319989022373211609227514631392102113571368863027585852295313493439654050880584836217018024921377264929110341792345041992915647767394681287096776016768227863656313205639598561083185603998026672918718941190150231182914665463134173512179673056380041822924669103560957063877635735797645006623426783225519234119513362677163147828335677075746875801796355701308318712279824272245275808132038661909769512072976063171085438656412124493564912977535534510778484281937590315199878470850636645362169593493812743229822316312714656291636039186470812149812160434321442644784452532264187881419281102903815874855623146902973369471304478695355775120710675850680362680741438638241640988161315949102785193829149801969598727538644076563580011433564937546405184694035549525137478975612194690553833871529015061709693374224741603733082774770587783505351832888804809400834410109086939805725879624507601500553819996693558317511675543337264648568240212123712838693653499662282058543104195364219545537430686577346083866558317036027402044800788732407062998425244159239272139523573873228384579487644129804367050996898900966238377232564036497883406835431106445277730370295018597809684405793854499185031134235089317625581649028424063693841530749093262114654876819003319761121029480473700327389428152052369480030045137022678909340750077741570442475999361677332200793933107042110293924285408453700329460392737774688871341838871006517180053853462256404165809394843254824220413978236390533330135681007216433156139213505353996998556151836539626197087651478499975730832019728063817034026214281862284714327084882401072038846975176615308879147121682973704269665557873978850187950287038076290943695260597966360032018250247204048342564867870456725999093465215220178800411607285499747191743879820316854972430320800779480195076507452730376756572121681687049294070983834938014777910866357549082144963995962048213665768682134107644394702408457545777990939383715276224149247949967892551549582549843684965727381557385316120569039140326914424178683515396131300234897548826369926244819412743504611332440115114720023763190675562951637826078488896080304679666346342250018917638889227619425311811506014044623087510932700495252085745907570171214232925973764179685976754383631348190433943880085086451808628806045570148862418784990876579437521976843236021235683667642383883182427399336111449597374264704486453472923765960634881472787585713186311289340113464049778563561947602502893395428893317152831744958170793048629512372325692358544471605673536187182781992333534274936498483557425345685016014571436767139892156430663927323790443722089664174329225206136796301612282429126256612349139800597287391234790657257292974079524366456934464203782214115946127795404435837985165154824477453722321131501484505798363576784451845670892953011950325540006540415296495717907536974052482575289480719515539572945393062296293737917082206205267876290272625541841668634737765994933477834982645821673855323870758566721683223284586154807887390435021889109418779382745123162669601847315969932618597742287967824856153326382242848645283478338858269986709285929027421243631359707491452053047115128913205445593967460359002961453916850339965836080601271810409563710842239738497028416422028715583632549470075160750005621296477492360303168616001980940275048552108787431120455684534835710050929817098193571525125053833813299445594221184012163584908379797682825008311339337378248084803395435372819824467242467740645021008705088099551923401909561508055606201329801915288800196167087351514704839020877750215449842815950035639174490126386874041672412013469735915492961095228299612244141284455885291896946069673741619643888113031186721286223317383278040357258122927174064262930387363872915028787066492024001443763064234190088081301972949328905411183977223829991620781797065947828924534171284520334796758805842551388568973159255916702273547562143745668658042014385663273447791156504117569402550790582427592945201872679217021086375380006564106961613298436949803166143848403787889892606749949119824332297491889946775147910658073611867177292603713477477648251947912700178642012925866587610058523405839034611609837620314746457362608793874952499075702698901366470112354237250704887312663208302091095603445272576819339000910088470064893649110268993305398189317098580011715642571142561116703109592195688445689896735204509816010550625267984583106867795437200447081669071836573670041475585464197368726721605646816311461643089540162084028009807171118812178540642305984655556743654493947969337390113198608992943701445238809048156645739564742492338406464926560474618005050868769833695571234149829974752471546744750518176046960766714218306353122125614170910177928445229488664394962313569195773024133902758026898680154181038284466275046667039333296191594557864945222773470722258846490784386820890118616516452924649338631909575351879071430904511947811112940752211372095320345534715752509668502657890584878633325283349148936557921364053641790476490253786922616031684426839909971412977346423720038517886954734126760825217122360931483429047983856320919600522529272896294984747755487352228987228813055426086258390959239860407246097090557611860344507814680965035756862251557418091378420390021956987473977249287232376530298273583034107489604161272114278138149006857731647540091846189201364608240883394849032491628077132586430421866878507452289776534366985731890460307502852742130699077989162203273233735645005255430145250048626877827995541296738281411923343368749115427283787146050980837470558747103804299410854039455404317723284123217023938221791688047818858825792034483008340761391481298518994830432535700494941707134686455925573568533955740579748952001366662666816866065387156141585190159112377976929388372108022378263449971826846288781719820198301549076623580587137621247960485391755584902540039664047915219947034186143030805288877886897968860064327552237140755996736096053686741670183717610765273945838092991346976032614402721640524803974940901707995843866007271069184095164045696397192291655764625767928632920632666004715960924243775084927150340859938158959117159637372797440602644757110349762627868722543902833683841112170853797361318726933851690697784421276234649854626212499578609488225291245538290334713276002123678104288426770353820928075483708048140995752206403593637004837314151718654731726957480120302079363907267859936940733273183912396878901760337214349755111900568149979700453232366077705883905974655011855579760982200524387117100167007836342202826484558186639459536519793720221995307936485953430741001696206102779982669150208785909023874808926123485888597939403200877549733262605982125760769623132664022925469788119724108066336986148000785309535004327070812244603134812118760641784570031970292183579501912773873831949999812866947021231858142920993869672639185992246042807725484929756517082454383394889451730585776489401994895334425170217876834229134648038087836157714458736067644452369923151882283366619948257653525996707700179889197945769613746935949342702296852720645902564066495132308977688410692618556092083976940973822349275936382573615033386212577658523636752984954872602945847152801065089113176757894169231108952594412682113777124224716428150464826264603314138910965066954758815494654360020924010560209126477677290088224925129674984420652081944396508608754109240808983999727109300954199495156474010696474157096591181589653560909831928595270982850598494501329128757350662888810429062870183583745731080031032754747813138584655917107076074651549674482573370304349751958750907628248516868747441601888873133873926934960795945959259122901490566719217365310589476580047771604595581379607136005638362563830090118602644405170660426239341519687538929636405770274532523494178348049766929739522857784365180796831983561082477755435308465347789278216459194795883696048017779407771634925361829455466602104989961482004397934480586781577762499621018163063716287634014164434223452713812700210920969166196019886113670990103282914505031433245275032010515897586370418926974701403627105627735573538220583211365960721095820188328257339387621020685376139005409048676454535324147007357055729818437226211473489033976066569700428898682803324386384181402969745971192492056250103910544148303601971227665966324451409857734981907384399343971378042254622940456593653200396540260332138326727401434675657084519693511388315826472595438573663346685886750159236212797952296064635854480849351608706906169365424936377553596873818825794993107878661032223078270296109287302980419279780026415012000917700938350705879220210245562068695047863442690881466341814469728326893214490827483278352806140296902387810286683406744560218224299895957330824808146075158521860174137472407247777565471240327873770884495134066091949527779191783039422543786457733869185270197161593930626641326960828119260927901498837028982348294383116016064923595564610393579636189925445502060841428759034672070295470118062980545653647696258392402031971947349009745065716170340127900177573957178091944741647469450279141602092297025570540449033061303102015381052110945487110512875419929821758278717266220078862060001730866746384650027922326680843517316777807625476850845256447025622501816440806516308381094886137944130533990775883038584835336769966248666270911654777589010488211001317360051612060939336686180030808876836573934104890127402693409681739766875069297551438282541045926522176570810969706295303847276625318301606021764553360322281366530698807924452599671127930102052752830404591996341150064471050181566209393728501127137274051025614209800128665317791825307827091258874898519822755546150939118259850483978205234939327528749613547449312047105683031644725610287462568348661917443592273404570576430310620607930363523941475423540923162411304378956881715738684295093425043887837544863971995404714930209710044111809876693043656394502490349994978862842176425912955534974840959896195629306507884306247581178504041725990153413426204455393564014121617865085305640520806834814987010620534802269303469215067576154033561491623916994143743205973084667439328975781386920411422353532244285078781080959991149634324012375485047217088754534534955655786657335899356775566322398012371797598658048915587365119967759768203519832862370515238613074509393198337013755193611890385228541775465233725681691132564422599331697311029925302837733300062979900711806919611566058101450516024583926850559077825715178070370035869796837163648163456758875930508647042945698977961405292818140765275599356562493143574711265441036336453318949203881614113202281046834990922055816046798532254784941526525867301617240458953621189675562672837774107110040276266174236994816317243635516722076762099452841700611960366760331309411769233175303633504658577663130148016790186440206095000280292823748633717300638736477234539900309821691328826236197193531401826267802482206799835988433833113667517580978484916652376732389753467324667289422660957291003805687774458755147069382291331014300502756472212916063425131860281565235875244084526183679621189394842705600504105668063160042421651316371633999932765172222388264040745137768483040527325368410792762013614867733509245287068134427617151375662591142468483479895906685920864265541025049262431576287977425883180497121745491795114013988395485797389530881702889309163016832663464432631283448636122384141718743286173159216475456775550283706083799472824760170453430196539766856653659212134033617056968128831931983820789825866539065054262676188843109920121280850170497605599624611692207844349827892221320124330999988656928278730090362484193391230255371579512338133743721868769887721802611691856424925315117612561395984059870849950111344300248816292410607517597856207302733660625374795754109275530226878378729241225357998581712935376380601950905781754107836684510674102158089978397536234445122801011493085745983547377359806618329282003387217468950459908194638190672398688752198171066659311201730961306272585132993103576392890739597192154958838461648280691172123728365068378713673997787314087204117124357647581060698837438263055442531749629004736628454156111867968252004749289281003388910208285813638610434914389415339673233526701914171272739090089672616905694915411700293714077647245545705932959358662120266550361493963556077748565785077150534041277021419177148122694458256072775026727497227382176108556728072712890667512785496889615614907073806047829455578966369610531473676713753113010273183195286378243213600698981516088705049771313767517963211426739506271516245418027936116052845325981194456329418927052714235074701413662555116271598277222170700400158804225090321102323541895448659213712920599602021544844710943146223667036062461668289662097944473881516989810535000846500418652914653757926639340678471305833107157229982650749043746246154163128064484660831065280189670841628493057477068980346058908072729149916865215410038227304429361594333515314449891812201539269248556238665964896176083308027369520129683042748052968238117592522448269517950538860491962819726835870560283043093633094272001756842674858285226709143569295866250163547043828616784779720250956072451736437410069595082409981529641409056975553365845413233938328923535821234872033276602601263447982051474177149008198742152561445143813680293311890691777488590347349147946127611060230011881078293425057597590587444793371570410922864246963693271885928977380682026160940197127140218522247512456432137422822493370071079834035813826901241311563443549592900160837538449785451884587904421161501321236028827064683635350584893872848788243084684424693808327399478028370671436082093964449921791807066984478589581257466522956171760643156574556655838040337769094991046941734736007631932256136768723146787786958487221060565485865606919828321738346310862814394018778877269952308796568466600502928210248225367771823146723545743873862503142011928528971082665872368426041639548028268329663936517183395470831680764433039245374791881047031017775634776616083149657871368201515977780213036882909292905953798266360159011220805481227539967559106343258724065266046289287083954675844058302919635385271105477846632004055143545019731149557445877505474914142378145387336888419894189207432694733609227953974431968234742299054309783489346938752727133351688855959644539787775299042849729298252570423607177857015265341576479170684342148308387723107308786182160688707959481878815281182829909417932852000157701529762354983624673145241009606917878492580132442318681379185257811020955568375172925168255000059989956245456691267457526439165515022730451613748596501906754138711376432054823841699123034350560242684427778320790169808223351356516348143645966163658743085846346651969421215962238092852729964553447607862867789218378289147113442434437869524575796769950545172488415658276931743035590470026883634595879785568924923423843818988135848716439006679113421919769596945944749794443955948605026878584897655174334610585449335853950640693961406577976574964244787623989118026346824097790246992630603877522637279433961574862288152345849694628743167671623843375531255383559586465371278692060644954431706971632657043211126889393590789035033200472748399103997324071378647096714599003803497639303283214485878968246820141545556626541282843486000994508649950142554890539800075357335103134085511502022663295078290785566398449173839001634151237700705696201881098175029009175160423594357797469274072846532585911206930032830187343401211172340978111478644753660361855692328540461384967921410749343045502592996619493694948709725727111875094349835373765750653406888322109005747492784067315809236154929668942836942371504263937464663906981390007029934513257120650287643212531445261836101565072880023381600800217236353358208118200206722478238892583134282779660769246256706249093630557480000522592536349948747188375394864548661090106411256667859864311864658238794192815893132079719805081254663960051348262805063499775771625615297745208794983511657299796379703841380086247290687236259232688014674808966676681130207501191768264688161162620059323529396078018302240799064899595751734103026270419238364641571082226132413931495618183972034557823592762645793864681648067542580125897930007092684748227444080821017096368143156321607792857228991123172840847590539981273696528173353180591534981765823475331257227345856347750864039586466125302481468079023306592651955694773437472250097690503091760938047491175219433817168318077527270118942029646304037579929022096179310473174034437104138020874116416057426278314897184525580691728083782385064077934140543429963642825855466843352560991082887780874171151953996298279669947459567099787386831622082143420068633484072001341546150063126764198323945511316087065758187145081763726154049806712856421510885880463319524831550864810658792026774777109095301781305844625704972924671121421518279562743427542965649242810673479782257105741202550413955329877753050533462813906162381781748654756819885837813566648941179766079836204937142465327082048653308335890916290595075892492358867266573649646378742757826724155887862968448028661864755819353304092684192882233859837157040624613410267353754300747993048306993564115697989364751643868485585024979701783154230809976093679475142990498002528446166374962001448165827848378048613980209361550254017699913133075918903919286088981986519267905147129341328956979224110699269546183366570132439039181198767828102016490374764307832736875792480008088918119157636994528682889798516292956801522236139629746637141026075472987753886862242475292885355272596336784585583975958836006986495165887518399090170848864878932992627037289893209218241523194930212366940477872664998295677846779996428935494182647877011639836783076228220439503349523898984140000914987824569508619245692788126433659917306713460508966833456605498541850614779410928643179415188407363048342829134260862363142831442998526379190724682752746203592247496904871213299450500498001045520129144198508741051459946252789802896001744825396992388132378633473021239287393021712060724171664388904365955713037034356910199537930829894674004143423923786411186950678257634066771841433836528787359783905331946850240314588546458401195727030334350259037040350786898952002992655008084672298961057067825227688089996072388793155405686636658328094089599863545351760085677277996885160592850231997709221472206357422797315812799929697594714592545883106900998638159615104297391903927118907666794758209972555130893402759962830612464855600252889129787900832690580547422670918389122582669801867634780142445678344769694975543398148029725188182600655529509710555754372375367224258842534929047657073629703038661283742897882408818259525119525562601669455398013938371836024398827636037004975200906814843768488159527823203056569502356035828118810804051843291481776334927659458276809249425106039032140192994597309788441305124388382981362133378540741533932677485996825095958861774578804719929699127900529866914785895172539966349334734666903978403414089479992334323677347105248887927131634747592107318787415318162490884606519956223945401914526447207421915531575735060073613556406839172273691765433388342117177687310405881661076603491994003238629135896758657433174009345074773701139657731005108256823532298697083136011762418362076055338321269991236954196020666856429547238953528078387804398407806753776809001601761059891368745655907280655797116583235229831189235293150443968391130726869805156134682429415761761125488840284735547444522764185717298459928737171879510929479516880077687546806402670370930551206033557378495013259680449154005147239431272730172312765665683356895254400239974221399308391237733332337974735165781293352445052867735500491633611015816781404901801432042522804947012095228012315629193198399547712460366096377271420905228041083567777625557389725406773744642103808440517904848876965330402233301361437299359531337219548070116040487341942899931620492381521491744728505945726552735610150142996140712539085429608265663104057781231710446826867883182647619749497514663559976115321109298819377304990067994477136644639900801968195847601710987864803875340370456809951902693612398087099376774190815531098525177069133680595728429545149747989028100426748156965003908819612510302413203798405199337863833288204405995536237965563956725413041626747305970640120542154777428779852301122273017461651811469228941412478716022839747415590176867049153557094218958049357474310963013898591824456333251021428571179077540063622407068874815080518663950319245781548332758038894550627802249069011000349379104570246052579574392571669688590030714283715417048038858653331950365213740988335406563151906605266261967558800069673721140823794711987014467729705115641066016615106000437719379094080399889140244871159668670862743883521704878313427636331434404077338541816603060141730733089774516984721236089182230976270518667212089150956763697230000011518447640316377774428070491716267415542953849659476433288715327600992111284182016092292819631765455418202435032030052477163044870255338116350960140009635883622281890454393745860578431326021312417995881664328396999260129024091000455871079884427594299940945268699053131742973962810936710429803691334490662661312962472350490917326301975559079947444198594773036105495339362741553828529744858570330298431945972991930340544418525695867750495856664239487117691071540090641351633105467019205559433459927349182504389492602680591426857316475607137535788161208826228610833332596422993697119298699153940176473698143466239008591853674470328621630429432944986150280827515608801388286933434873675248693174658874037880996472647694372021644844876512481361838014901459948564512806558496173079951321650273351120998549591004891787689271497604319406550723304106426026335637005112775563007678577333694308733373927166096616502723791947236695769850739230929352663836502962943944836056890858132951640581387883167892464925333332537283090933021621311628310124632642914093574262767840653067869958950453604444489041854209104707633283896401896971435183005238987454406076689141923595572038475822801391637545842573105107386925403776191324744889330219463622954800442268853215440509533673226604739900681467387495693102570910558432792000192848647511447381592689025321545593183249765112893174932791354995007484892766133415003447401899540854559524820716580230111778218454159403004295711152001105149392766414574848316205457103562294968355685950910301046131581084895962653707257158509120264521068736939306793799807328346788999971795182635870959110586698865524055885297057019591169988804630941372635039105168314700846127765586874909582426534472323805393607702202045908850706865415815459349560382547058874215049880865949263295099001512420274881842213086439777733627291372891361113114457504566652051141669220365020643371540799427864250456268468968914657164481276374923278014071735580186419565169296209757637695209194854335896405177321122126236332310192248339612066461006829202028222626268660475233137952225034272072494822071236080449900618561273668746434936934855826725903263216884493625065726775539133118731707868263824189203054521305879512989496345207585771532207478055489915219132025501541022922502270729766143270929847795356941392936123182162836002658479795005329537011419337700281397964867907986518252810890147966089361084438636575844953977836057891551930396630034510525383839436310586641869445931808820575594989288661967732142674830772019425365524991871139644495613205655741472851992791891389905653742798035205587673336054114433507873136573179816300642558434692187936374017131313319931122245514319247477939282560289138731309047044218604303288135979963432793544658294291850992050273591934545307608331015290395935769855991075240082710451670325945845100609567872559087645071436404089888925778668684181585570836783907001354106598611766986673976600929699325016376253786815629866323243180624696657330198176148329098593531821161655082599186643354237868913693097089239526734634251983180207779701754006829455200141873487818099499671826037209397918805940589213506049958600328070689834853994856848009907028552913188012884550026609030109345638755259074994564626450657317890758170117896650304828679429514687142781850997671156526214903619573021593797486952015307766485773396096201024480471319661000699352370074838335117739900209773991708259248717244565802455700302236384152112211408157344554004425394976835918940563895625886540087442061515050882088635505679656545472200023621846747347414017955801808610275111818571530266006538697206747865711585258662925168818431917044727127445223145663399968987330826008574980634360557550866383408527585523351780352804673742391019622934209736898070219786710117342330853616064823140700583663912926179840308586907698766188161989708608306596122340433550263843588048038380332542119308288831390560080571453975046359254668584976433528783020174654827582188259931249355895401475154017962945232666903424323754451395798779318203921189559813818879807995793027655765765304813899450375717060013078145816521050086392355695868498088603713317227028017441188915498896713889826085654317952434453251155044724854938079377453775983336169311547423413549847508263216982247615340086060409797478246033622809853536273373026903491569464570025537077831143559611378752277376695172946854650856721097191870023390863028565280690279664384433197627788528504545403383335580354186851782303809445807038842353250378576728684724378774410257494393443363296999741054900533189520451714550102687787625468260593269981269047915093238229614626309721711422444498391462342464106381454468110005259588523162612475967282734934217060255423655103324842248618198858033132492326046453093187157849863125458958854518705748642434501190470195626335241370682519709549687351184570239097632375990012590396645521809964570468120688657656950132058553954627521145390315086283903432827328768337335286351216464113399332372344444724288387913377821085413558186664628668692673851439049193378965666033048754895243721606904518738753052762782262575412437867960282502820704954940155168812532568407448398451911901969829356345986624853793155643930383878634977912197992653224150635193160181424713808114971113458044772555755887882171092071659773765495306945686569062648399436497569164209585707202898463355806771576997533411514284944046965419150737340375859463304148449052018522739477797188201746054456116826870444253806250845400575467287417998295474627322795128742407397775269973524445497167125778068611773068042924652534898158445239397485661316649766003832666763502681652035401570193736232549917069054825380826398676831704053355289756836062264346313821804503384941576824756332851356772500722946115918413927868321237018484691639735315184316526374237325381619338958634574772462967934427390580575596121013607553120385163619133432708870750033686216662109784885117443191677232702308634302374735597217283432208694216541141819993723091991310547740919571463084266050651032561276841187372570507218510752858334742645669877278618951443122494764117553366091107340596961022241842746408091724271465780105842276836340027904069839351535822082702896904402845505414208166164924430852194144665177118802534045005228675003807800212883775136828365049735546185825437138980319449842742718128513846993056454335700842057008450554689979138356182339945486229724058689358361181137940694174776413413038845388061303553719285825863649596776806817394724589426696007993929621848293244020505515231389771536188032058263073851288483436048882219138655353100768415693245485080479479435695538867140301639899976186292779041741214756021944526396119853621750340419977480675258836088366669998875578531605761695174904305589308978522884693508406033989221026114770775476675781080793519113241975457437836064055763098833541490952638905995275474473677139487711902344148428844064665767241987475604592899341550889994606084793370697389957924507072130829690784630319142603456875258918487830829664938857678037896269389033902581366887804773269525612005322354320984212415481426221930775952551617014712013062507561641535277477328072704207706717675042444018333084297074222676908870270265862399971631455438965216903089583198865199977432917891595414149883668633975294369334838614803943794020142185621145447675408423658611347753675186787686152720351242499047774673615605984597796667377174819257158625918526902281001409247275026640083176344404465056744193212104171356898596725590362762640951212903374882645539116101058197154690142291548992082910132244566180944378198789254058852764604739270093999233208617412995669866581682468799920988459278761482015350485652585084801650139260262454299216719763824144063749001611581300438581631395357143051727566467970140913293847022652406075399196865372840001721241678617428756149060326970414213958993081768751358672109164769873140799770521145044855629669733939924324941706124272240651123042866443471944360244379106803486852884294036932749409024306854233102552892301876281456027166606353474467570298326976274726277421569183651608459442476965648986179926648193721379339730083427005098655566201533904309605814227233303766633009420038241780028640220904652809940735074849870165768041007930147956129771567817539480603821416764870738008035623087294638629056578674671722672216275138034349467702484950518748538323608165199960546492986534416304436138860516222373482590831947598512223398845991828187927991501476012103664527810782866337745942579950117962841391325417116841438783621923826050669945091207521451085806513924523948602821005082717148747948259265896651558786169356865152979072971528905229645346963144715123005958845042142030101496629635560936973461024444345739103232863136333180348503141155607242712924854548453749674323589570700660459632278827702870715114653317611842551063316188883083634916731434435031103710602178466715630710748808081731768271500200566322796075428092209180429801519140528221084057855039222140044728516006335401125606527671570222281030914867646528659492314405525162394032817561608771434522027698739313855791308860343897362872372205849363325041952905086384256608530089758223582936061880428422345820165909528858542570135485602707767263100174994446672213920942226282013886662387437355236223853637604837584223783733304122847411889803325942316728315391480978132278500214859393039551210476007759612660454259242454914864845122972205778512987364662397454885074940497034514123860204040462917471942549831964858446283036980597651653629152892207839758068865718454282440233072806127661793972883891072449602562377141129960462093671657107729125662092637257550916018292742879404128746627125694259779316592896531940180055145583674889596598905517773795573088749167920631071355696974582515045159322392873702515269763352841602979212133745746868076321899868000760123185924983491197290277329605386196558771456494165743272944983331402177650425930283348723403128862379659859177739353365892322323547579272476513727173226672019768989919472725374130884183927913658506402839137014689189619128996499021996999401073300383310678682207428837227134555363492592412194585852173013501236862680122036063263683304739132723983383232059927081216003434502284118266385288272021731794247930882401436431723107554107966318394330815560873340387947100420879822612752216918569459163735336006249444497184994469439819074852894267308158186862790514123654837829454561633686108363599213763941032130782976509611896611226074367524280483393667657275669410625810326740570811312872373824530902559740799519541149983261918742748017039121847120430119094646254834196442151101278058160671842226954277707466126628683925509108807703077312879635460174244384204523756234055048446999831934462631916626895791718470657938643165770156861427308125730983250538601115436223533521383990899861358313118793343485272189702073240815563339953667555217486880539963779323160018171208467984865977833604906768240642952774803177014292934351179304636617183048353426324671987495949760611905581762991480480106052150711675154911133683425286080099561944361920316014736568482273732551360095061561963321560554299292842999157284696068926045934879004736994150243478139445187485369202256830611079485559892191618340230972896881359460362501401214722126969203640055881297870992684893550200149249696759541835935688083530648337730547120808561200272116068035918278538416237678491039487253833130271686650617618612510692179481064473461239560051650032906657186241943423140287457737112686347468153664816101262920587131309974054276451156950457580571964801268397467218189185737145973980518110083368064545943584497541689370561815999556432082176541083385904526870025894800994866236550160496441029077879971442797799485374324715476937144673105400949728199372683164152956628807206064056419043278745426957056791886105854093445335160285516051509839441917337518130489411069002928364776424425394616446404949376550656281965743209012144560719975023421727958701239992838797591368831062065208452729063583412196478077662909731677569617769470575253737859430314177937918053705221718308938425938008398969085416876592781208752388995324159155697956076461163147228310025119390510362327933035963318555203062621082223371610237045346390575151536107559619550481886843804937901660966807928381911398751976992685288061137457920464612037519237797539644467020231118135090321794270025552128507308876668406717859593967497044503037996787099882750147985538345586962765757620264178489983794781184956789938310231990066725594823926570052572669466395701556519116699468760756652630869904979785352959521507999378293834950418533230214825291093992933606566241423917628779387213332432682592205751678293435906200299578010112656391810504450731418774613580103828385352458023078366479822495472953790211830109277507705455232198846078345138827901091114693325674745186557930332903664988835687522405867800926632586852231308848342988864103359672226185920025459238017822205512548769672286875900427227127749914163435961561179763910463382335065773404176507800129686542913772357324741804132285142602401645662569505053003374805557185466762008298931353846902871449062312973832961166869094382222904879549293497675623326707266823019766693526703527856016371365628711767687648141628053568789891140030524065612733926351521703010290454398665287253050446546931441346523911784109217522346669144017734136001345858173438895855401076790538310763334626327016639485422936920416508603629536990896579048175008178098725781470732707995577843941447113082897852959146531583147021289242610623381128208806080334448780322993936951984762853861686214007676427442210859049745235457403665010051272097866906577930571815874693293825840246201272556416428654562775114825866285261216367834259269315357183574825786951028707262660224198602137640554754556695167160101009405174191428266345660519748675393280735238943451794071986654244046421307850252191225065267134089016893106277084987829320474267300265648352457388631148212175962677361264964725849250365524155116988913931317245770995090878354552940806668741819614315645185149852644715283874123656983565684872973688544272296291725592019101025578122284827618014880688980479807493972879215656840069314637201185937167702592852625010498781411169068771647275991479834266742128781558735539179579387487491994918332869488983982636962745036134719983079174282351358327639704774749943103174048147213277189179537709017841472703609872358761581602682309858711593265225548627835243111920325778531323916113981943792099542817476798242513927370159626324724852037459545219529319375636707398505757466938375805503682396368196310988124398800252311797985601838690817515579876084056582136937342074503015715327490111771040882375895989363201995971872481641260020588330237868945498534079748340989272393507327478706882252468279738979935178960033402241674582084834341358858447249906420773605667272989137236070970395776084207732657837082932050331616570629622180055195144907762251158421741245541088551860690062002112895520963509270690813281775811168862957532911386015714736441797657512565381491876695874541642444153279562891187333777914779962092223539389032682858155009137132936246114667499551628459376590087021402063593448251445085697198780099933453987949904073053087280792725480878739258035188067146572574672354895335472697460786775178412189855040539744645985225379208174564708985077567906346362469149628056043683519378121335806971554800064184846288259443516864389780386352345025675068983995917741974615888533576474227425044992808804754020103306819009592013247533315912689082311258256164384775576100190552372592604026070887496710070131970799598471817376390974694026441240423691861746922876038757135030554897689926869249410423455228891826931044318327635559582030786196742296934745596059088084969646627038939837333907602423366488259062171232237695793878674960836597973218310571372977429689157421056673659618441395525099230013365135805787370796632521881879667055110833535560694770368474786098074082015692231647563812580740195998054968553217349010840110124810707754564879381953388539497452229690068098272123637377027118517715537639523333648383802344115879346130524315501472162701085550977705805561244048634387288266050581920360614055506241917581383584243056299552436542724170741351112306474033025917585008942880636498937340095025496191447094355746126741084048626021404325305246614680371064537412912738630579274627431787724389418051167716395094387357137270820344648147693984935057837716553386067785234613606877029095525447533150179033683538153345865485298123015447668051909333123054252950921351236853105941735104607998447133028705059576252863831544280010100837939389017767255512869001416085412105641430503919118238437374727485639558169349858805776187321785032320893858236274394842375011556054182415755616596762413352388366199414191094982859117305648753590122992921310658110167982940880877965601226712055365760754293977156237272646261431873511304581133193517691935860951467378879611890020410101705896029154153317609217290510547493797384637615093257840174686641024340019780976359249020473045046641585611121074895487099439563231068214960669280240715171296798960565189810048445356860580263492990233826405773697053197019127047325775725210339062596647777927785618868575155018352119451080727251070720206852186657259531820567309522899106335655877176499966855368119032419252782644201522067273176002954603052321354807054006434253029734062753344604887764173760342665046024210647144177148622796094227442061035543588864980762799113953702583976945557627124877199809200672072698576295198174097750440072196826763453067590881581881442929645709837794612254553008271028838636729950943913437503633929649949721999020086151678166136841013473258299532747005859203836319294743677795053803725891959727642330870553852504439668708720375837044765199281912229115240699127341718206746477839369700975089192277177948904000560920377625252446405338783165161420302127452510883183832496958115245449252385837549244225009058363565799853734883175047375625607618450482458934959125113061902032590816165996723460776322386984931555514196945816468134820175571927557723709420227818572308420340278960374442868597018322476287301305751080154869552515325294493160001708877580462628152819966604013591932588824753949950791881274480446718637092017315607069391634219396515906309896989162225231976390931003999274478477738160709555066115344134914638257740734300372628410367111512529407483111391945921594129268597503680132275997281751085604600630652472140707263472548174022048021343681942681072491442903931411521944628880078598360701602806564709836192472685079467900554032832372129473465403126514789412569448055555834047819253921352262818883335149631113152388086405678786173748308609348355719919520286879267636468360120268597869463824705366599348583886258300739816106178407352857714464282305806283277420241867548613847411037822931618787642141263750952995699945011905415388902690148612698421362259721717015229541155303898459953640659301419867410694116566223029207842284736401854296257010412992013505642839667034429755621219675741694899331517407709389618735418452728075053666058636427750659745207867878737403371864234711491734065628920612399485098211301646691328718445330365825399967016950467125933487040837540401789163998550055173824971998323755820358146382944583222114406376031199415615644664268123013340958787347967105061425853169719003069150260168580907836454862750941556173220980973797044212459184102587451213739935198079729758054305321486291853980855435254618391022510735154446997528213357609499904412473078198434007087355148900810416527562394211732852505773319076163690459328906507464942593732264652660499636800492281102875913299535718668789981204519594861480923555034361554846929870298208628767264915618393523708069726472830929442068935706238168852853128238343682180622784839696483973977207541690699736830737207489034037201036038128539122182397739536220770249481741499774950057566495756350658831775007100089244144195048697528818103423783183088950516971502413780934855878437503983934551625261443839019543967782510061854871847885917722168623084105424251603884249917619595498229714775681760594730173946338300017575281051566083108491023914458511284753035985483443364423214546834785105665037417789858158849579088802767058549757411599262823614881986329443558861845332713948949459817004078301546480486263245413476952240855191896959789000929228940922428441785920448039583342443281289047755876113102659167092884880976189791901959366969938604558518951697896339213365285212003598924142013252336108641038795834989537011173790157164426478028198534968412096030769610937181947626500334929000224940562945840398211668873854342529173651403352942814783422871847992151077838876794401324131031203805755934064494601034204058841173523318228593506847016351708752692901096145183993828140485218826493737482073259805422884625458571009803475761666381304292389031989951881518838524866495666593416468890956682184768287558256214414220939496813260315152896005243191775026042141908472324355643118723659500419440474258526042075684808979393335464284756700862152984628260595788732013137914547721013171721674746375482894400283332146133038626134920255372310874736270600198297332119704778957288735906185771764503293565141829460563079260519782359553754406907630762752791468269012301810068420081222987863666322494676015313903871586336666428230111644426306164595068565252296685422978600235529103205834561713717670930722433993571614087508639967660509578137400920239925240287771711914928339026185289774817919181147809388190441611469020377790192494330950820237127177572309681001182730511670385429683972044000779504591101420411616378954300154486797001211533743590822036642394409605152136686420667180461534797094097903470962392927134965231353342138492828916064056962439647410203100973135840795340493808782050366249692129562380022898717532436737926643257159320429440604513170612436316045344704502802788345159629398567436455224552183020339063004915526134080826608706602759213319677016945744776112590076105584873539131366435713166128368129052715455284391065392703696878996418294046523344770848734654467019327802607916848313767989054521235691472462914214754374923354452756275850536177884287467675483774058151545822665254998172943098177739830619958791887470332998625160658418925883169696497797380098305180062080170508561117360262717528789995652109276082553990618159409094891986188713386458767873067231311911603440232983988831332728509972129325952779769395809101149399831822945158019095304388955916347630549770412483654038999334661977921856861945012064442234559883567725419752931045022150361614218927346263653818733839519357864213246145563897247232342247287339463838139232241059041479872874303946202191470564106892679315870197392680461318272775333854893625859525650120373688761319534268554589899738389456087870038108357355996181267641532557192611834644311865394650535758455054052212370829359737907266285592424266473666350041008075741348822099472474708766683811944738602828739759610960833099459931636085878365657733726421948345952643978726889145879790396044974391651478945399120737610340108476747155241484421312490735971765808194172295025676461482644133049211883325006274455172312864546157764490570442010743582012761318503626314329613295892109823346019251818858015984481624045259665033388850095917114634027983857213151091176674894005076101301850830944072027946199035481283356331121307192133895493940909798262303733322584475103587140729499336274717500318758100805987092475129832334723349140415309590657076528757164504822352853718276199215177762364538363443303743774304779160125334931371857535443056258103643312965535822218433297420736960165182905734669688001579477929973469154199431637094888458191716560279379597162097117354884214978746348624137390767831162997449495737854383492816195947441574704262832374757635564814115392375917787102721013003619807538915746159110614849996918871297657992150725146983707051583422296185725772252941318072281465329260275739504272849358894579189065085288117906602422560492827008906160325874869800921349574354552113341825191765811410682044239239289911504315871580371849126596368704053093168937870721831593216208135440591048870363446275446478116507036047287482208158719445661929629926596871221222639245661098759762836629541373574071797724636080050023996426233955049552092670891173744709880019005091819195832827183693992702354743050366493105025852750982725783513560785281662194171785431436432804485912326907523452873081399695498043601383349409350413961833799064534547080860314224518571933149882181429637493938977523889416164374054747266846543733911042905403480851304154110566240124548204719753646319304394583421533781244206362428565884566536486719660131416410931180914005965738868818478055518392063626295456270833879647253490328001297321878051725098486512985209539352506034516281909298226456231206981364519683329285520439699320733871385076728339021373644527696561042873339754567238318528886210291882067496841125684140705527041735575738461361605087754002471052462815883400293736449622348289071646380730668959219613747834955694992525496988764130144563342361220803219242685941819445193035308427651084837781484277878008177766219749500862555579507556921205532405281252729344038404125530094876710672019339061804756524913522213644701904375554461424784104680779184780067307678272792339413242060705145045984940156491980984913875506716731703623007386031503863546857526097467450004352372980068107488378796588402431273166163129311330461857652206887164512393235728594204096940900509411678986387096732454064610772380197221775820168054911084764191980304359391860887203560774214676309930886186392287236452752278719796914718182432466399119339531302651287110907543244961450240696926556853908629053275298350692865082515175762178403861025604605729019734950546802222021002037599019433412880570212972820748960071185226850699505052619603959234936705534763197403115247785875639294433669882436477485416669008706694280257610346268318646832471680807580315183259381356225803799833989149834215163922139895678623739683533427827283746693197833180852018208418346936546673953227714214072641546173472614392839968780806374890664524331481451766029318125379119625108594750727657215586537728575551544324918639546649387421261747614668148203310872834906733416331607561047990372739995804926131844069973156532506175543561607646620826195058997360604087669164127474921939228159458975066615284597622162537390204569705124582101319499058344256652368429441251554471801992387417702611993231339862171651246854492412565332525351991799193639805070182374725114399240342236593237163396457671970420423802557858989079045523103823098739771338061637024710803415829224117913699050671077808712744267813888192408395182860855158488906819616866171933862379609785854274300115466579331447237611203013076563876423505772369669897120760687520341389227649091819232176016391132496594399661774618162192303325619033215348071583203027828159247242188799802724668621389953523601527541654197776837594105420385737290857839421179118398002157405576393059040778186366644421804077623083604316185724304948547521621706775198730801269894473819996401797047520747827833834404958640459495339520145231983955809295563549472876152569922744475525493028271635911313788005935191235525621805167668010295219599190096583850784931389051599199041651051341382235968900253203593360931628466912867581168283932040773588094014146916397455344718486061823082611569553621011545487679883590597692955085317587965924416577563621952949778874469404501030861439084429309867067018407668247946768062694894250184920574874169354760016951182837223529392140630508183478739013267401844078895872055338848612438139357039236719770358598566427006502196522510733306249649888101204065525795073930139187598884455667542768219925585223043266719701298540405665472781258207600023447930644614150332871091836739512306477418741726041294297190605681975051323987106378201838697710822486009335238689673267027641436714632107099418904441853612887834134593489525612526304089500752947387652680714271912433169087327738971199360512281074144667869841620441750166582886582731753724147805563512544602296678760556345890785811390816488592546950691838543170438644927634844449090525341172118404023420782795308555246922573233582500310379075767257999511243196996334497593106489183055036871502129295145208125204857139089255732448108260105332670998249210852549755470744764166061066873801270485785104509103991384605951950955209754731589411245229000630594346326230299527985336999406897133859185189332409826782182326582268823599724774127633093298476742392654711243798299766326001101294738972801172545558163171009743355927053007558104981898565315776046123342928086171656964307272625533326014211642598625333685949229984227447232473010622841083497000434033724514822643843034595449405991853594011541857108975542260249523209138755061844249820312418178034816588170152173221636929512066691241035042770746312205463871733077870539150759023528278176040154602547436726458341506781818514609739686614712057164038270347183110435932150867753039143953267089064177457341368397914681422470390822586146157157600113336154593750998000222158413563012193974425065378107754937990777120975411069625000997788455830748892515601109507753544347695415995706391670797455115620828547228650495382821029714875794137172902615256673034137534675568741085412106672690761013995836583897174103996516475784872302789037841567991266171389877702494032136591641551601705977128569914778283046222445091851948120736674724665379564925670100009432920600629450427207343666958828316069387748609820652101737942730936028043543062243400210361734101049296322310000862159428367703154128586988390495364544915485353355317881725122973487904284146241958338998373985803065765644180837258814106556782194751400338982463231878108113757219791825826154904947077767413333023741109964777860706257542385021491906958502266944259016294657367634685480926765345578653497222736638506631765928273369508935335024869940473035897197893015279873607200030409769532156984874374545044768013175142353320483140938426165739017739890600954773992123857562499036849698272298179859409328016176342919329539821544682655805264605151158713227307113785310083517709640516896067886409054966093583696864486686585872976731780944957874371089165291031857268913920900773998094937554100939159217611514656648928644063622567596064423279810298779848698498151509844134638678647556420838711645855286871884543649773715049222324616292725476730951816458958632297419990806124335953857454003944925465464566498779722898138226947986057257414655261263799138328079449662583293576826122183465142309925984816208417525906681205609335064995975682029483671801249851418260338507724249712936169002531866366957500826219725137606423273283682441536401275967323064714583998881636229645508509070180499423198943032177266071103672776076731433302584182631391527458259324604874456516833166436201599944739441041654763652393146873705660192816167899636720409927974995220540764992719548621880575557263854719450165031734208149486783734341247930535140027883977496139135257511404951752430634612695108038563139410357483323031434050247188737853657037038026190413065765231739334454078893477038835799402737703942849276927055037340291973452652154361824668359642172483790840371489257847369646284046426004665437870889243551194767545071863908553193225376140002859375905003693586806354494241602067829505843987462782852816592083713315234088956382264709069787153326777043921596676249064392584018870035043092095161359488587795542020550223292945361828156334241002859721309586795606449740574224148937816508298300511505371699562926931076781589263743652200573087062762456452540165454609369597643501799640638631293174148466875719754813531974170499189587379504597879310761671854023757409318844972136647028489576781239085436878026583544951310451071323183616037429258523503174036285934983972889040752746988138604401487949830717306818801585862272069400766147937428385854293209701407861393150041831816173812345995089488961015466962370528719056973401159943913841632892655389490531906144702305601088535952468759457981149681184800117553780974212263595102581437544589381905458152449019400669260663496918304186209645287434862443824642612809943263777989846667064411237549875905559612252524608704570043913046533492808574777042921616351862082131175069618182614414887707211640462095633973630034967280110548629520417652979798140684503688963773669897519136191211904224287446277157439095933992666849219830233484385408569876506500084685014251241788115201960777955534621967028342004601282515559327277198674059900442947987923714631940159939343821370939720451769571146068460307233533008511424024821794939809402542127920262472124553730103819038108068408506526282339892250221528117303656743819241687527889721420523314503602551050289152750245142904195613615407173366030109007362051708723991851502623088458002694384273065244705434271769958677149525630744223669282819122708840761603339268091922686292464537992863194295743009773302933098124838289087953571920810137172820538620667913562343773663982384698595436038772682727218597539892856324824374754127338384322558513741008163975455920141872566173291199484924067961720972236707578647913157157510092964686440953885109246598852747263486893874022227695550826073734747723372207887776654064815415064619762288729547285266538002412958604959015732276164425942553798911385610239511830755542462006915987120932644955196401572549352373608803414568145792304733254098239627734357313134469357798330699203107396046518806178135564638261446304934593727772481818365711260578850692403451743729301886430167897169181115287980338727905195682832065149378267455105766815381826627234444263194073766781386685456526553771848836504791230098134599133310613579520121476559700713355655077440042721043681768783500689790879127040711811875914531212099725395435080773639814732623902464531194844091039201543203930582967084288403421592024440918793491013809448676764628294006174496225873946384663757903968322662806261918036857116874837801732404950157546507462911724462061916960881972837934080250578416684236478712521572616361934030889204350917616112496924481921822121231204482759951785936072472976867968127000792772518523331945177081125653885876589349317952468487298387025362887331999757366304760273476804791467012203691807308373751008998782581437192802561478663406219743830279406349706137224943524662590396333382819823886515848077901329321267429092579968730895760415414484710176900763121933251468011424660164786931612540613190534254937578933682764656601295726405433310098826911469147079048056712029936668362792500382204212254537467050028461236607522723973107918076183466741945044695654458550772843059849392582351662632803334548230463828898060467161676939406265287284833507885529548424458214009886884983583909472381579608331853427860367493957175757700658921985008560008767031261588504672841413762173911309592763989686754212001237589384106523566860469895569275321078185266054049252255438470413619673163720362618079621372709770863753178253155913599689537647874790228797046232586431731600289466331880701532750952561495559084019663472320399234575404035592166019655197114751696511217771626924570583297619026051942975206892808016689805507681798027904936747635024176148432067494664307906923469441355579628368349197798376779615917329949595028960712943578673690528423418246886775616184009793824173289646923805038882492375724797853762344195955386557194318268878745760726731085487532287950372960843848073545609611469100131806351686171344936942657491907180382449022521676538798408708621609444776403990845774902760887441430895240998080401158808564669551623904573826054670651642248872137329490219665242668760247982577966966204805829189672787445692716455823220904073735011977754996017555893665537182560914102278144179502517526421790495907707949574713535380334184344361178567056890682291580828673769429117920437185301784470938862317607342320549334734672955015634971982653088490136824341512655996488385303158456720806939324037323705058391432281410983650335768061567754888715483070966961861067950992560657500932093584435825262496469648752724877818133464429040665924036423025287921177198697822296010607941813667148531148759930414595983873420945775123796909956678752287385277380658766330688197715742527944135206908315776424038800886673499873485130969113713842908118519910873612431982405747206936083592492690471495406269596128257412049545656368383406000527564529983538290316762767165267953842540713613823129091273589626824277311087777508118381172072291024096263220292371798746847357120626611363343528727396802030408367776538482350380198314122441827517370995240878418992042272222228357289374416562335787627499719344063268413056567936307376972663750263220099638146265900657078212385275309229537243454027664508924711135609389095330739258155546115697184719040558440802425619032141259698295559820457864004608033538792005378513951088793447756701028196273476167598820437456229120209567685316743097103671483369136081310365651584359852376747731718028569130022492836853742180267052187974190115069988894436718500751929290039786218096733642426938104961471951501813535195020419454735208842610081464070213638931230080308132782082746794704834426097438975928131102220081121232004074530201028794665376600528288324300761888962568331451678356402244062976116763249688196741260920305270458617823249022170292817509707511826492556012986276922995011875740560828738704608536562463158158411344851167822339616674305738165819955245328882092391811445333825199957923753652119247640142534199349634804661548354030531281478992485454660147905535343249854391475973144128660379360782268511703742559597613752391509973811989370900206124800072652509258277724662357274118672281071206346386783953881245889660841270384193590779613942307609935368990150400343876088089248984503086971725153243164365498198512159237787604236570447774844932959624742787039353023699011306808012141012958402181901203012564674645132235388749014781085987853899985461327457934264105262539738893575553790677212531061868723827042434737150798492147222698038980360043036990982412152460547226408148733670200760707744048918045986139985639902172382530248068679744017019418279544448857354687024273399842529643528250495769743883511494937291953981421629769960981922544859557103511960380916264456172756420189878783662742423807696462029683986092698602027454151319835513626702987614337720743736201996181902696992781108064630425977746608286377195455156613994320619084028107262098715286242680223143461925646436467517516235788795277384393023178196286220503069405105824984135343811494666582972033259748411440070437015261633707542969604495069300859576844025044185461924127603604573881398119930772123684225527371241382111366165945875279004783694059695706832299585446352686013576557585627767654050013159639257983728064738619700237784377771487978092711538029615448733837084422511510831590099931663376263117927394796220818362802710542786948804632851755602889567761296371351515327203260958873953660843016216497103692755507688442023505065167127182356954427828072855022763777493891049962336991673814764829848626468875062673262760179581729200046840357028493845755148692022524261427828852867601534905908308565181165021878751804300658458381095187905108159458126509637299176076044629135876696663878368825525521741820230147653557516317122505805968582145697998232308458884593487509370197692470758299216879768094303667823768524197333224176701694471478049500615899933164624821612676341389588371102241311082590849143605263954821083327341868397702690891888707704454956097179548518175752250219777408974148279575913112836369220968816369146567465253138715092736018912456269944174932823936089285873917676218898250664343876136915088383513191288402025915683636748407746272944399605592003350771644303180074699645453486530952534286932268954248651931781815574389577510634603978340240816599956454263922005068191032740914951939849260781063619105421903092672785451786462007892938000222675957821207548917257024745527158583429483598883512049731839627032939127991479804106950274653962576649976530096674826722471790117986060494085194016218680291733529768566762488578975731589545098601485218514791317837911527955634730334930271249036166291792896248735051065414760384206869307745549020742774855240826163703526181494239728306819783561910239193343107335220346900393828428567113380759660780562667518752342028050531097169989931766060958473320802793717081885841711865013666826700743526162275096482696490410920429432788275772898800777387783748091276542330197171975189345197446423216635843066685867213559935210564876304503541162904540003983142228038916030988566395212886497279842812217401288773813872913788561211335515512165376305167418290615466898337685541526958165657852647376888804178626986906312540835600059614518357652002139579398828630521689874813819973404017263333819849671620682005925559011383938993924578989094977469123314318402949332835293782962838083125715951467504096746679888025402220088146315667982499124899408159762750003720623217667732981981764973849280428734672601513170257184889610923743497770874362323545377947187909911491965834019739710531867348056399185125071988524204420673670092031269173416406116567026868424944689796692592314013382236483448027442889507481044458995340446960573895301194993641519902879593001912681043651981018812780486788032789765270838418396893135357896021375866469407630666986841852859288565026711063815705622894520868795108968013439155844157365703103503884794704109643594899276437329750183578602176197647450300305974918283279434907617378285731867480478496551351864714068593703851550676960297472616049762159372756544728211774166911964598853556357367526734692233933645513911058724718907960594642011480355301281039648766501146622474908750515976618390280422188928518380594661564119356267900669084644199258468956075895459439635718489392684829850988065223302107115050369741978228961615142262708738476838532358469624861895801853463678093960140605106146306164794093291873543616210535043629832752609543473257779940411540738822124390904138012732088982654021446712114851982636511848026090909568370796870142920482249143364682192477441075108748027824414651846619322434403931328552885091077325198560322175594638880834284443875133674644388786670976913067336683124592308183268714181221317234416108999453226816032149017442564801864256942999745511634598273609958616365131747814874265505986100136344583700589597241969163249643646840248461337161806440872209873737860847752126055052657578991755401621435235395423064972420569460431332271456748256115182335232507466136847956842908874140113905336043625156548666902628892388950219770914942907491783367040901569189482885559378226007551799343706888711690125603832132609303620145962516421947239346004127393351810332506834529394779901536826742040728423261153781176373082723713342580616393733553154877191381386025652977630856379694419318700382301717767013647923676877993100978954664220025992715640310351907422014721462935001519294295089016434334469633100674722248446962031145533654966941913224498837639892846028439497565821249119648772842868179481855395392980606475721352428444300898182488393530680876255308405857086808365688830664506158589635858945374312388446190334180693970570821546669518754444514174632649922680029546486310403214592054522512950546817198680419774746606628366021116194488128157228833590526535699849231867773968912363641757234196618083307703395974413331997320764352266069869928880268013118724621401633366469726144828313382459941207369856610878498921588706517997550214717225433506058882230677471393258751314573316924111385120357206118065402203893062153029350251243328649585296216914417552945350341787583579065838905311940490939311483307690485963799324053642528513275701384858484573399126698748319437041081155899154483191713123115986875625826391191020206439089914157065396875013829956467083160672655176529592688043984868423920326736804202366299214041654177557375290121189365130891267629545044500861555241640093739451544535071528447176233118670630094601215053521147368060991073533550846511077357716605331388793531304258025284025970394181304409411770522239643163042235807958883445926602612581438359803765292933744296364087931436891996582725752339661286908844566387882501254124111144236360977154785690785320064879635218799817177173019528395453663875881905130801022410115156726819738562408691766574107792590810574237880549889275735314010512958222600550747866991690637556983534247585880686610820004160168640358328213240445467366005424181951015757991683308805428858887719024445670083145204364161827727433296873547197938368081061340233146676960796449923547354630430066686909235009773630401876541157510805487560060514687711593585481115124593123871551804779275763296262576714625538809634405504559027475863076280672928455932716084655205027182455751587639446044030590032550808113889829229821376568029514943977963469886002091005409875370918487428092383385466246282457302176161752160602395973300509646531232859578718306935061959467923522044703903420706620984872849853894144361010748994782006440977290717358083150724756350330535145890835314463441443322496550897130341527611893692095660954954023070520531795244402244362333957573270429192595689235902752695133034311019535525507770857391959984861068705810734268860953260033085110328322030514556945611359375788585453186569128885266685913271507951050898559503488090203908015178980798612249071889983738257943265637942958201513623968151764643747617080743333372701920387736593921351751508662400299612367447550572564965025533104055034891445706337296068400657830945561460466709989431839018875764080867708615283274782024744222331632108233639329818521146887795957843017272802887587949454666329320062699602472542301109853640935987950253257516601452286320643208204075830196664847745925468632198193783471621049364695124083066206036352843007338453504384990863096137256120936543466764213777136412115325301353775403012155545335455979350123118910042331301186841715877145298865590920968334778885614797293310033791615893436093590459162493355112344525555764584372754785350205201060096293683347103096939104678430762808206977130149530765044820041608874005482156054820155455681596274298983266519630857521198759430628566817586431878417326045667777497242402832260806344435345655888249425155090573432707748087595372440107154124371717862534789081336398284168143131139889207640707265411622743789795959354096988419208872099627253184455344548739615914313763485214573657235191873370801249189159023837807172411290244837557186942801813051412240948647421549143963080897019258913322322583598241616700474284055996729860636247677865281231087391558309107061437320847669667264741962878372401411398845749914188212126118208101909804306143397506259231645584874311530575151912719692669845501338231859052896569793297038493335654464804738945959526996693164748694966611553398068264562843687790898457260190374463500281667694230836794702650679957095581077925364811195202001527544481288920136816062294781005133742778887854225494998104802532362605726948255667214367798693443514067436009114857264941773210291335966731453847631072611858249369584504483699995840218656241771873859650977455695735889046149369030012578598218889785047723463698625815164096110340160549646771384574393760303046023695438677508507501594370214167609188171961754501269239080261189435733378240676484746031833046127967408019332890271397475548110512855977016322983743801622244699759022359691466405550812313755742167285386431904703440858167763581938253605049021772163020233005119786956910451841797106798489369365039306199072358378701508175079949348644715434885450975093127988335762564306181956710301528100976085574976347957747953224503681458531947330470605359239606308680347123506797323990738221339381928887887870599058007655965103703514435297834988309190516217485509901418935355347624028135236295269740513729272057788218115702945964537345490682975974979886805643186292433227834937308183562275773472051788456437198752942228122675299818815885525625116962227145741434947341432633724560208128264042486013101949562804489752576135800161793174009335282595683855658059710303370100568580765964689165875712866502550094324241984831969287451344001954397730202497942022054449934066112937047736550670449911623925488915290457848303220110732900488219079237012002411109904821538566332117540950276312074767970185450762347133452550567958017660947322505497354984222803820350286583700095775840518643683725114084316481095472176442707498367268823375941881880821524606142506778931792908758263020825100601971835321066665053129519196081099961147589240644634680980444726588474304498281057787787925506206436831353059591648969606667370860805671177661741103913870251984576865295351824407541837736148030117980907544666140917517559943409855019287590565892123821796157352395625445811350232168003675503282629629439279977167305733347841726880900702908870094032523800368646328036454776980769496318140646861470873820875003193818470432465510800342953947018518518140638973866556775535706009771710720698354631797605100832079841731395995765705334844435174358211527631292750675970534856479567894019307675901258369401150927950681195215523438292102254690433429230042961736659181456281958279789402824926648754885201493917310196993931914186017116171906479280049809743754567941105365222944969652291202823600329133744981716135639376581285179990685014572551378120749658202003362414057932125705579178387192644106345895728614476789123683576472116372003853324192548396905252806528882842668137367865582355892387916191044414413175364413852108595934192844319225388620294602984457614900329687649878411116158584827768420253956202194139336163654879301894592978000619747895064813966858949394272635118938891118204675893970416146177971013195570952105576629964409408452820631068565324669391394792296539356551020818013130440727046685406233098989663291067472068645474187091997803218896131995691603409905197253809950293104016377110508569367270323983541649231238949111737689844176416012546867493872115917780377781627029005064846489092645142330828459356527327802914290441561570111073625261268088539615556960592244784741236607292506150978261659912198504242005267798276933142545597010777615613269978118672981758504096960049334390445878265926306313085379449621892083753852114933575163799896644673630680265284176313840343797648010745585273050400271832395985035722444883541646085837019471513314580320929869671895135062094615750568015202845794803545642214649221563873405885351859848841464169555419632767091988871966478111950492011506471940051038732141374302415755416154894659190342138423078341904350446772367585635698620119731253039869719383265730671096484830625237978923807351761982326009549167085017027881288459577506652375829011775809239349578502104962993863895372456291700439655934035950155270075154062506366352359890789145836464608103979322085868812599115737890730957851741981512420919571463894232695688621094091785850692881849217813695423546433859041052279168722794559437300640891696463426075064533029405909530490589913225335814709479241317538157154979823510021231939206817313788943489545881845160788842652530913646977110770777136911329457035887409566717245231749177980526016754386819607950724589808318045840135164566281405895658625243532717623911310716658277763833910544942801320404483370794867513536768633422134017023828437676242203836667640068598653171892529313531544401710102260045115858228476387256801402013345720251312845501972181453985846627107875923283317135176663612925071872446483589021004584599978684105361790426829595106223942680358222214048227847621607314319284896101784672392899255330801631587697752836486114817361656758636414050471355076159215232985683656327077603773869093463518903420928439421475853346393272986990831067240119439303616180426083707425898380934015230818268534221141481246815073902262612812581101818706360087391682778308458519240865673780158365229569140917055265830167928717630911688202114691095323630242231048584537930407702722449257029175012288676143371920391720152111674408414270102395589225432154073716145802280138817967951199830567475793850903220425104661876289666622909187784918441183214876513166551976484401416411278924353197435869963875531877373823045646783276527038807685093376469157483514189701581460232864668248594059604316345798666920000933415462783590010811250392410052144149560123071009369885576472125271432946608191800296272287950794084017971539100344321157437194634987546578352791762308952461301566271236734783882932722784677739637645129713893822658689271408681327380474778599136157887487182821282340922052677778452827622271414957120994182609555901367295172613933185408639800637272444970128059044105352848974052210638143946480195105532797947486079342219251146829604761289268364632031916740494815613651821312582590131337827647812081554121406967499145948347285505524424574360818775938770057847423346907019917658326027034471705730621478500869400928489653285152834717755622261600732812009460000127939523195923318311490925148975413775889823808456878206558512664349841470562886496584632455715143933730579444109463240736096295572696455562685407257345764601066599001637512454164939606621996821162159887760950354008738769109521574983831582174464327720499443111000085823079765473247051834379276988802611784901615200940161607776869620676419391409439398468131823032825310372113270349868136579361420031784846179216608249294721287983406245308009641883940738115379993644917346789161690834708800238336089856307359187158689315811100523059950306601919204759612648507779192553907578884263949550512743029823547224524630114843974900672996914415950230701811513389257903624740592716176941975682796345994594873284319783287977083350643690833207349791885200337825316930303648704182332752387786665878357029119127969154204471287162091775869322685664936600335831035232895699667701381444257263943771986040118441337950517924971194569116072818172250643256146097105647476720239105725217096121825939384137587005979846426316617657569160994976371984001659861554592862990888555501015745781036587756893241482672850827331429523564033785455959561121451920317116356496764928628586438748423920543840969377999759032658950938171841233709078532028824717905068910951810050995642606809111373020809673849014618613399083522384428666098767193451203736384735334596043248511872281795425987155194063232219658683884305959720306442544790879675717516634458048781269961723179284408571185853025998757169520754156931249984326777559193188128272009669340759199354539994827770709201365143833688147824108981215006475757878072858737682159896753481203547298381369144913545830640399803390427130265524009507728471155403113515491734923137994232437220037767592650696295356158212748721672933308894649235312399239705463102941918873718170473249141516962344865080854302166219633666478589136415399309677802570316525493631499772654760325592062345308067055436717675184064538948613400025838711729011066513631861288561709150342937645571147504374652609603224067724538034508205734291198849952375574965360651503732153182244283425014321973287750529627964318724782201914342682954545086797126404876552433073235922322660085533271213360384818366238203195680136070538722545784558594055433224999694687608648880796856262096937789005150192659649593853009288888808537782317303400190744308441305704642879770216024459138760833639851997639327537067763714139250120932643581573597465695156566120322664476451499319220453107961661508582819109406413071096159547522341587113553829395697339720662547626545288628456970396058936312604044612159405764590858083200614547708548031315388256708987199851812883799087209368627018590872386947008841401321120954335685746401975774194847996929228719745153524848887682439629180616781993778206547727644787701980787241238235984004310332510117952832725351633088178895852736477999736149732354439442365441360058827866372063042509233972638680573936938048622964734172652247077069690775303888770185685112875092103905959467725672878444323386474739912418613441111457036624441360682561643403055376678010531829014697598044500619476442253714728899862077758774789490700715333094314189798167773218611271268244985321331509102215216569452104510666046814301583377700319131572363136516312814498289007264954867601700119213085638783292164192556006800168777534161031500271685024959836867194722993011042389960639281529564414627936534992194337846198387480106520299473712650926437326916303695210943053400338309727048271421240371225954137866161585251364511411693433184259990749689603466454487345103212094768365585673405994352305919329064926930315428829384756747219152433778930688019908995998284816820755590331207743964945029499207055518618291978629005452262200823048670839421834835275634144573526053461207070852312134499976713284339860280026705010750136056338226422603266964093206500523774467709941397734795773003639750834749274937440235679091538964650039322439875293439562199983190800360043818554455580249472491719573056028586045567794317737009435369520039971936181300558566877955035397288695168932387640403122334602385484917356594081603073678677266058279717821018551685356191855970504421764084543269979823969427282433353455882793249975500717871044567158427348966442054981056056092051161024334013929471290015037700292009514111064009361945119552247784263109656884101477985516409594321810332582940254727698475227291305178783407596878743449092759977456999529553841288265131396383670076820007179564061770036089140234706056687558163022747450679147842002236898289471136091629068848674204869232295851916388714918795045056027710107981661064541582573140737733826150524471055234403095544705658736234000769922842620065443105176733019851536589163481886595775828330798507979464881336669991640617254783772810804953291106976756428774658362441748256277065170484980649525048761054718505298729021133770231208732098454593677382261514225385964142826975547764766361289686191445987216425497941753692771364151951995919665574696703630114017930720827628421549023656096412489257253250331640027140684864998921086481903780050186733995191892563090357588448953293506034724458003285114302942687956865065561860543129758925614822724477862892562939882985777209471549246216264221998538753639775203227041595237881137603373906405642566151647656311064473256212899822380160576174042784113246206380262985657054979730601150940049449537151142167453249962394668375398022955720068262515805351207331109573674513039471286136742729869931171186678985416569884745007966323451226418416022048476256426005910102766372280806181830486229686951806398918874912653815723872845245261860982697698547032875573558112087260171089257121553836150790771791344207074834185713023789717426925972665699556046784998949525020916993203768291360531011036934586455131261266688580641793222316828557614588010708198559235472546625261515116214128703173381467849579725932831254246242337443830783789235201691086387610900078720794168822750561123272927018350846539907674429776214956416220141029808606155461207128949297796511240159978366448479007033100826596948795312918980431763130651781571580287355002785484942518322313226784046301146284206634044648733183587685935655700232926023447389903164312028490393680477907085295917462112099141761937077152588797565477454236686120110531229595688997151707069023578659367511901559570606676491505211653839387114208449607111500182362175296857452528457873045005618980334788892425334638167634856281471613509865296259920988491364710172831267003628683788316542144611762970370541976915965835193285612738640842851602919592667391903517797830236232120204051250661530412600972174922545869757771217994504192423858820577476946717114616666132570406132827284506778289300295848177160186666883797251885971651249584500530177741894616585163415710211811728422857923352274115795857502447727455441458391939884770809029085011624714868902406821733736223118177307200335463881078802490329166662070297548033227433316369199440083537001338674053772081606724603145485804213921100243756447813024538114768390672094958545822695390620684149897524123751745770269537587104489907906034358892096293865450757310127201728329910298984638260364486513457239877492644312642691282983431186312466521253549990761510496393302641165736452839581388635206370590427617720851006771753108588286618325319383914512654820928864520894559423095853837021975131532474870358463743551978005952929184021676223050037318649221721605257917295954268859219085082687003346055373536375999873851074610415582079687166322011908873930722207719888890296425645214230092522250133364373511656882422343430326187708214297106485619276549851811868789790211267594225607936234977559159760008042200856830138732546039102796930115397406201279335944193222240435900730723327151821259262574301659055321713534852813043170088012727158024573397011322645607440887269833715135787125468552130424406032915103157124048219937852330753337327229311692266169202913761510856400697608417275524062615997575130015915480463744698631883150023281525054005903471827067459538616457479237162760834257983962063353597104198197025442184362530133436946351543129987040361199571286000388918433644120612618367059113618801601409993600440719972017857871334265355834320713086604904126186646166031233560163278282064496420748985224904479452931203548263821418470357528233734476556156491258749079725807896247593092330671124695549905831542168590306956332044333265724765632764131474633008412204912740727601275162027498032875149169131544968574285258673071232965046774036610940936321909280600413783180941546894534313603409180855049445448464505488132789582336596999412152264560587737039086848953933044189090826479184803795532220477444948170694362028889455633274277326885472261705354480272720041638967593302927087911015587465251888322600359050295842801121259428157133781922437392362169939061405145804388612334192171503972192114204791008690558285798988985775619163330576189911727529451014263169296976393542285341577487470919834267766554109563421427490061787931412593828018206151637494973196115229772347635274866377399641947411305861434916943254773301576087209505252800811957264985780711516249823365868042204085726319732785471266439991158243125522482097622856079078807454834966305495736294912547065127668488698086220981957684420977568729516454861078861202401776351628857297892898943062470090999576114487378756814217438263009968349549722519036543406612637288393144212322203792468977359849562602328376255543863005218701845928073301434244330832501278758284268729843129183277969315437555135164495029505193348125757901644819589371859676134683056527705301274209293759240922779875285137534436766382658124264069159869196960285200858274076635761181063939779428246365806230848024071685313978511433394411356414065942026717970638908719872186694316809583114483890765025110021348733888562740519897260425853287116847777149642810670439843432077602704028064398200628518255904264400432412260978832095421702150849631142918237772265247683595258722755685243929376716805059522846956135643612581580915103243698089846815690787708559238120273858551340514884882885244167792891557552825222012542939018725685145368167787141529505292154890606652048521998270067322371774474855957446397588706087503679241777907350172671461148517698233644178043409056450412271578017149446411824381014129702654073627240066370029217219482099114088897881836942983159150285164042729719542582541977234128991008956635785579031694206061794057516965758877147438740324814450862259034218319941689417478258743256221575472658078354470354806676698229701971418317180136439186922972438268819633666574109341691458926982145790778323369405982519169285874709102099651290602653349798292931344842995319393687348783019086589160765682200504008876274282182001579244068376941732360677298361893809029426068722266541225166151833565933004925283043623087922319956264306162764945319084154400801536559622073694640682783422745207920845605894644922244670718674049582179577399297173353535914961882807261421023688088290988496666685024331771661434848826032088309261947711305026008036487616521102879426163099996894956088156800008460531569269176224397333274947535691047538199646086100234883780032860030403984302666141524600216927522033325059231200973733071872944761072013816041181049180803647931716398080954849613500305947745871774419889132551366117938898901342537922176731734742263715695030093094229551757821704047796270476537334292344588362651487401493732937328485071890270147721142961978949856940848444957879490332384819651312054251725782704810710892716402150190306293043891566568305972580245776069571347876021995425791290767808856139336493749782286664092085425074853403635577375457209170249167274867244000759306016942164551590959843926851954588078532821663811525628950306906333591416745385244017379774750494440696156941702550967520332895674184955446006359281363413781585150915818321597423353795781101569918392273678881056973165516469381708359951973413459854521091587797960761620294272395766856131320068414935098382027959936136140242842213467247931627375207455604382915631618064474838817867183684490264042007401537663092128487632916394203209439458587603081504797541544135370470074221341510090852572588015577738514876566152159729348937938333349208081488310284924239437107618663771715738553966926503907882600410989469495000744788708890001590986436042677775757009832146840340210681919348191599361894107348223373747741280991088469621166994518076584391558353064298680244826167062160696990529318394147127285597716286696043352848086630839552119449377456821353171165176725986582648156921507703279329168763578688422313338741954502331294942751084686602038336171454626986712928446170830506459337173396208530039393987348201382284562614446915993859002810760632931212256236814688448892621520839056018019631672352782454394256673945392907798962065724203334870999649960572762827410587840409354017821567140886390569248283619901107658119542449279464378642309161709689503345386544574389496812844232194435013053113631314911984754425135706541187513880789677718820570438814649953536316535060333907430199284224731576841522443152762108979001912348854812097511360565119594786221190739127861844742347539566342176818639879466000133454912231244574550040411177368983456219251777730763683617422875644950463884795633343645430029953849064554061415893521414745700811076419574963925335023033499318220433118609533122061134711778062365025888161806127603048645243909752142158666318795491273731467259771420319619949465100296147174464922674926738118548753682883067791969680685245925137959365135901607833881297798489562815070421464155687857942786093308992524654372997108274326531388324972735908161065817240695348149592492812710635885924222213102258541518225089147694373942230043434548443082999215454568249568564480730874183605602666796478127707231736816225670183400767901024570252626789055507602154509614121352641079050242923344814053958986754700071309094841260054124353434461812591973546692036421391046467587227385613913360378409009964260414541849199484277129191882943081630864785270297755535962554475397363058185850440666598284258406211953367162497912063133413037841209867700387130860542179399516913543475965978975861438568288481383182178446775325837867205570544692173436666745710230450261971212906911235082932395576913091483186468695595670394284594192143235361360529459368476349912800803361571456569065647332083184247691598060729389310293738792953737624460207354185984291149624536796095004389027007306755913900240956236252769426720614317317807942143661685684904551393401764867090648327000467311900799363266978812619609808653480152720038743632105785708545501757337220514433151412292145315564616327727026106121086881127466102429865327102779306324168261600950632407536076541012400416049276128319963998067621202941312780153451757942350693973379338923724574591672634771645062750889602507397057934319953158546073930689744064013308104772676874920168069916320044407746940632368990785569324868749616975135692316745437891953831296066544720394606843519510901922406391567896487462956840385253456684170945667856977309852683428966786293626878220305009883478582343726732143577116023354883920075543155210425159429668935900192562283078328837236018057601102122069618444969896002108993072711018092142177324206075527925634916627463238553116542839988081482109244973345813806031337221063539661912494921205064237880752991316800763796811572619663351337155817819012800727639119963161882410370805497635596814755021864768785464570787638523635574519802544097450580873322298111808685224886502566409955170235526781593535864448407777921295996928742196060719213139451548330653266976405487876184274376050317900889768866535425726982758120209767717581892116269180072477310685249766563449872951947626364034281005744222693375787759085894841191223292821698770705475049658615002780057246164102728943465749087345873493772098820289631441734608477575461769112380534986649110800565071671548390568659986361518991589769389605952968228518717751055878244338806945622333277110767816522200079769174722053895660422623650051001082014416191983020025212594083147567439971914022026847306686409925189316064879767566580233722097830325230160158324852171638710344312192397666402728857602659600199450270879192766431853439321471753368898183398800755225735759819908765924820990022939210446183003496281579229927929792126335959655556273314505194958180953400894635015708577701230691472001062353194009472008010546195069014753228706153693550129654105288137522471940574067470775711995869681351230661075750730204899828106543883025950994992135445207191251312480026516344480350480395554726131385717841428430437302577515822932210143050182877508444162903790036794439864886628497137994277932268935485086792122272694884431009268116554633105613417571982845199637937083512009007172211124980836114539048514894642906056795106436871343898633306249722505558601663487765814609205028188841226456476861789030463577895240456587179850672950974089080326061786543084995362815346630129143203639874314095292021645560874278101689912080964483468145391395238959748447178769286886644431416525923429044825872008061428608364959421307183228282946030818427970582664517553078503381412967012705061113549566167424692517465070547524181441244880318007185003793721675482124348445972766044540743431423951076115847613433987376212917668973517468453170189687796951995434586746914661763007189495568498225932733177826745619418410595572901602625958428552600296488482366138032765222047987157650719400028001530522847546403918833170414799180787370867978094477555617328801208340962320949398522864465024345213708796493990641795826600217813865786436431993165295834513125292446071266580152242114425116399523225816120884699666667600311339823419615433882262575234956831807065710455484992814324686197971267933184822737722974327913726609367555120680661892657163718105367364845227387878389085599119248639486536663103654129467213729677935321633894599392784545954480594266679173901901393362456454345671489563045743269789555689289097110366096938564354728047080804882067871689624352336778617443988330009339429453030170630994763233998415546112815164546776894031138238069211668311352722789882236444964531862598762897279924901160181028283993186142156684538986858800830057203476684936397096575055787045887316847666218282807702378988741928767270882537616688557199810765924325994340167265043620293810707254752102827775546343639385663371325504138238102692603367344121082966001200540123503751697671308937685577824737665600414545559113217985722483063067782969566706533505046617898249686383068429003651677976132395447180737918561290806635125224892445846637210363441569800342974877716179364821016372004677211972128795573327462191418045524932198912025434507508593100867584532172473155384257911679369524338652729098314538851434137040833013415395516071522725477556318546864327273554238659958397020244250877199296775052125264822153081570426832915053552984735155279921571036391397640231290460027039641673606440305331828474164212574841501589122467875536263818777987999474201322230777440039954312346685441989951363310804656736283747536192510804540079879856417152650236526934193601126774757662644518600216717989200586571910997874816148225104064737599546706750076649333808679254346266268504749626841468791773449213846652517555278304246073266836816224248335428302236418355400082281919012887596807070201131433436302740180674726662094169130427263573857023008282255418233690747327665907253528108295871525088789346922249611880089387882680970677959544873009816056496912110848803288562238553608029154231774985698229737158804252330718740726405639309322452312970895292409600995761611179738608829971953407037242254977578135862439216813606108501783404624656873097523444475593865722764137452359999910332303666243879943989515012497136919689292550994548891381308602406083420634314540561695860694464556578997840431888312602993483703655036641886041888371702609230672217913110684719260536472686786775727551341348478735072909590116621632650559750556139738905999967409611852474654986490960094869650339395050683205070463693939380366376801202859409471243844902311691937344532776852640187063713405179503633215620969898333425971370678365938677379871819344632122838257964962572392641946301999687082513425032707758509168675111465198454141641387825151340069901109023601461475311564162307017877717309342464301487688874184745721907106256487782144673977036817095689915088303222102113066586082175481762017917805261427707959706025548860226651002360722730420136987474790044078337670274626914581653517980079046182043615711783721789420241059122854934809174611974833878159310727372694265969083299271687688303156915430246340894448962027629686128508402905809218831283938664632260352526283535978632377992094931773574727130586919189598637130543558120856827426005878407384525963714015654505746055549704291290162401827145924129001825674810228807859133612785707898209229148141063275283830707642669898418273514753062072570189742591517910135256014423062322379603728261380598254750310290146353383755237314410000945466880885176432412549736042529358670641624158890293254993842280044266370296146149531477215232864954326794585347347935140631980327278182735409647882102958540191151429488987959980925358098482839918783078867158575810126214989263562223073318384637703957380342986319595651815224649914443964465669879189867848934018456226769921475246267416405099210548518627497652266047116902723045274923862148268771522618005817585472421189805525977705566189589175571439152724811251033162329073717936614418854152123799361836192969292950156098668948669841666126852193905204053794789135649209851624003386250107576282883732491979889731675790870679650382379599733727549154182182003589070539008777384621318298045387846829175235885954725563999866756124816589847306510644097098105370032043835397357906191462168202248321772803092561059468161935318358815819316996129635156980753648988049344880323535989965873716539282564114630225103844087659360583532496941310556421301670611562419486504343293748703228139985176233756440265268446457172725743047298594572007150178292294741270642814317903253746949662944014598534902373490698542768859925594308095691804082437412144392616975918403606607382522501017474510203477123658845976812017476789409389164962581269574443510865555570519738351670700540521631368899205206644048436414643111148261845475279989190035458658791213664786234557207515943388230595999497128474351670278977826102403580667854523505250117153013932377730656520270947489929502937669360874386752355476017919844683602213156499469967369596442296951286531355616158321865193141460051792209127658709687001408571959994696153317475116298607401556984515517939732300760856105846093403530816166389193079270551612944272825420649291208263967593957168241632455510413710957830315535372234299946503577150291794892420042027611910168320659107327026978671980608443492131965500246211118879935722221221415583029103590099778938828197462790199731987858756357062486181236883988602396556786455966182810611240338268654941118588121182600890344067367925591797726468278650868739191010442581736687226802663833707284284330083993600381628092624041948552558545143942794386118813790994924673388263495627749014544251141130124991980252955865873479447638899054264245901265223692594325454707578798077645957400865701145795364974677595837180830906323599517169940380111057222491685589509608708872443878645283849824838043353470510655208517953595529009353443787328345362689274676756436727926355231986410416764386496886957046835483315149746469079433864605269305720437080405615088613438788934961702870638457615601131367531700538258077740315739182505318250510947563091923740317279760618309608613797602595966034021182233061339529372867166625659938161261904682130381721325498299663202710871444015480347362853763993234653658127427351242055998727287036685326809632332820845846879578388974368292904062490107677837286356797641920444273889765778982255318608100177180174309244396788819967031487296552177332269982994293584552160032903478040530879175245745337762953258926029625047601378165143816781462693551046797554013450535104205120034110422030931946067739076903225926816831178362863191957688205314397467592028047397610575573029304202607299579254761652087119807167467170726173443752111134841999337653551772923831212458257772229495103532076459232563785256767789526172969734923324834381124907173326335181299125093402087902647315308022792511796862760788545945187495698250610959544106327414414625987868027397494751672238221609880811207354967347118023286249764717963253204491334366835941938852774298474171148905758534296180604487802291845330749608237483726858552820532241834291734821907869678420036468444789048475509796046619489658721254140227352835420576232905989489768368815326844103002864344155481955308272539445869300167174157929186510302704003428877228791115961971514728226092997720287061379402670182644846882130386313188216992388077121621080896884282878644571283795832591941156067374468436856508127018520612779806911582397555956947751130543671337332698778311117759611708827638203974764577559704145541680874615740853796099771617110133182290163008157038284794624972942294811795146211508356359954411727203087528356081429284837335582588168154468685519860267932345812531048608779448838690947578018962114629683166125553485459293743345387895468949559607660198629155623318459443943095932471165965476219183862130540933059738805432085378364443395371016697770940645226648385561485916243321810297987663542661972267946076474851682409083762550702945806836987069916489804127497807179067898086691329761505578428455509029899744978265297651886860267244116722454664899766261206515346885666203145539739210239196382590278091758185294278994778660094320730113119322031392038859745644712976882576344853629420869914662588477996038332309712164305338394832398837269016657650163604617463446040471035541555461991667102895329474612830848909962645328522943334809438297411485188833755059511500152269153981138501405209142741168512984766375529083499900182370457364376964722354550632621339016930086081046541662583700565261209412889126672550754111790888110800038833345500599171015769221418937578823429156735925126228901756565434457379341544913026654623727349054557739503334922306770254525320471902623471508643905348536141768830265124292413598359549271810384870221224208592212957568787669219033277803175570854140454411541429062614818340617087577514980009975162750603512102028615047227938823579894566132486846375537746784765068461892847734593440365700929457264825161333678675697551146086733958786420484734266065271620268898879819789038034184376889629117085075780446960711702400075509870185800800197116681933260349962142792236537645186925234444811477544447104288396082956476129579134927442772637206606846379313216955716240227458404331272671178676493490796340463963509144762932858676588413253315382023364786861765839018920514357090333765780795316524356375329805564774582567041181405491729594718841014576410477806668007138267097693389338766389843380418628709471728155617441278789527102097448464852872639691123029323619953124180670940306724986506475273955886427295260876183198741359121947082812321471560975053850624952589398758449698563230986207998907217327480971739247331007148294244910653091444615111646129808015512941587787502705224562318905318279995028627457742283844196704074879016447373785297747510014131683072465303159531974448274467328739976332275564473099339431882844620984027412248967244944810113558455351236420705555432853927524790900903377963128335348231268147415639255716924866317251574304137757069666355098127487159462918555254859948337044409006485459477818307358473023765816884539414153022451345211087098257439266137187696776840695121871711939118318584607015259092571081185830356359730615060230332389648805995945593884177743491606785597805436175321028524110713810543723380451372034276435456928454507521548761215461575688646591188178759838828561521621078792577338673193031091261066202166469350189076528216843543624551213179962996729229965667552524970234351877871405973409758655493038862058770626302681823376968331906352990662472517478371595321026381763388522272169569215343493365646315790074642162225937851461548776102352490641237154053251588521148844642460204079767195912494639044867068787055935633426945234125997841041534970031255494717148673079136647045520012262305645417451177893966844326612867457292383529736056854189234307120197231910826647364727136184778716415862288334651608146833186392589215280599857435321351684595067623146223339300586034611053104295533196066685928717978087839437141049566759912985622689444374558198493079895104009155165660970081145548118304262977793060998353395555588290805207262598152430244663840622146150556128467258910232822624805421985893511713759044635207721984035361779048025329298017558298103426398083376061040208740893649427919521742565347164822103425856657959916753315086504178629585776637859994882524897892385608600835607373250126707640257542492755533819748203011401873785284307392077371948633549673117880214683028723149414243676940213232756084974078617480836832082025200216901553472086776057459475684409477196847894105808229429628819536477907508305593952727984471334300840160645959784175948620714608062424053050791618887908305371656777319073672620852540376965856462280073336223130159458724226689042028468072255464592515813728607248492750034288225257270833414931832824729579336705574068561242538342257354674713084505332628936238385411751236616332195700033846237069381319168967154536095587042919068738787667459654237783331693475896282023101108417405836006291681694706259640029690732816987885655429026486504248580456202503471261803574527583099979693867204344542796245789502403775799945922613909177694313040751068961791732888502529979734337330038970267317887684561147212957744698249789772650949833617586405177283489767690550329989955175293260211846207701767776832016942000891309793059423426960234559967660303731933622782001697992769513043122999976047819513790044234069491960306598526773626524550686113305308445814354203696163636236101597447916820247231642125470395723184506420747518895714823509239154995733090455977250130535751867457673374576893522927025432295947970925905207270523689016417814745444278509856506407119517406230923985962189605035814823886921579536193953323898825979376628925800856739914412825673829799508007260024103756642965422404260433580082519249220213127479367688934758678715934123866844672220255856460072359637896197930177343136029085710106087461398155772856178572903333967802135796811267302780622139439214253404536848273026583513655042401914670746650864747718015362917878746221828978706327283502011164892209950085522495718023261681475229296643937840407665062505644337148556529914018500315632836858540875169614446670390182393350730236977540830629000820139799273618599162311524764375304418871373389321965397866423578577246517346730250727349910746995959915369146600240110059814431864966450062622107362068854266703149469242177103087698933560376062245832584990711415621775712701218538835075227079001571602527871489809332963530696275259572288430770735276976439287117307997629733352988658641067888767276728119624480667401871966918983967114768671608867242283221817411215709326116810577451575511304384767356150358521277477479596360080200072445909713474369254190158293130924845305774803469494948688598552436591558913906650034894102795060845599327991948308921744312595172138021595682531475645824163727837776670671949943218784329467743602337832754590109568241697290275093109362137865477442537927895209873539078628630083428833015069823436136667599956968825786477737935493627232519302520644440198077262805829822960025223240407596436640476284015915953013083296363640125143561749013479291991595828377593735208515816129782921759081794139151327629990954414599452433270801007640368264001716482358212570775441145296957901308681844234957919541357045821894373974746832013257036835485718915686380198580866791128868991700356927855472802799008114050598436819366985456008242973792719318941590100347956011071099741590818871452026772585309922088996808517942395643334135916311773927310688474777781223373244439603069509509707161279243274917998680105876555696935122678581717788524645916072801302121438235497420382649991496083508932598802530103190796051319853588432301796872901919201127493325321348891851180754184175512202091668444145204805538031844386432246781874982189884968697011484486929741742745934955608112627938898867777181662064980373339694767359239093745338475969525265591612359608386895381643255569451114670280346901752397167195688482742007372669426513507750019764563885202235692096616257604719584579163545610491101226749163539771525764373712424685124047841799175874557927824811460618424174557158066933347452007630876927633391182915856889724429932149330631984336557764298544550565219024351913354133154354545508933057745822758507554545359425741264782854732380952959626164992991494618526803050935958200329091518787226952149296549720467619183225146095111697878677677056251174197055646851861525373739666372041467819442323881986455960985895070555077350641755698577899487199713527582569590863874778724705822234820864166022231191179033938873932909738810708604974582049261006730788058754324592267612465712828509968838674511162140424708132527208956634520215251369598454379059102556929764575575030806854520016342564769205614872982120126277130428173394495848112004694190596547035528108629997789977373471158008234116272965946485151599397686741059104839455211618667569550726278402806135990118848403098604487910307944308857480379111675864887587811349200701686905928106658382126812715181637079454699309275159661662821750735150547784273870875216811086599956685683806570705017683889587620780375891346505711265702544569083928474630954226213572471006956757887006168247742353607425161850253896752679468574868373477604908979252479287170613742563295076637271641118175534692997046840046376938631480012815230153710528723329398420653221491791495291090844075823937485885671196315507444317062699748547263324736696607681563959963245723141240643755130739394387432093874580206578853939746005837212342302859103071238110317183104248057568904557672970128913313573541061493267483505440964445822710875952057977311982770958420134521723922592553587574857191462026783804953365418480462579879598224581093149009538492166914312161682892682311272878385471483458684030582620730884438474855730995802357349233085046573117067240213963001474869277300717507086682507534822767551994520053980839670959514703405069212731233240922997832558418087803521715744842085633538198649090422599170847042362067383865884263787091875907586938626935155120517358348401019281305811076335799459584533766559841302365083824522867745534685761066538680962133455244257007555437678027979844460875751732058394839732133478635836020812523105999359463411781580273338276783646099987178773595199273317038236959818449984499594656563783093599389854754166031225503932285326047279841308091495532316536215390545697846199844599463259056890828012395527621500226953171404548012140668716607708295639054739293525879239698836153406741327027390773617078081265107306812295881904700189153612830841815517079283005953973332898859884252908672650630029426286061144856675681400448552936627088926584910392931501052638896716634877174176171598008841677300187104562708803203078805703355365973099890738086052185903683945251611630616751566483943336649727875548460657785810011903300572237726098556498595905287279485066426565688593249311187703036242188706023568599533430109046959254888447972312473838391588439846944388345505769251831224721658778549477961509375780734584700535415465821534033896677174494713990801877774949012597920984286483643913562420150078212766157728795282536890410176535306671193303773354083910544276028845606986334985348129556078299219499823390662250617602048479251457669331095269662083689329629324332393714346790970354104013082272582431037284940002393168189310994614377260297016371680498279914080956992950684208433957875802820013914709417799755433678303734068697012487262968917628865285423660306383957618966713741744886893422695653427675001498930021327933468290939307334942672503588476626397793567003418391100886794783905127047545698383227574851602076491102137597406421742628627203227965267065115134034688750028217925238055078408127187252213411857972147731605703191496269738671834603740540775884884373781765025838652452415636651819380921714255474936503823141521807261645538630544181713508928088179282921888574533861880774382929552364732248408682549047690848043095988671461499673106938200570465961876064817283803887360906675305182449615225240946668027654903232660175500280699491734914401575920190056610008820521257955581886448078788939819668349922856185294694318769597111794579074980598288839431368243626809890342884383389203409964160402087907126135960500749990031180408996334258194089776260325800330736370990345002109843653551954104956533837098502577962003032835015806051595664428430515259493012735333179106481777313155369036405578049137371388504810229568541766640693027033413614617863892320603696640323915831075821780598847489165150446313584575337656404027943522717395619000379522977993216474500033372861185719883529046149337107098865214167381309481015808743931775732319553717665058045645107199570696941032011927525830407791937448447898669059021647582900489573417253609567614708828165357877641167756463687257075659218727724439756422087048630405244417731648960360375955660411608947374323772741298610708398200640183215180014786537893909401789226463051496445651586056852939187730834255614216751070110327509120037081972560374044783174193000627549678342520376880296476165659830100497753954977979318614669351682416639589276531247158654748486172665708644149756069677091879179418959608829787305366033345166102588227707726559908395365083810878635522667200620339054871211003632765603195006413088846672688938554006359366523040636546898247930762998222557458332158640732930824658060200995220072336851726926989426296535706314814038949707276378982987216081396754839499052569580483276777555853175867829997562475627923632624646377757808029896781170619283108810385514529225121895662019961336947336703627574439960954025848981517089553743297099976690289757755258800768213028815471415002468699047712824307982091851256023789157379835526295770071251485723630397334123265960073884611597232455556367747699251435657368547504039286999058285615699083621055184445451105560292411425255285245912957901600445717392385066155931741010221847123428847605836990072546111703528241684524483722921912307931182682454035859188058734969566793101261548161239972948461737161996553977795515424657481191765809297635523117694843954953573680479527029961946311328675620659048018275190461301469899145405220080560405142123990788584650299179497635008190456809867398100352255647011863541131794836214523975814612870928719129520543821499868527783405807286809623116348127475540282667059950137785733142824723294766117661896135939964090585084310798999213566909334755531544616762994421497163701137732271263011818248401856254652397199251313510117610200848981963188867004290212241245339939701658331684760294920934897488909863068235530889059347690925332080387293715970912127044696627607789495312882104182661655722923972338344035017315315028445264105880598468907655141258513680685957519818705411710933301265512496433698592733476027148272769108358085360212871166742161361700010023638130980849632769115513894840770822634587038855531248397222328353593066702962622795525060023611195047898635967898267000443732283109401061432682542471012649847280009138154931899556195622443132605032982615679256723072780412512148610018592743254213358924807281083715502787144974378939490355901544080278123967004739229192116714570809212415441221316398166509460817738448617189279021873260683586821751346885766723781343489065089384540706004500542717303445497305389553342260664041460109965166779252803580986277306230999498231278982434780337486517425498732337726510665775868348042500217765427363223704796082048391231882590488119402016107081487166583083495982652526579157232847243274974334195879080161346651715549451059458484829503584411141801784686481795004685753452065388114988875829672296588400244565889817889064811556412760921236881908368036089219448479906895052193279513185325410063357804717347214603843382055312217903901276422293758413870197832450857211183230886964546918639425475011344296658931671921038953747478004326882572749847173398061619196435928751028823663580360033462608868418256477138517693467644383105091348646447437214966536216701055221845836257528632454832138573574438619641526116367908987111049486890097173132911633354606110884471683473290296051486372570717244187610438494509877626103771934562086637644026944463842525383813740877837687019632712876526751239611488272020415506490233319447165561238298397648047045886942153249335929828426304626965327938791731899816760165946778662418071382428653117402397994372898378401035415740239927418878423572850756991427121590150506716182110062653237601818337012848820367823810653696578076619460128400177748875153459986039597968393505026290140387376899645763693476760704273515836648217270502512867840601458104581891013687523714496649601577748024908225374807575944910467260513440022836163713065898933486615937452199740043258987254216359839329111274986817076311239080642061449772081635294303688440403997691494933382178494111697278846351092928201239520378331149786187083198512376999461767464814052473935256338872580565958320769092072976940320318695133589891434918558871226788627130209787214396656777307869225290532679748484563849132019033705360959998434586940495669511314970688552031014509547617635208829685121923285612259487711980614045536498201530084236872115439347406982811707993316908694021430668366860756758285384700425599363521199184372733042178021773274705847177317502642305060659030236141045464152731380982395531141674496126164827473317914814584893751584127084823461145972340194161501677329936866534822256379087261290451708105753122326991867118779983064125802677634564762606900061131497659232204562518692698303725108838345236781452155307305406601586332363475787932289628317139555314049122205230814437501969342033626522096157021207995654611009087869579116015416372244848100108003881637723599445185645582417368929215570813751981798766072392550920537249554268074768580859656921091478082946241951846277032051549725947988197760391548609844674826698988102836764614825158112722774607631313828826509931500333785442257415364051679427663469408332607144890494379101517999591398046553365231106607855591578581233662306130560794160691377874913985838632663913757236454586722920724684457554018924963245088898324458153924423984341192795617256614496911326043780379841080975495293984137789821212002367009922230092348022757088822723086539567764603926905017198136552106360949020191003426343151950951835863473508917371470510177470700106148672461971760348134456698824623654972313313954285788757355160493345454560811375800921910064686707867888393184420652359809300159548816209228167122508867117602700616483954359131911259204794575622772960002918370853317006442970127933412019910767296056885611425408235266520818725764774695879188926172819233501000836489471859604278477910416945212680446349601728039275172944396483225063427000509530796550038532446119855313024751558771692778188317775523939297348543456398507150332209029812791684940432757285293786333193440010521805531741555043416104343337537879358791970334694143364887304497132119972139344873690059673361451930752972973867588256914690336244782402878789353744884777434039138575282677180225066108712978382807321104525277874548251336198909891552097639783088454711755982631401776986756782388526232918557240820033634424579165482132373397428245230308808217428599514698597895990423821633811323697969365316533435122090870514203282279794276113383116675593641598361285594041924243681948702272611324927113287942642160062964726899132777180439048203796307856613265483756055478713443894277380852940645793627510972402610144393101503216291653745453469839347553729688981629563659499086654224569755098938425228170920966912247173222240263945440958665239670288749197724727390432644722376740115160662214259274679117124031706969585103474285003695079181099781199926776612303340251756191278859925042054430604482863043087995895929780841757110250044964518046683574086512186971454088809923335162366032862795197840926448796121803725594917988481305234026335020938781148990868314260638088923208255574506547643724020460768300709444039651095163084666603635907317752732660233031509415265071770875545678464897502112250195656492789457806492948834891415579702802093762334406698813063173046258442096520219073152150212904552206877465033142644137257533363545251716419055350880997695916333230287938210588635681841773856575752911427581381391588494286361831608232075733284615891146096273878223023597454752690841946085625877898311743980996120122577533575071198195783455421689318378870938129303118369497753816056829034546083226906635014060206454143593241134478466515909524665506466926313943779848923940821941042645445249707524912558320144336968777875817953525996746624546090964135450960521064856767814388834588457455422612979131204763467370394780721655568457497770551843935575301085147942344096025206400960554200071272688520823503059409131195621964925905958338079521982718199894237461406896237251326061309076167232914034710361781500046818664114205785083968231469094643423278330717925977733997429598382410906158123271277281629461668203537476874431417678917677535878864324918089115174969354956828705023419023058368376207330764066712473236797319123509055541343125505055108649928732056795208806375402400515772279941490974594202446434974729259660602991417628238590212899672439670042043805807932596793942765447167041057913651409003746801061195624699767371834417433934943302923720260775068200721030699252524056801656704449198225971696714253617528530053463723034248291915299338131716479970440692351109876762251889663967329128902977745065507255799783934710892307659955994897347786074559741813815828273351720216232153590266235176941121541688568908149886606584741424399443632709597938095935330556753118633072662754848757669955258007238462081381796645039057454913989764452595014591447804220945710282725367850094888679516283159551109200008716713309047697228432116181882174717864361407208267598119194834169020216882439341769631727806589835813874337764460370861235988654499828693143537382349543504264644313713632127756061350961124245168255228425960455475769288320661778812215920023900692474751471182955473716619382144567557663440477236834366531051269760161721948707177466614830305767536341237979364769758320720112203223173934113671896585483850377953601110341699284171458983305415818822595908296771126092393638154448777094675757127678246619164216931700198186264304626681240496125855247236038823125981029802052291806389834413442034697212668785340640134629088841336251817228399212446442371985081915601033489598843364903179202655273667629787213115990552627374359838924495045284619325648693558574609274011314774579397916428284634318188294121502596227680214044531715129663675027176933042960032900238485857169468542433855268191623153201018117688953267419223758822937689068769289633948055778515757251279532705386171549261510331684888969702090789081995146758340432600481530949150846618604847022036579127088229941433467759841084651219976704556015823074698709425892789836089336438479972719006195138193340658809680001936356274792959255721801547707410843672087397653799930984048819384310193200856275627678983540043247612471982628512548810429442469679874473105804565727668509861379479667936823703500307594101505173320536821833722112704630667154213875347721360182051290952793323805620266046286203994789604281040684643675893128081461897193535569998633426415904499985731021945819477194208819881553860904509324858012784984115271776565885469100806047097076692781038918320151852137302891159475800198919752700411899082196843262717647781089021608623834344594438781880447509979497871993855196239767899975062814497031510670803262857168210978013499507891840101868893032618658293347731458204437080438627223602057173595413134487880335601867758504666491712364287063903574123777319942680578661806651395692120710210863616063114695038257200038740785921135276421832499859596256862013304265541758835324609949388879254666556746119101997028402711048212997296544064906121033164437990265026585534980970828572843845243209505191779453072103849705154195439327191402847185998765678615944293634997441310338599886533328876098631006960674743483786577667555106346702318972639815639114642690781728633777015945716229988016170896694877899513881077579783035031992678294842030286235410049507675657213854909752131208906418254816805380732460192923886486607070562598189498275433977883332136676507518876060452688267094884851436647160960282243704677041283624709880606935928958179149380734993190898619102555279745124539858292314860044999690027391670878611331786416206652958013753932683263085620371081022362097967089111176960066049161130657476136610198685321392325537969092852002606629769687392578992942602806339890509729671289332374999218481649960386469872154766022874522191475092700106215769766319397692696803450107740761353227310544177741550008658136540909890998378876544336487356126338703842618152315934599864162673412395241122293031475590281181626718765880335744670511832891441707948742400684347944791628757409713722196481301941991218631776680502963393549210097695886702696761346768554619643519869530045046221233569502453094517332386611126244674711869614460089991965840658307884393167625964755809582029660495417323164419883417790331979476166070022094666878302896247995271748505949921041973182442063499357284620129378999744411582507982926180633062572593354656091012057204780485686551286783742165304908327721184309561160330883658488630341197467022448503810917443975678359290389853729408112099383308297239645332194243646089546324012725055649504524216626639859630720802217305689692091074859261081450448009697254827455217244031558035358305457797113101053249731608227718385586082695503249211035463819282875805988540072867148559694404772167311786014053048439307786676758475313359647387994740804436173734570091944065275147118737097527649522310548126773462189932003618218718871955092934299278437283711288385332519237212794667222407396175185195681857135709345274717282953104142256438863954370057408358679587531061079559515294595956667494846029341279092317830279464257144134772003316855126343094844158310491965271365727022914053348488517477405547816989415149059641964435455685873253575559322326969159585372255142455628883015556274357112184643853893963405521445315511751973585909128473811857198310581748223194281339152424069440655110007336908023552701799024785241041530487511949288117068470387449566527358319242412149040505078821299973380971796774179489971482125781679760359655946139394378094348227874742961234881066410532885778828729713784008758454862892331859513859012476229049451031852881660320753457444462490283592961255368707428004288384980577112828674160024761369681027673693316577626444422096087272342571236842879806662828071097852802552257673499024238269700925896862105384536006168447139640078162245840586497182132337404085695413663102988136003923061246217653328603051715187825707494642807194966853820341714366305189832341764813961797965973838527582705327716207630290427409042225731921192740658574502434095174614695750768016027704519023443032318310085654311896403892454043175399530481049935761171784388834815833306973128749286791443575743425692680222048191974797914143421936306717628507200797718258830257062609265733655081548751049740317740719467234662440752142204544101096172027532519308838907235497049434123014330844768228831328249061975401867412738523995390841380236373238140163195982304526947192457846195902702260811038562433316573001404608938544878354399773235050066616405126049736026125732595705893134995279475437847206487790327562100911308282459897855295148291274623162150015434641812437488015537660326593717401295262580778242926202316631984973261366902429528609506343011346527146625272977362459895906402560554147354136063188720597610226817193370543070908499031539785871909130910280891869972831356053621717811626597329254812022049748068610523564560679379216447072965136116994313764156629065757985598022936651344373234984707392453343355480131972308097431898982394264025566759153308491606404998649393761923132834364584234192328115602860294141883238901488260434132377803617461603202922084141300160239677056166477872691168499774854432181817548381435876872822846397471997506161609440712603939458217283028539043651063289174790988060594509308830934432617630352643318611841859700625665186259857456896479189408316769839693204060223649749759952416903470530339721350161647241824002176638549704219673963437565091738403078709877200835571861938518968858726789976790369546461000948940347008336458355379684771371334741968994338334511703005801486356720342501810001226765358250085025605348087897635635874638812364853229696578963506048241624074655840772900159087911034597523764752211612780341808333926859084341743881973440501920434266537567450304687366192857761522980849703163224677874872163178180464517746799966798954300761124356143806127088433027939692881936310629082470813323498257311207899314253925818996394781456358016293433145631895290818387028628473938489259611128556225203559831112377068055130286192483244587571235490413654389844158347122419971734704778069887101979153365719812777222380448357980999002463689801594990921405327608076145203479067645336876901614173169717123100575150068647907170992039949771186290721076159279816836485107232559603703471045659058597086204137483458459102807123617736693949201834085496850229150866988006485137379605017292937820013346282721977019014193503254122522646434133593366268355631133574471817065779852693711307215007982683584630722240161373383283433396034625626958888208297427487582495664600524884408760001483900912160280853385642285404246366735212745601003561409954542868498626280915680739773153387689631572452564321126888483666743177865997825595878790496849241961722677364351952401570641899841148485468589441513227896856964930595882117925114086835904077330973435178412741978867563835527576221385574376126196494065361015530884967345930729683070789683031597363317520550820144633149175449328705006912916988396288308898869822934467811026593805042877981912727546967349703455207095419671098546451078698939356412018183121884348178705514548164971397026886655843077343164305330179044340364729343346392934320317969779862545559729748539408378917085635725621815497312824209244443615953167540924450905364951304113654603995262160727633298778621476535837667261370051857126378491972561554257488395570837048869257800932193029487836321717730121867285498253154279930415849962221797303480069847550379451290720783506523148461503646782150570596469834483802829314399295657577005822484589983917533525786966380976495356566811653713744284499140922800866510087558733853708604114013741692255033281150732830692433486306511909680614919655569983949374827879834299147268165423869322852617714994032535233825337191015788202598702843490157742006614797384292332567850676779984925922064598676760975489330981929543399947917684277579262742275040594018717025997768531184130957065500137154808349316949004262230375260863743827577575206073582122115603852845303060010410289660382611484740715390130322384309828851659752955349581939922263362154810091895021676784816979475546570439850252432410989786186679855253276257701800364104821196431771550669177058405496734992418375740980844154278759703674549037214817623191996851590779432752652377244729664708138129049470664789036814915745445175238577538401013517787839459503420236183743406669613705394140597150880637473029269236245790014709499709435242410336426411184040195541404498991842219304592297942408469392965623654059027095970239452706290422610443952116004897130042587827925305118030358068699499412085632082978806930843606356849480326086553645902215815645278096094820259437967666224555749679455407515584317620359271175621879471656888530606729358714447903632627783938673831128738755293570114112647091268811786539074926336466196959734272332432182167787659954485061412601767346563903010042510982674532169816429294899363489131390681219201371381762033751163934231556521950592060802366406445628454781403448352505148526321770826859335907531372118804568571270804368292653941010801568273785476854839494690207566243716754275791238166470122139255827857636713165850892707621186977132647206684964379641595782560884607774416668957066703459154715841781421134441879989090453716340043705649601171129002148188378864626811387566945695323491014618034067821423231624480767226237236614798185603699058407729049334170931430442543820988934530103686114480231047724650153835589111569970767440181720496342047488040054298842435107425372773343402116140457771673456266598971245395431553852184937343890430061645538300777023774378733939005870946005130346204144147364859638618456008715098924334780113758387102871892648625748033389364262541701641428952797361007406073421092143012524959958522512658058983271279517188856317315926701450099048061370776455370720807975252605005741314859884925830777547885472238903511801433782902394252210415658907072823651880652496005308892268226038110110607633812491594283417391159003833468240886093297850618959118797399821930086312781595307851916871916870585566256439193830351676183105494219910695578589352444141852849945036890400453911489541461752901804909898112183632041197595749161071520449272075961013913648283119974952107216514471883466076487312424633224482840683538280932869144202562396753886169686557833656141409216237481902459923912519332454546387364168644981869611682629907136775879236921440709138211908857880501043907633685800374906897170958809627732049746578041444815206981987225889316448254584657596849379678380558871055144563019600509804502499503323811061908059181612958341044560318261407616665772612710338337469901405974705876017274543581412388483926937767279275753783309532542979003169451077686444719852113321380199548064408098053303884389316654776130310437448092268498179004483912630178750821735422092504878279877160557656097615318020864105555120711220288896345323472629065812680981919764323478964526362833680091579630660698302730814038344629917494445026511215311244565169861733871025430435594368392344518415048899062229397302774505887968299620715596342937253424660500146498291401826635703138448634168085416967714393180428396929028394710109731755277008399781685458069811760513601928134017929314418483581137756600581986970390684524774212614934413943616676398336616603006447119478612614850307807161129416657708132951370261311011627930046718369012997837124852706591058588962166209871352210851774955368068055294734618856891220961546557308420400219430389400070215259657736386266059596499532906343274295943487722415857715174057688614323197424396992187160445454012485869398109108541957932329697355585929085050418729125052361732828778495800128486203010781625778262518757145259574572243385067049608412424399581987704051965910209597898094501942521869012986231783216078387640227024362069532812723176595760905997923607607760348295944124846116705901283951155484198195430084949779946117597714724198830858679011704443153281256873866321653501690005574868872872228872437692969221534832125531224612554886721237557023633651287728344431653151907075345321521238556531998804604605431384013235727071997841008605856943142830645296058828279182870955412141347592586119151202892903982054378924848684589823500841019317024688912021791106271289406967448742163078778127583467977509085177441010897836954170016641064592689291692424219376235760459063096060427675670588893581608458268894487085158672664583930432411929077424108748687460512684001173106276229890146556552917339279176062892889897022465442913445805922881428628784934008403628177447746154482036197070274420469515613921929202048219324269496401423524629679823000690750678179631626568889481741916056251698196817390092404542141623919877006829096451225730101695978407701328290207724257255584218567770051428930669163139600864700046269499892839288015049637125716458417174674808318658774344207565628164775005909643174016937042728343940623730334030668303234326936070634147298183130234175957711770558119784561479050089303430554219754643935747971964722117283799570657770916236364590809246557660488972044503223741874440566146775377576519544751662820905351510631379117105899976710437152267967634744431053601158264760999087245868669227247816700255442012769112152906231713003189677763395734420234281866072797471468376726793281765798622967124994826616058295484679748520165457819874847533765281276952632134924825970590436058941861221786628580941212982541277259129424427418268065792255462410761789796110876801893814411360783432151902283659303676378764513656884620183628491023412316188298989847381271357011679612008506731369354320221092032069071401727453181980399777934468338337121039304981369962457977681800289456216752747275243080596168768127384731059860068419755857981113620019045311394866999329093773682092190067733344157194232447659222436276296251747547653057882479607709397784502933008901758861135608891647136215745620522395364419713433830261530520129286099835085781992218508325833226447852349872668045846473837576134418780294801719895994261514599511409166913948488234566665563822724233614584697291518185150758119604546496552028798123028490785954638124560898820198260174221162366247159846939277747284316002135598488355581846771184923748724190237181501722805512719853918517597162039974946761539060849444741458412262596212271497327214867893119632431195398070090223308348412795986460004170297868811840732735918158974244803156941718447479112590691341808483052409534625622588826873154456677937720630903829437317622734071771589780057893891135502658071533535255713197650070626448074894655673897841063873915726595311716843673195138553117653110628108695197290203903939799847637368889271167208622703036569807552580759195044453890444357787779147785879563253534847804359929711491513776548929560312674548336728390175019678700510817234906093399966215208307577850443918919506041820970833721453205388844640855056033769830689205151080370595177815451729050448829355494687516088353710641878384383069063977867105039425901055414178700642485798886491205391745668773335861530397338175234292423131757868574144871871764007344181682640336046733554039109777774797839902441329138584328669669770720828463663336673145900484455839893108556830891528606585762229713403072388098890396624571011971612211809097552073352280549769734156296151466972788759981905757149797751394269849660750347746054546916780261089616082414207583889623277061084221897681575403515903098057726263257908521515650577182703051302542118755555552063520721804713411432679660089880270082859687634462908633752350756211921494840503937322698400907217622150935008292263081018991450915614734523888885674029568501484500884364172417338418976853469386383495351485019793341483818013921397881488796995710890071552202575647393415446233947839543091161239585902854672435417678661596382442243884137541986468189358731118599629060158996988644017975121492581574348496452424178321396377651327358574819217030360748692729219616046061048822069752392256214743481936328206307950644835489113928540713503334678349101464863731128024394954783660148641967885401943257535694512356763859407488262291421415409238167380257835892476740889508590354154483860630068521403035624560122183278986667033647493435646221463129675983672222916554702843740578459449441255653101083156371018731045754546518497144935416917490458055783537860782786688337687242870779972262256930605776083840163304283844423295859428505231107386231481680323524411042412930334973654421433401864320914255300343798228636349572767070310882610280036912479461950213198014890590783878754956913749728477376429617715825348503817243646367673394205462922615749225587492468358612615553481422991330013731301114112774430484047767461390156362103616864705696537703808405671007462603083768642140144134676267765600118679586330856883537369887141556412491307271031428533347565054595164119906928162404687471267520931060862166610619218487274396656972180358943458948357302668879513176907773110156743440407527332687466263299685821874607283769387887239839535982108099034494792825775913139851215881990654616284927370698697679891379797327567520212787927132680199526599780194518008526564221155417201821281020120509040523660706778452444237300434453143931619333436774324081841746997593115516999221575632713199409473380940583047174445555917674058539520296796463000437047543633081118323778022356729987346402957733990571065796696507156580433118872929090476094926985512265306113307581246737522201495486089249088579450381179686043308430865963476500780509364237524977523948653516100719742284340501583967404419857994304085550218694753451971717615986708643771222184754052022363798530530999395058451354822817123040923776959965472518660308262514756338914777656863421690659296335397199844519869009601988528892819017304146039247427637333288226248970085368780370991638992808480715565154517689569639574296216657359478708458675795839117415470262920996385783630978192009797612297173828310532746070148265905961973262562371152603902953571375802866572221966210717640216534413943826349255084160119146711547241821359846363957207230195003716144947101654099253703495331087430456530658072483386197353905278902062504949758436925138979678662173566102304112938291977887284004581793436558071034131674056819977511735462295471041468911539810396699500469898752565433553122740091667606105729881303141777136096769974676614064363687157428635590422850137495911726413309304377025885919556120411556053024331726467910079030105329344710854612554025305936571762564830374119765021560985384903867205599579140653268397309090713335856670908430181887532302144992558032783196558757461107497998968970310878724736778648299762987074308518674524047260965714355066302945606241818532916118047606163118227732943909685377051403283797856920193822988481716193220222948345474451257711468941055370449578110532424920967377002475518384358707280303688116915409085768258697287442524281103346764489590738059329894258158276121852813816360069403685208748340111754448756649112043611335508680573292029521440089774731154198406131446032698079006087948383673250856167643366555354981365008108618299024557018495220113036210331303910666718474678258967320346273940642900460580151324730621617783029981074167556690169218470088487459279613422770110388764917191900534454932702892928813738223198456085804062850812466280958741997273089947551428048641681777767623766364097416850631755600135978989749955904460386754680347715108792562398460201672558828492562398877068434245402231489489402776182216986641092511031911181551914844501687180813157832369383450042422151942723726502457739261278542525925490354186646498564469297174327527823025692164791347688515133283250967694703122824691815262153209304698427710756326274451471722450927372454504631443392769902314222771532829148360705160086867998349496563828267363945750549146072152932110134098048595677196971976869109195903388586325195701942205827220933329050274279071135189661062301895624370759494874725507645582234691616063744358628838958763826346626896866806700257393949493859921436409024791179983533735666733510287364126861943805817766264797949764446051230664781364589659268343013513550504668375692777544456505048146293631029049420285775155914972096556061203723095026413243635850330563554511645402319970668690483632959662150872650490365440559875073092853254346511644854275661327077466630554303477754863806016582504692477817250497171535116826696876283377271249306560824357094320386243605447666811289550113280329319540181511090090820898329270698928006190243311782680048108329576406270329282814929504677415392868021980936691387242055328654346585797717084054527372935698382145624101476330826473144197730575554227318454973258609400178628092529420299774306359048922621825878555731023223930766444909979135466489960736001029593094085964570514947452771321461684059755831630684986932878728371161925391348385384118536876736289913902882418347775446977514956191734230660185918947725976071519706665125456507583568922690776367008708886566657450628006914256974999963751425337780202075700194063353467034208701709856070890357060313424260858828730220121612607558980936175024894761307235796073893436734636850641258194320970826829053563913356506428666629653568747891556690815113510579253293610232232208745126380479074902858191626402950165582170206286231579279893514709962591303616073697819428716539455902779886900277618228728942406244245606257295841777654961613694910548202392467776355369035317119430102955030894053154000859527623652829328895612484410097301713004765770885459523216084238207342056695185767492296721743086121190401601380144650430657856772965191736913604553368196486645229322385678309724522837904071274170564923898265386996073895713074485409186613685099120021645996311503676427838907835082310908233778480111293754291299677320412407331676440640866428815816668502928879164000586301744318122693660501836409537559992449669113251255523484275850558617908674017037405262824849983581717457318791621290836843860365294198218142297269144068183558397360196157663449676509848480015040765525640226265717785155535950063180662684373036147356122560893258571162045685002091673247784672211002410102156960056053675034469755099510030031986082655451635777582394806243654489814901194165483452838117391144139964239062038043280497587333717503221770811620819748189035870839031860984957746524334875137086950386992159561271563761267079308655670785799693572695424952868287641999265068670797008819231406020781849286047367937871427064269026875376306786849115870049789820873039545393817557601427888259946504497375683042867579982457196524834925139999492186451795904718782734867282781852097444659483120188036390416549676107876866173711514044366040509980149703671423438093886080276640696644586483017437654796467898139891832836992612850212506450323433331666450396141937038337609295110785184258174311499914104175347014827129217038497973405949480220770382903560401118098235692011110839998853286061730302885611650538777836712382122048270748491459842201285909539403810716577499644256250526540217187161363264166133996429529821756251191503958800001776657194956953907574924542109572847666290811733123092753767398635954285520902615744469478704964131555616578961494173755077179759549707842737586283822452154191466247552962705702715282391371676736073996033803529238362454722995096642412072768824439845242771827984148220175521600442341766999670596988566333583572490747331726463825565627483165330862392184504390688989857442173274568171313465280605559759026591011375680214688958481669333198840203890651894205953054373383229972275336868153137235762653239765575339854392303539269268563334381542512283970195728515986980593710388037192861905991744622031031347023961988229309100610044715703142060069434680686120126727660319741023170366454587290233588625774937115713257956525426925647670306899607453795885153191808260528153092783673740192434268042720293155665310557644137122312058214853240399803246152285641782301537377319528382422978431920950951767697973034118210895592705997510209572187288087912137219703106668117704786267257587866978796353491799143587746363472116737066768777432331273528019433226890054488839318428772023891064948226351488465595348068229961490756333250661444400414757390182500769038142718257528361247507798489544035888931241834097547152916342760580955312101056922934325748327519699561029589094089371072464536126674628100267068619993994313858590171443310667669924223487441479796796805594586214140384907007091785462177247001309640468587954460515117350548354810216984308108877695876305132669294584017932180943261977359788954748588267991178408103017769409544702210647018894098765717114197534593638896368448129169501858878198907935513672154260901227282825079054322141450671206035397920951535855593217984200985479215450192975553734745842389732517187887906571247128939921288596969213454992657061348314079311298210174826475875263767234464014867999633351526079039089692862916409764052724583322684621240750586668941324760618767636497934554743242202045901628637570396292549225599295493028553832010674143821514705567784666555912933499839176284943433594197427099357467963877075459782884862157573745105841344423775132350913543336729058144567584368519953918313271865347535859810500267012649538906218213782861421816318311278119448534646083398440948335812959183246668357184599568352683335813615410397974569720523427890874622913854351365285377045323037038578474710113215579027094360800305331758486099289574727234174558281908121866894224327069940485632152649841536346092293252967648830563350682361534338910450893749981248718656226731914112719021524118679587324206471700975805027119954274709056050839827249331771176069648695897428810366479394754761746420952300498323366060714214848744338952395014699980209801211525463403713381596579238740387089972247877434891899228239995763424569742980290411597587054047573150482052753436563305191342286793326141323359958782466876939501898952390720852601241676433859420454103028459348073866672763919430533488673885570721575830809670770667169609268837685676547426738037668392696406955766864910831255381997157619687078974317724610682716050765647040772524136729703555079474713079277517634026037171348459671550500309369123630770791441775195478115363618295425644522803988525466722338200797401994835009962082481654178051974387173181720364970549807993140289365975178271290034280331588772547429101370184524884750504437297333372035147625186384671882000960463985007294974395894591042242643710516519247294768528359059654646691198615688783469769425544669560811049153686178761252486867540903315066331172822093269423011087966418559166968115870598278979980381597652242063001275934661132572318600556488052233850636207350871150264156239633030888068656217017079059449971582206048321989027229404133508390152546909958958748057714956158166345006062179135881719139160581064887657997397019850265535427900523057655890582927084536782122886411858178575006673635471121837180097426617966100898816683350681043096394809661921529670635704519658262231669882780399995089796411534606141215621972414194878868792569126170260267006087716801103090444117779101701618843824047518096534485513066034893567220772297779258600454302374284458995448294305685266645292173559892592886249089359468774061053745656322858247154205139143804410675254416526336462944036690992970846517978667898244506528629410510533296701849834174406875262929266568379600096544092264692926023268200953286155998941631633448120880495521921991330267538482506662800833191005200326572027166394224857460211984752917044627922610976587489954262611553290392998316674646875477270821890407622465351665809040179088791671812042008779167928865997316980625764942191939146365009960636347781069246030657093603537662835864501924994883532336947226178725994994963285254921838554746405809466935179903665669559827511500822750824736467990780569602280528624236182674453922101606724853142127044176715290488129418962720786178668486345889600297609189581125434672462106597656967654708051579571854093488374417080952294995384374305802233554772010939849532884554783931206931032815636117187238855208501756360619207275091968579466507883460005775515238214623760184165499514422122543883530951170324451972058439233175362592125690247385546577765990867017558599181230657848601902255425442206889949789242156434730431339520581381674125309400049559927559759698729189685753156746367026511546827941816862816314159663848269267800527563408436216077849568507143478107423333292836580201061947039900343982536867115161560211995578015706084582692364704848007534586818081404403916928715031628427789076998569622052125164960398673587026521455005883615745163069781609808676326064492786578490083432277162633363311683396439317259832759808466222008278400479701225295811978768319737886544708592079376683005793088560190481945192603327715549828578001616663450926595350383895033031544916119635567769810367423803805021996598186821349932815207233645288767374108236576496692854322500442125137533447531791050678843539113150495754247677517538335734888802272666228727225087901658012860469919054461082711401969880406128329161394702960791717762775963309848537698266942374652435204044451908393283200865134037365431273669723958233486014783838143121037609905808188810373584969964831836139730645451959641766651397284850598127942585115543001934763775484123486491541047102922896559055221864535683836044813236527874338411530159178826901150114971889607098509854057382586364009086641589343565865748747631837824797732096915953363603226795506541825864183196292186563304738294109791293253401924879731554603739165062412339411051418772174985598849049769295049988876568447324226515384196363899113058281487744293646903903337079674333183932505198952929283277228062391901482588858927355195789949273571215994572706566214512229898117801004825190406553391866745426003190373741620157674002707892395814881682103460076584823944663119852230261701658113070034824765286894018999632671581768491283128034307243134746695920877865863510981793058626459101745087175005408626406907859597519572785496623227040213003978119477710714863322416112761653110067617590548460782462060469840940345765143890167465347186988712755555419621930803279352072261823806993333583574055273450573878867152915324522386487388377853380030261885306692129912423375612992288659297543210160275486774359583750963818921755722360471060215888298571276819626401734984645989907050348125070187713735615478081032170527217047392534329700795796605526450011697620421513433246818808033716719404552067284999205873565898173261396501219924917289349391541402345395302679956428376407843971584327439165949722705082557305872264669526630027930144670886231010064169820564026896840692151248224883313208429324508743563409725019279374953426496533446565543701959612074598698231039322298703678060901076222702234664665660352118354695673165166229821589056011032271732142253072730269654813043968988622930387066088873308248084151118877890562943209676762554468719190898206537954944111901433800618682638223076112777089654388113584767452324045006322050159962308594936215948713067347222816043165092480684833127429820398236305383638761690719729362080758048683678174894253323359399744692195236007170214947517465841999341680160056511971087494228446114748175240585891386842277160967698114203137447101824510971782059936132225240363146033662797329200509222108827597017111139239046846307712806705450683521658096803929860630792375662950332114654141024126980655422143048307043514730251032961958919649627492023303406275195505383980951547092882815618106005749208106921521967957735980038055779143906663635640297165626680120620252367759853144144440606462544267811562344485381410818515019240827752938155820264832395486889691469513042823856439941621342278799807896633705294776828255747620270629775788224122531814523713080448151895010955754299709410855664160031239494297304182645744847968019982657611205700951371212283527043269641385425722924950050444468104916836431223876045168458800895168547236087979385837598407793515935134811338925691537276893582569323723130613147509183834574792942938276692117117072904478132862471009142501866800698001140701935146306513614413362053533936505107897886817906728249826418028749708368390996942921410061667429976248989959343160042691798483123893632638091368481608484142615265387549114640928018044666604053017094784300234653041413348316386271396514273249342356017048641651865324223408640120480485850495658567444636950498522333434745460275389053126330462304859925923720052315937824801688056953444642303966051643453814449620619838099648210686845181719867299896819175291789928209903058312495136407537973104918135092252255716574146979896281689446074565010023417920639630611674041178259024588743199897368708144272235275355992274844181806180070209551765183714649446927808819879688737535745033318518637801061283130993539281662912160204383648620898176416735914414537411103374207166919698553136854943389217060582064910219293232683130782891217802239623303685351132212601760851066220521264573512389378488190282722310604999680011739490777667809506327761044469248092925683046830606221510504110450486886972100078479841869772003456602122824043104432509661573411994967597332495298974775094637575451614603681434609725207608106055314698481047021003069102570574535573503202771362229100436546082852441229907173941419196106212577531046078546546768963961309105879463227944112323241389646590032465285220268433667591515883470660852020181442065016396671798555166726821558211368984190814676617277520535299226871716288551070898800816723065450541474458674139785457906931513420409595963602645727335037600859033430760318914339660726796511638839291810058980440910024117803086262269516052981149367103268224300600311360390274782437321424082977946486717211396242616392279741392603835437852311537242645518485894743863568223982628300954382599660276795968372819516499459336444485159245492983231237554917930148259365047275535569633058307959890767573746843990028375299222916594407345983987993685201493964327559897950634924510467988652333823327578934810204550034592798733302298136695060359791391376135527900260464876573615194340498007047595997934647050062022071635503431899207503976968113840831764831127857839128440830005859405807650090870566221110768959374305215764020297767091217668245608680120395561051914595016616358294457159762291241807584853615667710819525373062867488065053718544068746797219178295041028662788067664378952857358820592301553562033886965062790251031622463186381988892709150347776123749532159890420608019083457594066425787277726653976983157706918783763718863268058661448589084314003800883079269269072841336899779307991197018015325650256636584029371790463789853096915153621528058515490304522711992767957824032459988473624597265501863903720701703668908386780532883131403928545171889994582361141533520354478151919043629395200488642691494991949048623642835192984463634447630681310328114866637106840396126290564820284144379605900693594658554792158136086114002637829784801192351762327573397912952995503477289183918251319449090635058702261862746814414159438694583328955359734594301083679799208661681993976507306155512315845186153143141307091463165426620437862385764388381962538481248640436986042048353179593524538895678950528376546557094041001680885326555283973027641507609214045901646931952337036388161574446936544671060775118701648086530144305578773885346941393778776844759026392616546777893351099798303558551195376675546718366100048312603183986571894718933204796127404486115683577343914567699097098723784364998926745956767536261935488859745090818553871970406295317131023076321170496207888213944512311083215883138239719357148036808730217936305945371749877647781376853678311863938421540223770001941445916769806659412263938895608962691560527574289334815720523733779906467257456997463427827164419325285311622321232179338627867600276945953973716199853443281838643501954647443677149286931048623446083631357427656916026204516636891056140059044781955292907520344325721500045966739272820642824032653107321088581643090070338096856654443123401482085816290372769539570716030757438323581090683910023522365554212790596050694964449655196278138217108562720824642056910501968263042927554696375224555998204696373950209749139180808756512158768340281196251888214922380585784098769696065195640164477421751686239843603343096760704712589731205675235020269421231782475059824667752935469482743575093762701913087752572729430200471034287521739454808046149685320918782223607853323230002810638575016272731703021527665459247283355777800249491225233012087907249741142865706852412234992822925027863156687521621512369538056422934919080749595381743286629058984199624895738394324602652256486912983130388811672165247252874517784439461201700265164272182610520435635182548488886040048987482568545615901650584969711810469095043949516873389287493682455364193961747415920098847108049715639637581767329676299486124405797701577819722000872697532856158345606455085169674924828326663099180367096261949135571873855703397961602994082643553876877402278057713345244492082057002845934799762364253197014422364321885852025564840961252953958357629498412520780527805577224758964304713078026103440989194138197710943721309891977838188000351614268463704753470165440378345403207097408502817218622903595055703620571464308361182982383644045411982408385534099862512197223174943369336324662808245692626883636380101195078345398992218144077369032917540751024041310091512916263480511745244237251663956561765006354656168008298801501734564154294516862489740049731616564587164947600150097999192814550096585175486718506671703191490884630592006195642517915646304215260278066374578611728347750644086579688484462010364095501297023935860921105725601943273594699668766988088364676257850398162403922905105052499617219539607816203681955589137747264715343631142035360348320658907109992729049004549517512602168423727766376839367362269455523962453729882115300028967797411467308569639174500665015786908566526801419001631005703889735633684011723563070484840894993792632161415584523585365916576357010301956337220785629909114926876030340707189108313377771566925610433239266967759058460092110637929887192537354879811639159132000981893619795776454602175514491411063868942677987123780374641270235602301646510811651905456779563305103215472850963399495377747785699834389863884465812967958948065977327437803661314407456498345728050139938368610844985553172804144601852124835022984642346583940127723712147763087743805028774933681965372526946272520886249810465874485434152970959803946785208329703562093450540781396122625362953690818865184365223115456951151150834149975682035621822723178409181117962303114302886222658446476855170370119581234807400714232457016502824505646326702713501703871241761794169809098308355541554716374956518036071907177789821815501235700659708772912901333120443426347374873008245752464937084258050661974294359801200843219240019166973669628490193166957234737594930360245307612218088274177602101857566090674892428022658658828439600839259853420205715417434842283365004108936445752795185291866696360495709786263621663998702509817965604908123772755811021687691092498117666287148954210197430310976850389139995042495626947415707461855982201216792016892906663275460533355834452601306932553547993270905644129744828212972143919040172399590675679172541528855807347223982264625652046182144524763179069512094427005406427261938939830472407918245035808618930945827219485759073778483164718357398640457241219324904694823807183825565356787351739702928140425495781418864666356921227222818942938096110731422629314385015778561995133662153983729920918267017983747732560932996156491184615726921910823735202786316700555200608901226903498457763699011248060873348146576776929123148421890165349459083427405299446155175785718687497278775033096894160408012281066572462141328081180415256870987652032151868969977210893045625146323627616985014634615140236848010913460590583251472124735290439747146316688724325006883489573416574949694358116594721025011545602199653341886739990124175551691886564915551262904108271523291034536372419237999336490651387999084556901045351889288536823465549697303272041487361879153165266910720688660670123595865144617392812126623950542708013873391803379881445045968220000200080137572408050005540811133981484523340905356271432754351319175216290222589868608207568983036693724964824225407194652656494740097983881576515591306054099077859543882991026398405432636898581368279878740822868872845088528261784841049861493999400379500487859006727039776202422440461820977028010111259083967390996830692525199814952013804495187903489044489385907163937021161790336829753918132478770666551223212039669698826827419754628887757844728747343523721601400235588097216397828485908900205397593691673571105713541755714597319834124703505623695902371037407788719161920192235480254614888914295183567053477567227582427548988652410240439884620390731349756608631138100233111239869343977319804427665856381364382511213142203634902982451340298277450972296479891785473100923324329575146965520042159180099716483089638152640826741460052223315279130670093159834682801989297085380367085992166448238418182847878218380136553341218852204457919421555833035930731397493893459852386830553368449389970759842468417751300652873809012616312962780476716890147283488911351888179007771145631342702096877528442738995681574380183587953814558966170366645490979197638133140270741995373853624503457370472258029041190266760345193194517557001505014289714991935591317036917409407337970858889550626455203714514416645142253788749779073753392833412589016407923132133592267313401612120623980681500294546294732161889053291608417919016385665945548760376643008696562226372511901413216294557495770382079674413187967478064062367763302610496901084910517995366329273390605630546674169602316202312430894213896740872340376234565021096844634378566364953197534949368143946991077285981224943976314093921995302956092786908185434845020960724506673763379865356140192835159053314812004996529102296811543248889496404399105794031612743280095245222871505440990306289307936472988207535396288801124887340596155760964812686971447316774510275592133976963507929515265187701622800170509115706021336445098875529827393465722618597397422780221707520412453568244300513622392250671820950656345275328059959714741358681016439875403913086015697141117775769032863354802704491807160029840415083464813120641817412974468070972924171125527958029067017443640531903212157372407783114083647925391591570731950411970586953006529532592598676898346483899960801617705372148796274836305880028713398230297903646575382257959407152176701998612597340679922103186528675489249756170775344395707903048262564121946703377039341807626057366716632078331557931660868108006228319542585221852186560110406586107065214475531092296653519603156304115911728483674185270833306312823012076862655197109651546566677184101074024323317452454010499670455808264245115380972222871726306458755456316510695226955667027659196084551296915360212580364920547052165008433756311977819683490495198914365145228141166869561377707443728517617535407556987900601712262821229034036517740991238831853053673370534649022691498164365398502266101972465781071608143102961140593985931374551281427546564325225398477338236225884238893562817496513388725185493659529980544289256933385179372737758802172567021643988535859639118057321775069986403454287321265062818716084867141622376547947278731626730480661411647074710289291337153962949357139328628151224184938228152836408437085938794727464425949539555602350457123395794685471790658654644038579961678941545191447658231714073620291382451029361271460586560341923578667323615959458198702313885266863048675730350953373096494812947852311205840100008335705701196503997584823736135528009314144835976353318447125645533065966550531785475648021059191312763652042641288506516277840935367263896649917258388768428813607554262415700763524986616309747295731368395561892098014503237575362072674965659230577273910774002294634092795387733026862396882378533739318917766887439625659313033095428385286632507863253879213481197551649101171413850734593851361753648961878480370049530153983583026043118905878488597506847416068431491292189503691534266136530472728353828544531295136853580644599651298036647537306569172358167716213319786435779449377886197605709485883005726639696350967935765625007553628394113072415946912121284467901620238798304533383654840136252323455796922600311072879706809201982378450877266004415477725217604086345772005025205382612098122225828901704284604075672020764572726828116392947705730705171863043187553231421896550556676982719519576456131182825578999823277156230631391608804403329919740223066165379276672235403714584563651380005023113716306502091431803843433579704913083732428705967586260054883061478531028440872705331130577426721038014421869374302532496313408514437292845145038672875732377344682560056295589217133753648066692886086700984666604922749574231235863605997763879649843016917510446297158287283407186560779065240347253699515600185305569117523384141439304158132956618394881110868802491654439220137289079788891122574897608828676181571082893933806447339388528394289112894133508289098427172708108545370990583659975774491558554936771088416341937691330478298438865838278893789082981926761640771873775878448107846834383297094974082191551853234677290184163066236021874097019139023158297116162821651985221338013152054313853540088600895548415961988128328245078580520337258900665134941826850869541757793911872942628433446377006900825138658031148386938559214184458067238078704566635326968900666981390460614926579062903774591581529112814079531287937002807209125002640558474190955591117501265585500262844338179930081674728772532636348401142990163200875853177440989137386807208221539193614244904200089484756053706240042589158550638602392399252991134434611753435245790782877641139091566884800487260276227402085888597788855712481259190356364503607737072315286317405910824253343627679596636319851330184804417865009587366758909842243373835238164223062434462600026547888654418446853274955556016913454056580638196026332253852922658680997948955865038560972964060701099159507386940492292208529028010495494472104642205570845066398999675782014759677423823575712646466035758566696366064517461646009174207331003858240569721018140588790128953695575461938827526123361553508915638862859145866149806101269313444748915810629224726346578887963491810064365124034915531289837394777165038905624563288515408383602898413248373611160209286324043834888679544206188556880813382364145655504294745305867561211509132197182116431761648798560592533532685081476210981025916278756087606957844471563181442303498456803729367256816637501137345901797685333844939419093734787306268105300290201763566924129837587467021760866100496625578125354202935582974303119182160759355769838203470855672200180117227783618020808878703100024929696174153288137555512704838015781694637040516067543631651284240628859555766446536606392890939618995980843193215083048363184293482232269297041213057899773709048775399708058104193844551180824777612666823146848783966307379987760989496770051222096154403283737166080893408861035334415390159255013853700746161326292584827716378298211319057194726818598951265152911226007104152982700446745706051444010275278353232408926836124515690663039223614531385709507569193558530304499767141534845468267702098076682453690625993640365013780250681577455323101250819535516838426803028460550033611396319750245722509432742750729325389145482163949194880744777257396415695657658749958347043982303161623157561797330619327856422251500632680841361783250883799175523362027377602037940578379161950795365802995283076284973480620883101682022865208830470893675354604519184152896232303699439525090582240739234059233028799046262842190806082900805309546075766625818385610271913038262456082781709121768951032535173488291992382311859243823739885673610358886799373007122121017362800801093192038862617054121690612802145963706421805594577278255911762275215577400974443922931057415854771563813394841841818874142085208267376571607139771683903485244873575776013925702936691895448306602217662036415888195426229195558992733149457437609561907042506612547253221507563339251663791147330292424548004755202529518083285470102551115566954680547823911246592826160789315682508590564710590837103285076295902987900190700233428771859565869790408654717073869026438735024522387205770734892159205998832293578211796637656231768713135719567135748188652849562425396874115874015958056276883314172545571416144956608082056936676682320626927292764892854078323192763632330575188323823259446382429140730637259450135456851349182647349442421914667775834256552447728378054314613698389445335657037758102187038088474799468135567617013729192127459334455081077493108518036035251555460180260913823998653472375732913614091308749754520671882002224778485656503706593762750270752732490082020537972675826598959768272135846272651233404788981701029527118174290400148173306953830897702024406338150567495110410793391342448062985303758355964685916240267847825706889850425240292198171642220664162391450850025893360671214998556389235198268430482422343844090144637414492319586477568871951873151738796786410791565860898385747151864893666991780478763210424291016395528779561115051554076962295300007903551951614686172929041700811111304172376544967432716104074697790197648875206120181289829124792503323314073025113717507329766978928326066154668648023089655826667117406880091153663347555815355400151774735590204004290083335391628566396786088658957623537697240235920328018844157853812985115192721808369609966082994836281851354768123786844435803053968199591639073060185660675311613158317546483993533880058062549042433658415888201967917887553007121412528263802423963295642696704211308593008460317481795839773526389577345034808595647892758243599678845593540794818158428632429216454024206553510745953538940459323316852681870593684574867482646852270910193736328650323795737679093469073576884621752764241212380561503213490980841399925375943000689469985518421687460350708758315727754151902176514887142070085282610749414441478639251357487432083920982824337568012508267913178777379087309859609903759050339940897742120395481545559237071699624715638263899255309058650291246846955927986632448604210059142511624273147614238520772546631259833542233335558113862875080277283400181296448135464900231411608187331585047637731541069053443224602463839652224196426706417425866050329053978019166695008128862388633463714440581175409613550854027935569297589446509719764661710669807735171133356011422289886705867431733246157639953214797435278613294764491493401334071211772042274874301631044078418465729553504622234739303636626431456506024830116941890538205146709570432181824455776479729341823251907530399315055246932343881420793889964245865211943234013224696442454060609404680218065973769581474535488115928732265834215469044786489746661153874267423458653625077210194448345805331111726735338092772665687433247738295436635755973749958943241883402146675059399604370480545615805425868422312993432961240490828099251431070110821516032180977479108110672800819134065799315129750564489814716810356719579500393350993243286207187521999752582447295155177508850367418762631354429443430076406784257692178441715224967646152172289058491296245624639755086238895293806042015269389892398784644319727346775877167803865902672746105528268517194868810744700826109451452437132274585640659316466789444680497168279203257222370885975345173150193302755384136502876547038351156841495202980552174870491918243722102532309546870015737676039138618120809277285302042185650170645701011256898669753429153721707247294029071598548707001426763497686842394062280114868352089674581848538212466543623819077630449671927426780510415571784274852257488707659075196210154567000047187811903277308281742970895439579101153354900986768681282541308628164196709294260393007140515253063225685373035878308075587020814641011414074007052548824608390100906135585258896225359678912812581442362080040263388621238656455162772614793630408041309063595264342435251840913492284136799029091178185084164749673678973958765323016641225104866434965373635664445382448603183793711870960488100158567632924517824919414072791066940834150445842332713386642424317927332319474656536036534072680195939087341832561770689361277050043333607377975504100442005156504657824065994532048440823744131843844090208234616644210675342969275057506254418536481846781416449796524701617533891264226807428056431212876013356748445825649761089389152667198256653152170583684930780005793010770870182516290126879348789156719113179726175045573039890228828782640936066406702261133308861356991793552192145660445276625963133699641174365950207199378342567199370830281372527148408896995209286901144948586474734228674784941546049854529530858757143036914382657779036617901939177327580846121754860167345016253612793788896907653608640776220491251085321441393629109800208066213996450018713907945395959718156360784804030548393309007349765714786624931137018805413096307875640780586942577181931091514713267104605211846573925984984521889573040950890674730704679598012984497630505157744590403407978249139978882659581010463296014899817526719866392304436142670567166125389226929692743101771333140098976760711356424771179333456874436923835322376523411750911286637473333560381424353639527818181168685503953211045553587256344196287871055366482774071799461418210091234189575014048270460143213182076146996234462635590294395420791442843785356657519169667502119624754592921667426997313063677069869886965736999209872558221401513308485275974114142630887906737609775834265025217537588347999778072045126657865701357215124474926364925791672043900532761185516413573114901206999740915804017111480482121004845986681016162808822868710558178899822997292091908776053631699967602870633207200595444148100320601709884398030106687490598570271038653894395248547353682691058160171858879689424432313494583824092455316269107357882327135610950626935824145598695328103559186051981675723365283762828689216805956589254681652501950302546544493117429393444308028919399741249080749674449164267883421227289172829299534407612332382320855077418889155835444758979957954393277158177560858839029852741087338306001328336861953504600759378213245267848070825383430584797746345651677595046652158555715690680627449868626748668127898535586031395139177048610885218878009808733317369781702965726204287024292696597328412275473492802492310386991307332451218016569020728398023224237765453125887435031049839707551773656118194791850796760393911880522617149677288620264389284026575846166473719113130778116487073334105924295329305978757371745460094941292400328065436346560207000878696341601529678945259908617933370175030183396530409188930828201795356048079717534579650334458281951170590987830632383539299103352718526884997686398840308363849873656786190483914833675050092857368518528800805534842340896266871405889114942470097821048612988112908988183421340895497547794772153383634209322048637810842337698578133602961074853872430648442437310252579820985155362961057519255470471823083460459594712357860509959093368415986912435791593260016569963609087168483375484382492414825926821516219332409364713711488895510062870373085524544463365973133518516797836283750019858347291538440384379017358947273259513724745035629557752148983204133453704929458539828765654112556643981531937414644700898884173458981486004526176999786903071693410644345048021394654703898584922850114578685101254921399093526515019712799897394164734147192131915889117445739747875211271477437643093172847616587556319017933044422346227236975226648288792685578264359293716252787114481100104266309725352624697346388989598733341038861919482405580343461067128794830018299991270971724754161846766545792932206190348495798386756762223050489992126933354011994387371812648885790124365171665187546424207885759524184771691271731026488502579569920156470972369850707541204820872820847843509673361145467277127024689947158958489380622433902524183458567283789261341650894235340299408583965441085296524771927429797011349883344720523842895603140935262610212653925913417312101058717866655044362503633418021862560368845827495296469487082135826637064859034283878528972555489971590357173122175800417825842776501127795207844361694987434851924503141368346989487038887136131993554836876737375905569427622188313781414298779669499994419912930902711016443076397558087838967314233539041587487424303036441104101267442205805330002228559408656683618248671722875040401593159859521985555037493128211146063624086122190126412936915291650430273145087018959898602852418242174648807821587277026214163323259759891563639408257547438769956740151929774860820968059487424931296576800006094518732729122352991081538404509160925846026964360688518896238277992094806352025178764137556917255592753493957564397811116637974262824124861065987669278965301416099064452178839021173316117220829872239449403774548612240720189600230926952900195443549421357684285283297118767307922336298847010637256786994615634686736932874661545314303879687036180966809329678916249650211930473397550973714619763304446947789534531258217856223272664454269341713102034267972123099423985305653217043009773020430636964233076786661419565222488905083564053821787867006425518652867780009978657163361230470743768766607844192190701687303739728017168027313207177313407238977732725177000507683224646212359840552628275209632199856315538221133690809795813755584184596393027883628682704779347024633073807170203353553760664085101902712277973255445112228832132110159755564870586306909434957179361377162991845729232446674696910116632662914680155106665118051830618196411322663716679949342809234193795443810368110445996716243209439036709583929138215353087018228081817570504996972587234882540657445990776601466837583834316190876935342130718103958810984916279693177897103466197539001537074402358612923725125098164290071012607681834246020828012897876683466652296318707555498393468019395522657521321542386286374020503674516605918849701766269436337161170841348017974924218815141734329619682429113435815735407518055276126279446776836607683974549659150358446893578205893953085799106066989364805518443796226631739104040602516931559400067286453631869394705216602258876358080025898528267143802660827892454531977280239841154647261338049057894551137045530589383421240843590811221836841169073694909267892735230107473360925789490133549745869961922884713660882981611674808122764642072510485108783464635790807430456842769015275329723060000152159723885322002494387965621300709804608166331814426069855237936702576469494303015205598163155167541771056823625610850540980462444839695985409345732295823773343593415722867293104938656437479975957578477434816351466906551753964316800279137100463850995094466594005867200334075766665044935493004647299584943489419568163527002590274824879716248839988825283390430626549125652633405003965701132525696221617911424659474496581342314373184775945331719125002827358767565113534912808485338847370006184200602984985971574982973162892473642653792431447566772694966476331394967893123192402230801231624299126571167109070446533014497409902154332715490385580743256256694263092895821070112077556863314186594370020283035880713335892780228148454039788652701662834631518985778799552526338520508390966570693714739761724673006454999839653045014832497829243147477143279742913616820153669349909040933373070473189224986870086943286970701685039796186825414606490624511343626449303968936345262074958095500414836161789322545772513076551298416434121353631729539647136102905462181491843330205717552270573238893258737485966080209185119801069308754169331538236195211293354517360203145520220690836340289787329997667594095683586934394775676583433175626162969888515200064707776785436836574743248327029487064939707802799747886325759209993710306383085256904112360972341754877897662976637979067179850564929148518878124474115457113741222576097911384551142315956997140093156249820290285769992373655255388371931714554953681726960305300437252849874868189409484703715353786676465808933441801577591145165172936433415899599819076569701329881598612463872774769819647188032550634882158981930928979814685491348455559434737157679981053265245682080506080700968782181744231656095658022691878075280875918231745190801102157470200742063662212176684741143376101584650085402286749675803293483474430801488644953884636625833088323773046103339557927908039117338761683456767234228885244831618437957328169891282979268010506629230389553181813091925641028904462398756589738969803219657079249039759671185077507953326366679894993742432343676337211790618175012172302483034988892780387759867225708927796475058322513476638915318930604688469681300199651419384692580757930999515799178624810913662824234820962341882297292588367291100434990069319727070939531578981056143869316353989246561234250082935206103335153249829454775523413174205256355773186424277365048282960480392533629522108187728776263100768858489830321114185758733406863714489670071804688296765678960881821844976895319602408301006556613763017381203643984440068362851827536316996510257475008065241273047734626759677643885724665627237567457056448558045868372158858761972440127935350751725138264567770322888768301802976368678054324080431780779672409908565770265701248283609961586597888845105887097698790863244224689075495712821117539360340150815214706816348421027739591689808546753455754515326865257101972974513130542768940632995385664245149656301957632316373034156389382570345092603871506484668359573940494867517826668835137986033964393112384471137506813893479897056869313462199191747519624858582456993770352022488605127702273733455413221471024736755476931797648064401385180657884585574629900668288564523526513827632131147368911415583331696219553220756366095256520466330029042211044006807713555801749337259899821035256068107053171151159519164517919836227171405155085732909439097798189969661666648260508739100530090989918046153559323776229256076140909362577405954877362332509244407414129265219356549103966593396687245109459037747951762283910261789817428483038763208065004322208644754892037411401109035218229604021659390080011497422438670991815681160637233907520852548352350408906797908650597489486527607403706305700187985054900934680773576993044946699335452252840688387000866421596665921421229756830899450253923313787490120329432989417134152704788367767037984530303124773417499583041119312906160804604067792592944779580843723051389117782074664735027153556626320829772320449234455351165955206353349488717625367859830671371914255100662195900258856036339241747939630414883837176222610025148490921662275263142654295061355279972998110193767318610293292795895636730818353995987469648620915257205551204694172225494862237674708229383302414865580312136640852608210828800925280045539721834249273105207672740596538624846108008674460566023101160232224070415528301101416342045306875988066947619718913300375153034122415881905634404654277017611044348684515050378599464773198569380813427175651939349531106500990829860914798918257504657720672176977765547949226445358931888097088580776641015419545887449197806101370152980537541555809525036842118642239521747377808574350452436351679335312298068450225572536730945389459389110064886074715933959865614930285381346445725525204679821585944407194768052228610927105238948209332947337012822430330703149057483073605623450796199793647969646642744335939262973529736938043345061501803765672188131453134152106790761633700562772211671827567930748529959858320982561083343843465286876336418062431326200995439779567594588178741273791855173017023869097213924690804807120503843044376038240513158271370377876637807353200043969124093352116056379287073728066865806958492479929804736063463496819754255275586639179930508258314615644718019195260184780953057951993801555694475200205617640695697603903877961651596286950481978395970351718970162453806212170786782364473626781126061133546971767934044331277220884369000787821836223981722288201859276294463639329306521802276370610088913806326800200309851167410270249299787931346572063026628038596885318491016400175141936459136553982240935366652344363725903878888871276031410194276187717281546557400268796433308307325929982639122625092324392413355488931986955504335155904339734916670364747508700602320530109429782394086641445831495962965489818616468732316159674652038252252493749855986193045269056529267727873155909359067286949913252686022870404004606220950440183243021223168817359079741807087623042705718428996526963771938694542224496280456833942202185022928089648053827699614795417170702844419067583485374858216152279771941275535837236040863834181309500602270732301927189799027802093158053101857862062557400476010885171751776161376341008823737999296010305355924037737512237022341039828823839264086292235451832881463078093292887456773899106330132315762730550825643647189581489423132485863595265500608360405904189744637766626232257635488861616862239004137095144743454507434293653866088086198864206382903454200167788532331948653152260046898461783385224543230555896969863448817820947489678117357322405388842319960176685539089144640937707580254780648222175290909638439937341922629057835507801420239804560825325730812079560376978253167221717832225515126240080583008732420941565320347139880191094834519032545389968336159031768104301389192799945165617885468774480560049497790554267724411005278599286085632972733469490840762226523417815898750130195040268785889545446458016276575233352073183907108767521846778487701663003113095580072173748641902363046728961794291554967560160203128862242287166595772394393768524598255408674118053571850237334323564984472992493822916496638420657735371758891242713939183057995249548056720863320485777016325672438798301759964211152856985755505309831394478225386250668167756148853477004572263792949525294272332261557786588514271430239571141916758043119486228368707961499045011195849291459462740301261972363968080507077237400826952754767366937647804042360672689593198779389365544003465079662848701105371154509281702425882552164553178434494314441285626397110186227237631667216850566527924212587862914403198843478989184697107566148178111844758407903997741957032370811220719259082390047110671919241943298299557699268551636083874377353125080983447097204897673161085418001924608972569199175029519122488476037556369396009564002696157411167754983716041650349888804368703183813324483605944566834720165113829777418940235966852995386231664807836446130057208761863213984217369610108232161617177089911560152731781298949242497569651627833541206402335848235652776516088852464181618957270443381756952635730913025654916963313439441975124906075692521407144491337727063471338649265464265906980832262718301871790350710627493609136124169592124582220033692919912120996048811352024420429023722269591966384573304085838548334237924019712398585969334824843511955413924174557291030823701205065965415993522590717617219714355955547129277457924782619546087809359969737834943075530090206438666577845294140323977246900098005856188678961177311604976086303780133606112306478831668632059595199334712154497779593394326165279191046017291395304327205603666770814553673109241185847989860014857254782119094502911937853708643664809157336938217997193413333881447341546029204276507515130081318998430215573005854405772489367219712975282654227402730728659054812659105596119491297327840253512463131031692895987499226456281542858249806647465408372020556032460308886176697966673397857495857942187158296085877733275547478278887542923914592994813964651839591402696195045692282219044869895957389227093477732940660914018801128918377086142342912491430785117901024924410360244598592464649138177489566192589151497945407090568952581306006431866425691320575383853388062249229284113153087996892956491169090671515347748558186011476293830797920642539544146422117764066081783900739322910617457645700740453925091601386747786360930538639072619103967121422406834785421758056457850444907793971063828251692549001724613293319392708614948338496148013383389543618109845012154115407459905722616841962886778022452071716321005280445019667281531029351868844897579094162392182125188725946512184042677190847063561066382797005219173932641592849911871966639535356455897317771253658308815828435615610187127897139220487947045025010485470367666773762280588255964034914010468886033716858764657847399081372994227332502798075163821262327367903812613810737771571181512735788669064146236257603835616865072431333937182238298305506581269582934835451554539724736307967706989603259268866962903588536604035299729409833094220091792404868765531056975958753434177331822181405483379875951292389272057139410808429347419057350736445171150475171600182225349598696900408488031728191289483476641483101741612743940570923902332856387061824743216730917231844879188526460203837895738140064451497641634824754128769235315244144649053441193731219386018310859822713466237164723207374384816180071629337885932531463735543172665405276570936720949467019391764724396148355375931128958349758575682855374285213933457256286237571313478429163877792799677989167068534031234219591723554527366921434098742998956116671380048661215912305186408196326736697320349416439108695498206997496544564554961028361112269890384843859409790067844769829411600971504755504149475160002667675105481241835119286771481288311060490895576799152454817726173956237079768462208530903800755654436348258305196456550425708266924815389782677618980049852073198064791322068459741937952600428214201429978547351577958512757837347710455644547147210357016208705335106928048065681495984649945505839222963911992208986240682787689414376147228952015942547207639061152610260197935151254078492649408545956248895430453459196429501621821257624773601487942731754587400214771069346683968028064428314937132849391822309114753277040584976820831417837105240500651437150948958476341769686144433498539284362944117542384363273960889727469327193181873281502991910533228203624782424666218870353930401292068049154768204230892986572515537241482812980376423138011060601537745544106758485139423213586269208195460183495175494824764549528583521278219235940679407699157572572166325428733942445039718147380521494518077029656720168260342618438793663867393243056066320663698128490404245088102730351286044633464780522173941127263303685384742824380521080165560405150250642245742712683428291786935603708346642747150346603348949765293052531555299203405099905098571124822302626043070967549514243668949133807672230192056441863796662187867977224556781632344916352454027532165121492564615684952533985495235720662109428716384004527324732929228169171677249344204268548247382280838848257134073131682169600481449831354775411881424611347018875953090135864170065348921395717657935315253392586490456240293531567158988322029599080225261996503993921204712700854168965641931701060037098811386902224572616010515242012868303008719350465229943283022254147564389513097124754431298056246254841928274702208118120802056564881989726450420996655566713393834441770794120572173854608676622669680671821445903166706704155296659760876553232232882577532191714172731013266794286758301716074032639817049206472758230706312178885023244083385287053914510457892102690964101533752113768167531509605166144993952393304545497411818010587285909142637816562021567519902936739943570116837432987893629866679926740902460158202604439927618745186807303190994266313607325910711996600899668471486550899210884272504911068514546995735786124132791190531011023196622586059043633642464809055770980248724099189331552906113769074866724994546684073258959784690721939187671359657977556371837938978373176387858478067832136642350420540047865150391095270457051856689369159413368459197942398226786799327303657874357235955930326273587619298553546749078908375086322661443713177817991729852277665474652139097723711906191830443400260691118020005216360760972965307558721934621808149592006577130841005302266381640076614694356515428097613337125428931653906226857629397412903407828497731233829039062212522523193135316107603337979318700785592818643642443805554169653691152725950695866253743739674634665018146517141623531742401096486983014590436969482297746202121145838502820609042085471941122385428813309367481935313101440213612237974117116436238524250984137837117189773232989229911603157416547032726873215583532561516097404053249349214246983503879676789963314262478925251422978945272039363069742781387139918979515205492267596839519354824679747856466583790533279573322818570957484782444309869516381313869692000819055222354676324656664548410459067941418602933562163425731612376120720509041839459965615525374914515047119870074322854357964392604891453727943613120319731262542568047377009969794592991022286354377543749640831577205444876074342062299440815841334504563288561391688625717745898896088418650128630253942185117032498747075713592140214505430756686903145642196204245510879491228126958326700727784806275786103959769295721999784048159070115748256982975785239199558917290502686703056846092070763178882288324656819693787276360415170482469338731693583318544611276529072687344071304643139698441607439634586702620335159312888696978172984634683878468107798872008333080795700663162452179881027601975389853452866708640328953727001149223138325965991171188127740028408245626681878961705213439191348944908948920129438354984092355627125482835440360331457351235261380807124087230902821264228289931510288701824541169532925632603889670824122576793758356114525807991649611128574175941267478203760456301790638580659976334425713276629197621323659209095965219207975050258585049551181101398560161475655529368829988614094251064516826965666342590344226872734958320681269954397807841558908267061413817073856326984944088971228718856530016991804389146863127278198264409206074714821931878602948418045202502783188168126762191594273437218870395556178439357851515179331166685369995154367499401208322568877098045468735212756105065050474714723176886326502073232820401527190833629760538586063980900107735657184765698867389505577813692257293132644960881072903493719156288634205057477846993501260710277433424952938820012509689591020133701513852546263285811944783200453587292400331625205740814698023469048578456523921424646200490126269930861864298359517884913762975245621823467037651380979116147084724335861346422237936127086944271437534487398882860943251605373285328426595771614500331295824219030630028926050623125852750407726735793353300278406932530755524521872189139019891568523090279533098879341975137164767815098221312978215551820383694620568469929766929403222387673036932249059055284591011058298721469214603257934901871179238563155360766122412476597513659550127384198636515796124399566362703189205203973861777095584897593078654487509357449893098108825831086903532546511683837942943382485005735092028188461475579350691827840836176604571438356248617776922639761943386110914809530709693929523469266679448650382509564131054640005189882123418580108687161523798745464209684612287822880346223609392030872668588548579532317049228230589491586498097641821008515265031869460034375247002107061798502856366112986659431307147957265135102252589614336567060581355274786139365638145969640985562111717794023075791735399367168957078924506055898111329790007369526004337749465895218119683292639481006105424131328181503757680321369570921760356856070067471679335242501909385718196297944393098252036642339278126678227583735478028390303243001464670120792750925142809797827381044757866803410838627343928073623582652753540100712953442280184871608268399136750838863420147846516633140182070019302626079424231262890729712525994517986079667832236222720870298856890405034987301338195774336520215823291013134473627218165663489469727788169878844380301707635832237728966991934432373709772053154939299829760225666621074595576136613660082026132365427832730983712127209345237476292603794146480211004102490719088107588977843579502531415177671692492609225746100436023845906344576854370227879526743583993695110194660370821885258703612885169055785280044421661028447091987643204420400846616126993458594137254770771558177136201415891406243456665807495164005207930413838279825804094519199486558308862895503167626762472401214649128368863443672944993958904305356874229176152515661974338559621867910299391891151742989668247520670921645342494391358559740679339626499604940229815586943499810897392109442277244865536365261785209778076153017260356622158413785930568801275757423214477597319116229847691628753740439760692117286320470094108068399875910030921751821666022197973849418900138362244937844224597196187968108280908088402260093717641875768123048005959465729331573524894514446686703760712803388419142571572417840186745502368618005245419627847643235840458222214858415961463395758818279662086307782627224757596838920357166522639477953792734405470432280552293661232383179507551869535977002621047971067900052495138524200432547387273084191627941196306529391544660562880862797183951501091167692954303750820041390622654614038001726421836003566031105230815345133854781047666040105833253517409829755530171828320772334088430188994157647078805442441001158060096858011470035819510829472749961438155967209516563024653662720876268392370181962717032127655202252597743849678227002481517948053676331966445647767451956334153371085018765039324610564431343725899057703879936983283415098141432877548309206699396383874134949125656276159774991795652353960956632110161143298130690117426324500449552460978144352379251968081194245272952523467685417379075896718893750382520655846625118043744303144337664803672872421077307569782631858891146330324657881481309085044226965414577761358983538919238301789866143615092037141855798325534778136548741509702311219338129194426743738542207607250564181486803849856395279448275939451449110120458165909631430192575639526143939021102069397414788864966976209102373975116069737833759141315831782292598846375122321382704604990122745531936543656079511163269393931343147846722752208800998810599757680044475545765944992595190992629739388656472296713003370262761975981650188484534269823245890766566120452198109709339770419680225192187247061757972044815585501675309871388170994366000601157529710324065866632470058576076860279516415878352936840298291127398137342273694415356186579414314993822647974250468878937176932710206831389078360438455684884904170679808593576086885515325080942813891704053641922471211796811485991392693710781028996372480975392282194666575375024212042329646195639768866681207863778280519133449530092769132940792296726752518098704203291512083343106311438085447489009016715147106469543092375870056720239756726655677337009836575957016541158548658918573845170560483185154967849981230595211731023109047228192849547381332845591379495368652392561240069985987781797884614272673309011003993919788868695050525638834066189535891609386146548885233260535598092325064462484930408635453639456519742874678346963265320645840585416430182298488932577045954180778863805860021621019498009405915599326474765092050480162620229051837360842056916655117135432801334554509057349978229810527906946451751188610522759949533938708712498101659372505532421543103604959506515747482972605970170311137378346556804613088425270387045025564656205228106387063139879092884121347731672246700143104337451556959038314775483430220454484749773339241752118060730657215941446637600042987431209859099737609564552588026094011260902407092815048566006078803761701898562430238358348838746003041923979327259145722467336443147903253655589889354679398741744447318699580681447985220931248144504097486906748641715352347050468248455164815728595089327267492708161937186125778683897199206565041952774147899926018400851240301104660850195305536086418824768718429117119845333819711830176431002890806078022936456987834513625838022113536122147524861269165581219192617726851262497761365977959476017521496551536506365561905569615180762355292357265539497933568979470059774843896419164215621706762009064148058012888702298419018387893031569016255110358048825618938627168029981260008438008858624838037375677895628015146686403341977260279325345744752379228417514324441396275268219207932806791897397425646559093860668216464990004546487918362644485280165725881360369538257503916945297594467537634200305168031492227365522632074867168861591301169296562767007995175837107056548013384230208975739462103640287302631115901913431796159619971621942863186137621982916129896153510942741896711839493683952692642769234682095967743613986108699720591630095509705189056830832642619179988544997200921485360660641917957928933255987379636529902540622558382375837702424615577382147350007075967408548648793740085839551224532361071955931745712905122305453990352455128689769169795207924938061674985729634640911083395135967979828805202238632505058090690258468120480145288879242842413513701900599552281821312115928316468342658146832968843820377816850311662143040603604351504766279280658793831641685629872132274976226413869876203645606244490826443159040416035798087619327972440482896455194065514048442581691358969188101489919067273719902638816574239935611254428242588919191555912276738707922879640541020785500401390322096689995569352962767765489384298961607421328715673802693965873520482891258670175479529014124511254410278170456370825671673829061181106907479563430680782679917895032869360486650853132206539968422812401796000341907483180356375551239604024954269214222987277667049166737751025734849580754272219144340594202200008469007604609083719075221569324660281067940992616612459618255571853487795937283278303010770943236176440588139297084351337171355183787811797506223058534897923227415408343980176630923385111946381653936918336821762702466143609908866465992746118724391186648523663501924630416501111893382917723068112003704416527083958561868664714199906437738645508166144868713605769478328570487571746224174081476379431411401825941107331224391517107755288142929552521563295656257858523214496319442028244672705486502943125255086145312295837090093121705224202879041572181733942833840897120854178043692657088338071652225681651120571040146718967733251192029327133715118532011605577005487854550417660053368101632151031538794312546151266132114017294857027876065202680548578897699189591850682888274891925843203445557543902298843794280397539922317825335011890885280966491743682026796840276801601605086799931580765653017927721278452517940223746950807490150056511732706119728221412125107805636453502803291282561604223306692064832398388423471891934329549559091669855953851431816464532116331174747466667478684895777449384259155648093249404279190790211690325927044505163665674848276745255943946511063126148687341588126239529580929567263737911918340951160486140913653017047561441026661917666442634305991727345261159118431071403244346669555311350013776456208283135644374411264936720024461785102386948869537975187661251146009758201523966902855902207431169944184040379619516155099607870572237222590066210686056353817742234457802545892805609059540877374315393803644520733308577337101540317187403956798251068570913200075204118886285034728243876466949139878366530454407781984337815821708552680382831824976172639344174352892391592579762883740931087606006317903716764095704588816964561996023225885293898260396246478729751487803860509760773057358229537959210139479165856934087158239333361479269057928192512655482290562936847713219333691481953667535080257785086050347255539455253975650410957536514675747558398620827225218423000584190117963822684251086453546728896540012383572433384887459004369111478602891193346753947046295822654054971461073125575109949228674716199800906117061587063562793393584389412337570383365605234279932385692844769699931574805244478568853533549602624569414932474330549255252170086644705057459757063673574066732763688765777187022480313172412225553375071001415047334014955287988987074445155035057657818954343958690742928549224960574800383137797922367167985514054419702250885948551179926519098287512302638561529818646346796513293337525862265359532430969852480800998291164671075276772065277182510259979441081280558447645387749545914758829758392670039312755099963684546376152328360367413316829330346753534305441311183929013414892781097692057598286859014896320017528697971101766824412892125537547737946170412183379423632667174734785631388562031865056092970786199934697663514803264054682020065737539293077904083943703426363791036126245225007808768609950637246795237113489833601537220730640119335379859828137007054345865621120361896035793199174368770039181067171099794092852451717038757568812887324673165521324558552884848884016536561847143603583919982331141938803913942028638494077836606151962203256815059048692832667138611985711852334477209953755728118522941368550285703457341835659747277127390046537336118469015836463954673805131368950101336549105538814500324608756699706954873472458287889905399766243008386354641109715555903741610394072923094928957538494262684697370764732869512288731542309243176486090529683347916906776409159540336803349405829104726343240364612394688542516193146612141227541363214335506114182066285793735437890030028005968081903558498717546213058595665628333752041493703504650188326492208942609332833017982304520647669960743257191475835821681508557549915537507232225830348334476382309611609659373636806098405522123795659533472353649502877401244749807813564945238148198802563208470320521058539222903033546206649050035921565448029440642016781691014658036408349730716553936513400728700089876386277951572562740177427796375130933451748984612953315247328490749518105663106253460491042194052553005103743424557136582774613867994509655548047266924441444750791015735519577766926363526164277302983954468484646879515633666066918179352275119531704841194903263458321786986511727426944560780989212849980115730560646002016577613527576817372804909902875565634541304488487235280724422643174426996145666341562127534045135398731629126237918408099098837773695261658677286325614107537082472932672459847521439455262522110968035401843829970056938247604801708453161677651615444525870267864193004857024175374347384999793542854745735177200233507708199169771918518617144073889500960025326979444137205557532092405060209919056459164496400709096688443935678354206065041948463232971349583382222262810090254575854308802561949600152315577714581484370751406706048827379788547575575594515456067871582015323074573265427608552273328521321686790425297684574419832904993542697693322526515499230951457334133867388551987323013284945608253047228932831790086217788374219508256307628846793488131332276102359193861939386421589859183679043184020505418657196630184057693395090587367664427017092563300417812241754392726132441883957529130834928166653864692889503420329642415926068622935513323499011115333404041907342049006469826098518943981851235907729446131673375250402813551215650701685610602401908111159357690866838874445792244669030102076857056666457395272548709600467104353660899760571858879298827031062182148742778592782501237697504202349735101922611424269427741423775671797831016526242011989976021867744283868135136759456201070167143786908620126826141433299389862262378994556794537232612563943046669718752699659410206490405984378555927192160643162919411252538707815392272818846645046046134101072950099682096458950373016551965112871241496300972778835122944580342132277176796018617822199300336199995250112411182419557781085180611462795615491268484597097569508391653567982428196281856109758591153369347248460574149976348662512362732797095918497133036733163625340678052228847458922531374709388488856632752114084244170432933615265162698664750314576758848825185839664119037692888432996680637650087029966146946619897829340284161851728488048671685964475569735879675774315153013136810585800023312903866985705904799559275190103497914748224153294716172201828244007988174310154703158199192239642650016955438940742644991970513571542723042503848444870867669462402701133488607071384902338110540712866274614597484304263936571017894068744393768097724782561633375964681072704383656319870214077744257074598532292785384799156823863049087620235949644953569981610266642668435379205543501758526192782978880408524671204223004937491925535690540674590527126521235391251515962408916956835532619482237855687610372192906577421550463961527164683353091902002358156052297077800763872394832094196570677212463271975350643584772380778821173048323505782606860960482151064490445698488226892799414174156395508084089787784104469901809099770371872396844077780036946461042636851851756686588258277323033414714441128494210899943825219765003412129057468644946239306707029030051552908292030339032999106894720023836234184995717174303696923603029960645312186703602503319182015160004038007567705374151120102254290151562050218638695960974809930556388817300564531407306634401510790819867594427782219232836383161713007055955498665743450623306771862150557299182836371175647531318032042246678619618691624562835964135458653313967811609014069809911072657885202931622377669536010571187807313359954617344568811574199535230364187888072132349522977629970202844309521405798242592475830062730846530164021540790728523287111009805934009474358500526459176992612329911198135267699983140379510700966730915798292768690630330636597030831036633425245763701306912443668591711954171096119456941529794108049154294196679204808502776708312344421448498379849252583846023983248018421187051814683127044511736494633117452732555273376367998712846025915271060115674377594348497376408444073137534717830127516047617499843303745616125965046836382448561939399828934983442940852117940687468193823907929990875747132250588015208258335044866386928315271066560152450877701498324178431158565732386493230826135326247588953534483205741043307698717779735738957619816730300589857061800985926775525745669145126125807333262534998698051974996118012886684563593648308701732341281676849621980678055979803263373481949542113810251796362845039272610326184187182222352920776839298682540999013100278539600991510798265665311284155773700834799886003022023024615024215120278489107144144775927506912169071805812647664767348725950137975163778507649639795105176921028270112855825982677737015742147825312032103706860280004799567668860458327174255137641625058827753894955757846652744944469849171826489619015453630081735311275744649735595822798037572754251171400564403362824607250821576683771521147748525907510544913734273960601785836435773798386597259147297809385103333069583539257519244470245826265242026424936988984734048065957044347009943155193534526497601204107458943191475710388598126078299119135054255471403894256351954265788645914092409094086776134369829133565510016905319052677398858016411673908179002280082788823956823239141883846647036198889461070682750153392325302513325463609875441037251037547008863574797321389386115162450870311482452593589958600146024012567471878074034568057809546702873736380805622670226471695241008684961415096684196633317300470300753918828327830084862215920953681585240420547929326308543559621739129250999991549691650908851401624149763265030720025785760193619191060399603141228568035620919465945147049619128703596057885545398876112880345271757205959154614043182735145431820933688460130171503691900676069996875479825014222992894452218977412847605608232134528165254672766045162950239082006087902170382081751850316866709424179189166109028489651092900915473094129089110464085852343578982336394915865535917894234895783848971752820845140568876271713452482038779038290341399622700279052833324326171599335099629110433021869323539404951498558197240905459522292162958255685267573662551856432796371441636438006805509035116746598213308215910816112471581159038498738025280915365408140237594998337117764729155016895460024387968325158365707352224646905531580716627462672713204414346463775938700721000147674528515082402912878578017417969349671701601024367999516405711475074907345485268697080855383692850599778592771695987034542867771540564711664891162799032636174656022474212590253821996475110115318508261250447855613989883898719721545617777342885391929847043156492842929667446303276036638927612828662443412072505776134774208004827774804991934001467254654957106601775616927824176664015313888644363786099395430097306641078985147725270228947015153521739684426683985041384621281585734659649034217469022698978083614507249583134932554265718345419643894875988618008832006169974123490129774650124444544155209920659389286959544617057316961536009937074131447973046743451522472430268198725320019880699893628752890095046946529823647824241586898690276556828385901042461797909417665397191128511718390258014036858688985541048245444336111740388781476725433433910112622232177250599944212212989215334001249362302303748479433225480359295439881224702137228609096614716123200503550637162833851673915953242864568526400175604699150490751711846174618141716901996073851682966842070837796900397884914679438658418027323176585079414348758330264890443623752096396196730382810463166842795749903051331636631413339032590433300598939859928512428700076173479978662990955535226946731620994947589141811720750326086184707803771928672991656868447170702135668718382149725742558627740941548997286505380854698760543781814901042287882583477529207834905450279942309694971883173701091937353340683523285647756650678818823635474302102800535090746231388944292673630325426602250450715629263410278591502112162579391572659570662147170976452395988164367179180681724956118388165405033802845135453444312906535271177050058546874091395357238886635699125538976157940916193200915683371504600092575933018136795958818239393665457394568427964855214683268102528967671347447179507482312819630706560295421772433591345788841298797152306768422374700751401162098615547888806084342668984835805816161157082841490366235493071285514371164767677776332635481305838693730657316699567263600373551340453253422843446930234515868855464712367570587644698302612532186981209810388176278709596797280884370954958859100453385778799839976664194171883349608011461180001155677658521026010670445885418717432709721890864989342844935647366348178738793089504153050243612478477147640987246140810832721093347533272023486079089842621623435996558450966530703298039053102278064587782764428342992547290433745082460001827577624434804920822691563153052483877487034987976743481972024354552940576572804049779384167216912421868120934908978369177091885824629148515531866031460299433254416448332216383532119061477932170542653051810720061585468844301807986113400472675116320160524017567377960400004563190457369644576165720301317232548309613700746066779839470596093114322571048470745143016016334395571828705160616843775481704262893561719345813734320102609851029363844310261966975472240336685334394618205112387496177568922681475051406400485801483002739363716400318295517545917535749529444894686523002214174236189793730499692787515622898039286788680832339576338708566082308327002485428076110081091273207884188975755391114490207048218529221204414120865464153994765857888121462126851358219216494856871042874602259810238787552012608315430513665391084224596137715376329789123534107757883466483558295581755047482258210378719362844805759744970504064641926199732325258584751953192970924916135754505178036973205459645916231398455857194207136072632132430355980526211654736108362272399453354637462081284223548869357187386846881159570869462451062808759516836387773330853450038444060114258139231767373295316107190081438587790255134673584134438762473253608940630798402184272178387965261561527699666146448734754772654105598694247353224412326698710857197629765757837393365351715381594989335105840981408770353476532497923716489264773843787295027107354608691529127920705879619054065940122133755554363179180368482486863555756289853664031588920601804698725010860863516044999268852383819044414220422201305143943854821361300951550660071204330327101296980262457390398535951075455957035216181893453579376629432595923719117451847633554140477928300193527883038441557742235278334220378980309507670506206934893091215016941341586176153300551224157654569044782943497967032797308924938249855338649936163059331769636146832995650888975228050948800270039596864652191886755716129844840848751347587106964367629784176557644429588702150965654627386015510372910377776095785898048314787415385530261542918453391067053923845785263817668713474988935549432170227067255485101260676954024246693808344972508191825741108799840253280267049157760911131143860137300317527907750868511355863823432973048456247935843258075656638755178695273691942061672930942778780554641812005273816111870089933862547133088654559419115256451535162380364567638591834772445104736978266846542019608685526688752365973709854020195544358255954534921399759164540740891861557351317687895471322876884075599136407513245937675369136682204652276967706251532558076813794521613392912647054324732642460616294834689517352579468680485134473645260093182045436271575507890519208000918845249447012202096357543601123333366058598073016762103582801004754351600593117960220173871474059383790131010136947771709069125450481251045056224660807786450909942330415113257900182570774224927056810521071632324669092318676063653990148001372963607209096931310561277524397215253548953770547721559035040907241614461075988405829120908976627537444421184971706053181723270504105024622322256656120805733288409352024221773300576733848816400727741475562912941165250703651796136129798563191667787103399987913821263639702565876453362119312025918016847838775392891837287885186077318028081534642922339278037042568213889725213111172119867013871907414294601740013238305039693836328278064908573729320106574866874495151490633660076195337008588174136382982654282839419584728320590377413347067092147503030663569029811999857126868784120196326896182108153488827596793635622486623734190805460879483838593258671141852643376696591201816844675897955370232684808419245279650156347749929490713781588597024101455243356209760877933403796075081020876977729365008445912152339203249475958419795854524011576285262401407472853343602728689121869844518026569320084725322710989975822481354914139897306515056588878679189310753229591741431357290056715913473453769295266281891441659057892049316855835651983564969768056398901832597104900991583260303377449511267452003953326861270521850988890052679084096616071441300069368095678882474721761115357973946858700434932496235171295890376991295278380747391630723559192502423633964601268763470414440434802168561709959155643346467247664926744472016748558790517326684910769072488820027155009478097717411860905783752860419635916621142724208033574729763825248614073953173959192917233341913927362715954017194437294170222979354090434265205173269923293489341634517327808937708067624558508252318648482085771727186497809392006037368269604118383166911380726092681140560659760705881515748016425352628927187025442093290529888152395167206866914214298949298899051936538371734997413144875977932205713362629155676766548648847649160568269073642557209147431980454753084654976692428804684589566185642363853122349192452325670268805587172512019174908099190041828342462391897575451592350613714821565818594353167630177033023632626546861755718649651372643301183855062585282159012698426202482922190343898142150962243298792097864992537610146318152972978444973428072430644873349248834324801202300355764125188209558863049097114529424188415967961472613560872320880783427194653439157759440503997385546345724361366618650997218726909608085294756141847418160468413461149692399143922892844214615754440353729382413726847630603807583056268330429495507301935930411727109526777650767046692436431873030654870076222363745500576105663605719788069601449199988459077464652989077625509869628998826930063026708894549497882396155012067447393473187836192236579229797217814072110693153484821915512914589916897576450174234871127853185543174403197104327175324391806358583949874722209636198811018143644625693530740154053979162702878384743592259098851123365490280859955533385952153059474689632659806838862824012583640273769192326348195339580645120441120706892207516079133702950128958258869001176305125106951763919459768059517026970978616510553764500319207378558643935471300748433246423874067166138804874462774963279144282564133738556965752761146333816726072468542032950843236601411607059173208287073851114802121344992944599286424199438096654346791358014690415784245773151150877710934431128189167469029003005787217810337935225871037544070243039997465431093755503490800361835797478816100580222292639344566455391686088880665563773167961511132233870059651220931996276454257196286573004329741279693560984265442809920289645923924382369333009623633934435932685334213016056883889898687018269686008054927231984869053248441899655012488092580788517800212373546116831593961203645031124712469559559653695774429250667029073404473658097216726659622020489903208704112656913876898671503944346543453282128768798663392555683754158909513334455044467998193468561568099878089104950434621181809378425734840657550792868574997029925810094626692362910639311298366201232421413525108034294627022680132242068645615415757031826002246264814699241987136563302662449563111305427304337428977957065039655158413249334083225769108246556153742601585535349093798346982506452359175322770848726689194838111331233869437352775650549978714569543929318028945773607376675333218173733170274887389127876663140924329275822614018108486736481771115892481518271885037590092091390810985970950448024378627080515167257193708401432061140205549671250873273991478647657080820930853601520017237646262353166220506557521656769892597926328758705720045137596099244574364217456407477798567785416330189482860142550197168188630796838268042156926208307253821109261654916918278943144238416456651457403332243279460291062116377773525256128521943366217877858562655814866015406439541494511968889580474905093135477679159002944166814359527225188924104891910197607491236599291397692896149185755921366345754157521956415541289016736655167493841719247865422442247579837620282491249434762772114940851606074632094481103683041479833533497019764204986600072939691632059384058519872557698395457498978073874993449088649340220971785298382721936187316694652999405126754670330858042384439258845319455135187609189760498590769644721997679193270403340810849641617985524690490057458500699189985253160908675235177338716798435881106602806876623158693653324820460542520996714875462764010183351817715063518903907809417880211395293186525915598466005573292754626011323591718486357713746315213021331476689569536691840152649076915252830262901451987638546193530463130408848189222870008343325247594465308413766141632884234226359405006368432897436485639804454776817198145188388597554456901550037369812119905588010427664805966686176899570727251682972106532950166859471396908735373872071163509063118691754872820431918451398961320115094621495361002700759496777696977018395945225457071712251166806946488979437803959435506610609162516677943568793445902585227640466162126421550618376265876978277589339162573557071624015867617105251693907531010156467260947083190612339645193618851232305860259204538313054554532857874337081916440179875108320156310408473006575566862846036205625325459097793075998508086581238218126322126559265093194515812251362835665170480950555320936379104878884726501911076867504554825972418999153040462318752221229227822650283983198894180036812304173820410360818141384064749004770854221611811079588085621923534211753769695416071758795582613284287645858092045170715166989306949032679286951673014120417943445446354489116206945019071492397816869750475037093243195971311190334258873697831177681582892638899582664116820676071616216966877675811570134498580581600376012554605885146196857677235156813513763776078354902764939391631267223185286962077592335781687463495340313157498964435186487199909842859961806179193740735011064728674395370848066512157666101983320411900299735816288221003946115605398862619512472000096939462956022277662106157446841914353722381264267441309213232322084378962279064226763380462551982373168205303300833072567800440730921262083036118051356810923281527860440749211057867746049095951279326447547152964031268231157076745389049412186714999122919240258545608866366279596638843792040594095298900044693922917243846034510505950791661503822187369429066065131742387627255588274149854086321880757991303386018751874615904771769200845408253898264387710011600015583968237447501016159683742834748855927716497210020606568758443611375316064607611673305556244510455034342528563288071964659062178120477934688223554239130102671682782859659803735867229206058372698253378791584635922153096865268463057526534915000323152767328423172347015050137804816524370837197823932293024801295036521082826337764275894511113243060926816931769898212884764989876926566490956407376879973914900379266370912462651678122422530207732864011419859429055920096093464218208024630686180363514468293186236070568425548968158833369957309785110574056635819394157532952394157711319375382630537253866922843383338344888552300882531337394394567186037904443394919456380947351643993382581307022198088293432809760369858899748232549157880901266353794444788124886754375014326766300315413387817059969118527510315960310827618460091828345591493613312299957255230743183230863847320467270105623529608039864197602708129422280031762949157326238567631952474846283063617210785171901814185489165132894587941731624563386784463572017891631994594710323337731390986929227494007746328729924139623204689260990851706690523012640522261366434431687334131465030512602097349741993201366061358811835141977602729811300487077123968590929657526665380368893947175447302281801999755376327458197430641868800874205010943865333681975130748170450341609406548734010159878480813055370769694575163268076119479941519573290826942593059245895446212958163685513951255576542686219428765718299488290300638197962151385827615404961674655305261437459535398128418083150699029439207687650546107190158743770722891635784406576585064396345875696158489659628074198433377585531155820012914751129346004493968723663145727944364654470986981318276149056625744254595830962404818783421248662153620550971614672264307228335036179810432162181275835619487990915675388025301206059468455038656738892652077890932759533357258644220564693021892194083461577504171343094609201601090329295425809399968606011168764654809672434685516559656113236710423914092585825330817901206527235080577387189861275429177122492560395300789859618423606325944262097977837599330272398821613195573866260062987532943414326827596709960803053538215771296811232585976720945462916050743212402993508118838793512199940668015821464841293344742835535502414523867268548459567385587417183153656790383659975352839454198932741901545678729508612722635455312158756758379427341314596649089656858386162046472551768316340037231352898893111539130806744507168485401623070627749103231643863385714769991754016584121608336473301633306139037918658570013613533423945628653786719063457754100125078267419567284220815253308832973583336002168786817622268518916566532119725749951445421984815143275813604750199671087798869141007241955933522649788167528246670762666931806559287149799669046699398118863717425031871804664294681045349173097996211288721365242074915490148441844311801996595888203260151966853782748615041294432656266913475415241018363088748329095538437905210335915173579940809747305627484122558769020649701417514951983343603007741910706237492471483397812422724624441789244769816944327292119264541046576483816803042690166924500020823939239292192853948885578627644972195027905306001097949918714268222485300535970900684307512768533900852670343290801659812920656140170806308580148615423940604147297650503013579981260157822550933421592006788452774811655689481763776996488668430374302373365482794001679557398013902133265046883378731555912285457395570428211214535288302079412968729449548649991494315882553207613727718868589666700029626300901179447348232478725486176691555599646774909053790544994670639821716865014218141084364136664501637509593283071630717110101131643647997376862896975671283919358830909362155828185476085764247899223545291315069501816763533523830934256518114005714947558166893959364772669900441435910906724110075783191226890648482902054006126525932317037700840128652163024277458094234305900070991282163739465102233433265884370646262709367980971511755787250927303143542462094318561822212712031438615606488036118325508299221273628496476917943512652754029922373877344960304519491105329597295851645995542028181203660159218213093896249242541649244439830886566386466247687684489493160380617977483874300723352570064103376720317535044072816710973899091830043071348849859936679831329754606825530370054588142751706742490657860147433722038177440129297222002120685121641523204901501058511856662461944102952220669945135065749888377130603760051641779940350096411454075435283032807873264264655621546158083334730996185272630183509132131595492876829842190039234959867437071187857920191870127657727209103951220538691989817549150706562084981752025405493945156860888230015287873714051423974999225187881089425776574689284809065662572267977933122411867301710976341645158505442525535852109584607820368468076317768780545911845812817960719430408420249133488816664445371334882128868008619927936810385159687203783167830096243636684700243256557867024185505632549897056668526848540589347689633188572437065112857105129570219790057822624778356306022164629384019055892859221776123360828860012835481039138782134410067873506925743344532212498124013982325777483511442691659124354507257327650530065888459346027205262726183443051687893545708625870661454543828118362256189291279184499121155747007855296751122960862357726454957212902552502023721298568827709034783425651101933929489034054688591830934708004210774007173423830446847230942340352847482486758558429819763471430166957836686739073823931991140373404864953489743951191629086014462277143456511177278155122371862950173876912487357862705970692336569139956451952700799884315236352061200521306276256325132953539868231502722655939173488148013662859537674731924126509657678682181967445871986410317734520680120039403449500603048380197821602524492086136988767468173421167550532464133622582488382146213396102298753485413904981529771280840882500814412901395204881254394108652939312974683537901542641904467799634244606810954311713951335949918630150646085670176562742158509273086965020454763475600411194449399097525831218198308324283667282978159624886234824729281574514251581218878406847775100582507228208114707914681034881292445235110299628614753244124913513879516278791639758262652862499749945237868100611005725639934212008613429968400798802540423050562231113995199899623969221780144308096920802282229052228293638934520971151766491306853984601413214772574275464269284202687325176054387870821834314389406143970971715814006464436767689294509164749834274190019063834604689270359763957789232177693478094174179645087492283231964286241048729063513597235612213746234012611915738676611339195056665445520105169931144404664597975233531451201599104494645551787186638649206554935695698092364073790924291331095499614569453654337182939971062196284540620033812171222143426690583279190477017539391990847646804436294507626747860650124270390148410038172859583603349209736098686568524061078036010417582373823013806400616131588718849208858174706139859169200910488115824855834222513735071907775485297857701771244788871551411670923826448412808150594181477267822309990292267754230666530007964480519277910948683536362504716981537376885190753787283894810724918588087457662539203117167560663176266452681124494165801326566144736652055903640124630040458449806776777999198604664466117469216063201592211522442986599865123988483778812648727785453841415146832124215686349369214808939722700795017670633944448196815310700172260635032097121081111858301906228474137312495363071066129893998070203944544200654628265660962821719760507005780779295477539247448905012960332406702580787483793691009168733959092387547002723756976882678677321078392299942766390076541919650251267987511714899002590595199545283532969459690708520567558823920584969322450933490288959288546162380394687526877297969530835663566762160140867782691548484622265496662543625500923032122227902081975911837390217483337994387213400566088473043633585307863048008645463178522223784383229399284809872905330238886365240921677859261110069781678599742429030450785082105097462908095713675096325140843637688954139270980492168875829157982731997224229566900790708259216255378473472193827588269587683027179824148526652207771115606456299214769667281598607856005430755840002902308254418373811884679010441365942101945746058504806473716439480818445622215439031021305902008573619222797175247680568199781316379661201159310410158189295961341936335109402183609335966668679939161394945222239467189443828043547020385840051959978440002921387222480575407130979153713076988944933716499564552001925196109258992406702621396359271417743666050883800890725178436283018076614620215047657126283237732861690871165309690345868616047875701591163057310580720780042508614655488202553000648466380346819607538708455603266098610247162131679463743091439043803807240722460282470281841507288050443349351714887892577255468972034897747520085879397728457118730255823619664412928373803322081595076108209758935583779268970685996670233531904346255733956155947082756235889080912377597882096725345944591492391532095008852513311434654142896455539627053735264839748887216359238731543021259678313370840760843898293250896628507725776950153441564915920105959757807137714113097626963686322662385296346402619189807170176753977079418876202224561164173315112713487691974900838542097886366415111194474635971886429850053979666827516036106945615976257142700581192075320160687126211523772963221941705351223080735767983966888698574359400243013900165185159593098357298204241992668820348212042839345245110066888556745462276886868633517759378009913587598852116155385284619866320548407489099623181006314892463965205205750688366621279766598246577780673585438955450822679394540188418141831715952488001471744960433370359249420234030472369198874184201130616583788244220522525539476741476705451927800644275178105905244788176863129503206436456853448194111091002951444540299358004822155228497450956876691387197555932979532864881234999600039650945868930230650283969639745788479787296961183862462547045400164443080222264207591865470617926945348311023371571664087727300783304063215387219491569668881073907148185729998387490113903774445891284892224059618593174732537779436019486862483640750112549790162824515957895192312767803065276647337174832586385725768861697614466994382537923776515193886353345779150197625709598025572941438557763309744042707221296711552870027661044151941664776255850438639423802831544582949046039410817470519157597621710381783708651930782003190723798176510792753155561297881634409475875094209423790609814221308412430105420608584118263698315377560756621110499346197741329530148421064353491620201717907828321199418199277750354559171601910112106046568294173889946648085160555365734164530940014091717774975363332079961150887802889533833494723061820233854735098488746955568552976391144075730076367587437442940275941239786155979389914785739396811070910513611120535102193950211249789328923032602021151918654893071843746181561448733783351536162348480325751281653791932922653847826096228887146847958295401070252840414568042715201487260878376853597401239094902896728402734402097775697404912763729554951586830386043792702680428959309485728389045288653884263314591076775503009024395858843231218321398986346084369040873886729701121374151415799369970389010872783622619872620794595631146191534446128200259831909152328585323808392068629831579515502051502197832045080469312938290443962475471264136584228979855774095793558529221811937291413765892564968742165561638001448928262815168131596996868366757069879481932171484513423743504410813436430918860314242456765536817759962251130978398243086527104140325313383199603892177713799510390985098566870549524671423980481750465389946885666052593996758339326955235147810289527249492327193808917259098094379347992864005813515485292346310920074927270654690717258271659201473935781372606661209079478460119526588706896955762474392077492137506186280481269840883098611231471852372664388478814588628431716818107894669347242421141840360257868903054072343600582432085211776123820474114497984375088803316907857044336920795268663153997746386252562242099908848611026943026426796196809950097573569469902993581229626926451465044010635466942380001197761948694777914110012963134453552341494271895896063561829615391587291144913188504134756850239193902222339301094718723772941383996678362284215259764042830015089947598198532025441520566546443896380366599597966144211202035467512549411917893095108367652892389299524066110705052304346195153184116084617257804629293763558763642517212663301635717902200755815477871184210106895396368531893305362200836176371087909752933782322705625287491240743148412477253874792010653987719903231343002764122925140549541481337125284526201321189520135902316926647462823575741993688513659536593519429370517859929070819171046351581294696258084454519865986301824985740518206094496195546311974405105500419341388706447227067859245516925264605489638084363605495483835201116770635001553761870591978672664318875840095555974966520422660299245653390178694541041818837519908262798369628284543645817908004405727508569793785485227423063383108211038427574219936951918570957871206399892202380480169835727784795758508638351930377659978125823259891838090950360723167461950160106735962686993549296187760081712644901449373441264451869743128675250579924011452829789678344080972662050307423917999192096464359559879804836254979511511869129288127046622059180606703506303566629571965264561754033686010780628006734180406475072824315317244368873042760384219292492290920656615103386843474581578559259532249010270272222625497364666956051505050934900436153776157779350443400457650160481756394626535021743922067444969559899631185441883624211084444080106280834564400192686218098766776079215050825971691424541195268485943843754826976641840152858916455004480718151563196553896709979956491987345072614156535400280006856464046508273225777070684454848046849833362718792979183143860042573138280245844895304776275902940324152472713274634323866378282693198783085748239364974231673936130497571137457266429963064049524491766630229278559187697136319943430770368295462889445344851324618088524161885768640870263880488593311768553312632644999713672915536865848613630631901202969065725291772568546599628103207419962271463156036172995096933735256688827860905822123014156909465775062340262647559027156576989018071114998854361870396469826816216688602374697674170997203118397217214982040659978593227973732659384115715995768142004477210184243102927130253410903205790927258715761074271101430878220312632345967936700964733218800301194653963796281761554505152595957798124513327774920563606568810635996100679591732018561134908054669126900943180511047773858776690015959232081813576778157096144490485265985026504744560176995681160847899467077183008135592950809984194004037119172853059281309888253438814501911042965603590344274947654104339616736704326399979451930207343548658741610517915329606065809724089974118462306905099278356628804610217793267370681876349488611006682201384708939383165312688329040264758533349112040041930358639478581203942781643635680798823459247674471784626430341771241041339274816065908128101243469233442716853919980200413561025434745613720683152865841801971365177109121190249613069500429098940659791919750909562974587135538649396040391738143231256504403231728764222144029938266806553981915509664240338169926744565645117832558784702786905218756924002445439761604150189141157730741111008925761757478447644458470202746246830932662469152021622326787764140419721196839062216367456047939404460082363135307514257739603219496575210087967147565380381389765935188023652430806873206073063999380247394321661729680503250715633815768987145014846847560439893221983953685007595820086264133172690468886593682694591752341249981916057473390053957366370366547726408722669301210410138797970640288073671498561503051385834287597215355374708502481833447422104799568491897898248078592758871897298833969804771065271536323341881149365669688222596593808014575299646232536535530403181597799946559731448131758838150206044587620316156408199375688203865246084544934371735002238656503310133466281557765421480920783114094623759318918237334991084829930956532962507357933144396901259136487760926592987426527375051196842931670599793331510540430428318530067265469769161047654461653625073047495896199754020984369809098275480188012013569800286668466056401191396919380450860428782465439260667876912614415061896231373193060115750874242564067176247314356635458656880077359559132435740527698044198659822915752810263570066730838169247975520578261380039092273134228175949222123392988898131682093822171898046473418574694085580775682395236797055933029051733628010260112301111767426825435178051127425027037919920421862255506875471643282507638702405070511342136742637389326338529690900978758812749577121969056984606866920885935074556712168861178840006093347279999960310096399500830261497078422886923304337557728785595328948087348568565527123894399620446566843464498835057976938472349018562035872916545777402413173389310663634719414049083099951207761200165930745646147743243864104557227977125390835868008703849770558364367612863306187284281810448588138936575968040630660008998492074278251825516256598150662059089843043027331564359368301747830902931045097113373910206108515198993768162766011519945109668859728294697611571213603408676547188456591159073974937657945649657177159759406331840412409970570096963714290555171578636990239559842112877474891835122120937982353472054969655650715293210641710554609744138080918989181691405654742733272986083382712079331450436067265883800641116597767464090430268305416906347218319398014743019248008840840150856057172792217229515396164466788379150702428936976460526977606015564360953635119049205160402766336328709091173657307301982832153958771986745367026970086649101450927092760332711122135870534663252190032220003898359031277156514870469854722412361757867517733051566615976999020677354124486928480954030539839427743016771829712369907590628163951343761507179091208288449818232769300388772641066750066845872376760216338432832919644437312042491703555883760809188356361958926079771825285378364576409440894071723047557649494529540809311994489126024087650311679200301933331732226021355161916759245808943146130839179248199058771579541899111034484481458673461970037403954432143403541335626061236343230902635804371662009433619734706789438501938273919811559706880508920109558012154238834012673061307390387785899048389304228315996944977200587362791788133809519030695016744322515379968165676358606344678540868640939633911599854780180339355819495842018943296834846273636998517361787597361944594450942039607218764580510360746543816678962438977135871737495885480764603903116217986105322244753633568762659047221784309323434718766468588768638357972448470823522337532689643828299887402648325074599911798819115570929799352696696032803528171537609135835511075130000488872120732230719037796052701962900141538715621001933504083827669166484492166277640562225005732789735080938433269309103151166250859867137421326722538118420685366538924434514099627030533486950173301153305975117890988175926493138570507407752673228901856101018220726365867341976801496732292554688971170682154872229082535876772650833273752758206368884347319802725641204310909837904445412601544225149872657609863804841015394507115018074365185938272804337572043296523580275821730737552612028416557159265690894306168411430670303839786657151719713523486941845565065912350630347498550156980793891187314210760891321224940909993107318295388210824017733232560642547823775695540311388440145793158226083523095829307482002977516392641779658276244715968823219418283018159601572186684069936780167147073995989999220571958181828215090315124881512684533029430805629547228379156013291726078757039292261384386435858280318735566841031059379674656600425014796719335950959999708449311528503483893150737468358733454445335262502473771890748806755749945298869045133281509602350447593549941048756636927320199745721762006709985318480109220818174467220471417745696674605672753608064501577826058801888715189176514600037617012608542520172659283513110653868007980975477403801357288359355512825701649999481537592020245306039432944791527056365653825731649015566363430959168136490248389362415096068490384412054155348559555053245244970542320623194052999088151514600894610441464913462579606552775612260294549369891412518982532130885528434338187118328173695534408582540040641623591463791246452668672112442105794386421879983532716239825929879034134596826695653427671875071151682160557380082356578965252386477603330097992110323180187957477241586059273572228999609172708359475127382248958941301531361014616400033657675423428862457290795269441355462320290010470719589891941798310670738627490767504730410201282209420256219462175902819267442057340751135690960776763216003635230345874567115504958050766190454672591363942118923127007730837860439954558520761132492144178658098753350044821804364681008331280528985484315856574438007156318008381235412017586601010726586680010431944122926112297779039516448419131311011833931110740571215323638619150211732766518479213731066592151573735305632241904110827746406034360360246571903851385493530129483126614119822753959392981828423140367849633229745929814079239167145055147368143536604421894294084026816282716333431024681183113631559281259912104791063750801057685151796055866278167143892785171409036994876414686558396206189669438656878485596707093227281343822870502448283306989376488584150491609841361969945198277459882375377683931632170378339679982171345333915716447547749088084438671598446281136511206201980877333659766075080078612329115049057773933850859395966285166535666139634990921593695074548074428563516727153309190673561006378634362000880007978477446651468628837573752284297093189052056279073402268709234840014068090149978976370591297558579448675916915094609322607018770879153472420570673669217429503183115867591357023666443489504302231326132373084611830356990613644494102134779784710926619477054181533612230992043935475518894576613425322362220862037973827288553067416693560372044213940546385223913733858725657800008478746936867508272136723995649581100975965395535005882386581729763024109882845621471367677406016716443739755674171233715980991436325307174997244845104386432032659122822629918627409588939903935524460749861895786885408031091867900728459480006618756570996253485395255063335872177307740253464592038229330256880250159043929382176175794468899229098567657383743238401434644422169914045721451360476276797651699880013647974173722738530008719742155650082366055144183316138800496379425783136558513635613769024641697868755983233409805704556932805628642961847072669198020205995920106207938061763980898227399366061252806512422199805416858860449751910377837642989884160638773788296527056664375086971164235178404452411715196353904219179207649215088086591066317379842099559478178831360376780832504225500578657776629415385521766520855115789274556814896029046468839344182587837053553015163201585734372408416529854186654824139446561747198897424283868581187544222655200869075426958767455639940882471252662062371101268432954838670766639156855704137654524988945923201544891404946586453622712150544942682097847128171588758342672493864315440070054872328940421342402766548858468864475735275507166218991071526599296049098448366379336883014178159112979219452302385637974165898228514225807781719328609043427612036924347823626143255515793406526945165587324024842933811628889607293973072972164312277864738248341128461193686110516438082724776311346934099374478825583119056646120317565344939943576528377503472286304781555296808808716147976870394254995284282069551962389787932477103404588130454573566604691751734644088508883891216814231857532520892515118905545814279927972841889351677800172291150942279656112483205883905032546623625044773860194159094171143974053727064710844672976565095147335991518322645401282657560323589716554896593486697071797690786177838709195299293995013439110811984039650578269264995093647902425639272390371610844925588430484465428316130846812613085418883551816440036855265790094588764443486265649191608773536202194768781414015944484279768855823798928030248349996652604206610466980536551170803527909630451300681044973500742269173589166794295211065422945558039222572723166479037745189759705763552259909252346675435043229517159221876030563009194463299876275145379815258133497326451611275023645279942811799933733006199096637888006769562383433105843912581999206955319717425900631512474581667792469128198409970876452946516411006849558121258092851842618901148342825971304969765938433807408396629025852079797519090974701444517361957576018989567204094657459643252238150918118757083622114578495296751785323835657694157722652744450341587194904286159292319130652108626382834453178767438045277128362476596200593059307887692726252695746915054808688839423643989969909117546994211352550447947375677381185341968648451676241201196447310016217880091250740165665235112118716042894904537655233779603470118290532282892055389889938229365503502709816477621563165338276776636844586127793842186067358866114194197676398475264714134702064525039820254879980701865579180917493916854708584913988362175814803977210354353028033284148164229008052294629526357075602339745167570452333317305157394754900345283131193088632329211748918335878117800153900863136814957755475308899958516020105180699906408833490764567929329896607459060229859316989801835567243776306266270310995677198825598518864724143930236046518160895058765811629374915540564982776311914835031637939149283577711216503460250287952761036339156840974449742998720058370325735335311992210949215287086256246121137882474812258471313600270858744823586879029323987287769774982659266937629852997710146562010237827200173941328502505987044541298925142085470806026794276729619343483702869178478826726459919674002326203602569785841984541880333308503951346931038597909099175411299697196232847923336193400930671205365494321853017791447294450353528828934032841315784451836367545198115247069301601725639924743302878637684034438993975862208882387079733402990455501793703580899039913506067116318306508919486078680906437166959283779316084641262971862843747701935748441149434274191370401281002881347481465282738908340551622573862309547938692322844889778930805121395740757770703939968327697983616284123869819626792633905268589403522856096354173708119455351047572970099479614396132582950997328338784428078223253502248691925940968287055004058138573149373388036352717877344325687546039292722145500809015541268351990908038558215710943017541701408667798447568664846764462360410791982815098361600108542621226361807810511041035114361550494466929674548295175263045436182799737945038950979314478097565335141531015329049465791639463992065467686632192185477782447319616110152385013818258707145725030319015519121906629882722698633596744413076748642557476869094255607597415937008215690553201464037056125051926118752244331454774399207131213973250306902097348282461853865167384281522470580955350690206133700309176479769891147287838210393038948379404907078858141302219836236094966364270132369246345927807355793926015524844746674267079178254253002091844619781525298026240564170704257550753809062128551428908060573900378474105898798894730163084865445247791189843626075108247904556304044662504732250923752828035578212149384826975783403223520401598546885430373403984109792259642778901958688083193321860549318114007462698452374938760948779306363713037966442274080965330966300489793013899329754520894292572522936487127928535701472781172525155082146728341074699527061882732862833796102115025417551586655611680996298481454509989404388120428273549379546113009323877388944697905677376269375647629497657451725839788530083848236018752188495980024942804258005765813087601784678739520598289681275566238208839533204574066160619472484608645255967263398013557295837627405264990094407771417603991449583309236860941190285809766652203617489179113235646555197303831334684368034840972235700201941090165371758169614506705517553811863771110188360159684829611639374291279492816410385175077898904087583558695840755372120858196494557946931864676957287983295670566668924377741393260214573475533037305145792252208151426112058457577831573447031473044774067993496188245315715873631136097916814771811805108902181338282503676716364423804454696658022029321130886084793819074360333179118938862234198749505610376509664062081812944597486548180799270786429498653049223314746907655019407395185353605802183711685302180288972660668673725901584926994468288246232214035863357631472154963416844213623902928761522044571077585907759729057324999568013353482656896739447419417448379060323939277851650216897279862113988539906312147133218824723396948803845337582917813147286890023139706451692787489614649255500922768381740018111487805214195804624510998005419106529322178534913163660139252332981164352183762874696432566486220478032468906085085885385617517461016581783371614722457080172408238902104880205235856606896864801790449194058371359579210026215118577314923996525160304666267304370252916978530479610884317608285152940311422971406197606196082981165517347644880897173924378800906660802112053206279843110397144174139339445043422562266609847823030235236137263845200581538643730885293591341000707050438927961544163992728280505330592108778135752932825739618892952035392113097019615729644619931885894689639868040763363587406324578609527912299048573009045408692813405225918415157857503823167804441321911600547995694607503517989380928613287860290706452010042645837638045992266169576219068030628141971511747803610679044197686820898158439046523706699279616325986621744274518803302809994308014083179713111284957540005060808740798416129308046549524889574105760507459026006839223154020892064303737906486239592648698148730368519142680155305569644873663117172821200860984471514363169989852252952594502309185298752116061076821973121503009954310333435791172973901125770367175558210025022618745942321464887984470203475972650000044098013838247240424277114184566744915754934473428633342328101225702068041901141835081135274063776520289998948692935649662700168598253514586566286658714178696232124907332494469921062820032863788941788345024288921409029450142270264447606354747572862553684416384983731067430319387062744770518699626996717768473541480111849332220180470997822954121325672738121786499524979131222638900251198308599865068584835003774608764625774145694411322849516546013541043776432798967396675068246840382966004502387594882142680475139618720025218962455345477315431395656852596151430427607254199816587821780426157319316157661168631758848800530641128527447046934837342841573952491914228872865407931629273667139677116545597221329047664069956263870728864376619498427252191666751998148892144979524137442422090470560928937855607989119434488606054207190042486689765396263456373078736936857373261753681351847872183707655335344788035043881300338818863818689686209337904512282337823129212300035597446732251424476101658708636179105732006770265425429824986169474570714846580250592650735213655949417911823627572641011110233888930863862444610364684351911129037771338469467686245156188741867253835400504671828259376569742623882589882270314110415948488882941307047326814012482817480746577277353552651536469610159181658414671471822999803982469805967001523771631886915838461056547028224527059538152868835289931100487025897029412059237882340070048834962401994134024364925769321643265652558607153171029004178688275610328234904010372802329734064966202849618233400258951523266374031552030849516171584218310442563374943054402570978790484508259576105777278511108660890843924259375983496047330605841103740004339799929504321017447460855500710073755789115666241064075062191961287060333296285465922215746775654417553705661623985662231122472975481490207256842307080450452932359565518744114554990784916970305597956521133862277768460250888256857792845848747565889880437839289278587541179380744814789607839600386186230878589114686387176473897556495729035911499418628537107401762119069281400095212055231817913266356209792947027038531081563394154555227621576704059625774390647603130085477478201954443967547119410853190391690755874794060381898731008403511984589060139965584500813198548672946922823429421919509226747314846144053707667691023939559022847024558950339213785261286305460947714905552778670875248551066992119333126961071278232828867742346576992585843134076376228316756254179484294004881191190591381009876324942790934547863809550027295332376969348259870175129476620031263514363966733816124825650562078045481488758465663662840066251778945693497483107680915283169156211705892851798629729857079830768396528603823017892472887340294850534403793271025518457396096252478856057717537476453062810261810964607742820473012131661247514113342058489196186469089932127239670747132747361526603599921622138886397155733339042889092718902835580765170669642621208848368452517824246086727084610987212466151337147215767140717975213594383890660074676861940684019911299680713566819520129393984789724017257055217969090721514141431905357970828907055124656518410901569283510269010071536090529127328940917332256160865728199540548666982677430529646682287326069243326998689139081358535291295264663671155414974523461042917186807012134321464182066964830247354684185438344426031188904903677967693435758837837864435524083054363526938461283780472159849796675699283304422312734763049363828364082053400904490046012077646638672151651707307697634634347670757009631782471193694352466302740016899590440737220552559873379348320411786584356103149316769290183217513930525181239928175477189220756879400504840178196347453579787498796677766780968507358404773497542217903052164074941711906515765720230015778518421868633923913890391413721576052482352070653354241443738416166381141839563475639170763839586744987755093880279609780080853224136045838146178602463787320540800243924168225953758590544343926658910551764426776298325862988714093088466485363310696389555082375236831647767585117929074741283327408115160266434192379918486158580139748806834228298927815685657821281273304933391767985012566383793596518143287267255277316331669821798284345315886030903418160398329636328334193001355171401317299535254923845467337186845835760249894607506844551684607244653193610183386038164522094342259867727085541551423081685181139286104964769840497793530794259616642808266950882391737839411443600943471524686636472294173526812562460005823351708189527186470271561809277233432367885412290514175932695866385931368657592706900204846031487485816356364542929776515391532539882295775170092815288863306673642743642176344523399547413010058290949805441314115424290543557167108995416053442279205403769421645727437617753367768031643972458458359586021102994645754442433280331382076662290255569767809882477856021968158011206408270310733715545518897541409748467169366813469134376235601324841956179347771466375017165145459609146300812399440368707688958409359587559312113968609990957652764477381374854671553781038647556350291708564359042420640225877480386368707060086539408717076398440769794236312103620544513230715522275542685725644898080424865396294709880207909849726558481446793488581132367376809153257473860125076983469124988208613646058867448044135550758961442464686306241034131626197974664086833299702044671407742551915283563943351251020283603042399273569262182148362544360057131781281059879543037137535410056972356424616797694059195090727665926675503471687449898242802254974523462079417612757364557006553302989248707715625044792149825680409649708491997824007497669997714549952072532325974656123219169581559520736374980908692101251259764690895978486832936098531270065393395760977026209415302399292668947256243976767069284726756163337469914445924475735289059840216957571388133790934944780635234606225822432560848294477622471165688437668142116630242089897797237794261008407610662115710677692448751484574668060376768356965522923133037556484459931477693012588036870757151735546718175839357110480248986138625444153222470432879472892983528009771970250815978901813965574011668529184007921784364230922273355686138527296499313114983871944785310612460922072737712059281242085374816854828953825871837142406398822140311631528759582651747754382412742751645226751330853844580269043539551060998189874905045293336158056861544196243563562842922463661359253884131221786480743182561694407146804094963224672884855738321401626303410282992490347843668110223140173116837655911548613835325052386305243431999040547475488948557612588874728993433010194884764439695418065810916618352520852524381960469659819950599013860112698469466514344368463997739604392237161676685934504795387353894585130414743782121019597603956721050273192939207149247166502204340604503537527847782856208392811216314682892552368807176170880176342749935382214177027045433896857694565518438425045354896902659124865307994694513656396234736425009925616578311264275279110534452674513662950809767340672835962853601515149595455771485935541563908802958951282904027002488333063578173282898934042869480167685681259268518631676905441137997183028758685279699341627505437669322432115516113174281186282825512300978673033292530292454790153681824754805105056644169782289536586138693858553278043489294704130947524494174910527605697873693060717016476879196028980900682118058247633780940977983305033374235037448754489178970984474915643135997781301127464238805708873354909087829131276599588106919088226490625957064516629023323620769470969545871531001509111751965102472292309695929426439592533645927459592515740162392797041660066970865150130266095221578655736182277444182813020730515609427644363127893206566380607532621027171683893593167199342349202472239329842160437668305889231723238274802091409269593075053619152473945179673351388150711299973860162809216916061641164487498680136566355894832736716165139080023981550857772909718768990213053776312809648235271406976585715319392182218649542028648080399565778264333436239794217491006785426241653332366144892757557411582729185528739742002824493503364170576919098508383416767243393052661666707999161138829045931258995756860858027210239111669208621653952427232755939523736565525720112814229672707706944440515413754609097680181820035052644940467959554020701928756557657041512114424424038945779814922549580215509738877807311907603147098426679077677476676786721551705868964593480408298723449108034568412988578034858192740584422983909511099664077947553217230386194910705282782849618915460508627027143260482780222577871324850758394108666420026369771321423359037598309115390764076634509051380740421793509357439050101187324363538499819379870547196938345906662261999716115221352440132583539815915604840558058467291245643791212844947270458346392198033912354342172781546440256825057725626583862511232935614660147062213871808845030420248862676589563505565743801077436730659167192368623209719692607168407595515189225315091941703577804277500309719365907753932068260757256956983518158423695505511511596756024260655998205085262457400105166807640267563267185419881232451009398524870621449479885736702984814144664222600120989891773583567906499336446491862081726303226512159071399540075825082981068677878612380215434714008285558042441457984998126244587212304453611050299850706511116065346686307446212589592679573406040593641585470090495729453766876464384094009883469787025225139342846291725401062292606671336903275801468240715442361287921599582655249551809780881894432659631924817525551407472053426163298346401853936344992263266029107365176591116082282856085922249136393022729979110894500505073620186248347496908313191435786058062132054146929584622359064869745230490268523022034746363915219716992421087567600705306703279305605527964865486737573955566706386623049341447863659856108135581240608251518671398348796094643004375324879124001121930608577646086207031741817693077608041189540721267038345010065476371527626606125547712613782127754906930530005407256552637991011254940871528948905303451594152243845972821636400978875874513338259009587254418646172717018892179424721473783192127926510620592176006491806284306648810136643285923767432975694258106093336244411546924400167377002739466462171012916824926861532560558559200796616256681369364013570487394235605329898511984512135924827621936665766956443764747426101845044717374402422162463424105830837257968043057757872025968780057452989513321084381572442287773713281843943587619613762986686643362222435518930570304549071353699133525426034881863619065556557415249593406513674789396434169855967711634043700221228747525370767966555809119600911769735576287811014812744079300408276702569246698147358292869939385367952556276775220500159318072343672387261406861389057428166028861977074736377006132562273443064171342384772295630417414700654421501827333660236705382638598860935845217716033630881582140490883944216610923521677025173112204480267857361353245969580631346967090170318717049728928749845166818206155432827087016492862558341997502098441153885474880063304530914537402526882918052365440970222260260442641020924096302844477370320106962750881316274521890497994328447145703450072067318014963186166659153003730051064379590573856607990218392844149866104267295832032217514683791292328470868607716667766097343464454183230272879158806822503896379352100016042747645787985942112598236308108208866799336306042289003532691505042879362779577162554147248537582822642648108836895095968750569122287925633846907752311264715632602171681202456672648483484913545073627236811841934964178613485836029731609551604665988987411982098289389882836857967043479423102835932162528691841709223144216506291706108635789707909051620122550090475850439615705329266380241337308455678310149337208336858477512680408187469902061665440158090182218512471459587660411030513733829783579157310591694861679513777466792239927415164698048726562917385747992198053603385694505797786884151933839779410365175509707724998781430343021089248058088371666359806229337975885773949004484364711067475886627755192757667929595137625420141069066995075048969057184604476653809114270408111588042565031868628680963114647572372996271034782076973324317800417381664179678262863701165756275547481919231849268205225367252810300258426315364672270329686808560053085871961662633023076543577491416525911590137511027285875081688084592807846385872148932899119975073713679317321228036594839040710373540250484096403783532671608351089841751585556115833582915943509886307672550094200674488363984177926948861198656465200138204348624729004458426920413009890150280384418795439331511415923995834299169947279804586661910397223081914445012710757804126874446050562048581341026519931568666647211106902989435727905864294265516995014060307777764582298583953361926379333677691493114390922147468505361043337878647866273027915252775245676552744243022170381989855366523132763819954985845054491010479486496494148366401163203596678419319489239668988734342055006455934847169137980725740672028855666697627190549418712464826709118316156816046592508620937064894435132806748760870807929825388920964028817713831030846203012709328039362082998750669590590931760299325680339713275667093091814675197417974563661251411284596055382709460346250882994951774143974520933944937049850834912537519152940349977320827669842562053017402831593764681856301008350266677163103165226517779785792794617738987519760581893107804422238484767025055399313218779396836290597373453565015447030226859099533763316853839600813553074057832358715028449199162965383162987665238732385638915736569008590222754609845184880887079784699914831186926864936832429152861179536674333386272458737131230546736424259126500633097331760402530851325617166814823196644135820417367299237986404705707805493440286662415145315114132296411219051896187270322684369189280882284777741586078083307739311305392583611053149811544932158343530978080404759097179213735793393919872146849929681018356194692433637836539310126882665151787190857351191934909570081663788778336516700192259946795343075070725731412520959965785720673812218913146689793197298477844574831796921191362697272677699747344324903297474958337798607071904598098329074415696489997764477558008921467510443768492534775521370076258549952602027715307695161461235384212156141509470900732691276462958886457372781125291816774339843132157290507822550557272989677981196265629693927327952865003197037354857642335531389378978090992853004232887855786340918754970195616284893367709625959624242964166217184323017194732529364202208339705143997952607740061566072464171946714579344825496226109645144533641909516029870717668288528078959467730896503744283900435393514750258672964100787789075346126940187063396521766099961285835421631423595821788133538710837065359467362988889514092264406191783528871684040864078331826132720860744671936667668102623183649814151517447380934198329053508485119251973986346436496880191455580308265810759639427751340463816722432448126632298892038097587849614077843680395337672352044438799160516290110249205761330612231980145434937545314635024661377131442693276082606742817170962259334553164924720069356799156220810654571478525880081931713120915157267909289645458802923982442823785667351559868551510848128878634253242255328916394074952163004515162159558150895140677177533833478838586175254570050150151495271386322002140480193152827067395641991027384734741929617777767249535485811710152411818747181632248749826061632444364725242271221230893129720326070991188458458030361493162460600365044099807076628155494401987318324388949839194631256529221721869532433658719172685837573721714611654962343550179820051554977509914021015255926796980899682972115460107511824749872671236648028275746745398234608500884760694417974151474819628248358612171280095108309830570791082983764424477437500313135430546468374080386212164127175253513906724213876840101339274808955519596288707043461646210813464618143958922713355915541580489480129944604201003896141356303135501218461479059429417759444636821572526600935474923100423652471279095203857796869296132683964181516242159338044988059079998801090177330407132413199861211413945982956108547545665982877970268374750259198041749130193973707915168489856430908233411965943319238099065563975794955290090857344973471362037596453983212721488859426172207770426000571011423100831923614792560307011935349694051966303765928983204116483693552921649696634749001712693079705824590258053736417862687998447720621803844453647151525968764976245385866799838663374050747735897516987164034744798941915106035073352471108776820265259880082370435050867518392637876464636110637478254431668978842397130548384332215589169131915255760564116143708597853738765464469552699117046353989246666604614156912495765368401314272659681452110817575443902492750246148248345421085664545257682194882603557259155679827877310128888728190211669632817541249578975253624666485760679525443071213719682052138932954817821063876221234230415401624554785387713542073047099754028818908895805838185204279244157979230014371990909681543097491164153525368746583166659588776667112950087840804615874044813194241660821316057338485301673906896160432413205171009507888404567981371872895190565081693431499495890177872477961805565318403570952775118493282809092500537972545849815253029483502999649832908442714675465478933700006681656659617449249092855046802123343736400131023566419244175675501632185700941433520671341488427041332247219921881293577251846296016232666254965597244256609830222144768090773753379709003937111342012214807706846070218259664082786647885155059819350800204581421763954334820945839832278009763362014541694699495253896844625039642950993766594943690338675541448707786350567697637198620712559090759100520114707046334999134455467575486122360608334856321904974053883635955457121004749713067973946116721631791818106305709570666355311765447425730860419642193977321980752861612513064039727556394741514374430483707994937326948222424891331201651894504877458142106334248420313491930861452433346311947002835680657157166649285880372978532825207329046039451353729908682746661827016170768883499789401242440008661967724471935435171735671373881732766650234711589177845221893974484111613923841184199036241679919389680290878431655705680197340185366777681754165217499736021967185409665478262592288566987523479037655947925570886132669065438537424707108652982240758342779458347865103079156830954026223394184854209400524049156450743331744107381188858942586065247233358665613282905750975571973173259986609963114532850222256044076751938855819010282351985063591815649757820075112804565109599846324877686423939866358874709483111781172230463803522725964714267453194504283352744403700286919947954916732479188727730625066441689483402874149732577974259749062940795575187635802444876144594016307911776040298829628714120912720506521761919709907269307563418795723627207038277005879589553491384866015564743467347070653624218712869473171837942756486980579140391840615794933014075040521311404477448868828905316750209322520009072343323933211209732516847270689972774061435986185137185327932256705905344274727923866584766589142978997562272117300320419533015932235777713699258663981900868759356767969563888004568306180174354656463574946217364935138958765303839145509352261075128773169798592732735093237986407528700585287076349410422520849829396783130553030660632897611907448300838611280457097827607424575826588004883935124501020270134310028489196486851250860524178070937705749136679590940696714781810438852827384705522808328517706678130708008978583752509984892619929433161970820187611048898617755182453001059415227590664133222597768377634203699760178840109393293613216607957320252361194128594994056593135963601935223395694887732208278200263475306936228469506684147573140399027050406925241341403575680999728191064899357423429680545327294001369835131593676738105615285199337957772278279778872881572760941223958294827660436263185676310167023596415169659622629237345397516316560429695427771434160314675227265492779685225471672811245795183638048933123551112333755811256909098920417102680520841760966199584749421617877301432783736147635830200552305976780930322991562665434212758269525074048314791965350666815981550013853216302431788980074164391640904420993137940891039765711768078145899973951548629123915978984755475921973599186273545133228336966519584421480034327558727205627200982418908596510301367652562836593334849675301235306512478694103297835883961796898179427922286795487022801761458055892588367952798492769595655538656948741813644339936139566840334436715541556742171459797018768408538340692805031001414303331801843148623421702499775044944535899070814598702286230607417971154831196095175908843964109519755093639523293305210048284185132720105358452147516232071368226942600783193257204243867796717864992904783080129430044724583675740695547393684061414929429591712148156067312854612010499820223328650036015166959335270550464691869435420981722901060851193589461808316323829860700536018611648405552398393256879223414926177919177532890904371573536727570953460295644996003479625247139048701555519037940314631508820682177098481086438818577014094713425466813413271847419441425057683431327280124919314848584780892504671842098865984609053155059043612157038875296720068817464163717365213088421183105759785125450373644335333466980234809075284572801720427502151091617463787002641760119357091069201603181758860506513643739099784817574028450705989920011696770609088206900528649540430889478793524875546926735207397301980297240688545826606544497390747522363253250861432513550566824961014017664530155931259736187423277728141472038749547539952262799416631811877113080335946622972526104889275386467971536299285130728067823755915330573821396840207564845362303122425119669767302067495494758117942338063111903657948983624411616579645757193424011714336814985433630914488481663756389937229742560363508193552008623787246260022367845662952967927798190494417734921718570113504176857972446920551976527850455311232329035889446977252143003752730365876684409462735234687562027332855132218888132276406650823043702205814220018923817640576812548074779978795423892833396847146959658385989156223585816204481401564059379877422851805658413648193256720593238548711009963635110451117266052230421967104280108394790347131144197754513097474039295509054697438043049293107047643199420265573568148780528836260788348038176358027952441523493742945494760923215520903528608088357452753771517623361246566839484595771618557543737997206176503383652341989848743635842580873324355378690278707049618319926390942000121423991170860321264692030995733180071236598352806980820854641739098484144907678485240190953878740818242718314013545861265459479132158097616969081765467121198539595993234162662531257243487681483428888221206863425647822528491089476736989922755017227771075348992563922209009556198126624253444619006330472536457171325584909024211343874228996021327850085916866747941202436810213194098235916270724511850975553915639724278870779489192411858108033954415757671013673146927586723935198942501161794920311250377854762023635596992301583020940075826313736389439750905570226041432983946620577946268145541486912451943021491800014592780841532114092450341782266485445928732867993018117008454299977362073000151549800358489646537197354221668792639879122824339273635992666632011120594651283919388986713511758503439050981201388224111340421436019943055259635195506678562224481450943898006255227317995687113519054253222705565175192431115353476481749901914507871458418042616366146563842432514319003693386594533794852372962484832045711233248677541127944503241611641508801828738571609750702406610307990647417725365233315578513831442047499020836857946217327253035958085849047569165261395231601712271989162402389217242155441524302062809512849030890377168420178152487238390750360854975468697163867496633822414580410377730315059899450026726684375827659053013964868705385083291033179226614623787735672689841546657187911520395111640910684473502027311524569138947209758158396756084461286602517595784101902817080751586681940327154099876638582779504434923074903977556769003379077883088357748703049294512605541584590866301667197754584232614496370779394211414973032342945171419111515157970811313950760732908194504848615708065774996706981387752599730646740311397728279026692697569814526232166827237441989738023735709553279139348566680626057564851663578485882283033666711922197393244214875611613518582727628025014304347202386145941527281415828128777128426693560846373685625880010959395177584039430281015991949677593043001761086940842183572723934390363157509367966582147047261871510347341716403710346895620936359464849169637239769570911288520617488142159934270517642393841811271594650674322744061677154518441272911647276095439145752429370372482458584818558183353365467561925121217267033175576036492021036023761113221644177063812577646470758694066281344425063810484800828002577045675311904506708591015967503690778425043906731043908800482083196050347427274337438539166101465652971353300209804200773977889283187964098692684942129184066748892938275380809125619414540198527132027473583724669701597298308744645163635017824646690714322722524790353290144547537687859526654811766430017642392769358441914181171044169908654513931052014681448941476667789796960203635883278998189430063097451587123157314954414258483591776703440149637701422276886624788834726483669502974704666976489694690287499458472401562936987902640431845306938380058216808135130444585052882153886963082304756878543771095857963681563475822228669246267713412960833901696344442953141814507078991624011171763296120488641148259361949229423857667964861219070721030465656674189286780777020602091996439553766546041239567007743285285968057480575633286134921217578625728895180771675351778305291098911008424139877206323742478712367565243403992136775896642478704788976136924879520229677338973082424947137685256617921638537958053438309834320951062494121637641627939800722862919463784662304911801094744711742755070768511312621922767182167845794824332915817356977347484759168008046838497702139299838818107095119525605739150232953772810391173964196676210014517343753058334374073855980779061530816511769934466863685923100361652756256029076024980249766735527089393680034839392320172323810069758928522059456805579331658790801128985377442806858507815875140370325870765890521523919915618433488417562776056946000868234774219194600763117229296823822015856847676365698612577039915459269521357125287709396024248963123261324104153033429127767304171730513485039825215055706224304814457385144098739288150488356787260742193921764016888514270216516016137406998929680067960639258759374076623466085539184891705969341317502021571247053427582059826841928334776780075599278869796952005271322360893199706741103796208759928170569518602996306935199223120885074465979118455121147557380822953976377814127704423339811414343666845957541145695270344820428172237207448175901111541283824878820436412246392817635152498755414441231834769268201345350345001881201861354927971025218705727547824390229312608478931927138870108183065585406891034422744418229944570696777079312289564207970978297784264289423370028836844819310107057695185755417097807504566640009155548574351070469777060525726839914207472739077050738445591554936563873381833498213676371584383752238023473040503330442765298893371007052348084383655882427475584854484850989273207365548884595056384380606519915661908489922824195637421794994338846396957867144359145847129063238877958980858297595471835155944033233800042750758057722329965487358942633678029208925611154280535078196804385302415939912617540904342449456764669035618073325067608410475480986737659362188917926406904068998385008495825610630492509340641153956133211348890775036442758419919959682672555530442786732104847323682031849566852111415518585358727442174526491029599315070133154460870687271439232356352013671928473038251151909198790878046471490632651706495135894521614310451584716249626356170849480876503270477000354316896043078076371622005692537649119714039313662358719828801829923492015476765899275665713101457612295226477863181031385001080775671855890048591022081164546627110114684320156752074455376505663984422362000047801411123345394772473485165309169268267787183158712282030382506779299629726753555107337634367994244843988911344925281848282539398588391248179673119431015093179193601354819397146505943922350302981739128673285311863190502897681329381007118217599035186741683103378943040114298210300147339335377599343590663402364463870055143961851473954304033982099848070855166666804797217855754347039081561508941706778699959167895289731440310758352041587459749999391801778680411475753888211377818738729696618787021356593461718364349558708074632048151290067261202160708154975365334363543260329185701632427208204352420693589175197746378470814903903867035231645662116681570719103024393505508989562819464241252998829584054315940286842396600623499850690059841819457304420001384239205103774645580152197752186738754564321871271304579561823147654274976114384546170627206033997390123177538762002958486805615554464093327141838425135297379909143133112086857034889514971863644243068858686392678694648479882687671495084977844366401029280045793079120300052964534481719842149533600952978522746771068698127562263372480163016486685454225697250651907555264841402178914447942153874327090078633572965716377364080263314891271829712601580271070317130107499407490000609199036400201703133148525546406920260222426712409581066134183052170349085496307238066437704973338716714162659074683430597575702599955635015553711015762224313253185978565717496418516537470437222162774619208607528148780314475814700593588487651535988436580238325735556787787891646324446760986996716064829881257396753374776404190182635375616255025696028229705110680879033827286830412388655020937341157476783053680656293246755871672778478232972222622541869486503242402284911092766289677768357086004142101542378170234134000095042034285276589666757901709192058085109451959471453531475610016463249973179223771711504729189966048697022847187592059665907078517893547501692478346455494908794533164562591512816818610559052110507077891052690072319158021635605708762498061360506037205740448535304288199301271064118373103241080003229744312494719554416929992129302658829982979507973213226975185360486100637078645180131901360084306461933497378751242590925286809768590454208812000307495122961558247413557825889140746122496404950647038330640258904064202649189624733031236823327715145067425189539459308310088997329546888631848612993596988260908184417118552124331007524089573632986893551056103092431616675774725193194215610125821766504564335783194133121739907475448122263605860964767572412011733918379414028913768591731229161316291291688922756332328139122221537990777704453768825519612169601310475417214668814077513312656098036562150735320920864381542963965982130496479148286128459322487252060284807189201930799434765295879609491717544470416637086601898075222397769633605271558072270370239417505245725061672027217257146935751640703091037237222025679752193234171822240815038774319842288215774743335566520075706838059121427731589060497836138249188187600860000440729139001156771010702906469274161432738051961641808657652248601767714844116736808518980894073792235359110739922841856802264509753182639825652722473933639559330674256041456441945362264272696001575051779805917406306561323803368657330839419002314894894258328937631251225993299144342321652957201403704518097018808884542820523580292161850569426791551125389213848715304323765628708163660758243531213762043906293960825490439091521744986376878594174999700755995193996549952019960929067309759950225459302091591782332893242881100486768621045609070689058952931877570755682106809500098049748092407305310668950048027128098734907939772018699455916563172848648835152320112691421646405462607095239128961964977973599955415052500548290677611545566042311107076471053271525029195497165145272223374682921645878620365346038374088253319211355491339065864649635998248551729200477525447538261578229720783322024186483026585104264100511166008858160339346858735394457310598778714007556334765768787293114742444028865312496728966024826892844520854991969261670274125606131814748867391097953230195206571675121272513790204435000308217881076568071388000657602459835134821502246742375701312577241229190779878308916733586044425237915268497880253937854495346962479454844668417130171079596920635714070128193293079286471510055738283936519004512384240983205272984787033115976172981163628840431933716942114498095755178381196825338536554277795549519757266257738442123613092871426797400980142107196939322456392966588086003636607756017992753102954981456938365056599722587999392610417044968813749908572023403724047351259662551239151109110984105357727404797775763755195874466211682711716040780417672866439661344050005115192302450977833274308583635660876818765739097362465512204563220506397522249089044782871119945248827696134158446817464630222302952549738654045545311640570142358535399446775313537762256254105630231669568260243465260504658793859755477648937029044996907896560650255024594933713258046516050650876732390443556635444272062578263091690472451569333415532256252438313366056800606279149228097040087646848777014923220365994932800050093116125516427988646227144553500045397599926270313137142561167341777514598584359340763697679935885808107748011088514905622969335250522442103336501883023518226744561948954869106516775449564864083708733218043981812305408537478482492132383706285883828958835173996333380705602976427231490472414927585587749265332188970668532669568076978467773038229994457893255486668584978785891535740991696880300985323182086055563299564308656009322464471800048422113006979504836321868400795804822957482432541159473754806932629038264976465887125045586892361041294199319636929455169730152204119593690386104056262312830740218696706165866418749445933067606123206468493825168940299659703432095826160379224193217621104824329036759509781174655523092244291927407657197673505876626901005841618552887432305515728448594395134442642392828153056410731676549454976737117261250208508271367591487275312301253123707601383701983588278915815821351997642059710712199314391705050913111160570658825904389641133285485865958321057004278973732393420161497217650439144449558456581743377321545122686934394663373447722049976913787245819295833471658505936604471377031137458818137688870599181594563020613153627371726813397993861582157201635766204020073358310710592746975812068235610490686837306221442950999626401038039280800281923189671689040582287909648812016663971573413968958734871920350744069816144641138067876177466928137616127896188905868878428334622623020344230007349444062787712455327202154906442973320947950719766210609070394025326503735380296064637221111190733047059664156141346296215821045071157678425091093428948727754963315407791639728102217229641356351919472013583786732188272058351926742530464117573795446008452238338346419282650914699732048646072579819433167752341203519016351194732200999341592504092590594728850057354796457110352372581561172441467931576577191743143363268475338509271725463657426734257081385633942609655760753622693000513005364540349680352639507907779638945201694417729248296038631456903988042639410754326650004022182415011837921308181077216330591858899507458064033169340803151911890295454800822189754078399639986417794377891233016115427161655346429430634533829143879243114138218545255176303874027883478144015248318664444231315363181043296253587612366221596836214175317443200848343547803919611618569293537964066998350567732081183349487726157828712720700304469561542896393591499843743094293367106466807947579283612410067808239317044915704686529179299183051388542468056365777625110549537726314947546544316934820581537160224246799557088007604454399767219783000173619901005353038983535671495155986872898900353672767273151657044664290070507761799918187767583568225201811928418430736918775456057849373172426557772822905683090522456850254495084448995081044644268152568056449953513179937629681663222712998778081721352470359125427250433106291681116380207230146956405043746047392960811572265688792792258469271098190136484665169662221373973096216798640708283847714126119125326824393261675228346315381082270981673170309890900730474329642402834540444347579979926214887504799287720097689422540328121003076228484171938906720455721637478908121380649125371690684852161313760343999461869282764929050989561219106129529980526668526264298860114929317013572890249952922419177898323321159162630926554726945011902248261005326703466803717180090587431382963548644087346064460760773623118490265329680980320979517895636005764072085017238501086936239774567098790232200911237210418074683361160719401152662266721627796268043662837139711616542602357696288756643386673480931085215346232232770039906125853350880779194398260731622382603576118239497059120220611252371966300086223941577483566221097769153546552981983025950376218435417364850733536376040675219064250913686765988248173364961245627520427494885008342936516921930390057942381250038410693023512758752500221680199279257006831142046379894673212635241595873707625060273348499163520052676666559102404473446998125757115667259486848638553695720948102599634817035827115418694499452626502496419142228163882775964489868615334522829452339643503781150414837656900976244012687613272805161436287229750411809725330164488780204188284359689233699329810985863210704915058273530505209148660973678802559457622676206264646689802331641471878066774722058370197424931562400347748407139219139379714911835581818491828754880770894630904053060530293510815685195172962511255876528455536411156586380206833945382847513172380365580318259263965933147670488579579188603705462837011163494897524067738553721288770201474747177630613059769309305092675175650410605173294308966195811884636174772448579729762316575289484295187757785848126345174120876306389833482525360715745180656461341151766884621976738856173073429256474064521409670432671126596981903702835885019582582274536306927902138462496191561745658668096094093176293137223110854488635515707142417240714923806894028848539821413710416767151354874012250104229073187899412382222470899584479440545152035363221973531222151118828161863660112666472873151334915123466678925216453177405367257537272172804932377826056658393335240771000882116752146977362041915787387793802429311817862022214014501887902661840594999120574343904363754649430104977114014012145598798247795922415778675015302536803299252825728367605989888436131223630343028349236914206780408848508339373074061730690231655900792632293552279453811374312982710670556271679806080634768757683966487255639175078545523265291207865059031244361759877395895165045076771131579231590929917534359185462378642648059765078732936714755121836010465538519769145678160239058648137459037116694795746172695391475354382734144232915005730316031152319186306192131044432898634269836571447861632006226767564998271935444411599337312005208521684782127857300769887311585191287181643096706764183625408514965619440202422549066079301342221343588001142802600691126813762410085092685387558977417272037886965229440881643179524884565535336524397465123958496868778451620990763964718856339776464077486661986166489579259335315325605351187441774211158534837816108458022040511234022094779934259756755404651171164370646026367785551978416939291057756769061913159455185268592423066485401046855273034207660283260226262938656781012462918382871892866502075814748414175986104671089105547112176102139177749058649876952758368509397119418705178687733915765739271513663108848037691752593419893265655798499132093739089385461337278780859527230868963365852533256894857476175991614366182335521962152717645239241459968961215393863995661134888930960994147813735914351104092518786986982090648445115160629943967871760880765312025829100492153651682190089558630010372188535034084619915939866091016831575156326047903895310483706489534481581767312089709310006873309011562870260332054708745986576172586293529587529231369864661684224043194786486413161022763991835514844613076458035509708659464927249365485176769432356985934776055186088849138175493928544644401418568733626368752309567783250541635994564896180431479925150918441246273455036128522434349236071868494264064149169813162239707162813310650644738660234551486691427755270349339761690788881172860410429475072233193708580932494450557537903481259963930383512331758744523871994071003390106044205983117973327128261331951890029322251758008622619902262705685930067124521737564622213248355833533143319459049890405519558758117441128154978406644771650007896096358829426853081268872930603998727583941096283863263126400329304714787336959680316555960989628263738774206581610882634799337986249615103257159351297201971209663168035870097992792917100005872880214188924203332810985639466408674275808500597191642351084540377567375076759546469411728430053681533876491854240725338376226640182392125627319297657401328193128710968445156484629415274157248795117792892002670175682424903564644404289118370753049733165358580853961985656065504929685753921690727891366521649706064240322852473114744092609062157764342076892140095295823760058463161986061634730400636629609056212413970059653240781617299634453382735756737558778536147544417537835281298325050820785655976160834428254309955873336531750585129369256478788957148503178801339005793244925987478523436848043104837399144587708047815095494353843230632555088464010831153531165413571502118326914519134979672073252838129284105549420899586057215275862839262293863664271398376931042372230757900219619520100238999929503723147768138413966447677522599397664334848183349414695116297173815700816883292330116176768537864320187648840475820956227901444658117191855440746866887968301395847230816307046085458225675436061852840348041342005706865022570338165374545069649477956585388228910378676867346403769029327067384288851524979582106191084753695967301484052944568579653323681188240296756094452858272267952174626531319237258098456273140237284447352765296746755749049340851048830693786111333438194652746370219202125013145418958890260820109795526609521508387191948629200645498593203319183497249596521817457152691947408242232470728850197272859265595892878479300180083495553909456099736113323736752766096689157155595183344084501408916473757762230916832848373560037660432714594893657192517996410515062930216673950707539079820073309104388986937999620150628856208236893828798397617816169648444510366274126136838558818505570635642541502078280790047007478958586382653825550752860756653118712582942893857237582021569105480242391513396411877250855768448598215560767377381903491511232778862312651282610420490718931220133611909858403717437430740042512222154044086279543641670152085667149968932951158368175643428237703440525565498081472865945386641584239453016144611814040022719358281256834535041871365884496333822179550257952113388255110113123007797972737864913703324412432204693619153094220784803674469730079771301440657175701636840385441468775351283137425512236006302223266266642285795480920081121900314707454495807903802441126876613930220128352211289073764638992992866153838192108046871104335998582026604378561316594167593669899787272763875891767601820854740799048008743428795049392246143210841427144360157663194308474652778012020117589122081039783556186961334901600177346462999306896670295676387222987400625702322468200853352639999615636910176837570226198272249970087662679839160489420214035461495110266437198301997836783309032007822322210209090720319731536904576193698072268660711802231465233448235963777272409836334081913859128222961203988675158308461227403474126862477145387740142832963461605543019806612326204758214514395920906342054608813592526149504341610556606992775313497696591496686328961920763154131013635982033350889931543713380841130723810677341672825155767821589702597468846707161734980826227679204999353831797400260771432674033688731571301561020262256246429621661280243405522870174147679533868637821370454972183072036597978775705798017259755679118541456493543303563342613419887484772918401105305896123638061959871746550956308431377115376086768242374380757349778458939493712696471916636533804716717354925531657529785146639503234342932344767150025348121372174930996750545624119300629931337814649175472174162296929635509721796024718200461911985782575326206655513800607263947997359919301597647012369418902382648459668185621935102286431038658834113908492629923752333499697061244941739920828750372895994274329483395038568774832474931627666257768387602265078396081000120964860038006737392782978950506684587648794747867424937063008087958765563651060331195929057327736244168978688879483449906369589400537674356764064218152135294057939588809902508244856212025220286647299653281715870109570022024622708840933752491856299860120773903927406584956529215910785193293625452553090427994151063702166976704039187980299294588540389992966472942411643295924165902189683271994763231415234486831058953386684065460578654558969420541507308979851874657707091879704774817303582567578743838820900436069353649177804908812976962546766360224388919524276139602154551560847672529673223590570533418192093640722534334080229407534867072246114484338555357329696110445106460065397273323571643842084813090816740384986023702155843522081163064769116233796920675164191031722613926215128633847251895129260696213165013779334989712019694359342545282353502617688324867743024223605350459017981014869327351823028637129410546779921005037450597960943972474364515416952971436579713425391704131648915880057362431088087293147330987838049358109663678949562055435539666380331737396275425173686942943271390125018038344316672658834235799575881947785873694556343822533152015101160012579377953940381162286458367548695507390206818613458605436472827092063275300528929522650553702936037434222584367084884768048252370449329527330305487036010301782009589469099195447638509528867716322757785831348262323572771147201442958952950399420717627318421511937914205222155599083572947287718924958963120308233266239324612772934336520337953579245542705914116648557230622569792787663052264573568673520449029539796467466323666496952872077116224733585595090300557137539263448497321399020205319189930357271830535284880463864541613226048778587194849734649816913854820122554690353600497551579214642001516058700804017184752666146726080260435280489245178965474317633702130650550508138504444180218461919212861126997792965916972713678673870482861302335094231686711404449755864260345103918581074486367747968733243266578150929770151829125412047063788635289693561162307597777591575743516270780073258843706674739537923036912959267681334312640296904263468815572635956674751146446686581487350742201199709736891080872780685695142350871851933577873074463464346086009516790278600326934795629414681414644018798786162790922139800545874749405981069804618588652815241112192712339880378246006753051207811975378594749933421972426149046918031912546753986337907504171437393939375321315517939137808094089665185752610397996084834226128986160675189371569482599654423163101919364488847269929015367947025172296841638752129706117363004554643740991712828733417421623531238996267181444433716894389007540598505174023904637486065072233605818087693607975201531590220692680188506066171722759526471850531207291844193852528394820310671495094230408708899186075808674859637950691685412016797054945390717116200092067513191351169222777482884076209925058589490647841352858346523094906109836189034231200681865395901610068784065742566535321347832830556424644641755980394344525686651444344191075613259947101492735035800511406839431380168719246390875945654091391002339952572818913495814625225170476889690541455687823270801481825465863193327395196068600859468252897948627857371322881226595042041155383102275018849258880419738622115856675882451941588701842132707064430687865692603266484406766970698461548692451484877608362644934884505935648282092460816492020531468944454805551072878950786249613989659357275903732961068772075077966498328372964198954540918365633597117199094474650568974100093890088984209191286081892536556973723051169694570990850148728711770346939441230931905786426564499663933923084084051835407439029024059421301713422345277344327239917643249080047854298455934601582010649340163390010479376513305202472359344611593143878835272557849557745851392427212821682031973907202572888482980294985846112226284201048389029779749540693723502500114914227609615954200162178359930338373346325244552909025004341565441106172744019291300085900792107126057359641502563856804640714047525164061145401593597722113988495714362528295317445222135252283019928242781735477279209282813069748114845516241610473668613875661088761583750180556127234991991741893627830830602768536574315654033738346245412756251565527063724708808470867294673605542031739891175950748402967816092221665760553230833848861002970047680444724584088689612802380093029090609865507569164032284543833521978156237553181923160640145991877247093519537445134536355190676613136837631611069852092726094903869773205904422194721760787014409664677734762397008439876635707315745947390440587994346018623620293203946655567067294681498147652271392039790485026586184654942792538500497463052943051309411370603086967221880561084425277065573416986347568381118946461091483876543366772490461657468358266862188616885314113753875574375519913681980844254718788599570682684220808346066094852238485584138671122517287863305539144377839813343526307990895048773624932305492931207607124750187946444791179452955537561493119484270819458066983336094213593298527142005089142826710621078040264839896046095829633241907021809665007419947866557946463104910034822361899259557160960477521620082866684758925604920108672317107067633597414151524304015821860870600606357966184105994857030036787968506746810197389622229939051930441841814304242474927455883136224747236402253878117278640252992246221873031139057262690344024114523832103978649397745269805535116611551326090339253656374709273413818389119581526316929533343691177492543899362176046757304118483300261760388698338054993547304193425790223674901177686445407739080034506051306318188639058319951416857771476341935118843011496499118160635691688918841492220480993093843873610455511306584299672768456598825297658969235151866234469379248638480227463518442707886565912225127767017063208742060308736890752230867520087126269778657849062902435317044558965311593773351357181564361411332850012056402878140243328031704497625789433300998256785308726057077425491866108517293508690490063790000604299620626073132983899913921678925198724337788548694563861131662875079856779753289811733072040808452757932609301531685863900817934929402988020376765436108825328871691404294504939569458964965244437808909043405886347507672428389709270966905737525348896036511300637046971406667566454504379708272551771244693985073040613576010566260961520357591991264457995340899952547665080138317889467149862470913935202575145110605762287471399597297699476354765557401751296974252401773180322660644006626042417084266685839260279821189020719960852297901929123884793234319964918068763591206596109055938189254331427647066351096687435866134360053414294967770317865748966775443071574583404629666245797850329558309145617851968287198068857385975701010315091407461279150088371875320355037695841823363591726671629633301934982449134619542724112934648409872796946067727085232677707951463891679744280340183974598471049304590437164075300046331360320029546254348528698449089290341289507455907204463422241927155455921533472820210492892859688453567404262646305664007478165558497775604837252811564087625859408861116947177250269944577825134401835902322641551764322281688709563814361280537553519215958999132730412337821523086814144154401044111282271238222971401437343778418367816923905714854549061252832900630728297956053215048114561335653058876992787602743730328897028226747223933622064627700352503773127271868816002575174587346872024705615479805055997379047393086676808255326407185335999239107703470891853298749718191543794321041224648195369495454475693628841721345977724517768035503693751735122292926989495303521517487779420879717942469078846177059820445095483671040843323285404658630765739188343884052602638662312604230870874680190905385919338088531623107455004328257801905339573564391100853015993929970822206257538807161630517786694109969115454808042555361629344261159052281683639935703181511101828838304674145097889351154577227070834125865875407116552284402460343258101213945098392379982692108081740264468671296886220223678325362134173479648160496896988235338182549009209224418608406436555062492471895716531153540662736221626525767725964783465272734294210010686632243926498727951960382840719314150368961276585178749602983761537740419791326430588024438396763270210304881205798019236170895978699923522030428806641998482877686776779900644913929653972762071057816061129984723831487456212217184116266174948490180748875804608378235627792902013729851721468171421122959145057386220023095913153887683636049586557501913723536187049221028108984693433681703461511889811012088080171129912430756319002794775306685985001430995954981924438512590326279643789170802868995414103801499673582527034391542079981699856180176794083232993859778620385073856101134801289338798886202648647281662988382797094170584761775975028696406897507108580825530540923910988464846924964486420875356993034761032560546461911425717679519874871373744279902857292612502895840376706016283183544877172638791499359710773730931716441797199623170456715257267387446347563334667354670446931160460181650543035528145384892977295701612931580517403345961459715671545405040265774312275963243243992756609035020484636475495379876509506683114448244787972146504352978456329301659083525592227177280372273913594724685897215232922555831091470342645241729217237326227213529517974212798450792886398240340917427926342944821526033001529210323363289285457282171601914897106744427074849742183744941722431798089713074721110136226066240009150675624876307743289909749697402105268523565869830144415316170087197157448992396710318618976040765132099060288113315581744344664238984626015603233858907694547002166370332897335664588970817024491344735291850883399033846494852791464508236445544202811358022905820547498488256932496237274159078613624012147913792665452195860397878598863525990049154886121957854035121383533447531495105964252101140128999213822534096383519138875407268557274018423651649130304940765108996223040097391284324817865635596414232194850452830126707396063361382052324333290227438369912713972328722388599072906498392613814370674936942711512561865940639928215515691915344453998759196783916121902932562732053394571005749258117446184127689597340194340151508301630333840537425601193933626144980306649793760486906397129589970657540384370246227989757340624616346470000184263612166356114133073827662003376943049472842158230708269523390488085708234846298319294501906241688406360443653457601878405060952279303480810272436263678058871522060687454489330769683611542355575296622510204232483084633075766760388625275935018725706941250437597657772812079674160918485912425750405100367415600168176017794462314351165557809172598852333809926800917137251333330491688383075154627747925037055107372934886577000039593334685183943382430224958020621479158557570792984123999295838893646098649722986895715090261813079543033835011950983590295967284152071790541519583255928875005937326360342827430629992774796654319301576135109853529282553856991042346722295995829910401198556789342704982898722142174369212231794889085908697254293189376447562466330030612130681741677901675874426644906186529696056593795177913178938631776924324609454024231302731406775615179220727214800232114613753743009935044602065962951783970030222587394812942042041931803972817950803477825676920689857078130233840987005350712344536779348323768326381810511908790578481599428938421714874196296191477167423801081374410928908765019651649106856308469013174675809056076240450665667375012309507141620581677473329203840087863536849287993942449478366785337714577320100527008721406464936401559745326914782362871399599121157036134003854324324117380372352820248273023472929005246800499339103222325830757335164415340593156749068736609569964664563669573817440775601077914892913929763784370630664995454124490774866117807355252735575993445462657615350152440527235227449807779272761883556791290709425842726566531103958957682087406740387684432526066873895179597777664241862094436264420543828957609332404210904458881191277400475944320326722955426001549818831310308524491519681117042261790135588674318735437003904888517353323282542252774660870008904397175367542603252649211204846531729663401428813246096915858718184085568072728755329553197637833929277887117294719972068659204986301139897439052455923339535112962824721502708199087647246900908496039479384691189074732231185354146585727349887670060598869391253579499984553831452409926774647481959663163688730689713448381118751927480252170138359269160301688810347532717630473630202122615576530315886775221413652270091810782029222514107189181560257508311301132201958431532455624247058463516753009338182969456525468866846077971018428716825744938079775366382237549890542595551802026921879716197190451164169529113772057832461944547436681016800170852157685628234613584205963821798360884299487176171106267302027314029814842997320316141475955123849673815585588449306017001249789378699630842750077294460710800295332468098881966075901087234390613999889620517618332346037024903032820207248547587242254859807662712537457050563754284525964473878133122069469396191385234628861957768035046527148484126561211578142448953355592854398997138249473219984908562902280849865439614574189618099902717569973294009292571212498443637195372537661902897743746110948117331690151699073949154707758653951016257629989357379706406036924572447812789958322408825832996148645877505265904791948440551744746591996827245048431493970271745441903325262110221709329159976245925106119099645957301035994179670943674221978748116771964483331000296652523355250385354894358297393829644220041196727204090803761684155027130887365740112184874255854110586885688079008651523582518444880743090771956662593751497406736165170376865653169881861015887691494668611814055997444694472469044156999176700223996347249154728637490134117859762439939226249027978592061951057038337694309626512396997157692963872293495410332098912454819408188277235195986622518427987364574529168965532313167176648483485059873025793154811779089126704367308882738229882636376324137196343224047913459877637090387969717366486139662247944703066514261343094281395783672622463547590707722359670866295214673358181639194071501780794668472359281069352282583536184179770891404774489769280696936947061903809535501134454952546702802090403925626340247353876790814163319512380780747954042516238363013224475960441410796074454009269989411469368666058957086091010086192198476819388979411149970147895581663840056856753415356968770023394251092190240778390293807860536433136894303236222132780681270294255574067204045319823327902081498890208269604763903248193641389806623874282861488941568890605763906598929962835513762419208226356497698103177484383112967535217832455196117857978397512354883176130030663325473344864105848490539266228369261921999282446095961981457921623173141137662581531332197837927603611792372477342291983225915473767894675716946204856388817545732249731635232439261183634837780096322501082628225884013343774857202743244598055530017875962336511055040594057754744676388733227421440003808381356125412678365524938151770053012340760277490470152178939646627878302519260256599725080011513284746752765530080112590167568736394336274873013240182552806614782261205663108957954129991830310274074672261715263912403809131084278447925504447889186794531511071486030575929232272338988121924989006241267976665736190056316615404296658562019109223915944558549038060457428301437669635110952219909169121741294405649646018659494386155111769610671696431341347782589575800407953624833508375091087934547921055772282633328639408723265416150246705458020784311166337940993217732835017243638553253875767808029701124090490709321577505771446743351948013502586845041796242330356316597232475868275001621904082632484585650802731720804692841363119142180756625003080462236918773501844068693539554835719283944836177504534742535688788550743781990142633473631980849118984800008043667322159578986218894742679067922884202238013053684530112608773236333809473170966215652488197586109501737159467926100023492373191433357396600241525887574425931713710728325781512618453269250663928616834055138476340342175678886168576208738677462595688748908908351939021527013928096225642227105406464467247933745951655642577943844123505119656175075686359869350915634500886515336248647871851030445581924410903801647606109679667681242917196142252175763154969022199059693351426897339559980369487311421924381001931450885479694283517606309943012933527369634168350840489278650329917042853244863780915268542908717492368455340727437946696374189179068167571279627920454698804744495406458848467641255903119049489640208201620800919944637148717637261240185126070968622664454541096498678406524228370433131561154145557027382530550576046529449174523919071642735019931876477396000327253679304963211130481828395317832330042886338021254445767713994730833284039223197553795884056286441689674180501940442303393580640140208198514640630500541933726337958438284243743431322180119993834132196876103027160303478564904067364994652452260937246038380205372716316443637823253373170024516332926057061739043003162282561844394444933769641460417791943013796838226810661481139289223986878020769861348304064735132983014897212820332671190754032824861025686010111568214090073403477853720622725832531940528712399840260311147840858642146060155510996891800372426590557666189503178708606296099851407154521628015073656841868186537056736344919271933853448405888909302908347376615248447049190417103940364035390328487308770391614172371969550587444311609855395561457075687827222798039428660726769738167537271540693675768777677835130210314536544937136359745103420199883086137716884360243478921102738425112795727147525500103588410061093098053217356995388961180775832877391126309364938207046549500666992546770834384442152163206065478300177726785046528058892097718418026898590683233495936578880695088960715750423222434119202138798856749473389476877345083647189725408103129444468070758301191052758604180418823624979981175322096983987781782438076797160397479392495639779550131100958871795576098362183781112686777551583441021686275454311264703491681495446617928987433344052211569002627985520565955334628027963801702305009438580262415596229171118256048692871126532901922752457731920846074581761129745118320796044012361092608465183496183130710667222247415959673226825873029111360127891269256172602559582160075558404425127263088887566609219067784413882803965849670609528346604215368592447990808046432024656936526147965422663775107572548140482944289790519693769058513882107189433472880696710287351724281118194670665630776504893034921896602249735210884093083644312033939282333874125035576817562520654569281858722676782873978183991160264393694797891458563138878406179955146162833790934540597691209550947768986264044052190677484060633840127957308893068012558811160393510622592474558326500709822614943045049934006465167023751589763490249982561866050393347354698921143806633395666400180119442267859101245891370360826753846442729130516511751961083806363910033250511410461677413528217075077125833750950332598601442747399129125215665086610595117285570849586989674064277941711795435250044086966207889398099121503245200122313790671048327217869727772227238084255082860609491203498367953144313628293070088539643053034093420495793838748317381143335586890627768410475351555877552754921843273622693532541095254855878483889395332375394991249218008275405180097436998449997967630937486911797846607091077176152821432783995177869239375332863279731042806247733598113613043118286419014113852855339408746371972367073992763556313948443724735923534905636541628973905470822495608783026005812035051166176199092144694481423995033002245062503471333632207779947316138089375568605451409884473141031615687952343242967537517913674788675230029200425050352692789485145379411264098965494172596333471149446035371547278757030944584184188566604620738093247306876419227979040837978921405102307310614809334286437184171444430334244113076745315385287927040333842163600476853340727485601963667649108587947700189675264843514931037563602026236911644036575344415394173415752309693187144511202265817809954205794405825198331806579964623629088714629518271876368525022690731624287192316229540292258552848175081400887919408527052026333382391444856324376598113240517589451525419867336830062260770109818706657104183944454100186774992208014183500895127044363631005050000778037052393972375714621200395489677117868995991407838066725832150177990668098063102060791855794002306889459337438064871446927137351903969236179354945485543967969525680941933715102266809361613739140532722471638114265725591203240395333176183235670454812207347431689209152976114992609615584340020065430750887627898127336661086485418748786209378661238024586110152170664844365725911953081118926675075877940961626840059772952087174989577270142717687386692280145637710876797056981593250861920249343964368236186195073424418340810937410395415201605635669244597556745325513729760035896947248060494864488287599700545949166077095086053235028059872403565290513335629661386682291982170363609213915092622779783339357890839151781173351429943314127507928686137183142300822924728288090957929573595959640339628186551656554781270883702997582046996278244234385083925142079162317138138416629977149892654595997618578652168414265308366551521907318037935131553956067880995144954964388685826684113406565771396903766281171523493222685519239126138435502170448582878571128362722844621986069969930327490707118734800320610440737109223840259891914428360142993547986790294696155527379939969335983065628305357505210790748118358664943361502928861204479842953082272956401695182964078232563184428083311450959189909505123710438147423601831222590374193928980962808577356921028607757640723803149982302915943891690610845975126164398177924324623773615473570044942838503589856210598092980551125411776063686772681881726511505762793009278517354511930127280962293966444294913790548929155019517089247283705414975779710660024972348466687561449576561902739971790666725632095598079609931510314797729823834233453079762776361504165901098761909900574506022256994703052056762783180745061950846957931373123102769245506828440921483529605199393388854690242370830892881946190315365967640357807825143672668786632630606277880985524472492844335691151179749680575655577488426344624470901501824778448093181481721145371672429227027142837801565508394845871324579734558824905227960670763746950336058809853855775198052310180955588929456542945934740867389867278801426213271041789009972358672897595993829939685594453328165340555846845146977198045495327334838919753127592694133507535761913349388704537092848407271822854248642260479021587644358358965034295839672310053357443893951963452480849679272216794354343594847159906061691512665463090179664300878370397646369829794803336192821678293152729788469660837250403868288425968319638805268235526653150119973147113174379164205854012735553849438190862622925028271775193318582023675848722718993852375987152310612727247091352371669318578422808878763079755161819663172920580867273620881500440298490645278287522960623308285019569221581710569629010503825571553984854493268156620636790813685155008711736266743256087163262456726241444262833411627975760233522545045950522508754352484081613057496874917086818883113249772780319214880149117372133304915447418783331281477157733181279581056737813701155946976820673626763757443454191962202197653460532663630602046178211667478415858115665046954063634014063162827096917955136740320924496993382496444040319297035690461592043656063031838686345419300858803581859193280110701405165870196093836621505985254583842342430802019495091405183689324163840269063829861873236904364477965915931574728397212736009190754491436116689572790544578173516355777956634886339918440818238500240126936405448275866086813762810778894356459798488282799687612519456482704666021571786555115779640634812670259007375423359404994607277582876653453854691254778474901803095838603287706194026352835742514134952656201088565119837417187847833093519921319308846012430610542320513785783982442321591667756102973355581809475935883489090938624422016681429289550771802303992383781380923939236250929278269070791696627153983118076671916839387605186304341738937525312627135466244122925087290698019294783384251367310615723768736349698725552276179158530747699310234495166808438433612289445504867885984051632867309261113141993532887570536386055661866644240529432767809889068894282012395318452795327502732245432024543168398202824114901433132207771475223723864646687339689907878462814611876050625430654176963914644052339248506450867366284826100228117691085581883481899356191346456550937433424541383104594078446543486394655008400505796141482068343106597979796688625670787466915391649008016154003415552855769117926797607403643092645343039233149501518693567797888269993958055079408420361385472260258996349560848967502359472074856087912087769764291409819858169378028665089262894548174893220573226341605230957968568373555818825254346278376473296968305996747808624564489481068490864993593191031574165803698240572820797213515370623362709237808262454125712965833609710560391275799890403454946174579656961962331186932827449020353654389586440310371743503951161223536732455322012978311200055674039710802346990232858879737973504615607889004150063457078771005031461065483363149038253462520009376691692425679239672608146621015591071601605834003160330774907255230978474898692260136657172106980414986260600758770584233446075204036032954815378542179445379181485883213652884215290458853902248178325299902431899561707002296176089606491559160385299762476783599223698551510115717891476652804163554894309140280178650282248358132359033959366927806518587593092415081452430510786987395071572674018534312257435340356774033155713187742806524710735739798178616254854855250014781010845871533980016150048933796513813081352353218235284910058045235259635972057174982006217772657312676528865176680254248492828656667763249663623072231420709507032146478575347762886585442124266830562177844497598166830794443926109380162339970225383529920591717963540975097822445355239129195727499149037568001960032167144346637803697640917318494827470122241637289980319917715002540380339220804408485548161827434036499754862321145341193727846934565211439852024018610690519561266894067775185134701787627053272530994341323633492417737412358652051791426474188132916974230887926437576148384907852480152500951959511899839384296822389908489731591850063862178221267248282166536419362413255721517632010277765251732878366320529531950567237120655768324892552661688805250870570634998995283825777797559216341354683298902836796588145156533252925218998291703106154053355559027891971413688208421843492559008904731953834809522178547245870598852196944219828190959055326024593582811734652819336553324030412388410110366678322613714211257071671776401889614201834161819651290930654313334033106067155052859819569016046767921661891931652883226633297699636091737055715960363331875915601933222287892084074350234501416589282640456342549929640064911149395493608623056679863339121355104621846205473228618319050169626174961171057892200569338966478460669056012986164136331824408288578901144849416049156837374379957668794584112262655584696224097443950922656842867545737738182491676979867012168218164531392259861257437800006444097319916622691974252463828784321142896540973910079075492199557261305288301519055592245913548355268319003682449860736524182506666751832429227048258577585020723438636555282834914587114466008081689425688097584143039774603793693621626891815308972475904167726553498691834584318317146951757428447772010339173935190023135204472415061618890688274777295802546070058883089871782503005824371220231228348374304388013618169719066885180628515869962946640947645576883627665838242354574783666261720810010900692370340573085654941829649033901628685686685641475035861472700729063417310186675505028112643013586966892838685730777208176746490832291591992512447153413936161265387695252617510172963116946704607799481458141968273775707941269753581689080516179420866938100870024186472236398274295055551133342775252904078367611633812950930897578709781538219201179904382720869754037304744058047673109420159188164461292393975586892168664849534444404277391505681961681687818466454496215451788725674819990428974523902919368720013625659724470784469805316681966325002207460652428675300781866789528422257494990629033105480871931545925828709875068590251479108194358712148455940672242406871081500412647489992606901817519448001322767552730729141740055777429839469840806476615046789328591325293875351035269207337037048429370528958157592058973205045002210458638931925051974674093688076838065624903673362872710597733492939138765077659644196812313081567184263605519530790360933446060717238365352133593749587887761319790329777629905000809085966911771324218786627875071842361916934556741734669496712469444211435420946593170014588684179147828630782043825309195954839776962029387557383252155769928807200491572642763465572419710724028729665410676105305753525787058664118208689655435533556224811630160456738890527345797640776299537132680222492071747201370857326985672627707623422757853823139014289275573894033615220163266163584648505609134142873342334891662044010592083733771506521867510144406381742830335971636064985875149956872331616477294802324020356480034376632417490070378090710445325587081415672256356342205272878009574437285007147498408377572793429986549807775200671062906194172839080186931628795668432976022696997663374316745788693142701837989066473678083999803247814950395512492379778721683680505761817794704709170652552853014326742418546255221478243565205735493142264182727747699941376707387166543145915443170917884915604044174143873112665999833483911773420993033670660204187412706742341464949905528467700665725490630658825405834624953179587088144804481940319902388975417905498296442333643813049711375630492211631948854170452482278604507937510037320925710429463181373079585037147940102275988148266429974076084273072874139719860550275438897185372636554813356178518599005273198435431961478576865961210264492622303340058086386091391853388377645853745323929108524129036887712543555681753232493784290049335568318120991316264290947851909194862760917774947503635590126324920071832558927098728200065278643383810150784471561476995989505469375064950162794936773264281997047098603778753570316683464568117008412134786627382345855209240426059846834511065510638093293630466729313294297426207211513471237351708949856401074785590298398218244940585523755816676373129191764747038237734222358141212012937987598071605283108371532176435972312533394329519556340676354152344574064905123167897865690527077477470682433836857434605773212688480599036315244599429681218556572963214011525869196288193087742226655111517205555081567050006869185746438355079879260540995381424308025583100112846560751669398705287940028013959078934320527118430066110667256190870402797538865578865243999971373019608757318975711446616717939464197081558118436055846745006574548060638554019841709381336343078935983079864194377710930103211881827205802058080352803198036452920729406727040139628343587272476271044860371091084787799041020182072240552395269036000786881292761905498146283195502772546682923244984170093362538728927008575383859118836770991504535281996076772182338677602853777347236121396616291543990761929030412961357172042623801600358991547470729068194605604910938353240508465562359513866534050735805255494774559127972534070734898765828166927142570671977996710433413294752620258381191545414957359306786574203725749079033720445499475034709781847298289790519226761061386277848655861285181764587675513096168611748298626978185260334502080214391305680276742309253527952973668370950837057760218868105100312480353626212367685304561982257313041406412680706937275798969053310447793241413393427219790182256460164100701570586068277907466186928978264385785505596482410566820945843049614486904122191675098614087166895322451632933175408168221953054430965594958025266825846191000304995308476687519621819065835848810372279781597025444759947980248771225279603980417668013173031782164718123638620729919067404000512255771291478988326808443983705914520231441881468541209965500219420058496085493679953951592841960803604107498685782883802818663785156171547322241862742567854444191326114175135469646513832512910558421838642667874716103163565060571412693889288458164548691051360850707470713320535646280340359130212964624158925516039970566030988888083075710477345136756217223556284882273356652405270072336722052417829830402267359784443511615079390041103709825838736385271320869196433086216597148837307652277038219864953485091046628311861076126395349486552405938447815224147464416253666166559201061125428578477762348645016133824841919399261998335702237653141227058745993249419639287884635052744131198147077948036042946509433434874656601898682612701155646939914460034999946307833853683424704291881941799514303168249685080536229008238433035605235500957438536627332261337729464111985961656483103827912145005811101493591581590349580732788093917105189123870457707811436753899401972312292412186478432443603142609499036843859371624782418540193335169602350494777862961365505746931707318136574161387277364305076761684388485235490834225075459371439553342094322631247203581992553865677509209163229516963076648608678304528705718642841636680185750715988304601787374530149271296071754359408764065457969095018806293926404747285373882540491268376141778977809864236899344725066795214452530075002115563671752189339119915598719100873933225992940340427428504947518893631162146222812000178311409540338504468316581470279312887397452627465080946547311656232254011489234340462152674319841014729806536621568310546798572602371858105782372444408290769440788923847070696760935640043794365683480375637437481943450472853240637188084613881333900481749759288904971066756499189347368349895963172279585063180989535594847334989597068398022309216350290769961334966032685885331527281633185970074126770707044079711284645127749699587982512604863653737178351922066030146654909591349551816375451729763914565674337581631349253409895942405328544886676025609466486327797970646874427836922633894275271158900720514389876173119707622028950881087100047467152614984267231945025820626889836925648818006939456840530973104204008086817495891014247023903872507014209795631303247766812863969789850909339938266785903216826843024671622911870801494217458820263399359526549600039030457120369422797802485516344927339197843402806167743401969371904772853175798104726748240425998376463889938568838871094997894514238269034709824465855059527178814964963182365700907090496736907307328806094792723822192100963414892701533634739910635154172230784639249947516616020241352356316918976124587008712388457104975259389732626261550224737408128149924556578098713943053100957947347204401099350374237411818262636506311637923113116908162407403337704080270580905422782702089903578310577298328520318018011043816556731500154656385309631184091533195268468112755412796243376644715888409249714418823678476668431068988685354714597094061255627245189900908222131923602738463249156529748457800814229429279454323387292491431260176670480747131315184792527595749449607798964476411451790868379656045301433079578876366478669943791605849111240132782488852092144340806989109795557116552797327810451229763398888644030242715920711824080068286863066800812741499150862405456865602976532947441590798746967999871229200799691045658160334037125662106373734643448329339030932140199515084152098634851948622800845760604636177721980616405262370069303659198660789777754461298717438117921566257579386060804761753911391860591314507671855376002613126382394412209224249627262976519164803114718634792546373109664512930737303401786664999028356646200114745187858650489775389817966873198895647544678385849685619762711859635791205541104356000122915987624457292563224304918463786969455339520071581374217988499664861492337185532458892328652926844679900640425385261350755933732037713356181656095475551299269262795610237513409548448808131589220353165417900932197404994196363855430220387782104337868633227258797364452651084317116034015295477745692490622714709190603526039723838606976950916170244913342731928112222913297642951062539070167720318035501707275526168795567594339586477886230641697580799435377742894416747653915406785750466579887205523162385277138300382673896382264548099245721508319183191155975672589067036617680262411490874993055425279681203098494331847409465075007504006794905562978471918693290898533743309881339659675051111359851852836990417568771093550313511208484097866763953681869449876936282662875179800479064275838510134097090837161685200722864699695724663828720657502285039328264862985564978693035881855007294047816978649179228596959822813713703491383807571398656761167160467232229593043565211058520436023621780326498929148399363375417030490749241466553576450984966995357520225576923901404665111402486316582007999877947640360853576085432318115985772514620133716967528791209724646167712540780828010086211348535405936868238945616441504232080999305837635096316813063976808223219921686934647688950204316347458226760559767803427922719989838805062470282795182931089961492387069677758970821271991736015833712609881508010977300006380238124311669019879811543631730853071435281918198751558053228155565688293312840413346885076608668275045139990691460854169181620235914847614767955842655180351822187698150403621508188530418804777198014038851811562400191482927365216317199725688725933056893204918474007663443893650954845847639781133308347038261359602417722605722055558036258951631981640873587054295605136313856525595826244221068050346971027170684222355721493982406349959424080546391615745049191416590652469302661048967935757844428149106300531418738941273266880161382251752250769162245544794447819611025857412804466098490539361413403998679441321294818752302016331196043486413174814339060253266111781157637615382363355117144365834041069481581198260315869179933559031583899830134390736410395152237749693209849499829607871289406318664367973672916639181109026915847308487468792514734783905000924455177962711314927957483794310340300087540486459710386370209202523580044690088164679703531699250864161234920933971206051304995053874313868192923419897485141934083385862063991856513525521845968804903988698780079801143192355709495388421262700100842505501935705111985577639075644611111944132059671206362092053892535695981495338312909652495962891546098268733352921335900739115449767456302014162337483558239990227329156091927648796948276167274160148452100426577056639730071358670401263506216434398553586956561514726600691200808769380362441525351931431464131997981449831238167141193796935530103032225025492369041594819246280252494012444741098829615910403792234667340905104118918087966546974483934878000522122821491916493148055072126829800620886295627091808921199822713002038199867282485398844080986014390778619326496024635788636881441604090950377865643757717533775162540268119644328935029098231959372292563800819401768524512854127524453320757325623699963173288820991041952400314489631359396605424612996237526399165129727576306601797447923088885339345608655075489351740510723853651250442942382184659973355831077131767983650377613641674788929526825245350673040042044175988902127502010112217362350247048404307999379871425197858048225055898211031474728998859796134403296284499142796273728905309696288875415115386167079177944735908701376129217371518692949276309475012275220998969758703714873005890095502700037987602911889666086283016855800725348861657390007413427862146067430669768640135131072592133032517404856971885735333485848972905603981461071783637547560964150336685202125855806469709004202673309406627552250638457837441340218657588146266308158432350526840040068337599031235300927233644273080961152235440963639825699090296237435617795562072195844036718783672323877189820412713739003382521418228188985176966003355896718411369166515825966124211188922087054791008261377264406723654131571783396759018724174381829386455479148298108555950216257341127379703511136727377716798212046067079820303096260908491240878266010873401321119904978799593150459861864503898961527568028570601312480217561907358048914322647231417422832536476568791450898143260752856114315270804880576682491754424415280750694641457308462338437178644012195685357874342399707560441875455408581016291941541487332156902042333106956482182323754863372293234461907385200668829903075530121872903319565517179175660005496482910837567349717775712895277238486395731081756424932016205698395192836843406144175760674054982362950321247666121419855592349616185907372716185086829245670759518184234349846323157747052527039920069711108512595694290394865956871979510397178986753960899976652534572305821314427680180619625510523104798302963717773660079886834152432948796575044810599964101843288054944204441145394282731290242679536613843973737267624295188488957077785078931420865621655111322966299852234765302792510613828561031499196954678261996339242760296295946864999525221851267906383045754771890111010790811696622048387172821071763018207615961417679808510585942747792407214180010504024461811065515785958818578510178284602846732753219946717551515766091837487581829964953878630352749167219685157675882737134607055543279536814176266384650261612743984759697281853552414888500155963878128729413990597068788882343041449493131065164623116090286707896061775189927927868240732513405582278465502716662715690252100648828471301611589376383959753928140465184338631325050268748780730811895714004344486996404871876220075107539642203419573197828863362838428123530309792445783715045422013307005033076813600251977040405188255977818012709078120413963679722332944794055190297533610504430598200764037114730433197842217693759076330501198195683556341619594176138536818134801035259153385924536550425196336345682234606471242881300444778791021276485503197251787580445291910880214220817821885407427452890639292311876479129923924525688013828326553390126638273138833273951149819310264451736133237816045543756306982974724485958792194545945658769502713291324201580259805211807131516088149052913365843629263501858279086462633935857055724134830317445751202525662711642355419654993998400074198427575664126891650859852585997090792771375382972431873409340908270335244900602705722720108547207538551248703422987735799465408050955546630605857688701226565387797022318564788393027996405708903497407303467124401775349626773925594417291774831863410652775712195129758173911048651992476755702833379998989913336905668285990026760623547308836051801722524325948431066344375325237953413677491471977673860716663358059266629107901226775825915019570142827574566147886578837416411609075591432213638073602804667057633702300936419393980362947017405203639868919381793884871486985480360446356155591909308345392773829703654317735789500531217461655598003894532300244329573129051704122661414853999746056153961889526136924992413960158181976589267627746046441559061768596578500714274799949060446714905860188145209392596700034227051749741159184570414625065092122803559048448764310259761231788095004223561743491683471697303031397808311491742388828573316899669159776460375045450939990162282439163301978829767013071209356297755722330040637619536883606609724529378991849181110472960075350737841189503284398903225848585249327916400016461506047410123550255520754089595013006877359664685645933009243084773674721894712859227518060755395921309978715180667124219659511117514147588518426881109852031111590422405483882170091886625839745023920183878108706985929686687992164277700666925823324580321195878549533277244931533462596705378484465820715441254000673111071650386874338189596137705238174999473779258873657312137516976988974161163794078891505013433328142537805943126676538989908710567328406288875039287681909368169325687515670607021526778290815898248280330106626426522990376549600221523517563994545528431692351277026895701327357364179288452499309160767823081403917915674640152187373208626481306972260660523956565410690572783245385785792841606804898965779828358802751115416027174998985762484250968377350637323428236090607171511506603423690131699714241311545044310485549764426125196002199931071440576309130285023979003145500520381996477432970203442438589311371015173778911233226923833083014767736350976133774264763191792409236684947699179305875795563113253234949058605568025838318646047127321465510263654218929797402731906619692049571161616308694260841492602951172601292665103404982348048010336987085786594691729329157517756608994654847735475943173600924730237977059306835608586445118299481960645511485009645561823100968949976404810406205409570255133745666000618762181612525268924603767034518415218387251900573604791729185299208698674657731829831232692831994474191196813412347564585342872507016332285379305620490095573859021456716686740726012042307196932843106237566245317495770327792137075647923611304098305268859030050581512101978063370996672826998133367171156179065095058147895287965238839127202835798011075213196822953849942329436405295440745098153870388674748869348163434099254175962327891976220808390654481982416537918348604079957667452488168938408504199622790583931812111408177667476918673061567102683663852143625103271907295436990205335382888580652923021542447551384832785546090557918989905756168615532618787413671337328609383754950811382303101897547082230233090029847663078205230017362182648848213160114964511336441162778675841329231202181659824449294366768773281460673622004041797960639731418135058788291012982237929897826556693601863956483024161902632711207103703945723284619351196892361605959818275060038018006526233593643059281402735724356659698459133047728126254919578722941820990760578670761911220843310286068423438983282340338737357869418583053311928809839466262550572477475978307798888177139713701485123658899431177755159605181086367743939226316476662112100499668152306216977422633305495899374161176036517601703082200872600580775514759678131823012597767405218754068208451940531174349874016895426567706927638425206083715030912005747392226465648034651552208378352633287687223535779706253767552765368969791889798156159703701514435793171756530817874280768994974638410084747858193417235966210423522295811834112495689227098766023300515481313587486904550249070964990711052065094393669929175951450212372257769373633544594888769763949456455607017061149487793303429142277929113270136354739921365720014588485308160249846778064211693788120313445156626564802847537970639598903188869084230132676000661539334377758486146913673226044486677921838164983499010520343843558009697667100011356575694025858309378046777273581161811334168349409492620493938506925296957155848919258889257225738627177375095164456562152432856462175134973702280463033202609062663893261781486073168579339201277153406177477780031642299835489477435303422428772586173087900567234730072038040056587121866532042695191929683380061726970164308083531560899659352576822373292536860164019374508528461767426472029136618221604686921052831142385018942000749750725449933620987124350826044083686988940683488602915829263474673305736976404299160968936810298626601559868298217038369936812826457731785986318862159922242993169925822842997076950644874905957105259350960335648905370040092897841575705042293410341543781280420535517308223065268768837702088258219114139844552250480489502404867529510015932818187346267296481134328346038800959626374583119860980007125834229404917353902165494472026142322561862254916345719547230771518241203312333883014279142329688122458366720476922647348352240400795866583074015113516003488836704479000127244836486587137721384273084147574508226323663538110691879417681356091458069143375805363376503965094571122336934611787221442426111254913691854050170412930632876644739411206897062952989841310247588839680348211292961660616042914255188962572677572532089821648544026075301428884162221208633466048469213233588851827827723180203667348656223900696818215497800297974163227574274792269336743931121379870855429121118375157855522255100894480164722270471970849748360678329132270151478564362655441679449050188274661088714952585907345511514518145026761031408943817874018312258822053930294944930478729843893136568001764766717249028126596061404387789753328360192460167865870096813081390528674550605781736494218550377560437159059017943786967898859581520893796791637215721248137721880560953758567461536224521144393696050907388558867585707625882996713660156269290844764744946865117522529491470981105891623155559980560127778345223343342763442426925051932789539040766573958268956988513579065049343986277098469984913120130597563551657798031232083578028884133287315086970353188388528476610321866789195659128494369687132673382770220103378732151863464314942534574939034200030843348954705871177577914865467112482897844360088749311402877205833191882502652428040919668403610074855273805671713533619365955785161676689001117697415096248973345505308477337516717571746073110836807933341612444623589606862939194446387182801382335264151634146331807068378626144429355753457937921988864247952893133326369824659119179694317020638527548519366952184621887224525872771795306248528455289794543980101935221437650333120273139503420651266575826551338451695818631894350885503858450898063930901133957564878503406904519151634722664995063535954714386254613821376711029174786082889695367316401939096220042218534155654272003768695790842496369056070955084153160523596761279670781830792204649985443149552731339227667909067229992824769793515722892825197633188190251350032989927547936996138000341400993924978808626168629340804643482246390964266137760047076852476165670891372070121842804393846908657410966436641976382406032721908352108921134895592818655616051083869980239035505197808915267055887791956493198233097195123822107261441896455474473300396430216247483425511616238412857195222911034736806407328992694708068781968802795690844009613211028879637889473022650251716591853153909828386358050528674276376549342986375210254534941503899934563594303303128458778872606394315098850262437572811486056844315078028010934253773358417320972819091204040982303944889619009206622518467760090273393270567070869838863187337452145741558681896279878353951335214692829400165551295143988784221970064755625624181340377762599158071620213118819961611479460715353791688291424590469598699723138792167631671470921587237068321705497753153373063500487285782203659181023317929044000246840287483990538631638960394515639513093324371677298931801815997357669909240756013880710800230563972401541279544109233454672115206771998840879662836807960416747600408802173850819527351095087326827323189526515399998915180409295002448193409639282426967208120626174589789508097600444558374973213909697802761025346928645244582398521179318166609587413620304087988417388450348686977396483227572503544348026864040866433036461372452038536226845559629186918058018446512066070294002708540892608623189704824767830703430977340675712646474054617556437860186975553383834289293153895139729196586223286646720022454412390999765178873782699610267263452227779089659971345028584555650189998185675985160388881844114583080633123584346818602675206067810902032094436969133359646245546623554832747993374945925097773422296518365691031002244779377305328491161408618022146893563445190389544625451076461896362672768155212486916628342363516022878753780997639793931861255575765010105805926368438963255289278889288811600615387231745984666259657377200085431509966735892128571792356117440210637719510152082887662736093915992217499624511889438028345929793728824294547661348168265493853088163198241001513369826496737501745685280066478879385355319582450292987220794141894276802860167491015144519001723347629615481779658696208031800113295573286507917749982636837920803764634453371311486943786013068022666423642724410888488268429683475368804098963885883268683776592133340249096093573128925809516480626285692433305824422663779113575972928594428211703413279380417579886444856440683116144644298713867280881919772675324612178374811609575189208862365988820673015398626109060066260141539211868383158463710642810032206208273081008577749029875179432847180534271571847932183896016289034053550904938091893112866348905310173055000970221233207060239720248268758856741037738494773295897521063732939399676923599232870606560599698043347279181256269827796613972179698406833604758764413974299197261755663261786276896585897727385414891794291043302002100585947655402135376369590839577337899990611033900371679188053297867502921951979565297829731789090089738691182957595938322960709663520416131351745387301524105763708303891098633602366335679408696646890526035855318633619533186035342889868065914769871533188824078444459194679234272867865724231065068493823717860883731326349976049114104430577352317618508316390443982853312351016955197146646331630200479245058927294333191012283053385805294750095157628596459529107830269529582417955466845525421944987684048567473169722044845053061284139329343007888759830871109187652020881840756894581750030518799803677828741204437186713041977358591511180651158593294446915300071579479688683980688098822517397409396959132470064232978829938154674509243485652033406577205025836200319486002993490785288739056906164668241408347596096306921355267993274714354408614130483822797624847111928650406952150768630883536625332012222381953175028855686553407126564465527088056499320516601353817864473917238200116789762341301436301534267516597131905075998607876073119081031995224867251706114145651465065954486791880774426376590159218416545076905216963826309571734986594991299541726720831793479936106653422835548542203835348138358289969997115273819130982157346079414408884409757309152120177527627330417541829875786320998795124534315589013492202289182946500304565790995726440694605027528487210518847684571421881610390827522802371359210187525133791886785461890145718953593004809778264712255642461654919317551523783905479002388857287836340105126772149317033218428324589278824808567028041095014520256382214670052257799874504904766302065980689490600622240477227451522844448177982484750631176302438891386206565644043253097853840241498266573477524016894397227993513173544230053050017872880181315615888916792229201767326441779696648560328389674243664849685401841785038436271034070677980820915982933081109805545612629137833184658936844619391845577468408343547929909796037922493017518449104351392221802175794435454012966729922153779743268607178761447392475052397681325107990339337584585382236762489245888382614689482192950281419128726210409753210549946986152394756790290842064117760095341316465727374913743597817041029163661201711694570256212563282966122002297732539049231387907676431762601372410071084018222386072861441507668693938941720717048997526334664051165323079756340740551292891717859095254796234214491070581804227133980863056629756099288579358979035119161189107499138296887974555503662889224231223862484125384989262106116782309290825305778882448796853520541243811428313520975388531322018910003586281909846802985906945225365670460940366969153003580694472944479535779000205802219544212708284829673564179702154958174646516767112491605242808683580758741350315364503653706484007596286008045021297243554602430232757280601127145739108243057587580940781952472721468465216870746115074824614860303711778554863691568126794118125776958736089445407993059526647947785451617561094752919434821162811642165991409465260680366599937633802638944966114042255385885070413485913504927126352342237360124785882381397223691248604858910463576207326452968020499271216753288745051427104673036512862409411283740395294633918417109072642728540721827333879421045695807803907402730823412420788941465806663802067979661997928157647581581125951062633617682386381304192119389549658582987966110858399950376132791184496814771013596673776645825168795994232134805269202483045348176694621143398130148855045661799258357576400595437993247373988915767192398453695572523624421845172466008875954959541301488163106975489200370681942081760915937064534449248554459698912959083104023234604386206108287934203710770508978677383453667593186357753025476222066179630606205705858745200407250309557258978094563977577095704984929461579554483839458356410478098735325385552041549240449257756216703996319527332590761143389905810302976853956271718456534253636542490857300910067966113925799859149314364302557932468313292637363509794648574657892904014725755285506414722407020176456040298513298941079989187225346376768328383351336970956201778195560334288421137596764930524686917853404000943362129768348010755314240081803176793556072869241915207955539714652552256032555573520713655585573934606927490090170566196044931409809106403526426688288404676570469870740017616957066824232211131030535828359697838201113733650502679544023412772846903400610605670416566382896571851361967434287765334947794038367086013779685735894456093591418814944382665295733460031650684740076246701861797941279481599055227457692996049953051448986279740615944182943344611299321046557757245844516727052147207016163991161982080772944881333522076657388067545717757442575825576308169818319058327957332089624014101661499679528926617952384726228373329092175944642650097297201828182432671157267445547481074428142960564715387601998039414384585852502055749217949759018962496265418793827511253115106145088683022849052302456927389265805850302870246854218414906461491792847092537738569097792929847388026914188791526699717654393021026587705875595004967063186243503228427891582227594489937552362592838307213958862572660381413680663057766847733425089579100309155916004646778564191982233717552964225165296477208840524764978470291509438726201905197893760532410516909379633413103806333836364431521226948148342777044059023496244949369817842924025235585646946650245040379055698138467345493849573013108023637558577918438572412330523266610940702206111336408870607163684286166445534908113919909810797865650490659130297686513457291989336637993640200761889148935229600707426186965910977752237982871376737561549223079384354140232143296268560853584378859155704597951894207624186863720405239670886012567281227752597618324013120285155223853259847284025528336994999102028096123120023994184400814153798369204362208343203721170467470636753117788887624070516089915186016101135550416207457931856118594222898280640532122549352955428189481938442811504943132908899232077737553760852665820016032955275235927280941930018964995812172604138112301141875011013231980040022600407851055554226310825165026359501384677825536721951711582933338997600991627841466940101757136729414327273559367630837431227435767478918254582510153576822789527318912770163570544860937037934981859696805181389019894944569283453319025093287663889560948963670341362960522738381006469684066020718221437435043911676141652730491652972195872300337853962647282619023361803609954132945314024143128437954265605955940410019809612294983787358249341748210673818102349656810836430805066392121664559977642208258527678378531716196258296965534391988315921866990939204886779227881795220723699924916848164626260250854789206646394029556714288883355727254602063335567298292015056043064700011750565548619601533177426568836668568820276817216851187623620004759920586541795808090572353121065755742154776787929645441596753910924998484655464844639244756247534779548092001849219406903098882891885947965448310637278957508309992326607483922832978002801357887269099082077735452321427892785138899971918650549749613147918395152187509758985091648079471870906375260338690556707231430844486905657396429463878165561919400898322017997975576585992735084542194443395620827138272815949748725808396873665893159235382797180824980487503266438995480010561190240351816607097501152748758041971624636871797359248800541685298998989895850055359787757205310528885416523625741101394373360406183526898695448193596215691190309789601947029636969419101403857596035027884058512671937654833170489045281461169651843744180586652160876479554133839344914245510643465339243161222387042786850093763599937658641671073526373525887977891879099173761368396110147717887200447199890259259529421317326281265457332275093075552770484936254864922194548104140288377389982583319758674420021512588248462196444067827140690382429022224283620302993217563527323003003094240823073579122931011379372570217636071714791170730562906801927729423652602118286213436490804052010748456479268812261262790703771586066498825060207461900182854094272050709206539561059541349873885812989645414943048831726011344954789265507114941577691100024998742646317120672411908257194188431909730461889258685867795695004782386598951856496435714726793149299368427012790520265182388404472110103710770877550635535161538182248673061602703780984894794981828485542033900928628177198564047284811266714178581189974463469425936195695931606974167728748700415738531104558922479191741622290072846274245563828317511667783967018186872749857093207494796276434431532772754968535692369391125799360710795265575817842941841794366387044432445080901359981531271727737997392825439722684229507881126903294547049785397855829584426974512230935082706587014041798093863510864887462835746101254954368839222625269299447448043069210377149028624055524289569327887522291833533336801160084462354534186383939649843811845234884107931068817262727553752925482393826462167765234894089044174795336207918990285461838928231592424617308421520264916441766624387402878636412306266260584675925952376887849474384725224146566659100469923032494837456428991531042188313934401248219485815939900960496026220153366720312874370251176917559121428372866503378831594954765563242974679338086051879240108543919478625356347133515551628782531010419684740377842491453251672306031622588604251478358237138090400218284720380229148577296369863016272426436387249053835804214081101800449343933961013943717172611623740100800817591175775555939715876247862029383594148496027852211203765173234603402929037795415615145463770142301688946776716564109323056713571961468724210575426608600454919160405408320248227040076769733193573667448553671704670045464938674349910625426776780236720124823388467021062474236492998482642483091677857865022887356116036344306031870650605708580728570746683573774003753904686776177628881013960772418635638182789689427897694631778705495826438440459335461394699404253715201024639867223413816455404820892325164131817860463417884871985814806882415556632381555207073308604427339921755270701510924361270319381777750130035303884341362717162928885261129131294405389827894965591127480975420222368363313240052926928928593225552366639642390426093183116491527602882809763242686096644387352342021911396482155664514239715137111198737693459648391615168339888817580672672198674965764511888577673143226890693303554850386218675027954606266649462314714862440253720396417485055925922767212765472634201073431684860634957667691959056907724102830431343805929219989029153083135697376873738783454108173506691483712870969708688203126447729269573659209023658317779070914606845016332834780533897900091215684629810154378245756527864420453655352524483417374995322131479279091997601761882652463178821611498336718961416332862335527113246792309184489919653019857472145016899092869380765969566816227480701329631767573683220095030271657850459279080319728771339612027241504146179119754292880665499444510220616992785613129874127570257683075852337309321939601485943203955491589569049167855998213264226664942764301270046979356543484073901371898238348593879989817873437775096252585442241752260180190695940443759244817103192980086054114895482079587258067273947343568810004144737333649688882796832090775770225878994920159407636411047389893226178456647137267224299160395821427057831647112224017485309657897102178501675293305724514417813544051640111598716879056774459397111458651273897305253354724865838713393103567430347593052210564298901275054366720189543369668162566048558525289044808821058085431082336954773560602925511176852028182431075033289418719723268370884219832928296276960832129004083027368640292157643347989043491398696311807905083360757347340938155582910824144516470360264419166833114692924591328748434378775479344250270651241404402227008248454125205048642231336262335405763181075419390700963275611185193934189739765581086988873315228774151419839392995681792225653380418454311566482996760326152465234391335853067782355293133384442338175194578786073972084096768882130356952700290380254918946414726368642876907298733865834977439596865161508944770155452563745692347908657293560423578896442657308566251164721421290061290008006933317975164767732486817812217316155051356692104822449525543355947156406223104944495807487516549163714378779187975259382053408313510121853577239454749686847358046284724626304383468573473342469885197954450201713654055059040160661243053742723555360950675041101413175236076408710377433954098885260113770658492200299383904085076295040704347361123165571339275442828978409462354537594949197592663581999821084187053636479989947531098315377567790533822618724080969973427618974916197967883057073897473037847159570839537452601132598804466246705116546845321175667593321430278671929941001901253155479780701798564774219858605704558125348349807616311121821874926170589728777392585652499601473720115271993692883243445795605925360925420785098054513217559346818983091267561521867738586096866495561788071185177852214531140815649108163202397774358237934337381476075097543309276624688434702740658148494463814865985256661224786893013121822895352627463925658321066790988356427079144674856436059773447111212121288524880654421154941038040957831293950982754792071565299354218466910636479563927776135880951937445099283504888379951992388946526327088023067252620587595742460547109794298433702392625025126895036383069598751250269249871629704882158117152886842302094690723478138103289313212488677561004520238538192550912416089776359114413858555031783533721000340524016602970884273285416474908929534715369600383161856371202240546972513715179244730306628281731588535846078814767908603112920039251822812152267422679257237663534745720243023058486165122226426312187847328612942149945040834561129711950158543360262916869209674048034077205518884624173081888557224112149696579180655262121798703112163431727469956277923013091235149863666827507971554765559272829596454274657630542176078536814476442973618456371089658239028454918213756170026823024298742783763927297631466180088792005060992903997543909992475538340678637913005369093223858732783384493303478912953615868405641202930201118761934438545054294138385121351806053905151162901794643407344203946495328030967464860208396512402184383994800760119106915689495178392742677326466269739698507385592610801569675444552376946676914355960727556217012904028909585558900556909244942754671455615540617928079338090022587415941027769172035946503299013175445371674411276184600518725910383903300292494461490150094434294444183199072005239189668894603942261502996551004675867672518413727243892898452229791562298094976838499528754992881731265766176177583090740130025613804190669531367792096803869059851551569104647988727692118546369505726912773329762110258653571379670504834996393644065096288589780155198868812729721057316497114754076871503692596169643262803941281421780054595811670880476036488308291391945187759466008474767941570753169084742953058533022775668893545146299171489644269449842686505014086651440877092898994607136426259363856793094126199771015178854298808756618024656923413206387729029505293868832875703956867135680124572485822648390195291895228332639926163554501284901190193016146553066626699777844111171076558925531427600217302085530672467155040614849410691111178767877841559843678930925468935671992352788149479991905176715388668843917616056667921912876124734826912223678137254892635179357668148514478562803834477706871985365224551817048522534576215937454470772173866649179599138207753613544139452526228591010949241282392276513940580762547833720173400945108840065801735436564516469593056434202424461011141221572280652924903362065658102656782381262825000592840307511794213768147285431619177514818006374051596893470934339203590234522837159338851359737107765933132025172660118225249181965464917052925035472779473063016176167797221452271884438731311659032250626638819651935538740618094773047574087043377741172233670845945837960646213383361332471534400164641063506981905539399551066442863169838329498545769405632293964041340658879830897607264399411567615164438560839175901570213650555906224988683167599005087251101111429396241049492762078430119609382123502508198536115766722547900612025677975231303469409225023132505311112271679296892820319330680875903635230030452162171032108220092262222799748267752411429138908579321789105829285912158757143698899445762320991452112191956689386806227682757731172369832407450320475447558670972331719856328400477633519258044262546495801769559434219462842122205256859097402728050958221854213782312931785163155510062168298020547228060483075943175289820876125801959961206610465796554920595735044829656350879364128318153324176264596010882747564791630450438373726020409690766699534206267112741143166055807505979000446972814754173318418657812778806878684588763594523409847201309109574480859656485456308487015191413301314008202651489453471170019411081566421797746297778468895605485169197520382936521913564056849883815122360540106630671894931904448843799664686746053115741522224337651218190357775617837592332252670582674587522870479851086375167646716340742411959088312161806313221705564604630427827928850264334549938821917735834664137926369651840505553411629960886994175814820896964265738475838306206604065000414482637640055639184692124621701266914231115027562375546833444942266718608831871524731556297648108993085555101264158509524095071107665413388458953178871476507123637644233694644022655512396059603841543609528326558484753990071627026999583922366784474689908049847151957357754406296523493600859927285500659274601813334889505388348066705673392716065637668272466834584411544110381181516004998862445638181816841982618733981979500726201021268635795508065077004894721919651673300444738841982845983750413603975630803065906612829247390866799425452070632430266671583292681583908507110922461542638858961101495788257734571455250167184515867650960948993511200069600657436931993975464579446513418979548722313505951464892065616402396171045466550879344131072162845321503532511965656819133884426759580299382512083400506616591513970208101121450116693088778839478905899464370582655268779110407825224062613060317962652989776191229839664110964245700157981906803612916753906963534044238830140170838709602246651543505364182875698154616259425214853692041182838614915292014227981358060450519303169144493214504806550438928832158225419234288040369261921006777644925730903686439679498121135616780407351699880389589106771381747316015721089182317487850649469637034885345354151534680006352584221068416416859574294163813704809875454648351914271233455773125053977153784486570411845978661135676234684173180582873333380389834422681547778515476236146182209096459440452160576365562407217247070864399033146288479094987986347292376862235530560565527669753978289175259800844522399897367297039918179784260626330572516527776052929093008784280855639580729497707649869387121266248021760878845004837805162881079867447067324825857658463020183868083922156011703171059776251277576859000345671261752850302076400167523872508536324415507755396941641857070678536793952193658383798788910716869426203087916022049814935148405868079310643977261239114101075152192542329753954182117215974912850901442133372693315145316068403134188180683013757267340610282303625613302214638759502184536341772034906793315974272051581225056361238671773946874502475535022924661334314117785455585352306805134202304951141576095788734099410322759460721819047962428774618062174657057836604117091072462367035508283798183931084662979208436443937359124659952966011327581403065229582731145178969651714997911024890079238337866807281595675687758945342081537478687556610255011455856418496411947475952706522605133878456896752000085889174299212934065967896047203233154366014026598408794303941863715493088206571857963488786134401173728800433656299989746385962786648957402203178303320614647232281589308299131981040536330679473305942966092740100795648957097649565160509131476030331399388180754811254738266763785094759913312523042480664676418393938024854801129568182651671656203403961210662780381570491057944498705669652136229818925367811251465986390407787849260712447944096315227852773962626710268468392692810119601282040836562235605793213300146416263306685165799998575387652430774963912945955415172394782808441052186391360188295677478222642690308951823923897475486858501060447714707240316306203303784804908944490510908534581215842489724070103151828651067013795075313278731220699367098149427245185687952084987808213482494512700732539836298585873199838797086359244191640854916708144796484204132429163488286942642229467044642261100956423659489679552360507806967899862582851269772607624356156324905236332558707860702319171811458257362213964444147796760692986618774984452992118042702642127930161813736859903332684186350466505003669652065773750257413381030635920682300109123214218601613478741445671616123390770923025279741839940205983714769742204131796088735217343603590028728898556377729391857041080730789173636812107844490192504913140128703957628333670609531346036886564055829270932815360113518689062204314364886317578615808192699006418283319677079318212362744775513186636082230634395665173663469924335155745501792286871368641617663686264199819260880242831838758924773235839444160704677708082991618477521582104429672146576567605772374870367351373821019398461794672938412040902995125604750054087118267150631838004516777400435406561008736492315277814617828459807780756383599670581109477613972536485455178948457441795444497334812170954766344273934705772212668665837744584740817322925086949596883955642357722243161515273195036857614398797616772248344178212699050736008859308979033790836959196752354291660708470773271355694014215851996183231187828198091687382264209381239560240985581692883647570571548182082908196015579096622469584317595949231914253371883534340539099219160277629472386725460241368292017559972851699876615254137812267713400554781549275796466885373635016806985513087490630535537772952574405933069654630027130576327187070865722427525526128020662973436898714705065467641411713924988849221770426090437911128885502166850955974980918344112132358612589563456301475342483889479632097234088640432877529355973868322587074955774232270526142827233516419227120493630512164567106409236019471675274183829734444986668800370854026900923060049241515287352678387514135925561808695034881177051155626769198538700151408392864904510213739433664917975943086788481378600726261831005382033536131132717956565748394426324093822264032094411821883661184128481842244083521317286080572971165162555938183504637904430261778218989030553176292744038592189511003123984181778963301610816044409880193935736090615566663841144003472561312118687276936596297370059709350831707918282565256672617829033542904253821107911221687244040369204364304942959152005654497290766258839763615340600891331444741980783330573477820892568725713176927823669833999902100562534073646803762962624236097892747877275775464507233443717121696410846974067788867813116939852958790195424655645315746444458806816897838558533205017600266636905360806808797194902536899341766761729266458550539436405007189825319715434327215129233488272901676174620344129930035779500777820305583966612334029433200892405193992540124640661972945542402105799749321132087886243280782836499847998715005236499985852995146323761195299747529960779109005637458024742307770654466652888721365834617833633680191835848855765154299766117344313433912011707574828849914524569243145636913921229651798717201975306951230743127794226693463923237296023853878878284585363368329904973907656039319685698625512438393238270133401275864106062222157962656844753351160979013015459651816188162894714909879165968955118560242119748115598881005245126221534584749524525289062750946243926132552877952547604742921698419781183391473924773396395871820828310370521618788067724417676168528410161140516486311862374577543664629718900771931726552818895384431722140060284287089677388333923062516047316414994060531557586029818562237626208552873531173480499025235807416091785902676892328165221189828785948594200709468646235479964732267279227637679712976234538569798738080713826622412085308291897827934062901365864443168908017754226281306863090552711485247421935983816422811236021170622985362474200064042783168107236211096166508624923637006512990765754164598115759603524769956027342452087307033663817170539978461497388186670535422497276875820940230638789178171670268621222972249136673738083535240860989344132335315409655564111580527617630032327995176025756161269657925163887394099767497594587182665893253276065232788505203665666329949531839894115110144632609402319804226389033828465887336452542610055083639853386809618852209714037905999913882271625504960564939763156180029495066191393527376758323362768814107843217494660816352870205816716508868454267006671064692788709586259349547856156101664749597948446937062437051714824646099408968917639329507357859172726216139862953207947296973349025220217811303209470351838414756219404074687546104498701631008943127536416095654001814226768201490392711741892320980052738364857792606517979701477884201493193202396436252124203896211628751066252720414393856584537123393387561510049294384409530574291932798900351201288667212306354518374743187619335512717595975399556192870688377656389291715204501637789782318753876830448568828244340313438771156675084538446425166259293866508386741935652839060880442165355012143485911881571017825259257924962861369247522224959738276285105196345875339909210047105318535624826632526829582159607062299049544126716732598479648834007424073039650725795682970775016796511571273751797037256387986211628376471366386993816393259169906542546689751101183908381737570967785091266214871184401810992556865926808443356621081106934461402127592178226790839647711177831341836814257843885570555934492671253205126719398211714742069465688338123865553575707826714346896959795179399265394532624940435060604862110129251170950669129139364044249257932301683342258192149022682750373641716058305040542038637238956833401352814944641464339224220170803857676051033779115251463515560727287380038144041177098288893095795041902358171116727331821314113793961397751202610749666847030427953574166063415594703082825701970899560728627662279169632892770166695228481477945830510026545049762804705361327765497251327857680757316801857937158162156499435005399517216025196926155021918263464776125833594850737523810115484214575880616287248054709695827864425574510668123900141882418314842337066673584549828478579702438105642846680766651745501285963434068830593803198572986857561120595448350423145253483186947938830399880132094779957164728508855194458839309416978612760713761771409715464528478941346918357858043164269286190374473610288635369736818562525504414063087602345181646773053609928249484354498904596655219905508847224604315431809127978300199386084976584313625486321363707698626190460055336525634341113418354728468013887442386719690879130067144787010412546982800415413574314722372394035241574714490707326938289786176508472538892766945389875006235686399700132942898978698994552645168113448619487486623241035065122105446718752125940904040653094755742702385688966582702270224459603148437271249621857511177469496025890531298134737302339357985243308119795576115890619086923383870574817716170876699911533468887934082113808910929152608188824603594116114556422455058426020286643522888850650855201187770350896031771374339824479954333930174045279887604497334941676938231796688497406871469934168774279540442161446149034448173530404669239111475835381451997321689487938321021691662240516676395097258691485353963005070585420254960104330626157752939826187327725960698272262759350594827234805104282026276500260509811968324897262466597108103282943265349505872583723455169971074796660313069039962457391042827522633814274582926135660177999426586491969589625718808153149949019568525405678504766753703106947033553582895568665738476264149059265764333246215275007974271432202694329568935493968334892082969200430637018864960376761275549491185817557043986203459660411965683465973799051262553711390971633805207822883577751687029699611895857498390046787306569850121681526741114035102311098223471357853105511702250290166131996555476400368130349138047806633186477542308100148383593644443156297436053090412723096870779024683437912309355650979025642628890069693448854130729376708532533709836938012122776892712257314551698712248739076022686931786463542949169374948264734931663479413640842836472071623784271233604549904817449033902758948674774218234770503187785333248017544649653622083874128359924017675007110488881626795253551713175521535934345059142259203131489843219838786144826839434667164338721847738127973059523755006803115135016290011587507843106708290623516122556945628344339779452258943057280368596178873413807561142655363072263567474454362949269561280826062571579186910001658277123091546638285423058120475462409823125077608431129423970246117071152038007514970788993798499497842769431513607284573102584108296847775888790253838723087527131881392199802812029116692970678778311217130912825434197218731172939548922185972057320522804311994188652346250499751571814828137941275749042993605535194696106822137646184895205764820044601158835428089135252017928014553255462662448064787707204920439045534320955276978562992830117447225961026563625058977619013946963287368315739165111328673346272531606784440086601234899211727668917592540711575092471128736153943874609504594964429731576502124748302570550277719096120158268913146114036334085078180350173116554491595932217630519748230332305904364062367257191606897265656906146333745569782481965676551063430446149487520183829387180038457204588973873454197981327525910088934931396478611213763680177971386013883683691807797668767679829693976722496452374979833750342662774962881715051583787656504086856662708457492075951047559815364457767197492680631953693014921261382420573028726823074105023321121753552110199133660972655096640420735498109051858503405278249175395757719974432353000937377219493020877451277424623194459060789784019527957871355891948746252794037794895413193596589754254930175877702753606302652403596236502914128335827562149903737558260796622585296369197996802186492306483656482200564593595409374774071351438870754343485417559920058142296991772669973400315388117049207846440319347980456816116678357081484378667447232221801073771585946328084084858667581687263894081300612208834896413770621622285916916717766534399211864537838520069653984685214716997596043152553114401547301503238276028757464619562093043913247849334145497388297523089153586607969852119156621699908906857291740488388000666864423166392813168986742341786951826884805678499757498658676876761026958648787952745926716244923504841615644146625260783201188012097493487140167916176061656859259778505795773581408679150848232261075927825990296379871217376964180764836902645213036063542583169513926524777083810952890878974664916161065891578809001358518667882797049429357499805623193164043274051164052687042639105373227998161125826602820139988630073496012896097074710903925985705174410010643702654214740043920034428750639865299243105459885324182039624268398645885799748363025878485598005055127698977424775717658016050830516707421982758949380411162554879549554072111790163188537196380629325181956291002160567514274690435210845031233703164614888361494486820716472873034489666373665892427027938000832445488533409865128600842659513680703906248211337197458353998228295046321316977617168623426820620042969307511907494429094655493290356082416238595136779287160517043498169274136909582425264363664279579445831933615846617814442993637645336725994940767086598465754462513634212617554479066111149115532775915350268234226925241535807533297543160511346034544406364980862698745623249572785394381316923317001485711186182927231479397239375878134032414187214703539503045816007925350706510767454193025918565883897981440272387999004547084956162652585778383088558670084488719593449664787219383005639011355186167002057642710259466421863199522102109226630258355588433352673273150189199179260690230872683242201279755325973893449980967360254552068106557797745388829051151828005047799830029294425640834462779601670914073013605021376251376557319165012845019049637114452267141492233337509192455522126464521305333208686386340829893644385920900368958443161256186571298546010108248408964501347154067798239355671853499557444116662048938555597548092253844012383481939862451194267401434464437494549776007807256987520461147816046100078537101367953696293617838734843454222788429326962788631253684399272734031940220154470821694898812532789285719349145744022269201991856863489615308470274865943837341663662610513493511221735850059196446805968983093630598549797147894761152455261361076069144256667484952139685018919698719464533376096972214304774952337388452571503098228798950284377139169400960016067039254459388316895441420494431586241864981424146204789516679476627791099094102616032671374723656063280817223768949875690779571556664293311561866945716083562159813800891666252007058109426580180464997930327459098494541576992916149094591301787988658274403257985983750641144160039469928947630938637879795406230828417344446163317565235991543544090837427770033575949167035676799805237608471166316965629884538089074452332260525542188902649511185834665195790833417444840035231518930395654509465954505968732156781936423721157583247676125815396909017363842862871302446190905821777661565684815587903617684448121343271657767408754558877689099659793312716026932089042054424563573138379280979826147094597932763983729710476291216064484366863037707760231977689999894555222363420187634002756452404131191349887099068410330973717593306964222080172361017773212480139223980924643122581880159464591205009367801552379729557648970798473039668670009358823077052159222291973776018276333243679855886422564437868654079683431277506297266617145752838442718768801470363221918089051416806023096289386375841831128866346431684105074356449010679569465591352412646861473315509666015990527943042376624904236064319320390013794845157058999029092062677714804361268977957169237026063746896034169331032248900668127559923201549067934116823260629747872901521926846938542844140613730489553894425515945573927638568526632439137031196238199898031045719878518063060732415978280431070106797732575890980346334773526072867657073200133446488744201741773669316574201727459503517423677471945601908562099284916453322890479911532288179209531975231257563184221852389842607230506113025502796560297479837145571982005039218073899549869200616150996670116317334235152501036793015447324207522879255352806250438196882951828815230038990323820134108757024978501343698007555870945041323175099872185427964042792927499230852536754761228868508794294744167767865339363622843849018060324862930348084806352320435889429993018867689292066370311476639389162433892155197569771713692459524207238901877648591870450557658122625110858680105019263485233652559069836859766557799435955209995832144955390808656176996029849685597263234091634174432968212278879975221929341718008340836325778219590127668123002026574991261073124386811556135122030987531807086407898490172420192981744588600418277675986997091294504097169358908229977765492424931033706312982909203698945353074946405220860197976896810396077720669973587915753054841265817215176283466586228991773964077760613776642492211744456999092623509093446589687500196413919817877481424854420705673657269916881733950804023368516604415421574891503495407523270154730638299804372653325659575481483671261256798704635487149011687953976401416224704148506501681237242476474312161474790305387917653195334771442409627048915223147734178571274376977474647227270539911750733728318825458334617448979700443302735649102084828873577839461026040588922243687595484123366004402813789697665101661986240125412005216649565679734291776116120106619574578448864320746645141504791124608735366636257988034361942130431344797947021683699342444287400152217245024379398125136583339133713468387408915926772123125833080824540251488055457286929441137751192211775202825395867336910514107365768108055507501357621165978079709039360481832378272849675630380459074715368092810860491546723948421039776346673343026207507107337183104482115718990700623632922286459510053481390219484391775775763516857357099408408935889149492241381245909114932259350175848487584746738060516030955060551197246199388181924586170747308829685542402461177685032103499159817525816211769200935859720475036257817729567212264745024810192343411368533538318279882963022451815051974262442479078874965291909327087718511200647661408403101601028956592044099505378478102335684860895752914662836512517396717577690207657480623696157113975759070176203693657376676794205404289863457899292743786815910342358495282965723876963072026270599240150262745569841917399599179902388316227958839763387948686925238737413998505288317745385055305145712964861049003916830622340373689839772510318141381372989949649064023644157806782158971254849842838498202967825321158555308621398352544348437199560913751898251707523386601218155454264401333628150578311936252546545142147584643998449410084033811938990776263246574240033836108778692018921314582540650258781182162302916935633667391849792314156860336842240887029762489423869350183943858212678145532030994103703899323561715844627270830185378112274717027000498126006173531023227258809865926430872186968267984588533467598172600027568595246708432124539154831223072453656463571472104434798961622729789274922934249460532658151815835745563376110891188610768617176441017132230462328792148836903787532522050961217508233010875794954133035648671648591702168351488618923307405596719999011158915694470414998972993378606552661829097125870905230746407579947140812614238487425943428033837202384386256818959029533627007076051006090097767472567450693454745679855144674307620610780315358809507579846068133164526613477164278398302970453399278352453729168784312184081239521141386285504080624683333239224285679747035421995702858448352245898435962145801132848329981906065616653038917529851945003237985792656441063002603839882593584394948639140073521860794047457895391584541360475991604961575275113321514102318840781289619942926281037789106021791292622360240886759323969384768004004461600490051006709199635262927711204911525886050248428727195278950487357832401784763547159943034023397504186017299126457107315033995816743475200880429977592990712357138768043125359940035768141516457807379406667245662143346055876453343062413219439052294246325541685355207017334144676447792993819057196430925860417183902230552842661072490368376519301953403149726481573491986587565358228161970762929684198220497028541136187011006372704597930532665203868673169405549673752400258398809723773205402598265899236763517311481965340441505621338084784372870798357108426158744173552968909719636079195432526134777023770387760103637388919771610602274132282424263931796106255086542849131272392788707144582378399461958580702575950569212362622284312849075744171907850438565950479203986883408093482598284693868013009168862258647823511443963452766295704254403354700425714997754930071637505324855376117359963847176286142782744661428654348049097154817960659972690555946602629586650108828787293372901861826952825252649636759200187306758269051376899855145507013796820987927673570694557561724888609083011031708333340178120757953877906246971292484731614539257131450799187627984298142669219135981711683439337341714258062413159170036763372438228808952301924075649188653251236143500466466050060951166393276099618743132439049640791162445752148387442708463600779856855691645700101371849597297868880548995587946420787939117730132434205945423901828667809712264848249611702050746944132913964061711142403265396220308714549988855374790299834330607036105176807892917831971597009105442944828335411312407626389180405058345629260198321818542454626803641410566697693171913893036664522957955152642615868223978696119843922663498981152523467131423806216692623443688746394607898680740775451784027917356894622722562232288578778371557624895559584144783850285259622888482574497191033071423436266512152966184397149208676863731259607959776423783224063597155049393164104209548855940158239433811466173738739168163913318943203978477851887155373548464474242970547908367011015574293119648730215500076616690875077347062140572903066811413040572978879247239089152187344286117783466988421174366262698930538889832880990412686828806415613576605835304883863381310937340759946303413801433308669364794659310870017252426405857320628139824517347251677665488887093239013409560951335063124139319685284966975117511691631456296763763115046018613554147345232180839326643552202692404645465847105851904228740499974800869292567133536553855598136607080681426552701427451369404877504682032078607102135787657954794212378164605706250707444170722109686270666689965393183155645031374578529132791399583271598499265076606895650715678101240415182035986875449678488360225541831176928459562213920494986706414546827479273673464527535469987200979493945082161403889127623320967686603923671612038335569914010541088227042606095952483386485720188258659295294807768333739568965497513691166471238135327154560631897598858169573682826747193657392445323511167409566067946176174849301793618140973536493726724844992482749936985772678125026509169496103403386554682993531181475160478403534722838430384321690218084060752662593738663938531715761832508262251534544859042460184649460407524423397074076304010687893880201619587465828580665422856374162458237167636572787023917810254734765457044100865717676568603439215911388982309191271301789362466896654501714121900781864015357692878026926675477021565736994253646019480044174127322324603700376181330130597701296265350969981702788096323292773262125555617378182327867925641312519318536846581561144580626004188094852495661607876239330444890858567411081345385544820566313014604949997491102583998866854023044491167960655619125430112639118759183045403772269058558954111499281586809295810306900342789314934174231251354353034879183943177723816543817942245875939559496633107619930665466457959986090847212358895499090358675224967018813768877133987297743503001507777848982163583220165850576861338568497452431283540489890729611067404891365501565796852363797781556785990509530856261545622023699754268146924783247015468501446118570307296949377953323861612999664891337233438893014733822647407293710385775825963225148943142107410649834781528133854397453622377270264031176703794692787041990314421893571075730087381980937307300241424095832531612275537069783218181515622557071893615868638882072829127325852291795947980628787140030464419798256637734935937227545741716283484940217243743782416993388844251270646376321770828834501821248434461521382488489727438995452763606643722049838038538042259780950732368585696106476546908665032230968102105537258315748300596949860802366704426584379908055911215671780035340656091423833731472977122239942177259222317950288937185797130557012209432849777379525257235958501457106526025545727376758426394050574367165220435742663470968319728524508373416155884617667698596220120940893163415272037931080507297657271876287174665752779629309449296661227357776140595450508803860901427342549827178736460446296776844365654184646866842996756699458326622156861569277599298777346521719127806576130121931467539668936439473378987712679571915650367493729437094305537728032894510713820681486598346377273382054907508156206121088049860805601613852304243426547406106530816281306570672544428772957143265103405996553271483855908289995987604916839123025409902549405421733635512320361855575543947060973783358726560269717429076443350495519972952658029111673003719869456251543626470064304461460023798964533478291788720916947455208134121197172191596011810487443797021792713596683597226914868598864487207917164742999999327345961517628099860557856612943044239077599018110672413255886170753705939510679524583951289627954149680812754153234722054261855243693548878454709131677125662258288809769498210917175379854966709697060151832605658653089239996575814864306648847615646907255997338263192596031907535738417498275975224525276677792272043803594086868901138867295260767322610414048284716233982019026299893064907360737844098193969221109392200961123994568803974298223821711424169877854467503736909517506687021701777562644120632277623010117185392461098556479769708013884143982606665160440824367875161323185926252587050483930107311907856522180957813017260824136994176601828139517865309599571096100032192499656323006458978216375029884964783545643519984341023323295483552980090987677870578229858436917562219100316384994941161687102885280427542581852865860807274123283184017780561724726076129217735960754247237136072998281327474749150091633570427557562355516621935462255745182421579200670400020231088860592064241978109657612232536489570952304435788141778990560189735846232840220455139022537583520835154481709558756630883364101632996484063437200634883314960945460077117665266188583753633716271660698051364575242393094284930262661540303298039815766777008710550874991015258499397822671009716720203014599598546220788105690365544966451445043187606062390935458804477392842866788930607737789078447432672654694388248834624737080488571810818279452099104343608098155969972265657595294060184124763023516277397564879188101804567877917566353612700596512560132278652173075750131573118141918363092531523230260348499083475080313684091866512011492023642517079996586920414408911713143143313818559137485609245587859241620368313302395335576457024521916037834564059759024965449446452842450243538511627436126666501244771799559178153946493007367716864649935885911533012618612491738963792104793286962591928795852697724070219592943155532362057914494053147221606862968110834921136781566884012564830466089766023903842489477439568926091031663037788603982325300105227286806504989836738789829589877908190343060189145261711520745579043466196305226410061506997775649238539835639284952605621282557212978210005554616263634981052150424091861611155451381749409346506103786439953576131460460154356488704227571328469483799141372360374248990103558342093397506753289864340718133774859734935946759152828607589941664706950335057862393355482776994883709859846964129779624094404787229486723567967068920268689605754770997015210924755719591129226455572921622303045675838586923706908575821147310724106449645751675433270534201836374065556744258482963593036279174758904012731735651889350369872514284899344483833186058569414915718543713057774452548933684225412792915142484825837656261984744805388797517228257536053970927342094579649503707569544352491471507100497348640933131935695188748470485856280097556550669437892833243088048188430752686071159707245248465927762304688498194722991715198526828583382638885993101298672107003794780436942877650026016046109032704028856293254920269907219046670304989264214167100696027957617861851740508108222816286137779671711737061474969054894853313540819359881313558788054372710909126919616384092969958371932785643753497188038930123016191175845312737118441320783095345075197399219002542893130471050872404156950568188903850017706160970965715655413741523315305663017162180062883436909492162995718307352324281624007107206224545567690156098378845505130768700745700017442871303765036944686992131675932542545941338438266672210154180116920823531564492821052269682995307447577637385210464951104993857834674147454452476160559639858248971607742248039938743099346163721420824527970955221034454243529738919831076640882249508279526539267452048313810442842165307379424386335956840733494789140213281725664506740663140818537834984653172836123063498617728589544828337765415102888296340591435229973671522063708088820664898674301766404104366827768481243610736685082052049328773847780578280214932477238411615139173766484923568941550128704144033682827430918575309012801983611840467971777783838258928781094035651882087155708785331741931261986208967680466548901991162686346042050479842330935888810541305239586853486111400817997705833059775239668416801914340043644715058634996877002962087940887067627195725428715118070083431675432162590093123911481298509867431380746792421659740627798082636518815359104718542621226263798066582212442382448442298926724074986024917791819291333610786354824008379571096651543660445820793315100036966513792725476465169223809619578797222566234956329139653089753795181238642861821769325986115163226068008830304424945876427761292695981094728087712070424657392279855777322122115962333213626920802770322227280215209213813575304215174084213281539116460481949121676991766122202416038769689643281057459422922689899094765251399380234654472286347635766339039986985730313154126337015535006583644820961719777181874986881894816687875809218511102576297541394078202274352319639999145413504536744293206246662581236404531265291082701071822573034510747368641680371088855633038691027950326258891460960838753547604429094833440065993063838125985416947973771159581270559367624914926004403498783386134720146108239084038650933097831854250477161615426479318779730886544142426827702795597014975667368581196977767547659840923530947317652106695887574858375442283311724613253729922393443967138187131061988754399763329031104656350064355077410293339419466135160525483040808976228421356581614346437107204530156007736219455317002583728966477215663911947088016278587659133308788342519040750364604891172819046013220126045356619774637589756111640760616294763506983428831620938481844227654492911543919922034310068638276122209798268905338843801540561949803545043292215706232489349661168302843430914243844307451993946055055329965315148458891117701880441859904562165722900331514698641322161160380197051998615650988075757316910841326833612432138629593721287272789789484871989980898033995347887309716109802352380581373951776261024961805263148880115239223674826658365482896633851801018480967122824949745135038479393637146066327881842246631831371516389275695672837458781505118103077904178325691181663436887428857517305510391409765026390087007001223053962152340925333610212836467110634831839766100280723198102698717876518245007460544618280950523458900726000762059924822988681937888090913446642033169684795379155652484237271852441658894586385121478032028436176647262207499325339695106385102614544828577286411262112418880163929318139496311416409722054935618169702056743574727838996081619671482359085217674300244742506151225904964094319553797782142305565230865231614073761649395163496958699846355023171795708721186617624235404681097199946871114152946189296746547757886732797333593903087572923106518588764052699956103601836771940116300392779637039685163246366603646745390580495464310651428061297375289739977985623657982056462238902993783960533519260032780638449566661507530060149303270509751454689209997749755256668763267187766371849833869989267217989305061396248033240959555702516173761328894681950032054048523734298008943586346197063552903791748625813571168061079661599048585071232918817790777074886944320341503895961513556428550159492806206128638584169409461837348275668871401724325044756729099456178500667301976609090266890933998428289196397292672630095358802490754584196530839788731477798995944261046075386002752174377349026100571803888177292183493131963000251743750648839660401280432142581417340403129008136889666477892229227529499741893125048622218603990397111685358366341833051450944800395149746944090019922290395400643993579087125126365791507451009584101021430800303472995042022423357632553586380854283319721632274686914390537475205100893343158915261535268251334047724525004956868323094369028196379417043530843975450654018374089582463267388873868705363219609768021211991423528625476362517930351306280638704753597232620723709966814533658163232406403074645838899371094787185052886320928937751692915226823550410390056572524720580375933754763167503233379610166526867515542208338669360616374125042040591865892185439888614150579202534668979033969303989783357848623013690306360958047096617061986791958237039677656911663902842371200366176003126047292447134557169013289617765499330189404013149272671936080424431948917573598529015667791081396508602664315646836393675405566625997270266155128045874665702062761283282049693913560427120657067907221821151884979931440697789635288449218045337386670916159673208814377143082017729164425396406450104754273246386050916640019396924622155324610360760772784252272531203688881423473087892861416315049726367712714475147687442841074078751419557966251316704805269657294841818177820474695675952008863417583659595484240495579133591111193370628505636270350663261715774848641262745650044617099474707296000057078045632007756563064645902444472676262014871700450334853163874699066248297369410019191579299241628975491401865447114561071742264980811809957269668627766169595154698078953570861662546962627373752179246856832844712949383895180490841691108329670213869626682290759478778036743356810658380268528742077301315821602417186561157223181280068955307668434642877967250259738035445465548928394112818172589130342487063647767381800269857146311677956164216022379648957781630884130104088713920224178788336124865318327388423449544669261209179894121705371880559824261719795742944129038190762903106877227071991287924344605584472772037680328614188472141430929397883602082282563610458783310506079526636439705481551258781722481271315376383690617682527749943423087364917775647479498557386798661990082182755639312690791699755149533226510581076645992490763051430987711967942589500061339172716533804955863954353383494373854297761680717296588228289265143359072542044862653892639125112129097561848923954630911172420399825177804410530318623395986984533982712379633580441216801475873716157934278592113102381985521292347186453040962205076283699068824198984231384919336584238203037014564273996699566778364048251694021295016202645547926519534505382748858987731812729103425946014213941770121140269324962239002765118069424983604987522410212948907404926682052093051332225943096008492722943986497140377967508855505143593172975052582939003263748950941258219685248422918905267288478928609807289097583183396423260771711501053496837540303063961921883867249960955405771242780597671994496153094130897210201007438728329989100713881208461165200823824377773680038942852839270928790186757557875166597981441117670429906209946011850062063400987152451128879721699811545636857257035496084516046248556871931126204428315884095050006626322544642619481138601990739235693210661963851951056838861352910984067092547297225574294959992578447042594671909968411500794765364713402304783464984195373991842816969479158847369276361288217229747585926043510432509233964924676358721848219125469063769173740472175318995209133141958221350392499804181925725875911270804917531583857026665418457658253089358948302608759094535596259131840832207858092371186040121295448721547372948278909569646750924802237974758037730891472392887640652621286210163829575296736951762896963864839664832812572531062348075920776065757335979541739358551273491540431046486001364556998031067071641787313170549038048877076269895630420754028650737674255442173902497761407410988591950167819671794661095742524088948790923198904167185196633540290167125406595536532093610717112312884964404569951204321269442170372567234452720273583289380968189415177260169743907602843804077828386129987440349147381297662472040287623494485731271048079614665643030854058785973439957552785563594551107083872383499596778954676320944173223945001373197800430738036509611636064764599536833531521158443562185338352903283158733949244349059748727682047776249156346371489194760361234525553679139520822620149463193556967675791318340981750319348417758812553638634739662101139012464899690360453920377946717954099939843037231355678601379321238998753839688699277813406313405395623857932644272986217698988280667799883666680045922405244605959472978116603940290438428376835321493092910463048025483045798291762586526329384893243597201464226879258876132962955589474598859732034544753913394361763173631746494487449936004556831499358891653470835279283175885890829008103957469742725126073745989393389612565502708757419301036127480715495100098399098109101953717546854558176625560171489661550083131399920001798740264272986435346320674990558799689127324796649191609100815558507394667171095363941947200711766860321333418916423252294558811674483080098854387951890992069443736342720263010628548148543254413580986038143196405606810825776412648123975589254011278431382877341004815043181272828030128078430874756976550082130514753241336964470303820868363605154507692533250839290014729657377021476416843918738508776384388475431556468878955138744615553784445728408694775398543079530688577119755362894759766992273639969616379914972613017491382915266319691189156456444827459986922249890463927806448567389116217630661067145000877779816015699488219674120677086452662486023066459944205723382764696114489020362098602182595968719657621386585765530445154738772005816514447828900339933908393227136146134778500215686902399308586225157186388407243757148631456665673668975146858183321761706133916919785587048961598995118383344763617408465059378174316539498542531319301290194217008608158251880700060675269737384396286166102657274982217485902172407399219916478694134790542130189832612696718960068829934724352748949710564762389354218288304883309966753355252056542193281911117287683789232063908896397231628399049538457862542114502784021613386116950262751144377006736013314921717450415249314691593439683567485463092217455198625273462219471801318192868446201093689613473688682994360294241002863850541169809462301070628213368853103436269007840901408386910213612183326273687505783076876608545522440021165946279760214850471497580907616165949501270534418168908181874520428441096796223019811920308343744661621900023993469383773168557651406885600968301446030278186885226280995221237917887379786095928632934785927253179688266896316441062136891070998486095391116119049481269266227357161261926916392453449599153976269413223556177010810994688193005875598091122953136539052394312258020876416526094367702866385180669800479725352103905263105423530017836674676711903867827346284043003934488707705748960306190302016740835453688776618652877118144679763692949713140193671945252544053768689631892827380705791882501710181933543714228025997712031072102068817487494147342363089228959131254478231294390269888064836018969055724583179818039450357859200071029878155975160508931572431502649529833769139704881768559729783017540945837517604744424309420046379793577356802577170162791857872977521348648245752949946840586757258431596561363859460036231594299262109556404505016640821278900374552595252652075681058538938932094676451493901813603128492743364645885162777614513443399303522648579532424672723744037259291518056608113458317680263688894798179396775152690572646156674903871126514203910437668757726297265537075947773526424318777222744631794523973668741133275326030904053610689828975146196780629331743696694298539017226263678629400501123737850898159426995103740859035132364817278894250672848931578692505668251371368013851790708848583420650945842821905901421254734486894495691386367443432123382124805278197979064003271174511084161246583955460089897918206799735768331488871193613340601223965346078856940602968308396926554686488236319999808258699021338611432305122727041081541199385351769797065049578116947111463034327208572137974395349775630834893019041650171854183755758300936716884819425255706816012575537453800085396739005509201584044037245780427567473989678214531714725176980388832217301693168374442635247133583282873547677799654940642487925222892423801338714292556956204352045706351318430482030842910439482371168932512317733040930527560961298872216119451420475719310826448590758185039690177346642268770530274925308148598809780012584021664074613376483209796810889778324608123376907530110295181163588187190378095099025049281468713941852336156473407065155434280184344918590362674632070917880311479542233270412724187323916346076934802907698089934310929842825490936543394863672500655407187191905190303305648619198941810857947585688603341060757319863595150134544523879707258384985051123398921799006926975798129698963896940387599513703260940972229073549927970882948194460730629748412091567862512042503549856446895238072038232851320445659548911590512865746926755871482515356564723158694538629967763044228362514484963412988837509767906628836664380291097456042772496840294344635718779098030958767823517578611787832603658403357897465416225326743006100829078714321453268038820289877007924976665632462967442461303045718855527228778583808355414509388366217595103212001526784091064966817393685711773915848882287712170835208976309489567298816903984675659184379379968713180761174827937781481724094107429048885512505413159404280723379011450795227587585215418300273021999911141046145587769368637559660638733571164899649492074369344387781671454476296823736271013621908872203022052161978291437065020199735500047664038718097351568498937692771485984467662592478698518637543299062585155137208384634126198619499417477566524208665724953894046454736677727826262724292454110033420254738061894984599776726673288429793860617268446056864860644394986818525176114628140655842602975768717456107349622468824024473620407213678336275087427875607942752464736814716349343618551523696315860649205920864002999778118323449010200510174296397733579983499602640895280735500467649577496173710930598683469071972482977302084032283664690606372715165500097983161221265522662618193524839162825300734748125722502863511506411635702290151116325028695637755211985985033196706432359767901369532617036384595993633126160398220170956185258792551990545669583227870262109859022868203968973178618966283148646949679947763583669188922278672627624090512848938443774991485509112064550552022097309091620448786636537351056762199105877576570712409709328244376165126835675478424507236760212235476004025592783230176069557102541873646951441297150808486930403663327578416527188969138403822602685032935446728882799658133029255616041911810912130384898900565888591171776862526674310993361112509437329310278043571393795180848365857708844180979332588822398197962129432854823992720474238045027840825241217286943558313227590317095499792931476592070154013504582442330358794815715873905783160780827981606128754187651501958128118804297210521235328743482190822476367501104285915534083798388506155418884955946176712559767318533249327325888481833982704684157263380094999919109035618245593674571760107890540472535241423886110073511262116479440324221905958629325629229527897213014588067869505387177674162138547732739213213503402778679613363934014160308843040095432985047905254771894806321230577633832471838353150226471206911854258917346903204017151514011259835805234252110757937583834524497389912540494040392275306680575706984635837485465691924698054462093456411781316447395066043516467698845302197638741185733399340937528756599826854974741458867798597648081945504288478399882381828530719748061487870652116972614868144647670310356419014158678630570587650209761107143929210970098062306578194041063006674038245424502097236651078642776998219944501013994421529571721887657013130130207855526210658635457653470902401609839553853813150487074420636025551779305909882088449386629108837425983982924332201136554268501921259710694142041822686624971746055129393626059242012712429591495775092393104616631200697586820805161548151085518745587880260984212516023196395139666402163769869069838100999092059088764256811846405197261686675009297040526386995598732852834481509058898942142397111305246931626613792442841009804735483721569166641557787888408348315661830820026760640198560323970848634865448909226965897148038427045220776693131489287109550348411029350534574420906516007152113589514137087815318862475729652144969022738987448417240200617793711702252563013410037665362988716168501004480824697410033200773000949925046545509883550721579502367303854438748153319983046650918827991847396025180185468957649117133118065708941135646096432725184039884220160668990988741512208039095862336484090813363874551788627085911955081265593454082266324341908946234070756328268460228749532442107724831114805038131890050613448931022293982566489995678967683430898892111425734829898607869162116933402204564208154035263477147468683866686955538592163863276220849380740429795430496959732846192127171691598734783237889914629147284104846836255271296755259370392347531634162663386192725155409243506021076827403430791746070861648896767563566411456817902019247405376936241233508372946857275665440389446568407350983295706356950211966872337301635182288648854703591773484920501708572744682277352276930568584384358299492612877836227494693712751651152752447227641035039684617353616320713326591611462453324243740977784521754019521736502365978190530795381276038095892628445216855740150822711552217171337215810531361571663488916331183237787465369266032376510643700339401845707938073379848528661554581695496865770353930855041083050578232337762989642564634955162890911509118026715735134674424857809780478152077365927063448013972003927624035253597079930622171313731388866407930027689197443322482671665004655874712975660774051136217125278103079692658102349085575046163233451747231624138639329393872322408508285435465251097059658008395016489754172868010194898430592855764850966770117776602436462658216366963566349449687886314332045656789677844760106918909303996377406235942035223541486989965634694720401045903023822491558825369005923438966515623063347430164585166673518284466225069284637721708925606988317500388721211124654309786146658227037552845044487239193493598201305056586014270032517242638278055353493216492407431385790914629328418537500717728517379768929774928592589250545529467863342343646705063967901287836145886581296830713727416662615382732896186945810586160481397430267001864432813482989395185712879318795380499987776137191785666454546177480080348055389550433375280778546610327190156737268411846309772883075350716376720580349703803133154600690151189130601457689791178361199359300282350293396339627198815783413764328948478041775943124364755772868920629985814039292060426276012049998993672191915730201716223476178607351884316263229163952090075756786770317983099246188013101083806952727907671523202140605990404562398069193456144537951488903259517331636455646457939319837864082991088136203278867770114240577546183259892965906125251745390604828801754779226589423984015257407546135496331801428486159155785282387367226940029154121576948630535243920067956154601570125616656674943466601121057993391786261042438178284778008764340424961428398843339673293042167423535937373382461029223017051772919996217933948123461956818905102472385790935728949168124378241972430037515194854393858879053462665606027679055891010373317029853805533917534199452340952299659843184307536375409528895656459339284483621358081116884049325078489382272192595511266527613868195794028766614345009399297036234838962551168655910669967136204637824955607664956982406589513815543237377508650549758423728610428777249537325337561566034511580697689230070270109417330729374668456690708595594558716334904764154904181710064124260746472183862631994609866813027677683755163888475951104337093211365721923551217974788470801522319976604760425711734835338845118921600754933259966715440112035308814224458826165476703835631537987608531364780117434185354656999194266611373754962107432740655081732206957806796068886228828067511405665971385186778949622035506387541831082013609758378648421388255525191747356549516292041761017990496258852041527832305688122926650247867434876402232732698816348170291185859588212045743860260889078836204245112681794771466849877612437335577525247528399811112055156301734059568972401887849738538706802277588100214660935458724461292951059179537305172552879803466702469295713639536777202033332187300557151586090481548176401833022336838856303949841970911240782331016773120414722309463307947495528592615877743046522121492234461715194513136384225165930672182970217753430965207002380788565794692327071389930648823443512126539582067995789766276544921811123368915568877477637580026084430668182837580552868733575359343267814793103256370995621048780814756126416917843921086019480511015569419229590334675949082201021337632043432376876282627153673552004501697121728877323847794560028960022634899188375168848227543998753096066486997650077021358130470132036938686531890489980312370207069469015213725414685455655728786381445108371143633151793862897157698170901641086128317540805452896931219056612725859673648510122371367607369527979619102446297263106365540373199323051559388344450569189876599561952178456757621499128532811164213577263868528556172156166763364480555922689662838014225850667478361494181650023522811314335482215786696636499912203697178265578092817120104527091443854147452403783296904897895701477144318618327202555266949614096678449343193851697260213263328696600246529513089560375825302490472099413915269716620589410253317086067131311772434274040556135226678545892478982820544756319479594542741662558344759740027375325393593433086713837894866780648933001461579032628491940063206853157297997086500133211249807828302486417702162291159729109457478361346483921564459936110769877887662619466154964160757676316169766704060420045344747003765886965056511033777195571408381194877586263451010643558708258735197072331591851720502165452406537399416867778427206045801656197413225250830751907979984009132536379172791060154961724114955018889016285657141834958846061706734731437335486121106034038857588548301908646780774070747797360656136365975371410993978851911537309442533216423742081660011866129472144074689705099234017955142642214184371127973246909184702118947489147237313360206767981717635016552251463973688900296864754756013107623636264508824526786575867504134657802088062505956592826490969725339165979161097918653033671947046405159559856069705910250674327656125109783882492107808188232595183223752616801900050030766922442811065270619725892073175634233021692300081783896288985520586739302355069436849249099456549341548669798168639875819945741099061567024058094410299013009891904527896065472939640178790589856621024662624801876670336961232113527585327810130945751410443888371779796624034733069052723515971785615619114929225606037609760795933883532226445952948271326551812002700923445291791175216268042502632450923515122308759216402215333428279534481723877798151677900901489695465432629681086426224839688760156353008050557853666767956515600505715958334661832474271966149628429975135956699306704627256576796716306986507311856077624082591029111865496689710252590324146645879768362256439387180760457096666419957723574236595398317399972788371724662855407364128902262094279177035836643864920720777311562426126209177272367663415833089996655616933107960080258877620419229372442258561305504830681474921860706502298839943610842754930485300420532431454118845730191900407353787461863526112074116711183042347132307291457462553516965720559243849091661468610172778067321525795228951962713147803762028355772088959287894632224406006076917886478535516462553176804762470956795921699891022349342638276681889151480846943283694501770338446618196182150010657929192525216367725459226987371397691122509496496119485397897579480814243513375704861274914095585214932621110212477239700468778209877804355857851664280733880347471921392169491278712325994961884860210362781250283661049578801601437956699816198918951783820531259880541372441845270129994106038511982446776990737245879919149828389336235452852774395175987609922699112145407126569177214049881689555459260842017797799178808507430862285792153763497601935001895460348211696871584809127887612553643647928879017711903301255655010838767919104911914574073884545645092060209873003832030470942524213403209581109458811119450885679114992610494529889512916365758035722151937252719437433516676489219326704889872463657497454125055386833938723520317632195317324372300889061207298206654910028902631264139208104593564681187303727466055462113808039151040754921609942995039643933178795276637644554829191595956805036264431589452953309342888171750480822822595596035702443225515709083397148645572887052668712387490910936433171178238125049723541601108780652796610412745816753141558461776263203390138084291740142896705825558507132163403053062535080256077506303380525053038575885258409036406543834504525806016964134277084133221766759358012560417757233621847178384003970901491131869993872112632456134930506787130749756025972752594975883201577321996648824861437028840941776861178590296314459222960354768525678444905654151791662836399011816479620484765654661660263799840808997373964361080971748104874237312574254482818680934087857747865301008994360478932668903161508554411346733664231694199753817517567418717290747197313279021553993224908046371703552143752856992431440174065022855886720261635939498158080384125357201611877001140587166399095009597178112749036894223820656563274575113327003946743502697498596386845264181734906099336511544968463205068082973235191749130467047256263051913590686111537836213370430248889498359633107279829395630451089305729480262389556878705784951299656663109251285439227029527159889195753554256026751219861151208160918257931817975791876554371455782705003791345403340219520060657899127334172371144361255224984728997482601371313472341202729124252254489474996074524222673938762943211969663302259067161686399390482321563304300960509993502999754916579876044375163611618540760148505400718117354792477477788738827435829821223504035990481751552661995106006969700378526608766558890938692527811748801132407264776985749202909016350993708689974515793973354800100332924161530134359812539214734819779819443323825785726509557813027891292305953101392480377257517573168638991636314739186994000911429407487211295009830193066654611318435354060871952228637127831436900674144685406869949632091979488609921138996626717162336900368183924970376961995355230768464575370536076656544979896981860119354336569423908746334699769225989760527320973957144865061056200591483903815633662148102670889606511764367718793099793285027523200255268777712957710840598050554930623927804847935794160430751521615486723724111410396512932327713230055543909667512005865415892764612781117060407527018276599426410317740868318006381370326584854892070920418507027409755995970202555888813172726609738582363553187240596837548768441422148188380142867185872273942450277712613564291482299487823163070344187100869628867300466578183300148099754463397439074901745717806476893824550788635112127893691991561979396364823395840589128583892987055815748080540572285539627034337672395802166347472163420831858388183543802101392248730693406007260662137962951228835195142244434884836462888004648675817128332706758821052797830460911791507752272421558942513965320990690766635522743593152341213810234460598907162421331082677020028764611932509253935980765622013862674633808573705215569798943103781936409847325849038608796046918480951977854669981182997068608336423682273505886494388182851037804353534453810206058407639952938084604532704926116460548149001061648708440435261396855096576520582630386066568161273177857901512226721894917039100261610864808024144705556735826760015984770109806521950089750508650975073887369080711983062765503076206426490477299266408599497934845398217269097029881363923839868818809792652996012380851496492803861445406716790813067840041682251385058286170720899932257763448435546006072338962919500386381317568281539315693795816282488313617729947204813425317944868788408389860878661806389983004075811863388208874947297849633007223713156938214966900824480311955877200754923566097896140442454850330329789172764082713830350552755848513080371426857693681540490367568914170791756736860466181682440090246582430833170191431276452030360618379511536660825435847659439995258885602448514637679498665025617806620838600437039368114180453247046368761965690996363734997626109304856964359556766836321325400387945229027765707984412498889449958824269324684243595656711835107042904283562978612618594972446439739445611066012750971774439219856226112742690374817591476395850313001632328715552621564799150741150448701689663410500691280980684678714703897416298697227605643793846984981746065124086148196427988702334910818186636005354382225238632912750982918901378241523044041839583555972774415329566556425550406747280938291776472909473089557791883809306581414149196060590038549310604420998716301666854585231402535071187724091793409541467294235006957992277647538874008667033868555866391190810328518876738931317036945268694046653280065756101584523478866942847367525780889120337534259765756320281571218299212265015942020026750268006738288768470895751816168025004890477474295206375445160512425961747714088674397069241611737117436433852317693594893811021512777747529322490270349870491541077419775040340543192323516830027211036368329438792027310238281586585792034754443762448968801393904022615105447801830456612875579294166154104938774076642239799029961195348360294942036322729938915954326256898753569717640806895675533255007326955615212715574368937780333683584879781785599296889209578490792508011796974654497753825354484354528544559737429796052581419418948331727101950379574096270711487985606480979218423918632977240415571975918424859778722660578254659267046407834544944255080855926357345096014498997985319807776345761728785684084846837867769079855827088286783795035366797540939346851179631904949291452612418819489997031096561572741424245632743609969664468977411677453324375899289354532798601252921606735134786529439360256621100753981281542324379190761986374822193161369237258680345336438146852753422138430898607207223159817934133520874882029016079262297902785627472724299881541235843955095478742646541876966835056500808150254540827397416831619250182072312193374974305849426646809935399698468957996235185855001702241448160117819758745207664257373380019348835888347979461196873529910036661662035341343578685030447550769201202597866073044725756715888896656956772139978514495180488107551736798015414498018373136826334950038192293949539341752726673753457669517355704903499089285601619726673649658074077119299798343715123015136009567259494128266883001670898258318455718594270791362640926867524802110247031208871396075149161106785861401370812004118304582488580679121789764749016820618092261767625304481677814870170253398457562193585538627001493725463628911240420502143584224907372680210057790883483514864732824918020142099468075301070796201743036815756099847337820690466387931276695020388338939497738961020501839459885303691308889452990250684846660021065621445202963782755689851061076816736998080527412699081154349282539730104890269834982137279131962957905202285600401776394616286978067667623672747522643965234304762437628316609973948375400153253201783581499900549250959829821288791673377556279986843690576143697711373144717641986432350726135297010706927249401288282926859133744765521386806155377215967705470805081262300851950263047837472914402388691417544878890810937365770826335940175307200950477583112272545513755708230528320516123811527559039243626865051210628691449143398746527795628155176786461008718817559999025481598203196629010433510041530342253008419752599917523746971923914318936971449128492308742028223295932180507620385745362668198021306875062725279835323217400451364463934692934997092447260906898484066980759764050197552444227137425376422849090651922816139933579038649475668435981516082573697717668123761141090180133067922425537450769394384245682377613721139109989090798794128864603472450639940900512217638479938465959342764268950590400497672986834685115690940795482245308542040506152651418550157009767430035127474795680370538685368225106262949003426829349082997355409784165566409988380798390066711561629906237611936456224596514878527035964767986179835428128551187091695489733849099348760745625814022344971018382297655324425092643690198569011948157657524071868027877375050112642983698062742680882330480180889224708804556202254642558438713974141674261332002017260964958045744833170576173147243881610196168170432391090890153476549940923361573111505151609913868993349332619491260243623622432268194035658004835167880125415574035060088329234779039811576697147955988853396511735360841466406063836673863334147326145146555639217843338382144361243636870247481317573400714211304985242144786177705115996186654835083773784794997643390005107651384229119135921435022427372451504844014387524711681862227786559438775988295950928093102397837156999204918379724346755964231422102755587600281992442324886233034319400914962729289800919933289736984473690076056211803937369962956403531241602356340136648551049854590611936611933666793042662836602691516860116357377482282510853309637469640157167472188062034509356773535427128531583288945103544260416518259275020152609420876668393351586632634332439999082527426348670538426705112136517781726057571454923692964326892724461580713308427136689187551469637027503199448735573918200770346098660074314555581228613266872960005985538363790780174781705753241722678139215061107848589828902599427600538913708471463382613575132256100256900157708262536188599702275060343079606607786505453863383539568288051787759250750553882172090416607726644198787328256763384762400130134954718303435384467115202763818502976995248234201042208712283904324450798146351019196358443681552106608633353887621999632711567213607180401117333387895493427602745136843442496510113001177908868602132045450353564062915361712318160783685333640952719440899003118026788659109305564016964267080240967388725305728839326104912922077488197140130133338065348592020239444163060679185873438436878372759023059465103291503117119782141881541588153763498612040492119464666939572881176474599923339080803926038814783785744294638037541595361355247882051820593579372796404551159852170980755794422568692933180246804943328941459112773388702198499924759487247123906471486104557507553990558060866482588758927501684641750214941932533758940180553412224507895001829148361893769199087011842428680084398799221721827167400806553862987057409657119911525373935046038983011268073506915868608769378287249712261290303260382283966744616067637361720157005924118302005455019946186766038691683823445547916506775988419732528662520507627595690090996705982022819164770321879206139804830720685547885044042135825728632326843994924796193876249532528708585674837829227840460533724778339706925036582090287246163497654432657426254277153226188711232873297472802599239928575950375288742756083705108638737512521497579076414421073807792820770265465485281847511740205418045583028395961281780496425118011556977200819495197253892734130931971325405357662912424488197027765242116878787443839866660052729517750515357588407439964096549088240777435758368595185599599782490976909150531095685207993628090995943665878362480703526108070494445485302585867133211565500485397678946716438917847255123456975522544714531624414991556222610238930077761514824281005384118811255405948334357772492635405757559100522037225323380601009502496272091227802348004245652565486399327499722223850762413028891007043862782597240158587078579575131025715283418626096959381423966551033764245195024351729050605807189024123228201961773768361165246405838253017642073801632681791851556616617250695430811688200309208114119714780504633017708608421889795976899618334776933672441733840134666113977858204372065249084260578043899147062169769943905186620255181385438500699704744359967491166517369152184527488409856939905771374435538696406297094701152169682789489717967832360032028596719378558237421028788017463574933275319562069580290917492529634921546900673222473643044969685762031336043674981940034026582091889434305911646170885938430738351371875021597715333749733854620106216532223329575624355250911920293542365973831445535855921666906117935514085453306432574337284454223904090791987497420946191735811965071950402936192016932930882630573023356734213647627001528427758124514711022950643453039840985068856365193475425060217281414689995967602782141164779786196454484382268118789719565322443694531594697916907538744280541956427210660995713542217120094775429953460933509591528054567195155452881934497119761691155961890531866939129300039548050452375945865648265530976331058183735483008624010392999235770281139654066469443960387845290700637295661213223035984160094952335083918549361314129901131316857061518237813580870517848842212327292812413696006190152128956006964719875346170267199531088035564112304372191108512577005709644237389356818751770149662938487048658379723504416301589930473995579069620387711732880716975937536721005050913862868590646433800537534847940010752631895982538250056426352804459158465504316637893499068047657572011115230515581999179136933312448606111472715594969633209877715051962065708346562820138172231233831362935131164561551292287952832764964608420968904621408010487748573822743155073965547056085383928581505976013319237421902273899890282488604184601190620981748346581603020794133132871829023136181149726066742374683726004238617373679976456357206794691577978404261322688760407834320459237227019752113560819672902429205645140727626851230585974670425657656917988939244957907127103422656748378043204493995687471873598480059901447992878623514704863348484085922941739741299503925889790139583862858310711804083043874428824156330092920313800840386888529160393559537290340608437287529045371570936361898516019078758405453147118454121679247705105988378894943712296125723385975479308569780102224310376962514404286787459385298682412183663446235293300633857050179049471684084624837338569960079839691736030108625300893326134500512529563583066767050636652720685071134055025833425337227657661768321553922257543632020108934515553848455063233383671012233750759226253158793105920782932788612041972803175422157228451535747535393457249484317712565219663261600345062162032746176657304246659589075518891395175191412759170306667901077741530378553438569688156422116606410605346423438708252599783168106875217976247520383151647702105317928089044883952735776704699750350338031462556513308309289874591136756229298779208085503690022395157477679635007294820560661099149387599258637479239392953192047484709809587247814489012705563612396967346451688824877910581885174449718828245837355362536331519946296039427803418739899448321490051650592887581032840914402829639943375058106644452180309976971569829151647665958765488221230511972581288383928803567490759037683805135409544944006316010771082211122254489833074277029732357948822428389117205132290004682073124323657603280621467999352843242370506657435980808833957474444476076029353974403934650820174756063171535346680764691720744660346155797597283148797455483263785447153931898416370410554953146766090846295905757062919698619267898301379647068421300480159076334122654331835824427986264016023065151672567261944595111458520198463811997807858965473598615092753857041128839707461477061872571527798483082224524170486859778512301874293521955184049117722775733441492504218033868947312714064576486853787438729644193159423971955463253546949452060781570250180500493000412309376380816555297263055360844729910391150776987594682403657094376605430567395875763401395532580080497859243288205652228839615820995746454343872861003590594214035307596358310874743686550059446906586813287339997629115108725230314857860127619434528139883347823631098623939940316657342630657073914370141806104875384324634639336446620760318711200856291944096511345996527342694382357117679878601248276830231071281537051610368263141207840460919822693216840173059331745928987377070427948169243591589422790503501589713563685185359335581000009930883550870956399011742644500080222001213677346793131921441779729621822182430626787648476466666164367317862808778109033127513072323097893806097822948533363596997105111497574278347438713497622999843877331019060735304568892730062770796400048855449523239931971701896636754698102943745634313150866043223681743334073348457316101178354052594407572650468586335000238074446626740937263486135449942860230470219643923593178845959292376370719064840201948326824906259324914628096493907917183371323290998531012372334368223779402008227038794061024730002017648041236616007280296352456472694818670524484741825094147065375780070865191605420804161320559802057602171482814921799912154991737752807151544246814134058355624358724526354525684937492256923879438165518695286816449897742010847895257560538104933143204437174339821645253324542763594090205906296159595486202699380765377836168540903413723674044187729032957597536416114453068949133162040467643116879001940683227465807545757407243704275210215202387114991296119568874459617285671162097190858224431638745298360215186096614347253131361342511185602875566244719199352581449832151753170335953684555970282626361715441290246992809112612928602940435774938630593443444763422092518792752584589067785288444866562786837754290797744997871427074662476297491330016111751330933645990552240915639546114992167016540543074684740374486374692278860547671468666545782575902824331788326260780240162536785147834620410153631071631818001301878500402664067952452850786204244443070491507772442627030774132589988570530963269043939054500511049231454004891018013198596644313135522068211927918014791525023005245008461181790946727780631528260535578386339374449600324642314134130593134869917966257616074766982109962270544391658114310379780242717406784371631001693920479829338494949568069793067129769256056275068177867996543414474497285976618230398483339823997665535903042998868452144903040607703051582949919427367257579768524892355594989508577616410026976478861769680904986720032059386237294747040625565648493075031707340456284787107762747431014886242554790120053391490261168554327958274268335059295465043712428191946341261791489303384731718341734718641906035706773691867361257034652188369436021032634634781659648475116378597675899467568583008266989900907692126178029524663629874707759165698895941139941295539394316379755158581019918364109946041397009599169063957627005836456858548992585317596127893188472265954496978592141464736331250699230794060262285597562467131211623111899494649816556527189714109147119586789781634292580042824001152079373676672532450973963619399650457742291697907020413421788292134145656748650682116981935242860262143611400470182888968962102299319297620096099125094399390522731792280099031928999280270438919360536728231654537959546949856870810020635616788177725831458394715514366900945811362460012339414522732085914874832755163676327936811456748725096763219477310651174773887480374027103418792943895059289981150258781321195762928994324143448252089947560216295147840308274157299947501221313403137800618388156107826044851695963294206544386574797748013252460691389169101242686037302283421982794270740030186577517891949636031582440512209067866207228556106117350979044009666947947895585376000787983437714007710918812532192501357416411518649614640426083045541979800916661935168950883586334530169539160242611933125938049325441656901082934351734160230366659887274720649634421653098782707426140938324002724800330075558730032250822340790231944307936343106156445489523656114732669023659690828691584329411119848691248149987283178426075433660891491522292837854400949793427225575521111946974273394440447212305392150781584457795989911845337382145695504490903670013386801637484395968098241371144677227603225048065502961782471754671201603041068116818032552084686625003466858380030966758074151008501631214087941725910900272471666492089911136487573317592919220453415378468581761621504478184464532927619366029630733327500058045194298083431547242852014255977243194796940255589218340456102872168949757171102188344013370964744786911024830686778045842207456695107616264807042449481680558247016955703763911076124122533206057714583612926150465567149215686948617424037095824381213092388473068362449546564786368861718758512349843319602805064930088506944248441559791981163386036494571716282925318108309404675137436377692926501301123588653550201379283527408267343913868606379047903218281011968838069740494222907371258228633670599013002031057450843833700041318275086903291021291749767256968165581043598253578349901876932186999886638667996823516618106988420751108316186353618692721434030607321859699744164114355090720465090885605783427164844104388168011861169649841340251937280134386791044071318380172708489324091557566302754506331419114223956542859538701998945050325370049388719131863899045137154570758381572715216220578509310982095107619511887068586112393860260311768606495831286583723173929525752706337430027399512100134130128833052999386026321091152943177266851755838175796262308651160798578455976631697803494930875223618667864067076659545103118061570754191396106074664899469796929707939607162568571192855528536930963672131289743099542053296618920177971826894792188193856105504479636987195234391411191729399040181374941830252311489358513487903539295466644042277257932671213176658899106386664434569784321084804087906106015449520516907411396512598597684632133897652575780302335788942510692501416846400033755099843101451103761170518445858806311587587965603121110346581832851545422984452120809289624666606602630920389552184712304034568474411178329288777226244253380304525994320171836916276836244987899254749461167784028375444978365754412802523804452021235839192008009180105451321141903597890049571984598472246410082906681540588732238317216534205093112383835107027922816910328686399656869841143136110311110595569200813412577114474742782041980406233863857228332855481633433424839359701860971287733786868336828308133080675720057516015134187969177878912861087105150456701476012502051690113847613419768350102284168661044184900554903012126876635831933570425074764340304382218917478698029579040150221824220995879016355892004230202753264973966439202401314539793744444284257949068446047591022536712791423401794444688175153073364249041465033050432192916549646323250499574544738682341164205942704694919119100633294621646949913421883184102226668659834442335684661466851668242531502703188550274012122318326724154102608051978377357138997046060471315312461856979250618724619108846390197135285422088513323101433366225287724617319492465306420019826526931257454605346422721043495766627338634983656323076729639426651907873150072306628870379965330433217690339882616414905149480219295717006314807857896115171068420764269791243164917561873644078995694823300398236601830136409939317414969372101893381974596124598245348593144577041010019575613345743019869162706499641800777632249009454512315365381975120924626460752725188422579541035389587599915129505868908281846827456874518005042847098066545344974793932322879681310921708486373872948222718387551377709081897940298098652679211207910713599236292352410311038291593130476668023050686198733774988437900787538756294713973934696204519013401303289011564608782891013821355165488120756213019216001448982968529972261677971204207320262187857844885810320850414727868851560482997845891045388617902166236161681638383529626954785198808705325063438767219189443501855166650859799448226562770011966857547242631725665715135823260389226455197383004852372864486305041674563223458825742291219147824849152046866036591552842482465982602195016715542095027714651608584615043109905630837478365069428914231133762545474336085344272973710332400930998863212518865322892220830474868998363982940338292651966606449583087732965578902920018328117314265668776219784212527373428299984021956923278511544403110969488597938605199671406764917513006800329554146310099829491049699704037343087468710380182711954785634962731053817963254692902928086478551445805660921345035300451398405358847385336591589485144387707185166731095662781574881668360449504466692677022779741666101610367900793635945229864135879436727373886733904360871920792020897769434203423492427533875147008090214566574191892586991665483673989524998036022197888293385785167432659784514434229071330057555188737273281051631181170378965793367917313805296874076935960753830029511295236081132198850349421862563714894829300853501216930188181484531279961241460586181405191019220857343287460640966730929374309871075542745413106036517750722127122032452641682281149445744066158680769193942151150219670486110860814924954280213179353484378266435035604799653848837426692850106444988583136810389466638429660768161613439384118047202309369189648824007805029975319396124958030066819046766625659720143143084259846535910095420393890258306217544911685206891186474932646897082676118784171051201196929538918852904501577133516064911831949911018160468677098572389227039420373784275404831363176781525310889912362508251448657363537571014674255656083374319965145897244484888134635996182672776883346356490921517015115815847961364170072594821291178306534247135511497426966365620428215648721469112654661570976228387691520681762299273954792664898144953219290383033378721184842915454588328738144049224407768834721407818653042615779665393809158619425741581502015124376985834634235787231488735952453985156833050288430222553168273482229145052843550327824849908855056300560877779154646119301301822159602376891861395078566947768599072428234662852658023902297709101771979977377983652460631914658142623334128571367818879811385609275176855126537864061507950322280866441067649036742765607375024330623934393554856211309181001137818647095997355732627765712212073631291199815928472966678604395483460892742166740600401349965177397728852479805015699112611816963032680295489798307753635114965897199031583748454294285314908256102645802311122428621970837067954408712173409597954928403835838620797418250593554711394704517931993175148166395260827412394192397722113868024041597987719708774008145910818538071539962383458955481613807369418308764822978023258587441106565106168311615182579659561910660728840910452406212182009678936148257151352869392580652334842165850232158677433793316997772533251777489530706193071827049600747664120622319983967540359947901740841270871241445152242858628595416336386931549152273438197398126085060441414406849144439586281312124152392735233371799827686839876346772279429639784918345091097978965260769123934819380380594377815623268899321869290382963246866900033082817122638972244739825561144868048873005343292538757069182215204711100921947940911669562305011712386487931620108192278213163110777901231623001363454601305454636040522270377050073153089027467013655069470151883681671625171404186807940057386335606049483458770687434990652953969866152087750520093761262035641222742610755683217004421282729189446471474098615497657944467567460646291909939519382266265304740475847731101694357127947124645223279730863587057435728300822100999901902294787048964970058132385790846982753676145791166924900894649342732633025773795481177796609131519627216784041030561691840696960473514080612840876231540583166789364472124246167475807094427268630044936583299751875157246510289495728374108603348195159036337300397530192609910687320695892978890285996340698352690261518435112110842556751719873216095384089092000987784501732453561894858671384381957832598008062476176349859781776158670115240978668381911295815989500378937491243808478977363601183040882689922478059680505483600945915350628373153774779285528069827800664809844907178907727524098340415061108104871254659060462460839671432681270471223122577524927785678013942822332336138452283212387936415956717585618792210241579864753426000998319311281914032323299057946744659355228640869269389795758161656301205350012048158544200339839300045166777484697793900937116178925515290875922577266188032014822339287642056396714282562713517078031864981139309330668928940396553540702204098737692571480017725905141787117774264055241036999389733658337814164497950062247430464484030478310857170360489776237330386460004180477814518735193359719143417743351353031942963516993560153613680644982343287185537785735621647883660841893661572961850756653181878740680846318934012044591241656271957272099378025679998027359476499532117046086591049969864506474147784792918075738713615848379569457810193861921500888142389498517532239281750183572733351816560601759399355832908136931638879149201552734711364997186019802750782399764037558161153151655261927532287807555939327407414135383941748717020514444990135734922668491124988669832673810707029747596736028014817529498830178009597665742361134851392183672439590838444056010229367703795915927580606003972500154751271146287712701313015012091551130362977135847564447795710474692977681111905293244048485882932107236692354416799952710398023054032864505213412918732899634159012443940681766939249829224169191687728018185838450796006172732606937477780783746229254002278340174216063035054487159027890465232876348631120212144831574000943466968486100727693713998401790257090322147167369280863312732709270922902885280790860761564541543514005025277227119988294133687665218653253449863301219548310078793544061561314016562475527634542607580739473492179697051131179633821810151298933523999874466593615052229965842397893307955398998682324809020082054105256656203381587530180741867062046625022305487736337634743538858800331125858033008364849445271559752003352319926488986546626234581628367344539727121531974536224521751806312004530392002838323710626758839679619451869620307064655105638850371312972998631460632844000248014221287699051355010844311643037737853037290243352428071147844993396575930035017376159924576291396857335381656775884287663044156487829277504399330858940854600789704453724558833722609173959696870383481017033124454675797590725878988038258396771055250982675152155825857952729332768986181752860200904080812227609955936298862520631963413128650748527890054584858158169668695846941139273276482029007177253273958348776240234475876612371959230970778254373770210295995171009983499370758862343887137654174890311236649958752046518938607719824332497973674962388915356158039339198329621574950595779592823163518314574628683600307374262743840218995412804059702337398451152109244403627888907395493840131380418950111795768288116196457688673853824746074831878528972139103500154392000741248868110477751006901713734144946495291854116550356561127857986562213122603252152254898979883581414300216935621015447730777254690309791127084644849865131754125958588273103275818177986832825428852904852429458417163164286730784211406721490332844615295094509865527555007496357832437751807331841271416623287677075953135171660170784011764894926053751835452228366742051325438537484421604716314950352945829611074602970026958158939060239202977461499229138989530616965226604329929024810362979432677246454499921898389772778001022870517555656262744979824728140235358750150987066019452898525947605084650980473575586342553472210986396669044996598304131049039798871106197021397268430514293390350563890130428125379886060909320203065533573960802772371758616758659448550108716393634435937868868385803248233917079051491644473766583063469892903324828940040020300401588311859019479776716477472516093725016745141809269671487929771055242852961374755003188249625749918297268821160954545148131552284060623752163896532612233168986161558877661463739482451679079068304690734361719851724096929911754686685556328786207614199967114841446295661668143082442005008785847862580675955593239388955345707783334303455935397782757099036181493044549328914191207901732469207071695405517773699631170133806389153548148293188418656505522841313865523387731277018961511670745581137434054176289777909275051227183790232893462725374625026954043735299875442737724321804684187248075164064962609999899890132296191476562640113910968536315940617362455342029732863518768199805194876083228639419644632396848206464459756114289489432365521869405677899320841376602768395048281628039304196660532314570770896465181031116008492777911690940001903770213571509752268942045202046063403329776830125245580170303648979305830438149300315924914789628982831636890687087102918274421761000578176547976768560991475898421620066762519048674393854798387329644094340548653137861888875981533850344547158393008469204986709670774942043571783184484171249510424666060117853192579103532223179951346830234538541306101260836811216878400584602387974116666243640796815319502092640356551341245860395800235185791420760701950406566035292779264558920680851287117972841617069775992255275948875093913359530532708850605760116046641097320451784192056421116731800429498832996452613706850722141647122680066528243437584624067110357491308043092009701212303052627709508434867989488863184156855733389932768609958885015918222169652100714925359132539489549362026150462257093150291436348931305843082093935911137217658086722949854829169808402212025801726930176593601693068253872154578531095116715057879130027392587705981423954410787631083734295538793908631617315620696366700305210909867085747313222172284915510185017654357775395588857639052704151278275261992402996479776443412660808817475668257562209362664734131521269902453807086470194192942740418640994665113122995159796202935329296925058743530889804657261824800820618452467870736078926551471562206937001868557139660694527751892207770385757215538339173586573245814987389449325928252025100202442336200318691965277814716973671357037535114399783123596125113836257843374172445856158799485103902238456645464817735036717252756719346675465512911227133617546017676651487407437254976194038349414995724360032529082379739055438484227220509139616114556978680572515854264037676079084658212382501671728076728320863250751171660874562307160483181196340859856008675048196962862624885138653256657953168429661491413147550428320954156080411275776745010602497989275925828786440467533913509098543906761790322138357407775480030841704366643653724530139784911662376588377684388028278357510906959581010933542849912922731029900588449507867673572532931034067225536632974988995067858291466347821441998817121567983861986242301667811688158943209037477479594572580633636182120453493192602788471501134679134529857941260722439914491878207488427700194430594423045227345108662830349825051698882877212606145780646178791132939645072289718821872846492577047512220051875041979222874297999991342157635295606492069505844466454536422866141666118218014986974441726614285935350843790085207249791661048528218191579501691335582512952645517280498703803660457228753029302976819791687082534743401599534155809540829274141947843704134830900464289292696765630311755120609725090514828737237356148375835259628501223851364889750694193527122523806715155920623509874299917524511728918167543106161209554990265163554643078813977220491183854906039563705168838917791227864818180978379257090028546102472254766248412115957138369327306545626469831273169705048676836697229858237421141834344969299014420059941987107814878615686235238678947961224112414488983170881223409100560451625904012861403279709786668339213062220644176263672001366275023415503666672998180297569590585777290550078181577593351183441721207817101722721568596844980035448050667740411600680765816933665827159408382488721193085536439924352164601309882036145242659489340612233948072168898346275106822897837286686538129014652225084721626423321506875997289284507106962299359170127022400837509157313119116566393226856428599928465283085714579466930981753191367738384493198462337988435805413890045408856818112983828560046814581781735639540994968858612153983774756545917207037952843041820409554931205683367885102619601279345100492796961601479592675154878393862044660660706135768083347386708259302134253488784775644342209735769079016097741774100573237333322591356331141061388699602986247037889706518556492075260744373022275614314185203552353346546042694611775413340141084710415521924669786441893503807513017612383989378363081589286766996657413523901412870060657511169909199635216074116810313671249552508985489366319503775414160465525422975225169859101063671172358557616006739580948766265659886242209724832415667110203013310710529540919226133378695262990405823569845661459877200453065675232460095537708441429605968475106910691183090031280406661915408916047792980028893088397817202412207563637673539053209788524352187921112265222362773670273830757126085711047188262594911080435486188735455035180054458464622495556729587460383827494776791821335837958430459565383636008416821230053704055506524176866780748125361160369287416954932939799403553844175869110378869026781710002795197386406053807165344508175031206471200936687244138808840017075421507913708897488659712997222071785378239250017719285297827402572466896655666940496492955243655521443751165387925443396545854740686422547498093349881091217125462440646643578372964459679803267465811888486598709262953393090740280322667264258526222735735226112008066454147750275932604794375608026395762081073629953605733510302491615658370813217786316326778236022318394397241910262106358852479322378203189465687919432841577798930149211082813402707108432087348812988093166394713838784256879286331387057384292690820681169543467099298310811619195477425469697381347443898114132254809407624690831518038183532137975398158086053431018799646060419158535448586984143357624476896012777778213343047214144032265978424419562867312025169746618774823869093875155324268572665981874373995652035513283567529186935403978608735912543412567794068110337043105412797000008426759072814679367172153835749422501868517016070258931972773976159781152972621809359428091080544503843023381701310495653607766000109218663163253137308391629323433565400582668527882670031482919977378543646400832952502337665386809250318140523264445193552274627623471068321523706887953860327113240941994306505067345474585556111392623644408891755288112660761278355684513926067735471532506701357977431593588089871136643995482638338544680044972057457942313347839158635238844653752571201468292315632729590120561265718596777474233770617343786336138681362601639918157646600441897834580701197239445043354013061792847361412407088420746525857535803071357793431235523523075335554232572928841937269717276564797446357501729780896179845929412076589020320773397398131809211214869598096533107851361427436494228393488796571042535722053366889302472571268661678995511496616261138848617639825528873442869659184477769737022520300199790195807685620381709813405303241072635926439547168004548425112752649499604745881288737767239269764745048779290848675578456379501945184785236680099536121725730679060225696641043516751318494248726485301215583422464272897092692044311228016365318545430250639217340362974142842096142802635648966614090794995293545134103289360813799974810329931820818160565551992661429424153519128253885917555517908814571895927834427123875173262322210645983761827763318686109344755778406020180625094405291712423383118978166768376270803776170614323364361647754049552630243757175830061452814175483901238808797452082178328852533385250005627013883580949046221466477022006956949907193641054430171375506768914065858696778848685862758698629640233354449764669951110950125151484935714640169965547243591912598255058422791196623831892343844193746992681359808101225624453261261757327470900705423822730820970982679660265867787842787725948897889674630115896984827569560688479872439149132126810926417550014459408969567841882514623453303132576324318185528793414859125032584736926145669267484581317529152204712198333712872227582261293939166930220196358256550135197843216120461501875320972567733942489265353306072664687363708485673421898227269388008289072590683393966458736348935321841543620875148406456661862645582740811740421749775217154879688734162237518661899275455690440318543845502914615818232435852294974808538595632251180772027864304353615382322172608030683915460793515052086205281627706889051933033437312690901697959618871712811872509493956449037379074409145927860325379593200597360767059426219817636906246148659997020073047568823525476001320766401417153340432965311649058601163428182234330975344507048252369916288662032456883510809333171758313247003017224771510226723604794417513057157939576295361572759678639314942383099381117502136892996018602400680296340326674692423288625992433360685325332329422477438782337923042270728891667316484161513284026831669345301159268599374376593404397086008609821886015470810437112424808728281828818459927248638054181237026328260808281118728871164605541245304179428276120721297541594679001059715766202064744826382368141321366879340313109969867255377859355284483060067482175687921830865903692738372985012840067442295215089258539663430167655741358237801782634862133999180623405541066591365779981467613689069464012350684559530687609825236349013263577832779309206100079152046976732821033853757423463984936314965632457508611813710679843009821950280980769607672467416200693531659201633621049963864732105298358179870465573701068220593165853688198713910205850927706322394454231301792652047777375247858725689341265636113067486874505323815018537244664866452689553479351232497816564262164679878493852336774213958458779056736801561845306919307294427889881261391147216393045915349312898512357745328402649839719957038700982999836540952554602269799859324923100193732762941899160188571887974023781163610751460964292553127313982255014820889377733413752136875598404441957078398377364460706655032567924888542277163554146599517910688551554826432697975590347778182388365742066192525364311765930073818396291593321176795980565286196629740702056301986348022920494683346690961692587035555906727382729095426356280634136053001690586883337896122088803237652837280081044476107618869546192643796938314838391073167781116998011942403866807349528496445166205086399378223940613853137854170159745839193046897769387045037917870949003176322653349622764735081325737515086597852102508056945364116805605012439786122843143260977677745788558662502374746683487472426780304519905399293635421607070548084793156023396010963592488699647005493058674239793182718384803926473112034190820442133355384013318578550805850868447290610486788989650932847968389342422628064793186521260435705953102659527659174043023317229138820525746696096383376696730452345300704204626829207096053995460733738882505662552802664107439977916157676672089165428369858674013967490845043629079147242093814785515954223100078389650878308610272560448418301385185139986372500926178268867788744098606236577171605545045712518083155406402015596968097311432786550210058192090889247615263673928493129298764931204275292244140293013925694944233721880597685298043270091055825636120882398572598584309439720879576969103419916305209533092083338519817817178472405535780036078265273994630394577643240522183947629154939913486952774287305739724029900035451823073902754907824574774624988657729227509633390268083425214248439233058137267517071150552253300819138139862704272817727046154067094470048349187994641311129501795796212365166410130716281176431368241844777333504930240437414244610364467858560689285515947179514964358082247914164201794677858668980627061857669541316926936286026878579710319914926303028931395270121197640890394369221593450089585650731880089960925844454431799129298624309226841856535882067818124204838987044346149999091640273551191718150839433886213182046609896789529396050372697966444254595476981001990205562157423385759767170070906679481018020435198611307611691486217507631181828647156518572856894317341118400166550406467925581227913919814710156451548265475874108073032973473103301614418638015975151069091297538165512936287117805440769546798870663817105232562696585693871903224863895030007126235071544363912604678624702190968929478672811578381162886154055958908572714090613089100820141885757123313277684859267625305618332730080971475329496234755787830908976549958641011499193561582082745651744908729567470408551383146446306404533963489214541038974507439307371303033218942275266645659355349835321487919618068662124195674034493965046516200160844329149861010733560241554713139039265712629395434107904716150177319168503046022279412829791034274241749977203265102243490129047914296565332544728912973510774949424633055752789141995729182635461762219136668078221439601575941725149204517647037979441305884256312038047580000464887186745774952799118228991794999135409725898014726575988430737869621638707623943284979812095789375429119455148788906217787584550420428865487228504283160806715374416678215014452788939319273468263991558130883456225961856514185567483089546487826892441971308969254468359841190995920011852851264849924834117456061770829238578896028344236201173401777831745061416951629591829383398243721792677175631537341406723619845173977604192229706912254581388241412404092178212813186193454347607520980800460026342286762875149337703842397849917195121763508095384127341676299899811919494343999311996695456545988085491673230371958179505712766152622904495095178817091205500606116021553586419287130727921637256358966917487524379232919087787085324857709978977522411854348583705510485942856826491933267751803457184919856881751753818090793804606260087987594314691639814769634504658154588272854230282752706645298001083678034101142664927968947152786781940216149338261158467522876745844095081301822789372027999303273973284260640152702122146866010446130508462995891280110628990311893387069615840107172970386474066883234525092489472927082643582586544869946248678046562778612045566964626119235653674449483959522951736582420041126666471317277879885944725340388331641085916134794640184772036593291391689194288092398504303679693382258167361108746063772775168385018512009735057841372139952281504886354546223940032671686591709960910918730978586367980498894883335529605631904458834392233777283217621937204600702614958721710450406074993922991253037414049115220515720385506904284590600456026598414690303566890477517195491262961791533585143933354468226632995655653651508661659753539279828132158185299062138159983509512371115424730958003818812532799539878439031064436583246526513493454412212508937035628527096328317365246169914802483977855043256538572547384091004550693081869636933628509192399269991277633050106875712331948109496020594185133672414991564495826101025774002888937818724791146703883992905395854623302130789383578877894994209114808247855662289218831248304057389810386908508996171514790144510963037506977771022412898170630625124371168784845823782642617733588999487665640376522003566743058251085566703555751214796460706265361807556297227495890335614459981914397766276374759574895944952543447932215273469190517898096005185658984780646034302675159089832881689411509781552548261653659877669791798604336018406259789476914354505747482368610359654223366141484738571809297841114471324955341903340538047269823267115412897818169106808983371381852683245505679427401066248147206339470997069293250760264286960131831628475052515787622469516140918871106729246023895160267381896973041174705053041811919490640255711269981006340418376001174150144042170743151844623167611053695096513080704156867025854681965166638292734367698493553116725756882903803757821084463041349907708524947448835230553829105195492096352274047590271353358442262625527311182254603682990674573263373176310872185910820496185857690882874542562667313194588306071456663463423955991740678729316583261561656820266663499115410522275938023414265447911474303335216918168865147729769521424659005110326511066840297187913158422435695560195871385098465519156234760710682383891441015753542941640139265915776648462294442646361868290910599955568389327075940034474950948338709539611057166257011236966690035946526988404437467077596432304638296455567818981278055166227606454037601216658126801803590896475085372490855090887056840041831363039822350177208588929627846711708498015162406447833367572224578986156106089226725067193486106156768712452386032665248206721681951481079734158516867664561581587718511423406880052965666036348135517507744912679572872759821677956002330528216806531068697784632114495614923531475277324345073894560448699234565093670087098810793121080502228283448082336387276036110443526575261457954797616182547824448556357610333837986299385913773245576224363343896960953633953700353242311680402333632504815127772189799816434029145803689941306124076434822922076201590726699954910165809645341774471324271081908642678534988702329845366161699972186185891787783502424959899166291108529849022312999246596905735663763311050261402818404086769224515927218987237793360731753333787075440380590602958881958082124639068245729060108444002496604423962569534307172600941181762381207905092810172646039452510727514871275195533506081210643480406270928503861054108409191503552133680555578759240998248703393561177048247251873457143090725457564409546225078195900538564673838727490705354363083831235989089343506092897900149322063171458334550494789035361225441400799336669166348069853080487313825264553514878781671844688404385420383968988773725766299412854087382918385526306941927110332582621613438875132500454754950834744986139250193814142804141185678165640517349982314652826241615052158410951165670727732006669686354810720133235404385087090436468844895897663612492167317643775739168168440311845926425412755753706750875734265604236075659788274465721754408649549882558798593204328248171890413825087154439262674857656714993308389989327781892003762782591511398875353361763336540953344358979623237286456849907645465368483122342908376698884163992633989671459805400517661299233598959547851692114872682373519254682244739161508777287754544228351765536550155668972356335585745390301871200339342653842167865761494158283583294701664077555802025976737966477745414438199044709434619854800684864354979880227687860950600557375078502957091929307816951123403038873429132878002316594489215944573717776735288567237130647168536389960588842404864345456394825546775951588788634260068192842429251022018367974144951693662020662401793153476763075787687398773142028853614068664681506562386363818555390682766335095275639228516334959598101958831611248116195461108316593706817365370492591944690765583119907153558154181231328634038067577388772666109255543092074920044620130551191507370690423643937954412571949836988014353773068338963758341236314781053665623022451422494688648089409368437515147094664162360183397096131308424177174702097304213751383010117673779260999864846926415004926537096289123048276853000830601054283136546748014926433702486575329636562968917364333977672385321611135392771110793835195698329830865046044084036453896850503426787634013842711886259849763487558172958169764616303714929975631449388318816814925172729729928544869488663843715480271363476165408303666913273649950856194014532859222093823160321596264560101108494164338040451136957474906714267773479701956939013120606237879031704457308294692254147588036713289322446730868197331234959759163013883948710546246839959672384820949130433853666906234864920634677534623418972236376866701752535315044563211222896055541012560252540189978755172910073256404410482331371835163039439436068875242238625669575830698310548888071028271801558149549095560581889290044166924850678456286755004203240264096684358637846616775194079275409575046134512500303824963838912286603195355723036621346251310070753575198159955830670389999397999648824482541994977376679486787282412268850231569358553120360629075389940888621809726005432356777286519518109890438987591097336704798312587493308625362228181349639813939402054825799150054233118673883129265199810432014452093618151755486192414723821490941017532106673125274559466545620091349247190986812547662880717554501719063847982539832541123728575315788786253190995135445492936353823793205244643753976848344501627290084578407123014110012961272048731426580177990555779031474143489559524558365944722271942771336899122687811917976786305167515692384329181379732577662396018734107975598901552423675078674112429541022283691432204395796893116133692457296752282189836621264933415406843985244602278176281417413070673284271652879904516806204744299028956465623564214970917395419692518533861913558436114989289318308293607602367013690192786051905901857622011952952359992506165608929546904325912122763209724724278282154101570342876450058839870643590844744499542507275077078120452023287043673881292981640361601036603524167542273837724862746039129040831669640715962515203155019670116529911875421091738143149846287821759160433792267663342196703344934513755582641885668097252499622632803604158664414412162687660549617159675259797333837360433621241179817793582191359499439532903450868273123228353348622164271307553296737134946436859084770422783203641230576910340161555407782527287012570271078327770186705627592426887671405016922460386021994730331825820075040493407724357948169270088944783672768042072187228968832040950875414945166124596107216868267816619078006712135268460380246159011061571875837231317540170678767884432778019636886670376097238290995785845279834537207005381593832033436908752002884869709607920544456707477277554394523576329002525450598705983303607826487676193096817167305483201920491348576318025610199868690774858161629349095173471422869007718586854638007597366743989400813256920619713737799403023949394640361200021733068492934017985762802779923577298999073181034636459021247212559265960715431968938435523406799938065464697721790774660711292064582247888407525467310744414283221381110237808220809632495620461244501499966655646881321277866151560300858138516280200643089285801707167568329211799641070623854553042883055786821638560206254948052933916958850117159873103034439332847972197099302299444049454057820478304844699728615839587060531749747264823323311758629858473688853915539515581010070249916316067262682172985228245123448803132495677671690284304966341064038513922564278584465262540509369989911952371512846114009753002575457653435725601792876929087412723429385940222975884043121929493077395462535105729558134041962957137539148866148025896254933543613522712064047835000962583244257827428509733198207738296754426550619792590667168339078674860285778553031932357596055514878543352181844762185530049585481006212089486260595319757036893465236013532454508675250221975987239767499418285317748509051767104089351921899667257435647180782608205579244101088252088597868088710697758250867592122113011779755867152660971733451347821792568493290436553181107355963266440051858358829919246406724956641539672234010176949482100807701642354740677509979847509823568275314612618622225151730281288294902394905796361101086698426504816246432659585221426585171280244673882767194221059121960305854629852126509839951362521787681309118247667137825726511511491528204790656957354108267709419138194529116905248747791114828668489436078363332174598521638719094960940777540509663355529055407790184123844167740079393274212340258466285545528213935205084310380984038240814258792561501760287247985790833606962257184798440809790846138727999763977650957717700605449781544032954614910139172037873428726941408782422035430196082722295360104964812564567019727364664112914766466780800046375335020089424667189780138463715547592132471658547175196023869312954850738674948372206891355724264851329787580922001579892601147528221184041426604117720771974692952435450705380992706946942590380602814517860149971349553414413979323543208841112631685364896502296660208549212548345855688560179498839698321414818153174634026532107525464772689934071180106822412623542930684533956633816725964479650166568195401144720779445470444083249194192702171653872442855405669000014063701971924453858068510685012243077622472012143476058290866010388766693098939104639896693190117660152141403057592698287572854156971703673592723119993898929953852799703506015209547972791882322906572744824020057408020664889672563509619828418817844534040284941485068689197558802147181706569841042560413048315452139828862146717239827398983630275735017015241840227097923182321999724409281172422574290257529701124959757017540438459128992845395424306279884482835999016049199571702450387743361754437837184700426971483666777027535162413299758753051507858503193915959204307874355109226238859885271109355424633402360859294329376497339415262943893998725933745089819679686784591583380575228450732352629889158446741583727930113765074309430101549109104825932723959732529823560588076539621329472005075435969520932738728616870380707496165271756449550636204106943426101897291530285955359016473727578511128795732435830564865989697406156026403278596141318235242765883504993142578006078020046833094195006513602725577096777991017417520468886872790735502899800798226073270881928882805982055117869917351621732313945109350976286705991529814028014658389357197104562205389954651989335016443022712785385688127935259919582753469258724956659687685632265973457069782389434517719959485593178322613429608205474432634087137767648245455203614723446077761800007851499242083008898561463894979636672516204640058992552997024180562037664394526167295259428818130814626073417524464762561900462853438146856284063849661782285226086329024364251869014794806859044392946304434880300173117113610831796893585770641795881466113327448947080831789445117837009928318890918422578072370951904082109649615591823536981237450201459927587619992566881733042030719027805103800470688345846764199322946744181905631188024671516799578799932881466775413522379691162454250171191144077214956838364617774972294447462525148720259872516164241354816122080250385014205498567906969124697137148050435698787003727972567118228248166160506551088968929447762769514379222274243881431707439057322049761133819879553474327522694122966356135602740222242050876525033751229337684009226090762769082201004740131104119744309028049310417759194444518768702426965043364155021354110360104141499379037905237239420456100972538765261257945416389569633647552944941308684012436564330375967227096092621781316729585267849806383453491378167720715028836651498597055418759090044007091407559916549131612014375106536510395376356627758200320424926073236467940725021315062386728145230225506856327698160718813850812604360999020489547060722403608416643908437815494638250283827368419411985442482929123695951788401749143585388839983011636319480773990840943103753612518428789078058601434408963060262392215714541207300322519929326243839713556603544247148194311320285774609664900417938951223513105271624771153483371785600418565802322544358853834730015310607291768149108403548621006182042749081120476569116424722692171421284225455749080734891398559555146402201584156602893202396869976776186110726820727219114952813467733164551874474486848654046207134723207415385281959344401251483249338402994170200272999137285710149345420842586205648835518391389498454323899456742314056218297163875067206416817186488161788155846543194961021971066784993545380176520179999742517733000715113376766770137118624663746148919205382716056086778871548447315658541700678465517024287714434323410512125787998390803978461010072786829887702493708965702747976257580578694752853953023468052160141649417176072401169859041080212013601803586833224570630361267162303506941157311875581545421079093059862029356111344160860246317366971274955897948509207014225523487242619821979960625842282915939712025122000990407300428199276815703881872241800492899067809076568313184150614745761303812088589138168503601069512507768153216124151024880258710000057472964199709306044164482776229101686047726605223968361466840904377664953657419398475101376402186479186875942043922881787382479832975464360578630422847900049564318610963710235538477354821000640597718840209021005612970389624829882715070817165835947746836439039547213520569856218041807025576257528070703520890470345262949572898652414244064097604911453111344950078097365033336621931180196358993214348871762018916864297258416938998127452552361349872050692290288488689449696254500953923483908754369051617074580014853263017571429873620594711903730678391451106285954256726688892368246486242450352808085244119352361797516329489358170399547855282654137619698060735640656880484737586817728872281906638428414238729195419230814647711799889050848690703020237986448832457276058589408509235230417637962622328188889194815680571710771587265024148694462311825239345080033485772546833932430641968128844230214648473263718076193366619046156148714729912255601479131271914915821456201115554844499355357344267900791799227128901525040110520586665196403166376607476383858867144248985005674276824963221159808104084231654902610391915478312789473521658809921675539036833486321560515298651702151083788329825556587322397491078507553853250657290273075144206481428881652671466923196519252675360084200628621459220931270657358931451449421884606152682111294691534593663339991107855826176436250339199561178936184771386676595583017450484545574576299812551148117448334087099666413477491300683621286863161680911656073402258129541369318841181355746671105170502076638763308418789744023589764589684544300033111472464599744566541602307933707870685727249643497096076386330055540910202994405710512973061824034597706630861004218043742259919432707436604819554254099536040119294961769742372361756725598504795300003384595348153251089914753266067834912260198496363336321408233874239339231424538322643619002617053392134783314855739906775104394045938933353615527388825639874652515954014781371345880749693705626561410967266851500185632750052469878735333487872885797270807796031622113674547469579873671144139822447765512420349000799485107174575801052203839655478533864863914392296588907219566529795410384648803987670946647264825161236333607805474095307774521310022000766237743647656937235923753706972157304223114555447551085232202969032200351489152058569524063728095896761071719004994038413913214998421549788152373653018718139556089774211170978137863985933145937659043767584871103626014101945138330568177402347480044854692489166121731900985088911689829174645004441998127434567465259117876839881843066379455953851796146047934168387869689583575682750142673885790321120084036426842184936530995199638918038263679549982460892533188767192743341683697233225360656853971674330656227998268792213283914676342104330077628200225180665382107194427840159330858978226110393567763383402156128196813364293759603526886854237428567311359172480404216560340682302169748644914160940241079757755642407421635320491774928575693980354738891459866596620843820400615055032586518221395881715590585911926823523341188900350812453014101927441114783777721264475857520461443270688240531414287480972547065056861497625352206922552319702588237372217658400988609500408266892261393665596249021873372545370940097398335775537946885437106740430501414586896452774602226538823650521037958321527769270170999876151626669123420408156761040553374728848236734755840881434827264308798546346615433386084006845275512399696609735135305688130638927976256233503176285546155653918474751062498434262249000265284358547677454831636036130684596618771450392176991485191423071804456690795976943169583373068468885034424075270667424792350491327867227102805140499476657551398500975539002942963055291654988648232590979876646514852976756496451853334465496639270168299248857686254372092126426896843333627598744078110606366504788431105074251886461341823846232791490072009244232060518273859322502652732423289014109629475920581568128268086278942842695051299345053225775368520580947907877219447595946190461106972249216307904972862498134881547985171379769589013282051121002717659782375278576965681263986248082789224138976167702157460479911165651319817832038804342071730113388324485523908847394460765510738202716811077660418303174943376335320109364110319008912353680336595221306643860751668740711764172903868204530106114242351584502262450635991094171953072910150463053864330842462461674061471440970360692035996069336499301002828670378838306275974630000602127623869187979574983026133382662151420156524743600517784021403432292615303076279387134496089193672267157218998696012428157754880570464099178202658233979910286028062287423496057071701568659682330532209266156640881640758862568544747537141835341682791428676621779768257033114667703911251398439413400197230084749407960633936283298981303784822447387814888859469888850822104917988733832633779845501377301769378478887989821703343823883023963578212860656468123205889057723789928742786343567246555293031342288788599836398730001934885879111410505243866255606434508867140032476698175118216778261181654034992978804802389081678437949204451319747145412862959205480660431064536420904688068703014008464510375984366191926875656292184645669040562155169108018140467243741051305994291898974370987192772548140418240125831459164003367166251771616214187526633366794692875168067176225742970407935387342568795352551518920032059275360733520607667103655816945495072567961987203213776354278726878671024807837405896804306796807223766037897997123044225120427483331437844557698692149661099729668206322613697029819389651421005520542305732863477028656996420304089837777299256608681647309461754926316725132144621304409110064278440775634053676919788734537164867886538950678382732219611675980554472421647727182363068972082061327484080283623472288116443247846394924994000913805057274704027712340821256798032205437611971529677283541860846217085701296244484737949779386720990220269856688859517285103526790317988802537523498191395798346771047403128758838019424493725208547329332378904558839312483782889583059503011872302872376292733781585533876856370782519014886358277281129814499687483921875818285308148134228866398631908274692687857413577604945580025975003421389821448382143763912498339357063726341332450200972743350239979894570931451189346969489615627336625759076734879257007362749477644297247086469199566911238543619486831108241682674295437041066392735530117730550626167181644223050798426328103311789896125255868576205964499131830412041319787130904750268787084947762352123953409619813115183925603561849862015234990378743470996844363720072077024455861242414412232362169175520900150860743106119846092311440305664016579550692058232145058053930198205580593501089110987846183637990133612483135734479383414593244068435389259214920970574396324918896646935029138061957083829115056065480406867959870154778193503833578609363522620767588519454339949128906937663760002027975697728412444721514195069217913461935479977643624068166131511481354784324902827847922253212484087467346791954376526096003935816953142760648136975615126578708796122323938542325685646326470196938422522341631196575472681935752128179562749377166296886778109510287481610021171914766688198181162351494919053145191962404989520500686526733090696472568230541322409642240474111779191566813770960758067831717134109750478328626425514395086170263800758406674800151640280188971333498314978323317247217937819695598780466105107553024898945045037420779716577003914373252893836532072672237181133505993029624052686836910629942779923139241011730151744253186180070709535677127595500933075355714396711040423530201662303565940053483478288246161873995550466207961896915514779071304320420519795153416262677711393609586871663195877645240469245708041380515395485518898848855453781641575416784859251137353176000078724260998231700008882041575495758239318936312370390699453100362552206172591923300171681903101430827681657648240658711668532929934516489860077861703298444884563793684110990014032190389545231414105867402988025969813366386130647574656379632905542611261545505589080126196384693869644523427512299820414005730858291484123918630587313915544993175876459257466960511414592838733550151414211864035375226281430185096313508191478954015971312936050008218091144605131673091488097627857687722959989216104817252958527469169741783153491455520168806360828367654277511669733361626216805393506137960460682970429107312256860532171658224122147146037277750382478285443683811900239246716847983813777212704979494635772921069137622701342874491822582495580548633546458268628281246822828501963224183504206712073940722707712550682562084941067289344842649266026201594426329005815358584787164976017111776864594572668534546971964511936879155717622840010571552001265483920889913261123907176471112391915026811943111618061614359337052779604389250317735051269515830367842810720793357654536912948155052335970831790954606206132148611025086276197450390341664883321555574314283269803315156871354104134491860152298100734674543895234317578229439082634624552809561038964696320206303202831631579399500748027014976728465940072861775243515189123279448216621677873401724696156024371578005125646041730013382957219835259914414910588908150035072768834144537137878322073162468662598351144776139591626328796488836528545352925238036962569521158522467792312799412182507378952223176734922261969740535229744789381169962124480403221966732082145964113870320506869751534161758848451088173048254396246288820216279172025595920962971162094629405108888101363538463300428686087162224756170537369873721204749592177546791946142660048539031662675832581661821170475631511497218776936839298177783243800133125222061329816029133405912864373956276526196437049687780943678680054898599864387469114777133062426115973545702335894080935281559563562471484517047528009675477612502218954507694136740191521159548798413855623931119383896864216964884612298485381372021859264467241103761057961067754318742848389943130144049920589292851966418874157437930164404097406397662735751272320600020983531666851790068316003335710208577356692640119405917280204718484298607760511030247793652100543077728182364832990260802441822329002893438621402307736060226152837183495264851219634009286995965983937574854524883694225686569788281312030877348676510898024118622925972526850526638329520306176633554559359663246740904303405456189799609406544375897833199169737449108657471697001583094754194309515106789799130142017113150408325479931843971360634107291497488586846124842681719615268284644978206966421086848667695254965336132013266374074923539254856129775703176798747031992833723241399114580039366007260363682368137286974391566882920284916068390157795713583872974304586269462224259365943964702881940497730688221876006344242457577747108648816852916838657588669657138976158861281397865139203244879505067022523136155628862090533781343300618059907828073480735637601632817809624145951603749153595742413003332678184264653458207774821965590915608781017581364331651364072372816382858006444475422308138221404261184845819132124836984256502912468741280981842821287194406240360940292334897342946115490277033239968543815310751398809790153640196016013349118831690136017569076535806764321905632529234667554018437246417591937175385179066174612187569200328755007768814670597032191354079349657606682418616247206772704114992860642334869620765634463750338613441969983219679113256429580234183845416308796118959665427214691340279365064524647439563035986654405636218164477646809675691184483585656529351292239815685576655998260082800865261160565809310717404950878705943976612029556760687696761775071166054309090516362063850123961369272915997109651610684833661035503114513233804146006464608335198871746739238248059048369341871209333499277741846155815366580563695921618360349774348637494754909063491131507395849486416444440307099528051378847256293689516139635437212501391338960540716885225530112596381762043163755783402719116489748420330351681793245300780073748979476967267497267619119481543283915672345945273196042370376729621059251382932174204682507750699400462229940345931430915608675095895270297507107942958007695808243282752619512835654582709255641698406003645189138501418769146012820485088910554907926265409803783105838406514983766828317315506132060166315738065823093164561731070673643296101221350515658479379137140181366679448209006680583332349358668767609621338661272780468022491771668011269877067296968730747509846786149620494315926193402646346808531001705711656107254331463954579281442110007423115191986755484971931100899127079233441790601437588693728578811252686819779709962818063630560211683957594186940426251308436022842192030795212990329003861009076551389071472644873518766550694120143201436841774847600824330220983530887060066562478680451788908865295060762473734070828670986621632124157899873950096771736517470513055076826176423274395774764432012581846425772451213878533577669206274267171380894359760958066428233519137692777586913313165294883189746559023390111907484951856580840059863786521003171362961626709198476125493245808290435585840522663721566626923622601889270371208431248403672282566963067505203378749088532529493313752399317976698152887196004714351928297781948677268747159477834720606041019812489503127263678341240047134480712757229362425009659836531434603789043630864290709350500475862909780501030339272732460160275526027637476534519611584080654763410401706873635219490612754719470488658035878658351214658678069652812677218123570744374843681114998976483153943957295480727836033691642401056991910792667026919280711608790023155844107176648089202095537027962531740767742578988918992754213236251607814644305006654736661882599050696541279350960910971582594124092898735430902350818890262107043702784760641089955172458861855501532981339828275835881374777564505698965052964044630895407493483470520286060970692923982075495729408094791427968478182824152178424884833326018159312105815580604863926352915159579818809350711508615277544537073875614771086662837132626163051494148561779083870757657941613565522918297609810588812865714831510365359766649480414626951248521145707812619491051278252315229585441725738026464425342247885984967559683715731081508099774545525431999603308897523402834058443802379902079073903255654886432996897081847608341340444309106908102596037975182056646091370515778955639034040167478972297716070803792120443495437697624032429224615479075721125975357653474521763439705622481639635022311305755426398281889675194153572653491584333546181148689480582893578413158987659197890576916479879573540489879943834492221430651442080773618021708865184604731195298370321608127861365042860948704894517636032176257891885921164437476895459570958523735998607816316623222203646833282763932889322504805008497172223483478296019456536369961437130358147667123400474769428739258220363069482590511717735370729042518391322309215201476278645170507739565491956408137251834877747037152103130399720463665655225746243022917017492878003048731909882607407478889050079210059709550061513437717824252548702750770596444498013782900236701751422450130154789253755649575607899210725472146278861694512121147788162111874189356374590766913991857334041883569921758128806939488315842196962225753211206610208748958847460220177154770436236984804223334212431285652741856199553337412746273732865479774317913670373106128958002831602253825899846035705280281687204769578268246637217312362458578055676976312006836437566932820503410554114963413652186619206493604145346578679903595025347133104054965570271159051116005898406895792008825578773768929159067187835688583635667047009388909585131691411379127167498213825533334744959390372461759796071047056326935615291169768324930892328049489954780095713871175377732537765548551441358451792814287844577252705009813779909281331066417772895633687702927606340265519423331897496059507048721180296126733795559420292580195443138989265580346263228464817823175020260509144622215592281066116873373658506434345719607340370338263782102161335153789050821529852803852824860159594171600699728330587690646926386349511585324700072317075776749364669382979549564439044733788508771965963027352400264062736383347503989291183835575932279949767068932729365349297022275009622944995690697664207798991173303955974020522814268120234854606551084943866190084695676024343585412949213603329277095799622368099205609662592429114893530541022129171105066764984432897914561736093192329082955335010322120200603618735273265301207583992992990694593287863665483100168331186553377993462981479086407776204016399223384743660958693666731356727006570258315281742066604272495473347144513101851752890078318219276994022954867420130348040817535405961313940556857034088101493415600564604051017401601127229546098102920396961110566632981793153021466435106636370254507793376630730260061742031207787425719347210152081228110294365842779137539241833212235585044853179120447381590382951074665899209696955117997617075456121104465315208871492562122089040421371714712001047040580270791162301641150943082327016146661841362206206862594234197841104179331509264855754870408460900384149100670233424858006569120040733284687959593855012558167171288170149776405204617768374511896897960411807634078543105821891288524826136857252123822097668378183771980168361338728531746648773853135915731406267884235710195659056701619661746555509903018345665824697649832527099623116363103554655438217092060264959110939238810028201518641430110704768821214724037034140683187247437466804294870837615687446625008211649379301924276510204548176973920408800808486248094252937074464320114127670464812920155482599323597459192848730965175184761310837663126792271221036469293976256356899784247885071812204090522240633674541286365228986974872543146765289339107422852351728204611614444052461562479761162256603064737478254384969294146824648463241026864894886149358040891981991269960515434042062093091526814538489796390653242054468939592530197927594418848955308804075621498107964462654787550969805376626896560058259796854439602058049380181074422206190821239508313058323231675313561798505904035328840975827654494770950763318047252808153080964573847299648836888444650429641228168373637454826315751100043985822005690912750118288970109303139181223630253899826099527735423344573752038961714630690003804264245279289351906701143278394442255357585285471676831363046472962394724539343769151167653079479843247189753043241714027197330254294848430561616705977447774874759984331830232188708147107734678587114250959014336206098449461506110996161050122419644625084394310510139668339253666889302051294783426418567518951558969631462332026556102432524132179553687991499101940584243228346167031543568974029118753004697165176202930469666863529497903660106219685200850409345923733806545250926683650767313047994290437177640802657867869483031208975377119466171765265080829040253464633124550071052938650941598246480552353327472827690645102808918501273120019959472073276535203178298184728305665257054440775079875614914231317080841820879898991058797991692882305058354867326896966874700210522063619078716361673205477906200832704126431028390597359914319489535439629764202809220818225572320616592681915955784637055452215764325463384737521682740445988800679930661021366095346742770385329285910779141897937274031175701584477250987053362637755833134630433406195741197591585653949483700180597107018826663405722057087840730218473849931912973136738931347937208910703460613140014092964589014706958559308967175171753101521803904549811589797927960003959706850335337063526496561788560460539682475943558569756600992843379219145235553311238539729190277168749215132037568687242997236415759640286611370694597177588702321594708292388150568121297350450974415493979627817989284175503367042937186593627539518566442070357703971461191381429775774014622316140929387199767177242826176718132514478123175473874211888816599420113345727159244768940732225925330394480328113463164942358703445325281085279342654094343921408609985017579525032138168675676530042727319238954036518149400431437245369956280527032162919024394832934880660471898202980314547742564289940774695880781847728651539197308455653021749046747664845915388505703588729822901941061562680155233360861181346890349179969359552845639247741293546000303201681430682785155167485275344283618928962571299719872273138371514403286315620680621626628448682220921430086466384848975398623379871988379243647565811748732758408088940897326381473505580464475035313361309837580048926638853838813652952518100434796888182025170268835572258676593586268469396333090205273287006005466077627417352179746395965259106552949744902519021633326927566140455738751310752196342878501399181850630005249845796222857980714348493193409881981933593683310344004372169155794655422005090770406656542953913460665279960947596850671878587672212634498749883335180709331474093448178489114554915251426851602054318176516328138351824561379377374229733495397670180910787890102239493984685461387997253698221033044362792864525394890466301378934806127169476401862968760984125470169897096510078112134639353683794386459136454885784047804494453701923785282528198856405279100373247598631292632235176501304841349788694832222130979696907822332160721624528471083483988206366116708474544269184500287539925834193932266550421225308931939046843614058412939594309112565433894429780387495617845803892103693112052018110371433362579195102494262111767227072753527724519835121294536615872628458353878328926550871995816221302188714200504094069712243619232271613559850812631751857427065798614225954642849915591034258045364977104836462223788728157240747754317050300381979795905637557550351213421519912058209893513205776907075764288514062073973089130256865289060029734081152611659387938975185947350691251235928443417165679959900976644623578878001939800003881441979742743961512504810042230494350914671032444282785151131259032098144954960296521233011142879189556649900794623427693915956272943828714911226267959896028167190573307651197234076017448692659663290099869986313423366423752097987342906387603276891692647351227194624454145975932864814686197201192706590000628698317615817488893876254690252055767306010561009057021123172344682355052016710655251138879887566828376243363938785265775587836113243062614140788400474527534391584137304115124722130148782197149046878445790009019812800016627204414657746279871402452985173795378732762911960226750550662319100508523737588692510593854177697424661964589312355414989103993366972745672419675478465919565408059985536064345874744101124143205200170704634347314389034117099319953211480320000209319000045269575114217795558734365614943700150950670061733985168845676908773717283727885471411738405872296551039075040749622779849386080535411312066096163088488693848272741243732399627819774164799823197215383462887986443503583568065751785811741534548320394401932351511905666318129680815142057408751302309697896791796456544435657628008363590315663619131327445071087304394556393873451265953149654327432115030910824727233544686585071774783813268492400186007267778580822636527573710660681542128306948050517822076609079291789101075423583019383805525893955906245240912369495223005697275936522760636778884379648178747530209803454722948799018478875447726115970420360789070806106652452388411781289418148576907827246573370883715327964180448539376689199722610546479558228228024650148485632589779084587552928049087951970198253370218679301101686921717769415922808492784267183880041802648124945098290385960678102418907397252967667866999938043972201986315255442723583171156639012689034650988175398377907222066351734249248670600744231206212199023000870177818528932310262856520098597095604474975961215211539451400969535177404458801767291404716471246731832136370550291149464914423128754978907855732832814843565690689682555468524010344210926020393430982393361782104987072484102732412222365482062754386149504011992144843218910265791042689349684658675801467985460886331206166982607726236560835884106403270593788331627052751634223919232602688205111052505473536636000184872400027365618374210657226712906364096859434885069392916177312830344994602119087537699362273169852582559783335909726192421765593494728157695547919302456183953199483550895798398166164968257568879719992381053919711127255467361052237106222694538605764576474868708170451172857730171776944168643546167809133257567274905195633795856990584366997708329967187718058662069686649276753596093714570167978133469973176712712477204425021390222022832537297043864869905552177446280817361472072601619625360073002001170210363672492874857211650561969242708544366738119276142223771688251653715496801839064303435636819457763276442167294327970963597093037109086637881937445418709491866225764315435735553326706929483605456645286146353303169974568100191068829028216104704625415714811272329475782757790006735004882622433118217941852579956360486009702483060647861358970624562847475194006766663622255580780858508955010258218273807357802330866154334243434467653528675874000339452135242562947599233102986969010827375375092557717277828421503887549123635402790157242529074340368817066048365502502400461224910369653766939339186524503267962021050971525339208705042949611832540067864733315497615674517858560497510978439434872856673763353496581123880127848472468607061062328460708337726660216007477296210535131381817961394462700186449276605788663209996995030296757589706445906859467103327277186879733697113783138432946579402851950314096873058148440837980413717704082101110887780219845372886262169824680541097200068858447090954086200824692853935974832011289725952726449830808636430888491701776825647008692694739264120399266110379391042688984444934061171649217219430636873635679098411232542454763147306886557079376864772079207322263035087080080796009016284235201623456905073691431854749910706262725524403587158738362248494958405471662125683162831852451335885079448761508916366511867033435544319885280994055107844591222213006317217760120538031056875667212815378437810295834201316559621595383377659673828352184907058652701570314147739164744175862974149163456718300023641551400205970731703831011820853059160782613117474917330822792271417698945285722568390715696397884217916648302087126264807775594618835452576353961114209322312792814846868669746433199672346303375720255662352444476118255160109181102260317646892461228376603456802233205293263677150370854995577477190932741416842892171464800686687518574624836616199793303992800071942495707098056175989662083788253777595218322552323430734051605235630514292318413282933584801076121840331234355372515429748778462738126825095328103461650146589180804159197156967152497988526587962788804129711415393485864742134655723152138361913606309850284073797102555997269213619848111836868097225556240215869843075968613416328933352029184318490320963814874804164194448280724251561803280139468033977421034869963874453336636509495366646599551362453033601298868515853087399352307841135782419818189235292711943725669294021855888017940715987629093167141861138056619434816405333688238721985298368896670742184614664018675973261195407028143047283689243373945640969206932483453224582753325818235249901828687551215586884440575621245796928588687091375401899022317513522702479041421349527302848955989345031236535115212987554366455269280803248941219067490215833150287983715071161864520099201292740306983641532889946414856766472717097099643150876131704499710649667012886059643023098421903325341498321824746742825833606799710740839731697170900198505194546403504653570128452894969294747579535977548157793125488877364656442378968096157779847942604271271454728087512055087226788264378910466586746591625205953820215431496030348471254681229665678334810529895479825958586006551601186329701249844543539449034517875892605947105751280477372458104253294330304303121607815716037280130588770864221484161443475363734922753046520437276671187973743188612699672829788361706764583089741380829073701555946694966241836495139084041360472643430679984636334954605334847210084095034307642243798116140480881075448928410612987635514163242897648469928510526659697846189770455780651452334052101982471175124241802534093040884948179699785587014453796484366598380494412308122540455300396680664651774336146687148800943731216427016297288311229246241723545530605473380621023112413213091146801592069419377104399212790362953283899994340174350230086803841423977956291141714147193192363720133044134067446720702040459466686624713386765839406610661817892142261096277985869268549036473487084596432816504836927132604243244056854921335687579288127267744744047760439558272480545550188132506980978142419174661140307860617722726126236470754353463491215432596816630670727918523189108650918112512080484123171304554805801457220227553124850988715110552319730744030122599517186652928499871477247492436467132522423503268281083642136643635045832961143860288396970873119829524166118786525451391221886000078460030039816107598984497126936805466847097587323766069333856123583192656300070222151217880154162144134814244545187125531274920437752674652845671829300503944064467637927025190232205760418933500492603826111044404744425275758584727075756363929304745659068407789908249865567650371716079373390612320735606775239369070042314416891671565196849171604359492518637781485724545742203738487712686901737378646769691945910225515615530020608187582024932271670215095618382957093260530432462756048192053931376487676662534798119549786733219693401026733673613668247284914070835600477545629981037123620510784549831008051861507344384584675638309335913564632134721863477468959419070992420549643410034166023043218196397218054558582831178162431911501944598497474598046893331453521037540620634605311409567365135024541107502338009766430817197046244211187775010037453703338621918944793569896387800147188078017707805365171741454140896622783864652754358917216922787279319990627694586073478201725007716893046824042745001627400396750258690206422414966778937133777490179865190108229517637626442614652664077262933899317040199826520089751097626451568503769228498690514049811740994594001450526102969693609759357781882070367862171019144764794599862876108051861596455497338667704636371076008381395409608031647810550681794119571091294528931976565450787272016656397480095363575186436289276983586825801715606063140730039798265105505721087618059243527413345663842601492725375265929732267971326640939626297581340116880485199656965903006031332294245714077087490718250895724546342689776719445115353906000900985507781621341865745678429553405578475260983116582999626932228855265336774036663025514508028387903812483836567739116969690776435640101484352569230053992945933215067965102909416662992879198573935030472827622918327643756701509098804811129492806618102728208470342297293735535283616275787409814889505511570129495072517513862477416056037350624377577248127403182758423579439062811571100497159995034976114349663213487134829067048747886656739847755483499664291259520566512326342781825049443355453438181913710370333550824610925987701277370603122199977460285906707099738884025106026406713251250074294670284368667923146903665929759812685183424541697747806159423160782103200975203136809859247169238411049669656906698285404443891491907199885362561118156129095012743629026660376928856925633630857267682281233010083149361371071984858296848788438578560530495916882662405783570544913288177692186372342181251301206695732652016003355272647807421550095354376733813911478512628915082903203482031704502458664720653419505073143229929801178617595215512728358340279578791197072109011910163882105460085413406801223374294349241062719326977838254962174020327280162042137113011718402560568745624899130975796785121121090531178044943956757168055093800717164947866150192353450770265471085900416592743352062827804937688739122808483325171803269492148131697472898380752008147116703157752501343151264617827510963229837470628537934463201375854461054439713425513083566365598351065230953799565876451931928765076064286515261893792722002757579665151968881495363545323637174986465903021035996430364842532126959957627601815482925110593510302980990666283482577239773960850970159003093539410858803767874161089976873306982063260677291033330675383710076609122509305871627027296376116011686684645341159926430819084951409002349302213984888723547476038574293307121012762694028673971038943171642724722549568556813703360169055578545828713456712907201565363875609541373377325790245781594294457586667864314083217522536453040384518207960128350899428537637098530550096619138631076506333480912501099700940086501194879236090180451925705978869269146305903645788608971702951358386029923962468064178063329297253641013642536013333344789089178041607004280357174362089545832951065968163266361386708990708503216890546449505090363313955441690424685194399749879283300331135194340501205927748612705842324337349395487710956989314256926437400013363002502741097076236874061889583911392830728324492685753038827829512257704506079963855910773071265551261448247942914986848282793496713331041636736397140240094797391912783356257639883082705255961039100490939020545241597576074479896995040643648813427042006189531920386288371618437283139231644566477210405414259421433244721120324624850261437270875690988035763576207953511793804980724129450239516461774793384229698123206323022448958353498556512145868222410913913733669166621656703809236028128582658413191944462083449179755019468367018944892458106103587283320854067210247277921185054220303342002089086348839868565177930697235199749405842372173344548646081312944764168351411845922446742012186516965606478749106883083746108861596615178566528110292982905740910403445162355073073550787911496097415355740205428912975435817922702877051098528716974521429728134525114070958483661215552365441124026473188698447023740880264214397702235937296733896870737021931915721017813385136081356602041282757230775186415576532147353189121403780649377525269878213548071784137234571720388256816648419483262601741577418001282347401048244858989399685681514649853660175695737417315793450597260601261108991473474685378328552037934983504739015290338360359158256759230539394333867302567923445996823632035443386335002020053620808395901437254983397726336026788685019863757495433568145303019479166399573652556741741147934862047914206360545267198287184843755848961410308032903029610272633269966282436565395208798327273485897804342019939274101247913410511283467962312314462019767673948024850731003291068273837089403736468690020694532739977846045118353485305786348934004674785831631029601360983050260204766687636996536696763488859685175130554323394638516937586973070576399029891594771892808034287732189705802148585183185488201959195188104114609312693478976027198759750579409134371225333805781441445671778967764937440717666034323409745586140018087794888392882750826583791428267960510861115619134411829621677214641259487793865129927965186278847899510539545851322393989594462931870205799342818622579983883684662265046912241200879768439870026675310754831750378699258987991872146732893105708099620259672723412369917452851068082715439059486471266068283983539464350900165101855351709952519724175949251914230153035783721956079307723548231033609477221118765089954251260265939851027755421865107743660205321325750470711079707438918727562187514975532388108987355425392541496308290433044767846866515255407211401714823180474188729664116829572860258838872694674221672362118562282913974545997246917646695944202474551450555067897216425989087538026438607959724245806910514692530260738018573139155834381958829924721029885327031529146882356198571495281911664263003072746522405555654106216700470592652889805140266314660354663636395715873671569472021826439918000198934911432234561494793453644609630538625049293486352844482241502948828725390262405900765843396094960031139779634387794570661590012665309539101018714726274376692204878354577034853526946504754163602291942353401152921502240252733129604630637574722786241658282338536926778603004834244771478401920448797668464877197965490723680393493703198040953896526127459953524109732150229063186891050329151365429347422012060586575928498141295269932719461522627741429675780163126311843904813537753157803642172663323619632832970306020436850597152391986393749783189565263278934014247368074747589735046638477020372745937423015540168080933670377628779797826916764438216622021092680277568644759915303226180570967191847912389378193694074341903226093504285485347701648135632725591343706874570776488632752610545474910651407789997473523360795025860636036310318272721903563398104490518883199813477046266558630075917102026673939360271785012959741904539902155244924632331846433895615625290395421605401627607415590471063706330495167914602160587361532622325122638432570962704079114918849536080927411104742309096871235597886774335961922716523414422932709184892767991447027499543969992664995757414516484918173436597487147111482402641657366046801296108111723227611831925992305567608614807185429033743417346198207356203563664814007859341647239528655695270760498167366073666797925975814874580088932069946933308001774017173146188069121312906774515449771747247283846977844715052524631658144198532480638203943354831527083273638972280886568460285992744591814650335965140730497714898703375644627229498084702970590789819968599144376285781949437550912518750614909288701317334887281074101843136511364374044059806908059504644419575694920845510257509377233833960874394765300122526565567744225934777313384050563212046174451168017100470175864118420252601819723863692089836024890072686824031432950496312319114056477873670035865886038851531294752000740032220973502798171189010524194696786696439271792728221104518204302126191240241048109161310859846838616231294547920350896593757047278687741188991686483573544300343018819971924822864901163265435671797659865904016176793074404726072266778683914632174734471161764128395564244896803281713866738168580930129964312736914084670848825992763998926377194402967731394696259296677888818460678645397655573217954480184983191224197689256134976466190674984133845003163881429495881457146299705014689952770108373671093683325093605948493847190324037357966510139538417569693692015566251467533004597509368140270476965450117721974811203456108146440108547584779035339252774262623825682147956883359924664525886149101129748902075452084959191470552531753104321746214572572162920822148787188783175980014194817481941917858301013257708538821829554683932092849882017724721374045880377399197800256087775905802524782882429608324790900452436231863474412461058496694421525629821005196537656810404032141722705399603828457907283265966346114566825761403624719101629081431490348641303940147653872586927800030283930181507056951263483914341098204375668628507011505304953911846536192259650654825004178355881379949123941114391531073108753949780115971864772362473357337379001916569915628718520201678808607840297692110515619543429987350466602982037633237824046555206551525278441238521739374373546131098524811790959317523411788822095438565410162940733006234888510396386627112823645901733724074995946646994029768773640345341997755905436610961754021980917004657970478277958958077711020599412819189243065599639175243410851545947367308601058398642597993704394255372259439518442012470635235705592288065026220442226579362966763336030027733288590357224533298061079220713483358889253446585686558243654204185654443674356210369526979278493563385611023841800363696047839291427342822186766744476342823663682488465875923043703212899160050673920896299340587442456050390977801617357582140517145394074155340268865978256556352807296437029193203074587074422134961193976489398290483733902468697403074579026937127261184194554337693608027563355712452188720225151004783034782221353773597425480080252274107639291621250440107408869541505728304470213950908196379037163351375105995249755999592639667429426126719579107652370152799874462685393150260974713347420482509552569881099521899950350371957381441608566374484321796664156612298004459323487492759636095065852537305544532371870319677956368275081532470266095016951240241863580829405532880204490643532630879294571857575314092547652129144000371776983919959129281523441484013988985131444825307446006689195576251997344057879085656083584335678230060846377066513149178445238467908766747233344553287958127168509662372802855081832956510793410136865026560051044326613492193192929834897442455829832076939554062455307890023660535229284131571298312468009464590260162756854797072864864142443648324759412943877759637355323147153282248150823859620106635609099273544753254738269798122753010404879365574274497619872634305386739216305272440950457294414497217429434074563903051132170387593290502513546527704417343995279697916852086840915568776553222672476374580040014169623755116760496177708517512983000686216877766069594254578519573400480868344371534790092774287932740897016913887069969806081589644237516741164318023587167474112255359915802000911415331469957396689434075075317739062533522631790578463908749870609087895212261141294035666085233968331708195423409664461139551310355288114426547179609964964789951004315585871754721674833173154674338576415217453773605926651139802947880009828551014955809557536518179590134235330992041456630155712004775285577262426402319113355593467920817354629795273703120986937031930558756826407903537022763215602637380740514914632096818819440371626884261783567398554033030628925110408729864130826551927288687990312550111804578360815691283050092963392168049018289284295341416382088496683151485553554443587646399144198791513750903028536945005081610492276913659811494308323062582508702741190861667415874874021297048537493904342899927431242681124587328874395452130454819311072941914273466679280252633299036583928063576269041295393207416298903546063801480104316060803773250181940323142751629160173273549647573592202402657854163465161005961731925146432508428322165319697958569129842232530681053655226093583588110609104084254613864994395292387449685616223967455731325743431223661264137500622322557073836833786391215962127349000399811576952511509356967463734342835141493261999864058971812830959396674678304418737829921750153689627779797692116763723118157246482757298592215972198245856023794323095037241195955662020873182370358849968528269111148758582901091550259081433604217878959872372390038430526389389802707699849972109312802784692464552701888389931789111747359350783538192948494935931202868059915788317990292276017327843930018315520966080167644749747847088425915737268051361248773734344719279354485797177021648833560611780509450372876062675695829158733328129570781285430589509251059624509002245969988700772855699547788443385884550194481002610005854564666840176769272243743917082013187099392842836865068726052714712675405055851726678177978055023847092755201411705991465353734602107868756183216129854089386069080125327848224073098046384339540313741864547391296753700535595944657818797232836468742054337634107306188989984394729540220411532621620240087980741471451265973092917560162997295219875674574868471442844934936749316931221717107637047482166536103847377179129413952539427141273282576960974733548714097099038505141223153097599755932996098722225862502317698987036598286961689806260474758114058811364512287907617681166405150666239754528713537029192006886639021260195041820935756597514236336406874642716335527307413103205042243291508301370576155392252424828355977990454390332943553449618506825597830421076210938350090849021817058034661840526585446006325623761684066383144783037285573674604788294371985312796583523620734180449457779988946262972960167388524069542435426267515271159369089623460305427921373421829307568305274740545984520058627669199576531739974939715042971429780620286892025324366037480019769128823352971994321837272362516941702231161768337996943926160020517802054380004560572403516284684765245987496525924753595021944715390886687410416140274002120809858879846305834510710623451278770977827988342267668671054855410948519088415372567993692221489312297599231819629620199392777513215169904619209650946580660214810133747226567929428049039774950121245224046678616411197123281912471889607657394218700427258487584878359385826657033302839182954093545623474393853893975357415117461404742214219339655374961585164380599193680678674808266971961047473539101202263080189008846194534268242346281602951566546354741848444151203075716978849768353019192564976848256462026123243401515383769730255359334574218937969048943560705452662286896139198747129345904685346283778916506985532114088210552314291706060421192785973721245692218840153197462571229081703354714986128936316737230919042076654411302344506555301801387984996811330289924510390402966566742788466125865291078665961367260881512567441358472918824163744161569459179579129426933758336186864447817396629850824523553728297951859705171068218383639007615759359896406660534683873570895086882660157029901429221434065869533765916836432943808987235921088804175664835344929154853860719579329643730992552336010793330387234286642668791259649125887959911271477774379108132611904225389556938740253299753377107482874328692634046501666913058421978934162264559313093231293230656625807114824885885723130705027480268324001005177981863199250546785093189606565647490971488885467366861476693846570901133984135763878853347932969644384679622575061466649314859710606973664236560033053744923751143392192302714269775055009625301702706191580915272692749666971188382140457640913960191171783495596525746524187448765170441806974838977615920485647153517795448044106355034306295685222963507636075155150215912842260552909287384122898630764831301623261900732627285400610573608834326023811612074153253811628851751477692117331430514580078687040016784034371569125068815685940419915020968336368746736498515358404854778193344252534583676031111002840500270840063464429081837340834231929778578296395975153671811678820880651936450601842351405014047770305444741964745124219411301725695437384540931960550963205878380214927116677274093831757794627174592183767414000234172077453538427593813508464983442145716589804982542890199334171875226444503347075302808182471773221983029604050263095766112510071178006843997184531006000466253439491844293258784169801136115093445077434506634246507461220322382781713027840485879483028887223908924756458694114739614910373200327396611907270767155843878421040575538770751715731853588787824802991095732472973817698856212443211679720270262038878672670591337244152756737567109115341612568407279766909480828077318059053825262305106157054205783800461850726318053039091753830417713629450832936613632696670744113068672952677991237316885287803274216769157240697751976108832349894020043906931450159081809123973365388943263211024386072423668028138707617391098584284137860744088898577244194380610455547426352141923607787631059912163780371653403098877005489352864582416519024647302257835225366654446685938721138495571007305313441685880353581769230840312200523108639695915730285835943889143119529560067328385602575933325074547066344224074274876144930461481067679358703847489994175326834594405230647198826626270575301534385592175265965497690344111826129679219171269819510313667441645171302587494693321410875224644290089050224326789418422383110680060119618403023525868515269651485613300653637680757241507603203093149705713143118824166939344966995633052188920691554475303990087986031651148019056764460352730636548953252774471994478006838107535604317772562897967020394708264339828659299979088725735017395909277943751654119345907094863645505832131209509861396703201588851569695669803756351776246460693957433475908748290928987632286973915569727560586231067227206288856424974673907065139054117412651077836668272539153499088604396331716882260701925139898235397703784924748100490450747248576503651001548213458812691559918695208250260700419405632198889320327844473893399013805328333566606336660455879340588888238673081742871767661881478036100857635284342600690095864031207716103226005087459538796768308466300012481515499336108307094277407020026902090574127175005655812581645053247734267472377598765706214055889163478870244633979583089737095092105588443341484241880937321901178873444005761864015980051305567593538246418534595273229557369948354588503689803654573280704031160323304564881139749269153302244439204380453255663842672904464754954854266386833857116418089186308406845328638234135170075861621407016763624964313010512542088017552917638566263236657182654131948730962340266349703705037329159903696925142441730537721116949822091666862280679391125454753556978330605665528686038203660799187086194787120580662948530739830443112679345839891114599381491997543246725817809508087740571444244398443151352515332607875339932944648562750913710682436368832714232641790063782879186015477367581471619137167071684537610783378001908394173728521019882167959546878220485862429143761036892870428930135177375385767615972769088606465211355463785539590913086474375626989328732322853838502777882676583378028716306657544732272444704290031686715645925323580493033942231726733862829584033343939226133890456744471357280063026162423850741783749433309040906304092895738009419028351323706292877935655007191155141981796942990068439853037757771635930736178258611552374315100601101983903659949378890606904879867902366604083305456274364817402264374027113157288479369254389889786592416231545537114761526035795447611443838124175652308133646871409022952583851880346445239799688541109662698410545512856466335187436828747275367296585852397555780123132692239467557064333792012822902985090127881424693276160314377374933054166546860161158912936775711358034345251501813814143772792403236114128120987090917776204271597009095990080296507501644101327112755039916216474486366125095147500087624442186669827780458658261641584971886411235691632923749170095039636346201451731774265543632824080851606112708536378220710742175479938641325194239359962736232253051996551531749693145838887439990861804377648005508919186600635589713520428775671052018715404916160277172338882416056060585850968661058519755074175807144276176492128113072576235159008649305509962323472043928617433375551333533717646505971757692698588458798543241491624721277519747768438453491865066917171255828967681596789734437842112846543600506621401866862738045198921399110568416692950757228209307826771014768012886169647051334092062668798762834495011742766332624732793766620071435274568775912207056914233656488359700235453859343574800155283685921693228351247623086932029186073003985639667457212076351383468908428722073810419521222997899058469810382727279948102913699089877963078504547064373009878742390889020371584071065918453637362842104208267953448327534418839261354508768910570813658778141164601147759711808512891155923162688707104450353699882681860083035461585098038427182141187766528747195434252110858851045860510743753463484806240424646852744421814100862477225122435393565590851624935883395229826564754200831782640740959363655934618497010630215355296017661142779055956442321660055896758880457043336054049416698108896975704945644776606944655537034096951847038244168719909263110352994671076089359885916752317606566480925300808781914584168036660499306772070711715001987578000356013297875747734699634175963010677248603257929074861818864534995654486609129396909530665336275370459851122750957523722580551280904016097980108317663699750450355414409001441483571781319825826463531322521292574648940903664492298861619961564778914416017968017897994450951177448182554166393125129319726021462143131824641884432863060981598986600189484077463303985285036912671732178211858837680452107434599993200635524296972452868180305800792217381060542128896586056238313386408309479930790332097833783378633264137306849534047880274063131145974238597818494790494050152496445382497189871997124114833076444957812355182899100708704080194288667643588024225410907355494719562654622158606300469037079183668569107279902631896051751925457294489942015952617708461766251454822515328969698565081143013800124788310166749711521185408075263409007206535784268231901636268233404984930147205409106215968827690424389451265815263889079334546417042435282351357320808403992122205949703835289300484555048404896177753241662469177808165210786485287370361142195845822102892116868757289089388137473087103553678734985495131558744710744497601591840360276568661779339101368759196953813004244410504796305247426211766381515288323047628762470216059495046276448248561869879568923942660654468826675252360977717809222961030495494003313037330932030865911331447219627931533509549474103683283594484164281167594443356555647649398256366010485625963188422594369726736207618798403687460187577146404262904449775288331332852393078664938991271914572193813048875716923643582695001949176520953216436754075356841072055207126872405737536113788878784057909350786559373853348823145159594557970902574342649292369230549077426199976058108118354008445915438238192144655829266530578847925385879182495118077944279260972202698284101006249525429637066739057463055892357580442144264540282625479040343994127242038118454798472663532472447736443204550035012621846058351469031257830941296592575533917458103477852383416829088040027240259556331100197342020588292957743290315573878919495510087252767669052547642443423252775807016742174012933740613405452110075153424380540222928218920948474849067756771468052647167931268610683270155604300335599065325828527962102576436260566944731818452075596264536751289466322590033306942401515253937541176916081055141554993183136372285507173886450697097923379979851184936391304293367936256527721494424290705784764612239203941257105238467955315375800571064378835949059184786441294512277231207629042853208313550245107550174151217395119046416467871244771486914739905799167508100169271442988034650199306013659856278524262855401706784626041324844242004987447370830272017058992063488839449401858387888134060802883806486887444889829713473071038189292734361792784157215508868757944846652964329530079251653274006827790228484037580374327900367571896741888636461211643927225073312742463153598331966240209366524244117222840186100389151069627390159412296331813547617868153505032971066367819092394347820107747812062355922766107167631863060015711467275363192856296668894239303957771892749324381773420837917798730164326417596670477980587903312157116451313025076236576232510259681617280699611465887066451849938177466375399813605346319242321168972257442992452279317864165066249763318618928833646814309556235617128026534175588706370767585461496849876146447294161910001527804457857126432897425132831572069374320259891149000174127691030808714174651579418551849846051503048277113416842021353393272216935416612066960047822728636045911456076154575035116894520716003488005638917117661136279174923261379877839889518474096477115353503104987619639801170596918467888632391084024826997348777884537346895896394647500559526934309746863604540255080557778878563157729212403111170063128119459013520229743821111261356701095124461733140672576436675713027387901182160137322980917564858827272559999885909244292510484050539683730465918087203037724069234167177577867903833259840384266548137486269264387817723760516710280003171545048478114123045599106905327842782382117116333077316569606296979988675040802386674168975695719785493956553492790246716548723831614092248321470782830100484958723885419891595882580520337320781966303081062076338909123054369428283282219582378318501425172103143829830199208162592321547045272098150027433698687144282685146540494606898515402976328717561811904194661695928762724413017905955163642573180165525081011208169585205665446449208938840953897923248656846362032631590080025916888809600839242280493705575839243173093548823768713641685036939624153256322894290751758506234778555587714549078720894576060112329476969693069001006182466717784163439138919393875078874866020815882890531471374855831888403100217895975044956584770334837705308963470667261939032064713718771206342748101260785344561333199119585142451525835386155383718381984749711388259900915198564102282227230625329810464834606908628320700362613567978745826207070765926871352068414554439257277732545110333161404421940376662994356824638712870026124575380484297520034396064829062179601044731338757012621394093187227232475735323127887469447487453518165369907217558783200341657537765755819384630815266533929463722276325163547843261462696053856058656495321022286502768575350666935986563509615218916239083068268539302397642618260649957974047920264418586490798498110189140692215450462817668055445020635747089487939196611871429466538628475950591304730581310253968395777132167698514708629107804045211075825271934710705884232697303683278282142141194502729135780919403482865016901534838691159500238207935388260818248751140407226739614134187667670778914486077707035405778231791690458223602235455097541227026875884474543742583491971891609812017762156869065868719814314061369007462141840946667364881795695883219136591164959978998555908313343755084719151517824121549692593623355005552011679376996778888277409575053465352486807750465186377669418708081105123900667146708890199351066375155737352035516460500126465176090395175884699595520516932345211944810478827673102980080370553515225549247709068071626713633745548783309682350245413310929494898796303603923289084417874318549999155318609725740503601761621881670645743272165122982254756464257277212275696498867469019443506638673073068311739517462306750053759161283172788393368973936209975735915204094123614628076135506815995253704196592556927137825948351468289708751901106605103318136763627627632492529425350751808248028296487548401516102638621094298626090992416470944459465281022713418599062986668748114051340983948791427345565406613901200401692945374252848355338585721415860326880028126012874846625038326704565310146456597474154283565886260335666388265492927255482529887270961270255345342475598326495097804310047775888651851610038916682546290443404490047546810290194479572797836080976160742916010726177502468476234509361755892285994540156616434291436819506891405935221799137255942235112126254761473115424943881432233290470810138433442777686262919468328856930685913450143256841531098612453302250893820742830469124694479881002764311336676409595623190979452681963810518453584971782337783313035775999864578343283897072219254024217084429084071146292299635967613846259280867380049350356343448980930471587641413991132619612037461477186389744830907093284382109539474818772603341637600213421786950043488304987123369688881879166185342574936803174124925262984969997499525901763110369824340473569395571016586768262516382568811337190755854593330329578557624027519941795407240144714018614263726377084378318612651155397434655388964774086841911487621222919907636449139398753285247621369637165077488829125160180548669440998049377209631945902861968200075571624598892057789794835700437702065007895186708257451930071851948282210235349297175150279218244340191953844796759580155864103256229613953906789344986560473394727943924011829840584728914429496119099654679870684228760980515828331731819307919465247137433012701995384085735763779858173224067951229470946344729645468784310169525247880082372694446666138775528250230646890134743309314562672721440072791993848455153921586881851589602291441498263811940048884141113979435869042973019131115213346628633277856642152281940358212982718338634468262865522525610128356883322579184657132002544904784254147355048442411350830807456559529392923930579396375776098202857803572854237585202539147417759054080022551051710976615829326509791323675537712574408676344155825614833520825345106109868786743029617571835003605243831608709078207889075051741652956398165749971165847796179085470480848820304784889867897927660967514128757698948618641809644931104327280593694810377391839286844943981938863429328714358475282442255262517671531343915215655283410201346025546679808401099384666193391042053008078169973531677179591432316851907235742533288124603721398334080214282389064611850506939591388996137893915047755939509724496492635243734885320732394443144284107093481646762638095443422857203240766634884796806690066783328909597423482006568934540363099164090570048492929532211215574335805548694301536178523179549973644813932555070895621716949199266217909813534833162974919677669391460267334596316003506119299363406941061723894093239137079185232450852001149711074738307714294129225789049009274930496351754033975552325444354828798528534489735484417107517604670023965636355168508190129944832344138542816465977168361293946589341885107977730974700220781208988878702647252503446636078535590157619479182559148455525546799659999778715755124512647553849891226076662903387563235893998323207281159425394740987438312755297800060864078794717552397065507476070165988904684927140388300105129032348033345472374654511028089615597148264837792676815207967071560554648840898724855669443529211134271438782215704755165264106893967655832319297163945705639655341746015093847463527144738806260952819200868156023906042521407543576842481857962443362095542900498468053579820074224085105479014863024614835014187544926066039330656037507350324113681509216693859142829067394718936923132639010204100737657778518893370288449571779534037389876137227928882386897214616037081607241201390660634548068790609576422728013210530829381255781656226531679387637364034046593935543951417775411148379095222945043369331129571732369318909678090409066637115818629938734238352791805606121465838402961082619628377366419072653962546923035303966818346781920037225156975317772591393796333680359137735965252718678301182821172332331690728765111253832535630900569270139298012678029347552497670334606417594266527811700056455514919101309718414507450592931865040091273995699705937089198026109279308668731106295204051454886652618116794860333185018396357119443307549015653211425956005387739963349028979213231950810926710055149250364952429575135392196849678345541003473376691025867531975452351300069459073709124419196739399379521423389991150767018006236703868882972325298511756025874804630348172795230402774743023555029974118246951177958136849929826301146946838109327278072081776679871958536697837580972462130966675180385156519803150565593432949294994933075420100409449806638180807812301514172913145381038534544669246092243540130273629085038158799419055063292650040804303113899687533484185322529372819878932195899204429119222769370905580710082888219948472730751613148289331536892081106253176668520437399332283910098758783776999506558172856216857955666942319583541247561898005814137386934446792661116578451563656688563888848729926857367989925952907386168926955014292471288721685792905591341506452841400917732001957982670535844250388228248863813209108491346448920805439263452284754109903764266874174394279291841885152278490703710260560615283356567628024427261584355605105810917762906185726549545930122612870867058701552434903734984754470246700664681734642690941106183590340656141771155362266036686363953386751665680583696237942224385798787452551300253124047352304813004520841104827632357047577218881466121792053050456435371757569905051302426928784414830389990664463629183128216494010886861421476469324368188207779202045013203518412638304991478621282705780651766001941240222712396397455811954572948749825988297557900065614658862893725066627606807943066856460502519334062253673617436862306276180183672954657536193438298224302754513643930794375566510044660853516166019405477252587841542975308721496011456398674091731073931877869457105447573583638092640444280491489687325424744525723431016813785160180535055820659045620530367704320598285320493716385004333113546346483088262084798612763030144077581731977860944035894660846682630811244996302957056678298827265007130429651068911237208181665368104604426544537973470676255066652876907059738485498808285462320924371869515815626577004124512858084661115425533748856097754505939474858667591776572233020596779057121603684627466822921806149276682641226992807728635263235813168062345554033143408289244801558070438038326694699855668742950986530426328898499436083003479084675279911640107857444934498047794253579114536854994103412046716880099919319889485429743897455407684965817126960784901141325715172595257960503820980639924348200135598870540581282126629033838263214152617071561228953969656182232297609881340676555371680695441603256256081428125315107934460869561189410025551571401028109765182597245741666069732582474691635369332159809542913803608916398760191110484565154710065536807109945862912139491170787027386921921957947841951215067764383626965189524774338558299157643716390006746028387833173848079045746999379679516197244030226828014058345259423413549732334209483788518130732531517343367408739393201530877696349827835168193499878300011807482411684301481561544136631921021607195927252814938374138504210704420916203007393331559800759156596848465253273016260269433321783749292261426709224275393590342069822614776728044731456242358001731090024483393822544863482731762649083335575273996859690462599123815254213667836085602983486837360877867989195758796646458513396526864659152967245739995891072196131711117418511614693877902704139251582903170188389723250285906758121133091419671775087860172537085263563141208564999908278376401887483253016874578656280327066408346101869632960223298705734360387717484444251246951454451836758020911178595885856863872007348515859583876756903268912648300574749870619477194646267191416361479507166474968551198119440461545993597208789387940812463298209517385649192258149084817268910874928479813306807486374419101830490554348075004474827570008655218965692724993373820237011429732315788604834489993840390248367393733902057405696539830126282515191508150195055988264022671692073328201174106964682925963702592379319823730947764067944325114614348186588982825723596491256814679913504580038474974571972469064307091141726294774701188673446465745105741450503950192766017932179119732044948503821499550487540988776998730956054725797947706336243385404057736559645683343863555602092108125507642457436429655540240806876489368163083026837708099151002464934004621001731209070446216450868925101235565804496904495892898729009692540103111865926486581098195406413264338045897990148217601668318340994930583369144146260662229968221627304806924112348373911902314180646030671674432587568696155093609520161698375479605972579368394101685831191090884231643825440341270610390494849949728712143900436862041931872762737620446850849552874188913188245622469756361158600313330755720491626893491554403104826884628841602421606969418875641307549722305028466439882571895201454896135432418322017630832537044543470895367939658957784213446950991987899783186570632798132547937340477018820473615517187828263952527010325085004386053694785623352349266006292802953946457379501663223398085434913596016395050334671929384392072425713421314972605241764734935322605496774629292842843699030666504378233745175268877405113681101047657284268817521500359914024692332101510214394930859253145801964067749067506056028121856270367396516847090745338009657042213684787194279798479017362836785111240272993261324322284875865856247124504207574186500385739813274807556414023224121740108017406059005209103817302362774791360004607793584502152242625433349227288897602305290088177635537603692476858348205065312878218318210295427785133675972529247035526270793197284952568944835404913642845976117637265601147953152284569883107935267621707683497085053674658696537267826055453081349915153130604072476367358675057573672553847849142808396728111846030341528512418781197515897630174231459595475513431686631825843641427380892658962763826065693034311483164286239809789199080723717527698472180530351748627784315854881834640186709736270555164313879408846215405230262584647023441250821656935669153677921558328301745510798145411442589329709642321673986817207371608483108899999795125532633942857898646870511507849385021110164021593931933866806910325523456800657414125310512347478942261065444945568931144607379036578060797782867922956876047128153190626503186142080710752122602810212035983695818286263793358184988237419184272206362292407759946377361107412330662734347288215563682987237349721728097221146923857783491803814330354603854600310524032229030076734757291456767297104573681273575846895410905864926128083910234674524134389774099463662322862742614316115101006217217581808616263425386352223277537238756192960175980605491558674681981534325611956796394687575239112230745870726467502753674178524844398517896016400135897667464590991058123817824207120719189839017282600840284940584735539337590025293305973497038136746525688691562466857772889050440478498130841725486978703927511808284504643438043488247355011607170031934632378088058112321545224113743312752920971437591543603415524603429427598579380117020906564439066682144176646267513409875666494088584611122969790948354066764328516353379918213746901964603083600784694398654452324490881458924323164705484929636574410928854894561719322244697453583584163579700047584554194003201146795570827679491183393073229011600801614118683511534804807432513444236366126636053848178106253921149776217889418721577996555651911640865707441294082249074535191123399031020242675744977131992897555212806216322350796415337831362634750463281174847089089661306602567662904022299336749898652449810165768306340182340425516964023976443640449236197269038279246487665667031681567046045949387937238024509846430530144675681191523188871867245147695479354187570860616153061825784069677859402025342963690797379176278891932602301326185828691459404966034307235235993350129463340456550995962521949848407271086113810257052557886889033886165903213656481316596207842575308963124806753454747079303192404132702703885524180764153806604744142713889703795279106447074824838396076199706985570675569038065371077476049266288249027522426135564865158304691864694503444164996263698936513792985795168836707707405732552134445163459754688327997389036913549541642984741775096605437458172809458034189377125660851574277444376103340747541164711403852693961234491488521964622881490910846285752628914979293345459181526622722914523874913726509668285609805794795872522371037331785656278119005413008889090234807878674100277263657983995100355049029396727349486763800033249473752755250060286615635612151081332436826063712004353234537982162528449453298260262581194696377121067296552099635913168426411388746249400935503395349951872078972762914077238758707234592282409322697411353891911773351442607449373145019617533603713217989784391441350290041347881425290535127657219018210657938681423108922329323142909325276981207209945935505483603712264811153286322486748025731680249611594053673701076520953476577837647033626282198314794807952250842837397925113805938409386438615222119109424526175715200707413353650158243486854030032400860462843768177552633148330426042543304251458361795988722130237937238330538439473726953452297865054480934937964187308258846027237188034290943481315358450529036312368773507751294345932116459302255313668958121016120005806379442079103451945222016441464604842195620406526353505094134822427777355370445669195319954748544680647052063329240295629800805227377938497285987547445062270658185935189819310563529098743794737926328921820564549092237502612644549643939772077550553200796533895285861376170587533373726070400048788003167989678606713852469768987507709850584363403636217510662069407107533853733404894174925684376787609815006140138083630035438056660376732977075987988239191127279337485606154181043279920643218198701166308997030083782774654641192369135528900604277063373777970185435677666208282305480483018205651388232744984607431137917299690749871611054442474341891395040240311277777749451590858425187068571957674284872453645682610200801158169593507798657243507166557033229025082604857471077205835465392566106730869599592068729519860323063724517542758670076105460542193234257578070470146409988243902227919736620018081466172991746035142454958871212300478264436494318768017662039075310505078435525842282849513963276354612375235262550725003789732618067179006155499165620743965998725676204349534862338985237840276690680489496542270452696189025974349851272609296459055051076893389008805481255044467541473035207922011984916558712506527862434847825410935422629814483523316513577658444080755584075570785954978352526910462881963570925212703315741312749442212399455577828084415832310697086584666640949479798312708434526452197669119626422793952547577032205356393091402084749920055949818582869839861246836028121263944371172217348300116172562861918450126382545765843258388685748551865601996343410605063448465169772568501136978382481891809889678540203057637429035138213633991939816013560294602457696191337618745368919441635966227202597189794420742151114251082804531513769236046208135472787605750858903659776683352382361752366894729187620188645472737686138678639467859464238688860516805222381285716651747812148970767126996185853467754431967057670041652553716830072233925958338838892351784404247490047753383203282069306655167479253330875153925512151164954078295823664749160118683111576116744824080567422252898661968410634417688653733256015231794885342023434414801886195066715384523456778230459081234615330701626400272900570974819038766623835291257210152084142543448757446319463941529047400936610034268302282550621449572881446723505519068656732286714213939870442955504090836885155560410583436975310147691796073519200926700872698303608565437631937692987868883574733042765006205661600942746496489355119563522052359658481855205079302635294843816737152710949617098921905388288929978798090439423610104883965419726841581507447775710607703787251212117708251303944549756057299546977429054821031208028618112808957703750703137867414001609503820477880642961075954469363178643609204922234348270370810736403674841880421061324706394899671317927276179841502512352026556862648521390349856835735229502714508908046292473328714464043039112152662782493254152462587253630831877465240240264854107248567584224291079182790025754235776249116240687695057553614673797082015551138300060736343348909254438204231271411385197630610785268596170392768573949197958873935478106531887548009795410127735251438066248558744438551621638015393484507073173626811554214482171854665294610757388160058018310696506527368274196218815859662729896268665871186759780114547794697741469681714301156686005401579906639729023752368822315680401271248229075577073385095511355886258646548091467255116032270867309759825676672276345128105989977236983863033252116489850423740210867515292293148723672764709351993942384833190745966180444058438775847429234219682257155650084983393063810318378774589693103853606262936864381147748000531241277770340228543019633956519854536522244490971610966280991724169369382526982283071336282183698300564253813831628555088477672254182786231208594687976010411652595483935054410649203994193814010506128120252076620233188086888766856083691235748287473329941626315875072680331773389366128341946869964397463394339986025817575837852272151040232826713290315023369613212044027004736963672351930439604565241707236421826746362005555899896581410632463636334424145833368380954852225069001266380873046641583506830594441428644005918373164307656012719848486085825315473293560649026041693711092768918446339513029683182062705776282400458198463193293882092872387801833220432147876203005415322313196449947266352580576671686440171140642365087847320367721340296977145478352153069367007395117294265188034780180460389912170400929702834876278737232940065284117433645088141822860347323717818783649059962425132852547467927332283087953038729972067155143081320241993377203452779033057699463371475750471185378533721911527806899954771027331950385840995050675725063714873344624497561983214386490717234940850303316202423417898831452775285752812721314761206071426589644110727093723779633006792630557113439907920841178094430943201249807635429805785747291511329224832215441204880869248272407687201552026354385009203463252833100113484408434844402121062710520033584180111598923911499527874535663591473812546348729216357378884878936518486352696863589101419757026734661267669137308301573470419315090524794602778859498605319987956501729946517481863987717003441020717073630916861961771545153704376804786122734482090334920002677320445681736524088518332060289691678527714278181679590705331612242596075556630513135855769528841703635094413054751505864723896027756038111123257858236614023774142669619412680134881349155669726204817350575687600099929516222119739870217645343080468759609989881160849547522644175849605011480216542973815360205404796628259028992564463257697640171804230808434548720230088797876501274076634725462182896665140029004049080500711581980428328786374225603042022597857346113401636951617420967087948586979422784141304623944955270733883886025744870824348716514401620643026021028923165859939268557616089968768542786260357600276838276989272738303649438238199564468531141851617969410528265686303584802088754053722733640708808700360743645364638150605217917579073453919462574953175176589758861938656112878347405326761540439218102917274628416427912171048098138507817056852264674382182472994373641258294148740560736068072324557334094677614450112497314926360703299733462064967773399924562530334145277390933883247478700455823414570944136822479647597000904982917517115462607020702626937310549351691126374973002372795024785686633972770675538746307929264912105606647430431876160550314155646961325021605051513394601898230128239015768145336733195421810565885501178745594694997239082476845692803623748086892631086730086855714941524840315843945305106132911618551042780671532498918804543157483531982580672210480788434615648924586116845872664242857354196779078025048435946170160735451046289164136155799969970029683724609612100172858324646496266048596749674277521284203585672230193230324320615403025380426499180303257677764397250552654010119541784145669019440074254819442311283797790838500175060142569372562851253034853254126190703246766616096373181937956861299804895129636644386637577200184436350620685131037459959515780148613783121573751423667606947421002353394796490348926591524662271933577884428003843165266504547492387393831169934073947308918576549306327168517058304674114482136579170667960989548297035957866346250332484739354184592378369908795963110697828970231390004332565277684128190911376770264264736497622100189574037995273369346341675837330049745115936995605540295876857991522927982306091067408452439992526066830906452690950092211870146162491894724375289478969867425928734671777530816589466217433188800116527750210564756559008896291489791839072936703654753123409408367554142885246875169819668246193385278200173745413394393880532585829469658301572741984068120236314398086973792426993768187678921542873527207153322995855168000021755200973871667932385768933644354208732053066231039128176857021496250029395692488172358777097622817527310038492497195509932518240001729061592581769812999729820607294789285239925465364617002891056213333118627259577071988613575233133791718083015603873094506755563649129196570786122829372284154756754149525759653378466286925662485024779128144302620834761942090808620471644496377293638642334294981549175582441055837607597517033385324498407239454800784299508794896781597496257448591336455457412251706329064389893674624290158585939751985344105191298425349996266345866476564848887135017136882653079065303764599218458844113457200054995265765579929613955267149816275840315651457601611705049099975574087992864513806562792440168852879560438071636637728192707992506877272888168197650523641303143564335537762489060815692984987759691484382971879026192078166123479277961811021812530769652157808717389509169239690297200025292312123076599955363386260412688691750532820771646067017511992452677994515176116754949177569552493694405219956528006744103468003105553044827356940524440182015702128419700570678240771594325929420036958194841666789246236248252982684111292307170252634825873335814623927933264036706528421099372214118875818927890979627024154018575132564401437465226707850544451531976307950471248192436914395067293805899604286513098271525595774120442136711639218750294646197320376805534963512207708328613719067030006999381489926654753939569752655436947719095464866944791598855124587998106131104099781919626528859743404881093336852895974354998960998166433953267805190481042826638266082710332747720710022152596010712445137693579520774528679335159057191520746004321859724053153448830249715027869495897849992919538986473896920249654612269060022723744124591121421914520013109200673532587522157019369967769544867510957740554381618572485604526374210758772368661859581935529648546471483709893535509611599801505161851696133411448619540182243729789393805926977822456147571125944796487477075189803117905874083440832615327506579042994501075861181574286340460835172204318804937285685803712880297219171894371586378428879224732919744521083208320181037171664344229147606958858603350853088335414365102659727535843909872313563605653178681314776999103532676777984267739180751275937768800851419981849331284637322560637575171871609306974094859447036673138325945913973620558620038064236575933252972925662319866634951482170608562446241470533719697106578295421131602883662315283189726221315465077697653945723241399005390738390660833256350248544137495499465804806408898096235105893182965216661963657087282521294857575367287754145795326639970623933465992491196707614039444782650926553943101926914269605203710258615887890286755717082692250905583693757775240360095698534083374924895999541474329106037023988460076131379044416978817998342699442524052106264334355709690397870733137132016556113735200618112339774145695712107368459649580820838751101244689051572396916967823677558703568015236102494526427838365551120644473901013423530604992336968749138453891607978209383501042163188063299778718893188991311249146899638474899810161618911217781548744982427182649536364673500991763071230517592604070869469959630647122219032826254836243075385405944348037813452100044079481702514334383916767553719379042126309074875769291981485851448711563991751494571569808190001373757434472578015924691520319567980010872190868910956315423344848100776392822055355830101284796839137227012526115442145186156244003911345789026174691650082780861129819355864410716430961270067558320137620815405298297218456151387737321850769197929902238071858787748792451166820663790413403940046892269310595876492174792864129068688269026041499546654209464025228978110567378188290553295546892157903614400129603304937148895572853226221494857954154436821949412955187341223201840909982372571768288848054033600695320280962715685974874512775212298125807143156191970911654424980105122324302036297380623070223367835199563845867506673799538382627662650626569086596079888292849430251558967082324781572993378854711695356626488322842683359453151380856775520528053233871460942795673631127485381666060372476071477897039572630448242015433033430114906463058817468878223620636039213110772628474401388484260462902942667225105774024858290236355482297605093658743663323589107016421874161005594986658117322067860061063709470150653674708152406453810985643494139530482621101583812040321234269120374494829514706081671798170832421215712690462449989187292027055141943411416282219845963573877405611392114867868263204564320131580425246180112272355031513563509749947586715821398052623803769639022449703687044262163866823288674626035869588973408728845156622751103408922207551410001632480655530878836800641039741849826654494282879482308380013493711078939022466201051416260598682409526055947807358237470445174035190357617132666522440812713118008453844561063919987099930790984005153479285639348275852431867182712220947061924234300746160216293905805317073601627286231815711999111804292603346999901310591456764185919328827061789353287661757027314644539083369447782012915640869759873813169792998584422432726386660754800409680608547398065158204356545291578124917498303334008513593523887601838934812715277004340994482093013467678599157691479450693747752194217380211769587644632790516346097499107861394611193097125446314312989775780400017976687694989942561527335096682012457660573413559813748790529652891278302622902441462045237387333003498796691702483669026793840223312972837512973078307229035739250015170038142810922477311796223930999646668766044286589027137236145384133875305297200962126751337900421588385768950959609829577357924583736116019619577767517840861627487703650844617626903754900956522896339506274784878874543203095854869525378564847261027956123972416249641410482462571493312556201324282705551349904013870400286362255509404490462339289513013623230256989553577647808179666575600109717767848308374831183914460426694106272597426979414579886347793354903506647775451061555257474920314179072144312559085924426328974390816197525674130910284560418197642661211310291510724691846860593609267835242947489583992084718784512274926219362278207203058513011170110855068132220947617742977254271918844523267442856362344229851161800325508941058356343245359949612762458388169091414134785981291603730316050949641538161838261379563752932301321194054557280699403070935680859263076403922212359824463295728628610937916265784295803242006117285393720781957643563172701490649793135854699574168678282602564636808049893866566603041942099114236025576782633492468520184831409493405995930136683152107837490045435818154308848449105150700181959017181408750616622307091478469626033698834405085948339021509297827232979323147647484890450931333954532175054001853434248675150347729623002320104789964223737854898086285308242930596120793085468143326521477448033640792203718260880703414605540883662674914468331388171067084102909257701477723341143072370758429040485182234094423090940670810963336364348460108606259868694232354216440297987452428853618411344740464716078042394536664861801716731301071644270721258536141284728895710798280754916979619347840717858634723586727016102345849120638120570429102439995776318352293997405953374171612408396621087041370489105942874070558431084674001970286354940147901150537071043795909451286501848479122599214439360893164954648428752165296238440162885164030857728411911106972251030436557868793372353983869003211869947113299029204227595783190126855023544551119727219739138776070894452635757727084613395307142491182299563580203719734162765797005245809975515214213608925513402163579601764078895675839889970122524394570700111233750551283211316871916922165481209161513980710131631527135423503673048302504490449094436401075652321207074045715264535561153823548636786450766894292227599866594108656462649458710171661836516246205670183376943994383838959537294735153787594475694501200114554645283730700005323194925274746553389809422338554931066785345914642086772640399703513740066711873534097286846915993651916206645720128141359653581019098345684180368493809888537537578563157078802685973578090894137314365701185772799685580714077885942181787873272515223540110971252422733634888966373065420766134951500975179513429477770455085741886025130547177509480100254938476204659446074306882323520441823253516846161100977902968070894533806859388284454582843278305477834906023358733708860312937701876011437610909367986129461526394839678983336647130998958247457888904346368858532346884329654195937074065778202878723183770094335932774688290165474486370296362733943523520001955756499512784095984589527718848712310831703334844732408722014940808254685367049168013511748707357043434126094825287615630680835441299272918571347361768300162565983858429720860933088755541883812233992816608694469706634548997965903932627923642125655720290526908276357513195226151120503377587243914905423013952987788901897634965032927713835171135583682724133803018357772259206993520114899178516789345373751607612502314808256997700131933602991276703674984135663745509897818364020996059045886726591251585120717973086364091207937804866517491027312715188490782859595319724762791158118436952919091361098060229440255406623092047464367879931020854152032753336398564725625187882008832184653931178390744525450166373169352921422315129712658734298186081246337032123150197407379392665451596473818698303413503933083057332346327196126938262893954530083801817106214287038160792458688120622608665573627514296552221906491396925499588256123832599532287250584852196676713219086829648638170634571156481137785934200696839694451225947809744378394413675229640842867137755957420641395238299988236056829035113008094997881986440637173559783450782348097478787952917481715978256678988219417606518843527807960011434024659051310024309157151722913827654340201199532439390646829940390453729721527642985849956433113631775337503807686166919673315445064258832108197693147586420499562966021776089559346485225703364226048398318533417565588864355009842595261270946270399879961072637940229605842725816665309081170943681536827231096302945871427028456828956993665882503440297073744163138154081947657443155217618600611600105906258583930390633978139740677709712048577619642628336726410868343344319488130366283792695106894374742669123896595311247932135035722522242900004731414154771957249721511503851538026686388942368376838062618548180206382101672791129530559852879077084875316069507082123998349630009924899895222162475435253091888903082674139129693441893910118145596760850278740594886009734354007954602685692918432692871592563510314893391701493713566277025278424487071556281465268562605056748229263288002137131383304097680363553952082467406849987153646660679632346868952587191649113049788427069766785099376520652445954841506052936074057788061541457030526088324155668251521130025375013452032935831564980724433041078232967910975647737995784125361972799861074763849332680372955951413476533965852667262947693864795758857939925587030633599430679237955473267595411022006474183685154857185177378239072103937964556717666496869129256380995497583527624025318809798235878530142218413613330979388928140752801157187517243222628125907356953167879504573429720029113696739018199513258878508168913395124028514800682338895112333059993943326456831939497605202788527050692237754636292653009725109458420299228165273770568765212680786513140941984076046861509481191085143599834285849587683824994027538329286398931194136237512051710340588854478854555809685785121108435275392089652749073088684946502107588639930245675099906651042845907275941193661452736100631940128454312379588652615893863463311021261102130637191244400438670900906688291766039877522920616224988423557647014534106353984142303238638513019115201926924315199783494407976904767081877278283235972217111535305969789288722806282166337382391000834076423406808170808928987213771854297166531757804070815398539052073651381807702103183931979872077810223564326329612283613643386878046826832146364850954667399529241099618601833781263347282794850809917308106060428972400354346926446172874880385142419338697513529656927781636201176582378512033086678470794490825575299259871958015547515645099437577163660137528176615209202422054339674128645589513973704125572920070706273166623646988237841586741715816777927061841695726671127222178956994087540396474105841389692118025219021516779128080517756004555973400597756886170730966830348768476472533113375836137782604294781527326027371527532864935763660988037329564028165853978100505680541301171489590004045368939201886220338355564605860006861032033221119270997381727640825823332434646766506174248665866780466528810049236159439509443618597058092448515639587637004789461841365218666481868938447759913749910813274214939262457354824204269465165175555748247434917148536968922620852494717719809229588899811570759448482565326828702049632314288735037545057146154510966950857775281998826883241068450550600731161315652697994666338035863429072184579426494453141966783087855012833995077557148526959062721640043739965876735396276722660937301764561410454090804233187250384432883670685013521814200053147329875588959011069665134725835316451522039640249818367280564433433209744643900940737645053448983724575996819463752802611723797409580057996175602210992580593284032481301839157695439449224010330485418114362335403262701234518882494749108603710180959112075668441806437098938338292605089157834106586147157539487757991275523702779701514711104601345506817728827214543052826888471067735595351188691756884588789763827276083318491053184117419620212251073293874073220567560576097694458069112430497306547944077623600415580913528526944334242660778544525190367700672087836875289441648526686899772181792157751010521476513730406313498355520948848388339851391614785152360202603286357726977925385255735251944025530676969480247664774351413033565349131016141795028294328780391997149934477111699440468902508569740094508497208534150173720851852348930598659641260847266780904851344344932873033261562948624818817931830172865499621865805634062026589849850068832952004348630508837034325610945581583130672415981689160495651045773177542182918457426522126418096658065711848840648788191692183384556778784355800246109511867855871149823514136529497970083816167495655858286305272198079407087221106840500536100661177545851721602524289488429214335277457411206776502275234876199745905708135368997321251054918137118005594457924734020757113152576831486817277644121123659754916318074796040619330911070358620465596690818942841564687773349475077221093824511867347547666297987650488312529056445294048993814395447642385216716789776333601324668352222645639975545562280217460001279569390995643695375846205747209671347708475222755671360585206405494854350884895514815815265945684291560431042583524406686831238584637253520928296784904291836827131387820238788663975531181217140953923322331991486626275423522446253944112475429818671249865095933784024585565028174866942098082111054790658867394959170969234263062278478279275119021433648706477576105710626484971424889292260159518137424326691439094404379093081017221849867562571804860901883392873686520455296758902065072961999398072496093833184437342258371113500758109808590147256336648386593704522144411542253579126815805906134861126931454295765655671060350251588227509630993447884633751505911257463839911575220489167859978349252093474373566817078300565111324422130975679591447441010328727745777721455373728074765085071662200056589936799422064621249857050271651591027042947051902791600888248229794222862161899496753746484598906239268005204907611029845638934731515177868791589597869749326636292376870280308572707626332645614424842868640441632479449762850506887417945646436274733854467435502467009176787551504945998640823147631615075033533566837268604301268202662655125697610389379113018310105084586136333184765788554443419024311830926621346218429554782424922083600677918461620320765194776626259064664281296873956487620125390002663097094312820175736715841090941884320920466502140583166504994134979257417929047470569907296761165870144195687280445584530970762097906328361080013055801744612354476910023492659687861378698299702290989312775514356046405151555060706149115986928945528936152390225668736919563406653069035135597168746621878547224563585526807747968507662511528458608492814165543242767669234087831909656404824585006128034287595721200034297172975630335135849531387500714327892474167017754860833262653717628606396010458923116789460125748925311052313556850023457572354338842978914714063492826806165784166926280666935215708521375691700354476444654711900960845696189617523987497156104326984977381652202330480991899771383375104915861989684637949906123365026815246154448185135644640453368559815205751000087019943976108882480468162652117028444855898106102520943785906588673080306071951159447432255192553299628082694478225463942675304368853106900634642562004018484573579566208359807201637098383398303839892728081039931696287049256643952498659880232681894950559393427786819230540797197612859104892657808008387592473160149347015323953659606076892887541419974645964297701735911559778035509959507301888081618216380057272316668670219238690891350635203577813053819072441676771226441834933164362128967294637334505290207798780321995108587599704014539716687437888126977352828443214807315322561968156248796868411037867434756814062678127015413901087847062444039757784163438253684837855322820279721997494918316255707056876107443406640428442782189955165432746232039642466745065462669767683473004079259310287680263323797902429224836756531968920577068244676634176155003708812710258696796617752210642176254038045912726988970068315910175178764378513628165579217841036644144646324148230550164396675977343336640470607048024802839812954004492044195172193015506117391267552913281131430206149179075494548731453308611251729207559378407556770636552153303600463220221367712956587120352423205450056071599710690598685733621331821953180881251601091919518289396785281480294425701361712955750522585681518194458840483815991084500151526548652871757084495730533940737020657117735371574374506841738606307111374645234557213758364138101163367803284575178870394231182813855866811128134597606714636096255805273635572449477616055570338085322487799167703238060737936643444128772986804433878238420810566140366154931811481873600571538701057610292707008794144665006632694560618798307095884526067494041453153783180826151028956970646353678576165507537324796031024582728605757858575250426408689708145754049667382176268440930798136034563764212492083421024396309342973164677585708777840303530985951620263404147668718820869681106187025105566322783082636872458821240146544582052747247530247446984576503085872164763547811475986410225059331073584786230341948678697179825655965052192244107836302089255920829533916526654843325883554787158558613461570738626611680894919938766463509481205965968777319509703058739315050568696675311001460016773513194676027853414641073039478342491753898532699069384339705393056484641629923862413422649847405784253478773154887237270102162537257575675116259430296469974718712706023459934653398766713498979507534019248051945881163653375448998609961199526948871468348423669922223635669559985219902759318911128408418841597832852212611294466014133095903754596582572300447891940911417283142229396852454745485822359721763146082175789003871770252817269644425713297510587881028486290414107846727302547995408303714851176142210957520979325505170826733623316885549917075024702123415762449798161947443945812837964794975389919859447798024949409089059707413257428295914440431914053207191743859847321310883862048885291330034599117851995053758565202688758443338455405013350324228339809872191377949352667562421297012551178309375299948557269361896242589377901322828941734895381503904188010825442227189563125662744462877562021716521798019739749334497044445263602737592795206838119799351759139989901338007610837425830596411174384747668871020132504051997336000479597388761483321822308762557998225933834732288512753545550598950479197216302890016827151761496770536201896480691337182450177262321400107798860831952131040442508432725798463086858613508917207738720555615656124510423111697766431949507910050760500893989358127027918581875717955972247480313870246827778633353212565345630310460631252986270273598231681082234586064672123693370293007813877332794027372706344555268567543054482520745825336616776551602794114868131766839356157124825472194311043823553031379228961132821494945895007797026231616704212371217855166236754217117460642129807364789492763836713260812545904629853532067146109612128709488156475632294713437913710486791701961127730321572670632218694810573721217607876985406234356182746829522870036147647846472922761908721026962726761755639996093589110745794562716514176279944349199313100871893261542456082338902923200798689267127475494618119932459718678198833152201948047708728715721280378001929335364515323198678616688388075983217164777742646358952569104874550340448314621070389632594550206067734922042725799303620983747818840272455217396839766873485115808006965860132795616165184213684254706704805454227612874251747252282489953079847991342041595255819169792082079384804107710159268722918714134295559971367652911375850997604453629635600115504143949544733938214335165270521103330289030477696925460449171838163623239170402420982815141992289381382879359263424777851033616954393869474632520953030454987536325391809121367118552862165226699961769889155381989716686996728366994271650368940184338449398689299470656528539271608291674873605738147660024280445522709056733691882891924785157428160777177473667972950606987418688791790005215097254512603811925988156660416558691216429959583628682663958824795377875144072133810365586164736252407527799513180404419469284440085644522828120145522537603900734516020072246379417965054107136234906005801430187615001309406757311305297512118712768999849519550712167001301467539761596416108918736888031930263253008976312313525153676655798012931754305327167452676565932171761643041159722962828736858843948709908651293145946695029318474108170921124257583603535223905226514160808302437674864208593078372386630155273138060900868856182746099847290721994927319100786546033339422881387871659431122456974874509058528805019266503662443854130045126347269132357399626279164408944910663163209998392330961899626709214976518114582020310563223501247302825848359031243558516907157781611187422339264664291342524199561303690086647385461951928182873007239075054716476861550476057233224866769211880390172264756416680718432012589115591081855532946635997023137218991181926671988610657976080077991862438961374125304147638619608020287785383349658460126669873075078057582836172153679351539612837889058244297515097676993149172516824613444789441714205816718265089761425252357459231837929804612210921620285511650073935750228076881869354031714018375536512793172289636793786333650591272627540319073376925371774994513180322750400349001649555640881990715010260889554342087006909946643841159662964562717976567676047981821288888965093697888939043415323912932594029141540010812101276489328631390326816437316833993189359269989687211749926659743284252724223499307727304685204669004651018029478648573854591700926528994084507286080044018817890410827758549788365928767060138841359320092959071766703246123317758711151230089709253737086561674962315106101614653543433189715107225534838040598773471079224764378170621702943209070262378182400500746652654300265168853578804949129830643792221167247536915157629645445730608797815635894646666056428588068084875197969606461789752396538041188186814437770791222777582758118420607351899666856605367212610765964369270510670607870064781567863349224962083974835950131692503708407335263456264153391196865992472651526323562995770415681519113977884560950050668994265247477548027866886969095510854360656321670290512348207935174366687847577218635077085810615858384170552735840205236452594905377115228780715970861716846420304666922970699669911208651801840568801093443370758691773731394975928120714255814374266330717948068510258703050248110959730973613347361399452285027584115537361921170704937365746452593565920605516872168984939821318607063091923187968408602618586365399008634475575333895836234568198076161264388016716725046721320493001392346365358698850526445830788091445244307541203594765382119434735995771724957942372424829337316852163289091706469718251765034331158889156672236043905725956291898243553085047689528031819877213300591806217435063325209737647935411725322879768908594538797829242340328680123659258230256424189480871415133533613090629605808292362053101598508572169408148281800607530601696563607071531212042822016111035044346485576905393896854002223262588234215632838837117348438146531204907181820957413587043111075580122215930514329188639346432366742534379431524222472463347413585756997861139168791971549805648135128471977305288447721032976868108828004601523453162681984164826981281019169628081390166361425431837726635438268141626690039539596855469389732399368502581975580956441952997858743140673308120202389162914198971326881398295742487276565383965737740971207081538506380962433670261184546595219926089501768897201252803786218843634965104718917784605197388747139364507236061205674864595188434109777054088793789428133426677238062250499912457105468557984359456144322399002400487913166088461258885394641876550531452096363640680630605687148773600075155360807764945137907347182048266454004059449937124594544176718746134818605752368154535231470392973004595612400528942542593381501497891950620603187383607653453185140287327861369120028256445662201140882357497175749251112910538483405823722479308066501491604069194178977286326259300555468172429195822147787050465641414091345324221299399259015850267718992622083132980779586308384286424065129954873916298647776810735469858850460636609571082697000955927726297900791612598490341335670911413359117466271468389564440168589480932549151919141021351002280820846249268167407000584650215313955293243275487183830922754117698689349433123243650637160862886067694646564129600781108284291521033876637429887833460664170262109148096360827765935459916316688876851531057197652287281777950179201258152337591196391810598984470198933698432966357955664873686163294242676656387042622788764796699435918304622038267316686168977275912452337599841356270877414782893920240489894105050255376775662054674877618764553810409027586850374142902940975475654641323152157678504581296325387583407285090099389950035444655653678202989204386246832468030290382119367160909815556867228073498812700902062106907697491801654745693155305568033245681463880786484297336746089147976181138150277372991078097773259703449717214227263991813086229567299778415371985814368587930495262182426624939438155635145111347535805971034302777430124103421357336976399270255530896671853361558020772366285370492697500742261775435549028249089000378753652367784220713742791751952374891779984646343532351383330839173516609246204965608609015193756511592242505770918921527130421413002197770924997872984208299989113937626006691921900741569350837619315614006708732784804120900089002047492247443330299888188714484831302395184329474302071954264566204497138763240284079149148612692718462620446830304092266050032553450260855286594264456698327826696821435667152701842184288519532428710113651581436627485462734404487859659953038232631208209826711368718160202113724604166554613724394015807484429749775951217452693470845703661490984293985014756226461488160536435140722767880140824193194925371477399031703649863921164013036690820449206818558350743959871663596696138019135948542325094333877332427648879151244280188968941345031949028384574159975058459415775199975900657753741473164578329377199890843612339430351809593113068006598410742091508553677229975586898713450946005846506589647403637946213690120348695090239728152311606255345637971311050585268045942192369088048175128727869098726715132970995131740573388030052604988697742016835090245389805102383426549711481372914010762247125636899670948520746911939292501338032437298574953836110531320352863071026433510857009206287399147172729528939071155270881509955813262373004862208564103459636862704342765882566499014777361953143620811287692908029685386245395427964599959052979566034556880783445017272868442189690107075136225149892035708092859044516791551049649163700606065533358224488658424421478998192098873156201122208202975676762596357868197918510007447483311194674622527378182548556641773934656933172875208118179657977293759124228295256961610338604190606530785386883285454233160186431279656058000465755935271991125851442667921521901154707404254279090525416252500869930980722588111123254619369634618300410181521138877764546855664992274848612021058250262595696155406271097149515879514748784654237272839604300880008208401374068732316217607569799720375775761869099472132596977585732543639675618519422982477875415377776959457515984120616764350413204645633955844394499993809317653044384360392316223905124122751473196917536428965788900921099890512957294454419260917069170760810003604175647931410376684503722849546100504327356324468156895012922674709795321857449909738399389069474503162789448640411313066617191482740501422317650098567988420699609178173857157522607787521346448039232175584421451250177088571935024527062349835437835110518319640881449503294666127354403444622170241075124607218099947480234524135830380112463277185297976860268680351171842615854130076864233346190196696720944379643500214571539950436955192901489451181411595970723041936138739254925578574800298091496169083959778978327266462955814638416374063504732240702045808259887373868497956718868660009740257679524914491339978937350327483468699594878640136365576665129558600840351933793366974477697930190503108472313890762121898310949016396015656942826730017668376497645229727296920649940101774044542268912884451636146445348160802500782680556566070763067372388809478839381701671111061198308814675400849440088790957522480434585753874839765391798368762768363277162936125834455500736233674940853928228166292583762713797543244714614062095431994792151438892032147156548492833472255248998650459757378083757188157333043731331836681731379434433101809359389137520708946700007202069326827225278912161943218334562026967717994159240645107592592649271045488849507452652180517918135175315867904732665733461887551496258825425289897797921221322441914493252209679351964397557587830838739583736243610190745247894312153192949347878808521341854993883907861829413512130645174026565638618669340510401934504754350853208081542232897157544969577712253972403007175747170690186791614054062845250882641195070964898721091905527765175637059185318977820566574018989803927886354593835048520038576796415191490532504022831804306443279890566465292068125853183118482880619351052088189263861444308405174097346703235330797147301171701584165887070043887536582666100922165383252861641269357231977021002016786707856439890862088325722231068349701427459476028590349194021346874805636468955489562200463662591827531508493120475967635811243042344222080454066403426966742777367773170510562100837664934075123258638579624756341760220723301245297199159326721738828854118991796709334073325232051283907304384827507305093554016196966362025820338305439071885785727905032466044672490292723164945074325881547249998778583929170559607881824805185221317260421644898731666206283230052966421002497864511584991200932256580417500020183186810388959691098067436698817897739063565123736165251945286870740340272609273020060947386060846292897231135684931162130427848319955208663484459675736010102708900562859423638214603242658087792993533355929684954598754794219046678023057988958721061679745948521824986814916085058863559878600614515791891347407095695530269777468533683689065173238826147427210043288437455667911577715733978739135659695884598990345851963117418728422561144422808879914146347092928348681418723961564591728093677446827339052309443095444531667480928341948772230847022547697387263250086998555753772145083195986303859006792206629199949611701409069908375141875001901283037717641489042122584508828346281493679213060318843892538263566305390947369909108333805754011895692336805349051478772383994876690560549302558663583322336300943156414684173570281522459848504942078615542082503449900865276725606695908273060457630262108577702826540692990140564737564572508929298939421465530939933125410193551850450672470803206739514860111978878147207025069494715126778090690621833691013230872557281661029056198195650638275552165234140293024888863635844938765889649299304180613849456811411716220845193259191686919206445092587773476383233065659073927082323841357245393885292404754243326378881567910810138681399203326511748208170961030631305710979949055055257960233498013923859118329422065276173645131427709572676964336534190172205545351258792744722965471449098732482706308465178744734863493725512702242931699323406911296383230035833524346493282937363120694062421887427309091076163269414535254990096333650973265325390116452254319519017184585673622247791789482381154846369627440964839069667206393129211942467405547114319045865869954262150365009685262088609493070412605327320607786912885434429562790012606436352582627291137968816364444446272868299055893919809133012850477649458660190470572734384941383250012373357370794449921580342639998820344523006642421976571130711807847662727518456222333382956299809410606197913213984338302122850271797306090075288134546462475611159337801983058335344472677057824803719259562714607338259435632416569091785436703661524142967303033860836428111830762549285173065759798971719455955181998166420023031770024418503656671322175339311427483782028678591771986378617332191564935855280464477075068620681951225648066663601798046661102070394325255052887256202567507966610163749572333305951631655228178357026343956180551077951630728967278158463542730161648899208542010950599100859132617916877513626737331483776466026599673859011730207223282602092265245130046225568015904881702343621664607066127902050157155038038998826994221329867752970999226998448082543896021439012254572663498527376860567208813342374047366013691088722420726410371118649720294309826772196109823169572030632433576603138648591986663916067718136083300923275610001678551415681450315208892793678891401136413693589512962690449163784083979949495341755559262963858449454956921755088784645607682180648068932487514022040284302456104812730180228402279061566498511216936992564609268229946181108466694060228606616058133521930442313869860898505515448241413487006299300115002542061838078768114496529217180168251334534065861756662004726210641489081469921257867318441789058730968765609827095256884983334830676339251540097698543688602737221492998905956967707272231191584425169628737803344175281039463650377144852216980520697744510876265346887326235010234783408016264362474437531896916130770921952400629201240947421161335703131922052964234841433217857632658602741075399939225905787619346969799903250359805852391188590852842357159388438782643949636961528191918918632686348509100721468109225560386668615765518054352136553671650614801350230924391709759381614897560287437386406106240644657410582499583815186226914235671758416624987987773295219936699637012467965300560447683449510398686464897509409007097751364966931076184411251145527571537244991517026050798927545828591725089936553101953237891377641770346454815756704498076531766102215892050166345842654018764020681034797471325657035179237509811379045401215208671775771438621525533401386261478236137761170467974835594706578854192560960888320132371598691745422681526565799486388041089254714401449452822685999456427191301906654775211236728770452673044835485800104302120397866808346357221169940542666634400923929565024156711792707949418390661812052910820186311800518855528117881485372008990690606809627374711002439817643291078615876951444001311216779441495205530641050197514915655169332118864127010028943640081606797066102368881465699446296841893346291255696053751666881512084455916923001740467699358281527211593785703010027976828969545602147549626294139393240426341322873183801844475128065148473056611154791740495733733344880281949636704070510790231410997135587872918256165560126500790032097573599382522272707976353871934095841569664750259399744665778080248941983498016711184689230478643542340229251549150540469884246491737189458696708689523608002419387581917827253017720488303010469875248342526640655291295072593045245244621334791318644090144832105923367656983954466984498037079149615653834444122789641369216851908622530959562802952982294923926752343344378878858409052880062114836682180152405316126564134429701783824649030307007209382235124457464201271681332703328184855900605008690765492783273403771863106981038090636978108517102587686769716994350888712729181944162312796264707942365908112839254469245539509851039326911408952477032127856134680317274570002429378372183076185845468818334080561305661689573063734244101985450277919898535131899868062428839207272762064283588487575933418114819427567570641434587621930319684499517429678155813021157145568295453982613754982423860942439385811849180911446218706132305053972785309506952619198325752657693489525243705351204922740894710491789415987405348305762018864945375826032307728103573987505398259437930025080320190319715753966577204080451968367010548794658360190033188778375193705690047128199338154404699102718789276711778654286440265811263039017790757738637605468275111188567606324048116024560434026566190644799363801184440545762205787557472238699809787719672639243292419343151856260697796373426046142529261141585686926015357993696340926605973684103981676548700053138302138266458259777430240432883467746106346740822568310020981855312166609931812231390595800277834476329239635371316476797689849659157382682744964085690669109815353601973482204546394086955555312647189077736812827440081523914832789421984923517591652696694780071447525449661647502804385408812410571320146061323027090748758897658310191747433386753090521463642760935109013289457050395596223318619685906606898655106333416993928422600967271603311390357738417513640519289200211675778993494612368554460356775829106770563087288206741473594283826793243418015247824942202231184951244940540711310430868323105930923865056899405247836218639479712750563137137722412919798997750596705060870364771992246942058141280065008936486852981613471030106670927383719659106309832966541414359954828252256371707388109269046602268328370182446027943497822655487897223004517806157261655025485320598887560093907631999580044826549488492897773411968678450003443838524123425574290624254048120564009926456924099791752666181289029671409105727997801060932509253677952694643957486396308400073992048378193420429319126445839812583678278358989533373580367223533740630131540111685468557341549008409273675678135875624114650228441602416988754515571260853308579710290549612537730183937395009536971032529363210943964200338678674243600527149388881266223556650749170100703076495923347163468155271901477449601018482229948415713070796828844194801765909647461385947597429050131536638909435804386402260245253923843280853841607009261909940064656438929681008206073899567690032561177007480423462758362397158237221617056133018077787007690810581370003181578964138411725219562247666271448002698697801776917979265985733064738305118766351059954616501802295979643722539138861228614794883566709798426304187747166019026367485749713306837994424928998578801146588035306748950093848662325994141313768189525128894357502616524369394398955930213523505244215360625199810975804356578017698793708308955898937889967614339413737197027603285415358064240327688868873281076531148759228654872831775741705187814680195563383534691810904075440558303943349577128776163640009154746048114590654029374858561988274705612682157917450387767751181063009582820783038968317062876816409852163717360294315000927926308018301107176569390342012027961032028198540858351458656712742388374169183481662434803947967469510185358121373519269372567468679369661368280552267947905806531012171079710307468977707691881160084507033647180744259732568490880493318205377440986724333281076537176291491804338497773972942176815319096850774595774745311951002090689471914851954180676643457353230311267985260738325786877674324467966358009245251271353658381847067265163144376516237930910536508817424548373965865297016730837161442930624400195090202047523936444415152587876751384036639653869211877860152139573119289702006552541477860187209448600759349102763770489588571210655830197600570068117452151639813367742665361357252265784030346152467667461429218869224688229536941581218148627611413086231100428708651693923469219123145380035371073408186734013056400048705536307638312627265392738071467068124449214531916432805976313284322886586323532116177165224573941182299126212419368271083736966775741506410056931923441143423814292610135357778412469182065045531073144637255461367765815429741259899658949053170576088676275641535784230027421249451637314154841878211002346003332635629343805426690802410539173893299708093436802183269575126684541848223085831717828293894203003266600839420049434480288651749902439625425480090408492642702511144397840379024111993222567013530888980150079713277025668860076903545889742996492003081237670566409350828390495521811336429477812725925140568753677743712380053325376882921476032453327955547563219084913795542039185004126705576635891269090235276934870198600320443450479387988922694385969842970649379125816708953392159602764977980087435210186277029356937019874266430455812045925798652629001561378412798135713179091847424260209304832762211336924240732497991348433253286872291955268773547097714807593525099386568511069204791379406728631297473792123679520987131564371132085527068560080188159856142511325026433657779871166606895428470976850561196402160345797467755494732876752469595041075310658436402364004683822524791595958921664431719284401498719779144432986364876448636536965682325740322239334203580327027268338284496056635575462723983620806891469947966501348809752012821104102068123717074798882573571559434713660576574465927078874955786388806652159135456801353107047490415860437407092203083596687915262893721407795224974176342956232846692625966115964770246894970832096564710409838165152462806015862591253670184698540794532466566914065986104651245667271314714038177323045107059793367124894243501614967866962466909267754352630633944009012400684933816013375997199854522960576586380462598970949772801927320944451423138596700367486068723621296359574062097535468365384432135689801282673152871695965027204398190462176628128081450932458881763031927449588036639975937221610965139368064872300065076412304875430419282634050699289552263304966711301894688503830123977968290961136819069779037221768792546720383602032772803679806620660333899886966717337427084052144954276040800611939351258745934042154190176784242650395991888554755590323658915377473105000472780724511619298573937468867083369218091805569029780638057815467134065553570147573935250266504876089148617149383084347337063417203174095448622520456570358912731235634528531537839835001324207717384582131359730140328085482109049716929491455720762429235463274466804983958638916194017175794896591655933072987669108489102291631352855757463504994795943877021445987824465845282629282059475223993105221892399401972659445589929799162677186120100896873412913013608357817592991744726093297939040421837605009986638569429900336416115589269284274650625365863867288699624091572602179544162351712757078277573572952386854683548433954750396991075454025262498397875699976448630678279194847724930659844954053052282716101531552275760206815732952038320273770438420588185743785917485364109374700382004244094996370720295730730493643309476977128901559100519539742290331155322028385689319268897816399818404808280680078909975178124576382751912784313787743722429991388646608510156955755304542756687328385611904790291746277815604696989925691649274599838658501019921758448089409465680283376117052277549282535684486742818777841573629388232254847963537327489751713370143906543236181417391332708414556158969962744473165413479893900733490676543475691938495756825661277262613682826628073060141165472537726129652850675014912495588502532514147340837665400054338847129231941196835685898240639591960021654484628533538101776171538983690714378917022985039859941370411528187192353477982576697939700538304280316215789127787931106954968519954413899208333531165779227054017745989721877511064179304587391923353298336712436338665812736318655329897516902083758935213610379302829691827329134965266109239341374356381722984668084139556323996043303682028315374644373124763402180526656278491969636046786787735969425699899841089364760639810659964138409044749455278324406875980415963045129126818681715690550344320321958627485207512151838148752246728546396628040442231249583992165973332688778922813399644202873397377623940269238949934603410350933275901770465055565314253659275027766605704198207084393734742650835281985934168798921578218470930080111591977746255828961791137863981704357448697552122964525663882854434880247594868938468132378481396151235942042706419156348320915831744208172378150020478117461373647761358940462114313389317164668998485511543120804717756025258418532019648076636151413080793166376257175564748213547289018032610225590333174706759303974287263156808276265810979422631914161452813841270155612688819733984808432154783978713314750787667815968185092829898295109586408980862671722075985494609228298014162413610554425256711573769862040095105096070614443757890001221256415576688160245355765476806357119604516043125261956918999396668346353097052396381452423740421517584007923627080301709269778159562611797216671416722546804743114367731163990024384931484221361899884015859419730695118449102012525402378463847177207217882982873638161475084363933176607617693045947360507427348797488253517370443675926342951074024032809991246031438370843619940843896035683037280324345004551520122793924729908297610672645655065167491002097259014141398731496968843422965109448791939610466799959225341241640776760505770434414625050114747549048210806806719524424219943144577003469944176729902406196157915660529918786943918109890543455840182972200500417269227558299924472978992057574342726421227393359354931091511804283475156458258652932073321374847331347518271898688308415729469983021215388438767274298399652058189002346303453341316237300380407490745816859129954288545089779245929592470176952292918030354461435821521727782533224274539298174091112994346477829249535060288047591686973102461489860286150266386414725714771445032267902832147333081029116833014154874599666928684671467368440811717830815954453732279108518044160256693495906452478366869335999137441015697605517490104033710277556204472473274583698179684234119721915097306573931089956136542763021411967518842370278686672664036909563502377815300203927766484237926552905487507582234372810567539956029951517242773245999294171365399993744530132651958729231955002104946770259599767755870721905885949822323671700191233526831274054587545044474896479338727670086218356601417775994126506337291932344023163893785411107527646510476194532666940563192539481447474528375636857128974806371846315274950851122104083042877187887576108333122441272586907819641201447456601586335739663848727762641381121800263270789185662461108058837189829781179821888767676473773121333619174505534175334267306688130916638170765511272038390293809484886135288901308122329943249729901707321742663228447789238261224685650405543563092885611525427493462386154155859860855742147156675049119993205108750893629218455217069609360359308698815020943126057432384321128008228828348250198330850976069818705968985992027617918516546995078054143949526541314496770296969014202562898709881106023266165932030999102051235385032280128445856450221854869107404450978229315290254179186203243914506842858157197199925920203472005548642185207445940549457193443330771581546022609581302701470372759665156091510139435986677967947464587824173441723353844467682683822922642112136709913036615752206164103554759390147838164867852325091014898801472007993452779516083627711366422403225526543400424393501152261246670784204449701541326635379283856898980950034458856787911671358151264476726341632165860344138180161726096018745686193180093460484447178556252796717709130451145118664420181852235671264788553551208539552791743548202253014993806990096190146442566291938179616077278577174886794941350763593366623981558409614722905003311346503135393838029696206138610170313960585340338558651962480335116423952188322084633605446758653762856636785496385177449868339352395070675129918011902958877160669339387663755316364858945664673710822535050798668379585204870951002397934873139722708364792399262400129492381104777148146918455087618214501665792838066957330925000446419379583818336898738146785486322855169746048671833315292252729728850549679366362281777997392044815494274413929631638038552460975381878331324419221579909696063935380236054741575705639723720731891399075113070174634322493354282007011044061269990921062517579624771920498014027643709550755572886528573750349652476206363303525746931120202929887503473881552276485734926541352145608821881942393362916489788682547630665009487761985529449368334736050617175730937860192472905476343489106099188878470747380163292355193396481285108496476146042016203551555768114368275980669565897935173319843887685937937641334593275076773100932608103428833272636041488801488684880407329984939274762573800394613461417259263265399744900073356395572807406568024265963585880125687235039020875486001296593265970318907926726379748555290804007282062733607003130510441335544959147380959952896542940738874743087936300192734056345025336456823910088156040348189533231821681063831583949437907258011569171150992405031493076686065071278691819387416719909704308747734121492890536208500301201134631089431955549353783072924128166499921592771183938206180225987496418737071699210210814643561134098624844790418004512227440300960172584876338414228196998304469317891653372998277817464131760332867408642067976046631583679368522606714474210964449067154291927708891422182658166413073706712535161222063751586141672446672842164585921174170693749384256948432552811339374287176520030545723167513672516042763057783952347304856305078182957611390808948803097252058871226815063211250047504888710222251982784833327742786572599569521756644680711287298496583733464958941388711045960963861387431768127060366689783604312506970042174287871156592798237830799901450532758402854133665627499984997168899212741953147299942644207558205253821689127624601426641499662438345242272394946726297550643379965122034677930014467122182896089518662608167141933972389326664192592217977258113757091653568584045447804819196753316140082881244782778039507652174359940547355018388527801677531606894673910119272743186767244076403287128433197005758514852043078532318907443792866203990165770994598896350010693877806276085642456477317880301126339745631628023055004469159104891666219803155541355541409178269564985668397566543611572619975737501400715099021336116885481202546592459023949436659503372474308687773047930021637953733858650476641640268824046676604151421726354912879203137409657363120760419663844328487845079889976907420987517805303656472833937260580001657014817536490793761099896353917505673714642068637502502288511139380235925260164403371443690793723156496311273424763386792817896702958019024181092218526445781585743324042531166848824811273720816006813902360756637235109043385831697777015492073514177059491967134129438964814288473856743194200992962044349233612816360677860090218796738641404550722183964943713868958815235213528719838942034517862536374209497734163359264369530231848017332217176500560189378680933910231041481041642477453288872410265467030889740575225132014519262218782955809492909519582872616729962593294015673529784218201224080405983905585689339206769483512488723592159681019127687867488692785982437651294864153424044374598707402245522279511741403478254327810559244701772033453686704508153063613318683700974174429718972589207106708304960558704958519171382511660062616592003088494923443253027497884981022113093557337932179429921641053226503375024500609400782140880138808467083895455132181091919813785474198634720184141412694432026090830031278417377179813980837086371093690000685646449468533108427873198441625360220596196828977872380580605758518814929001657083893323763829245297135208556653353397622924259280579096903321395173281552207806211957766785519241947577271491837846282281740944840534228198821305711587588874248699223165764028500970505564132092275002094010131005360407937460392228003573216816281619760644884014684327123589376986712378872894194742745888708044654656860132892687294315175283427451831019239244627033677339261089160008920917012295494515883697373669776793686029391668955247356765908278319486793262000234295536700575284553599269457593118529612709568637561682830520515379260890808360238413667991003868080829910446139021590200961263468325956951243827588024032083962638953340439146089685233637226612996971955854855781083084292488138974680082542567677391055766508112505829166422783216361585345213603922985928488076222768811778783210893659840929346786246526493388300467997535298290906640433346573991030776133525338836577718642335900601236230115373585916797606940856757470586497840231214867960798457457148005193416074790464060339473856923086479037039704124668731636468975691677463626704277477310717882615585844734527980875130656381506825038699584294091714864978323015146393201006338877764913275734166632181841628027345431209992939268889737137169417880457044362177822350656918745368693944007994562966724020021237870352239618557719730895951559918068152413706410972648595690977516386246833016446015343735335209546311980386945404747029282040134076969219138359954965140102507995671151305406091088725164580341734140935327098885442108346561707867392526280413890495216742387353032312880977199314746319086486379941941917297819474160623981909255054849917216187179976063978699546703385817075825875401549106063236535907848034256197476652438622014021918148075422306291283675904516024271861739241024465113599985001192169723027961446170046952481780020795624536752118692270462143197654463597947512659211635422847485830334537398820092252518084869668533083743485713563328548273936062163123486082784913497979418462634907152334601822074782430242866229095608702599217351819225567118844214209844379751065919030727077992774751505184744638669087453733221133539506144342752348776439066572363683259939020066885162904674660464006986445768628421831821094428876076263877820720678228991681116304126266587346492221033690678321419227271306567061435336077657299730657806402068883253898248416674656815831667715520343475680170318057820945954377025171565220792764754295293185839578549500264956519038148185941644112152192538486216025984825100005263854677678364052801437656375825284748099048242932499187755476994315338506440186657100080209398976733795290881345311176084019928145430370442005898572275472355712948492210647084636293726815579551654857364067630292854426273379484720346885606136005301317279790179170392076304237928683579752094584701553200822880282576562984978847241587009208564849597780218036288172693434653807615940491624682037338844130072205833115890192228678927738789653271102935526492336116810745619979852534494141219552152657061695273438948704805010517719881523974604938679320695867075509549236683684318406445694652630527332185604456651048223475133510194764880586263519718874561573198524201771970469226414529593890730912655689982122773451002889225521255971457041249109632439400682871499291331410770723577467239744141644252657649029382245943787646410714364963950117024373701694127760226813895885088110166218525108150504481861023842161179768829456270380175609935403736520298638763502823394302957004816552698888948863152647649924442694984779552326400433262786935668937498740045827425076264109028874251584938602983465871290140782832910185605366125693652498189898895011931472868401119619923093185308012923217326149383448662515189582310889377548807578941012255428911947698353650775759167821277199436628744328052445989602708994938407161513908980868064467849779099724154829646931656871398157623532325941364524517420924896640004133912190675074024070412981722547625652512230978188502822438484349859808296819264213926348120635594688270874966747908585292227788444190251304142837132910482507124833629196457344985517289511682007521478590979913198834275555814170301772384423751728605377750969789049646023787258053812395906591127357718129999992048006596349659155304889887740794489492659710231350883665639054058540422778638998462734678704278004382986690378144610390817081956893972462254899063425855172968920031732679519670950947461720948551130268648422455465570645459102624713737247856097251403893991269133708234090710907330298608595849778836352459541011333776271835404365902932922812220325310038980050074100029680448726023076269840142669027425193433428426762998710750371730499976480444980296449038388396292401778937099393097021288372479730976821978068046422442827097614023194347907071780299511982144543696488687535661151820499390529713956616774808214772289887902751821550089076173316373396116284326187426098838826140809802109428514276452640011690765847199714115270861941428768798967710362656310097382655810814714893200139387039260021078168339420589573138235402774896843266886017580796887897640370921816737338480442505130205586848591500902585013787556299092778297152750887229883285739041670252070321019094162566507830288796204176864728714286791788081869499263280453243076062242548939131075304502250080251803890324170158108017198026515199386258153848857200427907005022425407388628931302138732316818865315501621916136228167206713798466775171510696134079546195503189117753928883496857567235097382717361503633241566194171722362319172958878702925734226032698956007771428144118639079374676421485874418939422365965989995412171911310142974458189457662234729552684732082065119210696773833925667430462176084003792387834517218715707284635963019815984054194729935032228650371192595293542510066144775445780972852410876490135850236623793646809705389483610813052468327144142984423876709513343176555426175611465859317693860912912783238906069782647127974663044414311862085644325535800966093801430915712644202908281069843128445433221149232785222196138107334946895643472018652570957715948287092061272705506799935705916592982928310983615232181832678035538954371574436565243611978478308075806159061121367125446984640088197557442801922410652526021912805121602339364783102679003120478769726643776759993576977883325068769081673958514437630364759111333706588800185632766489644955331385843239024617163123490586925926990836176185034754001417779951799119314963646864857341836348531068953501737812676978788705234584231550756100244759507420781077783173259584299203791882832445470634413113907602871201267726773437460602731738751730274750291893731137434368363975490125058342927475300697629263921373789053105602448270568385931106417646808358312218635624491005208703825180600667294220572598059110322994128444373704111247008153310062214206767846428846861339372091965663669827841372091107187185604426492020795894766461385856905210153468308445748498766701888333537216075826870312405059669219587608049782153605423046453355567887064400272687924180249641591727211480745588087663597955904433805108936021570791769746118782131536904914008387028730236284259414957731603614505543211436076813535764243838844770578639029344511999856770130796119325314684117758894461757943235882310047301301945947669769867521973709308795447563668441593222096706596894385721019193046337208849656130716661033624506404863848658974060393857067399700052055208783879371361631028682997482579969724223693864922187547845767380997231590814110457743445207659608204664414867150302272043965506014087830537894470061391676195214561886508244204195367855386354477910017032848193270793559093951157857660675977056714239533048317927789727140068954417123721339267842702310404912754498815594020440024044240410270105377625938313195900431483568280343736054204802474541754049774014760257307886904584930116232847360833065395085079146040881255954040872347580927668848042234021767314723528049769227762201413692293827415626236781641141660622042795110640495268146349866348806651057355346332630842712118853008733916002613741949202240568864580560187943316720632001711412833351434656732172814825672698328512172826400805342383735164220169648373120521906036782728760974310355492257543108895234545277329195283437537947644278195127650832090982223110949445712752384103044399980758311242005076587229322829216276473476140332379734220413746404767138746995994161017749095586069820081436505167759205796025026895034206346959343105760492841176131012321412096838474766749868248873044878556066762961252447569007595398831481106990553860627056673658319927752281518742613014469979233341314906620656018061115032365660028930917383101755023466021460574539556536325267083532335478105512969971771297303067509404282690133094651890221624039621401873093229948822759423697855890126297058294886067109005089006251623858392532225571180883949519191810504034027410369199654248149541796742786370709250651626184531947903805035680915300657888513079672837547071968017975052477609500822708858557607019713962454763311289483076954218695189987754563736946292321562051870920344026288269137709582505526424807180966377302702098768361398668236095539766218992462336965155463648041621998580538797901891715072811826370796687700952932487814909053876891310600567833031969156339085559046114212258765116102024574280299845190983320950574475931770298674611324692921334153388763022609480230457437523059902530134527499203647462435201015362921329093184499802341940727348954668448686933276598189392823941233090568130472253568653363068924183087751237980164878038225117765072359127831822320706598605886310205685774737391499557010931625720549799259797365112543980436935135631997819673842866591469842209758931618445187269907158145327565596988116667325688823424592917977600511731995188068061446807666108381023450910588422028039574096155725608200424064305861207132205124582972622006150112731957045694691379152681323872072985584500182484424616670656228576306262041997101267741828392972200198514921754864547910477401839464812610641717650281761525191546657706529392948708678078513939330123256614446767778786753494694842884546202783861414829503901622219620224297624620983645286578478584723127799962711195772125512821036207332719456436427247974525351608976287657047965459416908428434089816456781402957253374328982956395342892287253422305018694282843197393117150449097036484844496507331147504794075569363746283155953682837152378378641950403614691163059988615608607873616457821996093792236405834695280485440505391592778565345879234718575794592303816347343605185107040635839393197522808527972210920308978434746466785090398227769865207686716852542496104204568889199487945358094283543436363659492449223997305285796420794144040117470782355840359492326071579110422475174778426315448499046566662590341246795674216697097357821465343540365716922272706101437361208103969707607745420589100724990815200117846228498568508521846715136098844119879643400770388119740066417393461012616555537218369244626901724478216862346929810600382577625600928646196228880292336843939009229516173453789228045506198872679567431395375509667581351523064527700873695440538185426434163583350806211643938654459553077910661489351141828629640197454200004528097200617666020697389124054174108640854277999473507305188202260311057808354835014280027266812136920333304797550993050132118931519612350355212853051082280829881353622664976794219270959078088094656006001525086230249167020285529015735000358351087123818084641266610232466849938252048114320682661097456027682589413970071844853104878931868637098910443411125438082269265688113136938680514435111822727117353294187161969396744813565807288258643485088807031816391872796857056456294780424578360903924624849122125177938273507535843573058060435781040994600141857702432030371486698210737900664785592287676207465528644237432741861209064557747819392032419028822242926793284402926260279509364623202077281403924924445624468842942586366222346948632390898581624182552002313464918914421339841385410727773304885111574747749859269440084053953555585188597709965587736482205224910914084696681295545608364417315096159666230538516930124544838517477859033642667612287540391985375097447634616418039607844655341872686019183202755057821004822900859996290751646972003091611761743983404700423443249607543665972147510969041189464506965241181844241460443984444983350521488839643709718361838146802153642890830705156080977192267570395560976129887185304562690620782825498290009150096681256540714538568758387611136085280750863826904300724858129288582626973577262264578175604599308234618834538368060121094380580002257134792392601513603036586776933482195785910514460514227132487146252050492657781929142069560296535912751032335636740874933673480951473037952195581479087005692702949190153848674505393629964736593623943244557143983320091571414287822115443723967848864600595619243173740491849830848847717254021441376900400833165429568721188022470561848541554364290085591252032020288847048340113332404501029898384856325067718578887139807349765738208579577971759530892560487828831566134714138436296703486326156673776833776411342850656365145344113232031907903520819786739720695632830180699346046017803089521730434809133104721769717576155222327205415163439056060370313484360164404770870716410121530155074040166744323480423098011197398695566364600632229062103016348258643088681514330159804268078371022345111085604931912784363315844953682429516882973663125739851129820603604628856946060606320741845836334207486551489100237505500417701598148243144946717886456519526663923696402626286824800394075418474933560123425629893833880487212230836689217756660750875731273810960822197379752382890605509243937641648114016524183162108195778591449382871883573033111559180676755867461894241195701681281099110577127523143946065734189616033990668234937015920480841976508057925727218318802392563062584625036200618345808952292395743427646297087830176585464880840551891661034325428417038475633589236502311088454555570362793419757299473735521993982782944862433629604548894586049498877658441496433997983786281217082238506696588685125938540871486976484112230189200147289171713967245729073971262577683822380544383385567414240769110652694990855464976841102693385362058303107870985423628758308619158807728087354224070463976624367889599619670690635209614674281748065881028052870403627703494083344298207519273543265036596172124124026646590462599442158099851416441662868831420797734444207589930006549107572780819788128975514034367210155919582038566092085384655137402069452736636355236397715677417723027763118346144440905331099672979814674743710097751968539197358271269706156226430519457091233228732264499496857234085500898584507133814028936793837430476806620884646550957364411089995677074323291279890813584376044374792587923201313499799133805755556883650081263327023704475249542816939893370331581036864713504813126546758704912780794091094184669215888138646574923900796458316492178675824007518377952897411125697363685941663839786155050133856055531680190487319957628858820054274505139882387689170406889835101470483424688565056809212409642762117248363656909697397573622501534673114835068144119101035496367771054728391767563017445064080142588594426541988362264304849677659837657429341821974222869950269178519494901109089501722589589965753607465320417961944204131853722896215433002628057802534066503224460488321691697497439310212561445219956609651566983481060058689550903815055673240784886628996148904202717472009415770602917577411377158788656630627201062442458806405989734456870027333870243870052641317901275434889759341931814753484838354024306295588109889317872451554605684902487359967434736382657654271144492253358600717195075367909872816549600128833096492185357905693111272915541433607284815066238449095126676098284528938350146996007438550488616437319621188030089964410460438171154433165330908480540730123836984052598206727697315256558835565675653602886726975380345458778594958971002888700889847351925862344128202559878350317446115877291049297917106697433861315080149758140409878694460830799644024981318695553470076950658056807364028934398406808232550531705130699546491410178934566351230152400804494596565980733623944025898377437751923751207977263635906470874369039125945269405102542364112648598235230685723128831686654496252828892523821288718868050373521427419770563872190126631130377221685948511833493076530111999892719691986094405347828614814800914899607807252093483718313853619120206870843096948915065276100709243787741317138979866624818789469769324010067387249735727263576231122501438461346225017774651116037507199016599109580393656079300629833166048514576385274428914825227070699116850170006408750599450578363893254913661703196853501974500853105384080396453201949139197148243005184705606418387172966821185976740967875492626439359428676506693716802624302896653166462897267767487483470823383840567196386345015967416662678119263654497658832188971274620400193280632517347011728490605138248572189839308421386964432073125340210883319208977301998974958158070358243337226907220023850379616384925817499138739515538595403469739385191133975019061803620081575716505303636420769782295406337975915494088907441985818917280572190588826545945604192261796476142129477166344403219524408911622328499512066357532730564969379658240638096778998296841815776172568489186632514392123156871640068803164518541708908581953634009349223576464400684014321026574833599706087702208368136099260595167173994729409398317738406254693199738426945877512181548321563955983687058922045367088041506422547910577837864658266194939152751868891492794656792062706541809087163161393292984742746319689324811160899171675057374620270725800398839360488118221489007370874991929192102769470280246446253820969132342470575838558102255350417908802761550289633617305129640394497060384005584351843096939013169152633423851080930463962991916229805090705036561147589374311559645050685462597806244708830184015148522494289905339279909778077475200878540208912043145627835021587436716479367197158942022779734800597895127619457848626287141868289222767629953336369959705096206096185640396347352951704853467575744109894213110354941705946009521469009273358554004828985362141064085671977942075714016593523198360788762280885351999062187311130952484926706106119539484766867828679701558443710646292859279521429044536390635323661121422962859569899030499152539418630999454594184401129906302404372227503378286973686282650115675774157781050296084386483821401400232638161404431434957428670054481061563264151785205140998590851632294701492776337359039456685122825769309772315871591661893020071859889348022838049425242754566652584094747199086270330919726297413511762870036429169849951923353809890596670301248277228239198964629585482726625463087519316736618761398964357177257421956334583561188705061330987675063545750441169226629443203278412532989825135254546920754485250185218492675554203000072179810453522069686101599326595796442121444829297885251095565412942359435259207849130854406156967470252550383900749031337866479585543180252049909719513076497790509654426320600263380765681412060742967506885785586733008758342625398953232234805397236117530649313289122782706456043402923260671201234360804016684830388642697761622534397602384160320639121221935770201286564761855983836487112266623028204623496149935285139870391832140370552959833796071768692860653327598471783846594076459940337179767922362563050887856433625335462399934507841604973084185500136890751258168713577711868835938808646077212053051769072194238359641275990769295687141037253140940368783633071730940192244505268634285873300307686549096092512361406906687724186920512908009110293636627382728064449754281988759231912769617391640570268742456966956896982591599071139711598210146090515478017190357126790534767288514336320795728029769616924095164525905255292410684067626089374754072346528263540302175885618692339089671109861122451650206348835544640348911925808865758281536448681097071789196922926771874243055248805037768986748032105116121389120888589986778557793058823063339496921749385532644269766343086999892918727627158626905608410913132133230896637930395840690770380592320269330831731860409815318104332763453162014681252195455017247156631319812355222674537010126121215836213178966949952371535154904942423760659628664940431056374856553578315001880652614712514335656260432384163678451427689702281017353546755580570327257879947841451078476098785099000562094798001137640623189769169798086868487666611541641915424679114471039449768201772344158316254207383025992895188489626644277606580884784920983794108165487520856418257142370816912814157114300078311722490935224556861438601177959075147529103072607857975917652978459377024505028080417146940974382871183165512109417561107843023680063819906863789491161261617297785238798661309831401605083468084586392110535082716565980108402288176500941019073221531115792837644051853566673477404400861039409474379938883272135206602743414749738755776144138466160695519391942174141818874388822518331513764076322534642852439677413834423957943508928407627723202153714607299487662380126772079075503944815633580045910140890162467755193342229043706939463271381775107703581271650058167829294445302497295940439655950567709413015308719973644748172662937503304351618904806891480109911418683598249417082672623729740074388071521194139557109178662473348086761239621768925411002243569170169068214731989064639558417847801314749964541101169113011615294095399994315036499071466812523603514845914431022823400476437541756624373627764613328414377096947062179941496895522494550827254228022881408574390732639112897312792590213396945535705851457654488272641470153416422417865515848665915690433685404157167302617597835730067959207657288359524662506518091030386822195800871049887438508471630815907516123568466467170115676529974891959930383037030159865735263946030317866881858993909556058695731473422606865250356701881411735884779284179954436583050390182879151023809833850465225502026840545465105782518422268319079695534643157900546532409611735746735892563927810589718339752362142580315276640748326788363781259073383604177622694302320408716944442472201989415440472890434473011831917482746332869719876853208392623722255381335304404343504042246186265147343794077056830906829379259888154358549135315749612483830147528605370850901832062991478940574034912548370063486139901750952913684508572263053482098709006464883335369500118387403823354178803067274297865324533224861363770895164059219475900425943143268062106874302107616140979873552867895738822217019889331827348001978487160523044046109248119440833935125372876811244052525740711976258906542738080822389082146889851314311112096954619713239157070824565893204062913541005469801930823412278276096147197113151907424790948231022478029695797253921400009913846867227795775796817121439810724339658202085923004590940623270850623744700744037190076606957586445168172531495093438868700007739742706369569826280727707349472363162260371002203758029071257473017620892032269734342603226378838438675952302766848231699235378082823631300455753123510995113622790756272130559800705358939006963391715257089428284538610839856636781363814388736598675671427241610539410379232445347815323351768914947746473811617559068978674629313390486139165493555214263319818364691396356131902178041118170767964912451808536677625803988658523934161521467930936414082343553556573497425549223684354624681203289001045643515366454200989880164154922411148056591772364877782057742800094605122755321025214735767929671568535388889970078827540148868682646307544898265710438785321670093687827047153590329292057131291706184717642796025326318239922456552924389685039400721461474493203791635045732724947378012716046702295445136499558590491795558099429759278928987143146139207620634318650992692010057327988057775739536351002230655379212418974206910940243815047691121176192952758948246477760401118067329527766489687045571942091743335733214263722403789640045617811502891677789947436536916592612752041114181646223166356435913829618002857946501092134786092564347388574031995291177199741911674255302363147114473642410511489282386331148483290217513879178834055864260035206146053479459839335383901258604209637993450716635183309011107929367775593367269713073565713931650920579045375163974550489795806766695136144082728611950230017941143957668896392645841576673276170885318152825690425052688183190655926960625010333825191585091615496573258588985214958405895907807689517695746342848783360450371529954664587159315512580195986665771543878565159252078018982978447260820529326058260001337440566234250750512588358857296281639801479269533597870751491585444076100643304339093058734681018970575975775366767865919145839314821547215042526017196750836191625033391744641432059753638027581787772002069711539160807248260783856898306110612374328507197953921251072799923190822522956003704951949565711340029796333107069863668961488082216325643043275679514136587307527114332401613620189751697054830287660201714319555800691314484041727066135079568470649354327757791387331180437101297372648233904856557335612686718120786318363463440279828389242392912995623281592448677785429178604918638137384160843152851530587122976770094154308573545050714191492809887328950506200320757546912606453897989466650375989637457040727648152413741975675004726191022011594144482901367925948290688603708872378622228332117016395472227370714147356242677014246264920203904624345639684873845184353129577883259339042908867864141219025242368346603929584072197904452044372515141142929222817196974608882937040861739542514049769407247428942450874310838882869644350606420319834705544351897871672179428445534512387938312040924484288373978836414216129916741993198754210498896325821680703239878022247436737270318757615927830007016476270990982137075638232289400258017518567548238341197250588173455440147143976506418196753498930538932223342326044675002246990254095026403093133232789753720109839265463683125483294938959858598909132817705386857049722477405181705691970315931692286176240299801462626636816783031942672777654691155168257335041118613034632994810084769863534746053848866003015335888810553166733175079330584638487087596555972367481556169169721754636775703396007383014292064694803138699703144654857722828063244809339081751939512488078250191139983083603014860759635960191819776080916381284264098318983647577058113993166098901773082311032660105021487668447537488527191843480671674307262556826485569680794485623678291916922411761897032608385087500922982752925553206109820824439157798153402939922968860391949785778805353007238857158428588132410107226438893434182645139342885029135538408575804133086087987426763197889281664314825998190467281344399040794544377944683281610070371481653216694250777786841215902131405470281044890221217158754970103934900300640282892320502262572219781950666873918973931120600898087997727385133366107963667253957731562472904682023326150126494028153147199989006304589690943121140153071467121646504283079526979405974075324927199017427544868469556025414131804469020911816845510587159525668087212505138713048657145282755930321363025884151303283180633149438729301185905779693622386480117649628948469623302515723441404683548698223519883242126424509075254457635603609194069320179347698492327659168103493348901560825779909674604149299403663463022405916995325072324443637952243881253334218668894626804514429222220295340425118332960054180713951924587370163237247305769712804912618347469304547203810570532046182891612141659229072004435356690282980713693871346142543221645265064457849050115928828927084247638475923279770884235110206857521078724492373291658612597959443399434888078221105346351250877669979775274159192931526845669237510447572144068381425950527181100603572521970799781277330824701865168663927585373390117542810597333652911326829860218209876147807509335327483666259059191071132625642938271678097067612895927978436050907136782106158924400550912182634945510506018019239409539890661661006431852004199004562000776163068328105810353324138385984956980112611933369880680487332333682809671218547188310226240494976873277644146159368631151355141794011231680576376747862211285922477506784156706832334455566865724590820799485784768244387490997654477152578611153429015794032071447271282120412296393456025501399333843504928147682041082770862170271872892285675960196114651641828658446702598036673417490179496347624377379149966993907954676693735955387386996097742570501909586009413422642715022955605712653180449750171573916727037561205803174946000343435338271096837764055335197772321973241100809576649493016293607118694954655774693289139371522396342044984488613882976945689315095664732834531873143346176824878149933862123260625228086203682998714124472400336543087138034950388576868089437111781638150138066777755504400699593690723726477639830197566245310144921415638137344229454503748155658217051878845694703598830333017359954873706321869387607219462081314201328490731604817033562426149566884938427033621277781422584015348747182364534012052244547483871791928147149985707000488880030172240172198904975839417687659219721389081934265556077376705602847293736885403950034512021667378333048506089331369721818282478727762593706043051878654673024532351180209570505765189070078408469011732926895343896552326207818141492681298575471661653642235964650334858245459742046125010430495827320879024284992771411891443578804684003426933560295263446073824057298579778579947012937037331560049153976733249680556258410888313568330133261504221480885046353602796923156206310512115012121805617083367537547970508082051060066961285985262056430763816838292163645977860784027541856106392291927334451579599550806906134416883264236523165055721350600033763992963262114150239944442663122696621423461717434291533804987239549999657104572855574797698933121316644925463219058577212996125623897357325059308594564339404932574160132259241715758181034678948607651364461719686884428454085577618003091816372276895510783589683984548540371129185985238694796338864367660252976720361779487458498720854364378187821301030580631728484281419715205931305833808403635554867808321484032933970314437366347315884751910141343022871254458198620351063030512367151606978630757461715257534971160555244896785433387874505786750750652784130812114194889273019613128109775549764188131441165564729833055998978480309016744461094317691725777918769051931444241670041243390083345659270961010294692249205253119201140426598230058974173536115834689102999886361008824215774657625036739792230038713863281770695947882926183122425987105243749193685548423869602739798642459056634809998579939086633375779901683897321920943388810594440040906871921992143929725363902556499597030432689510410337937621627992005222739782039987405361710043052703651654711613020254134323563764668472000624004966382745253756800375034418704217655097446858092350715254511854210594912812048013974511645487284137441480214919195804533746886895271197127115654577689022711600426539283227320477271569677781815347752203394475494823414478945116865895181770556919029258104734027578512963132228341918847422727520411218764200162607641734258370479902699221155449603844314243210038604670620249231029115289777308501669150215773069765362074446929892941416862879827436341112698264827659672989543853246992848601198122242301421510854581958552769754387560702646796702304257413815675867225211631627170668553556358059906888413522213266642081027627366978088955787846402404031331068812350406775029436994983527046240433335950492327645916975928618561870464683570585868674736604878102320291678417686704755586575566068629807157826945379614062187859569140763384133271883889098620561896266109896207139029301606977492617154569747891008596373467849877529686210691871986063579392752655059838245528155296993282240076254850005075673223305374599872089223651099070115221447364831324604531590063943484424165978541441705821351500561069986300302256409849339606790993679569226304512172954232131662951976566790570899020221126387424759160679188922957320133772595294941389124603916949559695861478030261909298378283239049038045333269725809838619422285716790000884965817784935197599452365467687909389845980569257337224966059196364361019854607014637939176338101445785526376365685443499090327578034484570314294971814228395207292594182192054010150696189664991601419992583814975376923049034616227678617142841141759149100885098574732091146109227797499918603755289613832167304954317982052384542541427686762478232480008257735769763465930298690154780666017351042212471257528471045408202117795253930236841196075495068747035166377473422207586333679906801349632132018546148053123542108685008137199870167370143991756263145391913226298195668705328483634314270819384087502824031423994297392124946059849989059682098560156139638089424396571755470758190048605161989451334613641885832823852181501911002567687246116076033418133992369416988953045198475481905285465681533106206479638662097572654234986665329416944378301318901093371547841122371946511004159314202256466642166298567638588526446304342128116626225717616067333084473806378111046043080205403823648937400557812676099468516464403655033119545496465896909391641955155415731691543446972868834972184797652131699159168904814797867764075743270182944692175609569034717843946236935686379844416752376034424286445522996695068270619703267225721138065795836766357661037089460144585220646403333011073985558945163474208167337295556877026082678269552962007039481778197842734213950112227231659532360033193920884445702097783157987074886386979228716618274710984381198041286962074515122990313694040865003339144906763793364458797750834657217243628830684711843077714005151506764319348874510621924044115982234461465804675745245965759397750886133710841690262259851654596585601184515134644584366369199111916824194166477941378451151131787806527377119189531366844392812721137973519873846480342695615324627497261636640695225970185643263602451138657117376786473058135440168624941251935988328757365277308809022668914381245635841523589227047854458088389064717546407375679857691991216190187023741435335569656628484998106087455453766296979866187878118020402980598728756829921602457658308549462888908337829241252239196041592130752758265999908028984605752097214176640137170611687313659684565597588911196240253270844443965715611989530830684222049411162548699260261700308268523118996587096853890119472849385050736812263919799069954134675976207446176256878341745705417565499443205502636278175125398793446270156611042704177848491664546280027075797731877576742639480873745103675557457720197003868974156660163960423580934073362621661969931391349609272544036673934268285940422228273949497339968192308951741912955932483975604976209786944295885984588302450812037572132050022255999975196056536303535618832832358193269327383109127724586341136303948205566470953153365832513889924858996834225221734808801074631453146165890174487566384098267891887493079423981870727159422584468138944387408801116878155413141209376788806116668054324440618966092679744900685385811669131858188257013601116532488069488171879646658288042660865955168733301669905270436701565476792659969279677628357767730072922205687449685677304307038691052977610556619855732183674896392173492524110495380957661853182147349578062551222891867823913379738683495454588013833784088983219362203653270411900683209890805849343567160675941255670145834909561845048327871529812685340441030756345851022579494881386265822460216603616622459172266845935815386983190943095029459430513840124013216246549317506809929532299213342188681511073778102772189539692090089562454097455947230881231357096915789338848519179571478171000442457741858215268063832143211490408302696118412163802994912321171518776867701912545884017999447686154768308446240852354654886814225931542008430520599710578437489016230384006984735351034366452138454808440310949853433306191296879757305851016247165043369679382879120673814008852153599557660177071812693248352652849588729031903566948743883720659818752509933468016093968914541818137438590390056909475466345255935138738842058374897319505357896628676309832350629832380017506820267353765781455996197310024738855729379852865598327235498946057649926472353156293692230058135945606733014785820221380517225073515237557319049259070427169500767223654006925842391665184836456105399080175960758447742064777076595086795840180946718289381405790744876052957385551211501424841455172526152611196481183497456949600279843809557273339061940335461100010149139539074585153269464069767288787149420457916668428855928455533542734060866944353746220205554695839045362129755612156761655571612668566356142346389211037284690109251400256048337781645486160899099726521859588007168641129045532652993763605034240267012424223133199417194432196903426354899580334818928704136006078105898313000969894970466966035671941915484895149099159332911978606620766461838473927527817070481528738428586675689235638804510771269035347517982412450345956419272655166199315462221748179574662224034959869563206332314007233552709167998766163580689766620456380767651027310734887372210337560961689980676940187274215533812525669964378816215497802538620734180944153471450382181152975963845116430091278759976961916002441762520265496320020488978208058434698298674608993444327414386859607470315345228766101314940301708265165157444256660819923573762513854191730608767077259430720890111070435762378536089512110438832592463928918340387212005261759153313846681742572483560779671868184525880595331817480590505838012195713311939902610595478480560802686444750258109833544543720892244781439298276858392577715688052023929037711599218115673958071673875745727047618094608828322034801935774741867701553503410030220926520212503988931859075548559478464857560721599434016790039783705941386642689577841230088237387934776477304535825156935944324760996927233788013957239211670528554646532242623689159060127470396905372320324759015446038204649434552925748377190220022708127569160676458676023150952687689207153356085604350130815809890573714239679643092110491195690487228813159736017685070584045960567122087274904635950626746312834110238724716087152002354884406195142137930531147729227907947044744906690638917815545488271488944195077305707286463788859550614194842195426904553721130101241364930834051292739114044460351389950093037419867271850827403990514438063089006770013877221914513975151073592659121878199452435178074244414930440679699862059235153463429770227132204482044927069731430217451633957297353172243568034798802390180900210638897860545146100391575930183784623807975082549923547703700481270145748620304380023709713450868519290942005424944080049178044493163250332330290432444893071152550166342163911395724985241898445978698273700940457720204869529399893575355393435992085174784642326247215239337979440569997889329815437858155472258549364610050543113005069819417053728746667314536618324394017584087661656396892358521440695071073498328402913369254414131072484509658366186507786565078410500205062124326400214167152013722128182885423086124617107734839817688090515747194079873312603767513501569015390951940659033092923169489465474864680674115571485466025964601205321226875183165289853802526733709102319831274151165572859594781855428195279758688389585850615669384972385056382604746010865145227184257318483245442158286155661324959449451700404563661329185938803435040706555565733381857735750165278233370440371782727011374102524039497610227769894106263787836596308272365356906035219479554454504530250670752673959248192130172880192893494056289168675863840977949957134905627065784285418319028359280381459817177602666444199183439296928611759327772000249054122483930502826270392713516480061188955333664650307564072883519368318952169597993085437709036752396427794152948301231268616637318074962190374149058402579408541016894796436594960345707687189893582009216611003148392541535797869634249084856181279225314877247978392887179026235302982952999517817991221948651824462760689266807511726524144870399512110467721011798963163810592866431313247353792091984481942133535926831014658126670118493660494532684575370515814196540679908250378391037572266503647848290484407880679951572442839168627818762326637456359967837327594002140175503340082710728506628373815714010832898876035951341801082096814478161115575193083188697812385593796240927502369091655319934054624799411633204050937126831640508263567068867997154652796026465877433518849250015484510331291136671133360095779059831197443577900701729554873594417565893675033475563625375879433496512201985987641413661665392264931838185748271830333418652190646624704929768450924989081883474806366784633839225689275901678420279237140413353724458126862666905622520913613640024798366135392714210821035055265308488801532685216823224408309382039063223504535648344612727826191798440563190934717653922083369877891199823523851685922183802035995272355201821908388696377967647070480091930826865207831265768581680216381190343377869905168080244549546846796546455745834418025052685375071334775925163075021007450045547821005485675880913435596910472117033258141645930716834492683971528953664054202758318407169994777427900290133982497401142405733531016762146198588868245781522132916504241245585187938838262100428361021323360336567671386879632405981640144069520168840015026289730348436411595726906471201785430147859940869010544884911884767935650395759505611763810803466329309090626119440395057055487456476061459555370815684305610115930245471103744334386243284269443465286901987397151242417315031394000631113058551568653085657958852347595520415978995938382889064485865123896232828134181361299602015651036028493693206036833414577833604801244639509869381632471094322211349138276978252643255977896022636557653085697480590893058767582644712630220585427268443162545317579264170104521217241053618828927528517380679398214060630677545759082278642913266838615293075898451283117120496223001173071432354179522527910052166204014907917725768485166646592763136201155141030315898732190826990001993231326549163068648034120408924234211672530153391954660788587220236768798957484766634791169292778210392809789602844341592758203583097039157164628268261735142240901902684675203067747822371402071198302385886319551011310389249570650589031080607334370890187101790373127122681659854215007517858855438750299985152453157554293589003912796149282274400622964604053292944652756273826216765449332835016823317194239424556660293522829343307347053120004648617066461765530867553746445607329819489320574325968244515833894392925964310078043622442093312976086142929912900955693377392522706039033381412402533811597722445317660966518755680104312190189753895076751520320430508739915460064560608053637882562234991482947237943564394194817063885853309739421463127229894202086235554406772934907324175541839533779993240290612402578692765093717880413807831695422413862560314678827899965255871222228279269370132851275867801728195691012743552485454353602199374410193261431969339164048447501718631434089839962870204399690171032307541190247723251007017157980441503155805774108519359641628401692786003776153066016929933716628809198277594733085450109425682498410296546530767371956127048604557168817677557401562338897194365389124528571584623642550026625221366074798855339491517167168188070161631183654776334824919159491753994790001343697886006918125126030338937281526704026749182389890168895103459817000137667264327930639184917082580021768663125218072357810440795214998428680363062648251766533832499763793525603858660420271040711047276447635570641977560949236167503420342958285297279574566683969283685873117693055741403244299345943221233687331507748287570932189173785451679149198660475369882224407918865543493951384905091716908739965422302902231678781451658165079104166234736274503831809370550085535452682576136619390008809118769081975276153185273461715892891987320678572733997532425235448311075048954836632775262755458830867808029112938282029760549918089953151681528989598177410324403838151090193150198717114206973073418752716509634772621813305241844949231837104952073852752542304827007039448690494228839920254871936570850990853266540728505901511935521184395551749895183680333757326858936084367130400566598859469599111926067516665275187292560328738494490164676694494665773430481792394338580491683955067232149986720395306784553818294761253094566626044094996830083326009031887767988211682338497429188622724502200250099343432226929977745823361724518991708172919930337179856935174776915956694397193513699805641931646086733970857518754263388363386712841715552635762628325631005746273368058617607053070674219957579067016133988376101363478572631500453390148366442912317497924530276578512664356841130590001452885705934825471201677148173190277618080550902998204002255113940117899641614377129427054593519827456646753874134007584002036621700547778215814156936339816264712070031376579059780050732895767956262192966128585725261979058364860577176860292449530970783525751349850789298314376112424230064590978166930879186510105444411460678249747708797672113038243823814191382248699487335203248356924944345469744035253063929306124409037150512650458183940458668923580430521652675401636225967111701540561095789764708195616624263023468899281148924982774208655077572911578881787836499203420830107146881893632037885159509794419922686973723321611652280767627324076528226180610737793398077307430771765459332588329901321407641800638156209264541991151118677010019972818534980191711905437385513166033371839132710975618541335585606041965302511868318737907954355360151820238183632613526979629103138305185422056857686676035810212425370314995488811445408774781748708909515482797217008736970728752287430979798764675348548193977798241635647510312799318334017464458571144489564594639534409885751613212502528310414615663059874790840177786366646617760644567608330654301581282298793658236884945563227997611686745944489060906150277660333261445918611940199180775130143856730928290359655925891352608116322254490632971796801634019803947433429105303624794326572239739846757077542121610661693532894026650164132341520217111750704420903730421724717342013579427254637639766251053871486143258585978034685893965565925377850331254104521866598226360710765224433348535685824360557410370482449047629286695254789118628032839239210693345829822611837866546818042980396366992421830567678327553631192386018084472807961806900037904342040593291332131934630184424866411695110220724146167009739646694442931179316894499568011044212117253234269525290968022875024354805561636137929516042177656590789139949781658770547273861758431353552353211001135874070457858499060300483058001420865543236919304605684146565060795772311224071502522871763834272815307374104830101068424841822513092205144094123847897319411765157807814302912838485080181233487407242491102137346923540811981329586968640370279623015582180916217652759691870049889680500168471238360303842409782147824560246934479113670942091816845113090348308021187346661345011510005653079984187027356307710440997498169262210291441392092339515973789739055509206312260817355003252407112547056474348598176803792288930002861224749986247676205572959695274875033344497423036430333304890967897888068247189185294887711322419602516567366077580077304144564336479146913108913813764810830663655131417044355714212537204163915749873574594173214359894920534974579151758673544983367426181669581610863103178658539231465769351370968272773843200228759617542978292909353624671510828321100794332326251279175397966321486398776851247840269583807039472320488096974050274454397216955167738277765064475919665406125077011574046321409145263163969292813676703209954374676149209537863856468095691790606957085316390548985619407226364431273173103930360046281722824435224799925632785153842431155626775634562798892972725391430507468843186957803228174263786221828920923142017557558687767214635769853278111860069136606163650631835151682476834135004956079374154452448836936267868257654032268475576797037013246400353724271216752317896583782602742035778827361490122575061153326302325685796998589714307498322802087347114011160595361451784356941616747350449735451016761314668408762998250558157736923313491667851338116411389945698739546662897784307555061886392855437514473785687103587400468994693937980242746550921212565212677245612846532988171222127959781198021591900818690170212225409757820338137437512099250935954310615646922495443930966007567496947155065517846771127740321239226741325011858854348997107177684187811262147460483346336056084756256923163846072470316143774857814287367077809320171886744276474983533175918438511943515609109453654110970191946158603488494585582466954196454015585861763504884436923005834106248450662168544400915475125649279466282700764883624273726183033845262667680709060382236378436742421343511100776355398643258884866613131153811313430206527101512996540209838127337971885646978917047145851586398025351486429118742797626210103513849905304603606651980404687228258659750186619912118817787551482085080344326511697251673771097445078950569861111536217723566580502629418908666381382984908400704139786584146061177151589880736083900867318933438268779513577396057477803100015693499113005193532864920556684264876809454999912431722689009055548201441751400691325812757876822715130161727418424971248887719734825263197088794133901596591141267986257226500944355062623644604298581564910674235031793317631902443848589633806787685247092166744751163335993532899912803035482785400047317050570024584659762423175767078328116293688707146810462467704757133007446384634226262800978809549619220045378022457229505317729031742520409385842288596702977702422460514841560847408456750629578001470530993138472023874338425927665115697439667370024878302313731347164453293739112994359950980302834965275199674155983240194742256599266866534239651066775092450054089789388292501167945860920932282556384202278270173543053210249540773780958197064222482213578233655781054650686531086827258866550914676977125429568397818180814888089912355399110015154295687327476013202749214614377468587177277270700315348134634110852450137484599097564456666563406436444000507206055287878118102437750795491222987689055815887255956373253214612237099953179274478721324688001805999178126139031194655498445705685861588208797008546524117134421591628541048422800209775426252689476561370889569060921615714709317209211774305247211051663247615012850610739028911668638265120537945624035142292711070956942861885878224102514999616290378536721726565816352683648451485738805732659254233300022668646711544607409616189477763580153375246239308835451776196477912766607336182402224096399847945095831203847542559698701109914602364138402076476486188724371993521854962720361469653774999089276400380441307537069548599026365226277460057197065807912353283321799026403896244234554344854753403090252631466985037273894067750855661236764453779351452947492187180680357769758039234488953636470381375140084445561575506067077417770934602695460076303783385730641608845360390839622290526384381955339827769103221927078477235652131320133111971192747843495667864417400477823067164129127228282201474094703909116525456494368416719705137971737866371055439782681864580374040794439328742828746146915757486319769900551524968045768935548462251889490082693937197172490424906425436968052574308256439811150131772413646423906599657462425585872150628356465960573055902742683167682587215939628259616459406299882199384862361300323945246278077876788810785284982560718661463168316160301180912940693824527494779721295725479914958757901713850935790241325416335868905811941915305542891261834171131450037724470249492881564715291595015312568091367454913554683949547459584328586049416038482306857572498526256526560402919627337947702004531590503322752016602263782055605189840573748716418152611976069841023488864991984333056327521535641988064244425846466731754902214569500832723559396445823014456500603519052125725154727542899392289763147511496934489986412198000357201824153134596989497224937139321912105181712302399542017378838206773672292446588756635515345174196966970475337928913668171794295609601726889138204985806820406539972439518616329555928619804744618704351766467696916005054349009855969576882408229802931560310503931182148868662440191039998796370943088204147982761997303465312296517581507060097911507161886628977433660528115392985979678086852632300782751037442076383679922955178022626145525863356092666191481474589608138565828545554270302042811845463735759025119412356818247667932334691149139678673328657607027682383784941739403988389303934276827287892545464834207241064424109589385468161468405152323873266958203340906862497305240251878945752259369018202950138845966357130245024216060948246615860407843292530502739444669519702903896471885740093547222199340458129612492353350733182177834891212831679545133680183863122350064376652292099388818854701248555795359740350262061432960231714462391745952228363182012769360688011713994770149037768709232211652532974486472588090033730963355040890045872642333205536811823052288949089077554827783552309213631041050927069621357772574298678816046651405148892692583634702930971796145820912990415684114958132587394524290199683967003630803238970097686469750377613084550367373398865465726279898953779317516978502667171365486559309260834093445119581798292397562826661859179370150813491148772529371555103574501154892559239790308948722784757435704756460238233455928478021682247260571307546939615435767576203876082497455425528439549400163924441162693993702323289958490207043400401683603001606143735118698179104074949167453207942903678635716529716570411345176211260371717923441340956791498817365644584343253683032391252158174721846573191101783610508315791822144512027665402692995215387096976785609661191145606171062760242921077900800264259077662311665060466904449350197028272694612920963108205908507873516139361548311798969925788649207090156310456547563196951649895601023155755064016159478550208505412562101271624784697345645748224775136638101656495288940197500588978327231281308022320308527578437359153095327062671705760595582085944821355594999181982097911098375363258915465854693607427983814344704579552075151636225338473709150758694585975290270414853944054879212969794285826392079062122705533805270054752793150535295930068509260209170528528089745490348405411025102332997976300378335336548740877071490930802694481558777278515761901348442192796511197687688053414430384379078258117165545134658224100215808173900540028646835294167523592590053705959194186968995230759329613626215328289362016942565064339049476394859761428702133576860178148314450826544340524689437781197575318115372904597769769753982306611177046351573425591548062573225373814407652977123422014654183784261728407618634583231253848832632259521299011198431484994311136629202109518090838080001898097870850912693480303781750580221082628824179747847074906669698472377710301366027254486851453143781634095326639032433718678818644982984074176208809413892933413911270823045334241316748933714748863584367637100105244005109565686753833608037703909873808444896036695788896592936942866816379531679341641002424996830136312236620546275776244523591684810428228861605917436763179592695917332226159930860520399602556669674427236915947870199521433741361371550895535046654573958734264813196201108534558668372815120371416752554377797606154828458851314175911126788483383483037838297911976198045764023181396716337650389136289064230906640755410335309964146872418526882074333673056705091720811554709494377255934804123229879895394894013713274287437745353652796703885345148111834978601177194804110927056119324001941413844466682625641657651642747465488389566051972805703062356639287430048117613837871457695549088931427063358823480095615056943729732353525902558377854020398226400392292469026160835351274664209517156969455883684151361329385141522521430673806539169834041902352961416130493961212785676234582221817739077880286845768455786156750948933854444195699100957620565974216034001624580208505211725532786762784911444241077474175496246131357264369942303438670734532274851190326376717239373782161229922945351494959746037298712000490154153207796631254010188163429527273357405703166479813532009828873851986230467092680923442453321268061114651045771390772137354614994103603869816470786224385588394563433920759217394049817229837529035172321617803140282951580227078908927561090890104956621641540183710581511624847975238649376456414420848125373640488899068902967446921658994802141717764591729542346890487447853881784128714303897048508390347761455047513657634098576923481481658629770849485415095075977977593138824912414566958973401002568552569483172037797221971121856773962906259492998971751373387569423328401424506337011323192526895348610051560347832313315788458680391929763081501490702441776169382060010711601144195363739423149756071849467358897790852602303613599343950679891181063828552223348231895816864361871580474087938169359663605104305916557374741947536953345369397462082977696599572182720477335678145929917124754868156377506813812442706267473957067295718033603260802826458309999865046719057626599656848420456464995942106533421634338744823216214854960927221793854301838920841651838285483612198554939105927916345172464793626776367751070952158440729505717258783815295666901919904784010362716747636860916114325278812471243943490444934129178686808006748856397959322444179231721474940850769978261391813692140200588312764706304202582934919976954846720429281354431224441492941638547450173838759962065428752123611447320827984888752707752109991777683945717766320822437645476177934591008535475694577673409074841491658620471581953552826771422957888372491603603201204586050028857894000425409300263187614984696955992656703575650057819048824931557513430610310988602002428379214760533074645811069457714816620152667609917357883995270449214484495345810912851993309269866854717679014585545934285401008159278735284209807206272303336852282617055591121248756787507759958252187328520006448673309069417711138426522218839083331254414274474024781117179983307843198224255787135713818405802867749661872286315314719404707793605673603322685660424887476429856127218800942157612467938017037255563434563313118138794469660404255308093261729478110834448781163541094584714350909421416857531822759650790609500861139452719174646911279257520729411785547725240173256150599656077104002517872707964823715895424989977876813271766278828508077852589630921051714634591535530575727272200059737180453231019077881326853038210579943019736894939399996752615377731492183045655543435782456436810402476391268773490535036537229765944346973525855091043714277893554991315570976475897709051778153301810963159832701011086995246299371112450251299489530501011690439475558891549272976338204033315547972646943356824359296495477386952766594251603303919242297849581469110503480450564880146967510595323635449452250886880064091857222105306169042374917041944721999337464376531754227833050471426988282935391496685226531526229535433756428223366175025500020028703548412182148485880042679413684057822207434912002697628011604869533144178450159811512578160314853886845121412842668430655300032914774334807706568255471931155218281610155856898648500359361321924074004972984694264322523026985960315860749235525246403357792191923528972767154167347040767133740662747547865251133853516811498085266629859426569713552311497588235764666285076771521546716166731698139299364242179299288368957470421089625846440005430259301510405748771561132329976870320046994577233851688058443585957774872519140441110530274950126069817354909170020163570943162937381049902044837998562973046271937682244168662425657061741649201681465940906888152926741983997964914841143995136296921886574847052715847131591623902003163277164384373774114398416095355344756022224665985582582642400393364982570771726614574520949778283138730657973360191380028018313291859892881457070648298040697071278135829542240131021563614118660689664241278159776338948769979720640404348258425817535350392912204479010727670117569889670871716212785433028668105124594439768053226972164977531058006207005248091274557149016750180339484572252876741524064670060463103705925772100163462161125698288478075009288315353618592246074240961803988165121075791229017560166730200331923395251214651583001596592532541422659038686246741351580499730701492325198602259711001980179213888125678092492897986292357293582957270301587580255661165744658023514346196898703224499019510445244164812369945039740088819821477262264808405291740903457671234845617160220890845452503521483850013011136770735848974231265819055367629496940891954296462721702934094463378184002369183215678644977809716201238852849187161435852814083704168703270015135111958564095326001335868856304301144868904795920847599370415705413730186718692737072450004701137587111022071461863023321099870443955917847299883587542477310835039358058282015884918106483233683670078569973452510340508211046856569801769205482920195499574861626013428568550469192092381883663578152612450973654964496228279409192916930568003556092165030806020518765612217490653911802081542995914455555752565077726821468149799037678876617066805192031150079871336375791323387713654958876076169469151419201943610735048258295387650071539353454693252864978841470598265346622093768780705569253322549214537151131942821489496047701080021584072966592749359186139806402995261711020047173646766851181100962865002473183569217827899435325096780373650619024130253181973306043905027769362587888010799678287291116838692772935892526962297659702027202213015207448513728470604221367055886787479399732007214831355556347682695302882296643169481349040243124207715790905516861930642261485527850752149503512952994007292399622051948556386523311375265544356704705415367952104120272838273621612403177173904650195290028760243435339506772498772170937311111484647440234185481083448094267848472921856602801818137645173510789167680381426904408588435521783602528516866520416697372815650267472847815730853209306797951100153040841859723747849171277494203256014560581443919191798728321361515782950929886194853926290063314724925517407843144606407934045304822763365693081927363049325655378247797767370454804200669873159928131896101956561583851692742046212076008353564127087962348074210369910286363832204522863763860433996094535309383792476128017938168103023127864665775100849436503221886333038475136947771896316251983984139816487679151049304791653068026600595189341518950674768815411519139399690350697979729274552665709122449001605426118884179734342868747634825026310863899990206623814296324924212907391239575188607280198528082317223667558474409770058578582266399900819421860141930814870841017009218941243010545889736626542520746924021058487557634648141282890666867744015375935771995379881621686877975344640085135256744378308551604350921307700139875470279222085724682868364164743520411627230598562292899934583306865686428067364728844364833808751790880970886953146019856950388205936699150735341069802481654287195773798608710169715828551357711307747922417144211654590452295314019117997313508744743162136538796909877107900980693523597215759987236705628119507180986173704276754647495439223014237574440210756172104590032386827677080625181872462464518413814087371405427629026873958376532235213379573853025528944997320947363556308545713078442336530147002657167652885995351582792659179799891999426866899031138841147218926331355672496296576061279976486936902502798343346267715736513486818102847665654131907532194515286589289355889354131002406337706845775573259181428878492658246200603836897985673940922921639859392846003517237977414202324339461304036968684274573017227235238579106959399538919980100911956021453420734997902581872628513029385638215287122159725339124158376306640779686508898834087895637078529893814863842002776349111467601544304625141375871064571712323291870452687806359946969219884594317578199022472723316145531352421171647720224185966846703326564199119457739410909635333005494193259258111180298354073417356400683060751021796517870404977277794350510470645786347594709340371703472668010703930296089603134549523839026079555756289298601159298844062819506680829917208843067729541484866800107585844838697150848441577264662715185848132996873228754727320191443921817767180306036278938965197941205401850326899630354107782756735263848360539959346165095660506455959171663737025745123811032283719980683513492700113040605127792105752134951362812627086657155783607715627521852321048127221867471653280725764714717672620777993520782091513844332634637416916099747002758194308888984433135006351343313181405185925297279741672012401692846853065939079736466654313253418935662973276836991115812760636957988332427601789746968767525750883075013614720869057570142544803335209485811245446391668784948420169039668904487055128652260810410257097015482273664610409924914826502593695000091116964910903371216363334876064808836370851547292676937257866391971981225357848646470930792948257780501604193101662589072929456487444168999432579982185842711060625773267607587014481922218462296109601908568838789938293784156329954165745349264565053498175973318642460616486645772989131418416007350849546062904349249704166962884509875473606631834843310438583753026268919659334799193197570674971192141230760777228792824043861224597736910281655364060839402557137453276538481898284899010471042797925708426184433835095682228030338643287125111722658510455803245382737317048701535483029966278150850341592190405205700675545190258333022448710188949882020408285731288914189179001820625157627156563357293154888490220108161188006841565646397616525099531301337542632624023882942757416566763876278914880940065679748857573037436534258379494817331433875801992201927052595124852181471048225783920933758312929506423159776511000159558029819663942532413941177766453663064879580931861693671026947390912178803802034077260641878690801850009951550862574139287077633091331001015717452138384293507650931034756761104740583619259836819109170398741216297415860159189493098927740937249507732505870468797334398623974522818398378192642153132655001465960899252624433704133870627795198565570106816413890501144849170346834200122531704344179905240908944070976720259176388448261028499722804890005369908681857850651796106017406279102626782896906912355695909121070406051752191849211019840312500246419898386655074969275311893959332395349072109636272581573545816402907313244646491300088770816587910396073591401366072436419452751621078784924473108797062680456677458782691774872754856133491881418542327252385160945569449488106039793293091174759220918737016738117816360569664677716355899721772532824315519724925818545131314628602633220571032335168695241421064182588675352176867523746565322380902241209809441657471941880308734381692537770592226469146240192520755004206373377792150964596778875213873395222850546007866724906821805854806563271892500539657341522715705448407625999952480737291785257506733109546774690908187496224420941654785325183960167902019117874413703941888879541871249193899406240857307894803518057962312532198858604170781755012266445701682875639612900985684543327051381541535276709382085267534146007123479377372158067585234746715331101338896629893040142092726358180413482646890533502283493981486352200183320099415136654809132715536079229412020395102328390607827904916618893517639938123182969023465531615044606102039661263645140716886183941387859182118213146144709234609171409829090543426800424999528837151550052090917137230743937739885731055870640409821941769961757490484250893036084035870077958444961923483917482876572814389134181038813220036805969841534044167974194734240597794683499008851315220137639727177605281968296205117495499982273593107878683358835706033565918856056090426508262890370846962672300457333455815946663529850887949655290134952304732575131908312525099074809770358366857228058914988118790395211747089363527842734476101737709020151834882871667483257040011737885779179499607805216865340939131854517153883009735404959895122938305559991913867494568681431707844363466806099537061238229349415080204711408699396497361347090646920673718819262161358859141639748618629042629432210196378330922650026837789742181870920934726965114535908767927935375473516116124362333218896140607740922422686409360738193858703169969639812370487891738264276095314155674265461941923898659357879607712558925406390518068311763389073693175147211756862215878996599790688379055994219149340963379806206697162968739728291524205703995785327420946943916682474971362973863078667450650325111814468928681891527391205436324364047927905200650261882640744449001134220533335985749953250554211369806166837957738764944048180024753608267429034478095067741416168221353900497467574328756257011141859643835137916813511434520782654073837075661599687437355079378912687007223124677547205112906552752314237597517176453682143020467162606864862250010797240952531432577307326615829508001919322663606301279477946157893619533452224381200372838254949737587785775762316931808972777786353289350720889116838117518821888203713903109929581434354760274448402022966570690886990518801828253173423864897748234472687695103195540304621318109850616143388638340737223598042781902508944670276350916566741602666864243942806313655653849721978664128828645718172220505390461734114993424509011003665069813208697170707538624576473756694088862536239261601868914532612337723620861864628720507355362554899276610990726862778042696960602766748278050842599634005056076267140138974712928433888838619003698932577877584840775979996270854525620884125206165191829779182464363647554407751625723909270061964665033755522729152505238333803973713604459137449340598136926981979038855015141833291113136105093037370834005912968039912857561892314697728265604316337044534358048337188105863071872475379800868898466980596539678443338416661040078526211426669402502887802824868010595765451285492180435312632689116782670264101425429936091132328389886300707622460261547480868510732994096834737360349278905080429505058063830919447691542997388761776384358540015298932011807815654346403527866179316861239998358406795657577460284566342809264575924455137651806462119655789000277926441646295287884592469007357798101839685254644017770781835393605312129129959638128911149872717085131435385544253219019812869264945830918116876092241814121579270641965253339976156237252587968823497171616989099520218721435951197968500854652961792170745898624083749390465888270549722635407877888640432696050984222145047533417065957382764374749677941303759825132207216655803274533416525985379954689180648829321438267041893903894921562226037754046406334783743700753141300429171543252428490818692376791678257607841615952824587398517822200299030232275243332213944792272570008000014164861655076182029913584199483864820148610632412094944173080158521121312397695963218834238998299322544504138641822129862850152738118240685100254757337799096544430685638940786749023343567844443193629619117684539515957104343645295787003403919605745267619616112667036360752328009467150372954022058003552210431610411639762027912758726531509953433963384105243849625144311932216063597215961475283270342129980188780345652948947761257449985881827764943777479632792154972980862691898011173593675108339737831092042029848643002331737114531721553543722760233055550126085505312123461388892429690134131143297533976900999139448527494007809269773030081750664735772647692516300336902513041072241271258243510013215562251378119284993172130109954499860951324436062013962259420992926151174660945921124054168828257589517334407900925387925425319565378335368470158359064908762571428629902931641928326939142022841436408191226690438921354014239914529961921597977488613521724021103184621161824609276531734963207971630358681108229692518464718366886337205579854129633929196305752872726654371306702958756705064267915233466842925284484106319242438805234782156493159310995848927108471373528559649225962989673610574674626223714350395103114171369927814648951218824565288537463400781923394672131738249021724483967457336783138155313709316895401803751085825840171545420177551255781130738846836205789383035406116203054982348879974422388711017608243985788004267448358507426222649152979166932629544506897491937215384724609025792693420400517772165940837312908392745325344685624124891224411379245270614478624343863167860485943615182711072679531863873302292397293115696813523474072603962323941727353543082733270616178620134352714422179915825227774436696423800533479439020626378266958208576638430162731399621232279521772246109787638396353343416418106579467071612521728301950565465835078860008474330999929335025967434636181699012609253659469119998998095309980752084093187827305131251661646285141163806359269793451789476153430498962262493265655958529914136162791751847282924935184347031866885789107323795880057500069365876484943907572715023374814640634540253165758645154423083361825999206080319816997581294645417946482788660410079223458096914320425970578715493524876908850492315300842567325512520193233694775743729838445859044464859629293060706903503740006096096154611590120777206251989288530670978398975598567722147672354465498920338435322490834452050616661262216588422322133722014033340704296016008771867224405365731114379394969625655853980857471130661337403485286442977330843419299505960170906036506399341287188141970987724962013756904616653706209609815205665495517657241641306193142462764290838966558759092386884776228942123655610603887709343296773252004364252879632247295191249177662793743940065181831617828600705548397304571640739799995493730033502673917443309379550200352587667788998582878620771411932670007643776793195189537902339657148117632405469363245185597063545622137312238614220749239580530371603926426822638477063138905381441764146153922764849145429460685185647409344852860568207402984435176608004406439688350018339426490098918090416051019581464520147584200989210479532650342046756609047174780821168713839386943483759516002029163626892663798977982904679267107551379752194342761400320484959179661123365436279820942581515759481953850715175861794961719397814678509016346319451967837344093082697704348105057623482563559450714836497002873968696858297198270468729492348530987200244310679925528707905309160690712819586534680986363290441712671771885002573048750388453140886569938879597084640249616683476081421069415522291476252995255947924313484580657411457712239834987439962880375046842489125323705231712819394240726828564420638227229390806712532714957522215604284085064024135349246356104619082804989679173858231138002072218193072131228737721672567500864917752409100274834709266635399745395596423484848151689453501129522617527223043056552615681211360060142970209245923287795940007430800306933429378875828147528374672500124253725312411108362273645293604392501794189384520282611474017795361562985447463981911884755806400926349539577395642501498299561179613895981106949829792821916549986813561118557595346453464036425067890931511935107135111403362206534388116761407398456590263475756594765697655714997085739930497710821468735800354681064458377639595118325187894667362429869225561588711718892773945639845161537857174270427593573543095042165203008792972672402410695190333739796067134381271771200684361304574453976000309787118868609289925702756908478309904763963164085678593996551791361380254276575075202990927172613910399418488062110492781539940767190467693800741213949560408284428007685662319981851662742387945210448794268927737272008180973474640529909389971254538652674300495027583574786990421426657205643861131605726609775299261023382065220534251954952454546662636372376699443589084743778452255569326714453283130395371903508287174610894608511680796505263438479792460200296472678051631917881368001890510411051398989791534208898353027118762595675550357491045177000204694569312867821292768260261780041307450602290647598707678442827301861219436451046964282408255624284477509684746577482939840470686963457323728958515220517349520206957554760491373698231192263581413853902419035548524150000645737241326198943435553672261349884719695871760393553187606300959162693927578310941760048501615300492921908131640118072243397306474438951701096106748611096491095417496564035020575322227055093944269919059617900602569285200497590505163173580545870270351403467715057875661047205675270672397398979634052262062840139961646965416092630131553239713584806132212430339303638170293551708535776416872436140688354125083832929130047028532193819685259794833829224826535670508076997221720813165116858552680579202721446240996890445793046201855900519395036033673574239714861035199342373190913709964968520444331941196850226749852083654915404337650863178289372519539285419853891459545089339002159767038096256465588266321842188493975388130146238177089301793372378730871473450554730662027277442608030573734378178238633340351156205681096280143801780942175730072079383898236040635554374986647254948064841646097065837930577513474838189858066725003640877796276502456356820393704899443543093189671249122058689027390840989713173962088804007044429377213254448041775318591768028734730068028053897679026964906238707213594679099297120549349057255014440476477886581630823636768684434320550332645039220541903066901625336037097600069515774658260372580404747480356797451903245458538344635682682111563514403104246726744405634751332118747557617111614529207558783734152604305412638859305766743001705880051704702708126940824288484576500652710042537823575070566893772833899160317585508053288106093230523369663559161537230236465173343268368585393703821900876842299699662833247765313291579110238009405992402228854747403268345471999772981087983709471302089423403454420811373136240143448942550857467401388520431407025662732196012145390046984259640140407507995718234974598805705806430965936911052569840051661102913116462000453390818437525949048332856489476051945238184787566289086302968385125680587155928232843472670030331217598873093664349053371466523241863717166796497832082536506274790743089785176142459799467568974631133653997276873572445074082617389029597168272338660463550152697059595460920978615494605679696700416351685580816839451945809265907883554178813609783463145867433474287681569859427761344972168611968386985205246128314838137075770642616361300086450930490067488498884826548224552188418490492582157427620152146385077304945875271661595790942683893424225516897920302602140640944608931674917222717674325972597625842087458995105319902833497560625613393130115564664185233489376463258928180072727113308988898931537334783651003717133690121609409525966909309395660568680025565402656199502712355153173309281324945656222856932191568573117696575008262205498952556790946146874846333312835858295505945499936933409860083073242960637685326053080785253683122626435474265206034909203631522374965647751511355938593606636062303537662777487420052904851600334854211612433674045738919535996857550604700614667311726503239826287884647249636599457089590878466226305731375483024239803201763072242306431171388153676908434105931227959977149517481217618211290931422218414911344132865168592402010495263085059200518113532326822696084230398010302847195967164255204352416126775457489833396416313147894638763046093217055078109698804955593365459216163654488378650294037655049833206545107544302367754211302811767949188363944513475366694061989659428770182118698804319838258195987482469378914789747807463033856446163600672087552534868111696093635056940962830724790883874884916628956635626096235319218187296358784215000849952150556307347206745219619466428844418414700891456946543174634090669679120166072806361463228369672430595288330966437920672002674204464334896685460976351752385502184731560309412006446792986378351756573219311953417285358308106570589917829824252747365959097929976937806942341438765556117303927276147686747836284796367582614017546715241862926631094582385367253880480268642350855347323736154049985114976013997679807863100179775815669808131356638016037559506230862271102381644271386444867027061243073379953244764336095538710607804542912311507432801843986160150626866074831564277424094636128166260120471096939922310620485985898994858212378791526796973169616663744459063392703325415482755152209623237440198579044189599668615211124600548934607859626691182451494128820476561779839916017203795675188664287362225312265096277676931499957474953590133075790242436411644675137993504688222368494143578099507713256518990413774073725130771121707196866571047919343671361893838369562339860117890603857799388547137230669068841728478745759425064109168947640904255953404001346340765434366054967364675983633754928670406934955944057375498247489252655084138124363232977565873050884677971824805894497667142446198883774811113915099801204814225862541720944373665771679982725047837468134045594842511150461741977163968737213136268412314222461988228926703202202971428368926207715455487636619427677270288466157738978139971596466672494835002122479632947111480200688286896260162900707359844236242662325338870686769169956234794187424787743298836550315517597324428874438609513547480663151654730482328333130987185738435171666543968881017123299078662841647224015910267055215154057816661661778360916389108960619211400223547316417811508719287541920040319908528968101604763651528144251962761327480558453365937774771996747092377528959067113255878019395357460580299263134104177331356719193088070124657548146215744274812866082237332658627290953277313586672859630140813410731762486208045876543643238850070412285929804397257073002647504250232694611437299378901998697825745468981050311209421594350535621675058727693332380241607327169873191232073132088948036183827176104134948697234107042084933402886104786992536002322832172188279492668245842084029484277425622017733293482476866063832559792364314608237480476827282328278778723327208313567192242547496712647135920377311952815388001443356089109748439891644595835455406629288048143839578769921877879795550755561256315742797623565173668003717427770458027979501963767226761313641153272516948162831761332949367499527479275015527267718970844319384167119672475530123727175814983923439763349294896585395487459378539577537568829217603094323955593532625443057203497609376135046576624030852682429251733496043454323351265515799258281469745944780854928717042222444027411282601196524395522117255630096010144466844292249652651305169624240873297798411976449668137455768931572481983382741561152026554921607698655167913183527395061092821769474126726584622733674391709885125744668833586207390202079651098693681846903353596569466182145591546424150250736285020047837844122084667625765913469170463748143601902653034258884300030868102886087471801394356728502055038669532666822432394375760145578875428431857169423120942156395933406604298964263476343652511428447586829704502911793299656815319167220332992274807433830189560157259696350255353368585433474136767575092605072744181424276994030682831691766459355167191163716468515763135238024521859615960901616665147311702709191500455323851772767749953125310899256710106355013098171171616383357901773630763366393943505208896164612396633441786096007832992422311095917596073034831221488228368666151861867719573960139683316099390044242091252099195457084687231322673143587495798839332214379708616906271099291495187714724327060524632542382711145366898310741235512898966398408655389814247621625863442574634132969598306183922654670094747979322878945408534033600473826884553215995325278853940389572296899898783733712717347859452728791787551771720992569556323540626281056466496178893147178708961209092095791607181023607302943579263848501101531095443696968199200386473336540613324330162923763875727954198587061814681488595489563326017358088313504360270289799630463009469154603565841859885681701515183021708281022374560799324199536829531005531643340349133388432052744306666326705873561427452618689479513448414301919395876034264486371313391802847575066148722186056936587354518017231385443092793355850169729163102483726725260650634855200701763246573488269556736590344946331084657937275150856182327886588913632007404262292832624477573463807630667251812076811130260395284499832890237847801347435639005805522575504426135312102539003026210623252032881456850217223111731223052961421118076351505957470296511207130190278570727683276288272727227592831287267210798653733758204927523755802938815540306942455034563720727994577317219798823267304727017165021332584976593972327153824797489736438003742542029389435772682383677147362254933073028252173723084160359227238067181682855006034391539475112097119978042429543786079259196651205689374034407207343949893114965423286626479685060047442629026996190688129756502153618364958050236511081787866573763503942032216529444774506732177620700458575097044251589312928147363283660589332824872183978703178081369488472038767552593195499276833950514173524268699465496919441668546258440099468115377027372227184622201311394271767313500975965633771755767949273478032202276697826527530189295174921918335351552173482700270903514187389575787350834796608766999605177178829589723362947951252146550758849483690210124616613201898282940859317476696384824795016808323033139923706497076716026948694015338224886474778699848880154144620812194538336699169923342580900562520586595133165201102339580415283632551106398997455698367344700659828465541652933454142325720991565453230981130512083713035165290160674604698848242199013494263174714597794437770374415292407068152434080345195407151545245482167080133546677688824292684636574123647641439243710143855753832247132377353257564703792206152616441791352166302618820572296547450932147808834500818412054813022408236378827940184950557101975208835566421151136139202251788117660477349050790196337270644405578532447965303496582007933861866939416008044975322337216754472528335967648357935019999981738848490687545942804572433696535111104221471743168707738429610654487898738268661856091019586831619774184459553371935850629018147531785084004110903957599180865098171112671192327105020282840899371432684318835177026503866609923417874268004823294049429274153100397480952704903664821130963091709218296419160394245746386888684992981323296437390052811211002514785258261718364819650542198000557004914316153989485890936828221321564032822988141056655745736485412175783218546815801274004110803221680819701997193026279674115007437796790132700587234262138159060050156857548091489430511890378746701592248869567955980464909437707758650946428337622988662894384960158566747089080949676295902050911489390094920327219504392164561056697979724699341102271062350265674970403932270135726011305462552529038053406457803712761645925936522762700507131292787296523395272511416983731449300510422063370477466266287393547886022687074826836093295838729058797215844993089503657649208207659105351974126141355760518708640517791093574743090915923386021684784926316474104091142477676340157326489674149109561491329344228063265417812846226953238774371572041154954977448590011693035853789356669520119419347516696514295406687862516405595679656669511932079727772379763652537271072492232204181480191540037407147413457537145513600765438412076343460170357092044453907313472864741936629016044503548756749063201445789374423369035762927465266758750348084373679954262748543347316459143298615566160019614425524055072640109747371974698886266489779010101123368073506374846224094719382187344224516770360505530963202668605426099614123426165983434558019144921678961413831074665910494076823560092664611455029559774679746369055954751222578526818108433737027558955848193263458719834389283094476410327212144429383779016595280398285807368752441931394676142339080939794534529399839457393925210459556282314157581459856524669937644703513798367905472102109218190601759793639606002436513125846307425786230727020732570415680225081420218279761051434108178565240943120451849298759858281443872008841828823464260092383169721405257058251139112235931133611469538159364012151466039632461253878958594318427856058182729537408538205753304094019134581600144293160989992054994475326316796722794792236471146644082963902132502118525414731837136132808258987627302031324769377087863375165546022173343900729412819257320744095620175500036215792117196703783324570201331165955233574372271789590601897100726141687177590705967529473092511629165918959746123594528000880280971104392503334906633321051522704910507238782308575859704748198697898861061735837313295235534099794653185058574192031190974785022816378699772055330418837021328537541739719053813364399138223393229793418167888541353421807752599736209010937551814809062212102377330395057582621987862950046308298676942613457636654181933445283622195538608927914077151883199256022467609246925778516605811251900612013087889489235945699116685534687382562373935363165245318016245897103550690663864723379147742092020743414478926467082027330284276327844531613433844824883061279439482331196960004702853185815188851127833617881801276582102333495184777125363088358135588528680336499262376984384857034768667363056859502240819518063074839379787521874201344160037789086904086069325774101162343838023251812039407050045003895989537330787976027919951910310918335643555428910466159172379898857990098596012588702062337124604015985529582382886249407298104878693104165858904297810643667006761987391652716639216872560299271389737606658916526024178627194067955640372600317688593118012967623944897225912335904368897282977725284934363494029656772252027604395394569029210993784325784411464410477756521762975854642226584359776507598931447079042466519762083037115461771592899876691548942641222337325948717945308848648753779169437768044479531015754603190052486092351372494817328658809903894209717490016475340211427812938885209436342804541115506104287334121867572497809735793467395936316747421966060675089377555925897482589228610095991040992818616207011259415396462686307133773456791877543227243162396248933083229387301512129705891761747565973228919906122488095863979121889649412453480697424731543184269319164837921181025040756381626615417565512595092125725448808941179707553642145552799287230544441248978710499657317035440095158327203826044646008750794504655638830345332805705457522082317717856456456276840888391891256048511095294554818623157062740914860130263845071329255986269727381535163663662080437436492063305792720657071821870161127699555320932764477144410827287223952160025119682644500510683517039901817835597721264276374606413998831386198214113752370548437069935493177988317474684361140222407704859594239112155839667997394316610530608188063854133390629694210028286363064161035258720617959908874090574904729844633745533400141436928301854046654017234242039134876698619583728054895208827705900777653553440907702083599687086267224888117179860450684020678087793452277999448572144513568652920910713175309784736069713918201109934269502672627061248133298925586778034344721932270734798757550105668662975430110424093600804780352190199645160215883730620979619054909957128276403857369178762630808416543964799362569830729600813306013869212987820976617074663155463433295685008456817517391878062013327827775053678440684899942317151811753969884387206835511036377395371650061806049542583631406111515457083297388814056762339141504496863142995056893508645528803215446883440224714574137865918548671528412166679693297067925392966397950094002286613731555569165866872281132383206283191048201728582357212089469074882449530899444677691140442213752784336879903942686821627206607824500283059460079994836552589181268447472702424214678816264722794194253879688115626479626702056518460753460077347450494579801083891129396879623912440814229419927896805411775353059606728535927911871343871424076756985710586878345416338868007558183666675446941884951780636430459439365582266662920014254673981731495242556968946490546986035915749452872077578469182931523695237754030007491105304375391362902481550905699305943138694656969451140545280714694013430566891260428337747081407811084373223093284004811534403475785844717838695560546303702999438505306703073634443724694247596880436789383320181036444493984679652137107249427944662161260194552570388662216982424157974097885046469351323530734500943197458602413496644931530989787564163552141023739928756486845815299516010177968885572341806955418023515552015761078607707463996311656140085798028066566071344396096510169344431949755508137661094709183451224483862311448902853733636102094758520343063875728388960861858274870887146303907494578868824981799619953326255801500368224053451734836890890480199761760918528557257635856594598716095352599843545426372553278452379330089757560206396213113450682974257457067622826359180209457095487363589752571285064894294555220908130835235786903342810266937721636359136416553928730509774898680392326030083181844780157013869394659359016110169106146528505742919619036639846235254098463873055658426260803741185710879045564903627744216504076387935135287441860653454353216273331316256243521457708051018961184192278258138267372436256321393506063937848257909743268917364120005565697662056323220299243444230456275238647557051175109747672835257229301796418973342571810514252438954038236548488533661197572365352092619132778771548536854699447020692807266324874063710415380183241144125224846807610494655119827898798785016928777611716896687184706088722442511299681519834614157730447162989627212851620288901736988743761762133927686192105392021794418413812294090444343384119460748500572164808154800250466660878795610273463214519845023711090389545053028692139496733869456023458421699211126321317719382033068458609661571286591364910580730851263758249339208605801961047563570746014533026837866127270604812107283697126897936187070496304438586616537354701081752291803026077508494113503022514982079089052650694705185574731585326285891330592376632895288598942958446534232521240453402034606521180742146317765851228443904088362074070800555080428852965934030569980457866435780340956925952361842138505498828165518914740090978620198239524399913780308711216169626036190541625338990326890977860600810196159586355212605784859798131139799038096277066704155149023172429458514084399179960989754932107789823999327518326616916912707444918839287590825696180259398403615418034073884444303129913003332087136969644116246824643881950198690736112111247330357942804485974292136624336377386770726699186617214233496113820760280322311149146425538886144319113610215654695669003553089762336169013375715073408669131356894588795832514348612120202143577530330639207448702525645086775019837011610423749915185421215388216233279739812825948562905712521783499954812280074494149332628943346048807364944610852899729935958519591885409427197063542028434257150386437132598012135171962453553584132869192394483220610887860288135968775048436307447457348598234334516825030777099464924846937125703944468897525149953470362911114615519956185561583936233538790630505558069364065837117831882770588786861670569245183397897845363240793785994416493296513244161437785736327684653530412789284817396458313139752509193714263451757166275518379153509424733873674425674191684274156322532455478588814781437268949760661366960634699890804467402255026877692327919591328875196739271632247574334129229866599313632842579304743073563775186168627282061246077639411672526277577067433785830843778419821817585220234811922665405899044399908414690510056421273262028908763571943450932113765761918994514247915259544231487750807260684119347711999702031953410272786795935626941283358047493592729321564791775715808450236263685799095755435432979009852705505716495129915498147983340316730323542365967768622635037444372595888497650389439601746644962887738079820156849721343115769914065869398722507252745992380272110303880640981625911361774696280630965077514416936688764203902622907990872773813094483704745499919189271297060471941535080568559216751240943412029545800251459437531923595929216025283190772214382098548103933893864556840828799854277836569952864988575659863101532893034970475536967031348835074827981209048942837452975018511713279939754297430893374041545298044219006522695509891231059893383441359878632951339121812944583426548808366767680058072736231408497744010293010244046595739199868114233168630302394025547890728561349028071454454427993304831106288015108845566134200093092692735991162482253854847154012965021958583652742750252125110568937370683326618278800500537727160203984087028728135322942178797661146264576823435252481260525881966718979940680689280172772720653378240228236549513450490415753225776549516511952494815154074424223621182447339911300937521183717454977196174484946350732447945848383488742628375931559767205180906969868561758207027656217978460697912003523003270637815544016358292539214140361754838776779309670899103048657081161072083905337035723566022003740506485455928235037338654677144402146789250789431605471066151750300593359113050880905839007979526489252941569392343600685762486102359078224945295229182014612347830687197272237043859891750531985719249414676825888984145358690102653460362068777998926616910222959445645319196636547030152441681123224010274855502284172139100805364711822817119331651507849610524522074866345077206251437437127518175764094011166476009850287114555790107205170115557424528439822376986099611247740553499370072606331855598296550382377539485953721218399100437058208902902949590120810388469771958670475953328626286330444982613155862693732599631478980079484930993323046846889866021087181816667544741432447046033573077604312697730150361607552165937855065934317413326177753966392131999316049221576738119044876475085983339630682013669712241219613890496807195293854617684214250082801988820992537748873316594476823152776689912280453293863062867524856066322013579845768995697719979546757559449380134531892105014752394121135039527724653393538634672851690482152355090077661196634271707198479126124472733664545964360263373540494115252376462553298148453760348714775944314075426645310875504030984545924140716828935127271701243453010079661274563889291946543102325755876534367924095542174008960869228072725022891309265667145812130535813467936182715291288388615436903871646687519870216550104179007411193776829992224432526997184470955098607861574997372099689396447056735163029733813828545227141379928059956377980638159700481606087597682216449523049744692460480528284825384358053720901879272757820072723943439718470127911140573742987275684352750936884468286529113260137585727400471873130738179984951149228189525786380987314454709914156820094465433018788185396081426592795501385630615756268887614349610911552895915853199138107969127433454139204422849671521736280995473430997186465477862827998298250501859150401043646382630892540390367743217820206716180818496547698943884243075604150147051402281384560017716152441279246487662393479220580425415405580334538835005451780004855707025854002700645674530243619685920299404933517068822445657119706695071579754350086563391054380963497362072090823709014030918089487649294392057277868237669602533453983383445090360531959541499706884095772812164829064225757136331704192966610341009288528097212682621340204288718955584206255108609455637537133924641994786229867234470712176459370293010805164633605689796369597284006137887554519398708815535392703324155982375091936037942360657997914699611292987027624081584313102540615195743091967655177451991627935651271578039882158028242585617538619980891071444891452611805481780816506553185521853212786390316745833438094281736997329732858971835850067705863794095121872699807486004183219078868136110784656346226989658349883767974964935493945074776267077210167288799715259108128870908558247093646653074251310847428973481627074547611192787415736094589010232800441242467226284091082215073662052779347152366141236554084888001801086710261005919043044694155969760621108007437889411209979306885326415609967918443981719438373258136026749049034144055456578409663965345903390590878334656473761337203476089191521322710204034927639834024181997282962357192928307542264718332897429021315916621542442184711235222325961498006233264475568693602134248995411745250467470525102472685924905029214571677665090519528666164395592506345236787879785985670702575035749494186999790728293347943988454880685066706808148325036298434692950950334636453226078686188219314948394622829503114585169830672734105140895943547998932513828038451772981668479496306486419762771821623175998979384806365495550920952295538718933203311040604588197807503721659409673350154899504007483826725762984408778550812293161402845294903606926495105626453875647821086305092163330008738323123226822620338820409443473040947430110905676693947485094539991804043041506282309188390701748973142615857368322284778760239098367729011914360542458458979962269491175830194941008467547483259475720315473013738239371358909377238360530856015778423407450516672352226361411282442823490202162582703482020225211565847115880626058854686010770427149528683682143880664141420536560067240249147712657111899185894106611777084820668487758602985296488507745419758849080179478133021075901284179120129859623156061452941322183469097688747063075763522030343882521637387958266698521537108918037088838561045968071245515020960104393838938433079116258847179670694816417673006869274591675438692041133406200893634585448197035490811572733887234015748732619430108813547521890128968040757142017682546724945607407426470606571325297253278583890424543360638682727076823656974277802961992385119480212021850342861394725226797225809979212814940023610972678174682628815445228674692397443030552730832221453565781694249403883529868486489660278784413412313644374356848372192443433073472605479714560680548648408589569723795423210068528908190195460700983412428810674966259604960143214339948755746186915983655334130723899044309770616004597747895341690686042839785905351085538368786727317799769931107010797373764476201023875445750908429642967678808020578133791440707283232833538124286582382240155393674450639050778256189989207761260417121567322325691677404498325686274347019573925962325436176882990187164974166347705337778400455352793251809581181495935023333602247604311099081239486977605494582231009191892932846826306944094409753844291000429219665769488721925840708411697162273655902820520474090774154902262119211052146275943541580673741647190724439486257258569485540605292106588624149810822778567727976051001087647937869800376583542258309235022073801928926354335731133788838846485740679888935077641992141513452316906018606142264959524198743518931833786670218857984491349317248373359586214503420592117028746200061912517026017494211085104177364804757972988122846809239019563218680284547297357746742147769533154429793807277722574955308014664110536604867398679642739226872177049672156552174528507229277901148583899258645515456055162003852543672028933728339945200691344694945536494012892028206663490986230688114328568319500867964683446721587155643072043555331937555953284987548643930348385845222074338604341660716875829791993928567334224263238158072835502505397950080987181364731611339232871308202858050533950464903009408426604150471494858033916619292849840688217246874593980703324009079259964649826067481868891186940233339713479784860877249620047427184186025422358669006547759135439490090041899135760880920209257739971601701947958126132875120158837670874668218906200551597717351025541019205460116210017836529033260593552833809502407662863236789810886675962066108927691530976506160317516846383015548188657423272644298805156119112549064704091911988641788693036383270312305642981983812622612475851578340546819150788608158546471734127491936626348291554884141789471313404029658565381671946537645833380006079531623554933302407754198359693651113593527675053545636109924562002273918200518069390052296426092971250151534665035293920981739690209745107303863978108773759738320151346845591082792007742980805446290390055205140903305149815815986238792342937030149522004353535082351199479778208536288733319593278275599416006060948284672596494172687802323368738482481169417251430978919390958021707510301945680587072229858272500608148790802181785889352560379351345540624568524582272314043795010149842500302330440133736223166529750764750145650121868271528396188085361554806010026107353317822411019095442396307121372354355730923397572669885491877499940216899725758389212543356050972227981425551315191620881159260848744076858982428896198757444046038763133413230345368510189996871952414963707707100020020082832724088321454075685674592258876493930041021035670422746716406057937226843517391221685789892394263195062600505963845916610928262974421451422979109408260805037752112556504951278050902047535332507907011609642637129832015318243379516658507356962753692378392822997848524804575985861004971318667480377956565596361399405334840200939005165157877557385384868788139491032294278014373201780595668938285473548490377061475057965216685169313116941412730350413665017402891590781955310999983912687168762506396507641611125724278487977100574318220864118705174579342721591373073254476101554219833097515749452889398114014215683164033021919498760933650670228836240652963866299974166799190817343049769270688797350698139628795564226167437818194508708121727667683987929231420363677665544951600933448316617363168978551784937884354210892239983221245781986800522607893288720833145079773997730998074666864967242539407346544112473910660476816923945784538508316593119374739627100108179654958202145050934995132651845308172496301592184225270115865767104217670281139500212011872864664369911822084942057614276308016837803899088031783574636288710305589173239205612153280525771843000483153732693268176615285780558054498361933848406342580094354333756195040262176778905834595195790458948716452049093440360542971041200463593954823865311429448145006018715767520819449207355716699365427826315710864010388549196831391023782484001558571479068353387632881155820996924560397446213596457928813964746358742972116198174197516091182744887631928040586074026773081332332406094427072534748748418961173722343155588772196597358523147558843583590863074607734274998335188474221729633682641698458100362371746510302059923487916935130947938790610374266078002642772669561929075021303223356479787364444864658804425195291520222839996706232258958765760742739009374095700638988323312317542436626075656667851675470155368921413485211269925940148221282669552360663880192023223467114370693909164392776803407081600809893171805579969889513801308070542634616435481128603463373810714666064477842653389790975354618322094039443328345125041018165536120962081240397141026053234685526824449319813226915900115962826470624246153487104502903094778721807336776310386524858944547028739780281166148562287265734302871087968747357038616070027541205265223197710013717158772559989233647145803733825974805031033700685607317318992991524940466698137016063425443091926004954568631652518894795744038658043379568778951475090172826264223211616158308016470708327965015590920223171304743584323577031925858417072018836072754916167963702600373842765801478470103196639421354922544780853526701773185593758083439970389942483443945659773207422686414209032656724144279883879377805978338881250192200000504006439920442102542728638407785160018693487127494290886802926221775704367278969793516837795484870134144197396148795699153227424020675942290301157867231156971976792223101358537890427033943939976634025889371162486906698920984254589492687774104073939853245401573410085369000873268271443780943699450646420019958277584724646504943199127139856067453077017300859443327499436104969519353663658632471023043177927190963319145831612393213568305226378914759545445168005577611972107763074746193724852993847158630739090865644830890386350123265423083449984844795365448171688082983625073277838839784434224472261961199073514984089176812054847137495468602710944924724212280686932480994656657666649435643559637310599722956913311894335167640316654529506312568061561797983758584199102286440282632144378882510634335040026476925654237637000771160203521516744224824863093203086517500864284069357732983905915490105135463415563305114939879697266308967184405315592049386874643936909460863017858809244900207392864926672654577802157454663148382228927544466815730310734750810195329076175902843223124600954863559957584091160208397945923384431848526928514272582860470787212541533893164886172191263157118090885142459411817511215816600693335871417081657572728691739780918106432586164699205735106240670930462961831813089722294455293205126436857006036835474737344432474033280363610772636947708694423541402405293078145057803572187623807089318973075654243579806845001218209558986483323567605946803337859934671161507494460707241388454122519306172795357297604618482247270676270385739191584302718793289199509549667154471994597111627997388443754606590513187562195153887238847768712281313664773657152001819596606524530788720787927534741210492802553753378373855712136116169782857024284589555855741029837356497389542759537114159373210526091751010755789853505580279472647950730520475340548764847053435784005214088093539999031647479834836799194317457224285444631717211987567689026994101023469232951144360641251852295228721594037349263920306569136096041911962200234951397952781457367899046878329349816648213478136919679384591395932756187033080450036001282084165783983097182162139991121938854117519799277216587717960683196668534244009516054756782379167936775006911861672492937302745840821660251598669501543490021041591936151867966608256316453755456318712026498150434398526831596973456641963239043901924071209754087769480622156522223061949286057075135226273436600120364553189546346589993848103013876764891314787798595695676413664341121573637759516460768905276673906156392551975991726412104139469288557612361054230358866374562863880525574639479197630732034833805954530746485107481642065535856099869335555089072723492213216085854077771024933278214757495919296431998946208948195501337222300393717459347275487572008412152145631233513305768627520310178827690029919067986088846780252794998898660623871436419244265798406219377135377524148536582714119271633407604032371538469800229832385612657342764906137716321096144092625557005301202652782499056593945630790975298780361966474099652994715801624587945293515647742216145301265616711186547255141796647331752072166527671188109877819317406747190630299581165134245079259743382047703650961014148143118282763151561899447952488231784844007489115984277623181886243166357654763399838155942849453469149502891905681498404003044784814630478167021327668663790590995391985346376057718940351945232394224538052914485558768537281764543748923547836829637917404608482812235176112083400443942549915427734396311010184524982839692377840316113223528213492711289276046317722175362811613723540183519985175972078796563607929011627067860945783270187154112902389780814933860302902407635096295069032070240791415014570781193297190327966463987221803608046838225891311601022076677368024160836337695651335763033267917351239173599055301753417017795503962622142359686882606330632263625158640377737616006718787155573655139767332212016757272660386898470664352805577313700706464957283260234411547228516716216471163616607073281395810445152314899822324794884402094826835166570243434390168523030565384556895944708852751831303860851954601617855354958069276959241368185169890498633110774493818139229681440815684847462219570718588970361583927071473359793536348709681604990505584464799501901945473136235710667177646103194709989426035416350302486660019485391022727135264001632872775957801691314756025723824442769638148016105529641351549139690075351546211847127858181098102358840047228547858148689130903804045681184874139877502879732331033379906295670375954077923486443646912108174670398286669388636460322716177282729751538950666723199011115653941768488430255290869121547777734077163746089323011554736385592329074715594093986828819074296059977269222501808141267571204868380129487112353127345264188880923083603480953684249556502074114118336110932180403405263743360241181986174035831114880736151083483404336166242061794912736449398231282253337744978145497019742617245874962537121006053070139426338254115105931911917825330511447941849583590002192987422364118222170512455993701910135726327913905135664559444846261818904295591221064383974701029537106970165288921505132652548884477556770399525693918401360264500193622638899002255396870446442329223257297387516044124441120510802841496119864524733930963846312576795413792695439413439868565688488665642006005149743580852246577806050998230165249994785046860252333137501460135429590175828648355753610678105381614354676201844797829955692101597992932563875802053145052342217656644644967161484847846907194734280965570259272381382017702661249005686506800435642806117963117047918722731397143922079022573789340470581833652526552188917377681724562975746820888777771682645522261489021052965073275489764444885992795766241563601554628193425176111224747957592974442549667875849197316123846810763059221256563562225810252286171298687763313928612250144409685864933512137222997793826754025626551506152009565127639285062042322059251943072780248812907576143893429191968932372216180934371941984719280693464852551779838380238755480335416636669534393921909601451570794500386268921772485854486281782274361313575436424852911251580030642672610772183325638976639002188000614223811484479984501901640061954127508794257275765423985711560920031484978397649443002646541058448716726428687008725854025532665681268755250311558306606162044392574144183515369894539314903219421709937332849103997623868252759957126773226247079276678745277497322090927144453453639495734468317387861579718777204907506334980430330119036842915505146767456204822015422654476428558615907388249891037037956001228911904973556292957670166446958413999575651529205587807697480368963922063469046249774160191641265445788706674718993061931270332731046416978817699797289238757333865829431567812108953264172502923225948552450399844323723342552924838723006272691227933339661436260475237553098876510418453265442114036015764034483147077873096651663368514967738070086212763473069166411418092954019251302945958375985019642431699380877909924579004208374040274028082554693314695859964579140703873819920033893122374006507123477906208631877339583678714232976425127438987960281592204778058491362463574456187084319127729116069951214404074361480856366962346065347298838118914507524263621296302288377801049429937724489781029205689482103695253431932434203631043341768742072465466668078096652359696295433274318362927544251137452634354583298881582893385553193220569701562120085053152246294392121007465288334146425176004239176560444980705655074478184217464488785994129992669339331269866507969574445485996539131500996467545132846374692912115204252294885608681446219729498757926802594948065698507884689853318871996086161843988933140877048640288018537062629657069816174893311790786672529552738166520173211016997640567897462147751042376660101493237736826716871932090741318445039556019830772363647054991722864298433103309966476624932012723957207948161280443045211648543529397620919411084956931457105649702384817522617356552957644606620357568155505122156351949032619769736748938420427956138751965017311087826700915782674092968255385997128856121199231252830719138849320822121291037954663349056905904301444425506243496794247584038152220310614843143658087917668161449098568084864355650865275074550984659570900988228983102911135881137087103603058690925686377026030588721182723589021119773015208861727992496290654784492798249665299820852191457555617864849209893282146304589097035489100246722378120364554990141539452395683986757269996628889559857567153634439365340129048504533433496560493306749024882759444521356656580984475142352629563874368821723935037122261327617875071142160174148699810655922827378288555433294861577971456524366217370047140315361464912669474941360105322994779967657622534777136895419811108364755722178091936494795135686673617755031002537608388089813210364135481662327547323802985931224832632086889559637074131880714900091192593940630363643533818350852514916431784893898167112782619208359387320001118602020468914735813174784453592555661099532572467163079328600996645062676350899681456645526982978986745371855448677484575759278576636749501557432611928031521682498828904769695324004107411620805967359078992264410969057400804606352170470452636420381735547530763428505990687777982364435955203251321274429980129848441056008289402825392188624831248134018268018250426395856850679982013986927459026475664104831902497294611751318497959858985733016511522859436392908001300397767179885665406274993149035388872559924211446854904330485234278006807832148927863050751300556399977699398089985065027666063535600552805849769513098205822132180332874091213334228115784228027284330309067733209655245073038899446738400405961721620850325855697242415374433868428369385768592614573814007190020990267693415200229285556646966939597814116119212345342912349334364846609236242822433658985993003659452126281219034711290556195318360662240649917667734011881643520305753797212028845529064911238220619554485277288098618438461247978717021387591863087414305974702691999252040431653210398659968776205999498462766852829468685274543975155604464496635674015589404868026716505527429310606187617875814815543751810802108971396003785390371088969678011338938953897674899151356597128736222086366811743603768224055889793531439021290760715107560930853978505546877844898220563572886234756234980056873389471237293791796340598902512530904473977286218691396826259919591418944517539145800318001489140945177928075975373620532577267647133913359016034818561890001992558633070345574154361490909576903950442043377322529216510283141208452578169884026903292234633423570354878837115297817564495022393842936293204775150614409697784421969680238996476478609555658556761977359776723468845980347304464743565238093892889864809056682697605033764351546099162083827645278794743986668250048721146898866704076638530831877736812286909506667562280012384127319296670623509795856232145899833800140332182274744159337317730356923946953370577896581623604646907719325762860846110086219458044211297848701653895821331167581843784115880842087117936177598549728789975835616880519270215215419150236643706241773369585346331283277726342921086482871267752292787878986539486493653916618770655196889496595591620948145086747496828143259891576262954034908933126250888431418329207365280642594852084467962661257080485608208958487235077708654545645124602729954739615104523848275170333371933703991948643344083905303246427472919263882781966839693194684876285275659927799113913530502956137537946626812421620554524857567269587838071788035136313216989038518495893394063169881661149205798148196671906428608575804081943036003864037433260481704206392766198361024328767963298783758184761274208049230551824900517025655748235586572604392340838908911502160003949140556373511263229508933024925258297750860538804931572992515958044363816929147839286016902394844652803754752272915371006699129958497730041002330660884687139382113870068644741591392690738707710652044462327505971610147214112346531631814390612559159514310639910069184611693903044943176212955487217890549146264800093471859453186727327709752627171979266706996994699385054443700358964741022816832813406239649476388761517280351536440827289667499106000957526748084783512767046013430348852205775269211596913136612477829246635141287813679143401401542416199177349561158950917376341192182239369046594495422660630857717484009975700484317901713024809144051259623928892103716863906603884709124880532354537317551370775788167424211809528167429099312961545343959089249713687693305563732302033606320373295498241054512717053596898922685545835407651274063471333059377968741607869588200001179558335418471898711284379532135278884207044052184168275922745304035192130394885798457685044743293962313572638862322204465690795891575738341438192130529168360413945661189444633137014276565126166636845671231567576625685751342533046127576737528251500076531724828513249889986884873725476127173190211556092450359078132991336906475683434497845204328090750714450827256295782163706921746645162849564130590567472407116065728154906660479949194862483467042293925159683215895825422501502344009105631894371564701117540821356672675618442500760806986927462775990571470756904149282225354697826661105483000505599080515618605043734085499416284714899265554730174365296288159756275365834125687345325414317272367014258771566801915118694759505819771709425082603127446278610423342901036945089235147832930401946896696562016274518907876540930201450496318067201391777798637731829785814911334032957125141071688773961002446235003062454482976783453854802447131997747200949376309746137299005964506071895843070461719773481419690850762835869167219341929728044036218835021302843225824986743255225869992183880606321030004734550792092900968345634073268840086522698607603069348721940670102796166154245024299915921107249053087964049280247681602861718378440939793683222834308256324105154955468367928004014547716993133615703936080553791693068328228482078159514967502466393704655566703743106456460250827578543956911887169692182045667450664175950008414875094942875998104222965883957197410811345287010226822322482272841706793712994823463437144651257351594716696593292507479205156414643060494877946734467504382039797986178701849233251634568701525443240631935081245791236271845560024614753163436281308892770619980644161943252251990671354146009879593233635616871010399297387290040702358218695170572993213776577441036702182783451834537491009628380092532252097667828168342653582285395495916877811627600756004780798082299159843708123538597573673864022117046143413741662047008167532126735594367922095428349770546913765015675503148511681855297051557846964710231997664200172632427205465860922382765578923249291662338314426780501652999960446629608832250652571996160305017467496424998271306770906848005907837305315283435614500217543985702079380347322474547003940689471976171868560943811196241758002017647714600419337264995134867722111620393322983768373381191217775681679424390052172979852517144412089476533479987111373621365365393389037799443990690346554294222915974057297908346623206913740658577642716652123051125057716617152024803664239480663268974149658510380314084508682109417142403568870794264579779319076727393633009089838409373567772560469338042243243722544154168256101515482330777633516824993291012145725164121100380182847856480571560964912028360224512013218926147553619700850048851191383526710658542318611965213532252871283430765668359872744899994670779861051529781308711599676043477874435414076102013578257239643400552159906536536763759392121989582213365760683562051793098390858659050522365168962239210135502620662690795305852740481243383281482733618190560950157694064515845041779651489303997964567396208819970596193319167243642490396925954505227321408039197311055655491983421537098700220011100216457723419023697474450667608503828761487161580601260876686241279855070360620001529613052359080302346085975502312678776612923185023283721624358432010418378494248932428849115088231804495540630830246964054010779881146677096218667052750081953527646455198149165890102286700314635754976705964632278082693545234143002666644877346866356389458709542234152370376135081216648284009959554734361658446316142544411479110927281905473003596338545489047975317191810479097794061890160340012456432337546443313299434477170550657041565812915164428713691013052367648885884115059592706762507067772420478375881575096575147567425952703506682853274388324745375717536451620500339003859507660946810223284088409143980555648886505813289658571303052139877608126519824809413460262594184303695185754492363466362821667337633027399096020752804223342238392720119240086414742513062623670197888057877258357701425715621900013929964442172062218003010201905243842000234240914559261186369145125725714415606935275876234266794978785316857078421424580698510059814746934933473644359479578877820099900568138000729171574513406327639473081412385350251673986422076499643873192355601442209126599189019534536371061635758611930629342305503349576999037067579022263605778460165411836786727543635946026737346470339145794442805007216852116956636725747643447804204892037909587748305786543136038058449696853568822796998357157206088814459264399738827611498020940545077626128459479457809088770081777749283107681215098015371873135970487355663390837843898947126304282625889656931576591493627904027346048863622246323237580505060991896237262290175523034774650015836512118442314017566531548786469465504934024468147530368460963200199525468573732443234642619600507764303381527952092958252232959713910391791594884235332061553331472630202620726718552471656556303240827464687013740242580166247565513292044668503749821821249354358910998472627303288076394934758079827092170279909016451221658071462886199416734008142296588047278095876096264974376242780902626106548119621852881572957718648456059763430823449829555305667113334793510769152206884698354568424993058197545351224897174944447846252258822171410227331445866801997000842350745459727232055078261238720186597324341823018504625244043637420518409403166099101434207077197803260924249053273437973518625249901849807009125129936084895118386585023719694816829955434291346954559060080779008179880147616195949579034628099884501490875466258152037892920666926015096303568456868517280432957942321135801124547496530988761507331015483206852503912121818222807898542451091682126430165039742440493771402675186694310372414931194972270195502851991782918894573994806453852352024226254970529389226956494471154310440206289266428323874070235296901528729581739969942606889897710811403587478847522449386122269432409061863339277956810259467647061473237569385100359658743133192049795940229628769810316123054697028899698549224606725641921512559036364248665833601258280288610938410560004464918585373399229175706789930375913813935422282802594496341298559225967116744527231194521868703748685151681948162517774745501025724112363869170947850528303200280015614060000577198276363092106411579472100698345871752065878926721717423256634911885612419956222891400991686643498566089936518306561134345727349145679341373313174805766325958976016192554203451258540397856017387449279014330172321310168511162490785366442921145636667220509001757874536234630577228649374738283195165424537217087758899559710928721737427629098474189035720119983690779015395655094888831029807072900619291765938928032824104420389089943001968482738812545654336122883086999516486375047498369564262498509026416470101697885445319027822105069056893356214532166299286900559240695620319957298641032955242855151950262907873916930111994936335354886408716886962575354632492274334791392159650064985349575619059167422240765431632045344732478844318267420679351635800431365251819850594432578049193410425799952180927044526522807186680997729344188768164409194867417236943014559328117819886590031568789816695850739661352485832073284023602448877711110635016194200106064859965669045984774490165849796141039189855165053682379211134696718447788456800392630535687100075002197362986285414628610495342920298576948561183346283865873250976874344780924193586354842824733896126450042938648953126163852838470367920599931206938198975239509893388639474641275387830451550629732853489903018902735395692726477187629482619922566230755162032203167726735056694639088810598564630399932831819892909117926643607449520830583945311344412387991166353551978132250389445828718148888261668262484414434586465046573000656193381292770971643125073888573577447035458066596838478813762156328164829062109857218428498110717277251309727994368967115828503179139577580260409504671757404774733905825490844077148423553813999657328981862617201423769676471371727895860411852901040671136818878378388211047561681264075700116964513183471895075539322328010972664008474252093289782691880855384233830740547902895745266126733548349574085427009302216895279163765598939580576242963919560289342261163233390969341939516333422863875883051798969441969256255172610954846305668769668057184771324915789293568916990584743540853207618365843128885388635087980774404619719131088900254622294300354562480035103082046451103550205777328515905241537427843152946648592839775368151390778726227594719511224718546338812362919052904039853977135859186360951820389601911121495832929421055194592052849449581198154536712381264090220402887322899654614583483029292488723831235038215827550239095292101125806141631486084878950928446517287863902432166190634772457241179561834532781466637009731639063947991519734662245396752660008762696512626385695899544269780753799348928506276816466945610566997458222049178223299341150106058638468968493581170734771905086519824469643238682072270176304269816461666615651945541865271424222863861862066538251487020419312819753773381663783172651169532218477914234849066147751346287545883595436458625924409144021950776259715015481759427404187293251411820094560263926774571204046862948818783907228517279580641115407264151513006100042512957305004203155316785685949441926043499874029954170105755720649535449346555932720558486431046208162690638314204744467073071474194397600771864256586197626256367036122770678779834821596524306047954505276074781917938796850582498808505956292261655776873739563195878757925585389712028608822428666961447408667534208257355806148677437423995604919727472401612659289357192856393821964197943912662464609242681429589988257243503281473702834384641883218460867740321620940003108010058259835825535527864422433255727064340571929975599822966509988868768424387717939367313663127930272005947079904412659805582953210269334090962475562584623280705593549650428845189506245465001070805807921561313040444081560005172672501846129850850503613773075961340922891611023244757316198578297005742626356724144535647192374881344784410613583221053347079303968786506446604060061998109776330930218884473697833571185008690831609777504463136956689205673850108772569349024665909750434711677340317795223062251081373830095209100721717436097977619542849018178820311121469931810612005564560792066905746463136036826324767007226827138613397624372768671063773178527526805890098015092637107281093160949945811852801838713993806241756367182802993092362598760231478373433756359985872738262028517746662050392506024151952531120664248894306819967215193803173984707362082007872021904853689364775596538849728144374435281074020086799803488474936801310302435475461041209604052752263739096092568097972930990867241393510058053832961829033939932852904315460692993659708920039881607127248402195370636135074848090729867795696631792781914731931141228233831711061989905361510726547069940719880979877756050001489569227505463111416831718106731153614251129052981894587481814353914717154144575254752114239359486317199574277192774110694675968494179618839431772218850827222514806890739191427784656403188528559768453238409639407981082034866229166320024447589086720345280642971071078168010106685915255107833507218459936906528360917723938299607516637776674265068247740340710581954004099805132380765971079732860755945359605147570115526025509960289280662900395198330108175336791435422300304921330357879729060992693135107374775418337330246820703312699404520183049872380144189889728933210867493717962443258038236652615190139179844353457646752184821383352882766889093605411927342037284903278354518833326753436516291633909436165703850484418257393343796754692487733972669437964243897837604222268587766389475398766433108697743665522835361364811501777964100967628672105396986982714154142806118522667665244648958380412954181428394226364800131760856341122588755446412871955852298904049688640823846861329676673711491200230289733798332980865047995264208484134280532003382046457271848953857413335245880783709654642865170366181481664292073600070364450581433143282806670177984871513283488170368837001574600345611200341498064142674099239757041374329122909775833414439498299784851099042469342759563972895733562344465399487605368700725838199216876008668055270836154514203759749533026253710643532334958323365706514613953920819870840147839490796347325102025908517890296318127016599377680656790382830807841141335678016146971887644210948205863459574829252514038728815588728839800603050951138138696331535141400786798962555937906219859416497930366171835713545810477154526727632092813953194011851982814917260042770360119253952370669716444095205286666593545722084892131206291862198593489415365021118775921917326138391264748474292989527716349624226062294792435309650777166178487232979128830721315638646030063917321560148124624260628342285806578269619467602361850917011056710985248616900944018149057023195595515091085763727434540950113444153250146356882336946686114729624440468431201825572828219094841988652144799102814766385833682966393822534655149497574788449031202889314008941566485405749697094305091193408429992028837082149460811766422145770823621115706336087008204725122371886918713233318127627139918725971947043741233301487520463360195344236917401639706073896759425120612639571331839974190886398718317068637364534934300357709860637247532347539589763422119719174483717539756734809467676801531411901075463414223478116171441946983893192078175303270951294840354108125085155875343197625195663423827749267609162968033529983896832883099065688680944063729132041129708597885341506177026795889236047734506461550806848859922996753324607229101578164485277721481463580124623460531233951464525970270802526495695652252129156646983491928555308351007900255129845829501825100324963313246839398345467449870611786603066231868966524646853183910109697631459018682318799889702537525870575850048805344924375337756649667285692343600745974691954869134284672461977588649236286876688003071240304757858642970606174774248853952783757576540766972331010719307245372690207061529253332320090261476857225305589096857491435657401011222793455188761891754989015953768138954696814308535954522941532908221471001789276794380243007173459551405162288839605274715188535931238611969355456575884453973402441846699706514318774525645345712491543075896324765177696573495355671509018123563146327317445727978118205384598277873115359068727344758161427305889935084387023771849221087169768171090018853035787744034029477979833356958816663953708492621254635568662597873865291739994131212529628534716784249219400531321210921110432596465067607936388954597912993497816505420442476248225959402566716187720954769030820328754082734268843129455557246519399930840314799084130263471709790675241189175294182219245730736390839405740684143092601495628185682063875112905031362306713162335825647424563802977299165619029955515270736457881069351886698762590283986069684436880373786825705652218840410471621672707876793207668160438983496095913085131687712950067124336984231878934760225963970130795072161996169180378063733794300214912718533895933568793395059778390421471790398014913269147683150982726356242655199465941542299594982555953225830878906885579302515503424891299580845683972342650903797257735345164662207286213553753286043908679450875463452876951863617665105217724123694229414668892292343277553810771608229354472616388880382765069843071413390684794958859906583609166926938364309854079628605908124248165811915764761639020842210264789715113935515694314378842466131465087535311213794588031253951137978105187463475261922410078868130195029483954722245805177085121586203224558260442631386688434794204949680346103021455985843754527826095997362211793259548039338119690196262615685268490752391201704367424368620140868059233993677428315920554796434238963300891643783615077618086850387264165968372257005062130917207394222596074142047200228296496522561701461595504716928134734396440137866395355081415232915240630510250275689883609705642433491559776416773980194938125166987319726806686303822470431084995812805534516192561252599543676056173310944072583240024062370827468963866178584341225582941310899300231069694288208255086999134858485640530408379319380329625716468414631302325199212137277960157686760554868953604446134392245112072379691046254893700550650369577658092870704242485367858171357216771711224872676183137634116297749090330847788811261276436580048002651322277494959635281052718615614633644665336626953620941389621286894773682227854501855202649203382788039199485202761062888353154158468754878908386689686166075279283314696650362245638161708872604488314676520086489088500617024962717675238892425935646045874532769383627430479539231252065681547759487305906727321676558122214964954778503146950569711007446220558527714201887093141625697958027537365558642402231584012998815620639331827063771888249778962348606105152333717760732233630528704520335056944558143794176979674764716776646133197874898925505169178538912235868961994761072533317657135239922354598387943064436261916170673721568861809136718865562902213513688949443292906475725437124285197796016130464306471087698745686152893685611138181959468001553380538928791098447692644309476933083939781621776908514820022990912932429067581360956951327964353033347541403024551161610010112588012530560957974111625747010140819098346183802413193102326297160801796493664518164419688062408051699253151880361846593129922408200344846503264873585369012231071942170295770971862682745805826694210791872251113581510755022902217422056344003214234595343233281533321302781268447347995952327059517273166873151000033039702201801989372934698132675571874723919320631041706050972221899553406049248025332615888185268531888094004550978871244776622226119556319688104733342586157371672165111237517278615905694077724438290714667876392356635819708344267148731234012469154479005471300251061673262769317461360976153942168654342133192108763765712910600515123265705347932662304932407069352090405454541887740930377287272431896511329844163787897290927367311971796570607580983194486741632404063912855742966516712238171477146013928316123516574455484097736043737664723755304009733510750281251453093313285584045329142730513678009117817326140888977627433539922360757229379235692034847481696371687244435831710141687463597790595319047075314069327139422654353743633861454595689953983161375449473316619610105814205820362606084308094878822774604436697127586623093931358128412669279809302087310630763280509064524880871029568558664380134636225567321912546799769064605053362683115420535762975373337667636409326521645353659834603709721776531516912436622872071042280945984070436258919071693452070251232216198164516494301920642561783620443856764472779625684004431435574541632522956986836424812898148632484011839686717379335801712552919733452154735166100734402181332849793616679399956030208488792720768212029046397095591859636841205282192420628270937401333338701711580120042272291499325068812568305794384583780994351403544336453572190567257398903347234122919511784425567805712921842803652839852590998557108358174649169508533060629678388904590632723823294116638875800210125163318730332591827553751698631106277427942953890165041745816035641561479527757023537893428874973658062697141363277124775081974982989449310822182892483834794872298170503552602377660694141097450340818038760721145084639027037813484468144938277421610863654329776825228036021167224284279073702891171318433030166428971723644975320315402751520856831963700642264220996760118448886927398421178109611043427463688125470644485550540822855866924603372355078244011522342102467396702833642121746472345967083373321627476205189079183935450187814870787075972400868903495733658331653296868045528104982766871100469244674022026692679538345339758196461784411571152510631527573805673929480489284388520173390782394683683416475886159221928737330037824830788809151584690944965291338729580895595816110012468290941902352106901490635253977298788657957348322395507627386025075635867005373788136773107616158066086725510775917176788720910481013423482226565800561751231809807287666094532375747851221944352231325767859842324323239711732351424864713120606366255771378334586732252154298967559904725288681628836179543028162303292951436893716284372424379178772505926613457350332526333569049541283640591155233603368799023510777445506042355778432658999001924204329080284501625187223364032558974726420381079309807321578949515438856439088787593065690117279346739487525290090632855115717837482730974677186539320103292064339667806738317598659962358570982531390465610098415304052866303138371818053485588832110793618152246542732661741600174166686195952957534246910247189162932554727744047072438305434265472686704884562743218513935704791206045435059498853976556308548882713882205155560940061903023063543524617833252427601529024698765576070737454020538630246579953279807315802384190034909967891373797705966657053205133653549404095631965769966448919494835128452147816142052481789022337216083583597724754682919784713581522487743991625496440372112281543124980072775375059688283767536181924095104218155444057202865182674369582073520507187583463144891060827063812413879745820423465006598220190458017658949307803692083291992748865283538173521429849157124977331394718548773356024114081077133602773567083225794263254388435877516329715230318898835785372314568654770883880874429006560010207818044169235080788248397874799071549404782934714846578378926108412289828986419015810124743639764525900493253369711656974188060014552136247395133930396311109419987649491450778824953896663772960019292383148772503682241584113283718796513198983665847436810827512862562420816369979808725364763478671327795115021478654167848878337700775316822356231722251711750039779648911603396113355230377664910165888552468444694482250473754298522353782110852428670903775642935210547378731632651842199160378043808215357048297269944109889865189058753564501494307530673175317551443901534799282475783617083227559649383245200130895146328546106350403493324131754340744156334993907139858513918414013937360410845208269449217013472303531382732092110803619114333603512128476376441646788243017503923701886224676055077963364074206433737194747478964844007255018874934144032131214537630797220665254486782085122862667084328502575993591875346351276716380666256674970479412876251566241879160189738646754442137244178350869751697265438288171499305725324266535283115941862779295595526414141857117711267006497341599405672559115057383543835050694084690718784990107950067810880840826346507745705136085427441478607763789317510786080840899741526515063189854431880959948995052973453648735215330450163020269726291031491789854931142591710600573298557190361560514025051694524623565799974882059510043364935694622716264308905869678029074384145827862080723100438057375245391007087253098105990413875093147657186335371014381111511826647745952131040558489121169716555827571922543150658613997215510146460019531597405098406813827434555134320814143825531324044010675045521078399359542973073359291344875182674331899026418176562042364049643378458249846935410492569011064742238524531313496847634292500121274534765426617957552618421350235270781663809859994299440344802957633316333086563498626926899489112575028341897461031040859066445708326614075506560599244101562251518639874572425137040970731544608286109137976903859238989384058394800431797151810455797709350335656266332495722340214982878211456773825400379198307027758356010267706122966837473803848450436026761625998546692818688302702929898784945297737855700897257467622369719154533514961207842308189975764108310491351696181402510613607772627142818516159075546993183394667060210725655870170994556976357512214284140646994060526844302780490970862430757198803426060660123452864933703537639552950782515636554316900270996143743626310746664980364221783294107773140551558972683254040399570925507701264318234291395761411769669727813486887604301137566772396988442972358424909396975010545829592883698042085686769362968133414185536063101639149933050044660335058639544499684789618870836156191053435047289544623507375029220209626171465536725937622806605635780240171082692592215534533472324897020668169409975066828264750649551182897893926379055494129832966101484939664400125926402436948578644066703920127959640281989200621124936604686795934477872166715836932172108101188826933400249483140241773700309145151808150399881005765722825552556412685538390155248395716214789294442099337509784471422605114116641339008040264962285358398498899561988724250771099797289010888686034974354355824418390886117922689352210748181855467006158527099982109599702533640251955928105928450531248311641022033442989809042286580050070116504040706920831877101287275307783778725961599016034957780335635594841046499181299221560129714648869974620261029904154695464045286815084206347596685340650111315993362191930408101943320635881739978400700757088440416671205629026496543915007567678821132167557911790172195139779552229400616374887559718575414984699465124055337291262001647941452705654674491084214824082066911433366539939977057773293366351748918588621774657121195161821305948348048457132757199845559072583622395928903800743689033120250797220241638186591134044476703341656119682385492918201284940432425953830920255248591936684231258036630616525369525457798417768019472385728302643351299544151643506045173558579920207007141456027650725960884652773949652738729699217303481925673109148553275555466369100149529058260167476716229782054309704560451313133486011780158452669769701205560731750801608458141049209809968337573031037523690453097615295521640685685356905622924408545293143008272983163404367631577165417975285653169479559477028393813408258818445775635195957866437897451922981804597633335525328917495484485131984915828863230309031150114227854638459053334492494693862749814073738830487618090542865329618831488712129005789247125810789928691063573714916630464151541704754108240535768284204917290543796305868233888840385835382155306653914004630084931813869351015750579533769069584549045434581121034657296545946118125230751799431107708226384890703285703152502840947002053696064232469386738460418981190604046732837833085000130954202142959252914557533336811750384891154758985083625316003535201325577481529716144355261279632474757036435605112455191324447717832103607930380801609788530825504029965871602366806013189374424041923875753929048715243846893524089363262771924704483098042636198432816020625391126812339575522726359849526535690820563808198919115602097856284178079957605177971359975453297117148481893998020389126608506250400085296583194077282792160345275533899562695814252812065132290347158849838969183994421835344459032813803049005623796395903916971320135534168603991657461955539599880185251896275910982440678154932231587975591336843891731197018690314614635071305658461042674951165547416742423567693482996667226128543957216784199774655951644348855745376755718426219260335742371101405454329460470803384657501565308416379078279793699631536820901663050215608011034093299910185057974623606237242787103943737991031887574195914888411952821383360222540891643988749547678001883456786397844198748645117025689115482210763485989196560800407844636725148192463720309173982142450967230792297791992387869889103185261206337418342102020807695074188295192870490383471085945207369077350780810672015049984367658947515243027264214912856461138480576196895216888507745412611970548147013669365378135363810560168973058230016025012620392873177696427341983738212100206378420703069155572854011869419792936317801370626434411521220897409627637403469193382151470243664768671846041799958775793543790355214421469805814979841180485904015434919715908473527036850639022260097486932444882083729926165190313563125331647895733664739657452365181050403733857368563952779970407520933104315448962703167623900478079000654285200228406766541302978968870745646635769496029073151977067553191119283361449394645778239480307949568855181839368414421902511776850307194349249801336753911887019628165599261238729310550379635194632433203395897123753141999565024643067727287271035227883326433305545105560589949050817527375817966799915260459025399280171266642906081809978428639688700673226248773900566996648264471396950476273177101433714877169886257610260718134376532127002461896696277035568465947946770141832427482551175102316528202928446454888241295306805936502236472823473806592093991164004530087542092486622793235282788152957690088872620461412953236729838537474254262339727656402708434365763439172264459323190616372011002914333056253200324473983295644192087623871889201176795726383189634982204459624728364372671644945044368036706620847734627135054916495018046690292498485889186435755455543115241490440106181281028517630121512487493853711680020382190458285584128599940311906813215401276312664977189516511547262117506454286361843017077792628408931522924714161662712987257182155355980658728919440843563904603397631320328085164506219150411813258248736244783344492857472478386546056541553674949744464979730103694549851401796010967145317929056107091982773961101109194472573739262024818979182948157016647164835790423119923843069575204716159985819669282189656623692228359742698854942513834826088388545767124481240726948277624431301149477833069712377597814456264854615613644961728446414868798655937193707556813224782443683742922206116521756764032745071039510639544158405787179819374172504614530743560507876621833698340926500387014504957557933451568246305512832931091436235998864091611647167648829161792153338350968329032250435053344877848475236946262844969804328459993531313084969199172989465752843127976324614713981451675454159538290342207366843748894689670857445336471623778875300442288136452388941859100879718869255655486511033491343721750009762496865844529740204924009119770763086329698858734373806113825873717840854674535357239929223699732845391586756102189608695321344833440538744150577449139364285087152921547619002142620732979667837620815385182311491756454803257893864731925064936685131714196814210379021161709752654927870587470086359008170948905227695663456239510985930987272309485940760797326253189449943232575795361243693264880562737249074953201754744235667038571069016588422529063192760253303770002946117460646567153398777052393396242987020056903030562521401899532009526727520749354771288558510782931066066812988118964430556287111402306067409132580811431132521611379918680754663697154529993185190620726735770490050178743081317958131715951310407294437634933410581649962488674199653137014128300504503303099747201490105745970267779563914910049475312120041789456117317161799106157709143996159916149126509767246514569352151828314909846082421501592683704242933658082790029206646714416246057900892438017998349524134819331419242396055631651034438003083555270901181018709507256074159024509030917408075315296033856852593276139040979304363736259070367782821339506258870861557815916224790101967366090602112664432077431183633270288245814108665726559711872404097351198605553235435265264409179168875311189905642133311385623341959955760579876348809666178058038524099073630169800044277754055521386549015171734769949853935000983170607757801639243646697492062010986009288666599507989262115274373465485509876222193679997560624107108464446384256655570878557380241882275359131951408506762766303716922385345802686704078547578416783954166684181706153613785270355137380082459328345826348872929213436236857708986615786979462548932934833119511490307389640399348496250894604674342398749741023757884115091355218539881549250130977504066997344260405380828157707456735506567144611746677455982394118381454498744046931724279269940607719897464366728770968754299766794032104667498653472085813616030484981764574419861545255785087124249552048593886094190684019304367271552950777902708476294604127165995554457794668739602447328135416767152389983078919098187125919906149223180918403906190450907228988775039328787019049361542067349138558515292914183561271671358960703304151349436170916285084032811264317319548206868648560513617922472045776553181537218337229461484364918415678641105108291383826680600468683159101820812644914214585574851013937082359817689499528505494661225283558454209942615184175389425674446200122025806956626313293768945696744850237871530494226991643462714333116652081044442387271122726083764013225624656212907498693508377626432976940783713674044327009823006546854891974934711565002747461223059314691873305529025802918435025071493359113603611090808152009467456476467452855881366916280885913608607771542204503050598487509567844155290947574672882092436633759981201548924168736169994657245783351656887030774294348617914533676396223466599797232267136264289430895889907906420418650626532049954287701654147642139801058085319017876974428634700925883555273857141036973740147889506756053938163418855169383757742649437247790851065616985155773486723267433281940216614702477289738088252376669889100775948983139780023729227985607291327693939393343558415368291311221348642995204736792749383635239153126213415646363669848358076758957529430192846834582061388633315810403751968759457524083270476554412779594520470758301422351436549754753573151442374087100698822331690303566827338430890511074122999791203579175699250035209491920376487556504446356164898897376500661489445972655609495016049840552724817390363186559832639458340143769999812189883799413521179654416970382192484488965272282044809083338626536089835157610934934871105443402956014036929984732655523796212801065498074399528251570407555194527587163808919359469308974388275133523614117780773438001123236738427065959807078187299761689351245328741943843996146980284215401881509045179557834415033405545931882527027938597803227127174939780801392208310314032991901722621723757585380346718105086493589321021668685192360585630621077972485886202650825028591032518424663054860557276569143772802645885487230820839081298728515082822709486332589079737218441681664134479315046209386053777321477819215505067804653380710902157138492861061956525527963267021217458161881052053490880133934726571396636791529781563953413559769423635098175103724877464732131228381766857328122984297547872140676738981626677204189291195617870151336204062562980709938322416858876674781702683012702619755593317818121864909776815488017861553302135022068816097405153428294152571533807061096981768650093168742095485456130669623456413352358331413994643466296135038240457957397891576795405012031438112652663818496759387149622622678762784010757046997740484835677936970194250522751197353968450282472094543446493434461396538371958051342016271947745346647893527849981550060655718190838802112101292917960973275262631316529992126884181633557802128903094925844948308604885830858437877692748997353252461668444196795086121831854330957220552788848307306542543129037893532151706932274361024892752056590074510803081521654486721616613851046342345651139157151550883874637167325702504017674081311228754834524171349824061986918630911502771947118122313665285722973492266501713435185989494775460674953212817139809544048901610681560284727232249678549627996665172543875035397321025692010758522362468078558045122029938175003654835767231091364586967126775060128197479393668755364876283234692775875919660197138157125976980400112576312106299579866208878787604201074535441760924955277820249010460928760264612527148304026578677775760253714365337708564462000168528415013471078887009414172197476047238297839605718622209646017258661755200501500184010737043996423264166322036703581290347657326915371558163991578134889440785431397364721772382155095021521451372047239776133373006570111085368238625933540393845166301535893945667596356761013750027440011427774344535664036391695079427411558461002019820017649370021358224935893123917480251906759640764214705363197328301397394878514161228604574095455531428273756494958905110772113501094958478023075724451130856054087785794932457358079153906821190606035634090849142596448324985443695241310591082151814800763766005563696370424242316969037806026789630055491990827919466107695154908784123869952141617623236893818667192770108529337374185859666564650760909384626955195096408656184317636466619682718550437034350145280498950794403394183912801516915183924467261476666370915848634006841399923905324469787712881604611553172389484140196516596681029273016473511491979498766251743568506367030154880272440059191730902585700300925682332632803479125247299773464890141949117203510032654764216111998375319204951780741944934144999724620263476436392752964546428573605893694341567609433635381230947991616116665425806807691221613826736121842388837036349533093819597920597448930755589960254778374100336825199062790347591364972946707327003856244661904092310030006124915020515531178817807243188852512729678928522886258917276654990385282597888974532779316107237315882698157086335067952543720691229591874487946314619439022854268727226877063213822089653685859958082254352131346336028624877880083391056692782582078539436493172266457675081416950088858099020504667653800826299010811542700310693598339258978669877407864585971460952390968384328870675546397864984694833193652074426916866392273035033653760015904755280097236035713786437429570373011173537907971194531845027544905589213553790483456446148191034508487617232656702142345457387783032711439246199726774703593645312699841971608557686215946209626883455617126651976630993380614164023261446680300879180028513547504105196584640950634752219177170023836595860312434102837684127030844356517167064323051569633860109381997837729893136004821391468229701746448811681711033036641753998957410321413248342675322609694934535317711946624860356230090768593621462627488408796615380184804428076674642928198877367143322848907990774647103837139612510612164228992395312367093906852882428171526041011858143719302771668410859191582574415006064493779360068171400652937853782259433463611296637450154969310754139639878180820477745435015957307427994609372619545350583807044891922918419620181201099949925115467718829151800023196847962354808899954009341140346758394140888201182434890300350790339612653520610694740224043809370122788399651499304468254813206246827877568695874129000988160771763014258051754533322981018004668648187792588313326916144137818851332726773469801218202839770430385486241906693524621471061598605493227764464951984544987015527595244417051353727302489139541332839046179522367039396689432220621948075851658402316750266488317146279372253755735238597999433752791880560902585692290874827393000471177705727279523587853275688504269152828357786429241401725189542359602537419898278599962283487267693799269781283729936927334722576116942929346406357642791514433259260535283440394608821622713513657608132406933186027738768495319139114732050452941786373956032299969781723046635690902558479247605490217620990600598745158469490798446441622279240754899602975007052977113105339860998124182987888069295720292386177707900016286076050323775239574623527256265193898391324277916370231444904008482581915844958033418797231720074700645514891910641424812862603995283961025777605556366339560766269013223717742561030273069924126380538083282035222488002682852721093690146019424389278944223644003875407364392317536767358784646300005087444343141393299881965600538522957839183807324050349558983251278529088955432180735408016813956724762645294906663051871118521718582677643349578030469528213437188995503799911841556355739238058683651017974756416783573850680930002486745524543939520341944955434328124436479724390825272601102594962183916698277764960575616565790826341044010300472321225873378480409492851303562947129744599866155819109863604564323575833095177281624276957377822239395961650764891242178361502514753902279802426817438185871859377097383282222727531284060824339782145431860697358911713129648636861455313270760117713927034932133705232432024799831919435173712839809401433021439418014842253755115150691913624613263836827729885472457277640068769062549140899397864826394940668498369042634897339371961337221665058486338392617315807046523290582859386984596437796021135772378217461687133909033699187581205634742921910608474293374340487181928532472028027156720970544808140065170178484481649393854368620561441433261374234096049212002813530592984967256027528545607307377450257186762529184499482531903015126386409781976308171067743254118063119617116393974416290854565426209582446770899754735386386986719220116502770881379424876898320281577598454375937826355282373642430384571692960347813955503489682761533727789963319008571847634067391121976676113805265218114136105521797162326430272500072515485948121608710796024458505345634643145531007923417249431097674836723699155669792880697896503279769906093626366543111482087932663943467962530551971121637291386289644998154489511493441029621589115649417753853880724892438356667454731184403562212897986471917167185968026423261649928113746440461632105658750110234699549214057026135760197283813679342653664151752784739338217642952789711667394324894716204921247643507158600334244736961053154077908823377655983118364624088712536928989605962194390311417159549192801419770326203209513229321259950521621768852244040357578021452738855215687300459356614352580769744781052057234112731764759607917344686671791129557143126461215222897786905140426696486743042949669312746084199361800213878022881828591017799993431187272827897284789311562265228940964547656005377985504351191347360438390510363012985714262013928651055257452878813278105611051148020211445779476670170197923164615079897576558052320982720706373259540328135377789480538528899819445733096067868721021196371575141004759561654579662347735800571286715608971602325005914646481385548120449100326456094872085984483344363119019091079882397649792589210572915365782831549356617866188297884112831131521548125769323768362784389067194429400950238030228207826164843461034424594234379920206555161816826025840904618277037363965632942371048407826957546945690544449816845386911057111601963854112956579097945308932015133923012412126735849516091769948107139703073874251866495729805363668726233271033164548638115969176405393028392529857628550542598788334919682389267439395899575818667079627621682417531074582424247970277193949391975532165092461948888091747452501723932872950014840441818786605317494352349808898032770478507574219068245741175233811221668741595684487160356140120387545684611862589442248417669753101342500833954448342174400915530515102027451858189475908865758122565841367644030673274618935058424441695934837792068857659172294239606846458587381549725019441827308698805463515175693501632056257579216367176997065617005281958367591278676416275735235282432886380483775600031387726135699240276677600342344944055425552504220842008633555643516236724824947720803112095032565202697638760150024191020150998336739511566322823605005373624318830703506501629152997658915657882054137448672461870595133955165566836508665129959055845597091998410857562945585666297843525054114872969326945715323520897060207718952611359601571811162400175057311219725711355175948991024880017062354180793921325340181892610900069123353136307529024391144882192068278461708677242555510906632491159313144756586697200781109607864848228088815340544953460057122307216660505546557212120919084518923863303100115572220241206157387686070551033335865943523192134361991463475504515029908301936126855981224912912579000272972208646289648232441663891554256984318289977845870307839840074531821657494982576358400365202243375626592680893326648278756036234763859614114820617255770277794102087105485495084624811345896187560035459214606618775866665284289990544096946089031251383242805476060907423706653867067772309209289757184270368233218447056338541623546440228162740024146736279416472532912995655063913707549843410526302578176210463020754511322796790622610713028514973873568398699818569077727010570106982694714225653680892042414348047733614561871157239846051697638589828066909772692349352710289293234063525672058677208048796847025273890061170354857919002935719530663615580290736653297069307202261866123673945812864167172754408046732317062290564171901794786189945668720748507033060499488476040488207227618804256952821200282427286056388964849294540532504411221899122810113898637327297935303832608236651532714176584157235298987801164092638550415249957581185461140079010070922354873912883837527533292660104969715651026291181135589560996252706338151017010368710928186045820491067755086606826843738209097258208660954809168372732649811970094689566020822202709735159465600786924533320517096698641766578863036394351919024580839831775710737372948981557488200157582254479009867635210984512951841292551738816197774894555205625781765109714911827022333725523041277862260123034777765532840481794341335832820596898534762630419801885028086611737747946484877943786145900502007396590431475026225690176889436731309107412246146851446011322234282501577402646849608976583253273948951941328529502763329466082152023316630107414345647350600976556828441378883973036935672782544820197236615243238073416836615761934661058426759753102551986786120489748639886627799097413868672661941128104389183944293422848513579530060553867980913660765123178476890352779410324746623493604870255990475806289587079103886593450166309082260856597253946954166443252938404494971833991146812262389277365812725094243997391457707368535750554690893586146822993592334921115855103781380020151696314969312928198707234206414438651130372184269396782028734018577292522198076862518364051740528934793735202911293183662426283822353271767619397490598127838911133725387508154050843232511651056034020221762579753063148704741805948105516951991602579451456140440627651051010373869602173619806922747909721520658077906451289536215359352947613899389907751276756354107806039417108141963874832340459489917990570305296207205645909127211602435543624790241138878078871968415912280763538856294075980893317699548098391295763855254429356730615789135465022912089959484255398221812038252018912564914825157771384763783225787450385631803209560543054892584322060601769745664830338520344501867900397938840150280096280422832476166097073160554610656779283295905689860990776500276897837475002744252893558577377284923277554704139370936362511467106984522624556023610074606472911453278911575327255092100393916999177078322705138943057717030579635745989641391039530618174681342221561478254042057228475423280943447510423809956205047628297292744129609935427643121434409359594179523700809992935762448035000904255352408951911188317119202863449373366279332367090694294091615883967726495512216169638859896285633215745376175408646393483863665403818088586397256621758047645577136637218088498881228050299949379147580928053463681065656878682122983200059909100313334835549214483987785832420750578189199170253647593168351100941900793874676470399459972988212125636573523794567519891128148118187186250546780493158517493934482665712557096831027190950029548608570232011896221732406001417797435321069820903523325717363428527914344428886244755329774143641768725054406564275799543375180392511777352303585905770711459453255598430808586897437810275369934473847341732999763886681292047680029895586400451841393974661566800982382899946216432439843897854460842334137337928209002522440459197701881936412524938479341782585185497543451123769334674960039409708753350512335235291079383912677693017590406970345651247997603224352730653496428017406144565362367770370287270883869750655815910275301505038868744680743062287686386444426759008298836869369224427911806694377859205439068578163922813717603331639396702985856381726580797754925090614321057712003565312229810246833928012129546418377822041900717132905077244257463179429940250956040344028275874357175775731133171022322808579715754791102728353949060916604089511744312837282745794868480706293696837541206045555856774244834538980150665514561918494656965012418284578015226181463291497991377428056720277498857567152269683066628836094296123060144609482741604843965311309559299723302604297569513483491445872147314664106924708985476881936107608229380076683513975101014059394785635486480037044908102945903181821738087851366961032003678676540166875434683407298729790045163371117030029543196238647912414840117740126243915306934867808622875411590200417934625851039863745755320851230354845616238670156825607779187926385133893424645721957630005845720636343590459398462780771589270653151317345541679315152972710727230723121973481565814732771452912883936330896584580307625923836712087628104959411813651123016141364337976046257515920950999763327628495621576577087961886440061382683308022607870935521202730099251426957239856349039543084912425973355011807498891794031754565802199547175136561100123921927364754491592980599518118077389912952578990798653265597363284870126995121513145934304537579012010211196765777374048720215612703401911037421433351922433557285631692069248059020668857810844102216645657531482934351007402135969768643084051465077726118138895527591204623623070768541917030230799474590205038217074737928343031440011771320523264482253579131782492076508790884760256982507224181029486566830565054039506875745558880371453546497764466206354619018840116092067703751554934653149806864983993831152494312840935999853877193116724957255436381089780908560736229387767236619415938002205333351330505702873442426480673751672700282396043794382522264811936249109251410662270344290959251784176623102772049426479580193535936958524403009892118287053026440208860653341356749987658074777078539914462403960505497728709409790602990284932721579439097860262627237419227081469381930204333352997692904390155278309817660375135968158254308872850005477629755317006553597413053003277946767028032752080838894296364482326953920511748921833161777813661063739345526198294802258992399805300246070375326869278489726316809394059688448571980106899615554451614185539052540389639711007620765080402721024832356648225483384412938925177483633677305101615678270068317067815300522638320229782746094995057702316468119677115863567195687947346690425671566301859137375861763391546980668141647787821881932607509882198468548718126069502758229941841051064556797090268630746773422335705119013440344084273956767408587574964377489189911032683920511562104347310435394832643375817300510535033718450719005629499571831438782075287850586147408808032676638782521786996217796981898702356533086968656279429337865820446861600514818722364807810340401416824749378762780228008532281760346913847793926654453904464483067959524480559493476734258388195870545735107812108277369279513046930067196134700931845128081937919171292847778786600995465075898112001704142590863041420046345863948392701085347053275717966478075353299520949781639963541869380765553104542155964671607898690516459656745644451124533105805032748467673995016363187244426482718531996000037464637387776605620075250662178936386451267378052377226306951021849514658726515709122125632463929076468623376405195260729751284782859497776430634050916013531533340573564175641772260355802233239937743474716230040458208827639467114274844607709987455465515557386458323340429613913195734173219170738783469688417499285786855337123952466888470770093438501666674281925035428524631863593843440870009884106069074571189964215494987995979683359803248233345333472260280196081705245386429338733558074904896321927225180150314161449231033829754416008875010854145789242408108731566071215444575766669610242848341685680822152649157262322520016574821751693675671272161482499541991075221038472343023787503281279025348442490527904884248277236705204351702876496497111077975547688424714886710396818228014456153210459004782716224347903612360423066748401551117955914494447504570847239782506619646054330236509160048247553446902415535475800397125947698229711647961554218047037752376286051883358028192823575449509373682079467678764612701378440200248192983173640076351751355600406870031490378423132830315333851132864479207274869265082358561807660085348296666707611006076729543124642291060116953537166462255039357189624042911930691942868362145325430543349749499855913469128459565932596668751595669906855836019796389908186188050174724492558301180452586327090198664813953798779498094827588873506003718318471000510714784086178374791713501851812247244414105916975933990855286382114574869799696715644921318749912296595877012884337482528750973444023465220300859202462425537856086684310449914140351607697582735342548536892651448135023696553303909322877606908861543292709798055554738264403931475059051419980163148716246070190927617109827077408349281498338432886491487366243301908890281420923849306675704366553135760188403435311952320823692000750099419445950237330084450166954166753343699483481429094270797250213896154161520621314363451265856096435842924692489690395774750006490164506428353639322154163807953553451994951831974802987716422356540761386295465211401189902463057345407542876273902533078718842721294362061646379160431725268843255949007396064617591595425138228863334790159149229838981475190753386061443644191762372308929574974002367414106197018024002250485108766776411382294798661449759303122236631720085689371466272361994193236604884907006970428334860748433600612972568373141992837478540994895948023106818863889009963544363747910534643364229902114194738573508896420370375326859464099857138133389230613505863954139214650888121529956214572725983762590426693182829744184527289709392050884949277583309969301111254947003713671994148112432842282121109164278603421110972811822232525960086398419662629240160193354235849678138054536647960027725718675894364837095437461419793480765869375390841837581397805916350242471036917450888446590155255317571226895190551476368249490319196996896789366934177808442306245579658694590876204716007940179826636842802521494846004468901121306082004801065175344073955470631108228593764357195670505869125957237270276134489202672537661888622369258662849461813270335073918043724054810028601862897960981609976005695682358058037716238329578948053273211123951091361163038711461058581928181353533058217221689958695630201242829732295424326217249241864234297044550026583440309516092196634975698564436032128659763606138622138391061040085475722069673127436188180109494363717364087626877321949967449155952072804466406615549363533016339295309999339789777436886087979377808269986969316343719899044473216242803793792081020381502256928584180380765955025074270843342985845213759270517807594571615854296032459362924543130677982503644286022858889209223994855754132534085322710624610898023295754051151692326716734015507076755061197133769367774703981800517805194527455905514065863074410379635130068864970272122760065437696912993767383562155236907395005023772631031963512901692843548377621022068080932051234089293513486928727367495560246591534143742308619938248718203898987323937169194455937568648534424997270629050875062373947159171794409675993313168810399688140013222828383627891939277550377367675156630289388568708039394209678237927478346578674628608782184575738771723653049557263106138178818037238136085179834946771184155252180498813358108546644242173303298316782416624977562189892960790790705470230855337472638041735774636085059970633244526651365460312865679102685530808841547339358089455044527156393331036366252036760068042017207946034943319993634280319022477401357230963711872349705264932263915455665697678496785290988648114490483605978192922253906434173313841808702034074356655582881931748670021480458019453044606455041933886382594880361893767283901896809250831993667236238442310490559141511863110190402738024105202053224738741432536712863998915647424943442610413280366571613136324645779830676418033529877632197713842791145074818222138725140563623635302242401154267860561655778522705960137456908347129872589323122861109863297476727716689316603935676481779130579890768954909989341895800411147678495147283272354354460981478669379675269486753211793061377956232795456004034284623226182981417944954593908495370813180334839722713565532548273645406340781717045442927480109484462215087372418276735006466114471982948757525798853968131360979265835218486106382332159032945560372654159596699757783413738352622215178770618596758156702443110140436503233353778729887229339649362981524548804747065348231539960825090754372770581415084250058150892758013744204203944035117697659118155501122278620855985726101582742286409932799009394404744013136325746190957080664860756230570577893948868726440111967538354134695979113561304674697916337353832505618305968196979369056486968572692370278539104073627650506732575013199758986524339597084524540722907423131626878290427808176257527190929191764238714460855732500943044673018705342169842660262377978306669550413193160763488006080774113524373629583925793010461658118952867618848102485434316638559117634039522001712553989079881084887648578804618375665680777945909524404722031585607167780698415924821695339271635603175398458200296074270217096553294738095054167316437600696419118147677317806868956319067711592139439312296910858117459336013301940043269922705067115222846160764091283150045834986123295207133400257530572119215359692297558910121127148401518035899339325832928387518474076362284657005030884911209844080168316319448323211660964318422311618328829892835492510148076795981644206358837601999037615037925542889312688808969128792431050331929161776031344511652752595572300803548771978426869054278985328448826330491083110739899846235598263678723506985149535282366339606490683632807077977428840963463205231588257749208405537165432401775582124229650445196829658186716946755395742575304294995880319134678391949332834617156993585446425640889318566706471081493774095346290405160510058600138619077046184390400563802142191177758992714855085680457447909280895448794556045127108807471838077777220464185076435579313673135675647027446498786822015629551547951343667917603700239788634546488800288249477069809875841379303457362255286300130068133224190083618984540239102129484264257044713463926719575169016726776205287639099809862000886654065957988434016097643688611075397417580236179861704862549774810746257472981962154792150268573711178565191938990543891798534664678076993604605580705216536660787285174229832047753392869340889063070781490138803273417783946486225006578094493506621317091389074811657808043764390537129940910228854244719915895937102563368008763839504778559399847143855425185822936527011784830283138991185119450396890782152555795481599315737545574554094873813049969500300331109963872919009426948637509568898387944532834113914138054090476197107413822407972903114364897082081459538284250181340741259177361347989718301188693371484234336965219444708278634970617919017844546678427721246798648545470788869246348563042917491705853176348985090555180726201380763835426521878577588068552567497596652994231605436477511127589137958282296651217414006810565209234960097084561260609726550865662114528913210198676984559081336307517038579798816922460019622964553149812259796616665802257734947990172666401952410955143838810433823208131193022081172067607122677690196416657817722811941563853400927023041980020925403605684327954897243098812294212289682343018003482001739212112523873784772995486274277915331513660713297866424640645178475027802756739161048883291696954247479730900633401462959645093555493902635436887765425039334004688372552252081621543582875609432142561748181636199521680281036075906948814347876632849263953924327392084038320401787483912713822364469503407774264913068174052949867123377642014980295995069293274146213675260927810630156088809430454694132012182630328387751355067169441781902573121583946520731915751219291516779687074341745074103314120899880046181157831275573140394540584140277360076582936090095373790520716799430225161881765441935428218830447535655283867681734584759337026336237631341311172388083625590433465501321619483035598389927006742060009525532105466181651221628656486057114279920763540780782532811190076318629264718488342605005364499004890332126480777091895649368050205770749067063586900930465417181543322649518470896565316757086918869473545610565240591907785129517612502851585763907608658375687577507242529701471013868220525778315873464424209950439524208373045615813840550442168693039466123275863983468639209907491750710623683751568885522586670567070224949401484093391569832688814576907292644215575343589820838059774204871448758909016443786072232788906829399827142888269171541042950258526049054938847840576899366285246107786467288037327064283754581840440558075345262426533889023041068147799796855628574945627128988161457912528744027069267024475362907408221320042492065234773853465901212347088418757199617368540669956778621374740925407866178745772608983304370230493134666044190802032848728636200223011954110471394512077961047900268240569509303000799371651895412834700095843278024337936112882922724149657053323718156623344021634284396958616547405148576000324693192497226982969455555784460162571837781502838449045616513523059332917677100974593673406078401889131060715677135384544991271368373248392801272705427799384678304599342542617721785608679949839409605396011704708382620118224195203282280978595866488802115377520365524351646384510245108821412150382469765834444560438187247922296703239412233903259618144108093713185606900619186268949617853374299306689123025477316557470958868535292488481750830168667812657524929510073323033867017936164553749365785323267147507504199862140189773194556826211091547965601502922535935390348773166379658229257998551016194075431724585024832212412102734333820685180719715408029103748632684845079348706329895994125165954471811734195766051116695096449893465974232808768130481126427686489371004397068689505398625002430903127954255870104073876095805319403777431368491438428045478500089756631830538432473326447793214167607042789854316824786475734503116267495136621690633278621016833503227156047290157863144218553941340504796136320130423449173806137445873473149968280804419192777591585059512833504021804985457951064232328701484119686364502835809850968257092263004337312748063766624234744411685102842571142896560572554103058396476092851130617372954162316844065054071003520497180624217951148780947850307368682795632412980864461732806614772609417145571451717750027543776843112828908999281274388920654835344527252243156322692017449819760259264540635461051540617183420982466021014165051443647513537120615961029789401453237611325403295866267240114593728974304761709269942985133162954651010285814085510565107658788906164912695572458279383794667927015712148081212479353870771666148176558058900185764094542704810041208687971610913386859288229980770010595008361719903838040378210779530210350571826578954940779409404426520347770455823154013119884715877756533721173897126649356302690630659755454876951556836859202467242951293439935210422841200266623536186506607977709248381154422447288262033637126861285991348565786573153676355459816853565898850840746003448339093210699396522725936195749169161205746122157798789451128725787600951769558955921874738640906145939840911428092914500747784795265587400631386140559098135512433028803425881025136016933383458933981790540059799560712776214640064377979042681753714379022511455964133841135002537512166653539157685041739187328862009375401720111031733721628217269451415171255790820620702556877098755126759297683518682316993608443662261089260929769499499415457301620663836274614133377575171170222940821234912807602967486998021001533440585021109563715389447963510473204496092997810507962249978631356132505117462243510701126899751722972344223908603086951868201176985340368476127871321460335883748036031076129217916128365508038788344488853582077825615839713148700952416947081248356992290815236595066716477970372062058487228125054734126398550181006213089394372453089263496424854563298760192224088352015566397026268743256449246432237073011303483443436328501660886030214237247566535835054495086005204337211541472719005218394985149517259244007978062006693859738809220842380809317104568282398732721012162490866017924544403600649159953255442539526425543906772582383543861020442125831255191435702035489483425799115602979431562922140341335601591901248787834195714449415510970225106833234421023109993939294940038783103513923666311257882168148948007337395623202236863423737246076956622380575907848309905283232101096113539225651357478915793461593226504502248189004079779829171460779919748457348306558112624751081554751186630158626584775154991626795702450728670891399021669277515384161064860177594780301245870132735145854959451743093772009777687898727686697833853758526710325720051921681849042839485999189352963018010110351193638627295214595989807724128289209435810959643122470111268267294841684097580798870317683722316148217610984434825462546468089156749301793039691382447655352242915515798968344821514913921385239437752015859532768710077896339853134067645619917368365482071781800505780623324395195068589920429328344453170689842854574143611072971835932876600410149878247500654810598727315314895550100503727500220867163936471832663904068775547721431113354253081476260518458454059531170050406592779646084634202032370118253979270385874808411335694399889134333226864564857808702622526878998937670364864504164250408394334477810963464511068684773099766717957945641981807023517829005117195029672363803379529919863998168008616176849439243641605329080484431613371202938104395690913798827130852212099807833610137963707863467971680860840288861703336128016348804705079617858251916575286852247092256236927054243694297752552585266327224166264900969478954444168261680981762604722850136123694459036093081994411583499468747542659990421812518449029930889461744672142118394186637951601201987114698128023871275528945752071248782471301402918892243089577649944853950252136724816047843520801189091060847691391277271752058981922407444045305488005194073674985980613660258331453530070086349855395818581444130735455942849651938132247606140753517326049438757642187319664165211115008667137961146517039817005229305573532265999102499550639315911566864229654601689073410412904601908544529429610441016963304745609440420596669436213637711369479421716695102380596491044084401973031534145288141878844522436978779797088356454107356506821251968142404283787958570687063242060319769691629705917624318803979793370628848600861517021454993102867407128093252226881348836905429447981424752971155221163462002766546936041921992740938635689140235694192981534766053034062005347648565513257169239488014900123824828961982809566262212319134713536182474684208335940600011071400725268118968598356180401253937993459370498745568457439096604426255050643576369807054780844006542089916627002260932518164786256197201122599015476230199121418528904874090366857875823666917184955934756909994998027855322059863542522249858118349292979980880529673152544610255939944601047379406224663947496865280656926791701536549773691139487379074073865026378072695778799934107495079181139943847952750242259944761656622421341613957981036537581641605263401335612712397461916044094447719896678054621737879804863157251449874972260861340585576978359971138215716715330160463959484201625084791407003902200608150786911503969875010066812847025104288003102606086148455506284096136067783604141839443209653888643999943135685089226387940753901777658460528354457423546726716843530498446196167734975660108762042774545639850901682645072236293814650125235892045358921626424992014726258646786593268438888571559043079189133425357955304432322029748456024134439760501603677007690976830362681472862237315666221361130438175549956434953165670662682941889313350275439612893610603528184602374409884414557789008647879520857315988249671424995885385243283175533715118908717722890894074648663953951325951682054591037071915103957182416301025873089340101542944212306547751280214746169667892389919895791799761631036257040832343188555297857230165854313046397240882041519435386254164313663049135016817217533067174284920683259826250934402355919959606472187090996704677019220236696491125119241665191605909838743167437821141016609208803279510093210416040015678750430503603389969983460595940092339707858617214214315745393857447159930720441424161932394840181334302628189484649343930156812492916882367241434228762017361044678175506848367395099176455118826351543852523293125259533654566742211784812792645614939037006619293299502187787307087029292399476829159188142202623615094054011581359045126070378163009989163625378060462412925620006449315021655338574384710145864504933984094318810171458940010068048601403692015733878234329890618553740281748883254816105831409232152042645807950849808834530382610236490053945727058182009668819202765006767997963467648674294505418562936292488494745078065880302895237577590443611446018940229700037377884585511485614911620928601587905601931943845926963212883965343015338999398978257140918159226513292861595426494118686301751164929415136633193506849798809982162798522069528924097196086968147537818376598853179564887509433997245422556319908928170992235200608301140371801419733570763434751372089107213235982686432483748437117236667074246381078352937224440223005144928900647513902689267148279023820964830164374328971854348682634624396885467945026228360175656764242347409937507533082565694512369656544490404046416818706608161028845460841198511817060505162684427308946370063097369699563070986210481413501637492388854986496815547831869269367744001392374153982225180675693423523378280585734964608823191166402046526066139424980533454305349905619913772850214865138365050619990491576069375986867924784508329576046858171923631777268326541280583686332629313271172731701280028563384577455360618776926934996555210318184497513995750424388516289987692554944168434262001481180300407746687808122551858172607784749544737654581521793163993905894766961527856963753557757721901291126041143283760983322280690393180508935010323331388599595688435945321547210221364436250084451421976883541623917700311010939051546035176785853250251127511705094216089439750177061785877926274661190701568883281682694258302451500777255607495519737580500845924223940908789150770152578825274833502025641787822645150253689634450651096435841856683835348632806686588833751207765061258445652904462327817334638020465798941946457908637571186770722445112926832760631956151967977752785632327143291480786353315092954692492196275560470575743184683340604185648560701087490553888004147629527420929590209543211765011142375376204709386055288257719968939851925324084910094455350372120984785934421730497065682589524707615712971758028807784949413709799816314774933892727025235841800481427127308915086568499972169069374672188265482914442834098201298101986350394575246196196170994123026650845097222519104223978673266779195333946870520541264191354426625909179173877772703105159726941261637023010059839836950309445164983577279069619376705970138722962120974875455029679203387248772175549185846653535891577475248354825371974130926980670895490447255378983871779165319802544281628533981848411577063598670754046718656943038237455968803755646430622986866876623065898380070090469493235806146402906130325331690135301378697136107712455772535303716573902405418923093202996033134069753071609098748387513253285733371110647860418752560914126628295850386308267383511669522939493433170650649138098197121069333628547950989707941846841659478848813423585664618907604644709740454967537681733237466731199314096377056956314245777059081895642317543709148858650352675507209258184871530744761046369021627971221117401149578112246873190570213127679264921082677674488661242541942476257790174551402171373772600824990223858207009867634039261843633891562250780314217413715066512831630174673288017677139553341973548622458944592520162200221991959774158265191604882642850062765356927180992608698532207905275630919029427177870201093661320412124837045084911465606959079697430305633585291811048429804655609278823346128468835246926366348388339252970695656898911184858254788670410369405675405118622389387777721250435300279178740431291733053663308575342673657998852994157151663643108841761696347021094730598802234055780928797387804450359727178943585740542572170676210917055986931719656891519682407606944782751827314753987658112795910473168240365497870033056393776898759898820611469737691726862124046124722434095484774327857865251927200444407261508509230484993000091475664626241915630470502532084268655979102944837269064951661242325013740193091331932904877436670215652607867242935630903461837220720934203184860843435248275294137095313223615053584594468243254853110640504454322887808167630852752161184402025392189744558993609392274053525281487592587651633920590818115032525750943296738194117597165293806249074858286992882531848475619643624201715462566606892396515184770434544070241323288483519097175294193851619838490663326870323717280524508948201658377618889061759641837605935822986588881053619523029911664751244419420326919063642782359072152398540769083659580827742682341670814396756412478239560984864688676237518253839795382969782882997380476913438861488571432931382557414167852456404412180657443070024215957405632840884503367266592081912172806709330803304449091214504056797402473374834973221604062979671282692878706798572304490231785273347738791919650560929299762370076258582306232035714436777256345715713743164303915900310721832781210889617098236899989319609162856350404644976727921794849163311553266874526007497883944925640887314259978511853969771641628046316937482622075256979732286708995054782238107507159765948913094191469645544879043601697151621701565286928192668442639383512956623440757385937418138234424299898992477983357669876041890166556764451530207935434994927364933290773882007783395900818746382897287457107848689776168070922750345589736389942924667466670635301675970751067504292640461747856663700182769154961213251765686355133799771254228672058935680220094758687247606324779812935838466405127039427890825152159379723531435772557456303140957796901609306366174833758927040656897512357424841464635554779900214517608305843399393396052953351818208634888860224083656434744209051577697218243468379155899622774457827990586090494027701186681722523498195914486196342489148165772591740218514115013912500951674546098468567244902645170806207234368428169665077582531477292858180507167022091836222817962269353364651679008717506722857388386084572571320158555819277182852196821379568178833000569710481124825271188689910121384646798553290611672944495579182671642470008077287705427521086311698184152976503739754835014171421792355222614124759481354797945021050400444613905393993832738420665427035660361791841792039097277419774198105621903459439154663874816863488834939795481423951286661940151022724394385925479338939489974148054027576472316172167988654050300075025489576158718780595904692203415100171840578833878496474258686383358312013899879957917248164095628169088418432261345764922137251722340638426773760140893497797683878874473442509766129846811596323081344285848644101136119319792136208962935484280626048311379405993443441606662069678014020614975504653377105649033051799808284946862138928279775447028812042257205409139852871929513360597727865505262718082258772945270399295939523925182924193050219651284509690702312175561340620139935862229869669835668578174553787359575329150414588976101587851310989826193966807593502238811933267421891282892650232212275820274935242402951473574942588936406795237929143154170161329849672259109457930887672152726579221334913035762149979447337206238507773697491073077491394463485888142694987866656779364483580089800446097557956277366988783573229271320863956924363307817441762280998320139121389274658734384478592997694401497788806830177405606797826034658501087052944248344273769688175620647561786768620214399793253212486346983647791417446362139746258269129119433307252321567938917979055302664122503869781999628350665854705672441725269600582431126480384858811062879439525053327353086950900053012117181713715336323514004890058025487319176630621408936190542479730600149934588330601798348029345487254589702716357694859732063702253624842485665001845801159131303916267384201269282173824148969949438798499040270313025141030224517176119666794373160018673481506419751063014779984344087046875860685396429879024216414778883232452679343815769602631659331040325512759858272612250403340250286248311855098673275099245996616733132444181275117153292900754831307994919579521534202070411066066572846670441259174286420174297926127712433810160834672956128039897462892202493254625958288736355026990182026578325201576953047913784542583973204365647761792274836768499287789648912947176546814405517014445238688949365882853066464535488990553202268946407891892554205679771006548789126268405591250632047349688119703562994253514242109414703973867803372748744636430289232558454340880097899974506011999240344713734355792805180449587922889884084027051442351721097700790046630370410278412785717421682911315441069102743654743453605579776830897810069149898774682692801748671049125880078571792340227536275058907758981349556355774568609848532440110077486945901052158886232572016061243127145319096691638356994872466827215661824864816571411717424730749367529431470895369002222304062560740019376031445484287771325538179962691400997988015206519205933206811118091617073657736967643036379147667856679885378555659252090039205295545839494020009360331767925727675400706548474774673037766179639806139876660920401938607738167554421186650424974094330341689675665153992597085517380738395694873333757666398051263077948888495184856758126286073400532424092364988969779380423789796974788478120045368437140944583132843994753117650575518473897321575514135086868989256535686565172677330818323944193560941698858860398969872806747749971386880327595246966232932020843727340426481897918065795414754447711537806775459749777876605552038637910212364759797940331666107988932175332424143760508953820532900256649547639559351336578787354730829510379759377009091039965079588293225000255072031800116894647599783524263700837163286626357977587083228226027964648385799479315400056104809259674847367648007496750295953132451165128487557065991179824336347723621601365684340169849844240789521126490024885304970924849326370416014468513777351596383229673827445874453042473475606315627887504692930319383166154159613833743912667037374262600707744224919642949696660120632709066069438901743539825385832698725768440036520889891442126771937416040422152850615303789911020838478972959850485111022530750443831206632000183445388169599802979647092586428666630399851386316621617915365511867574818729750140212892061245925382315610969185956905193973696117312443063029038393660626444544740890185665182993901311216872780432893569423007474770849245027209673549200067529284414667360580510354565123894429157381512708038868525511434011079043749497418927209373524814283037908270398471399984326710125170989460956770833707692054826760105425010731244210546193403433785220398004514784904307792488667477792568260163673232082964090790453881409647148031034103451818620573489111840388848686688580761135867742842612129544864093838180361675724652903112439861510846142030820601903304187164984376567768863660466437911104934198268061685785954863202165178274160155507119571405606232366165468353713290482192957709953742938398352677910451056947048133323231906824710909583436411917732381299945462129995450447451214826007525368618442509229625090398997183099639876261755252110054809950474097779693524120337512920830440484597387973022921688970670540045614650556958684455620776516024432235027164049829113208552702902355515693049036095728934109212479696645684966006208393191194465209528867021416113939699751345203560767209719510944051187455220420257559997012569588569569919858469358527655351706396385716420246198428544663370113769053465785528917269312874168930970441711531967308420011502556452080531202845227020237363579429507709986376946362867002276805244026416569315293663613570847236328545482598673154577524741229232377580848693365355792290332297896999125935108057234349982352646685080634112687052395550903673004982338372468839814194969008244805292754949168758013723385408520674062127875076255135238084887855963258719274597843414586013586156605894545015160803249669146799172787715450340869334090728689618306013846400713129134159992604804016444587262955340581057776228830617965046846523126941731893880868805617323839512296041229844324503069309715480491482963740282787344411449037530843164425948026415077584916981664094300928140684681049616087396466520311841686013505999259457191734655365245015004124011696258604972083562055113850690050350939751749159770573356455284476248834769647190165862327968763620072540330380925216803890478718595208330856406464054627863477981928663685177466135993969594368534804241811639429002066286844026138096773747325775248197213286384813117531499192648604146834583822038020322601792789197938191305543629725241704122735791332257555802892742495365285663733488566933563249637891817956796679694924572566299575470789663404372307918349561595985256761606840575224694442209277262782029504529076359869664599573741980614334282351142364958820806288510578292378406533780197729057654550738913969091155785624340336866836059572417795154685196036631466776567386868637544608378855746564367003966954095714545432568132863813387849750383244698788256667732910316254724853063768394996753157456191952289036464369696778777686577556848552567420666572586199795154818108014306406856448243836329378816867044849240977096276151450950367368826011138765043945030507159018579951336758015120797819200244482853910250227635542876569452746557308541776924407363791052102451827822058229759949479754214521599241214240658900781430229403666861419472396383212428538674785069701187476686903244804963886688250253478116733477737305032981795959464787897280979680170587162367642758560635484445634227618289210741890998532393552278818302696414966647322300860967321668486758867238484781827814629562134707287060121260982724429019239589371432043177338020524936348104554533837894460691323602976917834368197597698374865685632117826247473917251357574831766562882203740112700053106231288484572931463945247854395175949028875295366620910335736731984588617747068642290623267216153529223824297225903927534463470268633787504154425087952077161773469626557704353670645937997058039893468468725012465546445145293045404607775981966134274736205604072938762665265006295010974332540209136915210389316524312110657172556354183355373157551758188598321959631236191397296928306842318533859512109740580154291290360068309445640016952840785468044136740832198861881014953499634850444403074399966506147872899143925566573573204919195854285246504077120359856691391487178969423476494821317162429365762294450351070766781037656604005396984575235960774424690337344379311084603383925178993238333542399057668130558231982426469240951582615824028710698629777226232267796434086037190688737684325253820834131400787196156211993879745731736064483236402496683459180251511451179396076683893747102367976611522713004170200154106738113259797586749562707160480892063003829748212112449771182917657575752608274411530632011367099091673638832161792435275543898607662307678859741646092632936726574790280836681750645307706478528597649765549319116751647338749976340565303259958297464708507636329717707431122568811297728972733568001299407386244637256073094937662007763719384719762616635730202644695320337707427155357420016950820577618145919777629740892613552342526333048723411840779326239908708608109601896205597886611017638118443045320176636443448502836885377771167553462531659407658744495172244377355208022294140173479170530076709162369246458224844249178357546691421169243736895720059683427564019541697108268856688698445971719669379326660831614210981261474842973159953934358624916786601521607652857162436740906023742711487840808293069365666258558357178094580692823306070432017272139951583026686812698198427801862181133895315085519794586195528350878643950229856047675645241158970816171760723340297853936854339074530606052478579973318702045296250015818622734636042570339893355483313728883733937124141122416329787425861758430442730713417263746996045057807030260366017800038843565474885844204505001957178890802392247294255580014028998951020001191069696927229558361459976044752472181246374720229216762415111682684779776604658190584636605413326502453627147234257354308859998918371702662019137481427664190360113630373465915008707055517352727186050435353890998771790867398173525948739022416443625681007746128003106947425705133904018737348143809341095765633693046314955850662376589131741727164094939506531561395318404505029779117174396700567830431550296654805381883841840510995982801518654736343275560250182506230433279045345144639102673716208963387242387174193270788528717728645617563087775652339560497738182134617441122826091734123615604587393509630055964346701378292560924376107008552833334465140719942740715502712822088483271393165639483259326798053802091097721876730798205805691586143317817726245266653744437488948358682493791095551263131831237238224882103118083279008442312889413220747579737823495113634619181242930231555764411078956082279919694772812577105138921739143127890135104877033993256255751779826337801747208518730437675584061147745669513145774209544496216975804013200943348778744754484617081223417722903361178187309484906394405409119146038073439443733098231528224543066117239059952752058565204709398504735919100691591429520929821293134466622976450929685337629785019945492494581622740420103375987050881534236362600703867482870717677429413630419926403735586152258866043208023292928767589911872487369877041269273614148188103848662067962241862800027880613207125830339976881707792045156699766073863159729534186939061578290743956610337230390478850322603448794629965213323436141899331416340601646672664888973711610773986050729262558068917567238186049126745551609474697864968080344792429883337580586466073460826417110643095998753392710139552136268738367259042658806539730870974821413196221724582123384217774343452100941462091762212077616657675322471764407959096475162780476848873826489115714304898880826918057553285672047727325823792887871198174260656450969737948241510038058630068888423045960611682120830918864642956500212634757427897960225859948479279679134842460358636831758372042340170320066321046367850536087270136899881946534027604598724811768701224881496733087248213936204423341966928548061224287881341939167185247251095612205223304932594368580635806604018946585664151331256645173601244145300396874015537238802096480950036540228845119081367733698716026951091962614331434983971006638260776762922626259494245324521542161546547292770556484415974602167983308312759307981302932035667151724795621857905024951022574253080536927023196091652121767410100850857377747306358513484886696257126326826959873297631883932481676188476792958749224439977971553014754453908817013607763671791687072056832994678936227085279075468664343530394253124416290574753978288386852566164561132611717288252634843466463625830176805996145485176929920126677596576341845446161469413944787755237723641614153364304811032858344180482663023746698420134687985961871540315450793041783355558070046519269403654255797316425163665219292506874076198126581729332397528320525974164545057041173961081002262559799313194985655226101006811635098286530178648216576063004099257274031029943854989145246171019013293183641073510622136462872997013087169564178342711290684198947724086891019168403176209657262079608382837186500285939249123486731779790789721302631608806863146778989499232177154966785225378630895921674046610813545767027422341332263023661132189522199331476501941695878197582574526176294523166862058324336170772137978346400623940799106966155137267927038328196509912864049433514561516060753068078041558048268046714142744696622249384526944264394305448125508470305981496360250355168578988970257939687084630443460417126980223154260478155249986211956189020403822539432269227665388704564944068631080180995343338055828652901393034235046149385071782599761030482687159727868505796094188385268331531201191819894468749149306924881350187700919187738713758107677874797706746116522249702054371439139760241574995371691151282738918074480717460292764197748037830395761603889183200274367335690225001013886725548903034654380268854829843903390216996005992229161413596131759753583681367048424695616951119538979970080042044051117701163469305517494892439133889516449347878603795749798762094601995394435201683822010340131849028769094512619224116151679655232456041037845138604152954340991182884137801666407781882449946758472906954897622296586387970532374626334759891717750956462465666990617232563669332327084365840132814528995381750754623027371123854516483477585446864249498408460392267568614497539921165116130935245721150601645271312857002039054863540745922000111332151571381464181268165868757271367628303825885633084060699042281272277322791927167540990636900418461203730746248321399196705381454358576684290804018238503533369145880037684257850660795233208603890383605818510108333621930848946236793490290210582715974638904215337400427222697319844471783815853260300727027430260932636854474606314794519637572539951988516024659647742977586909069494340215282941963097949066137109528857456232789319757893213178314010160288097583975203715523317001962282362814162488776642558727787937444665077637990625881408261583113983761877319094237053222520536719745632905785101695997694589106615677036336206100120609303381812954799190553493302396170777732945850688576339539179364805916579171908865391372392175619110758874869749597882267375657369452119679178677818623963026548076107133527820757301175471347163020955796364865018575752594145013884177244443235051914289989372578688165373773438535608396639222530198657522618395885038114379986936433583176475377257995220908481729522958901473478851930531054834701500288021086153417549410092044649811133770635910851340453895087563256151938336734111861486053286668329813892336176626014649938542852623692241067842606003669356397839766434556165344173334330867840653211213855434856887594098884663133491943349041660904133815156463113733613627794687209857096743460729612114573544851702263974998794415730997860684059780384907468585018838240308378589262653048135631220395983455491973225904624410635083891931812812302917199049142244899519768151244536643764386178052195526101169300641963842096846139675437540318814224669913792660435230551677904245957590775435708268970200256901784437724088824355228975252801801768299484561383690685151385765465777140443067713039280306844913803478165308296185182926814173784678540580785272135329882933324519779813177474158645490640513323998091481498812423498343652606401276375860280363142654238981133051101459829558374801459988658328515714909903471825452335041849216824980384904020658258374492751442825781228395529558774582839179695008037988798395727816040618277267314466313459592533613838574419447103647401805214628598265884616711088676915718137502165212117328652772666014296922192769991993405638132575316443176489018452368070400079317544307788977099975603395907152812413945973313497732731499853302672127303020181626772129904311902174699916287782253131932917571149492442022200684315737546415809440303072419595689495596050971129787020141635672393722930333136968134038610790968785189129914300760903031510028958502952828708006373687605499162038356890234454020108478341431472601766906028014136237325395987823616338275458925079738682442889503554276742509173428411957039308376114837480631792376114261678039209070558483860963740709944974541727279266291197229967656284339004110261607285251697196149167993257736466699349047892247799134297828423443678981208580303838394828774279326662228927005889297968987580758714410661469775058301548564772735371300023164418574510217661168684171022169033340188607684506068351317072707015874350021466926976983668550953374959564427200595885899183861292931568143842651944615467770291220406692871002513498823929941075844838863265412038192217687936204166624585060231139712467928201826047053987368316122674057157408572888173372577300632815559809369253570021946923954965250108235127544854088671785521078501075543565198241532087074896107774180270546975668319228398226071529182974801185910842426168740480686405792804147795578513451307118726288662389633147957202016959667196206450926168663445260899583893518646542142122351840724707500792790025376512232667504190567128664785157826771110210055725360615458432939042010749683838830391765250759389276693928100420657027085846315039711576093968412291638820133765876043788954134744001569278877737542009062818200674636908319122827128394519951073782751055331975117197958414448376681278204719280493743105840074014740445095901891593743899893555265094279974331718141808370952776538060950535923090912817571575591497645810200629383880515077479875873018885385354169095461744814619286507111927130516442962761815769181283520695274935543723596591060283097803796728950969878895923534630182303085726648179612328854583760433796561692919650337452071051053630556699802383292598197815921634987606473164137523395012681307562694440392564370207230631326748713521755430620454534146886993428111963235650857226861423637855421028671600445987864082842287946176239118242161367573753977144458072887960968452805075532322960241288479978779893375623823093936796228698773292080580217802792157913033708616599502466852920806665207747634116177179108487709132151249702242247868814323874918715294824251770909747762605464065315366115758453819136619626687754513610807159809435080959998725333756758214473693040118681445422699612811420885331589019241793713418428457471412969635288020742701491172537400587795811694095472274970763564525226302917475613232030208101801639692234981002225486268241137820440810448646721399765404240897849108404319203830135984121416445266267323104696300814482175696366165286413642758286658627873294786344256349372738911179253975061288558234647513338534212142861220767642217592775116360032586291119997073909931071636556577397946023487946416008860031759953654662606693033863629445689443583929894705199792707200361498826252956609297096985850442727444651174596459576976995669922401652190836789065910919201664631419889466921493454141698012929511918661408704755447143792187412381179101379055550336321753524466368993818877904442503116208286495301911124885214985237088679016504346860690631258687995195031795246696963977697813128843081168374737028715131930485424012534614250020362664280271871017227054595057201481888806649661875102087263528457747204652624193515730801599840549088844673863140089410265727999778304368239634814439387406215691712219637917105342355898294290136006256141269635753005760503965508394853965146652542326074573246858417356532206991345714626049525081821071713410121589003625527405979114034970600178534361798667999854733743483790385949945347310185518950419458805384933081388253924279968986768428829097360601999273464875409341917907279901569949667073630112129857292929978161678440859017536943931910653104043874481030064045439413925887259212642962708199610787781864147745624651624400041802632561366772257311615710046414209762898984611076251950649620193410070407036042454494012770189917529757812561092173293569949901911076545132093333706484540951212298823030400436687328983301180123686268734978779305226740187682462246567910591261135189880897213172900171963123400152453970592451250492705429481976853241578317676001187944960345139660545083677841319892202772156925863887411865734800813370715138031666721823516212080712931482702496247145574852341071823333563695207657938925662957549211908922528257269248015118898385903291127754241194406121374485126799982209995990353079017572613779902385040769592757877969013322564444944322756758916026777849569558466896484813389362169661615898012664093835525396339839407029145256122620703357113969967490920840016045296911674201791678103783210408268222043267517046560452255490335627908287725990373396678807677356423879653851949926232239472403071504173318178089848244468064515784500544171529884188127319769020540879846979874018718388492633356296899709121263506477427068746003168377754943292828590436217540630674894756340512055396105377414726179564512092286134159525476067541959709162393076970471038411752860101804521505391711685848573060301895526275954939817909429574100690106840780471488997725053875610197978038191593625997036504536192525840790556862071809439059885317426186565419029213357146866108133200136022934650356516742936277710543536095813003587977568442180052522536507307804222628945580166778442829843092878613994279788348380610011182826336367799822100603255121350076039707645222016062778687481044092475419728477331501494995594051006705962855940114768452127973905594215565857326462530949139745066345861566835291831216145407764547367883996628303479576084673399496347106171058378565550052129150563786705140329868006309430601082808618249093358139848166617381462274135408466414152545762301790817669184055825928605243482265152498787394582692228878700213518588201887195589967467140961081160493003022338848282401521850293231881213358031758458287859629236739875214796253513307621864507041995212818506793922675081513032867643546047952981049010717532419424641221830428746454084844128755867675169241242723756700230731755224385548786754129431544000336461697715391497438430346114354176621700205119187289640329619698425132775986882366008198057812491831208607396030422708635011045716286214925678035583642741949723003849147362248543584576622819752454674233009004945607672723366627615482354233547468387912104594319740083842548446289043730060840457341735036417433482415767420861051258704282085935220286507956418601185925785591270029906205149745901757712511239876407261423972286106472588042310645655214777326552688660761960403404206400979888654181597296478046950207679332882349291844756302508723740039163118677192226498440878752412444977496493815698738919269298862160386507787962165489093926977720563792231985945638774940387570080926351663818520399145556929148021259236158198420672964032765367943620153467956525491833990811287504442766292128191268667719744574168294890188141362087189363913566015110416092973691994122023342412426227179332757506302318180554104966637926383098930819815472319891223409865771735986641986740727066105523690548691189430191414893477029452237517190727544949861276681108302459302623011329935806365361522626122361705312150869200075097323961591549515922990402971127551397607415140627767506859906926660256315818300572790264097513386247488051839140469842230506247307216191394775567311481186467561101610726603718846730749744320339393047513374206349904290930385837354302817761425928318969066572773600478356687785056077971415330676532205077425988459948310992798234182706738384528138801623282825124621473520372060836996537642404591753642344950087072731840789715336832921587317311518296183832979994730216566382943859769128910786852202732892358487404832544625065503837941236224891420447165277158311205387850559536752702093346538993657460018082740246930768063830809033046880664024316453752928929133047186374325871521395227769581868576737536989286221909005818842506917833182261294582400606724999127991002394825376908474829590519069474349752537491993712704279267971375063826669508381858759641533512728250319367516756872541201459229780451110482439643805417183449236039790832795178792010633673587200225212696606067166442355577125331694405984077136492735552177614186327895249759618446530956834733080301699096213012753159970527586488010173045306318128763306007588328085834674085137490901906299582102209256543158209146889461151297149352145743384525923138172747597434022576953304658261975879283339420615180236682614028877434735633968324104142810646311881348647772650666661387851618504014217851758408159201621497369848614193246256092612905091726829701473875795650005812684029967223088594844186394316644523169122352057079356501292731207153079274226847702143779073301817628217097942245843768636092780071486061315169552986449186277413017687268174852202782147418490482208753374415621987265356995232118189294312218930521344512625462087812283140475839312856425910212808316394207912188709996582893722977314593106811997136112296970790921100079461169023011564887995086081132431956507234641875762224880565640299513404266185839691501849200001755916207190454153573192942823267133442762435468605581316144920404892442367820681276991465611568370094289400901448849562943014347178134819571622518989664840406316223549038906382814176469033377737595049740997782692676230182351343969157693819936865074634403449329465240582876455965455348824625604666100525527963292698549062195133275918191365761760346217929162434287420258173016056608623883405007518711964872384279816682258562723375560731666082984569245393384754371518768401044394843770632576763375779566160331233731602354276571818213910165407957406827783098334991509360377781238037393881701518336714859431945379173281761715518840496412100547561633858947552063160929210646703551722731785750506262753402864435553838354192765105543902721610556662496686143423826035933651319986747343375313892254847085795386648209534792871368115729782693020288644389983442960566393842863728219400989500669244924528472756437976920455155862826001005693054536750124309412760950610837627947709571478632424486631210656255465883612671336328944248856145321402195877426413092152706193000221710703881533108900017536570339056634657053983515619013197810741822123529179677529117980640781752812836992847451083842794437165487645244370680398949685252249344200585497648639506716527751369118050976301730585669271371040822822071806528702002764203582659134170145289095442528725918309963815098043123460543516349216952530974049883401509265693796772013568199812104443211205511481283489058323326104182026638124570192548635701477504931922646326327606296898104065102771797802483371413224711695550902014450892341287551117069824351159217058474773382227756388952278382756443270869342262758671610955665816127683596987070339859119053690579530134102725340764797018978576349440486852151566609183949598932990130485807468143715173343054353010553690655750662268571920603872768241001175059229809799421191968040366606609382021078239045765849527060174706030031654030346494407551258582166234527370402287490082487301315595006009604524432931027063167954111344796622274484313698553463679144061467112775817774571044421713344646998302775590086136115657268032988801562715664607882537665140931107678776443335433100249143087429543229647260968854156398478744286106700577500547722617070893829717246438729368463615993953625001363485020233487833528516045702682898699612823226926010644720059813733519130020421442748871623125869067105445036435340672836660802315196304835785131828017990728038862189981103259779577183496210155342901643407233631133410882427814257508122084630691796861220084492223250365086823687825701065106031068758386139005440890745503348282364448225323891707463096776524245965746327413713042316408582493797432670009058375046123476992021858048325862927883128534310206782868992207185612819364959000091032854618660976768900651922517598080061745436663106000067776215441204222064424052091936928177285765585377066279789951352110676583182024942369755776585828539205946839623667257391519458553541285160887248323590527083944118572429894265631954925337407335388872196296036268070381733794172475401480356846938971668363052863194545518269841451825472152360200606968645938896591888227880988481822759163034404351262885255514104720181666395976656039445072788433889413852432766541282049544224739357565338156639974477181198800173399722360740906352175823435819867868016008076411361934222778401591705225224116599112206102661825037684767266760214248478576355078474819360312589739482205468900745520835580905409746372835466820551868934186952887757103958584925425662657516768247185553741067142393980732926587641628413016091194698103022361749749239674519086562975876286850349557305556004281359089320865189348885670774617709857707228412719833770456394254653323632943238137068315581655844152096924500748178399899206524606323255417590441745199484207856112721649992625204656310941378690044180974025922534733016672536988187722984086019324129900357501170032632358241216072168388985464388480540462885805198800815510187491199929337087979590654551139668003415282813967570902636217989054594001088947816337823610047721395973600801813142180505767845444350345303104105906295830778739223861266213923299411514594832391791187274001304311565949392363998648017384770056099551244157375037580109685885669168440323330215674471165028856995726564838801143443905545605628478120801916833612922302296334500544831009135786202695305171689893191745201493693986928099499733973771856202297080447073298675925488293607943189065961933411265387558330724481920054332051415111149562561338115016637854401806476399780331714032995169645102284662231111890906148901888375555245713891439345637249325768603197526696929939369300263676405699375963634424433940183607320471530518180250270343623899689186617480545326033857129945985644312134804383550062855682050573827361687410290294915220789426661215085806934057159655077299620137213039841913276201400725908712478766222872610474468043159914022192574218822706780870662215907256811045696280481407093508195541740205807986402701310272318161130353909992587195809592232142230284790792527118186344027736409089370001896078090286733484329305876108690253325932081744492285417918090028948448404242361845055412938709143591185964203048645604288057891324989613047580841280206073711880579059873439036861125559717006604361711338507978105369153474269782372303082020501451135119311976882433547183005796962231576406600780522772675917180744677694095934382880587316520939330837380808828374586315119565547427821516622924834460979864985503256088826537224365559221473764842435981375912186290747645709981242603275605759811045628155760019907745533891005274552941215016674761023445771915609891883440883888155872263251369515488538614378578407788905882216834633090715497389451778049776879100807936320751716167602948261469318435551228192367400034297141108006300283308725934247639583972022275412106944760334211411502091899926258774031006106400045011709706421117982012295853285241739519113486473007461937337342536211565997661090717319888391158220149599551815225653646708838040498459088498047131994388971223308445394414574342795012563196553409504058369011330636887068441406759194104263468173359478102872204430170003224008476458329622229864651387467165902134550524360242999489636801563715555589338754220744440864787774671035855203903031930324342739321526497161798902720108873251634363654011283799612731348723315110521797739151546772248192537302773324932531935636329315698719844468332839482839202241615200513476853885013587672642065345557324342140849239395248377971636098726515696472094362139793785497130670307561799408427862227415454819671244432552759058601658155887380432392246713121915703813577037106621274299864684805213947904572910613411142308650603052060896404481201356991151764200160847129985105525049871072582917872762315718545000797988372997077676169806604529224584954633527509403569231898461882942110290596551977137579241887089128629770222645841197893525449819944461405727355579724801670716103792369086830085139204195594741414517728907027615084072225368673138210630815620341537110270596398222275066444506416555544365300107096826580257856712821591661930728689018166069117469350217800631124893910389095309729694104254608662412418971864236249435075013361500097133311768817873887429215787424953956625536437684569168951310600091688388069504216915644585140409385982700027026139192191857061338619766938881163210066026193656033281529710140420045711330686681163966039434153228875004543654018635782014291519310714005266245177724870721807527933517210853934893995467667052907061858781019125109189019460723929322754132281370861030237404805359999173111524783460510988327593387695824474446475138399080967715062650968267478802608981898379158459641132473481424240819925180688673816115451946901315532672245489283665756363491469800836910319962626529940601317529365698787137691046680240992718261090096875679279406896407100340621188617821742760659504587864245181055460979777133821327943304255659849665835154622752028084179331960297582716063279243311674005488507825743248311665236483912692398587165131635989415479162032899160046661373346234309358377442262316958620530739037350550797489903562678419788457597069853213049120579128982039744779616077118245358107103153685562879093166651411440105985360669654121734396740335306835549497672567142724557265197310281666292758709066223678829803714130220347582455086003999035199354496695100132225918948030407101164359167667050553649251584036188756094948425718293677019845905454969616039932004811424472853309666055528143176253121201307686009714290475128607440738475829447149971896163060631821705755937010714211341879557647278124222245409368026718579492165271957098668321053855103542822337967134901346949709266946085878226598324616436897135391093913269008786962036264131639865168363068713599017710524150879357943020312165283132574263685710368718332806496194025593628250322917628733470657960791115184761162061557001621295647406882573827125159268916765804397951825220803444115908553934475550117340506037016601837412639725050054488788611440861852737490844776019587933690877296450380373673443434978653986730778313204877720123744427397624575353882793582702993154640995619062172440430959952764673618213930848449818572118849101505145756194514145520970726387795170971925415243950469398366640111344236449473700281049295597434015516288209978392782277272371872987068604973426734919298356477257624866981379173508162013221867743692108154216626507717083194017600041623079709185454188723894909959522215155907319767172232826589942035098942506508619818849751575747870497832224212071497817897494890778126722323064861794628048276042912848863557359210022625199880182750836753469547951046314803318086526955008792529542954636911896749780307309703509188181768256463695112079375299546174990311414676428057684916797107906290358334258535207628637011665550458231979817938058193945659991909387469882738332235577882646681528385115847571009358347804112458135784315398947186888249523848771328276563945355646420730906309914377373143489865203043510218746606341634892097293612832133832002965966264562222182782674814926673573537715735642082095393369274397273703370533286192827555811777856092571309133109696566950359913555563739807856066870912546437441915974833373539454080828633236237123171917865482765861049786537382588132302515580819773641415293210925062469090096257034433026005549850272392468987627804625018822952242504233654384380779433165628542707213135235099178187778767327219740353019719500823596970390466549313946279904868850345008920896689118934222079956250022372129078492700050651215777738063878765148637844548635304906851156535468821849368332611878300843192050931869409647034862782901399653689783427933745774802156736965662676140036917956260999942271763424400364703460292800223467691368726870218150185989376629248028202792333887715542862024932510907090144817657566887266418674971041570500104694915957615119739842928785854892604442237170736618428709454253901213216383239389986305210490364443483337265566674105888541075001360944002933364800683064498103854080209875667388091057238133493438022190213026616275377575073167069842065397810819796095635151324394783587884564217947159632036631660943045860650712081669345379755275750000250804541145609925208379373389958789516579821253544094107591630607171167557701425908473339877655199014594528950315425541440462241007674779295128825744107037590399698386605638606347846768616927967676914816202444374651224873796370385628146091267593915647502065483067706449544511636039917326214621352202959562390231814870834009019695289429996282247064948000913109554484108760075684892351739523388639318186780469276322731576383483486556723157578187824678722768450406460722954336010924024566702080642651764423386826602975606244098692774250739194885737285857937223431938965488025368567611229859453492665436654486464805591017047320084183583760808853866502384258633730947033870640321236912888289680531405595640601151346775182375524754009574287576218788053674536454917293225424934212245369938174452031385240218773504886464043734902954257532490884829048923562738984321924700469909357478363787640757278011094541913026864279651768214688000467553840517395791732161450690416660775782909030857509438006183915572376863688331165458677360611231513636950329669487076318892376390092077245239430136794060236435768849560346098462733373596443672597394924015906248593849527802261371743386125012055488060346806636753612802066222336993320085473379281901506078055061697128115113681739826427067450108252150194923216405617962138446040591847741323043222094786380555887193662985786517718814504609921482756790513031925015488443784454543691543663244405534412044768284832373981385819281241295096079095729632075295662075607118320805681329193032374493257213782384802244713270121790935465716582897327259173044263870641717266448373136243248317735924471171081661924998407680584795444427419579522310410027548412570672314678166695641134618498543628317426073575130370279677389437932635166486810825615668781563346777172316709499686580244816820003919951874283609533920803668071632895363193316316818342136613212259461963368378354968497229413948817805853097911162239017665068663373798190471591443006328145395505676141018063994878208259615407627644018528279811583127490769079200292653156803568189285435325153872602366843697888288846262621233589868414049957647563553044519078244313763735856233807363201202095532014971223511231150279179707640100770309943562876731840898064941366031284196768994784957730929863899179536020400211753441408022225430947152294576580556054088845959047769575880053582323859802081226770546994277697205001779031624312119257516379142164530305908091024045063404461298533084548345802362902770776109305507571979603991887422354746417106866355174269238763384075473840744464287153408042483066615426841524032329811624061770060608828772262920202250889732678593475442949976203998075994650532696940133083075850795890212272256238382937983215177641628423668310629952188914370958768231805250565621139384246187271887537523883924972416534697901329670194423845784963817820631828980498144547733030391354830934720272692749013388580402532256238267176268687719725223378411133998302072053639849812299849175455025329530552844431215048440945450965255938508733300856577367796719172703434481565219530377376573231014145782677009707099044798763361995567115659816596588498198708963845977281095869745960649650100281871959298922234183272023090509374056620120201981885568596015743601533890740106789697338344530122396647413191093218881968837206745863668634833854021466630301833554247092611774461991978926976952066578463788626686310278244333590800855105782490379708156101561448379603991482062884663023639965488071851859030746895951682431959382894884636570694970778373984419190018216060000664826370350263653751775550485028678314805828849895628528129124774729884066052328394154524177518552772599642842526356098751438510666628820660309921603433719831951544288627530921694175827153275782215789901385007709821824532760300047681762862794917037258534519289066226216542123119380444988103858721342785551834280920930952648740721669016040200540727144834287275564461519174902657265172410768203090001737484330408713984558866348519078376814038128796461343938674748542997094968666879272942601228103523299372187892488487345024159437926347574656980743555017253216585176042398049151587373594654559141197735570648499409106472938307220288948752480246713319121574574195787374429158644920148048529427600272441986641848359973342769794790724786530567243901191004398784464493407448395213064501864739783359742910566186069595861286717581243553447701743193414580438316736353778408921034561968910219784567854871905247265177369723438581885541299377979425021510800566219663908809616663432345206034556623692052758554572385459681183343105630240003715201459273752255294357418818847712287461013638377814365056960042483373316513212665659317373361997278749621874309405107748923437771035251976230897829797453739092263872954207804942060974865168849639535113185185298789832594796512329126649365752735113032691134219521297270948647500606629033482656266432211096363960271145259740027858411960706295039196637766338757566327533254201451556127858182608071936655094436920347315536776002633291884679313755317886085878171790638573365704468020355004724905754478423812146909433634562055465290580481067043870290263807174970813655540490250563703058164780519146119484999458749139817578278914426058352225689320811118759345189351753662720283718949452914492724939308280813022471358142708787152731298944924623188173846643120117302535239996607898319349533997092297653169075575144381369708305258365343089749037664673283303135774371175561707361738901596894379865060365182480620842895704732061534194599758573274745495828872805951920678135242764744869712192669639073442563633933359281456806102196309401232290358431763166597347547717861978613646376692459900045863883358349274297389496790530998307527541302110552471932273406878767884835138064611691649790557208704240545408032092948458998501902770957907992064378011770572922747627905266461067541169386202613452260622847108974296846005116241484792835530506722790042628329071712278819460202376209251074267279255484019868828083519389742017179241206193289917602940107737155651542079036132018631030666159025994858264490658524205491636407178437711033009300229214582977288043026178539025842604082438154769724938964971958570780884558438084620536587240225174857286418505899349371568303430313074359389682267448100981746245517260079626903899540023753190734050785354807718019683189707950284644988194291307488560302400492490829394865303108969754257466422804510011266818260419659474916856226280272360048952169393984775630297472168245643154530926145133644599289495141278882195240635353148883202102340933804436602435245104549848785181296239093302670518337468626233670401700341042848159992486464539760351407380532757263400295273549399595810769578760609610528014056433998930761171221526352629304406957193228652911358794400338101821097057031888667651826791219432438394556182601808973246561476311438239818501540305294772405986548680899635574382612235477828538041764070400389445414771633137329154245125146859659234090098235528090015541491118226089539529866688327810963466585991267251821497427338788282438476183017010167703114306894139631647429788305884468852655623343089157396707034996830917039757222454496716981830774059249492494574837844987158829337247482305929638180590313439886444742386411060037160043361569378594362304635909907488041805327224939972934499245824791466060281851015480097094188490320321042131310684627576209726271192075818574389654654608528357366980845229290420728254190837151230319540205221269416873379544294522335144950406210597591685353170514001139634502167631498299036563392204226775017252276101185804799102588511093707184993223307488915847721301331366236347244979406022377940704796913942352609801658512968249186882983346302388530441761155758958700348642435557790514336596292843054518730957288503349741754503504079590830956043203837924856717831936640663034663012357211702651690244439497505958361958432487026716812714023042648662761013616773646748146664692782299296375706960733919642856766230386133947628169681021224682114645554170344975602058769149207027253924060301874679149326917040079185519428383788357517529505455227308447385826088447023972992528226170203264866549034882462176507432165004235623409689850356157109596149719607443406938450954650780231214273269197458691721891992225680816595726972144124505895741147084580815557114138616286741343747631897586535666871775866837713392625534426235235377390650461525413646390691216431322550663004883149604112833872757954839271754352233524769911266936886998155848599351046039003646917858758463045339645675695804364319340345237951396485910761668481752240811562556677713886878382340485429109085834654067663243805435680796832150272942804202021696298469405694240457952915365036582358585594630562413394951216215472197886440263625251412533723542734386650843960372620548576490957644361936131196072942522426000270699617373482603850400758662933955157054765981539271973200610636923365457978757473392050539279456323006790735816739520082117839979159326363856890625767299072263037859014323801324692165217706036700327678723247721938102771161790841135075561267076435952125919321596755687831001850910542668585717132538566254077889275696658089809295927207803110918425253760281306731676245862744314492557753594634250711983669841118511651152312280664904678506376793684820825127397679205808908487408592488761278535077986451984389852291571483257345201568544111526314892794528151444345547583036855666932901208505193106020554288545494192630628192652895253023547081706056959053941645740398308769519376798170206432240501912715744580865626264698880711479814459486427582080665025567967908973909115826608222900647791544328389364427500287005807859706284780270783868649736868085872106260990607857920486308734169425757919661905165676646749921739203391315899253942276694633213807450760161394277935295775366294929204898891681216212952089725005708927629778251822670453449160188876767511381282017478707592384925364226121284827844642256913485815885112907346048079936702009318961514282510142242903828158494286046901148303487165381868522975229508111815291500889323664974666577813632105278864208844734231383656933884162152596648139315004643094675231834251901342130933699476847498145173147024926688922203089436693536148487084398860199236012828441148981502776998827593712117985455312277362341836813998030276789583347148718129464096305182912432735653920164042499469285557862823560122553901729897567494673345340847856251554694638733321274558943694600623178934496242221728681854870785988542733268379679074200310622158589293079535589965450462490046195169216636825519916199903139495008524264585866589232490023580940401479260836828977137235524319206852699760293640320887881597554690682592818852940277290532490567261166837041236898686276915081832572076863223502151992799506022146160054982276771999751911351257633446069893790195571924691669450311332558322952132650877706812120597415603911476880633299540686946786388118181437329914802946676509659788992275769786112856731714471658775250385257981789391985998789554251714821464689826806401772003811624078753735603628276433773121286831729108630526994426075623930077785591174082424711035331327359459089329789163446577556780084146334119381529275024483905259263533029988293568805762620668508249587905893457475914363410426829322766656674782536119524497314654320561927322947002698828412460626337243283279200718821234764791067003972274947009604519192318424813295482432500780586016186906918676632725906707981069179976022332694213794537712124791541423044395142811183977263810873591227766725347728142743268868368143758685236635716701885167942484943491756639378053425245478296638420917580164178862219759432401971750219957273437683645737615233304652868188433213335027017475453690994411270074457473786440502575250540087896842078978483097612088897920153348108442194881684460280693984698434110433865570325291047196905171830285881642012718581062768679302695693425283080974996433223852052503053959850417881548126041530006139549779761342560806529773871555116456203515515193049710261580857595330357374764385286252474742106023938251519597669328640776686944788982024652634731966194509313811122177285722686340859634732419171214523693893684324785348852116621312038258133061708044639915408721928220080584085428840152543381424715080429817714992188228051775225233989312094245547193666511617191336999902898163018182114925594882667402426827925614222851460643442678259605136340069682287592407875207245287242336662090906597067851303727970247784238582938644414301266927499509424071408995250190327434782424588948138956463489104875224284383307778465014994227271208761379412440852527338379695356345943325553110102539546771467526195306088642680763765002411828655111630499184391499247934016740673053590378170108079915614648626044047727801078435100413200715897598146310907995082713616549735806420710297222256262039877415131309764665010435835902990978224989833326222851669431189275363856772733382980515445807916519941746638041416256867968783680671257620205056823242757781879576316466282542118234293761981755051113698951270108292863065310399703487704512563229770040621250158339184320555269743128502945929521634392700546399712900685011619260252270483473252357609120505499229100128825491228555142950388678208294491290563711463620004752710614829493812191897429007774450179212863080475925374583477954566690974821819243227788426864320960782468211072157238215935228393413599189666101994961110191769798422678503843877569337996194196265608943108153253915625054624358255826654379705051728251693054572383164246124062732332217706188290464719935576775427538660061950375539035526455530979589448773997527238334757186508095738016676695714013996482384446185191076429333716492955059283847605186660379031790070420907673511107390732855220182075608612690990924028890927244295921869372980383705390511433085660540897811150924142809426005937496829528252812446605730739667297967602940078913593941451195899250128776169255242486682166482998044419291946897882541084383321639115772020943537362078565744687083643199312701726407590994054056564359140776249286302880737051513204231507095523785201356479246422701334587068150346522184663617831794522434255725778597480799638653397940394353600148021185029393103335857446265168057877597501649172553671783425640017747874696537463976200141996243841647079805483356143524862022952184630730349600470231061104939443258562185083672092083622674729235628275241047959266306722983362077670458950431467827937053884331713413121369374407796863634841178468637094946124871677054252201722188368177450212413659695789090266310864481296350986044819409891679313938210598358130951419773664780515095701562780244796927949058684070693920836920613564240536520804382540525458500835365417206893295639704128701637748769250338233084059693224653984015751029410005892132985475950352852768046134934014227980957501324513816673458107129023864876595325244109003535642606762046765413471811944892880239029872898641737029098366910063552244324766675768280404077453153432691072563468795725751647762336447698361509208937610182790429486064849165034762843914206453676466727145440902028624410832753444057290542290241731135535443399197409449999994653776012070949858998600786262604453753258134769525904419963928809534326259967015738843574403491529700838375732786325633943059024980347590429912683016363826998651736587000033359503422610151706435605245541801847157342291917453709058154879661233007655399272030436716572213722351410323614980547471169928934659629776284278400978479115077055345889680472036771485299299753202100070000404969850639569242978694438316838994355037888470770779718298911094046717224267025091738030576314122085522315778496779090714214104188873197450465247251219144724080035509480022474848534512223562351716995541049555728615140885719867922358500483728498025764475168181249528929194000064199040794411008999067151604764982386774341649218066098247103900478828541501190255812859817062223644602822224674557438920012179842248807468045144509552862490927533067779689176507366310724529158057242912054055863808696301161604126516794844719033839254023580271612043731734526249371425639996723376115200208171174621129765258817934371825991577391442421676403127707395798916753299543768353007398082060272548524332673646741786287772345548097666188046762041314008456780589681918546971888201901805575433508143391228289279977208509033700626693297577350916347799774805243766194720622127460231946647581822204074045584780201987550872534424688159922732999154882131370485459786839777901353774014191925844651167776393934570980614012484700082078529297774471561847146038766261978671799772984933418387109651358093973786815581053989736216230649005373822474426452240191786430278973090433570233845248186934228113374053157330473488580967262272078304243432182557404480762638599891256626249693781762781103352093336740291606530616551343211695518039724359524928790654241331580964886679857484855379973630284903219626463982116434678671711343087938674620082032860217200940933354763383645985467866151738560730229682364553961648543173690092869063265514571794778896770237750450148469746944082060714198225828531514971536239359340763298781027338823890280720496635348912082915026457588812756273562737563836017287040420820359879394596563968561918097924209811682516518624185607722700184285944921235195218026894651379477138159828517240159658554370481891606397473261663878826001323504120875269484198120535537954007350058202480417826930813617260282193482671335317689929536680601725500851643025089826837392494968796172529120354134234445261625513904427032398616991578557041799240768038110492115747123359204620608631326652411496487857949301193540822744432928142705732638595051912820856214310914163750626167055421473033796761951163836012581798770978026080884552186514588001190940731854932598662066436300247938311973653221234683025890900009462802191515716998883993747790553885635981542325583393794039286639217784234731636044010345541130493128923319554493444581625339318319589649065392920042644152717098161536902699445710066702193949492082312563432444318104377819581660932448663828790014705579380637064466028466007063924930623523603886253348717904437317862175531330944746905385190779512224319456490557883349100053306183995071627467278338378963498370097650524190779747209496225002380642436772937138559097767346268801309780004828519697276581259272186090560742249910349134464564573469065491424749503164871335116329800946365442946542155942434123801160013953746437416646110403015351368849198797610704532653521034174116502200932628358725158197116620978141581703552501731176027903620181778953792436092503209550018327448786542219945584225434399199038711695702205368051960293150188307277039840877144926603519632512987631358077905674174950032770631393588089780127296760546779248415801951792830574256013044696177832239883289217253622719066376816282965165371374395577848589613740339112287453295357151137694895848159586056612187929041912608000149941925962963283284957249970014064332657851493960315357257048648545304211444419939928605024040615179729856046802930825454957246081880000070461617119842519257250606121333146256034075207962659280003350868634454543404117111026174550466051135705500550373100009066985346924373923015972024219616834917026859526025583055606027837621043935953437785618420486911597086744519008258348723963679044171743351707436313103646942046442855732865377171774869600907140477066212309474715415644297647047760573366377918278554092646290938904350610808284566737301291837004547732797331225876475503989306683900397873112904981635108668250441163857138471140496817107528711402370314933636560801871905628729473624501770603881742965478120000657020020832204029995103665231333320057507799159277049355074958822339116547719883280617895113170716340062522212775754197549117405966095218874938590730405566999025661917782271948404596205535393691738142101389208488984885355221699142443339835740843282477699372469605448791763764727038435787287484858887087808670110378636339147531593291757244838936828880907084647029589225870532731029579704330311271532383576735356500323494975515482789397293531726380113534194776371876552529694518514331810797442051515156558021849737124714358510917729957301613549071037236787582224443446422877728352580787530606969563219988805566426604789846646323351033412743487058338229763512808446532873655236492728796811715662161159226830725394943367652040838962291230346798881517793244619001020137942730525207078974009738647358080547765649106392782609768568409455716672117886259740310118776068090825446680275715084238095048669050380781207420542749940459071904306655406555026340453307848579821465190141701304698951842860899326021440672374541748032811783067425343922552134865430145683766600914550406447778915666816408049597948589389102356692496832391880215809323018840594733712297154372044706282507695110227640170187732654272405566341429507040936963472212110799010815094477957436586455633606784145517494301931876407439681265632129280339510378175312084544328367500281624390834667935151349697442878603460193483288983324819869236770692177345215368158324449087789535731092928775016380663051719744554558286286189428989434177902002990594310263730477931232941038976522523778490117117316759227092218743433461426173989916487018657840781123903572330867920459821118851139753618613646380235177889515084268581559996977089275568733098055164779314090114781289583163767173798341299675151707420077437913601981793229992413245156066392438592726265208695586072517069897965118915934822110357684128428210309614772913381821455612690241251637720224873391827966802596318305875348714217832685697986049776668356314031705776163882086051957184363845585127737853189553483693197868897273686464076084228546642649377634430997209355662566792139374622013080419277290142601515901298725570506438664716451611530011510081551221178056729041332484900418799139231900991543496721292453420736546050077986549903147699551149023366086497439752970227189591071092225740827909814987420321490565518913840935671174971267645565742186835327670728954527910189574297745159163419567900604574557196147512444016815366910030625714447312578157041151976410469778268860095189687339448868108203846508574956661993427504876258984877681421058285141951937781893297115099114401781734755741391404281808166547994525806799048424516764374332214637888897759527204053413859025126356575670167860909072959244582706250464326485958569111765386660010832497566135638434557496716794544000462732822446586108436596587820257419503453566877742158576391863831020288157330394185234772166812856271678043978712125898392848679595986470801995109687521849676955999060434354054565321841707475687062881030179358966152887901708496614150730008097774860348673498389635279809156207946592885631860446682690549213894330851942217893152747491537789629045545462265886499019170716272748930136784218225058019483794208086774961446371564522332569841609231383503268016048017734417071380638672857537965332209134815115707188067691507415218097534266564219086413137432857392140448517297596857919671779093929683545002885833396575406473975885171228025645907932421935492251071787743899802939188464222245038241058772171478356447573661815718177403807477350597925384553277296816193292204558507041991875758127548909384453227294099675974695157585407063373326427862330323307829855596742855413019789949017852509627492772719460405316449328971485739937657561762256293494944970882578458368325824486123871669034042462404367367757752021030346490492731650635257538796825185468089786565952880218689530489008956691163417417696194456428389189080769329926713220821287168141214838169747193665588189579733166958835903221928124462344316749863820520343931106248140415852274168653435787473158476510566419196543931069786979750514704821744773510912671077897890810920721359218267761775188101225733985670739848779301387202362884037342023400758783359553091336158686153228419222571188786303222304536830277728418381681310019187477200048926755237378944836659897843229959652747145788241060454781781708290694486738286753169096188861900128395269980852370747824221525784609998683446452233836873462250663949108578801103967720078310149875608008708782700941735050899333930104147456422947170934253372240845011719036078025705516656019596766131137329745688730085645034896232537302957266443476325849687083885902144104133873032395602834659600345648976571334608404377755437006914936171295994135109796724171729696321592990753879092337848664626410959265399980781667420427712333419653019017038728186257404866289632210454428426235939361438591894256753359052055424806198235242796606660742869571481164082688269511857392229479677889764737992961847489037066384819436103997324535771109175765965767503789210760027505257825840428792539206917041115629681585301568470685170672744153602574171140327369779278718586014019001990966216015916139966467083591761528351518126852695015358615441726113723674415623680489497221705645138260763363553546897015465374586046758252137084343852833348446582970993930178447306290663903772764359935060619993750219913690110271243264472495445362365058215043447876748602901529289965770547544216963000143054324075831609038336718165898057754367071693053274874233206982697016878352884850861999329736279511736658609191082057545694001352808366530941093353938771344965849639472858614187992771694055491747242568870290341149153231353968551317361634731156460916148293549944027737986441788974675909673576746612592045276328779519545639077716672124347967508941066456291592599464644134060427611915856382968629794677668744002731692107171560891266791964556521503667198012676658709907429662133218014458394557486195596524946576362847222973053857769365179058439221620555486808853736771228325187180181444624540424510721168909488192454475635134306980809265878506480253701116037506867394213687329154564129856966628095604984018696309670276348292759290726330917377368230810639933653505531858559254714006469721685265585786041699550411000781309144040987519042396198631488622678338237487795719876820367310830712593768945539103700638503331551362662206090144357072386102927467449639634261812738611944446117445602077122846461365382288642983971561077586196599533414253947574064714388779572562015855156737883772440738799619901417731653196495645201770808810713291519968678376034674047375000594563910167133920840738459018560163833294631865106146355288957467623834467402784030908506551248742274604666019354384477324849809189100077789088434364606061844422777099718176094346360667180324808488530851642814603750063670967920011819510280871402463178121631079442453291131306717328004152605936168524872176697716949088984703992461349559529728154660788807459609031624038041940239787556480196322462113892235325588722889516654248651713747945054929808701139774860896099360737017507328524475062059500968274744994718043764443116661966601607505546382238047784172051152852894130385471821714181796660819921796966805706714983175897707711537521564697428216705824341974463399437661059853074958998597130739165227077027917907469908303906158979355313433195249901084193011813071823018826851625329746241503015784536807233818541922288173156408211075188969988708657372399234820988509494401562897440524686545497764005372026515674758219580959595020989701281752358581086473127664147184236516808944326160152412808014433461014144433689797453198658189870664038472128958606099374845582466302698777657950344298804623517580252854901312703780057197083011666466807303396958858704147061978857757879751568786302049446693081447491155985536507452203514915360560562543265188052175368324950858993461811138398377427216878718951294326705246246045533442701392847152338227776053156354320153541453869140681729438793980607392350144950396984679893883274829092318347835189412618451004215826496056182676618570269451447312795666944659246886210280888558126392013526845884878432942307198624042373713542296216085720116427464531128859244302745776536855465339674855034140943643249994051500130085440565688416644895218154283563984244969953245492963603795537393456566381892937899855702035461310414880677086368810996655187155709187989329920830719023900998822086049653934148304144780408403594123839287323526935717565368306253536143914631064552539913073512861142769639125266877457658682725481765082966463789398423405039901799010606464449031496683278151821490041060520042229841120421324881743329685461489767043948511207338744262438015542013866469055430532484345017527593753210186230444792451346150142544868610030592620409826896812546113095045078673403771131004435298955338774545083645778959095747178316866941578263333503951953485947929959603684439826342893357613409317368423814965060734509124718684222449465572177571796706579428169890593367031361597433738687752250056203419479815935145608892329958532277906141989743480979508635467669609875216959261637658863381436334516232064987370459632895887004574958767983121017530132851028299418420209989287795506823442256772437406197922267315516398740914710902475343277740587852143974680616636806752598874270643628792665426164542979037577308612473763286694861901853231660360803633715232227364124898123080730109849013475233254081696598954904242618171094777924197280149766718082552178855477952332086915854892678631558379435804323826983747083727886874937688896219025426281666330386721448053396599710378985219969131791477794573303163161371166712769761469462646329289357358075351612713245021694546003840191003429417895751644311438331084551932278118874169006257797608744341059660948978774564920516226969213432887429123130610948969492885836768057053997504264668837353468288774987495286585651697523448369510669529025419193645679396668282565012430000142118245739736953691620708833727259304894978624444030561892067439317094896784752797395655980294163021736427562846597600570910427985682104129603367630174109308186429214256943536297627574058796994945126056627508152968428235838326882559834009028119794631922488105030955115974073939323863507952514170784129518685357895547751597886634140986817823543659331200231221344372256581046554974477227476247292981890440058911728027738279275358572363742240644070595794823134432322975097587599010702487214354362347496573632806342782541743042332631094435234086337045303701745137971780998071497712520140222417582314894075789425852086973695494089752284822539336470363371801943376434441891992343393785901968089765682352046194734044581893758281243136338242993354221152881362799822085922752606396116302216955970917504957180087982927978446846973941970100471168663744769482693644299808816895933348425379493425342979330960923348440663909122908605745349072583801173211740736897189800791783011895172498773793926727104185809191644188443042307789011932752135738693381074931205059866448885123519968866551435671128363831055574178667001494492715038596284670805033764890655970761037317732967261666316987001475345387071572274130386418737671188404273764711562227580989045858978849012534731026829883459557385301681865614870517285486356602290571721462770413509245804021349061401252953425021900682112464013569371080769178854926151042709700802089846900600092515994546837892309885370125431812359358119086913724979368337996893683635086963496012606728591418889999537735603437248617998761173835056793786008625560612758773503146272049678510898818929662145222374000779918728667190355030682342405769429448312868049418323072329260606761611726495927317010755521311536528302138779292732419816965167136197966200098816871223234212753676617119834991555325652859654481383801434159223930501623183180913486427972461209240919634539252341101012602348964449239876691283778112076376052832120817901696473700509619397694987327137039018296339742578670934654615007236971586755158792435943448054191755025941214353841950134564254749970199090700513110728388064542010516838135432612488474095930868792416336216983062341805261562219507775623588272171054422586322581260234936474610506402577305701470426844999185692108094198454789753195390743460909568982487612987581579757444290585033710672307567427498070797889854134179066077604677339028460295762268057347983604023663218396593249397860645008949139037223728595798435436520109595249115127962912880533188124342852949883326694980524079323138249900259933521217445621514718626329742132005147759719569322471770283607670607127800423417123423129900080308044479215003020327801384564772759136011009313630751764543840488950701760418291080755479958034165262181331451552178663083883201844258519612721937052261977952842398798022129156562313202964189171177972264739562675673191578281117097907813632235789576874511917889440296883812692734059121068451255690430145555447495957969340668459902493215834660546960370043966672447809129895809953528367232782202565404159364637979651650740151180666293599521355872949822795405742111981349898891459897515323687390948298506343837451111939063835825645631619551418383834204975222741384315033667397735402344992016004086890079071008220787564215639475617559136027027184500049716680160204516237566346833367320854701508463434165899944039693895807717492441729586962106010144292936391775015038162598333965879509115776103323026294155310890395176697594268043917336348651931855661993218051449423109945243711692803897212870914585652610351461249355001942716358088880848319634401871554842657420647383158126893162991943846855806453309258043299462113153797753036560447321641145956026934543297896115972240046104189781177618314139265471017412726753837795069207717026748422445604953304277210735815096307647016387175361066046531371888516458006876936792379749110393175264354142910506286425513597556586894053743936484363694053897415682191451386574897307868949587850863967811362990880855634545621135684182628426323302829776955373092299956793724861452592273343547701525864839283692970442048106631664828805223060374801472593284190002550205206763590988819993420740250725991612307053028836023850455677893110865485209284386776963217519328419201914568197880510502482210056034138625780006262723945392215049226756392207129327490653550319163236136538375683189890366942393685660054031246220193886547153387051254154829502411220593883092507489021637105000360396611149631928774809210841141951953190762964111500921510296476967960599775604006180530505292748501796233541833339378949544304466209564101210060241135339489104997390221194078056840523025685232457497992094515032256865642689414854593742247491326932093247644279114916126287251057394198227993795726478756224379719927524936714431244045153251449194347531944881081560609713226822344435132465509506382251137860137311621470615692569026334331766678507123975162123821085793906790379535146291850411524766161699154407326486456699086138283942189244052451903403170913054130758299405790995427178825946406367501132442001523666800329167585748766510761256258525826860451776971729571881828247133356147922386062563329196661874454719605072556906266256016363173449723777841550661761691474613945436302509620190393177393867827371435396131603791602508733834725709503077574671744245524692879834551124730322213364092692518478260775038689539672973971306202248053483761632144756268127306294100925856787768005829540610440500946969076207363551137231880541357058582978381899693338646878055915139550107019547057985319432701396897599954109655785584448465379596069015317735840830620098266162887394378703028999155643013502465761121161511183999586461364454828038538433984839989645172796684401788587223690172060033562025327076881713261084891137422119231333370465742801642351394907729351547842520731632853226434638572965126738275271932528578045996297769738365207806718898063301399554072522497914915676907506757467451995408643670201456979309858550586636433430891477989557705415480326841255356022213288637111375549093211367880705342844655814530919920409952009917670471681448333007164241567934802268725183477548536114834966365128423239459160170131319271411568998616320203529483949674735110569684238340744487704324137949055668562639607773705134626549273189640846675230396454028267805173612963602884578442567107343182605482359227977599007352838731167129651925116995629291273824197316587958158771352565501912733734741510030378459341408387271040616974189282209244007892585839121635348813948279036872822614795552840599945919965955427160448190611526208359889735718559971937167842547640258666078827235087471618289511857978983007410376493587628636523319009331681425637137660980079906331405644169653894744413911135231398968759083901424833834605367186826015716584708713825958902518948446504106916112516936079906893750160642521432405555260069063752251460543267878813047330393069032905408957392736695472207454946894194249932682120400081477525703284464739533875437984930215181291825045610084696210460623309646014196793053354670487812284598238626318765962110031253492740276651047427638404405518784861417878922803771923631346620094178652710744498017555888515421927834667232709634726953815975355449614921491222304525503294091994461733975108252560967344790217304070377285567493032407635608449749871683620330449278197501295326387721712923023341934785192504946693443683362796898903213390263889971018251408413167841292816884838420883988922363322341482898275956681125019050268845233035143638413682978439503467754953633536183661283553285670395494056518750370413313057737767896993631455053498247757160375691708017941433678243537153460807611783623259257231257916066568868675046279401220756696640741026753581753968568817914721882761315794546903973952526220985534509170992338950282147205972178540601783076976336556485226200857379930071791796038392240294256238635730016058092968415925980939246263134137263376181092147471587055307251652893620198910266146027231633832746519054225216103420629762244316041801619248251178898360446436255298458796175603390363795120400374474805476105634390122396171882681888258755468478114625453927921572979394025188807222892807808129562592977573455524734776731536074706415556947804621624011245553831487052950873347677358492486467815977663183493256172514292385805441979082104047382013975866444773398380289030952371877523325615540224383823324426900081948618452724353080752887987831114820009488299711984568135908399106364795493360174281631652814049192739028933311612848055971820525965916060654801488565544760081550171589365257251403427587810065056424632666414955627490513196365112299830562945387670531349218096966614684464465688160633961929702354984151687774393192495601633549136169346748866040269160532670645992263405571767893317389104604265733755747740906104346943334982349911234561645225145195691907391940572151331227650733787825657698707078841326612805417257107386832099643745833064638912037128215575008542799482543031781980439539771034425950822030563338234795279145456697941741967222358597500442863599276630153554760468323829496713274293830290805988666691509806597817016061118172376507134016967509368894709108796130313803861837115243598024502497353345367295568348918339515106685656044742679201196790062584364441194013583445457579087242204655078457406934665034734697323800312720243511526223543695475018559881960451476601625065495814405463109461604126077480543233087171038555762675928850226433629540572780496792880489023065629180886327510996255941527570734603175573098445893023783071030883576326879362190759824308665920757785544522377564032983904705375683296194859318119014917522504131563941305360819317108299707616218620931669465172638235602694459900195443585595764406575498104779392108429952138896072670134233623689396926744926353331015753482437136700752316388669097568427224912078310160600759462634845350176251246274241495521588513614347487260702659382594083113603056220884247929592498961611354555741136524728988213630739804545671978354495528561839733451146983662339804059405064381512277953058955652908233413372997650747959571963181755028336787628179919658224651848481612478148764868956913255516485157851102707504472534109558912240311526027857504808007054219717908940647885634405206055316677179264096016841083828357088204938185167084101003517282403859823701498450808947862162357873370756423649386822889916492181740653977033541479438662181121182650234892902108754169225000184862330632962983989945584107209185822772087675408231890879754079396783909858455575847091728735907577819029131596997487702766022163644708442618200208912948233126056567836739614017386624674767553970169315136116687132473927291918308892717086803032208896402959382943259221821690542916510697485238035246669949981560225136497149261137288487417061526469588539619290306618559660363714047147957570432808481008991558301648861217716380982755440880549585723261734543112229205360520601759624699019788244476457088230550537890234845961773580783066864196266660458100982836201392581597915805348727000616397744430936218063912082701073415806384317753344212297323424949647945065913664998508845014844061972252879914078878578809175514407681917558766111364624227073343096726343030993083999775892226191766259794496850102389597877226640765587795387972368574759030974317928253681008309924466698092652956696584704661402847517872730350586574327385932377335120089982808964792634823748593868325757815402555448605724497649583692890033842424981098736101036251744090567992308077670535510927438346017680568115031035188941081963099339805484722641308414953871073045069295081082094126979652084925121878873678373606533745995198313108671398984872724072804746004923320159359986574393203356889688570852317509641164055289362740397293654737440642228222236282198186330682457783964819631169271254897580423344678020255425964499065799988412208050673270210259520957629623540207364500121911117666861648867093032290214821264556792978044998187014716310297713047721462695459543425344501094353617505341086936894128321584138055794204517166044738181072711783373494042615186103000687528448527462446925814535579438503513692638058879629360892848809482753396499997069976888476219436991047720579961144277016074214684088624280936207167010071217388185439409832008521249301532477315094819690846722718955779821403334076956964265627432993798185122557984799685202849546960424853474796671569680097556227252610295492285266805414800316007567054874021518400021523437190980681781116173549963066418935148340979916791777708821168908679932418066565992029719798674982219861996543805483712932479234673202779585524936236247712226008133395397732452833955025784081091865256766011771216839327293278796986984765892088692138441429627828139837084215675183673025015981723656469237673774815953271537710009899916016527306860149966431028213707355214631832399582008972626835865129446271842929227224520644878822011258095454396449130837223164181751396756711069525725786216524859023898377126910402261698014925777732563923892532605525693448071871060078304309402983500561908073303153256901863851002846276733743137735117578503526958029487840123483441402929777855376651819016383776414289908495190521582497881722793310658485913373845975230635963836405816916926382450652836561493929164694516288137173667426044601025563298030207692421529722582396349587000929281060127871650524102383630118216138891388125815604731376948752168050097108338127939190892096318718292635023175347457258636398148112710597600597527132861225027934911205010213138057587150457046067545993328100049182247647315911133238193099938226237082379192478634055449995554591841326206971363823911243781379375522720849819230542071511743776164012090165353824952797746345692278538923071370265412683021286258970775617578931522314264867724873770299956575516671559144487247497287853139506317839959627745718108249323577463562228895721761333699793716319809727409115151954601473956148019018583441723348923436242587901926065047379953221787462537535900705926654141300411127321633640011538281261562138227924560450754241812771693816546431194999445180504477646999968766801013718759835754099223614468560887409206682618453010641429519381586631253480112274018426381355632359053133102829098620514068872456442644214812851755478798435340739363772270842232442924686770432588114327237396296178165124162636745669726865445660291870440861819788643263075937276440922267310508155292906832020318617197229591013059872764547282997456274665072914553793819014443379075092987952880050441814124529518167440328171718204479515875109459755596893112614981501846972007955134496319505797410707454000073115982077349738963486163683507956529363543592521353981699865033910726757694438652554920252833276932504175388889818576825202191681036580222884876314541822096355611510933821365844750993728983157741598418058041626946386956661122735405655630009095495881723889935035108627490155253825305977397176525616507623353319685822724492261195693220794198337619064220497472612841245031455152084440148867061435698371030607731447334745392221899087030757892926862370040489808398720182818352148105057773452381586871870828306121179396669957592378848373563548765184417971668205009486929585488849068190035342297750198516089729195572104349297918783629031439255652521224165016138749296898818087379336280887174821761603287752054857811212112182397158350567452767003305599920802300268778083881750280992987883520066447289912849576044114577726981551370799016469358018984187488601948768913285403199537671951602852950535852960610352973918773595989508556461063978113955288850301114536371681235412838121723907951247565320494070359456543892317837678108685043552294621886938444826966645434355946755520797097739324645621061864264035941318614612559322588148448062525723674466363998966765812439332488978583317408317968184445853262410809224167362119692330825173224716232256324151696714270814019514705969312612004023909521584983766158223174824377448750153992351726780491809093324510814341789026883610409350119261951584063069714762688382514043098421459660140263102379372091831436657842346775652360834370815186199505866771490909080282649078840541512118653984971458466406694194408471945525999837478099870449304443873005319496376019031438439867247282628619164183355556995690175060890771094388439017973178385101254828608832338090621123955987555039679576612282083944761149762696469684422154053056515641987177061660509718577706182495077559943818919375234518153495570254557599733346340633446978584883159539468156903633448910012331053030635148434625474985557254463163016465951204654357116884273635466917409861321557972732981830503074396921156414861958069367144737721374607608055163495058424028279764975688914188995162268060679765897060835249960647826299017070690386132154635236511975816467126896349363603121270592783661140637841387786136951678450220711717571503372626344987680600062567135000691141733503582978173905893193611567988174983211196427386577210014746411639445776603655152023034674391933791634996628511805359300190576848276098978766892862332969321787015481712913018358153220415154396563966886541384373807090570257945114433804196457441059514446087893159498291203397396956008535120793365921596977923897518770072597057728631444311301729731646045135789944403759774701156981245233835253036284192679260157791433777847676830604572980817088469360541718968761654503257171843344349670457368732569182971674285406032565297249492967469056847046339096384036066942412013522957847179533466375790378978966189649627579862490674440664067436028879583509148753733628336035933814156315356283237312104215824713943589247496545074017805559802346477798981786690000964453700895467997828177281293424322253946403664997769758447375473517218616949561995480574195718181159012328707453929511521679332113500635075440552401865671660551947408523508337230517056378928588923542609530696707402474248218238116604029522924462377752496700167116265697764185031698299101049387823230062217442125573237186758587865628748332026723388599186417432258185730229689403724970157170169129982185622341320939437244088783338873776484760025060333592923665801335631569082827741189763357415838859840390914915891252052873732757907286350697534543505584291366827080834946385488252124762417519549361872829435460449096450267261831234693834255753447913531387499782522732242220869842390987523978927152557377807475474947287267752281824618127029045897958167936448182019727301774712803166297541919646807208366950301880258464108270725370722813833831224274391782344799014355134093230969520109517898622307347547448816293998301551862340917420218796563792708075406851516212457267992928560137167631424137365078425378596709191702457333651050328108886868471845985835768478857271615178866113177404328871525560722464025168591782190462847551042922912491733502785504848925541121784149111399404013515099338966389161406760570076110795798274081654749647800103950191370373290229971073810709702979224676260582966014863683046480848072015986272716049876959641240031372249815133431733006893822298243430822493866044042968111611573383301453673648225458252164060975584270328528946024268367581370383486214591622848430543393983610177885541157024087130285576806796557677152268129680777545458999659481086783089545572623808330658677147792870336742850958817863114921877436657653613644288854511615455726746691980557774041046921967762592036379136690839353123664677598214544872582765853620019687603321985405337892165876004301223811152382323938746092024163390565436901396260937318446429770315085254250243961848941163448846475117370118803409670098438013061340787299543689844992970617064487835665156786198440164673632572031086255959240862768177932622148938991531547134521987097859878864833442229787769352073859523685069990350655225478443203226381338137071196035023728840700609839191638351484742045629211731819532320201584448335852644387899623371292045393495123146745508428184980519249603772586570490321190872323401697611062716475957068295164423015767016374452587021375930839553391456813643712699134139583078327795961206663473037254951154485595913443505277782869517051464343164313649919960624038057442047497699835517079113075033122639314800452606450506225213476919743452846654121211060083682368913305127284843378273021187935769035153543464280017388749669479661809091160891811767136891979062668305884629839902863279760499510851544693458196992422183332640404671870654433953715010590195513462085808641903838470167613672986563876467558090295437146839422059504658814995845453570228460174213462923414430882075454968330730233178852606081012967095770365200390729658027625484208246906751390080417759393840515897495176028038745081879448404378735268728723076355676684477501852752183338091181970487854760400238318690583720926463314222731885899919662006691571347748798848378723697862137504230666996951098078386874964428227222961236364511429783576091263748888525500078346168252665108532845040306094462107144705318053900604802295864462248716371880490150475268160443177216673204867426758800221964605838471874041634296889185548347426689081660569182912172531884513463317616590269118685501127800900834212221897999109616163454776311037614452253682013393896481392039659133640723987422709629049548295977423201604879996487860032228074549975880616855823780769441934599861831220795822428447637339449717354784341325956650738236736975787014648563860950587385773067663023491644556538408392053514259941274508247057250595008768934670835084196583056805463549287743918130277022823029092103414719271525463924001268710361210398036301093120311146205355726973327245500875614314099835089848949862633983148310292799478926463757447479308558809600429491841437078280871152333080721694001067418746505578884249408956040170769766891622324999157494389838358191308504148110193198508001320359992064597267964394508496540878677622315106282811554152184091653996938502313933892681434435482433957990740419964249360951844203848757790432351784108385619466347232010242437276796763763036206507390575510195011132051247139880744181912122565525257470515977503522619753255558127232058134326351270313029245440615175838750524070712862614774510649301673136677782515340776007161638360681707973341383265628207962443013827389880103697009763867042101177494127951203418444415907205351811881285928919064798608004524678466156562361250654027632567488469299800430644056284340787150053427093595123687715333438810614227138158914278020911339959570350371044110741865332362845607516089173997544175826532064154692171060045962525247381206277745884502920714648168837849271094863870271448597842624464090167578770413267641645410318556233113865356389910139070674598652637489212775800953462511817487852116607215091098149535177984971391858853110677264099324496899231322962775786793551115218732970872326926430697048002589356976594217559885461001139028956032567612356876901624241680414602536908194111916818362602009284377939126720020347705898555798813448414858221214351406276449049145977277557327652138691646128733408107659408392571414780198062387991112773722249242647776203361982544704198047733590759790520982141966726847199007193337761436328594700467863545557678098751213129477893572216678835396214064436805527177807093142326872470953107395996417584625275635377505055353483565047018634586701359472251094426683103479871695291624367472351676341488328579051505035841520998549122567453002729643009891323180889518848612020339960033823082239352889524459767564505983754614358839720758638859612583130395217840272527745601705459980734461166377064981735858812547897064482891922638906368102452468962820466081826675627362588562587657592408339345670232283012425350712344080363992715108449278561085837251068728692442913283812565647858822136974139698426385938656100508191160224096549501491760575538699687338788195310687645620790945829349343232185330772817888743662443406955939170811483490269982430254385581739783330546819009374103359467042888542886600418795746283234905822628835680207399225060059277595142160666308623002495709257777208333986080592528543793231267163236095501564015256712480757437907608088905251053491170294879303414491280875353771026629401633746358048480430047992010318140699996616616020757515434334916590446903040287224222082263277495137724520940543220940462006564347692334706776522019722616672225015578922019434640750691062816283831030743376998682809131363394489599685786090149570438154421762995997201596445104843469500907284726195169579441917297618161677993585583581232626098444462481961430192026962834962541668037438640209725684261758838709164828362113209881185688576403300389644158869037104098624307364990457600874307132235190127574882855887299681884142955689249213029044784911720671985507748462930267459855402299257404970552844854415328001727525696768878182918562357838394662103092896954133582649942316310011247059159911809804560753372024237980003642117336612036209983687698383669880331365537488240419406113639840275036383832954700474346714827999815813101693761858212421444542203717951487210607027131627803476962746805191144575963242109967868973451250885938466754153806273629276918003907674649681361920168534889110422653255422434756441837842778273886807927577150553933888319164931374224729781131806505143297261428905709719114168912855813513162954663047715695244326098170910398369158708740845534815707362144644986771951183306858453355235325777187222970705505607290440893396895586374557305268333834416309499113304271787047925667236604347210630696186309512527634739708890865607357303592784419532607394293214250244173877855492957461287571708488581654602343806031761901598845495860192321917383890357699016332772051743169716164681344296992763460581240998650208874879997664543571791256644241197447704748039634008353906414268631288348231427439022585643576687202261192610684178714103120207837909536620095390684468083025058078919068073685445965510871315372683547041646242678351434968271476280597463416244474056676445003547026905679661869625947413485537292714788897391207787990954046579811040717594961484016483196859907062838438397160696422463532981531008595436908707579260400008613685250719148813571046902165557783460237675087230349351827063937382558575600757347867268137071666156102759859461574814526454106269501766330729208624570792143098809184108958247324413423125955145735103226001969417591995628301353219046801437273319776880709262467482980221728135277494000598598290278232790693585542127207286100510563431660726535537188225851474285587012897731823506345183727763410526122806079288280192874750779108833753610821511824755307054843902446274672379715747310388368791180855791878976157609282132903879404558145847413872405966881920613412182639887382125173028808161021819223337358883063672406092857082510709974566747587236626510162207386410308821600704768769970666383397641929565085584211037872478523485367024753141368389319221184376245113787500334240929681006469744579706930968924337183005704748070584035228850074863741811213298890204994133012284196605097881564795765274334101766970199269585255331323566553127211260322004808470658962019079714100821158208418780128735184083929693384675611054883597259797128069979683871063222084009392391625595241062984144490450907002452769566326179306635461300198495110657539559446489597557636339793981618621026801661065230923523967391024454591264426145161282703916555052525795326726339393228621216875551108956462839682773999313417200304844290062107520139131496585852195985115583983197008681265561717503863107715646190279030104195128225412085661230430432050001550356848388852601105397607940733929330156828168051613983371899614317873032578965350378443445762323241260028469884693255956581182183499323099565781570000133220831495922305097472737646390574502438243925348340860549915127938332396473461164069913411446261681799201594309577784373503047030164574724245911166449378616859615270788227281322830734237447236415228584715579721639461492827474404557833389416941397122285410261311628659712799925415555162225964652980788904074743796583382717362179670878162866047535579148380857085129301389869750121667981694134292717976898788875773933798728521577095626427501482211882174578515104334983890420906397274345436740385109381214518501109534526082162928634916435161465099368145000440502667323707703312990469286768222955098790320985829167039265651275987167154582719480886775693407577631572285015712262141248464270495083317260093428512574681793525810610925630760896946810977863874442349156823724821728542618869873379009524235747075934596775283806653688757462479177781383953580264455382879536636467385757551561432288048352930863594938335248222525943649030793444603553291712809129754707500003329532256973177664095293433972047971803238763911623838842993002666080823988931769604141373736134594286969251137787860245556549076356228208060884618051808900593618369635215416022540985364062227915039203032792880791296657505785633355240183332095364507087534110336055240575524093029791170920312870027085315570408165587261219339408809107404848450186693679257160185825823071873378376677227696820497062404220103640142543625828483136124428308824942483294389804297999912781778981468973312347625927832078912831011116651696226202466087845366760063676469079087067986558888286030213471828076173846290100236527502314165868015599127147881307976759466728161030415661842419211140474504069227981918464220765215530816486945486858130573239140835987736849983388648581701320039356093968240547290531187691509444750955551047060731825300066306198095895575338259406588982935730735001503060047214313012811303573122596871244516902052006985520710329331879911807654361439011125339372228953502412184817395856227998449611641579329322691675823194104948161012312878991832181270375962888154438641477809961746851061952422664560781213869504007905659526799086301634066887941989003680765744620232464625192309411796425700980500539785513866851377898239915974622209045865924093909356119699357195497697867990676024102868444374393980026805155126219906464031940438195912989177295381764123502413759902076712407764109157431647953140678889071748175487920957387979861004793777995771365801792140968714603030566558935433748909851989981232672659312816114086243577195567345570752142437448929708965426740105479247705308597771085762387466593115221915535601248590390036477728981744251467629811418043045347331749989868095259619221786425699743616025041963140741931746390209097122784023606259264496092189042160788323461595998546638573589691780606558946016393303258296085881243916322607087004571712679149326609524473181895831000391065669863063129041274657242609051534765623220472827406425659885827138754490941065885224069301671225441175503748025921817162974167637002708336290838137993651051676083022391606300325092560559512770671602599938803564721836888690104243637026443291504504744351162214310810075164862331403082400206933054799801534867015896245342812945274986302433117994701660705035476299567971833723844029077546960960733473709944870673459684537897399248891785151377051245419892007408960317415838489706562643463339786047708551376557780869080344068550688706576626638526144788293547589795687817648695793512734796524827448107097826978346265371130356534092270887183040017745589921379114233507833671148750129396233881530082388821915335489442097852872569695370161941133461857232164431486803237068829104388338395328800628230792237313998977213041912235890945697633843094857329418123348791896853255890254084844385642787363324006432148823380928032936271236833276101109685971188135906053640115835566842748603429599112464249254010044050514570369199452323445216798643386603883189361422494100252719578965612572110563819262040733562626213426766663081952477122096212013718010441195415540185746498521172828117956577839735404152941394909588155399424722655646348532794159454782810462670260521155700677483034769473603749208178204018483005589156693629934867858772092945327030095951220271537234522790416076225057967470966582533380965427828131724172052442543784402211524402750572073179858579466455472448339125661323142735627223652615962732135710709251785085010240941229501588696319698886458751163423699580793915691758404530587521429425747759577821835229530882664168082758619512211308433270052389466376486416015228247139213244662560877591526594293982764022724120873062916775048969380340599865177901530464064963540229033859911702809489854987431283846131194408295929913928145693961660483097524614769679269954155196136897790778868411771450906911107246842654203779291036357950340194085442374275712894958591618066209685782146046276144434421481520477055077682561905231667586397100107198878586878475484605803086205319390925881815834924565736480867987134957524586732104838311226551935936529944500786227152208402239837402140413392273971875155846000062036268135496026864224635202015251222862219574285207760428375698958631291271408832629566056585308952337609251489795049953485613472019189350695263524399691732130280686630941585687505639478662834976530039954700682453501534297834780557416727866208075067876412168773788748415128896212998682770167931624369879263754281140982227810734642761667234686566082483715416179874284987902646688135125326000624704203423163065743547790780701331477408545283236494596898223222499647898077009759854062931554227065473801646428959697476455606520443794077416694464306834731175187893258200139438845282553747521353828382997911524025283885824243461647643244243332588276904657867808341053812929111353724598929405501066797214669399669224974324020272205918759971429917997119555711704373745627675489414057600998129332252185815372646042097732171129786735231254697986172126778013635066761408102351746266136911292834996938214502746729804929385788710756375601223970818925295363286955027069275110277755785287781205370165827397648729904020273995282615520181972830640049305617317958568809646283477843727924238936903439106024314435000724000284043520875637124628166340086535733742936952794999417378496601485012321903064906110676591725081942664365302984334112230011132252575627872293441811731164972906910317511034537247426203671189651898630041506885796680997190963679377553120279529271407807347402550214927058745446640477178470868187513553157863051813490010242291963192254764252214064767771051062943890755989947422753961019052076272292865523674695138542485901712344738143807684630450808521010075057733150320439912961483889885968526477317879069612120485275372317010968316374442185285737144281247684523631858110520058380924089783965180970523801839594667892893882348439578566583024642493026482800201853167230549545738733939501588948061563139665578212596605543568238886108037949420343293739153359349927412491782623263454035483456885348948959869979955436882413282121636263751879291897275458032855738508296713624884344749305779945005289729805856641169202739585740806655867687849703097402364526739386168991780332516833955803829603897392731063967883003883512806609866896269945493628307035167022571450961186589952370768769807350117855329122200236165986383736929011358823469138491445997202251617949353312799990500076573310184574105095926211771071311962532205242990319923679009818216882379499306047611670279796442120860756261841580250224918685554464988100138847403444919422452704416530593877460989015817948782812962672816131343502893406695459190500952772215925530983302254810702727676224340443820069657894092020936269300147784573296408104778917911525370169373372979240241256441778655950757227060641540696091742995231238005890650417683336358843530887657432940197661076015427986659689934054611343458143426721449228001551043330695487634352927972150003404444909195281913139935511908391951251836664870753491332277964404247478851247930829269243985898681960333613760145146034990736035624795157707451879114491031785059366400714097214893886384638657655154740753075965339078094619199503100455549249534852440710285471439047709361778017711210095418138272964705595937807595165875147455532140456050993013753858212471218354586598175710308845633870732675685598966747672601273158358287248844797830183945509951484513791778461441142506082332774356415309368772262673841775544250286379295948572655088517781544728692631863630563863413084316359194244539676480583130134630321782694559619345221598764423914352286400142974544614161965714821413147506225690519814305249354297558463484721368774136414636126566203400506544657204101011169247536715602427393803553403076386320091793696149768298832883736108765658605588029089540938143818812207334492740289949981563760289108204179471201819669109677668551540447355375581635927082687788771753971308251086118548743800603080158964597022735369440467557552183832447175937472036818448269408040245731212416539828081162923052924578735775687822748780485502536262556623136473497074894299772588058187587963235504896485283523349874569804270333944895002450376828880444790310140326927618095332628783265948389266822546105143430109511346892855169008764397489995545573370089447978170151017030273216735923004386832223080969200773699610809219255157862820089477311442418375027550605950186515285081630296166634969799811351470411688186300999866820282226051959150597007444917316977741237659970603318295908230494303213373463342017489043415275667962490596078945031451801640598244599685998111384348096445005960977499213992142153238951300738785175577985132788848918697567470618297830788648429364767304734357718670939861971937420925230646929054981055798374956485893249525676685715364778610868652161338420305490807842196256575583769357313057501289191818405035338640323814812281453529415741054274008295930923169373778089345989849956936243028913269362586814139042120825417381035029245302221191176267777918602819222072797937334739141888737162771461624811258732471042306445742440423244330776891251702546553426061159854324400843462758306096120341514652845002501403113648167948409619587146731129611004050995170327854331105568400130787033305214401990482836518170039172331127587840573644638951537611626223834980118966135004175607206917439585435532076919467352834479447005852422714665821223683093617545929792588515831998757989696549619465848498794455323850162264831437899954769432263889691186551874625766465036170997685322666461076963251299577452851574574302771255594489363715196932047178192590489542833451870246558405763811642058805018997355799781630448781104400791653589459335842085677958525782817996427306223785961479880551831628111146776464621308449078290428242486531524681303160989028821647477121498092919743640120518790555923506880516383774210951865622855545924178386772461001125472884668799663838085661965295898020200300672063710935480013732844296798189394938045293070334682905801698058242559016443095925260933407656628661609294544650574714918667821640933415642860427729402108136064581193795631126787895513012413150903278726712282538781040192100531340958899439333837735387363704011040132494491236412591667221047040859674134295866749343407176223180046195846362614762962485331889249168345903869950557342207807040889704415738348784934250988444206387005798425623437306381934704880607932564124219170672506329675634186433368067431714245409040900459534465717690931745483592055807858428200706525997859699123383074669670055240131149196951903676039324171544316738990684951576200151085335237956779923874189135117428625096152579532656627548077750206325077799443167590570548157070941206017046567481860211412872284494185803854333273863152966722274682292562212382155696868835208954482353918291310703462264691191761399889255055615116599771138639943319637358845459174684032581382024633687342823949458459153307033061604734720890000505684189979869714788965590354118198591522712358875809154020240496079494276788308726439562530352970819108739908010974133170228664567830652948414873184597253455533918485151916684353405577611580841421059843428380138220948267302590470245553858667932322626070520338839641981662382970527046219060936897017947575919677352784329917967675087778758499817356439046935651760307418395095445510957010426990473686543596351269416335432125053807413448868579970548160305532154189228865057199517874078496396440138800613785139886428559768134401466172652968951289038406436102083099916284941782388506841599419633122864276326497302997028216841498881233378440642535961698016197447300365789173020237204062362853986416689079472756200395849086769284485921521920734538680268511138616916904853416038860752864433063355268982231781304193243448211372770461327020054155187384944922233368685465338288981985784054726217823583295074217879495286269592800063012737544687103481560899907003358376611228039067578478215981890203370783334232946283544251897130484389399089072434588987791994115047687424276501739829324559833438028058729040075325403177878291226894639908455720707417300377999167751771025181106944512139718359698447906345498016227498228778541594545526571413411435207128854168225167744301369570141697742481778257627767328517723302504231861438745569885601902920110654919535420172376809128580952388855252241348711843581109634103898213437736847875776986512500375445271863361547031482545938027734770086992116533380995379132296561908750662583471288061295526501389043864556344976161634326570375900649768160404703446407730146275983691106984201198015397141857544898482150336228057697151199872056332404641831645676134917464625409859516590069616692850437484485310047173460319939787030995664479133885761457219469996332079081870329096328170629919013798525500504991897525958803841850412552629447197696009393151226334009040562291882805165625355727961506493159588694904635227538837349429048297452551839006561957933537223283174761912270693609136941451669435957943062113947406353386564178076958095379058301408595154904647034037813369054241503757566210122307579102129160786812989307429938930263837020060363814930668346725397039345504616481530166323139064819384081854962994152111142148828427178900732376873969040377464470440112469328618052833065692064476633160720238670785681842033161840487595584886348624283019931170170905023142816670120330098589449914779406871269557576054601211765559399531013496524293047370251907142511133765218259150264770362298597944796714019610269520246920714987449537167707889705363376810983514190719040603752929918078603047765691166242865198084755399469987266376132656110272691491222104403815864765746338944134310693772854970597238358642520040141587042106763504255987943392458106586491688472274376656906583903023073108029954382484809197364561646608388553927539874971000502934116079015279736663340612174967369644052617912150502832247021444715672177477136040335737741384853274247951433342442357051276729117665282052998020788938267482583452805415231533355677055765620740794725485323451027716911806131863981623825447741923554201308334837121495494120925850839973564211136572675906182871155360727882997516110500714940104917598412286652547279592432208708024079632332725039557794963458599703501937252340440897570527090122406888937830026512185282555106683815136372886674502804543752828092172477344399736967537641868236343259796063446937511078976660031454667794263141083821843410234791943287793711128752987266093082803949934476289956512139883904204210742836207810271151785829811164828961418421265455742797360318897768303806145905378650967713180913136978893309123448949154851142822123069872451031969251903040413469649590929159449409057397292298321873451133256429309821327047044663515693048994889054762270832575697323953902335062198728841679608919562589227229252624070000270571014391453880484687308550304149658202842031442353937572909840203042700239895804243514608678172710018618648732960466545286593923206526077661382361547175237744898711512524530135299272379800909027229420120773762945302511946579182478729238612419400819620999995782579328780242356003268717561921094717264150118084709159112162240238368363007930787271546470033727970408722105737408833205202104142123273116469060258566555800835303902391646931537376295160638328301323179221242498967144886408490531884552517482450653803034761676683064015575950229177996424914306563328808021723041120126070357027514076493499526779821354178842035655485067555711899502278823737905542426566098921468609245676485941566979560977848284526654369088342955376754713800243796108118399895454862758254683981682946278437149325025101223446333985480688457002175112794083963265568037180194169626611599172371349101336641083532376241346085707919953210859955562602705913540656987206789757252127124835150897987578146463070038268897994240944827090568287415477091264872152777799239047837342791002591167309875458925576444597598414422251793628805069284976783622431335321036150081650025017500085230972957027811054539290251526728755314724440970764125173946788747772058352327143330293202605309994934547411660279806656532113501877875161796176875328030828741246700305530060941905589195311502223212360539562026672116366940049888764512238733901927882059392190727723139048257350019191530150276859178896399189138469852045234362105762451453142059892115685424931070209050954909830480756878677565907237488713324467169081691122744747152043270997339608563792590393204674165963770060170574485779317874057629268115041400537767824000638740500376162951552107366397196686019406051663594682063855941284105114927940341091641708570364547562063268688045554842163508228130522752258058574737878940808271071513079202398641059871899897865139651684189047872075800504108571665560026159521232557625774508105481142945511971765977818831085506340426456411594914282450372368159565747902966934755190273732158667894091847405107582485359849140365283042602846545239965151523525132595367569294181267721724120094943251781576045981575606192965646580595091433668981408015618054005099112417232467279230379378891529239355308512540103805423349357170700282886504552639600651753230221125054190475930115443041418678349174791105671417257321522801102386551094243520937427375935991871649747395155179578354216273232519115855875364179049832882011049981924849641447776580923645263549396431832822895774204559061541465118833487321674694914414690641107897495055137608061923693588304688472366822703027074215699815393562694203532964444993295604766450756609169833920303296569802930196339624049895336921530616924978856443453265492666074393496980823770881221203226735823541892868944006483169721048243988693897840191877805098142263766861032452048804480967905642767093732268069373399018476125687417074039076133573226063473436689148655868137293953195026282358678986948266264377987933536724725535538737547425876219753011991772729440391046748397624188480742397375587068571496976503709334811724345010482103100126976282292754211810830132472383592057976436420230202677286296527671442753510567154295528347897862338338076872102797419998378109594934523698884745363320763212970522315269637080012961301731698759279552755974053062627348207926844231657430934882976316479451263590805021505028051248821420948357037464084296735885967960810998925063885811364908512076303533661015368724040452823451905526712151573865436592672060214382146275668924595945775422850826012951751007437211760951559010571961218404760375444061050138699973339299230575068740026699128886118417016349867638490220933909202713182468667252377703043033151520843530911192785581411008549798903945517562002218307704511860712621891740303246245270572612920020153512905893375131612454857287012078942883708704468139439673247167378977408777786633061267215083065900083747315544666647874709141329622932139648192448573696113198656639217586492896626963825073206784529645237336270192723796608788832512775327326972091196379535044556248832851278020516053631397261287198608292635986753471410839829339178123376978304139896476336388676272778745538919606116107559525595425797821805552662530032182533481143205142073969495285944988023568583456785294447060343098972181037132259916065914242836425682639239774288563995293183208064652330450060942893544484187743198741143535979886520690452607388441728377609514421902652529873556101271848119136972363098519088017173079989998420074750213440541314070500033200329775986734399944458497462174010655416636825658541303305509631770900054905590645396682503626882557498885415801817505616006019171620756993944194347640547098121513053689335741706388730408023119637812318756559960804833467505047119574765084921183109368136145313808551250786507337413581136370454800222186661275261870779199689087279692953829600232128686202410178987002844534798833608735577032693800053769143062392301030933261143403404737477716672073944664140950312990310334649909090783968760571129761368374845862064435340395469810040308849525421541944358253745294840928671615129453002898818490442589925806946263877080244127273995277043300908622962126397750752051934334903056769831581387494655698541192452359229839100798544864437409352451131327465339545141402071785186221272496563360607691504756054149424551290001462356081828041192105875068439359814146149736830700827154151245094306403435380401014277977586617711957342065898927625287854947936072976903892039378459458574474542639559595279482849346029665512887266943773882515697774938230226244118513558937228496349308284974352055042209714021567403053543285818202328417296901194063054975621947299586408109977165634935337338080111693943733054268592179970970372437690078712861091426127450055176151890077066811657451686463873699072996337818499717867223377880528962208962201381691821296744721411814522652789782332908904625788589261806828461269186181794278380631280839459949257797539962219371338609531687477221533685548638295670599605654592332886428818485604216830149659522206306375938319030633118591556564099169135690336895586460686136193908237014465844362891140256104684277730771280903335049019349458733452206295432398051876869704641751893894812905114627059221791208862066383151409770256188288767876839570986880500813142033196702525384143757596491729399912094650156805390726038503853089164301573162709943282914479324582667951293192699496934690492265953112969271491687113529945134362971517950573348813342920140897318852453618919085733342410694063043464567117569239191738242137624377532967176744080017524281995209146403224596989247506110849018503976423253247726075018773973680219762015340541456956072161170270446486360886451100534855654829449885619710946992364586046884019795445758202370822121373594975579190707481413993237161153661101749077644080032912272640272049668829511948668284304390266350303945275306469482630576712153492584214464574414261280512276515167793607948739723401828883526107113924758715429094775207662170841914874756633607532005140075701601099914114338937520481067942717083840843831096996093302226156704883650091080603267789903986677388233207057709143875332723712487474989405757615667061171825471321443088503812404227879208711529491480492815682500616387423119731047968810927189810626920028548099619658363119657300263899506630623227416895503153091512106853875461070374786550679073755490691345555262071818286539402016288199135075069329844947035827654500554079720829544943304883060943730454904040196467512703101253134652920724936793970434193826871862152429822074226704251035394007891292327106418689156915350128855409126065113030402407429000397988124393069820966468463083444135484148474625515105212089473609392542060949449788146903687596767183296729486641589794313176114761131590044705619986650197172286551938518208196126848912884731059927991485924455459118624628415501899492848967847845382024790353693701679799017460537707128452523566311520910118685150126203935015494150905383616806122599964826935506086504672800332128523008870481872993083133895355872887305908223850734706451774606578061409057633067978485167802568276045290053364290607833891212745827935619868398280618632294202769980974010641581435375128264959354375745961781062968087329300743301819724549799407052972976174812762440443430818513178420494413650021629514934641877684123645508300097557436314801309074747823036599933628714198211390828500600982554969333099878383631301713772859233701998435963588105953102742382213738750704105107144209583768337729197246555061903484304658236986710212901092011518938339632956047095076095236051628478184411253707166295071252252293552009074911186949690290078524790069306544821460589709425056537483604944995427803951590406753315641777868895017011340678523479384787567357096678364718181722769048071942247630193336605799084171892299216955940803946971771567482599356358534959777884084346866674279866963749653425563155159185464544074472545351483498994667468998648837990961383653203451053329302741156541416793217086139319635064010523846189037759023896776403804177985950504098135024414681330630378096111486891755654260271953823788531576354828020722402015349334147973070206422130591405846667180378787150881430250262201674007045201666862769344986696945672796135759692524295995641936779766104667950031704184712135207652454623771678960485487426602442262567903519056163028796984725226689382201476924727703032603876217475269633291700745130617413511655563011907227869603827783458910857224517492683740018482961789474951983442925470610638370194253600816910664096656746683802643213114392304873831561630021604253786333397243092410750000485025700521319525718821706122418157242321492009930908824910695144877456979269680484214655445381213490495220275934754554991966000012718623622672731075132168985981848967456234698753473948825530134050990193643959294047140690466075549916944745419495583079647050598804000190586370474591610064709654783328642445701289957639627264628345937774879667776404213490364668305013053201621339651133167237216753191585503517399326989548211802843665214488704440721101676354791862466102970679355826021304651001696293472991786557124846919674602459400209777709067450233589137022775776512001095122079850674641370375694243779979599491055922032873864436243151183477710410728480664154283663824768297731678215724531354887219938221156476950314810261265354071804101389950615895831735528425391683924237660742553209178777076090208921468716671104952070295745116006468231042411186846106758425299446069515503241527401094380868408711385553148648279042428698326291970591955385791679546896652563633876027320134512192295074248147298183170228781980355675695913452256099044645506822685729152089519732473512610029169732967607552150198760848943829865962569676245848032518942753152007277648848735599624881126064925430259580398926082221780857434665799847866108286620816640436906200735856964959843198048002127125574064894724601959777421314151805553533673577806875395401501573157280041145153199716651693210469594742785194969588581799966148580237003765158791307774213710353016707548008836484310383081501948974669333090105456489127813071106026987853365449016680479455969277163426355657631246992085042616362002187539690232644491528018135462718900033988272197679860253411094313346114545335492631004360835653430794512823781402409996199077478089790831758901103382817247919012278862513645204655437132109934844189645942979082958065089072876680862344077829541949447888179698461137095378997802790702924474635247179775376114667393450589682541484099509830802642360494730075073874016801914803736824887050773799916516297066714624197130030447556398341574085914849931588079696050921216305954454961865434974982725926028666974377048160755521988843051234323914391749853228465484395145996087663867500535834830188610249518236745855186697581301236858437870939187840803767948039427254867225009373387763032338156571433711586602258928073557218354099719673269510504036682953505617778256412325763968386291524998308114127142783392446861734946343865071811514938366903678846239941004892443474768091544434361616902814718828075051760920733222198657731334095180533393644141260271326723839726363625628700213338379373982934975557762460820949154275000676275424919625639969538768834695662062092528246985529156741008899600939060009474005895345317590307909079732705411145844559686393026555478515794848581368284735079673992749439110219600796108442320604235796972188749705534635324513808866478491295729596272756613474448919364019486636750688674555325432376293275261457273349387716316359351288400677891972369681785680329648218294110837155720981268361426391293380680278988461326441017994104984551026152672398951442038740968971240677862523369582773520364450343815518538892444994361425921312412283366345520120159065645606199070234063668599399886544373733238949277192698319681686347560241932476466553239402129431256001883728328999050016401712906062855663095192168162105383445764545562585827566279443741914175635754508564153138260848203637925630361455472873021038832927480438526926798740303066040926211951075268360471862487999984342147699203639931548411285378354626039242159955620178600961005160123378251931567101945372339668559533959360127450163500001370077445346793345550298677264679302060310858883139719223400221670348134549622759049064520404112016614195907610588365574061240308430436961290580221661913775870952803541415399428164413387002767876141724299589430445925263080940109673968653827804020113030406832178815152487936065518607538369203905903029932106543625165409533803137602051455759597674631543624278791652957354206958956895850286333379152303736747699911367948661490321379262822005721489996367031812729386665598810315247226629035930875691143927706927896317899156880968428917128714664230192921384591612009063944367018038657855215900502326211163865171704300740254216735914340211514359539724872390927307355112316378192736776777960317368785945084878611998679764677529734617284588947051656269337925241741453339968753524817850174248694297141793730340516853414433705772550301586669320533215486102828949290445537143822378276318701009986049805069811619556613128466931996373978407189815677522739774053584386060202451289776029170144496770549066021845746313700656557979688336454539715106271601449689789373036545534541247421630819597203741917485794914485035664183286772537296124781980798715870870783200337848426527956763800487989841097338281465421350478294724299685755242208336509916119789490778543702442970497662644687175950026267620445266998082066059660954655958132196848306197005829458905630039363427800882208448499647502240683027794633580735833700436664968424394461114783135566888991629952540496435253626995637361543892932989828125087058730530238445221374556988940297789321246746385275030391468074719374169327472827952103543900443290047165479361790099400836438537331266754811837744735874815470595094608019937079911485055262153482658690324556167462587440391580601894184831016624225735947175584972630061826464334748959098848490514235536744069801280161841070452090558660517830749538158661145502727775568251488795558686033778667864032201532372510507676804785435507068694777371736564307928048755261131376074636780320690712035479249526761657104810816883784308950253338847305601334731589756202198645544645058732625807282257017845569096961712394730369785295595972831727630226473078708802875941339338410872060376275084746574615589763074344830576124109925985797025225475833349005785132182512453661310138921107998596592271619189228202837308574185731864286632886017274548579723687869043689761974889376745894099728535714330035279518916097144310516574905994609817275474949216274436487953078616381981556378008466779411889612761807842891145748025824995118309349094856306881350415536164298362605362094303324049684884842972271315915835374955728204781937952219091529349637486967013665459455835378002445741844539606834383223680168803273880095705619347691601950805313447342257508953791621764345171366930521916277403291039991162458659821581596506863539136576122922151790718617449235597370287867791261881224324346989632186370621361309428129662929569598018447548212408529076766463520076802074848095602578296701036722302677107272261138756208797441117725902686493744801740021540118075354497794486268493346265406773224837750059957093038839908135142233797306531860573997553993315298532505432738627582579011827498360246128276994282673113042750136353990312777089403020081361387996857747382590037488099703624729710846738385353379974363488364925641444107587876387879988407830589492190766708498228612189681152453234680763573906028947192317793589375125522605689258211937015030088228012210783589737563672790862790658452100680385360629371035626817864802937053655748456493936901007342525783126440190096736859282343148979443635410765654562267777610445248989609309652654856542346371466561220993367633113021600840494152161032971986666645782623640947807342926101536651462653928675204252993349978120976493281782343060864412752096466354209142405634701820796983232724450506360204393995327210326103504280390930422585931192358144071804228680930694923871042431108959694816334350104441938310135156440944672302654217632315164113442562441010482439692419562419480222407066321863553780034026318394528456129113110128563619859138642671154934207166221071307723794074724483281612436275037965636493487431970731825284950636166589233677274760438146160486953066918080505883010208593541012174486889974399945073365140965026322138115262497456284789320970694421217368260767874303836313236014484660432939902925830651499952686960954197209660841979422305729032857683011140344242696447312920261848725182647152253145878367467076362253386687450343547075683602859707385845980624647949048115448132517973044310140937032653867818981919414138964369358811139214442160176573643226668869989793963162318146810615571637759823978829930670216624004092323752931291689110260033557598172010169598436880153254403845059938184494468839667317341557420027002987574100864946990000068576710910347645187683745405489613581079872865647665850786917019070573805894424628135544367646588598535637063578716347924258093484597815600631361673401019921679666814735240286814137371602961307450448150990739100640545790876543637466971668964519123968179340604528861621371386905040132214958364939167063113071302089005797665933738388326201761070000233652128744072822332431608061002360924429512279014799946400480682551383903949444656737355162833069170927860644256500312863580286116619205905712388445170981654302308973880105778296140936516254206013147931897357638730662923119895763106815552715373391489050941689691015965830735642882854801350841759342923452078252536422878282104358580766283468558824207685376864703430986333738031180707358073904989336515280564193035195695499404573127751029587824773789102276290423239500111244413328650258034620177832597693477838049553383240008022035294847779644848046837008300235499890852872307753423811595182185177431122352510047289562545112093001876495657056851484260546979599366820379840550555769287112807927121911011969237770268194443730314671468410132368189453979663512105231337976366143208183378269184271685326139690533078608842942239355784484299335468801617702513623358011891298798787582329372424015345330921760415377985343218538637021288855264646531389002159584321176239567863560873261417327604151376826418425863780181637827259614258261780797988625615877541961867455871014973833457962760988256437001415922910999187013981633187535427165432506773252337306074952035332225309351526387756002897440176004331735136818399868890310465797337938272952164898647436038048550080218672545131832664731087261315381233069957004368465918049478223052843847172426017219693117733657173007992513785059453984811208019487613766748727981920305442202216781457144898606240400097843977015205055882439363925832272478548768577815516307582158699633349117988635924134175924184238651811687112203901222145523788984397589967374462590477332063257356581661426230709945595948155721621348258144540234233684158059132311828992808982893207268357423524756306649356017242099442218252087292444757627147268897943405563700147908053798263459548731868175871719485010676794483111210682881025971895579098950732631802227815730260386518588256952461233533878153455291951604836627714160912824714197717291096216152510389328208972791220110918068835862804218775520892841715150258490896407804641394343058416186996284360259361652246332244403911397811780195830129731691829789438501391161159355700661897296525232162791954783723991001817650720759305013468713199927592309253753585085083651890786980537648413260356925694197912923455841460334032771326742741703538621399679146614961397871406019040161932531527756442754992812940300299754359661862598123238026307745402987707662137295065729708470791915034274624415107840627030733269624798379789634491967316858486928331642251069559356285593668853002589868464691502653698202474972221713273675333419847442405028116862394663404803638265725347791569617452737097240026706966520717283127199221578154426488191994422928227296024495002314205989691634245253989841120716980644095239353272675420886468720580022428988696235177806230301053836412638935422811530205272280314775069527944366379570239506779257881966283910773017980927036168845701653973208284205896923392129274978114387162144492846738011511298225837598740956521799220778710333403717997928617326446639937243141264120325547155469684124802857436356759960687005377527610232192504409398127639704299773866579295353475756569046360695381865769730647198802379488589230367622776264945373679744336963047494354192882943901412721695863354392402715774207374220013726779624654328944559053421827935590340585275329817824327977122782012948458103830859841791860420726050196559645364360639686719753913510591768456091289369282925028087396080409708772627128947789807888922926366085654978727043011934192568650702794170565940963694003237046840100071482939374536099280386463992026962041966071310241105688325350192510802456218564789101488076080844982849075752147945325094098806516750042570356778025923630834943175402224980298840539608137803518803050385413816503006015298131853243051360358941856996931355179389591623813557102088292718995527245061148084334180902785097905484795699476885743419959698800225307314066517819544976893008765502368586279863339701273885776530217640237076735097287666363353908049020147543736233436945601976890201726275948305680733022578660031497003362168011834834703355573786217336971647861653528025920426385646754558102321361215809806439646524595834812988303911813738681432084901828828344406440792779962095043542619260671887299855075137984876681265081195684397288158614769124440018891563161101062827888495736251356328030652497046226123881938306103072055983005553649706625591656499139931122343422843569358004310371720143243327473157173002037675563533264576927318556977243806894045228277609834251372976084487769252655337267145533793483660699414395949437500771998753595537713611712107298157063151876359335860988938434325176619235564206990012113924964475073524278522828461934704501784411213777847586305115367125250544596508217722068648992775918842112968285067881265425456407055241581918838691016212829598035225936126866386610437343921599733128657044250132143573814301389616314318288172721393467851472010110495382603660856988039418434011328511906841316564792920444316972948619375854170738695282197973357321978962617821840028110301312823994319816256645833577992363495581349724129705296837019857063567999338758336440062112795282825719513675831555936952858386085893752293266826432540226874006538729400318911282076282424511719021407600186871950249506587006083750558690531185827855674321585035242495603637481071447935199584125556067804011232470932376952797969515720015525153681782111515140947214000600098578160769372474665158862154066700401509498444669756683321409693896237056290574324164974405074350306247882522534497601690218584016954259258246885027733097044409162405731819123548956299243662877725238775327901496676169647804855038587108581437390243336827395869232556988367625830474763597775153972679471381327833104295033997872914427456109776951992806295903289015124220844167015731152136042158854369038151087586379547689300319213612581155575127861947779350734603022995381141909261236906329243526558401604371716649859151130171844514102297240013261051506884439895785123967715894489464510075735421696089761572981587201239504580208884358952839132567180797505505222954818606663359600361010730297117760848251625225677380107946243463376195477232696014645738273727700226630607628279359756285700623532171694317515997336381215982841280612271185186917811143470259404653490648500698586961624514694483350666186101265301200943302454494187160290504043086249728705179827667737633261913281908467472146903983959769992124821403282258058604250668641558406136780734870555764833296368643460326219839597099626305605218701123476970267303825437781184403267197416174544672836009324902828353382906889964331414275203259536386691104208553995640188743025258553100794469709789215111062607992790462918974469121421201834099150294326179635459965507808974978698462861161605974377121869412799177677980421669812427170577653973492624645437202222696632394178502198649583232343399564572455831168682539731999028205000554920543854139647560046550950411028822566597032263453039666029144353600986533522201816989572106488675884093821898282065534083933128487884977215583092954355559775423801506660620561505344556663532936510100282342288231336978066873345405961516198704684495191712869812451362289463786631063575690326966021920477406931854526829669852333687137239949339193913244007995411123479549536103982324500894385155600514430733417078762028855867531478915217690010123843737180015072123174456706726703990846571375312862703899073698760717398350986374765764345675747447737547905950316996094796566301737960363257249654635178209333849958803179841154480182151449121066447101747944504208845012797846295520901422693456930413898612444308582987804985607934600588383029369988838055517662453883308624855232790459700556251147426759291350534170381518973094899928890734475089261556811372452858699751456321548995878012250623907415081941035006337938457482595950900632638658651163077182593160860064640963263193043429605018689815063431673493882632128645710588968958712814354667894648366933254268020035632937697920768795603585717858043064870175679078227247462378440320824380494611368044776248078631586701128948291815882809650562905372873225043784834976780207675932714755209866582188555674179829632254586005174604162879995410378088968906120932212611655191685421534061772656708386553501887240611950513939799756969340504371612117509376722918330699052453846498966933366555110543551346177667445626442920249945843140902130455160403589242077893182989672170519224185675251109919129860182007509009092383938240638938915300174825247444844212766633961680188408010624123848636094822282109699362701343442121350552993728973651504822990177775297176063134548042077055520929488881354633469970095946120133627777998194075637715848330735807907735344603666594699141481350332916206420720041855376666677597003570231723955816108231066273254326394452829995238803310205178564969818467831573679545889652039881657313246968525114302949681578808540426440484487315439935671496300469950402175266527805712856371348292661525919703507000541931054872128030650924091184831239691198218150944059694132692356512380149364322819877693829337678961497177150203620148088152654625627091849728103254726233458258613648774064226716468140312898648047127282587168078757855937296562918297015421549221508998886076791746237534894189794230303123856464612605192605130842637496757618939098290477288915810977814142949742862406775663899639564122907753337004190998387023305210240699055707879191978345609263574158530869692583640684301675254892195874519764072153372978593426999493201940209496663708608898575631868328131216932020600300486047267504345561265970948426132743894850588346057932255956940659236635187111558752821064913674442341580310175232449027958058015290794988387696328291726217250078589848076578750566369828266340765324780622040177576956898200352510553098527908157946414388943888453957156117806375975430986450270642307230827313561530524803808271751970839344330452156831025781366645184061797442062005832486390463066319673576486101049536448916290760176721981380823758758054003393043669009724544447076278087232780203443645319473912308711097485223262636148844856542900835223271395922072092062873339278998149222578599971900658975180551970775516253210753587990743321438735040708298791524445111303146926746497856196029785446959851068743692767209241719423671495668502729201399270519786178536116141527109841013625760284730414215325577652587162052698727467196838656206797733502281477512144100852054403684104184594601412471039161468635719533209311729863302087780489727858542643082495463798813107884785098631767943092500563697116602101287000653378353147188476379626222775286631712495560995144687502803036070218518310244386382388421922040912059744837121286709025039650780845987447133562398711142786255703357504095830806106690259573491619934434295201112106640753389380909369958067793879445186966207379523326301509733145285576660134156434135585139665398651936356647130018403340517682402632959370511241975807953579558973989243031253777720759207187839458224614344464155206049417965314374293295544630824020836680087406454049924088345249615701990112809859059233317222862331767059761026724894489640191939673757466494919912993676209911061465458139112227032040848966854619079317341880099630163680191267924786015685092604541397778950426840000934739658342095042213285025555541636066784339184176714043093585326127345401082843096676877510707615693121184183026646719253126366939472335853098804522939718994483271012308498661882938050334058307515478229920332688709528576333098768446949751211909075878676211120002870326224694740567262960587695701601443019439777366656578179979658543190803561665490436720822002569182923707563972027615610619164456475341481069346020839569488941795388811733013680974553912263049538932934993795265788201847593511271085012211198858334187662937394064626064216634373363340116526528103260912848387973217305360853201212595014850291274209306995670654243157865887839466499463061504712868482974568594540785255933740897212329959882599194024999316919095122137259298674082350128196260653212355613789947441674566241814388437864919836019053887100034102111754802672569463890978491709355252576421686450377957698942618286428782047723894627282030286766748862090177926357608427558201311120923940547772171933155028951890512819574799468746673469792996307887553159756063638364872934794935169097515091074330460671059087545523771345018120617395565409141364151657050939296298643514452298896297636677568227065878253448629727644309457100762523052023870463931625858434888591488546651200805863144972381419974682052262056381813133051218819262425280649101584740585865986299022186985331796599747029730656987095048888006011204022512211943851411553228127421436983206424497723296388675849277152531690990239063812754635711084096874399342119572080380106437705065893965336396484529538926947435421459132790396557222833045846096413819527402436289086845271063484088431270732659546599277447544735346953017838316322308486326166762188066056600456746467019968894013938421384354873304243132647342988925775747139156845731102029513039440977522442348504761342832754421862157478351534641825776187448034567091034089382795430150796159351579183445941289850632677294736885363208751224689733980587039462883009000957425196498388421279443966588538583039626809981214412652907951037204178609917374913078335448724323326925005003917783591349458480145571433656107580806979190519528153221597630035391196980834415621974556952588941148464584920216928018700943729064265647473237049956023205330926874897310414933549405191972462620421555167423189408240728891650814009167736033891476306944157001961292182303289731956240851346132653424853989044620275980227897115597921022360069373465233535485740059278483809259726542006379743467918683606130485764953693041543575270190806550635063484316792567906855112171754852745331267322264685725393454267873225438558042755031841113234331073413830351600775679612946953978889186797775731912179302089284274189620040511802255145832416711869926299215377292417078494046757540865939440008399191640446504697186703436437659589514694123952125746858909999007078037187756668323746034052189620804967693392445471805075480467957943914894611427950873591526301736313505638066156494485839303298123308201471951570727934963655770603041975346571791008640136536609798258923239015552290189104834432390186785304381616801236214066090210510142357233176871193286679233188840141725555694685146256042951756307441140738321943432725098400525956405744995121172402092977953173483343461726022471737303034668196605570141806896294061267229970178695755065354369586644407188386290795905970681640423553867988232227501057745310701034620762608769779163863432311855287686607145345742237814887425522566834399895568494248714745339345635895323298399506268175767447081912453458731807332210259107046684235231905319665105063623876204627871975952542766221454569613757507419144015670281698686252727593807731245957893224001789463516024602404803060870048441340553060664461531662639851191980442357625077140793097525781897743096322372757113549643221059612474888737752309506599276889397635512000889235657513845462716598271759504387872699102355737892718559514163882781739407345141312293461745932263638139164880478505070694855651677272588074054650015986711896597370855135201222828256993126498926933224436515762272390585643548433264806643593075343123679353746042218378595562989430981347311600089442070132612655578646895843119376329373306695309428407197657534249405753518815835925194452736350062578011753315510519153586541440174613475095077185806239582380225201630441473328703768508562668246551766289525997398054250751784772321600907426567311665975606796693478802661398766355364225592882912030908105807513824424801100728176187339863126659262899934011193164709396880080395232076230462110018171179324021595526993253863086379938200143274845577208065328174249187591964945098145745475136103123344485255385097161409490340686878877713274641029568755639757405497354851555303871839106345097472061030570697871989009127106124582557634519580564994323078343575963008370288454918316476246137058816108282832029774841755669032130585366716755897326842641814134025432066749841839614019175115511403962775865582501465319418163427313136479148679759682500882053129944890273712779975942142145971942591657787794782845001133918700950982730905190789832302540300480605368674257095543485609259621635054568854046577081455689013203947263083928651120845221722181267704738948827223384968147570135921309656504633293964565185931425611779337188233246708518680481400212389803569768205274381257212665593145062303121954357800542291413947628914069394153752479859505980738164141267144382355816283047056221148061004077903830149529365114584343843838689312511029129360866106721193065172684644737372501525527028750489716018872540021089372301942336898985352582443800630889469348274356679006741449460584290191904585242057213747465341297183815880624246464169958326582095074406816906639689557006665092618599463886493149045596715857197103500916054290265713174205404858475891604769085090347516777044064749593261455270810543690314512080250327057291931409681460591945871437811942083860610962768591543993715011106322937351245795617464081434365466579130236625442999046251805431915980196750003918764806635932677397081475189119528474023279402475686397121694819545242401431941353874723238905338987772576422432887369367742533560222593322045227557740290118158836478178273018730168742528012787875226695752797034401983725960110972118257629891115554925627361846434438777699737686779811570427583410714073584398665596637729001966770630357411718316046498075244576948171770070499799488186020415241393798527168107357272723812619667965574260731710628373860144765669385311486983091852627613259253191739539751064473362855795760810597415402071960861100453881305721991834203842502345355432907017137308295468714173722908800470468862259681100816923509932172303402392043341275995301044816439866944334839830964675625028276755340374734574414125627193975766000554627848069395135807411134804808825602409434538631157883479272340626833127068853850761847659997555438248586299040496968610992486287484162707983241561585543335408499026901983154556448458229156671787942241838275465739552984629110166663785869685637787249599824515924793739101642895176449616770152670146024438999838775923696748835544710246346586451864236467495533028280006906785164812213300648817668096753736187517848797226122805111373136368668550552358271700469321246943621597702234924434726765447758406576334915237189657442897448291136979909353711076502438860858036099886280018681295713743068546429917085177159094997799189174839731534457715127204928759203723635502573907172519013521193238018503926835679433555324473760522733618661947503685011860538346370673567735427457805152745810542910827808695970293564968107623628075004046834035592783389004956661817804252588604471215051054845680221573624255113152100850988222335831306239114259965263763948179657519999597157788728807436556377206822106490746194571542069871837807711624629013647079339002612356093768507175789947352131398300985205162169837223094594396683476392187653915572568219634821026212466094695107034902563919311499973982089730930561812981613193300767024549398848240736833442131725982852588137036163662350479786165346589603996578718426998157122647882011365855172760324185078647713461443890524912656885011662281265273921394163022963274317862741096327849727744689975166679433721083171483405218582013132416176346531963337940108140908763335821762089131765358114962099434473485316487955129333072094781114940747708184030399348754408979951312548782248248925426352582044448547276920467686250952881728908966159614711486715447660992406214790447866249287506430371902420587262819427480427968787438542825328744699026976313887693106923293285720292670753917469975652402671549453260375228036851884365983505214928140900821313126964289719882619172114853956248659042454089983332641143989072325031659479813375805704265672637283709935882473271679542762958777951334185642315636483607835819415944022728766101313307830288040628947743024050292676333477770157040782904929580576743325797868873223879901197180704683480467612308913823927082840280750443558357152755235643497506249599877263750878469421366759831161768918127556675855575574119040817461028487729528038086002607089653127805528112987612130558039691789975548891098680501267985298017389645669546385409652419059637776030802185163389700680513735709500471139482095124019590944083521011172373920714143930306763965654289954377324533901200772560584849904315513918214553643633962704027472596090440989030872149458494271530122848463738637590477699199860055890637109213621554623776062034622774592920597410443974166994579042543768610511046003897717841930039576627291742814595247127487974690749774643443003310618518312310178334161464972745957597808278512854773515669412713860786500464818091075945040942943552222249019614633651874444743671119215742341746811811848186521321014943341221754478804524117292100678388562789373693410862403358891369510418682327690144560864810853459408169297390297149369797392245189486660336497772222838491478957798618675239506313100182628927103030554386960193376887050012555311422785490611714435463567082917750863453868418563101811730956986515002103156207994447069094413528002770340538791446004702913623113907660259383708735800020875829113762450373396294713137872643904470454808536786572066125950302684757858082472523363025592187952315788271763188619435369907529383135508379524640625231702528154325343898977034260981361360618836829610096848226887631954620202454741157696726263143024131975558635803600731960950492540024477054153434584482718346181871684764358424334196639391027727997061048828645740713298090423032946855211461671890478591118741245036540541082418622079474003989840250944639312536322793294718017956915056823687817057065125181549991866496670562599175229065314513701867293439136488431701871917977860014545901179637884766469621160463038729718641963266884766903735796802321350343370209609483539032870966486454765873217085979702720028141381130656713346124269556611335442116070308972661192184787658456706489742881627443812125733815269353042339166921931894613706863215888003799529652747652575517995607530235677692471946935244832496774612674754190187257875153612706879313796509620849168160585930930819161063658271860975941798515330107646362014446441838055263335559190264199661214718977638827272970024045803267716277694564605126798647175293735955956170363807097318512167345863037924667784146122069714917136838530337226285781304519898510012075116304493656676230884837480412930494515097769284778546985950097852277318663937383420595188709339311703159865505438301169662763218248348496705179706944810619288567361754043002190998591472727286161098430481558465821405851656721432676607580300282077497738269844358716386937705566470211602464117915523155244073155475192212358428633146684573527181132985974509135251869614263823895634200014416637743551655773294545377182540970603909333916059417531336496831434857456145440385475874791294768596524447957062174130812764854827569958562353388718443202025030888038963415367155924815928960308310819782949547191053369449039253572342951140449302086600121159349614268608762457913808365668965320261621071054782509764405664730730139094703719884618664245479306100907569263699049969988565602851042954884615119477814359127064440588135003580783773507083480456891796828668136742602926989072422283841949150939086348172744545736594358486715847556150242989687342989017599266114354905337402046414798945158804139937569540045613623509351679179123510797951680771989252697271763551174912833809214247477163062435777307927808868676341359527560745879583617537409131200797004387009892018023620569434013530957490480770018360297241016505341615427777562661257879284784724851617160329765238175126340382096078656938479337485535383137857792904488200207094593049065732503310058027343088726749344976813479795287876381442581563944825241002040685430771374182080495326187062948634533744934650770576360700213865116958770693296871120123472107362480687121671469011140467282276063222738975035670454267559844159411433424818142125630196421253849329427873842271965768215339229085392920317302661377320497399252074893232069468074781693213700231422981970302297737431796716180109194541897680064822344008130439736059034538899682536610557556166008878250396169562189632447876803048386954095877497400639153376900117072138829953868487237580594731547091884374789269512478394112932986581321372882067646368807784380445378803424842740506287937855170345901999050780055356667593125823015544173217276787649978757046058317539115804741156327274253170029876882502131219856205332685590774021925382477116613714729570765219209074226099018230153689803885086699242569076610972410661853011514440859409672197114793192620644815288578892452900743371510192885064661640072562873279369362758020309082241628268150859836381021952635801959843146270357047228108480225304954005269499763092717264221977144109407720140062218968305858520303765576584195476429572662672402159974265705554447733986155217058182249808624510298656868940035291730591332465266049649864526410584137796141752233274038572947683870965852548034735327709431488594992741630220111507923084982387769764651064434052749873552781263926045796403079953557758168435176511053008420503387746720596654792231532377990426808343635031753914612586350190624594347886253687023256173391243573530333364202424675675919956344686921271294272385416750888019712087621969039524826988918629728415698136285917670971099849733106236817477187931357604763759156050324323569790311790333590668092721427575493338307652831621916844386372778627247424990049265527192217369110296351154223102866207659512930817730189814386242522030252543866479888862640879415504381189348447530575702868121583693317276608884412913777237202147437107255410720968995145122036910429510048464655389457286814799744527612527799367992641420827040347787628117690168267983071738946210076865188731420045603064713964640822797475295662388202629873456585634163642204634495115073172892097627190395628007287513932450085977915855744900726466971740990823415586189125540253195278243478703858950427911611886198966314415733338811018899799036544733159931430884147888627453954630755288479906443890667055552831873372077685434058849975900742646957236995267648099097398164150630387789065078610081682113742269195742918391395117265710171517110094670604804588511831789800016983919290245873471964982093744486162129289654151416267042230664578345046220712729483615204492571508248720826944726130406807239912024917101392228092563808444714047315867389704747381869451854222005964391525527486605340676013740804272983229097980886194681426444817330837750933066462380206232535436497886191709657692755655236190950765253408669811908698595605411688522305366072057765425024428240677423176502298065611392868048850729281846470367155210633899409226421495685211288334310288960995616222581111807721280482869047533805977157827324463652600889931934200408912731114897528578735957076329337175135834423768790972882020021132498434071681505533007945075084699886470018766083630922398482235134135768486010266537045636940671007809949266090903133413669544851877002919030404946006612986720681324301424488802475623571882341496837207595872272918821156638553048005312590398982432076471847743861259511300094659250856813554735585705760410190220935475852746857949162449151468139607994140686575121357736358839840359403727123255585128765444936478052990443979878045650138640379690518937906644684153480736631124202475616112301805525757969800002013016085584062935616833678077133311249504120299845917453419076258290280210551233569509031158194856332784725423806422545770766414895060465525039631953635147414757638610942126422470784107051815303676300462633331847645007704031294884353158943983097928637864570526043608113040032415349097147512724495506986253693950275235941202557677041157888104689376241907890655454726025336193177037636437775059578987510042385719417070913767678358495263647646388279564807953814253762190023236962712820787117477327709614936503772565288522486125051929134312484031646964955860542325229486484076297005792227706327017598251240208889038041576502856301630950424920042019189183085440712888436272306246926962190202446982730134688228111121820843150234186111627678690998904612285365437992373390590092572104914388019312731471324752723310433360954575909913614327800047977543733100252569579473444080539410196247948283429379835534524073717063721910652720872345285113405622274952070250437801231969073520635541034356270093278185436272263197016880034635208295056087465529634459169469434137969983079627385219831470509844160605370552546013892652113319669548356142219228706884798447351157324593587975683767596556842302046202963906932422407449686220420679033899087766195745143143073150340032901175821372477062827210702861637054558293785859848940755615771429219594130012693083423913623062853263352094806476769951516590935545300557328913140226845760465470685610681882594707067679833905073599258784730811788007602033254659208477894282830763646436916355986229237396220855695116713879486994469344597700894170773607724948062404614494003305510878591931703334781063092528103931987218884189539976639315035544151114432577253534021983972665742293446818411193311498889291201594587906161861733508317102687003248461117376127582784376979832965150143966753721387305109568341990874319719281218055932253847101693368722906682819261709945491735761098802536468118666798807963019566794484355905905493138575426886482219325551093376833826498560804926055268429362397668436814502969316901101397070469970058052450017594270744700115498632595696201006089742132725288380096508611243523010731946801514750421442728510476043931394159006885422663297615195491371141502608117208442335503044915741689625521009123149091505520608974909508302602794347136921372320497104935938694358429761935267325047338606084560887606473514148168227244897066743306521504187833775463146718601494574957184788564840934523441141841671184445406022518728692470106321139346116820268894110468732057769382734107644395462985983000170263619831228864362797534589096345913743253985337716461161798080746596704761668485611293233283525465947589591449753504051212135691930494024479734137712224342936556769828156877214666671035015055290003361949829560936203169383828157192971387188432629953644046196688157851438025695626060580063900901275401505019518788604018088099484686537283568961799270817525354391401262344832190744811622885026943545868561262292968068975351450435928086404054692545998991448416555629467598779987901227767534523274430976903307537952461770253782077460355722634983553421158882956769734359698843450875497409690715680491230589889743149459232583570874581466724916166600323570699838384903004270005355605934765552502762288542683950447065233619337540856018199115483807362167357358381820076979667147909624945928512704308303589117620959992398662033763349358533415698556760024523674898872975429926654842253147706509290013702455434621717558442081838788534610956099763755621335728238659261254898849659131974465367446978383271279655303267528666691104837700136469494134977703219706046387280119819938727428974826520347067838560112147688674734605336224793377855609897318396508199729839973870212410842026433889853523721979376233433696404211204479879807652520496577952419450852508977657358082460142940378124125265702096366324017978509570738914798078411233486924406526269838253375068424028343794081800831521075463804487756835068452778867396341164015763821068852791576500390917309301886145767206199993483638246693831005988003447341240159739435118139341518916768615053954061061395517950252242879346015093011296787397796533807539138985205793078375442873320641663947791114811089547151449915816105870723249249388063763068613520419783184829394313774658398816780985892521003639414459856678128631119415361130253590816120408932562201962697156877170022430627172816980682553043522269565522270405943967790495522371269480028946419082965910212632950006307390868620393269353414616707594826013854016873335066789199919305603190909314507278588788150705907191855963426291511201755909360986290320333107155795601054537030098142981658021890495913876201050118397999667063814623394941494735150600948994147884989268364643571460966017893984608826437095960958259947969186014374074009679468479112431917231152956960503720656501593166509408310850924220502126799971776740291285253118875919467641694875862368204087954126536520456130116085386259039064174782009151129028868232493756802529612085715000178583477036284676604851516863512257469293710348409454445076410294627317121513987991474410158782582890502592473826599221595047307687130713064525613151231526305492673367522457779177410318342815789162559774677819077374782309682145841193725605607280183103944788569870208931254556829663177781107995811260508241693125089899418971951456630446501756365968892141966069230719394564956553243992487543673761398782232665662226258423403780308472589260507987003994019542673985485235696499458889656979394655327164308805701053948071859713792866628027035953382921433586126058683314278124221024724557057459120786412280190079541669806448648215574389521484333063648454435910779040978743866087820948829998049475941439826556115499218457154367527418885592102987086682939436310752445640397959962838516082332498106092779311740491127618772779076103043918265821049577090864955660170844902117634808082047031497328550662527420263839200083335807110692987593032610900755733361855144152942564133398718901657454205281620178031230515078682786396637698647782610298679658059112279099942976898628230908306556915059286774970439328406606399686097852253607379909949108223070690647655317247687583632446236950695324722687271252462071112356084625544074253209143095705719293200504427412812562873559069643637251453184091320777499856322036095962370796973707846409564809672904911164084945932039563405250181001120996627749707658867770374192084739662486384858444633585377517380535494571223714987588564941997839624467461940304522265444794227299138268835196612759890055368277591419202412871897680280539013911584194895194671613796565684956374169732344904600109886372072389127004429044779431309975894077065707715335928868993975916060303993599812625401297769720021832128798156429453173680263816538764869758591861206571694600529358329494500553585438568311253129478607062218988066048532036788899390254211423281974313651088109883994267300623477074446971919598376538195151741848349575637328683751050272465659471823559269386892965996567846522796794320558344167642278701731107876259312607329752278038132766310507967205803028174935812856542212802325821106983833486119073434742480843039243282020699721595510109381862770460392854126509555248805130732876329190173912585421924973809735423610638800141216766692062260621705467802961426521870986861313655407351140392688102414156659103255335043318670985606378164721380855646279945373573492998275328710376869502292916392256830059736085272578562286146298574303424551947302152310129232001913506604533779103106671068156727726535616965025967702263079052461129269470903295772680861830843538387840430742508614801712475954719710109693037498942743208194617292318921355412200677358832786563528713765520032081078524225982349842223624204735504537203691477832197152585610351974799734501440475534462591088467837059576498381277972789857838109691816540129245546036782963024775134882469929476863097092056810659173012498109684472656862295311749594279356741538734630515904870621265321267092880948617622914437545325103954294367509419672735301393312742871174192792139687961003684430775985543376826539732431617754544407834131204469970167505790383283160485858568352752011793360732768397373364905884077353185001063407487090670662270401190260673207980292585709414447665735264021942454079746438680902891190515446450340327729399743607474174117128922618037244058077844113807899028565836572768237600015098214820834710302303839868722094160926625659342752008409376499292915542961399553104409181981238654659399051131186926972607843616330872307968757149086457694126190575484236091209711768320733460803060948925877570734034976916730270057395314680685233850207603733592371048405842880285775875509534826729799464266119531587862109187866837700163239146321903331349573045336688829355213004933337635175292735828175386805377015532719326792700624436509444920003283543876554036433302678353614908040224859483206288314583257122826233900418979490987299454118541120016725836365216839640942846364026215972332653483238006475752492698532576868555552384676304860933584212327728728247088171283203334123552461691299958158704534695742195379698507438452600634284355704734717301329408459325766555458940934568175463134268239285752837661290875962219223332082196004215625632048563661435465150032599910762248925483518717939202801935520388239327632020911933736433125709296381230741354938662199501201348182898575359800596643929295210036414533204805818242888550872064019601699551639641006140455933943876370192625007392165252496338451005954068205245764164343827958901507804495712434710639260152260747773615842082304378947599622125546804157629305052168038287314852740077442047841300510684795976429110522882184616726480798560123376563830097743378969641007793612867384175362806196299107060178537099967039153907621768467238650658154140752909579318708932944423348714539021757665085423224622830173564943111275956090220686129162787445486659442858247648116436405094103007365375023607710806170893848065954584715247300320396774623464055298143483724728218632492748937978640242309641546615131860332819888320165694570163456391879037270598780992408537294208230022772793998548541588769059337620368222922355701048690588951650478830194105611462576105880146420300173981830231275567797322008391243144867613362516280812568107052837833896487367412758986375846889399080935289463208768806521277255441458630831855611489759238860263161942398477081418853994303962809122153648768651867091413707255257819430766723708037752764598818055938965184205362000962048127317193959626911393308227734574196251025170052776016142833597786639236157733628843311609152587562608235999975343710672108660536810795781512689662156645940699559157027575733784844392926681082926566330798563732239705295886696235540071836279422692175503598436274847496658210665083984533288966573560533693035379945044621684575016528064870100971481783376078336080446876032590984535025127314705115683177032325396252328891367867200926756870817271235570996830682165420640376847370525347483000328084030930514114812284500288051985933756816675620045987443646699429660272764252492844390079709741249688249285876748887314687370142846667964160467868592681525662343552691773626046385099399526145114019015128617696321573512833149326499376129109582979107118084010328424238029099620107986518541065275758141110045947900618827986695002519753329876714216783217574723833514402832554785669766024574881669817585777836789731086411747842913863654763540958008904569515085786014348736429612325802610369031586797061136971354773320976927497310514871339550990455714638100411397295906807381567646492259296357379632064130515889821865119969308920598406245954886535531479996440731514417017324234342504148095561905196515485095031244149794502770554018673161787837682627100823584182399765735369242401816842040389756913514172785580275497063962709016099922399551832391125013409783437512089002288387248469535363752889268653766180872757767086162395808451289203816189875981131971686766153826703512895674435711631776659597347997538510930585167827791297127541025847316511649338043210547953889285922119809693846884580848316562765485856719215950729221289949415598650568441430077602335938298374707654484315189225062326329643946416636993041023642991653328773705767878955748361179493937251173767483509004346358194598312940337057573289091603298321844133624978595649613378926316374567427197494162485070734392930308158667081155764023457018431683172737370468281854267130010967929425015694966894986069287638149037036778410575504410980873638003986746567259088900967991988830451665844099633589463624738974569997376291783110648004701960175895184848699108440649471626756271096997874397748037572192996448202821584526406257363253030528358372708173126408806579709120576715557864520045062814554151964154834847619867638057157670547373622542728756808439072050898406422443957759559841981982692385200096693600144412243475116106629308932008624509994312709188072226628101024881192812607840117639655681660764467263401891828282783735524330430318795006848648527460467651507517710538102889890288681680553521500278236949723108900280242546926418549582591730366642592513494228286048834591186174476890113059523202759822376677666185303036662519817266575240958560766337745994207697217384313797084800972525438300851673664592510519163754277409359666726280408916733157066161950822168431179587803075775207214665547728524551770509111117101280868026929938862012969888025594470976877972674440391426902648024352486171979490632046058457890789996557007108154428474652680164585314224098869994358296037538462728303856400949617900234605340191603759965859143318747855655384141168967030509476443597107470397211372983487529139831836131626562407565867126016681275177008013280010807431128622218264890186022569123864998615051146215170284860171119111331832941180891482640787690421874119096577504838303788849510051321416017040542052115462185768596974692196961376616430683983130069291869190344366184755112959243926976791541532785017037382395854480195627319460249703285541175959132173779535881193199757042447326031702548502658385821427296761735541058614793135923827204020304692139457589362485880777662364110815089064518757456526692279541700948087561310487053309142576556605966644944496924010325065966061293849327470307382600953060650954829550051695172053344244194460636990782745788754638157173767459731201773564882997708635829974467446547469428411425706299638440184624341436618632387693628829899923839699213362129011281954337875079049187064751477327022502049202269079942689869723111450123420656733394891899464364473575743084919483947453641184007259438718840193494876881204507786182056532047216988022384889587652731816516360869421696508489620698613449123597186412238090424152601206053065561861793899430470970193795994430350701369562929819282600114247267041643953621678051233418107967366764648285244455067651565652634291484443168456944189582161551549081631345314759586808849821199838807207062224936857442093559124158771121688223190602838965660833348328024740825072712788586087101056403623836551778727388721089663887069689437619552738828547955192541582700244291868359971655674045068255789661426842692289071684438182666929116662404510127358666883289832924650948619334391676885039688785006220929055713599767976560906462346522335770190287688376035028800194778247121512312302330363787301925299904197961253050718080608428597364371371535699356675805667635778153537685425225839918887956636462388841337836716942348881177996626661744546852997366846440925174672880387520254427430211963142804561685579749563698722170548525109869491165857951517994760341440270890542711664015440530961680395496172460497421360269250374299642435722703768770922862660535095127750105814526424010498895184139123195442411931695828064952057460960017245413957895103681917028997839029356605144731674855362372664321192413923089923963938816145006231436177962723738265098188164361005353992611618724834492118919899801863059020762563617071078461823004421723376159112652576116609167993991491823258715179052172084118301166157744743238855138829774752138728835533159397191020061419169493016953599248580068980072282765690710494201296541825962620318493087768438287219467972449776916636809799600991109090030399073437120474446928588844165275577803293849875573285354453355452238620758601896930479110816902019888529680000769747853456669716760338128780193509184982623547816782476510729635276980044362682309871792577407881481856510455119802239722862573890275966628268684531720017688325880107446954253031628014033409590620914886040684570826139943920918190930802494985508518297207240979394052084473558906713419803844947805200316400509610247362950637167117438105160937276838465028866285866235993147874669486376512558028023412645509129903240301255804542543066027503657940933272178512419560321725539527288617432013296784267337270010286003133575110625203088849245948508237137241494952673984352610955715512738606798446563033666732981143770738908821898673382457006614984872155376803731621352173618721937701743262998597130877330675766329378428965111772184817556214294889917973636145917774495617083842657144639483787049548831054616646042542033552067648843751265141984629901075597787547687000460638800707491088379580876202174043746276613674910654660595550572236092483015781532706101686150601794575043620798646376994157337053502007983258868314964067616611784046486046442406968996464556005905743666002715617924712947153619905594106636086486458395076484647693874788935251272381136637890276840971322533657432299224750790620897835932259041983749289476160854303540174780950204975169689052022624426576236244462302358337011989624849875979650766957834579214564511801321025147984213036091228687012238653856500695798708269340500712818106541878426443083118229239607330260663108859923518634449043132772851030017612775310876493012680723576821547458606297022588342368456006353524472900038865333727101274170674519466172853247889221890364657971097521247725054719731627253775472756534657252298671024392977938888929140250748898060342955855556158386768544443879630414300032105515209673784782630246670292517563537916533627021102831783919700430468095420682635358482972283461501234648455667739411649611642060496890221797911305023813365707122424062419246376318038106828166119178840034568716293848954247618086231894852379672563089245578738137398095318092250579389813682017957574504710336445064010275074147516576020102693811339335800616518083331003371923373337028733090280691216111335673305722564115930906911577243727311172428054078340977473121782586247039141257411441675477757453408497089970373814990180690416429566786721135680062368625141558715884805936572415504889453961757689203451214057665464182577547923988519698318377637305654869277487572498907464678351555773396416511764140719766843841060160944842533649786094866120886003285068007286585624292583581687494865758070725178045884632756395785607004575933014060352452467632418365957697830829417208473920172600928081647592896267810103383708860762412255644575642888753216712304831970874202662289157397599643741376878817629272555592765618582872585311765310731148437782265798245765243203179926240002613008945531221640104057024608562143805925888557433442916348519249340189218401810896050917519977615467997369762577685443078121122096189865927329359189287966190717166315448224750794255831754537665291116459750184759291793017708174112800178173183484822881946353514141076666225761691926657965948966293473061041124462923466640510598241405521335164414576305629579007461808919860692679387268205872699322940076888813445089801208185800680201131034595446453352942635011903835978656359319626089932162392063642527088690004213923874671250046215613734871088247639946485033251532489855702242872730911280421289958822404568523298648606195644660744543685439003436537340678338360997614857355632948554402273145492034599853314689490646485739802619694174452369842071012961523741325680784587860355131558177168653000688771006601536455416372022811441172753225529381682903353912739940244648139764799464342386914270193522932214674072406200541268563778409294670503338032097186653765619791354994240042037700275292542493974645800504059048490869430946656473288535124449194821023637932420154986805445669725411529583429379779024084787365732804987979645819562247798943071968794324537090926860010036616042133784113243178146595281326479446251686049440383153596879020433117043184290313880403854365041507404993179796100214040868433834155807449914042037688177628737857127465883901958095359774581750914781297948392145984841538286551788160646873259658413547247904133753284498590454587649411240346052939847924877782227734025605953293018967641410770119556715371109575158075106285110808333000995385715031388648416509139610660669135086508606152408176567829715091548338173979988651540201426646767829179618255311578594699000645473986687300205511269650445642908765580943939163676487596052097261215816482065416147653847888684409411390262737059623980708732978814885701985134193426822259251216478702381352141661567873067680935592215318766451813038449322089064226729825891763765238174219308938016199624954836410738451299499039763480012529105055039057637534164334003055677842276539574781923445807847150897154696575611073544279329124741250294368917531872904353582183528957417783846870755840163580053572540696704971819443995269142072644724260610004020217789656616369300596700292418090733309166109807425527865500396301836535192436765442895993548083148839478352740127829223933205789914129064927570374241850493851271936261693815284802287974503553690599931982434121002651180207706806416167315405019558665149297452310208369311581025603495490072122160948201915731067830045008961317605957472404976851785553145357700996601912626759803681271915485976483107982617277597655240246661318093223420214762646487224658565011640954345801457287404696278405218615367624914838200022954761778552481277855791888408331911252410408423359613897569540131262090187342541576575187390446737327949705078864587899011887176122022290703184039250144163906553070968006314105940640188703703717389816939257492485084078297376093310308147637632600102452991208258134264887974407462504807169142483674325787305500939916747475245523533929984597258819035638378248769209340824202082555613001079055767198864124855460596792729829731557039103539930097844111506600375552760870245011602938671778537024863202976185108417505302399074331547289360971689643449511721167310783385414258023202964683696231330742832277815128812000597473363571116421898875786100994734190676972582318374450462000160356504510931934952587142320642747498289221296455291094878911986261443714799061455017978485474588368008045957016673964130379745208971292324190616738512284777161610155080193211682799041584549805169100871879441670410921772458042996788774796889262359953347061203540920748149139304554105976255231903072608757373644854501454665160839525519809535511146574640367466257047332520134492551835653242171129330074891967610202585241110078844979187767598710630989152464889947343637705251804175334002001570566185902074241492340438920835296759771641821607706685260402912576644414930623371313853078830663896861375612696816265463920086608490290991852590753819128195281914212442323903061086920977196381000686121144149237573300653731159694210420630839739249745375339292521452542331425643655622998111300961486263792500568313830121126837999166841164847081076461935018971438513077751021431004418914954199582524094754804615270027174080945749809937504224035322293496774209624613694491551954334319968170019102981284001540466278506879124179496648512149053994141553833930584502372967292307834414210765467855668590979591625177906572852271257220580893259349235478464484028889294895177089686711410198014205590531238082043785019068535453631783032733109287805839675351490971531560869455121328700429937057026452899037819470131516417186512088458405530666714164205929079543089471951257147270255922056741374647030363232213333672799908916087733280331600548724299584458681159558696620457707011895717235249023517833837395559480023979372808273616428051575778420565754439895179984239427632192218088293525699723244182708059153596597792331301531540235761476552500053046378871686031819110394444314063150798491506386289000284226411603367724007912935312542068453006284834958549529720973295856159229434321610918776946370996839589948621113290007600944296630292731441232088151902020900819589087574294021096281046996567224160756588678062408311665753244831863899047721839761042330340790903911444120015805464731251319002688810573912539441118155187541700476954506082170532400454130510447543163787582052711517135671338470108199847310015356236566172990524210995483953052556641722782294729298396560976844592872248528677343088181644962153242950424190209243622934825479622173710562062972455033043530089264249771441769290047201878987827631590425636048681641795452764192184998068539157435208300093284698311169879563254573499879277074288588234793057854802869976286957523512918005087437120414198753542201300617522529461657491883986897760660836079153738255329472761116321730798394588091339448556381164160327255165413903165774326743059903249834055115758766099679998575600066827071234356938575111940315651075888964505549902939957870980895178639667182948306375106201999232536691815939782968124024796920962869619596183538470332353251197856144380332215383954482013222968426021431363363164062924629758193833069234246734400109103610445414144993038372285381474101667364223692991527128235711068339295361018867139368969227247790830898468968873528856489573469436136740979129279871558881136875723510717385391749990505642959826303391767873585750361882181963763228069110839069992093819555122515923402793476160217083435649637867527265095573935545325829342492277634849805530942677573013060568811029255638226029413135814744755389358590974947652556751114331044338046421057694231767907596610428954551153653967217227975801624637160491049544252023740314784434668619411236914454225378717022017497940805592269564058084447833261246009721911944146832181333251306504130054087907284563098906811087300770143587575187667543771640953009875819790844954504796242295969309022976402996910273502902384770625603412806879924168242493677126625209139983951644605281246432852572828426227519452821826106143996738930469492327999730165656965086318704159629183272006728966085253077286427617026120483012453014395250629123911143161356305654609150802896486885645261938542741385106677643168938429599364877784366629558774064894136289396259563093576942447796584501805712755137726731284049434283477997132157214466591848735528051702363271706565432902521272512785921732892466111873511577584270858246277837021707721013562010206288498360000724444501981466002033442928111436032526095251948903231788214574291369833188291309233001869239155018431682228176199017704288554613473223472290821090648161980528081878544337498110051491580209669908086025484011857997964603925112495600612999133470090763843928665174479296517979146442963463386259085418838685042955275079117406250775279505674999779336189208929244333658466248572375875102017570902154862494779383292307287638396883443599154621119333780710009099614688450251337957146177735876716259173625800938858764800716888331840244231898607463700761278206984356742938108949248603035493562484223563929916187730919886186556912997462391407685893880677478949458671542384521652775052194742489677235330247203520882897688592506230816573003155753928284374913026579866454819331196706115175228442349124755787357927912523557288152468161926394732742184785703498612045698627444301939668121873544391259838535430623318075118569966414790696082194318456352129060223874979374698530494852959748936638827362305811636588360596317643736406758457713969625546124797477191135285402245695957379410790315470447465894991990484022158339580831756783611864623009271016177812735429956320410508384931165290606680450674511028360397721592447654279599676537439782727671109346349367284377926136508871170876014466080797931670233032690525297205413179896084269201288697619725482354343808977798034396069955697385594623085304234147944788089169836628087828893465450000088860349094517343201356874562274813589477580328713729832594750987184550432860028357884084016481714803574977978260357196073419807717533091967425730124689395447540923426241870772285949918836133097096005407645939133034516783681658472843854180700931726957789345825562744042683298669001887680860607114843103803069740160164095433570441922285300146564116192570303351506956043240102785014873155699152001864454285282568838224179341938120330026180061253939501949019461421537255089348744395144944767208481305536832169188726319343953804908750356386789259095431633937781262206658173012486642893072588936931035260762596436181661092023865255744351061453843147000498912204415437442729196681933483232962302874166016113030368788982049469143526894849977403038658588965669440056095683752506682056472742269680803313413217231643282824771677686553121744412085612242616051484871496286733310950970927414166797593279395834117970753334662843012068259417120050732587596473891130826475756891306701766280312938634812641588072701202901707373179732165818100676536606653658790046682134614087724071560891383618180615844950598278618398513743373292963088322842908852592071830372441567339043009795015771515559395200861294008203955821856787801496023509773993337358903351198987179359101028273230117466122600267876828534921675176910438808559728620348591168990741592380463604664678643422366293435771894483325337142814340925527090304507958948568854382786966839953276115194857407800733034164364253175619232660093272913416980825472911326974184208188144799874533682382341541137039999365147954704782104825039766112947231529948667511922613656546437298018505584476689671637825299930030840113630178546018681423909494629137551067827961822358657100695427102275297655071705347265287981009994989753162304903991690169236946851179541911136291917119167551527451544818139043533078832656836159595927656014477950902872801774156042235621460043600444912631785405826085125014635442668115057366654712299279536666712497568077387943406561810279373236033039031991273271800008089612846974822928919892537597430752977996810960957255217577023172825996417791122011489909557031273957860973086509587617709772342057432451580355435709479876636775933676852753684718081748474723787524875862264609072936201859586496816823261028801174022464221217973815281862217447584870431491861556562527685273410553031696490217753747430463091303973840632511599868956490785429775196074174404516606593581938062947353973887417371376510547015999956850296550516315629033039380575566708110398079928794219390780642931781199158956254802811551622485712502051727994964409305948113585504178740626012507749509155061921439712283218904821994747523377736069012606633122250620058388436366833763356271227262657999437721863808047384856960842830969973701971889591386812362871706803010586176879447383942180815976057929070907720774754046756401214962058260158037562258472051200887505416228338179399376314394306011329525120574803743509418101215638901921181353514415992954620244423889642289476881119810288986220109064820906851549024798100961722472781657800074964273705999710973932290792969853158264969462314087036956931009701925151889478885861848397472448159794676224011002888433109245368138125815282096454686611041309765421499773401622393227351712931830418050274807850400815303344000981534282932056981351763183900958562264381189114659725285827910006305127765437169357784421284940093072175079362233010350876973245733916337803714045544289446011282630361328248324780753998210647038299645886684644960533681647161059004451790392268384646612028690615686109680775564556438207351899882988663794764744776627239140605562271684115415150485003294138388171902778711183049445729227001465801148542994915665901446637284387537550868579070659059496622345669274038921543777984745084937512084989969923403064496956552728503291101421284503739003243136708565353862738260773784572082197523847610029879190682746769905413927528764515503153434466152912530755677755122493713450405036638799998956622311464623415162355751079338077393120871628071095306627976803582630373875192127756924627738710294482145541028579794637093011168111701933755538917512887432651381030752094959173832920450772689099852314984266348852415824515565754998559660740119972805364662868851998337058047730392759090692590406519288309572698096794987707037788163107256592394404806862704306371582910245308486297596998055737266191716704953266463230065767896139649769797626395952425438749737242413752798245002505039069275165220492969486007263471756123767875329222044594480955533984063817019149101864324969510793609675385230325363928663579094354936309475555937012493830831305506044608197155936176535322996480806742741993497401593661718374239875423799048796588625543142972759959044817262356723026721696019976389051164450177572155982825025856415710833978438003502966419456839131976012339282385171765674262934870114190613521670033408434223455125561320576002667856447464313265971231456692319210902028328137452047851163379541154354094146743915703964907701071868516215941937516039519103559112648521682321735447999745325325390116410946553996733464765808349507763580734612265911928079752705878043199991195084468244560141719788474447835818124737887081188692165495073382983740886010666152500595742519968949586250254658427357602228791244976552120313693440272452389978331940768923778426402420235726116844248877347848452433212387233609738735264310753615238162169851746799523842964133753246659536782314243491280744757465448749778322106655843170416345178331973815318833317312599780120304017528275301936756289680479717246218852165646426721758399797691029332181711256564254133510880055058909683606902987288966982117258825974134732253614343460393029409542167884791533645991253963492138387371417737138206081201506057129969580117090144011719470192265940479947024039366966950779984839308986918266925117980176764711988755970723594118140476956855134621406342457992311913078877028306331935897122633809888855413032116117533455879234663939438810402281353950713411737397357250368412847530702777732666661343891081019964269955942281236715348662700240822288185749563395377115937071777219131232919109028617663789106848133371345560335548218466164159480074768609858609262742821600803230023071199983067549127844063126729354183128907569981832946769126251554932533919557285051871347843735842414878409096026074139192924719746301468096611939086461886487674480944221352934514071979644362385467813964647472811677080527949778240018216969284662724975965340284259184695267303748833652742348011522353514293240907460760230286548215939780273875841838872146374331666037335469937268612714862322539833775287998564719161290225089132654306420685589504252819428933292118704236383318199901437563574561408624875929455660827952639753639014234990290107422678833886613621537211062608751704974996799011423303853105439554081488089973733199204844334086024407087027851451165521722678237431044161899678153734276749290064319501628985451153911054777146787709255883695443658239995763436056450529991646051764636132848798393638186320512774621909485594203355920215159239198603716236389896391984746546140284999566089919645494075474857942881451336827133165436162268050496413402385179127793543091576318154752116476337877435404286376305767295414310366576349243147804577980785300369452402129916397333911737401569934838308508455927282839224550034855873196797208011404665082237763099290577340441052851563715253056843725507944912044345185187855234487174459785074383041716023164588480542282651669171678477431156000583976169819684654350419967859726229514139883077743923561218675660121405177546352693687999085924952926072049634114595172376644957998157913080633631854552938582055404342624487012268884633899889965563703493371957735338412812849824825780101882012375082415410285275150019217844380127796040045313479382556194447693899245722706583682214851948342579717673134052255912604797362748254012429058262668196354423893539854057923070696825263394705777754428175182632326375686881899450752539090954761034589437582131911572074045030352252718346024280152096211237996445691428908584674374623111341519403494479850638663493291558030029593541434656052162989862151757853897758451461306535357262397623065300544962667158019965747952383175122409225488354764558505521971496197049439805453940784104274544502317886944305798281302124934481901908881162297960298976203449771762284041225716134119398417909767731545821984796626167437552650591811448763165831025503827458390923672988414965819346442681689071374890431970412994155468627295016445773688364721393767726992820124695271137703107443342946014021601376916367312390214026905877446784554342120759324083838409802618190179411390756228931561734351751508551166587438772916604616272977321004200075869889301249844619989342988036667697736953473134858448165699165081498842698023996172618777011109959537128984680584181117220999395500239666432003029412209091559260841001781975511241527504461868221276709074740043176345317366480387150035166370246949871307365648143922033172186627261313163967349223753912709195552561002843498903456275063155887846875285635653758917103059753236796422662720071988064242173833832601550688186744722198006792714074668171779021989694281090288034312249821508970025866652484674130995257362225328409570824373459703268930497541870106261810168527045206443395352828126477389482173768309389991158908980404257026716583926054305652740212318065710212667352683883188877413089449223194206837024418234783915566153042633882431789904702475559129788530701028809070010443960076172382279641797977572661011207483572095178599321830044592915712268090701639147862313055598926890802069064678596735154090268563654125784150496818078971547918166143936959179565304640489052011558957812411239849836630149111311383092639337367610978192194430116084429923810664251151439946921441558726383938176497018253635333070682398045161428608778545522448504612000122556362964939412119352298055340345624349326852248479131132912830025139471101969144176117886875122049221221443345654771290159355058323628942590985406438638110015414571332537778475697205652876079568347672647549486077078392553038719577821205741626093471486826099389567897340796279210036442757878756289764237649120451635926177347352281133529836312211972377741431723131941263938060766761632280471886903915561269402477282458654877635826083246768271758713567046395068309244596749504591794609912067084183536686545324778748144403237130491462653327595947702300502393734522880471342161573103872237274228434656444214986116776084433973806332597447994833413155200005256022870759581210612765916226887723111720268884750918002429110414837679976492286152015501614327227600559858327749070767766221542823227278226503211867900272117346947132332690150307021559198364923958556564561119267691311928254253719659993650876956408145765800965503808066509883342449323703001698443159445774383825052687064091818046111917044524352708935505685269488407340415121127166063256705397611545446727489708412380291288048452614786645368633408856909427664368028004195268972982232168354824161015806417261561043042030139320082312847597996028606557392414025407107911294878532009651901074811470739247975778298599202353918166778414439524607026570536619920239153003885545626785342509108533491150328721374595832435960897917788829746282750493024817809575120740154965214989263269609750782264070102930795393668101212136461215471808201886681907960241182936063788778881970087908753725226217382707314510459424279068467902380974795454798806549974198035926142418617779956668026708176071153619149047143999385103633666133028157580615843342466127127262276420811882168692829090371040389002408291594351800262855800436657710078076445612189407711763124455885342421877159184861023635216698183188624622851450756256887529561366640139877414545754510255761615837841642521128337770053229239040880061635571710938973560207936111664023963316076226438606933470763996372536226590121234271150391171689005024454295662135407315572255941867176746165117302052121506742896226499890720127359775698502782275958560907351577537638048383175950912454745226923618286380738100339924498504708893115395732074672668876157333325273744972285515396479875598898461006059317477005815685984349286757002086364237849229134905097487314882662239169733641393078869054377749754496589940460441319585793167364007361994240417872985349526417445778603330680739304023687149884842661319583849872534264717438593133900080092489513466170828473335187109648643635853873200893767105661194764736275528359297534330750478645913461858975420694025592221575961147063899990811280410451721797642034898155673189393187956986207436145299166372775699492469752264359709485211969987871517788629592175196066207601989631636146237694053467418215622962583648457163948065266104285320632721452827764434856750507278327598616289313673415916033403878948950842978403120554919530635609077511584089814796108832888387770121167637162877416612494985820438309125211630667039148537159376984067799556757892957759242848896205528573268735622864780737410594744061669567900011781784071820444390328628570128792072743940155034913818489345797508375326867396405885106220258844238911646645035512410802760995366730247186683672810734671056869414262094408866453696500254141509069028895739494411760696128138568753754826426964751052198803530314274354087484543292083430361016110555315255544561058621093116491901765847866245504788308547442237696273774030343885544902095760674655008697827600589618117200602071531224685124277777514740472617264041969687954125482803369808540174801659372964903201607351347930382648040173572947845691002345683351900666353231190655696534203417455576215911910216631679319740094239360028377934711456356979009007527749098044724887693615293699555985456471856256098340580334121473724336634305296398545299873698772622858509439795746992160741176242753426805096706028043171705142316249786896133748101685358568200648134446360401883276660037904050293191025455019891068593036555660598368768142370631066032113823659038352739003106053812097224554386822597003800757640010442389350434958107939363069373193309261910961129300993589621956842583012662022992604795780847189962614077427062966834949308743537055359989563070732794035450449022822488495743683848073054102923707304129957026039031000228634375177249861148431423908172526277530369251036761266609861499152807416156895962729638700403497146892730381551454068285584233709162322143303941852449244723834237404522881382370323500723478704721788810947264911168327525157499872004208311674744051625093755930528793410002020192823145449436317730614896439149364422483645931938962450071924688039985096505017870902475593087843338629438392273441718223351834604640087178155095652355036374654531532857147251970514442196348459896033048208292981212336671779689195371147377041064153380726837546094386600537402265902829962817748737055579034278795632552022046614105103149056177289331428976448565986446891071754910589018156758693359596041032609079352800210907852286557692770738230070218297643537247892040629122642055268037154582361211356737748005292817725461136262184536100755854565803532957785032815424867328224984862853667603338356910266403256779659403090574568506541616706512206255792679873895285214493470699082519553197815875160228139742590799614245341014773174092744868819496287166534741213717598685354975266154338439652619688282132967671856203973418311696084346036840767861849875957922452010814691955764201686061236320339190023137416061433002668629818269756415783128260836028551458296685815016312180872124125443882019460142566952413530152114623590250128090802730541764108694072712896432292203703992538700326473610429676604845546735997879103976533166450085943304337880763835850805985169883986585624488063401053802919462218722593054472903882663169696606473142902044417776537361090742842431475079141460804840732460866001250009959212086992354302530068884257143552255757034070198155486872029531692881933595199138250891692227018407614539244194346362481881557372605082430431730697311103049843547872093035781851660835453357490327292780170980526544859151954209284163978909805975203929321828110684483729731824096366373948990392892426726719541553152092819918596637214151046835537973593114462328938157375249441946648071011597104839090683148636936102103479146149950481646577167510215612646565894047081224308640883377149681858242763286494161067948743299274060591288857960120066858772915627949989303977663070049827156854710651221744627170007527801324042028018881433326763440770809666173631120655098442847103149717795349136012698609595234005742363718868888714149380846027057129012421296752001208638237010917636334322444350835318279814451921522394957330331550265550265428662597263086367106505925581019649600816434384104594447648615061660269175442881835734687016935189971128093737864107335637720313745013370172409937906569169508210875828501822973325777227830369011526763793352484699406345608315845501371539486694932946963707295084060294806459279699151952083907108336256236465695528148094089879448518364147957930363220276480958105248290607376960513438355929967342477011186352783975341943978059735340019229458117115266189010531594613960431413151700173106660732753705943024067560768002118181205701149016632673814961441579074336044067839689049240196978616404392388676647443293020326861824057876591318780324532212661187136037216487299336347927981848258647811657630214351525782085053842924703787308920752400121838830368982714345700710550353645352619695427895524169515340231538162839932173702897915713076082248106737774626098113455042208789223727097573569384031197624194109803378925035254731773363183059141814970338463452359522945991070333532269535016567484591779213294119213452196501499479045964738937622256144730647653989515270445746444433251331756749417244232847398218531444025145627699417893709802989572569789061832529795558773922007003373928014032238832969537056538190123255154313290201800688417631656976432742480772673362406004957931278730354312125405483579450068460177142954577970520458459448845456238597442742058496281245868274057328654829224907302413279152667951495921674622416611116666195972609642191943324150183820800559303931726270189746520813693830313191667221801450047584776716196466871223639614319584224690768149700812015456355316695839508713810149391152668541023706203626418532151963329075445741309992619844325055533766010848049962215603909707995346389518479585876216020507128731451613059288735686149253548763119967976896124403757206857313309223201154574368013087253464684638608436465259282711672183081115514004063733166604473586387312636345881414928057117320857876375622304306038459080871463158441416650270095828174689137642211686762430112701001821359716189962729387307005225754462720452006478062262075550768542134147522061731917881494884662624790774075202275350750488220139240591755803236132270498555008381642778945399024509696123384064334356555035059855025247811323575483815040214915824620446509107075256057853034885029962129061646624656741730374186886005280410338224216293674426091174499606827381278107444740483207501943772900467526714770644584339665545155197711488516976905031312473444164592360632721582108009414405276144645642919080503005523094704817646336880042922421554120468574746225709288992440498985454930739631577121556881820319812668127431428814424068378612795372458404268282445237423806311552096069196289315229885826371534565933313309386016373252251190198701850162210232442714103231924331247826522705333532974976219050305301994280628315584614470162243933606573117411250017186989286131575802068469755370566699871651496231644026257340638268523516859687052387135563050158657155004747804754293824023175444148011549837245708913130395066472975640232044037740908478738495223650165544580630236182927058387294626353626254334937298753716619996623835486218490794358496886773985968357982738057954715355467500192112667806601933949507276179937200880188988448321207306607487458782576900063733284723133136699252977074497411779353335155713236846097890229789395336521275296921309345456535807067903060395134888120121985305572114657627339086374690541631170337031863918091910009152014098176118219052916984966523919299440250109256034171619674862789268570847641535598078930370833345533113900763119381601402419833437993164391467353892178664832433178002283809256464974197223876702736893775904488013295788816630039488668946891566113636560035513838219396184739008974085328279655387811705442978139415366972071689401429891018742055498018029762996321983220945147611851742491439427132420301294258508503764367852569134179452847999221892231411314937353713352470776551136158052213148911873715453853231826687385086661623365076264564201209587444179607904718021831160497893094129381137476647351514799044747619511994483717708366700402651490395983618170327124973099682247544238929785653366414504761243032912179180491470045380072985910591554970215893681529665767355982542126332679291902877841743861989929188601892497448258749578880894858896299973067605567978690093864702038835563973832030528133292780466215921102978188259203817432026503934491235922722468791783587220669420466327331710311540866796835322763633190908126812862793635372721780176500471537980535788608877920511601199560005038770675821788321560225400805462289050517785765555191848232954215081249009185016852193486467554564528905898123403420457907075749115374804476603175774800519081939991213966539436229823808026897077862590699625652835654849595581751752341907165297814978935299323125583901935769703380846683853966658072156440430786299981588623259706763276124280900551423189067926165889351121709763846237181295557763248339662230949830184747073048930246326058607964308896254288679156771406197968575284641344488378485622009271024363802731067485536118542412833787085477546075635040161090156429696733976201595160087383851316542784478469713345192619854474926568650841288914127451727697167199214563152355563263349853193394418462919649371562830534808701370693173944945461269664398390949060140845380670673462391622002038448419667184760419179193058304175332637646922073943031627684371494236421810953000725269167961421279555115266600743412871000396405004434810980824177757828765372228652075713572000015460410404214303466447825532416276110961649618581104882280011406476859772236838894875362666616631224231387592549370047743505194022221250105067611403609167000293848083327450432356649075775523044026124379597380062519280172290272343406539118038362986228026089681872283795986700385291406987311100558166123774562059152642435229706566924619016847320989048003238512382027899255029682400718711803284706326662752246288294058858689229091811849391756585680836945476873702631789839721198103403799904064628353636724721549831538485106675930699692746475535028989574065194798466528079950739206434217415345567461980032938442069475620887651301462449563925639922045685120024488133095546742706475701701146072187673413405174415766277708789880123833073005646466208104086739086097738305676436540800428237956598941671671896635173412196604103322832390336601632857065216508432044614177156350246953070619915540907971435777965825721943100949659532555900056993777093990877533448319395682374448626064049063575597989800024450163051074803913871819171704513517807783838392800509526661025365513367330521907847773847816680257150346435221624592278113075758885722918646879004895164915095990107859489623601791459655318377666813341516702474172575519481087386134351861745006690386073981908245689614422049221052672988712833950517925727991868452102880650104827636277309803047358121435829752086984435546381282990305348032883051115799960911602860381659000269321450554153878055480795659480439478554400261374468505760738870506909860724939391381484040886987959467336029979712489058352589518094840841922132040138624344335480086560188865672469056321404477855505626844459994606126612545055612796241176937838319237409599470195383789446113575185017010026236671555263792306793872566350035631708402046447541655580518730699024817719970879720924849208568778553703324177159912471212833114205060712216956145523118463500290203353131766924721756214785228558798578653852363702154686311745902309623212772109399619633146635274953422610284471420769287761659013738425401866564378451812132529460951173775606386591422266828755609276089683167423287088779900783130740902132340071476794798275246292473754491601693544384888691017951061400786441425726942638016280039265296736067102823367272811789239272550595028095768622549463510367631974428356724563759420054593902942404253277461583666010155058284324109725701408883200835850592695745040409610490057545248476560411268420843303582011422240631222043528743026932783065662567573192358310451499612109443914798550708731087903467746224985392206084056976289616183906261530010816875407957752482544760989776945622263070885054877743815583558916470333722403309410158954155087164341644801390096303731448584718125529192068501130834539980020032357306875327991212744075446033712138783157340905183423751872816222209257047865670440937158762506644366780197395528199074287455881968306723301842150391303757855629775921521187012734258879343256558885567488768326449935155143344923275726023746852031498393185664024239829590453489869800659537139049894173776851990301571978298417207716495072821881401599852666576521783267404977303730594981594847343720387787265952132984930535367802844496474481838016593331872436137988768415350851460716520040258239997209502548860589032049900278806698503217985716878702118185546179390480562675491184230652676305719260949817044291676001817883550488770029228175978381223127212104916607424311187496600699322167310982752115889661532143894459916828386719084017331385323731166949365635330592940558385648638394809474182821550662368948490921687092345195156381352500311751764973016356174762502042040559352024756968514709768887918032579607582510719254126274576980680737282667743539833887545807444354641676908439916178749375086716144755516717941491455408436486142773257818380666845337428681723021836156672505056767654336116731918120939102829734713402632478849956811718514325488070599243479545120160118968753451507613499529937298436133049319551840590116853939326695463516121923002224392231654543012824968242402475880094182071362197926668121669281876212614838508302962075720312514884917717208547066150966894571838663754045406478772694297658810878139272631038618182556373993571269723645316844066404116924336879277676894149185123740994218849767311824833085113319273099008216730709335990061909598866451417808819298015894801972362602881442053212320033630615801521948508765456449365622205568634755246363288974866239106126787605377056799071433959314505738322411455790780505613790199992279391803940727754218218453553619042908926278572230115040949012353385750155958487857014226678004076230347374822732542265002182597223510660689965763598698558316343263900539646178194592907217949459565706367413905311521004245308504078458331648724172264038180773123906070962438054016067988891433346216590528060513280347731009336428131083002377429326365657950491602183261895340024130821671179304614915070590698912267256678592423815026073273587076352200623888021593462916576190752475955042960478266535209250751603506287778697222194994755054084845086535140940505430082906285273497460944219137242137968690715244706200786861961062109366106095715519917739626039822638497530909950148591558062473818098375143838654190887732138615052261987245780210103144886174778601351158778975440636422814283611919789283375901528087007115583683127333124921991756554916993895639218795690433964722960086070109543721893901358028307550397441520520762238513245417056926307128862800251867195864860388968672823164398443522636823737153601320585422808994381630621420732151720684015016670731624185845994887871367901986004311908013718006318496463405020082063005301733026455361020409648950020540277094634035014521569805730098610822472143265369137755863348521791667091885287947884477179936670195621509887152004923083691623825356412349202436723124658841721873051789894219503691331901157618637545686476209589139202933786880880204921190643688159583689316085070308738665997955623924701751745452306442493331080988550411447097327149528411221910307373291684325970254164184994859987634608804092782950381968733403629656322817284846014975161226694740027489872699212474389130348095540872556144300268437460670020679150157985589295841657157333943239732381366448259187902345617861318821504864421574265351070014099601424933225841898514768500711229636794327049152287350499666558374801529568572683177452410290996850855910124781259728749621768696781127359418728686784341572730003569246515177485273435890971512814332977791421166989603465596818611838106609837020410790527520902060131995438541809764198098206991203410585564321251309344656311089594110795135884803605625337363986977531616302415785724432437673434763759641333729157698377340387766675751044335804652025704010868031517844266671146460821365428457644752268388205607955092849606606723840991943538028028006689094292239470780149258522020985681769301806300879032979503018410883572486609140631172733507232473389767833417796827020269553829841356879504115219521447198091847443792513119171040605885101055293337407654540397299216057125793644810824808932586809801895306534161688814083232800382237203179061780313496849121389912784467994987944163281911044485171738625567206948082780277102269893301206917616514025256913724172810270262609993519678103614450803110713390814585878439342552466427402044725029347796693234485093325402033551243940949132315325595792989981381533774835098774336676684394833615261728575578236083347006015320742924059160098732763054330690015344326621175312071038437879214860173675015060408944604997991245010452037451334220487345023309443888518336896730210866745916012576817405288334789400071482339402878841634343050042883978058761443062321759873221006507524136601762474668209493140254792930394662521620521938107104811104692374281525274957441649251997358996506872656933318353425346667241577929746825054699277138419996612573711990133977703192384889376205232174002035011040706779823315646227199513926382224706297499244624084313718594824134212504762470582774559609901117160107519739038381866424423894347541751393961347908440875653669450236854782940446939572684383914218124052289849713613157108749188903016141164001637989013946062593539258295497144848157123064506344575390881495312735793142445059210839345484283220403614725860529326319260265764276330362027283591377526232946337306675704469005296493102935757019446867678462541775546468822814796681763127303090218306823884267352778072859916266218393786900137562878365232872415001080048564263513075071023975811867673168796925472360587173875950842236596437463345519448181642733428904513574444316758531000344174592058654313596399570155292343381159473918655839019784084689173029211191576440223609694613617511001000633607308135130547584515876687140939794342834052711634637142862598103754312235369971374927593718750026619426362229025918916559571824159170661480326884998734554995904850928366860412361728742104624184139900215086311729299737994470862642660330438436349040388187336645820159052836035483246825997698266709548236438230701288399100405352338088114462662369565743586268689545000802207667727794981592330411750354567917681461357264715495397776667889369658018567919944723201446119517001713539343028145482912664829959769891763715979363421749293971773045728967389649242503478419717732385826465342860240896029414839646640134303166599107649534523139792376051578826495993379408573294247252089503294845054082376935449824279482736824870895453222187309649884330480370677606504272430239087145259819849241031201226577601270367809532682084614106366845436416688874264315263820264901115184222319833558852713702300915296388491486358757080538306161600689731104691701168802595086435809802120417591245342414960406288206640372431449614120173636247210205848326299079895804640977377289901697460999609611729347092139023320006223843862613288781416559149185704220545328654999009520674968942357389985236132674661947830471853040146865168036701344450070967273951512212906948458481525694228584113185326315508563963014532819308809297172507921665709067706184037529250582251830745551889896755583766024903188688038270027597992273367845953284074460405457794699544381792454774716473053897981450133392263772246980300178871967359867102312031935451652253587772075446036554700991283233905127497988194426235990556107514690736274098878643976934372921504373999358768097942711557570442870251344130829439798030192834326225719674827455014601623203321010378558671129774872110591273985899070408177083227618700139931856776406449121120744755568720628035555938374930075590878813110330645821516380030829445105596706316218151156901506118653134506231829506960294713454353785643732717035450003667406026979945463277619196180098820644122389927481994502569709424743777739323405150004811959447674044817167962157882396945985217926743743139433618906819850287240635028786843412732867344197163979687891557644347087631381734618536206465038506931488466143562865825710774399085649729524781814197336786643720929241516919197824014157171911465933096716506610289430086814463534845502222476456093342590013374772081026861758776895501845113915963885897818356079044680313310081489782109264087202719820215273901405524708371715308642996991885750503483649462785534338414926455427052632770002057764178720046138877332384873506937183396105380574566305356856713198400824611139219239629019586000277840532430157435738861426375197075602526479885615883486797781549404188183001737544331086533695188692708404331589212468878149872921262823149209683542576458604040947290485634475149591448590128825891032224942241579380113173447052973748521401241945369748015512432381209791945881579808129014742250878196151437605261255428400536207758015814064378446992014244827208512363930753385734569170218787357363298017442677411273424123453001682391340145716690712850832064734484534415313523546743361534799707274215690530218281006987110402309177752216540938656141018925211702075188597360303176072490052027848352264014924910432757628573063312687998264333799456056082274633139266461693124874669446036029799941790663988277614408348323407456236828082316237906874624829855606630885578716211004397837142389706557150693461910711907067540302094014635396579189046825425552210824605819802306786892576449649041090318049605631845839148307278862898735344333817547805827557425801779146769696757041086448672816959835778173545452230808315187669772617805265176329083953120901706843081094750287845702126661122532277024558900835351729575665329627375514700031511071877753238076864158885666687168963673008352238502732584526428311776048968209749269033628762817958673252951021546819859761546804756569487348394918496526638647226897289514032564097588292354867717738855561743303021110887260316521809840685749263646378211257189926326444854548235420635827908124491157665502616567623788227919959594999094994432281920916194609027506470501475864849448284452337120728822732356854222985819987164507365688393880017972437305054099387048940361361686462006552535024973660764422321624100151547514518610144662532969714760436628956831063156692882122383787359097239872122921100076789818712307458981163695548135647677469245089018115915984805472687947385238901215376294605890518965114821438672975253504021824325893237794659524581572902757209870802256431662182464105198688647672752864831418300688875406888449247755540957830549060326090602208595119449085635389956419242566883989154301346024266802955277740923853490376528100492327506620763277803118592531716235600314262376113672736159945169179864433014823552210334568755488891998110911762901199556217613928018500108414281898445641416907307553266303022591692464776707676151024569986026650468404492965371927950757305727322298260618404255590959854808104841009773645285124072976382334592890834133352369311443952600273297775077053676944293702918452805397223448030540089165018641174617699363293112967565870068396960462608587433819508034073032677106389143571360712724096657379272046928635910807919411023956664409674287818727573862767432216299730141388598588824823663712790148791875274535575273419366519103643361223745405548880862897360300533106610954956758240342297545995383051837804562919281103090992765710563065585474014537023882271327480116949965502051914798440920740340636167577764379539096487440321966012102638220103090567223552797905119995158091290927634580823203471598741684131180876693939553989731796516756026848918075473221510285473934589376245857948876956977501369940894961948901516107355671765208468001647419871137309613962268158856593730257697533012362768062833960316252172466795356699328417048049158129377461790870828652616577807057561608102139001298471698200206388456980393852656309709752300604662014797513768540377873573232858447172504249724297879641654511745215959368449576831779458457697586333407346920981692247711593296945539067992449176860869740854160871298973254751634699041054672531484955552252042526083807853353986622036924040604295962372965032256345699732007400368214581758443949417325241094753372962764489507623971200254590885129877353028212488807918029778237328274413280470359646202790715966951178523635819114721692369406583806733442153406345196023030047280175285483070402855170161024712957416540022331229954424804880998788371303770606855731745240699516823907465367848342293473391503152410400290880722131174088778120832557685063639921012075496748879196057431316769060727099567767794229893482923271218469235217256548729923563125333837383134254712497929926246699330616024379589948770036743042635693694891680286394710612706716088864680441687123108808561340682602144151543368964649463822165659106009057359140981389056208503853398703315167191401125729637231258554823568895330508656493644758004876625987927637063263267713102368743436751721485034967591803840631134757159155690775473815087336242144580037973601185613145396280799008641992030471303695963098307875796079814842545177700634091898862727285136028684061395101969056441529541248286112591470409144739796673973302098989659025686192748798414638913574286507916264044369445652144977048599160145680053884859457578542253916894852361088681413189110414945290862955983778171136264815711797703866774136073791272265854787566888131659941573868653027101973738782985592672238616547177154124900691172278319001267727245075091776233304211706436271908804367198326970099536468336553748659333210888520870973293299615340776611517285528517565313493195255808137293726169864662285851818598302113319736732429490067838343091193708196430220950603034336639674101143656305060077322821870539759686406701279008273320733389337435152992461904694993260597360071937616450015837731875037141872858056355306434327047128038631520596389054140371498818583283386172266173432458995027960630188267942267478521252535460069186773535396266304847919796641976589915119404592953956919592297322067893555827871340931100698297971894081147577317684991967570598149173107974844720654385724607047394763179023498010606436470868496637061955314526739121860300442786020560906668568821639625017080835176994637600120165576585061378304432826731707506518726781551956902247093028856572736950931408832740993161109893509561206405287050890078381988972115365646702651495163326439204993077604809768859433815534983113142256418422821102676263580144306119414377926442871854390125359294822693077322378503967054587465674128857706166873267016511046559418774763501377392183645951933013222182561017275182051894576925056625292908592112678317431270647159761693363207534937475750880654537682082386180808546620564035970746939378792429293362015892574451796645874983852234638207649906643924513243218486335795898404949235675699867840598018913969991682563613382538777618255675683828782744807325373972479463308094677430551190588454962085472823680691632952020126656025622213159696396407534467669033215151586899702884007244393860761430185457907773898793772876377083571555749099339400104195246883667030029528301111706232288635581802776103420959894269185265994476908634352093037573598217656988449966106401966291035744701069247220628384962096857198822276109945639398595506461356980335260950522630120705558833194269510604005538256662532558261544093462748747733858202003764546618244433046174989834671046302585455635699403376112703328345339512345779245052382749377463347778824249754641784395445763245795211667496440991435698231386574276320240364802330986168520185038688855929839684738083696906085792814246422929551162431892020626645293267346005720626331888175992203355736490794341365670780176586775023218498975108112399310575180417575753310786586420898591915738626652335972419708265598433014992410819601826024149368899188112782596310051610394624248388866635352330369407237889317830655711845027916738443704806265993981559507059985358619722939416736925468673255155818033275356613007197503428985779077532340483277116469774713880616501259947736532101253474552140991476604066191916778030542766328472727052640887096118092323669558480799468334701427309376284892429438444426401162795597230039091890883948168769351939973054209350655760294861302470309597242090189258893759960048932986229852826766477979917688214439227623776244590183230352368338607909500224598752615458842033035833265270678970560210174571313576007765799170574616255464247236793285458027451418845378771978159983135620768699521582153381572337734909621213921585339888916304494329345432475002204102153032705032192432343887615445320823994688184051668794703294818340742162849124368823463704725883652905554084901899719492652345224176404314229082247861189007514659980719403419144629174837388208782574408739586645314958916489683984628810259482337364369899937851256941931793263814665512692223026530275410638302729750029762344056915373533661263751620696373076466430249720179600852339360983767756342766097461796045838821771505459744907194408785891744150112023514131098148048748451497209072801845245868337228645564269104090842098600002273762443288193630211201350572420325504869854097781215162349501402991761404762715114065310771147940732509142727551228130845353537828679124168794082564143655359921026511941601389605475065114326392663280276420408529923629349086764295652945340078370333142740830217243174194803133475568627860369460940462965242176388911674460487247565856381787612411959836303213884143536478222464631311506663790042449292865731561143920557213125417009770845009756884114431550612865613657524928080128189342976843727845374313229530444950658525453745039271025252147929944356521896849637878215791884595936389831850966720517884917038578665269080485448050946830263542028188897231676173513758677740763822209560253460140881863341773816126823800385960333140541215207922317471355862282354158374280895070581752423145538431467626690811924471921451738041064267319221627688983966945099443788599178341691578987401019202459057283909119697619962525915782452431351287949632509186530064079814530690666913035724916046895400022155511802147935243648875260563677017104110906265808745151381516117989542572740261501576448172945206749336456152974124073411014485456366709736506092004329601495671663501941922024238471292365615927668883328879959504567756351516776533577605534590206724550828547345371635436519544183289055717066484141415307805540035933992584654101078010259124223094861461692571587183115310686379392678531391343422270197496231598950045994848699954266614928407096663594592656046615859380295221873614206068092593842217925012668829356049278852652988531111085706469666108539601689485868093126210674947679815807680232120391926402885579327345687261222055820927459064002755127221829581053324628663204154754151407372433120772175917157713767164232793147614713178147184856251571006271055980470513984894648106183484680767503583961021682086671224256818714229590308810244287339442227154974479230954211283014224958205458336269558336288323530639292189609993060628427859759284740897363246497030115984795011540616724297700447641417057221675647352629592550850290637790437769000713220534747357829958995167122155729608878105482030031814723801111755932608643130955393378477304842071805740626823641102763607895829292749726598895549002309581168981923876837436570520412810789578344371855876377994015724980304147682782818863666094192689604719591228957005091799157308998994173530299272740206938830807712118808127589924097884123035543501781769870050756784006182044068050733303485763013928685196649834072071274443911651531232809991731091681170562627716615387152791495510568207337629338562308607659397435821469626243774838005291125206243530342090506694171255065323772879518565227587874653394400406057920270650243439707601644374670958314157208958229123276381173844791796845881960061986001844286426044410189510516533153585699739187234657306318611125161014304502905254218828234427118590481399634763049486591536815009163296561653950287994872077125851061661273117662611276299331720497075020361553898114860042073370652041793941695145841543449370872620729963749247653774192033380156408002977107653345808493221935576535181207887965133599594737105047184348426188437699987163375628016473821661939927502518305083595844192957874248604896445193077034096286611372262620179399760010895438422990938842351008846077723236681874909697569750507278373963548998888499306823672916430795370632112815176226425115403398606860034304029770416424084213156232535722168992271390747040959988139652751765230103465625410803955560248025495214899027681242944603901824860014531674220477801076298075948182021568916054575303075608328309148624010670430371101479736910367767523131300016795114502592555924265274453265624624765715602825362697755745984858464752833900287153406726205698373605804579616699871191829733886091095208389984172610491139356421879008032839442514366123130995927635221198760951013367620515950505627224404109431917255579226544579185455230169725876854831383732940024308089282860441717213389453955790752238585553498516568711828615388038702344564201552499041740540875938548182391735897408038043219288916855876296578178411552809061511190645272272122900966291623702536248691983929798685229954161767592761334207100264045897289957282690041071967976571776378120854112556761333665449007451968356006156342483622446275306330260329975307978599296730606534474066970212819156535432910503508241025256331152857163206467674411033741866552453753932642402805400353940618745949406019367885205355578613711031154549371305931035616436156410129853963706750265829732338487540074505475407617121686431966700001501252394546181066332801174214684353592412446875956867309861145276179692824537535437923196897350463759864554876929294947154047534700235925237686825602509028597481433306227559573793483557319397694273273453961725941735212330990712522386579233930124127345674036848005693994297030808693146436857635917111988333539175765571991076959482638216674113772788374995228405882590632068180268801725245257652635296212714290033952559722907247923975379941817865564490779867389566097252893011562473888327870364931724460859605270675061836971220121043551299826404911236815451607703472345150363940297118247184866254837837604809302677330194213830050946119545275657323695521370279223265762129604011760605326133653512396759766753388589494587167580174321273349913952749075097767375449175331153875989050230084290090022395636602723322898663192909248042864410053034727088069352723313174452117159736510152402420355373024025348462380844496890297612013431680374247687524975742806645715917101106767604168649917968723373926682234427585492190816324107900032726950478635387875293296659985175963275610657764069272597106735900347780241139747137769881963667379038560520746992046938302629832366162310877533627628947055286948920424165484817572277716480452973714877713460210415562151500623664033272578419749579949011362236817454879346910475589580397372514350457344678361116940680979218081343773781425823004687644396744909802060910300909355048937674185644349868129683866397379703026449282100889510978692347777367149671251946843391522579360854234482125644375736445146481199319574518593027942982207248128718410909489598057118141699005758165273351747376066036980104350971637641126578149147923800076996259543569892712962315900790240378777427407353076911656878676697208227460809495120328547908089767378645152884637210064182547232546916180963331632924006308890958345440414842492943651026621926284696873722551672139729744284217194434553914399506689794679672375517883364266836830497750429248884645580324070198892736066658037532568402862846195173495127630385084978164638047064130696647173755026467937448808857330638176271911712283200897115881874291703395573987260113514565800210782712252800909693540846557680956178858353584329806689937047434037467607279396290302785204621966484699655141258104332755757664070787309420863784189642707753774690408225097702550460194126962223086756698600196663711100191316181038152057988464395237186624420049498714049745114961331890239795881921257158751742188241238915501963910790681200189424856366467449618881936099680927315010462467911490149833588825932372930998241096192771996303487815800701195150375190482313637127315414786583144505472851413002241764131375381872045393438241204466591158648039401132559773011591875716470015067504754328084755852357038833630781719206593222836936297390002072641216463797661313888456867464560275443937356669700340565341137648728452299425248595228637785828215184580539834654594718997469814782591965337921135254807642654388196945366917634417430609060135486957348756121517257355242199424880825709370601137631257775673293655882995234832471194482559465518055675423887970205486179636940574770250652948435543805145431232793333695873095738325003809815005989713251271030982735207305586020596171880406444014474128380413462099483917129230210818724766507354811591960575753362080637867941514385380851348863111073230020221999290932570352729044286103737051169794187424720549655508011076901817261297628910519701545772384311952854914740537294143420526506961570544907834190611493060141733872064100293631107806065057470534513539349786412930387116204064542151787212359844420472480494210305464758555939478709958117440846221896136011655709695569989148737803914029359375527835074446304961613772231856801303804853765218131323429786678276378322772268728692465719409567061070417111977075095584440329468852561844738710463726808674865222709041247260263991520523583365026947920606815357747193960772011847829461198613022892388588871800787161240430828490779921792869975870197552315558639750837446570402499553149005269179082549200084291261796472616294451857240619690788047205789240099476812952963383460105696165848445089440682203465242015034144694794525693718203281970681512664585626786325660084255149154974539517656153404225037759184759445338049314684437094764618460403596713248346193858061800403934228408986302888459330497217794826011105325800903434448600718564432695799055126193740701252499040634232077659343480159731997201757800329463067891582095093487002754457469750594335342809448674323375887213198447112733716126614132781886726174083807287554261265200910523714004514171443163679687624578617892127775426016244573561762790245512080767667987969163824612794218059323784897971132371224449859655581602130553454931722202868390777596407950304456546186925901159649855468354972812210519949508660838074665682866732855308486412510432464498850501194764676454697153318710764702563730715798886474427971170301665456304884075558442415224563009534889059299533460797989000954546580942163546496935770024952133792225694758391549705020337362302538206461968209354064350107072574748832554958547413168376370762796213342882871628531857978409019528841544265089783989493103841435704709027176838665239359270660134959022087619141589621137678109787742145592759462240610060128987964552327163978303659280905298598920582478567784058910989745196293983763949113738817741358756797212309063133817764745425455441323638792604357284035729758955506381720384503091609469022998893779439239648098265818306096625208940588943023949925012950781771450223001111194574350242435728988242639051958778022429942915136496616224067098175106031233215701559863631815925470717668406867708677129333293934845169185946184585495054160443808087730725722377804652089552834212814634491119365461658181262819087715343668105685452562179970991817019270182735482935127077622998790037216026607108204877576305893573247823623941727659278407267760464574663203615814276556148197254789636506292226775373117877339209068812632890338126198328095562860337626071415575168937427708902342714763248251619561881009624180068948244734939645110709552477511845993555785240417981058849877648809645518618305019189752473116639118763891350026686277491351405108569963524502379213746066228858185069302265251124630634559042031114288372091335627073203866245569329492509158787865455308527255106351138387433496000252740311421220994331399533849526990066773523347672723526985584025765765395729324466193105562835189461519755803526504623309514336175860035717732543304195109274116360559587112517398172893207916247067461211759755409819746644228763578558585126743504595467393808333588278869964625817877700393602566871139338276897267035882071740469588109526467176009316938918032072779212069012878018292683024234361346994132489714484048539100951325499815646469160817254336245596551234521394876650842727472186482408574695488171255199809457732255769653553744145961087960518792738224177164773584622526583889232172069872233501072428345066994014423723224636891262149036498578890709117716156019557503856052558056069690549916613865868589694291159702907745525522517725935612112817425135058858466639014681508972879160246923174758724226007405787227639578725483445397166747882479471656756539732145018650989503107951922401728595160688857081218693568871440868155211369899402580858510171478280952932899127717017368519094786020908960178230100910350792843137360740007432377336800224355761283581465740030396322752117314393442432645072829438645799583701378463051060830145110090866638771139093930810327937062442845929055366330593862321923490833748990365341980395580256905186721537875795527820112681268671541514481430444952254363512150196734856485283852722527179138999237071452671084207713873820184237922707002293680317762091574964401406185450099136277617259066469714362435463467823416808043518851226213947243174759813134403254037779223350288034766278290048391679619225809928874388009651572885796330117277356801163391614831111687973305417358595601735174230018191330970194331293772700525556819414520801632380929397412265025703058351238332876522105548633970773549957094414420994822500650641417631138037997646043930009840972067369538290919478311641610364534875433358475534471957032175433370874313249867891710901523855698661992554565052404611641812968727535439308739320641716136774064212394704618917646093080500907730150904195148251422914234707466775839889502418302948502847731716495455286099209631862957410578835067626159817892496652443593110558334519423697453212037470032467020743154760467317246325703967317689739452556816580402079484349355342226015428700656445152169520481365636782833257510778044042911390162343611820121701517366655080056829474918040078396020105047819359269312215136973720943514739000167363273568116661048640839665500040214618419258309979362821791776157301853583830474889702259049706062175280176857759860632243813417265885273096006849611404610422024389846001585549271938643285694787229305742848942954302753514397469355321938490208735569949844897635269886025511970752178155204813798064696513424580985922110482477827285418751951706045021624667094888788409512575407170252006101564153369287494487027310866181516275770880041452338246696271017011969844462075602743857769048210804599063856814515714124854225307350555443697607660339296595961425465033832681592522407914623582499772940711009235822363541103417489770486069709546035150712876197616369802095864636999077440283882392932009528120156271487539937824726233305922923722721307176752576808481024455766493084233146924081045315793753976154443568085140872078347957600398533163974184137574569992060372125337257416327655475374523010256740330021429649811090858204365597176275369418219457383041947431862717948878234263173691711170787385116859848537959039917759943780252144162318229276378363648107830968412740786850445915577748003065376239970560440303612159083107205824708137118298520151326557763303463306296572404326556272067241474734176607476063556752968508858965757116728556278707557466476003812487455890570987672724896717072857958661126909966732762226032592066029853701041251953008355691787443796459978973066731227540697312815901265231077750070141929853371986498629975030820941548906775963030901570846577978782276397505597634766078070653505595669124771545999587506552977492231822852387166556886522273519343439274049134157950483648752004851318247991836034646747452857595888276293621725840288937878573059481165194687719380559145154965810424594135846203729043197990984448573656095330093906276885774973069399272116367553854983926277388684707817361608324615300629369189155124915619368201197739576656362277947084152899515580785631662327358766124366777842721938628478071888801997732245375888355210377302024376285944903891977116304601074485421915910805775030118670373007030149380080753917267923823817409084323629871973253838044413855340791521448600549846165236151912053506684095134887352458079095193033113298575774015046462534033041857801015275646309278844412467340830393842511925611368824478378983458112668290474312469872628955587675993060751678195030714902680805576218079300269124073526040725103889646629123954971846747978462825878789673640952385729163563475594752583697386423701733435486932179839582010618481401920301061191780951664114237704443529884776545714897439004917517394158145253810090815280519955079887976762214010575332156772672462584948069238092743518392902952249820332415826565895919589632669094102952112559967354958117552831322368308213849385580066570197231405856318357187551532599845394391315079496681868782488867285091912386324795085204888715708293562883263648088376073028772673166878543325270987933521937132903504866098092911045768350959921708047225050083875897435530844338177598543695206163717552786384969159503587468869772896335561977762933793543582874202063446577603194512511413954404701605249626964122129032888682386051616930468883794527500894146296069495191144668210298099416187010736021703237541316065650599985749979528929407252073993842611423832512744536276164107915024339598762528548517381353800020786130701353365438054215200725435038284354755978663687125787419952988585285115955824676064200474525239397096265911160697741339214936945662852501716098452159137759860742245022666735337371510784771339391442503405063209594827609267516844690261787516307433100716485019202851551992254119431988656154640601808553759828259237775010088101395831582684869350275302641204005716927546252257628335673674200358551225567922071842584799669406447485912613798852751627235153149119424344709978394034584810391523993028604442120181892299643840698359431154751140189027197025446897740631918694580267892830844630909265893087933920232620226616687818881315525813464780265313890101902857585115175700012162062190342648423262341050893647562032729561969099555716110750879397380825717863337434067483073807531700812980355855488316160097889408020456074113250321806728365096975092287858153380562794399091397567525945892972002453996635078939025173779604870258502808723437661145927785047879562498956071725651763905897166088517353045095486745047650100192532974019054069646235511817363320742593256233416117948732941188877763279642180357887005468764915552003622746295998548949699301489373420790143392856682596162436981511633338536465170441093943551381623736633782098038143958493214955899362281062028086984657841967238986002424350792973956667982331485561736771757250738546499339327118714866000038533311683445849334918000449922773989975729580453904055290853582383062895498955781007555358168441984561799757145629265245970822936915393818563664943847690770210487955080781032476015313967057703486779058584355337207997295040909351176199953951619180021342405792698964401228113158934561512704446140942702655340514172935266061193598496420688987867178309128975082904535492163086581906737427948944694668664782459120287309982449434500974683222067937065210601321104171110296224438003403424688047631926369209185539565140547413564183607775115664027968944465832128539348703977653863887883223159451802709792109102897246854549250813335266310102975999182900096442822802038908381094315008171727475899804433755317850750081314960672276650282018605065179581549562448322567494203775190172923353242211014809007893070721307882615893784393594300506897209323708754895396914389932099106268808468617337517741748260853949651752310636020758199771705903447319687080290357726092918878973339358456053625242030450409592587191265027355845424870371694787201030567898793302473845253674495446581884718240162694788017546538908657935275121889581730339177905228151611874058190680652233171852671665816406152015142134555374658517017366978955851493960136214772062064782635794922828578068508178806649889174199893300705093617011983718137113245460269063674217138157645085032344297750323477676658002326874451079386353547402321109874928309460342175034386463903948595302849616594997666411175122894167212373616051925953702312525488665756120692864387869533690650366985862018224929449931492413750896454276150928000724657167327477981927438276083188598422706325921366290671528572023616729602219257694880943664543231030840845379600793484864565540552922223488882041692134204581750900027751832485226551471753504399413073332902555543012435374328261641704149019089829017939068526472806535325943595000151568116856234306021647475347223988833035360378270502570003174846128559611275147961538931516247609340428654777031755362631958076581886914110983989245293800585650769162155128246742793003711088712229569910565881013018431946572960973131953691077394390072155558123173444365670620599633209974019513834238757472215109055449008166661297373988234884614541072521517025272303442095274095504595931502812950500302710666749288682165821474906221956657491467910855368995522674477699720807909689028022205834446595416034217996358983798642447446731482345581164475723491596143017109499677459000671260353773835315083861279026023156951840851517055285052455489377946106037952830813596965144617541381454168821431341936398927138230681467814073550449215066157021357754851494838879307329853273371490216595524503196188417266816967280886547521444982735461297536891989240003455503865634818926070496207426657716122885293399411221662782551879744676798818224212390882795615869158723502236873465924924406094668309777140908726617008483280112728834578293159711761019162137971207301614035984582114498730083036429893159068706379811031319506132768315451418994395989503251827881063906674794666692132523965198783675642817354285843447366326922197976065721923033129031401950085750772734996373966207863423163351266402217541716608640734227888150664972328632573835251912189439565769245428967344101163655926025926917620784344936014072035237510370826275873259740687624294907109728431071879134955485979148374054111597159123855519804792103165504142453426088314698534898188258054399340383059712767501358004262952557204740396584978065275847316851182332953758578204953181719288345040752251403762877687435997498755908522668706735406567679883870314645928657265318318674099447839260192334671208885572315051827884560596293882955346733582234204100032075266025048293636797879966115952333664115378230530627285158660875704726355029420001145944085154229658003442365191092805544647385123344705607506713167056491068908395443897320895011330192817957779910179933318042618278231396435795586317147351249572681887411183313195548940850004538897494449036696731250997681995154861450023791273716288100148014853862998823511102295990115067539766591945513269391267837407553147963752236959119983131087766040129857698249732291624569997412644617939082907876264221331604217898319673393887678859802525781941389633141586618150845195177840017369546186564116536125886697544466787621784930652002309356878732796979796990423317544297019349129808297713548542986587997743726681730444684903803460915741928138175343568968615054426284983890013364958073755798193872492611399259770473463202014700180781505202917702019614708084977969996628460543216067930125961912016418444927183984060463384264168317932101565576617941819870570149630330143479060633495406998958840054259428291627061110840320292156078083768677524634369520360252794148871212233480882560516201885430612838596737528355164134557758829853110869513158508543329485029966617739153085919899315651561578438761627429125718363668194340890827295452267356493661379437543883559963695047446031191435848685729536677141573083912520223538580963122440733947937136372651045742153057025409075594436990255725168152492174412936561707989326230688281701372617258185212277715852410321133691340899778686422029632850767018420822982798820981222833697291955824848346868215190579831792949613689767453319792155864186593886665307647295714422025980707560062901949844501168250186738870070294771930775284764886363769259306996590493313012875737530547042882949374276761274838598132384464922020002592140763713650317522213208994785648581728738493321658029262987299461114671475493568108723253783642812805175299989369989342905846185317477616730370969242373588572565614481886399198844480780146514262525885505827819859685944157922761576758847624525306421682239983866929844053390897036815983105693002618607967897053121241892871211884142878269309108001445439481108139739080451216780995984277353879605168398188144679293767511931086260790307621542153631008494545528312576894685219185841502121146225831245752359836798042435476307021818936848156711823776359656494913481523576462702106333514619535354046579316534581260747037376342827882807474013881939159539278803140413393335795598236463565746391904044621568646449278459759048302818817244670071568822010472986807391809726812893004549156005275685576217101302556748118171134075783038166555633081861149293221689312631130176619054499415594789239526038520568883187813276781432158703060784377286278797675060222976764508887480619311692044998535264892757597832691724122086465279333976921639549148841190715599058856044801835552002891712899000829880974292665384846533807865647536189096901377442959302281249355700033668718153434572456188699960855033041853336628500043389702238673195003180776340450151450906386587458218553571407936364338431837037278034517806584407421120670844996352599969395409352655144351783954696719899270752763754965217526540838761578102525320445743319186606432946818129890959217450350123824297795158826845388741128813918871289627662015904973860840267818440951633376474750647674297091716736095193395101634551239979292489755571228784211639351881696727715901380018831625629308376292122674745175528128839033022416054883335786549872652542215845245587779931612986460595421000789824624582556471558280128155623365735980319427969935376743985616502288629568311132584489780382936035525655184214807480668628345958911366841643867967516584359805429217341564329877614274640136035088194493242024848687734170601386568426155147512058781050775365227846071948430692516525287783309296712280016112239845300054413136590242839321865140881535672099843210743083185410386626922192372271077540741098334855735206410091834810676351258082419717875966964949975843292765966589935849285270876941892410203614430923788930043887209608278101289222297693325727545188665576206186602720173766321220363585177174199698964493467194157048660056391681275401001316120482055778534965720288806373268341979633733329345042268868156116571821970517569510161733763715507806906850479137883817284058150994698789797462080690003937314320338114225228090943093162807276942318282719265421042361827277593183844995262413438024177486857988007338405170357487067819231008415226056663307903217440282071833359532500606046212096440160961805901348604993390872829601415139433483768145783201974021233334901855921465965580817580783766454874579576491445934684854858483889743179867501582609122901815376362115483012080514120378179794647551989723673300913881606178308017847525698693401213875047965283277447386518038838927910047433146635589606155562334788303669799730903692729512722027568613739448991794152480864748649025469817920825296872176258546835167222540551872799847367363834015269579282032392991919934659624656165581632114441231631908616834574842979380296015913769081721850092953885976710313247348767264009092987762910603349174333235192625598349491550181632865702514469247473672526745498144528737002661403582666296020058925664667051248160778766258441799532529172675878518791452136619165751702667836288665363278586939544200657648117893529750593352567009393134040806184115753342782570156509284398877393180600306099046636555679933591966273800223875336894878105225280943892052860843444084621478565921178862504784826660250134419596988164503981381522363446757057845001926839381657349356887062177655893765551198426245088140200932320774141590460975235109187072097609934346745642261119324241564891378682127449271527430201739905443069860849835766791664343250520693300775957417757284745834107455478488917136409909618980313707148381251371775086143005941647518898663769521806798263681915780398040247942353585100593861586355436998489861776023413983592407168980937479505547857106179541068124781592367204557848550887364527713898617864838913513313836681706187180302570974532019969855907077541431283344222041760453102370621873951875270890874935894888873675135318303369954408180506089827427142012348649754158201146213256822862355348018933030439593351646764361991211735970669466663091543454464477639405045596236545261977369334063910552998844251257494141503356901208604196359771048862888074067826058627797901975508265555483410741292793987138964004842141019467686087186726105420316036948675607082521620326939724684227925604254347581121628402542398635344334614522363975643944472265225101979446876106335750107305037042254626006409462585768920877571555161471759080501952091395618688504520609701651350056198921233116383723690080359127931904881468467199911722511186279778311581480809207518603210329218350807701526884573234421275039193808167985302062103945654660499558209938721150654115387085285501395365033946977946105115170793558162698383054656585926853805251354069128939156754442102258506284721403653648122334310826917761043797460005446640096566470565682571434670360771771178743935177797535409206305070298426023635041226076499544364026216784396643813161272665912678205655705581982809493435736501217480250908860415811316453716470429882740881608290452883091828519929624475573043853150713086845482728853245896747610813394395079250702796272219448540478108352566971632574633526195456784430967382544909510866583909444895247224944924776271265280953891170238194261721544358546981932971381933824418205349866319747433676775243826584427659592632727857579083619325576613608372698087801148120541138225809166522155591630456797555712079634006400946144345979727859113364829989650543051791709979374161531631598767806234571686009344864322684272692195532661015812489383823969334842078506220860423051188677873835170617098809741382897385682118638727026876640509454542733269906490327912176584901787099944097128327803285437062331841896688076121655732489858969955804414150921410900368902219726178868749340979081783674231708824877841880427499636460915142521218269914709127666239403825331108293101411787789813264383909837997770660694992130440778796409996964160961581163323861221657446751481065379749457984917169725290187119563382022001206095252621568970295497168745421420147765720303327608984668084713166198781493528094858536073911303915756170500931102996763747939963842077647281560712218776126953901882540190208089865141544841951293280092995944631307083016873807357817074800113356354010591017197617685610569771140138502190965266090396615248987422846490366795851271472082979016478679492238629855934268880719676789520052664483095954673632236032472510416953353557486394373693320290342489043666412433787673267277379102533529067359517291977561192134399210748766643038967304299394096769267033574121658200569852591074857537519577492644274259769794053337936491183951877783875760153970879593558940848461851711287525038329083698690816948616133953238720539070271105128584707546087386046887842987131431465321627277245722581380949068161422044677982948056835010700616535289725671194520665435467121608765006955544429692363965223200219023946362415523838751543981012998508544233513949875153040769773381590502703285032371186687910108678720410543446820174277749048375664228218663975641861673014139454934800641486590109408476105814715042674204285720198513566566575132561577547296194664074051999899533593652111883129779253328873227684506913273143491705722163283574777891889922794657070885269382868771641813815934395188749008552568777305499066501421226830666613055030614126096970823540484913694403265307768553762032072615249792006048357861418775206558021459024103219505648482552665356669779337407147814776846891740371592826703059570240723584739958237062433305163322123094177691722091559218843984078369014100717392689704355729752945540357884770635077728114702085990014777811567219959818612525857988804552534964790580874636333982657783272504997405092968562995038330175091350616580026066753430762136483631425071803315512842591606733014814621147841748831627654429643084248963659558419864895733518598696493398789446776971086899652745447843621214858669932418458985230835669906750482749187714222214884524024774973619115686498422658924780678987293557894686187333046058259173502217466730133693634902172074584232089158957531166415150554458816192374639473750070000768845217901373511951712303259180929507468748664355676640639199497484725835307663301391694294451047719132412528854665311877336338509452971705226344950988929166224012467050437870468182037815787466057590166501835471881618675838788679423008099324030786920068407583382191757435420801937834197866282935160615903497973079613414487182784836692521409973045754391185122589189135282036365946148248569863908803354216105957542406640574353539103112463612138601044260131118156005270563919393628249526773324944664645926679271159364539891117444502802641612926465786059653547071933093152155941378057918846678162667871623144191401724765848828170933751390565343758685233594421795703095165124075166212908627987150632493387042680267222764020910477972021843181099581024673338895009351452002468972578745868346627918765461613034536934112875663073351139434331915883587728431091572224134323310408608015907348874505564373092178488621840155608966953039018080634100193837511434930071803583468965776567916799518326926514280033120911766305121722401767526365322378292748125030805547946053333317525210215391861895693614930981615954572578857245708839649321248791236293219363761506476277732542835254812267266997694244938835274131991308896797383772002939346785739932550925286763892860685454133980453234228900476923949152819894940945593482180408947088083635622939161690263511958103228129584212561075373605006244427965643213011942848479658820639249491301911782550007983071085910344735127545286671995871580328758867566534985370336762474795960301522610405188969735438515510156509209783095287465074301446195685028094213538206027397259268934786678207330531635887622802055363039855721307393407293724820284338862986151083620320203419076441544040564971085569873729202910807382202642064249051913477984521135637221248334419897032481049637525269867728021971191542853637013396042214978463922352667256680605234994101912043658472415189783459641826265469862318910231988037662323628789301685167078544496025987356593140943299793850263967440947518948418764083579133540161168313725372368838263951671655543417452575979373626502946532361565187195216797149292649493047212604360863048133752645347167024700275091400727472168636894946647547374335957841263785002008459685651428173033129174721124310435376739507997747040646417387878513200768814083021317060337594224739757774834160526579195774567445600643595554122902137684888733246797948028927032941171496257979228011588393860546669154100998296449453596640404118085536580282845687520704123091109971861554137732484346282713327720746762497745492997445217596810098511408510902331726250414565747072195128931466787183383597693971664404067633678058612548112190736591540546309591465585483253440971325684600085042864067083233333799992826467695604909222611565129360990270086545425761554451373191436394296190199457869528937404495972938055463612448908236730527598443197666822428183723716200106993119724461691414274362328228620247257210179575170131918987016540885362089033266755300894437384179322393853409731841981409201196892196489052906255219073691847234835057059641638060174801959573473966561411003800815014823632015104321309906220497302556579067552468095302022313503623307923635924786831351658552131808181035052392906991629208113437535917609326129968130709473729601604579626391777943749285637008420447207098053592042248349466595955234597553559993534464788998803059117634199193423472778545196510323783029660521391841135457648071756508215959654004333620275865384229327062441322714833506505774021973959574398309090004428564385781465410245818905689735063147208183302221251685805376525342192528990535257171273011752475044384869097665964875403859710591502468194725571545553424079115791521408791819461897497040759464660316801280819377282501891274664141716955787081110664115744503893960494690902441323962059221988297099035947135884979209473194184807328305347343721300046198301193985994178144779591782823360963094530975048015155701535395110434856142380656071767001360918342730629581475579770176678927091747944608582197223966121921133062206660609500350524867285456321367566906180974600403296657522693278141303130554761642975040172352922641288665089676188878542517062467576271402554501903489967479858255976608940463596593978897443566978213022652566102188087867532203579225065523295045319341293346145319912547471447967876213402594377263582595202676709343311169069188181533573773293347996312627517931357522125730798712343167703211896001032476248810366209719547833578692246374354457595606017960281062145502613708059098340688989873321940370691766464145471055734326918246830437907575827667426965360447504724629514294078473084329552375984242911068103319596167984803887247870705685281655797446910329744889040959373498399762107627763814326702941136339711573429361637859485020611711460373231766280259027284525032530996248825274788843592947626231111260639512924469159124318211654415137860572032556710466802593873324932114817155752428779815087882181154437789164032224222830678752650090564791863942896597374854070078024591237758504545933017552633206640268248434493694771546746344583150257597782399055993801579346047122807359446125846156943266880880189741364578375252614303882317080189928269816642157558128442079890131452136116106071970042211992238181326399283607125524584259317026998519591730362781854585521374942256537431469365350725358594475622412473512844932752427215135684100002334565942359576640959465844845893833881350856895564848777997898132519725637124591194076116890775292772253450424600384489093565635440589720398679960830857310281955225463158886492479839349742076535741576618959594363388299401705632718417180049887196455293983422540762493730392845774702782962928573978509888611714352466638136903877402946910596729723657631794083223355661977958979611952359790193110554254000055581980292272731453983846131663931931344361428032907976484075411300766793684459764881349515065522138358462284420471683309100728114486586243944027130435472285181056709566210593255830303968205070061836549631712126484891937892434244029664924801585105087780153132492446941649253942355865745164630872218633809120588265169998815022399306254894281239771775095708410889613527936260274171317884974331007387409307708378699456258739317530558053219467943370568650214823761924488167794331038927654106283448521846019063384037751213814065762469596850652914881620929512834232738414348868816242345332878295114189337809602171757777952588843817100479231107258346753287612230419151734790769833818215356823063133860758410161291055629609025362607718697255020510283596731852668953916722490774636328475017843826647040424943238961569540017680616127712704791403407212076866445990415806810426713159036331017712210196092440970277619436850323843745191532808979583662324146155545596096947219347225277570303545982484528064204768737713518189638293608721342735831133691810174368624620597571983586255307138433901872837345631506849309028237715479198160390809522033098619448686356973989856786003433742062432438389914488433987154509603297140604719520251019195980477457128897015751611739156021603082219047034673430264239317404302828133057080314069421159908496040390502275550504539748026087759067684551188114467928516060488784255729983540701159998529503340781955657449608640402288717745033591503346546739122133089383969983235929669930508396758577152302511280228960908039150871748255655454851274294782836190353704479830525453487967509491019616587266842476373784148240714772704860977542862270641754249007398549107027254314116181151735560535515613864187539093650271705541565022142887368411210031944025437579151880657911074149565112338277871198200849032969669284634661480124976523525632591196877532780849027928241990805714263452073313949572837945081938201210479054228023433139976371472129509590251917903571322852320615954989414121768177609222116302488400656311025955709834257239462123225662387076281601160478028900228857413453057293774501807326226304384087617052601467043740545609489695109902398268295695856841438080033574952657732375442431998995671464766304246349573747989282663990306498866010847704893055274649377866996562615517632577767935627973980503053797558286597541021798752743124761840668807994432863631292514245843142633753345124787099677284703138923980468349505193573826198520502591424864648327061413800435633715795206778810279025087058772776389566666189905297746285116012007721269045526432840845350958322611212899557402305647224206588112283175150904976283849885354533490635569369264894403877633607528240452225867269523675562618490746629014353440906824962784351161150144565596586157790263854244025480929263747341576916031590869965438169197522617275799484403173417813916663403505033929342009504119397622602418158999940354835604922680700708023722873682803997846129836717006739795865244838312986614262922236624213724052603627296574157179466341206486919558702333717985295332310236009948280158198128038624742298969382325597512774217045306752210612470156642478546701367945871107761846362332937194629699705773034983988648181170737987922006599141124558154145004743469891337614336310204544841228712162780388467367233287010951559236805806649575148545779342607284565671241750373588414130745285449020540454423545243325095206809609694004731424793429532440229448505373776512822602378936384852866821582611311604208474213774038802796561608058638683647258423335259402038517472705625070976593159317426988752978311890456950447056241693278927248544660340982242723872564908147273638080905645430719875987548237357115600797730810120110855726255967190866280943760361524162804332563994656594405400240524057326379582693623240606706186025556913213115746130316163101348245745558357036284882335159791402466423451276276160480622092338785752904069206748929029955495087529337980699121764885545859679294225771214433701645865692240969235379708654691435971356317191636408078970321102134130531317125004537384876756213868407450981497673735262691251396523321093144226753993609100965570505982199002363753188854848416338275232960314674802184292408628438385031317574271609266918743736071263089347945823534399485622545642675982013521315298252568245844156421880940016098717438770965720192556621755912656472285262635800811349318052670066958038277821879750630139753378201150794483020119107894069569000932716268277393039855935032291848920809029885206129569217425675071714048652518946796425296964787247121074841293090568812665536272315097485000193307160369287088924484318114141863179141786150802456401116346731785171919162640787222420043912652016905199216659581731747544078056767367473176883752426261235697854777740787474532609956562956232502392836657456937548637529587770894202425826175538110104615368214509781243769419574313685514490491738700412490265670391998633900156923604821957683261027885096229220360969082444879341614306438588167489698090605572944641556718626180837020959615363197617437363570523971601764981735959017834416273144806352049782880727590499720376204565430213215808379063806558078817487383744709617459173705344604766295514413455286531639667545082856772804741747060767080060204266220327434268530233147701694298359704473801347562714067208215566982190281154292633027355195088985113223221898625522854276294851068260349925531408867083338861602102782032942912074858115067912387861921620467208399976787880421588290711011296615860294554388851374245766445419188662721194536272231176362536170960911265159592810821985006061145469471072644472605316936798490950141478113918035652986589515034594617481147450034662795745623056945255493810760514782389793155018814359307892351173048011868153557106477090252199463895643999773614793651641623935830030719003210790650023621286702941221187437799399056511741951777851800255120533320260636431085518998047455955013367676206346879061145460196576384345778326245208697036390651239999739351485187040546755791193147026979378940920445176116031743385806302194483911637158378476714802978677658307508252469612842732061508657219339327343961300788887706272379686109334950207817891165826007617994922906070391070356174279198748866429039509084647986269531654918054623487207856516533861851202917491211853781067183574883087778053693810483290954879978036455496128542456009191988552355292084054850200439304633716479927796616364385901343215740904384459532307910455348900161969204062408824325779402293080564496312242077808456176556074633026011227498534124256864365691904171071640276500009899462916484490862268419814826966521254810777258423263424232611780109963234381542359798545552255728005021735642378461814478978346928928391026222998837286316680136826702431255988291208519568091843555832722333305925976375780470398374605069579990413130001946992262889725089198657723853226517598263445582985783057254836984853762038288926232178136165049228188380776154153245997453742684977990363329221715032353486414344711385353292125439623599582246061721826572881824654117457476022437962558428586320968182026956408626085602371591758085627335481479896155675761000328100639140257295512083131400117992214402421797112369136695882065014776253107713320370588256374089736139173138931364571939132343068818603472131869248260978366353807105839807273796168401745303045149286500088899465090548943245311146301843456337165038484625189456597620284032319169061757295466045833244455230943243237411976971552319518419297181061667297534511693894505052429339671442380760032022773016782472757194602148012815780144983458447313980480778773295637855926376464953918947515786620669047784292190005368902455807035069807235647683851465126488989365842344711729689186017840422598573348879329253939833992947330693138927380517089046597219110498844384669829675344285278050574521481246006694817689665727648182374962575209730316367732321932785472703235984368267664554295293272129278586441223410934443945964169612418027282268311557756808798379653127110378612126961239245301518483756311785940526973613157044278981760344196295918204176556245133889488981328666063049461406774634860982019107517873610714396738374083366903857399231932984485081270780967449112728446354299765128613367821960477510417929590358998817645247330315168876093698017536696389719221898399694857123077928492137615636021841121319237521199010759446113931589616159887805289115479590319099413604283506682829274477441238228724317745915983698945103239638922185262812027453429012429544144280765132051911139871237505406280433791615841294087095661754778728108326210566630561327325392308766534166894295935950107432206886753771825890359938021936539336202737499058956753246837793842367084626028088448377771297170976340043990856814998612223416861476063597967359509123130292354910916040255303786643820960895147488057470062875183009671102446599766954242075130053632321555146236067360583928838656772151352892957794587749649289351132880115579941503316473140320839564663891286234973329785939066575864877003154747533179582513238682051610227023485385260358790904843629577217802539544590734963742079399981347319055182905479685069908977102770683608301804278820154960793040202706786331532869611461464880467993182784887418111864636847187296341855243306349541043957665905679942466793554997049960422344718104441655589037834429645551258459711831494530081729893066746649393794054153251125946636687935395106955679081412299361740026094474664170702393410178247763932586223334255531718438106384649212442440123938683683977632882888175171458697541145919071747553583393277096727677119231092388080975272949217410395683386777943705279802289310348324377616874312755125683851557351831372376816974711798450396878344438318026740560013797845251263230832170033550823904000486556532958435106937919906071074585433212599331084605010610747384682275142427521192141334123032836906355265776224267893275363466541416956716212400774021119461981662434337218318719864221124229162828891501452519493655250528986373437949026560682186633428822513702552510851711817148034671696937248772107820652624077262214045941179762065809068280194167676757203113228920792743433963100469253031103931207132207922267920212313421268466892456901321974965564837681549084968675286296872883154371309175191356404028628802719148269903250824121039226612880672756462623835380733286044294504915065607152689582511806933182901216554119135807756711968598643618325815560239660915306345910769382261749446991275613812683629201279801723461007309821093919427826589771593340433828335515086696032701245345649288931419255766202959144020805142361133281037309169120406743409005493021937374223839092181820781830201528228044570557850616806609235897622645663651242335355637306211741342228288303555992603364896521900826126274907924160965466765355442142411308908502035375793379126700208189136926463134139769825554368181083963566903523352725240727704421709309382535360131752258258220327233295106358498855281120611406694077780374637671900314353811145182996019475496041014073090054395486382888439379669744172360295092091078502235105857176571031881437062061006069038197706431091887116902535266376144441962130800288563601873702416715827259313564359452386184012629772434063203611110370899180923466382152903807910346723714438888814808193016666202562328492508930040133834807010159495566867394589483445481280976459014142446628933395692512480418569824166938465039626514221214043870086487996154147858282210025019139357624833551765318353168232245482802182027003675931860038951056366846701920368642285512530487398321412470307895540990362708490854274911190249415521034655911173852349074792394357330229906825198673383350790046148646461551488849212753387682277608460147996760465196315654878771951315504341277914405520197698967159060900687786161005497459044044256760607897892242620789063581256334917842684115883040864760324307394402039384710093947849862720806828468090647550307000862509289126803010320979658850812476265646968113228127949593942881092285811680722090676762731841537205554258403438588302595375095432833672487668755191591577952853731363286562807304974801977406399408215117615017243441165834831515026398469709622337768697761954585336886193288873717886620116701653997949765556979082616401267601178864264150327560646207989580713667847326907718872238962298587988989508723679099423695935251379535046350772857050003226422377971483943203685227868945721485649773102264557436105787487938814769822016204013371720145523426380039707184907564642927049905561769693525155904683972201280938731526826180795832834864945686260807184379945383098576861470077012617512960769884864039855289610104397804780480742038916262605305434454626160618032910695358678411144373685955767588003210088482981386766723985367137281858165696171183697237181904315137093533209793709009323475237828142897519640503537115106907724557261350932043304788393697802278099562547564941736758675899510533876593140978620745583570050913270718245134845518464938996515576686379208517703725760427884146404457713998275426678338071206900945740655921030094061692032610941220770782692768825595319598973662999480734845523754634999413251663596779421939379475441906975281505844634609948180999606848864347628613480505600352252904415615969285428137477422840493853058505277721232374810295392398470162601303260192825886033710564375427360820721140656865827908843451282983155450110894030801745299143824561491571986080042116803587816199077588161059795127792005003425705711304423226791621720490435058561854520542398743269518022442207988179186795861010262231803346632725103904559266818298434138661281111191666278783010382946389947708865452767902466994483248260041120690597589725996977137248091697416052951334247744348562925679424033519487636317604310107735695773753815983944891134059229925819823876295771672166107776293165111169384237800234799390758429701388542496754687227649969216058148102852038982260725118504544230810481832894951734096117837442119979602058391611801688375542719273570492124284798238992653998853549230474661509022877859390661461008950915443208196879331023371783923982690074900724654222763195950835382461967483870490392563568704969913338114428145563775324245051336965335738416052031518894042872461122325199171409330117611045412052407010713035162049980213241932958721401380652182188260366202004176179463407925867361621352277694696935664825405853027653129281648269083109058688125116967802679211233368873025027202805097127313175000848245817196825181692450656452877690082197373317603014536744554881380321552991786340895526475446811817902687159931225720507321189048223240207682790677184032852896025262200840874375654100309854890964905426996076977351745392957056834998845516100262591581696513345905663698336167216409681991689900687523254619606991196987250726454701060604213200507024235976631510889726092195078308081410109578441400867230103321564860782092369274121687029393025228055777470736560357529589177855241945597368415163743611716946082369228111369643180685239195383147683419717459243797116010695031671910397692154084775090754714009829779938848407903069300456049851802313603378704944237110238538723103069231095050331767874814631129514054947275159167468335204627897369365024310585496956217835496166867365117685350691613949278425794851411246190224389559178587430451589807649570909532177622974769426354276646034247739071591634974228919001496168620589126651987816864417322846060499600421655484216325124152435683859057296897070293289157711977823498030870732429473269950786202953922264872875466830212896281791085619587515257577575790158940300192492643234023782219144158521637485433393642330149222824382924233621207838563300048002497373855688133971427537088172862897856497322994817806896958466881012856082663087779121759575510005095718725529359297746208599922246790094716831455207689495208613200825692942829169051216032514739984186464006327705580663678013619393827928327922863451791161369290438269856063037822650756601426531808839555312217488434337734880560697234201597154415655538019434847789693258678913374597037390723031508827756915313262211533817100573171307446291928445817605818029439107852544757336947620715889313864864186081154987481950506277144527013343310349979560689283193527854431920339040485437248459904427006790544162438868255787990919366183214248116761224947942537640898351131607390540140302069508616695083882250815850541751896090591043003490466103152513135420097210764760302664600686758116386002611134886958687056569509907165722288682109402258349859093054555467479565085640528480201499717710722039612424251972693211677713512091606191261217389730248687765920942143917110936010231883614373821373224583328491681273205185073965326984891381921530549633254994822717493513269556677515120523110427825833861154627620237496773225715600541854602172066449406535702511500281138079117418715729972140233344764655808241148380069333645832807284546082772433486451232299051020140996278934066921719997066104993683183639850430783592918982664664714630404575936734470786925364710324179089231054028689810916121856177548943501737763483292140587147035490584383390345622866649867299263230167826655596381539013352446625341805530329375071302172789742456374370138096855606120378973600852917265896472180009405435300060472485572563974576829359923475307797451309836852189068750196697020348566073507280448929784202217599919466503550919905604457232158772514965620576141158280450491988047925729950695319943883248338254308183147548995713291438693705150377368406423067436812244929311976860439955773140615576902292657883563012926464553614800553661249116587981092965748818350574759063851877982506784301989503942479574215447843493928494001242674778821080019180264161672335014941496918832802917356077834006023284437113308326526903220793793090382551034979199276161694062606314916879997731794514617293059516019671842444362752530368759086956337884517274000359903596591297728450112639525677087389264179477625154488295336405390271657369701476209142337826892369896569293139758288606843446322488557123769853655235579841514426182593530632507893780695082288339006384552114935217707210700874722023379419480745383201035545852162779785888652894626983564130359047426244923588554937986133737283756679067181095767537681966992863096083976316545207606052627499486763837579959250703613585221807502075685708629974809342505883169975245749909074079292725315538177963584184989105555206625427410374523986958724892346072326801436414601399789347968934422883538648764229167244134775822416812100779428660290935119654878091366108148886057426353312525726683748667348053502624426628020498873185833496973444821089631453642901314846062157819232645984623268565036192031263003990286579551485124519394401619568459274531368790209641379198342651873181971146035819881449450233633872740349751220402129138530774637447460138263594544697922804911964778605232551554274681948179131195749077318475447620299525336807886016520212001155272398397433032968746836426485329089999830205323591483146730771767369405334289188983835943306359502872046022382838732466924432612657525040471386528716920485063872984907702627174054843915446573897941281873872694105778652778462926142056741451195993476848880994609371106359446830828103661858055012166627602666468689233279270147111503830614176577711292886613576809397328544879876209015992792033730992027988450959981042184732445600732356896832750495030255272400483142739442861074591295094660827751457837054144438785093593467238918394583415051352659764365867766281994108157231155756063008858910195069498752941701445210909518648377028463849937278568646455945097877019408817881683900041276917104567210543836892533442159290308202013803311589644100200709473065813816091389438944615893027968312327224198301116783376399964789399310258857890168698927938646570031925760380876339728870945644232891462563698792051796277646900392666394797923560896848222859498767208313466053465302474220547478987169612086263968187428046851326860155831851327138716972242081814953281800612233089387350787427189154706223705811301381026645959298688718514295745930549031777932148170658927827733318654922326556919015664884719392318816817914896147097139312669508709739515306657606698057395831294674521590554639693416203086681336237151973883100182013683214444756953895175988675643928534341291332036981275895158775843106099157459208231881448282693027294760867688603299736582836581512577174796477782735168500785001115964174479639261134021416476313737382298592689492693727237052019536554274165934486358680396253947382226443522747953617145073197559378321623886913056022446717489299695060481018281813044056366420522335392421057843616226169099821335927001137001409495640529434881722275869501826282020532818056510661646660429249919552377047835938484163901970293326141526217458020757181785645407691053903862869409552200511276606405219675040377020151073067337889143895154179773989486254302978683044626419424178503006890269369516254934049772722307325528380101227206386016326788278151835722596490033555370904440154777195166607040170735760131396353463317736129309649226056760854540862706690429779738164872820349312531535418496998908498552308928737875365077240418240045692321558200264334034838495773410423083672774152626370967091651384910406258681395856056965064595492375489754768011773640716364079904843616420619191205019530370859279679446766582125418848266698430849082738670826458244237592589636041661978747183530367377591048990876045708193120438426117459984875012189582986221732938225941350809485127651566331591391302214861994906878788219604454598230589445609786536461618472694467604527200582672652152671586805119990426358354567796879018190511103221035855651926265329810986480971841832557870181727912311946553924498880891237050514496079393669070671862152298099021095931056693358532208818493945161063194504679436063425985388788331096197176406323008228444555771646668890205422831329586556123155203665794794232679631300047794765069102500963111639215530078174114902267189300637150871581578576585310617138033000572453992626827685954187490123764270808302993331070483696902855494184896327812569599033596780139377301653515426848729993663666568996055544060378085172862401447487903428165330187443411256999351164651640384934507850911374733402943097729808948724402253619326056573563854448748741216651632601292697602303361021533442336562718600664026432619974608463063281794361300485158469131007128019217952411745043898828079354526918545022646170073793665894279223824560212747669478876869991668778578768565250822568910924288324333822896307914265528697671373424616289879317200618255472586518493107155163149253003179272335806659312460997410965723024933744239321122737712747975635638702068025802070372478375031569611974322615501242337389104099718072640072458101270163229228682728036877977912038427272880093237051368087396344181735861599653702571007697342562099274286375791028264841727867744214680753919631831280250096221188445604148691473790667667252481685779623006776986012750293070552132246498193555424461101742413135681624480906846576670978368050019927008473108452878807130763606177044576852052970129318099722027959304878625555720638356362832338943942433371137653443643290989456903242053121797686500614384000146896555625086269363825236575092323421035229719085742702958479096776129524143208123321651277948997805820586654593969897115873709398871325268085050533252333316875062488497942037927867276632452422041652700045530490334397778115195133340654643047310029632515590537580423160172110201228101090007379123440069810494434795565505708387600821480245117066773048680706681618812393687865703547374024650793481262432225129618669667036974965127580669303139192285662504556410566352088655648144713751695577766650478562452447188068615651093343283566591042342101225540085533157633731645504775334016503949862609001051182217850643840377963176109637152783181597986141763556839531232988893674356332507955326443201243013021007585586503371898985618070417040834553636673041093530627610769743622169788179006901382288552064549632807218926913802507358103062817182683867617205823677275507275543173600365251300965896142766503015882312937375810273167854412536722995698795835462193878680240808082219300918697054753435129730145805326026398654308204487111280665704978058842639522666881033039644673113780094649102736478456090348165744764834059083524637861175009176334852986200032097698248469812972498509831506473757366563015915990142012122141735979911364799807008483475816784628601241465555658155516080583508378592481335662948293801220022075182717145734640907558340376984555052112335448105967689266786898687157950389631824129506854091995654023820489726254969367233689625776166242552264004147616488090756545718619655072413999396843863863025594252880303821924299350021264901695110132829591507821952559909147220550751000228287233758443830153390801768116002424995664734206541739287853020019020426135364309461612900348907245260764819947549717810700830302945968277589507768801945625928151245660630152603948001444872368056817462168206484065649309706045909832170360545512971170545831754364331658602471734235769564626320112821947308383063420079291374368913689654274568992862182512332960626570284022977957853622740370246579901105600512917412599429294061776173416549958465058239327542336338063149629857465761841240665688654482309417862981255697175049596012108708834977939068792250599146176555724319492315731603351537668623325385972954388457534549230142825157971235688180142667395955661751760790031116345913885975839276554009850999521202655848671233412972808282277301735450163200099376049699584184627361044353372940686869692320485683205876405881765134237481498710733630269587018111830736896959723454700778246664969393582805589753886154060911952939972835525942476722202762415130355171003393837853837931537147959404895607722646833882744114644258913741761690357227178936374558991959262609895316644265484492087053082216426440242077091588120521960177396266660901461255847694411165386129088927515838304956515355399061807937177957344924243342041676854797946409846504957317490461363851453222846177582607070307287737784932297652359417051812721726091431845595806440539577080417758225470202664360497231119066357795901862330686577366108437888309584072217335869441469227339627875804301968003117349304247985256319205200507136915878912756279897872338832984345703036777128001510867614474110027713871465263251619627186611336265810776726305501754549437218021287883099914485254692689994812945219609167884545548102125915538873217137409566989129403435060565667419944330935654898962044633737751971533375314568137637144368139872688450900528021241725914330829818719281056377227220841885419066866261656168448795518798758724395555354986742566159270493572218056487215672540916847631289436735448084251584982194492593547560044660444943807808352869527249399859527783420662309805459915485097605005860098814530511162837305660264075204946481817072700439854719352811069053178485589853662465976245998803896108430708157282746968738125752352223480790568259527909823674412501274462440698067164745020533933032025166799633456115281837120690712717444897836919711893697199212569500979556701923994723447929811954229139082263049508488734919559417678601178235023046772954036531641774784881639713078337873611587843795535684239863215096219432566618493024174780500245386824134792078341610009652226338419969527818726965383539729599748066513607744553084927413158514577760949685130255134531721082550432671418023560026794284937165891505966080409440495352592469906591647438655207042803624458813075753996569809733321421585091161704173509312419482883372073256937652463988060239506972561885802334100240107330342875620270176663489152647182103362612663447239068213924159174373584953747063212201674394503120550792021170262716332958616110185642527813295570340092777425163776302916715654652418851707966847443878925699466920643776951070530791688798669131540399450991446683193959474708099464647858616582891639823087925977540222977984961942765376393341238530668580679883956063592599963566766233290542123287424926490948742240150445349774277665242955633503377935963586859499761031461613991855662004766016276071953855730908634523012196085129017511400435397205202043489805553693456539413538897622724228120988606364641941122222068956428462109896071705182968840699295239642549511782274239324600958678599457308328322155323388173376887619210973237311103484107285178174396535249721563139449086265734937302533549478820262302074403061706374551541908641642819139378616136100007359226757735563731024020904371373182678152056196347851511252924799278673704815959391703111303257378562227249306798199310099951422046965323592713233578384072354572198911588373717129984298644759904968500936823826325283968519392440407630635152027539744903417640107770857518333304296784719011299986687869114206987515661374043692595691757765948488251272681254414059058469215775967811935002919221052651469842696226578220726277777009663191710098071886146328932143493214248693215523469930446536874655789599535839606684120172538381101429062599662225771035839740555788955215098107715013069294925689266716029092729278127942865563861199253030096933573156659799694524545152718111613998410550919372776533456085678452960357509084629408215743986688972484070882434736260321964534988666772289929886095483512791647906273919026259807327662283945634883166153407456238087422979994222090019489654266841771828185600127211454874992705126764682713543287050159912099359544402609175939706829790362720788867290951042838750126398094706463552495557380731318155705308990284405825347687671709638114341787122865354375427024126562500983697044603538698250648116270623215045351387999333556240399859362639201290360190227012875027738385800070012018689392655967377462550855585100110946788767887992534974804295530327671765878517345077040685641362667498877441371488797864549340111433118895234027566042277573476890856914215740570888391884227317870469468991890488930839920405139613362113975572536031718148724804479424491526411191272503526879689491541690061262546603239991234435881852129770897220233833954816826305059395647977436215708291750531433638577515110308031690023872174852258284119781571062774835869388835254003569684788733632558372343321179470191463204782971911251751354814677568316452227776568026437462069482837590334635464884699681966508424371706422556145175250358368551107118241410544919475906911967878175677634741260982121263208450016761105756433818941865459390928988386186165029899926540914893792109920190245769629570082543323265049442386145528916216312480850971602797194863364927062626099905835867129643808179028007402821478562101622444910715776872078559033815434313137175955827173802400558312645720506296157618262975528063772069024103616859329378303840147093791226003598208134067152226900595916943377975775462215185649590912911311906403021652270039892866538866937232125754425842132901738090387076292476003539688650198158609639662041881209427838608880949679314453785593015457626188113034530980724145516946218808615000877949202771216068662173368067245371310778630995667569788398739524815354307388623421746943142073921376326786780486984474574023544052260331033703584537068199172953443523009724967755222004417673459681509770727991658048027484219650873737440713229190093787036250652273923417224304512713621734510653709130081230212933893864198217664907302247166160007201385693139038579791014267094274961264409367852906188877946747088357889421427502112007352243336434195660399040297577299472866205997776624848044094237194786360453052646158907250281431076332259462058847703195631424361079354103586556365649934250708165202425261204138298493642685339303677420995277484982195682915092089438164543865958549725278985375629397670149154331137266271721830215677134795816866799057403699741869959638962024510137787241937662712923996434716993560533406622284344753203343629070643048852269211424143063819075929334461262679212426925203595144844041564232641633418561263921056950279014408494630762230556943566141066278761874946080404166390287480003276365871871747168445374171142041616726638046956464982799950076879848608939322929547365648386186485849719641895860616672500780567579238212089335902470182583360432153471439782523811152424963336981892734331710049017631482496440145403749146197453571755355864751316553974052770249329492114327268688783660610452428176426915315578800751972355816686893634203476080060470230731901006839065199586757093522462888444115737214615282689138817408380794337155139303527744737576239913178642449594168487212645372898074262969538588243453046944895981723256822109972948664117955240084855439366982762344303337580104223435486513428673104289286949541220628760772220507152111131955089364096899205469614614825625874803253870254768873461364704563806692520876695062576612300390183111400853006473583449102455204650825606122013804409808460416770844793294259881920073244653804078773237486390589303835139806366276613854948603698671706478610799145428485093178370801799872166610615104427088459764214147039834346345250248868958935203618251323681333053423743591780853668228801638560037949946167742998892023563895151490873964159821488653631075790593824761757432405839710257304301748150117871808361651400618233859288992279160097108900818470827064484163652219520546733750301493418790151225899100720307151237718272216209224167934436782585622493792343182263146457268719384506001449563453385486775624359370750841042089301721248738621088424210795479833130764039208400027306912704735931574749523068225484701089749946192708770866153710992468400122481322655249475152436968581158625284367863970360828414266326486416190583459400703636348201389584656955866971957349605940792225355242784605761348558810280577041432821508030526610778379835399964818142936783168534634811457216877376882505168390208570915172812309181460765752214007354076765783726968590078747704116404359334669691272447075730784660316125081464584927408445793749275091746101301331254324071093140609504609128808133123010342313149404792285142683945763687298662769836913076081290568197436851329423692312070586902351019501193662575497293143628774810557780089861440273056199793811969723221186681952337948065767401717771330502438458203180970777571144022954687921659241597916943370786172417142736908587275362652751465129849063477759738259980788186408816537881590690562752641082004320650400361559242794621769726620258724743534880783344812007574196340105508187753826241088140715667208003792112057242748153754888986377907457718620165340297634358135061139325597545277322029122130135071496681802791109345830255693734340418955809668535464819962840775209175292558927935868883519805182415230099245247352490491829538060502693510549320139343132427749654910181745458513499007273863137867833138903551893684064570639594723329174795536974529334736419333563624815686452133756963209333664417406500714210048012748113350741137581893301335290953320444691069015208110828945029118430865512778639539937819096089948838561236773078290541834460905224375616380712000671621514605766246958035735183772680750961730680901948963969937644751607651051059322602663476663098372251625695656625425246812851081761098464020022241135257284533839918066751369020425143377544898132800555313408431705059457898500130384999579353944579423396663679288954249664123558873329938943261750805393737165750239359951166869539195180360679728531645226548849034424823229974864376013547437016864430172666249048961938884373180243494332610715835627634764280102647661755022269106339664155790541580242432719561469064303576107905978587358235880408963400605472167267400684028265267078099442910006640946422278345326801206679007500287917181842512734391851080013482457511025896351345862886298900225235320339685419434181113040590836768217908868844794590727707492251281993502991561820609865682440874911361235821935307963453727578870408153100352698439627337294380831978251613365154344834867123531809171976628513627489059191088182681502475335533745584321500429822209219765426846528018924185473501564308843589452978720028560367013712485296058710414078547372711289026702502715119633992332071822503830806122294545273867000241257619754051336905268874560028761756647707119670933972757256622582921083629484433582902439524755906609266756578976768270137078893486420458155045446956965739211118140451759018957849941530597273518562895405133917916994598566779127083331585311223988471575273109685352311220834833981345234907007269910385414234458262688606495293164209008125555420664823233458052965530541243506134845115973729685350633774787878433307548590415956454631024645199621103917344950933461190205126578222480014366996347738041745688331200947918953228433981175624227608753227547777872408575632912250360610666798918040486602025595418059595542795923561402688051536565218542906479316885001642408391035748629883371743548415907883352815952868346517160227825106510999994970700857777350086826538408835740494859903043409532998136868206516279887181903634504551692609095544775142064987946627936022862666156098989588584641468690840464056695563894444836556456920201969277593022835540560174469856489693553381700702505281463706187586093354483643837601009611233761050477149973784289425739918977976092653657678254832438991160533749097072118884702776915065916082492390072115014712305053191859365658412371072475496744092032303969178797927801459103286376111639993587513608708441070840916025973203600744626133676859073411471254535846144050685371594505458960365769419400112466617944962393339135396885900390326110314888860587438969237334760601264515774844298563726295428001885900641693609188224763113888333553589706132284109293018645569210788077386097120343164740047724409289711163581469169758962779984509303229920811749727595611772383769028401303610152738561058942055815680449832483124482804104334676480868206127697687539791686545279318345978166810547259601621394764941075520071435382350770787312947145494835822951408330717281686041647327990719601303883709888045208358806004367962578979866336203603356008775471950922684663573778029632796587728573547195226111593115409791417288778524283999982265310951945812301419724483988627907906742010825745272733949515010387775552149987920813259355032687795832525048283996048949228440209747846992282156955304776456568027959721816413834362593774094842460245560890504237005057073358582360767144229332206033033292435575328974790969122801070207664301851804925600732190565541845876148132184721652532965109638852997925315555532579685389195608314560255463847854384513516619507802101006504040587164319528983861178660923932698441055248060502566709513244189069468416728958313403314894343538372470515082790453601912177241828392723961964380747381562658865057566894864663746980423395101420197525754657995802053916308169446718569170409318796715667813488867547924564877000205113877323914269040531424025855416530909180888355294951652427157479462737351143038206897130398472439331919818463283881940869355847312553409489021144943132788487592264941255277478908585008880799092710351543590565355839300370521880096565203296554961177856944738431630251988164496161382489004497920502377716097413526735329489326271639938162701117810485030029829390445533819396692253406464507392017152113913084392387475759736298705611329677291876997324154681790757575114265935077772624459151479397767627455034178958035181239270268687458916314026839002122566153576782669383966982470976221107979515969914105846792960385703781654068271453887290508102790632032109192676564867332036505917211643465551885491002313317410081091339076894885172128313166619636092399601971001346569748881946348767674875477972312458850452685086523815681398473583422626922764658769891597542358356072072438750242203173463889711397850489059310277045465673074256254552709089157747788013177680165054078422233846008227706385159176708050842603296281569890839272348837800620297970833039994698858371842619661646370977853897522029138097781056849565619448791819555842688578612257499484442891556623084641288433988073630504099912576321478251108076069751741542176522957133256247099304012444871501206595570818447128426248532610891464390481944442708584251747574830875849204537387271023583480905743611334301124611142796705040587772095250080714019103249727128556406196924216055298486093552239903903311009381887244256222350530871485617345468132180901499068520287775564069775121579824662658474911402760984090274393414882632706678616347712352386797314550045836496896581980800162462324928363370870805123391359211812138523675403244291616888973640518330646532087066313232937394797131604137100713927587543065300060571828905275671277035796958227760334433878618683736260091722014030420578321638068020281012446196923339589707452055157602539600809473319967218097705312854765602322080689548456004044984804576305833343363363740002344327817362972656069555975791736658802433773902382297276876692071236722569040629081407152036012678562273279365600410580606117191360466374543333195716787546664443177297785558008363322862942748111100143381234022937238368836150791007457822923508271950631301429686672340729368194830649689701343697503513217553862442170579800139505039204830112298818270922462754512396116943278288331112997508122594021704518412422307083692612797698758488140725540767327436096360244919696838751536661653292885522514586949084320665209123514352442945386736143603735132845854763266905203258684813383385345073373507766834071221653982655706399121081913374846823092214574283247533415798501912684874712025560861942311474119003925618969663039678922110358543783483570313047906400662129822144009670095856412626862254715327918003531983447073179206355404827880484341282577585969032661545405528638066271246958139909341472347077965369465383718302559744459288996199916608535359964860304537122138378361598605719193957698111156312380572057588562718713240384241890636864310937335873460000438217390487391689272294402680930801404554551651975792318593809714272645758096871587387100443048637182765336261695732210242594334295981343488517316054968157157937372029123690834315015100999965109125414387152628811904694731855561982914012237889326829075486211335097562349152467859186971109254602723788236552955535581493756633750039831359835652754133081605635061855802729621914776306511772125632027582029118776743007266346511562933241087746628594322267157566081001311077559489511437196726895303750230243748766532200137478899384735713061310527280860654381072214673529535421292575937672764437506553512297976829894232314300098151124343518507095094702296865107622409524713124389901292358225079959022798541666131551784052986553985176214909713783839778043216709151414996368765015447633159544413833045027086971138054751644370596542250470176940864208049381642967354047413931926118088686598266946449995458537175730067990344760574168803374371065420099542001834211860589004419855653096108723614717291361138157573680965677490711947309536786253323295930980192142780536927594575443169859619651143491355704698750297959253920848575151460850471043508859479042531306579096673891353259281264374591061349268413272625230028778818119094661354137470299275640686140642158279213866815523917247688987551859292766696811694670612063306491637790576804478904260676659667104707406837140478647715370031919772591969521583782929193578286376786170215573599954720982589251935627887633666664244262382557909986253764998263018174550447045301009821680806073720540692048390126632102940903619928379906365269496716065785799602039448491391937084660953970369063223645400860110622932840205717992372415200748065876061759663794219339098446672939707904363966020056180142339712228374274000832558693566998627363907806160686477852739077342231763667537196286294755851093892102516528117253605396815339282491109292091689540281707572262642372569881535964812268623085652770254390401363908381234480821398541212233726735478412084147240984126694585995955177534003343290587678803973430598652776137176725377003058748173008760898610969137483277953075248488906991036811633106257115993882197753007258830798011276355511556945000228415822009924712723517126449375440102062629315578517782729962590531365780582830966831426380415715498713700495681506072279798028932264416806916154759801037649617065638937154893358226273334796385971958631251572406223576725172271512042640490646315139649506294248153859709323882630654109710953441620634480672097337219656765817798996287952433078256088312547364714923479955150969890527650487670878289585173045445389480779598178498376671403922023420659255136977110798450407653346053817392164684378807552699244703960345560956094860590863589580357726961190438520288101200549819698919753517052000404077304237579288032825667324204867332797168558653633172692335283016868292966063818238630138424025070194194162973708187743789198159856362850513011447341917704127476294881178779596786604649613016804852236550619227411667262165322824986217850675181659491010175213368198577534974410932010905441683023728776537472808162256671455937637687429670135156907390468369957779631265239150734087808091845888040133271723669333563855577790165861285246800713395856756039610235008380311207634282503928768390788721114243222772575208037101907486302475287761132240107988718256702008477616220417443544182174245191516460758941978737807326761390877637820255056923809063459032833328654098082167619605648072172547789855093130209507258187396999414186005342761010291221830062736489303220790018935555630938682604949482231285736927772879800536609796049648254172769079532780535758437631510111246375612832848301062640235455387239377542311504967728451693371683265673437594499173598632816206985327074255153426500725973357868146490365825637998116972751594647412707423778544634511745990335990539549960710646268009322062565498163014765164581642228906785903830758574400693178880378610144748570286460458790989478796050290375973019380606770562127126029712393926603060684204313214446232421642953845039405751346060273113683841819667383974076273943979637812785953848513400272716048950965268693546916221057278977171200602645659500895620420309243280254175585772780250369522934993840369350850599344611638925920222497844718161117059847054201925074434143270027338922767392726331009179133080265454808493613893883579255463265569038662811503477731209241267507398464675317398862539567745955959727268592752407332719086692327377423254195717063378543213943948549833500885814807541556215368336311189254756246684647790382270501871261227216768227263898057036307532913334410144810163520112726968833634511797080960473180769893254963128392358827859642999661391604569139097787946949382220724674546436792630976381005342528947613915146640329864960233083693535202339471331130144019142152917602337989200752861094161025823189683301740452717747822982289228880435232642201478586978912230263629674060515106242147969738941689738034964534471539094895906124055669000373279454547124172493913858501488633773179554209523874586348707050598664682376225660766477494390729919740264788423756062544192211521362644456115115296744550542383209502321754088714402560487820408764602013648817249710722521861318530573422159058357499125776310869059946707674462318075539774400786246506438362439072242794445300828661834014167452012714523860968439980693578630232266554650560950773731977324488484336611538139245055557262649287416141461601214475142193471491722051081525113712795053034062233447374536039215463385911522740143582780348103214829721232290218302067346836309732545937220851290369970907848230449628157077069332945776080345636808747986429008719256326186024241806973424863233465051068605332658962407195133222741444687646585138099523057709986368232166999989940392817923646921509272428569645438637145651014473488467773845546916580696216174156661423396749458450227770210226059536811301289105558185837955986212016434340331004960367631705876127500934208985752727339699586476294796559255743812478871488313791154848383905770136360667267865122738412355767048132162819982385371495292835964383999343573524204248081311819291384137471640999332551762628096082237996462261163372795625559130015090196749972914279189583186184645395129807399730710882563121657646124460248874059467444612300475274465514421645290933815767427705467103068843672012284005609140297893381243794089648734313970220559202485230272250864696115291305246688549188349604898652126848886402488419203852809310218535621561488454715364170479994999701051450672482771102917264786956919699606661522351342438106996801850326166977336870285830997851569300681630518621239556639297886966020561239433876430675352780407789271297082711489571101297222909368673889239452521789749829079420917753257201629359683216425811309612720390376383164894549680834568219642106456607292876064720960223698009956022779515189039269724332867066687525274393953599171094278626291340494946680232187768031495486926298781185572380966755835905124987332076520751084101915843047325681712906458583990843317483841451950741080550987034345930089306689926037724697589294579389694974618215250664917353720837597974030490439865302614957433966116124392133823963045475292892469932716426751724577172410277883154210744043287494739246977919132850343767795356575166104888305616625687544608096188916259665238561188072009487793564952950772939147216672913392860660952151957510397407403866779404737911727332962333756356180652274004259339287475313345096421829212494035103650584817303045534407520681873116126920846445764610752741784527057922582478206879889638335310688070284457656925903132732844165880023224166194329115775220378271140146256967401842407503729635934762711667561188615895863459844748515743119570300995007826955322935326648122570123650411242551434612501677001856251203405405942684878259388215849289999072254283721722206800972852355651038069273967632592072027802180675755858785865620068342896450895664398046815621156993288018986768768399096630389732986458140271196945544155192525638541470914541363205649734231843441393004932538352438270710036207086857824623353602705183341527797631557787352372371986076030928346180676587613803497091233314499419086067034780466098843702531212254702057394677006311871524451345722509485367018000599935573975498351482437491201774354578675326049531959014208973882958965325810912109074502650724732112867905901241841532576711023040182619450531462151664374214704336650566185337771266369197336243608961710963511142630778138816432354724234909161046009359190761448601452561372570255796565134941262914013400393871171375535099683705002019654962588955706888568873428888984282893626644516790611721655640423666880122782848554735558476724201979889301131537384833241723331361396856781338823315645476648306814430706613629040272466294093557625252281891020115368677634585306538416506356835392771463777090688530612356643245124825570399709792077367523869697604452264117128215248346539886179080118259001227659013665102250252581144919372218947564818055215077083068520665041852473665958328093461529025512164567425085361637718412740339146904131121202424460714183009280824395983380100097018797878713668273090356707902745756226304317829804046758132565306340509822413525522326064759599412272954938112396032462162298370665557166323343693654530530086626163112895222571500288067654723951073748770737236901893451556612833593488834195755025185766320439994269872653860827436406889312752226204106233789318065399048914491484513870429641607074488040865852382888860992777181426012443564077276758478456447651856022014110731438082696224440061407838988778491502915281742601774860628499481237375029090258991581552786456642716194556112684954648418249563687756394465184762901175462596471302134183310274898159332157221800871047983949880934513645814582269490119601454388168618943987389289269839900400263570917208023488335155960814391171370364801465087551604553657639101581921067388064725650153209127404440011991564716708762399752424011319620034023670013795466824000693580774489435806787804035583088287868974586851857641042554840757649609183502102189298427347492547166257341096243069905598699435702142136312832838697248340323875312969660624397868577935699235072856120801393158003750112762826860901266663248386461715033290872401085099782680144547546845336812040315240964084246842807847608752197877435142476459175962743200446859227161908380245808206702976836947576659444089883302991178668804029252218363061667264164566486732957735429040661329633522693386440952736508970810081638063679083334734014786509255257717757557717094311215428014753571748570503415498543610716209738532083913794687032374443351407091390762516781768432582113338687859402456444616960057838296580329352912735025664392754692962848372434744691112865397960570682234402593690934447957984256999683426795948584670804466330092493011486164160256930744520784259944785386064967017817411721498861862941735375721104279131694061891846479648393353269450863161410542029149942591019925869565397665920345334935139886964389713847862057524435380296811295505942426148024699289640008574377426362372623647457175427739191414696465053241124693161960588323663788564606055218880803111316890467537267064381064153963442260544560510189427097028851608267758233642178634089537556465544690421451250449072059890602799491137313415173773935287483895499204001345634313596400145476444516076252229420637723310904621673060075454495662060367574627984008659870207380067242739528611527042532948769548270548786569166125134265557053506175564277634197511113020127636320672289871043591922904360735459780016443289252293295055800607935206624436397653200093798195806655292648949462719715716415920998090622972720563541132499417321524037287168864915275099098318295407663818977738257663956061359372996755716517311431718398022708575942470649131542508887040446307107652704893480488811470161194039827993485702352879057415289810826496245449858661422712485080048153257419575874063286245123860975963881130293903798076790308081637140146333547560362995598105891700845814518403096001596514645942081014175707034377247588513598136951081076992011328119841364374344613999306420069227110486489340060601980727043819314820444082254188526416673273238975812071077128754001553686282103807943423601259755850953510395810882351298291096319283441960680079989451936030422620864540546718545607083076206296326323609258320140270670743673138165240264955113900527657622836771951261045834910317591765700404056258369785667002771033749435505669345896861107223876815716730170064369716938183291841787213167839834745888703342845431299428767782686301554726042845458315757285203560249234002339211453541286493150268622572869151072816895265766055371814454386973125841713919861760255848136107336807461755764992481013932621131487960928368738405221391765946795122497648472618988532984451920825977262021954770395957427674675795032209559632446616941128420401651642009392181534586737831262267431207757954514071164081550942709305268657026560857063068958579191052586179543717064877859486068047994387576148466133416027072478839498883450506341035186361550908715307874822263651974724016617450381149282798390463864985075948759766674809943125541134843256854586105175641042923149235898501954879189283352780715821234736373972484810381791474018363843699387663412748342291182429119831926903863966520044850023334534899444824664376627775026340340733859702980796643505543593507513897983530027475304535571427260066521954649936123349497622528212646040212214735921555568243187962833943048159080158872108555348054119118200778128560837867576925559062917222884108256933092015887393845370434052219328077361484415380471090668594870519169034441448990829910302855650685748382164810316399092572527700181632112310967290735697144459052251331838988131360894715861470486155548653508833022490642944177357563550550100815028722565586376818269195330993890442312351555116186688374452062814439829329012714781430507008885220909663891828286223436732487269987461280186957451311367115236956034188502524567143354525703933818334211821500032035715581775309046092290801511815543760165388899745372821089911042937260971654770516739612257518501271785890386012956711196241672109009579367427715428663369116108060696891296228651199651882067952141390558396081344810068177050725020315634920946435351997564381989840102661653324779808574645831221224877407958061561493128344170874196891388732722445705473611600996288861511782705197866311065230750098751956831944121066800505488251268832775475104607543295776951931018306865594643366667746491223874189643296053025596352767228331448552325910291271158712490086365650321443385310819041552645068346017763233959199421537349451170106254404773955383694737988790635281214760843294877877939419042959518429255662868152424147250047300603564958323593980393560161961540197198975894248367641795875518525071439035910631159272516630989687765897765831568084133956358642497895551000403196419237447791030300801702329484023396771386331286468229173525177928187561599404648270798008586018878237639521378292293475241942927185827767102051658101860054930075050770725971395069193371478527259446703084295745546366777158851330446606872006056657756539094304102483806595466327529298934270462384018713215359292002431443302725099456740075629554679154019375190381699089918691090983810190651946856354900597533268531678906863522930187654608869637662295204566033325625232898899161806068060545045504269021458510378565368604259993701165874227244756593827850905999492971431070335168995413661650219288585893174227016294461845604752060304462772958119036040997418873529990490710556913577522068204111610238846090543311719776506519419014626484707795565356226461388579945030037930836308648467898505783949958741768989710791066990211074225055986931206940664691567415518154570491415883408261447664563480213726755031557280969692217346534152135101939773524911284516907793355841547868086815239869321139569737626672177565834075883011665438947392406112251083563641591743329508509764289978769915953718964191875965693315746681137698193024826298727799078852820513972800408871025643740426005831205302646316875843933482026556611736626458455291613160489991903217127173748801202396932471986990667253015058541145880010583082517206417238539888686511591357982923446052185790119262814068998405884292491016984415993932758609494440930914508689256551561128240702405194574058512697578825398263813806817440471719437645335740769725277900702877661201327764919520915258274914773080165097645504341350454843546960148107007784673966017860908295493874539619416602780420314720124788781412621493656424373841930222364121682099037114875840695468747507339680033830258123523684617503314063903614618074031966023330379438499397110783337327879443860097326589760435388001800695849135579237833556111127872903914200940016927715354998473240237527035837095128633032184883670641367519660582922215274084008085343902408320458686124289764131021110878912369804908573625246761972877648888005264606315053327828885468778067030618038221260756289997572835906952519696118549238990249582875475173650976831952378357987874897639083051246299517236311716761337879527918830022376932863066577074486791131819813631196161649531642260556454271932043085625760113632910669383598517627313455895501403322778128972905065661353618645996057085079693255056120783540682198144235074268773941120899687261114469643141371333678881119571786265312496007493331930150153745843898517981135208495975031538522784516656278894405494646757677097065812891473490227891720963892484921637635770163564258298009219066501134254611144577282324458766393016973556273954839162688026672305449119928695397491287913607082888277029333765466779255885162154062941450544463854244340686983723347663796302046926220386609516293110854337358614549251856674291760973826641036526562454490351357911084725659252232103746967094080554410337198689941401479502250165832458804854946684044069026085207812731552592860241322222879105966409366767951256442038010480748379049250965641161577975405499952769964246136352317057963353224883939285949620596191490483851622511024518296715658725945539918917618314434844432762025467958092423523986631488621268160631025174333452585500018435945037808202171968276544565133609313777922656354210527741810651770488058298889859486130046145814767655100009402977555919831674098699511600623312279018129451972230591729731169906078327120468200810873106018272223658515726587881527381085190170894184774988158254621179808174318667204419628383311314590506454391629125232883716600884127941842540988590153392242612339395160590487841509582360010204523687939427341238963105427354920578121432883765048062253219026162357029428886966654386640914998039961803051702221715390866272813548556408724554523419036070485118236340799602346088000714833670150082980698365730338500573434479924485421889338229547707497779605613479633369922842798109691409302877397287470789661487568193287398051852934544359446121674093012274743952012475730599083356747618917321219932941120731469981594782422241600316977070975339219857999276548658572402839886364856190376870191852024092113743422986774044487832915703724855290967953567762549376376543408948315465784169885215183995237684258686293850745361850808511160433942268363498664716143425788049348900911767137110525196757775085617402557187191982107340842885683609210656173073961965591052969078295848038006927258557490625413888140960032814382004294475158229193503732930548124389309563690610208016442376909893935448598672975974324693408471706181544653479054527808047650757591688621134599973582990392412277835734157345741676360269076252944909569908381669806540602604671985233915221474452261678147450157133184536132660559676429887216597100745521829461497285819172589715012662694079327192355678918318609150056034931018225309771060183217563349101727224076930566957001796565321826141244646279876795932968255629826235389868601180778602572819605865713264381811097337569592966134929248521983475367141028957340164548675839681893641229534887058763678189729486663879324592083018282917647533058461921872345661799270368539484101566223274910620714632724634318369139111532120520252782396333916040988853051533948035081481292703986621700362444368658499697550539111826766174992022059273207444625063701890096852902939907799129518658176688658443720193763917619446081448193447279418268770551903877905935612846518680055044884302598063181338324626816638796077912440601083811837179780266456058747395147263294531858849448890780280909315969231077655354388422578520142483605883055362743596146491101751227281067323256671163381781069229595325004873585766709446437795807700037191306942175052202043841164622821807011017189596461499122864049721829704443250799623765607496257401405697833108339771942653720829750046990750827605432075778275317323920676091983905601790324216459407951091354921076204273537497553007538682413360291432087411625794087512023704958510289530591932931305643931578079771457739595257228322271487319651667987956993238011121791346236042137395272040685710663022057630955361030392243507623567152329205979414834069472092474825988819216638968129380260930262291203362691003243864530969450511153799211570565881769434050985990680569373329208884107704588897362799603278505477122730623046385987603149867329114089179678325420739840296113237830106133979332166004856349958421182272041817611390372154447572024665674201275889238951229578160184002959134502048945452236704706530012109820056526347269470534251017023935772676605119485217757192993389072629148016154602573204581681541034261364591994289358396856921814093015748134973467862381814669384102676426276025323923107762529143368284534166517731997855294257943052935597713533122908642486013797039751713505282915220005755501557890152882412770267109050969775942973293634947541153794570747077269954569128765683624009547470444699597709692864032332776152226702332872942290347196392334790843510506392751141836900099145256678282395118235106341328003836136229140100393840474594658207814332200411190945117496422258143687484933386629114258056636758991698747917288359341014368771871891225675509134059968726818216894553564812059762206736516874450563366179921473576812479991955088706574226180735484482697690427588198351712662834498646349441706979172754120613143559800016811614498308110616057141461510643307644107863233749111097958501815347529986921981577625679391827150769993647676410157340031098174315482662928097117773274752019827497047921283753218813420613622708134616808841797507393211182985432684002777855252572683283328260905153255334239176249161201185002140170713060003611867717845774996023619926222461013183843004653530361288626147348993447119033413183636678065231454428984864502045409166020731160943484320119939166206550883756404980345341169461057377228334482219094219203212447528572597853570863915892205875836846936328372568615836050725605955701908515476043706398670759765425053088087152521014889944047935632378469646641472912628888162821472153142335760724810210117604770853505853926001770316408386753994806481290535560132782168241224050480964099612851538754052954136176837168255381520436683014474642072193754597633791390199085896189226303240850670962816548360673007834676359508054019298709881491678068864867520786056660196564645250189079706206750802722542085734222743162351280647781088992037810092450774508853470486363190550018671658573184740269491668047357498750177286776738906400072413194283165710957008677340553475758076297870133223978817437008030304457415317194469233915159273511370049623871329036763948531713145978503771954149288188765724519387880767470744553388753527261440417371771241345577423009935578290301373046327132950459595271346295249091432113749978094180369020149819712852060846380401968519564726392759666155560272482067076790528457141579040542858237052656452082959765712143117679234171419155497625448736937813431454472470249258987075492516371745710461456422360813480920595601570592082509493665128900013914653026905002597165910959597234259681264740981505024745026355737812836989315146433397952824362702457473883184548788182322576594034978939166824615866065354088377339622207741180780371506969055634763220674913100217053796146879521016967291619839977812691897114000642957185523102609191222154402414918761465214187665132176826679162353011381138424454792915638208711376200291445234596835576182298730073397699729567900416111017601744936657231310253471017099959750327309184732073948053155554161548569944399741489381513823451799162479622784874217083265804643222509478393936818063140116870454386457864145646771087903594747809291790426382007640844076753069037326281437719869483999664945861263685548295360687783015488155222738092708929395421639365262475458476276089852429371604567707767895653588605365287923928543407224137101969908854319366777001181624733200828346042538557953923635330090843923763671280386966112718916079398263251696032123504446989291866952841464621739609736060705222539729412871813646419700848363030364628015389229010017388704179386516933908640026988634187843484916783130310779425884480263046829482593083385377615822057473016651476369924885768302444279778810210558544944450873049074315018118180382776236148625090805784470089867625988638183639669722329701396877003264514603872710722372671822102217572537998459119327931352007416394577274756111170580120111722631472790840124053446379116715037055817612632591107866067260815050569391684357496163189496760531984072602935642490447527458945705662407386617513735549493169314314002316614238933573932557673691729846390792369845835428448890213184902983865067737148207288648367540089585527483391825613518244356798832251013323090255331159575322803167478525712794987468186485384766899663891730562956734062219359848605387859245149027208880498508095134020612497851227172579193537684312008271580709428109245472324231460251950940044822496881383230969100997477812666617340597950191822516361640590142983577958360754034288342117190767852328136261705330190572001886823831332139845438721853992425001000370719580236319938033527303395789120878470543882422679930243501332470593476825839561085882629473492077284857207695907267107060226583630321418153232164410703548423307197591135494751040928154129015984748798188553719369458662370252899077002582868211098626365097991293550441790265848086324520389061536060479644606696363451796996418166569712615378993830049478569176519461587859078285822694342222306720044320120885302297110688280870840001446426363183137312273641880164659869317874694211455303749398051242900329970227037886279770124254055766554250810586785506252934996475576577991181830978447351802064455466026165564043629551754830835565326557051113711240772528205569947678310634275712328318480240121767665224102884181325018776004247288817004393289034893894292794685187923398839299861630680493647631396657477360254010026699440535189238253514981553965113109526837917557805349704373693998966298829928989752240001506885547913487233233540264613118875785581816852566966476612799880764640011877499699963291507970743590253175266357494042017539409708106491618361044877566072313894206372741520140867922843117695753092400661581872833893924856265997061072879953840231686763324683479617576547123079226183665598502357446314733055879720253070362981896879477484904463943063263177612505006804302105463807233700550945324756590527639322430313030422497832119404591893677768043847292016142876321559319549622612423510161301823427313242112276162893371191177080016636980628768522162006080710561102473246423005616453282999596922107162780640763913408385789888716073205648178310742370770397863946316375194106223858264848199360571428144492273493036879310439032003091068220005837698005221505210353661742556390251932241940033998101711308914363758055446626002344075599769786537137636183915330967686948799696740218335892405122622185377633254323591424741721710400408886078968977856416716387610896161488871358770503570452976467672173730716260043573154569799414773127339697285968523373284201634286671714124857308410074152374861653479716911987176528891756406291192344285323410633225284663311310416068268882057925933257775695581415341486268525573165710362483467686463951081092868181635821055379878360994176000510474595774690057030048169169103141018863924028974952045111818694317594653567985921784448769825826301175105682625898289017517576591044177930106973883769956963462505584466254500294253172441391904198678966070530124373117042843186950274514516516341227892196011566272076404345905581365046421104469345134496252091982610946069675719930399832334230022176890152267749438727349037324082506159402622594061732931969506437482792207255927738316631850676017086645623301934999346142033193853381424994129209045742616994991591469286710480551589032515038279298195639961673907576785854202928060059822288100988403632216876949691479068259196529187101924980978054637447530992295069484735248096307722734940016017261965637898504290175057532515242273747992088291606281919601380067699754055515342505149199068991157600686405369149255074650701216502485422028496082165246420495678852348786696242294557362927873049421045079908684875506948492718021273084057665511036748957488093936854186723223180279361725676947741267240963891734670939808054266762275794921073674533773946569468326871558891038648916599948286084010665845708554732765181114199466117711791506206139519848665540348308379439919308522706919394540428332892993516030779891535875462812406695271279422131015288801602101882651169995184819642650697572836596857340167218038186117864042463785034880912369205231197466826911050508489024537098207559277050918966724801529040222402347884242827048974372711491823600703268033390924378930397915530988838711881300737960535237608963791043441026567344294474931824233314292666225474313252629872424653265366191748632426692628895635337862484160161274487258534735859141156839219157687021959033734510712695463159242866501586981428354379846635015823177296352271091170043932253721664691755688668611245346017378574382916603279167259268325674208472990211474377510197202129501204662405114903069442729340237624899417624915472266126136448505293134901813859489812254030337674495693624696136825554720566104544903893512140337379268198180566594457392417604425857515344876045802166394444684002898880868315754598550809608221842155043311084015197933150018752808837641862050103291840751098874083082008173852639708154956996608415147218627816944991898316663252367047988170324015617168214471242059042098184098402618714439156474312629611923207816550569797498261037158377895528371403370042114180665366529174777406927112227243271771142308276298248881205639033923238433537297389003054180717576006059214651549224260433041510354416429184876207984544602972559922601579916661597939145327781891129026019346303001589741284248339149700359121865893695534736222013641143212229728866627517574793811858154446958323349320276408277657671871297625987017559161413854040049349358333801148539307225236800231125996404287510379475035396655908999929169409380049499868502669258855275300770417618849429848901309734060627857770467532356090139023460222874256601453041414957175929673008814726355357412791792439687530330371897553504783694129064388518099814937068587915945322142533004529518538242048966404908593412715274388725221733951665278889086886545008928948240133128184171844990580285710724563785693380441922175068750848572660762934826985771213795956849972525053540600653264085061325997013315419871838381159395484419071984766458076848138186949376973676260012220502957432526060838522446978962863995063476742719090859125047030419516019829207089552195313157312653050485844704275870107588880062749180498311086853914207806893518187021457388456352398178292905006369943162202455314135695116379011644091776244712187409429681947304352575788380532973485284152593938055490789717743003406300510682808809248711160285803803196563525525323106291231618293353102312598428852950351688099922439394783193893794036506249172488853506656834357946721650475222765078213289123089084411998569692147673367541421419819724945680999949529042261150639377317962012904779044472041494283076569107793120326261891357737350654802917068650474276498011233046803562715074336593375250183660500224228318234569971291320389725907226015848796508556391904827639770395053565318131984885650466025465993474323907418235231536908445455611916621172994772535289365403299755823410408927699407357241844462481278419671898664379675633385225339600208692553884243798426628786887836203219387439890132532672801295523678906582329033997023931359105132435509815525857367293415399350298744224318999424537305665200300722548668601379440960401811029600367480911504890314627920647806252164421789739067499245235942942996276164895533195021045091292089865856493420339083125888241658879971500267092795336185025238215083798663999732809206976490888963765573855297512710778881853224912683786565954926886192886079602994164344410179852258224399549239386842793295851007026923472188273161232528551616759946829646206014050063618875030781084496859063935474086515976453585099247678057204228378340449771483876330078360360733258493189345235208271502896931291749116700123206952228945497500758529113699642350615841805403525569274141248357009335899083309690342362665228895453377843868093836539483747298809943856692424901542860457776705435041453552717564544814370433941778786055617490580348759513773857760251135521049668846306190851693164049003095575223393745598501110558438283423425880443649345597997862416404470113049034461887045289308910104494200278043892616598207883027066489097910224730514570766938522357847668978561691484231125164815071643765773330040337750441880532227945351014805917113012260869847916806603006574421854988133438739256618135896198603543233867713464181893777602754075345242304881820463999797265947964408808113561092089633460342269515567044364053102376877904441776713471843296916428554599998205961310229597787059443645062159679048779487244658637986702661567923731541740639740903476250915895912557175128934530045990048734841849804193473454951446709219088569533079758933952641569545220751798952782825318480787408601914040069433952622382918758243010355444881663464721567390405118403934265372675653607468979081020769139915596925938435624251409683566415596012888249675361994984515187240956495434526170033140917540548781927094961176443298319844377268633625149004903917023445391410387085728821292197234252688058417113092416159046572830253553263732373443204632367542889848458761419124913581314550024047526811042421350071787204519173064289881636906993485335546048325643180930164708433808657789998811650981705385534675771483626045606766499170452394183996059150943271349704018463163634967381851101228870076231462700049423431465431283884244705782416364592301434080854368183061212285566590825415886552427917010920486761178048423738322908086523786304597100607186028715919321023641002852763344955222159084627301417141328993447683964815112059196136102535757853263533213459996061392247679069403281531330728645771701247676364951476534032794352123114066893639984948142309584385999107385484857930173141235201830023282946435831380944627109268917915074259083199227802053727810091719930257143132441054711953761637311317312270789427603709539047189164081546658219252494828088254009758648990555279570155103565942568293813735976204404345415384628212454933189840170336544420806966334542039946300816213724648933327440960476959147392108752135431381224065444763906437968718720098017182027256769904893556400808244647163201929648402407711857154723317370179503024987181521009055741322462706612661001591463281837325954421961109994078994549709106486972787388995193473189006527011718756898437141750937266855243784377128292606981665031622818448051535457737558152143950160166282311084624612307160614721815460405335376321724292279123644498027052169953292762725936714847447807837474913139211166223530371390984325998183246695306477783511539146719926913659665124490764890921351383448270163954158787215806396323358768604404058343417343443993321275943398419151347299446496096701713730172608666733641827615558124225231941229444087053679478720555091327144941548124424253499439606351868176075216949849849987103340961722736691653478154202257150643036427572573803298078419537773731623689531958993123626274944315175149283678232471889004544597991956105945110885672764785180442405308238789979471415838648760501581929086738923442400318220244146908849602944268987499530660996318805092760720003379038604126172517018000332961401727986200419279098610196296889496586180838751310478084137509205872569478391466646615579575295965480255883717791277364237631116842217828226690091631407322802670345757648538757292472548110375517164389295371330450615991080790370733002297121255059596843967818046470147859133619108081779544640638295164415461236172358821676886745586286477388276193145692289783322830905275635577741723555136979022292124576356990500809009980001358775274547664858600718399186469124646668199917893009923394276937506743472525460732220352988353653979877198374635751131255531390062299688033051301555106103405938172028072486287456373037909999546176047752055894514180395134661025624935070439003409237399760650113403257348388820352660028795362273974034801921299125093515434797704279535344830188239280765849694393538302533500506545442245444365249008280127517231095036782915899061743258215196249687633426805454854745627184261479514792929365468391624634947866859196302513300226973882627067038821110708366603273917676166983632867295129592065418638715151772512296024934891385994782723844596880496528290866392667193649722807010294355868356809038325130715688618226788560452134149284063146404176691278130519059018925744582125315901645541281002397435950060494040337927098204403676080351536000157954123435503528176028794878072570420260311021946061291501950826572900567902653516403335302056273178057749311268760513923995163815360867281447895076043212105578420950378271633758923583757224206818648998807568565666462695025428845142293337821643545915028647095350645387531923588320746856062915462582026561482154383582351126069973130216473749726140873512209592148951369959711167454166390789461868132700053613620057395445030216197731428444711764566721875182652166729885508753922879382387525830368617855897634435795952683254977954634109383437630166240760728244772445533709656925291640139523546505896060964274373616287082579868328924449500752580354573059247843623869332301978628002181281022617175236844242427301927074290573070695994809348030402021473821011645634057681665824708074287111865979732525778062750027131012622994581993937640898744154826461366746587546812689824730504605175798552157208673779671073529358829333945045497656166758030327277266254008447202589174945459228230781246565575894283897448294157903181885237550766604025929250490560461298460720414727375796092477444452409311049345845473204858799113609009496882982841177317340648909377798198086136855684218849643336950964366655622550036695495693843097754971453706736423391931159074247006955135545958649644207353374637733294762070865607462765550151318437273548241093272849701351080861357750004132491417059076167334167657187127225675243257100770965827363123935768794670349268475670338422401938897708574294835056808825015346648536034948696875646465924891605330534345535926962279315142530424871420443236004779191752053405876317574242015650141404869994243820964310406876216136572866768566562750235321383960106024753766164846313586104594839422535731702036547764353898920003900168032715262900641033809217872359291509042170029870650295659839730657250133169848059662642300031292518100606430009271681195554686284862198815314113513212511988275864815316332791873121188891680059098869551804569608989416470615848657541666415571892631933371333525405256148766998247618349041626911781573718258650930909540981775289418709106342567924406550018819291693755503400537134347335122232072976567394808858467399665573519076511454710415916423340328012765880166120906218081851409934760838866594217705075731635038703803587890460014659482474584733554490659674971279295048297958446295871163079243826688963134612870094462186878910921405296165436212062890497266779392664444412549121271723766919103989066102131356039223477913565560278690691055656015425220234710533316692512849936773240929424174080547676874053584868744659913903505156110629049266351020492690700830156620447716251126567376403176269194915282623250147961221540040304125100403675532685448697533707200605036604845224177981281805254381594850434901501903781298266803517950543896281897648801800251649679120540331838973091660006468362241878099065233370691540636054537390221080556615439741239719005580514946024002668321444460858686814136617182457392750702312690693712356776152835459534514325628962240591953252572576517228220108097783295216989908028233680132190809336304311173845713150976300676759855046381972341418206736194085433336113247751457072325691332357949357277708789945559199393810054465020610410283725654692218838481508495546538300595864575949027633139561419429239886988650295859316046667649127587283137969079110515877946319144421496003359083158815259480569210306003725314414874347457650983245986227755040110740698445303120890258100584983078005817863674096486468471380162042389732461338085582059056865637576319765480259710863018995439718902329937156265762819169775582952949927410868856262189807140366744858469577512595757188867633521752190217527378055414827795487694315520729250333994342444290318236220806192726098643385751477525154188822070036450815310596790481693746015277214651152620713625152269927770472086508020693051355199508402322742103950177373597517307559019878995339613440366922707814969640703009389495158341566049747806139086715689536919477798103182846372244793985729372076998895507971818648320998240347300107049157736732217325608132483249793082140749791203890309744042071671940848955547052380039024851633952168687939070073322805007333423728961713498187791894941860748346938243226551105805621855575259949374152240593501027678514258737731644781351031633834529519384832977276195663321864832780755107672780268686573838819359032270225835106970037192068682534465147291343500903923612967316803523043374021230948260184867609592658440070133772448925032455378893961261343340742403662818953680303041066500389201827356582302568775152358108559064360360440569096717946127016760440675428600265366520547844805127766827702256848897863498122743294282360902654063803762666448978556806772736575626505688238020270339122682803710879292035068767256591330148235076579933356544932822056341670249885201300234781982013776846881514736629114634995815120657003124386529831353383774826371167382223030150698289410159879705976750835786774301147822134548077958797622347228761737965271450221661877574495591274252756343402715675522838718758477219919422685662559440757831478579703498162092945318790796605755949160746108117299222172465933190528467919478336592740021833829473864818031942348817002629352855207609935094444455516598543000420196704152289031069487703978275228058951406260989834541783734168317634626320242361758167115471971244899190488176372009478328510247134830218700088051890337648206755040706928273684542193038854904513548811898733402567813609813233348567802622354223641494179914000558921158276098671605760613263884794338532223280392387055588077983372884706673337164488545616111994265646066665224610769560801457904855159944778060795695901686284132883430502891369372789253896004426383112584006722621434174279165598700500230495843983579883318132290594064688658654539527108905160406327746166950270513849363522690453442510959331740587615530234392928537476071301947198386489673944414739249865484183851924327909588992317624787913769126643595995209472094091219455583369336804528359063139228746452335385946645967250560432014424151548070337514795017539865379393637208940744840940816272204648015724270813185321939750723831070239632299141532880752117915086342596299859755256107730870125672467901903169648537450439163467387916902970174376625205396309594029833491037883522751045682897108207264994823481977516512861347409233473704244118720132703715448700225143436486332180659951437377591749262942328828132308727642266789455574512999374975765161084278299598892732226476576564990452733421190203078267804785011912819478275610788829609032817795215916247518760213202665026028440919058801520496615237027361911581786452747625443444808723864643749309856188137527279236704650801573255780123291854396692830327603443898287781825049404724476855044014177836986908577374237169799006277836709646836850656073315708173428946370949051896813695738374326937922869929671634532827662211119342396121227497639038632705622943502978427678472695869329311786356657937272429643103443405885318731108510698368157389728565937398934544820514083685957600506202553494948045263534039367731883670403808787267064235106928479412099842686500132021445762104546289704820954544583788598140209106402139209398384540378730307436892915933452121261486272750728024069966107643662038627579737270975877184421138360516988415811313007922611608447604889768272717943372405820915095276471681185344495872489772065691769797078597550782879733775855786782371079330826089619203661307171422249212976755872069071553030376738886936272448450068897249124529426031654169144006923402361829552401561052463968245076322833476727527902523468461926921989394537444316262269131965187378740659242926225990000127414320042770184175791994351704667147929769480689316910901973087899766939344461838827026562233098835508372884598449346315575986728556503369321522339040632839727926252053725437549699087419000821726529707452919770267785616910697371631180616454959794141208078792768893183697984679035348346083097516932600133127531676516998026859140481878439533473904257268018850380738965151277904172736826862095750102043181054182482068163966892196128936233695355290595649561104062701029480596441750068380209503167304630511313859227814886077965251821108798916013321283329361566756144293668125761024884368791725435250616153228873305647570992790192736549530363780217400076912809579153418695292308249969893112463005446647463166420973064794248058088370758666303281018713387986172661141620217463358725270139352741922872606119714064627832831111586425531930505357347998584031393457994095452348214647872206841336027003559219042322775285949072765790112974630149476785506259182241607507250115506222958346983151968698478387639862622286650088555342058103444526917471660838150354892265460379473016306159270649808643756029055665861012078836905978530300335584968266985094905419034882150872393241774845559206064859277022549536672929523559626973247447726263686782783953735984035539399561550732877544315424049354348636102509899883652025568512829988413648263841898087238881364096852409384815456388714948046935011108009583695833931472637398679882477101957264036941960014111580735815189844378813012738494870593040636072352199233305112012101207154068434513144782583745521380338730176074347189507432590340065549804011176489428820391923104763560716728142896394609827845073239157811511203084954110747483965711793257522681313394175178204278554695360424706805958735237207467689055623098595483802844617295918842796122134203044939425459574707834911372467698930044338726657122746718091566623566045452811209284947966220816397387596800757320453623844430562179867664145206264583467070308878412450554138142363290961809585623488043353030095453267817878670065477808393508059653730222781087190242644423518961874061126095567239273741028465547015651348526808959477307313390072210508758719933234704374443716029502381069121887568668566851168373179660837898326395305721106179696695790991512328463183453529816302196511972046620134888220984184725998954498988211833734321449711661295104620116778800971724274202952954899377950846049028705551108760544939128221059550096079386927942810984689437454729025394230822151883239359598309604570140627630607025707562488406638441653512049026495013148833149544872890482856009637135369774651699123349111665482664277870494114190595620658114774755812000218232939611792658300544763950076241103238714309574780508233195358314829435171252970519199456503473719797872630079724436291297633630482222776780630062893674082392235807451223613949184744677718941134874403863181565334912771509269523170930330270992223079274283214399613089334412842146640851747689903609835713781643615686352060020779004865953309423015461397293816993931755411758565308737516762406666802214110945192552631519245156773806989139667498661758162932211782235342675267202804968561328180322389400555642524045755540783357297902515380166483152210199943335896591757229971995266464213200396177354101972517316495378944116543108940669759573697735000302246818314126622428369795714962788326088932621022729034440798196491321323958467512969861395337098152078453937742341934361714753783946465807155458198301435220539324222934110565631390986564488239018957040493024759429792605279931025416575692490687006847737650609364521105317930570305916603169882582680329395150769767503608466405326983419997152552403717774528811988959929093804655547904194922626789641013348228958185439722734664477973961342854081059324008431668757502299339340567840859954887471226094991972611695266206400315973279962056799806258606438779324999409468395042541968724740965861104807270994840187276848331532309571199132129845980919366430859821770076781027984477107947142226458210666990949560843897667591180290137121971165963376473316566829513839436017386354779386221979881145417185829504373777357476537196021993802590611339530348262341333763085713674601746481506270386961927340334080141833138723162947660189529445062241293947453907667103786108187308978744170426365116116107421794963523963830326891214062486738753436805467455655920057900806514080132226966467289514804014463713793767663973914959428868941226432852859537025424578067493167723369943182571507250158824337664819366564015419055196521705260689367975120135154850985979646366293164590926447556997609971175321119669712082238107376178867084230336493548338265977958754120486010596472199242073083945362430477220727807369470549605300022207187078433609552721501368207797542232852465720615397720678000946633941318927347237394774027731698903370024909445287392771300355583938042703871878673321531724423863934724660735419834961139326659641218887544514015276968713962523504432380520793965184838173846232641006150753697108378590205686536313638431642575936092750977849882402899313643704573702111464531167838946377676104447415218593823631407828248665123200030098050803216139291077417038245256846057981000087155192913459844543270003089167181162658437191272615026547698525751579152794220327148965460217744517639516999239226394731096287568762055687786273158195298651207887609021660771427234943846796089494617435270422781100497185252671893812800108815676828941782213542520200362062914500728537534179478800904349627819753389624945031200921777514118278740416285711948199929675344308730967817695486263027074181252879177095662541582373614137317113827685723694484866443711791233849830826476569776369978257693079167124645365991540652909269043582396919614095043441247648387128759985316163033165073001284268072569191831108040514150919935306938315070883387444646876358386464048178524200835237690430001029074764084922135389548015738826457033646685310941981405717896103882771064673634063041492902391030688021940017168403843317376604413627796341907773495972045462977693082513427066914676589969713768132534176171997344891582963992269536678847696662304744153815393153941737954021695390548064673954063167559436105337943314962052482207110629681126561689052314487482824252227704324566300361277173267450021027584345893985225729062282044614856470561549959012238541950971139169367990399919903627065929501617419470765610359208678926161119890445418031513615308154335552460091684038389136940783791900842076400292602598254159600718279691016179464250092719102139538193670550142389588190964984753695441365893420645936253302610920189485155500199073427334748734687164357900681966488752673777043014784455716035369363030444634639165781513377261691563163692734822847567197891566664968497882169692012985431533213573986879288170623495168641387691074056288195425690287507983218055332719046906514414167714316723189822662151423289288036745128627376750945817746971385371334259046211006442148130532681857590929489381209645596317860095474219867597805759935952576361806630019174005163728840303983143978187045227668627498453028199871365476756644727763622743919634913058517418357902094342351990570583179748142067040983798159010766007409582707280390920022440398313017402797805628840537934134245709648020197699254518199894714342554041698852451787506000311252102752431884899428387399252067124232773616951739428020410937525611841293970638080869101740403090757813611694857086880714938582527148381345057813213218938475641381595648258165728911747693051137192027686654984527358081890649110771989344388754102190090245904133260814366707109210797656305743322393641146889564333790283459278351577116988102453523053621123153259474556288682351692205241260719170295396516049857284186334096039661881876900096098178196749069030361108376033371698286250374597200616530604640476191559702843004997070408765009496686826259180950343874985174743258056573924493608915595880783657060823784525345330206183262099970877340700878437411836813647601811012513808337070156823167630310355900400144166579761801000472967034599795233123185512081951601661735484708847923615833592333230435876637273987651274735612319992004120841135220944693719645255734621905909917402196050693466257792487456341484099096541940933017971435745046010140259068557537985607877842617371436027614269809921165862947085212273119164100204057305610186207375523749749089128283171401638084779399047365731465366792563006660091963921994582576802731340209025451120260159438233641554126174181771689585045679354897242413371214748114710865596383102349444226330020556216559109678871146842590691521636067115981227502600792991764424393707696480378879450092738273920347878372389298240944931139715267633572561009187523706654276272955412129608533907585372120260833508992688272546107690838787962036849835890877520306213970042382817244826949781735880926839048441854700309974280259691876557338209247624913132030702665744958742108180715001990808103879257735384513055348964730520418631316406975961255848530372378451759474834364365312646313353047928065686819221703863288670762553106288341690149592667422201665197424852112256950427875268390727921021775612569916989507381884979596062017297531818063145534296893907913017760503680358853431371613846988144947664836959672985093903296701332930040919774429191020704422666705628310046637715304409233312758039131513778497445829976068597056536503864290482598438335770302180629716140895740049827411202035629546179089964429162446392012741961553216692062343077609132998844686699817336889150796862444012800577302607600362377144755235940176111869749959400298127739447008284059246710187179788528540838933415820568924837604889736826299947705563025945864203284094359144529914281413532654373531834113675731866130168200609927745846658553714159934267192410300173999744859578159508336023827878339043865440313694948821714520739877686147245125812934888421850849159735649377929345090888552799242537846969050210708885928110160613737751998176131415642820499233855028931798462697206144645314276549377337342666464536226986576394423606310434573313679621040113630477428574854053438797596602409630411392494066131940148939013231914891167255544267588099864844692043214968887837830531814612152936565348104089429572621225870346833372820444574227102336796072144093249562988330941406507054391888243646080868180406602074479335466413891145235725079687610615800606297602360609737171848218641849327540875794709668494541187190895667567401588938459975940800329622209524745344399593374616046671290525320376917079797122832522370496372495743449142480387590908094733242392449381802818614122803432032235908323707739740510583871260019169014039611445531935408465851831412900190132120919274528332682625298725498163674763472373636384913682598082525268893447517954512473008847650953951445290458170398617867339794818372635760307910654670730727096987368189562061397606519393767275726234207964922533106990918312158119321752635363111169771971545459200120215882343518829857801426823607561342687179308957662245066891550795909326769924099432439607756501447729051162562329887512975238231778349686419956324311231083313702964916995252358709165721916491828359654215934227709976467325072918131661665693014341540231439075580440009650915914711540287169480973551519444346073561617473747446507906655151106566059502835236135621251791646435366656783295048789567021037714199305565776313422614859961448075160673654822281586820840499018084793360562100329365595573271047980686638254914632592510608210215549571531305920719760124299784403277124088064934584022648587642793136456012793800537815469013100464484191581343562761186116235289092634079586372287772034759073372618300195491996949694388624245749878093357063172365162646672844346290474304242495091684477137826769842390291975660332534085737783433813027264195864351269036517330810005914342698286207131911251690009562410761590275044978788511963208679045051545273365577011909042453807927357673172129953586661382520749164011472509219927103379269109295603721087205706687754578820518855217304819014718449961872262217147283080903317698735761104731613834022153722654149646158016786954288101468361217376371711781904124464222185130809484969898667337765601363154795836380440364704494784624154138296049689756718717817580820890173615776819427229862270801853345397706074124751824375512093073811288571888614003694506958150658694111650879446925967104438489877917260047674433451702485290704258666019089456035862414253568946758744080885893210835931687087838236056147414779900119236384976932444973813181776548294424229819775304169865008660416393288033076034364969527643816107149954443822731262005727427929436598838026123990385924791372864924397983931351189568591075520665305279385895419411482746428695527353713218893753427881649684436180259135740742847693172259542715214766019371973117244420361742232261427090140692884148151094782326473717540924748842968766359553379688157408327500463430930257851763838682454719341454297040993889742131534583050720830690287403546652034235136208197581187300841370254122564714007974638714653290466097675392515605381864306893986681933256414134196088788104332674363992514492523896648875953377274090342418455704545985063697576258244059262100208352979064486406137772900295640154396254506384325566900278704734234318673573939218407385810030989350885517628249091752536678027233213988095663384587306259489625859536703611003430213927096883622428243366486104955105586198512858538214772109577275491996596217050910877115194164045620561592987781730813998301783510908179851723222049967718712401970678398670604268467627440018884781105796761694591052956932184260787850858788259788849333601394549109355853682754222444466993390729339595954731472893853199336788148640608938884918503336601768232790013716334930390829694230491067899376229936978520209137631984175661038503551829089234532046914539072056270221901626001718074573879658789090206821012750748337898290842479195919282694287312632109335906093289567394562557865439850200650150503615861957147528983190479989953153473025238506586315126180460710465781339622429644663120080546400942852661255814916876981051215508288400458587290492292732355318662537455005289329107244809607987076167429550446335651174046683194254809109961102011126116618467050813293832217382280183230993909854235809892270733002941018172079046834021899361076624499028130211202748021475765144339642244632855704305655697368124787422213252068309719962286946517479434915385234337652687502727902414416822547740563325746977383073372089359605379665896017855234984045417315449484007475790764887423151647492134510115087178266805024361811905985228923071252411763929174241074265173056426086506282913855099606800893277028042812788585988021365507410653695990956262279628884533543106395994236048309680018873151949871084140723160241280166941196872437832620524606372296511107515186096633772015575006423327912699467177534966424671056165612295968932901346118485972913456557997613429104968290057999602632014713511947797380933593651870440006096614841806273787857658826577953059597001316079304569818690326527972768570687383694342492330404445866396908384300372175870113282125979362776790295594291139470820153355457532227287543617169180031492550138833744671743921956529556580774962144625387266317347026640978518685844879915161933417462110802968768595245411478325979887995472484004074607652152280482048289567796410981854620281109840140097548851929486418943551562042180889160646975286796159168594965259277314492976756225065581898174903135981183659076514722353087742220834172690752624953612766866121157740318144258487786400249030453304606291734180098813742467719867933289526873571076316212854903954615273190670094803616733606439169004162012765998984031223132654350168185115460623481486764549356495398428142876617675979804155214318268689190771619592455885780405534033976335473037499567721219039824718650410226768786772756466478122119691207884875834891925564214824002571949321012238313359968304734067817517056847627858903982022900655256960849133314164218753491083519143268199292517404052074349734030559377609886148344503442832327503389699359108020485782360287810631756784070339350299290754803190737487551458336804571498731887716287627456660051381572974993878098177344227733886091106020499102827348385932407321380320848670139367242995518491675730123307418143576156098580550077026844397787928483275424364379077978518819133377808227319302217535031576788738967340943679268141719055850366296916584297609474407594195395091659050856933313316811862903296216224787067803016667227303349889858538304268869123160476663556172728027395827946930987016012949219088772032843821401907095852327152884245795965010677282755055281917214552888884870560263328396973924665510441040352704322576859345932718850652175915142661494026764843587124060043976676871374076990225138289728331948796802229495438240353606512024557447117590958038783798689070606790374157635459759123837356584278518575818553114042405711895018906429011289403983437721025715802615634638018173443437365836415275941306434864890667028964298941267254293179588881675473722641747283135888662429157479564200638614534501782806885436754900745354593319625306423694777517080230670544065670427018815583084309839454707430194375898177386012695299281196701558157316859726390392635122316199511631285559608736159200654906791959198073634856319044316012619746187030437173210049821742518738144884410951506851951739292860022011962281234445120924372506939064188566299298607382139022576999503072874108856354024844022185297704051803233653997331778936227217188778068381878201878878370199453606295425921902131339965778621793643193936821892233081236784398875365715920047529422667536517219259775314229896298709120315831285130904654502996419634248475041251632355374250145298586242024078914319248053058699522480387812790207099898053074530155785261841006559929220921075175245328740624305468971072620309860926873929733928826005109814775159493213089133897709686916954990342096045741103661553947456253993370917375891985581127537894681040048575287520599148033914039190945841555919023513799289728337001725698310537185386129821722409288589807448793259813682982272781545056781102661764947602969580097189586470908597386312811292376500621571414841780235163939542657295162376584943175215384709434104404180382407531829197511042338614860710033262740955742340278311377619401416835081881744681151499732158442664939519603057790094287551594722946395002688069619623845758556197257048692850722932602147151151433948393278494340437648489018619891668342785799442286320822082778902813433420074107655634287223381325280594200710139023167338177201908954247604844657581073665470738285232513174298717723471809228792945822036447481956476262436442564359309856388944420609861640880830654662860175423629558923527894519523286900802535503814513406756487077558357980791363848523207531312522162980580107630172538620824485120732829521708299098693879172604279306524368147594104639815874452345610279123719633877244042184872162357333845894821192784035506266533605871035034328343149833706280680613438337145455024619428410984989793079665799212009098178337302765857918082108784794122995570625133344384154589672014589743052779066081280723730498608878264882567084680117829942512987397553391816312331552308590227247536277555570315119729324205420763288867888815386155691904392771990000392173850797715439243963128743065049749272477759025790701669483273779246580692643321194522581496751404288982165869923653976722185571807058012934766923024315575093697682856321693614247286586719422251089520957484315320359322473682696826222555445168133509379080207414863249211759188011275223990969413491855846334800173075443796180620067255185322552275899733705798493142032582901026075813982062280072265495212872499736528952590906707467127326211755532925471169836853376630601614654445620316597873291127733503877226067035026667481938159861623445700963597290254050604438895177737023847600952785543841783041151161316688657062120437486651722013464313165266979200454945690380206717701475813746220121882933897825553572191857494043170758747106835832390950025225805166534072613769154460007955727450397957178160606001753601132393789529633227772715409515836173099761034503831252358689784356097673256525483950876191864956049086697590861517300052101375976181216706818997677823078294709935806493401147245067525939090249374724568340588949158990331300947397639284398071697410358662759612703939474859366560085880208247232960965816099060884393960459410330388576071198644256520610976792587616257881491984579898461258957531010635907775967881010533417834475007887619685822494433959336717858887247331173085648947821469363201558936141670534360884232591407570502534395279582704703235134416660949329279580086718013242508807945649027947308511443459533482373497925113244505417792997242938365071390830352676566559413762104834472309382950570333147450203966791522953534273407972748029902670842317343786953504340205301282069502203750248997349629076085875569449866137178997586645974157745420244915567213167581677904544605550944793389424190341364854253331131637328908291785428112636427331652348549385085398909023804931696177522069816627797105693633752485228147467830278541772356889624341597044236331405057128782111958300366315998604116184886256497473684218130136050748295144653109901480265674769292618000683496374184041457185490438639429971893758865478360808675297953400579156244627539271504756723207545878772018852220912993535226731143990028943500675204694655382161966074707258631941377024335191859901867920704703599135187156577434279769017728200077534354485119331973993054094905595911552706015698519378172144920498610635172476783921438345728542971773074176037424335256151861998684761697078142339463996387544864587073977302405852715987776086727956629653927263435182870985513002717288113528830506134685965521205945617289020485313155267992551055814697879118120424493157347052485525238069178003945510994592637760048266990766021015594136759108814164644935233507730881360414620427067432989582252145929411788403482582274866902311661539006553309371743663722307326278472203170530977732046434219207925983150450001115345723578831255967384926383897670132339977356994117509488393736655723685064889010160871315399741082002497671460629982411097588450571645422476346359483979081306579388300762756936362769023525710057013080060428842926144063503823958602339857840175345250360915461620135083939877836520445267617354897557477471236022624155457978982086306542403545022858887925932321529658343015929164203185958088742385238684190733251512273307316837342152582088579282192287744295152607034881845681076909491028925914607826878065438267033912612708988512310075074039482852768370950895130840368303383387999327611939626161732985579937787503401011977387754782732562414129344102312030092378091711135138905686062462108455047685924049651070665266551271844448607424688899031565056214115224195916208839994739611661550589174408149915016633499521727614833635395207311552767625596358026430155996294771038020475775054677463988728993653248844668528803531161463286656456047453769061168734905978393063566064405522691408412474924474259563330612142322574606775359923451924056538709870994537328901408824455398878087042444958218558350331039999525265146189087137277132705257934970498890121976524332668113853575208751279376770975342229927403275691587458884335531724977202797826341794514474255176610272786897014606135668677761859860093672600179159424126147014928958168697548381904880596119672651749995878192568842962462282558341951611854141863818605377132196388427116396177144088304029657884240265635429708286569417879425069455697302035301851983372692050353363901179887884813689346748973971443980937094609251505023180747422397211011790620806399785035943081070376505967238254870818514013294332322674265749123100853387436823801354139326777732027280004358309223424112769236746180642578304178267051196048273731792449058593709729500971161864944813949823159254513793277314302758285915464834568624383369184012680206157758802950991399238964807979325173929397578694629873005670055402383097222821322138744011525463117564443624113901579982526755785904299507468173596545939403554150621886616986446345884141390289560680393336151511570050728718011176504702296617313955419402945381673505905755061566341407711691983797468510866497616130207794652175023090022844964423818223475954164501299956029998771730606881602304085788001451819742496136133723079867057893974196079378347066956994015217401218289568886087555825682664370306761986602637401032280011025654349729853577271208305034321622508334175447444852636118762098211568667288920526214226291587940783729060863713838824819063047366350302374779838691294899877164301312418967818217004078062470640200457176487572806573218968408832789844792629951938570410194080554930765057591832808131151766057501243760515853714282521977696039979621881882778434136698945680029397843811882610899756014075702615866783326035867733872824974764883005076382858286586926619733799888111714787218181023187592746669310014643940651125047690012821072608778435756517980294363609085836375201742188719371078984564347694788268671207278986348701545083630628269762475513282254527765050848716402580589698705566136493347047498670597886422895793726780065048038263321730400409436947525507943925908058819253687887764781166790624875547219032474480643212209424714596477812566353898164345393030746723160704536321771827847102690058100717434054550688896974032812925780627364563210751045715947200894704690500271814578152991296844272776020415606185568525118422402693674023604635813355601670418184398824314916189218689994325634896149996412524486886786851576995100607497645069181159774733137358759930480374616718613981939461353660276275808605945546979275590476796467197170935068273244587184488075003018059910791709056972662510543937937980962001958951169506674212702243770183377672309166880336646767888828817208405274425064198219933870860697560745165583985342809792180410332030844790313859754485559870813069305601065253499094320011731674500642929097816506409606935870606589844675234114957696050039696656976904232120332214775374293324746788973738786689855707784332313143132082848933893023937877688595386515374574570327445387538879453292608596762750414625475721352233575482088471578651206732104594529280225542222230953046545764654932869704807610753845538727977054307949084002608054597820158292423351007239087623973549147632218135272386900584155903021704224452743015280989443039596317932923064393507856990387242935530829093498531073138141288231195494656444350286218964434430212024900453115724988085873290628170379649948984550295192326794638702586596378277746434013268933491471522430537905422336599657124334871032423036799113285077674000245320172886348668084367877310022304180298846362258460172796984772356699100715902453516708044169948205009891195880419332374862878608075174700617536550009566796687825334207687382578046042512711495439971250537958451450094568488990156902576824431136014062719905151896684921288284169070571289233457914777051049246550549688491840342676511186614641359297010954813508254465858626387940089934954683616402733814111895819368293021460614833706481251511525437209466930587184855986547442925203261674146866336651825616017751798581542344884688394180791494074117142016103012705556687381773120809220928214489750129656106390922645478056249640749067416099558727309427507417454768379184358460048362401194789687819755137730628803514674459747494488878106804735349182343292665546468489395321000318879879717811971842511739536841841161726389654429281396843750818479453195402971328863370687953341775241997902650454071733204469031819959811710791253677127942202089056543253446201177931660479468520537441021661096681919030090394723110743379761109434512139009943639355550475513519210334306117940072663020953789110869150408916969508948095079095203887777188499708637858854220232935664923395416609711351964438199506349679254150251149226513531422130342006674669937665530585814380918848399902461736293624581338595286753320878381119120386407999008346148280465267289752552892750338571978530641126549885434456942157917252713408185187835475242696304271101931440570677657292898067864921076555630322262273194490587853497571595101776316405823315123863851894899458425529771788464600573645275327043648055261378298748423708899507824310243108712147673325290141177904410845926481211942911453762180325036139373527154419808868806523826479875418304225076379315836894354243759004538192160150917968138813321072103836817229984800689306255531587474579905756795020628499296157501292011933230610030267828880822502482134093230915887859121712916293640556199580354068440972700422306915156128237035736247474391818853954807126087607692714356078748742529147727488396525394352954077133786419570590587758518046839257145605964226723969442865506026471721040110496200235845884012155133972706171590103346634059710676191566586547385109816821629964664413633764061727140170954326651953577810699547029854358139336884859588332616935466000549656439982590782115015136797261539262606450189766944732077601410933751810504791392469903919788046058902957040561954578687157474240477052117800499803255889713073286437367484274982436804178366766571528219969188818512441430008009381603558526890444123483065453205171543960470821563134666681638389845339064824028508911460677248760166101520441528107763516035996930758179145309909462769667476844623665420416351497546223781088798191379434588260360774325619909640102183635981719954933688533162467802245604562953278799753305123177220579252893675082193155616616867255741287127361908650153516435202546611184725954172944763854643287816708866753839715650465075664342148081367489396931530247742819375800690046249823199411602312515904433680266894295820882531255697798974537887590610547736848138264449049602889903613958382753990352943194149017485382949564087419647481388762724119973800434504998007026654375124271433719958219857057781045510061022229426767693338470752454977118075149460834026512155774727426821225268971610608630033601904092929208688256571058188178412864616363676338765454795403981692370408757841990437530550389730352887049921343808023552863365696788236602508053165566968888317627834307009854279606308515989715729347678147228954518689035765533466560819641669132470614311301739009528710430412124652603635393661930830725529272216743436935970970473596852686829266408878232898436586485743475822452118443813871090712787328077375879393048155366120164721708434754825888540831712596306976787609980788227681263831748109734010529656166224531464256873849446972979220773697808370361013665348024640059133966772437436097942401252603249192683459324531804720903601188328074143095311480680034444554351522152993890031800668778196120808543949145349140098195516396490381786547310104089738155199635984700063822028543474025900071382296660153695512536834507866715255598663427876216282813693153297285764976900188843777101671474443861361744928195249139537029948189468260631443971423273238643055326208166772740842455454987836458201360322344725040524926443021918410320488232990565632692566487735173655332184845947142299816006724345428484444150984395118791945847266764900207615613086384953314324770611017006549183858217871345411163041679681937287435394327951695250569765339818836773634581305687826329600306863186239134371711738009363113841514101399031960951020940431237805028303103867596287514543335329440591399335935950004063766315405584327053508139300065103011919384056541194506641634637102712066573084086447712219185129566718216445526546508511457732686367426417338471343518800587975252736968951968885162065648831744594904578744732930190832950693846013535380607186903522510559955490491982064591049205466664462711731284984418738204591434614207120399706198791745686312562101032023344798654579427963271672131618139355444610005000647814764491755729330942269922878469495211915713221179047704899603154025651844154173846287416012296934036648835403457367791598761196497898930560327772867609104606828447030682176191260160471960113921252403010874863077529848562886469767383435976938100113052413953669717232320791219277849012642592029959623995416981199737758723685930329100408606899808137326336294616760520121575943704554708803176294463051459694357029875469639441248935565409363435117645985940778757514399377330078819495911827894821948632477170430600822179803867586331481232489180785896115363080617604391901772403119350580732297657542638063056403423583324470859224489342979113515747920783777401227855231019433152661258803920503701798760501750864830006226372848431802588154144198546957295637268092843688403011986318875718136374408990117514646601663641605978984372367170905648060018237901045883294333327582200762738870071690605609226478506265532562885646333732056369632457909363230521082480983351519261168835448913969821240415061234528658277406666113538727354798214233088351363236334587447737707956691057045563198898517192341548545861794748213003307489771467461175665500349049485397196907914046864973194947825901318403241762283661820122967543736182076451238417146380239201000937274789285551288244542829973235416856548383035217863492278285386109438877383254257083775301467684774800268174342333508993878070119714217776237219183972650882760516528234607328406898117938073165096344744125446062957444630018847963675460715362803150844684443905837553824386001114927966703991548183134612760324256703328259443673378836719616082039148471970850787241974810204982512853290465651969837078078854746434418156913844877914093762045251425961629507861035835017663602754504450612422308116564117439581154338193875706055471380411826483122310366781182665153667585512566206731382017191888861774537801664129563404443263498513497413403877919250949809657203120953677372265739721579441062688480280583416579139335146945977422547458528821292654805921202768972004208525732952668292567829271004758410525974110490422199179426214837075148972369699691575270923080088878540208225892154261401147447603669978859618396608006016359422216554748020162330504666836373015868874299965259478355804590668655257626435708006124248861678652285951134655201744461489823528672358105748807397763278399746057598589636045048120230732075059756923819365086531332064994715657582924696484500341792194581992537189938855753658860134676662375371125178450086832016995367065069085964966168570080657132901407373578689772700773199839296698873261393479482094952006980525608526728817269763640193237503459610817361235940048638521353276457279461578738115923324099884342156948719240414144580130075358287864173608829423420678782229362746038307505412916431351006840722223179745254352058530053267488285719702268956484614495862189602489617102052698286780645799084561567425706241340656918815517419534727032250244608418335013171797622025839410097075850348544401227050904623088415884897409001892966728763141284590988283664940487921745972019814802307816935847981898773998009361061142944868698909083936868812482687742359784062727663888782452157002441619237852321584388569358556883098576015320937476079462918933105104018185043698641929088422487327387562313033806416187814269363571222266983204299849556624674115437071211698456966209208586200500172155692708982797070587593471893635061088342441876936645753001380038264767037440887206909950812220350650331437589005744360572768900799311804002650393303667746072140141036365266298653819475655194634879632002636744723056903726883915897966019226648933909370877431963210963450087935745932751530048716584852115653102356988904302017846541711507722942703170996747549433790070524930618230880679746684397053506088564215547430517355488845402486492464243633976488716023263405305473382981891071770067339690766418755522712250298072072716125016976163289661851543898744996012180881277225597849111403709257654146251822821459660573650433072266219734212800031876396988813555768216150180048997264740270248756207866004295055258260187014725213628206268865392137954889823334500436703788782794034781096206890494715231922440174995166745169458609929129029050124032059782283140264651575424825159373218037242881804328911870764881118287020691551010903391211917941254865604104459641868270343188586053120527496526894327932380075903354528038430206442628980440396457515735564067947591464288899999396382991073698611798959349434769435633921914796815525322674324407275849463432328972098251915265058619838993937872203069528455524166764387477573675777788419011713302035913384118620475845788026850748379645525319426577296039306627697327661615569932668453606852371915791059893077337302636560713864312166071180686304871730266195005714625706771915949610840812371950046459504127098794434352385160564055147252489766212491845515367307963522805790560749045791258462464547960648982334969521094459984391347439246437083361034079989035083132185197510711211434405376482894723183499696141408474963196120295790810704082403508998580053261626277642623855479769702756149518478206209205740784231873079240137432379294065955583398660521831211470147450513213505257222584259157859028158462853249473410878154275175905243943514505453468230852411619970009278851604373740391227581610193590376903554035722165443024102406838658750539272882960569838506050029507307574461471477123435752131503573834106989330712738900776027854951392461536872969258061327860031168692692065114034612059786624197966888626772904297614558416445861992081884240799063189162146660610697035434485650655054369173732183152736787999413206240320791050683203510618560962182326638805737985775608186627918181598391301621525058622378034951341492969890517694148151750650315785115609841888619902004116276794153975767145626554758266214981452211263072199947751651416768218424631851003567036952357262545573391803147586648341543297888181350535190230819375882661836887549846062118801388558616185187504851883253357288536215258110606262409181083660222489321895336137758603711943683938466157257457723990764207178700708607406394125191716965214159361699088987001711481028165624851468775576243837049052769407992524769932986780959501805740519688329432456581627844008544170426273017977706087829648203162904056771992474388291683942903239056659399266194496266386047492506682033986971727084130646947620981262437423643587353628920991766077903477163035984619534677079209752868030128745757487079981561929212340209190861093036946310451985222182080642356689044882655427910959546685593374608423990033191039292037309107284125886171251859521203464468451744089932651977916793089803135751742785230764623798446509497551062116654271373441110390160356601671261799130894106573729527069031821880426153542436983642055055798259632156999782860863033326963579681537369314409199452282224075826518185781283987682391412294820154482582834634713942915201403284630939987300788534349560667472386494317348941806925520605484250235836209311092648913105930014023456225853482425191605728947005229087190726708963008419149116212045517478521762046493110677148769078236013748879781616434758642932416883735137578492497737570694920568165195670231551328096078688822530819682098957227611604938645698083251108243690288403327166098930568932722416546154917549848426353512089256400982684151319630154092535185222550536895715782235440318700800232680624427365082992270433129984364339367854283140738716203899125109947929808359322207544955843664503657200059164340896263434783250470252988692502281462848849118317163258061789122862314348019971097413205213169090261215654506069608932669679808284322682923652268978091213129654048252525654406781819141744623108363841680907627258285923855796218526967393419066789574370703047254079400899663330805958683790916563248342777655717941287965334285925795190357128124918674346107770747844823738573968948820231444498938242290948863935938612912469825330271793716869495882349580360577753012905910889157629829449708808189828574035895287148268568704276687765061512212443188280922465423254630596108532050313317168656735164058731346555811306216461533160328149547308114679185523290678773234326702518621662194516585810226091020681180684072860035274204552001440616555099366144765407895267042877897020331281788631786410231561791612382877294753310530645886197513147027761086359592548007057409181169396402407492335003934831899463152933514605059953440207169021016195223209570777858718491418323198217853151134487507097158358199895544594139146340449949834284307371665057044177673821047318931645920376872019218617043750664162092800060119643028240275819423944055206378162084389929540613848861056260157485960675397487986970631446116538437078657843445519301751412463304133177944498144367027512702756405545376203243465979641244271084789624469710205628510821040175485676356089642761776401017276571983331207925128701017519170358959865101240319080387463434420703428271232158013232625258499291257064455747350154560789088789441710575307812117318945087127404773622224171675565628657396139130102732748148745971029588567813365982635034024453848073953944890804775796734024814591797811538964628595901317981398246153313068126814068542250322484926932192902047726066484870601149622117201699284189686352377708215185106274904999827974225663101302574862736637314615608851177997014237289488356816000164205447007650031785838491156839296363332614153304576410611592011377025669406899121669704693278582099647152939920273590750143602939609722044444046495727359725092494076044253326636377580098571270031289386766796013851771342459086379396452508719366068658122844039007871191631354644453499363112257439562121240273052022817765479243156146047357634559783519934125535856491951689729568660699999421160417828327054815260785576250645193946286508154077481281506955559983302770845156218231423398333268844903504916673635250568696892921851910059759991755906972463048266832327465535643881449385994674791553760274650372920341308816703384157895403153501634191621363790326039544992227421349148914332608787090857462437778193257614327989135659685356259827696045419337438145863181472024467015412961526529003996817023841927017197474427889087430509063273939420508230583414808989460298558425772949270978660576796091365328389224053529653773816165750827421829144211201362605471996969349113835599942009851668584770790314619295265244028624452880003031863021350357846437624361025468556234728367417349653834807541582825111574100966181792743873621323978837829758516326061109832144936445218632084844874707446595097357668841007095816378497406965803576741993027055684449226942013586330600657810663658644523991314899975430705041610290213306848424797432586068569434483413626717378290201252755728671901320093873328527598197655808264031763069517591116565382625048243667782263026475357977347093738969669732694614638486019690540413769449869010311803097117056511876210475668168631712159222339214369045986689720317554690771644822469062176578161133909070340520661208407725236227283001499076239447596793694332073934249172944643697783134813056093023658554549902726494397862232901862023928904176204743363957385891554045171812299166631150313877640956618036581615944712849857367461544810190238788112321765590819310260749394075298243098693933907306926129232778426439438506063692547037563162276604691720695216634447806489472827576672129124203164445156987618928168721043074514364212508323964785014050616291879340924929074058193496277599340933720878382739914045811712923401300246889917080742414671544321786546602466100706889805411172695799026614189840980117893826833906562056623157018125980634074700048748618499180863330616111176053047800226266320699507872501084397613240213457139399207975457528729833711007239934442072901385358864184298459012136224190596373839019804158373232618732639738704490943295872981412937918273074641262203496289406620114288363799794141275752450668654640003823909519470666765110287385002104530676712464069415374938804204315766717920152689270942391589185430650367144338867093956665181870735125658728649136425287179963488126416360689375200608338478738222229683051729236573920092421192611100053311978005032982001740049018219224677497464876046390981144115974763784558327088138284538447442518522165822997259576398774162690271916222447664342678465370365821066188610409310426345839326013642944938654564126814566939220079162043807449817203361654414428450916054614570673290695708878953984217783229227497638451362747830972593376716226447826121820038768172393640235986014172282710872687136819103933816418025236993054933673248426814593849592608939395667309484893693609690118649646421270760537158683868572425794416107511174207982000079908950972387979433068180991245960265228183763453484159964620789859206837373858610409716289226057334129058226890697504359015927318305647242010795374494718069054596240086842580645216223887434764845104132928464392130206791306044501046685396263650701296816880319413143895713599521989606465473615783943296283233221251080564113572010177295695615568027137685951364179916193962247028126886471094512868920429208423475317387405899091326240674203064122853474867095319890679756093729421749149758426344430360719853929143964132971352252231950335900591414351064039910445004324036787609221358562633026939036514584687308685505114587750402785099281512026564826015256987802586508787710357885859552144927154229918876912052219944767914055558439238615651980245292760148452439319809293527743666538966683222714172175576935796775114724579329650467704908651680984160683139676281790303706200514682841040649430689784163990539876689545198555985149062680853650297444840964566148138560061660431718604543774442108042714029303619132775028274427813553565767145342491381584922602208430282159626052045402872190796971845422496621088012701267734824213449197219526081390013916951562746793729979921778579162421906225249590774497865031462164028715543731647427648425248348341830733403472500888321852467417568661706807608039617058897805316201934539188507483214529879844562568893316431783810419041612393145725197188499580159431343360000543779632793289721534952825680418205760412256173904433992398372790464799499984519375077441026497117342750217005933963383777396366465969669469002852434674176196060334482991950839815394385752677606368372840479187774728727092830263051141579866165800023693921526302619491746306084627308822867894999754658829100960106271478626358184582830121910397108606460763026830487212026729234241075812886830544150341343196236425002682150765460871781367502777914803920315799627212328304156014786694515036165308749749708039985513898325326840267399784939969340475476409348019814017841690143250843670285947911181766335221254083636177071964682667548354439294099218060630367369613296623257331888455810796478177550899441605496080521948482637633695604673538577468746777853835658921377528359809668494199179297204580453912024821496346438881466149431875762235016311161290546353789256423340624710448812373970050747136188459773869555948406130816887089169566811299418135602709207184152720710962012533983837437827619210177361539002203691061242428264332576456227352999936428406350352994055393078185728424611484333668272756413207958258091947912687776608092532313403426203821291424365406589540566057120699767070105655375187314734431293695243776361484228434788301138318037675038105160400380793117654611435534449432914595630569204185248381326687856295894948452643357250016400290044230282105354874861446576728475204842870671940441942731981373967210069417092711448423815751231963227298482359122389460069285371330455109702056403726491438196518878493650979184025077957382454848944387830722181681624372646645325168462382968664752628398967170395482993930129717614373581955523308405270732334661624145741608853731762598188598844751508271590503053941411296077269706643450385232837433826101710373172323255418289872109215386550596088501356304697523248628276746815203042158366976026728012600139905518137984707072676143959470302171223768475261457494429170488694740292877537142110599581905981333247429774152968743925007394354649592659918983662486505783648847146187792012790486372885824761727913380821576216393400604925609479555547989412174513016248661985962137305509214575697876905960510924386280731785664993651022917618823982201293621540601371057965835934994010364389643267064490379856465579567304920324114745078822806538057486910449367586522557165759033872875409152969695104400164980793664634325919963895208283109493802800954066081521188365819517889546780251648213071311405411550825384444789755119959599209301869974750799793313760647917474344049778729310130816993000887185562083880461920479206319806650174994253873306575521919214001448867963265814514224680019683626958939496847971460684913404289776488563710721769537233071604828330909181881867685077485778513275065099318851606218612730706860478189927743976323181238056573731790626263446044879569716602251903422615124080144285561242827352148571172930737856554924213389435577365093790088429485856678780169040692119373628891749925755405994249145849683388039805660462847130828068779773234456682062842599299072467984922272205619193103482655869096270107223180569133993304297556997749993287292743204517998635931469962893694817000098781797106915647549851006762841298459778981852102740440613121552776564632583088577305453991617009221774505654915008657803469404729025185275744499830158332829775158301215079012962973573140150537710398190213514427831440193513170900673060363299487478191869530076376886921062415358251350436277548557428274449329989918372432768071408652016347750255811469816774168969862399997436790899886459721875510341778924440250975663121617125545555101819540060101076353153799576579183293103477062068642670000790873129743082064786771725020086254707009983824991871787350016956472088111842512340601424661976019332893959051710783664034276754919126419579955825129210069075212566960223972312166047359676950822249945412788929862675219655235738643177029939284126171389992779818905538472395240990839464813620317452859301044012148715766937984019494909586926219288949013162090740774846002064432249708596140358364539058494749858220019110963378263314519175464610613266903117528470322196105642115357565411130780136531077657205743087437005035786451576121476787479791200640514047492230738970570171979131753932733183640993273546181005414564938177206872193785746958700856285101256638779378449316645893440027234386996882349281875120544339057264606180504950326713085544792287848944895260430665615143924514230405490709230582608209370834710319813143433451582794215517620708898985383551663525078353340356645994381237495836883193539931901622348951635617440698207913076256922902786045964271596151545901611330252709738528414621472358458860231495680847790076952935494612357459680380261228128431691400423477724601671162592718494687271349407541002245487927811631253221331099280976694687511180366106782812719676964905349831934805466959364233074752744229288191421115367768261537378217407571655804498058919545315908411363739773107043081930440102427495160146846659750406935788917612065012288446960708716437745823958980079519501027842981855807092399531939600518652649852218678567596143028197241949553717942155562777140355290275615490584314834776320885938623564234174438712466319246286761601506838715203437783843450911027979717540541675596113308098199309911943234709895732976089825303969110981864879680139328110784085556974372231381735770810748863881424774603276976416108198550779363136915751231869115942564082095339346712692762323799939747752215503696524662638227910335480584838022789364868630736972542595217436646954073911502264746807663734355295487871373882176174080628852747016441354889521595948723532730011981673578217344912768379589147367042679333617297936841039069197596951831835797206118154084828465118021937093607138097946208714115174761551051110567177008221168020655407322466826310564817415956606702820490605465191682466691205410181566708848443413537665218319176002752179193335768460620939209098350847999816831058259428031643833071391195896284433412742741003042336870990817191450859415460849403536629817208261804114438851912083610961616056042361152724511776104719249083450908251597170128548848524892291441751652889076083777584248359856833452510148161545535166601115524203989055178580343204391715006475008947233450098736155585924326603082650332917532290170112418068533584298820126538796821900712884053223426870591499009547553317661311337911291861428466051300650785332429260173866461766552886345138431811297406726579133697255829401788708473192777111209120087346013796219763570461256889580411198386833367108951350497121568546733006018328520461600657002026375799365827981535534514962317236350070275452442212172937438976961549086370096903140258359537791381038647154504039689084260967706470236959810960722423841196914013604994997649598690501368150691791275709399441201176097865153431795395783061121399164898434824858462092250460066184899068267447139769173028026363507252962367789022672205555649702966880644474856359741486551680957606493977616918662792102422231956906647610117275547835718060896839413806564237446355331260037427129201376858791077753545810957031226033995129579284801685236268283313722288975547876605122741148629242529936756178821124244289581303381977933055045419031374718386889050029059449335585851977818427791418736489577681753102296296466636459618953728881083669432257137073801285800722960286968949582132480471957791484614904920073093945930974192701388404862582291136923964844387722776287210698260281100623771675223865416765889822378436692389597196799777389096539525105559482531723082982581775456291656280524554431320678572395612283388138026301578549663699342513694241841875373379744160626821032499785926300774210045344109130016627229102786723140763149307899039856887848668120342034854931962816903077522788182356619764298569613906481163908806825974492819208792214305205000496223299271800712216876847613277327554031817770671069882214326405700053798968838320653757729545858803642921749610897932449930528722672228456209879212890817404055601207277815058103001296797985741124887342130867184004081503140995550698689126627974699479932237029775903407913742688741023869213694302855377007488494150417934137105489955152416622565935732531629325012776419488279304220792971452235755558518392831130236715992975241299554803128490077651462681679662096000350311097375360287491403664174257280226478807245614616742812483144923870920965735749629805907440408799600156804518751054175195210807154419445496927906295429791438473645347040082416801491774280612144826410697842469277844383147040668943497883522176451551215957302910765556771865470732772803214581201870794161858104003882313828822661453225853502324641198261465288218205397781585928009389549289406897703475532241719607854020914239372106810447367198289166943841487162185404658926163900921223905564732246410726337342252205700690357570993223987847028503745690503718365248824274495027667755027506259804961673562630106154300790553801563652226032934061762358500116096864508433775454034869378582576715970188417537051761938107239659496061030089361263073225186700611393278065071032926895028048377584776729055027422948513914561006855319526190292498333533140764360388987380411013577922147421513058527444619431088804583343788527368605803153318552107085306139696068963410540372871643340140104532105936520847050440739201411403671332015836219308752914465373399715415556606042950024075670538437903632166219471686250252948889451011111604691645061983180812557459938642005800965904924039928058902441819597078656153524310720020166281530520953684585168941997820485525210784105250631878757764428506487919392916245698552763665800611246916041827496283877753325743077478755641149217583204762802019057053584809389763544696875423693154170375470373771665875071930683795204163676779236267670248617078409951560024890241268997903629011856779211674259683789746592135250922709123322000103351915099846630770222139991588080661825238676857708305713372666105213396362396754822881546240191418734388932012342962562931398260440843441250868706822898085452294238131179315594923123158649328977311925839847184341249936410195854182261048560705710189923901664701003278167940246584563122144220254399506765370086835861087590675409708016077773892519300324161946675250864900660349262600124704967868069197076241963946760602436030508716742771599016165933332941153424177144940366958317585089990625343729454528699519330438985868310626234549628969725151663126238009111630221703034787215849734636305830419447369941426121601524783216359274909900569085474452925060201468978118488041410459008810109521877672373975320509730654402702915979992519733550801747451883072756626262660746402227176556980123036691634519088198071446891850720789502676240124391676193889667076787734748721708098552162857837024841589501282344288081753197327593727206264258038399452948540123269833660629442636833288861792922239885798086433770212254886218503976267085691755494567689679355020586207067632900639624405325176184497932929150604943750585905516067617880467767321260129269298624986749854928740035548248281510875373448675849242626970838140059610582928795678978156115446944344725339336505274386581227356475110234029194327515086990043044487935829007959668272603016955079122721877660664214374183269781843270168692318187904252063016056187970034593319617507422586786081266486803744406771678683530697104408718550132921152619736542440780367196187657478023965056454010141174517282023096327383541722698734050276592162426708924881833360674597330376291041687841901487251450380102771206405551893381182603396536769126039749138286949010919659913235313387153706033465335657259856090196374669602754621246316165173322418196041554213180369456359980308495650620147418285585879523254066234872976396116634725911523151850278557920849000358878800154938959772942767307457573028189995128028239189164535218045370657664152589448855380350819184542202138957197212240389903441478285752125011719431923357613802719088623499748132235606957783260565238864801091661827444113921877380076616764743856247345778702665226232340985335689420303208781056495651498159770273628895321453351710053403662307228197722469868793133077467904040000568620765896683091302268295857998171136832932162382082740472302055914812877654142641648478114942481662947483867681104383375994660608780143467281055892940820785831998289381567102065736060321482627884096367544945234393771634758868963347797073454196664122089318502565929357011322520118319025425501052480259597527999175567561633863636835783523022139487041777839105942194952348487091866529048530108023523296765220411249745902273954187377688015725310423301233056605694210422767099851797095753329128555466792181254624994211321239012711620405608340073926201210824298534029242438726311621932751785677903233520382295864339463344852964142739027646455885292995151619694147617952739309342769242027518255434418042024296556343024926039774916124431085122804271163851921919869309934655550467134506751682247543999035310684722961183154874732514548765465378712129835361197996344488259781174418241171073490136940892322532609035526566424437142531834679278344463956625299520077046231281850935010189673147332827415693444719446003900606259488688711140571089116901150309260740312734489661692469246419465735598159605772369261690533222745420726788096930837354070777422941501122976995141631281360092653122478208326110475372586096657776993899384887407501334836036776005639474853564532054810536138431970369728009654695969403935845141439681964299474230722865670072980479554005213716266441964820194069470987196403245078156232735261334243089988100266142713192678839910498940705627819388473624930530859323492862932971950926422126269216571783280164541471610483831913815936607869152088543318836327155763938637257142984452943513272369793864334791965178691241997273636739791522141078623953382278735823938959884115869699001583724818489889114105710125434136111433604868642670989902192028484749517060572019380323772914891366549756720929437677524377760298049982377158759849617924453814014530977250570003379146753235343277600774275135838364122437485324700321663184395418819909519712251936700537875399251408923447676186201363175475572435177746274358904169165723324406663749910760205003777809359963986488904662095170273395749445235264873347046241001532822381132387064171864377464931078718150802859351775479433396594582638389185350244076435617573070501286667466881258287555101832152948198348870993828651253795662672786413150949798940610936190152308662863150203332542936167251688649508153365926126345679184186375024038635659038148418957857424229799290286279763174100151434463996952557340673603775131878793257234291437411103447809297735956150896567169547068743197317184829664020657786407413471632675810146485060667026654066782931444697141775552028622548896995597239209385649605196408996688420069699218882337246273614351976933488622531376384559030872134981547579695154837219249071574842874755249437986382210173027119808029154442457887578123806928851006126979792135080482939151056262460052596470167598966526129708692679692448284251097086375794900826853671513250885145039035237809754367312480258505817812177317071184430085520235583145349913925451318598256993795105265772114221087987455234412746707015400590843514902124348487489415300572190437748287578316584079272233115580060888317653416666636059539005706749688376843914420292709914809503826406820915619009082728675895051552866396172353049886566159376293287184005440961708118241937405666293812082591994545201550149034878163440330369829031500875937553488985208816532097697569589261631105948724700851599567430646486663906461306149303317342641336590201300760799664579341896620933429596363921599912664625767984149197603531949114018946601362764513631795959823292716967507104370182388198468948744263602413415859467806201892396772291115470852090817357345004777294108721570196959900085054434387840213692547003167550255147454145345445303191813618685712009473470341939113909654215650626719043450594070713059616255523586547669333418745725055648093630127268025738067214233397414905607964754194746947798961270430645607732560578220813897449730045418931685776763371156793665186631442465792345093090878359999588581502585455663649782795152859031546207701245198463168318024331376382971581792345343439376545198732617580950478264099761131663010924244630821994371545362140786099667974094226837147731925419511336501196424551121506689021337757477699763553463998443798244414658995965704416736856809972282043857165928377964759664088570822972889777964995017550012986102347353440029389825449757984201219404596274877227250574926950429462286000422443403929745490038226422344995836260703219063255569007016728178879130266861845090559103592457858347824068369026713168597225246133285345379663826325928513070083221585228904172833254294514005181431136879613199322446300983574277109700016508605122566570698015432842260218363841022645851101883741348497876305312562897906362670005781211476810226071037861859062827822907399514858566804851078686508445149523338319906618958083808156602583168386453180735616506832064093315219393225804975497478457812722721740855651307468040793012946710998016738810309894684286693333573844122153921812909418942276269260406119691878594148270057340206459488148275504508328134903361930287455597410115971543566484444328845318972803882064956307041657813847349307490662888191732701345715079479898255793449617263014650439830222765652648890658101164739589144980370904534481161624833349159374525912741079381720303779287698344144030914454367318663811460406826664719789265409974918363678413374549048159775709720118154356408928242865158166434731329499061154767621113782537725936685104598355753415805325619141152229870898980007818808506416079140261785477218272488516908297863338590604996432785910118286708870663012028351722054275806573825778491517013460605044081921170969960939040471186534177560445906209079597706796319560730163486007175941085730422791935632754074472589870959678484536109456422889854017193777073842826095246869243609999271240139136686221024288100529250564815990951314019755214266413446576725533914421709777998790958723157501347401232382582295961010146658879974496235505533211732235388916130982127738745000785681385385290754151297879811880997193909650056715111257106694358519950229423090163404089579772224702021035111120915295059710842220348790081056174105262265007940688596313379182849326848715128827478144558502776007821276515906695501777703890060725869976617897631635380203752038601553627743798237487470169035499528666987602308034533209048901455301143959189319406855426606378980049207100278480577705646997955932607452195600610535534826332437967566234371326561414449662515281014370527140240595217418797640620640267969404698643856153055510995032694188955139764342371761572636062784547819444910475971320676336681082789890206128200721003244256036626360069254399272529407691768861962055773953286741902549842086013910232448280575326114458061263647760798197340552836844800120268142989047379569450310353985826283472979140038273273800930512812971606532291668600280250843473138741973948091551960364803655718380977181303177833242431945511593803364031210608366251685475338794213075690381036640927904382170761842472537886600231748390070310062066009599025104395241918201546309107883528563232115653269011821184867397086579666031755387149195436711222568260080874925866116795184526210247624107020239275918427078086010662358094281165218449001456212876337150403485824386907070149576235941261521990917297655170573373400218570727178682384264744687657752520245628569339342525601425699459641582483278490637689955389080920827776524516717183219678634635580733485417232787254183329499565232827390820853940890922425234034460037946390382616738645775465717970746893797310366359896418651993563222481332077177957331748467159870908269757782398677142245827584613980912571413140486618142007914352079209674946702074702482705282641612922847977138529008967157537535249648643977437364628443227260141079010635703373294144338459930979779280762141023953069082300381666939897145369671934506298808073846779087494570300562389900427765296322748066367732617690279293255504912166613604462775837243196172259750626137776185767941151079246752115858366531831626743235954117749663704402639719646192332388160395054307243483399028869319439003983661130539864554407298230611522835809761656822242124320913373750748915389446272668516754507410300986839810239038685469429851247699356009382392536586647238361648940209092462542334862863866798090804943240454063142894580745505411855490519740810148917127028225121881078773819630786188900992921587255799148179939170805559007753418686685548627741198327930116990946433191626465585147309468516817436856836388826920485660256195319591281902702935659829675792495098428636013064598232700783238094958849748167032997099081095110255535826470236131416316454194109131487806683681531592329422038114876071844932596983917168834006145251201882552865927336321704045956850184982050604056144645102746398855294336186850353349371317720273294226876911923445297549179424157501765748211437421278175571359326481016184015933068488628595608901712424886496143964216211945131926040440193678299206445357074386045187939942521848548129404469048628229613134953226718757825568731615403233601725399891334179229759076531064861526999462646503073883182623096267335757075514031559609271277805830315457845131392349059868123217094727192681288237800741822957143247674390240746308450588892250459402528092742176458960657824014960072664046388813306032210677019526632013462756085971918369220400485966367677475719833644488938713437663908245736844486722267700416018653192697555941669651361797498778895838568587735808147247179645792663172190266474409447632968895742527603842898634760411718319734059525855482598376729515029144297521789263343831009445652650035750435108183056128476502644987773885822480822954747370138344979611012291226428712303615365719794583157714121717982705000698449867039085051202421011974789592740206596304436851389542198296880589913601357861496759786450577077627384504224595115589933361513859524173765790472300068161722417330323981812371834086804144809903587269664230088924178087836621457387571794629780909087178424243925933234891130893029163523445980801505895133838675770058833504112017472494667329636494299058662469444172781475621229078014534827561667830645914732922990976763245270009169935686863635185297218966622282339966479405704273440616423947850125631102694337915626980330335763469884881510942779362056885196606447130091043215081597239315698422950727068379130035934942904077104969482135675233061616568601722850768710667783746400614609753871885418409591670673565836800945858079961115363595439308900235843463199908549507310750430456143237525785256379980735554024120351755324263280797248984930677087451942653033130707092574941876600799987145013880386311878184067092757331689324192881120039932835072972407033982697720491691136947373323682955817360139465475446110346729747290164052485013586009926991631443341042224596675370380237374681908588793254190082846028758769910787986325027107114907128900407495007173001065187293945524334054304127774653590085821721505919640914097793466951931441812803647661827021938266164009043398768716193792740005834813196264398044874006962421992498403522754246997691044814125425308775721707343114436975315439651291169216736884846476821700049578986323542158622442290460161057682013046810539366727202869974749529971779503943448588436246612267955360911728738029799816835412194163853783943387994872943776847359650184681492091335851569359114985532571812971982880129750093637216844084395134113774158882383665502388096003525201517358303737561264937361408465192600772250149631571557886310537181115458195649975079760520480389791371702183086887867259814831700435539948014042661053740799311041474307967680194332118501202585360837761198166744077940383013854753665125084999691270553690544021736943218825697798127190492256853038331877192348185544104218336934423259974004968876398427798555950809838671670934765528929683633202115265493403961338506151050833276315591399043490827761230246078555880430668527808471635618774410709929720945344361885545697990979288488633897660859879855279394701932705633420185469435478142764308191477870477642572234666768671272719999487559805650417651970407923026156116050110450663606120626487735161111503819611063548094284799528945590374050701576861899396993583016418612589519145798061140632828135266519307440727842838631982412845424958635478747986801355374601690183280726242865962233500915034183648947622893325796624449432382133491102806910593574738572755281338965596433528925440723842454294067016630599410493819831105320750780972462274339767255132834347141779972520853127410500397943196405437937448952908407556445564128166440995868319768345730795246546306535956587328689431619680822505752994034976353539929811756976716396530808952435344498491982572374222684493562038774621942547071484687679226609287461669957975229409609750098006782576245437760803803474190005875797012721808556472099029271070816837157118764705899132918837130933036903622640029406044488001099051780997861757001299572060941085080825243986564872912020219503369677080281278346060113716888794373894278473080936402387718825377860749401118170730088810511293651826217542712807779413581215626131796029712177371738181025639432617244311146686801320078272217422942070309100501430283939956673095320849982563068083888067129893709137493178119494408796586630281432281724314938203700909908067769393743043356035848122728461926677963583124712217675949660397624665351731083998319492141779388627276595518545317758644499252667533238834735525989081811395104505082710758126853052551302556796837818511449510102609059044161226632799265059532796903992562314611289998182082102692097119662430745575483492470445732727835331613495630132808238661447645521783380388428628290493139448873331661367480862845799260567686351189490257719899063882757372525015678307858532945366009721070689538220944722602244355969298505090250716501780138167287739264229079011524951156988427359666508034856157487788401882237923077479435629397139812047216458124248247479699432213231989515893352718053944944177014144588453522681379489139622526982442299867807242297195712394414714588262725993032613146852607748730018606950105418550211137880402350687398828415318773295176819494847169407594040800289494087960495002952203594725060365174132144223865808458443569782724263652652141891989064285872254536723116494375578908161759576840408098699785144999731731158001773136222131320510545032668379836999585444642367181729031596677794494961328134228786254671307743303455734864911872671556545615264242615449669588745083618716477455640062765827313919209421043776933670802193704738929507039132361562903425793413441431671441140402509729400729451894657244459634115937546539502845008562138556753307452477964516629407780461126960773583200977913422380304583210165655275251285262527561975110967685746401156786494813763800595954549485835130854323305767242963391118241149942713449998099578775338129592048839301157665742505979000871327269605325411520972111445778151857104522065918964799550386332299056911749975540653433677093847598926351160187959404386942788477659917465889452421336765077477219102803152446902234199070268652627437222456082712304783330639926506895673212260582970366582904517067788005495457138322635644331126899922139655444128631713657450515929068461975381891596479097142553154847328180286196324864535907198640582459136552640354649011229865754831217356887889116749665860729875831616127904551619015016452554002277715207662435473817357890076158830749551508961181515973203334903471818664928834075311371097819208784756846333422632434037858387038519257617737870446326311966487025635703791567584120405681515150817433902501024008165160250703819223020100289720973538846934675614979170640188313942031566059997573658672693272813022936974263579785273631767407664714854276523781712768752696912967612753703517405178333366420882978031591745581246637555334675518030522105105690335258963979063549006970316983656103655175327452218915340263419268772084716503496889107158182155107346368061369428113774652271788349441586278304473647840934730741943397144695573584876479963466952771397969379762026770645236264855929468144558014019673755320381922968967892867867984388257916721571554123542633035837610868131078971349906099272951790077119483266098456820725902360985818016204560938821221156627061493101696375904755828340539863531770343089724844556348963081011539646485936062302399502758911758099719590335743758211722089870891678349696154699905418944836703178498597543211434947164089098257237074685258813788599437981937960568424552421282989139822931750933728623059158468581727476504175066964817546658998013060691515479701463997934888363666625296488596309039490650152532264679992128095329581769296744173766986797702037796644513767452570711156353676380163981241878376992860282214858785506013859126641822387134612475153580349273405319191887520296553068072681713705205791685640949694024863578057659267042029551125020842095430656363982902093678688483441427766424546932148106808743406802829318412877271397239865506387823492242667155691668500850964060308885824123620035277834504621450585955222635393947621415218279474141618429762496322022102692350705386294949662963980318871120894182722447660779277145135523117478201995616032462190729488921805088072659812212536804261452739471085380902320429125958679401501312314394331020128736217147768270645770181857363788066050175522856060996537204731730542040977205401457189507830393805686752915536386526404580913033202206980904164852561686010868476339210689309415554224331902981904285191516481369785118641734924153195295072975936422140461091923511044707127079170329936803184901190665881981324108564489209960210853975447441288555213090746923651635988923259219136735159230985003608956028504667673756691788123062344308333418077898610979562768948840632631839903289181666006756699628801112096327691415751721647554432651664154609578690755062964507009384683580107760865925674109303559079029243528642352006499109979119817191090304466439273386011813309799452023627401854826425092900765097695520975828280237893295457594528185036354538229091849917655939440209247004573520604269103095448902471793617710259422058592775582215812316935319143975053582900857273270796849126921985633784636911617858845899325243287050799711173785659994397043115265265182204179237576009625217235573923266648446944417871311221297093088873061540331391753042049248312313916753835281252442012371569990342720020868792856925644604926764962979747168753196491003690308965770737471014414787171293283225328854774440460342550460328070649961743041484152442376533999402833084421152736909388381713725829500447747794569698014625368479404156863099580336003995664394608661054100255102248734122076175184199767496794895463878015192152060007111082018279487523084779960419674365319641875149721728969350228970552836492168865744500411385486391574674730609444176003316074102736611683793133522257073083076271404848795663126433716344238290858800116248411428109727630564095923510867655173398215697426698106052706881542738120284760891239081155994577680179575964967960701698223344579320998723541788658358518748179406961644023728561604483723515116378487696324893685368641866572243946063297102481015730238099221658177096874332367118964681753574823971086152605724042236907541899593045980556772607919617684187882128755839383357643711573598813725069083703140162417402922365485197438624909664641574458391334106825452912050957275813442369244822195013936636627432943484181893917851473136737860418168529338914132640028548977541617956628142114726109079893563986199158042513218433277676959562603777611061017457516489623238354663416906836279174205748697354890055525748054218599093232369332181187884914338537057311320192199304991962513026906202111862519235767147023614262361233001514774616613806505131821531273647252854121114361056479975136370536593785060753242886312833329329098897120900387350399159546715519767066877670081921884147843754189314856790445230023629446740862841417167699382667768149880891051723977464388211174313038068817172362327409103848552370530405396959848253422165199288343981668090999451593181064965023284515801761827789730380880292240703632375784127636325598426763555477973491775776820289241019388273563027289990748058497885326842758799068742773751690333887710572473165879481647004910691610773321006464657486607250182127084213350312331731058899971228385115401692088958730095848462531476861192350379446587022708272857749529401292643921953178089021712566130685018255487522592305488260354865083584374936945320598239379834949838584295150280009151405541291850603163822247064935167214484826210239828444160468601976675875368520394599591857311063221465825516679707040900043865289086605876996155119472463077371002259209494220005987529639966778628630576567313525749275389947601420062308000198565229687100125949865275110375477336983415861279763923910067760058566371721864440768674272092937672965555439516673096198814596894716087503623734266605507996513057576758942466256745426622033307988633076014611447022520710296534734919414004109721113657220273491924759056617740109280246672936014149365977514439953188566321360295113629406324679583490766642910327442873977505116311179148625065256860002513624651387981669757035356906243962773224055622313670654848783737843549889260746387265625939978934626412718208119540637735132054298593669433387566565666022297231933276607232075344205174676467938396628916541492570516177278879978349746014587405939681212114688858694136958333675655766875995190877341871277467803041835660205087870699886304357283132563004497224855570550945290131160728845104289402530001268277894278511125460676435916381802398464725513923462100435373060824020583835833649768809018759621146413205852085482475167008592964518657207979743804367311441963168133610153814082416083863273082704446383993389438091259483309390113777132425054910221991138551979830760867179254244125919548785756301295626107361408129084035624239658555359843566700351451490663763376531381872481876541834621305503634066692632031349813935307544009437223369758353652689076769784987122351381479583421083486224332430468590151200461776639246220535198311727119237214645885672043571716440085470571933052898354760535999088206260078257278545977519036634238226131726777511483390508071997557962795974064384140862987590846500819489357238857115506341215510212027174965117073731960582786681944297560436536730663501505796660101482981970778603987436872474840277397171966095202662293980279174989694807937963399527404580053434451258619800308843336031979022098792993275195039835649684867712873910252719009484418657914933892916001607150251373675445710890011557068618507963384138581652579016020136268979737662370275692167205498748108765345526842649400636621769523365892955615707224281784747523333562789848949334197370001071225929911046747489551444826071465362188981267826704057542806789187303827751786569141847112740978129978364174046118325348462273320916670066276026813430181570163915153497950017341260222069018414308336420304886984132726188469477950371463437319868100937688934129293348528445282501092470975625817028346652289247271822156052868299949280908375231367805559985899706214078084628680966067357656084536243361067727079667682303471742379584695378771024392646465139710277669840754943764667585252672563713200962772811590640638447484311719170383092653471932815487637649701421536516888472318474654906651432804255106067732637964494859913692767753105821446158277992267526052382759440225050656757076384831400329747255426855015594489745285531341763128510874400962943486276693880200765482577564479735059663887862888216339640655459178735887104443425115962761070951677262720601589772321774201529165500967058506590738515134566066307178062952157649916596915988113364211320672393348683073341320607363359540579473765876792282282325913837815093899973073233465049247169852608856648298483229187887573600387120965208538518900497439042899476794012275287488684269291011361288832224102005537503926874563950764791222543638743795921831060152398536780632757424516815824422327363990857460352601676741221109457169358482643065900075346400778770495541951401167711009874771250374443248089554195996049039031447396139771784820448565052933525999780292205494681094470219872339832752693945425913668812485005940757500457091550817278217627361240478540819224085344470093578928720888971671806651994489964079932970608781096135909471052124698449305284821605370582490687205408342337614230351131187613829952691012016851373909349056167610159438523355438466022881894850142958562777417146134573092509033561500811268779413844022350163054692043246745296097772816553899965953900292703589801213250720595698160095531215550631438590808067922141311509270656629499329597083771091266764535565232157798804989496620410156287975518961620213063105476300309829756663202111787593916118874746668910772443133715971704257954623896754358581514754830824393571378905729581239202083063404315617178433717969812582724941600570885449124200692668061669311291938319995967193015112563984382740986184315723819553300191204709962108765481909195072458335177731718042865262867888094962131686852526542018967192151644783516700762222767243034601399678015238340047041796156291584706902854242723493459802697133993286296926209331457517363679918454191637772252537057169488807347377739835580484885146566394089462221362179527104648193301631673254308379259445590702615383726141342625793706834723652902726958913338355047904581510496702418216037769679124218599250319259973127437591972212782318739294268704894527116576963095363438502665199486349410316402088994384571488363691246442515499146318629069811013148543708575623357272411798186725952362704624546177562961633685785043208536469149120644748373388449398417592029726844139415419773178475637937605242691086146297170864811575859599949248932089133195527956328563547530960789915695344666927511558070217917379089412703915694643362069122211280926253379931246599496526051501809851836852809180006804784311852163832744209436112131096038046288450675243443154094817008993134404473472759619867145107280930762698242175285431670040977907169670894343630072723226924250838392029802144803217052194051190404859279523006529747328655665185265311523927689249254001245139844565647282890137320889000678103490489819155724044163971961673900650389936958416871088350824628025813767694713087293459156890002806012333700848773850892236182600447474300844871630909785645452104477623795295443253862651923298159727842339920563143367305318004507497676920976180435253270247890664206317868275026099271247934476424725726716135375596653768618390271863188158793763945728684262713974222315883140135726945046204425772869124206072023177783308836336628765314391369592944325557094225819182651842584529262923307736136853606031288170490877761763985792242925134997796724412669704969949493699558573722397992985523874567026743840466679687797312384337287706860740713615049097009538423438586831822555517141044877530586454295234761477700976226486192627647409615700876884199874350751652903935898908264545550292213055151787871139468894777972838300644577366001563924528378589505947902053068105637540712314999925978544544139066214910150239206599583094701205442582524433184813722271077205055663400714165601290854063405732204967652809772816927217690438890048618839483962626606441834111704361960677891951771149164714513349463101346496411064343162548970106720925150667215197873812876037309131301323979607213283454596498910708779830084133619426246738592891532151547367464868336487491882570826053979076776833155537694709834153730122296159593430832244710354145096868572312493948822017906925636289510978087443617747738454983143937289225131693607031411790068915165208390654795977941327770570452940872028561012360965924537867708944095568309729514863057076807190491835136471407183899268897194544581818191046457052371353148356842834063640540151206495149364760743159274508549439292623893944809862974896911920712181883542211321108663482264814376852697028760096799317559736136157350457071490623033011053119685381839533310434115380024853423972791379039882345779258232519854885024849106507208464853315715280959378766067391096280327420241679261722179171894103929750065437532815379513970056907992060386916662298281424290477384560682945551158704868983276374953322100443225403364000909247784793865402032558401462193324294296064838085553603002788462618674014807273318623688877786653345910214921893446440053844082245966272590860298752952476160171003494009064116812292826052644343332012755195065142876738853375747792816338455052307844114481696140589482336722279143204719916366370059458503267306009791765652722669418744321614828129936465917618854370375861587591759070462222583578201552695227321212407174133615392899652997102785879581850943273325616777345396097102102227007004638752791790203711183624700558224126278613387852461334751196160162012411608673046960016984711790485254196157131380811870198154716259021412259601141914845134546888728361953741106974056657665368431075411432178484054786927159428895163786972560961588323627062156223982563850810125819897728280914365782721355700988410935146419711802056094794757149876859047064409953273025873272396591552958012343928756323397007066794662654446349762408286578209202666125313245624365215255528458315644576526652878190854406441357946637510372160668504151270509602439641394812091848350635465076093332134071069973089213112645526985888891588654605907577765193189616196563322949182237595388504834381859190609340128224967695632304831205985417679758888055745235787607290163735296424673299051529459365381062245747442484268375868418628326867899731238589178381897367889388747596213048924982474004784573718271407188487292173962482061487005286292096384988998582117222929322432513383130467553535851142557716475034613797486140539885619343410209037629511491689465039790482078392951494837637512621725117097583506818474267576955001192492352740499145052304707487883342295835281205965909302091772889129958878473117746025896207475833165776066662773246751337845436064522032782779918651651322631734915574441586520675108703667404193380730559717539694695656385720594540836777489074400202097670916939442088847640265687397922546839999425626197702684112633983595025174235650014414868950172825748157505753214270505462558170109051851254333793718719358802008670125705704880608980393632539824404411015714156116372110325831832921570177633985074396205131377630993557491561652427294496805652836322181098603656097341895362069386474612518311132100432681073425027122143047195691049851976451143491704394489707620305089717346698263098750734853582301179732562466955681574607349840357337437821997528566572092790469658442529178371982168041814358037322605163296809783511486170537394620758077321461808881884316637942346257412481607997960953254729232309017757463367403012841837227815102456020173365611228582277930959935490390619181407285716889946675814196048914121412283737464333410788582358427204498348188959491933271647355038066565884367327677311013227653153714600474583923365732315855325286000495908438702322791921640232888564199029008395037891219832280141586222223498883564711103189992761460549070327607809737047325649308584440426702190978703027411835441637986493170217381613401576070176989180440932921495989927798595289265800024103360183455071814341164013939067651420084928491343908146787777192543436314456474693429966216004617317629019664538405482024338311838174686410234871407583271339544516313331893386773232217395751940580527078306021526700501542077015774470118013934660970760022066135581351012008802140310883934413071353453881892800252359996382806450966730092993109576783565307333153266203142607974198934495410065581613168814262860319754898246321201004783652201755397828294841631225876162048901748971160962328828950828643821510962328163054849349931316205408642350934605544804709270784812178145064848657672987931878381768070889823799282519149474762062561711828248702319374082836646260148783690999504315422205003332033371835554616563429111468806236577127612550773018070433401405788540604826266416832612037499785961140459363362141769047137737620038924898840387728784298988670863663117711663254156512197396144747304243304838932003892406744888312018448310594381676329313248190591678146951612317061279068972769290183953776293248942785399791943136391112160808704266759299056041336754714952266941529780819172827404674356508002568602706543264507269244272412774864409962792544625013546271107295207545352968451647123499863301819978389693156403377626402267084071310386705833360456454286360605770009792916635136571808246899240235828997592696195646973071549060802273280074050893719131074805419585374329582426469505302591695665812916142011431983839236520015913779717590106143326873796667496867740697736375262552187402259325143186276332372061975433747596692196381217132944000201377081709267994309588297903257084871860501935470777711632437396071160474147453456196158587612430431567319581093250079545453245347570834660063958598334245811027325110735727509607495748922604098509768830133401127075086794292083682876515331335813038217841156319510495658008811103512912491380236666829532122098274897001569834239301532389788285979725240171968183026021806332954265127920436733527868250009107133271909575518751654889760935109853472267463445657848368768591001827028374217235335276472787783675066089303216502204392692321408636690102324938630032226933295204059926325072947127714031594345214288383879300471423132897810224704301194725052981758969251108276086543205265864801351721720895416982710248345504176215955643913499519722752334675505405999119984368511907666899824079612096118164793747115288935096685951208159842884394777553336536042337349569671662924448131215192699147125212822531956668223818843714521037246141162058995504437839096978820821161725376481101029336377374137879975113058077467476153553369647057187441423375305813101799991519741090451641394250185058679738206856957167925736891585810120121788779712569742427387378743243912136187460694316930043123020226145324021427215007174830980028287053168936700082730647192187882926387800898751447873028491389590167688568081063260248656351337431774902201542737729190692296611595193847106382216261755728357669188489411708660302118342377812693425412503453604999718867382761784535734570603820889146589085011671599995279829199757795992773109597699755627420712526365590589415411990914047963363161450818489593045883130094163874756753493992632437693187819377218267012624897094588898054362251901059055027968883916568799676909613912841805071288172048090654757462463584559834901432742940907554250665411658974241534728219083351420974306454996039176998227618868953567962859180840294336051714393743192867017125354015098075998895181784935591268782926630411708464285665016147296172661709242400986471387746418220653721794532555753397599553423400938584778808093295875240483536806367272138648007461458823892771307282459517687411093152707695764703578106697491961750484639449639373457465362700188540328737317242923531550638435606990274727917199365071531573326458272087274319355816223767686301045387605583573549995506269810704921423148935668095750277950695193015180315788646852440174909206781718476270178847073132034255778681005151551871167992374088697493047603600930655739367779016430056104591583782024995065097244271156200046300129364568872365405367865146942890950108710920942661225306696102558483681286391793936138392340798095674744919124552859203724021506639001268982645683440047752961890803813009894494613671427833318857276956255560988344926485879021258268236756454647992982779177413871093283625394702656000138271025178138591326559068312080289586360634852559745066290138632853791256481951240432464008537519080168268637710007383471877223635285750960487660484570169326064333654787523134566025598044291824598359031244240139799632102436176600262742891122594603945561664090119124519233897244855823727980128383434983048092680623407981233851137668108157328917877102361028898897398050170453216111975231149619758601357705062538677427297684571613940880936189655178986016571221735234357678791183106171211245558976722674443467591678610912927045037483550798125415111294361003594574536455935516481286560860683035649193851160379058016476684337322308627228461613575642403830711342580840520276474721091905650120403741620199660425562294769613445529727552949248341594676663826260596091398452194071588673968709719073867342635008768540529532657967861243216495621123854386239564725306393087574225163686546057718627812691673626823309802043624618309644152798807063225037940461758032939431708872269448804238159403992761342982454048618437769244637938707471288076332037898843385765000550140423051760090611126056327723120912512303003962553537945934489450995161373140734505295014228916285797673681123386035737170825716916026893416008461882059477445277455802972747328973087039773241103649632920886594359866319609734645254375162547347978153838142193666963186182777895721725278696177055167571889291967574797382145018530667920440148012525539971153139503148394560683383846283401069534815565841768834071774368255016010008142508820907034501048105060950484518235225074747305906292615586959878308756622837776456286534348049622309366835994184637927786456520025582645894754420019071276852386352442693285446307625891179087253973679994042597783573864676232625982311519283953197977741037302521387963973542568760709149108899801993987266458867876812397702677217294435324762129892693172787035668155346463198142135884650092381805675104241247065591796663288234909933484512740250534640378690223448361831597112821316352917694723492662870621524323808943907812375007562648518460482051152065300633714181869381323664810833925244680777450726786837715917699788608957041809303400372516028631257793433499107020105006113498699633758821561434829017411430911303986562027933678183345298773055622840603430485198772269504016826684414729190252085428053348749074662946263828432424341796578774072320974504936708762902788909313525332470765226750092370306237069865493606980861603588516569215286353103663623043041599811969988580468796352844513204189857520647753743856916646885735448876551277022155316604437563557726609757661281392646919149492434344154858472164342166578171495281110754295680760628682975632481003556854818932220229112363222310512623183781622072935524106109434842260036431998541646760019306294486772128871207003656993852741798326593220353114178494426537163689329766700434027356424360762481833318545476004709462300673222302624247654566137396028230424789418916541485190374636990710830227995850368599845082050655109448937927639177111503983942786271079174707240304809856392721934614411323553720889905037839588908678423440361096499031803495408181872436403751308669619128558184306592635151481132093465859412340606745643759354724746222667362808838496689352342800961927523325113282780240718033053437877549038044450319053509031224150491945952457175172123107245734622285418207237285305148276550359165868137442628638240321305930046965699826997604569159386241331086989784369582542288431586896077946801070455970069217039497924430082710836156156121306108829074703826256998487111563285390549170929924951604198339035896408376088175782414539634157775886705606957201517599777589183769882662421270332530938012112818731592981227815700269962264097146113022305832386162562134891089543069563557094161957516803892685064742309513923494718584967516956643709751800315248946645050703518283852516074222236146885575431874295714223504957725583844251792783865694989066932295022853632908280770863087570416894357696224188002339676206766761040203149845708702567695657342856182340712184989685392935645977970912445088919965686428397736718728527436977782349894755484477576361286817596227573006821152796227759526901329657168623646479184314748259468680036238424436773740908709996093331142946748825282379748760923630082014712312179316688800961075722780166065860935446963887198870055998865119056376651244679434784803353205858517742079705322348565463874570775205442524509144633461601784867186917512929782268262007402258731898512060955346066429385481246804482687573204926673753913064338277979350133967734842125423546827229469927815899707537384677151448587901601278939886139383141943443980129861324724377029948124250128329367538323243383206093731763525816716510325842056336029889983047180825171674153634801517981887910427573269698418337567938382700103319289040383233647996518544959095849182354173256577408401764427507265606423790681238965474138922311982704594141135781502857123198645576824470986466196647505816475308668734185991670696874670710348908486057573327892416390250532044460503120124142096712414455376090024044860311129727121169346543519859833663358114488209760400317095655095092936261541335835006308071753153400078190861685096012109321677807077714562002817156986128795915486998274558611652449297903087145000925216640931957299996043742511571374821835698849311625790002412160154826565857941797909153073178662905736239218876331911997557150152533723603761519881780785443570453407890106237741842216708869392526223393960622709994864394954453311578413080444413264286532507147202251519100677247159948287326068495083291464861658982158382759368770314217522421570284178866647887132034695692376960424723563774241490417883101846128232841892391858813238756852382289459959444921022980887963629715060996660661322824189512419574000040492546431950985110665019543304127646262162743651473415075236431138914976413792770175414164901316333620062718252164619636920203321871783078877973959810298926924322057429233235203373201741571766402349667410437549713253272935900762093782283678076280878030947483564455869762962973875769214782040845293405689908037984444929544472527699219935550797914846835918357915457311275440428722715319414048795801637491585859341367736737447030751193935038094036568101269787808942155861776590617242691813455845379641638671695905411207439658839548163149276420734836349967180791045235502273483799808187498284798248334064863398056617801432557875858623830903657596957317114596868584195813970381456685208034544114765882473269539478642514821348278641942742739260074558655628348475105363105795597179783041967292252323950577567886714971421723161870001513363835011246633313528621509171883007721017930503371258929031057300271698272292985838322020316841126742296083529600283276093452371747679855208615489598775122150843697912347198254473648608198162999806112056016800454482689264700868180240846827571288381764607520500523399310504071925067815910039619268724506238603257164009222957327945770965129225061538605217958784213815425610602938271129606631347466772769532259585163289485108493350659131893476425367327060568224855439866654713901471137515641739895780881441058636619568555337893481700432826993195958244336077633962323020952535838669763042179585130692428889998191851413086302301152755499471709629094808877639924898124898822141682784876027251422753551259450954557650620442331403844691091641674746736573767415243185563001672593906811857779964604292784946616955174230005573957437441451120350676530232985728885432057414463152243031272346247913447893368819645274566372190211735627214459309062777937658040238288009116295288754201318220518369211801409124751804670958546623310438067208963181552648312451583173855701669014114902572289684498177951359620883893639487972123733162569516476711300121537915910251663774249945831851707109487701258413569087776446943662255320116581906619221340534717941175364366803076106154145326055682496026750669854530461558804794316627876946853377666358674534838884632866774813362406330814003181942916818591078455367746439984736131150492100500531824133846696040833881447298663174124317066344441524854973173760086836762529504030213973331043142416845482461563621821543563026785238215265207409184051832859194897092226135893588929125846056434559518586109798998234288759718522074450182317637809197482064820924694152098590858868121115789967466368074277479016870684462520229994816538243090388213346705704908009867214491434431959879171442750143539221470588583859889396638029108806766729348078889801593784486779556311367777857353310750769807300029735261695463667912318308757674843527096348596524712538890374398859747216856511580452110190484875103944352425978100180917666992333183931364280305152426316979641020213319984445291344087097774712483565471673301147378884508784915004203327423687564204250798661372616969606596312976542772628710823963273677599925603983171392277850045581473708434807172093906925230944197514239113565766760560712282024349279539017290937582082581356504000286160298379856104236869297819420121958056263498502837355535199003269735119235777159569116283631321298514908695848889557903035115184636915441156410375310775612474958743376280797216168310545317787349437827228385344735526340666636792200495567814527877266700816200587342079269033619470048091658291603962290874691689161316849056587674771474695011837828037212160582362713184370221589719447039007004302242053403613390631381120043055513733494522787499521950715118509992799932705567548334254318703422040094461090123662391936609117149549051142751493824580438032845046793776250420894912698928888661810963471610522022338654486422114231514610998928791927139689064955355683517559948427432881035922571759899910502019005274934294304536142217484073799581945137686419352276278543930424291023642264408989834210843874164000076109785299001748450135386887726569219277602209103950882168869516239314978465383149056267352519778676766088855086363022094966413534166800810973454501118231547198437005650374535032984616622744599202293957812793958411208138323702414507809014413853284052435242129825723308531356411906429950985737197623422409431269024547027175134103738677410740813546355206179884254606257064089896447495525362869193231252461999634785045221523379282133607609223736689505740580002977126786437521737966463382158485327710977959353670895205487593394855392041346656632002749058985980011724590178835644598418122886360402399608747907518694465575594038403758350037762711739921744223113829855637978145249838195487045886960917524776322309854089800146826567120116479513673762090993006982912776646486464932681037431506894129549204867557178661988502490885871574880753498995990816019204845757967840820010179035262987499960664430947214363048885370435093506299545883157694645024594911139179011960549051647874206749245224288407133729892071637936052273087822195303724761818384682642865100517746879913448848546246588772661780501957292948344388743290992983992904579339148441941148040630053822173943917638579754996557504993770158662883566837740944678641859932798799936299196624907410389968692310974655280121143063046684141146104619795658296322609160935860586619557749812189423501429056793854476944815766429861963573365236075522643990380888908823490631324829956892457585298077700106434412352953032988637647095776636501332821388549231381518331438614658087690278050867408727087169272862010423188926420431486786648641381248535142485808974778231577382633170458295458946453064604442728023257725645835463534267473803912398874523360347769525485740248233543067432913119925950501905629174370609942075171662686031291911305109888127182149349041600538567288487264027706108081317921630421140566134788482863088276872203134014637668172409671571641770541251371543806871164995140533068207204717101045964253829089678059139161460446951506153813794322034962513212053920073058335810439238246051575653366126665970175714344605443701957190139444612246025540547585369647142184198973600525381967896251683467376292820075304672664196721686628380297400120808023685878322490979120752548344051734675492904270644655164798677154968001527111544170915886526186031623573690184417110611275940180685646896704492024640603741364496063962857145879622883246297148741705929025029089533250019207117822274241513278776262463838188843799528343689516893527906078971062979537905228502534559725277186002166454745729963859010847627571194912030218158348934255193571411628821419706669904880848351378255683320211786964097143856697476943277613206981176560402279770275461569451344538560778980191644720385266901085035790641326621067138811185162857220214107602065452609581149413715246444273442881478545533534449540344144735423525231659955598078777682300490567467822785774817015316564418191750161280428912976264995284852206019437956580866396471671677010593583306700874650548629372670636029954303102295532941816905586246765272263834357805110167727317775288014501924478248281106587176600658448427515572536773614140401408533962730245097166882569677102658360159770645590660106165732899961315517769169099079602220863271052847165634781228029986705529807473194600627979815908622686564368322381074655523997290313166437139789322109715963292773601935054488846656287492976676290243056358372234322150304880943988928100044324138732890107776844344205996487330525492966916486831391874109594686349111953565458307903124477170477296464723650270950881598921361066459533823580040052229203786221684207954823940685748015804992517797403396417142627382615640125029926866601178038865368043889311359182502882272623078502639471620738187074212445581613659714714742333303576367324272073111485769325478804808872986860582940888587455505400375431155645798662142239596782505200329052652501548765132975884935497676490974938854836906721539477858984488635866800146403226553731412387158609640286489226409537810991845038602449972098513928694043365518940238120927507621613021338784106218003752959773587329175241969592074566487977953967996258390468426007384123819238215884683858879097016717963557308513757362976479667333662312409373001048667868654613128860823875760861658528399635188587129107263617157509521236841498219864778168741947050844483915237530538379623338475148339058410327102973182890004010553896570601027367109213585730138840729028163127020193662462643760928979217927642402303317748389940416871509214433184964993939256942051243051607365276216316270226814215882980202568748400885531062694136180161088211527527170452316699024550670024417279485651319589246475309173864169150409419745796129317820002676457391444052131944043159730875467407660937227730027313067634541435815552004999947055863057765515418146977492209547958684702133881343056660563656867726734248957812942572175964004431144825161869023354880814802208380011570943257876728960515019960879221080409272311779377710738678500075318388740028659027981039031899151292975234300280548483690767546316209395749211911862269136212742528406698923793111507622777766829252866381473453663923595211970165642406608362993632502495059136238510625363217884910707741556043023502984577825570179038551166707654793424644568319805848290797991686823896616320212361196649913441605299023039582995279140328640689638613517332989250795562967478574881027934558244357927492790539657291508391166500244028031718517178917717854955554646746673037139500941340302767764702519339418399347606125790836327739739096875531814510328344842302865899159385179035714509434131651775670870030959909890701879773025720930765813050433104842281110889114834471045086007077363985039490614690952540815925696812524890993015918049708851199884059912006609557953791624930236143271880636554041527432974568136755910234066034542011213546342959073910027773933154256882660233867652509513310279224364500141581844330749693409087792399881390729831667924189835414422764998693043761841159991487144441561792946046347256850281504296262226944163251292204138256689850424321929247898235613764640500527177704381049623421949754901106681204718981805999162179200647163962047220501169685006981665627814207182237408340286766630752854796365604951409168907061186838282680503000585365111198944995864956783712083774431630202905799687732221298778205258914220849727493391785992136648304738541529549929755442297078499738732074874591846619156487937888184796351599742032947544207938000705442474350075472786126819760984637028296722179358834366970783848194984040392560218192501585359461273947841766445826545370891645111784491430477978044257402195305916287486128618630902044053508693187550628407282503466015121227380236605974159399703370899691752436859017630229622015290957361266993322987645690839426815081520177863137621098990385402662641778267529272998695224564564366906426448873395332791224355780105275628423646752807569227717428081712498700792388741291794954441094438747043613061576995810493011717867349116892056071369253352109117010324446546461145763293823520842384481634843235707493083519063101144937025227223108581523011723513135824619426208883738297348898015699783815340900550316925658570763220383228022019212818497828985482592310424130403496020745634822063671176136308257845431781328746733169358357837502276332675359194276163015541581841942312332343223223002689295294081144747291531921677710349933092651824301989063054386360686768606896917476499118064427318621627636426376621656221255814553830885985334399334357567157007907844752763640010600747055478843455056403221717975451612412995318875406266200771151995904890244035915754283313151149394903546127034943176910056940717391477522781303572795865050336319393461707231533561465669843592894538830701426543724925820988978548086793179162813569085826153233415334692062300751525919603496653530316009937089752845056317098753506351222521941044574204583748413845901142241478775614226135809292531830837967045369413215905495868149034091116360417751724972823119350684190559501372611760909894971036584822081889618034091932897147840390647803889127888952112556274346907629877118723060241212212391344366159607429013687528988832455313504267514815582071270912487772755768249680391267508008460714973066581566097464538791790450596290608337197583904047415064855755954860239753466306580183716716451738458344419918408406225063208071018268349477952274209737694308477124747560175916969197329537999953155781200640549374572256868367391039086908002539186859556552615125852394926463190609919853329870684074721108246277986346940794229440034647413904359155172814215509748814685273239144221414564824831706425830383962892592626394262321470107318908802994826054137679083316896879274476418346652693071891115742951646721422036905710602573790062913338932735277477489153379468949182579154453040501606000622399402821458765158691649800080036723753685977729552458108312679540708214596724090285777270374827947592669462407285270026693131172909130543726743579051157362648011456785730914535241192327445125644838452528679269991348746306382641657918510684747478280548117865894581933852039667918532878671720485333486251556428514933057481933127615409384700771703956985763676559632010342449500404701041925206621266009967684734638051763983018367774395855332510716978706999994645035013705743199910326146584562873482367376897411868661140264739829312025135395485486771312958065772072658040392565006865123664887555787390885085113734214823433340757994748643977856932439224693280195783112843617043100320465992152854802150652563022927035879030276305169421050117967607501350282248379618349638227053560617486401573011808535977619666884958663405774768557888883357250037162092590196876140637776626924838821259494768461519849965063419524446295134050795255031305123142808529222794731551582695916808787131511781579398722856023302479221435947995990941938671912927763418387629554789036663011038330352817403735965244273118339835397783873192799744699586615920945971637079157243298293930286234490021787499053330023447643284289392190113913443134745555599993478457219511805671981389733069197261092339043876019520268704279591473357661751559462270145943611669197181912928102153436981700591118946352057553465472270964857043467636430039736914392508709186627478315424580930976052920986812330311117466424966087708034655170220484218502168742593568634374211999675446050552500590738387546275236744070673805305974816695956171178803479245725792209591365587742117784555584236753880243777354608372762797297439322982781133130735641172927702440999086494847912482554270295242333887350073739099070283182255898728797436745168257601571341591923098319934542828961634702811208440896596606974663366257371116142167654557718540161816018038918853600662657196711190699712078511844841709052684616473437196512389653883967087350730183647593571629473463251205022153925207394563437533576625273441173675072201576545694307444912695151328738566138348687534647561796532577053898504475243111022632897142330799243687355681113649149516706208370876186248343806855525803206336909974298404989169591528478657374074101313432472220812394577527046387936862267969299766877864831321204575954238166372174424182790000658801474736575047732119852661452119354010859466417713719498182679032055802929746317468413674451628948599989220781668529896105028109488009379423943336552755250689447134352325242234549363529079184184118430821280543802367500140214178230773176319255427685814693540762053130213170785749756892928346641670113921815881344089832664824736960677170597058344250747279460448012468641029175239546922967565301802596763909992303275596511552249736330204784384530724030816496599619674717417399071500119037455613084178168434310283382007889532323355994374342020491776385677648475835068957770069690692729616377053120864233649215019806235970884025403549175032845061121513967764301476781598349049204987150124353266866670959129569575132285350247201875154346225581235248241952917648689335014770735308946424387490251108602861979777793454799077538608316168720438299786614489120971582913668597134183122067532406473601102329713897580349251035747387255411340427828563209557099364798678374209401047722451473834284266219751252454536369848941728798093557050821590459704876517403065721292358778557295965619906130613406094004385585960565799131525156301977370859853375646997129184053153074143540476655256714713300039174085185896876407035840042814686000823376711111660528401956636049673237422307270462842698985984132600608638009711360589476125739706691217610198530355273593336128289836503446526683110754124917833525172352690243578437357562559613572464406593009203256809918071888794372053278033918539996373455980631897500423910743426335333599246952326071892312648156087787959991619917995221750406305337246822814603225662350985597607684485385075322205259657358475076555684788682089321512720779714802051051499057122818955607799533154186272188011759424947313580296356861512710260853710778386109815488256969172566766817948134477469549262764874916404610222466177203301400252878468869272874645245306370458837906062137569596064002678046230729810847138240602518916299416752440357662098443058038733475844637944369471043160141293833603797134437044018177187344985715303446142693892817842135307389195056835077628038272067268363702932250296191365649591255407052459941372412682696870780620694641512867228512315054261567368845357769641753976548557931924456333312672445450410277228414594710515176862843880879575559166965639209821460739714614173723379513556983635834673208675164168046760259495884216952683185116328121598903049943932465238138012135829071998798254307839627397652947442437548970593723895058477509060982392508045708439682175232482890046646421739318593201325580513898673741130676724395406540449347657113406117271313981068132956814902597350383577683898906198450240383182098339523105596255655294400124331819470104860096851935536351172474269961162090625829315805732425942243204630213627494788374355035856941389095410342901751805656415149740689172302542317087367128966403264532155192959352275423904824763592006694425478104509760490804102731218650511811873632661886452088009461113975196338747345391693063450599634243259697702771633335833151072432352067723585644186843543552833391623526836094695638067139829762184055780520701330008428494725417897570297397750602862750687984174023491949641266694348848504675247069249530691636572903505657991759680744848544807681449603295779524644927260516175415003264521436230210905790106365694852253239944956904702268820131616523802217911606146026872740722797669543018124637045639178081827427331126041746315631619737563546019384653829736277966947085726068342781793823062224005247057755753243499641811848883601209098333923908617702908547786317401891802497116453868090882339925409884012883593541721039630175468184070079807578285196525826866107365769935521311109701953515246796795467472764290788447675945682371058941379417439084531971474327696728642070265308552607261892091265599640201272485559251901146113793942295595853689024294455143735242734826483736394086333826709110860093794586755233935608319775524297119130239905085303641536911344240207370726156223162002579855071598109480567621066876625820729306171403812434668811672636703460496574885711596898748310151166690363389722628772011182635824864945165867111115241318090419531916913793934401795164502965827727561517462136295876708884637597736885505228240437022943647021600667091646454037038333112786853723926950613781894048342144378082200317544262939882615610862721218573243610494024056629631783941663760558053492917500995127687041722379705889156192382621094065195652321398711739233982500337208587022187938165576514538760326212002632825328929180924516534977005445433570076000625912294600871096564343759154554388223789768337012270918298052233007457922140615184256274510489861399797182439546945014555395695677650388307199135763725853108912928032825046668123504300164222083119403922710340815232125243811981819654569890213502984556006307647243606774748251843767565202815264002632458717410318385685701588421214005241000354908029802075652848583215145917547896168405591230704284650135961140260555382330740740054642195066066871073067281777264734283135109114835464297386896473560573632468766711302566496066045554863993849645394204208070436590683462102874175866286996853831820063254158614528935089069486326126694037829284282519980773491131784134085104182785516556890202329634948251943879164269295466852279448838661072069787374484225776319788904045862069106952128022443929788723936593641316695946451261674523433194214295256231523988781657240170919648842581456122486387819382098595940680668952782177049940570498144642179902674207688926155747876149115468573698397373701692753381791371230509327190239381779434667374425399352232664732384655488613987421044337970963737034175890419355397985248227696628268815911381293932120447586396670934019361870818463056248691865760312628360995400274602087518067521067825850311423239374691386485908230514170363040338012391933884576990290036003420414937390147087657633730692541468935928536068201786118985309149789041200436293822791969061158753564799290509087524176891127831199858352018890693425315128378198130860491612251087675409840692890960109659637564930549448415800959988711940260989424587611050078269568598268028089693893429858646348068869848983050066608845043085265549935010143831731402293072781221845549578230468485362154046621872488310050441200451033759644959947502394424895818183304013625371169533999791086495967418417780524874588216085144579887131637135353003736578751431252624393597362298133261680411780186440200658268475039440818921971684395501256736717317449102938068973569916822188743976499477390615265468643577828681428284489719623834924819400266220155738982148282028520830587144060184626247029717464491803917862600671314167998143305289793991581546349957656596452013820432997860038799712062930898036035497658825993815544539168831779752073418447515525767988652068786182215332471292127766704176941404295013156839737281203986605008294839847608024564927539864886381126586381130130651562404108018457442332834733370159237417160231694136928979726953717217886806897090947767490596409569921352158471381714876900742667272049964613197557275480244493512239178919469978582569783753560127262314658098045987901136990263543691789181360880890872478054135547986799129329228908681278157743011554134473476837626505591749322141149097749478235150727923325822355654636022393054413301870920734602023929342906108069011411740225197168992100491638545976652127824403855029863821739720046839839321424936704017092811447737469902980125864265797347992637924936324926914628726175421924240213022867888028377343290088996959351959791639342876423588868203300752763222261032468357514209645016912346781456886136426776823655928267154404721375869056891817753629480146160488556626244971089696570467294286250802262220639969537570929003720889250158320118394912553562791045447168439551818739219783120796793243854487875050643574530395734769949109073422716708725768326993144460831320507158692996061812093825160503679680509067135609828899579690094330993292801700983733687858213642117458164731566991586312455595487192622093981312228742862481594081766685990819104112692244728163398147887932515364042151765248909941096837842037958588480598141220132869868644260577573590375119523396056372028734802170250031888425844601038110677386598228799678067693996369471280034268518791711899856806668834490302192313453819830734440305383593390007471528191224686844989715673366940229027929779605857743966168918401634503688235008013978988698148779500076334188962153197968189547508381882125955337685142391328339982713302997491263976869361417649899663032905952802680283302875391043226005818202574377500031601761607257524493032888800429380261360966152973866204437742811945459666430387822707605807132217038066444310526027043983554457128485947447436654280754480794637625308110703495607778712850365997832932878632460527041883324535868322858145402688546396353870186206117776982335377939514244617031482882637576901759042315269744367064931380307029239923416639434970826511044208928931933629497885281549219290029925052873466554742659963987800147579583506140453313546087697809662055222490754453587844647458269593937044139161813107317318089395107211079237590373596690809190290099129000842741919732827437033732506447877954247967684906198897140836078869434684496088631279240971014239949181737605524607268603999768980309207290294125128054378800004212167388404744513156950657692264603657305740153819370903633095656671104269865869896309799267369428872871973279059886234363436335591981315932090252540786062679415479139504730592616309273526295449117813147177790338470703115103443808570879858489541190144739776065806361496191441141612843346969343649478084667087190154264500330873518941863345254318242751401197662123844628139999777475436811791836391904331605961541742115247266940378703873931001352197210834726803949386536781321635773058643206905200032634330939046093684538436451391540340654140336831542731028164380133693585914004453611890493416870530208059871651196858620005879029930191389884010681971178420335452903142887325957805677948489853294994592555514792368850918127607584126560032607049010550117872926833207973481988909972482108751994913960013038090876074529764634468829039931152200563985290984326213442504482588989816494024960877965119035002656690868145667933139782737511772509049816061231120373098482002205581833406852386386424535790477851184696313574664180363798258152453561563283341586899447658537672664451237896652013472422970203089912314008046075423530979895097463011228774911788524937513270185287213651344149830413302780394100980881027112812920145110842880262421210177251843233474462422177634178571166192729021375471998707382507497804989369262190466342463532420155336997053007085501130666955070910015827962111174586375991186772872490780025386727007175963187048811383436546559920937056624373237748906217758334628865647235318547997944180062600412885275626303287551355894553927055495341316707692843025212127993609515415829187229660772729272700437756048172491181488895245796599050722683863711283874589332374822632366619644086460152798270880865392679855317305826136027084771443890701157857189391576716213628097376336610450927799945161645494690446150471344280017918191195869956754013125657648855363601089786841124798592675713278325718269412078638604549899958576324068867659479636039398495914406940119995585954386980663374383708179282564882116290536337422622105353773820839816714603431175035475846577196375750979941612460336801024439530568038491032141909565029116766486228140294270371782661422775268235926612595958004861693347106732107256511778467158076079343031670635778897031255095359140155895168345890653405274461305587066928322549590968169848105496908000975967779061369303261878674351177823108442173386629812106511637470345014398431785067075731375378610509230615355803963700489993051162945204198069992231711642456935002689896154128831628614513515831159159194360159944947206646351257245723518370898840164937196491082777232545869313176911878375656744289149768471716878028303697012518660797623035012739869363860028336957751136339167421719556142732501978341099636350525924516872431998637095413875415553399297898773960251785936996754358266336086298817885504335991183435976564489180113416894861057419151965331331952823865795819195313786557121930424126535682741372711405340403762797076972836146187404803666857936270011552557722128406881670248907021661150508206947232271417137475844015262675531266805405815767542746682484305912097728899835957379798473914155877825690551964915914805534294115868932214212972717699827660329012210581722191375673680875964997397983803915326766758339362965574208022216396127073813840170058559252298502182904062393535720303467661881057775286600573629661768992727177307979055403927312588357062539338791164395228212343652422180355284755098209318921234526867701329402501164963549249966105389404306105487087491928382156752347792227932088198320074720181135287655275187372126809244521081487382301561850041273460520858959922909895930516739045916235949604825364402696529772745524103997158534055415193545035610636534573103974834804433115851046420707942893857578711292252527152749858491735839905048126365254032371978182352933625003007080545844770002172353040682700715956555603298435479981822664471581748646593470771742652457229559152936276801270154444044376978088059265252356402438532752526422884715912650806698233963545283901128650455617116082696776426499217189817591702161807059656164337968236255079154142831519889260809866326394082192491967725517910368355739991157628368532530579709081334859780582972757862025022585572565904588656594820945231550627180674034546048373850997033524021141233485003564425154849348877010565446673729909374535959630076252923130996137111556812838511910472048003405562893618602234555306479588771780913347436243986252797706287710349780874747164268144596980344804095947516937243780618175153094312609164302420764333702312981073505175434782968112757652923220071621877294704324607217428576959210019472652621316632960895312339891694182260176044411432496052537197636330206156373518360343941236378236880048197436190660868979329285066600374331857236331902926872924679857962341014936595287744654690942621415826673802711903061204763460359503102064702664067080591123650191676886451630313989074420222374663009930423647535368715866604851682779071874367975346136452961555742322286483164768786735351249146986707694124316989746940153211499610009940280599031246093228654987644570098712197019533815508821422558656673731487131541416695140288057485876881542672913648864449345964252280894860801464665116383526919614917815897397496422713988783361242663835231684323236083774170527369676766439055047061660669297909868891309722835587572200952842274934060157521277092319221822343647035074745621498074278373277384105737693860033343998841618823257136497259071830106354311646316854039787597219081935800938731646488478102000244371587128490870973331334581220473457043934771672900388317100152692558859526123749736835203940244460203733728423736426203578937412930099357272800859991915026649135783544370683567821314731736374263932132829692662721551639330014425538520953236908867876809850244751021137260097040836973517705102493111785929435575389194371847929836291985494196682108599325607414925163314946192897876570001584161593739198674815900525599797489954669817260388288090036561925723855304459670897300237375454383111844896558252144234960752760817925560256272956807622878517566601309103221659622981334717663928136501913870809649776005714326227377053247360796319715996911915376563546284473267720040226932389923880340317672147253783362366985419189193656176264175172782422697486022920344653592645079349852844695341621792818654422801604337443819966897505845105568355226275035468468618912678476691607825497472512032877878403206496323549393770265248536784831812557589178135479204332309079146132158156587714696142794585965300413873384122204900189538493604624616397074219117696191943885466803838237746341609812526382263597194069352372721805421609920955649163285364540520273821188702767039529998805350195724908992479765104962936294709604542805077189888133864224568681411452481836757694426394245497611559040143694475791593846215794451315611486523267692315205614947861044728563930128566334229462505859484351192802466081127164970158454792672751409701063222898678609537747305326173648211013769415211674344821781349655181501131581051321515786714603219829549787875765296333567577382786815923271102551525792126324782972445480939992877791847846843390941408599519004948522052538429853892707413795255326823763732267938603071571457008976801776931758892289605831572827217702497275766052909789257070079248548208411389578151645928413628302761926276719992521273876625859771006057438838496656421396842207520595483539180207372555596885100635900281932555377644227851190865846313810447736093205464152587458519817463812789364907537352214103921046123331350966900359831809432334468430472960130823438683320253051412223116747714165866735031555024260644644896433006629586166372397747382318320206395571503679307663140391713065107784033883205979614942132797686141284908492216238121713024888189080462428950479716167564702744189613262549167993153892815285197974743580398761512211683785666704473599573699318563795291072274237138633144317493380054515465112271649324434378735853036165965106758964432517923560742709839350765446155542059479209938214377173101963396612198456316257520591106629063517602688812783100371753007306216913129464965045775728205206764233953184262252442195368588287170104391521118462173350403515363038273068173062253610159252003721958986331074249172754147395603151748614702804682029615198645208893792168964977236585381526020053138473506161701468860574402042063374352223021427591658860913177849563359069538823031334870973360495300318415281615850362348141107959190956372289134101613664197860478067826435598118990252978173249589090264101060858760485937718149536164373846002117275008465263623165527324346928286012967659669469036865928279800964444746202601610691974575721590855495180284277265258685681354475826047034383158275207188939678427719686212561580279842228786505272768512602262444667997530667516506799405277968082399803970037394119589049574308144928153186869376076326797689111682502395760229755285264735110211015524549595825471793493891199810890034779728424201155030295305531814500505857565225401372051214723254237221749323746736538602874365562929634233402501776795528066154513396401896525315473533202813076464489236623647878067256862342715580654800418637744788744390592792295669900205745961593953041796837954468459078530758604463116280312834818027762850339910177228482517388668304194230390809858958135881130662085420507766375137093319642985983627077242975874536831758996512396103661882774112452431459918836250343192195420147468863196260815600689023000978257467425786090456371483248553036618595137238880981132618795254483266092340160734973675617815614421307942415781112340700558033334314589250110577306358254938325700558330293394255986073993292290491195356428425855952046902856693442692803572168514175230783870529072266235228604424576378829425151165591384093581158511449402981414904806758050032362674934181554159324685982348335905331018078357166127365165438034821280714802616123625222480152627243641325116277344534371437393192824735073423433606658224586108062607865927432752888365548606771988068970701868618811846599355708863234635074307918104126141184901059629477654720319639320509658242702397861515377143883222006272396759250155565762349331529244128894750308796234379381170983404520395653640271430297729803539066512481338747790264308284923018669973699413456369894082434955597637907738115448940005041344695549203647525617716170091061306305164983942829240301262456433445924127273635718315071599106177924173706541719534686284008937091084568520792568527262410040246140991084231234818468123000270994423460621248270070958704441925320093725162962297000519915491350868685040307532495173756612440546611107164503956954026825230541591416732058545069002878468563000126558888831880822145597347026449375806720035562638659721075441298518798370604901386543385456068418831776333594832814914201918965160949406852024962304199442871354741431299079003890771143597263770240798505093712728245394074544769746020998966775970351964862825387383611420705073828736349224049750415632004984321894476318248407615991036239160291450549735509591293996373721329718803744191536318245772650634971385277494640128980934297055651510691544903463886954604193945103478818436677596803796925754440310573032185701201371054494914064426175602045171920301596739914440094720501716009996099775676736769493930192233934837091387393528716516912332106689064030730535649685642785161131092959243891373037369133472394358567372832958346895845856219473492209469434309452479568544207239485207295015273077210083550773542196523400426492582146059427579386865913771508334842944393467514903647025831686640918037187457946386486040705639197933730750595347045706809750684485002423949747762671115893929292134432541989488783934248427866388897596265674119362664992026573161257433398771114097522565611269284424843239032466034646599214884483446458545827183013622528261702057193287400662277753447138226426734236728120126869554561471826413037067607428014343078077632136141188117711037725514406540394803986260239809228184476392348305264625416469566261190326103455827050876298069533715234743568627905253721039698757166502130540252572519229855999449656321234888190145807920530474073056865020618837597736950953961851382826439382977509063858235290480703097907554614685568571804651585625228311715942021551099249923806858739670592518280224486206590583694266828759701744909611538919435312765358041274056476118821661076081786552860873873537248645532540987147456514261817586330310277663806652463087859016132277461746935865647406319483753008010425438756244407250626533954806636591286767881571532976287892732574967561724018661015641839022866337718338520896865175989799180532448237037551402400994167710495595002330925292041189623577889423431404164539496488484184056400514717231237776284595218897866590903898811427677711141068427050436871883061689190505883176182618092937739213395975673380371526776708828224402296196549597218359806807186745467011536275595515000165318719304150111235031452308624309145337468727867719733861514980689805609115544077044574463619185037518966597530622986517847101499923894144834522526989963774183358749024766666988320231307647166669237194965468719803903948164437840777854503070070925925409617457788112793673963071749350065259694614338634473274283855239154602424556873835596192487619120938293348539183624153726999668834189471601278317588581341546582449653192733344580083172250956717737337891543610491970945870790440465374506020359267755297693732731255114633356989660054450645252348319119257117161587874105485179915924247054591767765883827069872002528764577716884159353371017301046975766123419501876976809806138527557544088000047345224436910275638349899924586027050661814599104807458822663221323164451832010768818635398899983479750556666230201009506291141581153835816131877004760899000155772013885055917477754836857165309830509662749481661895123685310476691237307689640769186906606078590145756829937174334556679950815347122857322097214057659508276679051227478531079559328992177802503632873806668049749167125985903761677846541289432492002033044323806552988672790565742136919213172734036656411793308022904765287467204388376861984951118770187597664121736579873320450700080444284976538243510774509620164707004399140021551303922609363771884692868343457063201925189414387334308807002393678965379284864804350112965567310245402309278774360060561152380460668846731109493747147984420136771074676024972719419643564638106998647713927427790802906149035470964841629799556655566045934187556399636676307660085046614047541584647247006926189517935488252391043502003235015424951287964212106841588066764293762658042028715179717299326761340482461725863002797728485522310930560748796759131215540391107272166191286703268688846473481847722705898723853913541767122190528412125167405673058803598145641734125185680019308835290765063237618159702131278181958461634520639348437005652210489126029248983394573981689875841379680632262861598478575408482768235479969442391516048139189028835660202741402476803663937873921063415718862444493655997651236802353962308305502735456259637920830853625906582539373490832041284129967876891050588510164568176145090802275858657473960678903999671768034330496360200302202526822358379895437385011265570326188412689216261359703719378987545192715750286476294333159252417439208955939071769955710343502048658912153568463065341499355381801860716529986713108707939034283297258447125530589709812184943997581518537299206460483188663383320022983368118994786799493070593383833965795717767680286400980559441614619952577351357843309126810123877282367483115284086242632448190366417831024544296811550744716775505391832931050178488450464893830562213029497825534887298951883833998385931830608099485741851216309552747658679310713871796880580608568386533812948438622966825421763769422051381863502250099649410173140856138347576438915900686387587544205619079675381129143277792669887668247024960750624887477528337734101277654497973312025391175350136663615631056788368881162679184404460507530530523371098735250591729700049572168579045403693047181152160791941305484584858035285555938163320189888898468691689404173860248911385999730281654402397650130605307965463193786640758121003665355203553938043609679972563327458878303082185311310098080488205792627797908053426637766189696878991780944617832320192285637333623712333362242327978700216484190085734230948689935960405662421984124087066154670593885041267706942506095361772811176594248980766175457517202752974783699753102674314931747848867931939345020542059265873269920594421156196997602059447566084262775006629588758856595171138946780463996764191688488383708386007507921220205793742014232451119095303727702746966181711050778675372801577316976645844066000357721878071137063674350569665047002982675168832756071927893794567232258224792799558260633630357973304825211160312298112637485320627062995488955778979096727015876006511377262766092850324586084436605061487321724487925532826894333904325294577552701473998824915077784712559384760009745818423460891194612923688732908563172417886140814066887821337351537925284527838990678690763452146126032450482150030636722548848374543214782212659329116673385503842604057648867477072770999989520089368436186949228213836793294437900106638950371689294124522403482390009712856667303859262419344256014702543581061674161923741048844852300749659611380372174680543957319804352155426720550503713818594842599918300338132384954851623825288807786496278386876469031698847993470504564787359175898905711870398707384552516640696015403854068867650630636725270804368800059378701293508012490237887505713715361869216611667352265863004888554642944442880871093773839660768886466384400910185083842250131886576691756856037880383937031413967297877544593280758099737436193185478443467916324903347087551804898420145244396521913220638619108185156047302038897316502713727993354449965275169231222432712015690223969638327171073156440920471598397078156010943321745306703641689373059260028333682535585374458379390335156797029854011062114143051765845825572994577898763071901281862982939714211101011168332328330922446995826370502393991809609676936278285164029672530335818987217006177558595960180218637406888682230535625787765269287050764322373563390747505837513166895252958501687402104726444338373829371932223185166848272635071084429978528088787844872856215010352915911065695746366709649008519305956056731197565224135760572229694612857132741720273804899900718553297036742928128409461308289610547178640937242760481727174952851647525276899803242527911863523437438570428663183089293694556231994201974106154056084766542078598765122077962259825889901467736610995188722759485993827338919349614537930032714025804878813082474425309642992047142708405783827628907726976239510788097163116409629291392552520547307206983690469589211657984038316309558523241633225897877607295941954321612812501245438101992312649875849145601513903994635084910381325185256671122421615227213493998352291974006955588218459353944613313632269493992595482782689893537338931490932950686567959364373102000998381238332451293348269418925603208172940287431272147582231422221032373338957255187453208190322322845878031414517536905954949055157026931689885278090821518506671164763884188963675161873587896336157646597165069941108612332091309313170386914532270874877540961237791115535956832896349101518201920353845706740683002759676414851300901147414671948653044405299422077327153965865877571435679090087363704635488832805997488119212494164349281892670814757629685952952121827806448333811705764370596306554414295872790372634130587502083324317971671510171443769627595415187825490125659670992567998767940294862875022975050939182496112281500558085439176095595398474616706295050699396464424028302969552711359767539187706261988978825244866910839015841668114721951157738104933290143093316073218344105773397326836252967124577209853747102012232206243419618725786386944903369617319726639463424254994384188983485974782401219493847506170357543951106641952954490915595150973644364514224388698524462164973937425519788298896712493435054081843662868949798520834066100303577638347241649933338824870828918678400828476657357522772648472469426186856813533941553488556957431845969905124828462840752101429689609555245645079734697911016961493547831887310795050860221859780675236380548148529648132322902235713182178049120811880037265979873453376731057394366981954779519264734925341315657265694558079430238820344653580829694974914118797662964066941687575594400856463954253758704073264117522353641233261269138159269268843124741030705133267090694038891125283877416180404054275288457294303228913167057922584949022432811849989144213987702346938981321514775303619831620089803493702078018177792648102428719127651509888599020486064555330484885853407871022333784755208701007111430557830002504116460070075282487700089170904863988494650195849499559808689548604649642375742640970475576670959346813736026198914861330992920528140014024254933661611331954502241036322792603623339879055307553447017785607616070966415025658812189321574655284090877061615792188523540414856373925675531856863453409900298836219885924821100694697952682884533988967752886178732410046779595888506657006677258503600073263358665142825200022632230246732483701955322661764316479149838699675333364894468996585315625964667854340324292520115236140602513963947280591895942752797738425617912328911260242751608535769893465324179444003198044650440156429994879816910029501642937143631471405698539200017296285220260825577471356454129716475956874814413437944529795404928200785500188855777529947372140164360723174039117731741400980494991538861447170404350404377659292868096832109528940091325236129846288311546775540922278745491719450259433758964564623620700052971382460927567628197839905002390426866069166651490352518811137842099590488412457612584636545694439496724235431771467125960200739666577741808889362327901091355484031601992629457929533247558140072807982889936069187274063396406193146999492711786481658907257353612590732421908896038463479462180401901415448974514091361310726414522291609278227621222842197521285933936279690990609740462059019132578985230556236674031046445206121971522256550712692816397923090474049925548245677874361069355248127462308192762592969901163837642036695031119525910242886230600474324151417967781686147390060026187097211704247831974195567818837171061545015170037940137548302799962751714706295730395768037854669790677167906904224236564521597064012849688930765040289501747551852728457085938493472207239506906798149392101237600189102402138864896358399619944328060157887884170574261658228497657070941114840397799730730807043316872351270544257398438783526893626497771007890434274389991003545394705274487891230077512726054218494180960346759656899140360073545536918411216905986494915434569622369793625243044612058649211356361641589078763552111323883497080649785759884711343797345452869793730055024412908543766313971396133202822669312458499017028708379879885795602709160461516090323710411753339759762501320304445626775182552926562283769185954425154414302085167168846107919084417935203815920613236722192939803432126514636304295472063709227310844974042225768155706296690412760915643767870408516930122720536018507793375721348728436846357957840493929831253926950957819933950219164569676791524248569315016410789146913851821508658375073570695144725673935523451083030284683426377350634984323828181231106556094206225095366078129401008905036470556881550033358867443582077164853867324450246307541197246979085736153471805059768303747195213748794229580835189088563803042932898277630214261384636683984669277215797967025953910294660649911279579548455064778555151675380163460188232119770489158123445871644416973073770336235387218154459321051040373769056986389488550631470517837600248336205540393638228320672612754025796964852021330250858601325071695945471317590950986625717021796214647834260589734836276810254365375509141001531995313821408533552141644787444982258065056709001822725723572013270439155692008475098465795647156816305636588297127266406681766597884378999872599170238000261895481393736085376973215852592141568286666923446913827596203989346993810864619281450769933048994841738288994943822876782699464395922333326690227085493564162199625036363162326612425792076392074307720830880635841114445508018873826437046823093246891856781863444024724594410870188181645041236739674222564479134985243357301450751033168051421821196693374822679660946914903588992864549565289393073287376856431083747486982438516496817896217234038105135183851252905940168452985778724706544675665396572663983184547470541400885317250030640963741075224661137304808423729765914908430571395075588877052124361279019550529838077041514531578375230547882733664091515830227972102468427936013837022143840527901870095422201740430334881253785479229324194997331170820926452715322831237329998286290463392221974522115205019945052795697246435965908572744654131931622329213928111698587825070032720900954190410819952986879056446070499416437812258830751538038944345146316606644965999505490133323765423232001998420048086704147946125207558215709732066125844447507069871797215620990916084037011280594383347381270835231501726362132759824459476299269506107480057020938413311252442143080411442859552057995544077109050038353221411786960577287231431589752002289735892989808873958029743670197641719882921892312095435866725123787849154936783515040653390174286449781670164896693606305839064351598613674201712475090449365596202640218692455467083755190861126444075241129358647780226787012918528024033779294182157531897852703184651565897476736668591901993619532291210327407180947615604443224819658986464136138769215379418391791376787672511056455857916380572400763129090709872859512726585421972438637011446715117228671773613158184336002758280774078322906895382358226196712470204599297913590289904500876416571904825575614063490746340149903112346944570272844558666991523675069164484838920142159817559128628220308528266722387706482133435107750198570789859000968159684519390909865336376153928570092177274685739174875680831115698744641189096312781492218411651356292701492743983762398337461397734981751065953561408466282280138263534554039367505950668563719768703260294033735453800018146080760145570028702753681049546663862050257083223454768156165281514840972577568192163090678397598259784716917684803272453434700158529840298977034758846147053836886496657701193263328770088615735405667680880572983744898124247995904004054681814341575840380749294221011860086332727015036352863854035744497351730387503519151195367367380407157146735379917276950954272628060036338076695728527426779205352407309067151011055772363041814375612043192129159103025922053720768501699210523830807058781910493379943071203564310183853861920346076964630885738249220287728291987636974055853867671540835711946172822476054402438119112400731209365391670769806877433041114423654871104075946728287896797086812765539485443304217967340612106212745539136836312590016925531650082066402816037260401407846891102943906902868738798787036033336057204672157551839380859772967986025336444418436211253999682771554080875840757452530456932670040015089827403972240340350256246951041494246803056779659759862666704533955036172978882663712937540211172090689693698025976956940198819236170332666133874355100730043333646028122184005244244165651668665122454350296789081912005223875453237755482843958909900654449914149665464814801020125602698138417985375059454685469498813396507019034600692707961319670644155568996362342078841229634400548361995079908961931793500650069674199114598083150502690268528970538570095767391023134212515633247030111514631409577859008972063176567662030324149778458244416430551889860974088077883567447432264286612814222388258740796756914084322172376385626596503790395487460768463418310463820996422815707412636561905825658675409983871662186859279424861282629442817250457499088186081670423235554093265171017709364108125873630922063178836505533850878187710805503633724800376976126339591465170030700132786918356605197451532694975958980282226853941355543189377303207121162684074993259485661321590773762288198942334686111122511828202180586803920211116345298447869157914690029538274563318469467853662849877154558027272057927155043919668834060170683931229901714486510328562400514612589623922018872608937315024345821197831600942099679575593184318110703960229780094930318224016273986740502233307641988390040593321435206956642774062854465862107859958766328762919534058038102922430570694334604991903421176503912203812350052372503627583419737255339624654966901471063396763691607281527489533335920876110220485111525892185537964293213213076294670311909186793384255531623705288065796650773892356273745387758343570433106344383897888629380412653975447101313251549632312625929919710644826964665800953305247651262328928796160819159748459482175881991575271475935019979357290693888420783957804065847728134203794092665054003011220341701013377604735621952339134338296964205754835543644298764775517492006112785116626036321280731666548009387972022165479158071715539045895040917507657366339585904519463976092508608658322163395004893837074552830368541579296804665932063775055377149139618781133627999240148001869018741802251102709101744961849114988595006101696062715919187895608925373511339191073180107135696359876644168558096724208746079893500117202504933369227510097521146214350955803211152617781353084179375596809819211745397839408161078687491784493735442312550403692941991502021913279354677227268535199557655999689234151467049352285261336388627262481414342359553172533729772305117533084350881730362237986506150908179550901684446907676252287064367470172033029471774249446664685279061988226197071197614452191937903771237410043710659967259297209790507108583916184304398497749334973600006480095291562714851988545704091330882783730430732431991554870653762884995750920533598581060444618695967410116237025185349756971511428110807034984405679839939122476669026085197984924846694012407181971084921195349868273684620967799594243992752677661286323455466996000808241995984908071500949428884453693132914327508660132221484728755650878217182234689847137676861802051095555134484704573557822428268711976379400267322974117313693005071742976081221238817229522567138137946257399572867610816311452912555978442642895541703269942831161748527132940834861082947386426106209635522616011476240834056631647864107223764465090224261755308217601865379156560194244537303592867302149537937950182799350811330772171316549259911808130933131237005076610550491141781236277045153411714384451319441358052013674227049704843689801979964896573363151220267757948858492060263865904016621913998077565667638251370998614144140352852544450833800058938863185319125744786374525080421374271408148898900723211775164741815696626922789141981719177458973387378258743246832157932988926345903318868687176863998158351277940971601976067852302882960408124560031336561478515993725277884450215125484832756233528499683615273573811914753903490760191055188854128672678306781334933197914535820029416456339726474163733292933607917989986124174421674437275470004881237838379449063572297978836005464263433687470335037616205707913111087980882355356081367301167933748939870370569389421636644862870190924150760487945355876175872651701448553973560846351633555154253394657140689828091835307929671836013763870742501632774614623671766196352572408409952605279706191751477906291405274621151227218061411517485762098866141496544117341114487014516619287855129215563603997808211517901206337364833544917600484502401573435500288532004291673300340998635168773074640460187923098290591178717820533186992468040882239522033093581709591542248811740577413865685364518629069623488525919151533800895175961168245586075835084298595373396355713192431654109430467353936963804031382197624826863928834561993654248522537260995344636487585872681123643547134628364896720484229432039161752355969296355180146710137091449316591588005609136619556886977666186614735466416980974145274248499371646991923594870862686319537890112617787959623194145969271144736035732232107734152076171349263910359147052055771556306661059191499002667928161376054389708839192825233818460554270742406632732986106305197904413548777844608200921815237056467775597439673146048313980520927388230717319644459403620824171972571072083077760830383838647367635094685971357261131955644216392944545232779690909028500385962139238836803021956636676122938626383624212045804690261065018180916695412292203169501680436261148571290848124594146422950647603743460543678763905321018568057853767168204307768465155185812185481045964184300487914458213093783579700127487453812620360021591864073560024477433936635770217692416823129607830293632022971891977415359118312229230388133465727529114597317944685371022353737529595444985781624511908062186900600305655064482560325585680185590181960494405747849871957580436775496747406709178535213614294173001915882968831337103996702032993630599999697417305052169737913197452960208515152454682255950356765864221576595545952788810712844019514991851898466897581301648999304127627580672967753858457959636661865027184677455003097870366862513082201701023007662347437371084785102339486547858433144725620902455259319480088371817427673909032029849379004386274536907710749744863591287275136929795584158754216810777283976890933748196568523300375048841108883957979120412194141738116936685419394659853432749764109894568632834240878638182509199348085638132738403618495977375345352849115342063069155888630894096190731244330137169158909978481266662199662895472507446950529473981883878153442344462258856283759495905635496715401941842083060796608018024669328614436957485932925266872168475868153311477573372060503708817471518143777816035852252545239171315995419457154063110145417402534155190947079287809958425645013004624490496592644726904658856684587057266720824696997558846907752094162184044722381650596946746450148432988783200297780463361884086670531512649505735964140425964255676358426713889145753807854834178451404736758480092959900618410384110108159807071915697961105274151774163836947187270516827604263161003296821876195221309921952643381842110173317805938209610608557715695986284294628476417297986210363009426979353285771630556921087686465292202543668353468483926588802807434152238880862789090797103438824922770833233267262649960485466721805904681680704778892680517149199400536686681722444682881941164983369609174803768752664832580518800747944449659662842499735507595718972556855442516824985261669416937882499415272382340714445670444393442071201991672230339343678334462477311271536953634182892647092507039633287354967868461061496333149319432886856789409196461643539127549405437293830327912902002631608294670802116244694729650297701020643206488723284652559746241723131492117723124514407572707160296621370734550649836965364970692739469216788172950646648285171998523735875387809958651216827971465938635015024150554698146491692073689931807953719851117463133440965150195430762254377537032219577495262530481791687000588745709938592466906143426978144064904838303000202389860278399941158473547426126751446833805655074886357432113786254145903807992333538941536119772391988135478493548887329548858691765238175941054772580927365350916619249072601887704452061031474657856720161523433587187119587758092259554322299108356457328557069306887320941230030555146559524538171909241781067350824759916984566988760081259099881761935074033911293213670630417506069805864985228433282581109052654335743792637607152482825052180223575797843568650765485387643796875671040986439116870319771020244521621456719130513607877143387941573918238165432414811339652825834580181377057591153129544601138936423620426497776187042794303296924907392521471681994201232399014361891611801917761258611729969701650867510865663912954770260508650949247107666854965698278702036221249028727990812407000080452421333707879806542343178005816347228800301915629155968684383401448092989791106297764004691536850393237623695915967117169782787296178214807255566552224799757502084643089681209875284090260056604443654475565606713879934204664797445552814608531890503751471401124945627209822289449859435204824919281447250336500553325501892523845269978803464999511248945807278730235738861367311831836487546807350614377908275744040399779811413497327940667427149195797500788743428140043618215764774880883068679763893009958172118795145882687584417615879440302950194198837551433883331993058670383083329877817979631375698052352858804396738661766905018715751436963557634378799035873657139406281396603016523585688396427643970833175993035798170204691592040127774346974943027235379310570014978221231853939032370304858063544298607700508412813111481851476083511628226282851575501569642408451539640090443892012738613731680316725729771395988168150352017968244301200222306912782099458346388518979449962762254209855945682030813258629268821147052134256927703218430633379810129683950286251958008543723079870574040553901542162248966221985591169475859667603885863788949448435891022777790254768034055322718924883975648828267949405724877110341997884811905835715579874703908264345457089607984218377050168169611515156802608970270368426812743184488351540108227121084280333226558787322727568774938725796159345252942540322316042112647848331888193791004120202454670045070650458265149466620559092477611065437592310710080717802954344323152306658393059088988346616514018346122434314111104793943049248150922271484610802641992582399909380032061096139255081439036565170901080805708527294330020091676664664002750300643224472934731955567507204495928726885094405745959786343954891484511311284178579989822079711199412303836967656388895048232107474153819767033179101268538433688682654514405977309625641361244606360231134800377739029507363390860353274904338930861942926153695702984765881120815068513862233169604880669745844485924720922042339258346271083975402055885665333659473900337538803743586674192577667562908623398875206297255577009439536968031761029107698724491558810322598763950903083140311075426624251049774938660682749498830799720693149973253629546587985892940996491598585961900710103391296774670470245624138156475694445329071655470172281116758220919259289418348974677738524189326375559998509572644309941806144153583445016075639658348188297462036030355213598331890863385057157340852975915624741867049588665265317551867180402182528607917340309480424617407022295640725168281562197029823839140611589218795973623552179216183862431970581568413134260242756382410867810733104188239753459837365394971516476420199048226821892118807846108770706212187030294942885546094382831893463247752095366331242161531932125539871110704805623601884237517798370440929066826909055520554178515436388012661568986464973230357647553498944603135523137200992054991426700425533397440387620195005080734532214386768755770063614449587861517743858999310712565091813702018047517344010745192579158526320366660037352789706860491914580190020422315911080095492068785416189815319119197003584402925502115999302614992101893979012488307619280635297336394432982158453651474615054502041787573370212571092868044080451584557103921175702717391153595733611230375407039977386287856931413866903138230193593362357353587795503676804790272705497929456750685591784073916321110898717526776226619505911670351139987301959557900701837226649643731785082030321238910181315463974095905078425063743171486170119070835377642871901320314076661855001714073720642742877265580220199325694357613109008354614696815751632377275657154909661797407233433532473916772019030491264250889016608921582909197556291756962272273931631217226845746539835005593450769282414031777286416825889766520536844219970422768345349987530684111270596386450286073140065709476464392906137043319505829041858146311466031492466746290119626293808814998899618590303674802694947488997483858737617617953739543570224523019203515963301925112630101110995030737488072262616812160017414715114166779302938876072549017959841843638104199588824277316058798192452197850900318844067110554925478288086731985937199258455412090525856930180691108514033015345206978885702962818170986027172330982090103593002949065507301105987763504323632261628472973338996757956126140361532496848900599307200475008914216809201704858824189524076903360014004128568057347519249845483475683103491916300343327892855520841318808239344143206950185273529808105827956886099513703513512583323727045003622487091273425947779777648119837015854658844546524257138237043807590001265757762994938539294808589268669148045847634285823479122815857509149647217604076262927511171172027563057116228548250684151392841587362783335275147384852344101119356323345175365483602172361631214283062457483003023705629472689715567725043043668775949168496197445505624759053538900295511725362101208003872424960921753555799249894305717959344934864959863543911181210000683299560970412160181375710588816688740937992259524424061709537398829324221505755410802540087841628105991543926591110460072609409022185599132526447867241861946915385980940224715741654091245096354551980740278891183022898145888666460474430493444686391755455123136501917435014100426060294849749186880142994269892671249586584640190896960478226988785313590555496938907003974853326557186630500784364931369833438076878967115703394270341620841358990947244626788669441650000056028302051635661014337522716989293073131443669590428597557631738786930718690399486071499065891578297752521679635891939529143268073135412047658562403991674209087639096115574214378198853652727477533129093956488174063757338894528080857346554182836601689180676166281111134849898595215356671231129009604787775068474821503963814544585731373100772404206682915276817296016782155454315627525987818191138051469615699125225390813107102244938946939274233216510008723980518345585784282199652025934902524056037882354720545777989153606643432656667904337905024000494111545242382923124035632037440304184604546873994819237192435750672199980918322772096049613754700840977014724448441406891493727994275074299032982282726376941181993535249202957888823892949548381175380678068077404958977935164701070981412043674532642753118967582943369062746152063665652437702620837579310897935432345280151376864278588372461931449920420647299912710935271895146720966162909724548936678411898836740595733726724910898791070073362918849821862748399154713332222863366869603626001708864977308669721835635214501438903536491656318967704044166540518395045368220681215779346425138840819099046727984797752836664206290448939396904096905533203235434700962416367740997898395304702564901886527984095077475533394824535983097060156494340195270794635205806594004260857009710463775990435540396808539457597254409133831383843371171216255684910850124770066095883462580624858968625473022715740375082122621439598601475397937849598275212671725515860841344584363528717834431205570540251400777703109244716920906728078065879059477136029769482413440795237304422828720611773056482707169708115062955350626406992858761145256192330078082199127340355973569734968407257733126491607790008039872772042477427349071568776627955739014899267002782511690029191092790029965327789163616661816533726211159596101029701232189288108995461621943086320476248732494425019092109437215302022440484870597062488390485887682827750963088067904509619099071796405457688673678498518245708964210135483807003363289653243770331130451837584075833981769498814212300009924353782727672288294374462304848137503702885602996433297536907093146373160499986936553806851181417598495381632386407270747680912098963261484999599511015055222913852206588331325715452826622682408671102759089374143692340401360595777478526271971379293276121546813097470425076552190133747665182166711766104185752980870296683983614398040290712367972609125138684960734406606306332905198529749800925179092146394771705925897769290852600963468201550329200571811860488303048647196851981707965668518273459831908999913105676810568855507924277643656091779560523231727279949310826478704049183042827896162203221376616726815430427187202293801656423861646026883513269421834994557404998873168644715243779046665740575127450654712535985927361560199666184231137570625243616503795730375359189372721018832910540075827409749206851881001941713048085261135769728230569836136410966367808148399839213764903023955646702160285214976523535808106672341257047965641976787877268469537249966054377642340470203214954734322315747552837944460545549553552425685440278564379531667170560825929130931246927501447292732812920681334012158928532812841439337932825888431582878362420986031915369691822391049324452055572700676688424215681500888043681535145348890505792824111670727642520369104379304706607610265883705380664280343904583127276948854481142930560400407470691281770740380095040274236400349806974694565426205208600046889211238610521009236580641690819625042599990615182083223647565196330541826247738369183588678828520771069093918841183101914622379907538902913532789595092826104387476154153625671731411199068583813917883940551801782744295124118627620043230431770216769102389966761290429255812803480985193298895892852449490802440794498079616535369549753882413977172001473749987744005971533154547145462153449246112287672568959075285292825114459733224671227896400390522113814664185187965588163214343222327201613413432608010371993828578116804006670672773362043849919842714184480615289747907641456334118478767580129633566679263336922464620982241732608587847597818559180466894275702981259397889228871899177226523869736793787938788867186732622411111957350332389378149837081340650794288915847171240845235973635184101161265177632909845838035198678704931443755754726062884562719234475316843982602481488081707468638732795676094549377773114688574340721144630313217641030210696886606556388681070801458626849820038644600129663732847038675166839154530666028521344035628089977906952251553484609694918687160233291628351726006879558104450978249288519660067670037792749736193325036999645345265609575096778433155990854038724410539375271276129487966053796839943319823866229244335155000826676022551763588549792132999938934592604596225871816304620607943927696744196002901645843429417607531975731067301304557212990843904466163784001867448038641531650557381466914567338408180589402263122196119179005259490098620499514130657118925201433323887788339673032257653430615533699378412350786180734554750206434591746481377774216920770431921418370584878605116852843710108547556183936289271807745092487111207674191006699453263666870104122556066506648099815930049702481492741409919558427307443088844960001733490340440612378392002776543004332025080101873795615780139867191990683519341963086209355332033960055023149061161153138668587225699741380466815034485182102963866508637473652138979639617299634663500108768362587987331344885675435955808218230698946174415933356155817821564430913521234430846581270238850090702616065412141820715469483934845092285660760991750541682558194198416994676928720876920384616662463017417703103659751185274415453088966660556837831063793664907263976345306667021485349785554518632102605496100594026159629486816390065071591825369159036225677565522233846950649697314668292298645761746805024552489637028786291605572682026993787774026289652279399626401100748051036939544237932201431202919718582447314573229846008389661883409359285990045865869676990988089556548564230926931370870412266743975998625184254364267913898543311700235306942853617115613169036382940130070845310174198803417354915263825105018941960791525370771269038398110666232520217907709410296981535446763135665501561160788418323288590444320353242556580565413375757437207560807469294734061008329386962457677143936445470721880340168315647904470785542303546697593216254453947417196245511012134748026894860802329508666932535573444482078958842090950035019044090464954885582876559676814425510302884354404322933435569943893773281158566098250505087041587548562874185347010854223592485470497029979164946381131911177468165031717036241269167987856364067338647971969016550350898245005022293062821378856667400228196507289727120665398045061269135004616058478331939761775593314759030277138943499280385619615727133955058608529043440693954353533576463307543556376227321092302425472974081286503756058449976162822720224534320176907630766344402099820854629592401527362535319638279816040162989823265781490247765806667696991845195132273329172980800859443731539249281805078252115134248024498619428433132597054236992588934012927062879998866053408401342488922250422168725909422572348215388476935706246088045327062683458994401167171355549951611386741015093293588545838362655620508995408880623390861006974402992995498733858697313278486277014898886030613698622864978901331036072752810771574151864726715940896159889277548242247959051067396151738159358595988944165740145972470734570819912919862945181795175251211436031861213621857010098085716285378665913456264525145594935080171962472526992466266362684340935741444676193322789091551694250675960265047256072469563553066984876956510654656255931213068733672704559486688655085636179216171915116426180311976453411772826736129448672752909339710841565932837045360012383204461900114660664130457636178618774316312574819085879436222549596909222447491255469640776260256116280575727996194910817875700674108477019392720321027325189904444366300368254179258871248634306337688637355017976782582186434460212590494255281070448821678687408508302288499608759430314413142713185085606216197526872763941068415104986068419509420473364295351255369566063281518614484878538577199894778739459813878809695999768447954139937992118910122978183638343283553498107517731567551262802975613912944599021647738241780292362934270832740172969710442568412879945693568093690087434509711363039608090225388401386762586721030236805245986988555128609947041810728056911745480763576935665931557166159937138157134334556145650988304092793197227672971146055857209153732225436169579623599899119791601400099791330279146148354526181655227700305551078583749782751823330843921895205806081960257425301688290146867902926947534946597190090315898503006960112801157056887345880738862189821128426965237650488725272831983922404656102993816655520184657872793989352567742634163158141305683738862095812748445277755096145109952300513991268367974395789437258995346743958267280064810425527615684916545245190275282699121503628668667180657212625624083242661255327057096552202082685321412824476940045529998363268852023295852738837430308889958682275772976563294701245391447404579348475146475954873810592735749506174006954537408590253149895136881273122564311895698801785995717170769970293999844797960637002405094014376914333107902306154110991866221279801551896655553221836216546885602557103804521996976533634698320506563904311824271624885618660358245930214492872794410807836625966997955245781822117927998067846791845449892880523203600383827042109336602961478195043917058997793748562052789271860062138148083244081929361218766807969171185069091215522540526642431113154841936442349328255171795778650378919507628184255868791275924191297846043851882674434159853222454312631861757763445937664196397976623459861640774972325602685082915759377800903519463062122363421724756360207092050341237777239866960573377223570137428273026550076171691628350370803262582410914833503313654882796187092468412090132752476586006646539388286417764639320946252836616641236560050904491947482744129909677372453615623047297522573681094662784753126749360969707516213934132245984342973934399866514053557805854932824257039455410537577190272423417572188201638732819824523792581334700516533250122002452313493461085511276372018166513089829648100520472553598340417731290294426399688067248476387847148757715482951385624701410622351453785027610094417271317093565949147124650078413781101834706475465756123405710379426881433063449413626004699558103349396478226468688272668208194663600438918683927858820689978707882290335060751335240371595333367922033823838319809950588040243740442124333990439181582690131146553862560996614578898481920503848370837459919865426190553003173851137002621867480573901879864801787429401358273613137914743690957347986741670584365182278989817916738187491510958059753884012395647360825331516751083021177342278590968628189781103685940339689736163146132427493843141487154580438719332487878894248956911955989242594046023628408533525163375264118019188384700590406853681746078414064707895157960268186958186795469071607668434483505492856719812039259588841974475318496473983719990262778598740928248988270704395713289440904195156352129457100850894833359543088134883226547390047874116615473669527000229545532060014730871769366651854544300240425499468914872115006351407093497800144373232222734461714169600788845572754318366070519174130300995265141615478728386655054426040037190551730962865098086650940251515292071471303600152089095642441325371372377253222069558807164055324023442573792777376873251840264776843312698336556534118345334538080809624495716698173460498338607874470258720888588707449272963845649173476323369006072415689530495942563300485711394347965148081062527078472815499752070960673715310898413686562507064241363485781283391225474785791247645205255341564277909499928662654046016046825299357731029024064084085137466561324194653051880621469189522695725899612699335571292838722561482363686530993582225385781091703575131548005589692286074755773344426849326134707530739487397195268877077585783896575979764437379399051036858434278381751893674171598387457380462270417159000778930122422755927341550876748600629329478565792755630352783092248334896204466833586202092988104513024730427120818860410207338759986600881223119770240461148566051941711253283691799716063216988782639278002824439652729974090190054087194972500394175445819417761918119842818917977496025266732318160837323586810968497161365085754388295512865309631572797928588466749447834474357222922807469800537911181701539960044363359273590992881373477882923681931355838386275784561856239133944758199009197776682760616359871220861416752311434776820894734993117926298785436516222431654386417889230306550921790019939563248138505717047877148674606333059936665350976637216640789379592382960901332554587666463626631438864884832634182766836543939170900441134164379674613183815817869365627960749203413462846292634476083214624620347735049242488309016104175217120292739886018031546593107873283146611828478130358373619867585962655773740027080035156100300655926681808445746622114000592719834128871793567517887552174034682143360433311448155558944768656213878729098671611823157847498421322980601797053536105201803561400645696111912226665749964155723451568682094845870945030376571620401239566954670536657659815480612751219759749555240073599968981168419851361889332475205224377466328046386149797050949096560081896519940831128521034390604535261972084558249881995649816192307983542758423535866766830743173821645264321193709624971372243087418692287997972856465318965236458914168421261981300005075489270590395748369162040134932235378278095334575629766406777850041138165980034238075867078385815273799404469836508937636967079968221462762668556541830793248999581255056106382476846896659507798170251769130670234615637782127038053060371958151717068192983657083252681457018164846532893777606852635015178854586377728982208126987631203989076716495444820940300073955248460440356855898475628660224270266857288548213202049586566187759706069524179846448392816919570688690384981917731342194574532089860726741980135604249351001472474131774223366648516526720385725572946006942267374626626939572529418291271792671975940775165296882354462042895499003782683365616890660152637087632661027399294566420584492295512486512924709199828422568853037924212743139688763081484494853472038255864721642401900122465152645340768549831643427900125349371964736379697824427271439883777691544359839214185025771397627316369021254012075067556728826047261101007061526039094131093741289313173662617252407660893284751703048944672535049573433641371860596602044947512092312096158748436480658882107593042147736274615737981802507199986205061572830295838394827021688692129553441035596338561220860187985367947127016010266974594836512398836998154399998161203494913379189650305321381015815554816863101069679577167012953759497662773282320822345626343862204646029060981247596686114560041683239598041872117571087136798883536687612756986706010355245589989641563629219735396864124375999358923709529733470322952163540024517992900781030014782819894171809977558745188494986724273175308916331432431914800357821376413835897074555542176668397934108910486254809217694360207606814367415994349633991908056754847202881807868947383549582998465066292017011030611806450685557624876388884842614878352166709780934222183229754307266250163247123987156960049702935741069586601346623326365795494598141129009194836874643679005573271531445900307899306652260207503632875474710766518631915723051773281397678347412408813479346392571283281123767433932345728236843776477118223028006386024446953123459159068663517494376671111433885827011049574951176963015153068983344416388706374968183141344962096581043333209186226378188715576422111876741096758074676549627888801978090974848786216568787400230335533030147811619166726377363708861804051766392222489042703827480475212360699600338316176757128636298752153142996650227348089504335782245731337684849099924102577913776638583742603600324871878619173554320413560570163683127611487378931875536039299002656067198136883189786449940228272226085572109436024939192558439599285063457793308537843739590272921009816783139449750419077871179403270468233590957413351509484317323365236513802341158551582434570531709873336229316269085078937223822488179914659140900525966632909463339294114220504958123506913310149551194460793595306344523641465397990892197297225578743852882822235783348091074958065306663736658883430170233143287962345123699305675639625540150721715402929024670922139443100103451295812001020903778487321219494867918135228375072593495722875131134567493578206606729176196280431522446439721092515991134781127717616357712073164009072856171286563961271701355818259578215280850168742244159312274577717104932667961517697312543813918341876567904233948744919223963293465867793751501482266880698777787488025391617275908670441699118881013407969041035024606403567276871113952850070675556009943850426851048273642557015112055063918125834552804029247987377050807126741395081327756893358299063002567070454296041906182358802986263948716764052214849893278959610073538470581665449211758139670754996087446456985178697873564990210223775264203281741293569182646963746227855677793633189000287761072826442532810672822543128782055830274317413840750782806161404597878946058447020875643401777875341901782300077580027354242760260783933775411478511883129392201999873740973839104188159245894441153869018502511102099183919524717520788681324815600593815826627043952955849177662858516134082617729271494852442217750083083079193564158249003591691718916114052208129818053361812744286214150073517492198286831231139575312137120514795695300514247331386942605867328615552302564534018855680404875022469313035585131955789077861482454477604516042241481764244701244352597039181602569723768831305736184491812081888976382818277286594908237693423040353187848339519690762103810554006276611920951542985967216234825085223726761351601578927978278969643075254690190941417729614960173957342973547345759036126937808288214305632047751300946393847515345953377660943146597307091302961367337658219976771539522762758638433810328907720141479389248471091136247585342228156433122055513783566873797142679246348441769279082577721830754788623496752540617641381221932598282533974701525567018503485617283692455550202923299371422669242869523719275487648487986351776910876365860152423280407438859732548264805024755143480749497274980095352718209822064236132327797643959620292492248592310207732872874121456376342534184337012104326857905512312991054714357815360329819592951363628198711780785164911279927714338130924306816635379126541591181666985718778356221018670434547140763754807672931919246849764412846316081681649081015316408350845776173063505334149631280456295531609333629127302780938335977095952997678292996660464104322138541329357245679718629736066141983721132548111544416632433366363282792041159436083586791275935685220893464550064925588626862682343268403162990461402938262138494241643215008268323297820877898411298469963366031066042760181481977486013769427279787331652535451897072644251414718005821438872956208871629677095663528258764395960081648340596711917856750402055529811847728648836492498717360476855763649722496451895703932340379291368049065322049048734789755525687603709902911340604591164944961366410826035362625036418448751784368377856931945350959496720090668054350864561449950326113381186439952903805091684290973838464108664651349628130039416544859461842144517779347950478874939078817126564718493552761002921712342372000312285339233528980594341731703881654953967060722841288987898058381654891992486843812434169659733422766979116919095503121954997977526418461943728797098464627089308361294791832834917969335108314312447447725919966434284977770027463034197136659276593796530234122000599351900040930176196796834929819644045546392453477887597462884211892020515951022625475777705517282953029679075650722019746979282866357577402208220853013529844091133917044515236501315898395330234892186667298456598308437647542303431331641289753175499659986173198853816421472664159065135731050287888375608471953299454796004559006757862592276241361526043514028083583438335656368505292019062648588044307869370566663307523298746020350235091604382713986333833998734035891096485292856769830610919292229979648735654346788305730444519831618885015362369528487828136597186726003202504096982643161170691985123677399100527958063636723686201080635242675968946672465591307980960973866438599496479062296492025144034035266992294931876577987444717543364681623266074039572693216070541443109883984955981458012384426591946786913473203345595987650042587931201612174223207606780900161446509131844260320574042380504811133852997254721092779751268511054674408150210050701984896761965298044948594227546084252010637098122775321294852310924803922310581866805013109315449390504610168557735245538420308175922426867282726423000761197475783806245980266622403907762227605667677802340623219674119028953344216536457135221447054556143078502831011111187464984104680979145499355622622529425802982232922255646542409030858530553300190863059773292247923631182071279505708816485718947829554870687538932594422276308303629908866745196520346655642135132676521352237773438411446369009900838522816534174001669478456321422793341310560411183142521664648208213360438244359482554242084364025424864099575100664697007663359267759278542117910321329974381903813793785865981670720683229894445400410496912375081918351427378998640546831483240511085871780425474852882095100072925767763795871159143774036830973145131559196939526840392036559423726514505639193112963154168217718910462360100663723766693592587298632658573371607254887596929535022424213787043620142768725437587886077253344082137063000088400563804629980132714849693291992064028622636538052660092272092534531006628434304789866923713281298333944049960762043855958063356902004959056578828385404073698916129008680807891011313037250862867835187028202515061376130091734936177453333499660462924335077416574875048807060622297257019465438152837253061319750713529113373571033968893775768074214170825292915528629534076712414074507451272338304389332803913490318906910642169344453656351531136107843368750737349269682170978428450045987059687233215796586933507875076538245646443707067062260478138031431982643654546458909355105372336698401924274715903987868306006735786217298564548886179745890217793474292808248202425346545223459009825227072387155498389232448376026901752582594354972266450978752400618906046990171311292060903365299322348462365500562103657610742410725769056399854506438426217242349999464481432032165537632453257342760166510314052566988720438986844358999342425255357532899360128065738591350145242045256425724136708034964879271378144068971836199410722485457868541351833123231844199937888477409957780120595442623582580155879101799806484525597088542923145242435913670282128519063249467642852419352571114481998638443763821547889663690904095364596681855849994665822536661313280233092525863188039729489330380178364670006856569033089606241595793513369604763708575577754152808166919546249154646549711864216555186287416974970490010246091024986157114369612772957797634410263762644090368931605325616873467131841635239851649207593449831011591193769758600702232711744428421368466787449116743259526746771767243062880810496704376204277751550252677370660477559830673919420454850166343052822218510833460039341519852761480530256965390347750069669247528488813215822758010087583825098011794020179224865749720086958895959778775120110881213228534955950316288720503716717164559836114697156259278150164167669597828989102251559027866462249076477537946528133035202668999025328006540500469044700693873258733567072565619845834512478239076189766576503372780014122524689298931390185873781760794091455262714432327130849774566202891249877316853283383465143023051144174184811017153870046647923813761378242836396186680871462180226956823056158082530983334738806156865505786416184033026366699119485690386140412132272829004761359341169594173891687524720381517380508356606859275383554450439107500891683323650520953782882037119221856495458215151994564256754741548056328784529771861975094425704903640242006040453452096624714947510071757887888470499046943832871305080754442739785366271048010112247931503107297817975156093336882579083676033886285936265385093948870585442807308349005102306491935485933159945902129364213594412851132274791869870432971749793266758568627711031829821428259928474147291146615051356244664380796359838744751910970282862204692785111341466745406862296640629352730044049246479019657881347206165738807180551255179935859700574164732555348304333820530052456748319211513929723212776853616670401735562022579321564123637174644179403943822427067108236673989204435312888995591875417034647211695006169038201911743847303152411207311398895442638409826000082903759530282273631244589349481965301505754324678295220507726525854757723992345319839857728488859366333677408799456683529002542411578065094023623701516544055318139592778652215823916991527564303992311934440856043549847169876110047715820367253511316503937598747644088056559079866372765459936104181042601689424940266894254784885226666602399068796276836508233296645076326432823963818362342185018265857185103732283145409343436818125355547258474462305621224522929987337948201795069391414529810714104175507347898971110327124271983277409942169950705980655729955832817431404881378975115137139156743419951351795408254610333299187724128769976114351236194783505550551128885252546101621875622218943739389476393532065967142726427746633218208891999241957315966891654468046224075685080131573770907596044690351383728774623553367521630421518291892002237074253036297901319655888625503859420624337448186934989733714312840796321432962976795671599298806800273490074305952917516686992542549858904157134137713970961842929218112146857763323428016233215108139986519912573533068563175873811706989882461196000527260323688544455348509711555107852884859344867718185979039685288219114215462846900600406337081762808198268787956002412845056769609227321244106553408092377561038590560824676358261314493923652353777739142796059533197483941955002981345954073882619494159357080189876294362029350103558962570159430812849055132309156371000384726380027390652270139437731820079803453474993595366165802690092986839504734758586068996148139804400201335568597108118306767801163152932110803943409213352283028813074597058003963134757723645910858878601421238360374043496132735646478215981856769867210734188912032573951998067190333644061085981490397460086140745213019393143299547688766268255917150024554276325969970550126772729944084772818038209161787666207456231550277381591503454329476042161368989131711577095708627179585788937831201159753327201864932692482259411002397142805491401866941576942365528425486619836190060724016654075770584417403133393548551579598672408737534708516583505496124507799923450654524403657853993527753851166243489633337670192897460371798545634153347344876606986896872087527607005226844300197299392704019061064562360226322326889037783989754652831307535410356696954500389500243310254832523665827625966051304838495338745678987596531953218648645932515663119967148335641550430678700543522877983991417366701429568929834956196865902080805972035178207692696978475606346627945695817108250824813857361207371252485127045674616744013314581547929413592652834117911067384164888796679339917822979014064344985493906832581677787318606027674820696984674826438469656743889895843845953697469120991447306081677853405682478028742916279308175687522105489722330184522069739079139402450116442538384332835345877897384792579309315628909308129817929202944184546625794422752770485128803546389065580325428176448184921476912123545979445093684906362041703058764011982427655571707134642696743832730369421965789621085444499268586225821150001022628987034040070479567199125459188497367766396422353375369545277197221435446835523225861496278153642969859555912902962519035173220644877998092324379586792205682665949451556126655566678473856207124364361469455420311728639505706222436816303850224079009059090469515321394146899434803896086178305849467548885957255501178681648381263650870148573636387577861060112437265163708619294172378115677761086709234188674762407180985206428598068194343993882378023688780305779672053652467803879400554112774480251898036871556808200235832802930977651244911639892398780005778838222963387097590849338307279267819073288976542074346812986703905046051875153407982784917591095038356441972565305883698403921923561755942652850420735085809936402294629696569398958671519605905114035641304460916099217395107475223593881104386568826905473889689995928611431813526418142098061829584357617463257612761127605871808416574696492885898613963561482737241831342538475786887202747858752311442194661812095177501194941373459469224641045043380770894514736945309693850033654168979847427053735457106472787122749106344074727726294306218312880225494010985658035201956778420838720119250807279557836868995858802891078164853349749617964836518886866870937637618826889952541790529094769508483890439040702996157579262321533199192209666283978886909532676965040944138992824475353222955356744108261564316108107610032009119080509093894007253415177168102091240588528986650847505648741230218607092101770824359703506725103936888999637629835866423450242629249581868867748290315736674809248879833561636548498218182476960717099475475171830364830495772298784132850408725209719837651585492512686497749420841576797965364909925928504807927470698266487571757008019229863512690169682508096749585879169360279607080129267773033961707268102907219708800856745212413485086906945603002298682924797674448919900628326593634372902098810382659179249589033364312280529790124795454502342135478443358607332200405729338287328204341304964826557640075992809007444086593703032152911409798477843347460373923192107765766930086343958713504282121549813742342665235025896158902600269081112333245075108094677597760357989121985999834906442209624177366368429426457190424447335848018340859969267206425717341586488743036662756539736799262995788672117713019162588907489770291670228668472445791705621490682014362362787202455463277673378314727141639284956955235340106884576302488039983014946269336286867179629636022559446703390972610733558146903985124063512426875932171981448699295155127994066780609396457467368172381106632207625664535173027645833535758370813321673924829961891025008942919929497822473821668434945721963907172598315440852188850963903299327750035460089960957982399470947976067077262357465175899973647697421698560079157583568263366443668231166811316526075547247639227832407084116078932801276746501200067793871844700540264805074630920254366037276874064197815431218685618233482571554481872869675621096293328567352443872559108783184615418410438598524369557118161600842436791206693002335471337611693405623954975977906428133148017646454546455737627955524738833622619865451377705110262935271991182374527652160590795223361293427527218587938774254744321441680615973346340508895146572712395480081432467493087794251425575371589041713373037011113925642861284569068786463068857040308747101638634665821862719882083054195274456053094103938810507862497254180498587592265629707644016263317837549235071109806647296879589907098984727874565644237388360060022182802579183653561549373937736955817480856725805406630881678789820852577568716148020272252595886532764218476071660944230273664015904935870001140356636406936967605577137625479580086338157512140403503484994509714756266451955388595733890381024152734157558315127479186986494922607749434227893920807277233436564696774236652594287098823422485404919834170975131281039593421607359763936283416806698762729736875800287340706349358675509429796108320272923371749586334639041251625338050224858971580627948940674242943676213411943055451072583706602924373128602517500930938727347796830705055583365631037256416832162189157416159507362150942108125141915293814244660967252756970772223896518222402981360566460046889353996332702882264830069924815127357852221543326443704498266674182568090255888876343517583111810342151046017252430326799366995106257881496068325965559691218380472121941598426469285107941012091490257568558601728927932706204963526347889196178317585771940253192465376417208681025875512271046199830067682927841248770968086695711734545858142585464809234980132729870426231244957447246833011768372626081993407952861040939780370622764069739216216265581517847429618407808659631055918122973286669453316026708232585483080207813330596736035047746387534069232192760865206310471103039308692361653660570468123251418910001800516415607946826935591129866734955535507544851031025641521818495566861014232789868406169873148805309936752204596559346940642203115197667608653410424770334425174815256231249727574433486544029173629343049712767633157108905061750703370399249747355112286518036254027220953935706888579495892703330658918598621487759456482215861033314163795978807715545697604489937120292080781478267221200950046488482061647737306539819113640950881439308401270758044612963591960698844425923072735801307908501602227612188087574139610014916941956106992274557348586302343167586802862241426945308835768010879662710070189851017435650285103474189977989629706128165944915434632823425767981636150882186377069702264463657112543046413388251256784200549594773662894159317394263104736855765931813946422505482283010697073643575894689993846111299750876092423398792808769877297519226827322402912872933389298366635094627828341170151762741520483571670960904547365576393990097031034317311627436471991059186842511653979119731791828221574697033027092786783584307373158983893525452754193931961603953318902504471810737899740522057997081507395354290936924269894106267326622685457741719953311173265726224462371555195520449088426034593501581458918982521273475187822779063954377718194028968964506104554396242333254563763429369106325430574421170431484256762450397475290411885663158763361217057421120699933769698389971263915199148938253581303378987017823093131724374950276995607542349880430309749830877238324424681034726148307976082304744580925951210203604410698574021483653225899273648291010870206215734772864487776318559762539907204313840572851909307568441633893364358591574865110774229970176838020654541723356757196615651622249793364230936494952679530575470064263209641202542754259535257015771975585870413758703329264520193782173130870697912960012581960590063097419887103894564519952049720446073913987752565818420485128438595248484668504602506193045132259751103289983056838571523320516840402010274940645205111784809760499491767475631976927443711016311976431527355887604318319299592584826473079650774001556304072004259428957670865532649971443075641469994080810848366797449530456391884767970706024716036858092545067301777436866855830962996662157618870441199518473782905697187735087757447872088058437778666154497978407940666139039345354175955377730865783499744199474067771461768188560494462084180858772475448130132860734130926160793788853550502630450922101622447814602170301297736775715548283181886504982779574667775628237047485470198221672169326560163884888805337061742335632782589088186967131204514903292172983143392005407628666778673296578622099384290933601722410635552967682847258836646765163706760094846867827315189159592364735250950157191855020747482057039154710962446251787613193819303533587699118512592076034140412374518682974433422778009690431299333852496597118073043484240785339230145518150449868015686788123060953297862341978859887215830179665051651623592858365208142714211515674633405315901873767397532553230171147886400757200732768492968607722723207327173130189440228038727732450050457953517157337370725578634419143717862467040420784440135013708050910381209294556807622558622018667079855516168697583296695866985567818575464109338105847351418251550635789043978720578272483055656098727792481594037660962529742206060348506352206690795407516366508306145586242515674896075962202979830952133248402577193576060113663019756145895691510034491351631004360567455036210037061562483982385310227834722448366282634437675367924493729606301011781939834496311814500239920665157522618035920928407784400628334752560736308762000056325206745447248963628172174699360440040775533994015550863460631666873782757623263235042246627080037512527334095065270827685417513871489516768584854693136362859387753087174874523928177705538964777265147169198874323115623632263907054329014153828073409194876391123257402594487911765649609777101153226055544304632012071544999638738011881355012418514908462991317733452502711964942041316002842084613908797992974257715207706879255946687447400843221745347684885826267878377944119735290995482730749591654514777738314218265769131052328242110527280380321152158185507774171477832244545886927765217323814386665025829015733494438071600917587424052241812748035386004256610634919972344338506817235751305886174325206252783037839457476044535156950559067531318435610910408137978418192348501505372635912750940536694892596637975666199579955059637793194671242573529198431455483807142314185531821761614538145989425541507144240845876008717541297632300280886236522053379242575455389916792836867371300044414517903096818502256829291369910817161061437998356046986098911787404839539720474285788167031023477628082118289717867543481351634888833571445477714403166885245758238933027445015706665183970286025392956562353230532075746974356329756700731279009878537608120490381250468060314356619219236710503581556895413926217738925844536137193029076121484063435115480173305687298749451512525625897460960255305626456954481927280246047444057208814319258546322115616236351808362317657112320212910972012874565357837338512169360983188212015466069628452025250317386415984565547910250371649501801646139606076470154054339635936307401892373100259406499113948980516256580610224980474880604919374789415391414152748784580019797039833777041594689026807706366594121384202046815378609354651105707255203467599444841103094558578984116141174199151835463321413022011347414034980386234673322538330457026201217373355593723089767032751325475540023994211142409081370349374616721934270490035722892348450496683100220236045793773154538269164480543270573137769511776149541015291288449552881516624720440982179640175120555676861138267553167056557010779993283998597690269190772248935697799242408359549794899539979245877773999052471991849817261492224557326890855668534498810312571216313246135561892359773731700383075266065678488763020184258658082403537234919192880607120793526609493010978004995804480946472374239268702262364163766903524441419700700626782811971955989158983909666258383329658853394690712334482933566082103306093588357195272592756470013422792145033014267276863949124835499945929736616775055230232001497693271393575355900976524061646043034291381357797002402472803304149978060981074604482237197845915970173566300185369041735126206669056923221924752688926809372564216273706406287590808845157298597011006487956559536914275608494118151572564911390917773002557747193416810503190082383018907764361851196647358803775702233661366823242314089815127103144322282981298860921503023308486583760471703601995269599765682921466784031132652144818115110125324189703600109376170126260375267055622671831860775891216495871359771564254461506594558111300859141741325555907099152982259914110332027923945144101119933330355818925052065998423281017083854711702276729396032862605570976536485369329517100756695792889482201614048076937150957660866288441433016783924019457375347682998248488048508412664558237331154643075550007451857642676107856817954161873306753781906189912679039055787935735501069154484826260230274169218318943123508466432074753796559586012303748377056555712012583528982574537468233957457854276533441826413875209850595162025376214054894859689527246805983757165576305582994217665756203631717118279090694075650091156482102551501488100388457341586856743879788902783948520642132661645363656999842874576227032800949852772580858657548020964853390230637031005118329314349024546400502034871415199055232636304608033351799139297167960148062062912948362245699386797648746346892219243455104244308566110131470979743039816862701278077842753409408497136342961758728142995600940417097801110226975410641399002378294485448535146945187231503538634059391608722939112194269659341759790009727970437056149032802577822407840668581205105210837186914772526587245366317656181107917827425075404333679884567399189828945526171126590130335325167666513935074718990162902850246648105954472402467999476336314738113417815561828142410902344283438295418518097854152781669786786775856309365277268901862825548297029006749943151674401260350835509745286728689866184762667097449311407192234395323988480700308637456794161142326672777381365016039174774022607788315737725153178599426819468200393465198257626444546504391875554332491542610120197919779306574418150991634602173510178139969937682866852617600096298083849410133721024377284491353908591314281403702804663918667856489604263022523792868562392200302810469867834860232669476100998253532415275946052043657333523400993451813923811518234167972318676322684117650575230279074349949570127835925206027704046473500175549163400743020147893150764144263296759228501315662374732361128807419429880585750952665315053317380000238192646088583460337257414235914529063610656227182561624783131009645266605307166095792765209006692412988222566427626801507835034963599437323738593563828167814265812198347629487896028934769700690600686029040364966152274447717068856109577055273374245432382938253151263911041891761284005184117920367611223540892180292043385213182139931237097532922506967804348825972491186341413625210540203959255575814060168169568528416066285983026442853209945582096313281670666849881030727717288988210900484918859476894811380747382998843011536327846629208040703989067666527202909515716667333709370217743530345731332603552016496257209115825705053748689951465427680176423500780811685157659596340942951811042181894036080563476505447211574541317603328279473449073706571888804441727190774525503417259779053404274475943882826447009774722649413691109035810778370527423011925785690359485736592915202510781776283866156242737357243926175723135292154780481718224274251155321175486177057453958627036657504890244347305965246882600582157521112436277593230579668900461269964607277422659650138343673107148304535013880649801265527977154498603043172430806886234874120131329041491712188709763019821263657959960431493568636319691060516974987379507259390612800806059271618429783813127261483977124860492963928203099194415318023932778854413936157797656083453361269281788326575504466171371509198513514104346492532258435403788853939332571748308836083018897135987184845160207249283225379135618906546547923653685256870155302209405839310262288803307778915285072484187777132961107712298521373123702260837380576355192069595002602738056616932729225211084032300487027495334180576036820846908811148500112783435379567974864056464138395543741224314279333301956365932416780712206190976141225431920735070757714131022900123612304320769839852691479417960456694919792835468803974632609346132959304043444238255445294725152868957684375567379150406463320716284626981323650395024372044991760123632626026719991700008756120695296665240468712353317584376006956626181889839275766885537571656529372657881946348585830024469923341004883649461631060701166419674436214672638148967996458887045737341215131845954339695759519739361935722075778884112463352541939651498419614460179705613640461766364590657106276164004890330825277896336206066189503549350487196772820354175247786139880338672192607175046293728048058286575207724087369098285136382876417329634991826747316494617251456698719167952604129972801801158261219972704803444403769914839702057772373390664276409935604319538780980418608194519471131010278189449022071049531376310197641143070747721484537425128082636252261612193125502419890159924012427373284720017904505429329482611942217246181996291132647098202322448847380502384952677969100242170531324333078660782592669257696033405073896753147795779113372297946607575049811598224229047103479593678157801378317794436111376958826165994773639001651022578295402248812418179091779534158467509003447016800098783554857658527992071209905369936637293464331552754932820810193569111776857883077409151409592600552793189690626007361283265309814852740035173218502494589558986493386129224089478283474147125286015434502749299227059520034834573294510621129709614500457619270379435157437866229432536063933533917503979778510815319942714504946885538860729819206440944427778187630634830453883717824451294718518191579799356040457486840505699511101789353405274674229738978582977153583137040080598024585833999095398994794708991846184525336794534915036993850326128473711039947892705881880920924593773822018949316926548781812502492120935658132387155988759428363635952453214278187313381547754823904437089308751873432203450380916735879078077780367631481882846997924616144242086894944362225620600700691740125742651820455470241008291655161104348390419637413320734929738306481644028404076114935894328264043141071949817856444209001922613906253083455762930010000562862084518577348248173405231804597540157854758532635986099662576925236428610499313619458414360737281008928464902161694328994212688651797714706402509793220082128880895764873616633092108749147651129190325504493878921279377127733684567374354617828799796516310963159881337237863331662557830139403246394007690953863260514384625896239654417886464853026016140172608906816770585204225596322342117333657445842621306942202818260034342392783482669121060580325645698566994197290092758430181833453808908015030256630708285206881428020067702746537011178912313484811990779932347187817119363765044224852666425786264265069972696994955348982424062706430345779990069097608891176445833300310707717377962552117891717441910935354112485959000167714115335663774409133812710464830948733266915344516215880060476925992794400053279590571524306261523752369155039045375429884531015820708147523123482710305550794831424393803419557035181715348583068503755302539347869825993955678445202146355314725637072364988801919390428472852699854432933238424461643688633735096629338826582003009758562287701977410691502353741308585406008634552805450424792612146050939542807222351702260994223984537369474013894285428786673231878674871370647099496733266988494775965693300612548244242946829284437241845096085518922886609450738078076599949185083763791447119805017184424522380451415012929489185898128646069988027390498992250459207405756340736585181540372199620038444897986569501932725193493241603505960190653069784619111842981927902995143507180601786225394302448737432716522896792404970185421610116355555552379737764698636686938505110682810407559978648322682287465089681295568930787769906716829850169155257757305903952939283951499643877628659998518029905515101014317264170461366842356600721734132326074473162368311076492953742079004470937853650515397692170077132605968565650602248126467681916327611478369337739775955903686414975739256819676807615536094609405627241666641205259501810989754182203354626067547744778346729227997119962488371550019060700249112359117628975803293679042992623972595274218995092786870479324068722845507079806902494113980269041430282665251160367500549667154371920960818806402862370093762261657731630162723486586738285492563879340546719993657483384243376210518843728104128546596324261239972780600980705819476444540751065419199419153728937500525967917107374496091678624502676990440060795503792260707249306478778750359185153904126127526834284566353759499305463757377771059485267126544927636320490340860296301083120530481691930247224314374059812775876972807337392454718095594349029207511232577185984660785573218714504113790937513783337834425324818748617777141484001091565783290029839010908422413682101060161036511151051132456110411182198809230597468051180353587896369205624877037295843876148980195897758735607067709698491957223943266893259083548539386562183496053145094707858588732715896019622710818642882429985352948148566979210730748934738319611552722998155646700965222250255019432593614775306023626600857851139593986547398755193625118908378451109109072598213038375854028083222008638049007456506972143824180241813543313596210206511974570585044190295529995651167572108362519428106565975685910208605064304759326075075381827634086797241446824736380905856939698347012457211667981491924502355883910577377289858866761095757610485731345461476859739755856689143928143022834380256584412716258819987711269342779729036159058706658014574014100898120817123732474739075755603173970187842135820085790846571150107383673638492213861116557477942132438434895682091786801863356261140294393529684481905855704270011808509488335318372274328352291179772252045383549409753325070674725624422952059438908872875889510650831061493677484798485802285281883337252885030841101219582121191049122786576061144449848277129684648213095326305862752913538037422326024464153628600635845706385983158352740499643238195172471662381478983294236227123357830241169045827587634243649780365326071953355959913473055177711727851277333780449416012257053259883595084422091671704279083290618784313360031653543950685511230740368753561750232854888118841102036604607373580190791546778570771949426598763307984919551655551208178202972656603725786903580514452176526554800716379198528773552533950547012917024550213596767925132673452078511432383466981681596834455508228186218521041157769478656992328932755232468996480065837083238659844594676847950064330024005631997396578995583263654764458535359561580797916802055901154380025336135310903074056576010536456364523523713741447816213475426212901533181641594351974424102263532044638546540213084306845565524587774609960394038279851335858738955730962687901538015371558025724677688239353384031421870235522463867583454041771151576994434284648837131888234170613683394234226151492517839747328999414542834345291500284861245286936073336277389160623479683278725916494325657717887485547819856118146000152541104233647867925607059942402979952290898960862000100099891387039891731599092046916022620591109916838540488221805417291749844502591163875556861807345658168204761233101446032596009967112464235398213184594078940081976740434653115037806024869837246442230466855006272590165479581137906905512336941339142376729102326366384632233620818193706921587607227734468131003673028421559826448775517114482696760156618386840363678119824181265253174880590701464289157539617258609848808749697464943599637423900030457388814082436687017462541787746029044439023562825903933403545634520652124695681038866967286226891729174271583756145978424375350828641493014007674860575453248928150911465124306864476010812364618323759516970999097653521889722580248265121834994022582704698504053407693893191848097944083180444407299585514737967248666382019451736590195113655318157105126790003214925154539951415436835514082014160046060856774833192778075047593330424591737896990236771405868659139234536581672069368345381450628961141025511149693645860652861564230039690713488387806125433323565658650424192204386167460028066377492417072469750121158562890559298630740292829053574195563163841308454476597458141781211788858700684331157631153147032294874090102964788084350658411861469509179880070600726474295405847919592318975563637910416374038497623720467301232658095755740214030254797578374041043037738519857176308213685822286545657043341966740495366077111762451924184564321559591194565055479937291465652316521660663144988337998563355377660325886268301589119321717233711815163937792793982624440112095393470743085223504658323724660158248185071869001275694711856973996529880502083098345733405241398476928466769081280498683970572039207254396217417465929827990720956974579396768665796848069783011261270327843635268869334072413445635583568710092528223026358415987605980358403590407418816534312003709367260077299369373179615699620590150599010510886201886651149188927215342888637564790471892948532480012640380318294409181239304580791863292978020453285358931527769921689576675459024442588763168441400712064375882331121856029117200112169481947423200296111952456610812237871829147102162722538213562225197890270832348740242425371979748514878437564089262179342254375281196969552540615838822096289707435214618262868880294535770207791306822147093092905390558011746227642957621919659765074447536884408131581172251801291706834466903305898777060854977378453756726352229381460210120457295810074416911882448572521797347556030055832829058692524796374949339325801136310274448601723589603829424418838462025041922134009487226347440348260293003183768245171307788231232122641612529586853300354144113283458433641715472476563707429478847991215099618965945267304670275131325031565880142943729274666890864385354531132130787277344793262872595620024100638650565125238404226519766355465534911775423208402785615836250763781279386348291013800522057776984412133683048222724067218293057936481159447098999174992528292045678839520742210074752736159416304101238386037944012998245860531414894548412100763456845068528015647305205310411688318291896898926587095790210095934074984760974891360231786992181990555549150784155895496580872483903668060388361687950793998262748426535917564705806555746766732802619837115613971239005674708433705755422279728758687453990513735331990503470630572835767283630203038435917334306951030319840444477315275527874158694254446561044799812254343990087240712084740138996687577909275210062675775662844756523352068366112181804840579106333134111965478669823294838572694365130363002510329471651278073537983394146841706876344204734583262195778076783126076150756421854536011218335964123903039210801158014639601685013643342850939258451791284969032638271878767291411394765966174716184937384441377275793460961786545575029086839451505046110840469346026876460493508472861457084330757212207128963632874972658465234551579448290877992252964174323652091546348232547684122335459327815587310949135478930579333058839768725638172328599647571515206824073347101148560821550814842840759846688496679940734839019650204141757593696678112918199557625984604222116865149690446064904466357761819097954924766526543254164008810416838504573948786475222632079960820183733298613786785069305667993087648431991516821545106921088857348620368687778580133725803931896186486459316210571142337091519813141106055610109190976826453020797931007229169780861806841724875622189501741363041160274244280063760575446536707293130584476900042549036837242981906832459643029674395338975082321819622525457039157298948083910477305147532047191793734678836373161114952022326848182870379908914659762550883458076856842653795247478872297553000068559106413909218348832192255457953885110986172316698560963979109550457604962163348669350248505224754028707514892189464392071276449887408490017139888265764660022504199836554835483990436565576865292387272688385276023626636276421141205067455390462893533108422446128873291569888704581677966551425584844642140262716935269341475442320344050844518521882279432226442034659406147837994802696414624182042509386147940657628614233689902528747823069906186095412767056600656999185913335534320751738594315648004292495755311746417474094069828950603380548632072785545877721495786711708581051853735945996407671738600260640186587361168080826127532732300628511574625787972735305389673004224143460453451618980751408801168420063410303169146209016804933395684840405636655563300085224004911239990998276800239322590171144042827152152453133383576589402779981428652784559570998041902384345661673772056905177331791315124720268677394022985972559434461367930826010479285733844182264692492032784872724782169718763323805366652352816031483083272748185507848451063109459214986893422845410858179755919676693889011891740723563605470873177313538469718038279365825675465285527386042600036527004169093710870863351693474108651931877820488333865448649911935529005904605612132671106204220719735234223319932014501522671439744358385940899913642719309257867141069294881846325234536265221587002897898327364265882671954834819984717098487095447999672805682107327480584035408217572465957655289251312669722312113431515919371742617138182971271002383269989971672002673062633758226952138363698529808069333808433166111177341759438909324057074558105138365212148205340756449292896714583451620252280588626694844407134981377915560063964126237355561777224761495109690518920898010733875247238193856808429161185189193804393464987168171347309252586795275519442275217630966007298023183408592329220920589041864673404105136094255317091040921654325096628289227482923956556156711949190530242250025055592541983846694738824694454624388797671271666081275858720046581108539218850526873857220635514875116083910292397611388373585041833091971847454837074557608070767806622322797976981014788257708958276638086124806282298261290945804952194345001274084810112044708287972235524991917073673492502239820612345583597865051090554723165539940279995223784084602040654891350147487663238457246099471084340402117304435365833548480755381027131222662479748614405400395800124336348156513562460062485990896957890027722295075913965105965881773178285461957178769702855955231278724748450746835081597906944549129495185060058054190140257229339380424582860675122838544577633055070851000191272921979318248628236697300044350684884364855098518313104408410446271664342348582872558520225362389155423380758704796735787295901256313740780987395006937307914843507901177062916562672125809087460592491265122801107515824063345964620834117938214563275069660558209708813140531141174296921998487629368196905208219582904362844918608978931940442943383302715026368634523562414697295785069145151495477292364905606517723713438151265941500993337697401227512039787612970139218919009134888581306992356270383102678653861577721573908990700848954193104384581706061961116597085459433016975235467284426546867663275766929935412699683554675909804446135509426509439633634629647143437213668797986446567190439714743292203366856926416177061116783731957230830778146671083216816863808682523371015110792781493941441789554083904613242364028117854047976154998783142670337293352520037154346945016165902314846110921626176235258474245703422164940702356607900479451698457964299648009405646274340984976367897510723469267257710449673786056965030691030999858261917795291091778900031933837054843712045680710318907265037078746687920443130559007603565494798992028863548857091824650718090938529062077117843101988916046786901511923784624656201093892976010596346205766390551131727468867271992660356471941006106499797231603769700053489213417075169575931538304221306707334002666831606790560066596763768531998617429402912212318131794787776180284758893221026919375448537416770750887155784590264552054516225199032277971383644478192066317062290055744926768690043906959000816748285969672031395859403879638199220251979209417979787693881928568102274644624069547659493050737087663126593629192478413075652235499514117200807134443998334508899761568579527803916756147889924360687892850688876981883946743643067879135363822753757401514371559403539212223544132829045283698871068765158246779169891997605481115025389418756300587195499302982688869203703950122385266015746166155991414670475141802563650721586515582674418603907992789600547274024419240031390011410549611194792855787350968560910224961629951933686616505223297049895151088667896694995004848833539726698590084547659388845957976678311535859081071288304120355239499312907036452477631246607498543906912676021586594957696856066744956913804140710704308415516871225786633634093090678881040614461754641362383451167210755136121397265160742059728107820600373196257223109841004834594251639684667546661978238119695227766004358841970031664237964664955522787075961112827467736126247005658395706727467227751636792308696269393517734246058459283129002102840271482807823278946589454220686672299743528013099970391127595992815805650807833826422635890267910147588952743410503607399069385543717789086392287771105017958495432146540730944956159067784222604514087499729629565693538278418129383917786832056957833156009478070722922359972343019994019183715966449043605315364113795948434539552651654522509246419946816328646288587177614377263013905796110755988522504093655059833334585159231228354309640382249271505129623637119592519366435001430120462926817955893548360934827736542905675489728307033688753511884463731833503560874145268306382910290161473756233695664062250353830059202625110773473270819971437194717303991748601815925530450002070146619947576228805695263367079888566833312568270239829817882125543059883810551306246644792634596524429606407503759650546313545734315169233674093272425142499731837309252604242095485569912135690143911358423898353478566093438491532149903447048313758642166248062646777401094023847639633090609748163963100283950437832283075494884463447234653891620025397223291463159895564641953695394056823513796898506562206633491365816804547448499569384302637212167521829091759089674934910251465984648308605313343749754897186026615643407008381637573257517557486651140560631829767837284609565407843052837903086642072481563346853130220401015635657842080559098883391309427799897849502518594056654159405866767798057678323028112926542273016442919555725071665693714377089812370158862505571644001361985201308410268883484382139089629028512469566235765485774865600628742138802640419204084147115434245232141766009898490349205753592940366606055500670563717966571941478799603444245781373045941063552658081267327811112980558391513005822635752051136220465801644418342327426331096403737292470544815158216304705638106291023042600716048848195394596457941814131993230881147386659638704133742775520511574239467532677855581587788969662823328033610375305276088009448410614776869252277328894534500955624080726787808523304142096082596764535910364101999192629343658059096015766368175033770056319163464290025322871067663806062682723428915373767417117140714048367084319780839527237793649614558129609723005099229029439478871934382732083127471378906608575105454554840861676833192872088813139963777371472124082664871259622768118993456412738315407182738386933912598783399421174223530841602429368740521848926244610961101826197716520861308719491959179788095385586715301617724145141201964740078317381543909893874130948932092435558086702519600986328270622596729305425502289652100284434935361833407934046003747439373467357852147577976176339682205962583633386205879917743951391578529913264356807474846545372931896589530351639771327076573252401611413651903478646968323826232078334283981499331152532404956722505999961874853200905669346271168979417230019717943762662300620853039312321109876371206199807535486011616330127760820591135603035546072672015033590859308138687403612086410669118272124272575498024808386736610188529144946654578941156361358477884819280534735550706707465272250865074831605545452858276915902840980253043222263993252892593584183774728850187465941221779330216414097715251769998171716816760530368596063683162426930211100226703490845971268320838338640352914261568669559662849429964692365847680002391450137656261843334643658543588462591703696812811011871173070527108913224301873437271768861312309171958279565336933304673646087408552423462646427704505123789423088499127729707844767342504412920828965021510221787308231098586360735383045513090516013573512420049102187360300339814293416344544512796055278907207047438686075629261468031742476269838098469296136202123537203079302575543311533480349323194835999992509143152304159037648791963753225278804038707474095927875465417039116874041737466521746085362204316928674563837499675041876441365226335694851580995004521121808439683535341652707120416404752009489868974356313658890666623800705158890698452982410091452685805786176702284063796630634029096442031038202883075835802700418250224476354047849939758907569542242093322887704861694570873709922107458235599400456482536614629782964942310787083750720369197579060457474312438745169184860876434611919750126281714474894039797062391501643778702362103427367921752317831996588224815633710067203272058323844116299352869457151343877938594461624070119084890486967103967826012414289049171962630525154217523257126017177676937946082786506757871193458483565278039684352616329741340962112961508135507714327916532146375351049300610432542425659771005488302045432456289730743577215171673495725071114183930660047999093461334434232263442011845569058585144095671732664821870528162808218158253266533046406341887858997171555680894525839139817556126562322325701362754724585204850027375813460901651762224538488491171607119244540906691053662475209073324713357352143443098202123187482862432530138215055017988973243984929012491657802027857875102693859572773363090636992147324539890480025276902715522850821610870204709252399025884714178597572474142873017679403637784012497840039654038355067260420002128991985021071996042688929642096235418869015524592323931882140853056086092961698923272666572832756051340954292576641853970766150567533879994030988220486491123341622439549211926086656621931867439488774392404907843592559815245152433955082779430647519578708141960656998704889877225965795869865805602043861177932021551465719533784754556002974530098849866892391327051200474706696024878828587456733672568880521699528869947973434604596880113713538732100222961312426384978784450162749349461436843006176399460269026392216710251745528317496141765832732374742545002871959688255781897284703210081890241738689652802452380531580463677623850777883930053147462103673854614809970251285609360154793998752061044307922776657372691606497072877749496017387311842439729909625269229520800298965321111107140985624928308205436357148662366106118427391436837474075919532409097710261693447317205612428045222712962904621086774453315700984239023632531203468724209687179726600315741775119716842684441674599005447860202741767627348162882035903409811671212881196656989527006959460581182253121074604713905707551055620388014556924686939589434040075890147832584403432240550424031136984190125180972257212201084548357047634926982925297411642007557901838277768274768506971960791396794161191873008188526956719962500043061485837849479065204160627466565446372671946729320392225387905214147005733253528191862935085165070146958386298824860261723326669765644419293773767598444389151421482686951599049692562649245045312369979259282746617749358800011587432917978570259923952433252446545111771722592744934597235142051259778337275762862742197097539958125516791420193066467736911593976279975410794938696261164059823547263698062346437515245832942679452243120481093468576736121199448140238883742050746637056919911378825991410721093751475653394003545452253834427899726529123055547199511716635889903774423669200020531253789306580909620692538302448154229679877872820558730691752135969816311030845810395422257412432378201332855190958841444230780410332199150247705451620780832215955285069292385802980910436071261280076972611942796240878268136138589316338582006315598104864900602604866787882769823491035127934244943746955267434065697547376636704823082265152668102341907254844597491722531060531248745969635446223279902493537064283853736707094910612814051467107903193278074519795483588753280480324430451094037053230330923686341244850349763144883826194946611524853612284082192564610380383445604260756896094394458124630218181324205151594375038574550433565556599642630348267789760639368547043456565364189151600075407155423058450972917465002514500886256116247310735301658100284057058364463349281398534215261285273336458836303163104354979633117500378271257352685139493275852763517527600534561328954208687616603659839159431778735401607964851271953100660205246917975347908600455028531447308009823074082222427300942470057668054523815970707581422866604135036379848246325442916516084834809905368761902183615878513249596528845522553692564324973023095825454880728007143119964129953165424429775154131131430584965840206261580899310911339283144503086732304032699161678137682790299702038922699699525030083093040750073170119346786608346788805569649037634453911050938110389194723565094664242919739494090858885717822219357804430882835409567140242375379868339616687563835500457309691979540710625802100159853952264289174470184696678538739677302387386143292550877831248991421377481751181667138011487647430664889282839899944497231840184008877041082751040880230988756609741986929996266579653369201267045513832213366876234615447901372373100667457873087639689386911655742441140966259305793030117322809273545130305718018133652450664351101255733298720383442850265335649678486820516648750986970802641585604045084831148741302570776546413323117182071739780121908103334220195486151235803477568458695219926496245454501820945467101266742865773162790445495829930764077536032273471525777751903739023555595515256835345045933830662958180357249605975417688984475158284097708641897493731825204020650756709399635448265059597993579393459758063756432453156854801101904561806371237680286565633896779338245005846950671040134253729492250299132146474379329258414031351309230317958253552252505311822966006762523087167069891980067849076850837222661565204189320860135238460143280530278108941346889623092076211611245726823600735346519720021370789486627104621873182708350021499852937784718651550113593150288456368744711522976005656218865541161795523680452841344435716252904121433232212882207115524322636514216635482019964270151325190377808858172538148881933825683666924037374753856257038547427764083573401182087717488834464490589287946481878726810922053935651430440757283287204831545065785006782988342437651116952978487806331288294804441944647821320660162536420310385934814952694365655313073509182567599534741983907280852586016102126718227578726147616594399634963683670727476401168587226620189279734322407847338802220568711897412103798273781793758978252426930698133867358926103007201705686087910149879896997968623144899003113132897581716964142848360975745971688193124479045525706220633037383879568005938921655729669135053761447891264978502791979291361491541800763590636587310504955925876036237729501581096314820771680609007968587607605781052319060942695043079670070365222838978655669458471598417270535464037527997552088408858129111127132006256320900263560005475949155681230980934229009909095208631932419155869402996097851035614032330692901388432914671396049951975576788568990672866581200281843277505622277824328215823354451855416633559191829232741886449908808805584438085754733537937779993670883374823066966989470607494091457610024914566841362824281486355193059678990794671872960281559762057189787982530788930785133997225867288737471355616174466128399360574008025324691366679468174581684334315653618307655039401801901713092922872226754729503566274860201521652789552651483272316230929299508477768878154123126470235298724436548197372145659845079599245672276304725035956138324150016569577793478240715121547276082216998930130532853994231179355723180384172314687287934408817292094567531986777829387993038367887327688834662951705152443504839826559944592774123827218115889334797930839244185952169576220790149332050417020780154316338704710138745958090261622247189468720427287264319803173676809382301403292753292097465271502419243380285918071550655529341585116859786113326377243073521949720069210968422793393036302381592343805506646792314057714701568613965273198974269414289192559176855295761223434861242073807253715876987973771197781076967070019274940329513893014058935354435612648102726689533719266807076486048168981929917178663507385618070938860925985603782756428659030779359513637809006438456879295646966271940138958856095565835621967880871878007156372101877187393929343434575064184967201230160740078538942655937143823081254001648478512356939721035372155950807931957392864053414469389692279952848019814138512078885768963954739383830951977360593667334242749999047450040606731132554636545033846285572287485509095804655453992328406503328018347412316101316805034364332405910225952256823650721002062941918449240924667906334700602864631723823216732194095275565067408712137296569564856526837369999347349193702017963866516881176792134693902740420876598269276229325408466746746162328707252308065295190693098088315114418989439557116102515033317319907466644916213088182900456158938898785388338341160388829686218335792863685792209206625037378038162135590271187184230438476381343075911870322020128711684907197927536503050250283357390093980929493255679163253496768949344351033773439725824057678495953851972691684299602660774479463250388691483931732345034233205352055957498599069483434711463976180330875805247965451047860150361564566692743726419912257815299436307933319057129830674849835666466868779585819779279137593213495318062507874573792503085263987756819390183097596431453984530296827398059214128043761060207053760442762294764550759078071527388077875899625152585761626729147676624846441070163357111104525004834103004055632297195313775917011174438819497458887618300068586825853798786291854714915878490718089671503829362071676618950579028021926736774617082331126450073605874791928174285354202977984485084088173752765375662785019929543845588819623139813885208466887250007918971152728023700498680427522576734886613234794538087805316518509278574274091021113821790690829234554566285652286505954533676329331370391358115596213667981024680540448452902214769023085599688112541492157219789619759266811510788749239550930872415190092265550466026980996829155216055233846046990174969339172164794669315875828580070716110158993910252868509097300271212446791669649854263864596138458300272561480712016602478263021090902090326269092615536399147670413077508823086576310897240442365078400321142349222649586910168303683423566683730281906300705886387924009416621412884783777314094130166919991722505971260775637166137108445669699176481783449104714017720481485313886992118266692640132935315259288398109801869865737556323339162707568797403266203602890958702162664082288814113401595590253418923470858947052215873427599980299050977576004581937115311956620327117529059827580415727306316620704512317432376523264234991092499927402047789341812417474566983022010742208021464406534124143628410398307403435048293194916330904906367108494341959385546529366902798635206179209929570158465787712003466289899648826933315597420913869339710394251412935245474008663890297395184287833298038736278734155631117769698057763048723149224149555713968657366869942699808016396310083387235355954191820597885505715463176021344614873708300432702459728862178952327022967991791566293864306182481396901993652988550395341631396103125132401892271918395462643655534292571295344212885192570579912739927017968131072159554299686279960894794822537108986845830084214597650621111391915409210646491232063436754580871249276480249111565229550588139506436163343049092531818376575325564385384687329140276721898717128127446252530335455193200271160567529665591545229864000365658926875896022924427983801848869182830853474916294860305836108698712503290784596182735220537838074511195236529205184205701139554208189559507589069885518496860424899753716932652708409764393695984025668273270038529306918719002528695392960589772463429193432143252432425497165772041659809084004814298070270580007764184723952469320865382522351771957914932694996619690040509062494513074043342349051223498244762780764168823436071469932116828109312794582506861907028299343375940320530836151119666517253348705075301807875443117967740784537190838526095219450264604077284042623951342189810236798576849822535369596174245263462112753503588869558972335314179718181862926427398611740764820252555779015746833928708503563999883624692594462831063773975558386374175086175653622851830684194059359161342962620457847409859772812718102868461012369486677087433242693004340887934435724682358420317074240690046417120248107875575029347466323935189609914990604705342230506140684747031341648979788524282174772364536685794287466076105769814419686772787050800646106505628287845229628780225490372806326503325450478424715397835540937036755143473642161368438005086893110013715854139882963571962204800087964040930605565841719924761258839092013842631347121780076669062640249939197502625975795696063867207988688706349314881205623874272232790277992702902701497688578681709327925965645504578352579073811687654983095271977204056981207600740556882098035819115644306380985633296247944703637372071949368136755391594063808109588045168726284238391930438903753608950902192448911038922309698730324648165188530759333746714026128426569635841739029648553319346230161564576253525175309092228755560634938771169157334525739387627383925324399756750998351914430041852587154338444456707239906438389452714552155958813504366693247391595569484207483598099124329131578713980851868541309605681014179485528363507805379500021778716494336298944520261607533097568125447718473793622409525193854724173614094388446021390129573601069963365566900022625344689592191789693007383602041432128022573454015735979052415627779613632640917657853310279255168008707901122130516709241206249070414992275289024839089992743077910731326636615859560542355458142272695923976582852763902514767688450291020863726169950516179713035229086662702595609635840278468735987940734386953308339146333274820742636247678606924507674481006402080035019445061733301693371119384461943290262072076751613367979453747939389761076520542700794721661365979899762995152313189611428736550782626132529662964439090839727150990306017634354741754116360251038927726272069164747750689367887788822447198717521250954877509003384079763883405835360182526866360314091171151853703860238121923851067841497246514323168614041417916397338148141435097846083561627010592217498118612748375858142880370998290796373038745043035650174774240248002912441604218423020986562709069132829847817184931732106793301724320410413869424420644105162358709196465851534486158615882066776914167298290976554326936766513451480080652315885176368886876630543114932615672577509490728724883636283960701970458809240523116110284522002482857396223454367023039081586940062526680250223435366190357066369941557028265163110803797100762052684214483567327682991440690962729201884424882533214987636584378920535712760251130539693223972271580851484053287260360111807996740547428902995842888359501111865299527421990644703758001087111638443827396017612564072282647280930809668282486067716059847166542809915783967041758838110169831545507848058253171912708999964064880833968376757878055018677232438480848630196976061342559232133320955086574684299049644908194089825508551086023106141022452054538562961271865925710347561279762031379421922137809646772185073723864344240080612532321225915392757920768125779885746650634100509217490927922070738807968254966291057533257557666742975380406233397291272932345766089846784207177095161537655017551582037765279740849647422846779595761419711416543880489765715982103322370925328777669690982872530803435990377315580121413020621824436715888812182155737275872379006938630054039402022355999006507234961185262719501567124354210179215442219108083275074699533869582646660469223264084974850133792611849391518250028387587453682909901608934104722606895764734076622608206231075549156146629715052999243788721410352473906110170830026125737167922167870304143170186021527037479957706509805728683823482033731382070629453921176572848412600314184162775315316501765802143831192522833882881350571941731702445022864482525005276338283281826114432415672696302971118644080938856981294367544129917383740405977566019037287788320375156565280056538564123156635194830010791275215372026050093435289020295226392280817126120274613635201124682121605633531298068248030537798180500015747748080933471339047889958430409794715796812754955653510888904149580791498402104613047367161494467373284659349135024211923930271342487666145649165195822281484061550165641123942134350936978933758963349977431041489582726166259667798501254872769005776635288916769465938796136069880393741140143646600567708900690424079459116794675682318613592757744241473176101415468594568746108083677807337167159876075118048617060487223923260699847344496281989124327927966226821097466442432848439166820844468231166898136297711548192735710099752166451819270030425817718714923937182374218650430823639551531737882819076746437896032557463661221908257586811134931038750895081363446913943307609488140935176828232296515144951648050914800321202002296831239233841457077790370105424820852462523838571897827804265200592489656031285354964920286060518631205429180158413380186140608444442717339931920969994505734063140014562101663107102731724122431371932595856412500052507120337398533891757446184306802634870758819733031135137275041761407736333703471501168404761848180823279960192243296867306365477884409248644072654725026614648762701480264942680800806292923793107167523977870874898537292711176605448986794609352792868578018426531719078638238843914625927033968693913019283839995086928033786028121379104995252433069165404722850010094421536561165503263357454570744100996207570829415546862756653263101846044595206970369984173319978610510953847651444019787717335438610821617790459821817052879183297506651938396860398274414050878087386829060961168441882061078106901388896852968939567217540773774428113681559392897284212963612754748641947929778093812440374016246773539196635020894168509078940140563867523707421780775975351048201486063446724732668573506458841107466331210502714687154977556269428063150769238580544764795528540384442969707491975852754712740693894389223389847419888106388312696751028717349066197295749150332407101130432735189550873229495739545391649827401110191699660641816926938214789169816322019956607968276875355418253361331074467043056427491953907636146531055091384922915242006785765694143594450907302123485664736372407778413204222480947895669584506034795577719142645378715388347491507334659905810976493682084463313858958789535548524037754998221080979238640512199721841858645369186292246324703066015045922017827507064225364972422991365976233658448684752436345503393260582199197217128590954639748169457050223171151860243210787667582984781130435748297650603992590170797020600145915174503089878763214690443147219414751403338275703558916623357424162637439148977076732678602362412664763484094300704074839419319982940873165486609663826047640026467014963895533802036114154978146513521912013705494993164227696923272440135382389650342651157577766672861427740340520129720747381628678901252499971369503384760436935623594773443941175263305307960281817626699059951531569565267142348945223247526669671774265955737353032182787395394725020985749115074368599664508288780014470931772751691184313655163957923194522449288036171456308209868316133536544919886048177590342940366500056391398129793827394594531736662466838773330396036174119391248219569239313752053437929354644554504797729975093496645506613316896662665857843057361008968192881103061631128216316957524297038985329428170218582212238942603722343955261232278556090774583926852403563080756121194150688026826683456660459754555829646784212855967022189745901992976158241803672350241585530452122230313175310537465518263226222423939608780922791821581869715968023795802904794773114533518574128599798198196897922086182134719171105905934266481472318418586187138028264687891559132083378964104624301087554484021480622110996336761254897039270546157288365440902572716036816479603432384854313433203186627936579345376779555824045512127692904062586300728513168042093673745140109201208594050485058694555441911413032992302912874783409015246105366356433018237356049379753433922051421115757046631808224379366450806028256926333001867478223538531383438747903471505617942849518462608576578149775896270626953918060648888747757749526459959781038651535717586221443043288410236474729796971507233090947638036931945536159219416169312434649294263113957968247982203882893792985466800858235744365585875632828093399688913780454725417802147113434242941838586746140435849465844497412630606296024891190963406897081409323139700328213284313307875276042146384564531989980537074135666370138991564260225342257058642959998757542802306257498009463492205303803020018643715997051684561676863994787757393718134061830185527364890954419870760493438362672885762877099348145285156388828258944620526963498419094924967647593972931951811380726732534494036047677927946954506461227278482328973902924390991428498484019397672365972789546535025157479424757157014224491600594069313265079139262490942066343253700255904313229772218053979882384740683927552804957856104392314314009978967480911270221617793675873678669502668964257595305036428468784794176198653230924140955354799158320996137956186830722669145742635931966831942683406623147827788129592473059198492407432307427787711377244335744695400912198690244499607604936218387474438489655257364557495966623911554059355314598314589539077956217820954602383331392957903902254106151533718588194635419514740041314971335536903702817978729140903231649240170133840794427138152657765335142232095115297265921680795159224027766554812917150571110909863298824411788760001520527714380994333927550844245496889923999074763818866739936687995076749231402095882563094381800916228264704651518881304457696704404207697445948016063518691644465742763364336665111998095827253694306650254410472362203874389925095060845515084515931121999314957990403994989161893930294135832099062309231402732811434685508882865134475790195135716787522604396907014372489655824142050564689485580872183290654337789742530995966285713364814587024427009187469381062297729497314366646113344792360131256803178612529278636856639846174023493358719293932898633013693149393277092932077064013088582914549597910448184064301130205704514938386178613447690956767608567656336344582736192852734391512918846135401919383630009137359516714971362953114605123605620441941472370843451596590268329298754136293614139360676155977070224603622117452918832577139981146399585682126845354593292057628045459003824501347299940144872714985132695953712039690373627558717888001481435193787401890445306544461989956521769808968746836926470515603072290722825967996409472685574299353211639582389658159069135030502151554948397529068134794254155974137838108665657513538122068016385938311493879941455936962375011179597025260341523346285302390444374364286831845760861934620119044467752669421009889493767223889127070560689658298177328994895254694786432930692798560756141726409837219048081118889422547632095623059442868743521784487438280749276606512943452665186456439866997772495283729758009038520398494700241060384047446656700186739692283336031738063369845856464160438582906079910326890722488466181678105404665556493202508516298423831739425398974140923089604850991375363951893597651438178622592045310823218855386604195271854808007885059030470156729196295700442668137724429803939633151537043719592283809034408196429317378466747161412035304254221812675007167186431454403559962189379086491310799005147112907846841755098129424354909078792967508135568322298859170350046962178947924545434705582996177019719001023554864094792290790719085491410776404169480122174617781050327619081346119834640488724919080854849765085346213901115739966462315524223330572635448294293225812677164280851708894792512206545784288126796436848844525081520740792955180931450305145864912193835150577421391305448450059074883994139008296734959084665931409397344297963366812227332076577812968645075083293328201535786527623503574648127142726991992531348416426708625047823352021303872780493335819196483686446209446509337159368871437180401687084116823830460236608946560843291702879206556254334609270235218105915407770995185040310571371500980961731301727588841046984242968027956322543447529980100949830261292353673476534181652971293937492868651664242549865513985670921242056584378352875740211293922689753784429476675733888946408375283769231746250260562743137970431784142478715856252271557120188590440984862342117191054404017419992992643069517040055687635332418127180587687444993387094303901984332915257232569031861666177779400656375908816074914033969113963036778947767859347053302347659072308287185003224530102147558155417056713762805481017236055900880391354666354488400804489619577310409477226822884689211227112035979632412037899866129209393347062319126007754867025003525420521065393170238092505129866399677108466950997282025304995629837931163340170836860582039683609709888790670652411957894179794387198709448231600156118588821818474257311413100386490865762028672359984874564706058750585833242446802044518718530180865568838372975503370533249188274656856185144325491587407475956275427594281568137902156824628901573652283713964364370608844795976512566139811754140676162452010634633920613955968310565976568794941955745013510184238413613819542334152092445812958967289064543610311618530710892516829134801708692813462344173050690519413931986155623682566339681275638474954150341219083091723178737165246169441728017774868759240366449182860650599960645541324521412016345379769587441898915471360781348028374599223062734866309439450148952142825939239340909478364721771593662204326215469833975035404296501848217139491039495187186374737770945491551701195481568539653633779885307809836781228181836548720716612022964795337614211879118032269077431095934021403804002101432093706351845372034619531835120805259563230492650563870543914413347246741057207123222886413429171127450812922259410448164367929478284152266485894411192756336047603058592260758864006135892787586014860516481010212838074276724792135046384703258917403447416247432224702268474740878780993678805813312076574941934872307352580447792284549005852647464309821866479286223089454101474176887108528247713711614093329922030768378622796619674526983072810695941110739609692150341949988387022373770111498613786206466851885309757188142089452627931362616472608465594090154132479913634444069212743501915686259407552500643070008687978426052299560708823627851034686428738315543104984374853791692643382159168654247762493584870876719756035234579576790731297631256007537698072177253473441700344713040973265481583906334362590446332803039661152906375884998958370369454363774919221415727357476969942245718096219262285325654551007979594859439006749429695777920456350293084282097414889669475466422807757419796558150416074835477067246258046642851436554059036727335322647249724151661401845439471380982190157501438090879316994391562858314448184298498877186337468898687165265222488104248635936665666551815158096207862157976626673754549391683688419630482738898799727260506981999256878797122149249720417071099941497050164594905466129264417535762483163179434264329158144747272924149615899649258390585153003031764103603300434178022318876098221500906018270728711331528183560868723906691012095084852238829638080496963388558813644498570896453353967451146162807319581859909221822720187792326494587726100845114481849925141971603641639363534591361255407967842468650065327608835894015866939827222054831393278429847606114388574706281803910150441660327179231519089094019118927062767153580183250114935218177819203557595097473340393240175384887688870910149710880715910647850187905802899536688507946435515987749909572122522388704070432470175371014313903456935142313504857069477916126413387893626805781501215997484811722524418227942585969423925732702385376109508166817809327338865437212253813187181688299200263749159761291257632507729658153297661915114547391787177193334176681803496295293412630034338108136517918049450160857200498158062738262268839443884137563164213903034617398841753790873592626618648847491106719638143794847306744260461161075982236644287771023419483818692301460304472357654311267391992969842483967222799798186041226872091987958995800548721829675902055949033384999126294015025779934901596294305602577714871059975974288245646872455525905263654075063669651869110612742789466498251931149294307885811261941119695897452479510458294311251795857227582518366225999747038562060950554497897141871074105132408017110416689397258471248102874988902647374782591795899574513100606478802139347725422206381118750907933119340361931190478107613991442219501137798372697629374307329930051560640742580453837578373810595938428909946885075807331038669207307040492330934710074936778659714087343827869232362648278270819179040166639438789711412666334766200012527644713472831057441103654964799194239060503708098222731614775280929866251667590491550203711771346201775555087304693588685810728240839108443113517449840582307571372165960092370523531239271946563514435333330717364098205072616571865235359178327625564954912449957471833964469986821156438976405935760556270613931768009142260549082796457764519711337594569734291754179214340795439097643776388351788254430468337918918912364759009715588987518263010189583856287398976795076318825861902938864185834947160797921797307198238589921726028889966759248859068722350893264133935320595459192057745190624249226055871048800135303085350287016161878510486691604918190692897165388157778968478295905726516208455015430091281906317296097802950265675157152483502510918383537753396011341124253274443079091910378113810461144092584988939221180228277649762343519995580901190666858997111582428780711714780937926223242859613985347890781494657580219031922865381648051120232179734125416103165619959545680817589885140637837102456757573397898151328138403721451402572258313573437834791823771157305054458736526710642690879856268951206110695372934568239008396603315381461130471334457394139073856910085886258592734687221172062320463778636987883035063003164393624092697213365087334369129166583591331398827030178336131472401256310797677332544500703307578860493844042457441520450604753696365677820508002816166203515502594958793471492920471844953336493998989426065728439702465422791745765142431108982144279479568171400694495565620102385940299059008934941971632981219254604033467305688880227390120321763490108344444225163712569749411217937274783663738485508742960956760447897544685253217059664088550824659231048540283167910828055038436858235330355021526408146913726860238324218456831736157927295608526213426849160994455358784615450463426955614010545951899103214411367869555227624094259105778929695384337466872545007412263614312546352652900748960904369577975852313404732309434287088465290420341229828153813713018885257310874871525040443872686303010543251542473642169795523097217857236320321059533973662570271469257014245569832892985559367776864196539577247099638295914522054293134275600583463924329152802238293029838423411079506289283202763722414513752334635979560862063138176720824412568527934762462663708182071811693200563751049855675605193821110332360361754724633299327320812922778340921427951776608657868023039647064289300486631870469399832005979574986998911095048849633768021338145793500704642769513525580150177968205671807171235703961104410241407724571153842343752037738282462025225609450113650204666541300130340326680044835016267593371696035275813754882525082923477808543075473451503627201051996104463771156187858525490888523314102459275295787843445480338020019099815265540024675350325771301666510593136128645604268326932117715414186729486737953679543073149187331386341579583970305484021278022627047043991455166376880180369772537168714785017354019096661327510004139369418766859387270113223915447245379652292303065404832239719541730398692081056110340946705132296554270337339323236942162824574946982932192833056040976049228154293649877742644228066432468821901704884428351180940268899714102673348801202522879589466572252715032697971114690877923594112962843865521041126248087906675047661244826741090847118855087422920351716276757150995155041162104432721926675694119824943748349806156283611291214445002869769633116570073326886599582672260104414416734422218972203874643849045829846989678227082921359127869636766072282466804441939500965224081199101734893785759473537206901339014873889124890233404653737224815695827663192229825360158600923982365429799921448151961980714111961830377107891703514684088877564225823452877933634182848512058314508976207302350046078060505595972411003653622122084565690219127748300228006193147974649098612274980587856515512222499075944866840860451133923321332373435094470402644673131876628827665787992986598295401673167538390057830020403662453161287342092935778188585534920578882569490596942728712653048925454877725395700444567053146085341188298714065639972824961236626932912078296824836422345747945731654232552742201128626076695665444133403360503501780163155977308445557874888730027211069278094516371177855710518638025850256836614550748720160064190712811944686390389555372584138661990519179042261765487781314619067245210994259294518356907334666084602923740448645736284004422299483508521002818283922124278877569203663807890452364461770747839692703029242183859749267857553300274101000687179313285650045150450688783995842184351248815699063894584945312345550443315004380756859708282918150498137454599790775679047202572785210924960844475444816536136206978699144881124344268629683609325493270058148652944505777390498414185883747770444495413012745855852230488745142220096914897262288268908577826914500108927145972938317117001806192398429656299145860950079747252345306395756919912767507841768083541650384330010077641884501655853222179402578007334544520419708139606460654613989108452087472131690139611782392376422345582746383543721023837439777799398375558254451941325890030286725578515130218002227761959426020594262354918505217474461278451630514851720487556165372881979266973224748751809836878070306711418617122027457570693705463881117178623737171031730719181295543419970683102977221719957737031920766202301905872105824891395533184827079990118590656066542564451417135855853480586038598657556971439495894621743106301144174552304484439595810004401011757944292789305838733610696922851805947853542006544478874225393110478303806506457902818548967415301719493622246005720224848539859687759627677259659716167715092983002827781825418299425491230387060054620594615280329860431634458105394038595110222622382113636176060670552801464905211445614967403405012858417168651620820007090574153519845457077987858971496323851783895132769214223120895589690033845057429280390677424078537468022136950424581907703742787374487729430702680617178756479066627520086803648531813740630309518089439662715785334187236686010069455056845767407202758826545125067693864899407981132476643361511782450722486215584997619110975491240690390325209279743663357719215668878070325671471175552809915598595008135100326795820465799204967827445419654575951535511401474130538681130015868310294300477915669737454025449925312592562886353091464435699872657242498925147164752083244891852960169754808721075809861975737273480283921079677731810567275640193198604019126890819726887060100467745570745088501358812503898096547703257197467961983608159906420285257250440357772448944751022044585751256164957562168644159254680870732842942168825213741734077588686230270568790051249868784950088142992771079130396750380081791547325144853392758849067158583432319662898390055901019470294378919499444078388554265168717175732391776780470552348407022649403022161180475960863379487672800774083367349755602945427163103541080640035653455691761553050480015640778812179537033921107496513155687871258194272926676059858765669505007645058712649117411157771900875327290964374216247786212302300253271187660830233716822952539023369174886561659481309930010131400036139528675948661211172313400248279746262341465876265513784525843861068440757039199453282597038475139894973225881688471701951958418156214025151563621652882200748608867540133659700507511200225689699215856978971997351394369220354441061955838596482894505864317125493655334613868799506140609422635061624674145172586150853847727494784932918095021773113767185520273198531728052422862937937120030222642368297739533028209803897554291207590241588263733827582834383810318355651935369371374023640524419495687323418866415067826603766252612563025157485868690353843927174573216303734249323658915950500048541911316726436768274861748858783203244470070375059208482844157584779079600813065126312236578045803629072891743425483809165280797800323581324807388391011875322984584646101204567429430801786993302877574649456589290444875323318883332152593605494645936061865076176406180592990503110758124724913664381788919795052715729527743892976501007756149054927821596238262541854943408776652789469420173067086839819461284388296347966504906734676671406786484844052471703236309477292591917112114776239814910146876117114980920657381855815006236054516633344524674882547107868615910685235295523617840097222782441204279938853784077613814779009120597628411628626067246388181555925170822406952018620018119498264194199215760858696912583766757696119581539042081263906227977492365046960880070915227936369934569017550523464989274377808236433094930571743568675284334540016514914120374308400153983050382882269949857373602311459646878291647606508185866026979514093625152711887215507465440981170059005837033568818265971591890500439617504256787004862577114039404214417299961437359787448324840439674378284875799289296496860176426626363383760083175438143671589157314793491879497392553568268815638473817972694182406815020667600654812830203271238913002112226894813467933497731383237592940470479767533508348656307518860332568432511510663157788702274926923698322204644248486353914101773813562851001037274996068198830506681202336418195020745359875564064745835750978560065970517202196855929916453605460060732585145886588849187345394464501618645677185445905898310611797134078123743435012417644375883970495674247746888120745830060227041433694945540701242253169591410290535416636581315909288333682011930857951912794492936359024342575482065695577343897059445973249536935462301151153077921974610615635938084689100630837017796706386507565772363935398695562645267232620280160732013092505910948830807106642253793276263072543363682840173946174930077962682670741775175342423223565135946699314866658817443906482404198160215292904462104899528254469630397326491040230564026788508155809857708784509777502438495264728090424365181068418458422238850456323466838086739062848231641260670289527709045918238166955342638853582290156997385156371106641096268183660417923450002212253288316644047218925682167759409177540606276257667560169108619645628439544656941892998242529800189490267596691797156060432912871212456251740599784708893199143477423521691864712056742155399665551882571042425304308779463256776635185559106947139430910672868559687727557902393398343956816147008955035600336221136382975778690000721660746042947903520206089622536541398060609723865869232225437959412057825513433078549252794076713169299862195877185346833256223255278243447893336013806599327328139928427737705497002467860643018784140283282215974107479670546036347197992579500340257273253692327918166187892830481430677568386458604428952235043195824210673192105836640984594398068601663126333927928584412316200139534442721018182511077517184873531478316792383413526348457420570169394869574619648596110303499447531922930093372301674035378205811558448279366894423393044781697158000482647177491952412890149288890673162143864147730602001038724958029329571745610552914054094377059251336431079180517717932166484357521015926590894035465086141178424376291901269712531583394570446158779032718729465223483200067865180236854237346819660491989156952859616491253154056395897988072110803221066264989420213258205807510699692018935742066269678602275275574186154867551193466004599446963831801203103469373332206892002301854677862343252165987980466010681265622583696287416624130736849932087095420202378369586708233322117182646391085699562522670593445835174240368185247618648271883504137113146844680424346007397409788555906337057475006742163432112015915580334176496275543876191931104215033946787107288512682458150485550766324581545077610027880089083102499210972987268126462578604178958562275164813602597342380319008697421359764413279567886168886768726071942589942118141021264209284586480638498003808614245711830434175158431368480991234913669456271134020859180081679782469708275771290049776092716006572405997314073547276699806439694553985550205276287724016817485938618637889350351841241042217944677897614258021536469921399922192756034181947270834341418980286192013491591118178371398329172470018538088235965103024784917831589305940275078128151894282622057628622512627942616730455312337642147811435121124689819213472232301283498117077983598113411139690074918887964814607670992211448886390212897696925913447488986192730886916911339744069546617778765972205920015320823544656942635973026856919463860295538119190057994206237777762875958729636960912406204653792948114775009328800972757788636783580696182385206721360678557349344622821272397053008301998490978648533422727745581663123103362700653267590262634928206048587506082080815501119380651015397464104079693101118715437459768071767512508635080417808948510735295098064190684541481160670242229583303037270756529092524109913372910546419963769028488830298617980564214279519009875398543287627622743157458460876642428288958607947992943799362092374348870343765345324248951046498255069802862236938389301172472025970276380388905143181683714774395064442152560975499802268413640220797356211490280166055405734142818475378162605250287224255089571649537958842446588154101343319904907493325166936629618659653463551625413635832229346063618597145868838645232783032261658332744579954262954849266434065159485613776025418424627011876484184469643112896799036296032101005119409791952713392014189044454157702110217777106124037922926257818550984160457876301402294782178874341111019622552585121300886310323083820084425962641612164656478583886243685055501234787757221574879266094077127789472945146362296140305069490164037202861035497261968438143742751133223308197632528340369313301054300373251263515537869475322273814624672872944192020139794502263294140373396858652311805742667423505801550702751377934203881943142668870942518712250559053088306805026431019069545537216967069178268746346686339513302932196955679099728612870160686920085509355871400363974478097160649240934343517522535626485334764028071851276359421224629352767311877891281716215886783901267038693676497889835469494108438751623026536204757551389317691863547756632024327930898957485813358619454183349721986485346640147670669303563584585659453282621296530514391846585408529878833842792827133189838640393370769970653400853231945762413377353952701091326132094369232869187147881277023301568406752042213171410029549483201521664474219618323290733442517246580001738419628440066636193538357174233613675864433407539674350400276195169478353134839473606961468903042373077504604895003380703100221656650469410522293542609348575956235279634770517889779802939384581168612709875816051304883824112998348393656390354050217965042899027028265168592730204598829534215079350448758199094757880056004678203684668828397027410279066028843194211847158522611638475395683946007453208067970049547510955404689331584968985532780408569350435431648365379513349017101454093636275829531297813303285034886834316241961587677119309056646401347762560055204780101612431662986039982551896288320229277845687340633624993271231676257946378201172038069883797327831292620829177216081841264820476590378487918292968095804340937499044366203625024986074342319246622943818509086342431411097706334757801606555524517251731328202446390069498396682339814405989440604601501256769832005374491522646827193672870983414716259505104822270576876174217017463493345087568579771055791603263509108569002627270270829190346751672136666460660979413858651164306502402540633760876306709018711956934917541736849941544090477112392888788390927451419382766851165981476947663180978214064086053005613861946026171875012197265737351033488304488063251895738827374518215548676124220930083692856258197285522250614480158885456770022171165862489397345157062649774925507788099156489088331900196334107320355647955230153266661586112106649894878318729464828592529682218916600559483680473898014760666672630721387335004639945688236423599086660410070577180810067353179448859562919018276766521740135653686514042823154100260911712076688674619430588439306214876786909668814699030881857773485173458156441479046001417387105066328835537339607440539137108195107609575987459399753274251028738913584498338346197498367873313064747202792697488735233285328284304825124526937563752150267404881264501173572852396870457452487292548300170394731848438682951461542320096309070858830719560001423717874285949141001932914829384725462972114105154245050964762723373146809379534917133574896385868719378930937403023542371923743507135851150397799712968176211522916447611053232786763706699775059567833353668593347250683940046329822784936582143378280613042440613011457945012656322347927505158236585549212303880190456765853231342788245877933014508297818374016672089306661758776078454434162013066375889300871944706674650364460385216463497081148710478435398096508190279142519113409806226622763676232454063262850543784916189383272858213737221793342090753429705893034604504316217919482164745351111511958222230224297423847319325052554388374621301248112729175958314906865654684804061360493166006902414194167238214578361688201166477428452915357446467353081218995344291076756771811283871058680937542659409014345327188674367008892699577146741663931960836107967449699956049528042819415557583429158184174803860169771551243106747700615730620311365121329457783105828785667809781114367512931514173339804498306285977608718820070649765020243845008137467646151286070770714951923532888253570127051248058607406091812949367752266710571368166652288882471212853334680417671324895054869079149525203151610709550936346625103191794024306261513178926490792415116350799103413614016256342855744373996136457259596315516602543049060143852435225275213128122849247578754327583449455210855662150984442902275659028632234890513548481465166099737855054828481570541056800033807463226092010218548476167799259967831014126388392442983961293659790491357351181232900898882621828576706284332834662071167966610865089455390196186561115948788572417871525577278399458212009957343463272046004354912684870255054960550604189643719245224512539267447985654316552917545862484291744788055690116512560202043022450098498460126475033787845602678959905548802698658395088048408228290875023588690476712940511941078924522208342451612344805557306990477409333922067781155571053532192954859656065614340234815648808454837224763823430099286561265247346929102914862460499154823715592450448074829416509140751094630059151618140428709888200592697315994465938679112785423013160236488251152662234781189231736931295278803429652420966245003466770958161160015001519188732951848079110052782576022554350148560187271078181484197506801382306479664965505450695515054526564105551511727606151412715974571596361570141043928176141001536364381320593414720531356946588229333821541722913418899828850051658693097975988067820055272362651286321944068009405968241452989487333026048890877207919834461789777048092961769337805371301253786728891918310589582211276952845149679947852074261252226868858856416647640999938476859105112797748012289379274755906419344902216646865078471127324747454202711648907725913715005517248922497678246698851128173864081951266939272611493532754095927697664269605919126565134693064014050990347893242990483621075690174360012243250422051357510883364628891234366943148846137327916132937338717593435508519834554796416951049705450006805332960361758605198841303218189646324001836586596463178543261708892236555621437773142981738503712910578902822375004390650225290812715773162036310595892197540047657545774651232406014677790196295229457158684948727530210127137408776472991469936760628774125101193381649490427798990701969153234638027643008782345354857140855165705513568019364280487041607731580732565221293993722563044979276219177991300630532206642724976600245302841089543669085800905107537490138683343185968373968059071937821381866502395101746059460282081477346490098667322188137175907621837998436151206302797025481387401503566744175891292232092849481397127160838998185184951754563758164924776384105754065513490579099222105213518985150039615382663638620668550632241556497740415829856984582133039845695363198079282690763181412267542020352374544839606083506270423090608262346769343703901465741652187834688037939448737794967350093754751245877589696516232973992283018102252768468472113158068545755010125529504136124283481967696894032422342056765085379196106631011763719174692885252582129536419973484361554037081452033781277789295377612726192708323492642155565525062344765279545770148816760045512018255514932875775676049998571658369509961014141806629163241409060309933271077827084981303739575142968709518959735424670234861666192425815837515361092970569448378065778869383158820838936109818938895393183830751089120679871646700805688986388180262740509185990319748939216519138192187620491530682640617982243435196820130326386512078658358962038266017626701995167181723665175972473917516775114093898360414576150562243840563986271975948079465414988958436142872011531543574119398795378676346631125036053588328014998793907672950812659352797411392537060488750745234825680012222443468065552801550720472869318789712262008309855698914548323022492438470432997353073153958752071346765181738917474136952266305675521400701844565265913809111304159692890044180752688294913556455164039467402009236370336072903332574439344849034634107404183230971472158073780689870033263141853764778576560104042197726674703811690018899657639667075598954644484841600572094021595366706993628629708852859942824430495750908795253406634134814715331901401991153971301262130349798398218706708228588761990324866116298743638789809725430632312583982633172861525456215439937038092746716215976239736916079637318866571599107544370065882236235435159017287707284337768298043479664055315990684486267663502880191055084690828501631424264658703321645887751024265968734753065280537434000507347525047347217139954056585695499596363612921190981540401346942309357044840083178571484905581318694873361223441588700173914069972745661073988610392546140524959085150608776402793696360310974319043261062425111533915603407002571823237722415460410983238064456310225854688641177376055908396362990362034015248007788527951314185040962360285415939222236581711347340552942797136774835698180262021584297952680790981503493942974650405832971577067825058125579985347187659058496079525012804277566744783115172313957156594498857131139576069530042893168390525098658805982791041649010687768297718974053079172689583821489339146744113413403936196351663788757588419899521511876763130719586254121586842207606912465027931850282219676467577274592302004214186528959522490917882941329722779897201518542162218934264524979547680179440959546729486004232270490768506390080789710937885958653879622505550641329958915375878758679791134096857357998219234692784552314211606177169756370847815376412236251344173766791689733666454050464612267853492310364802606481288174893995073777885699228461406720784428984146155636184314768042320388786090489209619645678480902817493178911171272904824856982910029542981288099751348595309448689150652622308730648834448711541436944098309921912819412615601880492068821849342205468471033216430925445675164197324516386011332956868839492194506775673455472626775204893908707919561618023603671469462639256401046078384426652215615832109372907238577864762118761954744444552722244426097361498477253833883472420986096842938869789094227985155689193272963512668490986972564899175063578313639194314555655777028454934483187659534838157916355526166029815741945503546384989359790680384605349372141805083253264277552854641441581571634216689647446984098119460947256425468774516140378874872376221902396461211413167499200397371998979266044629123308732548380989381245233644691725125202551611170795028365684004831972296930441377566819579877989172655804031164682608408093035522997348719301588602423536934535783671453745370043411912307075195094329301226482366945357488874552632873360437070659403635565528111718788173620941762293950513021826810589500425141656248753635898812948812789258356455492169447772598966776071257287654774613384689263944515541593615899839156930002612481270836712602773553027131744111971793146229139368795734776013120664896136419936720455232197942853035119662576248820299758832532271950514668094520139402226541835401295011986855777106904701781549383558402419979889013266811047885688176451260552532199590628911766210862416705401465616741869584574878913712803405248529932810138423396019279902330497340566097815851863142872252675780373887206003338909641536255704905005747487767885571638792902191209181600018027895567044209902418632492327932835313366606029821477280926508806893317842347326290092834275388615656329814263516534404591115674814001471771410107036780339222865449290306633307916691020902602676458379244437612586207243077773627935052138146020125039682814571736199673223297388085902467780783693436346298373994236408561468116592970498212268431244657677234851461688775992224157313580767768151751906210552060384446607492006468963754735333161493956140816741952247449407107900188020137056549748656799914858780203128374245945914482869761367219177010431838391149318617184473236924681573711523261994138249979211627089276796548367569047700660562000961170698472932547125473226688080080530135718918025954623089195778280493685133210105632414263284818619468779513098639935894620702168800416715589071021624893419365201314577707102857160224204431193270225035533239335193100357264971732384983486425243242826382378854798208081082204574363344080209907025512730952200730985551669319872159157694610957705751522568461932500374308764380315577739592414763160031454665231901311973801082513284905207437257254031003258788245801184374373368733061970540498093097913143844570409606108511621490464773273787322181116024235176660746977020222663357430826500603137645543553747854146993055907599675493768542621147779968387285578088131242272484119644458718025565494447829813449156456895527746625812223920117877947712625971878712141293688487073454342654142751899949083185842061941562867724984732918428303899813399686122949939667717387502573127739865746812644978499441503429418671014581520960306689165121273115529887653004325217902037346162684130289340250252345068523782026318324078283191074670817641218717354075952310571280144939550167766900933049352188227651094528314567092855505188329100748911128250951848393285417902966569369955519951020253185059460368365369871053672906995907798632185106800901433611583839483197198206020586225435581163310046236484289708859655055398674353431074523993844151016724422043769266476866936656867758686469678766425590641632352579211204544581165678191132825267429850422977989355964054690586865955128087640619239608825853905363719929659379517100236370373772531337815885569950757399644038417977682568692040885897260084176541731788579888683853489177190931205303220429232562583818810694989830059684876178693761078209848021193309035445015338466413328295759137561850484129820379452774213161161408791845884218249228374095852173696836951345067408115593221725639116593124257890343574985321947794003607616439109749786885111646201868315728333151452255345520968328211637094472125133287616572790190790094549002351639305938396755920453735220068721159617265268597233357876461234543873471823150624671864227248040445369342935392250746953618542155608100082099894366918278874722626011546857006914715672388249295532823397086671023844658622642161633860711267134125464846922189194036351095526250948119725858839884127568528463486450195135354920326344301683300241236683328519330468682947400893306998039432264525260051588134064171920518646547524933877282154049319876389354247303165781312206912663959816208471389515419233221017281623217298604419956711266281122272824523819733900713448985041442146944429915602913641752300467449606536121342464908480882485239771650232833247201560118541158365573967061167226317494991059220852233737488268945188404352346751767013181915149632894376277115590924119678785327902611668870524808720649799600603640578843938922826248236429160720696356880519521470551933772732196995682077697171301842183680707807152526949882168362532444625675348057487496976658235034403774553976826681464970855218024552754313843903962904814027502740198902516074128485524752814267037651369891500707343614383751157376050769864805143996556400002784361004363356529609360339796653323640354354867725398066917873362237016815484063341716425256978156020625872430237201239948751498390228540861635177767654245388483589774336356646337359347406682558489065563377620563745054329727758779460595693335370027735659419055101032986388369448787815025503143243880728648403259867130555774478622283676689937781503820007028533879338211724726813470898010798993780644703675194058188677603843851353394956287226910612219257407405841195908634842260790766180822343617815655538680441585440318229372413203775054794605603533887109912005262874192534237451969220476967803543970800109382960832735569895293818845833012856362482903321832118197102353381724371981547431447952331816178905811338172524352703044943099665218162429919786192655926943054749450134419494413705406172947871740907393919272150075422479716217694160150250347467233409691224201612215303621704968249721404568591744224761078693725327734682923142146787880312240555233712758434516212870234329648325153281700112987420837050485615062991800259145160679560102838130350966857558173838698244543240489465357520807858968442937630195164281358339613691725864631978457173992468233868192855982651740599795939932092415496951763309375876123025859934048621686852887102457039319797526654898712296490437662296216993442676290985648882352106589300380820683615213513668353662839265720721523806563484567432171925748301717692331574233572779347926904477136477971448437835481598936017788331270043007395456729529865179859286867211879986702961444733248950489404925360694453929261861248843039609472678325122596523882910197403429047283477640598186843092884930726739700568774944366117082678401822459915680145706110677090150340332194607018927166279665616865814662316174328565053777157495771669161696293065738434118573886312167605842804040004036203711944194029575880112569307962384451059329150669177669595102247741741230457915635309013574430806950786973198659646380893517449377343400257880896293486566355071509693907097580522690686573934253058105717742253266087660913680127099597155044463749096269315618620414927148891255286747562768045540791298660037393993347620378857489020255447632582529963060737577248231812298517481794858276106853762871719976675495630404914856982420484300373602464557211148387892158358907332262928814630835487283151169748737673297767899000734557492642617260566232274529762879253905406145044545136720520947937529847373675247065145969154210099981581900180352623796915016035587434896696933115072452321711181347368707823567426693680457580279727171014470872259021300589654501755194773779903365108103057791945936640651745035412359733839931894838357881863564159724418125250404335355622706588621314777107336227779765417103513339145683433671440352161715404491790638822963692601608199310574436439810472399711674730229298613516239190968971676407292320341025222254051057885704301810832337004316634034538319090436169132025281696079596289155608134314326311496582414532793399973537700675169104816941085997036106739729265194569692826941437398512192044316710445954970206289864970014469610560632755667098633879630326817418361504432824922112690337980944668221144683091935067168012904386788831442434501222613359991996140630526868937005156092173742551864566437186687492451009287999788140686201370515335388164511344801377004437158774491652833485849523162364970945592333702439487947155777625676188395322488111983592784097756018863799484268058343601102665183729829340189478343229976077333672150973824569677446958921398917533084907031925851560575096491826811283788458031082268149548112264131161657392236535528671386266057758989575792492992428272728261237563772093663831330125342258375279356720196524498107722882943991137417241943912305766046698750456110526663284369109018459083958455022918393408229421967713831920572059382452742841147944462246051908712273672038003424747656298575459982278035219363106232881311530083697078841860213419756333581684125974245651249774412355177277377416711412130805293479250790065007274835583358221835654838507166546236276930321975626160275209253715549593079308891487306307496607538480463238111934452646340846738595440576606725697445406266222719775573611232233683422098394686525224103389934394392272186338734544601701225988068664694839607505995150545881780268784370758646648187487463887630564908607678118057416350650989026964671684965671146336503160418308447816647286728706663504216149923475398792143658270624107296840012133568257760039568839817883275556974071405635154354328808372934900715677468255487869386838342845047230374869187535050069474421217958454622485771176395460880295042423360784053288330359584394955632518249631238893395091550122929966175269234179214556973039371338432427868005518563231497861166547802167030488227751540365966638914629247335840556168136216895554901331758761566095435376200223197491389861241831849808857468822964912051625065263550699064393223139677999671060392347486384608151613263547988804737184387959103318276373775161106715397904543272550684018804368482016625486793550401703912849364615790193310358220524273773531702139244092070865924960759493094724214730739050969072291158131251623456076672757044323977355869844469737880295671701542220878100214287632435443040438394847409987994319511901273707273484559804932482606796497344732159382577708372194740575148658268989529775304878077373893438777931745439810089948659479214346469378563629009420286708803799329190392351862518303314418636769074877785659072710361271524963773786646766227089613133178358759205398654165191485811401967640064026527390273501250026655558673882636883793105198096298526522648762694929930306459440607013845148620849360577717625407967220091805688792660308231105671839690158770702765571338846035578061418100096620346115106630220730946288060233582119474409557524434402359722920005108736905957926719177238966988432760060520987496706944521462294773521243813100567789901475753333295876363257320073836323558495336338367352178812156919841148296873265369739040762387519589921187932122635974674477594061670151253993432117288314115858113466874063659610150625690816244771006655217173040938525803143737935916790665600430390153950197738520813695947401820946111879264194306175238255847574133047271587248489985471500356945213689743879017881015039378997648367293466256775672435561938895686829481007947057037227779334322097933541659204795732625690411410598590654083884761169214434110908414436221121195210085503086736520803309513564753793839084207768613103168079614640401162738767109108397488664087673563314785134418613319557856027503642984338357611158551883566974930780506216913745014219786603863332513934302063890269204053840301706756988904642812657754369706043423852403792163832927822626111583889126565532462034836395191649807573893854659550267818770816412768574468044155123287406823590269822264387109646691826148630840138558850562225634987188814870859371990679926730779497830297701445117647144221683781200860210776637756367444464196548084777970493387532533104292521044534885491348454022654123612246466072453858884221405024678031125131897696968682235738319094810980738954116091176287600640677784836561103294627335100479002425623230455239940898463177027388379881603532522733247908382273327411215324587702509948075474691427426280520320714559672010707185963060624291411374384252127733325198416910239970440313642406871884532401252453850182513470967267732133794302826225528682313992190993329856951002089276626416245247155193930772989030282205636858508229596508395792282172482415125355027427861507539081032253447981120046041789389927139724158046577402583488887688811539220129689849358108763038895114497950209425424349490050316971165487521775479655989569659381266169623036455519618053587130106796896057841413098057509131153488772781880378207454420180473654343415838915078326044073236013346903180175866464366480573850505367037152497184794061122480714185499186729982706663145220424097149812608733613540256976821339603083389205881222361935686028058354330277282402392581482641052934109918896330261352938515758966805126029246786177210624931424015587309870808636686116756416775218603361169255927713837176116351106870152274284051472378279817287683250280747980872615308524183225794329291873188122885952752955417662063889324790488213657520308934913659058032035371999875891040262070116748046757541703514404470037010999024386283366605443463534900357615305096828587262676757481174901795285893008112813194697869221778679139728353299335066228300264515484216414016927414030462951264470890379016111321599339340779510071147345850951808933369558421497789511994127170176815785695929949519645111969285003671285571823750212893447722063708280205127702769055627864341526047272165896976242087670299166653413696395274120253303546008938694228878472572396888289609564509223880710510016353202675581873645231327943475023533346314536824691296852989550167495424327923780416027011724344055519552405284664264195610733701260156787686493471847220957054097877707752996858103866482352216206779231021031019899118422935639156147040111800554670080055591021317223539895284185806177104609099678770053780013125384233772036228813186814462884357630820450501425162544870881543532555192839194446794625989185922694017220485745665738566446526376855202664836353721133502440080216549024313639293425397069987682399859874637293605863471722703444346913876654146831871447741155490292203978509952117629102368248490736949857123238736679357874400655195046295796701713606052221965477809563498221662623024527238068314890762134831101471808917310433003272118168307070044553729421381873178692635032631343837069680686863765909922764252278031852787848698512368808177894946513735698452530300502455221804030607252813012745566395189180036522513445190449411637592646413557977020852265544195776194092245560752862384038625242742755155265036342576811588796147406886628993623562088342330080389705510033267550384572077004701142618619904897999887907983066542683082999569853742436692823127847506024584618626407278928228196727610592537212429178409710614775199330124370419369505120058243740324781211779386870928151125076687972321147101421357698329628417981862803129451669128230243667287103322170004289139923667528155793912929645000226839378380407721473574588192958002906698092300010012575737783987520563056214719869238952518528928707998304684701652722837160636580031409197432278299099008580084760647167335576845310743276143994339970765214245883358774283452047639194943581955649293557332074365796110160851822377734574806406913653449966703298114148911751107331181743039639262711390625247107147206782894221431516656419019467360544636558242440496467248289943272038163146907415393533805205411500695287028212931308676955882056072270810210483922755727944034067275887488317800187559594677071431392530646199107765574694871176791338898229393874830821542682861714120832745329794317070175777380497845556478428368084783258468093236870742996829779675976504815787866620617648834139497121224800241861769962836288797317428308273169909431247671891765433160461438684370187180293614136074208828885126749030070302432813348868136692690299016048864131904553982774991955766330483250887566364003481043370272916658196178073784156021301323966003442679704884819649426704454540340571269968284169967198090231516515150049975287247413220916861150649383756989547494525513340091269153516159885506295431774506301738040865696157379022945013951646815984157038053480382721163239208520395980196250702486384698751242024838735148702501978603851594181021146113951725843359799807244666949602013205848356679171843344379700558268169720517263405635226075279088066590068722297843396110873147268505170049055048412282506028047372318009567448443227750141115348455968202145897203586844034838127860613366040695944007108900902094296221795565920460428328109464833017501107765973565673093852473725177499914161234366912900413552460065608060577049741772254052257023242332929217506250808656566827323458440213179766529699451319747549318022338996988761725352144256817043803606377321040792838820310204974697404244551501808620340119256254658954470059871501531243312244800519132964806471660028779839366946550991447113754341345834101028552371536131260983787939423531573919417445312081870667062564978324394467434511924292101445864108123519138334647840518182761647662358257400952370438446990007213062827197608834628842229595616836012958718770762191287803307841414991729007729832790193427151956006234220963911949924362718382479048775170356341346426228273412943875561680538994128618978466705349907610041885807956016838630083146929314273967224839913669520736918890669028515522664646682544709438382854344170853039661554401867303205789745843570838114863916576570829232173059630796620253523263287674531540418900981552705976777722587359089429545497575040117803523812037326215757456116730919065450626100159091800484158081681561182192910636360989998302169076485046100091978107382996787735897529120124452911614685836161515936671515739027584076500882871728257471821605080444932985597720359239412083675749405649147933241988449811613250546028279869323146852168550301280847666412247929263461966753586536630656956615871347818979175432036626139007357515480554593628477741312600666288839806299502791257263816201024048336218038177312396496924510365965704947279888438353745180358331113709643561093939681078476666755251071739586001211485067917029740747902312096011013325590299235088921366129468059669179146134384131436731085482530831801712449219043612709720000358473889422859505347377286940787177866161559207511812520317131013181309364834977847571835087127158002093570930092313615131681184276304782614895627253862095549583087514419640635810945910226898459868809771914624660130417490830319782236948540935516673846623460506909356840095480137913339190520908305496751575369953911829699066188663878776887898726851219651200856510757568457398902807720033494445614734714699096568078353936562212894451316407359486884242404349673290200324419734344002098643932894298311293799471995121793035049977172848773554532048262795080114538367655742469802214214007156914827037116326546828064110968984102928653263871047927485144352659258221181791616614308565440313783954003352432524348942173710989638043868959401717020080046585876554825800974911889452633971461065007397997999278012238840783457507040328411209592758203902343311368569891533453292246833333545020711093495751952279910488437435058287972568542951703687058339773643271839617817576068852775354011007355677994659782559554100474778334839264274894486128439244621398606537589079514476498863290863014721927911306782563912729226219436325172989370328283440606511715608293507573579145895948991160408987167462111694886914874162289926561539581290936940955759320208493074860170504040340908137215288873205399516478731127269568431419605398080933398766301341072138340783737425624033018055614448901995417949362989716364958569204349253285191570462862860379534517681680302560091088861508064142502377498059822928978501336722393083456019355285404622243622889608483115797872857565236941894282823892794957291659646651220974990601681010410038444786872923572634844937842044754122769823099887705746732080876672015648116179671396474827299832579455002213933521949684175222773301761969371164022352727712456241089528280367292264459325001013742306293246513192381091093902855173200996005624693413127657987302685141586699264675556611356912665249605446084573529682150139382183462710565940607360205650678052257797420923845722137042579345320590378560978692297944947613740961472499797112900487020154787274288043571320437384632832269856910248704296056585203477044805736170139706546641053450171809151963250070059045125643106718116824953573574250902253794839646333514370318240906786895420207746854696350909944819971802557670408482042065901728217913809919578099927038425279925004454324465777404123031096268353612467067139639657933202689296292353089991390531167103666726458699541214039789425380161931592588847083365785017505822915043404749022605344849125430431760173729407208944257358273580011075583961660940798129991612198300512243918038329469132810259066750563717140706186098701582383411692415768195533482315865967947872442424995502765014226996082837375823455653847360288649880573535481320163640673839562740956721257052506654122483442460958061998811824609690069308622573486928117048227325748993637182246583379804612712715265211587098556363391938727888893555908527164251571179313512516867009040524914979301457308472314078722716222646322924201395695201910733833599548263683190338003661540764945077660157658217210583320241426960226035081558082765995567383115286532757423494543464843198855155458775602722544689922115699272979319403562491099167350455215802912068004825120784128723200308224700472027256692165463008568226797676064843563092555110078676669855439540532553972248554263845479213920111859064367388749042423428935892025712478646453861570559213998425179868509795031532016371582389950946527671111658700961256576493185550351911824393080216017148726417592007728499830836126301116541933107714284934040857396102023913335758580930899539059335095940533038384747223149013188813357964496657800652848891074020851304960019585824229016848862791940075849267223288646920641497380485440325023270762977419511815664507326302866026335531168287645734105849588532744465554524245386240029107811270921405004518818284340564576145932665172608232709788054416115269749219597937112286083660226746720362286777210868445861064225328301772349381912986144956335170992268340893681365429342194448568206021180736382631439564923013265328240499826711341251163976244238614109364418333170702997891109893994384045177649593213294049353011038672681335542107330711612635107331799511562164594513368448008019087393528515845348748861098894671075946044857672348019153603232197388729310179018411957407201227745863806014150631228765377850133173225590338039728267783913645187293495513500687416094533940433036279187693629511030830242585642088402696952685516858911656852330824844560986517822189845132040483225098774332760285273131162869083363407225269991949055623295458986325970712848564167394890423363941704394530447028140155236523776661849116017492742784205619707771321451015569276514501567954718393656229647853055061324840534898376203271556206230018210587151009180457666153404439694529868570646985956965683316564908098941369489077928205599211015877998794684695341296539189140110088335540656663391502631906164455705177678593302891800710526071729303671534186380353158312157360055054082149175032378692024496159376090069197894594146729420662295259347984430271526705274031712432724679507214082110829993189985071231614866968821453030090389063631541415848017918523034570627088118254470889129838914055716460787169575840322655417902478690183762301472939743999833651863596329462929803236444255130391365514056554191288742604438551020467213019804656630188427245552560777527563065698426524324044325461323057609587892010724416954129513944754877056148668728414623419019947107730762548951682651801771559071453930280086926082736726992110782842978680875521982217534044195268493460403425532052251797859378539183772496681250499055713464101310006652490831443937080518281764201375046871030359117690105822768863639600976368480486945305931974468007188270915932719651408880841479424394663169211714446843128950214496711985787947516765897832991279802084559970218761820287979258389842255071426695864696122759888757737897340593428738932240227000139449812102351464701095598026295334136932110316568294101283574606769263989883149167020801439150492877976076808088294141782315667171370530257378069679191634230813911981961858090610788644547455720231122106825845007882588350962558913475965184986928082246156801947433346798795585223183759255286912073350823571502538751987319770891656214729258444495382766165284662723845558612184546916432578002102217619442953103342379575493840724933059304953246361800085003028570546142420386788322145479611034643012604196713086205024679815232373641659990754694756662504963138983596132262152404740581097450431295918238645056341793813594391547058561360813700153766343006037535460694943282157874526881648161743984756196496387333993914939689869670045635067187502272518834261778250767817827016460125518750318111009073361803697639587314071415527345079655640360542681877100358188625975651172772417467841373164672131028539614698771863622229523082589363779416141940765220561185224565861469229122385376662757166865801420648521512290772269980099716397863795165792094790245110134229519571568532854885638536687120915208759529691640822473954636971526094196061640357533542810077710296481440537913693345452776605858834611637422315403527934407902040525589444658009992549769593607412329398930857103305416910574628710247726514476682586674054714208617212042839270358312162231671376311998313443889795269949861701271350926116187078328889833819955533368029178964883628138506784984811893319308155599627438254777982525667160698638692247391256202358647591990607569458529022565718435637348117285480930298156107636881622087973576206727303151957241073656028880577728679366100926516578953812118776913366539723547924667159216497554286347117394098941536309823419921880669749550084898291854820963506450757020686062307836319272957870773921118395019930083099044958001718201886968211906637843947951432634111826455247334081997233213979386692643766042325837996299905394785860893007891088600089412455408380656823896492285996142233232685943331919124705359595961434118678124040833279325943662772047505007614635580964977521107629258580850553638711818308605143525708924658120976987869496676882398198933023792575403642007714430372121132629218956044332558976349093786458106381752437505620694168238849019350802909206272298152596132101476690401546608156329486194004634352566869357189092848414992906918299373075087991015727944372185436086447763847205351803204567505266473488824284502587499895997571786424948229117149285119477605953681878536630255003245987291309382051452414391849206897909581551444784319912275898263139242247176433840208596990859245851274617985200810368171912240465091386235333650798493959312082034728631179615985044320541385143932660348632218821864295203998369617478294012503722844660702042807120142436730704969185904170410112545962951691579208358905299789211503078687659533675146502935509806545331833839805810585621973689286041193328913907830722994355512650747553556440676302006042995446390419372387734086853672555786427788970437196235280034500466544312425049168596946027169556141537063137195151453014591145854799635312025990714592537359241253874904068462879508366736871560399815855801839749589235962152495879313642127475091881935411412195321219737534391032701311417399680471850113217453042724053636410080848946166587339077041100186403822104099550639131251442090382142547548179472501614155290923168855924325911973796357185250685187786998778213691248313879227478993244644383616945157887291182324846608703794448851464128730326147348309264014660093924055896448596391799724801956508921011395299159208238536481448007064577527672803655145450381702967051107967795867558909289629757960989247726464079941208880445402385968621422856239169677364517887174639196735259452546451271383516803507424328358747076727115266232208197433867053867222214935756373316072744667722864674731409442411217330070434534913257507347219727732836898359351718409530820423897600672671024881608379375797380200030297608952923091606462102599162396769383117376116657321620000837620162838333884647818410747568025061228975093497753979263480284952060382295050963114046766184376992347881822685044959483337438394874891927158942847765218716576452461630751509118290544841742819211341028525543876093710397015820255701785704296672473674946244712904611793275831606605077299479227490629868926627938974445125775161263725162578126873642956910612941430385766110135685259345836378948476264461912427624130797690285383491904113102230103116256221715883796308138265557754006539114718344725763267552295673980510673315745656631902392554663149187619453447230903230894086431706324000912055768260311814405432336834305144373190118845705293507956339099012377334357529456747270635498420819477871457404650371985813933670262938537524115913328161619440301939564165169736871299578178283963533101876064925469404955851761802386416590961730115920242900313680339286516087030984249552682400669193790066161634256465992399278492651209416090236735187279718427431005760717353383461869905949921015609324456923413161296475768031527488594460957001456586273545752991329687880798941352481555781745127784347718246485392966524975201916312783002916141489607870523632217969034216203866041164113744292935519786475758911183540968672045894924156038169988537419754236477867871219584404578553667324320147937300030978006772516858448064037934441231898024454349869800364142888498395174347447758976794780643622096853601855630335683196977270467144817243360303339126775968975417390733720489966031475345956102882018443345161342394395499387683785215753640150714057214613625473817328067161865194067307092888585824338379934627679997766221790304783734291070466059836512505374972706123781752303726483335166079467344366972723186796099415358271639859589203806668185044512088964002231464861093067606722730379781429959576524180954417002571916455084745899862745501417966301373512774897543047481931502981294994781396400445287309190940098795165955730546158969116467797504187189084415203691496574735719315146599975974769469110726372157251947791516549720645340139933794142654353253358282051754702908823725881995560248787762708464346128282265687546100190448849542238879875785467116548274516922801009018488645652116378736624800152670846541952346795785376272482676784117052362090095959651003945580110612790271813944636667662142412115592886028192834455635979375362414861416354451542936476807435651815501550209716472525805640136294814185781980039686037908660638045621155506135498760206012862771042230855375216476673669528016955103514547895911041688164251939427117405335857382212349331545938737380121810545988174726152996051612757198237547811578390131334107653001876821606826242881527606187803994841691486881965999170527494043569937181378781462940919459689697501825290327897677227296846627136333331595715494196697335407935145933063284864256814858267100591661476905001348304870556389280558021724653968887629875143357786489453565796805929795687073087738256106335650656033417737822521752126729760867588224150408471177892132648581130580810219015198817817663174973048503922648422129650816528647062423135689468122719487817266483033452236948334024680683756217709126893991411259357688748491289366222054678187972819558480448526198436882494019096635771152437110725368444162447385993586668088934858986703479969721052026807404956404226518993298253938717752140671933572622678917518858392987637741184276393312952937316300072508870613685132321223562156951688893145137088050887505088819085146029627779244578154834091476026445285316057716290825094256811093052197904936917914393933825185918151528052014283018588121131678314409974309648351411666217722684720545561385876205024917751650069865058374943105671795680176294760523124750001267881238058677138242812916233800911278636961457366793290588300987652329380361568523933702658706054322333730030791352147709476282548390524280098727564700356016087440947149646406511134569939778520651642514534143015815594701104439462802216547530074772475685918733625832385950762004839160782276066983677672199261463363983883636401252267988098988058085959965066949515629637527954147866234739036187738030753650281809135151549826358710904665980743025052699968098759436366018665039127204812948740826284838834945726401138557313756741596829639256932504563525128330341339960621595653231369697171290019205839492145589458682110386946509867251160553971862621535926793854989905551413836066069299328098723131850404117027831783191898618943655064271851528534520914153577745858055466193547809172224452820437145279967630809250546847212671547375461338559446037504355693385323700968328336918019263823166084522582982999179528292493597036903970284185195695435671467832499683435678458624874326386030603029262941023679006127928410762075086525144801712192547441236138502679869393526901058649512827636699851196043474260898943057222957694820365832173050150263752641796633906596021495441666047626267509823031235818730415977327786255538815845117817425332897949309540501677494193389323337660121090428531981791787580006043215389250435119741488097322193936253247143429394841100041731648441137923731214382402124636285761116641582053494377581770954128442045932543882565577295152525915853967034507233440577362623620689538088301490819877705326455117062211627820618324368419072389677486972884524586867062800336486824548502826228671865649362962039034754093553564739282855539814980028514527454848997205176428653072959386384218365474326961719044655945669149754398793589002615720630251886017589693446538400211794835311781744740878702883790660479262154889592425038873980221228899657887505221781134380424879012763217032402736757285478317019756380880833793940159583456848627141147801521814087661776693014344543339331992206122291008620641291416807594129182205208985833907730201966694772312689542267038885081193643363063522219483451038096846070836016686845021014059859817270980011430084343621510794755997548266049346857013513392539905662515131531916196310244887100860971588700288963748115234419198445248870712976796299991103169902638588482877318941767350238971648192850921946147568771529678357036041457188343128933295722331545074226277694718299633018840922764205618911206723183654384708406388492930724145143716875297710504924241637088403262666082787536897804343593578037951756978452546742711182902089707749479880824278718334849812133392309272874837534832616534931243730791590617115615703299113681112377575581109455478368760999245677203290593343360133893564559871451407418559675949947512933100779473225501910868033519943191851402173491738187668611985523587490110887044067769269873348320461042106047167356851942034791215494934511451045146367340688617728269380784037142481863213055024459014215145357289719119737101047263779287092482587095970796831996481564288901663234823820229681234922160532003581754496425114628746327171824304168563855222957108935827805008746891768768156658971813461977353093712834900078209089773804223914920456461342445391023824209811460142933960968225468189034693708586881851176377455808717791427629974879735619685833924122659547821559897774761918993840618139766340410840777981420191760170220335906265153134979112856731252331954427730496200128931776630783203222920408404812858858667950078882956886477792112537610400471885385470930621293355901084925418033934738503572655775490348149969579023914468543989918221259886438806326300708790191181093734394146951754117133355693119819179204493216815193570043260019310262533895166509144176293050797131965493634131459386102294040687828363341347490164111870741618284124777086871475141660187261843998264234809097602477253599573332471774575014875134429948624741437485579431209663719940383452534664297638966439786907082969141695041186503222759339064893375292381078293514861668548486846625682309948272371605484643708237242933436477960229194000287272010310414834032135142644683557481335400912828687594952961740121551428655647587971447445938077035543616953336768191247641726944565504556149106443330804620724909124157597924537319237060945756467980904051507328341332212269354323875168687071247950163327998993960736424895687219272854044526292758010339842048392781632999290777746943180441978784676947524121834090915135751763329119091311958959790415393317914763514794234351395824000882560160735110216185241343019146523788998922528381195286367950805170971840060607345436629645607216930884440262001867445948540862655452110838260294575993690160760229637953345701282082670673674393039424409504725438876346717251619135439354850721091338632431899181195337305779167603921322446622138244243796240636199608580243024577122818334702790961392945159771787062186161780352034836837709689240375026047901438855691014988704722249537522874387106687483451744596313953335344849607321893638708274796813668628860378403931954048763149556451382134789511346044579334701389587067890325693211526621372963763049192855970104582984246702928847273002530120746813460350071222857737222610777097634246780116559117359319259058071179260207198603172702376313726337634658931607652610671596288144812082354990563296406676348894627920450494836603356303165558846406471200177559840990859663151905730651742730867586210006648676362609096264738850950740739613032235453388814041147511181808548552673443044071893432499161951714244130135173810873479382469673104963496346902980902757903352122730743791896530492983418058586051719373845453456736499181883117330685645415517628903333873685700482894375740875705439504319745896905586943929885705849675740878827612274534696003212023836917673221433087014502512159005294140307502087145385521952252987431750835181660172815187707773673366673333029513823675506262255501845862557337744161360177018506987738641908099438138615486589749437963939169954557168636081161879024282208328597485542387667833987284739524081465972724810878683952796084270951482719897039117445622689087958783666850151929734632915324216278773346463484873081420652432448625639345922692372369087096894773239095352305031458360037577086486623698760658986217282414673800513295358792740441556709261620338002657588366317515112066558279800458038563659531242623825958481434688313193876689058881737788435273413355953703873448760152686149632035856296438741965091324003665602006690368403202892019818058907902832957794869832453610812601518342739159626792938647926621954020340527263361599776590767549660307935757730447596067078725731070026717234039847597039111046584952530176207835695926744490696740620344455589502193523377510061305526539243477292964933204911883551821057527130904810250910672837767661844455563956425396482731386198745473892696839672843731639464178784713241064564830159003113366778174979331503910078141711253330300122493482020524951080708867015884430572353407720491609490995691796453590142052144027417935497026201977131450786084176701793925468031246617329423179910942746286796795147512034792755000413341308940864944301762217367394745573634834132484779029002059235666361386817066281522234888524574497649128922760015740802532621698456852254967659509557879480063243401489339121520197657557112648837600999487720943300372331179119596482217996644243560709325829520589471198741770981034174819521037707208491161694790240665700936145818365137529611586344174112832297324437769817200374314739963435654641721726397948640163023756486883822867722129087470267278331383406768707051286828208084163352508644575863996318727283308135049973684072217366372606459017530720486105984377647862629577697264407667634954043264279839261623988296580162051396967217733906578819387505433045931008263946273477010697490107071930984635689247613421674531010938802796152066609367292686325946028794765296762780155525550145717788621600262781573289834381006386060160019203676520376288356280341170885559296058427851979194667956613703652137459987141135066099265885814018466793699816178370041550285776447465852999151812724907813574483147375490647837546909830145477343003605512081681744039436920036232124705435177623857146863244768840150564354329983004171987215245998195826531775323403151054823729586121352802048225314842062782218574528647086629135088153186568374270268293264595817489920954326961085976264845220001120009240277882400414259059645985433099553094276196569418702927753898746464063703243938674338193392964159943780533721909294718893577928980151301551352378163538879344997330491543897098272192759867638719779098097165168547201348267770517256237945558757074066180008349628018859103481055710004566349173026874262295085249433619182428493500411278205052474470091551241399754311342919268485824510710838873345526140972650094571631748762003914829868078587718081562774494664830021551100388885669854040325727631787418384996805288780865882052068824496006008882780189206693328696008852907533980192816691761296832025118369502186860468036294448336858003480317406558902875848266497808624363772495120885308469640670341390108020800120271457492033627140517425109966733595728872762013977117726548759754778803640135908744579810540799380886197289925570199790253284603828902020227044552512863900133911502400706771643305735080817849512537216410202446510006045284627300523416762316268379075585893901459367391614538924741997687449953227184583442605875623546831391976236824331675529141136620660665216506792669566184375768444621896117124052492689086401581515069624612677365165199483830725612240299887559963591688967522384750451884874541040590912292369930402803334652450661214421747784003495110844402093499940312326822925141118013012082605075750259665662284253680667820256235213472544169900972143451289648224222893728067373224860303508961760608745241082810955632956526092015638846512183521049402739373299033101631443832930853710822497763112052917331244848863576403741857163160288560391301210718399998921137946624332445182624715814641719973911022676894446112447544763717195280548097604877719208359202545364969504612697920399602092465907112446170020450010829363200637959865779212760287091525174742295481238819577228527589950760384607649943151609141992521295173338715687006717144116882622577193157424596827251541084880358995816920035941251240893136391628811995777494570639467745546061073933925952990181542632570302183312854931591937422657991673580265353494662062155708903166878925224578415137307313341001559477538655099456764919510742583838525527759929716715883165625707852508880681871420882903093818799845371062646078481185674154169491711095033014753352430816113431766189950885715247681993209668864749387894263214860234495729001723015968956528987518590960024586966205847276676778700287972336976615572448163790453574039728703179312560003536700699987121824854649783141353376406242920912958884437167518608539387067436376442688298533964528496376562249666576912090844620192795941805182370907108390563413299306887168593777888861505910957935549261360989887261814675383096037327054569829066875279701498182013456271108938653505758779033353857374685286128595852011499669753071239375621937052637004806852317045689414011886120538969048971900887096209425916917966127226844738307936791391859489344889826515392722014619287195994940450227102504477671540183049130069004389911183129376133998877029173817054069575377536029601087585963187403193892015036074318351953075729054083414885910663604485719241731198954567267828647121362207636629012079163116898877516871362147743361620690221881830879317712426433892559772984089720540975485119274536825875519767379146451576319266540406546943814360144798351956592097189096103898709013443811576066325923336429451782093257628687842537729596623750746852867795589862074855203325026363312299946533006317809773637907635301985168662721913900466237381695626559442358960280626625825807930117184709473538976754507848925996449599757889780848551522499109382509979777052372922757957213923947890625075698053497371780376911368092315583088210042189065557160141593029868668931648290578554840600987600019955345844560173075777874689681227103636940198402155136063300673364370632086422021012416311177331594036368694812859908626906942133702931607726160509588890518504402308779053755525892611259112874754346372586377650064836731125071721696869124584582044638708150577959010832092866768331076674207551637818953095596904945368675077479844412276943486835801372197928832856950826436063497036525139873655430323577558425094135456826182545840080439741617879835778589258201486256439055720874129226902921043829422608018502371530956779938231485434095698840023542167070959610706034863850665675652772772536697044965751508385768622592067431975858619839393948049180015861083994620771388626316706823489061395261470447311042408656416503878490392909167466088560027295282692924948682224528136234902187451704379206128246027758132435343631021378484941219287878754132794703847268570087615676540096636997076108243023697368055184640636049490040484830911442859207274659354460749511764103206759036450529876509120112844591980602377641964888774065296123316874035943267236697124061945494383747596517686386126167242875039361639814827549776294604086887556542086298779981052648793813643946334913273649983746582666887590628578377875105005992831075508541932217150680854206691065210704564385755361366802059642312892254176747960892090915304336127266683310590882888645013098718517730129198512034297671064475073609614202922743411285861757665610368033806327201769350806599256196163636273827879403174146641787011008073267926945948381416459083374835350007084502386841312107584009935615534174909085583667952170522843385182804759684681157200271389032559294515454535810858763625077474798137261140751223963822745918390650309155968042254587019789150500723200252752260913522582760275906989370316747515809414424815613238444057429950703859548175870266503098380593778185147163576125114715708947830718296201757740266234523912620103888225207521506823808680541020895401805780019337425819122215392343626575504168375624029557987043772801703228924968588513132938888087732855542280888497973296138527759431156533643831944385844423131734081480387441922272266371822489113885329164304716361554961635896982054048982260818571888995235441720256339611537465819673168699692380037368646040296815314466948634198212668867645783425909071201361911064593710015057951118285707658221431279183795597135739715590284793022971919317422910659835345628345894452267689694376387166567101856177977722989944889741089569791306304338014266687407220021544554187146416534185863852104294070506882556851409835413857135719145828190781102035813433732352211346173551605882445831402440586496495593560279281045374742144735892258205067036733462257257445333040150294120551011617426081798256520934290709113335712134900354300405363229325584149062938783990196740212350207826505987896545206093258298054443644080443762522717918298127632573201960109101533588632195870789298732196276885364796959536959049447077832664929499096492153593878525179553629812446948146685820831214717726007412182877788699352452215962954626965515845446822651747924565677194642076316409370977902030505376737457922597912929460404365340126618855726401742549093878005681321426614144892328686998876922488285790466908703701125545057877297484203122941208287069067646556794815033598516124672888036946079740104692774785233381293219227695761078873184214386543831695501883882804014757219928501149929033905040906763794729786378446718950707693409322862258256748894606462700454526742883886736599442035626143693287280902139931803601432868851125510827781319463951838281966650523430207631908089106384367840426371284404370078183516947784300297853941897224507473842203568497188409937977736460648432826969737698968301075283562622141742931608924371217850236544990700889671333401873234224219484548454056399491335281951327453363579208033334701037432753541503259394125515412189228426189499149038707862519383260387194804663333700997266027139526878675896801381852407825266435870557285014792939055227914578181399946521720940780886313939104296823082722857139670395301079509776041608055994982806225444406568830485080791936442194261327970296200341975831390977962141327326748025216270604167485393240045731756215812764354965409306609932143685084100191121752852917176342027839604149488238697879105112005771071643073872907178069775509150703050657133476357153465422735216666496183673454444090548359978012341256200674747972267814357571190567740755810672277380536058061706574417435526127962733546262296924036170432841854059868387276726528921701669720934497395688460209101912412790835036783104677443913769108070593289628792565415629889745281140119995283903098719620479431319455758563824561151770221420872459195950082339229033877156272878120501142027643698584161585565434353959681710823943899581402667411465719974488034881883430151384650191217741162092421815959754730171253986719209883940977674595054207971234433961268790940981821011128679761360264874190088079338010336236897256262572929780638726905210712619004777077800997174514477269487881741060764715802155719069885734796771791830418605564838210419640680978570156464644171493719349907958400403534978978343950964539220785242661775016749438180413859163345984772166373242760961903687827941336525469772937884125281924602730226676971595348744243494072908486977530595438323683644300297855203390308723847048221917004972112461615561329608014102144411763917939546950790728461110046429397561994719645650181466727613015531329381530852635872426133376255513630726188972364653031137405972668477665825069678461180650055217257903763409683825727485623873208791678113424030674295577047120415014604527299004703799485895974457688373537351170991292173578373880325859903502248035718827676158228162266196873474431142281471698374600271879606237533963930243756800745773658567485234936552473973828052885475466492647120260219839052992324017170760587069695045465921782153197531414170416352872651535298533130229255603744544128131300127943351073870813387014958510314853569417358653004124884614317458307004713903972749771632151459366301007288690259483372239820031871841179555353341737204084226772546008808889870125350649698855804107960153107543514792661777686348967095834834874636411048914599701763021802289195006735436123277579044922542045448658083538619673064196456150982074372726944781242997391820133890065036855457402893780934785178076787123400506845006941633219684677371557095070840697429242400721398156524834696012172031587691576787178340352464029015369492185708451859343885297354158967623841814822058537371100206516484154475357356836857708711437119932738524086773516779015145486968257155371655919661592848631529760114258039076637741291830016323467430734458411553581742874618511121222637490941091295112847121575591466755829019927354399640362034954381390915305997815735477897093875935052279405762813762582656434687536024448129560890445394867589956451416303419006335064737524288235403537334903331096207100389532753020318580013506400480112719472996248380575935105557087285725053870733038676998671906650125015095530945415333539168122300027247629502873843204052883460649344453299580064011338410693617737990304188311320226560823210878150989247985868179005743538135539557263114061643191368557504940862606841562510540994454514653306745986390944880678807612735389979608663027676556895852208876923373651162362686646573403346736463933903960687957576661373756902632052264563181939184052373750249059870112862771542817517879350464470982019602614531807279655662305727142223106843691831409816402900699881359745807669843264872822826444295306570436500783811580383430272758840797696144648265836734053293380451780799162227189919464886708954882590107850430038388824710321852055064497717922951353629929565104719544298165911217358526650311944146097129208130753153660605328096900753028740218836035386211397882016611715861502949502865919027278090998472960036904930738945420585922265313242502996143090296175103117686497068388950288287303494194209666490028080143673785710442147502328385803946665294062167537552460932346854864481736581744916757252419991202191299448214732626846903399779618150139042356422308044210344920525590312149216554355232094234715237973146572524993895900499931234475432994081757644363651917672169955536974001204932162527621386320354116926441352532397857658185610686402898375465890602387407720708744989463636329643012284905197812904053008824940365920935653088085640967468010304876113013466205224442549981273163177005077305087703761467262134172656914827332008425655977089527087458725055764230429334674547075404476304832932227319939559486347861421494247178345646542970594183584965370328062091219907549494832409879036000113627700967894547704142848370692192111803605874473982042786570417671917265758392938030119162954657085081731071757245849303752391256161018035762763224065438899070293531667580667216281619577828355165646952178960188008192655476810856398616179139405925268252336146916793617296463640877106858315532207538314814203313388725324803697776057774649948017965189286702713743587651089792309904873604825362264863916881503430265905268037391976896585324227176510199212433714212343645870786251255088262712096886526981436779333366754376924204815854338024509503819281364113632653810344359773152755722089850995948851789730307737570473295882743505515736082605944688031639983937686486044058428077847297841752525802744378659610750565524962998147923836239860024674919518866457702221936117455447195449994162017436663656624948441252725013905103738684444345396386671044723260004941701894091572072863235043930842816746254761706368617347127802354619190136219874854713094430151707337224692905665319099681367530185924101894397430604521659272838934166213695364297168615947771066609463673806718858351182948642663997103947630600676747472125797096784600164343250122785541868480250079655160463314857869194364087214972410726555455826244475723335294362228456843395425795168229481473217254481194182900524251933821890659140968284803066353108175840140971256633275486091815339718787873821153542479753905385230234933437410062879988415032708044349031917991243056322778225054695097069908817605036281664033022801925500271805924380198680259687049903868489677312586351868606715482860433916141605781883262464813998338183069434697345594116361838304094225593130724128937149646959705743325546774863020840159448811984386201519197930215993286650682714342821051115361440266716337716934799463243102987595548716401186897103577987531457188377483143577845647933732573535239196261693663118842239710767443750821319749718703179570962517755985272471069320250813261409643547159521075309668462562079196366811226923864406350329100295075697165837814953049323723189758987163747712482067484090129706742275706192379236867928913833874207514526308438377801627502686756667477415889261596163104092847523066929935058106889378196077268758808204372696626965586757416967487899423356612865862786450608066219366019774293039268596754784786894145675481351662275840165276095052466924870452645828458829025731176116587240735711839555781508305622291353550394196360841132194072868874993481433845571118490437145399795559633012683725331714994939035093556393293029170857945255378576733026350289103207152811897063827726748792904065388030363244374307278011297508214336538963798319440107877061588334690332719442145011672795541493113619053214715865241996104679743559077019872339097979498873462114532491942137005435891127344077613376728970984302933757033807701905984758213600777980511488717817917203806547644691611944771281975614128025760668322066948406525614367444017852092609905948572497035159460348438459364139301832177195305741838581192695081825550531333194920810625377466882966649368214362103954240555280813776915537917471926695107373689693573385293749359033458786264231883391129777489456148957338036090632999686228048565224809985716926369810613527324744723706178558249038077470462515187503740258125463900942156264188702882322054301423522222790578416300552211538852540086058574034275983795768480488925922073551194931996610595025528931304491318110164998070461134777666545776817973787092512399189856522204012748046916264279465143613618730379659840907571856966580944151831162093482406271325025350899439640816834941052064763157331592295862771906452147767917163133120574677629668524511741887811843374877001678735181809525148020170341513746130493162612375717402320742404552445002362691475237194711037135419899048494825276754698442193476065467558028489223960079192887614334476093575421715593849312705207232024200038122441693750329981402821953204302119273835433346573171223649786524288755840736106353084313222666955644987067636488407214554724750971380822286494824869194008065152458665787682777704580859738451048502359059155389398796429911317296784565003428481767145860337978745667940108992972617053089325118931740534462191410070612503906105362198781134580379289737049246404499815646059883666729719022523311759308531667749009481554500105549585739824175057070466708279678814174540198490280628942743415747694227507753512689733482412208945510110925999046161840865002695546842734053670042201376799521044809078483904216060055865664703018576869383142351489480617981664750508024521706636297390840435322786850550027021474881798919609029993268412414606913360063883700868139774893928979707998476465809343409853258077834856188453108305419902165579795455956109815373848053793782737277593271389468846460197536810749161774936311687031652849425057045052074517642268540841094434668886715610039866432264451171237743942718695380276991300247513403728334714911537807379997357231650039718149010030501575893412623383249464883913833779342336101644176381244640746402567146366672031194649815441921663002747355879084867806515601508311251883934147494481869178006249603233245487049362289207753720309771813055113894546078550376010447466695014495202292537636273057416930506355719606768289420662992191897355598522371930209000910439458787513912528248815941304637601110178538557289502094125312851255313362982647009340447418809889020664444372080399148604552120119814186609362078849235535041925839806826850892305678728934102106657359498671148328833926707303167816177179921809365400649411261032780650817132361576809737659157304868159024933181521870245726710232044458130769067035196034714989592406790821921374485523706995773546835516433579154884087141173035506406029502931909585009615655947778460751914786902282946540319401905503094971962148746222550322202512669499935847485634663923592286919285661771881823015710703945426749460353202285573655527453523486914228428361350320193719903140833742636107780721113434164660791047446842087454814119979445443979968853785838646340705127674782444114046800492054884667261194119577769662284540263806640509766743202322385660983452967449809064673627814231973698026645249565244614964139275890756522334714046814914165967625834095836776415001457159002875261004868682302567053093557247468670665046213146737360101618646668962199224336417011937371113631009399417717049440063372135785118862879804749780323518350259111238070227357041656739346749790226820642995729419909739560735858008306142813647824463179666314508677965778904655782045259865872651407358684889586959140387043060849566472837307721741404937621835538538737528540515200115153708875642348273741327977680496070019966777505517855947486799818245343296123554333515581867804603304633512484865434703858268449886765169840096903497159755049218392724416082381886062978171889506896995221075029894209822017657137078520738454524105996298882697291404991107660239691521602887486211891051190788119704525612629894915665997832768875640312280376764792858175245923535260033034675961501473974260937532515810001008355289648621535491558187991019853410297983682551790270758173168284651440828706797729738355416122564934581031281797169822824817213575500124858013294633149296101503576723995379239995104498560142223838216170774567939418067767392374660817229522513359150601482291469477994964253686466589321192766181456437782377248455784117335121115048689798184205922510535013332266779570242026208972265252002670286039626366127491499544230189940855239876533541723854058906917766151421966231862179449791337243621457266528428667091341579112414884606705046195475227335291537453821064620769875895884570818552989882900321091941422431523628064239089926546689800078716199502207194814472080601667096171996123200044990166500121762415824903960515485135223019900159947839968373810297855853402179398036191591235801846938860686368343750445472269792306762486488651220816343747076496931142126011278760139851936704529761713162714458434255396221972808719951488455688711159585243049380821964000741862831269350129772264823115746232848513618868837240583375631564396011797012073825910187689049283479163241811770323563785173968245302844247178555895807753650601479925634933745493384964416428673148870666245123741611785914958934114704018755537798253344029798909794048914127678185879398467868263468093547223611705957493399133076802583036012314531651525039020884230365872820960440954814054712150503151799467281645832827970741152677916354766870355807020340040996412972203604293297863433502730258800291166505582842865188178517759990601731611012451931660831907043068188928169713897825849548562703325695771341951795990548454367897204104858713045182412543464697549176918891786017284257559189180586951901960955066284817025606317018946798792687985613820927214955771711248271251685459789064443549796774373033582924329710667581274110175973570173101299450538932639628341349101410118372863010300238834744324255711118613244934154330757854181797379062843241048662828679802402682977285534279797914331277583760835971236050518062431805430382968722789714149367302042275025744017347079971041103487611297848503627524386938165671275422361926073110812083821531195586460448048765376239278754768638356511874607928514272920088795302590432265519293656636241775827876464208499692039233867421532008573763889621963988629474368003520850655686604761761234166464219351645793336342466199108004164022081340619598924194205178012867956381021474094523991783369208985432320575644275464383378939996215236171099387443266164769995022163469087384334315597854083214699944334220723968075353123425149754977454851950584462253025336317745616247514623743786266583245555980894727166046842348569317787994469828717239557564192699502295292059217305121723563702713923467914000730904547524430143180576109215302444085958768114895476044483095456090936801181339720094074367466716019248394295959266815876674793750008575574525425245464395027604573698464817631831891131487037536893060917144884906404924816439728651669413983251688981471758595585864239490268430491098849065208851505354055240846577361065842900953372558862484333365258163523228166067889821828615054391881180411718720703402429224386268160461182849856144231578545587497208108543347479504609660151818583416503341532231569966342948976618947096074359249189661606770428026895305609536645307654451787252080459076813175845979213660215564683064651187702298900343969878556174145770867589661429565694813701284364309367233949487102573637548970085341693518463016308441625828490143514684847779812494490196596564252531770389145296085443615365670566326789496496217713904367299652419728501970390843310240608857192132062528977299720517170405698891319705346505515488745698434600461412827658961103331136668208894111193148227099877617210958379288947573841873180276947247257042446170029975878607884485566398438973792960325559480899320810801019626184266900183136951928268769392930747974692939508409181973544486016235491019869354430578019631638662070426323151888271275851603454058917372640603551609963342443078697598463258651098168523465021212185441320831176682590908211603124306813277216472457150197105589741138060110099936627997326210661969926680449387733422920658819373028333712387584616863452485852063454387233395061246938655956424283994273368680126084644827673304888901765661656619388485016932161369767543116778558544617137601153002877994060019491711266780963567504853105036769192479608379378942963994845094868653875378265563427708740420985321977689900904271793694540567999052007478051420490425339423481869848759079021249439383316409045068724972545971159272459926607510117442280637413167010633754792854701994007466501877619457999267471861084969846075683699822538009879902019828403223445482319309831026842098147518557824265433073550020193560285653783410488021977306202452971043980227902148098807891725290566401751758543363524612297602863056798597005328807427245631731890902618235096000147158684720478727880160333160592990659618543985334772585490487943337696487242137218240351685110255419912765885641313144491603737213832528015065926705464727583585608131463650718435949642892254793510929368162142529344119070185968608221203778162631363118609596142018946957418097142619614923936036018941816774005915407734152574228300678626915496381353096655875893555244456796285381985817078459324688016408431085278625603115281619620225248861749516188215396388585492424460276509168056161809585089420090587199270372622078292987754266733601150940707033511554486888563325087509642356972949900986494095690711223868087918142425026868147705249954852209093860468137730275725050817200850328523440228491236016597852655379150471720540963043839593339004466112605736031561867207220659827433434941161753181694227123793073680159760313844909200381262942110988614100586185816126802769740651068833423289606635475848105285158877017027448808424055079828793891890764955790701602351136370354393501409330939916636793035633589724440772629173322618623865784458621605656683876451208947195774847903178362381555129692282559560919246788232345408710269358078426322702033687379798815144417905564039491339197839322372577115687846633682704752085640281976662032081608210234489220225573611508143463344301664675557136007917538393801162948832990564943826610444986766208133632713107061038202392414675828508629246802324391303582529531718702777462054113921715432855159437073397540995375021901930234395360750893475100523840464474067553001764710786405811610565268119733850260305716588577806610099781205126846833793871456087950708443831849049117784980506519546632093060639732131365430132698332153436676601947095769076993468404914709562029549289450053529174658285285999403351582719824654895633297361909287505973756895683288937097431836322067670990333025738927767065333914288924386980542032111834601422130123556742117213645088278658525815875457391412280194215767140811084886744990100235865998677714534083996709337484876623794597728333531671563891559369064046329233600137759104521634022181460316136376389949027353215076558794337654882563472687922090772092136476670327523964366042322994620923969743369513853965678246304605990165703759358527380074348901279460012092953224962414196615570742690498616850782318789086026441266580295970695800105836484144153583287492040856236272392425169665389354382295544055920137936646481037831279249759878477054710099968917273391966801481055466786307545201236170824787957778620564212049411055484918776928876374780152337945945057057788203835223456813130642191987230218221449714612306796001182953619993726005089440366541162215856703975350037936215703383541604250341874332208161832854919848816324862276951101567851201014615461655118694021771873169408237515971522406334276121109128940840183160917397535554270783816299895211525106746657100874187454670449105494422709863948287123000500650608630681147463529155149418011508821784811555895374837519322908656235633527053508711429831848786684266121501048853060043548327113960979651188404919336816517298822755081559614203783452734628423484919339603460708511503466041428516892930925606595584347970822127426256854504889014641095566846056794866258552759296414067013444195498500514979598537072092318743416054333327636606307094000823610067563432327808426155512868106933208743270546042407186121621609396189502235594941416914726452291837915177211239372425663361777735047046733456795613729627786268284341046429239962988610524381973379317512267154944434280940445811371025349359481988149288031468339562112367612149667180237821155041910074033099669264031593212264135295287076071294771435981854721800578760291908508931175454749854248932799628268844543460343631418234303381817992163589959874840718997640276092945364283902033295868832577504595389409176222204864429472987264627270373503850201255976076712804068731599666194666129941937742354324543283411477277642589344260012055749394486387008079202330582797442395806735599886330756002502500398139508759242584329112189328714286366140033630695807359089408380874459804268281105772678623569724884734134742490376931375189214589614257333118731556627384632784827479007008651377530377875989407710330195564229486394156258711116283499104345009320691439066028874949154420027458798030040413888597621214868083699921598587398065468292129256590575445698558613112462809638652912383844210266742781015230218739644358616979866964576925475056071042304414904298486101178087980853938508463667560365420996321623316758709531252633116603154535186921228217994690139591530078009599904600471951586466527207442016747786171326193308319533727248738920765741227301389796780181993275472010979467712496624097441531158967297196498481008536217163672048598458864637396683969620149869547701520849286938608982969989831474901896018276342487986638874750321141634254945654891294458597716574551018361024170091577872419508888153349286344706693282898864555508827800027886882544223450197575631081153400679736172918850970379491236683601376615502474094355502164778330438885999015091860264766784895968047812094243821401894483985583350865046678015361431206015396985214775571979118465929480924195431865221142366933303528680461044005679413040164179912237462839258253204953267395596026351603878170297430674407630389405938526605953026968245838671276976145690121894994280185787529040398504547456662539199527874144287964809395657811287919203982938729953055317492863741455263092305172630340210437755631202644031933965222006150840950964175412686359852517154224432939379331787885002554203429966503076854083622846650071919637083347560072128557655214604393600524144235363711002667002887702062175003588694632710409050337240294792228590390627969818639826985596232278846353068688624714378159906739879882865901461842131846812618176981740375385291196473622054450862646254606797044193494493825385586860894670439699311594836127680069387293862806495853437617810138466810804637956816173588383195450015731083446174451625109192796824594127234432129608383618436844645670243605789375371739863360136201328456063057774795267489693669737691602658676956449759850842657647958865286279743041583352024655657514924781114188210986360066567396164216637764070320575667705323342162639326815222574670016509267228456496511623101958947610903615543793171082873088845596347903171552748948115294541272884541903803437800497811074708606235231459369093407643565783975917229638937435337561256544345468286826771811865003651635880748884313844105260194764254841654632093387567942867238070938471258954178958347364331868963612484644874021320141215038133548336258340935558639620135952737273010609987351087084512439371413211726684573097641185138830992272466072232582755015419423316161469189921376458653853326204509481634845392326667290183457796591370109702602344612296372520736937488500779355450367044284977111627882203705926840257633551258167476076050673209617297009195084323758032022964611028777187831000267003954486498707676088635497082975543635768164212425341825972643065437922887347665708371157799929284221415036606018797099541086601035562883846130863713711086362838132998862978652481028544855255569239313814805663296792782210790023478841362798105623949526361074237990392186378843739947467928665551678411144212041581083373526365655039919708044899283614223510898802676362030046640098648912782153650627954674129484537914359501520566378207775042799214981059571997286365705810923678699640662674753242664258491127369614030650000916619732999830117402085207919802236036492346088779131535683935283121737929699815449210448279460537927825711439978310120558831452262173157427400231392566160583856376232207785178257624453861553217183227271897371472913743294470742231635327295560707740568369149441578971126236215823586708608494788325191017737910822444547069355702273272995029714000566396253953087408088528053233269464037323114297776751967478832729010438639847613934689800056217745039272301172567433402077519629799059692718726999366972948488676701536966481582860352988056340017339216466576866096207243699639293325400184944435455019286742354725321582153817015507244171577129707984583968842485121254841967533286207274886817393921348368612028668550330437612476141228522615893930200758555253313863190489057634424193630487324426491978322201895479761653919101360727126589179756736017938553271650067579450262697558085525201017955207091929088054542308440944544323143370710796433026841026684349334448564013959150953911467615543042277755321308818123205426601172136239096714951220486005383815797720200709871165340593147876392614090048732387956689365452625916009253699602953818337599817454048492759669629486429040061400954328834485605042518405928931201197661499451160996583668371706675272012073726183893478584941623240512147848904429408035976028794653093715688264278763335637077940641824579570175751654323873650282900552491630649690449851112829545759607332239840994547099233498262168374590279977697044722499180179228982398294561193757330404252163931940634248420578932751569711939478427601703937672873485351554355316616020149223099671142107620429005622442941513584558358805616890588824785192538408764649598140028928069975777557288770655822547768024806584280544751748893669882105805622912557918651698894208546072699064130539529087078712398871755450174819061330731347508170723994900309052988920402396752397914525637910235255834947782474686921784412183660664980129274106335155600400017459908754512452278698200973322040961487092737084321376566531761805894054950485611049221297562304612434676170483415696705770820255620067351468284441700055105193889579677494130431675114961731439692457738372807147286388009615273448082037049908970469138812544234635092122690016997098921086303801413743387079128993894574847123940391396959613586865366522564933068975076233533134499918192379244799553982306101113854227087900952741395539071504824422350625223225952298856356686418761337678168512490349789903877761961030111379468317488189457166309223929668579835347044563383951506650242547492019638912408695730968616589551924227156293530999579100892194587403983520506482582634100186532958189969614466807223848205380055071036161098641386061619053150694081529493163752720235632009387293042030184899906036097953918877496926754667605589456428749251839749213634478807087078103691637873925670178637791669287376319230212660266106782019189813488481428366096126893644524427775978739605179789657819972286775046855202505295281589866808707304210044912096079568854125224897823916280943286441474718027329876031619710688779348714385234388570208738767251305871371130772176306970453049988651359223828692700463452670898470344628166160209968294035123395279450392782199800046676370927369757833524673366139924787344656000289987906019877343273297465776575408045579643697261330083976599915231603336725720403004526126827377272959665002685972753206467567447102583262661595059006827033276758741632131096991333295900996047074779459401715992486553231277065600096960025504651533879208629084140971614421932790103491383066643506033906250446672158309017238663868278742538515796891491861278386116214288067817481273609943668697509703022617595401768224589637993274190204737152981383466359225039312116613826165148095833241722970867865818834520699574602520856579671926886252077420273588177915704008249608458767872020538197694208071175077143360755031694369332784869329470942479334977580762107557231051412836427271904966279738960952508886601183101080659075817779374817327178153664627013939434662467036528321969169505873898736612198411842762708571851828505844074679327146475714095711343333618413702957145581607789206920704879968512106945677761344223148123644226399660232938650335819736558530965177565566223044369066653360723367935884069061071565072457052699420487362399192133976569759644761227476103413652757636043078226321713728166961373743383518577763841726857736585974954207907715297608482733420815757661024628305668147890406388663154221120008946526914349868302401958349920815215249068817815401729488325157610071259292576376166354470245322039877211401920012426709935412764527660676857118639658978932084877133974299740473747148126928507350373707563453301366473159867671741674613328008661434032906994167649109885995538798583781412385670964774961775026252315396166453883947990971227698036969182286106883572934353553843893631758926565477728498035361544371671900842441427906337738104666697641520169156169228995109019117972283446852299784156233748317241286747403405089960424863760577501997449826294486319449972899608676533841370942698061288114295326922346598115756850156005504113094717690831325543956614859760075073736651644870413669059571194606824962854336853918585244418567586809397817450549771105857803723708545525289495844569684620507288008606109523730332717922057303060640142044047621609169841334721924144892096233898563660785266176630337651086598272573826907605382296479547334000505614909685156345468157946896598162462377915880465323332676684043669560895273740406948709918613899564053802693469249922833215242880142508150787799074010980170725834079788738640186624887412719494637002129271633835899828521487351267185369017507425270145149342809282932049082292241402706456068751288963928306159732992621551191984489015029280659149747424168412138116956582862323656575517035925553718105927610489337549733574801157879034033917259805030203161446898373911327208626257646605744948187292688530872867930779264041006276354263857213287780322197973840718511939840557423876650300893150194802826738480693041943155250957952585314322746701189719412151489179081977942445218657748662793110827540102899441041941154462708308249333668936847069784239383891379247888133027300308331272049440166025612213083478147132239085086258924250337246131063592799990004144982052338215061007164292642476553399805211391472785281504203186748343945689365535795498356822939541062094602507768042821808853069972277717787864241752607912458395224711192745672409864744435491220228649643687134100087491902335816045024605099358122176700815316743564082055934170188958996243538815896219642976368046332493749108215007800815987393451078697388450188030562180825496784925287946745079103007633956120108506769107792484493466958389984837559704038658122820124150681272872140064813352692092101560971429988241252960879410579246540293489695885698683730356418530847074510782268275448802615077839899535995801440458370114692056967232898912271266208278510615553369937614013829701534149364031559557927579921452883983477528633826324672147594380710916493530217740411319339479540902249494387241748290475166908777349077820173483844462140812591343705533354631392582485771707043597467869794122884518235410669701680796303208374554829331391883119964182921520011630032723000372061300321182785867669184314115814628119298153808709297952417010989686186727556764021805529052619514116401278304587940204643401036587374670888387071879332841493499979831482885790442071364481553001964596886022138945503330991433695895400211227015839462828296373497726652570641709070307847303608511232499494708562547726590535184524881749766920233112310132618272640331146768962456809062145612194257436245724311002088441330910096777269256113344825943923581738800358814968610207178234579683772032889429942673563317967151273304754869821325267354225529439981411935312253740169132842897031695025425388226090062032830563012117369463800571276958715448584597589275325296273105926732246495230903487292218847226522356244762860773042619261510890724574782156663100645158437531165788223831694759600251371393769338772382396540288994637021216059037202234400988369766474246445261934226329875692718482004603288637900949201589384016745332993655592131283306055553819147604157661795251327504815060421673250297152331138845089915560218045530067403065929817897419224471996006518158516662446302383029389854867528911619531352261070830742004939215172730297862244422799435622165143057128384831193688388157391316081395931511064653519947572267073226988865029042039245484371596304998066520754086417147622414384776427928577527489576583972881087709003275287286692892335077230399276589156013483013827242760021084840795865272007579455132630031569770661931779033316446461093424373241928162403759928647760114395597714913044395160624746748495142791571041726350163069959950338252189863620356115172094115323915703762767544824440022340610978747943112892405248104575605326838081960497367640870770752499426961542058020653703374412483965636511769590219451086506383216420545812259089722819007364511963754081890819325462825856968568872248701831603549987511082104485120138843189092561787675586482243221352303196338842370167722697125378414605138876451581790950107871093948760701006011886178098772164232527623098594280955524972282928196079632501540366428714168230931059134399790390097019712334923733259910940191072254662011409371223772097009272659655685567435651402202941794759955588379083938276106445119569679255491076556114101705213746039235413952434744688532179702254860727883450354760612564743726766058482473296222004954589603565470701056625459190498126156116877786184855574649405034419314789019519640777027545067122398858587908920734044185682334524288211592314574014040547621586205673372900185451586247045702290853879775570501532485615982006044950580910815621320647145635290619032861536178357572609729013663992955194004418979447520013669802164862129135457207376578693204004988684240578702883601357443562556515301121951445122304883631105676397253492131066409885471937598944468077492287124581205635311869840148757467141831804867628213534412936328230122988844305155466800531592659094681519255148487082721736094260767462199154287585891374799214128923738835139383251747970423598857410790330374848271068698298754937740338884189940159465662239254640734623032543593651647733534020866227196020135380837807582355130304033352708754424240282984384255889543306872826761910721112270042489268130126809303046670386700093657789974188904723003879102382248205499125453519521918520628548324529920551865715512652288515139752277675073312498751582957172997298674345266234744555404658759166789936232461608321605640177470162425026979242375213648786641650947189724671473597603413303198734727502497647925046712154406495253425311079245331318341341504202026122025429260555569005551305258214992853157103875907074040028240727774891765758694894469790497146426131011950711781659117570436876049056133834595770469243485667105984791215793204834897663255862217741255702500447333017007540085661494815465707920594904311892708178966330272995283017988160347668324272418822514303623414485650365489505927948668969373860227453305470478016711768746276154438006993569006305568830078509056896637153197717547359745142130475851907255212688155982261349745055865581385070762421583302523171804102369343781325265320384598202109857086915146273674253157098630322462730004501826368583521944139216398990401301583283770111874310726362712419107445085923002791243049054344375596217916847486878953675791586808276187821439192510320674943739233673629227352634418991378055225834450417434800763648424103169734907891491555310157542275960217476258209285523432125513732240903993622655705816983692962631778921206514621655689605239792620153999950956817097725337751349948122464094979800919182038358695429737717720346287459396890323563126174333817818647691733951792881893193738677260992454227634765917806679137116838467684217452398019463533812405546053347099790559133038623945609172184418872897868397841526751315293608234016502130700322930147638597183538041035098591656807325767411186267807910621114037380335892314088434012641117439317771792234162363667437931521667816747743454359564367990171941502667921374625757736485410583428167018499989172862656094058639683285409772774199500668540673504874875822616158319519784378713581259708021417583413885183544382656440500191003672907030283088504693367163842949516342223500131828720225386440860155232420691251058764208862156583845369618005532124280205135180542739854971417364078499591654083737690192610800958437150133730277514721824215020858545041908093194060935438642598082172515146003021062850878926600179860101332575623562742065420687173601001633885518135975205219345154714637448184172372875024531500665512650672179070256405650803649956334570342655176189099269397008565735186709623515866698922934681079611611090040602844216449696617957570641380043109848729446811661679904369413293291522848275913430427308639759572634365044555073340023913094422107966881454666677702745885629791423548287769575710516808129264084143830078134432082366277628123043245929918810372675850107791090443769214194152234143300750513453180894187144017975220433998771985754267239201815179001633780416826344383258719768260716027508766226505087320996754382080001755734282492119458025290652094031228357980566126203372145825789860485326904413678159667297415152609920761474205021057494105348819814489404174342775633140348444923605585251643408883727805392914385903313565347899638664730468334770959394384120539025810251703079393940703440072024102298778977380777760280906887778538966679487765891515561874335730576049650314792821567839575063105250072641511709245451906746838385829745865955116475827154839523684375120717181415696463151195046790415415588364983662125633145994672656687641699597911135577727238009187585035704888562787233870273359757837238643485978969348644603918665990877518506071932612429083076904029261199865389689842835291386208474019923261707273825834226758698982678259679447959958512166304137374796061512458892381336558073454157148281209849141981502864987529904783049270320581413697936275974251366806865106077845336563209568832083433045074341959353001379877891404604458327177256039637969221999352893053469729870754870114141786298601265583294683541693138243295881965673843380654732466321610581069938038963837138703595251402651669486754354405132784106106021609430405570083126241161874423214502012899224104828272665695875281111779634827501334780464269541220018651371529055962181185374869237286973639366625879168179267436402459240618596424341722488314857017162442265154099396012380457649053705873017202139221007363595278914913661815970358441427358689719201934851613291547941409903600535155516060341104217300474481436200683262809789210586170682407391297191404977027056953501811012551175871991493986150564326959209583595228243267645644717647440955612622888835171887849635440442875331853421964606349459682992343129898615181505032361233455494519599464377115347703842507971216679231265962915584012188642743732511281790122260729091006209582093667225177317524794723200150719066491603006881600042494521077109003064662313561455233774926784879607928025656025740649584531477228384546584033459165529721594674509141457929969887026697433646730570808178601947904935948198284940917267101585241463305919662635320638695285386891671338960719640824646024764656238915544083135635421628965548694076841656859768031029264359409048121051545894418930054504527561814224125939230079368474453100113463188110981023834639367519036786190220615954312044255362728448242535084739927540625958293169913195171593749678844574264771691863293675625197086013239457804698920888381753608782623126990915239867815579327382290658954029818290181147781041137522293467795247218690293603023094980862130470570198524643318453705662127852659330329406356057722197700794330741618422912853033875557772436115274324242940167158789061969234829890446519457362989171464591783587414972681479628958761225055241234125185704282873835913921717881260561989910798987840878109360329969402262017659327011579707904127933794628510731244975287492178060393952350320568281024930993733578706360728375234558813253035600977986160310665814812606899368788848736336475159903140815288463494834762695578616652510177084756250020963172136637402107516600757933808815914694400227178519761663500446959383204977771693418800580345862652455230600603768973490950872898320331004750444069450688443599228310822810857844343473524944035977803017068316570601646650752539007148821549249338490047366342134166415288040243803674785530576411129681171808868604731329471776018806939686337747406538787065982443227838582637612495727417256128055288131162163668089771034517323789217628889858771476159441025070699640701793642417680068785549966133315078310172380231993752878928832889566894436615335418308482479699596299864622816475717482636370000738863451607122953162671902436801241830663570151658432762843062701979185143335901874297521944775796726535077873529422286633636918834840334084682457977715370831567102567324987350444316762433764692735517145787775914560306194730565397176768455981994920611721686749920488632183990409835062208324240882059608949321741628853440249839458323489622275608585687884961850763198218285948806164747611176787589529739371591429858958930119790000449390870014828670847007650337844158165921239086821602449002255414999344671937744142033576224708634130515118974591997305282306675299162856475220829618807506146353498581796283612941593881776333533472146705145377390566179642111221803437820528599520247692540453773447088291315520017017277013077171227880314006146739508351426276160791038913594811931853842131857903840404224473369247675622495920175410179798689962326764334972927944243472548867587708757049158426279205004158173414655594189428103996039483143223173694323819219014990067078887415623506664076113098637555868507629437966680101025375341933531540058700918645154806090818304085088442944650060568193697229345067492071995449274858788651674775266322409945065397359768532420909951996325895654248469498751251858720205326974400239327779058171162770291005630908123232697727752786358278464045022430223155439142759708547048441989986995759830648812159638292484117473783659187320262752787942024465147388126257634828184915719857350947501947265347647910288388771905872993337078599962210483871730046083734120101885462512134218147415826044477413765948564762868014288876017748568795302144714755080931051623582699120719001696777992732420746006892088537371156173036214527354607298240121968592071126798765069423273312849565388589570050430823838528856721902433197664833568467972099167399486212633351922560161376780275671074329943455406945032093813909476430879939783983949141128597113688294676966116637765889686814306244351307625346181810638157873883585188638531964868320848069812146949297777770078839769389377608033238035935839493697114420312126769259324177542216931581252061244837294302776267520588946619883688572417615093800296778048708572585448828809694280913068267838902984769016935672389697510830567999946997260961545842050105607195779783282142093029210742644168958813976509175827627108440449625369533744296129840492736690666546481032814128313839427090914370475454308366558949393015432316645403129212327279154964028215815358291025021369012801229655455890569553670215873941089974577492494376887026574996742881479209771882617685367684972343912898629756277020777497658187748441326723288527403128101879468298480139651464849001293942537209508542150644056879511544981057422319717204554701905665135887774159539136022917478754515564587134616286596765523031859126273001234062103755591056932308654220837515963661021510352447201969542135307919248997909822131692059498973486186847748954264061208018808997439220089981091571095294544248276061443693449107530759520074727412610374853131141732097165998149151048437780945551481553209406674102167585656230327390724687401394560517973688340425433703280939202484871407759916404110887347645546922431904378013163692669382152811464926271759532180468668299191242982899961537417556832219306026359604120494210215538981834424747267870476261172833672666649515958377451524249353303744844505110764145461103248831640592633960532609855832615834737131701401247503064709717024698366815175623372302572184139110898853128402710967416270887552191770239646350407375663247512022923176791370563498767474371712948423869972542602476195629888787102886624966123695542888353842495011575354191362389874458434081397337599457491498202750421320301238075091934333500850802212349380984986488100456988456582185598669194115436874825077424817784486982280179494454263992745203152488854702470885534344767808695458862741511052677576425163572338755492123161933632438047141697122212655377392264087303511770854096750515068748064793428336384267951736130090185731658872726618540896748147098682876254631654548504723029283712791700464553830088480202988992252235015539439330810062066127435467003284271737811546600087477483656788593790649327397744858264373755272865963452342553378297062086302661468881203982007902827373620769559274351028284847352495150042183445655178396420633412005758327797726191593542641380719353844147227239161605855044349182126901989837051897234859693882929377281446248729204944332993032870649212398998048599756782042850138085473132646517045095173020454321729292599242555415468325057494885379973277209474973399379521334213679225808919849069018085796408395674814282755566237994348364031748784539535466235404307478120868395532905822844250514095068898923668533569203565044301805239615023080709252094601823981707185340731966946838284771768694736201698916622457067933128582394371056472429849145710103092799190280072683102017731255436535148028365122523342123771964764006901172026545474324147207267128241094451892077846893619625759602204931888620467190516105476785900552829562051288743015479006614317172967458380057156982546915024136833796302909508704966046759302741867298026676061829627309529176405947920058552313567202783123224952353364302792267875463047282814017039651486100426467120908575786675084533589525551447235690009387533139641202905678796972044575232820373706057099403023177728282779573968854430681948438964847528306521407546789923419094001203780600855784604612403815563532917789394372592250767528392396158832988717883482511362920416652280733971114352876753482127263743876548958093541462637021753460918940156932063019957672154474529631359803729373196403081202052922042947999104981091221326511983569857374371834889533430081123083517226498509300535128549876770350329959290919378449284313516185580328355009745019882288162437685840893871099270989390632007812802996100650320708394166194999563275565355286764011105074784634736394227213582512344695035895755598029096959974394897143481521598440133590232470857641908582038710607269726840389933754422060593984102898073851603542537383206182235102085174588117284796377091216168720765242905024864563825502939483971220518666742303053529309057522707081696390766782631332349652015891967345897584827484406347641084896931460605978857274252816967374490207019630139318173122802099419647041928461179972992873542880864243544775573285971464969860918227121226065450568467112794001710881851809299190377154589494124045438955841887690278473235193494668250931792453703918932017652879883655131769068831028106527940599986380248518055598747393188170958898506134060450597211621283332767028839567194179788009847677917107152412500603656788818631732610747416084400769572803325551022245770517558114422179615181138338084190911464453980815560043291384291573334946585116858509447421734498132444307758118052962661370652210271393721606456134187636459191640443617863228172594762075337498802980892258632072223797407180016430041809628087309496422335771389560900406670903203393514580209582988698432709219340228404708807287779983257533876726178839261948352516825006420913472567651855195981920432714199327346690401404364103799487813582204566838241138415928500231310135855991752074433008754444448969674216795144769163342627935922997048083696177207410213580812861294148499763755617330538089545895302164187133471452210216926124366698807081283128779318507332053411945734354774155613613946354420183314023557927908115473040267616593085940278059925372306681827706373983574779457158010518019413814953864438652713282020982350666458380803112717243237480989192132914634200583141637603353067067708060582103737137498126771493378412502199096701107351641159273681597471043318542104737588392514399625993457460107289726828803739619632017148513309410956660008809113632049541296662542619801924401899765675506297919163587667498480507517632851642790562571620644513234404186635286738632712287596795449070834776856696833691244928945474008859433454316695728455843067519745114907613417401258775038775421326909701036442866564682841100211351894456991976721941462914994061920077449826036315927054784389490581772113402120330270088456895806525638143743586622737460017433125487397273887429997844106324391481869754046235927892551829948564348077350136411241753993023067655368154037429234833279839739724476416177198652513779580709140369078875100930410197913774040695078087655410204976997812971633057960843230844627618070535309603834816692066036824010139844255592558473219056082295140139501683852246223963608004701992663418164200510587137797674148694476776247320113587138304967387874718120897657424088394301002274859095822841904782378716316068765460709803154235421877986438424486104699489151938717868406352116651334413661585378016320332429246743518045556933422790004736519179940150628675094264900408210675624463628619821040363754209523629035593243053304435079252659287863448935250431451633411112094935030718467508063405949923423623912511203511120511541320048230302353209930558961331865044134652108410627993271581173034158188237997591772962791691724291261740075393714505925292316354322303877877541898739353722879814554377708129694636490924188335268620456587989961662707855618417525000678307132684442471504513896742535103651702104516636887128445744870987047086092159939913578282230534781923428194381219886179337247067037737696452209260209144150302382377541092005996188767007391959603199948173448800548901429459104596008508318494976276155304580762084329296400477858131182824531904919349750274084297223975796324496955733946539631571881301682099044074819955577190081327305855951981677288064363674788420171150790020932078400178239546282162321775528338404442500925087816596996550191500290090261880682178561975878354598797421915565723930595300381400144727607886884511672952793424539157022171663297398524017981014085726344959036937952987810662214752925619261100324418729103801633621707671226461662924378114928195475836049380861293913222773776219662465973305372004070655887527503435613065682335079657511013662572054388819091009471606739566883494392960486023636747186173324113130119789341981509332034686514981923921709016820528976347693806511542348399852220184672763244534875970680909933494691468950911443778189324290043738662737065854143547086360778957103974769857442498211915447598243910041260905571457991824966028225592703106656458265857748439740857073366988545559946053556131280565512264632995416419543919909126022264358508122943929745410870352187194989671011180630979820879756891096817630085174056771140180525420198498720977438816303148435885311250728156989948992921968843283027999266856299282818608170194909267246609976532924843327315510660272391449567503795027304009619325851602378725125594621849322497397980952918682708658675564331025410191525700150128375607993133877409164824467386054111991978515647736846182529184804924567922556041188147593388399251900650559654417110555732576142221743991335409049263456084651934251888789093551002767585697734382765927817981529859984053434166947299722142093045891092384012995050023070134704018900621663382240788392382710227462770567689610268251457742566907402923842333529004371633394932470235975683933443103690857589929603181596870486806182073505655286463984347813898663829713303895804347429910889166691212878048588392616214881326115181541617583673591315162564265728001398119176867313384154026594560298197829278392370557854479380609878734577347324007775236377891849592667929174858807569824039069142554448494810697062537015914672780209067413264794757848340523157269813490726832335264622250927083957116282194904879058658642001378456496162835110345732255975248927868180198979373477839448029571113500552268476316383704941688560768929658821780367178596170078068411511313111517809724022937956747383355002593071194990807192447750894668675481962049132553660023728012444635743978072367030623005424715380921750665160296166052653814264126102339753343913576084369351615459603720254570251523096089690307918860448589748911323377189667397664531106557595594260240383416671969236813800534856166118564381018309065493364629215375547620743382591030634764676634778575871172046105459595575019364872147413950689683852209752158115365848122392085612108934704687519925031533442729703197320936642185389827894357810669658086728502122444610690265251310925336161254682372003209222230836986008777183578387246467866100268039500211538605909719022556991687367084112234221304432934159037913934748979305114820605620019219606161187976006302760141138602109958493047545593768334058954987216948209812710450725147439080178843110189610506753025864133743282938687650451575436044747800169337469497274399416367449787265026602501044998397078750472858611307262782769126015142049047187676825714911770167968354466081809416323077343295160309676251029684782213873025248195681501767749172962945107532939496061483770231783724760351392381156656835887053869130180222774741419358697720355734387020033698886765182143065346946398886200498673899108977249907721265525191940275791936704920631582486824992040726646743402711089825517549307212619928224437810511098829613806194792498901150418026617041231039263388862264294607069166657901171615629154953560862753785917163649692606948130428794216979269868539280856183242333514158278149892301454291984259406989461708331458189963469928813844441332901491910581610813045073257919765237630945379418212488076308764852857830369826674612308460147448889823230068303785659071634690182722222547451542592849082811365509493299030394267277318684504308948507983898367434415556803389310599885368913454058029427807639904445395040572483407163493326955334230107565952355842030048812552663430837384920174506099935805732891088617616086822737459034157038686974763211398905839338624882892907494632878344529229261854071086696298443712531729729021673370168469688558632264778234913291908595849878986461627267367723571066193546474951943643052685621973454488385628487223107122689779841680993427214982606545686586555835660685335677783906309748889069062059686130183644440535595588530044685359967270357184345877019411815908890461923972458555623514336304418207221631307081258460337078130702463333786509835514537470740893320122958436894616997867169059539855412087716567446265013095339876008952049946041941042238802556867082016691042139939727977329191863946949960540584459559546757695857574792974204148913558227946031187367975547456414329652468762571275772111511511640403253248702837313293979047874893482517093021526741928571532584717249668232803784272008846673625518720405403463908214063083128091845864616140089633467921629904228010997219966688038463726638922341780242361096272507941812611500388033804054407067469853576686830629007436724327948033583829130059678470960745449092614679403706055625574487012711529664673948527676705422872700290741712616175608959679531526436473835005172411403885616424584273835706155916979128147060315836231538705761613724236486364759294000826194326935643326556205351210641250869738941202969006614203759206201516553014673489587408009113087277955262352113746204974626648962542704475117461901361343706906901532823576628418596932311114129007232969943469547551226986775667151011191293006102591730319569251171113465221286712221555631116817710372689414839581097868467304531425039164342743396591703321312203079150094988899923341500015822399168477796139179964696209527057883925898808325865193862668093097573181140643925866619342989583422327163222410572928522097042657859656332506459380128265087872637160296602035554332216602344415860454527545614247299377255749091490933622739409298514921563885421797000328693264015536602465982410427966234020945494963941139412170317241364721334384713119061505641218582133071278519170646622128370607884165252692076701027139333000352527319855439630639340296905049959316689804032896209779631787233664579773107355599602335420205175841010724041809136288919029458474184737787921768469680074275343384834434977889554208318852707175851789310124796993663338172861484385469605770442042571831458424285046716014514552285229645595512908483963590602148047101511234254533233555826170744789689290452750966980545611049150570612685052466288475877788812346885252775243221029451672170179269934120258129904518651305376955995567144826137290531838858660112733469124313739467613168617110032192590482342791094274753053525192295597090754597998855019880364733524394161694365075269910086751178834562289134342553527468896823446925414625087615292534664740757111872856577406547499726161917455699485303029268610615444505142621258713351944843038605311719534598177270287300143204473805606591220562520820207864007726942227342952712659829560015253515630747152076334127967143354396879420515228192741332583101400687593448812783874047808829389861057528556279700461037452432551921160477918332174805167892158436291814953505524088378634903662919913330307810665561410873377267742758452664708380480206856063306031255186552824080013185620892744113411237293453156729908137812260107492785730361309437854819757061818527224060958308003038101173081324392011400560762356569718334740864902257010414272422702834145389996064349529844466263642888815850923431937580048140322695436189543330866646161226820429725056893492593494032682195180751604550386912238290102557777349988779486120746973156627213043395780947300034763000580658329315550531647568549684001456148241810690937422634404995368879900411345300097098175427433232378004309391969425080624360111058397948705228907157455296231759565620123829833405899095591889530798612744546643651356649218689974933671258588887985403540064056718358779398087398170046537617846925245752395592219759617003675122037382025636148982608589581389648701470437946885032403020108177514957217414806531559303153276205876049492793552079184988026663594605528443819718914889993938569311689749176290823497077747466268408923781260314474372964423770327297630324363261233444833074123935938153560607399200802382494974788764677270075037942946389352020398583180692005095676021420656186123719143238829321500424424104347924378547691680012666187517634796833034633198350508886274400267416134311284356493189366634884152785825770539536712520516867664057232372605123314271154915374836950705672508443123167539727487855531066028034091599324018676424911313333889095349672298979137480733988545569014549795465048401169177715379770683044001784236883865698463699268727277679056302589215216535570405065573348071562197950668549786155106184550377464896461520180529615294591286464448806180244359779370155588718396897855153701121085479582961750260939591213600992468362764842786006091532156004321074807922673828035576478585678011884877342653830292868550697448464702107869834534423314848305860648595951757073303855163687291124861513559355750190288921759585700556885274229195758687225023778961141511385065510057986149306662250706219865608377105713948839629144894543107749908101192651286019950613844824982562734142091370150546838197705466204195343128361433182393282669150469585429709087753315269576031529545444055349441594449024841663790491309400610213679035330109498568873681581092103101871266083190589903422741398222287873633781847409497797837956650004964885571430209829568926325894701523840824336678306460888655019854285537130742895140217986872181709980091718949017697045022946754667959869970680035954323367965179697344560045075171701604889272428269579984463478442611778732247939714459991665114063521441157763675519703859411406315480641432945368626471184028810341511666142144166175848990748504835217892483146053678089923379766896733866592741467969098706355164142866077511123002568575005119427229430713312865497583312938202508439997024434346639936399440406218186476421168709501433368869209729660892390994348401811959285293334870045104360473962557267404710612506100337150881510205629838144477395606498130811868443169739351494274508099380269061928912310759060806471717577542067763440516318298489660822017708442566763443818163562241412364463169504511149967544754345453161527637587590169457643985623984950592087787799492950577466406903418097190789024969038527442802038335089781575161711731349026356135362852088242494666192370884670308494443369424853258235678913485858260362283636872903971047998229373797858935915193582901819146328900797098019565912082006233085407358713361201795095715005026908528307458605651552426767722436635637331122965844892270379887682933986890335337935802152785081412150286525157733425726230547123440618407393572909588641393079004097038994014107548170144506672795877547922213381603090599626202039034754319446806981976712024655150260680413925168853750383791798833425582430114190833584720732518917313028537620713366820958966888440673620444184212785536648245401411122162577028399620726474720193092510112779989979789138943666405158647539914770166442542038298190881392182718228013999233580750767616405861749350446391360335261207047627355871818565608460405960565746672041205191328298251737503458160911810547138250665533290064798615565977729128271342178292554886851154399837038632955073294228286415042946873146143672301444388829821533966885560372449017425838776407261662229454727851156909245063894009636684302106287705869135650317780745841888019068019963552477594094258161919140715430565951072945588143845132126356341064369987937774038819922576821068922403681221662022855486878838488205928968193413581389993768550807170468712430518854687438149091532529240245110981415041108575569207306799615809696729623643271021672626747451323470146483797832622906507164203931943014910434752434075593603100423330076182599648464778153094534893281291611075395804564257613284470204052600185830768199788583732154193699772408843113821945682211580798240782841707793077224845577737948734259451773609203589309815309986731754188094590643939225080315224896904956017520222692480946226893284608664648802114556174351060327332019621129599181596011188618894056002475625131356597915772137063620299458183052848297058164374300603495736617248324548888572432255833445741690906344308270051795300490489219318063059120931157807858713000392456524603298146304963438993623386469202843535551558261189114108593687154119344470773153928752319714770299424197119580673591967694667274103183350576378244964431523305178128674604737525620910023499153917168174063334472796540511505201072627806573326568835458432090925644616351734073780135462039750684371858117542026952174463765593554544420710923733126848501266457898272685050934306839712880528833109867052677179009842216161142803255916805498461656962453725787897856365442948747843426316200123309682517854461819166843532712418889036424234345140060063189346514359023445138908354123141487371876221242940115271418546284921789583742346410272110935244473282908856981903883124247565999289888044973972642036761372237424882836371484772058115451027274479571584026209651419012874705001223283545329050068311642980201584774720142807413429622870410618607580050779784849963253507223794541790201409354662343610187110413605939623706035322839191564662586517232927284806772466748232324855324361847451399167714368106221584260864074390279153092664451480990005925333770837059374450424727443845922670022292133755577579675010177156338944227045266446886608120711293886415544705063929077057607377023667888219672704766985408133958216210446950058494661616468071363363841880843078010662491522281490509785974812914319370116073940792483652808880774058410864039367633168910994981822491750076692568790824699576639979029297205140784880898955405540379933158093554305538112676408955524576774646026255737007394641727036582427817273712170887775626298460597779891881433129086958330764112398920872704634780555370636873125907005928527773185250897453569747121509139069229629827070435214771635586572558836963249301803445886390700523981516952638445583252068031767308180914396214192812539739439259809113426977101081148922497858038818781302248940783807584924631515447801636160356900254772146696236006926695867055042978166947321955061798575530104594213593915328822791576702570877386764932892579202229633460146358668286721012728608257016553450841192081140467196840580343633602385916977740327305382764218890062515565263917292392253181728571365797060492866079405361750226434249726980788939001694293518348236011016145434945776667893022166906885783962113379666338118237772740844863057412458188516901902770441602348257115257356733994595253128873683745815946741557917526550503740256423373878649490055027309615381218209968744042679430885766300595285775521438088303274063121438298944508087640543310620548475972022657018084988664291476405273631108118461636949652466329287624342180763145800520957494237441715344543173999867979964399185528694351322559667318155739086042374916987063467747335688167283418081693538888758802898827261963934803133493298477714252596030979053592143669068095662607979803999852792637880767153953254594871657064381325542565348380364962333663300415315939754076187330207232366212862699270921845870496906045571826303631777955374626913376624692197198214002419767936458745054624234011361328825830278342231076581281552622336609189232783890963921217430298919448905234009797027788841384038697395179319874474146534177006015373800451533923708361109716237463547393404254860046107327986217100689322545782040752154012660347335857954012379922798909152566323190193829953817963081196759632385899084631849687570497790680370537342782930547729368957626765494823787255023960161823746224931032133043689844161204544943549399144384882925520242752744757732218633421867642743458421173211507824970430734310823233296586490879861877175602927081913401944692536874765292262686122043394593223789516593473114006502706796940330617473344139137718459727141965363124156988987750103597724245961391617627609097601784264180200721508284322588550975959097910554790870478159642286322166968550004867598094866106849463413156333758525900492583380832685186374319290494222502894160748765138702984176857835740098853066068122697196847657987363544010481458120909674861426780895691001609176242844787649016804583954833068652527385994464704065332691725090624227091036284514415210736131758109798555796972292114276991896037797291162007123364486296950417278993467165676987517835397646520024341233537636443409634289668959045062706076718888250370689936934587371154057744187934382443591998146609064919921541114244653023086593944768195099069084327840437065711811731047125355965871316761572823527395676184485741112312436662308812299114106353966346097649687016487325313417608080767870007075479786573857826099619737839447851022366774471028955158598536629719490290175335496304326643530594392674863961899261651314354394918309230879340963961547761609070432025296322927016455982109978037660866326408623544145778144401371064743614933476645658961118059837183558924376861295431376935592740542048570140657289088185917688936770285692981211400024013404340087917446170899107288813052499739813279573784522902907293338807655990566033177184259697849458506140756323543122849582752984293281942753004806551476969887744680507811080515502456677951428642634787130205318402731722544771165218828761484712289066405649589411227179613163278907663333889863461347777451486650411148498026322335115689597575661479553613219209432145967660494310536441639250518637823499853030689535685044161289597458224893576675061208163967034237043862447524713526589978342121034710542822758511082667453822567274362326840866701750345728233352031272225477843959381195085495417356266896749954010220428851142691970712262549411960510597790829580139741834407802774678560308844691394384271980769328057816913100722995132918239532869079864813921675257941271312180811770843118693761883860174151513301050123668785670805864190523135383576753651315578680288208007564153625485553550552033094614605146947926409621999378009456349821238582183868778673606034056031237432497265596821063643445528297342134278831822296460911388296706280566283107930693957217493296784834770140450255271182050283902642421119897776219806874583842716243905793557636471579143172947510319627918933172807919697179516986942266692073481246420622789559684812346502017079736375468848425062462896182927150021039059646500842158029092068697769582857060375942378174526059725741872891636477236011988413760513016621408750898476987843232626071615283569781279236488805168004783827867427439168313374053964590169604132691697268751361549869181845632689490427359181732021518309315368018805874877284813637436047724463378712321741707574930425064707731352247435360603813404798346114390482379710311215370287238835643820820740382894151664765322165715647325447466450766801715055946976676943039723768133404866606881722063349599362766004670617461173555691829703290036916373885674557057261441447211594315817415248452195517508841501193392961480908344332976018814448422294447489565741498967431108211708522401186854106518351597769745712907200813163651471473304673664989802802215652988076684397911604185140750683602665362156371360836483628524940313911798694952857240221300646499121988846688150524451273366896933594233201652977239492391496745417386148217267547716724971945999024374974475329012017410690686266618088746231923369204686579219138385967941250420896373138440355141543919309220541518840452070597583377744290681024196425451023732943031551889767056439888280067597360161123756566379330530671168348965855983678479215334016418350653768333093677898171903059543944161673492298942823738139380823818951037489599908233747207931728595338768816938906616005718346644793816386529529158452076722049055118743737924462312825571264029791654183226020372038298937734929804227641623712228271050983964757956229955738179681400125769000062555574570488333556721674226261800470042653782677702840792768884946470902666325144987591913261530968352110645295362732526820381575064708885842163028194876775999778817071765647426959681353081595361474839884644226193862856043808795483522629674104584300498466501848291512209851212091533228013245046086582667987361962671815770411504365845944593613604126745666840526489072686922880709167399359929985804060573543277090485131957412026625292958281895557478573457355821183280253471611523182923849952121677412399757865139677663928781411301832726979697941377150234025928788511679261515677422370498508237373400334180650021806110046763292690586663090794294952821014459898708296991837193243652562153966795637415768130025407922205857173166675998919678634789112354258865538600462019480661242360626222839978245560893326359962247187620543206397164410206742374462184301871897331500731422080993148242483855561109430904770866062848912256212238903749756692238359086130311952385444458135772188941621149843802514670502000510889158901167906724300219204518176508495874348170579609271876509233666431549117046996952875405061244026068765721354151625315157034887622940839620832936830119059229561019582761892925264672784511451746538378376361285440498483461428363074249639220265393837543109908310471940028263460771151460701627774590558424813132509837307354213945814000574898470375653720605423747003067999505414908892480563835337112193909953610188693039645559697605748079708858210896599820387408203379530299826303087917463442403648543846253818080699387238017146503990554278492359349719935902889669792081919302703045735746275492356426913813586063244223974459256885340107404993693027211685605928407807121247726705472585944334177918245462176522256989175709975880094640618547829176232971322892217284344005743460262240937966830960651559583335318138153471420437114766104385413598498822251793712825921610874785238290330243857406740837167037494568902098168064360926080663904188327164411837020877559828745529577864759724765703979448548516508729860202215530275000556569941185507110054821480858863682168856968205008177801629921276281863767049603684592242486561761013000951466562839407251867363262748498559683740840655353970712556749351664304716452544231105909841075787780746692782752773443170129320457882779908046991376773804026007604223985685404891213951758919951612011096528920337481944662683848776538406615358797421790877990621330125419545393814769559237896689528149647400222915313052093731741779786346276939703031284616522867253282226628103195053034832131665540886874943414017305896353534694940493705048052315554190097226361958576215793914438815611652269413312703721800674239745973710935434795759551862908610789422712024345409958705984603910619016618768551318779305828885470253488543527705696500005797245712794007862334813638248935479643484572905637797546845341842164382268573772949907532696122971326676905755758943083429266030409308860414370936428303457922382458100536926425149558721988104403130706049837211337509227125922813986632413138378292778478044909401144798933152349112827381534987943806845150345267778468655875165655662864586527472475431803518159185571254893009293898959198905840492147654963789805803638046188381811933604891382197006639213062921305798982184758924653061553971963952124415615705686961699059060186283930517434594753126771080322080118958786420119189246997008024181988608156458791315823412787142051273720655969519973296294662597576930858596426182725435073367634397588013755446051343494778679699343585736836686469921172044966409033029339818174645171773774656767254944679500829619755358760998920865649325180183708714508535745236444636479637139077270038315964711288184491642909047107066320240179168509571146608268545317954273485939939377678478930276806146314154334258272771180961707032895403780279831944790952967837285473116826471877794910358338581733020188635131412534021701511204112392532266461017563711546806642543191173094901428442206935769044911895257653490026032045984884788839940163064838448719067517645648484465185242815114424943103318799385069966489195640927319315938197565201347464624773649614207963104312700049249732286920744691441920399620109837857769602097193900085509184794035003808744013620853604783344291748400877533750574366270509750259988023551393567225329574439260655934962318101076241104565291302274184545288615103241185761144557471267694545475244111328659130064920446595788368122055755272888223592126469105054601313485576265843714300277673426184647661322710003824969978811633821566654377296033943659554795092451959651172246966505185028133285409944921314543478300836618081598810221753764166026937487550221592602409597077263836935229195730982831537761752391227693808785048823939262767715713225202670400379909016142014370332597652217301378609518556171129277974428980706537728215021558868025938447798760309119372861080782557472664805552488257088633360409736160450415125246486866678397503991181462809893285889102459908449311685690735286675122331777073826410722797993189607158639504457535277825187703724945244067986511902231168174716515110909142263342674772835479786736101602252528123576515276367226178695464799770959470104691368846104487150089600994579281526237238748323004498862574725560988557438431770493901026562585559601467312035984994574011999871445399447547492559184586977885821198618558085857240076448571630750925423128145721035602096307083982702331421102363639888885217499457180244264554502005199663679682659646582640798228242049961421575473285835643905221057612259035144976677917847742024351418132847972960259951021274891502191069234880250415920792329616207690823874026528369384394158492821792009612170756963923688161043511599018868549995412370269556825778269416388318742087341953182239331219307514389646710079423206320646574409677306209437070816039973668120775824808441667349004092487061991706889951679957169265550229774789711868457644095180267293010703309190453173155237640631088792577400789174013276134470943748942722878696071288485644532462611786660249004861998443685687076555939286827511965896904597600499102084466259379187443902045621295054132196261743582795646515090616998140058122982317919027058234873674863835523611460197451356015131446853039895085369518380686223311187149878990036834668321081187951853040921670585094064998327317583979814733120931629012958147366801271606014696629220152657378857727064354658004312557599955020216759355283942136745166722455424919281933893475984806691268675410019812964452009318919863914795322855860632851593281593434679252887611408665564114114091651669745019634839061200871731182246613267788189077829094711812484690627760353068601205173408575067282737322901507131324379846118601035898024401757570092161717977804093709514989984120846016148017150303238443642825954152953409120876917422467412624635315285163460317849178753269499752844535607947077101439337334318817195322060615909396301879507715926945341271612889180616105731435593250807754532204633976123187970816607480477537160337101080232984622701508548857537848960811208799986725629871271361108860050042285914038120318591047381150999639739912800404637396946506403055255736332090156632855125648565150995701328462310894151010222517321217901085168619136853559233838184739675169109483855773198142352200323018506264825669549018266959747776771693658475979677928544843607427567902607479211397784619888737690012801801753797358906929509512343175104304572653030657836646653420536654867283440698101470305159771362718855083940042445865205716665408786017227620345483545825749284458202682256047972021018772356698901659358938136693296617117701102792497858398257576474538161479979544070769739481489713969045497717610151878353392491026610483438531360797125390922838616278419925399393907109587328379972802046021736784451506448318246931522367498014424949273589516038678907481737582782396141754090901586165856168544866766642676383296758945864886881818864586916058847489661514701333487508064279505647105687064955650952432529504455950141420236260621036999336208181627863739127442817742790080314802809692810686412221823680423774382019106737013152227407658711057292165600477064359717560178794389189851073478814901858365964349297470632057064083201037637421184441004268481934265029732243781168181528153268151531163072506702312351687966817251537503902757034230582085365991439000463502481099326592433692328688085959915753646137191047374443616832739819827674601131821357876022716905333176288053272601908459502768193778504063410379172681848532199229774901850726042293573110726716534826167752851673955018339474853694743569476405285946304369201642618524617712831509579102444596698841164643374164948766467859411588715687746802476717735059737046756982075603576989677864698369907676816839242131646513751987173231099704292958945129697634350018833155501030291650008264031137950532283377546181432102192609924562977924426799839705385011525909651605075740133326056793992187555118750306189516543022620933961822796553006908038168548834414879129152685993504174423033280737129032157766796799573357563552059615410020459556144183735336594218034020073791774425998082912229056973534151089968811682754863391233105599098165847896939249818295318524450106576624734651890588781254493297726991576006879710150396509443446045936104623151463896759377102856623749665972908587845061255370975014484762313858780217498949342980518228660318396456972728608171813887521853086988686055315320487709748653048333555951014789261324834167682406457791559503144671608429194819847707473111077147756544415056316875828788425875989546277337478192793361694413280171957730269499342561590481393413043289921783839259463596786094581298277266534452374540359685854911319517312964375686136932760389628777394139116913748446026455973195807751246222416512033898922363342438998617705873713049794613276915116356900282355708618376427571972035779684917441815942553128995365380068157835377607598603876452762415055028803001020418807522144835762198433086749678499223518797701373508166811448816376736281296562110807103569116637482620393614995068025098379945272545560697650800699327216296055064451511722578235839400944663893127809852100490429354047852271170519927811695788090152452930420342194072785935422607372280016528697247899452543181713402030731094634006021349737690194216189047050191160559175620995167581300784891346454721339557855961009086505552429019723959756896995218242283044914284008087165835953514337401094362566678166766506350883194804387800499089302098576711554020438989412553480909842381039844244396185450238738110819323774115470887414701502506272980971756336496757702535887259721357392085006675590678923084792866192257689412897510017280380099603618777449318197363400052929863263585027181338566821124713151037919601667412082983980539273372057849729645093974953899663362743467919687692752868471005222914239785844607784298947340077182425232653373506898311312681671383400694122986302035344686285322469792869641671822181265844385127672188072856064052798446022193075206012013662290141577669397949806926482368186896495951524024706559780872474587064942261363725885560062205243509324872514396029371561041279876495599818003300309169655409575560515134024475318001597116563134034753471452683696412276978273153442277680131791177146233008425508630890940375291380656327906978869277461754384515163560039793096862819849070076315844419566709385945897531322138460304900408317074582181087145368184839449876780531865456115476957648300798279716796601629217560991923935250351218344872382582249940766644171343825522428170564312038093875709038863446838550684229678106831869532196748745434265039837880247680657086760921317948155779042602806735341285742362724630205663344421094612886501150270436958572273314416228207280810708491599832428282695595058707795489740151029567541744207281799234041156450250215686654998039476195616811081695710853576152568294039722361389416628706690687959720477610443003517444220717820804449994768922601206787626469126046273691237031452262503008883988224440064944692291768623579859886125454511160956964047082137489415189563974959986567145194177033856055811579971480176284876265466767413082941494988436367803231311165072554482352543330127550811445872715174777864082750865903789304840594109003769818455176024228570884137820496596455640448214717505289561054590876624388565189001832141717591684183380169336304662963438442043219664753367593273042978908854149195709583199213103239107234026497888401097215466718705761621720691138591526227345697034367804393740091961125069966469615169365696001988403675268943883590076426609663508128766113151177125176556792439526865141391340977629404902958339355013143862948150104445926568834252250738746168537025482639618649668604396140268385337944606948537763370063184922833913369725400029287481883562327613256392187125289298218895692488955812121600174168034147266862512676192784975965639905434881431107245896028588367422759610445807462580924947943115022375638389691562194663398844426054410500946713141352138338375452922383485467074724716455642478588488724474087942542300984313607206789347488082064834688477853347979380864705783942188747761605171910572682431367255709889522556986680032129970391948502025237658753907737714035638323637189352369533082177672865496750124689125702172100024558845669790276220417330306653791785736709556118835908154721794929872137675220250564036123286278468104655161530898707381555444747644992173715360136448885518580692147648407156721921041929176406222820357786663215217096543978335234184350812972533524220951324197049920288543250130651951636677761190920693974276280648473445737546114985606362154608050794139931608180534266422064729925115071674561999706867904338453241103009689505011064175008413940456402312674455734057443305635561971700603517819603741057199091565680187779689248249904890323745841933952448855050107725678500629215118472777814689950918753735652312282461925396282659196542151835665304208007057525604822991624323081839237437706846088808316406372442410180211684293953831158905591582153578706332700295844026059312715755602559423999692189479065637528117439640473407392988788783938395371269498648215999487902800271744129758374505271529167611407392304976829969147092474945929197637288559536123017498685503239352111526762075533967426878788583646815588983331593509883759640124944864459939965944323687371140001967855206348765063846665840815898599703217538728575869440150484804629090334872932881236716391139399749632599816077919114837650067080242521956228817110714032687721080215094346774846757754450215200805094292262153404129182351134378993186635810292757234051390760352349583714230807455818787761616385822737672149558414993491286814557878797276872431587835563126725395652235659650088194175509505997104877896923767136206278086302750928788194624038180571524314669968679967382672799293604273118176904158723236897744415823067596333576371828741426855503127333596749356437126338305620929350130167912223900775130914111295769133397185889670320760941634303006708432425283093483898696284778466694613778693874509302103971959385714081245958156186966243046144989489954040920727265503286526576486847315311102731495811467453074474036045636697303156102705257827157667927306702644415402739662008928809029010507367807137118533764503028946323928291765245057531684576901051286158674297586009168778375139950714488619393354052990427447297275187827912531243430553340982177878095469470642493533373539265657568139159594149327293662123700995331896872185176935680480035396060313337441995593482532857723501641465365066604199064341263921892432417662250231474485068244178746458366912095939306357968195940756116295476096696517611512869030477045291565827677275684414835548374488746149750492861186519721307463021166736959676435193652392457038111846812083307953169788391999987907033711802237670551413726815311127779751216593917776111276695017213059669441626927756199313138585332980195352266127204706541953046232503608924392617880549820986219991245482064606319147010300549916377729812497030304387771351245979182840186079588944353493001233595964057650704361776147817524070339897860629965925759696310496413139849519162700995249980496746829257496631989225355204041935882905527672576729569483397025806641552155683259291980478495346695430286110127694940738778384346495509979769668192260778043729951048369994899632684694170202651428940606507467356448942992727660952638863718563104988672102411741661242274326010966781424485058839978093341340002998845669376021866903664186196138750643626913209709068174652664626651870733791056199960525820378871623453475496226618581685093937177363324821988311948166455888055214491084106240644171699455893106077779300558090488512518652405296613318885401272440268397962325170346379732921003923856995971939360991253601125643048409948493186486002005332216903684887799009250811023434521478662682187807684470233277912210968975305181095909482003923254310801671040730267462002457374503311712459383675061894213583703889539539766898784875446983170632794697030132854120284869785884678984646939762932244488303155158528949157041314107799072280619732526269775011740109349700302211735045998321909222298367237729682404169162878272137194867654147235809974640840030695755367998892395131736491402470277265365532564085533428584419359238720839943175973499803030314688004456977886555561133145406105423609966964849760073460773676096417939985612268294495487911467365384126444312132917130030890117774126275002526556818089758699235086504188516276664139580022351104626451528397241880239828893403448497471504884286060421531524370828077722830968178485131908451212635920338587855795162549782828692113559937914731069541233706622411239967748834696260312863121913181643643015468916548983258818462194401831676182561166714295230059898854994106825967502554279869447505873211345582274993525373447339770442754604969464212398947223108556597643760470570352750342643893141896743059548012973555002155835579216583661418943993274936017686803771153217897901936396581315403765892579948445036625831537978723657633273658304300885045761393841985777524223860413695425066505938642898797236514808115304685245289770681857991308495218045699996423412715619003246122197705365134275467809545775369710771296500288735109187448494429769308072744752189221054928259914370951667376748696674253917880494323698788310872685531016726904153071210325357607594787468237165668825530107617016201245240832087628851069541544707821635250754382295209104173382773896693687379088780784398644488093900092095551344166357834027437845174470874517867475674401473074366034050273227971536121829661540002197199687014128491528359471047835838246338714103627138046919414005726651543985515645925388813857012503029042614130901143474245443463457312014611962150302742341740213092702019123858250281514828509032929224971309263584421277564814394635417057505232626672660842171370084506427545290675068863037169039597030527751418700153655519770895349305372054105171217749198597564275938656000739314353032599752046387034960092803850202294444865038997622167983548631523755190256247369593166972476086960080626317899245691419073793350256615939672876926850504904430124629962917591519595650914156117978739432033321554624644179483923597121300866207133408511373510132795728431192916351342516618379603406310301368752759068272859713777497234813637114429937078184099049758065094433283440528207799185559903247547175963371517711031799084857792601638345497872615349321553199425642493713592239422413622187125682533735071464958939612267566051888351562810387067082301422014055525822128811882244925149026490291439068709160211746846902367222039206785838152812282226491170089096965214591711078927963739822800396479749900837300629278930580317290709310852314463599088194114425852216578145945082881142708220509156294387667210891059221794893114016319387602136173640196729477001171131114542492656644453726626674203792484829037279676105776091042377224389283020854084672030654690579634738687433721301919969319385615415973541402019715407197811991932447369644094329096724173905876720111350984558722301780047164997527886211937861080260058693161789721215245970758950067251269083336783558564407415850161826506566547497292186738007174709705680950324510759618090782223020765445149016821781233109045912189754139188612697233395310469943457534505381006452452285228764071711468734989505002831343415662298571441733706415811953611169339894203424593522169665080989559022679633352517679521119986144358688199154755562871450335412052979268417769990532005097871993318604085110185255369546022197732780121927411335899950918742503143146490315502859194058448567438039374494502922378904153630378668570291929025080333962466062153318953081251274297400397509501589077534491702941277083867429433850282991340456520180129667822777390695786708701334758244962979020857406960472873084939064637412056762435952888999797439165822382597023003155237700198142174242404023158732063902716619780132961214329840333795165758022665840386414734151130299222566109155884462542613132649266736654437348154856458896533441410951473370424639891458220259461300441429179755084543094787235493337536242083047755510189335076785073103917502276440708597116912990692431188451353974370488377807578697616192963629099910940690965539821857936284376438267069224902574643010712825469646294222787858877925831396602235867126086909187335780839207291768261819596438457227350593055403178128175024258534488953523960283442991328926888909595873436254370990478372667118453332189467457088538440916888003826483805429610596812069160004065204450230398992339167893413820410861951495253578033977825732057929784771977377319694924553635494239562460954145260137549851702373642851381176851011272421953377704292856272091746524876875144926167172304118604049288675860658551710710453238420770111745442740427557313688473643989769853255360435012110193452801521460301190286443247471537117751492923138790929988553731490628875070116238639862054791567816543990034098847809139804405497374161504274635337644728188224836358411727863031955581882995902497292616492522608793118479675562815888851336871191303821275505460774334163899880541373783725918827588218886391834954360224314185558457410498756017275723482555137925014651021793350541098912439636617398411472437792608730222104107755539310606291368383387568181773573766219259088814252886862625615646912193519622624800406443961378212209493807198597080588603723165538645271753861450529832615885180245633289680945066761753134846704555252900592230931158521599213827028778901128398751837636381939298664616219730120949356459444447518927839548672627554779968082008392519599998476644501409208258447724948887306517199378218194784537286210003059848969489002683860350906148487026752456619912170177387257760282693927646029759431328398598639245471219166682405934859358467745031506654651946076964142257207464985587359755861093535569377139330163599054858929052595327385388782807179387950151373577889288526820244608450577047584487214471692742667826205561344637493825382244607678070374811348891546585848714773180538878469263397821557882643402966074642187877192609212776259115687753265338724658873835064748142447752853357924318393751497885134815379024922121403633459926503481509318097153675841283320232501140835231521183495709597620916634192302998758040593510499938209289511798317322569437434678094834484104567772963237322889390827205143991574650776793547742167433454557876250020491768202758143262145200142015469298858249696891845084300912510786229849582510136827275871127319008177946907306578079809403753350659756595541654813863436528137690273608260357029483203074460576447045308990524957605631044451703714249748556440781553617567173679623782569966286061829205387798782990061450760245577308639936590784246880076142060493089044908713352396536375767113929052573984636068497492153667617204683680179828585140396138843673059036274871248680869901969429459526099314001118487217036149271340276712210788812107568705425275269713190450280208153167733327809872577110837366837196928842503387385993922762292165112156139524146909213508787233528533165157074847967007580460408081065231264982178980287179856518490854778880195246976460352185491340515670126804617938264311311468566384750566327411464587874986990860525971853498348951483082702193594927602366974645320373069550420105214939965279649935455952523492801374480338459363012083315990207105450233642094870106101635788952313105754914137879294518340253710442721459800064239633911274665643876096742537384244519024844220238854876229334297675922149690564233138854237687827473254448747257496973785609048207837913868384676047463319157644059782530322921799501059890086781612313998985648090122720517377038061995651339738233944973146559406868673412022649748823447669390963088414804253672288107739181276704114069165760941988530529594909536474059463636120803962649973345248356842778928596455645414951290205917861589528667636379947683399091280953391784788331740162407254215978176928497295388830541142700065064433351348909926985519487071523715844215997261346506198424561324145104777322021378860182868451236195802175265669451766066464220281311881946379709321065179217240821828164289167823943101240823483248059207886356200464139834311961784520307532882147120083673379541928627108128430836285297413531508581736564684904836410791549264196890082758110522989690888180322405948891525368718614065508038648918459884392518953829606525659205509652999639765360969869648236918557874126140560289635197185399441577896093109985704122468502760183564933551871809022062475034319578998626514616962884329800457341607896217905877140599792286784124733765803645712079635893362541849794265456699565301221983550140333143846006315503534224231744948009483930283413303624828136024447729909536442924970708165472968096991150450278770624057471835662636542389546089309486924215158248877182206984944091537276634499760282828701691509713332384776100415580541613662790378665484036270642819203719822621746349461660868187176969758773542604380588092128149779591981611406761012570607144057068848155997907398499553195123627069863038870890329734696242801269828250116459597891827960132062196302259774475396939844094740168723585036414346937849558427214153115898698534264713152217570940896546449520047585867887320989039347314183254086057623097877797498132799236267488616192370553862837227672071382518693625767124042957873805987959600575120439806240956107163448436325510874855364516603464507237016133987888032533876292616168074637619879477397364725264604567086830947193454854893255968257042051393843433338015687838711739674707210090708451955858544495179379827206690208163003679997214614543410982858795314354403089262647356836859653639388951940704262476999640213539072107700006915021072109592999043441422835693845281926546515693300108963156342274337355820771047927938127017026331731188137895472421088519083228949783689137749025985688836348031425384271438102361545200961955100052504927491982485434474701748362488985061645080683588185052992796099163125500891154454154965385099805084853760456075713461308394059786582555357333732117546108394824042968512775980362763392738928789767468403415565028879761907141206001589856293671007345505944097922441670062224558539101327979427533823106788921229505535804553199254689295372323320782019728506807155954489935274690573887458530647760645573714811770847515265016671279170968611710964973373213153323908624865919245549478455300528977632462745807149544642189447583432966523780815746527937396850894578435540292923309282418669654691494363141884480715349364178006672991253049396045340972261967473378408466474871139468293073369380716569832708473107163312188905638141171751499519474887670601838059025217851967775477417781174181279452980957251802234418831157497131026104427662843943872804573991385744760430005852841299664354129614141194709881757087419645944044256171338334313876707142353502161691239179502602115039504984475294643198394145153937969373357593553675896046053887151920519283862560513601660394507313322151197593650908484014533881846545125956768337930302480963278320812455153225408801915227876410787447560042094477918157335494628871345417381143728660800287845283641427078072822861419879042460634273593928093022858710573604650877699658730739567034992101319987499945995197769270473724245847888226901088484538804234100630108887211492906009846830187882381315590406394493658197900528826284226277448255655651671356610603035468333018162895547516914894423255740917209736245923235512224335303644831668209892268005209901967116760541731349474754245812135187595026339305087268538901897965509394161137757083360272875507016641618716371171527259000767064375294710194703456513830484867526406484063568564095561730096841413955008119629617511528503092034736221255814577023719165768201262943099627588368807642623052229658766633615489570080037162604354479363397280080166257627088127083850610995031504354891896008123771546612576124647391957363620583550068226304000805009018946419693499777666314127395350994860887718864541070170241231529287038924035946748413601101357365188656727499238623456156564792673997837931985943956781971941934430480624645871207872599858496156415704010743446970844308721210447839689256870993146250044112172050752467811183800841761011919169260454223558733570409013522182745325510462119394544584737639912120296005301904121197153037963324163614079638584244522792451906712315580299150942649796545455918853125771651148659581802518744669411949014337171400855274284233768567837905881510567598416194509983282717435809218588634987249391682735048210863640022640917501694765956547903388121496380156089038929377569021636497091944175846852459075658994563176778850996068697095763590500717010819767002256918681638046539260107530474908713161762220281471158698389523129155842549784416906557469988277821825401549022932851125407543271836324915015048528204004503837963065627245646150320520176110504051894706290159337236230799393712114931225096357252786131492758291273586310426373952621706149803619266484190566229123458466698066662051508634003993638055585508241098982640522829373588256355464034562725727952467748299034261995595678349782331445540635507746816698901267457357550624931843660724217075259754214011074385846133330249168168809840099710451255127135976302868104454065976418809113026634161540586032527390162092394300693829363924512897106525634187525448214278657463936235042529733743510170953108541315574925350506649731152473784401311714639315999203460202187361992788183515893249839087750706086764788950910088551712222880642429404317319051979618657494881111074263635969665014016016026512170394435307748306936255897538742475497875391667338337772635486734071823204630622780763535505141511097644634724086345834503779678957473921046625120894972923863907313457410348673311111547956843007390868969481065060748433129698531084669597051434045198433762236526149013653671429025859466103530400857236702504740094724410083018817054147291012606772798550017059530809654544245566168370008276512014301418711903479422102579427510332039256799462456275349606236810904574937809522312135298196153508030653370606423725701108451592735477171672262183652714890987266254229306272751887678715767800883811331706114657651179624223865228323524564941378560434844261624790166345029498411203130160079568044160626369885944530016839663621145718059864427850174372638510792289780300022183901192938978365251719884992161057666055640404338060503140494568267265109013374940292109594800748627879841724468143618120843374192744126849399511503627158080401451080634761123990224736204663075326512757322936570781187806282647381315104178955038079183208522768648372581725536444132385825479178058841280361360354445535104332469032902402583489628017150538729059026552721954247091530833600206782853277565400454418763203959185778765141044778533843820927289381170620778615946825942829382407672984531032188323344809704587272793771006977233139202412534814129250559264466374754803887548244349879718104932246446235714741727387893711183864121222873617595560271048281229445672045349692912955624722071466628122340803505325327450339488873481746493752139798208335630127658502807052150208693282908849450468001059621992827119678113560770850012821523433502590881779066602778491160324905906230534777285605812427862898480110978620481525649194445024105391854134722494675422461612497526685413103846615517865926657430213764647002846309352718161764783894399656846975540504545353538878361135220665132568887015907066492769251460217364655857244468425175955054223830003911703527809747761831794759016689528459529968030694729373111746140826327405683629895416001152287780252425306190315852646909872334904463305552755677760524361121301451645691704378307140793579993470870269076392913259599161563679171202321580298379107246571068226093652267951748533228810611826896574568522273364323440814642727368608626649203979593842481963008494753236618615689805644234846104421497767960884263895650762978574024510063610288583318622993415550138573545014349034578995009191509863501974521703930124699420933318961713091367157627308675219134654455052016168958233122984421465773547492781918322272957368927456502089030824770980751033697887534698785024284421236784995174429030832701773737825996971740971144445405197321497812404880028116507223579932666766083852958776301580225248855408417537816872900733733418073813758054755578466027285839379540840709928628895224955231489964842726447354087371223556136314525103850296837729950813620972376601643385661335398065487164600887754913906396764443333956944825856857271603706131295271807097436909261854636586612596413827337989748742522894571768943748867085010088991082906215984591623626975689413926284350303817263652605006783791737453611292585737070813169205050531185054409917309496456289991735970992630815438995573535130853582277100653480648309193344434441521034244874461834392150389248217482596543169043693944377297428949548878849429254889845970790195016792150865527222926903761760026213753494008963135020881994923339962093104809253691538017915457655324352293180027220346056430360839188466713014723550561409777883672899447924315157004921387441493999515529260978924848435737423587430261169059703145870475950319578218451690642589811348024261394879647924178710710374405695277764958802362317721593284356020656063363579012317525179241649129392006241493757004097024349756969362994588199228509226690003282200858232760398623961112341543927098469172300957113519748132778680120574248079251119784284185498710053865129591372405338701906090844856461174454092631734841773273680630040512379836027705854960211148829461447164647401917463837850171123069067394087294803346070577615224466577970398189132898273323013204444466667758385410422074142265196991426616501802907781523003276178115348341636724510058108547595385686515908030803862707362125930189194682314176234465031299822467476855396105920728992993563149611934584768254202340096015641976230295459242364470513614195053059933775172910021321649888741243332174204832146837881005132456914147324156025978416418855853441775654410606425167122465046699083401436001820021227136952003374562851873168845658189040141936676911530401467610379707139492419755080959910835260643552791235849229519268118175601389426361174023873657682808883802719448013402603461558733730742252336006184139338373809860131146982184970766913654293060772762708653539372632838080019477737870055780298647772515638344706285486081647429119701702808851044768796396526341935908210146691504039852270575543196882657391948539917771096381362185050890974539252642845912724606895675386386073465659816221246048272582159973265744529012794521567790521656019484091225038437297968106539952081160876220135852205391211845242692929382365263182417899472610014011682605626018611290948882693622353861203811510732034606334967880694439556371090727829974023811881212784145072758638963028702636761130230055961699667058274999491061302619877011300563911261313224820457936261031027846978076442772713496007360801648355474776688121635792786939485468104986825843742988194458633835281511736663312618894722034757950017906250385849222327590460497311878934977923107350527422358584444358173151973967460897882948592715737971486417941331546909844568139481166574646085868180402364811605624529742550661961068717230463863187787741595291258863010540781892273915749745123912298705728684022981060285949904739925559443231371208471295253583431204630167028616783075241852653271806145520727952347116348147724194062121815339525166717643547013656906570729012075707974469294490615106455534816375765729053228697757782570029969284640787169583202176922989683382278193568352189519232518312643314641411361379552664573634439924048055771625958120603408509283814543704970362114162562548212892498689641398961458189232074243849336443981592604378263008406648868308954732202349036425270818096228383295066701670450223225684887931772067002450065567012151670714532262008960764715614054024367608871187268383873769987217532922813794760228621955625985984842768089950262618650179148156491665695453086209693754599575647774044779601350802171823737446470285584878902627497720409119919288773385578518838049223510555468525289282125111188179057813136016975202753159288860593241322302385522552687350850816733481126143737075826496104645873935784392528741961159054275975384621989299612814184265653353471528339421300327440999780560407367600579860643008719795131544004565540574559013190746851624547880592883692087492076385238228321568622667382715586185039284291653347689402526707426431782202837272996849147076704383033943466837811065727480910043935360170699718436341459292796737932289423980859326027700518089482298034209123394604801592291557420405438083622320503486649897664734885570248217226434027531067092466698780787750071269347287552007178651021520811680355814156167519865431104965385610457011110145618271682721879952015672384403408015042479789350255430839174439518542546865149108689536610536429154469845067960017512252732758192698256781150203279528373339148931254855806869594394038100955823229443104312485227850311047613448082502632786370527511163333977056154658290463329913189171289134825140994999414872951093868293854492761929809391381377604442091898692313637975069995079403316839029940338990492840596956247101350720342076420389567679292975385339741050585890950395693063342603250920420361975032169182685160383713378276969069760262098048262018739179825968704806346801786911972909068012481832867599662926348870861918479632879668417093650560728880309712357730216974798566943886745286573252491213071711504595341122639120008673430576754421162609673899726968409258992488481259890169340395922019055336188873124410690857141777561720151677967029555123237245730726116922481876171875195930099437250129575520342178263232604673302300978938585995472801291333545730119204536133289225488440760507677809683972846774641942312162569184475412949947218769572403303761258249386334907053097451810472318375076834052378404793158786019279700650133014234429334931193641524836446851494783339588673734407284006300979279061682668796974245577008638054513439743442757442939516254589254123874558401154765228646555664884674429750300959913706587062152274245409118967518616759238668720374087192286346249361933240555975477861733807480324514037307183482148400718189585630077279783628322637087030004039333602327817896665192653690391057202400038578173634840831134176173286908049603826340806747280105351938382637243642083303781502703893546813476078891427692666690155287640560818665777102485882607080250100867022327716329390801114737990386621106678924540048045307577704110793076214678613814777224031156940158377742719594371779000515775653674741426517874682080660838336767030294365214852858793924312870639548786375822852895814347168543075336179155430500387312815820498901885720319195415164349111560905678691114193844492632590624100193666371384228487411998162115060906847374363395697169780404667579931636829700709005836807644187449291304654573843973032687806917647094330715606814777895749137569437689141876271470829706378681602357778888049075196338857809538472757586538326154193966354485880212666556151801128637269462410809442542115034672837980153450443400112448001502256169094975494222127681673382389469191769218209762309047641744915126839269956622617759582892453160870710361951855248535769897546024103471604876807988475681495188855552158805183461302375069392210310409055050833413302466232242426151415506162011454059249944905221390855326009182511382207243209302328850423831121125854917335227363339811262166471183859622524041113759252820060076676487045437754203690394141841980347724927485909210986973118087877518291165335958822594186073133883325202251921556291664194365507897262842513983594594382194354175266649271376284521114346035033124200953544419853661173244224792758630841416453867310039289698663766088366582534451791069186178551263356029122056913714038545018196769345947826760263164474820138222996282376912761844996801223190370024863021527222775435624477222298960474810600087018192984931160032176012442793358316491413246730616777781031245058833962528801114011145867828475230579976981965391957506011239139440535245905045445420918144524017609127020739425724102775061751036665291745163731331665786483212068163817922404475268167055387153330822886905748571477147350833252307540231699557334164925278114876688142100149639268980844568947346120831107278721521310148112116260041120456279759910676972723293396805888037324433482681751265048265152520721264977926960243229820248585206901428073206700021097047467511832917290402074331168317813834723523904560151618948289888260236837482416912791807245138132363312642154535061093769776989900265857009483813089699069682899489672262198835748435634249886038583725925946901110602854325430862040874043173560061552771606476291445266765952460653842180553268227192959471085592851834508813020124538711109310618884364361560687553339650200323300601994640783937067903075197289338890398667605277921256378238307463823368201660681742218270113072641737843066492104852987868819244434547730154004986481212116401011654345053467222001414124724587649207399091990661253536911724975536444951958068909050522831547219926455497293466711402525192392211102614951621785351696747440084264831010638675870268680161872844001928438577577188552003792598626642920780605081455361736712542714870645205754779099724415486987019511886551517847191284455185041129585438869209827980281418826520601955156510192673551722875726633630216303930176783706050239151815162816233570292298379027373357602232268543905495645642892008651386400170801526134377161700646763964575658836747176613011585901336469255701508455813445264440145138999975744204158820708062536291829855767376964592903404558864242878519835414920528020926532878960501626782997509174913285792792055935805991928910009662910357873790455772491233075945531128295891523415156222279227632155106725298163497656049260917094970275861351387864544478195252937320812697408073847196346134110985025031467473137642521007880103677336462031589731686582222494517683015107823422133449964082211887096281227974153779968042315561815377453485214354243721614042583515484146207095402759478247829274728463404711175606418782085564102647227972053223431251560079434815808588633279618277864985665856094517528921609946110331701298534748995989913063041435626249258997177406058731809599190891653953315052462431358886237481984255047269065131322468556637330218218153331308018698820625209897382454936737505456009659460536283537977656755612695683194326147670211667451193932126875631651834643074294361346023593931098469647963214335625701720749263368924322945091454271918235891660086991901287281385980964308817577699718216281613714034180088357900839231391979537382717096845002323277822138908061736322698445955052350250236946173004171791558991459399468547649151332970384580000389351355942059922857383473554263261353909270611054091267451591991704530072086893335667480661778279726443020108260957231632311868910602504535786291865114598970926322938376509737520375736170278884905584046872630745065664386152166735607317931808987620999706103045766913556823877425532078435479721715686442499845987853154368685188323578136956085987151086219775163084904686697464703105796724075225147162930767196625235478977454566358842018511044891545147597554009479729262780080049028158189271705770057288459523701045061617976520777567851436868456166888939024831114216864750530493423612420423539837808060609834811019568886830000327290031949829474831333353540602108232179703769361890029725761922581519440817327112183298787325099347475109523878611912992998155032497633972820976240345470062407656303774919113550494647395417344385262439264916528922701973786764503070487306209550496512214633209656714058090339837591165342090839832770116924447350917961303729935800010980054416360157415050158156324635539869398552827285550721732338024546248132384415444465014783238117090946818579389996398629991291301491255951167263690927789063820349512724642794990252563203073987766634332599310449809938979186297295173104998448828519740505018956380064833169966444697784129986661262910075701901352504665155682389643774295499260373971684927066657991542337763726866006007024410666939778066638686668079740161505437249235214736584037885541310344263604998734981915633093657145269131896889953884621431442410131738002895260417229054782500276611066737308338513341265546322699110677719483044011142371480707904678937222063953637610993984247250962421980053585533398355433469550056611058135752108936162457155395226589969911315087918936116370812937179376498147057991668163179761287768729046603470403187697973553156587780507472141356830289083776050162508898676768951473211166611026204427432540954489426099976613668463096825510817000010125130030335807930590904522143555000063094274559901679969839893663775806184225523216064433833033275381069981723187737961573891161585438815403357538431060868374186728975339647867213964953419678740965049668864349791891291767762798844622407530013520319519998864912029853865580503943915200023153187599119252637791926368579438688582673249710653401069882078546004605662602238651030405990867973954613134377254891304470573658733510947741364303816181998256711099337575968607782309149577456578276874087223268723876081330464818560842894251459465748486494454894827889509927992282364637335375928763428990288278202294333245838320295346166272798934219594915993992666538244229834106975662710685104431369832491302017011142974640787204762191269674651140917387639604719877712802783550460306943429504939137000968684887717832868376818286629838438671945149982579584808694804035389753787739996798049612893037316998128542743181668534548609206870672299484676434804906962986911075155623753887750984527959823163681898652832686630503248820220656638208866001508955912969342728981485557650201583414741083551017908226405278538493155312498686739176646860660039238894548596294917025508242373970996985411313525855158619318012605364922099654620786228527549963075266407509901391553002461120348630247811589437746995456338066909449065480676017561811191749942058860568563094615452658556257880990359993985144339221608114185111194196488560410353836001169405506750188902768804858613014264011669916327383803563946627796833909044860601232366574994996694244054435084963326465690253486683497640956788126197388478553928558703440706995226860766284453591057891242600233947141684692515160527424659919355544596520774651421273912306033629547809488593656561280087605500958605704701383332172147324302862381990031422688005363973474426044245914954902956586298897742938088080765655824447283118290816148864413976976994147995794105004682185983945237434898243478785080395450302099545244427469072334118208784928000472579292336198773378625976108972167614743679230419133448358448307432488350182615947591498358179350423300485329213003693415149495753861140807141394628851254939795751746033585336052360997380434407930256811800876327304011858000807151093346551741533344591843364391085357410486055216055347414682074519937910949523888666651255182158992985950269039151620397206192588976836316289627900472660204476177153174722351144101333733093134247420829642650951578750693597612132212178831851111365789952375547247407315021958430092522202685221790998809295874740894213832892624368539815235108486938227169464398801533597214509921065850321775668343397795069178243443330679035443244714352426536502038292119913545693547002323980582582510493476776901693439762576703771551139473841040053514285230778439187669506266223226823367723347803564941584533413334614263553458168896274032625235992456120205482046393054945327448359997652932815910700624972594213940262308197905506849022342261726305297012051468062017482613724035048597698806646464882625739540958173359608612522792130411049666867470793414459262859462476858016167115402799026997083837816799412956284107527366850566546907238457231453234098228425240084616600032869031394679674664257100802303773534045489537952345651040249184044831989810647673233975427162411821474080996685263770783584814000302251266893392278006998677692206717903393441370606796937630421406716851351407437182744164189799533456784332517253276718048330684873842006207714623019409059525633216502159753611015955615779462098762874487904822221183108630507876615649641642496248406866496768312122113114620201242464314111342494408779493354173026761041021218396053525890767176459550248881675971556395629469104433436140250883697288808195288982791235132330457607445194121195133359754606880051667970529741196479359364251803815679864902709873239369194316865471155922539543341539581266116036592573195080207104691685517937926224025356278052540155653385957758956339494446607106551158507778395701124120778150883706707515991444070951794226533914533542403618707416334865589253618616838200952154014188612768801849875339983864641640822425867564471931714493800219477108238530608308926822891882061348881145976791909607131209853279142541930598900377828294391170157059333571375844218968443238282544640688552658461570007937655422354668340323402679748617629590747497323387341485878346896915882688272527803124875762697772977683938440421494262917950331561500610239448138964261041490611771679089703682833580316629974241454675075858431523595897888865292701256124008238505104270513821066318348921238669275696279462849147234969174139758363117516138936366722848292939612789900099492083926414264206089861476957683645163559304798034141552279269667552542296730500840096973235528965177471120558546065104654795091269305885944812771249190998479052590364493080093824086947459970907383448038212907096559019249682889809629353803242186607482594914338314403803946013329398299398783949335265214217753609150305608352476247783673873027910594009056330286350537524478556171624156956218057540760594636922038170679125578927727436252761648552554532466109061407646212951524212663995144486103310947426061981081371559088674099149176159624246832773269273598880233248270321591417466115825750936066269261820026490523410047505152606255018890288990588943155085650468613137844629715515247007641109491981112900054887814195686209986496496403656180656461122390641568511767072064543855777764057306893882463579918231747711324927657768979566905781745846037806862671040219831932802366055575824289619667491406739478214781919549836975236180474219370484419936254870700716148891327224523533280265565856522533788803145834701025809361384392873864585839187996903864624083750611693311361875963483857062807839173500492559756389628333877964616095883701142028242003249958479303112556886022107356407425892669956129773586587206568150983401529326192485790995942832368282412691505897618112117654434943368299532428428052386150736530881994991928640103843478427984059702424667804585952741133072437552245477634338140404026184329997287718005344839209393974736070606136965588164370478874442108983735787532242807608532302967636025016289393769776088075064095884469388714666553280638234965626511161471991238382551162031999555496501231402237001330289434738359142040115226058107365932162965026059205408017296213408907965198418075558697863024935739088930059836834353799669406779714612682364820721077014023977510855543194335992311748440212326505728417542581188013391541606580923787729851336366807531521945315321692590563884145056346379385796057214297223143902859339788139865414305516164168942915168503526010337241540920545662486012514261559680942292641795108846845271864267080379457368673859405845213751677870602904599484015813948585408593434675228936857385376167154092063090906802407073213712671510908978474690774996742733330484212507730584014521861182640479727141515465532537643524924286120376005945045109861926528478786850959617644467114146072755585346903233095410131850097969702097951423334854622377568829214451156849414426797913055265161150306732989210471891728839794660167041042967484868363822147022527638143196916683767382360652518535004656467590268910220457369618559065422352827180469914598921878880069796626378686780262385325716564483734501567541531769858929071460422669862518551269052571805021586202683010833940572159098143350936951840939770158300323145515378137798334277369336830915784558460313422776640124452953089482744172471893893121592204393389847135707258133890885712857394364429283866839522868119659926102898254195048678858880741418395719131818235984601573507040935594288385152422563315775382507617109345899664235448492921114832276413790442436535462483389927090013017769264662399222080026547849740195804162518984140893843959614517375838846463896113355255662467289752967057133571818794506378636894974112527547298883743547317730348348623413363741590293137741708577009644675427333272223798104786492207704666523175428821249225714460812790776518683953061025793760895096790708838343063174930726995136044094294009844219059026128979720153443238975101034988298774141249001505839739644374825852787119723758949093051055024698934997036277997225990955196591173860533556361958476401404076766517207094671096516601935142685867262240734410110684524119771982540690667136422544762386447779563804709177400213701914253458892180276138178571604604386038697936791041676592895195384291332670268628654846268783946263679363583302859909411548349179466087838807436231925324869682697606624888764996537587061687021656512633101041577096535034748136603374298553329286354842466878666142681403028767533573371701319424193909193014579487696089897959430334530080143774377526438770072541841795918819714461080642618622715595526801827550713882362583568653782290952201210221946438365226195180905384332134043994093873328186361546689281411840181124749203324846136738500517712397837175682268662920816193040524711168718235304053646461417632252899277029159440176270627576597395798149039959335363833574327215674069102831565780550094967852328401611506359763349464233686263749617612111343547105360110716615500765914595382671010105140233499410553150071129142938342005069884491375104993403444083214621163923565628098953385197340815234349345665915785508054299600666823030894704437565749439211757162319755736360328188570796991764809549900681719303425715991471617917923517250776012404391222529696100219651596740733138682312543985492471447236005725560702220087498771810914807577661855072772684327322159120237178571751203048470240088528181652833439107891127279492417869474539641796539257961061866048075129724829694522143156380173884359504626765896410757433290612945612494497066580896689821933891090059275038631285356373243441039300020071677080971943083948998785125788404262561037403826273291362255935266150869418067999126518948915367652737353122503144920864238557015344048551319846628076618376410649262174566263054866435114952586160057301304824446784356664273590784248983528983465925020406809043674244253941586847758707018123089359465425297421131059280918897412533006998272190705535219197231350912649345660345128701194148018880272822170190408426853229739811880984508451870091093449781228314643430233848280619149400210485996945260608052594629099964042000997078556891995041676987632240125116072527548343343129944795077654701396434223732214936206951458225219865976663150666863789108995445279185138664543231849380794607242495499207020828900592212285244522672495569904850653476673403385092257377121240314311087519019541883482721912476773856177172911750923540457672947214134227602620047467867469894525398182592345007700204631035055383591147448096448095678344558262158636840386896810815160697668398480394446649504651357720673641733445056082197398040327463961530787412534002281307875169232140356097849281166958041980139331832623150691567313577042192930842542328961068350171417816612297222767185928160813294549108494114703608280857083741030330039099287920885536784177071077853677391728992762716514166983363309869819790537859708449646589046591904063087935370358087680282901546054732530949884165731317859184154485823125197451340865750517139356379571401588762974962955748324565259747170187639076602417485001175492973911053332887470101719857426695739251349806899817289492288936532158342343850937402148545321815058468081306666253787860425471985475615476364610304148459992228327600165653281752471522888689669380956982256312478549834050202343247103871656075596179730842327306435527877477978035946329316825172269489724281404281423026492889346467476999253973758026924727306900621849090124873095231628749015196894441448695094676108775544420648048349141304968900357324432655648858547007362049982381554490258769669984591452130564158699525777762594373521916716694178755240731189790354086013899282349158603019226403648677039985090200332378727840069800791302870297384982991512132544967504831459357824890066633818089497931718759127663265589262106291277524699349560659330969398834497710067362911315680454185898424633031021849714368126730938322237949442225323163994473341773810325689271040337571298350895572586188398519865789644154138851301753628588259334415654490318459966327630993719288512511762671199981923394712738687071709697533207384148891755319114405508662848619064775543124779406090866257082542206265664670393511020376876931687772759422874524463939085922589017900722803983748426802644928748928973600329207867936056292340130316770384017228157550702288171838569223281070731623714142466551660073121302224285160125734700184637045918152388887038280758451317806311161861835553991167251046166487086131666664639451298588255133050627608692910474538283018645360035242633781493080513607596031781045425903846172646058484448113800959262682647322682533931680205657696120159017401379106260144471662193149825377447021715795010103021174093776704170159973699644024275007563765093626601427441644196993402142762834730550435677323322927266670173180902131928777456128975992007305587825447935364950802394701778457623502204604520169185498934749298626830052584156763598377583348340536744648747078616190953080368133407343892997178009660496185155751722392556318999945048505187914568709838508564830908322247242327815341194726750512084662024831350204876396064803631975188289718879933120069848784959245118200256747276247538661759344907901377462233026752458533392286170853036305517197920122018809006237565566223895712847254760618599363643260282480031322410907089426524649308655405154555443808384167868247133911570590049655960752365317929575763357162324315591121585918243181100970002354461352342795246463311297309209240756622632293648902609807508162363898598965263170467216251443384479871971996384250142132291569131076401459102475885576169613164469684506232349693553801697544806864696140398409232842090429521928663573176382704563981999165831009714175316733985587574562141717254491749708730903765051985012284825245566830094039306705866821246733235847058426406964063178991686799091730036131080659985216629311534772693508109930373085835220956178301773530441052333834824646230472664547814243776276990271844796749875821972508795570418521772210765113017932887692192206323481252517759495937147603145433507194117378264336130708599559187366281835961330688889141805002142073046571623896555757895701306969630591080032249505578453242193672087137276681602586963421950498459368096545510357372170720121771081847640336210475880737602041871350181651870100958563409341944084389869969879784619448408590883581968584875278475205414896976981703492037697887732585151618387775586873328119733000830506194524565175772059530770247943405215711973458821218218043721300234857218155010900498126000689891834407509445608000650704252546543063576514630805946555189634354351414581648753466426500101187623779768195190301512317012574532452593068519588645743776236924232232333351495666880901906064458070720760947488781966594036500531976638241347440879037606319460182382971835633722537173468299547640027912218373581408612353417353211569120553068175971946984881332969853590624017132121049045660903696661576597899853230724418466945185408503548294353071455516889337264259494491934339340525901755191508976536065230997460650204982583166554943789324719397027185981792023550669011457572049759979064157467084621473359298574006297057874366457356322040909533667247821493693005400730780081047299743068938560921129293567936835245026740102657540640242981812659538536944514527334217243922883257180022344582357717923284239172128935536071425804606766750515383408651436011446453052882666821899642734994889208865763596728021943706813304704625485427825113830358717869645246757908535794895170111730325347932816320773508368761657580851799088027405989189385743543265456487456343509266579776254367343168405035074649438780172207946982544875471039457935652373546267789218058641782348173525532135164268197983891221329774233344295008492016241607070378392542399442284778958430024572793426962206694229085871501662406292840129968310982577154067809152042890966208561575889004356710367860530135597933000574047868032208591867429847373566549680319945182861429699758269767094684642191098163579973200389645462543515801654878616747068215345072252560302014940350011113117546535299956602473156821282069614770917882380979578831723850683975334085777968531225472096996711206156605541617921675164739908410523001134066404020469767370540307732465151486998926396965783326401351404123562751698674443590977203053127755330202903537739131779820619717631132535833290826797093963220014809988724946609500834842495544851932426830795635146550412045866760597687578146038009342405532906323627621261477176580173577755782585049948807684290439846768680604352296160269576305541818163989926108443458298724731809688606177061677568912697612664226715023146959583772705720671361815186613965679526283681312920476333557504250836384885347777346101318043114899220029404403363629441530449597432319813089428320821190526395242966448657043063463553015895370242644612582974983811980064787453920828960818836188027729695824220513292319862831966462096188491175082620067198829294289672920635031372465085924653490151195225415835316763035348014700498796334662325300635295317348035601595431459564116203531154288543705141549143949260548983920676056374803794707540528470294750973834505538218163204125084266956945877621444587978459415653284715249642848618176427179173084895831308914820007947342292583992530029039731697273444038603133883427770089575012953999652362424291255471863014834119928027825094477947056666297825331753360923192562140425068122315699922916749263984711791469596344576251421830820855015589818644078201796796846813257152449369387088887837865831270351275917670140957118322123209077053413462208347692554151272563618599022209386291602381120094165757119375181141740858397181137386232215672717326009641789717392346231588724767744481949189579237243958169706524039592252477869934004336998099380884866489156925008388744833854889378708491245380126089145149463196743758641311392188991326805039078385811447381653497856718024443151595232628364208494928654914904906931307450172797204818652089833282459858931696141580284834049744268608095222286958780761282494611124407697667280252383763501314059677841745437868702309451300253836763302732175498745189486387176077914809114861949884062603049168308999422606803249207608354269032099222134992239280004908186432429481100054453522542743773459919474926397035783187560639599530234919906478211398287139781122760245484557799743921136724251879103128333782825962687168967356625494081675185936003765425533285968508510317401007950085907228610386822792159078708797511841403912137014955300305338705065008808406557307498094633348886167412878983732709455041694825133316659585677655702654359531905625147776608052608632315554387922531278146469568468596870525135001829660311088106300478653208308392492767233595292147997115475313498721803260708557448584604895285980617921556871600606379469986887939501055681149202012065380169741789592524314708712674625300008840595977225976058206451583809777168069438811457974787339398189859739995212330181047336994183306548345333502780870556336227682368815506351235172010806252607707606025280910707692569634730389417586830321368386728330800314151061393247499937533205067608362915803790570684512196670602463012532911024597633518623654595498683600226271972907448128757541400744564481476880295758127031521980657470965510990821463080923250681498571821402173509532191400310620361250669773232405747159314792603805335351315778289809396078122625945537616047973468811682033071316404604494470508409800104084375484396558658396161271157109545915860744750528669224819383686982208752524030549099017361787186610833440328380602608398984964201996729388812263449240484553557493359298116804102237844684136874096827489501516355217393837591513345450688038624297995925601619609324209205307238086216841135945337466350370432781554790049968683107153798830840944152059421421027873614645725149088438074284070684167397979975166050528818248040520954104025489178585620969246942152163624206225510898288216799637707957333695150079831232095662292721308683966075148138046350302750982640288142931861682649461079173748714298544634836452216699107422932045368807426377646832604996292204348510918998560146271512983656829410859287534996755855219790737491245993938619956703948530796677899750852606616391640703276450086060867770658309515827391734553131973670148561290954860239350701515771351727972965900756392516038522699477500554123271225421960455884606715396151451470771004921064621047113395636820170959703191201862205909294994461686849309650127367824381988257782929091420178790854837920715019180688913133673733002815163039566734718735644901474238613215996991950485229593587742498233264702816605528616549003977493120320460751096941776541954883767826517393693694155498693500037392449149961982514341500841087082492394033111760670846438549427637908422403106157872040470757760427962232071297813454557703128373893044948701953885213007405250179907927259588071846204828747930978008803093562921907916193611101040331722469279793799997880977833779486374532379097267192216729355773657767073713774587206425682349925654794538494345357027191088239331756514406725413369579860839613575007406879166642076517927014830745232732982601731060788456454057282494036368717361897769069425888668703234487502299846342462043874978153933080754237226675683773893286225936124093410281730781915961610590826037874352333792050175336551028508450735129926936628835915834887165196180642386391254171206358546417989155514586047664413689191805005234726378099992805538770915838289054336190459243689476154667646004400811035638568286037687913645543079095936810020778204923655931265033676270671918004545078150368062155120215998261564705814640754479967979058913314488204614232155831180607971152159968432452791524736140225459408300389480507407946338818624085720168919464638453626666863687813576027717963232913885345638863197352896475095143221188793471217499899206096647755501742770788709397870132851875482871697686511610562465854230160130585814772002670851277719488106185011267852219752619343795910119095078289507651073187423518739671958796517049839946415047686664436425835905178606653700255475579809643309588214774510770557523684279456822279993041138102041116402312624470319570392074189288685552212337878342100529104851558294510586347102758935293496236340113464045685631346945069358728648403208882781728634294808234888601512184884826493562065066304275726614972887648383301087192240691796038123771175316233892843234952806593064467016366979611444312448294648367366216598039557445897618707976198124284350943674254756919262352114746914810119655735687122965010775983258876876728450401250522757180885778822492485665208698520834024080811347695422672018002352200776880609933206822898698047870439027279802912506221233719403881667822256849385694132063095369870130014028685392832945811244943952685730608290309043884421822816922456378129282256001000768808759245989226293531240267782409393640730617694866339360582794232127870739150279988012904374320723453135100344871702581498727020386557045496315399213084000855423048108756250950955033960043720516675201571685461704578224384169505425914171103651058382408402456883114434539354515223117744063913502701289366151454216641788224888576758738149443762715793548135904737142579553520948563332121924956388926030329658535083407270109074284391340634541152159829618424380891047141569306156782807629890602041688223645383844835100823880279253308386972053413971854542545113836609749103081675093580806445472645452757031861669202035565975218367592015291012254036048964901322112466740357594583326559397541433255148223602814469923701159507431368320740385802203058842342019175570185070525745060790335017100799947860804575290827444578688421346621109738406577593758034056560490428623165222961634608866644008060724300486951190039695860858112901221467666922132945978915244675907842904224476796749012104052676649030451602906922700380201141513989387334356784385244537533442106528890703892690153970445748732098516576332130721334953112424320256220037289685115042702765139207839313443143004137874375144149197912733212527573002183376226161436800027946893799513405919873679093343727994081432223403314084390857826241042681818196864305951362363566848402776754674094381607247388590521693996571589536916784245572870946612880213070784027260084422341352474230088260332235315328921336777508463061872867982105837248085198928673637643405970970249343058563160024117117911829527027695426080924006475746007667795612973372219773224414191602763043926298451382669410327261660467312092100741553285741846101322466637205512559105074406246565063595765758439790326464690486518436202485368426371781955049947233241515899847986658219880371994535858136904509328581150578969069375955268930743126016345614845065730480592967389950364921470392779311676742022451183792264144989760155867484749344957860833164881058693958532652404149804567863947387203239575551180330801674879567663448893530959297770720217274319098693331062676435956201651862561534060475180669486040537930601539892188764727966007187912107781900556002149664542277421378727824919208683216769964039833695600180459634954267748587141446411850820004636776238440230254461901416979570799642453772936845763660921027303847785453247780318914350243179526652862580948343782130567195418268789734641744291194358590310886071912564852697223509654393333183864499261921345716717936888362709270280773701949588999643603668679010791483207256904096501154567012816837975556709028159940751125770937408523930219516127786958540822529515182375533109057173852447151865393369449356523788732279260233307962430116761797664075469960398365924033257601744230959997235850600146946526381252751661511177458263134497110145836734199561469830636702731733285933309776481533148730334335964422417599802707760075868959531811431734693772159487662617030783310347114206685858967554845747999858514415713144860488422435445114373762638964971592951733085468325914727825008449434410148351686573498025480912031584368125759517925650463938108908700947692839029618308200010146104437254955198708723103043048995869052587690254602068876761549275376217586692200979437371050257801417287548672834910001987508909205096675122494296888286863996945553877755626559949279237828766899779518057939961936119152580010170125068300313031255616348947639877931894323625571246444633166386140309163270058896783565364127400676416025585293186228914598692727023780782298447017680379609578254431210216034217880451626073886177620526127372370899458162364010974414013371899598331254127844631314860432124171803601985904219736320577791422477784887552005158853034879915610443718848070867681383328802386270465802876774894962463377278590764388908406956860919496988314270843513316999552471304607007303704544339052611887460988830879039332920464389881843897802468740743707154566505346664651514678020045300994704923639461850719909906382839494309632877564540355769148389350222019532620577222064049136647738878264459735080084277954335842996682632233393856181018219374917414313630324683651494731424953520218149905411762320747288564400284293059572364400478974650385726610035135000470762124489243188303157335064277942675826724125833934576722536617321494277720982055508771099443827583930218805016910294274857918144215006700734414044370152700283232269830944307312882778897470702680973614341841537075587355098297455688651869108001926276153548532034668208542821597414478783952778712309566385941272657219924505046371753350989371669551097461083661168316653808847179743990404761694379893575912512875636064877310820272748947286017971934058208309536449766826496383491531793068872620535217673355807092590272913244236184876587279490219069499191926296056784711552777143741350102784253140548740846335935826090580180164783269154394499053917646717956312942925446185462409438998544454198819313658796672418434735465606742314724062177321340732766741551718387668328417970886040755571127129401150894836418232611246958306717007056491912512203029207782027273737732148352112344818688639587185433993790943069099711861692768780175151284557918511797538325223549856880570641180813666753343191350402028565413082120500579836476078261700061311066747948033317964600746487604850601132854507623245382586206435449153266590802284927944796506383395580195555310719661995998551572654058555951371783220736378019590509235789773617024303443717989052813960276474858020178217398527237971087405267562270989574502549083583232094434965929992664944256686671266732319793281082686916752114962572754393439181556718990138673610406995712559376796503525896601709605238831919481476232279922953580320835169849596320135797028075864534014582476898098636200495423697743119798419185066372239660502067971502882574093794080745945973585864005002108449869101354674505950186187670134903440162150818362039478549525602625360715795183416832363685461807869105650768068542762002396312881060350149192296755699796222576313954652649069980802368095655055493220127405939246289645960541817896443814165864471235336000485661344736133390990574098335857280070383975597403141055572013743077468477495360779662729577455320858351072227203121340058116347229237719183613967498748059247075745279912928647083452712877385551094365182317649893865599601263494587384921312525201521108345713623922391188321715691130306070864326637698916593679263949083757600243259339909280207963399810293786749766825326385903560068700842191507884228742344749860970420440152318976451762897938117129893424801068452148738649228601405992129336325978748750496886600927062444049637318358625403934704941720083830352022436925457892239652465045162713361385887274521859221141093038122678231907628611891387524707826497181068369633002261014449158270406402724656069221685716204417913846180125572422542289075072039411740893013974992916968655919111262156929706297552402045525676483795494269494484704770305027902937092524233818486904336022417328906280762575597430120758539490773557592633350956517265940738996449709420436299611224080564033029596667012794772498146831936606391353065179762795170265546140224836475799633057915649383648943629635496912184926957372097622079783637070158114151998435212546367045397494181659432676377636135963736154321192467437555789972710316729371046456658587899594870141718205872398771355719023646487963820583123043553515086593523581117084524412116042032140240313171791224784462861042032386118204929650500189142971609825186607650495921183280217313019816575481635702103909797071615484074062134874884037843179425672354765024163885312965692717871611269292904783724509419190953797030377766230929302393266446115555999458628254807754405583276645849807529452124305149327561803883654906912628552857845187635470874137861004906538198349103483286591999538861453821757397743527724321073900852979589558248646429109842818860127560156056511258585447739511016159634852337738536575270853322332685587732799212232760198567905576767751136733481387373103118841562251522608929616454275643472139117471908395499420254922954810230732132055544679014464560134877267562355780866171350498855837983709147041512539845331375474073937644360374454359891222662194021001241216668086919585350421749488093269711395342760903270365902504027621718622179019446090334612664847370726533377126723790668218008029080916552881462862464355685354409489061912201697442754456070609508713591715443481134327095687424379968371408666628048933235984338449057639272036592883272177367340177967560689138508217221587468189854874632756068142306223148163566027498492097487507900909365131840303320498442447969036098075822055287957501451915775056297772603653686676632094249931215261359556693643604577745393028723315908419224306721707204971956619874452732963407597147684564084263727401424573746443655220426633997075454997631283378219398904906010028067541749486510602911597131333626946439112316599758464149571272636328409162831889643451903796701358783408665677801289333046592375905278314135991874412931945128136054338034733056767170583880552580880254539175148815861805641098723329001525742257486400591636511890142298953697238815629956848554798188176647109333031258313508350854419371360020963889837316205849246344654404518665182509969243255355637513255173545531016062609628833118890239924875666885289870297463806018063694959527092550474047027315304077861571592476786644000231811100916720610054216314136183206066313257020554177362934123969896394051074502774982711219461715766292350443094577405037540458398579329102574067995117274215196557656417048636896791152706729065244908875232292982352930067459447995223939491008161043709176840481193129207026597031623889618537275820893687019014400977197127855747199343295898630241693123834276175624830412690704455515776307851736129773572187325767880478219082703512801074543597806516304404390413290518001171362554149557749061753601662311989197646124580597780080278858854472456740876569249439254664000616273290058138115484251128226977699490505891027920871180212729350302287125562806929042845417780517448331030061102648653589617514328409577815293316617718974722711603869299844882068889318201503128965565907347722908035293150395867386156044300121149377236009457043185514009687803557474787162565661734048725661665850298878246150810024315217696609926192402168027852294380911049319181947164773612460158119979618773891901315430602893648613046193009433160679101069437509645363433312136839755762371966499122375018864355826691943353953953123398463250197252854540603825563594665147655268901430163907961764490853935253899830464088917103752690714127547534064069766708619609208352725675302323937865188620067907032225791831784874897582646646148286215527271342902094065583191527486187072768963242176724613275886824186932050211189730714844355098272376062542895302952605888956450456716406878778484902907822820153356385323190883483342899765158907358117792995109695615719925881307400608182448122180971893759089369223230742726672021693443374373176065449577716483465461770508235112521859059158183091281923731673568365327440986430983410291939376797612143685321113514530271626440579879792579638737973307894969346298983588432897126119095025431036223703631425113951502777818677558749793193939909472729554526613911130682660027241249481735715102971626203179831003117209935951459723209468560728761488870626337255510375626606131116649905454337789884240956586728084531119275097975626660199426744300313616036454540276278273054314893017867455891473677802352951584338963189380502182506736803982814959091970650513132820933884334835220246238608431091143947706960156130033768678655550417618161527454738362591847514387368378502289447046078413337786931902499818570065926949257883085170646315100114138227854349523100232100359725755658726925299920065844800716454049026548776158014308656299850664480281899742926015410947263144112198934454355764997115940740100682887710253422494549375703512214269644779924592811743217938473040744240383343916605109703256968817497640469148764273115152787974530336148787846095608025989725870606458076766542429696375387413573308072424199570544799467301888414585331539316390011455583756528622220272729605765672142014842904564293612138365719708763752760066866494069707251211110351373456804653888229037333344449148404263157380312836431932180801077351921879475409892270461189244918440007900815638464090423722575583733989966953454664021315580963224966600829609439051532877981568204565574524742109108104607307085870240677920771421470149359506621821862741748125748519270135533977042047990112540099384216414551222111166865352602732211742794229914424288783937075287233245451602423835520289674579341443147028893421123947131565838113028549459247959200237234235931957318738481488038996915144891118685213644454110725435699152712272677243906497353523053644912226311016165535184249724159333999480191914390225699925302857473236428319353955616735046557202532966875233661819479293830045545339834576203400936890101294518093439159553620735940500072155777291125333924199466327878733319986995020552083076743856834647925502852453020456652248636376499108696653192491689571263430004178232678511338971617630086559829428825362016202619502984576041566594908765310880861785005063988947017601339166656211292694975381430008568271943341053451717795584075567109859117964348353740396482738272317778483415778964742590624849114681858703131825439108921579606882212822495834579297353356535277168151752456256675911614814613102919464347284239483105924913895882209803064476246640275613155853945228827773153301133775656701471996892934356653421941754677026764786373749386288538931000062155472814168829145434251559278884451971555485500767886853440232137615796973596863698034655542911256300762987143079279830063548500433172532496263596410920268461004987843222424267036822006957610290040376351173903421280216869884072245186771773366417007245213607109790622677629827785028534465230160441420352335662402341467545278644565193979575680712266809485766132124746081672730632913371161973906590373183412344717410940470682865394844985981024887376773921652787974865462461860288948849920864135052112585212035316884243720630736656020940682408058577180655008481351298051596605583378797737951033207302598803601048141771890849579344758044648997887218042204441128870404439408863348118929018634443510275156715075712480679739097511753538555827334907402763777554102848455446442974206482785743090192365286647285525005196417509061469948302883164331241453890463335273340899427157442445276713363220476695080588976063548103158498375001292690961743145558080515062993218397706567508113507303705789303722372196173209144846533141467979258469399401359124586857766547540015683664159273501810358064305282174015337868256854273138970390084462063573687068360951190824459729160992426201734357251383968470657561301526935203004350146766756101753914382639065107620686254789832928290145598643234919847176101263045133533849896062869673859230293693132767207669515480194585359157549618712372441326193640529484155552801690914621457348046503299290741376846452987650959131142342556042864888201342156037393440548934202539684950174155097631909750897252675316133831122312377813667954240196874195102067431117765509933200834847703360016841988700402000809571145255919533889962561940029475449977673419951240139697921949182771467103378635256360427670577355008879073327307833927001664200436110767056714087948638485835663402769571085310014719149095151935230873564763246283387801681407046391847010068656876731719990135254741747243519438691460828108529442070252423360243936494429967693507513499528344575511301789020724029316204522114485427186599551202370374532181492047024137175929531414172539011087585419290937060947251976213797077539463731232022124198146996060625582862890349497373182435866175591926939690741524925827082661607609447520729671982634064956344651456728198294898518076912967961510845174226037536390216090467935656311091004881598665459592062860024786437235053752145221166835529481712859973877808344486433210086037056524888685995428949527868266327274012927278265097387448084208501204063239490175133392510403746147109468269559637564348297631741763003978689278058379655072447581102908307126516712606737846745409623181744843124700234068608406190904223893332615468675208512808393101420234721889589044714057763472783464498278845915407141905858235569456687009396173292200133706818142267376097223174498767667854480404895750897315739282608513167980402098830623152195434120796456071491138699037421615286788805694045801872187718590339645999658432776870824987683690001435028079060336716582295769471072497541698371408735480609327929718236475741070393964506365355746395228895933421844742837607833343161499782111202710585369657984184626663104060751424503676413732132878696922364132210883545689965190668866387203582317621358201638661700721202396967565067779089694106098828237552555818685230654812658138294877751003672895416654713540033803677152147756089949210715401981922624272626778095537005108613127540288602084593862749323551609871792954668285273537673249588019038364524557283254659917205729308244895579240187134929593584377688011866064948581342015308162782977964040062740945072414752623100780422000408425118162912747556898765869800410181304674543487397260871710157141312462341654082359898209453620295164203903218817967956379279400826636206201136044410031918669229180127281139499020294940973850623338963698031200953452768565987173246096566366805338066553882960228750965119519837311625134198347870691485585573221081910225048102096216661060730549707499589937925593350621539432825159281675451514023414515271542792641714212894103658767811586343020258374909564705898681575534067652043543854657683878252942464971930650400542144321874440954712937155061907145552076137481816051404664346404195279106393766252798416457253669248574509982318451802235897095692378750748987639680303980030748319990064174217307571009439944836898819626158233018607412505031635335552474793671488808609342922836362046982542641534411699355274759251366435281186607957176323417912336977157625349807614093035992820244113062344466660491789246749999327818035463506250575995940179789472818789272764761742725793683931481040685232846872576613004237732673788777783997422999587285161863898798318095136824320145402935250940046138718157573420012648692749177252290671650961581839911221286665768929627688709877945424490751744862833237916259388148993682059606089601492167517831854760092174077724103835199925219247082548648693260951768952161473779997185612556631480163737354849383697771514840622106637915224473781446046068025464079095736036430082643135289488538555108876394936103464178790215111616569070147500590928444761016549905277440910218498993218832009964309031875569267021854703860810281940002086354721123992873212833222939513745979116605508677081251065417625351479484930014078425801707255595677281533946341375386087059698721359850462224195922995006787092816259891615962420245112938931240736683290968929903302108627499687137264597859749774074006723986140399115316101032611310733152672457456193243209414908708169061549939123450797661012071932226612873124797057275248065470152008575118693358896718715608021611487358411341526618507721722927575799397826790987031829250075124162275281766740674916715880065233082591491101624522091360069906944586368479745546288199729279669809001155913135774587601920200986917579290355259591186850200097226206112733029830567690601209080194542234720756617461609711908056090592727880683580715391146019674729327038915105234459742587782565523832298277143499316183553276019431299070178343349141812347951559164313494587291470296738147426681339363454111602484051443614038286133678460311631022564724067557773117363751157876690497228965134817348814613248149859262431463544078324471041872797100768328506904462274210195231383403436946690332061540512362661764406818542541859472229667673252105170386202456673505330411097945646703595376089307980181188184514506006485067907359094146840177140168198173368356496411537126674666726985728250285661359562430787431492012533330732503873936390597394505929448259803564760429258888352138455347212202941643110283459091376811103033612704499010898705330786656402327379662303265070192099147525895064966714197827153594814778764067770795227076572598222406887277730149672534951419546530150702162699062192550692164015019838555998303925323344251235440536096972030470976624788289586159535185634057433306973072356315554274561792658156736865664973534866818021389751232928521450358970663095077812012885807026269795637017391875843499422894894567182063697727015683368070081174140131748778622864249854482072461743192166044886652923861508204504622663076140637288172101383748742729125999209447378050069035240347543212051560500593184625371437106789278075547262918594251108921061213440788285590578240383576737246723561988019135324862204061572575502976817079520121546184851987686838249508849908057825135042355220386654208933214388777475165613528180469931079421303682820619218106016224664359977378811210679462629613779876270260673499510867291372157569137475635210071285549924702431904975096664993033101290920266834446349936331557634580968948630993444097683064704617587710531079943950365312898934898370952741266711618996449008112961395222772243078577325134792336938608042908127529825099927040250568345645837993985460502794742469502172159471411837575046127145343385290874499644546518277488014435775658532290730920970678806553706271122044798649422772986824254721943030595305894309684231278455874570573187462059096308703074531452890607905773478903473561958116390428507755441191477314118713330286563990797080861175630961955983428203047724516040755243938369237669754464356868822015391588268240423986712676342290332050280031920005109020299097852389331098385626105240314265022293671352566602517356406599713097820980796786893609835497455001885207938762537637522414273890364237533992771236559734649146707767679817331833596222091910744064322328418358119410336527523935802277215480276094658645191759288396692718066037850262872395357089555103191566716575827485119257269616325330123496319891093400114465451475107357845069143384029404169565814674373978202559932319966027256890218175318825511752097010187498679555996385012461916839061212403728398573414250264990485106017083792854225237031296640162574130263920491966820987046549166604153514553758490345999906927430240464776910856433273851658423906130743166661424408784847096647739638667830238637376051937057364488888185336705439286867913964368463236569234573498774872257725957010064822690029595718881397066427772787045738819088172209226428584962360140591836663593818389199805947927714437026610751193416056989957868500559996754683236317482081137118123605069095653350767289434942725053665475907463230080642372246972156236246242156723231835876339835615692159086985489575915720716329804075419824115113606166898920961310142772875758025875406491542954819974211821485321775501580103902979121651105663393545957505735446633538080869761582139254291495048281826732692129731873743040266491545180098864554340872908881398145644071512862469719981602100658052058906471684687658693062384635494078518228157020322949447437677370839266143394025357861089050903263152941341000942744355462566240945440920066065725673618082316929052197085273236444273604199284040823408556465509063970013607293319733945868964115920225524551373440078613827971626271186547397036055463601138773981709956399214268740686411391398582373490897666135839185144194752789446720174088393329037769640245220223421053898791006834600492374084455477673344598278118318279638571865037359329007471557889275500560262198047646653394973320412143243872222280846982681654045747042472961130688777965769874021551422891451231985998328824096699374492680335202535356242205303293324931814366642969237342865158257320801994886137318912592433027334134155288615579497792436100508656755844400612615520106936065477732139187270589521370929836973188323679102965084929366613604894440446712169411573941391572167151578738476211169490581769794573179480834446056129247361614752607434183145166954617238263373864675565999360819194906210556143081838729290410311567529152643427253255849552959399703560453228374250149732233736620659573394136453512224757794624498843387672673633764663916856241527275775953770812189103321108972615685441159141918314081600499314251046854586087649836595299270627137299110664400695282901699256130180311949428494037857525802583761514482946147563718850392642315907994805799907593494717299338563542829190819927019534418600484265998349520981929173713241157331019502486617352377820950720887940848064992101041573716675415348803036271524485153086271891778094404341525870348357483256763271545666108031164882364982221508437942819673474078766555793933807729188204271406561781045656360398319299787205844653438605663728232694216418459663117082137852411955417709203606276561450131368057297928528769476039875245681329196097659079175079134280836498387377113343659700339043257445156834467955933586367327074717176345834896964298298805350525380700057040826853725410038374070526501492900715688257142812208241481382404693442475650435906729077551209050783806351100722669580434306547750121017584576685402542145514156254894425575694663961527918101326888174847457704045758564964799221919811129120026331512446064905744871006901926288799035981523477833257675860151380833824324816686003068158982842078907038625423657836331562424759183944468534028052940242922280062214430628054822031031064990199567380493860131804871154974704524578334217306641939644903843614410422061361166268908507737430257047781425530138540789405853192219478006655713865371599409140708045546375265527262987484630912539276006224772788874110578086423182935996045265281301132266168357071217100397554768001920456909281988101210425493567366952376138065502595690548379507680232405288324031793567805834271715164693660667266457924149653201954107668473823061895763808078077001072912573094598527118096814525259323479454932923588995838083134874079230612057009199554939374643629893667773965972626286963181457238643858906869958708995069820811565806942960683130245589542599113652509235757955176110560345120370524968928077630446290018423862459997201515923333856807581160562626214707492297337047347773182154403567870279676781012514505953512592927581879777197616500413781502137423640660398345947802958085571929139843510345880681893052538101143710661590573296847463168180755442855105582824403197042654572847600990849152140632284186823253329698821165017343587303917090452500552485806308837323920232139489861171764857329251239347532371189927647626321138166491601722827974385057510078464307603912623270762694118843208944101513587985440561204315674219451296402960283215767921489032414350526456148565847763629172201003109912180772078717301482585218522036538162616340743816205513195825358636245562909330568944703324459704016582502487900628624805264029322448749183270366196746439950333528772839017352300008703506867372820849520860011972829407604462588030011461868091215497833346007865555414273572376638832856612899648931432224519697539631611285755734739673128905295416412877371895274829600322841204376115985800295461305527569169465283817666676846338337873154678627170978145101636333898407554440443234700600345278420578518609582931338284026354012146130150203948325387864374619633345689157727807785166023260943133242665392152153438728669151209583308540486082644194168513387234109952938900077828955622512153416650667685813459992933474253971232269267008707636111524089599916858533093662112730610034163367035912500898959377848490011479517393383542557420306420706509544320135128447537961716804323023858914465019352581848248814411148358652610120580986872332469844892327167048864915057633051822068235291530247371600802985776624261209569053142344669013224942232783067410343841350314168222947584924587862089350279020478324111026410389941304841796346672575954445861708839191966589144122965329140769155578452932641017372748348565330816315275868033688376597459397720211638734954364993148677970034088284124368983458578834260664896158045373847185841027080990871745705075115156133497359115390605169455725945350690487560971600930194365383717817824199911982478568653895462759053170155647268897621161334190249049499039946609885365229064377541839604748005739713005482455217410837283807082520049589203634533227249745573237101520237848779585536546907455510372629229163616564138151595790337631135584528383395966081841140432083672464567228971304044937726379819707004702197917455577757507057171614579471655030176502619474246128895942801415702532148400164964507188474262272549399991931030136465481542583033934860964562999384781270610727972187391192654820652744449627325454185267474229633200846680233726282801647624177394753799673788610894738180685835356199208458519213149338426651996497296295566156744572671578658892088207639174627152663262388721813231883217246171641057966083467051227075950913037072019674966809791388130385976608992722459449642138046428462689723722977290347278336877654850068615387303773833845392985153205278760769096295563600720898236066142396459259508768183725062787276568279232453568952093346373066423248190738514170844255847860885914733263294569687346079198171135450560572055496406641877896347240839490472014828628230163366189552685432014891333995338472885373123906490108716318067571078656008873325539082773248695294197411533727282123819394424894975658180072054990358694422709306275075051473720357390947019787502409639155737207333885733488349214020043845675313088036424320199363413243291087877293308093208684575013874187022480160396416560295792101480701006691910661427032363051407115536866592568925672962066864815659110292256301616480893247500801171866607908017814023978869622450345886708524561880507452021163893526655650333304197661306068179677438966194616601310334070463867100695363175873973795574566327429620427254838965334376838755496740905829789824013509358318473597486736789686685332420337079120459199511928273084487605779964038590201088642529879304782112663072887068105149456342683118845383164101407541834861222051127940186311798724810260732269102498189219883915669923340785160584925107597564268732916315562682553132214140982055200568775300030310101151866737476982930257326251597505267915167217865236357289523477261646862242814375728001920503512715254209210480181865144333960463370278672853966826705324156741635163824456975276489708194869926784679203994508451109502727258411867190359049968010280597013294958167373954692837497111915272833288384090719409155748011471010275646901277564068817646028989776694118819542761659770194651609688527349118457200659012006782861089463330454512012711629900937230473230250143050058520459749436454718299480635690529936257387490719281162078049781468451818311324600316027980566049704673143968432483796210483069704859257594245089041950289970711362529270050108344598567167762042359995896654366405569981703905854404047644178889646675993935865566829270222408448922278569825882236083284953407444181911801741205471716509738970597977155804192396765090728556304333203029229177270219061042175100954201464607723603442422596505217327947292733241378762176621523619606572738768798516507146319259364375014812300392489637535886549207574383941826799344165061908301814625612311068827120973880179872580080145814935469590307937014943608031330022570362439426470622285542394138437332439618526996403958461573838372766947945705905935614321289071084084588460492473762379402391197513946616681266053248986251000698285525466074188053716580097547746296781950127977469066699637508340487122932161387470053955945637817578897883709058475959987946216925151748138695153309713926025971986888531253170854177407212914738235721668619851991448607145934645603514401504676567823237993795000418629406462408159244006016582495322470018961127741073648041097846704203432800183940355350548814036889705191144020810054368555707187225132509296732968727366902666494366216470643344413739889058684675501823850244928470575165110298938330582463594433847235057364430120787128347659357211799155440760677378667391908810263791187637907204826838033412325162159056189545669773012046612067638652497289487980320572213106573470979449346613076707048107503942704727738311664837332210053313002079419256988454639446733366268110901035489757445289431162905891051072060802566979547179475494110291356168272468406912769439100929998652347610849863819955685691158965211527296733132897560944607540486110408935306634196087878149777432717976369009957256718975405286209700250544751007711976135681792418707274492371660681614100244796703471472285989149298879841262632600857203297561404859124382895045445329365191826162088124058272714851841002648558545363726320477705612069098431952702615953698130974350778263935561389889454757135633143888734810231055823328964429944854500705386540037638424928780739963572656123068041065995407797782270639388458958925182862539516758883941083153503996938130057421569058255482481546122560738626704235187589741506448696106937388929463898894665239039875473582678082458132949462103819850070958978140331527366826299666153546062523326537181423648828011694143361914448689999792286410815435570417649763078611178657992513754085997203144389062582905889660668327120258937590434209801782782110668900250410415654437210381779811112966293051807394826872735079400319308943778915213847360399472885076999813222248281193387089032252767647126392414896004084896893760095474591948114890477893423765040113908006003345468525196260267399862441799650630778070855223363708488405654208762554826580204510805113354781294758807921817395964466259064146444145075176466930979458340893347477263473862790718387651840889523126714844683234043392228045515655733190051126742962694800125536525271340732603672660550183441561686977214266267011070089901928339651824150558076737987737253343363909513237120050156867203595544055537201659809869354939684468551238333991545592623334442951158982690699672185742332694007473698925885059791298582629744108085117426758973602690094914087027635814970543045288980142861319595905101454803857404208549543662992626760707470777667383026903138299018866721714084215887373699919664863222032806228793507813859311009851277439646850386909231594041519045286382939481994453616899900151897683162945298279507828750725417013218842776830338971800608197586944180927821061313307959709291039860401695136952661542372901077818689800760032841222316986363942180773332007034949686623896180986470185158842219145956320040232315804514190808461628944831420325041049529119729947314193000179467385565737924533896555584703592153371205213622764217702473118575163685717596373306992835855378719589031898578172511726815101965990423556411743194179682131894304162139402507701076624192809470567669250885889840223243421050209029384188793889904958921608029177343257974081651687499954692283066036329761216648710844679428316426604979811921773090652539242192890687759156835921146159809812902616896325631426609244944362179520814491850310192563499928138581385651951341000433705430590493861091826748963960043429412332250332049608406091635923078219114828925467574429121739804158621743344490250469958432497082973719936127535602420256082906556107143845630233849072200963093311127848262112235621487983014381329655521494306249560650288788607533679788339413339389252162870980348381284355321297696223358824463901202653736434333803098602554770810020700029961939367555036030422079200391790608067135185345856068625985923720819812307982473123235203033791858208720635634917376434670282879300676137766119044381909230214673220532724401704330469353551617456711717933241806361937651265026049686983345960964474204748991746820112050703877334768510023804301100992603105926768151625076420005423374909509943786899541929031814742008168030808709857617887222772983953587442883848470576872070171606198157326323535976821467414879282613793491807086655406221352715950781563985434368525176081782537178730573764611931834782231008309418076039193901175459396150772008439016758896536214527733886709259130176259038213393111959605166872669028329931325877383189545410144542349700266761768707081994138346440682298116074248122897649202634858048985293710956152196758436659839561669499591796851645722596366324466104460066938219915779028730817245375205220680304340424825171659043166801596508235646768833247916025730260518171022905719469631823788073552762305080026563246986317473965051340172092042519673764878393937722884347276725911396147551427540992420736505418695440402322329744711769722051438436056402312823101466572463465093208769894677062972881816346642972987096454540621137441573669236813358951038081437984133296125644531683715155121270239804137819273156675007597996392522986059797916146444727317759534337499305951759209606774845979179679637956279292103267948858334707188761708693478589703433743207464917360672796822516217565598740410013706462712397459632627503599078624302176571826853799172121356294627735813596587491907484574993169100485653200498227771260037519350635080722365128905829748501863115628342668085972109835291303683966614116746106380241159717173230266365692934827608883637616200196546828654023434567760818332936455045585978702566312519647079748768613757869086089856173953152753277848605480218994558234275919425462464544513618061389723528871141892506632437181194425723422295422887909058745101721047725652431019718660326732088116903331711775733388933893978061761924378839113294601018343384555025917997628660338217270957685878648403286340881084894373962856422665880520220451875735587234919220361880464498092480346672031551351441235813467537757140874166583009932204292551284442197144863557793414754791173453273949579060309341228446778065922130301509930978594441702215432764200798135913751124930033445466164821384163910968334655219672220484942712053041289103019454747962042317211461650813057019996359996340669900089648006719529564415003380467218588625029830973693035889369000654822683962567062190505783981364652046355142226497387188259058633880315458252425678192854958601208119647615901614427102141068171662106370290566526468092213357603613281075307550440845218173027791944745309866663318443424560582094587486093235202501543270131693827985939724009005353845907200202808586493082248439469420510169716869809799489756155860268976875282619566045298050765624565778555407561544870571656531060075587471123237468812376542471089597961423559908037061917480749266504942852507719914398143497359995651372549105999733888961275887518744511246848809044871324896569960160565166789530726434458798700734208535870662717577816853859398606034533580133898649067484463336928500124288879214487005090963466981757519725902442967714941618399966936241209215832878015159650858490007907808225174693709706702694167961112128395992384614105642871207777263427780390439880786814412318042585739150601285227609144960760498849905697069627577863838639500342259851890020137818079470312096564828316459508666643846868507659648821553581160586137778459147218079017021716245905334209318219902078707162521120108985684898226886236275997302634011368215438820878013799075096472413967010971832087431248860400097924345959788965396297941251908578893995606998005211560200500658518322663160625510409733670240025770401577225833144555789655264304076593110148772685403461970325941867087054454017446135115230780018155704553017866600641345759596712957008252219146044379547952143768469296929799894468163394745500446959556745319572984849908224912219483257534013673158034450789229709801448606499249709527953945543023302729876730401070049315761504327093510148706849566337299628960015344505149423912196810073012231195538099508410423863141271986344280390647145713283292153469886714399673777530157855834949469955620397129060510027475795429813578739621734831987205247464158834734497807641507508284688305332786711043744163716043557085368019225249514341648045156059688075372079269310818901744778758772495730575232330178191517193361304553516600810828272317282002375217480900989989164854878163733848623254831946960671311569982302796949767733676899747724598222429533380037495076091371514765593636382633078672467754280072491710637804062459505542263219110845188009703446548474757173023914334940357241640023042346993350058843842196318991364082088754837224086182905400135713210167113941369235126384841299899065823585240132426169324378525885227173075459818173004737718056625588529974335734997591932630469078378169604661793561173626744732368155596528556368064153865956977858666826359831855341928430442362281179612081895364737958820311145975548659692702405346143779456801150251153786224955684480875602897539203465317884076145824783363795525384524386772408553817775682989184575997030886931574289567741172063287048160312124249136189713702635675040854027157464137488827724060344424456385720807974835477745868017750592745931482366869946081334621003156686071326709679253196874032704783798606715719038369877780726462278866243401017486938460597638747383444762550769599724847047598597423351110787432378982235480215844352355843623294450242357658902752431536252246342965510843056329951739966250443074948917046286187152796918180279034959337799176660251420595613094552759652134366463876454255972138531802233551220683258263695283816778924659097921934048333525507828309847186261475609986828158047190722046665395601490738010562633976049237644279122464211388563079728900769801168586255069017964173683246596588077247808583078025695757951376076783951744690255090809530817866097230193533953917440725553332647525735871022065028385026900999303488320789180596386934597838187617599958678634583250311861477701009305715768136344342765573945371695601717382979493016165474005014593340181984447137256880426490755157626254489520695389824870910393390145859449721149699277571998304351724633996541975269204259112614522022740083512682810713653610486272211036452541700877956240509751834137281448202222036788047633947905804258091417776474914018697662274415437028756930926065158952020724201146779458695348148382817382572616611464359778785211315110742911712410414093811425568561308204163543028943882754958880384493744836974901805407713516858731743283704583563691992459005780701575115898866102064452133044748149062403921818613304843698454260963593589199558311869465472639142218068266111862764616264679703293656820990960846580984283327553512137179854743979573432307333899095526698361324339682308971500996658667360419137448447544932493607061497250694020315435366481982661488743087537753934851706232926989216991091277546330202512008633478831628504912720600918238517202985630250297076534840785062565801677957043624510028847056661631757849173266248034013828393027596205433729931916830051712374049885963052008576742079015792116685847816445418768182846682695631587910239353266491772054663308962212235647104757171162083859592407501626409558361665013613414818487161765662801585575587184217413179178880918401966396808817309641849546645643180837947485640658448625517521652079864533181523608957434774397293688787499965538067213965094676127025303981330279500169646381252592258448854826510332876864053137287931911468549405370870114673622079635547328124703589596804337574536997001656062669649435400353226319538307246268992509825892758310872914592603290943638204026714637520785319456221547756015059008489491950059871442644097076513580593798961113273140053975883443252130762092415408213291145499821372509104423843718623013775244517122383475482600903385828304942378672935826777753974322568893462192253988049887184072580800862894093990959605909141859590121722279947368487620091678626414059244096384716407712898332750670799048048065313927989757677215132605989642344412163642881791328928162044067529439492522647472468638886056362452461171293072475462743823767501228405751786977678110254198892874262643050667440200864160124851415485212478433204451123149105398189934143171175283269312919070627992695057819133013657263922338714912030137206603069677122207519332966533264333042304205710695875709641959633770134469046896761668461782588321652883855252430441200094561582725798044666635075732332162456131753946832594244205362592938385025723114080198764901320199877915156373256474460379111103027728261923506448292293646986120303841701098333211242137940268013410588320948589219390193566537178231158713509451557731615352036379041824777958949258136494685622150961488196395298421520260197691249602718789508395435959527664170206019555660835670609400918922954154805901266532855070712779433159487198446220635038506768511118543863316145444187771206440574250002130651653139237799715758936726581824692691643954695796929632530801530058910998275572274287246982347275691639228845781861690568140910131898158331869440278987350072474099799781340118640939292816450558889460613976138837189053384956736897290472982563518995745328435374890860777211627718910349848359933667455340509270294761239599236977167545529210703548213743911744433598249929488933813362704424634236086226015133190496782839398939437256842508176891262177739126801013465337119413453654436143144643460346625868696728128591316670629628875495181517347810998366351585920883836999070689951928273022560471830811117760353370405597602115191934815040439906224328739970355670352949266197452250284491559323875099412382898604313810977268299008869767664054595901277902989611490660492952627508368678261441245883346163390867955422093631917778006033804128040421978691660724846607742326484658467031740869942608377226274147494868395312178860976405697059211559999794983914838228259145845157740082101870423520552760485604611340443243921462177805391010105712769748151648189400569780238309611196105544701360595845521278648003271624150180330512093834186443654805525722615832327606573003734537277270227949341092929922378884024063635248262155187596465071251122860519566392183826078852792562580543101716147649136750699882064367020939238686307367825515384651370375101236028694771427582416528444440623432356945228697884064238399040939298546689909048823095346845685021354378846729258201274432655967929682067420077964053974971930433736384881185791473799243123066939365380314866927104792233168663940564627028786253107979348222875946523098096147864464492691121349993451742393611765405473822124556252401000232691435985035083718544280034528130287872576594788840663613130810346856494483418909952364449276517059674558365659508984250173279937332318152403514843274676989757156190174041541991265979979985818779799331347463847427282294352957064925906505772817588258343586628271827358466389618348039160267847841188659177552096657423047114598277582511194142959289032846857273151736637904216708939960362864739966173316304559644439380687765435199503425414297019209338746139991541114004031875259310087310985395857804437843970536052012666214567279951857734639482921956614958366898223249631100483532249877165132056080741480754502341246387956620253452715187649203454319020508601266612948547179593807027621333616305868285535742816208326733648315745588435528425097336296107253768744433368231622466148232080930026552573141083251106842858301102356918462472977293369637641510519928488026128506856814699528042640115090148864963364519228499753120450398678302232896968082656045841044908123944818891369503923689839229876014455169714618091682448861683498549189835058164870615999315900903608051345195912018687807118071051613902489557119190211010886091688124486002593933065679427508579882774149950279358778309425410467293634630036405830073175786834334853411802177405507169315122029117552993892245544770782168082949870293204453832042637741138594964024332365997510223867996329060844548103952718793074441818303621572964888874268642808477961697289394091661577056303276693436243714272330838805385195955965454341781151326505029201755350760198503470349024982467665912695888288419313691936466825777535072338716377610157036690007527295845366212540556699688154968241216916557222095820178742944611826060596767104795097500787418878258247162463173908787138423871022234991122024528892652827095149169739184109270210866959259650890669479383000900350370247205050376226991880041453995456952504525564557813237353502294794936322324252261186230459635136685219518591990521468398798079477909225842820871814586817345746160493813612877888280899102464958109277637886727305343340724827131827902706764112003439324758589618709881561426360314038870423448170073620336172700639513807417363383021202036820389788963266929879076283107104210496952980282473809299139514686317301252937744311511095354386647984979931790971935031797452345884624648322845115653413877778021241110797860907650974480962437789807591070019706295199942689265070914161489315136477453728836497014814012616587425999573499519422457198378606685329172443801629624263529634304168874291762130738645721815807107897918217242405572175338258998608725451234734380994969598053898522956689735428233493666278166551132896747211987191293455059478046612990306645373505220449544093545833961831803504073734318910427358188070828648510510894411474852343519865984261919650584142500333198946926901757180051890782662287643381314927972745610520148594485798748646407807913770107928444029061303336157725619170794042944020286920934452640765150423452713556175923272081315494630197874866342988723961327418299544573412451873833608971719382055850513836298428257844187060660478286019192118621304474716051982944557929815230723010024221087221841944866097828516772561568192320345551658251938094506896481975173008129034730952792618365472486085824742808927623408937227410470892357128779499326326825957109850633535231010326011886562257927703178645336398498254478472942887154981349363646757665394977367307549489108668245515935443499205446042708575638077322623206766575949043486098833861947752898977674529889200008884333464878457779909750449205406103085828909586920250635532617652959560807137594509515952884148183729517944842328479456167596684921134361713129627695966312703655654832692363901505447559087955932658075373685083685017108107918162704766622969738996048101368943873976278394562996300873675219274632218169655476982443987608397214713353667503916977961850397067647705334306555639839090101818506381979404304805422923099583423819955050547315774209988899498677655037199535995860269330306363031704047095556173193518371384510958326495460213452350479872382416522784319015173162756352413515433461445273976215714645483640958811301966121561545399323540946532946059718761459053565789422482239465717638583753172132585141954285271866772537048077425695768103794654947601995945804429467514158807256483044383799754547972913882367570852802510137669428650307635630364073246529697906616840011826774098777312568362242494368843121233436786441382632717010650183649445990522900192132327131272188589897454816463457904068461092637496074592941847216472102037536484326751126453287880742399903708394924465572605281975521151488936047142588598642563592016843206468102389490983846435456598312920607580325045700829170701871069631448132605592316225821503421436345808604211723992974768459873365864898191189431386916678873141343720033443182068749062417080557709600975814361146514937223566774355376749098393165761174237613685969800769686381162038146573860926753393933639478147026264104791081400956313740411565958452447763380293405625235912089612739609058049847194454309813617335930928573924248041127128038937777333888279755789029761333043965878686309438714621662639568760798905843728385840339578717244308678371461075530971855050292504250232135288487969964205991782721306388295743351693744125564305261921432494929887482497086861163630564526283637051344514944754134826711333970171351809699657399790051490607324559623757640563820571741408585847600968096905967048600613479276626839876671997825402423730532465695155255717651932717976513200592067691520243916552372754970057374730325645957060481432432703218471101560842342058859001029190015670975461450584683146955098833684249654433138593576294803026149703864834410756197914447390119764404998028469009194418710450790641712499350764950911394374537488099664863464158481430558694302986841064199151451094058357902442258053297300629290368730222775588889890883528214845681831195513814632301360164053757992018244236143509298509682349280578860202294782908069705342521170519734963642390673091873651618910568936206368938927771176086547037354610710751779898926127435696095351460089060514151002590532899064886663424256208731401212598302335721125475018862902936465512935242735576955242424534588401549332718100749957478502050878736357994024432491308202114062911401338800966478314013380358011664457886059351488626113316124435080274642855326119259061048809862630336816907573145775262236540610968007771224469383516786230124005921510976119700308655765665651898200249724154452050303576027961731975213280376890158246784839879083618303816610014388965970430160411970320568167167918445076239097468890336950104750017653557977765176362540237911353265348811281690472055856257200570073733779046298489034617293419656722023297931773998971815778695572404634325699555550490434700799383729641208175697959841017337278444436226744062839892322674521714532415523151985442963159325817922096778114058407849453423159795432398913339580793197084494159842110462422484434959721814191774954838095428047139307689224287899496793739984261104147409422004454712804704117866379589623812503896027847833960716542946505402566156697822967885538306542507493785169687039827401775005170771306387730527990835674290028429267090795469347748241544250573171761205318362868535353844861932958438954296992905626668001306062175412628779537872535310091855718825702391665051169188550843797737851777830952550675437996546723042810348054303360004507945827852560249873499371830079634108825773582753133450988899331647778220256985960658852653607663322149577030319126600478040321415573027081403165263479665793078837582498084036739240292759613525190943951660812810553842426305434091439047835469417127177203618037978476791191941634876880762952825340373790932142826752412422829511842095641551720354403000703427191414808137084526140445196338603121104361794787850561574767226872670453335934563760946149999022896555841547065842209385901054748674373561609227178912044547944076450229609618694556185521611266731666262302120030924125667125181767737796465884255370980472303251548405192868237121351016566275394998026455454214963640914582053322884581762564277640408784539395000490239279400871465522128568609340541118448080584021766751876420430862933404530688439466291722744977510896833429158696804737064058598879212486070603288640377288827332461852078634678793657880902059907168329138566388844219275964656213263568582513504788778633813577312800502030522757754777941554978870927688069722459432966609960522658271069319306413422839747916915762079079589857463790076661660703108460877943910651867669427632177315715558971084463635164495753609480583288572013521339620302005286929017772272787769510421705393885877728439324930465122001170127090224581431183350711906501569495691721356000771726008295819271279904775225164510234682305818900221341417522307019435345622525071628008542804360415561213473323962232191950603681760333586125629619765270614113229719733906238528025998314276023670020718335750218945034930497138426554502542497285441178838588616413828197127957771548044732195445172622830910333528361693164470722261398195290395147008593187663537573488355607064752444515686891326507878895958522987040902906342154273688367671825055850238604719229979259076674253320236831089714759654464798876638371963892550270886161678888492886686764657881011808585426780795918533231190394344662475642448967666985233197503700487561608930708895170081280280958593201117707577691800770471193519304098945941645468798399300369910757185753578158462938963381901038937316335104058423477703257510833755184508584864894129745622855093664298966931385219384130818468414546368037938102063578614660927651405270000650053957617949018221554072342186136574100052037461532223890571295291050775612748562125789925109893247867140855599687419065756410881486730151266087188543527063174444755788035630762241962299714732824762291349083217940300701846987432336800695770505624038682585950704571478451290743364252715953907558065420337349421467071730919796877013995676284788757736468860831891420016842191737493422347462341522408443734530281277953604481493347808871952472931624027892966921822954501231100772921213139549366167147067237452568130384398024446583198564743808304624056862125068502418764335004628621337502354924245627420593558138608404962715242749177560496733666079358728652672738985870462266352582168147983003615209108936594126089010837989599255574938446181953503775524105812858196300395671292195504708249833216625457472190262823777036885643817353441769649221216242336408630011185271653330550280621797784850024627378271956504642190272091488618276808326279776135446112014657824207022534145372385177391697803594902425309909787842433682929654804409254655746831818422832988132303240065735385879982697482622447441085710479959491249610425347649289928176936696380343654523368876835795162331825743798659886337750706889862033923919662401248127641597897116181042147664977324812530399632428967348738965162492301906530643643430840818035122561941831846942519478550549008786574076793849272285692003507534373618530286063985364338741906576431895798269597762533877621401503852150184739332197638769545830907321058245782268635903078044634332135458500907192080998439244936351226901229033705653063919317163634730359176436003617959205309242390613300057392174757542545596652503061797339979264538606901886367235873947294988297813964400153701191077766794744885456148962730951862270650958801684490083513636345730989008400428634137813065226507802444173607927324669251628490707671088406880015407878363883477135861239772797844740970189482130649586503981226010067706336511513127695699402529065939620603662402784911765183993348592226978506797937721395622801276944259820581579766320357420257196782017068977980301813222290898719301308081828581811869194765695434158610212013681282571298095974980369407377564012286777932701517641187301148178166194148801825025088480278392061991271975276093215540555858285620988568333497431636490523904300939317971123525874370033725256956702184357527902274853421687800324710539627842787805326538500291500618472446303812610123842630582373612108993142757274501733905152752625455035161137157922719353048659379864904599215006071978942445226093104020920564732157131489240426268076351253290544760303001933561999022389591061190783232965822607200181533375703903031415517345698371757414110004226586196673320005807360204404081404889213951667406074766253710820748388983497492509851685400919955216716373183412976649895959437652279817533743674793044323825872132618540305450447321858423446211317473687119405216444265794486672556977231403497118031415552365861763644848960354675459372947366026951856762655544288224917125298966572399698417588451047095040164750177160907683958974092409218467094505399578567602820848777521633393523320412193842727666566539286703334961405579826348256073956305206192783543983530427328668288312635003885384180387948300126805015114811301909623448583216751367153436793071518014806369571239254908883776800837999195814869178573401422521386519850524602600731521382556853273920297709497748056633291086750813338489561270166132577410330371567946996177889375529566468880692039956530064559707165218497861749338586144168901748266355022634749665653944728835479338816484529855398909360692794574142968385126312188124843146732531182359689263343606879199008702716416318893030421199732059092731267889234191588815759007224368766349161137257080180574001660452237753644772329070099151919255216864803311924160515779563928814777376221621183435292790086810786119227236508809680481211472111327698566356163685822887635939547151570008762472295035110814116918900552693279299832508664317684265402518060906678621604849235457386315381031988463885252010636839245871882890574620312002588140631766603632389646160219006282582376589515605423288879700652083108342968837272882603875101989702259862503022053520316246386074041592452805475428879129819570055390232575722265191274320750767737452153108861096150582684512843940887834974643853654499912155825812274415289356331372251921594765495906067086271340609758524947004864766115856538660424621965424714461321545013764423201408072263039537790232853170198342361985646426947277632554320830568218686726827738749330099130894152261018162173106542366975827149001545180852065737933805544413090880494836831908434162048748492384765787590824600680505332862836773103053441292164530686618062671393030559888994689781108872744603313862049931850792310329295386142490198247761533299961417099140998534663602111424135623877988692030189557866885879627006272322089314596055473417275219892213043151970343923926068649227181012501428461186671110245330952451252874373318799610223160087043533152471688030969184366417187724422850640744564771060079227788091782102444823940434693173424222503070224531800792296120217442892406415904411239680974448885753120700416002618965012392474975116368938448045868952279821462026317389535408210468548480524417797416468947184027568162979976204768874879861639309627925675026459515250233065093922246474002940603537949073139588524779971375898689658177859874861804350525519975366565949402048402448493156440482985860475528543209506624730271685891526215209235596544008943287236566586708130901426347755845735086834531856677400341167371130430674040261371039476803847984320111299140267409356652142921975670644556799557303662573071613881479454285685922236926231420631864668259811813696947382086605991413986475869375903499474170699976148555775086027536178462184676117826008995362881203783548186435648194305975789384609921640778617986675336792052774027995764114366722781464138891126444355721968759492999733576435708121200990383747129953408948742194596700584093885688784899284060309022858837394822327346443513122674458934935955071611393738984233077371535692793285765775792386656932281119394141539397212451327455659009679565582942048238533815808729598866404970248004114717230859283134575744736996764813211374157149126060165774895691335847068120140744168745862087562170175635217577812044132008644803636310960434016904283327630706650569588649458992256192723686532712038836041700340317579446261002528483935929995443753293177281023215954097422877245898039140037094409017849795847001988936792658578089335681023014615945304333730218206784286970678057103028908345656590753070604433414505381908732207436244542258040601157926591487735715199500567058883711456899194527864797162278455696603490582888412680403377612899586219777893131660141782876635594900381397407227972050763860950186432798648394396803983569244796300298555986102286909287735527971099974020809209176618346386160288649828605032508807072449416918517567370087584539566586593306906884237645984310981807904304340710167335626882606535943840777179919325735955851974222385904048329871881556957979023695061508127395583271446934012127876615239666488573960093335402225181113316240562471339243258682988755950146397040059781293725883822370390331464901581958137472514612463968849839469011498914749171897387946004570719755706349855581576716269459897620832156722491631314419942531879954313553001396507556183056498081449534420684323263258553719248452581759756953213111235690736885732271828311986288813256860040886640264702398724144839630297799079581749591628968864559517528323838810822662912089758425807623625214361430320522384122358566932732645174467853112068389709171993844104351362466591624515546452492506038049311220943988754459114509877211654236754890119652321994958551052691509237189817690541403648260304634107336829130122005992543797695111674660671856267770110468020769986611302442420545938513427262571244198985942784010175509173158172504895871202355788108213816820783065105574161849372566432326471722888256958245736732523127461224914345607829087479679721144808956348151955529318230421169611838687424307164613258657217524953067870676199544296757251767985289789312026277928719692669816133221741941503861939767186510871930805817933791207071973563839468645823718733624343422092929178050499602392908488938004403285351279846898579069728529482660594691560245639048445172147689172644281846188078819298657389232001465321996647541721789623209309771074217709495840997756205867369357368209158239474879908364018465350510608371889462803231373184166993291681916687600239318116279847404226344110661710111963488287809260387988120412720290632996560939266189401634801713052144218854354378316998489282157521236572341338122945452915694053990902640062304225651935587193238276778063636172136972234898333054539092092700372395644753346045857571565893642008703290841527205443112168956629111632096222010492093528733949272430312016621253684235345181376273063000733687417149358724708766604417577111418487223563637743213054430147253384988463017287036165127430745194948419976336799629375684740471524202113211862792094020920043531153327231845928469605244202087969755591333213846933887720465455933699524157080116081674546935886517813148181174214412748925776481704034175907559413430132920191847284989312562627510026595825120361882813973209624865015731739150786469894256144786484297047886463717294430858583878375120273574598681167988385925965890192392871544525287713466244520610119009168739652266334068182501612653945019561066943262044692342914947786962197957770342955077485868896393187425691822974379189462168056373037070132096071259683842565673005112368732899249756760228597614480199700105166962235081305298125874605358668703615611609511286834780088732293505759028373531585678125736386162075371380515510992404767183836305620642332923976427350532337967287339238946643464096341027260400520499323853534832494343918718526270006263846283258727961657485572166197710182246019457453621188975194047717584985441039218008414406632152543314458620462498750421596690559018904954118901676803215395033429897252686909636768763779648341023511990536786186716304858835920721784503972762785221867698059964115473151340340751057241418174265562078139797030177522931803078684782209865564830038863752593476937878884001291088613219426549106573297697842113251330619603863155137983444961819816318904544923362464596111685676526113917208259179607024183434947574796006423549009664318832559599490677547613263248824019720629711057911280645755885388343110251774971689931965058757971189436341359507328154155909787073676466756817769837316348716613743133959938709297140312167230404124409649431316583878526000860028565095858232235108514784332662904679369144009923516221739976140241200507951162119016474121867297886837646348068716164487784378148024734812292190042983851103646212190471523943150584362784657919868564481277049523977239252367812152315060022384709715439283117393340119139834434533358740351509277558576680350447308020006731323317366551445297924084263142519009377106842005295860481976029773129709101909986266549115544358719640396150094800416242569949887471539087367878355547712822096240039515082638052629901790202675128401347340026016259646225531014814594987040785643848239988920575024562680319145828295856268995072888265433460049506343296275737876031489075149191118944319456013688515677033386917717274603185534785864722756495430103527869714630956970817997408059289817603010862148422432146001378120195584398169639161105907888682867137702990466577718763038486266214513203661824828835056389853787619794568682306085684972931475220558770890652436308158519944344414311276770864466327302754067449819265140830503704117801491794036462119336755517209248253017838786146363737295334064747288112747923645040424383285445599390950383048351964615190522182185496699339859073736993462433082033334976023842925674210778879032713137417561204117773674359650803972263923666764589901708906031543265801438924210055004879536212857776368667125650426589466627220502670307385596079220781534117162163384014500241321518380527590944849393917466479032452492281458518936938626265343215594457447129760829429189381606964880741357298236734198608656688802345887660660722803926545048503452217126307600526687512022612551833448582481108583876041717305773923906991638590011133311057683932082737097569898556853403609571224979941503888163677114132274324593009916455320601664893211363052432828275344066254395916905232966390286777570033262299382133452601042286797000839641735604913872060363534949667706406028954052409566565921472636701704601625248544327996163344544476494318636145822684602646576020620421081416093070892620473903866551550815330263513020809570672995029123476812267177356574737649536318131667030886176304502183425279909373508937221538440442708949388023334147189306235373991968229621161439751991774598797131984711322863711063552144204623729909285565093294186183117809440376526445158595852237417639796945548528447367445907249480713824650828958495937738667212721850676980304558053589323331688466461883315723399091910107632164611182702454646149785199565975447254008045808797859326652111492634181374179252836951054320954812206856836590261679203947247123510424726205522429918625116180909690404100417570516292091253657424774111690300432393313838583077181307788404495397303931306029726242520315497960018558140548289830816145118827539871380203236219040746176584444186944705944847296532163472838540522394537087931744700797648300675954604678913688610657160265697510871496058756719005265122919658118214096033797241176527002102055663637557271542174077361776175450884834564685476483437336654455517229319024179904611865945901430466089929222228141247472682557248493247643019886868196596407330250774133007978580855401534200039717615422594844764832208349031566856424950952341559243331618188872675869428356106492719670675415569315014401666174240985893882052609948355225995522715993614091464968645106965846353744457082147316909775361222999175349295700315371063324088177175528661193139267078939872310659501521370332589153595428049883397609274116098529947029263955723250860306756813799471619331418263599451063227151031754827922634363329277450325215920012221710894287023414569259960758869779251745052153310588140283935048349765053954312939433970537795585676648994771962803134178269323904318526948241114920525635878376101443312362327309082221519489489510699226568116962935264652297596408188506274358480889643248006734983395997080799096424356711241382553416070186478320507229867260764447063019584900156256351623044239068955577512379223718670155326822217155656172563826608729580711963386749593208945038746944948067580302416165025262648791834023037142051386484415779024149181087291192505187868937126258552884220071524395712768029841962003791566328137783099682171267415533096322609516209216233247597221117538678937690237715458677215886866763164617519096283220326884650523415998617184094832926698065991355424533711969921405451506195249640869092641639448403898489565040524081071675931377861297728509573617385544663446809028964669389665776405806426666904059105131229783413454574745421084472564280700720251187675920822012359987082419872095463952488012420266561223082972055371870586094125457582172200300756791851818574007007400366991843238116788189209965633307559541468516740049721364467640790678577352775448213554799454288048768901175688783277051383091285041847917340789560464989689867663515314300262074571623116665957160572767215015695963989043826755346547859269012619526487493028911200173594011249609347441137270655611882863242547026586539074163492568486920778943311615293487371170347646774574956129475005705656749620369316421592300869736663995630923920925159090593055455373595919726441906402030609999119750608475166061992551421943136333120822205980278391884401478553931281370340552126266618520882746970627592459478693280021522974908927893630458400820807408107516236768867896358491969380666482177636350756713946047334832863947761769125972955425708234383785860135431418437988352565622180102765271844473267620533569267271849971729187125592804665656093578945804139198109686417727090573810524849543488566765540905648016427514865723546778674909923590765431655939624811640237061737953109685499272022428274285068911157921362840793627599312370583836399404317641014222721468116551597893966235299608550702296153170558916937383222562656035581205885135080068787395020010436718239599223118200891312431220771105938834310141025307134118420499638915234591000585917225563673262005122154103242687449752744293253183970491427220810562310643336674630098302422789540138668792110860871100428964359720005380730598876669136874919167017834487039491314496198387265710284418982225576244775946094700243620683322014232298039084402302240294913223314591878641056361632281360327146702977425680355534378046243515645102193896969288635473418797865527769730570453667453050475247806306753909752048736502624093465106817774818352870589844146403110294169154052025985941840140472727265758301964108893767567957615304457302097200210214960502867529866942762870076322772119793088615579659107208179188165999742847165333304539784293312315898286655955783807079181434433346414875784868192624983450422905695945246632125647016016878469886569553756431811151368278961074844483590758703932804189909344288784235651315153549588286448154132981745963346801001568516851000064446671093220961182481452776269257759178355872995129734436490238609875895881664168447272182942888900296751067504084365386504989654635238333597211044301465945280295192448209709927949807151331210651602913010622802799112683052874704199083598041377737973839505744420648066663744791585619613670525600712377443499328356630195702936998366597750488690231918417174165442445286942484605878737204294841475883634827606941187411816497465756630013939863683010879198212155705085984609141235861268353486042926603772203211928910038097507108054468014066834932208566747924879360971475200618242976343391340084171155819776350123123088792425704914985432805244202532236432349722362782189134943845475715406901067934950111785812910372494257396860005998022213073355556436745956432947117494922955594325600547292595166169163241170343217530303999385579816195008110570009966822036265050725781916838514273229037358901082568022718833110271703397508829221224963869212787406215620255725786545747554575993064382075800167032020271593083017486728027070270312714331187374559764763782745339956700827333935737274763872521504472956102879679932633883447221527446634342685315308143961511654568283167493428369316389321636203742979804155928478199901950549886276019208686851674641173709021105679989586298890514240626250220090054307009412518048249539609275877200032605098451647945516707205248676040940652983713419354050892879109800600635475193948572140566631706240914817715289065959086212864475309098283816384460546728559447399043862843359131359133586698457572687193005028364759081710731187649713380255314630602081312518633898292229251302996935308404345580742187167600733888947449610364326295644939557687058593331159311818153174956454010293354196571856873697333327552615235530167753625392323576565031802779607476011582459204505311367503021993841446035869283707167436391222020582219464058338896060855358738740895342401782790531434889403502589926652588507738099756969889767821870881414668006199830600277877707988719596870023359169867968741043392743346226897342244608451250540423280294604116292774140532837455599630159036206321255161989053150654844387454613650471738569632175510386922317057755990387004698347169619867546659872278738319973654548159216576700916790007670587658136728912850274789546242773780365359832962369677611298549341521398451065800883337345710816649413955224191840277919415573067831943412711437887749860816898159071736515365810158311699984502471547062050351846177547000337810172014149068993849297725184198832822429495047881273687337703037947794705542675660181635772396343072161510909738267976282823872082172107119506501731004376340870058048085538653151145420961771845384871538887408543728825745271098669191622473815955505438249279890987643249062095768163818898363332020942996145690394740991729137947346566034678378577780314772008652737521544412362575313888102551134097167072954041855587024043926951716605985576698118738721147511183786368356971246222232221569509672885358085377405076529397326260732306205119942373354689693947048308531008065529091748360783424729949073373350921019932203470914603410731273313294996682766937378061373995045545680080683706246315042922409209733807050581355738456813318520686057484666207364808085597136493468340269926684851394611581552489443148879809311555970718821207965881992560611067862724630621071078876067168042175450476605588896910437415728299107711291434612884553486530707955801477794181702145620462722835116590942773441828714090396386458297417733331107475532551084796888571899115512659651416888014215196473145144628070553819714015066961917279213594058486078568186606233439191652258276767039064371640972328625404492963546999378575028660434533415675443225214407069649135218282851895076222955417877084956603786405724813013808813009306340472576761502735339173882928646443552297639428124528341274352342052932553784925491527969669112400540006559043760261120786463794809212787028209955728867509461222288145864517988940138991787232756337729997124998263549936213110581974833272208944546002979569913444968513947499847442088988725089780499303226981623942048515980160769469432840659715614130792848277514812574587069549410151537964771307422222570014117938826830597772194369278070884998935535349690839370692754771527362712724789523310428176763878841279097619165121255277447174902772239307373255292876667515745089181813611812320273785769647739391319678686873712958212280782866817501209239420002432172553739310102698948593039254443173522807529538251251085768120891615109033708102462804452937261657436574752876905539458150919963776056771139339897231006763853755395820527604465679204394919879453145866669536882657888645031426887266770880649784700073832272852417678497023802223452335534544017756004887867538750959634372591041888217389615604637800820157314772009344012755014702121384174633193984917413997627013128616473294844702408303297368197552929374659422735498229017409255491390525455152858288484177497365608030202722083253961947705345018499104872510587455194449753182250559088827880407581842076721273322235976257964992516704141886893960435690725159221873346159053947943387144158381678932587520370101112337989229790620792854815612579419205313858401040894117487476408373213441546043040187211008601419697350728507586785126720134556437306026148625537304271611929299643419623760881151090545581020711869044211718514445139839419798608901102640085364370622819197518991884458541738504347930197097199767129798607065422795594481580237392816024348656902707377507369774108382719328458377618517584444509279992018788879871914002127109546180121458382470573062000788735383202053941551624371510063727376578459607722027115741535916013129458969396336719691720184665900021318452435415839419985433295446165890503673322982857545997321605934029150099241409081604216333099057996610220784212497764507076428593885939934957607611916048390456681445793601988199803102670665319637805258732621700298689497560609160076707986501641218439736520050864289972577878548215487397427076948336439042155279179530228002313877219244360395830396271859827948883395836929982620088516128380563018081173032074956977656542646023600801929942559486537410382726866556380024319887630090568728336987221596574221170590703356035700403690761380004344272054674995945534775972602484740163352562229856738730686204273773208099461438868805087854286706256681666294107581710183728390251780830055069813863356572792507797177016101012048676629963955421356459651035976889100883607041918626736916368387161081684542293571444638911784670352672391261694649745861503169832730451067196612440367864648298489849012406463839044629100233129595541160962141239006810036549853601546903035227515955026333656038399081289733471840872386900844900756659725915034769792154989660100605618271484392611770879039391976659839054870515447914650699234848108813656524460137793183850124398115682447940179588035206122387418603057680871638154854482037661169663866455009606873262138992362830582601211999593687163063280655976089814098950538686341742955335840689775077187803257530216256414181916867008228550432657086105929576093549223672608858177714164992159569432331166736646111846853882874043373860844582423071670653452005048819717213950438039505665430079106506063612132279520426786753699399812461059268721315401415689409579496095153585077103390205736890632509574118302048029311324833025575129947722128419249737700841421744730470305954838926112283038576707311455172104849500620791167039574775694450657976629557787043643791878614687272662783964470199230935734949960113841356522532985845001661991072773426526193306364592942581641133106001290607624430287920332230855766100050358332626842456444782212196667226715119117517909102313457849710601599269529157693085809666919291007003329795663299604727856669792777189976512290416164388772898924455086991981088253276546247926076930395374011679920665577180922424925169971002939733758980815335927184470953087268886241654559050423285482076441802487847485900813202620609328367125804067615572471149656918316267247277875241651855909553445131807158321307817282209693346910939747915649271306922364994446204601359415426806199011822690863636115915177272801806015139681899032728706926112773237447797889052151763958121848032455423235482487235627923654848515674015064000164345174928374072978244721060831998306430444485610029468744916709574870809498347846481833918308797341395588761793996507355474118781279875113958629549424382890515180270103991818369090620473248420706752561808130075542438152803843233949128443134940367742366470604406060358360461202168292842035948246034165468467287522339958591052494452986365349362431703550207263603616415306541995261560176367378465516441341229625193166022615497654877685836519257989956298742782851895601241487610718262787878627949134508723663787543284233376917589898891554495066864792806983743961242074279378383617507064122009716865163111573656533160088766845383992390465479658684066355196877460388855473870532820494621654701844364743587448801120010761732462540862791531467781250126492678683264065062378785178270898501916754287471545297792130357783861241235248303675076689161859357560784981978799270539842536995459730660603182125897875557443143884313855930762813819531632403898749468074269923899239833939426247731811959063361479420681281070984318639650286452144928721971126840928790070103574241006486562691530135620474991162509645204205860901909432837375435927517111081339394097740220187471570716983972228446442819986232370487947544283184748354281286405366625402035277898294859222571525965628614112922574824997756738767902180133402184372685728625824538348450788930678898608005458397825793905864820449099352332448724801589848585018277189114483524594718604177505429558607335157148972593757197198625186268108135436567176180299299145216128728027813139126647478105758341959685934495205139460071218001522552903827505632031623272979731508560487464048964445313664212275660480406188771471391449536792617216003599139487594145126663060755399029224206402501374410607623871709593031226590585682898529555124139782630165444441270904537710694840011666631349211168382545461093389555484262280460876198514790314546801227417448736934880692498898429854467109488179528689893058836236473805087925669775703000548142579951811443276519605692650047874490253623113023390376739963492967225135738263340421985584341171322921647392684672076434307398725440280871809212686062924793156267629361522014110234497379419215752823183345831517606672262855090659092933412350361418685154197807235762612681799224613991274289392958235633511042288683526873733596509842994350481324503691138142518324040534257941899089006846725474037801333671285255274284867794175650709794634930627299586099406921977433721750407683458871818887095950887373870187209774529437865106515211026223516881225130117662010629062174579735473211816875874164453677035466697863566420000599961367131302632203015917383396456883494571095681874326500600771137915908558112410551317551495379635212827881980838614910334250575191251700763810453038834458354962816211248368986076993576348703269045892715578977580870078753945545307263949790659311159187452898223242324880089274735314467932859675301206589073057052234189978865757644086056503698425509446331134630286332276460923351558130894587194171598454805219840382409105760836459271933753972277403446393830478386052713935770969226903155161396597818823641037241811323093546392432491727441363931567723971243997363622196740534118741901160201538386820600425871252083615951117337812937319864951687754144831515721171479700258946430727004742544086275821446962496512613489980742866305588777996431404662938298353197525845385512454407172341151479291680947510732954136300561005494180251217554778390762161386449707129528044733983825575224923869907891015127499570107187299505898510846154504631541421992073160117974787609183122476056497945002617340638958300569451749340182632198019360333445990246069604960393623779287856120856236637388622793569336184004495985429775579980030389121275367474116666804434414191519335239582285931260793060896361054246785429490915282502541656949453239289512504673770454264399754209060543682657859629305785858037078458285415755534147529358976073647340745494884245741108691627446538313724411254358919796986323318254803250432369237555644487104977138779203339640290156939485814408119303247413278158800379297823461071087560547148127529971640802714297607769372201161668847291427064343891085700185099239787867316371029829995131752420420445038225351613703617579070561600159402005458102888241167288940765433757928601234254506998362384524057437375754484793675937492215262338802512659162988997739422865963720292458083936514668417567257389763486280640787386814064068834412887005838293186890611850241593348133789387563606979646164312985391095593189441100131960513567446676301520197517486148025925641588157259953436629239882655232036738684301539480829548283734820515852169371391628217906784397823099814345971583639251105140653454081559743107695905910892264027482246463328471391191400767942828545191605579484228043460701447804476371226568659125158480646754544864085261083685683074894067634257691661082475113861323600691380513822410860559717827714309539522275634662975425924954940215601094960390872001524868238817044498512873594555060790699669150977716455518111783751516916718297308633528495468935050602069315452563865526330067671046379379630821781070540302103179423932242047543292721521706163745571083879376407100483728454488908246426018111992466253503445684850769008372304463279030429007324555983223395090699947924225922516336681400593140429628210369255533606551531991521548103456820931065164680750338709546205955324864389426478298505125596291858764601407357287416595847348161332429070921757790883632270316097756883588193732336201927565401520715727595432972326784150828858839392261467676852486380764444167363070539463230496579684777206446906727262851145118476593444572064555690889698528488593971668183794615584821731114950607380626603809970667777188407390170762989873055647941700805198144213824864654977759877857866739067306737194827357918790709834247546519106268706159175928199478010175441560030564888290973656038155356073987003288581124404832932530899936067641487524411351343905860054155288999521318226474504141413621505046602623838820133146787750274304835875792033915530662106711676038019417104289670518249430561340197512440547591414713206607292411981939532960029668849354468088451485874414965121391721635214073233322631215792341761320105838209291320414420231019536448443862768697442378064677559791522502210699437481386117329386090306290624448429104780719039367589620303448940978724110850790126036752576623279663699441510298756481656828444739934274394855956149723272243913661870453603336083721929804133262902678523615079630807883461357866036967128026210070935849986907080950832606566924260848197830365209588961167667436678328280264555600571783537517110319372572237469312609631691209864904628913644766048866775033579244770443944269695368821817790661913476357606623023041756986225648641948417168902884231877210263402942119676374614522074921976960885086054754366682183063153254577493323176297885087181059130981011875494485039950217151167835357643275801419010686248407766799996251160064399009359052190900306815800665854725485225435430841347754067266453220759093799091580789283587934712002009268454367009500013356135071321432721922169420956664906045969541774696226060335207589750761591083309283487911437695388000108736229745274081838434124313272205087898969953161464186048221570239534399799828086014143175521343044008800441274243196716328974064822759092389954019454265792778465609243988205665283843758530734501546421238831103499885014511254052998173542936206664774387999371563099720565766630217323217140550159966198085554248619820995664035347697260309031679549032984433595792387084701204865098256595979478135777761186760189628419860478871502042282725357362308813179725965388298129407991961822406719007022644331915372291801948998875603758692924640738885311333285040898972788867891133649136462009042867213506292807622953789119878080093662778853768913844940158305980718078489230472179708874114542398050363494395118427794494143448367048874021894948859449045909951213867962243944572777232807488287495165162779656577275317197703135183172856781277976787434823690840213446858954157016701504896007408596137211548434112577307855320568503007168265379923519916898428064121954189444698440309010265361179440919266121534383134929525599466697794505611698146186654787791549488320768650748656109298516719340048155822179936675514676255169983810118546683435942426528676377200349533323152757269034100772757542310348153862131896817198798696886119366856295424904874668522032134557239592134184959645472241607420956116340534704657322029655847602683852607509009243574219680799911947337471494175305169662698478456110678562235527203377559706027700159213514071508025085895414149456182896136313258811199270575853751030793442809661024783897332589082735070753745667889120256115942974591960040816177950399361335835678054963750480953705035327735043522433378586271356646059073155136036571182787467061013090833798288549994258569590175674538009515112480897289448470922068595241380302330780133721541617735210894179347196724222650487371209335368172163792153745394708470354839620416606268248451380540866450816053631029219521786748630003811147246364834827801921296276701815000674633560189942460991348259835759227130292462076185583643053307181579853462302391973106404298698161840366667384039641907532720913531854440272670362780023475388679926851763743420074003606254753644535402269635283428044215879578875465223601605945600745875409674833549050272781763911938014458863874274751739756577910189097318727178737593595550258585808071474529616083708223404512937635490748267990041668444712269628981416587119181329477464647421218000234574760845292255803926125415560167647733974410983439730559515467137994683676839597311601808844194451702219767953837174547050833012575123406030516479582407363933849484273444281311593454594696294401102853343776674381481411317418465140595128811735453025475661569027542342932982546275507395202915414558118026791128394834127948914303564888050764873193872677461455584505138579911929240442108734983670840418502277026966049906916873344449876369769318828844050638104508906916054054287293842783787161686315903084699722233540438582828381446800507593673838867525799804154940962342410299977528672658039687238481740604539455472806506030045975357272660702557783963303412903264057539211365591872531502806641436123621349664537834937411586289158723234670677460899185351088789336375373679983472960342779608583404908016207699557336965721284945893897507081264136726220116812635294563368584932250759474272449442105618830883562307887694568818417982733642651014850669154769126681413090474940628357398822417235877473081695396052407525961667949267844163584050930246313188839476245297545722618956555828272444634330181946505719439508293574310455045854362651674552122001470293854055857379860096703055148975382990033069828929339473109774815374771554635917397369718376512459544016717137157803292750561051739696738368217819915885495640990127809738992396135748453827384394555747465103209392369056734811500367439738070616130860291162636615500045978114945600920279071644400122930318972560490760015147082089420737495709575120561020284773843770945369604685601436873691847805654279346493494255659692181203737508875257359870093697090941230502462796881867541408216556054702938896102150326543211424406798821912160592313302634795267562075263226821817168399884568340833529113485113502068937491061476220912088399955622890257920611839315591145837587860513282065977375179077691025136634046193966810883300273347959324254818573491103419666888086590738813391226482056249826122120953140564911505214265684308567973626538227261775187053979821641132852670160955856060590184110462852243898792746140786493229570676318759351531463883886202886166130272748976911938065810978766812748587392078107759194187070675526290150005159039782043440552223927342746414115192340291045274422048654465978474437843093909037535254302914512299173236836629164193570787450413704771244195908566049195721082246517422510605776060518161234334244920530510925906024681878310721447597920854985503781437685352007700834881763923751807224280301553716813816993350431583426807198316885564170352749456368898947846170465114901305489598156021301417939353473618857409228314727579303808795747620051873425394050595822572829571880995271584187978454673518845621536401190179280545358826740653931521600410134292682149691528162195276705778664373546668225859939846555070420130911619503930553570590297558497907928443325116321640255062578780242546941347172338355149872015643071437181705408193026495316801719742565269219661842626628292324395041073921916221202020462813535302882922080238647723408776996610197600208786357891208663195483776378295116546801697630962798320200631295933938974841628225655308233819423211706851996212961286865776671799406162469806342625432452404998163461381985807409915726271961504680136886952525942569064333247546646646734844932468029899472882009011034057845783518418112458140562272744098297487337953026187945023603729678280367040617596443435053547076808481961602237177415992290431778038196337322588997709121640427216593204136990730134103525061243927453839221449371326956578629601540552179415711360288602245765220641889023870757931755326879767274556976807059551428645391056516897849954867751553188874929749987425971367977040665491454189119172679888684454466967706766888840474568859312029095729788423917271600333166590995988254863363784087013942938926621118782027321663358541925984877266981722202981941708116272495063407657586007873239407382550819209491168382186206490657976894723102070946581171310481801114593007861426041931746956178979516811058401424826904647973076994927039759035912687129025828706255889903054423903303142655627183940249690217416496153644879479247786431666598220404513644321964688452195341245463102936908815749431479250311527907914354029592977722703425162830025446217786579698970830578549460176526410063867124387808054457531939869843409096447946946210088129052336709343306315147527470256643377327647945212468922213990412755446319368013216912980114862809004311360029065455382451383318634370008826782067998877020263338473244147645080773567837347139301184934563510208234630623302230591322685205821861329966750460710630816571243120350962684352243884538660631975402648010867253691801477330292835057404270643750777607629032759589080608001422914820268990987250240709252855270465049807593635213020878461082761119661752928404469362543227962522014086668168441341037414082071210321955413564452584241443999364647883685234206369396497274594937249000054729981211024520239163237524465430777555059086109558160782713947042384415529923802300947954885375150944387837346776344913087675888170627861588617722853712354795379181451594784479711697845734559371864571180758542150911379063108831581138326504276319509701225718001191252267456699566339682669644342107006159901670424700240710553706246826368516007365238241367657566729190335020776975749867867479245094808660908398340216989721259723077493434258414392748018096377717062574779919217718710567553344950250056192070211862055365666415929302004563403145870607983960882580880204368927418915368166296770233445561095544137411393244603716349873637900928681818255191784025631220118831766162975958104525691087619074672113744342249300821595032180713836785514613570499484123115210302518449376946436670546706929472164118953572509781472009052593157031747172122031251029848407065120834127329026558291561543242615128628083300576339146315618098050710412582051777685686722130536713072919298600603966572744691663003433215333553946897111221236216097558239371148355487588472078603413961410934728289171923519747541705868301585698486247674882295335185954133757911218990766626360056158513786698103007648786065839695776723259133498591665941951176399284006558063076330378079581856235512929177422204043050864584265360805682624130036779387741759819408396813863170106060449113509368725216970729667889212161693608287534101183055788317357848255053206131400882202391562344414454868692331073570483476255611009530025508496270173417659407610120110105538089041936027723154018559067867136452844487767378620442934571339094957189032064355262198045546321257014190492262527457955152860717209544053986897839889059752894842278137557886365269480496103561362026761557848699168613691658672886451173593611562535221437454470514599523218109850901879959802711381159454702815620571905839183326517427994137181173308854779127696129869266299396062713488983525370179497126966679759290776876883727094791856432793914872844372204698726831041180112689848782314225145043688346621774290893088324128925010264821198128302949413831566048341204735457418440551317587237170414276544127117666171861986891849653634492965360309239586860950724935442779988867147953013466436246717493735969668189622760396324809454966020539083213113781506123827103079037264815525157431024827818555758219181257758219781148704241761296085707148754700420556424750705880505212861531641448925535375264143662972796453064038657703726600503183039618472222571270292572280003573413420543188903961389269716678135362367195636454049408123655507018883305811841325188116279821155800042213506441912969980149590970320424516247793679025205667632726707997606857884178698248393014282030546667886700474178044834090048790963466979310938888752645325781685357309473262498056784886657487648115639535463619637805765313064731589710488963400966672745885174857023623580381997502267252953245768269775699812423045034096308673058176519054429502021561523156030026301938039025696422554202065893973787732652517295267163701753687525186258714395684346168102206740109714152803892918512240109055961906401278171667601924029452615341189322051593592300295763012543808488713602453743428726068392023332576148554301533932862962800693393546698641005313115148725489278410448968782799114826801973247783439552448737802841971687182758335668807430537604306133425246084549117031031975124619522344416337264708943473282290419661188874824942028299765148710033245296944245113572033338960758658714981341752821461487827930644766129219979610887906415611842066379636756486180258552400377905904826150136293546155659071685479174484217725254252957229372260205552653481330192296973942659202404556863475937267791961033823265992605480057260274306231817330885222234194477612076121865965658940959954660825749936955520751911119545535703973466638390130923898865687868224281385416949462550867642703338281361507785658172711414050457826739587166191173035463886435991083184994403662389537121703391214610891799092992066173947461087359285523479429156020917334288823868102224801684700190385079663260869955899458809835467146921747681674144505903611058252931704497743954079850475395446979696433945395971558429326188680011739295544028032328841700147057103995599092904096222809722689275389354830867974382888897993164613126772819152740050569744873191004238505715942331448847245604168584619260606320343125496059979664416798266479489791284717203935907882700368442510095833074328861403171665829707505176598357109692583801859654065668090858310648252061831708869784794924118018737257374896249559340384984876089531474241476995961234635714200285809148693288995995086690476064018165865164711767619556207335927796966398070573109100128474438636476954353529894242435046931028236218150580894790636272662167332007308574192257368288785427991929696266138732408099955568292424497020336474265262183620751772823325987201639525945785849265656372823763478434003387153754944019903340178290286675549512885081962006172517992604156829773460523082063053636551120908261899353833151306378248217649209205156816159597190706510729338102241090154849976283600784927687035662557813179056040067275912531107615462231834405475085860230383845406809821895804559933565324033602698538546053209237987872232706900764805963831081333511812585191375380498689034384927173447716583093783861241080490121834099195016767367140995265823466964204239136714243282672882971519125053656011227007991841777571850428453540261282826580074274988560315856641615061178595950286006851385484986331131429342326428051318703513765914635878592382831521696307913317268640128535415726284573107535189437076271804652335994451868065753950647786033096540147935933192200707734254175432003924275596309372058024845234709157791211215865445942210956690781294998083842167388548838096397425787027276680625115165860685976566019746833351730913371832105132915310535594406091863152109677387674273734025944079590487070860832636194374301696487095233157987432072603001697745983318651013235120888470274560446820263468263525354611799342909127226298821710230317451660522271557188346170832033542396535399988659306951871347734521750136113146439297894189125276752627259000727915280846637450878812013130460672613125971894166452681135820966694178830811201524087950123037782661367191338464570096582510709778653760756680966545540284162404077455686480843721304757555943553217979500589858353871476725829307813710332286699437122462013072120950143048154608302949946912374822013997159869568465583610337121635828665429943409486634380722321625068755724458008698093265523211730850780487404102266932248547877390698851667945460464308083605487864269644297628422267405600030227321276783931979570231022097148862028291400493664864858452129715723596969806778259826507120232584911551190328516032705104769564241000780686296914283775444873796835650799397756854125356102459120933223591106385891360342888497726280145407922649045345251851008571554428156873821305504107270914962170199558198367557251840700169044595881063095057421448412035893549325096070005219274126640496417658734513944153477162990952450108416955729518560140765489341189697310661082872312641866767399632278452409014655105901297048593649514518275115698865012734391019397013842733817430938023781198206420596615575166954158338751827035701545432756576329516167602197672861740297077177285213081707541193943673230611116209752309323868983088545740647473604423398883424018491185705621833231736871976692408560705154664212525634360025968940375267350531643461509054207949677432515557118310151768467806531889843623165995877403662296192145168082535532399512872705742426099654071264723954217676086501082323953310794925376408850711523617570928215060455086502020740038987759817715582123359604275051150288712908772646218123087952650250598832247221401693987658690899938457863795213976150066183695338296658801400498139381048729935408746117470111421185690831041606583005869276684486453668004697298693421433082097459319829664575792691187972792109505452527906808301148683790366316821868363464889587101119121476796299508894202568088978110545348896033991317114463006714017276468647165120445320781166484303224948030898212518864879078775899080181590305549751894800671014603202274564507219753746845510212064249702315905058291540194268005135611975587042382502852507227492156805475505850301937790015906210104938296465790644668041593954965722107555429562098589908516635111890610833261110306862873548258547668857964203691402734586317699567043664384614081476480927626637370723122372102375859353841357748937408857546417221638078880693979762672297011015123298529151073729268433193526040906353368690943086962617927529716783143306022183344232672242749091446211960630404936894115185310976593951285132976532350775903293397385405844682248189446306683688896718011350968436530133474292497687131117155736121071821681464362083525000618787276339861094160307459214616512928574438335103747718368773924424337592139433949906061890149024475174937434153148201316754264872088579171440803873136131854687354090267237824360856017898946340526385332014280749834256575420032638685579608814036585368646643744219482906219131887347418062453697232099260508802480475497057592284695726150405954850301852860788093829926164348518585466596846040020628979597222110574856516386616020758169594640239617251129555785267554326718021538556984781067661751338435390127792873243919483985351652001640466410967267200430553160162941204227940816196870061355454550941753315203355719315470255458877114659413277482669792732168982428951798295820127120114147084997838262822173282035570297426669303971574042774381430295031412892610751176720619070349932143992330711155702695843493041745652444464806772725770802671438554232773543548034660561511268488445314235974378457348935091523710205046690711356990047507187525692718676230871855327141217198731742725037124588116189030160249566959583667630599147120254034479805259278671837757019469310744849043932804646193887946363317973337618185934241610596254308104617114294695776321635495103610349510071554848072557565108649097261659677881532937612336199857868153558466550511070694700822244170025334448336922226411315923282704778444726539883288947145651083851013605775507815648663834168448977544228532829089479388513891184431274357970126846338707248409069057484348045482987493823899848030956690723963116085625662979556508475254367359887231476651315636486157848293424766754224393858657396817804437873096354429340530054960703968805151806656190546405461747621127624130317408679107768116505526103472620066872556121191398064670990115155304201438895279238028612760475940515739354603555482764015145683410426092774382495203081494948736218977831336897310170065314231398154735048609083663723381812564021649465357259761173864681057748560224487423589424088664487664708756768650289691603603096900393142541086520704384685362530813593060124627073826416887548249783449988869677573604462742874705524327560077104697865652323621940094487543229596865353818510740345109429240779258669736533620973100473092040003191261583442819804686087353736958045488358367406753399684829573118367615884849973252635027725679977686690230107506203809081472105276524456860012941151211566534936144598724384747599619297643071239183328559601654670078787881143107570520549011067358060753307445821363710987838192362307389250982003240591413325702614193353759531327384265272246538716925753363803838024856155717858219826640456003102094968263022805250635838439632447113527501648957121978489142626507693785510018452455605273359858305034631080580973821424846051862564709074341794543146227896785097693953124063593884603303607451212297880513343955543413232070500977805462125266806741160060825424403574096498641624090816656947881569626557598037522919993402386125738161747133975214345425469209133721625690362434903945946495602634227244229803039373869623881261683313920497619104992622257978338809986252718670775921886949379696772052584333565832286230878060149667987666689015891177065290775421096772036532756281179582412970747898231731115717278221503139593598063384682581931801448927083533605783779613197983829418460206234432682581827590185514641740954768548315513364425053652777773048797353407738953316136070948143219791636802608859793642561749403656684733532059187729035059226301050580257909095839494578621222205545138566909467096914989075400388794831724120894426218614977607231048867775929947758104837553782174162919360893389826056135655992441394982096607724992390878494047798457035745640840096477367829706530488997112051954140034096868364262271776854416680498358187028690167824973574937677319488022799403158746029118521822379985191293755169308237987229917560440100857533223691247962787418259094780382534114168860847856618175940087312411882446619601769387445169709622092819498143034423603727356706146235326719556290040655878987084505879927338640014009554623977378922489799795748985983971804915727002453435862107861819091751584775588667815553366259900761380382886201597891377332503633271266957295504326270588174411005586434713297397712136851966145096041637564116751980249096292857626729683303096974108626704999903527027069752335888741629882499502675153300593899619382753257198822162172964927571574936927449749436979854084668110098807500493406952467546360053950478351470546388407065336376467587492816795689714159550813594764001717679511357166974853757262646446562057892816576980881389179974193232824646728251287192432497059097764302320565438083694071140349439819367532447546833911169108388580935876588096460545759273568087848780275254731602068281579147049785327479664830749511406919247334202527736163621212971983241496045886039564563684127642100330771519226642276645282826429561571455254181503192767961771062845274149090348725979306957284036584368561203034332324809035553960660377525993144346476753630576231129071688042741647619957331964827378650384479974272295950217078555806122792820991347156007343298045221624628319687284023659794969034260571330508876805100205589155395960231673555925586130142897526801480587258817524088497268519485391967736451788931155086086574418770931457981729857012810701005674884739987221295926158721448620939876594459159299231786129428833773952958381764828703258659811898553174573362188399869092519037646600753699399415279345775710526270363912417677393568338673002316135836479271743773486240773470755111981741188066731651592348663766136583305181248505002623114797391503849726234614507348805660315291557150778564180351344064647317070992269231172642387771375335802494779006194067207748069834421400620299052748098538439422177744676242691315694171003583153282201020329618360793864734236522704471034358865296245774124585361888636552020555088585211574367229129185653936506725262703265208771229980280934172178303753898080050736451863937827089608957238904336861873467851128019029544075600678195052551872629169388760320276839817482696861019324556191672710166763777377136422476772641586455900481597129983248627764237676007505061018458414791957620117575793053910211310879441916200616187436085336517427804367730129474620403847661290260614531005557220567021099418003547348677954775821506928283335378757113570173379540620596185021574485673004517208532561332128984306013849651526962964384725187935658282628479603268289580457802541038916895262374825422259054024786982698890189596085902804196660844972751946598064320687950249992037727504308971245752823540140019124733227432564044456588254448043159401252398424526750692379048644921493317958415669905036136025412947469269388658341908253802635073238395965116416311236226440974938592527252897276653047858058482410733159739462665699560595859658164341343102916970852529959655901260292114522455273029593651304930978019401698813294095033334829389884394719313634520028411271651336078316168372439599500116708696531139033677236091488169515909519212214715432251120436819332404617718058385766165276983294391544855070680877070890344328194296561586321207443588162277491282346158113853282194394238549866708272039738920384564897918947784048333568341685060701995940602168419801718928695459699712595950516300626722888023850073504083372096626223447603680272499904375765984337073218109621780428782537547943313815917686058024896614382053077570004881152621738815296205226747902571748757205673976457314496749691493297992530027072543362331333190286304371236468980783508532342190720254706263418210666420958124972804886210631923230812365902649921514512257626418027878369948182628368917765026474218116545455945279532276020178080781285437447489027956107017980659111083435126329577739346762384514896177032631427658631887415883974269760738821682004705337291940873248050180113950140829477955795868440440203565745258186541301779184988296722135603264749552853946810085307835717169022110357348193133240355661950694274332087689167051167814090119440108261947793355064963817052472075787192672514214483659644373211537605237903621244316022888676549367477135969183087754964106766071652005340208394878198059960058398223195690187305982064712246080380680082786586336974503471599204596730916290044144974355720336524614326056096920350429448064948682163812874303047826104546775983169869055775820021442999836224452912369838861206057311395380053663297018628093099425755098427442741986608390609746124574224167510947488306814094216203331720015331937642986412326233152116435253976781804342687581821160949602795332945671008573567903241337976415066011665875799053439917222836134736854029161945338674833005128814604811786785740336205825143670838875698550879369429141862274458695802582691905332653753239912222055281071434912433073222081623397118037027313164053934006694999679482687736381579944496465817736375650544495167616376994092323538849075272956401266409522316770261588748216775998222751187716978781228120457430119301391662721893912168203030454075545597023052147262458517633095416783019835480087198407769758775220546948138404275284508697412817227501812492487482156002357241962835968473725942286758938595372667896908408617946933092831287332550029138438082744719516880635539319852470307226227770024747101692728131540783626012084955540913994300500956114775309011899918780443974400018247196075558607083850829071963119582575206033865519924631943524544339913630866570976331933807942639265404556971941867722924782469319145370832388855814848252204044766159309583165614124691589264617479796345921439824495363098966991005723194128903497753933616648857152489153675054142580900288150723964370123561364261671687714150248298961216368111034630319578267395989549238197777414228925157926841193384602730385248216736882148962327305150198139582747749164244527562814881746649453892862192250873772674590087881123951615921761872005981187265366610965142674096207445400246194516539992317316572840851769680577827275906015155957214388504987047355987062344642124202948275235976026726810241982844402074148939822731361339793706946054692059969493391140823710606442836008543035403197699929913991470305778799117033647438683514297701427382690379389509503689482765188949588911812279961261674383299166704379246748432395254036480701585942672540589728089029241437088067004315666300029487087628267631551319106153809326933693987225447043644681197103155786344859544960422280775871777365506862319276553262018873117009636130953382726161354868854056419232137395148171359479677347147480066437863453387820998545018003347282278505135890357793873884421297341630919241480606472801545683735641727861285366277602410184584194929320693694880786663041089537396228243842469956828337562363137931958616975153895492334040569021372600426742669936951658813972679773837510555090216941297092818917996314340154682132770695219693739865554546004339026429389589092033821617807190631140998088453515680630153621833543428781983381761378098376436306712204166981149139645957274020682067931611258594812791886197596241156744094432600455773305796608120436926685587855330358257331599155931479580153535690889325047617401306531859572524391279417673972146607660423483525372899378579714672762304009434424220221741494333899780100566220742256469254869355422484851634148842204753527044538673576570919408781504816479886969971447302887990417456673208852772929459610174853489437892184754630233061430951961054692400906748238199909951933502279288248508014102694332717740521926073728615876517664038475078818936576548269035163917516955718805413256329810062182900216433029626445238030347791808422428905445032141880251782367275167261391377453664510027244095536897568212931869032410902692126816919316793258584071847426435552869003704808648685971582494844182787666626211384328719660870027637264103894162411432334177661781142626614697735880107716634557236836887981020982233967086217011281193562790417165745428185495218731203659830792270321391729890682486433539977556087775412359928908508626733141111464162562118441235957504093769764751991200615548310768489030107847466235397356636891820717901465323419074580083722955711851455088375726356419757359532612795905872555823219566898831087577554907658014636005195300909275030599498217863138359150242757626110884308758744716706212712406893010831530655605497186078425747261597361689353170899513406052839670064314605160506938658426301623674175480890555520375969560031629245998174723000568313639556524974315807193898236157825564058119621320561696355958266521718115660547864134742095689825981558318940917859264074874189036451942973918895095320001039321220198321185140740045769244571867910476624507309180689663368634237410790010753624863056447341760942430035698759257214880821250676618021187924574696878481351424919216861886369869558494715343959433090322090841967616605955400039804850193966371593255705188314525105126073619400163414694198255821910468776607438810078107961710411670430473745536201285193382020055097664535958440386212602552984932418576167677026204003678627174010862192520415627317339709253163836914846588497014727089682760541709574771812447199274498047198329411255421432446135967024431373248382470596825293894106328229464555817248430233937212324390156765958694292238927341823404136402690918237960183925083498395551711302717262647468404467470357994883019711074747396907919503202787166623685751706082218547710803869675169627087515598656814123659617286003933665850528769128448688565250155267829554972891920566436027712107477986779051906841121235797818155424486049259958839603308714509104727570119438130012898635975568494344000588726803453979214716646551087645559983740367252651735199379390782808980665062321287001502107942124851488675658517365612812191255901200573362017786598031814379975534342246921795450647061555746469350090713904071373059551306980628153218030573882765494408261721909443082179123864354671060989841414343138376033586807746332499355375750198925648583515194165666043464761030517676513000138645639446461921334217985596009960402392168812518096370698267418493753032454686441548609658925750217081501443540525949900254777170663902302336265803054120307117725604369785898758174649453557429908307532971116626137570127414849189301674296457515249789228748112829955915458630501834276240875584189570379007601989012582420400513299618138788386278697370805003563899653217454352741492919818546450374041942277750003572980340637796634746325757137854740490574043481443371058645927091917286385925563141908397864343222409595801411072750893762986441210122997843134645999274697601847936590087428756694034454444585472728481883630105043454081025655570509193031239240674289390994799487848209703320611491990072432275973673820875099708189980720264873772999857092883950191807296252291717866188130333740234686278965837002020504914428307060538417867512739703199004517462172930932623695630830252878834467068938832346162890136255318799690293612930528999823882521768056230195710741899115544785098639578454169425308977068055089574200897893568842738283648803138743306151918804359939973787219633883814414304403798648258667395388223984421428249341674498681184078094823503041953275018036906053896160483598937810889235828882727962746016053614965774654363513685451010812780255824515963065707727529317176633653244212775754315305378328619396461269182628451224532908450222804573841433994408282185393413656009697847333047669650966768017144745778614495608973807420535508666860821083040980966757520486597528330109238762245210889713891235836576325952303503054549803239226199918088868319737510202841994660882712413479352066575548627044741856429969074684686406926027852908500593992242789706224912550638999174579273208111145238881246881257848559190900154689774931198333220846942964450378058912487565464283641024546619608304352343638226783866450875193330644025086337694209761720226433691753389316786969902086993240488495658805075540954866409125107374744705844182499858249174285436005765350001382303970426635847709641643108045584926371071624946669445712326603055698365131990319259472337951156726475153434255565936662944657431914285821234023905233350416358609007577734249719278080614786678351983905198051310187603068916956406650835196493928619952488991689027134628788652102546741115318473451359506393716966555946497086299298361195408874804203749824015138733037213214821096464662497383805966225691723060327376610658743372349160757189705071118428718984620566083866248052075880858926864388138465992276559301654996852907588195802219007726716446060915409950966391575226565511718035628556338366501416592893732710473681122896637910278784430882079754375788002790192260637569132272340281344562802976802987402912621487403969409771249132760388882190119031861499177578203230817161002537819550382288183572561752135109895961291614370865513181986265544525325095690194268591669064642980226846985975231801559237403779135046476760267893101321184749769678637388359791899424259881475017895244185387943227236891897026209909976453684895131754150826484333768773359572992735989755715496616328774398751156891863012669812036356367094866960743279293038094784633237491718169453835106143347408046095225396256882111898724720505098573278217727963056745503352443485116078221478945315009519795653615418162317367092845494858273134568643605984585617552557859464008665032085775007380461449798400304771201963140718153137372476843315001300454348260998650624205067212167644206113012307602257151517557673635723990638590358715950308927302844275605253218216996968129649163489836621327963680070742316347848434020461388609524420953878341005732185386084477219607614454052152373995942817098878738443628670498295364983323727737911936709966263874559439096369392740021023600033798694422168762737409852153377796645033184829653034508835156215759036691202151995639685593409039399218659235086915828553110055806821475775441656904928064874686757505991111624969498361753136019791320451272459283295306307369269548006575412091070394350839795649284833276302806518233423660713429410465991524605663994368844659839671512932613028459088179459302018535332238928841317977111614184203867670327670950914034659064846844179114153257718654002591959735918278342523579372767190723676217054740649821218750436063843987156811645998586376191988013016259244750016468198711070485253363276500838011518502780636637250979282522137046545940452479154830163512588274883657409937414785888137913819912029846513000744306077230801126009419551960010515669234278800431352220647310220457969278945223417377111492776993895038839118000180255054357056336292720036210874019881373165534854017237541794094788288155042835054586928122304076671135263108371272669727119319156446931461351999622017190222123081281947930015350545738941830133336562904023425880117597682666288887298141860720900071909087952516870215255682220712257604859253616318852463577540410510065547826154561540891527292931568074540391254350525702782765341394706285965590551922191032455379253477926866232543956070926288247078004012359283191616294866445236202182622307457199271648079249725664403729015641920514377884739203542951631850666418476094538613957339735756033082119592942479858865023315070223828489415775276406125458410667019374036626678701185354031381815702267115008963706450308837258521367342110900933403344723756851367018425795594496607593857443013828805826300068566454295054472661541752350274221350806010327088843201003185173647152798266352958576841299851208231438182738918334001329103728784708376168487172456931413689028469144715285172052656973446653084704569757809987662927788941258361753132423715772464142976192296440609881469346685267680225784850813487252516506210209776120574740313899808511832906995232222989639876979800570588300359820574098000354202068380238305572877034348964553054919919514381114002506923370109401458140059658117725437956356473296882843785220452257365821420745155085111537642902321362682552744774574164621755029042222961005283460756962557929011537160404978043350196464871450582845327382959858714591766426898477645695338153515915707603253165274745505758637985334479129989645378684714248795281122001627423651410630503243368044317753503106641097699668848881333511721581439405542794773305155018217499844467277024600197364899372804759808236561289663698926018864073360720488519670472104642314317561591492936919792427365123730012700228320914032209218991294041854833116816469154523228222691446924538001836453386050963784802835143069382033883164659792797075961115307004585428196560683984858964504308423208973511042236123509641437184353453445682848918453337158738018149969301145340527070491612698188482572328788861230017726733118536751823507637348991429679799278549944283027927532265177528960596498580287099860984909044405794001312987863740700432709473988173100311891080198634415955316217044352901268228779179132237542877178328418798274765166281086252168810684382940634641820828281463198196005402030005160799995722732835776997581010633326692692605364824122967445818910697239216561608013614392610742919138422084061533284328124771027829489952193438321413241314199777515665802062299267814518251740847415845552708670194264450576209441412268658279652917442300412632479877783462940200636746688092683500767254120854829875332807333399555787968146383886544188264069310702063659944710948738649783726408251238275637760178185945922714578942138073155841778397022321254898102864361041091490602153456784176999375416334199714928470700584383029989393357980078872377043598414003435458986684126834521367767119332134124426385961457744753924467083997108769554101218903524346827847801789381984357734796354438277952394679067518137163324679982969989697154254348516489877990654734578860517342909300449294432904711492267277491857637617133708623393219228699770033969687667762436429527705060498129095860086470485815123325802805887556825328346181847407271073322248232453944099119840146792980216523702566734300620929036574994858562883818282217283373076443856143401543364259299448181660219055685205834986683277011610052800111228699782558624984950175371234972808483987423711084235628832394931284594277822951322282701679548266912938928456955372965586364120555844319453237445748847328671001585027950673652915291629882775269322714840007010289508643859203451237003408196475188322797222276582800792953261442298490667077281366892395815302524185801541064395773867834397533537607062278420477610294504662538070473715416997877046556709672161603487902873670601686116756906935710362180887850759640871121206500474281000948415472104034558842107794653075289187120499486510600045084478782242278704966568577462718008659674016201723670107925036706880217041715758261731777365623019637301303725490547657357739395588392247264199652088637399065964104777298812731994297168173530275119914350280448907751883035769303548397534597506753115314934697155719483293285165147993817304083147883768288107920640569017757630864809343149402268422733466282301882420267816504000555793635446945846278721617922964183809144544955831669708994355951257790480468993480259523078775294625919538996408800898515360037776932660472520650725813590390430915145266892518233332127424629616097646652310063503614032237656758488762444582097701366525844758286619105909841416288846529016343960112083874201912036218115110153937396800140498938617301276915892605453067347358972346914960828580094589256432715681265754088202938881458396989411113265347013135630990339015345772520440120192842388262664152519912485704877665340691641855748957241680984769044841197789926679414892716736914338557854978220648968792958552457804583813699450414135784959456050420611853261890234444919407929598842840485352291649462293924531107869667944460333830474957763895380216497994077490845340977646558862896557871195029277194977924431577601796948821331394710672396183307910373638048728497341286396374708246129847660726121337360267394465940969367856614341768887070728817016609881644322709435916555694111528331068504873301799446074943569727937854797226613308695497101704972976089949550048543567321947272507631499992293670711066177383873560881022779860672965014038908523437135955992844763849462109549304768615890399947461455844791616801087950128568908255217864883102924413453314592127173633532753052086831755954579233449901146739808369551528134174089633931449882765573343620371033349364150088217282726570213160589674350812828446946871970819021744846949215512606981753968249487666556214736807605307560555516158677324032733361788868862797548360001957939398582920815488193359930572903865362433516558356275134884628915834576291103416860387739585784299027644963958648585756501319741970025766485587181663289703774430439886035944283674719840646599022672789889751967351317144230473232727401708823076477621070313758268931933173366543502120689867617135067585156593620045812025119717969498591980929574494663240815987684711756634682808364999312862287187239725660226092863414672645977707179509922762983262057090738983293699729418734035903947415815354705474640044930951583158683092119727410748338596294529282379606779592797562391002937260103447583644841888683653572460176364440861393032189665915659447106886407562259774966699434625699881662232629655870149031902907898809766234786231656843400817070240382740070470729876053885874300273547948488731682666765314171293197794638687142700857015804594482166519112817063110886680606496610115702693783553759142337938691034774701319100480021789790794587709158545024557353343129439202064976655559323294893785248100070733145058840940363136975062181517765030073434813858874325415989424194716844820726236434306764561644440286384135401219936465085240215325542160445199772216062697574047697408084074749930607741359140768676287728919754388579917615307192879052872093025193794457084198050505674127339427284747424529424953494184430767109035135818970674034373620094175971057151364821425667817561205789967919630622686533672917632236932242368617677454043175604138249495988660402404910038578594789690615444569004167023702546869248595173453516359816775002210970989273547909637014877507528610621382140600297508976390638237078226776817634977987404450576912814459517213796538741089573776053305484135181999741785995328359706924853150243873571707891107290436262927771497650163289135493984030736560401611475097942558551908098334388077369265841733259925682117194122746130268143102632571212994689905212816221584927693008378057740958718006111218992896025223151776577875123639128471287746608805505456734631205012564921475512394277989515059530828915053944927244647713392702107222412618672164298385690613087451374270110808320743266232492186505249625266907928839497934738407776446270793956483530891682322426583348539804923933138857898764533651192007238467708380686732361612809141594239950808740393355090098260562598539836607906894156558135623840263282881416129250623234942775313818100685608411122381900283383150996856283854471908449196251213568543105116476729899530994282029915417883087882940807600583374423078255563458099560148372772800886076095213919181860650917424647818591830779602517282575880672607657224474910453515302861111371384586117434467883565382072322726169680792570809294430141996550932399144410094467903386346984624583935290686839311365473344164698950989472171988687587101594936147381856711067560412074736421194031863903260626229511360415382224234372433632490383488164273405748247579389742456007378789770258398601236532177937122928604178635010799826692040181800995681568673407677058344789932713365897029582125543041697861562418953912836421693913817468942643332515318852960544111641913846998189360766251469302308933812285375746321118205325192676566951481129949799336442238264225062183745757537538251760875761659956663311961133159339254178687343637175391247468870406046123103113528112580753656693627631248849226365119295003339526548272226717443710297900630511376979665663341501451953092167764861583756846687427718300981123040347454311627096938498368619113532490251636554681319087180818166506127735501770117458393456920942863499398437415115485090209925808675925970504784146618448965748237798386736129085894045068558270236682821114322787096595666711490541634534813879437195191833703827612612183557331772265851990435504435815950137830402743450175321629604844696739721225825216316646609823855458330285582315637102970914321504392624790362414211191955149755436817796255853673235156065094232308899167349666816544193017142454733734308937057546280048374265348021303457593832616331228364230721211452334557622952652419978855074191287499207491154728734015004576923626057621072762091979272932718013591098100557102782946612438548501390983885122878747903555299146870344130683925345658511059419581854269516949447237683343595285944621656738791482195984659169279500067421374542973715006341529663887602931418925840207816331122421273452492469013311751223006105545145964850477751808418992869024456174400792223283665543831805859212320095381483983857920230212952788795187923041671658119693578726727725809046436243254528697444715086499133073990570616507582248689242414342311176386368413558504783746344472795493656837387011938620865196326460706314729644575941800703683556222847225281836891680411621271948930645995729897279850694729793704297558948560099768579502072780797379290894808181450510406656110227865132196311085460297959786366204525945213210371381342376313673769936503125704733569589883410160895126354218482057279464025350354370302359083728611069496563764076032131300710292036061380434191849854867960890357222099723581211844110085508413305254186069390999676003020065862622336828640200544395378703217570739778561003848174172332831652814230236724613179568808085019333861532996866514064713011312047161371821344866057171990423529548269832049748053133587234628921072003139101295144299628969744513813007969968412269492183887382046615319400769586560008357327667120162734235730647676879012265118952774305680408432616737158227708974366907712254080104758873509773266004101063160493319776967212631212846157605699001313343143649373656804364595597605149323396839471809864401795806064347789591593795148796965263459156876640000908050945065614583761603997753392227115799149162337025787450649424230938863510734791763402899520246970593742804955752996311629039956106930660624930998973982654212028917139649288806550260113176123701738463932784479880723830645397800095741440916208390917548933247134471782000992832603932117660361131636106404622113905821404677907047057038089455282569172336533926475743731612968169499096782045931438141104039896845532599267267347029633241819008652210862975603922525454747412735549454852104855472288506203545297245161512385754272061041239807355584862972128475299094666857643994527738921249480951459448624644206530280785218539488707921130767744619770708757518331827807611251543319518727098428316008237974479086426303644099460994543268881820975457757850494030754569765006832972205687536490726270714239200437938611553931552695434082133125477487332596886855895768145431341246061707309198025144848042861061054274827447518881197215670171742069624774693212912847044977226881603717892920975074204479878651132617817813859355329156264760354870628756783646519563828985732888039682152598412326090601287622515171955708628253067235062275049632213891384849826091573648820616379671864967735083051841135159164776397392598370558964978470031706438486679509746954177593480345350859075884751225641590796882349262784888410248000203727102935637176909599835199876596736888945997157318541918655606726633946550758092213100531116526098067404390656518136427724554221794921174597146933735292410502178336948803094399501185985753571256285922955925787766594483787882677016861658154225954844620874789219512677882891656485808889014365021811732467059364776953262380110259791376592544246980854547350117532483531820406706605157805393206655280636141788171073974440652815465516918949442542404117464039347335670899785264351444547324166867054392872593465297358515549205704836071819854200530316678969227142268802712341297413391034863491758578218794391237579167841760561067529154754889559853640740587767118455608592896309161365157119677412091714308124098465510931101779065128977206997020239913570534185224953146401185478507380336480897506976495337856792991024437320585537017697074338169110786537874072514808819075344981899098092102147006814733754489963234962120051202044785355158517989806529793087399413698514370518370378715821195539867878163523325294004971850432311427328017530799216158681673112276281826819017229123915106558669411578010847738148267674003940392893254864601119623776676019829970264888672619711425975549114291321432380157152947770054856145855224882146578123306060595413346349911895231441252280623781822073480898589371463532579765710241135555114015030461766439021797722889873759560251814745351118027122323338498086016783865334753174328603128481521421188309079027536563693451638021124720593819794179437575772765667756156665453567824695348058572981109048408335258408116880669378471452136718703368901645838015045994961156586088163409970959331438853410694095945777550024217385165498429775707919088658684960720437117244687617669570287217477201383254975686536849302625723739416660880804181156912608309688548110582781075670235093711444641138653549500538282278950281389042411622550837640897211614833513420775038501876066232208960597176341320568819770337874378998360210344782983765902100901561276587496609551866830982459611413064455387203018555905730261003197632966730588061812329503170884239771309344044239612670591051713264802761421733886527461625556747517492048282371186984789948845619234567362280178141950779811081429076459594020260117597906464871854650911665218272629925550346989832060934523953154876236796981500977177680593717508471050342186561294338923351178655906620668046774179591351910727391007593521451885783525085941134774634141465391744990231007048456049914226450474589834326658119690854158578714379945857558663686472692491647644107178668921529086706085668905646437912369130447255711505477885882918654628726729258500067597495990034799237266890466997499378103229137580696908923661140233597358820222577498887201374005502976316954420437454855583981394468900826285880923800324743019579138469378983921332483349689135960196817528235275199372716856545362914081089050065931904247028371185175841900334529024141344765143307827958535579748837254537892682671132395621802338580594476938323666685374894698313823686063825941791458527288637491075181010877300748171866466285114274943341244951233089571672678514141614457059505039718883669746988599552698227673553341514627800009805738818360146003168059565342823550040922507759051269113421817887637723382816737269114206811594649228916893844539612377964973243513015266177785766573934510198315616568717167177749677641731983983737879440894923833129840613351555203527224276191638439966546719217196242134065402497193625246501105397032290319130269518631033751184061653757111120740088766436361462405454242109528161806846646555480104863340399624744751601842165074070851258603096009287276019274541620826306552337585850127306043371859400364177581914703293766682961569718090267565113384187247693345145937864209713945126115947714196971321219420321956124078455974011370166564575174820486679998301848529031572809939518157194235587037797916439454107080724033632819968489768556339800700566468448521588541967594158342026018594652481112320280123283180442874854985275262093465191991022441231124184761218485357600472604367081899464192079431194155497993136271576085619606731658039920675308413540300328944535180975542984503654600161950087315679554862942391009439040271176620749294684296607609638744809519891427427989538415533665856022789266956031980229088358685205760358511402206621820596917180278859707380536218064313149642034950299042793845626023761450981095294206842298096763363579925562106118701236105954649633685597397836438938695201406017734401616172056608216025628209977663248900197299713571901857254761258865681526612578063469374968411514550551438729441594648217828419006998422839114958675156041756677141489277435630153107710821060385174181548735762484271936587360593328751551797344707717138416246586403368239268306628991035517785954182722596081177265711407300293539704685124382782370278787282690077655245188935169751271519293635003596629858397242913698914491765185730177637427078927008080701592474163543872435309226528245976368793904570566831947765898400200893304093974850845215594624860178048410952673205426221527105217569331948891282194280875682244733065657290160367652475129931034383135634309348348573420627398267276054938097977159727156140499898784261022718360515621701380678588757272646543362392799932472499613387793640501975368069322096351478954897274526088446687005110113642894997777268474539257933869351301002791687175828370674132051064536074119530984466749564664938937052154469197116245145135157640933185131146654952216300654926567726214407432389349379854515105624590162010870337134269119169974604873163027997636317236620776363595563591725015694602710211250096434460120062698136845361200563852028524243318726273274352996606560927317501517908508678592187254582868772203945893253363329534557339805448076619907868321423366867344823106009647801561377023018973272991523210684209085225949840906993468491160379018038325233388854614260211180616044682256586666463650709046983948936928106878838335081286064309299595818583629253013237322898533281088859176684255988415361913310732616423139613340173614201112485718901315093247200282713326252704750967994793981514392178955752210936401226068339232051623952511313084657485234914169389832784362721875032850392170828325908208878067750834502884063373155186298976402268927044060763185990869707281225704395365561309812273677368496310735179737901003662442063788420665253040887630835182860545342083287873298571873768726115516840281052810385782186422892366603169949200123200653439855912031002029237929737391991222030427443624124311156321190803231803310015607860944634111373598651018327759981822733172375120066311227400333592292194195441605693032344872221098908619237067787533231909011099451841783737245149694379045971314842176782865599404143681526421400301895165004685611047778202917279185484955111227872510260280402028844429155176080414607082469948530779819180737992705088465835562339702073814189486181152422317614541755680757217095077615160763467562247803143593417405807876514957210564973663939464658300896333192135120407422843827637316673842347868267179023366600835894548464034559212812822546153816311453955217434916973509105662182880189920104005804460713271848572071716436442094818980895381550490547528556205765778191573314681294771790794335127327619170567688391267838209320729758592518984666484410641625073117367284437255848180195535405694720349527348545248034904698816275648654230533654774931842507669722263653942780338194617366996569200022014304191963099294712019153695522224908219675377566295441956664634596157362401767166967454384194022763145119405483100307585277224431544008896459526169648757754563012207860609791657603688779784025436124810477183791499814551277697699408008817233141827538064150545259542347557063386306869133550651071287470076668988165200686571898328327006152686650744873632614941257288705295885324017008045335211307487781322156259509391814194258502272871584812725033923548706377840184500524424058802411389808744782305429388758824983597003736500190898912140858799505462413199104244278947434431325152486817583414702934621602914985385673670488614707576180864380665199983002547316228060064654622780213915843162800766335687477189108204102858943996401242480814085195697325465443736905403697380264715984017457791401027892409711237243928940831749482492723213242093048228045156742024240133174044436793501119806335130316562257402212166067185805018764149711135301869213077721244299199608187496416083285814641411160145761775415383364226677952668733532570011927514757073502739965253500824174499986488741827284737711869965949381442452781699824200128755189575902112475812455903531151863364276736403631042789422570536273427280773321455575161339204872864271657748882759255228828511002332858535127949508875808383405812371662928087626087125805367869826907970788396612289571170800788410366615323174845676874637676117814178586166529499535208059184051751837150779951266217397622415713897830553256052487633371861195807066957884026124846733682791046493248772299814013783382676756772431498647453088026229624486897969404339185205958931699509362620094096070532612993052242535231493549644065901631802544589742673755356554699764796835624131061294336324055413849323742926201832574678965836957518410756126275538485123825158577365261572890615456889453079181588041994003347822303855681862348156569057290954699088058112268695161136960355750630938533501284222308435902602384827024049773402550583869339454058670277045624624130663300664914859722046400673626824915856283461845060546673489693823394751512111380710742216352433375709625000283249661364552709968887841379993137787046840443295723774082899068804206640417400418380857617197001237342518592874296337197884812568098804648760148990605521573153366243499215353433673908475686303476077242080382723695446109922926415629932772161027395573611044556393464062765818904627104930383680466446254783141112731090940483655787968818662748144620425398306715404223630268523492969211614576007016331364467715046190772001807124432639995535888935156375775643751501105981565060450192746314877116209225929805127197554900106630561610394846536432530038706370060835457626774926441334971467134363267109530855251398526093000492847126346119291424319065467424589079678758044718001869150312022661841754939631237173966807186197836163491306383079270820770861017571248259226850750579274669798208769812958096694083081429660419566517760875451738579757908119755091680015418629457889365620527870435191213613569134858328062526040705396878419023873991881509249219693367432846706089791685939093427884914443544515722713674914607903181906189448193092336507981339693757407872020320921092004700297305354424892491469434150637156730770582789564115482582680847602697610210430813849914680508647731861694906769195151241820225776702352605039741668510284788254091702603085707210070149603239974834514661447278285217029142669122045609034290804533132217385977884635762585384118293522062928054371480644450516720592736327440325904913210334507469243883879569714571290390320862680538473654106407857231452512542789425166578292380702923084738579284700260806475349321732716008448713414467315741736851542085550733111782005272598671908909106193617033344196533135430423023605262618729857048340832236008484705392683927921240289767527954816593962662935635813152707774562371891963794997642583793799293134768725981471824726396804817097897510768360809258106249049242311353593639361565676394814750366756671083937227364597380578402772008533624023301482349000965616230806207709194571473768890874704186271218795533507130451401763524476986262274291075143609068992109818447025057325460672203058616069245884234066260481419014266605667841352696220008049862272230272974851926766655357681519674611342847158752305377675366105562746829886575565211510454471543349973511822797559570376706390494315361388643558909505096185048320221053518326335307583253859311240276809072531783170001784207991154185079201478257388344916031116928961440486684685811535879625385730560890869524150102732922830405128775456310913959330881084427801171293710422664775149352954843640271237717674802071917154899837839370510712864077835554204398750536505758657860610269272354821905258533422678559119768359342096626867241536338146343174937995528312010447373886150990366673793445162662086888172580153674335254202971378134723219043063440574090002345765015073241504372666251389442357736965466890715699343209705322834902020432637190404148033845251750269042986362680417825597845009301227735417767198410136153041576349664336519521685991133460000437453486041093316829654072987275111382599025335821367398393363558915331377250090576104064217847260757227920033413999878339509528518879798823476285936972601719020737919222519348520901730885967147062053513195454274590606870707491271369834031110737689407147358967410832469769111748341323170943060327113830150894839537348396341905282582425733666235891228514594237232174749397332743294703473926731636815827097938393804747437230651578722285732566144268526887202948430949134481458940577157422788049675507811300516697302451643582840689312386685576335534723858342491057838748628655782001123317962694736278316899379707168702395631511902842901027323453188174666323307461143775491801783322225851622452143438284594141393088218417218659109182309719704958623651670476157779085238139148733440024286844082465124033580002626757624463868336126765783731496263187664443565263902293037467014697774884677379329195675995698334218167201611078133545308712109221625493970509078371020458335463495712318872285251115149786631844243221373952413284980944891394128407831891392048763769493975138555363485015331694186604220686380507607230831849075543946082015344641379033351514214699585474422206567856548362829507105268839175947235132335995896452101167946676042446026523634629425176304077609894130073747633463218935239346748802837638166191179968566484151308651804325625896823444066372401487845688041966950675672305473727352392904282146711122466562722005725346172811164041954893158298831261104948716779727720777213933487973732885696497786755110436638025030374873049084219402131650308817854300728453960057473748454281930995641297625906771500138263600347692167067178467972097217120869346575861479076502437663663435072131269986095811832485048281528201895899937371187343237973723762964975251571855433737454415042804569096937780864177587058975265912426015444886325993654004894038652438321305266393090656868432264644031280150651189677827179268444487135383229172462135765567212607149867342950804076881896304665597005467691429697881990997946283689368696180433473463833804869571499293578587389737838235932434312819793847417212289057698875231785049771766326149968514362728189005138881918530231122342336222137231469547290819920902177343442406764671745629601551166852071584911828486916714831665880118491724972962231074267598671292420127573461453611000911579138175816777335426956461494377839287849512143340311406669286437321753316668030085371941958212272737776024695482514226488027359492962050204062575470117298277089060628838573262451264300325034667137461258275343432410864267644262555486604421776560428486427900347547813325847237242681925432087673822682878960481908567507722026293697636124855587785757915403379034212956779620940633914470750382806614323930337249058147169711681918124041906544127608524703441934300142511384212885718867921869454865132518321196196796433674250980658674704379432483796227020140229654754174464066899365756886499172190623238703160096189560661842969578536939109986431695938628333630748429171643278456640369080562500491502211836271995535678094212741188399487881863936745819783908817716626816414360165284869270051201978209101022782158025732191468178816752609952989767408211076403118452366364987236711173916838598974774021527337443257571785333117199354328524243243464202658756302205615920085031416090969038238166931888067366468931117440763457203740775949582352065503541763858321880302125425133800704575966851509907770352884807171482608290442922758452274864071022574623687870458990832757732077670133461171020793792240621972717016984816280530620881408344300996231380163852059105004908567417029474220457544964624463526111792382327774626003180471676677460566136896923791977410571818582911416435332366524889411458242313900763874526463675167312202019591046805887509149732638547470608729966709531969394341371241309585991863925286278104069478144907862932254068228014426244927504499047569365077219941131905940971501892939114916443358837990718167884306296239122680435322565045215932640158304880771155538784830106734015428494775820826258664532131776810838561702361737058546588688290105207937991208397296509805450339598136556733422925964710995423354698223871532365024991880565529320115451102470233822782036298575607751390894130650051808209526464293687413537955341141028392311819834653157796508914461461384175465320403882661696363758043354050641182518426141024696776217454854445125677890529184805244346393117758068720758033507643628101930723433809757431757053076687607380197951614164473419068874034695462567511334189572258019671278587270677859457050869890197253285461080699845508101972228987821406889590438223049852142313386585981070819717673517481142610138207804043834439869509288145082211342402666759135492278191743661462534330438260004388304301112974535621763970646656876042221892857495862417974664883453554685925906596152363978901420181571986586753414928232887179843475904126160787269236569894295196913259022611592681054917677208674478096054044221432659923334637387316098295240096907059964565012491354265899503727510743463453802109943603791427089297221451375928867599738065237544633146846085567114511812243294654646587585090323254156907484286850728901420418163517761173863743329613348029074489232057351420607770987935457606335300770434752512895974323583599699172111110463401231900389252730746986962540227439199786027404722585976361880900975849082537089551027912352476401146780736905910618532253477133186967844369065385261785297079274502163701109679809600301780813095694532810893141957224528946600478854346003557296263505103144812699370672040366140485239230839063847723960921609429878497177264740254163257491080045295986912760237201430613445267551965138202701165184731220288370940761327512382703821181578799490103232887666445105022960705488205019609268371431411619287231875776516171726823720077553593900590731683528606064153578270203310756408107450407908616632748627319328556418192457263750628814428936291932171103689546182218043921581678277054476107389858705872865322892620143915967813048992331786940090523313651895672893367350037099641517250915321645136677661847368915057206499864295085851492551240417078949680225281815627359350730168965806816043521190920077237455829387157082308916176869267392010095638431981900824931228248161168260595660146163809608324630471493019919319731596513340965806443652778273851817242973567143712377002291050936829611391450084462963491209225543813947402840419035626279900810645703960077005218926456576244606017248242764828443582362574438919148880528268436797229407700382335021439539676322131784974226072131378498304240562240171347723228792786708847067266836181131320766645660250750723492830195496988257580786582896330482920757069882829905895168823505823531153647856145380310326288741383333801789246142174862269586936426972573630674373057251026069523717943927566561066854723290824470902351556219981343107887489987500835414298797948904994002948038024112459918354462836259662622332663563678693923687117566736901491793647601927400351091568067008764132940919621950254695570744967965517979257660378422848533382015815034783849802914754418394906828468269061547925678852165664098773806148784392521225992510415120926079142032128894395694916550863172554986408546174080567556924771321127541600255779640297803132424569791303372922436867843243647098247619405846205640853739803522166566293089295566592191131157600057896662715405841463805163308214662044974618478830730007667599269134653250736058679505942124709095825939895036213435953226920184830716030697457768380073000539080703796907279246935364102588799916863007655462724651772765845462721495931595626480004000642793022432720597720372539395812694768256998936176150830620002064463467689438447440995543127075041443266105457966629481360026496982690380219217790133038069209215445793015022767485740699759742934158801726059771882959575181779377600231691694637570863436038449381161606915236241714757576271721503504408106432310745600996592111302166075453904617212149282271843688366470231954821909956125339565466607725109272662443522039259984560227627077496504836337156572511803824374221212441476205528574496950768568003804883871800622498165381720881444675195906126846535202165432151828019795034402777894530372617648677815320549773783043211940113136157363121980655109296837009332823034032753225506394978850842400681369269681052734784949815438360211770493641322837021260830964905541825489685086868671109961334461957150186010269285279828695703289048330741855721771687321602814583053020986695023662583513858487697873447454565214526775965391770941255734674818010323623242251914812374803392849839403287684667747059995057810154122841484571292120675037743329404918424399525897203940913453896627379417806516712983159738183249885193754523459815594739554353933257744269462291363407386133826422100267783244723492254552402165766999349192014273926117897878209548155732432383657931914100709851727882328871528987722929108805958730066277612824091484221662792674351114513948807164863837728768648194913567438119297935829872697307873216430521290810087133680989971578770925300163658223083112536485216761016255923863598766457433536262839162510298875111358956168042946974884607408071930715861288115297315416353552410369996529806253073889645663467072003217376808890269338782532760987363128066405859497560718619259418489527413366756476268376263057978908640534809637375123170344974693410708794801387558597398551438816986196134610584657947371554656986003920344733172909792957908153538923465390493988355547904188760941838971957033351424981925076379725026266225765864789848891375276691656957652359299800048409166758165440048036565079007761262607530453161008888168559846324235914622752402476625984415485900791968848380451926192212537375737201502813075430588207561036975578030150049204781721985526004796792440252044366646085248195606006199037523743124076096399841068591630054265286695588474954341654065018333091854044736956210705742094977663976477239342785731750181028271469118205075463278693794877713169792026244126651611052885905073094132168860937105426268291990907324656771061321862974765314509487341747418399667803755255426981931756766010993317161215272269174314926147028663850585923017764675433897198544580771245282698309856250707126723055564547759977075012283672755372344284160534760896499234735389378512358090199628559151803503929581527245070463638958084732634592142291782742924211590363444677741551664628582438159904245555907696513040871217086226004315783767439910849412480829622340210985314223182651486170223482586079694428249933050600270927721690218910565985789793644213740446556241505318611916747903494343363085647481095900187603524037325386820630384376576950737203128052936536109074681079887404902143361738436888487872691561085750282265772425081047225493677267782141952873303575009567343011424204991146980441608651998873728161752078570006584303483098913562145095402096683626705463956934565685613023063060618959539090161693644378821316290538258169751136391015583555618637614656171254764421413928646207154938153556181207112078810551902076659044912509933057255620746955852451950888500879877907909112582360672997966495785268544624657149736673877457571858254136673773692880085852680568273992867543339905254120991651002839896783124183785398918104083171004910029207500645935341991517878398894425374395314158898413849431685088057452805856948083528341406429391076505564698169737656134587564556679099435192248878791694684590695796998150064815159022115530160714468627661993037744645989433631714349917226342678561831508391996266093391502361644843753523883623006062455089289645611114775592279308232966788849778544306626334300358059958880518200671682389364301095134629625100290214154923415731829924370837372575368741356931744695605214351032440346046596149096412472786293963094908847776758447819683238987472650829283592504980578924808353737563614389167875660085526255007269597295271488818968083134412495710609544336398354889193863969640176890205301623573553229849312188871342900413295366046509701544305020386633621748309157441088957995172888161914014535961480625817194219074973780944798293308417515339934222396550343458567326135083364327302264146816534137271179309687845565227672987167298130009395185403662098188166916614194104503986449775977818302042823686670629949693204660730306717171252971679897406888522689742178639129686829498830226246576850306887153176577362342094209836362132124214541972945351317795131538392550365922546356108695691451753684105757345324591407032108792777912272312631561992310982035801370446879846952941106693264949365762156085439134682674314664652889232961224277050249139563052904186785357300729363613532261574878007713396629690927180670078051066032669479638680722483338894408919374374460393805402841115663008738195596881566657368981262011606703972963541200265889242269339844249398085221481276762709505428105859215962475767438555235656881040706479825664633357971737242806527350382231262900531758921145278541583605556598184663124344614744418705565627193990852507867501998018439053825560803789094093117221186535721868124598677687954199631231463211024703938367126523081917398079029659943699628851050646945253877488124885217552091033024647802963344523121590495334273217043859566720429672091618013919482360857240051422840168374468382697312400035611546228335593451553955413051383342135817052821502301904354210433635401035959796714696613918746009151569060518662441717865836841865116883503476015118082400551678932035957401957976510673743406010548426197756755831701769018357649335398175911975723333614607153994298448312012077833500325083915747626011543859379610963757003851108318006661303530990562002145348639615870724819722482114009451400437164481238309936817812795359731510171205821856161594880933405882772085365172602359730646780718097155689255815921039471768902626692158305388738957817906281117625266201179461266107415824561978922182277874981503628759182877163995039295522725788535330723172025145873508243145694697208911094407006960564700270393399833404607825164200464250837536415789783344478793860660968668778563403850956331850980085300365169358778323523626648433398485304852715990552301708315433244150815959406370120043151248189341870649235534172378396148881323667705757807133392242703409458157223435260662289445900317066840352788962347004410706898165737648199739059850043588639087876474744346356090012059713789338432615143386759602167804906476894423853102208637590654191090580710457406869095892006082383714293184260528080043548482230274936836794696336675954734726212479577820718935591897317461876570690056607191480095776403473368090368034584266071387525293500055916158837114250976427316584586808116551574685871429305373227612301185394411008229655134408724574895137702016789745619000864533846378740493163400361504387015988755094914942417932920652262800552835661628341232870908191213955140514317212579668116504549899995251578198241384555957740172795633152082061529415137784127208931319410646720238257057195461700082846734978578065858140784323206528740014709134570358973698033976254384595801257913642294764557572798820859980700012113959004021855331338448065487311654653782058268077908417952164251743909121507386253293324726333916207778672084926759055205823251927752250511548143204174881585538762414084382237570011986016449290983299168863231187147265186058470378034507368410298401571047059866376066578822274425955156179195440223099789180106207591743720746322376084033228225636224388210217671468354578315520588847297390359734566119794755552829566893079190245635084855969233934818676196050172107361543451612823708430537071801272837470407032221286252237625135931844046468688809727404900989402184145890226965239638697734536298245679847288330926190978078400198240616026875407390449827955975343211094616544184721133096887752070381150294939225510155011540948188133002125251096819789968810296417436226518519194705287927641597363060394382303121769231474227968798243443014129142531257787119836506494223125382025281182398714944419813116946835805926029715872907802008493701666415298415748525924336973063722805559909494996614032258139892634691481226140726423728646953066835942120668042382791582928670225058880552527914266470591802121581505545600350886233388436727798635948602920442485331148368056306952736668438398425343234511508260805411267616744355884356678978026907820128970520143553545272812344617402995442305915471655615101778483192133474413764820439550009914025363582696091799519229650109328106918630511034512189864602747651670501343323100254875607682741137063176810518943186523219730435836715200899595496497751747284040828411243757726057616770784782877224550409512189786820288728193486772857278026993344746703494412479441195733794201944241787411184635724208458607839514286098776428716910541244608728173201708723022769668095412115340705571055312227203919219387749169168355475563368463062217194205942934987936695276272015524374472706652174842321398687067750414187134911229270300202923824838789275696422126646071386996235539275296448474103367528405281956002067332365155082430267841439085796643248189143849154794245861681843358882078185794749234484116160333307667723261790036975111516283323397452859797706838620898254370925642658471868800439560998047846131889061967703024090744804807779848713189622531078883346777046956920805786620700341786820206948783203066733978066189500817177886970002486678731682054410784265799875769298231795192847798108680271205471056717115855886065149412937601708439172213213598726342135575502756539562317020616007772608728037308015136924400598032504670557875991809860368668849407834643554633243555500568221817362588320346075923661221463926251702156018821492959721374920630156648279390583737873810184421906692721811270419033528773099470023922762462355087737548207533100924147842951406722624299539765550929238010761643407202757514001862171214812562748372248050612121014508641200349163540973621513072352542899128372850236273963970463986415996468478876772714674482313003716812690470236461732357902464718463080285955304264306994626550950358232137176372377410469948309473267713923235765782273094662850647149345225160375318710731747304477463408918188753369575589342590211627873172670411129821418192227247636286910510471347157601241860406242565090374463507002125444056064969853558891625372655812666964295248502898794859037828024770596934001267142317191797296880232011516590179151427887442398550135678887451823710284331921104154595516677420345250355593362323009267908486184037519280227001276315063833165136897807377778765334358824157509902339652644244102418720649463701901953091425224478559305190585216813548037933245951663613333910354304569893414704009960761009581222812348689120448446843651783180936159439885426432838636894925796992830877305911987901585658789527034709032829613773419672137914491884427064154122523326946041952083727746925887270105034019305492370675215011436736927796178004573629322473694255121804924127643896785610494926619758475325129446323939240299012300341737524267063160065933782083756548287316942050199166913699419131533878116176315661106605829442070602494948758310443216031554560504580865169132311008877132935256855485003270346762654772060771896674216186225016272528401124427149416200294679653977017138969862057790664428707152229829224919303584803826202757746720400556955632595706175682164688630514366551581629722899606875859315305507896581711380543801076057202072070452675380784796738268349815774719026476026189050687784673811041983008886446893898084166347453060996326661791070610700660555280388441479502262774489814048401565946022032017938814827410850209190811265334100274796103686188549190639076491381758893210706816165603292051491683417432987678733124131726502215516027696178234863678600267714623707657039407436970208898992351111358785910244975654517483766080547351771352569698032658195041692029641301678622306934661425612048030138558493503158842754268288783578752276302571164691539004118902065123076977727001189403831216598615720572111653980366960848040575007835906587329149776449957872736251039561613856464503550948979782768936135298722016054531303335622396303298820128880022295625276854536794973865518979151391244148128390156215059799942634712564325035973748940387287294553697061362839687165759711124431543481363097844031739162406063680012652630276262295435460847873580458011982334763328683743384445240337602171414731795641665513515387103631448587859436653512999862939766244041948724501480343338294693051596132781167804659660946976065434265772361681151584433016433395190045627894829228586201567907461964290696488299895571981201028157939919072328210531925112558512931469388427823752950869208418242905165181581128312807867798990734008410060182435726366443552857846972151328127775886609683086427770714749900518188334131751262976502999077292445225979659500073195477171555763675417579643398989575468721618436437147745910044108581056445468742240766193826881822063269606072249234252511083147279598422169255913544940259251386567240437337270708742591077262882597905870082189179748580415008837843744672912246053112219457730600672228606531426990244690469503401892610464500890786712852761092496348647884064482752547737918779928337702126592340785246416624615419763543506399752871448803443637441591467206618812817966255068045581421224896225294896498019766194581971901860407940456154515857474201516360053801047727098805934178288161229606644829055786164400375315278698769872496834212624687457800594022337054670644514651094462344931731442291617142642399822835760742172130433099215319770213685388021720287320402989708218164503663105276287028279925888375894420303063022077878086445958944253921640620625848277630546385910439429164545693293858478390736022457217936442022314133073654874354550652702150714955769033921453236131273959824641416889648270200737818576613716359350126486841595867413928777212036845360295047014144636804211984701079341752880418665952041993867818665476886682563939357576185288993913223063793485948956437177302882147907186585447886388379146184173749426752387184454916692845503290758400424111016419618645710947001753286756878779473662594472234538465630934177108711672278058548817404521358068816205869026471117877738854757366499401088342044725334009526696513658815489511770814248235120275993262010200831983398326708499794678875187189570354244851415584917281376412096960544566116536256537278241420466493774719935824084076159492245997926597386666579354823457447546551137333835359279519966734114560584560428548813045208882578159831530965081894966719220360031752326524245526151484530236584624865403700953071253116496287209225698790060907231305878306667988927542135323040177988353304194931471575532869807893596330603650495535947086391953136653530680999766331194693449123770718156586073303271989657887761958224921760506196554186954243744525133719454996838998691705404962374971986642386083134048766533059819226254676159572858284499797613621273774410206404857750850369297422973721195254446709241094602886578557095528030448821435869140789827872122693181901015480262324074770411234826051112095700198541052024911478736557356319465770579500795972605092369327263189270749253975805679874122402693606377216340745976782778067401959178090327265927272963506984537856275955688773303395804416354221116919499150866135217266154239157662287766725229504029841248993621713046919755476970669769917323179766641501383193872307680620918752960994602637595741761939418140494718890270113994958298505502631126769581610527449798907733761333562863982065957777621078660594741704027347379467088317333638659020845493131224102963261417829349011149384145231282991828118204892217231857521145938066114311430473401866211443076653079088058343666892668243426633158009709831355119874486748409498037839995416402804012615262880037752593419841141161696130553685379399409666167473374784375714480478072331753244879253157666641269831605049333047410796797359152223330011570848225932089348622025176919024532517054492780861222923832130390043755449000972158415943453621363983459195116541861707592983496558638852701720429341140700375797459883250997177301982333418954191945566229193009678676573250924017862428768470756579820704880072250545566831317226033297669683000852453585798491887542863567836309214819154648038329498587828553543328766423343155009568212320123935641489287468307391444500750020200546732122755084173318592229349934243194617557197213733374857550916460937141533872120460281991175690586939403014619946043511491178020691496983747073223664241335479909051786285728273379879672785497267952585272697412739128523969264886001275051885018934307984224736746558042410542806234031179722188348399561761218452858795381618220510022636601638820221229976766517813581926046691947506059793421748859860501016951996909684336167748748746196432660088642055671691977548827586077365430410287678941067646710076092887339162775603309499479595235447147733421552469150327650601280920914899438827482671145194383706597493947859073376941417061133265306863888566352462395308878287686483220049630829855775821538108788312088643647417926025011066380221415174524226473287225092201961713248133820130106585886812669754391420647094116666456481504396519619236921743337599446002883188335668914696204040331584972809369724392086008100355450662536393983899141378061573715592926486524284321446501979082371827318333209330161158352033359068237122816476273615978339408071472725974209709745082363593622954021359792328008566486985378518612572953867217958668585055801765576925151055384961498989429234962497676541010453728847814494034558358063806231947244855784021011433551343857170568181175223885728166614830407231220659075798210204668668995132326773702060707689236978619528792406551277541681792039473526943595213769096385151841172998740943403754594306639643168740755580421513430629418009323169564433069021613063070950945920252290253007098811009930864119551130947518094116957024316418421154640031386105986235962274117509345551458357870788842817244301398623974178609031563250810487887168451519120394560350051032723784291826065932835801592297469124210748462569561230666341284259144910044412499018028895952855587515593473248792274049473812343768509300442207858497715774114376709962485350973806450557849567895300233382979372518168458784759850201550935601919554845094824289993994638870833555203813170863458216829894836205431683513392059191594544932817125239763509479144536865519490706810149239170792427485983178527873259619198276178720572238677005863173359037088161398940900256028041065305981408998701531571701198492582593363104059872603888929460691305272730874102230359633693254755693465915844736350701856070255889247377244034180291197928249487456720837318920140334826322014679869908682133402682222663296604230974299248472873151031282777545943414508477739812507195776745723816765971836562817473641777294116007486603623649173436397391945720133121183926904344757881869895884574031766234559866007005457713026904856782493382533898855147115948999591396296797641001747522683008323728356355076142537141349374949921635568959290858976077148490309746494957675582147181636653546635748171948376760817300210780350167636643549330700714079015034358074065913332781519602097525925608018489106857473077749742599737650027128596386986377149860882843304761047037169769730170153783654829628041977508437278953786285464577143137999263461049123015704316055487081089271037912864567446478314534004923413778969979628915919414480662651205245161279014407325081068065674199988187497620679789804705168557722095639805720570443524698956124996720960910682275626247628124729532966543872280821458231079646657261632813122601276369370195899818837807583261947931393921348915837847810998701272059140384149809029868224568201835779313851536845951296698934690325933886010707586298699037477682053070042195734121509777648059838703855934392439541470591395871015934916598858138319227512769063582693131854820394764541269553609078984897472011410625235597260733715882399928220829722043074410841030222828688453381289455263813201941315004948871543801375282876670675095091087743838572852846558704004115949078231424967115552905624438984411418171903184122580648391117917166002540151206534424792605477804599309309558187974354710328016650086280511674299655209358705150418813507884808491155926754598945717134334259023443522039007117983673690882148477051211793257617944459766999876360945746436143840538079441811875238817361831470873378250626261856069709620257481024624082520661424411714691549276344541805993935557704733447343167519211916248765931742676783227944640676392384333693169564604649145856192376139145857768787763620773106799110251903338532123179033608917202030535754354709579048726878716149856152842147929594804150648587704158619255962387823069142658727536661627302116440363847949605918755309589078813287059280559190133479060924152093790974687741652260136100150026634196878794026792416371983196578484841478890899220781277392056425019794965725569911302432769279948698963635128369767985095843978278745976370739943810182194020606936911048223574530927357503968291844325284990172363842648286711333495783368624277256772419848732221201381081542217154248712983559487748218253205218647557835698429513811887979749361105978592029500449216476879237637640404541105922624755791236180087819323239953240947313357114173394694580349738652458421987569680536199644488507413842611342797430791317120425641321967754545943506588218529511199594616327051157154078784565807197595387358010565840165821184123335029295724995486598128906737107060947110484517286009038643401654697801301954080305396760452132464925655676221665713631252411433565312063063022939207882289325478064300934441237693485257857120118630223050897032216620560665396567384119634348905061935235961125631606223512496800878424977028920171976072642687451783615730082877697725489965658385644449633783966034539110901937637447699628575613437190338059063646711936163731702175946550265582854727980869714974479909417193289652172939901671307121968996032567161992434966555338641664124000099922514579171916268173934478636859440036701393060279737974200024151796011073590396383591290273771237867751177463956621120573156051761405207061820792496673420041893699277916493236166461122640689720903263014130946207814723213272740640945286308379967017785517193676437076108968188000877823610535286716218521315754460111285360559536673367107398883549688608516513044642115689289517441040564256821332035757899702857126405265440163321759966675820516283462592475998664472576029436173353789956509956513056910314956531603155570028813865416300260965090041723635504790428465138220658108810649098926779197588617671257388538178333416976718561007438169147955769255290408313654900433229372412015836179257180824583119157607483683294724140190995933711159009969017585358381387409282924668931739945284268852532863807920131743980153205582885764143548887592241566268225860617807466699182189634793801792208808419261519213967601529794257262752970143931291111543779431205230450918459035304395240443420717866393776978789282569151428312834628618563287349444341827438194949568591409658028457062221416462023991281932944896096408735504443437981196810940782612253698616652592819130378995961144690194816571241767571032889899709766819174832707230435291005880828305004435651623660651709316087568734609267607909657208561352666866887343215886037598470131949597931209377051505175118747978542228413163340514714519926140506132860475534573962585488071112315697815174334912241557586210962285845091040743746268082234394320171938241760679793182860453722660482051076427667570858326474746649397064400527924425924623844665066064455458933151540989880211066002652179083220191250938314926990610172264884672290067740737559878209540498961847139519350429578202163681706649326065187606442186869936675837052625381448061755707284527127445951293217531429230679042436339826044721790951415212922794392202947966196026649513232423675836494198496893694700821588810480272316950421931538106382648209369588009536563444204251880428829695075882209640582291212534774670791705728181616281515114102358582036244169163297783553704544401667073415961326270049816770225819045391995012618364613916710810505807109791232094254865590137548601596632920013259079680314248333819363240429892401861197518532038190188225315080131091216991712656733037997554508466567473309858445409990558630348687361493079372867913451796752540283602920526081682269666521227776276595010457248926616019255922802816197016130226578294558742205988730714250157104770955324789967061835378654058433260073296567983822181612573561921023916553340862969503458052120237795186578925281820656439480655605929222441068808128813910202638345143490515855796965078922378222088308199697678507957772317562557244741864588706434268015549917756551781187417669811886564409391557279359194227098368456452327461281268578106542289280392681104514644896511606203227808172445131843234376050706982612180597029045407417226628532635689184357195052590858578095433445955845165520927803102674315527355940979225343918403580403852612368012531831644738425039254577527327834449210884744943849449515455340602143446185880701692966163825807868886918451830283372010067915025682872102658282329282119592779845017563990008051896263938042615794474470321612766312646179088961656417612771680289889391241883919990136495895911565759040731380140082920887220141595155969073577822825007867707591569267017691306513340519211614943570408030717380403076283161678445110952629460599568025152192707700089637310068295975314690894373526012375878683307695878642436465602080348816710600241966691750890069843576054937037022149063279332558972192866756318532781580447649700468746303013379429338215241886008669967630352455979069066172773544473693477204817669478399141667218637607180995535073334595550132037090592501774493727126354284459522528712998398779533251063808985208683791819446047094608552682004139682206635930555450891179340506953448023727770561151880858677423003734165261959217729030484125921034201604002919919671115909834476673815407870192899501005573025851812377944436910029407996082046461856824980231832107831422102758672205273994648197339606214538497430152254750252949706937710287515689231356538160700501696311405925741432177086726537962191538735785609175946817234093241281809412274600327285140307800068062978521858044491885650196745908822769096767375336488866318407391568556993635144029046188931281271895790335405236505110082470296904071196250601438497337627717222644308096193305857578655825282103779803515753420366604595275749741719921487788252437291967317409042415883542029294564021605546064345765268483973045944225299430091802277794903795256316153524216347844821352341217939627250977389512683617556855051395372262573269523167294071943653334374770921019751304252872905736142315276005580889571770444380469142306116875189716270459941355478413584863081053129289735240513332167835931357331965312412292166376182765427894606134643209843416463426519839023020924727432502185691054443131936731140483390110519501320771079046443368898676503708346801323778300788399968611849555360351836934549276434035992013761684790774764681860055892734951590289176582775439370826899262240372937825470587258989812583671594752745012121304879931378872089514643687821242532404127288423877295648954681186538070036494469855736632179201638661367474922756696271299590999308195099412134710686665069713206889942735358316944214920484703209308988690336960596852951441598340018329804882565185551945721157263510012320911024693173541192545134024888443401489097864612320618344635357379636567773110281654355852825751434444128692048329098625663702944652883480323670129628912059398548758625501912153565722127439967786963272209099509178156140872051094641881806965870189050635848208835512027064243171174996684812428796128705622418199121261944382993964359480417174021420179072655960452522027222902740529631615463647243586099464577724375616894878530113207121026285528780701412895739969779430340616664769600958152179660162753996460188224656800664458027169539313981636057830972560247316271227456348806375361877811709679109965563815760167307783575658837213592379799464073799632238146355080981795720763853127286065582559458041330893731318821420088319230075780020993115492895129025656643259789258630333069211840296911228001642093417055853582814893887914677991253639281506917388072655427375507541433982646769885525120947950085985907008314097901258509815552720158736278319930239406003939789803487695665657117974513905989265369450513495604333829825314524111369253921400654303188119838484470287014173990338585106181023772453904147094936416972217544497776750202994547875014737968470723228234754995531291197723972045489756593583201191797943035127815232481561463403084686870452405523574146564532674897467015290168187002685227949878865904411566198355958452356524136659135895214701686409775707709999390547894886452156477373222906332673145663050545987873736658201971862853684375715104518355672235892278352582721857249799156418854441880178212681883176835554255407465436339392114717078435696932397541981600838628286584502999667887423631318194012988685018319726107039950014727929969496204325041416840073534011853536823050463347847174312402900537036293812436385954241488291800240469487604759890775388776703792543061808900596986550429374950547934415012669659936560990104018641914987316131294507459999249654052809928097153925504612643308630517420281199841428072436500586514694462328148427288235433089818372532175044830416434664019396221730437249378954401811335948703498389191764229524759231167899263020612244983785463770299975347349069715747448699359899619471530714461513178670599854142567291964788383592113079798267071729179756935743784623553920863713641234175748496172274777129865435256124682891642127432302046462357987597147586203307204483208558221167190393864255315606008397866526809654794102841020029713448573433847441066903196857542085155517075459533792694130004443072827529889541324043164851060364448564231090507116595781685216363567923040237351266974917507412264772654481865848720624633807291827437389484848007357057101553614668077086695079130568068712395124928434605165545236562216665021585537316808349537065478558850433756086211987243639736991471335470347289441502282337991631417660499293636253836151028243490049314625319132677219912829706632685091315009209795925930848053413948040346200193929842217302485077469622653349462159770112945861802713750510336594607482468866466391898905088043228285239401425094628665506585661847753972103972576861252952244197674879564869389007545986736336116601727937591622472084146706017542043709383625970097960674099066153821139724864005163043826832033395913941537861483017808435613778087898135284146404381784863350055557607253849285485523472697533874987131842470577930018457558894359111357714416847885589655538572484818931069642037794224917407097479114812604696318605021473934181172206589807843470502505070957111399346126062983663820585142020269607502608355537366538917112961714059818114207266594787738826560763390138718018116850896532583167242191504701901317855197844980485214866341574166561755272960184115734945965695533041905506226019678368356808849694862597678907459897131828608062507524751449104822129652548876258390635129889205017961863969716099648149321087761812956197426939528930786336381660510262280109250676873382103173858926535047697787135405774824412163244152244299373364694435124424153171802034504486975795797162828637508688754009933924734075399801255808484322242121186140939026413946789202418570091091601823932811934975482660624665028938413259728382708189601532272055719283676501419576150716142449309240038687460443573736098462127620694312406782137731409473227743503414555336959938480786584488265270045728733158741370467266662282875919135709729241286393202648573851927819186368749862881729882150246280177568587971080548419615157014086534357039498728250281901321012130183514203226006174787527947759636959466118076101386795546584721696624988164666307288381481899522204054525550109547642459399597531967464085438148619714755578615556216003970083171196805751740535257064323032975516683596741754104401801379899726316088870024427087093138275562644164715156856379063134855173462789733003035248738049665909867208239966795501117556088732998073631404015446316435435419381529251295188732296104951105271405038070835148704907393739458699413239749765620299590877520979352623191777594338514639536594560820589878537309989193758650155491343847812209376388858101762497599713145627658102931865326058836153466773198857328162571803100366079849495922176203131605877067071111072185551668269292891296949331918671438608869025357301138823946512545149012886508769775881073599975908481936173082055834648072891942215625677968108455041535404208859456792077573291752471743314760414771970956688639541029478716301668083438912175670395865645408458190585246221993273602763197479029027281454597456453518874920587619798533076258173471621015141028759927127806869977913093898208185013898367448382401511311717868564548312652033937677391063202911968511808551473019688480462421669970939870376432656069950280610149563822552628559975050334664444982118126928686181357393485684725006449184781560087411550349389186810956075749204425270929583195298400507851437200180350693164493571834240354097725657548789811424757927687091442921662568470293530900580307020068712803322065131454786134282709735127290077834906373061512051443410819604192067475236006577251362707758080765515445766195285688744096985284030351082946842637132022497305944832841752057160655613310936383537347969448886011916015667800971793903677305986814981771822415844946709419119673495683333947774373168128599155675119374783810685109353425989283612267462646224184057889252923897537499262067932069674875857700778207241322759479471870014490132170900918922432697869770430624277270942049061675645976908406869137707193780878570048269772846309144855381437198325362101851614677164174795567892805013297999316246985050160674618417193225560984860118848185953364819299770234081768138752311246157171730760823813983124286408358969149857566560324311460258692730662513203932979566533696464385008671501593954049901386846684698204431399358454746795527895202754810717238635854288589438094058645434047361802746424552772455800683748949676190420237676103397885547859132351123079780413421744863858424815217308984014355361982511098110798800785044082429853230183018151583035934110885722202885338577424934363982820567512542941004235118639447784276900892551214952589538299264556642216618152384421280791438577394790409021392812963889138947458627050746013214520370600762080771863518326042693112515129386313093583033906528768223875836713620904143377979835306787013638867875378281223921419521460563799020979502228479864712198061857612977887450248057413135435228559970518918278426372108855333599916149520247522058205633894722436856508653801276422569518929412769998473473085482127727706949828252615621509395618385664859258807249920691756610757017310681507597403782146926613959610312464095087198369399444487372115097976059622557344768910091050328999543395620324705704294913904400520478575817771263158712512453237073557739249950638236026345747339890605682656661977260404752952984898990189373555151372759546696546259840244524286748575224137287589383039793318798218992385724432640094330308088370362918893239921063828440902588264274769826125959924216787166187539359420987478319821731858911014485143476414258084587209548497738928329883391413019963155438564784834498954826458829854456504589020448414367075218621392451997014956461698421867015913971665687757364629791074631494548049228442860818970497075153688956366369017665798913739714531241202728580996626473117335534009145958494215840237734272928653416849229919266632910112060157415544245185654959450679675395605692744576018662111912366794997831136213369395823440518906357410538973835926555218584404213315852109735846330439538707539709992313091120955704634275344296443015531659443229440824007589777225867224891318509925686565803285129628923506024487364198674989598158128063952278262572097563924131530142422829794131111691735754059807612656590551014170515099720505033773469650298466416119120429551133634841079497500667799296393174451640897993789026605432454948300503363316273207269045101869826481068115662476749392326453362972517122359353764941114549217115088754998691760798498765587620757012994741595483287368741596643811587756273417394051024385460787405883149114203889820379804451779444036166643146873800629205723916924928441982313965124812424076416633428087869265318507169859318254790136058369731446003003319974187542510509570516334068973236152870054765883955370528971613212732180249876336609879782581493944932291939093245349487157113999379975552640404010145854967975590554873164674731742302113532832600066645818058228313413829653951636749589251007587433442832781056303256068641136684296060462630207787167577709210256946841607079377244006388605170960584371975468892472051396982287291045798177280963080171532608365906944712495023949730138348521728596577228550393319295222341436983194182322719080896329435736916661995317394569539094119038172915540987353501174762402497286686883907179969759831450853199363886703300304170419962320027009270707462869783378134111606670995672557380895625737721341207401659261464262417084527124688775675511199566208854162674574246496424764309738582094674970905695397913027534417200014429057121258892343598562493503308581590312436485752685360627792463963803014730308665740019718378619203603523821119347346590945201692618503961449082276926583719079111396345679001323938695120944194365325863956364574721263720767215017756785749400190518277284638156006410690079948311558612229832528145029764480076266771953838637305449003195849507948150042082852472416416792367169121878281159468378260240108762628255030904550396780413906370708625931485245026092191444722716616155793881355981673498443899262650352394094436782406154155598014148818468850617925354082742743012591977488591932293469703084099678087450678912872386060076429088139325276380126500719829188904816549467202240352543350839479005490572684789151117325208123667953050874865696487804289214219080172615806440683104495618968149318428456335742919141640473900582985018159302071553448031020066420971524869762545140788170060659051930638479700209253999936503620521181292351083894028589857115534693452375463196058154870701502018821671367244376878012685707045320643585934719197702303958415808471177871778086164137247289374629990471058598061950166053828434420134608347617451421272088844553029200170808276562130187721087808763246635594093511149162717126952683048462849537525741866377123910657659477982547783896077909725043432034411702339101754083786261059147768991486272144519232327749136068005653666636393716168271081604884973582311893051355424985119094848891676581433616619835302976114977202015493472526752761007849301470756994814422129001727783158055809760147778738454021932163336138007730464932342144573143271448465442554061265309975419814391550122998585162601679553284699984840987852848091793962904738634827803333401024998834883515285593631106714676398538197587858535986625195518132184311893869973078613777342392624624281689617781404960738201336673634155685252050891876413667934951534428683801721369373362401523130595786872533704689282072043105681979434423233275855067002763956099886992655912702328521353517873561603694501215781048062666057201696637785500696885102553474018988592831788829967313659892178851707437113611894913393225967474325430903017623345388984630766301575042886672439249082428025597443069268606618165245171177979064447954002432771915132449081576991466218531992405335557776358202524517415612267571382086514195264374097713129823260248728419195741376633768504246682529052217952616342049237109789468255423639328647644714915266367301360206717394150377504528946515058993420172609831394897313912241420197485510449507804322131199589924287938906770543290505697243746382486630154968909307142532829141525073137241694621222001017051208884601777992138252266804963114105163080314723060376248814525416844448287774089261732796342156535955875715400426635102225489877057855790849344479208990549137864467471725332570549502182209725556193062408244733038070219075711118842010273862338623810954458142401569026611267130497249064279723658295404746731223335365108177641447501383582636340654314981011777186844424335295276220683278957724843703956347095080566526273753660830992224231876129879743429569748992701454757811558082357350183036844001431007756091981699356088770881393554228478773456688460494003433152198190470074263794179189280232290096797660945555896520901200366308667707863992984992049174730653250331527857281495726505473489834962973889940079538302816820372303873540511537552694788502330477319782090197209632797353628666798375921520924307173326725973822132873211414321891361975002150913428691177487371831195885518102224011533833285478713249372871270532852569017592786972974987703065970460110720640233621841363163312266424557011263519423085962639674181010696312461949712313904835941531343717261041850785604906169800631668098127454865238036658206918443197849094393270776784762892114594721564089096465454476560744339512681677626240336953854304510922926768099511320995864653775997276309368404416864439405227068881123027796139839052070083497559792217722793094829428929365479115783330923324138113864792750175388607349695396464425962017529040232806366858955364269305962005550046580460221058231029227480384410258002537125247906109795227853271664552389092862107950719503320162765349305193566844946361981577436466790663737531814270325695773390564529939036032261109839996216677948024766531760469175605143402810473199580776421369298057758798902918896914431626908548043408730177136068648874507809884068434398450729062676338695272790502691121823724911644424975232442024187233327659762811802612639046075744556498869927505005090408490285337573355060085108301559519436377661495630417176248495597443854025922641390623754175504917535166716705385978855116590286314955037007090493702196426721093240032925969891427111385000147486784706853361439344824521752412239267583998610339367819608522194382044207354451730607879348879325004447706680280811838855876669423832233273501598756495531251177676732487300075876822590345823315519220126706925661241581465067805646860116232150379477264801367667985322437257308297480189569160872947707213576971120514192244219498096230536324560250618573831726953477030163353365633501907249438145740146677223885244656758004698501767854352645605315710201685962541426316989649207264672894155499624785097108412465475213701138400165073592887929795772669034871890512407726300835433670036076829971105832001117585627953528873637729086235234258142001433898339695416434009990853925929988010889631196427585298346090837837446884462726257495279983372468393461156460150632592966410095107618919710208332925690967609423627228520933311288664885318798145842289250800350479798509063089826652714443171337255012003624440808646291125791449962480903672091016007350036240146487431739600988425125551142334000622838481825679126243099958595240447760240436029857212280738404347124727257601656237345499016298615295327052442527184361911097474729956450928359022153195515675680014420793863409151700946965428328005520407014451573125758304787431325595213378991237873465442446824976371097606980112748665851414674446633000283654492090188000423323708907386198048757535290512577140862335804595910788175661530184157912133407044355809079421050598703835503462204010276215908366229672307513338194237784862620167737651785798460700307989642070707567603415639800889283760093102184401313138186975000671655311951298739221482181335040897812223261638616896024720301854851368108044259727134340033898257874937322452754996536031853449366007433128023286281563766246054473650701997054939083300675835337274205086884406081393195523780213095634539296826574720891302378717813283686842691159171899697319122677194042764415087490794170171362229152491259464167372599294819540561286910055521614491508506212986969119089382817292269539978897191546113027673782794872628216415478305272523770625262763624449452256894660623074427821604098517143469328052442632218818370038550117034800327403684332885720499333523974741891760251529234720488967246871877839317373902672008683599011924172277124792445049948391057881657530533751668862657781609366116502655621071169823229077403424378347733074440292638808834634704139394863750705019528896935857375992214824130278844836518252888599975575964156519401993432467901609565198297958201583099481217707877592173683704759586860005242086248515016204856603729529483972704141731901664150726450893148203523918568702684369310890167327688796900851940125305162079947709327806418649523994266634666837978582574502442183837529483704605231274715614495465074258079395771325261084128438953675355970839630299687801152064478720121932514958014871173179333682238983061745706118236604402016124928581012936715223517564685438203937823423311657258574388996568340876319990733359072744050132705950893247975801042926178069447098574747097158160855726190915041072018067264685107992907531045805465720963148770526907428891938937971436418829313688799799886815147685902939889658809342893064287181913508659406012573263464080310414177412041124392192734405550361751089726207392275289589059715411540689426947601465440135971806605303070149264247231349011766961144302821529230391766977957619922833673718761776493990513992547416718502395895111362679529246945447172798417929066298124327985235188661253891533955390614093662540206885494999883260477566921347422286693063471834201846970911031970810739023581627443684402616947259666089053831612748778530325568098443081430179408816252051234376104303526978231509561665055557917946234597756784239076267231504292702972060700078980980808464723010598552107950873367329572985626157028738927847197503609253561197655104871268308013164184704089366873959491759686099029594315775017343708354564628879991492909317762187762630004032848501215699093455804896078978690837995594329390945021280831890502273958616125978819578824885356832359888015556500725277892927722964667621322197452528361741074294775570768082955115056811154963099703295650731135452472941675937350054448032877159123561867164886480154432052926821327118098365810751452754669444879501683691545688679724892901892178369085537015873441439779421089875678225168791133899103602021502982785519155461537459688774016103582604149373905155109341918175465237371525235680301252477532284261889827993461337801530264674888325283709146938254808889533732100915892261194070582212416269939146020364847915233507599971563544532192866000729467149791726996373349249570584175753189239906768258054231481437198979667326474028024826831332536081181435453136336557195477194121667708714316027416985845122764423137155125564187246056999382741288498237219482028907309062521563290505055005960604424095590889247749086520219237254479741037747525086392584250871644662270185820303993604026323349034962959860246132096300937096085831277327645355546561891169585012664256524503291939775714859470227975223940214649355728860873986618311081955826934256861486010378930358841468882588894949095065839014740536996163154819761115920157646320617740542832305189275205193099966165291672597623034405013416628237321857241349176682365510242812735614443894848646934119925479262535995155622435627845676113967640208990191901545925354913511017241412320464705797404693513756351153779072067906482980289627720281148444210357011866361215542737050365183011002364059902094295346331060269363656469739196512420857929313595857921298167902508529479160454599097745263268527458297462650537833377025920713139277411924121085873671384036015993398027368316268707504025104653352594720894906514891058635979719759518660781419378766724675277858631788084608041735557726608198247893581343593021606674828890462397830855301096026640626989415776716470609532834119908901860225611792065465577028947428482269074348824659782000433246623741386213075424186999797671218152043869472756236782409611126044255856294646305947545317089739132276662433752907347918951756426019572426975005580029724566396459357729545948831126849772616397634944115943560816814567652103388664634506964821337064544100705519200083627803207663834660927204536259552223139120199429245651204702745525319387827361633949749252358335711855468682517705244956158697742913085874658263774386179714237087120972967824496482886285878804059229992672765224666111027172383031463686073885529377150475952455298460540651138044349703545276570846117545443218091134844201567770067637242022094187135341523141300284860557562994152825692105257301194638874185324011560514140920945582566261120003973406758090030277123101682232838787588425734854302959778517463779174075079891005526396905410213612641298221058637483489976567865076633568255740660040159338518879655043449633125077867546001727799782102347884362823275795128081162884445475558347253908557337279942131247955655085767754863556968011943824791205250049763433713090303965432172675177589465715043873742417559691470357933629373891706460861009548845997396179680546323148867551622787445367069208935294455024464270846810853241640692358780703101683443300134786683223919805683956108760625595657622672030560122480464335688866783312876135242592398594384164765288354159052673334035124789431691549627533927291854944734156372895301224725383672927841374637142925223371099363707794190275241149433634119725564533103752223803798835469632394943860830408245233359435984838920916341748646018195435771695692605591075037033154821947133983812068251871900727540558969090253866217545824774734200870632860172771193447081651848474381434912633017012044538561404293608878864339568805586331372729756189081036325405470034530498773696781200137559722198879780577859491036861121741813199581402302839909614983287571641612927761813708205103620362901459445285195088270138998236938671525836990712209810312476722764702448375698018539628163306945716080430979457681535245379919944040279375749926120744821788250353760628220232557543594336593725082048792089760561565714697279568416993420105543590302632618209088028715838915496159897102823618728752754506910944661365532815682969637570745094639857235437119211593223749360260058178712948270584761076186020224132888694532468039973472952043569418053786611563713813158644308816458425095130698267802145774710577383894284537186872143950198661659885796528028892122070316595949027754244440034725701275652803538863289243282315449587763140281773762406401156632192272092722465354931249082828816013451828455995536528817839356577451550924817636915583571409798246192553459594000896954833639037936693842840637383885367928032906340372258107387859170829131685907671996085354967290965037459553894735262830928094506130869834382175632172585137520452158879977810185605144443729390808394420110508615295630277469294882457072752767283152986791860333553181456303151737579718352151694579357501372101492397311975363259698946158955651652850615310723580086743099018949568912776571360402487322392858278907448466491413338584919272778590613206726510325792246055662876925379069020088762574228995648408949776269106568074298673427770584693699427315231699859599373848208470667044334915577239549127941969657467572148462331406802269894141647083449949421167360387729967748965641356164632426290316281903219393651693989591849114475284017262428156739317846343800944953735207522760928256607356256234342906577858934630953622124872187426614716343714938070001705806813628760295093019462871561482600908153133554425191382294908195327641960923705658515968670894056735490714390132818121041292723384511136079156726567742982346797434288373658528793344993920888483091730661043703427671175280359828536196893148185262353148991441640143658276987578382570255942035950921574909495359984640093844862011789009048836106060988803579988624703895059329706035895299976190138883800442989036890714466603114795704626859262924658658283403306238980886261237563354757318977751327014590382021104551699232252853306196334160532642433593912881009748696701581890505365132234423928213455549425971755774637614938096673267653806137967692682148540343123242207354572891877243191623243037686499500911716318437163773465566261011963890404866609202065462394266386678245421703742008363364193834134308471431373042901344586759412831501008037290146020606524701648881277082909472822374237762001765648045163688143565606247652070067411185689906825981744277089446215735653175452271321081693614273050933678793721465563322455048634250286681226008287286251519028712039954386681910716741787684625040611082579704511409480903060547333758788016109086293030109740642132874745317498831143798605843853956426829925923612897719452781054150264044535937553176753062427991151722692169473699486772859264407345875447707715335609059114794135762055883770031210173581326135742752852946135148548820213268705275756987355225627451593182849899576360284747397789754857828808961308636916054513914241763745876511323768688133256422931194535177174092385093617253074937338928869265664753024344891987912848319476915419065910812055958500102245396403332292797878739584181583202027627143211551158393164511329213050732113947165925723189506427284708494514983176941303314241422968955705763572209104504647504478817412237532265400243182825741449454744142392534447879412526658129172120852184004027684664915332328620078325348343702194984572434681914192288973900684060292849795586858546120105518020351330144547671068344663400687126642050222452496695495058218822717949200504034782374344597078962323185992603133753333633484571869799475364525105667551836939655167797759800349647701174853989401154671929784369615975535589142712828793201945943508481460063175682919899881332292598672610197673642053884599108930320554517505225714053739259275948509990453759353011036616323745510923088984963260423111835713222540875257599288247146459272863621399844305863673032139026898639938316738410362042395705054035455228746637966676852014156811760860714202859959192865767313244499026334080420588606743967601238137589063744216620544584077168298810069545304929244105089931546630995752639557506316495268798256007547201753514624530774303136790245715155507487923329311307205407275350182392353202707996894960916959007772827680803482849950728799102488084673878009396848228143431794099846861813192801307277878365668328413307996218854324853299172756429505844535296196835001169260073802130200165784202429765828392053043265431601700777585455924244429065891454095315589168568155495203696377809962708359597774848638654152024941691224454566177072063011551020293998051848250118386633093754117838784969499966242080303043483056655891922323919970992723397529400570091534579831301949680385648663186263873171554112940337864117873595840201804909551514567264126920024337153776086138726165235594700881571127807678299425687874635521194483647656479159148325207345563574283659086983061979973796013206483328422514951008217570309807802838590336514264921963448455201682109255076211020276318641587576154538314204320789090056777642352180220912751176378839099851317062448602992233903924212724925139436135143785913818187141696657596600257092846129417222189929377530279950350207517892707648509063096331026279209445660140678318440041429602085962102642356272977979804391622246607557090333110070374064885850562897395169651089129933830370060751880780778387542971749841669901094089526637932553436754602859364539132681184333154986606187437362213781812651445238795971645483553096906708143000532789699142810047199394208989484339318376505387469877119376567542308094571614751127612740242307201877543850347030299810272976041767229028371991193476425819805859816305102701372986155780774773336499368112734416215714710010028001991725040998232188162004661747531994850286529205844997393075046722529125425623388207416660774083275306748342654901379668279869787590476980642864516882129220552653796157364305361866054637916011965393419477136361327319869864760056760400859592925664265639853752337964487817307524181537896119871088594237897997954009260587523486048148364241869911928264946119283051666702608677510097623427910454230831864016266876194001972123246832624121266224233645725836665090866735070465383950550348998650316476481631272380178598048838569393829159103842479080689648643344578426338776474746105923960055866744621882595299629166008218625618629628995806080906651106149271676219569238919771954230175303774355837121242403645186302847906045580704349716564218785904106513002159798881997141636131516781576847681084933799758929812133732387974276389984676057636347600047053082121246029694565042058326855417486693810604622107800517768708794674072887832901509743278356629353697179758625372451525844461897435431652375107206699891975884799767684645062687841370696408534425873091080712519816129037858780560241613529322112351070736602863888097845745544910682027254352314792190260081261918058633121364642531308187602819087616335829096062309493577715996295804494598357454361546892178717874318474524068999922777141458592426339469658720119589824471246468910188614431267464277371140543565923854349470718746640049998490771418865923250390094617513713132324325388304247635932080409582661459391471157708049272230758963441200322861209639166748141374645058203777717280057457459517520625716277824156915259823443603347046687613195435957143171589947705342570071810971836743634730545650246538133067377935277567487454888680930927672217963062337914809426157672531791036834193835746891415589445846281423076863025092876868246698429526941073400630658167775110913134216304711209805420696106997783540286713753174277989576634075454288643320747010118187648201022232125476313939338858334690282793942212801268183417145950593746810943295949234612518481295976464398986605122910521301434285971567486072962345702023605624935055328828936670703572669988532807972593493132837190643757407537522778066035193545755568790969698914241105026235161865148059546890892098285215862949444605637711883714274789918515630408987727087724070314642014846225855712859120780772969957324843089949728159775318857197345541608271342383494896139125731052823328462124864662416129542011824880696261558781270812082732148512162838979589848049183375012044181576257058909346198630027664868695205907534038499373886104223897339716604886194123549020430856335504119688449096655003989653773212681129159096237069870051435301964951979323065173015617543384330430184935985476980681676587384341764626134742447091667319370704147690241826960666198716573373734417199558211297295512864176021108647351350921850342071586430613722428852222664903123506331176592422050934502954522371009982541368409763024155913864229126067245725796485281669050940630492338580491835907525664218303874070940866872539554929159263532662369772105898995389158215819507632673158288704593021805714517374728738767528532935322428681418442840140201026616137522147618774085164986540536817528381585544756907060125604926680584200066772660907841538175548228892645530775943846075240208988782921341347216500780846128193652741691541534237872674799245374240777755434995477326887516248105124824847574953737072222935544213099516369869795673222535961539306348733255644004798104595015773122626759131545119551602311700727174547424993428690940516293396675302061887597561569561631310932691418864582312498016853383526810700973405610922446883887348253478989568138433531443863628461057299877688992667771238554766408337939835011961885718972686273138862326722708463661753963568307494267622240316236562063125332734742155701429583473074830058731431974085506809193692014081630851439090351915964571927469045665106773876565045453868165794421049346103873500146176503382643015997297405531929055279770083720071640525209721680692465540380677003825875364860866813313407818034224935978595525705650725315259654390614801284232068588167617784903747366183064639842524181726621028867496381798938073804557837950134657543265125110800878569568282212373316053682146823284276352109111075409226334685113559356677993922837037341760110943901981539429060249626263935499423191051698021668464257055867036207303506354050983502840781528580951506553377477975996225367868114810132406599001846660672455697384648355655497254037754957894848148849659069259967864016368848375786872521905676383308253601030161357229595181696381560787941756601289453563172061291913870397404072423095364055633541889846933203229857890262514313864623721972995945200520159866885133511571765780706031356016637213689156021449812214420116911203966663038393779669972340215551259181314747276997525317466235355160351012761753707799659898608666812055220781183232044155190277579530390441610696326053997278153400470597690312225869860280945829517802959852900957030575425518940539656136224111729090193995221403617083487819788278297659466364282901006456675339159548144612784264655181406637371916261407622812139939978933565108342383955698284679043565072072561883787500941445923712165740591350247973821594752996633842633365694460392781156073381325627092734668790684416930755987728578621521407045629890200172323746587073910447322620021518082753196565303940447277416549590109778610953045204551516394565023690188604921491496101717584936605317875966317520409112929169861972159154427965253043774491705830996840466723019867755853820033109672375263203177643811963433986361852556485388468308332869946464896521848516062682122401555596208331560514194726846289336997336687951644109114383910793939282954643358777622990047977532738887980776750076148785131335186028951504437326660662362994982542175033610448110284119328896748835131657596235740926112460625007125846100478755908539569594303050702409399684992345894558754105295721534313492299739484760060099043363352861116397515534113507126632374718387202595471634301834608480467654385225864499326851203693416543018669617828785541991636131267432418731651817093176170938571271183753466673778546298868688539751991798340618674071693358040698996773383251637031742488159451484123329984371609173467766936618295616089480791631673686633529214355799537765092442132364802589638019442283295561722953379966760389975284003723613918708272237833509999442908145019832734051586873653581282686947409803693714476992476712900914250873716110615826585604341081626790282391894473487409607154552828011101281233534133427379669568014348940374401065604708346263489738078399132321886432842708662536560781209552651172135542663931423165281584546311680505044851098832980852395295261750107436062876980785922462883479653299303863320074507711345177833879843164601454490247387448966031141212800076259366523354827513053557959460978260677503838798020510789514830768893446871049581045918993316771319392419160630852283410710315234032285929476640693941621714186730091333326089723835005862706402199902721157864153114491945657827577806325843284594740095544673257404777348857184364600558163391286647992230922997393369005695604460054597291055650264540468366876028753750102091194302111317156924713518861043593593725626844987116420411144752658525642792297082108550768522637834435675076310783060398699571797257259429944428740981468206457226231835203209724208476410324225797142459478092887122551627101820380029312440761188424399858023711050443609999008893482422374868754112705083834433674599659091299910019025523427463842680192019582791954456122491373659103574012504358110776890506202645567642744288940980650896713493800955892880124423684850765970030737033042499773341972265784444247758914267268056619062965319471642806777306582542902197198230521254723463927204189042748315024384925001208031089155037190054848550286383088393908461049439296576978541542084469521740731196657262292376180498875051457007243088678076303433117472577200232213911988505118106764827112212815346401559758818379333305978123395965644556140369584059473537865487090432166877026423802211560255888688758812869825467176795444066999431842507987690943752295383783360582072113286334829467588595037902228270222492272183363116105633718305213085275752728848798580476506192767193123310133336074443208577556906980517774160047320879587586907664508381083085232367827994715406116026095052737265887389054855209060478449044019699420426662261195965163879142811215433180191036769320549724799041514857097813094557222331291401758657531347127985402400706562181209013468506217561446492433496483224119417421384214545739446321991805201669688932017264651372227972689291397870034349904507880400852310830514829806958493250049330390296162631190681320499078964993760778969406450459532300626467739607677361007138087094478951552237720430585936082183868262151929053306096192851704366530605327862475197980880618382917900603069992987274308506040188906866374663955410861329144910927516630984573309864066140275058619114976611113760065119062929536661100288961153828331933106971030920603052505091571498430036507668010172306958748425861497422894608870417596132546144545178836924141173020514251903673292144660392817721704638906272067492525196364459759791214341265199209197437541273757331678083368265793897344969056732663963974984049854462853929895368809099456604267881779582346141333971082318465984698704470740858062051875539421646726233771246660995841741905945993756786165006975448920097053767141754800908461447401927053839319899447357747919929208136052823881715129141770251452985499816376538267688281575245986297065909672850292906663590753014213348470371095826248123663679694793212732458659788390214727205358489615066210009904641342370730060040825251305722750268515523904275391168841738740885633755463444479276144862459786415784242002605359243653193301456212361461348638796303315244951156966216902974968085568000643123384280198180462518671528694247030305122068684476259072985149567318232967006980375663439531565422948436917311556135535066751570525447004170464817107151056935912400414960983335386116281646431877604545727133129751972892759862063915450904294767618370987798292846801259393098931218980952213340205103463305085799538933380528392809075336133168758990377246222116165845424113611641348275416830855723395164217121817244446366033370284218126271558028701521713558660499585700031521930569700027921139671997378088601048704607143607026228769133313326517144878521362717663359907540678523270751408667799690525016032623177978848789381973475644729794330901652241149136760692842958751875219377377876474901677440211924117055745824704061016876152388647080602814642174842346050658491869050695870437250202084974361648495292007170116117201398078740846081164362486502154712244227149469043898037423992734460267821495016962272293028714629221342328183934728578357141810953307592229017312859542993490375612545071800575110346458195776268813403194594348347829977872736627718868169092783686635608709000378527028888440180011892796011852973294317642859222618838132923293655129067835363900870511571032390834624839240893189632653628377728789584188588096508702412827250170655773768915928514422211340770208576357981249084466788491457294774304684101087376553087840732997664545314099501931318965461944592612575544663725920447546220466436604584730946077372292807115250535006505429981751501939614822085004509795248923733567074157734931187142760688205162958761926844368597501010770182642708064566618248035259502208351241988397855677060314792369334397816735037874511348887391154389267540389914735179770862331901520735085897270355701279022194647878821992919651757673142051710324224388586245494104416699136019885412688572682059650367996742018684955288608756206448155793514033478312804667428070435315262646872192464451272471441224493381694046080327500896928860400595042179511232413153495679777098710553026430506710043639718205991315310841491289561797333611737801409479912364941294598050944254451697269393078215691393411573569639669747456288669044231313612647879860967415625548254896584693709541598530748608296808342040665961552765560785432271719109346335926293353945925115951414911597506549163568019034377416309159088772133330062474823030637302102044371791315337854904420728515749547781428523522173760455058779520936635400024935818075511936153628798731063296435011982025083399483782892966402385097496971694734583063983540409683179110710309803838526760269114623781412747913869750685930288930511756522827020136562415401774995219329571366348695875724442472921020437676121961111537444947506867283950705701914535815932679949180062457826553678090851809596638918117191270073151199528723708980600818571790501906611555948251509972144796437001847000880306386251949450955141009581126772890935356360665376588878153874608831322307327675301012712506829888146918994888550854601954837998735360981171067736235218114360499248193663878228470561684187105424299087560980127738498216281031074160968661020945248200266033890094195770920353180856223183122099732730743808603048124840021200210009046542166794931103192919739059161925352695132200490581740114947958082307423502814090502409124847137316743362605239418505791279769190799750401887166973634993140572596985507554355003423763094060752057435001603398510429126764662885741058751560678682292899005085112345114019671547650184740747896981746135894889296107730495125718944806711335352097848395209021461763881192100834748479137349287170386868933519119083354070247498924784179516757372761742586997775769511560287337807627868884497611207049440231310454343144492793306137768561544796948218828930046222357620959151476763024313446480575085362508136014063842411009718946976456828790997556706127974618407462054274581445062317637035165739571934699672332719331674382806359756968049305137523344114737558326611798117158223431032033180612500585080041107748157605531654838095584180067383530228489925809211131702371593248642202049018578503384744515961916498668739612591198756242126491072680861478936353717192909871933560065945871471716176025042599026774297806547413037733234815891747383928062175614279115154074870263746093998773578736456433400483358786219826545544715073047514121173354869117578572320983238448254327250205007045680719450059857658376448100007954376788625180820932918191225279749314786667908376120542248274676121884080547388448202519510657658227732741963125260659854463754939625652854868081667351949504723261445961710831018034739387023978881481287118250170749478512315100352798888804062694219954423846518788224475203216652002073740263429660751442775102956055747990205059581843721792264296299101165199517016638968992235626177845234961472003642713987955486647972097553548587050837676075929974056571493174356128455230034526519908397954406079765946954503705602839881151971021049975266305448706788742738587845759732761088375547494876347552060804816374634188178246217340278282642602076863594410263538723175777889970751940534896451601133428847636392582840574489323419577839974231476062021352267934235406067169100771372876304281918651563096515780351600106828354227524492082435820089904397213840207717433532163731063454243218733591700930464429043667324787394662068759252775644837573117057076507828780055481080956518936488485419745874233612772877589378574394894886042252882924834151900965822338699025046899315936640228022378093626594704058786018283192527442230011652632933767710801982039898613196017663767801960148953010692249110177148772109755608885702386389042007630784860348930827838019835313087165982664895341690725132845286473068364655010879598032689191955315632632016417247780526951269147681686599496961167751868547688602761133362600046932710895660615593057430159188353519816841994679266984004430724237038372838566881802735261115642338850842355405923812053390665726143876682686638895534668735280190719699527605814633149455695777798368082881755026040563327301181501241991349116828884241940761423974119536890077875203575703698561174305435792528593715045393451604625378750732351830989878388060555723045496484141154651605870722283838750914411003700503158817011549167591219441130404841918963069928948639935074842181438961536855836866420218204857238679405043218127751204864539944393227990417930174285165517206318853616624830431208260749408248753153329857181995054074203908833673925684906946865876940132378299513976773736914570243730990201983677803140284831020359148079198962609848511158842032688344367908854323612119971905106090354788059134419930077001721311922334826727028517581402790182260256191473835148946925837652744237678935625000995523078653928088223890368044921040714516647007576597480497983161564193547631803487810259778904894636871310661714050806340956391615611289686789510957867854228880504826905872411403529984420749123621894195395318261506381453386650451249323320769122152374082055726479980753539012385076916178479212272060252181593150138297198879078893483097301498160317415801449125760779457408259969748511115228466186316490584220238996548153276093842977293024372238895947370275826940153409476077783635299412399094149591902492143284546685621395618494700371629972605329010016486070384650050602072971643460618180873507025924247258152448387524377248907560002769542810040875488278669959343257915192202453225731942711972603491837459800232825868409142424270837441479640929467757850242259023484204786060051063153634443700609151840159592707800757178009425216491128684079445549946824726250525863951298924673958619984545463686382159710603571700351016489071696484724840843353554821266099596149936477586802091263718113005270878964143465340604640165281319713476391130360863613331974508377907318968149547512558468370103918355259667323570329659961888401755478777825230239813366421387085957626325779393341377207616916380774989650173536413871055539970162674693203810264110901937343499627805978795441723950306779822865601914957970992103963976054706075516624015443893747966569017294291413444475615196722362590564500315109799524391655601732639354178866331942854840280040962861778465547537444284213190422358547669220091565073565942919099752063499014843734308589079369928529108148700727666455318426001183331152050411738501302834232288790298494987409941208060288875787938398943055191576980460610474605944092133021297884217743711128533322387240774908236711013526603976629346551741817557281320874666753239083815757888236922196077856918506444782579209325624147787338332220744809606014572073636270174561991050541938338126726361619768291275636308751988769458955547253020415742069238419946931361236358931819836123385579680507016704939438540508143210916218659521527014261424057174571825219615946995223782953600893423096974709701091001853707810942666771378367023600027442046944820362903420011654129976349635467272821012174442406330393839733699936110002738129987162550087370408261124003078950840853785499678133747080248214954277520237095704907827737551471871450824436284082897347643140931033459436944579422832292437198462601154547962868963572863762097627870859895052775747905010509448029312540224711694842190752833125413143153025660050368073591868468277389311632105906070114929818251933132038738234618013322629748811763497255818796485733963680025426858914820993030350691915870673796630142964969703587579102402021410089061051803413582205430365933980127519616417967225614584083417374164887174565382831957841810780399901318158293720978419403352051776018548462520199814330530703526981566645890694469951614095914131986283322451687413656330841488837387207046772452647273391958544764338052509938924172700357903955593777866454819128525826748355618191636909675638264271579481378606052975607999649477496944299095179283752610688560854708569294258456603850135421310192350495605471156917229540219568819292212364319145319318416441734999617195355526384101766841898267160490521561923084599945894292510998446886531152822364221238231689153356371940636637733590508742037664327327254871420157789918763551209639911904018819190554694862134307173926684073120115746862371056700732524815603929214908634438844709486024398070964295372455655343822015169529766803362788787638827658802662425046376209534303725318055932569699270843663186274713973924813289393866709207149475878417379574252515294636172753059470826401679966975814744116145421092569119214807339499400545937873895454733600810599717122074962173529386210713707775238031877028344063255239650868889634897147967754806040692913718642122034089921209381816364731095248774452290730583194584372305151129516563545034062146549549545265187486224811018673339704421681412051223705580789623615054531322737151861332422592136790382604030716165437918511984283111388208706302871555963016982346631345854250014189007493144800438771252685554376869806700320184644399134291395378243643836706594546169063090789234011835831611820563586119443971155689930427406446293504336538861484207913735582199190186976392002370969657238432595338023157958029732102044409690104901043950498424130441953577400702423581615997289866734451849752947167384795101852001958892307414914229964605952248537071146395447942577359797733056292099818698380834286606425357876314630750992210588156945195859977379011149083874395965955167547593335149890007315172125183783004200215886992482634981048189167407427453297627280338322677803738689901639552533693068413806923989337203147454862101241981327914755409607342503770835270532353490417759901199527438375322943526081629932949353207556474264361814646088244824633225646920006095072488068406981186655977170271997804520557757408303102115302627183692569392820808632797321337143193008923965498808140040852810052702394234820010470230501284882073910667199549003036246604388243575161219808314400442264049705569610168009323614523577098044282390921530964279499633533643975767990739534184261064696120677648526334094438991822898882228149986390529795836638912834699184846953365163264205964548098565271749469015832030876255661941019269478914346994483250542063192116597400071706019606979575988643465453963325362188656533221073668176565457137348182275343024287185169220338978723606934828471713369267214289376227951350581163062677935123629900209767289836282714964537789437616711318463687458968842778037227640140014947575983329239690618053729054268965419378441416261329362652443780719680069300116032962946727611218012719016035775108859526594722062750689779385553948052105036313612970798197620327984137979529583893469675636573417758518941909279467727609015345804162018990438538209584586828347627243417103860042301045293150745425558218710487101429347496688388285588925765650166537113751441582759363971931743071601671184502443550225111492653617316790896831339788950937226435939866012613682666448694297421931627706912281682998174261015742810305746401091385362577068255897812017750159956476008001329811381613570323266521991637710287478904440868006104671283492150653215921175239538466105032611736407387673583060278849614100615749349753930243907838257620311421184347820127575495786274917865450529795529697903827635107294759545831965364010030791302012450303291575064630986039969107772402621535498519893675525921846662166288991454051217204706211196185771426295124840415361819101801204040194311439762941226964644317835227452697250305385790145458283108923323278204651196836142646865023928856853604054343242851297296650658012892089636981486588481122086526087562025365852210244085844457635532105179055386805960118245558730689844696851193712747073292419704026586828447768055644269380072211862547103038507418211963551545659483098849399977314746720911728132525187577710515640303638244628468603030375744805721881382221956502584149407776020791042634329809292531062667307451641299750516127130655053317821420029781855794452468431567045720691395913533992195406689047280146703374525475988885172268733102619133279803610811915916910191847056312717398147835384148871509349850329160417627818031312550767485584469868883623303617708128903603988148945995582003397607471869318222014360353034908353124584928213178537321812159855672199186714274893881471794769958288502777867058609193790785446477911566351906211697585365235558095819185032366798846323328473083807382854951480496148376193845730589639859528861838740319186628022230632962467379961734528386138883481118582958381669823398840554987643672257452212067479982167203986555908570088486081691003686784957687709343836423624713472192240603641690849367607245967210945061259772588525910527069398391991219958853605188889723640961723542205673977235203485477654026573266151254041526662994875549163444999578872014172093326129091227382701465973403340739357897183542367948972416520428238524953463871824758093537645507366714839037998046438442026369699567303562254825736717966459024698180427737343293539391977787154853546658858054535993847128929288091096585797706541889968825517747069730249377893640343421052342206928417827876747250935466096689160129776531423657278853740213170673700750603059688658008657918750235107908559442140548932601504695750613148635319348608756992878844021156385634496582997317607914382415096256901523173798477105945720058424665653580301567509350014791803108117643920671135709663514523572607761327531025256472545556680197365562296695962724240641028723231136972119185633606573556362348857714343080946521299455955685388827809120583078416269190546092664516481885242105819875162109760339560224448354023332866043033140402578299516903778640995636689912230271786649343387848729694478323756414396502428934906939763310080397994615642376951143145301543601382572464324243485115315698470216058230677823138269500995913240951694584501102659837436697906085386312720219222788133681911748843950548604206191809490948917896087452897933906513658250845698360093516323802327622668502361591423809351693137780709845338993297680327906865140215887584139053109359823106874306191563821876180897832464663697441149599166436047834047299367227440697546112003304463539081288857914767408431789192870305635262701990462590176957963026204541615303248938124955446494116663617395265334020972943116020595278391508803107581398193880151661988546648965163294793694908263777144702234047791360463844329495102129637941126505544870093849012160107003968485344125587847477814165478497456718212823167962439724899995292244963837460500778775890675256781376024252127805287489690498295816830680110456342876672978466016892585886377701242233525439894070409704835281988550751979455417733779699886187965143521470998137441035556504048809131293575006016182238074366706904812002866998935729638552402271327949465447753554149664169561662593923305895528400942572505777907755065957554641441331975830659182373188196690032498792562140874656300587339193950630090508921207408871290415542581739987181291447894729349176008715713729176675799165791147936602223311960584292452896000619480927393728305823921667452159174209243164510158968332546516214768531432175686517239583927513286357641730685081763846352857009963546293356462598353436967656519593888814357803131952240677011588635880041934421965046561927866607239614407354881306421261350352960475820893482946891154768180948280440027271593430702604501754437439115932227004677047660613267313265768343733971256915266539979270907272859299160142285472443289374028929436868523429453609220214908339111380476703176464343110894526144964621736087464577159692253609647685936831673068266704528234581743077918230756243634512505758294830074143696401884905236994974296807412964848044804871286095440098017653993158614399049464880106659529928920514221217527226829492355860237435116436221740374798170318110063546833715661283777033452931277841443484306871208735199952519821390466101969605319575401246089175347524120574598316228295849039932861609439153132517751808763413186061278578218947795180957037334054957221016111497604004892087799478464908033229521172520688018868948336542732252485043370281596287341390468405851353980091758012366650372080328037948743385718994790126587534352512690827518730311738474976665657321158088443867565915869195617622343034669870273223334654952142353347750733736460574707259484502110612500625836746123288581025204155817537750816270676331949634910300643066339323409482500565004123766760639592715016468582311907987633799702416854479161694020874306172547766999174342048870365554481125342307797929302151562394008443624651639283619340472855168072579315443578366139773432445579562661852374057219057500020195675018351916360289479161561802889431900331060887474433545611660560431285154291194388125635212206171282484736847207451749889908936442275709010777927715552720825541117501099994996282396087275920332675668320552914426642662882517462982027561624550369381219269918899501024761360163160367495443731519458698877928138283680260613446970450542647251337534225477994133307826941327290647185321234097934879755328424982387474978602662009754169338584216548253299016267473034348871779868468227979182095394931777217664574883973033020400488120613607233473467271614410412972295047832801989942898846829698014182108846743106567650613285371149281697065774592489610065532973401382479272271219591889664873307701980074094541609473845341697463996143758861423347721843841490838368860686603368003098225674035091576049338275593777985797848329837297632729210362318192694298180314918388431154186934092695302525407643374656681954523942284179910140320509731695549370439807232763420010921141730245147984357560004475245268762799878457235278387174938346821053879507581194332877819203667775426851853290852722441626409550802065878916147633220325645086702438496233638128067878665760689205058539696690175272306091235225706480397124082082650929238892142247236672133934299055685526710676256257753237113889197882688898888594788299710626550452959594792843172736437773315962777542028894032617247644894898546339103638309011173773193395353560267575962913173260340128884469242951904898495779261347093272174178267305106726862600482002175524268620157506088534788199831587039513643301467040082098106471510097261735815546932350435671356236473792437215380900857182344889489359875616639529221476783936732377650752851459004381498600737294657235889734726157296218804767969285586925464322692749496048279046164947379857695439784237664109643360751713609994357457978010115240706394753239065511856119538765318931247734270286069389286141486065995420237795491416529024256728794325490622261342403464323237997513649415452525028660526478064695006437763097562797351755798870530724997978771106681259827646426989302949070495015512586746233004582730358215535819960314226152622516409843003502447549784647727633922683560332824886496183985714554405768153328891465765000811484132869128358513042196602713803916426497331457863154531031983032072339941996016435022506151186247067710138227975062278651061021999429985548093320019561590864913379312962632399834680100763826269492299233713366045277037220518964087221574985324346267354832327643964273159189845882176320252759948488767408733975115708232697836770850555321535374491086862972652729939014166860671996373066644030500988660849285933085509838278948847876375307661088471992786717519465381141246961857458592443711417912220799519832062811350492009997820061875472028913564118311042890392890857435377463473545455185925109114737744342676291816105089228177601996042691886977764886148683038429759921294335908754241669053249370886084035572202295066672663146568389925068418275292659385138920149745556397479167533522346269771630609279600403411524925653896048456400261212975739954710293992581982293084983703429587953898283938202756344877108033915643896110221915192962137320045000520475907157785933702949153319660556465529059791122453886836138889346416547449677535379366702833494536788888683945524780054527752560800960221188629344747197547450717357369919508889028228438841332972637597553344836993154230129810506950052807514852245635252420593848783211970097281363480584183650615583276990499736886695543861556996075256202800611721033878420818974003197411074567140374699478251797861707747551881606322263161958831165945456163244540350796343213297838310737839301505178247684849786671976624492092251094236100974938889060151557521209233715106058969852668418330182209671897965762057830495739214241320779389516598924188104142219567364098023705089268434603670017957518778805288555011827360881305900999153403407055553591171056420187705874498628139088072427481387602544234801861944500187433634643627700950241515449663826934420526117947351105854995775655081313233401859804959005865857595020778200687320572568752784504475218123703109224881861121125239059897790010656251051494179927105482517998940883398770620682673665979841102335055181697652630833634577406050722032213753303187118782513440235571576415665143807552264796387732762157467515111226218574846855721381785594107531686183699426944011095952191240178183409683880916678291358733916421032381148560028706784442251806516484896610017377518115092710996986183430064489898013576638106209741929145869575508911571645179449349107254045225652933826982136189996367051553883182294343819864505234400622754427371971380606101880555081812839515434747419622184900373988791580230434374734639766319460046866684294585394024232765571677592028937877652207078989730716095724003993517738968530143708669879007339002126741644096041168058861809948277389353640284356825317894324456402609070212701551651117167159802665955506075164349848253577986980458508879168925515671795222507655057552198651407647022263090649488706654353089269114610427426413256515007257476041292737520973946225813756145853916767283166813823325123826851669693895749570364435034615605651538095734438229059418886746773512305353493072958574106712089721475446380127748395023468177632032980949823665091587680357207166944115238614593864928500429746334599060894982777946608470638961405874790992301045916351528511167624501370368616382806580335044180376840444831244103553881256951125897982333943008199223967461121961496453785277870377612284166499268535221345253773689868638063915494159683641384847212332566260467808435264959671014953622685651717331858359552012125329231755095132820578974173462758408961403220495839093399196537889422473994046395304743586963805069304503916769000202779952649180244087508257324298498763450907924653733721983290287420452927108445744896218864920754856058421241964110967698157612530435833411070300406597718917505323778113407715171204734616894556418258356546588547303951826383462131082120401560255720524332151209143893401385545647705151315182518362126959863528439279692064802632262208042547372802038470118234974562277485866044275150629817099790882549938980881504332008825415951482002127282352709694717510937815384494963103080785757301366803807890098163497857162695039984293558028106092994901541168690646625544795099515864334386958078943464199535724917478421441617489015794689204155664879263970083455676386283919266556714127238289414823293461309527976824899323024498197069270105311997828452348681968205539673980311814347717776675942132582053324664609632490781762060763424190424156430365408407913447420156547273799788245693274973934035629611342497007405585821832826619343424825374704014873329738467796752750079647078849269504914116548993096843708721067000252701255628883225054286101266070162324060386238564758083158112603363514056653722135224863467450471349098765757778509694885495853701906786106520194040530220608347374486487558399360815280656961289884104460810681601267268076346357107952722660977080784843380662231831734127352838776819795417414854471179944012063075180875011395393118785102316247342691139920247989017699709742307768185596544698067422426901528449610088570718814455024625532240798870581238467408508577666159046210412823091707638523029937479274804920189333318377062009675422024376851660591168317839414075489629261896393654780715248786871079256177742683555786740128334919790313580685283274430721026148559142251509926706279104917307959807621482870052710016474909961026421799526533113645518896700248443626597780570571801644235796724363571129534767725494084973242831131033319301502379806260096132042762090605754632631644278556618298051601061562498273431666371849913368880525464333009561602435020701404562185006327488345910208891457330725291853655620472254130471850221432170870488171135456692984244133783470079995694114702648721046968351048322018936864762841035619574275872391092694707436191308314061608219288766695657348689580584944383678867058106588912521884017513805157050614846592884956122337907072427419492503901911403552331933294839143563008425420684740438861935984089318772600449362237168743665565961768439709388241158607221595880064602190967296155552133186303569693258031415813137850659793479471251210032210903098392574385506015226429803095629389190587625882257666004267846434218331602451283636261840064684172184924655364197435253694144940369123251324731613854757570879718849590530072976047216443201925572981394915233333456079110062489268846219083813176413694689049908581960203462619747566338345928932882092359435610468345318004758723660797637091359293589766490743082742105642033710986654393851531472637193837141598677158827938644919255891117375581979879252490450203902303508318848438065036560367658551383388678515408513095898597997300308593562782070062499795500134778200789987817103869201855613548689529654813154179311706938716993416478051205647488804067361434052479352058004049914130430377137402575958018362868465490991384490497770354159455331800483104958300059363191047984907833894430591556641943631813905728736989402318425628076782461800297654868443600539745273318806501640294389731445138255460093971486869770620678366433517937325343332012158145696149048204830959818630551807773585021415397142137273205541321042561895992876737205462663824904330395566537732338833740075336176681905928575726350635461314520824511912084914195151448178243063257514376624003081789542533689829206963072321800889613084445027415097234174189664881796284442330855926045157335739156496058231056545111069603657618948682778249480738660315176142507556906595474925114707469957332798724878055182742210700985549949659728214897036743324044390845229611016534841951164343014546686921539148749261500009054782473561196137369036435679017647729268048192768170927515040466232339065311248935548672129111104999706454097039595998625773168087534741188757464973960787300417043033868238648749705275991388005380608118870054577788277288418537956235954640111823838041719373104824604772384482418617891221343344591081536349787213382263475324538561197695164861435456571201696092240665067879618247728091166060608519681202199580732186499050511412773377266081356186002617727780493235222414149688864916654231165983124720589107963767269827729031339190440337430212070987492625223066681106135720145091732454843814338442678027304225233991295706552837573351684578291868817521746892043634302944183327972170802475527715817269391644663212364051644411994186263519341361642460675070645387919019992119633641985864019062878023344865195075020160754691815893081591628368998439061839039658152986415512792483426797191239982575081911866499379689930365732952355184804621538109866611556254495707272492101924634801205434415839942989000076580030080230810409254538247628456810820272292760269871696852652535569709668837454916740809897506524754892754783498721342150484494774701232877175070526725641812448511956650758389648167286509702714308871231313710588127390369805521204118340743240588543182170127782506884996058743396805874287712593395379436984287529007469345821440948999360084085280899322997839118449521775015262436799526381511823186311150184715068920854143296467473575084118711346801246173534399956317052607293753969426359878556349162993436912805778021160977163040058567055647979405476743586709401533285872497905205907352283332235484602542961773149907715202051176389606172552613466463112646429405816482247256692329500985023070412624110406272280110024792240394491803166857399351511207144943398449689780943427671274345245768451981104687102523550854705974637529496126186705439428256185687858607961739408288555055344323810453065976005399578901502594772603454244220671620497752378546184055882310596523494493038598620801167282604006956116735653417613840453395985142961675304732570847959922388404478171083920661937558840279762235407493808106718603662923258188429601856696300319364147594660924930825516238943238520032558206861490019249369899690434391895189956078743439714903167870102706373261703504337678226284939254702521397053826088250877119993900307544149040994339912784473689238738293023597158100182803339675967228388874722556759399365160250216091859919752953130947018670648871830542404189602810160263597993772218007725120809815284163679148577963025533587640029017695630115456774192467245751377812694487799293033144899936610438766456381188205174612461012191189124100814924944077139511715209600935335280414008896518410545365509928209721581995367728440640860929150863212224457709619324746529895723985751388588708484551537808083330645292706110421567934844787493521780388522150047798462485690585426245444298822223005160603938909770243039335404238174952767958126129092476160953631625587600067078140620755351820908964300596464766740355098180457396362962120530744690026453805913236794060564697801357757967925147930774083620369678270590429397006035796663648872485747817477895084121877502612882426581920924980044426599992977867375937586079718373226351621540364751869004298056256265128218378808936769665997100693467418557384826305415051702374400745983169921593844400895173879825258238032628461754285247639039837742116741729917971442142995804914327465412716711053892527635555871091990782010853039720978928844680245676740468723431970678309912363272725712778002809274415227781908341724654603224997026988329316598548371904312536234350754197310358029866250661514758874107578656497876918062910354179406827993719467488692175849942278518797119264932437714660827265971425198810514915707363967833843044258801785569665490058962488359380014444895734908474236574587016507907544880422139207962407289033632769082289137776775784414402272491975946906235937859264408475370742300846649515298598830429981346437649584914833433087347657929904244387135732718438883741809045070101413066834212352289091362895875406267078156943632151804115251109239305789319651341435313410160627470709636512280232407115586304946215082678526040398108966176083908311903154115790299223796799210741208223074202569514849980709075619426263738671561314380986877717955215605707829636192843810679571662482868900131499432630132099615558511206503093137986925869456234524177058137691090065635848531189285020532162090866072178158859703605967617262426866294082658804856327079993154409266881203292450137594401412497733690587562014859272362789934252934923758384020351211401417784391832141554298821392861732356232427340918468911271055911747858056629498425382647797986171558602095646600983374370514038921870509060221286127774982767004683515124099599361697409268029583590926672469400482623906404176233749485539736327760312352721650819108926308915057096513786533116699970948605861116502701316844909242029750603243844238667678198830120125183029205800320556249567287993433288221497803273735977093646060803781885284647513219575842620720401157344131220950987813795587109291089375591442991256507711523692336049805450484645213952420335287041106649515280253600057094032797866332606584615106622847662982055232454430545214458660537239534012877112138473891978117148578948479138049295649716659220226969807410135285463151396975564926427555651881501634534165230148820766754988550986241706920068930274475822521047378772318039256582487184179432299134695733223658513321998216112483183132897896044247988277567149016342025412800075449978591983644279293344915359082267727049929747926966543345900629051200528134489641547218253896253285492461643007725739711652974044858546193940478661685216669780234060999117628410891749379564077909917216736082825367221750722576785341427266124452011623280329017149571848733918264123778458388517989666374329423142380820933768691055283862251178159310448974621394996231354881062499894798999134879448120792136250652363717160041956906626516835597144061882110550726331971069903169434980678054721670501698049521095741730360504561847596051267868314078438097859728670471320788415915485331160302663969383075354743732794827180907887421284004411547151411411227428149884270449629346365241879087285467266856129626791254048783200688371698032313564453356585709384528496006177911840452172342639939751873924665256177903250675645811673548441730746637268029738263915382054231736134018335036473910834904793617760404295675982481034761306845520948401464516341441439744433854235333051577470782618910784552215193258321238173934302083021218413338977450626250578299190898739118066175812454817723996704479402796072209531412317983964385847883572990563443352713553792942400483298039629369143692315289234770086697899424504575229110559409946450963692987789948614032222526027733622390443750062334511205193865905138775993239088953398833436438177887122924019951308453942925939921487698957666901218016773371157217983944350520099269031944997353993543154408375095795713490237236397773901728128865275371795315579718859437347172208283990104810779974015250002844751662758005803855155918892722592654665543391618028001693184925603970272356700763991750073815759876239056093138440904263936678956018157302351359407430750486138478788518671342867404536239897595431318470892439633936954290316609311328045052681610015862397256504824899493771186176987085308180837684357087599302010545601609271710747380968049121656010327768944410991043568796898100402110464317194018653236126241132750444831668124038001092794640467073620708752849766545390142444203001575963707580921464871870200193440820168137217601132431870753998140379509080010213312182270457875194953937716238702645080209848276664219461262664889489572902513896245821558890785311723130516508455843779733544869321038093291123008004853852688594102132531477925557716502364156691847663730325790913848242958859641829413982209559792172723411810112553598545951201009621385335361482487509189310407269436438529193142606385890997180567819354031164664473926687345453398556584677269875563879576949216371333660270615395861187579248610531042851293740141600417941443264635584515408832237165757137064372040786120412327237936265141284568690629528081219900146997308702290640333734131473469576792840718653023613105851998081292235682574747234179126068888547415050344063056461403099876323687689829843296252664544963198352801692837409547025642216484329039647451927284566685783047452433884268426591357397389710617335570716290097199626407682211497596383688980582149120160888712692202446248103855907883660092938614873448888820973800865938348340972073704529817748935977959221049597917596321206982363484286732475517609254361469932309415651951396786616697640458406620216253129653368601122009728974976576705069008965132203547378589358877733826613133484108396973476106290334615445639658639744402881803046038377222730702722459633076847992317066142526707759338403865683334786397043298911661619569068004090920251850501401603087466377015665815246692992379634196209589389010780768980551965470337423104401015236647488317589058136472815685877703202663987317386161915655093728471578582735315053801004090634202123310785571393083777478033229180744077704157594408604115753578718530334479123420879408186211701221303322421384221939801274176182837157914979700848847932492879929453273150756293823553514590796149111820433966845856645508431461387214397738072909028796942329927284291101931752181020761905264050523358009053690140807355549935407263704587761637466378939402584693314647386264632084083980670079941812256145834965467856769190408098115272038740648016747989011336372990248126208117060015394427331261486256716830308195357156758354926216087998052398156681372523875426845262078726724935977671150087855478337432857246363439356165283288397271654139218552921206147462689460011227459727726189448510860244802191019670263837793593632733892971302865795535470497083898447116226680906195139542139947746442434037959702884212968457643276452816185593981202779691221166660653075226775540708237949051684382338132599888726390624276329061603329649654167357248916020604908745355089695058187087258706785748535734338848411432503573027740266169861303191979311495834853286038465587520728364201436096941408058715137785516233754713480657592302495503335709359383070855413743840698962298326473320054312690344342762567826923888807119016138184763572112266830266622301349810220602766713741965453781536280759734959863779797875791627887340998403974726909539345933152772696435395517384225990859337522210051589528763914828668070647906723024809590275792103580835877464095285122986426587769821054773968799181311939237331847538364452923659397798357370978510376739372965024487668386805715804731868705442634421344565369905868280919395738412030748287526645497983640046191944081889752330667299432171734995811770306374883967311377272938635363188510674946871165884889505476455845727597958340953541936764137325854531064342901719194719277569151533592363335407609911935253778781973352790551138739244429037735606126787470943876782812593795153302118980897546486005378052475378642440679502212418000439524574541275706204376594398396468564739539356312903433002602620434982097269366492663378819031471524114036321525836879235260999352958509458446414679916827337366736893666966628372532667266874226648379513505224537930899751469969143630618742502929786843088304624291275273662668893920338092795046487658450633069555781990829183043662591070828532602928323750745789410110225987984850478299065687635622512368964586871698277482121680910481248402431969835671241919109928257124704582185462659252634997673813657370642329725923042081672179941904529319181944010392678479163185074659502861947271879492867214802077519429476128575813374268931560704637929854750882679143568413052891271077427154152791323096968680113424014255329557497813762959009052648043101130115224783713387785187293056219153386229482765557686287320466336093717617560592353399100585174484265059690325508801898075471483153467089455225708010548470251594436616692664730812429439684513594448950689135963391489332327761580837816816201270383947230823892351430606796278228582233372290895177162593345948182755733424899527868759129762624502093865087151539092232169105671182087005798838467383564450425597161010723181117485890823956633431742817392750535664392763982878048853644425831041864274426725378348346068653273666047167648392127620749603586659431543187454966825145825614964441902192095578630289511963237041460575745276630264341851812966643817758219822264359902805046155459321155408504410317154802769219072954362476982799475546347816208114254859530109443343521311894674618847985886623615516282065930977298959812434346385440807378891356741449657849968731505626735648377893288085329988666493548311241280452796071053348461384446474805173714508402527052256928601177384719618465773417147567301544654928199385827548630176820903347028907046695381716950800924807336922956741876005661195592545547896376363338723346742806828034656824035472844461307117137274578458982439756184583776243519169538611232839996490427108806576221004190360644124042434947073872463978922876073065198207560042387647170538103390058282782964095702551233571966980225189974249534559995963833355050739532398743126403609807518367144576429070108948635582717450368526058189027569123482176693495931188645952615714614095623445280721527978718651656132687259442392506397333726057178598953211114895853789740643953656379936744522199912377695490767413642216172441074262142609473246831720473878862678647357795358438148445299914323727884570977398943144043075377702350667485637284355743149267205778610654028908714026914133998710548448330711506698092685043719064867431441531076788644433741701338179047924010325262936374022599615903034934138197947905307450749603614310898247674027124623684665817701919222003818676604727625174949690554616241548388791143746425314614305078927664634347997194668689936032504572606817547470664718763600947609186970084516832390479919787057473546934964032716833861360514078699791720927868910087648613015641168961961714876292348037901574992227345094579749080604718097922126260353125045224715529633400052225940408164411012475811660017669366408392193655040856664150803063923414455310562561578477605514510955236423712286453851394464708870415674661254115489298034201326024867276901610760153611733523420949857886727435028250748650124859773303560499313126468932527166294171057643181016714119033173062838563387980478465934015341341596735064865353508626683409090326117018464465702441931008783393695756393191447179096579189510399724643858573687123837201851093843083015982722918128053002720835802106844522051291338549475083665021504329183162133215068461105620488761242287173840335544317587914872797510763614119683174803043700735835767448445659843089778691485287748434167312320794749912923961416025572163198701535242486002472159039513388353219194402774544075256424696639498320138143178260716920043332882355921228791595051761314662205350217280845109072572221262417423170442658464291657719808889594762560324254093336656367149598888336925404392172873435800932469161701958015633894298799986876298129321812597514733241577321936694591553649554204063098044293028297695072788836169640806066727879752075564247914320661524314405603245919301893842634996378671819862115287158682650678754121783317858969787837366685959907642111080265280010302393861325415182407035753392965686361620783547947596854252296186449095234705821130923954530463797637444413173710069596711572703985785477932020786031034344522211536135126864680193166732057918757473116030814558722323600321160647865803287421161496302973933985607372365823996696079250340230947971613157406168152794343820077518698161530995428549529116855274243007348097560927220680279608851372580125980658424344889789443794263298217582383348927942120631711308278075105162993743024121628474350674819760379353262276084698991299717299364423694426137797710801167373619451872731629364327713623197468590565625121710166407385552912261120529919103430919568614706330697485093699950120746746592930801810146991684149568912479524457209852915053639638363923204328598958615067425188171922673395171858368559623405084608968689394204300499019977669695486886725913655023630998725170165714917973649800631052951180578787577549622066106550525980641812046552342053331135364684678435126340771235551734435752501592182053720714433805654705475524571857595397441024590824134471406770475621797208130002502774976993837626921103576051764543923741929152454562019826599716380312542643350964588400418006027737230071317547262908266334415964622588909776961176305921156283216686056750040245799102091349248475978704947825291894854647242057534561183150719687424368113321615430167378532729310580356970996138835449219436865706919367808292154885827163340260670133237281374302179983413635004072860231808323041930234390844929585792012765166843407490612973521631209275309190053012777179994790381741996747043718144930651931400296538185884213260333068841792233166465653018134140072499633427142689469270082997410042430918193504192178500661525773937969486340451244788530944035686979087973454960076299754828410201685972067308905859448114383292407324285764916877038336506795654845948921552505520146430404227021460903906556726351141494132054196269471832003269496341683433090164279190230944410503665624996730073191770113473663024517381003147130882773807183277343579476333859367339402029149821516325839035069931954143437389547126912593979072218405843550118316564263404317172047570029754940943995365643581763877012788146543211097002621315897845916917278668083034332311260665927973558532659529789868009286317495315877372009565483642304373491655085402726040082061398621606370936485092281344806747555334137978691754146896071363799744959204675696093011717760168551115810094403855569323997484610145430355441846586409371875171305262164025492327231029556314737075015887092159074577808765040830238146494124458595456563357305418293959241389934737387031626096448521369151039680843580668137102649597732945464456082734023924027745831978264061070052509082832273892803253003497165749540278948707931138599252220001906745153775231205997632230167829031316670994105617267416917909270912264717120492858009812711123946644629944127066268349629820877724489514626128686516918108446642427515261377386167781976701977211421112834438560468320301411530728842481775376308419325084613363173368187665939208216436450631690317272513900729565877073067188077235651860882764680179922917085488358984082356583107985514218966025509742382194931326265240360590081457979513054386455662743087574469749380711844973035615457111156724704645278548137546377807763479562919978633567648591485363191291151277801895898394381101499801283249037296095256950176244847499119032030620247142601273082571012889455187304994575011552117417986777998528435263024586888599820511814552078392898479147224646696628188061032686765749393077750729672296694834578126197755948589191065243399882290777874790411494803730774202664639433866470765339251077406828173408121079051208747857453951806335699047878192394151893560762221376583859861994262347606163249694693786551852245772729792502652897761567921301176475129279234725683741734497060400050390411719803079289203576745625384428738049511081315626800013633095324376990814796390272435987062081032259801568119576458418168914365234339736351305270410250461647604062396168859462164694833659851135387861931836054367594050274862741911496496809148950307907676919520808202739396008923336529638319369361946449496576036348250744220420369746123064458905382973589806850162780552787830889940286716259110573779355331992579329316838975588399261298336803400700243131001335750088545181054657815629895594527727896459023956433757994637093862238088520861780577219144873248512379375081352688334018704044511266096451793486666315721712362583363417331724581034591332837924675849748749051013658276256170017752125461798269533988160021636081412835372908072975133331116250366019363126345456207518129033959196571886486082479548105842509293577971573890639107140797732994203860870063685569733467670509080931489545576005781706969785555956648230448174754442430880397399658009779900575518534864642694550966543205318055759113757031472605595953513092081229162661349613868718592384092770027088648653277232753039038653120039281488433656424969578538433186643641702296671388408240445239225234760776666105699993560015663561324588425779907492344360023225416083660072624172713629282728269058105621287778980928300833565320570375074581612663041315587229059904980130073659067996286253892057778274847171776838943525138831208505952292567560535578506548114063830778860252867820135190981963000668805009259358209140680693807910040903546982528396190663120900321745200729909744514736529359773060712872784523822709723540465304506630037676584971192675563323414894558281178593880923706785020653690158815319487317745664331489469650262308772039173133039819107309048163141709066512871933683117220188832071942174427060278639849524965477665550201231774273052965713554590305176868838308058730358607237504518303747215750164514884839840121797182004432579019802613037571316194079020055604796449017212699229710880226758792826347428002653308640364519212687313432207183348518541766326584971228475818330186455360293359097014066840943436132557501426211135583201048287695992184418869773750213160912030371959247539302649876860751450679228214986908907995635103777498077278212867357061677744918535057965087425435370315917187943688106666857897341297379762937625452714565534368596219412561225643445663060174442883779237189298049574590661623120161082522017748155676946828943221884936535456406038248652050078339570731816550928665548124914499742330667908270747649413565433267457265286064442507553818511411750705531117186913082609526107528309934265571798192007010932898803685764150407720310707705497798349243965946815648152932544773212596675518587324702500300026784346605397838792781270199643221972174444475734291445833608931807272870137020928938060935122202781022990986580738480063940854672847560566393637379013748590418167207209754311419814696311852438300460115061207152034609682031353140808984603747856421912535248150600306778717342180116219014897074937032429988762710167118533527007713869568677838843849146629745785880398713474765763153955187609441985029804613130807455145594197694435501784385241894852388535958126700683975550590940118159634199327311627026689850803835237924800223932959786647429333333996218985099498055220008969801218574541328351095065637983557675966599206567343870798920432408518188887126962242279231143904671940915787151040414687095291644280783200310888036504329360775376232847245162479405627871692405005900791769522483685871926044017048606706230388821582953013763304585100805160318098087740353635653801838552508495490642659802215657151668517680760158393051822886418724698670840160603710516087731945847968407936442497370777150357212775135323077824250784668810271687496374140848395868631943032161813248505200045249965433965210940648040614315220349992985666071705164930398295386459459604472755879392741071638321396019972300207359163925115780171743921219085577593876420683161164911097002213423559129282270674016927837098514449543461768057478619494886476570023182353709461328434069114199276676766540056039826844607703534041439703802947860213311573356703209725377239998410519426624264535683584181131866378667258116499859364503287069338108030469772143854335652523062036419518743110902568318142546784214886616567210009286289530722103910678121180304538610119314340344114400430786168554383760234535956749932381076754991253543197429094476713343067514633443490492569623145326591339849715447807913045728156236511126578380556022080639802026087716333964593854669075462093244490796152933852907204022850701458643414275518341201972912644213913344177715805612315393591868444353445403272512488518051984218145925823715369378023674027525923142697100848362434438429866220717926257820023048356383307974508322061273377534660523861048165027495935349257498773800217200824538589682597609139326931142962597666659564161856671280980806636307068168703120128141213955612000183571736954214471820485275546258953971093749837520660686257037360568394499181554663731700790269178167690028965446736578892115317641397280821110165254464271963086851548303734866170370065643877260563315451116650208071987890730715317765025019167559805015698910525520813985129258113706117527591470517636708920514046963259828495062706681240191811615826583079431087531270059964791760305261559817387786206378159807628671808527562329655559929998829353422514302349612919276396999867670762579993685430382371895367471461233035543598410970560055745031869214907565154847879693482070847935929606078682083848448825825779849824760290500927786495921073685194293492004892024078937530693203488229050474320469640356602625022106964460311899193685380714362378438250222640045415940941375559394020151782844144422944019856651339124084351280255834652395100692834550021919822529174699027936830423108983775193158251968367001177813439956723421563029200257942521195713528228886360100777392510688869538576434466137845756200172643338087518909564944476222559403983920111178970467110908165106536550361515482085903419841577522971342975340931779932885608525137183184634556378865530549079747057423891939220137615523496022454116677654801787624838547802260632600765136852297340523614807862580201777489609263982415991899477214426502787549137554907635255022743735441214081085406759516605458152323316384942554701195369667611222226210257516447148258508740589054457020835313639447014534086428373609747541747726765428764742641752268383017052205416499726311572502678586645849184255412741776403496597989747325981535042228406868336670819368827533243381642871928205519893563161072735529265218400087557406657124875729049346551716870091605727923910491208123919594993739336386387265902948483270361764588546097122623631331457316672742306199851281105536303192584820953253913706111394716212562400640764747271136755110750435774982042427091312090131535598287300285499871451339537566762976069085103056133782180076700276104611264310738471440403828166207674971639146159221485657507203975061794931302039144228022967185985518897755810455805943585751457910854310097180143723483480259386409214503105406380510649384060298907262872947303108175651649095018676253150301628655486020590817607550020625099059844493786961996271836533984717401793420244928062541289141426131926354088438140725869918505940766252930199391807622666099740721472617719013699822087297285484519875158031519820699018404383781239749008188755488511348571587308431871820216027867194120278039885400031351267768485172483014608835386852392692968807477319042042020210696363787304675024159309030382591118058884880341296984647059845886788968741700724824553865584167946438798580473939503231765854479867938392648196039524692639141100505391777725675657153209125787140775758622367881501982300737695627866339380236441984881941950797915370091120990215344360565822637809461056704025913752958181235699661321201084670266095700779058270757779947472661973666058609869269686814899226684941255123730698466112934632741541748755933429344297320502846455324572627700491032319759465165593425666679450452896891869189243171581388026899430727625876375573848237776587386875075783282080014239070020631210427289210313267770141191652718264869738702120100562122791799905544215680360327614621203413237825556561163309502764302640434438056653851394052197783171985195163660999528783088052451526196131821346541171808628225433958086192209465561102358314858379085886000409799988906177402347412057839774777032691703803193137445881688032549275587812914857445202095449309578986291148330523290063741438531398750012999889289931272336631398746102237746741726018414001747456432605792325493398272709299208597392247936972665398302608132239163626897827802950831653765370436220317394930399689382347233022926626004503325499467831169974016661131967422345316291872230065610820363377484045476425647365227792603985283337610759071274699095966434081020094783139807066227133060300330625764518627262692497769379017139709944236769900755933078781385077682291713457949007329816320626255391601688824450191405165501810216727885998701656836556472393230058561581777163219244710889375040389773052995883311414844421336667785718043594382413846943576915265087508962812723581427239894111286282650161661995512134961817659701663805117452113938719714665201029461866684774799536971783412055984169082535649651219657222004511157929616004434560079491899701255437748182152297825170718786409077922374961280026129900402475031688633206531464370439252053659948565201346215981475370259607857047411813067455876876984001106075387118136687712357611399939589664295264242920887822968837492097150987815090744086636229166191562946993938891398560743052793134032751901707308777647301458935275390367395448770019790028960542251882915291816539773291565426701387343003850980700201344297242003308304583801414717067600841233516051313902273787889368246191960881848674274136422837648028920487143996288853968250709841614909841685011712320974306831797866263222293609766360461938481574927289173122346914858034852450855793595830981039389417661895549348659922796782312338006704566899636496906180059714870257429735245683821344216041633730965467191233069866223254967795495269642612494075925270068158278938521240473538078764286904858542548701406391606503300507388962585250178558146334884159988818244161532845818286435228588117112946842910813072857994210698179191467738325494303547362757450638877354328373865827024812942303638907114328712233681743182131265647168519604248014556679261477813200546328051137009299441598536185014333399063501734458675889040595950991222902960256969472236634068422551545650910426899902715834783126930611255277753759894681676534061068827714197268362113994915719054673245283665353557756590669521254288515350708422072356420399349235784224390704707000642324765581563102790826299553395508098582012063778580021287394900684656895473539005107724921500125272017047992631130015962971316899477328749906634180993178027100937673512539915167529616997576718996262393369462397985699965046021074261611175543740466359214393617329768884049045974656742398944698331371908583132391008098509899196722910235011117345465448066908573324808244138091130330500861703871563150255733417122051341192756690494676303669102875857855997409959504512972225315378567163216555195831939171426278153234248882791498485161701922304279324014188810312653442037404108655480515451266066435829329698303980689838475192792179309098234324948940867346928818282989494030927888022340762133178673487609012066995227602796567117277266094826196737816742461212747598672060269702288919398367575103974508136434100863074067900933001209137452762495827394143977718232458903388185666647288363539567812830919229553983788741292278870504953386935235869092408398248037639621421557579110229086362613816880238431458706217260222717235542958866023217885378646249975476041892727268291471017731925940470773244825313656714243970558210154789816667592643662127336765080031358124496113833444050277343692650380712113701570989240288710532836003702047268355986768351435101335146134208101900931164868016928835131410222437244872057642030258047959027195687036672819820796801843999698166629539325069951976989295604678991169863262005075765336704158353185972605569287840284046990324497357136240554174865424010118382633048609892771073584245265923426248917474147766758408862467311156018206944719685148917410598825171009815604880702259478901406218762404545923453924297164223471616110396623259280137737924941214344508209289904013394724278090010793708121991002177767701912403510083703801400489235614577414484650188647118486828660123488356322636742011032961717236444038515350453126504955710336439174675517595311935478411361200068017200576826214010554510549464415152680555587005531462424221793651424864714046548096931557253658145378174595981530394501591224826655831588276085590065450540881671116147537411396364562701655041385795989492542095461261077540502928145660778195014846620921731435636408330815170795222940820186551187816852362254041757205938142705688120614867575040039985005154236345831194414409348231406850356404511248797766233393253328158624642958619793878920967225490653466329352537752593105568056371076369173214316753180901551914588819748559781884588114792619992790154135077301220589021113888771859145835221049605098493912447360785066482344748952667717700773645068635112582928885945724246270197428743046179298697243804619711773314692589828292501457979033759890383505379225766151728580901185478073009438244886263386192066179746383398735835054772980157023736446631962221885401265181342569784845287109627279142456993624186504974256384793936942103405745099899287865563033264433942752811034067904059800143180222228354357866149976135373253861324338990892659118849839926341745715763939369233946365509502730126989553361027077901400346678961407740306410097156949928963473703319641439852430196142004298772718966352880246128248412138558500658999475012350482802528823304453606988048276544394509434690520471699501758011969007389277856163380955050593934125041700731701983254605372715521767319640892985483006283316226318907976933614780723344771561428274530454013628708278010982656733432495451983375279536124483783174974815901560303154261497833100850231723748639159312211387409033221569867807174015491583667322497945990236062634070735504162017675921230218067292275115965471850743849341973989002891150994901229261164670058392543729727931367814103380344285957498360977782381770215698514902884284448035897173897259064251612224025506255324865060769193126742484671552703415049165788307373187561381325292778241736263976748460666802915750155824011409015988065178344459451443577098239480725218956674764730904162137124162584123382465108805156057736856989307773859893556408623933596879463182662946066499558457938213715034643384806352042550636766809868226546468956087322743944860812611200237148161558480501391972601237597485927359043705525542726397001296956932976630944973559736943025579621572879728921334282235078528717613231867890863210109387303971294338790868351305903276908670166988698756024735125208018112599511454371596732374774917236795492857553412240013138213731320230619429930265022952499313184562163467026630912088013663417027020494811238356442638287117825662923927750895580948984823321184137892950972030441177387337160361609102562699020237433456023812937285397548905599262831370434414607287607275747461219725770112061961828549470982159002762310425749447338303090893545081338401793198659230932517685215682329982074966942293925222073514915291944711163095831053555034398287434181913243488881364732111159555016854928439508671718016297703881946074643427136590732718079371634641346295750787065392947804565733907793093258155856871484459986959960816892385969752103855724634909213267149096189377073590215172047389643586983477583252915283006859385585049562129258712207873237501363058283114578673760596005268198561381830810131858738871323108070149840543383813826613543499441453887766200353504479276246862854588074366821033998013444621252964227079335432830732018671026998735799916538499138928193772040945284769796973830291391897267413161987912253105268941429178048244665065486202671379474923581131288789921758314893470123113178742627995289908608040169724405668739703422983321631213223077455379753685729440658322011449513526296058889896155309416416634794540235953693135536121896147329562050878587695200896971296499521421397715623856478035898076134386384122653785173078740406166962458185086304351516538030320321545495897151610579895854457204647617309276301986380450666066291951577702221159013056451175103445768368794247075931297525595611785148435343916971044788609925102124908350347372723292879417906986922360068389964953803558258130116497500952895163378985604878873972228670008756306359059865428561551094070491089015187948969384321473091375119207906548925060892531849322375557231483398038468731161875752764750938640256366509299866908129949561430334902388717955682384857337273734779448443842620182140786934108464769719789777549443839770127878110621718660796599627573192967805466424060952512840911556024572432382403754264236030541896125061980040630366632443385951484120244188830914647149320078728711642067218117063465730545720553411285983013327853993117175982750436181776368862489732237364121418521934221843420124372555335026228538730702535719730877287110063365415206509225022644164804861445908786725526427542508986180526089585153030848323062582932051429826045394435398825693184769603664348133668091625687983388746876618810280243953252202831057403466403868462079861081101616726688170372821674862559337458262862215397683047492371370663630937265359676783153991586721320580352828096711185179772114394568756411410702696931109287643359682136829588917613344267870179655693036852187945898258753618614230367658116335111500588000608928972659722449519227387373904507258410226066338356325833699056433667802360881368390871393718768728652525516082520295040344657098699794506566855875261646496151562077931024906001508200990761432780851477900028135254406378204498083921178601315560583646518279923334528560322134356360938971164805609616873073727242851171808279351810264066988339153200541032796515564619521015449861693059304240822218397721385787110705620560110631209434145041969213915431355604495413915108364105172258909273227045598810394934414512723803871485545887920886617325974581042270630440857781682232370763707426671134405126231794732152066329053225320480788672609954809053718640209830045134559544678519232298198817657362497648081434950590853241939714327728027507894505197284021878101367452203652950095112135314229957859711312777266545009965521014618210028063368609566676716508245741159796036755703219907898808757161059738038426860605358681738282174501661045992286370275847217067710138214227562615821032001077427691706116507084073724779327147077745466113889960310290538864754258571800679858947801685865814185761226413509711897615217167271778459079475402989987965690598089517363304951224466907197556316648814173211651735793282959845356885180969431892298376959308431249054525187820030190215296408495656205135210153559642063069126503928714765652937730565487997987946807324792342271066504228817867456863234754552894740297720850254525981091244876329255692667354262789252962129369639323505843806522462279161416465815969973111841518637170950668544040452842958199899451661097061590385158080445545202911212178159193526806305731098061587006093388826927583836646930090662285039034765191492835173178613621727438376581915824885890438950128425616930088467710341556878988520967629026335047541091775675600392471772966014555936587814261124169449035122212148118893073602618316103620356569515378013561507493733403983417480109672520414200197163052824052268958974712710275343162537023446540873751410807053522942715801492010199323441757033969949680510290107952471689140766362474842616998350440351844419932967010781128620195914539042682200904228389015102862293835756783896190574714702924386467755413663495422945495066773067093837455794541503352609267424226369968114090777588069525239468626003903685767454393201525700728406972632122360747033986575856058907556321242543585088582455916616835506992496363080221789361340791521622187008949041709795903778580005133022728727684361649080840159198035294478799254254513525363371681482781545488998881948870096385653046319781088205570687459211351376277255757090270999340729958279572532140097555179728621541364024945518727785970541237199318613950462494366655636548644727159056173393854177546308773093173195964222084349239689777534180731072061478918982954905216892114788145104706943392970140076308255374565679036451910597756577452974853079075506633908999629405880469696728828120886004004460484767684595505588314157535648505737692557119655718234609144284217715628607864801820194072135013464239403849813790513709771320193416742384700193402013464853182092859507645367831914256537778732641174712182851225365390958521466226000286024353685080900979665661404333965689033703587773936230996043640347848241906778623510956443768015807452625194256760290381436483387815320856915081263131380538288011846941183189019454939803202618463263634667905194378602489803847493170787186757822259041456443460930692433620235365737554947931843493400976966867158683445803587690804040330163802835420737657573709470882607358594859932198874142757368374171339592180895189226223455079150347973583832355001161166667739114043106281543110802799806990463084488567279415505783776224560928247317629690678123791299831071634441893883309013134164584173911813443113781596807862970464249295219117120227699470531082559568394095407180385368534810302726998195854793196447734192042913335072804007954785940248429779297247659177635252718003969175509298902713972132689401252504363913231969100529677230346605137386236814967280900636669087465252516875076888888551234376247162764393303771322691306283293646683979802316027302632702125010043787841350111448298507975874399600794388184221535838876390644967715259688717632211232930718778026516130211642528662549154898627633473673186191311083944602870271056860854834467936722305990212256715883823780065369757613404884114367021010080586966523428195333016291901281800261302794954621495505057706714073104435057629041089347346908764812664103880015363542905620618991564632873898125509149131567646579111346747864271174744159904752981864427163956780943641744000242034025494023321294237373512025902249662297723799895955518988912367402562851185892776332364439727000277239288167507436502626955737741150609079527085372377691006952896529199766970099251049776113128832686748065466402131097594643255812153781434672531319382144413662171564207477076167487040591348633387784752412401071553271340392960092752248422472768671772186190203265385162788153419102354186655256071936128782428409821187614123283053418694914691943432299794289450120245744709136437358376147407258453767971031565733839637218740486260132068624205344628016680953387934487592936693705411801783920368674670374648166211512949730079220459402535373904156179549981423216563839903975681122613231395266434347227041717386705080972942981510931965349583603733299381492837150029718513793461621301526968878353078430002497343152673881570916790136961234058350250217577087384664190257723159891782067472539471571134128013654843743856012874042814545668171180920768024040191312812945801881654094562764762860860422607632270301300250797091360194443691596521766713297664110219862786985867421208163442899132637062120336888147107674083626487158565459919523824236963898428330947452030024473530068507192347159325258679855597194109247364883694266907798056573966426556605509383372474362671200033523321659091711870057653820915646327221854896911399088331589753565721675413967401816537692560101399962509725871666579809964339652601446378673619459115525896101669648058322433141702693882864888771246911414280772255812924016043780316246933888674617233191438745617605726805391417828632890535628547641106838691319871431243006640197026816182802027502929170314278181280662076686464364003150375890390882542573952673338744742539285358367536692800678072226905461533681771756451781208923681877558541851123002961980997376866373907810428142240761341261508074877418520725877489722323671993424752406010516537727953946230111009517377517333381544360447673555763104824997976583843584593452264927778206110477929496205523496793824734919333206451843203924427196375554129615915837440421478289630535667338522371414387561040602032710381913741138636423833954890517901189791900410046355672870634877209404065295184664864701764586765204724203847267754497820075617031229910950573355210411336412825862822219291031548207448716114557219088139809303251881941153590922718450731468265807761274280832178000287370535437350534339390376599727223155982100398606612105657036432404969455013591846376793741574135223187871801722385927052522143072879009044536612041778192833933105120508817559310319063928759819807511071108644147929650649937356021190389497077406824531705274933366343105527400553799266223894376766825344336226064348872603165483426329359411090537619021186342629459680434773137699262422401378558315663288056785812689415314460806372345444707761428561564098461420491870917730527755120248423756132489961085973180567855975885451001680301117832478430119250179274153275109345442767237962806839875439463621720722928428698547621865719246440975683472211869824777566329484791189774583347447205443393214120068752229824641839612711550434597006790337312959298978218464192136440816873542178259244778929373449387903351212224742842223226596323740600284345765929660290139141093452095568475921264213657574982972807486825318518442208507850948393739584276002057492572865885712683030504552771496883748353275559454296474893248780660848843702787712429456806914658763766353520937595639153418620289885921893678970441262596786791648816333926675392505179741607528137199171920571500760854256120606376961407629996295148223627653887799851658045589408597081700888121428641347104900173980724426564048518892005993674268546472468510081589490188192148823688133853768803139601190030817040185962986424246385693265649389003139336578648688897072046171103134455080827166745101252591815497360150605894408802125167254048462358351093067093489861298188365158801193774435149633144862488869820232406747144876482684040974620250681678472806512087646806114831943505281907811395649530623949057429678103814529874495013752305824423708767704040377589515280596476633970709952361514578283597219364350396620217044969242433039274263665002526833065710209946227506846882622898777120665002160002227576033151088756237196141889400160583305803001899186618126190186609221928710163230458131711343810656601332069985696403638692217987354561818630018966876016960389841700855264636123679992629511341429854543407603431655712908805550682926452457051259465248323416782564717168617156257877106435755804288261320198453711291768342136522369104021629240871630413617561296154523553249585108002777084807334286987924934275724999920025404574597965787423793956624050892383632530388168853831534476783495805020315628317392282475422373868122636049905815303330110778359561548034666847658752569167125660345117328584620305082406909878545719621542064295976186284919258643846076908347552238215564019816371367910950482906138167182485703694697439218582283536572185739083752211846463550215738126465547833640431278929455661649624858584130937003034220352011664885273407116627557018312360032723570027000354552644555698710842053184078204309451151525802832790953760969540287586980406472396560152199274547655876354056252466055784660354293001092206638150340136586093092339513407620626347641313168136083384892900686044116413241595896462331948947029162609072476046610178098704766036526227970549830955556025316047044254066223560686910965734339751759827949545004743350930759245749560333516558823154002618519072042756878280137309664120025208019612740741396045815388424999032002631369701425266758966643086897660604911347041236028527173300971288352430322465450165939324113568765986022987485518842601258543237938138936669270870485684906639417279316932434800895553891187205503836593646682743531380055687348913125764406873216622792082964014891842145430831684211453936054173349317338120656301253131466365901625228847486363943492500828513822745015471436184193892818482647653146144511963128307910244417603231891438132530960172207501779917032471725631585675434252532409526877170721367987808205842964091214316637634387449248412984458989152467485773747529251785078538907943806540988829075949063830024167429108342652433483265631879971331402049934664263222689545014922685663652112679596917027392847775830884911031976048489499885209960725175499306142578307475294745805040816245228804169832685292706626420218877400530689419801008789098471745242710404149591621569863546869963468394644647528582934664405154227981145832280595178456198710428715044966138626073176314065388525972862596409323409554121214432213270650360007211453741546558814222588187703608681354836126610898898522806511440394503627920960113928973798425309288759821262801592264607552434835090216578558403436522042213261262874895467015134630542220764363463592730110358392967007398620924670623686864686448824850217966829811409191413252434794558273437081337872849516528279959534768612785398191728385579247563127883559606890229151312945941918375750577111403027176292752733669915930699786407897334987462230070020438353540747116154630733792761542367006343878802423639676212554662789158284139002979856714028932889175297611794402162823476178688183123977305403250914883798583115889074242728480981998968267184129632477333284384099243038797104681369204024879105976353489477451237693605497111243621584970028684677225947778982349778798606426077673332405967265905544521926994082903159463876291565014758387035915106947597522132187880411932456947862749910193898712505350736749851948422825532690145565011079446993380337076561067094838265247361969764440925396952662484793761910752418333979543155734054661296654397759752664722922984983349188059292461945255865287681849155279434592160809183043573424676653443220441848498646252467632326301411692697190242421330201687466283611827512531031922844747489245207535580175023643941614055991647322706070149708168341993380872730088030957002443128245731193471713390076780665143156349507689185090930391061738267466606044922120389380385129845270562920528902506024823865546424905988485106326214609954936349374072581324242400294583561449946434026505315915945028786205680814924519946975009736865810388958450161639250063444450110667843146460998946482053818975652123050599663184216551488103459658891534245338715827390945275913064642087370660417441248432273122413094946619297414921056634744054553276636839136507836063614757696324544707294200492165922749287269404544606593168924881881717548963817546551540658083364212078660874613762444673537353125402206750128265684467944863660778607990053844565548935475818181973214731682177149166694163442303953171706147963233323559260229784657640381687492825379973137100457684570979459526172869022214843284596687341105151255967115958599441525330313641495098815273701838107247106645441403535023281374048915364503328815220277804508509530228442590407198557525407592685112453791663758326793819499636800764264380918311625274800492198427039460751258766810073120616301588707420998505982218207106597709750795194748287199201562089610681369681224993625620405605257443855807272008293668033575157534216720804112256882845763170292342507687738780689981732627316325460690358163764257285568207408321509117672861900001344899952886874511064200590647714947515265975581221495285905260133516622211343256919912302723279679080598524199185588256927765872014765053757621978396224561620911238861791977049632925318418201861676804312337267429964891528734660542660185653782244501142987171737986381656147220373578491591844231937415874990676961218123397153310629106292009406104017103286785667879366467088532078142851948549283226630987081770107142854468332302455877915295455032921123118480214299734859650554652568798727682324047732455857446510337882913680781105838675170895549052015057783096823035835535466481626230722390455835837088310439503900439856811307559919962857090566454049726638497424590849580243039669528420353959175741873989620929908424470815784730526169751613973846757739126912111051140355226062583889443217286687774282108878812376023394663555100280293842471024487256673936502279716797006623707273140940745760736227384837842444284263388407711221693904801838405898601089213516420064885454950495458707617244954308418920876475111465406035177345615362740520278693638770015534348307194691763257469612842385716662026362361821089528845898975860086461281722661645398930779692953097876489020898914758688590639686848671911232329188580476140287681317564532608585105356476519576648275049027161750140398945228271037866768051657452777137135806863727004759964870280576217062089365977706961821270056883099867252951096563596597084233036582196795467692091333271986757731410248182056833088053824234314994942676998712537146757283879504467520184640240825613360527969214355614717509504567042658414836092905476823232493277188750263798702880691806389924052828694794043800685665840554096720513777472890506279618226215610503704512565325691786780988773073126575126448874371321096119680382856812867348423065791110121913350126689455862796380377723997928897350504853811981790375272925484670806003167022087667582212071857748829053387319359113984319634116136037613511984330592793132753390671105328381359903235587284619922026419621899945130410271551773843097387881073920739374536689073164957935794009149587890594351461880878450886012693903406746947331121255844464684899226182358794480106290199384572008381058048932111205158392397045413011538376853741443044166718759350235496149787934580286946752468675867369192318850088108768375471054091216802815564177651472115574036688482223350660754136991467941728976833263148562887395714999621947710997322388096599319736778655698686745416041784322264579077069846039148955945261977523079499191002741087223222760050882487838069952232462711905242143252733807154703021973493161126993924798981367511069674960209008603228255394693902867500200365906057786635389162151020468998778212868574654004022789433512700512314956023777929963298894333392503262623002425667023237315636087322719422968960285618464915520806268636676708347893777333371816485689280460127118878859089871814802844373273842765233645036139064710998239825208593902323506682290805328226098210506555383576858261903302359681113817581662801039683050274293869469681089304515790035380023912812299339751961317247677477350579964969727826274323507369761366690031314032160241962070718803658530903159838862781103892951209902758911256776293417149571592215085396517456810900430096903637883618662797838693470733886230000316590248766657800621020904510942764890245372520527694217327595990241629163340438661077981620994830636388551283301025842090549294585221418773424120085884182107647177672339412601711385849506448828277632882613691292950717380935678490934986613936808310889487332200544232670116756821547100249151219417722394075914103454632362292488715774236889672129988625775369469368391510531474047908199617556447305795837902937983055926177933472925124221450505393329894874288349162710598625411170768170626041195655267171910446417842011260634275836075805813605455661123626251052524669294654918976581038558865577936681591235314939939785409205409985864149314920274275301537622995543020246595736820536927397286214853644046737731599418881290201652727014044963076170611399280370495800147605727148204697535569532958714946718464077618489576871499762164322864393546670862715594721390076961513712598622415674260967139055141252541455353403369614105335641341437476864048214574833347673624366928424909980136437442956467878391621902759118968270078906424991305611192929901802225946188664242955238652035600345394824965388635766725620254979307158491907068601739698961499069302078491590445829275714066650517588245658126349683954204780292037038090496118055471361563311756947020377040184473911567555120444583184968909935534339478820233431912578800664992505397025409574299165690401577112534597717009162101538955811828571332214445461156618336835940263642128892727654439380021820288287581909004311153354147099876028021315942313558870602135719404186328914449274314406359249325969732793911501900061540458324124088587298611087597512766991719458170404177393119158374048675783425974241645732064786190789140890814022418892585211752038155781086170498282874698739256958363968382367779091566788632751816269445823257469506396742451247380216622587157835450931312154370061323743238033385388885463990693300629475836333270099060440495671753057588383571107935031041745284206856415183000874385654434221518320318402625521927601107360563472860219181853551494353919246717394096647376206942040477224404683462740541865935816228615134939657472117766852791166706761959971457367447426121857512119807172729164565890444824445932541419937312610993848257012127050238094291179963049696781764074372993034108976133050267270969628087979908022114179402790853035738293094626529962974702953498237920106662326414413216546538338916421782645074026776723225832229561592316635816088027454309027577278556346108230587379597680328834063910161573489099806859282478455602503869414517581413441699437747916294986505547122498764583260670668099883130575294376376066945599139635890801367185003248886810544278303285609894850635261329427295626767818530819099463113166878277994572245189854382655815825296182283615226401862825362798449985850972567813028209083809435287629522888267237276192052533965916937000290453166713796878725161989099364984608990395059137734321241255262341522902850510982079755848025694234318048579820990519548125787574233611728853938619828001008448195866898364476215347586434396197269564030509524023776349293119677300957124257834151199060508310105631215406645391184899630812435924571259687723513512327909663935005091851383677675111700398397573926919100556309228817033266194661850479367726585522721585859372367860089798849249797037985873951138126947750694503872937660629865199036578897141959410777181681804340405417541072232655105281041064746002416343957200336752366093234084826571271556567121640788853344665800410376416800533973375430914633447651197532671983762982654853773607350384447567390570339327333543566655592145651630449579789289370363433847430514507990120821843872098699354159184030379159321446065956533384172811087677505077855342266511795149775195520545339749829383045974183281597694403125682110307365280347868001827340116016262437596006769623487649344501640659684563770445185792430738857154436518594215527559813090970212555064411356026459484236307546016639912981098292372738911648256197980107191616853171510462579195227520129428927425866662874133936261703422102001112230172707027074940719081733186800900084820482321125791749137512425070672030104102358350934209110571075298151289880598766580473744046233822172114639450433619417070921274138095523631945077808869926071407054948379662564077745132603742252295361110102027600308153011568263236262456879676652902039233636845137742658220147261630687451554083762586776416022160394299900271120289136908925899282561695715725210220489178206034026307159412501767061142829382204609006214136582109167046794907833957192752726929492280878566372029466031080074362521009555667400012039561773577811346051159838465419559235731101588281946064976977654115932217794154048014361062190599549504489268057341254778347578886950965877583029836899862064815040808584940473827062297745444155545801672199876765939891545320413501544198350116378991824298378314998601413519642299001252745782316270786256111204514659230529894744813736432946875210795262467615271857736281486686482670021302791530356401660416353995931508794780530636078132349743790656025423625898995147494169295533374709896355680642593232815273643787515943302692781852498546077104940818068294424200438369117563090747376052154639050028637576380072808208663497877450958128539940721156899244886084130361286402229135977236614589378952384204946264524229072132247759892090794748459082357983470484892616439100762964348554549014258289001662307866916885467337067207445282028321395805955429711033549961677191438395252167143576481322835861484143306775550100448284444880025883479481902716907922102260423363506552583786445648086463752992513063307931119709981488938069523035331397060198768339098748101423274844680725497551987456788560539705553263811762468975058101004637707152534295940327498333246762735155485903955762192330779129430859214944429952195306726696016245395826754195864382294138470630991542409832942471903461988401040375468105000156215460376744407810486947498758662629875339842929142325772728080486986731096452871035618708782201092707906939319997646607898087142418832618927272194028946913904652723865242621180742155747622547612886803644347932193275727992688452866068050917548405881533642108890986645647986963375963287185648636723145385174596708900408715925954786178600968332261406601578077868947722357381736899392517805507649354107894540802697798598346999145125979374332910666179748114754310032046494561446309667703149823014321748898829610755268126948438966285316584817538261679686646030210337051708645962819892545595765883098726180855391497002272046209507563271552995213668822795239908536446734785117340032069219258206677664952582284492765321509000711119958492048307638079634387979362245715014207163445839648534493748266059665014708862226414200987115547918272906541026883963837986481180273617259600842659464135379567859931461408510003083002722295776470440462617929231877416028287357771797922148270884942604032127451439164521678066963646312480108468435448646676266062334118874106241532014467870756956524921410104823220365326138487376737512500182455603226658992532848068487008779531319391465819153345515757070188416619202815563262370399278681596351706449996263109907777461091202133250111924164149331477585051764104391880142003566455858724776008646828814751605063442378595124592582462515732701099990621930281521546369602828327135839116918498059201732186507466681609989041563878900942703763958509917477389962702997213237284531824925567395056761943797715612158134279398542381174741331399354970148115202844661967541353463122781496395968575129124406963485289462292595648579902793298850791598063758188750924820993221399520674614097269960626478863863907972854420608695112278990483174261129016049980803506627990159878608251670548066844462750024790484534757385472699399343735469484997524086205225514131277620156161267230404304899032219024707119908145062257031986290632068373612513882589206980632161484507709757976813474007896949961379374577283561498622768583000762957944806913770167561762634750397551001024309827347087555153727743081747326811301842121154940401374827191908104807767974112631369640929991152126867100727112760563962700220792957742028588469249811345308126865332937061029533052869711885812945724402746929496050998981551049525548582980907118882296086275767053948660631188962870101432140846295580100882016385804316191000226550255612904754078960979079705949565892433923209391034296476688737239296442169523559684752057297716929532567702794053991501618396425288635628052033461873184413852208551852809042717923849780366266701624734780920168601012336255558147751248610756875359263249847564629651189084807811942015496816559508075008249703354006773356573691736138407965670717544404786030859740370785526821294964405395710198843184527408830677562786003500595321267783383270671698161909785874998650317750471780499394712795474488685517645756129540970825914881979867968349391425603507878246874816673505086797507218312648878828914474955463939802948674618587542558298329488056468816752860457776953814199275521517746312755264950248315872793747867051875405866143573831635937611072263910990876819462894469775593504399265033462950781286597692679366566760110662742208784235119891315079611400061166142282072153947018725313385312541439200202105456142313569108410903194831559450212553493162873580880182484549999658515604892211737234898935866717986709642508302982841534724991895112897410686573734198755182036595255258612239118052361900292959279140807763015952948545500173426924152145867057204479969675530814407332627457857791750718362185433120454069726412385309011654470801505673135747073509966904146879347137417268887166859225394298201252798022909136437168335546968276379111742300713665806476775405383081719574870616598965514838279737039112712292212842264940853476512155562646490661509921963702000859809103704042682944486448728543227688226835607638558420379310320469195337437195140528200765005870094426276358244265672365049983614684593910039191150341208221184291190949766335419556379615894565228046545108022200094136556881570489663593120553135476331120095069092684429382321402276163252485763528234721508464261567855250006065132792164186826911146861709536308356486671557104313129405775535768526837108386851090461945440603336145919350964670536473648805209330828480819296890338784782806125774063601822766703120441316296567688306048108808580854754353855154927678147622074231493573351181350691983018608769132539213152500960117136202628491060883718496931163759027913428998575729240599283206130318855063791103389595926362860760941264907019813402685545594595955598880686387415594621577577026071082578415199619714947515977092816625808865603032149745039645357653019191844918622164016449525925734665307145115621121838922865294244505783961428742842808700889194837170865970175349033108115958144382314147920167266250764970955996078978896074492824344010210104928394632006195666251332477203707357626697786081395386070367676793043602485802226731141662580004844693756541676003308634165670847207142376161805339501697872006030393771358653508769887972931974094086587721476904471559838340456629360260220828975898324723824772929720785916787253684053647737125301048256950197701391933580855365678676851463255623614254425232633050671769981457380409237992091022247271652856689809459483648975985347894951127570387528988017053267197498282794557424623883585889647867181448121939364071099014554219475506916549097127681454806075638720940578318703063603808585187289941418674692989569889141574935962975586816332806763181421843358117695327209900660231409989150381884951949930619274333305117154721312130522728186893382724050261263274139787169179895476277813725296147712517784087008204263529778773409132094940996847424990963606371810123112978016358804448050191996378395406955364731133583827580153632484102664604255429843245279552547576922164299828390089630856455433472508814385032937384193293505383922447254589712765353229321706706210306272559963908279274597185733071366642989340604798923879615541294182485152205538908970070305344482858961276831083179436664613802241464304794149609747724213431772834409571787464200382635574933514122244092209989111064757605149594170345250424081032695046279939858560052659538638597924456244706680994402102763723378027555695082796228113246293928481561038788663134979504091159208011074216048323482648202268584210541393443011358929900425437093035143555266336135912857281693365493248769936868401634198111115673847363151258238834318365593567612598324959381379172801495789383059238769559990528196017102826364618632738892688351412280637405136565771165985668364887936356220610516405324912094358161722544346454047034543323924106457074419823561386712724545969841538830103605109117472896614465843084646649036516112653373522570064308856152106736971547300615690302989868903887972560772645334151658977437222686044787525129708238052986845938273564459736677506427643028722050158934425591827745454085984717126846264422800772824727869043547877516957305554586950564280416157257743899021165330233463741231491395870992759183268587634844988920912666074169190242787581307439147330755101298256648956503638560849924182754782793512440827572520304158347642102719913274443939813456679081954719693017654218201278966969726192931812045567680525448932228169097908998510296171450288376426966535399907384369696143043193644096690383291368298528225122171122099168783764072845794393951286869274001939657690998246184917901965329884956082209877465854779701175387771512430965661268011611408881935794826499789740963243354649046612787579342436461332902111147167942998247478835432404995223486957024452058068888645483623644054739952643757753128546661111187728049228515818631479430802757167511319053748462669395657359283469749179549724963921390518489455100174949507046981064310006125056144754589143644770600251330002881509270619035959111594524790371423598244163617486111861017214215693286540233210974936419279646652099815825276344856924291830444474640330001769711039828727724904401494367728414234844830975677836128976390678313394076280099300224553992341041515935486206531430960072187481865640406987894758806021872608364388583603352082509438158105620325801770469318702692772003073654676207249196099185527969607027064364488867646423491287178691721928871953887056371977649927953189841427971239975104600049564528049818525263556701445338330508803322406038964829554616563480600082590020745958413537068623045315673942509561494423108318936918170940755746967552408269880767076937084149575747053767194627197560710686243102150050676362602312506808110654234207486787884836673845522359419629349362169785340192796819960395821879782290749132526631655928238984453287746448767160950528419072044006372298951148681022530200545465530069846140722315335593183608287585578071113807132704346480854731005027666954868047002110036671551483556913901083151568666034112183797774448626871488361870940294213706533295487181770584172159102879282428310916358322900189485992673178599274808725080700367406021412002572832096300352238509837311867154883464542201949262853853573884695322570877794390517666870277724902853977570399648819666249765975957195182791677867570927046323315668588264021140117990540348723571948497136425093000150391649628763031173463225101190648099704770688658473495990837935430371739240894048918171200661926849715206552317472817002429940781782628794631221593466848093420695690534914841390726341458700426101156989585526505250243271758119495348969253559829753668851165720697988331835800032232456963867211907266822974583150841023191315721562556279914551677180056553551063071141522987563986796814263652210671103566254118328168694733526029505149727863428474276680417544454789760520496266706035401185485916653080761957596400313844736257276824893762045806556589919024140738291319293005386359288005219179416565077368006932115625194788245944057308325506120804725548314413789829714295617283611256384612097036018439666778146343731021782020475194488409343353289629404015685725308102679709245823957580430907072773212600104538140533423530519333267593558896563706246265218139112060827825828987442598708698708963846307664344976553689707093809819959888249891580939927446312778613475580817007535926318463142490643828801136889624186972468682725424945781628345110352559213415018354427327077563377462520452818113096941903890547448961801968362985162339479375264456472334375292709146870833402939175392511812732328300491315615254265556439331210276071323874659009891383860979787928865114442776414002180759238052860085843662693717824310117234126700052325302697417638374833088181768527371876989279107726578506240960526812298349320529629246303929359774341114170828298230193927343121784660008974237767010173482912075163257232254614940930586062136175061149686836782796727875853020155048450865390297263294827206798638784198210591672717704885329034591629166242462108048477218884113480128524414933656572297601978053072652572085856034052828723934304306131653206012565661018558387883561356012566092652322421005447549844294366522857753126891576536575658041121314436733472161502040978138200232081307546241076993178622363060547706756568677046517050452988047864076969798117248953933404903240931373008176982276648077468337314519257272106870392647900545526083716245495891532138737967644508477424223879575506500582808581007580879104749501102774562618203097357925890559277031874382170583171715743613528190307085750814880902219642748278482712962228878546569655055165336316251807981043710762304669422091520184206409168442997811107400326228835272134725166840156188065952339134181490972726854726817724357813138773829135877660584956099453736856606447574932996269364918192093536481800927544401338647681039682769343639779718736380609811238733107050050555917785008657285755292689276069985086945485930870867469488701101855340812572905364086134811101304182763331444443206606151795268875038549430998056011779803874999448488461716685937473630839151420390276552413289402079301892010916508645549121102063632081407143535589788067175221328777960414000908566861813721370661022826027546547936270336045438428435708445313853699147754367881479207346873764253650930676861860924511404880962150878312033394126408870839328584664065736389355278328370530512064218693435403096740963854207281198587480449426992552638789285526034887684225345393706003213653420272543074668388566836471062768177225103562471334085629243331660332916705679507314016906012881447936074869042650499773377632931485737744434291162147450158563218436033302258075330123565302646480748300903550788220478661331727276671465006072603486819746515002020491033240471997914680291863111966407309767784239510627990868586187780978777799862394193095512578858140757869655626664704463988722970548093306033320572534085706963708211532551134749959105079704647069196593830148034516442946773769561958871326313123335923434118780336931404802317283606523156280420498256700120771240445982269339010931519138479198742159764177445301394417250784880970752520701802350088090025175239167977226623299644236017904838949945954655642734271921833897322231477716734770493247173851873974033433356328063830317812050981838670808089088340997688961366421493023005674542062720185215981005194522259810293946294044710029088793578299713907229029139381440312582482348865557617414714557393985884446884734848844708474643461593995052295385970243385102731047680211401996271073517847396204944931537432340109745172781926978139713401141251687115281363256172331294158170659359935422991256316952281651705275325025558509049601910541008136527484575081371134355572233823240464572730352922940622670443209725101918007848538807708187631013460082549071772029613886920341279462001882292424380616241338062945416792822848132331425549416805481340190402366525271594480592141360539791481652290799854614367631127392407392358946036487202599258138972642790907644338959526005480265462150376539292182330241794901892801884652324976896468024859266408418581347075406774111815747619494846368920670842494270259113624572205675735290105330228347977603497634962459656236826732750347658897841297200163782687870421001113194295509372004268642729936590650197099616814664660145293932576535211091754221891915135603918419495546615930554767683161132452050962098171217300447522893918202066174778027415860064563761371641544586775202962398203914378767279754375711440812080636913844853956975973570714920684364472585048105265167322659844764221657524976919334018886937638552442517756080283884853153267263462945184501863860083555746059043344990681343871926302553483543143765202283930971381555686692846656725546882281538245261514857114992721916794930409912051472072998565033678395602067058398755516142794552389154089255489076069633607969349393892799745882621242658719837522364330591568723511377464872827564731266751852691557433618609788732527964771774723891036876513830694393394890491140998289364875030630971993179426967300647790064002962185539618161886291568334677506605308712158236452168936156220874480478764365388173600923598331855820233917733115001270869894301869022140097357363718539027103303961618834970057249872857175341701215281924496256887140704862099477235891141222600492638741960606367802008607329250346782021019303979407639160190778262795107163043783975713676569275280959327768901093754810166171764739316912567092765861397890273213064618336140429629573627241892369733549034095494103383949701466817429928353669059214342025342488715133403187996522070657048217717398175874153944482269332642083516461878361036986033036699894358150431026621647683626012601912723986446127952080805875135078348585098616989804071097864825330398697408221189324240511144956560434604723922676649936733338794608855846598916948148859909744209529640811125393732868563813096037498100161027969427764445214900412468234886158560352681855658911680009509570005680956032233089677931038521410161153015436412778837067607012665830794805933550580576742497931242943605529244938348379067465083473602336670583181441789951184570653259462455579716733633750019305585172023254693830192825122213319884579165941541855077119061599335012049951604802056873656495685842431462302596493158061256178720882417042271017199519825147947215367692322766751708152852161660459394926440283843430737270294955554104201263696369841652965444997931754731712937410440870387511221746861104028302008447034123223332425478980122070365138977170573110491892064147765211359411553429656132338903638088042109424340303489714048227955781551669464806977082253765858973147033256272506877563153207879124108619122906232158457561585584620905965238687720372205842626382185939647959837043159676425313089246197133513476868928385262997029078534347148672798561921231089995005723534843549460599093412059115478299143036878121333534464876375677477862773509417588840003047956548668646495787421219405704092172320646003245359661365317052360797243659526296941427599847173167164344381662679722228069275862444347277923991545023246095810701007457106195064704958133424496986385343917006130027196349431608583168182780776536977150190771573255570799473758755488051012553195658655239020646707376402479050919840994886897843735073587339909098562634502281315383213124790108691598513669589900714075137995340052484583958299893685768236075398823228474740443985513825346849277757726199922748984773365393797397467278768913846031584015481139580329426610762418273206091184991086433987315014341950520143885725334651784799249640803631443451439640372518999762153066679298267266342235241947448682749268204552228964402580195594433579607327290918204862418599166010849879655092772424691200037912069885842121027532172368599913416904310581825555824237904526826967309338941108741726926553119692505141963720678456336786158627370400313542188934688676138106400013825000554389984952198253365457778331961116709888936626763771238834258718026584329563865183100728990484677789313604535276668910940232521625903566546130751767686437866393693489403143191377253195626150819502803213812584695248703797694500565527582378706921280064547205403344508480907982078053052314282869065768718696529662817093704521158009035241853441734275847907683982963010961063084231006449928818677314254375150819137464222560133262105623441270018508496592028482045380403336936120221696310998377844669819558445127563306478533194703974450790612723742080876518220961547621432489267659423099705033316842375127316960008297011309172084467800461917327085835351522971320042014242909301529233936199645881709572823120291781450969620038192786902654416801877602242695179485230292359354965147806354241478731211450118292700534569306704721686663200226950894600484436878788158824681660998424437788532250846232001237403258254616781896627952466291572178331932286318110986514233961221639526366884390765389939960709402711636592830586472215294993637689749312180925792279148242635949384243262144934896725316972273160179830833698967797925312865688607409012972081491039013149780937432186941595341128734151398730331751450685364655574347266189399766481548339841650160171453486514953871586266248666432636994156135202581599428348843572550098833815526300386568184669184732670042955961969358840101775320947777658073644158094690461556007318797372156955283193885695154652033320734888581582302354677763701524456035316939413137703774689831184232115224384468327054166463672048253448831966660796561678248882235112020226590628133353402850349287263898008582400673952276704576217713503337864457638533385460081610920191025842561572889337294961096767422636389437543032022137062424940916079144614793076999943814472670765815156222696588006510282137582969810793261115256384096972131339423565241944126717707355136159429280639777283705312555513810737887653340688636621907680535884585148745846759625828716906276468432791137651593310012528317701027785898658881417127506776918158576130301019493100404760616450922452255440639687513341501525342211989098930531845414996862003455247825240932649059669043778086931101940699228413837387212309114714187863697251722366386179453886914294354670625508356672233636896859473991086247331809512247061723152012101228248774701710230647919788627085470332425109288029515487193778002400570364157164375815438845403057848888139627156377316687414889750902115242052479341638678666999877255738969504740101174716935543177791226472391854287767199947675010486326164196384930307689304383994977444384787850704226409782898466455152504876639927274801500158339156507039345999046935166116634478450191845721678494313251432701164406132231890440301954377702276388159884391926230513601724699684089692258696074409187269993639471450911839464134352621434026619705648904358076960766867783656369881962787029746632705199754693335272494592780317351052168397125618998307995530288341909643529541602162882747470838367533593851646102542404469889021666914458678963973810458365709354358268598836085332740767201035367845732970507627514929980123530542973315309949352679290861609234718188594739497395969193657721947669185630020159825738713563467034968483038677386369786969070127317752130285050038239567979984484841431028049714199741094051365110841337324386846905406827323659218776339837804290774766022929963371342023641910571778349716873497955895054041787172236872894530763492014183763199426718441811744953501889114640075929794365518666123433438973141307149746921473680033445292487484495829763571506710094697840520386516260101649022293290136571590269815052051532788180409703022003379659232623161032477802116549396374325171161945978097074005813000866953481795591263530148371802280430200653525047223496287674516765276172323769307074496106385187359387760755679795702447493224784955098957767593430545398782670093821227147568110535598318726107968472102809312037685777504607758278290270781094065982050393718257094253736854587354713848877309605781399192318841601748701400619693975096641465088625194447818101273296387199738796153457048682870270049091629465384638577770522415978189034806541145669485212547974960403600436259967086609869429007784435755913271710061487214387348572816978732963235074378148143249086664127276673785900757614733086735294890269142472914466605392124061831898965023456789482273851639678307269124805511353532857345813268461333556078345827220436691941579128169949512519227050890218319284629435578806011225242934586871562001116908100400306314681665730758260858461701932946889650965201087550373053627739220433497850705826917443120643522640882987012248581424690446096397313018918447697728453138168884773793230721104293295717269655680853151009834520363468598774824663288615741150488615187000902197031746671263183833303964374492699361843548968371282104069462944581706263302602508724757877377837386845456118552947964312142164125132750865012720518666923959825681796891742423217801671262447634449628136711272632846557314372739339464931167962603337258540207273722909853734645393580974924046286615228867785449948663793197308352557190478001900672988063173370111775643620712748570784846858937076376288422854394719294158850799631656547622184472321056817992032808164255196778781585219228369367931020894946642394681424083945469512586070833446030605779787644322928898526383302323524227301013324240602983303466714408290582776361441124787495743843885093097920618003812121032149585526978051274311245051950248336794310402643832016992858962865539841114906854396437156345167138897289175509987555443009289923638843815375085601591303408230026783213696733912212573120433855832760537841181289685904111043306799435006518219182443467120705199258549710733798145357721413678205094926730919385590936143874701084917444700761047484064327191306304856424945542165131951331968580571179367335505332860827623019633883026139317677880539189722980839117206883413559670003948954195070112512904498411731942365912689577470041950498128497209254838233504038147839321165093281544246249386523216026820463238543443179779011188447749509327967967316133007077076255352407339601965487390213558185456489431845913525119543088681597986722688064151765868130016531677584568796814343834817106558156761341787331710170990221731909855841971333179467175066361534381112960784397865955694165960836257564387854294460898479163893965895197027507610084104373540392899996602461086110368486442453502153342139641202156567312415385243583764960107745006557512207250234604204022583037226694626839486102800527490431178877960779070152453594503997204040633864791135038796973607309610133023622589720665184992940188809519139084008443937924752459795980965340182000848194918775898752101155039154061690732488458269959043906088440843313803847104445577790175837668691489011243614752144011005986690813176568595670595612352431489608111988524986403741507287478878110428077351328445096206046479850620842765470157995060404842459323044580091554514485199767950335661538653728339844364104973769127287887969507116547905109279333271198849161889676239907442920130242933112280999628653471028930145280497864178891577113243195187513094222286510003384630542658065637438943001161290341720918230485653467707545159408324815738952451786982443931835868890252449826351506495592788601144955819549842276093212716044444721306383339141531610104219187045301555410366139711338257928801631963195803198767593085027315999786036069517425160695061072853961468794145763722161044413974645936865494563487125755684163002631806296741829913707970737889336479208433130561757722816362243114491248556041535484057600794346871575038543690893270151422218298134673430542753321167552990900765031736007168376827891793501959431693116368444437811178473734470883111401163710104689842876438341923370963392043516945861594290757854505886748290615095166474783655604853225637703139101634882171904009225208305295282809320789096438051217778923525169819739276811068926672250952044190583610029505942017807709260757588266117400734579646364521239313799758433160279236930246626293189095265331436617443261999637755541747045534584786128086513653896329694173510790274894277335903749464677291844272896841339853897891216009845440775367754492560681078367321876151403364910802845883913660308901509087812264456988161557501368269473197450927569840115564046477633299782361333303397675485044244428059074626959143335189926983641424636180319155411811590200461479123254108667494110232595453093258700143466177434455897423673736239725255829703921919943333325584166650275215299851800760667366359713191948189826555478848540681238121545576058617673956088644413974827820732468325521535431392227677499227457801196031346001764664037034030967098035189911539855989418941440171488718981786922437976398713475462217783455299376381363098485669445695120300434725469949783760800419172533502553387299673126417861645934679492181378904558382974912307009549602000964738916673405314415621512540782373577027579803817716290521946242786850451314724686067542467558069167373139808223464765562854591187953529940038219906479225254640125906537567831431343393765659049985321302512168181254455539016635871074894943221000033942051802861606086394873855220148262632405802534893270223625879285302124531255860076027373160057723274753547249296179666982670014745174722379550956273477253271719924115338298004896816083484088325544414604512434536210840989182299359788910251600763057063562081371004664162579404512639023717093027085773523776556555364179319283582314439007759716828359739355028690620436428103624804965339849593802622738616965091848951527207831050792014928848900325456342137251653558182069391917015708954559459725586625618692403473014917033496325738869941211462277008149276700901408405845614195382416926327472052326744597661964333830581699877678889512537745315607737196145325052615584882064463652893209373966558146798381015149347275522797643746270995165979518392159205245765809510467040235517409361404308355707550707700788892714328785862986012179583516083777669144860855756234083016138114525186577833226370162793690330304967287732978848903272851891394148461978497984272782690799093011399717870387820222093410783984902138159780581692410771274415468507131800512420025705890604101078322409242323234748204914937697166912148199210930991906180498854519899692920105720817128936929746414806518330628876231392477948795204599505271942416422608945983548272272841114095963668671882495949799903906593255965662109397414314973192870335807715339490171437416852220787066326753102331497475321691002224010520722307119901808901439113882292033131901198258019510513213945297457249371392953832373684522725004212295207331765371941071002087251690056233437225708958003773620505387265171304744164632568062106102267846002894546858644515673622509491809140136968498827353226142138881098311504067334326522328059073062459493825992145128975945470571054243511892093825733023045287679818183008355768752360737169401567904020201008118143601611560182926611572580536286601359461887633720204759788238645761177306683206430406881369017412543658798952354921459564580295611354451099813757031932472030810133335853989254844405852983823838374915898034193408093611156865759908465937379239898427520832952034673806942838645338223721377309595569816583473420481445651554419271254850709934621127371362784759390683505756638835508382369632602126776910462178580154455809609867674116117311989519604409858392493662377639218010676299427148090797341366466705789874669605226770553138095774079599867492724975690245471469246481608011991082557154993121315604569919806722096576855293837250391561907129448421752912932549398979117078920582890005987292890271028740458856106479331568648471605849395201672726487547634032657000206710178918098170371878853353786334720069191685230845140434855966722335629399163101741427421144982569996533799876353622886442262552611047534761047006779649057737158603481143667758705178251563138604765922517185938448769978511966427589166589696819975381858474021728253352510119298622589039423286672266922111820383892070412242803215869615880086994579300406546857045367562606786812668394920646179034185820752552617435088187032025497809228824398931745450321185140896766307158111576388529078843664439794103151370628331957289802643581692822222230021061247444527327316205265877288903526228279955972710732841507064724216599687232925718457124525592420126931393871051222932553999667804707119309080283432010430630200977187346568130198914973410109299153064992721419712885671665441752790105974238733317395781026375082793708829535341174679245309803401672098454648269628870290846719193546137109112911416597392437459040217613272570370033771410032048320037519802720346219775162423169130909874424332151467613937052977569205285246956695617312009931181438592944752366933485138221725970455153372344684407271336729962218525499489051995508713354364225376580001457468012189301145960085005818468715961823829255887929820700451022922806447866274586483527014902390185939232594721746109829556760842775738512491645362179178839289305659909866550896122954948386014277651131659463785238620873218278964974054451573597694516337405782831137181163940149940714448687353545328346667017937188027417518494894659504285596022626055554808165163933531960713114470835672831594322942146646660383511503362502760474403783540006769796930638561985555449272341706627774456432888796137373199075994047016160663844562407438660146237419534951636730198218764078940719799930545336808119475160338356660954102865249528945410968241793594131611791286304138652492486805610419937049355539280377397263985920189563712205814214770974236626428056538502061086801003237349537337583181836887485537918765371192075642178993955686777488600936344527844078176299714908259564697290846924004328619587009086796584783351428269561669734627749109568667619598782399058956480450183820982241690704944930651683736613088717257206474165983818379305369390194316620385089763574252813492068440749649884242707082993341406048291178269062489358407493691935749554189016161145839072612881105919102606559030725399090986458721159178876696878077863615232367804534527677548431455810991946249633666264814605416879987613292023990698104289308940021141608278026801362824276985528146846573869324727016115181171701310969174054618888003440631112207957132468387298722048061392024362009548109108274763199242131146544210530922877971822908269294615756866613982701536407485298346858472965760289651875726309375681829527159129096319366026926541869051557036358169489007329275594884264082086639525736516345844055231127434199464029161783970795380401205017930522694450618817154275674924162103735946248504584413924718473858612484855695858344880482157810483167973963725667301700687235355808981070393926816229415351729160710840960443458808129169963949038096394703145498659053083611244997112781340791530097192417212145154513082614567368067529894564973193353630227108203168451662020351810871117822255435426054682118598191379495090084334410932806673335382412707041714401231185735344237926199834100045522424359774172866897745149704135886152864807164165642795369398317080152128658330822610060351053262968627484691056177477753078110468848854587914194089473495826070341333086927602371413091923561617515834315276507502688326348865508192169266801799139176286699414777599415970102823525787101897181354736055439714855293102665574799302744519713661479076696225192114222499710529085748771605826401366674095934175614959331585023629676865686626142579340202675992481494953065477148418688655629525858522214235371849075457288087825775928908371294003438344820165533240598757817916925098368387344913253234373184317138673238507585957470723237017781251989608827717490043285836666232082331867346258631756655812311133973360253790049258584188608822711566585617026900819811581283028844995529946845524144351641227826245414989039102103586674737974848252722703048578673432588811655825360283666588509345643944109452179150249555209653337520615644203341404196887257706513342260104062233781340295761280669203935716967800029057868014487820806304221955202194617340130994858303609376299539635184221837216330145608647769477512428854174898442331965224344353063637276348118098736012467234711010850962454017756410937908486163840548904086232003513934855302435839112578733943308861041525376170670946214935748560991238832614766970596364209604358083412153360358727398258852410733978330840526870948571322604987711719297257101141718413475763312635001763385906064204557634417938817655057943976800249396499451790049736564815508857366644161493766961231550687731268981495813786828116312742818812093091237249557842927566826858779167051155845590844273263808861315439417300099215156314507732742845497120046335253313599444004764879304918080076857615765135648100114479802146122645179884739205674749703928968044783525628934862708465411756825304593531661495879381094739560298255154901547966794721400585774653693047678724222246336877441476473635805647099020205963302155333892779002235040973429486203109788813815872985980941235815870613342132225254452735843277505996302389937592624952340137592955990498363096532573117809864936033668205918756030086655060624918079244564567876823900493515088695568355681326475198931991525830667812911023977065284571592859653799093871783140830720596402044636103115388415300210748222961872236837765092114413962471003741562056446754540383438983280045419277738834870183911570657540764059452071975687168870224554560698115019343846809551872146596464093730662438064714960447383636668713954128845999507232645643801062624744150372212364686615417180438384911448612990769793034185905753639925172716451232681271937106530922475543178681166581058017408079660447633579847375303314422727996923646150175652632918457668951358629994862846307837589816540274127092113358459549754293947633711201954008988669744734216559171252373651778748678180976366064373541071779779170966256053724304094476677667800838303961413598663056771720988543953844626104675483493787719301021707899938899796443945722863712853934379519175012970951356814438882073308551691290006408141692531341917343528958384662000131000092661439716754446257264461534372241070105299397991971359616133205909130474323372704828338873391403126597337017755221907022453741759520617562743413927723040273741621211160039622963653319543003030199323374260382967828303332150538724059855259435367321032452569081675240100789483343290458518060660513476387982191404664090282925181605630318002764162087846325035649846169680176754413323143766497534915952709760203962588812876957541464157239551696195683881287592640146976307912399770346159511472617632670287341585350796692781435246298290608081963530411312006949884146873348128631722396428940510435921130878796332286860528838078386770138303607241703411126231318695270405299215803247255912666743080933680682404895791149918298765610711461216214389567306084606112224810239892486868752639813344554746484556224289484422160489892431076398266701792725270969823636483596994604253464306946978945341389903799987920157018900075519990754972299451083626561498544460263536720581241275785297644334252164785899578133088833184140414326292993328160805616141966784395530643544886242619991126069461604949475176569697156387974782038739624417591565484973833138902878714277411673351541623550430488520390657331472993746824312608962451114305279186159198210200053883817324915687754719415984783857939527370835325628658618446965358045940443754143713099094781456346178546554283592710276312794200741985961937531076807133116361081781357452173818467406208271152060192635410341334072500833152255312645646314142454292264518117961337072600249828025587595948322429467421706613247334137433081292668460832978298629487375915887340515892422730192545914738594570743229141167654211151022533004550763874999397586978075824539130656063235644546227666966142033158173930847017589264989323968186006399667295288715259014572958923923139791965074235553594351728024799649354239942594853358627935947385398743737735799672939893709913549918633865392873866047405174644255683092554124411865336937700932907208997639535252494352198553237674878750346045888713627479089887382885875921643653814757522884729639140295921891026063366777463238132503569781416290899494910421926985618101202206800468656060917395004047364453826295933712104968528258766756789052106964304224766598297487409528435366052726557912665880770558104672920905283053393525704341772768356898544311145339549261184198153482766332346473429173098054507305095196240747741480452722187545111754452056601355339447500262816369897728933120965682872327907486939585395530359409494169675435034482670959410625000250149793579055433463414935878388350975975368666106338585160744484684092540526210348495347877684849597708208773971864650928877400269946716394418751584796594119761355926969637932828605965354699605518319794245907003290600589498144180440641453554263975537852167743918209493896973368720203481905535858863372830194842173411886253251190485166096153466637914688887889312529219980873460882596839401550329857117222749222470324029910586751092126607474572500341946328144903058646548015280455549155792776587652342073703002213652165012010226472309394912842788693464079157769280607350246668634032371053112294742678387171068162375861676548864273681195643317038116541281540515707314658443222100935628341484803172186596171375538380002973289874638726219076257484112696580243046952238811717267431629964568258405183001743999453767807013838092609930869192896867110339932923319681296254434659651772224592265993847211762708119468750658396195300181045377532374173069739722222999633702790909956466015617629662727881251933617231233319240594787542733579088019429587247109379191738202719716620771074728297876355390993460534486578480623527826146850301979225154937083000062724946739329189686040353841984905998974420144102079743042784205007343013985422927142735467896890501535858318361714896164979879158466476317094260279584155056141089069305342213175035104464457589015899295066569436287137499876744140617229819835812839330663678925957511870160956065339690076694474479020348754153639856337450509506183987033685252906782695996740828472555336819649891898720673046245530007334481484608875999666073264817971988833692208393873020390079331599414922419865400967869414956421264034820851057233850572327199717098995135532839657489325892316991081508288780803297722261769348972176433701154081045701550731142803187775743719460583171126589769763550900967068735271225165915342944146448585611502477361036571456554704057046001095037412436458844622704890621365028483708558223049760474961643487186924899572626178218248859365800692721190727779391852018012895757017017204582086676592369764320605833487590420242174360502200175468398541636669603530988015949519733488956622042082574846195466492913846954602909474166719354730828214514866851355131858942396492058871104365065525338718188617045973417391919135571655852223527893952738551634757170056143385429188566434593930635928344749071104660660294861988962606153962891744370698824055556070189696220301454923650927491560573020678758662354971408622295787404299149976212104957698979177008054997850985357748486617967771511893832514136042897895197994247872327260898592813051955152715959012719793872386237040395608195135681453044927811503301056860106412864199324386313851213477563460652219263071633698513994829146812435509613849428949596795766061638303045533923602096450243703232756115832372481724230452644975595613635610931770306687853406084432250532616980878818293187485084428576025572582199117107561437999231767509602249232529588972901827721976667335269796456910340800062408583491941514901783219608799414316439380516233910330354594916639512551335537536588389608325258986412400577445377035122711626906271402301845550928398510582377619336908556879935922910045716733162419552008884503948398997365797266807819423372839260688624619169262897155523875632482087091591368509861299050095806040255446624210221889224661027407306197979343146597165410871299202861468879749409739104508867392013640755914895012487865615671735377800108225420427352108572372119263955363375822840073343992998547430549118912319093397741327714208954893382885209712075356327436924921046529176292998682581519954047615466616449041172112428148482801188603939877484338438803024908763793935340015268620524708682825811124218681781952084851615774077242043242835547419045355872312399977836512314315624425146769560806447415827595305649819834990230945632006743403362841380017377252618395078529132431789557475001112895994119608709371988895786074330610545113110609793490191246310595832060883296794127369197489247878086809939165498313763749533658503448093921924144047234353118652002859015320096433001758317669262954568302240820101057142614037561293827849284636170564557245602816790725978832490727708955097245613539271893245473310087187754820741410960155927494354342728284656720045286255095108585206592327663537307825201862866590555999812411432065431867507411634048005577084344341654058797024520466663789526575719716990048244651561946463493193983657347644073091128550172722085764270806553179729090114572508289207315110811145018277027282724342056035750556156549302889073962932343035440689202132264954137039978414894294384274539363528659270562807747275932610308194067450678942399437663309187773445087804454835125181025367300936831171966508230064048433388699343926448120769444242853304593265530981143909007226268936932855651742421600851471937805254751948222921110461825732819483579728968966745097293463984762419720331224082596144344326685342926421363796160789639451966390285721747373155492675753669274746762454568175423595330647872708846220326163548951135193534046258508597266558691395256224889065209990008769509484021839248746036915974567354478295033072326633780503860960276605270533743524093187677158566438123698214217456620407860668007274704238391962388405429982070374810404087944157939639085809054584649606349856550146143045964250693055767510268374606922364255592042141717348622367431692956893670012693767732557927993702171846838399267378281444057664564506623495611954429241735203771050258575029059241120235323398027926885726658827202009133769182743789408405031777524366179517963994003610239980910740546539750353733854331462128038421949868665399914095723651826310941086634533007911680197480926075965266658410428315143434121212168374643664248094190199257364285295642933727755776603572994986899588152386483261217441349558980393765381509549348405912587396650971878140374142368966272034970168678380739392463081805479994797772031599141422015636749224250389282145821351731693611701192417803488841653048627966024148547170327042866503563244692149023890132947541878110000290128829869239741753864094781821199646116597723058201429505286443451998286437487288768633069354098564387872257658685255601698366264159564115244838441914223244643174232456828631267387404310351455717047786022186470686468712575382855090241200103993275938949717593590115978144705798033831858858691530020674784496195355248859922445722051712292532211621137359623046023266670886743426371248222469410641989593784792725662299923868082276465362792181765557308175589641888235249018624886119243892954280896348283404687836282378126765192915163823201249965798294543476614690631847833549756614064479325301505580886962933539163343098177884344665545974294779437522306068936905116546508916342255930668428271847193273514169546646278858112462378519217452429503400563760557952282627923817204378248334549286748377718523097580781449424485072572848572451270192591670836639691351103915096261558422157189072722145831821825076969281012599526334967542261255943181244397070878368068309468333921997418595767646875421309797044346478145335826678888766564875120110123832891400409470036661749419952344412919181966834640565644205687697018119396286588322825278573713346122057722094811812566255931922446606292751990775894350995579516784202364555561671701808839504952320947729650562098157642376576802783017992442704961993445823783919596406221571500789262188774947546538427386137331920985450658583459539321053724004375634846416175690452996933574698384393569832353122926932269976360464907442510230582624071128209449134758634930997342780909300464928769560878724350736526440173517628332787646731038384093072329357188528146940309883843737693079261084366694721345258517798617839345672388783733853078730356712902994255988099230001691848114969366269957584055475676813331711182295596685119275978010965228384570889227597727850427585105557367225130213947943410135277308427517599330280802259176530788069280575413406731269465779747187774349530325444745697136766755975302271692913822327182241487464884517776297707643554493380706162708166754778010494696516027797238636028176116580553276136525666053748357057976627325402529984974769341251748033323537423347175850561353510185771488334918714403042772564956077588006094774301712642422081742493259452649287014608232615926281131724288180466872935287152071059956444044004381014607778867172464508440962075799756570318813464727289108711006258402446115936932921048358465990241911337953481280698622018756239683444408652709538453293446821975554501330803149926866103989133071191545729762592538039466437418425194892175089898260824724958686323652105625659930012212119252727094201180998157835247944627061386085010059978673051305780560181482867776697240291974122535341869349335204682197267656097146812066206295244093464706380477922401858830238678681593616865737884215743443173001287554684613893824946827881139426784407534719535695180006190247077631689619019504180912756304907318656038640143936561287897676531032489030645565722052205253400955082629074316043036731371368604907015865526393725519586232361608206790586297776357975790188553555376150512074132348634939202009652997298702958550560632151815010184260020757901220745596480839619030752041752138256523542502726580000481615621019300527494720908582506950568765495368562901784315061101971030554614615935739417789655723238583893102967104011747832417225881050790408449118445218418732415836611351107186874760755024118463166809763004828933654073664686906955054269674160868303566501776498654824008627288192766244200850035731295530251796386839508730376199728259202719336169116671803741769555503359375095366447576555626128386440740207832424868146218693941574358114691954420009630312045273687197908930454298402434272917373055877174796531332817992038113589862863381872287754133587606189785986374496678199934657975551726965851734340469857482373731527236004704369012708694108592239857057716751831384248577142986429998880098874095806624408171969331409147935510573984886910053274995018508343418535888052406760433481549964875106084911480586481451165123725344584522098617301324736436510322563766519035622474484312208602832435438398593032828135023067774026027684252804889763501283003602697720204370802556840548275452080560921864258467640051587819075200008382234225919305740499953248640013750147057610606259730857397679689760261893563584041591652020182766158828347950967453078719906912107763984660288391771322249954422364013885039247686904911836658907643081435917244164417129935091688531538406039234922045709755253922874233306185052474121800370440998470875432939616170107155675097485118534988041754739166603270283453756425664735244297301923738483447609207698435034568273401303166484748549902446647690161317393510359010062253152040845677491434625451308277342665327377145766319319246326148708111380392513922406664105170715803993932620131311352770319627018975687920134435485995582153226950784248793788843980002641140545042840561764735086039324600820676370363187045130443350238740876504140686118402999302165359366534596015157738933662733856458233610351402321172913429981659103121301345486484400779767212277545375918087175999704727248745065599923204836991194851658190665690320039793287234473810926301021913712497969896709362773527017336836237109906747798082671975312636483687577926195593940648295960396303078974104249112449712557462353823377092613918996575517374156150035631049936459397974832008169344643212153386115841090817802171632332100688813185845917483388018018773237226252078284717119970402109124633803538710514502730377963819370150914497975077826280101652444927611187155569360494059692787624042081272293544507899864451782009086668508606923949988577106441670324660451186506329785099871503668430979268977843795883295996636266695953174270962322088040812157122879587278682877852691289605543755984706720402128268638495695399133010533364909635206496615982761300601542068892137006682323613019416928284234940526395847018534303938970395891859039622550676360305497623027118515077984701197554145364724061755984300678788651642543268938101434015366068510013330799540385171680101843668563430460480488112129107960253221386392876924810748251896905206936412477131325167091566355716782447227165663554369474908875956761916863166935903528440207329199277666034118652583971765030974267370085574055793710963646420485481503135784078934089610466965568380997314381874787481457111491382117558173000815246209922075762942327858285423608997160632133591027733083163442162288354738741738943218005761630384776197872078546631058761639982949843198612794711306346652902639069244874528507680931895912202013161749590966543028330783171161622176596361511340879300337998477952242769247682377646149473789040594408160715348057986966505036699688497527579927226031505032063449247014588082839577922926122890675386606450943940342812511933967378522220147651465564220733842747955175953493133411901084983755632414258634927709425494395292295281613474485494218943571463841057502014386709953319541175342959273047397489863650406061312086103464831114597792282319084710618370480554171385815753394937618688139681808606741645156229095387971189082445534542381374769542084136939534292668761057620583619477191542397790000330047718603778910408309263317497584445056580936527129018515853579595026024683456277679830160664656960804181142988852683037995062704678231601105670249021574534752439522069648435332262333627175718530238216576865901311634014279333783453403993791990434110678264586700300940537150699260284863554325616788995861626871197895665182389300714821079249013947688341094573137876413515095207026921062349835796632019074265287191279274932980285257687728938538291044689594823043228057351050713412623108869760408757692194145925202849398578420696508034255607231826487176562090366464132488865202763579832124869929539216609769607541724166640818904002374421556780008447235043751385761364590187173110686818885227321579683391412351084337782916180975079706520224947156129724530109675443397777089521679475796738568666360059430184352266983970520049638871241430913207922952674891594265953272785477449957565173544399336270438889528354612025869972937875791679018943707353275637793702118316911359696552498064857687119904816247195499838668473631371486523302773458308863856522412116871957100453828988187223997082727822576852462087007334111086749284408410100241782391922117968484606977963754417617425629814186625603174683775756095693187100790466474907755142845902833907308652124070432838074081419011230177870407277522206524258444336670872637143310317162019527048911096624817764616436710423764548190257906437980982137515189817323566612710696868971770043350109287735139565439504872274147097215213157041327880151336345764745787854295699824135790560496614439568565832925064460111020942907391943369077309250057559653625590509686449841433081896473611586009781519435979862172339584330527536738886763812914021898474267085953608503330868749825882092374804715536739637482972497684999374461156194208123039044078622621288760480740622521940059665484786233567257121192924660465462481129222943040622615252870177559442763854887340205376325975898136531018689343842907174986488407567055085452821198208404698259688439196764065883190984158597764113251800140695850319447637579457825730756973491319917856778147716780705080535035854471454321350842561701981232234242203816054123030981919472775266229739833354336535616428170397513490148070307568654081722766861149937913730145541053023368337721386657741138778893614684531827331881171846759548523134663944854010644828316027437103400665645712395802333756028152506700918408320236090854969847339033255942192777543135980655749685464721973708443330645703679431570717168237776962892191271034026686754266465759025360827183103048364387053809475462610135431377925458818767999626151458675004374822737306455858145751645535094030232910978688518182282368465979455656087857237449957224551853827722459333048556730064903050862161720585896634532674797915780492948621318679728454359226528499234641554601496373809462904245989667464200979935498215747574339428240118960586251100084184295146934045474085699821643336763866961704771818909458068689600259912180274802715887222700455780373282124138940286295914241669147311186807341443486237224114158436198821257980962071016406612148241469449719118143216458720811102792546232171790325866231500987351840280399549793587298542176703600900864280966455613505742927916448857285289892055429747629172797478803345599720024410138917114353028478882242206337303180545537144396793355564120263440464765168320617131272704325523020293216337154334090014403523171771212452154405669470422035568498402541080611459732257893862870141687519339783039737973940869181983159135369742754592379613045907021451801187804564703105487513574042823758373266192755142077924335865586549841674201539351704102980332131960778371929616110555987579737160739594573273676930283650516441086121472059203287738985320670158743632301210752029658234940451254956206387677810711104806850330650493292719041765409535094055025790300235896829197169275472634233058135539913921656412403844090874047152675223790018189190765448271512801995340847532303359150815409967812483351116652477078869123667931623405705282630645802699740888039410880515429325420743756525776079139134774444462613192708990701333407485851715895106118854115956697319816652329765029010110700206712676117348996571987734610219834314333491112315741948370102449509801255297782554836564182651083318508668266902566130269357975984652938914879944470641570844281178437816002963245498113484336456867323078278615323348385903031627722138190124488227308232358232373612493861479154843700951339517350069365783258542518949957450954708964223179193038701455488732164086772573555799505803847877845487079385049501167889874719842661121377581394384436861722049373213423981800707823317031461227816548254826702534107966609445738087966436041694696156953489206635238889957228390060509113738467386349388923237576519889380960823399061586212209888736877998752975912871622442506625028249350153487561380096030695888187044029941427225039728906211949003076839946549313517485195979658295923428412486727183043308695891001820305586489569150961010402136840341587814161105541887928995417593810954025823698706444445382996009735461522513143937706059116923423875101373094879707149800379429625817981386137956136038229075526322794772407793423537374070702343058228800914765222045482541863044460989039492578143360407656695066010650833238971270485116377737185667396464056292136711038915904551932726231618980056707138189981412434655330077335012832783643925321561958002215923164987052566241246946966201374902323895221116156262515079494273743658562088039743215102813003517493279093381795326921828548474828007799650804171828944107768008023603237205541101596487384414909310754302565585799791085132431170426865536440590350217094668832623677021544158877755151757836331247065444012831604723799628882251264271436007162768874350984697792339423126294638991279659045676926367073816696089372601575122970550931529253345886290690806666877625479192461378938020820466415476181048469651944640424720099038877143134618290457681214403133679754240967647527488786336231666616030702416341059570646113744563421153454762943588720450337991214192056599974785906277709674817187594711167383307973113832099540843043274868705523139395475373846324602837302565832865900427144793733321290282485595068561929471371921264929340565381269285652819563576710627780377259953273163442823195003426498846763232626215112678747956738028576954422117786797265949441031853214476250495824975820385789261087844400977299083936494128380428168950079753814326821781982254112945529262988725475703443105977677380668351072790972184277169504623415986942166505976874999521162587010756550028648681556988182159497430274562743835539682098593927622025169503971912186400813618023887583880268435067544709887982318821353717033905809045970500909130312433600725637544789397389178317624095887235206783375637356852116312344456950544195916809932940475958719946296600886106484874602531114648397297672194032323101591246981576784452537412127266476908888929822966937479049657528717560571912387026012023703017436881299657168903555484743222742244442688838129078536280307551201223735998656578517108326881656591356315491568834963392621849931594019164855832009296111106140700779775085674844452578331558490370550982748947186572547110971706533886233519858136784476609045552324950123891273739040918167506390389086117888003091106175576532620037522842656404521800259534306417036946165422245255125413020385945162341990921548873256960945556706527868058918810031624596909405616133296866039427727940805896032156540348491760738083172187385617281423573801099291605822498407764641798169764848643558693308335766151149252355937902235448205695243706715510531095383346737864273788697926423339257476991014626881749452595894713868102057126455090919611745395102883675458813560336111047866322100466242222354519752039697303452304362918814318244821358065849910723755420768234232057770253055679887015274640841499908775685810183670608216086092369007038428257127967496845292942982451667844353541642142778516121439865084273020685053107918169339937029256201987831499737416182622756052341582362679930473781296307832365484604300002767274010236149274307957110333667326501026637650435997170128417664359358615408501986638189956763162078521734960837957008992126202713232141430882895251098499774920980715586445248916219548432914875085902396885231006499494038104522195845748494100275077647386083072950236113068053551837437245498179019087529580106012163514575890505432623068121675184934076494190400282095902340495449159201718981682561659539928197748327474560103870591778689861652443357949423192572761759617976392617735537886043367890505043383862127816891369120703127309686483200843351480750532454866345919307330556344333706446585237880922594728305721670801971536895821498301577933915033896576291594736419977472049704248406475051949874780907302502678349561322604965031123404875936430800511137526143162366330750864004522514896003258816285039034662482524898814905603910333997408290833238766531267009766697386351113681225258817474818260908860737502300778686720613680947549618463752147379665957558303383294159844627903359602436360599003245209077336917613854610961590324451985483688242642737136930735488663444650346435983982448611508763091503843472807744976562888312684909788677228601438594940717393535949652673076877254033952991660777655181195545358274279120744385875752944301122665920775578860095179084403916324183997655310999674569979721692479167583040110523646952646060514850598875399073885780345587592975781925540490516013320117924669496283253478008171044198385515828617853300934422516244170405032819656136494857668032694239060858026540475429562748791548779367901254276872200240560829490503222138738283693631519092750388553787887563467873674279250195769496615675954479351924692825733956283375211409119334901047327170708497798103495476746912661811940392993623620213733005337151092050058839638546424576970326085613615285024752838408256420311515484696207001830101707219590402354401199643294279811947437554060683815847302351794441447711770990808273453834490469416811641309328496754796058629323447214050935687589776944076749085795641896938925418443736179354657643576069747959738025362141801088672551049021132943128660268364107501589394385970073254867395021182088200883494486161528069086909612393843106506138811139965315450149500753272787950503227519949469119889133744632833542190848240249804281546119644342092801633012980365264694616576001228785451701644345359810661340083645608931964344105076506514019691533205388723388991827534141021060908121043073411811340571520412380488671059988679384502837053532133857942727798706617618498795093659373162269661379424559226863662732049062172940391482340333514232569940502736740590858134548321502548257129753937043566873777218176909640208908647908505529956836251972460394232307419715362110308975237474380439296678840546153651886574464534775418984613069586988478105598703115239432451579474254588036484249557984283127822302345158939320778766282448485030942833506606072783054124639732121222920421856000892656976609451701829115444471293573353349530056567408061372009223107812086040637947316619570738512363976724551611016353724118218572578826375024098557337114207381242038860326153714378482601509839762164578576217991796653975369689020888577092428709744667857998265192544297417826805575743805713524289731814422615641194374401160359851781401650078003070898496916331600219464846148764465370922817881148869236215243633607149359659966399913135748667079886308784887235321192445811544641338630292193465232991354697645482675926776720195758795854851703181145501597847161401332899256596951231926176600369476921692622197951783110092375596231942811172010090932295496515661379964776568789750531835373658243323838909059986027508426211621802978044470806428062393524109153754416960079405591449152136932198701742804929315055392731940357207765567329233737353575770604437675953307016589000435735737387660647147645702366280041080372902643781533850763506274610405700124888905146699726948324856044636493406487057706372737001036110646036643451084713755911618634694758924629540129442566010425921787192332480066543080515348110293776008053487275182263916450881038964349268309979238086785579282776077926017993972178624576290526921520266556565326238027380225540195169147965537777847993337723355408778506075274564752823004959396924770675504700980542173755385653040541898071153293009112366480593461032546003446648025600727010773629894739104083299860729763961291554797437417363907226643307082186598399629596850639711463730117702570461318230594558125718454053322376158278385101836040171367816018562733220430122870711694812847758528928996180667364410104465396569070637516401144011816820576142983348210057779221497457217542990476192395174727029241279959026188612568331827478463192689891211354018792145270054879147682873275556541966295752322570974984892432769329161202098424846810984410673873186655191374458221719140269767932436983536379161729160855554090916421559515719488313994849837484822646397352672836864179276819572079323987680010618986857049042010920027074940587776760682126474600935151494992954253090785518385970078298172311492692038272563779010251624616616656685283902392367023184408896548988654840466222932860317467306567663461909180883624772913088028476885093477171419652729145757954016510988117371376583785066662470527441793124812032862482377155157389537676067372242450501132033867970472959235236757469169752102307716748809131776275853312336325744466096548928755652676617195436347779495819294187904583053858938479547430099761577350521622373220380994504543605702813013683734688157126298210646312152039573956565314471619768346513309701501858390068049368234224749280871471304358218741410618757549304987628834009380565033220275863301327700455680091406772157691657652668122495543587053861458938439168908921697504845602234374559163771878991733075370112330327227007232991822058149336648322692375403210090896654927891021567037194155756787479453741346085348210849538791996668590690638893994984964780910865077185105371408660766776590424921060703521307391151496027822147152271101121418786476609029648435329896790808465459444752925223504890158686178749897916777218857427068483848907491495551076136785597721377490743320994802928428987847287769123390777465285579950954847864697266739699959349657666713599142904391929262765931748048545990109337196364114796182111580715040207683383208831506444027712597615205719621108561666315788007596780237503925196638628461855366104160027458075768802497961496661796678704679482257999142952162229781325329203738398320075690808698592940056981060357688808182162812780154902992404753454528040773172688984373971906820073159434473694046338123548763191190468228877893742517322017612788473957918411586035228759924489196377985850364274995386345304073506708686181915643809071453334983360252666001923425567277742383136437485728069069796864118009800397881677364975683221301402484910463662427362161893907299145016418959141730441104772374522182900062697727214165518725477537708513284882713780228455157327798595166665362325055822518242157939663984073633991802430343702630922584544559237028750910542071973655228684998562130883898009360888817137190241246601896517201771439534411636699751325954675397563264431491284796815288040083867844850946580481119782258964777656861708084618963622237374888699880979139921342187110684717488184066217919149683479790046146578248402826482314169330871979609554925495237484821997678121542907778396446103897056188194085966384220708032111707471618777645799386044533473365527089784210471537686705610842184821535541161660432882554291649099516303085555245368506706739750389109660390167037424133215694081727066150993259038030004121185608313830498184846630411759032231441389722146571730844567106774940483611095708516927356809008779298271543932668302273741484343207806784971079246357781476668314030857835373653896869126432806441806576393354532905492779353694037802018144035797010487216645867865499498752960343336054980757522495051672171043883040669813287786176869649765303255449690167970263591378295049492099180963630764994170341427583531725264158110929376045080698430974934221288981696589835691404054303662442484267850358554504627111286494218285076646717696164151343140850290498920914894906948385100613548600158920302780675930943911331344552089379447984145522023295251528769701741804109143723704569077537107250834778660714796280685139726808383794878980172731768538827662955734437797064017739524873594483844817195386764727596413263556975301534764412023785638626023134253587589783815083349884678737393844452474812505364615948527932245792396744796862002375066815950060065258211137221175840912224341618913485195850569955085143663870722082139451061721980453700351374431557557258319074778487522314662548989846365313222288729514290120406014502682022210577595073329618896990230406780672164058592837554306368271891474048500612687871143501274960570788412047980524353445083547494834007294562462130537726709045423072245214770384035129442904898682247154957180132196104644874002149712550229521159893951560259669394145397447415568288694527809228389993225586706904410183317389828246017406817656658684872727736987623105879893552937793733571086151628891153976911530146155909136353620536796565800627557754780537885679918292053431152462800638530111440756054422656506240703747024224088894137688534834902810237405770861882219320305562697579324749315354447714109174034602651933805110340529359329855375665604429730315135293796943001989846822596005066033269928284586714220067207031318313201469935027886082953793279100466934380668147088040383128121447567690930807973526452974875195963173601870318601464481214718356043837071660214930653100224656070493813788268065645210373544617497018332601627913922500779076276262599768566965370132943260726257051154913913835785411771490255675520766611147507592861040162148327977133017430129972811847385163752795009270117074964058037294304364348233338519920179476002086500585622338167642150640445761092077109501459254682382094745407730180235585030592022249719331206738670248050286164831163794179919904049853611207998631113392849996537267076341444375295657151828134739692843693890209523901356060699799177031162827536179481571356994254663365910354751027073757059060479861990538835099736070864807484392078142483471258945687685180211483280027311464658562218184966082010310153200443238896534295642076296185813369984440544144296397728768443059176367257112552543727285132407414437285784013234276669728548835370398877125106830845284821359306838488476455583362848407392502513254556844091831334253260262150039119290450250222002212320455139994968043096105820977824058823570229418921004897859384140922937629705758507398188707543237652353079160867460110496832138803251757010061673473343664167462662932611704406838176860371679094249434481774299904584233495810754551890159194376505403387210054672710119797597839504893941910702460765148352529255460834686808161450084990524321681439411645117533233534843331497452023948844280395466446828563189817494153974954812950691143372274718831879443759503866684583181706313453932237331244615302028985068034333953992782171255591167595883657437116053802299526785210317161774402047770687320261676943899294483563839435433203451115723107713480096191406582803520947523479019140551514044402050127703083511903650150333170545847746879935331771336303279269586001591168530499675111961501026053236547860250159757633747185180349849644902942272542481128634719568761716615118933155216841976202334187580762544307863256656784181059392290048341241437727391710800467206090609976311730379272654916572107013135724917717444830521497364349442504718838986266418865291462518571971398355441692926274400108997299573325198200805554062994599055674733765745417998080794953463300807212233318690158383648537450250919795797495852842509799916549278495724538890390789220490141324086973939776937487457798786181720227168238143756619549010871290009268889295401670648959008584369786109042575171275774095763362712747578649129453608615599654096936448606566139044636816231276153718982739147206096620884386028584440447346150326863370761696211781820636363267641662975251008307454041661860113207302614086308400193999582085214790101142158718892775341379709143063002684047401108468919274140034018722223512628272639764735066321353947829852687906794341086870746315318688526302542915189593639144672492716742310077659007973460837158971621902064569937687207976381288840997141503303851613357378653621274406407111191222899830803481595940448369950358615434495957337119122305465396157954045892974467800130424666421242917030967539275730023796841411578802401713272087320479933890860151908763567970998220655228738454674908811457824086810161825791015161269750884446989857476791975832648089157385321958019300329401173200148419447420808428462738769308624763862401347196661243177572057391202836595541930139372565703022250248867070099512254477220487110170628859201284129824358940934838811200508171942961738877170888999638925869150066101899499584641892818015118372595946214965965899571525647579660621598733914562476587799193122827928718032527207281748174006525360321394154632143336125579042779984781976024092134098703690809297914538779278774788873395721921170563933353240151466433724877089826313821450584270016511917922750585432690242746703613765648573883846704746187574939248344735962514700840278909411247187373393490358985760739234279622356507471502084826441177503178961097440933650138686820497820254502328534922023865303463050457817846488733474396137819238126605200377395457082669656591243993421246060392414773315703782563872691099883821188154143094924636302759824338718909791197872654485132656839943771667496912670460325116895108384833817009316287033558769975469305426457511741045035731293247859806339303076126751566248913389895626876507049330137754815680161166110310940407900578089108203295432119484671787740627473182148786589743337868057467192474692153189694284351745464227459913520860827440731991545897255889488006369984555018485844707450172609751631250248419563074134467490642845485695736896121474709808992616465986112699550624924071032911584651770308483081064325666258222404658899009001254452021560586776856428737212836306208830582934213789121002183269919680624851032497077226037434761170106017101867924346550993359360274525481099095898039096801051975207984385359790308270542386350841932569974623237551891899894056612900107285647287319312140581032271073304703677526913635228596491517231373167685452925624226503861556844400005230885586014324752276177924574098884036753535255415947550882972616557554249985846450060786252010035713963009920201039047923068431365521120336673651513041467560637962977208837592148471431554849680806460031923380354393330499244725684862289501736861273303792834113848898019087028742149157298899486600905041317395113609009272870247564817971276371148394867977064621846888482830090574057937432780926801036986536647233842553682402732878438567041590820222006583858043005098590133894108336063372622283913575082172461311045193075726927867637500581821458236114718573859274862384731109051491744830244206853737478778124835231626435462838504613475509118177593059391964467947212220811067028622668994646618875094565512583632479699194225548732549411429671073045117516032126192210433217094097043414445823499932582360297281637178089037919907295191332946005346481478109391650532366411737029831704423475419851183878265877301764786577343741087071696234642371716101309503178470787335743661862712735732214442291699297732020777831488459735006912596862596195250128640495565433351183540325374597277677873086005454349065078051803583383412684719437531382041156840216144662758595882328901628439526795474449624675049513674545361591784798546429750458769418633560247932485881597851473724301834573237218653455580317165035003340931285119753553976819194859099370777698771902911299609302967986153489055447200905899799156509255482073070751497208133658515260320170969217367494860259025641386654500832288164748357474667120033974075937705560677023426302548342484149801319698752571698431597233576978036225597622859751567909126607919415230070100269183308055147420849989199326637862458395257051954110642383026490383121508763701537664232722532487536899112654668923067414016929426602398703248537056974072923355865936926033636963360188933270239451839559821167023763438543461411280267945438185187438228736472291327207765366479411657617108575035869903462968835671132028503508838762989391085229118492203482497936277894099662958158316860597778445441710986401572355404468335823427838907865222965024591163614950404833949600109884875613311298597546124552680224209732245846974599692774302731032341253798103368614052440806266144650331733070915592197800001466662551211292109224236691336904541070944908978411487010989039124742514599043688777417005089339596132351875076730518426188613171991205951582678295967519585734890374701610036899156401686312845127485760477128236950442456041295342489897986500380180130692451374042346393622776564082235417332581855752014324771779258556363537792774549301695810089349308688854902731662426579179526309807023505488085715322735091063823233311552407252740194618096258035157136699482088625627009010655425956633820265302793522365549001985574982722711388395113037435458593709185926374919456402236952450374389148262877553656462665819301469897779667491011960857551129911458633663515816282366869276997329696593153030211355788008639671726072294431036560925128320910834288068110333252245056019416252973337501172370624234608632742832550394443793099701960497623062487628010839235581398640208236329362339102350157997737411242828496758225895722328826523417730984992682763779224448872178186442337848859610942392118893105374346536397031103628641178487181363419477530658744070688780583899498878187844389666015182695787918642521734709692459338545219542983836202971479076203939737389514798888535617775877344377642058745707715593643371475957101400120924565550691212642096282343735822569105863761776086482991147068412157155090192977544748691381506390135253448758509656806493992963881556656050862609533054107737452535501217996836330639364633377759304776013954393021946484611490742891462666520037663147201454479411562754164659521234713440361422778789832806114180049158291221402736075836345709674886700441820922971627441605491830559987497375999140808509804497517066386609433311083203859302107199539547299460948686921856355500239251965477802674596525919560384672417723746939495315935757742498916997244129758278635421778445351860401401511359136150322044744833908397234858829919245512551636548357956984555018790265875189462909207120324716220505471684092964858678144302597161504567725957108236756354030614043027922506782586203559435574311016248599107440245711110040584357643982501558832168115840569557431874332955696361720158876890318023151618256877314291180758700481216081051322860323420654398945420569522168608657126050320587329231129796059355824715659885617501245545305940705234322813817504119758654674795563287465367179210473433563064820631124272934275482297291051960140646985713224858697232659541732065734447827016609510867843862224716174974826554408920451144344292597279720995006087425268386692946930601187583610462502704700227773945953533120192478983166079607048069121138337582146073020623144849564378154160178086194184251236057148324340038041780950038256669396880927303101872857174938050789430960064490830228751416377501576915256332669958842359814782925439608346969468173014679752222391310563752916428618996172671129212851022296158870499628830858857724282172777929150508517088773311817029721182243471538182617367255783560398109579588192382733049211196853287151218092416383163299444998753277169502853851903044148288244117649692437533104604451634044069625569616718310942606015830014237351552069235246112046173507941034028941997057378313869699806908278531347445397998521228116906268400307028567791806360925582187417092173050837675352411706995902772872485552692519211558335940919289127958045351234402296841258237864353659183099792040149360398895165479593196963103650145894267321127648587916378282735302656285146319090375147275923003260968337542267141586177158375465289327117360486424966093910378332566172541100203231315498291532579752873817768752535989151782500273022233805845923408154769771485287781616132062870320656242033224582773977716552963339675183966044000154658444827154870051796577798861429536974516037248749699038851473581306938467412027952170074405215124473822224313067843924591257377467096794063779215676474608038247161683315743901298248523472865100229785707324285447638871042713033865936044641875756955207556103077419862675369599450777694622546267735632034895100941552117858417402558839031832714528371817697604707394810881071838220894228340298902372603346073743326924285052691953267556794763638806982099547425017217520950387806288444989163131331139638379527798280308353313735110303696573820388385388183548075284268891624197257329636693356224737142656877207466155115757705987906058606686936202204416224178733432288632027503439092262810951161546654479252297546614455560685784580154338692328343663385805254905058073342394247635055955339946834357923600628299430223557684896326627909467582458292607590571078575617742709166823500344543038932133073456703014644453565504065291838651625753250958570269038392647401492354863187849020002320032716032818255848850942334945963512465692544219673431412435992704013846968323243165485631240605357883995284268459248502160169642316530493782002381921570732079465063849475454441101855396657967144918030894442218164126337712652375685416299412608548259520904473381277541182158223816595735111029814108824031789509232894214612924994825433579254125232917958212095303018187240022263951623258614468986347513944845494622539393366621775008177678848833771379343696125012782830736732116483542281346443653656066658418597293369270373895254025033281514790005922549988139962710695101665430186613619338872402211521029654022235700740450986504113271114319886871951719584460174765785250961759321638770287425349258744177506986096665998739597261787101767242534764398345473919757387928215997224281915098695363222935190951373737253242484195754310159878900317086629165585136414378820221039723582584883664193403762943720015606414588776163620996217251967008074565229384771049669850593662795228442771081567189581901255290412373074628370197358392416232874275037947738744934203635734411029340973441971275198377830806349357220262797817710668519888963183130653622567726009582578470957297275496780922572931083411960456237628586248436950781991161259154771971903961181097164397102392692813992731712021132792323146691626193061988956465306209025084743534321491969485774810553528407957379950282726186340542337200982217599423375832101558464460416304847836010842788300878997606815060580170628181193796135451491452369714603824562469692216949118715670497706433991219439157849665742774778485643023635962013554295758186283355882195939027719350410094184452998418690552086447275651884925191671871181987085131815629826867178358202015042254827842133678983316164230901484781042559650163722527464845736096044434187151787275237332614458411527362501374983836705036802723274862929206265137167457060679411906019608636282613255382279876693005325809650762628039497061924037001542313286620606397931573261105415950572494955114671962291112436989168177678460168156746694823975159685946120510095922985880224357837529375431584209224015676792706017542545688561037415073056090333414445801029178861194044227157089169704038791035776103529212842020029530302930695426613387896559466878261615880334996212782949467915734961989479517350770718263927443985055236125537118038658201171576632861159635017576122613661893899243061808604994181095746691462101189977812814081293386183193278312106035448324894888959890000054040428133659859458499735301585261735193831383090400713995192145237831870798363676167040834839645031073527745674497887911355151661719631639622373713736317851319045322184240367989491764262475768502422609683595550263036442834461062546759807158712446900573829064802226411664696186177562357995920435069688928430828872358870604382134140139947695359631559360758666764760942614350957690101157616541008714271401875414385968472411642239645250494737523312987613540580221232576036909843990832937268591294545266649305918441523174579681926733764046327943256641721162810558653950680948829030748477713778246882407366716694118885451309298913302478916366365253958046194884895669517126101683334091109718483291555996302721829794083250847703333654035580838161395581152960828856841679588725660737614279648691286593541207026433848991637851371219491052122676929892466004379790678847513662017135109174583487834344089521082295174226821578761278508032869046106254830469592582607106195338184807479951384969205254848053406718638027491370870298549042908017945530300559789519773989505685496819095108599343705572238858141057060550676538217773941645242496550447837032886803256357971365577515586056301619208883793636329257316874844502618773250457637601042740398770261429949159689395393917234532641620765759272820324458074399889786149949218984433456387581983683684438416916138525928374209089249841325925414462329768347642286716376095217116333581013080830142306588817359447290494616889782606404328335464175308540753282313679193956626097597740633468073864895801617155426753750373615754366228189471947370402434701735535614191255706821568782888171620586858025482270273037604607589752481101290182059930845836268686263633897171457457309834583414071465335398948823484123620833628858638547169490223527033095670768717245329045327358377931850339786284897858081221009152342470901331244788903621455761084595884297893676771175738338894326450465568890492952668254915904697204089562581847637419331758031514515320671463513179645119235010200096413402532298726280290691164335400103189499233418049400702688843740815883585594329477443216153472987850337609486847105002046013722328099720802911632293221745579990687103396879599179357695092273209272077051143869695960031342178476257274441132737030554743173865128753451581087339713455639475741858407968770182704637727616140780815951367730195481869836092011304515248787830128160418786994196645442874960898493219545094560227481568616285457484669493204167785033709821691292121111804948934096818292383703397266642343062673027503132363109771963185647567908242455766726323100122351216843060174191294602894183093631082601470766847074117428822624955275887053850792339703241391962766262575533187017323602591886930073743932464758205658186603375535427265646887021825688449760564259430843736462491597613810176058590320295325674469350460136620588881459842327055412242750199995740531742615616318357383811237540833416540360774231034006265056975390293521487546132180238263074097440907853459837475845978545308801412429626010742996519589992805283936252162627902743173917642050895685552850948185690237626759850081470229776367040957416605961342923386248381992363127428868042852758475862703227738080556408429330794716740794718650815240423232938630383847765402628461626964538886233578489280374971736720745889226080061458020262621102879674725691908767883258428562100265482076434986125121698575174138045089005312912834948018587620887898031260495758227279428095777144441086701836328559233447793067054723813072489699098695051878224197439828145087330499639129358099192718100252921231470943124182447384971733766022762703345633341564940510963041951072063771878278535210049530603276286791466020738691180948626991448803321041139414169802738702058507882064943842262254586326143085323625765125752008414264402780498530304606373970179192461438278052397862637090597540983237866973872376129790872095145204656088739694047831965491182428150711865329599141762943762228643648160817494745523412882128393603371824536455263441004830605368210690078152600331609341566929889212696208610656892409319325886397713727121314680527530518639376055077501939080392983198769262919860946819193240699917309366468962564686112846842817161846442942395558113437015251579531364498926708988597566036793983192829165864247307281613933991027509074302626878629230980383247936210073469685952469717990189975932788851156436688395008803353985706095409023079136039518537960097225778563672071374119674420506085542015484798185136662234873037567377691648305345514969735048099130002921369215550650392672596123407794555509606839948098403934941113964488881626238093980754949251368197148854672326368462511805032611376811861925661779340285990153417319812396390965223831838266809686468228009879615974435548916984429734655733722863326285416469191748115775989420234096696784003201859880209073907340053003812710643188749335784775936955621966089601142500402513658531852637069304238419299515302213856905491640183328826125224636054688272618338212690232161671623376846470253996249894065130227794676424780866074343108251578856292750793081438817307819247334571711641352524812491062815350241536968711420029974768967931747489717314403317746406653690170182312029488170355337704504330077885865633684615674756532973962836462774981130237469206463697916145358547946691029490619369780097329123857473292361774003578313360663678012016731864839717165253491927151281944154786733976410072525928045947227989636301829343922136514930048700180415953139183659572541233651594492995877304912171907910128002438005532218791321333698519974679671722622724538106224765844941246120369875513810613207421549178925484145219586300433567357654383062165431235830134960850548690006822273719987360003892241784074727067596372946781925318311181105814730495774138395118438989835055793100526552448878393719891893285551128998738830201144935183885131302982168355682826585865046278847097726482177643078979438720536868991931374251229882306669165132774046928460666665940491842091131610559166526929030443339706037733125970746116784975177147098581833265834550179656154049133555585921283890868162679043809859063787720264763486076996868916954149480597279463794749751344105245675172484499274925083849628304125399914639254112737457929024263527577333539940132355781443697524962459820152644310364989044090748871234227895115120362928156606229585671753120762450224618744968372228762999135432893900548717785160612224075422231941043623192023388667937548397011023333648062122184943703166131185549889787001453429169725891069750379906623331928774554673695419200062062722561619738249074680670424608029394115454125865542807543390857058156961354326267046773540462392508341865990752519226776053777030715038151930680781766295218848566093439932198042866512254094921540927665773162174554911149870334982575946356772734480725047754856580054524352926979739393916595765315726625077726655339739542422384499940637371571082909806436755878473450805784469282083347877106634844107911525724126109575441811228293452169418727295365234065411992174375244858728460432805983836028318172192375434223555106261650736014093892299215650403386366747980336524869451299915066297781769015882148429420691533837835370376884678230054899076786939482146621186134321375402942020417475320566191600276353545775688321192139995361586833929256353043586476746689515043187947210570933323888241877306605233546275412081973426422921348780294174517746088690636599620415527662133275168572197660179087505944579560571367921126313868671558379699565359413283426191806126198364523565928796008864771029126522927539233647110080847289125009579299210387765452813492389859419633460153722454192871078269837915306610953548664022012451478240049139017639559974302230423368942730963944046291608802274943885855999436307282921037777159095777489809598073259311848347429603769573955464150744275262286052373470257914573888580888398012687377899692114836164077733837253149550125823651715046517769799883757393732409011032284628669497532797431217286939372663535495152721057469640334483769948173944784966522117383046515892993272311945875898147461371135653334902231105320164981094828052505218946058764228984414216613518262741183003072695866918105533799464705029417131072929149117254162030293845132867485095706799562683416473893228773002718407546918244862763670907778585433335614716504432323806871518182037789796914523520216368301817100081684258028916992645992970951426365085602264391291967816926127916005366158641487855995707498364533196768750862055028444265845186855430602864761730448936869772328822569213363731211045329525008291126132275520780959700003326336840315542039445092789446487065357689149809203344688932354666930890386676929346654200521565681933137215983627596151902301663224950540685732217494917260847691512328629862314647839789127059172806442383633548242001858091406854611020545259204994633021837376396281795908669379843248247486588406115967942813591060616782209983137527560638758544442728871211342305031626346097628618977754672531311875826688199161408067218117228536196298125387531132605264685817379387493960121734941128546415374302412022739467998415279095265635558862026054661748243206847685848860739188486510303385531263378705702799467512274212150936999034679106627738366997243255391394563747921399549992021033140870568372076014793115930237767720167496258983785948422939164902466666975116455182496475176569913075186498373195574008186304321401769028250823947192682016032901595177584709139428201621122004418479054783698689923892152622642220263433533545033360474784654737442410542387796169691987242136195805367797234659761595204158438156702658261034723496158098460869395951328620533916861825933956385321999954349086021107166083352972085829383339050656335471843611662351740136652261960414533993864621402922410027956110811964263234938341940276424938125818591816900278822051995547726711053228255534364191163298749648493612975665433688276800449719522476381893760541741290035794389804670081184348848673579410046872460798867700414762879119691113872365173670351116192587249409634284858525031329983031130568064541556100416944038661367188207460655433861892974986610820917561287254497190719109542861513671425328386903783133525265873232606318089186914205806160809026485391293463933147722419003530475787883251683253542766557648478768995792998419209490013846649635619052774500194730291913170538258157741681601109464244073469338213366260519075506554258516787039907770576292283021446357195532856290021610715086338680405496983749513228075699586016602260782118035433187806832523941143246321091967267143496624694290064496613475523147940692136752876473379400756628072392637366227614030260793862641354932063109405440394516432164949870208566693462903447429856744966432758905246372077860500090193515551775050175951960791310968949329480189790772434692095658613267754306869719416634198127115769864197746836623456073053296607044821140640879298772671750577494499600439135536555460341277865997304430222567350928620665248856595020065837889801331302725155451760141738009708027934753681177591145683022165424842430688831202088039119871149399946249121760631150589436839199465262818043182230360938811688543396646943698349711960372618347908016025116659797450828688380660469388119088480408801176928711666823398541173158559628814383474617094745978066630499860288436443281379185999694451772801631822067767250015252415546906018161133673003566409870232346807522412462231252278172809823554251466876412851119592742740436044023195437372374736489236931897550205332369239071839437900079084873127222590802533955857019159471960709968158250982560465332212458805793975555869782426922018356828311094908198748089828676628487223060129476020904310602787777790545150055376221429129796542064069389071795087895371207686985750575795360670705877269191830222808762439210648773651591703131656323807715259303481889580971109317008276960533486261442691228060320832175610916042826383463480872719332464371368257425066587961258737500013298335604316672888822174663315697853052443190787500372710100428308764845390781239628413067610565293713329928565325173847882659134900710503436725739477097432322990157513050082365626883141415949952814948490275938613507731149333558919506788278708460018888160496501078299101641973660414290334425833357046111438149538330930560889692887308472346220660638762236697694676478069442506055907816650856149478460987541364941689161257431707903545702838684193586575725486376435055767150053875431768196186523717386539939094730015097105593839108816853836630437561756629769429201641940958981756455880265415093139567313663702339931861153535741159085141206962968497428412690958558809735225246547090962137947315135968211732356673592584519271764446121114655691423987895946865683152449108458908392294491049010180510750174373740767043590029787791283360679081349562182645725887787031709989497758977906450075195855453431218495332745053904994115531986853042631174512824572509644779390935151157082444144926895051486970344863151969232133357139064197127327313715583282872883508952034444764105009325305577200036026448006280207332974045591281561441927968693367025365253773431906940663701625695373155770920544351311659217494084539032484326680804599221529266210864462646710456468905770172959798748813155867435152402502851676018892319997661572695815362184730117042500330661670195124434613390032253733624280447007175835547202761131664890409463046543781044454696253824367067086866376257296980016677110763970699051191907415872492333198936188924996555305165207578771879502391991940715234955981752172246317730872975822166942231404638904811467910521153424571913022115440403785213505370599740489504432108977642897351276222788800178397524426224604949697426029726423616649532255378170042873537938928653544769786265316523116909291547738431559039303079197634097434466288377187479660595055355827746717513486796946490117686229760142085319036632346884078843373163046920193675407583046175365097750494266216793187986459508647731134627781842740460608453327893219444956425401044236746900132593122717139879137263155595019708814981065040492233613463117590545478467038723870361597450591903457904690437857888367963903960834398052013104368045511638501321247909157066059751641315256902406661603811826003365572361534082865314302491737815616734281563803624116499425879003167411803506257436240612887937047743064055157103487100490725017290676402176990377544876710920131743778989993849436960026284306640168643244873836884369837338427461549664760632390680702506350796583814600214502032694776094400793359566684032899057224524445977333938240283250672213678491067821177363161679780504214884291066948345709465237427202540311389688838240585901296963647955206234113513896812577385455427936406166251711366454191935715146113742409769588721204179819453187636340153194873741041800091998844314577116031778298216088715716645682440317757468612901501318165499431213098783146670684235657757473073197265022226344099493716666213368811453885950431580539655915188907417662081373684462005312992958054071298379372851902794716124954169726003366752990037308959317949051439254820594241276446486623828308185385364023243170144710631251683457939263194311728980651347142748611939064010795054798021656430969491842814138045613120226910108209018273662641881955821965788718157395037196326717566725571066958146410735236473565407478809556181618706026286375217640166024898455623633810981445787015029349734281237917599635375171177355186385605768594215396611747284946025046310261868585445676815404393800695441294099957531619472664175898023448198631183667335574923422912080360277195638799845668553534520127006638135859305986769665136068706261450853292256172070464477750737957097445749109122698772773003890567851066409582211051841456331664097620847183567438596481305174904045205627501234179154367738290018099855368910277049930195092285696046170770907707122643525396614834157371053121675435997270422627952693907423846743465646031502076691577287397706571682592728744250681310188871153666042052912412274785911315794856219662032126646311700510044708866697261864791754893934554079278741121104391384605486893268511638440290449785682481133678015390501214928640323668114062874168197306712693809266385810436625928707598179978004031027471192906993920089215127349668829910775543199077485089706992909067748437717790437665486749740471551972630806921720821710364831697527642346644070965413889833312945432990104167069912781857658766417926404885461672973722808765067198214897400447970579334661452159370484396191598076328235429334445188786553337420533378594990007995587005046946933290711911468732598507882607721655314203596635217007356896622519199392381700845702389646002471481746475867491062079001543949911994484974097998272921451543651622478678446209299999772204745216846472536998602731654165981224955387445119783524750558989398358926836240594092442778058836463872565617286421967040807038644779110726431434442305329491989834077656665690883185483591150667414357288820574352941868079475799195651540297108946204434386614520264111541571345338060237561898249192964568378526015488587496067718595171737476882198962263204415631686486544890990672875931351871454245336838753249753918495035573565863269254612638362243965144091171681674447790499522809884776948661381938698108152501062984507007644039473142439137652909448788829572864342370023467592043989725406140636346878606170817002033597106959508478602907724728621572839031287290056861078242071226547165511588110845529585209307456811857148977570097458650398618227593856803579776473141221347055595376042627863399291217205539834901751289961720310776973985686688798662610667134627469661398844020269237175795410405666902836998031348539836275675254871504875385233196804753837764582515281099529989346636161712243548153211380888550496634282297449415569923795104986956382439355322171330763015781378126473163168829763643518215320484071560360299760985049745676221437235964157486779157683520905986742324139000345780707387985696752232077298212062969663245747698489455924689662660999578881442402127307182617926595851143316535060970302094158624503006282328738832294535797441978301756212427581990367491907839013130991428490580402672910012251143528406476137777374300128691816114087755437574119501942519872028136044098774615756385748210606097364683466251745995606408664621077307436660605514737453700238446604717962607186430600451409292012298268096119818183675550676875199912396426915476907846255766967540877918134395571080364244817851555995073327410543232729577887081196998526262239226277138949018325670815455239454940984649281392247702808660986999918195149805615312804602598704306829853513535375246993653482557976159826530460011225461552404893618262121361273452965358626445472825240729404819848195779801087787549227608897008589119604047082846504708683321769045796395741020302254377960902111855106415336188046153367509487600707440694264288476084304347126245749492420547289823654763508803850686042399058787179432435528967532574529303962295497345579470819187897576323044677965037464353432591470276235345128009874547583545242472542426097570815731364256155437916829746806203181739276474216774121022297891678332377754346966445817204817739860581523568149479533213871648927314663846141097235841412918866644313362714753185896084754385120762160192566712834524848512539588308224218600698666430787178340893261060921869967893203771163195479524353936045869071755566919549330216022943609824531200685163569509816755889389441024341286425630667228064629798749643307185525240083255000619657663854277878737062443419784238350041743457174260006975856459890429283084236804523051874224578296235145733244268899031026762874891903556032075923252728139286082952752609898557794253338748935920856101641475846552450429452694030747250052880430270955366333613116335930911496062875706485070175241560018777341856892289158070234627112595564403541988991626090819592209788197085398453696996481708584695559625064261836827600390453484383924959965210950240590183223514315678166805797205519846855991325850281861996038573770613077688560249134943897168611660125994128336822611166560372407102832338256883640186233397610893769917391368716769882135959152807065742595496669620557387940032434824601207080581269908438815300945845860478619928740937136074013634489787329648119921597907825646297050373848243923825945648620351569300945337969050845502750994341562305773274210430797375090005228143840521011981251038748996260191632729207830433510521238948868613706777427093994992109305738360430850159350910969944491633025174257547226574207444005281651647382010199617954106707240487832366167135999395542810736904558655663670084246572594131074642816214871483250000431704337176212820203077692626438125951187130872026663574897511207243049584363778212790134336185614442882485514518444153738318722078201470031672529605937586551125700373702228071876070131049408561536444581724455917476461900951687246421426892293682762932482748733888689409704026116878953973973559804854160803419185981821050597000326660523065947130721612824227368847405377465568027775183421237800474395150971609530010600381161982341891227983070342129440167428251396289531045772629308331652839420957698375151917764568595778306391656761283468302654882268837434266328122417055997236494451775133244204946893531906161507049965084255567692319187666125061806697346206602772481574882287765826064016577595948504640906741039883540111128635519979934540186149440246583725174623975553173801238418292643916457535886925790836825094165891667392923492019848921894689280198532779953081243957070352833731744517069748567745987204516499707985160859720820365850053684927129036130712414927599969069453454642184226447630253194788603228624015978302668662293762768766846115318063361806362616824735489036448897236184228742001963359574152644439008836319544268430160177217236881190370230322475247400245674540544493277094796371353633879696966482155826814804538438066593692153994349017670550115759813015422170059064597679724788845017094659065477889731128163185530461824443013350858811379052527319409150534659009933213492065800169820909545602820671163773691493175086849649718008509821242371949176519638989606416210919231514940168016267759981957142053675968614554958901539814662554115462985143981833031768731516287374587748702350493903555237125165092774176929669790505982116786439842105496721493186055561647023314976061170474372856258671574331342310392506115669896647733601591161127428761487766119478585233304225757615455955475913850753177793109612770460724854960068120161665311491937131996482892269019910528504499281765684135297230970592543833853305776789842334657197748685955140803395200896244079107386667271414361128388983307286446159331252448957887514013338580243148591141465175912735981633705192154010915651205901204079230186906735416133108358535315576405404897631321621201760815397951375897423118480496164807165543846610390552714165697899313455245078740265568604405075491449825861415933099215781807032678558033864716239091854187763066494027559473646654204207561245597979102781116102927992650401988071150614539360359552408173036319428390496547126230783350692448858211947050266445921752122434077196496472545105307984128363356285084850759847966329493814450390041483902137090408983348939363460819931000777646920583923517826262882397448060566854627639770834426901599278872714857071761786590644600652609637275654079952708815798437451761982334969903893261116809572909622830434667285625697019443309249218815645730944837779183487511217595220122643590452828824419302603441184478293371642812268725828580826726351399626310263170396127304974083937075741129411989845824018553579179197294479409740837040080729181592973775929108396745585487140879852800027367764403199195967526886393435957985185328468494964198548793046225962280116007632958094135765213329001470269100406761738525168710307255008861896954254975823457044714591734203569779850798225114797480683778852931006162440729900802112236304697272550754156250870468882547429769437310848290224770254178615013102590533316339340765758953144676656911570676567439300786405950044541590671025384252812835800209487440770801353318835680471068279115870914253419633449594794614593583742959458421502198747810994244656902973601997923559048907208356614666980610230274379293264598309908275398532747730061153268348409662124675805518792655476448037950592326643549172181209660696046167992314961501442222521981611741868861269502719076106578308056996365443749498573268253979186712918226790611931370594350949754252747789244346999158464592230720326545259526489216994144521477160985549614670310687540865962021594862941275731574094671865694158809065717786939296874145584527152964802036503571916549601035545198212050794540477865231875494420577810468238463818687557275897935977562107073418122789369719110406759113087904517335517185450076251003321718653180909676530004243952168920536108562134593371776601931578497305944676057609464770457023571136593327225867284404489798575398745392447923585448246476431599133031302919592865341512751021966396382641853735362387067598000980669316163418640525299315064303031931408199856840213793594953134458332348646106148356751842294942655625646290804853326523742401814242523537557130903686405071444396513793344322888113892338484424107829270736402561081023473789832813178979909650389958713091421146302200239573809205896000312191522453857143272149982389332449518172397929730142443142032246932184228552770238551218044613418113246224031073291207000645573018720404295808902006970973132783839488185234132120461856765769468353819062451009431896098406324095162297530994149519662737315479157656739274547179963796589710538125377407713883571147384943013672623735052545759395815223960232428018846122225196296246802892442307075685559226479171890634551705966237897938366150405595906053671976700677456680504688265463336347010955144384011722205191319413224852568495121352571004775281308634459477398534547699332580536965092904170068507515529034765500816012619300229804311255248683381089474534218883782822045464879000923901516432525552980340904734946049601742054887221543962177635314751437884492248648484360262799575757122327475527923434998135303250091410352713950662168888568032700285313478063615848350638410384756467890727481774736718559270914181822213153601858020391629491224367138370372585332142692939007138931595614373253603211414841064613396247349930108372333063459747154075911980598328482525022759690279872414274546497705235654320664777354406856573420808711903913480773435563964093321364464715254189043591144618791055355183564723336872004458116284854469937352848552362454356343409681096793119962412993978573159492868408958901323631695338127812354313797615688133587164563564562598060963786496709942634461464902374421001101188650892216792866222772494530856182858896266904657905248614142983349139475789294615899994668219289198042378171304092189716251320346429646078765665920593604091048812331631861942281614957456839759946787445668180995293045037357296949230104613095487860857313027286380395212983005894137527089130245276198263726076229738329125942247609517975647454877704685299421426454058909892542843889283372971009024594686599152696897700385287988067698984975049138887158192465309855987796372668830927799153325591968617012084219103373897315179008489841800977686626594791564981887492241870332397485992298503521593822976374680618686917255862014645882615024796359319447146155132734332258403774438596203681026282413226918175262398874611390681652593141977317831055989123401279599451854441593287066865065085737998787050596795992154018784981520519329168036955590107970462825054540842838956165452095814994560726966163766624693296633241874340154357493394291928175788464099847358657037967275673481034892863163742302469562380463506915133370413715146700475317509468155303475493464519780870989436849765299784340248125904129507413648549263585703059640674578457724121719303531427196244378356497612999137872081226016738971395941552509998167404786134432115141851562408525236650374739429764111496205371551302164486922792277344658727750656700162847319844461629334241075568557303166080517909522496365556523311406202997025204180535907484053222592448418995120811581232329065085856275186392292094505501280125039091052624094794445875323045362790087128584136029967149499610994858233467191207776549692514332093997691110385087852675259278211471741866948973582553050372013240818380952786180554070862774087039268645198288041059338930161002576533451648071098133702025448277580915901039697172703059007171786311159088231111875941333332807804603102351562294888858325800461702151550660046352626724464493166616915415067539566266114278984113316480465630944701512733324820757065907084468923191027783414086496140772102397063060353037538063557820237780454924743696801924051491257663453694451574546132257492017023428551886446361153486792461083763577842348202213266871854105512848209867120722790548135876465598861030778253545307713507617603768006911464273869649966173741864594881256935146700633260301773467880449466556170874901057307267025712220210214336224969984413829515253906107996516667786138583712855344648456432153662756940096126179270110293495453514606526874278876351439238228232129059315137454622681353312627196258286962713015881433781693197877386630440452366354815659759831041728085821567227274265995310269222213820023411030701482973610854012622817447494520605538871221726871985655383118035327820624837801127887439994383987099031950759360798354505026004023828676801026664606731398021719598850109243219714118777927853471861888200432755393008850621863067369184091770874343570542594893428528449958274010294507643910519379098260645658552900787622017985319217718723649057447852770530996843818458878593664294363224969630186360369225706564707993866574722534693754210112709024572407792573443426667940142797072341770319023717407602000478817822142114312294838022024518811841315475913287075175682556245484870138435850223026678210820720730971764361081107828831989736753502291628258155841631688814630298962106649061805358197239291918241895168218586169188644006174148481528860415949682005487011768850565353260499903897469262898626850457507965555363747527188415549258494347475473369139475064814269455077180444297592036884458066505392998922638469951673950723106215120520630957196588679729337365544706467329051035009803582939110012241387751810413697174480903684187447340300901471877629363904470891511107591216482893091870843997566836568367170417960092309402327627757460469650615791980842819525122498319417054946288125734011785378174585671427827086227881117441841600920308701896473490747705701788827870829038760729628582698575141833170659544768827814055385798701217424958656096851340097395619002175860587839376770776306875999710396019829000192929397443633629934677575894821035418511768127674170592933792144750360836749898324207328547895059040646043570359880193503044383043228918849810668108752687784812899697730654910854115162128714119911378740151166755638973174906564977982263972689437596014946443799521827013266488696167248558479568746263474465373183037217662247279035052116759017760884421568531110565657533629087493498216481977647266520148510794609946688000660781991913613787904649545952523317156267353427865189883489628968955385492266771503251269409208361525120149123021942605157332566666418940914664709464033177475348050533382432753568486998778323311719530039986942002959175781344432267572192473169729834430473655929378906261107731781618024783215340431781462323885156999820726412613890221312653006776219239166015255037010697954298161204774260059428265106088638937833004572919992784760779474384664194171710967252889762253146436730003622165666938872888498103546090737610846473085538805265184306149956700182408802758705670658370824232634798111587995005036548110991373031483172584267449106448357181741041095680005609948708304355454526597375321989597610113113958298037640268938842301393725874475963047338000097568153788257281557458204550341987203202513718821355802179672941004566009411737788635743655713434793774702853824620673744424149532639400471191171784226473478992394492770312416351146735343907320305223590561910727267339116308897734379203278836429339013492770593743188057649851975238935756700962909024856822016773135092476606144205073793462580762894373523362681812493562173392716268842045846265994691306761335572822672281575977377823491652834359129370826544555333201971367109366674721757718162944273110847705951631747978265989789170408102798323064874151129233909961212002888257317031029523086503364751701687380148365528458767561018523955723661978173478201481851895890489186664286139266480894393055379338884095302358229183287617784021560609398952711196648940148624849624697174272996936440231657188885812094096236677109420531772570755733053506333071674802753047046771037348241829067313927299901775465457575333330697731902546262458174492480686243273944700722175779165835723360807235701416624240915272952338125663351710680357387418925919990514141932295078721759115780349683509026602553938918806685092119750441261951455588325057207801688602683849017957674852638643485712702539440614819203866869331997537038903543268096488473329790385769658809315159336297807451484178593378257096447863395396755983088845687035761631412352835221667772675709394715613088005033857273621766382671710474439110466325602303036391713195794950592906984941680443249961973588600044930208733787013092551775871996029939872338697252546041271241461312371087471104210373417935655089205977650121349678012654800722851251829180045811357754387144925000246457534124167385218928130997527100396197537727092716405536537429282489318436549838668665197801527210186243664159765739785238874623990848805567298202876826668252566283920513516193070749698935879430521584584481866789566465191057027163424206757795594172394299870186551916011301626261143719779424683136216434836420078855621449074559194489118147182976519775484403999140735205793189652205256468390661110869261346432765443988258335181564075700634146429251296941108697262408701318979273453708706199417938531670927226819053521602224942976328582512471659137669407952382653658171515966978871775589170339126846413920341832056416475400690196733587965885882149052938324773877368167486087605007100166724072313979195331350613631267342042045229816373373921008099242613491014710148648603738870235491081443821068244485455584722019602146346398278594968882477585657398932985029281613920307108799342783333756883773066866733059861518366470210675354002367077484197908932443486579196812240548562631271556904170634759453062087877763721646803394485644789570395706866498954612973703419256196406347039721125257120206671434725185264558039455356674535943368852107163361126453205041463377046520978270724972757164555179906383848316318860424749484410333175990700521584899570149857465060266919620791723041950567765159856698242265563168421327644530001978998251956888879922831489630869112921726306686195995476644461953837610501858696126574864213197522383454427201416723873663982870333475255996983544062646770029159603835712095306085754031471687335482798066727917304710004189236509199454515195189597673138195481639466387482285639053593755268668093394251707001154239777197785491366972570490290927447093896478736157325668301572816707039831046928816691004509758113872849508723352310546243673302778296347858031168280162778208499942806605906305615510660363005539149842083291709445752015595239721416638339464671937688987870728235719627726424849483104604858054904043278805188126243935129266897372994649666200266820110464129948911121847768401466019901041509124299339765269839634868625793408050051777729567975271445459021321903953608106751656322375073557093617573500134790824778012516275956760447340253730438488134489498596902794905892711804227485572843133386639483794338340728730508745066921039170014333647092589696130761482111414736389526892643034721711122183972304664982172590171203048701992562222386659215966577954468723314524503875579557454974990032280280689729873132535130622465656436091760425805177964847487637007398089162911143907079468864395715948471211751901389108504344377109818275750883794603714381340430240450997548800055167267853409246042781161553292817113066372386171426760014142470817095088941406047413473458811467721690214798438740667951336961820034712083362400177744354668212834707261412030412624928348867294440630324180807242798836778403001133313872914507706060642326943958419629838107041871366472968213301599817838067558294806322091754098087432020175922666395030223015177438021687376074638010598876066443342988810970526691591465073725912976924931694884402993744550136772399919016677132535463291979537325559682855634007085438314150569049373405243360499142603131493340100070160782787850958006481900661021072268426861026472801466448008383542481098366138292834254314449000472010605422873021536759221776686227899474996962412419129592424930121152725528313171540737029764160271241201023975380536717588042994386886399530359678040431672055674585908451161863921244950210835548235713648876289449670729357083026745711426544922307244051781185388689438434983292673587186910201952077625236685311904762663007216587772930715418948537544371813328568385073115010247100915524440176477236872033777222353260148033227971374021894727355611948400948373318810034760208999663751033154283797377801479438043466703791473932636915052635424189277248346389332756796584453267633195659735108786911978518470517065719248213626878047333057924361938768125427725847512855976335839199824766110510981542977224674581104395562695811777282290573230566135864179100855946420538877028447109576497017869535281754191046859044185900602653437031168208618672086722184181781467793375757756126266602737819053019654258296484821983186961520049679878258069461797615038476227135187139594534760188777094903523068416052385697879234683961595442258557553046320960922426825167972957371873342157397937205978469512778742293765597807485962044289252757321120514664198917371460285945390438552228515594718407681678101569822023540730969504909547028186890400915562969674182941177542709969357496170912461148639551237082782510010034688165647291697805800392282474315340863977901397652978646988007493980916356002560756104074503467083810853584296706432491382532806348736866444696058886505485752600242674399331509142563442921116683341233679707077526688704542947064374888190195930851480074951021362855191084689885997777522479590317811796329744667742354841293411598089742378248533684551274412852502745859730619801567434825883865845264455610356886205024711945048649937663037533378103531793779372747535604215034119146123820832442083845480247515276058524335993968896830586264940388340758660384875611522433051262261931560450114093716703494102850589993358461913037612430447386598799926998656494198942436224251372276588540584143720703095000391195144065452417496954487446938289322442650074969899712175863723058467073324086690492189544117906149231465184926396287907488412456920643012423451538577449947759366033117574637949003338237456564390018317578927958193446625728161750761954759145890572153013223792882530855860021978405597024849367476963500115447909512951395808997946549130879568834283913249126283360216654482149121296893456467204549311515275600745067265156731693583308839160649508751822096520295313722058856064391222844845106888683502912464224867002007224411060951540942430050976798440073645201989090681246624942942856752182185933447994566813688956149992609273495605259017308909714774788486634717881576919099034222048421690590864331803140171907746456692691839271240897915317033184227112180792920090854228360725024095675412688403632932379871429402074764057179621602348150325256517079613340230464680218005764243022481063649494221093928211810371520494663342115730384544539554847876431245201542720307692635774744423268042851404420283922293271737040499163602486916883180989165472127791798433408649732550215878145708911720281510980886534188380576959010793919733964639542895155908566114513741736300265067464957341105948860074160907289428195346943288932169207714545863626348450940048268264099779612091831179491169191262806627084534317362187281173473869643949520792393524758513886163768415561527436695539954763065848006669089591884959328984019654593500243966181346751126151549006780027729144612631107069529998579919261598522457607637458938063241277376125108943925650754673832981790476444518230554868598552475495180173879736781602430342872327872005052510185006554228410142546385219052907285541193783327075062309083960437022841058108046873792375583163313804753635705097833523510320918059521685382371654084716466490454484458100151901596017434263441602851475576650461357681338987863670672028557287466745897396353088590023088108463949577757928908219087743042647614016667434608934549931180784387308230359643974151444846531871508171069564011288694826247340576571345945661492016353287772567127196330928099773850419096520277817761886864845959867391968035004035718165362932459083968691924240520300834053865681448358660424224060075370145173840934860085109966096981638746634391669695126856785987507148426604421245302230995141541879707682336047027896040926762451048312044711538957897257730069223543613945066116227793942345921015267199295616617683926353971459170425636355051865642192965663824605176900097735973594489064685710101940758326407859245261718699738887539898202165121096060166822158628181175852199040084706655053634806622586935253965548570535975283086564069632959684543274412321923003453733782579974723011868530889706576190971858423399944647010705001520944934934506402648308613044749094793850537982193765357867055266385928586727687622951031057433426838064561958110624075665705846298891609978504024533835547792823979430565409168034036950161102339697276550394698402341177094098230954911273010032090542151472483931028671681485213733255557482282337675899586223021555173914076281182025298417423189355465604470881039186856782993348652239941784305966905153116757260028866038886186779170523841725937267289595673572906560358461557264808716380517528029115382610443207178990877776464265241642751300992609120499565766942292832931906141835705763655196325633943078769514991441416876264557608445031828679697936129892726856632940360672086248806770372974865776683147639201831250504106362567223356621251068802448741658785364108900738556065602133950811046227552234943380955595205338408774446216458381301344429239888400498525785485480855996633412259009056920134219018092717927504473379312879511456759087955936834200801206543830748326426589437796299049174158099696368479842134246305092554799533113645762524100416306222333995709040245559102858989092241960772345555424516785083545373048139265632893054561349567038881850264295978354346242976645647410457833172646798858194565687173441776586895801884047704796284457684054234462578571728157674165543040087246726034825931868730244346937506924916326197612086974957222097933414828425159702485773168478990624370856683368436845239032043954846869932621053408414814550067795874963244617028263621037336867764230017487834825582297687048024934488786775137375131055062567417781202031163541773596869823517629664984867396527782224511974132370009830560370992665148482410602179051262872650820463485358023938255381987994128191531467291052695894374009679938139165025368190760882588084132927977340297235082494855734760309708217734058177068748510606430400090127318892742738516220028889705461764052192272405684105772845812285117651421691247274863913558388427056619961500970440762977243646709471306781280134069774633180242493315631361349359108564933061283925647347176040338616447739860352373574206547957635707395067632580933277064549377734014112715735218064212718596075940653281471395671387026358880820751645685849411449109892883637602730672390500056164372780121639577886607703313914246560089596162052664667811502938559798866947130342898984418705685276349985399844569533238917676662187035743916605762673836741893004656268059145591556945143010823427532589027963173229249165622524874981768476545782246223908343680817139482300591908401603352498370514566305305552490506035745619661809441420620621257375447014799912585563122521035341319812018605251826451453789859186954572434847440130502957647310827612612042484287037995918060970914316603791889144491947178500237874760019274572139050235395810874215670696690136730259856170423374627494414365383253694735179215633673976647123809474231178565824240428708109754414165823797060804835520404987047843249115156231380994226561288198695417570942740214089917579440701580446934373626762463306596715987740257805475314853670584297979914213536149630144817774160893026488007960440009867413893969237378677427772239771503488923104031505796233752383676317008058512832130411142500544502027454242340966698757736830277884403287500145886347084116847766589059790085329598819646628585234961853950150150645150474752629197447032180737740677692298624549290427453977619367252625374408876489501958993846311511532304947372666667598093294457690904234653024639578995231585476592307457841012702949135244449780800628428893855147275978477780564305410197413634016035730566690279561520104361109105650653274766280973529503570431386853096675401879605075599406158415919030009015325664207951078508393834891998311580920352288485289104683708306900330834769278331425270750058716788323556895105306117475575054127116754578117938568644611899126878758833803152030578772399756575773247986469298138199764055173752435037767430752353272238203968596383329154022037667171736461975287453704662820296331688620965883833632652227014146031948307556963135363766640885844664677129772424891222443663389686697081034310127451104151205378289797540445540659680254519465325909640007414825339034734490863533223031589340756666884188182186770659492458081020333285915558139791804008565752186242071309454674743271234095521649729842068475076223222487240239095328452626937418497388208968683818980605105221519118821741714759660939756030931018049833562086270146089702189232967916176663026147010035567659885122951693814576981059167322015594517717796700469808225583396335170918341990301672202712282438412857409347079093850530267570015140284560611988507538565220785553194428483637440458569944259853893609565756019237707211717832064885953177959049388727148353935280086644144711208244552166203785190949919300061404876797219785605009669733696983928439866013665040316543926004823292723033863864045050074897173040776749152374286040603179851701050231702190921175901668106286113904516191593661846724780943201533364980838508105677372886071239779110698979100514089347982087186694029020056056637424481924241348570442673731800145637394729137596284236707734882220229756703708284623861384886624642023690004521859537037032106213493759697644358863297055235239692647670526630611800798473361746385101397649379487200808577277710175401121975922689728616567205327978627157746369364804013049088415722729295344956402870112991093919019375768165867025516958708273299780907977343688566023820449733538540560807919777347584965158275537862902532837434349484331708936285942852561431548134442183336287923206375199951567935126353753245166921679274502063891219251572319551201044906705804088806417930829638784952387028152046372321654410163036408258831049370236942124413361218537891220103048544384035918137266329082412181547553291287825349880979349156640900866191740442146993559059346130041368684816031458835186823330974136598472947914123517598460511897096252161628178275456283136895220367087750740140254236611881938183552621425540445817849342588884418967852780018960374323155627502687147986467955702741732894153723582856696286922481090122196241967395361531723319254012909353803062709008763557811134813773545665392600448096813962175300677097038359211977192970034302151719556598236152574345115113159329971941434049597860965213313158097643147568500449300571871110060251078564566220259762874216392677611028904777632335410661297795975391310458319587918545669063440635858950048218543397151924033802062760078569380988052625111204430015616864502584846521508809136997079878377082435960720254246803213638371681221526785907304432446792955179966013649500540634321472522901834219721798188392993326278523916440005797166032379560822644432144565486273325215011068242471743562834741530034945597857337385795745083204222347871795682036216224109320685948730628152841672303625860203972522827311114585089401136805617669217740146377752186494428950549169400614186424683443700471461485790335353966252065214993856289352288173743812222242834177271302147404767586243580421059629563444851605289640976387681937442204404951329058262536657937930817349965461659540901440823146826303397441992359539633103344903675761374539932188421548558069320414509775521561732411498833778725725276727534759935966272834372190730813179088432115373873452334449351116236857951708891445076283460239823970260446580964746187233986591357941502158403403383872306115157884157358486260111790098704568502751159512911851458928959188387232475934381312035071058069851477754918934617787007653771773476957866882665307702794405407940245176063578047981488118719655763810548614722103448043083951194647064212623064675926714140234937473089002404594729103310623755402567211496856425925517904665424299589156445385681951681277379532300072925543885076076383356776198777626301196046753077277418060137358244234633971433361163178931071755440476858710389011808096332590085757416007334028641712528958440862918869827396934212796072175511101721939131518552549069793991231327909378970939664549258536713205460552765536334919612346697259038570313698956510872942473729175076349971188035737065751292779375777853424631052889239366176360732691132119390619318118898519244376478938856215516899862162829756922271683125840509175461160397022219174336437703134263762390594205443986664056550395661797822865252917177933692592808218323310147613128429647303504312826333207012992738629811605142182557258582205619722010520385034725290199154996083317034728933262856822675823565353419068727170916067636917902800341291367384722288127407197121277682292295682502830509605543161503169778504688831292392107743235926378773737878537501937790200446504349891363585657239042561845816934628084856549494517723741646910720485297559944709036579327390988110953621515556737684882077831781741576654883415817288800132968175582516840359576756879707252337207549105254540273540895568064227808641607672844007100212687573094342059713185512573000867455340223408787605043402618748345932701384865754794609003786780470043651488751528959206214162710586599428273136074771479755489438196756683760352841902563652349489292218773169861521400447145896172973850479328896409668497444212962457003236428934643307966115475799263335020310383838843806820622862120111599606399916759300885769426457373441204441661237824886839307752156092367313927044309248135773295842158302289514702156378358672653182016875670984473617706714003104649655750634450521346114676383207955647840395355978511730963481822629012355112873354343523153526867193568493858266956859056125185214368571170746360583684678625611183834493219205633565639564531123138554625950169345039703343106258572632080104363767416474319775129994153765482789997687238724265934371231127838709511387776069695743545531034735634827333411687043785862841937724640862270955399148408816392032708186157958495811889153925872643069496620415429246594919288724033082689598194938606892551527120268005165863611884598816486013561014154256668602990670492602730523668117626038645776658253646502460550329977913030120427210660790359491260405236610218586022892109658252154811918206204490328840595062566035934200756273705045363333836953483764797607614003938970857867429295724301341852019849530977601996528853364366023737999456404187364517047587269240573508102915663706967856017470912025916112459791890571810973079475914495468806500069195824728007625798234563757315456737019657634091288374480314131098876799569262375602905472192564589759320313158801645543463212877175832426868337642570005795367415273183751560031909986032241979906445367099560264879040217976799517568687420596452163860361573694153083236391376132361866683043505355545236539129091272686559732548573572604955409418724115649792256336128514815894674937218885129789692284564383434224461790442855843940231518816984862576845422773628167186586569325976438499188995969294230124281713963085173490744856807267283362005736734553744725974798916217887273554384745971289801597653152650153963897386181282844195108195970204032640877697169113469974992182182557110370463818442187558231563557048564647175011303008177752567967103525773171818902234029237178795077559511350695628879632289304640817878461428659550298985610358825740280692336025411108172846764290953979647009543193717168407046168112915078933317310128116997046108648100544203929462670715133526676191683637163291457459994116646439166692883067447628974324744200779308219894575004553746193221634590659610710241915794825410591426091119842339146418047721837828013058594839995306230556940527897858902943827427061614669294069605899008091284877004260116632605863432829825787701719245213440776038363545592164584184521676954443062390288879252571409347201636658924625272207957335416314228026733544022962453559129154020873666414683011153574567328696835114398367405400325769303451987627346320310717987077640559609091422427598982744570536572084637471053978095883985229144434552125959555999828476718124883136220127328794934086921921001977613946832706580369394206191485903125152437291283387247809889394249458272109505308927918617003560994723075928805663812398697458843140661347686555463830342367134142854428209585717441061840863707697264159813991366165136796838275278596948976155885197743379266247981196630417953770491085269113350277850031714987181217963632091448109502793476959005574128126622024815469314329064832857898933788169240452944746410663844718046568432710850285866872573345443534054775644521652772264328336828628648491430835646384141642238908184992582818857012215968513744579508928001643380314600520339609473559370209512628969766128183745849946530860985968791379861813125941144816073734754142238873487802258429745465990014792275816627624864800540445596172204392247864557638125847317121282767801626903011921062148793497939070381008805374057601420519242408418648242881931264500852370186221471718187268566341597604653833301852950267887881749032292985448387791852216949523529959634398082526796991079100572754165911007412068508001478170957895808337574840181016155581733182976812575632602413879736920499197554072544564194357596219547002279918611924291631629319255087583850405027343393318232052785463675384960338579531108891552007894127577772551108926076667175143287538070046839158723334858947143551823207843621538119304869480165362152270260868300550432947427739630508706293045312409185900818462717720425070184730113242190744735781474549371616320345886281545100483348904138817231019664301270392415316597065205632079959795506653651565781087320333662736871032470307023089483924976749006714871495082414055898847950996208281707440577707571655092547039837249910049129153949092543032799558205565139631694581925606168618994383046392892348376022527902440432374991907415438142164387919267100421351177295221454048477269907248794110996388744411296132139052384449543598521849750725471101678326653050145801946097275521140179285572278064900086121206073030126774196883506028667057887797260668486185076185555554641181062203146818619104292769003126457061450184212912762694182695275232398140946619485649270213956958238754799277451278843224408353804350090823740063643041845441037677921917333613545241357371056449057291423547680825929225644556268392508728295987826115388318617358266507468840299769153041730407588920384592052196370107025348428422537205011733594039698706722348838159483909677045005439426326474168375839658463713302496415450059925349617758134455384648170239325064382963542266335925618215834164693913987643516289330831674064415503933967826400053802516758875736191185488883375283533021900203882535352625339496912125224337309107793017578361767152482493223779284082782961795578016198086937580981818802744884325010155480220533538964720728853523162264681573165079930309038216335099328370492465743722337180236130102882508366736257414994874660961078095088749471289555818457316907633614924013732132016713575571445449846834660225510741853257420506764554680055267892965921547092492132215522240370122927281361506779846688203143620443638122399680759388754150452210120895927122030677756081925476287374445776220617461335572944128455391566877345262862851335730090291596608736276946637657881363756202999834840102704091398508589183186064294181060068658967094400190930204035993548245163281829751907935682721068205131750975303276653971086564140360634354848555544294036037905158265206004951726805388776011311270516601654938883183760423083697462774558407567254231118338746704258736715832449982791292473194773019254784984342588298926826114269604719951095353218455105343293601051947164859329040240838637948147396574405401759371091392802364832475313149964691758238105731399873403144704763216905066603460060518896128957607415019003099297781253755221371860190203631449429116156643802274212433220477061501554978004936613707097770255909327320379969020908944418729016988949113995442932053224180789576536863957162803453457559085157530686623191952515915285722001673703163108073666350147410355142837720805012309079857385778999534431541703384665800860623082019137617048880701028831876015406986837486012347808583565150576465805338132185077279263547098902150257150723362015987285695580553304995277184501133815034100133337427100092202001045461030613421979966120601403886120046211239718803600900784586100052535367779097426665309796883282252724508940338702951497991928182592039324654076578497513053933984901467219773404091722194351207413967134362409481746260756768292676077448040009080699657281617689639836855123236987319434106138374463470523078838862168077938442465268194774919323084737760525077931879012882143357721068585226642959893935165577287942565286889834768128029330699352225258321227182146523128055973173104401866767422689803969276074881589021419891728824810113444018485907153927066884584884422403450850186803789098956013384183385562320954996525300834248647836927746789352377845209154904870131402578410051857789212861232298247244440250967060524268187725815395960778785905489057055393930044285391005006081896151346235614939722750629693416779206223713405404352255571353406746456764312656502602141186458091726017522515354443122490680225212874819986262322703590009297379343106005060591197681942548338536333957207160202333976792677629816985548351669006366907910434124597403431685297770293134346837120019774692954387594913409105884030572439997118848110992931626096651885369639555214050644399170146157523294785233570917880900312843662548839611569342308355266164181335104901761579046842188179508018310773209136742356412114663234685574713167348959846550210176663123799892074276887232835226297900368484203946730754514667963374199979720575812278634801630041590957525503178124268766337812670048621758894243735969659130219878626124083433036003094431897421977306875622378456912286732573705167980094664076495899009467749542074739761481334513275326348253550610618098830728588567061281403207795885991745920589669686650949374772156327803626450045078450952630285001052512353616749799763205010095152745205006202578584839088842071086122986161490601924309996294194210197937947602481691623175877718663808709934727863378039501101723880672895665349356682938456235776623851666499471405148425737170419599604994447751697218430013412285927910507504705742495480732568720585640900089480662210925383526824109631472343073493578271295510183722318621281611813859713483712376358719207832532677612831332098153129141188696139692203296108412701878855899284992197975921898071670900717803203461610950980278917913956711510100611440801872149870343605718495040046421156219368392797323708360958007771396260313795306209542701467857548054567141577188562626607872214123277280234691700871412861243108561322304388061021995332802315395269229946732362635378054980621049602372973184921407118849122821203566266328324573536235874031276202713982101831819899109959601999689808740180246204272001689370404828001152696489858572056998519284675067805683513503443004979365601172698301561381083901940924844094147116744964129115009370469787485540519839858617122952219597062721795001290443277721730198302590665787340780961301261348079009853863110391407508839292293399690403290705615527753977202123298227566754841144264385796756982856233380961146219476822641532027594209244663376489731050470255215629792138854197464524410771043470822385456812703767677887745940210327401851079403446085711036490544477838694969453983895280026150108869363581751449226570127885343431022126635156443752435655011013630572579344941408298770306046827163641949693723567897028015368494950150815645864138394301986157935332561051176597883595136111151794515145678439650814091629352728736157024762650814451551601363336478490508020824289778117013763906057347279330113082145239137861491174964047683126260178490717131709700305343402012367621037134313314232000350563460792920296070372207255286903401623938646178577216594273030500710945038681932301054472232157014199037794939849081179298764465296227750482309213417455137837670640230340957508523671208502408934054029706501656703342670997811593177234954042575608328991752256645471114692820093989452711215310077223004295630522139155388300251776333767199956256398912101328291898222776482431194106592248076131263983056202144869014881464655186142518003120479587499937071402559547168498289927500823170259471507222415080419074707750925498823180008787761269921649499625021153874286199696762130610717760958980066541454024717832059521352899094169398623879872046972993241920671707129405328493184784286447571102635686204788883903014914693413533442894590533194968445693294789870471495825702954312169301779140255136164269239647573238838655920518889506811226137170812192685691962402512187430079978954307553918424407415029068131937217378667014948358463341464407263374794546407980346262438493436421670076440885425119927360140558773429362515327731729006083047278561803013087215043262883813517341448893399679230790396393072170015180081300763650794423620090605346811429880754321320974187056349881130053066220319990218547392811031972859130493147652221331325378925305423875224637548885476772876139930318080782863856234059954211906428532276029410045387796083609757303765845172778415561958510245444821859918178484219210071274525803010014386469830420139063682335012173569437860807221832739350534399159862606193132135132187406325129158088943938928907952835862150301128793012760676826528905889454248036170392571952848302890211377265727032702504839105046484305756509085154920387924832558040913900095946703112458625690501964443888116948184627255578356681306917886488298645777064181470993213964952338329270466645523678344912645387156976967725310289202789596956855751381945613031117961829806162276424755213647123236331245916767138794544929117597550555592266746841656170726222018117943074391579378580538115217387637718471434229017864791598452978200626580685643713839511418360307524054674901014534630650116081674253706435883315885053518642816869714248799008737852466077069571931392791371808421564637949499183637327155355017092066033387350812335018190995652266784558748090542956429782201370891107845983801833567060820092895128408543140355590564934073074994640496312668717287782341841113222906528636985359963327228247287093226732435249174407440183758958680896712518027177364345829878037536172413842269604485060501221462928467174181327540393620657619329307387955531682481850372210979091651693012783263477069109057389526744496368062532129737758683291040876101402687287678364277353465403980923268250440378282397890350959034064034503384211304394663327546136074723159657411862980781322465322670327800951461467320267028113435347494714329261699952717446238499323959676074924060809045701602974281061143211574047506343197758890641265462895002887725637584578366655957713686846864982844888373809450947145196020076268268335257652342143007897865766688191024034300201379683004945701799507173347400583706430643580983193083802984853190685591893815197852879840144527882433793715530936587261215649181102833994202091008224245909699226845485548367062326096217669795271589483930043203025135965844411164850413755880796160948652892813859324251026195809558515164326190613547600763603334597963843241117206948673695718080272781605883524887020594928893166239287726263138884200764278668827387479156654550041190200902080001446078477496406886293996798886285888862778001925456584872830003531413098023508073049809502074562970111054808940852445461739553725621815881000753281831383960576802024768611344529747581995810377453775823243756462197359185769338728133627780303229592830787006860629537668702872556010905420210755694133782241951703736676889317889379148969166183186114857502366746368301900397744944293253894005385166536433418219745392805539706165961253972549139470549541291426312521780953019247266431351432765727054495265559698234489027891512121966234291161384942986284817221306056977853488039847206978720256851859369353689363226701669127877968817148446413039418365438998480887040268968382282029333916372317942882968058981196904207295010378803303140251127686918017712245940493282498977564517373705299610868837578994127247699756452135392830153132195723931546749089503181646671811482954190082025017919610467156719135142802801436563617728172639480163894254229152137660020426175413816858433666143305884036082182963859014686549823489078200082297806505254726891936576546350701519704077266902925940017736380152169990477261933665956738139180327347584066677643375979228062596849038847044909095874770663800665952475469338564345792041224843932012687140137773817262877776877606724457414532152219974720892042682595273893518727415025532932371221315217560534003085042488470708379654670662506441241556600174306236271016400624178173364034013263571613451962750472634259344215418489241251961416018624446146492753565174122545945293742278643376882375795501911626275238157361040137224320504720213847493453758720770393609066009663982734678651350949401105584067515958535462324985740840596425676567810337145806586979974179755014643115662190251013627558353474074124520419790241168637244119297973749951545581051623510687834356960390546467276493370646094267711249310350693045683656016992499519646875633640285388009726751011606188670046709504032916132759243586705041863469750338563153462681602706851557574327038365703617561066535474965363549723519718893595201067318359089666995576827449943345072996781404742883445078874342045035596424033049707498579804588006764581096740088307123169692069668208238283630041133151402305461986620971298810517759323924986224621430704186463061040748430495823120780080584807453229331617920894167842209860989202449659746189665421240912628554203426574692719940335963216940129220607008092689250348363380773176966446989830839327248237583173569245428784605863683105442111817224186422334398633225894652889072429700175134765439926572887642199334714239213371902706458881686664355258068313422860098712696631845996500027837342169665015418034261933086212150661795186864813815883993575148600619045995106169327558561560136622172611853097285191690627991364061783299101648743756656741104979595982772575389553592052985446428863543469798175509639467396100533644743811871602735084396719127121358148531135848910777547632591550390478194635675924613505471606524519781803191443521099119016410222274672473141713904416635957387919104264681141650680630475098262625002164149879453007461237231224565274285944181477348263148609405740882536959921069702408369105870434336373390123609372409007341394331152958867668250550413346475275212902384648938897733413426056314328517673841896527115927677613052403851605871796831693510007311973618682918013938489451726165627607613573882284617604274231487489978159003322281585331924683061514622691447683576353995435158384091044955007100904471087964684933751608016162411404472798498554747024548666050913397068309028091415768316022738216206711954081529961259771814271606062170614225147733694068898130723166704128912275726813339611738448691388988280537033208824329846401162586276111852600083844305576211306934061983442224745852717207955846618993332267626622532518456985590903560069945404715716208977738834205698516422854993928355381772078792237000341494267818394962705924474727654458614030172252810380575139770328180556913936182844681714474641866685876721093027389954485148709041157710469144712439540683008955894304092239042128210378530645141664912614088910514789374337930840218185798503274054791952172583479031589600389031329237581005490876358108161285490413206132558769666862138458486519285001951164017641078406337550957770973961394946500836547870919049958954444601773089536718945253479721266470075175264554026094137975081119419667596033344712031771356649483961767405461247491209244495522981584830283006497960371040881678676253560235408599688763523426833170140217627546523287450502996369449878486521462309612674286069038260531088470475867105410231650171947880602642329418514709284636315781034430776476245683481084875586351267915949712400001291781884862274213628959095819272037741741321975018608770072274882350351477994761647305740312344571021693791530408865181309215160762778182046713141028937178616173132473204223476514108492065219936935564547252050933760299314286059001297289916454240750221529662125320718469919975566216134138986244759168988896995850282680296511887640844709398626919739942413401159163567548105989636474552284354552051976260569136574530276687903231313964611815192401786853457937675379060943024668839018700778027701278725227181383033061542726294184636171528923798369772932166100187692788357821970341289409795381471300141729804010847075059973859237446935200421419716759754641425499042740070405819323188889846167592317175269546159418720127823550738005209324654031501264263063249485300598735530025022652277208648083495609320064749895151467536890652981022367622387492827522539337376502650410205619838360067781085398941289138678634694562685816519258835614975533072706524034802400725567011477448535385354169088062308994364125380662012386709396581389008406624753197851733501550843640827402372262587449715108134204474292573935175826679381544633399672130240529368863356409162660794575036218915196997287400819445098120534631162435673018154067155003763152401611497924806734401369556639487116178324166746155141324593266141728274137065440413600853696557703682166553386545909509670389023880273134613377277432379608701456553581001691176061783297863110377355638577295381742380799553944643894284895505719969960935214509711058912266927245661206037212414984408488477208066154590433451740193509294063283240965402545095268781228702214430604295019811023133689769369251154497101128861198459303840026760082436699065639079872665052142053242834681322069734299361866605437570577397268665930993724189148262928880199156938695841256642601928961445133333731141807881172296114224284141314401880595939390816198254512238351878714057248466561673963356542208089096664709179001846542347892544685342698081468467609566190227174804481599999342959948334206952176714309565862694906611646606689029444682683577750288797733821210194195219318943581987981055112958725330231115576439772089761151374935408636237333019907076626998304255548888096521037063856317037900692139732356127135354359622807131824813927995261970764515905409171588126892700325236609672644840972724265594021311975019479905517965693287637511916569322162510564224051397953978271895541876173213346371901714853106508060205735191320657047618811987842733255860912779834570488660675376540782214160661774225056341044555851284807149322539875074729633216379382798452209612336707371209754087635626058600816075270197638348004865275011108302976415509370488606163991334726911343184085187310856095832934558750958676819030049731304280571211059339899391731032900070363503821979837592792207249172728432087858414482709231187520301630131264371225697269708545127673732143447219637052277321347516440220508403656807763084404949735226839958200669764363902950639287059769948412608339091879800878718606006581177169218716263279023489865234468714012584538471968299941249954155054672930587422402891764281609456433269655822428329869106502035264738295299035339057536585925122405284510809769080980497460150591059449355133763382987242227963613007577724472555414905902371459094785320888981699890662712359514367684729424305292295734267949519542214480576291141123013264626050509955542293626176161088119987778409168619853669549714748212707803865044340350640934532745180334507075257807263638328341250832278348423247184008931759146369168349100328295037408543333948974330553646965030777787161923834504641929945167300075381230148512484955588149632150415703660240799724677778065552437710239694590904380031725171437942818490846915214264622995332875958539169109710415810558022472623416260798664935726882199460658569775798332303475965899734731020089298328312629467465151945186322080381066204518213158629563060890130729882647777644145887553118609684866251911175481202155391368071103715513631026079485261961622390437601092007945584524150856313581604516137133742661002801630560861022226731088349099428476374162304276902436176970722964239785956882870960622406754621489042851374528048348397402469967704203762096416479291405881460443879850266825654174214485115227767131859426129042470690192824083276445461674489314897517948718084580400821804243913041694334042139947066690221752700195910776003033113051703908421015108835572103769117587658218625523387284290229721273033513893472662439331353222499695262220225429584528500544748783987171522728567923898246762119872662069955473223087383458013572681962493377520158358759092911007412593062685888912500889793920365707612836565513078794678339236447384624672641504069032042472338178921828067374951387708384158996205808224821089410938958647391450302612323256753576018499453523613609952923040887229235933924721950551696859034137147713527807311498424867411816799369950017729661061427427930828317871073651504412508631061637036230880265259050864254777170490217773195178506572701458254408607011395919102013836644783998782433404991831677257155695629327091652141541639714046728975646370261586436957899645841533582697126858049106567685608513081038835230484076568190487012482775167707300328696154598092161410023893407875498170531837270725392540304031110374061189362350787009422469324998294556171004059342172827019625537437383213790633710370184195102431792097196983702637079086063748319312250510507032463513009025923089448381255413516104560609383406482055451264684741310882655015936978546352056866350899347281286262438707646095082461083193795230107143351537698192038351991242722860254437383421149748938584076511247026185802194494671159876198260792769764631678828448961197519833502454486114641323671023876506286575717245408524229974600149185721146791646948662754013338607292555524537068885131133485423236893278903557204891599976417316322025701436320949942120095678103343415594290097502942993157970997786772935250192837838863601910654203231085034950926565779554391992793091384428327685250607624356514304558386706641504034987475295888487218070202412961793146814812523040611318982352289641007987274533894210504923269216594187525389037509415558091292448784053163185989901671013221653255831575800722930381941484579342841384351476131468395288461735988420391642108821395021791328464675663155646146684674265503874444350419720732508828108140351831967847092845663950039601675521699394152759456276194218143536415132186707413746968684374704808883286692212041614169520319029353982607828670303878802833756967976621548606718885967594072422252203751905739417511578616720841129204594480678640336750823742878952650170042749810660231470184804107640827585867536608923167122303106727789322722573805132104965871079950317760498406948801548696673159493366523103280875131312777239154145974865033698801805262219987328955215071105089636018579138120171881049744474580487017458846256282112815583579945330628752056115151253231055939365204351862967911229947716249975523328622827343327729812811737921326439806687974119519205434002299905022453467441938177653361621438594186875947184719262335333980213664115421249727306429285854036713893088309703021593472124334440251772838289616177454051720420567973930527292169302052341252909397680621617699405298153648773428057767175219531707321896527010601701139722886625238897581336924693629823494419310297353022419183709765641568130525812459807585944130932308971302960953130337481468131954455511012155239149746233748431779934440132538459885245777833682117884155454335350920707857881308965889302534318717374816943495490430450846485744032121166895453770272042535510665530623395709500465499835167054004363360606809348703146818596904559189665108404419322774051724979601211944808571370104700478828211321710808416265364485418973645246088107642102780774855278034032352601958161955464879798070109644658465054578332289227936601139289446940182068858535176254362682418641154370531642834236695915640554340491552176564753265407879608331002733719298086038381805478029666278178684719615202438160055876185596402635567422799997389398398289503917969291830808459563706179655483438475217033701149095837451201569047673413903498636416555057265519173326553586442074867560437194146617439798647593536013167158667319439545352471808965560966107760362494573324080698170062762889163695450954801683991439152538084704373625265588064004329869763525781611912759699560989529288609220198428777206220491698194199012423921394781289882039127482353530591399616552896925884645868986727252661271690067506958419440192068393996276793464876926025034099518676455761603661166690795393744759475954662129585196205777920588208445552236788168870959189588639185450258062218135198151196315446107321156701416864398325656332193524573159663835058450482782992574600423135235952166758318117474711516997756789968314007859304322965663020736051360536373513778855263013925884030979986789487902725902321751101274781354779772206943514194784728611520167182505045471742764736522704979954405105417170651015295053815892357380465885014798825975290351710336154887876560288026007047839318620198179602102784808520373919845824620913456649106640116259629140880302652774269025903702019138678779070664998870177747532852552785646044965555357591785357275893345636585002236269016711621766296349079457625009362127196193889980309979517080628663354190669935527324461994213137558571686658694559135093525067148122493343355585989703001530619647097512519127871085917105072757253668778031047768426194760230477908736756097068912921981050080354396801802785112807891479699140250205970779980673083144551940315120398528538025212589165787464206969715713073519197267224820567528594999590684143496149362719467610548809854492761272705431736346771290924473999924330205311248366081119020689655623253235453292279814556869675037988910811133586958601413770789017502271386809556890798639726235286951410921589622157154842884519922961378423031974708303509728267164755972641059405819049221905983354803757615403794223768055076944386648205880558125196860999635462141098900138111490527373965624503469912322278162689470003373997404292256210652593129426368792537380193915056885601803729622987007200280511070346142450833521575059471151806201867773668812182703304786562092401978102451936834804589906078631213944815323918948438314967428152047850858946921032126868752195366691817429878147861517885653137542349157902570653487050019684757167520085859799434996039257176860807465725657273996162715882571112958949898484145458832072464081635285736006439545997080010417292714049105027844488563224441003147102161932777760430866272406643865514364169515802448920236440004947069485780292982354492932740989030989419402326153384289125226876859748783980515667692678984836976893933475754878043343872637218978756366675405051527169463427946077216282638403094289649284841972427736149203532935419476124740967184594730044885592885967273393129962788477306874441765830824516562287534649131129713225817869795044009381107519880488962239462583339478029427829526131300365136012773653757952115061786222474971811862057906572651201987554931410040054358650794752403527712893523560711496079428040227393267402507819320142287100710610187135405492127228203872643381934050695901602458678362871006571432252011431256492033160236614754932152183811417233915193740469152642534944136184967742316464803141640875845405940274826726848892699842485880774973037519223031499886941863531554161020107006449996030141187337755897580973420283662218336224339106105098783817092889047987126557779835562680767170989234293527855888207630017052737601989905287604145007273782960412294797587539168597552598528459535981435952248843267813146301961009043431224940382480223818996300708184210157750878485088705819693684350431104525227119010352664360550564213726114437549263004378378319205040467338234491780095196127204891954654999696507932979817939904933079989475463884630997199277837639646268636845178773514378483835100719313487046020891768880187715618210566603938202115148679247433376302458432291444467532721412465005425787038467336938073269656477206863612757589821181439419360916503692831772695089875546863400466129199840829776530367122786671764622424836727655284811491492031443210883985520091722421980396220399659268912468072396565878810382427587359891157701429779393720907485378346235343933812582479843966359139532791955455207407441678034603017312077235370645453066341592383942952903920355871624664463415567966381048338596800345731829813261777832863341341617065228927843104530661997586054204645407848367062402242128554422598925646986255248314598869139143736650645603393642792530209700823026552109605697797273236235899721729631163994422593509393462919264352275380339842054793653542245030125363180808317164699512916264903518719573835914828085523021216638902657889963758742740065654165635739074966841552729807889848101084824082823392171407483541467013622988981873916402231986379403616709237243285979545428265662826296857795206384248184656544576182428122058890046993533515058779789893299171848616480643753659922651748105317319443267191693822992632756202663600819097474852927287676342635025291325307704327640208415047499002302774901723099049834261568129946606192287182042322271321309940597123510215795128850014871736110111846330084809029862544874230468859849486871528168206616319215022228305036432672648644407743192405814796677322542540660525133308804236363231889257796984007775934076731053774428101351795165375266043047345592402038639199034823805097327598102433251619003664989710267541181672046483064732902929771568290669660374970861818380918244912632873510606146133684020777898096140076797908518449313065006191581690462972141981674131185266663272799070811342811860259188182164469153444571248981543638366715267560834167301618122720464914496053352767496647252497076404983302361479465909414461892546906332805236527960956659537663667263714025270886743562442575192926144050240726920948704208619045506059121160266464651253735883547692114903792774997621663112715764608605507611151947646407578536818204974987548708001506289977950113056839173372855542664185525160359533086439733113728574049934351029510142037373978292688758004555129147318200006361998897097541189036298580646059369891807735954055889876360593886605364619722643796350707329669832726778599171809017785957061941748220983088331770796550632314091699880381152429469112153560585779257949825039377999222325529358516452604097266530421256987929669384722288029808280983568783093703373399473451319000278871133856130704268614925903475656937841332442809317190819917412514083363522236440796621161247827276434900614032019480565685510191837206572967041785450458936958272110107464827814830073918424145595860050446896305132590389819641992648739861601969699879586690953733152089550523563357003593999334491614095870202954205936315133314064555707667342316855130255218430358451200854126754451560607369984940406717819111345445982286271171376634204215812460283602053049672892659864090693563343358920766524910841216646025939676359714730618760789569489811542446659845505987784177360090659103401328016223288859340247157670552106547810570020319973867921753131357535462803163285991612899309562806637844802526669316653427063945677529427802990679388247643872953233013249431493173716925494067710633355730707030404258960242865990149754623360352238751678007791740590637440010959706109884147305847526723585162227695887742426670184822819474155463573494099053032619749675795792073507108261011508277944823761397961076249934163913726986046964415735658080358388352688559409478601795688093502299836779980355098444914622118799627935555427760794553545033693701180025054977106255190100683743299981646555034848735979454898491656907613212223303322582658573150033191915641193481072000422762806245238488896727826082647488094947920309066927344599451789832392467099333300315383317552971628668427284915403948920345160466703918770894523947066905608394681507161573981058484647313668523497513991179899734225113738500848226723067005722909034181697789504057333226431835005350433592705434145329299718990650960739143706481216516926152108337145936080783554999332691142246624551528960156243207569727263720249646053536647374150680429238143502227738791545410711486079143122283592346556209975894536449352498254700831406821023064833964835821970248460499254526238344988473835301150825218430595558185273460187802148538020502237187872088497470598045611759430494443217270614185526900209564919866493357980418613296852280468831444624087486306187878502380152324015485485236057384400825495721013575080323510764837503305126857171688862904918592598221028539699346746266647940837727259859221965053655989508942343813953620072815902708533562264408863661360568983393770837871951148433796790620974273842754745224204663454258055343898984790035677596097248438107984793785840938325849069910517395798339786461065838443975202451572454777038262411605392502850425668797933220327615224910944104593568299355422442088836589723868907156578827779990821955386236251029808568491960925291397132178714123499187896270253690852649560093635619055635448503471683363302532311505033260792263098210624651894852092690613370618734864763544254436275332735928844075853980664466452022444196338480427337709932210252838820980073374169557354123848588232501955673009989064301706449310172889922858288680025386522933970577602385491910174665949446125899147169048725366974683845235594426446764688929069470060329639024616503265772447669568211127572373351438039651347835759556837376617954173070070396386842910556985130164057364994458800875126838075264648957794988716887212911686425343814352753366071754793243186860385033780215784526421824860644442257466674549314594965004635878163369596103309575946541849398888005007979012311270900412495676797075219931371266181186446808404216652109848337396835728338728960102946844655448777483734428431444170722131864312428007157729011208281474887863321765939936112182880407711303366114804513077860604620809260552976950062895087829224428068251659223668216597259831084705040398387960262326785839151644379938869208986495613325415497712341770672374836315563154015175238640045565907452123442076247884276648436753050932020566786856345308749547874381104090261400707705394861519434792908649149291948284575350329485092268387636517157353610369969637904892464304919962333922582038813451829965078061134863936990823894278533588887454207107883803286228437514312892280650141402682302576500407650464494103686939478920878377886518060431316526668008345954156482704942710200236449002325456881532423202128021535806774735745459201204040155721503090776545680464890148631711588449300826208622811009993287001736629941652709380975070331050274908922670252905050630804012335247599965467329396222167361955281602684443594160067628782317999893609701104762418519330956175983749638546335658440452916512970385131591285688172913378995684286449969599991878287887649300836309469950101887495766522847126437414195870824783010455813152593942396907993209766746401736176212647960192883730133279629916232072216720953445948347336101092668797958855517626177977861862208574811018447056712342571231704646966503244882766596320287397817036283207291738437322663696222837909561673251291886718845347661828307134763000591559287989603805932513435701621477983415801327354316100978953364081604375594640573631640325518448772027286998903719908831401809447811685172568624824158739020480405956873764108196477663144738417199646560939238639700039875511720511136920763355729412869154229465175891905017971064733750037917779790842250731657244035922360644959518264300199071701865156269946853314402166654454653040574338689812549045193103249685436991201509365740478735377462676347766263517901151948722412084251186849151876251309939601397598737173948893654246794997643817742241599262752829078833317998261865313026003593183403356208205935701405963090184751992959438498849981437491375930931515959615550460813135242487139736535660849172678668339861454817860728411162844945666748735249278882422598568316374385358251016030137747081957628752766665986378225382172887500511777964014045805020801918763453231070284191903889569993800197962617219988992247252174055254123317873412291663126189127199832476534933295654301937275763749413926309485957965497615656165134204549428883608176674831166607024168375681623768058253940733303233137025388873137076253419731379838175409064677537610449906781410844654409105303221611009479811422567262104351965109700850968988908519810883541795896832710055503388690851267388460814481370630991623938140158940650499052262878464408276063851870454940857889695699893285268230452813812817043467405476030425273391042603835948382012370495662995599954109898041870884720514655446532582726646141386684424361920466303505309046058692913721784521269841267653300240166452736712028574439119346943061043012016142140263756756083580047029687209449735250438776681648753755834691425516991732557725199336866411300843296094777881049003291233804087121074321008017757704203901007668999838980957797603148530052930276839998930369811142422271314866676513267042295079149536577785999309635574649835222397617492165941830625110029530994225746637003831095298151177094838055183282776050047344482312013524921123226548969465186371959062445199909093803979078233861420067911331724137053724216332585314487930563996894447294253389063056182767667089426646670901707813873363067512571705139198165132610856878591424689287152326949425027025766942789360368008317369547970511487549251250659002489028066567089252598109338560279119152982586051056411253106200087848541025166539672128726677458405966087295663996265204797289346123478495287361449422110325429168551157270407963633695790630285528617711914014424079979510729446057586731409177643766722793393712916124336111981953031473121398638480304093260463820278691086309424972680194389106880727511944526727016147445063874523774937736344498131021888958132903999861668082898372582595882021138412729738300554744281233065432568588797289058590412800493604132393906930311999322283687550569164236014336874675886599807310469344857891179380059116389681391250246197726879262373799070611901782817794456602845475630823186098793609445273447715285807881111205989951079486492541623568098863473678507175175901364359563068856165390548562100984835836896520585941145320771522865461933932020163589916608757616897629484686320292170259578939143971716444202757866164124982184481339452940031868761700712066184765877595004031582662608216612160383120401821933198886197013923629029051445137980478016182080269602833826298639008211170566542491352628260307715619891816342347343380864836536213600293207916797696107215233163936203338911528799192382384609507742189186536902052395633693155721580031457951620744045935911844752034131121693390958403052151341436648977982894292385392280859216159649912520610996223230703756102252573409271061007270807421814185036325624178046483096531122438197821162928744555867597087752750396139202355046766117872050337581836402571310168556974032270711959986603879278394277764247872218406331432190940433469683701699848114942345952879209785877985793412817582498355595557370060643918109234313968240620444797456433119844290499853265996976160827554004536280947373085196700474722878597802061256465011631492252451113038344736881276910252679436776991190165832682617927787119477619296267576876649834158297908182436152800837150963891376842345838525547847712493667091779681827686380719694153398194402122880199030689631553958125049684532866215897335116666668994652508131996593819594273421501078803569224480759973363757965960455671049675198070128510657896146195291185478823714127390337728279059313672975947334141950207897303827340289100408913679897964205618845973665275366433920056819572231426602171975636728049881616719887905204911043121973638353090023842429620891564949934346579073407498613881199322695502699505316367202957320722208097929366367509802414679856352378926830638911317906484786035934080846094622728380446260137961898743073345465401761416416114904662711490948029269734101903313696567132241952560292084936636954584904315985840926226054645691396628410826411348185815358373133853466866932905361571283555987441423213956507863486229835435023908479010343809273760318258290004718333869935336209850537474609339915893885942488714081121287637148109977847960408459327781909361898527990754497645958100581324454782210574724652120504798125650935623286676079689205300112689245805668497722946898418161672422971385052634680028756143060067278948259290967482316813171628593806267110111503915732189715622470891499079022879855957904485219392806709919755370544730412473554343969739334683922226007977850794640815649027527632189593431890218100266323743885272803387704581300295522749898291923109706036168170201770816483886401363100195152213042718130002700474232818672735086873332458983858060631221252014221485538025479214460589265835462058577913550331854830132078050807996101066811201994019667782815211379551144048329090609082434774697617451629273920992944265921584825402530515234919165370242993957275519890372275018696221032712397677074943301768845932982400983907834795884365401502709712289881041909925576975759759240293222102974277109561018567342060106899229823332962444788351379955770991102818221367995001644722574039846010863674836626277568393124401113162040194971732006688188317731852293597900332431290831610334631029819037123060564951401699598609385669590952150312353759189525940542243699091356953448621225158933656066359937073546438236527698889533323856504923731419054956125433851353147903446917004812437472571989912945801478190571139799459377286681450456709833610112956832908548065306591693706981998425857222044283826619896975299543160712458960501229095410950665903894125566791004459813285731899282626619594695100425276392470788940809106806525808780425293564337526416232163450715712371844579079154953232873388948704665138363207075513507221139925679286036309151568483393049104198984583908333341439274758397327460980228086420266916366453039381104470100853084228236251891616155112920842183937219918094228650773141048756380233787614289372981587398195846589913096929057637319045046998431955143894229513576038530378604437346972936018609738734175751437363128267976835785619700025079407505966064537134600651994009438095866572831601843430895336129061010283961771966600559251409790598561181650560825419992826158256770402501874757776848568148001960324027209474809620091562588387208326124148542918437379965570738286572449667003054276459724537528653635430452748546593474327913818672401635368546805903470950240777526022640821413270171273209057008932214393110587058567136406137900604117019373675641969881147541663041309872904736736748911219014570848936726083748902925684189815562522951326933059423702709912760082059551883405492900710962626963111150876807541275764954939209648630985718118605838271897119241101557730161283840935412190401760688557576501410446504060204645602264292002488028175324786469182549847926505575525554283303599052969110757877166459876373397296724565823721528594353718568146500731034494107600967370505821398240832142930182864989509703771659568915776033419406149035939035629701829369325075520976557393696909751982493475229233525929259758091140695948051072992204649212506043388371038316451386912873177023882203887777827393927086094532485619886431105827980759778346231185338689282386418854398785789712440082490878329996577569105157459678874402428013303926830174604309847334932941011052516928774846604076917054625706138160472016120867188741241506036239991651263892761157335405205118245566273826597901268545595283227302771078986484501609296433395077465111328884272941018891385171345508597864913919611823403539517801919120878756964486969097325260675423190924733378720152885484293152547445791523400306268052884419209294103027023319372586519008075204961455284887416255804482442671744718804871065218212114001374463851219146230491189034153057082561009834382933389016587807796949434025150786464302234722070489132388849198168495536701761321946814145232627993866165899081104154603134216764953254781239791326869805447175515505779083834750154354894091605366593533214267988923240488620681996031308717726211195963633273217227825993192609360927383513295357524396395035762771118769864520990983682849387519177565869759093816466448506984964510208003696892254411138965614821039312038868712159918925698709378968390820338188307100132121403287025180583260649577612455990148754847356904582959412543055074189088595513452288899616730665011201004659568053435928944164245679828297866955754587991430885317516344968371391036967749527406832990630524539037874993099653716459105591467180650222723385261747425186866931380592740991491370167735605292587501279475275380734731193319833602770541093220395685544911095763832146716637508781406816866334946998410438190521016174636588933264342150513093229088548200407656190285572267301785559762951963011094003770636464403815677973662185034527030704924151985703495501910085063726654311264812322830037289627653544042310244105815167772579974827095859475045489044170930796130839927402922401123585151992275845436802512076697558590292902425726147557149353566584228874075091997016275852027007273815414506983980559021487529880284538964102115746106728635869432261580336191847827218045647314256546903862090569136087238722760342314028623375056539520207021401329603958259901419552790866420240522280549865187624376397177558769488974980797316767607255548107124052883376789996915807371547305902397284890381822628016943779264742669792154338633611203393944922710295723617906318583262103471689858964945828127979681533085635246966808695320837197883002575578309851871046221867804045308631888889324636257278992980190681621391273377744193083242835600849750501181409255704895136872222787062921899484962392551298313388768050223707075221698693657696835148117499110667915277785519284084098718506856458459152592452239534526949443060598837079252148948455484518817106159548582970194496003440981835350509732281462369583354830599855029263279542922376736885418711166378218212096365788345751254053176378214924459094102251998707385959162640882876491023645254564071471940508766888362427368539258627437847101383175580939319456771709206496840146690560939479414771900807386411516335275066504986680938277890711474937753140003687719453756076699974345597015317140475005560837232885994575232317278717854283101837420700617448137363612187183968095268838287213801139779803409198067101863916292089463183244228686746343202346712769173317795391857665873021600020067755533710770867642660252393953016771595202746177234423686996980287392192743077608027725869038459907853756296071827517304001026031040535144679545597963222722307724625969197660165289311960669487990688020868466042745368408648004019159424463530020912326444418532252834537413624071120504926151909216994023484368004408133420440589969273963062008853397929795085801676411111858356566518903570652576840518747858647818280319338999538060944680879349859476462189996628937014245092775388590791306684193355109715397480742646987048111153224881726204937241409777227930727702485243276082175315856312198911221171186779432558995622442447741477506194520775802805650032955742937732001552650626081487003423471929448087234368196771922078919093421179480832615537670390866345326789203638536954943418583329585677838113899010317173134320548108036365683956248168513900527492410983659840078038996181402263078348652700879825342005882319503741703601107237600340321735047115283496309055318530713567444006632101388299624309592933321966178178900308832716222174322436104477592823253054832110858082182282005738269042106263950543292284102151384211164919047297882280161996013578927299087159861968330911091922191285815269015865686890999836765566859066635140515409456428468860232377337176243170831561218922801298360489078321540070243809485798800305444368786210767812696178647682863067403698393960789021455219976916143429925694727195372214533562353023586933644756924592409161056077088647156644841859478676906499453713496150899950432085503027487879166726201209004352158902616151126776611020118733361026884202200027734764110516160947150817045358946743589681832482413273679575553798711506618105657635553438623416945541456348335875447273573634812836967240195189358292317138272751501702204323425258094473521989435394294572857033833960261267124856746799588708146233819823559311113729877153161945702373476635942467258101359039120970708037466962273452054741049108935753864987587466908131639578828124088702437565927671420577525354766593003321584485236255008016325821050739915425978088641195843523317732232156857716007268387015547782810948057385133906465751220573549926070546837680775241690858345408235964003863723925693974314038290739183305539982541556145338030772633655952755373660193259698464147918806680927687461317507483927109791315842310571234226429047446655153291327886316489559760514132553229555617509714831086082884949299650228822590197019669444909441922507000902749068201406395213325016875742451343127080957903488255628961257149954902065937955550097298471587169971252490725977199111185364720955224600472736193902913403878729821530651559979239263706070485171157561153917610494508325932602960492097158004823007003062442078483132930913888257354325911604051858361743051748448165866924126623722145563486943939323651263688452203129050437579716159516245629903658611191294989468407802932936597327354419697782551827123390827351892686770220530511553943589376279076653553130662350767715369145426710916847472310267329193587471609021721660394086582616361320202697286148610343142888900351129801194931520019893529069302049882490711403398005438007646807337620114477878874107554499845851367818180524197047837601202097602746360862140954124329429907314587553239162506464911527456658569542617878472498143144794426685039481740042108937252631449215999212254838497743423775484646917051157417684279795162401121462126988627138512953886475670645086130292292649761013429632915944106153275180662173530015715181129550006257969335444214789517310870219036915802960271393907426492802892527070914312426920007418236411116111978905846527805171045229001967039790672145932068404721860233097400319337811350705602672971904274906501924492371418644673154244651313154304474503623535207568357055171835166400766219942539956447094275859176955870839362986124173965455571140628385562729181078737039873432943119026380707666685605920872437171796109670672418075318163033645916901792934044565924294655995588001868514688809943314499088159979955100976520777843714573181225928992321324624989547536645137469004108870308693755521612220403187429697629973968344198386212437371810653938314028176787197158083813993306010036494100527800780191125102285447496802169071280961894393369485620247493453399868550789951685638524728658099082746352096393133100466512728051506092939615387602989574233470734650474623533420066503425493667080127324818855755682557311778145272108707237413175889891472720173598522240741345416182554656046897361792986073701377670940554074284834641374879460099592040126685476635278908265213570644629178226589062981306669133048571793917464722327251983378462625742009441435363985482015511499458464645115270529866669608545795479954003824073263068562014564912772053029360331309600604399435282135433266131003483645053909110048194755646308123873656690463696717584990520243356381745220472905593847871139655399475981717165405288751784555088636227295318881001382889235333636011876344825953413305994562413820954050762218545147106659542020597422942278864393263360900592441064839421365576217510893579415144566992266060414508962575156362593035095796280539461015498764221081699467139980653542232414592743687508991195347082965468952948355499121784225202691191062403163334015590650899164600395947539189285884893359119137634355128939606746572241541191319186791420006316407627291515573920013912539437474982946877437556752894921828776493605275808760275316098160800821501064847450867136354436426296511854500712334703837135854692555970537807910059528702865837489251994775850431357403228476676672600251560956109245132674809909370201284479065904488351580839081022555144301313624465624064825843216029793453789470863138189818850926602657316201763140938908981364367000679697491316550318036582154418407896225903355944076024008558273998799599081804839956620091047666479585295426222584116156659230388101276594922136074826440345162190312010644520168778023944055323060068325339789742227190533062627381028974441507499762777913555087874261774106997806610389506515160938313666146963066583743371025145084781688411352961981911701172440395174317255607275042246116737566448895068670493443373490108735765709952962691492915836176649203366399157894692001939219682356609867531390386044989502843111032979322840131393328175978356145320873247696863892446580576319303443963643295899185317770459715987736883731940210329638347428190594120968671956734578118970111431667285928663879499965514312182857125574186366483942540092024609004401089201811273767033411725326644377783766074225921988005283575975005644428201264817050412307402226392971441007309541684427798397798227365766360956135172092485796062542598398930146253258364818530397917834428047921061371713969161352532069140272736084477307078353803755536910624742837005478663296668459109915935808541454667898198941531054596199372160345501670623919692190254025269424310085505336896616466718647901150942377907941441603146698010316596245413171530300880874726440727068349329455532992855187452600275403079698533048317054359632074675390147445750034318259977834858397090256987198169930188870122743658140122856503029707250329474568268009256569079091519355603994071610018450122853426225983991165330373906455254434752769647611782727061487874292918241855018702674716638256766532440395831735445879652050604872303677964448856795971335752777815967108349222629614872301267020999479807369090292533007713656150704504704415569175436165834826922318864215530408603632685884394458368399106050230964165162442338149228657169801515135987856049160006748028996693335376312068469980008282681495767656616607684485262348147735692893973220255801166598632455726868238357133656866631545437619368334067011056416995313611743512701349201072801266878270025157427742032332766049537696013843578238612815256052549914246874621822859324744693395823346203427961697942678005168409734981795352219574396507674971590579216571869956236633941422583705835081958943721521235032091183842854947387715482264058052899090434880241856561531116740332121210558271106122410840501989713310491131301392856268539239218484714023033874123617800259756998953146338544561555333021007592883348209622865117299095473643258434745853884755573670620769642479023848226727708806743124395364494227463146364541654679348431621432136111423731318324507050389163729726054791593773732056510521297329937590020928969881417587681754072008863716605766916043347495340098824471252919711524829645312120046516338351128555006728134062263093767054494082361454943910920513482684803058576253424805934458252612612127062518567728154797150979965722892096737981661522538991163255718871792166213717109299087453658502239444495976225071445884365240225300821074989085026124763509236031161854665077726164117319454085945762924171532961085207914113457808575718190062563544794078337947229910763052269888202425316193759751397157731977417979955207337447455575164504304265876441197933021471402023899139930883296617077096242948312100265282135645423223389740805201950637849172931686086472427726514607694886406446839223953866547643438246897413376317575155534895020191852425489637315503695071031991253653520134931863241136857968616375458647251558485382532119654654121994672823933358707364161411221097504696931973480761480964700165934605225060397001834254773364767714294804833882272161687616153955942311266785725642270597214647044628150601570039231865954704334573426021360629663063828119612049498703889471983168170063875530386511454326963585178302772594529661520168201700778229242113033824931946847988237837941901567847881125599255520107286474605120684394627938702368683263634160926973405424061368713566148569644713912162800316126317467687170830197145496960213079920282937144488445753884684313245215060151236128146672268357867243003712454296600186604501527983699950266005607722646110623982727166358901620835865525459327634316171573709525633357797375840816264388752068182264776234416575996040014669786630107434041380254329626025769278284572434031371504041973244936129749174932819471674919767643502166704165962290484421520979139286758036803074412289299298750154780170868397221813313372455809195173226630275758877069163913191713190225130145991116862684554686808274520952767729885165645782236054664314209371153768653875819561843251986811675743374112550213473401778331880295018943553160667836154386570009739702913985107349960543236510930739477193025291006448957221140849877180745208268853703973978100988679902543310741203209463668820902381963178216563426062081182812473271921490334911449076044170251039453903192450323486053759703167153584047983322256047337506448352660170347432753945942908758853604782896843072094073255355102083286922611029028266811114273824443622328481720030084478348148181266635412892867729487904978177237380310155916396929975720874466423919518767378027001410114396581928322382010182751161735566933034271008390965068093478244480712934681380037515709798017421225315364306229700920736803121664281317511238489302578949637033955981009239404411288750076983080279190197078184108812281950919035842537841063926311034172049169873085576957281649180644816258262624416138126005127107561129156673751302701896876415411117877297591711023856804743458061643348667046503971968060804977911619788667942594469354242223733512074873709930245465988891438519780170470652837976097300074903758495787212216186406927115799210185694828481058812595018993726530331593130714222079764533536699849712482221386688944863927381884543086453848401942009856598853001660429575946867842790747965517162370667244687819959268761785182028257173946785909808997684527987756583999775097490601169624364293170597587295587188654351705770737055976476252744344775259189141945533511287324070063634047958740275969837050968298584312948688224437241102310254654482049871430346277076741631613526819547656365509642889001395364908338828430402317815191389843005069666215814742625323578034226538031560088527775632702768660890612866284500495699668373094755220310554275764800391623466848691717570178987043530918826444195515259344721917916129013701406750780625822989161169106122836520810995429476150529666853503590173418349719945165299795893844611291061846388873929570540773236515291478041172516648668645075330062557914289990534352279917635248969537391223148055714760407821414634985324920133913048549100968675358055858276405073164678959047427846166550328891449903717322632315055073712740758362506108035662783110368324314038418577217826332116813530975646244758702924109925332476171450751001670701776564843985941167250250368337657204904764275924112819966273708140433236586149242394057013926050981783082738520257443633939965624860884506491774716249344265089047638362929767349836417014957221621007136029669968052205007747074822783876929942720882745831435292818161922999169059170782499587534664280434762993809285487130907992983449159221778985242882208280755441969923643498355223239671208787257768711872243971310810917140648685986137671800580785521119213222722738249799128295468361352538261555915112923157803384969569321316719207318377157267702366498222839698089189982670479275894286587952909352947588576078559863691659176603565514561337107928466128925354054367190918498878250084666610481423683418449853188052490766021000508731017831855111072110483649942397368150951757295621299001011937271297562124699089477401064683266101834383036308860368088239176766334224493009634561503284489680065846495648754592782349049736403526031495246597103824960539706940829116557524382969456888970052341006704922229510537904354675325077385994907560709699518335926211414868266456140634816599834971390129647932974271863072651708689154862283970340734488702744956215811205196017839931308765389256403668517192850844634188718312093747065841350542424980163407254417546382632991646500927536221135478554300778521479572729429027154579639837137036330198112168193699138344233372478323922674218573303789423148776417796945006544886272782120933294362508675122136578532954834139422026717834669198032970639989191829938098917215826703377385668560972403544182675492780423850888458385561153439884539484582109732151803330869633024032183501637881732148967263643187721656234515000092662055789475843588754194665481880920523611315769987607859085673715817655021821667207662578670225102495183665441683712116974323048063001667239080912740118856537902943938372404524048523479030440324444146769896473196790540840244176071998913322616941102362345446262197636731759835017795204775264208795176196238336265810861655135064746916606961382944247320894844395426257868839512112380167392952300941802642609606226072121242457475460801860644600921595318625832293491839727982162623689251025026860210880841955885079520883405755144837318734181102962867504912088017574070980717973573441419637533894033591396744568466522007656198186697178235616674359351373122162641755105119291617538108892176611603859542724002927737486232870865583620243269635548183170342331472186745354587505703421731372484949527141998848195061419915991115912100466186720500849228492177868533003282751381080085881320167721084032138058651776430541882059712985591015856479545971732649509127534044338989702260365573384497409950020166747565552664105932815527240312827839243323989692338125990704449869497323860938049619700911634605040342383726679906670138141567903737758288821605515250709014141285325418090504864684007890763680323236981837420529620437280583852528105312906151343627185407978667526637172574110100969785063126753583811551382696122636058675064654259648589807977182893853757309149919264969423438730542447472299055809424407722679375348665407817905918182976163032452071244456072517485494418865814730273296398852213581099253609031663369596661142363681587193952817777492240702647811250908266531775437971642888462114343126842888233450474143699593617674804244013033570356238689016582883261670542633741726426932586346632834589655064683423040962669314771736894243936412898553557076524565749727044418389029628261471513855377709860426357740749563049831295577923480202198392918413464090780810253096174146021566599508923217528832852746652717838568006973076318445168870558950514392363346661575862926902532858439178390074354103631939111562655925009678308697412247018008953160171726689377472679544747809961576181144634894388979890917182505399352647936403903921991767418963706803129649848000998975214865250386891163853844773397809021243256250653510049705940569759803628670230957434505404603389400589839901661963224333843283104523106243182290134603869804128069461467690932856203618627123982771818122633327428864486283103593257788322640325458859145912089685473971869124499034213993031739213482467753787982603108683010333059795194528964628413032757393134574064450201121202608109134776334990198819117516642143326087875778425641455718258328903473601184186885050669130648234319265052736830916132645646339217351499204190860021546146913567931827406870102014393724369482017108993835443143211478419419859585932981751642966676460872556658024600129896753534713024776433676413002773171290651947286478233437018773911140882952356035723273304815346512556669866904003004178452582514331707762965424912003905951100122032880740456488329037086157815222288970630121199043492303823204390493121643410625842429573189239554087379980227778830227388486320656018128443487984498613070758252369774889855920975988766242110787240925424714462815327491193220937166058779271819948118278942818918977849044545486797200326924330392382871343356314020478578901610897013688727225127189828501673553315298485649397552748526902762393066376340313119555673668690705310011090741895718161744209141844311723940251039630410072052955603560676644681917689352443343635654370492221899749454691394917266234730382399096635853058094568256780868273103300982535673001129026472608874309301497564047619397685052912766287114656208851392587596853233427638843040860823216128866530672129330259171578412628404492630004338496006712225592261278286533583636215237159120150989382173040485451761409204754973852575609056105841894568571214626349630527493127623203967549897435766679296758141395178655344829305630520365691559258290137293983059408703712820662720417003024249066684616239916239801676254952068815803022555203713167783035250563818050578795127377574284753371034936172383662000495516465400191810384187267343505162578992201151306284369505393470695085340271449839945188411941393243414085694583488337146834808404585372963744861348518275353695218232065121402266799028072256214576159213005360013165343273880211665529803566768591962652502668725561508131850316642162497409588928607365567011003371320329049752226381782214529804429937772123069679518997057803318318210653362563516231434547903742233337036597158337941340443285515191020012710711537235181997620052715832263244517317213747058960247146732788002092858631434782699809288569888400751421172575818720514979846621631778088133287699790401747909315495100865898264699901784824285419668868900960620914877357159950813745999778307627629944901739468044977009059316683963035116071834332814567291303048394858599381311469370194934503552426358458630830630501121075744529208137452329761764682144039006896668088826190270974197232408896539407434111413673581061589588091031184198152498921929256483240832888031894282822686775116096215557932672975137089895921863634112418122598475962292321989912144419059143612618282846336012410857119068374609710379897132191167410566133973480572547212006632334043893642097158884384178773084582603153169087091102714212107158485263159317151212013237504190914668144140982982321225132205352895038419730164151007623224348899449635894390035133624362583075297719391383062988935338393513622498696902820820279925747925289977087773468619453157875057431875547011025565766798138831313996508513856032188108516244448851891653432000729323818248099136308351178429021946310527564234437265299304820106924413589343253089657199254158709478599831351559282713374800756057180152663147287394118024972281870068592948932972764703964102086997655728206186151900451446056214881169565538722242055336329476253418377756429236148793901768095470304325135346387121430171522279754961825130960415963162701355900135914692863436020834683813844535551506153499275617237614834884522614916909435558045703292218774608189232736093566237580879723184765347323783332163714998059124597707384851483308582506394277346801599011426824746391074092457717725017822549158710417502972055399155878929946759958364969838554598089283410339236467859024027586202222208407673627276524365787340656953865184409027165337640085362647012289308693571222334470335465756889010061156501312697658448695515903669431463496631472337743444157024341158931195863142118290384875211578726367755952545795244392028144065605051969593052052723892829237852354975712661736812722690041639507823110176470971981697338209933678123068824984142816917636259042554518249266954034905772231843180262518251685267404667670225797396262798266339342637952003336184523362686146410015027393521598222986744495287466603569508068282135891890246713707129918732550934380179979383654183932664684074771561715626466350878058203366271202165750447192056199470284577641025852999478687572902236928824528184915343681709728856987264112626210793875126692741458633440505146578430520558452285911937151404080160492581097490596166234357234496329824548856457683460203275271280481491530407466241347824531573132912548360931391764782767125585104123258436846963064374110392665423993137761776271599734709205503747577182563148339528600358608795099269347647625927863817708510029078717333598478514554368161274925576070921046976910896328200856806403828593795712277994491449495911504417000744233645480651701003349781697901941958007541370042195468217192549640894770844720232218644354975376163910096844805287696279569856717065679948364909149495347691467278894993400518094761659292644324085407442049163823760137402230384131870828102095990833791410116115940033254721101725852855813714513750541621156828807591489115170800603159497891894056094175171198561585002919578266860000007597313811668445998494873240329548687404702288899964528562050828504023153215730219123533125570003992017461895841957122384612025822349031605044508990967158535989448512207460267395486721588923439423128577938358227565492017328809318118443505690821223803688634558858428324480918466227006679241172346408278743308981842823755806801248280232306527554758652619057214642352319750947488425162917415799087667379741113066044169158441382029491372301677668154514148206146931921296761262779985170303291513950341555236903147487945734996510827577069320182720538632665999401640616492709580288037306031242694946520803062663284408279214946562384574303233383702731650052689872446197155929039297796552542846624766862408408723762232106981419758212093815637183915500821324943778613025292882475762265475439882930000307256280302374615430970447591796308926665792890845423965847425833510126188187130564753315262092049027508735500823110035957962361757089413463767587972985644759108448471675168272516296327784086493316988957290660770571241087970131372462537069197411767988530188584292401365367097609962135026452431066129072681243500318837553129519560421926090358792820677225349157856133113912038768580137831105419571397521111528854941474891870247025984397126802089664472907550493044113676195174740528993300901592787415481060636820457265039649148180920351527110603606910057354353852218152158891410344718542223694563901219539739947689311187918715069202760707872969907370027502283447486054312725032921320602065403401096004037278932994853182912572513198032299120994054111455426689186128903764210210870640758602532102005786618225165489736035697913151255360348290526456383019546593669997553421463168265884480658366498093237922529421602749601624308585806090966579711343735489525679048172954017264346754263255086353149539506787167281133451575480244441647849632321923771447751498809348974903230558510401895047145610998135716715088393187101491883936576842398532972996304399053128753909961229790614835045522240301206974479957999761992545516671842463254033971084080895820306643798504258378800314808152147520018723319458994423153487966943569777297076373513692571932595300784892963080961599335969616170051667455643291923456731738534448070336828329757103586127599178745081189916225540452735474079927622352669976624296411420855432934374093114876622806301405165636318048327631624590450051918285786807738392070832566517274876615364337283670521766449525558936531265115564537501676418136043668343023199504533324091566150408059062866586377574948087738603446922175183891366828562304519622265744614841832880451608662162244472743398386060306020409817523453817733785314615354057622727166869448535882292639743918824312299480695045569938022001891507944156010297177259262801199697208575969522911776098329424607154751592472375900831372002379492096809395866190268526892281404825793180534666030240210405569523543242956368037651317099913579335029648039642594265617311763683434261051061428334204731817834721485816225612755276012427639243525202010104149790048774373423331820570874608746377179607683860136310469109221216534575414294050531824783255874901521506295740312391994921937420473139557683659440693693263408268651285255931281121087068095361610422701193910583222065347927738389955885578392885362085303565333427155279712149038221135942601345284407726250973001056206069655717021515248296496295885633181728834208617672057334190717231766254931889641187707304848168563231157456856822717635727369153139288387552748159848554781954165343788767561049610273784022265849804396796171737594134875102014474860964412592994559090290470246167804033375537212802138798701851950300155643587177548388636494470450851144146292892384602963204431837431306166293064261566036087171896538104797191224838492006713729030793168263943237757616972625400026360825726406677130533334920360086486456104250523034633115901597922417809246070932151120377615559941559376825844872728315952258149786959986606255507836287079385943612696012218682968945247977763174430487114112824631788718598968765408596402927390751635190633139223345698329482867758725788759968130878606084593491515930955886838684427089398168378334708389474546199613904688153476833217727763951945912689005530772007529847796492502603693756663491587345462357352024652510231238682047067701988326404010008674040667540012434050058658204046517716611940447464696034590976183807806720180457326574760181595008910317954750798977698828950331995007091828772555424855988359993812052195256652805491089687221972606571585063923202126425450107394095636104436635450662792914350798935674741595887440768910888102902994038253211532259362594395389583014487524186785109619058515759198403567119163348667015852862654095268215480613995866408639557136429410969343954582591960280265354764385749480052195093837638195526691257856897584671526273975960069871988986553308110460982342139278693999887090191564877046478126510151636639342075746681840398222811081740292488413621068287535356304885831882705317439231683557773006341269272852264040402260653148928871633461466829579189685074161231142429956151108536322211711233902592117531227375242224034520718989973824994759874727239606037986563928693259387489858144016153898142860725147545862299609536930199332819537919563217491575297066343684574916939183901284160398882677283434588326412445902720667727238679458293918533704585228088768718613166774121988074006371883081551881459773513236651468685852770523609422463150482392073338563355953925006348758185437388379673794638208075106118635371244151664884615045493869211460702131970229705275045287650328640642954557927279300305754061630311861407501091725328386436598903811756042234899795024412563368628139638801528061911109936778357738307952047217597285453845393730219034749562974404979933520939460657268995893423669958861931471766601960875921757376730063202473641831164189241736512257539674265551202568630071959483302860980343550995106245172402533257645847850739759027270835258153564198277702995649282766943560085219367296650768028036236926079102312985699673309802439250367288419124790068448010553254958098305903324031896609962079116797120728421628187758031342599315199136745220060008618695051083066248994174133482667047454784240421547234731674392712185461494386613465447125994640421310150923049008321587980424271385311295732864339499718024267150487928739166004866046789415362893232423774189872130222176619507466289033805095474042961845633524466428671373791543084971903614645152408788145074114223617519130790883964486410447660291101985549208532091587443113013228925754510911004710206964043262746726682618584088020540813255302338554690700910878411525423863576374898035618939036239456874292090594766950735243958757841730923945308902530751799530293162698987355990110191619522083892731578028241829645336232655332615018873352995193542485579225261058411564066100166611830267361457744500861044788157365546470681537821917762957969735907911848629558668976841810388301552226639673015300564323016847174278734196600671109583992651642738546964887466939706652690887233611096873605797738908607393093120424555462373778282789524057403473276370621080702657805083867762941104186276730835569959336033719446094385204339847962136466526554749854732932656150484806424926146910667140500810657804246360202406835365921496882738472596929834688845911527110579038781783804789280021363525778933122663325245807122238794232518478265264946819346594974861856542704002807476659195979169035901537819293720408242218412491803937345484841672699496592859888674885425207048705459383781407230383855222060175808283411776479865251283621703542765471952801694537551125472327021147354591761464548807278412299319570683160807252926550533630187107186635062497238115917159575002199083342582594688828883860542820206825147702147039150476277165681727186655809290614382297054174567093002172242546009712613819464427274695920399726797322197829871327860001390087661851632070660972671674594829241309975081533634483354134169310288166521340673683012634448266785764157143038885567770329540593861096811685327241099070995299437703331810939152416646485419659837224481742254612526302974999746349545252223958974178563669968883337758405776015455923285725529837874593680399962170043742789694287074118950006936432506543119263971300454739873832186546403601480117258002622726477607026292061951030732276492952223736373694624403806180168526429957406507137738295048030900205216066196899837431305602750596476150837113995458843359123096337641603799818749855406647728805796541308185927236331103833605303332843094189912560055878253382721766605841776925305891563385641435295738224373039357815202176405126925241987886989407338336956277039887756401810621081113092346828115261515728153627774585518315401361257911045666328095534995362621962539488318259888513221032627357989751408317226139401850951088276019877474583887283681834990822135653412764361425614676658616884962934312170091132657163666165702957953875797471462605613220498210768681531879800057016344279242461747892854937005385685138574516332033756087629145059260970609856747015179441041547030303290892667477087139078226665002039260629931348806509967879060631603406240968497524568647662109659420905158255970713483604090911578437314389502971825836455080932890715105102414717851018847170842441671624350171431764892564108097051662922319453434909455928120571185985012416605882928280914255735687429163132720379975058339284185802631245281752291592886108904616899346413166354136982764036803154066685306582551622876535488607203232265568365535171231098254535824090072289179693603859116667279444067394636324678304861665726013624961511804116152062843291635524197694203096998335751699050036017497567583392800873864408027404722183969328516491395386714909095220941841696346205951429358440947538108304955287556216813047730348464778269273129997829065319646470572650173745729754651684763262185111802456172315509518461698213147031148589577383178900375743562138633504235968435932041312361077503940600358182486337794339864657532835900362979201013276799456719246050603776407508149366229290084552596850667181488726216324139173453742759357971373908854443291876297043340132487352189210167219186982105904984086220920220260820157768497253806985713872557265419299931765090034405832489249902536643599975900993439625642000157013573939699985898822719497903204432279413329151099022569217077885632344186733545922506556589483337550197654554144862657223658744113757771203020337796117787231793064434856889673078819781713513376269151477063029574886725598769465962046154477425790216779707631882436616753973693474285426530742313357000475410998498706355419209286072077613573628896048956070051956287473271180551307036845568853930928179893051837612800522677357180313929541874604731844964643449043917224542698809268686250094250073515915632578707324041962872061233811675541458939639784171560348704072890276634310205081721369508691527451102527628577634280013972224972904822792342538341795720619461708204861138816876217945078869151801351150423283598697673544835362015474910999976460338143241794420026445247370780092134811059715345398846863472330782755971863022193548264121214355121046584701421503657312889768200609735494495416378174980156587442739041555359454724741978892721227508655183552292390614999780539845825094633460813597747277514155394560966305918337923908091773737713698601488074300069486556969398629318943432697075388697314806782432065694496141097486936173681121156224622564340521825012856018844109831814268907057481943156200695690017235120228426249468591511886096362831022116676560738407919681686374219149363779460926771236040513253966968513327868375923662667180590596073621304879068521777162881454852816454559955317135422577479243120054979533515899320154309099515035443312779023957229482400079786659266236951357641768215309101325381299576003440891083379323323478310072615938796561525906733975427244921919714898296779500052627490527926676411289689322791916969636118266201239289587798918316736637141042654076281881432615785787804503904041212408983833003913534488241177915309324743492364659223728446631503936102723708953168113092205319743781893395744986260183498723511972590916031037272177691601532013014287612266364287637137535964300794036290353860602563941283524221607872297247881656762776453095232116150485688521013543417952158814402821331336247857382546965581404622011067189700902265248072061214557645788383432648311357317216784064884162988342746380558509413909641134172811195322295674135200863388322264162410575427410192065632034637524230660158890982410035424823309910063477529106031157191352143879024953234838893338790117833309192913746349405441804076722716577661852155857218546688148800905903212401276395812254208409659265381625532660914118893463248340900307011883384103378114072460446247188810865010145388000496099565506974820989667211228693169856732823937355870122455551526696437778086641586074089692466089628761692110310480573343644782449478600850168050914744236327294497832712991032551548218921890967549557701222772759451302153293122527194426271194222770465969641702916244402834230200104112087414531832668115098287491317297872551381358174115097526657509926865082938025814406177254457340572942021538089214822187034326592265101180593167783300320712080617084114008771271933031203838007361875249658079360197194435388737871312095448744379045376351211769777696372491242859409265108930016069305352484817359239357951496950328370864763333521048642859915114659549251232621539997077972475456210665372188769276221691058814634591925009001827049581246604997941499529731178751509534300417070579410722457097480158545696885207508604961179193770270980003157099251687234643537455435527146629313783205760916068104100085007892586187099863395549012688297989711006086239408475512140360274866012271471492999927853554107008871598578445392637355838678293103806990453911916715738552926455950388117439278055160092064959288293822778213383481934090653374426746297121035558028883288223637320201686646210744165938120987819946282022075570629409145105099495442686298598868186909243709549516597910500631521933702413422598623957792544676242847578770757341151639054099359130125370056192469115258589602263089733819759128155940788890826122794949343342126738512331410721821025890419747631997150244395892663806208430422920863747399710715674947001496644832869454646472230729338195303771106171882998456063519084351398633891669798907482669106385478267950030646274081541824377276018896336053522019821481475485757098527945397123908900009017580811804067624563463467140555351643927707580523902116617553864437978154538750445833597300760724631488967280311435827777978696426885527532922015398295126462271801028207818209074803427075257556780382542495103899232659851569903465785114463194937201780438927535441229305836220517768817769265094225321846117792975922197899158679192075368701314546834362856339014761689725135882585124495008046233476750745338975872075203471629385154656605485556446740492403129693639380526007610108945563839286786592603472088833298180341300922050238317954117864763278908144674405310964772791939733353942607900811710162661557059646712762149318454023349964845158885277613837794937607381813128819941024122397560431568317008094050279069268625195483832550247550210828367121844214457872304701581179164534611390904178599180954644087117959686618915404365396513809354287334537848343725781475533957447602814859609888289391818459771570270315008243060927749784508946308979449624498951661839924526770459308558574927353435298984077478426472708661246365768158400662191822100969097254122401848617939291714364719236112829794530641476160862345135259583955392519095604092485888779646834914826261606146518995942782387052415443258983951754800506199657675784636271115639467323132681012574339963198882655655676574947339455669384502437663231271137270515732867838736073439901517153799007341273663184617599284165569533312698693305493687002348259666236068167783294183354344657357616783133594788161278968824661963442292709014029513910130771878802541738974633888962331433919733239844881944880169500958718592898685425563447381277892390497211363990546120077084374984761924184207225218398609154483986955293067371712894720681620929383654492081877015615175069880674561754158472646144406551570106706282694190451266434003744962618270488032808452409038986809253761364176414003836050919318700404803268654644587535897355578008822397253271179119946227772769864629715122126217857204999068079233203370325085794160288273265481477920299337224039028077924047336443633955798191984068798605441636642736709372321726354564694873736119234494039373918630442448844356756132325012474357444241264557983682013532710552091012001946450106879730465618622134707113709363448800158895152429015830309910385204405921507065276947384648647083515637962622385422609291667061369942143538914699801129985623781938178234880453842260493220485387019769179366981419230459757583072010913431528071056768019940032453549076702295598107547040362498594108566235765846358630930933657597752339554653040747954860042530109119181206606448170330851504868322654324326323691781087880098524103494281413913644183976453718958175431127613489133352755065116425279818254634828819947501237134168742978828809118471962233072531844035926223039739196978712620643566875912651872948431347643082712159155013316696614979898327568452707806482842641587093252428028276994003560842740225510970131707475725310873711412342581508883596797000508996733661618586425694894464927534549494976113230528382448941543879277937592048616845192697566594892182280288074154752233389417147963749690316256048871186258879678227085720118419898575722415411462335879315622920596222840313330302127617321370712290625617612271062385296225672642709557556219872891547750312624117970000712460038815870113746147713749405984407698687901820093046681045421721845169858094459455256993477235071244522412985162556664804976390820618548975276072220325563976072296413889267802263003562673105669657721563403076617679887941211784971874154611095432504520441570856113386610184820207537200005686075583067082899520389357821456232127687275067702748232555499406148243956537591456738693640790651342468438396928207502794997636381288067575494674628296221473337689495702078649895798518814237275699274245568245923365894281537549589728944842400548589559132790646748726563572225390456419891144136055149311175459605882490498687811284569134424686958179954342922364533241357609613391238653922053516357125429685624570715896461771703616721442210040615760884838434903656663140101464880140325065443525473527916690507045385455930577620615800369385569228036867609037400686897766226828934329991796683029528503422282001466918099399857299848191160030682753351753794783701517008582402313898047118977299533390840657642631024112942481123946451906733043151336537604210355062589373730547091878023132756089176772523759526313471145112523193672342502067766722978837693284840801674584276048196197565499789456361316962829575895810794713296910276930102761175836113743315413116961348767141636292891757274708635798867567314236499819831535506461403379760340487506008028363720557494366999043137226033309441770018560373724604170019342435368866400659577083523180842034974580512540048894500962888311580599196625096579069584817461469745671812954965224274532958917114367026089923966510771816581234369598893743610913266450817820602789252538865214006243394665648819940646635934290705948962326477015762446587858994336811629244882025971788872409253412959870902875993861916065941434644185336487851184339243793285157195463972723529202848020122911568183359342090938439242463429039516156931982643761807487818088936960851098112699804462469679734728467148062156837290411681731306076418627361633945540368796421386607979260993810623434054513596465160738100894347789841524983768615285229031043109288906824144614634392352925178461227942128647799383694316255378430066425172842296990577704095045875185388897861831277847447761467725863550145902212389527508898753194811238191260173391033791870259881722310722623371035372744128418531311442644193740607109897973832039109092735199103179122132014897749157410364916601294020385684323272247980517071683251175172740283958879841769826422757992437436976762293505564358395416814753891707075096099078555620787123353895148095942947150111477044463788427543011838402397870424612314444745264541676145519248456625298674621856918260867968998734747738679035240196334134118034555762469787067880063745918191930756960016045306497386373057887534607075873037740901571740049305503033397881616540099812294049899808262321028269980086852730830944885551541654599809065538074689376679572808899123387511632009644064478019814681997809028461648656028952575667458397376479508909159327426910783155442335658294481897344343157800348130652975365790586521757630812513551833201417852574440682644062845104887842665119509139809191257832136619324631102208076725305132733996534489896341498115785922812478544889725107187844871213680228098305343766486118199696736482591432755905524963083935707253892666196692893144067353502588108901051869186926351702514323364748624673304964052018075601367644509689251841988205348925352248285101259927130835289255615515767244857198096091802154562931682338265699828454956709025469276437096675257871197639504755678587405081212861753177711353447867065382539639396078151678035421889536685314905188843378615585148652541269374915233216697855578933812010724142380683110742576317521238469650216148751807511693885760323506579114750420542356751616399083586997624715672649651842540638426253034268585604158729801587106512957518692650295990679062679206630012018299325797583793539768501788829382286804531274405763420618671446320935617890193341005384319156906044186629656699856382649437162820450335184275335031846528406830900370555962149701783230443985993157094617381149256832805105091246554997790065939258950027607103556903048101895021711561425126244957611868530102237739149500125190689473386925002063961334715947156922663044397912842684232861068741178979719356895355587310689957415862194218518968153131368696762714682221675063479529206818036861672797188385679032078049340308173104379171067367596441655925205713089673686870162386582500798219128731844604931094063669773117758473830648631211223421608817252564970104597897616890736329910792629481620310945100827455287096983450325778471685043487370257610679704339959336668886404744941892096203248460437196465998925023891763392772600334771446173423993378405734484791247384898213611170031573639709047327044281403005515355323757103485158636433992172138532923263571545860646875046689067608215871698436255839421831519617651099486649421963710211162362063780238588944447951323548814014338463623792718057299760280098844468654966038656208068475127092540603454390944602016768653916289494191884250704701988356851915285313465723101923225524167595114392127776486879719716877405697627251588582564151033270438168340058308862094542771753155408557982821933340122202420373992705548210588293291206828542243310388653020683716853556414046114660369176570483856751144647234133526648178960561787645483549980156390046733869079913715602686280774555953216769599523888509865686974102514181736685063893401124898394754932409256882377713170369215199254178180917729883939066742572668134874752138252393627132256281158101039412468447099167691275279284706329949003572436913854295426983290730996260953728454085985671639450477469670343519632830644336368821388812166804388669674829675493123019710198239655906517713369235429797159594938733988667132947845153862770036478111351503979915075321505776691499703444351189231412700588788598452184376632974771424145110539634785588223446799259646817786654767716048395174344311512199447528227109719493667697520141324348100169016568988057080799104823186730919784240021866148148085909444842470258234938666185132756182476920728729026062446125770868515044362385556644874614936038276092755549552399048211000839902350356724384416191932044278288244823307714352529937844815067830759036923912303537434427914178513890452712487678391657060585048133691312674514122829219019867236104140350807005452689386865315447068590730287947854772526954197195042437474989368929612153312517917568340409309632647423254841301633071415589154633882005208382847149750616100090536293378959902787788032617547836671875973686979369541497410846923372870217537301606801923404619513427605775409758822721892170943078478429803111788750393953061703827429967099168182852063887288276912585642259548412057340579984165274703682045489240350889688015091630519087484503059374543899393955020259949230993357659497295834350464565061433749204307289853857053826728626122221480913744747988918992209408144930751636857927461895367348672534239696003528269652654506370245327909079625328098364677902417304795271417823167091469320589653941534114214221119893173613828431233078075435524247708213912493820195901639250344290211350450980860348876613590716493746742546993289496300663891491330574675153103102391697503325229436190299481774318688251351911260076707820891322754258110649949740858442845155695114924088054913883660577318772367101214781117324374348465761087656858494422409788971422059638591850462043421386706090016984111736679508385507782359488901824093669197075500488911034741660606591700669622435041146136897646448762094120408561575756359703136659073192311347884926230246300290453355328726279203524714192058849331202172484907181851949413913507732913571375519327949825572767174637501823459037841034635507992343495308484090371260770000908998226008380911427816267430178803004232154779900178581268955527202355310901474324678875076063980261160345019690211109546117809068023962790595437334537661723657179335462870736827142133572562236874823748383785365386566717055344980080468116294781725895746269971304982091767855346859690391135473233776968517244656669927288214558643071243543951240670570523296201994929244221479100565997936307544067855959330247769540016872654034903934184623787597642973699420857704030178823512732837940065849175029800187194513596686348686897591814938999611354334664879937375786639477210021734838960790919437554744945084541694629172636536743318165230600818593216657422714380438974203093049121560533254724808073426420458329390620198997986111046917463680434270893708716613861816119202842406503941676384014370231725862992629499812981937805722893877472142318515659176988769624369145498991229020780842067054182363247441123979904795942605651143652407731666153985089015127525061024925432488947305655214484617155846357922514171657168656602063137965823484493019406404749129075360371421517424958035993690685797229252378464431920472715141149062246427626211129693353768697609826649056276486865384149993854358052829420502630009354292876065874531441455907141276878484836512044394394692831744881927655593839863218222611057391891281978296397419518157294615201228007910421909794012699372889364052995111310184988037186987579475215839263559976698188712474585558719919832785895193037500681277211000328639615225247919516598383700810139419150159090545187790696873045694663259616823206774573870915498162595944140277672338417002834874374572162299246140882949784439932283213340706811674927247005209142639622168831961776268258505387619830668956607574750754227761585301181527883682921956569471675474050096158010354889877219439657860262883403053199595675413382849904296303455373596007861535276849341515463085636206015535954150069408890856257838620144244902908565039063301335154363333672622684576472957882778807088865917812525519737904686727292511914186580007126939359078549844863904324824127041448153798818602206144268732005458740044232253877436216308180119194479765783365160377668171248560467111339699405841731500679303476588763638766195042161162160371487517416805323917383592317969943223707133593322250947022460092248347385621337694065051124176221888735818732771998792723720402512270903746790813111887210971064366068380889691145245063158394001241499651809979440445256430708616993184409407579289270370079811250869897473257365270975670053309138158299776565346299112057255584264155049547257322156548472404289431012791620733885298185381847264453464709144779008411866634415518206757682663257697792147456265049673968336755736925867821566561145459038696987303788595830159006476350768129593973118236375436307887707205560334777339131807348020764649915840963635132796411438758056812099377905495704004022658922279499884798689078057978776018456608837797822876400827891848588986499963195151659343916989334876902222364146608662275194777633384739803345309650069822974177212043266018816680623322551226179852003445465513533032380960056292085279705308973798540726835184953635836216383575495707872906995827440974850255016001278976863482324779848189336442044090753243308780401994719516042551655079630653630303715739440814889597801625310693217289781887178486271318092855604086055397881138857673609238442202525761445207080168014009334122941250896290822726127989129865651619450833257577990026257038910694046114665310992854071662544897807142005750029691616025221500584776522076367951192653451207134521167989683417679785277940649555012161197305147981504315105805148670868951608784542166027537666127196661187862081654674040290907706686863598397260628984380289087669032449617595253571425383170725908992642153277597828143888932937270320637763380455819315631231880356835995172665795541830046631004706600767614451395969452809570084159330169424393902091252501111343818377541485222027759535273733863495556278289468989597532383679522352835132297509960919695084946621615142621101985367964135849307831836250061734264620489714969010809764191017266173783459922166741003298826755025997785243232252946413636727106339004683145265839930053208857641431878229502936774947809420007185400083222097558189767659893616546054160485569533059977057237984318522573347676306416131711448736222236490932750829082871323891324079776475042210979441085882740470793441408860984294205512523745244653086398494615127125862810580089320501084446760008250775013060677099607479799213906842224562698031369429848879517646852463379351146755781722061799383070357681855967641668074931885366918017356931800090185169266658614827126583133651896281012845464041088479293570489237179277973707366989349239658473005478641891269878586121918810235401420672684454812653986203178482459776499015279377790215314476119443341189788422212826256345194335201421613135615622872070374098045015782779394780505764592654767747849880684584549518557895701111014181401663679785878208704199525282026219639470028395632308606383989475037482658544605601901992514445601808030316277583408756133049827719485804296202478689420056992144869075288170723103244297019297630975370502282054825327748029899234026051615311505729578289249571570573104139011161588213866475888581964703080482592623592240664486847217229443867067907307167900109710704533685023819158496286262339310924063330920013361059174402850229417270226146486750592055053840342318382652894912707756796537738163684794072475717683759789231069729825735337114214001244448122414255131093711787707687649888805001219923368608232478135614880653813059798146709659263396697580111960509823134618880487858819447073837379208199630973356528729846653104413462449470566146795935386086761356493788746926829735443891818453133892182738584737792804893889435372676741779371711971810136725542144324980958826041040239610905893960296327226803942289392912113936187254155141398775986575909692367317618719390678826595011066034128538373284267059436090425065889170435910478380082177465792547181683349735170205513911440839931286546449501593338612846130561272769953323688299531492904711932787992094412655144194862966281196925209458456862548137572381773047511100518123062093518522620691407062700873679871782352171129089361120658557910796476942098156751431001759691251413375868585081439104554423671374924243624093950343242864688222778095798396547610256166580441842214110393916971664798249554858029207542825430633110378633406628649734394116033674381500295071141540896094189360242053121252833868976337777060482791280424471925276607632082823828803007729036179756972612423374387253755992626408492999451594975450911399912456245084347871909112835633107223348896121499309658302421469183974877971078528417451940146041357144634897234690121814769122747389943599632804077727857319326281005123709684914508331828129840196393742949687399551715307593352603230362752351684502714842060807321207842513194081698051666412610171385699391423582318509717343819078430688815710904521880095628939590918974363011993481937268876869409235774086505133486760699538232229776055175209280771455433312245477473105755097857255376452665048444290552515839021110146961556208537276212557191636404409429738435898004090501511854017525673518514663923710542767007498063871807946574291019061304023425954503898496349602887669371881788896043134901209423609337128310019643950492336456339174263942610754841548620702665228282917258301517423979729900959538567733797812141899659136488988425807640575607517295861682208073150367764215627543992483711575184171678584088674765390853737891092874197186805821132369652797765291095797664504278319885732765001061807274419800337580756353059965784523630758848928394385334810741960515164597230776670834513225959691109101888839003245403251964809854735878586420967107529130349320444363199807683731350039869668593317210323047911197881174511542931302086566989040332348531176301729761410425163145605335227675251405491360593952574325705119229705031061252537958735735488809188667200626690404812501491855085842218698818560339733024111437080235148559708059973113159325886471728403135262169841738852643565301522593531052840413950008801263113415029362610984938300895197462906389096877880802636071486232269004049149388442832063522164681900922979617418859262780023150761529440340522226405149354706698791509609521008894029538889526537381633087896472714527092241510262552070365689514012426927685761718802339124663781242582257485025983851358561226872551629068427774081395567710485266602823273374533501283708827685705796022163736229583438548970466032339333031665075379800889679496809861044477745442088389579991859541999033173605216365788696115733306624721055780433692575225327350246785731901666349765984108451303150537416543438073471214520201800698906719896327162651609871319249764158541138452722041693814734288276013526798704216971353930746471662655341881987398412446833440086550858431751418686453848373311743902444487229467047479418028854967109513237082288310449846870093908287745900823314364488743184481824321786211699706846902234151677259786855415515948673974956698760825977903982962221384706811380910867904275422915016722139236067835010454741936102677723521648165207148965273986248496934972518630868980707443493688768133756899202131429559093018841108835387514901377696368334463954949102061243546484285927037615533201628443116466850404641835566649156314936723130686871357303447083133991054938690208362445100251759515354118037893642179594179546764897178718954891806996374817471894450516347942182066659377921997451612956317081958730573892296010621964486536353930792440064873963294637667323181799381155338278573208459123589688714188173798064259481509758085615307762768671431905232001998678548063295674086011972352917400904874866274288073955455874278465930559513248663913504525543113331059426404866728092221132634094274782135912136296757883293389381932256245478249501549285014456759450902313622244975861290944808451093895507590436694330700815355929432675311593292969621515434751978687518163575604235879009005218647852320508181776173262466483114210548397766781465798550197511871491819344387945399789561853045050504921684605017580681402314457656766087540893184599768067080010463690927259998384128935294198872398698078451578839669943756441330991386681178575348074936939442463440061299917462433666393292688980926270942525095307515068345122518384493147214105653063719839003634853390161737790401194857541787967291066010603334586070698076177226940405284689144591345499460125504146249279575475766948285623715507105183409804750297076130855854632168997696125495167136422104256311270570108926836790775634834154765326498468853981661926435379465041617226104334978165692515058991349945902094048037935067420812597929915978674314459698333088378988078063798646620845948617063945535175943256600115445162869882795349361743203098328300913400441183853897346842952536073369628282356591685479753542347588447356222519687775823634374379370973284294633664725265037373606358572328919195538048548668956655477622991787225820704359650669739981333218039241015957363642329438433152972451722287842891447537632889202159814307833104231229637254416289000491341309879366344659547608123200766008331607567888780357912010481160862489926557035727939691265244957129283940512184940579072520831676044982871625163484630403808558722222484065788264211974746679775768181764963868922197345611340568677133190297933990066353971832206481592807227542526593480182254426956411092776016904886745062686560965014232834799906008110671267032894193679663306118674357493138914743861976431479132371464441322465768653454087930667350965586569303709982175075776100960402562545205477190472553192136507768738102215591274559157591219322871476718961801911079603479133181020499447349569391275169385907683109909453565399032917641529428699916348718722629507661130097807424358946786211675284048988101277993340742702497554711618811466473012703719450897858881209866849429846998050295769751455300263780413364657872364618618113780580078248344944614248533859406104935921866831641529548421244998133563682863338313949975509101698168403954422550043649976506222388574553937880258630956729260553132018926443569460791864949707105374037853438777982867674382531747982959346250908451423757335498496610944158186539091913978011912466840276624569089775016470654539379033389721876246881557518675774666446596441222820966098502662687505150958399772087598872846122274133700300380373084508987189265626424553956917278564689217473513589423929644807982119781626875477898335921162320364600096593807033158646497641414020882789388752328039397168494933123639050352961725893296760560781411626797869994231239169736940239254704987119023009319489389191020297913380275315128267413375996947020326645357996584116374502648887466880976256295468919906508662772605347744190515910859981626406339841999280851175390415452861797414589308550654273138891686223019024214775581037722852931943864292567714080465053631844610793849693946304600120261327983238664332978186595117954282017004302466493429653331324209940395612189107065181722812289822955309548228108462529573313702166396880379549528643746719012356169264771140777522073517023899726578157561188206809304605394770336720394578209451320826222626489188032564291841650747964553993097684680083832390828653828747974929357687078670300197460145837955707408495745834243503024893983359982780233689539674215040338639115692111370612401266707876141527505112114858078144607264296159049595603102369005462145060479151347100847204392009116218743035446158560838929346719635752361204986125069942480295216079360367214657422447770388335627838934402234390595964763904845098741694993382471271603470554820551075723760978003912465936756011245405962750579251745748655263378423265394558317600682358159346179756055184480512283544044118400484655404346193667731384523283241287044505214726530491961391230706410314920850347309233702617814344542359979226839636887440911907043385330639443012185613983338297129982827956342866142227183764930074715528370456617394693780210626101093455009186508242365055740980393719169035675993166706680952070992808194285258538932605892226289819810097473424028349878421468767155486726801980911380980389019439977863686215899052099247500266801909956004788588480194412255911705030101335232419262436605561236507142313302242535472899977279144636196339422204863219310083534738378052277440930353749570797537150156699354947716934329651015390794718826490570269561041342008314795916448021314851603293506088780123300584231785104471943154744511166207854916874534200944968513485813235400154866775956011461806467536743974064339884473878247248337849176798266837560804442764667430607278623928085358071881011415318207312970667788221087078485788224272432028318336283422847873441542440197702888520980974935502392128676890799988582773608511363701427456829306382965453450178156241864731840681870746705462595014858746331441050638282241911302525708656382692545751729462295743648637102606177599382650136822400880663338759603796692870893516090297652549203112931015968942299174846897537617962834789747612079245375226741808242548043619712139335542461336976719073392538649530683260779873643305766691810139383329396745429267315972539755483271918779642901272244685049774900332783147406317781473349737489505561737586711638025734978233296226498178918816223091766570759755210574294344189713539985301653579016559609237165179265655861017782610466843456828114514938942817568168180838069764782612666307739851378287429479945288176329093964422057615592657097148245670044980986940555074484526299074239843980997820756513800524151422302297375071500803095405950916781055422386027382815653195290694093531235624509408757743588603264232633888382640843814870379202072003530295161088094616004909550521125200502527501034374372528528716993666539226284221178709571232695674703389414713738413942685480051973915499992558855688755264987183029951435811756056899198304144789819230619461531355230618122842169483846020829980523239714697287645937862068747951196745194554466780322388687455316917808189208114422275447795726483044040755823746627682448077099838992268862508375569194415679465821382470542859428695112737768179102175948080575358641381038354906867863927052767387146609148649071560106059563522634227784979655720745943646942010511654288311056176049690119537958335968015408882649806621915619528928275298865048472867408286199655237287004961761310939817515301642048351447834245535906092745716709532991930397430880328580023401399990072935789360731052273429534693972175188220525873771503735447399293022315549694995393719273239234962050443876834644047223795995907418604341935417771310123995613104490759386475816054522595916842222923953860579473275001115680946353750182515203553293702291743220026418268798764696877086697575465491263531036290645724444899414593872498292641349101116246328260511081206482871140541121163978414739491299852466707817592927582324251066089414107462772035349021261042489093083544397010485630166150923030099905738273853678606658426634444204442569316795588044158844650820416308534734459421270945074397988246520250582495358284518583148275385497933240173035792578644054616854412023299164525262651818750318429204068155318554972176629244975316667678596872450695371417612592838569692710249572133196414060091908478089498149191660558768397345161040280441347313921024003439627196388475114689470054283573804788837042150220508952231622606942405967211604636838128465619569715925057139479944914231792363255522047132252657853610701255954994503726319299196071107455595376259781342286618883037859113039010964852904278384856132172650902321552356073593068842426840164132328232951796501486175957171143974257701947305172436730562173556673044834391179137146745576129531684049810723879105071950165612377250253713071310437933029828298895919335057370977046383118451840499520048138613145890504656071989516768597516860649951027755244336047587681611286784504223618485591895293447654305396320506550848335187498790998580569236833323713520728428528670663943189546760301765320476046480185176982361340636154096957756966976309174936534776299129646234236837590135389800414333603009619152897787877559566050242372847816875456112403553500481521455418758682241445609931445103749963247124146702883484059151651877464904352049361559333127761755039337889798720631936350882924074885036311097423910776603435667085509575720798206704647214186529347683328829821387381309512191002432719392902642604896149521954794147283537540556822389626753383892420327078347808620973063482310535532315842602880937856361378340429444379746261976259300682440517709591306940143433518521882127732056616162529510664981365139037046017897218819167107197150395479343902533788885754769676710946618785519716785533080234794073436894488124139804774126184184818161411983766147622555937565387146119506995416187292927599388553474207312159378987959243544632567856562065654600766489678116775349782271311353240074937720369219526081714830011313121575223985600863852050369619341691794789807609625668066103937759183749262445945005381622798817704570515558374112338908620089136050349781778325891565834242709474011919424686430519559454190010646482848007481256411296136533425285660362996755361208408387423206885406418965012260957217381278359866421854403445286142947675293820077820005134255059634694420694961914424783002000814912781671547485087898975039805305632716210758506188162974299793136269725522205663072677801807133129645788347678493972287499647520377988520803400714244942540119171274298343883045858350960610908607975505680361395882099792969922506079192780334322282579082723354863224694475459047813491909209687766369237913085024071343204410141171266379760806655401170335040441198678318334488542259542471194061051535802967013393170653612854566977462160823358324518872087251003118053025406119114229184976859732709697057447264299708110569227795439113846346662444704325670520835964819676470252741695462450579496654766778344713028462771681820384355401926600463519381581175771437651536496172186872857348459176089193995344917325664328078637366291713475543193777793708323840520960603707622950714060297840574840760274611010550068760314408373925234320871537500665010527797596355853911924813899920162400500669641136500786881088806883121412493136629348407636349243099684534607368296525093836032569480877336395359360477716210564610768613391793762195749833177325691657560817009804565833520949952313240227694302758155785344668672316780046786972850434354628382867900316120161502245785447067182792045285505949721002281637814483772317018905310913898135407749571541613420734407456281615796893333886337361208006687084364361923890906145006164814631997679879912288686471991307102055733705530966619739691342944151380553271379127740550594802202728974661113155050766993151476028394975209936029435531868844240898402917097258368245147829322314831692314282014785870905136007028594248635467590403715671862118030072640507127728464775047044367688796270867447140817598308834142627028597605554203967226181649078013632092836938302943832158531270824531440789073570866763153757123733268696213397582511119812424923357335043782225546602767253739102844685197603291039011561641210946988371769088199191282285781744976352481649573738517807049327860360917104808714923823844354267296595294654825601768868816007512645404408738456257465242844447605408230045094904655420287273477963047197703433037875933743985803716762838112298154871056726245524262156254482729066570609763827498692198956046929902807516597320677862282257801048088770069226908729947837330822333062524226049793353261415083379235027378294044582587413632026044440493985778543689928141737282179176807687159207803651720003197659365969618008909935456574946067639585388083525046722786981650016960087213900050299143560684927395806315838523670660928197437359522486888261034676817446331131302675796500649271162923419902404297933005438886703213329769576229748903875387238476782946362712621172077512956162979221297973588254422242306514644264581345212957688965170328391403297269261075478381304464403634664152568614282936736246580352172401543923111525959239119391166428954674736380423101059125160312465494981827300280558984670088042592691799116484283521216929089013276214904286203595110384398039052980909602106349367964197378325134726273358600761346614591330186188080683844127503173467830084335797402095480344836856723244626381893097465193350831966938352781287468565754236013980442038918266119549580954148176721950277168536376520965054661834144410249126347575115749623977671647410695720278193831847050155190300018647086731848964732212446817026185057112785008194303712825703191520279654183780940988371854250008255460086039352169120049968215755830920231067557832325856377169894022789349953979896719730948721072199711826891494156181922896468712958901484763510376607286693800413350141406393188313496870926442020344791732041004840065048899973118614504783129316171950533885062948170546902596794870153545182124260935018528242096222376810686527351816448808139205297733052241247376064440774634247853925706170485652626035984051287701891709058141115135432699951407581816919136753216169133955684152662690184721911168336102192547740339731734684282397398226656074845447770391971707608691505469433834967271517301911448760612131119181574229902445233662923141572757909950177392719938102190058045807710226237045708696134277628752473155412405483801216505672006224045976249934582619142576744203105700644294689708521600444145168127934503260392198265711757763193734050323653402225665995124078110485242498215519621400992329727420165075333496143313123670170605670337545458602409094352499818804156924354818580714797125931091040334636914935763416150191975597765587475397457663702067184184369283657652503075763505510242187359150960435870402661766169858630596400923776239445094478312806698940023856521963245975004396836496190793541489152304993343868135992621908937423068178264808924772195636067522940084913813688092545200800899409814118626519418881357770849980548485799696494487234823129900551552669325089203601908657610548331918901378505431737106381525709317819430881310247196480828937804089456348588475949606461065771281898230589746356536368224092213640488007909423164606336569474498204549253831865436187098948977155231189690210529091512172086253074068602857732121212729869786407690282729779324559930628484247091868152227474410363481404752112429601075790316377530636083459852871011771024466433233177884606434881380541568555333717838606961524243925285183944776770002257076626779922080176472486352901562105708449694629983512290379716803496503830211011307104713911139494828113205074544328583100114532199561357354761684541919214203702255277113949599083306792763178296252126281138391557252534853808111642833979351461136517528738973525226166117701881065464983806458121467669658663728447805046769524844412602075745838928219895837955806948074579744097353359624545651651904689632850096651154032722004088005943961334308132198679940428933329582574477965923809515070391234463513336623612201250965102614262343691224219998365767727259197619488572106389532552619037866294601385263284458385073316912573610631530381086512288199030753062939757907190720618704383342316451510695631942108173772708634340363119532514282353607606433489967520754764636526379158456872162763107734263591463129321808641394025640195077384933942344660781274140507279689999799742388975317471067189044542133802403412276121589706320156442631856434481586103429808065553712920090232811271847154132770430813184716586008820070358552827793726224136769224204312137351674950132517007571716240152224471073502166663868624919748957630164245845680911650396375452399605123711833289978150037981264524632144880107923169685987270422744312620977450599055525691950900194979788500507808605231757786162364878776884125539540370582219048645817796052641388586218583894447342505400612737141986006506776289892223681050014232192973187297831393066734607965259839208151589237114707417393577649870654152205178180659168956573345544070485431940592157192473885699126100581633958734953302891040355314659119665835311729487405899122661762561797783670433484570616554636193405751009452027943284401509054633285944015373453625787092084602794131285914927596237544015996715003097789716291543129349045219015192428189519255012323096140038293339449097505901176611520034134849162650950174741503062161576030621184287247660674767737778230063807034269111934455995796740122990334127158330186360943304412616954052309929097160739486651008177715474418506944146233716916469013514986214467499588373099840784176700568186125458374506250403137457146693772769182369606566401115870882554956606499520746286480566475683054074218507679123842158092285534517071216677440465722555639926470625786726590884312455282218240876817054051819941044801371655054965116560789057683033368252755553471965094726589708455726260313438444270739844593199910006021598672586446336445226971613849786731075072626587675446870746480012277475702345152972308028627502188890223142625625270889768824422034216196196251617366998528983781332731157174763789747185292268718846057016758760232874735023861789456837286717603749734611657453884839598661762476234628235805480772868502111791908992956733133464437554465869338003857455575490865906263451795294841099900455322068247252396683869354578743616363942944150687568324539329712432042402875097026882615357061835395332775315755361379185294761341733871797947267641150401506346692912767707268068344183252829872250714403799501264853792512456372338356984132129275179674812904150758037866528837383331688184917997027240683014968522889071907868678237941827531806752286978041088771067633691976145884467215358113260806874964823954849897192938055920068126986289938207615863306973437967576886911081175291881256097645126242143952340990252972226510063209444389305794675486849708921233746417474813320308726012504921638698485349636499881944182213713008427983479930039285383556948769434133281969403516499769442432592611424593159165590869501006967821347794790248294219138049174023578885878588420646802769831943419270700254227663703999091600350636283742497078547980267647703283579907234494816688970033866597770113179352408104133783226414370474370871175925514036667573692698373125055555034099023757635044601995206139168285811098712991933942854937561938483143042734309527244109067154310638948032184819807217481108690614923181040175232946729912984296016010833902970878283473076682111578430225427742168945118277172890345093001667742221652349405102315949299070772842113247147661997819909664192178462453738904008904532221493606778706893574061695323655282835092170503307086982242981274422680189769566892496062886599380671259865005102169175951241853072737094541646601660666264765991165566652951421020909596421352901986574223473748391909295937274183936083996246676633951689659744561859597042545334200147174438646904859216816671587024214881353569689037059916179779675279158669747443683765129074516377370099163418993823651511478522523810063842534279076371882624153419977960356962266127187000245454934990464222106473182713450292602109147261525332035530440963458999763539320999942481544002124585234751517726427980273999958925848552837142051254838077451827890911846115148546525331277084517214897233692502700523505707062841034597147935881809426751700024300728821269805625140143449835808770049365495044406647168886292872942178438803824239134480878924134558175173818127233294992982158349098531900230444839854908016762022676660188979650536733720895399834048425592707789654935884607593371438613805230854237103061674594449181300690795882545282093876926022408725938172536571074244168041907084574743243977276860284638337852811971467117489932582855589474951731856382170465720280092617735743824129357291417729852428283819253247689442285888104020277556793639666852652614029526586442628124710812768292084599794007032271145405883783158690794246726337172204742528883007028818617488406644967797849961239351665297039613788316305814713062744502924547666760115218607790658429580577785734827971831640588780262058975245322871140105551932113496996893608386111375959519829973058102217831692537027227327905680198907605426159104433196661948570519449277732961095496437887039457303431529247673794352501590407931622833513150144323909495824522254717420915200577571838761440732263485680766717882296191624285564550437231600674448741028935625000487710123880458903021151622406102586705801476053765063995487178299814416036248653198843569796071860844617754285977737093353985504643302982845416337839551024576937628778733529285998655416828370299313241312803803884387896489316933790941270946575364819624688946887473141336342776083651204075354190396968780715305269033759655397897676824618563234747078561984949943860362218201512518076500939710725614521847272559221503517159850463941229138977507640349443288287579354194323557351047616485139778427911693751763685794707919346790628888251615015150647551193746774064199295643261347676377223263253674552885066880826875954264288525686399231666928461058376269680317138634625551713243771972066900035316857122453423951211746189946951245343950884126438349411696624823165849912705011649556723789536323770290709462012448815821804164340045099528658983474090672148323407739867772240131401138429883065601873624630728970728669997786647223059015957395845487163745536999001691155579851489183562449992862689849408388706204307225252606960192709306536391271388678145578049298681991992086235260301986612370962917655231461331615559018667664989343159523415638096114877069679881026469009737563569079432231228012807491429254057702613025926584954140404459653984236463467812405779879601063033790766341896772326416005109296163486949148019130370284879658252053315484693394835198603134990209639534161568450840074082181861069760037385875699351041245091132587266934179756679493023895060448795939314689367498538058942132498650356963306633568775291291468636130354948693375979534937581709919715790996301925011380649767024101175612069674227358809594971658440939811913918516714653260389706117881772760053497412423528076542662570794520784804738515215187063858442453793833309228166608267115286652583059905460259662446151240116375542617245578537154639834637760389632239805174267928201403248473903568955457341011611926342683974890147280691980554378223468796535130035196310250598425812667993632627527527277594758863225253120658480374175517183354564818899776883671635011764756923791079302591261849736352999607231028967025000428878516826783780189063496322425126550014477740579842951648747560018791680077219550596333818856209305191968153085095456925566332241606611850483232454244317659114515091366168836436589425456924293378182517431894106536973461065810609386407952097516263072336250235465114294081093541961099317501312573143113607971081874130220263595314111938350369249571110140644461748819539427241378192233342142606865590966129972691646469856696480083543858528786034686012424216425083271217763377513711387433266798109625435237700627948276556448351774857501197023770264285182041831559751017340604793263121731485402589969258339392897686585682442779917451011044826152831296781595182821856495401824801361680486856154384485629261265451084155604529954449437270995307014923084746066777017882871537828931081581892121622824216152854593835029164083677468095667271274382747352850384734277214349066920573974049036168330186890933347968463521155968297527301482045861025036355348006904923781037167873994490597696298598774402054385155777508322417364348232680171171272754910761804821820264302455891934214412121908853867429752228786927894528806207556296523716216420100427733512758400384040163598670951770940399971947198585731310053868321230429856358220543454659030543540493766082177936922588276731957213885678498954310010854843214929137172950867051580411727214720968285207579457654516546079585404900195121728525664458719389261950306936825951923209171320512213424864868824461885067416540105115257146933741129922687337462134868369926944548692314952908359302969277053474613293085745544841532120209396596289764237188081869727904389208028372966569787953407188225418499590534577984658223278601864403350063113103202934354250757112300252595997331117495637372205149007045474518280813440519917215076059621363075528055769655272334371533520824868254485604070017213062738567555807345831885809492387997320511960388538430590109660426125643899163956903241589089859407777695223945820362853612179835513182503959494007573888684729811271202851375821647315923762010139589329076124943928068007106493435573572153149055717142787360079009511053912401752120628139995252664750389566488169239127350702864989094497856098775325100903046047237525088798968855606633319065568396486146767824915495111321657669600832964712972611081625953712772332897429337713040265631070374103283023939613332130451211265722893891992507432291672062420381312319207926388388764261944911118993306114519149355431716548873184929508334309711512007230726231417613329304675285098231908882240399229992394403643379687283390576351709222974829121736946031211112477842766378972831577857694747336344354069941817671727017456274451514259246784532471480902891425998588438054761278876599578152668636928905785021412179366095652229586900672205468156090548692416067676946754959079350687435134741338842281791383735078122020723182367258812576943959575572220384298621744924567108168264591934088632797823815939602366468944671567091075916605684959282210908915041531880344716803624666798111179003872100520062325274230140008259254419133068306721544897786697366708135567120648918012289422839779785286198104662263551346989726328677702650596201899163709618502251453895904623672492113348064300651516095620695630678925503662119639179551399486262542126668014738701702848825262247772606914944516439514103860081927717942678525603880789780018129174784377126833403618716916882226262439329642546931367426389543059539657837973988063585468079948717311051486535758681119715261722071016049552104388626603730916664808343647402606422830309891485519730938233971094930840301632906206275051341052893465493492122221048180058131595816428834238863197777242846400011513286610174857827465165119122011153847644154589542522855144036886953167756469746822155339076239039122969039219119928351216974911388203142735547986189926167257082756459047158389556618502533669872699842718610296995663747981072065178076717898752614480296749500138061659748604058752084119476090519644146286685302834139826577576390248280039512860707465045995487517982722407185097099213875902567499555624999643403820904376138125083981883639439368374437355654837476068512142375152432266629041336869532647839875036251586880573906407669659353952172733821628983878051215316457258837251083732143809282339002419869814985403753909530020812495232687235727479607867367899000736150449809948898804432100246032250459165142773126538380360988752938628821874744786861205952314194794835393394352682053559026133156592797708655478596471513558652612761929145305343019812906205015920415773854223756990005015138785675607958762117106811065494546986150263250176985154502115314162286110164938055169283188428054751349329082591010516862768267798809299481917499455984476481296372285274309573785562507640691153229519392397506131519693098448324892090391667239392055567997660055537881584156218852432509541232207996255734199619516500497075018392902470963843817508161136661493793661345807184096406891303837989786517164555905819765128382166375021359234170605696865833659350738575761430260259577619973957000271733457516044153992889477751381037928324579721265903332349845168485943114554908406180628814130520837262866134098236471653393147573920912342413735649149131443077989591241287490333419975181492929215599158145299992427146108465133169073112685950945364596937096439347414720838552661290621541281217565488512433227177820078843383615429652139144138536914204796851634166132087904458798651301967016438089710671525207290693252119550017823884949761358155324496926320204726459483114695848308980604736607527403312625753371013134744349140192682445022245985573153988042265689625909213511430239314075120034596112172217808193276710720804772064923714234701834089442959022743821313446221930043638944071753865758391804144574044959946252585664852358184803346927205693479975929691408872067283611502954221949200951692188164814425070369560849751797489219635602865814394926075455701291524791383997992018133893737238024271630690612899049203436453139693727373500318079314180537615548261246340714675214548757566295925091269750770240381416081659089650008127015000271410261715554199915254597874537268574349671300781998998241584521839194237168620013489120127221381290814220876036209656141037184541463818036981656770257524187536991108637412075934838335113310761894340010093284325506504223035063813351326938963737815209787331653759340442114267580698817283556310334091362215485571933995344485717842659167866652802394788118553165661989953524756238743133811163320804646058314951081472365692116273283089082866519035631728270625600188728233820561573303289446625810887253291414556896415591723691824074676817182050542765005855045973552598957641620013953694273432981364961591180248962643678578186495344523210830383534995989465550038919470406103314973181979867875816786788623639585596607478019629032184959775990850751400402285957265336647096848663707843430334536925678254664416938866944648786896793301644265114667057681188146503676369117424795341453355171119115340277824586165214556158580149512474273241576841331124683998190255270448521242973965743999835363197978975970001183543837593560794442867104987094794708321539912501819326695067800451276003164918257183640568798615926985245124893192916673699110661171914569454609652951684994187831868222840113859703821435988766794986672570846324996484396653568322430611575240488857302788000447515589134336223803862490300727997593180537629263987982288329693695088424540347538013770058631688045662944953638725703595136708331960072097229431313124830866698815890899482235972891247547441491676304154383297957160900216045579241885596522334324130378109874658151239024622830700809841971342940841575336088301280348690200500356250412116372172712562048263169431246151333486376458089291099234371682060122702600778418934467139916864861054888695900976112297325328671901006962986853277029183442375842987000729452541606830778148694646867379598799054670927429783851371487302764660650916681446539417066358963750013118130137499031522067490930669139257342375351574420978758707421077472804046751269778832084393239953631773372819460983511672053043520480700754717465131254366360328100293708382264435369956916552736681067737328135889733665966197981909573057935667271712788916311113955780015095392900590666939593287425093683037054153742217333212738225310594154951854632488617039683247334949359165456712383472245123468878007800251513372595883515139264342277737365340475381437278321634970994592900580266883623135665336798370909293167596905882101221430054475039756876985206638495329526322743981672723316048962638882240598510298496905149906410325871404599968720356536280615638311611718873114212002323825952922927539592621296326021318219330638316123551335937769064215164640848354096164079164245926444127887196677582995622332483618886847084506162900234614629803919001095761565651944376702849524957514160994513791343901230932156786405878248063900680868660724667012007167926346744342468983717241034145653850365528508585198831541543559165031323307406662387698890105655491737686119636044952689764661254902177096573386755952510900112222594237766454136729825937178808055770499989438605569031964849941709498449866038080182473815043243522582551484595847331770195030930459028555285124521147210740506292716848163596537644452293578145854582893444661133842487285785215109444548935899025899146650253170758316525231701476733973514173160404506049499582547876835615882953596824826049669139659449437133475125159118789262262399530241697598089747665435173795815141489352829653448598541370139143591933027664890857404822664029733446285462781283500565715881560630392215452714672832424267669112152855050155436375951203240281332324681261384299356905524454573986290061580602518948578060714286114758551351372363310957307233732974302919143941615602810351845992878260546970213785919949946140822158360872176499372681270008070680777176457915886713833321483463108317892111468951333322509701147787449885236494908689674701984092648663455759288306459278195643477393157157878005286942371439651015024549343631367424352259870402012948413345755475058768650360134707807800349090297957307565226019323369260220060020411427565368031120347816175956739070230887877637643261462138137562474194410551026299813727202391403130510143298211485758161881058723980422980775908227715845013346438467885512578005514986624819686929124216214573711425116275164027277522345941841655518409094086347497718763323952645136133340710520763558717900968429078113505050670372802916111882018187658312488826831213196373439392283616592601178396272694751868854758461119002710054830168176559634728366819207993939942537186756291761420838700567965466000598683909021359394406182908155239225344024591775151358701368259005914486286893531717758546847982866013726835763682421997017793543649571835120205876741326947581025062397366590165233514747846745977423818317327757012764316914752647617785539513424552691891640761079977264824109421352829628527662037414252672810239577158713166194138789161400609532497371342490444296123298177817529898314418659910179904728717855249439250156763745000694941668109241046053915921009857714106056891598864604641776704216281890378106175839241352535451473113754278080499080263500112208171861734721428471993247773319080051927548364875121449610580904065327469295434979447805505805578204842501380175894195595626705853784163308214705990201455388868302211549420480157460803245591198289519081610025165124606353820182740707397165422474357159892056840489836302684694997637789777232541588183466298600368900003364198549430253864682639581737148832487677702070122557937010427164140586888056268209343667537039283249419278822934174985802731453935991234261542908059181403131542357699377457611579117974308033587677162904184175104069908255614072059163934707808302527645973831409923763822804124154344893629785635601891117736343434199981866679861020741379667561904777969329733696447430143345495249451725329096546047410764881668153660512213457252727726972797095157547335816272152625606751432220123190461996166031991128551177372490392419281959885355477570271905234904674856001389930977834408517604044687076242224892571880871512896779649083676208438478110923956554276077382874118902823426480194816133021671594903136614639653256078996239906132989135170729967414950999139916473946428712473554618934005288933054815464094076753861891828783616800378527324987492770006264577886377398066711062960775728199564285322283387613331190768595251807466267428002078875226614251091332821153734061495907623288860670315531002281734840211679051013605982508243918693533292064003218930025941463200144561050123467334453849721074437096681299773708725577881235739175617404325207075717984203413815309118580724503154240014640692861216373225615243980259321702156884396855140997171745266387336966988956732415419926693790557808478546789634925187488217034264015285722433791578272524462289445517995459278183834268429189684937943637957347457446431521635347104312156839006128452646853720297949484894440450155468247836308330453689121665338229058068971827446521475691723714411212944405189687400089092691250540740163121448637255197559546409346499301363123476371750393633466640706471462325427747890094304185261524015145164816851501478839385864108792471991736660318296868989658840956452409335342443892751438730992106317512116722075140839071077657801081871565283113447495729129785312630316089633743034978470618012649522336919016634293551272369156306507214537456028745867552309095637453019050037076892498502084303329781315429867315280493625458944865647053654813618020658029533499833619377988239435953476499505530004265566641695234714558892541191077713696977551602754049465929006471188105094386831689947178936315030003234809515767850935351136401923295862138251615271954353302248848527332693907574880714222082828926685164495129730722967454793657803501227813135639126599478982701284008805404912960800281618993513982001454883504128958658417763270347964050776257702299020272140598908493628464619995040486190488611641477135840201309285100017778873148946913599006812996653739211443561749888811605559727262903696271527343083535241966389837677865158192452806220798191438461784877444317857839774318584959404812125693386850656559422566864873318340019092071556190088105977337058366443039994533562678087521097168415084816438186455935333742879273730698613917060977791573246935499606185265899189199466943106137082394275860188380355960581386292391429236004217211601794985810624363912689954593738331373295070937238919481167496791129626824143068676465965666103795705745123738888337488106742177487578733714422968708223924751816478488195121702810316736466945572752852446523184294363445214660427091010071583297196810321634271231438745493780767374930715268033324321161878920396704685477762244567840757897352743654171139473506348453581087934787295409894492055019006767497984130743255593054528091889906123851373089586728715403084748628420779077126015674500224286701505296882314347689422414649136729621196916684787210292543280799981640174238199718055797858798381038050536324787749463680085877114621407970415515321973877502800325666322683642231191075471005791191286564842935369540681361940348040505373450511221194216791161306217275352810951623304890056740119458871585843939224892142812420993470978271085973538211288918233759667092038473446508103777668825340820923877200157381834290963596529537938497612112148467396815621637661226765203390187426198532283693434575284759907340906741586647361652633167048854462403617243733120099942336768079854616206339070409267669391573699631259280410817381308350537356880441269880600979874431497946535591677364565563386578688660984828206685086542210598813730219074951598925080049210670500712299872371113423860630475904136369372363953365664163630875703170640359246383594500691961249446676350129476365786410791025857122559285928641367775540442746383033004415099142965975322725700916083338599017808509870761057100539338005048554873255326468011509019532620433173650618059203221462526292257377978680764360944936816181435498744345125217787539784178290227897940607670224003321119193715575663204635744389882905377064258825413882294209025208978010181485372067114312436398300905299310195098014675932968769153596353213902436206986279068255007964480306711150703222327368982243007527698059929907536463530441523055788999592807448750344582759847451482170464951939953545124348528974079088630806850292079648602247053216407535254176836242662104740966653886957383034442154255109366155234767403841513177928593685944011985624034417818899864265784015129163557197175720414985862571194894085587929795622601859833030909782832358193294715086678112238816657467552956907139255162667307399359637676018049013658037761438392839844697214420277687036693734361228633592527764742851447879246353294429690183416595102785602501539307227049788123955770969122026684037006286091228795222994182882042262633927523353659603392511202850921770719775872825585847639236745073936507084326033284829348193205440301031094428913184241186160968895861166061640373100085350005351259101448271565186148337802173035795377873923922886785011434926536144435364529803303288729406024678336244343789010819975818293399946137139421522700687508447168208951632096022556879520026772881503915106842946411200764421435650330630423939237312671383011009399573686934968981479930276260364835025064408922490706670993775541958808123369450412994608380484578616489286824294284987454705502307551420773413064387000767166230613000611558332689092533060838831214443114240429423496739647296678174563888400418271374673018156340620493666753791333767236982488137735914080919914250084216836733239494041406433294957380934742837357811182873100636125525058450995711259432139591340974644461784743620778531488695997971506447563535959560780716000330743571700916669687386748018205834170309262103894542573329316742105731649658262425247270840836566794804235953384998110515765475382843591753463281844886126251576013936738584435716687959606924915095534019130832095220852952116460597952463875154575587250950120009853596049991459019508895548677069573605059041030733144899106379659494805972027951378959550056031298880321612504082822145751710198613681258554439704396744618176112025330852152666871306385130206829465012195148658383814472556065120145203186354188178060777294582299452498184141655067360058936271448664894434410303262908086808170531686614496480027537270224234261966038142949155318321330746234232142317227824828938766552381634426985593842603363545696012485235628857194101391917635213695586121374556745388590997943732358566671486330811713907223939972227889630936243604627883652130231105419905170557921589068288871970353539273884080162172085607169051706331645579295576604278829647427630675146570930299275348676883364516927153210398150321146565965044718252722232323885000105496445425771973005239904815483675517252024334184774435294126804211459985039228369135835663829310216645806039741463690532177213734001154768082697219851409511879161079261524260247295466242346914105650830095794388427885645220323078794316506645693752070861363301230345026103326891420178282345374199745260711112440826313330837307606389823267822127742770151899865051191468429285806224623547327241640002200818044395578677263365886265937098933358273879370626763520929257513766356405117460894617415762173792050493441601794454040634049991732624284644027461656707234418327197338462257407355481191463553862829404364354657910687468141237212647695869834032804736834289904674456100354307173911291437600738795954851399208543108532117607870424419568533235629822983077876443326961632993663614243069103002077799509133599418819356738947721327631725495319333439513252933302143245289467874872232283334147148944518888722177824538744515925056075995260372187519949942529454695748607767205203741087247063011444060523727014166675060621214942816631677119848125056587316040289984644244042290272525935209951018931970109607089601148776613925178729760773332257232106736358729664915402474769498991362892728852048452068230984471341703280067009421841215702233664123711030627575167494959116699729017940192115366849406420650261089516625177854673115901311228182100276068522277522100294640164145439898866600937732983950256909215779794295992949922038747865775981157234718979994354545821707544484684225303223543075033335398450406039188216283379919287097812732783549278351324772896862969535174833042892654290262447009971331736357538975956092008689294809016124941484068758662405575958440569165060346300082889189390025898375986955368383675421881078598729128577354161506081393034188569836771763673860022390825737303913502762266477530122163801964867186806428342248316774479785917317167271966395018236595217804631549244530376568494823017996785849235865216063848169192522672605442280581864947331388340364098718453630061917275589423153278500152451460104799458500152554191101019851123746727623806601027025709689394200184833330913433305649276660810117786509069996824424431506144594297318176588465811948631164899835045013428107074047566604523923273585278304300875918553297524824337026237822496129709548964719337502149669103898132754026973639097213996222428828852040258513482013928405710460748623830108380587259337567110101900855369716582392392033257517363218504851696712802730129365286031862746274892018254519694008736393594453593059923782553152016710082017936710097159565233476658685015788659911194535802497659636288556983205171544136326609743737163893590317793146416482684531010911604933960591520395886003280150582952875697430718618482293838842849710837246453271029935115083481124844519308530951856620776054703771718326626096693319720338367586540299660293080047903569003645301108562883113813997904367989541095914007893298590479220190230084536236079834590252878283906980012189658597699782521379980054999417047966224871564527427891933084167353770221779993062741553685450308955501755005766262934519686687377952577329166609106442759150596042209221753430964706682669702009118373242635623479413059168994258633580608304146636433150084633883421385583139943571902647191531434754089816789175234832763750775685931061066013465704756591771004410293408927713813326351652264744851217546356439186497359557364878221611882829685479407349875197512461273368314347244995566539746792737257817025560907640567859020480946566627943219142588708441732271113645108206117171183375672489049189776172104362177618016853336976909433474317502936266845387027920551393606780391934631080053883365544513423719288412049917358799162171566949611812367450822060771146984992856679133893549963336168206106828844141627568493169431609191147764662984122838585291536131158357485663259477149862516289630338985567254679201515267867521824515983234060340334969714503816741215623538431197162117399549580291513428394409150864063073318125304595356862559697791657692741418216159653618790222357706943313938183937135883501531575971590927114601058366509161906530202436633058045705229610425755983049935607384220934428293441437421123159613464665697953764490846100425091024156089735463283007959758147538591889640576869748028074561045203896589146607067384081216801801699666286366873816552992018466631667637685452755114605400388286011636219000723112342325888382693049320585583650300061201103611329294744321442714780628928556301290149335019009873161023912525082275384191356397196164832746391352476268673533127209259092682183725108651920410229367117912558089693402496221340052562686529691057800810628458900337610474984052762041441331386735026301192357262695075450181833725703598574254369473392446191877704887242709817235286953037605564007834046066939413916608323917946678851116742783002984484334189900936764094639192161277150687385780037846674737166367346397144417293895711861358268663919827493417845316164607319174899755332884281822781485444928069446414793409421238146359365806051515289852694711844903522542671196660303602593154150049715850233800017459010741140081236871078066654567148395742832639049967178458666430993453128409947549820870014872360550385762853806694515963899370887387198229439860127830876393039608705597237232371545225188105616122334016593173588201569674916495852130198101488664455119141458681271542235428581199976761449915378704766650617706511508357894317002423316368900801554609663091922532926779050048893602975445540897399403400316932941436865857828666719914256744780412096805322700202657970099196609851301910770063142288027321681597244752588786220631077026768795022490521079767981589793909873497975565509606928864405362499591305016182650010803333287433542634153247850846014206087610315939294234036270817836318316901380381310184803492632380495908938986737476224603397169418252711050997865902127134566375712620334645984512525775148413880453634325774973935525221548984823959976753626866400202720264339319238529007733305340621379333116727290078689829882218459568974097607602740299559618348282878610879869006326929079090020580806762426523476304960027099405987649816021377587921766132555194292299753294326302779771960652790044954460688711477197678374229796092153532514468431782409434692580070470050832953293230312824674354633869957461688941005669442334371186642767153139707387567485086476694982059111216860562306668836855022342148422930701861448645153926214625571606218680943138217921897812516405403857316725972577714296097002547291666872112995545378235563640927224439893999416787026979729982836996411556180604284113837673216837537962201259821478637861456575716651830959153127032911116883244470739174124039303142785174788542904124087119404954521844001389393117374162746549410143617064988064529817988204825409270716234309264611699946151163190451166202182182712879290457559064882230762820277502864813391410938180587419765999133573659405745669583744970585704243283536203841212958040003055173435782924787711287904615112115251093096643656173332036891853644929913789082653808250520039187161923806856038206930530934589655313883242582396218341991283993062698957471980968286400208025815522082713169817575507550521860665864169021265393700081374433961410423627532065091828720102069089222912457474846184248195504593325912100240778949051005256491928301312798264912419885601171546401990874144241886215667862418292806480697955945241838341458036853051571483863569918207767697109042153073207185530128485357360008816849350831620335625598716248304905431095252110373111442146872423389885884518468930083402647440078212537632358679097148701326697250582393783674676124605675774052782952954884753119669924282727408759172847261633716139490264731647432621196159940982792848753336178148631616653366669607298833427788600101449176208858348411530344276836259674323289137675438316251519204937722634016714807014971241290918575809786249784539071248282641336853078400240310842168299069947868390297293245070944346316728631821599882781036261282630280112066872569524395471638183759814524746619093000684285235093419924792414458038448458057861159169594185188205382814720946415691813006381084289179572573137409476053680296150213115427921817898672115872364212294592721244771711944525373786720937184568689496161514320861400945560606693171895049204954707305421586991724726253961822834498672825404515843521341066375022487701909168348904902878985799362669715843833773058780373580088735408995787192317035485005880002094683311503131932418955668667126711605630542178557176124556238398826663103100801284984780175084987814598351642034165775728618681262434992090633515207741330181044177763208516946122563575374586350099582201876470801408248453048915917179976387149031661577389265150815947125868531216141441352708537914835651222381890525029024799302794072783171445968021121940420898521026333075346954412862701472868747756411772667951295173584997172808549809007713028240961558428456452957843692514692676390223981364295887258471269567631050873211769133296868299382815912533961893320270042968356685074368752168637702275976570284779168618680350684068894979996206864318947909418810490496021542985289836183762272925102516829505781021683332464856799141427677686596353109810146314313587563727606394474913705603849239331038110163183228821050650098108992837282834066861434454200666218929172567044933372372091655717755971238852364217088118711290252191069278566582731385123018156068262847493966838647524109375331756600082083605365147042933303742487328381231167018334594641845776677075573468808131045875922666552247690855039064186287693603834947295707552954404314526187062880806655533067760696302865673296682608007814775435603896291746784174386872348578623489422732326315939964869055856591227537835491387004392005743218900587440203157676354123574024430018889175807080002832394783221812625601338318905629702114090438980542124842325589361959913609751439495111448709873462115405824843111536659781934979220511982897860560028567453308771991317574618311357741334157548539532807284179005180012797841505012433984351604084813663983378062790977878986027061334838165098046973201868804647521197726268507132917013984594149577547719388402959842314003940414269849974792720088182487179696596764803549500912720779733004342788331359992802149268118227657855962336460450123022752505983835570742299453349035060674763240100894224367993119137352063693484908065919467759894168894237745981535931260528089668673233022299399275354496520753769700999007206489733967749978507988570388082248959950083335711271542054809498770870779614456284328950682906574029836521183258595119945671436933482781444903469381436377969391374607326366147486073535810464687568115195355150757087257515444596947545915272451109474981469585957700330569744426265135785280664090328149487770604498355123626651131557823449403222041535698189770804571334327018659532854107232695811224384946162571160478935492489616308106166461422742197157196902931901461141279052441891446728648757319782091590333283921654044963024332166171906819374294129846015959887071349084063616820833598724106037912650199948961101562254617108640984700122659421611553188545356178870938392040223216276666294754479961978712241480608562196301526467894044842071847575728869344049799144425350001088110185028750882004637061046548852818259327877493127866198178840954147706946202976245317626466426176033612390494759769834708986975980243676895962753748420728857060096049258232013383167110103716640569588870615505956747239818050992216190215900457247011574649243323226267456706984985688880866570448776111040676311592652463931224858700598179373980058407984540758837285148172460377619949520492963607606424386559627199717451583690123062397602125334235736492417394258360993956806644630515182811060382302949124505223343100741141609081717095283459949699932063830350730994950689831936719230203393483367920012772040046051215871633875800070045696194690300182218807564214868869549791699562833004485951698233539724254750972739434568662198453621886639123112748606434051605122088185064733376863211244063653542784239810246137477455247561165986646495195550235551750478786574336467553689279573917644561177642128089485903408900100844381854890524971406949232408108799354144085657810054233747049739514180197284514303778254153692224995049224226346776210166988009863508636325834201581539983798003301584089604908932893714053066102211484112261358365442811707988661652435166952880834054230453831843873254507777668983404095812670949011817898104087959201254222038152509062106881188410924639217407984264035113428767784418010908853276083266156000020132437929553085380546431445369974492384206465624161915927640165726567942719982416445490946018709057281741615192592977155031188156611920767351396085348638293026994677164987264938653547224373650596200009731222690456413564258170414795948138566994321860830520550149294981893285687981775021882680716521030606863513114672564162073449533617370005631699080959951553460136812207184409564010626628456710495917909911523241029519895103342875489134984615485933701407249946924151817649626955247192327706743753972802820601233723630414555908821941639060948380997802284050498938353276102926664713659185731650546441375429059016030336827855163888453865777473412013123862256954615346078633150417792760409571497460631622261645294072952718581967452506480938099970352887056536032832778648297772398624019813590291747576959809690293476258357181532106689901968161702820974157194946819849057340712934217972482876326161058512853353238139103464203437014568231429234686418548623890689712756495521296915457625804354595082866724090608341891931271401415080189483005642536221070561246421338863174602089076780285710518785759869580936071908473333834503633449085368032126303860775398376430726523388694927444183553806109477076244724564906135953524609646399127268193172174211625274094218900263995131912489987638946042215685148733928877464089493835123782203087664043234163137908290687457981809363642602192009299398036244149343483506809234228224971822493804617836416763323261737167871653847196868427509184227741077441419418208090435612267729775792193255576282151665843956206919743253466414450392677071024829720320728361155128442130449411650740934609979521278897800908126471717242321313126105906884895056007263393187703112927076999594168324932323887573421643110988726800913964116793846712978371673805634184176452797837320234980066179829800666285896045565622273941640938454399096482372306595979406034819131500195266858898581581405036937281173815346060936352908727307888346428112237942690025954004147397387192777433686436953030055118501259381506342561375312693112525649688071179345018122006824604722227554091235568274444699994352762360464638573159778963791927281202791246206614335276624131457127599146806034799158587447255841763925690577455273845633619622291793226020015758477777104832571844887371137601040506904314456660089079432305309160692779109171500966155379006938582794822848472942314676644287542500300211117137147743863301401787543281954590954878747143331142548895995515073306531089170874204721477088534652395746857896362815529168774123155344769697374451869902953677153322373576526409253207523759703909295055556481039842382359162111418407646877890670208868336540359904363448046424476146644090764893193180643458294906155625287058226668196514702063744817719643915612970786615673151786674777271648892856102573183989233983161396617676993819654417387843751651153789008717695067202285338995902603321806141144399099077974807996470047613723994661042444113560364276538040344513750912494520570116237763233436619167385299652557831185768526932319853511488229419023017835116011946220516368496680440101342837964600463605955468230202875721215099431502097846692135936753380628683229362846452054333231594605144353966450857685786231513251724682832406423509308299015431916481280782479063949688938017829279035686978154806148917791847009276394592432801135480875694571601692093630860303773220448981987027318045100894336468255506949467526567671981055379599630755052701113916592724020146854453541656278433724383963455200023340411492865775990864637507729151781519167810315436062029677157603269387544640600640463579447755437339775092412631743263706650128057665286186406623321385690444079156139307054104853567473783322215502369575714570176339353947488055669311290960541820148217309623892148907795506626971944615702329906395253826892101281029975232148457477960536679187874460036895024714219917706626447457050745938462238602602992539287182800067285236171122339548526718141297592338989519129724580656238800576798984303076612121730119785293993620631318254043135456088095610444563067042777275619207432995412755941703630349291455311221843204683660158251966607305640167700183308479630962158394557415558681224982656360794146181632956290936596115714556107038570288906220583606842412890400975614586149069563773434072857672246522473363374395068644404743950391249255918335831025608444154911875933691374321282388326177441856331899527648887506508858350550582772396712159701055775618563980233013532404510451937536280860388208428337220503493724567868062249147855186465890281351697009155360146700571109826483387447388585952965701753758190310208502955428218021050090117700189837019722634680311971884585299454573066881090602695658452210227420369465360438594764010554051676866058650709336673664661243501388482103022064564579651646643118839175895766909256144556089053702984222222687952082081575307210998624976501336682598847456832317190612779892715164771829951110841210163221179821651277537247928516759484475791382329910738396321222186618381638048364285329693400295934128632502343541757121142823080386603965739458295046388197942059501850693938324760895649002248549019975669887890207822761486853940882181765770200772391711693706998661346633225134781110115072492821167998467185825333817668534328912585447950476075405713161890500129244752026998727436007098198967446242361405154708650093431302409796554843313651275385342178151849700741365180717458303455098063122554450686057791963282781364296700703766789238289598702235344702672725949437264511379939920860047676664934721518423049205917532464104699064015179502075049878767182071189223786143263408099925801320682384745185304271131426511051317799425512902944818959275816440863062676421135302740874950190608781564123660067810699603262648781083153584009750809721678680779435052636731035004970886253124479828292460330277878876739467856525404749770090020704097032258019993619744205345419399667480881038493162140680244344722150032926013512114018659767462555385568026302338080734830871445868672658395767883706652216604985498407008824575616039391759988738220142847014312359323347880878887183361073279047173901420321270944127306037759685786856254969990184951387102666188677613644292538124850121074660831951893857335078056898784108218736941258735521855835287588419104262666592208920406586715276281162742371455661012144349186064510602969343351885777942674722794641378041307234462850087207722260541272535277349870779939106044023370345652140769575454195355341086202063336404821208798115500833233706987192985129055417816563270111651712198143363237477522497448796465191466373503833947911124458629623705814513297970549912445242777365782793236052542747382613980876189857167264581218728714414732985210582209492089437058166241994462373156379822242685714831881419570795407995286184195501363524749254697029182908822275248691127269868985852215885139367313154727780140775576337617779514039310580518224815260776134606406066734996596872013341967664209630168708537677203927855771925510764881673540048016955950280413440725804773172772089354041867911252917483263244790248573239610148612149237039360913246453647850231689762318186528986895691395213751008500708247652075790358839959589072554178264614630798120823424452783934324448384584346089277099737316793857761076658122026686170039209586526335285557055851450735053792154237126063948468296123956252771872225837219459270649253224451698304987073882002042178397977944209125876155212886831415320847943722041298460300238506918805178675190923251119590646975929295754948708081854891280393131066158107687171623993589461510077265867414676369787419296874606034600168543048696459093358839753899068174106087530027005158680715255697870909684596935290563364347269179918845433067968960677564637133810441886449105189712196232831352294376726127195047489729983011724027169521683073940115234025907193215281894993909734013108252150135196917871651301802787089514018028291267870256075022549089908810271300792850841949430515966845523666702893738361685231043582177234455772762991415980944065559400876611919195361803612240330988416532128841097261847066267431104645958232441811862175527454204448846220421750607277110688563406187925971488491645454076267425405717722458699270579558536647664870903087876060405719257300577271799467908264329432835702839033177702701960397808722599130514639643138236010248447014145524859970677096509049742969612397146331049674995317916635566187718358860045855271527835752984215717436569573198070311462756875265948229421631222407030641516381437169940916664634473422852682879546144220769981080753090858836178594423566825737726836462546713806767088304874749564348183205572865177249135033892556975577700004004479413236587094953857754521219534351862016757495436723472071557424233410192714777656205541457750224807977080618688848623547837266549503972826102683538107192038067280374612242497861315598731950763657956784452690638751660636046995598389169873821743573759708887283876628701716506168843541858304729888504366385690232551611191678717722093279365569024863668956005271565839958720681479408526242181488956045885272722028977821420062790118607997387704478613527518000960240606035543210043132824386888898972358906591076815812848920457768454414927619473045949983322742585446380475610221654958299182781781712872945457203140708611511786747064704757506047045939490180840604313428495306262459097378985771890161407316003321955114694292811892561421430894502504693673819400979717407824010265900175200150120594081711642102320643192150062141006099876074660432265042739256680334393757445199216009890062917592663407617562244146780928410839357206171192101182677424028464118304915707494445138851694588869861105855412191370541913822959443513508297832728066852289496029917661050067619870063995924067269981776392521271657521247771294222017196863892707662441417731531422937547336996027200756022464110138819510160129256433518366901192002685080495103485890259711738011421776061636902754852879307977157202964379376452778522639391681745190177956308936772195066672027365660608831959455038715783918423505150187751473101932859686255488087811655960192003411492252684921527735644696448882238399011988346761022304025387678759434090946377795231334823102053597865658770554616597739829284104515765433668982888299429877562327731609208269325419731101206262987921496788417183310223492647510116581035917615279737110316372194102053001711816273644634675337479061206872096840781180541293116044245942902257239845274937394131220818444330131793960191893314392617888652601093508394575912403850823381573421042199011740881331870132153474014099943423902071891585013101517249283509753371660836989831199904953301847913094071367139992757359830624435907784085036838187132089968399463871477297753218028802991930037939064948666614913723540708390974935054254786593635612577852549362230618353319927405589624239760624144404427350937817953474233803407750200210822057750632766904872250922242633460045227807378283989163972156925449866542068848057748159074350470398396608209957777624981189029904560855543319894718590732912540429045105901919910625857013734166961214424082360934673157601343575404727604753738776043165035428243661386762614378707611525307768377282555337284493146277157031195286800905016680625213716520566127711632720748963134735489669689120036982156975315380740516452416774279312690520169288256989216320005571405567986429582360827528877817346935848939705391721767026267672341915343497181982645903752112693500370316961915840647300152273866097193561712929151854500140636830704489164729699101721094891023902388702181890291639030481403948110739767893043390351117507406648903221690490483358991173778330512478126936714150152471174205136225637521085573390265640077036153962843157808896637371085330850037806609840757882799036988867964170980545378229061857401161733956385686965674590082030592619582354270575693516388570611849960254082765517615038955960256846286243106364114988955427822946644361822593705662286428417118601346965570210776014844453365257792291139682287400016457292871272702812053195510428705938440186742855666296711978228288759535401080917911855000438224045400761080367937935912538980809318483432403021409664427279128224982787717991541577441364804011472605427883997217317838201615403115383201862721288296831483705660150000251213998719633197456122589131014261665200563416754532727412424030621147762912308264014347513552823084448046093303371417911504127213692341599616964893937832301957269154281873626149439731080023510296419888355187475904333796532892104687479377271507985770275443601695827916516799982497849190910292741030347781850049637764172732711574769552224990055237512069083203440273679273630827919516720701894694979726412318704259546824801550817586093121759818233318376265820450895612976849275087883367040055308494251769474058317723256229173099213558227742521826222198318061206523027667296697700980142597402360527303849761737463722544916543729982653579258789823647813846201778583079193150491005497948997464381675392772995273551943641488023179222267562782738174437459793054794874706531556984809652452861585715706064736649885042585114869475135811117371784404456783231414454927501684916764876927457453881786655521034998292125028704800898247332878076173850756345239816664948018637172313087021761735676630397644536541968531576015836279648685178003568759908422256027570850577109953283029190954811378343722639544820797537385400021705556182879799290204536590220890175355065724061684375861441551427106632025153904680070989868062989467264320899699843102927561262038843583967622808357077525455781135933190989002699695603820036413848044708868635365279221828212812022690042344500879741326842426484951340859107863283567887520385821644302570322211195426149030600667167428510413428981009368505403134676565424569723209831357508951197558073706423492327599527025915649975222652885946563076828257588625010752598677962919828612498726954614622231039528044795863406993287820903072516894857778528525201567012358422012629189038939528241044305322148173035953564862367702661006219747082592596525001378557818845943193490520524458894010777196878370705266473157618675678513027824932363446124183588631131059963730568169486821163114411389824252088834876350385203028181794599782854712977637491955100423035899356923646744476361909690266015833939131982816621989070334432867680472818207651647014049592522818239886438539989179129620086599175120575913382201268359420787841030611072019401383572489284629494907180036502166397197995766615199189496062664862046567736644450756829476168404866288916490571606392074578971642605487919097508765576942142620881151914102908155524415775210600956352473628822324346456102015576835148035800169088046648872011187037355935115367901283632098994182468051062773730242721856519840709409380922360025680932105513667039904751691545034123349995102749793185647456660538894584649834958879514240344539927886893634482117484974377928037872397676153931834847200750830580287791003482969695605314633301601423752721790600820575950575519712862745641567918669960727253092247220611151657246592194316817319874555039842532386413088643527841234637399795806007279641525932980125111321255192722587663506702368683924971845497499702931061541788625431829354991418254274029293624553531546072662267567405579288686650650632430458290219201539718493932830437538850847728310246690579220406138933011750745697723530072942349875169188789173186586544294406842922675846797960515387839252565609886748021101932252974462705326488982309000068389958804523976749372510879946283115936008009342339301818384910868616391588828132989363692289312709694701786256902183890444663124249864048952943745463719199053528490772891394934731646803340594808282872627338642148752963954168693727725381545693362796281515054989794055112381132117737632390803915595553671399553067696504510180745530174455276406952524390904522280749904532459793594997986878904121631414482666923056181528075657559239956892885682831246152932334972045516152279325395140298587719094430050760142246616764642977155761564709488626988391375732497310048402948072216921599552501427674439812786815685647964577800161749365915239403517436235395126280864205554218095778712160460591690632077935802297256525411181236253044064656648009766924667551193629574457597223877990608312239177515790304972311581094826162702911765908546061049077759303171859706936495990178316353023080132062126446705326982743571099972167782614243889495291044132826835840034237034027738418784555921420740342001761969329368183763660497718370900429461474948726089384812633021703383017203527487411290664780277351233266968505630354682468006892825691716036607109846844144430275359248636217519272027401690296132154294319759340744150532750472923254525887212001004332136258441983347222469721104113884561780824982829447587721372633631407192937784258560334115726234797367248332869113681360771471432810588059080864202446346970791290371127490414798640682821665852960325671079466165488126286408464451898466330451816114815832813213586013638587141347002242633720840444833063183534825187788217856130053378311209317571422482466113929228872963792220557731352679863141046806736321564236798921608030789955065889935133605712990361645365140169368421719666838533651217141140093042324953031680386465193332627573152096726306558409872427540325973389134024728366212864611421821029185854215891472823684449356440949510406182317927242222397817644997538675922868972733267330322905244311265562694181737534038733493101589895636138981546339768944459516827762111196146471608156447599027522529871861530245524297336706921960579298711775791273403349641429016348465138929952461075837287244043323066681854836708491639088135345040466521637289906318651772219459886740368492548607785622172405958850262713152568938569364624609335388161537981453190120366279375398697283844220173442698441995189603513807066314901359788680703022849541890823403240342758250887880891612092601706127069757863930743720074704441473230948800692796849863097890777773937506410253330644945463618857314078801668685483777522087306882194790479964643514827438064310791445603311925067770594987590111412413858699114212326980091887941977729956232046876826040650792313295860383981907996281170371662025374887513814351843986678039464041556304086614148473496280895310175487906321827615171556134023336519115654334161836750924201087488125749316771153391894913359590753047319906766687624846330067294275460892726302440766863425958653319643310045941106183229640567050505988813513410335086294152353423115808125839525366191619831213428152003307454672987657337117133432041076126871843372196964267431641783420416298737808846205694710175571988547525249064161250113102535220463857481582970909987396286877679644957421675855328716892236035616443088926070179140506193272733127983648401092188696778345529339750914795079102780946004708589200710736192126997866265035379829294693284123905592957004017064785665805382898071101314424807966934055925446309240850712170596540993571208811470640673849694920812875672492249737836297298877835130062953914753656850267897276639170539412569665530199160253885837382607357576475058183989612164189957048263845866828395407634752605492278997768117168306664309475191054756533167174021055080600719977946349557308372582206216125836536686350465034126194952883545089644192339802244463634105987606798645424962298184653620976120181813719096879591354120795267536930084987928825045594647376247651050163217448162092760203832720641470381444814298794391650229442164033193287250064360494808501127713350075522008074949091729485879928679174002654569375986121087404130869344755637618476437751452064014929064454684516505353342596776951088761727652046918656511172973211402298685776936745506605605335057863090610988060126348961943492216668742107780103131174108361296592296496351467973154320144370085721728917742543755583426755015211761788766702764703618036968998893580410304470767673307189145557705022534288455260919866598627773549281633267481548858302207940630071993106850471193893011284096887055836022807108836819103701583945009144729932626328207191826896630324867693391141079580667503851015058322328604670018772464147034340736009170581722152243610432054980287607185702583290693364819061526189664202414062794701188096387150214318446806936840981856056773177197899938185271388087945119225162399543868902414902455734370121868768070248697911866428120711221891930181624446416415027146620332614475865317001217088536016928067659869210174000511790124965274590010078889371720857265230406382838288342851707325788882717157050764934118900528919685003935911695291389585823292427906637822029073798304561086745619423843143184717523432424952408339773990065519438310091065368443867485811846638878068762501634048137016769291552783368796698439919940268203096263551732816324693900437468446640868979304513214232318024878187332965681086196255277075832464266413096297726234947217339321731889602347034101206038849641147219500830819387247008892189675289432434530716170904703487863506817764790031306954551121249818234538734111278687498582647662530726691056696738062260080825219841883201781004125423601601412500578948419573416458859770080284685630912902336300589743010469541648445137557459092225288648078793344444306029953038077961457984426523410937911316383078331185100517300836004521694570275946645898787250957970484197864698351702415242799205300746102209070955870319881472099715394215764801110751789663760822910622058558135405163809954532017236370440041190249213523473669709529637634650914892215223484938859176760066248786751921958267203558397339102702786420978870889366136471334273474626044511636767924017508684417173125797109816962262657962958238622487595760621472556706075394861144565067245742694197447117445261023194260980481365705261266691945277169904338264366680603452600019840464258535045934944747684425711887812113349621274536258662908947380617574967471154217436742894677847187654524223481940272705906721553812640502584149717286097270551020751260283345416715247940723306222940414645214787550204929452728506401167097522955863865547901304295112054716723238131719295773903721326943347317479107419486977269449338006443099107229110720403742989801247793333331601470032501235788270978416481281655504594403956626501998438554921446213078366047068551844992590744252163474744670629344427111087948596580339764736233269738691513996243402966427309977826573075894982847732886851003957273162152720587324547948201718527238344546642302323951523675933406017016383762322157999793310292431184994330519598387883339580459796790325687853200087574742597820106939261250070269226816188161894210918526430153578552346452067767653339123339819142991252686118127991758671618170460872799869200198232141173854268646428018266466513394111910421687319386362240823771167112793885748284250927553857011896990424995125228753799202369165807786116003625139745772445426368681694320074185143483941176735045092542157154538567998764938385745077191141138155417165458173761457045066443650677338191952547478272863440405361488548787087217823960650071461784483988186420406494103640947293542397528811830805035190492611032943778085227807306224648401166303450745346334111204441416741236226244001745152380368466826536899483854293088904580769681001482344791938614391091792893233993758926195948959247175034931862914172530541362636444920869430911951570949309317287944153178042871728894366706335616157421326410922430265155237619657913504730735933532145061888796919441167191892946856733490072933177528329390728934325265657205841867543611274610063620815861846540412688491703258620778907529242625758794903394170799928399255304027890702968313913513591762056717126270564004533917966786511567302006276409437558913724913491105055053761058618574572382387425519243619626529711187487066936167741100123952241841697595912797370973255994422318305662118282445316669506055458272255571690365590572098836099977059344025163449121186966304070042244228179876232731482735156805226714700939654948933824362719495001340992485462215161316824711458364433734030232120276273800481264583337901007381754871521266452727317628605799791713262724855344704380029277353162140484020409905412695738845473937627893781593659608607785265827408179265265087291094038849960864054508088306181348178190841647805315200846270239289875765116457991903324304993846422304341708818836391690942510080241434612666678808134101025053132017076811226509756283690907893808181994085168471741590078454349560751708757127383307476582712914037663865094755092592975081404990648371589051967359713326438059131383237486495318010462931072457485931403568216888013366835244345457403831982046938075059627670336386908688509100057876810833246609457480182238848636860080631559466198781562857575219145968967240996471546979072417355979876338425022002551795898959983545461132393590582279822300073754980108796941754708541553309505132992923573476591962188373281857934667383577558145647678178988243039234424659154277615323217351978768269325753787418300035987340352915331255424346978797910054391054758197299262026490216777884941064041159133379820750909511748945285626490505119628621162446130959480680012143484858348230781583821573436942107238416258343980889661404507341014799430079621126301425493379356770404945887028119509004023629478643260330443705369692321652285948361695688925864130829093080315556759341113305642349192397163268065455531300334607229854022993471702355386416546071259632199247724676472488670939162832727228425171708689270306505380247130338459216668736704909001912556892160993269130737406057234771054960710884647255830145960149872667760220445129255583714665855072766448432369873142498031427239344444658955389339281529089170478840432901867736258427520430358250887144219755796131908735157566242879209288325827578268736418958468398182725421023224735353086867976340109300724273430326384059647221676735775162970352474720780863326329716787421423339131720308834646385990568217974967091328309291129996767204700445827828610332349696555420857821554186074959920813723378821316313802985150433996157692316082796911802573594636175580304258308738505672217119590084652322432252357870068433164756847919381049220165590315403706917336621949100186899437813386950283591236667245927134154157907295657454244130610846215586114320530811440760684621927899503250978299562237336617293453163296162733833572157160301966259535607993781193291585848843442787081701952059995287619107835870430528383648630394892113925404518289082034240255674660781971988066876553215265611110486498232015926083889909206693171305216699570384697350679000270121397842929357695398760546119333259859245044590470449293731197500989533962893516610411571242776998616618334981991472456255383564857973725442466819383340330909053678760041811498743972673387929235232994167232686679636111522198775609430981061481976728761220459700039620393702365461742911484307927721741077116764184019701458206914936335696961407499687037513393270486711092831179931293264845224538159782895774020084784147610217136079151757866809770230515898615216317747862711483603082348553681389686450834316750925745635600769416795478052773372352771348638057610680467454326782610797652415490999059355479950939937777040589710633716670318013483654926120417076341460751621158316195835653839042866772076907091658977934080652538559466243622798146535906792744616672058374712751355819990761792127578300062046158222069892776509108526453436228199198364768121807352744205708016598370648031223605988297755366985165721195273230760658938970028138217138361448686186744758701735518948191444674538640613055746830760431007595618559983338078748926289327000144126798590537440605650310942388034587763059521535079842359018601427382099574452160391672941129169034096321797744010377696888071062173195833898700145851192512634098921971244122019870523929464677613246068961658057223555441662835597523080819909913816118013818753637566404130244972926125258098545489572343588211769514942104737224177704942503942058785044892672986649525830037602954412031239510862973856545541351266915649492968129790692059882794258613658701306355577623799593915224314799526868827593475665167181110504289458997449029639483631418431662285600333089435558287487359879514230183706902177048981448845431742791138340548054166777680294672088985613627377284782529599165965290887604767071199101240820297251236236536843697046975634761034325465996894688982880827419170633806309283996509664193806820351398105909091275632120290074803722565397865848219662572395753180206607971486661270021984085013878733498355927445480190255807583123705220506747964363191178498948946660217060711714631818850452009214097299672718801827385361020214436990352737303027217957166476151866816146354704519725791819450543827942378708994848358816689832619521696646129323140851267107494335894280228660567055058704938419974366868852831149733185402078477656342230117380714032022292183235678512977241255339463746022426558465273531799011238874640004609721662458258800794548347726246359583731216848251159414151342295269045968707992645876808346171562155520581309655507362004491528998314874653048950914639110067407930310548697897503354949225738749546854522424260733143218104811576282249962177788315280050222565900878993959329498362324269615147805280361639297131214524296797855326354808144474861308777771806594254907301200541902743872747391250708054100535591968559599662639850555339701059345599767895755717328243540319704050507180287525940817107671900561934108666583924805361567777826158778926564712671633868440078873602556437326964662811587923242006973018832785172380991103882786964612288934923685740463690339616283584387361769281404614882795100896926803060388198085324641693788919336967829612272951655051346932201105617155869712448899871206326889095970456216812579990529271773147549537396600963726030357091824023677847588559826740362452652346847395519297809110877962858019265172810215082772195509489420348078170071370424458506857059375002944366579636764679002644219829241584118007044104561746122230560860637834593480982133129334578494491826499179896413728393906129120719310723076701231698141262268835666979663301757616384054912474601295763303673232967962962009411186937385214762756939554403235756475753901122270540952856687253682022112622573173717598828137290383669390904123757780540542092725551450544641490793280884578293320898355652798916059719463601050050452322359783175708430981476835441111472667412646894009002496253447250536066776232684869139462929105769562107875774763710443887189203448981378844518555440500221365387177212718187277425825104117573330100809615728031305875457967679848183382008508274567827500129248251701134353706293810084469232517136653670982764658769285737919670067422067449790878609156874657330615911948628528825841513198649973206840006212697703868672516135878792742022216509352996808389983279383271132698341519806080543046284098557325788343109564246715652792768093963279736204813929053953225452230925926581657892326234362803272268793867907413946854972241843581249653711726845654081821096146901433677413192294918596953760207440293179117793441139529278274097609447136458266602189030224332337987564053042550525283110880068257765453330937553577641888732136203120031237532913689285975540970712847134639291978061410253169221783457278760612916052040493984487857538048192927822744312711816389843332252134996926320808330199115127904025921603904460776598798440478411587007921945912073728646960544432744801699339612164062912859677026322440314391908496112263679563981007967356745909126702802705264192010102895601851606905419282608898139649204243306007049393723076006708436587495689575070410785776616379075045031369445054260850824611877051713039835096968945022766088994671304733050197005817170503604763085850244637120188534474887145908581608138886967693467388158701641543581605352518538763666277644188815009456594093671285368873804019703541100875524075503219336308825545034632570722758717972721975098420674748704640076057041566190553757389852377475935168779457042768228650553235296735949607163691871890841044733785495965334454339581832060852617899409135620829388966377430572553515317197281592839286915314302794503677335967510337969022876435899045930159086150178155075279353529729158392417485932872726541426906182750456582465461131644864510124078555261024875872453635150081446583923977626896281071108177995753544702944221942766673032930331829852391592402447746782881878896032618243134297003408790456420680617461955302335553902091884701916255745152457669079194335889048463286231736844386426687351218491558470751465136635925717827082252746145951109569472874340802280563305061133915621150639574607553302314678235938806901482637816086812398848116047951466986934440276699331776164235485523985597855475737356157522155407588294824351483893641046089799892959820247026293101762630761039199862941196339275675847912850415326594577590769996089706324105190689134683178049029974356663802854467000421140708807660915940111888318356781372385970234246779326658070879305148803713467870226955624680311530076028495101669416468971902669341711450662289757994483335028038032940535914712492590672810573386505649888866431867079158884852585748277142330492375946545840687602511730747843857093554392350722969536832774479317122844760368876893295191013481331984035824517211523434925719075562841095546926288092821905805923328333626105842563674976335625971888370697684462003762915510586636352524436897252052489287377089542516565750299322470328282164997715144654021194107592697428644360759306924598549865863855276040245130673217561845026772229893697962201760773163125820701959108935127214425933526840208668133676227887197428991153500730200430201967109854935749033057653025802271480037710531955087838537470314787905959404601522474977610324702671827831507360049182687758078661633256671774772677714246191414068201616747634770164264168793680974937292882233301304331517438404555667570253340908356971150004576791566682041768435045789245688649780194515506754552720665617983271342601903276545554138943025984480055340005866657487312279819585838207158072351580436198325377462031901950735796514566742620061642705947272033607855243563741309959489970513369608606567674995940707055954337284869022280987578745165415321401132051071712938170470656065991298882618263133839474812857150896108332727431882441070577826335401595133699575825958764660727934349674918707872736240809835665211318762821628845478691362229006624421556654145838934315159177679244368187873184685031066457737799247037370027166190007213563025528300554999542357346131758898482428006299084919239969348410816515151163116650735535881369797382889726639975762577351566373413806222900393563908474930416246825602959493098679720792600358147503146556810239912142518943072866721416915119076363360917980716647740698394584608709730053242645858214315829949942570791279392548100820008391617313335925956959499127498942920829412785088165615270306869378530624171401886178593951423082780355373763894375070949437296480049310499251035853684778387870390000215162844551783888890074442596993916857319654793872956905623109097115998007946110762273107764552861244468123609261813273950392115775368951714065915745168938258286242752861285776311543853857650504554721892665013330026899323587858351707407367244424260395737500644132074360530657077809793391604874647529365543437846848512030902271269718177300059707765952217364121186788438632728623130642593493451274344496749004145065708695342864038984003696112167904976586214252315777803091858614082842555618374910762011187406956713109762670306974754760601731227965772355332345221414972111425057320979525538947845123042824527285549379073546579602718834160453749223864653025129194807094020695998585273373404465692616032417803080243402856429342084291637084721734811341653495988699027658586306855312984895207637047529668918819634523508948355770765547244393967259484579468095129731965957587432742238681734205859990262541121797509758573445939675206626431757506895161613276351253313800550369246395015692240767057604622175738578664363019920314208214248094435485398439077687733673943412899727472642998141880252887640751602959930653582157217916319671282539006532385105028624504155124312930349276740519598681051490525253428503024845528548137880733340124701418433743208380873501372032373928545532296010052641852432788142642489203507093324435434536991194087162423664594623537115277368911835340091494062194829866333542232326347921696394279611313210073544013740841899316275520113971136256792843268723098159796047943578046598460377417289159849788160710370505176324202190143466037353089030895049760559937580360846135173811967956504943626191218786122003530544714933579487802957741071150459831051136748989093481825740568313936394793233725789690815725012474154844969062948507237852283545111751968304641450157846987817836861597023552194471351185230989983979658559151340699764409167142091421981458469112089111088868888734034111172168238126177322752081553050946602749985731297728970199096534503442311448554706534737464171319576701674085884142735790232704263983716378365851494978006106202145990577377867867300107416232901155775444728408470071814050936076996339233228638446116288586562541117859977455833475808182494655872259987808022696488508445470210802379479072751856572177060744744252018522645885828697148831731296332513555705691781000059265588036787909586618532645258455173086787949708669838349964530588752305195026744699559236170632591612332429451114330381509014080894223622022398225588329155931144417087432716102731408204281085406987285535862645926632354370957507580301772415619916762946382207765302013567337736528679609800332125463753753398592835743230479620771559955734399216959398314343645511570194544729799521476844104296851578517107216370092527328689113878251430478930579697663554035656749758721113674458416654387870043270165376609264301703025304997494668458234476723684334314045603087868169758575621410324837424526201682707632147727983530197027389023855639652862909124697710764910481655540734901829407376659693474640700090128533067310318097390969462835667406338985795646552162650354271015094039905435835959303817222084567183153179541330169106706757054707901074163499914623798212061923415436139879135329697230070060246748323648084679819189904996208858468478707957514832968437771663132140766147225107188398414320597093675173207313103994073039496125576560523086076313695925919358532481685249733515441283206190372296280245404667912718810039555529877550031564730421571234686722938156457661591017082987388566560096090656608296061848196912345628919232752716349937531957735077787649536227946472047092968060400634926361674606764817785471023451243700439798105142347382449292091871008956172039989000098220281230578709626945549316002662771326265941823649901849789045168322700112178474591744886399977759226042613774429091636491596769908377054190960643448164258187433888422673582172303627759338126665052222996906872460834136208364968072530658335268784596121151392257294852973880791596183416979514290386748285520834750936395660545308900076480601327049656203768673292278808378259212151015020701894058813015028145272504305192983933384632823102428113259044903360815635240099598534977989337737410770600763348717992747728406177895420708634648894770470479038094844992458789150513918265271940221831649876550252615982788139333632318447052728826424345584822252345101002824188329127386753637965460628244245950632722826022935567581087759931283556917842985480206817035669449557588187561190236633132543152300696721071754157653135025064890988568201943471949564833202941788884246640406327968245176627392270361292696295171155262183937347230432388185792131613394609566652592764894628830414423078696366907546059933613014589095526775147316411535997312010121058875505620170601996367188148561390077339997336184373977785551653121134818920161491510481772624154126491522233888289599368347690227604335460715180868293317609784826281120666012036104082691128995578007725948291811460143692483565104283771079287224336664805901302987908491121651869702416634197535199075389504867128177017967460104111314433940785544480082153885149895910864803275330716580148704352227808796927347141321368343513729016791470155062173461630972204832852931321003007268260326159665647434050044354107633306249709338586658406722688037886091283393289067194918499405346366499453088192838418406895047534779573144865756402108058813075665998621834126450752807403613944278591687704875080381231723195797702420279118561118587185340034762547984253156105331402606448210447960916371236010273786783214206009582962382537646368298820251578563235964652956214963904897351049433480978669814354878736349961968440357022452811070622047819936117282535169184548775029384326801427744264257444567742676434670670309770155194358522541686403284744612655720338778479229104308666738738077749816131508873333713716360628780415263926069040095885369091407102784278169340785394522317419469212537985181331564714908890147932938905053583358322630419137124665763749748870550820691637066456596653244820846163559982437427359012873659719666085636888945060866331363358233354535960119454593383566141858270758530264219176118200481985925995714566610338202536891640075045032636510614209989243407520142114887405682780829931593822975362400261152640190430729005011873704025503850552468767570306946181641890741936574345840521900170763009260039668852146643413900950251644719311120063827040582289407893756198836235691416265864076376295637369843576786976273867810733107571810949377561891712566887352221610872469882603246839447631655059256629534414346887514269146359032425313079704502743115959963009828611243278632703412108387966653968826998538703986506024554401006437485824080598034109605844844713877051859885897228196575424240045790155568926157956926465025030781082209230312414681225113359249148592061657784820835492994526963709442792794243968216427089868759647679797133523747698601891334146007247303868433370319643128795208707378112371204851988369277196967841689285918068687380378254661657946110540577738690338731510063823069795259603148685141350817441271477489920838577503355031539734946763943947366675934816736403232853855897215204799150690533197311671244514685117904133676820065583795607233471546978970303664361806576155199852900667740379436424983974639100375465104216976083834311459821380184787305500049669899990117090562991313709606727609648135465142893348974427942240720151097691133191184466112661342525014098622430391363411532072887103851326228816380530242405107822377633732425485233370417085909466751661569295863788126955405229168532723891772007070164187291753468922751216284543851579159134065932410513413331656517250050433942048220586865335980527178331688743927671681569725096091291079715167085211704824971669685449731709350041442210221383627423866854571835214346303180129141564234349894255967959841037274838188178534366676437081901052153523504328501272004023860599544128245980671453983779000119885806320736212568650531469892061485529862174811181810645255396602876816766162178381995449995866575534030339980465094619999156704665820910461900180683520646876005506823809996804319438745931411086615411329265219073167607011251656721489336006888594628931870820764039077197566634909268368920981656374853185734209250927170049544636430440641652812415683001963161384193748401500036941715397987193394483468175560545414449116410557894169429174360828174777407169505285148319964124046214155810802418811942907361016341693751038483516044581537017034842790240614332738034084169186020932993221533722206835852074464360126855298520707422928738507889466702877201628620481227763747051103413119726249596236125491843523084699354858128675794618644412705221643164717878410738903936799714437343370287881903861626232557372095751643600395056309560888442855967052366237200405222125445378073354971155905085729901267726750494083265433402661192576546899090194397654305621073709532282759441983953509833371418607995256647874796941629233393493226980288743799379278520785480322248531138929177122194552235682292148533944962974412025576349306416586935011877243238495249708150010497557847344069563643843969922263134114987901531469796269550173821987972599362685168701728222243922658732291138019280982398571643628995138847405931071706170668994051237787694028881205377301714990024007062582187318782824837104667369685414991263041408889511017854277116065679552882248309477390776018810285081265706557177593389815812014364090126135742916081863362750184805917882699765526981870177833931408737715055340569270043733786040366679893302957231864920625795935760141614976594096307870718601827076173220635685321801305330035932060176962444814197320582788236662957272807219616685785270204745854272514555633617594113669426651311716511341333119367399122726029853953845863177615012359395378327518329786288677481316144583100434913481979127714453231867194213586663713481239879594231797695718833136674340138618426892405601041862001108185218320969051116081891700145822317485468816414659116753034836031227451043663487129780470416631728776633528004791610317344887018024809110142035702683720917733305068245108389026614806761514641415882516795909693941655950362813186106679921247825688373980145315272211424668483851505090374529441690012533381667623395020511997699320919537717978989325997712376695708761749526808745218394709877450772629568564060904150761549889325158439147701044608095716548039357328927916297521930565452326412411026041200845695184605189220454489316321755909870457935654470862625637426262255748743024596761443299157316560633604148916910068391444498970929120931901891503820903755691726875921288084816643408920672476271845225412705092217615988871857701896942626454772007071799372984925025192144995157399333598307835368304018665730215925521507647780850089410109361121774311094178200878224763732733455357505090828100753800616835346051002468062519214226805130027264771739718731776306805087881455428779296086597767179668618961708143068006714889505320030723927858984298195233384901002970481794810569289977489072051356201305220927518707723679854597701135696260808189330938154159733826751932757148983891339297994323137947342842178597723168005540935304628718681312299422516430657677047966370859150467857033977168327123862887023020184251942124607639243984396343161693188403269780102507494707872843955668013167141654267159378851398337970807708211548463051443920795397453073683664993406180050266372450670745015091440025515508057888050910028089503047273839162608787016236976688846731954443973222811935167819635087919616591642776609221703940871759780224759083818341113852294159639781828911717296193809785908229346362542761579849772138471982500829101140041139797953366190079028461212587049234473077015231759483196785926063508119459474775499621567344378693540408507774185625270233170570479952717902888499232321828154777176078371032711183845221150902459425186127575832606590828612130503332854924310896345398412759195739577356835949021057208845127970348853022706443648897441890523147796241257259954979618812797056510731619233915751380525880656522709207559932839108486242061628323685328086716963649592492616770937111848927310371136442802483015988361447963852028686100542500912773855191192964750836045098700949875880701499164671512405572927002972596964638081955247818414811499967738341300834072855183452182474425261617846975620950365625240371779117974937901990563725859791603063115415023474311933461907422338485982346382936854508167565431251558849828096700106717207785863935353531759014863443854863184122186451821279797906640105888725990734834809934825054886691905068985480329572313130384542291156946622381289833860261953798518094073673809105381090366665972952105929659248993665575621334282847729229143260449536143480459169769369941981164165615005277267768448201082333803800779394543915535570371263383677660118918550850795088942107616534159955538522043818390498391983551742666217254348617474002034654458258272514813792464149771304679732774093869787471840252002033527971765534134118644307126498075922425638257160629669378050605879061487246276119688479774947940211403635337876890195241130716123020574706208564424117532738177466830521372918279058805590542043152479752545155620893172711934925725067646803200511236459293633153906744378053043902964841639814813688046189311881938469229690223874324787206605632169286023981110638571508030703721286289960742598497969959454157994699619426507571659464798908506913879419427251190977551423061163811625327405617503441813253761905789926990584241327728401834466570092564629860575250740386700093827512361141274693123841270142144179773636387092482933935889213532515961689786840216170068901889716897124981837290453419122759521003926402994434945956830103258798811648477801535973049020694352945075931554414823604892886522361900948606782212640789620812932019227863619429336169896235289893899818558101600015138987780835608364378476180182798001772589567222000789354007757198299398709792197631187536448439653456832447941341908635610119287095375594788628527303393001610187001006887023175216452230821347923478771816799318764517920747027504814187912159433780799957356590414047620417004059166509943173274949359294627841660879791417337171472151000931999653259910046379446270337501381839300112313255993063019537801973626601144507800701641156034042318161715879022525373959436512352502260501808913138120373347874184548843943769233153475060306517111022583407803582068027076267301829638530856887347216959887945412009697486479282844940961313360146074236124062793282671537569153744880407846499060450441868761800063026404425670280561229235013472998401321989604556997310882524802627775928937560739517156019380214092088273216554279914336995854190137751854660075821682278783286325796804729725370428626024067610983536061361545914281463315058332739262063045441189858261922072830106092871772254381549190488533490080645936278192146361812433695178147266629997175259231948854433328300493857997707025364268930001792326218620467941545155623724167683546245572282898447023013589103056677264893581689094125494048109917292925280596435312262236938761361992614797414435122498722590453499415642430892195062000373190909672708393515642094452230348389461743511351768488584637903826640336231322723156270590628486515576682610752255878173452637909130850082533046259633530176239743419650855103022705993805124886301393394664935774985580508761757888037663534638006519055691096471892013180654055970734883625626041950518068327448459918363637614090849376446297609811108577153994496662395112781299929138833554288284046757750819620328623334846179232706116780218941345709657492447448190788228040456234879225510345464416520844512198650462968944660278484460198487222020371213141094662216252301248045639097237938658745821157256559853148575057599337539243745657609154454973188108362603027064401713375619631821264130371055397905954953088781269141508040874907124633076487131764658738921475703090028960658126451752607674734328417154972839236138509118516466702708509611107493325270395964318756900449707793867598923407009570152783998417729128144853301026413424995224113391696574097963055205752395060476092997289349439937380865159924903432615754865129126804892658341293317514250406838365397044943304619815975115495465840035049196946544798828825220791098119877944506404923824089617351674268280859727067067924728647446643865300180057089763524759702463859857119018579215325305524337648987657039328552390207014735512154286182180084149819040205272844845572034557452823224360496544125974695944539217985943467533872165214907776892802826932055814186034044151650694495770948767686165704444236276141563611103800140756373459081919629675543711539320800504983854944511545615671974696330040956674329588504312225774424747214037220239254564697085059888046536762476873746575917437598088164454342473897374807799751885213335359915461604825511944554474548809086393599346339260527764829197578423791497800347409025589309842766528808781603760416883413474416200068033383602692843923053187017935009244544663203095582507071995276449426878163499561891807769724327026128644007797096826890271136097892765072818557994579901401954490317026167089203769654255979985049281027902036768242398235383391781737081388383378374583375184229247132585608553255362675225500352289840233561225525430911290074361292336268234062723123747748294514810295229472916998997783207022274329958399416590851568992450780499885763104182820527429817520350200099417377170578262556469619354887599495977439172513447287348330149045143428432623578252547145737889485467975788390845802706353013509942830827075898458712336804554141672397973027514864159945633780418762488189737163503044245669873861672883498920443539318779440708993887723104062384488306423935251088284110191889982111657675506184000421395754237430074903706701228716215882766450542353929649943286021777570037792120212486595344220487876979494469668640548298280015758988180103812786834032304151713072508388319150659263423003433025535441562513895539362658209355376572864429158861061339673630854925619212403015673517501100499471409861488696690063688142128634802653057879471931973751913627289961852734104213091735768443656093521187423887492794544995046116011878148985018141221500678740842337397115517000708185112971098712096899900005045032771225327440439031757823915509865268372606672869950750513144423290449823287729084676661721495415981397394428444411291880871072764645192248925406577099021841376649598641885288005339050676217211586343775465932368988895076565021511893843482389223152516099957546991530106698192653278922226151485427587959726718461001637300108468231464069556256053430720281979865248849692805191128226942616345791142430470869717487811371898604334551876731836727360878727520002492847933063950149972533904432843491876786249927048744405164669638770341379859959866114507795527868571273010098336135188931624431771453013946319491268785010732050032005820439559714012170737149949461880740051405828362895285701776962640555155582026602402437533800124936287860700361445160921641091561975296630618932109965843559169932871986265899546814833143095749217430573051295561318953524856428978079619639251231614151239821674555084376229705811694049109507692439131685055674056213353554587767750593203841366481213885909647027190865359436718396649624421789518559570721306035898466969912277551108510348413349062043157879605021307885058960873538459815154688114088056474384428956671770990522421709208939844186143803023112134625101937179196069931483979878748039865659091105938012529472219143235702866471039896808760517220496171661944669074248711418196076151596095234329716116669605017013014613746355192163996591147213088037537205359681497661185907042038368207514877703010729613047762575586850142465956043164054940018223384795377589118969012908542215149113249714529937941566040002346632370386186573340107595271736511671574496916107740830658602595673889693095914459019305858223807382788501166480996954767436791672707846817748873918744078001987795538038948961061420366127423361041639734294855781206650211869569333447688139907904653081662557232484798877190460048312105267108816595686160390924079696680835722608483649289931488042999057919787008290724672988887298550546960233753987945121022030866364959326619549550673079739001464536270548914611502045711117081820686083403807918297617889839872316444511507820464407925031071624317837538644555640873299999761569559026597734426491741998065766973743374645109816960559165608022335066391747440207542758092650914875524706810347749569686042902583963918593828741731930540264709805851707523212088910297192867592508116827095339894885680770947537703198562467798335814171241270316555673475043613796045262471809249971118526388880122522275946013478799236770589082931857911021100943187532684570983709013602710116471966433222871208676401086206078942730733153344214160889480377719487926396714463445983517981344628182697468985639625000274992717853107709132413030171968769576105765272035938715192813999605842450097095491112087604070701662776398544863722055402626386633963654065832609340105330405964445967264056346903550068353699946425813831980676038578861353512446028002440936290661912242159828162990716991836907659888112913747817672231071697768333518930458004796040905875274887441136419569060764451834560725995604107279347936689667586629980766271530574675803743617490546502806760361273634654924501125090476617264099605656857488237602615884875016047447780420475747125394758036281588028976474259267252005078361100819597175756907698005415646867840809727260361919818902871794343999316056908652766345251653526775673465146586057683263351549149376122104022090216590289447516064861595603875848022955044434664766222390205452005763168831300451883743444908835288172709432657132813071756342301323026057684817673095684579113412214083980962387604794772176895417524402936784364803417038568935258885333736362889932874498479010729693274828680119624598876495070435399947701891820324013809033607267797454631896448833067934515409227673369971363628506267063173317255552250584648415180560159780361122273240178898059390196275126137388993835182393909370556941384807864213309373693538367606027264659393943093580138284139715762750488954873881322764251746018637964659296224817555467654353723755085116536102203096807747632513919263035097625584418479874989373410756173400153907136774388226134726757981225963834520903966123253511226347286835057767039358921503389238556023485316448059245078833262025492086720412117748172687696653545619767985539885616728963414518987119233834677939242564711382127370284958668586519686038740681342293205680816650032840769058619875112653704344055360330812273149245192585328456370705000149444002847281961547520163238911159556409730374722427731458966438560130012886291535995597580497936672011896247014035737842568807664955358183310761066559763380678636133596063952001662129459696590696832886084395998203095151289410040929288117944970473760839752896524135330547478231151905207449227089409221089907547104214335718199867683230127642550760364761313965588735898590766530724215137718007147789205502186349303333605962285135692309579269505157549951293466703354169469413972742327758013882870048375410806447118151468604858034774319736411665139368035223557768399708384407916987475333754212560131497285266833020319333504793013297727583722841815382707899795047294998483019876979821855534155703980063876651143056955915471672197856983255340723587639491360050754761141036764031659520856925031372698513741334668313365361025696077483045148051958218303842462577884752784528119320942193261375839169896936979804807210874679159493641559559036279739778934729073044055313793700836368606385630245913290529972989425527752186126388178756239692852808650622770882588930873360591987613693674576524680813344595352957527408487556387663222315148020694254940584618458548836239909941896754011613921072513676000182852215396203831697196286969468635271806980245267827146924027294308729080470356192449483967228473607519815096040424454125115462832882013408047025405548987510436429481395263917460881552180623779746015447656801220052980436700957667481131556361389287658667398903837935931512629728698864205309668038795579423566023951988075317324308989950298587761819199803474442847650142966772826556788690316531905973227781736321460667537021719269054472808582891837721424966211978389554126140909671836110504320478174769025969453309222466266941388231340061367303554288873094784209455951801835190446468519129390842348230113541522010029454070144134792352959780211629809108686133336483381708587494058298734142444951861776934031931372764252774480676947103659168446540832368316422419041153878615636053271877908194685683532423433970960605927151390972822556360242556357217663998646923296649459893987407592949724954008601851837497698931080755406486544997456647734262302434043035890713215442516705214730211584912410233672763918877006307180046170735297288249062403731205532306127558108270875796755563632020350461347436625562367535730324921954436617875664822894072643385866702457447474555956912717801693734159140254862238409510748872539444624900708106283749047456032373214260765607434340494250146759411505508059468303294436933139500752226480022931568868411088757720045957811727475474754220702636839399629480470254923423499191133416514558443076317000578020446024805464481327628344343668242569045658621022609471997500326809868943541811730215119090006689469313808387808560334111890094000457646693591319385796309573749094227561899615735377576757755946983821918232690071283393234572642611194508606377234739499121481644753354350142005884633749177281617022503580004687902585263493602595022934267141489520367631335160615597047446768622310103708474841593053255874867868305487973365140688533943008920291802515623226107670941480434048806620284689664816487596679022916005837411506093291277340142354147769938146481660794768391653266040535568677733692480712358815480787793709399885551829991040686026566435636958154686974673491737233817732469916262165848644180518825002628178243510932946315369686777786276655235505002646751679730837997966435608316643897002396731265945762140582212098608039713754009945824667309824500586729846400828839956137786656923303945700088075431547393577299876961291526964653353787508300331724793213910468471428129616458595447313323246452753347884400307828041430530979204431670454372806835050205456350600633619053793998966209849690884117280980130744928241547709130926292053579136312401430379452713990940206566723020575863817745834696028275468075554222504644617802441010514152583850405783167646095628129915226264421101975176495360450314807741341706442036465602819979899583983625972888980683801330541284268588555982110929994502336344561562473474999618510103634816978240079859587510640029755322414366327895881151072606195398920300058588499219498301080748694835928943719176411344051550993413879583303303056539674529856063439226066895071361532255281522471817305130162399055471142546057638145430304443634718581933587028737901027122856510363307744861970264386313831915203736344868391474244917049215044507133841283354578283667320747627824039621112773207386041785000443204503677083219176051281490006557029781937283431062743185416095516312182050632115012549169471566749991239203190597766945793226155165353764860195663115716331313403664407210913187418395707790672549711968258623949627124357738705489439128915316976407898279257112659005113942948095618356997475002543452646832363561128824229055500551564134844199153709073700929612906692834546033386684665594482311898966371140663321673447891994517020609588917054917905182148619142393222475486149159999600893703548853966845971341288501731387535184898149954858647830819704038510893223165425854276549305776629124145387854477235347199244739235813438870189812368920847319081312670824372895360135263309163513902168139076576491437425605837905201543064693497091925937559013493938190147346886638271117348582060907686828477422566992895041813714509872329148916888261394527187998442930588592815273981981972335016662341072002267074397076134367234736920730348454138903050906751568749861451999907814100995967895916580366244627201463376725319470396611720501000601110361726842663804697510686617920889506147874735666349825606881652706868107693636325443483129253936242941593707178240759718070075784549686968091050355821493393850042607863088385401411384464435153683565441115508303903769578002525908265298206744250819978653107709641761760049153600683735468743666133653806690352411241387622012456921708645241839873730732821157738157062450183104264964152298454507457386282799295322057112514536912371544093826287682235727926771398605366472809873258077838766225282665693441481198114953059466805925112763482759317789419736505571799258084671816683873222857853655942804509361133700240576812780256831458493147247453671884697621600629106684853012861317604160875605398371176246310951446779536140434535956447542965239896965948541828385672735197797487989841182029381692933685080889907238531694540477233362377494243129289863906586091665271228125705646340464160294654055646939016223592960245140031538717002822387173974358367368520162297803270291404098713867151608549573854229018247447692930809303989317950134757027249886287405655984934059017454249653779040726573859920080164781870711517994170062098967198334080724168677941373407429125549757327804929425666504270156907499705466400937270082904209633856122205730947434407538830140531509844582869745953006980175224298847657373149611107888413969336442438436222716463954666172364802326574910699764407018158358639781103414167380918169382433796315899357881845868842731994823519746447269632623137609926077864786095491727289157637269079723004301507505516724324844269124103294895824120576339051418639293093081197812276001993666157477616592095234891210538701206750075110836702095209811677851786869171744232564788902414099446168663914540992181385008881558967800619856434875571494987515481424222660665918232343057279159540655810785691686330495189276337165159613814157113272053210396313026573420424955016281163732054773892052377422987435497145428934163558886175194960422975937160210854883274733920204810086353795774959925017680240041830704014162636208932335994613739958803757917880863811980281325765460833861685359152906880413026385294727619299197038547843108904106693760018329672026582659263046834487325025660019852230211595061745356704195311771136142517384101045308515719036855207010698855917859653912288661971522174612875143968595079113782079616913702572950400090273556448038704439706077483008706778549164066073869056569694471012616207749086530254165597237667481804082946615792818271573972305959187911695401932029930133343127144658414009159245700699209447853530227523990934099501248506815083761309708287436620461162652430808556095083072666545243814711009192773278216489266537013567961381576951686688065352342145244493623348338386486369991240800303208061727169045385967220244396113165213638944825296330738052221244539748163488513741609071244580834666270676583562868170061390724857357765682771016234234159452666406502640080937320062659897311509046609628916232386861750302357843317343354382889293598346565602462617746807690743842695052535193554172592354437759091511420282627662250616370199642418435778528993731883022097041299009499527550011407817627101555227217321298941877479913227005201808967205644542672129690826205814607002256184455787430210668195176026668389570708614843994633386712855226527246719349899905218553705072880983780950424223676579091316557636496312774735672642634310173298097542736323953367872304651221027513784443312846434549692682481581678505992903619288634534992665352687941330874488056892021445042770659096632944336296758162463944367716863916735076291178459385793689958901786689587903163174393815029611989756491449123346443614491727781393247846115966040145448795872254161463944508663595537559462030760153325496428521997874213508227685711383281193150408187395290762553863810007201087492587705396543573428504495063152317184562902420305626063692423401002767923438255941986649428291600846839818856234835732601395397560877646710707473436042344295475749173901215143774165137268550244344414491660188883707172889239117618730036683263842235378527019412207079422506283689474052617451310992829349266693334428696341006112774566537970549274544192681567406669706432000335236721044842889968178836623202801066994250986583093341603964077598568620808108397445172570591930018010049099317755080219907800612904292003777177405749034501290065321235062554029754109467700646250666625735934784588127639693984131853141560385105863170575663538906859012711770125946630463878956000927020821880905548514862738894550946207452840523240215660079924298164826810320626024019299341810202713480132343229462383810604148658091555553538199089976660646034412323649620522161895527677645873063165715631537005512801794999868487030341384184320247429621535663760554726749091658534943230747812801951790432496354139767999853093416763485457890184032760005257874539482445146500957701314469521651050880083344443422271350986198957860772321785708959612175683169057952714604022325239615121462453566918288628893087162626145227162961404450861052674441990644016734868901613053926855618178135188676037094885247281530064897590184915308743982969170465067890013701045472903380568437759039302616620945317300669192684197106089870558007635752771198135266098745661617483749834390216535925478845222642133121795912297735186418192338628418466611150987947876830056100864353673873619512704076153920887992067698317973611929477161317330015623458200908810591666784998704738038400829388681052889111042856782767135609347267624232948302345179949775874203640645188573392000442745557394377808314094056047384078870512672590888401989505287993393213922999572101626242315118849535019851692287390955517596323254295441022093642398242511623829380189778347024953350658815515643542177815626546013759051558392481743533079026718871794750844039581627672413313942293820454915666964775974922125529010186142430211183602528312609363973133732501278896575539161091758934323058195670606049885006051737780205869102844547568468595867380341249135473621632618517795313033617053123688604072394047995218926477730482050255394878390437652131240373825886328184557417937017405543675078837392691965656070389781843834331753862921312823294488222183845340146312743268723407565339428741729831062081591948874997272330104812498995807535864610912624900282740223084538214527122397675801265802771598236226556783909246357783029460914061730448715408928749171630612209468438809480853029208926942654145875414422986263195068438235974088605735810115319570422535258712001363300519621592218980424556405622185446782049982468464681535328644150875538189135980696521943270561350692269666158425163109876566504872726267000191937521942875665947491302695819081180457655720002715641147812678658097210910184940898909658729787698956161712787446403071163878847836256845692979220304024249416515866681877407709111677244142912890124549776845020389580616795887891642530535840808946218076149343294083941619523228383355906217880344777778122365611990780814985966714124784151083213131321643188101493352822040178936987655585661113971568436637176496267585084799778227749866681085844506112968819193074202786584578786827752727034326161338990955047554102720200962903296059071909179652561918662374633317914762046706650401220245669349457968576280153644075916372666001568959630886219836173006943254819462329202815070232202326576912714033122461495538286014000682129629794876701836938543949071161993441711190238665446714893907712185253692173204813645374318532912318549233366592444072636427949202617207988535657346900246449616714290032205746663210149551223132885868256134131203848254847057372869489663573941404291201904200791997203588439208819815234862677201165638083865373132154728517112706555102122074581223023034429860269831658940851746147287022642670093788664994762346697299666728205964188400993098793681370958331647580987629199548833282577556560778188986584493227795305293928845295026870959172532746907169371210068542954216591399791410818271525987797305584096526860368178259124403006718064632970111186360013238790890175374633845806067285150828764021615449187860367366579014478104464866684507525415950656027490158671212424496598443203347910961470806991882144346384423072912077894748211108957312624732933556770347362039842758286104792044594884722676805241591981941124259764298426975809335941084665322291059932010103364004598411770482462036088553271451694119440144225540055678149927612629895387388447311588085040528719997020314561702180483008066735539673189495704487675429829328722972993782957810739549936026163213029252361425353118673761459869758728714641998363951063936697029639010440724960245530439754027326805085798159629417152953437710279113273878151592708742579945688412009290809699082795952648388563973050700326370923653715206670547565092910009652125467705321982614371135885483286082826968919953531307580254283136106957069552046946831297457757077899410511674541265825664419361143667856888201773242559508359939502944136496520941944932950248928890685285204750402499061764087799600277226804920780008684784701956519435986907800363395620067452537719973450015890946403884181460010540858038373109082014664585218968687319514906296669985767634194157722511904336055540307626592425397724963606291530222615334670580236354304327594006205522662319574626392121390025313644357798169104888037443103554154619327539444531498590477430799944269781589339378058070055993688908562916079147293758304171954118031997511492275663059679739582009017292620651950986959819235423706216718211063533957939120421657097591226188448773179021394806006478260743689279478108675364492379647454580218515934611994985019206228580228516466145698926059221995963479079003261716436455038419391142927377931875509630931402617662438772631283761328812411160595895420079746148901695648889158034797257200881107526381793346863679184225535000739280825897519100974995615465080125649488857175751159001867298027498377192630674581404199562375920799372141149288877342030997360835146420518994309466057252787362045092697548057832415060189481350577733367241448690266809224836034902576127815453170848478280015841291988955195612263208566682899044386394626029873687994839985353263790148521041759307668829818991922621040526029411541666546529599382346097368686650070119097295255397218359547198340181223703767886330744532708857408790221300766218865718746817570586648215002701607511808052382061013386239948809248745126984767909975998472608407938659235298190193110473499016062268839653931078311771656942903648400178067450856792089479981495812935848902450723909716819694628562095405770723215811097457831322724150587833781482095421811885330626722322588023990032946630285781581083850319843004014939795585638522415818925108097202355598654109334078651151958787329402975800231887319101315702205150802572229383275694354775132702571954732440117522532059498684780044325136162321503259226773846452879547750169220231442474944588523226042379970608039246507631069377442891215106100839712974562912528065730815105803603911553872384698911510251984490892675782473861000053551414524500842598983977279015877634824355798019802265861084691725069522150186573362367914907480613206407472020361162342962797568727492174439773367848624152914478131828173451562247819593037695605730146039130244685142348503055667243769844837881433189632669635255602720739551633055703869411402102411610408878575900608737937605457187938522662897825710535897087051076718968946514391698215864297697596729816579008175915666839265925174306323052754935688038762002514657650415330644358304666237699770883589820126797205572845709850069494093714756319580435185478895607512401954757616125149913172393799121172946521502147706533193550546363381494796521394827776078849341490119846473743625844888891835605731022366365794494803285579971209338095229275034037987254739065761882652317526377381421533111135476379499914613936924771306907407060113177786437151266406488840100206097114128224855309791961572586821763516312582103046384076727860257796142275664856170476879408671075805909872904781445783461883754360835792176468028597589320036838458278440133480182842134770586048495450223810541257909629667897869062035597811432272895894541502072386646926818425657436515553658780021246764758446834639727464220828204695443303545581695737493632812254869023827198547625080483957107222385911217166911942678354368750771514178591887839667913802850387263646587253748237694008243729871944919390077348090457948432077845077907977473203817230059209617029545036651930523928380815153869739692153604376211306930230585817553168927517122664083600635130920012209446440053749908894863321602244423484797871725995941814712561490830110605689769251589882227891569192344026054637796763821080096596842785661545691343477700279797266154339718584321880667027570057246237215229254060572317730360611233109945614835364869863054158771653095720145972945015353144108640694553037550249427949302475646193423847501055683012208092592633874966610237574085712964239527885774699565144761318148893021412379937757101390486661500564323623919753870201210753744908721125891677411431555143947447283348479762401328193405179842609114316163988543593721236415211437858816277012022134672564262154023991301726175115253191948022799730083301237127133760677849591369404701536684307314526503594045534468153728069631335212135439422929245340336322414968291931744484970803170464844361582142600916021611031211107688920454136058011543345319038624259345658283502936229862755447034335935245975800522693873987533700534662472553714814853915769169683143897597843928341805639030541728019313550969623990675529568851881331546723844442009342629891509709449980027732402130389979999714241354570740283138604954400312094554147545910621090295397968877196945601275451189414296614002450129915034837805335080695200407158807061231321572810273133166762582546429973601751544747967892595067800359482984216537959570033788450169520920241422685515890981543603611335167835875157059985372274425319907649588028270502899281271497669560069405920745655849412425516704490613269332921681893927136325793841310344905349970769355337784021760620098238965245397359485013245837706977132073014630867080936864574218409014955893458641359859308985649898487833239575709282143592843406531724087183834657295763178838144055688105782522298947080686912491746075591104623144298006917840829164441808172270872934353348771110389799574903509631698088708762333727080925478830460962456879625376706672573966246022458913432443901051947394158784615755040027755697120908091744978637037568253986702438251371607667246069928555759674602623660856101006484492493032953923917299615550388828801752946219783048012527373804870391695868277448408649036605730265045753388728428582024004921606532702945474078057308618642619458403386686760813505386978960121765137013790548312794893898904616348010314957664667393058070361427164278296519163464348769762140808679203787793431586592552158381284128363421891360559964159438032253040847828754088655115689247890539318114026214549185486740536564466572556551209295130437957788877309778146101818310434307455753879735786226766481750397732783794139023716225380054090091269093184024862594048963699448191301919302722624873816598962324460760086633193799446866074084388243746728491833927037445077599885786011793089783239196019201100833970645695620203484100284522059003933938348597907712996528401237246178361706221680804520159329374120915908736967954136182005989289808011473051404477437975601566421334766648066521797874429226303010384735474020178169907432409941500248792504393115616360292479440329891000786205189799638983662747578527070423494243863186953409659028831145118187390408008295769910859142146424577508797189528408518734927136469610793899700117898569472807406527786690387711767802793636085396116650894457170060400389169054995809871971888548017682959018863632677737511646397904116578652083838427982807069084534182706167209955296615474935836976723118565474208573535677980032265937455712853191922896464505625000836820351961321554261200189527572489443964277713989321778183870265564599205594911906607300302967070476283160705866028778260599818926680508375304135451617162235690805970787358359357623835162766932832919099393688069855598285342224738070765477675362701964890274697928107659178431816504190155205175653928215198697688744114893999263967431958566710019017090679731453367710871570582934298050908158839360710800710913988995292897916212079621930092130114627727951108869900341573428947738406333288465178064922416401658833716787221494111367809149240098432061398538033279659850608040400368046236009305200569340061689046565676672598357900115139099726683934814196398996324202355775593303184743331236530620784644853754594517438610340072614643204640104410706607893432488105490609139850923553099937500958282538943966412006312043372496498768001230513042181719899851017859338493534728804213104675600789732041398297876377807183479201405721981067719215061041863562673433354588393701132584625301402010681589004971231989004223707311882174439821024161505376725885680954954118773584531419631037681520762498305790124866702883972540227628229955046345519743132685208259247531314515091768887485395238964095572044842837124534529091491616307579860947680607998774795295525454720044564991256407936982441852838462306584900468084396488552892188509828085385732963214141494762318534085366699954601094429270650732688395274899848580971426251538167371475467669291384371488783299890242290099594969471754327497478607661723285082297739668241624738707323373543864938095935799988501297194384774741448465387196961881485304955379846072176941818031885337060515215826556787111731287750864972003850520020563791375827702618401923700176842446977756067666776417416419884777380115391570810270976675258864437808516516626247028016397793310361087167661749665461193715426863355710452576272657534108624428811979477926405706524116552086432618733226096853547045277144935335660043569200238772918302732402798903076601179615188740319948446034052533255272384736759015590619704626196075229994786427071034146601269396257993559828350106067229358618897566414706903154081840609900595962792498473625400878382556348901234477075159156405995519957611394120070891423246072253828341836256433264882749741248541260148924596727409013729399317784974357668302760236978097961965122750958205793338705000037944161111053164316572371331287804814041665299066221741067801323887981311095591764420937256249678067328984975311159062002819668146272501145063894768504446613722469264979863244209826930152827738767488319126311402216919857887234127639167158691509015041741644836843384884918169777583291219197424150163704936277511482638294791148361201794114750307750435908364039592960899457259897337587519710126789538908364491048435109216804275987162521966300306731851177892642269320997352034364278575907730620898905348780400183584493456719461757293899697014513643403585552948841465510373900427951890781172614769381830226058919046267801860323433835324575350759672264573483670401523962474114591821342239239476539366549265005431874011220702071511011345112138016353555396291138555758001823942754681760347246424715183492102225012202493060076554315043313073439418565113903393908869621793317993220676036497088972438873392515511067595475133492275438637899355056206944645903494000895113463617037193077411883917689804043102857503244949339136060924406220727562881613495184631217032502753418988481179134743519241879793790080525107922579082824918362256535916436064639196502914525558644627767693546808767207777729104891998457465568098432269241553572200829924159406078883591967581606966255729107884081387873429277213277686208734605575585935881514024025135084461557072327270158964278616720696349851327694865989634906504932853397980660327966265530722104678056377579454126260712991439091425014029905096483681171706191606101576618440407011561605214803943562563328306991012472133867843443256468509033605242185640485324945371339863469665525106832895822199327637583376204424815560072822693053928011402528057842661626045965047157525867564869747012318120421288520688284652194000811000996162665410454750110957834522521361359507743316860946597536913200105671930223409313286668609950318166434890237728907274257861530729208252948786808738034452683873682066426784386650362790643801072900371621874640114354409634324646883695862705515102942524521776637399678339546113980552741726949143268839256650195951872451436332659312444460259523707465401213150519264310270086121697969318921145406216983282923905661911361148667896158877787190719249243934697794953456238951577913717510170002002200923302215854195779531762234473944809846211968376685664617366873861320824415347099939355271181007014882928678954678595805232341049564375713097325735248220012390357907318195430152035150339078833065814396968761427808758259570304146491922350432882267762609182530903740367098702516656963580673334120144697522347144891142132982202204674488062036534623229597186426849639379982429917240888742845037019425919008405774438015429903951229367715695379100140001086804920510441944099060923585934884948377845849693480517704337725234240639876049646527093919964553662952745151373368443078417801331515520726683078987607192760496789006328122282499984764405075732411830225326552025045281505309571942891887057233287309244085556473911538947326250399584014493743393309328106748475665743594340219433974511487965763660265013833370546398118207764283519010493338958274408879873839854220445404379882174384603577782048996987537416553647129233536472146539256775080514156703931687836200586930326772619052836024122190683423544838982500062099904511547568017906290256461934881190199981214543716660943259538124084184852902234913729942812950850667236561006557119519990604584173123576990888156212914518469870580031684822866374965969813411032059454117476431863421263591272221801612374555252902054294794710278211363923937052349969938917217437325982020868768537416933834175537169466971041866796783441525655524290010236312061942752487065727391771565841897072243247769635625954436461555828299743742902352498426289236050101932921395868825578440822963581255938603464000631362338171907227592588898769601521463208241057225867473843965809101448816003896582963455947412324741860594519493494329877738188932201521971628169884737781879462331407310047647676165561314327617129259607620919903122755535423439529807086068931464147204115409610872121739858532351105301875882644552446814356035461543757845820139828107175944965246804419110835094584945219200627867447020974540186287111755286019590214422304476115601095731734793240393152039342576884923558550980240160091155517946019942983921417645788366618306360396706641586144686790085789150973343848345270751769353459320915628810642254493818607734753875489350919553622319449367134005825772951762813910291088198115926635040291454199514573537609692592543381518070567643882736155472122859611114561250474385016298900171466045389938300966606559291350813445731365706393250730088956320664775450524789418809482195743569263967961932002202877210677324738328918371250512833744145288412410918017245010419546934194219453909596555972181514294641276297089776983249297130955554572382404211512791945887085837853955330625235091838148231519373676972609326617030122433141054928433629439085014843555897687638401516321688533279452913857551073831272485124417078845871727326672695488517210237286563344424689649405721423574798067192617065109339334983929217883318656760476091884885984445481974837569858070430966227911689637557783082235832262269067951162913884652717529845819235211913091686933862386499837473260220093122079160276820041637512859061212826099673861454056532121381805226152075512398031167769049783066299513460983612743667732410795114564866533300048390725699631944463524678836017040757505558377344983353530207053789662751445818820581275083938531018051615722488250211607220048903094629710327205144942190557373739689033117326890659123676782975837692672552428851439843682436588107574109762900417227488412360560332810538510198239137769472633262265880474931819270509586454619131322486166574272531912523608821552242570263762413143072620555691233640571937184160502297130743633002872613953445718083937179180449956741005449794008695819585654060782463793963131059151460096951627775353249636131717161562982461440281040268648737929876892525529548534316033646625590402678222535734111511969205650507792657985654160362659133980572930518609431537490751265726340092544084110208551312180496726156950571281594501412865180076267455011422616732106430273856303833499794614813108382552723470796085593426920384723660512498382444102706638323001429875361488549599087356947780188934829253046779536099449417780332936069093306389652277027606089174326812798318987902329035001560562647071095456667859563703047377879450276293767105175519774252239768810808523361357494793488692136236055903974076631688364321071582175598854021806925308419900894178228993804949258558175927964309412316980304822176364849507197794830235499212284404362084644299275016902435530800643964687878366985485182719288299562725948385044565774037381553430364134358729965677588651905212165792973215271118705446173347784027836383666279303301618309969560986939536387489614479248675859049989455275976747004648201261286729939163883372182128097693249839900377314126820443273767575838957968261384842750544662925060922555977924063308256189611319902734677875366356045256390716377800746042090309212350766490254913865081440930443788163959440988204909681040946735861721189100141698480442747071518045434486761505384965562633771055926169688068411695192029028569240845815796052018447395943815327891571424910735871519374314442434482895078378655575148013355395965537887986464516322362675948140074706925688314587360939767724448123886562959418889396188881680515566520338555240402810572554827250880343189555321364334373071513135834522081677375762622053223365554403352206299523302438341183165891341125224610332734327794080564397831048944786946931056537699397448907596811073445389601325600392208492719335272388683881134350485785353096768030965664980516954162994678755187391341014333251384132411449764330399995103707985687625028522794813526300528139765474255798569158385289580884788953856843994847644289997847220572714124462392778089218026048293507006602854911690683245182806387248657466740489179555054639760324976794491046772375589807448530339163800952424054499853025995713588280414439250538105330410788665237382131987144760284840902566595906896762378581793105704509534701152033444089289578867474889196442641738517546543351254045538365983751333454352306338196186213136235721750790129981848107914077551263573648854699263764789523989447870593379545171269418742790206589173457122708114799082335424425516211623100530148408194755015406112236167648902097020648100706035537723446127122048338349749769852430735062636296465354794034467053056232451719279868656774346553593161930134684770698511326836481713330026328919428609168822248141232444054261763896713539483194189802031517675426843808361832975774328764398131401828778970534922829662782665262207905530635218141296062953055904760096946376761150013675961813326255542199532940155323311129702311119095264717004372148951827696990556575951084613550453584021409175071816039682994833626884005861862421804395490543120934165347018340844320499226668264435232723644857397458990048695846407811421664187527007276087314456302085113299281044190512591837883551943225652411794953332934906302661682116479035152846522971900181809126737023754032115781645789254029610598623586597850516463219067917440691262781762761599713807569566426484480342362425731619479976235879331670468676751876356496568465991929571576019513248452761629669150874791654441264370402234027589463127855472678631791116833054078491540597410119921187482437561143464564235225876036265346779654318585978370569470327985498307735196600682136468575676199853046882406889151978936110477584998517767045035100652203071528266000662108081775470267748753005300657556557262314642063906043839725723983183994493545548503530450659487384421961982717938005080955965819794928028955844023817807164502895583801044319755153637973684648669441192446927758956543232733369135273935859695481747814119993571155686247352659740806660445748966408445277196560961929409485000174829439174287090437388473652575015087780612199919479555481486104369597460146050759409327627067334260768707869877396572442182534162305333057178512244890277356610385448386808619515363063193798113597262023456548353024489990240447349555613207155639805553143039898871982481144990743964480171794215323299690786751143565907546921325029718804489063886341586993504596663233415549630499621407789144659902322372775364044988193093155161219819671593701234972957114256724982773582385690079906442673566221808274977770971261387375560973056162329005515538061670750197798739028232991633294656977317052144255901804247204728032256265039049895508549822729699878738127517190600858181134252555287038899754774536343367905419873949245357477038192222496716525058669166884047871007981603439411652379628382032790382896567792114067618898646619717576965944338006148066728521575225876698850999213744007577613426961417981762156408672553975328468042132672087942854821436727933317668122481156021393424573967451435780225797880890197248478086350385386764005057762219871632395769179698732516963438155998490962835128773255387399514765680423106825098188717307958659584289254771108896666096678774709144813653673448663014212818929874214760620349915864502282442886612281368025479208730449197300166388857503235553337288737735075766382360001563397279061327404290022135559424882798858944159214619882842459409339652177381204578640993597574023716603445563096233034665269736776437260855781702606517846809824342372665522372749259171886104858282332728101731196043144756169042974718206391011096909187739496171300929935058739363795734941350859527102109120521948694780287843700023951635074553447249264928332534986130042238945362412908560238759784635053096041569457770440021694393138004380963789281899432702845497350127612319617496862561294681971546408768608893143214775111067236707111796671914429881959014248551902349594065994486245106165414692095183170804986973063023995369032197887478910867012064334716752003174290764735596813335663950788773626856148851095479457939581536660020730260042929889693870241403009603256561937591041880331848968182850891139086233133858321779338043893507607235292734143968222060639770668189942427296568468686222199951639258760760196806005033637226034582809885244519542923853038155352261104404760694235148059838845833720217598403674954977594371275240975213911468361414645719355316150278913553036546606939739029572531204165500984548353307309275803375038314701605047204967202291456736173384684093377104163070149920763061736273428439608787096525715390637160552712431163635854505529339404926132323747633343166282544809185769338263352080059006423060402048746916634983130846274558723992556077564594484476303160149443531979373200596298291227950538590625661096526587076601340729152690280033709065339319042840118740980163382844561087423202848922318125325484004300383087008434025243593009097254927535435761984779634865729140353021532684620304954847691888168770107070903662341298395674040265672556179255388479546892253253012205514759707599622387312888570566326989994243215390425145935497834561883600115610219933176215932537355537535490487725713713620414394246854082075515555413080985199651248519081642378876317636308620298079769539297745435503124975470916187205746769932936310984684036401481844847559528561054350730819371571122910518092900910250427016994089181218914738758820802441417659514417728003138580539927397187753401794659940378817432717978271984373556633962818843655209330395651402784444432072580235275208762547207325384820690630844100643595080595542324943025082863857521073034514121063994043372661832874130680401165642541073316830863135213335522769534188309009876569707309947458347237845523262699099938053524227507664323897266527347874212149016105470613083082506327744885788666073397444457793670605741154165358721479003291328660502400259438437526427186468215027374815057544967637244013689783435020122084243418715905653962251136221304795292891096756030283516825497463573554270337510877734270128848301570197956361829241629303032252993021542295667316770963028140420666317158349558674118539115371176843188497417953528519568980971117990056898055428873883846833072477791902898570579540688638529134431000988620408284319284851927970491601537750458114661691458430951372994016764689917248055736841219004460863286373198802629317507273451926318024167745851944955161172621804870807379507142929543097750608065256306763190003129143746116737992587927475435373785201616998861537246276717903455794284135690329792762939182393137415196279411032836176887191377360743824030117502931114101069104763482036396758840068559817471769518938067338428619102206834195890546925299569413818269021669658140524826714630285423597122723140309958330580268696979044517825216636259998024719070442929390072834602402134489882590018200383634664878405152458082224839294796111258157080746408403464234105449529070918807135965372470149634661633107948720362500512419950782795292352394596694097086097014387879221017461052667014639493484290090395791691198223364635441674897240551268090750967822576003956673667284601750404636183057559257369724751563122719349278505838091576235670688837724749161586742478204251284720433736058271812734353802416201248457226434576811380499554025913262675929129987128606800365686979731956135447797759973277683294291311121471513092985494615511244683373575007937922722307651028020107058687348107278626416754657426517045446701888366477691772573190527662487106118412439759609900155843546569158115636144906039746369033205586449970943830781873841456349006114619583253977121583996038419167629257436190365025164498003751333867229465172352322013133230685770439749231672789546771281481971761756583112094070674375829132650374327442516726537809238776456118793392960105091817398550769549545247610829900368233959128010370864939978512666914907998569523892191080754216638836962225836702649580469101203494890145818454133174037832822123386716009327179069156024766009245693297760940512186018483011488466593625473631484388170645689715958465346601225599690333634552488511807454070260768416182239240504453375326443408743063076441068773713063241813498938921301996164047936173009806753620001233552310490842250334287947968254130538173996456198906487490753595108405993124742948210635867415384878949477889083771243616611213304604625556666626593031977334754716736428755585961752008490325269377518562982236190855424914351076372528782491551036198550596491965360054478157043333913372995652736826760391117860461328418827203258337699404750274226007108222693609177508804153764585357316545412752578408438670775124555759596656480968750907112599772549532194340281866223315931780953402937943705911231760512913696033749830826097516128918008384869385641777636968733546929132194090758532480961525613271446025770300691364104192900409561418626622975054154505441106887273654302717498375648859549143784081596914140327837441631929171861534412697270984867906156444799534135537220570597400485196980175551454188495203860474564950591111662064687829220875849441029217049874747824935455508686705756607346710608267361314615192583340546596693072849654212630246470024826836189166866359915289745898287308452821787601035803621583046170284817098430399422985922149058429202212085402354714758905405075548475035868472817153924342922890328269735613210535602849994471106594133276888342187019656252208805470775333247101125777197390675445130391801087197357668072542289281894219133658908704248738033891048561200556412312467271725755006918898083266931557550620161866334770002082629809599520939877039824524782695910486397442368981211496911469401215516991692052153506327345160558511701291223348129377264799991188042469503453601032668929044513512920903411224677724673479875811342339856269427578992859104863316403508825724846708027418889718997071709781013292430814924594853185383057635919572526781170291941953278618602110565710998596144242579774531867067771102984301870043956759700875540138337965274715934864580146619668439170913545024181388069384941512487067134709514753136339864821839601621364938356196270979423666539398324214214778397952214302292530399537803796366282202100993527070524058390278743215340001019231492496903766690792603671067587591315927456827900518064341895171094000067244231750853354576446778319772532772553759522055239065702090834807707435265445512673820061419894882655193537326252662981072457322536929910295830796097027833429446422732416589016752781336804796998706213796547685782334869698306317991766799690481885975525518532812226127552285855380874652102624685439208782604099938918698986170939230244650167862927859002296326133540677562092169046079141082366594067099898155296108455765092882292781489939639367874046472064457939399868050157934261182675686404699054292350333493493528615011758707287358187497748995672255427113760525822784196640256935032402206558924220434774351253678832658704020894196521139321472013113329276386254107846593760309589673055351510738135427729949403980005699265097621739757523856387703397476754826647781074606996400453305053702180978465946789047749179192491817864073844386201439827583464656178079253103132085037155438386891086751714905693375323588528198204241425835953451133482368578765719400948114116419993465556261145104536023659440965035265215706242464571402921302268159523511360555386045448547583543423893170723491473765749982463706945701888776644420845366091719946529211822153844366218711114912017276592062834454122385299379923918987224825697007554247905649879620648362721727360603461138385187458486027592407135933182194811570037483314025176072690834626829359860403703803474588442796402347405902136625999764577307097881849810958692234557742097103241700185167244370699207988121223477013586732701894611949630916467761561488741095900696149531788755928527469863249022063850211766366860951574561999049192114441180614783600367805941051432715699957576233838615321476096060143077646357207682481537387058621535873580186092640551812444279982533994725186583292675842933980878727429987740207391070068832272020317465422144832512594652606889398311511570744007745412539124724300536747553835662881170682332565285836534674134567020415584002433565727381418900163317219515334596764359542548637768141307888147684429190141011184872087479263982499824912068404174844175417164306778986347730392609974407606240046539386384234838411257801304571341684752894671708896457293885303321470442604665955415747035529748335053864556007691372041210272279799457889806705569858818069359630334081407742895757833435696467098694538714439435369397493571528337268980720029829363850395946673840217050531436116230429440914886798727276268454099437091652759360772809497558272201388528854375290532610344009775865556331811410814291708418699213664072541609596015882242432034512391246401388905424081420218408735669794238133453627584890228015444265906242516632414322987589846565852106774728173027977650957957068670962079782264256660419468300383410496909686754408301304712681687969848080545105933268836107688324218788267674816686040325550370985872508945063302491105666803772161470963028537563291349838124655166125661637663732122622797418235973236616478757779278920418438314323499329562022624493945853723735971887993450575266408526398127555003533696849194484262873978833281271274712195802469145293943743835250074194430036781182378032678603841323237214226485085012537454749942873008881856071575991710946564197830118815844328259147438174675307822076151334764438985921528034755496612059594937025672329078712984314075807334947097335305667407379132044131807155649233131320642173792843631521711777048465638833874970434635298745908342754172261676245241417187645378007678291295660344652790189630817784491315913024272886671365152870961889538048462003573248926378037847337220988198716997805506872184707818621442555865420839933397824613454665521348582962044074851034689398009543461439689740649555837816055035796763207898383850481353905561402526113278508812144933510702366415827965927259533946666502481554740419530106995602451990800877354884193194799464401267875665249156607548447681813173144491166364938844599997008820471211994683779829830570762524398126902959500158048602078676265095101957271775070401264315557194810439873963320615103650114452753706458388739971156671351885522260997994806877030928420358405840185993371352209234953825252737244735884039561888679868250220755072877977786948154586320639180299689448068760065549397717848748853621811454029633184864362193201532730441204018618311926232042544045681488904023583620811951044632057694883263786737033068781273544596064396552030459149685378184155788962724947445890897215084720896034416124216141884466377187079148771396040887811778956198646479370266786648285611919478365150494716352204028203137339520918880043370439914110244324558684860182853106729451116418476585920214217448359229648311566733311151064467909538401855873573291026997335143972871293685062133602389536578873970408610556368717275721457191306896608768728352082924716178883031908022043977742309006170983872697349454169258148979714698777495434728470671138328430733864821490356617014237622082556492771648158469849901489613527726253338942846015394810170934779343956297789678807946600280742142550332732297602334347491931698672279393139991491622858136856389272106205705757790795169377078337425735137849061768728131085397709100320958541254147814971592915591876644147313036570404751421283548957507158205907092179737125089313372369240586770951627952216124680478568769875650788361209372426969148530450093019682907096264335501823441409433648188048319028126228334438851068788972240133610434766645988384709728272990025894522452061716268486520902083807682359739348208820304920523875032337872158712301273090895046686755177955245193432723969838624404151986904220748231836803471222930048584986696352535519078542276910303985626210191890243452583418548716436103039105129819079163045909452135428188098853985032710247509855130562330193230677946627305428084343528360099540225101953443059639359541607427842998625118739452022164354500686379070559837895790063387705187865935950891748553773540609272528848235262620838972379071936332529041558641557605252655003084080299576878959075718198023813098678091325010515211188764430614788570398873631416417416074774386738238320513595933932475167497638574462626389005085841527118884590463646386055988929201819335553238612199245767302361292309435271257195318389749162412982945547622678602013979767823510247649887231501005320574379215881875976301565567211982883181242722958836875899823362046504223717439656624452950726229784256762856675604519618517724968637411291069990382194953247111506013697901777607113932993151563048781058843323801968915419429932419489779554540151759338010502148629283378244151202568926060023771675173189598529233397527793800296918246071153964172900601392524613809451983202155431728166130317712571075147253753857207907986535918700569131232545953535226983217268761775831617536918552147219944962148050163655541774100415793646044680906138366154102700854972265448359854132676871830011027363303747898660205730385154310882118883788933710057348994097705886581285084175958080985181826947020695519629982405299707962636125593352772886466514302226268709095659020255388348773456109568252123424102914311195951571069770618121319832562268413867093722465842936908858777556154991501009347808106939473620678949084614131130874253505442074641135650038910654368851164339309383769665407034696937325939720198254489522765172971456041725576086845671969692119243754956661443124106584494741333951957117484690130100767033717845237417338080635354179986631280272512477654661102061772534871803564082154028140489944085514729444877880589407144398679896506935702109475139976527613276922864727496373949508469120572552291308474824615593760448977920345115209358436809335599383578850429238216139699795396141172455081214249749687565914241425914355188146346347666343817601787500336840300269064452484458267462174694976198094135176284284493012991369224025442903477654037581354491633312839190295681020048248528963553449167308064851081604033242027684342870660350152949713383789087575850608655093645883361513021582227204941735839708064231975438902424933050166072628184604693238560949992073858794869898862541648213528276163968677132178964778738839973649567219979405444295073510007630834853821700959017990174116375981749612993429478340563511752398138547586784402844937619768423709534277025428993377506833453701047086637870511920337082113748470008222370773867454560622988146289786773964935991928878808315269902428560397828688624833815733125595729515572215403029340679682616365279752891628210630550900151861794081410039034600786122391265372352311044089232798165728285803766004242081699361316029913044891270150484472189658959710574289486731781945984506593322791743434041912295674827663305557736404366300442178754798844765313227789099772140549351186377674036281447116921607155088652907832013439121522349912593315553793944431529010954277042733496924356561107546537001418082822930891573866903838274765854923002938736462920702461652417983404809619995841478350913078467641447691481244722954844905427524188222657623248649268914817803267573438245215273410349812939251853692382654898876995872750165092750123562019682317747022662402055369510285387861892150644128712247487946176532659175479317912119368079354107421602159750594291918466812328755167335609870614796669354298757021437915733032781965746403354729689061178178471932861640555213529628150330839112413591967973452557692477028366040795762309703227451262574586679394177849329349710743544753876005953201806550399404357605045639316750832824275003013646468217029914532883299133875934352726726186047042190161235383966769826804857474816088008969897231964084075759934407612277682808411104065402701266623221634959212151130820729509281640497931012782038191833135247062595189421392126946520144933567480274092765020427061465295095977540197661726226307593246773082226717912667660250017898393667941164000261531760419274348196511802766730679225874789824237665687987846346981005722073895355440594823314986036003502885371616605795259012157966898542474958053139290235342788790406077502772894605546005112273734306544591214333045460095303077489788745060183963805055804095163905214455831499890886921998387485071412412952391217185125992239389164975930056522624131796938021213714429869781782935323323204413791376846006787917867726697011289604877538836752735552576632094255556878151798834385619960786807364138070152755332501987607331785445079381304677553571513984085725018941622120665326688747670266265582729657036203644401093410801593590622577265508517612077736143669400810724369690802801996551091025780112284207413500872346100018178113368607963744059329048009885949784516903146616277263959349508606173152897135614290832457392321433109288649672215668860957901312927178715426684066035781227750932843112059070996635156858518320791890017779500551745755629572549002217005026208703825225454603644750563341090834794097975803510942464290323082913061045305072479459321216984346771470153364261222915760604115071241242870763811315952693001888827576426877455335306801073466723717513692638533351930070897553365273865883033005373369413862066191221136026636054608206047446309806849310347416064220022598736846556902021626629351800216988887333654833609609520783561550213868118046063932335825386029603929118919798062386301361689335413862297041955741527958251568685715005840497939600392724068586938528099645126079916253820159503691598369050923200532447796972361749510119712677630279357191015674145634501497367289014094493789738415503209934859483069624130662954470718862629321430363514829407296652220853476158493873669136088461154198177231918028359445202195079760817530055750429992178152392185555925748612341182505369496070975414576000003842300791120976897737321572077736238824745430073325521189939743032263159237873469843429598720457862543371640357555787489090682798730437733279841933306018143449125582975200580813932210904334987958706385317688179987851166336711700939509263534178680870070016858108005146693259251660513088528390721773365319990493196542248080276623658489578583393461523531904450333948885695694608139564597905987582290769626129400794711531530855393351190762932032148665960000598603818553477032520587301833623263328721018552365871928287112704552179460560948413911032879009194899040315611358818776247948889631954816733979211967880800163178631927047486726886739601128735144634674894614726313452134041470767473074037425188217917273930061139104779305822618617832696745431868316731252506854901829740737369561494667172947387104548765770896413526636377032095798187857805612975640405949367645003439081454165007965689934021966593173436556329640494389905090298294582199815028254703335024736853985697872404680669813108681379733994886247768577803266868946092734425140630861356524439906245468875973089354047383922024802788640416936738008022850304954700936135093721808897677257664832967946952903545818717832943104561373831233362586894438203648397556800680734433926940460384410186318336976782757006376502627117385813777795773550721970726062633741644408093101808004340148782385510591713102472726814017030804010375312469217809239375552987257484598947517375170559860110152760831872983791046798052227724271510514451827941400354535686261411447774364121959960139012352608694279901239755021251536162719662605968915541113111628860842613974498559594863115673992203565636466851994345935465571685936904269631609022363290752981723568474283569995798431972732781584241896816652077180520629748449600859256941681432588904866164228548315783039193062576691980090683737483840357930791849090109967395392591783004280295943534179216710721011690569711713375232249480777541555816394080647966319662626846195689014575964490063831522120111552373982654923167216702151171501012059540105447688407256362354569827285597124211610146682208361648776918245478614786801175686626998418465488294878100272935236989198081364729524254015133142935534693015687668278270411734758291742512924515910131310041306957086629660240212146375532722649373003398260192593430050431013758278617097642450841801862437456271489994147701942339122625394581069249461596737863795876079526346533729485505354088466517600745618455928713129382786575727516842262369606320559249579791249278556403439368505636512284698022101361739574074344202056104388794266370675837885550533949910103817317066587954565265258404629000754162092349721659981112229511413081762285930736087794486204776543373330102847580757941874621496469359592055654918628399197426894166831915797772487786352537004758589449686626309148888930622489202715474965983051082037061277431760086653551128654271184766491564306180948427918732693401092670675849198790955191529939534504199919257106928647374232892964789882005406384547658494469937340723606810044152140532552168787870030199543966075159746917990839637633591368466283941615647114103580686057815342123388882129563594198719635272022954792214007269168791830943797945244243403849856974133454670335314791727649360903061255917731112832853697598677881222986857252843079460242938466846246863738849921200589017355385783923373253246185607686351853973809019511931724947477750141313655430006618111153149676342795598240297813048468912986160516343719152017269830205829631798861975525967765605878281591075886396699029617060811829831028856567511702348925183570974839016741020162296374443363330593112759332962486022395060974222809763959438924821799134837657216878884290338639376499586449243750377513055725266684459425403451936552098576653361696174179895027326179859910147526984922298190621491129141789167740719951799450441475509898855157608379455128744743977622569730098591713517236801476036308682512240146684587983282796403246714812787709939219501461241295855287664399447827007767959079283856530456412917938489416937980312157329480958298462974695289712490899530512961518429043290420274696039905032261427458411655327297422378080927481866840387857157129057070985627217158131101316087076265730493610644294022987747209233554283364649315214499407623421861899054817853495173289465582523396646822722121150865500027843161650331669621788832130199214383561032189849223222043441156726585823026388151175613075433797360399713452698316589648762403571091158992480536275735278154638684264055114051713703712261929522585088680916705046137166701644993978185233147548706356917589603753245240262711993470050038973004373393589113865234828255739415523423102140749983105909357627382245415375781829312572046603724100833835881893569946954612355421455733244038864883110133118969441579647250622236990910906145986716844628057675794626864338071081265752620549344146980275090465734650248908936268235040913843571457117851839403732207723303426878465598224609099320491570234183797867071340962686173717531261499703852992316823749784928573322241303901557781439527623619133860532648230485126199207834543647168966075137825492704396847418811844844305009906117205796849838444610169947952086912874078868017848508261928718902962086643008083265449814322310474749705085037503077654664704526625623420495303722570567638595539931264210719779705651452099439771012987719355273721096706512057954270778809081527144190980664126349215258940222993021481694637922902906017945353318896454817604808619334112075833397725564004552248402278520907136421243201838182098754101430548712372436745152835915178064823253411276159412472350410962152005293428533823964149924553131540403954724640887082870967215790392630854526573846400461433614223023093513095715505968785617457724010189093433455643558100911404172892717859447078371554803091251794172616207380791033592780980414439498635228335281371195534149078875436457675685671888953345869037695582590357108029682386412036230974361795387067472951830300485010997336772896432049452018118133816668670071727399025730182116261084454428132103765531213089176634943484342633998023750916297585257443778031706826133671107056763163554478672400467901954270529273024798727151315356752395684438629581161331742187779949678878767335966344082266706997493690097451435582977629011855723576215485459095628105111707375093861356532236055037446687044886021735956961488914292425777137607359318153539695399668434045239913554525664227315041702675351415648945020521626090913883955411416217315682688730634121309165327941674832973644451988092931934937447975294334294387443776874134906337189219114164422689574042196144097725696553597746325548949822199385303998872217086964237564124842503307961535098465473356199860416470193872583064920591222254009945777007871677200357442915451176673528520768827334982131317517688654842938640900189786687622853777245818668657129284363597489396860842829126355717713495685104199281696901769095177842862245818324766892741722212119261866180584415424136791389228334983143496222678352740357716592953744735617312579424028318118703309977267682434117046142595130622532915318920993353564182429794707541644313430614877499735816615044036022530978511115270562509990632701994101344701957024201974944095122166108803517288196455408256656851360450964576958484982972710364637796801112723988136004664965395701717241027745584237062534876534961738723755358725018689123108596320061405601486697622220276616492593859640084955696756130824504349767521281510424591090891550106130363528778416175672708735247463325583111029178639408029072558205721269171511850912724404057292024090171654781873465049113243958913859783598130713253306193901765284301660634630373674451372555565806979261335766989956582539878581753679047550236004737904532574088451907242403356750213089201710668326985182646444630363940191898352585546835898257392839773360624217683192638195533573219334740679375704662479090049880084896756534299812659381758105448895175082903893991662522025783963051479470881048964920993598047442997161949799039008341231822222280028659348298263950787774060225499851240576171682293877019984542968500831918064283482882280053036162528010313088302753030961570396365085534881518534971526589681326783048727354366861300618341381656174020660981655960872737352163573937430271571072230860700343472478553804365200981042621984946072261305825724605843554690472224448436325993102173653593171509689094832475079173421887489022881569466721275430472590979887136432824333293601060239925035471110341811892806927888699472269967691327523895775335466981391910543443917283537238499945345238172939994240528795871443700310523489447564864688190321777140462923745717066703411234080178727336302665685875008455134105006401996376578840531858719250732874699750847638770950393626506958241602303991658684010740818910447250213231832236097895369574517927569071998444174623715563943298589789681095349549150721490854609137125703997456486574820684024048717333119071347429579500596897093576169654140347649337282827271028952063055827791774546240477007346171211793317885959157848316976761491862856260980322938406693559500186333307700516065901450904555199801607117824053972839109225103721776992662316458125110719632724762577333198587132073613072533707345277552289802975590485492035083307849251259899128345173037429112152346957597004574661772763691269355444371522115837831683402446620804457594982615031492916477110572366357737959768319638505786717269374332532264130839441741448111332764178568275393967656387853362920935934800177169292949679200390713836593690546972706733060660532724877225150535923123896228659745768556038736317470393269098916367376273088477622694517528375111848562622859297388067801357579084712599872312387068516011829899334886732372437483331638520931224796470468677378945143830365476454306992270654812765636360562639864902505326867398449445419159096019618276857182151716431232258533799638532138140713070114015774640636582219170858620331255144239280572199506251743915849500894928155939939484895057124402991785694798144375524552476206419085608461765694893377410852654959140235226267084392983944988251661096337290015721462400442552774532192555254445459867292655128611493514852395335570619931572989698553138548309926003342522307806809444398259684299062208217613551755605190051920756295685801405194840449156506836288039207727962078548266255592681595192828825862797487583991598774443779479170654556284572075003692251764314125248253633616147165932739488868746311555819628069654062103156990808998469703897942448347297620860545264335049849274788974934053001228144660399910328813575906161329375132219590225246067563619995838208491687854120605192132800353638589666681595040104075764485594369396365515685966547665824498339745913147890004049081717063972883258303347930768426611116925871687713774091311283123392608269852850359866876680449448752438386601028304514644087055967352102846270036561900751537520260905060321333001741358056716448913371770104570391720157191778120487458444340424563327361253352722342521094865431569618773100867424602038624357213777721052249646181284988349978499266861443156162937527768074768462922188034718141833757910834420639883548077123108448700460505239926930282968668514247174863982274870129236488067801597769964854217929449205340972307499849022377524836440642992047231161019708072329333637349099748856148567884766720463460931377943450508842223581639866591325036775097925847696323114780611497329295713769950567743382193105505625757992693183572361669226684324378830664634000610747848060375167346906627009570258024984079144931052133913213434021035598272431064232737507873833982909694491452943836402153914279253537788482635181370865674313908902867091793453268812346305078299795388775350957653259969957618878417052208669726668696542657929675819405268024933928905664139784534074724956570933531168162930869166784048498721480498332835135607806903634027883138903720754538241752819855088853072365706979373005018020218343867276647704504540411497245282581825979385453515503175321994642479274996444630121539571447191717243411946913990118717429814894040631904331550462143548128759736180992544708919024949573795281176852017513497040507499483400534891554855105461816501093096076526710488755105000027287540863723641937400430935264691891180907715656332676972133116461511660336430218044148771363018400992953576417680885581330907365278552291810605599957476560508371368315412949299153257653406460663825480649580356396975756942330665822175840115388819246467046114870170798627458403346681742360039783344800793682051935134029949243812739698119461029138973155226283298950121460876266097684727344769972214675334310898533454658133526285480346967741773624172104071999104494082871650488244796979077948754961182124915521405459305924541925713270901988582420677504702872377219035676639045926226697570677978625936582155081368239635746703750343259586202025193670357400256338315506278691305092544367140756576532092026311162587166782586066329596561435579645061873397982414937764071920756130401091561270601769786889706590940845539305594855453642649452826498610935399825216095100701703289954721939202567646875634416501198705383844843991382944962331144976197699879195950685891336472477025808148147349279002153597783800592589460505652913750657359055663999915813135201275632617872451698496008898130805169785884729524310321607957664440741245651912692865236945829811165367438614896078326600212089642172709497692276044758319540605263446002819728607771749819703357397561679210677377593971213696410989677619449349393419828852474215934709760796169951775913374229782391603474294877117190010895054247189819005555083566671904243391082626721024498829443040039291983499921702847666354716882872377199981589022072054691195566923920489623002106340517416548088064852554253294970226694885670958391336238881060303368653251632316314001378527335947920696171529749472930682785639095231810257760479394343365676602931292645151846496397387308247125257545877771569393316346588586915394693880289001046770033878818268925077851146598212133364650715196643489149770683150626340016820457518724936596774388378059469514910279437453381996943972131386205173060123329786274254764273389806314093636008865353787927793838922018127037227783060495159173768858188377197919770062501594677705130658193465993543676393537593991760304528243838539264213754766214376463383491067263141125277243337715395352128619624256741515199800842291138406174211906772690889346157788356396197777135488784246012558022456575547464420448524884240486718273101553587539887987836717299787284188291587425731557288212822085062764443818485389480685810118107275483799143614981185108172796357840363750780227974505363327885215975059587989594148728045062714922464475144068021997918621464596300529918526456023793558425702778585204118850419024501901339210541906599339164169009201136737328748778858268285422320584807869901613038465674262160279348779195726428329817556132339569880974101219802130013264906234706058397029898507053938833023547961866716585023158911073065968831986248048393638636446362991920467009743518658255907680786749965577513157135469143753690800513331721979445471803284620870405895810245512475959153699453789203069366152103697033024787486835377589806863295088077427910851695977678958333002698121829272082716566396785006554809236931946710565292877839806315431706089630796417534529253670720618556720083429008260708701850189146282976477913098156010712766506605334576078940759728239915200053292762969747860015593599733791366058117794590544481702051230722467889445331753991378892073085501592649748927653662282291349091177330466964483088302676332952844664941717778007836423496414462141100262872259902257111081631563884706065938099590593385851823710826599257598835458202588648431705741431052308939562209627361452484635645768710476258780782563053472957453947938577847673668742602857405619416656637198036587240688454721561293786521385863873000550429535742042605579210612969400863267661837331505198196408166653091167135931808192746637060744668386429722686523490384352392268550405396980178004210853980435210253000907724373135063151641684969751984090569063161334606100346120418120771236041072691815351058558385978240835331490958298870977814941386003827207591724168274550964646028066431806787620823699454569451833108436915541155036374910313728529606156277425597730143646729275177763933068494432155594787225439147725385119272492108205507497524196553422859211867098828932013154624921798522640094569619361742357779247153848870786796213794437096337087577060244469077411658150677854690137071552864732976155295782362738183853101901869761652017574351890371292850409207432057912259804176968406292881354870058371147981416097059792781804436395263153763400410030939646094203314394427566910509756338221887884409715619504732554427653026471731423220617565535770945445083439859738318130207438312004024337790286633252187380421300692876177653045360171338623145748532155702975587280603890762443128504697322932196729180427877948862397706413198686289972951672017999084309258014305479505268178607638122199618971780869801853900957853970985512222518756257749323832784589293446860385612801584730882942861855043860057967595321290721372159070095791694265918727603597614616948267755134970792871046541784120211226188756774322765965320510186912525695577335775569831800907715572659489693256200019772598341772213832802427740976400235917952487195841147859468590368032712801293900668186412176242135488384817619137179749186490712614623411001119245538030958290139119971833638664509708416555496558379297504364095307766797481467477732920789865544403445877512626539311016882954977840956268951087829124854043147923837356347628156674851990130816832340203748959970942829343587404401631512913089137778142618005612349823904877354241825109840990651673303345172446679858121253500351713686740226750320870970956555164870055271185046886574380317336269736742725562349669162102037441021984710033070367475616079879962872545944418965646734383175970979697529161836803978821345114661224716833754260034537400360997389157672561746695089921706614509454716079664527848170918710726001202242742911394210250865745988126356624606016117559777192753981556179599814472822369577044308961116614756097347386001935941968271487640003715060966845244508665244699939105679292140867956132667329848029967755813618975641298989262839303337209662969743685166398387530974165583934421353843710658484640232282839101033869245267723281845207467878367257189286515818687885105452949492125099646869832184354183812677847877721479873022297988019456618968967276389511798935787254641448780184469926259466647608832260968398611290254887176509385048060895368600701176836482957176730542914622201236724382920281456392309218364050995399890383642397818013106242317339731551821201925275944365197375727319798479201691037177390985893523088834547456823161815450289915145854236524637247658154981774952674521376909133281486811446948274544562624083024487686432940669287113448011170175230907633209159549346022794484854099301554622070985513071678384265946180722783845002677538100288345586428798681701478483090923021256219377853286046596414621660096087147162005935164574064728215261521342079132654826583784608513014617500208873999836679621963913776974075001371137791970958033895520708383798230171658079463013445830465006460001404733808917127095187520048163797246702247356192026275042509413114878961554087355345636515681234065435609928422936365696140438351680845837042074858667386485594014268981197322777195894691959319824829557849794180176762686609214955171859075889417740414152088556286438925165591344388346244805408171471634298172726859998345750393420586221616378944131195542242185826034010767980951637243016746818859182529572404327645814066267354581256382997936941055760971961107714579037200119522878100967200674135330750765991351357624497603331138655511208329232762623897132750752002351364366206858107262243845676104162063527739526241903846452274112779955054679573511415276504115241143151607437511500578780767934206586704218012511301512790851386664538196413274069646154904996799629897438956194237699780642980941702028520246243812018211593928417505455059607362434528779583959021948926293283430524921488532839556552387394730612017544004568734001939283287709756202329681004210412578479385340597360622220149147899503235564126894531799008214071405341121833729464110801662804903101589806434062797015618038997295509736450496677627379646729967775368201851351476150750486096504671715361306966460130883611931316281871901801126238510858501887835371457408760446228250870102282412475850090884677211728438656662931929378688733317136105976211211514072740737290735592638910018048842063199723588424091216894506607516971396405994147673507235866268176802384601591751063870226007338940696430417681733539708641086664788377952984809884457304562612529584437925183882691032226419841009219923814853486714234509543730396381606308635964399352453003343127502606176021839488634458663246976585285071197217834416819181986530532977220081834139699686223737654639796257694904791652004127516233642257220874781957086196226475371106311882935752890786782106205222062118247955409483854151398901320954552203860041182524168144529317391123707899695055140735368892620943922274206032466042707125323783021138725894576772410749256347727210178902761614820744372375823615691629111604247045512344271702918615454074839579915145094835415675539761818181971137576635165589133320699239649437842083521352104419955001471351394328037966531361035056089815925466470327043102634553059782127493145180310028383950525450476531110172851173807640632394528647160331121927122445067562042359237736940119574805773215318825871235038116623093878684701749996323827358741241820234971251797936648306967741985671041376696667027084594198417136369924940795328417179753968552578416100416704114622126710085712797634823047162895944361062246045819942231787000248947280124474151715974549432218696516949652159831271476625704561180869998833761559247526993200364246757520494405245355053279043329674058393565179487043794928916111852255408015605187713464515539162540668911155483763140259790709605539023727611236377796438276861852782941748487498503077118723919711620865024660016812758179015067683356245044182410794084616920860812894904933219230518064078853975743616164389092622515138248999027683716392772119114997639371722506611950100924971953724117575456785906807683358931872943124480790847175797547860707728121827879400060204474421146202799459728997519434341046292748902707734279266125275379747910977806511485865983366903966526321317599959701732598300451243947271214861282863195240111619032686160098143690840095990080389127129503675382716924933335883746833691650539365727954494477685118332045114581486462722206492941745325225980698255049471935776243916732949176755618409648538933317323697875381513985719571704139651859943245446762832795056607279469831131687192906220182271665292835398688807660271822404574871077569610275330563930110046346209995534362001412041139249272477461679071632622538315854521519649102069391715382942968456379207667144503925420100383197074015250765242033323106443038763689756818706078986249638949082402644778839704717732951118667446393948338127905406138732028847607322150080811053715593904457004795418695269800566587647477937677734467731975718219988266886188508264537026906339153071151327092778362630363143054197785788226614039788052330807145439170661281914302384425442415620355564798355654852028877010220151553531230966466436259997030768448210293604782290564755004233629454504202740068443347040725541961609149086368229142400293057836157549669364155089290993332502319775537854004059787709196557029886614806934540493750056628070257193148997818561658148990562330297796827282740326216564601574125712798268132156841299290042836227332866748376384477580571887451076640932902330594417043350846588336447566587966237527079346416453612542622284539287012897430913008679816246254098801019918873663868651706707498904947004620897591619691217075522063977887911409093791891346741975203554541000076697667409443043409157203249559732858103733650442213364618426287078738391554463294145748500936752498686710611181157443621604813529202514367837799053485584668143938844089218703528105003522541474934338102974605510185711554132207603697744957280504072754483761311946816235011216188396415221328962053848633404093873611710660466675567508818687324445315829837262149878155648001079500870556390085768282002699355998593728039931356911952910893690463055328980296838971641880414733478322689522269019617223641903114556955263159222002148623634213590731223863128418158301419491426387678008715071518450403978520527326474423944894727027536069088991523415518432583967823152324159828571339875713924272997414920090631095301211907760195764566326896128814818920260450979140377491854661116310965029312306795698577913326706276149471784970250542867495507942786053466268559621805045076691320292319942126235081301643909866868861853037407205096938768181453117057950243450830838251137483921850411559184292346866057766364713733254768801095920924378593434662123752182559172241779812587215199297086697549164475243724170606845809667289228475734867173130217845212370187302789034803266443192892195468591406582124626244602119717999868516770909200817856116275162881973808495746402744096564512884847928170993145445678523337424959515604194587146781234155365726602022238907726955418184288342133159270331946238020777149419794421126897099152423603953144989267880205050798503467735727024130452600896209559958071662397253996610192670002373114597268752417127355416213013674521258040378094584912827529436659401655332145209054213283830564552625036477171150201977834280593550693299906664760287192793811154146541981733091154375844888214854467336350192695236868194803148146833653830882122965484761552296274105418806259774514980983208422021322892644003762229636863316567936738811472238064120978729124568324649413005413048400308485479545797363336830694275360962931695943952236040835774339378255796884080998330711744069223640219671777499252406478465454095097340890403834132288519800631877001710800190312020926606421810128369863284282155871909125029722742223596266552737865577948349279915320112899311034842999316841155296740489246944616671052676674671540364169909927158588443440192610404715423606884478633020835155298780564295198395788927342703489420461326612924190602303510225778273496075822829389191404401686798878119140287763815503113086205290232656406978551990158747387901648355940931959863808305128782035765542836111605896761811834703869972748095341537872238328333546014499821151444554524522668879246517563668178540170555813526327092402412956814620505603830842345007443644846592668391400100634107297093604260782075353068661397337481723090038459017698385566270212569892300433853293944368265981434763940965858406148626961184141883593908539940230321809849871164006633805582823102532620712799627677496024917046028645777231675468909137062323044228424768510532785982802739323167997854903971437789303832454131511893269477492549757493554267946202605976298450845793985774946028113534651998982754636979459482841433120932525356727662341834315669988378754762562679989433209626180359010285354079352675671134101996610308427434561920456279731695336720727679781011404664839751682585969464901290634800487958617717156633350116730240803123434975902217921098549105807912958331247997621595250421485981036904046577772657736643444218773236398399128121960089839297147813605042661585908960295405787468221227185407396123997270210931920687034594486645976640152404264811073932344417435879361461214450929609855756789757383233121378873695742641558862156893524045010924996649600845818360102483449850763207318075686372338392953658381468879166710663428307685590892195489283658325967178320870873601391834671147364362520927995916521342837071467300443090898065497716932928233303595089408212467194815894577164335195080138581331054288725451663979063928901614659200394126230641628956813956880190747420621494917245633926883074534195558908524807081769086829538483063225281221210655281584019599578485137677144040380117497525011532929348728206566021058634389007622911878803901095686402383998842942895276686087940893321808515426794004013010857249991039894520250926729941416218509456710092842356514301519581381302834848609847950484473730548781098478332743441804006119166030245329113714383043842985080198877959304411410832666006037136498387238280919903459617244220244660597717099679548621241769159880401786201170837885154044942997719085849267991803912147149125113267196306182682727196402545125415144603203133518460621845648028443338290419304843208452880591186098131387866509686496240180082866512424552744800828316914546226099547498595107020895205687743571132930726889525884986966579711819664169642169847442902567581655498959188345021892455998637106985052402170522250188608117730505762745767166043441619983224772002646127390189325559908375777726030683541558038083175819055715415125497670774709914807679642909435947034433267918519189010114116473760443262808552089696250301708151291743973384505560939261842441812743526852237186043201384872699557622117803851822105209475091889501052317232398341579806864995515846936607834116974225790962491009685707415105431434039933264019744266246787753552521102148724357005064104962608709849865721165272634291476574550995424988172315866942346949687572814181046267245708169271124951859976052269115312652726194233834260357719270452560998857218028303598478479405944409342306732185509972099373731952712469068018806442613319607479439753117927681090492974193900331820044720686216645750411747790760122346276422980338966753352879101623227712848313235020281275303190999330116067855694374929212818933352784341303309803581902590537159066643111078192060609784535826075300328853599247411735706531540137426432687845874220276531347296938645978065804239480186403921648362520986794566976501965036742105050936629488367502650064775559532143286357263141353973694712474691762673635563441165079654267296146000139724244538010056042059584961779065020061791412583723086281089273748941081730709718730097466036952748901626527741104859988684408218191079559292655061699372593289074268148259897936746994490914370740872507378214351617410223293420579223285339077428378161104243093387781280287939558456585409802024957075505313788118755442127168860850875585846926748996466022250113743540185141310045933921106848870464356622271129440104930361606785142532729221123814605461725581020500948222545129789280761421681575396993050301354454696920613603327973726081953743590805758955069321389200259079567815036831444239975517911523020357008714550662070618107108280024376276074996908991988493979122979988883861806918973013027379479637929578702751737884310982190186963868293313095668005024822262602925072804945294210282939102917684893070921227441821089133361472464342489169130411058996816837820268102518054080583593499371806617774947180565046131218510598761690109738902637489884829797857966171984325939213034141958546049024132341784511667872689158575197467256187371021597222149062608731565156527129303859714762714096050759498039180156857704250984634024815101123691322028721794398031395551577516397528561036734968543220851158246882459854548026297677710582718593097057318907370226733308510407733001406925473453339151075408569588643540829835003908980297552550276892978502672785202497687593269008108640925912896404438645813235925394239001302646433236942024226809887151753185986959552962407667903422536691800753923807846374552294988893472438405704113259287999496969568945293750419383179976815768864584731797014797755256124511107708741960873843572015381686824534788129325963094174207910533902312991089842564371600459045491596288636174772015233831243375865086860380999880230165326731654375754063140241707222512698244546633102610567924847216073132832112672665231287328684742507458544398953430450169340782722177987237048336180643814356856497773703324624019932433721200062794193312831825891112240856033952187080469768068957654184116236979155222236624342602702641625402680708729680188674166929901502525379363069808915992499964485809075377922331864140185312832150761390981623300828158523291035800747770417204986126949587277624248859074636252852850206629719710084131102141530557915907230543136127609324678704793933233379179250014242252873289708014701910997894559030162703624195368032109547215298410984210314799338969560271432150181306150072271943600252753874987156035179433500055740336594011168665223938403304566032569783483166421764551511849434263263242589448291293583585455534163242322963474219639857407729189556864409671784123450670195637592193579113421708942453974728301819895128792338537178654608596805787074699177199289927898510425994456237761852726161549878834719870646454418058663974403732641801593698999054565020519191036544789389727836550287673488028058307521668746901099761958043658794760476331427992483019736054016363603606443042488070391084661559260143019435792288436888323460308345053069412787989255023425814573290494828544591420688248008487981751345508713407347123979337056850655035584985777318390090895096278497740299109008641785908539324957315906644032119670665394522932759093183816179013297784292025880882111967811323467193242444277324178614763387362675285584476029199295809707690370063751220098740044007727659578908858286568030184768249014310874202946916631444869228122017551440872873613515560590540252948162181230460785249913224966507348384231110673175529361078829913222521229247160624177704526305331285102541041630501120051617368229402713665056003467866881360883134493826175213031771719292511026965112574036941693171203039926542375583115129042400042625199252802677423165062482924180097355658716875781799833183844369735285642450332235386938583585505240139409944270292987725308776937520940791026705453840385749891145085254339675502011804226550055548704621011927313279868272359772892267517592258704311437935629606790052022278945925172381002681831857935763161449847240706361322271785512161934696283863519543079013709344267599699637260798129915281789087285461674467097712568845289563525329345471220179709624828349529618523452788883906808781603083064712689207810652107470280425535859245108746441581749637933773242497811539574488007605604185081111224081077553151510053420541603891611660513334802153621293811849603813716387372747498958220599720767059178035803008607646348653074888086206180783606208605126411026235636982012607144438694901842301378998553318547368542242862448795045114295814661298629358232229943566703040039162093613838492128693241668741817958529954341453879413611672832892302527679157164927074273888177839039156045721103855142801554940417558678917075875695248620936255786649316886206675731633253857151913438070159369365434201966122743488698286583579313065536881046385706791234239030008909375844095658254112556596432566706008173082433175423257120102767817763636772626471389213396702217953041935361346699725816881211067258754510122648997234109669661300128148014009104883674881656001320251416189742191660775644138160810494557373366417468335347229895232477094502195390739040105113544995549104398026304968754997915199909350073709486584601511780348280015347832032539869853910656541256816683493627358915145249479514448783623954895204685675893686430694813085152148180108515830999779354160081090436172148465037867037815333366005627055509243959401731351679270894020293422888645366925961132357323303795168482780242788833329628282558860539122372311494208160888095131695809860704459743340735743356720521526461980537275449508445362680208448953521169597250297850324675670250162233110649920418635208450591301787014531060299542249313244410862562389480786893823196283045544807152594590185428138968744492856509423733012222947730293672291623338129002057130770477512546489875086428613551586405661899507059114716170433913654777112782281632368599281100944559667596216655019439634558364816533655144050636722841674801740877891739022683940621833633938256600503109278556314905288854583496745990474809218245269959870610875293006379443546543481656565859590249253152172300502217681417927328688550741774886800910779619981140719846318114582460408417877700838713045471122685283932725756112948475163529174370737565687017945488036413726571976167450346400670415203285454195930936506141359943561485908926884032877465590230755887570767861411641372504403483769423838221783019372272520157605711602517845970057978906179117321724901580624854359583701292828637985733530383933480441596411194672541110540239522277391913191973485086002938014149914690738887026424324125669372107895305977535583391302638055600768278275597933169246774905750840891435709149587564975398023709279155496934676928326801657490507937517855596964217458319058832133843806836401007096734029981079084466191913653999910998455680581613558098930527600755603624763631163150304501648035588353787136072095844299742893164848250823189433846194420896105919747888259686787151051774956302040637465292947637256333672267737014072924296465915016432444153067184896930058094715825475684092808737553175292957489225553354126233732125901508744399325026695518141234956639074876743687181747139167351827883794415953059231382783191488126207221527856612602804867123059640123432806523640212390934171062177527056459858578611194760293754072956804849500972307079195037675673729509807001419462677197717837443238403350078957862782368712432945142682177965642727552417635673588244387408444247250433742150353621210320704391888339807936532062008906350763499288635403348018127205367330671642328809810271541545475322524990380161635105640503130199373363669339124002816272856245794159230255382473573585833046861071872826280161196110305213058197560516397218856356844770605576306581076279700912025636500526473285475926825757553895210093420865553113225428615261369344044198009170932246629069148650426142076813501528090454469933785010263520229574439408188132618197348133601367510616275130359678254913462676561496394565399459702241188200523182702061979624102259896516553092866567292003027705352952479648719365152593862004638748046687419732902166579311504074914298083766752224064159019405098304675924424673298383057991688022521098169086128552533906629292930517848874146820132107000630628233436179436060323303159863057654828581665155912181136999732795671442696188357587543923829178143817575913135958812160868968253089260267212192250753058447725051170403747485784926350704669572688198418407324917156114779113782808297737394085164741033677230196979955154043879445249236017001929409873229603510464164939760160362555821058955742657791810183723996682404443924513738334301330292793157878973914342752301803057924660123963108145689477848591327915955607395158679586366345826215806877510331095674963195211513775237487272844264843622082914781728346860924939661782715986647529386559708219770467269770182684646279587067187037365263942283294011366953197004854925604389684253130597118447985538022886788213695234224845881087894690372141476792913033638912425048998882710740322543509950448514991871520534878299676657664562270660051921950296166584463283151176641024696772506353926747983492385347771010421792353823953601550534928653000774186312477848571277687459731607252367290866997766693634496042607735047519426105237403864939755714786656608117476684566523308441695884756290177884019507050476242035483529478879341994182339448622504003812030804256626497919007452556523040051184441168779063393361116850675250027467693946648762717452076977539240161346801232621459611401146958654050383736477668022805731620909250389346289189431615330954043262315598533996377303814350648638770520594843551316618236739624752945911199243492756934178982155303045884363933735366217758732371470612816155358043643970390576180341195796406216901999170564420341169971891552973866711584163588867438840426929041573903989011516937974776150256687144784821347818859642133648258831281694698277472730531515127089979872031131832126124660059113336476419601986525542710733222283121911667472543916336623672660839854621839137089654758491509775076452508659189285052042379585580820769415533908492296996596190483154645353081994843478787089668653502478613210868970474760744900065578354891023471380829089036438811840872598259016472870970784087424066436455353174456694117137005351216617378994537531678272202180282967167115697692128280345448735782288779031774571580997765370618808966100677242475027333611866678592621284364227034250294091923347399172108212839099563293221394943296160298882696583394373932027520773638509900200596787655848366206880238163981898748050385043787315770884904634171454249921114629295572608024391018848353772437744468847965505818075943628091684944760125514047257732199022076399175875981754350383140372196520126573019474936065293508570551531010987875405595238276612246113632669541725558316145952222136924899967293755587787032854309804897861527437471123158351874344909277632344827738712338568951746400519807014339242815503328197120332380453206162025760177457717839706610931711774372748507336896521213232184295550442174646200730904161816026296306846180093334958881948901299777519792901139253117794350728924417968533465285323752243944927495281055898556670262356590490386594918825645542117852310142860040151895164704005684023755057695331645019108575787849279442309012621501686618718112445289285503102163977402986480900367709581533827705314168867608827388815634150222998443715000874166308288463582648518164134191028703795407954106151023447138018623557443585453321352815102386594752930432160261163112515387201491419732814924278780525242803372131680983954469680695107108984266484120495923463056506269835088301078306339918895516637764799008958061904120084417884520249514707673424683754312368174600374054009177126326556504431200445876421792480763583526083431464290761444168390238242321151086253926230631773924353629960246706534901851139953693156511188108509763810941946353974884349463745909035904441192150037004982264582383471384190700103543844793459687040501385878870554809095531376838003959661012934353862074813854237966320883414940218796878883612591016456540671466722473829017360194705736626020751993241554571857737369372348312644894925576794116846653296114063353294350751172015381402958143958580352037947017616453337645334133304250213435340094592380067894537348668407056015969934600327342854682098752434718039363427174973542344741716941271098436075639200678481493485356942754272991571589911797808338107981527471986423910783594809221807223470006090783710861054079348247762656350397898413554359890366834259218196901697931689935064062516867557203107122454466232349732947443204060383013633845228437860413223211579168412960332334288808416023217201181139572373452926742575254419623818131341614161198179357742377197658442546087733943437900027187293040193677678210633581626544001335196667073663651731328861841683686139484590813929920216126168857233378746729744191011438563447259819852665189521296579203320096524476609205472437279704975843453390887223154900545704519225577257451255773204931944436664865112095675428327421188975438409426561166770494898837722030238883148372102590767305023201425110669380466793583123110252064904660551968138001486194703257602208105914582680616490736262049126641900440488977707079364732661566837881064650796005394465902110366314822301561774553369267733819581147223033470162654608094556133420008154432998595992518855957788875808101846361640079731830513642913851217837674609801027668398653409144956927438806212284834634861719267637818305076400455761962443939754821985369493192651169846343250416808362318227005998770133711095649510692026916037762225788378657021175751471068358808066542178221914896871286975233490130489423757048017713489357196430465117220845817446805569192871662943874985866253607631931983858656769260845737823193724544664285720888009222903266090686243692728423706724624516808688980168993283570176137586063733795968676805177550221200855499892236904473235860032574787690859222503428236152378134629522092820905627296750519015269617529731583151573451106289322182859763442027471256950231837065566948506142186419452433304888953840663220570784789290014068109413587313315390126733954020541590110834614183495126431271246687576488403641427644717046636833915630294073375785777630462837040044636390392788767661602402984777853560136967964667019181659243187465702473160942525814475002565885439872194931534097927698216957799563805453023396963586143589845042758200650858090613032875096505586869003396100633286994209065101143918616562177727076863081272509936762750699587316411682865683175778232351191881246285661264538295167253596420619091673564122462425301092384952026142725362435157025149529142420362429671004448795884616161132269246733809026521933164077549834147493966706544587004996343331441555827447724689501545643328237588679032031636875174365628547079848779840517787698708895779600870763230905569456513846629089927727569867647287411644507633751648325736822275256270397971280358707409667723864130090898986386402773534802921388580476131203916440043733772593962071767032297678450523776675199878471778265897852166340110751025079241416270719762045788223686742731910124512136080344245410482694162131489210280180478011328694287837866884472126490014494428854818988490320691250825331481419522259040130715938102998817114442068363510018974874137436046846942784367077411518204456879009527611383849676912114856953566089683737959912590655186778793479030574934201134325712381450023181461028441288041653635644261217030212472417138532939994256222911217721126704920679196665300353198257613555842034433149359100143571535207376713699574086956721802943019461896019206629673455847203993021450515377323256056503669093112087382844153727872426821346612890004335611887711125898730747010062605016811537271535280600117085986536205593712648751274027037302698887710862708447714622047140032429394235935097078182819806568600839438213033179334829521144080542494938302661824860575806420802762713383892272381730110064666287228955371845449081315886367707258312826949278662331278581692493557862564992394324922167031921717520237802915915405496412951490557955634528076753331942497183884331792677334715380902431251908615505338220257047159927891898317822140628537569246501259258734754438797055069888721491117710659653101666499939168695793732946076278514123199968669749994791105262074198106104988633698009382780449387482080829822240505317123499441287921116321371156129820237190676964786967177090611341513806472748194923693811337350869536369196036595037330867712367928960833091078409025238693867538668669246301451274327206421014345698833884774911867724306173997331068985078812736655177346021471762471390656047661509503185442587687252171233624032869277509024755658662510352330364734316482563002324028906916534849425881594566591271761346094125789661578602057555964431884305345581849634913640552093248980824874169587949721502588249743991551089012256461034950646691947941680157295488439806171392867154744734306846578788424751412242445754373364203370874077316168629559421740695081510430943871468583869636229130830643690533026489569502865822146925002197181054300930556259953219715020844174886192368174648516593921802104351740162243326306138174121794802055118698336727406321425826925158454218956143587200903054490337147737694256086873968771314751633820208136342597748443378810004297253350703175860053328520154184355735871225497662330740861710742605661769020970354067667834872835165608931773493311311162141029185441812570233200500065391161595102424497707831868039671534591127229526594262855801769377634698376496005429706512288547731017820320717233388277145632461893905973366481221425674711223975114104698338658747943010306711684384550538271153512101298424055798402855926843123110079274869868155000257940685546074868151073892736395452216602146411500363157188328674258661411364776150548369619446713681651138331789314047872998794510074720725036842236405337668463042885974288025671693406350803872956288880584708289337581454145674754064215345780046469236827194651007985544512731848252997954035533813604138352016281256227159502948366437880998198577645576545370126670587701184934678226049102846115762957496002259543632965287134426126402488981124436220349933964008978728140876243209156258850481573222691192529598853327086942871595593180530043070182939480533773774670261597423565624551732558592137669099719752281885098203771698420092206436317282820814719571697147578327384793419539310730528616732199754930707514956095487168967515447886131448312322415098020589076503234564546992964218219512555078573685103383572359872207836252601447739428466996359240900590797567987219756652107981560126215355830592008847893427534428221891761208320803037121112978910442587524017421561231351906977692709298221315826827718208183937880917987194930869648682931838343905156577619448402442513153646181811258107632325057078854307161846724178883246593084018527343015909320513137798400971415404780478637560809258545999154618190586903789765637595911331208400488768759391570850741004520757681519473092926087862016100604758152969406402983210607373836638950425949068586722491074696881825731654401012373914176273245562481899930306558638910251330777109267803165857032054623476055374352822416838966809656127392708808968736677608921141297996175355617770071582071187703473672613848048087225178918587793672842505508342536409840096769641398327103371780641471406585681762259414574223003861276402726380280741228395854110777231952784598200755338153592930426053153237997972896019438058466180469439695094522176951494605875654841630086140274258281295107353246911225388498504860828721493701476126008903530156593016427596833254088284458053201224844922298500175952120628208433427032844303964964712308571613125212461453877165682813886832592351793743629500496072153725912497429734321566612330957213422951492108391321967094623571787660580184152782869819961507087312171724716206419064984562968190318175158560841516782680467201080928999873094934522487450883581954814758607484811585029103279556714219858405794623794032143641317121851270511704294591258680484095323471347798824269730987064971805351368478518769284831666054659108513687160676977220597252141357099149523375214742132668328723772352285444792121745778296824205098559442943661638058721239990719723227897254898870065033955058445669696402429376203775538212083645756294119110232194488533885152348610374049053527906613380413964516456003096661747396924974245441914006238320750049708230732525851440873667028902573808288158025229002471620857862561311067239224285379492572118681212734424479748381907885697912108355607466012544641906079616780758899424052104633985358151855329376789743412035027363785764488394615625245129559436365413080554902693678670602677342376973309978795814395170463823518709595485392183392916363772611994125496605254507236736254408345705313913153654262021072994877896134362657370058211935545781225687778916588126750811591780503884360353801663612579092899424403789085142036657669431539193380423479665136662766090334544144581266258744515402015283939152069341715343439516087624170092035927311313289714090185044756931259953991122181796698733415705139340136500740824398585509848597614666092237201451977435540542718152532448789980421771243588442450278864626134098230191277219812925000080167645168349626683586141917194827733912142846881247113068901367347599341784180158640486219905246484270915714994210295643293804733646721883771193433954652422603155182707924383953992897696553434291852975072719126072325293343851589634130849279272564733882129545150501114519694670088104277868274798575949123267961627185682829548908552509521535162689865815420435056601753234669984575141801336398511211627487255639439318363863078740252435074668993071156874379020289676723714341774241952648075016563620794643146169685571702217549422261325323675170894208939531998979481692832974865210746097010299090122167791495891002497942420332848606536328647184852288810653802577990400315384621517590619015716192327522250758127999719597898309889914629749482473697744739137551901873066383440038106586089288771031310519107976819207272465864742535656225004602849766519488954186574410152757875941029569679004876921904961025586684169663628060473219392950666660859983385658416379352868294056373377523040928071371554237598494088427566163268163090881976963728900843629084486857993253072181388358297810741789468886547075178079381724585713704253738996882911887528042348912612009117857766119805641052019743349409600930008620497669998196870630359656050134879302210056134789807730487861291327781402260289163272262619123832818709332334150489545408557707180968544372915865501185797862050163999182680190282803046364058731550607771370615125477140493570726780473934003818197666263409002913333609767757576375536918395017191091611576077117311729587994241325585534588731429850201757778989166654363606585542754507101201575517680613636733438647900292832964254693832036320622196303408227811939530461956649693486904758050623866817016781301165206587109796703914449492969668741556750871598188166801646507406274320346343382328041002275478721232650201219597376520854093723611582049349671970858355819087976006338104141187046117098657837593875964159936458357411175467854712858160553793975553793464391255125226347510504124676158214711706441609154247517379399596859528598508429599511574343400447450389303669263001641287779840931554354595978308950236344448687763785058904423608345054053407508744417298919313718819469032096401017867783178601836259829642084044611040503856379075979502828043251009528444678687714001785153982451239141244277014173274424114429690410391846962663558953143753850212222544643704817905611912332910724631354192319462152981578399590098885535338635758623058437623164729740373136047719188784485943423908622345158800485358706104681521326925110803741816404259015749260024008271796304623490624006612109052124607601929187170352547645033689703540868163016945211369262736804803633815559787080410028252979804187396278044571799945657575384923445351625072809056431787753879920091614589606316180604769724493973193792120171890065751379107095042338201310807542292671536677534285417618499942781556594491702096189392563604474477867591056738457592724572570245413471175288058458325819342273768889084082580196780382723424048158723089779791803403230155247673377521367847915166202898899782281129223164273216911291169226661925660298389989657241753969161987997774611685995725856230751580622276115392872443287334330733088412868836743342790381885084459060028209676514235792891964612127228186503610739196321096956764589707320889293334088243175813713320884390862055696982199341705218274427487244131224742308486703215179484624280585430673179907649947774450112079354037651000069041466313636822122693987457036318248281814728396656770598721884958926696237838261878440774560873307165972484883738440940521567577215954537898778728082596688100233640801288291113903419975356025948108097243972982328444311470831286203027651186137509371225583385969294689429340752862960996091094503516422588422221211512390369493682408966288780275265362424373403625303541460383148299339905140288234383214320707823317656048003739103996163814406189688167142399474262913593931661522035184313029648785641889584870071519439728854253424826143281878218187910248665055133061638460101601497224804502956929359762910888824049254618155502494900385950517720034191768918921063495966850300046491092316638500436179304922767304017873294691093957016315529509960999169300782547422339259617182877012299441673762779479378623756551788248727338309512166983566795318891887977938169999744263526513848409651901882915079456798619207056859139626668393568362186064002090368276488963361566326162301571197548836961810444861471076667715450045172752629833510706761481046641198875942539351088929125103125622824453689338058389703324471982832460441194608506689848858174872612820545962149086308020919191730580043173364023853850890230877974165742825071657526256644225482358198304036952513000430595450601590910410999669525696367561280701223403514108896250873155783717747997553068826560739448221486767994606615093493369123260113955368647149154444147821733149564546920255913559228445679970875365473385404097724938229507777608107246072187397061770659776204593034477030047438957818254560862445462252730754095916754071126514795929257277545611546746655230411307110499405489789297044108570965882710156831822252346035796902139092357514110201704053153533394331223023095167837354464671631160563563953233290560150742264441906626905054107513196435065292615152109249877769778031789301280379998028056205895863744427239446515573960964375941822078164266464788226076293428151938139051290342022324955535998925682818712890945505869124265469790271354581830131550199275420944109519715807572793621654618676676124315039566779483044576012456259280202456644020686812142652961567922929335831361372645707702844829046587594263516525803991783614377294474176082219431609471389401941668391773118417851536673849009413384226549222486774559038872518475402965173058542241548614350102531043198263939719991399433108384605917182685217183563918542076358215600316669750782687054441863657816744833924678444188763405533624059096365420208218414334126201401486305258698778158886198477863601109387486212255662309400134934309848786380063160528674684040768400293793279848094270612738558017523856826548849124864973377742737244318290739341341676771318206057456974834063667907185985117540725144906486847836732007049972987249138748587790459997133564885334599127907623318636620701799158320226665852765502559563391552329500584318963859053924323415604378133079482128355827099993172442366976586375918368692677762114370167659118405486401135761316872982426925988802816365304410160934907508265525882780947863321106501718010401873734156485808148804716348172867782851746967317296621318035096963123770260597650132060112102992160333973080604251756681257060156046109225906150814754954038555423400595557745681128597347369422156889514693298358067076613405756566880809622873295909489144144022960324719010785521287745632810123020153685367252019651663536138104383965693107698542617234401963604201274219996105947875803316973032281374171384645275699818861733179000435187392512900796411828586652046263938805742008603742365499253840776312858257595826575174977318016816018897039562178069244501552463724913761862370229037165440964563118963136242364301663024788033301471328576363928273293099817927022296722735962242046856743870149286637280048866094146993079711359065817821888776626877041129309398228437238364967885308534110921704551898118256593673293658174957477475230643169238399163780082997703872616558721111913249235554480499695215993617900935925564921330251179570930581291313608605112554088165280890721940593247747048831429773428095434948721390981703452164190877859897343195095027990492273812968609358766057764708877747697170971784239588492740952119312432098685854190110225503908414743065133519026222472660431218131896127600345087728698877855098209833454770427945181078043092864685242993490239274434164401636250916098015207378545443526806440499789715775183035924393887592496765938684297352804491974889791643335569212174463200007911594063825653064489344806202514418751040056278452241002764049283838188797429532707244053201197267351483297654986276088915125084525857573716601357882716743753727486552701701155999602383197450510160506561499996597884759660137026968093818540660532738436404638259444273912017386897484403795326036086895700507945434780046150500296677380786394559238240829750833349252292837925692067164712038378289022749668058016698632075472646363056024028524004281235437540695922789572128828490210955077181323883299208026037494695622901210633157586495418488605461980313748918285933688839702471116221081663736227715294379151662138194074862402119194667566730154902948256352537883531651618716745097792693974865996722535462564548184943796454801973896993738356926943622513291093436903127419973259753888650833809924971892005045907280177158824857743749537909999905315232438817488185916292947282159182253511947234753133893015515081146326750705833941006860800136621611079216902136122319124526584560802751858845358420941080906964379454148456091212221384147568943178194503024403895317187690558612954210649178349468443090019508119962726514119519272305843247418447620550879612820935307202884195095598131375054178499066350639703987134667039579688672058322817111333850733037834420946024479260517060501818404861900678070478889884075922830812965742608337089941200300379759554607310091361992580626018290785789045725555051355814738415566894983072125304146270883568608824356566468090851724412749588345652216382249439375827958753586553042265239673550617133988747170166655713729681891504536780432991983423871227886342317906330429051133813062175163649541332715494299603363257680920408886513776608227381426722488959780202156626915080577046227336726455352546917381250163765773306863416479626949166197635881270174836359887531110672633333824811463886264282728730095173892247096274358268802651339196014683651470933144442696575611182641626070172937949298682945294761534565887976859519590531105940428649737228622148349593271015054696923802866991372192566137623965221877336906955241810833590121214429736193370768974996899703070140606026228905363560657162885591988724088504203397544218709060351324128161921524021934647822929707107593426562647178259843755385782542628633166445470063127054014288724607289509939388479146913488727292413999865180859156541925379324677788101885672383705041262628723602657780828732102460857080371324644839076182530451627564595481522428798211639949427377266165399115383642499585196995216554193350976170195018721593510389599721118083814375764065047920960259721008302981651524026434235087678101480397433169075777410103490015815739486537832341531838395090330559511156795268868826200678971019695137050183548962102123118908873319180722071782307268459284782535437893552391885150281002922706766888254173480944680194646901467433537571484113233521885195344013830980355052038844131840722814535507221039152761350203611639125970136307004121231319781240623320775117165255465844703164220608694195789031410725151364656281048734245717307355918924222711777276249195753330894257624750756232584691025388789501049698611334942103563153903291400028239438908069548791268079903518502113498160095697457799597368665773628075072125757335668963261094217824464000616408411578888520826657651138944610425865656680332110448027519743966816167726472609086545201531483921512113195825225732282179627434740700333136521321110707677828294367175358325615378492854363664107297392324326611095890140721829939910331741728981802761470215172410638304465027769312710709565614093695866413624915316806819136290060787446044792315951681662253404490777054374411530463934992967869423371745229080361451395672162914382285848690143314215622099230777985981953348760878339704479352539368990564475028480637066290641620600290110764776743255639308002098357092607894124456999902016365976582994873207623622348395240057960758876960302219527294926044869694029965250289004169334738261650105452308422968250738923886603659862964694660633306221340730018854685952151148461163490950708020903094078338989826362012237577376902907500049569852108280204362667100433617158219807640766856041574263059649140508258494057052988334250414264809891408597471217411964274713158040859724682411321557664272211520771951802812406109374229390455587811686637348370316289529169826853494050368150612922288294784207992662076143030627494711444430468503645950981238388683304821370016218067481690646032362662558807440214843836102588507732071461763985913459272966590880077605739734569438435550725356205437117866109777872431616341883383730472680220884697189783734138864227040522659930621166281148458026432483053343307328316800547780361210537489274355328626229896518657437398572538381654261135790338209832098378937721958117154244832107069299730056021651660427149699773713040969885093045322791326806704526625461934747242910292894063486443803472582825729669210896871447792713666246669075330331347635714653048551456570191747695826410863989630241980566657900081792572325717890228176981646877574645809037781971223281577030080446941505672696279782892521009554420864267278497901130097590392126548332523444606463259997353819693641248734636102108936083691808950773757935020482406528464277104359192674380850130168967305886191136474761799357260226382287516877130566297188039482322431504898052646595774522320229686926708615391979627058315003227052115084922170713353174269508174284693631567373221648079295282725612404934790187466796009936222481985494377831750062202328034483677123232478608008069640808430706746495674432308193336917474573442449407636921545309763300342060177708582347222450009181859753998698922839383008766547684183580094269575786814080298760057895106080081387389534928699641821174154605679083572787928474756683341160643766341018101078184388391938497294687728829358032360755141409326518868554990984512598026159014048710677201650376952165959103229710075058782293137412231743846425367712517971904434253258162414009892023545147722079198638587053086421510762943734746587895506259899915381728949541237655365548574308903459657290068911966684926168502354949255956513845208733680706002551089547120116669535014136592953512041452032407454694525775082117666891029907436060781712660394102590424498700772152180236966461581920646792590213833913630255729729243673099058706718495338697766635121888082907633057790780040040457044515796497758547870095554147253594736583302345595225583420903285156225753474876800511610090520709941951553591321945669530093061623585093204191391130642068415784865670003547795228970875988498232635725982478923225659154531427105229971230040611344409957597261960209420623527251427849014490798664727974109931342078174720682670916887314383904547148011812019536330020982981790476483060941642474154146785347011442669330848997417550392475269281942614278917531315895176443572394200638668501183576971495225149854122184091567373301792009168364974584004850841867698606366762213450203255006995502976497694742642248296473374775198565152717130875161255498510774697963270841472192007262308556895887345011209268463180711666251211148838036713141375173670481468787117794690487821419528646565040712921811427679670696768561720285442693700394653209178710723347792204706782159055660992752965325044835476210257109942365574527615539780795333219186021726227847153266989347178932245848920878748249063993135486424283914905281555443847555187015997135533922086855840149885366225246570488033034680997323950757606761327775783313748070037119472989977255154254537042701973019543819683020654257046328652238607673258664124316686833708444920107643137042832189742162232274267231004374898303228112137735705305845971666612732067895268334154849181696313585388944035633153786144210877488504658409808316946674036271728065277771148971851452330304788115740073301800717689942284917539345951860333495549271816099101927738997802540097898052291667595775897928542153624757008984716824321804583826950729269784442569496793354575502324628443546833515841135367051682689364064512275697826135627922805372919963118794793161336570600207436995732159482572307865532836295367194643672297254604440556510590459649266902193300488303386397647849502399184745709617922657008011605074495936736093502291734416301102288711911283301860661678129112112878542895147602637306055530926590017230455433700593387162876181858608555456353662200149239215349163360155716939197443609696609346692220253175573450435773217337036956523137826644648939730738134162347896930600435151731423420336706862883694105326712862195607853038480813623716597553992268934532515255795238608258725554471106740440073473539131344946564621718428959421131689548219200536244460817927074086806063502902596917085145642338769377841827841398650745225035016285070220242915672346220564572953582102971255876755259558272407454784858150041513448739881335730935593388740444903482513025224069364526171166187751744505104485218133164071597075712686388385444479395634712943051412371710464202928734686686823137004792680284244888279748562676046810493828493660978755637975263958380175559198957256286028489281464368778640469261248263306794046307491454575513791500764342894166469882088955442519520023574467343256907817256712741173373336823085700910463478981456737478333536155452698857825483695277794187250972809325903592623176090248759533953382728338359238842065999173983244344482905555171953563638722423519277080434893203513853501974864910327050316581186831756212594375280774772725308189611458059615827032319798629272982188949989834452904773310303616430753775996112407689908755711355257250522944006891967576676019091254896724061475546606124570401518410359000199570874186207849230917758185939294588687348131899104976909570080357453639265381233486884557034313381656152737039905260880435301073399020258481190015666439188702654799690816319581357903239032260154669659494699404168055773274506353079849783930398592798395088760888634612876567980362102144239922214227316558911348447299295885274501934926618489303921924314025906211896761970986899204380491879717800368848928585694336457472363733358314120939163927169088106214811313478976731968774096740755608091695242979916535719083180068850663742508642502300410106412778725291026531833313930936393958387869793685537284108240736627403842456110869408958734597053338046156722161075734182880626504636456979159146734407062814901202175641275537695205769498265398767204768301973785701425105186850946355699698648220298806451689072197160669229014138152190713689506671246813971535020439350033292361645562535540145510019896073781156478030097547983990142293270559524789227307788962254006470845178740908305311517946273117456161820599769753357009666384139038805615761240092726977294823617264861680907900710399707450423011293368901021658192451877631943548001438720602173536121078268474960906849221849199888569158949125165196353905326949492825921515037727922075539903161775727024451691804264643534543263503664501288577996121389803386566169072703337961788283719574332280055819174568987261036752540356282159257860579477713201296198270345302153698496451468511786751038161881844412201153312787255904775248227891430516175169478693939317294086245244445353575087669350066326759213549564344583805961754611469232081227794462336353441500220748859780963434478361916789778828060115372937510122681333836399633898599232788820497823358985831258602136887332576851590059309681075152493926322767199215153276220919393809960276032022860060633598494707663083659340371157076113504777106121134680986767966673357304921206395115939107569479534261816507013306667624777410362781888781613399901597019663925888904138247808719086683893209216163708923873879345015586274026051992333197925123296711053325805778507639453125349137791989812332715108849006831333748099573078961324503387477688155214612606026386054854614598520753893767081414132413748110943854759316676799357288405482480588153892771814509076365255955511291064582888794290705921466119369960895782184281380852775703487799948188681562388084339885055640952038641770642892352999046581323564870314710034383464366956832950745481468660215282672300792459757059639497979532541464526194598829920055120265878649297732476615636642356611193117647469205874824637280344288070329008978854901660794040426641257942995872558666275931611525671828472857859126653124321306706181299393575580285422602195350040846734609300824023089283645862051795129282983824228098397156397569173153180250761239999160064308523069909491412277736901600871538165229856212727185983348158520559468577790003323257676433100813252869027378567796598935494006720532285506216020684235293358720077823963473403923889727992879677143829893067785253426541797668836890143089224319115356457068327241452475146278434100307521779206927319154441265933358810033887296047387076865669351359630974271091719544892231018492507860380961143703940523480088303205701534219374323096322331301453302217376034926861497252686388105049361661814086815307616077320890856983217198591229962997000256558175998519323503531746860666253653794894122073737398845652488104011312167065751080740806163426334620189208079281134008087278482641043015301250049820376006284927261347352192881084918912480546412101758364695274740427259536363787788293216774798742193722130080462556023796087223433785598879666539731752986597891687673678877357486415351922009005285222639837339029230488429723066601933037032278572582916800289118881874243311167677138383516919092525575810742912156862366590647556003380706319969984033659207947512477757448640558434646756536767821148612823810769283726485863415011392941275641178064865887172744026071170787698967549033805584729474592296780945077817310820274999097719699680003876362451064797526495655508796886098280263420417041159147733991346903563411743272124037755538653568807783404348333829340467648751219839431170328765852363146716239205147683532321486418950412265050123934757937371873637177020436215296279833219242716771170338806909746841781222192875756299104249657295160704435735734152517703399459352785059788328515637154955475689416185543031639300696203648748376880994949796737613286653772065011450630503860649452577459934091047581902323399383940734169618362224808792958229619046469949469569260380981490750059691771691607577351524582737233760191896125895791184115967833394216735491600332273253139120922448466793878724539830364595576261324232047925708115780025238570329260040388619776141093447646464327767161338815060567569491559074773814387642646416872797600422294343931425377899381189210111163221716753979507192725836018949972486770128709486181875927367333418969217612978199158475027444286635669013105030314030289607768852571741670712826686293520321801490184851444698007887774372523662707879495301977554672179754775116812512180924704399922983490284394868212079699758981481238615776668621089980823593205950736061932186182148284371094079207026251698267485353601306784418225553085066099556867410040500782758886837683850009812962122316707931063344343681414085596902079346972113037256271463504340942743437637933683603282679572845756205499883831672102727687081249701718754385990583619274519251460996510884292216465218031220536697498864124989726963720471518045839341960698567494570072818196116571871548399340312466637214835340001803963854792180979876171391125965696989171734006959169613876119080857995570171930823042017712653537357136227660870319315989967983608203349797559599395115084860870767684678901962976083191036938726910648118020086509812206391935995506460843478440726993608655783563687181764457296482377599446232920382439184377842969257119123093923827716760557437083800611779912710196969799960499374513236552563556397801890048671627838912165430590371223935877083368318868539351409964385262540413088551225441329010706506865553800997463093298131041495427668987811726330379505667360634679226050630342259313937382711749481636980266705018888822051497873941190481933602909857858975259615367007857820775618949416937307152149699883503345766760335574642963879730191736806084435487907186157190624949148494832145553318668619480742164237761931068263652192653579053385707057076687210993274816033787299684288665351246651514744017714353187252412453078120776486102671744867630549274485252930742667114914281680904528453016412812676458617419483436384711484448681004059813357693048530840080242401739964160874074636342522047053858666097902652843736167310346325424890947625199316154508117630167531195536671807325313891245510775452951497444241534506284836523739528130881995540004031291058059396014717913313713357887268373662338062622381100731823640219797953936531474143015395385783828673822097385080697333196511147360110680250106717520450517190881252063508575129323470418903001225802730837453804730220173291235711125036161895978797709020250715022418376218523493712810293050966539797090781464538473227229645892122569133572822503279888249935373390416594386262781415521036029243593591169899431025497447232528281209283097969265155071229346845458470508629983552852132586804077088551996147185300042772856757806813739168215478724612134585438012690719752862078655535484093472275463859334657516942666964118171585249978841854842695785523785783158890943339488524357091318275934233373166509220801588474654203785694971631358430286220415848794092813637953089476681181597349808886209221268157576558718622448771530821154751652379643233891164006016318754083798188316407841904228118225392643864667907100135983081782909083202873459161889555505667277538919053947097181252639288655300935859494672346335382629457828018700400387268239191342328680626366911852207025084040741106811506488295012364844178831741373705196044251539204695365136572710460894870480769796525610081577462207958668061714716713447264948070646080345565673701598843457311717885437362083060910368171813142467899956650938416656044480002424583525137858582841508386993010529306743666636575181188588512671843656554464518489266737080377298941915379312803389676211104600773806840295096224741697358326634809515770917020679301336880280044981412530473231696357457496451244286351833122575347570147712259698337291577750082276573527110828635632744257109632130421402137585544924653729601169414156954772174546368758542922127133304579581276758294743301402919267369117108147234123400405828901299833575943672080420338501322094612640854242994975550618242110807914452949975832876796893800792290445457459625320738095034739344974808987328553322955999499868840263069730293719697956282084751070808020191310829665278185670853531967786062279554904419157835865751844325319404193129367574673093831725077362861231381470777031204399241939950098382310683122798980835376301532861913506509323426858456280425002953610873191651880727306301436612859239498331459996042844858432455959367034953737813393927978133916779319653483447961678555090701849388010390334473294474582500851444356040139651376660307197750849852470989304548707523051972689338540953583079649506024101841726373095185461994112852725321635130669148890008022623368999007740072576373142891549225964545092965029760822458651434839428553697786291858043181740205077166685119791507506212659515299440230670555347011045143384401111487344388339197439803235653440019501435733379656734939968900792550264694245000910952957794508718849960055106950076824804774824416209478315674756476731729211514991488926578761086963430167379500471623871508871045340092384086867876856655506398127286093554711139780448382104025564286557743919106149461399341992294403412912348603454332006610040745633128688887141301127923955278460047109215724388440450219603221432162113818176944591774517396144517712894768844055215593871305958926737193590654388957681977675770316405637719108735742034108062282292257407586230136460974656185707340918432656245854515718835996719983912840165665300940429955352999334937846498406008794615250823193016146397466438639041149456303972400359238160747738196146969876533006276010065305934549448642223076404442729249673880403617387405669406147852312725894500621398739348821904816995365562053370578122036353245459825884681795767298179502518640089688921491328412459269529489049716044097499709322139271848598969483371181801103804155768650206686104703171448932865155207041520766324377770358677760185165699827731527864032197410055586923092931046829882361357392364349276452599363644526318485682451294656931575893678546412407235728371714360412210661978252729610362411412154886480960833310977019894263321140526993766215938278353430135131832032670021544884073672325242147345594297055941482654969336620374337127258757344583323312334560794142641133431761652975550293596473400231034378264322947635737248090601597688621427533086104938168202116585211038430286764684582261682916724552292022474947346323272674625549614211733713296287722419273834849206186615690334971763777434534912486969904369448414820749212574266378746847571976650292025286179213190378194611006206835135901596813118822730046659202292529024504485630550981545501036539720797960776227011985617056343099430481305589064783150607339123385729351525626220375499509440972534422202596659376825552166060244062370909485322355829248466255517411502005157399022460287187751887875074755802189633669222463867189909870758434983016788750745735705076210073516774238668424665623182270786242568689401671879051713958672294177287558160619027829703465949890890341101116778657033959251777151108055726044618979267333551876829554761439518867429424777844118309503659772476414900201464724978169898728476431277355256081332777086793375813761291029455468457257720053010571230926503924684731959719005091061101870477311677475982775775159442031080142959308181373034387723433440945104132638201313969504388994002739957149676356273422019070595658917052681109915257574833251062366742333921674462971949156044119443990085719722121201545455844504205394958415404630274490661566545403080399847477558024492003358855908251320237207195022652880411895851064149446633301772943650883929728039518153945971191807248530333693495215872578006309666444927080900263049356103144662796492351299417568544933521759536320079412231781478508277389477942916410679363355225462372455039928784047309188806639745729829732650464206394612331794144964818101184676255796581306391956249237673637671779267991736446765203060004808969029548063252087172601198837199851202747119088370876641040385197947189920137638408555607332415968715800035353896628119205429284633069888052700981605200742567413990694232751064345507444405410788281406862952436117692361772241007586585132359295546493746419235562438645901546026105066847425769425875063195829858696282719731140320417678951907658819515286154610320893314697082727169830080079670391242198570875915301339332317142636712279492211503551708756859789307442452724433008280404989453051178665043061224550197656096557952588042580343270075484688967801971432279034152450526101850015028715448541774109278222301212316366608561896594802697619488800754850009541429479702887542107897578637109511633936730266814000180416175866515398294341531478622267137528710348944168059859217624909939809736385209428664662906157095649697236004801348838891006437902446920248970824724736514551506772291099740785111410297994995294804808916299171404558400285169359300035568633192773257445882674074413198813835513307860012942194785728173466399663554206091535672044491960980045784940244649410431101403349447182959027915071843286861169340058679156378304061328163220965633996511045748634168057322846105368410583798608695045412197487246670443486929219927916362363381404621996711140250633763821905315082141045100001113100090662321199729615301082324258378282279324745643787788604358212053917474357736283207028850428925207665464615432027578499232226871867952905172246060638333112680458799979765011279580052960309064072821976436977433124685405167136039973895775178813431709643666395610056803947730480148158051849379425103282597585302835430760533033408692351045025502820554477878228585952327565967533126653615225638357297395366690228381185876465619967071871147482296244063894958303211722817512998287192342701029414849519187121975957463218112743707679497738460856594921710891672655481242314974625860144580579578601014703139599734990266080829265149669660361754756594974381733344978984588397772570231590665499646141215711445446151886918232641647216704003449344849087705853330002589327662769125017206623843993337848645583550394765223119329057371782977441858826687647377725175405213550136704168426174358119594417727107123240284054196240865543162089313745264736776994289336856374104534360966910168665944605156628401701400089713645589308525081948937080169968485427537848063445112617936188508778153611207524161924819754063648675744530916702288126760141854090506786228893568052369619053093661290300078246364076873123756999974029610632507260323757970372564938589946190814687609956329734053884865724546240734869092663408705766888788649502951583539461268267380189009060511432628780755800002954325157800340401758063486207016906968095876625939146338927543578604631957009262563255883117880872704352747257531324966466798097378971092353290450929031115924495332710250467959300780706541961910599006429476110803501136722643872970659419248083066473285721697326996981394229356705800248005637784704214312267635514786217287060005518251154343686013537138969107375930703836927555379206565084415016171296088473614450284097106905996361112451743554837948440323782562894964518588910532531146344367232330836876004053347869136483617228049417945632435682992609258383341357317333226167523213356491007703563843110279661995016870074071455092897361785697454421687219179476610855333565836522247351062460785173222904684521545350476505647590954357851033761089083967984624623306639000519921348920729073634589725235293807461079419345278465864010433274464521296921551584790856003396442100929119743744838839208541351553612487504509404261038161704397598904421337051751987680425943447091924011191284305781038848504341082390122068146140829150275227582507897199492089824541902266877163747374195395876451880957275346436353318887476458734820872242729089042833650973523595697670036468655505788368879211052826580138661049535493932939965762177681799705810855284881190915352250349813220316620554896893121641569058191294355465166112944111425152598219553123691309567217331747714740005461137164874528760264057647808060588245131630074329594838291799427312815799085232610607846878720335805191687200096929957150447369915902612212745760330276394256740614272676046851135834513297333583836172002182715246054049977772765238964810664194618084815094539130045530549897798641293411675218366162037630905374006674038161083041583933870867154167628221734477225288119931756676372843460500472292681510569865561146390586940140194015689807134255912676444543772634332959718034234796323683768781093638529762379483363963835072173824385220682166861348741012420430697645387620394051332718237914293336600753899931412171810811566812475423308179609570836439142662805911493938192631073397703586769267122195080616137605368869965025449140621494566603920176032036443610010710600436884981000901913604870012973090378910771973617713599998302187249942932322942170262197956777683245817566276254511375835939315128138725326960235406009719620497738022878688629891729740463734775254779826902983720647524714697277916280183417022437382001835104347684262400587845713956630054335360521174294062671654994256315284537119654816779923205413036040885108446252263446413380142206095797054610475528100558844654600241497762205632187755962404857944268908912949792485455676002897642979615284538400946307655435791370455227596554091806542030878696900655590512280334061560958067034925550766614868005132173204685903201160266309856339982161738419013179972775878768062604055311972826610499629480867635125083471701351470736813306805966448583124011342449171501329838260401975703801882429058974132963528187272250756012847291728021682362260213131437764595019741662879724472674957165368366410090955947379920990650452691898525274717386642173688384216217082772870353986715056358915066953675965640084840185272187969194189207178252088354842563662636010422477627950041086722332898395955929037936291903297202373648588672657540067474229425073764043949346025596514441218952093274578853852254317771792600647384919492205687818293980069525183971107486349174928835267724507250561261907339044517140149024395318929025502838347575932792852249837879536185461600511106497682711960795994729693860767985347442617108332166667149334615683970644111540557426200723661991153436629444490797135634644004452402478617421997405158731817889139150302319732280690526869580142879031375271014920479327285612532695829996244855117509463134994348143095357895198034136839318506447431104806779991462792143471756665751632360223461324276008101436615715167921399461393191305659564986855409004725512792951685828517706108585420036193156635063849560287809147976064908351880482126270667860691469393587930018630887405794636753421083980644519784875894691375489273273513189204600238054008650200004507184362760762724536086322326928000285489003052384092969908413590978815549655819435347071846551372857753745491496985311650797323210353441584873099388327608828223066331204235224702622217132820438186532140440518749088569025545294258659254406739399588072169915051045949957789698104515342706045642515176239890309686593570213656251893453400602896750446453278452110552597999564880784152031797999296027099880615667772805720181059330258959453761482792525142126318287033982536802558760825916645661085896998441771173464375264158064610393115919244739903790731425458539970897037651560304978409938218230459861762818744237429812629037896916720331972872074319797647450707028953934474280605075422054743210538038202368237452372870672165493668850992984927731051657953132617514230803478635487488279937227499385148932946770304041486022459095648213133549977681737843699561840500163820722384521752807474920838499041671089464827940062823876174025686247665958374292375877134422419998922059657842776786291985932329947887241224892371803059338370861832449762344991781581468451563227697567932403051086621421202966587272992846642819021287796295654002682495216789686646564477364773094703377325827480624266290690284711010719779960868456858049845348735108229280939378912643110899531659525015884542658733688665592971295050506669789321962267072727165616066345038289776399683876015934490347423733733116867307636682890611132296246925869464737621827258609614633890827400563947122403188059570959405930511781675363726175340513861564110279439980430913669364747275065142754054880451342800784770263359626192191983823061121402592951461343034337422666688581200038386385787761120945625715420418730161270912859882730230638525999946251078179269955302143397080220306161710596065413068743361607368548455975346134946017019540879744495242705076700837144208873693088659010681716625421238877519528074938312219257566815047668908116991660170123538185368654517737740015844865661877999103378841764997252833293279376741322825730592386357754281682185056645823864958995301295439019597636631536936968631079244656149376112712821045081586277916682723930092159521463304952445109837166957534940741450334100187186009696150840603582471677249778069375504709834874041389238098276334309319298092156675727825925196597545067666424201204075755095305173549073718418809349856263689087985540742056204529714706919494674247783666465392806647287223494561189541997432059782600978519867766432742052317847210465250976349412829162281907313690448514730839266912497816825568937675569856655466207582122673699063898609572221383073438510508893964717711296887975028630753935960177423323138616483229666715199524056212077970113744260190819821301333193174842912026700139670489040953088704698994050847581214045872058824077622093951002743558135204974801009707533967350577512816293390863447990973764664891373508884897780983119805154003086555986192556287633532318437371180400319472581031426871852663799729539555005743888969751744744361889847822137213672027419335819662292805391677590776484858619488363520858229660277132070700256882763739738889939845276585005660064594774878266881541683120072561309494696036846005937277372723476845200410614069753841130718340556754660931936245038055219680885922839041854163176033140679068103724826454477458670007274690983978536655969413763089867150336671887824910149805675172543713946498734011903076510618029690407919830121154334176060053415951702632515606030275236002219151444854098508761186766523376782851681872459332228933235727036868809766875905469098074013283005102635142473715561597788623146973597307196443845492578884336195924432006339409477645413940565542076763644448963055931162844583743405596031610797094280690882102627860975450904768288612067666837509014605754666483523318530565897881548175577023934852270796044671128465445802603142323689786186871412695672705794981491846168877173655071466686694546954573744319934008462211107113194292946511925310444185522589027191075651138173882434666666109097496992824049387431071796480401364181938393269351835057643147898322939388785014354833840209029607835621668640952991026963123667596583779883766137923858330178081667831873323159238017669239149301060635228805097634147040341207382115873849973618454493282818343883222618019425582780658783107857872320189990846613761792543447124354319948983523468861001518775072668189999770798008166185660088786609599440688851580558007461612399251595913434367779006499042030222939530812802606347540144963211973566805409653500484513872847072860296598024730279163709818792844301086013778560163789248408027300717495307103758485876589174432793674210177750408220050385430186934264063769965930702866612855762915417884248376083030465201507409818287782453587474425062705945210552355416244367530635451808685360269817343338040778462355383888960443297162467355427661824917017933729135695882646697928496426810997695048112369755160530040986123988972652068990370259361525162595932882513101429297994275407284300633815575943389602295516028802919155518176164060556438224746458251081466548246316236297126394235403209397149810743230570704230245012198933136013307424605312227514822558408210072623735271059223072426703411512611939512657660382263618159646220268153959896186709812612617571176336112478565945570857873634675372632959610444345168807955075672437859848718645937738180435643947998314358604366826588632965812522324369658614228095816545919172747539527967036356790164355036429648595273171215237371888599048537965452219219028066371345811091792997284090469917450353352433076983427951316330064281901556382007569520716658628788908002050692273024810969806106410164645865862857871394518258329765712218733659324999712928749949196280786896170989361835136171045031829061511862181133984204206210874271132164577979014186818530870433538503525280994856859467571186731465895405669209594840208057634760011714273505878356742818999294129076024367243755337412983089424567452490133223021347401866759701771695606600182880554498607052427448395776544039882612582476030816543164420944476627234522344234114072246419665634266276005068713716023010794576844483602118779663471882676969548193152172701831342030986032236187738800085668213975475994542938856233300777515586444636899360926613159368785662447834051814927715060719732560038228524611450144755271137217679119016688697185017842515827899665027651735678981345252286990232573711035570076543002671237140562816571895900076237093830236315043697184923808067773938866817711483213550601109382913486187192965218274028564564022888022544115372213318633706820247725327960329828065955166529896538684552254017476204721519116177628275090950671206508795154799365221815419337304271760591382624716109132634733491704751338380186505802387304802879763987886848710457241258047678479409348907301001311840636958667429310752119041983845760886132463658376215089924813638448786761525613293866419466103356305845362015939909681226751861067025799059024363253730090947370543478871528653165247531054513106513154309770912817742753451894644190732602885520396683078433593750034752604014028679392205298904063053629186920911061804003327124652036957207836621961588831494237583052962575926629324921809657666573667525472647993953969393146679603598487931103401976512327356242463480719101905792027187848742747584017236633976537413691073930418829778485081464465071510272218321234252851854815870068481424386054945423052337284602526299172496630294857262993719793775282115575046391155386643367024700535295541660724151450351272609206748982028341404548317294550564993538102887172972122127172452436343155362777815940581293037976332708344161230544788500339112293954145925949110368716759233316599082730033778591087101160687680908455808489521029602852188832476147190964869653928926667047697003879655500337257419871023006965447072278304258724017861731461681411317246601914150491682480782054805786676314453492477182293456077326845814016633207770481353633836152378850772961833664185018170194663239473661588909999204190682035769932648467715731778513720587900887653865417348109566960559090880491812796592386141875492978165702679693213647278890095161398519735767002523704804992067683342458249611428848870892056145909266156549307909054912253753618459775503879567926105830935602772315904067524553618107623026286373905015700234212302520351076531460774132845657906677499502702593515174757671065635101419327413978549010575560768733054768405240850572975857249441536006371261181104243549925592674490146057952011811895348863364499164074001886660944478169726036261864109085753020151962403992362866348437400948469413858118641345873810044422595761631552679425148383102827210166630643189890586023241478927315922902904501523258032757579762417964171426954684325245576478148899052824458464961261892365074399072558496578110962808868381106713308390941409960685306915895842970437751216951782848055315211913428822701515565750254127329112819292803143063557493571750559259261743260810403020970116877346268003655350729989869573264137100024453508561282731194783184018233920586578417086072212717523769628468112626336976403876868885638413511801121695835713115869504255843456268035356043759837569838506960783769263234719173565045827742041359941625753529995119887999340837518261773195301658585937632344040030240223717281267928697378346055741708114079484557452020288772899602854322060920951544973537133362872881569129204491181533995336695835712172529704290556225428961648940490398426251970129802555829776952317305836303923038565089739943131147151774948395713095197251005322438280525855874198406140878592614755132171597487184466417658173190409925856982109559368979270211639974326148997271215559455730290375854225972664681281307190925249910475783251396943093232229613179375552152576724039385700855633514444211065119788296157528676428226855568322826553984713211810503743205994133556581734349985274217181120166562778132346010874806161257057172584795858880154873610040819131194630913153439288986396015190640724591323252078743216950893221996230710271727798232750510800878370563509143232077898005329311756994642765073376119555986884424026699015574483863398715601515867821460614152390002459782666654445678036789452332651890532972993835087789178730025157248620397387828058162117810027439949403883161345809542103740965267472438787598384555328908037170691939930185647774904374746366635989336692538134876539524139328357082674429325859515838248330611177738888503841925679065865015685494829405820304964571989970143213922557661981934449195350426850107428558408138571965007338268175584557172456610083936158797716911640200001657103291164828760147457447217618702696450094405906786462635663690323844003368149316761352569958499803242794042274412317194478532886675253503529812859338529991685411240468300690549100280307400447927279388881587973357883241321338958460035417675175754606973774493813609613432793168773170017188969160441506860604739360623067962815127772745469434107547846003296393284222033088143154854493545084484063645277618153348484717657027841283656362921070671130923177614601359921464831874437225889877223558308661115578847190970891988772385338447607916336728231984537223513598103935123325858973745811101344629781683404434707119188056501526928609909935143793476493186990105759843759691284961830160954794296649083997971173534249135671709093657317135418063161506752150468667002341725702375490545455942585541025892381223604600908443385981629778723820541407926660424787817447001843085702864642304462166707753967646022915767347479965821982301468239895278388526433321628325167194258185989260538336529260400991633956877706990792099239472444575832935791170834738207368264058677315794090120774333129044540074239417834716216196549264079484013355907701150481737360497472232848551921174558117090111708213151174396288111086586488638710187440279635976449696235805902363548537245104937726424162156008040439706743395914846659955024516007195197577844500990124338941195810665281976204706221454782563205072093717275536298587680461110408149687672321208510970134203310108245577395436255150777631231705749334652988977281149207910966001939920259743894415486053229565792821466288373840977219756131481628097562467423383629997041809933277283085058005142860948593365942380834143181921614272536120792133132936705269087278442220902397273489133337676529928696168969454993873794602852828846591810506528087897118948716613688404156800859760811202786291881248941091057901202552472341040872916098607976701710669517670599783998690773522525475553029033082395007780929144990742056516793328150032096630717807514196065761147745700316639867884585012789323236112121289208887350941892918613157507422576150585041578789686428371075884391880968704700851190514890771593165285666524527684067271053719235520659228669452667855963838670295475906032336268700246312909513899531980395087846152702413307914561707043463350586762546256316622204099274010950193339010202631080672175671946546024944338900108325173488111043821519713021075010545005000871733227052218688826857457873178655160596796347581608263562749387376610238387472326055983218512714819429018386402148468566915337333196582140404695596352607601347199900156276905483028124321447119258124060573854186552950017134187768274179681039537224312660049218206404883129474382603754706208174643468018422491199512366141361133913004870823037804765487850999934370620999082254964165913606237886736056790414004930679493831070254459429629891266326158094167515830500502646025814663715898540069012547910612174294811681464309775956808477709361751908316365450523989121502488850194466893417072105755303962271649161377814200462711159094205216695392550048846610776604386893680762910624945713921726416979844400250426202774118093493826082696664594977381347479089549615884899707231583261104652135768880680262506080500357033932816042499226147195195784688147051786413300515864081270126932225413631182897458977741099399646219158093066579726161726614219863012630729020136967647755576521883940179012371429493918089982542165880150728342896728795672799594376622895669657677395397230909898956974195242130650382139845496461467966342665581847239124505258917083919875964776972895408493494442899366133291044288606300941351295328419894182216948012033173725551133085174327847240528219001508082370653168351043688315045765107216252963472616167046853503261198285720090989540572779193849150075155794113187150530626748362865018759322580404618866750955078209313104234540021539659848929877271816334149260087462667693696062803194580125192102752017438179742151927265076347417390382322863422513897637801440262577795894911379998849861693988388410160490685667920169767222964953193208304645996667425476245315270493134463646829927196319884531856777628284011180486309012450506829274567331437035222829503862706801503111428596815656845730092509080262886923406737516998629852526377047788337242038299069391886428054933284676799288841932904080334910955544021855127045850042348042343880671526957790715079436516203681676209498188620985342557208300653641599028449173321625098029048728722704897556605553749609347671860380622176570760012513864276222636959922996397871398443380856356106695814387423795207424477462949825144788622998250829994642620481490673599571116500650595595097643924035237895484886877880863983018620508292242256891333208346699409754537136131388715286120930439722897808026197127935709337914479379193388333060800080529843179294700411872172504757214937503120660134512507636245735732081319878475863036005126462662308719587831601201038589039649200032136969836787834200895953689187575274121972652708504750800275769005442359337852106970004085231160705238299475327920239092154848190537915259457372531551918382249979710624305047470604798211516379760284354011817969546661557539051151870692010486719936070055108612310337098391428365081868355050121063313297068545989486721276115250516441872240177038830030760442804823366812512437465853284293056170247670994158718127767564957403792577214384169694002415617392657381916497482834411597784716627693140489237069158413625643869449705993999011813315927066943829331077288284509861951114846339490097027383994641738770258456774290355822200230513454397089936935242651868531708498416908099301586189555910631743697660668802602118196938888311836552471672600913116960063813642283633819087945348591784193670904005622288165746709550660176810219971746498446836042534540905503118160271479353758191876546388994395195587656731219297212206603833727140242212656169322679775210288056095663438380843376479133226672352637098319185474289992405262238907621042945463997405761830576141298169812330914918419086875495901676528887663986096835477842178831547285382262369697591235058281081088427588163389150541936456460073401298455577366764985495061296318664946682678843427734211349576857419794997239609987054820757694194023314876026147084141029052870072401323266473325543508355036541274200384991982724585191907340521509116430980361385339675781491314455578727789860131382213088227045511033644967787633349759052144460248659172678847836227223889940936860264037762043727927753926267860975239327526449632106688460582604206482475255731771944307808929439393421181652997553961073585603691384868620832296182775861672784871162183152766565739259124042559444539160178238774040660185541833363272722332997501823929812060555809853908667255533650738588827463880174466225171051617548840808716273106090091264039489458624486584730712660121251727625814209284878661553928576264809791236742588419231418778338545181960019864159634287235565514523824632011222032557770465984093443634496692968924561680965983939166488703348553082575811531591159584859214944113389318877079214456172943032562612009424820243467138850850053903823754125820489694642262274405634725370226548901416401681337430738110546961646186908235689757864331260252330227315715706835884177921661802544666762363392237551433760230646202161892793212143238177607975089227087351389587274757361952532194227670503909214321558592513235963741326116143919367586199430516323067660541222027807759254606278167316260510426008005013544489547414063819030901924027933063111619568289522503879509885160269111004873763116795733555713254268680241824259296829241695191049093036962745917187288392563324297407215539632304613564400788702938175692059091874219169829870877387685384699503373328660807435289258538119892107276515489730288119890331690041450336024675950776428624400598179693563803387117665553990484306519061763042542878755566178403838089367219406527593546884597913995083794370756327286641710495754882851930090755466820338367980315281809083166628454009990286064240382801594772899444575123497308658185898782877931795028589531176435563243627725537773283410393122727830024797600437698948726210695401328408158835298034702894945119297629259344920563340347419214175349697730008991566479487213399523491521779826085390145206893587640750253580788521887179407618925236385296523704761086717894587292180265480798735443184479510782363693149394464984254204334079471815091175768634502526642722774678154405733027682258981258079498805692196795196813806778544280930053773988062392930342161320301941752134263447774912411174522914602855409989744021894550902004948305037046898108842206815519120292606267301004369989211648337740029146421934784678688055261777955200335797625086797834494108771873910466298479028903789175509323458343019021358146419140741077024891178819644872774662962938843530641782285477337723370489663350953335128968326550793180366438696196095221212898097297719120335341775437314602974522332722418394626081390284928259778260392457044634341247948253029122083344043798967489742673256044678057154966590454732732266601894403966588029320344258167655038210627783981604124126974765304535162160000319040383903801392105887604600817445339805942099013647110396371787901203960503220336514408002168076484705480868946678697897087145273507901767157701932937293802803840562601054326029417642291423863902287618342145955365837717314422946406656104548389535341473123637247239882674617797610820847933180893409740590154601019097918687775519061084274980603469580294057232213517524219751133407033904522557160668650353972091007578409111516603015226311264531283901153059424529236792418318005816765341143305358457790421208608688448973716515563481059269369091203612519598787198861113760889314655094075814036046837020517114268304732680308697564489947773058707606403904003084197290092310799717823977500375616071559503171478254966017991993133824767268393372442252035143423289592734489399545669079855146996070935883882346851009349651421791070165558752029753342853524926966650267430238526891895194156864846940652280521316337966097421893238790502640622927833204685728263282866262787904104202544491343052535773902377364423854943273104110698639071945251656234010395711762062938949808113681025287971891211049272126311753717722180469490356258039438849091023787988899869537016290259790203968138933019426650984550139311497797403303938697562574955996346961180908216599103925399552347327583189935562899694480145924731882617414348781790561226992111601030896147280368432601207371735852337979724260322173338074166000467689696379782396051350925600201535741952982168739069756829580839757124440385318817915649572754442714850441378630413268445667691895082856478685283197235705023723229396794731926174216439673119120977380122762634819900894529807452423392872945868081775734371330317119124210787830087033090064446307129858715184212822172858576621618854012186890578281753064796082427856383386018571870198685889232189680517300768979329431415441310151565972953023635466691533016498643651246406130060773295668718534308275523366374951393171390033956151199451383854492431010676437923258109035719881337933727905571385521197905628835470985740544814605129769225652834216812316078178793955883727631717962093983212200615779678153562323624183410614170211930513523728375825075430484430841393807590093978578794798467758726959852396169870588488816400493719040281912902488729519717845773919794587360068101132814036196170434260873159039576147942388374923033011197848273772168281925064862531553459439730973825504276381605290601517132071138697239400561777959995463250588918508312779299145766701989326341013246884778565790358638298807558976815575796328718245721568932703052183212589502797577104398052407541728312291966928674127289336436000798324517993166393266950234056486665823637847284078985106718651883199895402814361801899168444340493971491014657082157129345771303708822306567613092368437849194214516949724265547617304192107695270158096935628872159132685469578763853554752697913500389351075557576736981420061611296152187558806523233728195762651658821578389024741690391720921464745264082808381907758433766912480987529638891543721753295936285384114428567638027449444005822108476363525018403872091963288446613442624800522326254605631471864484055659319686294511067383003398150022241594040837121029179645559216693667990334055770249325331399393198958838787219150880787912106231707083318652362813490825258027400986722284682945162277051579694102108695856234512489601414794876521685240793814144861890682612167132916860402181228265111096773682059468767767727190810357160619331366390211928459347603943114517894604004193099769025120890095219624669001600510248828169007124998110780545136172327168296581321140936949926539427621173673356001588371584971693638431221251597531740397831423600072437299300269341797508474608478635745854373564382054299535070800875615792761798109336661208353754126743418250571572168874658301000394184866239157071867648019397030363929193104394464073859314932463105562637793017775805585514801962652027679443132537789545885345178569878458328192677447184841599318007359917945035887098235929138358920755954959150614899334339771906437264445483423240108740473889291273211145751249537011480787586861487764526296756135112257429777096931905194606934147598638866761883920657255841697219494885466007319189903829500859558397511331374717528489144695894790612866119394366745427065718615210741399944229591683384655176834028685884597869026362978312594022114417829599605755229327754897073229688564815532625431076846547059367932167666478610056536488471602866648206800464794004269908846387752042564074593113453989025143038771069085232231411977143922648938760251815704350196696698538662639820003270344293813295356710381412284717133057650231190026035490463481431111482541520952803693901282454073498032126616040733882352884122793685961932440644084076067909122913588286213477235273431053157520673732700393162439933962252609621830687769631604389821882151763447372443810011087401651643972008319665820006530392279323049590608753401702431564850137377167885812765357559181849516032305514113073097030546557149561775841498745537143914926238648856856155456188912243100137362448572655133648082311933738107918643289726604502612280876853936242088255255395810976929263773275788564683398504222422901104263325298479876117856972653131697211039538903321316662600311968805714901045504715641305158155293370884450912847823671523490420117622723713970525875397040769086536604659997629900943333118378756948794380816954306172378865665303673557623047041679059823214026563066094781594152363599522449180065389631483655593341583404082861123148598919694698744776895231312248123976959485388310651140399587711982021149733157115494918291300215387601792533191787590577827090258498238830458906536331327762323311701262286189363606715867623820192566155980416687257373368335333457539241888774273745709384270657981749884924454601421238499026246574131660409881443603614103492067667191470960036810120209290126495137254455654530537358309945448429920488980969076522820873682893389415000454144171524462758740789506085790833897858301242950680130758689536793881718699547472239485361372121248278104311736223637856430578656870076380086470838178296128960058970300378805689438908942907503210209467349843352823718441018942806422537180988093990292001275890528321605867102804097914362072760206489944430562301778777362888849147563492662931774696168909954671930337713480033803406773407108694462983162602646539581423566644101499728100123790594163969551550987334498216530931693309846724603103857174006569903990830760925900214231720147603455120718871775910239771932444101858573314780186727311597239539643558629917248375589611465445309972859476529577623996667735208089333485643857749575874928829764368315403257428467284843831105401153361336641234750980296491144324114825062005253850616905434891003753996703179413821002692821065973628280583732089618566966112089132309034157059476831792170137982545233492652008090941407241739963797671965912530620149699505625231042706984755766336953835058891433917749087663811709991660253091483878142309954482743966036517607820065552126532343905089737233486527710442739496903507474073248210143509646256536960782368652051767062001251963866852615828015164740026274104694251934176625554321131473267638458718202355385985422364725729099061221264870507236695053937877477904182972575582508116665991221134840111597343628128334248418269963194028026348950444367614921171907531707171657119796750389793653949640080566263614793020356340812057803776281915247827626023659353081508076950801908065406817249600891218580145893453465784415496271869766066291485616945009318582498763416789329062933587045760842623596075619717928047317980734455411824650694291471540062817426630417797382837828169682964681537479647585522345851892085177272206576198313105067676094657594662739953421607198854642332593637336951010873104245035450487169213182428747166335207051642783018428743468234388437529916752299009323327399972656817615700672245842372889683059912218514173757114748125818457009194573379355415865275141568190189995552833420243578187543873317202261333388536175337336301188772849987255279148671559712758820537899403140762934728056628603862887353641388032157272945485988082408219454299471203171711942780913253149177898320827296322808800311009095954683443044912610127805411682470740522926411253429916544219042174253873833613823741146791172357981921778216487681480257845554648042025112201782885346483664487885453166923309321446030910340295197440955553463756709566549673976227853532154641043514047693060511813481091317254929464114776043484098710280881528632139321619258475713412144920380641871256127883741234846066930155807672772775707850377731009173784139289171307691747125782369196660958403122955076750444322302679300226574509397927373505224434957666645920492498780433320403221815721595222366522915690528001003841452422014723725590056206987115681798120657709437093188657971724662770771288767641242087474441601025562592159575378670340834527076335693654860054421579891273225328767380175243410912340027644134868666335272179849364669980567310144744874873009865762225642784044796486684902495817539652158075693248218336479772634083665716406471159530621910528325275186632524813438299905773164048619905073498305890326511991758582584441561215657209270947440909052533298292412981554979735586022039388170453167886402402785035686729543230049498933309448311243452515078779484440123959855369554492673118352303452219383004696978541251493620628058761621055601071815350556671201107212276540112855271683580796500774430195147675018823928862537023300929190361843669596217206198866533298685003088405645138833590251545581837502860175080663989685585696988638022628025829016867048134014913461660977512880787449598914793486294018182565131169363140305590093180512735326533797131112191412062827676414385387460046034552358407015655267617900486612397890267608216802127646865059596195779739564099754761956384321005630034643327685960940543075491409066132549056016817261079793597783706878131571632643013297117830300473269395390598572379327638852984768716869794833343641742993944209737842565112636691782973085567943296776143250280215893780520664165756433610970774100459322941155958529060026869723193167591184642136782674861197687462297342518705976260398036431457841036217932775205870198233593687715524934310700069748379682400265169612903279656410942798386820788470698457581124473548788199984772166251863507215652763866423596149889861490452625628395623278760553541539714471604092987240206633434319669382365399288841891365071583010458197826524330478610778797095763397523796761888915990047753725819103279968413560413754198247806897262486668356005043523375541464259795441337237505873872405602878125297907102305966188181994358793345970212902452015560736084775222413017342444407381540315271071611102298425443978116723909980551281020442249404279635021103791050120072595145102759366052558256782558705207191236235655469608042845632837332230463531864948171031060473407897461008314591211492015599212754183351915448819447639820951313295335519419260927468572493678538661213027004461188954623219025931295394900710284182447367836194028378602438861646482272187381172060448450435860068389298041029652862240645375417585927552939491187401436090009096149743903877850269612344703239028947199303680164844132653827024200600382057020022484086620659788625479125709130045354284316192177907140010659838543958063555704660059147050774440623709529317012451448581175604302675699575814644259539577929299426558231199366667397776152627637349386214942788401527779963701387507948141409231987006834931263925148576394307718396151707313246871127773362571750576355379917039579961942033552446421362576504351526595347792149738229047804149469825579329682379190618681701857467918834231495357892779248082254699208267993537551245990608931086411743091887471865552975179852806930277887081075019891315760074016477970211306031746565864260732852825483635096658265082034149151721292089408821825009035712915446031358453561700213912233718210026121166613540432495263832394149881690133797490367631175489211400686899791775844284601663417897486956343037478403808838457228529770770377466852955241039627987836323353208065483750853183412832616099639209687216152664361427782115026428040929458899974770801851933491361808197788206598331435911140928184032695172058568439432392055599216660537594911521794387409868740482782745838476723085283690215979422699893711863096867338638462211260462159683728042346693764701687151747622721104593352949615843263963246670346131621650039615359754627800850360590717098138922642071301359437464305842638271143486925864171814988647354240804890747398923377575054701216434260409391457156332810429493424021417699041420131915871234894275197938651125463408006678033061561345798491190808513568443881263320340821626272265218456093438564890750199060045533015639609586012163016974054248223106863275672288196104181447479644169797139958573224125321145430973530488233823460268577799455183708757015561053699449983463455093002647541417353198659394168029814098822302869549889326778568608067160047653070773407818094516076455653804990186050841706774055267773747700370586032003395169672100305712827667023282941784802726813359700532563383934640650123340027986186946404616571644862492568553957950074513973489715429687907904788898539663146405705611744271130801308554062605947423429911499040451961320284541497268759396295703632822926739473881994372474015664480041861359110218572850544992884221574066118101181365631201363524637810510705595878750625869939134375680181663709774732658232076873256270011534758292390448184664217506490597776589969136887970319608523007902289859343177137259996965013532598683867586683022173395528662419169430342059917568573754148572888049386747121260594892902135787881517584199748351576644247774027485186778792537298862077336893522020951274152206116914490624694982126440727550657709812091459454651981757624590100475339953430827610189631053867607488893742589963491655028903707511135905224990118535163324026815394597988850275054489794672805090526391913944544763311440856619341365573531235626236589744309964714609838425129223188862878465826526909499973323464786010924095465704407620703910628700693860976209016179396612694600534972521071202738755236248510486398661817710430778245178228896348446921612786812507013534426208773886876897484185795133064991123197186033546418562190956681754912971074981986904676260586435470036476960690650058464670940072661680457104071620237028196853454510382721697311128841472195178736042931340676952842436110557155402943911891092524442027626292706309203575040952404643753772043692478383419760263899592658437078424920222739227881754548111392760057359462893118731878023322306497540151090008477696811450338208312252982280898504707887442366447959212286248061889586553383444963124570311529317054194065316463706246746995199794379015764502606085852899596653306329759637112916963559403048721137050293766474219350903594821774255004514052275687423318052950861978534998600237511724427344866076311043674185939443898715984355281750472847953919616528129770284670871820785059370424337751278975742725305349920313345514270270543038785899870450787547571032478670783936905352184421494558785871206386337201925329434223853595310876721002702690803837372436461564053506973724442370283213173642736688260584741088411671728328902551691315694062963948928569620985894405851273348587757874683751587427333081252784016751191830936663665515055010628647498219143273613671079776546655620320581255637313599741830510701898279744591117136337118275143231015512762273566766234812069567505797754444744754908906397987208010624217622167144012914114273666302662242184703828346598796179078987979020138217398880422208441590649044686796865089932594351653176454516988610589437238715719198201603448240228220206152770310494764385629255176862528062990470775804228966974371491663375920334637218718848183397241397055391523572190710850201268569712175057765101336902142701237015051577110937560642983402755003047255764143350254485105470145443028357966564826221753800942513813293033265239585489703716420420236590891343316345090579022498074051203189304737881056165254304437191540804348533390891213561278102140208028044052325049869148230617177987960075306535495028671381228739705337654497907079468813603506248901967478405190175339887762690717519205268464245114539783719238823701661688798310308138487378900235702770970364213400731019952536003547451567592735472760012735011071328568834945160967116203964267831112493489623618072544670572507836777871116166308772327398441121667599490641101552838329068638135394040192158662542856262897611391088746342636219676838499256293338046916791296276043269318495848059600382969859830637457970036502973916385583033172897626166316530386671723484757614873261082697098329777919737012952193166539219778064826750589584154212020913977494148580438999762625167118305113683533591862968570419304918661789115887306972612373461428761946574096573388379052309153661834092364205012411010607739278498499418562821822986744874425920419282066781019706920198097950775675211004661473823048836935452877468044149938094814470921004441790587078079233583580570833855587917654184821810829497484235082928264108483319616006905670803619633337198318085822859048866894016683473985520227186154071120421516960550328659316552216624645453358530645200836305118046335742147754374487152856493647418939493071820038418910224790739983876268966753038418614393038843802921723412306869743957816227817909180991439017367491842750632402566648841554701445502859352937203002558152794004084779406424241434680609120179919365939492694924365928043107616210050731819887487083126414075773307385516343178789975834141181793781769360044106015932713764436790509193683899194985103800867452193359594806726608626466684934783003882865630159756582757385565673747452305216040207099712559789766180393280472490925795436188735617599830049793526362136927852382874649344680591373862678971959613538528520660757203796519762832937472577854993276228363834493965751031726861918680677507603108146828632862134352537237189870527598744555715484105450882109110049559218996643915650954935949191179164407712492631862402132009644030882521347767447370860650257890517471029211271949279298615790115462881895374101583405879209391854653326550842827991840778420670355180144662621158347439700398414221172030997892957018088901476326822414015847455922644831442596897222904245691828334789676040906241006185900606328078993179341693656381767065788545003917211335787010333949760747623677966970532090402727420255540338247952385113541944755092314848013924534710510480155968466296165662383433670025587138689842978707408617191459928205295159103467911612535877732909557011738519130023090472061644095284790284431269430311623912398007149092233249556830126425312175214062215427325789544446410543032461802696826935305412037425098515790812880238093118236872435933804299113950547948680244264940581601989351769011674071490067795670157739282296945857624958144102731492427344226241370777213903548290620386815140310684218024493016585877459381417424132991913588154573453740214716495593554121516110299371053282459847696554599389158405051864235747054199655217118630443396286052641482355292045870112786202266530561263496927162890068463058624591184964115269935850729519851551269380031863081249685876088983320447067724455383876934985764577655037600119049987414047336798991886434792166498318353408077236883395748872289528987250545354850830790786050536130499959555393170703477862476588982139988978458366708946221380879432205974456818456908463333306489077959458898394881059986045092330898080575133800361285048883886566660553374024127425115826382069894822046446865519633189589090664420159844497198104893341180660400374017473617986514013673382642378747101426241343061004883528669554702474841479733103128665993059046151935361029064833272063418409338446683253312141228113085183017887616353293232939287635613427756894917070678148767554813894188186004672512404969201419777760516257766498972920335951027545904943228929931103827636063549344205854975104569770060244068748758895997532967824365398522158229250559776197286843153864542228323842217873639347554116954840966758944633533914132555711163579550417723882970390585308450924365130459957284726359072560868412687378637495144753368973705935508531532081514626293191799357063211486432766053846091188925377916518434304139292176513329786983992108989037576563073207733588222416306903092210438253699172961016948850365170577870327436657550052902177623616635376405068048804045506722671770223763193678559972127180643871800476566404244202887911062502121004491991209627840340572920629896220163695243629230565992918718754047711699553709268126134730309990213411270585169112506272453585478878722043800782691479431299575494514677790549216052718678168101703363487486097087697497429973882835357635926788978524753117297554868907998300548077505123513638983114506510458639525652409335672405244522554416134668361699448433570208496771583303534152438728014040074280139097667357422000379466813971752567598347608104775437639779541764045880005819475282490389713561707537352820600635154021230507748103396391165890515298783386835923832422060057593378395469851132182856421393548427597114077194896226998657811670035071685400838569764194508073240247660313735110076240914441002612214832397894846451549224036616957858536074340889715888642815596101431412115917918398622731120073999785942799338814864848018476603571853473463987337572512160146050935065792736081816778783037649581076720201101090622003536839023160149196187494339856268705755210432709159916271185811391325061633337541718246622312677834588101064354491783203209438249270829310696682558849074109011004262460347947092518461294833538542368667627461187089487757710249717852598848414564080995947480393041194736652830009422765112105005391561558104575814007191221183561052177728081065816287462630107357148764972788986247003965133939743259052955809900352098771009068241425768812048362690048505152575675446420131405460242357795903835007895441394181994047641543138847222361877019736693215479859248374660656675994097112132857509873657023839617380489040750772404582918603410675895622834401189106493007429183260830154740389492175242355580000761674461264673944360537056229240525288521741536538129079887152866439639208886372242983777451572521484636428521483480114112462836419963882473188783882636137467574458501198179786872142597855136264852483504142053071891325418484953813648720894288520509305420614731133478435866590862740516679409789702959270391239309039400463951273738920417350803739429041656377272051265259329400437743225131506084538921736381540953088581540316888578224203041704483619016247704075632112152291120648099149253090609175066245248580634852055827847633033705163144188681157693263999286799576606800420984039650382684145950958472204405636657148603739784844492901109560295688800302540714584326666037546826133980716626613848478779740944151399220795271316926453096464193806821534791118812131731481880742254882153209430221223840336595126615914284925250219289862285167484868551197640297125622730661113386207330263192748705569567545110801198587288845925119895005743194199800900508995295978711611060791007931759866540974239401256543586188515846828366007990348301374497576755232158852510266298960515615358777645168989238776867387892352360337083867885935409378955135806114366144092168520008407327097908389971934334592527562114060091749680089273277551942964634123626525847590708126292482002835807671854339978049103646176580781775323017970187785445337968119822239584240471549645118497213078730528971224696336201693971253352633837758518824202055055216441756510801511773966650046984109487248459706670587996774953950347873119825330589625426495612832624100408926883787452178275611097402255189230917946531791234866821946472226483520884824668311767537395124960183719727769193787147329449417916327967882811697503286093541909951905236033689417230312190058611419564869657039915652363750724277916876363745908288288095638955306405950918894897810292945857950296209584550276761249686278687456138503354160911420009863230712510764079692409944520229473749580933745078387319875696594413463401869020244738054383801078417346792463520014172463962237330107651473263176536617520560477594304312347160516293825578124027963013241709508148018243333482551146750475911858008489947513048551732242417795656060420006754631470754515887296943491527401751865188769575765013103838203364295129639957222625332917806564236812419577903167159999529698804577821655021145395272320389517395866569928759708592809903089094390457074784888387961397230628384558226083550878054400944077781111676576330013838208818350163119127986442962312705248201119356805213038775812353224781268458693096843973477721109305417250659319055716264317255418420818343223987088833097258132793134632949432258664961776680552433461109996337166807354966254428652134545603982699475921595330928962897954272239508396986736967463147692906137655511373699724655508274275169168191870852302945877420738655425108620929031937599867572186446631239964462922553463307684799800582607121036118530344555229968007773844504504765885536123848008110255373105151144670556542981979555170416303200163881802486349945296426074080019340637282292039285733184381241639751862078494547745729155485668167687406975546670532992550776845853783748963577096593938943014890501232036059610650721496661984219148577081494272099531136185966838780922549635467860680991382298749460807829071115360110027211543150665691545042080028731341735076502934690127346588046876781964955346347483291023465708986425601062326866198328098859547810202686668024842976032757532032836322477087661136450058421418824613693701776170471311848059840080211577777143525257437041223083915553724732181732399036276539769306450555778514731727800510381837501917124852464849019838039383789162061362901013562183229134776363301468182047404985678584122017674415442122316782902315865727447992903131868509159011379105235240333135967104116041775666548432734280834920748316025663142329855254441774649756974844860900065899485571033935902043796624381416193700856012741370376916083982356384781001661745652510610161091058050933693389997217523597002135545310017925793831094164157194106125781782149941235621311462927858771514067261528669016110392853754037896896588754795142452079338297670599838307296968386333091196612779972310966699667481618623612085745842500713752627719384049036149671730847156715676246113642963224163386784405632020631437206268003924167049211642187826561330149530374071845802565088367204953168579975593284410565007293254769801279053671722784310546889460554164504623981704599117275081729340732390943805041653003602545330313923040392607575156654142494409652792278046449903520616434894927551787934030157931077302954801794508271003992309161164401526541471451145746328040479316290561532200487760053940902098691103840374257432725382621814357144358678914979492183650013058758492983123502907528798832512862525960213000631530534090432717954003798012951825072818932061449544420404481347815750233344325867692681023774109187246694259679751984072763558259108805849762007751965195421953697543978270928076574075988944426743436684561377186289416349381343575911128010503592594129834226004844879600013436101051484490391469995964116657920770762575923652970326304160418107907554375381808855736592792734635960798935792358341680149727646160405870949507392885477740630664560451469000715303253704062863669113857984267760261655292736482969046322755483127290108871435875747118208215592733302254594709124666260370460637773126301446555861214872404991255418287223021921810329886576574156926538032657691666514253444490902056917144654612588478863616026690018276432933831076902670543489259276438537057149263254737083788448283188426003056274191723542131336728836974468472190179957415946307391069287834603432779632105754698366700740775094808758878934872273507695875243365542769736879698182433492654150863882819276611478701072144866978538167200347327131215834088487917188212420153697910302086504680376583691754359430741969120062622325625992363942998843195602623612808415314767870043256071431376176090475373092519002066682448703503624481952142292245208841950153210751944296968616956751180643725259296630952198530538133748803123633548561848827331464047959448218206280567145362234526997839804776822399089792105501619182589830168712455997820476135873311089672182694026082337716895278044321196057983233341965474719687041155255960966219530173269931921839223252174884848789540231909509944264295295042558229449028609806674312750259212942233452537249521052572157315511969825697212958968487704741250101679748517298380861087620554705527708430101692143206602014896348977815714573267639484998937800829322317159987525299112340259312448421819785076205780979288071737939590005796375431099119416020786654168792725968979358893757674856280298433355130899841406503284630639337410402215622776441467209390080847942924289678512395202590744774793251045988029682913334351652104937428979210861594121293775210890062702084833267195173541560800659983899226706106713487779614363089228233905049374957144219163254504577041929351494223583813423124603349100681073994255052728883787130222129458085711242766316332625960817976627134314647534628537291104774304162411058647148297592315549933720152395114212592160854411399780397398702669214165382661563599605405010074369862544437122325431331770047585501506356712694913755940812042367329277598327445538010492858178622751333091244804992789822500742136252337131268563797952648741943928893833804095468710127209858318980449172049887900872904952858040998192921559448466273786670850172055118278664735786914128700852340817573720751048631394705728248975208726126144112988180121078556031091962550223520322001783304141694517905502302433216751352233759373697019939419490401212657170969064555862386178552402461530239320471313355359974242545551720878093650316900975747322439089022764641227902446415143798684157194490339278227635842724241465142789148597579828692262401795782363524106294424219814627871650207283662725859595837210526576272874431796295569457307730037368122418106943217564349813836820211828146516840880393453879964307513578925117004178051430255737273894610986368406144025681072901135046725454141736229362067393320795859788440792823757998503061282734745043304033188389633134782035727831200547054072507212765955672088256366166710360845054257402002886447177316257740862860019978740006171204761982537885474072207099271272962195971593256616238620147634756631722862673756334800152812262163417635482753119345925790519640666386319618048694294817431822351710364645724379409310416987452406629984829984602181569910242402062352499440947639623509803154939034744985614908024718104561136331132780813537822021898410056118858619648480265817255718063398679982117706828903169684303589294547714021184727732647705659520948008429277048771173463318021665908583750424509933653376375734668260057849871615431264274819501865187238390644989909121469928278052102538504552610841712354053818755684563326826362561889525467235111992818437458241812286583714859528688359309382026184775850875480144581302312415655861400715309079413985235475106564584015306684072350530714540537472044242553886860312095765873523485104924605472921594998782310385727631034379036661990182208888756641895877905917229564146660215656981738748859336510691659486301016930323555562380386524089811901199204562246770074896720532908805637867140231877610609904610648171998101096998644843249252967443949983680819304013894592127206851961102762942496137225345486677042192101136802538337305817830408945456000594749434439339741563293239019291780386917714555207771060736303763974910667887569262164539563804110041665675750910305593532340021089651730197874020558336102109889849817484760087383657669141625750388637091660273950390055121212075053367061590401395477109634621141113557200377695727358553456925617254680407967358234593531579716928355031966624020620880196767829494141075917086029743399208028152593696209271788858883761431378030249211877381776753367965459257018813805168667508645476202458430513458473351999536017353854193029468528696255912164385504790029694646434243153095283180524113531199890548814732177472182054763894708986456742647783193953485659074708092169053522498072955434622447825075584764088384340405638059487787994983865618233277965665440578581733780336052884662036970025256283591210188582487964428075336831391925750864372028904941252956376757391457352206351421675483919700245468945184592055305094014086715581606005677076247648725646994207656889944105756284611060652972968402374042986485799564945238345317218533592396675524149849452142156198883961639012718939351745039561796584680095743924868021469839227175482418814046557249133935616177674072656412102708838433410666460979262215609378295404146246613805573356684731694965781151315642287076314028430456169786480662273516816028740061073514049474138378266389844248710027971378664858929137312614226203579006713949282864972186852670080532876594102193964960318567724472377052255392009311825639469764557453245272306865206033389765113397131026021305263147081978200955418405472551059912717548391803539655078346475824072278341788026994234012309802290777689109333210594638992007125911691841688492467427738532440717047340799104590219586240652814123268581349753616039512118473065781545667042555115606178219275738947006282324662752486246201951241970936209091623662086741258815062857529257285664240280402265607553875340444304407970937092708588388633195548408247328841616114153633819778404738929282565525899814840851445920506413149012866004472250656001192344796865595034914566364724996756720343073244474431768428487256841796438594551143558366118059680042305424735625403363045416877732418219360300716351889514194716751259396488471241567996080860866842682977035044566893424194887080753911395816961429478806082932615870675588732826817224261867040734058981927604746397397527989296814040580979951557119724690996279740673355870829105853479741338236247452769608637033076638692973250099496980761420956476867479761747657351372640044911321510825182014819405919390146341634969755655432298084922014610316149071034079501546379352464029197513320019748516798368392327492336791458085661201816053967254717073108859202605279603043092746449962964545013090516997134451619000771433862331449050838860997670578684386715381447195372321521014017341277188774230500342520610001019516584486093780194994160504520492602109396772465375216558202181724412479388244548268784509824733223375005079831225467434892962188367613654351585183285073719659785962350534172517116958974105575782070449944642078929046687523306716707937482928049998363217674324900212927279289276410867968184046315028022829388111387795902962889238236443566392069880658489430533922726821102970958987043401710729138208933523001044701317030732077585360042482036698688455100971245747113690698204884749937307591268594620956327513871042078587696417193375909176618669976104741186275800316205662922376197213588896824247996606451431625928393125061504766008098372762448391354218798072253737906399142975738800869307994041077176695013366892690190227617979270695525272329345260230031577516032395507264079245797380811549584377507384703885127523063245273091201132559395752006578759723587027164942582021352633320197884227087418114168045811028464602896200810058371600732633984016881510660532949789461764243625675118550101157130803786331550564856432192101526907609511752659348652005513572581003380437619762066948526945445468443127494963301231735770003264073051002805787557880939409947020645546277934197599556813806572710126697644799890739428728938581220084308916889545030964459581103104354978268760547166800802126523747583106576897111525170179507814177516374832452252646474941109143886948106319202349119760718442624359688729367304354671646547978917880463574492494460472157365828818958958131683784598181752534528308775923855958214846280833046334157958569876215870013901894787563545431347077922449967819732936139666232331889221233524160945764007376021761296907479673106386505072061351462802400795827668431248750163527904227654171799310865134464270175441120459290381316542511828122366691231463242552262342536283616769830524047119295171631202705604074004104474258376409549734885356434965636600341948193326605541010482407918887157885269527141451849684738567079826411751975855859788934019637682820233979691303488804418522977502518769796027219430575700080176085992761828892330903556946328685315517281528184947806758729093706738782939183332218088371467574006180338626033042326262277538519681073435410017236328982737505214610609479692867103812105541783721627696541237692773792110676592908888386450368510819054182117970224902772565703522615442474052347167838835892077304772789192503655437970129378036960017728617625681747560292174649277129024065978736027458012719759156740913133935911779597156715624313669998124290879931417757058872932725988304629127249679670360355382059146648167982135831225977315122326677953672620731490151295962497091734812916782632293378229782672870730661906418512208220382789475803175104824838610096537601001345506864790235522931782117785057807716882102646480468936423935054094790404737276362474975029196391906860469299848289946300440724784901211689472498070363696185646215105450542941771334187627371606878785906211746703401255019066547910304368169842413621983191394903320730713519044310219251259335839252627038168148850553718176606983793879899266430487577051666138494683694697980449630826743911305773759476271004678097180952231518842520243611941475139199576631214489766122680745002333644802394078788618698630409134657513898094310033919198148945790814547278012143550823480391735976447577229530801892682716225969673308154142342086371162620145014914147903672649827011839820805972982807833344990346886047641349873075984088944666130750181303589036999764712986048606484336157677107362958034823750127263386592080050131247782431041555505462268383896350741425663081486021143690741795586955853292732943203013915746046756017415546647306876317139061928379034731205520211648540599230666802154383206802219618996636655516164901433694235043172155239061725807293606979549811706976372397765885018626849855124317724745984565417104237151563453148959249864435324879721174050691210346457225379677921054186953325293529510197590924146255716425330666655122964473293716922513275396119414359132896527743127142737166030802292353795347398128062248306378482959205295111934997302146267835722367038858685136307335724509031330422845182798974897412774754276567777853319925821099017299674065623714731344776780116638753776019775384154264858553314430433467618480486247060066901879241486713325285568700259566762499996214863281665066333613465550725655041430283208013426722874816004954570910568002209295546446280640973553885411453840528287866007562873078422612635426920961135882724648216036751077452215605090344934858125363131343645440215564684107776146572694577149200944427669635711483257987249984445725366231669033954437155250015486445091127357235458287274646529260797761373220631575628240927929140434612510416974220126430135084233520064298338762998259889259513974009588582366708451528619355070025971577248954723965366731435762981576646856329880597733404757725272035018326540403235852241566932352421051222563156216206985414134321713318531377961748999054091956369812748892019196491007437867798575343451869715889213005567747195839869858527134721964376933872585104562220106936406690532549430835403388874708602741730435309332557631954090577309005047715431330361493985298315858542036834085626724640157657980218833878343977137912786265372641176245089067090260775426526474520613634642179298056186048794102356920407995529849396867141731922288004539632782594637103698756955966056288038684447743100979133097144311493864999112810379171376809822329729146239703801876564369785749275478997723985709082873244227131972373474255769241343488096939212030367028449387905717719506497136645382701150000478867546523427467445321753911296434607443180798868963092191252544528934912416660037649293659960298478598613692126409555793882294118788966575297481163502874676260487419054952703411901261617352243148915679520913536303301935209093005403618778343100500960931287234125022024464402513078589752733003793653264026571758698192593562072233647360828762848366061837920545067935082812203772343185967623854939171772861618573956655679572864449285660389066644841410076256399716007620766949419400600335596390670436501808945649067119844531868117264461144523435947755860050276066919799316943388130768315581416213647679090122918690982209254285996672376965834893102861566597249478546415112656391869133976887002748785291319485927019740292663281430980896831260753358055976872946261077492041219873775526307835491518125999487654687924837626779946359656696251790311698062127467323042474301561522592092265866692559017529472603770831361173314746235394425324338561039527361752810048119338314006378064641760291037897082824436875615874694577682877839646939281227519475508995801599080038806874545024871962627766746272477959210359267686138612190343385761043896432388416195464309831247177386921597869988294809697846875807552396360578594183620462141639232042585257039006524870905548232131381783414996398246911719867074321124864910696548856750884543182601008207588286710307087061432230019348367241766308687441082367728433974428361421284571707873201606785188764572664264110146421361958630436052812058990596598307538354714448856200404350450844190778455491361131340982218213694976436200497286817567004887300778214325266445859470845013672518281690158953967195133719964108899264151698797844539228005084492171605194222063889478922397334191967178188687257147243232978146592355720457456539065070640266021820108802959309069271133092084717019850895654141291259152782304325769663103837495921885012685884876833674398952043728533590465940964970895327547342437549435409991638562037219701378264626816165168170344571550490925636681610733784217028290586402712581326132088359581723001757221822547882349718175123673822713498992663627501218919781111309361008277949275483357251563398996636061436055263722578073209020868108446832441700884129849885785851604165608366775660379584009743708441234149914616537749163356299498859154150353504080996519722587898546240310078889452199998255117612249346101296405737300748719948076780835900972003384636648890033362887866792698077517196348357360340752160115237151783581057448735016277329380719462911540114787999991147957191312953665748726350324852590218070470910131362805794993932398585702348113139615466592811000070763035611515139268039656858981932198014659180837602751611997472918341080546256563405947934344013038869737436710831628311475310956581878340435474254796667183118095911815654252948464857001746684551666924712740688518968072254667778210686279669569296744873156150796500332304510889240529081455543993943663417957005487534011019716664282611372581854069593458665408081848393005746072653394400943316705138588018442562288853005427462047107021405429312436778191716755403374908505940714542420153132925799576125880058891897731153494980923447769669667425860023862033026845049865542410108642517866273328489448356735890800899745126142261690135131045288227988036436710704626953806869442132234658465176261682539281232965633807859298418270394917324535360087016253094529975131113124781087726857248171441370987824182289829600201320062483176089460423906197632250066920510144014403293889756195884536443709423114923700788313544739943687463530767309181295603320315603976650587355255032903896817131772115527429845369728900986810546173182021504272572534775581506243104088538446832884602561609474376043406569554789533101766743983788724200041160918589933180904247746901657030956689496812208408068287586517442037025650801722732366592709710108493877530314259007842698278048877900501085791321952053139277219177470952357484551473154339471806501194576966383800921323062204043806875234875311561097492792465365274011642269353570796012949936680056783427060451365925562484072399320105316599204077552671885513006885252376839814926436438712601818406533199499108459321798755960637662575088359237300003902578484264298327672216412357862570380776969154992051587212787560152165413724331732383767107358383042742258802891335183691530099242316543144387745892351415115251082842356123665545768267469958837350838551192716345970060844469140144709560509718560550983140757427703896582890141572277348210849858138571791549410593294882096544686078364516381187502576739804016942084885288184215459787127681907432904892751415665395442463814508846873708612591050832755350760667999253634825368689671682701530044194645088700946131802268775953450861478996207743818383272922812767573464841252957914444203937635956423730741682112090259896631841110766575674738035367883699891863248352146593085207837270067078265038229019667034113359426379169407763782398158252707150748488981653874149513207319796231770937957387314883528694107619266266849268470446084935092246634133903403580743634622773307642492826191711706365394415340865262011318161515302318155248191102798094801941430908544673430619699064485966849538851496321502068146598652508384942282472664391142945714980865002254751080900220652055702619833173992878818881116301047559727707917935307405480853431547209242082877158521126644553816766486581985857267337463194723093735367758313784469249897147202611892233802700912334757205453790690353341973404286437792176741130188234177823835540835012572658047480092888402700229082136988285296341790583541141391265455027977229023063921665227447517026430666952034522349759246412791148135012287234032743779699948147798190718130192139965729568422078501845022240066273717819316082235029863083444343059795867782647703419855819105572163333361488396615683532846051122238482218135700642476790617677232980017567537767901335618164233768180775986761379148080867743145202147534283790961623421910382317277823328646080459838201069838629131087826472130682024006018365354353976497734403488426051590978001235945416856330178997223739486132769592977552496976264691078164142635232580653319731238389049025658709809713985938913228514758630274620185138129576663896804710446296973111913449881597346794382733494643072437550872003301981730437685123807126103155479658106691903560128768359126241109906074800034760605799043185745829920952645543482931025350875068770969498740870479402057042114702984101843846858140660053253731365668901875295256672731128068874412095896933103839629089738875621888654096067995820611253204718207222950194269733545004384198341511324271215997728756797797602799700083548455190512422648359746371245057992708451912032846082945798907325092912651645704263128330006160362576777619310611257963212617148030675823292491299192493944139771679906047716227699934257890531964475898693916138752196268619203614465280186189901590911194344278022085034878481029089618514157473257941971198959955257347126750224198120887698279603626445868353773118144410691540851364307814144026053770769770213099669779710546961050603126769992518088204936299715498899098009435432703873566871917466723948804058261696238811549861047131657208800366534138129975620253818455900925506905842956015637597577881412358835842885534285418777934079340313433998771249693678568533086022940587056167011966663911767542383288181371300050064950207670191700715165639801951588963059519750197345064708544861210453303163900953531796613525372103092168822957117597134102203868745416988697843559115606980021745349916600459119267919149197847983374006714483220618490066190559572556513054753063202128329743272573154024919254230346639344361662560180558347506620548380478580781818727889898600113337709178334101336302358459172427746241773210576384413742003772831312199592440407944047852177344096322570377276965259189912145727066610032998015646822364815924533310521600786814246916902670933134519453437091682416721483935083555802037704512273875842538824316231398800682604813295258407601735498713903730400795224016933228826195237843894923460223389960817735194394496204479184177917446708563400494582324706348643531304001855697690653993095699454527375700309767923863712964617063727374093008009949959916756394092271658691565329775079252883615351641643271331460338222902586029291837168892508708548192605348514480230600717695759511084357271262907066936636904989434737006165475105543172350480875976894558199673106246127691498989481946681514034651181219211462254543449201875015168533990159869579840328947305937537930208103700967188014134684321625459979274347353311892354536556542499226656726356874171742259746593159414270097746352397519453282579505585954721424997515708007646801728991995969032919890584364500841760400241430462953819922151026644112329212193109659367466847139594779398450884832727663318276187071207725511846454677152699096527224051842083725404500516168865246649860143497112234718248307853816207165491099379255725008668160437529092869403017762937213936345253319169679562066608305821785034285975109475267607310802644267714144102521234823280190189698004131490335773343149540308425772656390963693075988792333146588389754997195919316740538940138309351718497685709922161568354501323803313571449281841924761010277999175960970363060128282865592973994286342849041647688021407921393433088728088600938923202244362304558468140854562378779493934926535676572576392134707873054074851281496339771159034448911760360462580751021603606121763585857608860535951931324342423075028093444030645027619041857135817860880988155473379723502478116785567581906530149440621193688599785227968441528385706603031566716482366641424803929209060466113215120947767225524920026832190991767478085186084379787974763535581831961597565614330212404346864944937810139277356127360358580651136193603393688487819009218601638488529394082820955515357375489357817635801220943740720400807071750016578246874095141496634351582048878528102693546159715616256263292356662733317236220910745591896531226139939170064243326501645586836443305733043979270010189710402977558200939464438992976423318516388831350080834467882239916691125514023784789536973387061854589861642616654757710466577075905068124082155344428683686770256589873718563940775615345009859646420798861271932327722559757854649819276425705734071834745755808241916275507436882039108175181687184131530137844647777915014022623018061578514593578582960500045680759928975441853004944943490740095803491744779452103781387391788848325625543477199970096873451374151541444781107621557158980626570747957242193947858720528409005617773673258824231428004046219052036834982684198968251507031384052787136716732820956436603237047165317786349679309039582461504128896977756572294376239383262005803703694239465851091130761839244273462128011317970519908522305084036075872133422401761417496599502946129070023186279897397327324302313707195802224832720161301768658473910522080859377870771572389170641905611685554192051312808130717343700118883926627514453960305397617574408639978772658552374472038579947003524007678213283863465087518380543829700240137824983421177648181988385660690016569894321398140056472506780177058256373343133203408671891853553844391345289038452921446062263056840488548700537266240206696316604379477862125259994347851169426916970669798629386312986523705061746016881664122411191002156900160882935252617423505171653844791507033366374691112558539685652605779218431469461686955231277024149380021644043938596302745944553443884616171255985447023992445774034371396850918312044479148151330314806483332398281287730742369903079526954397031268983013336825268581347090051617183034403554532928561369182645379248585118317710679610378866226942160875635709920672576742501349656732812793766792407155033389282840616807061193781779456753113896360099810029282340011036715856887165976624925403924986078668389934457739843884577824730510738895790358585648799689679355846087103874387215668980508828602524470557518231827051724367774574481458192968543858734710459618974749687000398643892780644410405316189222887228348516745269354579626552669297879948995164534912852605353315886473673130634907728728945398768161186239293198581441527007866161858710061311564016453617758530961756216523394966345935008839170148360493254387642998681443047290605496370106506930581028982472979417055638667924468242321212822033224240124344795436113503613110093258560643967177234860872298181539912132301279554940373623981774074076512686417464689996063955509685235723567282700816948752271514149779767163293526997411750467111406138752498589771682135431808981687649140416601220902261121205805721839345605105168084181944759680588575448727720786171895875010795965301169577159324099477374235837269870672901263835871577806946970444709818706461583434934052948264409909329426299559148516296325998034317839566540149469838042925903410670737349500398121242187923552780654935363285578908049058991021654946893675475968112681967195922662552671406672296724400204401021749159791263437858897850619918461527829882526590925856749463945823013558091251344966490951912348394811336907581752170164608506361515953914994538741301022775047907671194126420898690632848374372247279239400476070438362540675851977325408527628811150973596405703518609612417646739408217596513961413401958653682090279852369089972510841830180147982373970172516622201263679533498637254884731552133882355302829474598679562787234925721357873108493395867729253724772982213604018040322250818703514313474410568636485028298122996414498760730615626104950335218575212010547045788360485888741755810450283252135120333803582449954399779950531199648737659580848585147979362188699829974762462235775751787118995825346884669335189155648963560830772661340698070124059471771579998898454609209730339895512356749289909668524128366563913482058470534467001543181278594310520968516988167445258776135302579368622027103227826057197161562092450716517554818300009793075082909014055580514840184679404256321531607825866155413904865293120472467018188298960500251766892953622735720779286376953672393292473763819365471969664292469302627406406066283937928547280736355473042862829303677305778823968191503846563118791826013022835922809938075243130487977984651236869931960455221526915916940791716812447506380115163496860217989326334964984717055086529404834577345202976839315285396427110658058161093139109340197662049304745885325119513736510551705890834660553479513956759779622470276138849657025953344539009906703244372964297927622188636372464235287013058305379225546571118682338550594301282893899913265998469797319620642616400458567108118324647614941984242449261642672476259695096925826941204106217220706027497189681081723957250181141335606357529639141034628285086740136301257846576433453753064124814274770990976862028413590874244739108116350888949608742078953890785713421151473934603003678030686509081388978605392151889805985588241703535261323624158625442493527410398252079456934713344516184354313810335473408050133690770548002847205724776155778407831201458702938489310900407663065489602578753860601894249847515132591324586791377307824826526706206399900771760577455535011939634613318427111409667423648613144761882690910640730617231298156191628473538710923028671466373256698002303756971624032628353175552823819700993306524274239554983197025301027171300553402400886114424749001429477754320527822513021846577826497733157054479638988560020996517145381744338921424264115413166496350454413293891579284578893077193521904660986093343012830561138783503244843246080743265470486910111709453803874469260087278711453135965710458883803937611164965862709658955180969864802920652083232627723380545913412263080875178635882986065356872611804362715706461939872685463377095802229016815970667332641215881449615416826833575302218169792682121973698845483282907153912060151151582989741872624239775381846531357711616042550582872987071451275314360772019593822246830560206954657113625873069929076127756486447356920887686321552785744302200053968535092389363853660596644244146968041428979413766949337941899102276383850191922680594323466492644741448194928170906852241910958568983375920248343942629881755570724076203311726623692650249000064561043730698648583529620546188638110911700972996471106440332896130148748468495246380610998882896027857197764395664517438311251435511454239001478612644267119919140054057954242635029017650781157247638714207116132564036541655268165326002251596176674429705869304943015978002957437314065975788890426891984378938620979241200172143958946120151934100318992304572378422528965726607581320827622840373322855217409239268495499085658557302288831835963563206706819505659549389639121541045378570559851544744393302749100594102403283417145524921904286724537566275578044272331669216817128789068361072937081137166946543344327158047766545332687774493992096705320323015391238110244832372494240818944019539144738595611723541721333552574433228092922331053893051215484810447838150269528646698800022382244764519884830353842131514018919594588008957139492923632549400038274615933210855022599714061926260311119011104851038818066579897262188919569571014254542720368936884343733789716660221544707883180066942773965821890157471652850585959541487863264326397114902350946310318770305609813405029006798398882874261356028129134920960610845595434603003779083792895255530480108902089431388520703197870293411409752734345713473698614580552510044449771962293273258796130271058544604273786111346344409506413244040097963393964790158524911367480735397504219251141861080802527492593007967603694551537207554555421179881762205181399197981003083910322306830108923964259578210150396464987745058554176813897198463166176784315900592983655673985345087295279861486723775517047722232714952330614819143489537894516223059888171402986099547657882010892199225293468871128757270936913510853463514186841489392912809493727015552353770569833325711726228125965833593591363804520383498858996210684199123200375950563366841209087646659802526797866691780851570487535623250891843648757907288892988922214349393903326024024637211678506452735005818547274572860341784201003754693534210798352198078866168438705875686784082977172250441991731846670185675724520708687801980189507618595024185275902270706364181326218502914602666416433908587957784131278612122839099960937397290430092187629287231723574931104393660708227597915216544991265373839957931277404001695259635418231931487354694713738850464891442132295290689975769520294573533745892152451271810004676845966711622813708283619115338029612465125259158374438147047114429274524187068907578708073169049657944190698716734140262835084769507047422273422354684561427224011388533430267465092209390619442976471387465132594239655571578167937961577841144002105076627672535468129953940710135129016920674674214812187080874372228801140908116841473856777872269859890218827214733271800440651266669017622266364644993219511161725335054811136763313689210287420045409301806263914174290910427137828871553011755514404242130413544536857851891845423610221004137661144875022034969609576658545397203600183913221076307785926646598270281057263546334794735985077110047328838657749352260683453432197837853454051289166372519053884617922070660218350025207442164609596599875949611161346194610374092599920449395980288215620038000965795996302126166896308170431356146496660214022125069443781880221930984854148373524079301777814459724875781298380356976642160381980629419772295089337552610275262811117883244784472251272685539218542598469157499704270547886378716624163957247764542205760430063947339814886816411468601124697928881176382611260884387653974567266913622523984854033711015801411540696724557380420521404138015886768624965741337517401055253786444454386286815221137206007748528525662713106026658191680001140109800352911456395141227504868223365324738715725421960792333065661790860850146628459873878137686428569879023342107593214574876880772231717536443027212925826158936155937634889926025905737230981204307002290040716360259087589023026738698657551188172871314937061188574805426411371721295954410987495151744946483496994316959508391196895899506656167937677879375724382398102831106450519045960148124141664942226104901796185886754171233331788501310126749282175221368244463526834664788043036463442212447678199620937288845163758683402761592594670649783135030774287015788305491997746900124432237789486100735630278272422076077546415605155074504470359306202005352708853562006622790246172015122388273361700516760280265670961528412367782946381245945292165952722785158655205929194054953970821974959035968469960299881215509345519555466363498421721221882821776081588155403832403112290607128439703488279390737219157856791934281475692474136918325333267156156089135655074940240427487461133188343814938902616902406039551697036546958788150884585240644385417880627024773190661276776564718916686671746399621318905006368893330374099484736342748355919273723376156186331761230647760878801596137550890571933862256557220799196703523620504605273328954136675733941698088879823150492941430363500498766031932796722712081094218629392514333695318825341013565866968181694557591639512087216422839112200309519560895685485174675804634854472853375686741566846441564730876484737244890834284105157822069047929493192579882881256905272937048207983417291674424885516749227157970629832338409386186418546065572944705694725974159141950336899573076711508823036009643471894565604747399916829595589001135505492650803340677913612317384526062015755141477104879512138221636956042818865713221261949388816048326895635651125271258235468463455910227462976440113417808912689291624781158455327809433090175190899654211516961081887892003785182482029273205366005693695041022971054378139004274856908447745228430704943457100971436500855700616655758543677765148775212156416103665208703080929755382423211156952198178884435232726792254577045332520772467727503767315610303183988729038861789191549506308598608283240145209859946029106086127348602294817337146866632540928389871232279805682040238017862888278558459864266700044467637020253150342935368060439538466178392244110290645334536116869364385376305686452738786940521606745001050907548056639319827947051327902713507767402367803184478047341573455299290212849151943551409011519614653198413220410427171084952683201692438228816531288731953414751193303831592870881601445732790282682320753235699598392241292990653198809469486570060931651064235574034723792677281788197939039187067062191485356092594657251966173985911464580762533989966881681945295655662249939253906541907271000439356530247370305873348483496539611837885441869531428121935629941505022794886968758138004333923507903207438496062782332124964660886792975590166044035121958689763760425815805083862605495394745194530762695734900019166223156203202516249751326067363693557461333150727078925557176352225375120718192499738597898956912769345798948823032606949029550593820487221108069555992207047006448438048069488532956978435346748151583782945266991924047729481531520964618958740566410448909764373149843977510771561733409479404703054627412263981749046540831931693470524076229253050931405138645919126263761017518462784763218857790907143859640464189615463151706686508108602545491230617355456637848550282897484538685858622490916498942242364626254812849190038662384180398179700314391666178756372838309268563328080958052865487019126527131133557419411253701435029651235926896669622882656249746451018148124232366023533550642005438442452319237730237309236990889516273539366576964070564324231765931159371814988066574697633826894117018561655488646387133568447703301849988423092563759438662053921116695493380396921888259541208235277230287080026596508545698697936543916814528414324640477337104530006666014688036169464086942157332036237519449054709117397133577427465534815965814255125722087264440200348032458774846901303989174135444286978486993950662379243852826945055865889623637826452572752472449783732023229630457978157269182347158810633196591668788526408999605995693688674288381590187009542112882019655985180859590071024867485921320106818269972892457623912455157365394201437443428000590453767359013265470716591476245366314390556902601766885215930905997922883018516182674532192736864758913752140178405240553647686899726535740920249205297346078729298465205902368142058433164069421383346786693885434135658936187783916652342408022074735612233082975867879220172040645766656541636760609282664952744133985943971599925045415839478619147533194470500740642898222594075590765182812994078353371754601930999611537948606936912686610937657726418642085908097544566591788970405631349014452228707032512482975622291539653846227961666213636802726259584950462518081672562161535118987752559211590203858982117395726273516275349704527880760587205526066307690205422597155934453612773699171154259797408294305280164060580205306810652791189138523144109415068040405053073546479160014710979827363330636583814509072390840632252649193460313444007884147504400082863147504474494661563866250276025095947501920230993823264532573971520893393129596901288340489621096168390734881744499578865376240711913554300781955218999769234366233369238941851206252412528788724298164827999950759056403738986222955167992148254078621710363353243868447043098435770201251394757536031730734079555352465415299543255680323983561806717882084561858300427727658105531178069689290627399776323753283765695488935681453879512203857006645283671100882847811643441605886469996461860605187497918633098995192427907118434819428106586909941514619693866177794491802889752392228068474889174818773379411156480388079155630098329634911368643248856982567211696697368834925590711013972649920959403129366495145069591135457747023351285026859825625534864131654285677876613883298130643595369904666199625847458929500531496953308014519099899216985532999032308118684770757597935748097639715621826720367255812738447687477246159649859684136300957060917978217188054364777951461636267830383016494817430776439221156810908161073440987533307999110629996389493526087663321096508767504471009434399589870049920518774787941029907628865400516603302961173728580779934309649702420409269755190322895681373634199141604948348511490534133925185728817450132790380489151454950525557571492139945660914055131185405663336805732197115883292223061792897519281284725299072261891810349419200881905695506790198513375741311338908061476849353125914368699221152554736517005718892384323336669609514914193902363423670561536009196437324200532325505552660424500222729803948648970880567589610673973503795362026206762694558115420950331424420269157864121623292686484483965098495313514192355977442219846136005033046183437763622263927929420596628812268678150007897965403883374349935454145154705939864921619028240739698815360746182434980665310776323246389499993153883999910578701115720934640212129669442106405688964439342941707019669117888066115947856072723481782455985420745455891818034431722716021964004888446381771308252011766260690315429895033881410233672210115871289431503133582672905847411907775489770009138525203296128777541493346627722839571537239766075842695150160667583941569587930375577317336167682019410399025826866406717910186330959384068982529358229988205428803619115370530811482858093634664498364702472454697229840026447678788438533358470359422882287783964372565682070041718425700782298882471580904965268260319055165720543979456519856073529734151149439347786456908666445776569837645510305839079443175911768158204500546825497517890426416516435784960737318846728798860214209475538298544659802884300967119369236143245507672959771292752289831437734534171219419640023893934802588535236238587138836640944608018423257126066167885796219677238877390232047430626823649260274695563443473710937581868521471137218165249464961311860207126340834433577912633951247624493944079713320593814894842618565546384186295534148810166691952750014350384728983462966413953641972362529685182799292721625008580645405993644936327536688027990767902859624643847088026011142816375328353563555901901629238511089557374297669258820258758795503111464749562661578139936176064475046417641522786067092899061458533288248678536900229941567125755365249750527870595448331659172322471026131151996502579220810586220888234583985291482299448386853441853440310121347261525291803022468298447680494205157539948229030598018184812177300028379614978914826358147366521550746425563483292641075046824564317499903743988586606824596822725710645875048515902928785249799560402997134960702019737462443309833232559658485942351335462352042326820872837051734213646077548831603039589573037896503838084118736312036430039793545815584077034380011360661051096622755310997350416872943191951382736738458844941742835537988053051950503802091353295147944845228910404441577930243978942980851329836359094418913158133919238835608984187342749859879421198919474545151544732523199826831434639093890479631499004941366808249641949658862920054613240295513589395530182319857044155873443665442084943065036869742823344059210707804184001781681837950467747625597390073565544601103549693144777517811146294657607287077033989560357196425080328151205949453942785632191930336890770489253188899922097416225362348236619560081020825135142949859260701809630624925494895410456293820454311231719050984244847469781873779085986509447215945201232394785799117104732832249482266793018211849154130915568570346914278559289074806526975484320486440136072610245828609450115321230215711291236165106368597662805180770636957667049455203420470953020848725470995887308271794409408027158465975828291584720925760684691943383261161858622860083702592274126862825466022480050123366403134390832928213514739222699377519240630769859717169689541960256605579020484630083568761391184966840985876267972086808550814912947434431053712668801343766448697952190920352643258581794956285337665475207173256641445492122477186706169061300065515909750790893312935260099846813170360567122183740495481091389858850447145749386498516535120579855955377525618504225831466159425443415153193267861481998551793745062462506829637844588893894087511281971267077378959534500192600507800802897065086763016048409215791960025410534053869029858955325977010471674449041391419556651658146828010699338794102608872922762849475149785158671690339283348292456080574308500670586195088940072893582289530720715100896891525405925781694982992869667984860386073097893600784650699971927915003916472980903270548362570831456350155371369490612208239659540827794860050239579637667113673937497330081919760117840580983499552443509496124680559092753458531833887817526584858745152316957873639629718760632871439663019697593250892367932808785375204458657351397145706963954643665908094963334774363863529618039584258078714141650209080301897439992116406229903729133695941548690424569811052634584978571395162424246501427681426333893568009294355508110210907384240171351970294881356128187032886264405574636753723986246102036295358501518751184362914466858350397161708855053571472863484457404406610010867815644161182307037306979344099319732443517479545442284070393124009876431230612357496414263279244608006698452556508674574125078594124644670549180942171696950124390681227424782689523033542284491707805766808831577771666545532962322929981291015320736770902165187187909424700170096192668251334547503887739491493671252446908708907665211077019800137474528377457634498442101878661156867911232932096241713850154066843797235081561630038729762487964657286461255357209290415325178681355137999913516970026821539598114201944576873545681735700168541254584446478785569280153633644094147917028440464309968176511459034956379100048611747975701444234345023558938926580659211951787730803782478937942721358435534589713368871860695060745460874333205842390703339186436723679386204255447607663141710099420211054097897845726568059754811221787367063241223642801047316850185394436891854638241826104579264826356659610538930820210705881815352612675453996250590641199395973736951053255370739968264248765171820368963728501769653720332779875717356151147372204837742324663205174936754385835328280735639385372120196342202152259860658580953719148136385306626186656793767513539946055933798678215821539859432936991952670485912126155257210140948090192201663772290035880919713626663856382086850205782595893695439533396739315491186456301136995685610884396108410350191812305891094163323520408257707095002551066100833306280153692044894066950998483524023979336514764645196157456210498527093080939203377679967826479949461669433442292444274310347939864119048858346520878318486414455437401030285271348728722839312827735140587706005485785970228860370650416839575388889823598411910803143758818267025671453394194371106063879592382383491657026200004627880017577059695601335475444158971169141601190228827467331863275091060077056552808834154149329834815423756662143803073197167587878801053998761035766886484925352209284855354280174876927390700414813758430877827454980150996362658541739188245777824630799629611888237520766817296037446060603999345678687245712205111319694445082964601074858279572863070977819533745114449240179675829610964363041059960302205237164653201257422891589912213269435170171032118798596469116745584535438305221085736613673470881707781165035246832530791792986376052751216553488195091441596736458748845592791075397413470925417390325599409992477802506349634791672574693253879921567662166108405398290195464357797379408803779523577420121738321296938103382508097838326069550400430116968043551411857794387536014007025156641092122658912960866654282744293246851414433402263997429988837360297395108882855793378107579566586837447382709712571930508102031575036524906742918800525971058874441572361079589902861818946271054036409101485691504789638461435407190300681048110313521030868125851778041541626066565423078131203110575373705969294416076379993745461663280161081400509562705860159746719969354047292124129170060588390386118915096945841740627565567047651013657790568402002996519272017530001125247563459325096724647310358743330162467133306391704162549378658405515622736189326010620877624393185255217769006920889103148099648253175390530973143998605603250206168194543414412724054909294505998841110968032741381129757523137413672757069111480665362106089749110584515898903800974014501185294248135954831250378119856717086947765644504941728653142376770338531346944797400742357353228703852568197065954817558372679822415098705017265553979754265326873676385090817214563702764403152264887024795647852317831439605644086999448770064579149198471637406053704054680439911265243695422011967511454507980611958579958415893844106961197110648367616373765606358703680237195736622164598968340981323119115818591533570670600467834986125498598050123732819165663101277233074339790261874574844984427107007095342188303260199050393245235907542137499026403252585308978625985900707258298439465673152971194685287490793246897674432962754048006805037749815883533051197956164896470098262029443599108994644888808163797247191006735741448262632607591140231509805418375883273966260258993660909731435093127500603320653165409055519625902340188584382452361628917961986839600610572500673423568417038904275094604455512782525728234941235756593101134062202934799638067189909792504645071693179241971523374242808092759741749589897617621814167393084046547439604431356357535581393335460606075476746227557193040686243819669496511308601767449916252310957135101351043340867607165737967866839657298030428487767477574379109696083767355796234766348663556292494848236007538517983249457574475719671626804377809984693076152899553637618777163688944144084750916532288164882559584622247261833443653768379861241325617934893844154656497405267642394490233306826410660350305465592128740757634095265691933387441083846373328040304036748530008742825102333456180998068034265894200241816191563699636582745204973132697479678422552945753470179047529994124303311008294287185866522343565934454230426060272738944756963791793536569579946931828351803247964399672466931057935331150057007403227372827888052204251860961075975322514097726760407888378375227778440775249131370344719892608545973078976064398017911212302898416512747518928584083540986159480465747878942064640253831631305641549752084099010000610599512447202475470688087296876112050255769881842571667752714925379324658634588922794659352634825377499620312826906053797043524460299298733854549907675113552767013390578421940332758417153747219995814614141375383270625056605434027406462075640326528355066665891555333723750149720259904651716221471667701555334844973966112277586002446302231332660724391377571600135751144235159036303717407119230286295787144368491810205435583771733150558854325813934373918820760612859989805697516249729514033565751883713719944803092208706193749638042653892411598391177910553528450700982175540482238075970890009365427818752900436110073783822172594588869313153997934799424262058972026749216575268546724455662377797861433922890362229543782446611913990533679215319731249461724210844092171958116610033728635947377751364284974798622710512065176910514956521418093124239301070931827721780116523914390156819501568361845770853325870451284631790352111656959919990196628646501961313469337651679792217180076660687112438097478102864448898810599250666552488552924501337485386044878356454960522057536214444940128271146232206065234906964635914399357648022917188060515122946289742222086675808243959666127377061286762202334647579900082449034039754993247865204071346778358280674359767886303808572254125443550963120971836406563178165662491252486464658989802722483071406823346738544200770216196948376209691757277780361256742993266796575281795513726314507653402347107960048970141225662710115878250870239130684035607763947751968807744401292857100544876296713317345454400352348858674484907700333175263245544447715570095019488473093188515677049245461905833249982279175316174793551118140662040393685187719305313943509317151988805627204495636258960380148550006368195788105585279511411604945432094893036075614059277265675784526099325159574346525336358258094169921580391061569110128102819035816074652735504274560045617537322222789278411260484044401602084639464115865159546079991043084892877573848209705972734314378735987555150514952028903122632230836062819030270694349247186588778895985329077918550221331237894104696311311547042675179282652035797747363705381634036804276503391558686075957478823892722993293768013205999661475706842396080234110367925617334344104409278684310930372433486242459065936172328010406059903037510633500892637605605615632958510277322143473686090435287539454208901683628894908795211839496046908679774561745950466459658686390339760974350911305263740058893844050356558358155697686293248186338830271742732936684630804939943378332360932106334202896361634890837954551146294560071532101566799132253816976824718172133376452131822920829043196097222131164946399202811230684637565812350948724131227182384839428822185778209380275909145046001182050804348372397454129040590465310553387243346035542651300291337950879057738452037396614526358456086342013253428524454214208854812252310947634556793581146864712967901604168667248759851547960325817280190786103829083930322251951311541359126638039788148315742149468452282477521654600212495662521182133922280342659098783101500113257468452989741449301586253130238750002961189990617341274853066634760817501694968714850181542197981002656956756119414989705841852245123886395947103919835769800067189598909378129148188715922766435206334119502123395661995803141012213310200475744933710151392085656711666556760921234934962769627272174074548467854016494521355197688209504490147454794254911578684387482085623274799884174993278812279605689322380572669066964316204707319970727268676716084805782742021488690035292436048107988326008748668057243133967870870121375111228554408848469770980929539589094143664240646319787783122495463712790450089291455239339605884582704297451894459588975087919286783746845620255000744980439998642821412796503427293402086606516320887979748992762871445907937110473423586711757739342987669290080706641246603299693705452135148732739976517484028313050095317938659956024820741539994808641730924804621992302546710963945160278171147433105339018963429604124438341068666216709484716511885417257002726961793228136424528443942476164986693563423047881888250140708660753220547193965300145313334442116062710224769219376190854089404656114752920221802729625558733536664678278379129871632337302291370035593965616617675860279168614223345568402779592063397967755103858372637998553241866105464243040872799657267909131538061937365620311340398575531236309341315215394130969162955042966615942358591680364698642969120175596391270801639492818426604329279786843252484083942208591877182771408909102703753652548126729894857924951269106261943259948338865238538248580500062649173313596233365985364795084183034768950739303978628038617923037368605184377099055711739160222786923377385080882358596188516329240686378738342629872018477221050656635005471574646403616234577894392361737754683359434843794000619417046255004660944348488049576661426005170991843722981806393787336367356626340160642234813206492145319385923607604941813975310829919212481767014131068542456475229343164719112604075371035072613635667425815034932132893549649838472548593131197295188835740511840901797988967144082815032950033498141196310416095432094165643745510751213126265800502578224491436616715290556481860866347653684762253599829591363788924363179404086571413041009914863595928699739387781722919151762329201490665891157183613654023600726103660870360655964961758680985574170187241496193193057650570871012209508242776618817006962464037590956791528064445813149644463906289927048701257201127565061636150253515762172929729317536237885458791426752082180859236492921569664152183784506195354277762181560605141815470341886063049058169050163133740561426248518712185921678985401332694459383585368558207752954121763837473382000083738470477076937629403189993685303707127324327183585543675900550233099486647278005713449806595383904174961484736209720228055269145223985683110328057161534399196636113622174177084060156720197002259824431811814031997144110333241647108420721535409003375623771822749005648790734970612133860909988409493099101096729523429879713703797104308556834195423111759664790733217729826702816196454045861662620271070643153119420806539624831361652682066254705772370209236273767062923686746948692783066743691436589215515461540834901670256960821411622662222592810392191093777329927643179521112918821104303595553312794247686359529939548373593703882548849600615313346950133297451132450793825234766205693469727695599782841919965007637144833868410618317413059688030179365803606698651486410588915918145296903789041558259809957986183686762411496234487034489957640782708045433651210147015723029771471185001133988170777670581260060105370368197302723966156709653733074906707008163259184133846786068096108597720698856444600814471351503481356029763967396101210686202400521546342165129428238492598101904867537613300395351954005812562913562126738149077449083746922585513640455946580572017813396547318868835678369248708015414762995981615947064447555455274591207311637355695796839448709319463263106364488586413210564186220568926511210941620884233253606297678628391294666838738716026738813378479060152351131883697066595527074799454073658277463484954129496095680285769660250285922337766306404196037652437518336129001020631250867684478951189102121017641192930682418879324173576426711976211079036056009778092851898551322297910652688367326811631643087646619145578414252221486425867503863193796976710966069062047186760081476859393693362352311913718476658345846484339604385969463318289111674145091382983793155238253110773895606121413205086075140353247520000081144209484685785967823981054630928007884544425257994454987042378475382022325749951539010272782784379702865169304735496479325305884661100604116033989574950732360055416264972723394188033301698030836309232823344713184062701426069030359872134172855470393079362270399368563121791332584275421598549318726012809742518549367331871812318305802987754769308912886304019270543133741825880818447176945412151901364803497071616867408714896194416338375717939184622150948110227943658095098368819580473471806153961644441052627867951059118115074993650779623372859770589727832338995871686459402893415884655929767716543543246802571724183173754260659525715770372876960502782046321513623342914517795528763494400465452833573651662882190172135593318001827448600227353722835445345226591219332466543492781971452700060213530343379830962459071311737593896801807374011165645947233680228629077260221822602335359677460720563425465054108897750198303162224799390057073005591043562075691438958531059221988250239155505033081266157805986694565593800377396568601440240599677134422098936190173866421049950161972832102157549193968100601150867704997235878785087286561045140224062698494899103696267013273577337645486430513192868149974104357763144397007090199382334591390502358157632180771990688385035611337653121527122400962126790804281135576725754862433354456450550130165240524446642562611914045170776555149458756026843340771427743416861560410322860801944016555270819838409744879562557162883434380872559049910622660558060607428408456652275672761445339699121618323478799111507794054984619177115461678225370232316008058852119125196449794537751590824716385639019978743126417130519400676098129484675912539049605290920177322979725318721101736974490396855007684684617549046015585544295050493279998229470577688671857988322832581625980806074082329749814195369028562818994669516751273357236057791023862696198952737029280447161172493934241681131215904173972178809462580747884398430839426882754418063642939196091770657378589434217421408246017281563776652322344970820166581415296973437842666531766683255307483062403661048275517392216996915251205537139173755714886539224606103954893089977688527089044356278319560286815936170760148509488779730762403201649013521753826909959205499933525567254501373247538964636876264996665169293473699017874119850469190213263180799038956089981619498928020544921384824380741667270752540708015340909853301591526490289128341077327784932353112108462827867210049237049013416441592218650611569527800949938024872144828812417180015992176614974316512253866964237491147659512946255272903962035464375246611104557202453662323023793045047737656667247890673647816728145701212941510738988299563768071001397863440793286308541780467552525268449092690040500998441830908685584107408746047981181719536534709014932330740588502698843771350706391352873584101220979138425729174169256853015899643929039818782926896945590509075496857919708648905922748238138045980524965779627347779113155263724953186902821969444911481137744474089380902944978818054981081941141699983929693264700124653279662867885601213506808842381599052612132011818968813774799041015038487968903364536894839158064032137366104075710865794936595100254036386080910612243677088616959797950928314369061959352458469876295333254160140258477927835723198264030136244844884393032156551560773600859419691993553944531655609884047822188788035068017579731936507938710758601603546395290954221853550270942443792417424474058179656582738733256981964126512806119436709882886192608719957571804678434465553876447122621792633979034849299336356443858576383293324934117634671642522974003407770484948783404806506501332476898903761784339016939409226931866059166991158964606395251892599160680666584536845203404972491995827451632833264336973536481672902415263719899571053254923613688165258728523234166321879635657096517628130887262535890451525924428760117874665977028508145419993802458087436919216845045262308253315509196381101903528790142840996410792583027477791339695524627462019613929314911932951764357061419617481904216870568555420508841420968747956972384165515085645807915370676550409906376313885463926793281937251571399561272004077806736795024441697337928276921247532812031209243970546280334353996632939693993567223641699893619032333959716644995480119201468773626827612988638013358101164716429842715198301921425771205602011168993881821289097245136705540494943626100630048852384605220816585794793835685085582902452114518937580253653316143949630105779609530889855385762136114260171513640776676510114108087073469665114834323125474702047895100608513401218725859230924927848575375905684283161830376609479155370754145180843680533774826727585467987092030344415267291191059126666937154653088484608907217534917516861708237592278967620617629021512034058617559446730977272530926516225659634382732125641634956117919855905711255170298310898952702000532627542058150805758559651396183377583516010086222410777133226631441199828672647024912562443884433303235484806344234240907005137681049153642607920730297182492283654657583381796904614052860510961703375744276690956091664481548049638615220876049897744301929233994144075679485878076936725195219217542502480120680902733456104238739047748585512626929718002636980739752179751492634007650802695030177769175430875961817014014677675096389946928130029829082201924686047899597298076308187414413003805152338426721969345759823698388374457787678466555115998623096344050405828958738536975030430060180049201445486785759294332908062995169703948337728869145041877686627635104294241099776718990869567558683257121399319837096656893629076472648990060827905168129731015133766558729419900007635622988069928704103194906443010223208764069563065492883977520967406528195887033605627806011223157743636757696832138411779545033806446040158861574826641042781136954359222475910305464664450361966576268882801502872151157523501224784651376520741648626177075430390737885536368102195424358161677267339128894222739305449781583084833389329499627743001518701900404987264444615457168855989216317361832282127165825814634920726064403250755830014256689523531463483489436288617291999950526474987351620889054604834244636675254514779691018823541840083023625223397878659934809782481285266977224358421840055307523507083559293605837860712831481551281092137319796183923927603721812143496919695847989250945778569471562232962424524400593309840388207097386702246459611959626538144187713426943773456982204204813989982249081341411381708063411777658198297076493143618731267496469416208052869478351531260230108528490267869381160072420106007502181875304860669523667832204605219299769963799198301217914779193241156421310573852690319140529686461151794958505461107394067398562301417379941467362329533395915894544137298232393744708292171817181832452106891032339494429447165885618737137416293407301258401249375920894090001153240983990882113074289557716362184834332488920844820890353930805197802499429957378693378093424535281586163365660515465878180285280652356235721746078201737248292592488159943990011019328807975322719994515012580099040756165468703052066820418206305034080374010712659332557945853435962271135184362396572874224284374940728626911160675676989366777827566753856253287856119798329351344036277750599463115879419512874688507899611797807778358635157518576948804469067217616959537771043707789936283769677358518748663456030824196008051767278043650817147023487923781564620444172825309135467796785044150213072841113608307357005797498027268842086484450180481754322320941920653081615285896924045387961300836119909243651369789258208669754485644790984392679612572402420346672917757929656934282944318003905410020496037628041046186647072853593829652115788366967707004555314103422299486461463941712428478551062055194875395291588311612541232006033678744695363818608183617949095122169162033254669578726265902280635748582574237488023486233099699172500063700731194029458994027754837800631536753684403484806291412501620955969935879374266257642053315611255552018024025494367146375469561113739773717786862169926875091910844344495336250603296663088393157554976403638006653937251872269728257664495648692260482353860887525229632657088019882533133632092823956211407988712306032228333467363361214328725107727258994958038970886353323525143329698548647014130804307623502012258488047556554863241863792964735692272431964885919660493609179186955034339648702715673306072926516432760756789108546501499343192378630713089947100052934679418484026982785616814186967704406512480797260506655151356558943787735166390858839479424470824274222162997333709561690126559486125933509338604410459991533128935473715187703878917555949983334590567461467310017685402163673847980629936826519485984524629943992546726366242145644960657293560468350522271113484366384214756761189792047629583001962328442641962413333186090298746586229184406956008327381336836646115558923069868554671182026812562605266382209123849085375888349101412592750931889389656087850572088497172884084468313657894491046687659724712342910618753374451398516182697103812882586217710425868547887725966058181436956362611947061206669279655022152480352841199203519964568520816321903032396761834539043111950173157226457940366709708491811194421941275814380887729822410069533205205640606315557278169539405078350477152746745006837717581690482598242614225323215034996952796507013214418633499187816307558589102642470177352804884011603337567324876213312114198538630196326675865295721423960016398423916032094498004420028685192561508274597197108277876615346223621394401592825754167693104511227529901058629863721586551986678430500740970499313163720563992211997044543824872171735961254116264252453467025741852383546543906500546182722293488505801639952576288084972737240434360622647749100085607553134311822928850951148834854881167888561215997840782378383964620450628861403744275599731367166899824342093786141843498712202748469778550882098071094438266881659575200206803751566569187863353815082245154765083639029195012109266210193516968669403330737729735222638582810963896416099320480228038880307276666794842994379155832463716178107920506161002008775288572322783392370383445794567107857081509437876642980014879282435403893930345720774186420840078379797979731962096997609955926487915598921277311110592337279203529020289182442377134652263829368353242256528150335501232349572229624853935760450342465692698672762724539109955474283761838379692085790959546519994355868575754448829684707562510035878397934043460257834059061086444225443330155275246383665056027005346426441907931914597676037751022369921332386441754749875779498315370395615134124265569891764866686129133003076862521588000777779177195108433364851298317553360024001735689362394472459838341366420707197956248784066414870725847933773745360315700182915408721318429710663240135001863763142157113773571547231817753570816454841274892223130059288640067969080406599303604048614921864332965928841046070188245368397074396633884203415141461911384012320802075670285749100388337381383604069815987263606207926398946225213342126120501585762532177488682807820190201014546641114515540506269684081926385138945717684633486374444637139558730526759496315814004984740746059704560073386882773045317833169110450384161575357887247234091936227432687671938852965005745333387445411243400963350734702057517119642241311545884774222015134683914077308994962986205464708246470780211530436889916625062042235432067161861138669838484836352895176491829818707534198677293831186476013408052975408255459087176841726921209085400152330918378771961171232740362556730896736364556476188993241193240262280044426516812584518997360744278085956724801584482436588791810449011744557273759473032209679895656558127751174839769424496174089988833304798175839684042742419888210206882936575314714048428175414087360045192813097969130167202619388307433839638908050505052161180129817396955487033619806288087594154667153459873865008465278786027030529771447934292493099145061934496259886962414194831709850140456453578938303678445983637429706226350972358213784940630580612889253328006696842524794040780714558058501963480792690932676390001834168742771728428788889252963343214417659784096686868146497006461051671405636895022984504541136654214058105963808005963353921665696680669683373411139878918194179769279740859746604657203458283278901183495572950544994754511091088532141804861872500197338967371815358694943002900263850800858432345253297178979358889523012212078890622024055926708786638442324554204254069399025993898228735408103824901186430991029659149936268859519218419135780387029211905909897984263902360433953079480604226443162723717959590244504125762622488367877471308650106215979719869355145577634610369865113143556523055482676677562132267773285100739016377814964126375941204066336802111499396737647627397563353863708443613656979395028823889026418000467463896534679595274930203828478595119949443623681458204558370733121110258232098036298810569787837073361997197800566926300170915833337781365117009314315287130561476452102957590647863267226374089434216925213634936233752044704296801369184873810770044506339426440502246806792576750851576766689516868504032505652365612031773546213279720654910991186899027957139589922430023863252390993201016275471230427422574876330197713345219381223112131048181470859818132658044470878372550833772206791787315271154417735763665554166406521478122976914665224828135033491973482031316153371424448279285444276987313513599253052103973956740724916969435460733903132099306357741472162072129713005910260911518286019937376167225732909918127005666396912882246741057618049523214232131993318704391307472280598434104669751791468443462321105183250739400115380535804710069745386318670332648430605676857541543630184734042005813203237495003572677917864107744916509263184546542837073997085971158006652948668191577618324166785427841878115163327486453440549822458994737183704613902426130736822153241702498097179944646816274796920226648629013572710567391060946888756068521422559703134763354856305383177656452759684911471147256207951147409228789525877105697937791543637900072792164007785870558629760474357860514578465997804161339052783279492574526286758772861407348440610939350149973507283638781620837775830661132431700786651815298696576222342810350263862125405813138697349623405848128911809589600655761923470672872370939469484626696405315266931277216670965449473366040174743129324072991499578204216579592935368366013317645383218817005824020593322822870092804763139308064251779714046688080598662339859607693588729374873167388296651032367783581197805730205907489599962752875995657295454870385608043064548261669768929524135891491589111159454157174064757423917864059209536745170015208021578420566707807847750314188589302851615894848775359296963982607630611681865146531285887679227455994231577770986167364239321015047142591846304202241588043051351327114458520628927556856699609677945550975723503001842704608670585714925318929138924989847348671795988560579292659376276255926728975582085713233886515423090209741620108527212220903888443267270700560298609822214263805965837264870762473603968831233672499809638508794146210325029920756283823592151599724361162852443460171506029507550523793556189266304045465018138041286413500440897069395343879799497487707474990859207144224798186414771443698724290052307985172976803603026913845532729450397167284594564963692910656569549785288310205703605322255171557387636277889047260229867899110863378535323319304827321759796105574242699248535545161595712785333161833653525947017925504365412080419943927349714600253019023266452016372196287997051049052014730521856202368112458314094698716210973861897201656485130345948749138242948933231361595811395934273416903922980166927913222420868804248967765435405649403582964284745301792606937951648488912048804864349342050582299983734153725869638440726055443424563818224719623637957095867549156120384023843971029460995229072098147189160191917096932802022991312885145519921865412465572937115575126310481489439475739320709754135912932082269188906331307631914251829999016151740762113388680469326698746673066891331664363835575422143155774631730891301595612945734815563932433191792913089543228481935123195868103589025445683678799891495408888073598382926793869808959281760147985025130177456521170549990614910467553161872494974215239250335914337101618844347019082655417776683809101056868658849103263899422806930852093309934173472069882649504125890858980955674713819804012516485045725513473962586980347317123817328715467350226681523750383803306788173938892677005153036408450371048658930243224726237490292469248251797756382363587756919578639265685200339670918381120398261911384113712362049069723747662812335835652841702063423973554614688017496341419846629619034349078583408696861652818216285100549726078683172488689719860401743300949206178307051885282859746958096282923359592601778666307456996294860554707229495836082429587816144350393695979613277064398950777185405939743649411231891522012539321917833996253023047268171639094345548969779354400126295008234605793733759351924858444707826072358248719735037134393528002842646023260038165133351649606811423034818664746372838087334934929705516853992741431980191543921863017338361805421800359265137729399581049740570711926686007542922105532356262304384032208397409211483274699403075093716521689337356467358346544297094835000657090206285742147504298554225905762770495370331649427854686831650863668960881014414685194474144091192386324779756041449105998152377389678037246865938716818597833210339732836381573018657883090298178642312688622668682611110511207212026441487035466184451540548069803957802128269394171502617309808757952178819426204688636032780647917718915447776199835000475117608556067622961781634239105216486104178039757061288535735363423795651788787302585213505771635239258236276289782716073466564140003667828479591399826534513823192989187731353301900220753570348336895649569083953266155545753922642794822705099631806092505087997257717806877700990473763120037986948317293913541924859299252026911891768275960169558240605686872538549046683041347905182190909355580919354317138035303406473127356728388153953527086632572841795564724853207835527660208493583555528888802199825507516609208491055117705177429539281524284427937753249483319546767432899349399301358383834534441357083982335319819398691881942435259177831535220959903597133305419178629777034372917991366672795574819442005664981042074128576043068603754786263420909885655277640551677077000303832965266220325232645940450619878318655276691800118701597005957005479315592382173567449645930177878090017333908396473524940001560730830171270290463165409579196696421527737754790306481590835841655701438788593851782009745842321727987379032530476567179246848887256720155670465678603776952091651638121889288338485903166566923921854025992796127502197797497595223810033414486329735572210681305467678105042335787346209567523773336911976767418188994113312438887238303075618078372686268807733859944057230814065593487010686277178829792295283743086102607538829199007203641153717549818162836212884212168849044313655500985872869896044011446467879448925658139705117665525827199707600496963776134918941172575902209045268789945047926813658274355421138286849108599118129630449712422239769129406469106603710819959325692465031362892479798094675106159576481854049668166616094587510248960499248853831763242066526684249301518641246849808997558515657902072946149536194425281031232375183544929179538386227276781255936742089682418660769504562345591021395621460497795574940449111856230960295715847181659380694657330327515490341426366215335993344914821607857710131422650896738751989612838036220746875607732666002064956799508104017852052717779718238265829957601013136201315593942877603067170923424332512303538550273606980774083244721414106825754810120664995460298700478823950935843339742960270745521419474311156914800631503690885936291249311142382128720931395841355632291279162453448703280863766128956852878076526128809902230310202524739776841144415234830739443190204066620296261580795054823425039506060125826426024329115824248319813389481132532318975878331894967932455012230053135920413817941193579026996687940436510159797539859118212544329591364615444473461835051871224528442122419676984949109338507897866083795253879509380583139331299722129570373044833505517603029793767985553862502011925936990182210109763894291706485121983798121513987343324034418140715428803552137259684659067054250787518007947158625937345143254297067318440477759357122728414063335509008022492493025813205799709081378576073172698901371638473180390620978635854233498942434243535986755638355846341856407939877327006543963534913847715810368759388835281233607854625919031066033914121894427492770733002936325954614296989780908304152731057360686493738299508325447684886697640526633566102103700378840822693391533795893643642282864874814487686385395390239606958387932025824724554667753189013143829698519086127675789694991057246485580763549127244988069743223710740385373453284808084155473320561189945192946774731937062159358733892676748226954106692809580491394914019769521318303108372399090206908768634011672863169041585806169882381310641360429798395735503405305986581877946793173185953613807040234633869246130732502069383671068057794383971509148394229636185341969056603771930248839739628313250583100588364011014891217361863818466212299054727954392254235187458253977567545781903456213938067207317350841743990160474082322455057042314970570504398790574622250718281038236368013038092225883390182763273633984105163697085981445121164684359351825448327588064664338139762196127294453000289126359298923159397773201017679544282978225702396710475924772888183928818039474169255790534988528829387945963318193411970315376297601236523356326567417069768738500668478820936409747797868028853828099797343547376061133495569460409524688434666349931422692324906725141295888037277711459405440800284621419500763032519815718240532086422020712387238516002017168548853566669432618018707278913663921881881473206618843423167379700499288428600124957219840566836163433273149342702746670830489451183199913865575527549079818048405593371701005186248062565020463764280478587263514529597943455377129729884432803711421238636340836841541286860395439260616440881579820944431727584713024688499743115584406365158524207814320115379576019078240393502578677825150391698418476567967737826382579829459598322447985409901230788478627282645051003580607387464294261002916971236513475308309513325148211711706940692862571525659756739988541718444931641872669951010000031203584651759088331837208099165934813531845600307003721261497358736225653444911408442291715367971605585688197472870503176923622232876531486821054958728816445461635438699367455460686296993908430589178845729735675014223055320814760598215860505761443105932293651081052150541503134159799950603964894048870780664267550770980626314027699596097514842500178061923081227288597245091030271924769249458073633258929213432823031886113857284692464895658805759801868617079431547749895363661874221716379042360734750884619847990448179848190854002809260209451345281903857834891839486337033479387571626664900708522550712370742261073098954598273192079177796966943426177340358385930511614637726132792593910028733000034937111606367980126420252501902171823014843718009621781892349410769682551765289965626597822664411336579929008796105741765440331395840800698523974514685629779625087563497496168154857344571498443412623016442981961963815041964784630354444060022388890659371068488992102280687618635905760698332450383120270670761849111983729082758837307975291971897902867012364321063400916638615281269970899939468587304079924812859702377085834817004236754428648319439673480046446188401559678299715714057253881054937795424764676280262627787325850706871817916786038463872638764465415286981693386282399046648482978201830474157275560720277892820524079483569763428139092020237342395137552481833286072713451103131800306649756952924679407968452326939566620720391113485549974527640896378515386897233058578509976931493576813603321525261603654838509943262487497863311039787965097209873954027320448775807486609224940111731145450754439921989960027505895553145191531389010674717421965643930075260611370753511273459286346180745430654198742743141302659842977215803448284704646150964617488289336881797481383785683431875773474652905233883707520960669107267630381268385578317079893083312544906150184981546116110741155300117938371074717675619817503445505369861609857060053973255342939463146507245055997533949482886207963246557634364692802279989090075035584893796112376718033089619466957750560992376817927257282378147605821990135920692422552269967912438385618204748475097381201744919986661409910906302986146860233899128773275120668206401056954350593683896138216840524226759849934047281583896310005397689917691329365912421160403932366657847347187590622822611773869349052523055606662573374877554946801797376656705154060401617399419723789657538926273014639859137201243349657538224446022843569395177005355603224956262042498368748240492261777728703936753386359856199392402284010163798381708569609608205436034528032858744402475105138470691953953316054440403581334162406906262213472380310525732143096720972697543358297793859767126157122078400934100493880443511163916362645986745620476737114491282475212586292860656169137631004337021531187753627346109056422210076146122688809906888171720362385513766140702155976588271634460293222979087999910318126158122672184898677414387189099946269889637015558731304169426148053550635021743391365523312728238481085550218514375559513213156244468456849746367894721410462256474992530954165707113750117303221854819635173906774379645884866513149805482320251035830632183692942923236066949419774886445463091398563105942303379245616977320242621141901018627901149357459652546985454009725223519070669536330641766603475681406902855950213433989514324801469024779049449683150262023083733842089440562837921454685797300896736307578375510271415582018941781863050451329863579640058879048164999602930719416870921240818218949781264653519591624533703056874471767784009995033993470705674494009980411459758925702565576707862353904326499855152367310190358537541472853928738468748631568480710518989816672985214048750402950800453013342178261189703338724683197825552557137447708813026035246806567657158294015633641063056359547824109007645784775173323424937374009939573541744965941352726253992119759654228856330415945270443319995502099659865042149900135294594044464914993117196229583735303028620974546602482648111872341435492682604661038537354976727961658128719898596016570924083650325495678298002813260461923952516521182346295412090050684765885610988067174733898630359599905891153707490955472396168581407473671619204724355223881702815558838378003769160005556371395457934666169270730139476371317922482184912266206090097544352333492750428534834251410723043302726996545058208443388356876069276572277131963958596126828958869218280227100909395004677577487249845379522699505717702675945173159084979759537628438291811910793422759424876299159759545261038508717445083021840931532843245420737708174215778385794104783861811985186091984191421661590880904091811413744097893888784188559457776908295297638081516179803295606332674169911478959784171646353474955647028057294023560374330234241833836209696132444780745758443880278679388674739574445486362696774007138112714418616066655144134239341353129157409165688756147964588090837750588811315133390018365648306392033486886995480806821405972299473579191686837242819303571852111705113148361428042611679650562930723480514953032831296839479709574715841405648800181137053064073559554184195527427082105847000164892684000491145910267650624000963036438582032399327950990305860486732962775469491584136298083908849643622285936722323649956560530661214730439245936660553718228112318189112670796696289317786115588650801619918310160928626426362169290300430597720445973044079634093139611292739226945521890792940593394883453501804053815445931482949279921011231656595894657422533052614974618894004039563418717055234848205457768883633999243586231712142588073026983422347130320612372731337486527789051591343871716388369198115427687821743724234024560887795177967026461656744652271536538632010834495220942530740858509629117712812381336179584437755392966643098126436883342924307213869714989472849060056806961791553803684229140410975951986075989847944848818219891332289480436904236551327888959836479673416819509063838565626762870475041269957363675322892964345829862906009895151414226421586297487770028356035682835737249875815091780061440654230054864786593034023364138829929869854767877801443323294386533260585227937206999987205534863010184411895197630771207598167493959860893661531436457175309458170591020111362463216788687008544173399368010763212385136465967087370424954853493193061806002317102067095355504729999238601930195011365049270429482932717307634302493299301794135056727594042045642117161688646643645641200215794591303471216069774909548333192293563493723351651528812084476927689422979822122347264159935897296839477648913417475283272436720255599198716287945362870762395651583334876459319715885363217612427263647790727054058858670105496217279385806001112526786368251088723984881766193645545410723780870486359839198399972756188634564274477041540165897529507754969495208679157100549497679643658418604955731812788021582018792195123579344964939185300037112340449628523599290172180792396405807095480542051154113127486254962243956647994632600483819617858544547040639911155730861785611546254893728335873390786745407964111479434204204660118157964699935064691645062540164589770010249363222230768034818243417281746666555367839331221721908050078550902762341565966121739579738427810222949534108513472626724196175298981447952040910541587878325702362420616914911149096919055076415690823494989669247152064660234242369972716417109663323016636887768763233458401935187400107500392332330499487589946264917398429546699178586902489400709831420824870777776714990186516634612047209504442484890649505472243185786994942919516979531041007477247930246676983819742421195243139543958504505268481219059998666768952405616213930060433586859877034000522962598562483511293668164938352410799179319381728755639782816354436744773759238299930583254857316984245601754677501726485744664669430418983034859426331703995223200967929282818115937231120450976176634328989333275120415217019788045000223634746131105229418772107514469441973810998550363985442182388533333581659072427358638383594957338111843993996799374964802600988188901190164685324874564685625396803636392752526432190495411577746062132712250557978191838844575413843098336681801242162216537652349423872860923044330498457576693648516750611106378417564782541710292626025765742890617810536649943154810882799713735627691004476711760782506439598382272924257564101757984947616943206458709908593109062170159854565973752013465669167698815465154939453832106115546651308289092518608333980124374336321395158857660147981607943114793148961349339427411254318716858651017221146966850642087914165573397046118910966543238892344774140518222994715872232543247330417158551404900719661064067151896449805758973607909507425497715807835803124090806522579278493528152216013048241698849120294739889732162570599453175122225826762147466111662737278209481845874350753479441369754765902539347611897561328165340039753153158909501885748737673269778198767037201305497699523121550862011893496676485244309675814513503609428815805112137537883179889465220675415572602906272995068501569821693863408073861994846744833439791125741166788376870712624957728423021056252493562375932719704429588950207970184538888589503880230440761001205613636850407597368996980731643155027119478424625972897275835397107669080811106713957982885175011524973088238417592281566823287718957464409740477654066543487455073544056968565538648380930895150217395370407403973025545870046302839476794121759714577535892398441128344435917655962981130622945348366394075773076437297648561250354645124950603665559437423396214228990839232171259309414254490983951514925483193043785236710465594762763441134136459302238112812440470861753040071697603494142102411766688571324839940180222703511252269662375910532425708592946658681091621468456664887747329504093766320484796836046796428781833999278072421336488371655065065601092036925783918659760948246094952868441910905941043174288462301883599800596516148823807664475767714747383673192827083710585267733489674945650943535546030943154035393675482809324240741789557002564945482016439825158067863809865772343339291685423699148024202234954072754319913072111677855444760696221297144329317494547940387396874093138881326751330905466600817423972784610881673548594133773639828082057027645892314879873570850416859275477917641798690543873077595206811355320205367763566041591983619203761945619857099513048063482991995683920052936197483754981740574851095365119325592521839354376060279771005166729048738982610467362195900091675155646696143202276664766249819235614188145725909682655375583356179067821449422612519118074619402898869401643078549495269933978935682758715772975630542491284151179401628636258290128257281491557706826598835583094774318473424787605130582263657813704072178999561127451962215846019576379281626042876881721285729810361540311630330090584543306812625873015977821400309577092198043179913876316658342366964315801567079782977202321824466051509943054799445494697528347115609280235354106664521529991991452259984040253864187664345235293626972313772697949509229205219546816196690277648976073030207791071462713846597308064384682138478716335818079467950675127761639884983330015540752941247134746720041136732379043038316386994789565223490728500952078703733696042748977726838409781998170868715483973362734421021951848412031863943020582189974848252676113221035262338713790186318235496753081400209256505403720877770804210588559573930155491955636793873513606216633907442855326833983112137957355991989103763704200067890649963643503253212937868258034457955939338496523240705327466599569564819637046707866711437905719650454086714860795682269891413053194626248350298742630969736050627146519060008512654189513759230026700139620771287425951519905173835974874846278255404898670433047407422486558549753888815558662454852082885032383861874606168244246729210482514441643930678125268152244622448867864601091085975453402826444243276771918822540430985065752706139532398347386742673106941043994069705110246128208775609787597853060347362046211215765602302000814776770660176309331203998086914842984101132581454375087591589345767004253821215053403531929537081351575278843693166009685664639167036398030949727627072511493599401724391256626167490020478849463149441887482185911973694558984141331335375799702008719097593982973583062340255625032065591844477403982592609987441937485675247939500679022553249512702954998316662343575895088135005151268151128785248775226687692363085273239644262472453289305291509430197252094438358381228256693510530850388959728584580154939976359957736920699556588931730318274941493126584520600853062997051061458383607375193496045251410924610810736266002656277172243548433246868541807597836116596615395085632660127094554281575697495132858737990207395827533401074272367647533837623640993072863947100627401771367203554312952428515490266412698793047437929271400786160601345188319378667431304636939896185165213880237881299801576969540292122791521875530936865744366107982508058715139554636225128231273535791234555534940103141185426061657491729962257295882526292538697609335005398626680136805790175439674144066219797402380100822575476348209307831528302698034857502880560369945442444204837025717547529204424081679453058760918764147155324822720901920780067290245504076500388926989930048641470843838514372334064479012150886816289974991894660338778971738878160744847204395627574788792101262494156050204201292091310607589108734365110512765976321130466741890872750393425469817979340970181895881649574680954221781066003363894154924802765399581734951472181059073007970486939238078768233767949964650788981910712933163439836480075420740882006062673280274527686309531324397141387972310448708497915046615134298183081075507417126429287561577105084598934193793194330832721385649575318306763328356340785965131479848390849810185987738073957848375735295434848592741998296167085812542243198503352457574629555234825817321477887867176931695584338603966575641767995618401308300071148852166353287027481274890385671147397821660403413255837550415227765045241536038363822677037064205096899563658090133578011860900935005558025029248604907507181355509087106772793926642534895318620429258501915239927254105292664876505533294892373114391921166604065904797853602630240474245889109541642150745780025418641953592854282537863487707732066900592321055345583417266600789156056760112043999190521196388138930490474011155452295752675027902773601588175694651844363959654220416827022819634967337169752543955020220177969223460322077481508752409710971691763747373328000580797153240537529842062958650213451219022597705523371467020685377727306582567683293472245535577157306609821462733698241098786384596050917690338367095552269774478370022253181729414427409302614965661188697253769921231852875615758850690603217989857052920255845488835191279651917545358627137580175871400652982248683997744312069209313772603050692198741143088870757288026379452061691210207257112179859756624070925731380688117531366956157269805218632552467381058880281629632838995624696012124682289421429864204250764331593084214971338385582513227982232104006197995186839430474027269479897172418327942853703787162104383567663888040491799061478858511841811873253881668742100174278209137174963600576550050593499478468160813494157963044652089696729750449014333824639082283233508772480802206415833220750695906593899401334923192148248640630522942145928413771071235420550926129658161043178062005413348530791082078712531148553818837356837623285052246767233983676568764925439494818754079978927502870527061010124079999273054259087633722952605879866194618488955356972506387087845520803112962288534323537538100018122594434976407083212032424452173388983795508319289885859540155744604492623090452586795097327830017836075897501799265653305992813258016534879429849521649113503247333108214951068024604705449811435747567687639337196342617944313923035651095508452207790434326991946029864320334574247113306355048255897900697412062793271165401402745125296500902188687840237196225948547465490781783973356106397308873867802024465581693389894789582638567348860668599999460761454685849586875607144860391865631590160249817683957762799435507634221728440003390047658429120603866474856315356856997651459611178904453925614532516647453790689504589309614150114112357969217590470987097956207617434334314517808231314725036894973106149241851208611341524217710215810127395017559652050806121809909189982671829797217520546662812510852577935213297024463056281998146793383688071092399225777902977016128078168831745799924521905928185024901443510071370535828451535941526754934435606111561089318303891063537375803836405262557874723835204036708991343542042309674027610783702477451721170877604958991534313923971744669026245110499012932075730781627858218891938078616109400320298396655912944755944483281638931672197287444612273706663812602884692636393721691302885677621934135056256017843331979056634783984074056414673318881589939942677000062341678809496326332789612851509148792625290957607533248155676759355920853023774777819352723497882416858864480338680402789730651756646734427774402967565129288020470176688414000486509131533333847891477347014060571605196113145601118737282561308917311202152864118238141375912763258931775612441529611211723868163040912391411737355120087915279523360276279263076555943736817788354128144520890704746225228853475629857018097984862121014108924343386643772665994468269016852141791883809162302183095995828395646329200516439328951932309563683876393876812359128283840578929747877052972763827493998229096829524630941219045515066920497183283599633859407751674287494446817502670124314768918201326427888677532280962267942870817962384298689354642179939066068582104021873495150662499073491306282113797117801617264620494586439505019930336912296854520605798633288231429442098110385383789082201065652276903639178099991413747260159766562273104525540041143344565275425950846689579279247524013357882539303491623237160401236133384596744501403323989543534009222299706905327056247022644980129124137455702985277353358621666964578719393689737215808408113465071017186817185539200889123443090547078880351125606017583122253983131129435760868928367446592862374270203358750389771035914329110087242866344034085391552330215925538909959152035241381454423004221874577796302312199437484578273084566034916539679792598568426631548395869331485311957116763083632713588294323924329178844460752450296167535465283179568137768071113971839676908632260545688632905286580749336958489767603836379465148381144461902685120858681023369567986186969253479044960555178074134537420823859507675712533187954947843475612026554725070025432295098543509677262948211782747731947812545848894529190045405937283313610698370947579844904334845035043214960325022626569496058316937729171893804331815606319923405212490491606332364589409781144553087058951479943442449084714541145331505845448578475682104394373426013573770019020501008686742171343916116158845380982083095036149484441397538146112384865383991282744419348337024028147804347896011961431233676111840790682239166949324574530369213714549341385912704507840573043369140277620149353068385794366904023179115641020796225204283183049585874379343300685350836705666979445333324516065032077238280226895228530168130298545248635503755453880197909595635267196912160470300343228733973496749251132988948079388587951348226339607400689299845971685773188150293530303008717228826254805480962685973191821340010034357653927159586822713002519802973578903726868997283771603055452784814276266593510256242188552826477569079057271575184063312285133817416881469471446631071677288375196526664432596700585242880412478242925252183720385983530740294352050309552696320336494280880338542925420508104344750937104514025499349805367150390921148707251432412250122017155863380148206405728112439502348742673192206194038013294434566397027159487318367843590822822628909826204028148593688441010039578643706796429198381823209084583228692549377302778685270661463232834908875802944792408975504846637580222526242053032931665673838858102616822184626232836125844446259176244839769238729207714767109170608234476272869879694275563740581216627148160985575983208663148947907767480199973402545406266606435135381644985988998246470497824708563067188198627944697959363377731903518582095517603222236416799052962388941455689704808532398438634997774357051803091717900565422845047987904380329168588421008652065212101428699421137354003371351630983072997467603348627111104470028938689814437159930278187932082504215332708115034103149723983257029428963761753527061585076253330355439288451809731838900603550113138202198885502908785890861746579305978162893086190371933410247491483529405268351573685115838420378460934686859549434844982577274179641970174161404316668316516035649520559773722572242776691917798381007660607602788769811297897268947127107618038812584027960518947860813181119748400071339410511694445955761118584861433825246201560416215907317808778911493419858772720882844419977107951490252925791279294574425140185542285776247017915014679969455759854299814662457991820529782718024627571033493393992294674222194983656177094705654939758456758438734901242489878401744153771706143547848005503830963496541951618477641528798518157643556766583615293155738245103568711217111061992400618465380761756631055486309473667569218299247031569660527460620274422822647840217036878154283330588296472138435568044122412786116679735511592516068607155666492655859218812680090167448902734860750395193618718248809087656875758120387255519726260565079425993391837317192118318448950336151132128503664739400353930193213353881133988700266470284197017352447293948830990453456703265209909973754059682792821167701752122050027128170161959607831321993890405777706618588090496040264662465464137396455705329279959723877611787770360812565060280997564207657405832126067254852846219937438413608451267763441728821789136889307223677194638670568757785996498421236597522054916414531567322395690265727615803568028425252193544163402893416931331638638127060818684674984621882338353286556560414563968819466892938999546427508855229993989735445775192029183027712363411354782670845647494376551242696597133823787787029340008865237034879629244326713279768392903574505451716017716498136900577582008090905964279411855503476326922103654310031386221863843084276567601105768828749881653020554787366519479756466435915252201260995756222519203633219638684418507816921637133869244444160082701127847840120256101080091296434611834824539502202894448918102207704483666975556314163908010347357392083642139563719136249137709864618610580411490501774779817033569590063499773256210714969704025167205674745754970334899844057180410483064941837009333860553553623005082470989017084968591048750375468034332034547237402240005370903832482529794192417049247227600381220640388608231061006023707231908138948487803863463587931246943584032413780876406501645926148760127300164250988614695236636200075668360077523441460855195016030198642533791980271853503561398271512326450929241078681212867047391179186395059571852894291737495710614423226196789262874965644030668773618936297699864799198535094147073506032970275208724075952130465003139021059575120989663364456010976010406063025133695760275182223357212720785413263784075805438184521903676554132089542250077976962933322117389392768387916502620905831127614929787465529808859291424158392724288492511225710745055761775516857701253092262119654772995839283455844294661753351338668912980945253206199143493385725752797804586785498036232298412757602963728138833995722164492748786454300038605081347318916857657050384947043459649772842056220884506593937842504410646912773294070608412087908342627541369824549978055533240253980275087341738718561986227862301358517576317303296654408264642168183929900456721014286492828606618750949276325242177526712377509021369294882215051856576466370000251549882332544242168452879092459085017559868370787920018087483431801074981297458523135276917929526956490057916646215048121710714014520268933976667564993147437295667139318502933789345983003698796460114730360255291417392892560841868915421526715991174476082850923540955199919260380337143751829309909530183951792574606293204715953868769172849016172574063679321547788196896112777410532193432432292535560308607649160895267082132348616745776535474362597092386877975320236175803140175039334567996017852416965791427348097863431186776751728156324689355213730355843838838438384384132412534992425735940199326117869957756246124360947312906267310504067109107140786365835982231827155421982407841876151071103200774656964109645348472915567653421181330810476935387459713641519329522506678899362167619559846193460604023716697318105916541938791904122481285763931301401816767543332144842250981869224686217211486190974756817909003145423196568641355540955513456695696041950049077214275943991398003861687180688408487230309541419860805216409698759731771576522474438143000453545380354830864779047450254463980195038610907311292713366388907760481726380614030788922555743931186359109140622174856646701508913395736360825956793830606832444220308205693554753211941644814031144970162792409464937580372375504694942543394155612077755734082351832384358772953257697696536903824065618770242750187421644045677200113646189837015959789156433693419221974622479522745432068529316363651400602140036551370714878393329272577235542240410031704422835483957579876037072091930909559568101054192484122799548176362003184144282690626367688853118024376749618796954172432671418241231747726925766353710906977830110107089222693873078795082685878290458430691637116120306262980819115786616806065258393184887006589092226716254074603392161752800783594111793600264830384071156194292038754551960770689383301786636881186046521960270846620214637324638786586625688256285702763644911109703272852106634003500043148290632125105529626389756003675053499086856440588339173374974496934861807053820413961198819885137556280876627634683351986154015780394203221331796840522314777942622308339695906598714619414858965770738621068506671828190472264154533684465820723052839893260262008189960821813480335748004528761587885975123999579115487438986960685654750305372677604801195971346851085867738221932673757131180706211745034604451780681879350103346390402926647976148333970230979766445279117487715534646111653829687928132583699556073576787383839994766068627392829295936202618931175251832172444848338293536574083579926377172474414724910755448240606731159010491992865993591630664919004882111516733431121754815045303765269218060045011360155227151012280101759860596978378633842996297826021840882192331614487797955831727827799568028992008381050217093461201822838574907299197377548383221894995098621598091710779944620998031187761561341731075187966453911111264298083646152705768162833979771966447640526700253710529376906811903890279890737384533321479806353245423424935552469240896633836262364903203304242072083468200637569782639557207064823194298582772334871668455224324339361423293585755300571729194105915108513088247694283336103009518809890734717585200367024967117373730524957496924577204472434132479808861206008166866927590930115838599516014763083187587584327481859071733618369125566943137517755960803831809305167148488719195728840845040518171839266770386568405990327587486865593233809413630351163592767537133033713666892119296601095686461634694123378905890119297834017799621420953498758295114806665643257827438076858342459866223201305512731052107276229983726177318508241391353626638448287455726887199970131462787974094530467907753821968313161192748192303748767923371595965146037569856396978367806278329125219597616088819095958552571342285239405294505166689994402973917782134416768807367937745185804021975316508470315372154827008285124777453886352143798241977927806699888898732951354717135065346082032163621680576883838826722734513211563620492680391333846666487656759210653823145990250373224179928664249699349119357308979731098288984223890033635819816361459996482627591288865130032069461090262472142789648658267819322338301416732932880486074480126991227933596316349509668030097454352328284608238744356992738670462400328487985278977269229638582538256016794042089274640699748826154893978596142123440242320969542142974939262968851617777976161985823325462972699819960587543092790410281544759669069899076588476413789823253754835699009099740298570704988892086407840083883511585130849968104843100142150508399891623748107889750970054715584585319210049781936665546614408329785482159449257357876201673745220521643838569870226033107800307677603410420858162869684860508200991152336690166472532752919263313762450756256567781749828669605116511832585280796535514587659498634565073887149105311959801510322444394672873200769911229373808464522939883259424060435587144054740987003598092022358246084814284405418502506247153805220479015601741773761064019474054004667178252700997393163268149293131447902719444610915797442772783159958878985972881894404377566088968057148384370771639980346945038956117997659612466847394706436831799893728508477818991212528220127815265412150495396146166076620126834766368505897592444509842433874943773093054133145220216247001823814384724226050241860761108537291911685341260491165208150596491385561876616900089623997544148072006413336433102818597296187907572099651829542743772656988297837847913411547625401350108006929138483351182619743544480690594262469346973713794309572423494413546070361261427178817775018779142218214077715059217035638671064522711894902627637053354877717845929618350753009824756214720485992917824371677463628598711480731749951255330156537888384234424879998937001496296556182867795722673611757148225347693924317812145404301256632612970205339490364993669947473838628389016587643469997923336761836227968550265468751161449384815068364673439058433039445028894388535606578980521434052891267029180076263612351331296870533713082774756225757076739678560909900171197862747265163105247186205458902199847564919618550167393072741719861600056554437500577770750075447034088349470826895246284093737826981077309826079725879552260775909991860970330062801219433374338002037485083513367799472445557939984083930888581556469894561601709738765577128721436229870646590922620285786568717597603269093385580973712930567854179833218201510849749644231060824689202869381031197438875653141946216415693797474715058295728184347916617799624363646679839498252503698793256081352859563983580796328212144582636128132220212955166711752726252567974272811233480479720740046622797832440630111859287680636977806512925937889499344567119303504979886105748406981464653627580148302621060789306366432483041274701388788918869558395750773036853367404932064006626923406420404563851006840921604081483648014211416998527311650155589619808042214700809537058591878465854878670566383253463317022919796281976441009203148193178982687056900286915309267789798493440581772498680652427974074065816875706781218473364616443638554821489005397344119026258962211875224751135028300100442272399485029127874735343177851094255769676046092631117011165605944428493511237297537234698235215957673992002003380862311571653970501543479246626496484473121831982614079414894670802276973093070304655298663437408930989618815063125764485843778592512936254075647006187504643772442419823602764552440169095598282638535405362077084357409926829176606539400026558156185248816083774534409213630220717980580903118077971360151115033502718908320620793661538861717392651707417267582957949624297643189099358840216353809307885031942216315291323021643408167872800332374868320246414507015293580579692354745911942631963579923739061221508267977302152851616450658702887170552472846010584488249067095247423428371222181883417685056090001643493764658698963930812833604238062720863139960380000138452961649355017820829019725713396269234649408125064112552039065974261737537170392285144385149313111574300704930803921434282312034423109859557045226079562989155299848696603944016727085393777095431110222862083759628467279406285021824210121414202483059609603299127832688517599344386359075589182258635117648232905463565222171402373578202023145264608085044770796608644178299182080859994679244308203891184856035021456014590289885756702041553231244190263194629782622311414450387866656868383391063574185796628876169112060609503286587221306525475582249483665035274697978338736132950890516662883277041669969629702546975958278445827948228020503250175507065436240934023384882702210343130173593558100667727687573055042297960287079594667972764668513539703428201682247304821034009435616299409041784861807415396765187514901548019324284417007688452496759041546688223021079298909679550051894257835778559334082515409718285527137296033863213854763834440274753677288283473896893941916738463117748541301072190029892975075320953842194294237026036136469816935781825420964069382149694805995441941571115824441750223043295604238834651447341327270711096486634003780420843534409261880441710245064425270966780606666571177458726099667472466896943161686538643120601357707985415554960500977067825825727407200999732526364409335276156858666599806728318865184466051197784657751729978087503843788511000453925611637496408107073151834790326481570136882958488886051842059099211316961839192590405300556598308878064686326512842548738411725279200482181850149029375714619386108270370478255418341058076444366477351481266549323534243634201821642141741830757823020608426288185470559877796020543654204627673448516013094417963152903186966685134137762414989358585234217383832101372382219435449528845532909978264262906982509128603607665638682736826282843941018749520110502398652140490152186532327479491879622820331228382332137686400724182204501130053203939520603910876685900853743901707547643838020364526849873240413884978081364688923723206284240265492922588742946134203372099163711810403584059170861985363420103114140547229932808410458536868725880764878277419436486464872389525652095419834230973150442317399812015358259538665243151046708776928016779559877583794519627982938676898809400469084282898733094866274645284356694928575393813717031441940785813384960309061484423616532201062267817749536502740457866366645207109990645270683468786161644929604229082954720912635169028779383485444980678552179848466503383799000571560760514682216674851752905327345139659144142675201349781251449049337302382994214899995495827711596680142077541222540426467556703942380268189963327137118362227945358268969618491084795389487546899781553401425210662900863088621967020099777284229936974303454938039292233100402885296462195199833898393165453454377463887204207738160390950229106990301983472336129822817897390165615124837167567423225209703455598749150377429750207553713677005469817072205455491055976124532165580334456052492989380349854319765156423699845808313888808609860925839500810348794434183521311583168042756022668701476098263856565209257118618917010646739037363986010693340365763573163525431679450805895658735396692550467043888472258719475109149491526649114258172811213864891268363433136672038578158688132278072048348121890249517260751495757964846530850791067371728319203197678529767586027388921050669796935147349950287306595603237344456604206442464803802071002999906193487048076585795611937877494690769922293491689276740240675820937911518929062167270754411013372976212703246672804966196593274930088403601328188803246318992668382433522864529498160488295346493623287722338159264148472449716826283425142127610678269034115700514831161897625072131466356872870416291244066505714647119482238681384229419974135312726863397926079495101332058652227427671517165697402575356395410738348082693702308987468295399620884502687937859324420627435794123700626827975843484297477824240995254658602470669840199689889371585567467252629650533316687317755062554589900470590408733256183809983362849722153790517522081744295622544606730218668279590411024379992654723461642031726837737505362112007350856285258863305636459682753652534506673584672043816298124755559205955948737590576603554641645602323879330201668754733001703440567278907973577225213397367229793838877092786104435868219186702385200452004030206777502348198690687263860764613138836603617630551311958705254083222098128455315826151898489957628702428763833361124540369030756903700966908003749221067477650788532124395540207216900541376205706143392812021905958903928917624457491981251201174638240935290445149024658128584430254460185055337275621177623685103622998104493869107816735300906659638538258491231744864341833215309510780425805797813640154249578169174351545576162778160344201432144019726073494445432993599910609674847453060196808550453397951985402423585148838888684956904210682592068463194793750253265853637472130086184457154582476502542969862449078145188472079317697961693207996458512380655905494354277962989452795201212338441987199716819321090989389287231894215501349817849670319980026562858360263559412437565673739409204052372036651990667133581172218084441396835252312392072517012272069230985033952917457454253160599767080849847797764307229341383062496841589800375924924036947668138869489156339890775565805324828246111062591434764950787228462736592453135896158482005007067828242390575834846082216117186723887025358362335172195592561097199301415939263732336370920764983841807228921561913822220775666200122053494084401545711023721251565556749302111922911902066490752395088373042706091580664905758645633848733038856271638386997423393095171810933631111254649113122326239038236946954633966760075018351361127995510820642143055851412452389864170471898138612117408675371698666470429028236120950723724821468027694136859155520592769157004933696829933124788763509124411021955102549763979095122842388697708137862010236269691420355323437980458351661608288659351226641706062958122204082906611943311533828425584767523780449212578738157499765046650153826285518791614346439959009837229236686226799359882795438171471043181103402001148570437469467977234904161009947927936697161752558491520354269660973424670427437593768293686363491575764260331145196827953425098686273074553655582830779037182271274099499023001224748638229478083751880194378640252639161104110706341946740447874497154349578990277395123989689248474629750043235214782572408493171789903709611709133441093817619794464703703264507127421261029562718936214416406318870839079080885581216600746509079285075271036826397517623787929787494716478297445290123114832294219983014350790949009843327799821787676265518220682937840302216204008451813912643132654361486382306439058532937500061652777284094091560306076461067069801789079679547027870332699863708680703059871076292570175274266654753556993360263600551671295658906854421926469329671538128637734101903122827850441666635118237239597238167930676850824158916464301654168073760667441834882020638485375111371217691450945485359360101452106302538463567428498551364925688988755075774396028175347307695367425940108752926155620469319492351381108264481307647147328810548138650808550395057149120803161629329457077548891999509337883183983546819689217298038571495673888880011243255163763587887528584230529371318061556650504919657494849820972293114665909227854344120658344438264028313453202330986499887836372814610210981645496497641005796989742393521760515116545393826395227525413624861694126903047852865093801547166048575830128499210641474665927197116510623674748931394839777590027727397095319386794680277178218930794685937489419153824629231523815933579879474981475532339615329279340350887592011309744114402728333142081028309095567468517114750840311195475374625888207390316387363820903700643044265737814557481373344781276348928517200600902854412144928241943896692782720557065548505146229938791360906880701615583897351946132382558959466835873607114453668406530658877887835826272811101284422186208975257167010528813111716461518265635606222241846550047870716061517091162941348656171683768833696414203349428176316522928475231860686538776189653582790018366358626692598239740414522539527776850246625584982583916620459993294833509927337546674547248875552468142854604320968596243665498459126962968624245854573699377613394362481445415887611706969706689589429476353512201495110022483028570187421688363818402930933429477326015309776816729803333176987775271400986990348613715334639857525258630094223115240136831255400493756827283332053258455458289902796835714134083962818684654806052042369421637633413696809540540500279439495584637677607871627897373650721734560216364609623864745254445727174851648968662451649836399147293778253999810098085723378393452659877278074164315323009249806176590153497577466112617137540367213279216612964832622936461554107782035970528907264357672686823860523179719582778665591357645873076480717692892875352896102064498195297675223191746566899532341591013195997211608183322835529029212770714332289240174875135813167352830168353556903840605998509927726562202812973453526595873043145898130538744019742743370416293190281021414548801329024107177126234016195822644042095768364103030810778718030975258491573074309518822620547090423309558048205358453150603744154395302257430640962183887065890612014614891074448557740112651938853506655472875244378170802099313777323790164849100033157532644840367875049531687426216969428935072736474827191845098090033847384861067850697535598143784073733511405433257693987338304432665888662305133105222964735249656318429193817994473946929633169734871199976472482049765931086717017159653488000454549362639752904742885532195476300546940733890823666434369156553263472469357587585989326294140656481739005135012192910084948949671520874605335817254563951089414123871101430475130042849287261831259601655364721549652675157769272097550884254003918402555133290372573055186606427883207295894773618312864518788062083710636982781290757067581670621627955928613503051114286823933870834292779466978614216918437483966436550765894424789056524574583653130971183220127816877802778928327751822468351166774156180314071506079302339042827104826454511990876874822286173158619437295476923456865152714514643716187888979822336266268880072237206126322496174090367075731284704666241571614132490524755127891181982600654968352278814188604764609697310761911432260587420279243031353899796421552444244259063311084176222379307832346413458485598852394513013823132390714874846922166167398265399910274288041770411765954940354366555382147199142563437673168114251547021023347467154257406589765942340201629269719401916128741173552430158982087578587082899147043365552141363161497343168733724563168731866804484154313384880423534326877981062497914464589475691508639471733776923260655450882252188197774618761421719107059141864344171131119236503463634966916581298013706671357915021088958349388824922555316708551023944025999318657135131661060386556070337934186630362735397560401743435270626699041350405551103258519906821082849525364055587530785558088954068559957283068248073953465324099265000474033851013421625410384805848717897997514456542462060178483908910648344680851127358426652276831688905989002194877033839685757827222414153496491226423366278620221693394408381161333761547295781122084864740279614951103609000296151843479326159290227792771182205411183053139516961839199976267077485950076675735958072056023721635982246915449812952200974910298324388972183921412333359240154477357195722074035164657555531472358817942849502696434608297005613008232219810111865244814772021384491042995913290565200431767433780637189444712224762270058558783823224399374315209811392563542883873724208609828198705215409488343528098280410795098823112376166382442625231859934442824663518677896322163384329083320445531881104487825911418700294030271930935249938243481465174469879503195000999299779377014632920545137563599306304468068316018196867180460823576191022689628157735267737810144199475146701487973680297939823079711704173597763852315015606730583496584601230321495494307682762651684334131642480706132733823492342871056816682655056843608375133567038422654929578898129120545025683574657072424134936822268874145240355451989123814720389070763566037007703337606200207468989647721237872582958963529071835489805851066943003860596270560467927406360485906637516725557227054799989412240217774829994170754728023564413917483888851747745713177394270714760286898464521358917971975589661353511656995341655057499468628925471891031548651570535733772166365852759955111022258951076161675619418155562916393016943666501590590608443898176518473339596759098604789863346756414501727829860993996869032268440140369567121141433791685894204089069584221298369843036994557143860694562714896483041324490158720682558135996157729332847252531218713879161353891631297686684494078602748532038274308897716233155721616340413259325420266365361429264756802949964752998494006305788437360042735615502180083294672885023161150542607894171001980451964058817811667469673310252850602150181646069453912943481866648234852450787677532779308679900610566633228125298436541240612486097167483350486143464926576006784461439154254583932097297279605503697811271504961502508895978819746676078486467264267040859880422124318345006594585121723994434737221988886427614683258686620686177104834436113419673136232416932208064505830223251423577951720764750117363858779744642563906084463996017603054839566992200889035463662732319101543084353934787185424739393586371295474215874151543957241237068052433887214262961860452432655332611036454817077258763241149069248982550409536280178605597351823681022370905238501245367267109340786863196566190502147331452293543424985699037045694503979238452624042840020606198761957375707758427207379712672549578786313768044553781965489935473482943361950781459554492720763149105009209698898445224486332469737247979045827522330568619780204115391850215828365893456365012777830342867255738366761396068215113959925779261194381632402569758632601548905449175672971847084245907714200042086854471934285477825745500789402132274410204511748521050942887874380257931493459894529670537433915863768857871178746531934994114922122762669751713096899693598662878233212643382094474559239905459021036817684946956204306864878004790464132729957840266805562038015530391973161291387998207499085365153276041806063936369178801226287135429936747772930035921636078557346603550327334574450728254147979672092592278972119513479047545947751101519639381329529781624204178596069910010226846566870511224532845560868113766099015475756202823795398106098356256152314785919015743871164755276822050043765826579280275839454923546996128443043205529189846846558188238849776077742341717535792852677317608747062537524497500830508795298737023733941101977024204019398876988723950010448844230420040434313969082508276176845649153393308166534744163063501700068581965572511847260144454809393630414009547481231351889917776339968279389043360672970514129270723242826712098077501265706625765053232212585176902745646405159203666539372399583022085065748564402290178072279944948812292168293644819419606588529093121391023268072637601688474642341824058999300336240183121870284970528418828395053883109417765459620484734986122653487023284705524749285348729930569420921260051182609432402180175901000006033080311814071380619119780777934797865949662720732719543935175801232103295623090811395420563780757174760111266810341766350640083959725605554517858663605828159484059993661770694098331620101543455464781065905253334880866862353808090767980880522490812368901752407266646500673863549267844885853541621843635548728311799527936167732654595513320624692538440433765496338661051578078884606357714506468334206065589852523613552544034173157208195982847181763685669892603079476235838039126357430108090167528002195791992047443024806666392430373684293800871754824227167588482411893717567539547907365792638688878553514120711212483635078925585027172045455203229546564013226828204676673918066457794795602920678166915873801572678847938156718185579878978466430135112774292408399451235132125641506542095384176470359841995485906561062845858324184722332099464993278582540031867600895209950613035874689870154101566087120071075707578603129412778597313009229731194933382426094743421498761933344106470922428902203231881962685174809558755818012624196755017951561244144059958598759757970479258519392204384559523113199016685626232508393758838194193996997888771694333897559720790150754360563124702692860560275867852233498428218874334470983942462981098387515448536981603035582084971077812091172859597641318056689745090004966137882373595945762499865294343570138623921530306014833070248248049138960981419033166963278091803661329669398551422134889264695217914212001844761662446082165797413277044228707649121033740784409861940297993641294379593597174481361975833372085181163579489246105527541206212694257111175183195403486974593709261539498875575839615890472100621645520250592802170304589658801264530288000227415786258579945243039981220488585465366105455662870786313305715428006516671011065827714678028824512218402491207447502891694444140268662167658600373967987518543301249895572624665975900109842434397142314768536430873953901219365053525308898466354774500110083410933957197062070985591515255440544356798005110441450127114760443864142065956310345564866894173492652577429659001715379651865789309312890298164164714833403688198383327700874508128085632506395120502113163145238947734921363627153144262889014913890896882678855624174161251887850861410982345427185214480423695133416127245775464726311695348097211789714297218582379054596386794822295651816748211258248768927232412541576204747403726969505437523585584117997037356847983290129005416026799347147579735781532218756342973907451698355342145452443470271443755580171260659108223673865392044733275094302311742598597188887160420659664434965826583266317973936732757810890669029937679826158358982354386905113757854776253134910938896957405434991659406739673223959432137890642398380948537671495073778793575359400291469568021981814235883303386270122878403752422557041686708271820873246644894406040832307043766975642873830140844192524637362691066640596790204535998580460859731847001284721962230179458296145542120064173943493954419739432365990225045960175842571450341308259282297393609291499484546721920518478927589495194938904597214129403197645735195627958769861721789307911256654317070138061144739229908383250438677242625229431012828832099151125569707981027563976638454258034257454399731045012902133620651588898944169437023330660650060562775070737284506753217629895149006324956256978539254040943303486725686523531911748691808472600780621084336651724047660347203060076405180412965999154051646511135286151974097089263090010829450870624965107748981402644717194502213748740254570893649051309512909589640773715847969233833744349242704687796091388680292298550210835181082070995035237739915655758415542922857857833640707314903401177417015444736971509282016485327071380420387465126341925738113109577521667975908679186272981743920171553119711826479863821044970528608719064546040429927846313334438418357545151569245096633434427484742018481350926106842090336291427804657951993961848170501229965487582075053273631514868920612239139622590521490654569793825919740689093705488979007338903899845154887338190018670982380718806155923543204665306100721492661445853592349309214849991848078765943903708292588981186462548016356733528847082785650792581904301218448483823820682539054117626708494879274264854694269707228157187899373164456638317520515562053708611876376566558191662397817548131578660678154817980543038201956731623721131819806967748898754595238965867809035893537701112603572829839250502363571200936776745992407988923627766508863530687145798099215016381102404397354315139904447701960042681392433403476418158587433494090385161414028883296792305300154884296784919742216511125301782765827865229929434450417310618313958278099180879156839103050172802805257529401091762341413409383441867406153540795954240022892264459970455824617153284127911303530948360205919359238189130497100632616894484259056916780884407654938577174144514854509578461811206344309651136441021137565590058963525256539252074572371378778721424044557517171664344943098653612921393706781255104622935664185317006516404771045493492837268263822079225042165621138269557701634613621025415053977340978355049241758006971511246619006381244098482439195678990700597690300356622537710121804132660721299481575488636738226789813931995239065277707662009730487189454456514306387009731784660549841146179414781896253866815364370006195830211466284887084497999575160889001185702366750704507805566905429220764131473058641334208767048832224951172294535760877128654507760725578012004473002642429588356387640645020131639913427412878653552869935591676817706256686490696487562079142054626416466092200837042624404564424579340650756896283945204893088639708900887997227939618107045158254363239075458038181540558050556819801535148483555181510407596640443180594908761559536645798625078266010381052807139718500713603723062191141547219761325918391049633070470237327809883219023286334970882199940549795717513190525354130047521391608238669087789811787759898272686584166682506240169663004379234965468123778735128230890949932472951049967152310987374433983993921218313445423654765186415252269433464522849635716567829533351732197498301599404705516900263643313867649311864503908648045594023968541736541165268230920689401431208143385053992927337311938104818460051341190557377943283684945300362949766365062706056381695290492344407474735490898164622259260948359052216421123632754384826267539512392175218543989838312400259510422331885101527918295253314007984257368336690086170647840378279348115356527738577103562520561265472597453912101499604711207958099437691023620443341507778391227415243093300173385747628748342208968231741944653069784577818551485039605791213531343765512632753116868909062912245000024645494373105305200670172068402689145584617275972882259283885608930422089407753329827320951001769293726638763687272985035227723500491616818153881234992960426748059729058829666714621934959259026662527166771459957840117346227474064420846935685026839944151600667798712248120863255355543073479686012301280939090036234246064492871511783199258422562083953790200422869743997822711727605685002907006367246631297813610289785421742172259133207135146061396530455782504039325502909338177844051331376751650336653490073587258626801426992627105877089308390905438913508529389744705174078634507344016471029679365912827366223654618968306349008054720137332879917400014577207648664016102704244336154451650614740614186740396118388898148436752124631461911805929981623117346409943946378725972335191128802301657626706334113786554779801390914258259699850031354274367794439394109498363081459075593386041736157836878396230624570487388040862684814685032896243708651600797628812120531423479246511190811946026536487919982415927989632216653052621849036087063607336231181620310732801553172152674591928241116985716220011508502713421775300283037614732408909074420867574945398629741306236692833927662330173690860570505426397503212321925636825498658168778540018351695192946699571533469527202427372417577336699012589246344809117821184596452027215186878389108881345212268098052398690314636396082698303523067038534601889989691916854958174702152245868382844175867492768739927062715005125129520540104225136587695750024899848678078495706395416651170428516890569169629827122798594359716328841909626465593116079750708893454075221096430327734167783711957510232127419173918556848973314542631454320081789727217394416497581766867345068104347167711386148806105756294819901876082365473719505621053396272531786897875152272720263838755872849871226074865158384359218593448187439448777924026419075121870216920974803100287730524828324044737939380552731718018767381677279138145313656215920574136400452725099733525779285819362940265316936605443961713700757721356991078395320160955466343997786452466134948785570082883244815607445228573759466756561213451791465394827311447678924092972501167731341367500268813034281226441825368576327150850878973396303041698972135680907884643445490138681852425260529481722255994310588458005505648539593047752796037244875428870801721566081066290954735077958103770758468977942658294300917754111236665244344870189300551749931546580405815631444890677987172010620265109144504815492785063501188613177038694510681375553236597679009357562332349569763559004068708290114491343865339966333610504535113557243144344269952779671930207656963605180501283720715230846160550098423902878656645270413317870685643401857326652419790645783212131876009109515983791287305285990819403452692417640800169568890830075906152980557034918574995735925025156681522584461924162778320787417623809489252632439585877874717519930314749470424650578652802877961242708115656870489746689498071885576995400614215908493802596616183288371215902490797973497907523940692908884673702031597029808924077212952402753725464658472746177275290334925523165242788970730883932226399065906098452156352804677534845709118650505092029627539383458762180614354703023195386584140816539872476354332529837181897075386624183870900456090762015160419439952327914819675304502287081753090235365406379293757813178392879791517639391459897092988146838721503490509921812845334846508411842727601080471933181426609186920028040736532357871749651672604370791550340179426513132291342035691620558004560658443028729419138576642356563525793468290639622466913148626359845438448671589154187158317698924292233505293144890894606354199454674378651461842781338653156981977762887237271970067546553391661829511674838269709846852425722050692645477407510217536855833651689565945274613514880231998545252372695953180396903141087108105423980087735911225054999026650377220742126250887315627989415250489618624215834514440641884753152497933060586322699799570489898560416006245408797272233952554464617695290542296632168753242303597508953903867921934905091527754997361540055959502565455193337489692238260926953281909915975931126816188467432630643386469163456710484464142374518332638367164004894735638562737148690774767930434253717574774983410010703199756274163788828540400330674531072962607335081918801429070829682914179185122924444680970979650687905795976321176552448166586719739015386072727606145447606987738534101607786443850420910476228985474305531153953424284299570513117722601746788407593793472546376293387476736348193083902152963656847043568904479571234997270579097979602062501369061392782317498250128838081443259495585962229604882728971448059863010918550651457329740033682332365710425503456749631968087089130038143583750987543512618772394108499567508597129026181858471925880827780101109795647712315618675087547425047458120704467292758102469138009687345226472273317607170049215148152886056381291395778644763531927963081543460288651230025509770938738403412966137394018948401763769618459489700553209898333134554452045959517182372198215321019381576003312776643569833941812837712565715817217436863335062330045178711456139760792792651866507604325077267383407441156467155130216318561699628357091652233520285933131330344668436888445075386673986814114062910599490778478327694338632206661205831177350653264890782991881169822640089471845422237126979396234294586509864099285059382017835741089608245319454108787667304933727529864093688164001466573009109072136755216675143645167898696372117544387321464603375225077610302670799864371052379249615736220086470040964921918309287753680738526546660418877295681313923067061594443176553102442245776923255071996867358615196479020741666206527586541785167031839137602387672413121841309586746447513992412656854722452855292105428524530792302646595873673075337069304995664831664932966881373452766101807169604059702559342186095985368274569950989031035515014204987270967101885696746912816984793707683993001419162611499317556004296227730439884954676933963870345067533456440630513529476856486943223779659784549312832787592450982462576156765195158275614162999864638423567664745449627268128314175874634694181784329541152692009028414705913014942357822817821723558973688727306586130320189162978213695895764959993973596938543679174236025361369004592646844740596216426495807631487705246564899426910713751600894402954358508338871300533159560080285846319722303265805563678769764583828837407696833455435684745652262992983139209253577949318404282552202153484873780058306145429633882181435440468300138036076914913246211401104752530122320061067298729248799751175457184775132150901211494498342092859195679540931196738523149079396480840081980983097132017606951985105079604723017544909189152418292780601909149789901768277623574545029452611681971047414618429222221051507060427809670793555252500227736460934331748366162151929384527678367793946565457826985713231367444950036583512558250215552435612039765231211376854619345809797116347916044983035465976781158878850486756659117719529198428209730319987672243317692666723111624831679605167186729666501400107568035905353466164336627199790042410353854814684723444851370306684668696632402770298677278836684230205610905012942872967569668492856004260996663386160060367201479603365347277195340519668738728897576346822075164108734597577094230062455214527237747658616697973507779404438977934702727487843110811648261050514320825519277519648745971979262699263405634864650311826893802543188335281821077805595700806743560516057624110989182300864806059300505902440727437857196992876247165208388966354700806327735883223652825668115472387887939075946694540198606490795638803095323620128301345495043488472249683502077233617816561767926307033066541386158674760587587361104063504488892074984453404762197883495752266682299914375159455264419084634328680118202155600396431250627435024259425061721620419440342308827549018651092055911875214725703567585089949142103725811797007656438324969003448408195394873518245736360745937776394145668636547638092828284941564447173162636498849620277751970599257492912215834751977909053984889094444791928499087384508097427004267524937548155533648424840714965372614173231276458509708881910554219948494011013964584105461259238698637240255615555138825230092620814447475439987277844946664816479921401206216741016708533082230838755676937345218452580629972769112292818884813415737221765267241822490493443275879139500978101642697347509410779701881952617200546766374089874885122781528922356187621437655420839710967842066580925902782605552229861106808284452843498463179795629816379940561480607635390311847898288148459451159946694581679956274561507668632907274428369426906916922115874945867516298307131186397416399932361172629823132587054137833808839217732130292115350841649764251326284999849203141538387185458554892892449407336794150830781782242683298582575374214028006632237973879904368312475611740587422486499527592313935171252431646612384088846584794529172692080127373782088852600485165536542394086880860540096578689182072940410384952576992477891733173899654074331269287531901857926251339967186910660689468524701698829637745209146269430938227217229255937241114402848133902679689256180864550957700836869694809275142768477963414499217025039056252005985341497543277808557831623269423090853906028596473672037964886039604718582257264480764503254399680155185126771695963780453501919465158096268496774625516468212661402723360254609222601041798479797855409101053712754802387293901425243388782279921099166305371872177336680582744553838728818888502627254797593744136193367836115538959921584489383415439201695922952833228853400845491946183286910999728276413011060050778645681531694526936758246252731859704501400441255260191984737006446614975149029886263134391179091059294933741289267160488851672294700661329056296955030990812636834486060267321461803862601252354709319729125983360129401733389873842874344808219499173427689513851353328083933283188102427865309776638125775796251175926243483478825309941165202716861360803519803735524538779134085287506593990143766307832995712373128077381013537380060776785532341248447969165305126659072206830372147374588769368074641994852740451223518196807367213296337313518741198029864226039102807980742213237439367017739687002122787214264927740891985355996952225348424398123196955292916482698647177501218908846824838965810343972947277261116891119223042145150756127320710186032977599231978912159863847647771618692574638386009448858006952303942147365259661716855420494061878751393751594425557417271886033178150299306958565844667697287925122612738955291342396991616139001013107234819879518218333121617881951514806250465810487434034994126144163158468148519236841037738417779455641211718345328586874886523424813605586713179497914240437541257073952555333473666512849199735301276414074004263759373765446002718855455619773501105446370411408119835318631409913298083910327074435763480718376619085068794232113241782824860710467133237751655100724265312431973033981426984362360463873840040564051865543106903442798713853311486310532644309816369801923807295869812533923660462596267486420612718412388743474573627543419256646850444761508961624170091401449987656410611811088257071281681339456989050017264416675709369568430519808015932808609009106013911156146836109976694863231785026887379316787353021308143393262567900027579849106164486322331525454933409873089480071222888188808408979662186747075344274613328525163287385476015547701835594642939240424803804977870189166210296929485014909294793960618157444939016243131278062614428492660599835159116856416294464858156480786022959987431848638796768254443813638417959705832426984493737107878460350443711112070040792875547079887316576834450799900387081356588905775975738330696250726281535273315443068786123760084539255888733370033470698293819143982095753571363693938607748443532722332605530928800485892516177404241684198196944874000975476119035670614526573918898481577361895452939281758082543569928889837114238644574609669916233919120296171930759134765146958273491454602161111634493040062459978741644353240821612885753435456033341062915654156075162618753676577733013863716842982729424465805807197810510627610722780957674430753704257379169792564841647756798741846831117430648453009839913091304771032158789808551082122859462866294253599829241123010042866324646182270088859407097385759297809424985623353552279132123210509582970467013521875303692742352669639015793996932060114225649370698727332563099482642874230544247475835423507363338298070874789025938160939090273114453988711996787764023339896240651737702295189285434751357754796336532351116604316508059362482542659972722256396140151419072285159704761690705025289707167482507326249730961505523250874538568672035642526128445161846948287206885724769001555771977932328284307776241728415008564332645749093936835601768296359658672121585355740921486379284674768215172502689194893349229853271212511042243210044940075653127632892327339789611786769522068734121813498675097418155755593161671431055340488002414090627817326104409879615287690437842799740135275321174339410045676995476484459053579030801232524728306240411331544867927234015987863543385109504640840282861120287063627454676671005548928069117677733680142493985050712013362496714808489803860426775475022888245073079325120742185101146842304853647983434679910606865291454163890849439070477815967209401092224550393339085891540797696983119732146972353549842083759894188049277294473881068246358691148525755470153677215943029514274302817635784844487843143035900856454267065450416187018171354993826981787616457495827580509713363946477159365004594636491020275139644682813700547872874066572426806916852704895194426584109800155139476420176869317010544216560054047040243631946445194992922358838326228953820165116471767165979233077875882113020404553330778333579362704696220183136651428047209329162995221120549658022918074834605636531614513977918808081174498435762202709285267232708424954999141511719688169147752860040227225099005541400837970544232895218994782819066158470120785060794847278955799129417602680561717959839856213241937675058138291962390841543997275713579723766230335662105833860062338526965671594214072317027528454974343615204762841728930605993167255504059852261238907228686887204422843601711528035800741031789766820908782698109104090905010831002678675401598052340168867702724525432500287793230655936809915073486554388099273845128185687690046107809460954667821576269396768283542649905259983831160414856363176818703230691482583314432959135596316484113631995284827916207123808442886680926205690096394568573145831752750520051609522285099519175115540366186799742247469549854418210390642135973982946391094019421272716872419767772509327831591637608595505755429504148989788435164539789274761473204935448888488133050449417880816288514737947845763790271694226780402317774694237351278156272991994288278050093083091742866734594873068247207920550767315819512739792683462779177176021107663426368997429951671861411140761449142195630355236768039159399833482485952846529618301405965218661679357705263645072701900090146023415389835317026864101928279205566320184523822620890152545446598510469916754918598961273379912998777608233813306796580992003849945596569337862846582203190129314169704501506751882301983100860327200779829525200476053033069197060428643850160998596386914087183159884563981238911354740953536581975078636465042939213742082251194429751940895914228075855134058456855978432899363900227626448181939103558839790693206142012830464929200800036544064351458407329369578005512813261525996197234569797899749798156515552880056809720815633520373221543951688606023739080477522823549397300345827416109884986037753538270295464293106260817296125824122536133647019554361905896204401849755872266718800467507729633506318741716873750606291059970062194258987850450481537150565615713421397176150180984303517659675053062942876589292635061978085310524235203656230109580055402067107100076957928943701206761460487002314671173533344285955492237707466241382050521335592137233261206335270356121063360176364764958711780192861222251809346388542163598081183409113184692816635148911383040975108444958609106016697714418681914559869955818267823986876491093141654946493004560481851314754743969118642153509768639213733515645802204270833484877147372143980220025596171820345904259609289807670477511416312901711001628062479856207068672600489327933606929389330148808396098506872554031353268490233141178048369389859658831948186003826278952364711821381818403913560786523587690903631883260111138191452164160020856021653074757093625273294054643662999754720024753781818819160776972020146277413532439893576594536809163070668444170571903014972248647081941027634502107942264122747304692916447548583875396474383148988858635769331857633353861673966326081396528593479547550887877624233023404780412402601404916926436378005094978672714532289859576589785287660994905936293010178431622889240751492904017114746120028261031667706488703283776643628740136927336704411234953307295732580244849837858392515507766289706981393376756428534385038646873479979120572511926706861927709696017747541968471648899533963299530595676176134077899352152705416144985990170686843886345698915201784553978062026846297713813793383048417477110182664019460121789057407345423343273392884916418955451223574839027164011993725264074863757626837028263374392940465301134131030693133738256630944423320000096068773226102454159144229106914189760397320377295197054689774101257259017078263755577519200489430115025821288733459849292282635293129977941759563383214852243795111332939945439397187236646629312543753109355817570589123204638022898040914602464459449163125337527615939419372594707223149428378049701362443105111962596131109445679053594377053145758125916231205512983787333649538323122479546864493025105370726518949903453489059831254002399498953035042175597518526444124157197426673322886701490197681440819355271906302605381464795754117413974402823056386299076158336716117718147090181730051499222146439119088473905360601300478317966627423978793052909077445422871635542071212657421021240270306317577178764808129758937707619468160862023269480111560931917751670732992470321181335823566305800395879356115678671034529792766351308369872757132981907755096863180894181965239195992527717695127130372285077850864162879350091551988640093615067508837385034782490525510531283799694116463779286031734029015211913376300465581439167308028619841704969115703506902052766418119278915895909220916492801828836056238784521815193984125314894161167368914630807837837287133355214841233118509654336248546484453126852464387293937479318708645912469297762514656302237923871451646155242470250617892886673457910398840881960284199048018895303307628545623062262734770698283263807953774401910794188946661533815884594016598900715761296385091881492392073286431472664187674792464243941604179973890915813751590235671809545429151147672896811198587994530848882578013115282859370298892853215558918647854196278303159212205693492934871650778229828316009366708687058931425249025416049381816702979753180001767196570235815122622524612024687521006885994093321323318509019580204861042905380856648719828479117108174450634702323552046132056750780071090524782176705384097234054590796468095395358677919487933395741769811691290296881954166043167550822574176894034518377925007118060839028467845952262006286873755552323253777543859876489457556284077162232081005439802084138472763126194420757642354812985456970666623171628684308699777647980659968828075461415777944370906468488711465951425736735548817399912107411668246991959608862849046839403768196360585650579211586614495166348245872978889353839827332579034747734916955962722543569589163949832951632358061464376222393649167746195544348620189634419296709269139075259446616943306065051838099981737695633621303365991397000390360856303461961885470484447421410614313728882898289465904690215049389273957348557827300364987921694934256681300042430987739977297582874413696292099033280807827184210047936584533399251561385333673888677086702317971957834261308239774973905945215110536319984757195545688985503120241687401822254186964557311354424018042883088369705094852615519892745832637795235975293109670612123617799696118420757406488004596180577820001584356193621535351455283982983638315032210716650213534692304882953316072679129145941477155496035409897239372676790546580607376715341824306998343990436753144572291534501246580603238603959349116448180408945940913605035358366496670108043051126674728201865629379845225194510665295915036095513180893666701700994340758129471542449806954440210698280613029000500185251676863564138375088712819577930291568492192878145888253074991488457276009653483783309159925756885295156795880943275368421069366440915824004425837229132747563725664627417584620206424781085156283756801270203436159255745410539183633780444545674103699233465413658124395550760336312638028401159947918919522386050787701782694731873699367757790094125953621193428179387794087969937475526590588857787420286427349746711963693993271515884216039106233649907075875864963596969203788783419052512186518124815519761483250021854106565538159911931135102356312715104551282215085468500418576558616246636026873829434559113485147936622477866443682102347180899150579337123675209454301007342353598868915789830935967155760292733249043484708874784232614392572585816395732027877576720890330319551917512958609132346606330911740634951905130947268650147783003689915424277009157511151666395581224919570735218474446557932446461417913501174131521171526917301976812199760823087397224001211486615842940298384337699862546900702944325559778637222212805701817563557026619027231394989402661135923901817444119514049985939253447825093558194790446175570682455474512264178727381152828321394409394675013921255628238780275166344618419270339498571842250390435086190123587929720254151379063823507547150956969863905177249640943399689431882034473116312784656914583659112105366968032686797784587599148481036251898831574579950381687711487405873547168453191265090995081287408943283656328125562458885618384137097253550031046912940027556385690914134592648294226999722923461393855511013986698936335532563314578964636055501414674209306352690766027633757654045160133089337723908237761529016962830736428800103268709316678703773434462184846816578184422023398718939125981923652951705645952922488031282702619662264220256172361574933260205895268125404535626875321093185191851929696376508088682000980959583141904544713636756974770013418324291384749318406073276985128292129684459438860342347914829696431780587456714080891461167142661140543896903482770034732362470875098154417849672994487244849563057114972746100602931690287164083671440588081301066665979304884948100969695319743836213525752456501288612482118304547290221192199913813022577424118461854469257078548370801069440139781285191561958994943431118167235086530490161296498056433225157474618885876782220917664611442956062390707673954377705749030255860472618044684906929393859002371387208022687888691864049813241520491203354196029507551618475909538873222361213248924021095354632364399252724062486717245788740618421242832917495040313226908606700628288518017382079473908229410882937549284900488000696122524400631994232010470281816548626005852400391866213288068027996271614903074092237228948388278718640678098935439510642049112307913587468847849788017471533846439005442048716505074613801848644354679960999629586344993258994095022972078182359952522744306643474370335397844749662871691062065986217161800699379088955431379080906038578516716968822142262561183802564476697402166917567080155690247264134607951944783787871644041701529891868743799696334541969667196137289248069576145788033076850960816786431195793594227269522011180387154105637610503985880733190597155449139588841025300913036790790182623290239821869368184298960413151153976284572225070433463065345036608525515221523358566172487245956200499770925304576048626318206083374307109423050951922631853584638778249581217508114524754213602175659627788903659509568076623841044399931657516196665123052619779547875452081504925280293861297939821867947756009134668318659037695070522842551901717955091648446060027721628121890036274219810620837277526988139865312961931976020097601546211460517369858144023455491236530912733037249424224575997985684735948980592222443742896799984890787844194635679295786128791571590965847255243325103401627516559497719585599024043098899531244955849823947013329567366659842521843594978239405875659473213504609096645018506531251187420799151087876603979646443253082871332460900698901578980306708726006652129941402294088313603558528873609560502488934982041067524771254604779247106473250882807067757712339302371681196805844258380839056441041056199382972405113969044506024886142927812794857952194678049111821851669419125518435637378234296259579121406111542771927153789219143038555047064590439865164651264090639064688614525642045516979169270939835272932367292529948890266281840029396146957280497929940975506929874832534741664025860720444091950398066919713231928150201452591515136963325292320660785551926881741276923299442074371294176270406019516727352708543343628455057352503927303533516171894179309492343044409398654051528762470982687836197396057446534206350338425148969972589752643358198625124486892704588587744863037725772717569702414353419529764550168500485059123862517757934797144739032132249140219408740559049063084595524646919993849089468262455196869824285622588368767499605807153667008517895385048454030325245340639529638958907622911610258667114480338198993067105485684668271488661795225369423165061695956274750177140761767059429028782703443415281420176771249235440960069453821583776536589732035540969295246677945200040438410652586635565384167190253800703832053180667190011987207421557116729843806044511066259679889837325376716654535074627685018206371982097106588556286217337120660956968493395150138000833457103507831662748277376931539212269606458181847482195347300657350932317315129169900004779988598648481709047453005658740800782395094503744812579782980364248150417499990483144714010648856304776373148068181361860571895502947286337112559120979455293321644414392668978987092363094131031306700884420670391213349426561766526061217662770191469631686121007296114325754484929289025691458766047369808026521186875961714157209800670312669596662508215585226183460330015999540773317104867064303376634579323423294146086039421593861568265975307135352024560177497682507603610649026341281892597712998987068111555215623318107219113542068247380092044099379919181230463265912680398259323289218241917692661956099906812811756960800580491765229487941884419350375916323278481205233586825326887040582425074362411558876740107210138876452268183773035258979633647921547417760681998659464489552930195956991617974469380457712547784017644980573616211430589563837703728676419662303768973388614653742294274128675478518935899409616487233147752770653714144740600009320668339699540354941262180355477473845648380079394193779180951178634325580561233554798392568347202168614451702922596260377408271962650083056807349011483415522490122019416617597811591140871318093415568249498942879197180911689746925944498791912367548663959518951646027578182231667669850619892361536538786133335317732108087152304568303652870850007032448076785484288718529843976452163521834326284368041255618139592142075519819362859132515534674430527193378924533429901701268260288380042334598346834107708547740374303903219286013026171680147573110232884678673117285755776029042245373003533531643483588140757269252314017598915207653117853545804041861155318299676274403371344115047439865030782697509032203192883583327165699783311485766705373323841616962398787980127075993729730840316875006934238198550184245238959911982214365816515645977600364152976212630183587288676900486091782806951787864681781547645776426126968984745626074449464179129604275469444375459213399398921504199527455066493626836051968429461584172025084011520775670716666901326309246409880520917397501964406495531585927644938956747134963811004292046767214217123980297457910473825679711551995829191050501003139145693813854938185761656350794802041260607126748471607409028763978431772048607918687111517447740730555312468809070294622285359521383435971473173108099509943353102153455861334298203680158351973748649878181234305616503761947808832033537591705985673478214593371508929763396455262088384848999078555978063142603434591588203082437985687366414482009579666519089692981149314350862712712889999380427975631810907796572184106408908239586438014519018485786428524195478289443295844014891504196002681742088192136395675916935473619645482656862962696911331215694040000417468604760298271222594243204059347424079949532713469811627411442936275580858121315036843627736825885536439375340868672813758626961285469054375612998691898801627880941380645847326769528011599251210576008329375817559961692687550644753057321383284647582851066026834917689879625672810682556777416856026677751007256191143043496801585810996983756909872015083325886544038500944016152144424419098411996705817859308268167762605890751474284003859037418948380833149332187579462938822844171820954999208769371453692714292547154137499017014962025900384463136383935561156424358849840084433011838605765989077367557065015452016031978863663647893058462275627822082051228251114911944083263382061743761835643209877642472273803739222245487904298896962801378286387516579949483811556652272871526458274075632830820502825145546910139136998089398755217940455419610263528179840707146186098825117999923816248367218399214242739937310931462878094482517128537994149693799309501980197743770249433970587345230664557405460533285775282054900558872752123596848836261394253068440211860302001666485271068218404488777364724025816450051419664679922530532940296440690320273245810094432762431613386915785362515141056517676315315618288399160548285642371140719294845021350677031923656068942144307166540916574669790688473370596479380894956814713868320670319717450373082534492385531445334405467531901135688168202599897987135221902824676601561527220811684077050042461569215559623111771024453982425076454809189067130803248309258837562358399233690459487529558017004918896534412979636236064151551272255649177580185762508533691410243791518402043568235148803065113614793779447218966254780765998259747397486512575563720624190374957364327644528030400330152009355620420821597738980097711771677077975871909097319052460156685897859628262024545774258497743504321654773052737584141450487575470932602821626789362507015367319214535601678085407440582652461063486315734840026886391222549554668922142986363883165601465788936444055005269386895346856711519259508389644700397015445572558775156962017896173057538379144306795593002170157572654984138642877062154899165969917252309960264291024812731495696481259579046895158233060110508535353172752754776135860547492192397327158859160471606884863389873621636613132775348646100962547919477814659501003234990363816122577782490688247705911653930410170574442480280246461057002607883049524402764685056068386198919964371211545461519163375772291756104154317474264680150319713181809046813072408744967074615652896560578723525231013624381149763516410971160836925944061151556553100859760058594591519742419254525668777287034552259325556321328473984811293384687862055384480035263066940614910529519267671119772051829472537234105952841855918852189395479470418025747842134887449081242452833515164326833136630056302038600291397962766911158027905676226670523274715536884290167249786223902731473785677471176740909897847155073817885335822422305069914574755504911205596575612811032823806181056778748692555737824330868385963162442612612541502962713425768642736466979129413209516634031763058848739146342595452462548019844048625838266514342059877350878331600520248008262335780503767588777374846712108833470406516847970949799348421296611995787286564980890904481317336434149756315628093683539356060280436893274749484335434972586252109843887161719850026263178993640386085728918199031234332267192542488403022154732044066260953145480639720419154314300025584072760379621928940772332525534693638278309738834850222370254001727649670593974369112687075437059383649753087354147042453466745362756910560348420624387415675551155852595572298917990046051827918763344501937068910493641533010305925395434002032429873286323945324023726104938969894021157987540250388262102495905466094511764877267515784427009637911711295181600163817256261098098446347712648975837961822493487424232956527838645091357335484956977049175147705249617049621741330476179808860279139210148399097944322013763186219139376182970410729684941804744222267186438224351350395731236177312748715022547678643211915536950844541425215015114011359244890870858285375397487730603037514981449101272143981796214308194004395253018291610745696065379303131035390908968524501536985809535905264689594808499879521992895847777083678599500963779590074603801600770489972957275256594222026383299408740925508727911417076713832848656234259368327055933773140790044722773289093663013463580835598077778277231086713664585943001815953633552327189431616238171217985233204285539365329181821860678269667431850077488331383279081648862587546453488056386646091607225688630545664403382772407845535685719877353566521283664724480961804785368785017902877187642780156773784255490202449667454802058734953804057585066502025222054476621754325415173146411985236239689011086741469011598332400326431278235420374652495500539915192249422756778449986806549814569263538259768984780534237102955482042899726725650363088267353028223093360221596922629055107290979403631962869349833409820487025010076288655942466761908754065802898327457305384178446345707889934017511462244469969063820382555487206079596262304040040091277495365367041790473676384224361135336003024816855582354415228976899347741451704789405356265227115981183642014630757841902609093117596169112506192181756950678309541906521953832597771815193600634682665157869015462831146004565255523761676301448991892304603506380239863905771893146486042394272746174676011863490681911467734926651869067850001641979767689007724900763712582336427773042395813414900345533772478967218209990307772092608065253165417987180973731204468096840210059401444304518046334934515458304395128168601728685507459769381886618678040377364595947206324715146680476191372675277521945590471688526883132866165184562696838755575270874267704914460103179471411607369235435484510217434502130029167645468849271880422315483732672676860324400207252306595543461120931767813057240494805495145630845424533132564994726410499812078579570283907859498770066929465743211256714440231372135454868731226222520906425100207830164601470310003964298966823846776190875238361432752409521660911454660166681265517335251061617513217844190590375398830984065342705652956194533726442062908045073094901259606876427189491462260059747434617978188304351353447941380099670260786369952195337249474376593709791612754929164188985438687109854965017742757731563085521654578075765696051359224151078734616159684510468745241126007718999107416305824108585655366457434866375495299627324997303070590472663359813219900688088758173566943150543809632663981094657723002462169920968210149539105163342465571679654691366106374774267182023053842456916306915454014832757820905860999265613650688164777939274143433224888774980310693691426047498738174141909698079261310644421034448104082061418956219042033870095310926671105786709736785471353093165927592807765094716918523879402642578120033755517823548158768425819138801040530139756594601686182776502980032555930580259570992354345381691197913806549274049155344116193260924951147958298754008843291332375075421863448388679671141748381688680382638698434556102325249399861613977625918572551583196703152498814188106273360967522938229555830094755127047475315897437710704417802738022378793952000161655185406376924856373072988553594056433478333702141338316554938320771761789159741967636365271587091135425341080633964957637016577038208698591517993267568090344681435650997339361707165977530570419042722038090572761871913625750641728827841532909136479798086995994189078288404581607050372653929346633743152287506639159390867417843546103905046499589130925852489438745419423207240563478239570530279417593564398994834611948217792710136573121091131399352013485799525605788379400221448346066199829070231070833072562325598300681618092294261402932097471355681124361923576144366406102988825803719243945078239258804711127877318937614934062851578066781964822857867230637629835714278972469984953838902555294932144332282776214378732913783105533863606081558271256490917398945099802830578351086200563410981333331853919638736073128832452170925933279469991281672583995965758063947075179452985130664164725134782668185121211873663772933014822819024909706687305786074498427008358456748212090415606493673836872201723708489171963392740634757443201113580732716814999650749356776920921144600217905902104028605982429771975784039649760592198376573354781822511863578025774496559498465030952044888313490180952566553202320285501690819515759473638962298335499495536113980291160463220600975758085645986570515624738343685505204825297189065651054720797150926281218064610201908627977156664120474909265106485259033913198844920577019783278080393962865009640437144599112800607179378958815218958872118092800049784435181139233093299428972634855677536161040740268332620632560098253191137016965754469445526888757377471632423526742346926980032405855667880367266720101676876846044662350132615137487007350507557275610569632300634285789018719135829013684505571708670320756171540281151682107478182103661868910663991205014969691672510331115120180475689360008233814559912286513878083416259856640758455451403520795842362736081649093382077939496288430153434240154594238913411251674377901199009106628041596670520652827151860162626554556459280997376178696431475266291364908372369736535627807495262886119902284832877055561422928970369232378173183304406915767982576787933486723336821868118886959945267899554861577484398091309783054292435974070063342779564979078316242401797247786772342856134708231962935411977070564275840148290362593460709960560696900995636647456479698456427099105415601184622804108590257710155921787296893365862041255409145073793145750533190504839104544315394131313816175075616894207170134397312296189890870726005779186384819840930279864303608658701216150429723827450931057075645025869067770358373981262692595243313907667605417752398267780608148975437154862741934990843887298941097747112240068168228969271934864857939794648340139488534227603701972764575509955863017584566784397672606317292821265453181023102453514617924635522436817540268176025891604409811646257432875703083221438139583010040666889480314749030275163124445348150079458254093148692789402947282401631149745162749627180901991565255396798700762082893436025817805763107894167876308055128695550603771250512193805157812029727839320356474221332441450749752455356104785606008459488433333878064489903859285189907027445718225259076406988466888104549298961327675042249207265618737244752137806564027928160640880231116063446720805950018185450782030371057661856517799996650312321068043531187087410817960075703196795041310218755035598719319094710695800236867627008071746499539886778678176296098211958373818259794063358574284015250532204183514343222950676541362272573936349113363678887946722387869995733200329803776827130875994151239076588127900661530278193781756286687644571614049635137165918601514485244896172891921175998027599606506794285252155044878845453757430781418747050901908993485829622896220199579826472544196012107019261331948884601698143130812173825941568249758470569297306895406014086155665801302300457221738366408807787144689035498337546956182711876269228625561964019218988974982434678933752844143183036213965333520750723850642574087924910947538119600871485745337596769462407917934877432049665394650939416610012702933158965990493871524671316243784025235571711167474248536908668482802577992810128732308571974934336834456577904770173516750712148352012439236342124633995566033372155505249123935801979475747399807570293739619306317643165536514359298203363056550466458097784003094652267356640837322830560475625182652258337899267762413142142058373197748697187638908433683204423943626068351400321168038965884214694225233754603480083704121989665761433024646112078001769879785292033193895611331354297616559344731468207885239252711910418423699521052944390082117001909125163110733699119196219852080606349321904668949049414661559375020295232787384810839122142236603926974007865930717477810439382867321115794469467384659031320614950875766174458935140432244774277622803893037438538542108335940196261509538557000432990700338020420957752817579624831247209254364553565187531868220285602592797200048901039825557026862350569011073300946315591823185808281808720734892637279428981536620694342341674506438748247541050649913832918329345827626226091214386099545115463143715701143537170783376036075246533391226379668218392152955073230989623992383213978728543235847699938504314150536282958176238895906310585375606993513042361040652216301071772120902223611740884121820130445128875602261290896549358186532321054073855901021591067801545402086342164376361785605327789028450813657841970077000526050082197283459950514871494231190938689702729168456920635382015038805161129918464272966339645787775596189323563019116776851847704784461551440928908436321819464699741963658482412250818272271869034249056078652438345671961686171926226373108424091091541146009088527227050244719368687388230741393377825205745895496709653651507996891557352622939778527637687699393266883822080746932568949064890031247268591669572351345510142637599956486554974557171309171354247120318270958835126399069643484394506313254355477838853696480407917147545815853936797090948196636693591068742135213208976291522355294233965780177406844879222874435060853575258469997373529926529305511512455536915783512842696106846383193176132780088210781727068964225700592733876686338725637725368216629578282104630289951922996613523677354975495843877577498860325664558727892786544587028569793042170604550629680409796018832180754541901747022876664445236609990206549491516445607650994443655812184561016264458166350700095150922451097638542681268893029523812838182167567018198138220805013554997555308628389020928611688954417875564977597485302599710794253903184763340066723066295869969505748131217973083184638661369811396394665578767031641647677348374716105639169448294729777575501393170914684544715221744368996003611394677297970557334495668141511767314207904881000574231606171648135461548679653230348653271513716010982567959106811051029441128859444630605077308305241001167451907630239229118149317094948682986004094862240650103762315250518482886896556351293904492792321680940586479081158333302665563310183835903893272936252534623964562778685721473789252515677022131928777977997643946767024810183199703157029812843697716089595069364768312333446307416834949398946034501396015900176374810066567380212818153842137634422874005703451871591646782080313300146252323680053248031998187329742745863069495728457461839817256271533722036457021072479912062642459815963761722597186532451522880831559592852933856633511068531795343521810425146079482066312269240247765405708598046411363010086182724883150438639463569702128793960494587637474916754634558141697650426843844238534379869663124013608339298026356908661773121153377654268052924534807423628695621125090049591622426017263340261454602266770676196405933197531112768353688569117736428725982691602401808661750587069811082318582257473100316548734951941075213522122853059033120627480704422271272682780133443693881781751819147232076225439720205679591192530689385408609349192226787280076399473853845023539365351873281910522869389607783077814980009418831014074424445388007321852663947113728872511532123652055883632575019413934413536458074556293396049092018415782698611756684102232273869523433450940859659951174548551783228304734699746742201786168028478557814354389372032283671687259417884553115720044337633945548752005992979815335676220029938375902684465320092090982544374569815722863031291890860753880395269694125551657377766871008623225480637403343569571176262991668880340282333395101667364536943545805061990770784474562588483123889505243981439579101511883374116199194176074391677690236143921270382064596662834066581858916391845754909268576544006921508671780026838410829029061757267148574649410986002352533901519111001192103647113854043289443768389156502559155348496649553345670437072363552891754589404494659272138833724995715489803333913533683026530576991697804842610188548044203137765657623911670761349469045285445828796712142559366667160050451439761735236378891276132869382210036963651807811219292492349116684882033649633870862819114921609607160394591753558789677696276339279283336307424174528264155664243976309095521394380716805780472050598123172708758732428870285774637083776353097354134505861117318912314840037015099788473070845985586674114397071532853690524889729549440337696994321442987186616295559930914895123502889059674783388735540660311531042920416864006009960056166767626151476387909919404628440938146267331626863834897632491160951884798204746393039656769916600995932440935301733571825311990108538178692262442117183893984433207499142923542335133258404029240150936000799728279712320519480142570951577365638410060898728285448014098134021164479535762693636996767771738199431462072155417966058844826626255396001492114802358312037257040835388727484831781589536028331110565477477698065324684418444834175920243812882220377281042825872248602110421798520567041269350283566031944910908931281209838288353690357645808053596109933330329935445719444132313737452438774467513815286724509923992861619149619481832455512034395686091949180702209642452108400091075122642027345773603310988372732950287231782260308393085743287457512114618608960424394715487886128302738054198858155838526466537821105127552571519920638391263455700659819323735681148338388142954002964135181664721565688886683047302861267048889527736306874745810243156310718716967843594595051407140856225614172966903150499865094425349456324072852280238653522641951906723266905651248762671452170993317625196524549213293355552398778695674663335586077534933464702503828756588582845707020032891082283533242995626819065903613597516392645626020733420124370168676999797494590693183769311586558953883376405336803653909412824848103201137918143252400644651237010123021323370757481924844016140030772456801968961023607391342706874504853078350285120128468820731092432889728116924183611277556016406283437800130766602108047892316946061996947006903123311477872477080639601644589970452778943756757531520065892406930869120263119114808766226103106871497911027750592132938289603888756080524045427903965773630050155008701314730454333342099758949532847372206661028659418442377350179041962629911445688645213046228290805402249662279491935814303013882278414525612195782028038989963913900679761310181520189375804173135841922062074441019304985981701930360472410436308026796417691501544812965871513361323240555968758565350735490230863820197764848151165394038113984386026251752175090432742570430173303584070181265670990312691918714358361951090962091522335360831396024662571440262866374087625689835474159617222478529706671642099271479374492708598105239503803885566691924213333434811156147245802954035183008676762789872204700878890174952232094665709018461474537445621525201311154261828482203643732894932384774941629479274445907862510023802017281260797231117699336785172005795842082838761200411109429636001058043706780362404998877277697444705628392991419989979972597275425925179715773050445596214965349823206025031086002950427815287825868969672144866972084733316725653419986329777117737608578674210702633752522058075630761864326980028362890048966922089397444394360906509204238756091946822345635709773024014466502404934302256862951837306307659667820099750274716339951116497874553336194416536313373336417742351516331190099404209741337488491413381854947690619679211508738064346004968204158699558022576516781404935693577754096677398939550448482274201122232314682017555891828105645892182600299915581548607450030291601616723642225269713740067474143973907822772146493046707186501654367569599630131882200299733590993744402818164102468531356369289728793211509745969666368299688501139533659160734668406202262285938630987488059900856554123033365741918744897112679336989812822630469360574329996035866561479005036767642146332315605997141778317929242711547563614662274177582583035332245735227891872286428659615710948312307780361221359326626522291130319143935161569663893403171490841994082767787705456319249320526299000927422857269117086172270722344610330331813052285840064641102469341152357857022978287985466608148089506544813007755328016516476777636663312614291746583113599529260689272062854688501775208317475656018442565365027456580163158952598356696535964537249670407700755700308332129737211277846806738266563951382192091498266294277558362965979143888575355952929304840098439120839822085472070855206610896131789194822762538745321592224941185438397832322923545349877224687214310952356236250561728220352091944773106165580822307852799967779247533808226497235568496311931967417315448640083905172813135295122813923774167285761597300998899737686474894633010573124626589860757201686159758385830840012137560313852367600651956384688011229546165616259702794083904811355799323577581259972459662561264779347936563220579617140316447574707963507208412482040506136722848472112039737306596483500366996562687099281257924978409951112282293041444238121928392896371357219761891842966723811640942704762107934248486404227833115533181263108221364467266683852521279307664341021901453212037308456219490623622166758769727906688156110521366827191435449673953070650254103946125145388367487402915489258167538462973612044003901432703502532573351880078558381682691418622534242793448581523899153480908813887038285255512401333007474134166147610203869221256773750543228192883014070325303414223303490359472744522769241635961726409047926478369996661385800168637105420287061367344821552520523256252961464605096008360256068417027685397567952873201780380392138487753354208361854668909996282353229803671026051173165600656801854572139657706180965951796269956770082752038103850841873917357666606128363190693796779138088667319681207201382372882532261018757315306107969112722380693597603182423589954925077830174235840638044121309359897993761692823628771967472531544982208577614884979813614194870990480398733580849327376438412908948789552548088474520849085847746124666732406020110056770951356140147507280910930240806238422214625165107302069806495753257867846589613073760137844784990843120717956623099514258904777288690654323347780209204394379379086334607224274599392610893748316231653162999097993368459358815794061778233763053753318619038016119406604263713568929617101529073492904889151262291786236262782956547948728387316429507167411200263387332854772479482139279297162647340985941351241164289971425179041140190093223363388292191887732870773701894017101659690263706757174423948556281643499416046275109835522750644157662855677570560605280819161518468136182513952889455978634051224541245578272099309601652422218507815754980493664759161658344593872504528228284338515902680575535084103768734346056873418322593871943598028941389904241979900935412511519027318698337868815181822907533805022519402937858320357798066120351750910089711286215273812716194941522577043643890377300220056254707335208880923719909311569489451722264894609731556518731064865207623582594646699759701828785647176159471843549495910156228226331654634985525495483793145352091997540945895356943002745567945506312729921091250066736200487387885180260017938925372544785483562607520497411906238959437843746038602779897440424957980519325574487921611825458037493789262691243269936599387820574391347227752944212691775212902278229789039840031176842863895145237845815805082522461064051732979812047444702837756686516308218433213514448318716425922661185865752758272757068271554574419740600207380521485144503091455639539035018750177772498427701027127803364037297653555357513036290193621467618563423233894456601784388350620255482687816748260796071304716382420485598091380711313341036135857565035770788296326364912094617363770867124193306742349172655599712901796719667938347958759680336073958192368159765638160189520288805140642373056266941635356456520424528421077388600111352553717419811765703442289786423566048929223832854753437753589998673105981840505094760407593932302974687054171001897929492937766718582497424593300375260036920204853885986752329215809331202759227904285322692190621066056987951973971129228192892002672359403486145839756169911130823756037187290773364554371415840405764197945539764547773090143891076570499431319967723359959762108556344387852923432908332608388228579894557544290273210183539894866193495882317834101592278583565130368373888064434270577593636585031130306200880656849113684413989857778716637645405034575947787575181440343528055379982164947505385041893993549183314918440166030292022190725237263435683653282517307730865565733282236299882537541948282135106272663626652505813250030147358871113741852318523082113392770757740191566545302983289667578855917870593755930473452657356107280184064877714613312658878064490529611190434713505845316047001400048011829237189383715601298887769736299668212336766679310857538226406286847781455330478214171459240745981571606496348552243215272320012355869469339768762040448942569570368278240483661040783498692148097852195091195729199061760444813253293351645155464935656541795404231808541838321311140044849537900898251828944261361881309713895716210637349834594096186365804020896391070385252237192807157225474064067284877788292205959422109817745820762043365966295099801784046402819877319952236408756706760992627150021728113949502179359341954632218668343262743288985075005817412375716369023918697112124793313098896394115502069688481426749993258594176348376426295292275737904579168230385105617329758707949013261069974056424575630962315596217208363172132940909346138354990384964694590018004443487755673939980464400638474101720592156682475540908860177271990522684702150276400491022993809977400320437624015153255333617720747783648421105554977168644793590885349627512477782954998415123697810423865599667270700250950283051921272574731715834243291974208397404159616226865573940807418189626362921201386902536328640768271781972868242513524937881723953716478954125525435455868999718401965692122832339570789808873250378938551288619981357258244143587104575219662429294421580434680101904978905507552082637105605445364400819110417054083738805253157382232392048170479414999659595564940949548614324900844569475000194093659917671643935642860630498434638505646364510546422300788702868147319354362061719428944624601917589732196148044413106524189040668623926596430161159408053398467777948362765707395736935839296336033133574408006919909891200168426766991184043784061301757537128699020060380103623610846146515462395749223863658353022291958027285446076110294597961049721965845941042429072615116487366450195379911937506300603503813431144699664157510932639399453678386787636165431175020758970655062527058926891780793700716650869867106777725222772410814722584032811194998520868863384771970593279580696341545193990093349641505157825870254802113744335902467501249627992132049741833832223595968139485978011857625555685466937073932694330056089707725639833495979769956320996694850100172534807705191307675334517260013748538968374446516964814959304495771069929238046011720246808871291665593813444068196351472521656613012858232611387879259654264686016074649316760690576285516781242684704661780866486677372165006990361001677238736239303466936808255058686360166969866623590944641148078967593495337304087973441497288214713806840160550100823493714227108456438054869301133233442524009893836367348255499842386597683719240276699754292952496094611330688356426094617238751973190514158146443765645505498062305515758360762877189141780249661073274104277961889794930836179680286712425409777398047374320738538601796870845718123501329198167868595458353160827449676867477405064509239432014541826039495831894471778150282471385377280945186123429579079986218659815899213516730530220262947219881807456597910080593407587746058016897808315662717824344556624388478280417059687211823083595393106238408745306427483898750141988683233254723782921051586670141729826321364637242190669614264821227045516636732962670480668322511318972377688686452235203461317690248804429977518555839111550089794669365471267571826569119357053868192555077786526915887785629729956621867860658437548875613629970478901856535083396150032280541135295438974913880757458031305117406331076827185291620070366060424580705117059572182784683042013087034832557311952510601401593891867508567632575063549745058542607208950849545039022971178552398746980074123726718901147753293470760184358757676416585020526666878394672808804683747167991170117852043216060523471259080389556365232167431410775671193828590278001269059673118104566950339270869795392891509175016866862659169808675774159800786000132430523491478652283548523568412632528616518909964000332356750688049927430548771165391728436625226260626978932100899963505979953871517214989373680198900144425697896143807118670768300862852440105428189961858744098674634420965790558116735391916549102547935920070725414757925863023002975608727692316557811319043594048023944272460391565435847933330346075165737962263916467471114082065003805790481145425213747834867674988170968252933864813968040485044361282928637415104370837221144131623983790216549458019495157994555811046852278894963259492196334414300258619579873803362064884691897016029941772820565712410031025449734526330015208829590700442683026461803000344079825675433642455313206311719889645006981883068721594036634264242319007278621311753288297612811036508005837829060345329840609239689114991214447913335757337024265709724035301242132099963863922070719370982689136873522811778364712959027519165119242346390209314846883508298197776246058227611453905856192110385565769911909088859024033945945260210560747191874793547168479840645690467436116138845459015396152875135280473184766664790957894931299817111956953873818657775490752705460752571806278698113059564205926545734745762022069220164915048842139441400056562934945085994045345280823361253300997916544431114597427625148517972779712625460778882203306761137575058016504476691721043676008997419955566760634159794045308056301755752174887724630902271582679554468023388776153332505417400445886316301654910437497678330559009557662504944639977363151047644091942137731376311484623306027302007136636755592854288875844343520530765870237435316114816282010341934072981435813752736104148733143088574636518176736190696746505282104638710211364236460456803514202703418695604248878958579200911495855174229964447330895716903970435998508630979215933152726752655515726110942092792167481310452409483349858512132914913342475444985714015770495804416075425021209413902640351897136528492051844512102879786439748984899131615737055068368445122621776064635499814330893529723066675982211866180760577168535147466752640892815153774895806772447384602100354382140931453896455168925395633374700980901238599497212365771523380688941638130320326537494698668918520744953340061150914564805246307644792521317126596427446259378933218371391916162054485101978273190238805529204497830790595869212014065869299357295492065634350762584132586711194116535007759707501046657585000874308783940992184718997711680073845990768204252772543154522356349764354913441959500566718091081186079799679351486643056598578925409730926188258036013410652818665182176926913351902964715447079349476195434754156864230164418343609627293469744010740642692459420748191464887265507006581882294393249310134400052028835030314688533740519961215303420664913756266688799606630091002685194269976162378204889095015271290273706880999763053223046950599311525642242662519317675570617589149427902508248237847125387994698053074507068532817564160695984299352735020395451203090202460947655901168062099754748480439429134636293548933468766355126095458307736584230116668618367754936243974672999078902473352246361287599757345252988182164221020628353407100565399834957942496729943606679920593316840970589034809680927449964993975458492778527478626432851205987598915423687492617237870925564892721053562750261940448240453730632018957622589175943675229669234857880317947959853934582612022437913015630495333212010208118706568764369234634018214846534429650699623486964116855239500087198707161742260503701971745916196201205030051645588586282636863212695483416674696646221712519700081872893095512036145576429842004656714213557686390550726413921986865202841524665776709967584884046945143857231841623786324260157534489352196320923650217744537038335845554429772590061795388466057231288551432101203866655927914440112716661001635502587821269535770227470828955434453366215565086517644293716044193790262239487505226007035289102312532294542638591225641231049659398015149072318815678301776329721283983007742377603772352734006529981387086410543653922216274622702511104726879031286289671575935678258767215290284958405346788630987487978425921236169110160607582267750248545618857153201914426890898702076921995847516710767872672484045929677540140855752125079311644891417020039310282681822093622960264032289687290219618606153883953097904076292085894420369518370680966828683538913774958235853270017421587967843047573051849424678170643677904596503504537987142427488255055391966822987929219226986370453625538526744685805047507469101087803447675838570430962385864616200573288118836976715232579948457217837864012751886150351794524536100257878742204548684175427375153855242611945624896887030032601758173901021422336367334540612857433562708872921109026788037791700125278175401831089536602352616734022404707872795433175142944488943679125467375108421784070022384630762926241826107766249875593190724767264006707938015644562149217357640188070029325607988220978579179693425058696243257450060102876293003735616930536990061547202904926542796414872993785951304352482279604234950966350941276413868418100265610859298467110376694271747438065939502692140084533375893693511805114401488903111276949166288545537453813635183901250058408331124890566308795195899031291718899264529950522730635122770096316257461332694383308360722640026026858789993622570862596310593880200898456453804508543984304868016570107547621663869879476113847822352384520147026126583713840018098259383246721237439209861204651564122169473450891215239956377476177820678401988258773185235701452047155873663877204703571159704834010055859322870522105727924608151479649282551772070584082631740210383815468253436630168088963947714036131692110400325123840354398171760244465520373992877995355605475219401639340702388039936408302437922818247217683748100160324308199431911028940100821348041859715196076561124058564023177253109472416210944851813185401454460675087987085655236497657484276540365167718164470740087387290848464414638892308173474799419589133845637457506771913901463670032845302703256850069263856910481868243827988995647228006425235396275866954791287048633806947299731736034086479467148306420771299627542076722454347685374737421318911846725308818725679090726623938792098163312088146540666339201523346505287237820700077490284776488154144982749936296669111907337168200334348000316198949893006876652597903670410352778776993856328053364841696347347976013520025089115094308304843477097670405433187001265536192704981426839131338057569532029297412720028451584437976426807963899364529264882582030580007578828832992533822746895386085238810099311862210406118161535891929482955740445770925946895938049269003001282853789931633325507471386078240860377615354713585672896166490802142565703048996492168157696141646154213337922548073904617771852795399592474446526306713853379446109936219131336816275054358611331073536982991817553060170478421988835493388246606663720624632331648080971680275098811405962899613141925636474165016690985405318815834519520114623950846410448610741233011681206230739873605682926390099426021566271753900678857864468215501977365183556961315241623002109093135628589043230203205906105149858532746542089161645120476416369957872610648566918463479291387568954379856213779386730780799167629856025475688877025446845203924748585072028712745031552624337308186911267083948699260137383067304358288397973564906088010352351552416335020540405010033373957416278629149280636570499683100279665420889564123142282486924814590756238816752488097795559305242009135166845398319073400132575288075239215116573843026315017536845070914246800471103272478217101537613561525143124788370138141173333863696447366784855137712324193489888493924993343200021285933770531183524600491228024569855500627336504603035253173710436020170906611756155718511668260743539168417988086295169707235712817338540376987735420725203193947706191280055501870012234886776976169550238353350781598080551824607974792482147994949620746950207668137702559167965454215255405111704797209793904817068795527641449563798282638878732025674834682552749901224943132716551735012708528338758605595155732879935807957094382125386637817327711762640305834818948125347320354057353714006617977757680064998134033777969140405038706831178543995111162401464636791221456506408012083861856805727966778826219594791849082222907298501117347936443504280588377034663167392842670987302997431774845373769205997979037364802332460586205966840736015256654531370913987289920888557888439435981149344761811830110323799796554583501857522634072387854323918345602944648558641828483178351415008039748424711321183360882892509082135831673279893884381926166341415173284340454047127609923839492968516534926585251443682336722046721178002417470313921492861030660256692889810133147783500987675880123040744042567021935137202073469042612689153384284455200816109292707152463166308745958565051303423752901305790090430885588202845590040415335861606354875546563851165628042725250356542439037626348713365389494925800979345528839689282702867086526174847169122669952046621104346818032910647843850408252626755080603046568446417298777748110275574987457581075930901774249173634457699905507737606433909723559623983562599928612746204663195352547158975837371624277626430443611482681960628317847914653000130381210336177208224602063916586087715362908051609060419752084787519377134451492904103584238756808673503287249001661453699632937715990718664657001312284764230097983510359431320597207335268851565892887559456530290115624068450794113760990124932710164109539115829628495970237810981183604905558862831840932674800952214841763952177404971159481393480990208434351551535717099989368055233339311098841119206418186167634826177490300498984178183852597984461592505017260405921023571719189157406910303973320010231538990538439847158724152001283244741041263479481994755365943211343912668991325575093305417294410446874219328839302030114646865885364739370853996166763351744101758939409175483978858020490056365875539635479108445772242189571213012762121183004431286229019470235014244239984212823293484274024967414036208580296128615285143219023073053548638779217242372190132288181516899626961799123345880745144799944710741259564692079220147632597800187213936990619664585118500215946741548187073133693914184014531560207184245417007983565337301390531848322118427120111664990620585583623713585167803214616582178951939319912757300690263753994982632159518462865185916203763461137121911984005028964117311809955119330616297759616137957200553735007420661737463270373398742559841818698653557014836025551859126773523453840004404139927364717372451083401863175464096457365219517232844148596587967108320659073500475301630164698106386581632757585144251558794992101348456918990909184597887599294920724556922492585006211985842049575587626585640936090886334350529925861559729923373664898117155579413298033379006903539529892909098911664325798032074861526820859577982312359682682785648128633737562485571217965429194498763636446294816731895001196241397276017281028323727507340231366974598557005491197516588466171673433742801138680769800241789680106932721662600712250481015819072618993710264983020376517412946506847332190923210877115436384329007104970513622091109393430137248300056458429065511846679709927970442046209757102030461776228734587896859581788663538497706353695963454780876806195143794381028932239317638077706183978966740043834927176461137074894920271015586653980688047611230039606883686352597002801301410001109858028537385938210850604416569396454467581732972926286654646330896160139658955918679354256743151225871608225467092253883955761107797141319834671779231093263625414246096904035269877401034851082624744937765029090477604344142661106265417120150139958745798084278779230816262788349715246097742791702478678502620461048474301025501318700180037011694293157003989022799881067631262896189101010320102858060116139854617196237601719478531769541276748125975971449781144011071866556260060964130541753700047873974121545246450502089507021515705833757916454939263380523183366639637261879632521477881757100333109497409832433056762974481587874792888333930368557186774286243616430487964195000784361956622136871970339985475280174728376072280422454887702308645079707149257039115494704764886366189807867310395530397808763280430456625249498512772720279118568034425328120635639779406364958914529996426093286612717696095744131718352260441890023164486085201499360804523510926950013413855562656280454453063496662688555138967588171458432950122300436315799581005822216503695532543763255496328941720816355340063730337951933779034087999006375436339726880358866312271117597773880543575976053260138682990881778469951298433788463276489140603902920215508238367226707811285679221673716259817696068676635821257290177862801724274330662990716454827384579139030507513122366938379180463739166069318203254673519089437523004061713343923213520765864896298478173232446729432208589349776921184304511246475302469030163439442375118371276668903935918004696147286421451617433855284858877558011182571490638102583408317310347863660753607582533579899771305745722354711033002978975670187940671307688217774701060222631086919765618800309014538775150119452705385663318050920051484088682409948281829645515804758980829832975626341501824860411829085859643037419286493863357512826698714460084837758802427558433223979078764086732456492472873677364991370799188317237595936244851334045905582464069855763036436671508984644265627233331176326492156639195562784419486640013087375574252160297021910974509347612279520586776218213816548570553204690949331210173690743249524213404260956853066071469750300746329563440168660424261344624773052401460316127808747121544331978598130105376901916829620722341584954419016917373979235249463766564170724590298007073952907818943884205405317335847946078731417329284729128622128822915865512101151282598894206771077377419517860406761652176086542662584654217502889882197521686534278588837879003120274130731843119412269019377435428016123333198092303159006292358974089866536067193374156534359030891406307695159182161396330184845369939076942963713995874362462539229454394731079644590267394685100901821690898321121279099524355485909454261116776055669602801273192125548181031413718151324149947147625721132604681583536247547871515052944665552893609710311231535372565169794281445910165310194515662907586683816633279995866139103114082340353349249801407489352400495729866519427636964264560525892348630476861528797002499357849687177318955595440901596332042638968001534626596493319215554234843155334810165529673703803541250287305298767421502421642521512266433999223280276797262839971770833230078874680936681472418292979141315817935892547100181602487615800721471860911452097973132559585122059723715203663590075326151747456675424487111051037981532316246496297201454633640898928997450307132051846494974292596370338312861225986804699133362001100887089759649419635936244403896272711385255855515594637113614699271259007913407911596461696215377357863201540893871565537315846849361336960786997144055871710225732069857588688815582291721115383076526177285299524341306352629709313185922417350894699871138269819870232175566996016158351617715437442245718504719358401433152470158259277144744623621819243207568026818150680750121514054233127514357656886707768452583429822872774261986415210541718879667904040754336001646569835781678805529174207011497413226827193612469053729261789277236837362347103371944405759145282565333651613496623771135827630872851324387917887272943701905498429810274085352006085254676686595547873693523016045187007429850928459873942791243503288970212272829420870052201450347941407437736592557226012297621257576614099399384586390415208614783000856293316403385227089125551904243221425199604804765400526803009877357175373160740535445310944607768183586597329696468196360427058581735674721248403677729420945632310844521690640002086858797366982732960620586846871046979009527122800486536957477164790258411976394126865878164957497763647899745587039063356866603000836234022791261360451732609532171588449235629213883329475426650555896878968746711971628929736014800401531862312191823037567689550837070659129906499632267038444517807658609044172368903193679671075156204013968380070139507811545236598524103313953382291287935843969866183901119038014025844419144431969789635588022894148966231425206029400609805360329550848873546529757432170769762284703294388418328988391728667521052262738500535748283438013038819367667731349683127575038589790940978242957020689387316567180036045280934050680936004506388818089325291222557524767121501019434921085095742007649738318900245826663616773085392773104959038585583580588897697754533948719000476314597320398038326337104035063410325624618848668391671572973145989349102562415277698841236208015697672783970865200313532482605730164977746207910045116470346069864801042015241351401341904976250846650386516585490657489305200861275175883103062054576890364793739852723169349328015195095034217045739348445806352037338176017633540955559094687294720270315737455171843639519982101629472566519064703298948662129141212095348401130355642118898300398743365856572085994957839909126022125578724541077251364359740197803403727708763240922088570112771559760294266396436702262207390314704311919129223093453109358816357966712820648764541471172391942936895700437583325625434711185235776930623890422032875174481490101066537151408825809007971010132743891093165832925992788914823090606920768447572340921902560904188161392976868523194405847997288373256246783723126659135979204323738701294139312863116082799306008035150050499962771419276517736894989592803598505364565225075689282780649793936417428101520627873483574304715809071780208813988246705308864180693651572790728775203587336852288992963023975235890526112710625342644983937261581828600627858434362027218927652242616134709660457564672438011808838293176535903519556835010696649204326651670641320691379515240831683523293700636315895245320450757587398840416954208051660029740059419664385826855911814012914867630264365153288900555538583177422545862237362021141437120842869608016241367414783219635023018056311627388851421617939417187613921747709047768969406761760300277455212134778747263441716449078217788994958539228347444732041806254332426504668487443356096176152092602745487704608401908227750140384093744568092042500690662722255600101149455850743937451620010617929843130810794005338204891659229506102312083555976220274529230033780132444784198335585691546039807662729753686905568128876009347350553050464301997397353968808230759614227776612305204716906694096888498804982507872796838416262601918406452729605282712055674260979252757239982101010813923865892849176798032560168216145179298301920682247638259136960395343825509611474473881062713534846425281324881432281360510500863715523674131644756908074098796249194792953397285141218855637555167134831272582961969281643247840658624149692821647513182181034044253062186911357182816648053027278596040276899393155721960586870235233957268231080221764477620182724462647810926279831068593993173726549609494473806688405038864551825707464855750925002147894642585710454856644407927482718435845594320556132098187029469189608487550841364740540329097439933451227713025822168501421722019422099838855799020447103105251685898270086609554311502811863467176879633482879542228688424810004825239166966696400784615688875135162382978414799784424774589730400542611309502150923900276086100242613652378438254166867197746418320388416362938512911005414884925737861769532903746572934315349788507880685191419551540489819387656326454747122609470179310103254122806507002809397497713052624801190814196898630066755622776985065539708327441907260113199876062756107436530381690477898027758972448241737620001280625622055527527617348082877382018777972765672511775646589311620671541001308746824758540491999136497982818991658247525333633992070108223560750479625551988010853380574902773133654750639721086093181688848935629733422810971593109527606846460256169404143786187886590554502883512666270020791808434509632379620095818130282298022646741829455979120128851450282624526870158019368952503714473293427396765391198371636342482772958725491028238620922532256412704465583754015346009089161581759210596503038769118830249423301418436303500176586894679901691457362138735148102617899596650546133086105294525475233920654688995777376865242419695856236072467967507732437617935333143260049820814401379784369525600180463321083951570280004281196865327244190107970933581320301979629948829167609199490226879742724202254483316441428863757845078974356215859623862381259530915932685650730280087462288539097723939840498109565834093476476077183280864580277721925146468595640864347441554032770120501980554684444189645915645208660083639211823604511008963378442573721322014458976338631505843000868777027335476429014132016780257396311017060073043396587585325741810050368013200007670442075125321772537184604286885707313517245032383836141720034004909951105225546498810978512097540836297609612424033543376021105414520859172506249230427960708157439199081315729358530946271642308248100102998297227393141472469505637043872879032008992246587647770332608393202120127467617041906869115361206430168832483043542220939639761479423269537010699476595951322611279080868332803009666421268380770819753043555715618403664655420629361777977350112218982214652432092362624671633102714239435917546698095595053286421299065813401348335717532401179175438140744686373932524139869427738207394739885143077259684626525587986964888973806828316512716952068724512072445841212836138677458216345041927276943915104080889255379455472212929521520013833184251628547602729821323382267911616656796478853819458568409076674055614834039195031854634043060916933286084831360735753071347839166595127213452731575673180218879152649160002986984201594873348076008794384188755189328580583533785279417395747701217891110514008595047748744966327738153372913142986779045719831414691519206782662807466651506697208282835252951174335916393514790614124856871194299380544571392353747264189198340136808263074341257798661920038605597255265235523582078841042799260629588785334201306061733320844172325357271875204725068877439908880079772627802941651307003415838936217297222867910102720160720876077162846950762615499922752471723897436567483281063341640406852217048205174483871140904053708101686950164570282365249744072600385005090710652638511296680220042468165699620577515220385535454212365777811247964520793891175502531642726783626695300995901442210083444379834966225632141612137238994522193351838236286327522501944633792864851261943719333998193038517096205614412974985125158431803075500784255224967825687308658802463034086086416439693151987874438853137092283828529848305083394636371444315960293021730145180475848014470707980294227191077140767600572543705842096272010669557951107807222006119599876916109725448879692205779382450719829903165820035530230546743125430495330218676529814621477357488892430726820886764629882075888416888658109847612459308117600361989115428858575548348745917096017813995133178240185725662881350705095774888586780115015263873147876449583375701215947835536080474659443630357284473144042138158381345659661337236187942159392885732480330478320384957889703044134375238242192714720208849143624045985967648399574825576016814797508061387961621442339164802628333447778803676379052654033415380531627720864057026452103253954483100208372402061397229974207195749473326038577876252532501646872671569520503269862288854782130515982316208217847366477781031933134065556256150642177632341100759765872421958210802169547201272163039913884147417866045969093400747865645845036544419488812182746303252125821255847120850379526011281038307070766137054993530842078611442537441514229972614568875905639094851838092921597806329252745743331417337757432958011328624548170662430547493740803635162509647024830549599070230221814691885566635128937165638972053871004658759620477742611790758769167864331971008774291420219638355654119940214027983872707026828423372110466385665724361092889950423860461816096437382242324443116378817380110570214659613904490957536700268686085736176060302052605669956069031080734215500430111235287086333361982891294491332967526109795086996494708473131064280209509458511090507439939132265014710112466897208963698528054480504167048852866614187492837972217323807388249806133584212315416236897862871020671722506934392863622440134496962129493671306159348648461933023638083351941540086971223457956942452969998570105604728760867430091474796852661846750670226713202639868979408523131423346996935840879136916052724196557176957689143686053191946527460538956312084639704789516284047901917443429247829986653908571792360994735809721702224673995973199597562979117492795350029052421514979781645422680299250768509249487035384235925935053459788091111223896627425836679935642755776660063372584586699138317745116547034769582021511433387660614497398726608513128494026120530173822028722855931158020519210048109928071810684449175833772672689078333733565536368500537987459341375265673175757147257457340335282558826982751657634340493212631002324500290831719916412232381588683039283740627643599835431453703007056768283417604752954786239800761907576370279326123438041239753334247209985013950198951874044166832511644121166628325955571529692247733313067369921643607542507267592143260190477478290423288246348844363883872073064370664840623566806780803929890411683630523661843253165014392200596738238287534142354516055265567150510142070505019447016469555508936845203820897778907531350461029015866719452212224535793707506171008718200166413217708743509465530325812967432319321579926082629257183496982477124448068403105028561572218897891553617624467842961386500653490407578799006901669636317764905555029471430253416075028240965765500687062356168035271537833298746664437566239596990470272202675912546800422988889161821316993225298640727236441515169173214799119885056067119683281886554819956304826926734214442579494826879041339998035049301883555536203360998218409604128849242395804332989201324651835117499309982722300860631123109579169156952841442774836302539642421775480642654845232412209533827722423924981300816315648226773921262480924142063118607141650389819064187807129242723139139949599166496546183973269175689068063866466057884964405105153215761279109293849515218594949661571579577937003861557720037685044800280120752569031294354459421351627074791196515519926509544294386214646324210303197265137279973038245422517506914014690141253075578500725790391240098473640044908248031204077970895250094719875975769178964286578444520106479150448620772368629684097579744057062526024620215285554266358848542148725526963640148875125481224306922755028651403132920784846454586751993303605774928132767345060549211826828074588430511364561889093135420519168128216593991727697638101258306268535076320614596664705760503703599585909993947832329244897107720161042519567395680297825686673605965082966090731204392427254158034151206935428304504759832220035691528263667027400596575538665057292962166772505010441952252695207596252455543304323369486920749864912810002446107407475562487307992745663915600054265873408966899378196046140905724863923929652434495242396847554473431486805868590061081442619954035094477441844111898115986255811053288488198211991528037314114025476161952547764526159538948709407062724120612211159166646861803910948431795513788930915173379790674658959262818629755375863643499910991189698663200250585953126115144359652697866697428828275291774321903555011405525297282009221411557486190526968727525359649625495907634529378346023424388014327878901572008189689692907487089297210420326970369357911219430879484216016372313174231797423930475592997033443644064825146010113146713741226803615784500976234511885582923923738922491983593223222671269361974628184247126490428478540448289812181760247295610548330694453592836053976886949841099029651058594021381728387866721369701240755389604664535870791166090031789894653349568793375995942989523444519693305303963747301210519078545669386030925995965372132292508175636831556190512905127425557198616997097147385060714158599970443650578635160236885372150581706012011617117687431139040249024353019238343580912899867892867446073183612289427035070095533917610295294090621451670905536005496937014223653323345613219519109187576740370891197865559752281751255701546277675281722868167643325867443862977222689813935984218267962582886055250961380960442288449891856577680275034737409686610823998353097535751520565482513731500847102130202708379049660541344685920374676889016004485864492519096624266970566714938250318442090305012368367829772773857494507517759063226270546072061175790022718681362012034791633465883867613901645780039689621986824521158852663130270053611536529857945957944575237120277356960460976947350043630845619200912646593948603737895005744931874840160771183503719807662480595751288882557367404993516220678885491108035753392586615786714293124045335177861712106529079532568366822552383590064768945125925212284343682829758595627130368797026486808403357516087661790926200178270259710291269815254596374499077401081446874686752567102133322193347364298066326838693574901192148644409091620739759528153080658126842718035120070931495161354670613673801556224770790408727357317404912498839729442853430600881977030112708518602589777220049954395931589934080888251301064715772405211573022088538522201176772852224194083718170870929562595625601471612076707116917534341107271940345708105212184673755209963295446476477975728446541155801005542192038572086638878908479327806920375698722576688565765065482894691632547192575955778027812753571528797221269510039192442161147330960320207848907261209044111227971116700450670260636860860919796886197712398041190664657985373499245022822947217973649885938010729571804125640357744544699134144639394360369051125003635856228123370970090693284788492028488540485804202687930686593408017959888931772944114018406275230536596803649422972402971034786034360353075176308542446590196158027686317513902380873895756507400244377158635615378002394087346322011340979044368400414414584884113392842861708709801803051119398873798817696689349325581232100588828658239008431776116526771281597601551839598468389002114724570826698153431100883252734078963284986065460908507875848469448694963266387386972837379046279954942076746574404131936508965444097663256099205756746336275478956965101118835257079034362781344690147961166974454564350192497297812744230576213593394332124994815717203970530896654000814988286445237141464532779126231378057851845629736231091995737767331980455985342248076871337314609835953598163050555224741481758109295274093435543695885487819741878799805864221390897215780465865894224043269768756613951254062113117304459764300428191574889025803971715690894413005474944870503291196990764048484815689617382063031867576228462051903582564551967156519225158661456484121518748494547405605130714341126477371948845804908843063108871178388655914517910892862772454897400785491204780757987348147089755419726296900336323441701077415853401970677648036785098806828249775678625200337987375811790127174391070549811197616538818267674815718141142466324505239136512893667534061198888217072184184784463196664207347546274178336115665909982431681402611164256583581882156403562110021896876509927202361671701722863407602457411526036056409888042297633129039762933606068420851943409652694373784463374966749565215073652770089488555520967267496329506371351031450692357207877595333819397904180323510683687230400498465397449701527426310515049045688371803919702875506491816565004945568903320974883613170317608101109604561611117135154321638023402141682811602888324778976063151359118794155352270450698399026385176081129611857454230545276503745106732906949547216376470775498559373824174308456270882853199099031156291857357265872884785243536687394865805417231898548429644161399241612425806688166034256540164148897801744057960076509617539243970926284258823658066465965183391618831414716095535535078705656970855428076047929761643527055901421341319583606695503524450978014802750315770621884964521634384754796538386668398614278001351816017969675028965850712380597604040010855497558880053015182061048977491333185311288472515126341052144197987494441420321786523491018271772525399205442010408271823344818868928198470529715181253763075654520950000215497000990682304905167733271551917134775175594631919965257602857017610714516770147279660916698419583656240121754178821931549640652553945002551321489742914300813740055202185708742321379495352535688959733619301798427355768264713464095558068057746495388381223219540707918593721136711109923573377513156294287862552064760664078071827036512451910633453276463629744319627810946632342275716005084004061411604262056578594476026910399645037398257830840596493674446395203040516116776976775166102575653470013820909757883124919099834686901398645060922383850150440108924541132717250291407040143148939233631497375907660023780178068145334642040516731035618344012224014412701309076928180440085924679646914850752789063665390233809280938174381672649565866726442319903940714947762617367657798662624871372845722371713463086306632079101937670440306756553551278290031318261642561582689217523583397643186596343908224936781344761587235184780010575462164818689876043783844240012347350946373914555593061318621239380834211212441080607680241599286128049555201030518591513085267562263997476083780558623654598090110218573872030066439100905960906159140697314383032214369491535977667849811337828896233177925130985028279353803687530553858214304140857113321547505794541837681560229566408453123795506424466666373759095296784267638918696972828299259918735338166713648861681271824450417591174727477570340473157969309314570247751671429642407785218774234473747350973375335254285102112936096648983009867455330978264881062343979208839586736589714969860395037341301222626986053350260159295736147910853454317573700870483113738090684706703565542839271927962942651727957293863161728574958914149073915914331344112146879201883442979491781419615538884765772002771514669647135893056748224290754427575291941023469161473398647645919837195274820281126620924237456621598671518489137343111354527739157085913002113143285243115381411210030652640418334797645647429371204264468249540448998140419257809293836809053458540759625842743483602744805416815859290804579302948219581803804173914994888476891490157162690153629698523594805940674841854533882804079288672310130723639471409708847371130280435836161631344565998155163578321290250334993085955322351430107384430733736473965949513757844377361966076398848927416619745332584641458225474084981922219302990074073901139699039599060038071647941337320708961490478857216216154551406068080512903787695375483513785169898149083259801905243931248107763347453388807380321164555860290918817402381381183575033130578201110908127099865724649478173737803352508970313434952589036876723208589406308549901512802944383484335850092667747006531429362773448646710075928241911349139142439892084712552694943994158446703026156276433633325541749006395112191347097437654595059981473387407215641315425381390758585350204823618027411554009513393430330823910067067601593450896772194059833402349450191477687596614906989473573395812864747567951847270798624567102706075102006499354882651563791813547531614314564893525784328273478889831456733353699569242587301475205542032304159898085807060209308919682039814740370061780020845171467272377771372300305008747597810206321140130787315452357753886911123577368854800651251952667917157961626554188100362004236418749004787668595906069968320023144453299175221003042298282143091565982348960860693826781402465567600491589864623926842225775384180350674232234399820144784919930297565605106767885799014391684814359593837915521049679793324668646115739180674321181725209392544356495330686447811815773301617777061451077128056692177005751713518177821594372170955062044585281840775288733595466913230918111127086464684814802074457878352216565223572534262795787791712171788240450628289089300182120058518760885132985529243948927409894616206040513402924223759540116353940612254656868458988956994159182289495433958691467116493456112207306055964153561969250098627044183383357580381253731677370539619182708850056091127230017932659008837043239741933740202759063670204969754584556671716811190320624977268333948660473328344799796348732323574413201821480198635906464888198007099668817857412915090261491685155930704180454468436237200528987783565488605698122407462245477915081155632373403886259969238238200690761838011196076971645902780490654692110625797943148248747038667905270295423843002255885189946023517841388566501612805799169806176787261626487007619678061367156479749809841489600470184116949571061988114619486360435752952007600504468995601286276770378460104328241662849321879888213214743062106494663580853880640850520571642277635133358483226598175861967967812150182520206664691949572584819610426437949435420782013774038467171683637299667395726234445119159995872863187348440794881440321950886481259226014406830474810627138571222731599894937770330950990083924809386672752072710102361000981804766135260395164854264233408068176274967854300912554379203894640763259303401191891061218038827434415214291443616636017949324038353583427374184726755900269544684611752313427066195291748530530161783112530992019639681452436074640203996269060527811017064273282425139995350980287695437028724743782219363568581828485145006623663204980095963450719662860029849555038099255115595138267602820535247812934564134117749242762427049578633702460069024591632664042359725799278402719795230759742556157372771827490327841175494042025271127221496398631150600856587728877993667791572229094196699815754393088945883172501296455165545860205485415257117920210416000727688521736016869244503493871729717665367928235117677870176542212503386926002701042411581482439771727667268515243374840043351812719232467972457570790245383874963235513873927677541316590075491042495216159849266061188561062935986421856467915131487374579533875583921844425153953572806120561372230349686112603599692810352001435253184102380691338718789750873604943850535135699102051360267710521221530560124026452369982044475549300957946078353474161559373758817734976816246311788905116226524019433580683125838677488953675789193797788464900199502132262961190900623065797998299218656362156226152521046864653297642848740812685186558268073947576782374889105605723850022357684102560051743142195960394671469162518287538085543651978431494854888274814291348262737545330869306761342195328108218698735844751735372562876868116354976027628347416373978954884909624285698097796975265634924645980105136533349300763874598432772492264244626631099544571703900344590526150823565989907304146429820440163485452606662866919253677364591325367958436924071690749451741819021548411379730699186355050843958108788762948746312887534217478402205228431842344888210517746128041684098617357235206045603720980913388671487514666283503804836883494957318887440057119888723239786405276300107750392312161579237185736856819160533340829324121160870078717520659338198837163550515382663849308935726043119363307490788702998166672430749293231595511909514688455651426838221021320249065271899656835553000062307118737049091604686076307575752634133062872718529239754020084652772178892521572242353224434182327578722528666436235675856537024852142158891178347293139838765817271543768030719810487621720439854806568074608445112675850338124138033945497368395896226763923476515590543025826005456053783870080953024268693479241310363479803850839089130247443488688092760987478098104817041320338752809381256229481453305483834628353856250203578203843682919612960187913068506096640368285088948194298251349349928900942148116909639651729292961074082301195639864076384762029917219450205694420366272024818353176330589492356977543445639442169979370731446748606888273674505008341895025358852133147166538253962707887891532695310110617642684275041792865603564520584330807828645838569494340563766149709286805146277649666245323939956965274356586377467406393645764144134548608893470575615563501570061045457917560779889621463716320799332753072328957942269905782876349220099572806034195959060339110629944726526675290022167553213592770281124121524806979903297572152290677756850808766095081356656368085968726788033361144154091516441850192417579760161419046342963915285085780439469202412492380455856868976923739498326450906739358494790173802204633461375030193774110405179902318264865061224785636235658556794418433385001139891508496482544108766415898978927578875288366073272677646339007632538679618967891910918992792207644272559763729589530504075362533103373027694176285789438240178885642726216435273990141417037392705498647990369983040468376458178976586654780069577071244958836468428931711063782365650061858977471737852916978262857787517024236324100739600104423499290452373926337819103443385422407067947391237918009278961959592258043881843858291587633447837058629375461943554682764511146721338944818434868000478256558429465077389318782282917755934092304665694452973842468341594818744664741062533751055361132950935580208407807605383551781314002382104401806160822048878990253364522808967562802955681880883726758517211229701319801450618745792946970377033783399179492940938906822877953708385032089751795129074799042540826075414606186822471391233390988730550974867309277613399439798253590264054532869651611858870044506489934585934253491803579032802857186129320550215137335789083735573541045675278078738507578900972228837397161471106114876409364286250230659100094479906963747034984286480512069412620928545432036948744021962662630925865965740893180384135539441314794150907403686917841112382920399699254145694534134407923605655028574423921704667633091593473939289174502339431189199280446634716001118331913920401597055064703251142586456095257688272305130032930686908764928951625444850994127805748319782832781322145181740110494629493218390860174891689219334916005404718653171211783074687711070803369023673384961453600797427127442744238315926599243894139895009234650508189468226156405782662663315085680931205236975419285202975417158030123308270473386030064654407007817844805507742335831064775284506144277650229533299247780455367403909058265779275507644995950464226270120613846820543932751780762860592163145520025150960796125156855367377091788095459129058202264196481673342461443952561322829141387924552342709182615564159444053219700508643333718485855932324091979955244155603824375862481391916897466231611405003408259573399191979292877162760184392386625921728621766072202058147701488362126497720716686530022866084027031947188268040997306257976917964208980902653748447220295556887912494961547083438801688768686758302921580171198967444983134803039416947565986422302905006956706871825888201642766564991285838286892628013407967218913235879580731813905275383575748212045246025436182681412363989695314207977753048606545476271146770023380183370927484293589017016776810444143797081256374290440029627003716812634548670804746656497845429234169652573485261710727408810683087758903875487349188470161492266738756610139819142632252448281649607254282378591491553686626489308999575495616527337962307059096331874678040781921598312240383835466837741323079025508258259987615420348653352829829434833111968593311367948454585617191016181990922995156699240446379636792330740724268110862134987650775976308990164024878231898494167208595426110919231515925301578897120262557140861858068760468195907918771366840069902845511160900688340258180297048034479922762350369567401459465026947454708283100448565815119223626890799611433964579143837440892684202212701133388729296560915725459856661038898664567687636611787912043487894592880949068143221991290933007693734520233318759451906437938175865749024928647380625930033155544588620905159425008386423410125517095670856477680830314175428940086885595069092025661118119353351117711246721773911253444020379109195421022134656574000659046377979811394152605525861434208619347789562933754989257448049005916774463128921992705496881760617903053881805330699057573705313790539875523366223136745200384249495117096698182661666929515339265871171162909426936912829970512571793742833630632737339077838344089085913502201855918715665055895109376369932642572078669944809299321066362486030153757555143064390679240055170255147974410077684759418431966371931274271597026314670440746711795618334285359977635351066776132406276616421818534142382022296508030009012351931773469610288680650954787035374090940664323708956694694157639247734466364098478428111850090981077174221894606221625015398274966772977242803718594334263938411787420730135177687050242905960887890693887814106368023285421129347808536749786803461051186327863149458276538382691537276672722572852733404381192561473118179464810490851245917809616258711255559956996652010190120536535910868276957928501785333291671639432151844408563161397257101748443554898776998865364778882254244333083009189998949254927750779637920852383002857430204444041206429295924715993311517156808054450836721620324088969096609148142375339437619197695416170711677271878801208487465641438635109958561945568312865176589390045997594922644884425552350418954672366067277597900265099768525667427266463977959021045112616878393297754336774141797621736591658168248326683212169372685366738843552904687440336100084393189372152970642678576166120975116811731330270169684329805755721143709769596239854729386103022854803940908146410328986344226614815377804555586939723377633215404376301862785795257994326938949572856187946955432978424147903178683097243930140813774278907278213043095812336915949806078547571128458565588821199772433715927987579324254294552474226724315785729850048977514561152598258122409927640882579525208934580525094161805019009775032840524158097668581287446614357108819326398165776634144245663253169955787187042085806571594447828333129012917619969305904173674885569158182015482932867921336810308224904550364113277522480506527793807357164194079176408025043650062561693747468173491822341942384822717792440454965146646440818307092367908886009458445921751793917170060753939805630804213164880412343853373048247951968328961334876090122082978681055158291484871730390133110036431949283334849885368523905091624763704946678726265176380050849893142977558777171394496473712061830759849128341530068429740062915820006323708716448714175286027861050674901723590837727967804413114584596094332900323945864077596693085892582948127987326922228978147128081400571815866228931844517217292215729825442915261732264522168972854281003935785418829461366336130929940626211804638277478259420224697296321526832476941742056648359085550731124676698355593837079794083913012290553636618151019969259752581659122933193764173875802002604275708526235747539181282680607192479089720071334569064176102712384604531319667273109906148837796234467699379191212651289895532570392277666924658867374200333319403677131215150854208659720808321674941973980491172720245937845916612382686334081034695414801767049306410244917651362904399130381714918892065184549323568234435955285923090896031574933910735839823578577097933273429635570297695862953496884597868161265530481460279283599693640858856572079280136580155903399292966389873965110739478896195355355600994299072382570998815017409678384721196870531616302938435631848773784982705340021551352847777717489631501326498104842741695546773491753180280030009857683529627577134419328161181687011178303849491190010602868178521943086424486826138119559513083164261502777272557430230523879729370488334673767925291146639178929304469449761306603069559596123082338722947455008313032254444000847116365753834415480515274927876717086977539097228476463160939498036590382641632017157289452731661907411660018854873558550556664098939682498878383468552492100179995334104228623090188050989521356421089781618384707227603837757296941862563475498326760135739571025836413264108275307982724496338321259385674419306693588424358837909168232118561943056668976784367468179402976444366349580474565776788048783182217445469353123638116210077228647711288658699469031762313829818418144712320354630424388107387864286785419272531928998437525028447266732808102191692441784237604864335904284236082642153030887000843878867418205836676171558922271583364222622832433215376063293733010843578275919323869273200420419153999900020113248460467788433352493903872883158427377985667661477966512158623293914338550069394966978394748257781802768222402277566968353558480584018398682438995157162452520945427460706925226468751461082309346424143035671074163052049455164297282023487992700486378922923144754377270783656262408787840587190411694852323133709371862168287998496990506527692457521781460625821058170895993211764110773659649374058779763361512109927332602161489864092412403142738238020381315858745017674189140313457198641629391486868626734838173649614670280109194633362328968961974660848239363713935028372447657621999327233843411156438768229845177857976443527757100808487320738222767833701224491336420560317764033462135627078560193170466382568869832965474215088576314651323242285768400404052888492891244612305982201877878301753778018938735737757152296848505459966188471185909325358007250128325785245759971159542468069638869240207487072584755083901874399198506068015508123271453869421525698534275700317644096231105154443181881563523380796762198961279812794135861951576424559189165575703929009209671805508285030383289309115795939617015710749935251848923398414477961188481283107856525008452523893485784252976900433321386580727231865859760136780291324024015474906834273034059251260478131551397178078932198509781241103351939681535856162819725847283121404109425205461736714248403247363229033460274587868685736840067099531207305119241739066028417572480165124065860624238224870884983149613369557249345823441698590263513669252035552188728759802515266158880378163860664079085032163074407743620050307274164656667388499313398267437629379143430147082751155813057395632825996931873053145873068373061022066141320498173075482230580606932463286983266483753406801970587616826409696380107446653772101436920099969524710579629547689086336575155354755812690904714160527269526824917792893200557668867741459836401998013658656396500705796315317676220845623583581953854847085821963495294464132964872935007838247129187625659446662486330947884526035391753162642042076831510969998455872450236084525815147293641771094856441000050634073660692683354130196807707293962123318783641651221207400431933122020633201112466871306283669602705871088115165913105480815234447363326619226290346480801858808177330253501259562965511005938015069598248642738180855474972615177872579827020662498742001810654160818515928157058871702461273552887869857776424352945472306009867024082736556377585002309277315656807113271131764121261445093545225929209403641196053724842938495754484843332028949512772579173551811562579744851917890887617737027777875522483057741773728566549446087882756503856905897450773802723542676451606283322965425065168632842382373146294545372779251671931132050880231964017232278442104905057544709329061498123033602440370219793019346417544771979969786488162655220536705066380066552196481239185273385559699346735032199249102474488780875530308066870515834186223041004883967085802234052653267801634198691799808337943752517916304591367359713291325591605755842823684909844579785633355018967841811176185768600517195985831125990772856333098632376584482307942122187501390174931192838479066219706576859410297859807010896227201667994517450792349931511676762438154460476344470002258250964550858709613308410130682155908536736672745894484628049229324096612117873172667354656097787911121024783147397918861059463897575329482482223467681507844270553968159366250333064074876062548423421849015069273147982230507467164705660026319751547621111924709771568615106183935695263637461564481561962192030438477681079473146722453128681863113036649192708795027334330277157751248007710232155199547769617540070014342407651311856559837030211778535368994317120688425316569153594254795720986917864759930089841038365713740026506724681304321772181007704441698146301403582526993551924892081430513421934545564558520841837016967715496669850935064400368712539515377248141774197926392646379373540695464716439722246205618781645039499296267524113819452639721994892943679912813451666231426861186619161938186806708126282590341466669356004882130277374762000388564040051623019086876830800031579989116948034809863070202062780436949370795219184298820521653454928228825187506451980169229961587812072682193395541434207045846923212535011053056760293629220346168815060536750548848409652843264835151320060673265698544352225955705161354850750960216141673751542623800773231505093749742981502771153944294112909330393245550233500728615058972442144590637711206836566237626539422529648021289152521785979686638270717168643071998407210864899672310859246451059936855496406482203284579680034024942848271022005238073354729035450892646554152178181123398632607224126917955723642437950786456799195346946066942000512852051850863896496119673426369780247383314908451596411353458226074112781785169211511111503094195073226071988563683429935938380284047038454701882617084673500597929597441144362907285424895675494351991218561340574604386189307346358568773253254300857980761996998424247038566196108772202595638278214608516832878983903382740228435743993879942843161090236317025472321652372982129999092557136092946858941268306623530634433248078343896971222610720024458109267642696992862139417273303783787067286493894626386712595950936785051854958580241900614449063634103692065219722886158838053454544863467592984808417090478425018659179527535345930973118221417519156584689108444747187118094252730135707189890230999611963915920995039190182355778459101972884125828146948536720280344139917338408370624709600573249085537156146154079776252521899374063740605240898069104894516954940976639409630449451755381133184671411608580997354583651463847160877550673906139684639409050490535144785718759341395539098452104062088598897365431492491256573171219981929519782753120987043087541251847193107380977913389284657237800542108509067335405682038518504809116532244702952609501152942144933337032828780629097913354705474941333942906379708679996441661516380854036399993860455220320112849103076661903460365450985605294373112421027961902738476804780695534468749984494852651414955436316669659655126327550513232448232454896735111541905041680227537330294271038393160785013400118437843879034959971683913003932176223051156176100590568840540148933099970676604998702093671140000452910695393974312213140518683457744207887763755059077204352388200623068350981200016156026212204802418578816817614622435969567517178618829536553685353039787938573684955123188979314929220230983835540508168624011862114355085736766810912123545309309571166085840367759073259720510148943035315309006818612229299958953636382370504272540271015729086958709702433007083419858761526248086109244513511931450435635080608205918523102940700105642925848036896026557290352263532988313855974027350802078646860105350537965245241795882947959105008769818103748570823337874248837851455115149500935253608279947657146615402841777980945299098598482012668133926608419099721612122244647977184916633192323924624972930604404006256502904457261918802494985740539211422739395260793430952063439872633569416472464022548334189441937488335871519033224814373192208568622712519070090351510450962565966643201576282063406564773921563690803506939140505886626868914468426467547724236865807050667880027107088671160348200626383926169929387272288843592493473862450309910461706769442674821909652057030083324547089508704977739137810318697498985066221912489473196780855514283627735345043962516064417236203070780254704960455301107737071446275033143306146155652698177918796771002454667592290592714316975246153460537534644109493430183728337772006024271445868990195206359310491669595397932610085421559186856053485417178485185067617740863980079264475219954845902298665989001256284430830088531940994113699030511823232820823055986776029884284887423114021387400905674331163013469698559772592379028868070688405490131481593851126247899909295882783289040589716146994323260136325235024542505750536323829007789103720042705267851721993849780389663618471441174373085357955107614718376224545147818748785436245971770548185948514306508055674552371453497182605383312333077542098763701065378530649843700097525153370992734756115627753377526457642129720423346663567677141531531718810326807107351483425776155462891689588146505859002353908093562316033965288638563515987567502745903437308119200458827452747009185401881340544164485277632948477833253604575942199256304280340249874209207679879686615678165535134340799982294310624365573483006972682600378038279243972182522340117182765784598787510915439162247813898221329972014266239991777092710563589217778178293843169767254885085633597344449130870899742585854642861022267662433525643707945237034293299079547027081264215559464380580693735832910901382989003196677943881878991804727693615973210105168308676421804704092171497536646424002178170866696467350859434826052136829915558081619273575799940012674307154804292557671752850962085387909311606310136265546165491027241411403664582177815632150030043088991574855307023269854485917457218693299982694285990814510703671025734360191690433605763404724054981214229785770798300343450639465990841939393584720326409466034313985022840407150737061127096566272999445336873167544458721399152725467300720255112395748429994616234298030903288111978218430993368190114695510376175696400735842217413901708204739090091702669243986261898582768563010851110750742482252898189178886055697627489803596192877487135705335980835492869629437330106962100569224704420321065568194389874980788073731114773369253708596048689423239375069755280747001381684284482361974081667804535642780657205515941290864518297217021891306290855303865716820134150651267507560180661865275601667967743673277141544416598907364602388202684485009195178649523240745136677298878485775929407413934289162897819646434311118415470294541146172290618864875051562269842795160960036512334038892871157753307320650748906018500452721025826369600896272043093270838271857332990010522217599094978679274785094157765214107782947886535261043279265768266718227533133439830732376994054865881953848404516137049665596069991285739837351735600485368133462340844033550731092488215979258750911726025280429713386051638894352060406455964993033413211795070455152813194003123464710812140259091132372546202909209038575197374619448118443986431620385320477928209453256424746324741150740578326520840144601145839207829594446012794288240604897374926679361672195403227132071577094779270499452702248964572198818718859840109285431802660118109469347232611892297402468807496458226671243304892955632116264145674509441800486574498909147361899354309766419851778912316932136739623270037403665392631412566075482198986644896565045171870551922683933419027545849771830752117216199015811826119873140658015151051353292145778506747154090196573320905127148017663982790590780099918168428554203077078586612896838433035178080662441554532475539561464227536147704017577607351971248217405964799906509579062606614038801957979159607235887321898458032093619637398389882538775758323895669262056682521475854592972692530775598879318204552679948888117971583731500628548838187828950511067542977355766809366788945255666538365384550015944883482905432240056548662052172186905024081416011419026534704995724524191765585829418215007893645782911530183807469007817621949851166418940627693796966018820833230110839922338160251637888790578258744800610304899523636635247008000481104661162159707272718574768723686748913036212986467279908939361677056616135017479185925308768046386478156911497277627919197693573978923985667603996136213452239388950924472192887396101429929046546037995926364013600261821445614937781382419767108547246047437111101119629337534520150017457442259367198215283273421097160838738894754187259554148210477817614878314620179181167004634929417265968567686613699211128738413454363039394848649848744042795433603289277509879275129303684598671229500310118287509651328984823580224782542594092862126191251431744515289908990540550133752919537983305095887032153458159576274745017050840717418283052790715433176903595019290310876775530887542740258396232752320833683390684187687978460396577748007520699635705534080407182107290702965296316499897133720850450946810498336056062268626322780583485638968286828223526173330250912018192681469397220485853923562561888384690687833977289191518901431488084939989274601601091612203608719593423862150965969486512527429468699232572398928514834860554505236462482347832071865914630488947795483254507488349775126235777678945644731595961864594683638605581992900104105033902411135120763266173697359405947055679768591429801078364241482217945632119560253379259213978595016133044404171674120636022720689196577832169141862645938354510048658100986931682174948264354340833869299779946730006112633752583266195275446076020104235598124565470769116120968245077390225306300562928439420518751573554633485293388836778528405564209194587317653450717367014700989228266077686832706918247700039523290975396489607918987719814759554970852335518698917802085696726133034257093704708724165206617873814154110331335380514545171564438971413403914618682309184440769386081806329891277547609786629664245650264403601660456040347579944606405778314358343934899165509650269548020978008462132027335778299550190295781712491081292246768414759926841516153261465058073118114203325182872023082004918347498820957664894606932979962839515642275616433975244858257065893785188125566087686521436490989505852582930708048177842429306800636414090553831261477971940519046694478297988856311526816613420335513619115521578674993639156510377905928218255114735877386954790788030864795427811654313869220378508278585617057346196492159537484977145162549442937974608974252174385374622225617505727314781168193327866237405354628944026596557225266300610230143126250858304160753066568513684486710788351475379057930340246216129426648931165207746419424857562478697689700719813863822350183015747558855092440987777651541929052876133496139946101970497749005479440330703765587116705510044472530209012754908045628322922937957675140027231452483862245053295949865439245021684355140422096404845265321902432463775875045386831823998570745281015572902029654477324504197204862203335095218599775680504530033315169311001891135279854668782407284730449129143469882237137731611491941208589008482614437317037766988457071963639862973116882268985916674614960812805318847401244308790941483378850083120310458740166361791501166610522711775003192665614396341906354023269870404754868694931764970652529406757467268165905502559515168256309514821333716795092600946001556131340975511367091898745557717335145382397009229078235000837844012846770474443151148969691411385390038585829004347207681343318906146045948300241264613105115937531161412736353133858143874684647665422283472588475345582553746508915957995673490181968402050193512600877119671498363635845210487646638736023973027092394679120889245991236698151878493396528501898790463714210971381608517457345492502317022528959897429633731157409368733629459958571633576654727798954762312727030357717025273087822212279537240545592199520731452491721203392150279737912136926558651428199700845688510184017405927020316610327116398538177937090212187902510356483848976856341821417522144071160864647118016001580697275467556688254118602515176264819937954562704181593726900214975194628106442501263272908238092079545864471210860435937356565369295204679806262498904798623161533210993404144225076005107002976614501495132926149827820248736652463655279789828458121106757089991724198183632347166581860489282123757593419423776646402026704138002944042085037805736618095232662390905457949873478129106333323616707850261702152657222283763775197347119278207313154767582443104453055990659291437959494190722073138677596210243234829168610153737340595654476420355459100836487827599050248467693341798647058724418448780288755280827334769626422181946925722252795884811194219288202530401772170106955608096731673995067612691827565058321681624308380812300489291335837673994681226017961836551198819765716268686680270341652327379263667894071495338697845332125718495851442268736754160987367549402577018115420956460698451037649609665886110667613229282706477713666058232761141891662505076170212863084779910725347420907020749224373542711333714537615064586885963878521877012188105453639196901613253435445663657115260958235855676829608204771737247303931887800417255902631223004040276622201239715486928905960317328843219543703934248753950837567437991766959210451109130436630787985678531474329486939720424788277437381406419195002354845768919914206466223624107182810514285635452539330880068959225104443022374186387754957196205392263815521199214597357701562259214169668512111838924347220753853526060417266759960673692963857113102148186734846791010549031504579085976915019959827847382386722225411144856851523080338443328846467161065191771310414071482619591852879577202972711924150867312492280682526627525432685360154621501723554466348367384439803667715360557951898655619496229880462666182374278982234877578276646778939228147335585666139561698878357050283601506722397322333245579635101224383112011137848328938921876061078213005835319848702526017167782451888504271108988771054276670155274843471118584540042039539389671707455665380136036909866973300342191881887678703376019370402387726425048099358471998787552745171023442895896507596595861647450144733232150216742622337155945272243627263326174522723396669310711692857517741669751095030739277122926570508765183659526953241513661651635485179792134353435921112611695578970339066209468213488465531053549911092025241742242381715125059394559570645611293339829929587580247568750801561521869263466804283346688759734841897495978669428025832576527471237249034066057763574972205229155723558052338356713093217820086375777919542089675825416799899079591804669926999477367369428483141206165211555815485136212850747846548764693097111772224827284970208981098669193870911914673804431052918276035481737012978536532052625027000023016702963972003024445333477999915538873751306464961111361505364365429825925435194116126598931409429564071224125259269379711993127771162788749225046602608785113919194651602137738909931084374417881734179456186531484001760223372013676288064613095921615133292221993355353233737159659642293248449975980203431017660046801184789893409415282698337787553071688491810681067547452301102764105088538410647691213682427050476407534080638169471903146610793987457474538234345538049911161221647256427081056074128031345760172957321396029846400896933723190636362440520335360641027131817427697692085585146483952595996896886340704072852923204491670644786887722378567649773329475031697638020199915723064452700694102534317642553146696283969253172246459072332847836792710799356422150075140088573678565066426437876068286298721955844623009257421458274005587698553726355582704043008521902983404678853151891868312758804505227140353300795093636053990867348410683171078417168393412832858287802979627676427102848824732784634295673009669168136236447116891502207315307769021802184867164231665769511192188936511680245949654730526632450645959461416215226353234696714921888068315245068844649994540928681774058987898504947471975901574366602918429818972479716476967243755230803734247652842328010305505196531310194572109502563054675314772582434482980956418704040864171461491935078852406472157454333187828290144694180910405895325613923947504947281124014877774330602003425897426504016627984525490423844403808683887747009933898826945144805797883394310687403290978027339711518813963277228902185856931501957057726489169874306732672902856726038857556377338794088906481377315238251768910788378819353776366985982906942273670073145567796217971194854224148322808258986176517928192946103861747215868336054443520401644156604559774876472267486242888976249111060613043181085580585080302006121506321751095348142604960747400997898279488624924998811430043218421847907366695390714465479051157865101880647856879506601015163769843882088487437900933475159237855294336944843763109372708697741487057689119202793155902806424570183406007713893809612595322261034422887622120012762179112090723837605291921754924923962692866159383081169319473538039142448790325323012813421116277064694047827341673936833097859425786987824455314092344401978469911300386046300271217953494282893623546487254149985677127081337308168649448053928800761397395599059834446672271906929741828392950043744462485466888224840170747631016498553600784883286819300942578287579569015940286101099960034222598319552460412975592053465164033269601797858118106123374947978120489167779252588824077842678997160955987053525131184881450028116095272928107830609802021304984516633309445541203022192666166290464972653043581547899444701750608382081920744487472072470215121568347372431922903412461010729282801391795822732697953812419188829741820895571540836297773695140596238499396486850373351848672040641347425072171362372138609727602112341187734327913396947668608009701520336542568668998307423494285866837339924553646859804672474257427668790761510219475293212856661226019302890503229216382048488376114812434738939516334173173211037028097566562159489938537628937527669791666195959664696124915432707393291575346649589903457519450924874517600845467386914382834080469328724161523474643638797812440766300821316531504978314181275300403917629139216505620328413206467906237435402977445002751326895554338970634814879467653457123120968882938168238416207032053196138490720617361299387404676976853413620099130653851034967317124074680915009397871424113650244019067137087840648495837038851415529242205466700711776109631236456375425674369829913811992626316355274444370537271063572561280771856029029773312515890932470174641503608449262189001568085308215683247872073399338699544242662369927426612931549867851629225236283256803044285224937946932999344565133371669063768425375767070609542567038526984389047527031182684300086945307529988998981932777882092179282294245488602695878269660423220637660428611877092661039714698915498795429629745894449160492378066342690399402516234703267872468471051192146553594773200926248144960059745149050097595874163109566940787676177675190042812247004564496245362348211313756564185991697047021762834597726815407881138732351851215268488981765864414091732245159459858025431220235608324143723199747876469579032287346728994445852799846831650255135953928428346650257440838503331398609638711506998154158508432428511719189871961614559779580295374737993722013211441179212141562787752720208471489004792205606002768593590941689995286255827119545581755561454721451360782989353133521728755228214109954086695470437124033859743628782950806523780830995279845124918261130165018475536671021896712019266134953440754758565563186229768017090836039378561850240545286940367842171367036494856427753234952485471111679396170758569651234609383571743335207931084191063571505285215451630562555199216119281041055684976815180091166551420188131327277627953418938672631481288249689544057030715178725180392489079714999309043117654158538294322475975427768709202722185569601402349233363825511066782736101615669964740883431154747748516925363373594833919796004653332344419654461018935220133387419518275964391274244948263721071865096513115958314130711055949215326817767460064517225406728661794370608642428724686029974683207406290689541408078369880756301376543792443565417795657057231235476855590174885746682057461639757228763290385611240339423944138744628115589319755975159702348897901769237879717833945082483222859710130058414470246331241029480169799568446013251793245559232887039534527759013907238246291168076687177189046227570714611247676288011789323470532419742623755733378111514542021044252810064284367409623716311905766970660915002826163720093904112145861059596933911711400116181684717357777302992750203133741270269918103426065720004887893441805836487162975843409873594291582745576134974146900131070774408543123461821928048441632305144019731375105315909755531019781914009723001049721316082230382192224418208091177536179083615723197460663694657366775322557100682467756549375321240740603938299696447687557728899940528597153970333676136982772142059935743076250820497642504641791520252801722371433827937186408879971247770064564999633169228093743765664527018185574063645292758455416677765455449318706548237319053101314020061430575219977806537154654506789899474141435789748644025017526524588535678152155776667204255796649803263706669978196249059215870468972792845610807997778979571656240156141313418537486130525186020514917242658176702850541131942798799104651734967049226579399034311966671157375709314984098836539294952125470296300265982382791091129270390750232266568313757729212051989018467843337810875377160622549635901595045258269655327843207811497682315711368100921221341060154888970424112427631165974065462693046056281721571307533333269695531251613028710666242089722496628116119556068685949071566679348647103826338376110998993993131763537683922612770638981290681230301986849823760666803057566560403168289578599502949422851633725742177827273752513548407003511784013922095536260740434951631292507416328691572050951009567187428456816757432829430989363144536404569349152873643296549836670493761460739636273563268767478061667743318609977974770074735612739041704000471338676370594807002253519326509705589144287776563271854624746453528919813103382848850919164996114050169148867482919209980300011229524576659540634887986699136980505964008165000905651179572370401323955242279707373150990781563568335510595107607671646625911227162177188362860810804390131964650846199588497728476456543852859305367009452357507135433340151470885169352415101528376961954143997793199464254202483931268148880852266913131260391511894829502782587441323736715124176787524961274273362564169071718641821213117994826894329605973492507899953546137886189946835936403195013569569418773169136536043725583040358515525868598242665031100750478505244059234620464234500424617881040816405561072219677074004966028995252004972908457937623473784471069611706722645040144020827232578346189018129398597598233289926186364427315784104198981489151664384882763882956704794547602419452674812437363822908742702292602702190626760891457974968924920412599303289789711137822943072850854250908152051124664540288088541867090990879933664026267791404725886739083130718535328059437783908608551453238778654424379239257932332318039187942185838339913809847673196831753648374838481496947925535113818937071603379651953733412232011025693324950521090325417847347712866403563741466837508083771032383114383715741793934982259766970209997314049457315128668166164145211131317660432131303231565895915000261971540197719558040374003250645799333959911917506449154839764589262312688138080772175565837901926826375158324227651714975942167346343828113700110416962174276655108100661505326891607589572963907624464814286536199109855983163864371930179124749607241141210483142800814639806663506180106088175194954581165146139750123809524032860313545090695556893958521696931904719185815997203698111779423230042083471348130275254395625482791088746263675237845191630638337178952315681547036131680505742009695884602070736789873841156547064944058306921217054659424772715113727595118394611697056252503445799317126468236527190164186952302059819865944631394083825131968710063564539887733079521214722911412189900244074675652521863464215426415808513946123261377907302798277905963312424205604621161743829501718017572867939357361921228390393090645163387742668106489569638848431144444117332012928101108092168758824261652030734974426939864463172226579043712886029848393989070813641417605204154683573008560260326512809016666570762872458487318535031573495458515373359186874567090503998237973572602924876746215427531064070790347165036163285481431714991646364205941140027838020619601087095118046911841524226829390125385358756663231580121077682879211213087074299312228933657949298012389068864882736280287773135124272390047697570020775734710304983966738152438975911626625658832875614882199173928801508497001430280088918203420621142249322546697350226446809023646151661568890534494479574975549623650722393187616254261404938045408160284814819878309751721722294189279495146403062318754741345104468521507559504382551060220058613450091610744273250438612263372115624879505968714482465266407769314678617932207685197359078511551720250364346683263218273928232154311727635410744954673576864633935575947307548725272209876402186327718653538981716813875190766011685356100082671609685925486712807359468803014154541318505805077936898386929889597432297354535877392610772010379468248690539521670143304227059633927948728878385155209734351426426640906199439246247755715005659839714676908299702636028693502661786396522916048703355151478960133469035320258427597792570880083485011068790705583371131050270791248937815785959747731151118834906034445005915826949499814470386350181685810677143168416086991360055757277667399809351601847383222645179642767793024173521892516557093272488889525351611974697057793879836915409257124940075227477102892798311159187428461741996378969126070031265791438639816022886911328256762881945539932815368301068964693395120380014153064739414374886898587051631359974708385046009135789913895219967671793141284574211721499794247749424997423949786789527368581430360979250026514742058968388453197670104655195693917201640168810840121922979794698287208947504061019805118071686403697782101246086638248797158227519855279693038013773547444867196953617346608141285537966380668027956914539299225270949160653367392645973862493260265015586358578770946350742789583735216508625915631886910519531142747834453041955002318028833856767961935179007662485247623723838036413007907072816021396171256092912672079322021168214780227792733654766068097191853915330621064820320656008265958378456546097867842905231452111574586856166372826294337561381120236275193923408424835225108018494385004845897049107214897062396444705554443953816712138090471008531515543860343010794375965467508190010755177156486607505374016548429613926319453540370611643377897831015214298891014044251833998973177619673050313171292681570878686704584260515648239639136496163194166963121903110664131765543995883768664453428939643805011378781374662125007918968891197504079723978340180474476266125138800168771407399637658279704758914804769395711894736929072977643293721584725714934767318669458281741425845297522891050471637985175822212791521092972553222646102839654675787610694166743545976923830744450447349468255630635291746447038062972111110889040589518513341132002479310659375152756089388213981547671722233990431161415536881967035064374384122164316647829644271212814630868906769961952512750666057828647740326218866875246513535015157220455798726911491169362390833884251278631216380127967943328330025949726067116786897233838418641358679001400439645320008085426794469395789613349719545750962709738793398162162029511366431129341006365645206914727444101242760291531261603679575855203932208463355927463330385687826619106507778710349614561728651995297433966418636960470874721983775443009024157739681446495289058005293993365067164003624874845547475248604389092064324594338129542886268486991769024052744757101461926511188609328379986341464011655823998322932809582170385909882115118707524253330694580282840365719331843229677032877797304861932367978047670880917501894281566502748079139028376060870577031387635240920392637665137616980067041088832066160533852595207978257629133759462212700635551524898364748956181087394923582085466865678763905252607852575754631976440200100635109984028685280766980209055582862687604303790039422410381675660186628655386022037665614435371376994358361909181806659866599886751871311978517584184654822692945107955695412654814323197254100652890715704895701481353013641591523665150083202630497392425930646466910936404739952474019458649147633549950902103559893427466885982923500280388010579771770409993839154149620613882997955264497021487776805731890460513993980907190387892345089080459934188144052317269054214324761765332308357322634997631219388727455313293575674479270510530166234288700904559003547405705581597635341050543183672760134153003681324431521553419264700753719903059243054006104004700554268332751869386511442624166323605159764011779321447331995375291505422002622370909607156814035286572272282620455763377910054637185652712649648132025921231893508591286825783346394639801311725307761895609919185711714814136853598251221296087951813895558489980010394178409087996028072200821778688071863291047023045241325225286678662814000069244940955845073186239810872672079823656799109467824432890000788729804404199380419757278574727474593549748062377963188754831483974212294537365892378012690769773073618294511762046243740081577821318500663393346715071744573476246381939034641663866654769784187643852767951446425154459829392285699498723322954131702912027420884091761573773016337297450488800224570061815184894035538620554225612258092165918953104655840358149732899139808240071707896700845345250806675469806284259790754099045720403627141162988039296825483231304633067254000078597353860887462268607392683608544088588790990750976948474034368869734731418013315862317768815328809630338045914047297750526126861065214854679532038958875251381745214114728556201684605603967239936993719741132715568847373707328776179753092489146247933189209673087626598260229377157343134911065711214080707624816626374586023597425516317491103912224285079524947070044865797560844238432326041651755949436124815860186820317026580706876180315765525970950643380189266208488459309070586305317556687506831232082292691087682405718335228839156820431518255765767382840231413064016987990127353463728284178809001213858377253464432940996504562017437345566621133865862204822072510010686843517261700589553524168431202777387108390210408970455690532321092833078097617638854508138107451355276503697750895430688841588328360809194202365303917519071395448068717114190608505699386805976202821593792458365653240851494441525510450653165958507797589443926106519017718188088795546935039813536892497762445453729213015032712908684889065232540969892932550220461380696096201401244205061367465227417951587489714851095893401410986937364823160666350070152951388838016833626152296255207063024483578198571106404355625503313761115846669054918880334987330099547674334723565800757850732506116202503278122162122268468710401172611772777463495536054039442380537145144287641201987964508965684142332445625800660806893277308908181443880960562631793048364494576343581019049856975124708315296420662521919428608193212462683480755077774350031816447191033722291324856524648855159598403948452047060415692198956086725150252601012148862382978549647871853113399248429938507889043103635282242057938147682898609004124662813866452909054585176017385440972275069363192499004046476896101058132932238124398840242203672454648386623030172288811605842335906166942765859883042058941462069131910028443424267580377898799317942115770166667743899539214804803714841880467945029171436398524725007615221918477339886231657778274330719797713027359859402556420560728800634802266922738297295621497642517782248991323363177092938534978972531725297690908336584876271145556350644650946118420561173310453345873185721548181581816070166646373579127120939774151598923845941854953246943630449736702886273976317317611073680937110723010474954242466190718551641527615216270566673253365319656798725950009825047377383586435252509727769761575128980719996711198004009040284756804158375132873716612691070355718449189344272837413169361907598628426468146483617787431552117042505172354150097743247475032627539922098974734024364701959028350933157795647891884448744995104975882782743865597518187511076649596469712885706902581669839176688367449267364927427462280034325166753830514035666147362672975851211613087205101611175136319842615519529780631308904647720623048389946094227322464229889302406857668689136700477336916128216401039592402885662585033548131913973031305358318945991582535948280219834622780125321059495647316703782193429337984337944086834739941403017808128278588016062035735038746665330340517050518210582339198790669744325699712988188730034555207464832456321917784639475053611106996224867444014902290073975775500026046660697642725280631687679040027368951084776425176045943171836624868372918298640583912278336717063773346317049428774234213052566207486040866752389415354431779237502239771109506092944788714164010487123694835444188697778985905207301468782887254285095742363931572062689804804560934402089300605318337156065478639728331737109465710306874907776882711804393336151509119142412289968207041329859541642037530601290413838696529758727468376723601338649406068392957581070621901590532488180152336103583707705646437406305479806355536853920188304122237191843515891453217876770238943913528519073937953310359356768724690676255764628068009572870667417214348637658524562399984857631130835172693927297504570756714559223878889133312258820394156197904942144442521562150790948184046675437851282394946556514178531384116322754823210444080879420879672106928945864103888800555278464200194377792389224461006349291623159343419284010768206899535855694324567638366159820179762964579122659323569061723650076001593106728439557000175295155954008995359711956671048132066841309870831295531299840146764332162600067339887955129541660567977958891150095831228487699792143673369575422993346488770762318352072260906577990642220505594347700669789233128743636215697584205213709580958768763034788034029866033732355870725539850707459534350409049880500382109737702206402576287075970197107592047417124118351398700511151560944332834426924240289357418059387879011256180755529796861569108976519678332660101106300140810227264135663724553692356050760656464217848000529337560211026042325993415124352285631551383462872192264431226953811234935755492226982992174132880224715046601277637914188620850254737579227974744372784301225788235294366320443229787528534019231428912048626393270470242463577045804310978548612851958972938754015331971806469505436596708970355230501325230974565688601773641613327511390078830375436779335928507310220490239811794762230274661972940587824975124936476607654271036272513936325101522924334367538346912194214408661599460392365035328789799915535204203568466535972181094094450414947358055751011987417107250729657625499820960549716464717301251029377792725953175931395403574908836062528928164193995693493231435646987140326426384059559001308243255471995902796588454027451334090922486755356113697724645470932036879781004726969433524247951238024930335809704712800389921061261936929943906178181772649636403255955446422686558242302422176655051867600030540123052906608204054690082523077074127105644096119235808968274171053402713895936697143567926263306525599473096555478844611834725025339353958209392553779799734112392130130792967881375401610831687197648698399353007172441895232841008663532196320548247224080936546958167967486859715709471112941359492359459231213984604516570751030126385233254054047784788217120371277938584197611653440987609543008376557708731270148354972650445874067031904318981668356131389036645544622543855536812951245852271318164487011933870874569707814583974374053865983491668122158359447065925198844260824655213216039839810542757844593685112225799390183679008796020765808374728804450077289574518649015842160098707682582881849878987765824648346712689456774831059590166432353829243801923764020595305772459793943897888964224357305447063799565098987689982226832536135142129027247290296574765319982921935553552863493228084768599770703433439786214185080619274748366885228958225490830613016509719131483836678071036063309161386346062980578900848139537803799791423736653848573188208890630317703794685314457362182183080397490182142041743454149722032360661984217045619459491923187373780580445082265654290575270643740110673791436475105544944965354944823127916806289494364276236186320711357535429035662762112531494962760561188768807584372709725728932697555598741242030763938994534170719919356812053517165637000423821221648566695724031667714640433806012961191229987462661069694529364819418825875745362802001292803055145886409997675709950477492330897706010203663223524011239121116195376931389713536871558058396663341872000368093104505480758317752476117039978905931765507458742368244520622573105433618630008774285361917653517017338502069323980855973679738257196198570342383833467047348854701771017525377183552859937873746574723122861456835451689821140742550069694561063271385345584489245217998681781933401375321174778036169648502898238434584589079830790061963267953563024713006672382419884575726379583995735481414223223987843791640743001405593635288564053278738078121644572961180599401277417460521835130215146857963328050942593375431951616686504639897144536678035469413270559854262401123861575743119066749505270188873531747925508169071839728943156098101903511381537941283223777310376946809235906289043910622598822874638753230493408423437263999893712878243925670215625116972837751953573154694806727436431107304219180903315590309489861971545750823550496937792912452057883463151923570163811035697983959991200427559937785331647004610069099818538258641994697370573314833687174163633210631699826269250085291305116188077225041999507015189647278326850569110414910152559669065512013608136067840221685694866070328227660386055111307329223445769094111036721617060614978360195577344258017468465426809006249633522765274925968968907026184986758926086735311696437371833564030759144271700699140218033763917405452199099833203547204646715788884115637306386380767728142279999120569415335278611676544499959611929045180060814256508512054240814623451586022688153070256568991671967609679078978721904865344358772676737284124417650253753440140659947723366422800260188922201167709822617683048141798302376539358365511907041885934510332373888814434996350453187094979165401586653526382492452349416681627252765858525597828716820363554559563549858890887980584456218426667928740457271567262119819590510841746477726336341398811716465123033504251088869524840832048148505388164031526410209139456395574231314824041567121269821896182149300169999497860876569573469422739816693620766853843795194845240776720888946938966751439909410908611280721677361000075060311957202459238340159180853295689121316363115807936350254075790308208340123322755741827335957700749298898139109982967959029870997263465702441130149890021781808168895194151533466272244484224015967588546870716487087495204080298626435955784935556272592014835875019906590512872794681521443768615262074875942304224532584158954531076078022416204141048367447662226201247520574715753932454237764584727450037377348473029735062195528084801022543080396795259598579898215067457996818260948794995829019181360255372275965193546502478432377693524086310907173081845443410137017981941092971822466547416189240511015553658669216586601756209222026604759967487856284656357050555006323802992532138037729994407971724828118001560871492296650634665435305797075775343266374741036829118721461309558512713025296278517458327012698828710193671407756355543649935917704483995613593566582740309567466380591864224180088988047081831200735974448183430178596994345188177040462965696044723916454817238845655615723553073426594529551217076923999162518166948586083055906006990038001965199738680361003064701951462606905993720898602532991000612577935732598419034698062370549851644262904345105981130391503199089511090866648870435320062374725687544935623875015292446915448866430921703469443731001775862750740129304755956018971124927325304668951286839983104730792353072762462305677525750016856525409800901206819031847154593080144934241197980386177887191003371670415141676937039757491833275398162545267522376677597830641561154701099033128853898531275754443997052499375619004906219591104912136409001378864415502224747184469612563478275151906996123294176896962549184018300492148969414147291621399565226156699648170751117632399632678573601024210068848105118336733477589446362360845845926922679110082280320418814942517676108430215035047295945527626856254108098406782463266529911025343392891206995205701719513331044257622632459112679630645098977733728844187768072107921096670325178844096485505718286056184546713043686213476795482813053841142932054401689218283671359893618808931270571437835570745942799525111303584016308675576286828613818590760998769231300369709860520598019543652096693301881730098845427396104827880251095675320223773696356978606052821766077146293254880807600157042172752794674543088965425048362362743196976508803842094888869810105494188545357753541833391775447774999668530796439152574436201917906430244087645332052957976821314495340727444900802958625333790685018201177586795112038374196742467842104871679676120650200138628287956424493266213006518859363334080093246861570429419858717818766731084714206315035304214461709908061857546187238571164053615698456384190482628591073095628338797876414396971224664817281458686751901101039831753457182161831040469806589456488098478079878192272745685710403523425638094897167305930234871562683134534600941101292347521650712691360526405919265373198991024150188059059808679004257894581443552294317671989887124401690426207979140547250488007511477617342116181593521573630777673534838041781659692386317086568112862313148800029997724149621045279985729097639955419303892776062301760558008923930945441575511586993713167844577634028737097710091699209778040698658985744446701927558427011537581125080182216237073786505239779809941479108610837215925520325569810125937312986838789350272696239437364905220170586430388162860875014993652984113886229709558816136497292152131540921651854198285745036894049668018675224272898393503656860381966167792977524792897197032811349156208815669048131815637062899647990186376503293686922163978149687950240951692275395279850606111472203578074489332972541115057912804522678637977981787542504448459721195559648276063463433073975494196532830612885585288141808483237292071422718611339164585953631813679619086628996132521608890258202637440840723688130019780254488966788305628733588993610966405989429866587405423926112107712268183582549283376414357761098827560385142794948201093620354345605390174571160291873144758566831116215240925255873411912723011272533041095616211163611535033245824469340971799674360831380759228073721483594804670162908157855806993706107269254693303329126395252628098409214003536182454654811423253102906634683144511407136729675316039090818912931330324745658669503292476430036602909436172123921668684631458366521294209389994723212280037322058424218362674063721136324635587777284027739801239765772917779112310245529016647125310046847346100238915882268939622061627376641115290322894019694350668871182877659455994765489858087100874679849835182845599824633856550914984403407159831243335439778499731123216376469185008560759350573808108277952062800985650595122199704541384847852257662733329938125633081088504518058209877314367741487256697650884276225353479385384179391167321022204134966122790122814886836939990815702842883286237119228219368335744222533751502168831055791037773285156761039076279257554171889018890796311279288733383765648416511618658744445648265272531723326058399038169439675464707364281934436931879569865244248620261449578310880692136796695418870752240516370388615910590817933420401019706648091388276390203382164774604031556656766250932411129175302648878021771911481103945933761929291407381994746655984101911350055206016169487094603456642390554031780270686092023453904268063328155660713843189297083909637052079221182132064758834141310651661113001443962074068028548208698157931144998225365245600861429507980369007589028670418185230759344072595398817271856291057480090576519158663895417865786185894148827896107970538552604740589084488375598216672948810132574295261837542796655554872771160505482252019539852580332838732832897038496218482583283715282484923689914257440403915293041581454009651485538070488667611378774281434373269675264515889553353180089043602517126352324400298960084555569681062667422905024098001470229526688017704584991466077458645784966383549259970647340837981013336531031763866681427237884799793317733490606865654539762473073382781452714656811135945234606188343409045785061367742520734003390357016277021184749975451220288214307500356613986180317952797663576477222014586745473887760670625246553228043885433394103964009705445182585020323058565378725514363612994509477747212038932789476505086953001051231422490630280690267518295368023677038658719856623060711224758325290998461787650541168291033408503118353569213455948955934414021184239410837958919229832908047042160197469646661449957539077496287261191202207328506273985845267453206845391307531914131431380739326639664247820857405294106583679384466506849657099671171361988597281662417570230367367698331880991485174791857216666113557714768274225715061986485881084710895971594189628569820275829035173430493151214623365758002330772320462973301816940403517705788162683046310816148840346709789726412106116794305816608462173003244912345320411608725761536232429073193100878245375338923131164637985423357067131508595833219711757151771681054224242983170976818844635119977536234623685740843420460540122200785728936046088673265750323156279403807874219793691632603398097143807029414303694105617260909622267153756794968048325717025168317671886165832872221569599006124462307970789596052226992114597672282292260888057083610175930436933338587051420123066767519557020444937824014473390857369100422740495949876185189437504738577749576418825103076760835241995060415074994205895423599906156621610777207291479260827927807654211352463697549981505376278600438422737766223600092641801333542216559749372730296362414209398355929878362281970125853361416337117973173338960918502076881883563172870462686252196412827814609512124811408811421856927419638644618813281098489511012594744193319506112486104664212457967304263486002347934099203623923544739717647329577732140678883964774750724295620167949847021658785894158798230895754918978012657806720846303550559120072421542880561972374701164721576354117176664335861188196531318161782421633215613405764242751581944182561334993505246735006080581975080341494856934450593736316358799311844119644854110976246758674492968189850269561653160549859056575445809497358867254073691742995712990740942989346141041551736218651682869889474883362508753697726849428664858884720842274588298773280839202850896035233706151272667446443598424141452873235344319536702588456925718501319838379168796351312882572734486492225941279102992239055560112403727505417081547191042336913939521269037792312682237109837445747330949053072841482380535821021349849300898966217411327907889381171867417695508156792808204783942732341884046932922716700229212330173370219438817533096500674837046122774022327247077398277542559030501223759206215918680383815917627191306357241169498239580857226929150745838131502074124586342317197866578317876244734307902391415280219833232519470123943962700919898861675792015371804637025269399253342568784540361543266433369261824459299398147113595040417689189183280800905736775072819109565579716221776980257259942830862136024252695191274636945748924186550606405165394503375386174676675547107240585194021592570100811903646590278405570280164020601685636722292001749750193212550379523005124526997087835671238421381346652455359909057350467408996288932260294400539137143408681443252202910048348086176094728534679918911387586282930169934968419536736720436007874738104838737424032199565515695755006356319378558004274094990781154403870051148944506726459404294182866498966369905543085357649108170608990682885901732851746161772173575815638412777324508730635273216563420666397552180158428601200987834496804309720877787557171051723318922282361293316854158876997705780036605018890501365276900959609549307565925640164758792973047113011226620958142807955810724201570685399918554238605731977854336554176182452084041760491442800537659367096894792453319932192106120083752610249706051068327346694903988459204119895598379649846040549878419859453729308798107242717809476444327283025302000668706381237912101082487341612576099932867590733861613962439251269144345331679203076227850624543395713309660537393125992807068259386125101179562840821430352651781916233193476604866253882652860378633100985045159794396774934456090347547011735131062815010955152077603032972666825293169657482045508510862351037028727216718889125143159511169317305834248614500069578179699940036394200974137110385938805062716485598182078775770667106759009002410842760688173664298524027179310989881665820029342917822453489319027969342568744919854056681659071826990245203215311458343022993472844898515313180424945425869339864677719067682564040745262933609337894019316989723816455923218634980102727951486107599908076718893235231097322846270786923959448797767893323425803778449149413339764908102275591976931255605317487061567125265400673772392863348902935649268519476011997295164422848711925843690960231995550837194686428553155422241043153246965172358109356292023739119007703254649882986344400354564633698346517495660189401418908954189743118195637585991590884104117654757337388882324686631707114544127051213396461438878901387698598326605681054772328157615850904909755658393612715270779697731793859680181483135381933708537653280072429256395431165896239603077824202025783088682433035110855766119304839171546514946529482408106488329323678089749317979545395621206989685835453296017256660386480097572845888408984111076659531634863880629288909747669664756012905020746701274940200477777001013153520537007888958548301781687163600945649086541485717330330857028091929247690459398273687751731801738664500234620096475244525229418565389634691375361845058487916020460259324229320462569152812103668867281803202218066785233079629353592243390428986817320846023282614953874142180776562372111879606588177004648022977961041469445735180931894814673296996001602770726550805081161668980715476649734196667408081807398460564995231226124895133094719454091559421701020533358793145050431675321249024429902901963555981553849682519897019335463685226898433830325897406967416745350012731361321365270241535432962118047542890961383814146612247135275994638407954393458275221658531393401133226506707982330645425485802116683902422324052230778805432533127165734031635431358912873513384890330721812060955728027472618608196739244806490721619852171896258693637908644329957501773217699205272628270813032378457386434874923765205101582409971121006359912232257298750368006083165733530840561928988446058041282528624807426082925808693561374790462415435971725123590900918656426809076327978927759116847480410306881223592106137749798432213858665722992597141915330571142233303313751235144042155641316711977511546733861826445320153242396699511324994234362047595515442309628937416557053130169231029501504797759775364479775537197588476017914497108986655986272172269210402125050626021344257486462963810109483843921727899834481760526858763480551764072965093745377713633131056225992914417643775260153606826989542954082694225701384637849190944800082535044454114447769839085086186403693977292014989307904800749532487525065759928097383589233707490141239310771187242885993274004897341834623360787622425927487594363892563846237434257555015687063916000713810367141364549751024252327230346120899076811694620002248961507844101746823336708786473203914018120953072753045018486388234487617017407511156074676377949939080079140103657356076773739876370583542214349564510948281300034089866823985905023352922142396026167939719776144180683054539542568403867748414746313209614010736757415648617802699658823144894440578985938708615687090451304366451112635782871484048051219020153003506144877194752001377328775372592963933109382302908039846654627538379706182801286521970873450406077444360463318693622224120564472459553543276728051276008348862289113093608268982662070115248240536316984617050527965652101283360197733515483561780871490524421351191124282681971968352759789283919740301431115783849402519272309921976137335982088267329584933147798190512145292869648317520055697858657671617468191938129941869947967430265812553279503778855121049802236045596297800092239765407717392897995101850850924713035464728320266396062083872267766533886438310462634509514894348242477564665454354959920035621437985895560256177806567509246619432363716352855294879248398792525744696708328056308881708061424685385815836903507787576658179925697066389123074047721830531540546692658072995898640761708905283131685027839360589972957231608907062960766884701885516462855848243013830246395048685452898144237098245633976692310616720846408825140464127700692742538401732098322191865153691828055963736435650041823103197923178401407677453656166007229684404597205680217019275703915040797738507788312671198788414659815131351319907993498241566422537583103124700788652374248849186707647221587726911532454317378883639155739097856171892557953222932083268146811845821971863750350190753710563813034458426011606374192678994833311553206971183437568107886334272912765794142397543999221035472987646883647172004476032242834139527752942914830788501713432684178326001931131985644748686299087674253122872929191459474238882274144000487728223852822176374032061873411695605548521085358018786747514740128464992657926810373992826037647677057362932170147388927982414931361762904005248704617827855192371588960980283742338017909959637315466580980949633827263447274596301270595010507198609973018757768029732641956646257351864058213899617387294759554241145883682495118570384379099359665835314134381802087990247578131948835894006633836350847348667813168134369394461774870056136778013826938139007199937549793921769802807995808725241836115745907552922232365783912293926943075996409804977218583530365300509330389579888143283441156643180501218051619394651504481013287876374678753425670995250581001316036374559672209142163033551557315675380003741901521497830604988659370430551309687615522699682179637161609369849777779553308926116877463757595088729380550855641876443716567101932762277344160682640655133494285837635585977855475642489167102038494277383795609587309254756313723202218544058763753616101693821383010424221081897125628048925852335092823576023561128886985246139080702473512463134304899772464716324736329936159526565124431631722037070086765404405135641695638027398027817117393422062544516585257687400611351185135465032516015281357172872112301498405800951660402242942267141381416233981981647581483297131150689071968104713108089831696243035652672922056703829700221412646846998224908029365002109249971688378852035456023151698624581553811922235069483977688309866495954943975264605837948102610107931932307032309462746954813468281256503660037203277085927252576280471421697766529083403708436864819885125345892039582019343070351628009097706088441544918471742304934282139785364295260663332626619923362094236238635679208265951148073898701168174465384819712778167000713799526318012771161341712862529962882264317558243480743313210948989705963546283424451510892828864190830555059581953003744652459582338814045989010005894979805721889693372248827054959962490983686954855940608876641656336370491823841660952141650724793875679400347024882171431543047528457633573436740625016486487958930932714929929032713377535476282626937505417169168549504226350332571648650126008818377807636159324905073496841133282519488725993719236735021795781966225673316867961669445176570865096486211707243917637712148304705217874174975923016428450716738717636482905159237648785932712013964866095387598189849147299945919732845991319149018229184081258849947429662044772459472526059707030911792540999322298516620580721010411681391829641651064456960968206257554400629949992532007230937945287453577690049667550769618516502737050988890772711839044791376222236423267302266202079486187910723539625504658919262695687881379015038998651121722543605875397918456780997630300748904990082571372697505116795709526291058437143000393190699939508907147531829899690155523314603873470535959735747248168266030726106371201865313079049797293726714833142476927308742719114329402477993588951651805968663150694861189490733231909080152885040145397357579939669698323935107336210393535464750591815808463582262162638752563125821278085707690910265539880693294806130396499513258400898473740715178933577827798053499057590732777694063214508039378854984216756649409983595604848192034939518225040091974269646829089118155971043810417260831030075032815487993926550412013986127665345874496520109762073433842037421965121560075298877351370942786857766912973541151497858279746467794321510922737643566999352887935888700638785192957874739521071498895294771673786669924461821734412583527814771272729112077418697281496268591318916460355837910588392555680048089498863847791044070017407968920629316607481045862005523760416255364006108985263943989230180838240041557558682485767108818721525713635963684911818679567315470588475880107419201457646012874331615463343570889137901394341275866909622319349306488671859993666834515019232848329426407211109747088616799091976742972841660696033480152496852092108269121618761019567562327796971180326732201935575456883599567554758254173881993536294015413121842572135811491034264040825203971252778249230970110494498022887598177426229911647806154364804821717480307383142418518379125755947452852821106412078283489704455538081389732885108511052981362093834250599473826566837039299758255817087425143673383680582752812465552991840736946206497687500675947663395325696849392216575376291172896037282102951184784006067359318384397065197602091795412506886413887145546596425905696890561599461588426821082255962364414375819653496920741254104147723675089342796410488210328821839857289648986071199783942114164773216367793765950849560412516756607735703891045717550910781842439994609795426403936713399276801211289314319259159777869815656751598509201780527908719075369996027211072431144694064772386867060513011786407436595577084234425083790481779995372530075440679553089382070181513646975944142395124104157013323084473061154226162114730873739167213370775271152326987847844615626867010286499185614375023493706490536278960184202001135804066554494832004402310255504547817290094749893695752605232650071399515872168942108487208672099470110005040700843681276906242361292560905144035580381516559942426274693297187208731269427416808073523127324160741540988747301238354245467640020458282991687786913515534369509748138108567731908652171290368235802491257433361976043449762084372383081861956775160205490243479580642263925629445825890666421497123849056150918894753732770630240422171786901299794542256162338245016056997071673145685050697062466972563304973952474145172211238851322099657923218012540060526449508610448748206793322747106231774596247985153909260551029560475988768309407983909586898710880622199834397280433549393545375889558206535168183645328210449926007946168304723850230505539562398934082276193058126700623058551608333632225917799934540679459437710521201174082300359662090973745808819477094030413718596853730144848003489180259923015596763949332994057310226706852811579084035808884953464055612548391937410178344274737188858315334514448673657101797398386582706726758883050156478841620952059799217253023749748663360043921446665742894187128287109892593021778710152267889475102027594333533572473735214572635797278736357932505990847722506084954054202175585998301600556761458355672614876595268658783434612864741472992835765346778920649215330172566551710236150731326181840477809724023739383299283444342868958909155621924835562129424358253437128184605529574145070209783642700051171464969927589882894353014601304656662163871152409864019323022686085443933217750216587992184517145455761678190934302065542055201677499271902778944920843545099415097280994245659705629486272543262949222744092715009989404100231405996093548929925162326832825642611951285846723276140163027207172271938371245083112864882870361053469361600218518085414502487912317553556604049211927149820863328153544707564546904559316146975862689250147693140953254774307501839292903275459614992978208019213030028254643244011409316974239949333289612221354805721767560301018728916003073358439626702239752550875244652816274976346344586378904998120202317586069961706355234803845152430820190200696134250159216464117681570988461720689491593374486075291695970537929075443014221454498624677449781565198899687074704498983896930851503587967427684603122336098189056778366239369643703168959755018049238206010501007600238183420303867811203230130665666547970655240731137714435070184508290617542328287200761336991436548276237159480219326057793628307519135478666418353090534075800298222391154597911369381632660831346395409260119767636803572234064054533457903613015829473934713954834946355379942970678211201229152787802665169860408958135215135958911529278848742046467765424964732391294489848762241061631840773072455735670619888331154860596132793950205141497041911248920364424942517925761916041826701363450994645499398756061768457145382338848061085043868414179332552788206911770589649206644855213885455022096931739781010216179186955116972780618523202332544790870869663332794224077069572420619111290727638417164106424535319757821090005089448159427570968095192284826569289456062778042865207104894726052471447144670052073450576340752223256975555288320474530512018670476970320957942901725359367123698110692782003483574349842088727003056409068182781623027222807811338441449764277678503709856886688802122326078953678712238230639744712300784533154389074356464106870897196863588219906774952373646561305981711115396915766087211356780190903107493042225320623943348757468534760898647648403645729041103738108326308071845440573924274088093026301546128202075235728154648633971193117332493808029911207247205610661299590925676326654779907976212533737245183982372709319481518341728777307009304927568897988739909248944046429264113827504690970887132501394277531969929494917586412466754982400809350781123866733836862542038320035495464379907012745966234708926809783496429200345789562027627142810036299190676067201596716354987535608763836619275328053339339102735909916984978121886039734931351219416226043964424715165707110292025976103918098694833923435960759508122061386276144826235192713336181772458425280029083562314160006998300555973608565346046556328468789024930486003302748829969228492045363821620654596964666557781836660891081518144769334329047605225314038904805713847166855519557590905587701743151008554920657875356436560093003653532996021840662823005332220103986743929485770109941610238581242883036580628033424984951097352461850454992072240773705044185128535793212997636918744530146730730433959369002608829481425750642888883481403142184636691257255633352888611703134292619099844696685593205581025101881880908717814877901081583608424890856897204282817108149336741030581637318080980958503748284534482346327179785078402732150611615468361730431346701034003476921339572870139637792095854256857092518843739478166734502091308768211479747910580673888126771273822081684729776446137292510570695398167144100722126608875934567321731424770172174704243358280661258711008806572803587991284899078469706653991596308935893290339121450389792933292695753271243759495281393025096642642501589959357977442910049612499699076484203028109725356554942595043979202656722233473362141603257956858476111556053246885127033623974042260768508472830282504755230488132666444012583540640392919108934044053088928838327224397318314277321952916005067433966131471591845568736946278203145938725909212382451483790359469468852206339173971915017619625911903845079559717097024318356455640221216413902078363248957615678141758778175524339973791531693286731705673859932224366258547188207350925753113872753461922336959208847646624102607469626720171999778600608290816471235279849092867618172450007211398655212048430446776898412739158467983671203683449272435868009294387695278330812077490213799246532652803025545249621679344850435152367186911922609639023890261590126696940937071824725562168702928387864099369498377629237837207890926123921600940552856405805643173949470603908027131885861335139485540876887463898655871400437635231673468483687562565556279382891175451736955045247819059602550975839130960926491635937458438988331005032569128555773194880279572372785801720051555333845336190807035015108624838195918473658849468600509451071751690357565316897751803922037270071925271374496024420508966086612526166010552978839529841418782231029648890470075627474812737089438327496669133024883082619585692011690706882072623750338030895876057998751448952477208080128982322114726676621393538673947078898622164832162998312677781006130819232099433020868375315533946658805076730645331622270681239096415737926285102774660794375889314737869253177839104219442640844368815392047001779243218416558769993042021425599356617320657355357698850141310414716856725983672622720726235861487049626199861216964195650735545889675745629541905830716022090014126381399637467912648864686957072482340372683079303445727995557400953136653144341929858279121486378308050518455609503521269566918571993553858515930523501946380363367131239113837356572542491550231715480954981774261298486855787105927202559301761553724853346375348403261861020471434888497246971949676271408451105252885662771624243787969434951320776134009963775227500470344385101085083020576600742081875993945333299534343926300154864411496845610895872305601597167389924556780808382584254575908458429110890518867280580076960586444123098288315596521287420045014018574404626257964886952887273828662526599066605436688794113447917095736405174614155290008198785048718989449700995316667895063845998134147531379998185774824304536318079557046220719692805185720030537706127535880558004453697724037199809954646446175773166605780124051150888747239787555189783107182885964325641300404967039575298086262361194160808151029680154283840851754025626688370147672516524836278134744623140911514630263074654432322190087676909831685192944790686981478408221987364278977172648116237399617543390973871656055298912708869973656422332203697521497078829751366901906937649424653852939325577008515736070753139599791655285917346213335139166445745095087722555236897692503166334489695376648557337028297047443607865759424243076389558362601978493494682972573010263807790489557587716583559077399986578742707356139612432525452744761661840916447387975540968619502209223554485549945903579069470928414747879993137986685142403141105049602073967517377849575146511796191833876424477734805812303373640611542846039338190895149665191656582780262837379586342859803525152405046846796216578853376274583914194380936210870165659627799499579175798003211775431238847662607703732225075238710582681299151518351624334554558450330173767741788627698320749977604915833726178183657560519926343164420351025347066389153103881465819514154742244216525195260291601357565509868063684640427919992574689421262130046925602329375885667779098029159860648773732255300316328742550155889273872346400815752713412764675679583738974099444606602388123188500078764952286211942006137007801855095375040153351626740044633125648698008084386694460270343344246254577703074371885532363549517011340603425406275600435432185839157057489233446238450668472989288973235669961582680552494737103514904668734933528806254336650579819166374129444436280456445707251285933243884037679956319151069289423631143166679276844420560111938372684987180928490517371794433188084315586651427651374752108431897500317721408760800140980077213326072826640653388640991726644606057273018259062488857322873405561255373516089793435022971185670571083296917283500622261678832457850995469886254870258460984525289325938997519027516763665493742574848751489531113684097636466802506109102927742178588770320046401784850038725072822332309576518945921339399224152042348229153092698227017721243912881022952182047527276568547845426042107512418574263289574262949175204295976294073868973083319787464232822382771451547734342656554459464822468995866049812585870442019475150244561375066187789890433568922494062542810776248042937188825107431676205855458080831639643710289709653805202706048098594850069256629308503804303784402913044390445803502122993025497531019090227352000693087551496501681684363281280646268179331376711005132047613114554173359597645973265125693952295896331914381866028438248749298353597499004376569590285166319322436826777265412126880657158582383533911273855662791443500508607857270066008007005025071587517808958691265443597395042060248665125381961258618522395200417529088042840155104325892607245576035744139878237429110078369134315650495295835877052897277534427317960142627441636363416641135519853044453290176741377892405319731267123650028187522371437875866032965963475941389601228639170625759883275277206734827439713810588456311277925971660175428354473003620613112590834717437979963501466437916446580941900085564483109783849697946113195428499836274424777766137317745323300369542822844901894453420403809029135316894814707860814027803334427482753231572464496713716745801684964110847896729984862923708290459547607193068988958127150979937858137822671814515353309005125437220320475891909435869221553825182613626493348491028651402322209299212416569734602402756067379533620498130847045959995681912865587963873914598906568517243694872023386926328744538989258398002066743939573746827089008382710357786835137642562463900276871811500061824847024029699706428752620595371058240262394626787345321247705023101884142245346117481469458179623000250488555077332055278095390185705511731768323935030717876735643958619871035373894662399017822700366411947037369277724498815943750520308445166456431389136158575015072684739717384705834407039159737794604288389681931656040205728968667936863069547954721885144763891453349771498123844838349766437151459209002488219464738600158743283406468266455035214981279193150172756751054790842907895414028350247454893845932894558805986851285200553647706562452991646320990195415134657506561977186271256327720649530881471006160185187098494497425256903093429983108274777488789980128656023343787713518417174670370466986516380774901985999087305084274009922307139758833026154696069698723101594060461403670001254211122067151500655489657019229691442299742904742156640797155626325098333466544648517405334115270605834548282337772432017497563532593500458928217891084879349458736354016007571052651903371142593955301574520249856218997766435825639850069258602594824039368880550719773927426568995388172718487252691837944508441266502720763659020226375209547196247487098201019752654615106870216159213387477680483754289397929516165960844266339232467037109558383858206926203799867675706779586616760813099539371891443753508517534390296013305568386399608168846387223972696498201400062073787487506319459927922282524192426212335907459647766864234992092093352840523628900968561345471141985451442502489129272343162624571932434510721037781675476735075475904303894830529102387431220801501776285978752623148316532586582268858802825476311275807604999806942643008811104358694993987736681793164481584227573617580499165276343337616442397582260747982201657484837065102260044092935666586059652695742125618540096026244456728124499567608901632477299193108444153415847038575267547705084501086167673872349326516903167415296201573239815962023418501796065502973940396118212741067347839720777102072032788122897836882853590284530353883166893855285344398374114771102618909433072688345860397782101044117550578677488192633090666315727215395840629072990026525617210735188396353347545004337316450283720330179616174665433573607155352327049096350651791632617441536192335823543897660682903276804821820353120545665572557074480059801115798429027004320265857736553479857790469794153555457526514720783506748374601858858280185739016021341621271299024419907121117657585452915508555697743579229785714212285331471311450526853943757012002912437446490734021075700363156048401319224438041984054401413946542139572463311327692601764378823680200241274075380195063051231333817936805026731047183027471589320594318760431128094747753221727045948634978688531816001969584729313758489468080884862625866099050964197084966563075660097336565030449445503737837530311412293323699551410250409256223418903118429868180398381918544983777463186316245136171120792226702745013752637956204742920595860693916846301059749696907099519601977081483466838505599504636610161725869752781435627557644281773535715484743701305239203000792670871258017912950701359825948960245530457590377438548418300744080212346876934434243188622500384619465695814231102376777831831522863418415436919963711208138404160686231185229238585042802874659628750418763959983261941981365909340942216516855675519054902942495185843418832843628228973373532748625324834220372480517942223121382247389082135938502223087388806694118612867610364602745945374242396688236583564492678412613856516749187294479844585875598743133958788214045135230585969312245951919547489325535047846864021113117872452094629143577202738490156875409446231614052894907876911046023434616809339499288842944493428531446201368245654216454789214474044343689892353522664638415786006503994930132110471959564451509540785830529619600899059973230739331374312524535791339167902414290973382693236786906060786098257757552258029221468031155382570868524021097027764120446130185321272552528758897662502423479812205241426787067447704409198211480041585580021811470601741075328099681054104221637054860556939833569019498986979738790853174939260926052635155460986459199043035340329328948913735428440783419951890830124451291745438373123399325853790010904839951330370045012119580001260121635386096896399927044415335387873918914129045016043989436611669223631172828837084074285412967330116459893001801534798016003036130408192576678906566711914255779599383351886294013247050834378880738354498434234624209669224647874871397143387948481161570132126231401480884636853257982822179856385521610387020887935831634576403604834347860494803516238640265302095679380280333505610462383168075720473788147573353619892681289650853655779811505460041073201599136203221273101444311156014515298868779589836544018336350385971931113451908868036075510873505473291315011621090882455526371292569151842987304325935644382775519905220441002224387582624208418525522188347561975866078727022146519997888311556027222890774801630491453352791697664695261833825111544889136934278540341862087373847935329440526830767992959514273757303679213632080683397489609825031329634372976286990030138610351825086333443203312156816495676787045867059836321512986497368883454257339626083322743789145499459055762457996886564810575598548039226648333196370907018094796973227986220432465821718573435638942435749892653724574306195940944222470550895431974538071435588896183261301131765903861945673406534686854918979140757814115603948148887087460434249633659657296690406620584070397334861089560235885503353766452884590037428026523440626835700833807088055882089268458926565540432496424282860412157148754754982374767371307606523124266313779980469019673534177894899799141670218246537288137814678466079315191595275420608963150608318373718676382220903258937328380827713107825659429029593103228004269900032237103648516508164744024658732792129552899366150805399090149023157225489432381866553148197704754021147754765930298250260356520268463107929771489065722442579678951259786229292485269376274724710594677988800284197795161848188158695908567012752633289134468494941876286124335164050515137193560250021101533473912356219569096074647548473951588820515617396426016012815272969758897827132401143806895007739485509242447454277461117971846908816858732113500605862425501490029709157481023661909003900159408682779571492686475064747570932165132186129558031920679366340583170531974439560504423718791462938279689785329047968781333264715856993278064921192540506381106111214033412548497838280616586903621129678581640550927343332133688554555110032118418968523067227679728764056525350752095529095145636384222967196092055578371140830913949513990281120069075681578501504835865886657613743346960159579009709476943679323419851040058097421324236883555677668284555615388720409529072833837013972523208982895720657771912640476091180022913482078906248642570188867103338486916076693732849881919500889964538519226790225468248570006395958588812730229089857909641668000129982018276172761764543509537223307115845696589984820519014536099970744307452646091775177207657343046535163049640125200057963851316593632367120105794107069189670487435005624146106333143252501456572439620120579862590891984474011624613479115696369251883877832954797751384927144292930575651800951742095073911245265174075923699173144426442568399573846820562332731451135376141247381387268615837473489793976721402005525525428213159428049881747506874205325296856703982531613743722175665346309901743904317010415401302564948301973720188591820035469789158080600468833409884746654128407040021678810242117278277392916511957103542001669877123969289402426382685200073170233729178765400480654694159189870837333382318123758500015000005405739765939707601627189694089908516772765574620490525217941165158842865398966548831570965018723342150134353807734487996221560768827240554009746488981297115706031043439750423522806222155260877003725968784831583944114530309962246278022574605018118885503346828887366469351121768856299420139673453121085152804802343770103842181852174232430200985238246185227407465076295761670274698379555000426254382389427797658486288586415239439742621605096796976392259770033200101543660889465163197084552777220410011855518796450762283013375310984412499871233070505585131065035393738234666601355220018579964117269513153096372047770684309425438686982541100144284401306993508659555649230147097214399344221387990757604079874069165464850642593929954301909768400001085124296078262266774638055195298586017119936312286918637953740340859564773564564352924576498060705433612485180490394829439417387110270773476378323591594690528491211679415297770429313839979711674037053567620915810407045121351898887036711249163348624249672529861433469640277473692311902586592493600939741709433672343460240830083156770242495701822147903779948345712631210153692349246589689474801179003236206739707771471739887998708825618471937485316220037837235033431711314140404952998673535836619257976775833402472139719643002649912249737155069123766548898063019485730865612662529649931709487188456490760393801173939494831974744309835074419058731147378664857824410701591804283449846112792273753240617669914354092986251797064078800053778365289879957873873388801365257929478363384066671126601723183394480062444100075711918481436549085672722980330526052809597315294328129848040973011310942507246136852440081162068707776945302731578823850305583606443853087787097497647593760856455948990412713200092237076657884169621053166876631425754166422903466446461603233578331041701277140718956278828177332774603301786798744650306508414198911315248111417088349609508450179949340187011573620340859517412772422064798776530608794954401060530696313852306429765072740915695272049486842392511592607760542319884518305172631947665773974498154131906038564953990757461193899606655571016947222348853593399172425744204734174497208275969735551021888676979817256955426374421231376090605695321972922608844504151580259087199779713622142252194993993262057061248713083190891198732880767512840834327867507921118558993714181912048431702267849327604012452394422437013460696203425942708995318944643231724291520820607744189638583232399555657771449548604318814365090684981393959386139437769801081559547731773764800024099248284197857921470162190589578976729800664379265728132567397237854914845161952360666110335703944332434944103107545086678431599438249888573016104475155336070259039395949664671182652047491401227289767975058423531361862801662270479654770153379134649407931511684818715244697578872208733045090935579493249660356020636721038945603242392522943794088499655946730674480342808165220317636550732578309452000731540272939581899369053852362707566532271127172874627718288084645225749148492954715775475382716622615500242995486612195024535731301916655112629051684605247540741194415269256088714974707023850635771137752164689919281808640221605362132031024129347954642783923083786480847888200569794893310101193550009337103973044149166369961289664892503861461929010943186753183032085584774195539905972853005564885592725011838328720038846391801539429774211925638197134106220297049486904229637053099946948670080250777715852748099809817632257669374278430312389541860341371226633232833729512056259328192225930349684723010858774236528408460677867023589727666318560442602293861061431274071545157017110126781115759199032485676205011301645523397226964959001063938649224995249160677976802858863632052862512808147144654343518799055237911788821811809635710898815065438880393229596233209586108240338452220576395423101649147967934676639058984915414381020782124196260861699936421732423141176685794586912824466343983243749215614577084958946827232308207383297835915886373128895067238887886525009062216048189631811537632082135828134856284368792750964543184205931828550609886853074253420458260477984263150725912721495234567045846363516535922084258556192754740872301090241249611985212843854756839574617571069594458651857194105551388032282358307186497246973295930864727347765892545745718828840473228144877896930572624915132368063271536047301828053912002784789003839494535037579834852372252744192969940382138368595558298723102652215998035958713346514865206965155504549780309968906058856968336756227326341547356741284423105020899894014772174636311157033987811132741912799116392188299467696469416039810236972906947796344406004225336280879715524007391569434683715034875809145320920913886666930165664770890395543127846273352710379379260765270794791622122737531220260053213053703148648584526242727085722630911407892380415769259983334866754424111381469486509871365764896665723766262875862026050324998744780360612337838105991053435080037701763245550370517117127472294318435814219629241755616354901134411236792618586897211738502316981921626190691997218109074808091296284545215653667933567468082924882369288547084694357870151290433058821761890512853309347320654534884466093908094157383554991802800083985538264744075032476874096323866084760154597646609372700138753873118958671030907341046805069510155377756580663286732695726023554766434569238693529829220030130115245595225473278422027229884019958408584287953888630229370160036449465272963043778036805024805118063601902832079658768351056179960931745499089349341071060793342776771770532309509002801863125314337679112119215709361190298396438477516878522314414674753445196635340306698939758700341239977490662776145602135764165742609869972912747990284751741431381763902046893901231628154842893849446432352274163376329832001178993387805008409146453976069000475672818893878655427163997942512883182359052118975861202925235466246783142606996971866563808706172014623608883608675358444252776996057838467009188745251343830284596644185038162029353786631850107062237865200120581124785453244835696356986171054516949157851327054611499201300635175875163208600166325252294035084645490917397604415029320042780206439651360033279627686666408710992613046520735895917594367819558564513348879517098915874622751809291794006108967691717928781743661563202190280143800859112599488127935969158917126516324705795186482030941214309997565755142994447348182386504209851527400635463618401050860302416887944886418592204418505688184067293299303051458245346546091226805082941107646778171785790470603545841501580771799593157016085579063546549097811900015977626041761149712031795257623386710771573941795098536294494849028971111437071193492832213248030125745494009550997349758761607345629204861681873144953821820650714092120136423263787046234637588738047316695772953688171499323391546981483642036360160257215274733541748063815316439932519207077852857776182134891918649983601305596314654644147320832231081573576035060638221049153313917103443477167550218917325848360765803449502588556397492809376653398336212080687967395543075886535395244322341046384467405024508101809493321793207260988140305583680992641512494529007812596555602354280898081320989663672204970577045971130260278344479275510320379464792866399623344109761402869372535149878909378153126025333274872228428238098952792163879739469454325361086350173126943338129611849254662091937728868764362489253313037898977408063543796349398445870858682744044033001872344690187937948608479638859095495807916362006392057798540523112056171996596601638442352379991317043233191923159599939404465529404572543414656965829141028593969328913968469769193287832243389239685457941968916185235611486638210013273020656838947247062628279739876138530848465939413485636049883840142068517508542240739820497253192380904899245862063091261618353825929129074149154814863117427732928155283806528108948542668265165437594334773037336433096412096993945368117705983544607189931896256168770242211413740527299469343535396630234917771356441697169342740864697538841017821644325355050102914444880459181581047551969654675396633001681253417417407623018751133094546321787757661864642888805489904362436098176462766175929600069792431349875509709018423952289119148784201428231314105402480154451859877240172071490317633307762831039037077757231763380996797002957379329527932387352750223064216511305740277252824360325023932383724550957216280457391018455390599876182452371076004454715371125372408277417217231262441617568247722440193452387028672428990391707856555437809206014835122858623088563159564057730213071907458148461821143797250457561057627448380385989719557357632017631671616620345800228737326302234619270842099909156435808745147752403080945411523999791697641530739373325183051513880115192587860343178956513363359094452515645652498121968406772254743682591851487652784045434407550851461519483578537317402861722398631043688289957257949351620553249031901552587962202988589020788049500679851168938671906320757206725192733246660225088941696899844299694609209404154085757074538596561315272523013391983287921752081705736986091790698844794308704223779315509575487164848866834774951116834637382948001507120311042626765668174779144499582201784740159363658951443028580048087985176391063387835520772769560157527018781124901150113388038012785265393665071729386977048304377267259441974719183558110081137601549667086385796882968735339785277182196158316371430193864615144615374914312181419638119349216007449903981899136890147079439438256504607780101621927000245441093400573075380883516381315048807650594882412966890870664807553306200317994964373005161385305244685881916600963829640362270869930271072651494528534265667134770799708708469354954362641652743900534890360687199839674849727488686048439294257510436888214113300406821255968998431324502381871501671773237410043738811951378074647312154528254381128963912622135497796233227496477955587924802369481382028121065302518773976644596130220716730241139825269956008557868040840099590844389024426196905023669826748308408436861240437855258745695954372372197211910727230942083541775536058182647495064439641543480930769988708285746332688029383135847961909516085496950514746227279966972780548680131015874311687006152583412968927105099477411293189484366020292972307759736075392687410193599138868061636826187445071206613803263831069037561276093271523854862366258757750542502518099436704595823250775341118438784971227727535920663984320876887981141766901142822503334730142422083820654929826140032594868303181808233628700817315183349905890164978339767423582548550701432160602991149900025773027765624748717038680736516768779947089283325749961907682066493911310929070321028760190038423691906407694425114757874141735947926667451811811182043179326317300134677069042366872234699163659461871418506206460256679816958480276272654853618570094238778488325752263294789743781327607615128366408705788312899138228349513475157701760949825901117713049326539693601832045263777324882504099564721171773058539881412653649212497068704136906512742371131758746208152544056745805972832691253942001686728788257234302039138071214372235985676475024371719338635317673771482397909744067699468694097148927366012520791988506626434498855385666935722824808446106470609785954371098288710110255047544563613832345730627727257848069896222286085824742892876581153641021569749620038463537704095152104111242755822227367294099300465013293822783751331766547127848833900281357372696189020079070006843958512470087320021038787724319851172682112960477205064593391067101216062003132409080403176633910373832076415810004760030640426049011650930416708767119002851638419664384457564801756910423917560779870459309496407834162754219725571902723249407597748107391996688020438028782325966372401116479743522227994485965852182918895455891066843278837397412366416777718127933920887180947819971205133432480099763565473024852102794777302396666756795692188012114401030370370959565533699116862682889489274081095589685446617485308365243600227394351917630742014851098689289620574639120845708489866256026176551984903315791740322214658892479638059790512484140536809658333911488239795483295496121123181128595628870870899440288722351095760187466767383761065962874421459991183906942109626140749466216198566809532733211613957609827610063448808063143222131347255433431931901192245172549790712572720777234424046540185027810451959667191948375346538615771956816630481986738938753205574413792099227369046671295785755466047260813611886974222215363188221434128690417276435797795961096005869426818872289088148876307137770884918804364285785260915250933124790464200882094722461908654025850601801400500860681428395887120219244153197915090919088023667686248594991543197434897130373309013644845287678360237298472667939049397480963272376021938959553999760997135695807484264256104013388755482336869312857135881401027975661600049127464156723040415999691718011462706249898905836669082199654912518228523504171057057090530980878934726118257212302012094504513570075267855856316489938249310036984062206093214376020325966834757284983795468539478068799720341842095931103934641059389185135879616098814114103309276597464804354679532346836861319354462933767314638232208736902097721385689019370446145583153612797420887627419664774897016911712308372201168746682789473151009645145983321853979307037919801666070592480397559026073160448031790109583344725549705426288465038065579544916106901780873737252466763974516864585646735290442005105462416188320630643678965210295073821905217470144867140606546789708381225913857955743493702422443035342832772993834064592059575739347442661832831905957711791875218048008435740906268064639177919700062040998597634697533921214217051684225271957899934484952276674823467447705134963298771415908322604541272469047608577402619798213705219258642799117160056427451902007009464725999341387403229755277710479808078856094459399796458765312118616363917546327073864090499077936295145377040102973179081949593688093369073535451728955168305643572020231269629516910936147271354435735561653525948892946131460114938383755758723685568680806976930718955473558979369772901513834990906455014997790229802878070237909395562960283220485662264078105670232240325191329289241131557709171747999543604168515269304781670416551701965398914475853117088964500492276789484150956109183566642168826614376280782140987488877846553325070337816019904975727876762502817632515301860456583351444155907132651186719920193685794859991933090210384119243508695991218502074606514482996849825716005379800664820222708039226868377966068063699096973091282552294767692667397541062866379326622200900240232451618723741266214199343133483210924561700393185931829286334338153810211376566068448033707191434343818670169943294659520774896754900579808542182441830890091824147135380571499849259022660402488734439235953324716576614539684409450431039688680653415176640914774363037504432476639375012190368332848295036901914246534047854097350714152979618322927063414196505223068668329144159377642706097743623509044267135546680051818275530449099160268047208391199214939820065123708286447545471191272314515240724761666698886453255408177964134756306381419354592555012231738795712242055127790356272358144738820409527727216203388114305013624492006552265527408304015639530309762375720055296793163245515427495794087868180038051502728232671168548724731021458153122580485238956503864053037148069164159699381590753619975120563932968959486215281111908945760296684298106621070311502632747778061825813295248938231774727253300930951129764099906303332925583178417739390120002049639510660842894231272843304661546175312454418559117250826863556138656024808214587375150554930120166492384193581015641035982404449606040108435252989885832280180080632996484197778488479130687581551369588775550482962476118535262341490871651403093823226257705920177146779037760334462754627963764673685283283256404292566503771545679227281487411700577204188334774353420967957459636427361613907179921959795330343473085538919582227612066265876911348685620609880108604507334444963193963811622227628108902574865308738600031739862218162533919968405485249575877955505920692860531603361741002344344241931501230175313987347041120349401368571057083702775405588256702967221229904068565958809802659955269678846406644575465500393003180049781615691830810956629018735386352914369067145288286897164664821642891594442784313502179332330335453588763490470028393759387126737990287819099682092592360311004038567019890700527166200786552842439259028002972875038806799310016287944858356547997660128671279030703336604736428262608629396236190819835622152912599456055319773665927714202035100374041728603392292544580618061002141685496852637608626627670811205920016218687961987233519297408139534448747240467569003702372303280655629678816480987132337931660747634755094187926966245847586500248287787639084329338284757703685967210145070144898032590030194295847518407157639802413889569131726058594544474863503380663529532387035952823456814882883648570167727584957549038824298873314629899421877000204976984703264411411343804908805381726849181578293922727976194568756292142167847827394443356852249073376513126473970709411421713236677302717929397364147606986890168204449463477811115213150965607356281773988911719530465068923114836895108737763511872892238181576805632364795941268301764766873272789593221927010912890806007347433142864567488910811359281695349821785129332187346855367856025129707251447781719398606505394875115557747201626296816356136547493608078065406053778590405715447114989923738945147634057700395480205540639403247672553771203512741599821190693058007161295116048821881089519351680701687897008363106032030069689714498816423127155038091374388547401674884339853320610561015744764211732884413078077563034636987675408645288448679162723630036894741565058512931594984248856302160727001710132170451910730059434478150689645629994879521628202280138918284216106449636680641998267354796461049507287985271743804038938775909867319451661082989623183469207275142576323004214681383028523866090391859264102337609341834951898034193489383173884719015248537974718638713326870155009690349198608027185820487260490151812800590548278735795435085669228034627347508975557029881683337965657622556050534497269557782397192348924393556518900109048491006260539602402478000637867248490325165491535478232751648298656304940405513794499293460944507638687051986163799166482059040527902182255528981010158815147149113934600182898029826515387504280496428194469500477788092478827663197446810944839351649462331898078076592178323323078505102640926913456742286656197845067873410261194288195196254639837494131695290525475320611152606461718418536020291794453743624473448848164710101778872972142178691454726227964940159440034776101862628712916805871195035689258557241062521397883304665740229370929751928562248828762298301428171379123494854225544503926152031350868732116600637204978307566266565918642466827962540451629051413781818700807631102017529358733972699762047004174398581748191346921657979983134742574511969093455770395228265783738078241334783197102173767237784453003137503955312927335164171311437370357926989647687032756297939579686942532446443922088943175133983564639375182119834921560259310800864187002637867475591586057927924220281594420665412664335806770046247482827837877793567474729551659570253084783989842023436741179979745601140241731147645568442520444224674105935178654958120386504710979958010586634097831791324544992813978564136836408403891162730208772802584932348316224706447518800327641727865873670955651622588226660368426648599019414386387759770343535601767142158820210546373161705092184445878389789711840398544846251868775667125266781380268494741718936467936212101888270959819850287901244851844584770045035968960682365791734917088336968693081917346874456144190699435092367777030583417069673759268380944331859600465085691568680662188514889723281210983462750858980969025830204265978425983621015662632156789804816558325138212524981280136200059988616330592369828057600046204898748248386146644898468352273184742387644990966291424052002391252314691767609829193052258822417359427459233145658408707965491759798868363356460718206768048129436085750311386104904643063431635826844933580599693307227252398361855284841967157179732337060876145275679896944839180099900486027948654437315559561648713962811550263092694238087660107585415867105548789044633652274948461708716909089120033787697269862541510068730484577783111145647344294325866770106857269023954710634399335538381951111389985370430919791485906420309003381460426300068451468617578545471154945485115713022489553738101836347933242259946986194915239145545398500360001987869428282453854654121364366047669196668745020089847520274553825968886839705783677615356795927626817053276960397187157014207065829355181529965791571361229403995886258573575390474607698247537660098105555530333123054288726516148518601051876846996242639135245106749759757922078450103548332298897895217796130473744806613454765519404194196771957236774920766023301406286720949256385003075887501301029539730600026574215412720191941562765057245406170274123856716324055528139283997007030206589841589484314015316841107685118240585964752363706521528845189068179981216797900959686076714524586593595494355622629752669723029586193952720239302569780301272292689691311360132100951459084821346448055961733192527088951673454803275521563901526697832542107503074814164485330941091871501363508662992948143250451192906466469981793076218326693782646851584668427547282791369506226667730614362919876358353148773282715610919881010558376665822027727600727998358403872114810538242206216667332078902941021919221467510936319771187239092754497315521176762894840626355990420415585370637241630462646859800133537299118157816547592605199829220479343847876491583322261692166721903150076419180913879762163238176906944044155900582124671181155658763969141481173445707751002134535442748973903891470212543311887540168140208717722799419365850146170979327677366245599169399494683397618285897645789208862911002032222040655049681798333896543114950326689967010304808382989639723360992064555560637992328755946458579324004615707327283829937264111090673973590940536498737980504929969076167397295248629173076899963850273627556035810238054058711413835327905587419471563435063455410170176403225283426053579219466722487915889125391035878664184468261722472671582384056307629614626987995552377840292630959939702725348709208933371223604135326442037037612708599496448298044097094598257688470672116761502633520163972535793088138037716507211208199232189487339921289768839643818601778744060140764871684741942503550179182830368958582892717203779697902354368414027094487984911067270966572037607697195090155046902506632804948459127953217150305504455348187497050997581114359380245339942383149650154487725568946594425667968295541369477583726333270633183315246985950185355176713417004816914848219417720803495099293431934949411272061552898688174580543249918004251727450774541621679884515013460855211903827303392819824829340358764159635550935407109237087760018548197234829910202242695212742337127952134040270519507249081561041522908503956861688135513496072013668966715991446307935699424913214134149185461826663310317045036433236292959741318168931150443249553836500900454773321862006188006760787462052017932094393100188807433274166623403975324729312956349255388657732547466769734889603920345726495262097434330705685082773811511450321852999075722219245930258355530137220715307480442844842110560315351731644532302003697022906390980695776021600871411351860159954899428985788684940449365687669492353069931848317105935585623088337870515917697142954376780498359040423980449124433635212857911210243982455087098678604611644186639050842826090745463009901852173307782547959831715040158410604332791599579977633622093666733225621096953918899876070659575871069278160550586889611564485564427277135107043727272558411173172058938766766559374261617311617461166865644213644499826159271679573299760017631557004419916858231021732363671899896432831980247074716248778681726720658570154226675518841524841851743682824581891232787697457538380472041971754739180708355262824579004307589590331394359780253148088611477381660120118079407457423986630952846852423599618871050898303085286718030242044122170475982525352872443697300354124343064287228807959016214029736756616090012170747390201604045514342164274903373674131176558621586634622858285933268622962415036908895175546793329636404232441568731568462655970498623472851968219759082194457891079159726812079360444576801748265075060175782973504688571732695598825528362009515220165497834260181157157548486038621019369107662605288620372394021452599702999198399147858652844756080935100948553992987403805548830495191600235469357069771376880997141901837839975530873177593320665181928809982316738910335162747167640959862714731247053627278833708074067187587491273261358777688885968297946913324340497874687550261125216691750408839193171273738992052522855089699242522895256504819067145887981848611648942129799286757206946250263445037349505799197573711619124847714270572598116793297960138172964624294511575415649690691972514584548576151071489548314168066226472919675464750282846497823487247843172503529453808934254256818157531049378011191246737031538048194799792754217585054013617860339667938149752094543231600669540644371930140494461981096646687653947788950776064052560443879636814509311695593198581249369072155449667207007076385885279503470520963556344610724644131563593053442478010352538970786055209077723088879881033587348772736517890233136077619010482404691107236436356994067919024660799637885618780067012542908660860476219790617712951227401294437246550548331488261497792187062341144495521171493316008914805371655256904180686144242225924245300932284071152245793079505319299196103335583154014020693646610704528008868360175695763128016103759015724460538481322584115979924944980292812011511343580537768347941865439716509283545369442494622232941447874821616799809246996731346167712954296099661440740682983322888771243481397220460713203083027857718621995763124963061681661366020960823910151599072856385117779211950467787475302465558563621254326046825962778962681899158226767996289186840473308760211942280939711422296771521174858561696493962566230729403717264162962811014000417993516179986713507296953640623129479359627275746524591210586179672136591130114970818378447017013533710798486807542539662243597499816006536768226499183388214046583645378862772766794317187403762877568053029156833342664177433853203516210525521344032989665824310303537772280957841276654012376212959716376624212726517286917785576150208914539828737487745212345332318372025702273869203809399647354390245693908662970392097526571195332038795092936035424490402682123854267522312366333399962847158122515290113495715262617429961758927273626044224112845266140150267672568816969297312746384943529777917839475793162009886451808951588352557626160811049258301882097775559028819722990838020088648846506975842990101660892126662510112740587612024943071725874025518830707095430531483640033657707212054236878213744062127741794467562317306763989134463676591516814659347444342923928187802749010143978722277009440818180283190026643110583823395944077408909742564481784414331863688361877784099228610589148203475599144062061957341473297032857793250273995807689041588634418411473808870748587790872967459745073928918341473444236949255023900612314248634431066039403813104232237345384112442067822826284586581742578200143765929851599172544225283204233280300116360789239075762728384328025127184632217664503659351440894788796143339506462781180880413761857249961309282103263225034973549938166817035368800138183422396096006237983559326612012574784802711809563466039771067663088233539272510353028218601953844547330866787664383826579552438543362386600764876641071223603323875045965693176333607191991483638377723558538075921322946514417370582525708582901724050721107818391077459813035281266884197132883865454283479411627300644012451039132731994434353957385467631612547038902682621364529854041719180327331198427708447766428601385170195620101286634142351769496289872726670187401310814641776842370248756525319058207229921901919030798516844188107986202455563337840236814271275752187112064330143461251979166135111871732057222639902376483020802130907344191014104702209387445933193614745394074877937102964148573491229291680339128770568579237612986801605054621847767997992008565412673273716610427411490679156404856577120585703778014174708158867802214557301900756257759203230368449666440899472373161335662481757265438822519565711929924452423256999414146693373920997218234989109963056604683457077115501236548733914717413321609512255508714640956399385406929311669851943920425605617086512303692003404542136049634863718625103145071071666378438934607992030492357830416956736636492284894473381055689457575025216868953629867001400940354852589972398736661268377676141644056080780491691756998903300511138928683427207676177510862050759504326146457506531590194849385894191012067797722521398754145324432401085124837092562559222394244546279378443621739717771136446743061387609162441783937241542158037912539361976742784376692591934400334270040707433450698570555502992496945843698022860142296259604515341660977276740242800352853901280320371727752495249406715316154960216583412545566741846709619450162235810050915486620255330312138995966319382218963161551863669775176123719744660812204150005167597910463879958400017850198815339685859706365674887940774139004853153692434358902499702805658890919684034496784911314624821528183851162903155464413464011300521067206600061383920727586301412986809463112514741299944104736820525748816438029518124906656669430311565908614106665750035240072131409117596813147446719023047570454152307663281239091059647363920912828299483914511344149423945743972212969581951788721317906092773239523659257255314823887977140766327543218677775221219708294280861614506023290942643448783038698582467895135817957654179430236305373671284824544404190339554335559672432081356700085307749245902990120521945631682461204240038993748923402533595040591476029764116594226587832647588808120870379208948545265327593467849895429129123401285186717467691028100964280280021797331683609193877631391238658178677205588252724016216800207433706761283126094766908508468654843682782077209368000753785417720523173533520112577802076310093044846089021089348303086164567394133136767654012076070827874067762159681890853657306078504676337671925337717819257290577568914619579590228106142726165629041820797267336736924036162038628571328534775290892454456866261083094916977290851720510187468644137235901387708839664877038435590963026925204656189082703441855323507554377764427158829885498349504428386896959103335830679258835735161665144303625185427566708136826664535087321673699414438252617139960398931881876989131417420425735875697681254197707124875675990759666978937726076200765060525091414319038666940612506223861859315606161088431980565837945624578945244316232710340854766129266739381521786075770793290577722694234780782510187336766031095247875108264455026208865930111488960380699793074801630764437119847173813951742075240664681341714900873127862387591124962016569612924052466130340043588008414795037653946698033422197072117355602406932945324805209247981792767007272086173938271719377804656113560373566149200351873330795257368432592389305802873773924005127679908337692009607964042498862978625363229334963386252306325517329732326404119662482438251471457012538103334775817486883942132619424829052213119430431776213618358334309615823730909730298169310929473180622997358854508040029225190318990236664036894538823995652031151802458496805459917462947669828163757953891516138729562223136198800667357160211248429845539254367490205699529309345627014283914737988509277561133825336142676270425220952443420920056600256887367642697971305187755985577428000028102460946169139272450027186108080515569570363469357131638499907466424162869740347426609546489296954385980338193690371873996566425049283140168421963435739827977511188103233422781115870050840974975722551147858634245058152045923122760367580670252769783597713741012317918707904006970643560382114839202334721137912702980942337356876487632034760389388017493371220171540285363933180563962876718652377493657632220139058051595066052142354152892737079262374246144527232366513715821265358642246392415121974448091319738066783573424770837973964344430247005090131353389320931109311485003089578114026434066030833174275756668377667109699445484522669302819978072954602132889720233823185119017191823977925551785373493799662380215057153925039044672847116199455744845355537696198714870905137713182362876954510206300507510967096197970031622372673996402332762927110708560613229576872453488053026150378335989267099580409143553486923494836251811237161232986078342972928708175742055659831140932725903868696241624969395699972785718616899941639479011371000989595924174689533711992905784946532108883730847442723948793056421238394349369219860689156021755052125503175985508773293922634583989903121137236563087140961216798386869547013376074188494710916123137726132525530589220058700649750028216628955518108310060455725577886382163930930868719895327836400492461248978549413544614460216668208595371268438559965499437684395885212336041197268851273983704331618080649370388068471612690214740836270814145956917349521805840356072327388084651611866459216800707127187747422376290672570542639850232714758044172986909840217316330078235999836339088709218231389226275842213319190838752154021714019783424846890132747779650936507566024127966371987181476952404700223162627062626083598734548986299348202785234671012476638722670665170850587533457373944610285508976888754035720003977009493494226832032368085583900158264736799953384641944252374141525702777791712514061549102556808379001784259320410542717296199504567697172148177171224467987535795822476707715134654762987336382472547944712692848074939080372736582186544376899846394328655669228988427020632662656149608874150945406525247792931604831719550898003636156959088588959376259362211802413021101561651039840591798330169504639968034429004434818721923577418858391234203426150022321261804929616064815640985669340337169946284160072026803565107421744486835277758767583401527426509669804738072935315451684173779446069219158264003711434362484327069598457458678427350028133089942993640479287375078639736653041911309311591249048989628184898181325106770786407622059139365569236803519288287793041510203697742280552017975164362898781375998885574292977417534879800384926758375470187268269165825583902170081525154133095355336343941844993216568837315777226345759672331133026243587220214359741892358570891830982619356380342685659677112854419925713597881259972630985841993888796234074639174042819908669253457672886836455353137693058737111432078737086757234138845282019480667848744338365769068824194747842306074665207676725598529932396440651974092343832232039249326143932409899633807292927540465843759210138164972959634441406071274356868797368800741683006347192840277913910082608920518851226486001198280381060247795107857021821345110846166745226477176491890162270399271603423178827049699686728836455860549341205563514212979745271990576104444261443635673406975395848227202393186525632164026683115891237623828233999226822157221402402846382335563742637585609090160219935699370406081969318924735262097200526607496745458452372617262355857872192625472379291303832343012286843379759060255453634521317712474951524565570048798448368949223276928631104544749441388618217171775067194136179937051979059309151203325684031691173215473117305486652547091679026962858829236684606599482287048879370600185062381988877309210350989328024480021196871795526375343346024393468106110440226275182928833475169501753724053644630884934170971595311882615225021508908107709761898531070477318061440298970722088973075085731399357900533262682153982892415605424717993047728233238608372528405894564740409964461306346539278158062816629722420269656294511383718525703841155484760794526379012111854090664806570207104718538245836355781234986878002231533706330512778556854318330863035617708068430285228917878199888791565139258936257184363659776650122733775590628571074558605221730192334474931113000878725676943560081254373141420990499950442018759507410562869145926165101414222559157519410819591430237143110735528498940232117264333690946745498006094581332768054489625657421828192837770362096001941471203978499258923068915691778622325298322260755119016156064248182408778179957548311293612101790076010077141905426536135687658319491284746263252515167572121378307000612538208796312708922513365874691630332705798081696375072752693660950835068773759931391184303294460953408545561914312626759636130187634831035100088874096372696363301230974836830068262330230497035124745616968820413565241982446826861184164534781319257338274418638422128674568272779350814057034891190929490081983404235684602444095710669344736191062223083430472034345269440198163830643889019781559037034528037303277822043515755947188546925492618768140144612921936942611965586837549482943501368110955487350194433873290114360699250869096467679113759784270895614206696236360323663772086618716800427737280809245390050181567960256502756882850581939518157116989626435209967394603002227962765589429262251097768872879546786213890693872848976117938761834212535224617393115187867378576076843297180910404114566770343147647515798071254714101695568403411831823256496373545129332481116765004338065392549220835377030784219117291091771519641850302163895956582602475739015847181417539314032207616251664739015123361787560534984743758693560612690979630006103362009950485797917663822471055876793444694215926805001035098070380645682464222515446667325407550291066084845631516259964989362019548669996003352631066993758553264539543590224204505214870247809960219973160391586934968148944403428052635285986670151304541687632354076965189365838637018691038752836975225126141074734921498776413421604859400349562067223416167444399357538831944607465601445687787582394857168137592058584764307275693442506431490920144779395284408296194251682195467039748119145467933849871478471149177920564257226909338002126983286165061123785029659872890675193511197282069795315833663466449597395294530953277971429066451055628538873626377911465193185242261897213496663290483440932774497714661781445781832200666295179247434719282846242416026814553791254602917658721401238466989431324754668809852685783557429972351142863293462670636194076175591671147207759754336796803267944267557701898553558459537238912829255603159142372168878504228585115514130120931338415995384660629566783722473635057373848651874854603378378301511702534066157088556669123389133609124752335662555563472334697022937998171601020893310713450388190701694501847129785028189541338921126634698389327743288216624891128536289709518580229784067746431543578270342938602502095372879290696780645152203422207769705347648126017562917990065397503166259058630527675302754448365314322218015814012254538173456177556738253949191901372542560598171345538567195874270321417054025347346109154938214402887222263095646083223742070268073162873225207992060740496085435279728039973485065511740603364946798330760971184570998010821894525662369616886617102142661599601402667944204985434523871811824491553836244498001555651891275279163349501809605580777831826631091302574728889977407041711644411348139600217407553103945210942586393237158497025713324765731694654026114098435112737023682386758585412012402577128411910816561826166592413369610640409950271294808972638741512128289125180585337706961503046050083913961635306566600693058254706931967251765205716829197000059709707830008273424744656896228772651447628820476074717738145175390854181716436838464486463356536286325324704483575735248882488584460883600175823130008819792787214361472185345061676793968107062776054065074847336600355571344799327550184274877803331471872529422121973261351837139617319814899766634576397716513830498487055188290266922127493585303028515661302241803305827448835113021628047862031196180906555085336439882111381265119494157568797287509590312000035579901617493102021771296553226169207133074253810151072065487524587919554904805434195194996844117529640686022254195322780117007357410015397998812933225613881328004953533424702598842223275714732747959326924602920062956472965348177118922680698502569936440783814173087741688966404383725764999579813930485890284609595355546930891229175426715167353581593044805516473791669959395441535121798946380255034314919380588706138721291673936209621659380709083028492125557466771490718218558636679667865193986410806750231465032949233214434347090147666815657197467813263435075265011907665603919368352363882620346123887466545847791115825266826656692896801691035055827114536610580911828203813008615255363959247428793527313784517707505053612195204028881306743460681393574111244141814285279053555664560718994422648820443256576667225161468038853605434837682563793851440541119413086126890213421772276572899959063258805009081477974658628616669461881733362793052917683829400177299453041680091097818963972766503334659809329949665550154336806060787538587349089800695994372545204824053480369274234427983072390547254598842817667205098600993052660202158156499758432939862669902000454733195384283050628063623640740812592966869320039936233394827274071122107539665945437566835136835253711391138004444512994046618723590659504627948996126785363267845931822583475420724519772086594290217886036940652210337811040721000149956408851037295235105140214132115080002147703736125206743050803127610377567728245419079017651515790092660089858845701134097700477620141743878104754502250031288852905491082115822985995574868345536235204215809646881171098068905307683847020068612070325155251101449653613919254199127136731570882067685631181870412122292473587927520758934628700291190004170538070544460560154501343400865901965476587452192156040845579851774931101597998733783623311639392204025253000486484886785606765969149462927300397268072047219988403199908884388063634030800972358230054924742824942224300760714360140381345648371185139792375880393015962702681078828301919701767117700278921562345566589715431278921295086959614993691678865664774351111873287058113509725394603244002067597827640842318853478153789523785616520580368322153725711470883581112679248030213025535936618859297254122680705559517529586340300724641891432911825602479937053954221112871004627261776636607065229741867324977869312295936733025232704568187196014793945613794673731104662261286600500720825435655513361976542310896834154461117261391338351025681771146878942554930615869584803856001511771998161981896580806633264021823865057519091653390570646913440463549013488067527992606397785440378674527070105336620309039046456112513904006852588039132442860474945832921702254909061732847173889885169108365394335519814291885012470182803207416791484768302877984021874149841764024918977215384541205543030425777728759750626755326180809942643482754132874470567884360932949758567378997545771670424229393652495217038903424273905455575829098218758231749836451565563656529186588893630715523636773796839762098013113666986339630358387260829124151770151668131964945944138733982384089796088614909953325055444061780271043913371027058250955700803835653911594985634073385459789552037835378749856876579268702225364921589983440986913235631665637833102148524394493091710664834692418417603758843355948133348130090377840985122709515415356369257252860224485449077420749109823829372194186095559482462613857617521055712430338127839595594312123628720144978777183818577404628927338672466242738958562114738488444927154620629552462746078020169655558973376914457862909056594613540668841730035511559168850850759438116982649324797782434176009016953756619894354592531249288779101815637961881089957629145324767685262346920993497625712775704022183994191555749984344766538499754857463993460889743846221730380013841327293247566606389086096792847561720174171792460209594230598592950094608572363705637760229020763625411374996812074580011622152117270602109549118980153408225292662938658107062978320662733720341814420128903773231761722798393602456110175260376843823555453958434428040479530901911290393259597602252502888699959034027378556994075015165773188147483825962457756664081404030257408233904198347378936314421019687038107630275056183129163542108612993424850611796190001441480340900910929747030950986716345841964452750993902893569300630863573570384856979953833644898146854469855990712735198963747635127258494265487884406556212168323398507796252797419896311881365359109902901329801429054792704053745535160171072565023405053374166346414444002084132693617453030854931166485489409244651896336486544051872836648845612789874580340798602985051016020287939914977497884930502961289699094291065626471822834102484769097991982874973118321324668983866734732013297695500085097833623507671875094592878963564238204843875615110441042528949198278130072412809311268078678138208826972967540555067858387394094444346275906339573302189096677516225106809270902102619009624652314071148624908656584417678197882371649881728865087242659535797940524824264253762034549881621887497920326033827195034882342241903249028316417060244739826950718971485573296159556203783913820156076765296551696625172445393723121645850322545104043274193950590850857574476086322285178319433598154118037584135110350599262548064503744516017651811669963139985948840445184174104084755869942792007080978411870772171804302476483160510293250809587429268839044672944216375536691099984822987050557676236861068394958792041280942729906998506574515778827816284000297484895455637743721748709709609078827843944597269491983510352669625523074771265934649349623942761857368623808258648290618543384984242911892047961371937630112971931298526795487573999652341402941998332431742842354279198697311622103033272581651706988564538595051972258919145313560240171418130722213114661199990301271666576676126966748361204085242029718205595856156409233093424375170164951705012321488306815700695081378444600457131031317132749513739422409010863346013636147488812931559106949032239561128036015871845931565482583327934331983320079743468393206512851013648977601721318381800101720983447470612471331835212209295246708058743625285963457502803875705112045253844630028264205284039439323497168270533489725046017971856550135836628085456949824336184885837459425679620400266590159132138228824991506210196297462426551954893607286396703444569852144794725679758576644132420918059271997498408371033764477992033282085297741879612329785881676810568469062576695944208102864690557790456318240498606757251416504512365420393056185264158528588483271929556739391391524297723363972964592510998348621105856660161405838971058477730046166545098593693838452987476179557193177684745097906918494741921465620626522415252110602749681870670816676568025225496569994367609063662978524872507744817174832722682405444355111461627627465109019169281316778951075329431304140304322585666160858008345321920505085421546742772013483747585472895209186720008576780991115509875611964961327378296935992296574839937563194892996933122878584452486881759334141341735911743298056960229649228849192237178368821092025739851795486893206831919915746445333494616990199294981272430246229065467041550777390912505189749981864145551216604933282286283444547961088827703791579411163117401244642520836837610366068161556765420659394365137265940797433382511168062978087261208330339514985506705287313514238911870950238129048782431002649051168323785241102527661889192739824061391450100491315094906800868633932151078186761952889434796821791388611434614950993998946981882435439715919808622461279258014485488380750780349099780105069876253118826789227275342860191225978656127706037017646601545638995787302165722295684395303948016617986454175301600018527564327124927284240814441860926204152636635193733957927552769650388504437802375959244383613828684015992836990166040779049679102171066713802388776508277923934459740285993133225470840698737751278528846499459660519031186460693062365594145140302595165215478873101014033306818747062556207291595793672391294740830247776498617759168379474822433753918617948319159320716803212166181538105761408874624737469354476666309581273389039813867538980452706193048595068385705317101601496782812827443727398694633008854107306067873106124912833313069763236092862319814584746889404990491166747117497974271308067198461515018200346802067894429139575022197451644220429790207186453472363552945319129927850638965195286991745599333299444685391204667176054607629237420092025083169464667265042546680824811871443159141740523536361644136095106806839903651271477242614798362251481361991228780630323977119090547483858311989333342066070640872668231953667143648746361168042783229652549380643983996840861087786253197261926954728759976573405675383621340213615446246956285456333524088851383223525209291730036124304715580876353370969469542551297835077170524227817843774996911555021268508594542116429801073387999858015550384963847280527376577437535503612333614999306661220710229142456806791897565510417844531204656593118899784571676358145671469094440986701900447289211290540035499005096076090752980902245119919676728567050345111498925695323661322579824447240216545482480830540440346149948355103373235405588297867294176129175875859898222877320276959191265963716111257920497198605828612534045713684572686326872338897679703471088514520832061078970078885311826928987279944629833444344467895316796300564144589318491345499993560377040363597057039204308821998896266772954635683513052596841095192950916814695877602898082847808569523014007086806648258894638739538501635378394626828644708380959501223617141481734444363142233724673411962306163186876428527804461844407695127815744046135925292198789823890065850845504640347136216060631425368203631188419902345341475695903685520112130367565106526678282921652887125382366905944403046622417631894225086193078515448895657685289658510681437561122419319177302685517594401099303817814847764699124317076850258435815028697259187197474539231916831891032980118002032354081534963130365133379727875937593123661813804386309135571876109832705633359330608945327319661056439098257728102377944014018432675547861335360829374062158613047456540252072319685337037105087353617067143032539626301137072030123419255216653862898197148750344319676783401339823310630569918339257690233782309512750041992292624558041966574834783561790428829876638456528518127884028094478651585148883552347379678020199141982015448926370239301033693197742861395332126685143931045860650635470194365648491169708309811253076735274035434310842133111430123410614277469474762128115663632118945991646209510494447187409975988649297748565507196215439152222493456210728637614093207407371832600908949631279307664582211023533491363852928040736020901655454341253135351957281292117030297937968611975425446858632644061999604001661769283050012028071175072922397516401246310317253563252412380448455834144040429893422370992061664921790331248176120180743982911182827650519825730484054072580004258346393623591960727920944113084938214110085571962527059007043544429914919124942959143686266337364917439585407494762662314823863156209583261197565053776976060492764821436966217172345257910277202599637323424150934630840396444543676950667180552032479635282454819999154140141141115491375065892500073896352911827432680783870539035330604620434391579265818684549665951494374773051531227038252777695821828767115097917943529995171902836026737822166824399525551700928390884992530501821849254365565266730721730931248586666144030305513680190146834814719958656302196195676657471384057154459165800878015551687380338269998183321262668067513740086751398050123138267453606458336475486756023678888496667085480277127606500560838038865743465193436915392016154350129442145246458471193513102510048442394451395829113171695717631493044835361588150051779154612122967109319842556119888888221499676242810222625253287385529247755708376691842704970498582355707919545780530189457100487202819633101839194709624512761308012961602202886411485367902000009345776583503379626715187583831058123746882402068468678938718630291034795201449159585192236123660379599640047544017308962895486391674042197889541103236114929940550927930032641346913885769965676997385113124830181738074530176946338343391107435508934671439072537953757177387083331346965739053906403125186691941185803147479368318532717873678243227309581380204510726024376085611638160458357643451160006180300327839255172317677273055426431298736718425936396204178427380204516709020093364995801503407105227203273934552879531210654009407333170282874713981983946360365690312621549091261654522682083579640428648679614236231341773363270999800448961019949268040489966734545980257072926576529682471047606888236009500324409594063643945847454339572173612332733532810495449778718275821460748148160800048905022910247323782563960460807116768831696936433542056190427988154884260648398962358708580056901398532604231157583670848563426116908644774015247534109837518877846056340879922151723321266036266786669113088496492745632445065554850420334423412721884213445789577614325823117990875240190846181005111875357623695943091079621021393877451894823105628554208285247221481418725842874925227919964744125647954700211216895181780126854367299695871466897818914329284151480015868567165860093422384689706294600380300758863143364093301123809447441320485351096829793893649921132740907735877276574001188136047589807332613746626019796289748975666695190206536463137234851936393531966861306975131015689518315860230479485944555754207401169480796197767323858608509327554622929672908397397829389938761427656439725924207650487761513945690269588847879499814781834706028164988234059844155228232296072777733444745091556432995882172684543099738476787108780211594467233836970975033766761219125328435282500450914105638762081303234971239947396524808749184636187482250852843435423848509212364938894449639353862140410952662133801746154414811098992669595129833723725476059144431283930113942224115582595654490583097643863531660429869641852651644878913073237790238987793516141629683038261727744654487541989907716097976098447193100010331408391628810122422732158786353888142657452657780016418448210759298229127857617354825321490746594108772923329699977662426324746794380740499252653020080461815357104245229397184438369917296545360881902529700585911207364215658296510657717432763598624215962505823432289873853717482084311977753301983139377929538256508294986871109290667950836870357840230716332480703041228004045198219488392611228491999166952559540890441383611421839458594376794018789639678804069396062218914098457238988768896112587938838469208376564674134955671888208232093287096344093405792731065450967685482810956505379318176322856668927890189697115478843467327598941948804461900040994267289229686854037665461127977390621879873845523235482916573392687575295293749644917422930634142574315825844279303781583406221674362383075265531079926563827290012190459535990084501257772134547140338919899620875004485200875751299724232829821805111796958731953292726921887466954606358113416989045161403870331269902641590732328578463374154697273732196898097281872462644000682168227204622405562592447453294078157976685031064179888877612136889137568974054141123827415268227180210933991420795802442385816402725696424648425737298135735598477747469235378697390215295398014251230637332272090127674122972583583800394690747592222713731493609572451848746916490139593344635404777925844759876420481880057485495848139081306937836016198856277195606117206745007036870683809436222115443271865689261200254944605156039433748623735762533825592611059127096281397654451174283041460334007481138858064144328565563589759443932466747251417814653552049426994975725346940829845139638656479640483697973445166712394194425780290039484019773310199205176859729946335808444830682676337108341878188549451268380545438866459295515255812116888852915171384023882229023971226682279383246817042880544023774159506754907807409640870295048947392495092798391773123944219734879836024723111881120720520526527727196306492496736200103875384283319943286149155127312053135842034597279063334681138659928441616892463867952203019323404819640201100812921171667199243177860026546040910985766928729619062656241376515447585882678628417466448343015029832583655577269837692733378447427539788202146313026412659058376318254541872909820778881414976775005487588991729643108674217853294558792192041237916556986861902439688713922022288982867068471200611436924763847935482352228431471207257116754051266924330102124055961825192700681234155826156489540397168947350851325569847839565219945698498575279569651819001736884624874749240051177908695834554825762790351790361480418092121440715355664427118174905474872358710036520126475736233285859911179233682774658355800001973689313327429517108612100848454932111342222879395331659318651916796100245521131572828881198947225592700139348551710037138838815201870685447354345220711847102225898629451437463801264601634330106754072906251583619160773858067681020033068945614750486991614404340258657777578361595351859591600971639961491437580807316917444105830740251511319333044041920114030566589430969858605389909184018462563409611753106588174617493479140432920824438849472500170806451954862859426229227087287002225924544657959302991380078675100730708143179503574575223583186016351361989840160470891457582169837297524396133305406694088267186501517654995989946948966237155915000747023182104554479110812814202971122477941907240670588797477872858120593003790141687369935005772466495319968831578986165398466345598156891773820587441337847406607504703616197144312710154923502122182971731221413480576845560613718108210563270253418876062272947348736000032756589949911432396209915046154864866118871610716358716913929936806913064545527396969633811846155117962445270395089089203711972658315722784899815004610470721530683931074106279418270600967660670590353654543525866105504651248939248228831978639789566829132252919876296287382121508105738933962670308919871571548806696668974837293622835846771244809418730850967770976426619928656809839728073065378817009698058776737825190960959527308632624628341901150467412774088146337204296677709041679768654755951011389125291279386692328453982214207882245490504238970811549173809962862757077458484615039712329289336543825015474699942539529647677292688011959336328454076552914689040642347046913389698076830729931648528912593738138124340249859710415649312290112960020357374170595817695498345124737411003040336208177702300006629077182589770639251694867474743409589347093508979786517023864253498038733931525510358869892487643901096758083631076765190954787815996728236556508753735273026648066306359833031267160532809139403866835118023168462483882993838938218383114461709061197450998007682717253321333804872380813849496843144203186161605052030711787461291873965169529251438665280024034285036132398210593282442355445500917148498199004556007132993577566953078848825883146718157299838222850989731335179867978147951913156993685946602066094422544931725113768926980159449102571252128095610117300055125488946759535030822626016936311437288265091056677891511736571231342926790707206882782113929451190799602397252113560333727526107527610519360559420183176588139918219998004029125750746319099054047610172196250466864840525518239143659646096119516162761717244194499601935862255087047770110038972885031152688651969940429062799964237889861117412265257848943648041939102074759192986865596442977651521193916443921987021943581527249333832939491746258333737738357720358810512114117285182708431030760065348303803309218602574995531274039603126400896199907359781866930234744255876011103047251953530756143405922108445376235116606555252633216554612638341872856028125826607722009544437121383388105080383761468469565467326357818755623677453498396606381003912508865147450168238981570266176616616042058979729535970375705046705712234124120695059365836466941250274833574371626195007119170786628017466440100925348757593378859152193638860455504574921082354558920496742149076838448690614722682614285975650636095031448289888784224351965076442153795779812709677962761161373300558580889297028461295333470794505962459321819646654613661451067968106686390083668182992482349959459203835374805173566046275019952326107149624853953336323836646626028070309425519555812710757864800504034404138990845587943427784595211133440924798855729608744882008083948844948221559573814480946987280420490664099521252597176762908821597778565766418675053319840069354873110703941004563133701680965733539427214644467994536547281198220720631372138940938815099668677745101569201882958631176012997007992878293965891923612924018429109373015217482132647492194032332858010208919329773466890723763998535287040966861895101633361666428271759860475269112081975294539337185469158677813548680129277901168977321015670648441775257808110430482892401830518198062496017956065007801883926466345621103038071337644813472915727589137829914822368079248770892959460357523561922098010856445571558162897942940169146189079516041389296870947015988068258210072840125940222592890691783782933265928867035974538351661237629544004122493507765097002887928945322304731124892842094628305776824034273241611018398338167133267054639135927545884160330860930345197234777368515141670537074328281862725982792987534912579344261731709313077800713622830274556141470972202604498818211627922932002156983478399066582741946806733921387582980028886153741532048221207869853935887801811639360903352932210273654918694470977226028583391149158838717791316392466485494576137909620299864980048795719524706423905217557385896658012838364801565725065915955523273972558288571174576227816799229744321601295342768629694098369576444768783929974416619081815522125671691945216102069571637734099473345917260989867814482466221981332783221937940401749523631070542334244946226096799260873295246241035211350058916549055982132617179556073788125696974110744454138495347442559186485711567687592365565571635641367593595038605388851311424095311285862753029966159639326251679147290997187193020213641996488643534517304854302298077151330733218880131994566980877912267782407472115393031876225730103102113414489275093561492081027478278264760560218140728280830909944278994751563815976204079758491877616718741532044007349131991939474291891845060418237917495807068601028040930557114447118701323900211032005850969459316218641845757139672318517008173966076039577305449087927341167800432461678627337604622772430358901648871441964479308160458521665701288720179341971854416570012978181992165679557424122381846518583863797079641526005146541965785258749604636064766079277149838902987605328630894704859508610049509843364167927100208837728422004256141079176631024018992128487454389848862747674467849481615595778786689082339759918305812544743507532515777425432270544023104304508939337028187338353870755361224934332619585452861424478280725361646727801132794630992424210613387297918653314013828314146351110264810988280208883279487380596271617390469285716798797307785038877942139233870840941580682698450126856252399738630249858262515790196040787703923603479851810857581492885761497001456653740806469713939178065399552480011281850715684021596484395963005237230804772178609792886437186321929828868111803981746616883008381206425825240078961136773629655884539023226363178836064061985108691507422861411028386329197270899327943952576365207458183421789941827155802894943665263427103752506869417119384229553895527222108798697245159221297683335011707055079035071982032313600834594944581844989495763135985146936609379963315994565476036304536766360413497738503063996560657240734291986576305026129155377508019408311611777557210111845581442901810575364350532523256579425375029686331777530356050921263938007841919190668115038512014659204027697676956201670319525244671656955956646847903042063211658913913689873423990564860218337938796081112395987930639692192778832651628696666166637971529311314575421793198335983359808383418116698972255423830875859163529591466591323759361701219744889550078390257002072143397201182227384799605107732702046542674417724704218815628610148036679292888789653426022012069568940470793495691742421819951487672153998955718631467170630424012225755717049450973450721254716946627091459176986319376970044501345645273050898854109738500139163460333363108397694409505636534033605558097517216504297597126100837379254347670828155322903466502141183926935226215955993331658739978169820825904808507074232279114602629606627208557042162443327682011471480993417494139592094873974727945527361657341585625794113169624298199225547208777108834193369956078027998965179575808585918648857176833408569705628731542241580362206161979955018352931302715505415040603690127789643649449848904548164781957451740646199485516491440856377450207149075275713318146770862674314607463544969609085923547421063960314159652296146337557335005696473287874215475808455961413498159397060501716376044811027951466694402671920385577476937711770583878166679399180259130892646139217697196551374923497501034996011586505674578015562941541941968392975535518279775235359958371856519925470604583608705115738501909547421030954808568281364618539241056135908238085568980361648362367831318290410100072886326657446679796765935032119073193264023386023577738077769076899914977750102989452293703337134291530576464015080597737063963085727750631348417039156425433235563556754219940225206487331462628129811227372795648869897717513863240350150389963813040656032125266469811021967517454848207287054876309170147243985905386453137778490591416453535482386279080028776214092233757932579401174515192309107994056575013734942147338919728120754476508466379831019887498205302416480854139232234548389700994288198757927780913058327301512754284439876483485261039296574284510906486941484865344063112182907563264084217143677820973781539467453369758636615368189519409598222968156289558416089200131547990061485781339117898934314054508093516048302870376841671765525651408694951344640990908927292329920011978157564812801923943363531662224643798790458530980285134431659108200817170305864623635843810195203745718192378657122844744897618831956383185806131373096323351368225991511942522053719604788921160257491783580005779476711450512317973437428051191452693950072261599302288823756331271209433633941185918328262086932068427365213361390446184741893538534279544507366141898395997503944101730899238593808049922722566005836907859650522583787940654317314099600383657652233388145035037946362888722533093602147614576434261849641278967902082468603522818142773509240293342012184148007196880040417209089924538866693647914061774516997408191513827812823564457719140237703739955455707354876040720975815485968589537889277515851132659622876340026143723487183373731388480584061474699028411919618514809680820693181170436515002255742194225106538336983756534940150634128899090797410099280894884476698811261981458597633683094425078032889713773624790007647440580984116554555787904879679432797713617722263592126150299969586746146170917546501257605961202854411490287351513000089529561655549680602147508466960741324827330156764018823124697900344135403688254188199923460676003538287653249553196593397906501479351721028688400020201467763256546050281255676867198618089177966227663761659987580577865223429186577832215452692944508839311846858130491744429728195836794372224244285201720634663056815529661382604016409050815539716986214484842144869185781438689581417046501369205894746767610692678635667401637604776121968843705329942824072255428373320323070154761744848396904027541911997643930793782777135022019709065802480311344625717756846154315865571294305227788351780344216422415605568969166015856009590805025251062810122821717860778417465312449825827994905548088687579996354310774518327574172307823998726882620003983324473138601309507820196115898975815398530142304539197433767347083575074505795349225043904449248241185060972314747976003702066707587254774191721628144227146758553533289561002917866290247417244427325010031234890618761751454161279851169293411968299471129872911080255321866175773168042462457849617393468519693486595087672096239228526968809094931567393751292964200227134965477686166223417382763032489423257314275269701763566607068679955105979527887357723472721212680731513858974391234088756943298983862485651273236052438070088012575057426782978694628469878188757613424090733109099774566881719987907709061012511423659680370907908513507745599173597266710240975663981083990194089661479607094319697415649371069106049771055395621512380218609108404372288116167981637362540703858359345250469929925883184073100958736390539424792026327931120419158231810420697323352209921853877301437183895665310156915022847885403194493417938460393238857030047495190755571099544930454039937055923083536356499986776262656595054212186211520729941947081606529959188556457250656369798035889077083614811944682583217262815789936975605900352493366208759797904646607818551727560768422651784819116344276632036248007322567538290326274460004288673419700491056836927192408297271256873678406952209459364604614080911850269033503478032931144716211172269163433189076126354767248182641182218196723255026692060910025277450913121508830775456469561626978096655334394051555647577602078880290195826613507750094878976215751426739821263773402592985732193900625726314707827596802628326739701464100775679930347646243939851510527110505362435339849973073094252820388742292761353421501403605852221740589038528217246538325285986450099912020292435727784410679464057102248666650974829169570929108929534452582743944016016800013513482930085424720365362510978915368351462203715252055645152723355878232883418224196721403411948658482329861878279916650124829055096818521457311965528047981314437802247732186817961288635411477418618462350189273361898489270122339035071150396111305409397250419013954795903338168429019578392267802575116218445520633378518778620120482816272838090155284949406714839762131793033520177741273273929029282876710750271524525483174024610860872672310046405854915449990053746493912478969441540770453084352965974561161595893137310290800057333354108016523223790777177953143195788919801580905479054517317542798473368136668626416048633214509092819619362069424684955747574530921435723579444640448437980660073446894312486279063521001648944438176518870235789877990418502597917275743324773567711253487441055104659555459377819234042239018969126672532824449852207852413935373771549532396854892746572765517997573368259787828677019962520381069869798415500094054217421874732196087957344670298585823011965916122576698205957372245105590213118904773089060850477667685142035477750133267597494640142977729884735554293918966268706003293436328851637426775422401928738613314705701417316320711919278610918905414904880785048355094771976029596220279669725904511209398349100463283012525044633097132623700574694287600853235736615620169313262467086580598557423420579459174282426539462240240448141360544182120331834428468191271276275035226422111999049934180090036481192088621587401869588995456445510535403199274360774138166685827150073461762843433188181287310653248455798605710403382920627314380878656788036678582450497726422861263645991827177733566227747473092857856489511025928160102973481053957598141239928233092991340592460061519903269485170466556167621523053446288968723663259407715237128429441440084813673529008539146994615479542520784211180288106254034795206399556781452658847065896153218458149622038668977834198583974186623768164828184949877566696466671551983299112695262228493436613762147647971281415588653059766305417072926445233054922518878471674604103396347474207130358016163646034104262396241263255951184448012854054340257574033598401877371299851669165525591304153376638509163992971783007036281681413404760964380457606140696119867527351125526814806695052200804233043488834562642729138891670587017766028499352741174914963766056799937812921381520458263243936946566837485019820391839915281737902339872096675538916364463581966422911015802948097122661931411625383865085078279563733878364737038426729579074559548912465579351344272922231754978782160036069234342326234976538568102794889716784432150757375980674199648251066897310515833014329790842725730034155121807399853413616559786690361777600655288057164037773306933995709029936374277034918360041171239250320158584071496082796289436444419470005936989293212226067515729093714627181516332263480069535951632895277427814124963529636812435897615369853731897614559824333577312117603938164048958945227203658784215278218371454709110053456395111178613188197650303075002798802630747174798727775811496228506047381556481789493950428338447256660225284624804688702444206115511513641825487881659037053779889414451330782115394973392438009242185580840155015429192071720545878085608727438292802247119129998822014454828520297385590293230348031165000998195735684617342192075446677966281527139622348337474564684675365240324361332062940397696249587397932486562028833147893112654113971800871403844731108843499218248271830282483055829946711696108750707714674449839960959619429499724781106662099869744904517427003335385362351764683571332455541759517987314722915632890385653622468812788030107386536324847674130129352184511034932894013654637118424246356578015056879059801032250246549236236670135752413120089231299011034000568526814265484466750484935397971470321174390234817048515907811081923306340255952994853090600138108633465432219698259880659781829795296614244288455093537481009973691506584031535163245119057070181720105502084351741620349494725558336935689628735154493813360572338581307723190237711425180408317104209233584007854302762760585910194493556111594311286488924278604333992250329501138884017606428439572667234401707451849124029861642380547969401785899324794732489328352874099227276433597864685243308442617703087314692894592865324520733707902323190284494014042466498348813046387367054577497468179118149020968030907108614032929366741113953639721766109394709532547650685079565193358801015875321185903100888878818828946186111847262710245794693776450016202783587031357698714649697645321863260183473989325176261040671680911224218250981240841698754379618059496359082845845019183537327152044619203477200197725916533369954747826028288917481267085040990315585593240184009142641803756813161748668666835053266503310768647873177230419763897120770404451019771576385324657913176241379827129088654755654370995184962958314972325458074236574656856473085047613532829237647191977167700108547211507712770224927849902589017680415003962401705922604469952328919339410920619777752293276084651103042454072304238605708231885552466370984585523330644330581408412655964842127048656923310602822483235875945140732162197059102589719675240994625745138252924108895421300576661689538409228905001056532507250521502007437792339109266150969026074947707868714696771696858167484088903811345764503911809035799646699890645010308335425646702189548246132905754800541080642377320054266569111496824378483798074645314666832150194225314116333874842024604756662491463943756178748398484726684808640976863304607597393819573998908837410083977724225440371355944453430659631626878703349667890452897001007362181628994955206493613293662976037619954715933006907771620945305702172614797799439685672429931094090165041654765295608250231059173714097461634429220838254709247582504504946385996476645368083157803429930439377657870945504236818633772871817778725296927537291304957525711256203841482878591099352422767717747330819225556666145570453911694217595063985430658115063401724384296925060859789608561578175872914579647350981508858828811355300377448825822970630623317816984752166450002092178939953375483851952852044463905354384292324437429912489503714869180896881206089345745742955913104037458162885503076909994342101662129374519252095047046035957350764002426702419087427594227837880034571601124220801866811462184331955144354675639477737580991283975771582540683744224648682318446783598139808537871210594774966807442029446683374889897453306216156733085970405237227616107416652975871835422128700731370425710572306645677678460081474038591928192673921548559845145005468477080708070661911037574031204039121931353949110511942861094818810413489276287862334931373755386571565825169690973612683747528929920046522752570759556608549487697539921494861668857233165003589165442840053655902623392856203663600120218512634938972886854360823480064306392904929629475625049229744795992616250888956380555844358205723448317609007147148194856615082426301217623328795239115550197188544755430216379996751036251115164927999650835429998941312750692554739900748374242875550582605103260253329079229565945686860381644214197846823642691213033183173067704515621558414969958971302558197932234311842102317532190459510918787467612776506579831015240617668864552911705260058869078990127550211154885830068813632801179649352515940773292746824328272553987629978414867746480167941696918208518731181780792805555989147795281053835874742871748278734992052830108017867628556428231301624121163100624175704369436654042378967676348961103456587683223566326497178045058393531396723524766342263983546297682912900383398012855772580335856304321191720770661243381488723867816966928490115968573945598857202976318061168058498175621912319379224435458792302507327160746915906119448872193852204643616566708070861074922561493559145197585438826752910848416687312061392815952718425189039504356229049790943841516378422721019540625063062764894046439264034196945206205487317551101364524849925130000443094135851815541886996232797820769545299823112919151690108060114701477029626686152509926185661427820571122693439844515325230934292940520519026929491413902876820209827536657249785284962818797942520814757955358333232314942400264374657981846369032775319609843581213771097729812334162220153340048657082905934851904413008794862823740272962155097900931753845881020823908999518349825736599470388262128649571606166321611359979781723888070228713695457742818758586881560331473073027328957898184864935785868103088154399237848781737685410866312346056579995290747563547586246051276359574849711994815420850008807065488016634418863810122314293715744544412498562659300063375646297069674180620105643129955099339678113915978851855198991887062807807243597719836171486926003257357845706962283627244479799522917814140392474626744025038144231334934481846038390116525549722921404940540420514020178481925692068032895793803058490203093490460007309310857236999069851765889649984973763057760114481320566750134396029601514276438429398499733611098488910396990306473368410407725738470921993334242624204234745509583840740669867449587040324838351728851191269879045287811785690003312316849836479166201240066552820443714454873161263854392714827538536342287065265569820229836017986249299957694659455710504167176336463394019292949974123108019541115297519921593772356262923609272747785417085509390866779932228503847348577709659444668705951500207332405865135205330533554835187342865078109122563687615514225336484450248007658093961857716632507046006649396706810525483876904042245900164522924313581262377528305234931225158990502513712066296619603986374016317741103372064659005587961336027959698050335163344328612097304036933106337923417046563768837192713719993044926844812539553113576853562722767838475426233247667437459870542656652077077816488442127098108350892461884739115214867422460006736665039677461938438776827141179860041096801107869891085570784328312719123882287114470515006911432882325724284938044241469573974252471709221413992880411941836254805354969105422859359251266690279022473930561849015904483167195878036056109289763961930164693093461925280543364094492926282843400919208349688255063877682520699023633536863145207033538973912423544147975865692355301683577479077315607250760648899738619717468397067191466637504842740678701423773774822987404916792266003796875839823962533754275336759605116195305834477744613009734189750463514171861403153556694984196415662738952879802361361235455538578353821586350028223127510540451085926931438058083836479244592617291932572365543031290317752101305616777597514030081006456982643321110016610155362019446049074932163002916980787720089276359936226566571024132135921556006773031879275651751696219510471591447404314347305141066210347087310289431169792898769890967508934118524828620730494613705353082758296266597528691672738030196266244390907237343484237812805777187061585179071403590787898118999049454794270913400932828266858824822409390054372449954481639780704571741377483230351964300789090089531270303995025115954325345723957975405368213318029855638653730549787120218499282515843053129133438474632445275046173505385795502234641164482137708805323931768103491643871955348591447860271835823157345994443971057886036527022801543611443877455154134473271768647864494941890398237266116493091851064734939300614639760453871616821768380669132782838761589482878086073309145350397439733086602942174569317932675914747242364797275998091118563382723978576940700027310874022813458433948764730336872940163620488451214321184981175113132629429870162072031509393589033621808365043802303371394148317260724522804343633791040893685802076693669252504192519168997427478374806464779067931056845658185684114356487197795633333043952184076062110290293035525293152145585288000889735426893338701088983314850550873417286283152958437499024826444059689701388732066367469159092810695911666759381908888314592688268663173046813504675787726275633854166313099060034337522340558272768862655500980688458201773440935599593099122325315443470876196252167478895629186240234665310984700415449029674445601302421362467668911239013720152853286704979425194385897723687311504213096053676019601034066308416843496306315898999036911061300676148133843116449301898797932658538178744516506483124262425356984678757538865235376792533630019335761961700171777619249483402663699156532410152546798010738688678822900380244403572149776500134600892932581291463973915340246790464096351132029215729835547636925470205187885543023893700981578358316743625749952519842817767462471307310942488611347021107191979270479837885040534554756587378802513813592734580057298403201237984519156049681621780557482253437672229982673254872816459417824994524690033457711863288383638851588454289663297611399805693882349838354645509205923006622527854776656532242802629474922429419642522698481784152842109702830611228943035750224489129706067272486483183017378138109472727213196591086296754753115970610938478898193158633221596835626209222144904028788826487607748246258150031362003430808331815381836253260308267722021179549617685893666795739594956026642380503630121032147547370512282567622039338196652751960549281505526610081755978580914871684433971718503238288444384332238770315442653294748818599606453079328738639164070872536307897105422347052360080907239180569976985110416900134007891410092054541853452617225949358329332507060580347590629089161680229227552952933068362673254612546165178635987023578285781499128218627519707680392782104697392146606328123286318520023757445898134666577391508809658637892054460015803555004557209683452226320888131356059958789175264351411216280795303115511057093651866229744201718762337253814691313706889496011989701874464867184587427571635437064568016946475533347522181137847299538532937815326262578488209499464840465145322642624549048730860305303097246257939687185964508536868600956878909342220630285100554484341787790211221707656298034578380398461216763049500581765048338518141208946052949245016905480664381710839567673325494386554259572311662123358401311294851378580496940507461946042900178482536583273241414788115857611668940033073028860448687858747653948837984490934255172051032137597247267963234799180866828058321334583958921994750432234533016771382330440952508340372791038188614943453438692525852061514285788486818589345070641347310844966642968238649800006016075237630333820371117355487979297890468783822789999646726184689639479565738091906933478988190934348875925885570195716083771149045605063037157648329161765438903112041825735742911152941077195683751450168597320615703385079819688030609904301713239093951452067803717691890380422621905335236728837583868696395690298063913199549262962265110343916470816278868083718098161264645898089939574060145786903951962490910011255412228029632792669813399947502558723786247266550059699277741889931331799052050222623747031863216744964266625785399172279740582737589645409978660165268929815039530117670322041950650262889931561491331267884302801234115162254098123870729744707952473368348593434592384308157713312478185482596363266831026460197023253558953958845743231810413632183461480881375297696980698979610139645321158858657080465797343330944761207148774416502356611420469189475554958886629748185144455676339541727142866832396381663370925201290426496028425690644452973614574484925190347481073160253806303738010425459068119465465541958334185817142487963325223437869927367494181919487413493142460815354839676134400832255954839173742815920354808151245990977729610237047936534221378367675015612168047649240664723007713964080132045976875280582422546841542252862304862680812035701028355525279662615654440689667422265013530680399629464176030963539477491442945362749917362799176332503858329248534310973350322746079798305996423690237121204744336754477496737888409118849950423295425867711565802538597254090863963425922461987573236657763875245658814085781060481319589810421298156339289652749624270805662128888393133898461316159815662647877290403651842960871973444587895319227023098160396136817320265827400235846525829359057895797056469155253501747796100973974956496098714683484616441946273238465325695707700339936855976241210593186553025847743004003355444542153968050611173320635395323809389972583327911480160383960221059208084313691551161034009226662262865083222959232964987898555524870862462936817847504582795844783201888740987435353151217785603603240281984710297767828798245781985625506563057868809019589515774619047251062787280096919969419258288587427696723495194050286960680237459792628294373541899995504480115893056617792376943600856257175540196310801952106324134693728114131178176887484960587479803112260990750102788481490479638305959765153090512666179162609656410445540271843513930490544664051090873923067440638559045389958806006425203710375101498468914031958045493605676123442166977119955562538839706907608529130799239546156623560495514570722436633426316988016897799554246208930880304563564185004472397377279126680108751554970411319012890121544479859691868814650012262012529906539949426041520592723486368919944838131325597785970735176106670098684443850510372734951739083063805705613094832046496708980746556933730431949785744540210336117816350457982790318984404350622082033709656859308906512017187161311863621870906840155031686395915916131669993075799487640662737370667276856770505155102035757645175814524060439403539801305105870099677460866507797311737325046769912879877687680172915394133704193552738875652692255351510529865030678045140879444310703960762268427895552918759301175026243076890174597646465373187294892921565065707548764336430443261368584479305657273471599528441916298865394421457526579132992161171829020274280477058725868146589536833098604894592864253351883413633059033452618942646814155367923291607863988391949797808954085510629666725896843665452065467605993746937137867426001055929793060461375863859195423378409126035463888883751699167732985311956335354873619981647863393657292969382327866810966692073521064943833283924434973943068768048766736332710538296874356604505756221929807847476130796542109963331063387661989954023971093368165453078298197063241365316122394193612976106174379219001666901435015524203066091072490025606992448015155229071638275225457790999417975433487845306873155181890374819423268558465232401212006551381187810448984126591488180159213925115705557998614171400310440227361499954575080009656818920325625567664049821024588843312394117517557237006408321565039074665819175757516515051617088054155765199557629620339058166232721506935987033992385600836195255288095243037234021908033720332085062436172547795730616132168545649906853126503708818332891904450996403488080131746180872448189156373111568001538206912735848897177550752909533254562400350828925483529089517011851605309288471040644144293452271673091079086406851929369368231599845052105809767785157995208481916122274594306899347739255811369973620848683509200636624911300616196365819556304018014745185810648656254153537499098937620323929046100129514813038980170243813660244302118524139753837995805770800529613893041889393430230308744413924224331336629803860097572191153803600267776490277658542104008265338477538579490165264419698797727298664377097999574529781997468924044599071093478393873205814015235955421257597673350330122889289284827582526574450565184912439200383574654119028351240611827590486554701730193518877862696138820746001293979066886774360039148383877398896900510159937439327706408244484295599844963496867169105713763694343832772439581353989798634293433030995000060797817087519687767986168957619317235304156548561487674714475906308657112434467407071913365036615268643596083475731436018938504462797066224568146287983953876809788483837892739553508745797636446577070991800944706393087445271041560866458164682587954799923474202178251110235966941133268659501090644050241839159663963373090981241090654049377132006822377166410535486686734203404915184675393861315536147864689050911394686212775524746940612106272181689330902420879637555091660431144368558805855709941715384165421095094942678183570880502330141150765135712505109693836981892236123159964417716860702131533639013823345973327325647137306306284712867709552236032075602898647481879861822766502027680248592098932181956851399749092989963921044147042445929055223119400968734227679040596290849924327256629183485203854359427313531800899695730106550616152416046201798134874608436642171203972161341350267311748406680466586495864827175827026085937589642989001612210101095195925963452974003930307010260966968947603127720776285141225696857904501766170188002416619463310295875005525180801115223451962492200495502222831827080618446023965778741942990508402139098201031752156803548508306920644617130407339241607620365418952970110073299483610955972743486980179700926941668672572735296737547469805761562436167076219774635754902214051578702495679217117262628469641749481474274922928701745598389442057819464040503352813604652531456326977599943810780655153977246821554951260084585328254230621203700594186065953574031897840883719543002340951939282113220431778543382984004558052749987799204928545138169576087698032910670550545563422098544658509638430593306116321892612968440741321234102971806115052985326100438942792563449400041570086812641720538588531857644262648496904743484375743340233643328100435539890465409028939781736071524120649883760585306093780056766821364004614352959931596596981840915078129307438728063025060197439313783868857486910276511866028194197231526833135997031488882335331785354010214504863750595801995690275531726934906361601900658538101895095291596011381273257274487251856433159796911846669397969283173757266559350081544624225904887400833194862161184933877155148734376095888798743636414040044570062637838412681906886089926752319876029371494726441769286123420804616330821338798567423108535256975372383676263639675413014719922052144206047614861859170913150340514651954148542103982919967043724624192698377844725291109713616984407222704568203151734724939387484500851480153819442612356048600314451219256076994714747976881500797454068042009887966606339293608581405370031895265099862409004988356933216030328152049828873285319201936870704538914599802134063077670386459742811675389854415307243767930170652818558661292310043214580111190148514321052513421819500863186321138873176425530124383492670533864686976027249987799800700045385306578055996610164321368326185590987743808535791905494081292069043754316413539012654290081104907566054850103584742115359280875770083892167451919258892068876656816043186335026944956009994258192600665146541487898034286360014685481180372234647206581868770746879917613557222211093149495803104146343619800874749729810982974623041018958965671101194413183574208899795873275962733307577054142014341885418158721807273746452521281172383232393814701470201706428632880038766340675360097482607341699931385346871341062859664024041008929091680200815070897625421744879732104555394424260125387450987424964715440323666239805124594312719126004991245736421821870029505627963109770768502837809753521719359127779027097290983469563041411802200027020088798545794145081832007402472549054530491027052404939069266297373111560442787407787723222897897145148995859162559744877264968815676687755455368649878551870618402699615930148785131896751440249293653754945139485072774586673613785908744986885554466003909650841627125725621056315235756225301952336028871164805840693395525660319581119558421522016565075155435421813275957992238534775230121861868917808831986290969149260696324516299955540491366131782366414343093853843112041953354396454105533715988611608784574567719102160975640524700314920486605238697567114298575724074910280539152842911636503694478363203197724776869259810736404882293336485502733939484936589379019227068017626569390724273953140628125503949931320373321416843916379599880827019581172683574545207818420671625971326440396235498828390935161197804167170471183721317711357784247347800456262201840387431817694941482490523937810156268336211673445357154318903119960475301620373315281369661825932525579650581439594765661376403282698918773514110112566681396581209774802903666741569504670610058597884325110211224179659472585357058862977592825792936684516852973034415502330280690522115492368000644547797218497997661839751102561939165615571857401522936352460797811617293299370293174699148235472549180343763289836254301846034981887685015180693527584928613877107784660694390939515303699066639656301269342492920698796048366727682684610948295611634008586361924140980527472621280854248689388472473562570629669705586003568561803938828066180344255856003612609141361009143370181201202868507729363889138097475696072497694745633510942957241672963579051692792593781216702864940039997761664903664551878013507655986912727050079555996356871661131247888674292737166028037223402290102186850161649420797935779561143672987252321513002266472220090696276647779896024005291494528084575187300662827720289797305986122544155735476287462898264082258056202598161091738546252155142059737898950027734978812596338650707162035545063195630956963446646554898565543743843667049033527292360624767300478220120946435191568130208322520699205429976126154297519850441566844083538955306120718308672297359846257607434562412426122710847822364156889052533458202050369729992387426889896879762541644359943681672828779062026329207744429419611774757151498878453018700162284238165693953483709325193489589084960647294843835782701054648127958627244657966391500902736115661805618586013191144081035025571721743293263954268543812178038881500509998866774360241820510836466815118742863643971714245371844052417276583268769363570522626376361520560023795137142820659899732120735835430324857741147058959670022126458106619665065399000457455682133642118708879020792158110064494391101434011671713979680729819338407679223823689382144584770521689049286442776754204249861801614207881887586392134534347719181634817317830941874616187542089630691968137298853950682256064716258486504995165920706909150333762619610761096116588718639409501831784117837997712466630727511627351750826484782402341130305920648678300707540479654559736390537191022707258274453024912999616440799650453485163904637780450022342675926267942518322616949670747033246745162827936745930547796885703842580203960165940531005673929448478235200279930244326930721653871263458082068160448847605742330699966211341855591745618788014448389806773668827710912169321043473318032389822162989285621403270381757745979850522565546784380195641501173738542894165835663767411500775306928943932545016186380222848965569382906577823075626752480563870483036310434187244074692879026471620642561389524374689944662053686554843869918822015219598955649573223293680357553844751620878881135794977813589427106027611815923797425756200830401436206355812586863808796410959595022875256254732595335407306857281118712817085772876888288925127433134115300729522168964048574355078548252264667692413217934178815087120252372284779313569657502917193573283394080043999410248649420775585745794718800370871598963994551369422943450291947509904142582598871087779855294227996095587088226953500007552356250930964765685923253735648017308962942129586772124287620146234190494997118996214921531327397604426256016042238742794923471398768128010154622449802925865418755595951788406762972359687814951049681897670053123472853287922503242666171967204278500838004486109297294078713018847007706871575100858260505868143231061724670227000045598187276355826666685658877277031512055936313110200880895711216357499298634187350564297049467821653915365395952606569916053788756382358955771244700106457873719945512147373745677823399040262803609501963633872989586803891638996601804382367804222040872984374027112891822016252322390640698839688078251193573259431234623358951162694686455875638663760244055866710699206284734242297609358300710569549033123257705963292112432630576424583358017736393863629772299110295560688388560872732983421262317374939930641642555909486181488866916358209141366917911468934207044658677132191404148735752164040520252262642597727770976049773177657774414839657448836366639751661284739713932236912337985254000460648352921659777077593158979221768698719464441742346430269327760156647588724955138238956620899639740873287210024033157025554271061702162110630571263089430085367751910358696085105720038109895129690826234282217157883667529858826971039343157177895059375090863579813696521238588597126831476898810929172616411001276548599432902254753128224158279190631625924904672006563220702755226493096562885161819088734296249493113749785250913590498860701713730198018753534470708588794534495253428139651338578037939349581167911759155600855648856201786425478833049390149398346786441050984923308517433007937939796896924451301709608599632196772887601015836917899099216749408217319397969577540874998194798063408199039937155577504047275424442316285855718095387988997489054766918710250061931014048545317259707510613135643037132863939324870043911564284187027601121398356790226500896994877132291629769622813744043767244750788434555940581077521605724066996653804671960243281845386113074947990269317239447603659750716237815192479657667308034849001360275257449195706002244687090187852598907336553868723991280441271876281082181150554802522032717165577072763939977659932659481448725612453016745592238256416962834438467293309852732294315440966295015679688616356080024207470468975195319657501302224589402228448930192146894279767661779633035357496330089280701046939614143675586684870685001183326822533160511337741550801158919706421230928733695987005978852741915958217065970667050975048260764980053346672536813962313929561984128056820474502359124676628563661696531304620591589981890952952399393061985118472242052466855049685283655677408821593506743468381749700981664554509120104381425963655192078549532877104857379958028208293222970341485523758155207394054277675048279399108427248011194612440118809194073521622266770901655184919929834626009778721751819508572997988416670145777164415644695784009411986863745684517946706526148054429261022494918188836596913355559165963599033106496074070904942702462797814317086326284313565842512058863886506458881891944203487648813451053409856286365912490312745211173889432727103901372435959544725275815359524042325128340309219609301657794815837451745802853851406172136630541759939705734733765320286435158252960976224831122957669795073374829067849148470367059518635795643432348386298628032332368909589293119783682749968970246477448741276175996920668308306247006194216842892048039281370636927489425629810108683165844328684165693737749419781580894685256523842648248947760362262068127265285199186551714132206013163620165054322770337723333879261476935642530703038177035673248927815003958946812380125720520206659518584242925921167716520229471841093491013279177516566405850648520481654394131948289504371232748174000429111925579440876210672146980757507558890146147396969666883421597655610209887044421805281890243544165717998726899607055845083321254547047252068917933490348982735461617132498339892171627660345192156010834855217034142289147835624858630862333975302156672789234346358630679001186064513605269128837323577684946213372821025832239519792641099766442534300583120237856606054702537698181909087871334020791293266934396896076692614342853403610956119417777111748166122747005768682025508686034414216622602214372678341114015057236899815768599963983305395931519406960473567467057160996825683464857104428756294529520721616121315674423402193845060300944476479041977477241870595627110676406889667587507781822857690183208826277209584607955759901591242542038435159246509276922364298334023649176278229817998094857483582666982148881815162557714143780806258855448492509658729409543979820120858391016848107748464752719238164890044183715257095057282934087399066030455296425518211631139546383945400381547480180474186478537994313220296875029901636103271689637652206219814681326871467494079153425195532552786182819949917633313970486301653270196965020559309590598437590440753123893361163540996233019201999733271820353880730808969678448432712591044842083625379657736595339243164843908077408988017613596272624176259796780001778726366962873075545904161496424763950276946970405044201125450425956063361929008790403269047257492012413973897392395326420368915405016869451983745720119917508146449485110624320970243070262988846147412992477782436394248722662803375955044343870081843712702070645319889336218683262003962900925315823324584847517173052734726473459280033515265655172572499333709927952943675007423969607972515003915785349209711503466270528963565265697467349329064559450050604579226543278104486591545561264426722530348940151971892360121318448155517623973985723106594531607238504886086504812400338073702857570255273629861748431309485009704319773461734088664951709327811710563008862240599177856092376945976761382592848275798685289864237180931936067639399611625136313737418645937360475366346407793611308512422596583355797037916498347382826827520007979975336045364142840603996127483422345135464686370725031178371481172346526719741874246647908390428946505925857679920383303506965625096304596548717629726038980094905245515197967709378161078861598015026038328844776534647791927118782052373360905669316387127781419061197343911267422401448174547106969339054890114078468290576137037440265208554723080473863753469309028615062655263736658163238819095564317440394854160442294518083751848381520603784773014007529429082156799802545872187617491521194088400298214898392160115043723685437357787110480127154196139118273108365098196692545434280382487617966937424715466419552633361241840784226741364953337753468721491615747655919121544059483068851151067580008533173369958853336246259707100598463207655533600307821569705556486564437092845249565292762224313553813844599071008687947210215243110818958828995609322423249387149866017743836062388623566543883791282194535566430229254868551261212911960121359096365515607622036849806289566955585632022654001714525015194140490345825659009219481913622314444794619940191560449777569097909740767133851521021568696817333694115040153273644534278520110555453598705015919341245448770034473701692673229985696784394719759896357829054307956416443525856177129043560268988395371341544493828141197620683135325185709359148583246376283862074166877168587734066797565810408578593722233716238126408905423300321393226322925781808943563961539310812901227130487488394385451153654699180156058388133976135488429417496818160201138473458934248302697632151301619647840906281174253116099495987548431306506958892531441486475833055718391032745502408830802357195153392963497380896330873310054227368873654448749448566155277203562353057868982960278384014434753945494956878093854299368052929356421326541183227468866533488339977063674341267458314625268636155479586738769062245873489939617620064564991747381286015644928718024473185858409442593031936452357553492259771993077896978956932946481896733886165151228056852453574742907837697252582263791985332722984491636528426533128843584978080246523657897547785776613905010119990895444830531121901525620101736505511626361464289504226263836970962783586784544653515457762367741503856076495696548317391345129525362603233633028902868823496609216027636179060243392296752318112849613977302554929457756668285753093937269073190602567416951740904042008549125359914618378880455618215547766482077581534903472175841350855506670206883102873473531397922839186352271265301639505499183470426471243686295949823083379517347246271884122220162329203779981545157302857580475230274473259133894496382681707842046149206824584531800136434322559806242026983968863416816980720203729957183591419629596655252732260707767984295520298939016351540846831291656234020414459773221566741560433270937846629325797850979267588946974600414930553054096036378899760438774134480351490015606621690019409424664814865499753852741857811769282641379639848679676036246431269355335973579879260586349130908286262042417796150981930276760984469359691646903059874691751513636757227596148695827579217499571046747149378313774558711863304315573880360488980591434967829166566579599927925238064371300670239107956380488355817067946410056818379746657956753671551276125895603134217408461172121866596250100334145986787950152556033777452313829376805474320859154058479824003168264363004632347919874704392319035468235694853321711943062494017729065733238568743004993633040139141405271774631623692143802006161389700598893008205603837303439943233896592335224583102494849248219935366234408657169650051792502195899756523491999481924675789337689710339459653188763767652651019926232444271628638224769540992005383239320855648844781760272483395618508450094464223398344618114760048345743110400778780284674548538396421114739800016279922625633126554857672320000250255236742859377792409965806881971248750780648477346042619905301288494499109366963741241998758744767766088931098198576236696764674989945309666924946345287726860943067033868189593232198866705804576053956183832284746960803311321613598112427863853172065299723416463550659457516499660589965051495700115495246768213701064426074101094054377487023553935575929057193728500750312936968924335748519612696356138330249548895273122142267306607587490383517739019665984877608382254716713544768609019271658768193562457593750186832275933583479712373259916554786672414559209812320121491909972601072210888148582483183354941208306699330413227418584062835326181219711901091048789075698914075396672597640933189781861890252099259078019458621193088930770318381460263296058588654850941679579189435659599745263810897254044879675075422523719223249254967666194395683938804912191594063745005417298073872737595294498597907294851748570488718224661966547398199636243027103384086741772812311212776701116570833644974437219915028625602794351246534108627917089247449691556097842801317531420481016812256373445831887586017813426457295418022008287401355782260476108979369863981064260593308040626975743510386735318199286699115992649843405548974470805105310485090512625309992752821469137468360745854821023496009985779875676136434271405422324642257914010222400674528191636632426129936275841816866269077022662044136955870391784743210890550153007000157479933557309106094879711480140152816109091317914639481481758877577677918491702458997591959950195136866002145024578559458873166708115795308072623301884759078972229790049137233115359415340716678854812662333267472609179309344506714089030883647231436742214657190765426243207481613053712224636551518104756917842751306971384128442822040330709915117515806929387308234957083784873182303117955160223188337652124693183565281797625484576480886481640792703996023836799224033360977101650389520592507238977677165080844191825088709826230713082877679311767824327747234860446732875876909775564802074951970177825884090943105474175439288746073191247282712220633469984691601929121037781356412875107383701083822118324387122383603800250214916815247964375527822598543106396355011706748503549168752448916231060007416896097455890044193796274096976665504039487141288566849343784985733374396378444946412211740428676104285205197132950993264483443835027137674542306728525781234622053179746035919633601708534242714085639877947048391126308583615061986459378509603329347355997906410659710205783046993667585122233332520993348512747321527024643625283198406787987340090483727973695473747170124434230773794102375610424294771185414790169107697061807795971258389348301042689351118300478623828926972547508465017645109848535070172786170001047687603542012615728604998000283486813186378462394512828743350303117968359280172246932365207920639856376392172533033808425569226889496740475912008559803500403976755976068396961086164731449973069027615660602513831183830046136517303045036159328279297387474940222042054556335906313640374358353138819034277122733294358891560000985187591186497344791966574610578968332746795720299513242064042096388286060653876937629108144685367828814215790833788865728439410579628173302839197245601054902303693880272382834624198918045027188910163144506249581017761953641437821501529503895360982723551998446804904128594317648402998732273096970265946694992758469741718937793400613124242916786866317953963609152040179951210688328029329333840286529701351390221280755176452731250950574291769683302873973314767966956502308145651929024464339951135561080328916561351574451308595950087620120444757113305604368967965743654602371474955465116751387944428292586507298024377510770084877123116458919760405144431748479136829938886114850302799428803100066909777807106257275703141384284475159499246465626242017230237783266120034726013813022499656431442624358497630526511635445993388279435938508971395727201634642642919290133494533104881758626271055531172115746147745885303980449427256539287713577273203987847294384629244523978236090842638521567422166780212701045213403288664690903993591904880037615426185512831316840702567198309348997736557523396435901120723093119655349538318593472571485496675043423348516653493133321589561552497438363685741583946325637648349755212017140934611498350502291134077070035950205296018136885690101568032417842275903745213490288641368017169349809733983195288985243431840199829904130137208320785796754679255411864912283358446951559474740567646406856491930213932497439062666868379767131820651641847864792785515541248852355488860673613336268411504081609376008540002253038806461923068480792678262507513084050612103914837486621104598955313112824512015821536946992529840306865152249676924294706569989796281530236752647606016708855895165036215671460848627022766397373682338126147143727962873123351784672331255895245415756023875421675111991550436394975339518869019627676830462979592175385370840543912120305963866746127506841295687378794309796011774532954697853912141627646078455348285744890864352635239392603014437920959350123989140409075066821272943553329942458321807717789522248618265114078578505872780615017624335173372502474497283153485511600969697374884136827603045506643115469893230120700370749291991811720243383353118601256152400655095153551772273721453230167623561602810007933210855751132985454261136523040928849346814436024463699406229389484200018594316143122539950448752804824453153981051014139384524723000342910268467512405930479179655203896041121754638791402195495236735806080584007798219987668030916305557380458106893993196403097227838804383536902539056947669850547430745507538881178319376294344001232438734224022439747843280767624325449757015944348579175948104884397586272971675488136867864658692997009984129841935235825588084904749739078290248050015489869071382078407149914377531838035774702596949772433264753181016879738238994919361906565135388101737477319409941311210780665619006183047372548938775223525002321796498619672603959070677803900328359596571779040433426202961157454710410075305194209978520138796537114346586931999301258858977198854102911838427372138630910814114581033446611427729376631986512105963017280198832858637284057626394238395377597915716986662058706983131963808973470033559144951246405469348923815638821961166153301474817990348630062096325079226205356688759702201287500409610958493293985957639295793675108010417190416070820117739643292143769665072488878259066015648074169175768168986717729902576245813223880054732160411238270386152064441449712292510897936396010517405997117391700556676457597318473757563192084030652469347083388680117985583951438048921646082838493364263519980648178622486259048103425195331913046736660232267006875975936172761087073047424266794105848131447330530445040254153361681808720392511698387070226838310915365105130371570867187401543299279286015851151469263305067525349133818876319862562227534751576883939085257078088134391922477398258088497850874060710238067157867195102433338199322122236651421021593981979707445210467983141712523643479288250404694651958077638841306119681847436143322650392305409292146892856800450506879857822711868781908658078384292559613258522458836516929600419538677672360490144801226674925541388423196673976946127129990961806705548669016489013893953054093097510039050997834989160387097875681350239560789280070136457964477105854732302408430189097275894092224478433151703477055423027078395812327969038441049532199773038531409653172872167823853051901139926024313480470627051982274277879280210351814595783602444748527575986614106845312219475493096836042293130554995625660893673592753619572092362634589982866669538100902967741186884499866916096649369040989801899182082082594105598066087465264530281058447477588473374121941302379093559398547968801657710621105928553714093806501278190019784159274927509344566125606671781683799245293019676383976207782577980084368241364212633583093598686557493006917503225244312792223215527020505666248033726670736083237955410666397335473291105456196129842368210185157770703140930630343553784690228375292209745854310868862713245793430141530515225516155242793048065411642522231144125815906762318140193138753519957443461218444227760886390858642911488740883776816543365623035089732686019346363993133219274266273033688168199117450325842871060348109533661508283885398392393379326858690205945484353328911807886152777245647821447694257649049535124246913161398670098231628959192500270218129369675498059786819680908537956247230766169650977152235865546046921569773981627580297765777109825408493275148760203888997804191999605732635985483829064761835324493320875095923574706682158915825084857479342384567160691328646338969072086903222492164043433156352221834085437881300504582949025104501796733514021260493963158963133724290550165568663255326857600499924936733778270170525699327152900810520766651931262838941390903130119162714341489760021317636975451823642104838421959898386483791464651929613356474304271466844934831107813292094522613112079392132106200610301152877373437451516595184303027842147468500411308336364308483134570326081883746568203592474106311615775776394586317745407039464549191856678554553529175282999318968060569210023775162047152586464754342745877795967142063748102455907348204033493738862305258298403954064448296610941726392278154664060249789375085695088323097990324694590131659069412833899584803554443896908920297048198671529419729097227758122624387209307398809801331264383210479107202583415594086576846105708473410248408396335959138467377720705476582182395800314166342063686224885108467053943662046823166291288597627745070236989534023316826958510344848986767452975391027340826634634921418444274542495207846765171969902416300125015254410688977319969198391621606409865031644889617431593233931252832448862011975050274964031406633958647547030488208331036129306351433744478502007330570889980876238915817488355335189579308383818757712804451219864244769296102438063507073576172748992801366991085170209501281782927043732287345207291400043595164500277634409229357909453305336047143894950972033548800015988035983478221647245548312923573713612156703320965003612496151512640318936980071560065137771247854261293477655180686602560789777659981894106692680034949003174965367663928440959541204616038909459144239898672934439759652281400069594334376481365566890093921178274252067345998295618292432897756578831651182714889210897182492842875534012478978531843178959448347861656324268730728072729044560818829962534129427478486210183292228327714081222069167813154272311990272928355778277921839856444351193769016789057887620313034517753341633050781647768596431684418645519630240261360814084670260360005771007234522748349268758550001397362258065745756732659066893741699729097515937718205667691135048064115392667347647195087422342056446557492629364678204508806843408612509048305131737721633336427289086186488459153481826118954275327688568266316506525430514555930131235602603002586622604977850035035101608094491045888543096269387741441392918239672621822569252099875231438794544944754853192028314132905972971803582597111581803586125598239457009818903754001233422879332893510007578722453357393032656274882625233474768804866820109831618027401052481609149019540496863595881973571537050559100244964617649882060645393548698200844528385106758106818395619853166649636774586738974206415478337555600117004423679644941780019925437501982799703468129541694546881462970388064696349373183716776540449262233478012453869167890362935514732882408381112258852536646379328402419378217385008925567843505539737084852253784726520108618520707679487581565678301211560124394951290941358675205156135223526715694758140272100796161450607528057154955855109495019350241550417093873482617093977002071292803007753784636479252970354578050950908446892848903288658624507862364021888929473595010559396828295068742084278504109750069731541042070076433322785399766475849278773594212453243141435912849610331953143088492695036102144660053175884523452428699360843733244760590599629108441689925345315621164029243154797039336021397032615710987302364440223481455845578231928967970869485952158069900958696060531176671880322218509710737634533713604005560791740858216465611071528085233738524776307814914422302120730971682756806208768590876964855632975961988063471277537028532569994659807598392137204795276782095259607712371221133628689684585914138108848632500280626759848695267228406695106018438998393347215886650060227958164442181614107449315671900025167387047286129962945594961883441627397584230924230196538424222082395057290751460395369014324664514725668476272809115921035456108268220579745051203872766217819188983701207962973765577955770492408812703444851971006483299208519163553711523963740188945636259111063549486242796190437388676871385144878786086018395152068879606149444945312314890489378282242968615106889557542791031286195847467272037915297911465973105270263912367692591495783425584552932242138352097837942400700596890018957567955674545309459642662117891004479855862769472742595599043236477489757728741447966215674851183098611182008217172424843399018304203371219172500009636467298759349205811656343138900489644831572324280514602222838608958212366824560114483257756708463122221041921073400879706656669544929105693880533353535012881457773546413986033106911809923858183250095136559239713900475081891908382746871843517098349552541191374109501345357748886899196612931084105895907465975933783104467440574555234423071411384934398824882419170765784721505134286221339518102829858208839627109480467214523891883818087081707844245707410645106081207480807291231777442661772067706623380777275807234745528346342050890293111479364244061307205085458053447178303805183117350970797530818684140151995155425835414378076961648345032468639200488513495262812364662530943645445700327738088094639032212388533606723557307497920131792463773947105051905939995341736630375609382923229030807254119761729564369303136212362946261666593627761460324596744749788626154427136495366769486836889495885245010763083022928076927803123063985959690287905819807055005574148709206736823488472715058183509714818197436373309366192275023180129958985838360835705347169822353904607309161876023730126424855083463156941368566009128610531816354870291009563744041255845822773745802508834002211140717311851852643090179287116766918726943437982780193697948978797334509930143748392305676823531198637574155251922848975469120711008505663258618345476367037850948793725430532551926899209508347716234059019147602748288852803822478059706584997667547017102814417979716264660964341641468681102331732369186051199438449998875883640763068846139757422255415502279765823800991407152587782706532225741185676674196342329889897775847189409441470331988654347593673668954456844429831887843098522768861123093582265738703608832091985484413341499949028259611904593485436018709969943659778708139895164915162823701042366549288008182231653028491299548091831381872202992354841227306690389684642412332985928358780961527902712450052387904773239528632445929959035854375437851808005618460607755802743541702037276836793971532805880517229986727079288765316349963622691871263345109546907890783737334686343279692279866220156329610239183220913021377212853805661549359854517525770627026541818075139918843460175953966316973502554609355588208967281565331838001019565218388210225128710168012513987705290621438709362307041479701440974735432889774904773845136615918789786801240246778531468537419836097334678919023797284679970179596155887224696782063905606393495731023528552956593689316379234520306652045672460619365370917367774445323699236939578462872217545112094399975369122495328365630777610637563786346347428517298260397095978650513399479069366820020234696650600909497776362334814243547413183184515929386016882661856763744877407589491422235630962161783220983162124499987415157033324594486545544255343226187213415203233342546112147167638192587070244145439382395272263345051841622553813200612000233957650383127289474941886312072638468090086266418475959664437180478096061181291462314656226406361403957764390305237542445876173983197706951733309042123273645789342174660172616559502098660263572355709968958497054453917592435038415955134192001879969348775256527178857961215196259353162164618730512289833670461972350367940641312395751585756947389326454922797217722782533502875809173409944324679346858873867046432279741829450663701070543252345648087433367472559571032874790448907440378833796049278656253949362962498181929355854892299744720509836477752622271729299343620185892352387308316191914190423851397632980701578131534413751806748943387936951622482051562921562865879297313810756505647705293532937907749339900782445739857209373091321300571958192181784292111127498589823617080560341505547231979015500658476917146464141496969610267389077942402892671408250071949012447007625671226136860452436743678080606876988483623861687778978363978913361898192419278028148150312250116031216410740760570186424581692094830643525248153523549164948700512730590430523671553519417466129081937182414509411836327665058301473709259270760166167447598770727068109863990718438926344085830905093355579105521376535084520470582011697308564312042826395025644948870778496708781062454010843585180511948153919630071677563954162020310085461868304727158542531392379430582674870611638207794819025665655425894441233754016426630417514244631899456312946335850746745567258554409679376540389114717971299909506006853176216784975649144177601795243946523156241469497519199362321201892738294696988618906056859032005469657724675182093228699996007847880171737539364365490257885084601070197105507927445342305264949721675172311635475960233769543974859694844441260094317086192184280306428992943436459280069861739547809244988002052377763804706150584301854779614459564389393022854651705680212223203484830090712233273465183267191246167565867833971242917360884896921639953085879230701680446087583137170811033543440680633331227093798764295750819093764049328993816052669194546900440261298115706617788397888999998028301222292767690581245233654809353925259069145133027061636180611589009387930827110693609604835604231599549908894562636010279019895109164421096513588104889909850358005081538674934197864128508622633587767609218289599923778427511718514900236446216011901520920828025398640016315656611299812218693135328937814805491853549823916610438101290741015466719681631014724184754076895120039646557928922271316919449803008165931383716191330631826137381537736139691389113494668177687751398417726397890645799594480226242813309677460000082149786858215579415236424803544604058387112775286788416549069137736637146636299021434370808497957379937926277283758545605439488299059336436316042530920645225097667722437300769765655035947071474594917470924113288387225005325113508134394444667015360652987777622451060288361839392361768154853897037622569667276160172001948664844903672905289609484360968240861138443584795139399770819462650728358279787300071212936850465094706648318604564927465013961078009880332133306036656415508956087041025068134651448368443916758921735737304909911919346365799335218428370076924557790880753786022169442772405134465285117854522914385911620661593593265702218977103921841791090362488138464682222731462969795143837092309205627207771550637755580172556018073361063797578015500426667218468436833629574268187339711379303790989420885936522949040007313318983108437118151472837000990589947150507842727963752098151198018030980367095985862196605508162906005480205971742489643800532330546862795921345500542222124452827463422275019553333862428945327383312467669101271212189439185824622701060249143746157872372280768958305189579921245213514976881970128042446183554407016269925375361237398193692604518034617336545030225303380908243198560899467492014550671392734876393294817807934794920896288156587322992034342282093269732244108057897197599825054300433230766424630688529100338128702739259011476490350312127334187570665968387747316429534972422089655472117172168563740251716828866348434745589938238124668911818080514575795089071815333335894608372634833700780682100693254573458654417329404304342906376165495093288378465315912471738423292655606986687324108810765470642301165408965714980166380885291415847765094753195269032446570145769521107294784883467652787900955207781316849426050350050329070935956353413143746561871676354627648170111335588859963216606089688699790638639897035072349591064631876732999086681665437883559460604082365291982392425203642210044633477685314330387609854983358681260763866722250924821866318727706258036145707262723595546049109552478676874189364384026529465025003134493301843592462916515152763185578332243034822218677554830594652840013158699123601101381299877263133274626682333007799864789612833018948057901431178452814400381282650448617830800307332754397419505941527862033361064754459486462024156884781696514762037757049535818640416272585785725695479067862612978155979721973005529149322022547187888150029017663097351217869393332436532679214106505652072084221929215694235407050893853145636220575625507784674889821636733383017071259712601191431495668796534447276602536531975195599577738608489019072486275017266485593866122782177940669913695074798010952098455960282306626681953803135268710676343472881762360716665100433836785287464047851383550407661231678216316567076666635646373220465044396158411625191366947212335078501194924838874672619723477711991448130556736222367847471434669489181211435782268322423838484565876929019541602696737833829592095495457855619522851164645340142591523045536402689946958268118499064543841271436167232257567516271499749609941931457410808609391803697211651784114864601968741702474047345384438217411254464533469507943211086849222194056112902609767801825172267458522183608408065401950550738546239577736428173663993028254594394831383632128269398758268072652080155574986136520048271821745298563523139390743629142314938681074773745006945259636215816801859221196774668373888882087869940812526207386310986503663023167490822321945164901236071191042426055278014077337854969923219630086848997826084445066669818403241669039251996477424876350764059580539795188947413012962411336375992278458941939036131529621613336788953981329639963253594487385606515147420953475399645759657123544087262487640366312081829926521089111939509424108247165678616188303387362988802643988812223277669499402709972452083256912292984025806206129013833239660017990925228946131102982074776492982259278881215706856462697231430932110401074864086558957945726311619723296889251986986474086987115162120910777150875163760941650987496986360658294576832808239911255168848943489056965951914278069253595490238675377526777591479692642930254215494366073311971025072801948073297696002565892476475079761846685590673282471742837759322029871584976860252807018981629462304788010860262814251387077595537008910715757999111887544374879141845504815302123190692503743810933262241291344417502814289395320504292962984627084371821958321361969069461123716520618189598335590352080759173463942294350965188071578380823978607753742150237941606142375158246498734917512080586814806230021036022777850931260352770164744200279365787581106949184989453215899848297840225004300057277280418522837399949029295923198299587989322643184252892028491386759173472213132182134638372146307713953100685490947503459479103210690310748792375461105411221483875674342269749364728570370454342945236751790605061360490830811331375360139529921057703491423537258619088572187810578003674075519647748919953021280852590484610309330914663840422788559922475127193121622933155354564575514201567106885257144974354889074897383870507453016111070221805479123211599053132539667847097298135085071462392953338820721306280558951201819162611174317725905105782106691376524401908489538900527529768903900002821389470075042241662669585063711181400762763113548629640555088105080463430957532504531597821047047450351071886678833745205616655515813579660460817430999469087055950574850502750735460056271881120517032820008569172932444188695590744668700736874406158524765448655582462290888489298851997510499891972263663755067084578590024178663743813314179538624304280485530556902383596784334741798220721355909516542270357624981494036911873538560668646420768092579337086793952437644984909838599866368036908824407428724797435249269239709876240976723054766551269010040915340593925207490310945355736376542377912211203380202389772106699106094203695563949027961741452980025739185634641064976985641044871302936083822678791995893403350372513044047183647041630802294578138859107362157979770270967037690095826724568619663503396303192848590662282899596362788128967580399128002394386928340250454743056323219813773709945842725476998870944304662116212098497334596875813490298201567848910752042173217943850716377291504547142751946521943683808385871407483809737986800508931838884888352023957425799589119100835956390726375595120043096751885415262673785819321095266205555009067615079208496220437662594011943680577343268719452255830094978443732405844343277516271229833353415394910635996349687713061954396712984879700455058482501318115387072276733653401470352000403863160367387337798021478013071636897825373909551140787478116167881885405421994754492930134255277307123809265944064213294462022678608730209319902136494423481623115906850384698192027363239251995345672383584669124809301662939017750029978145115786594563689784244678781291746591749927189021813855895436269795886134497427176997755443671586659735231551526739918189714254829468432174666194303104793965046393970457973359104423021939321893002148484072324999210989742765042032215794639276430664365787755731942486873313822240799625793199390649000749181453729912855273042252841389968492458178530971744302799304746240639459677360459001514310058743405291958346998202390484554245554806256774586429365907856731023976796656081923301103509745347601352729259957873725970482877906860285515497567146603216601776488889996377961277244739507102444408068403416749028628943694128159022106962026765077605155802736809722679879545868048572685407564037706103949787811370128698707090634678241639122405034741240040304022556076768244937355511207985969880090834050425372291931388721863399155069356055628727333996890221687229160471730352561802632099870380091557073461231623996805571059067313794955051560773698244509514334902570652985943227066397345259760943397335256207790044621269407775050550045012500806917665328231936637876268925465007377508134526252279443914521431163651731568313350876532309751397263804993464377258096699607716180086229772780727757368556504916005926426042577528258685325829389822250085023250150905715090930835728599281945206191931965595277818616212666038330217923981341695544488319372918907263947889100709934698481090639620295144120294615449079042885560506232685007923489405987507237950362885515181496762693388729621762812918599900358709378940828257578914379831501443340344314471467020635757474436350293465383734161149608230397165301785023829526328673770146086772230929028504726053782356038762561789541248987247390659259510826474973559500841755073979961236533206348088041569352201227106965598860800174042833221144862741602497387419469891320159125337711457775633296677656938183298324991053430837962237602925494621048399901288794281943427083440504977226387807215729620392397978765503025524203133708242043949136093292043469589458643064352563508421345798400150213916354652125469776263942647064554558448856834588058855828299492603565494906020882495611735261691237781367652097362441303337001519077222136403572524418283203633356811228856903142755566015994552681614267570759962755601312591085870770499984322262135969903330318170395401169970733793733320462083085619530224021200780975706587421106014674919433752755582338266861990277183149350730045489116041460335012365750963227903618698256655839290407316856077270416380640928488801450629382091799930894973975379538663198119419660404328671416486826811983565311064785250770164836780193698571502808024948217040909553913422258480326666927812971310406319200527410896088491383171245446381072745805940418242908494748603024274135553859911159906239657679117875660076754125678784563433768134134928042018381478500120829425485805258901963298512805211970271553190937318553012588459122386320974151370519659343562758860466714809854942981979870735862973210927793612114509107793285933720748124912403498189469303237497642405410309005166489630890116967872679048998407217347031183872115752521472064094101649091648579164529192760312553053372942347305156315564061887725663334150015338376619811974626445056265031254766687717074473115178651186868194450260663933173548716408266224148967723975703517043025573398484789240308899847163567288596520494978819306329835595432243967811943408944092456729811450299007132050074201407411866981456766547305324314892917123127695410030406219960626436274623098885668311735357106688708652107724877691519692655054051819159877429978823211238587771749685290647655127918624187491875014017818609676127139221874029108413343493732510203841976834797325520662681906577367876554248741407286193902534889872712785158216302827308481509408822560595377837624406617458963985101438592347002711012567533472204247206899516177875730209750935889589195689108845844552603294203131686355030178218627836071173161626538707123852790787420786545666529953461760473328380511016056490854968215647572328763710187274543009741722975426410836562827211342419162936129361669610243606598541977842986195435547968465962920869667386419400114757263217151111043296439722255672835295415234973030795185829029582432799985530150623709571453084811727779405266042690650444580485663134639671018991046133313024697222231812004604319901694620017806297224577680083181191041491988929966881823712658913086368709464593118733018899791483015594888506043384417489291369886608831467523455636442165235317322247295442474700147454527694235296607057215661647492219143745010099809665167130879408691874886136938939134779384612731810434137750874880815016275810030674473575845680801397860634765386328911044514337988691688542675355892624091771109626250950368110372214454443800501915926383183967571404533301859868540218490202890391297916291515126027256587719313518038089361008693338203579474464452985127877746280871086933692416364291378665487451342822265621870563764194197709316875907875946470236283451184409423503336650320602719488226098120756380804927798693419837848127652521597059418309916391086893451854352118661598553090808827779094929962441891426278563727556116352510882420949691067565284924157254450678584520823542798604014421852420807580251216865377940956439540290169802170929432760411649551330656083044639855080714212713699758100421273753193512636456543328819526816899874511515695830451405045870866781392707706012305421945079670796630086258684471210297200815193265289685294798530547554030390965322646815503120466709902028879237438368369763404241461896321985567829264909842765266602676652546234766790450824356803106456681537990278135585340011364396276776673156117266320553585099250933316385596158484275380967880019198818912259881108911560970741760939837977601182772395789703740043264209311787544311626608851330012759778237906510282195794978964370107329203636597644759120647468617282705985159432437913598435040739661265251028042153416794722514381120067101443575655027160161096983709421740600967998722648763348409398648774657273026205384032095388556146266997762473469696563360448400870595313234472514157870158908421198075682978534549971795567449985327553826928575027251863968943186008190204349605154838006042644159013335193301376063232537359022871041315970436643167525755883807814000035246776039167148265125242226309199001648268504434082909430268384170336385677691729733439924664140021266067794028637916476590598771307940091451074745421220766472672953013256975120075871163921145658618327578444192424540150726235516036262008240838398236125979302873116324504041938157085778090109369061596684574776583032322644019130412473584340396345691951060135504651192748023589632818452162465421060724446788153293594613866615544948459319255944733136775990571676541032014263345603807906937716200120577863471700051849848279004583571183152025345678802662890430675439201600405850035263531137344985087716337314882273500164899415496125189343531518333620961581036439739602940029247469908658512542393300398070473865722652427149851146603671525932095494287148975745655361012270298898410499290598435623076665251101087446835053405232269063314814752307056477947112906695562004918132946354761193847106526365874967413216015348487121121809661946938392185740223958880312973260932836704373878016328488383028899597569288319342903812530244744137603871582276922956382650574704428578866945897996700011849251250307117284569972532540821204186742919566232288808700182033213969471663577147241582131353719483544686966629235011158240221933954867719404233852472665063165639692307323819538707103656614321240835257410218332694980617127032886316297979547246604547233897403710485252954793622627563548191363252976992306193144027025908638843655860333164754150605680439995036550826214516575506768750021212071316889254175362668204785973904126976380785617479945807083338355355996039465797255909141644205753338965867059493401564836039875918178726813573586431699508985718397171229116925861895125948113532082078213450404636262812555416059151697546264441308885955374267320327143330214944357116439454916932973725021843478626424586049200088506434994373461218221429076402181270106474303531561901798233723852287066364692801300167390490297974838776003331830020915187489292441519118109682501398905767770388138305398245472748791797840263894080843487294181583132656573894498356152187102959865801987225014432924303105820235444876435620191239794637363723358325688851268862018739182569124843088916397206198483879417022142876455998833293336426072581233420128572335113558927528126402390451215976541959835193377242966489530736062132581564688576397898182964526506444349657464963520997509377068350101379205617241088885223983387795514930810395001209556206365157093375622442384335201402172594177298656928458124066220930484776261566142358338026483329547525826004226500524329954033184238658081450501670086145360160917244309435852788535866658741208565607570060680412795494188296397576305414828954432217258618713871376297908540292454254639049194289608792979456711557151232744131463218325048813695657631535088343718145057655149635123054005748465566998802082512278067411879617563745821498575055059736713856791486270429938452699658605079302996711353679679457662842421395724146803175270074514830382713023208226775321573736006957513017758631186451844832481619922321028955971126464649299046669584201802423616234280942401475502044403782279224535578389536341204262298990105620633701370064268220475384522918112266312951470178555099161814566241323590017427836509908898512095338052686253580685526773088755939184595098332903351073010373471403535427129170905937752675179680781317806801375814406773604594642328696371380765083424715869920014582151136410073841304392399426770284211426139793118772149319202211446732319907455041745123564999960996520169058857527534137385574183514994204719645314081571922117232779315610098146683889153224140904084000160615363062629129080930261667246948308145407677693718832300521738188013391350227785662016475307733888972775111893886891085264382120868281783000015769771802120612294343262655607390041800438139578097896609289508204702995025607083434535340849052271038674960949846751209333433854042914211250950590699422386572438289487230072022202518504654485513841277766039467891605244157410843771726035436622078351555885924739448538925676785660223587983416466061071459596694209821165867843714539019510901614532528078718830747043932340478307003105167620434894760092168805512021655335573946844641159586601528155901404755671350004751974408526611480327675605064551117327188917410637839090780698857206890886722088066538808000096385486456535908104391168045925661186717812707494913892890815932446890899377710080791195322241233024223931354199527296606736876739747019140041568897570370513962824013752175204021634003877115366243231092135228443412562499348436548920241930285713698493895330733945299954279461880924154157214059796313720848229320055998086710702578993923873639939273350284689457932842941902807163488548815267474026094777164485152194688556161560795834957772007619644197026702941851380714765920201369835901419678891407341580678245905761779447740737781325641016046294076222646304721254387373878998238691080493348130748618711641147573114995843311569701052500882347516379683989542375787579799362031881249364839324385060148392287912567261869490034776194336596956803318744974067770985819213773035502919090600086476287556131711989401973169231034319134787833296667241461163378277576973136792799216087207421607182710020336951264111062261103455621375894722904022790378969982088464081599227028806010477162081793872524181884439917258912409662646506878012751006999325919319036617230540624036219215814352142974136318889912865091844881685328526589497486533030497184967636600301760052424247712230506472846714379236403813865616614397018854676903443159204068627434166099638075769158861184500052134497136456934191561466881716866429955583007821125304033186312060379679159126113786634824470332380981121866049116453269148687046021050772427732369656840969278077361579254457864962364171677234566049856401752469102636013088077988849099266302860439611959165743244848248699035803763040532041806682419784245905109341173181589604065532321609867164964065145440623553877531869306960745063922307553451146333033074091568341853092354566027402356814792277562556334400489317054065701935571649488907506215020692288692893492142825295463954665609803354691847705127502462405467647835172180725984682719113298451795494946004232957887099061573533201417217402369341422185951114439594633906427439131971147415721554263215245932608783043938658711349109812273540641193090973538443530538499046573735257146409123405138627601376667337027724204225888899592444218628572729944412154924509478440548731841046670077198893292869377748180773112551455009019809159202682051734692094805897922070610116858413832196039386026120283899897003856852448115554367700708006860662004278434380597240101573513874764850059440984515260577262599354800742660588690642580974675938849121676641410780564803216869822468400679871407565895291456304974206253865898584057581818158106253780079896149725746970196730019152670790486897283521764402292665004268156269261015980153143651989447651169898754738829962845124606458559147100922586934216554709648883465780687120259634160147303355123679874412393605788433375072691943624205017481850885939154024540507398413045514805412920595667051037698166959888791434286259232025646991564944570949335224466602504127094715571779334438221424613225996389341656970410089119760159685294654780023718009651189527935901639533217433820006127018806269605649294594444344713527862424729397584869037087725986670512694805017888470540556067925019536949327025773730319545162475676053973122216448126437350472350694746555168098376273853871086933387499955354448979971265278706320908395972865468598834260364274089750753401006908835981957170197924056505230049208749854852213917185730405155214362245050169358757647277273292776608872427880511866440052880065959267243847736190664993132088063841250912009503873019307308128284014444482383792177471796395398613416699008087054917753786619366554644620282802282023100848667546547918824327975161571515727492712712776958446507185693005667923745981946502897705123476362079771310231339935399425570521437337436467967032313720651812922169087374400988425333851254752427178592969194993049784481464398659092694189818885570539350508329229586795182537927180510824885809358709636175749572424309093143240700276455727696574672108007265686879963234292234683644350544572699353254468490746426890390504397739559648104170362435455352402833645732488541206276550744965407145648013804245578145472806752945564736246019175380988625795302652964544523572890458823288234776355750771962671439824778747481564078238070794202961499130215385823069444633298678860016272774019837851965506478174756593515427460853901250621560794313075565904560207861134424131160985418300461938147092732015866573220417070941461426640432085394090207141273121131053821848784702322669068404615812639661862336218546343201556640424708349660818412517701521439518245311111012641478923983879888273871962426919575289824153703451266322182673986352582723811415020533584878838263870995077577715983176278152167085316015955328908598000014706005237867528198725174174076158856014134267605835348627119791510065483172015009739503776986683852657376653904066475782173048983673273648921327121871053924292668510001306520187317021771810852951085207999661909960300147597684250720607600985489502381637641259640624203818810805846265831128599416166028102089005814005602351373373366253054322692318584337729588470052556490409843073196628746881514545975384618029441888299923121062112627781446746143000949753337653365076139499992790941421479418456939531262841307755055284694368094662737985808204775015507466229234558088840821904597660443412749620054209352751369615402702715821653209983696375624787105745825675704099369644103798435212422891529755907970241381933473623653114465133417287204999977923234413963686179927275552403562433232070169708453388462085421380241644607341515760929540756416885310155612189143622598874300630569677784716979980424855585639521819944468270851517677916949398475889734383224208110733711721018854206549323674428900147476779492300580033379393940979084671052331298251756896132258700742724311248638130188034145034386212822653861604973003265097162983381258243222658823233511884850072966911984455537708052471920438272420136844209228753014626812446095479799786673243841671336367259529735033729423003905176901442682440104081465552451575847903712380537015291382231965702951032742837077631743333362876200701872232288141818893767636753378267676045411296936295373734469057017720910039848119487137059509940356354582825879821114264834495261837466721298013629704004972775839515234729932263218736096490453008762631287647042323808413707093389180498280410071741978531869720233005346199225150792488696845230982301338609708062928632857531259117081996535217695743160154525320871707873983378463425275855050050895358489764746847843010952455581520448634662567872390205961553765300382661344011916599200666419589637131058852711110295826475838568419179604522338925283816903633405193105419569367368483143418012091979977092730558510118799893951425429989577564316427154908126789423785113670633821409165247279956111601667933394119541131892145230077640177698876145231521649089018977082959973169462968161952831580675573884030575373662388548301398325296923624513213872449335318504240985348631608181069118578827890207325512752275919793879770378162926937492786211316467477321389092942161454369763447513425972216898866354574850730352624475748016154246971229220344632351446419355269321462843677623204538877719327852625202696812379578055810799665740920345035476467973977202567618959084900991810002078926069734293746578356085084582335010273062047174996359946061599623403559859926551218565010594076255633302424743610351790130624058608617758786543690267967619374609347967623259712218844872710511040056357931508148884820841165026261300902269457478900716534528248429423160343905597017999796254249801722402122606779834883624495881389712929691972096704039804646187003396553978891361710697220665164374678693585593409165804300514475520249515559381725177061336409624240190548628504900844363066663715381838089177606448953501053665824303969929015136121942041972973478476552818432880659919110368496737364008215665945583201365359939737773490434786971235802038608890887539117391629433842964743376820528976040494054595862494543544310304158911532700300288114724154797416792466064158546111525055959160632055125079201623024549813828595307584148381969761247623014629705923543955892774390262253657135720817843041601433175176639815215260900728390032454409271726278079544164069698716278543813890806654974622004713285088527538828795299033787269563281800143195970140390882025814930420672016207219541494120717603510854277125670899996864909595577154060841326203071645697422804648945122942136238396675420564913497032301332686965468321527800026253507549342658037916300223662348235195642213974473422779331231283530138591765953775106629255131944679930767767189933420520345283250973653167721286749124594744637769360977439054803354771376877579753063165480182164498994266096416212852818300327133447714838893356030579422016256211731290070725112754509926782683593195348873562756283341402969994790525235514740044431463575318527882378481693608932595093379788650317910867963527352798355188570366982522760683855614173904125741841685110629950807769923662984437926024995408306522769615319076254979017177025183988177818936301950185698907419982017327798240625389879912099047382603990132664288849459930713452267690091081981730412404332389378040054956729253940294397495320740976684503993875226109193624347272959668540748297172885930642955288398849524554945443182472902195821741408826379780728549558862643616050174316758922531938693113720321578523878747688882915761687791554314895891072390656132714439086551503699655894630205098578542413380888375886597417585137477145122167840529909782207246125567292644416128731780640370041045069008843521182240123103181996134108044545481193151557469188367700763372725331425625531049531992699815771093515719002450347736629809900967056063062650809493078449083495424674165384131775636007805670082798553441733426027071096476248811188255908077602146610528322554809752297840810469504599200084896749369966335206834108533518889420610330637841856987691902753307230575800863531729900546050681200920806631886626975529546766989081156839150442302735264005477076096166251085930035189033748633540190417269971305782467362484652333550293851074624287087620339296182297828302654661665552740469001530416098792149949456764638017620429538086755108841834591504933675556576058058325252709530187548078095996550285736749185152448355886320486146452144295818451748194593186679362405526149467928909280779528668373399745657852081665330455318683468538604164083683771418512132302043529052092241721171601893613487906486320599189586868171064177854524548709565831025178706510229113216547582515008196428762587589198963493405687582665688216215530875043329134765549790633119680445424836044690880341719933670642736509182564948591325044564053408705233091505431125081716318808189229147763741342363695588622249472693095152174702269154915214751620325870323354632703748231395252555300764191558336470073199925217837421557717413689975378282538379349711749644164161252861491551193170870729051706188756038623650997097987881451893512570987146452214131730682739807053536843240076673891126426794252764013306867614302068305853969956382116741783997647255304286840835799353098867202853872701124541533842298631470335751999026143635251496046414521880357817153526515899302848179989117061489020145042687658748217839629631411356987767521391020494470202378877956568615500381960010832636217427159578147614673940657530624553159827398034651599161959302502761797107617864080595238141922079044548802231386702757894221732928880566037325775517608616228702780702657155024234398786321337876973736123638200354028850238452284808396908346287774566081342470556142429279211442463556040708066223598439688768400479161331030035512378851280868726788289192656509893378816466254915228683246896524190525352197017423171513666605119907333719136353914324702246560949142738833650304588771064232276552827700244277980013716355818747932551345229255465447829476862561544664034449893860784579387156158658179388799517522396270466463990433757616374291022485108743047303546924137364703383269786968595945426326080534826470870960080870579885199623862134998121801580763018852277780110876985728750946142822321125027478501660505063252646736019828717372054757420664780433573057160509730392447096667507157778606522894616956112058397953029804740236340531802312222130410829300219042808659657429711942971374516757122344121145797189292731859233377891664131434599114217120137116091383376582565157634052521596187442932086132883254674592205690067610313862038377057145403574991378356963790468117200714167106800355422981890532320974945312503733542666432001546862211683864979398338151035472519609924445657277370463518892615250390416983623752691333835539755007977240717905957999819932768567609237494135661331180108214834745865617494352050184394128493011471189299655216088793537331189739801011499547296810414187492657716290366507646010159315110946237705826863609780979049735411708398881417382800645144405094426631036515324111482767783605231028706831593806741163713232683667477439110543285903169649798648630417467244973269253864716693407539356983826141209243213031107327201971940694176496834586970486850715958866679059673138963965244838673647694899642877270717249975835386025932835865153864790419465814397628608367666315124491421255254106838700601589603160470444156812559669888444758065653675895015580618212927107006425171269656691441112701336708490087129699398622713756201818739651841943744541596079851357532205912255534994678087219301869634617463936761708271079052345992975813575991580936046638622613714168726630871380307892869423755214180879041633464496344931799342908287244524333422647914457649295031403003975642389741422545619274391724198982320281307601960082596902592271239718758178186238627190621819593062901985962464101957560333714962781968670625711756059154712008388690483740658397725076566400285671185153230348187216893089778852485931351319700446820171293204886572049641367765219474802628020184306709186355988525633602442498117425893690486116642958678614860603502407405752768068411294539634271037290604724331646199250167610292487851986526778928931920640942100220372914114175143527951457965275246953917553621374945639460404440784571995888068560430529970815647809805059080853277676853771611998723454641523166009889165286998731377431026143757461765745411588073948481209520564589271441236421894722221390501896248367079596540809899117337127799945791875581166050623996712631802679243128083706978637703854665822744560388847498055417901869250329734954095545139874474706513122114970264003297515533551355546360044338100181822724103344192969451160504386412147994195135536712702190180125654769521690274099806396081501768516394362550145257260715700372332941362642983753934061214551855742622977050132508907792420043853312176080521254424295172510056416580005942363076445164222810705772366934227211977602843639777336149559700056984410698882011814766713821787274169530468274339188044674162304657073091241290404218287917424504431642753670364677568313409319728696492343721614561288989565411731736443142787713450887113729127644915256741987680079142365187354498775740444004123347035448123417449245083692533656407933598205284824837988176446168526547420689317275545932875508800682491107849755305422248806402259398508082558975466108542185739597963609724168212455835725124962592898030370630453085331548182635960163350939775844147732647462761881412845676179735145879362163515087897961213070676393007955029853502777828086219391695476007658246674965965531508094238785558954501435733818108122745788898251503092223878102574941591344261496940417373483724213562798262368177382535727224622194943253729091276698929923840183461329633270833797223785915905591073195651994154945320300932102365581123917476509077806330129169915695098356550145819885811157990313655398837072143575780290625258410771382696514959402166217516170897505265353836483020114450462700439352303208652930363367459513966371479286266923793842148411850414599164696971132624786480455605500182629974303063052572677416277374784902540889519328131134624115658307834581342546743700643353705460610921623353552971442563435428498158251514260878243700856524077938172013548945278377472129911384364819555787143976515350792945738585048379095844727881968703468799341818943381401746286075951902924802989575580060992668650925874864248283071125046320737983863729213371462784551952786306017041285395267230454937983545170823322853019017261434802154753813844225358656392416643960755107899963427158032387842243576278336310575869303953010506011414074779584351307582532957754832727695726636052699939338525157780001324086527015061347250203046226667450973303508919649809128848652474349358083154902273786593117372858803578343723562981911293515918603433831662315079028861755273655054595666717662567425935209512552488290992917599362176263405344795552608381584624486662814900341380473827505959119650066228958064496378209632955453472723455191840544339718073778969024350297179551187276873742648619774244497697705136525745591286516546370202303817289108769533753614009145269864296711870487013146855944632244675116688472004914059635034255482142896632046413376679580804920577498650800695641115586818586706868640711173273006646480491435486724421723174123758299224017165742172215317873128954393709460390765632719839202931066099325925175687282208249914294348240537011670266603033730125076661033046602818803887219036361101055645447684012387998978214954499204859109458105784955020397870774272780888773251989229173820675404577164871581513277405395151143987998959023433699185118451414910775442320349735830147864056716014741307782321436440576646153623601390427361458611749406574287623362885882712720115740942369686853532646406771869190641214294524688064673420488760820743742945279640409716901465186759109892525582141820747628508113462962987675252379361255829894597888570946569610259744078552058712478463284118062801600032349852934857999078350865530241129756686704783002507595562166871084236131409108468076447453412996673348760261461206708188384174529858451071143272419304673927983391679229290077352159644304128946608935871908801507211529507394114953538348590181954679454908815094191336755214515798115667586172095799411716228806017988092933093728113664756912633540298045633409648882006009245187658272443554265955967578264260814673001561379039901266550941832247978555427811950780783653693365188724685393468804207241052720837745356809102031983220359896489251108478915433560467704988772586281694924735504842272903674587906445451172734199073516253620468976955047092761832273204815179176421385433066973024585688701558128584496674370442251344633681392681806085983743722172142757250268811545198223890708300388919952875511457652742597058324774830053291214505623437695433231416671234071944476383836610194570157047991707451886293743062404819130003635036574259826152985840678677788950109684419977136784640166688099283744532852191756246809589763029278474678019145721764137732271590504997711740424941807925288860769075324618670298632501633664445017551811604514586296125776443793867802095821055842225156529154271312248839983357383995206478119011052288671140542261217961026339727590921601464221560632277873679425672831017121929944710371823047410092486319986529617501583248301549028325232312027563321117442637533245892590037552004862928952566125472642608969704121031059416250062296476852802996309971189552894799022317341982227695981246263520416471319497375515994341204554033484927070672743539248336254784397719710380047552689540293556387220314531171688861745691649979027995040296251582731047701326344830619494639240625279525397928421633925922089172189186444045707511457616072143051110335787041183178496527371204297896853246053370413710017646733663523282698640981903657332749553408721714678005128292153075156282111396232295905962676585191903605759623079961925908062727945956088457397777868521321876301337153222809148952966518482758467489809223030724673214966626706199197060585618866609497052387537728298167710811006578321134028213064333579032641783850241252309544804868497888813422413749149649759005551293381801439729514219893933382103101464263546651505817141617896008493222425454460963011767511046421173836590172340466134649519216200632340505548178113598046165316367090117829627676503073966918181468826079151224150305608575729602420852709293719937264450797769405696987689131962611500811593919781733283485021264778938021637041546315617975841786473323318829008197756123833034550712554311240625476905516144242317729097213611750836103305257571415217391243886993007078986930078529422134861829976397761359436088641168403361522679825462665167357927386104047917618291435449923582244864267859144955607587604605745688559707624017480766248416585022726574430311425131683313549847425856033986624895298968216945919089355053547330697619426901901247820337978240666631525619313682142031743864254481957946537438326023258287765248511060287815534593343833044312175457838911731132851668524714133263541071442616301208866021517799410506428086976323365312564978311783164234260818893186199856239146223869932926366837036496551584525633179698260054382768620254271387796866874681099568694809206477786864455100419677583068905207477816516259352657218759973790469748980148241315007623705678796169480008164953031315288273576485174551116033771870942078849727125749093167663748066109712761395743646361566048637226195529592842980939323175452206433948200503832870742097282990179924496399330059045595075143816151873597117562598710132578380019187224740307285806784306765977440742454149382085142065070866364717410211051808156525406078479240491440713289736492947966876691045565253533011695037190779969384341910339422794841023753323528634032700528751782729086519127897400594250152104004777505045574523754547209728204474929167945959903062145697125131488233228542739770952282386623924339687349141195343899867332096849983013196458301548632290175277851073906564267537053717609180944735715562014402626695276939511229105366241607512113947001797730808421104835892569221604680483674526404923382633646575242384560817876049849889417222367007337095136045579874272427775952531627769814580128110896981789501277754497451588618824683913878576256925184951151530582465621857620374520680507472809887930266806605953576468239565112411708305556839326232414530316363240741989407548023600843456548196633349130667941615042003513472281135230534982972163614553557850694963296060196945534849614897536561113023137519660344858397532666395440482824871514629607171656227458782514089976012090052080206107161888783621328937842297152464113915289016302899795769053538199213034126580984279066146536219403766099376762913761864586462531757802698903541441222651911530959038207726894938952556318374750015328055420835119593676391406847812681248837056278987458555997466919787555258891362886929585237661670477078502665983568122591791899999125353910958892861090653149300855052664346100631481494233290559179172314765001370463290537201204682331207024144689086144538476017481999080517452847835244047633730325643215457185605360993370386768594707341257200188200073146141490494207894597531303609272083150643351793990773143430952502558778436444534710526976518843930514365449937163108285380127512032294374272828460628030605095917826379018815147265181929546200646110284955948649261774763151748554019117797027708148012815730284270715164623254685816627332289412607624337818077925103661789168419318344154710960458384886524980073203163494710334445741763707923059380340978927554320453598776288408725572290923855787048821164229250607790082363237851456265538758394232132023067322482674326528487888322888737688710649044531079171808816147736003599521909676822177773259212468321997854735116499789966296266282400400943230340773955339226048766794778808543524802381656071055103202757972052128205851498435301732414179574344195239769940745865941915110326363374857787285214614919255867750224271002124218497566826589036560715452874335478192266253237993613849805817461316565309441698332520583733058964497219435625337994143515741978354721466553400676483436339884368702954321627691495002910953999390852682635535580068515581957325643916245216307389543189409174479029632324113343828123469086540242793299506394819785637178376812491005332559560717665435660057908834834874274767445506945849912191539620107488643409425797135771801541111589451401063727807562764613516134133721213270579728682563868787589574356544786402315131447101230734989991210899234377103578260066219906216213740046638277353731113038131626449987555294119996482643504749789803428299940962958899778742752748716663236139769659397547600432257148358584861974636402082342936096381642931161727372196096265178727650959073963320871091122990565545734338431099295132552372020870167663426086941296132386008624676455426675284062861389579192333670040640764168113031772346334395329381381551278041475091468386708341784129641281150752798175592776162563611395655394552420303681742992620991999415518260264307255280649823108679989449489936440494772791758538490859416243790618652522123586448487215775399524444376035116408856795539400784927920384346714871226175266626511152811588502608717128742702927866543115371029271969666746261112962490923906089385962458652710775518520213605001125840971032851936229059714260370214480991494281285713999876186058677226706850713389077177026299826779455312192213315788448565837303996692275265693695694170119552420666463439830314988416933832698332294825950084757902414872298038216590202794370830573314729470986252603100529584674905375361803361626588296749231273832934360964842478700246360024523889211742321614791276006012957288845095442527076953834292897454916408123835340609477835475423107237579631656232992204104328043091552475519168662853074596379024808375101466405275164825150455826395104435464654675137235758456159408199374799471774505748511221393993680752805541146945932147545646568276441944958579027596754194606502123455219404554004133375033649869157047602653501040524932860930260137465882083251264166749375171856338499609389195362019071402145095225390038497814036782040549696612783843623115235903446616406304381142037556440515094389350393156221232191121466789628150736912727589093825333241537974759657202853760822625545826047088346543084207985620241175485268568794233194086664758347491988045516125172310468456441244902303629303446365455195142782672094497514799335394932896505739177007842916521692279594799382378951360482961881759575669416441173787768453853316759543072314494734013325548025056140296912504028495967428119562574336871226615328791293115421989338966196060845329169874226166583365758182388787412822184971786278465043498009739691198663717047705642949505833533041703792161100078573580357609366207140555867157111860071111208203888588546916396213108686076356219670782156979948293831173837846496650078380030432900684843604462936735113458130128832509261116878544967571757895543496965603236496600262729911725004540556962137731056865587875320104103995700598088336625903334321827125725759070531140572565727935418477685403069566208179218488340660648214514232369104174471048502956983925017800906024940146850953070947895900434229661507239767868342853425140482799593710853205712459839445479349457126155049078390529480120650911235208630467915682774237565929783725464315724999077824003719621014080153308205137231637702618585391920147465456098858795127386150104103457175177750717105804596105149764838874250004406202635947332115431522230184971576978650246198705239503483167829420444559628271855630928686438768905637347324343641463754612317062533765869219482057569872432794124050829428030209281169527478104549396674896964313699649690149608484018767250162709698333123081291007214271434843608676911617120617014564584341090588654447673388107183309818340569674170165248366925205447186113898369828867110269604080129691520804091054464433191692823251301427933149145574971021358587219661760945542502806930433646711490437209975296756432175623739204969221506665005388449935673825622304724540623034407920314392697119410113868253666197770671200754112908742121127138921114355273796001535103216142900848810582445285786144389173968193501918664736556944035979950609024858970786764836615579238967232424308099448574850472080103062017748539629406276278481344533540149887767686300621595091830230526437920359254897545088221408220056497060317529799384032334507949767175597065029947085479495161510244778544276563730616232063829567401189136030434418825360490548354874272733878945939420148406908492436687565841506475222138678521863154984750649019031556532095406094504153571951048353748447855801064684982384953090123571005874962639158714105376246745697689825358681687002990825257067128489240729264457135197254077814332578811502278144028469786507010706101238456391524821334858030838992476369854309320281148512036000602516353667367060569697627373553996173278284830912518651627682890094427707701598064498724917986465468250818485456424304780757410379240358406541705036581773200552185297493773091019741481872602195865374159015359307108081284678269919643174070024687514387783347192278434733877753693449425860005440260889742661276340769065218339185683866427831254944387654290659678036829275889175978207425875588561663518643844624007708535673120329578075800885095015254720502799225818005409484420887560172104786338916736589823100700564582562551396877729550370327206894642591639700377131640928547282567044774619177004090815810690502960193447263090719652331024112617205602064146698132993901628573830510778846210224569694696294852879631076401346138147543679866618581565414338012468639265932386616954422087039576094735275919276251874904166710546046876303595608396126835479867224827114135524099647433981003866771420155886032360342463718735491447736542977242417257806740226818617992549239609046424639633341173926175457786194388421920037240543077294218349473385658467224059082995237092723554875407690674852142015133257038671598294462921616954369872400360798826331004267930234132318734223247885861525525809517853870623836724210565255749169897180551270507283031532802576220297375294610590275638477904619380147616618011093994109591067124574264222551676094151511355515997024460111263677735974735556013848857001406583407687479375951973137057460016043584119117038486749310171911035760079936627452183032688537133696161260380520531020789376226511491700467033081620674921771702840113644352388178624955929778716171077575406587025154872425676845145608590063653925214052517898146370061758727943802338672857705460380788352434450777902645953065165540277036210981809656914527489290446135473789252938733951302532636451663986326648542886946534390948364847854137333431362316009163707842840386408143142033171146507407587835709244834000372629639072015129283946206671712320372798583595380002286580340304586340705900800736851452892521705051206130799657296545390178991781962777265178407574421353765443622567961367400558942414004260915600850871487344400593411016824631860115122192689470556512993772527581401655929713711949414426743730346758572945977424113200835617625983316060030367538811470037495048110619204341919757730793709170421102860265242709385141267931713058873164760465423122323171532792559255622044682645366908522354791144002505878279132507711414004027601276672964890461755533978188343617615345414508791221494217951001600349952452952620033613311870460385112460586267402393645864677183307971735417597963098509068256164500067727399578877287730629499764912822523804907868383731703269966233156093641959635383244605257528378434384800977937020194856215476563410694174627540718181068314317105430768715664663395553506231396977826947420373946462256707275024359748479718469444066639815344103673581829674483750597730615388070653159082381845602722973608476168556872795398570084399695348536617952815106569795463557166856772750622469248034488279821672694265971777758063932177254212675794157083366065498977268084876403370952008639924250499751479045867586640396976587010115535158752352678801703153176036048679428831894623870449694682943416679743161789262157170221917610129632870224942064805688049191820200716461328153490001039261787351454060017553665141873815005736580248032719989051330734003832622661725258196763798180919455873749235404746308383700619163361073118028016408209182348786143348917605007153604710075118448227576898154347922810411273297171813700545154370403223855528657710107393509612316371145827755708155879481888889968885948841727417800590923340594109599880962991936366792040506560424366196759662872968176712681280773656919313312956214841194478506146783814496869207912407174190379939209485256563606421301576464098782062732176102840570152290647445443649552088656225762700718261581751478586888646563453549596252024753303062357538694895705219698113361883732010932557433912355805342055918443462581390630114346324094053278313753742078693473869473598221812163705088785800064214846390671644570827692603696025902172284036819099434940868294950951103319793088521693722072578245239691529439638934611644925871952130338944742961577927443500125772120220218869319711738849310296794714906169780031546474710284062887994307941055010845504719787544397987266823455542311844221471265363474915132123592200027886803684097892909644407186446910938034617025776296329827235412390647889138159154033589358867769877224920380753266730909396250478315228304538144226339975138024045534418297050443425266791469152975783121508980605462333747617558909511848066643250003636995018941268781763823556246542299986602377387090943745008461373434875587324832524750398795503167402326254348731319721889045177148500872981262686284603432440994047679056863413951648123748130537246770270945551494695873798455076176940104942271994373669738657760356250702287028859571022646767356712513386026785931123101093343380896535474071741004282954967452872401366758301845600301576129671804786694321118642878630958364551117179852898974624386340891249939789509324695724940204154265629603196039267013395903683636352271233525192463848723131742090297571924945169317984985917236593600328898912771855295783954904753255292048623291748776254746677107484161004399007469471518864281703935735825503935107035035102993275264162040769004263210612189770775155487106240775128247066675199322448198652070422006371284630897155680619832694552241088812129897638736473182169209247997118261262699399393693772542378455678672885504651989303506866973171178014685905506937056422051235917892253555786771190114137667563476379758185204870761022313760075404176697441785555990448246447169605312154772693215087842994567091043242945876009781040113924779125613755745829908964980843169487734170776649140727903040654604237353917539496013560336658854157779873360596836452948196733957619470259387369630592254232785584940297904519304355694623707086171721373348114644819040610543975336457363838228415646967174190122141151327952365942701786591264990593587348627203189057224449862679532361519390259380551444626445141107015033215676428874161344542800168368862708358878557389640008923566124849683760255497063756910802389583975806453324682829652674709835870975068466981357783921124240147541000759743975600812116014996552058613383663383378870666069026555285728234372155767130913231583543293718443006225534798492114609483650467452207005807845593652091955872185906870091558282720638249824488254586579701463020705963586363076234294753402898796675727619160661315518231830271089389015090213701238777905095117277664002669532264202527516359906733241806908138515477531871562548473023348086770938490447321242648605746131459845915222971590002150510634602381061097321080747728576122397009727544512254441163286253903528052448148232911252768641926763346928698280911730769738542214153952245655711700052250690748350432446855435060688023130010709640488240586502534907110709810640891325816013340437692909992845086050065872799177952646821824188032426703470191007835605825975125856079273235234015802506848162240835861625874349702968394463053099739397976535318100323078760545595346882573111090215457530415964687670953308950107179047796554585654828575234893141465643973869902862270487064949385559528182023432064530818261486836545904711145461674306183801207066834319721899479072230622833138575052748731732929675645421353573472594287723383736778599736890727815547970032397338203881329120899478843959889955216429800843567926537739087151487841105290086132553101645627333463389896779172646207302930936447948020168973241297991462505125932664749454068631536641292410982119612492652390297568583173290405527616074356543371056500761554809238615173295408012161987598466087145035974316913093758569210914917607142814093777507617188569544825228942916167672989915234117096125331231179634486000155968382249074209167994607357819290039931927349541911328970555514533531295162187132592635405589871583064064668548543777607879222556253638095770582609800506472143977033285704236813040492676819117435693512926281112550785340623986166077641901083521240469263712057696441924243581795847866434117309174454218095037034171925058988556472288547296677776080230236600520360747980139385433281929745263987504709432866265026688018573204446334212595255359446553600352605915232576703578038468586937534644726481329456000348458386982383210648864201620239744663804515588819832683615256385726703839460307218425023477321107588013450129115133208497621807600259325375534067028757459420341532375058358357675129425702509060804233124489699312087403066982754292792476551552316091355517098501384718017301196219533663431784456005096334190781361892716205580021288706571802906627566597098132525586665697164376086697361521896370867384259136653206040960015624395148241755635744758576592617733142814482529100631505808732561454397492839319034354340926507420733985224202382546420292780540789483250103893641377936982496308002233214184965450093949663093215133862654042221391211349253429956649686122368236299396145179585547310076002616895415728162132383498038045809285882070557290916975423000300940928321058073033606999701978704738812608550037362030860048005168330774098849981146637060180455768263065027064981301217128898801286314685453706299879703409001854925133278196398175091084848840766396748653916708938683229768476166700972867440845086961072417156867116711503499441556709021438388062206986497586666725738534076344227165220404901008172992124438238985973303477886931562293072378831969899661807713007933847092540832389891558988108348961145474773633790927016574200171992764280238267311130365899052729368886965867773234774460268836620473840339226029198990577131369500902561554194603085920561097538028605784809045343572596882862654403816427756146303127206101951563614670651413889707667815544167265288071236921562038530840248340531660606100602287734466047981433586477939881395892632902166679419280247879933076853013652073117897454466906630910067755104166472595923122400081121111226372055386969433708825825432467719011442584262587458630010008639831369273643445892060724277039335053759899727112496352089268795226881161717375644667747063187538590835975093744309545703092369385200127934793314665145805986159933362265498589169507994366627006475717477663384677860331296607215876759985645658683813526574055881998565965175837317341420563210016890252302810795537039817180356567532882918099833432652698999301201286968617585103891915965609052446356366796620420979761027631980854387773400855971201291532728544872586347456648056211940214234215659228250645524971027816576655502193811753066279961190994908905193738203431909057801807257542344135225895296478236487072677804165590766440217653570216809939898128418702600596252574980067306317033515246534951566886116256686634626534343946521044116087336481149917445130269506057376945394565455291564708113950425552258587696908686246130324572221108147660118593956023134606894966154502518594320868076546274507247348589371007987344743846408129396912045922411460200027358860828878057131109691234770966151767286594842891585179886609739017890541374827745405603041991095530210423044137579757440436357023547142269588701423600027251673486745087642198011651308015546673996510119081795133701252543792043015589491974156385486924011137665758674095806610564845313747096036613557243716006488486546445712816920780857726897593526784071795581160693744952579362112048430447485184404877039948687702675174533050130482968198245660799401019551778541341548032361147905819306913043722485299131885530512398230768103727280384499753660571974069681944264155575311077816980570415871757269365057271169918137886252081686276751603603542697954659269155664214696231012365856770771645880600609356433341212758247576729385462139016210338094948934596712390769249383711742694685134992674434297217007044561554843206947465115317032143091590280983186487568628276610908194477903270495446115357394635164598723881037040249076397971648514627213887642730672247339138540447427606156721391515045033387970968067311251230408831448803821674110294579128296208834413600434129643572121008798989862596041087651744561431867215768097541719358155249892740767828381340291300704455758619294216694223921894538536090950871571082761269022055817160901862998793625042595570994652852522473976016114318308714837146876394449355345960596981006973263710243401390479289394783712146796829531122086524126191570193820823356119187447789174914541916810774075188116962950816704173512907970857404581855024323208880552794247228247475576592110285658408591822951741811662531987609575314675486167685591113371998354705427506657957511267679566558774221048922978673801609823546805549079971320608247641195640679811624556021450582495228816341715533256763474980058823003078181007006440258955685228020840036877783885276951095319178182298751165171987713678597049253401141475553192510407956249157264599648413876517050354066404077718220912030946952392904779841910922347375248328580614893225984448733264190831836477779487336061709963070617847865248276002614677295388867364187975111961506777658720039299037137407673350834407351947523019108614768381919576528314076869266613715962034453512716049663920114229148951975815510335746832511377076112828995129825027109297694633178114781281116017586076290087595948756900732871144680343430607606058871857445871576342127592966124630472302124172912476212946704568971211724489079550343847259170726033988472132821589340191671273735904405307803835459118051255073336748940875982671811741638863306250040605829127874476575092130843973740472636704469727649925192562397082803726021352974273051330826169487959858757206840686294906602500986470646574859489637180153590340248154405498758644692651230614437316817737417073945114746764364139243507421702777379992536571920277564084745084657995169945695901458421141653531651188925257953079975570427401586293503587299197240736766837223143614042338616018118503333150962535566256804351938629314569205185756999520053320458632571528332360139903531516282984633392908548571947884256197632522042202370809956220784963619838842959819900516748682141282228783201447330869976332533543344378578661074896692731612936436035677049076329966858566658661963756505247624195741832141829262364294501151679704640193440337528039451469823978704110197949207169253230593608591285022779250167956848395098020116233723119600471801233926347367628145136109857599423096739211210159020094049330542398359099112117610713294080609538455364136454524251807159004963918305673015431888139079999677475111418682125542235065938697015468451154193348609086159598657458747684460853271188644733898776281384926391104955368066642976400242398298785464029418147476853697814345391626227445473605928428595385796868388545884380860474966280738870416363927673928096004336913041349691426111218806944807031213765509093282391333730173382773666772081554914986106818619491636572907985477266886773541595541594044441950802929151063341468159206041468817035711891065687885679887021389930252696757570145411362800385665503144417723380929689780820862852449823471108461769479952719876520725342810432741416619286643876114232277037914823277586514155783756958855642016708839985568267047631038490918932434807811049817882483117439889330911569202496754490824524353298525794274726626031339449260349052083199984142861160834949865207828364372569129233323968193803411353091220364256428997647660999804561734462215414573481704606928359182550209996965243868598084715413560402498608829482593159134710223877593814891606629259946707753782992813319928479521441987130848534966596791435006856442757517120167802916281390921897222010168616204659007602174786010410824806138709155749612751279577357582801013518453138959165643363027738405751022105227369644837562691476621848196209400910870421316945985171489610543208771036000807646714720854672994318554117446958924325749186071129147201690934337833483661929091059578088498370104828413986490603772105091854845676530082879826084616297446020214130942108308952828418760099732248626673158305816932172980523862854413177271719515678020903687372913425877008649763466934312803033560959052588008762095011177834997036475544171936462995030509457831095825549465953330927991711780630742522965039570238278863251145020266939921053061626719465523684835487794709986573713791678790259490539798896734580090999475219515655600368758477784795399252487918721453518733351366712369207124834369976838969360422116377617967470175019534884310739089039303597434140870512134320719098640913884744450538522084274541510264759649780873502254422040987059885290658580085957362925087023878775754557214800154708636328764699572594809895633594827253563338483213611381369399491733712653930690640577867797569859941588998656412579388293439640417609846537819280113020765911591756941171238940544629391006595363258148753001507493698949053211433540438612517128885526953757199555966269775486772001791557243054473026669846153576918333063281192912411913401674343883215591777177507328129534948174472320958309919561557742831734122406873737534695344167279834114364676933798426517579789404102362852982462746397709762441684332923416489419025861790756379970591539034868988724860432998187517478162478922087341650282277058054970107717662329869972470152025775129008217192989651731580897052164118702459492789719064939110557851330476135845586822705483209950256261553393192220374847514697895689362586744246643222479198154926326865091941116390369799981192637992468298764828729908821012348377472372698406656846142801587611114711485318617942797295154492922203624572854262585452643646449059256537231841763065465624874425091678166364411913912917167996306918062008542140776991492894848519490589830360419417317613336737877325159763641575213472682387466160234847379462170684394359567615633696125587849867350091410811031647432092828455188319225109627783556001011969817127693342100206419311883041320896098512494566737319691361468019854417698907085891177138712651161069358470836810603587616152818614163534776603441577489338350358614772790793036113470569160824676408151785333716750944904269061130842327332075901370342251916341639267820674277202575344835106865253719108396495824359956689161685779866686169185140917521238304482958087838958633665160562679473782299949182685304420315806130658703840358013824442798692814118555336163754109403305564933953681502087196732959205993215789997666927025903972402939833504322005506366320483611953454160124385077465561080534375964511918410679101803133920820523509452329514613036712541216075720258215919479914131376827952489668857430755180168738348905927642608926099473143266274142372455828516670416290743022746716691181087571818415658940945209046296718691595842983445461849924704727635804826741289660739034038493756779476655397036790423928370579295739307015853935610022017542030010517998571828414550305366736994772204832096072420142077467076621446803332743309603835078393743794835485702890741830699595800117835102985154773108072225892179920678100582680185369270802553539584554030220322549124003928216499448055152565763302669987515198081819593530486412393276965478599488886651895135287470329997723246129152223666609146337995278264866984237597824897102354195226164130299905569791805043312812412481841201087501931268207713288627846708707313782468948375106103776231933122813029558161548616053779788547410639901689018880993030042187887942182957746726787320096606497711375282800157569354626992616349832487014184984700973280996580248706539659001182860524805376301381484185340950691873153012457036803492569567576265077718414856278380256026595453248341040210415342199833253424039248529316657645204404753563034235554783502110006383729364312224408203613377148973466167259120137488914310942846759167702782028739911754523876844310771330014133541787882399005304925656766747439683353173653313413288594370414614612827759537492561602466994546407005362497249270710059856165119406395676301074433515078019030068920127833504134537541233727972542959397677987401059585198469024665506707128762251136202529156400964375295625088995231814968095414802809531395405944096203300977462478392758370485818813339085479311018533231221362810422503975835181963421701396339665833908347778994176843942344596889437438359694119784161165261725295019254025126977126642402896238983373605380546588063566549125885985471802482578297840300285564927481447120199482542959663941927263753892731766683318930863561647824634509838367229626364433457244799120783278272231423287812560279177997453674924759850629186675822726359736628071736777980117149320992133356578603020305244461030122490163180796084375171291650280031652999007395410524461579584412662286044848159721075180535295600316828902459185869712090078040762897678297399969909239861331862381219468810153150967391542081792079926049773405563949776310627656066775937613293235745164024526133597794844139286653512388445104567650053498624016124060808790887669369260507290649597572381425465809721998315929422809250355309360922207815402877144825748471280555837755626492456236595715343627488140349847337202020320322941407675984531849630750351781980689537674610828562988411745846973327846818465760012625115141506778446329110922809618000142971754915695312507838457077641298097992098967349274437000787856381719706485929971212280683057143155166835801457896988715617194387928699469427823020282244657809259611081051882623005972371936291523270835791371875446894121623377749198545156616407798887276483345344956909287865680437727208088663691891111899676659277244358461966952241813054553598937808862358803391527802708671075716984840219254751918601567069975532574392659199155363703646241816497559911661079819698849010880016982106287777490306482054513589317666421219043206086760793510099126695761502344149010526369142365764109970306514728595958638648668436876192044086108689707289664436243245511667483008649080122811182333592227744224604101673388415240993710499955198241254319284239913798419088851686581928953709100101249688554886513620996271881605932931049380006959228004719368914143332587052201459310132870915181390489064083516073257440213354605831364024331353233398082775778727451044293807091963511366230993514695288218351040159935444348353979042275483065170102699787695912263190157822409072529755425719107599701499941526804749664710563099518652993529957948430639660994399525764588199699724791761729002457637404721955941233097947859190061948252245300920564887288338816976533202968296812017607964504019361616343002691529495780982349281815068839189555751521485432674005466026240491210448678975731412132763488330832371752807686847490214834708746624234052711132111114498574874280550454148244272723396934955545675077507826845435615040609221678627688014908285991238198588182933612827076004799901852562883099268768672107472265092892626375968469047781006123400621706784741015484747690052933721876293795875733019791415868893048404689442520885027358039976604931527445718398139826049255710051563411291938815262265123081104476685680806105789932552168021238771391644444438132394977707230582333826521770773880713759974832281401439178365746518622985057936159142143614683186239599523878627942672080307153166271803957406046645997392130976538902245459290867182004587479135722328278297708764811770180370305144092980932974312583336907211328816565250723511182961212164141432424244377907403086357188391067083255598944385250373449734595402603503195286597949063624012421406988795897345601948234138310837767371445488227157081684905693574453113870707631649280601339526906398747009383000994537200544379735067502504665260596471790283033847001454011282558683340873742877097394344379509512713114464792016073140554083218102366162781255956030433668819188525056366050367317021732059594075021917948415598974949038779797501037646690054525493318022039426201508143128450217838072237038471966945977608225505144980334090178626747038638174076653940394996015849135178978267712602325964555210348546453362517383519336005212057681676578584739077351973797144745245246027730805697497881702473122154522346694044536294662429897127757278958423606852727199045620173132191482443403771584161340519152791157724276174329815863361441260518733929023283685735653231975466351860924762090166117782066467806389169069124486350830679272369960871962884868196020109267390907754573918559663847882385222427743234838254771174797248175258263253099796432568001045838490827573878449944431006572084523440368118973518554574815592193236533667759595181683274424781611612769099621274134794468472824068210498601677764383357490597039873082773756784277622654195167438694361042348779045525799508693769592334704427648886299411256891292563576342505458309685384598725989194657389768189439474553820610305435994115819378068890098120264709498800131546029611921334232943357959236085473800559655369323021864842234340748374234779778209697964115951688270871615676256709121853181342109471756091944763905224251340862872985371526025506374376439913505231911021939006478041410408264607136521469594033090595735013014762477416378237647285919113549074183579569676824398919218808502507372126092602694870331124625089325274185548493603328113930171696890539592616124720116323979025043772706792127400497972448600026402373970785698031073556053189563891584220556437839368414681714133946661254535868635816720085582444920498396505402237271767482247660481042265869493029825483548211302163732800215990508323879369019363957992707427376880495817831695098335861679992655452660376727202931146475095046269562389699652790810502223477090975545511644873129164927202512199413879953406262808019067055300675575350000468098692335945235755267310182832743909848587094331241677041366196747968081328315103618994825274971891632858949044972872350684892692957044643409434256227030169873234570119388625695524571147438747893366148469752323329575772927830526903561533799385507693648816737472119919557712689767188645845169635398444804682442141598748874022287199301100529980560919583705042629370495425161772365693409691419278925161338124197324409821676755171272573242109877400902625224169533074671378175505244097912579854542832994363758823430618794057990926429644607061261553261864471630825834279950884876470391923552508512092404356141976774840535476945151738503200054898284446882809977609537436436946401395390964057863623418569820470140647348960797823041332524104951535304656323519620291159968070660176707495858504078777242310603626088972177750440802930533871374539945394753843711397367590161197124217927623012787955771992395711115366569475281216708486026370742668049746877150049924669202246916709992903478026484869749146668661240100802936154561272638668977807257736919562204553789091790111586628033991388029925422154046036831372384987677478802250716704613449604161765146100744259695023649053055486635171978204940609051017536900491953235430070873429396440379665023728307927392612637128461572023119218625709044859486253212633568757233022485434103625033779361188579897091850491272732236941649140423462748560336703992632241852986521488041121779728658471009996136875438125023657396720598040018971965038585022603237358785784167190192627096531922673185708584753084563518850666146889940763709878678532999288256832080100286560043103925631988876909302212552099523727356814925108435370463171716622230234256404327005405598840519130128979900354897477014246943867330989645315094153683434387010469798580609445886237977881749282985857107849151985074473005443333585375177744280647495753039529342488189420032172290800141192374624775530317167405015429803009194232103639903139946331799483114969734272451680876792345449768927865121590246455879851693820985818229027561041621414830729785999680755819821606558684965795733037817215660862349379080262674808348634121185332166099504145703366763226456362984095135776783429303523578223241918747646521707184906296970332385984693402856482189939198179243481644198155289259671520082520377319571743066961421735250748193521677469639459285199792953100863893608035088769936874500672056671501529598968308701811616118871132141397613522436635760824926422711503507967874137337643950160100291707845432608195495390523331563426809772484706005707798359968326447161931147233981734595165099792614267770527589185535249109596260518881249331369443624632955631249978538087049884191500956418908452679927584993101858777149867112490632574059789788516896798513925405017412444148038919629216809494056731137314496509005486708697790936122210950749995938939795451891598504235343552590927145141825602063515233856398992066230772218627562917852173628237052134056827873093483783724879845328164865837232966684111977440613622628916330008320771026235042405936222309217902122229023767500339475111721377089371043855861694683584619134772303349936608055978378223314231325032422631035937152183403692093978735909956475588910954699030779058533202417216009662551676715659563378917079912785885711119297662996438177522391191178955584632406396264610234439484772107314946055033467710490878567649696435227490615517204264988278739556004846730348992001817959563463633304083371790724841157106808750300297741944165969033018842166078255015412227035591177884594886166127614489591385847089526029366496707213641680505017848776829405607952301132178772366665574560518525648019996992495523092845810435261435855739604940007659450084017485613372973134796173691757996490049978504272026556121641442619545339472839588863151168011001221355853899242738541873494761863980826089112654366282444375249306572470781586805061617340849881882464408375111246748399007338966166352957285564483005812769925900066357686189823144931823766450508453068612063242174806005696968916740576726949581637805227610739368842101886614612090265565415504399405728379111993059245566993194710366484230577262689677729176607166537733283504624420148399916510827380588780094654451740118659614289428833999591422906584727040194024214827643996243579245618722720779824604584266153674596414182846545805433170735555022266070052412141822989627134780386657333841249776605695769382887216365966054178203762505277725401851537664894063382439475090335408217658308313341075523489199453412327088029007515488041499518385998941017091655696794814776666210295416910043638443972967956743405878462561096205233071553805025435593022921245168181513319511222888070336785193520129997988831216151880249170735014340060455496070838019033241653419899902009013076505312558083777378525011324030419074495184091806937702824298808460074056088650717840459246261497768473758483134546300941190402813917851343768972350790720261366966960228507909001027491715692076296928129982014009127627437587909489424530369296099289580413794747059740161838601189445796349112283740846056790712386428294633478454316258681890827683821595222406298046339055229235728853997578033656266568386157124207693365897135280305361307568549430864756522500172362565070643843062542256911198459331058926621547484318660333135276405344430551185926297109136934613792776511270722711737765971515560041051092701793123947948704097228375559033818429730829490885699389636117623538684927163401618839991840075534030294295269007284683361366303608382423959233028475141077642221567058227814490525968225198562673823745923497825933433943663084626675128076688198080480523534889328804264857656867619800542712559309443229571190234028759539708273537236990683509669462711641231620347000285435061036529426851273621167865163545653187695904942643795957357071309884100007446435585698956537528372821659508439950694800460001977537523632002474697457260717411163428753424684989557500162670795828756480473521395029650770559330085643161386858663163688087920236547244058792820862280693491788020281903789007727234549758862867874318957241126341869188145478280833600972197508066398751333699492473768748674885469944606545753626502224541392698598440943947867315927887211824020676451131570338348778688796625306254158852512555269656101378074127804253850839171913598482279983916386626920534590452851637110291547449803577251446886140030917198388118300972715766322602447947159395488167365924885833060386100350936006718596837308723305883596848639538334615878927937682732033087162514883965039528910953877238566486752437731488047773089693597481373208663349448954650003492081920025197246871761269157620678005065340108917340629003138296045637238246867023197229794331615724075502826444092566959713107866061309774152496273939980741492421674225696810478957872905263899854868985846084723866082123729816521009927089882324060532680580871498251608432286796206860545382383409796821044455498287631595156347390521492575296613304544605890349498213483420496662348221547811475677697610532299634254782545695344867015628356880876851578844742183271233227484639339070500774956372718912469499789955310169908714309418741932036754374145386252820594894803061870703007896022581817441838381167112145367452310490006822282029625335632488532653231859885608898705248365072573642583401290791588919376463487774378422201892987066349135115732962619376695293526179197965000632450366130556581463551247752164698766715903704366790865345620887303106295684587374350100186957720858839685385487452504650893195891706579669198946823353398863822380996232554198044433535448154446959494709509179638127177564350403031078364464294460421547988231047762850580541926817975528302129124748658458591226537863637497097336715538393783524838181694018630571808526703229738412819970753392372608756525585117145211517921572781202162003554245074949732289601143575112777647270310522584543611889572221206539599230219901635487983235742411202511223846517170060492827589294153182501478137703779771384583395153425795791268418862273288363365547843963425311807403845353090857292300779242608966099903759441849291272696976235126690249109509746770162249987291774714835900281753096727550285432588854043101256692391892855565676414289663874137678561617369902324207223769880685324237307763704913358908222824568947974885352426781428632862695450490274944110863526109869038375345447794802756059395432601839019067369562408823429263269211679216028942943943938055298102269496381968511192293303557148352433845186644356761843634511457422333951892203109408642875238138146755763266207358796870387947390404483908160282027301577564204292173016335771197581001177799052362794225182859814227256509868630964937412662900940587215423502045151838547544355371893980287832486468581462295796183173668534873001842050764832449617479875545892042721951830601845059689881782729207407567161937946341967271555268229337208717896188420885132993939916152171648076140630365319830320573937468067803144643897375022595586269816059545242776423910705869126242895669323352034432600616540074240702313056673828367742151718523981268057744888772520155411481819711205275151275452926461307432299484014266205560961724051978702745513935478918966939355016799514138319717769538170741055644027162395170605481495552682094487713258434658252526493591543632281002685697446258107317968375813602953282251751870817220264489290341067714964071553279256844659170271812939119049252475001219209731640160426921297650210325051668945021902422073117298567443490615188119306390731430860441642148929427565527636990267629255919192033838297038430515672455035158773999021583849387215252362234448560268595900072700531988086323080360629694298502485972056217970473322707013611703212767049186583060080853436097902754631696833657210575443390287601121799968508498855989562234840047639795281236748157195365846057209810120771357799969563746286830393719521491686500254322265590913648892244537597336364458481324414054426720811038984138020445747596722943053430915027623960144378497366913509047465340409546851279703411907457355423145020095975147345213885617858973919735090286333212069481000117879995138679929646531661074414022572520254647368153820760803165606095618006305015257453421833254440970398680711832729637970223509879856537052961395022812668142641783806202032654872764226836681535332468276931895917385824536962497394030141236917341186706573176196690913816554479948650265554776757391673949215479719896738589283524291777143626792659392930170317753372804869544459806626247133113581606487583643711899044491481843355545108555641689955261771084203163698580838072633607296767685513091363716811728854079585621632816086053217748959148586217107211086440265149298341642673727616113203660211326266312263933245639514185196730215342695592461507185383471287841084640494575518194323289052142878711439998257799233563516551035125553780721645433046346630496732195119396001920152940292175674166760692732144102170287514842502940992332423000701172878215218597399859813155199680016435857410862055471641009684415033122795383093551691588291480327098539753675652064358616891929553421262881358727288448659241041576832864105742250729619630665681386255114023857446362863411750648689023393229029157936116652638441643372836261930200190513625420928885787417013879131402076694535210250117349196683079867936581689983923266731245245710405552807864678768925608241092305968271597840808137027089585688374936643674771747292784689867806889401113261891820544598461945385011113878467569853796447137839224886022491264004193707034497010756336177202526224790177195632431594369987410482765711830000939624506159599525491223430349859040135568096933206587760254134817189300995252619531605080929157323200242239586959647783795998811586147246665647449354027897579898750268191566865447192782923617512815794429074147754195517293109216830259131587913401227133451255771233860002882529515100761179673310886041209591504353285950133865176187574622603074966634993721369207625567562388084678915745248044550729474553960923901026624060693815321356958153679067226563483124735290724267871770532417774122357536781058653364337212804759433591290760669009166162804338339937728163609913752707913203290570991343852691090322056696580933222740129440945191441013255831869111905490553576499574685113396701831287311247596554695812452102402229656843027925030133580256025371823286644027624781486251199311776872181202611904684962131078330701855732292458643901866170820882058111087060450140113715990858550148182732161155718344473332776245347036684199069661457647086305106738797965138768105932651767583259999286857096395578860689434645699628522953738876131871702658878083891725572837888833527947383589961933774093220187083126347298888177138269291120931811884019874549904251386769902188874702074211392974340536665662833300822053879289816077159014163078134129507052419351505296306382544127791777348605182216039806723452904111945184312920866081178013743397740426786758584778388985545847453828480843916987258680470174440763886709149648119454237173202281879260765862659705970927342016100591203844338724949973104951492727524719258281276277403877162381024120391792125356047664248564549146003515193569317131421933152402775985841527145367550635001860100279098263366635589468039498749489639687721335427467620053375029584226093023976651336592205172890900609365972394870942605716351895704266968560856645823012030695493353626390425594042271634519351608065883959020090581390559742366865323453103707049955149278258339497361079611667778514563985403347721194698032632632767750488258583727811975239611070881447570423515458402596122788763543852119824200002508792682418577054640318183611510876951851908390509732303122358122383672711281188034603105388463803177458035049181319724227904553805615812483529260509272738958190947970236613436736614691772276218699803639532484602235517915450618777158648054906106729917015966551922730100402970989966232679644229384423724879808208203497969226352057071226162500910569861420868475363705698422986462714665663337525173673276600481315903624047745348138111158750025425508279475100863033905744244382148559994929082035407741996530795888298414725140405224882940014047446740850792915183079454752259775773542002403167175512808225950354867566514690621426688654147054175461538144337159933717575317067550674863046088140471694035315181956985145627169300799259483589397705261537856881252098888673167835996212884752244044026582423851578271557296132611421596808828846887454391301765778929476514640832823293582260053390389242258463470683345193004414115708260787516540523710709207509736835193622924801286866854251067677864306424251875303024184266888216261569541297706217702074250243348260088965454988129524975913857900977856919714892197103845943123139908116062024776067419837307258249396739108581172095517088833051021510283056630170888299125547138647277456600052449299117910200329316673398394177368058967835756420130583260346224792873365270676301532501973053642709236344575746460687651360269320775187359620795683753345525632394260822308179287407580289271939669011984177770203614614727742000023231024940226598778002092936180547683657675298375716048376753607269985718961136482648588130464088817487422132729023929279617313854902941912219524201748157493028777951147994995156076693276381093466771129574140447940961433493352997961172360025405625476269036671625171190932150422787502825750428904616608910554908220721766289328717766695260378036929297175296466149704166608165883027244377059068301603566459926454844310352047489465366007042771575930354447960578391090198364887293903596459260210389155813674461216969099086539301681216196401053514112263196283258721602691917404263643947517236913056379165577652583049430092467227898870704742374658978873932566217349473795174013786110107708104754260403432640033181921955854992882414986323000060459956963279456188240410212295552283644582738732103511534328665185314415034187211204333726412041206263842517191911263163241145352885868460361225759968207496327121935890096315733488006083823896650767017456806131723695608577574085670620527106004837076092349744939398536018234431028690079881936067050378696899521469339015791762771986286325759255297983223127032683293128022758910071423179858252945350972169068770292681447951118937245161034321875175528070181445008419227707476676131992381875902946895759728209787101823074664158748425351969082493514042415985801030540188650870469505587916559215352505529354798132670912455728707052882314859461597642037040621754003702922604033092520803502591885871652863355443985087040287828915673317927982330678477753284947679225512415472203573640152457388565888455437075954368354802167636315270927271370798577447951903384565462458422108336624067013023129227788763954442425923694586356677481889692071562881159621211494946293940989568553347745731492909917951894579407646541997959834231817135751622468534767758447626593921417415521666639181384759100320799809744784714952754274583374259920938336718302958578409372076679013802024003595143330939707133186779495586043256688283722233200938273050761746813111083965932603763879488077701419242377914035489783921086257142181373955515184170056109492746814786280116715980956639866186186304650321589694897674128318229347183529346943858585597699190637657522563626753205278536783119031493798130682955966898046014875985286552918443312949848689390576998389246136675320624736842688413438244747157609825956137650058143792659547932727091175851278875896482844369437532901439309891696033982421285699782343338618307123250988173371380498523894014835132596613730986005480574511092403625971204231181340566937594880193160041441760536797350428143940977006329755224126540591664006770279450463208979556230329187586973124455717991942009485424721138676113841054027745873139722233368264517498006818506442965821890986260706129888884226499099068928091950060378951120389074986109161401790914168594731826334591695567068814340957077453183833270918721312359770325989698699907122079777616209988090817041860553840203864648308986346255852853702743227790796254857084297664121619483111435433376445118788616271539166014507391522140486241817313415652059126359284621248307976874674914620459000125992973120777867447389229097773121599106579171446397866247155672762430960177698217063092379684924727433568422352279062379054179478438840810432669973974085259752080839938562952104201445751095651817281604167927054529851724181959150661256854281103673685442222427347983518699895972407152445563428061081919447998677485295560041090113158544518314483258428654295405425146552479732048958673660512613427249933432642369705795661955530604747313656934516282503025886730234571796826079723712384413251219759393285554520406932070692859138244673804756595402501299949231136989609529591685780721587237240046953273805322992319674558405989918579688616578940898476048879214332052777511344788266553292671949801867034265640048334505849344271962807625192775111490023882420477629460248362499901134394367440945462526139102369130875472227966645272254197109141176570440232008256177092440386178206438666283330273195175288571826773140615441582565096634587131888934069856500783262899148484271852875161192903564972785601439176788664490127852860412443134868659818332913678118413202226460845197368339687490805268556894848682577409747018632447100714394331677771274529356270065329413833260027409809847836017936291651837064722807869981351385018849384714432028938018066401710472171419509862683225579056019097068525311426893128089369004546310157871916629107001303633277571971080632040423854049501390422244179193898813020382050789988847866488640579735198348206566734798576282225295193772690852523072750232747992408962216558563919286623763911754631155328420981359738531242298349271083878103220294873390045039493401154033199686940857164837843597873313988641836488433907716416599710082624064639486806875747165158783923526659646955973078011958779213741211128880668288167755039328357932814076923878282307830846042266948406091400107305592644038568123894018828411060770912422515431992102023660746005100969436854779127367723028619095586565944197822137478452937307214412072504083922104299539463580925568788520606949548774407522817034966771477210530901540441789652967038331947855788449731226965705377269845985937090052355230854421464204778980256702147246348870880573091848554741309476927991750425828252084593066897546602029212515480808670202735232073679383983778564416707471718007756995289959273124847379955604055814062551338693406853056807992472831422063135372158751097247500590606041662544442435855378995943713299315797327296081838478247488134278734108995220461502410230808150364517598220687936885596952809900115755994706126828019043974427866789609710129453953453365655862962165503290309546672572285463687364325806620631920921979437913254734669756386818929093294156588991181594876266703369274004641066403370862879510064363445229573411932166668040151711327423535843625636151359273957193544126856657159117498847446718305773320065632655809019283191736131429520718118163861890108776053864145141772252740635244940464560463531303868825969026603005724115604026259745861247741610834838114585920284816202571283861107064841473181440759652270352526107848670662202687687971466747957356640731409352358197711448376657529055833129674567090620514021825882853674465863936356377692744931454665623337279349474853387756670079450016829802628925830069261851688423314665003597245149866274389128566863836955548003110813866438001411620711816008396997080696820004490368126872530754134140848720583814339890606823314805600377591339111621369588292151546797885792245680916295123915748682300523393403890393697157689228966005694850910935022392779670155120369837223848601774416319770047618132023831623704336058493717647751886055747545654971059444962128027115096250075177902802183283587445635911794920400933451259182943974446926950345772398234272260381874495803249558620741159781148312760775390362736315606341517933320890554021583034952684913925589170512903242258669104917430508737730173779187968447945046726251667845692975061105553834902378223400629553572288146094065797454687373515869036567543477779545651153411445555103194960365368332381569601687683756327904353335831297360230701466512034562913718047384635329183686159298234089320953712113639048797042929184123478677126366835880840208843364538136689841609430684774084716418424173592442555244940797908627614780133398830353177279830915999427531359530062758439924577344182006989760942339997008040640735106561402840161975987137027136413586242257091302405778291840672423773705298836442589918111336322504171640677858692013272007527726355839743885919139299270615581753513803341183134499061846514321684373229912984809332983801933720349240886624578987428006241973485179299810735450693163505773962808631177452015914179977115886524205781538681732897120579578624266419528745617039052584204684795410565133105194662702801989090531754485410990176092985039258389350259789761200064055310506281692782068773460291590737521514490396004165197145661950791055549408467851790075069751348893265998751707710210770262227472835639679286580234854814481645437143196557063539639239871622159217398842994311023384506199798875386334096730573388393277103753804754356372984721018781388281593122376898153811883728172060438722234488141235801033208482892190810793442302780568734143588392579471502506601971142591451757208130767180577741941776166504275436931712143116848742125507483579289754748407861988779948787049289832331839599177035438592809884242770905696870138479799607063084516394293168906991177191651575999897181996007182413156437504221809693458309990218476847869267032565285277199741079293473361929530049318739709732003913707671400227331800146798492364381304887162405036587735229473736534549131933825887053331076056334577062709810003658384505730524162084601486373609269741233501287878503195371254516324985129560670837647099367528277100234310321179297484432504127051129165659898216334005387900114606677134314897460616623204676265139909257903156605581452952662462896178241811300165440296202372162403554396701153426695802416803943530538973583107057029623322416632371848819898786967509699140518790712246108696287230352733958079897553514956681304558542894102834311802380487859127959742395871715157636930790744775902090070130430539599171250906918083563805386835824125642632524706975470612396835766661888983359617649604607656354913481448220412939434693802947678189740726371338235438495838862616617652000220414786933349701456660071356944076015772959299619006088224685074833400044749197097520920129669863716533545775417715469061297315505305800350158019836591709142019721729618888580662279143354989842757006533732201157727185682987527155669747949277985371941595834310900549128735761870278452020638225577363882468098764998041563522634998606418387707074875811055411608381353770923835847770931001022853376535209756627538227085846941812195040897055261361049084953300862852484435973019395689979809768719229521017034604271639439217117451229116740399291641539882581528585167503577469680351505989199870387023839497276161943611944866002447375942280047459631654302838987398444691175450487016640448756721989041146049945260245894441756302228704241675556176761356484614184491093967351132622099119637552895720715682500875074797122616497852309604540257989614616914499629534208084166605997736500945528743261859731997223828897353428546576959644433217453406889867182309615149341756226253026084602239968255215567130902666360650320499856702079102541336554876572989261396175337648957388931062513807516478421186424654242252823391409548422427315616305378245645413866317926230796359768745073957046690313217037183686217400415650551186923802653768802713462629987578218725515796764909651458395621804656079407972061186407893854547894793817472973155286699149778274979880405044340241262682920420479198273854590244560460405288168466845765664474115689206756543422115184437130889455049028247165769287982959054953820097531205549959511984108905851173250119547318987461202231409430914018905190675558994866323482889878604399700578517629969522570929425685583848176044079275306200854449746640138936902155474219838055637813842904931283320116491264255539049755350778441567981565314190895365277143757898012310994351865710683369747142477587121794823263275296665282013192906384542285575833597686369448284512411228530184847480686957420520731682111049294209453706268225125563239615131982541726587546387292038845886489474853802897991682841605140144488762567139558014149405726127054659567182404509837633564887708998615012667134582200729668355811265822335271927100720132948764311030774752249783048779973848210593553490834703747237275216320678414199230015950555822861186202459236061725192873637893488553238545886428270598480225858686800966351674424682613299539328483804261048681019288665290679544874495761927303196207473055574289279573693092542621606525229141960397692358603769911008758234842728655170126387707324756252260243395545812476234295327891497064754879801166663038848777944643885546024379260383057143990682091271202537386716168694108143419338278961705437224274601193376477833582633338388888520409626614353909750740182656199116788134726510921123664567104373633370437420455823896293460227809851762660826868963979838173154897552019283745030239963485166541912265483975753243270920989010626433188317906215562969362303645689402968917059104328160345508480015502225761800154213512412353551163117480564543854502917526432919690292216790463169562425847363640244513019707119247733567804409094693148471233206259004505892302072376804625539725635427033651579620210180418536699853865148670785248613339194420127400479081365680801381468834748795814182635612131097454792205884032822630273753494668026456041366553166387308327435384528967968950879704043641473256308193877303116430082036875469374923397442421594417012788628600606186351843473242772234589768023745539434625881047068047580000886076248690588876244653616994559870041219269485988324406011484327750239067577961191222163695152499519350784375775381546188154169712262152198276484597465482281659793480042919806155312553168060123052049333042227281592889984726650799764328783723225332850643711059325124735538098855921301464226877365208098049816972802818773495400694184179530864829573316194907068284422936859096403756504335349869494136333608227096768192795436765100639674646579869017649906056671876067960524202702048280746722353623547380980335862678111642151847489193693483127048901136217405423759348026507790470115185886617248326138560580321203759423473210608627226677028947406068344375886548712283122259875483102419901606952019962197872315584030249349807644698523191885975823338674160264061766218706985719660684777345206920476080173163293661418111409682493646055977585091114915684438318663966903370815875197658264397476256477525864306444970359628596207242300767809667727141669848241971169346998743225760725739924227086693234958810143556055466948478847589397807485389889843069767409201427253925820148436321607754473252207231227180429377423117241471165232698746841511462624233999415989359487465514593547586322013006207858266561661172295579699111715364443937762151490299317325006174672560392402284017937650907280987012488931822610326900092443330214593955748367760425179833690408701539810083260519111470262974745819953863395813187269139608350240932316265946420988081745327228902227562017372637711621040628140417894588204388634653513307420171904010810079532765942247206608241496721146188853539320962051354142564436493150867669868538111533227295417406938265946830091543587217563616318631840394091403956946770430508659988529488630846710642076781273740067574401191587904189906233949516480981458962448557537701570647259923395048110835708881670184082152716050511089636511915142435412429056360736121406991361706208554181683111069458175961693006773221799358085239604015113200483900194178879484627104207606426927994217661452021284353069825105466556184340139849707545435629719596065676676804489375523570128253761479567268310764604768595841414363716485826132236973093707276005866873786219142083401170716590462706893176378993148374050276432748548532913490562637029600355455419302194605984965991688871369756679625165291430617122417729127931128564533475014615942335796629473145076747404575453071669873369890035606413246647902835917675937457578931351923983369073291373347418200778618156636751121724861763025593339388551366586859574622983241338114940470435255131500828776273515176011185346199535268053296247003418163314913716879736536201415487696309876259008969960297325212731149131573830400015979896847707278842077645580026482444659465349127913418612347959953142985629020050894828963369845236735901206958415665334839633132447280886510037019217632798087574493050395757250862531509654129635358333133958781455799988515333590440488231418931806694313552013353459015250720772785020380169839666946431574369123771356511566194615018062011307596525082731521795223711000528288760155549879199657676862478411029316584555885919497793883132741831879576291919021352350913344695064573670758376142954691587108220127796491349811809011058923631203817260974936384156656953345135045880401066525653296632174641776710682443266503506800408209810765027680988740796671603567393387272945457869413242723248538070474143382286519026630639751413980740011398323270946897614709688687272673946891650922146567913991547853088888579267493939178516410266958123859136848905546862480627832258822007228128326837710072563243687193072220459515187620453949278918624670574777431505306645836936454628580199575473942106574358864263649430298157687039355820325680013588196743831460814234870096413009336638173574477664911979334822063135024487412414223255621119061065100686980215980055142824712857124363429401546753730307776851485354205204681110742287954017314754666805000576356188712729392971488007279042618215350409453373996781361091154010064755446912327611835781884181754218660697814914127047775477424824571362016263183558041451359010848736140660464264097542358984495939599293469584557914992746972913273766931566618286304233641659511281769911302389742641664498257798669802698799235101823977502412590467187257432208001868439411054367754802791603887288621349695603378171941176407638661133170848334210930968399480502182805519604975710618898885235729178577551615073292104434028570154823785903993010387878226662076149872341707620524535717918139637297204222746511730830253335351845182672114664194032288498201856825863834408950725145200187107439491111574112730936367847940216650773780002528766693754284878866447798503390079442685710875326557129777327351094477451366059269685682346910058997811702311052575400691958901266271605899832860233608454369564367290421007112828440131785263964401945513499450769917030192683337356177987794739622809440721748454621750183652118682605636695673781528446066177793552123405559749588828305911147808176692911446027386969791306182150046328780703279321830479317762174303907896446535695420719042933615275902617429840713540186950402998949864691696193435434818801672865844808344467466363496871899505599638982521206135422663379232393597318225484855437616582004591771183707747925297555777923269735702902968230112457806387042819760711812149528740754891902424048502627626010734173114517348038215870875719522324841912345087929975629210505700752264542450125995290497663869617441513743152052895065496362835584425818733028546755654145593309161448238104978758893131624368248434893037171651132759550700375361899567627383924107166119944737899898746082943002905427912151353622286011170843030737451158525494732753339883083265321996982949745451296344669073796164077408415961936269412453210887874483863228898247750586257397228075516437923146262579227730460118859558053318890499395924869647732176084413227998613652001943753488692714057073806792105582324245401356453884708013331845923234958453842614583030386508262970843751603055476339853986000139669235797840458824209342658940512634566431247471998842613837013993922066264268386811770732631389866478797864091236098305934589938581755813331542499196323233101252871227322722729858927892716754878573013495400231736121706020390492316433236276260411272102568775304896390097933444224190493656445608919156637837818208387030095501727584355233793988236240972137091180921968576741995738737238306245492327021106535481297882060064529589092246476941159856422414733316187469556476208135037653155461380090681961057678789045444609427013106688955809402213642943437503522864833698958241240777039558957986957890140709398052851364606032577205671373626065650695420206165890675322535895561116253333129678472471378238900990195257025156433838734247283622402343386257736918899102035387441713144708555708043552517350218438855900489723826521768529889333976991483760446406887718693749134442595178901771153499182096740896578765510205829455111359651846803408027862075578001319685085970826819021529321384054729523663724528648283427274600837252696151805752652933081403483474381496088247139574778013470452468983148612017957276140376312144243514145273329098913176323810410684506552455236280584299104268166582078192027821038325077616779562456816114931959126648688405044545419947318348800021552691562979154727175251098019061480586934961676984628565162847101204869675418166645791882523265992823961379833987719276988877877519685230712253825456316439864319209078795221174265118506935477629242778973683256411749673123343112017955059824246476569055567104522252188622419344230105343779655713675697468786167544548522653301687424736686528574520351095492050534230548130388423252549290049395667244686144971605466640025242020202640510886605679363660854246639036302314755692344090337098482954405845318723800325091560792717994137164374657534258496188260588411894464903760202827482082201751484818949157924475054482616804808334195327579668834386033321737344458914453921986950097301286929531867520603044103587668800009741897319726136678718364123383611137173209973920810735926592148694166404837069005235563663193344169995399032172093407717449977983340872925874891654013607579724015804585794448097350137296441595047825117864121649740142399795286946561956522600795380541957083021306029153027928076784806658113710743413548380121295277913443547696588886602116515415323742504920989588247933732227783356406160988084202668122838467355079618266894789313038532034974511567569665207661140478525248926384567366872456063681185901997701774471655645408718192432920444445820822030361741849207508723178202247524821004536696150637917619399736557793102164053215499821908632702032584921639559095672679007797446875559314593936725129826381039882655410805046022538665462087112716437580829394887743833040258905533954292897437493087687779381412952393779270328966785827452861859954596908295478117858561167549791445251850677919867853526042691712150196925599387651710452129604132503207429927010877266117929269950257851497991082565339338009870082021621758340100903222816477798592850410545025578488092176995843915408551031837263000023887837100678379006207593774749805345917620891647443459619023307428300593419159074411473960539326693448714070358423107135196318872717732000085404909445524675683643925549088173120651988398192069043403619840946288900164654791318377732067843783144636314465595525461236964137193370774518032366093630442742444631372863968262095540074352247894186084752526774189383661571598818279352146936392817977928695246256550986585515393834112146668214304985992050289106021884411470878646617326220439305410056025378060760400326226868494598925048532402415160514010962177451258453217432650164952545934822776533894367957034926705762533992842705490409567498101016060794260459847549557518918178001308871948028926374150289918069979198366672937149026767828052839137475505884158448552995183947492310718687283693477015777034987880846573134266270771103666988337348540633656266055305434338839231333330402079917102711864156654570637780919884192641143186920433788490707362970031461377421748283143604949327175097970216036420293599160237711856576621777590950717035818868068442557544882525478511465795615630687967639282841104631610153178727500015546611386209939667496552466957231206065199477891099943737799147485320905847154160277141224667476835780312258499107429456479294832982217670212228673901405785430646105324643174204951674722448748035650629316985848054912113472276963794888567584195633247730023444122787491095954744977100554465945499895038823971816581534999760936570331204602484839872761027520912267279586075582036468387002129286322828799870139074789384806557290597272998162832232170481063171375565306768722092833818623080104067788753085429244015945871481010119138065638947121138507215068578279932083991328009026329164202217141404763099232261731577595486480530851267221742871835165245178297328736591271170747999252674244300272924391816965016101932490955365375892446750017501775279136474701859474893623439422049351838591290403228352030047199398598209349775757091698257103288519522700104023717537115983461628511579918231242731613893919941482022257618835776963692583137919357030936074772573492351424728371316611225914813991261750875039664528612477997688332814520473339813808118403905552661941504628203856951611541785135269663671436356708259394680073297933398536242192449305619692484866850506042465018832266151912678807069949447625236260492030824067399275741193738774150649217425475696156412924955898362400699588191645891025901161736257169974167105314496974845670626463662428506919107299359757437642083675365018111886552559185654246437262497991749425002832692524069978916862736840671084617221083567142354966813856746935236674177099808730961907843479690094692250963529758927426337501586678461784979913459875897485086307646728659125284809941094523403198419573859648355301100989989009904915987157024754917416868602904644600465943120546900946345779238079393096720833210683720508436051576307233044040726133981198446924099806046985034450219958837761098142613622854653344476882126919095357772926131942805902920840270969905563262415826628725965743234810840140191542260239836525933976161457287596762530707208757930136060258711722530965817001572792987388203281011334754899994971987106628321562533484534294085596458729887439591556027207099589588281731680161604896331086571675905878756677870179975291040754122411451810661403553357253775208423640336163441803528462797978049615397039573573768677234732659082495376602154010006192462809585241043149054094479828667119956919203916128464686255390059949165183970701583006801081887875552730177060097402458162441517773036256809672423743645018988732284518974318276530918092412298263602217404189549030074170073866398761992768233304496085722465517780487705780853472966480955449611798699544805546384609494242251106184874525676794888056478166836260749158690099054189816896777034278987561221990659264895247726167553456379190949267025109461997005507716421335208572493828196967689997431260814790981349764846878408620276302007339674853579790463464847134077942672063815402039069622603769130217174979950315157223633434787212138744677517231445472861626252627082531707568649091461470395055219232702314042020985975535668622137813428716970338816312665879913202824570376695709817678735270138335473944821023578973901048152425546990615015475829083955220277257566965139940449738954893405080432715788014382816266787578096311238497807032347225400255956345233930921988496491484407731666641619921353153613373620867394522092915415409166215132446651819593406774097879602832392330098104320873738606457135905234546795287166486281313627729341183471413395034404742442289379017776679429588077490134719580016812809026648636754344103768652448575439168605111391037016772487161415833122618117841010176466511546727868925297049655018536070162915357243245035357611244655689869886875193760717538000276993320650339170777934179665873026718486204393154367183187673911242311283476504015055034118382543574551234760489935292042798057470832826679426767576879413232339857232787944434134441871308251085986011834539540697681157551087159187089293219154328989728483491932754221235109767980116677532456955425654990772572386153358664032308224648071447739969317400180651379475196308101508936910084274992284949976617464494877904883214455042110780440276780597198365393875503697310941306010378261898347830067972016818395246709612584136398581438891640744305897437076478840217459986700474018496666321348373717966312225308602967806020657795494006411057177442189721195522567232293824993523315634744640876429434738934408866099783112203002747139504307594595427371996378323929100950159367282018902123517408297835970777613233636435787885918771374304929756927305680621578684074451175553235412917303176819431884338163301405295661224738659967197931386105180637279930580896867915885221246319510136358757153660814593337975291352449854928952645678772159435448690978857082541456551175471888632062680434146138524533342907007119472879747081464178275106822473736151759109481036819603662058030482441121351654271084505199144381317415336224622396147616645150186685280416111494386268913442570498214724526187985006518904789800635910177097681099726565281358982130242621443415804444086687863696639162054902870687214544914348419247470395715294985280243426192818302975018714614002319287399548240113256542826862424574194347886413772410386546918397989805892065415750428026640658716105238987293276305367276769097201023390255962096912339113132910304785579467507259693108289490952920865237755134659016994659389127526093844397437589734220427963379692856363178517710208242595428011150350336406175168775336144765736065727890766250561460893965998070126626205904207256381086089733309979633626733912720725283803636468840316747517946986037325042553853115491263879532995025918097973743251246095122503391909295912374064670330432594997773027418672661721349619164475515649254995434077508372125914099043499020372096916099573829242823053607650533696217120318812689645985155036226044047132392643985137038684186551085839365789320699534903455561413040412909433338228045013350208432300451989392723898251411307278527023195534090431296236568721919244151482429691357878936704191216085970078831560158428939746960329941600639359866473791658619885303440760835419644300546417511637680571273065050838385002538632756842533001293327308140072558908708685988065761247701666389333253166777493252733158608202247392848311740808025164789566210521336110960631682213547102872561437808060878186999068067799203570428003760133123009304328223771443615736871328689393073324401964664646368584256029126956060784604639253379023663428236333404623097595922992920971526551130133060354145908998029049166678703291782735143733079116440546353253834794974894382368013800848580591615828758492303711203003924731562688566455150969099145173013732022943092138853780311442385228619615515529852808149525137585330821918865682172976126190716502724606931529255151465404459070789674972627517353585818963906996692798299708173967150342382186044247883775725828042797780210272491303075833163403342675373925748955460488245803009268549378747634548544134902238835197005607970296267177903443569381310627950148678841271809844883402729740793778306769369463399828600416511716175572169489665386253777213105631985161685554627181919293652628495681979445822433347780908495830891374813037997559625558174549679797469527051783769824662376902905705443790507828911174088570797774871122244394816783261304085112950952195660870735147542808269596615005363683857296860897601693257087801343916193464978585432427267965219266598801078371195522302726032539887506572252174991034057474058554550567624643703364599310553745296320353789637759528016803964546883142382901296070700897693885418796060039836307551857388595267822987511362485926851531436924791561219647573812322129554506869113517268732765078978047459915363465799802454695299199898460720601586378084793252339150474469659428955357941700797173313157084061152179493001789122008917899224251800392126972043591785425598609633697052787685866405777007867458285839204001805649396137576562447328345546739451084001644607782191921819910451459332403303674217594000728096284361534672541812672470425941636745384264420883410574278633189198660227096500567282607580272207403866768514287378316778841516906466631921861095581402401852086398991941076227704203671693136674617575161913927258019209888338185996513199914714938601903789301654118478059050219022420152785388113635068058831994944670731413132446511689348783870593766259308798505211121299014126641778290445770673182680801606806695550316804930568109328856124036264627539439460431881376016114758012025196057275948356466749558092336277524928030480153780578259723187134599354877005919746529255226932972500355446284357949866884134241029548172519151945531527626018936470847005711763934844692792317465825088686834698219493237566126690109633612784566116548831630949788514445077253109078550674288224093104472724837797769861442609965692683875680672132690166092515374241980139762178961626953991759318988835038845405784272168681976555017787736293587139807900182679380577129869570680795712524543414017153997292402673621326530730737931819873902099401427300658035226627173839413019150041500408577546748450285355791589466417560861254822232819914695350646352382580347744952656711837666902999483347938558548182439741472660239066930649297301294527955846946013341478495335990832074577942164896133782039063316522866601320491139256201880062824892986203472443494934371167596760097265450854296119778039562437201969232960756372366569992062034057456616950008433633027385388021707449276418234363255526167337212819386327198323868670879212858051353548808987721151459698570981389639894477069599284245227493239295187746946914892302782257204228605910540330338010152455720306654471348941633423057321339612489696611985382828607741440345864054059888522669347554446374627977409156794332030984397829595264175855611626983375518497353950843387301765296467192634813355945300504296240975372637457988313331696642286392923234377809895565697130460327927353484124583628926708796871506581778036695812507126458323599703612614525451742633708044470878606045633227896162282968983456485645234370746886590778696283036879896747705371101138090501442554161106662571428530167995438345455050154266385212199459645784903281451771028618585508813392021659845352980048269725235846675234595532376177354700677894099595152263652241428028765007575138767226412091506745376198541624496789489568096160726868742736837313931821513923244975428768430829823628145678947240012438478259371161832215005991427963161877618476051244377883648181887872462913433412258721801063422331546081711589756255373867752600635707827731835752116732161615994702082567223659347382918982020700126762322750871880908714356630871793926433994744928094524820944639570935391803683159079770536400348239863129612226451346675967411197673663429129943543930093627750934808055296210861679275174395122511964871375275402918589694533790522561676550749354105920354976632060339600947385687409464453672983881945661541620196766590458100119475465365749195206142510734138492908765080799586142621402423065714708996668916069187500572858542092020976229803958803840455464922661677617265381240211590997654983982314906797931924921201210456919797231808044418281074027872317388727707236429268096348127250389813023800009282756170146057873363743373670190371639410006816576073777959974649417478393174729215685802728607491073103118487396581345441439973001829580148251440314296062038205259728525596612050376927022693735014320844784494084095108710888161296635038414866994567588448552705590082197392021224699853157343876459326035290116564448848974050320911935951508663012751097912846020795558742242717362959559194459302268238631093063308362282870861473790015356894074537500097216501446783840847548258401023750497176186577665427435840607688419114917998092025702125208796264885771775124874386866976417570686739701565253630461622273873336165049186049684303654470453787021423695954752980741594886541935583336828662305777119814391379524251856845192808410808029473810098603530336723078150314508543659729326104861267903921990538627873056373210298131945442554957532337518560531263275976577877234443343895890702919741155153123440774260877022451719226135798362938574705179108628681231789414560067874286406493606260163543815605221978576744679397593582443871094413419686139158207964746510036880035322440621371773548364880936447522744012747005461293109933348810895967722868609279523873036948536435866546560513218963298816735172815101607676534026649349534861381363654178244872842888875918070179317131425966732665429435511562618961375338660665292355548594549361454114299812980286669183260844704562503616989174377765288376954112829158999190303798554939134655975211583171464951648785300115498709532967810329703480634077918941932136869214128810162610832250137116605415269130983164073271593669806894283566917132809731873703342220144256692603570302779227550667024406548296323095680872113008353443610850575777242428196184112844363291527208706341651679525756232987596222357263705156179693711755861273133774406733824136264933381755427291800760108897631383880206492457789113789014592352656322945277672896752225485903208627461362482432694459993870022714976252694540614910165443413690704973564674086372856867735376616675345076587610888149172004781631975637059088522835584863876200954284646687927693563931877289683848028954762478387303562887579200877994843351944867953983905852992865855804754817284591578560981051645716370337989337000689421934339971154652516247635945542388007621859235300464197452619054810882751201130907459655986430348544942731037293974736732918978271427532314081809911794123938197861835682037157760368678953792220109558048036879841925077210736299124475027407166401755872471711224517137683615887792327516402309381160164558941081354974618220578470839384491718026744172522779348941857076347727680294721884204324248004579255834021950295508546708488432567371658047254080884905225828335145100037702658568422253970493414146970870246454555448428411246206962637865246824696700959720153150265579098889529418233202016516822784967009962649610739618404965772096613444539252583577375627692515591608471537739810078904842192286237224084446880212632346524403539158702250443905030240892937998421652407129462046036207050198211613278299166872958917901743066648550799628793212435441715784828579425815958562800110002496497312106015146497949040162695657526483718444680877270832559644837370930888587105736537972504997188038009588501626627991001585643036215237032342206771497638047981964078058415394909019143877959602930171947669871029233801364917713945798773442976540197157221352365394465784615811254021489180778804976092975207505588599089319872201816037366892816272315614207533769843209618562232280740039811267604400697109365084403812561504268829502198158035046000258900403239990932178046587841885489414218201485738094923683428535400377749909061556307165455376266526356228983278760310566208493981060106022455177082636434898581291565289031256219278626078360118339595735488928503360445240323080569047376559368838491894607251990901739962186432588047907098956960708922052402687440700606325972169296267687448973015841295954208290969542227377949978844080522139015500303339452703802868922358787791354745172445343485486182196154515412095727914821985399877037239821800781765069851477927536324710589066508131733789082834807776151269436061937766861411516795724710537394270616203255061698071051397226015864760410122912370605059295740951310550370390518711044215122290830480581869441982561792541287506629200947960398099645770256045867012900803526354265956982492218534886088717737137154772215467611981234091560612017599932985944141680109906398069228149898762471608785924590297165544703322137307160981852193843206240056618816929564234231557559741496059655262802188167489008308583471188983482854886157549826142563322004069023588273790959476838912455410104219898210376941714504849214734812961504487433268206237041024085649412696563124212497297342446095773354348710592195439906057332189790701149026674156746397309189696279176527667743767147982817071410248160302973295009362840435701857345889013666511988866639634885710463272640604746212548647581934757821339892909860048910068818915324994946310850519609932787633634060235215504289142264178551560591520818280736329688774085650242659731270648301586589262181944472183081097049144927110717068345389695838433664849780671817440908588981957163341782259070638574055100925881349870615336748258655542241541551565394970674098682393086751144773636594366171991373997938776938515996337220356425885689637629865453487752974673692194539659159457718820323077547094168580786041629881708379764378333759647985133402406750857759599505453265610229896635896907684026197406739513585444426601242207644655653439452366204941398737949767463240647139382713433851806639561343454661162311078222257646882623008539682627613649483287922169146323744619954484594005071716219524022869503071119322394127520641579603165964604930748722032430945922648420569697604910809201135187320848154994283132749152282367475133721277539898221281355264776265042343164599470403298788883693615154197290356528559174653215329612136674013431641462169212466338527233762732313334703973813528864268186284867286163689721370409717807485581394924154082914704609479739180586124177074980081538337160017306567799465148328822780855766632078797270560142009663107190480838886756257322145833198729232390633487387767160816431784118778407694092122359119478048234206213407393169205841608098193992518113713136203804162254857216237352423878273507683802240567101215261837587756503940055601211203124426908503923815007647455496720360642325104985048210716252438242223629234376671013690674764479273237886335320389542876002737963540801965209614843569519264080783414376763667521352891065566447716902313447814598866406446611358063443536015039264772020520914752715554848799720070010713128669982294762793904742502586039262622376061356966391494071161479434692021147988725983581902451177290247632227608582626343902310145464728088634563977836646873985275190513627663421387125771881593413479911455742259943699095636683006831539736441676280135865598726045167067209366304337274974188849090284323784512392000467603518643309612146164809902604084708486706588700055372494949669485746246759675192268731350174057700399948028784895213151197282483707988363253121253244167231283042929961613838261900459701461882539761304169532310668747824081291766878787359677017241981477605903737301849481084737825015692397261681381203080438770151619888142847536774191992843177819753125441857238032444730196049137541643379815168962281782894798893012496546944994359941616341785679768127421140338234433599969852917276316195225157915385241122118466240594204500873023162780615237265893597928247802546453554028261935316668633256434696911036355658493685133817193691727078965214837274620235457546505994102983771825434091442048564628158854401374696156784556737835432491936804725468597700502313005042882287973065751687707802576496209750565462379831131764660320381010808253768862737518063594327713722865666832355874426498365770133165180010418105678482726675096551004480489674772766490037970477941876992989659875894943435315658421676622071418961087739944498385857950937273730531694629508619461964461255201797906173604460491146026629485550760624702316810997421340829158817029012514344799387866012724195093681885896185850293102588138173963246671170380254407624678335830683287462068846960163542283719177086087013936407626583273315105621859740417816677331643696085402212518443655268672659387881886781504184829333046841629830491622798566421668095344537288104129608375132458885305836463848613348544474115452050830770980147920077444029213588823339791134309155110078309565881606744842538796412519505161491013870663641094669950786451929019029216618522670999889403267189425821728266317091159612355401719343595205535631807310754145011505228247325035326755641136556765640782576752249920417344654353499369490508467194721728756451986345040282238134886646095580725485338664004001489213103319701764908012233158561283759095624186549771553226209605284417743214831383132049631815061051216658197475151014889975748237270692741207601312509988045323614544864113112390115474723977998463113899697204135295038810443858890921780597661003684193429641378156472262053913031970940690147737437259206824139486732576799875395664696716214431443015680392392408401192623816208772356935210840810463138188556509169961300287695772819263289663707412813570881010309579924079041614597474341559190006002357914109566575407757648678770805810596694777056763430201661228452869504535949442210988661808205228354220812387957270378057235479702654370371195883358030740385201166275684915021107771321219796945713844769414174662747433136568220407664140686739996967792899397400219472114033588107555681164746058186944970170355325750713862795270643357093022814675834604054650593803966951551830829933224326453189588606261361036611055604267046521114175243322645321641350185041723959496239448170213406407197412144390919263758023700966785262063428566259590108181191527520141836549946875810834201717148156213893377518236509626662483468160700438155800292247790442781248219582027483057679257449700354399625096860909266653798211457606960996244751020328965152957429862067259244108276061868404487988741773701566987490996149480267230695779901901433538172453088449734075260838141212889486607795930464273969282933422363759003646879925405005030754592823545141503839701911027951755291935025436987038732269907941459016336134089745556185121223733126890439814556478339731376776902450616039016576070253010586221321492505782814357531543575311791607386505320537097763138541425867382268356822636540113483427596019925508685584264366362876430352639589623324668551197683558802402221306444739028255527892636489412717844166803368230420332159507876601980407269267565233525138190643822341290334738573684453467629523877698499566006283880305672756760891488040573886091389374737457560204268310580957889855715841015565327781679607392236787446990036137136162586367480029366357100302853915519184562861212251899310500781997377167927384302083003567859508075055937895460951947971483480619090080117027209073815349194697308771277067087871618061927111805766414084725370656772603605587426900004333146978097733465839781133643811470447692520802681201523921587764514607000068848567766952231679969361894579089347347302635531063050892925743117982465529734493427426225013511642362650965950233228444964996262091180444916160672119689445100016290648058260191858142279436388793137252338468973887075363549589055217436034256796692796332624513939582910455671565005596456790444466880235188371034038059681834869220987987993716670296820120568380629471999830827052934210659712992747081043286907742369225256296102671950307757783662911013467943819749353125247056282445763705898508126432082242784064054627094905122705701612641145652649399111602645396331009695775790143767073314417975184236282049261273751894705541395853505212383015449707135433298145688019312098550812140653126294588977866969456185216060436101850063938022644274649496850037603372310727984148681245659578637139683896105997562129010455236994985507024878481491625269511195436266724661789082480828166721750106707448213752735230768937485420909136241035759329452112902786083381873482994489017618522231038193564745750896200168236683717285127727701650635018126198593351478912032674771467480996162581971334672942273173838645356776783380239732563838302447671314359282520231551318879418539703733224016598797936600821115501549691410493318575919274637775728931919197344633497269877883352207602969545568877572349842705676569592918340870883866025405744321873282194251947710480293377844649605934654715689636685667379743880481824046741466048546176197798161283265478032271688865965691609752389254149988698592940234125314549923830664317635462448726892320759677837403767592112399272772308106016830969040183077776324140454585953501260688441958775304957149499484754292339425651876895616496156062113814798774746081778705187963659318929889410522918740220011461650353210220809233091457902793387154179996982023318894038313700441210674412552004540942678893105878221101267864854380216428779041469460158091892637528082668585015360181245958706429868845684657384396223819195393876940428734418498417327871403103547237780644390689747850403905378671517360126779404686864646431040529131454080961404705837072286518930853786537275344085649819151480810823063955683615464193010374524487623357328246287407369912729084649905674956432307735420536333016529124421789197307078470890954339985704232118377989400511673134990378438411614764424652470120574692020581326412767964313745698324292253128807636412773611991040809932402371638768564718935622439555896337157123724232350532983973927388081284044746398856428488749061318012173490961259259523909328574503323691249197033217693470014310353164472323750831291850954283977079612497784839739054188647342133507383070011234948048496092126691555378890297881956505530716369144832955921509950650463122490040071345387226454966746098696175870672608158348975598124988815474900597739076106005818430433834877828718787453958008768555059123758387243118122730773729728790727790000384973859515192999609303500893007589641145987584520730405643412717864976336706939019873990740631817357298573267084639708516358670532380453834617298999978159360886551528056663022893784836186091445240766280247333882246615244057580622218075679086102435390750868458189050764286367316550135309220969604901717346726264031026217284471648219964010821116448554185627308730750760908469660342042860664699065442402173124112319014499121271303525152629436522403141180473500931774016765853326933713426920392696762711987975716782624995283802638833239558526425037836104600102049609195243349637727105862760195989646151007915467469205368035625365377407117231147323635148025436118242553365209295514235164208092351415122865435726384505301452504404466031341102305183913479507339637912882597080089848787253956169481034154590899105016870554354947333364956529245047799130434763841556358228193331825095520076701688546051136358842400930566213158595574246040062586170138883007185914793205767358106848587792373183830086430112820503287937336355658170738261778404466005122639372747878296151677477464182487447006860053202271528398398063603407810929940474076211113523560878014555593320618165575029576659769450376508988673569804410515460578212119924980735448252263045863412223176178529550143060733080157618575059577154271471986015542273340930367086179670105426266058398764774026566226148140811290887291473721950719053844997823624694504071976574164997749531617026377461055801427259475242970481882388344932107441328885036291675305831464273556190835495753579369244409450892930434486391381853713737910911610016805916946016046838253040818777506295507454321589259458221968036812518252429567211796467572605101317704757538947827178615319614799770335292226103287798581714614331345061802084094443364749369692347768503040595951255691669661342166552755883180808162131770652070211212686995251693808247110220940992202325489172185489995685796324098416875524227847104581226761597301687094308459685108830267400422529323907738024315399418801658031383956698395817203093885700527157805374665443358410698253686079459023059862587096035079652209085215619841948282644908894289887248719583398842797282350243262231656920240223918015525379530970742746359652113500984335502974902607099323410057973789591819692953508142322629807038682244774183338432055842473468832294102868516783866466438106099308256585691056291163318469300391699977366618257844540633165621026593823723554352175335708813524394574660362755699640880344771074122098293334254567082637146563087303415415110656557264071668509045178494027315690603369898537559632797193871270854018330731149718276954395832620999015290897337418220094800652104315391760414631992746830305908163733053102128445782922127385143186626699824923850047585271303123005090993902218255495999785615432778148057119016385323397681575634195067987190968618061483187618587739034716020504788609106464115842707452111759717578958543753966697727695024421045033724123927173727643485435211734904066994098714934666075691632457483609760813018400906117081757199562797582302493501279585273986900936118415989006374045539849567309582715976961990438940587338041477229003389981242921422345207199740884470668899490229717671296882013512929140637241672497466304197600587412301977537299165443886427396655545809053736241931070686673369695794456990657734951346228398846191961698758502042641454136453537791390166538500418249230369110903831175775301904492713897877503263758777834306212166537594876403114934335821329086336473227235985150811804042957325961146399600941465867949334880748276739019128539028935309197202876303772845977640949478710473670708132245047046593038621064997470818545331923858905206919250631476302991139639936739862096157700742113420469933529248612129361633460762988989190790118872761790192400078157794776405839932905125896583631667028580300768104881719238810581374423195251929221217035869569265800253475157155976448969428849923859785652962518626308707937533955796793845149487960433755426977224344969478009547066748361395793464491790148584788905800902711778124404726079178168870831293134399724519971910932141750852611745364973617111037480029261116246035548906320092624553746641650182160866632084438290373082447106354625844414558553315924916806872425294047097047003888648465528529559201287016084744400245193308899620026447363567918420821039244588809919848413796552544370604195197241147520265137487011940567089199351815182105042853567739514766560478543750554423164590294795732700275583563417273695137468276834070950796859610130812126188884852535562922745621484142388822095808949254995873322686484217673815491009266010332028709182497374437409751668213085536342737567399942809848995950035296816372422464949363218727511709588104124552470149841769994081428359154521297005028785994327639636056964718204260464400690801639945158969567296090051703298966314151559692155129937878199268765449653341755863288544468628602962980501532352199488932740855242704785863815506561265539117247884327465165116066354292145401817804841086286602533569574122261406139953690555484274780817765767567806197427353688246911661810938988477502694577972849340933077549620119145456430285470821190869833188082958094510157556179322684394013361185570287883049403370330643354856935562210639091688011859876642231582524933615685881413379579005367112543141119895127735788006075083039761988067091193936248480967443309334568423982644427691028753508119030895134034684622337802252929435790408944360282666590861345519281985977197349007913619610784046802759842665371173855911454849350518435284110788044266577025450068872905321302324346738675621440890326192512545844539787567114945685668472637496323468585292506439695843497447654784058538427996095091750791426329675048556424438366797183251172189580669429749320562782556718996674736606040188534372165700619501608515336862886370830501496989208343776319298159503097673664580321697857341059077415545939452948060342528457534995352897738662256057387562184137521698249364758471096368877849672774783324378614647155382743628387782565529135219513366352998785432487165232609804087786584793064520980882214061753508930456579995589811879232428709845532580377219481046308048431277870256455052739469735670368414309846464286937831792439560777027860735462547186387466376687808864321465429302826507423661390723966568738661013358633984354206396430221527990128338327379730537834854436977620084259862217619628397617264216309788699319224596688219674566198858990600422049867315695802931211583412279152658472680434105766170569371141093040207149651982964475851921994121213881156277488933846182930034889826677854977524219356802252375150878721310333891283234699949669861352565681007489429128363643842114220375645407555900906206237694178345456870241706589227477193086583067516224926132518583117318611851002676143950559708185116587250971034796967465602714265348813661663450238814213646860598357844812917159978024952639373810477997801405677674129422219984694618476729732301808804721231298329286600786160131787899394022390366360065848890660873919212233063002293652351267180187641747236970265486671474583312346413829026304559374741399123244480649701475505217373812537970017546640672400372943438182740116754636768707054379037565925391293194078292522919694496510682189792618707809306317146322560224162008039018551372399101909473248761358166490685259250790498684378721307511621792140091800517671867106615271986199959836353563766597972098879553311224469750977670871265880289004261541019967348876499910002127714636713362022588219197556340796382889146966543771578454280854380090060371122910533500384739832673939131692696282503672885301676204426717511339380254314819160405062526823423017592294156805170842805955446756525529615729931246991484674465144674150758255114091203446486825395895324962449036999294935050924322534606515914115993377908740423517530229093026474933835148952220861285886458251356560098744582156635063217407412981036318700378010405180034836186617892943601588036385837204711985788100203466951643121577376757520794685345209290155645750943489740342490550977650480040811497590844824411071334404977201818564030705500254161961241655292324074489745499506574697624451353055270135847015537371376537836538397416722390369799439647576966138318399026257826286111955420932480202090954995110489653400759144110136095285354589147792450144439219919443713992658937786805368036950059516268466710804050869483499485705960416248710478884349989653458508307365382262606359327719889615892869848664716520462625800454481155034163455293239284345427260583964916994753249735025694134256821491805468871070216108303456518644543512614172815886083780619872317149882157593816545734566855882005085612788194566167732216060844544335360226942693954223072192157296396628322824996970112154306455822425711266128528076366468017695843202050140152543521440276532061027357643746994348328559749866732684205737727279018179267141831296249664848770618025938474019050275603018643418269651744747387791764643804542047043486269950033543408378226224096682811437955744300286545502977358875824344784712959830659234443395659609415157920536709823741282708519781932613376996148586685407509760045005241140538088660645831978083054877838795129965918935058996140923936389310198383620194954638675302053890632050043526438956840039659646455539891126550502118844534223831307325665576346101318934984998306580415369853474919393487880151362954055121798555704215416750051596652527548787676520918387210061095073044442075970313713110612069065982127119890489112878880645516466603528600226022503468789206792414384413537140661150172604038251464730517012824949572436500280140011378755254128573970742082304218490142402933646615237454962351631246658103402958409950366952226755308564731981628169696670413142550995273920324627335986258140942968708126858767963511732056618744810334676229707536488080464508242190248257271725528837477197550635630955156625689993643404696160863584289309013011006543107685639884709598472917376150976930268047689929798188157320726004844650587132234706818789297703466960716044205285160153927688370979953524390501719438846555703749185126495820706291028379886586925357999342398886772766528244023725006030708328372793305545585852414583314310120923034230492793872285642192557826560485903193018607560830744157201882184091961768540259398091485078085767611760758952762844342033921791438764508930588285767446229661105495005558858687570983959153504586619308574711590847998127317001817492341375066514822610399335506044346952649180252415119655871309513201922572293426762713256181034172066597615792727633342372963888781511457512762864802294146989353057191352507234259610000210209214451487683496819298761103603117335248920422366738547629121952676413048687364816106596988445829677969017668383558465195026834541024587005951344679731165178791121733004019266841241009814655885103328791746641475645913149556888778769343769154128454584187290384659260834892063303467783879913458791867575645801354577764588775083788021297144346125376836161290031592434269554814776318947985311911866004705983405970559544644540734947316380216541830895941034757017312460007316857685975394488023177046549363550168807853616880844622828222508371102088769870261431752755699717296812445828812149904550054309156989216184798691236674707509709379560104046005004199008859094830963487768472451241887772991139329785453424686295625342349677421992014628386979994161039055459925712894411494191924610402789666159065845931112381729342089576328474284201505505367337663269806670300329156302346994472684937526942827149899167359070489527748143115007399339916343522654957416171883785890666014356477865877710753479974688750488774283881993794945631532659664454267351974065819998232108587789431958184629276909814464411068510120812446362558404872398382250561294009731565678908761973043021758982525194530575400384368814661713935817166426083148893111876229616098144474448624187041621204909205122191182155698567993793346491361882885557595139920504653395602955399936832244605874269647642355435105546563255490473878526624586033465523441102053624241804871276829796280441464856818363018413892877576259556858674588877786394630036438158551387705478786994589716739499026122679955236256916571678039683603049896210522961216294486323310075998099965673704122719442001787384659668865533895612847446826211573864901730227703757590218030926738251353249390360690182227281093361804358448749147474660051450685141597356085992649053078982991135556454275762690399517260910496335434247804449877132017263574347556282563369265653788081015958462871005499083309805373340671887470625739424814002548436082779401491107158098283248215947844727209295776429155874425415492615634683363560572225615744359382499647742207904688552285414141478831536015094202769088209288497836799225111179094231577320713729624525382787647619692491376738770372419124274831184001174272202322155552500426082554495569636459764851708435139034511770332106018839364122417257175180371934965485278515571304830983095839194790921811220053603323799176973972542800909292906794870705078091132275058841894933957335267154898460569312830928924213371135518929194769268689087452368184477383381885877540358447957128137928139235129025427942251083135559310193669068895823660788779246920586004288415131482701799969751456696479895059450836013919967723845137114104322379086496507158410426418569666024970162833117635605283729501900947917950801366990808590360608181974320413713073464667033525608492046101869770261082715549283425517199219650330804285851814383229056409887268756763836476851688911098975423340869907275886483611791115048717687631998637482426278949616667752902111503096289298163723885566400620170625118016429562867841616093883995797319288407786013416181582978979742777561552689621043261652933807977114172451281435705081892591157093886961322338515744772842495950133403225526973867408858990580337386541006875949237048256686989094727740066027234593563624637606824370437738556456456294604743938556460250579776476151207443728159614308406773478722393115835654946334592940896706769061226367959059793822313212587047468392071532187019727444131707653062841768780889583746500626484879204592322587967286342980630198098219606254534205382029361811362180212325226675286594687591426360344835385205170115681935621852893676301440929270997599800961619876772944314888578520057108330029537291908250589180448782079017385803636631165916287197973804203555470090546282908646162827370548418062879328588253836117032624866138716279621364687962293940210120176468492258425989760191499913226164028067723786852141289034013292624418926046344439623042356452857245303340173501489865072859802010709525731618697281001360590384137880620244702097909395094155687892552090855154007078713724289556756777731054137271525443151169266117513606929434130214170493490431369883050566663822774514683623861686348365082916163836083914854902457533059654019205302696550394848743411341538153465477491284596912518077656033047554673461634977238338662448607571086882479546246736336222305621039383914194118645579759542389020336754575365878874466317528443993181679945820539530261938951986372333746571401795641112657304954842171678583740101674605576273881773854740484618111938054609453290946260406881762049911207146966143451584409333470274267369057699587964970798851586061299531113948929375718596209003726592286831389043541763615583539171496496393906204464326322668242144999324857447003264696518473038198158261728589653341530424272435083124044633886950792054305159417097622815418120209449461622315496270995954217536574782388233191019179223626963716396480233104446594608299435203848158482897837993569234111006326506904486392228148539594919127419145954343759688470760779574140728157388122495639435912323548188627294899665978496855450820805611941686509585241384809223783324024149157148342351181816749120681957788908125488794832111993387268542592128526585495621930157353408190328865555996584424221942966474473966278794001521833101071782723817967966982840140280675194387078649760950678673532795687896100186703325466959841602874209911613310852087932647209502291917568520950464453599653048171460389460082673816954370280401873491233055281902224846712957791082414501955085076852999776464894065712233372655202124340092452669612826104857076605319615694350900922132835228203238555482339052081366285596101934263954651147162229382199990744295396355248754402230160935757353801111788854499050170044749011944997267136920276674424940990632443857010829002042552740131587193222262170800498614491711444730286525960217879151991145677672025443937192918540930875600858978512273596088045587458407217023973846623621788381555776903637971967982562921580056560657639896834879061296839231355442193671569846414961847747095296128259938364871474428401329703531289681478641717095132600075013701641909397312912289149692302270299840673148227855034484562022605731926955583860261280624289964923456867652576594666333234317138712584273852446588687162768048024864858645392884020724026464002616474188072786429612691451942655618975802063022854003754658104363893686912434629646001217147277648238394466675146693751237122194286886225245107662319103897133437891462566744500258390442887148366789052376905707418361931521490816423894689626884034099045486875308907555361288291583109280243761933928098425114863753149139456961299737915372711486510386261792136923856240133948054696422545494458431942069403277322414677437134687804198936972453918845084389244049130424781436461896781746522367468325942787000956314829657910586601318030910550556766384239713873998148726908398512777264014746345956557809591453561555515960337286891394230123645161533904835542686792016362743303870916122778079898823540887536108593696007746284274846203829203211013160085715811610368502476613752452494257034535711402676047158419137611865457030383276870727879764169454272503557496766456913430831087249671887454852686876823447511851953051966541859032039901288138873483288181341172407149352218576181852849412399971476129178775011973354813694043916836616721087481820657153488293719955844887861649698513797246809581275878733982803530394893692881749483028770743700271517770710742432318075238267868455739535284783353529563164895180559725033166265830226983684341756908782966087614818024534487890667274365094204458451774861801539328708609495031443974014747478520603248264408311442671433511868252586008231791859420887175783935838751241250614472951696804358291268060245501046839640579406795915134900030918691084632424767832173911279724032952083469574027830503655600073595768821182042044885401067212982026768646551570361550372133417099182295363569127365294819348486873863797622754283768702574318304196101577667357240603973853524942784309455357554323920670724003943561672816766895569088826042584086870857671036666038323551668675432625381096208429491606319602893664990380776685248816078990004590906328305288421254528078677467816082211971959957645723240859832728408950590614170011358134005395691059246240304231754936023644968145088314331350778774522341439647018805160253477125361159351750036526357524410466579982110644274641160104434800929716805593696816541849672928644876860031794213307522385606025107696401787860578735305484473897064027702064700345229795976898753331300947644013349298151994156692153720985305223953935583928798240799220507868486870992234975055524698051493951698564667915676689488013178121286172066759496133868974124920473192126151093839861968089779553047850063102004357923964225217673176157238976597726544934525015325406875966781523650456566583949376374251588754652283395330668044261492004811293653674730754399737730431303287969190170886387436275742912071846922123217128891389226993450194772106162950094144276715213210760472618660426716092912346063336673716301712106768977131650100761749924608575702936071721355499261626074034775350557529798951121551108812931950714168109384108872384837493153509237775626278656372561795991492177901614908926439830430986332129050492285046162249272483151412895342172044689152795430025155120968271853415515287966677756787197878742076855145194864680361642723780969746142685909639998807464374169391563291541033355181045373993761911251597481812198186102862499700084916328299556567550615125874116352535969698571691574316657601491455029210456788119595795450108429724831933229350747945961608053963118553225416534265515530048853145957305004775080281636779219679295143847941189511868177165378755983902995905631712807992816399986160034809257105790441680037255913800856955093499958426600662595302103479536054838077281343270204364579634235317420733515648364382810716952095465479928240863797929189148937497931867920816358772299586329762322041891840889884537244572656329487903641731924969489504350233595806526391403569539878780310740506273847941444801382665627525908020025816118673187095726010504062069699110088142352871386434009931873314183184074669329046630976760695743495841288926291487640226068029958094760002529830088442703851692829067866726189515022554987163120213308970214725635606002906601374437008185516968247741400032570504330847605046102106480405771901861085164259681971333389827978387370066118186640488311980399153416944117174349991582563671060091630637834538604408545601737192485938980860278021128539079415909069014386685153362912210725688953269016442933417362541404060309288170203589875838055625452816479435583522588101407121273841535574357516873325234137299275817196616645459582831697884087005624186860167259962003668113169369446513467738277358792231385093211108388991420455769744362515778055961009079711447841349500945332228851463298419203648183746103174682214129394065935430554992883616614873434497786127948655937307607682725894080020575688008554598568102385398005750271616922183470180813301054217440977220152694314140573278349958980022446595113775715137456063644762965641297455086621268252081401164090308774360393425261871255823928802850565580231909530205816935448392541820582230887826168979466281608726735319707298918138581559119228729416011357014627964880411093548523717118464186372205519051242711334210905146656186343689514348291755337048242727769232761631416604479833449688320043781748938095485844984989457031592934572615000311308570039648411185378363934710401726373354558744043355395543960740195604381842447115557511489255432317798154801602536421310691130962418349689915015276243601322741988803618382625997273644489860717518931420790110533751648807804944099307614603899518446463230995252031841263623234988229618240554546108958560168145094823178201263920861537437446984153842749484263851035268943279785002452459665283232413148345754390936483447789881683943919138996434096970536576677304521098847043821074838632865400586256679454838197171047544074565876214660598757752654403274617328408313955587485711535691214124930606205366220793687001637006076414859893328682120261637414873929301620890516025735173135916438653309876019287273416599147592664080861913562791682631783952349480775285525354128731490803895227027341452683805829941055391812700857611531380591778537334545909349609516104583314603244971622021693799261529100066886895086027488793336737027578941681570465300395875951406239016192054756531016687825620987310681746659508741694202141371379764188085341125745360904480076999172656139822468090739129336172264643433060923927477548290024997080860019621776937929614906497085198820334189565910012219807445595905653571524291469450355282149427275568459821473472101650170670963783355592175999149220465635132118839120611950609072595717595368606618482736271352849161827667023793013244873389591638037926056827833836737124923915598668735808648609680018458397239634673240628256067774254653492374845417275558729016628733800410915331794527051195841455800511843767506772858341549796658125778759581100662811600972243215284952640286124973006679228897380961188507350332241942175816587622780037577065430381456668442799623984459339039724466688288808025862935737471667071936953625720792299908710174422784022067602179153750995240340344154010847401618405003648832686599876024082774115972050195465630944466874615599094926321772841639269553839889603699319679668081326355659946691166067018050207424919543723631165884449106440461781536355977042228368498796676401680430231717464546933273602772112897818696738968295855150635473010173148086178885573349108807803605310993394071324095960960458727550925935649898358760488196902352556188663771288152157913641062067742086253187349298979903604622392373393950109423499410976728617509141360696842263118333895435482857562360137158106281024824400570326161217696734663859952744209218492541157284928923606389933418945102620691478705076438804988389505502854475107221711790390941346091255111090344175714215827611587319476381281852713576894436002076534799534279147581960940473955496961487219553693427952509879316084182134525918341591997959434740207214280725725625760482761046781962536211910610441708890379783063162257562448931581587299886998621149302227078698797346227112764026866257086158101403261772935265863197503865280253231028247563421558552095426953194347854333689429668103077474374649897440243790872892187051027423057470520525428491128613906896947901368068805957250027540120142403606022081369298307265471805824326364964249345107965766155605425720785233333192151089059566986099090211115758646580575949923272946449311858198471134269141429007957550035769775768172747355501829501495385999630188465475689163447219480865144622983204366027955283270576470460753765590112825884452603808677626278876250747606735230257370620830132165141060434020324199090899592581902411916576975691611528442899451320199548590403034917821503703353044577534361917643415160060765300102703012808671237668625532630047053584705877682811393091753517574019987180075186862508426422311607886601162118644923021375371256389092715636502877357794094593077473124196942701897640279981444398733741870654444648441719920549571731587260738362421641431695137092222448756370885710278552771841053727164747646315539497484275485675818873042409357904151009716272103360492906466953196904900277160595126791573729692567043426468744015178966313963169154403628530854827439250441254102257891433003394208714168526485082100390715904060624831373779580747158058144388338878651770949751552631219742334744020956003700817488825019760428426373200057771181732656034575265631848201688427189614485820471132796762259409657957293126156335528422333489493483124492495206205388247552602361315418208569906931047406377918302028224872120917805939075864454743510094489130050109225364022218823100961224891073860677542018768584167502512795334738362319628876305339564672201281590418903614362575177700389973491338125200577694666209842807427514334049434739807455227875712692590324879007187605445872106874812679730688048879548405855900252268558412329157035950114374595853567990632738770823454397892638595487121181961053718962864219035390298450842745917892871340883014240811987254643934261836144948352651364457416063337100889134043882182116177199033803526104659987675012699361558850476919498211997487663918951626682206338941128341350136485771370423655597542908777187262630871628386775878036994706283988820465975850564816857756282919402722623727080765990683559347014756870035450006123561648280224446687403418709523470252047163398084597473717942085929083256716955833196156281148307728235466814649423278473810507453692442745631064245291262869318086468362438915447631627041960613855195801944029382778528751299985226289311782618054966898447074875120262713839495783472083302633024245182438230670037133459120750538119682884393074303111376814504913643323539076897410874731587366825621145300966808368847533702755433233199442881871803159136307061535541787989409702846270795747034997325083705222109437114231212408823948373892727197337525642600407260120120233938306491652612736958341144416303484045130896823821152327059624613063599759561442881504727927791653709333663409865330352995095961745151879507588851848515689297458586445216977065074624119926320267368052881947848445527299743402322807246947681184144496794364413202979801113069761782276358427984129615872591194463108711587752261608488256130472789595544045947453022186249571676045697565951612171163952157705156194071724314987635192727692542723573309384683726709984323643127348953932767049267336038565582501371240117941784915887657389394796183625209421259982807696327973075565924496322289874512253601946795624548980383521386390433099533712903748750069760976964421064147754848048343698037057293069160054314834722353820480946035810949662019503972895430607174067215261427166415396281420899200709850985867779822564233782439500603299077925590492204907021976449478383721898630088274719110096565048777367607288838780267932625481390184993879261228234432810038779433701989114219665904429989641322291583341735232850074890691540027387308054947345043385141370932788217878487247151465016973960090440405786671754088586686459139736290650168100745752596626063485659771765394215926169301213927952977409036026744054678149331189101276353574418137012201657776620998798245266441088508494418932740501351947990874203627803154066730158447428626447393268924208924630144302904135534142272990565586888101413941523802326398098119346870507762468003778393026071106586803570923562632158256075359660627134174929204158225683303593099072449877538892064399810729489007534907627800828519736281028315092805455243319360156456673791028765756782512607021400312858429108710296102455507954011601362136951310088064554218392821415786630455450595564677688565325418930239054794961713022405379425737826604274712870394416511355016791762466024041755086635087990017655523385672056156161359498558873115308152397815420930115216699652881158031012736779397941181454423103463443219449529357751539666047165624463167985379445477495599304347770515828402409667213367849262014109888711210512715453087697481975677204769129592868108102107243638217335478630176513810625808067064730661643477605357732416043771531658332834187059791649773310821236175744320896190904089113806139584804488239632532163904394372978770061868903996376301058124983899493119861061690688487604748966170063286996271469730834886512350236081897229434986884672990316258366795236702019578919867860072734218955764188223279988603463847650347172385455405296932486570023994054779695745831684876398595571360842358927134627014440923829935983078126871842310025131164270434632542840933000596681804546513817298035073788887024422161756390990679589101898973845497501497796412397403247791894713637203261975874033794660461166316923100217232609145787018322077558330018148921345175321501240325576045854149084431871816935265262806994618638584802502969688096603603628559139189628410851328516211959532713681443146382464956833007777845601148839871551005190203174047341262705376233381009668228876927432158906271850838221322984245238167419306118288200280190568959302381367036210265437567781717299070140801644562415003850196975595187638309965847355128064188154463155456180110578368367138863964007379161364626300235140988943806488483050374103348215921812884051861076887974775396100797743470735883969229011405899844432515015404536380574724913686961450347497464098010218744239213625323647036649822402004301186691464625098126463437434201517795168860512421304375596691340378624409694904914837452434538163607424380932331127458118210595686834187408431150023676166498582152858097304007125137719061401711108656778047264215118529007863858288987756013448783239546961998358791773837518420910689297431795022229068144747247949377338392128160345508909213652849172665735285602447005917150318905882352609986130633736956723518564871900277131401845567812109163779079678778089407497648444370574299793121813949680186824233811107767234961144709836370724232901367380982543605235414092278048527355983478198505892688218954377737736758134862808185629247677219626507708871272357640603680946080150182658409495959809570175611017209028150423714683138266450456538074030531945588653586168151847403380924085667310966407027230009233837336702454903827911665622988025546014019751309581257917914515276179390454077387770461119136945803986184965779538382584693260985793604996581203916577323124219925130101099218453698563163284592575161313817829913508063845591968878242355956636378543367749612764093652169347874802774108201618541402221074422771997583714330409299122547339357291903090869618174235002562246115896297745934724146926446180236500902164747296780001939110337856783130574774336305126187474132978574655637084202242009470240919402476043114989513451679926390113653527445252056686701883695796558917912819365357724734033612593951145525757646878858687462806633124085764218720102079736586764773425131931375520050937018468618777756648369531713094138292823986211051412953193187700104182936779991213654081150887401547121032435557094870264099434369946635038041488371915979267903306000476124073114018362981039474153492052268675687381561060936404510358705666693912118726206919085277098660377066800413579510017770622235241299486009789899631007213673388045781054478449194386382748130749748298573313844011333441496889174167558945286722629930293268535619563863748060955401248064534530572086091251309527915243811918455876465526105761319436438133628890380566745464709565260398313107316506976629791348315188516477904535026459377473973457713520445046478718750992348393810805809601956410437617637012594226465243242269482484933495249854095637315487996005119243002164062935176041425703543665229227384345948971185239222451761374468287711933433302160868388364004123258504271339509409779860365273922991674300912826542851911357623450099140221633184832623541942044924566520641203953728170639429574082858078582837303316453068346299778230548936746820197500248760564701481399236400832256764939015438617948328213336281730086762697462267009238820980006380079493832207211145471263543005583509504469096902614494796692443576079130833640191303119217735058703261962734284952689318037264107023218251661672268265159591015789836157350221406800498139732837311597750420838799488833182039270225952917181580069318134555960284102574801709678260239411050262551846154034965249532859954684722590630125924990513649061710323003764443497809608072155964569411934017953711277642235087511594309974488735209803095236542112987716954990824098997218742013940959625766756395778661285155163650389988001719826479313430828640325994127466403342324918339946497248825227399916475707012299909652519926812034762495518409421004343603107324030441394435293029266852204297671370386962423502186259665184641296342270055855514929913835821909596365392436657809993114222524231348909704294510461766085108697947570832148525490669818816347131484586340731873755854615271883285303342961091417075405589682878762070043753523506658717063571925159454148505610544039374518301499403301334152188889387091015828993211884736880744933756252029928617558551208161126436571426533123762325672431076689582834394644223486708094142121073601533212780298137258679330391966076459772259187983732373945641864378248175273395856799284746432328893082932308238105258557186297658879118632973170800325670926482548669736682740533335555866098153310961665194182295570114346418842884930689596819627888742415542414278874030724330482465430004518097229509733518916693744829701905886860949598943380041495488720659581931980948907857323079975734873972257610897379740485271904305918545671320435698273844325005575433036310959958263832048292872537541343153637466418100183662561855736813427006879902072028537980329625967790760118814251365693214027551776896834089283753170952130557263525608031946710509523320575331113627702608274106187124923539085880721268827116669610033201897626519877618422039194442713560624924558364991071204479902292486019523425816463915534057834309161449576126420009506897316066251227978537169996837164661184793481132213246161063600196991155651566022022963452115108207303853939844201565960924035404407567999449601706544725193207348167466099842772742089353868280357558951288070864266008237533350460667531742280739934421667124640719990348457471428359861116184454869974595370047983825681956087901274335924068421251425519748271302650425345074902000763198963884480539089092792389610560464940713895690608166543327606631278092176191726841419985626554734789027430918672649202557781296337783515482716627931367898890445340110176944108012163959073246398770499367593565439461661006649753112588746269851560776143722792033938018960810513801836496501168975479615444120190617767531348790435080219912350527343165731215450731584133736647554541496972507206749130547851392594065380332368474224784190956921691361588894476369742137753606453219242982532337196174757124192700333681818625155770628814569306597988165902227308457159174994509675827329376844127225191898562368863144651823528944030627759721975756866693187601127362487881076246105576872058019317230521943339071757347271312377278313444361411785683039690079570848822609840619382036971000197033209789629794741209044049306964641872553025603243531372992507729686283299817227666854870310109859707073509117077287726435662662818753122779785667532472000906263383182409818666990249460324385565435593261808461278853291160383226343774254318070518318301626533322949563783099979087248650543379724277280267050553045856947084300600121994408646925776622416693898879910485853844264076236492196466583711034629926354026873469065448070273831878320431993850438770050980658863123317426428887167605942147975214977367423923392882985841053801442967509768351383483018694690589907922823750529649701847542049684991381307986773352023496773310730616844396162404352059670379832028860832577014663866278035923398228139616136270782475087468664087139904607662102525051115173160573087527716768131125099445381892023716864122363005313357249909733233188094721241818604025097520499475528233883518460697576461296572387750647843278508480764461203266445932037382834666568079209726303079666983832534095025457975575791294155121506064030875186871966046138023287726468454637504471646240550600046294027253229491973079295277285629113053788964919424767518815301554464818779289545001479232309204991969135982932313444354629886932577590324982765880396332571209162112281594873317097752288563051235224537344074909917906126256071598893790848841119510900631116596310578550729412535182688531375421470920826091346226016996767727557681229169627641378748580932368604359082317483883311929546560380086264088103515747018406222692850611130994235529396450962534617642727683145499794026619238524987216793847546811369612922135952223567801577062400014909130610843780908760699826388442303024727295307121785659363151560115530418179154399647944257428435755693754439025725639316250001220128052436382888317630252276560592909334517947388959782643586989228036137359726158147825453495813204408246310666017838377310896524010037312812254057361764511514232991077601330368119368672982167176785849389741205080651325585437293833800578826375928531985805394054696488488214349937925166935382313163359932719313972132714327110384617577232908709071179157855370321603415073890729339111719810756919812336414378034457897789790790754014571068630781308198369443414638496784280935899021442858145646300389552306291892838664603085598607022295138650159649893718819237241515940385544206846644729567635256616913766043121797544790000297649827089223710657213909692264651649329446131680384604764641839435551563644679839978012131809900257437665379594368241548626198150712805156307969642479007539557653543586636319765505879910034504054227383892061754959156139537566569956599566690006332649482442006977559552661126299489654119368988427448206719158301125911357800623974840551677427261702815513237021048021572444894209091447539900584842045963264474304497911912361845559746294365978984679133911567030874226296059665638051781529215746292787336952037219473117918793697546728511459091839897063815137424957132442826506394051914686124014117704987181578185305915074635515303979178184366051342562847945696754867533530653288108682321880299465744144116810180165638203718934436315916840219036508313518793491057490347906481515824704633134681336331489349925916582046693541041029124220869609800232167912619024555381067528445798876247502041146085240784591503487531537605273833125278724702705823488327725523172203082045295602749586923246688597722868468735019973970891651064292531055678189294106751039536380920024519791733614253635575761903316619454388907464345269375687496346743784973342729292161741329931928422151968091963885932555155673656466184838795031509990155887275717899657872559671452529132995231050242238942024990753607608078074624695883679556041461220847799882450919509300364063743413481355981793626844162747070324342329551886953653123906286504613487965451324087563222311850048634962410926020136397480106866066306201116346808425341838462912135229025174522902056953897062762574747832693112021527329551886815728789188845288191025920826278323940714724530119180919178588743307200849374290882758794330063323726952457758134330758114520828677345104380491855899789007954845530080042803873240575850997455024260702917849245870019375348039250682193479815629802046968526385507839951471377465138134426925539383595828920017355375867692724393978716499380139872692303998715074437716994289235735146502190756599872892489568946839388658660876984747849498390754348393564979934603397567900119727608372114967744616010865758962376399083441983098547618286334990691184333821256719716730790759567992164267829994963038507466199059418456922808605255670059790837672986338553571439959866523112875747123571874274416523511025288498637243196342459065915788098052334173402134545373134973421933415237704836557077059793332427640216712572203997147444848747857626675122513714645544115727623696433437236827247391606736195892971931691933052466721038286172237798457611584356167956050112077431993325567484687304005154420778268319926746195190059252580568553957816641026409401065260515705109802750255027767585695535556651715546109808860232026833095012562334186450244663064651260533855121155450830888094875267469622380011038786995949295667822650577272608016071953682674400478687900673466982697052446329072314463467607578805893290883663240798711206896484901392479728969390110003087650597901826883540248074307687220900837923983481034178804956182265302668028798986781284349124404020592550833241147993390169398036533024850644320523993749120940138079075873366922339997551942834779307917110919156548954822317182767467728661694265184472715370385659785916668997263242694592499627316473340616425451261565121840810251375619086311357607850585240841099296407104081017518713744636106054340533522213024889494987646113262434928718367518483838360192128045724856238474770487949031247672311832211302213192604073351198634985737444801304713051972125847291451607660784065600653302798677700494666625295532329249498631821341370459620129696804602416117592945090603589764840584160140172190871365125509011965353974594836460718262075174536629960922421559814176946345918127973006469343853048880572579506760567874178436513414468467322810572143867321426954160164421251319621158397513504385352703501880748784485087986686676000874772989697254445252894997972391359083460739058049277582526667248189691040664989745039576435746945539730053115229104558788758145587649038293224036067033302995357757441420471832511920186403187184785509287074388076330340325180461182183909991604011643581083344517589189039530809038837493810211400005457628461572458663072141327522675956759589124696864854112688566604694566052558517898906593077118312071876659588173372430903224701126637834603968211245083473422784558493024078324380543441712202890491643769618043738683701155510771735562150280908666476573472031680316406216994967802047460214588350954715145852892459343231980583434601538229965442849986371186056893390805466970879211420562279472149420230574478967974181187079042110754035297621511722609236711366021733681143642199004238087392168493202803681204270290677582047229661468796340842818494299790682027556619625451304534603435314828654539913603684491793703717869930516706703801208170546702435358489838391633071199624494338570788681273938776279478765193122877942567551749641004209038183821129901695846364185994206408801594784283526728247243034635309910898745676060634961185036125372640730976270684233978754911636986650602433838487030631599354803429243219711575597620914941869294777706507166402682052646043404395114336349642575062319450342200867508884564072618462044366747370699744233063267024402528994838459522082430926497002039668620943173255195765871111357244212527913765010796759968348146515753278522325945114465382030774961819433280234087793486814499898949771100791782783376002713313380735763698744545799921125266142983526759026549970586770870969594031876821305735543098852700423061514723900528656067399425732989559088462417037775742961066661530403408155432278137495074484284309974389974630098153572668336435951597928829778655253416853619860074803624349843677639690490964561531877206538551618938651310621691318848552334656105810207027915914334078083375756473942665500038467469673615603446833556589797771961867424336185660989101394915709891866971396306298452808696261881060203096352120378278353975781439919255757436448730945708068815529444153873966006997651695357938317473604482606675754546537231781548128959779241090220992043808062512753367593074592067032210862612577542051823438309865132172122102939001802074541726118312802160661923285124733436420385280675707209224740391963517972179919597008126494854546117489624013816967062813789415953869821357236688268283500897586783569149285967834944133709805063742688801970668858674632599379871294384765521041046314473144122486986597023463843936767172788915487919817082513695908310777661739944966620686617505707862013204929326068539330897749515713138290730748502105524886715223052830798527011252435711864990355099617777613103095221895443652959082295123367350166714862549913747590525448255452270010321773039965510649120016839501570288804908727620925604155114381305281446553120093631084269095674531451862185106318315902982764485270121092670590275157938278979612499225735789564014818054717426848803590236842283610377160990269242104985270830870117693024052722843430471454219713137241669583919094697956559467607461526590303309007101513248452914291308446953423599676013293388970686781875421504491305264257335197120933518082074866343592516655900050335598426209908722773533520795338621166453027951781921804751472127247856847918137972100874267229780022484404224990794234189749249486063192700358882655804097279599976907434163314483790951684891667476344724815203551977603541500354841310794012859087908961052013199462482118198884502952619649462489369611619938027738896910387530112888921706320528645976116501058433747039581702445272862269572792203196569223878005622635226455937243842766096860052945100536894247021646073186143726889873944076806714567958684547134718663863686876561542043518448363783940192727836381364556400814036459507426975563633797324099902316508971055417457373105447876894546821938180324694646636294285455875778392917085176884687709263006998664502489650255084636882267134344280296585775410653470622336243042901376228357924175955099901176672667101016782222004495158697851350141883691221573480272417395410253494063070839264100733423667514890953001270276625963031713112844384230456859819601566353683398228385376441873601143941140867255608890905603231811506441152680698908232278846704225987840960368705554718487297792154233253057486522110515963873670022658159145391337612790089940858700527877660229685652578971523201648366643399793415511290007231375334855578521908504164380426930505958090018746650391069699307225702027438335785483488386612558340172827292379685006835548506989637284406526127609334958281101881082050036706983586543902303576758353689010341155569148562773956529128847005194521379562821480625987976919097336925332279253783850522180157270139845215941352357649903788531236892886326500382901866379955752273013331681805434721564757490985741514176729857980236828437626831356853469699060839696217743840650285207666594636774292022358505785740196949581486143823588155364051684271860684866572388900632885245330561468341829333081814189624971052672850221725475827163829119603075088619264735179328838467911038866215270024960543739242763061091344943382083903060923367422479310084410233115100737684358163371127684149045296755553304627715698041732490887745183721067814655213671569502549796433304872191107406076240775376618862360251736367751786883494258057266133508269765693731578110453292070646922796015963259673245344307140510677382498170588032014330311742653086362954386666407925029065501165778764557944617901550861927107505119476069471237096925895829673647978482999378153688839136908990213648026155675331584780058911121501967196587390288919912103961239926280449995248897943295099088143149527640289274064796623751145838263128450344998007586768854273779585823107444627880405947444679071922084431791652588632655072944041358705958849517234784223971605751258926506695610930603749834349611619202974508123868658322901144251554283025223919892695295075572644425154867949796167868187603473245769210738372022877625564906015606949567113516752265720845950785734148073634231228816140587083946673122680135209037563805614820580355549842735629362739025643916602436003365256699374261774356870160359340308299885303508124744684857440948281004189457378859652340189586298027312155065362649131039194649068940136603870715920008328516159680256720338175489649022898627235587366089120778916756476618507877335322139266960567691471016491986900434692951462909377404982597790357514842122170838937460194493218845185704713554930969241930498982946467123242401339479064964906324138402182910645616392120823673622442132361451719644019329345629655205980152756097393380492823490576096562306832629544005040642539991526232538075492011312894842947991815002760786318994332592305041936103272602527646048381986776768333356509062994790394976382255020569177982776469851942797525468202450424762866514503551939579457097603443751311924683656611512295063904454300167972451419130245438720644329874003857124251341516673594670048997198935109800879964463531819716294704529147396579320904818812510438987604806685346965396420010291684896599544847964924354917846000007656629957368274724632082028655904096828084174162105829369912484382671893380258543447551434998512643044664134053854730043652155742928979403778495018060666125151193058046850193398649093065023052406744999103933064153251786840527924445995683394462279440537060039101492694447984634272816931827122846092392372912346649115186711499575927986529004688523798567033312121171163755387378116136797531428351065832415404291010348048997874668645946540034672430518473545662849476891912211834697451299748067993612517034400106080156029309363750150482890644173656009055726493724864716685117964649872595474711737038892489230781173250992621475204159315714892581908290965370878882251176444664155745713141206225480602071698829147580343976331824069627305252037841471622493847092828286891716782837779012483380276604125424537872791970381669267243670034373229847913362913724942221434176545998192379748902567964847513371668233931796348095245926588300343652840537477191875683541061584209088558741501454375119068601920847806049720628722890898352279776930847329971726725827162794968062651283489818002762382819039974474330662029353058117737648398474439306338732916837726599165973979436160667150822662963023088643556130494561750457822377519289461858485000719802988584001072911301025277902244397901408391083266676138024212267537970931759404117146036091746767129228174435874178028527599155708104143809333665595737261028194375619790115677669498475985423449119142911599834675788264452488881298462058088744105433766315214788487154918544363799052252215237400295015309091133937097747112690860470406320958570213819713581855761863939696869587931648107887791130088297450506652627705407127585807135598114542406617103496862103652837218877206971289970755569212485471233648064736975492211453912055509336270232305241817535832300552153807841932099484997874638497821533884855518488751300270643341000732417550085321080009059640226351332382374054790825393439134327029514763402290746273279556068280959094222803180930157398409390667034896642841975343101750671449129933428971019458234512095596492971455537567484785731360768934139412977041890891873738225700355582997338283537348845081786480351316818643134791858873446983515235431097937287128269068584883542723070031642895842525876218226883403071877594656804471282650395434607419431892315156818623976716849258090718948904879773548935344343976568414169160767804778614150294221345753058129708986560791721350904654107254896988236410678936944010225628851525567959775202546467683923860431034291276406711682220622798220929169570689958708095025079378961186634590383066234027493213154241924116452631388364794967620099249726986328658751704574191982093021406634626402171348817310626398207660809330354296193797041290492667310824958765397690413027403923806175192320050588940854114141397017599083337952496215436142709336862630587727325714458341524865925530212990566659499704646824815241657343887513971274845753233965656590843235929331988688677517959910581406794706194988943654572264552029992830492170757247499057327040151554581013359830738702247992109060070438689543062651539779535792019482863749371042200824046511248666434287189643688854068380663261064211665536948088841978012041125029732758984771988258468668437881544196248731913286706327146642927019054782416228293836390058263235769259615536357965504797522408105682764348679904945717154275148746731379804309911344950930893645515816510977330095662591284511045199770661964240780398168061541413174113402042463283267338306520202815914149461413822950788170546415961164861836914833851053133557580151876551400134910337012609039414389751189160053501847831195709443920655765848589625108543158202522378592312199480418803868767430460547088241646805417159602103260198856864836937870368712433110082962520695119942337855769328267350640715472856049289364485726466566183357108316446637724014152106359395133816831319834423135731097492531325878641486212379165636503564712758732322743214429294358038517532514053495467636564611555739666306517161019417837581241330330350937756147462638129821781177022234176468669900332948306562248667729502176849140975021747289782443329496529987766081497136382580700610969723515015924365394625087714372912210407428923474956315290244992800639234556328654910998813927341018527913758983369710649973613966563221912472705001293004414975597043881681694738873862680710674664714047938762403370244500927123621497709149044039497174265841449991493502876489376582095663695728402653069019238246780874851694936774429340645811480419339356511109985578797903953523294186413746311357389705709175475698417839382019151867485140859873794018474911520497859984855286612386073966525424468827706817442209581713806459955442297978964929642302918736548047867518875918418569550664676409136255186154097462790718598886042192813977039560389879553555949153204848916516124407161017148925863220784907149624313040777878290431634160049543287624977735770565801497631034151718279950624995459030176196566036378249668519256276206320974408662061661171061768567686032366092644331632497028427956107848164447719306977951599611206645287141298911487600301504822086713326402436424365056375569241783506360382370957846562190756717200001815273555346318970183695635539872844972303093026735384375521712195759029510739915938640229950891703255900167359452953054744637456760312312126093678450198085465736190061320768781483281011018377561175538973724761286558880635767809015209428593577661453348629502265097407728851202305181424688708487168987062500771436503753649700423400936955125588687848645271241433828887909911227992418068301287803936773012554432306269683909238214205737875484901250586395202443595876342637575226467493806408530146484661344550499397080995293266006404268900085049722506169037017789430039484161171577268833072234947359765755733624522756429775352188616452101388627574247958475155545106896481001450636882812435520629682613852262634479006424559045668104921884438384370343173290153409464817624959244485592736931856463649983693532005354184853494307354696564600438294099520139394405725262432616357460602483943648711336427263321581560471258760182818624590225882046350520770025726533730275102657594346075537181226961612565307984846070716706118150342893501622851186348598194497631165613524223281818990511786662601474087599796941891840167850889635343030523445415591650725617446588044600399775254122194874744204366306030375403652001157612897175702210855365604464971517814016113439246791670108406400009540425107229705148821228176649063335622936636865597582221226917880524763704052960228418712599987196703563518179649505762887923884965185662908547982751416604879723752517761929486374194573655314095800950954818201579365026392181257243190014418984510894127139965580226280519653868744911433566265692052092102687761612020617971869056254004418135661782209734205402906586522749908524140911478416898524026715306670462294387478501931659448802257182517883197206809787917111866482797623010563136581419756009593663782978078359126172675071408876139178826158977232329680513036333981995782629643058941998159655128309039816619699583556338756924256302327868412770664758620841878589765947182128625315371772570826619615144597773506465535390008573785089437707064074554057257307575036011780814661593517436540491205364135532749060543511923494488347706679941310964242730762020062271661156726259977675653199318377556231298509321490901199599970697481062923528632954808613949303263479583295220984693566603035810194049903432345833475632816677483312060032227414181524973942836533687337544827633150260430110643141039219841822232672357314947376599638401541917225361872751176024776799387499150572411253198367296820093775545641636023115657293244919800950111119266719712820302777191816444660059429185493741192914500330958198116136405336664566414716980119927463692371385620668094977170579871999555977451021516576938628083016631495549450381665476995020999952463974492284291038307743623491584228481013755967692307427086904699978340348095755532458754435957261700842652168715766339324292489172516338631903269632637379702531612888671793910901203813419254663943049303378180820757414930928630305811671078380695895940046410659959638924707056926590106323007231471171159545377011166600884699878030730982840170365206749236839147213370754295671581067885171911021596330160305685923043439744807682300513521823476620326680539606623260676520166684078138489717518868949416170456360252775447672788243811191368209105106558678507047811020992444826687371097243010246668578605130091149193884367090011551123221285210030906730273751887143716675015830425520194769699700136854635433838515703401374106405020620136737096446137893534564015135436318273171744133678799264922728119119312854150600013788967980113980182757981434351069756240433461991156998222001608537744101560543001286300896341871689305970224456744142733458729661847389859227224706942317466344558488603980428477210369474582362234151038965539816630778879460195010379393955894408489764296564578125128082307416740358680949466007111650957261370539184587094090027493616057110395498766020562632350318761664019007328899147334554309088461163079485780570084035595254416108507368303581164842249213455373067120410827298615870565834288472969493431080533205027834687312377717830893309584863569594721656101970173204567177759421614037962952030829938240215149704359945142250306141591891965638181987439590507834777258437899741875879036767028718272118930767773820981356261745089427777304921872401264068214764785124524690505157209203886760003407636482189256288497474105908574729979518284643705393598329798042416600525278874136599044847495234721832877428275369234412900092997318314315746370015100036342724107678434028994983312461852246578378247834461602490567687726554813948730872947257179256748964943451617818779617726426942639363090579109378832928774095762321297364829938552534234445761814191920516560887369136155419000127948526817646611146312246967722249466544132481413848743553268689135678229408185380104089289298127122352929034810305494650047355014982947346661904744875153754435721913758464275062267668127100183791740978141343927300624410615420518247338549593282401386945577200221989745295768241107098171633308340596006414736223126094621654708480959640548340748079879107986190748133619190042277353648627310222121733546886750616636985002686692630084974221273137215913043816732703676636079708307246633341556526402973992455208397086482399861871975288544820107760048894779233830961363191491855720281574288930548364347446378090875121446669948265135960562337381408116974355744535150619336891905510696226773312111906183609173812370794936892459046809436715707956092671752053012215783523412732188018419023364577590701024389963259566250870226259210734073620560701746608028286906643687550055182832160840850040624175072852005698207855401437966160452343818557940176869249733053843319726558706196138766722595226282499476140010404392237171376462160453379855323817547816308117065367083422062161073521764880540676905797569620553115711168973509366769380474417647923664578840286469816536380997698423912587083708453219901010234125909996295966813080768397347715650929336529397264797881967908535907685547531703777363431787096630670414644972337677257925983734180276858370580587184976156719694827178199981968572962022462862131668061377963219379883044573224419587791525640540635999499560369451264081013365477505948600504072895464419142203323736740992939349339401392714558461783211027152708086431799356350572497371146642184501489393407028174907479081864704513483495894288063696984380163590466272669897207813209922917558140634231118819466898231827069180791504096797698267056803257007963605234222418821330914090025701107710426690717098834281688655845775471455018299570591253652908656669843580082282926083693438652769335227918774327464353383955481084625100355907248820784300499025792126301031046554844122551744986265944842878048269313150106139835413383427640538144738338548131706376799483990484585468805032938725293977305347932168658299498139257121485840855899892886906080342909976083781475200333164809998457422067620825998257922043826015630298608837257274635876268819357376929868508359613335560622569394367534217049500301029445090653261480938776760366577547252468837247773754728331513311943098164413942628180690779344878350583331877212946279746948334135426455093416016523443923134751725618606893080911430834276700181967622693462315108891924336446457949007883777363026567217752432756248986045230875436130836779637786698763481268165914256906715936169373418097370551833322252712817773384573234119136184869938396234228786737262235793042364601019052140796402167167842637916292543404327312986285990223741247990735543933107452132251765540550049543100652074261220637900695014457621518994423580725363238709774238632932062230680355163782443680034564237012358914018631107021556231514832454735276378133412580605079181838600792503363661940113847015293250761968619174497987018436483054640451127593104905453631170362862813714492875761741526676971773135804100950424574238061754766656645592093836575806825417809604977228927283705531335881033131067571476919581136345634975064766898606769681162623482429256704587119898636052261223326064292484167503061258367596327437007056005192261543210146462240688790521054528838798921304901636240057185959314712201024675511245997407974590035388862928953067173107876960270973107780043274671686932014676183030852265137000416814885753453426383325635421799121408661086082745237272203093399497250717773363538292632722238278104022683585714634143630438407953222104103561443145042957608125346086638534794963771109871030781539557686872091861454155018831717747195902058539347376046074144590613897458863352417595784785531689120550869467431539135340092412828522176969873625772225952662638397959550026728685977289915815476119521251519692626152287306283735975174209998426434274785554418664765132173438745300782863546577830178724648236660355910374061281590201581157509611507312915177923352168845321886309201144901178618893274185342495981246743038079798455121229116445478398698308685201052119338775421288851389913823756992008761990653947538296265099280360387739176984712824273100133020216631520053436105433099577446799308717690839874293871724195574077604248762403420521476738828840671788660048260350922049255505770808236510294660557744407421387362749312263494062582419493835841531204613909673967541989814008289323608361587775672717543129869695921490932265945928868663601140554012297375793131386383748530089766304602992459979440762432071314153255220614904372463545573242701167175216557223167795404930815084095003321717709757055949558896190302717440713683733554957242111900147046004752652662091154600272529387554173671574265051847856019891398567616640450743669296652360970102205470067209337275203045524696061910316335101196739311320509842147367944258076172558326185357107661577540798100018652002087946285162337746156293047401031703694665415105108554460819963415939501565805691899328999639278016619710177590838901247117430720663998050597040742079705822960730371570998764708762919324373015602851496080981322900154640859153609126517394285252308975410196189416530306111520880631204800975977742150727172131454258692613201896014966196640668270414099625441173075162722371623346483927409782296583539501380880051984825959976198312038104798552789508997949967891957450112198472635616510990705923223445881546360859447856004447331623475212561936643035077022323497098774674798264136651882897606859866364637056789955994941665820609341306878807085285188669466253348807762816176200515183454908856275979429203850559569075080572822539084497512697048710205228009950338945715575042185029536246702085098549775920824690000441729592487462695266454758559621117049315042324105607054842829157392259524890142535314540907625208936862962623576328932818448407523335515126108078640924713564424830616794767320194890765200482725372128431406465597857617803791545178909352306230759456143781576873046876837276500107395623429934963974090161975399275325154173548535923715249203167702458811804629826669980697240667498546223684991438689295582043122236731312553320808832830669136976507193218819318677744376443282419656416357910674766935411887246464533315694528800229081069662638839502851590493957215604972860058589382202619628613898029774163093325651432316993095956863058049814524208910887673627152484172849193993114413418008929773439004285406599464368756818693872653514940778783588704682270751238392701860912081859875144934934571552605443922797725463124843380879270939986107478387164511504470064288291623881295951438036669457376659185000816509964670825150811655699787955779041587285413816471826057844660731828890823800003218437364091931572230625398526728468686451298239433567778470068058189366083810190272683324067336174194939464766406177913865608603107890612194867104313606787628219525043811087958257096413875142559939980876300435880279443557347278390350584800913458523220946181267633274991509194807047955395824858828508786369929530359546294894748031859094501493018719486737589412365964904395170383802707503465451693146822842198034326050475951864458539153878802977653455833175491468663137893678074114326567793749791468876106487594554768400535277521929519957729322225598247437570179772197088446533351736459087972113522788901656739943381109198743397938743712189486301623400020595908016981206266096119273027885449189500181462262354934537070660983959809587154944802986510483227009116632086664485011298138708875425343287278756446559894264414726733742426099397858153808483624823252939503121035209573482164151346252003365387738861571335632642088086974236601192578542652547612943710780387202623279883804949095943724029414559842528091058611999501419281947994197182366361578083524389247680823665216583318756405569345153113742175839961928054014982435660818363962199941013108057212834920739360565017774651687490803656169215012460301951509462206129248083573395031739583058704356486546007313692388355064978360549053199989476280883794073455157981346449191913082429114624379829874182964424383971710284748667591986056215726326619252754212334019520196252311469049173582645551254177674179758042139179500154544289271411735604898385925443941659132417273226464382061853954380595186285669005129218993707658069991732099330060453900411425465914718814344817253592199676874819755078335914345008156685646764762078724317774976486821899718114510717695341200430082115603423075095600456765614808025627359278655494093051576346831478471847388460616953082859516244819352293402808802129379884288495937565041333361759654480814267160340587788311316893881176128336705049266269146967450779380757317523656333170453454625872391265880942818948142874343239776065039020202606657990391358510625589729735918034673028530616518306425148419019946694414321775847355528645545467617508317967947097970157339494331112645779639259535768561327252768618373473666389852241832742998805188272042382938954982197530003783431818200047043269932464095948329823433867942935572924041638424060825270278719630592841375714131720662436748179915917275090368388222736573129544748518695782833432800835417396415363543655740052871326181685896554630823886385146900697869397538835793245017277127349136133004871047367213708934027658396751350033378029338348635251182241630792760301593386470342942738938980421209421818040612920384570888002030514954684054982291890719222374473788183949434820300078667712217798162326588292311684768637540108573429343830441155003501040173658257298404672267947612466361833629038992760268866454930147044913429848480463214991128507716035361570815528611717385543971778713439919296067066220760908869450490250837036742106786097189688653299826523903108663939831569706461198569467067326475648211437739179308230485260732854679514372896692734714491464356241839086432670814970857232725925456848657673234039345769292037915336093690053298475007654217267268980023858030374141993241914690544231725206194761279132853056937725308560167007563536997341981081657139434095077665873281077864270566097205361173501411904237617647371690367540988189431610383914605316468789728814747877021735106077684157513651772929558072353402697803455732652755376057538760128392830300629489028559242505914649607144213076579855465362363966016974546523404297323811025751394599017746487846297217937517291099676339525667823682539305497028393953302120207955813876551912638367748321768681232129062888423773543466978293772486014690896757765280867097922030990645020952126565636167646985976386764305277512811787815501685173808734869941007066320339258412449013328889728654268284620125118613770907443657806167600418936291453434585023665003478866741100891663372467618432612699794846639416656551466446792815126195191042148243012742408595124360301096805869281096109278195397558699194412843650025610339748987156873701667662254330788293860211505127690432486710937781223319427177326008508308421077046814539757488405312524585500606978724302918780312368925937981445370340668053865806787234798378971905231647583138843553506475969072869642607517836292496292888812679641559020192874797064518154679058674381370550789444846583135248072083545221105657760779191927553759167875763752308293159438230601592092488943661959367314945433669139809022039167902711928558159196762787257414739981031745094618982688843719542492421541046963276381261011137703492487878659359644299932281739008830977585021329158591188204935405035794821978275401797734577434802369915800151158191041244052233156840176001317903553989185000326308636665278948772772667448978276089289862086558312823138400181225355882451164982959129228777360463926692981772404292438498929267900476736003965909686311922752173906349126524338050709140926126256331767971101762570418118812114210472874277275646629757529970005634384946221456896072332382693209838055839110385601207006449930981860770090821652527286855431771342750861558662872148332217906609558119833914378315617384093238531333801429318527035639319224936685965502307752562035963526937872342058395988934559973973256725979177325604482395698371174808339261107935229068391074322673703724361206377331381092278551149703433226797422815916892822601134775678550995762475210049207052613342025100548477188426042340623416762084128295794168407991422458373279352802255092421544689296233512396326244471549165450605521627079164730756687573968529206452915848173802085142311992325459979567924740154645426455157041401494410318682110567361663684734621314971341629754252561473407154354003587364026887996840572304163057349618872709844590770798339567418160270023410131243054227589345205699190019336102328475317381287849156169735703027480672238804911473427601816599372250987384036257311784510191629105445881810806241296995564752627630149554810928498279299960725089070889848777809619835341026177566124508997530719064712993449634654934830437109775073550992181792961389980096583122970045758571631552025966115062055537951763458556089237513727787828914731097138356681638208372799716288748283745170117953932096735294899688426078039846492276105548823416593047182044618534966682680162268096834441546387437716365436639485542524352821756649674406951574571002436060423620988251052136700504488425134282347051797766709615326046769899534384882183871195157829463645665894495139427941317162616626792869633399562480515873451049187086136242257141483611676815600676183491558208792166946627936141457198683522831577567251467587798617447838598386474467680894491858399465939459891211647490913359118542278463863797091938190436058436186443628833028277390647807822180228393372654463100146493475854076182913641128969612624202389854790561381900967920312742969982431294362764200015862628800429783637028361936387083924023361812666969375365446554248415795916005758656021935985178233394869312740658283500355863188071176326715396793537202397859449742660215320809491891893578874526465016605912829015484123255667168486502565903671599630842883859754352115803691458497415520253578343899040356499534343103058596451186668854798748759551559762980251586737044126515052835545750836116647525944581110581199613276574211699909899888527193830338662634971347459788504256676823154759075016424929826239460104402143889660677538287503689679886764983681644781846753754630067277718963138688897775172290023207462417882656309086925862997893173295967255794136986933615372221157213073613922458917055678246656262618358715649425103907414225249255274548692010557685834754878453624836539433976508686257127621155889338958424093418480529405444030891199231868837820702699583832680739337959664490542327552582597035789585177475999704203817235088091746752405568896291692441723491282940022705735217329442942522902011277655287571987947781290881340649168167995380607344422630180828112927718403034867496700609207564177695388969370651164361406118979554340013305142378449138379235338846978727020698209345193644842707136624211637059764401540840905241758938441828929604058724676261835921815202431403297933360816628529119229833400364428002638147231821454210754862055682908157852872470267021212082184373005645801470928099641592386657508354383422778308274819711327511552805218340128391872446796466910655183384026363474132858536629748569719966041535239894668826757248154502812930765788665896257780029496381883734334290068202888836741283196635568506139624596660676850907326822810342920015724477074185303922362936424098374270203710728702874216963307668386639900721455119597258265170088755151422122580675677722722492258494665860557203808107279507631557411026199878414928856585874739604716567595124480471535559652630635535117714046953535729917437825291902056381538562961085297068955119326088790960133315618642567979645505300759327135064275386733566856052433314664881381952410083195437987425140396275996069322888305119799251651439060415092618081911247504120831349908614390592725238854656497873193422901028570205376417002220930627102818421713933436357258635905057733347073682133853946068395325325707576299384910477736684294961412348989279452135184674028279375753961714373596308136843567353717493066362119618188184717447721267709500125076264054726740186650285535112508450605498682673628704624995442130867681515525483657980198690596118351287977075427699196898335515168184790785046068427758163848493688505953831191259366240400286664993395764563340255223904983002303776716572123543979632906884032707699150483320219567790025549888412721061332170346890192217711382516050369831639645871060921960867613836780810127998009597774530592366684149696754732691697667649087530065422229332293597590000611234625602103925245724926517048155586711098305712131229946848938943523269055277723407679232202417682011883892061718664211416759051043469506782629469910546845536696503058742650048399915214578103123434837601372606304829107841561747362505407829954938898239323371697292378558465002173040497086936610357715894415770553573961674451836292626827055702927018099088744410324225271431770443284263528270326377456726793040026567401179368757058185741417900596639516249541822381463857075583687519961479609563889561649055518944039758024174920515053973795485962950526611233742331034754230712437177977245136796704448622731967599455235718998431326287990200253773910732811112267747752576258268828309728449443537335969528385137813428923085613377959044598920308728908633028696730063307570401812093434823780912219273665080930474312576094053523638744830762431347396727560973895589734783787670526416514710484805322631802271258689442037022698281456224862052044519796849539241592744247459264315310672008041059175329128581953068483731392699578163760794552795152044285766185337320951730222331672408121959072794270061255894741297336857981603937520854013701214579739854309460058300571685175787198439815166708995960788544094967531000056726293750296681020095353981517600131165605850773905339846817202720054309051180632016945209347528868022976304272596484419257544884622094967506455229616537718064965254281803159899735318637520231729275214745388417524496196793160747219497596921831157626214850988467400423244432192255978101409519193320708675611680314803104606678761600436593363607089296073944493451002316195034838085707314780134488270829198672470328856653536056754275397495237021722894396721865128381613143175090458269045413913219340652965367219045763440737419145679883977116761274048001121563426080546889659870609372750525626407383288400897291067344793826235281151403488849210845131477119391812086975931234067565644526613963311426126166750495828394833191783674051843398281645737625784979506172675280462828591049973227031433769065398960898127734038369979269933986361177250655865197140050711650054142032232529138961965226940211952061169645469701163463095105267452502219917493645374985610621810090332943854709329402322811168729335744049650385407585248742237112944244108879743638073798925509734311475238069301753283393511091505565127149036972536035449896586134064830167517872906324339085380608464921894585634224290180135697709684394223216244119148198376775152620666850832272248872484819003492323828699823848538981954186288318795958588963318850397742132340894569879808990587711359524421072496986365221089860713557005176568207414969358902774683869271617532382748562444272358346893342455002278641952776912062126140086003786664769753176015766288937421917862744706083992212029500752581570638255466646399621882733249029635429445299312419127058120274025536391237191489305282676055639466789641121267915210842997730323148612189723000982062908438765143046198355390991857643733571614172003783896455851926251880518111770962375473314653838384605849699911284440183331669178714803039422197948631330837002832361016049359737665830627709221643513929463025772939926648011697832720015930938002113229337815331147400106077550075245030655659421976652648140447298215765586643163412610648365074070009661443579893297677203188758546088440575107368362476769980902071183014313023472050794288267602332473664090209460827992986630979520641791742832874303826451776058100224661838979887112737893020972389450112676707041185204772253661408992080607879330609894562400246508311785316303743168718441162246834121480966848293345887160324725597194103249068275988169474460589272896109950305989022186366162282801238572052099835208147240321217898931359438187125212444002118796984212972714091659223572014382464771943220002930932692641365766634462199333048229590726159169687973130123235894440958363974178041784333104444455452718799172091918919687139191771706774123865513179300557224981323800713838267656869184155896095922290405054007017708177150161553795771303387321208807864945495236109155350433099485261345770132654318849315922285958445534431331056492223618061885677002453878774706457673411467709081176354333720887223727002292623701918805407977438720980302097682828500927753863012593744253108312824503981672492270931612590217141651641906320246160432246440339569147539739927754157232419969066379938563911686303387183082997780823993009093812461357021862549067987976740933541820350510498347460116775044094612404288278487233673986714646252508676753029548329309676425407109203070237454649547567560516798835353835219860084064241576332008890680280878490398618481560098740623523094655855209677774802668033596480023023269534652074646345975074388439869362596750750412777814081709690206390355222261021927788122984378143069481753280030027008023247700986116523663594150411117559328619834463038120828070610180126011976766307138604193024653133939491555871392933649018643691811948544578684026768090346716157015208761949087767770444469409407921175945041581794687149630829960073483689148435735808032531623338007845162017670536259148153628314221438583888650309301608637316367691089425150011463384780995550413657364982313137768345753045362091665244194858083419658455219170003726677458777064182726542308672134319295007724297066599413828500871299682412566481060739037055372367457726534040481790683843803723332086935687009675940617705520011157058839620213624208108863594370424969975126842216671666981042883791014222118102529738809244157586819006171701640439580366699618196486600425574840395588803396655186863470867822286736233189963618716162550778358142235472898309358084369172786079762306241473831404788606665507252700605297170644131332088065264217296948438111432355497797252941948205080332154248045881587366389235736496881397449388877951170114390934217950433362834472558818213712298231794973893640901440670981422088672853011016833754713536671251478316791012275368005734779904503513655238998625883687851297142246758445030718742987985017757189727962508911042223766275487721844899032711525446930612283016287784455304787744458226400594246566619514911760465643663569134967507807351741162090890085786188985608553834272168916074491495296402673356541636022294394424283239199756038445751476015903110166025947599178718182555774839392790035652091876099090257696272644158924007714696667351842851874096294568006669992801959972812502235011158306120755443553419547723002847988569407335664147291939997369881127325214535765386417605564830288062279564636302202671340446105673602619231118909505591014350918406511299518723974724958654585354393119724470329545856852491407750949721918510527779987446563328638241044474647980973113725971003048853165731169941291170383991508482915494665088531249850001562450139481018833731022573132430327573377446795849564382157806376233029581662029717710932193836643856401146687050440596762326512983299789696352461586494067941905832676942317239978361507340142557560388043944753302685588197124409276937840125190297731207891385845566255328881787363515328649406832907875084337584413795059015912617075378975977323576960668599948844940611574442737660642693340854546532745895396809675493467505342051712309478870806143300138881830182030530947072735084417492649760593070373609376330965890775554702878483901630675860088998949905436423617770635671821526942424320113516753559132403774273276660556435084831670295267978933456857200032531800976169663246941669075493594300333263606085766700568013332751553217753324000564607948374120490459061071140478777314205106477025070127257989714634895702508917761999480543400892087449916239137880052776841524959182037514591167193680009504476823281269704113547025855323815045433711395335946319132173905616706760091995816268939939723772452741368433774955312457683192917559271293575550217828855801157446436175421579444794426471998950558676825174090433343886236243127410686373457722596336151663353345589665928654361369748360301209710880307465255805411783335453567094444424304008349924990827974265435441602495740926170534584986754095716545234172050149171110762635426843706970878561052072838527826651291833519503046945858670815974643581257237103502328866086233742370326764672297394711050665700485575416780548251961666453420309401916974744599156889366668536030073021996770025494279769993692639361078513448834271268785703468475086323586244720769136912044872451921394886168859095127604337656281607169121651727281786927754246370206839905163968378868194899050784653263549468319198506843709523045223463651582595297516418773758703594188044521935176291533542930816911078259241715799518611450506671104583663908983656634831495392389883227668187939763394659577064828597234530655838031509240807869559802425412388255844673165079028353291263984655488965377848080899566639867867877940891423922507682298497798645886685016455154121852545163900723023746524012007216985903708867142702220505466676813904501944636469386874187518366418559039939825548747620875267799311074337954386174332829322173808731626692549077702495339753748657409664245089476271997309097973992436964092676551368656758385677726452831955845757694714780613158097737186656896158341753992189949803419061480203875147679837824670893350885052318117191890766548287148982887353872872482307300904836379867951503968555965022071212677614500594222784662144542887193574942794100481949457590595966087876445511174935777998101751818333984653075217055473103087437788885165302410152072608382720781347061576744052840355139772451053784194218681520056956315120057031655687303129410929383595848893481058282349293983678061824332514755537036110408462577744519985612338840265415956949405350950648081102502413449924791714331580931747510930044241649901694027129504120266945611891572653994350126707515885609214215938387616424842360176031639440289042234959893104089998345024446469709633265602548832265112375774554484514934269834126429060462204715620461066820806240973781715610103290827942699909212530331776028567301642762226569424109585288206352704005965429186024321753582092831651684831338046549492822421575530475472908168833906754758537228164423081522586759945752484738709882963628814104484604343896989378630519357324051482203351592134156601998661259394767596859664038074456380008384511000062286318183830591309135532043199052629132881821406158696630163736136612460090252363923106897788315855396793479164138268114097581893875375222093894840485461755820758017300430946597409021957944927521600047284289191400890544174896290961649028180351785651900922284904349930741251641138592679879429032602093219981053494822304813682457684163212716821111918384960144730703794285736424795089081749784680927253666425040069218755721779573178453060875256432687224429569005487737476611056879146240667621050357368447102730454402025102031608619143079821337754789537656903194778808453246365209885908000329725823691588471107639336164054697048039399552870628088174211878842689962833746246435961325282041722082106802458046853874060178770760023791907456701063101170264623138526381100842127728727491259703967788903363625914713039961267491604146888941999931483499029950094121415210381280052489495539822702072627588004210495627859033576550029517385017126652998921553044822664094876645556529803377843547283772550169899140619504273727567910813131791834088150583269760744903334369198578721512947435079751133459856308128896855785078645928161156927955718810439401213225612534857631762866020820072810333910583821612869003422238688082495469502002309752849589589415557737046724723172295595958197431627515516823393695277206184954667987084639521061093815417613961720582314232486280559521132305743814837418188539244846820086219206305370464144949768949269567515218938384968049946228359131832428156412743657968031092723440396980318336239195930517524194935032526916077638675867935784409437819247784214260656852362030021638257489776325563056576109788788810796891439803707427758711812827449545623088417155245011253398120817129760000533499379980955581984847124534284459479624659039809702148591671982854135102429978791208187470660376675426881317619070517279267753469765433562652709342849343507914275816335174293735931518987959120184471989192324721675481085792922928144293284641272457871037667517379337582106327114204830279716161139575676534083492883134907438994497362017419869623242726499056476266192934229789416024515072044853231723073114205969295919225690465052825867648551240122770704893456420075369663002125613144387265639765548997364891282367624751727556866761452813706104011314311571486123386284035345864830893487623371685560711289557300843443609878211403754149877762650563556193674113782436302062240972514108262776459920719026438985728324254230670936483265552474124012871178303188871117071020596035275189859722305167443264055475650939994343136953309019631807864165518386324304512995013402559072399774239798564468985109577394726764291814243101975416169085669563617587941712148266662201417258864112818159652590187154710034167709979509540880565476720308392564534054738106657589069030161677428422042223701857468839132993064850795199708094084271715351743726293338351657321195513819824746254674668425990518605296741756028754206795771660024529491853537465439528641207036009802768956712664096681893745265531616070290412804037186807158284046395967478860368893589641956823021672602417817542574359246978629331938164868029740063504071749842810215347823325113402544380733585628473218141056052122093929047737527937008241584511592082609067626191322430040594032178446355250948213309539306689521912296885225077405963847261600774869666404848405288658310710224523523451883654094202750623287641165844319384930613424292533021586544164618397766882199008435092773780035613702438963071881470588574243078387501171732545602427751792145320933244865606065855788083751860085815692040638059405200308351658182180715477617093510186306591246306423432880367610748578266636557210199267764195491316185147790824786693266282997036705415918560775502467564405383529101352516697497898285966766094899457832038768629093735147258688917519049413870166359425201199263220545365476009455781257355351441462640456846227104296682097325531628881446500039378831768922911761830295073219347870411740556980538911335463427959109814870148343275445037775527713661794171759128546932707002262451615331007559406028190213120198908821712721073725132515915789969033597003415259859091470753992396551776501954820774698150075018342468699865556754927306387012155137886453494731487163777121662260609794692972611411700981693897676210968557439839463217268670185660114565537673151187362474611195728594667719563503966675405529777985227379414578529522840093590434030540690567770133848516366919450746960654542770890205996448419427911965238298441338270499406221986392595185863067455856699133373793905765127305696515537432783853604057117572909881555533461530685941137155593430765572396047385218975460726302841203674348728319127375665923481245912631422131033936269482238518002740153904988165836477398015742973819425306592263154685650031874495725134116409397010589778008164909644300285362627771079962381808610819567825186496054232067499697767416811183331978869255618535117944479453154389053674889623972736997287581947993689775949036662387976129343108072451819081019741337751945528323440701727184493962932931255598698423739279178433134910418722120110967766454331216429340081790130019387621460874023697509420094157619794470506673089210741131414598354958855224631427666893654430047206225451117938944207848962188324627724194650267386691790658716150865186863448969786034751257114554399647010587936272113924938511416809905111905844996525963611413676147822061406416794846530131046146919904201237309003119839275727786317732419102418429244680419130641955643459220190145472592133113994898940617892211760117003516229529352330640267938337795932571919554555751955370116484021197627754826609917561234712181311655107122996266462696816293475605577654077471949235776120112824129595846836283012270403000310462625567905287479894207246156419180662239446706078854355347690735099403644790762394839158313350809977943184893572286907301273591274893023300081077388898787253699823833601842738199483953346041595315952335581052958832463486848005812707271639196343658798856425456580849179685330003023997866555478261227685690273856002009835421648335236033139311302589077781109579802525293482387820026093803963541149333076839399459346073343178997878591131833833009024191948672386668153898598649698692758326001557651266851868857083659324193236602357447351094569145606087782502433739544460749267608054688988360565535849407691058178534469776404939065565204231993446020732116996223003096283229803192827055253016933475992896824098803591314318749351020423012758474514792466529137773714739246941158641974092594202425431143626898834909038254465187312049391778027440973984208686121298725996422396802217871068886324242224555343939718937683210841411422061145868262809904497506081890719786232256099815781024365035972865999984613563922413520795274514914840059005784592437249234601173685196698536347810978461141461618796977149075948091720153387519704661414030018003341840730606709900496749537141669315475835423673400048047726759480321066020548508306152382549592374496940807810851874894137952554587023145710133530166718670370003686298921358292975608773878545654376126228864700867792331204312625645081760379658931379634189796171239993879981467260802809841274910645747075727341994633287049630424925273146424266116150951300561766632277677321728770014593138019827874002847754396445629190553929314867557457287810952814942847319790676182748198838498020973635418898761114019925142135527354820562278506076529311976449845951733730054736183409736222934806897824173132102128664397874100197457890139609900665078210179084491135473910454943966334501213162168640945985133543783865906628137165753921889388834146037994728965731564326228936932258842580743294960107415436610550920602108738803194800684935091381974871472858200595314113590315414142196448444893201866316055764333041386991057299801568310991166908672784400510586431197007203828584812186592807130857050749421581115582783642187784680176955519201888206725776298760203164864863581472269377440785306361438827743430005686623510638550109965378628530732876639348696378070360643005638913483533217082728097164290208207842570844490816920036482558153161533827669287027627290681709216263995957187245104961483030422879566297969421697578202371058418338392455114302510928343373297891091470075378437515411294357746716257287172406388086025206898755302046011239082232549392781022052811925632738645428393937188929744576629793998317315172324948481817842603815695482622677757042612385281987842825328840196133038721676413445388444263066974962694793622720148939533104376762317643159936691781486075338814974972932373388998184954504183550786822728690745022593129942577420063041291587380714626473320511975331956704750317347679990851109985512774774693830710029132197268461877533071155374817239385431561378057995414135257356970642538903317615580050301234193936835421197424060487650726726680996474786714847900707229831757854504182363907533628737055697018079813217636362297260279141510184169109095811386413203590662799132652707144946249737096168764769457786717382860048592651001884130167896027379887100744144458301662543653910553287085481829386735265083551753006404658935510712652100513860869736677697462033228490888237448658336564493926725176971142485656801701366426128456666139473014723254202222129036581322173164588065136604173649966407448538589023525142204263724765058138316274315882693358428073734198178589705997494464386289303968363554251629804386698189553142016714369757115064447344081343495847585684723604853614612771364552840161971090379440284127360632309788269267794894494314301376324851553226190723237245857839890146996879475770434529676331789427497211120386518996507487979413272037760067011018868287392893340780085398561452467833176525277530051545931991512812462587511642104477651724633134009886821306242364626147154165913687427016342241377915897570328439838100783898888721379812862321972286905816848548281534648687308265315634330047343661124461669283937139348279525109527072491224959265806051812157007879804279982662003074316918098372182928310926931572767313910600321607284283133739451359729047610655417632255453344370912297230038450658898011827218027599570755412852881326692726898737189421565165441008577276421311735531692274766537465701780402472910593160263474848350252766047345071707294386409805049688849144272675469559333346163359286978961190847632114812106720495471228928152851052286477863358782878125968561308640068670542365133764399366002841833111400083069455706277995688111094542715502217793461002037709365289893148535868976319627584246400384534376602304929425857996660465609519815972126018531174461000854972917365652764318216150593626854600344467032888466282247588978629808026306971074395217333541471016035609745724327337100869011322654669253679248920636445249827737405750579325533797611387815367249849911424356790463602817513977023613539579018972048575295680643215518755686021989087696760348465039939183396584171156704412315299734747932825246545991873938896501820508484528849440068908779960952099362876667581738040257344078758978312824449869467587612462867899224986874756018626160339978817353706731798767138173192416749634448256533116619293057266747920632394833963947238661739418454332226994967046966517867340607209203202871736666560591927675484240560223036264027441994633215574023689430019225708505273098758957987474825292990214146567711154035137652399653676903505846292201706935466940622043607266718677306324971052018791619227862163900605295186873641349651869471756831949268464472936729866966169051524687627278123912525720953440204969579440268915955462933408820929174649742217202422046137314655258726378352911220877932110430182755289496751238589619659521028119057885030938001494465204012606490293409191806146042309678413321544254720596796787426995551764359720277953004258621653678548749043743923989702642752352541903523101324140975740030642092112586638836305097829029131719086006337559117429543292929652131065161754763437422089196351813768185456668792288562995344064698640329993926241491092868336626394195925254311445451639765620619815487708338832930333069378953168481668861760915555324595891602634297685250525771495156018908230140043584573163678953647436990542257931008802139128651531371596613998061584244990645552229802580860175475430944709261619571438493885313786547931351260936094820514754505484967232701655600170198670054394224982483433315050150354269609601804497860108896292494981347377173108536677998132311691295119748736142038347237968751897579472256400205574184057170555729756905857689980118973466200641085954391320587763452918170343967020017671364381282586265496958367332881822608805226572182154842409573166558625543307352410073746113850927851914264297675376109112155449267145505328318953152177042338508350141598605305867450290355924526315298217179061790036393190338327228675336709640662066852840977808703793640437931454080346573966623585460523158487037883745761660326876217882965529692697084092918332555688267233860434838649512733268607238082278820124456733428750955028390283108419054096680625479525935128274979938709289470129896668744473869030107777651310083796815535839181882094074873558061985529612184568793122809688360020279387273573953598670030621527247613466029705465442959216445824743637029482350418203643326640335991460005247453998419564509464461887740512744988006002711131649681571624908316210987449863608760411686702818291876575349177892820166424922291024770965496635890390094189835352522278342257060385378053827089885488137448790415792043922236715913519391909620699927914746099995888872935034432049500914378661407823603773544935184093519222705531991062395881999164581095002276055435682946161987311789906200378391579667334894384605222049532880020877191034639581114884833986345357654566749996455059536695699927723663331740948495523741021573142724822560332247605115041999018337051973660381035420512006207350156526793222485958389105003057982800546975736584735933956753834555080280679261854975121252683303201593184614783261374887156228948533759783400181990579153472914290302834947545476456935111226673958297664965410084383913899716238732486233388067541551683726729650634625597175263882772994855753480933830387886632789794962970788100508503901376132709474558243694648872496275828653385207467285424465287758301341925711764637319392524591724890099480799254730016681077726289332448721538306214562933018876955516053262581418409646277351032377252118645320063691034209953933789771815117728921775702241880218638087736946815465506321202226471776103873664976193793324579063896294242635775534961888409175877442564715769900258337740523085011376590924976683129329230939407731319024899992723519975449496543444750318522942008010084528145085262213426670050767664877384129153012760309340750913279527134353052484658240667329224388670200643767551900772991665359708298557542899513097473353923750995447506052304419714981294429337995587808399809837628134568478050948240772118791943411923988234544001534479051168654308182451909458988528841198154003537812583298648548764047551999008929926913858882687473014763139455791411660734716050236567641260465663675701553459621359869488555408066251470538973442983819334096924726750588075407366354808677683064993549663146570309570300036932032817659993283067243498445991554041322083589938114208638908593117974219900011453413296875148464457769565032345083106739976653993745507822366908746011315044922852819912835564838212926374625004746321074275241115671653670168135679759881068266154831967306542047253825237575414602456965948777079743021477978427457520942829061084308734756332940758314509741010976619462274146242609034476569407503800568132182958623839667895386005581106486566294598822619958759549882474392088753832682391831813596876141176562758632912381417625553149795439966112487702595463806424823535484863916644793444536619067311863206553219812846655431105532193682393869343013527889817102535424449293415152725191277876324488553070595495896305594282893816400843146831594368466681393417852350793809982505519175743049271716738329949779713102931020129320810085717675268145504842071502182914071723480178300842514505122541870527197363847441770641280296658558589874922762582008776525429516658378586039138140860306946144758525127853881721321684168351038189212150751537366971113687293778742211912675604312434166567469382095222616343532929654340159481602116478684347997645774985756235872126646505799048008268654493297101051518203146994017201020040117429717244230070545386544979158325838639736877716197092417001573818412550936941988689688157737959672956034356965093520530453400006326924699428381463805579148955794972534229866470467543346874191740768062435037074745683289766585496629438507409185228462167813734951408839822878821719828227405850437106072112726072358550262661857667690295527220683624848678167533558909829314813020148239780189219584342359322316275775306432414620525975009591048256929494229396456578301186741635154668662646219394113863739504947788777024180676768535803550490876209695464584415054747590982638205274156114449993547753847339515550266815737748598358132347523948064290935191491422211996076731760966076620449063608050901918806453184478090946389228362137611113030669963397203612682570689226641599781307220285746320894704202951417711545854069260503580506857537242592679233697914921307076426508256383125739382279280234175423472207932537225499024534972047006293213913921303225165577580718636345522582937095859739463446440042693577961921646080321813587279952505736183145915969587881032106662701896122795877449265131436397689213202997056973306095247120708442287539525656749876059110004888043819761760665746361045684812736585151151867786370559993936037706432472590144308182095872515458008067277853314530471450625625909107907799744856565085735126602525306900329398416579200682464722529229389641016235035699904494218140068778400580636138422981604336899348805843779162688020214593245288403121977246456910532500878204514008921007944861813205145978019419033204728631088988650030491975520845982440211814059866119089535729987088991638761759677052205867500372939213614157809566910431300265864829076466094979504339426902174074236058038450099805427239010447096959960572405527873188583008157228614113421249470040926489606348743204766541451543017476146981221144650701291591401879565427578426447096747526511154063875171678196490989924829432100099021649979558327562420506149778026518108765758662608941581206196794439338016575992519379958454287287500736259209944546389365887296296052253419366686394924385865001735357237955419464890126481913426742943981463653273322284653208618013895341631332852382105615478350327834895921202090894764856423759478675772426152211641396534047452183177151732469587138228950741310403310467841044651883454638437106671845545152909335161711471056941572576121893267975322912020497887305316357890107816386209613535460218336440915071867024918641793825268984096655715843571360931363067770824415113092745041096685823918843191036394222945952318622840068649809674898220141413750477858111025912735961556341421280318194385648365823337356367493100776118468776119209902914382233036063854725526596948440473065211120543063712580454653532980271755262742631503938416288858612876985360946394412427087440097578102961652806075553536647943368777693921045707132447970493664764138300467695130739416482286534371419923026313727899706954252584147068925913639726011827055940515487027645913480047031727216410046510572168250861466175828073453782860914148181118861071270325708103046513074358512646750493794447185324161882978751346890739947142664216551164288736219657688998353331898462781229827599912436391314214897834876531959651735911267962440340669883793652762189688245685156070364657545286771727196260583878711491339180674572089133601382894959940780736216601400859120041897016886950416693010029124457456221722178173492919486036234526626831556316272759656818295299093970267844099825003179105834876033995731568959449806345336317638324258084133527796127564169244536737655502007936062168763431285199389544135462549701632001387317044452092211804263822714849904229435721430937715075589611910553318750239593013830667982461386622472600036274214327852904548481971137349102642950487716370303289266932927591306207085524877405650186847993487060301551455791290370400649564349688896336880592641201065897255676102615034489148541119617812243657903839010364789468684060725113744983571786775450176332205144543756545616694941614832776912225991804880590607858678651761080371807002474007489094204949674828008762887163982091978543340139960241176732637056933623880364358427801946510134970884047879831592966000352338160267497923466957828461374128504354724428523225295589736352183139715126040863578987155761183397587389308733970184780740195730361645091973307257849758207897834258669122899445705475339637733811123815608289899333515722879480845273620467075508168185382368965425544655471303415018944185484704854708384803084548039526397856279661210359693235129681172459329796917001515662628351368983928673622407057796154020524239391509702592607027490265331250950710835139957831224343845231616785884144513614750469276252272618988280209275190559959164868017278636733333204048375147399405495186300386464453801788396389106485880521458172762334031948644969238925371630403453668742515387020751884749482840898185455507551765076877097956216086695270087692719458008571053089043265672560617035175324451350082170939705364372043855804363289262425919115562274816677527741992704530903230742291066543845482478846803821860197059730411421601424130409870169990274115458129533922610474986793050751369578930523329195613313239125531138098925640342949396987796464828116097540620961965771472023114375944306381508021319430927945656804524663032607698584774761183412588728787217502464204264960443395912815806090891630252076891165203979928771811674393913619405546646438098409982652519642802487072692988554171635765718094691586317426298478092984387303952922468484989987599824765251100002781618334922950069406611984125847964983001818336887282388673851264251651787097392430459331156638584921761831719362835350981704895922696818029945286864507813212821801811784737926867765554221923460680855954467589485111649179652803484695926447666751069776238364598700583965815867522779272022469361392137606182991319335424271776878275095667051502581135860930323708924604569028934969436531779820191719458935290918668907225380910995629193780940473176614219079102582065528419918662400555154944237771445437262623277412247650033169584119904212346104198878868177755243322998268972546803589611551825993973759280702332999057650446216102082317549841216178727361104093851418645582718386042874622999210553718593765742728877003338858649981864953194886684089467438743619096035772912755942223051266200860499522285700335033273229127468436059284101444922839534146046877380777451522117265730683304502070295475109443773877407691289760579279255293526038001930804724509927560449295331003202081621819348114352361428412292147179639603660551960923850675284523353849117430759883376886277925439815309678543340431814912533128956963939526457071438553175019146758725929390626627918825476327445020725315923162048014863143758388857533688074563306233682371525061396547266301166682792069976004880911116299489152001089365637524400910801282508059016815363858900354287237333162425334916375840305418739660220306411883543083122138558664795233966375055778940750275204034414403505345193157689296448320844112951030017227433644417578647326700242515413148740194724057552319749474791275237578808517379042773216626231720802727836359734181756014776234509971208632354892076366451704469557963694936881772344275667631196855801275500533991266917727132293259772134826087713728653395790903229573373410615403501659463438979234629464827491147452975091794456951933436524776370482854102837352763081591321200789658050027791253081353670210746666000449348615482844936693707563173507215832447834492318095908064254156554689611886464355029905657062454090747378375355816501667867062971456065517924172895803368508509998784589900850380555451433708918646533425820625495675642344916624665473335544029012913695096483908723925144575215878775015092969835277843885113511441949188384443763058861235671594148858438003198761933370928546719937857439920116565108287400941066000359853515395018404332418758330280288050355289335867667269623667745578660208952542482704080498381919749616010012074353710163335581985596397407839014301439352505987232844589804458630181662575416173224680300191514810580018619026835782685975666426385846006402509343471930867502512967573655861525791234360939222368908366957279474832867455324586617772967648342901062754054362852747126447983420722458167844473406223062658067842269277425561622468295998331357265495137431115346664321687093184301745443611660415635742178974998018701658340778262743676129140370765605902093639282860149713263566872778446478184264211986029897298614176070129765927317008856959737162199761759093392242035108625030937253090487820148172001494056364944004782996600243673138196607829409971345255052072435218615765858538218498445722909393770778675975838289245811882221330491333583925835760711510555387610462850166248685195745877066413248868134038810571173241947942063502766689557054110622454067543243725182519579791698068458691097051172949461389810184083753572383221035102668734890409234085079119523442497371355385505686065753957467556393803753288422543563567191476272398056378441062454116387498819505098535883967090954515033706849091218134548459174011704190820557991252844716050896240840674853929420537962893141076150564645292715624654220115156581131960692777571502949879446672254573558919613755184519024226011065566728837090190977081701858308074923322902240385694905487743265119499194464937546192361416315427278152096241994378470212484879974161524100699855006956801104623418888124188871704407664386893814801482356566240943003071672494510789041643141796139817288386987032057455866238168972453762771402711279791325829056427745734171357797070470636600527823600506036053165002216059715478543023983836659448306565290452416796138264169386825523598881909752266555781313654208400051671884941524305170574141700565047094621795608936029543736192211246357666411664164160390913589512023514033850247066386703967303299944316118597910927793838130604172899868911139625772483938835930449227572603085663932216096774597871151347969663952846448398904443222203594300162887107017809571261502289865840246731198905154768260892532213951267359827971143267536467994538462148246663247362748098701432651598779140071851228054342357904227498217798277847804579259580258400086757285169218555097253976327144837408739746399534751285351745833024604836553528423931533145959577716691944521531436436286669231206118347305872216197563298660144494428735828558777823216414908515209817207913115073069212814034527146543730968457230761037581223781639976842829833991306416158040268237432712485381813065414916088617081740771119104423759049005755171150617994779197069107772264921286658236508835176155786683956151407756348372685533312620120667065622017898524348709755843503765665342648701629688419545880110574230914835020035909849690307163826929020075935899687854403602148770622273148805016104268566740459034010920661323612090693393035757103384249250721350467929031155477498608326022152521238487575793190699340983134450884213898984204704140619789024300560065006910451204682806955873820516246554289289160405590809050620129507172864118550623049591503668471126293701694535478109731070633364834558931038417303365444522304617644956551335184537011148850835133779462113715814064542220436160412769438005751955003325440034852140341518760551527376486187120842641106849879283510994131919039192746623183761982280259687031742418445025188928247568621760461161301502029167776865029474767045833629267955784907460330784494224960049003346492890226242274028837076047103985425920452990813163976344755219502431467408598583489695788090354757588713564202421173318871797063742765367750808549090375922775572697036161797610564000237339195544645675740004611697464909383907582340509529139965828413032588964887694229536956436193780538326081099362261980633748251604176170909992335748347677122006849288376888704362088027124281648240874636329809881561985223312067388501980786718802576038876697426127257963108495099985750938404196027511137085858563222278545626512297782545742542147865407488512426521353497659899317234745027037495849652633807990446500010453450306340982880311994918886415220229702399909103079270605215861649843335384189080504673343915502890399389644725655056418060250429327357242281772455101206306517039222238951995436981997340497448019726087368709060384418689085238116039707628357826915720125907278767571316759130690268309522488773562115972950870744126677236195892119019436636095817065013215146495858854974539480685306224584805305703069340293360784120088149476231049260401410983622801249357614745052039269796737770907296443500495924907833913903172156510509668847626831874289340519526779314712855011599346026104941366121740392095567812329923760433906820007156043398035117135391364797371412986083058803595570418629526642142374905269125807182453557117418064288308951213117115585706592986592006915861008272214568095127124970254251459879095466729362047731205891961353338512727722585451023366323517520702542997756923255810054341067126076193918937701943637707088463041408160411733681413520222062765938279498499349479894250622249091074326355402995878227979819531941313089825962789004625005364441069886952781436246399741436039869618052922211899272864714667827581071044792968939073164026056780118752956118938742866724582203590488849688588930286583676140663668923282529931607673160241314757053311532566339150308542699904340431853195556677330618254079797486607143864658434667831414918358834640227132772743926112982052969801428070567355998329495222205128295532887716331442862069916140450808914912574956988376677848302391402620881146873475363148527289856921082923989751083652027309588534985267793108611657845050597254795034605784740410859246404231060685019339036567414832820326361244909363236867683950287059159940581824174548005748698748014012242905373523622993689922486010679657068027003398784747359947243151099827935278916860673255059504051152271002938012868533102067829503360480662561247684875069897066342360742534917880245096261529348322313653038670270300985951104754876467045031332092111886147881260553512545491902950601933685210300714679163245856378394002221262031291460796375506247819781823262908993635336877706810955405479807189712397240616647082354527339971387214521072973664462696372878862598069172201759037035281626077830720547629941614257465609837014139788477649338437197670364583978163142477633868169198035830472668379970681136886448822441160145504510624784517850975701413834724702850209702684620310814525256099788852527823383873854347714347992299540017730753369497273212096812378101543010513071022356921136992073270906112828440480680748007367699895100835870632384922894771380570923208264487698021141891121444901576953435597945022316404564987713588078254004733197100845708876985573866266872352907321865746357339899868247976720011176561312323284283672819562025533592507339913953067766323784315016231800657860477498044127928108861626243845370902708535674354948424623453318703517865611861968677053128327203747573115250976953851971096857655314282153218279218588500212621183362054730876808690220739860011750367612370337122735158864202021408914233299788250634188183866420848689988169386595518428358030139419532113554290094107960364245081504300109852147993152122409644406201058756821360122145985818711929854446655057377094764595948553897570152586142011143320200114942257786423051107137070878011687916205591534112564281832286875031149093398838136178079942872225604642276133655452969019147980933426449778435336911649047298380199231138769130623882846465267043107214894215527626505038881816481501459469260578876101015588952469725766723784708847372787069917463206379959322541504703910674720660075864357333748353799777608947733188232287443139583800188064579908857443059418599198422472093837977570924841657401590802438488013157691950052166620597350735619234194171422961713352989469844061614392422590595923636250675660032255804409663309076709050155620265618918779206846540844395995553096646351632504701802487119225486521533476857149357072074573049017487251113925921554095065923983955729887964035419812233645844958700920445448009947690977343671183973049579104431738074920632061154006803286195192828177534544990445681402899996921621937099941588844195320163941094827420019664299361195373947134123024710871941798160082832092915774608501292551051709945425000998533385617004181948514961262829765278642026099906592880780611794392326616219666906275872992031789083314577449435300643299710301625556270127058639167498849269191438322885710831285579276522252672403569046050346821005151772844110521029116062581152491480185285126411898225077092475266559670819244724682483376732663522814235881362442856279801532620921019131811887959575334471633143434922245042029459809371862833263765110789863125708159837132923516850698505028394655063789435425467772156913048944412991994763023084952087678842986574612084108239481877499018336702876544692888796027495047317521845447338695984654250057864825839363147117893026641674713118280228379700218174743933757091448251602969605917646243933214994440718003318395851212945442840279373870929882328230375442431614567446399148911898454869614076983672771644480117330259741358907802126425121820784725038292936641368358641037325387339914212025662016383158613923742008999599224149853207444774406623892833188341409078341525269180045395846358082417758801691656176492934493188218902682803773961554239243728901152715455167960329660280505379470249783892268071643174665200497453551132728268293851267584280523307430704922978166104694011510163328330940454156331409752486062195057611433147843934436809574408335593493416955446797134041939733737082722436449953327985030412330538194669778722301754285767504488610883242369925811335533829717468852830343577434055685694185294470716119617800331881300631257118990995344835999705304035230375238913859513129429076037854752133578570228498577448130609159813894062320443701618218856608744780353273897399453804718923489086176737160709572216826930247592044724369295446345330327410233730776610034404719146277362785903147696831195032971469040169163732274913949014242609903376202521869808366258554276115191613676538076154230472344140300922287135504728805984525819256104066274121582746430842075974879301416500461976514001338090433098507151230986245471317294567394791156777827136323544274562303412333833328844386652970323072162274584987781908529541938869321134880048654415051061550393793691688515333878844436606269455847137084078708975065655290026418879741382684341740012985595275576854399157436363320413968714033855032869536434337668742809568124807755123433873316036980218602171317361194786002131209891451298960886642272404498494247869534631701740449224571942550339395846932724656925360342736979809388096396630231662751388756378301949138722081283534100448433706426900913854358934674551714424614933406862949307634365889447017432646967206960877315755150720364881127205470883151159249532298218830117301360798950649676642828873005563553616397529434769421166726230586811543118012629058057929607697661363407089221362300313902707599934115199186023676288607545337795562263386554560848908698319348825508907494967241162738115252709046425261489944891137107280925415741448673931834487806860056634282902780242671761239450472757884210836729895225141625987870150846776603805464174474062719307119104445391354626187120895347550128766462799002141196269155456567735343125282743168618580936956066486162540559637188664485359876884580950594971652165111521753082634461332778510718042391850169557704259093628060248976706746669045272085917003815108080818526560765493767022432421764671391238256449331237589657583653393173196716518964242748247389092721086570992669169293392247611151766824994172289569160412728446538906344829227095018143956075725083111959984285733580583953780858513339844490488229748549791196986286859632781424795934481246258213763532850932025508141903359056689109794968075434446467699750749509429536654813824806772765445100143659858543894580115058760949670674515351661945095355644279087531618200034779063771378972563891354948453001595412772654079650822652423782349844751607508447953803058160112246762913507417778844510175625857866445655877336207764470788302093852381102817921940690990888723171781062823831672422840779557766201039012231709693435041819980371903571548031238343704066627633906082825990010990821770100689360009635313273719361542211319028265168575720858219930052362299861415974715825849821835651290558679764374871213875180915196413071272895908292287826455139560173031347471877971814773644795801624846474957637650541101698869602837150138516694011454258507966059291412217285059847136832217671586517121929813296053561403830929669904035148096860054965269077322399956512199930203158809060982924191399482714045313283530804988531834837687271410860040888113019194643538055518227175177529901082310557906534653917261648021578316319726081387657847213049081932086347618041048879080205897488512498448039007606595300073263138591544473309752520505372504206615934874588317844871598409483589187284907116559071111933219109361728115608791682400163749599135070838796953154893904488947208187002588324000137521593901692114883772580650182853713955763611153730072735164347116367973270917606110015075208662646617751650543215467583665980011628639176248645794081455294771058119478242763869335474013045378321784536699174947352477492844242187320649984216236659009576270067735726101855340262973325554772990871910974935889570720745430209945579329721783426048701527446308895541503675911458368085335592246194895603944265692650545987401464274692425006719157797656639555129982323596029907926887833251124073136326109864719350951262221049944614042249019055946740106321860172232342784780993992311516136687461053700253669978162127377476014103506200392359782305531005184591882928744250487106711086081133925731221470260344775732384949134010772937768448867766871262082805069182167946963880019612527798199580606916896850739837975469524616874546953769361073635457512452642452341595875772060476173850199005945623055292827321561800681538652978293949951301149552505403823856657923191596623263151132807413205381084588816033237161900142205307101488397637662513994167618914756133879699584484209949624423843500040143114426752706685691800249620874269035587250653050663899001101225023292136661364194762531034568646529975388036490723098439859619567889039477452971838026683948958665844589003154307058102330821577315840843685459485832555829884155515517006678372292216541471102226223849012778986238885570194328000823882524371647935987408866433331488202512785592250674716485545870885643607033582143703183427261341933288490935435340728127264359445054420579140128879522526374088663688574383522566946305610946646606851348565044227166746027261789024315870347088168684472468397340250604857235173790294783562497784660463429758225316958897447438515152430110991060823148831865547539911914006065223478223767641995206950095560298644932980180837010276721517133277072245783014527891596249332940650217816286685525188266129105770658255043874878766595256238020670734538279892760545269246721253597437598645609119908520686861412588796732143581757732758120305099423959486648801516129617148400796725615659205729434869876558333905604114599158818060459116704372739390054586645978456112255479896380146748839222200574568040110330603752616569513648679638610086807032776998814725857938443856823700625151356908711878322537121294235929470778766540421388559964728648215065409937352622237102856005988786266691856222921792140316548484986459709583508606477335320115340021243935855172870888518868823329963956272818175771635381086527513664715901070190707898615510534397551998669366677572471378151835456343930080213199133990437122960345753034594270372474760853734974730584219604335918238072864036573233571921156155259224334848893552702820494732572169159014250317748774554881249231096355499928924729547967805998437506466821652140860169316183537306507312874255499769743901361693034632912532562486072596745650561569717575500142493926026846690882904688408931438559782450665520671155946083425161672862265598819587965909546584490544021358397974947601136910227934197349665472157224115501507759060668820637683738643948308534932935714062875866721926635698791565547288202350343927397191282307999018570403534671737486897218365569142383131815695531357950374851596745506860288888236637008275290067713370337206290730280102825466874832588980674217825806465936253051535274381615947734222635665002270931897740575540857664593797422747390002247456678007459991617402790885168443169589791266567232249865423377767254039425768465738461875738531363885178760180990374037685649549701647274489608753885375057229625589657580312232971733924795433577523587879231187693324437413614711263285704805178779402490714104139254239022621222732347453749794637397437022016159558849173713053659952394131641408304635432367674608829370155228949262399406728001179150378262278365514014897846966280530542356585624515816882371373921693732558401425803663816635887645099288173243848231464974703016796389340194640610463930338616423815465685008254881863424452627402512118356928842353879322923590928715552309080562268749239087695156276916947138260827461725733966661530431169543792028609236330247813577147935501404436634036523966746988564268867534746170233940486829672612726857983456781571021634242586826336270669306785409814937195171884166763895732996945132866159762105018800295218789360317664398442106803027313245552761337306049155873363652220923915380900907169130689024332039430149944512101155804585549346213449913164110235194258710798057276746820949873995032072073639754000074822887615940535141409098535043019898717615334967740746075491345532171433847393437761672401662506464193163338776881086432479850946470388999270645945803563090384097154433290962666493259090613229200997791668190801397258505058695329160865326534841570598770930553251578623863347318133992810668913969385056689540531150903528504167001128442512979023854566720354809892187806478576556504050244836764082626410857414373015451804908716168908790569796835505288981023257088167921629523295808336720416925555546664177468158520596788480112036839179387268636329767955566303957440476490798282700890544474371642081347365628418729111495309132023202147383777721541839356736368686008204001230217152105185210706972338420842111869178961625149659434188969848889041617720474851358469160125014224755920111441255369871387002421000023631117773566772961094614357625209751773858954236343365415071547485162106783293570379533203786833718364654976765789599859253826809244980188108168830025896933489273718131368032702591932124879673471359731795763199267398733169447460394369269625576802009222815070948808750171147206804796397826708323818821135132921265161552981948586702293177636365102549699343213730558779888823834067396057403285410805947438874462680318124516915561328201009106888811329227763016188137016903421937280171211657649662932391142541006857169535026715681169384217383978546410670350388326153352576949288380597040360350846281937861154707780799516426318487963563750626830074247830819310278059707429108320378297843202921914448696813370482780221015709963886779949514026639929573763307987616434671686784383053721771417441173348078616141223321302870628525986435995022721154567970305817413372328794666819874885628494946538212001660245026088638591997468346704545318738716738951790865636650533563748128443472447507498983074226082686138025880357148212595624621435249304915950864138196095608452979472832827700425497605020335110130706322644962073444774888956783304883340694138137985417435544381175928565791715973311275697180293881961314165444932804635194865053835787046821399143116522686172552980855268688794239892680857344817634569261350513533696676895860027765166005500284028114605545721349505525038351204540919556282317237631623801783222887712260352815526272796480503161394423402709752810392905433494675704862596329230094868869253706241964670631138514709707323235396145763216010618704144744333210561360657795201889553217087173600909995423660768238521190393851138481739189387456960058393524110314893629501204286287511687418935405483330384597697500118757740252301462173391240013082288730360387952685121440534981575091784692986160047038067683728872007548594071375942922324649158334102372566855879492809475297233399085028957821696511917768565856096844232799608449140364376134412344921321080546325636911378298191941496777913885026632541613397045587367741875324795860086658472195361880570002052115925452728357257072882843809815188191601645899129081436074578642664367148779885373406313998770520207977804119913656345775035952918482020241370460495834957460109493160938407601302766424020160877781670845457377402182540270558260425644894718989501084623825546940469461882024643479598430685878399442945229264585413471742509731833733011450337497595715749346290005236716672758469414093889821153265872989097578028534261254232328526444704290321927631707090290102387869937306699697782721324421172603821869942196373200789812425483754227141486510472268071245391790459531976830982252086612739224174349165548373608442511446348577489317605701937981522031233604236176290454543168408723638109922348510254478339474304351743054384300055552826943260732395237460985640370682165263846420076859946093037890933927651367388486998835659982228389845858026653715976095469093102372343234199643304994220088058874208767133110658054277276417235669328436407288329978238761292215851261503831210426871523988359735233124516955683563867092360898990302186415455341830479899134353281679164790378382966125024955212313302012213425195681372224196361739591587673403612586919184361650225615176051671451866829286718455323471957960597427972485020216556260894732865299647830787122650898633068815809278661252992168093444157903782196590145939853938025360745321005825690097929347430025100117325609031558800155271776376467083387765059369879417792774041058075782517107770986238948436839006977978382570599616656374969534957390426462400357238162917601851310219570941820019442320197159908931679210793828101773615813547230855216749237785994481179941627620582328498408277388954002402584766155144738541618500243701351894949248885839369699396239559577576324002371187852200807543110795577066788240707390087558160460016203451850847565606352273343320973642158303849636657789519654708875067148226862277650421629827955096186102822405134303996585155145661959989784847817429982214925638117586831100587398856976208834284398320069277696511075518329640186835054504864382813067045082810363009258587356903447833699393107572288183475041623510414433032862523603106070864190438213491128611009967388130987399213709017305600510980562529392543102284115660770038934071042108125142445831678985299054822515318407365180504491864714195137041134219291841017795883429439653543250041386634139281303860378831588367966505259519430898763951482884302931132897693737931077975372573556511979826638485191240455368920811560725217182027145270334824983762566818684075820281011686732810886396984384784037600782327571057408589514194196212486360843048940357652710234175813030603499032278655119911192470092838083329784256788937297359343764299351714322043754643065306299177604295753730647694692497838126604642605827178331630325777125184743820404636441518608950659384533668685014082615913769218962695488115576758376583573226915314019673520037683746876428064700900358078430282750397808071218326301052813033372828018577945986623846791772746773977660779589435397679234431291750695030702397377646923368612559384494910617827216858310269617160320228878974581321449007396342018767039131666040027758238633171910229129690213094746100777497074725249998185740083570275194782423996977492115739379268499792336000685503247625296508061353120265048286182792159200923825209671934793222250917165640832039238992191857823160178074324529761561508430424411387437987305649848251004317664822505260085102597376918962428150910748295193542194545387955877686493924761128649305423198355229836284888769170709761829776437062921568999599184341726660776608757120259499793809672917925911967671685762428068895413242838600872197413580321044081370193908361416186833547672820207419544953118175556642196661389447057228642703659927988076686359925173432491089616549355487274268285495183103176493748556477632765526624348552527636265595363357846884489678027947896418821819769883124882876888283938981003773658613666545582155862456493227634082403537099512230145856389629654344571149508137369466920754628876254328143799541417283264140920776789265210463649680072381923124473263782930642478883681942361520876317178706064942638367767255486232593377133741950401383775806246669269426367778498255240525190513276832032301855595980798016451191716861106959882222463229900302688052352650302773768908881405538452277268928936251150832798646337862814763532691080712241278483934290119226333797284605670297594823291634208732364347552152490991764577370456272283520220913924070705642697578848179489421940812986866922851116606371180162637860862712275665491086968987899029922336039366206420582717741755389831001116404319910825837680532293215958005538456311237261268127124355601714671118044453345498299960772878922951832410119384037269615007970579236598989242965732488136985128922479695241978160669336779785389853524552640219378034686424837962038682222370762787924474953198568244829765509170423010229787080063029526136417277313107991728936815943404169648333167675457076159968507627800347023317065889584657806144088463408490220198322012504979408865803680062059638874975908258721852450546225044320754100053089410574446623918823091058484902504839448090220898167900484123220653118081566009949251328534353106096101580218858003852414300986236275321179194801477033376553589229429494141393672297376476112910126951879412978838660699392484613273370382157037877629018113704139269309193381898987300555734769271010250890147072088071902230288142696735377235443502472442921405138559762017170674794314988543961147923354717120928579639610040436332458999283761813239606369852821391892213550489103806587940891452170188409460405127437374787738126542703496290684592412458921331979265084061925513007428837532676862541503515708568988426475526497705408933313757063620229342802860046225578937341465845181487984848811662788419587271130595159156248473283072753878625376329038367552722072767335917338488849381406599028539219519076554896276279255273129400049237925032042117575685602400232473008075639655681950284014631584813057943664088135866731676741130899694770057235017983672180608263149893301252997638480690047550132528814244784987194050393747180537132444474182274444865741411515039696783982024263372448919903282022084097606789868646795418473241660186173563691898200698066863211808994156585225219422740520448753702657206123725443884476823684140276446046938012048078891517968851188615542338759653226869380427608710185859841131893436702555467519547868485992375930880008144493096662877448382741608480625570923209082021939046833358386859794635560447025532023328764174742238605757153567229987339478412109801013257958670511238782218123566533882337951343742089661194002197010288528641119701926877031100491610526255938993376385540685045019541582879960884802732416368438117092311328569752572185842796129988981540502942723508908737864542098853824031883638643208616323119562512072526277773913365056340413897618917646315766166609359578293064636494498741897392691239288289698148792598807259990121283673826405997450275047632857543363621088602400885955746672893200186748914011445751044677870938069904923133882860814628917583020928336162543157450780691140435017328020487594953674725106160848093652611732584846860138854638409028730570586243475742076738129433329961845042470186846984575634813392626604140972392502820207847791077803096633660100077509762501833134744574077016010453933185110910513745118314989187900706684512052148714822966859707400135533504447355568555801923654357272930222828057905644966265632840064183685188041861490272474832830568493888170893489308775874220998001353887051844199936939678708314741489162080782238892370573483278045311061911568061019153271059005228973374180463170260671822110736638389240033331860973358216684211525995864825463245249028117862000234988412580097557156596149610016171305917436928167989452602456708057812047762487889406731098552214375602703486009450795073384079713448941652365089496673534325655918124746057797007637254754426494487706395328819396611033401714847207456611809139269103522474650509035989718331078023962470967641985005375849122121066440787131475069684493576133692800127569774793240547713650053431385959297589025083582257716291867913030252442048808124960260348252631206147075641067071142538604751550304525520804781319473983628348195358964815298286532860174722069799343804074834870139885866870230010746283938952406813828969388211857481909821356009904482634061223847489516210002258493979026267960995437627516167878587720202953424751015345828714665506670119636034590957702138860059910441704843510545450668718313870177712127925600503500816623514137428586563745706303333352331233618427629092047504371701947521058711286211896631071282547455972027748322115480606743417965028252874062701121886474182227013878251195385656922768215750211873923224683330539907653325545169784581560257087436773550650838544108642803092354209196501342739827467777781892919404730386479362282222368458769790371679089024298108727408190881443476957630516845717533893269943565834128309554861836693835678665374761044721218564144035476559007658344775057464214552636578470841594490982821092463145318499941459983870197720294803970566555943156221775457770871091081683640879446682552710107090033486424411472065042253392681464290019066079337274560446859105910183689669568699057029611221992776593728293774201966911705103205189689017722713479159158933840173286455753752534598080833489536083803872816275421948125531688093055595374234799208993638434474447050856982922618082315656300193907939508674621207877919453974147171747938706914949793464133442752843332188025372888763515045057466556949996339084548043254632943253726878173374286571461227514578689785947263557701787686971825076710510994085015788308422510552741537589295067640239201616762371239881223029845577077201306810828737890618189554405567905649858816596943673976889674343858390672861245177739537276462751926365306392605175709480543368030597241262363752227359942784507400023617814604106915732914800108686239810694009562041689641247294190833607709137485310448269564875221479073838371757595485038964452444593177397518434904990048472568035993797881744341889391550561536696236554205361779186065376125962800631754440561739558406041146496002157210222921031366417273042248503027168539511689040031971718699916763777123037206351725797541909004081430978473165343609012326476213454796976253509210956175210640759407286139655744861961655169728756835948664914807926104260130691338640309976998120166451483550756757650976083911816089407016209983685405115220463565464587346166592519039608484504721520801348648088088576992660732809249729810034474361531173580558279496239817971862568693546298112598563098061112813452326314756877635356536479055708168395543370277651762283493019210612167632000484681456325458330242209847373936502231491453879513629805422515833144768712865372795270303141048947179108866212553569158481762405755997680797809560121231795007260387041949037812476102903611943251735692907630984158635484263424937938094569134312857948096244909393451138962000527217834846592514211044189218092388801171510675361679317158488234709826876121658305828355997891968894030283338209569869728193459347441946330353998117143067943756489285176679304813002343627217340306360137821510931887803635512268586579910050509062606088664951430769810482450446303444346330323234355496681066038235616264177948977681894600264013684870873611808327052333283620928576166373132869432037251392833089932407039613960018530885381184952113981664346946755776492376510682805300877685057634469321838527099304135491129276850061690795253525387072114388186278771976025784226137084306138510606541410851541311823373401476268549516372987871192506076175993415263171708126934970131545236434022810150361404498491302906771908600319533840480808730296002590019680190790914208319940267659225240683780391780232947989926034590847440565836803465308928978605774384807913774138254661334386837618125355102823093331958383719547254966455279634255480953973479658599617100842201705740036318607239929764992793530482690109120546989267001369967796888487595749836026020024658924780059033964865126151128328978616926420943203915735996418409978767378098035663667250375833665368317139967386471491746515092869737557648260069546579266472790226825241003042881503986519044793259089608950770115456198017339634293615890337418535620221698704488397298405396158032443777474568263191746123327009897295615640517455383644767184212133548965299476191399358656550698171476744461290339483060950661571953583175736387662092213270731279135500872441127234450100228257091656312253298203326208653371363844853672266935642072201034317451882321235747869694044295678802819982024838446788305980254775125052898003801578407055796094391239545261219566667646399581696146921023434432048658627474442021996102226338093965614571215090416682792622198364645208254711656162513534296640319021618783394433131311606572218553399326911564471991940335117467349718294619831192276864731154543827892845938395676205354745617572483817419274612031675914201394144148598931520358028890951857908854364033534912674833961384836451908113466014120362173897220535474303957486259568163627242232777670786337785071972631070365539160669096754273266534682008605875610737323118543317926791396009116183873926195127952777877594677232093419096761486829733456380689601520879947060035597135406131087804923627835300980689325942124573531288468259168363979938996503378458067031956752038395979484921704030240152123903109312126966919212133848303126298850469261866130584588515210149437011441365496044819313009777206859585041519886869068560784893320518857963574518673769358647809900473783070553808499344343536539537526144895790452090484065070980218213034308703436265523805288035675854341330815947814061695064896971415973630288576592522290789084172961402188850123074962140022040951842273844777485516905641198135246089114646160214333541088996176751070938297651839789986629553067224610020730494219462434578242129918132973037043459609425205440891159291008968550098607124381055093009022667765590073183556432907840476912258997312308649568645896591341033528574660528331631198849013800435384985447273129211589044059518930904546224444563500630778582116353413285481468938883083070601393573212561202942991793162437989675809678728769442445689371220234382558629450015045024331787850357259584656057961530676818412751846826663332203320120667889611843267694740736845309019942080152711865440606599750801464369217839470343268098297607427965021718307259117763986678128068913093628904781834534597231805786044703724575295813854546225454611265375105041818726031350679608973848928363483669993497279766363985861380886334698461464086121175717176684165050011069458774826555934308059115079650677540538456154656257654676916203663712332495629011923559870450914198148300409177770762111691928910548969316807741765927631028825898542341341161833502594323369181821674431725401120628989786976225030198949936128185308170115578982025958992596048927128017016467263427125667871115490002745395001844300067179032154881979989298501931146187137125423139374022600401315147281592649826689809485837534075421474912477633018328135973534242426333870772289776609153523714347518651289310409184242437816685113406707559484683729871673537644836217509792435577753338434616627884620191542565883117333970667981606864888008657202763896864871439979989691413128657780705131944335202588410157452995005110331075618651612876567846684125787263455470383322500228064936305631767463631370373944414313670009732905066348122280042218722279261470355416732864617648719848256316420626838583422797638377123771443835647177720150658996634047771272283309009929123194498719651251891339667303631258645644943971631534224666166296072174898828873226053790198093867564243132509918786800825521320660639152994571529749619003519977711552991046823147453778973617847348460556696711005902744775227499298112600732169166098637094981222442291422377915244292888237817119353925520963269523677642111961562402086352679523706773352328549393107880424666486559265256256319694324130621007134402880167032144733801365373095675212604680787032665296208127235830139793904822937926931288678359156669296211259933232870947896123320815823804146560964387295675982743781213804643861536094800447931329080926622441579869165068922195692268822659315975836574934301564974554940437565096130823726360877887543522197884913433308390633410731924795923256786255216698771318270357594042374150684356315072879482301978716057342456680067372150698341450814109482527230395816435450639437499101185662495052013643945380443360044881772847015290003000641374100735350665253025689286899253404957148408023196610146168744875809214960035260051255079041986356074024053998104105994180414926616279179205685392343957657440926985914023153301560938590588527778781128175244423742713742024158377510726812751527334011317342291397939971943063759358971576039542525883318549197618676073967494440757222235086183930474222546901699688459625974255295185826456239622799874807455966862279797996670069738693650339619881166018749149764587561104982822768346576929112932384066484153541123703818948501606887562313756993727023531835877139149180729790254000931520254308954901935091185173189983349712508250281463008489564800971381496266060063517622506902902284381281406198433456305048057439821750435141826553530743061122042007465900610357182447854206707666729774283572071021627050701894083408364349209242558926408448170064784875848972147775731074378813584763951595363603015273956632353778839037573362367828694946079111634253420654149433345925777850282802648127627708792539462730398961271018048262659543316746153076353663316817430793606588052758682199116510326756310817082826101452817477906957405019479411364883545409762122642988800152977745342713138517133908717560677685277075591031492817957125094875413293880437343518126332741129766733641799943729963892168615596961821486923850123937881686314516537694629139722233480471550162696667382907732044144147137750696054606960404049244043842898056435198751209529276512534830455366832310673220016090266838500946261963791932844367757187919734157682707881313102417117836622565183499153733495227424150172690205573011520445950632805437395701014364786954237871169445482323269237256471299734760969781730208722919057242130667814727128255000703327100970182085097592045325147006820297415612151664981126167166130715340145850950924621635072778754404319231166326139926108400016581346845855735741643885831101886548891021500495321118006183133902924277637051615407916112411103611711751683567564833367594224611372274472146226142372025522651158590052494377814562822749317462781614546204386110347723498601767704978316582995634802306309218167582047025169126968699792311126511606918709054468794389308376030113366020475245171172264555994757189573082241549362419008518070602093485991527205569232239982158149599726798782076637039009894065564113504173682260202766951229151497261988196164719030451054339938693399020890234758955545525746144040470579678509633143776956090742411085389186212196960220582157067327277320627073687560193520957665473499299945865614279925589522875257254643234971283176769068034285234668933495084688107352856412511144857191122343583330992840829676976161297991506129022516507043455601791560117173983318674682967244114289352947813235734905776361195621482490702377500027039911536775211736529265137703623184868170275808087201238934483553676045979317311545943101061699069794754999413313255732419140389200785363067819341533121257138891735722063701876170678405472752139778502003271288616523547437727787982112625970631889701965458755052467771075595770844684779466756029100909080127826682158777757141979072969693321339690930632513103179495189827635038403095323095115138788281417761504655982847942133782723679572018379855853824093846184594516452479790598957286323264374956413888686444608424993689876242372821932381090810218677014058128306418337463859496916654315909958690355062837872505888471268264495207557990124355856906642309375405113257694716801428373983132242461355518442380759175382554665202031531726729710280746767387098703029836778928989507003323446809558891438172076583303461950119206774708853703582124542969896533713556005775781854152284582231376317204775775767584614524775265777551094250116354085486880614707976789338161889411362092772071299539288813606202919570466016402145179897110509773655590148402613154506702843296906417989085760112515961777397746270576546030053064792053789551349709138459305882296596957755041027371387603095493236384470315018710027312158124927744328172669234790737712132991631927219341417311259674148950146074096318692226229239454242760367742038048546860799760663957851226841214824097901037555106074374307673245496001585665338042934565237391899762048225535759764841020969809582483079637457249392749101966992107829535811748647427320898510294298803554472244623488594969866870684034233033508750869362205344000901157756198848351353196948073222106197783499565994116553287623610269899417088004837977502376907534225513718095159094077696738674276518806764717425123286423021783679049409422393667418883413734252253700940850151250195052717754091135148022123940996107958356956939836873766285481141074360540908078731525896864994033497228989512668593780086159756211864105504927357253367514432312221361119568751791997127545695647722210834950740860889273965298916389070320449651062142300955445325955755599913221715921084003206213134470492427651444901700306572012654355109792706782155833729275299122768450604114473838891109245902478023243525603990938250693211001378424507629394720965959628111265898952478453852395429926993034483340164850958279522955047197380545767272692090361099110087774061969983262663761638289490548289900929100373581335645729146544598228240661168016939334899820799380404943027992285474256548732882133905744561488175270729650820933520511685994086285117266066559593267946227714229099351212203490548437926013239318487215970824375207325594435126556215990560663464033036443015008501252856118903599495190300836543295171898881122824424350007075350661667691229476892350193127382248156075518230714025544764499909170993444535965064953839129051143622431982410700088621047770584375449732557539615253172636164216208324718551110366410579755170369117322410916725618818739081483746553730806966950524887578297297512340804627674551732347308252309380524295961633956230309969291207855996609787136273847949427861249638224336223438109955890071832446212287338734018975686146799552370124957331741845271650432993133624664371875766221355296911496990416865846364847208441890955011638333991673086304031377093907687569708250459267549758282523460400825945853908278193064459660458050747684409770222436423681713999935020880673648138057376790288055920646944531783064159611374473112431668227289507714297184376269180101400798677263421453067847000035129822573559617635616418249107509597252740232208125076098334648998906228191141042689328399607357363286081275826615660453488124087772424004682539123108179761928903995301603678783594705951472301935083409673802685937470777072713882517976405477217743277966827563469693516990576037227728829598716319752691211560108413277534368920816437926959929135707339551969380098092912821564991757993025624823722141993312559946752591367732923995403644724182640078312271575824326844586397210669033503184374697865114197398597925748402338780291915235511902350269304443310240991259878841950903576737022056219194168409297077205627303654658660701827752928074077597469103193378074892992377192214893688949830275278024805645127948513865517691579518055642870333283393880599162945766234862029217036117081277356877199081958202304074030132693957229504348843750326820486523171334077900600380188735437252875680383435589290639018036709693482235427773055134296504097930228101361229780670335247716726635046462102330302131998481120819596514778167032173565106499128540819044557467816155829315664462305493471856901702153486789691814971199385893057567223302826535459079506602844596337136992317976700327207228576630245440279860695878753332294854393618464084255982603931188751102035158714230825419860813452761551310634518033042971307833970999759232921777100332968980712749136588609650455442027344263609942939257199700019081153197282711248532738346980459166768263516407591777262685893616619802949324009608212283038995663890845376337563129326203554622472682488874856799501104799895573936798461058951400261473300272134630293334399750125564910729126258659571074505866504805004788204576552146645493649680741028913477411367057226592365936162777214157562638119600418796788756295469465552399759422544006473508752698347663921955403830080150118389889394083715424020361648487988155812847272348145076499133976130891118619197577308808036100518930267865290417671910126714337892184958808327339640078200041055664127086090514797035625934081586198730263207560936474974983706073049856140658915500527690479352318380918390858073472495939377355504991049566430102906835702081028064506118551247116008322577231155653219588494905182693313698880822624582003420416338719367322084209315411158072848293072928662893283372274020908445015502092283077153212715229710154146601787918738086202901505037081704207314387959963938353303510840217606544559400009840829456051873761986558681491302910116897793686151095561789130143594104640324500727613166589399558316773442992670928841753970164679009368529411223189907419038514235173239911554400964010637742584014933789999584513845460566582977349421551820248158679612688022883707206956117205358139145103727553952067587337133169590530456312492647692889273569799260832582649027060096582088369044615959602477273572104781323017085139065029735918152428101566089757770041583647227362031266239774183204826348283841734571219565043584135911315376403775775661867852391560692693204030692752749874492349930850539737975117114947817462429844622014120196241170479740484677528227915800590897275553434697428567206214491155024446778132456379239690087205900627737835773209985448654768804617683841128331612225886478447262685380399776513044798054788760942311467908274785889029704214562780690895668680490368517074310543255648330622662785178481428638141185173407406436856533449516662344850338653092034385509938962371712754426882929798215333705619079699763471994992824748549888649885320099347713198431494484771952219677387216445526155793913913675419626969887053533686153717294170252785835273526815540471117913100466335608513459890050396057928094652783935927080517821295084372619038090880537491331681080114133244722872235985573109878940462905050674312330845298688510065809612990741922145254077789741343466552438958332648961119275106977846668625273096755198951264388139528040578671769793140493975535392260553177326707486328436992418754059240690395403664999991019305871457161066536905157828147975874242674036588800333955913883902543195067814123103905626287733980459851164841958002400480493327477192126324482858747808319412288475258850439328043928310025708065333586715344596483525248398308892473726253857769799235999180601836704501275250773408433863286264971868741877621259898573366945524766264464706545682171096667424558109366223118179978203081302772572944743308478661258648068059262309604668043313092719396617857014568422571614986189424871119199560045263583520205213782313163331063902943484325868093580637511680275074251499576371485624676995461552988234500678349108314884958141587609961258595005594517390487254863104309877885754060017742945896219779939716831261479268674458603072389755296184126133932539422065747899555629358500270745640995934261808861487940871593680580246872826282766928312375502488183230871168289737107420685964802253318898678497024060031798591850266032616548464004778994924669035612501780274713170258904427460866215798983468446168200526972685134191140197894630956814880243745534523546614252902985397453067593100122477043598314385399672662643440083059108769824617284891029136870773182930409230183507754958667062171813134066553383354602024460078766186852218957893763197917195063551469720060430225512424828975853106840017791457240610026628086447010319578698744424269026038525039367012070312637015727238525557289242320275456430389486160717874048610309415080728359441153265889933520879341433110438064158782800612620089891710795171069661947935314340508832330779412062658065685577212591704858072447046001169614530875863126173274678611050382568947309343227352441486341217406452168008963639106689573072810072399203141041498835101923386146597975931402178167212366391967593816340346011919534985039805219989434196569341351105759506825400493129498628636988817743753370706191670254807237683314532555143914842521388552907484119997910042510584494442354949526451989949573174532099507567102461367505806193881697123970465565554194199776428948803310742060362049554404476873843846487184204799982353834982350733936840830174324362438780221283933257193010683154835438107012243257305806229832980264495617222611853972928124447925079375817097733927704677562046294767141002297113953033864912160484896791780289723038291733776504280923008416143519870316673871977520270514729933480102443305449534829767277446862820979335476703919441730174588201577156526406104795942348576001400192650535742342702623225913188188757406512746926348722348816492105620444712879234599436820405305284208604108831374199790140584205136300182985285622063826536296103499289080369889497922413639917264725768329458724801909556834843699571735113471318849478701882223190095226270780355101587030851290310184594735419365062151571299151125808405371326808149745074706105555787502207881215309229303519300667623180404414100584743461334457050930240333717344583400517537788381916831740243636362004521359453180568060900334448227724682358230307462351874535508835680215723883967536223055032096360689770929600671911622147947075487399819132472470792254709375278243188023604792055032736452494493658202264154807680737300473274446908692119941798306458802795260392882659068753529835027494522794615222623093468608749802429639854087303453889563618751208571560687076521553490986974977086783852058757497215406040769873800065576978157910552687659002511616770433975725379069006929355307869771458560072473151965999978830822949217260238838239161730308838430428893508919491894805784364187483521199569234357250324931460156076895999400815813133568934235337705842513892642194450725762085701612877209370418363268294416621223194856920058601455109172008422220363866485186253107651307239950385342648688788758543270010174429597968488209490275065880763797238384574109794507962681321874089346613497398092032334235942017677299841114597995255161655840589039571282613577137807063628874481902127056316841456552661803100574571211279716893548609887989323264013063303195916641602934248668741600371405541557486009079180862287101506384479690500342132323681178656669637980583436493395405498595369168877651806160627087110981245468503833201999857284759675481390168279961329841651791548865561382379258906706101876010512875882937078453542842091481756997741022356207853762872042529745442203073039932572828209472643067112318874583509897600198412979513195909815006767334717134861543953370439617677154690773717107192468910761858677882506759190532215889668416900173207255160642743153637631470786470554414617440487236447971758222558253913036287351646044812158883170289142542222943574903909492449214520112266127935558914648375059089808148259649055929080207918844056195965163733481338479760973211754703823374576752220530945932183015687283648834678295438705913526578378581647755982658764662293417219379694342650716010106826459505226505142918941227722540791056851065699122923271288663017119163332594773535921312056555234361285396940135828791039394483931637312883214931795767057929259683094252586854386967044575862356366057200264010761301601415223610271907492607800005343972251829258625512587053974987835070065017937372009120943807099358356061310453121679577422088526133075919770341726671194547211571838587477095528693440063221569294633365259605215239597946110867056679769241325819994568333838310112243151713867819582094130946254774429722005311875519169787812330793160046365277001569524159738969687059769163790028620278023250993597855413271117677015062253207353283763301877827385302809909970246171927272165411323571309252435605477359044024569607448285244768793389469185611550024965286032692917166520797863487198339495826542270513520355497940831867186094973601377895091078237906615397984721330443610177571234046876495846946124917135800020382758129331294230121930778950552285349178892358337456908306593613862777459053694568090380251042784732614724059021364078111479484058420313109829670748272155236233479581552944844309962120021280950627317859263428958450886230304019502585441280093611792038731129766582722995321495719207658528296359284482380640424342608439464218454028428924606712029244871947539087353941910241826724721984414148911234989163034613828441181372086965602422182553752551275398635314368720275360136376035018234848791160499319815530158345049074730740623547164693458964162716805098403952834118216262735453573571402456652439919220591839928363598738960520632039695214201066371609013447882581351592517659700404033895233772635324419645172619877223579663645456977539525380459628180257515555818965971031946131287241465786809085724156798282058681857120433307986048034044373400200800116940794925844673595707305551865677164069380338099776755279816503601978381331300745730275054747524589015900733328902206558598884805522161181779872663758724797388118639517891792070680219038053723966503104671001987711739261642097328267970472921077689873266138706135134156441697046083535275843627439492667897928305492139358603935465107281067773200842989711855590647016746833125971271178578913921686712772938178864696848319001948200113754357689259578133405282098775401204560883645013333591512780156216341610025598790677248265817046222238274349707889166954831318936261581402482713936581314037700302682881886690883446100673847278801448891705874019551440357160131086077132106228610398112539717636427499900178322661076552766613900244216434034420320748921045888560383035275634879087545854337266639635464344289219373345643158626606916885880634288320833119992664076364900155546329344778421309264836525707773020936200381492683360137511168208750755813357486926656218033475273875313225572856286451165062970856610962585428687246431878124939304987841654077035998368734135199165774550557808239192349588498089658912720779211867910199431112805974701299781840598113572646788769062997921549743524724417988977645402801823690777187710222600453665046804817262502769444132963064385304525780090711395391714350248429399988050818800444666143653512456314568369239325756792637386559641313597178637787753002762657564614784556475630775940756615454110805667670257875539053658941817588165022919363106458244301689894604261028159099941149868661516616606147565564917152958629034628400564497800033836896458047452520299295224153373392543467535135288102242177829266799094394131964546801893787549077031482695737469605702896126851480997296107654207385602779420754446860238546388801762594002632443780598766495371184775754501295774063889396946847011310569693580712473068682725260685595989105448462283775464386695925639257489117418841747808723615110965566554831196661446364807121097017961294048175808687184018358426004303575771834209232084034102852846750446889086479495007234456103365838268549817210958685940531077831297166795445492716976739505147834529768068038935562699774808049587870290665144121839232345798425837593774972065398640043482651266887720449856042266626164158884472706498039321217196058141729090947001461917095869394257989862913180900797337787751766203645948455634277132661368271465396832511693716986143195408301978649396471327461375541100088358486359250004603130525162167061869755528387772816978271708616226365195741892315788534392994417020190515159926087706155205304579551272511368219285478109304419335051592149522720455033498262040548360720583299936154921287349889317624785497055587197747136254614456430663705746677402602648992018146294843811069224798327369308921475071694777301304211165905997459953681780925552452166539759128968647641454672272759842810723854480112546595883670914568094286212389239312362364487142390742219115731615494455153675955896637603518677935688039616988915911049316796537912862615895519181586401770584961676798847396169562243424988767664410145697885985082630398122695803880947513684665803483738346188008372846914043246111301253638785526919255505982766736525769713357920486620805112133771862539402440401063455890949295471923109517736200662612313723765384250965704050397496096500538122373524921805186553012205739590836593916889262213876209104459020920718549341754867809768198638249786088684015050315057408141136491642869009102739708695370886061805702364791472249530251373975858435060216248656903894893658137072381758021368730348466907442938842064326426949374704232244681772980221325111005397677525801917483188489961767451246866018388715035963449840008728323876931534080489534442024617950098796230497370397777806508766657125849764235451450670132056294789523958612305480869168773025176627417258542553522091199257441969891683649400503635216202821436200926311278223479536548155283292586173956149903640262184862589300948427986600197597331418769882523660913096781289647050857054234890759741299149325330230691140979839242630170877940242082322349332808191011777855859520906553534915629396926715002472597842854993017340156181284546677501673774011977946250462027632852043587285474697083081950149584471156528159790587612976242139776757881612262241338071298741743153672916024665091865075169160981716417573588144645554937346489093281937703992424904006167599286554560573737287357025787291802819589033926393708428615599081862227513570220876902605167002057092121427616054342152777364003947263351588721505072742140347734109077635198370393934464683961004425110362093950525033034942115877329749792212188086191959892531431826938566700336749249588562940567874312583446419903464167412186706253202520671473821875339469066929866056115549965956562550975543672373993464803006981983180166196823627632865593627455546109170624492283784325455517466979754699336352631703364711598339481333103489393754654473118985512254123580133754591888933178845073110147177065929142663949905773218609531978719603653061530130992034478513755641830106464923123142488860489155498794566100879293384613919248146739269936857222581794206985184746545120564259312226711548089897565802600946176424447728653545314802766524296996736162952209495598287054604780118648540012300512666305653097076749701059242391999578002858695602729854679596636916025603798671481948187654491232009548360088956099145048161289044488433074109701506237274015733435437464213792043232083424708023537904851913436870169405795962494538826988403717196323787144439481470938996429762804772037981921250053343535645122505677486082721361045557778620955898372669237971721673461313709427275747772446622508154439153222459894443708587957158147332088761174130588984261026270523549270429424546297335854176969216329886147426320150393404404206990184068031778620040900018948853477044197452136888749140143698579631216970630421623782513812158053812651564008168898101070517133819855825286872520258589040709437612228141970421391581022453979220027054104051125706115273337436088666913416474382483376679876264305258461575925173361648348236168460919093339939233307756114586173207931341103629296439442491733423840378636080870884402100425581569340480675830294165699213975609556382579285514732322382235556424785990646727130610186131345090449802673868554205698859567871663034047511326202282106158645579724086094084706487202205883330574883811151961382953513898761714877736815295359574207337221278636180310948828602630851346835010614115136413623149513343415026118556990409483369507577010069708929103033444196963678529687585067975900426518829225191026236001155004573889923735968191080574149410685436514055705621134119898286074208761008010175896702680194257065075731456992885607479172509677956144476824687733073923090257177495998582788283880936542810442824448486534743745051001435882907372030145431440820775929949460159851907459316945304492002972998855379010783080672423262917259563914689234531057615012891485719924568061135153610176518476694271171773394570009999397352956900221101360723058364528151685033289218897332767584716905454573019190899797275481753424003441272609330488625301826415632109679592139706191049083809042164800185436592991804915723852386410849691493730847233023681603777479853734096181628650568291167039353944955439966212130683969728600541363301142987898948412089325472672236770380076979083824855399260364048225453959406076029351483840661426332394279261601570220664417641325874828575690784514391748648486735831976700001110432443022499602294986792371337276852308613593385896496209542342945596740771111856502545907777045421320638644027323301074516018627525561397113963513511559283953320213166746845249058799221166674862704688560837783021802492220595210922797026883222469188258093752539442866944083491395827449142158760619552866028422334223531065398301884583686855521896928486155568797555664181944898617463878821959057420328803946119846008063828272858635785811121526514786956834175972394307371183718474748787424760949818586562694091446446876728311296966350082304615183022782256736834145371570367067684697989437251554303559306901640734076266475391091542248527322089328114688960682520997293365491106894385139674787216806170547563699345808215812084621883676605555821473455715314395169920506780240720269599947036831089559269845573417091952135818442426518239930699040871939938109836502111308193698809710194550416442965371338060285521759599417228366084942171724211557991745544230618853639109989450425369867011979937015701339394641228437150599311814823383341153458891204051494059830032941622331560351559075031904566091763993519410820842618014013039074966240667490596600121504584911108795194681974538916443659779127879288805138218731766894195778452542005724451750229077252646080938012552824744861275671455580203900848888727271918076176112658134237158381574571384485132184569211894080162578807853911635254530180534695678274962194723122863132530909984927522448624737290444814277020111337945965216744153085245887425626669387242841586392831858407986758607336591883984794340948745998108168615492871695791625931459043595339589203140598218168191829284753924636792655560609027932302143828051305422208590687740641354432744450350399442755203903046951518664953481259562998415152565567093333663751276897354546842875184404770675163437312356103756408280241155793145263732163357605050113056600995040009337022133136115180726931235520865629399202100336638045375021511670307879571797464810761372326724776399713817289608269598960772137258548186580618153402645601195224103675928183205125398982206152214735138620958629642083659547092291673391097232328701870420964265359136679409033501305903595908578293650762719236427825443603194476505835492331386310405746046979166156804946773952987023009878475001679252160444412236998385538314618940379297815341447508305578157911473095808555498763997930403305445202033624570316933935160369345302519182889289449978730587070611898872056987689533936884267739320106232957098507211843563203714552461659441424716860671468455155421512642372741842930563824138583586694356794477799135865832439729978692845637419943676001451629103979207212884907614575324103185061110084347763100181716908920346182387946295027092615241171622604148310472382460287971016779791476581734719661961803969958835229679662493174730877466439810289212514134309980525322813824450293485431158702305622966979654464253166442403671815596969991793947211015261150019440504116403740167269742295533440657355459255437330213957579831923757770952250677844460313900840798553805249170984513734420698847401797303120710490852084017118662366034137263824634996108104603984071286766926460073054532217689218219271769992167440839317358512272204754968599871371625276432960484853649245691364410057602393221035710448069766981437351816990245297375662929981681580170606136535506161550885983211599026936661455058295263510262485445632885004858233558245889596287275971442350844711588573627696981895834417775385058128916358181954492890727106677828757549409713607948714108835799432476824751659923595288398996886931678771843389157316501459987799571227474802595546554369375312349325528934653779748602590416263043351721712413505682188362469841872010039998611855217150850501817808622694634605203052149961379399986752790377710082103248071845156671800675228694675220398362047420895889648385217472986654839441347188133508527686683191741655390748103632747840928015366350456150593700463994044588633551187748829288132686921614912863556600588003299528342281521744484460859572827565706419691495410660875846572051894589178581530673937114788099527110756411987439638586699251222852050997098957123491345716059542534647917395612278344103689867536198596811406778065405006133333732800659302762281714225342441474948397307874311479904860630216687969678474196998694945564722252899962248706246497233777127076790723016704387555727346682842896454124659995013420141056845620651747706469359115814300013716867380363203237872322010056011206238673955165780895905887810952780488000219910988917593889251343391818084949963686539737767804962892621727713587551764048294530180296621474155628257694240135995916302456546638254061109685397043614630164086255340314968506473371356483582148704772476504141355185421551501138650157594278210592580972254959713614381323451707369976495892286190749903688442272670195028330154439141785110808633387699773477896029944758293934070777806370730311163619212965431468570690534567562412810533163664901271210086882129993815373313888601549209231255435759283795764500868046983398040798397917742821798293052921437943620235701003823144098018532473480698022105329439732918811017238414705648633964652084376029838429156942722441910660892835964392184419267266272585873707796718097166307065325726629422308925817818096934339512021622508725598966189762499442751434881965911364583362396220407845599845791897638716271930186821738243086538654058667526828534441200406671103165670764327318625180256207597197268656150176358052001019842263891850567404801531558834560449009151274315345958220265076449388588724903773830964716895233698435232015609196141943705177520023438292315814857154548081593980806142370272611538540838380811209507560105834191766778580102857813141092534977202855298564870973194635316803137977462091443784267395639543908375161342126720966115602644465451773838778643269069480904801666433720276622799090203637980808097191801775977933941094316169725829679332794378259902904001371538819714340812267317687808249242223886991783388428598634577563654466450219832278350693074369029930876571112064336862373155293668524049845382782427574453496868259272477763240246910782349306115300091014876341193444027698932822911807047167990702694992610275889905964575331479319386584681967125850036652079207737059493732270699299725715764879128001469646670507021463147122833566151200363050131024150883327085228730182980710111070396136306350106429472293938856733449677080180272994082527489088863734346965255186115276234586283305443166651870257486614935574476437346379171596471703549479479290370368895204936303069521889490103134584703669658082281659214442937786137656071227881017587403558187054222005419143537638492827513322707751854244391615776258788393163870683430215965299728415205381643411999152317149331382697666571236041505732662413830612930981677360655023271599766356624879487424047069912474328154022592573960386259578957052113540955334398157912868533059901027528881713440420994454391279750911514967697628758643694388588778864852729476108124136383976235831679099942926304365835564598943620363949529420548658310025862234825345338054284803828174124657859757235609049133084676061393165449538375797034233474052073559742933803923634641353167322009325824921962794764541544121245943694601423613979248420760492697500286122274201454793092188669386224871526621844755151480627376686117448343995046060814907910024105123420039149437296082797484692747708671418627688985407556879312847383379935231096843800564881040051348479283267741743372976110360854565495443290917536525826637967344659897065500762417319615017036666210018663720336355686357948004843151782086900229321410248060752352595013931212283495081203086648758327620261984986084832684407236802935437472154641960436156408702695602858760189175042238412189107065685401530443719348278691751038228341797049521868695211898149491019233800632657580639494916963810496000394404608155123461322981562073114095338740117509616972455756211860185915170322059706159361872648424952973171177967192439335502980704243164639159320308281774895594927556371365216170971809425787243396722668321467424398727177576763975806649387002938551567514585841792648357061017961429000737738380117829652285068827451672429298305753326908200082593851445656048609254182166561168023217541920769374819766087916017735584504871411820078702799039328556145196298589723027776485528986745011601454739833038709532040379031716574240614197677358555203320946788191929145927033163467842896344119621204558670640099994287733512135836081888841192648417263555982898166444890133703025817133527645475545703455821475600514105605319177027086412945238269077522046028209901522301016703653356395683521901403291705684964444992842942948646526518088981980769044656557094413796485945797047950076725438472448446493559710661126123815061234803501883177809622701206016478439753676091423742996364182430416440032464536623000626770088632681949617292747154848025791866644890075283685117350002942403126358669637639305095080614303438542724270086221099327079267590086829211758852345445015166174555081143661182765564872148791014540328782740807355247986960964479477732206880438140685182074239657876520262652637558463153919433613032892349939868088356905405715488627339442114102774601660499928288983863340950150503114791172237285855963028630295545396647788892314789333981901579829963111890513434859689724134292571049018779933855460857489847896582187301086792136087327970265941428965608701687360189089061973540538606830748856347956196317532260294059886033714289883954557583112028837050847672971336025219856179841632309075095087004819234999552470819189690301914529714797026500723240249332751805479366827747663177535773489851398144127417198307323868993415969446904772495588837895939599605317319131766218211496864229803696530881233053556367240839772252516587574675342889432459596885425627458792341760814695071822406995028969001739612012179776953317134552110259123525981407741438619553229951000664434888065002068828197144842349240594270737054334856635438223435679207360823094124404784663039901194874479652643200548292891027112504022067444579855273731454730501641742469472944857649911134877272259760260710065197194164826924321583450482633379219794250964726970769176347159158300772806620848604639252306553534818383501850299714449817574308609675265524100958805670143115505445098224003918842711075856908696107444570337873420971066657163532142607274762442350520979198708165658617801971554494432709209993067201693474844690908175676299818572976106584036607587623830522185346075439047185583724151052242487878192235824337257085824443514861463114289951850217603115302144387884587362784683415737089087271648114095398969506337839290928659723488737520686113133938142412310926360296546792638292573393221495636003552022418996453056414072089269998513904088980469554782326293630176368627504612365479617285451765403778928981367814756301744571325135139945816974025987605436579764560774193816302571095694435595925830338591425740434487254338013473047321605632632014043039329555273811121288297010553615145657695014996686493162793272033416589402345944403404639726349892332163870305083549557217868204575663520142972447256139998696973047899941802291276199951296957462136388054926881441938704641450801676037997875788856050471078830133235686887239581020347719526005009394130159294018093419226568436748457251642147315453195693267292291149869593165541855885291820655401911811575205782957658280221191468032724804489777613833871222518629851254471494437371301038969396165026222393063977085490854591454118194987654935082025484697089575434937785568625397210289144295538429565885323064612744559882931535128992185418754304349275288379837869318559604630992553818835380457171622549560159076571886318981615382103473252445586759266709375122922828100176685009121819750959631744185703606549639090966396875732017350546337473265905076139900175270362650646781034634960045091486270486547668238638157611257456585238283084526088505077261454435515092714071387177040632720685018626457933173079409257712835725235389774557093951104716241154770809688375866197279208008213349929832261034643530830670875174104489007680704610300409185911047762843661620509321899626602118734252916792686094909242955031808674722197419821714858453347212224797179416117399797117359647062037213190308183000065125789281963973286431165600495948110381050204171741087116764922936183155989594773435579157979072019673169941382392544725319537514907332503819785714384293864910392348057967895230171221208486515366603360353869054271988976576839164589216841670077927829563840003658660758620156236154816436287750023054241083756246137608148868468793956816029868378146454231153465936231395037703907117587811197451335117876615122098352259619431475718102723091008124537948075807711300766384504590643868717329732752804605841828280880848503538780072795967933377237772648450225724013186555621306259819130755760869405434096936269414303182504867427989213627003417684880027565615415298286668190634602042227966911676432896411394353325675016959652103729605693646242453705723416210443568262739629420097244469681214271828067362701299927808572056020373064546300743791287339733563241330226327861227715055056767553028222746662011377055936517660842281811164851713396385181388273495958761023605054162948891894195057016355131337915947104434769708495714954512545152006032416327335498594770769654799008317846341795432152479738168801715792010958417406446127511074186473629034522793436691649606733809817898316984960813976885841991120491048944263919740547240913603105565164673062906032121917289890442269233991729152267538838966508381890481794660094922677509711010123961671315124769992788140050964225628818882364953659255830500430202099727420750507219519978748575691202691325459739985394656832730551376649414497248629801151469736411956246531012075219139382640698958932874474449509838383440658673763266749751725756597192951409868252687313603355097618563759175074704349626940121635877358326481987717470660110225312489803520821990248656116691554906408540371232790395703542333299717899676474475528295881524826156991481362173828419955783930799199490204506834125730404133958928816781448955362776009527665991290754437102280105915121704808337087881054066498926625005013529956753541204961752223118963248774775667058552294624098917018851649011809162175225128706664853655262089614174132733943888373796704111043452686488959562013598981381490309432259242045627971891161927741531176673889712550452439145844655192883671282869458718476253590522473636270326946115004766764318216752446585636390050048365235716878943791450605802179965947134351131096477688931839245189454716051215218288455620499645719615908692155899570045722069161510347750659215734981831726028463381516525748984030750551298196222115581301924849503636617793521685160042882559465146732680479835995127307821641757168416854306519038045539257623879349690913085423351047059981256422591576520858175421384277992158471995743611815900700968383863716430879990024864971788991204192938818768422690149403191257978671718428838014799740948035860534833310890568119617459877503742401547760688147944648686911125762720544089620633993715270358900527652359700923070666093517181746129279139702689591702565721752315668387704768571660382364550011031772385745547156958434378987870111204504521149717208364181502048791595351733169870187783351158046048096174753370571150178107592376166857199407543819404710999368103405813095870600813375902181025397450060210763832206572764468414810536679523046574212179768606991385382561416415391429072563160696935319754011800887976063759674242642995495126695127619524908547073978784190849516611615575874171368991637348469320874613518759445982055901163599766186024079426833327119844590131879249636377711877804035567509210825507806965511893710528704797787419082840119959151702220862025676803392009941938902804294326168168034975615702062836648736087877192519005754934035238513716554036051044765106296731764327678988414554464332945344122752942252145125090892537293376124750196024029188963073138201748339666025088228584260802175182150060418301801365551900642216920083081665769946437610599571855970734900294650657070434342675020888205603136847516338027022146108341785599716209743507763342916140943767317220810590050991038212684708978854557155394804415699467820380327210662345436394294408685441671461296919110273267670800914029941950273345275896300006378439742793173950376278390981672405679422291942743061384597672095692420838821752435087504573732627419909938173365716103228732675734363114599250338404971064519505283444381907060797517122313027727323077115013549977874242882820155895974808465312128226005514248243809161351325787722287984091708790574356862515059355045288821651989794935027169124620762197396507802075271504977653337304415221625443109515434675787169091682374594763704790438890117138797146933434448770268214529193351282130903069480063740102632425626305360860873674763546886983314845995509689035754095606132322229567520937440790827176645223011151791889198326439024572514273197160756534589393014979772502336085759870037040531953145076259422276093897866291301426193940980388448717933436251241271137076204128830743488314035962364046907604769382383910009137553089334883915860548988899358684587983695151664635665897261081330615284744993194237497580457929096996950818130219330418901577600304087597780793064532857799664036026398254427133730544123115887129143730406748738415800142106791602012967449556509818611142709787959023339118243818963212430132923509036304440400565044864869656360640833660751055094197253803173299851944752263248599393912988388591670506450619824916751073725319197730566133982294209485778336300549103003427646206867265722738065971952398499558723140044480605851728506866254288114963797075026671444561043824576293087991682280192812444721250734215075317014632934581963337324570632703930118280435805250434500672687953074584687266595435021169912840864615762329889907561432530860219570534627855290669980521292497726195715980223969572048584799774482295569222750958431725763261896176090451502661519842852721948377068886991758265683513439566678082591193097800453093627152727248283705308473847256188913025460036198791621327251280512987867127016796193226623098921664014597906363379338878359410282057908583677507978499949431076630502821226705732709401426644545217174554226060200828102165894272974225988009149582464144413837752227417166307655238451079059576446961278558946818635068177749685733844261189604128222247647101284628955836556304505568549611637624953252851597516645955889640832604542430097318154775417377184599355538589641977952658730089788696475169240353465420253466460067480407838273202552252749759876975352862177306601160534816170010913261321425602292133407582972390808209757670600169697222247248327240989599429320697969405109445963900087016365248580166353767734483250287691810033723702253049119524452920225754590924613711611495678472732215851047898074678144610558424169319866755314241689496945538911621564802754733442382320602534300821976142622343264112987785290558620809832998688013974103848285624068749027366316869402427745256349391939229318861843548218876761769045509937053230380908848094165608878411688557080377077477547906751712810007379597866083495838197666148960837279131579822053834290701275943179022495578400169814292342979124650936009328364479107297680165746584249785923688863046038706524088463574324274923185741427761360092299030763065604587635163127804414794932960247850209979935844131599037362961626549930537584071045649023062080009949996536352340712120289035508783358650211861161364952890137146637696615477775316785304373294223257322556669339553042316259950488003672095240528853847585476069764650789005311388364412922387551039507031050106532934058644714397440072730196414077915585461386707264988236901563453459375449519273639804577394829757572753720082488532547545777302243683689059399217353104825399686069794112210447639585259411220593403460569171034935592285113020009264410843297255765255770813178792562795286084503655391080437291878369135764817142713294680674587134660184283409446842769408399966010784596627145515953403534856140143369065054280602106851176224913586315426336794939048208750807065026747158093623388917971585084589363010241934094857521776878531142850671360213333629172878408391754643470016888283475658814151631305923512760950276913717643179215281639753336274779364636148849031884223313080765086236498168991151145601790509666556840564879804602671805370832870040978793686446513024650648317078800069538725226726741005626167731991646046749282184755687180118740975520308844666677884592247352156768362355874924462326113301284099945673178441251291520844681841055507373341946252045747736622010765184447336162230560888632771764350876235698112488245928309845644122919093925847231400410548570609346242589154058415800798036565752890120585786731281864026931861982462307895964819861365641987641303324685164610023952679940757102131621212902350079269929096851528842852148433209017984233935418181633422062814774086231203375737408424406784019914869492632010941415450134659279941859626573211506576077160373406644438502056119896436410569535406423516742890243365820950320755441894704375238533966290739499684305247057597065969813505114886723531202677412824867659720590518277357562012209076721591971604128214204193018201990421651926619513013679459540620493325979009917892809209496915126099985787203608441869647304288453893892376191128518240803285143426615220364953738165910797091165210611849160906861930719899202514111065954905735500784416194299928510380284844548388325610640485810696149164550301977785141029641695000142056842536802623809099588985645948883556566785584819889397912334703870657196405359557575521964738783542196525081447962877754984044838819913086421212393552926624156663630241967474114993265686902179724402843935818915032218021813122999620671669627663841876237601779012038616738938585079534510763478020832231060821390937797325770625672165347675918001729421144703056888301994243154998208361734111691239707960463724838754852417348443084574678735560841448380571401671600047727301190769437927028295945615032268360959957200735647007399394212731161840330281163568909220258720959964522231600774005334820099846650265428959990422899751289482961155447335976058128144714729755341885253114637080689555796391829568009595735731012450836652360171493733766928210399210570822490734246859815078571983029136183955095729967101469206785317925217599959096946761343982960647715690814346457591131333644312995953309875660612544077374384417942576151777059829165822942450813104442837941096550722743750873175757981002002982146969321536883293466139862667191448761389080305801873108045082033515081637123996760603381061127137204996396782668690570555566122322724886329522186576688550526254338613675656297041310041856371765358828923815880547011369826479964111021107201612561743927689611438329641560514676988982627983332116124431824497431773383785203870181042392919944076961591919180157367365311417081902178261965077773114672542789792812120913691572209141093816088578678748248680530756407358221597258472515919090404541896907768806222333795220666137775894851071527645242950932876550008657560856297917286412179799522091065995094627094619588005016801544502689865850526480136971523520592960753631946819983560068229619840989179409478521822784557656127857702653226243429685201766136651395816977649379307781577431557753569196649736844503589414851441581564053610526859931993432081100411882084783656333777942505195438903853020768539264239423432743548482067667045894003157371824937398645886480227276116263568399157561777268331115882914332829919144926342573586061962763441338715000748571940557849675064211686065814037533378385282532206543002758023692333537155341814792727712562136233237613250300139666471845588776029029036894187677858693912158918646029379542148988205683674040640321345819314716171103356342665516001589473673084710000252038442598108293429943608114675374495509907737754045984100134274789982415400883103441109401000626126299497405884053198801049518720382218949878522749640702353416675555009325878951613536673873433588301142841803511941161353568642872363565160674707757961581086797142789305042292484309369120318111426558894676617275003809345225385189382553565218108252649871333566596414474378506246381815821493381877936586216942291307395108426430365407361727473462633933845844698946618629203973507732512887502507666156055318463248795815358003197837605113861970913352464605849450501343813760592807864129813391899131897789746533809400464043958328731774509187143808348344794220039559270116260134746976358214902781099471652264642057554565235517558681003148290260967358657323869467616483365122992304954791527492052764135702574655562265896717987436769041436333179042119629783586651356482503183546126918864484532419243022832186226884904632324547180569398586821004446791498026811747013321960593677759365083151018869023406347746805591917719664273082996029367373985674594013257184233584633539559671118963631842621476201139895562888240806092874980419295987689952787479042412037432132369404007964606698945925903262021132755741398596771855233056507224171195678998751924147041344878823649248742367919197462140932664146222947739723872596513547600467927141583606332739777895787525787871257968753454013120976854606834416332113994352203030222500063232065212400103761124307096150827535060765333300817890883408920611111266729660177955844391941810935919193997007870083209772684067927666707013967641009577601238488343124910585349792566060744824549044564743762870707014712354659519242055834897938777616185018355107515977034510813444187235354686873699283798512262312843131328795818937084524706223927381914578521301704001914686895064483874406111398349559456091716832057291092769154987204295863640725106805544477011826683477369440316543992736372366478468239683235064412519710418360390646778975969857999537902454215546517201573141816470131885625755807232726565580966486905512320851273553682648246148249334862956303434855954592839115377470494919902534659115568588787414206308497392797694429931806609600925478637367473404006216772413829313674166377030997574421253589564979019191797868201857904625321552341520422550744643471629661611221640060966437318916101027189956693331727033135325302004921331146311936914673817956217079693369674437235693023875467046520849440970263576951587597701891097799862617468486070300207587046907014595990332917661497681315011222442205316690748671866220421075316135911895511133632155102406292197179143792599944960093954064238573851978179057916051989015570939116318972191441743280761093870630064278878875092788988547621325206567311206318973310277864301311960486777358018560387204742883923392466906129131801235304345250255385603595163147860944955715895804615389476196595040049989802807317216716379703732773937515676266006200958750107675473362827071669577639118642342445453773936812581036105356088769896839324871218234854127427053177672647590956427828233954933725043344373854395019721902435248159829277087094007394061515862270219878108711845784646301011780114717252959763741890406092311668327126292192251109953584827449017248787559955123503249649052093317826422325429807335091896411842092194263802600114067886730882539810151976420835404756291097559148520561280587984697981437642639464415074306017423365995191973491090139028044960360640341967800532320767747953838145190967594578816564121133300330696406946643083326283341898639874043020695052429410208005694550432986076610390248776915663278708046694230385875981921985594886815265302698463113795602501346669426160266443771883014290824308892020123084145816502513218847745729691639040930337128197789853140063300187249968954952862523729872146886015970563541182667419083096516371772066486210727882345499358933577355551827056795382109217326000545771575889203204801715065844202106907818465290752103298048692460648797452022362622204442597029915056026876465416073313544257321035777006598048868319802192584504898623559195491363006628080775737722443764883578094137093914927020451160713339031449054078163858969386895807040868876141528046400424454092730468324779232128189839560796915053623429160618709434543163642751482717155218307140865144651754605540165981427941446117369184561598982170916063679763977050441037611524358106939381525522656611406630165411905775784720826987666822816912859119633155402388190494412653774396363702538745802365106059089581618424862235585304085976389336594032203950048104182241722773138670544405565772512770899253583240103963630757499417011088368251422809917011110035103356611880750884351054387164088639682567521295294159798497839820920212667204791001664554912811156295665849919057911421953029570087724930783080492868559210948108010736609674425060787673546461348120673189764179873970979119965063968495328675499763422300854644313429027764159256872704769798239997627937080992677900352030065376846726311057987216403271468517979210160383838731712435079745603087808805777891451686987956884567581850944817983925949433641351847515902784687165058496950816834442474300585726724097506842425613729224373478147946788079044118818550845181339579057358226175767778249422211753232029863736996113238814449082050821348653298355724687720951102536020006903649388012109934537175597903614237790338160843645988669137743361488174577959751303908423619274598435815501763304232081570513415416822678636066720802719033296213170101068116212061595934677433698089163237777815591559321785476997786040328428079152812643887423210295210051022054281632894625407625803451816754220610948045402784381110704314821980131244007907237950602605165586958898605969132474140491772876650674513159883419367484421261202726968770964983257176008905729767150061598633430041133188972139697906599059523347936921216989937657588087936828075018129908229880784908559880771093937285539571315282405321589195186597619184187508481763732006489497140107823748359394317834498366823267210840693600170739460321474808695145420269699311306507613518847219653805278054537882270355838863451537955494307084432757732768953747385805355516059892107247693736368873012378622964535574242862185707933098182368892871557604270933165432364676002757697575467788858645783468506601600181911421437026489955060768169384363098503716249412534850787787339371052110695105994544119281471053757888231868937592978722021926218744355322011379122187372902744582002163907620159952427205822670105014266505086334441480792071341592797250998178662167116987610145000324105220508040524110467147804904357177102673575236938634997344668512290980144198145871571916233126964781010980514958056637167465128388029038200806493371861588006661393160841592217271753462464276816896572679056411422877094889571413565424135548644187200895337918098260202145751536712468109447027099704841766037242860581257140791910438317250921964837865091335680412405185173708950522282058454947063727708284831832106084735356519737197894605544713500907773284383103366771787201655082843133374162510836729207275489814330842345900400969685711413216991252789109341746150382534436010570885486508729582573152928605318229756038258771258068238565347608480058036291400233622885998192238764063045332944801245630905143077959461543105195441137628377197032139242288883219775315579267158231595682573383040096550853822591498411743982593638443617175418797701343396161288718650321026387256423156945722017030827366901650461431081163929291597471597040917895276627889478024947676673705543497785987916194306313489481228023210130278997711102415476946758072059609257352293398274589041450492754750929550161073485054318498558039646618473355574335198824370258410931387421411459617399720362758337931665535106369330873474564400259121585044790691785214064122838829457417013973557899779935708602479731723695574037625553735590674179999981053535003267440894746422350942082736653289613211427279320871688572164278825795849445258939498960095120691445919101836864023990000541474367097571264477951265792301555015762549522845641358145834608251266924932146623655119526262579757007958160240734617171438543094063265737454923580145512439566714784528163684669739752043662183879790455246282565285906583416883302524032920809875060179238369521464300010976691427675508810021345468823279484119923173688948441297256145274915751889295858033719664474437940545518154822252441502077754503032657311490049140513106376050499711937894805526159811583207050098549326996805453596719123615707711169865160678732048103877604501129340008025925539040350321957962574072305304185426385455765353883692303216728200930238320491032551907574291287622016379776030635517329651984642000354618819062854513086605023325960786984729999912854970986408327916493508728332448294459768645288058221513532252690875582012704688043298943585226017626110755795803381823976581840683827509726587909386085239402004150286892298867675801109440553133628181214452210414760679917850213665792487905134709989917422965661971182150333133937503795844243829676203320633575177961580956603878842928999119315187950159731004902239172926394038096607471496210608575143001554857949629833306684679743412832473667505987427285133532011932938102716744056635247996065683429573009234088131734524565329976310371532909033838037817122692875867023089189768280951980835846890193401641005571898437604439309456684396338897893897778987933164365171064313934043721396836677836075835164053293841544518768950814951553630381744835452256974724319358635840149562116374947486548000217579424382688080212508312452255975189404939854634715127890425987182807066720383267980636467994463124733093123155935183999796814229869182818292962437115766951234017425386702259265156486491099966569515505605109313215162115538851975196182432469519549979218314703156993942002178233380601433281324010421080323258062174097840678303638020127439996736974469359370040887208901259373226342852603711939311962446022348089306339556269935867869558672055649924351834123448216674881243202194813351825681884156209198298294249151712601357934680690259334677856823658470616956896368602764180199669166343079662091506528503587351993974652310548597562083752341424828672471402250945321678621066843777369744552843764537028331286192698214345293329462889198855972558976983440794856175745036722454088764708987647029435729993537312006742187005809862873689697755027790445156795954429515339699134492454018141080098129628875576868283497655908372290629437210905844656180744918534075027179907957224054065341395558768645354996666852876519860099119488750631310445647868859165537188205610677404600078619869379132466788692786534083016506268518253336442733243199039455927949100196798570614348308920979904391983986119652643632421720348205513481803898713990623079769781030145620236017629625758634784518996069428978302623555686126622234306040092467448070523341717150852983871694190698821465651842384923989141628068777863964900966927884166733610613795408051087328163265758941895419523108589834211865882867605550225716781780050675654050012329596913546885662150445598891137865062918305417671655999691598054990479096452235109939639055769316355046648471634132492817341700331489263047665241097514132835052420925311319065588604620250605049352289689721074401517185210608794143811269326234870525437669147024793466720782860728951064865972592175742973001382017543684754937688361030469206606428073044794742574677387848514141312982562032871413991129142331706734879868787963891573298193144830428341868637987181602568574436863240001340762160473327820587163389918720602948774981940758239709464860568649172817087112570965263276494249172918229993554349614055487198380810535894715383680657840457890183039547186546311099947114482658818420103661347279524685840197939077266680690535288773212957831773686035336132429017184689173823323728654440086213022719133282091905911204387242821552101264557523649275542203178902380131357461071351305597782605619914065827971329925023405331017518659265096729995452764351684075694258972375057221621458337958912590572737636697884914876067580815494273531954240943091155159387055860590517609363451403381541397878307514761616775403538607865726467868034898000190436456941238185536797550143632542191920674099110747479942493079883929132456658522669566054525072702986334849344079447627221687655057749476725113822415288880781123891584523551042262694566395367990612972879305208824075360858294023381161271814677822817053707945010856751783429743510469072731921531086983287385272239796797802569680181809174602732829440978104153664180081637143555806611459365912006631477649570641792856697863667192597690014534256314533008988863577073691115643677753180186457891410218014954487485768166305260636667867532142937172845511949113819940969577700149849735897056855543232481102289878801556292620525806889371857693962678271870350174380490988811457764275203517870301163989491640709591541415110568248014967020364161769365153270439665663588447508450713255371883595643126459061005297062231455972002210108801718547293375940167287582164868579742094467389195177447591535598772094036757451073552424081475136198474706900961990512155819865403474014086776897195959240711194944343063727678921413146166478866658149925188115107841843773615892523419713967660666823921663488845447612516005409958783323827715509215037357704840780715677222630688661389508082839586588274490371085717350382619977940743303062889872780607145701071419025174506708304140610746408408914269216339315731449752568951002680927629175511684685630642767277745010116997422138899938828519085201345000158171630818948229775577256464282020686657661133174672400809103512421394346248767162218103652905313137607000041815633943769406612340094991538446653879386917614702174290494010681797658767468015892229424361943635924971172548940196688019787519170462491933399002089214251533653116011576517451559394694958824429083591942193552410662001625815951486068476517653290191748771772821086066870660575936621655254068236172640553262214745171957582422974916704154864634074426600868236296821800400414012029067275176139333057398359569393197925711533032769354344739280764288886689388945919926016221934176267894088701194863709046728190151631478046927950081631943064501195971738198072813129248076292392015563676985891526673165415387553926496925718201795609883314166890982691974886570740580472585647884929157722394257622713898087450101415864430223874193598261391645531020690793782223708119974061600536035712732122519630677835163809741788530085161806386115871166588543455150408747087405276583271787750543340844091490354295400923447750139949385944505799780455126883811388614924608517177196124758787024499862216825196992755856044668770909137037477125486961988030931264187911813943701040964531678455823054916063913013581621373825849907283288325065015668398825934941307261723164194208103047587232770717033858099059649706586455281405361045977130501783130407353391871156813722251365727915916912083185224583347464640682804163749808975785704093628730189392907166892811470098384959955819214976553772375224753734140190648322105010118755477585125275167747555271672738040859844346995249057265562868017575569821947882648851305656017845343117920739401248447040377032562431943339115886079154795139508361703695494559853069030110757996229259490809007614629119662802309042951319345137392115121153547659172022471061711431686371511950708668181588708653363080091689907173326799533577673188255235522227425236127136848898862289485766091104270372869606632357194570667169394873117855804440175907410365622680440441450059286687795276341670512879708965794873836190512796530596546871559803119462937519213257822146708136092105149914953785307506682558115454078857797798996161772241033446986689454348418815320490896922963212127289008274016889383872968055145533561813071845045312103434449356296334072874288261414734240475283920033540195819915069681665894621284424578797921796065613067323112758298282354565346688149168729583548539924803781495205776748026727677624693153992126678183106060947255716595811660377745720521278010782165342628423271266248682792094039970996421110344346442938441345932819526441309523763191806734772026724835781788981738750872073561677584247288000564028199411006859646568191520371202605945430153755678606619394531290663923386724303926027618878416118230824266724399710318059096389258434950381209089802383308669027488995257876784164100479555048946789612934708417693520211998026896639546930797121980850877636509944656784752986443691718228371104900175080767153953203278849608221193654292087770049239659293610168133981972041505067825989201311107943420817993983081375793720558693190070629552105162445827338243194825519513609614536681419122649284307654405678255984215318552854203082647196832706472311036863497847612479709139820357202793772324772045088117664287581886894522504349134092797645141806476727181847989235132173062227035699552716121077105380029494247454090449155914682574578227934900641468672622482514987383251043892833354859428696891400013918485806088822920934562483605982353596830143493378962642354539981218018249705695671011099330253893449739462217279634256720061557978210890814137379124708665864121532742797686928370956916403564631179715838377552603621955131700668075633184253895043520889003857601088932299370662768772424499664124795325077360774778145822753625080756923471060157722118551569869587297172237071588511409422285829771028684402727931004522354942666564289260466096239047007225166125270590609923634272306508083600587454646902696333025275496246422482495923615729880813116804933615529336454424041172693368790307210829721394451032186109359344548408054097803028469482694489514557156505991406180934637809821998404143742436936038919001215299457920258127311012702808716381526864180767535885331298379946586916318281078358285876181144384200167606337753985624727794569048901228310189172780175287879758591566560478405905118302369873294854869957462655478793729050647094915487976418568169998829066348380316791788278005659874060713507936976283627071290716787948124644665146362757111811282802395809423023678010780532813154140702599606284310437940982701217881498923223723742407433238850270170660206979167042979065307323511633825031072404083900738386336019064582368290219566695851893124080887502997015534987480600241245806244823491396800473864501511603167270722599701705746687504740492146498476828823353734176452635377233688109790634840403143749859870237991151874029907751458991964311470429200630248776147197010967533965417723382768874850012078429332616079414323655553236435733431332984432224468255825545371777679423550386562201524293445181751618988942167911945307314880739223911908996482563529746529818941920844298090506189521944760038066888186437940942280318102303467622940215546894836684741974850682926909456611643820011784287835817023291119512449800261865858737384794854271766427665804997697107959674465456326478826632764573769079804762747396333038457824775812902022820082107205566873968926968370851866750349053731501207307943550056780306023167167009423286412445518496595519033803407681851555643434285471290348211605138003684843952084894770465104742913268121311443643032142282566531186165721186866612226172681894154986979237850834826871763946404139171953691760270106900655478495545512829193438603460392454526052601979339470649503051317159654645837123420415963193338749252810372962684636573980842639074466675358480722563370827927015086979335730025321043334004527310086621910077661872571515360386292539826915253191403336535697066450834118645948009566523830605443821765383415991773208549620524197568118351244934783209545370441825854216628087264219428277255146485777676340624850517462412688730928435192326622496516969812396582951382250382144167876605200821862370218085448963258121944385620477521288586018372382790018364119774154558341073938685061369175589213672965395819120851248546200400186842324995519637682131013293304035570406289585023974386054495597850410604444200147175014082934080877178203741729668075849477469438642351771594563303069659326310207488655918242407417445008604226153631848126306812255174623010379274121254311646123106571140129968500712484161746263823712305696618872177522092690493522536866795472629016163240281499912213937688595957216520204383930033837843620667248022009697552412939380623810228313366761861366937734762877171754013410273631647658292353265471492888330435722864636597374550660567859945725713015876945380003219194189293366292060955557092797103604982002819667231292923495457733914591527053214377848614170837602233171476919031303973660749611582268611107078745277011853582417166572351918773402935823809793900784513865876737902902003111688440566771427822310661272733774115340077434550570583317123176322475292028612903934277950981915375615444363939067203011004163967296296961114155656075311728257662015175806414551810525170196717395755355308850727483362166688993896459434785404521074089337708174634385880022943594863495434334811230238417035368252028077075887525945787479980692593238218219334081853958995956368265160375203592183205191424164049679979997473506015497939528204267726881974224994022318609528454346738340625348290518579172072861798368264307430959947738246022156544132910819018391184015300328561001555104848008877545189552832581875148709557196338382091479223627121282625527211300171208347401596689549101193254029517224888783771926841922138650939019294218093591747254705781795920368250180514117167438708143654900640862796920233032768668505482938761467672049439399505852520244185223484147188912411605838447169192125015608416472394624704404295385275358642964409272729384464883223983800468253988082034277072250579436054526782323729120921657547128206464737905635044066417623402884531000511558013932530627315899112998238739184806277258894328172232099914894576099742365647580366748988308661364561738303196859525638423876091519279323699881837488968199453545560843104084823393577092475005867670791166014744195671669374167838656022827988569060319900710213196179207946105814159965344643307928002106184078840792182261218655065750024262125148512311006416565980531511054458411401540660342455945821426117751642119436707508423635281999567265644212410732227380859629422263171940541628564237019579661607882285220380182563588960645869979946471664389455762788844024917798381391706395563673982734307100686650192167768141585161139894909202560819933971069016496253866166830849214924974178355635303762108055903076597934175640482458099295027748786023425978609847478789381541335245958278035585265697089049341476664547402704082523240796559590625248884550908458473827468710590299743659375823310175463874508767090359163160970516885536791717675861935284128790115714415440131638554083495260795866801401615748585868133726029140484529114877612578583926139888443239084576049270576762582626052422057023706613171654786370809618839349176206786508736305218347970454899404007345510390336477074567696448494179627575550782306496679894627717056050842359151612279697623080524249407126800547152741303858312296298356893111147903092917309473326108215748545691500209059198550682730851710751365790885112413421885231320872264406144317763629063529352709877042039830757165184226707672636868493220369145553187596894568294961709083917699396526459494273400083744279970453346916800091598621986796313829014146772158255882307678030221836614366004177242783071051152051860607391530726894967278985966424594664481312713417624354459712693642021344633554633595731687747835120850120490223050928176117693500089569460230536876961345370470774899233171892706890749447211023778580737498138971045641750004805095122621593860214004184089030303060532840025549111146190372469714676488001291176236770183452117110333010914305242320391333665794218208789636778577384067536658248419239934296712609784162687948443263779805358428379232548273759656489040493122670749258301007810034490504396691280246912813438991011715044897516149041448657228441669540666435508149852281342405799964818433546942267077932345006445474951397424941076680367950512256935962167037318926724007375130089923166260343779376444534573815601628784728145902719823010719895992362046726546414695633792119252728853810287978062728423505768421561144935406683355188392894861860675382903433659165579747440355936293058407230751714806728157919817785060615076226191955760444563709415961907100988304730510931692946224942689473411304442538797908432191520106278347613892614287111787605904274972323111421010041964971299390917493135202356304899116172019896427797549291487637471841405858583110111349873439195231424377306164030020420281284893462294594285115327441863330342921510446935002704523772973614840772124620773924402591268450027260569936526111952953379828100649765034105829310173015248910489173706729940844038576188267095777682489409969752393730964879106956667595983084082369042430947681235692572477136020201723931137651564477993344635277933090118497486995965856675507428428813514067609702938805979467453770571676791753412559213809425410396748948091464489752272103767742601700707186776844613216926757203597624772970518721898921752009183159248368250877777827013557966448427398827684544634573758713731041098281943600665044124325753768069250160142973408241281495441250213127199212593370055896754096041672573322764046825946879689411442086064236046603864619600179875809319399666251243783834518841562070695804985642197246105630494769397821047942740934782713870096997429733899978751879151793919112723459037448637174189452122777182656251507304431966185517907896460582869647124181145950230839481337218314234525981439055744245532470018982780062046521527852974158037128213760080449098205894433157056399969280657485436065991040073031646635723874400369988615406893076219819043875486494746517551264026175081482688513376259541377639017694463100293245858692386141598786905889336491183408782511555860640083708161854517809583889907844690898417635204471263102078078890632970939383976240174662184191265599655907545827403867475306465761257064262528607206908953163593612440711804720151720390766706446474237053468236958745516417177733063092027461594695650391281645657178732632362599269519997407615498961261594796339044090919018973571374025883079950584278666090711069573764666734883043615693997109559858654364507911579076424511560093847620588830457262519404263980558350859979642227017085636764247233830247062953739167757336895743325407898074587359391200972469379704834631225606278057218654924725670438706989612363821314004435070180023925558354466130691591006710278729086233871095742593687760587000406410358803290185764997845355121283087772696519237935852301630201344754762095639661657051147870176308650846463617659084250316587877661369309072062755559332465613011775234324891514772289734328206960824949626566647973757054638798826000906967514719960135274898633720092439219683654151682377466824380627752824036189843898467389225172918530363509073722988822429853019269356032682892129482105222163380810663313309926061474824583532253011672292895188080426122567757072011502427894538184389751109405870185980972842385658039580848209180442242328639367224110301714958183049705407574007318273162372247380093586063460099743509628029704487764607566245465934402291120145172348431861880979168139826840590084743750652349976119500867792529150074157504204709544317553818137142204460019109126780085101792037727697228574692224103387178217166828957808403122509221267400746100751379335726552745580227645282176892356795115977902346470014894477271759326804397466982574231594527812446328416020859376993023733749839586966234097594165953919882790894292355117531336688056350324758413904805586106973059831006307202581830292059241451857978027216622418362230987960206696149654157748776420724940046750709419693240815964117275056193386355827288822745925847889078811481911027445566392134065269785679843212492815608263659967303814238742017845069187135748385294861781617685073358656358828477098200116397635543015540597055288683464133382760239660863979678211069497771577556167261167377305514995406089977695587901949802396347201940373846204264531957809891085002164849424070459015142215064167581264587497809963228237777759579489629271820794394324632366943094522620779885434858143492105435908967892532810620845249489491539828603210773413729709352254444240683034191621014187974253538077370288324304550803631314073504628940539540628492208263297509676414886445300059643634719400637337876196348724546000954378699838995700185951835657160003890391504255560634821062817661847614974959115232884397078265395615603284791742251915322474523460287233695434894773724932065600928187837313583323226149002158703356534631748095281183214264918673011560234882973056108257990761102040080698535041852387095798843230777718594391419923072901993853439955881098140122288855898092994820294418829932780653796678841103315518955137215955455093386734764622007295607943248708236893239420706197924059617425524680681464177646689092075677713585576956410692713338251143325235343664811395993465186233714366217175115979078993063511879093918020442481948925796168479729430103413740400837043761366808879074060641292945780768286320775007599679209605662553906732020192455120554112321914855368507713136475560886139892733005404746497186761232267198676553940621247666922701765507319259485716756053183339151933392608647799821270483604556747774279439956016256366623197996407306259742393167791414853573246021229453257571058309689450345177275564168954141244646233774331469833102849361335450700419320921792642599760776875063977151840449833566054384412538971115508758295674421273263235384775078054093714429248973096658293439069664574975708265232954657227216860658282912094953620579524446739900232161695697854513465478619366872559548954521582869955232767704491067761615407538252952543387369639256880276073162297819540050659964364299246111217371392133119485731487088742192513163917164120032055767037789745703671169511291030447197025039101977138570883650874668467420830189162690714632402781122977485896213915986701236318376672694612122259263058499507834852955750949742951255989055764685642033954813608392431781897862718085528517538677255632504845378793008971220705623250461251052850485498439837495802625882725276948814882698671225751956779364111191298285325879499906687323673198986700624963924305770603555702235710783145795251949227729983609514954766993192691013501253679213355333256215899294334194725908854646983614742818733111658469004090051893039073327584322258086373253227604449371339402083772066736766269036468656401959159397735392667879173646628410219020971644461704368019518368290975794489830269782821013820967384082467805710635766970058754168322173264660655823274782912015845925654088035491075669181633306932468127342550732251531611402521634743419020943147172853311602659622190093829060705303458951896662515257162692429540364431349132897355562683792908821051874855602565372295252119640277030795313381591190854799535107178965620141237734713550515763941344489359162261739132539179912314251790790194578676742785699061801774286968122506111909410052897823084719127126312775678095325919139810936872716715325284566123205175412409336645807933836237375475596180137160625044743134608678643205064341720789080236658291251958557791126468567526877823887827314703168425713767000521794780255628946667403165902469378757383201854827583108558914269983493241977916893053497102124940575204130087591184959383706034590708246444634743996643585567218485199033887312644649579040440789245504204772951525888343687817980609441230889593544699164636115851401042492758767387926265364453089027780899177657109145014587885322595465809964265441070749633276353947393396024651346520252715265199352008361340626464222457185828597239089861533679913443133216208177902166075748520027463187110724930576899624105726324878730194507079816018282843073040796419167753686131909247190104429200082452845378045818299129219132385895827760512364327367463133479830759282395516705344733484353640505466720920444225965468480663960183520544860828056402257889576022180085286523558202131304263234314587492762065340855788326327691626611640710552823118248409999886848649754092380976122282737068050373601304696847129608337288710815839084354687754426338242025600482245601279822988211368903473292728921376501556409978679097050387124275867008026297557890598886938651103893581563823606672580078230685870137932091610595789869065750019787517571366225498985162768145075337209227086226033778215839618115072158496026911557045796462984113691194543599467761180182681465280694875805881186352383664851861828028312311920509525567772391895317343077079814728241267166991049956187832399004628925996838967340267471307124358203086092281442511848264111068919245571088159287718286288705425678838101384952292397653469652351671115286109599336863886483108254001396730789544627527720460867720134996085771270766167700132328198980169392194515418391872381764298095817330051553614979859182178351530526688459848278853208008194345258275513647727102734148767126360368656588973374300098984285237242139876935379755979062204915986162622028818890059919225067550565574792052932217450424466180886405582523032356769434681603584384491150363774975078572720314500975568334555797009889761221380222174407734433021271718415422391531710866255297694877398023813284988317556428004230297532504993873400755399092124966167087777922747515811637048944193231799773191501883998621879383871004273128579850568512409230111203671294281581989933934932189190090193011937305046717310508159237765983274237075678443281586062418651455337356276909341267119269574269486863217756544991411224280078638425350261149501547468878099329456210146732252510071358959842816543654159747015346118249378534517978838099350140231594751459475284794687707053584877460494185907684143453778681443911333286649165649935448135319304789154563187860801701790701035315715776623834864314144900116194779397695239204849056410908672940679924865702701025270837295582975998422286525667475908229546940273472415601249201749398804492448298212138853451293876019583642645524596847466157688667877113569471616633733883438397092208386329841082330597577797484166341715198184618483982196997714975307916797800847973349838656705138813871789280473855591512737457816882820538526340741581631830166720149504534127187317864249831413804540152733781989656522840094053828570928382071370278102385250044560810050402371199750611107554402374128109589401594229261570185229142707185823785739471558823494048469281071235252207929960512622720647948816619662606216036357634490033092967341783932331871758369172296829731713045351636527087497974235680805181174592731371036492082067306034509943188611509592402459300359876340251330275385477253128999493956466756156182334658125516983340264882320546297382137662837309776513131892734196423376632143583781547662646171717404190006438472574587550239220188385661766428169926658127946724456347144009952044999621204841554096971328499441651554369635765645147971759138079989529077071979952301118671035030553052744951970050679329319480377323769610923328558504327506713869062631392325940079848294901433497787527338986739236076509710309582183342974306350988576302605220128352882724874462829296467429579426327781053027050703178556355128690103874541173189955022652890971879018860065893288910467609136630831410567956847712222024551258260912771462763006011339684020262643929063844298771562383086468839565648178539203031820084217326781110563159473258390793209482431866642590103695927428461025450988994766652190119682600114248575597599127291806826670565510885445779843604813521599241605112003383836599001584058388515300530817814494775613331157571807652955031888672841466735666513739310180622732462421356128461981669321970165706932604046517785256371403258056698998118050005292902987959244615706986347178739833137971412212908899432904661606524619098220240844112219980332046818357378203164981381092052582188926079261202475692757029212195493100476495412631425790628695491637140363435966102671129431108757819603735774600532578618873544949970622305880042898955123775779302522884879102677845460483352763922422294561053464504836922699115668368570473040151557785346754432557090640420378657848675528582713843851442470845524729927644008669452277234551311016165697836565480053563111947139586886442824828032616945555255894678616475148550030681672651217706126271126674559472469609397347866051125470194689150182598762451602752188832153662911469247729513345685628456279415868375051951282780624186436640847991579464775544057523735643456187226526633618709854271080523684600509246941570755290068930701368914534991959578336234974724018885217277465595167011281469064726823796346537210734420670364576127651940558503439982382970297168408336090283728058336887837353524924052490938445343321571886008634521972306745752147871800046796084521480562135115893060139722030068690625945857225844617735105042259615752001437648028349317285207433582643648074591789755664147704730985281017684476191610304985327052421446249738588599321922629076469832672729038153947104497631801328354726604754588392760995621687727561053202582448132831763322411158430120157066836390315438732903626564591939597851308265607912782445400585958655592507890809051047174827613440365462510297869504085243491997292867430753554758143709262086869133454997086087642559256643238543582114859646597085637265244585280822567668429415363282732999083069313735587440415225828592580701719286498748623084762336688145213071208455993951455624812464446981071366918780934205887846064588799231582993543956874376249211919476975034869276322383321896677335686300835915013844048886235996990561420828509032665298544768585626370390296731381260375074786111476000546750326844059313153422790826543658483589478438181916650248059409560202416301366571311990694221244610771251033023310915792160935547174645238875511624942687931065168592631617513836306263597996307266094108691863443047863417026204865123326373393777149808233155537483255436660577893328199112421952846900520920774217218684466768127594909521405589876217928577248563390823198897822641564538315155825279649092690593083304739177814747214928442914288074026365714553845796385629581764185574025217343486415776133625720246337549239990789321243723993457987157768185511024902691516146468686937532590020016979120009304138459270183405874398197874095659239768649902346089285511662229030938184811106158629803223403349391518613766709511556165782294456481371570511070509728640654249175366594594758110020957731888587204858846524787614177468180955015627042310179719926646900662879913964139639622317115478182647274103003175139885172168107654176111972705831688302234097676623235739950886174698410148644124009145678462963636569187204973852639544229705516610099312016264429169608081168156128081213631913697320964774398757406411719730207477273515757026411163776574557435061428880081829642470135060618292879856753138631298717663685926427477528468549126993269507786272492462734930073131070115392465873777722893681639529008081573668001252740125193344215519040633754206253451275045831756655722334053024291014234746711489630831242192524271104848811091747487680754347443471628840826029313146514056405648271652179261053566641454454102494369415543578587453907182185069438095249837138972056355832406329099371269127669606172730823654338603501232868792610965827195222488272464858377402089845347242704397527422793687484505124697292507407593322779238400343616369417311346730520601199969050722110608096073534557331386053846609458316751171640442125453747504070368039444322147682436062109723398563583834654417450837258703659205341653348752048734651180343985503332263112895662790777524548371281830910405406453364943492562459216573876102318135902004802410702402251688060286523033551974300757306177095489411996488279807449996258156958593059644834517692942806268597404437211486697581990460427553118403874448624143615017098238051112764509574113158567162769433660221127878705311617116989198454583454035631164178263795452298307124408580139833984651985837914480921064552415046573023014642393805603482848784403572439409364521268395036041310776690227684069248498144059929358417571363888391526434273854877528395187875262659387941037434445093441086775792376475813084203767058375133406459402438124176924729821367002305916474504119907314539775796456038373407317377227538833709490341554182285576735422533056597557187221017529470382212605881956911888562832506141588165739500360032124102784516454452073665576083198465516374593502200579230699314340214199470832428803425485203249116914649137273562655314282723775272718315763849852899882300011999534539963472084177116994521427000598332144995227442715924262902034807948162760229564532081536877386002251676061913216869859732199280438016095218321103090189655628266356495695754408958598389927485560601788783225983062629944534430232687112082097940627315385828197344823824415015841274005320893852972895249906944845818180610859619603671628769708310773160135945678945683043776694803743370880402224900770397308697157425992685137580967104489155495521073896375762686724059701381601117184317174978083868713396504183692562012660031312856552157728210659982434851073105552576085445279663837412706508175024765618227609096762665854612393497376963687917528207616631654797258612762631732309853730798090646550503782039843538455704958061356883514446330192170757770270027788744481961355773783734855123112011878160089880418756899126514178123318405806078418823209932538524424711453932461222343279756797533621690951928985849675938121457268231713966330870572176884879496531950271172498913881793438034402123431028051847505934657151904150283653768477088548177002788042916915696956667972804854785023645088633338773483549943411116675220784267145598837910652529467176098060514077591589506819504727954306585426805736349033419523302856852948785929625522683079687864912832252654305063421283638163902824055131813540056716511537004454730480766925642235138933241677311182765600536946217030094884879822080916751167418495741666472594978922407342749239453766580095295602826146610086046090974400455718453343352551466158993483356876507850070386148701352088051982866575260256557896237525908260983187593979935750510854342554177395608976284187604266114698479181566838359556581225024149009685421218344051885012755042557464563689138609998142373880029700739123254754470299336123210840875921950538512409387847928927462000660925492893711337585886447706941622201671692341271435416572976841968941601822596867887573648983856380120061152993738033328018777435138396274692790439450156515346584139974168893236700439898395148318790450212404833661888371897756821540847176519787728663818592760727399783962463264390759496528209547032026115713876726103015125025467438094706485158571970801549374419036379953898842110509620809428119671942817015937057482072708622133586718567507463768997337212854081886334280343697177008642436037527124942206169967572998044297111731080812006959136354358166792590946173716533552083276550098607814606013553094205475477525459485486518027283519924265302617753019661283761982492263017013687417593704280727955363044926149205491856231614641770790613829188066476622870321133010522580491740571473098054908642751281978765577369939572009604590307367164093676636890752333344688054975022376413432003271322492657076260953413498299366283348549245004063166798696585083377277137646040848929757402390275237192201610756543541987834470021228390034598692843503230017490508196418719356071492031698301407475694027810746723030279156489235417026182686240141332746808667216549634637556704969938353691794334100445010784954600343636915813121836401045844655976483582531294713343023482900425041774664286001869258449569177969773144940502826104481893481895785998600227526951874708522149723081053632357780471813374170685973553316020061025408885523463718567728870485330010308616687639049663885461796684164792400083213901939393255796075244090433384430314962127054374434586675275924351367504830645811625306909416610895753053512190607806061265518450914474048993438002512849935454368854159790919006334892977858073511994056803824691147333025153997750684275810704511946447759548869977453848091245138876520067969281378048349488949195913559976050620824285394047574875047274860884156105167795336466931036587245808729529071680147610796585472714766617552315738789315283641400655956017924167517390136416545528485390582539620121020427155381986161990048019449036066811785082168334480348987514802002722748702222314200091237184033652288167392160830118294694920788229394861293452559047208756648728756348247958939625732525150024388005734315442030650602120390323622119671486932287374772340904834938644001595357539586270523429820597867782714618845476260099972538719456595971588375617993195152924282022648382390815108237111249420022378201729186475018851655324463708386246139525434445064633167289668427230155424135791567875914145763043185041185318468968820674042264442077046018787790173712437254290105081173445021634061564511895644398785247382483404335279049096204882652216761434057165829617866196498860826237554629879122767585466867568833158683541565398900197755926580820200209804046833004124131330489779762581588957137643395704600914287276321250152323957002134671395763444300314053817838500387459145409368538514164607020996123810441000750384359159913721806247687964507194951862951474224213416156986082094086466087107049438021610251067856631183601966495875737221510448034366487046258579829077817484348090396174420530364978655817626058319549360543476538542092356882662615190626431320671985516720820342818489556914225886023178481855543592537185929567131370626045220449235814960583120301343051530839812339505211657729702686232381203969499331371194895613358898362763481662276721134655952370270992592812291773574359889748807095074662824546352395201758032999320818506765316705236182195902582473760960459037398203454400634343036319925868094271987992442432028892978717103556213605220661217775748832802651617133568486822594455682584137711791556313954443793373083380434238243493242988136491112976137391711352253665473927098909360367377925484115913258217963163295444875695581045572234571510463313500462333973842231226049232837483137228008729422258016985051295449115069075318589410698551158150950558112664880822981230070986872677094853048097709442238226282813480373467758660402554973063279454882954082171746135873382963128166449503687660480996040128042541422462459393972496358711976199723201742689740054323485770754695883443041439609492164915127286917358273310399455005372471644434246155743642769321807316187726963832585387647308169304779995442455780533143181694436388314603584148432529285704929968180229404390946950840140192383272750599984390058480722291495291146710578639297737627618294268587633404465240920700023017538693923076476936412437953382988523647255466716540113139424776265595517032233442773496219071777412548963561225022169667462469040819833714950510579164391344288080943492817144638347977955702590629259524508585006427809519716316017592969508077588119280969286466710188921219865187973812071674036976690411553206794263497718478204713855019753126604295333578570133198481900669238627112558349006561499308321480125213925454115537019153187830566308398035088039943699994767178338564461894705488150830774619839237289046859642525688821051727642902823111476222759042554293029554918775308941768412319395537267184608935776479570470028376012820336361603373071022154139922696983969369302798074846128304528801662800376494188134343096321502870662197910647235185005299092864875388560006997570448659259005138367202135167989241506858966452117000660210448487994630147955631995907778957287506496959586793428458034361074205139356170949665066385949431256652114101204182753116836809949346029732430817662593280015189228587266270151507659529143679529771594637740556433164745516492662325251245089719803770008025993606118581641571248094434324759984545298613913310742664699403085962227597990582220216234531556494036305529578913910019114325700730121390045546791689563164941668711562008658084707653035420620228434333046280479269927205739386864889088247119539908508540277998610408941220444129603536241212998113745362603753580057905701993935273752742868639167215265541300100085774963611099297363280458681182318997304254590155221305443947918357817832482653044287130051148384023334180347266574772324598068697483903729900848709377009217534281437763877825939863285681423688492183686479200678264617451028557059510322818786350850502969783579446239161093481050068907866887649451181578479320695712736201215946413765192714844262637041090504534729401416228416003520806974534019704962342812486722588510794580806664899032449823264602436154839231810968048262870222509636775342159499734511902594473055321965522206844868013817712950953454434387184076437012160292181702007025846940341007532397171398214427042364420119221826337194823551643059600281165059824614157029109786554481777502577207052287595711573904494669932408395877966129844013438510025844274413073199111132797332341521075374868970988144058638915725669616102941852334011725672514718817824523683089481559011204379265987960220915837188903935311049412392123116194753595414965578207849597964081072186412647786763516010435965683590945140252221589099332971237654487311098251095181146891570033503152439336956304014125101097021443423107040995511436703211093343072519416476956046582466064128225247418803404645140684872640420628730758977239154224985717352448961213191728515860691330572325608554835780470870128856703191146392805437567830347134631298738351909196629334724631688394851328108345551328255621430641883166213541101713250094834107811133907726680208028651912582584882408323767534971434065914489051891708934935274942690288935546193213867435694396636513074198436908986105708271563320067061831206813912162216016356991084384098046044675394856757153120614476284162817283116370459202856490851133703210521583642921663456334178142838289902987891235826308299614667583961150567906550157396871952683694253584903809960151910250791758310671074296167491541521412558606342003686155375618187176608696544995853472101394135766438752262830031005981631936462052201694886197112044944770475633664645976095895910289277468649877908805029253449409827354031664147167089625368275632236036268960647249446302482476026875046796766158869578698182612472435498490226447804144117321882395677951354860363945101396147363671039617134418529739155184636276620778091274735301409031361654422086603628872725968694827259297898497981634527422266456719830948439160659028698950879628449898066380309598397747653736518267335176649258197356652784778821971977308128779326280291612994556932001372769078370326909708475262297134125123846301350814365182104115001172132967673773790114936558921089076239478306236868978916247626520313275716470809364104345582479381344763414320228296181205509852017461460256427900461093122572380303239111038788767365250504614920863789801306360698724155287918258863834029327500884202479161242053677778997439223886046513116734274009702062262152189976951935500011230009201441886603337275178620055018138871389627091233484976340775972746313177557332186177721572523481143872530180168457475891049208561305229603316012135820186305535929844589542500962945675490076460741346196039451070978895099978841306553886162172089615203046948258032277648419462136112525967497222411035440993116547850408306737467903244562660227092297964738235000574460833446829190097486997350117256301336931538222448068041402696849378375439217311611854060263971844747449986960108998996986468773696448429161475744223743042359405814465885255777271967681288294257685375879589002340543217292812730319666382200387651685900766799508660059724434793995458614794178539983002074291033986202474726591600789046249747676892899436131096064773306569763204009134656171296454586087786350144654734807399242115081702775052969374348674719356747668339623812042686717763763029919614218604185683922736342403295810953665608501288570188520250741735610427953158471280226257668102859314585334285409601046959116801625872650858533162878376775973230492477701469611607238452010467218460405924262664135736784553611834390791680712923666549215578139190270403440805915758087489417373241006504783669347388474487357656866833406633042104523099983703052358170988416910601754715958541511515821248835519664456677331185269909547038965846015465164898601378199182969712483626624234933252318100959582016032378695874164910086158553068499779772221090690219767683288522770859702322352134042782489002139172794115547540567427038715160904354415029324476478969061452755540108047542633880297293761931464358177324496168651842751679321101807497929212621475095460276925226640432387355344467409210729162879767900592151446720338377244757523369573249684419395876617234815013893141359135325313111389893870908809388927126281170001439491667271405949090541441539975732692834268400086488256329474119061771884584862544357876816356330098344160196263871564598382650890226642166012548309763468259983254734462249526807380882122905373849860231083999985370692619409287592006929338530974046235952490985460139719791914695050524980726343357676198833503438929107199472020503489722446811357747438822549026159709335882746814741403843551333680556920609367697162760884625285797690953819937061341905955256523603835239585006912894516661605333336733164895412055135331944803797677047903244683412070409503064534689513650597089161658274772560755632020827035261960224238627534937721508008266238249902965489965321545550204981527141761232676907637219173541731325562357100739862488408380672593190333221178828528237764284127499961479676447938784180813450543039409217198514180650444533174899750973460110390861179222741879537045048770542453916438547159866684406009332698597977216476198809155420256860776063210681157900499711588877597136899922957303668191293078010652859722329761202975119175107846744613444582178081861683934876676895860190046338327710670631680135674683612329298205582114872237728247426114498509965593003192814540584412409153066985831557926894291471249386263118679914053381403990280675029744855587527964268859089344464887512460011779831200307654062484287739733863895681813035535093883358368409861695554068595858164177718652826422650185090778293481399719360088882835168856449412465867741515098520769516459894038711150567166599157680672933364763005532539879119519158188081949312264548864325128434803933974848288776526984072615581301713375324490918324161309378188033669849513317601884470712528044155266733587427898193343571330813316431536253727660304189862409242271554724604478098644253805380178854976681867259120896550933802343178428217820393501878736995593963721631821822740880918870208698282365590742918843122018422141550587028421905204149427965218786557267772580424438411021005209200549771042640943545842472955746573715789729175176777598846747899155266878835361266420416446767169656566123107787028714487210874828924813212499789358729815912957061616851182396772203236029958764968374697961270281208703648456663009681502893862804434783812443914501403805689912903463372640405874977259835181603618571072213222119220423233264415946399974886233038409071546941677289595407610926258020035590297429722024125858670336931035660600854679975472889067227615086237754093732348640680906352762998197253468624689426355665444508621150333876497789330333861900958847673302718820615874467848157521511513364205600592606275748777287208733938127583850202254809436191103185497953412741309082168939032046048150387485450099380026110928035721997773434085773634225933993001196021865522278442738433994444390626070736417900924462140359844265696243223412980242434727329779578953620728793349617075106256234123380249233937892312675352284485780713526475113451731721694895352730842501161060496339165085924495438649279424487746490032153485973608650142238402334666689463872327442491274393988111507798257340542977602494752593748585239832837272914284266227904916095265013117399476414964188293381240765105625947215050748848747255735150301245841114681358760498618311442943666373103489749302785824870195707705672636578571835364803897791131622173283576679717473524713666769399289054360451337353555739448167521543365313281669459813076930596811608547820537914091774711245107077910079593139144479138175677049988734954765548551014116187814400157087972664225262137050597587427095648529476896460726692627477168827308036275616496088074840179471809311914348728489479703122547279046121927555199885208713878846235239714880409618161764514768297480876195270124564630098396012199713885723474126587141693657382801554283772362266243287313399464353183208096857977170631125124179867195728237735583162227976189674077164939656921577863353920670028927720418730049998288530085678028913034658698081513609668428439862750579966780804685977795683443810164222510742922503474881862544604578617867796894830660717331384241989707334310559677567823759973261431142352397758790107832084911052839056512322098784301358759173548292087043091082140388784073780892550664258551393025890949943880984306397943968035049847493277530330242092923452679497658430735432597472299443992223056147693499729160166993122751973361482323472245383739525283049632110497846893907694425814961474142890741951158253394805895977282843298266123120029638325931015613147512811842293716571842660131479859099661651653028077825711573991965713779068704563153656207651507934099837771785764796269263488238788085477696772178215471746004553770301068961632991915838159553657331147422949003627291764550945295673559716805872568887356655537220321784372549993658525051567710831211073680346573320457379520954107820810313770473077871772602997697826335810817042089219249930525205055696005088344362554411708388350135878574433616984773762017713168665716623363027454228360754761968825145809359237283561890439892633574124972234481350303089342073780509184221656661494825859432288824811596577901885796154356066985968634237118347666014688959367059440986688306084235766332264439209621528970158767050461967625692807761981142888859827467917976351206906732863909326550183101859749192507263505672543440070737603925218408924848646021807427790691943408353764645262778829398249420681557551014532358559539341900377604908872367918996554487279564733809634153171664430384330727399531073229178965289189644731177052900073678627786894989213026373194717852621813343810394105756893304973610852102753772430012158451029856321499185783291749402755751806453573859118984882501731189606825286418885053569082995022027487854740581423591670709386229663149369243899281628295666920618983139859197682767214231338715909996132439596140500786936450065461854936514678242130626460499767449699063631059271158043874066144966245412407177157194702310597577054512299926447725310597230138469712001887446614151771779213961621069070773372095340352285797690616587712083638443355655912639810179994511442335206543214756928756833540643778487780085618920981046629042164765347374618072538939693992740140101196983073465843451162149781305253438116384642495075732435740869672047584736649091639877765844637401164451653052348722168347751952907760286875291522323384070434247623821166861756970709404559854174060774224370908311057968783159855895870475108877498130678788568750188367701501625121925386778899131932199103818003397990516898116169159271926368289923410277396192012798283050665542459832965077641246193894110426102721083122878756406460467662568709517514697439509794674641977246841852980465408981697342877091824223335120166319363449582624876953018522726535309729452911658870136336775882925509986984173022709331735086700452691603807568167123947041761356734776228275371045368326982358737279376823050583598632506675417482634339566989307410609528873207858203423666337182648549093324456716511589789649381424384351086847622361139724416602924697826393846164654920943562398500066601377771657330411065565277579875486504734547243689137323728620040013765142307140991326790225346618695941624721073686499482019206583484593559495829378236031273397182899983357718915806563999210780560515634950121984437448346033519010302779643423494231193980580307458204402190931809908254843585466690766515519173993654437646848169234853857965437215136103360192046574207249433217234450830378088158183276013606938609664199224420132583537493599342924634185982487093511982326136650631454319362889339100545092673593420252931663522453187514187915836577591957970362733081358049844282476389135170880772916050328121703184013765250968445619559785951602131678172682929946412495771643970609944587629471126673330515697944251553054305357275537692542727858236249431524654630600069623402043180138524669746130061118260043238684869272348116311612818342977713810299377756751396986866301287778805398473640479038252261596534144460321239411713212271940571881338394671289745012625466456360008122103726356722190124228397113056608153593551897102023432299891044642534181742914208064884106227850588361473645998422814062412892434220785028510610237267349425373199051854544756494599629526209338000421362213569901471834794567167836904041474534057121172300064737827597017726786225576695966068238780130039657666960134864730916004894934363705519537481920422597199804268004960351229933248637616950026270942434553087894249791332729363007708002248696392914785928653184134725891319447180190354920941927923542129749195262503642646731378880468520439011636320843760217670391715045633357738944567255789576010155197363582376410309178292892779159702503384083949134720955660413061032262035082864603722106813994649037273862751135252335645425110010244036830780140233608086983274693031034971189695475878294203202220250648026382761650219992508416670085000441766838365319537034872366933860467191805664515707299601767211297762460891412399940853170483507513004548838708886712069550807157035010259202154537895125165989637504341241019066926022641648137838672759891980883350040795221253389198757396304576375299594764162822334404569295179740547819689512569228137116797412446822946442065913590988522857290588622028011450135254185426181353749248761405388914247393490418275304108128473686431727934732338159332254795427387495677699513733079322922157492513044441850610177392265824716549172193013308042304539528597994054639947007327332595113512327033867847956880671518456853712703630404890587534525027925705519404951793413862730820203004487842884294424861387845136639360471613092863971028230880963390933521598352855970276001317643699436542109505182575170540217649801058662897968767049956415057666151444683241740771287785306063063835214474552218732595617499899859958109049240878967116207282526774235749836119017221208384907392748632312758329361145152201406987610832753395305531957035819398782866203868743769226355531375093772082484820950523101823370531410177242468574120623288616857355827273081462013958270156781126875748006642620093307739181327434262964509009772240936621359175115995999052630720115496736345656336827078747232384561481595703835861407059726000185700254236123947804115064018352527429004220885243990449907540841656176175072963705430221099361094812665571292618429930326012645203661316934163603511149862908128687536400365901737856308458037732395249206070261022488581142644604024173256182458237872501492972027417493594045191673337210058971174788912834115662893050807158131270334362023503366332462314751441296799711738885237587312222375321301836300918443387242960462109380990584718048759995409100567776728904390079555210209026727430993557623689400432209460031806795487717074576414098214339536277675562621244246145602968192594843205383685986400737590453623954240903986452353434981868141489652847477117218812363210916879606955179857478675225900704941881394993156719289999067613395311804999281487072403526078944650640304400399252530684387779282515149502259675598258367656373215773325276089063912129775660576528473901067316215021680577070900862042896345092239982367235860497534588589525321594568543608989700393568270170675154137058925091130900675568751277061957500623461274978877477371065037063133769736463085170160338680867677579368438998713911207217010210989749954572352073223730725351575769047535498025024554355922655521862711400758833545316410227822089156154492417880040139474009854520960433490460629758139792395439688077973812708108142081365776513156351323844532932785037411597076006720682429933157588256733664805810417155752478503631414255493689829753122068127211471375297944861638375214211546272961783839735862433684692655179140391893536187794473165671797854226513250905137794399293364454310337000409574176428816680753562575296568805053614805367623129486540615103466809198855088577692606535136164245754800376904556266885587717181721006336321558901270010647299837378341675450489972559943836348120642981323578139634234699825288454738409396239566652479439597055916758091905164980264618207119107496337358451580657871543117313780605453760427749278129459393929871540037089777181323480888621925254408205733822592833060835616302946326498104455849234746060902734742715583645625704011777327822812077779166223441002535844941547831809088586928829549696397082932608436583210900626758385189658186384066624025916081430439025240158996982558759688600287069362351723879186540767290504197533917372177979231306773531379943292899358900023248417585335102529346440638648408903401539523163491121159900840480358025036920569804494263545217967289875183373656483783301769981334990924213611472375564086748746429084112479624287842524591192514679341377722776510228012020836893969976939864763685637705780789926202789999239325799290585216887005246759253176949896793985585151556340509843422466328870094025073879603126197451002861675684457895525162574307673569783279514179422689402375464977308464106548604183852892310942271096336376112682703218253594963383096081310361740052377884840388105402815038162131139214705948867424427826471790007605723018945941481455431969673965983750909536857661520451373467125548398606359727511712942654251440145725124879667843377349407666806423691877771913980769592769880696816666635395546257023248221634348855795636700866685372107825450164518678898381627561747789330376238507466452988762280632153908019640076389535452327908584083053202234258370213972684626078418543491080785515906666883475116424791587976922630336171530854882551091849377851559502232087098971920364396640363740122866416294137214445321520575046411561774271022213024511133923980270589755122984945626987980373852719980381580457166909507523175195635135731102331333782658247376404135993960162572107605836488614901834667924876881636190543715651056904920195204300398030206916954321640891094909647547815638319772178810211674862617841988532094680315271642776162558300569274673444515322735522750251323927338563192441245743942229042501244442624625603520624845836517330773669900477002003727896598158157830466148908874069361706200477574835640856771052151663580001373740548619519302856850019611609845630601877962882809679332341970304604334321877695241726306806529823146888202430243853311394338153498305604297578412571189035083558122653834817939119721327881873142296225289348893721998352663112381173093151728231150681019556871225724479101512144896321470016796153182146376520457729463288321127990779729688531373037126147436127374068502482428301994149171369134258279956069865695774629835105659958918212861217909437227924720869069716340681718011523341927549074479494191407724261522205364017566588112427008919586355060411325573171712922623275687711020166865641787058704497645903453639672821035709016480172839912342722193619662218151180313497125993871285340497682964189709030952348596067540709050904200292032187545714118248974767902797121817914225273069208977794331680511779490325354733500695809250127835164718044452567808015695259686380911189579410443513507638201511553301467034535631837278564531063803585955523633207022489915854023267622054818301837370457430390418253439550177418723171377240578590438145796277847150790066914554076050619383214119357426564718324327134986830055590236148386480746053027971979926764389974053123414220221980770612785534164543991640243644623714949782802196586468602760260539456806756434173593009910460524854593623162320753878536018037459707150342831962230947946460658908662791981059733187813876029820553912761190116526051167550034482434059515431573720524973539920549705254639302240385090543658690252520853330849051645804938820385191545172018649554103351953705606857941936320242638601095415648569923915274161474911042714849644938592581743005090630471859880901369166195388123875729992061624843419977801163168581721001051749312394989377470539615806075121163584539248986228311235541605889011126486030492243819304797115017890454752392010577208771420728780566277714134301806832138115632423394533832175802597771969442311621855378943635576076429274866855126144696557578412428528499238402787539664191038692170421553068121025147796322121399186529088580450429495184149828985375836661917983929383840937283488054557422128733088684232453371691672823732054911296518627127602197236669822156137110283209266574866757733119553447505382282449018169685477641363727116464762716300593835920310469734726106423723458705093649609800675359202830955707895405323558543156044206587665707344864320011490923567071076020444294525314279538311501948106118941272247486638547085596099450222182293883835518356086132016816040925259685615391655008944693310543694218572744375629151171868389670455935077711636078477573093416369050914131255974456825627298055745215602234933357767125613833784230197393915044148604360501863202938703536954468496820243891066471506627480725017306968505401033617433373446773098864146559292153126719711417209794534122635023313310931975254142453022739698984280156077979637041430907886097094370244407078766108656416607877500307666695107061141776939701571673410959185542246021515897778674180667463286917071281162175181671921208512815579003399668727497747018578054249535272207904294180139399701303676157879479063854281524458195949010877218447756863387658104920290820417762668880512531925891075213700817725836116103863787529448294298346412916306919642141817690942100516975098547966895913812408546892539647582156057715619857592202517187843479398647099203653672217248809268736479839741633153161717068119462108840097897532530249313335518347574531394843725019907507340617983458866691034771259655156868681372921212859575308645782772344623397873594773427458220949330163062500992828466843060158904478545379238875230222688672579453912421672520745225361936507684101124818890678713019054528402276828254582788222347714331669750339326083182635099091764385971439301123891180016779548833373575500497057068710183075798554218213750381136331170856661448034918386044180214321312903672896752731676890722806994338527434399999441575694260858324449720267822424589912850198643424458306372926179841199234975868358528323803170690491830019820380662693700217340635027515980408483090309135835358029077731715610426575239168430275224550822499462878626298688615391654974003592893392468478335721729447928923961368791689658556583489726791461347696556803436238671786445083918032667150724707166546562044376106822676639319573197553193939962021151044161607982050094164521689512063015640899228808281754299303313126874289475118951012916039463115430967873172085518848584832075704465973632038070140931692281147964460570458789012981739934206015728779559435817927439665380271506010937783078668552658547056922090109918467268011025403216961285289417574598210431101838817275930279433207370940843635586853957990237582616816906347368180889652295071681817774181565279136476880652318791742072177354303032047596386408584951790368731610687119266921612087276141319150952242078435611500915260261319626044763212125723873303503505525433893442409091310738242070549282743824564950072964049115388548827932189424414417220593112599791300583367915651756185875065737005959778338470305888030125239724100733375342295271603444993892933747399554763552165907873435899303063275679126430379760515535916088715185652609962167267077587105266589360447486039542036510636648669067541217928692229868256889100874624027105207569558968460825669259342179468442444547784977401104845307924400771178239717356703682337638065756562233779087902163155884904426459430076132142964280271778265091507900264992397034930850065320899752085288193716014413031950453001747590999493975736903792047440380832567792790939005952694353847607954342546899149260407047730753569289846152132173059391659067004394468292588195201557274825142399800124749203952514039081307972671145275515628915082182117782150410365069899281463357010303002069703508580045362115594783194419807743668288313075088463961339267212161864586579280901491400631433040766240288125467321032530462568141384324041484646182881644988697736153646383954973120604274709857841558578656218282005084170513613307541594107667184549239839901943491605653847685372971419269509088653639719256622823706737665093425194402893959810798955793237740795871140298138438797066749986133939186747270556778524433747323901475516077499653398272346585456201530102692266744941318795594603559387374274865546888072843065359488061525802832085328528146077177490401664840121494292067396720769712427306539647588484967439796866028955139266106397147691939719615995342495858196438429504178179329630082422001657192837201154159610248827144141067213269588596240931676298445407539856419388265598233389972301908877316605863718545256781518083504071617502624005549806156379514719724805177694518946130830520923831756716003410432107136019338410047885401293417665453206490458914396630799832616768623647955103267240524289692845746829859167496111286938542351953266566212587602478536959642963128915567928062005859597368609847590284733993152471299384378674501692412741357609271822361345739264338118311543218922028118274518067914891324513109553627092307971378085290353555995023763466814709358241069462461186784247982294807552112117753513965650446422370953983177830180643620724239973433429973843998689604286666325805633894039856603084011962359930161280777818365351923166105144279522229186222172331150609205017820352303206265346260725468808927201833376949449836531335184540174728194009717166874219415098689090475826142045457206569206355127626754088440258781655255056027004658972398024617927365619178904356124347847423074997625894316370023120346719476760452887089187061824646403046618083046167338433168555056457282924379527185530671873174016283373524448928632123059558872524001529426204745859452154891430163761336364971640311409759340033368137146898168228093502535637605015734892830123097277348765266986312642396365560891859912983759788743610934818524865695165354986368773931718207676052510620930531857146697427563327482796043420309678686137732171404487450662810734438876109577265972369406373673104594763826595768221391103232814687870684115851961210317972571488395359736666108739963035116705631550822490511682225087492145060696066259865858234416451838029988246146260193498587014488854949254141467442102173703119157382340729399037113123849168543435272883104884392357330853014297898732294077245572317785013675718643529979440321505597749977799531486450233876749927629379909504134221293251060611235891804315764014911138393048295119206802073775506820788578319814064646789850285762366182173971822834463414194303099367505004700183077136104011770797176605520724430703107232670361621427147154499407938315813678125609946389749410345340665897271706622245035470648040600689562799797269497923274344016859071091083182440208382971000842939522405207245325313827877925841065035256491584686354196840208018861211499541852365137562921281475926870569862067762938827226168737430386588898335442065001424075520953480515450420041868441509718574040361331383778271448820213569424588819064778026526654463667990344898828172611524779129416515553123083172403014073317576306907587582166568563865060307096922921016263545430718475438873236520055717260188582639877262657317617311509494144409563632644424817453312083072827044640880959573477052349023754688830480051582700603799896098212596459939658017160759334020198174522428824940835833930456866586169797155254478106203031719108739995397093648267224251098581983068416671201052378570717939930460743110983327567568057320790968332379945632110615197639180533954193733212032836915144213995600912056677985111291111435668548603339821605164426229014947455919062634866299429627214375257410031430040954681096176310059593830205831807622088172572909009686237453898470002336481826594896306578355355420970367011166800523885958344786440474505483212153444176508613274499057011501471592804315117785603758138784023173305157440918182172370779567080334669819367495108944874387157391393681325777948679017472987800739849263494964352157740857848319605461145718407570361744485934102021076136846156967681520621479341968165114303166191685986917481193972887972124672366222141440708028025261469995799015309515434378038685141208785168670003887280780542911399080259947149675678498117742290490762672098373717128309916372844614719606770770885268044786263166179463580129252268749091743421213766854255433573840074476743586765722263894866929705021312875998817290040316000621413351821537106599407480241375916603675830018237035798221937002434185432246114154465902833242600392672430872355218374352206328500090518971574212951940342892921374022541058399404981139241790828338812095303162993762608989084412872936755374039147311903432338961752105062619911982785760640727880509532880811701618506291633718585702006935880561833579505716207949996603018749231075222048350381062843748279510922211836358721197141304210819575449287204449334095710013512425785673126515875483666741272960375291537120828467650698254170537957059881555878314799214716355405998494868346079246016412926747438816961295488681211924626145135308078549151561119027475231837591187839783719363646626228661727510262031246638637828532115053938279264765793933858877871818617338134048081053096060225401010084970660112985135666968094981603840594498722913645095343888012237707663193801315414773377020585844799629515272136881049709805247433642002179221481300413753070693461140737960489481425236644109174971916150367753371583174256167358872684973634978491794868975813911735958046467444368342626056238105862049006972457865545259800190954074348478358623727120743769640032437608283617173838232675718192513571407011366617526770826972353535857041953219942257953811269600539026533559158187046324845209738222077278416361964299310384124257191862604975761434314587383738340578381428484487592932849798581546016924898240279726760676447637992127050290954507701430121273353146613761132486987523633771019617413246466238067282468386191488521981370344151713043066612958302328667354291399934536767380156764726724303935849647076387193909045254063430566176919169055596594843837937784848437342026958625097809655344684043001614314446973708809602353679162773542823706396197471830241881682891120760636885375275773853232585267693799292077829474265035602097340122777682255588265351772027663014823002632452225115787434706747513599166303929656992929044563044120515538610752304836226337927385973344368283678392747303927576475271079052127082598037990589212558671159236557671279552820637413258204780027111937757882178416747517024449236118998527360719188334793175659739473714787411941802619949651115956478370080198154397045346526076328824220021408778609470291509109732844486715669717324956108556693431424526736250366540785806880183772382520767690379933784929579294716265167349909883304715593949874652368809566112882577156550238640194201550028169621976379219655746244017794489387657747147452584264856223004819275464959556887037517517343367114656428954102929524676616522676358891623734043523605284709721619588353787546961810619912971577894369911192234737581248060931901723716960294984786242766347697080092673140312272539280230085243135948115992720245332455675781777867247782274235915530340620752879912269106979936648307013155690525788856114676937052805679048663032226776234009940377183875706329199268293962721053563164790218169184505557198207070573731996914420559249851306880598159039060598911364539649221853468516144059684269974132400710323927630336381019975003370546762854869269860866316629550513438687054650741873999451749814079417140995037733987776069401958777822584959515115696200194601504067753755553391801249634469781577782162049671476449391199608126295419749912940205279304616467466080423440701000820560826971293085734390876673054456312619024680342074683990874623172894128966235438986408071547775651669707069945080213312701319841791106935239056757585196296705213864932063640450666916617043235034560160986764926656483705196817115479820318427697327390565847565786565983559835648834417913971172334949246517952012819055559127641836413871232065247775013306404963353357838857476840440429314498938717946278002008052245952603423815584712633948729581210336365121145571330789862408111238032349194708340943850908800710570846422292007571671489123916579543997217716108895240936788973932993157473548560214318948311065740246519598354442557750860255963881854557946871589756802554906543423589371628145982741882560553514794342125280889156868736013721302068691339794334535697137521755945576144675850055422519077496499048573387736088009207496513732622907782709528747014656640928433508301604266920931008818224348442395767373818277841479168091740520291893947503377873931562569375081960074253898321080417205125752208022895296292834496515237201317543785015650158557741638406759584566238228323874232718405339084550227478370161242486616819951828423634460956423123687841402231435307592047009643172505862552913364807963764556504453157298101457789597570010394638112004947801415916063596953536062859314599537884678668860749250883352332231894199971359162993712590836798351295842790976003242446467590026122453612391249751619427215937514465586292582257781356586103224883502606054214031987357251588584852264618202573763904494782200748745404944500733715171674109279113530332668979312373724840809238918224415991037914169157480569112538781639585067904988074022249923503900614757557593622377327795388028636025741251462128177455911404110314292148673826080151859157228336409157025647621006615530815902000581540485969022586474891295370516123911425253534111368037136779327064985245157944109927419563933224834521237073547685944533839046151591821861095676396361683720453968494176127238276313513707746494480733626813251224596882426700117707667352548007635186771367262845597561874846893913313263974033317524657902125735548750868233314432878592746289371926824561293568589719331595884878229027677547795307032654725847058892624885029066998340584320151407683846400217588255385698675907392711947291802353340289506822633190198405384146571635016134701975829932522164203501680178076726090814160661852217985815786869647268112395629854052987896571989934274693449214191871761374039189217283856010191867586163592422445390418517104991688480437023717876984014832104682671929550709343786730613494451907273440650897348593908844620165467229870116624710993262906322339726162725638162388084710941268685153070853009064054280071289581151802991561430785221231427004971201636419671019442255903164531437729553358012174325026044304516285871422342719784247152838881450906848770789199555734193528932010286740795640868417682755264618211806375281889611089091363075030016428268724394234980707381802211373754730372297034828043060020865881154170928339761830423819083277377941537887366455329265293923176252306641971682870504104387687633139122004741759560457956803930397284891381114925080191380355729022175938885409662323339003524471650710053728931887958453245566340426116000478075543004616167455906656004618908602963599201388043238130511670373665112588689187322063804671651926080547872773894367729535338719042653154217341701383130945295499184464594985797577129383949507283559308178586625080752820642918421048044781914919797523520690196565398101390040175135447681274973128725186815007972936134580039620262639359539030958148711313517346137958248375368577375930283554951791812640757347800487388090206202894030430314099550227026188408541772236884393148166727411404403619626692205804773161499417844626312297510440910714980840403533849046746335342102450034955045868363369845446801017647403355224695325622364095583537202926748653409515689202086782813984074062289428710386170519541206307121702035244517806178846390660519723029119021787783640576220342274675563234418415488656285523592956777975324373279902703361774536486320355242914101071933199452041726393646636436996433570360601222738969376788177596973190901695073866449643397841681948981773442847656877006405150694615940965433872676020213047477121332363025956951749821288812372971672318723007489580110043099602391181503630651650639180638140254966572814172852427613717350073841025185146600775950403438256685269875835937738797432835593572098140586426125027963700661743688181422623187535058567870275779807334969410027562739683363330580473761099885345810410306046224092715104870546892442778973788125356625158284697339820103853063124676088918327917447188856858785232293810112760481219573076705651247319950346164560735389763767499374716151493624221338696154214141646370781448906329097572119030222454999329134079053484744288170075170081121281219358954458518060759459600250227636461429599390134621289133673467342597901867236761263047004546680107281415637789644178745081231358179451389075258911472281454417574769163281034905898593552187035009187703995721273728452779317282469249257562349204060475666199213108321071480197710915821989060011448452866100069295726891626915734075752402828987228395681714972393031001909674019490970711398465540771816501251195801926073709759630304738268333903592001492669076512425796057300337155254318253915803332447060400606202240947355284800910120866581963027256994801743662597955559924484119587460571114019906755366558398911322185447282263245003481496769012671324541803086079281077546464400607218073867393986614918606940901052845269405568532214562222472584478742193407302282312596055874583519815112621602659102564584514298336936150119495668933442571557180876603122487563946781043244500438023138317800288640061801578148587513168924343988853755884904681749374922201765395321828029919859500662789383146243974204652263370493717882089331737765000857136070707571444764160035891578796814911853131316707630308501976349446795087147455693258969967610673054563732164336876820384138882684531779267597936353270463067551980591213389399486250437972245932850125570654581002300473810841206486511036635149509810932968168510620016257401378034833318052538578148710168791938790936969432779435226855725873731452071712608460734548857299779435261067346193841448626765443738270751516449529702433770819098621904088645914560144684962194155357703866250082954212178671628788779409147264115282909363972845756074759122432426367129842791787499999257202027072953002969901645144302719769012253128932047549810843863851801891754610763245687092434719054716110124275096439338436783573284508712078969652825902591239121992544750645072901976394863458712286328615896644168840458534261067449985196679733891506870143095715575797821786190333777553505863662464134031084333929727985456497820301394504438421208681049440488040811061625962713928811152251798102120294089667388515115252201724294628636343110054116925363580989856161685292663804934521134515270051370549120130747969284662908850965531818142676446998729658392437112237077789808141049991808575183785920596978935670019712794825464809645176933745458303035729483056744652082240652205161841057939070760979412887268888876032531625967927557555990195965763144616847420186120981493043624066913978672907832457226766267487918162294940114221833970219271412085351482615435022622013967872052050449399126954062553562759585161726305164411605093396955462506023768036250547501566533236449448435082991176934831771016010036628777781669008658372583799020861572037716081275246129581473315922529813923062149854369682928823618461532667680259318706177270134349406772364684613536479551694434836845505367179669104011876389773892554263506714394658159606296170792725441317793531536572280199440707758354772588960088062588329832916971256507903784420766080714561947260832732706802211724347322148507567059698823113836016026986591007820662205489406802469520944046006132698698481999016741650083827059519417805008353970815955676299759180893150876272571494586534271294589643884033629129552326629879078279422939194742739673977661947267144061694893871820690174977905276221114874901525952749493626536293982878673851231295608750131099181108391421339193384960303055476833062995165096123279435920139802507267120244055243410674574910476097009223147300324468390348313854760218848262183203295335689944404201089481954840951513972571318196799230626251125251215448053135036564359879687678963095339071234658119352990350639144341098554979756201468318937261312528838931566385147007666961651416004805431417487998752330285072798868470334561481837555996393265988699227404693319878512938688757251311737345460372776379042602713345678233298378440832188352837498911832395893231040628335651207628961508428543891886933281439531175331976982093979339225564450002671382492760453289616171502947290134945443479125976609139627149422215222665879780095208493578643206668789582285368785970955258791348243488622825845747997939133265247671304893569816040251292861090399586475553378248861703092358745722893657380329129255766579237716876544936638540568998290667942460686217794458462754059365640639400244706126757462861138852005515265334494167350481606921663499820706654218603979775481871500454383428087731182577005576611918608657276849835739198717540955746403572145884070470214472051768982409380701908795505162489982757509977890874282900325908290313705736359123290928076319538454187339971288119741883603339380947657504599600068729145438870565241834431345195571365430945063904117319911755304423602363173652043136612301095733230399517158211588985702477972398792250403212619694096304783041218907299400240926982492971220315954617315445357432198067943912921992721859382125125678809688832574322248911266563136659737693306651548321575728487342587737930458994160586741819960296057986114870556580873857937865480415418338995648022290548021481255819996961685408682903754303459945423075585265669203629918630817231570410930097537916830310963462984259121473427261536246170064854534463298390708379159741070906908000244830722038436604422301701290656970305525793947711365311762470050891499221498150566884538603396080894521667541450527395840467325629045130376888116550641032890697096898516926342608050822459654826614468403436062302859379369447163005920468245664679112632303904046318154607430249317985173454819777322220588840085289520494657832988108869420336277278852275884356808355440348483519879718504914437293420896689186824948623359240300742424963381479900842042374897241572576995488388428530619154252006732551368214453197524089444107829161836024774967544685669199903455197507796164160807684666782055643362039914242035783865416419488901673800940317216580710742873393340491609091984344180782070534859604144365919876921937750698437469818620793587273912075215885256062287318412021052555043279677957461541015495498520068887533161355802692477608524233649055117712057362918583489888128701305807505218930481203112687033226685452847498823581786424307178707821860350660902645379792628237240928423783697500776134825510677987434529716477665385966679351097978334005398671899787263403816259624192547064266191114390371116755576105939962890329440668910250008455815054611733511869863538697197739604634107040025546714669349108491022987666937740489493986959942469680826205626099707127681245298843749014727400263934971511894066292509375694212039264977250820004095959674532593442908391839923269468869420099473832073355075888655207239537139180136455670215234667227957482923470631917906405819010530200297464039205027494350582790180748866915757834879163973013690833578402983841943502666398263672145582978938703148525951372546930637123124591436232064843624528002955076900190791473271332996880158460963594712321259842165659116376261910826588974463894943442268283238357600850519122672183965357892693292297473450140176153139706347515761429027797419479340061694899978288842157512915493500405449683685216339408923323398309491122704043682152114107783207773287140988541160476177104774293739345312677694680712480702439824586160050574570467136163571592779821832787647902633310961732837545535569031902847100638137417091450703300282889936107284391354924495436869785478485188309506429296579936621551000785749706444447946189389180347525064842347262237707148100867057683440884975715920445701894647023560604528450798470135793470166225873960581692577630022558875879726824260184138766256598291309090075097238077688269716279853162250617291120810850430782860051256046740321028619520546499406433930669202044513097708401596204324882990128891464282052540672288079523160293718187444525206522737195850048688418529977661871946965068167655978297087542325954514669064209723344395589617154968779107979896764576961057588959620639691447052636267699158475041641515190810826198617962531304094720020215500151529251837316660413997174421950454071946891087468402580517730560973625013727840388506678106141820475941671133404857064485210015330925109579662708835843419419104637758481063483152831339695493340850286026199459864712782167882738789927902058454817519003428304076166787693174701714603158083472034296687787133567482758123664215878554827576518201657161664948450215314499945490898562885709188759460168055791559540889290318244860993190920606835092614945436005730643516970271581655090030308661002014031467574759671788720828338016709288342841581319262838493764390921133847143246004032423112404440968100293582932312359932220390292656827201388199398380762665975337855110022924773661697636720143549532017760626099481196806906480153308153897884620432227765908181996012478809921325930660979824637205598935075131913555414017051729074613131441098974829316088797097454715850362200879438997245138294896662799819499631445761538260556133898100351160642614161817181359342319211284657928382211318888693086529513896153695736766652349489519910811812410749654289073760234067109447064014259521297485738874230587535609737325403304284782727011531441030267528177609498025520538239444362780945987355882442178768879365850231604178605410651473155182903482487801042081986330254210333531142854965218310685448978429374321403239503247625137698574239397003223975657604844927135918805610863613703375392781427655816010855988712171326781335148789290944952434888439250396098126902165322372108615467729965545371378290106609453094585839665667056410799589888972158107257744654720240426784000425644279490653649188659581542147417630808444025133895927872564513908162025442848431452081089378733373467179443129782823133562973473295545289845268287892150514607658469706697955586624310384148500725466533309678253577454043364832723310980473899782619951728596911873399064079033117529734443234795740463961924917704228171922942978766172584564327639814612577971794803046124943089562804174056815255119291362761336138026461165278655875087052907775090527737858843795140576675412407246009630877567661347429673786901466658239377452995596037430346997286624229047768780866131013010600556926464932980251957335808122790223083050683715232993906696689405471031692157036250405991657269201063586560305203450143315435988904937422313496224614964746351085852895138126198549086049351048415244646683138608758611425879925414521906629888902190360223237372230588055811502796794799027212310599131174201344826367773947655479200231137925884662499618812277069310465957173581271054443845450573496133766591838478337605859513202150637499341932004470730392012531861423223726938111271407871867756943100203810897522275508280182144289170949961977071639589629987450081658195624376828327296141129285759056696416133418482408196006041517798450690446634674983442579954489369009545042584322687934180939155814397462517582004005718146640381713954272664885091989322924667581541539116853695022338213080410995665074474347019000010656373179449970714215114479823107897304308569776573755288659290836164890065932503393069126655351643231291416406161499642511804548125659384212534799323867699096133395191400442262921875205814540191575708860697858843134322537859804430463549994779434136934305801378493591306726855995485841744558660322035098031632196733708599345552392265652093930556585784116821109595701317117024278032916736964865729571563062313143504234837232061976676222452140388587716650424715955611298723026069125111138768119789798506715852786736830422335011093368758249621844768483778199498938368738303945562052323282352605303874279862914181815366927159353011548932779557703382706114427868571661973719522691933974217486157800380380968662876406189221458360108774956711787208908774438560007253855421457795109773024983291236483990328694848165112732484865319167222801611142716292843877727888335477254051799504996232028742933608712513883296362944628491962228669962983051103998906484289867151693635432250411568337627331606247724310723349523362258612940473022701436913228062890239936687124850012656620173000914651496517628292226286456687164319355960241242310996637307874406962846208326269113393612521096408897769634726880505531112772175880643450957441771370593103505560509655407128542420813522100980323795786454780717638015328859473148983146900709594813149134887123583460367604856881740390329333230194775625329761760214410570905871922562441825163753799665222634709972063150578566393763541035347253100825885030210605547861255794621605549472384742508648684991873717827635296640118213953588064752716422025186376087988647050988119556529109001194891105191045234972461229589406715637681188697545500626999563246673956119744450187586449517517552024923432742901377253208324772802730332268519011785108982664191740953022326642196616100599180542815045083613833105653746229568689061046398707907956982873198446271371521034846861212222420789466927677666971434771228158563392744887938674333159572198034437670028160808909487490250792404567652156704396972261250328495554850837981361729740614394060904159738014654736359235236361010568896731638559478174082557944771743834087360080148116193495780480195366534432528739085564247776530117965587118148655772381053037538196979240821329338024503163894544534581318961932760102109375224133704869987348741928271237941532210992205312802001734001535077514793676196160429094110881944024626044438913299587051219470425110582514721706352244528560042930203081072458238130749531203032313516542315350116803597610814112564775531889686679837284229720027808027604059142495413003883480439177923920669536950035289903418522511904928732690052132354389779759731159691802108206871295169076315996808851022332374239005109898591213098053280963783588703348712529183275721993050391280677460821273494100533476665423323702942161315716590693418238166994476808976912053466898834255259904095615408686561260071512791165588003694980060333951703589438512179005825608147592543171719282648308195486977612874534375001941947992494609867778529322020939132758462966245569114156363755174611132678191856396137828972027562832783861213193658800669779243096554456584919348595005544611062509711488774339761123862412972120468123826825074186271895290727665790244027808507652310082103956316157820236247906218711225971835808767487143161578006446951149510209809267812735957975014869846603318851894248918450737372414316036083031754811112734559506946203185461830969897693462535219378437604213527640016222495555398388400814169218519091057617054748865479707456174155803517783792479476754855972242798358622850193496946334327331819765307764776839244107576778884157018901884954744188488320698009440427122346981504938662482223251788145205337216088345548348641968920386042965824751839962271074416277719603341315484951917683618985744608033485044613459921439674097126091564970961956395785781035758865770944884517523418718123577284876837849451426309540298533123374248870574631972754156081268617560644798469426394814706867802921667493833213048403143313516021595690289191669545295963038672794308370961730658712040551140751324494599683664680696216505486651371627203948941501498386114129573038686488984060767094924245977122476190906831147711569922442442872614017580551597925956756100225785745015473496227952826648541084796660773780630154099749793068576026569365764959451657957936059101706375775052339205604210969975181667106269480643035990209694018947141404327654727939167677844505284053837448653512467988322122168628591065533275945864576279684722609193247324176527088681787119789705274129446016570515358777585227185082518955636100697864955877127565516303507046451412339178553636722068811030095993178317390597860685880655033537502025244455676747472550707404911987623500040051165153451678929100141812120993339835734390245986448921818427513177832807327632889084669543375031216422341762228841766837810056923984376195807188658862551471172046062454439874316686822858007662713524985319136530436401492805091382592161856315447235313508845956437610901547999189103672040671057120371457780408272131013444991873737206941038882768524035277125106610287582722272199537135284759196889739397711198947649429505053378422587772284299785632922480440742222948683124623103185366317944941586453320628718904863697663519330816912562203409064963795140975652757125525190240088651005171684459425364833271687292437329849537840266860180483088005946241272180075483338611160747018857124998163132863028424632205114968707635579738709882740809706162467181419008428659023422753932625421572151240032811973147684528432498792035812115510297946850540322152432552344733705598032562412402189766552304314198825442977792690345580456495349033478602721476773574587090233782293146664821241106001783626509420652405042341757606727927351781680281600333440183778416869397914413392116392976895554641742054832987901781313227554319259964514399106215263417997570260847080197219397778531386874240800216118309389632508199143518047109549059968915354868423196051350140510109716561810515198620792418002535161560883389391738089436598260705655920672882343624382657329742675325297543435865607731120638694854657969614097658154212681679224517709111975542980694194396478185971235874468394603684303067849885110011670710160185138914681324791397972822634838868799850207549188467647511263679426074209535014315171724619394696267671793930850572542842864524916437072327512243587748284359706535206775865673283355879570301861199313674768948654137500374652481707261041545549135327835392622723097132267377067259691797364489993485868799531481063714643956093517347218654809304725764864872577436456736860856448841276746601635070917414124384433775737258413575087264476341425542750650514083750169998034598875572117626758049916116369325626002823361162405015270405957159380186272557346886137303755747910941510407470584430966982230250858115897776251008144451607341575205783292570831233338126692732592621491217293482349667857862720035725339824429018357142425276742807919834395578295008122091702625535059641405939497363980523731867520536939451004916524892944365860691944591417240523817674386055332326470782523705785007758148899474355361010282113389370254038191766177188652153741369644024504418980395345021519923527206529832572786909794853346663041630925094880836254843241063998542456808640137568896656284243554975380500786402466869325674688256702757397123915060690863596091464743949657668863593408364171632126124264884856604081179045016780532572573968311896613288137171847006830431183224863159659828271753234687857020304224482538904101709795707600833845421237690787581536798739966872499193433645158828682570792546589883352436117244193522067107385889176047318210509659520152562461857112682398434850367681444033316936366067813764384738427168946397146093917135004775991501707046167186169603855996378999877087729727068033355575723806959769756293521895306934238982209044437287063175207161375104449237769087820164234966588019297284472300599579187658370912923169793437022909141930332799947941745662573638501411331123380434930352760058485095989270160884301092871244035028887198096134317003254328585192458269797510593485076364043357256536458289550678070662265072899647451197372639457786705793074520375170518446556699642183096163294273782148829434759297302519695476347969966928700950291046709603984378350953207047216151788128494270994219443725996928905467004136696027711420510008760544156339117617558399482275652892894413380858924162483415517125640486834491724182277153503358363624951550728951035283639853493397095954783543135672774622101465013604720060640819735124109468333440037274593021096853914912712080633093616039638589209494617443400199035745601009480157606166080486560467506093861584648175399713609442960665960236648383258249674784430216925509404308438100731330009237000560060815032623663626829954337554218505433658333158687760169885931890061102318484387760266379245203863476108170344067519752106271863814519599109943075150748519246699848703653895933157250200937817325427948270111613158680847902044509690598390172827639517270432706936455256467164182423687107077246350208462948060615499461481839424390109856330479985281215285576407820970847266966348482798299956372436108794866335109361744771383534911845734855618199476167063661348844425908163361111564969544139816021431057401107483587840671290841366429326607617352696432601319613931092387161612493858580799452880500068434294911246178780034785441728793758837839679923994178723107651107294765102813465635872992956199392018331184274544355333224700468398040218894938801779494658615692728140057242815134549106065136182307521286253870941634891174665952681073989180956999295435566583485482943602394723377174143893583999156742354370172087772854209483654889011515297092754936091198120971587272346885983175385307607654297562558274104815206735311879873251642446134689274707843706845438568586696315141024927554452928233365468521749777878178085026392199131961185409770569018571742738478186570030524599952140250676230272146394620473724251935227443132316863289453801712070366690239198547391034749537158529072020641195265060384830220400399617710497260626230419744952635351482269037060231923935693075167012869265970162202953595178508617258903051924366042561522628449156415364940256793809860340391235643963900923734892294457875867887324223805713660941128993423171424467038631271471183800590470703741522364760819912555284228930079394332535094282110386793035669754582635025402404077639708109205177627332007141279236668737432344449330088699159864314272509305186974319096179601383168605775710438869596317107860760371222605475621167361653089056920498695824902488536539044724053038380404626999813431893373679862854744763528606818775753234908419993006463380189691054227110953345583055564952518886493075285262748760828951345902711168927623992833090702909003437449364204973027914908379006381066263921527448469466918767094266549700637781209654491010877628866211072259508667671555295284564466379882743369283792474807115981088094234505737290256209354978930617046688611771856964820036725274505663657122662695816575500656665079001169150443806730316253588152809206661651874748844947016674043494624386113573299104317828874431516610362222998754548644792678391676288339335849979112933078839021818234891740560187294423170497438546926460583268619299581601856133911884623457310905190136307613814619183520114364093885902516341869551324836256359418081208940379703850548851393163577138474894962625138343164179236967924641912574028433783656963383276869306561710476422094780877553766594960738339130402519871686314685061280149742943587214809863250535695850927973250451718045785055245980544817243191223796274053799051957958157149488484870808765000067374372283641742955776370945414746509085782291434494798951070435145053638403993994617926096576498057420098735254395170316768110955767752283664451379329310043803731390217852980693208766165485693788130274368164604511245857534127291343944548296621350083915125522801342864949614140684169022602696134578956843372081435873445127476738234757632248129673896701875684138210751659914435181157570638460662739569190050633883618816308701720305165904726736477869061323213201253791820595672457120059260204481533225112389562342684033125835968059131316064606812631453270985819080785566715170090962048320975934113855189050816519653398160438264532303999548583936348039661008683162522364283608291295417483736164325979114043925105746272141354875358948406875117365028062483245548587212571550500379852237257471342220283306566352867278146676335758005682840881434939983424237100911632266266460658822062240344760923520365802251703861204067059983619816014170516048748299871645957538949731471604507178179748839930971794130100038129262456104666702357414207099460387921785903913939732197853841346684637730005174352463973450602236990812709738731108425850858905399598811881295578836034841852356623949033080600436542627066928407775065167539816348784514215832443322780909389981114568508538587128682651343272272645231484575722268472096558430545243142560650337153128100119341155879653462080024695539930648173032189841042524363934492893506781931259342879308141100976193507178998073588998557881353929266991289190647716128987130248872380821006972139514092728804380745810638215908089426883114303719729588922772487804269865092430529537216006780726062230028678752872428019381011203822013937932553931877364113262015896445154571259807033277179078391614188182517853566863091548312327970486475749740586861951734071967480357727778390243755839813050435751987845750000035545991945016063768068225148458629793848975880960832743115330409453010477812607910768744150816960804490937041236596425452951003688596783787883350787858816881894981155991108497407335330726590025438986101297104895260696069975770941446238598990200156831176191585777671065656684984204159871908860775437400952806857971716527263128397375007183275586753211257918929252743663936561116450416348763001366262372126343418736814810285847106663567542194860427552448360131698661520292234999136906910831336969754982270570233227538052634363022272806412093103053809032195385357747363202285926089886697706724342839367480742236312145296960563241196368869949353929609556413191238062322962602393856702202230466505707897572449257082054306020768246186989275025020929863578163861501264453701785260371487664084283577209317908184815573576646739305021049077206339486303640077132062249153989937129806686548320505563152727075185905435387815207939378792685240791158092526393449901038361287187633888060571002390584940561284113611088015745895649480695047039348152886135142164413746248845442912784503729300811368916363697524835476181921397120537865468648950038791111802232111455378573638664286105719872504502729286918230415223885765780249068246198735964618469184016782065318361893406992699091686015697881344841910237805019257356631409774486253590814689834288109755972613030329678915818635300718402640083278183854197093887393577038416125346972436180642933669111850962515259029120454092632796350801268113018293849932164921223749846617529276016758224313932434906841103818380848995756172966141407732259319582726276273457229673746009609655811574773503114128071703155858177320197361314881727583557562301620202518054706516212367612464374934491938256792224557056420775041513265378535623125688410026672548318139364254952903694087787854263164463446404721844868799598094773509728472176656176127012428242277778234516922987965029200509394456207992683886283760807255324789565391496230271763651659446596998926648594101100713793568589122049703712860811296840482846580791000181378841912749129243954650223679078736841957404758860171328684801537261510356852495890716400611932075612268208873351975352595612393295220675901251368987959715016109732993900149431615249218413779112729367493646723907438608392022418090231642668671583244603259665295891989720163772417764484553489925503453322668140462401966917297118963350603451697692611919392039320064770733047709598303618283322994175129005883571571276875819451152471962502925412061169516787314607542841930167802938371666709895090644380050816899734798204438635942969202829671364768820996091665803001728512426307185335186594494466623679935882327423975831581058744985049729629396580865109735329760440972031258904313906029225455546282437951178123201768171011674938789922136612104981638598689284675107964887572360241996774500842659881841720746400923068058513032443125569101474430936827623452076971623953588501531622226272722552157500002962402838635714824180848239553288357186853427925066966907136030591295762905158460371966760961088809383070620273438329632648554195980120141977894244630665684717510762764636217096403817384913150362875836758868521351361725211563714451602903614040735830887396539705901559638192696857035483656025753004889728977425120986377016293767428069236413646942850236444933993465828195981975753463895781469234305471786090218031233892236906289696203228057839167864081864264891876295068912401885671724093399292408143756824883908603260523324586787256044776192011199848251123315053459378808034933497663939464844829676737324869968083622283249786697260699648174537618016957913752222675337954586889191723602353028483299253417316100545157846799850440544591743495024149817382242151999837441235487189846770132132803753800145116188492300789970930633919738212538802596346402617602142575470873381245735652188324330388542478374211177376709155990443167816659848911251426358991705331768192640500201889590120065825750083117363647629921142680375507589554238231012587145151600002075170636470987619970600965484331023675607230578198212960676386624609420554627157849365042545063406286645843827743306206858154664856924332868149836255029877133677710376390358470254335573422928025174523035299360311243188463424970495929553688726431272215719311148436444568542457333580073076481911322858679371350863663032409775916179939457698073060952325997225683938480743337970099337809434548504322386377809552356036243414222717954318635926117309290163683054644102902931869527751440766185924333624376907850699275615471362003119676921377146525321691492451571847161127000913948216186986074234427277748437198911169256006819915496851312862977717151440727650177941026427038197773832224271002134531852997135459615681121455706096460842193607523227383404235967139244305953466096410638333127017299102685436772125550258481374457858229036233031909341218730068316601449782232080539260047956142671110110420055631851131910956836712064972292906285714719686611825414038145718101466602001184815721792212467041509990766125767021935361751823724477611090425159975747309415793998184069811017799083675614837528070270279873412604389189714387190966242481036482362664777851558255497077871988166108949841548246661088790096018640696986735598134841286315557155210201338567361122353122087108172354174728731489228643036551977250354787609642287819919700686318393345230653556810778982800284697327520904899918758970330469389284731561669394418450509974061679955779745170393795053576165173250357196920411040806268420226026564050188418295737572173146647025744413415633950715543906762357271824799651500848968815133331510963162193814691020008212502578185124855650219541974185141892990712279287835039160711262681328310763281115040960530312539309280144283504162066179486113179027022354007357915229618559073219508846270602417368977638637861929160379525172235967709527832063163659728438090683578500911954279898618121495105718917242034028852247780255223156520625908993569112882634411256251198520479334289929292078578431359172747568090932720854888409492725305511651516358855423134859029843096438604209793608065042181171315187515476750940530863713187125396366812396987229245200879549963139497822618324107078205641560763151628643724811387644066513490253492941432846399290415055205656709660424348683996546323750084772800579739493174840320351828787076912096200656296052544014346012719576419925922113724850132550087318313947612724433060091414507929870872339781751299832674949653927175247625214345612563920819500589624126563523141796026420020509798623349610207528229974493120465387952135017175508420345495537123819528597684556813762432758897276338881172664577430415554571324746070238844361081793999535627904067227616025758905442943632904865472827671619995318862834532095528567551073922838843963459411573896123377784628985761698445531344640190390566120449953819897091863181491384824180242612250559442707943229893490936875260614434558200733338620267609277480759113907988109472441310202701121665030382083224059388254679508322890617794754559665963488056431178145906635250449555644886624676428140763724183616484929104086255063953126937958239210292021504866882913244802014320239456522363019127069061962912482686555425260935721614013524050299360203285600967066625872151650651024294796279575986873362062629194380802463694728063602780330010573466372831345889049122573260267474875215794332142742243304605760490900062265988604789319661653465024169958905701803787868706035957934683044820535768674598146335122725628446614047700941049341534360724974434850894403022307217227893284028186253801619457287792886607609108970592571201091299072212010518725527434342264398427447321335816499288316851025656822707338344252380678043364414279935921639739679813658929248647013467089920342079362537427517504182825384188189338336034606604076752947212707214466950886503684883418830531062626620554665296963179211200553198182368000888277470110408661895666042483528907386653917050092667696436453121515316017633549409769943170721722717539020914424357543854980413288383600574494540247435827064967708445503367051552279511699443274810274111318473425112957724255573975067929944253563404654209115932868308387636683759096876981191125700122345197448045727702770052739539537396482293323664951421739669446674105579810438079663778747545992938005736047780415526755527030428698734769549585459961477185786716016287560495077600461360723072244685691616601206028164030411267745389337023295373372148743619827192257101549788147216443442215026634812458144166102763491153924263633746246502505623819871289674644000060275500219230570581267698648380683926372338694020085776521883723394362930972690616904399324850437381291654140329044041713134836631438651072948532355228720937973765615662364888211517333310907138866677765938875855131306703685164492393868494483240549459285598470132771509348738110904316325658000945351645067352993896025128204102610373907049525988397831958796469136066061801313469360107739204166688523066233437179233872837266286580303255568551235586384535196326883413749325291583741627140930917163807674764050226384669091444008024894362898365601471577074346959110260906582548158717881048092508121706353703284374259991728377280549523719453959755029878523623118796655712278716396877454738717624944553478669369760406395257955878804009477938386594373864015224628752452470217975867264008909979706859140574246445934571529027107250113497047876874307686054550239949545588741947244006344226170823853693231882867963687602861214625492222857679145436632280005946516013098581104970364307433495601564927752379699741272990879416668047070323346125857072617175207956727296330047141633232490293555880597766453414994428125463254262180710927808575376465520092069536379916508766837465031682863998813488553205405245639159137827219304103458398440880647044273874404105095371374223622503552860916155666765669372964455122331516081047419571763294262349886058037100580609594807696170868415863879591750612011258551146917270032645639395082801891579655451018767213560619130679132157642413534710596947976217580010049733539807073977109016752422798501829177457568986876387082786231535993748477681980237545749411384046220934554419048218568130814618235500835262105047830695478179647056552243556767981625566051970482670967268413067726555812363697299157153126479615811186756181541781990645825309613538303522887571463223576641027830248896306129204836164822727530339231376052773069770948565316461454487571104797332981720740333737972211547460498681217917854900450236304698148340858203655034144447299251094005258148229078013138591557819552256503344644536433384300388369510670597759733565012599496293996281074200772003000231593808987262429238226851712671773578723042292196640488128393064514191659282558447263397527326781411904035304590915739255364381759528237858732483458732193221032866844259095864121781185594759498689237981554313477660099736442305529584488246615129689064606461427696008075196961161146008736342857871278316145024691274444214582878665024437268129553441823505047700783682300715117921966182754709717045468921352922566540015701879972335349264418431706757972618358628614890144771518049438888128591508565030066429663655197908829992331336265340916635537820434850856430829542768175274542593448146062877953354013298360946948010176168364628002959122690338594642237073807199585508365202660772934839021867437396209034936072159827270628251103986935153056448035675845107396901731199366350289103362075077514066343766938326780052175286571152530614874551124381258797967456790770132639370694927748630443359190244016176757546396462496645909293899674513977162683338955538082202115072813084082426569724629626458796351143714071777233025594212839183304219207132002261824996810116045686395403809831938352299565092905050768472142087065882306501592878199026636724501967515839443052315156445385523510747075360753991541911749358626785521415173590168872700058358576520714120488595323991596500846193872027457123613473988518805076309316059872220769822343815205092192884757802792451495415028578952558095830026860697425300066271205955557330318345811816051047699984136305127495215876053747215960349969906633698664049563763687886036302065844302005597871799746628151355796429659774348384462459622390012200882710124017164482287386407800617888104743059761333815126804715052926747420087057979286081385789813700982063301790695416232386396019111088886458302825772391729368093210850281743590797219576063186348617037459115886566539192364358057941442612734087585561477821835400623131842393590022758793842390381647243689515613489722036724768908863188449017120172237755558153192044305145512845843553456161508223486610727362564488647306258133798825425864459477401189995181735000527739327004590009090433714419111187767380098393651550430654541667874030142709554074085598846537712086508757332383151254723565943308093557780673340415050306095531271899542772149448354799512541962990866217402532156428838621457677922191481089998673713746869168695015725642466719403453508790701730901191330605540621021118082449893960962139441246666583488366464041804400731482698763250026210726998769822937583072676703583735289879647453203785289899408325874343357824634587904696457964001765371786686786991391102903265407739499120618210238635589479692946836906021696649910086425559883602163973210568489846299154645444624357830889861728139160847999892285049693237799283147800445170182033068592486281149323813929703511800710157572961871761872705954315075630959330775690759108079948110331115013733466008476203884924119591834293520323552611663285091592443079888881722473043190114511252988995311461362094558370496449503157497039173446420646678260801267357049348211259523772014624688989529248449939593167925727005717980093105323972798250702015884969311448105064057597616189531738232908035504445483377021031184865431879645347083032740982637985644308225787624247926058771700518518495068635079557944688148526272186424112859998875821172448894173029832325614476430182865092351501309235891102352326704593477227249287227925071633481673969012329660964299604451685673429723538063577879639479336767547695755528102917787212289654420573917703200735375564625672850289349793030378752382420711203933312560952940809963887241822844081070583064985048958731099783949741491333609879144677671746591848716458972001859046878210505304158226222275087712645719808895580891036176567230594602489283426290994262209901387222309888688457742142521398142347371504764051433331810538467722288356866262525018628234932686548010985159871655419354040877375737011625384194521608214249392594095203094687846534675718461103537994314459937193810526060979895938625808219706314802640800288351114299995226860602813016135077479501417417879567709943837899532728830970304006926867607784417201019261690442938101235172701840083379152287047151219187522914756966711730171253021670038490637185817384266870520427602244233951250508286869990319373112842975036784989542324133595393167662805031069524153982339736413423606202479308685802353139335879207623900124657329242682590800955777828291855309128839983608178968633490439233381070888517765085301727285584687690570602246116609217820509484982457685741367962705799079592892211925723245194018740969273719209468165632853021835417896019432359267113239930344248811254463760623728340096822859391538126990155945630949569611287578111601255941173007501561004741705649163772279792769916866423439482906290755822640159069510272778941452090620650879709670606865934619278536512401237256303641716084119011689212310085552627725030784514235469103503459831703047139059398027671134030494137922978213831694877598499275862008281125776538536705381751794085806360514130587909061481117840410287594218215121264828992314919374346632383713869586333131289469136486889899992691737898764260338505286855891843746760425941498485739551716825435585730534979307563954433893205160348073385000668077712115393108614844690171510932271235091169067163618978624063995502195300590591761900269471095447545831794141634198262272165466608560219537154030600570953532650625965097996092220240468997175383516434732908557267226296127120708591575792386847989255320258252492205853194193429463980835199275912193984980872596854601664309520371543736115523301307534527175453484768426233320565973952409130786257832178505637536948305122718867767765109395092450557955645917104189746494506490553295826266557008032913237526734620223576304684433895012508981270441985521980552510219568484513191211772069951212335027263909010629803056209874089522040527571566206306823766838114071339749520768633858117151592639343294281179734058649056312073536275977169151291472414700689561360669957524190425112315306548181391828288261445368288028565734447370717865937011717828722755539408182954396062078976692619925203995605827220137814378688786496937934129048487414282630421982778754192100085531868690514450621342476939981421187627370592929624408524648106284195619990970710292566279927738847756029150490736891458310439133334897052166629312998981271940773438763540047916086950574036152678126602303576327907384583385310856241562496908077390714997713735997058355167183990722834989057971268256193997782931060057196144502554674003296354979798371327874311542961872244949773311906694720739715882168171628503772243194992896385980274551387956270297240320327569076170914964739226105355696644347482012640144950554906629108908450650781020279078365173782031841258522149765317637692144319565198932957710803608805296261438077449177363694034687340242314942494533070404252868547493769597406254117485414978502733137947604383713511616427149059996979707648491766773097133802639217367123106320099654462898702846418861154115261887782446334773185506199619680672061570100187380150999396782117745923694816752683636658339879572256392820628066079427404513775176561267316074771358075216172377321927407196130604483804909091324953652285405907865362997391677707088278757725710362950341538870945774683252965893520176170584417995151042481271621640930101781624394486908894669317820088112658871359781796939484975560791636026542345061446434589762713113795968704838736304634887283279759381659043061507458831176498417932123745342781861935659984353588267467124427693975791922060547187871812323552078260713517603112629371663153587880865731549348715255420928112275952265983610477051183250216995539239627728907204143847617760279465626777105750222475428934869491185114673195952927742270773581255804048830847096312240652629531971370437270386270765596735060635897897998781636886165563326873701859890103607086641548638880842773020377823957871687551831530527039717056680400575667170499569458592206244635402596408717991948238966274725925966289236823962964740061345966479309536530832224258005758830890004903188113385708830281735663724215298436953928190273285813435232192241913063702016282731354397715291521028417911976747116420764651667060527480099917189198998523457465950303518449493928571632639892822165637773767620776095744374799307876140024588080864316300753099690988865302580230291909581806673482517079303390994700979407140088212518449245126378651556425384386662900967730041325358066821570632990831167100382440053155320325018316116228936507267900398908876350805488078703371581261504349129943335827992734880336530844143857024804785505664069629339695254724682081963529795391115130823013910688619526532542101296933826902787229547004849792366933742898922433208390504543334536161121773424993662274118675758235767147118194364800460099984053567150450330493138950544891614340748427330913057612184949647315568388372289286876242062238014717027908075738992877616425003892951384216559927991072696956568918042216230981153877328163806114504065643908550217151816593247837116271743954670294998377497089784809141803613840990484374634722467869688077616333268341527230340837737262161546791056441926332009471860605916672194717499510311466955382170922375192504854493516923873511963936734188001196754703903570121952723524610404444695712716144371949619704668862468483657658117511862076050833972329798341911969105957442341883540714093132450974923535348223027878832982014793695395092586475230063367840638853739856320276428992910285603442232935164590407754514711100298796944228255682719414965470130451326072962735458886412517075128706239499824424844381414400166097656217342753745182055574585802791542492413675802563211866839462749908499066730457659811584159949216537515979853862958786892467954433842164998060573633288656728367555142984861429594897511208991808084316864599566326769358281009032501787808163757135465258184590415663103499209248795846015268621729124631291680968872164212880748384969528375186940395339127239716596456808384515300258665159850097573710130442408106098785017240160527267013409487825066274247959775502933322305658329023978367824738147982892008143421718044097777412242787587194440977459400570924502060035089672159478215779207734438926680392153433704872128818697923485245116180082255636092500192020642078149464902752542548140575379294281377284125145061522838931484359648501139207909871074252173484268806564533852300634200685504045342836872117744400360863065253109468593862633320367895865185132002597919160470370565021339421152370109306157968421527400007761741406443373146695295107580644454937570515473267829610278581233123542111088030781066792738697209061705577284358336329726729924682205103346309484461259994122051221207247777683874657042791452110919890598984054507056833723768797748570538200841105999668688707625402659538885488539558038977702359637920113431545937138542369059275290342287732485893323855829061944917939743632734672017358447443420904427731889036695510770565958982623374884909620759344436779651844813548278715850771819345716964166046586372488617909374307974852820997927428570100776942345842348744575708580147108283199166175451981311421499018820913735258183380931539039717735093492595398093332528224708701534486306727383117662389495554870644483512004386938793354532289328170069228305649736533410723211194369742283568219597494275212632797730573244120899259162709831706066008005971211056635469342276568578874557293146422457624409562712788053644236757800647943477045687881286205188857293905576491623102157250691832335325658274938184216238286924543286420017149956932097659413497923968887851435706790603301205196931548145286068730948818448303551213382375873778054158892584154954501424707138635686882063189823488250586550983171436942473630877416153238381225236189378936151257953979144438019520686830084476991024379980886814474917794211508423864097696042637523870340552217570926095384522080702846052935169891285494176200498603111393252028265339278164307636145677949212990232154474652582055879582417877825400108274665958205692206702874571578393937185128172688097037033640917912937286104851745509037249305679439080645953260704066193480248542430566806562322155131918435185398954926611183844444234905603225695434927348687579677179413312149828860246349885149770952416676884385811283696433549676731827016293470011512095315609925372947892477274232466602360817142519911109614525161911152641082277951078709534778505777999096979376714295031559831365969499069612035330165878230275850514493216324206707672760813635375991123644680711551740768165334938773016361107511687349492195693244108103512029008191814214886179862906217673592695614906037169417163027173585993053879457132723370971096442466096274742833968331642151543328679260633941506596516059051996010115543833380184122364230048473455732394548532237255352158272808717025250791376798336874886851774808129895210300971796955453399185158548523402742115254046345680083754476799685021254539039956298936611076143123080965705071329586163208268422693320623701002949568703002126459617828890993505247513683815823574031511213484369910463287369410553254003452720288415705217716284091703986326339538471420979846003116001118235407636153773762105277076789981686175793978164795172976990950319689184935140684238672831097465187113938583288188642606805006066549677991140182383276731563984061862608049524075921954974548404305327264825243077414325202991785750452025778979095948773129470662123406380305134418899482688701043080069491826860460807977233018565538994526552304174749084148087330041169503683298759662409066426952378917057078349892236308534370306838784792317584142829409513383799816155387250679906978135956416908266136054721304686582521633395348330228310717873924621776728049234151619937703609706882599401248926787271792258239203300320632780352087159033102304058480186144502602945381723951603632320863225452400794452167390293954123379030793177269343141867656404604728911139589951138186952063532209791470997352852735819531427511981703598609156192050559642808975703918622457777222575962193815904924876696005751996793281589234027834528879879783929444140429935251051208520008107793223769907357302062004973978936660944899834009011012536398820751844453071906839636381912646667739753613448228130863157004523494288786885238480719913794712798613942903339607102914294444959800251114081550616418712478895387945654601656178842634013965091712699568137466147978890563321565775647021274182033144185513499845358986148649656828289085558112650689348962300071551272115064284225066833003468065486313042940019048359204027957985639686417479969005659441372919529589335336428415326562165950311431859746664262270271742231311593899731602485139127959473118389421621216831797190939441855799036745417354615483665265635742983454329082204778180152558336803851786833104800689853020930498226654403995503477628846663331147778946571126255660308483113603900966314308414546660686804072940697393764507578272444127509163896033269560339066503077934180097647983761867928498528697878350164363527819098391535687938716944702798185382967177396233082953081020108361624842202173321802595648309311931339349704730185581700567720673923905426291705835968767463629618414380295183170036933490192494222642254784800790145787192532035168768399206555733710932055837170296903531025877622223271144769448644970820146565155223908447867805515225360656282644879500532786476650221123275634485977487676626306139295292062444387528295498539713087862073550475701166677077247412084559938027920918483542728267826292191629805419948173996351949137698577015796784744079716368185197028568739566376519414586990235700844285567949135649946013123350509512275083882331357227028542491494010858900923194264314120388208097619080805018221198697271825753632658025033931004059127018892099298154798250874550582865940710541647856251153132992077088926941462789077265229857051997073881430836814618402040089462686991272430566981671732686353367853361663613983783725050435006195965118677184449989801115916332284395134169535282803439868207187549541825062679752098962967389779396350907821099984363174720699796546724161787056829921022623043629596947614417449065737930026339457902362110581300986789566965214617404258344599079961606463263026687307229347731365742875504413616242104565988097682000026786273285820165082336935113152526140594638244334530662371463071377307858788460183784044565683480659232420874652377137371643610106604728449002087021612617343855328609407669009755401874478363750214201763610628282470276336379662977730857647245642950176278773889848048224768867863008371328567790836421073488331027062737929742549786740770370037779948451582833134043023933802115815588475900799426470009070317305616510213026233722840076311599092446408737138613085482964900003626948190845945412117015980594770274085613495510233758036646408799332380580702987726822523297290166170768972611855445643411387529897318537176740434850089504784254005201611190207544939950803947929764867426623010331603797774465741399192209022296778543594587176268618753914519307769134981691289143033333075392644846751262507020490887605472190017633780522159300489964771540024191888984000304090213834558188877722288121217441125097632915076761655045332750668823809001592549515978777459396993050576443862917854047534786626642035582250314641669483140673129316208377598482921389312188030218547936763691583608094226355400446772631034397293845356839400902126082719413854749994448592998922612212316966377274416717216084350519776433129881294523138992973804155891275488971391730374838283234124068081845187752407068219863349005367264375687059648028376335059420722853967069909680196178111388034728023358022576610556059028743849453652882720494854005336115905803476627247936474901662059397947898517561798062235664064231970412222612351852273843394263611408178303202154073937911667989056928673594059430016186473852692911983557754669539991705432005791965601881843158577666871964003729867505306977226243161535322520214189061949389630288859646732371932511003322758416018058552585950185047710644821513853799619876910778279743579546621688820383328292121842815236796341991590752820729076787802304905897401071089977834236272511373652657536247902031764947592145582432556882491404922421232088323728085586219010360774976558849247864692421573667979969635185688693730471808963231217281852055554352191622980524998935523175701769200025060392907508137856775940115472886793146331989634588245758566103989517980098212504782929648593793748127922033752913311793825346981383452035748901336900019749802038987506809824532608699240519654167165829837788802272944371460679653589931701805542054828198415484532965400303455445221068279831039896431643868113362028118533720805628407750389297170885039606102360640021820238678881288112866119272762452248954119554628548063558188512022808272135820333089991659718630690024684526897688087023057154418393691147051242796528789806184814837202485444314453067764044651879684220035860839362488898813887452968698695065226082759396244920862373018918097320802940543227363002345820454213096752178691759527163435505058365807409594142005091807396922995550458221564774622752319158405533089157074517692091589007517345871600804798401006822702543099917634341704665169718742264589617800580294891940148786674091768944852135786522226379891136019433964602020204636037684282015973762601463590673622493500685389660545577146506445197724434826629234604649808761669769182270585349882547989456529070980747156947187203973530401675191259757406745899447802312509312462686608214827378237145857621997335731357206673239733512171195493457995546095965376760265615458028429309649909444875456648216603474388756637600841239923972849213106663747339750373704109190273799708210391322903789812722191537739026345613531348650162649206517117592858278794177501783229396931950842331769973028744821593536722768330197633195721074642264688407122585953846993738884262144026563457535742162484566605070691775561137367227636696050681060144311650816114650803369855834078326653029040233655692309536281833216186977565050410664165059443195960147236184314305483441794064323601205729133474413656775546528379128614910522412473324995612510232522419555567786380656866313356656701551183740817746968481710730407811606997845546983196433861383957337069076905366169137398623797433836641175267240841638552313154652526208547283825025948356097012554428255739208904599705377974667582900333754810599653193803503151917497806783817119519502243526905924236646061000765952948551155834856024946078085727275615575874371883107113000195896174940151774084834155209802051341133986630509886636823180781906675150179383732733187610389584093832121660044686320700301681652859843985995580030811339431253070749902410168090721350772489421068079659417759289302445379044407447592984717970654849295228341905218349601081891957697798868341395006929452061989789984115092224442963672175514052938114213909960213058032449000358073465572317332933494280681936391815130180861227464731640424314729283595953867724261198860526080564051230409295027705660468673638745691747556135757843079728009035565790348153801559528545184527894711577444713795086314615327406007275145317168624662257200667027920841300859844327918072477241743301373450798307617044476454901946011586573946539044829128662798624271564065445330598320816073536013581888669916057582996667113797188233201773848138229538813653024603592107276663686055138044341635291177423272452058105289604332436823394799926251101172651893271944038177903819859939014735039885649116975671853292028657473443232826677672765235236771643570803409363562192726425974732962247624574231337874607747589051740920813547362913540708858776368018417685549329551931164284465413873206761989739396458318176406838527734281622260203367823525207305649288134211703076779460380904483655319949644851279466442954587327170110107414200411491737916508811567141556572262722988744055909218305371010011344657588162758217311995855078469649037153436432973929735660967312915210007327147061483983429559530017427164258760882127680610713826538104765150498536452073021124008077835390670197939334065432135633264876013028038276783066204577237637279372461401973485422282009236969496212700879820270489710716411768022209640782068315172775932560073039612306672545446084453900493300796573674142402656984894093894049906701562330310596144891559143879367544645266378751699731837940265918790498131080777153119933696745128253170875676689257206273220734999513861273675307691188752853641069888987205280809047379394169895903310468277727616066910507443692509109064914834733549813081222477124964830010057885123681682097543092591208138643657368722310441781681752873725404720190481179608794400618257052420111894058025196589394737226344763230899243905187514389755795984111104091530767278085851799271085008515969841308980309737836296086264062864478871260402617084554557388075216939059317173954518902463714458438717261757185284714066036000320507010245967445090626889076434731599151009035116732191463821287045659925931462239563738655041833354270609907070604094845354446079819254244017716846812415314737381267482374857146445621758184982775103702248374206033944674482770019123011436672679698326495814680341718267827816895833100431592733132369982134906045701107502668058885885737992633444113658014419336895868935013343911308150873418529390286876076354188140914040589329468677690272023483283217693176715723305667406194878121873730407751726598168917980107663455801711641321225695013463013223364466469137708924989152075568676783063040008739203295700457436406409694694804886521471686127273126251695414089026165987895462851875560745596610020837646399023311921962339411929372748728316177798646903077191087704280029475852562938576825637358190539378591373945599630661623831029735231549333035778122987568627348274905129591712607225727715722979321650656494395806503538042958410004642253283223989182214431086253177633880106307635824173105286398365911305825494987590971345619321209089869851056126640987824393321678657227776596891962643781547388358378081024377791448056752485596537675231003120877193631185040937443454999650854902838924129516728740633531021665989487569137324032743529046574008751813459581365241862839875625984809980989098969331010968157360859047046705707985584599411980952740704616145751163657383863204653544438373198959928222650562101711687900001198674796234299338319203099644170760216802430444475010489635995982868329782139212770078915312864264761917759747734411819790546222972162073070072928565270754283427067135760185471217443153596494568444736723625598489954355681349984439075878940869654952038002981046595984180783332313303085982431399914283889755805063695604030135665913310826869442729366054370201034978066470633111398244600306233461693813833724917972486222701215923741574846503781765536547052691833689812039469819766265145004304048773071904868637225112965722870531285933841499486533178084184223094645019268367870746179313027569678252646671968091132845656919514944297330854047293226559023425050690995964830316027482783897355719743956695295674680464441916033021599184139725682422434849860320064514853366525772681321060522968869462932216654645032391288675102050737723351500272621824018360537766096716880942991451418324412734632118339591358545481827529709692865082729237282093048513629000224364512014001892620640782702241199015388557438532147496947527048111723289486813338363380147916897503084346799508003133229396233180679069589704118976069720989249741239185692430025169759277662497345784722684516538926673756973514939398179752201388833397424169247455607194327047264102844586060722813206318709574148584367766806002105010724437016700381217369623160854618585868460347281774846363313542091862746715776579143815828604743374787256711789427523823967804182253229942019372481823872792459620424551787476975817831350871161059066320710759678880313013051223127929767082799518536258376152626591123835563855383370510467992590625438247458095619499357547635512937245723808876888622869089182248957820922581060163001935258436914652716424076906200164839228728566408068934108347313441547391520102753680811731232557300157767728817951078437070429299125272656912131973538942823994205150266125726252779260074000853235927340504238528129095404549060306337930879721472486273462289681018932087163758484839716250241395867785842053256341298526135854886103813526874959514427985672769154538875370764054101088840561000949331308695575640853453878524991120339063486058121034773729428327441739628990964991935677403367195792456351219348885480197874585541579893071397344038289592477923442779613723586313026786839794860659727114347159153005325336915362799660748676780631923625105600601207853387115022605494348884918744966530867641258214874901728206149616754891438601065913120527040409061779411573167312766901314993193817379733175333303924179024709203487893353317467945713123702813680277515234743091523890040567540009408332391331151288923687504580071604701574793306642460925585094905847763217299115854624697850656442315178634674889840711113832336396870459425646686007509468442424539066684268279780856999458559820227014982257784996713016691672425918730261513092979855181598996195646499011969352380655419044087244926367604194362678747548638063706436886103180022064070961647517832219412088872329851679552183681685199386917568047194098663196254448918148593454504794160676314916480235523379035856803596042905563712396132689124770279226307039333799927268542677941702524987758450174942885741863096751838530746167887358137995085976431667041419218233435471456555947047742966044901634956321216302635419696449648165451270232474495680544040750071009254284366324577702277660426815830119889232807784299529301793845802146028350286382090487325165753836235956696406120489273344405004254490205222876600715348922828079402772783216292998200103547724402701983132377626124457590948115231903710806866342946282080726033102171046038522334064112329078442991027951769886622827839233697329395944719917220298598400421372602408305494337413758332953944515864080346098411474955142132858250683313767121119144131303149791392193770746788463425978986117341587655520256692302170975127082674841100298083412038549907653639973646865968195841230095977100238994329098342645082323203518606895849556261744123837263345132105878398538163629092347533457574828309989671541420906127140763206631023029591395842484091197399199715948661668678258646566374408124210804463874326581389854016962008187881358703780604986446787762127711089496071112320665656244950901772380625545863109800623443113128348362110391948127351729939077088870907934391592112936078945603881840505836158807186614333379594616511627439756215393993116275214942245136851060242892892276896759249371388053447380657156028671554704829939534348202722966071356584964571360736369256450438918864693662025124646755170990429877926400661868626086140094980964773894989061808741129411388475772453659076694303259490271103096597226056466803944072345819822695725216953769543388416418510092304299318552774939482360720144930630333003520794056360329744199176635594798113992046834123131227523898642337955907478103119437857260979150852438321199527699348045460422689460043583674848009028014635508711868908616552484447507842583476064837097867115969407101360340459846319215317550714548373656124103871836919764696276377698931511051641975662439708697696514326229662189630059951507169597203456466556743693050252132580992087545044960326473555095780659789439158851070190076435036775896254246712290182870378834750145339050275551502568767027965165332523134698241394440470189515301795785429283421957365779029017926984824510067533420369451471278487030945297090987878481835995307545735888746782126761929053356383165291414358918848684068008698533180217947133168529189943002215680498349594225751658713887479955961528860290183461567710140666524700794622845740914991516192437493665092351088845451393912178978188078219815945137177581670813076023122983747492663735417773664677025607903543787646979050778937904975011305302560755444155916204424633131804312013704253961514815162083480372945393531761136624857287917690647851060815145139469935830152024004854170277365130264844860129033645066057555939833167329694234089911217204999511285134481276866105480337790019608678606860421890403993739654110414799712587283483972146478790942891615189943168611356321412999925442693063647635097768787207120393210904056328719519977531456056377691592574315065225142729307034965930240898630234601874803678325958128573150260873631960027804829297867348564567183990851477310066864181914070815885868770377140370809289241121638062003465470250933305209678391457424912390362285768866553940576431405804149977530142373118400514224947553425375749635233251732652929521243689977646199300881212183070111807626971187374434529694306121633730480546750981085378357528054002676650986386991148250337275327376933120173676830812314135483491869669769736572339541646718795698810558280487302120982205320216955835199549809007945891075427419058666274458583800638252405865083964381476745645898370939200735616099162252550875621752630569729744776159863656638657013974605287747409324752851636890775091855609591588115444502501126888581609587388003106589345501355649477234404545370160869232753992869025138729720226314316995683185500736142915861496541512349912698158587788700234752057707328175147515756335821278968456349645601122072265699580287970861356133326849574326710612410015441881927197504774701508914709766833623251233559590675719540204472813725080224213984741084232835610305675352879619885731437779572867367554281172178993000724104261653560349461260664970800362301417013591787750714686153584258260648138319345996710760597158264248188852161980773369889128504697982260461748555993473672542096614428301656586785796090333163793104998298344418067458880537791196850104070028925663958636165550161922341019437515088994795268418488649251999290672104203230240359476169246689461540772778027205805680737055330795302422398090341204487914431882027779137226575055460355473574520564789123760703658448023957123677461442791374784765514758013072241900009340110291964244780902050526960815396929939524803973270371473343055490265436305563629411013400919445645521896926714557501864387117653411947927763513733493836346008119363407811481643508480034190038152369139312912143632234224070790036804271685345119671711955361124907461698176289882343162531132306882430277018007351812403905035438874051284922494264788849597922904445286378012955107207673455124330965635006415008338307644799729782453278078270507298388950069553869378546631995530159058729535526212948774355532566334167595201548247741907498496856472622227781231426313826732968653595882825419906077022012445540324372458732654036419264058260208089440856117623073931853913707120011341199335435078139103167003534144116471843602793164982302024736976632511387989068056562357300229656437403338860684722004764260035758937291474905489063869637539535391682450212098535505183113229684911987713341759897708307248023775284917189850279827883599445139662529840860453634440929828312268508493840998465083819390585520948491745099166563103847158193319348163876328183194156939884451228994719480163077115867161012480181567266679598526295385454760095414245767688921576612521313116438232283062148849818679643833900763868581083665678137027810415472835820771720860218324298072341790236537673774928430766933325249608086084642857573133086602790152692963570331336610222603080071568828452023519013225513120880416278813493190793164902152583711408733164841704461340918560127143489573498107440278637130939287874909528369918277054975020308481813135591257327342780101706357957872850632316997502259280366733695768107463787998016313501117950352306677796687038210216611989882170033147740040140407166348676620639761086103702264515642286665266087787012739820774737871530955617148962964209483254752197738805080432973964568525516834800795038623949285044726448716006787728296967202429701581885483706606784252771161633894829139391866389375302040432340869328556966539600573786074933674329744878127475187350966755537714246263083220296517028171511606814669392806711359687614759375072906010235228391373582467497816187490737440644261787751832412672560855367245746947841595153859347182592277316157760889450424702689882026720846692941830597314501966547285312937556013614504577664701198410890866981531291290360908801515760591459365105810350311015335068075621207096659323144414065006172353808482179496488178396671494769933349516437754307076826649360024572987107386602519070923736613305729456170321598167073961471922264851736937521309457608037787766380786748591375201933402022135668206737385137077859309502822362982832582049169979662998075000296153521589777823648017586584274035588838620486635143292612435648532682859049458512904128816694531606877198121980057055309929781851778800689794156709200771587662199770402398768054003934337133671152539110046034498229345256546723319483296028214573620484876800255152457973010146852274560432897202779970300859293033049250212799999284335405518321716540283442235626707676225449494385318261110283263926949603611347164943364175993198277518814341870493334833834241017337882498459775714817612098427089646416668486317948837944969476348028345859475822325725990025119671248784852887122870863923162830488131966594535222629355072154037007190118486499331759021191280941700351893523990266786952554122877898566672649400031196927916850959945002094953982588825877960992880272061356742193659953491715283311834680799379523663202222804444386877479317989684075818887875466178493465242220926171795892835488337150748752178140318243714885556420793897171572737959433632513520434019145633763911166240357852658851289769353046191570808333176756028301555838858977171065188274512032773962719006658916503838653010713742359789210934159899967739518841169711837202963476889488433793775080060044659983477284564448851880659687674525920034935098920734811341891486949307414795058466076364653763151048427734279922010609717045397911089404079314577315538359459856754003038627637911894337628015483698334064897265133213992196599052412842429564217721566524086093534791950569449095597047872573087902679191077964160782875827428185640330641604656082249994110581211001007677354208600969971982243421677100028525890175655234616558159378822976936672185695612375167354404988963122810594252996829141363219536364375847025359464569062906326673409228177671205500839550079503500325140232153274698604131270438068803370177158540200189538587396702886513855265645899713252771232594443026231563357685299570906558034508571882514858700337571560625862798145170836045392100154734217023460761938199200041803290890656215813430063588943000446263823282299336133026409518162519299106865196675129594467088084557748740709997387819743234649626585029633701611425192239500711173599807185060681392046238875761376644860168659384514818139279373422852138978078134915296727675519512343871161080021896582329333842416126186561413360256622480596665388014052223735337836279353796312117468544163836054027441127577696940743099192290392738859541438794895513086843296129871682053565050482732043154722576601186461557238073117371376868448845960542541980906404557376388630663985770926393079844493547516905199857511393523619040377362452434915485420577962296582993864865922140375540231889693885819559339733326416711969377956994737338160111906828155683280665837141223439123181043028341468758000389382245560162885827483559934842885366038310173775481728333519180818625625191252096027179462128265031115193583443039489393139178709697931212414900301991083150258273677455971604909604436082830302107291311329434589476362306825943124788992553071296881048757064022478898795204455027988464486850591077953169753469344584468964444213824615233843617523842277913982282062634745276735206939062194008748391223073135327751698145040223153731431990428889094211834959545987380557439589414986711650783646001639712146870624055330385960238894509712711278575788898950972749542170099133153552029920772983274065646048708438040489326400414582885747066429093087792499499003107273351721433737485583972324789622780271518219829779145187672405166772956854925851679323437429204421484995011831826949462598900312428029291685458153481235807281430096110003338100308113581050690394379012385273478558123092236395670951783848152610024917373852536896553903925781462389684143072826060259349998199876630502266138242126168137011707850347241282051661181263724609823588900681533723524336359254637985553159691211204907471703282382132807855178684330424885028082931695844140082697590470074551187607518584917049987215093233618588060881857666551949691645550532724416324383946152597256401967845397843210339459131362740078729467448228283815429970157573635146207828444129719624318198585091215057962659162230947755359382636631066357319177416921035906464658307853331001659911625112068383733830156690394992817390579887047022397090958664273445487230175948005578696398566393666880593445086222713576377057906536605944958615097041715505858897508097665644004913056143312387063068583162106856839184714260701502209594624919731776393925237934741695831656120370385863261882906304438649609878880314214370789362679628862619685651550761831464467360698775836868067657706772251805904326365776348494634673628332801114012358820319783063992199632576125674407498282102335384609670902358099497159852246325727988748431851966468546631621734353727109400164901940019627291875549637758178690756258765564397810284979377143395990283488109284091258452841702845487763010522988509981630805598640587654351247357841645084449901507615314666192358801194751789852230276377595198804237992225844122335339698891113620075080481716311374156468092010411824182824713221963656975503051156281293999258090902078965773955703688064394306610357766207402422823074566608532665721980997835414378827127487276829753639699182667741827025471946550259336213522615246750690825325252551396571646674891749705819951447975109889747680724100529033887326647934065713789405543330690972606894227703127333236851929939824730659372619727560411692569295949275544763215156897992979990414206678103022655470704499504381667488822834769036984640603764026875666410378236363068591768260537703828663844714597889247748472945269167968170515314355432314241075325299133458363855351457252598724016913277171737714291800908063289886809455263270758039923747229851483924892150708565633900549992991346085595054922676181686154621056541567379369014849552456713183863245805330629050818687479492371822644751969725832258171165102802084877068921231500115797727144999028445565984299335856294895737407405236531605511709793079075691189282417373126378706982803550751748841155530541507144112181864970037266959886431620274209281615483885596699766699420249236860294740066027027506321721269618438150478648996440378884455474494236956890608105692285563389474367982516265887333224947742500957662373094793962456091784822808705647007495929878065080053760006300050158563227694541071234805883626061906618203975756762030749959727432852219873151357573654668035124429643260630796001984768825281617017229757747065564933351677093621992344516923958152372444693865867535618401890938035063777507796786353449500489213272778403386400875648866323228511890802871890584580437056313437458094493501938380148814063172059319606190260495818926729556717374133812904058761551978052695145724718247109448176291278789968176704585255208430234270616473099014282944158542447465542669288383430203949006280559543655827749654913435110267635188902938016610994439137254534322675118728115623485873330425480721903425911400612765884579088619470856755182131658829006666842905945360229368642570786704761229809921333408624176960736431067216259344209917245229566491981730406376721602865927934700560638548532714505175753506882964031687109865506028162895276031871262826233197917680162957407901302024030289601988167374201922570750361957994971501157536019236702618294148294103425828050641646848675938848729723394249348285400678821747795543438768965197183491975515957457092540463490542265005035080295629596291149051146038350374213379389708773613701154806714890340885329737835584267866409734372290160707261746116439749306447186012716228769965335441838232129700134516230867698229382521529385174958081122192587608542051561858616074497279673825792631360260452891568346783458314317546031031057714958013127743512150039498614734738445267198569938815723479454489347060905271822998790165888523400266087239746531762466730925327736750302707469542132791381339623949196715807981090266424545870471136868699572283523135246522444184364331749252314067898307516009946962223710592559779672258211294582377102136162880908834665196469214436931417478220190568904306923335664717064466610206573266055879029727971438989652523473225553007494848156024011144616686197331199637004542481936583071789895128931774761140221825619923515377687651147292547782921470307553033261253391986260294073454071714190954792948595015552393333674283728356062320231123774606340163490384861090579302851923430852703893015492380162110051716608812310160081442962493082244990464638686924678584341639119255445200065982375665310612749310019224081589404113641338083424714490506434257890998644983943048429890422233715053650011214998695365857887708346328790547319610134487215668128731438810211802708310913597185594627494652147211932366281335194706286750487431102329596647480066489828697613282442672345431265991556892761896954616282090504265950001672641999396785355165486802339674824485823476210197659160503933226007860644222066908287606781125527000867115075752478008396128045401943797511260352452601112472904535848696013956354912528294195637104730971166201010349749851386851668782089491358745134391187328904677703764421389597932416884499454890621749281848971953266232461363688199706791694925107796313824579853540880275013468472953550915561884690053348687813494893807674629125832110399395372572533877787453933856122775594957461634945187833445211704232611014718416789137009670682614614285577429439644530074762875228043951724313153870627119898645899747692101718328022749135886594084175089098713400612580687667225676457693562094982993889483854949593953593571085140130933426361530110789032919406260325190040760146982039937124347956369881141390515039695408496525544229530881034742522025540550518924635684545891087468543434203022523631846754855968604372058630232952089925810113265287229220378037119361920474890115027154186188905723686914295986098786624383717676827418782585452825591857151197212289463175483933880369214927832070974527451645446896171718508872227452469087064561023965680493676378316734152221018561740091831706790668429776405390234255824263974481469391264212618113283163044440761953329727025337006407308673383505448115435006906855368096889188272368393488504078708731772806093600832322099541562898358252398081296987654062202464705139736520387335975890705217170646731562776645365087841187190208901414437264050147708415134091241393362849916239652905837692774810650083214682463418107444469612273294274350336643089288064449499865465464149660462115130432781167917533306894740838195580607970977455760234166850268108424621262327173019636343825828014516769318926710637052125960641218426942597527385194011058815485325693284160723323872225715028732669544532348659093424191868761826535560928588098143203354091551886807560741024361349496493673758898433457363411606738144596198556444660200538471852283761621621097008670329480110738038991444978019016039089973897993909045299563576750078764936959353269480735327422880738051927097783629707326583991312651470095419764146561827289856537405737228435331465297568601820083131878945096948594911028241481290861056765864146251564847204387079992274096575799354329483947831829056916597253995452466179835518597283646932180945679212864548142978687141090403397525089788992380091907655657474477779486879193696927880500859569483182680175535302082337628069248534818020565384582501180082987440919126811390720515565936382911428603757676120978067092284773727636944301879277436520968790858612914052044317581354655585520798590932975246419591163050827855935268761162609086588205842811566376780315723093997398713662068970351538189674218457928415685482892467178160580148989432637177910971507216990395915782467156604605424797472496956224128582755272164062416729764271718472856708739891780869096888191158440199666383012627894869399384382651231018307722438904728376944650563143713590345707123215980689591570473759884208608705923689545104946533503581063031225355898709072093321871487539265312186795497668366270931132761932200404674702225264147230730584814194494743165416623444626750056589860870867484376636097392419812044205576120469031558338353276177715453033238012627158565365309145804645189382544480214792275457374682119051566762457556472627802494138364533279102784149335659578550991780595991879775409517596529720357922428019765421550355805881491536559110824496633136977718458650268258962015620779356574171748849897945980307516044302575502625229454656917001852218178996742149478740619009873140253879769021936009265724044630796902931680330984831568033227492660490396743962044263958905090134411998669616546075272574276609781745041717533746382785699428440900625501870779734173292989317565037364242416554027654989707249794528693233086920958951364041452894745796736541465943776729246839971498877187247714010806222398639451491268696162437838771035869997697942067605639225881471256488918237220367650630021448207869787423842495438562577231948437986032885450803052917527226588463002804188466680177955467599024255989545558975863896247063631853510494792196532768204152080862062735197246660236095544625321924428113421581724567605986922167648678737316203722022836334876899169076163865746872234906237275410421116608697659673123387913201491709487253858825034013173599050752697396455589023340569126051545061077804859570986107901943120742981817544993707615960548496722675496806486424986848319077125642757446476747170222190872148794299654059118064882688863149304992839342559847440639886013425665711687320956804845744888872537561777793160307474637662318402116180701832691872670919426732594374276047797466872044218396603543376213458782130256785851285812923383946920187898481115838882473562233932496491268386472588188919935082024144598718831114609672387564871044636001154633922174329876675658437871354761781162049163656137666226215846531688082582958096825689698392408339120304522737832003712814802898023111015537665937692153326319893613511426424924215927386577332450735149314942707451534865027074343949294662553119757184993029515462192395269870286080282891193470866037760867365514274288272473762797264749756435899089410955978164299979931063790197007146903132542226014767484536639887645221725600874826219485255601634053003353092569062171509183834539532638805950076761598235642685144017091411549549732243831548982445576522877400226552885806703281525350515681165932386306736125538583211910988305516485719774690802352439058844017729618751734820204722878628180548648894667242243921235623790210832789808508087287074765731961567443791925155880307613966052696690984997148334718015401399774384740418737981865995672684961922303648537651963430804923908125032976064289505671709250675473620973758976224656054129151744715052428695763101523038812180823947452440446754767178845678592904678109263103054112844721916575302138138810162731260618860966877851068354067746902994606539300122893959137246254405054414509575284093448796112697864689311566666500651159961053354972789923374223830531212052372537376881041779559802356380428482623447399104165587545624792331234377760050357315715699531731421935704563733388212425944397154392223639971144102516497934432687411870407881194926818290810111419595818251985094232318022767012135811851736072558962244782402837350177940732185421906702713454127693950272159354410321673170544285018624127318273792321969566469630445862572341767348685848823979367455816043646252305313879198714055279213386026164716063056394659359439278258929701806568287268766429679176746908535147895402929785608790455971992723692706082890665901841016091924915247655716331407611717876293459878865846265714104518047287059153227125415763060754442886891948704311655451571423432896647443053316433912461502478008634815555137771280388975561418633529896660533955987409356319938725059697369819918433454611835765413695413672673529901313554075157961896583483414646656734686330691675795703347389490629764946704717548099745149880478837981673239780882371715971043461721873230187976650318571131904431010770511961065225459404109651286398315727784460200494083722753705735163793227635821913333422431613223093067162545872456142463820206091027989272439063118894397332785857168629976935632374304535438114320288549316587046778478599906107288948561160722806712706236424099888335287253238678365889484609206955905803742165027095183404593410663531315374672802174642122967077475303857056451756478662336212173286871072920297838355179141688157174759724850777387055625332634170330279068325732021675347485502713777361100882488599401245733837401880171281207250151481393671016124811523852735882047027640240481801904671968807663790873176045579019430683518004342132231775397925125612448529603563729441839237169591141617848875086802612185757319636651963186305720129574684438055223239585220633860560482921308145766392465234403642920607764132995103614335450097446725865570210011295418641913706052152789535442339275093644165739817700806816941970768940989764721532084587768094450334137469587454484297067136763151923876271241594088346457330379664311377889749292217581409742725558982418817471665619379998774625996769646947709741104873083295269174189905196447946797871963367472943786011705562406867400744285219300540998688127265146380432019050302884952806378451151963617929404283989876689664719984829958094446867515801606146872831198295040381764009095067990814621431291410898068213483672755192119661236287837701960765629654601929568370880662222741744681119486126722465335310193773781906806810804015669479438673534838422196282188905044769393408197019343333391746536196544287237430214743929335853065602565464661805720790609501366846705009051393538002003799887049677170128657295923234921163752936677218908918631205211335167960773944938685977072925729303477543636773594754745777752180610696887114841340156583277163610055968914932350309786662425401509166348383672000522000117831243964521315386209910399221981642589924322494598589640076234889093762878931322983928216374925085788472397515894584397580988392493517875186325595936285006573077814042405818851509203147802651188269480227479126930075023107783919694576956338087771536996275010733418816657276418748355514365934632077130758668939719809589811599076346346209628059016063151702271854347446778403042907045479733739470984078830170139576278887220665259618870552277930641579774025683338960044151600408984887464440074009008320453666345189891039642127346762237914228665770107745872957381967964735517203374944157574409064218096041001390079906404039320831233655958226380875600352781294832467283905202545872353490460972063722420394101361292809580558995034304380794040446160639861363803054233725825597960886813343848753660872095539850483341510087200495209688690281888285216173758264050435281194185896093000567884710770064769170658533816052205700190795005207448083021882636616911090373975163285947541003993738981536984833394784747974289389610138310098413707797370823236878363506669120695759654174770861740564999963506160209211113278432662822404598243509937208274561603301185176145718714458329653470607252682922244531313859273578866485806980221404725166720520788989916631256649311775157095392710324572339553257192328046850759499738621405618147774038711980249973510031175960069174295634680283659094406854347985845457741738453221350916748250987105371065072743594113058966196389410608839413302699488336160501263298090679472595859809810535867102736243730125044590739847110056813207632090902368849219691737989575856372857168934661969391169945450116250896891532509078995234850318232938009361928842736474914390508251505384809367071986074140765219893905966740608601541923652316153392058031415523410541616041816584377034729055025177537768177201128963451745853967667464764269765539438482171085249405139784218182764455132000298539891895854747107097764816191753517549524865774682047294438909504481397074916763935883910044993930882886714106142906816033994493836633717965550119179295997249735931126314545801340508899013227404159408029270128197715882655214746502324496151861980324843901519713487755652932519224620015412275848741869377115992674403355855947280476149244366501124745417527897497306873619389669215614957093486774348799464860315589644003181015691893177224187718970317015407712352070738032521068883997681454465133157011172650286830370478048272186829425620787018255258537164357947827262791145258062926102365100468279516376178664832352923547196689395245587109740164783746834801656823814840302131905793893191005945173043574715854819140255158150275639437651893582712738439628700704150754758410290664150645174038580372480264140780282063058921191046906971341408364733756203299684468349068498693148394491851653297028126943006871919524105648340591996856179195483835378886090050779084559064087706452245112494415989992454497567481045857406367980931343317525509418156749381421989686212973145965848467228936660692306210805702575631227306264446283204761229313699796428805644819302514490974459717638699160478823025365186814162381159700613302195630296462151155588896881392032062834136437315591848021785958071781660670257844872821049170449634750525723979000203178131849238139267539163271186120171440231351425686339039653050940862362078443132998359541779220485657540835394470597799428071664601160323149869199220451613490713504904338516425971873571853772631144109339165407165547812243231930175299183236124673571396626842159905103325187144103393284479149016340759536083257487247974358907744792560665867430244866226303097661869449687224413349126040726428223890799963450519820825157183599757266861950158820940945485347385716191678976251792027780002232919306701226342198195683547874170603208298849834186048252779287596579132759940371150938147271450348952243309362026536480417093880009769961289161347842403413322553161737358009502278527922849787559985018903972941850755765678355888226318783950977505484090844453104864158522748629850829174054864883346193812461036129560369315786204926290704704624570018081229346356320497260575232418475410395501218873397220553109518495430582710477418595909243191292392555288826947159175146562918197491140640865179803505827339771874935658915346382996742676793848553753436176381485047851592590787139956455093788024769903918702262906065979766488735548116238933181843474794555653032732735165535161654937542763712317850234647292111923324921659343688251598726150648406118765653958557870691377038228553867555469755877047380966487495588573302080764976316115651783663985382568582928899981334750457602061189858598891828867984792201265278585561345785836482988570086588682605862593058582035912989095245932260401041698204658281784923568590145587799442433815961824272586643740092108931936193917400607077421756987688522548672464366022698152459724065570982928366879087677766192208290938852830156473969598289074542456216432920231736374109763938628334991799046199241389601463026312447806516360610419241286601449106562821659334158477767832392991513145926894135225461948476971125993174229424032687939696763079562846024615941532703692648454835671368722873437898917042929626771018385396752004352977374298984635847828855134461924660863175840793921134933567065789721926008296506094202197030476450379589464578504074488727590107887557630236076334614234587225640339545492206971192166300279724125995432394745322124458457226279971832424903632242311829927849277203299767519305720634696642678590576864609733058909062086530544307371636376406767751687724413919288620869203841983068281629697382474511212525424965967495099971738918657753139685884956622466590320321432054399098269968452008971715886798806893622641621621109711053942559673678294586519591903720901782201560012282001073024038368227009714472810743925529546731125880114096407183619588750344674664965254997761188109622480703019176137647748432896306267774974051691405397216095252981250659063956969794038450903966181267872010344706581157917011111721513542132552123109176428793489459265429525810391771927820243501773118183558845449865046251164764496486000240389898586153661865546021061941673468133722041047386864219296237463752210145195551148891237071414088849895726585338401328558815719884982389057872368600440528066105233399339540681861655998366649092053793320486560019707192412497354235486597994712477330121093836742926161467298079903316130718346829254403422459033927851753638932424747272101819236009500992344979469435606211708509968582170160050545037785859473085206436948533005465053002397109413866472798102116901930855414751021054402697490729191375396559625872760597135341745353239152184613806196517855737679954152672780020238545217699035036067934351028215599211470186404160467319884814049383864893613922960112606381964569293810647822870456602140655788703499612460707982685957270313679039407852757580072158240228177622224274234181786433589938111209818048029431594385954648978491966622814131811658042911165892552856866433079410152281252231951074225533066471868461487331427000228787800895225223476731070103414920038750733567375801499355483022281802832566725021102130702790324206877665492683548362315800798397194285942086559367270244423274235791815049000785164616377162062049681502206476908436662607283608855002281438348198980498926500809840687644777240258623453371518031879412706338083453724810757996519551019551279343272059778487095314018289175967512599272939357375942411725243509144529638024060618978951303263203254197964427771057577129274071572037230615496414383825522677640022349737936589740627658039414616774722571478392056622523910764804546776435187698669740243527491314356929251595977184779324274290167374134482672073487151738643207879691353207654077419687478167467610077673947852536766437076725338568298327145147001506149125174227808705143905310154776126973021008981450274345772482022761675619889949811920471809741100764359570474183808587299175537056368010549211244246577403151527966326159548105714612923597011417183714066602829463989314283145356132777852607371277142472191509722352666945598765452480454097100611497929995325909316934146770684660811300223094261630656182566966222633819818754318870666275287331814439534451351827474979720593933511646143950298626132315638636095033465735456109508188033032897430367697753078178303224664950870418920046718764561145463565946711992872706797626647710746399108247213141639982254759725860466907946588151842498531283321991525938299754794701985529298628300937286032630828987027606289880077524737112490073469794485047493641370720422485825317933855152638839155663154631510984803175967235294584521330679527144927098665947006079889629058718845148322198922178982484611469635878722883303650652774157340904804746247570468423643417100478938811797906546464707105834858274189619274362725676373286171442389895812267476367263007998344991073475584789688901038693633364327207462286341566845386789725143557219756134686534607514445238326714842745217734976107027117244083600842165641978186677475419261591722162652132753714358238481805708878872161975741645613742024512515227407191190886574578047824635968559494138855201609269608423398475917821405095137954142737916504260386741124577809682123998439784820621296464032957326686040455223248403956991814213838070319602128016956030863479796037399953480015049735558480039412192088139588259401023920622970198296114385171012805637764726216166832497291721858741842756286437617741294429081933330528900987241132334797558678562329127507118827813964949939336086794535142249077483924187086503141138852318464910156145246744989037065213894234449417383047823977349478584678018260223641216200362610587797602497168180221112139763095405415122574617805062063745302194366566332816144989062944504292750081117919270370801322021203746007620705672266593733397023016112182056260518221248699949469550690034537800008570467968142511459656846441385445780315214913665772132743649036157749529603457867229091309627612553844178061882347652759575076760120424956393939922416691277469968831440093740869782441532952148980054288320239197718490674018710949651280382607819243687518887886003027821717294902908276627718796828479013221739953185247376502722481067201957835505610841119712095094567072076156339213269638061716514272600700718896430526100426147564397101474141300571699681085752007435943131406409470202072038710913937840517163902697572160669996485065968063657440020621281570017279865692207308482326697662238327103775316906624712521523295757397118413200322612293606382814829357572895227563983800716705994227698978971234400395510054899166924966313313421538567260434774994531633759785674560814991806439073630073572885184047517680079914507565807258403952159162287244708718753049964803557195318386795614271527588049643634857688977197993166492329994787852085166554773364431026453587268104303004860639910082880416076182569173168608090493570413965273049863951734785693247967715552567128587007368533313639914914505773779020999169165426969539492985096929229815990139672986097695800006905702329951195703043074088523802503694926980529172195820599617629825193146769582003039569320283160795664000447258652498990038782092465957781392999831243823316068431698103964618038167609701487916260090959983808387657017734271140676953130005631681350837736145286879173669883261906322429258337127246937528061025682077003894740819841399541106202804001094268276297972222532272653063297331639386005560333923846703622430500143012788823244232382915571574652503628083054169452360358981811202322153089771227389441805419068944480589643513402908562150904468562352600279999194873102547268130920622727414112284093839904837373644673442762812502032856540397674674686605715618427994298653480252954032286373302923966115615204155960346496904257697873955798717725345149633375846940836780555031583908272917756004405413147492071869228517744680067721717495975702862820097002627332829153398393853490763057685266236982638332158958703012398884018541814199212408891652781392291125990688843607016743277248137786676304047751551160102836156180355306559518752181946165236424979456696644661273362886096267842799690028541461446653057620627077681988041223284947997136616974359088797842353043410752962073609632877709264066344250282169618090745208198995890618300628576870757695934274178818197795193808727203099301761833772597813379492903873077021254370008041008158076466466560722632418883032178541416936414453578986566292662146484705033771762916531861879209451777151564045438677005296736177998350987207747814939786472374057400096520233016214043125071383192291448368443811064355110573333531400109891620008877070486768369535734880193712117983579250284100720691281751712804333452918383339814931449555679689742684598855990425003834664335331331822639912046397939144507455289650972511102731264083542746067926479253233110000971114512537113486743318127132027864458491694992857798680149762849879471918679741300371791674065791744478914254514923893452334120321836755181073419981771361592338541065737825861458107622586227643432745066000143221602512585575833308717566992404594002507343390572045292405092040458827030466707348935520344516352802959109302577122495108643014275532979191857349722096192532071135660104360550776905543864204832531972950253551364170545493802933654885554809342720946673220644580507864952062659062249860447495119595052412297407346126162206285146982289871933883000518368397613988334041826432051863487351481619443750528885841656667894001224064719665110798686205529648917511193877298367657292104517337438453948889148606056752863095402524261338345819770278779268220119535030070095849443592213733389781953112601145065239406282588147678699672442586621003107266150063301665785772259109331945114161347233413900406591806877132094543030504265791832940335511272389606230794518949368307993368758318051010632309499942482802361277519128351843201356182505986555806123121917723238268096987377028251955950401425389900943420959485378854297524385738604460055266273098288544431841806308450307322106180588208902597437294632214139026202482247263097043394939309593266031357466967144876229576486267076886427250519073666168285191851207443751074311146172494926882191161313180994266182681171399268712888987069881591354859293486045205574982213781399376625773380237893290810527382857760864945706622513075355526754035137843450416369037405203982400262735406832133920764863012218186974823196184969086414499962664846035177929939814329368966672893103479497352575479631408092431502805633091252927205790034465503353835086024196304066245998824054545833436860649987674005779043248108761133669204071264313934269994460586185157678205961168534522505175347744267602244965838500551246231451997044597169510806233017155917335085186206833552322095760452248181889978096411933322654454174497543926093074967195782678599130326236625583581146190912724761710452741775099371718207177661419068121647137121055021483439323385309597153246833239177543108720481227692018018510778491433235755480397597304772034302461498597669685088876786061477026244907529027458534517878117495044354504855774242795515287389334210051784633826454664267726373988110768087910048991701020135731549832380285094584895359104477475366101630458155576046899167307362324835155823388452812373808215493847884386282973388349942599417363742011448271733268416856458522805272914306057824126686915635169635099816160822374696765329452534726592389664702959897039753087867503396136018746814142120132910447441544252870380190800359086915140525095045653904658469654727376681347530938575298073353833314867176341328681022716592903207575626675759719049544922718093942317401915670828896328866329053254120164249235484713271445916318547007543973943554055935851888952740943386761240118195389055906935264359875147593410194206033744426516577779437107851728562166382533655119658078051325379211492575998870047275357398462959905604935106352669881746764084923140483920418320244408798655205013415707888663816416985474025733620160076221740218073372428381869997566642346181789531530979858358079771998573589335911497982309862195914706596572688091108163638167191581686298277488411306107806582161715618228045525416815417545654432064792524949887783827635627253719129654358770760554565021064395258059241763083560241032319735725437829518566102230801000193658141607559725820889139913408550866080171797232840653671220932198941997331454428109135344107354240066217752889796761995488153528942180257255922775833160834415105978487495493500179645338372682857823841192432867842609054349521112904264879979679116396994664627457622323774854763699461262203704959203368421598143117587426224497808346120459191266476529054562047712387635507724385623286616909798130812678752623168940773109416906046875329360386416725912340791695373551707171489364786443410895739090323571423355421257987209353371835431423742291067302550814987848104290750027091204126070340052368115484017060609037038929564156386654210348050100501604068514240722819796150795025068204984589485192265486112378506388276566300655610219563061409332875023364488486806558876958261038906380178077040838380455345466552902544404345867620236593122366174232095695654395144101013602119617724575163687969901299430450622339088042507586529220846539345654407041697962789749571157883589191359122068279092896321777163285601190055232916305936015970631259329990489347986731321721591576804536193760338584086698267162912525415528592615378703494814155202766141416044975361100169871016099696873570792176862719016502801380132411383936802271575026403984219780513757535862822619845847619871108133953601557611561822970329080945520434946727315868262731964141304102347348212805328364697508998037338856922222262921854154225041980081113594638349476670568273094174296115721973789953905773226006444262283467651673701208128435647144262891009915602392352757535700379124646779043607933008473342668470864059378337466915367434139111552761985490134871298449928788113227741543146654037761059590370759581719905789468071290644458338815905975630370363060534865762635903066917566014671732858158906289817036163334009274223361819939521202977606787075480221122389867421537945801200047805683069864613942049323774947683152065692863199538660468620648504921229626760052341631570031305532146100583240619754218651540221936470780149599647050864435288069046157928095101812420207152257588140853666916895020170204629595745138884707476670297877457450969478623677467952760258313986950351251973510546231490066497670162206181123951241908669255102426046858966936315940553111372259688647793406857377791097933501476374820010490048802173780669415265729953983023537387611170853009946866927715972988147690149414335756263780660711906804860951807531452674856641893860323338056220312989516618682807916440689901837643828659935505518780973782088285431721538237387883066678660295355776471745025015886783700120905982594540273311949791130242030361440396639458035494855163718377341758176554192620846616157783853966209106941114377154868892644706074083462495225994511467465265092793394947721642070838534691669572119787161301471855053475742842087921117836797146405585802200149048291435823015990022227825102680524984167894402507744683849054378940882739221573894966459427420047392043192448866930690490331462561836167926026931060034356903508181107460259191579360808188118868174070544814343297863657028586363759032899607001784466067231687836846406026997181128201042198147771176172869551931147381150348290011762978510975564742589029635278026702568695268111650166502844170590771650211752187336586085253024782408955897414771346109770697327692563848755266918194161045352269793274757331587535333103981053304685721658257960281333621867451715857078386235115556355974910343303581818702784476337523258172307436204638126446362313027185691454511281996188005675728925101881559668217312874557963368001029299202305133250580048235149364390830773797879661127795652408287930665294258589555894660384350740615316142139638969791941957316160796526976909011053294082117480098772336913338930880627529860839672034676905172279953384301834322085824646964002819165196274060031628878636075235849960466662371926056125509438184596426870015291202569022376041751883119733031795786918042867179173704364277144455505108488797010324273258574333017157007006496240325175761982388688447176996898939128921002842131152664835957641358659589445331455514825420149566988080751195692500528444244046481722560010965404279703201002718761569517478236628292906588578610428507873822513509266561970583516757041684522661709637987493330062099653117602470904264621019024137973550024232598547402984696122118972153662414215968420689360942379938853322006298602008651991032311075724935680567149632025504123474789105529454839099418243658712409466439757990082710008073383419651451380459396376187399904655319060028876613918697888212100361136068090820415332910798456176983792660616143863269306443434857807874793944846987255173532485733050917916988477188080510487068400378383678351010830073938823693228674532015871740631052640116255490657159471054382225394847099290574169583097640198727838721821431867844419418369619210369808642904739478039689777742178973873256095538446653349735610674598190592425607204150139261475858966029607453201004227647145710758223210756849086216396109248559093633938326359791699437717290967129911720228722297348063613383105960616471629508691405420515817372513636122331085200032351347886862852398893269871370809172877192282930462213158677941321423150055087449359771047657532616304618393162498887123538340749675854782365338958377948465304434120035684000355041442853840260995605145415597353603507717220147099134212875256802772712836313072541626809228130539517423238685269507229853193939717851105870341933991869898056914706786663155995090593188990826906260256585958319539363150752060734474971178822022259515808883226562633380655475934460494977498269461893361759556270915759781530807957632777749753322150295035280185842664632302887534098331771621952347826795578990556791270952470350268658626920158537904669851776777162471372098675469942545330657649955616070290951327073612858555979424366950608157984159712482943959962013691163591561120167692201828299506517046890340140197630839040973386429233000447581155839047131155134119871164463274053110128374745834370890180138867222300334146870112490934084476595091967832407248668453023190737855749670848245022794165973721600422969870890719556756026076922695965993549274947624945490764873973564213370082449780371134694646412219645146201452582997487222937366146707646200700820843672651072079761373431332099075226041763053999599175434988051142824915989812861309621536507845952976913287655783217303245671046584569357673563372398433919791050362519116574024976775335067226902863750240709779350014335504181075281072577738596903351111277280641045884594221610566555725017984245196945586939205864243396956555219853046545581490674799762628757371133123634117640651973313559474671212404972361844021010311905585021749978622957726785211258004334574274181305419821346220108410499648132982878009020112139075115483883576004136342319622300900226159794969600563366065430746782906316252713036622270243326203588878091799611623243640065760933312145508282043538202661138667622707675525526351315768072578052322853413541755532771858617186379174101414912118091403853359292940504044796515192607729771030477236888131253387734804978305538649685030177210264797645635666651391653367038957988548233141485072934431935935709308552838439451273270512677491333184673912370844424825983540882518425388596079664362947084087406384792234197812617278878064312305752322731792936676157902074252538550327980165156160363309655750636339671538380058107690588829248242016992618748112828908072652696773062259364303793094773292719961868815219349014786789369192630961705023360071895327309450250318420182686721048469513055066220578059193434405826768751064090139704062347611620187785266722283244347322290932948360014330889647619730027221965575232815606240897353758156793708420166525769982472640160023680418440436400947380628164196841091895384066090744137650497007622591328650206078342628870343035259566891508725294813343904184798646157987119443679139268668346546107297415487722770159839324472981112891505608526156749839334152891127913668313200599862289310591554509012828219097970205279581918335425345269153611816335392525107485674107090455152395149786541109868743646431336739202774044893214163891181697095251176772372814627517432254793696610778305225160492994370920690470390720061828005134174567298640260644698233868631453218878666938589594455591024721302322590858969227610872262661865508090839570348296763718953183013418585835752554169168917674822262543549536218848808847180395929894094723489052651934361901116391100177630747118911322365204134554659156106358730760650542485457613500563234053260320437108780336616072063683211543138929990125956661057407817806579449732534461891284812148316388609640314106030840622201604180332729335493256200090219146825606597167542832017858383917660892578690935449610963784884026339437013224858701786349640955932369423964657233925715592494039031733707520597449572086981681603348197446057599690913449005394290516810634580235208998690583179897683033770452489680560130987484331639568700593353823084748605162701453667037982154758170054014333090766278966815676906083947747937719938023063829619665447495722517528108378318582934648180262089867654145247555926236426805094320166711268543370750374498203197785447778937113904307348129778061107270234590086890652970788077882592265426872870298813620759477783904137272200785766522476360056125370847101689384438086354025591213779501130802751745710169846913469400978700111527901087483396180348098569423633343552827053406011387479866033996994305589615832852710192332283625795753767871168748035039645720811550444024032042527052440157465153841863418221996094287381797347600475170477496998917088309858780185689914758711574708310812875774127898443938884078959881147884142535575873624358843884933543642764283253096696212418561941929783115075376551132692695065829697020264107120564152330411952316374413833279961793370175162745307223956345878699280514652382632155040425166030399195742713677746265362265591449603551005980632026673086597969552698395345480368739934982928732646020578563221649679838109164260414235791305002525296346971893303549990058797890055088736253947515040837185507631497376478217757690340216306746506549152660407781491850379877674217312113012281290125705360055038255076720085953981304841219914398164053203088531882819536892791359827778058178432714495581490995601553836837263682609609008112953407076024164702233349936696218401937081747080831781452901808681092331957900776390301376413143989128411349174150069649943702456334423345783472978467387342534412473053663068055821115284844265357751014643959140440062303476665465007397550794304834648567093762338344031766805761966950376288101554179255730558118808942221655526637395483627869720211721730197522188002240381041550199368015846106010498095810176066871387997509252142316813016082224887137817653947372154516878324323089223022367990623652876789717667534124903659131873736454808374986150720178946220788752014321722790256187242216280153342580673985131807050204112978404713605525753124623814891198184214580084534869187545497010822336791695016961659363698286287588944987264431848797948372481623545073794735363448584201686550283085554426543220545375183404942215943500091840777005265613351809455545317424939632558615976231071947741870228991574607577353854853999150203605049302898629688404084690435980858427828095095738311919698710046094059807152450594990897059006987747681392731635452566786554108826054947612965522892627180403932090875369076783354999804392073071831484780683240095670320684504195891885415348194129880773101587237271683723141528493761753327110486508060216652590352897525615947983322190736580116162119290759548289573146106377352422211476433132488718637289878971949726288568297543898421079849994235796598698789381927517814543397166700252235154079985851863207634085485971802879380122808534033958407798112788686507650295311113056031930045437969946099769756411559918766141753202887019401301805698751713590675132230312587333052313209808923335184261617141045351287679910321402911086423857289601304828198069149571692130741036858732649806286513226072961240809840848927873256953040068075369045879096197522045367746279934607707925684380917303916559234797403524817204341113331271532003484657936995714618439372876619521339812897840098855798138688997101495516044426283000962737578353496675084153430967082840184442124018747870116630731765724271819797920174285671153994318191002285844786516186343270785751619712878479864500973897594617381929212167561625470421676738174551271603215653232232440363034915258732934068419216099066705059693262453932640228020112969322739810940204848698616372086994164072826835806214048378512157373903873504572605209576657428212996293334152237313802866394627531503017064484000470425551677579262589385055041384679096755903311972720846000819365308835346464156274340619283724511860604309031452239777910056467511342921059943950570236024717646377502569419985382714795371190785727416468311183218065199083842802255217792506907747974281480129042735042531759408379678023493881125928174996079647143725667813722611684564667148509321350000403366191699125064898059190206150712515497531522861089943008968818628062034014649043141192633161184456852030388891398416761636224262988920990178373696688452157057294283642008439772041122225440787393009096620200457402720914716445156983999180222229296504141190647191854323509642948728259006256867563220283962534909080043108067577355392810986477157029674899790734359932704632127487152341092326272981241874053002376168346738049325313707414489021708146521905818545365949930482281939453481612991607911409394567434540861267544868215189241132188339129466215919949032414880075814239654857054677827635795906586946813933472976350614509090894550320145186895255858168964303755025613517435593563046311660605130369107947763320785630906661138939498299919039053676986125815385596950611963932676901168749584430344969608531158611703021381814386021026894237059151120852219040573844511504705158295278687753308020212726208725457542306880959740292395873775444835633514648488375765187399556114762147277795987351065026642078033143619705313904187341085248268264210876358958182582185149357535345229017026448872612417712967148651587698250903576381820225645443452396927779553011536684817221637915636915679625761369660040389149708727003612132977638281431923631672969945178070453252851212736377266219729794748702995518817683559794254697551135530759180238785856847731554367162787933110621355462569693853313924948500600285400022583091718251886833171545841462380330999578076217744012502529044802153445838581228647377915641875618329447748034787315591950420893650289463697661039928880104265863538669038032708423904336968523577421952276019388258967934987180011723809529220953154322366694334198673771122061267717996715905490798382163078870029045456988196137933566443699150605459193190812167569858577980433982038858226297780623834681053193635320095195809745921193010269640679555632354431267523908383744614785754804798666894274871925622994570014697421154320881280032360199586009002942617539173870998093148641031969449604535016623588037249473689724794669105821441574384919830078485225498624439985470833895982961351194681206488830014585632254575122407540718167671337690515298541670337473918201886886882454713214077129056201980160255486930545173299881031227012517830820685933272146599135721053451247739502770327905517055622929756878110711278152477135003945126868075871989552898602169834846991105027400225473258007709471180180919180518281224146841329282928806960749487131010922220061353869622653111761090174989261614779303951326818165062206540042574299810349898932058764168053361144780309824001710209236196369571984904766585024514760171768798430900188048457652125963267485054398459022721088016425916149560752299963378133270248177239508980730473126682594838677359990625982404161707875884944508616053049964255204979813209526481448827978020657900769097187553979255379432088816969427354537928047348969783416066960591534130271452418291435629327103003307142446813214707941261709991386776863081305865296958651632957794207543220674098269853410078991000255278366345019853337998833175121485286140145738063609353226908529857479192108269172385910180990647363066378161829694765785850823746403595239679430510809141274316501328919009591022677388464865071218660446200855668108576995969728044314796298689966382579652655564326525721199117373320823496121499964947054576214982265121778429808535774245666145072616195683664376268705792475935849985676611295624950863194051004676039329511516079878673041212594428394768957084428441569442562004165810310275107994359309500590983355862760801293320210337361523065304946921223238149678174010082346288392155932426477507006245045292203956298681805807281154860429113740905725976736749240000804536227490256276441634362295950441476761889094873621775594459410745995965868597788458872932960025296891428726907167659499920591767560365114443870697673463242267149479458256441213851344841174209936287578142620643773492784790524770290537145491799145125166257074399440680081800793539403156189550768234035045950828127629988748992993667222835355422587737281311303459669411483414029218815153748807991912096292047145150967721491225257254022738151107499226556503221051689331463734364089264778239207845818021013657958201417976126803321889556926152035532425606248170246073430336653902823349662822871746162653129878758586399920265889296765287719340079558538109735065977662694522860540945837347861306568795601277505298407689573722688197259553848528178724888735621777967046137667147184019146674276746436127822846588893850107371099138679668961522648544293113191509705553019542785012373764834158975505055568440175930803799531454521935665894159925190564707515444358312197933353862510636669004918630647591942877460726287823476029055415543528962732172628336236485677073855966224722129931030272660142315484471534186720240850496846639627506476872962381804906094489164394146938197511975166866866101851279700810720217871037232141648240499726084825704097425536637285360843697625105929308677680829597979363907787700026422177914788651419392672646160738049909125297225957687093650020409535911133189512220638991780217560245360143385083588248416084113264296357590940065969629074483827288617203502516345517310046766743992578151249481305474526923075632515515431757148336201775905247492106564985352089806886973408721348022289320763637817581980704735921651927697688448574285682502825779658915087417065557611824041577096752666841655300868806020864431446012509418611656522357503991001874007798509144970411785594955705259375083162999265371935617094198579297381540854226654541827931741320741032614489378747186453404998012270965818435783651873831856303008149214818826249681674213648458823805931532988888630308563582126894478842551451923573230415477121522937363588547270552337994724212317726829348455946946413102971997691278484807247399325484225658599554314131530942655072665946805450743881436687224215757539109034977883467593309434757596318339263088862802534158581469711442540420809092815228530955314973159773634280390545730761769948214998748756747546680301880842093361156502071370437744382055981133323917150597487522875086982503001517954720627935944361291065395798775641411493985600269786675404612645984038008092353255902367218879476120529265200448432826905381822522374784321154485910742282444228696688334353446674302450811430517244466165656254904395739067334465759012239983405777822546190878023474191312363969416424776378599470610474154686442561940924659438315469971226797864629336082266916418160604967192487091372323775991838015967294931914436686581502965468929549612145080343126397632752119009583625120137611071424441653529521083289386935259292152716644379759124290273458957476444545393675970843809228162150577986745322496844910986542474057101424788559913866508024845604794207448256212976402231487337147418737629075214336881531419911932953677602549357925870385865687946632946875670392652158995114856276332695720642406375234530707617195932515731371780527551252349198036332601407551324086284025738429438817879206530864571142589430998068911890024162340523196860830466956858275337997726791289904520247589830440420575604211943287263533369165125205161857261789175491153945613394397798973334231330750059947627348232302535740536779527258466741220659847121294414471766639505867154886474028905039907132377912201889852341678781286011492717972745971573711359868086931817638770858000804029427613523661582796523271380198821448703291459079575712187151608259046494677863482667701631439456507616706437686948252292400770735250017905189509225424839457373336601145333677611280427053138176916863496710167866899202540857670347483976755416123460136884835993138698557036965793873211413167400420622549687320223399286796240866549809583867511609982142995565541357971192810580077732237421924836342191743598403783948985320457907414612164499876317232602385030180680198122217410198175948219710948795997561829765665639901254414494087573577967374390301883362987657515495361334430994317062151223916133750843842347490848591464010441675949851587322551569047789710046327678448007474007662627609752381168523739717206437153107554442061890002344715862694952418314708066192024647950188267277021547540443653114955812510896511839025365228056052469222435599255673295511792541144248784510492784853600764935785388179375277179541170453020937758210214880938757452589250021365171691776678675125845923543277706696313805206182024692757749881480961980864030864632780490945350441982325937985705253883123238328141236988299203020274463633435748390191895882885162997823924742368322615254452660128531797442933177656613462276268661295280336496230134787124111492380725448446749400896077467695270523443122779162542516875299521289841027413212328267298286932540734280461099270287015045390206959953750468775039968689971372264793149602059210683738185398395532016667474462922410036252506156376119876683558036728659371273177454785114847030478384184998685204322513942456364036549560941669977152368787999921003366573656438888815988267532742031866690211370582508624885395087532714821396502739303541791640693889102632599750783527434014790276303067173012274821778947641088715825569358612168320264167591969367061654198908882663017293817765511667483095585083413460025776769451193890144701095604329495477544980645041153847247118831940667913328743949495338949313997694094989958896169311196520426941853613297662882465749105405115799697597862622838445258096046002174568993236812210293495221165869735616042365821138799955785327835275474106241921473966961049681546809649523082232440505736385792553288502661166649303218387347070017386107827013551371608358076962557653510114186264479627285945026874762829549288979809519404706426483847334755921885685626038271676034241132175311540733856954996293725285398504097986696369733459990311417277136998260112965732753047458670638093368060255844970781438958576166254291952741680317005570564900128321507353766744011865061465794272119432960127821202675531086495238749142474528344219346346524661372228622974501992603762553551203396386981032522347906869521156929898287589861131478046832661334957860810105772177958569321366235973204977853128306983508317173106613217367630764592839439533654091783822009152112501613249705870217445037243543603039904652541866739776122998913174205362198958730829812808720578210036383500086599765835840458588033538081325878737184021120018452644020938808387684894906453424541666738958099342482631915333820847867697837509330805979229398575887869710833266770425826570691861492442638050269279582166283639680929354255650356923396339797283480476631725514906227777008656435822543032244525509237106478573521054562742519779524613912393999278320175169638964013261342237890711576305038066020985785107014860750712798898452606366166559000644181020393807410100936038979285955483109404768003698531188789557993603201353820244646855673231458187738916328213049364611766735005082431377550136564358568288756828708285354342753475049221291568655484075958485937900129675256660501777267830236766203114420224402556438819767213070341314069576910258137008157429817519161666937113187487231941906529130565670944712116518726825896536098112995496134365823143263214274811847589539863625189763194736472123159701382901642109610461464951415776053983260515027761427285250492968036574362904546618748856591268767096543675509872437846643004294740482122358053085996099529295101201775021597716374383454070805224523039133808524155287375126616298421095778393451402022412979624540746620838692014857680920230411640010973678162500965594271762898874724952380782920641928410350273070915694061038636187077304336335861099274276852336180700300767857763003876892052769667011131469772803862848442368562088748476451634725300936800622573720839933821969229185938637393106912194621421165804975340230129452990071960341165471293720774998238859948871289888279813043906116133647429989555499629785787288793388749479126668137380579281510731512912055260133109077170289527499031939142368364998263885869989274895369701742142851569912115082286907232841669873845536982861493283977709533491462810996545509575544832084050035833560423775440876849455039272449876639514153337617971278059318593101176580520262363673739190849852775459965841764910760480114094369475699994674939127328455455488907634119370564948574212208534399482120782184175896843624421674903835152924880778562711283537554882948524801938987304688797243228023601102350954768131024921412197215936181639880911846762919968273782785515026470146756996550799144011549033266046621589379526397528351620028386831848407708717779907691712612723368219734325329432589443209734161245322962547292889583655600812732984725726055307432125261444482308993479329804621293946475774923058344706700916576308601756187424872349201657837097421557379115874568918954849403251383557954067969286490289274085745572288459675086602072842509070160395755052128528055495264077128157459189986539648819658258386436723904631939068576267261924908069912839060261731807930300137272850485603151136152186470785676652928707974446650450295661159866003715681019987402003509949282427174143852094501845199258571047554942852744811432881674102674983218249285154638253667463208574072560173561711220551483736006946817940221332439685714219492255480249158159174851131510679168357881596439767861567166757157250437620041781200179417547205308442161487129923479423320894945641473871557494304146350600562620527428134989734623426830577610182325436500184459689440734309549984529913189771433938977622303461128247205363657361716225620420323571054444161380725281042665967347484097167290187595794555880910933450650888479785832803757978183935128640951821790667151149083564585281538781415111935694742352804091518416786811156009771175231885359052398993179103333365242683432607676828476625741110019158436525025393590275224661272280932076089466823962581927670343190293487285942327067948435655353809064559137131842665196291132741252554685487849377621659001094242223129655579321066953728494873706398146265935462282761798965524425013261337065818979329590297942989650638043141302560489949067526015430169898674278734495539162090714986798862040048038890963542567919101675233978867425363190829214958306108206107021244916050007891018967152637750471050414333840307341463313847521710992962984754335095166680883509896763319846530989601600222728219661502589442007203339712780109217732060786787335407165950306176051042355639745619214933901513370482932672324635728382807195881698329964052372587648418636716590658671304337075269648565190768946124328546661934796508665674097268787928531005706986362154506343961909282610410777290959727839645332389039297412311940127053998471411086609620414383520787113976305483139002930147040307962831875587137554142273113609539339709490408776786653474592962407440258191343587390362675909405416604245263087409301896378478926368146696632289485359886559575084267054469127325258920719755511810169340605390689018015483008127241073479351141573054473438141177292729451372467937952519819298219650364093343821557999606867661324961050661776244600478475478542416787778188436673843141854378895955132350659973741416507331740480890556160556884834999127091725836561394704395861619456260842060233913660449097473817732605358486830576258313948732397973147195285528069945349000626713059663993927503896209624312895021835995700556963529353473253565446982255983508654669073471578836936459366776103166048089968605852222976445356682689840195616824104652945785369436669706661895008658697122086884203017646725504171030169797285010211475979692362505969575440269568992689457786307062591669996784269497525320512478138434460449569723220166684340475527968638662832572270554345465346877972495593682845716069201216666794909067049455224977962583569725487744678875959206467858128915672394072402527173440792206429844302664211085248656251279350722265775098467485353166020810211057098372112456381535567398898706992956463762382683849468433937239093783114202250876824935026498282439018669714270047672285478651836005311421342496831786668143684738821825251510619480699488285501016788112073554883104753176468660513858483749000341915606832760095477889597592375689087994696899338018725420996414328652134070031160911982926527034203693653984832135329172079724615474712190441531826966799771507291011994662234090313398403863357609847354065975640656257897661897008874788512268534772923132338289792509700893840585004124452031017252176039931192520731020838805922339937168726996709954284522375065439317272250826514794519275374649063675461033495643358455681050230380897657499831287284596643669066949982305318093326395072796486043002505773573113712072268038702555069625578104075925701900555588092293633536032722471097656836699663305459496738729951378015231638016489530113721447516530159877006324353136038494765260304757982200680486648213838753753034407708192241536614671949563494078811035798211543422556776704468112114863116025239644423276765694187814030843548966399856181502916851295861443285392343924411299356780780570445645313802796700027927226496152367385318043562552001816769728388267795631833656708449317350499293864330050071576213240407069687682627432717294631301703234533560046344562961284008745942687743448994622638770265958251724034308514248525651316869865450253489925969168438485876253976181379085357769700523366577251558910275421959554141102259123636919780683632256013350492323581369516452751973043305657095731828558923566754618353295860610585298470640301039126858746611473519518064133175306609509637903229301377101390724533494637553400120746710193118700519204541678470417097987521385424460265713661910325421887439640681033046423529737594834736736325357461840212897932796196091451772599215452121328255838978291896817122458115928803030305236119538948664741815042032493238865963229508161933539744359077608121216770643113090207233692922045576499915038125800756050699081036032227194474528143079452216964292292397046823185039800671676222616202641681560422373644161756347931352754073321295413265804957315028071389751693971110895886605128785179203515102467433712752121047760110839121754486696434384862829301682319376337769799883344304977344821985787329534368237158942913071043499588097171085384130703102398483503375531045773451220142291342555325945255201125209126636550074974728120989410524325284538842847351398706110824452721111962314557069668682040864727960362233962079122502257616233020336294570170968029184764718039073879573250147832589821334397811778780024813782251015188638530061921583750399113363056034680382180228671368940940953767752495439071093879502729623892403544193020636941311433322353961966569922152851616522774956296694941456434850031755743114216792453426431022095855734140932999049551155439133306306042103010826879242161903611873715375514065846741357905784393317944207247241819093565653037537301722021203902442499683522121508706439799776142874424741563948212069231330571861758305643374109666075420953449809300987572814303240852904501984419013793597463701975681572625773714587251785278857379100712033750131843760268848762172941991961392196589849026887526776554858253563592891323419614374575916675044822262881398176931285731131854316922985940274534638425310915005446653120179535123760015694381714655424544233230209353834550633573606450581256909127763702509489488843630625508189663825947369282981860426600625100441602268880766944035745633879960015946031865096769284864158385518278279300677162282532468808559071191346104377475314836598337051149347736913965992712100768460039058899507671043160240860803629565339465935898451404241224193491056672448620165355850884010969445373458374028336220554356262439053480414516898446633176080564756148917534945017660682345571743755520876187706764631108382769131620661321242922419527927691896059803385608224300235218955281258440758954487686099679423709799447641163988957347311679051847575693245853725840383605406413085132815263116517157021131551225738749568274424292219884262853726723487104986533685473907862425272455657785086187030298649825915331236683968635073945035575685286995120374705121491292366810333596899672403273181593353544975941237337960977611607879538949000702093082996329627279572449482395764512785194081215773784434911201085708316134260521056592922873223208935311169290703691780576967402956911036153214026651594629134550151118351055118925831160657740020170828680511916370562143429503551986008585221674026580224989345063887772242818293963489775411829583223110728497159252838602398102793718315506177127158815970572279547561008399838658149051971571089710096559076242237044962587199656191625171605298931373027961289870407671902778041550553071193268898399050170474050510535082009457210850545518460574321705022007624295603671739275317639301563750937070117360555142085933862849205000079585030360282708234808684965568324034318116987401266540223927101679126977178330723491714551999721507868667699344635550894866532014777914907248022664644682254822824873959956481421749912442385184262881575437014288110482377049001880250423419123436174695591894174534873031619179134067853945291281093663965327327526166521181309045134468758787489458454294871482000058528275787900888907509025852824918275471487917095345124349136156761954808336262692083034784703263339154409297975914596407831804768929907864805089682041640361792163055723631703489808565294915085795093459588455521373347551612533681001313548076540860050450758352342353796149029723728089742954487857992965830345183754221306294614029496978554439844348681152992143253235062594307693212200879459332313693221236409615767720434442677737536072103592888084620546302727186186156097293059219552832047220734785678981828651214780236388902815866109342853053125980396788945284315166426950019810843879282643566569103507650699742057152069781845028152913108120881180332237988926011393244839228511226967990703620920322867763665799908953986172706346264020882118438822103582128080203743358772630288370631692632175923504798990745690717625298452740057949821107509842504693027120645150905486704328454622987399055854766210924852111627910755459931757248096776420139586389991766138180360443782931809798638668470236945043619025539266637947760675411260925712392505745458156231015714035572356197097414688604149053204023078116436042833463635375361370162384318542555892914821472110158013497437671043208511235602762803534369244867885798798784022248453670001910123027193151599146065228512811565171023950748305502614038853504816455973776221765875824830081946744500488767101894690625660954687595915080036704129292320245836686478003054296454169753998360905902703031563056942647049240499456575411404870065659271174539397726891437505311986789677924095464422808709263217768700904494479452410602800629407470288682530775618327839071332809412990679947797541752148032319610692603618534637163364100494108923779529273851133717601089097075622814003406049566383765412195352811240545705819749177510793774561997347592611426051321725033943402895573739235851876513588340084362552918887971716726988035587686324917264872152599861707737252209529638208716244964036363153365502526215737499221921605717891975815313826440062230535206403179840238954928483656364297884727660427622209176451327187308215402193238241373606521367511133594002128406245512523935290316664395493558813528536218123961814524911159160079376428515927683859183847268793045443338688144762785903223186329829952092307702651675239456061464619138976171098297145366588006753080143459829074264375447623817021864845998225000603162304453670807358857175287713182303318741755763879061313376514020233385085457330308601559904737047840905421975048387385434856519584049036399046174958450197369171705148410512236457264169697356020122203938554489144922994485510267142117119095635384413067818092511665491683349219658549291002658199598376199833855125988314967878160201642852576939908757664386081359088184307032778785592576845117076592899195124302443075650008257021151541286193778505399736019691980984176594919106214134176894179875794879485801544773640413636212454273991773536297731547102633779541644748366843559089604673031007677586593864489895876924318082437070157215186525083404029966806977988038624498333130119620195936398414544054436043112334401679897319274075878762911795879401279820103310275049884694501979184092938402441198039744807463917881996372917984762562975347311137938941472963433085785912420709241938775973728012464949769360897767955720255246526339661228123553702168202650279136299864297894886217551527735667648410283283413745842342704149161335599895619740710897929455252015517151168232805703876469781623496076787955235620099175208194899475880580017521826793859871408782785013217873800231691061442427354053736876481695435725790485847998985591105887077978643397165728814399053180762129832213688523954361906787885450504972328303203460194337374589436588519038369457591206412237164213262092023742419602867724778806137687201049388317079260516421744913264272237179277504930915667953027538181173692983727351026587912067437351299426918602310821501177759139026059292517539570046646296001995297284994218012312341321855266274108071119965702577750447855080040171099410158719264948372487327484336299482846988511635767755341421704570330406738258706304454779982723789677404824163364383897770464529242473599749564200833957333894409282155585541152033835421908034341122633180177811906799305892642119434782770601950738466931700509867046490611394639197817178587527379382574029014481010595139182853139943253662137651668926100610101327073684938134277570381490613269977961358200843388871474524785651117424771494159207441785204686720202509526279662239350986222437793455417720298205324839009590986611586644154376937511173711031902737379376117540513365634147476046264443002328609835966179761760412346334293341721212485261410748408942114915436168579531879325239386869868066892013849746728174349847315802390937904392259671571630497401975347605119248185637006807676380287915785015426023452670418860955522933249920889164213756261442537313546822012496161519673713921786173077462666294642792620832866591141626230348707282635233006191050569833258968957297803140473194840447868544605483070824283440169675923635620457341879736005964353051743547984797439345401779812701669087674960987521155886282180605971172602117153160781322248058766365333021171548645010193872795571217155930402369672413529503199037236743513108957141710380899667649336226375206838969872034978052102836746489075302006372091842735682698593615212841172966884525908644940056737527545770649883414673343692289382203034360318546845297746898887442146378404587684086903361029330380045143402624187047240141021217687857766799098717321845964571176319572937198094907258300898330805107745621676693009104621320067444185067062251296782207056031861615719939337447319199546503524602085504090440499517202042433901008767192813481031771934130696089360148093412944612420735819869489808137694246494718041456818924385532040154198203541666642609850330636898885822595785913780743429333159492020757102282754540712714629596800497650244180292409964111101441438923043861278186017926805438729047796696574408821535462858295439720478288711002468344228329000859464399983120014783127595231530360567725619447799617313849438851567402989362934462772458455748691469667664472872326446590256942065800788255903256451634421634058739750123516792420087138437395866936509459972216025694455151595201304325914810253885793553647992430825538241002397300234325439292461837264289065712136836657578158138460884561549969895643022981626262810854079857418294773714922959841094629369391753921984650237116285452378488139718919048941220000179551668728868579793373713965180399622502201281936248890291115490777213476423825806374211795424018718713311887844784117586741175700416934428761097483140120345810079957469307082840980978197882546652831861248514779364159470007337678970687894747182545875832193873123574828246061999260367944665685957002623933260480921081528290584101963248183620488002342039214760545691951190001296897525679402962668200563819186380832006120345374162396703358560537029949302517118229710187883988496246559922116926687550776802041873189315824446157429110126513446564786792588162694204468786473290913993085430343756626106030827044739253151657876908543380877914862216689481114044480834912130098796280564469638926769929976923369439143815679667127206603652063376276859097001405197104698077714947151621993135987038934906014173407182419845381429538530514111409787690282001133604721410437280963028958905686025136748261706938735240842831950235701091516509664137908732052015757898847061870360409960937974698294848741337099880360108618628369027259189355372114872545505781608892468864608039385748702912419942689959618449891408475445132010572133924056837571281967553750189865445914601837708689538397327814024480271006199530414366464516336119088345837529147019987909892910802300030649206810644803675993017329847330892489564829069235323512367941681915511555797596127674049579651488724419486911880551928395755534098986599495383619351659947658241322467392604314954639566924774431664964698035500029209418596931398161170759473623389004781469882604890806258638979292762464421073337792948299737635261313533947944557865238820591232190688326956167030633969365852786396232935932214683022161525727647297930221161556427857790213155322016640645135071775632747180470818808839585254882799662652812614475772182655212492165643309584852116914429978170358071930772008177065610390251638870437490672646936364057985967911305880739957764066820861597767358593334852684582977303297097728239155815928542539937930312134076600390619702514161161874756538221972646504363686918111533208339709195196900280977970831212921278039542818130267407442695422606713503722678424752803683328812880780202892208299149866625642906234297194203592220609228005127089935470396565247984427630905546146109061466615798573665804476056625408757475618239688920951657931755497577111328797854479889416621112610849491122692918455177844878896787108664701396363694945696139598836496946414514957249640442355400530421742975740305792710087113355344346645395080110217272414343169142755478908008351573372574293576713542760044959785780972369251311267604123929048236262615149537620939927411700371819227051771128382395111232009192462006497631421649146420503382710636462225086377907651324287085010466641001952230431362253201353698297081092404972901444274577532304811250897945104528096312963023842258802551858960112322389840197585510778398797955964894037693053100694011824527010787316505295979848937956750600726576117062433678767947630651379768867450985148908564241836548193915292825921086676483946307532509158604541974367371635913207626785553332879735470864880555485383138729459401324692945467592778465791479262413101351726477228837004054340912482452488175031275701807641890180957238458861184878533113679438160420420475598185013210290147471558850678873036426269294578365099963377743949609574765596784734011605393004832292967706281122928806271560102379506533976950911212708456011132137251534591892612731184920330374356337004091131902430805784934304805447195677658092956313639274389772706105886725078223683014869673247699959626137843051084695684734379616582296905282916312370366857095671570188173491071792042769970497909308450264071549034687241865827667699671197267913078661022756679053861952633143307270873987262039537817404646681180647066862216262347390788878469011832005734895048929278525726473813583689014338518294833120960988969784742350936655450351354298700661876574434200106223272032608605809026180859110450059134869793962116828573638253092282940568741158404340037790931687714968736734823697826258845027325217780645921986147389331214694612353248171891223870983755932318284171640874347010188696648217210474703652832109568783764315221374277247821071005492076947753318594938063773678042840483733900056695410222813855104719967383196481555722056321677054207874922949027314632995385534571523554649550580122369294496011976633174005990722563745581040721218054654323838550533871911561628546670870761689487972460956775215136794090848521730018219589296325459583814909116058019927110844583375095719553134551127361917888292877826466403080717627203123532296792290075164605316355303586205243467434260639835166986043914058337796185300381420189638083430102262675672072386358822215407804620904680202879723212724611845935363987971270707922562297310342353356337013236781470101115289813616476984567394079473451851053399138786497532753202151853384056696011438721645128886435556750175250452937194217647792822693302589389379843991711670486778194704878845093726963386619024182581593810378197278002405140403203682373787140634651235779608513556537787845002674325217520621170029686263762465259207483251893345651787281348920728861554816889555381764056887961651429494774631025930346027666072395127466482335023537336112976454465163151518590418073762604260445656550254676002003882996897306715270855300005842378503051495787803943324997786988821569646757836799880618952833684123598603161165333732453407718823075941493242493615722125546126279487042653416509136674068104090290142765340476007911429163525624337586388727285108518640766439607543275459297803259341798775827894524799789433943664649349643767083542097229783893149444259256136205850287363163788052550776051078467813723641962210221500228879728621326266116478836718568387916818947731979433303081412476878356821057029300906538903538165121025963522698963374068120685641620461794941839448321401336441204197930845666650695417752796048844169217510942356689133110514091941225456982500949747684068953906272696848557506769876048793915247839870989821030112044794689305258499266956717339080108642072364855308118742821227135858815065061678341653945916398784673744094051381862910841124198984782564835708444072403543767703697459724688308358083793567985592636317498478636764354925642832041600506248957136893990301684198811324130205998748174830041406035597028975960913384966077455585773851448223185479094938432872623243155646694786387064267559014602830477417522274153872080583710580477587771856792255467392586432313647658502065862792801563144882379254623323809609966303794920780637232100163310375650000178168148862677618853023805854299420860999015582871593731792323468123485572930528800181731213629975621699411071839828916525252214952055309631855539799639908437320029345440180083631213718166512597467238347382684739916975538784541931325363034484471383794864847952495684787259268373916153502109795037120139146064022159238431188219494134408111995395780168754508572502523799892994855841451733645659981771645775443453567998562366791071942983508960008803977389741772256942087343408255193874288764051260638855103178723982860103821020598392867270789371734376485627572474354465135392742442589180756775965491090059743322043031358164418158531390139254529771405444084232576093749545770661638715779929362439726104014039634033175577321793094941988605625752599886224038958558910496605532320694301244129200359757322799561213894069260719594991579628375829998674459655299247562191270519878157054450885734666943889229161870904466320831091708707189207753046308871115600419570285441801981219207729664766138971513780257679858083057097911028517470350148182686707676602600201049345958837524151295828515807156220109680794557465179650591878123835256433157055186497802624876056790840035711229565036824747452821988552311188833536062009422721055461867848311462584918941266146909734748583043335649549659636805986186585567853835883299663516743629253295997434944256468726002718941710668451051695416021870136849521595870648705515748554801411120352669367062793082724207762972413472911962577460427944216558936403363900858000269014703908239191076241573539585687007673687447830827973331199456721668069270546382322881862116174444601823868920664139021024951364774651816183260633208027016810819465451560335493072005179468924544651643592704561470030033795137457795745955068197105356782007693187410330644674423661427992050103837044777668818903109062894428794492665918033582331473721530633320526547375113034319744638187326282978290666635241989015668028649698565531069859467757114751425994099817087404555402688766624400331457017216560693568637544302026913251342634524940628599305828209623711106456222002504836093162698451404362411427257849218291903757837477839777119365117973153277361013091764880912103470889858624609166811313464633724788286839010155685283498118581746022224475828066537184024575117048375939082362951989243858626408431094203706633441561684710069944770644953732909874412685196130841708155042233726007935123335181897281760365170998236472646804109132454497530299703377887384362522276586186912832819373072793186236965603386385482693819277990496422727453534984031428718510279903778910804863972114942796777322145482888751685103143834344695160700614741541982107198564348227869622533528418483630478100053228328720571338894449513848514531667612260137194481481525284553169290172447217262578073421136809481673356053908925274818665795719901936837905318056437899517780788034670086572939861468443803561246556967839952006982679274863410642091418618090082131099894873102114264456743006857472203347122791870775451421380247577975370636712555174977118904766037745475661235997799215748688764750709344025573712736317690487936826604962050813067757097969123401180979346215690541702555385537358732196046306644259351345700404332156517591473134540258273714639943471793230397472117810465331466261935899879037455633706640817299503547879847086257150490774164554217388803043585784659234285206725934558580782429210735912045901661716681138217919557932265686926522288257900797742554997358406100332480089820299314799045197941607042125261828738347494039550018154467042374754087550129613210579618363843993745892313944406908783420175226715407012857784258035887901065159279898843396635790991034982277018644677260182041843070875715668262121439033124467707828920635973585001271153073319034873551206495741866556264001642986257314569000772133897721409918381034703497603364040421348556770605461853135832488225087986289247201895017609781905264498758972245831587079423796499831103741134142761589222728782017384666705349597658279927902402252378610796139213778933798124339412267851220212000886492287576703740636726795666816895252535647370580487334919406251931857258836423783095012996187546642346136999562455090527471997608510432269722171784483156276048890258483274576187493260112318328467756329506537288852486839199128302799979945843448698590566959456239545394647327462707110462526351905232534192647876112850145567566110456128766785818132310055114329202345761238669700847760120072820538820949545121074980262424949354762330001080495289664195618374772319073067143052906314643020660208098756594644301517913413980108782163956579058829461699437666938260386541475560734904675902493243864560148436334208596221210450017146314441827632757777848980832972180051239567504784922114600107732837659530411347721278630194875955389172063380096349150013392635698271630715420275994547732212132909444320177375031568724325301288161862878204923846196102532343651729656755517703595395374874264315366492575271104019885234798587478896313272357466801798933675041867135721433342272157301561081983409446719569187655252884840541546333118255904759689872701093714880579602983973572889584888217462657636987479307189049314760389391565858170647203445287329872877280668968826766982074657825149000378554517751051614034094749625962900687258533514065473802264273506310693988411718811821260616271446782353415564804786351329714067661590408490260664328260951733805514703630832677022045740515934111666811309577755884405676984860645313011842415876688780917510669322684350486804936872023130962975195921481848115757876466853720132408910487186440810298715254122440601518857978572509287968791520103216027190199618955978710226363777482992959508975498820111902374706329201932069805404952043168925125833739313016539565252029555947496660123140756750181044924298698124334853159391376872514752566347090823225693890882221375398493697621527160014638098158391108267000666666660198807230172038077780548152866767411739091624156545313184553009115161547932715448579005568349357656211498296023596003935962553808239118214145289113014112790241315301654147861501397872779514378491985583735779074754033664368249377076838664921961501058124889571395970583025572094131532549295690978530796850467050617629155998240070482666505183453782948502195752430410608721713402789463160008856226481905121540600025437642363259746542531009176436172367486677589047591979676567997633912957150527963955385067830403699096286048236537825207075092123695179268356089807813849010120099767705841444356141514674839845219685037716068377774056557312225684999252194751944842966586966349716377294353631824117204318688275479421113381010692586448527166422686479476024153086599890095484132784055504348733507235794264953097710543411697759128659582631819290147246126929982893462830430355370651419396215075352357372135791183817652195558057445597965632592625217331783589952343715745503384194670020855834119103701242899788339224847662057561160822653310801678686811124355946441750946205571617430150969456652094127696466700999003614276578682881619937946843249868017836319997454184284415011790775389989334976357750445189924177274879560939451487713446929418390713841793224787135179727977762087270407762093282866888117914109917505878891493185656151049173010149238061480409266299983041808820667806169713155345430035712455086017003191310081770119250907465853754917826776248052633325086561001144658396155548119564919123174125349305081526613432989304665023927764944505244202702208013421577274281773235906581342414937731371202800358853287651912655467292493136911042372335325152213267699070356101587814543089101303179335431425194021694514929622795054089871559474809393896016037101041885684393547693697571339493485958222648009336503561647545300383708699274435340206377293670041207653176095569332055777395461217548489988041511818532112314107213066633548288743393916242826702795146353827884607722232571341426126966543758010714367442775653581692344055707274561958616739479735600860870707162346768772779012463435909635067936334765298242908752310459924965132646763153578357245637454659530262166198452770928636268995558563431429930114648901053900499964129681679449262437011146958699463304186673318707064844351681859222192421230947526828448295250682880630819794154233331637191082895008658133593759733442763576807526003320790013091774362487629634353359925380741695406425383241483573241169236730524148039761680460983152946410332963940296772364942085850362664708780652356984793454530105556177786674166229566777325780337379297180950590662053018576011009308477656754753402267116324370287198812052957298282189461378190671433710770209824014280468216482878813222890861176346234018194466170516952767450432880488925384477650531656758743625340788296304076721830122377449747251674758682644493905576777860139919910360539220334928372769912025881214362712966361758626038413352398896793040649621731582547301453974938023441179835560249115577395814268543480149849818289612855111054950779922235696214212046428800526273900709950373525887448591864671960722471688810179277706887274746093646572115914071092890387199683633839634520625786977165953550570049481637458157682322189802253851404145205654509635990396843276752479340216274739692617615500478742928446241669292698244812021200829343208313352270919568575808952489402018197951451050648697868630357486309770315996159021662340869678778208161356816495537812303148051673811005107364831146220804439606964247485160395471700501262749790832697761671197596228813176105660073610128599600723920093456481776954715967747818259473715264921409559986901004869811216297812908910142096477245915816472164333580714497346874231564780227230925255085952693284507190548460217642519441569924926561134626272959968566299869115388281532922587993665936809549526993485409622069298516881346725019326542424083302703011009140950057481915102870388181010934663816511466474019773736803837145038857437638442054256683810511508358909291618299459096609543837852321993910073301610735837314807873254295146605538775516112586993021702781150305664212632954305383007777349165830290266663163099148678863554243482691739674341454924123697385428527189083050023107523796265457807702857686851291130541797416331787589074449397492086022465025460977540141377215323876440663837941491790628392750990635973933695254009767304379866259254423459211431914681772410726185870299289284189407805709989444541042060114151724438163756335721340525324365326643166898679422074402156808523878794930724756606951567763448038962463920409757507810924677984904632572067915986414282130060405139461075221680255546632102032467791024531267139613669046938889098987700958737545200982194376412806040297607438405021686650072610080864546265280949183582250380073151386092305213891861279688671285872333712354360143059672381953266873894032294414650764859001136452215336162056698835828096278102433853096718204455833167415457940243296091153765900174669633465753154903949396193858050045504110604824939398119018258595970430035853477544531380003836286618938349834806726100017871499926028350663746672638331794456058773432591094133577519276601363412012314109358911882368822991962927811923246710916829696035046569037233368966450993911859100908621884300103717262181504246422080996959849911828699091073158692857177637448880744231775523993340766069581857617554269673588655995307449934387461429285166417819285283796372496042644108388000653636890367743651544932067254343521146700757907102860623033723115529682398910610040493873965945960756693631572016523400795413397575518514593460257679019076629211783432223525887260586855937773257458566381764812129586663547817506223597301576922719345843337403325553955414835030566221314832668438867029300845003916064469311545377973079968754502170788929211205248854105533182005466126708554778121849796599884576100559375023145846973950212964188371598533683275711655285742096594689802209881981684096319714107248853812205769351599679226618582624913800575879441733961426011903112392272415962327699458762161698134573204426715111480879571513993130179640462617230997409989982968049213046344350831796049434698638039768491461509213970889393156556280980353792840544156244095051384566235965515660295287139027828942399070093347145820412601392812283646499886310932633338787471457921578145380942169513203624722346797500829976174195264897720415495108292735952470726488210508894093092619271086781235391313162600129965651809181758291941450806416114469219185595904496867472587279014477817040693657723518998125445962894471280876127462573488421839480332451988605324181269221743683196090452091451556278575230656329161926182838116769106945005614276338093740370706701416449479894553543472624818796773204572812271835443675087588369363006907756090847711848055056947792951917851654913961436930086882484023529360425085762990694996299661647023030518351095515551506086348500399233108226157287734970318049571837563033555943101852741468394938399464305363488506302826780434404139285369127556440644575786797546449233987639713947014327489584330490488649042588161847431954685007132265600442471629217589323904610066045808580677234771853494650102628226002114314601092468941853060733245681598434194352466696223832920701053586315463736552700337249153664653201561375547973330699352946402627157407408769315920861388966743403902912071962967274955633653590368209724702174435271667088711819394367770143412208505345911323918343273375098829713210867500305819815059417429556172856682627480591597424599120930750414463835680743423082566313931403541230767120121940295226798586526776126036405810947163190148618160487552737466313038405325192529749809392420556462068191277932131091690033473241164665686695964748870541706693469321282824235701839618988948526451195641005296872887787126624144268126321696188556770703892690531719321815636591194853807467799606340892256398929587326084485520965673288179949337658781459402144267126098472082410384683451605988091548022917183406337205713154989964746142253489460557328686662257678726315944169984034840359202282253726797847445971439821296479028122489277112320360723703934237089186161572191523112509623636262409772324740536365518605362800315113632101109644129815975023237404893656256700742646582542455947588761476170762121320331056493239060087284626218271134711327044571798954454613357269488261064388840023967943672983048835405903381056450290644652430944462521326292654097000496439236228337402186708063422021433128282729268110110406658920599437978264409648902374196349927341306127610442579713428517646771627385880977539867709439993336072619413190592569069932030978685751613978503509280477726245729967211382072906118127199671399386066758926012468311139424098647743489451883402201185906443715289010939425421843915383485759462064101454682338003685599574302667255279693375134713232011824485184807513317138544766485517027644468611865372300859949008153041550277121975204982466461611522628883801939716229590903272093530863680060651045097798298975580322089380189798002107842489907197328437492545293807682605639591486377479785604717032542748007147129318165482150806024699770312988416977699117800640018192468326677681188451908872310471329958621600998359379820808152107865007205814218260733290020272001466555812708024289065488664947761260990322413229093132527438918863030967295088703119604026776184766704819827498367437226245757658734624159087633544381465077247815911602874645060813450851379264182541469043177570762228075141036468698312962273958158177256537099007899496538530899040401956076955505692218790469951672581957778872909976808605664093343949992490475591652649121873353498672877233689200389752313444372074992933858029319795277803730706457585913260459220859156463278154694063165895254116856418277735529420889751899911317336890296932074373932022101618998548902637840164631895995805753271152856066033284429105787538843103954501512485184701362477347050235718209283363392919313707138175866980560746846065926041860831348010165814780828684498032834684588667097529101654723953152751175976090061123962738304157229984765241482357317930197255407424415568087957283767519959933053797690948396398309570759768734698618498638411895764689541603735404058854844026135411418903042051131072418023983290133171115882573625133619110223048105258041339927432108165807482165500088927203249897354518891961473116037952254507935723470080231504216491254281243432518689820554742573937066878517173376211457295450870353567788663323510616764239854087595201030311136623242345681085693495234447723930168124033799604892627466998680537305429099739282323510656897023946979624332914368665195394664154619049495248383770197372705574644127990427092656869241663057443524706006250832742009607916210997237444142079180609924637656900345935652344041232387906759380488344933266010279352602867404452027414506519872169425887249734627058685427795006006322173956916671172194565488663564781437674797468607485627697276645920037241366020435253208877432925932414978576750040164872231067391844186604729799971871865502211666087028946685341504083214517454295711239755172127797995689435026503565516615856813654792573730666087424519590094667202843429086997071975590657334952431045749369457650274366447430954230006306155903506665697684771140123476642520307650827564912922225324528288661593503320555279245113117341025034649504045383063802413993688275983862748555340223543281783419355225684432032093583032382857749801068029305514241611992651756331474264790062153040586876160194776225790489051770345642797119907846387836801128744892856951228136079065007279357340022516570642971768102602008429070785335212976369371436790357114224492368558382281792349559863063186834434854634543293374128182691060946249847122736755387030920331655859840175903389665501602191472758350092190502868444438469964676390677742377659828110357349463885828780183943584711680841464326781869803704053442453232466514310950624331575267718689812588047342547388871745149599064720622607825168475125687554083134613633339772824216443975850727827490286877656395189198237186530424973717936453375249642221519696540967932876238895001868967563797298004018723386180289506186946280867005521217624748819519011699692128484095827750581571047152086436351977491967558761306276185122454422886389426500427858627373866140778112669138956236960184911008045967669549687757420959142560479848064140455203734919344756595818972441442152110944069742667571065154016743745962048924502457825284709221853540224075069215472534968494272561272899133187647477257484726743159952409762755840786157229510670840354940706835518556474117700050762927126218924699770075050382757707618618088482100942058801097244122004243557380876719994122708451314513602497394909856814145884668053857636803351705110235437632450185183444618025082990902171160456671216640611158558288127713944035582710682354056867742595357127761101167466606615814475560267988872974928084437472841654763980000482213814014054889667826590226473299771427486164848469612507952234580970759857838149490773047205967324237336160898771414584998145895883142677322120925778820376875790754196985927630147145805242648104552089954353494354918582707146173004930322079671540011234191562151103990685036145620750551366932284483641875926711005103634125275335837750636693592347241400712034581934580217368071281519864258180233894584622745678745819744704205527964461318397922007517535598117053253727762758931725038607011179021757760097154818655388348966113668781940354192173041122820097430062105067399148317710290839317092292384186260788284560615802415237856323314689582655063012178674439476122857776498995526414825336487206058226548964652659081062592551791506363854548212241942679811086019722581711534368044036149573813158672622788984934796388006458984929369681682999651289540674970153238266385956545772276807303036473470724228167532263376514668793494054197465337932449973917685248378362499274209482592648325653940070533168600553610754427453128262551231250628088247978247063156396098072905708613435149977150877848874439529048194101655178623639620962490976663694352785142503557016883082156686026039930831782532827216229398553471995841312780285887189515288091691974165529394669807651127771790937454407058077550667939751111165207985440615464775695968933850305945753970843206573925407647668759816303851635946162838259115229201122639418160125365046440788956694905928969207075226118075283502622986939034646661161379645666213667887281588399897571882811061657942410277458427697405958889184807792732541515544733245288401150095523072604134108721230917773961611644618265880753802219747324919972818859491856138397993855574855273980849809238980956259704801462680775872721357436156480978823646995323207352093308151363179102124070929192567868278267297296029515440675585243442850573894005094275949023193555627645223020926082407892488205581448922623853614478086320830036902161401972326998212492522914133544929406816814728674850698174930345977078583314334125405316796987812543111442238572798165514528058327734974644468276154362944755879985366564099399645526527775912908030918241736023245724797101622043948462465097959886880284881087591631837371759554048557165786601377520431996513287486583724923989347014089158836128875315014575492759221704129989785014498775984887406917204746108034138918647354255016486351689992668850887835506880830476075326613525488109950913330989483553459152261171585137778820197820668693115680287676966893351093139727670833933895564177246232897009922356023959376368567518038696148305743998695516886229300191294996468264989006552835917628064529163416153369929573533395538111551343334296302087799820328386208966304678618146126212843458957883326108121505679489794953114570272151633506462280858091188426586880482609887206399044055412088156176941796587826336293306278807133628577980598761092828256829998442193709791265665163155287853003489969936472276881071897208033223469787907729085442157173614045486146396752469945448886738584412747102836678633189612017692978591148032451692521558875058939083540970660989476600840272178898398766591858785100331291307959558477307001668258297997715811613961138317890511086785155549961789671688226512211946810904041487727086181994513116628685174625991729209576424676192140338761060354304893218638442476928170247510854062776190831422344466484801018993136590161737207310158589232526655322314930976210039093079460502571192107626295095553698904433535677443379819179072104501761329224366626906380800464633758796196472360013548295842372173227097429883098495199635944890221101372422170752090141927057861165395843340592385764985523490545627720040129686283094205121446944373786539361114256429334339074031844812908397006219988854602847877252857759239219747300627469952365712655115677436455314898999756861952744402891650082710971285827795485020345551120001867692532714293752484224710359635607267103192903000613030849226723366773673347974495925619306953671936791494569580721607115230972270813160227163039539514385262764376765158093372854590725910148946964221662201567917703873748366171598706558063743852174428954046959179158004668578988197305230846435231888185499032849330097188312838770579180657979245426657738854568993138611873401530207783164029821816306998787024188996616884033419756355943946917270064157260178228197742840982162849602765040243817106708586733916821466198887746157641388749139240878980301470620293879136503700871356628541245492219827661660021957962270161283626837155272320798548116966212390194229883058074002690466812678762754804379519806845678588916086433010278608446452406579597352424766173576888666473760303451024314924764698634177511855302533747209987578727455529945624168393901838816884851594328298847844967202704940835557375177554169167015243314408925794981424951219165901790000380709245319908163214921909191910490533745790914421007364441076672585803785445131698099490786454777738111346832915200603928492128476118256091600535138429651631763374951232232463850152909849427020795642270795412843799476979554604870247588534292975856973915391018043824955131637626698855421074178413277161975962941909112431705616418603942534593916658573079439785318751535860321334024954757499098893371863496236630295774715777590931102588712174292949258852630109336445276382923692832420118864177978421645423684295937630527938359107574524727597254867498989102133800092601559000703029831357924699853813650288035560547376120004305571766288555032446982365092788917092918901027142225786153242409564651270499929004834058385960511908465363494794347743227408009972890692582398165262621769624797167581076577789944113182082422519097093582536601117514354053519934668576172343087204503655844218984548483032106561893546462172547339471428466966164982678763502520709764022910526802621060154312174831539686471410758008742306700526399512584844139828731874744799002305568568275114368577565499033761330773106560921801841727737356844905242421448911528361177195975983182249554229201138725763325819096563795859365533403042561874755342654087581756227667969786165908327265830878082060323638073200971314667955729653322399813471214072744791856432201960276828387575448708090568134979603381092133668971715137469936720705961606618589089575018953539926483626943732834913554613827342950829455597171986084970070756748183290173722146109908512325630440812921473287620414490358424282041183780319448259888919624809472483545001613311928512335570667852596430821926495101738615478993892499646953899163980671521429953868295641932279395107382008042433371920795122071222517432527626943888973696687965397804780345007330829167283265537340766886675977557417656783273074907939501101012342047470442286423208962118100849633186079394485801693639874729344142277149882670552661001203066558502952272039747028683765868961473810216152190762639458348693746118811814052045316425070281532489110852656276508363236959692065511439070675144700004417881513188629895292055735222134846602466892419603844435019733804494114379578879305490465238865603683556219648489248661026709877572973994941769548421262005246575430341728376232287215580341340547086590797028005756651201904951455171452268676397628548006978010005844820416173451478173488918358678793903942843296895814362377411292942802581099855554170729659408625749588712827088780422284522674295702813778583394209238486464928730536723855289483663299428876296071812062015539375233673218894865614101293980146595831101075529784842946899373281511758336455761146255574623477003234813944189469315470472581367954644035146983053912903600986301848216119573599529255503859713918090815823298946177909912919583722856649915829071508503719191634779989070126632889857408809350452098196966162333274078204465029077152636674957292266363914409273566471047180111506280260611565781166317918440391844989227820909992942154782309452696674169436246956769101437002088949115792262589299251773954812515086208556597819131618952512423784256956599902592100054654199213023718419022951375665091967512488639960139618241676266274018187257151734713392645769865535642630778786573113294105978726778799527274584335969939441094306021207313617556239105368029795959061567106218770765156595698967379401439158392322361058606460663530096693811519305729581033600189753332672707370069526080067013732467645443050817011700635845623560716566337690911245852859874660582536022151384745674309788176076617398464548778755612939035203678142005085507212703505051986499042585266686269986023930590027690836312558823650663529698745992577134349433485580270705545677306043373638292796228213408575220626820585335025961446761060207618515153906642908557948692432220547193083208263358916035494697183005665688788379777753802382812540233454527696749647280963213690531154616655366057066802445187962409810670822845668711324884173435756301421218640774885308285632399608518063241454922949322910326036965047116311688154199401589272430188337857202295590583234009036459670297004043682602066323337571194983088045437474862835712992753650701761902938685442870924545310552851948443019595803845169625556978598078497949208393197395372104570407202522846119995221770059412248360191287492335605117737558545176008468654914539750940460787855873488093950670676589235092652030626734332642140084726510942225265635577639533234342859960206472315055005469113752148778323636358514314901929744028929101615785028897806164686487054444370683775515657665704042147901184162217558505095222112226448443185776810627936950835738393080264708502496750208656413125473338939151202007501097172800172401946164737879645715022878984914135630708706106442624465026733147539366542763880887081159921216371500641323914443944094421747780299921299041176853203928428867962726336334999394251439406900955964575155058565912759922345475525417131300694604566235746812236623547876523400730487554197110019899567910105925912995739145381995733673514266273181196714671122629990210885338356917533578567705455439727175326993983715904166788926955491454517687469056868272821798948318713149313917715067821279997232784819845753175073697266119333468728192877309448211490818129650399207912570797694439521989185577929078184275164335046883691061660849751870624795099284255957154044853561882037830970665222111386512215324470586906432281212308294582495327392968622991351131026829433256240858837867397827606743255749366533822992215335401924671074441248107179494328028082824560404022642848151036443875900718040452707664477703767902931350948075056655531475317010856888039466508150324912437931551005048321099535525006847020297398622468584020162637869090387910093855589879495085248041608899970631016728002423649764777471527861774705967893500718743464696487603649472805496828152582038412155315472898175648190899272728034088355042756934411322122974450813519375854024837594236303547232362413130834202362201134802056831273569519221945349890924260025346227129835437829311474361314379625829740821739304266030816440211294033521502226452631393364507541824736548045955395396706909622939389363114206338801318111736540686083549904722436844081762708785594071156289339270933829037825209045353671456556665986344228777912026834808884245583928744377294960537577830005872424451338880614213655440145241122241793164233583118719880875711706623498227219428593965283255656895223554159652981396330466802269993442457275639042091204487251680638284305595771133730440984225031485106392825694272703309003630505929743662253591638752461688045905695513435415189942165687913916941359425480891713744601843302063312234102985681123872970041815815789157153806064103994429689869548407822430357645604976437512092945013461663405449153403088242962640679908608707734368434149334545988536647997391975199371859341285028725080970820745282835829061224149977919637421377490816044861566009262347724083853253940390340993146549786272902715868997650361703783779889663099452975769748769159091396456999971839551340603790078406899531424515665418117866466248135817672808840556496346550170753187992901484064603590550238191605436328989645917943332745236344208408615254956573861171877292695856914578253518859519261847620290126371714927414747077881621876016381940857662471798486552702451440001299668401882787201684556157782806018599088899294549889560915418777598711380924276734409386504374513793909723586520017782646172518895998085201184428784827786140797963964261193177371648673165815315759965773402182074101682281191722372249563581463769583513840594800819539880790079855407341588568582526304610080478804654313027386753852881919503703022265652245510116817744279967446324552052625589621564908738367631335620090728183353565539011312284465765594247978790166443777134564661856015037162010680011173779472479043861408400443589199251388066632983254380140153659746629262418925342319063872024108214671928261990355603787099046443557544844519129664694132543726336072007797471930563309023249831307071764424917578766173746203969119109100823481427540627756764923606290815737617830272195573733048724358822881588309736885996292684444543559091038588355360012332545138445730944618027190293371708880935190512888810705792452656008180049780934275106247463332539472899982093872267012496699613353855512851043860449839750438570745859370106889567007255079661873419354710503281987885002443127936330821224691942896886235903787717354350607013507426778504647903591109556382340933606192912196139879711197347021700300078509247405675909255113073693024140467085108276207823236276454530658385314150029314752917052893760857883927485389267285626878317915831946981362079011145861124790714009427591155145474818341601699268776121879974583327257799800106373026960845659757210450451756915934446283051001023202919790981595176999911947436881993217270854316454790771740129946375592563784185608840134295954452988683822564811021188901054709063102201960646034427110910393484256730428604238323333792104294588874178947306630343934253359458044482010183349636630232878465833723036192052885922047107446688062703021717943804423254660105868251617299858005609151578695764569663185804716116274711197533131752616289394914013019057455280477192453949383550200552410780127489572945923772181086365623215840683507039660309253769957814784249594407776727896492641897712463806240241549975850485452688530255848844249811501559531607896199252914404034073242788762318764244361812457174035167285144881950469315961377101440877036064323768770440638656759755923058731516705317072279690975338157662615226962673749546614381975686513307413737377718433132003297309360664136308439167686145850717062708110966241885974183633034599638711865491599517632100473264762811150178679727673611027024651264777127854607316522239614150630732218015309638706149087724182927800382298001645213231768257457668220463404588629855618406613875973230469237111341366076578999822565773802054665612578316507129696565065128108498239040545673704384643593320956396837627226153843485196312024084568765985496594141694026435707700917231828912478207861418079573797595960763581777145814452566510692447543322004749654167072318594777206133554142976153108590690496936452025686345484067763934140772883333219383538980596435755435137168539018489474404652980150025073605833030902879296966530290764539934808144099936730185874805553269073674337965775141935862098239849295034335924170554036830884662533375104152666971950741365751365931533794454426889066092275888304811597154817607697472619669434799997913624689548044950223994475958627892385300052059242290686535005653601343390570892983987426162985673501576821326768748411940407560966755638244490666152729106328688930394609611901101307727773992741618396769870465615193947496485633725627296429781171275270067326091393653450124750449328339730679624237529818752304975812475252936673829238084536039390442984987392670723773427006862319421602886166000691833104290094206867357739370441400876495000817458723407786149677101063831745640372576265740900619273146453563674504122979896016391581860420154143069139913353565293216699341318730402610646043049953496652514002748469645913731099519268458058934274519843997449033245141978147020469490369805879415787850241473119968550272042165447669484961938998343394638070742430273274788830754253507500306261868184632242502467944825014054390175873475836604184163657058978176837077441219023432275320820694693657185004452236675097037995082857900099424621450846850179543578220309341036617063779863928879250506760601471201087204418435664632596648850896082955017932573359720524035489366673630977158719878353976748843261827437169755764064229230852704072675321035561870050344797179287984125633677053662601630583769156966881864080777127801216911720122457986228766952022126686503962898571573152490613300621718345703347239658544640696706008900585049583028112489253901269839876105461332391761580074279635991887180179930011134953780303318526718657782818377055151103597052594861787101076296889445011685539703864602650590614365827216769116284100767741492684064058146298046051724086438735054451540357191929064298918774528204028357915696126345569069797308253605727888450032832395555902343902355156215495950777672207834770205941957420476338271743298783540866067036374200311437777167982434637657598469447625932182041563054909023942370901423278521035703452998090650408193668439221659477152899436906380010949547015524850929695502507041965895245195384905434113967815472633027897228240134949474968908087284861530973084992973331735613289374027976585761248808046268035614103178604699092172561596364434039219115716157779951973892399336323625826640948676618497723935708535416163375810332446985983047198613873885685678671123714648429400835799644366583287328435922071817011471826318627679876380866664473998576401815800676701753848914291314232026439498392825544810466539626267178394139733742335751575323628691717623356516925256484716293652436457410040926752731461661522950918061087742277520718615180951608718108091221357949600361588243351013620086065744927242474661001261561051155828546561454489266601416876207672049141941006677861202959840977954897904903060947700713019613028528018024095455989270343345230928210718845122451133985997325507856873766504270109309118036998561799206968790407461229026515379249839981967076318187898951064387302740448039432370908332748130183166465866481876638604564366130387420253553541525566859477442917937327488615943813511059771023048209696394118414947190818792973213815560825455902936834749948223778692834754712347090536725319157098289316903206722995984537019507459129087286549335759087040893197107177495062800279468860962826129228833940166273558372635599841310876663570069935854771948453767334310467950093456408960069597093776266568517893281276806909458345449275774394755840854583281163059907391265393170219494856615983717081069183295403239650378863221677373175264496641036832838643769465007855106624365031844210722703617218594673389396556952325430412333067097112562303599249363216960024178203138974005507911193281032022099544668820939992915775000411460822583390469354467464151097042389477262162891409190916405604787843894369938049057983906262716256687190956870738370355748351912195700694742604503696423042590850401414043542291904951743672486268122298078039318105546017502055050798935748843704214441758569986199450415588707829238138162585362934950185323950340449157945181126174567164388778113425718211840059592338082083672129189244142097018109635542117708265777848847940457014806694107681803028978841990854580857249469596030988282564697644832370692948223161657762104608391109423875768676884889761708996639067405537319213947253810841124744271375257233231550549389724348690287202456499334803541054589091258490372170554331754229193804125700947512526225689611711317896030740787788382075919373947382692147689239188531477171991898852567471965486249609006060631280253161823880696485952034472044654807363256969189517789417541340738933571079078104159535694754062591502267772984285866686576731332666084015341075381687694101340644348842991712444838724772622691876590436392099195991453774823036578711897988375645559177764483753636339580414204683632193008497816024483150039433072363405622574866268042791256198841782144470173075057615352798410497746595925475121216214454147209906225912300050579052255047790024193443489519502651453549477754771856208352016400280928403416052569159189103848240145515126695030043122243757398109252504488202028664768271365116867197136780458626940569975093464860449922355547180698546078273862655734143654846238052742806568378076067546729910917064554910112609278646581746738832782952794801186953513560100459416936163090176015970902294857927165685134584069678931816232415315130946358287813401374672353441191093944340114005936318204215196374245249426334569347296470084626625523007661077834055239511009785046874660285324100941253489207404501644495966622599337145519731982066915482773211889617548873776639901342947092063498786617100919487850565813512265903439777147519728366825408388304245254932729529872005303690904584266823191272672158345273959227981726688391280568066047791051216353092582845997225515333198401529570869148955344562730186106308306016048661373117907965701785209177206737810904351351899004034221445092609133622707948123339774217328939774725105375211285783532924432754015083205620226770250428694967237001639332264512384960418321200597456627611726196112796666081858444831717721802884034167595773575355980648007049094669139704672670839061225695874314162816398937406419981784149530372761150459922576342973809358672585601934369972213602670687394686737792571765405608673916350006079853139209288321671142061293793727828913970233352379611248767790664958530217662744134952163953434175450166433999946025195620006077433751033694906108695249576141875434723717397024900000086570295951985155722212154664402698734441297657698134918930574122571469356626041963359774169566170926951442703777145317784651383278064732631214624332878849608272314815326523847525127436511654458549172365452589002684342846981900952938013025224262534758238825798606937672416666805310599131855959336005687784132008915482411192972251237973173378368088650931662684167691543232640514808456985014226227705623674246317048688789613317820992436106677352043665567691471857928040857261627964436314093034249767432995724819980287282144508314869290557720257478804250749042881345889034565681245240221462164366347895991190214074074537823514676648478824123506565959902665369343248509536601309473910243905146905927526598158325087149340139803374479079942143568406557059056160860024090683300323971140569967204856900583102143455563230096914368608224978177556589605063249852100259906173521208843343187630534919282042667835002639417629121073441096046741527283377626301829041418656727914939223299349439360768175759465300033201257651623865266280000301336673557321546406830463304960356885464339055347097935996742673244324830153051922497394389992437592974442647011407860987375823687222760341639627043716256862572728034159239364467595978656535066758990791248969419319843019119162708779743531220594991793033633031094320700838655049318757132175546992618160284405453428263574715576157834036947926411096979975183258042454820784458898646685857453901724140415132531894955700918563400299702131208608578144215808213846558404479989195438735624565080509910973428206537334330146588128876172643874073018714911047514624637368384133616063796598258061783881412604781952597367533607032834849370551398962632156906451229802210712008518519283729428418752534920329861764719313523274451809211452184958198559216032847339009435137513956302090112753514964099022324785041013125533352081836912177975429517300126202945032694971335619253755217652040512534360803029824532563966491721316357672070284984777038572488919329625004439015856306596813250384619134775489644954990625956296283502382948775840668419281194012972956887033086877658942920118073750738431055130483415730428426536755468198367011255178983909063346013188867447813776938304887665619424593821336458054123579646636805571412173357696095901610189392921945003544425864034852420699657575019071187045598654031284197884561854366083861119777761857847290952104892105221823686753206076627831885273045993013429176496731525233731903115379179804365523693614271186393384946039930023382860481946027904835110312412262493107490765704465245032415327273354705084503205615543884318457383039486154212959286885212931455224533640558354155138247378333177721519087332554185249729752806558874038403127760670265294754903033561013836544745255883114111240384535148579790650733332042367517269919633759339414729856370346281935706186674580781255263372992029203463221845583164938009715813815387050473518167550754086100306387980070601863191456094605814645476198028368863937445148536509616055163707597972536454408724650627784835451714880457775151835751777292623056059141805685944791704866726261036541088188537538037969472459795180444780375428411571011896730863771613785603718272707082796047064286552379973111954260842284704156346770832387895071758599434323478768055123826511800364438868816322723023619452659941466145709878601033409172511891161593616004892105060096194795384939460965296486099396105924290365585550222425673339477667064630603199566871338500270650321189871890840864501881230578443611574821204850274049628228895478451744160467441507640983771572819948775535107119706031250850869451445411676138232886774270343183569678209145433095849798125800847102436175512293787311970517490320354688385676424180977728129939775875154335142283628706743840006897417330764645501963008112855439763592103113991309666945566255720964046229424286596833552361242493319607419609202351295962190506613576076855167517884388187684819811355749135317239757303616157544292632950431722863392571583851548769241801115004042119975914766311117200512641713992925139797489390100599370569916112261074886313666446339749338616850515117984752935304668926183027827903376478813375821781639465149410393052249298023985673083731117505643661692027360504332535994167010506327246264309352019825705641486158619803983820355736157518991679783876208439645605207125443157311680867334621034693648668557980458768669423225688185296650815696806012491874421081181068201580211088736126221840419880050359907071936235817405843874249899477754658511472714267775096409212176649610013424689358519861716138227924794924423035316397097797869429588681412226067035899709549794286411330131662338285929856287630795301279028253595171471290350948227937323111469087470221708634272163469726196412455165973718009032566206745485604405834180954506996235344817564307655478668575000229419484504000413464257633962272696036540166808865844348343586794298404072417741821407874181895787384521391806643965472499821647557155737700206336925450030692871207591115686950383310444226124892897087232612479648959969848980117471332550162054602253669858381209025636089068149261204411789365935885988511750766880798073530907592325166077647319040447432890014466959331294850248837659797781642574470350286106319221201657825286887287620647847566500691251293353931397254470481609914669682628476525459594822239888478470589763831390509694592803733355554936733599768935990902363127066387247876581357786880565188233694971079819503914888759062142976721612231172158720648250102926849163952828580219843960969734953302672809790621977506252830271631056639683655459817657617139460145218720672710304105259617525976053187065270954699940202218167239819127547579830229579754313176573428519394009325130083344109824130515141113882702497007801758999476485623988961519649843178290817583273927323363835525083398524100732570758190678436096564154194040796265793216616771151382304369635938271681053805250503178032743211465387522452294155051753857503256842907365980885210601486436464428180751734337723969029893535134515960079317488875343792704517756969538586045220183013545283768030244427700203740173788092800417487788530930994426734453411198160151082190906848525142579786134496172290964108868525384935435876602014789295924303858255189328745295481640428691795807848605987462257150518824910036653900860931080423375594067000695193212074195364797681087658638041778201272365585393423059580382106499680095021000613895851221355845634498817167041891343120192106332871546038360757882397304007915915563409482469098737285820375713511574919808859659537039800918084281385247356912951985574299946699875003752565830001662983327663094494755788539545992193035544883819840449167187089858701470712099548576555083534547903607537782170001588151278278410175920751562209374140245800181424963008390321015341658013826762090922435753128504192848259650166942468451308629167410238711130055666738218946324352583393570911567996112036346919485516338938539994913945191604426512566222503586349662469966971069412479879853382057505042059959475059517076822580449025574314007030934621839011024659731070379519230119066311181547479513558578566578683966077020078740766891424954524262260869449032667856196720401976427576920912915804834056420593145085634552342621738431238585829548686441228875889410050873667623552918046783922666859066615044419735002532824245710138131964816270513511544968605641345123375444663045002803080635459318198094263084710944744355630188195646148997191387144071741922109043406935819001722476362976315962571384330588454327721560565224244901759651657935571626414917833400110659770267313374259480191030747724146739918660171783543852110618093826582760365756454116585405553723925435413390521586522802624616370037457861014443055718555062310273061334050527155393731351560447392553953138652640848798254820420136048496523983107861928388338729928939505752461176905297432409414585753069574190424081369642221180703288404344672405864018687337784829749343127335420752298108259053281454817375608907895335866462896805559563103474831736375702102921623131723503777349887705062698334878728478144922318262106807194352727163280633649781980857882275373272298481602662166186433076548952467601539926061680694289774187012886892358909476330227344979501409391895972212360153394903779059774156860850067454454722439605942326161425145678065994370194681513252349405674142414175136369906853094856722425542876842675251990043112692100177943183298034911489178715580322363701772037756651199005186891336620170933795372368522828030879539147631424375305831327850289333002042705875911061355995380091327066971661185895447520122857813208511409802082124427952821529395212252224114816719078568209877604403092936157723589478328383216358237203399605865965768917742135565343480657419249341502844650420311891828678850080737035858667399238289961972813474166506748152943634268629305187183365126512247094901073838381680401138525936523070783962794589659635701389390077170914295801096112463881721692810853791467851412809258001007200595690093842090868327974593996052712327237655565390153382378564146894057615373564793496585416668204799403181989218501878733273669101955166554854834190259709361254690758806427278459170315998661253368458110417174080861505580713070338909003552053845903831634594257849951105072393067033621326840355191386909481157946408616262885613254702456734541528759362658386119242092983089538529021784454646700141279085244036646451734864291910977983557961775281729820851653182725598310679606152262353784579984267172858896432088871618637344172284945977029437453976682127401934699271999268775899584349838242512822142833330979775920850493386286976847897977674156149368044532542199308709519478555330898913229841628102755249701479509472055760322184054241492019994120584876895653568050487675421167718475488911776221451529716163594828362099972939974651414080758391902087137370874765285385562778397252828049709990769400239989108981090114107848355103747287629296631967164588044893867665148828697479867897637790390799826194127424364571379714420935043480028326657699023553007863635373049332428363668697575850759249097569595971143181254877310546012377265786217169457007093514127369603517341646274125076157802798086869037482660964696371547472043016860527057527337149650238720118429053841065989463596520541458049002761603642015965483267613107096265446118212592592425981477459873532507589972241130769997681573057723642667920016128453975720911045980423136412172215766238936301760509117519435424900058072721958975221021731486390342766814612548797138570370820130378552987461080980603929415077826502739815255440757652391933380768585822826378718206978443465047039178965489854957949892508051665084991740687736715743966452345267567854215274222071480817020786504046281665427595517572723262730674160959201598540697957665898190320943049472491358267603982139997110825721316327963142291126796252307068509889309609256490858741025726176965657133176388358231863550610274647932637709965148093304326759572047915363644541188244934411406042563382319238791676669949245398014411514904709337962917990364742508874554143298459412227117756659814184691723041198396936243228276079098353035262356120424503120991218272794529944325357742827846600355838083577127184623706702210759301075837598545178211849429111182936153457840087989764374561467726111632446919547692826549129671926879158748448778257397967951450429779330448553401156177309298604112618791288249902430862226347478708086606292047241801611104789303579092333436370157935009098940859256185740534558003382182879623258169058482222220456513809928412267965466542727053588175871496753381871080309890659935637815768388189418181122848808636748342013740180401881408167187680964510834159958597834835781941057292639069116904869309026223736696922573893505581247838605499329197572329468219992494300025921351735211682089660662120530944225908211036399044958873506454174255516551901117788523167997314744649640997857495682916168454029244254523162646321593759217118164566878961705244320168977573964792897608620561664616932542048140757780549160279663605671032374081364478354925953310427645930250876075638234161036854582627780242171156490930477742369198543080679466884545415684244683539621563024844716286191581904994963278573309412351799085468485221880592932659597239045082937001845637736495355782210465368401206495359526353129181441319277105029119742858221158121873764845661072385236369670045755725634832089653943311197533177158801899455984140951200875260020291725550572858396160484899629854071271803450079598827905552433629842110138860879089646722350276042227349181762799899297668416490010346369243575498012792002973366338326051504927675936136161498164317357522862093909385910481388659549301333111220314578653241203670101432204742158296781542248618180738694124231226445135068500515870576261551021135861970995226147866277261612645707431130450651906455822364357073431107792989856999081912465773723588006513468242730983399864671312511498829573523135291339744697053919948263128457117912656707164084872425890828508231826945337529969091804003106547919703646267991489066776441530538637416737142725642083494752161724726338415292174506487196584183699373363805632015492758740918881012955243230106464614619058228058944399672764579054030344189389571929410963121607500207603632423963980317543957791343752802860053791387511537380803912468490774722514230843163684976504681181654686341733073942645098772083231480252794467483342568759312212924567919807894337715880432284620044919876896543177632305885273933270632072144441172211930012725331410886205387821496860894978972393687092071941161045377820803655215959210840283437702731978784432815297090872005873576890720257581372677654878966453882295108408210157709921626759766014213088975248409069818682482984751038139119385098174810156991566400949564771079698303616268271752086319392162102833502853378457167424036178166295787812476904382469340553733393812500362815737027522061639010785157855330815335322545033061581601573166049863652180049095263465683312099502404204293156001479681892043427689154637980770779127298984529698263859284492221840109829892891671744154212579065172467728224409499911804100846922358312372678736646510185728069808521600278493955239240483199276940745392804944486937248896273840212447261284506869947466220025556597459268966960529395516866436467212462700938396312640890322315261928127575780623269692051007578478849026308614974051648218122898424511904196042482224504825736315301562281433532735376299534180993316521173350606289169192834301536557828950802741536930211848232399942632917280186807936196725469352938665399564037680967224662091876591190872272167407062102172526620504671640261328425755740597228207061841184431276630852960912545074357226937054682535494405967387173752883754264259606518170407286348374905385297605600515227292428910627760203106183415915795807355148713220684737771894448763122574007286449069663809129523503272704303238634954356223526269847867933145926938208239045854560898269618763720273375220904219878019934274191775759735147176340285761281032518825766733468596267785354114930562246120222697207418944839356747201726339899235428323429711837386370656090287640351887199907584570826916116948347894830785019509161251213739562310918005222658337058208468124023611663376105673180708613959035755193741772470849797754458340180025880000011902295235420899372724870685932311754092790522971778182401019098766066967739257795429949241054052479289654726806368086029482631252069521707760651783966614664162479125159354364091075173688038340217898355228353061524487392655594204834676313346734855120247347853625570722438799725207621555143616280082971652701893818940127199378264204957160968518545648547941829743158834371347201879349953676921965108596754481810379927936831771344118819733662561699751841670482717692557296925935128725124421463679290519596811812859455976241413976458777896551327017537993269274847865501827055307147735143726865151906496636589886822892248147435552954281887385660264542237357456618939399346105914315083787415185394062162479925564520295123215540702927924411637383720675854693778485299782446466879192901073185417101776521772399331171248063519519833300772806460058799362877748535152960004068689588698722141041046752922217268417270792007895820310171681517334899071572236732464639112161385672021078223228637351736465734945474164641372900616137693685936965839416358871871534786601295011925642032420617814014229884646715269580585314574891009950275902055175354527645270018932582931649304767804736335943873193260621151138521392037691452484001384096543784153031675119603704043303745506878106674748987395519655184367241901739143004577061557981950116583248417047586455235703666395784804667337082133728329930078482722677800653384341402676610764580846388074868297380538915700139843958340147441284092246278500424293861026962776082672591454627561927095424289719511416661850965142277337798003463172005602477832957977290914440356707566246693137431049484297737026122560647292983822491134450979109903279082622564398047155885091993236372196566455776854655968337093749277767551536309078946599441944495421168812033956367717618896028408256671579698312077640922037569202797253257660967958615752718396359643207411851232135491262347475316479188546785252186184348081162281050161406038697554110846119846741988973317493682625669940591614233407546291341632991800080161782122285169870324577383981038362605572272472018259120209387258282490167829455625904973610590993708498980795800875428735763276253918792270376399447066731274330201029623117729382628701971949185536440670874091762780386109522869122939835495802386954863280166769807133536082003450803046948593920566414759357663746247525917636167068958913775366271468368675704408870694329977861325496279277143774287603132912051608889385593373956776026063427960773414205596126166692703553342915765705865340952496654297257350996506974361042015463821275285091834294425724705712434230100655441688318679498240735817755548473388246823528629138940133115943444855946037389064448021746837659126997080949846242363090136359894877916439858686883352432368372842406214376640012661997096508853078654182326767040560453094474422326130455513489848281095648892397925691884677380298662703935910858573310182635224302866247599737523950419172076167447327561816788278408956054973555037631151644655819472803725447200746076626884073122218892318974863332481295498396389307054196830987673502965309198762623754980042741443166893751978286969927513534263191901138420153633659969652073376498557405843409728410221904952983900905315961295078426974562743392598661046306066743602173397258619365757506241816841922022894621167011554209691993067643402946196516689517920517979167115581653549129088536552401755508166035683194814213577160251315233157000780433599274332121791869968150203208655664067090606127040723636324713234007984262372614076634351304744580313189690353922626904261405680626141166067040700883815281738284218989392721292862203038977935283471904589459507438484073161315520749502031461590108251185308124366902773384752139733667638691327291570331365071883951913327310854040239481734842429695865280507393058254625929390399478955719663439120978655458423560565041988153342462845630925869505807699218447381597401475468714657324943150974327656355514129244077306869495591547097351745588614081317565734981972432593947514366713497550411610099920556689880974877912551962300180348141220525698342843967626112509876862401610531961807380029194336167893328184896013956213414548039255186274416999690363133080235993029071510147340220365219971217309165070848456206822578332740137729124831562947992291242982944011031365336126872724005232198832727439105928458872495963912161698626322179522038496193094527711106606707269295510745997119486218773920505849438439835840533768529273668909889219662830066374287215120885208979089779371825861509753183031140687944405688062378470857221584888647948726822031501217094261633971892969931577372586479494416243388978469484360470516550344463839835833500078723069706539522296206073821368752379957861181571566679153037048818148281152698835564810107996212008758826623008017889720547755090650160267886546247770544526189821213965212773627879623937508459402964222339577442882243844753513128669287108178708562563964509417503149230464544170325993830293388944054865760148601782672828515809536544062104815268749389697566045148418398288465147436457199728880713255921195000776921335037277585218953497403493604602848149667235796357318954028647926342999655725695124411778890779292186972462655624600314576560954840656667406125230323148547200890303710424708461883714278513806939001485996488053335937550470880045624628812394440203847633587770897040714804244723223629328997227446339589486703092728785618290140108140665331961171399397775744518225760287023079317138403975074279416684377871687295828319519681631753647964914299420815324375719243395786666900643297512215938653606337173869453130497656889873672229809662796616707836120283914588714300360557943415887369506273423784471890988341022326010133090177668484975967331594712530079132868114377529997788349851068703541181936307958291850793908988395430579242851578711038777859389679534650964398087994152612832206672771553694799964947795242961139372813031632201418188575646242912364633264130889625068524659469682992326018860181254460192112839787311425513070082781686225013199072797993164487019489549332567380758574721757622653988280614182026029267664109883455850286153276738031346194088712769997598129584879514642883425527714940947593433014468847651749974650307513758285918681551110426280610114542656951460802755536417661118789791813064525278698510890033774011444571151996334154892740880264179259895332400257448238304713584380391953641768957147570133924415349343743126700877553786972254751637010852016256232932428747624406093646976857035586910872813029145722987945200745049719132030148215360155824453948446586898028982960284809253378343427254738053087096750582423775726456473034573157157520104308465390848937467119596398556311370450475806073998716684657935242718497101160824982087230837934552126967730974134850574390833670961361396348346466403849832708323022544952162079913488126060368695111897424090421195393352151537116251133271392043370186022093820635733109860851439566061843304377124969473698282974525617179941467102824925058200529541223711964061318426914431135720161207023771810490239654618201577327323945447103107744464501118094683115128455851579508006124902230326739649725676665900419499816689610387652266819121061943666722827954178253551655045446720966608906108584640627936990754004613869801809474179710632097958644795709369298082224945278107872469641302836736019681796894817983924750283343951376096183822052114551268307864988317721005486859006045089714143554103713760670517155999729443948269798877842109880152278710110758965875834150084908869821753273835919395235362676074880442926649692857353756305030536221255990606716723151397719550819485071629482113172888540666632422831648418159127328964964325722047348914170340504552557517977747366765867937624755947650984760423602615226561272915439182090887033121470677522404720137988017563964122456228980303471407218065965502976652524858575063518036052105020479456803898184938382341260526057322082672921174650580865607411380492352888553928129890582240051114786443727839850934267179682134488807519492978887786723759445391513837945291807036515975588598989695943485688765725745641439316360494974905411176620124952903088790279113929948014643919072067492122676646901340479420162073998568319574435065606571170964595137115329135552133687910354180305787625115329010630843013552073475741252391892092541015957828496491776806236008677689326149726014139823802501083206267574905733219536145174496369220040138039178322720298542259765776611389957282808132965059430154528260035488626425452880666679669473152895024876609073706948005265738911431643327705527486311371803549985169541659280560006463109216913421464320375263140494690193111747774618867250885812233488850806941878508552057722040397518574710551153454950951152641518016398192248958185938525662595149942814191544149146120035231474904022299930501053827919173894667293417466444855670946881218557436752000904056519841317049911982742061247703347061385583971383762833024948415789849843469862632236430502740840464230980808576970328437558446631943010958150648988345609944709625668469295797464381586723427836690841115400192594913731816896178579103532424668264835317283157183823529991926344985162708958491562908350027905224111649511001237594164042340822472694138239154265462994982957457933222334597545001306422120528264949611811080720543414324000006002718128020034035239199597280179702383076508083204610116375103506392046802072612285817363392920193084274636281431596329771382341255995216577898258336276290333036891253937891461120458065073886222765288807070813906130941493082064260246275945407734178708055343837124311591937406462480164726382007703310016325430083411462915823951365203031102403507927612877180209765458796961215020629777385571853415672483993873843967798064727682932100777718504893909608919906982035968545377389933856008126005435211312992215650172596737064032368539538259772517133722814223072876038114757326937682075635913069347906667651041100548737775678344616064719488435714873687514780238959760269245669916075427131173096200364032765339576119824339917603023421126053252546209067749102770621664173221238973635852204103992688130824670219710484044777656286660695230147318329740557252340097107247107611542328359838984593093167752283806543504847639150892173330128108252515417399739067152196063505198504804426614912873450133888229833745265652621805860789267080991152160199349916436687708046224334280542841172575663020504093649693856385355425376940739601347116131858179250304328486031022499425991626511485356486512589644610807396719263054053657365597143456087019983734114944520860073325802772651479927803315697955796618265621292795601455674462073050766034741832024559924408445846418083644205264443999584624058373141122364070903457063134636379971629030284116156916996600629808853862481464440011241835939235186824098886285577187752419068357234270111713023390224862462759777279824346638204907951156960769245795127060823840174789000225417968645248965064496244081634374829717150725812798328295301237898149110721215241444949958643873548719241105284553983561581680134844411434449126615098301374022198666839396595133389548818113833360121753997915966505128263736770486505672438833954189142849478587563727349876509643132702069158856351389907008693471635505099233217013657173998805319725551977797905927538116496439036668935108918129797070519261780808758876695256397283956981408780677266224584168002919077365342871168354959449658831352657704639500783050228568031724440877548528496233059026972325228532479221178742593754950657054542557796118302797686862330702028943122388458014263020055691857118626425612488536931289676554977741915567949656802382475781675782462088060814875509050401035654908518499013755406172126215136797018430010156841455981628640615945228517805037416356537310219514456114733229251538735731119619442193371304945285364796440889043010014609531605033552932461501575135862188500826970113834830170908600983516959311943084725859592471195246299476147650973362433851583549386840892011239107173388353997359706646678069779802319778649907540894611478782963499743982700037280236812317215216771811635202716480498791972853084630585734420573646305278171554986083385375218558634964725300509986458574423876290861341941419702268464834543733808935286349762848739795170672348737584944455902606448718764637299016442236475015662107058947769748763908247697212284267474871083629212346183687818067121228719713865153547382622821899084282738006671777269965018349700440399856616154229473215927348356529000957274087725435427928471548852441522545608196716180892506162983397194800569783436253030287265600068207948280101674602511479675625149062500369411501841007767878873484861930757980804911670871487909168389361361194538590320124732293175650304556616761509869929074248637632852178961535743210883378099991289651183473947136057509697742613439585587411761709084478542659917517833244318685824085017826456121835378481917385213435506599348883409647344774612112040957900789327401415097729687888769134041345473710307065020475473141517847951524590963536557026513648343539689860781016785247534884616310353977613809137603553704421944643972987006793634495148546803310166292724182879183220498749101204628292720998378222533358707571644550011841213328775928489264853032797234940340381178972951166640852551916937179521093984535498692807558191853973382775234471179474414401020837107044596605483884323823762692832222590987010725805199468065269839719770124318141458882487608862380885128569423738728290209361166257180706897001905177209681915322759753867641607896364108491720931458921852347366506459000322972904395426429424045986238518000313090141711741118359457922182568410741265326607706806733158498822175634775269580680125411321761166021289204369676939027775047567298156477784245812170688824931907379288078917482643087492527072375522753595238230699538751925260482268058290244223117522647938449669428815068428313397720101757992633785948790254290771859694112816386837707986584674165811320061760528568123165935988466481269794635132656202648468877727823442503549787241277459434596270327345233673963685036475265548382425593838295812294322554987121614201972299065436990395279169014043761891564788188853259489775176784226428539494723098321021171898145750042244601321358277748476873544702545501773923022887022168628483482097655401744533980961664749870314066461311384652434604436951331307198151446295440822758871695522058284729286021760049189645508588488088745030284859236264256117675022665461130357070684698848869012931734711078889233899698464999407971374196970072079993132414848655727621036435669395154676982010776978236671040587884074822937390350083252217402333255866063119252157900607883877324822021559744293255254826989809603086594693173602726985516261809105556306634359277352693869963423261712806835790215703741629729642656165921088760544257259242834212230583767092403774239232411048566811120891407346151022350340642450851318972381490112410430711214845173156467371489046247483304187285113227153363146984503002423055249763955963693728772859624398469908713514721062887887042967338521776812284349975889079177520477492442951734654884948019873171305525723465909716397879749781606747221363477191546886025112454404602116814333467616487130672095246642225894174103823871067172846605113041805186018765138121382604432631590956765808917726930177180525022144741953875639626204315791946489494849254446869159764242488104575375308957428530331701094614966716070142980355657592260324250751963486988961175015860312061655345179348736602951253988296153290602235420900791629108420094983613485775308309137961314154801657933201032192559464401174717755277287319727443116896514169946283932851323313459062373413420019071482921325500262480925218934672984351293962497830858007687162120703659056770301362804965398087994589133224900187310955985747351561472575638767521133150918197031841982080973355577951412971511985522827172326475855764515167677890499280674969407693885331398534858475514546343968889152512844554862111742587290417841460213893065938801889133900112320408728613045526192179020521352032956489181058012095722728467783065570480943650954325109681896153100496581078789651184505792177850945439749903704402703137796523382279363203077270106329698555697256242147338458311742271910178656223198683144041561201271128548807635991245552839264740607930009805669156249731089958698568476841975801422230117687469348317833529753717146353351386337753354928260705218985372117399152139388861685192792356424424694121612473727184670030234821225336858427498777118310683122494272554638209758049787114202126628929437698093610680071777770361694618348805460254055726268374948615881673679374539698378227881378875961151644231651478658657176189175517004751885113894617914629230181958656142469234489176212853587315236187083535666966909136875062943368527457456303626299414220339297223499909417329123514446958473350867926359105250130987599802008087558770156853046054453262665152651330901899137781424656743984467879718768534124972218511440821651309159913835601416875257213488903768687930515445982348308435553090706534322340469531082322196399367942137848957213601070517923751619428748697983839034962036172772509924572141598791532291358537527032647298858443227835757611159881345428465682756290030238724506696911538810361391648385401524326501078568525187914869884036460361624164506021637638306038736456705440959095322931493984205867493568978392453182026859721095037781864037748729230925921051933855302762278513081850410998917077697449798702373154422857099818717620787476659604997540361455645149588366116724793502832752591084252628900953229556176731167832161244174152743541107229819231953598400890614761464357551521343922640597826471572311222894410167751416313298322691455604674760489458225033228641023266654671041250148102265233471537774512596759192038340433220493359120044561063927979146030683960137287627815901539392144010539366361494778465855470350888157468336765720313648720493549589505119684377449387835692408638293301927648047976478386894607812134285867292637836565212312485817828444435277196834237994171657103659056017610508140405674605829812930198754900766527470184322395989719256198331899755680418384950374850476509796076848568548280021816878589829912325002856819668640354481827360532731450542610911212903248778468431538408941741293470035960095549162929215066034342825537390973676529642030665432185107827250769840632941068508755747550041048361667553087054930509187707087242923055248217823831123623204532326262207421563769223743028611884011847135451160247899073199857453092677019013504279316520558716359141587254604699077962248453089027533908409823920071454067835774993143953445697886981420481533796495235398637500605569939099527987744910863504500874582599835586046429008557455747285851125387036599009965253504449760966710467024877132827252952343964672229698017122781854437865369585438458952777895867749530453751577078711369846738270956897176882279787223821543019815019920143731040848156099774055325445276614151531541552624063822485264517319495911699255158174767857880777947050993800449784468050534397153446850375578265702536555657781227811451586955965727221584179065150871553653845463732149302720358255389117330158787574348475578398860736935373466864562603003240778699255059414224358750222806439810978789530223530200016184430999653930661094083864040518375212232702216848348936504419297953177490393936268276909945579923364273803410623555327362264399184636639667055382576421711425141303001797720526782000777912315707445077709842816050177705746118572459683423576774499800362900942546484903716919254759188664770717542786257413566921996522479454021060689132405235126572896754026063230396166737132313351470764300876307654805471789592951292385122285376081835264867326206181379503461459686695775276726082318027444408407504116922861592648718203071865944732081752543132987176914722996280564292788570647502807306750124414845946847630438983269275648934567553079322626131243873224509233667839246274712636365979959333972750913916756879825841536235491412154632333694581099600717893600984860328419796196252974723522611718629458202068377372495705996368108921273015867881420003621360142078428010590388538872112789819560466479567985670481725841524115315023707585120726635740945961498837426135068494526432720214027184678136721116600378452939966117561158868926302384618199343813732330377930136169238170365403282612352289227439872711306539724396495639610023212755164018260775267111331735977151754388668178103506305407732275102827395814639283855970570252557421977294397444401236645803981182945240199716812142542603238709951078410057760602667168699730292966020980218784823975705589133605650724800504128782576628221754402615305328587767090607558585233932832724658146009098196873972374079126876230529598499360633573999046561935099744656170044754333363823609966597893098334463305408402293555868289329975286111656748828584901291848581019872145762036765848097054940111563758132408488563225269705035767471640095603412567833995471345210968241253448378442807948082366846815749477199779405799398495354944022642868470342282202054558375839025427384027997960748880404541475789881784580711776480581406476872726814310828945504353683954097174457230785999679054109100763163798080055862860033822937031890195646663004750825122805496599155597197387976396863181886948755618346189452190687192799194156387601623171910236124587063682028974024337338486887142224665864013507029805881139259077713131003717915316846297685411411620993226999662544767513754989713788268764371815791532704891935629913408337206003528378002225734726196508725744900365660368928938459072710065122966715007533862355830859148953126434271618661092728076506955376729974615415051693490047542749440642817639354864735405667009151265666034847212607712625431292460463131111438285442388782148903153617642508772245610429211987249044086374942775750034293170556454627660268777469332031704891931706228866706784892892596731870962337537968390934946849904755288191684089693999952223062418656363175958528639834745993512639927834737321895665780282501010551922053000753713975111806183920981725422659950808909077908814453148533188780698100710914468614908578939538248617499058955628476574857594607518909509206605416862972187713759273671258219299322372201498552938881435277913299119139741223672981233092108073361285741638454312872268538961286025338189063089408502605751807963062898286586504888369691280704730050633745019285210118814476330633668532553899867447660860725085683541584918449306526783092730083074717761670028025441358510434357525527070818141759177039588280213392102944896174891228510694120363977693311872828192190185647968477853561033533156041305294756679692101648544528047344770015216493828605515487031911591537962592610486934771994035804420109911212459346480904644388797055814883338909494233268593479166613039672791603135109668786828368515804962413267642201890056578589208175569638595400956496709592169846883422279223135934564448782837136279903164044344592241310221987417753170242880489742563260503288817620415515223747001909633742193324374984509871409758042829994326623394738746851272018584014985596874380538446141337387688176613775419611745410976227784033010044905293028766947072774102949503671197568788323704793403287097795301997303868601069804331807294589081567653777160699318849039883266017092158227392741594215202685650989683194475652136490966762410842731050685948814892012405830659270621470559220152175389737827652869237540717365253474063548819620015083383849587190939497619866101627480081365855367960605832061786580756928725598529939230761395367436403949989938979653613792989062957305113095882325612291279603220537215565667613748347348413948186421325800137800158516608974975339256894874155391219762942766625277978322413951089400330770174785585839903906523390418471835299297503555076979533578973507076614437494546934890309977990430448838942879233225550442685948980208979886177301092120382794489144526488322374976308482578605176556824043637518211322699299571093453149133596776411618534831764083137555702778454656309639322463810246793087395070601991780981353346774335696901299712950843031329843434164557652726534118102366525181483234138203850895358743425282475921235670813636608111361430630597243787065746584123291731632831336761308411885990147133384115254153419318516316695536755119692581344671619291783897374249472307236191369836908964803498596238243350890753914305374315882102009501497363517216673186113426975721806267743170613398918868282516854322001554898685886175768546864943336130152979099724559246994677125728173869494162088049395679902899061581362175720019463800409046035161953736809219176815924380562260180907015043503754709443989561928602818389502863825788066372594242859213245596507284769513704343459450689921634017235245573861382239163841371513246298790081539774606469209968071543020968018488046112457235928246798698047808926217037369674350054106965455757983705674339035181583559636236707487604844629477527605273870694435656823871037343116554722990302443704308332784991853804705695867219454351210873661698010889786392842321695030218770136649938427470720839619199719433443651133797752166427792180557030206036430835056095311925694682252327866180690424967784031404941489472649796091572397044880802625676298497770348683301032569058715214231102948323105790118520538626507206497734412917818065437626711135557864301269075523188216963497915880211344845594936312559449628871366434800906037716128362935894894415071837803867224162474552799089426272185522726637236383742931981481562078300757627528890855810960991156996730298865684498814843163219979400228556805636180771896890199968202555667165969213764517242408213137566232706573415546697193955614338829638224214832468297375430219951729182107589513794737688382361874950828282231190588854347951384717626802950358837965286830492987985118687445140252871095205613636331773770938776892101261506373264661766655980526120982845293240987700455273275699783940306372351701206954239775345604939936539324028745964208884305466019603096091405881786529393743240386746282458134445832465909679435342492858702468937941323966304656845076019664480805645137534381381856992137801589335850748397611204699943470591227436161428166410267635473773967868615643930239336868123244116025441826746893159628356913176036395432656636060859605412183193703519436766415226438537970624217400678192874912284681499130376586697973641026329780681164411884397243882239867448947916020929236025776031780543999430398786566634692551101594642183920507834330537318268849618948925995736759294532793139021130165322432980197687688617953762886115120590446446398902059289398717679759330177942288997933173082678848195356984924241619999379641450105535517636136744967465415629429330496783135362088581987492988502804615613962424306594504162470360233271754081370017047071508591588350965707469212918585423260546754326021780438136341572983394644508929932457558773219826877394446290868041077591700315567949608475057585617724778684152354295402260988220197785495858726675031164726729484654472666989925753255563507131796219675397044217453062952985946789722745103230746517116832013679241483336404398126682667142398466203591889998653282137569165353624875133811476268667942761053193653626749541809261248299251062991800286542555387030891444775695398253989916510220356205897424118373811152940484787438734826993553644929519101238320272929295124109006105770814139606311338855879602193800622597948313687058741667364597877820023850933217271073253606163948789967575870439306704784299441454279164957483652513736192099740869680362310451331234325651801636364767598179944166564552491912380189758193148608527559674657298942947755479434390635655971145531786998189619033160187099972453067032060034071890403847390411435242807315134459283024250828807454361212695334228228568330743721744932191449530793775352419110878582852890508266595533053351344583033232195772069836237614372395856391851450753243099026796060458661860392327883083614014586145283891458335116747039679524493700113469688332171358860812850034556929930107522784519849757723244823812896607940392444461224732357730587258165178165456153233497671960505948874205557170686090260971924395808921300354456891688561031617784476894089431913009486761665789287360912671092299757501054893638913101342717823803339339857910836284166918155133380306115859522239367859396506194128834945695152258558822652164201781157211592852353926901014489329692713760625161233702468540996757200380494003895229368671383997153743254964258004346274497704823967305993382038652670515993668647129820492308298333201540618308019052068035487732936540301880709376067431398521465941932862041910689231599565520022907490265868375805385431459427468123588256070337620146218279616017421014938497339631609839475370813386566443136281647373862624687554445644776028486472015081096859599322193187973881934543078918729072870536408097673164712662168652924681798095355301832066636063244979197397723043037741326970338985978898994928223219222426037881314678385236435100994671258963647110298459821490306953140528496597413837648031425807830934695977368976178943246173603230781636264566836761337233531787009186573418012404394912079555733958929468578202977585926220268052932297889191575559256685123985760021727507386902613926623519085843642804727818376757113842690712658461851979685628270327427252633599630109720245546249219088263045860747871835263492085501959348385965961409238718309272121333896677145553000182485813659235864074634037765275907106262662522448399832613262614904353901151110779837195014278749135830752545053915192504922889414807888714959167861383624680043461966378016440474527162512967309999900654754771330626066688122183407401675464779043895689068923911965970272222190873831950904202946959636510176104281624475149882888596481892677457242757158094882663760444704562419237013683143654958248254889862033941804740326154900824979881641495541239956188472691657148659274612272099683293313268567589020749118686781210897260922735907649643381209746637105478765243128046079695010134957689805864234770346844947942206509605056995428478263035511166363872370576966505435108473247167945866138180058748394301850796393797742251025120654280977833572690661135060567119857632658382367487653381826142424077756539789839235743832008603869233463644010706208707054523087043312660802392893521936189409896420398614363542340969514676329810257781722023335808818321819637368226243580401320648590041030601817014301621710585520555104518645927090834461547149668049385269494333320784682111468670496330346123310500155785449552260761475212211726792840465680498885889904155655594940730197874141760655452341221505977459834220189779436555663056722802434109987584182648570003762868696909553579123144962192094957822990513981135340220854385696685439192456735786406414776333012916549246236394561925197853672710063472744365123982870820170951499283556798858308216676769718016337429822669651499186831752419353211332986798299602389669663816039636956564164238293592107636421524390360669769940220239312084563508584062752337197761152290537028527247336360325341004913130875080956852043726323441347865107191349276623004147391444343519693474872756653692928608023114281403944144218031079063045928351333972537902846124821878086496668882070925538682401886072698178364917748599010175744948794386778658834551561355609515966284777217476988696508187565511207271241605398748474889146234488258454364038553770648308261247768941565406202926322253475497926410985519834628400834058596378033268937465033867311027323311007709884209490812283723502897722827876335028802047397853559066490592096724106968124753151248315345318878601707048124869461037790349031550374805351036405064376317266481022689144817012990555773228976715247465504010255197301206611417062434089434200728049045566127150450452637744078270696234795332365673277979655681441380501108922524972548139809424866086086497649025659799393071816858898617344731196743633702859451070048009404780864648621178299152329589929157674046696806673556632111264110208303537610280069773542812600000072286996243947696078856406583808130214006212472158094207268231224905762969582002056744307813783452042033644731562541902322535569942703428005870904704216769757841799611317260131335188190975075311694537002757087661357023714937689106416014679789165063062956196128913241196414302806608193237248762375809785125469270874438842722453828014834922834038712401570046538480511727333633301594226615388664303714753352464773907616215477802252923851844429613570128497595767567158137091809653352907759735639602952736850606739108138619492285545345136763703315731305576107223172984435574403933503987653965325829507208593131855997637531495313807391927747753150196993465132583872118522326989715713129778557109127838839941033807070840397527584373787843674579520548812040241925966656683597078124697830981018702147249234950700715463191850195411148003953307210696446177333994923741273230661138221663626246929446769408225832322636063625976474176771115900096681461549398481414530625808925664342079533181329759680970993744686597493531259499732188593047290579451070114979624384375419408141136499694277788810692402742161016535473166872302958791467064404158232718857020794492485944142963567252806900625551231650078097465248215056463260067525370803945245288114436706514342981705697664828729855893153285548083841463108360449207124507386858832378750745399529659625491149287885147457691312889727007094143316732667134545570311985896751352683790116332064252479910673466609495095106778518196318661791562939487418763621794804608821851177377190777328107836782090765726671588424680519815004674957805827677585374694864797468428212172065318343462155154763744990779452217738336949993241970175399564739405985800840857452003225486449272748562453122960380655243872219993048754870728878844394243780282914575637088072933869737179167705757964820101316447181928415756002087206097618248960488924739123353371500965199583884965497063692625769064954191216286204547530907281932970751674769525628794361363533238821648415879686432302441126735433996108126113688283526485156149107805955945857525137539518154260328379364883875596411505541152816326298899422587082239843251554725548389968345983908821055561441537874855634208619403412645302704147718794034666367292859845823484665322237825589015151260848527019755483172447131620790142721745550587404007686200251992477314744112330119574201752821470481664919080635185214420014535580401645312100470889203493555304119445456286860385791789614032338209036460718958120048215347762977155813207789844444203207639447954607628882684339256485175972821129601300411868358813180782910696567364891055322895383799212788672266084300824535171688226840631047131078146271925042101803179929243134990457564146648838734187090216537082316946142628844571619500797868834476019838236598130313074546581254979481999142906440388011194971879063420188354224045874282429354330801542427885258996197347647011327652897387678576849568924035373161621759987240029112797569317747449329560978332138532474246537492681859867751799094493453338599750477880009921118876234239608190126127120575046326707122210669453978172144855298524897786975400970625028778760694029021640278507187876800312011749647842902966944993939922525596246466812909153108938099753150672724843159450334096138377320048322261500462493391716254589204406725932687654911009173232823087350546536135168985863006594320374531807826206383275116965635158120655088938429791595192005260979164802261652568145956963319732633638389850138515292361243228331917566915943052953744751658555362165085555940500587956625656085890281158423471908899808009617063112089328430894375088076878601003893001620623908826533497482791363386251056901826251094244070435809463101092963190002100253158121814521001414655125661956208280642453186538592743056164498276496723382167953607386845536516464859272157982189720934742120891936181839936566234152918184931887520388314388893402103246307207801940913705845674559264193571225287860118264074310827194343063020579008511973114644667913078049367235822350512389782063435429091633126567677214404289970638804573706191333106761514880288952192852155000219407065043686166065687077910033601897388228763908269494800473187891323986810000809010475176127226563216179269998951318941864623170948663287371313696668075134356669168939692512930245258241720304011370763524782236687408544688872287491492580877555865378482056483520074593787491903848849228344050266885002559690382196825755024989226937692758870693543300843083292697679146169940790199076506315157356291915939277371423490122648586275259841891174788895608979518539521016729964222478864193593766771338918477564582069796019017814452021836912273012818636479457441121336346592546216079675663940455395456993652182143669251581195951913854160632711567948190000207470779965678863837053427136121074655235265240335248235917093336723374648672227426067038659096328516501061043979571670580472739863544733607540789660744101520230954538227354625714584158737440003831567345187487963153318651735456598903157454337684085446222501857871475612799448213399759270756246626968203344830225214644935142460693624592382572222746714394372904919237813081467795934678484806038763546691456723289931246808082080084877026193681138152854136491367547842718223750938307297486347262355628672255156484444362856879020393939019219415659116627817486178421473925116896859934854429132302944176811982810544373055084372431334966773951085136531748761366873430174589735975081699307612462609626231627788757820821826456575730365233220915273272565185452499943953032682986684188291203250688036389231987445390511123690852770652408346478502439983363239201362390721579573791591968157151698741308572644157869851506062488585124284192164825688387276648629329303885834908674241600649125539137704115988473048492957179431977174864286026232268138440143275225236224408146927091820598653703489529997492587642158266025268979976722100466223515679286626861731298092563794561988453289959684462635532644401626327145538193632043199274515331633006855079524153593734672688618110185303339453069522878090657791931013053296497316296887709577092345336188586540938343022006155677612816305672161386557908378439020660004941110353839348570476748481615734755949445127887606792941668750543683664256644359438166449728680648826883467922718062485576143555682625311973489435351443158595786923399138303153110706951990300272111203410754670011243850167325430874083335070670684645069266857185332579231031194283080041414701593476100810502454952349117362838176234281725967977276014409808165344417261636977409166897049245976384565751030786412810201024470927685875868605602489558922896896999247887596433193244162597300134598758626920897273176230916052469235517385793147888393789390302670345252153090159408225707070924508898630422268492843404310236562256357803248637292461017460160887717671114757016648966464983618340617358859850360457992454517595083454407013761418647338132431922896223650231376566202684138124303756141695116042269934162241536655192961799943777724884035519735567069197013434329421599471622086045245185361216845889343091569769185585421264938607911304597787594414038224412829886236682768269034281648658524966151398790454227098536686485264836992605879302849379826160017298734009016828494218494466041517987466627230091598523732105432669991954024320537214529822144963845175467289044573002888510985446811797736462481162117377931670402499174453267405774366926520054239609478829764659561740013624224297130377831303110139413636789453780101726531033732774717575274768448276086277234350111583609984654671393846104639676278042371484919030079918229895971450786383149178805544740499733113429545947951041493304747789648933519075509673294692781184599572822486727743401512109946635669018254210811238211305286932307968457514163971128644414350217100301553502858117565544202251410949959979499105200106330030754604277430242022297729836871625067646545384781309817415126412074035302939030816188513253894028164223067573510602494734964515414918448883811070697087551103077403070824936747380460379476905631305900701509556108004747871317197336184924102967154649904750635477524817632236388004107633581380358907290135994376710008963605033964905683965948070259760182856312532182668410056836348599780685130012992988158583436262042083796153003448531426210305189201522083126153849865433857101287593893436759901084430222555364882603612315957182581103661831324237099118267473543904356960906529899309804206558955270977951734868693202090139553561052725555245490110657401717063197987039533567628316434588014740467433491024946945514441114439255685116978836776283357904094894065038592353582572914384585143101362292365614802511687625413116928633393525784947296625185256516457866688331240289697722710141391896574248431580905699291045715903604386058200320024299927961883994052626133273136413736676744988323858883440659995379243239881454915608251564475587019402982638643706969982313644606441693681666658802822600838066938251352633455355859732445841513460103224150546787952882751806030413756954723131548417410757749324162411925094973395094366572494125749295966559521138796558958542334965520315203762662879788054121066893387918917914017861103909007530192043840774568588550244924162039493878903841166226581515367564426661684722501290864800709990534307741370621309420346801061748594141273780939750233362307801883014489062685630886519512148647994052133632739317483881823957066311188106004619050441589970318288438618381799369947584629867961139049126997573865966992960197853532568990615292328075865317873232397390092171620874383899423969093712047590316634981095227319178503715369311071006418080323415798996999169669921095850147879138695659473316378939430595143588327291786014125540822233580831958921073189457341311589970341384984189046445559452319465465474316917279925733440470096039975612167181910343241497771999338603283783323027082264652216664345320887584147820708581166243845522247946965584739966947468542632423939806012343225188964409694927580312170573323093473168513760496444474286085798065969006416249882229016740589023868447271746902436911543048200591681756605362827244432978318617298866163286347212129345068650053947885519140025877957057016690736300924738280886002066178237567777991815786676929060956510041476734095319557651492445535494014759231778177198056611080784998307901789602180313133705111634471867715461613386521018722486600937897025772360947497616347037473784501904883872863722864900374915618646187627835788055477380560055906012789932560077435229305344359183779843348395403269765237043810788159130599907949573959599880940914886400128332652161822877883181986219443170100427651220196800959381638216901840999465310666674697889494771240232006951364724468849089524388563085865170914315583882662984323821462197180407422562057161782416108808673269112621311154137392139819933718404669325616067164737124975656581840541331783366213669427505166867909205127771099797674782036549136483233575146058080662355392883843116221703434780231551523261351482546347281391852476607553871467636022545537264894925077969376795740202348372863429648712918679846272709740393018181960120092127930572342004866221171475665901727635471404181693429798992370577136599734720349024946168706290311936630589524356377878630615177263501354101844981283815926790526585544410776952744259024695675910109101155115378241352260410612065330540451267302119400592046323549499818964482759125805406956721669879784383087089427952293847577664388642060639850846427066636382480568243337788067851595423065302310676523298446609824626257300215668578684101055357360644734509517908585655972302306106421586930661968220402568210384754449841539031639412292557664536439725295228152858261476254730635340139092110131130543190480711221193929224775281185006761823172034688496272767675607821574697549545751453578693582877526171480708070013640285231697889730253343380689109474042535660972796864927624559306624826729293392426836835595057933579903144549772911678196593890044063330359970916913920892330753492152957818975595775440673146570963020169712134579943205337755734186584717183299931928343472944633998654491667585246456979639014209062415703624872262604308725972178947905478054878459765872968136146863926360482079392013403884396859730601958091599598316726908042622749943639835297461472821262108808474863657368086645812056402443571354205743261412735228874572086614510587509155356227224981209563761270562403047535863007817698245693186268793159426287271255905824004458329436339547332842381124678392506135750730986104335863198370030962565081483608690916943644164822830202856680792343528316324438416050870300159424107468464924923136144660553434156257040916244671794954548959574745899636297370884659259085965591918526188475520404825646891171944093861632820683949368645761342286505620779699852766594933946707284145969169444298560240594201399932375982993891976986181833431811718183092428150943744333581682580502624052657313344186918044471386031849299868862764902912268643232040336788505541893760424674618619373872974950798707716698044285545399782924656593201202206314285429660351074726236762809449572446555138126139778993353938785542827743112403168318452513217515524142380354937720527032214744579848677841024871441217549628736770717329297520147445647642340633271557593661525625618006730839868148697427350067701616724705744735019496903826326064326996180262002301616896020281497875398650878341013867335029829661888957687171716093466447270220070469203478063955099365775866143752956148979740829800220628569926608965439985027169589791298841696444577440027437626323290011078386802652237592308189349048053658632972338341686142374648863486078914234051389632376104932549983578523195494264896618143489135077171029102003314452063590105316518320796184159289129429198510366132536710981850079648815464966515619833005613640981069613620121244725358418349289551197974670992242218988555228972067162378588351915954931677353844166275099715104953396014334806855674487308232448324482086327713710037715386374994349449401972381515803428285332741924985688483003951639936745691732378065507841901071525202698948289052526414876742106421391055640910554399231035035430997903506927265850053265199594080194979130434356245877340008697928314586768510167681859806205458728706075810538966388463233429262127036680908945385609651358321946136864154015011853163424416949526958980283876643896938348344464923982739212317500070162133992038346454023466285801397299125944555354839107824338462651059084988803434448419395214199719283660157479699738570419848388531896713629838586561659847822138811528474922457994522232736552960098646918007189485315004930604468664090819393943093387304184808680457753984766839690096334152290731613931346232406603499960880722177134370453750293781481177948627321241238578822612379751453858547334905711095068061256191506666186892685080748256772177990677507764873480561745601672962813959236383449470026192871053683005921803300895224752466368368740496339632344380323726971517970695366888341945349549964114961400738919842671665510716244219560570379167576094341339079622321210147960113936273602605633298742948271821713397557864998063571169347484327559628949163096543764588340594858910983796821101575827178582236753059159326513250454747569988025091590228691152203187720845191066785541854620766152869901334989509371691860609428273482989208915698127049236649690426371571331433962506447639755899008361290819451839129808775780102384151098899038602412751303099841927680221138161708574394475794012000642711626681390108690241888380748405225631931652561060915094875682467611760024718821896332176943801914280755791728809737872131786394773962158564450669073000959988439693784999589491616668705308312389593398089020534631868085974585707031619970496790448342945680533193800544699699184935372187199516209077308777508944493561674997113647841199723698388202624313469695862517819799117982392983638953973923358288607523835220717301575546309645181098862804070860482557045972577081807393830681682320766500135031100974436256201108967190799830704961169316978088507861980816828716396046182632771925275005079319465574158755881835478592943027570371325778489247956615131606869496138959009924511947384684438954423094106426320480272972798150190548226738934036380264604010086806797733205904278066488273016610365212360704038136731732549359450095588305793592453887166398932117315837177148759660051039994813219474325212146282297946360807173851746769007875643394454751583475896152024616913604073074883399716446408100896377335131771120948459269575015394327753250009108562192946532669194244442320862382350333179945115233281924368383787378206174484191272739433360905123484130244267209826038876225735366997658162591229864382995628788110259470856267358646106457655691633866629232751075609049083678401894347676905147911179301293593005341795402479022352298235592812435784537420398337292354986047568454046421242931658043482221798315030686777240657247902060447072427565795527059623001188097587769905292871699281357425540140633699477215814614297571062216274662513436937482235666491763184228117885560315151719401420619307876504672699167607542398314480208812210497885765819664883190560301510455111201817366816554251198403604042137084733407244880289466152163029103997305797405937534494477579633309907727322722194462924530483802921595690285091487461649096683908333286784437176818233712684741968949290741368940480494095245275437086249766183635798170825193914930121192524781990857959854586081149941956743383041409110196422093122981109767878933575315134827905370892209407682377598713471588538072241973000773723839217985868081604446726024858706665337314548236669076308276989722954886763247928885265047674782633060988233209467793639295585215458863060752709790197176541246664917394252636361328280333069703705263327569733719813161886157679737207959609616373045416594600761601283997277078609817529440650117944196804890019062793839436366721347976891132158355025579689861779494168600304557999911328595533692606366519980040462312194970259934894112059013054821334797171477205194196206296862036331674847765521443435967288327307112970639081318993242314828091279306217515778908445432349011758552145393312097248912642745220580370300442962221266948275350514982106442013759889296957088077467741570536993353891794620784697733702413813232803114496443357328985659268589563181507791577307045494621535987888660130771278288572838743020981733535517611383169419320468856281770023778082187474165450196781576204586562669525016400322854427167517462430683818279306274605682915087732622441009192703802920486263761087929393184259587449062765583726129418082597780791048647458032090446471825462988489498394127903113850699075797376451382480378697848470543533211517695705164508546847208429322876331653584322497976611627243209037213791229672420135443747080049526114883311662380452668888656146175306427794853660387431720200750951217748125909644699730202786348816273571189942889740098619339862650674450050225700863444059015812552364597344028420740049908980507856994552942564152322287937435424168508448775880068037089295711454170640053248059048833861932422129913010816361443613849065913006627226216402011638888033641946030513332983092081131900778893943512726248373182986771834918670353138537974511043828933242576591445553357386255313630350184096555017973196656194447976074548889713978546558194383163286548419129304448583283610808205082102680736661723372349741105132064191867565709266203385481880973034072539150678657960412035058639617028325019601140289566920861097875118239543762158604239813072590973155776136134265906509919842369448019289820666599743709471925906063936393167771547862257358904393384943271186222204066145386194591763608255858132608162358366518850500251306416542831669365378090227942822527699861231074198683442827659535152922658134906856463949757647530126007630154630028345316625638834620976407107320596870984258860541668527632084383022223592000900657949778824930921841174597390656246331094909752451861365385161387985764924448702266661429932215979977031784158694771996402124858349884206564139257310315041537331717172637837814483572586217712236799227264527782484581610473972464015647078856436686089665087254222965201776383715497650021292302165921160218403480971297162015085569837299814224511810097027870725417782247155910196535260509932861551675621181199299071934550693848912433715665705728987304213976865625949781647059040547563175707690992052575073295464835070509500329777172870241827736629036834980622985802675430544441969446708273004310262494500802286198872497193784533233606618147288501200298079295435701003760556666114909769255820325335833280852007527667772725745071773099034136338138677184928600343555230867353935897402327573924615000600823357755206392545238002677477879447080560561089936100519034849653083839445833138227666140504006520968704631668722506714828747936276899002305322689927216247898527605280011079654572729113952781626086573647176716732017609146800101765488143667258432757258141096710669753911449560880622393012979596592042113928651123530317057927221935973802528484466230895163126941669942755687285755850510063894606259192402717426188492204576771147435658821753864358410189363743092685284624910560693778622918513937127714187727697770612120488855213183130583592871826618256478676985966695257748909123495063567584752372847781550020801484447530415751464777898194787373321786650388379832716710704478605644870563436783748980190690717078218508195285459523138977709890505003490205932737062775204573576379848959973200920118965875483320009909386013275843624414760101794503445646367952671383162710663526715314191970841146506107602866679043565245694353615131080589884772825262464067990093145983169208560618909709374765061258593076169675095417349817695631419599400303883714556970330870936834680057153748374680701915862738630350073513757877754061657187090342444445447864220602908575417528995231874451933243269590383675539015991709919513754842667110689916944776058034956834614504220585148891945316946518945428244571541405409389413526237664401600030779468392381770368061090382214509584792666270574820432288893494062902772463766813512601735781449211568915438571716978507373894641022318134031606687886210933730563609071072263614861295650869432133480284932109502553427023392789421169254109628923357714403283044248792290959863849991285917044024994577115531376146230180069946964855986790942588268727064110885780978683755319571347659634207278201726558084898024632060017237262138433994501028671326825220723540763246936826694105023780610907994149834761075791921729972693189452051425924140343856092883229520255425289322914421749558617041071070127847970285406978145961610335207565610198699397921948391024733202907248802276274638436295554592254739994198776147253934931838711411909949506759051653543937030200709460273885678562980098045048055229098704845171937085398585231481769240432660516607075943310986203976838573209251499707358480887449430192818206064278557765854484663816220851911757564371191183332227441869063446031050097071995543977874140246859987112844413582237427186896855571448456323607883641676623926919756162752126860969720024423186331203900709337529832786034443797960250305142790084715061891622180594237718186377126308147862604678331497804737088039351336572720939602528278168940023671420412280490809524631523339253004057438551100958594549068865766107693801658476929834941400917468084460325373359380881111761056510266210037564933989042386220817342776527749804465695410153099477375591629936088916429096961059683819809630459572979549155658472725035450479310522113511305038697616130786874466705519340941520700105186797101524798993215142984646170414706025108358702262430587459885399359475255418157842435538636768377662840996883145663230592306972355614384903640688672927318638206299697967146242337587969543222836401230491544693124266165446890579530561359661266008256688688695226693801274636232146783589585537762334942291344964462649669503019755890924754195401500524298090951497921617358532462064335132879410182931687828677165294869851706962937924644644882201628845013681121301896099407815494053333350603480390877100433481752969891137985081513002604086430198096453171709450107852455865732201465111270195842310879705432400712728821324216689111414165906043131368582086955592512444968186262582039407046642235347072249021968591741393755176560393324796616131797624778746416704383500651115378270932684074203787014213076085520042683975801540855101874969580157357962757223315421592038671788403222238475292283321483095641872798872667618078871767121133522116964933249481122912771965863507578887339857161578811094759261232630014244280095379599560742920402187771971861928467486771187691543756259935456980617800834915939068495542134228259336716329998365024684958714367567670487754056515047930515694984281462032166613947981768525304372807917463787275362414551351519096233714886283363238576594614813976381060449035974793447902255592424718820003632873727830607042673098437710748604225624168093009099617258660021599438096437050653438491459998072069358713619259172985189258757213564313819428848879662070846870038548837057968513589636566045802813511210618118864152030166087835408748106347627146259042401859460985134856781385895038909147808605445138100935921075011110122853805432338254609954217973465362600975142666215951651662139649116843191960621463044053700790325442662335240013471716967615028896576880663125505078505723610553211576459827012758461285704191579588538812402976698267057769404898843828457235239615882127444460860349304561727293214127753015491369598051821290442311604118630421520936484580608381385555937545532082096236800216506375988929808445520348102253640369404073647669160616161227049578811589258922478457142481171394302829588835169797016320480039810131395337738352560879501003586072808263057493883571161500884915891223272959274789746527808703192452580581405128412869935394054141100653783200784683430571841643754535304186818314859427585336325422991840486002790129498012925208030164810456317860716295794025734951785078856217962123655667655055107733706577806785022801521717006616800909075248197686782769814151175723257577111204474839875097522745318018876005708981102568547272483079506309674910217955844524576349265350544848365316811323026905602591727633640592097465080908001736104021629676948210742176346682860332637424701211442229695240100959687175132409293231022090133046465509207064012290470941886724207838852976765299245564024680490239201474189828808547118804784854124268858346891798486612266799882775727348178938988876967185756231317695493050312456348428094527949532984794941649245208323075183392403592268659313754502950681208979972811528991391414083910388614484087859679549940776764942829409484383906776179744630673171380387679568615257317814769535631617927569647328517406010254118478433007906982383549001277627245032960571422552278992127339820094064437944633308582806153177642806643197502493451630100332186285723985559142489260661167148589429571143110168415940912935625224878399078773617917651791810792078335699864329976939921124600242514606148479530946234064900811868065251617851110360595309813391641974957312431577162237130977902756540302175916535250658069199227436596974950530698065223082989623906552058575987466405182894688055117913009679063887389376362261917918796895700544336611493677181404682112827672347684766261309063736140813015188461747531191764615034066608088558734457100280028421049448092471828027172032164867093525940481423745558856062793741196389862642184221086102816455706306822475030735400226498962959830320993541641930567294821765741759580119627974522695521262409190464802701564472888259526727298232297309868938390645661302338086900010460625634629633835963526271363853734089736041666955347068848670616457708478272121387644833333434287458942985628030167825304722275060281523749696724520384331995908777610965765904918075056035866587046883534203911006146666813187707127576890772200590846536334766798297594088222392106195640059458487506687170621970286523375028177102524042979777014889827593153404870534653064816217646868542634547438536678098998738503346127199735590307441720570397250896206324276276576891060447863409537839751267476465504128602865196698307915874783551777150588143939722691573760842648368587921959387666232500282071437629489375436513115691944903523884111086691772034367646257282798121255932900965988558939115317631567628247423253251633016659786173346320454199266926697014333401320395432338591481730237368402021235458319561016764381681573273235551945644727361483744153588672448565763078924998111507902246521854498371738676900300884458238019677316447616861845845454210238635675050193839513639614766571364618216656289607719446857231337460521210273855060502823358989118349961221287096042596953216186814508597659368438965773058789057302442470761624453559096222983304147668877569784611961992726791937345743315988741777980433799895499961513206641340216406481302189377651936605340895250748085468985190961328372937193791230966623579428111446487716451947480887835950998041090135850717259333481651927275225782863161093261808010205850138516766546023607309492292142243270434353476152732933467310005670584749465410856955310661656068803785678366405721044522769265295338534990990901127480986336719377455345626989704492178891786477358473008823437537233910964837407425183737421062827851965711670361208205919439839289557745946965297215923176673001089620973766663894048610782338650808619634137867507826465523929599194622651361111446301540538887266563568305739942908771765760152361885312080043125705864748683362252823544882300564189463369944583803197641833182016941538185399813108799518802671892475887455638142807489442686704549359431193299474224896537645825350529331778732637478055929701742771756002704459195203428499257482971855594466850473522307421363414740944740434411611093620934359571134426380650275129921713275439718219685066100371883642579685584024550448711796880285200940716435954893701074716821041032030519708854400422990331201059086529616146026008128871157324649395414753294601177075669280720540467862244821585834821664122972150060182899473394205969319600185633375961204479525435943884667166081612633857590500925895203146095524527497177732056430483385666030671429765296487046833168989769579062193390330363341899211463007567237210321438081900514133746893154025356430766443987650085200250608979333925461868957760043274672057597750770668707834144989364032480029657652487589580676390929372825186978091691551762012311528689686675309277795410731283349134498784800824001824497958179577678715590471493424159030595023433545410562595976259785169028087190501107742150104804922334153637877621135121486288134400647332806873980094432028747659128461367120725759284560365249845066821113582634667616160914522468754320073481308051875676028727857901696465284030463251726177312071382915000364765998226176683119561395485111856650023518340897648427525226653649569184067271184788733013064768899715355901557412087953392850375442071834668086491967995669228173285871898510393065371350698427949471263816275868817911664916530385058616443320928507416008979570861097110023534556497049954033521140315965091834483196694253063800297136492612423759970170268501215281064549773241707751448498040029997840967672193153931816281515564371266996890754193108908164605242275420845455037129992236574355801260150174732026205346985997841765082653273485192603083595606713632369580012053319116693825077780672281697531878804188575296736514892891836885047366442499316675863095632373667408201874086389939456358727673662887710258134521521054166896280096877517102417384402230400531618109051578894589113645048226667445522796816933047849067959259083641715451847181978756621174155981224793637977043777429914556573779921140041197786976547972204183378391521768302966126510982515991869264506011338187422134563472058169338297331658528004488776136267189461577529244863090437214784324434251489951836733133020687082582167029222785612267322670512732801660056459848861949378867586685434370014217430461765123483635976859303112262544396480192395445112919967178864607169168835647818492030581318998497330948240845379936530948721880717285593602280459932548160729728394764096248996597177947763675017223853173925407806627994092473806281030044950161379614957204121535031968058334685228561830708005201355396484793578443397963456885737179771805089127880159444935688333955930382790844281782279248669771018014665952204625599380896364186562898145543222948360914097684116545389625010273504734915425472423620738622391312632498746638079600642310259825952666128524724833772393590869015682284124178919765616834473454815449061573505186990422794862277689153218573993099240524852871582080712392620651743468687940814963201528635784013743375928020776848501177797674456461287825370198599665684484887144869590869922479443597990884420578691052465980153541780929394448487515437143255515607695756018418327179601117556146937738787233923277559870119299026412253915921090770344943383639000954345975530225863376621399514458604745811599046750152098038029546473979568618167293295461015377620882007035325987442887121517893891170974766305673896026474729884840864488940728714637061813694696273204038678455588988957636571123284224204675323436462346426226961330479266342529749807665969405405912303463417296348429777595997065627543691041215167532140177154557295002703144886559513840560949813113078786386242572396826717918165842223942376563659671622516127729211171028886537175254673552185228646106165898732339228558644798045345020042233751587383162879630329172374228395960007130023828984681164987462931594370210925445075870514790782118500232014836426652406805161424223621869972050082935887624331223996638327135213082259045362691621410588663140097443301418942932267965649271215702126092591084750222397449991904705756580319840663417567407695103241849700763152150375601541383823966913262513853166050907790135748307343199115983533961495680125310753138583232146217075550532377522968289669455420909573330929286411652143391740857376259239014153452815795060455100519509706796522435518418000420821389666972779301128514249734351011626584570759178363595654839515714799054650203599041285637562413029356303170862740099599320031225113284926181498311595678031718233724544536047058614925839736118395670138240098137337276952174287357766498894770581122870048901979378862247572874154361377705411846634428208860313354299579393057779270521524994294467195421670153436307915599349001614048088689015985568490465754838184215730598864796354424635547843453343739474557936018366897439056075062651531214783283721571852917755729329857730235391226465694625701435608796269019229959079572092201176123668629045076334701349882165293901968582544954757950901755376943217513225922348389733960241700623850109029257142288173887065652029801065250780123462522411540712890383773028075317734741414115121443251779851438842071417950223341427619226932586927653778287498852641176644518087186521424018779035798368629926840930057482782398559639311710405102018327601324623458011213301265970837293713925767059621748804715222146945100293153289423618933833682043625675324541845763827640731062033776437303087950269782872514581990803405041830660898615688203906990934252295052237158882090289689973736192566884194435169383098153192471095703567064174110471989821706106857874809990195109316630422598572341425021756468375424584586478918225785501922511761639878390425677442500546100253866405194819701505990778048849119231641777993877736777936914031265118180170931960175827293371614373073417858373389612130316417844906550913520841002770353087283692218280446273694084292026977328076177540845939061410668495322610267818471087399501018589735168322428574823096703782534521041304441877613175939854951251530196416098133774247485455473106205421563288104044771934326471471228751737775144299087374957980671257615572958498218582218296148848298215894574951816538184283051834659691252506524748341810769034412194391166973227301573870116137227860913646519564345410093771288398342755460884318101694021429280700325199097728369502683378612427718119521140851453797579033927642024639669294005436694674361603900386758907126322331709186861341287524506682122465860914048045001546786015082402549075903810136787709777374638428022270777852358229163098399715055080131624795975896373348283080867814698059674570363202826721496114250503936072246393179885657941425240712186758963064992873358250692348705848252142072652127852783131372595589819886322995726855382941912880685394512037959634954198409417219021967013686679560636042388140126982876435858985934962214704969578334153472221950263483209445283353620953785631021860007561058284204376403122821972019622303724506692583231698995241909466292349141031763470095405226614233437848961237641643733397647871273694360784461716064895469527930023287077036660369120707316652010676526177224014788282780588979924216207988960068667562797738921555850225689122197454231549598772924226523368322472764801984230275896742549883655850518148142790415614506520786217050268922951806505536349453610494738060390313502192839170511194950955301361388055729968995224178386652157614908247677649899597909621847303402815317894218111156578233045221153705957106356306769706280131024586622577861560178510509033428938891225319740151261607510209226658067080052621444909315528705081673674867683757089351473868369659590072279726503463284378533598028471896689331273476352799763371266244813644060703975272948334606464909093207021914122709937087960661452347633371432348607310859058374132847886085193531243671403313247418966917706075729231532341382101514462961478582150552280198431082372832129998361226021918207659780238436713781989767899773032813430787952103477545140374589231758549408686559219137515935835248184967397708804109085764390312579585960551771790650703838054274519884482038320064159883824896104164384965178609992421762030081196523440987681770829248721694782831421363287894571648691696316908708216339208807025675491097772940576576024665846013500008809337272982407904355386427631291811497727139884025268143957107271080120228328603384197847351809297812711231355161499018467030192248003227703726784477153654463824151119668853115013237987367000970405809750185480257592503700411795271031211057835745047009260729344402554668022424371612194777674341180180580676471220262620189366092626797627715265098504584965705859469690373852817025777254513215834078088922830412083786774424962468837992313421522563454350581727776169128867682905010706124213615384015084600327467929342189475936591554087872944173753595890876350445631206184508316546099098128684214314948587939737664333650563935201455676530880445311811998998941478456557269087491180545001062166754902534971041697401353216141376589552701890622099610052099033616541168539028698974928600683147794574814843997293613770417350227878318968846329633383688356497784119938980595482511452808823971765590035361176281923199354016752096984628980327511048987196990575043026000710118034708566715748332167987247296201850474028685079851441470106115754262734434990376522351223584938628953732341040503736002095914651476103477036621693210210073358594052672467711170670957374533725969347070744504882694296813940898933708679060219596505515040024505534477081801186486376715483544787813521369695178001170135975103988819408791313194882481328999823282441857358394193872281996456124892791385358381875838366983101075917884693521539882608994418578199551095321617575879331997246290419047687963734391645790412296042629834816735262805308811144927200358669701907430676632129848387878538324641068069983210979308185707078986291548953084580381015428997444167472917213264423438396356733682106988982083055170460668172682539590278544263022251424852756569259981464775429781322673062625113727746935560757982403325142514108505247394607478513097977645754485971983241317040859856977603303125904376669297232779207382034948766536463097407368518752641113427576603750167319272602625774563958024282091511621626924957878424505422395794910767194759193838127567715292098535275618763049422812236168322745485245203159694396687598500365196569406650342651968319544006553461054710241151067900387564727626653958253000735050537952680821971883601444239466178929688364839383522351745639101277092685099719986682732430528754811307653984864185837751968292007451783576327927283816892015710023092283249908800752675130832158965532281941455510415601014661823912247405951657984578535344188321816300791285841697494992633864978025921896195334695787580255142546171660027930294511936451663291687190161598255801320602098014233073716434420403546347709111219263840480581943397007490605941605478028593263764578544517629052623992516045842424781734380233441392435877744621712058231808855877338904766725712664487184044408251128958723481094525452248004789254197107457974412775719079978925660742306381857507899205124489644642367016578190832081422767235332613321681129466700433165662054287600796558138482112562383636307293254000473529118703665972840661581068946033862119407401279833521294391422733806918280067648911218066818761584966149804978946925208160690160763201537842477604511864324758664269039790672742439628916632611734857503127483617798278829589737075621218577509215663918009033242607626278222865293014430092697133591026131875856591782881401130677010280789356945729407430761969836751120471537290297115579091188534834927189196704320759779864884948572240538911053196868129219654388914306417997288403880072068203690800507572587517113854131877756048933781737359837834739358726081400674976292355017389758014426312204291566283377076688292127985573685558126592509632170986368152775072642138529044678614589106306434375692614465065590942090533294096302655657397962713446358778640893521625044351023055854617057619316983856786381401480134734063911500651533143011239724225965614962118193740130644026158732957675589426624186290369157133561210496632012200918009002103667899755486492388134328487885408579817527851531017250584018124763341348360511794533724337836466195038003913189131485429617528925794960117786702169177400000691890754996804502601188629204174747987242796976625055287462342665070163731741106887941063747386189663274735183455630992088888112648696865727865828290547843215820160647405489237640602376875108712808685810196784253624037585837685515721272384537044493614823633954258867292986618500931940113816174554123509063413587098505265516282669207240659862786123518193337427293290202539050195159942699438355058517614924120628211158249936561251153947601363888628144112924371316340245588921959186393864964029581013045330011468538963565215976607686278212610885371916125636978095799090094426806944970520945439697700453898216513871682245474991035821868555128889535806151996390728055614615393549207819059348414135409955974040104105470664896537420312425762789049672981917730272755166293286175009830680138594929924585379982765478791748949726729861796814142300217260280103240885506397113171127937439666366761235069136495213911569321250784987754290159133455565939416976179996027844781331358436622649903528535522876786044842464942364669866956971910962302637524192019448295675743221622888309617852804891432551976036888627134541226935819735467760609772373658237447095449096662467651577271223466487526355340088390509992198516015668482623698988674427679867330210674968055225683602933729172354436888934994413301575628369356468356872270374292575152955971660370063735444376333626020793119466853860675616528710943191653978633762266721876001154675034802248537381175190235746238215694225669323580010578049427454572985662101112683500296235054962571900538528548481420532713887151179858471648906910530229045175628789338280783178947891961970326151287405292436142761278940081336321029232816356704247900917577843025590926534642942042369951167068244449671059330343225876939310690541607484035020714295709874079244845855398690154787616399945586519359332653101105502500135183370754574854548178508384316887079857090907919294569576558768981131548378259854861715678949327418726545112989155539181964425858750325291747960264784453406332357560710374601791584149424669862012623564828020174720309633179166008116918201685632165504815508017482639809538332215395620662359360688012268452750137397075213886854019879172396760503795855530258580369196020552257558005649153933675151674754272936860588664293585102552350437336824262463585754663624903395271587406422488762276278590679955926379334393176334473517490955132358819558522981012353433474077644591277938257885176482895591622382864022272815397305584698441621782310447238438532094920805264839306401823466602371096445312467309791957997899170303985287365274486750825958260769437874278392006323512655689605227540653818188393791061655483315714462711511475784014028185894495646637128282884212645778320380058188997919421858930108744290178698321065680988863470989025377375580720764402612076845011144489856044199797511091405415164610514720145475496723086243547403540423839139983165961101096819385079552457692240421219500478493816270826337814220048419226707419744493899900005165614430324411687456589099072596139079448412254100360599888231106921378117748859031610890688714221013781324285502528553740179565383080182495871611268302608075838509860373050049766048418897659458183043197893521895336164902152855055676728056005962342358310846526013319157825987688183160761284478009591846120903346272756709318426656600518786406915618893313193915974581589765949925036834048301092200815508492743607850178080329793676790759495951589759765945350774830292564651962832349729875994015691536184318872793184379353031143856948616924116445170498187189583101610867349858553679228988992831545833602916601073406693849528196415596184659103034958852365371365163994117898916573326177179762674701591955825226739789350642746443060560111099595975321579868672486582835576901982413535076687648197027019254374390315970854995886922830188334854060982131515895278130626323841634206844020987507989134856823892621601494672884001171737342858619579857440239050152375023348364490576558923415960218588972673674118381151176623433399306012704693853973315045892326057974888718442281163641791020689990945300792486301307068665247813786311380224150596268563047604922181095594855639974849972408046714664720393826401498458314772418061960844241888844849754182393292201665063481442853045549882755114588075518639425394990801559969244112949536202924073566789480020076579965439458053162473643060274716819602341884689584922677965623228914469379846957935989440170100428117010993443369007330764671067410838451846661709395339683534777965753744070595969851939746306334094833514558154135439314447664518526455702612609049087902342082994001156645833744572114364255163511088234322620153453971127559707679894568083398420090671245832643887221438533462087905712755797744841642669719135818191884496724662050258704576142077592883788554216519555713793385298224282016121793985039750337466825031505071019535360508747278511144943445321848662839212604009749090200873502895519764888205771998387135298680053941714802001173873387022457596401550222232290329163070485887602752400521876350070767430587382625972407718716347627619686154324102409628752630371095579555598717400075928950898266354001212557603991831447439796481204438020792987304790132345255623018728383400126622271041108042094725879011343462010989486069545726797117864700109607310888466907287316908398075206051723390056099105379106457949758604351444274636389776207001063632652644589463944397986210761316115526742382908321644834573599275625304694850642973426184649068238106687338803412893572244699076596216446987949993280741139130386027558605818392500844737518150148775409998846327250048339768584601892524635327277874218431165685654630336804904321404666262773220899412418882662478246586803262612522075480481848083166289193600796679416552484745880868699519608321165541934838422425630403648708679717303515587084212796951127837700242878529698177863527204366078797443208062122305196313919365195158106437374279224215936196190167283203765901366634515543060749469174667142759432958924726111073706688453985387678471639094272187782637677166581367870053639580571935720432332329512443050444391899981658984256414156917251093193350328743422821966649552077237018778066061022495458069353233442240645327413584602389000564156457084730583204227690018056211016285668063230398248486615780871509839284038582740998854843973073192292918564642869456000743418899356829179558616200404262286771300883597953454833378249045989469054783301675740985850661038987222456448459504773296522107283525898165938209775125368133339462345816346983759177541706930743752268334068623686510475679550479314953977763738165774133928688789412741602107532968086164960174124620160175445623530359711066879348587810580107023571980171363658413114660889299857751958763075979368006684964143689411713875180507600184996084257412924908790756569398009303236549390259208356922201488321081200345508640507553219396875739367720057046559740925259872397429542967730423361057436715591541978943299432840973890196223588904905570282909949275194632828096861297306189153004480616767708426554331015753885794313824239253465658399996109177181765544863283464790204178936009081091769123866403271227208047744595884352960671865198053921838172030976238574111638887436872106279889931548512831878051027860111374434912037177467046943381306950216931237455318911232818199296679488058000290765300412201924853370516506370126325093287164817871321172981239719376810147772936005809497957408437701919477850881431667723511453459587823814180842067738265292434778998084499034092597439077855065737789176687406174757253260442417931898389376821115851217416051504527274966117885595068528266053567476653439015295790200094894855639220674333685428613817779305959267961827082088706829808612882954411960722264090431816854938894609760470783905557957013917341177373984888089602015367477740348962825001353447130460630441509006030094912635334636178490062399145990420036512105278924460417095005120989828568995886556696999435823273323440635798046311496915280401910762980523978242184536409112324683324329945514598000588470112301232582902427231856206069882010065364848542352889863422509948526536624313973935972997215101947035133095792204108380716261801016939200374849449663719282872054719501765745759690609960750092177606897399653919521023192552772576815088287103815772978922185514009538032260812457392992769275793823894867068115293415841465246392348871027244248904527329344803980057016456296743576945302709385306464141258454792761247929066832402437030756516897901367212785076195577405299178071849437796885854422975566582850384947802441003026667583971514414844269877707308501686491605262888015994130274338290289311967863568194673654204821367369059559166343325570161422821820646198770909720089792274316872905646974842093024821745183491853270531444791732673767007007078253357788576852710720041781942426605526531983558098513076827052360260558788411241286602005412018944497116690427531788977791374485463679036300745846004647468019033395909047974285394998314229947357272862008193060245898716187310851879599399422123635049588276913162228163367947714710092119302335025811909728284895077812959265137869352158616407333761733248392960943965598478342635690642439599163780963020966270409049026289279381464520491060426577036128795938696071837211584981741408496312727336464132692892686190873693202936107082091886872216587176921452996367237850828539110481398202033709237401926048007079547304346259485880428190220624817530426119651739007277465316853394737437025907888326901590986005723395040128265310244835157110784610937631901398318527886331356066183415645965250687264774032618800091504940768716770868979119567059319744821609866664678463410787178429889784639957543957657122415309058361543509540910120285290191643597498151403827853478845225359680223419186620955087432968458200494197367277478153289351431138700337283273299275458822144498736838008981990307597295228144581341759446603011700888341042246167624427774864185939246569369802038799334537419937203865966719412554258658423736689637364708299272927513379043384926655821914135050724687248476286757707848762798548675050395861170610823818186180575611044122734823732478615702828172316475623214799126191554281559252805862835246735331562183476620932164673341596308594216620344267427321858918145952309222614703233557967301348018525946613127039523659674883338600921366094201682806855504241013811252701416324942033232450149373675225546979037619346097076779189313026546345421990138114910515058268731743200071949826222541801468657160841531722080509238238717106810232832038740373269374188534667236895801333167063076341895056898765903592513533957339851127420276754437726207317911758853505601198305373303343104548447518770526289783446798333839262795217493031559593902369171549171821702124121838544604816015063087234897204717961882788375131712941126178248020865315922506184159524917693583418607572664805675983322434623511759651515447799775227710819878903308086727966191789846881041934854915426437825360582112603452809604527546378391039467944099755531245237107311103142389071170836429827985294146049570087856415251190699320401005929510509494078338378939210750164395536684892499714635487962447960513320189137918356146526693468249517654283462075383242927905232040352851617081419781853190687164637504165578742606371636691445830502396599415733263568069955615595706042652749497492138319466804881106472013921521174121739823101168676339631051495901495450989111693886155280583002307666694295037450366643811575742573975495403840015159057470018403899346738905366347796447411800856725632877541532564175634509781577536015862394750977141145251639386325219178113802520256564130038612306774364056471358655114716847115540655928533035149124745610029209998477098221611650909502945122758251669477830593399699114750010663569552210040655765534268946311499398241270254300564187738615443866841045052380138716068692509700717721302605372614190711631324443137721954343644430866952221104193837358264304001443139849173240566844007633792641726274347759820211874421484802316385111042800431301665091662752019829690383524987084697952610476257117386065504145756731571648241960012743880956434091565003064858939711573084704979616174930892186364791689760412572701960968332156340961131776181848320476798303480061697545409288875091127908139666689352892897896867057969382162383799498315009687201677343226362642046784076914924099806402784683729133597098479858118575708208746700535582206446184539212733089306010054868176086873037465253223273962366483670808092383138658116252688864413502234567342779768467464666058877991494184208449874026452709672565342553461705325446321831473831894198552739240525792577851300496838606548484643474567221396251317667781058258116702345939412727150825041213445086959415583842201411272688298223965499277795330373268520940468104488991614366146447369184697361975062917823495770980518736829529652339663607068851549801626422937851676737306013005260082803536528891611970086446451608993675884832486960875392759203110229618182387275133636139045102011990197336514333993879564462932962070447908287809406536097422206265675338730609710828527271915511534641237126943906273920503572553290741559716373582829204593114535863011145668386938508032934128089250267606614041078886457075233903303998408782779653666750525701276885485863020511265411034674375237790765135082971676129087773944750591813884754619178830051540550469975511318132509204239454890346204351489222951113650786619781778090752013840071932021299458652839100853007947977894789937382387222926146850384411310742403813490029436291197079772373095939459464418794614555219158660620377556923038667556308169520441042071176700281899567294778039984648042680477092356377885283163917752226287557782607292186397918906115945227426716267455880964063456409470867502302453640146042508355801789122515759670335241241640597348318665459308382859895487148207395660675183086689633764823672536658950354968921054933086534256368210764997076374957832910804353988749002630876467300572858017549748284322581768988830096438335841322139304745582926120457491904116541975617630420075266598813557438558855246316275979097897873783654960516701490372467933976635913107699271456806057527071213013620863645951992094616598495556465392741490895438261024855303492560230325839118081366788290595768477413822828392507651317489253704468350029903533385141199886518924695222342344754904644628166405402069798729299177010517152309855413070733376507844286036913572639738556691188198022832859385597395398782772725289238159930275381311960580840798188097784350902578099394555944689546751560766777445499552824735779399112232488179085539561659097343381947641710800110596625177519792596068216565596838935885267433001679641781173639434949379774767223835131430599039814184949166070196900341919433630482687998045778750932236147822660579022006633679360676135142466429598598155692119738420581659374548416707481319696005161250677198670042080405386585273023500714653745009779052537953797671618378889561960658927990737415975650774536341360798904337321636980751121470513947534603338347366016537933591453107581073193284144385846084042776287139995687176598726123806264387609023662155603782567174121065251643086569750363779511139956455067396100950461278427518951107330968081874221568644582913398947686732017351133905503269272750152762818234134177333836423806055730929336452576703947846697161743197946539425500461820424117480573878589300635196980080930792989848773807863257361267763898414876507571791885043539937629794374733865544583604404645166712188370729328553077579420923204544228620700549767206652223801064068761124978514245368312422301190939530119664535280400992353734410090202053497958438816823698537544440733514462264427354536304850500779150579474515196916484861908747471931089907533097397039313534163381943541849159336360261198054258450879240687232288527219417820045587380906239183437954335811143806844352445819342016029276062879964353009761385835277751340910053906539289487239845884939783903963993496856512346370718241830696596581284002121061683539937739295007585028566174125827775864197665900958643418589258867687482732690596014525441020109228239530272040806361143232812924777071399082362958137749111324001362818676724206369773459149452307688538777975246768033641257884973908687715489426915481632783427464689728747020267487662720501617572690940730997854104298131642733993895494319564833603133065931864317483558625762271503292683716717743029572933550801394998941634164975236449737810216998886553375209310735591936255490099533528046335146893881553357815556955570344404993560915779283648696701178391760001562923683073828941531085657004769933474938102754224718194518693151972716691747492407322802246238423913092816497354563265784445903449287124904765210179849771814499146197335060153609211521830296076075140708763333232440174536468957468891064774636350051689886566697378529280151379413535175345958173514900520345422710065921597205320909884976117046269194739807311860425592183421727531811899013587838676085706735040801344581009349894589537502667231494071837714177358915216856538966263959918672627597133309423786412584976177987842471775178641161131612217883329067101616592232844677497926882512084091762282243289886461887979083473850657449697004143449936228430390352592412055626351842111045743500121364800049240667124842377527266243561384605907448818949881382737681761788940198091347541961189105194991065412963645461927111909982559062805911521847828530809537560915220713899556599216607073055893085887884486073709756245440979895911694712522908062981981969713529503370451689420327358485544890862431820288669789733825332219702710089684551052292146074462217239555169926450464486655455611648451436250766620737848232693730469580596876577377132848559086531147138979510909412391524650347588091924190222233784907698319510138167374129914189869947641535221151361890162838249279514725959174254323449716007058599275420565881090400612209803298602959200478593613247793851279921407822711196911436216459038387162472750351886117004380431460360147152520844693405440911057577252022130157975702843675426123072813639977069338216883623054894004102692997637687786609728875273536436517652831507666696115676136496723180197202074157030901641340967199977388792523803486131809767749032878876932575924713420437391143927235917346337005927714317486375174667188695337920635389930842780876916853176937730435498406427462437943186440826404522028024311341114792951322524451866740874734466130576491426273493594372199943909176219353066054850817058843442165448936390365615090506535188349925207704897076169710650120808368911843379540076182536190612444674673845734988069004986522492251526546936203056702871930583261835934732326706408229446182412032497454022616296943111845247753027071125865390489042314340296407918914844014622004495363874091995637706500502132301965526100737792635014777488313306100084891119426136051956323863742885598482396343758817267975736847313819458097210749564461360556310008523408932088025979915254722363117484291027430683469533964781792123742331625657630226491634653421498797580982450722115409470622523260270669248936897608539654463673124337534723654937720156007074684353280561116537375587168638150629227711142198150994568281689016275992380546533846345255758293508313565301955518221101373371698957484208939991295137912159545641660310433045125934275585742365389362907999376198387991818328843823150420946201791618763997904000406892757932212787096950161481723940047816938102648050766955550264823091393761891290612608105462972270137566567762284887621887260151985292980304568370595922356708303205421208362160761124959196861682533245432985885067519619624065803609960666772042545811951022070477724756853619770502432920238368802298476761323269331715967780862093768249098405295236241428795417167355304614165486975712898960303287943444259176442148516516506766907173330712763566998017139408685782485789356370771125506804901139007940809063018130913561194343947520785192400378004608552202705621143402598285084003068614059212326238567631153312481329103744915418393956042477026996244921459262654201566634395595945728815957852788219885456716217393581751519927582433824296426546127021363415358698903295335841018165947270259832152132527315732328782860279561250710419543035373650318176775666355559516540141422551413629522636804542843367135450883589248330348658596957597124941536455484379608550044102415680792408510552016405131498811862438418787592568096408181320326373256293247958347503073928556274962178392775241726565020930747227250055483018856835012791620014606534142574767526493493982814595307031893983715676174511712716210773648856587575106558023081068604870552447900835843259446411367444537483003099086076190236741036550593496104796045025074333281293683929781448755919177656908585673570369377449628465326028368929516028893946687933841696075313245007186412965283399974909628932030548865560930432375909555014281550817272043026013871963997748123480313452568686709517685934597364908572145892033745864380065266022782005303268528993676015261617267280808947517972005176146542259403840755486902475667203192115521500816053295391656736061445949091092337293141093854092054311698850810277866849442024877876951394976349133184882510472882754831043653799959697695308943213036858019627043421999004742037900681614103367581193634417266447027105862818758610291772529422291243219157385644294707974960508299163360670413436192288033392012501878205451428169866972551749928633635665325642035087136936831913442703179198448421159836577438401250806529883978935755563597802347809497469597751046004811957914305637431358607417027364941653529248920169221577993805478450337142838015546732052184297682135082201293563187750206316976705136980841594022338765657964397801311113391992478347683960176501776607974855593144950928752659142504291010476416071559174674888019463854898815997254972938174225414068459504462605712550356626986779512872646140850244796102262258469002614883152744686298681130021557287391458431750554883812489392331983624007710946947812733449605176236122585624461122367512122000415459095604815821244780358129730370086956507563113907876196832278569286880436636567693390837036738936945523490943591221344526570201348781159431412466176423171413277507190362055822957350800643903803733750056239754738481627312210122606887599210663110409268377207913755181733570263053794620388420215372486434317580956441973721132350681073150000157324350279329418438333912401221276313889980140647926033623745062651341643554566172221827521613430161196155798825070635431508241990077014721133664516416354461352921497497548189437210882504935052075730256139776214419488839066079314571339866320549446268627784132434285390916081655021136782161531438661144747709262589529302396526249306178193300329744509904734794669338760669050262716093140855882370373231559175504759511123563298527963657072795411200300988363829385716228649073421450011471129329116465627437883357313657628684687682966564360715810304681078208142810775085304366511751992659357228141186914137517121738057738366901289697512364830404509393320379394487489138213277128808996748204527543659103000207794831700840647563865891493018559638888063848200068618583900470368360599716063082379953576814991787291577922008415243826644007238463396547539949005520037708401851350012930705176811845886008060001455768009473180691051518086432603810647693126988756150102419166478935500627123564622099770645304837941959942432361907921408851707267968511902541216434480083929286208798976625662414280492726905786094511531782503704947892113190003969135594490518253492219535252926004600784533000679766501220049365829641204930662393462575390070851584370971736148333230230203583840529164661897342348039352959494320501167694674742266647804044180797356721679233513359865402556222549781260007948774329957564885523462629166225349684997569701862935334928402859074600820572232163281222204133547329217512206561291082621098350055117282914339644736364565789612825670626850984896511920023178151645977464750315285266717980664424005949943187961369301510954292619706208067769177347900422894276644362044153658513698762355126030574436895625200089273441091020361556728358995766518820031378101562891633244966274620394570031744622119388934109355080228007710279859987810033210164021074150454026047101612001370895909891153989822394561343955067667215096643854534063680650658067275106774960364623814255199759172038555131701851128104794946278069788299888056425068308712117498445437009873941099007183823595918405812299928837659414922733700539173143268899348329999624572198281782870119762235185553679282550172611242957375445335836647435399663637591053856228332207858217473367597957049556103726986570705687204586613092419176379008194911675651276835527998986731517087464259971200279713110023870374026351922943644917021855459929373429699458732100626029674346205183676654806401939174804907113528696162977258280122598120452061431866914662335232184785150392210023525102294564155738455481375733601444406287642562614025701937206310425542408360536707269050153076762957339017514237855662199741708773437183450986776434520039262052257481246552561226098715058260591181462340379085583556338324718844899025195138210569079157092658217499290723304310051968427194642103366375938144654551411912854065832914538924043199253831227749537331058179294426225257292060332434921884706549494791979495490169986104585047405000800938896340491708135245935792984197053543568265051473575653240955764068502452228950752558315845825400935506834860866177217105037607200957430916583142079876606832096141742446788742716445148527304739525671932899027338948751147686926713396197266485594230512054135050800174996788037851775185291171818494836566583771425310326800017965535987833512177346699578384825809808765647961453437395769278212914017886688758415511301057835540588349923074755704834666072388098683362956097821903259898908000761054144841943782097428652714058755202531524680888003280942575692880269806603354137120960959905495257138736595054825397532325909319910753061963683940848103911074471167516242779263904718095339245320883538161720215942701424180149896242946008372240342063145933404460133733839699832112014190039174062478980968569487982806394976653050042409737599243968525628741340253257594496509770465752602942809038284643259634106895832475094373154350927598470897967565945046962031729239311906880173287907024536895602878556850798257888860373883006672461042620578665041648965607694030643340171876483083049690921830005288883386764337104593253007329017507237465968814476214859855405162709355529172401762908250342808012716802344847393706802482744853626089362328708551086313929558749375419248819976669927095923370502360873234627594173028838701445362490574943888894895974723780239381689924290890241660558544303518889496908961857677253172267229936621311603287692076101327350939084086749993236000059529576157581648116321630528624438734835106503794703822043219862385200496795179123641529211646393560560648204811142332417042434944445175732218154511629346656034728084274472593157347293999688525899083470524623545615127016989105604040853043008819436326678923104862268853031975390698045692621563168330198835658328820392117970272310388684948463111781826533878839831251865310994936296319296397346227585278095223246939456732728504057687072747485072895874811708974103321258419997690401361050126215027349880823926784066800881171656091827512715435750144570949895067326426137725573378155769075549391677481649122188348026537925975043361742036354193935771818150269465241358393098955428662891864691097878095821527091993166392132744531970311275905609794112507031848447686853105135159163329271063975119285961728850855545024282262371490261096403963612223243900792065377004516749047246777325356698109914040374122362365412035929463964272177616022209389519106896146855806534179092686723084926524540242196836892618080217619577142875958903506369399820150985530852463650270155881343970457546929423600533696843156643975514398691988582554995364932596761800239888058086309329265802269556550861587991563823680594370972539446391979279304024478562884497728517897937689312179515468967007685834672637942509662671765488015254854965736622365083973979611914003473673950598511825599276931626615762033420905600294781813202810817204068477899187951993435586625730281112319684764137867327545068916179823780180587339682175040861849666264427279951921269910975826891919341205532287266442172677704174848979806818754396677839926552114482187507907124073836691710397099600764654824785537265176668938303210060629608566448911289937641244050220365563698479640738603598765283290211811540345911078059819739902682951292488281536259213643989921349518401981135349123004186021057127346644401491721486673916592304224956694083378462156920567941388303452711367887316455764508997180461221594694232089275776188475889671057557398271142573448378226969579339004346226424351418944154419824606231759406120652921879515291402463733671227579803509062846531688132619937950958091323300328758797493286708904803997659195131409454495021262394879324868991895883720389274519709784532643226983888082209596030519845082944613259245913394579612769969637206300422254288334544249398720369889096388558855077276767207486693359080577780682569567663306790812343934323034333060627858834224355957324409520865556403910804758560731447789487988865050024315862989637566488318959445900131728009199605040406487332162069765510736096100444955132103460052896108418728688366959382527160414193187704746428835922627923260904792456347714254816438218381048029599658564848676489460678400934428556276877649570745526945416507988314038303147456737222878708452339083317084406231009154223382578604276064032718869158575345597268275224540835176471558511465331962682313379163243181358867208732901610210651488801359242619397119795920240361175094361080899886441829794603078397151732595257008160278008178521527851050191845926511538797014374157316560937086296645426231487776662027546150411900367996033036103843178870686851744447532111688267479092550584012494744495639749838299388278518796694248142263732217089492460571919372617671758602023027441225553448580223743104558828608887354390622420987753495244748139319454843630207913411716584882183407347879142028414509423996388718766560697130249087850380025769537456803079642358734078167379902207246988073877076652455247957440410115940343353496778735156509202136086999762366929724580373212027216374442412808224593242037728770543154760953540280392998266335872653564210213779373887561001974514135164556590721816071957298101626554228579575826743114103751051149889398758620163198823013206771757359968881298357422239343851255056574520558665890503165534891280735282093223450630350716509501925987676035089374161896560915586712409012460873740591904789676911212627801049543697424413156312054796596144258297770184341692532077542033879446573293402770074416867338019927494608341980454197119270335570076093511108772977538906013817268514244310383622319634145106427740257380248825235839981061137913453353976160388175832171021019220347748812907671821137651357728586293475714600973822646928986754839102528971936573262833526094894592852550558335772199879370974971735326527552134239297846918934986519876204927952463125191781554378682154962556136327133784850726528320334868421346604650466700819988803748069950504352221224735695658107394637085601186547089784079980453362509691179656239550762039054288317765048386558632918394214678616685653266291536521295799966977454350518216165240250771089641084797874221694830941438912694965189760361483571244691955632001480881277485242953950415342044043220846304057116286515153719877647183441351882432409007618378351789265477828131234265625764064551421006561233951760506791226008644646532156141049202693796046340459953791535795543341321390772371994484974614114061821143066704563553366821856299026208971007796319847750667490382635681657772703203761585424308850123637300427013843153783807757598889362117682381286706915459810004926528924001277403841309000462652617608689796573156225860382452422601829212838403596948887262411121695476958878496261540781799452611965369231661970751932707059825982669315729466018645987814066192173481581453940249106814514549337216522388992096565909984472971070552596739875006068702251701262424375655888527920728737346960262696794688885650410078599654352093352995620436956237520382941170359639973540318563814352899995149050203658072224695858244109007511835553489657073677767738304956005268021824861231597920537982588455257611008122385983728059316776997431419478366696228662491932049054605211188024005227477201307002463426243662512283701434291532783310133851922109987007794876911970832783952133910079324347224607850807801646741443862223856786808468851822040797357999508037766115234170874481700223927916338368365475110776699877324457586281640586164300038001614323025477045578835640359974575584076645650342398024811384524455700659093415588397492495634841000898035384874258439088665136396564751206213713688739216762527869097563858331507417103416313182830256880632031669015411260853288378843970468477516190375293212400060371948825953618071099502596328952629576120277215698285270909085136795008728895873518081312826982052038741931186887773746207268271200136576098384856513938397408233691988885096717737239416185568225732217725674541250108644339934536912477084540949529875411968666885705456033331886919245988629322183387630513552170416577541803617347503418088705859034245863733763372115318900827294100192128882678804915831165214158500003923027345125455342777762593288225352537814882443805727776922409583645631147645259294326011150960439127632856276153743080869730616367173730432429006227057888087967364242606314165873777010298829135882602746242762823135290713729289280047506548168997137795745309977929846164148022360800176106590302783234390814844632759495136874789247332710574335822804741237146504301142112131265184588359571223417503135259466869492940882171950932297672286936424503240830312868358817817864295816287936507509209679207905160268123728252098129914110441759273625640569103544360230567694875335610471848053854047093526838182910106686334037231857583784737443358736624844185278656909146872677539440798864419732246898766376510307560889633051182894849703933497141992501214051141985919536684955502966676681581556982868455995680033027523669779499180970676052296580888892666079817563313437005973825049038012458858890439382783030445338765804695510889990469464619389399485156338461434760439065746049820110118558584848099391922577558976576554101034598440988703867991660915856813098907997752554605459081428699376018298105729938440345363895765973301189640453518126814165413374465654503764314326272937618403504968147534287810439474569257166517972598879155786464540923785094027384360586350925101529662574152269312609064160998800880008538575285662695454168797097378754620451446148999715122259655357322023291573389578186234350018059194782700040945750981585520047951232955469788380055563398301592063950372874593369222754132169542373910471053157883090584966129897800062762603181471392102074137473692643973695278526515664057040183316670239908877254792343632554528265799221150504502923510614110959340738452337696752633926250197607303386094322934208937416078283455850155694435995167944956235443938727638578474443173800701573031291032336724236705827854649328267299128531161132349428260546351853947110488208833825235506251287036307175016220335324852284483098426286222880714807052374928357629050839782915242982613611860933805400990684907213066384594294758060246363485095070888634489416575049164770910716575850882944100567134393642647479966934080695261973005506485083281336741602420724524940007275833903853999002637969428720101413957968539204963740165345558312577821213422479201949940357836264979070283426299502024596135665794405454131809604782584755817712718889467427960329971568594241301012468945600946893554694010068511427337948205839600941878489109796879398117472076836196080861768634454507583083063286671893921845020427475805525275784479558475636634251529872456673867966544452774871329868206056294396570118500117614438624004045553674673322609607856145086262361730104405688959196929263875919960310067292834865012100661024641775483450654160228944311869073268260921343515653593684702814864560410562159950311357403523440167088650474866135128407007301661331142236449015978280341348640703415589630156830032974501650797688331840124660483905544434662810301428984642368069010731192857442483152640723825856239567885489233904800110852321726216802192857254685487981105794758941577847428771627572830780772904678813468638138438300021503078078985407882123014667337373138050101798566749440940964783791451582934344813473471338011946014534620178322831044901966536118191856400600063990751102546379708631148971704328927358304568285186536065528908211025821455259001314653894303717087566046043733432358952452532470687039714045694198956149421112324914849544834732516341973300725340254583276327548053520197245489933994741189252883966281006170806202203256663077886083813430115944157555297305518633672225359924711440291421290424815258650103344172788690022901297290360513863955355407733900369414978082321752213125536997626270594118294608333968989834593989201020113109555694767476909176148842300853906397845234022065430871131894644766340053620066574254726144391971779717091036412784815031263587494597818123168397320411819371262568334976707022361212160711383605660101259402172422185031777008588787619460669358213209042844983226032858403313155943483155899899220071331858729806168578492753729202109476620406476319038377956500076692425495119570414349097227233607515611683185802040379076818326249685177689769317411802979961100869300624975942235824183126767422440101218002278778999359716556200808632226544387012730191834448849406981553548660104260183249901959182661660616274547543211059709973143646313320044149604726850118870477990000702026113123174772659611398692493077421640850100099857208498492707873158077467938993865310007548747078591944718156394470252030155229449823244079210052053433077991608968108274632347860768870392408638725783996262477014681770085621302131025448038684172156839838978710244020564562250339730087965373305507361446245273003969435064569626493304703456859562365577704236726037880969326840972017247740232173747238092194106041441538177267959351302331356831224461998855486582294198152515399385471938223615632699775879017788046034010740398620682860019867694694516308576516107391308374324787216339142402720412724471740013624381405468737375420989611405306259182922585031889929003075417017883799369611194482203947913498893539337197324067772135619067876592522047653550506758116092413098568254699769462082715769818858160262080557999321810632059574797170570279552442380081026651843189884275116328965336500514190227106011637494722078833945386477829614278442043662503300467132297775864291587821235177478884373519852148424474693944178821012741182528006964054335480462670838204273546503174564573654587430652568785217893315188310505065995259358828729747887026794928862483860387804100423023860718789363449933586513314586217360036029881114183389662767177959705799957545588436619688383482115731949350359125997476225703927913339585814872306942248788867738730137049538109059356495573357296614313083642456127206016942875957882970140636909067778639514900373831893402511284672808696135240174914632311866861750570228325196574622514508963747741413051647840103463232052080921826638086381959545596652048163242842126716034677681181590307894399821741839350113551475638264055082183066660440456311488123782085093319562143269391778845122656153243002211539771865105002166740432466766586548145636299406769142986807861095687564102699461804852326579686377102527544114404277200587930603886885621680547876289979583811773461872819432171385410611196909010210816803509808757327501099112413982684429442347424356261836750186673222409794028979136873585787945151126286263640165543476783777159575226523704446623186190476150703970416788053116275195835197579502579357647150623530122693656774279152023023071215721627445802645265955862406654460312743629986508330060568955849089347788189472553256560298315578774421328713613900894011309027926839975575728469730920552141954462837347945045020893179160339480497753725151790531398972694267482840204057862957665270641833645847769667269934745303421588441193409932134414389153989516470219562604603168631868253937435160014191112502747677626688045527591829637646400034912669394553702422357863936908265966953310993300341184755201222472072666819794720698216601084425999518907881980102135163496736230384942741339189739648102110336065781148745101848198748791857948050813486732758046168349759741418762330649593950688295899860189900454437476700683499726860591224362361634548176968601307108593572085012694396868257259892253536076987276280555238808696865508215623907407603427543947515920047538107543580426957215555129388020758497757099366867824938363685712359563882618967309093063118254449056535784199677689911896762444484585457227580156787388866414754824878417034920830479468523800067487925270597865652988672109952078823895251185721011280460280775871197446128331655347367207398894550197739587641924411903468888663626140504351811969819813621138197384658754614733684003072203464744225110713176852278531050297873232592304563351362072142874638730254250953718449144792939487956270344595289081193043775288178223451568067564741529247493437139210549544405289889418906370824098642694380866602017661623309937914784368763097433303125398218084716647213621896797425179124811813398994747996332838812399052767897734155594025268170941845059812098324831309773124335745580961321467139249276951275082185539872788877463730218225286635460191291786648318260893578709228326356074878899169034506048091322237399397399140961499276229813940300952458184184713328028341287748449710204976707174654517986516754410483621428200202874497446114290796924045985726727693319317908429701580575604952538821040609846288664432287341485703256130993838042377925440400948768250040164814657326135339190964756198060373085432877687291816538933044340948822662194587165544567732550435929940700754736094529494365286598123771508415340523904806110115855729179228057224573046534486900381196194688760767292923802978387911943134264056890178949897595743621300781645601859862882193414104461927502380644372958287269720505897717181758268886328854873374069814742936657341298877059159135225325078039961826069080724938477700559384103625179159105899551252057616366457053824048360556655524434044979116331778433430245534785391778589691039065115943447571252486700587491700981900064086284020446145789911814662847993099681431195102689428544900081091597683725566284414676638354685762621137533507746743006603238404904746147006887410487488980931659359992327750788351073595776582854851006343737700059323847930579130626428052409358433644538757384623853853757485891202530656868836731280077852725256704080856937004615856411107534491095634780578392407035741670556014055209471590572688997521221952728076144166335622900839020127179825016277850068432305528188756370577796238036704500496738007185566491476720057221354191984372163436424976031916653986286489160290008823926233145999777119145362547848509197640905303702673211659374752064537873388230310276889724602803877721206652143758998777467161162943439857449363755937004584332392726369528665646570386068479109447754143212220884560696644749593984072918860392967578841337193485660721448901308574265790481552156934104018011862152126687855926197702566456234016113787853499706789808226632729148355600988101995676226477824694151306126764305332447630126177770707666492827249193440852482509944737287091277764812131801636136253666745160389525428216047538063544937382089548677200221391175885877618509813061897695678938098663258390501926087246860636868284518610271526369367320332594667435998597929786560638528974587325630581877436481614314414608587500553295896428251209426961992421307167342196679683637774174233002908813863829695662470301484045849313117693221220670367281053801134003424165952862761223949400993993539649484795349203485047040103036204512935645614277061809969701394439145212650500440147093558048126182081622749822840636331145404847972008446121079701505588019124783296226044623518979572401698935348876463816554955463262039420150872651843861146467605057129812077052067511901049062126673207703618063384272784240581757302184602746834892032670951294901065724414941136112765977977956028614441343408232643474597786016865482071560778556777433920368777802456056657151567142791083160645752923687329498842181671908902677975366328128315820607997150357212411208314642933578431382320199224462511600221032972195766932251653642826009646743840896390121187502268123323666548962964551083837752068888256560042618161848659607129049893857802303386349767119868251451749838279413973148670593229020402108155316703690224635785532926239945770071288189251592723318940538462560815944619726732915147122250105147212669270668482654415286260074373372019660677826095909786593391484493308843838873225203555653015743579237314307867886597964867698849224047702099552283857256680962228330966702711646061355355766092865569724856739483108016507374780634668614861986214836544334498482884484737157367227176875036100931794292341398218598044155764619789129121375987599481516161978738576985197742493366503564026595845165856151002565638516245515861383920663643241585515982203873748174120478298810383059419654379936905379719155998231577955648445779253456718836893015226833814351564914510008460569872231957977326078366455880865216851587087025793123382869601801185788961770399790446914482585024895309698967075682863855967263447420888159273366908126639130382418250823689659491745800387379338181814591893791925762715343758945801408924249929372573294327086561889789911164949879015989242529138027642368607953528835905736056433688951857190274952837040640945898233192516516512248800866337000847150656297386025712937403238230264622973748898384617688867383212706776656760456321064871780375781268059112246914308824914137698377750296628326021385304841459108461064184745808560040643185508606543150446477905917325795961563871907212783721952927069731985129770563231824514339470907281958843304997697936680526554327472297622647957480288646602836835418145629384117364220573400314791336845980748801878813655739106626329667715954931909701774846346942397629979466518217971376380249449174597082016311445421504596695862239601511886900624423303551368231932427326500365953693533140160225537196102774598345694308288131142980960461865596821806826046714622164921314362610077080143493248141008863027091985880202156492437126146149952357850315310306303531299815758238463526390806935124485916134862000472270534290608447157734498118652820091521602227818506315820313881332009706073460618839168857215299311020850936519716479276509859704597941244914303600758250054267452491790587082170680002715335771717903426733014100211885259669019752153671145485656674011061081779857142529238589841511740725688592802341366453814531591022364038805607194095078277659585050042197223769016291110664923311320452475840479017530615444543175327178495507168774136130731193362176928365068622806266655614748996650153609003341906033200016023686912069718982304306871019145767957092704147673004916433963459304634868959553642746948664260440650724185197120699563610235989565577023753779211309737825914679042141749182586413424043670982576991824930405811063486303890658592848793193556078393971612229512264859897314981558590779996004997003944526305854306066031412053377810164315355585951057498908038504727388937044469029012983368514951318928674593223043638920309924027795828393919828081792850939793252221275084627003722212903449908077382420705632398598393819159095854595102201244393615153648462951231166173790941446164000741150716336020317141873540163827401813700387723988301320102701152866456065572297244919871262751990181111287335296582303666546019016695142768079692932061501559692126780348455422190648164241896239094745471913316777706980969056233794316658794391789537058505634622884138910180135820305074769888312512703846180428726953269119498139841945616672143896910867576870553182576671140225282270024126354280391396840489791744477579403764440424716060392614498458224062122598099507583550677223667250694602549304674759116899856710171846114477970737421269911390495035026898147775302641573794319769845612300341283501760962705447209663714306629005922940178918134350821979448992601111820046836563659618040549661058292427099112115906143966826974664278219222936869639665354681637695564569960405168332652766545235565250078269630227450106334998274458890299252575263798914028513860924042262146454210031323373517522408778436308935373451057601538313892539077166096561661217761990991864613016565171591756634338687504242771468804039264831973966275499982627487200082719724370884143211955364290012303304619245443335628354406700138366003116916933124723032478294913811546242838545182231990647688176057438119599729343071940629039699823022592579623716275684232586088590222134787040753493657602426038989598710751844240808006430208343331797493131025156539321396097851012649335705551506831075656099680300567565218110325796126829218101921652849663180064965479929825374409004471792740304710726803327015170174536419720947722616955621487455023323668989133469001385930776651989072889126179752532114667965446156477901746862696484128380535512405680461893574342119186959136924898145334641250032483761522683317392609051827705136303402441557179703483969759281925111794923828034968499657460647091264416931575983996427431493393905036423890976528804527037841069355991929170748653907241550272468856271386817340107490332773791759015825837414950732073787047062832773677443005227101063250151370252704278938796472464819178382552943371714249313923741456648961919826616758066004018179081522341920051759189648033782582862125094368378817232323492299329141764503134100993591215806978099610191381678011144998178227658672853246591679616481284479464358737105961662907638480675884688562359385117640368877449693972655125807847935163789202673384801457849771517573248701982316174768614503952903496806507452424591242304703239146577341927209453029215126446687086099181019934242628823448762926761669568395600295059818585482580466242968779987689824317798180068629813376638325208674381506220247420208234464117205679260520118107154313910085676256002866878864043823755664891201599150709703627398052246226396396044963208560286737355345983133932934032607237642477652993621278058462149957160348808654541996519637047370122520901572690704716044929175436102328568002539226300659363618840565874364255490846638869417801729491830914889586930050343860126924613853097508471396170967256907437422067978189645568023228158546752529640595099861896790358433670361143454971416368789949197709352812708292471337779212039676874297436015348652928383003999564648172570547973151904147125378326127815623312414227022798146349159172406018038353090026723891718376064337483649267673145977718692065679242941176025212039193047652668453379412316861352808553206397170662256122570364294930789943407971072195394561705724674443624515518609844850334804756702427361023743757653328326488993386966563265949925760427161504328893288479684992932679469293118073756201698387867139455607568648343488311560859572929986130438362756844176800957383871024793046504281148678761510976580178522845532832333981618819818779279254073586802446178128319230551329399883030695026393103008747552205231310969073379970781146719438187221785504827103368759686057822038978576575175655352065584556849265043151303724396725339917133292967529247500917290117268138240929163770925407760699003054294189234677917703941491213336483415149682087825712452735665520495807626787994418980990393046175956027317672286031433195100447345610572129106145827251061966398696437144691069207980146953422240513099894631065852546226677158931545921259386163276655653503312221601978805085245158798693713857013181549862075048931792596657092259878437976701170809205308229044102742309917512180875620821758088054338676800074038706893283079403836910956322521522958043903407959736993918467404147558053234093135635083119570082208533383068657195736379076812342193544470688572089927363309341898849086743669671804505680332475711042183420618218805570165817408424627844124901637765219666241183396237444994703152396640999828190615742676079967393925273924119099947754180781907361538568093745638782227507104148253148819406894682925968121056376998097026358414012536765255252796273117341764188572438273789559133488065786852122821646969083095525118059584695152401898188198190052157023955931015204599922719694572614325350102118129593748163008912251870120534986841604556665479162090595943712146672824692790132960084299167345319905974500964278357346563175565186713237609420876099002993304663049181112724764624311704336507178014132904626697660494972145584945190128908476809971893837666310105913774531812694790290696722252997250670635374607872357577922400882734961591540017584666987131579997420710630835986698067629337757411732825003956550927813855956461112523297151024676636033566383585811032775579130895953555843811158018325226184905132572680310223547744362557117653712889354974808834405876565304655537577156969955252574297619845155131017733670727008426390098308402907478650512788426855277183809051719659449532309095013583647513962057245643023533849626467134544924044341226278409309728304983058412187985657670975264740044910172782900770505284947520971143711669609857971100296638796646668802104286867278628938023658048293703568062728426087515426521975680704255946603732230134607332039383097709213817622869990157537892192520652377561519750090091474059937478047618155115850222487682682998829654184908452264411815899705729983805010513618259370360493655212217313628229863063372933991161759047414554316175513798494804996072617674574656917888423987189889388326799243409818830659880964692000828302698777175153442052009317300044928571533179128431079922934681060674090595622137136630952481519620456123966446943949008630046014662985200153517073355846718773866019524791575482672388463844906060343808541931346498288910991102789561314622362790606049420610732951394718707134851807500133451398580808814482706719431210954867538680896982349926916679454671486701993180879565878368738696396858473363094053661338269915675355104079466078350870108499681510771963324155220936729726499753900540762585586350470875522880996998721682014693134614535526713589762875341909820596082989214189231504539271963990482853493520363952679211507206551817674875030273901150042972232160490025928064349015836977471099505743344120512697492043446496275995750530283187470708629076066973108086476879172638702265416119322031574679509196736252081432002033990547982432607685646132307696173139383147007318568512071512676607299060391332394135913451385888602781752056494405413948634148265634283800103955635224424916073628967017836983816755205499851875085989179145901546481374325639551789745911952118642257123936245953433317662661873806922653978209544110688250007561775387246543755198185065071372199735855227991496215065199995122960080105522445645664704253538190542642352974886800697771434609102546935909688886028329601519737056528097346450310138816690001515932304268932333168820600161405630370280642308268009171550804530443968789482969601189969785338708408037144229633504736588771818486970988510594182068793361110301634284811177385878002345849454703323062745779131196785924220884595627650386419728943953504723627220904188278828318821954836722028811058433048978073464414063488736528125073607068697330124156577099623461790107665142455112560925778330672427151321352201260508925825710351067772572980777518407182489401947287441166064007954830370007323007066068966944081167566745514518002159207963423409082328860148114179519834033194249258742833801577248178800471028444693511773397901336770796980517421359456349250573027734190129848378550570798975838464937593912806233738793425610088457019471497095090738924396381779490588199864719775322364661559830814484200875203819344979443913853904710158005053774384009401025342390948726550938753553864406261258942253879883939540043259490739547283813646385987301617813101469581825187153082281696489082952757843141240644032000390802714154201912482204179976265308265402677891938237589328773312883476621924760042183778172888029182177865316529324302244222038135709555918583640082040736575010289212948404401887092456578552994982686865468621386134956735774856355208245036063817777911091953624435211693399832196903057530878238757624387844472360584855016354712988298384859676267398926044397963103492222702340638854746082308427549959546528331860361793135303523934488934217291123038829170707984660963287942151345723984333286363096524798622180984568839109624861886659399753173492851341392366544487911091483351564680107953270812381689530579830554581130395854841953125003399956247837385987202176599844802184038583336448260518075038229495114214635434715351765463978369339438099297014946230871128878642922543703334093247574493596143918664856603926283360816149510147231795809590846247981093432093741528400427186706367643481230974928345634457916130720153403919632504115025994658880683419442546386370487240636475935930228629955765765712786815323634495696837428291554637574354027224473644422686351002260230810726476497732673700371142683949615413968201257563594151296022624892515758377015783582906137868468328630740763692335744531255158638531915168826621641784133776875297900339987100280714249957297261343551963767002234092192682887572657516161420888217293984568324630087302551633176177952511023873632771668736929705702630751799989846914541141284192123641052944409033565067657000779343035883451972205177475913886714436044525945918294838809235113553307893849892258584074623349599057532801613463823025960794318738288670101245736821733936956779890402251636664252465236279881960985313913513057937224907262765500605573300667743493646423451476177725719359470469493389468122497669004299657842898934533865642891121086158846531295380190003131584830604359749995754391499230723379033513158732103505858709562846311287326633998774962511415963275074066594778866051793774322525746399976582481636802633532708868949705194629940589382453591632004802797526482534346800301085088604033253875764068626375233167325011741650913172856456186551365726290169365236499106410036310564841307392311160464166435882113200840626752931256666982109576615794395081307775082567141550353694608153397336508573692138605125555486116167841601711575577469151684798562546695338342381749911454961963084336671804151857137747550377893365197601923999637747528635055849056373772130145834137065408500326510638349050942576609038063998669702302916047368843673889945152845353410917902043148972740405883395100234766637763854411900265346908440190059019046748463900791035264829742220404687684458662250236271646463631905949963626434192599184720645320848696903955633200554310748702292039757505186692235116599914942227403348237759530912172124910797879750482340891167538598373139150413880526722782618566019968503617991124662242131535637394196475488831811674497292043243983722878362339116976205500893943407113492090727430121152484601527056592862199010520050557887039073473611876157395259405956650299874269560534483471657235899735560681007978388322136506321531638263979708451148197573785836135372500738141886324871247632549434162291173969262344912837366004499576274499903278152158549481018508772326591013827279014685702270254729934887512922207849057960963577953989765634338260726018639737187775915193481540326595089961261766300558731672085376670559781168868292553552965479151296532013136946265305824470635571848912586768875054625497344612390825805071903619894560805609787614703624989647793160945268074604177005467295905192569710302031852142164551508340832790701678606967245265891815097459828967018706455663178212788406592441590154293635146627805388085550592851034175561583531534459195413956682790116549899822766351995662225143270126553055670008185127582700470290839199184356724887670863205084794731131701832093967242170650888913075123322408863216181751867981916344963827791851366290467543947845227235360174437550321897525097208505869448682311281425129035522988458172793022665873589898609858084841181666303640187415239386520853932309463338265598452128363175005010172019146735507199685896568950192616297780049458099957860841971406447767248755692417560494003013262895436564353564750581532361905424804387980675360190099046463631612987305633550467213066286240279483514978946827510442835473283887895399088151573785210874267384882852877211024998183699684680152435082033654503293329417145530397875257737242914560696340321460792935590294231913199272574427369998960761983443552488743799710151797698586139599475214430239821825438909025599158462166349610946173029761777983668461516313980328258425189564875513117627797746450703128290450449902755611059570203252167255007494050647451342865726250218556599399050880126933082931494804990427745010398843463680717506590388583117315895086442249621944765061084412258820582766095640761757866686247762692100794406235422845733554394258353722104975873570821122832161985264466242277905039834746477889300437444051972204043287672703488004616692388759468052306760206188078358590103651513341833410819565581680802441000439460914842173312486337258298609380227457325614316435089285089553091835948957905867160922980313242800623349778791468850370435523314648938279360285056964386670244071132349743881342804566041313885278243081246275655959463927318219123520058756529371926127993446966534657169109669552281295655588947623924600363556704292947920891043200199328926920513645379415464221043374082249816441906532344103822246651900438228621909987267463438353627627620101378313098208159950469714966687002350698347500252396276894254142741395973097901404342238533934632080635753976810729465437522065283403776582199029414905814470997765425956346277013279495337716583284407773438806131298965011769742964419915511052944457248041603268114515212693007341691930046245546226003479809441077916721717369737639365481710095439259303104761660645745670347409569421658750859177586331826892565641484694426429760029284839854768764762071051661097314645883372144231625022348596581783318318819564840538923373237665259027503862181998767417254214943471559557183006170595907502602355978860354038490839584843927505869871506053556129149448053042378701210725976324695228172924776866834359657130397414413837042666365650729458415871762257663439245922374343839115104981140226501989835681269992432674187552395196196018625526443081170476338957993962763315531727658525767521607458668017107822543160173647838073451550484002323230790021534918857862016569915729246005682345159578714669792690498851024813557587675371506449041210256922253919631594603406923851661762942018392410743074880792244208128683509811514241194842951732271481911373911065069853869705333717812324842956781272032889915315323300074434711280536219533547726093993138420242965321245268636576345974699437102251541292201561606282020433749282416519737642433199255127012248853380197640632786659935543553664967489074515963995923669725197476765580579971623962487502238160031029942295185578912429942714046050613214071774576998025349150330117729887678339992921315089583410382426084895248189847864293452822569890578835865822342569908614330432459564076596254834286417309988571147426133539340685640298279031962105295264061703242430164386351967951978476638934844458572009054135292552430755099168714472755042363062567832015045062049676379253200888877196299444559874778442668792920086361082792508307642257163680564951129547646410082052743030502070678689650080274318523795798738264524588849254391170833941288256597927303612887604490472792269194197426980766205656336103935597181048497966966650060045609135918765677650633519159407480851989436464673464747790764829976772795226956730232136497434014637689905636309346341384079978631326659562015679715269546294293037706477324172518407618352893515543472457572259136442872838137832467533677421959875890072603055827107639480338398574140994336994275794355433851534487588781770126460158581873487938588545298852229727552212510603586541507786389085418997178417301559781522034538936187862892422465187231027512178054384305679420206455388902096647126448217529406925784398397372438413086665645945890344915414730994448655880698151296643525780928813355687015949093509703770492851816325792501494686428920269382071118421106608847001753785121068369435221175537912390008661628545899581995212234748681345197456348488465621465677101268483542810117970182464580660744329701640564015024413665549686080018573925226221907863268298351970216757393533200475386249142872229961240403959052802617887066258105896544043198352870334766221999803784424314886018445725388964389733622714522727389863922906604761146363813116637997067379065859591438642987175783786534561448443551529127587385898250180021345306787171927130850033153413336444429263181248714573558545386298452966663796235736247186189496534932098323647761392862163027858904247497758787281090204614065795409627484205701418590027984893369652401163359836447619640738958669664020138659469714414674793094874966109835491767373085516672575593870820603117703769690099043420775811080844935879628738270239197542254928183932694048067509478419108221364939246208806216431745358978793671177530817164301134759790924473802407312152969993606491113628178979416263051440979430383728022790973747272924475446281901852708524035061054740948684513590887314591220180071588310510245868325602781208474487855887596401576252197211554753831615347250419676687563376773656388965503368193979865628318873678782669323559685987169445907796319825638639850383241342873437826895947364521873196099148317944437823041026099946773613911657284830310053146296627426609819555620745777533366046277240361288428719167677252836101540105041798019907371374226796542065143867524920564145169051851337253242857006973997321278080728009082237380230880006688302630936615804096114980069970892944136467897717883696461364434199837650054958102794456169060499572488509565778394594311368256833839891258391471196334071677347473738144263043417496531474269646011466413273757207855972519021857719521244782093468917395321153650231877553688293737210664799062191014376079979408824818612408869405511086019903200941917262095771339080191126473866843317624689746698605484514687393301954374657153961098918263259648465973015743309992284155945549906463595716692721177966372997837432491675711079885135297577209499831553487800466290055830526492054935336655123313463102780665268744010030373301470362885338447151619203093473448383012823526488141438516744173293136639555299455730646409917068639390690048407018997425188174224758309909480477855823440772917429788474177439070678285115509926306044624406230304542432373566365243313584426539379237054055585658223965162686235951587124495246075693827293579378315205708457426742848285037098649750913448534892567959814311864941538114470753391619943115817591823041562254850059580903369500144244465522731328497018741775718130295722710051125823412529344524927818347781428840754253544933163240991897335762305748488461444058381307512010685693120381164533448902139564918987967002885010525136864658899637654377150133002524486461583827210343418320627800963405063542779280489053758312922543836374105237510088332981916948645895731493649683306307683484402573688031620146712882794398891958002013602363261911157454963852003200590139836834239260344595577972730136100008439347264642882500591651567790405570007607718673720908456920169102753300165099222284267948620667771048505647749848478596894691642576023543033815335868146851984928788794881092268014212946555613873858937191640799629616688703859036137610818026711347019357507254835034018252744801532969642711283360803444279692211339131646117347289239757133230867244461777907055645728319767397546734572275052014371594200207842983021200644672021026723828950777041097038450296918848891374139526559887542905546893997875260573228063174125895634568351006716228001234999365310617794893283195750253047424091561096446275548111995969170027531959701416136201593122061435986996270786444750339051611845857772977946414328185967867502544245907027844304108651087468649514529004558059647292591349455887438835961775549102725519818519270662881349755133711056546775007991869389781627543816067392356053158039335641390193294049691001927579656205252913190717937518603083219008165191183003047181356288139667743990363230181380944863063046638291466039604390010248004593649314703147867934384900839026230382807043735289870010949202206412309496848274895532458383874010896028952858804234455910571052349550231760750171940652294909244786487691498645546918079408409849035595045088731081402287157343695084333318750588351403537063566279510139379912202618403164409914981052158478987427859531741832225130351327862124363044095722465021580666283004560046698263529047359519700788865276597461227116843310103795305409496719504119532992680365454374854324083270986680165598941097067245928413406777721019612251476528310296083201355041368300965112338694432528920230860780592401979022170277523208416591769691186517799649412178215592364421546879992703361194520957581655283192460637850694336183136675244977754992691636366180035847072025027634774761491063914977954979920436255858903517849175870399432918815245229183604955045779855143297820235775810633080618167668666522281551437786096703689215680563849755997702425595641412730566432404714309582056859063883750238757875830143812908105566068667528348159102179531782984293831894367596395325102952293891594545013605969470751494720041266323773013625823427402350321470946377697526756057907849525038711521507492731148396442350899515440842684089319373603278704766987417547302069010870016762956543061196258120238702273062324550847237350414327613366375830797173321865683786041448189009575478697152541695221544008607824574438349666927049132059598140154845403314408691961509812855103327610211132948295039056984145213742141831980485774403973665610638261203334664290006590032883671995443306000245393994502480048518432792979472971833462084846154419592044659498513776323387162683087181380304716219783912208525233654722608774032233182077363535585336796553214416678089989847368461395636065727006415498703546604932719822082821882305752227276195844727686687882731092499707198032345033252347219684485575018527429096392377138367704719078626945639093340929039744195249282685194853251611616484229833348819605234196425657097764019914921519170875543055725801095729746891183422833420255662785439970026165035495049264977396163866406177567787523682455658410529870106993479953700870559024653068889273738257379578725066063944263611196086838969918495419975362259556865647201882355121135406696615427896444119376647883471927284875036492904429327927144018715063976479945853422775075029301674481811202210889101536801201373790625428298017410576044244365735684830588684597444623317840586358027028414406673589245021000415355450812477456649255638302738977862421087923011884603561997326229986427373587865996472540755531197779326991378253240242726292828360568127061415197751817055919003332910232563483649755950220627918416039752943500299682451819201727534781727921916907303147462524928090799774034216928128442811574279616744724894168772682158357140600577773963615949835238164892220180732794174893667418466012958349111358437376906920647494838043338624655915948027115471219639273157864879494816814804519724577355555898351713590193695949628010815037385018881185531985152288157242002366850379272394332654417974127079161335108624223577136541714438262002386502112820051662906849066905868478035887205570216489300493605238104754428922892975903100662420039503408427285935083268107841143484464138268491402502994494858491560803555474566470009171066140871117764453109404497351374297839481307210614537409335511428917265188085570838926672220711506589022984595560508852226587823101534484067827404173998837884116047156715333294428403047387251010253070452746132811251173803110649287787153497697510507807448695063424741460607849359492926971055235412042166869057079452947668542286711286990780141047699148499874414332125705919311399170909355020351852524196825963165064633616730585287113056194357746819645214373291551850134686274107651541020243217608180215732503288631984095010269302176853370236034870318595274636745859224893994608890915151371436415634219495850255498543543881824006153441278111088592277248131946519048780221492740799670318802377914779114992018521100416340682883087670776955078038120884446414059867783941568826311014514668636111271115725626675753200565336391391354270793401306901264262060087552751301935640986214273128803940013210982087409385394642358823288972397056898501129676833883313054137824052181456519678047174416719127818456461433567423701736712773003780365805228133580867633852180490380292049639178268846626671730019464999439705816385601404638422694441667057150652243115036497364063352545920173592574355438222770984888027262913251352901837291593677871700520854320504047619776546092615823627609836792522204117100899170361298091831656987611837335626852892052026287892269094134633998260282690615745720190454215146628460817396631680065196874952244933462108343216008940060254890867161245323680972531571516790174447145933861729909270825854055851034479934166644999205167563966983898930446020134564410777961534985041623040817028917442252579429787664288034613716131229186526599397599367382028702169586562509594182774717329723489077028017914035803557134190591600663813352107534573729481436942413826618157624936083586185754477299066710082337048457406778878276591708721288375222126932117644222309757152288596252002198816601026073987412977835027111243776720247221331856867739650035489754986366434707425911761301836215076975289336405522490145938849548738724389612763408577143256383677086580979420359462895798091062816450174699830383661750556761108217497385354350414274037434223196172099700395226933674215839558471804200523453340035388060956165652068468416372874069291433135988234756260698236412256540434873136133710246465974615635983419248564557937994350350665773489151160740718680968847775562037624558722942826070722938677802543573044084423548858312890242749880080851336561265694403369858927153286864371827493905286764078447251527714654142654176182220236272635053128916635670599860337300386917136228380518178233707933155206433533626738475895427752976276944670065475684787106212464726664189988364847693650992029471791752593304372438500342163982129380024476812517631749109846354098359795228238212561023394578717868881655528555053574935747277032441865067542729374026193923446840591188145118216747829940968590491519382005645609846442720929582175973006624357281693921419694459073760218869604336552279148940941794473375694743430728884885625421762811264207386080356721098017541877191112788481564679018497731117750302571361232833273831741599998238123576065416076917650804743193511277446920171351036797505130713246204191494925992606195264033495130959962204782872696925486398235909792307575055909432759865852174662902197072480278089365145436511096166840112700972372100582184982874353601375246138319594680188401601241100572176173311715116378803471607541741379718280840408002860623760665873966668995382187258692056430306940392764972866400069745516550340020470283270922157476475589524124896529388272409905466894506916568312142927610731480517026559189527186635236700069760467918537513967670810921443737497028089433122436419140172957465802045183134677233995699178712993999967814583137144533428047147699011372976125546909695215844041217709780390104460761916795364044215937054367183181229661369424176166986763219113291436337036708839727791059116063365818513514156668767670021847984376255664928161271876080633462214501890178326566384737195811401344851199296736048531688002779722301266303962955555136778639519285403394148954859667213645303253488473234453196652299293701441610775788790796383530152431866393466267106785675756714989062186831732341971841559072462538398674012207807200590403143262737654695958242780683962783471374439519326594101239669476150448793143320988543889752858264516052603406129411775641002059225620249759119138015255447374004899888801794831216060331414425474519502834688652301040823998166549392466362494587743386098137235627134892587844072716036030298312672443300366324740455179122217895574734569196684307966837275795163767237774477406658311836891849011887293155877097360686949301002002472207750704595357375547593726681097028290555881717284102534248246945491525267794154617429047243468367432498639122753861266799532181020042158692365212224732784362022805952981066023764169257728910900362401704119452237962620342978012391088943071718720592762780315937946490365688903957003900376657420121205969291648740225078676501418985350857880149474874081859251794652841268461938422045834718251403497057109508305200784318483765112717754336970734217467844663932954698122246926215113399398217414627242898576683388159519575908860340523592809418322981211460205210751926404821155529818911069783124324562600255654054049061062796297098490983643870315264581477219456245328660668273212734428858883413703484011779858310746155216954049051110998868464266480904214347053257668919449645550209482306929910460393477028194820335394305898785546090089367251454039959533934308917633858199677324623190705069632711833895821457199139446965253547561667035119655196852566661683543845778694465548683941244935928218106871038815904843365908667843768037057586979253540553267068443747062740209378519727564867391295781475442317814406800628439333765569067985508452412832096457739221128213619198635852313961151950030059167919628699978484833450875382131748212248261756152263569155658749144614309993152773255583571845980837562103649463003249067686040661548771262074382641563296842750813431647277477890934482602988488126575424726119277370530582268261099183745214587486016480323467924878927049577527496895004210903682610224867789492001605197177679759899627412571365688459671262274160239211984731260234998393381375482387086871662515306019538050751178501759392980033774010324704496931346957287440931159180851164629841380486531344621904802579560992806075645629359654915736695992096899360150609874050108316246801118933532477894756690885433263513711636526464109412820569827791431232207506467217432260681940579704930060350062416679530506640083400237739948448454175475490780004888207150274659159682101155806265716795623310193955937704491305456278274893644420967637447174326401065304058780333443680522010328864769270571178162744533566046781414064288243619529267584545940518914376607009424961142709224416135975701308530543514380187695871119600200509043840895452594536213117117032242870710285109540425387476853428690234078270489090772817575138795922046926310925702871145167300245066869685361530688420755428521806823895218720224571359196141026737967305870456558576240720618008579789763996743173452600771036884067627474483414027606845640577038678457177550272099119137469972731491555094335365885472637532479523624077903598631105427584203009105414889546132476088308823659012356893579762881882620797855488462192017920967865814069048389447092633228117719629316221972689370985802533509264812357758828436300761411575136112108259804126011146242379230455574456061947561399269687977067839113949119761181474056435059297380843986874823547311781490329556076294728658265865868637374075361848303148799355515016709432161891952880724468646957398112991145137400831323008608750909750402409351521138734355484573515537393168313244347991070404991746099033464553964818691602912759406341999612946474890649791862873005432067768372348558990140451519114976654694270181735186163746350038859924565923059357075852030334099714092354456544164458035548876599695372492810044821062843053110588946669000178690140119147991792194574290596990957875964884407458809311440993902407424428259632681962714699639987466132413789416282169918271097065726981184786377688467220023461678445359093233955993894575904366332193134116291184956396455694737596684386057018445194129889224916867734592013078865741849984896096221906221097714711251831457522938700413823238406483668371750977857483143459749785530967890428769008891807161757793150198390286718565243885853219276533269635172440233337366573249249292810876855035706472754752881422936315564997246726260104280629630854017449222930793735007680503266804078798716961527561963173691338305340153457367209279730836837553857083300469987369759864641424784081068809297499400655169988995975430282782852725362127509571442745367454493209574752469755808898521394953918465712102384838621839883048419415485201503483868112336787760701670154300538729598299355717158943251606179166078417600383285627126016488794572575468007515113326740063518036608734718945668624448586943298079650553918888247813474784174072586149664827377926114643178769736700549638499138469591816071329802125075797786236874123360366547950369122763535346386476656190024794626868644644334413325279286162520762118578721234863312557105795457051038205555885369502855728767202430624732781804436787959852440651835710493912326696066810951435206291221355316470887944649934306531704488927786501075461250991301556839583861817525529636404265417423943740899112606043803723999209527365232004353476421185063131588762104435224198828013561077176504005232639062550780346788292412117789645322761851060926942238926586687200420427967714398700852931677981453161030678764393923074202073372149374889465944580439402289824306414984063442295397394534314292211631159069521881860578251233801191022559658559499456721237078757090331119340819377133835991693286391773989007951958841731292098027126763257220229816584583837692602884250310879886642890095826504491723393750014888770567600523481317897153693614051485237785614660730529282539527657163399462768436019259768306305720725485418004944785841439488773381625067337098651716181634145586182914496112318882583003444484008496125269665881683765562175902024318442683256466611868061962198500867015671998109424149122411875324365700282139063932913492479590014345444225685199891447728661425435618868719305237697906887320686499432405062586782330710030078538904340897569559488956152005761635520344460951524356525742224473057689209033295604097297970214349229989173583935269223236557093022222756929495459255884346683006871626563046461782907761569759217029653529375388176889782182973665051401563052447818108088453444794524067760678803022942932929187248859804725976741466062421124248395561700301482322040245874877881237993826672618283996084083551517967716769670294814123703604290305061912884373737777773256824872010756442023862245781096911882346616872754814008435066169210145668650443857912334665036459432400781818388178584486763697068941089992580452001749209785284221219878008684398520197524277474156267504468796639927880622203045902248728028590230329943774613837387817690016250537955209058689992081105962668146151552569698252031917602581108350989873590851274455122401590343754087087278511416087870968997179994274388168430483161511278191632269888826727060654372017789907909541815277590843721752194868136370617575529141230416793807351020466712465975649051746114301440496552260073911827931660436515301186608798153999153379579667466369521114045728049978406918067115975930016007888051113422158704764784020850639039540270870188852339274833397985971463585341230707716963147063115761879772011392301500293377612244218570724918730090016460961997054952159556240541764865835061599872139209148403965053020144649837313732619576720245501045198422692740512011011072410799302235224712772224909931992616004512357408571689987109953079820391551031639135136299872803134071949517519163537778053009867646352622118521858248040872094268224705050058361110301585525991131867202518949010254448148916491646989467540208036087631076921604538918043080463173977632415993584277498878794843813568450675995400400436081379815602444140933846624080645209764229813102215052387700966075375647778268286868821377709082979297934964303727918210841038315594961085033346201404650370777554729231864731626215101626712901374200968145521961224466991082203826337520755075090459675287256981754432440210766115330509445459720886437258951971060554010703244799525331942403573187782016504418944552793913347242049919238601433367786122923188772523191210773844345903800727417473371394426575460350626657700732733082103390065075097815735014216285263175408884583896053790087099458088134379946435348237148755319576523738504449821894335582738909466107769103516194223872802871358116433074442170207563498759721272256549339742588201911466697880095086598068410571878167090033799139980995880750586680747202841260438022821179498303756033524804971656703247189226463574456547494078010248973617961555522603656976773289648032369789680122752051923488331993965777498040403595656502622608991337439720955666650599337617861300884342081618205559176429864905270400512995465719159925463249080687403606325780420524260112852858006744431265623467766321550592854005536803344061205352070732910978349258564511475855065267551030162996861419915315791508061067851419237570526985182968402880047447377383335201615070879567149472101609865933846221662382713574926516379414746766929698574965678240548200365264874896377282839119905298939681590343514793145232430521847992616056457753438733964119115722326328602540766873399760527379608628698699667076063689515472966309327439293613658338777590593690227960519261560313235284831723507820138337180099471181241283661709264951992524391125669057221819708920866132714696177544043294531837194122041395685767160620911034892793857695864851403625763042715561889390978576066014186442549940013713918750371675934490958824981929434541725585859651424521070299571679243264801188899519961543257448123005673367008110870373798769833747032155761221534284243391182607987441061835895974211817501138503978485321077960871451716773230011354646215443896477652674825351252859925322447413278978580070005275946184314354818788123190701702529541267430402336861363362169618407246160150398019549285937179687373176148904269266605043996358015183549870635705028975979377623816910570361515356130283148787724556910627565956055248827026053660104168204091290121652376562730605888724562864002858912060276661561869374464379677010923908981875907732779062448038907730894746739648971664648887451757184757770781077687176276190131107181047656813313009911654661744787870338651240142055953554051998833746351566452365980460010868659168960022733827295010307336147747067351170735301948459116183493298174578689087086114569332102632103970328847046558347568304501650753548726996729227827675284660568557075621242784359490683468178673707307982148339074041995011097482633125629251407054259673722448385049851648352582943401797955566768722993240316680880596434897950172565655672160448068693110032076047510828865397899293550832672514163427525920911327239740539121861746499634423545538590240918173333206864517074789123561749554525745881612756824343049599703478897423099026478551281283826282920429516126761172652755141119602847699705351387012608185343340758336119698541981841463399122238872687625066069871024225905164521243496942150667243978173395065404420050037460126046796261258768754803263936690498684138325638542726802229853810545663886008263852931946909610205623565413685417176940729408024492521736867048117446133896462619046050496851806155589120740988758548488627590732272737458896943092280708879339030372075176898022252457464820826630938894107202680297726910605713214778246148835357168327864844083714382355404709620065596611526800057584182187392520885754266867141051512212739528855063691187267258099274161291120768944022082605272881343047699488577195613377835643853408255046380913092239962739643698958100636335954300961449231074123805870699567834407947784439776091446908158182310539059310267919234619937932908217576823315971044879920976415582840643109942669655159056372132210352465950205594832767596615532062033453588209409398728536791387042442336366999648660167867371165511078667765101135013911525547019424249579416605143366463931824447186539476597187027882919458044345409489659933104530143591260808489270429367369627068106366603595042898379282609627311635881773878082574251183417068929919633594275766063975104086789768064008546592092452638578835473762430579390878693548136325341759150459495945534691289048901996523848655767606171099810756439976427289588718177124269207721559477669140467807881375725438375790137586333334707271968592562983324611485518825290263120477406754113025005143596562451491066700349979115678232310413732001449272176781327052504321561489109240750692145103853485697405408352925868592359098278559133037180494464614074877029841058687133481154224252293230755579920647974075062319975456288964302755137378599364404365850408835214856228982389109579214695448096744971254842809022037766379494615429654437191537927649658913967906686498948255448738298222137775276094832947865451326335591427099936341332851738857452448072859005915577977323145731374004695628748391929931973081209234728842578980284330987480383866006381391049547880141369520273780751610567782413735692397974716386994646011498041764289323709152716023069431989251369601758745009729368910507786354102132863108866930931122150128135458136067786561157585766114301807011259649648207157969827039620294914372434762961313546575964951275162658327532367220713287173425661945898088906997660084395533840369378816765067316116151655399316585099353341217782960617923355881730078180217225991909154532999236343404370473133141964586013724900017052734609536572792532545316168183100667624930083855820733356802756476087041451830746231144768058100571903014670224003554579680829727970539473917208592174834142019282998801285834584251169770838543126446052643717648679253655506214595695535102221301124717468945340256947936538055657750642693012951922130107887299992129261183307049032289368523845656180909794686808107870333024906670664521970803352166356099306759732505367896950989060680677239653072715327399782527871454336498177118449450702443101434810063698634513452463204301159116965998030864671740774319828990870755483580693877577466469652923357483081018488984932101790656906726743884215978653124958793519961644913721769295850022564548851112706294599953517311044880638978284494949594813626921988888155778454775375167237661250087190510465649514688553730415401469987142256177489479700744266469368733313548185228841877489645371277072980616152851682737623795832210636119975901104536370279571240472072687094693234614379981086874077731323213423588151580750299340441938578919652826012682667147711650087055836935109211547816180504040162868850283576126859246853252671145438659461401953130869506715509617350224976229823731784062442419704595764073310092446681056304642556722279758647508385751073483533478220549944402229408157363701368311055855782748948892325118883041143842689444339848253684114127152779271987807957569052586147320729443626342163659760441911639155421920681235105112722130426720818355814284956375748011337594989356563620187262575632086387504652209327930993223717412358575773583143798969922021783715429845400054018646097641225564104601266191076882161310460870014784083351118079825386000868196554460675717720197670762580167418471010026068667864865156246439341709114900221543762862111736788079419250986877284112566029032324152445075024162959045976022495806775838250387381502831016696913382665219235501846714678523592080777483820602825880312927962191857878671471896739878614253875984143450728747269083844832130404671109896354672767825173812968189661876633869055941011095318594981245125569064480057782554573546247118784675088570894752961281141518367300872477549469664497846768959375225651043093118614710799774971040359236138034162809016209007941206384774193772380734213067680113643482974797778499001642608356663079113236623821970057627143332219299884819026257363430801414074417192140170189422592922506433404555242053445920448882929839931689122274370260001407500686137493446358799997218295214816984396582203304724796299223097193171067927585195737179069192158051661355021918507770397628160432092420481948358104670055165625104081160762394240657143523000058628545062280927011805447923077455209206675246560716550780227060897179544769598978380837483565605597936655819613498225980653683486018265499807206790300858382828249904479106080760256179277919739011257954072333989154038090707708750525867915025466649045926092913145634370574360362792122351481592574465691990670181068025447951000337373839912193433647483816538191841143377842081864725260661750020015001941360089358186529508026142519116644169447502650267699339801255163034425836839697497639835126187510795599214094629109310147173415897599677112955263921147294826585519293326058354320417713513608623723154210405691685592245789119238595741847416272213821120543840888174294011530448644681161473345034929653857183723209606686655996109224038712707988541647277898023490762078813757804915404336130554023492493233993046867193610543045697904502173928797914823751690549644860999617261301992790650930286340451598771049872145409689673819459224105775417443186990027552609612711893615832363548564293788116452016421898241268571331047198925143905863827408248299630750508748597805031995539172129483739089805481602368452569315389297258075966723617038309144642916603733527563812482204420718412575556550549003548491257505363237402485228572620432191380429661304004052863761454918736864974404015362234593217396569550694744158053976169744529946876762889590663720883572156016799945285348446503163164611675984958950193493120504489166810393534741264857178951352471760953767968037970873943052058299482389746851948146628824257754184015480913767941629899600816337318757325198361022587664283994091633491248833104082931056399269253423618563440311216091041624934876205600890397166899540305777970824562992394456596206332958241964280623135330444146476839959750101096788621738094766842577615427281040747630039385718051302337409118187577805421192850958519313377563558603161267303122458812995711387943481174460396166988145253903899252938248290033469142027551403088754209022269972137233634719864947879677228651044969821745094340714255674222581705961079082565087125395860705382448403953288574563741199336071236215158856767421702831128519241936184680456944078606991241107754715731303860177155939659109842283608936633218573501961304726860116124259864611835838506642824063183510727868409510927521340834390911368598184594898416017801379655936694436818196105214749575329238846229398761898771812816544673252764716029465558285724502514092323197421518640656390026939045869409110507697756136933618945962301712895141120117324986036595439729832008100464318033104758523478883211631190358437110669873174068376486350083540628628244100929197727252786198325769689967731026625522035859739575335185034222788546019671680822282145482323064669428441513257587507122762039578879750731198887460520209119837744057168659132602915987809193899308348996172304179703060377659122761580309114686919497827093208374284132117215183879660713324431609419021642331030163812251743999524432845138369400229127476711390971566572511401904810799633824479199726722913521863601329146116746960479908403478922202750382612771574234492436676356585002557507799193381337047383505007984060078175126316429299399536966516356950602845597912619285414080218573223128717472484236559664821860340308687744816564533670268689622778752703813799059897613119503167216724583682482086502158143851526238302317522230278503666132501498877278881387552562753911281118960181356818318742679571805936902998630264516601351663756841596078435584832332012104570582541848575444040029944759499964072472330094686793793086358001889097103114851610966761788290072615585039561001332363783053546337216834074987501838912850518328757683207367625200922686120153042267191702058678179439532009290868666102945947173496191784280608797519623047863773195055285962411681612804791426203602555485606393698159090146568829585408268662934544466113327098716303158362845852305054660095042220655234804895269784923563371360326596188011866692587533188751787091843448117789180753154401272595381264497499521292907569589465835377197317376859853022169662238909909449697501967210627622643242906449710099095655264841391377769912267149988975643922964521922462381545621193275317448028859713490972102036911003788945752265124568169297784449079988859177892156252657899086189631572949858910904866379627636813979269124531920225097753688971889841089296801877629757164787724536072473523529857719516369945873957704793326038072133866140945252669054852007719948405529869546594074383177027302870013676347212905168949247433997787899889078651650563255200630390457047187404181899199030279205424352426574147027664744815428188370461627834687369565513586591578044630335446132327304554395214601542402262619921432333551497056255576548686776427401578731365666786087765158909351128676789233025686079521721217943360359282842947692674382966384061345576245746442939498745661262954793889980616133156884251963355135264478066965550805844919449096904665203560554638868939411501049614526765919818812991877217319319450561132222507369274268754545869130684960192407561283599595430172373333266782868439573568665702205958508781986071781023363261098139139420449675148483621300510270807607475044388023035780850574816426960061475281055544827635641811721263870594269582094381575852767457594220850402958169784788637061668105599194220536379855953683240222066465320377278232877778113521737946738042098201424452354376709253068640678589822627677527278249953488775341218798632461973931193483389035635537133163223572680796794510894016036086196382408701276001228477059782524416552944174730744631044838945874298273937811377846056761606563578835905076201478539617989723539493654981382597988614921236763477974484314568947803625285271309907265089897935384151538551575238617131088989621698786363083296107239709506259256998206089509713639641204335681920908485671731104694905161297949172603576148707003530441035127275867292979211884538055637131093024826141101743460313493296890889581960073457074977862322044928414858272593602891956263152419150690789348463187193085165079188245762442221528932386771626659634234417913241742349141020640867446705450332938100576610043418774408784674954255638583941670178252702676265955571617023515082863627057597990626855928448939253833068708570738718243350705845761099111788223788416931764822263146293742756460104136999000285381571447665887917286649170736934018635139430058214276353828288025684527968852280606175552058440460239554718864680053135815118423429464739215632202567064117568591271376471903123008841526174651266292383965756719432205498067857267513262927850372798236492084480394706519876859494197878763101300627464642918106903293915560229451212877207083381418157593009822136282912114122845677864024410770908578878224962438181810338167312237351303322797553667109496186493566854154818690523654666900665321431160423553191908556307096251841313486382523134732335008396966932836713847477371462412593929935471381754214688556185472384666755520432506149655006432488786977596674499449042870724146314743206741410697103601089973469669081674715657565287617844538238796983804061056005285835518483649896660563783400059934800142867963776254937900053184695169984975662528639420803966344212845888341580662687897091478779074696639875335044229606309107220762588091776173293957583165265747841267025338348020960171152633852231681076983115846209433706690967918377427777309478096586725269628530744961843765011536660188964715444159372472557372931284671269807912588294032314049811400815847163212222884793127254202801163020339987026323248830755437454007792220509838948239321950826198239054437906097483405682672051245042757977349046107930968967705745580920803543739997797483161862889210176974492249444382663098336579795106325972978491866877533416610343724801443923613951080855019656217664106590124229874302131101164381751959058023364460160774808501660492586003156517722126782083924899044996002608193840238602731160184826006873488652754675259752771373263357063549134067611770311180221730641314437924131491848021690508433348627135282277604298983681175286773152120002119727426949560802851887711804161156115871460109525583387770051573574427178177177424469677580878243708456325359644685253647058387268659855168230153603698657427320148113772019799753760261662991578299940294266003663228509863716927188118989264844264037091365564635447847420460618583037705728244264266725727982915490693142619644584033105834862121835127048601331229007102569706969069509031716161223805897280855354385779626438839749667952895196963626504839838796331410434207354971421146952344012805999341236926748245233499888282011007751770187379369272234032507037300857002792141885846396256136953031886843109351297003017730813769704466581154376125658091520199684840866420666369400171640544471084274455412498476376603269956900843936386998471481415150363622632329767038160466915426775207915621139078188621766361135666429591099322121724328134546657211901821075694395611307488537616182889924550167126740116420869210157295216898343480606379555067446242797022120144680561837240752212759619152529557735627287251630853603391956288545938812412537070937693138146750928496796999067490002510533530875184226152135477493110811869644858293503875383049052992950828694209068973396297593493598963654111262281330954582741560596520352555887545087404893980997971165744053927290504564252086537420754698807365370848990114320867051814363020388942999156452018107385304946822458910822509499889926071303691762855339651097730787865755929024964650150186322346246443778809418832373940097350218284549885515235228946117841902412323282499914542015938344163608853717723801739942213341387822574901631996924825628041529235791312306910153517032214972424896842522344181468065214038374981222370564045183737085137803238045548931792597822274077991212981026806102523451028186113034371739198967408880760375995625363235888723039263515389013250376624642330349076656879966131742747746539978400664795924923866905221303644418410012280862697989708161269172435985603480833759385907965835552971115535162747831440852333256327203152348598028685455390692650265148546061359065400098210226124235030097169937627171318573822558227696959184442164876099567121136435024840356918905504010924309761203212710347455718919668092577868524722183124199665216083914153148957848498369071520664903245851791963474241932980173767926893431681636228202284608543030034039170514612130066951588299878608394915754852683363464211949651461981150984265992148503225602385666312820827504094822707784599588178951219074874452673731252199674564107848449976490330408799343768014656494251960530077947648439597565523824283964119951483801419351038386351282087338717927120529777860529815274312157789625352473518117552614195483077943546510704155717708145472546900038068269786329215580737153967511871184525270897144982094875928349686208441323448457685457887659513636880848410430791334379542083170424206878653686091348995425266266988701048958710544655007840618963351410780259913589188227123420422194599957492299161306089175410991926112688647481385354387080566045642381369243911949090431887750606778897871984102543859542740212582595785106136794908687854432444735645172697794888808264452622160770952823957542879498944222781346663920145239019218774016890296917729708960671493228183611680245372640373052239474921484972885823502978146762475122703471932499161445805043316320891413168793281147840453831768985615407688076759092030916865573679310670791786328974680246053317633693311521923269497368363301404602310974214678807096169487793280315205450012743666749865110346754110488811417989901046229634785708237853710257703410145840081128011974308347047777647543315182294868653482267069869303603228109328700734173317877604569206216524721926905874834994157231588490500583718949017336758071432589088275958581809170691503536417990790109356017636130721675498982371048878197046344283953978483275402806365781230180100773763391110284018631325845237946632274117324075593971859758761213198007353566681357200838558011185227657533086056980604289089331319619591588096422989917283404002604389973894042113137096477611866071162433822435932612013382144969028755447563927146979783453456478842253501621897276882745094256036817585934517165351024227760474714744459788379446402620782531168906000062711758264210280272609893247957798280401669845110045175842610556708703528585283322202633586722863123354156780065823001501653314355564629541765480628359131753885912641303559043641699674363484238573295376582009776849790966368720681050020039950608643193890751557408296879801813772052620082651999660469767241791595839243956464070847746643790431826897047849574425790114509544679429035665988433638513469166405807773248516612861257556408754321687237398531403436148049225486246718462308456564307352214607865559498050252429141584966202976574316207679780921370717175256942301672761713973730118249850662993368513606907228652717718538044533969088424025748657777083530838749833722509646589680436992834580265310971843435164131294809122114200308825652543983654279428572707633866635719732264551666236980073048200583847346366545269605390584276350887865395956299136818210269908857128760106822567031354889876898103855388593810659545425378039178103338767709210343332724597485529588092305580715854014538861236041407915642383785749134884694042076571006653597874237856807214448037309262027017095866966355313354245933978134176304393604118809752558521120147107129898158858030683102106821904357602420398234781049167670913047870764964346922473027413700893195881693619757580944349928924527942951634881272370445712786208603961463074396685395722109335161063373224997668157999674585214931314657363898721332732833080964931919763786569481842026897388800093822930855973403458396849503571498095284338730827904052085675722417006056940321060284260802606922810386243626717554599761462480813119707861919361491982738416443081168194122509426426185888130839538847713482369829534885622082676135923280686364431852453958957835474096952847232767890990686203739027239569092242442994329141359568728879647327378788563022700891725703285356282009158030277640127725314422951071413432395207174579875297443141219097217584897926397179592100910539582626160432057488152372879655296252732881722410933660680709873216495173776054588053083699419845606761206849731728719677070404705145781251303168253941844756572781803604796428297683420990183409748232870776095438999158090048772030104720712949692495117097593660001915869060048849362613935160130433668550789267332250670782439657476710661063438657721366539773809007416533051847789619603403877024849878332405403949609133911485415029634567137576773841998619517587244397590647626749065941776235090696492681120140364787039853947040385386635421285864425040401172339497196494067284292084259544871215730032297107294077830640725965917637359653236956318516138148031739714203400144491716213095847249579965545098890882641589126026741867184152114715283674422212033827197946132411867706255648900300042688437486990831187846121496421463182197207245919688664333413741563865104060275217311322432897506715209494332740767759131094401516225003571987883508241469179502693426749502085814728613852246500538276576008570024310804265829614045505605608864890128257869295752836128622477791336395328818921991492848763701270695545171405114893124831067850515119852518767716617356007188408029757994972968841872163204472227895713355095165668128379153694949576830818750136332103929200875059570794896583361621176799168176890480301704929059506637302584833113024510706347356373328430944138971910034472807517447452599876273993829574115852741739182172869157320835364181960996409417483891415137508974135667239086547720938447934827230203540218697125930764653456094167320696425230229400736502938921896729908001831516077581835209740382452374455696517708883689134014527673901152542584912421798952211813061859404566448261213011461414855474407294122450795213615139727634063195461203373230390303601570156231809466420291406832486854761152235255260466236140031716588440670537639671973956550024173550263957100933636314207311550905540112366293990507612964642362932619997778507509289672636781380599813252483205524248799953253772061790303862327985499683273608110245861867113771595376231222235276226357941272824570619507189817671140719319058710463212180911439067492784139635734056349525355775755226166328406847023377871621800820769196887264305868170340135867194319529075979339554370946584075024234606391509581840933560482960509485160642209138853853703256043075474891575475704168965322473467084245255865408191485084038132472195630883841262860300074120130515364336928577481040871080521944579844996588642417370217081062592270888667747536418668212647468462444284916852248538012003403600646171816792546069781898502946612341978165953619831803670756189589853401386241207287183149661910205393229304283483045218931874977074700380514760165674296748095597857877060822144460679834204304878546970563657327862376098336336656203459088496356376558165427878866804330421490572573123894714152087974243817021719944705935568156623641875611804513369735731137431635647806785916432878623272598643527497854438860671091524860124922326080665248792153550009527641378986191481801699612194250367756174922328319188673851531039537877480101125696242746995777998841644456463587022257966301509672533929715188162531023589162381539599054592325647698599513448433861848476254971364875958338403754261549449850886774401818937594406242806435959222288493566781752586457904604908394591942282606916550622650751173816515169135035993758149446005617283137281717436273639248542309385846319258609444778055867104872891676581363828737437105498948764855729206336393771974395101242916352168087352045582958783583130669315424530896225500857432239998463501850883271510709913946807996212026734792202756148953366535555322090261448791390636183005228141136261203313258350531401289611893470805885537391441136513860807196208896076960531102540130062723007490870716673533273783090410924621079445682560391106027853740452963039471226364607673716656147772653471167717803302401553009422758499730407069037070630383017265020245634253843260411935417303282551758085437997438718520281310382369656185958305121448812689391949608176417747200182080687508961193784249654954759062507507825415539815167458013014085554738307729835824668055707591059816894230690321538726638117082368382128463665922293815522730114366862138994248875802876319148814230597033204246400665072424191159365689492774254039965236532005113262439973769640050609955394803777684396307444780269590938629648391133646239862837191866983266442535763693786160923444568221520245775528194355553917154122499680426469412730819081353967561513684703005559687722619812738722526413344416003855349493296767479591547250862083493460132309056231268145982490651097839293778027338698888933621049784655625351055580440810797761747716107420593542995817247986649112354588362476160633800740679283348538366760301144849000852908058017312564403254863541538939885702797535867881202881985057706330446520534717240903910018022427328622400626287718169239727594367581239405230069118987741075481394051683248248048163899760945554399945969485889192616001346670720710051572179023228284315301401585335283651943214666319137671805247926029653007850376335989335574012203750746788702265817979888197408470309868713718125311068098579190019836589722648576233665790611498296304116479482695376183400990262596391809564966561573112988598776090182471750547333578811772080108529906470835381393699189697918031680124901228631424452010916737807845673672388020204464698173616342208179180117273660539477425506052134961228934580156020563126811076409918707507172232752306260029095358680792876362477115757116830784540193666301613091957084550423156470690677257613747586843969449461081370707435059998284940112118698504980304737260849104196859874264543986839481223570638879617182821589487676250779059426262938011112551655881121930171593685785962192848916798320940241397310862287761558389548010849868575745777491891571123916664041068806283903722924545446185168685733847179135381262024739527905544880422757541895322741718460940101198417019792856344289657153270907889729190081179856507445812325769240859262076292022252333339736908009047981627306972909922732587852193435366966734646241701058546426750242073190718233778803348297921509836129681266641045588805547906483318123076221800450268174238317017957606289450859438103285825542038996032435580616797964571377538605969876951003399357254457951801581171129550200739713043956287377116854269085107844599288461924552407977572043257074463553653076978597211033035592249143060081293843873857858700073808565686002878021192471737613955218902165545490518070921332098302571920487926405593906348803905843284949189301461306040835957901709422242120854604468497795078236950212826589692870838614591741368101742373161870621400644481827624272348551775844169212163891758470760012532237616875644827225118249680781001134193802885519083234479893856824984452977029268597742737430658965415603001655199504148522979691942227576774421941210854909286863960207432620273330278770563644270738422040471231878296655834641306138758394649450668093328369980209677729206241075600766304220781055301927545507891150213365476291826866211383033783882459869881363935664174899968772787931085371198823828697874576228831132884627846209336848801528608374002057727875312086312970028797539108285268309616899422620402213861417125904830540669439231182514739387209458955370360744112073865622610712177987519284948718673939254530258638398555764362484675024919918571506023289744656529383321348695099591099193498339439677219825294269705678440303557487043013150054826307800037575579416520323438283960649478966380525766280741611442499662930649229492878220223872109203230538436268410869364780956659810954039993855733794074127335968656378334360743967362135031635617027343302727770886921777740121906099968634682473894125382804444895546081583585911803268391084878606726003702115759503588824276647213964090018203445243585582414099961156920928720177979764657234198488268271122321613776314903060307111624665546252638467687455462542751311307299161170510757764968801689692328338724150600950678733736590652210213425344021553230509443658569613376039910590752615135680497329511015234191560786345333076881217238069884055000748196232903075049012074740760278074786119990451354780654161885845358031658348403121748855124074479067752648789854581745647944294710974090473090310131769616691680035500185079296591194649479336593782492197331663864221823089703859839685974070384862022460098558693152605733881571325217558956323019824023963944663859674212899872394376393391831316147721488413312841120332089774091553474677829032204386663911693355421788042846917295303545856067579387919695552205285159470257964338289460287535846089628257680752687432957137405354568530436087952979433911845033709776039605989490627344497622376928623219354399600065080795959112222836658956664441632076955714387689702272043834007610741488065599702913649129998117051689288777213429176654523442716055422372149148910844253610025662881682040133516579762676395052724435943761308719380475794293734263717792727101525916368595656839151789351498573044007082009628996011704460773285169652059021288931044498126084676548172994027444227353235632156835631956850524799880606132630990009855546314386203561155882730469630472893790156690636729107431773876422727332923305677076422661433247050412790177685844182922812321472457278641981757580649898691757432332771843589200769850624086761646892619209860324733872726597169469223203532507094629298877699688706395925153690937776916135527382933480960670479438601252558906115814856114730957540513457314874606112292652706757405086128529992461504259324330403783428535171964090815584030834073163788618550741341962283941701028118900970662014946693585217724430405219551989475286514318409983876130635863026923117618102917074009948943521460695337537068717718660656539388053314183012073380500765443576311027877033553618364436363444102408099044826174973738791526192657109583039662121508800890148446885231770321719283927223317475517485786800950319914483894743958464337675525532448838432103370905308193670113100718638701356456249122881293713409014699284056024530704003856055582134678604621656521949664808103460314289292952156964201839324332547322527710811829843365655475014610741829107091997898168158787424361139417608845883884008202112836132589257977462001781252977085310357755845956379127286553636234333092619568994181189954941048601889528822225807863906272973966648903690060895483844256413044040452517742898142172442852814769520381325652322487222480658699761617248288446300782593374109201274466078298401489302046160406767533477929341928224075375042909391956901578738090448050088394638065564192287678509201905095758610979445065239232372603111489537228788850708180257631949168747853458232154070009852596546679337894391165299648972080847663831814584642181140244885260887051287854401707838709447195659609262216838229963345396202781569985263014077375859831540237945031125371044386782175514700012451980916269818799855240611325817132113004949515180611468368045712866172048881964476289030462425306243809234115218851182050565569897707513666041744982716852198368318257091463471001477855431873152687665223610187982265223000743492835925565567548907783357759445426451915910361695189939657795670032560577111416457930789862016101098453350428827038366388964649326426073516122947838754965614328273745858203787799628663312663129758144441339385016287401531238909340305320351010872910375274560251658049526326962696032671654291645402937984472482618677622831604711807904896473723729362105522029381720301625483817036299407131000299763202866159229438546646002921066319882834518618277917143939734858563616721804357258007201660736729289432711722368664751408560376868580966992733649580716211622714169819343513436409818058214947441495617792264748392813674068362389984760251096573190655359411922662649368655189444497049016304033747042615229881571413930671340956380593043017708031339839972174251364522893724209947970924643806037475565079864132137773392962537923978436996944716841190913342241635499907006209784591581901133597898781141059869444682372761589052028291882401843745696923363766262531612404094044552705653653229369416507729651579204443883831348517362107969331100947880188423430934914523517329992294941364643326276606493814817905743420266654135545755799188083282186383128913375934879060965459095818689646182097708823962619534055274638167715314728526144318301613155126689311304488939230732147480155909030054722002102420565467351551892891087964810323866064449699318626374056779132489960716852554405684537070678173705654149166769857581606497080487800693898082328376913174299175747194355664159546464207476190838215986012505121276205050620325824990298317181131929210612079406764464601292742614147401579682218683048567955183804066292163230062531914702424571323820654681580360321397521856224841476296466874550132900769757707641703207440071309985748153267310110711681002167388409085173337317709158107601882176049468630149038366194567126669217006372531307447852345148026718842092541596904671463396408811165505739138742165403658881386182362254658242605961507604023214138701012800270339733806555870856906028314833075600819471070152745539785685548926429051365209258335005468143663328691730922390320267566853138729477436566680693155356540163762792135440773483664260708905803233684131854407481414487715209634614243122434370630153892264931583706371873890700450509460407099486558818389089478618641831632912332261813379565296977701675914590111391529642985138329030938955262698041160311894965344974399826516376174013754779630659527778256022253225136319989145450500067407499817744035795699254927941460215394990992112381860777500028122644376482757585827728363102075928140619872043701086982028644276471484664573483190992237994016515605809424890565297526556164831526576090855957000936590653748463673956487967310451087590523893043721966702055775091890253031569563360365068240477598103859302206680126608756164264466486032313538646253462738448246004853839831216613958146390562863734200009320479318073059652527034001746220330691868836892404774723778629540063751484163092945138584629993141043463314624702069309799660509102966402515766451978632951344179682976621731165907976988543464347834329831844156951819507478936014769320902268235980207625290535530779835542727413813843881745457916572484675792995308361782799006977788709029027281212447562214663834099948956098237704503917501393724941152483773847701659780139514758417406303073970673100602326088963218078395766073209024714510797181607214014669476365978419847868545602952865811065806681922357104912338124308169748567853758064948621957565159027986695852535092998104451125897177804056796796170282590686641997330842677186250438822932690758838074484179515891937685999756379808444658221861759909980999179588540513782016710995044393859710385300283622512293276941772055492919639939465407484286798300601429545782835139281501018174855207644074465828277979021918060575357995333477794562139402333579336555216185431316078499617453697234267819131085232365013838497567166214788289694805706566804108345882013470290883346052592449773138693122769819879887774373305948865584434164850900740412886207987312470977137871389479230759706708861693587254490109370540314597725841878624780146572581747416197013312880859457365126235169995037605575790314596588126654708075024896309578409767136780967333987915173478226923307933215893664526716913048201804390091359446516384742128672044694064707853306807320633785244690329080514365727749784719871015724122453560099809889937862289878488598835564401030658303349547844003949525087807393531981183580634608706311498707198640544549930420412538969106070043597335806981789245690256427791047735442353169484755130228789888230844630754252859833022189272543147775946901597258386751317015320621725526997155196066643437526526745572098232728744164725254498389634394743105416215415345597253259914690008064843975237102001903118864747017887431211309675247959257484787672428290115990400004511143802602173604688325274074275253252217709889611403629630404375652395571854930897566480941210553684647455637317122280437046952999011015801075732114821440609547209366764441255118963025970787949584025519345307975162958100634263177373701673008199357499500751614874273677980118445035942588210260891907266336044178148624922868966567693079225958625144971255593547733973235930911128659417642159898619297118040744552481049612463464068068508822122776256628136602088250137292948602132087165316292590727749050800090050846222413653783574401036216505863192228494290788859274959833018457271640971338976095983811146269440365307221461868061466613513556567082560653407379874725031009994599350740277705543890377741095149555288650893606564956147279228750505038415901216817438977191347306178887486405981454195062572489887858408692634520573910601481003514124238291297270954484156146267860434566181129494359815055606909289857380804434843415814071472415112291460338904222276354139264601659883667189430604353059535498676772585022487111249200997846029022611727267232198650742916083465039909688329949064167704319670373815198272884303076158029556434218440204247540513446435825836178992180338661048221615350466634922628643198854788790350213902978095744341424751883322371017231472098588235790323137649870997013668947889380216959897380205564817854531255692429583486689754998403654086908677416879591080612143787427035115093939472428550206842100767883135455984915047914201001408237139721932877717303647188569961844611242684301459417991011326936676298447883009126195898483842259165011931232638940093224988942663066877310578279553415536245801783601953636888494040283641630619512013031721005267007226123684101050339947714362879858781379781437498893867890287477844719532560647036563173390177711600971291499287340177953890533650460123541897453431166652281974036678936967140436935216635158227911526512056931150452398044922680640148304377250404170384060886876289453373450839161668967564554014862408489439647582479943962988733121318022280439002310401367794827509299860170915470594115055759597153931025364427011330866552722687223014553658311858608349309886216075050966146807301319376523152173508171183526786750600553625206367987306890253695755546651745090394418383853842099030085148838133259868345643256092594507218069245378677590937839867176885365814095139708579698833692463450448408588933932113662703460914320308004684240592340546127108341306362375269023231646060955516739064243011389439387869482284545622177137079112092030404609046792493016895316657933407486938179448187573641595237488556008601147179574302803969723592435331481654706704602920861416449348097438966610200872032675207749193881101872220577530467078471587749392560674205373914931055599149710764874657468737858963584732633571766992976344741915411342129354183235937095752507993467087148437756254088616395372949010349672677867265685767341915216533380693566426419009137278550742648764787899416336412574079407761784970015906983587246263300674295098043609987408292939594785000205870136469177653285162369361408049076100829394155504000468544694642645530412025156919188249484658315126172021529296434351976291211816533208365811096634161909001220209735207657687463692607610779128878063936524575582354030473443940818992935524748896226829401410212911391678229636381896849266013060139940549062476087158934740271453685113177051104753781294408073747343486214116660125264946861333327001047727023558886818319526775149184064371685426889116039739596114515213452558260142382520139484666811283555156896257704806433150354479769531291114534059336602812273319144427874048276500100023109986118128416247431704746455401084798611536204064846820913593489377341812027466868347491226788930563080071050836483494130892180686001115031016566666004121541615865929395672155843501788731576077090539589007253655398308984905496231494602173788204619385990536201525961165986011638218752557283325740850950061000681249294556516203760818160125032409396933700390645189671969259207746492483815740107503500614252591338882064405541451483693158022039785200404478599848117769439852980341585613873253568801991605308550539362881546491168140297560367529120696446726697860345904512696880831086952110639209599476516804808494211265191343742566287904398011516659026755554920295037331377362049546316450859148747651971639021412147773606600211276288295916695586644929881537618633450881932780070259924434800260079415348198045350058531136684398593409696291852835483837336775463279389829722367356039061675336912026660885164189260580505036760695779222265344779771125068671781800086827192382126104164945071700923987686942768886044660036288480615531342055332230441989391940503143649974538252774734967620421620122066298094530065588334152326283796399443721571702205046026854932234972615434088421215742365642544467266340798319278700172642220056428736641501835023873240139191305651566702701227209648419700429156530547879756724234745996496676002183895882314941799781167009718080152553491217981962561904464640507856248164267090837560219030924893942851136353295949470285648932146403077674851299201313851496944089685885869796663587154466785387959853829907323487043514344249487237847467864913201739054850378320128171104240781493542661142031240129185736100289769032173290192249331984005975071703698166881823165763188707834432443667381223694520043885036077282635300417277363858709829953632441290409999376373807411615992121514602722181363478158374731820949062452952847879097962675174925511923920731609905110841514608979593676561786643247025573544660990991117240209086689732122837612293818891307047393046951867514448703360940311686929100627028796380527581860783103238456020944934149115389803235947942657578949352577715109049251787438814113295633858375237056410323267088854336453517251095875140954980172688483421529330914213802536619658589454984443031705138823707306310358148604359364099345137182601848887164648595332341800291443968252254175508278011739361412301610667916998102365911417309088015013622894815987935857419576326952145684067925702165067069624909466163827391718324143115400091260750788102908200249460084273846584098351327434106041014994064778833162284162166589972864903130803507120042675577678267992226956022802458630711787701533977186220755775928292140643526066323704939911198588526843185868122020477294141728114679662998158155174005865706928668293537430040204628338127944141905612420000349005192711421941449809308123533767466560626884983761310877490998084497233333237494837775163364122275613315780754983471620668256248635891882229210410131682529570055803294508585072296234488831061301971928489200131992849541038959932632131924363841566074551724770437354910402534770374245116152092072817277518673564277972117924783235015292904006201770289185997540090850762562164662239045935564583130332487646140597746234580648300875009869654559230988001553081991491945855094893495936313816757645615796678712988425970894279659836623728070448601112779651308475554002836845824949341363898521114355829536651581873025515867135288891859962678647926196272725008505580532250108692101252919089539953700156786066826175922073581682005860752282569062328472039270696071342414777523746321963056374371299375373014340066305812614159242355087348522733944388078186011220475696097698609960283598400941974033713784471546994350659593874314252910627378464795701408890311040168267192470382984881362088026127211278710997365365497419442059374161894735662875917920136689178119182899824323707570729448332611469072058883928843760847117956485658636060610206025493674935993882135744579101259717723510211915017596225774487562595039566242423922270698670925051093590658421845661131896384965040833188064910226396855763008684181915165425135380659303007068518298117295158009700742152597234351877010849120311195871757815061365816364935648131661489627739508042330014891345667508146874700638752448459294304359793373630836761720060095403710516747318073403876432501406191769202167279747631484504313309776904976453112657192197606196630736283974826323861480363593908726433087847063140601369977364531747261315682595157678890401038397102959519970756544269231218539579621030590148452943318871507095035741824685612363439202679417819543089222233603349914356525754628265750859345815246412978189289155249673844890528988551664786059926134133883819075636639282350032464896809770248057973901632505019011693941723206586945292108372895257368414032173841120789723328190908967955392258761837617462807780034612812564722408044583583358492880610421430314203268344980220019218621573444791258881197613405256110230099209417178721308433755697436071491626064901090558661487655624219173459238976436302743108423997262646876639409405012980120959604538636827923374031723383523252845293021576279636783858715081890505491557207255828635093171846904304835518336807634840617143986653768247247052294651145192940803199301687211274340733582638632042384281598518639554497883510003541258310119066405037125410359532958737367144567560427017791150955777042292441265503362341776358285638592104421912242834526113794669043234446182603577383235622384256958765197191932999338259861192554113261163898821470653806546824069513131890745056529564891713705650773517280644706714023830987307659059617486549660306735703133318929098465213000304251198160991214556182825156896329645692829334331601463826387960435591985745495292088945845122739964032217005172898189482665737929538558288498784915835435212081160197103639431025976105162246245018586550193552803203911768035421631556408700523790928243842942185962422452778478494429230202308111897963555803013170072520569936684514149199390517623484689387092817070803322909916905975965278210990910598029382779602833884814278598373218675208144928655432280480144286259386703141778313980757938946452166107421385003193426707696544482387967526852441956647740796216233859183892849604824319788035060859178016892704070823386503807829333007598049086601321626998601823841067505519111632417047234149104005876683778723235070225973754829118549922510746731797073740362669729790613632152715637635445838880841420621292596430063546276468652283474604072599608327338119062030750494419428188480494724221687206072892725485801644926715675686460294038405509397424839505306591800748484226127469542582005100100169109681583652161471586807687262155238427774260294956390177845355724937798819464175009821521980271849713845163539976884568560212380133744693535174393867259349037847412067744854002344933220584956087002308954173932186198541966933891314543555416712536882642915243047618988670136615854961560351842406014040739874481634195732003914927691835284051445190264022823240398900407083479892930921012423066224727279989342666520113296707141296240390009581249967667303594990019500253968087189007295161112789796380736244457531760060627967103689726504414393970101743884924744204659319162275639424430037568896872800496049646473004530897643392358571712369480483161276592487879453848590583495508056385892092984860241948191239854796098940354903001576703764800271258036073685625138285794775818396330468311883406630242286836242207749174741208479303622943943053044744171491606155844017763018945336799519619784007824053482897680520032038577637053755080090282572572766139799836496969925477742153919969057840360071601510058935287867501447732848758670352141110664311353084699015224722521142418701521628755308056783944351739289195116125878996344502901831491073001950692998442900313235694264871801882241015294947348827668440259988771422699444506575094237129848427016873368384790609549326897700146919655516230658137071654078622592540198664897687623860734100960862022355790561369292296799851942409411525764419096089463108112996194311941078667488475335661447893820729330139449154038532966026261480152415149826196652319180314445852472248209946817135144678653147418563091305438601868524305409451107944978965929943164166927558103692181417085904573431068179573163852452625010304040917517237243524281146295221532753643748584049252917955600566934837464305316228116469656950727227468402191021368983993192481740941170393279145163842866539450699297347140864249956201312213311177978095811292009156087501369790847523289662490662660886965596092415019881595901083881526120682283658507924668368495265133560115689941363398164636874614127383111816301758027866323789579674806917403926084457510723988674161860792696942447759986840767562968344152962374186706040419402837381952037169549461017024487443109280748313077924501852896923058977172985144609314623547039558569956791340171682101065536826640113455002726433617652538910948481247156358315882733929735042407895484333972926479376000136643510459373771665346896903159971309090665671350978618562434265389328354129429666812000606771829664754101266546175188795790365836232964448860170778295319954404624808046926233913064957690248892269325333321844855168594732766176547150211079669209513202017335967624014628905700239935847683218297185543746889516434999635186854375690297636691915210293769983932431676415679817494061296904729630307633806208572020552693030122401316214494858152241997688281848809335543617756076253125779710675364050667828912490944054115095770110315203414610858396121504095939474832942961119450401368185480904042640847438496973704908391514754691005195861562770049589868114541401599401703365857300542955196188874682996181903750185556339341495328695116140512615152926620934548094000906474989839439316785470257090853791300902515447919411725189210452254086105094467138040253502085875535855676739126718544201875195103619751330991106857560276273976670011091056264446242214831997547197656649715724327263418765643620255684013139635195238816576361047987100591874455641825372030921941256913428454413146934111674392772142798511525102089991588573413182182858286679456367930392080010505665268484274766147337657973032176299812391075294533812179406027246886802452574335886160447370653878027026849117330607210131209319720369187910650268214606945951717290313340478320905400343423137672271512919041002171290225804900071030381152848300075014495627706398378594618264365822004595066886404994971772450285533075684837854168546872633353709750081766957028180757313340949239146232176336399937555580594644863425489118050835135340348690376092705995678661306729331184036749809090677968034140972046870567514616303050307058635219267663779623168149840421941317443746530053545214157984959117232104902123088948921548412824304432037204514937806449091473426287946160657005744708440520461214939845554209020095681629209287180311892895749079865282972193610306738118745472910555468385751264739464765250223382959771551953168585797795821365713471532174709431155853005048572955801747711594790564864997042453816069272592137788118948955896312093190253643439510704985738791027129311416031819577117804935782560916847097114481053873734753953779226403326825465711449855170616829108018917873512820846230358932361634513641303091714808905648644368443367722252741356135373661959818934348708534043795356645824721035093485247413028380779754097968389895137317291904281533422342853580577910161778831882893455796095599553418929690944637385109141486608626864098149414317497411164420352356102513324996278267486066190587491098176083028928675419719365979022342631360964099572370319061028825477851848576527053584746509121092810635321890461403851003735418730501004274496351180823856712625365352272070842028940627699608123649440265198321871748581743042944699973410502666619004318326632232293630685369867679848745531261411571973445192357883880720216954246005921021875773025290077299952631344208379633798370374943926025131518406325028896577327053390547312906957096656729183891679183486271405799633290881580208566357475462230724916004401807314662906607717645002466544461017443847900823609369268894720943133705784681545207300273259140513247194191483091333368679864879763891146045457211197798177899551078203121712170916588545633801177853598163461212366066616767994445714560934672336405188795588104885738294695567608871002957592213258331756717444000248577974666988839173674645029904314408080972284184240027232527884515154863157732137602679542126398869674018980025688352189376627644698131837207456656204841581915400046057236680687019279338540514397593529005196530253232347907988360839135411567563267336195346530952068446508394112115980932232891220182439386438909012651026749390900595971258342876088508309338899892792466030342700823996687589330735773426660341039017021818558434673634809951515681654804025501161875728672145621806935935140382875636236072412479060910508566472098019802292703719402524418291831182892037020260645689421013185717728697954458140519988809297709876065325590417202995536330182964696042212133200871849601951358186089261464386019925543063533565439284556461012642293343903855308462292400807876773227220562884054151563279286053261627492408931642729796200321370914603127686930336335247213549272939756238720042007177487305778642524789199950651382002685195367246000980129507376096830075811481350678146375226247162444641463240995265742124535030075750980949430339686133429241159186529100469942102063226459353551610487022570983613032118571106186361671152532780648188766309417280173842032910431341837643526756600457030189671865004475182142204745353801281451510311594529321852851049034495738423387215309361730193639144857381533526178804183968432928393264018470894624064144044868612710332864714190288214737491579042319247799198353351598296929475682331971470842515238901861456230727015645836273293846135176463927350699704540846988195001216168186013007152708547018669643638867885105036269354313033816589706111941524142834012593518236694584271566389662882292335733537811503887534356293705203871678402493147627896796623859838941337879736174289350738669905072864121692923092662341276950419011802285776655570744549490220178073227062065870040051241076161205043495075038547163683350864332867904765611132115263855587263606303577421245720463210102156897757323604335994382385974535622551349047054877525532267882654281316929337336834327989025968600626091079977618963967719110573038441490766213477064489704646196786030212009690938520898284988162388404919746215586580876590017136997059688504497772589407300451928824025545105312956062371670224842432688178938226019949897813325626120715706760931313160328062836956702429301880018776711428056099746496946070966803330053153335052902067604624047769809096138396917118162754298573376426967283847930834918617630758585443737546189775143291175116007734776401049774704201904540077056867841171250205080614002047327564913056813169686782518492575381569287491500245712266408742074556312210542986706021115551114255902515880616559505635808339852393437964820318890448305601748104188438499792230426389628258096014889634571656677410841032490064070459711066463427690662282351175351232847555436206938836339707379101677907559722941748315239019113150696689442639482134889158771852249728112197691071988018837940207717417918475880324943600768611714639403812139326799112584644172609016324372004323557096445202205219369015121856727730406730421511728335106518341234607632942578232058473091128202146697018888005440682758908998927540205402744185598688498445662808007640878383156050647499097315638601009043546994818401513279216867409291077941219752897139865596174002016175056759003740099186560270477404987831155105774020859313833812349737056111503022588732618981417356158950772757953861218878043716842628002119598846463270629731293364586094696676689433896970995158986130382468778581742126658832171143520897770920874465350273445548502676247457247649433530151298317326182482325399365107556358069370862742274435829382365586478955380709729852880253556770592749619064548152333407769737522889354104849731346285178172766388482256139998820562283187489806649934103590307649000453084327674175933818430057204722966488418942791925414232482674548153009518043321961287705312526413102390926437477344881772447747657916475847368536541280258065818818427831571587491121915832194906240672479582293826900742062528275452533388483829448626819862606334792461139270179454953111973799188659876250967071196044442922159969447374484911358147577427372412550651059943366322139931856215226390178871686361781095994787269575686353890100278813931284349219703500252810434130721229783267599369393770979921605801489376580867689575718757790345786601700740167620236207159918174512937722870941914911808085451740039753295771878775617213010387331240901161381271755897502411337384863064499042893201731545669139413384628666016646564483680894483524227254319067409210994058140569175368208938307356503500244107755604458582490033758885731996128150790455258448797712232915968931196264955473606411279325973291995146319135551919772720567798360447180242845743473645195484931564894091616264074362220034144669288563625083383428356248747483572585899185144919146907089547217339316639822908627905076587511705679598201718073266388425690822592150671911537268894240569643631698310611286294648347642611165060562114299460687196873311341810288031931356101340313302485175505262415728640492026181104789766448872697091000926265783250479002114809663204605714333709007210667771724931694323927385712334106773200545834155951711647174011685737781368127056402404654410666522134011861822172715292064576622736001333226794890540564381115342588158941934241608899201289741694142312330158234538670639128567902133634201630201374351162504889953398059001721589952742636282306569298369703671783263255516971931630703658320633280994602533324345755031640160188569997052294595558447190448711844651990548661739264071587956829442791642696036794598126488916507065488283614702049344243609589327748546488756354821556423632528065457074713333758515980761848203839309217816817263720217240590353809678951353223065612529156721551435846374376342362143748087374540793619879883914136079850514381046445912283095930388660343249412568728176257324650148683645002836583446510575954461752677615603017038906148733085134416927203145044405598497041257593072217794667984282185994638126146804836415781299991323287409137103334647529259852807169061381416437877719754324257831759321283074903507736224789136747141972103870732186822407363953600739837041771070997343126849868657596372529038133360594967737196374635257408560596729312882081959704525039232653581822035787556263798469683997878138258298495794016400718083245031994384270264381024753558901967653350863093524727855850410130236856535376962631573820847585086506270568074155529131242152390879054087216501529174394582935689524829245677312205998327288113621284749181972114251603479653013160062022421001593928192795696305117127941337795091895533685383784641758029252903255212525914041105645150364918111555919467608392150689919830448981114656100390961129178187417450429012731891518211981321319423063664672083304656484223317706865579435512732277871951372633397781719316746149341399655447070855863550400264691554055101618786494804402840907045560013755315318347575711215748856184154666063639399021977105434090184411617998865463144258930932723464345476961358378398799945996463775000988358251722122108644576837726258954154683771723399090739257165889090976875202264811436206062373155798250569988694971920060781699861472498102866053705367691316178908228357076609572429978365665771590871898773412495654367741977449204998272747267069795189711902861399739604794026084671979038892471376486303861643242682418507157062422734684523672358475178925078186930543840214901059261854487194077215177287531039257016403054687897159767163171119569113217408125565967102143527422210191759714562959506540486753675367019125211999530004287886094236834566871975156826099128590476032037787826791990891291813411755125685591336081784645425810639842092419217861848745589765628024203227967368618354096998251426131715927845696769816558535078065619709763202896837295977405572783449040096242298417254836262282448218010553554175558907234174730247546199279141310934288487681306790455822519194992246611353646456198463075920475783712943664270005721529678265923167175965573808922469982161036144592533232563236756580004244103803892970017961303874214015490302143887466607217060107257882758254673064600773141480050496656016364296819425925370579547481366163728289062980773605869894170029938875988877673944186487190872862827260983359943356654842931692260515399148142119366654304960262532711901584793407063771024294103565565475978824368097958385658103658971662772790809192459017995261275969747155544857181237010644396409372931020214682191449183711199852146603620171991330961714421333981214950923598683368426813089954203747126248046125031367430622718034023226872372631782981971854057723102024173209895344343177495948640973503165254215520337850191364378712452390794529655573973489096563520445440263361883771405704617661740390866774561558561309042104907996017467360735510368483247423449460473008525419686986709363932126256821043371097478796000855096940236557228489321377153102471377374698611659799575577714964098686502591553414999135244464890043016820661868155754966521883321164655773935246530490409984732399788532700461013379409736869495885051003051402784881694967568703826070131498650898250384314347302292305287772260257134679278283865848961272802018255771424288751661050315359650733384857713218717192261305523842269025202267014332589605010804178075904182894103828465023111772881961503141243018734209907381988747761912495179006097010905704385807124647170476174871119061034713324163005453203424949676517423406854465698450907872512756629323604393826964031995543829242909987270792219645067384456683094462767563859263829226196525331241392121157585370634789465641529890838734408091487826872622426119305856732300298749780978383024080037507447917099298766851424274791269325673294729666197658834698963983043967118468499326762580235556834630158794557958186788388574417860892412654577194275844979794852104766676253181326461101182554077090835020323351704748568242125166850711431798450804040398288211091587945477507567013275071152244067905625887261004902425771803903059099889451729868910742904983749883212695064064419683445958826395762491132405647210669299364837876766088048866114213748711363384095177702526849036775076289341488176016449651851989176077030189225252948060352453961202048937914326240172300602267594907721836592981636106838135097232647682707722448891223799805525668991247678122510765750850780928516718984991299645699550414042801247728746829292531740844009518294416879943218368927499528745784196827997106034002243195441236761864292746931717518753796837606574567077083746542565004540035058980983758260685697168027854905004249131789006940404711337828244946518890775649290660978403135578016318959263974447656020714864043864016088205753706994247047879700195473743278647549417612705173778470883507866222760069770765412900841600725108782141465332819015105095008423562063774518490793811388385136405404619810901677655862862709058710338625331756854632076900925882915905259807151421124661659475319739891454153762823330290946953877841942252693390294272730072673642897751488172317416091743683625719255810951468601776963696491582799630832998084977761514329771042707511136550065573984654336031976578413682200594727742219231777678401202285499311267536339169480366339515913393503546118530838848959346976881602221855236417299393736148396541738974495513720374995622642078014073928819280334443392762037353685549160290049198343718771108987356639144035533178364512501279626531634542971065752305109592589790301461552180725246917933605366412387854502419398907994392844879134332127256561122706723737787251998961887738190678016127526457213215747268597601172490388277509200150803336318837213970750889200441773029059780602950259625161301299639430119134388520510006404776318695027597257710187931325341347684834087508729563098555000088084198208435109798225765334548967811253736180774663904215887427989532376244397105448472955000628844962220309000880576623271528408195831629159460584385658810591205630892700340153147675003593898142803232847008042108154763729910459328337180309452785767658598479662706700367464573175593566037165120824345120241492323680986650037925396931099963923097071031020551559408153915911319722936113940197218833178932432071611933463854027177817688556073600725788903487059786048057757671011870449541765408599491420009056629384696582975580115928913770321721426309755859929914766747713592965320822890791673545860645867801419083559903621270787781081796255987978006792440862404041261073547956813995398671870377473356926498502398564075478630755117254433639860674748525466603248573250334182471647939343305045774900228406272828627189683895913217129208195540435925414164688017258624958206569954511346379136737644163400242780035082310983817020983424452874778040294868981901471856603407616426286995005495689975673790193485437906665850740366081117729140015273914736943328989599995558746457863163348694631532657797239143743266527987021072415638889989049650054912898369655669629333864224915754562474328072873964154971820141099794334097391929398419086515158426278153236537871756236217705840523119323702071020848818129257360437426733643221181157711802542550685780005980777978147327784585973486925403713278381886133559891915952445179415271276967845144549248349208584338561864186578128324477745861513207108901032938008425693030290815673181517559267779002752547412273290209434398056502096363384880319694643457848668452497347710198526176512327313350868991267233244204502920814312004503247879193257239571249614731173288053089610521420240623011053674921074289884106265097802607336574262527316431837312219830102789267147853786095002241496588396232642235343092823537821015740258809839608752466014068618260630323686472654288591789904041379819854925710688317180950841267174086459607758739463023628111392967062013224648805525676596230423038191945415420209845694103073196188836610573023300105158175220143050234631202198667596237891633966977287350718833303994591848839438561038699411054891749838133347855609458938524578356828285887619629544376104152774946663731202468162620780330463090748770577607468725414492873640213545824603102351845898512878427202060074491976124699976612148405370481101132454549876416246998779421362171166773593235391430071067078186264012485528708211602983250581386027754045894136925745533512127538750742421168283311424936505146863560887002430259872076567752294033659415803335113165854218438042289592696000204951767572183604905164505750374559714012966590814007854850182252597499491404819125645961529866898233958832512358844655928371262886378703915274805024614875719114887345277644495208829419026103697715404861879053265090231986556269610057665576995820542528273120915807368530585798741314407084231292461525248095594735306173082902819020885132162057528184985002626098117938346494003633753499408875314190939312903989714852945398620354179529492187395645671334932043779333864866726206867562987059912695230372787380107431985974070374015361081365659201246868478718335229893468878565697925041103924132347733673555162759373059176148484571726033195539748354066486223222082096621535090745320518160150202926425370683653139100128841829382708611034125278501979484035332851782619382340995598047087559817771186805308962966318719240725384099869792007484582673742584116944659149015193829478647386943022029087324180622765309848954919502041508942142811093256712507773002064212327673815932781399563768777225734277306218634235525104691332857539510038294902158765084416611975140033445384479448449642488628826637723371754168914424032365266097473214929106446185403634998418271796657807231046655885493218485645191182171472588287701897069124157617433583564677216710715002853798135463732497938850752662693362522325289131828914191144167236995292275220297035672328930747236053411467952660263134112183133033432734812488475630785314042458132788006507390363337376980922054927764670586011995240062373897533863320721003336307962056788979599909990079734574941100742679001722723646395632042629533370314505139712849480483714160720344689362079901047420296986423316344992216169268592545747597692327357842871553841276865622267008044862797116810829123769897801881128578968034230384162843658218519061155647882103897671092479520752481284575325191604098715643187667221124241523719069341850911021991881914345343172330382408791751907426370585838468474790580683689773725422234655867983465327881112509647775048725520215030424675579136235918234194702658361923185680104704447653784837692829404715721642165998362534331048516923916004550169278105153655411282267628845745332257573809249950777718503867650301816050323413932716043334866362825550687377161226417853897035318975335559137798379653572484244866264895895693014031379763743779615070505234285248762522105552095160514873160191794970889503421094896789427908558634060825539910340089447925803400759170682197002095438593970475841927497502699662693413662380680932464023955656760560148015211853375397406225146413443499790457189194599706430059675529224187312072869695932398990069471836727765468139087719131807178381163902737671298699393299095723925668288446262331140440485702526222831038415923061023855548299824561452863704744998264184518147616649333358856924605408430750798792087565720877684030781243853712257894397827163943864761999246162385389913770114281805634923879185288086714363049441669219596681756412616865122403467596735015128565195217588115014554451819279918575229490271122693088595199307429401556983253758421308134652640109123964877391278895023464087297982409581796650583910371994814543369329635702367179468781490520534657093776141016881241917861395933235925827019709785639147449658446277008579898899339838636305893846825148821778421059054003422844865984811032794295323921981361253242491815587741018296349389681846421460513955690627419817717089883363090361492820251484904284696914377430788062729395882656091343854402437210471157599696481268546738365121746905012233437465796620617816213580516992591323932941615387426618144041728417197080701653167793249861631379897695593072189810977451429788417850998194967502288826211288669246287805518868080501009729219493849970123002851943803746760938040725225246336290712239944858806691985543293016194229913598172954997696497838268875700826535846983277802247115763334077958566237601974089242957511269709532064491120796073264737576176740734294891379322300607175070404299378284780909159449931865389784625699608880921922185871704242921051352732711600979815079022428380127197930284447988207407364539759258503092669465859366205405038899007309449803001296000322573158878500997513071551558714383549420596716375372705974141660191029188366955591207249187000470588873398349087887853796635221854764315019986718750286774577455348417342808137106439572397925057200491134761440508249755877948068904091539235448280944928739986804925858391936599020779145928019234404166000167029829285827485633657649122962630184941359710929300314818747754945349838247122827716969152883754588084793101901870059520259466176965083937258667580986548190573913337186149905956181186029896622800698119136289215047167265798836395452620965077309379227260744871687958627177471317205204314191797425322011206772221084834594949137310579221912318340053705188005534833333114391200929696059555839977070002034697303874325552794531561475566298370690890712414275747321640967128946650279424130988403089951323234039996209848212782259908888564502858361395889266545217424152765185974194344203371371344840360968084791172245057457815509852849613316686359979981390165532686936601367576253582457877753303038880057559423204260481019405707116268606480354142360101350818234743076016109376690403790010159459211298238826963725962758798082649755013847227778933880928412274346301799997766955570004935332324987924335569058305357022825828591752970100988512491743073250886872728196905804617111836396963922433977439607532227792885922260122833886521537413747415266235681358887801124745646206508625073384800640917362965975785004673463203407553905906321989413351389506261619267662776278726584468427262297883206554800572894401278943385081772651363249409244065428240417472106320731780240032487735133311790064372637440034549988937479233563391274669890092122938070171865545164075475337621023439440013603886805399755282424426187311643393285928118886105574588751259801771706991186440526273593178541708625285673913445745771933984703982974839300133721891583095007314871497868735732810665745280511091836138675239376298969270166374001843520871308696347508762044203917060806190175907158534301574190143618481661475477649505477288868513138495537542826881982738370126941968211371700762267531297103398209599700840807999056362648522302907455686377422221360125205896315719539177773993452356660080775763876226030623371613160416787267320171431017779270850993296313885755315796994909010137489017125580103073005088354929847543582429273863911265094586569763460865282441022502554288725740852864939167289715064407048724594562153533942979653577346843763605580693099485262185532048638184397461776947180372967424566858908035031048244822897499067304229143903056730105193267012806811659432305528635432434020015256452454896966375685598829564466312719141789512763991632385688861644394734929358132655915781780602784748830225707021292454170016138171612056339133685594098070584091254799164335364712498629334439130038197302295511186344065129022638563434352477286443219940457072975576086192690289844765237360539183631634757553644761294237501053065723409125717119686286944795164778395155269427281616396373168021131474626386702719252117849065524078128681799715856700016440893400207460158763485199275891716411786964213409382306634056249136673984001396154309869383100834657892644527980325262044863780488592919055911565223927708671933360501354944043511152396895107566772349084780902071833040602261866375468940382499744961143134198188786939201603784308769065220810904012683006818236773041721585385807438861064523268620014097270989321215271712942379527659386066511610979957192259347694372012419884283890380414932788602841282883633352342378150953747642544270391113448014147122826968277062269348711496115684955949593337058119467215995863991321833453448794321264229967860911701978931346938304582517119309081556206745863986697330695436616632036051739258635578403343231374074131553206929831870162362095558728450127631563196002017157960530617843970849840383160125937938585596357791317704226151767646714308131720040366707892308007422498377146896893553799995748994092853754333562074039814366520235395089332539428922417176919897781731887413692934017772230084712344703185240707421763475631704028997081531113394033772418263283320771936053153171477108200894614431266418713027408714718688523876379501018341927790151564174107127827921449001098164348030964169620829979751246663829888885873714730371183936648494110559636179649142971359778165294158634875090783795655917241809420188352766502508367155589237912956589120158398544517503151291927211880796013354446895428794950324688365095953063920821601034395820093762126537822431650718981230423091808756615075051016368195838478699237811794732497557810233472990991237961681166897709663517465199827015050357731602046077758385223085585162192228812422829718578692629932885247577947496434801674237285966738610570685967996486623211303072107238634960275895295468354885873985414391757973606542536792666177807511951707805514529372622959526689579113382753858557211278950663764681054970753397109874425014132149784322578649725561788052396653327211412943678755489768586465242453994910735427787837666092985794309825312969482798045508561736266965437016959572435574335148488665580482071406719398088475415906355254958322859255011468485927178886213963687286754662110270189335112645683595967271800841405382558416821732151635596433670552468495882678029092744702882260058535970576666170591274359207332850452698685834407302092312428956954775791620528266964059991079594911099744422679344578753024090109522857694707092860677013935625863751735454352991716480704309516768389102374778358059991886257882999223814839496959647465472897423720192437595306305659828137810717704582326948386627978904108347778276033941973871891614769576777395559901808497480004152138892207585582409949441240331442900101180076334321924221727431365663707152648972204549834796690329382730189109386715460821358209796493371005328548401199888919052705134749274365291027496134319235004503839328994560960523149325368686944268601266123922572904324291431969279474876531508854675934429058190084238130512771141750412257560583394761027879921530128216923727226955038398164086969731806013302961147088734762157480252644639360658524100466138876048358397912409600780561401580397351594099436034893574198245341978848651141452997810330946044339729547075324980591209703156110702061577492836440238049310954012955252210613582965884925249544774194154105106352867335136618369394262095958388342534889508275089446776672633268429466594821002019278074505030532858977626728102281097847122817617470137418867040566166532493226621547463977240055060281769719536765168663909218951348604749206502756298352872227399763701264293721670569201220713551418037696215748715580206895928890945661261342696697558086533650453919613161200280124677817753950845325194581226858895776648703073917713503939192292050480817627716585523112163527113950205023428206540737134195407630038852374903490596299934182370167987990575297549411401761295736477283528202408469648038724059891541275228884338904904078924655562581184037394722777855436828989334986128701555323920331662129779596473363108797153038006846576341199513934076150140148684975837676667991695999612730596929338526716330229701530751058972840307051266826290096476010320876096271691642297458520841734353296705676518518091215870099570235586209289112258407931202174745960079703295224920346934084919851682825149776957485842794751151800982014429628811350264536811130464392068158778553368618859126842947432550074066548754550370285525086722177560194875908943101287731115150242881085663271375399635073817337632493105391312854902628852129871339370957393277610617190806824590178709046901487126594058322942512553174658110648210443909939879414433207502514368254947316602278204083071187703597398178166546265848441550102731657105945834619772223231236884211046338702150308801404085289638703388515472940344209622308674377353322119198016367231326139494368102894207961573292005563485491012067912164282792613548766719453337025618038932582648483565477531286435379936848956617889709167884904084431785412429196819505062159448237836084311093060721970010050421986223251239316969560119672630706475829345133333135248444135245602778791976464780484604649647912072821061044980463011775210882367941293384952248470892472244879218903327202696128087747741279292234296063348826860115446420931710270619316436875430677590846269505790000407720191750982434651750309542879287120788549515032928594444342365508638729614447883619592046199965047507506502846055091206103975975258784338797103167230625505436128810039659544848057190539808450085684192362795316269453666553095805009502798340005238061722766563020343537522921680237719358516254982580483244963655547307310382489370313416394654159202624683349601935683536097249203593282967065051539757524581382516991292544281886514559874296047959010246486744752160265382101553692209626174120805304828356030269284762767024384968630446135952298901438580690381210043580015668771457022012900964093493944813417863088117204419558378505563224062084099583649607275794021499399685748345706120950579128991747911444327443746835845445773281480151605821071754839691856769844729555008003547846538371588856905125911499997901514497314362184588922943840307641806081231030619751459313842493621699209690000379185965632364314185571775057412035624119622681873880582622481761516001581332547000744977852449612757999453787922821219902877320897681622920649294782516010323813472289710813260633545501648014448158515350563053369904548298136518572667255031098430638796325034811947921304005664326997082481969580614525097552778636311820028228269973170566530971192839173188484487472457814684754872048918260739699626978788501249558205178211852072000986119562464116353745455446855030804580367134538076046511263320303912648620894222988761773810606843534613789575546850659993580459130282278154062695787527885229512305342360160439790162531539253240187509282228975195435506638969129743492029957340408088257302909922750988594780059128858644916275473883904886181786355597554687281251077468252995299424499540822814929829116500320262155192037448412647231202496668249652909465829498330393566988312616033917983812193089878799741710978498014459816785090420872594134366756662872810101551637987925749575335455973057097951705927281953732090007597851375286314422239370338137958185149714669039976991214475248683513994106297369415210164272466059541312047637043852130502295495173763582933523431541597333278423185513755476543433425792297575556113425536459812354621009055450382661892816296022345607316048330085071255703822945465107224254062832346825441265976574081440195829997313326557114060674042686739691657932393538563359423249001786695995859926603341900303231167125012523934492320899944595082321513877013820489900203142739093082296742609792785436439145904942644886217653602307133165428123273190940266872346402568824050923853382098747289265117362214599825944802046594911146037130562848272838517885245993287074522305438670659860998913896445044202138265907439522288796392624318150928615189714839523871278211220124505962279999407842185672647483609938044388620157304737325492249742278602481861676456478623993595750352653245866155064279145295937774738006369530584922030512648003475162381243878391503991041261677365409289775528022581775622876397088000717329001885724233909734483917992325451849900770983688336877836869314551254492828850617472477113714295301467813414096490580008539044308860935870038742805336421185540799560878247183776022882292037436475094440537889310746308173185006994302172627515090400639957697418113605462117264370522105801607202009018119540443782671254189449690901462913758680469170087496970765814227631671668380399388384768497681739955985264968202686273580678686549014383577523015827023085294369888229172610757898954363514818938783384275735509695796311740544870480619777748079777681890528908124935019461777342655724898864095660003753912072425649789110230655137275745919602307045285093097785066866594467603408675734527246033727533637073968601875437938084273943942860527351937851420215350851418233346630166135316132349711509955442550099411204206593142274276773472209450953618258732889740173064314265009096208313041423385766606765632940976153120394374229268064922246368989629445463401488612452549475384091940331191095787970110406752678598681244757954417927203109424105006682215013329871885497943208556651717169766952980905809458328854525831441025065931843170413508930377417063479694844474752369301686412685179572130506888593498006323586047455770342916443059233829827224701545303221498830085801314577172232936495822624249223901636933098873398431629344790430763150779546865687364744650018618084795021518422069099532328847845698924103967653244479453041110081642347630194441228277297622174545174256494659349165343777656072405985653588065496048251898543554272179026978178955091277272487608328650415520972997176462405355975278602408065063931166115284265092621072995236451784309771187422892639299136894560340333548670586184190740049127230652688717404303298971396867940967610454388974599209661789187590116064336105847368229675800804127636545054181439546300569894783648555441364369349308288362086773713053188238457099943709523456283713356915848669041546066813839141323736136548386642349642120312036897556433992978393593238409955200013234013762276253738219826747748589209838609298751993050642793310804700240728886478325058553659285746405540587396500595699927661378812863335864932108743382526509915024840537502181154934987870399273216581815684856728170690198126001127420472745079683807533037473215713562059350064388294129011146767986059057012398462190529476711563055832885149245069775536869496362270450563989286300040197094654295944284087107889491373522562744790336795643168907992138567231048941191271702422829030872510612012193600904575804376335198806652033465357146348858805004565857189471997488850473335935308850574469234337999395176354451230523743562825813804326316786588355614917629201554210212256579476073005840958351952870843814780789384130011565645431967280566477065682827957949248469057830705951593422435866058910788834237831065347854204594977846421956498843624065475443611723073256676029082933725164734554287443465721453459101438769686744991425563196845892149545607031006608787506034808271555034477712568045118464739185356184230820664485242398834161027420413079174627857474904318687330404846316094906229543730090161196601555518006859020331135464797215074872849542991017317184262944005957859228675236413568236420661964501789370518396655030025756202538238381381346667316831054497274088173106096164265257429704745684329736925156556733832951815807313040854878294916269261857004882318145593859025505886906844206877944057790238230323714677865340499087085641819591482471485042585695300733786342079520434577365221034847558641019679637340454467607468284486493966851268941059303448383364423932642883034502243101301274105227006916157513288279385335308409281577555697037414022266627789969806987735333110055011536404322427852419886908448940435172202849756829294273507980755669443117346809103036365055621861303157080725412475691063235092186913897565885395799775127096667600429574270583986232486606366674727215023735746241379914450780553446466324443702107576737573591432556787618970172571300724088507676186522489512335432408167539442436642854547493769726044979764082634884738475548045222950375382283348011859902547462405560250285672675075722618692749598477544488971958825656569778902494698801668362978190115369238867395622160188591618602805034975765813676441478566072458335923355748640716177117165100214237019449729684289450917365821978376818002703570444987745755604831039995463757276673003611829516729748377523586382684341735207901929349515591612573807927101340174819472964125890752344357318141165876799828336866995821822103728434149301448901385714729226270255958214318156953858189538304973686573873360562064662473355019464602432884792695898665544993700861949310426766412584569483241306100256468680314242820767736055728381626273640437026361848204957331050578670662849072256121791225332752682022035808568391147874224885237212076063421546399060705381136500818122096413498852872187832020314484852739902543577477436198178958931771989774326350281591914172117420860979198824840967556535593386472847167807542815552565946053678457133120409051011051612186640116807929905954335356247816135545499343835217203243049335428622178231931597416343453331615568666103947864160392430874551636028752434703975661674837706935133739666784389786215520892412521410482729767623468155269776244988594241459061023890979211897837462001011571023226842071777289626450363870872969656539990872719833440610057523063378404554168778158223830818135519728048106702941877247717745966086999055555606472408814504648959698727261801120544013052320447790444557595329033780283033725517203950077563348032527536534016917096495838231090405551301501104128625031305255029052332386232495200937334395317526941705465122308490094290071064717590618945883116146452241979267622821421470945217386521250147355406920872518331422191176888832047495538521045357989081559924633344495033595768605348698407159682307626617308070221044666374806781703977890973369633364330743369956738079903725313180045351812960673616376180230694959283410245599298188618310640398106502544194366416576547245465089648543205728279777147685140540058890452319262024414751666897788375090427651343175037222267301972538521996572518611022461137994486101977335527304898499641320081216686396199165396884280892048706467470032317206299833737731412793556892275745046882659296105197502343547090369443342790444769040026082537448640763503790443686851033874033127928528855356804389636304741535317284703452121920231877845720443973503343788154608890483900136524889404917135420834653846286204409350123488995173008757298873034285725815322779795522803563889514711900691890739289344081151587819773938989738312018132485278458806540943030726279551972572987525615126026628501937225118704031497187370303181047881527754028301220272504258425612101410736241887193576294345356333153389648905958065022706409248189203218343487212950437601146382935870699232030423601615851037000565260100991509794268496711969019671561168496906598286377813908425335573969456598023945794791185978984240063176411421015039522190558394624431483195893322429102113724841918264958979797606961089703836997289248635351155693065099735795636438971659778216701004913554918071979391027834136159677924506185987764122276158332001920273978146685727977704927350471323548779055773675952518487050455435109832664101377192499787969639616213984991036569168573996587614401447667124784147114714884707609174492385146410937570389356909701218996843560109701018834184077739272967437904295927528828994084554304509198957418833478933370274843434834194700874836614963328401359931394559050100682524702921469380975256197359020354062219429775168053542409104874357103596448009225692659798402794318379591954131072971063975436455301462878463500519401397450115927866993646623462431519832260260094343673363159372215086657502107940069290336456595366129688630463989053784051229926335850785378251649323398903930477508359213827009578380474341442556027973552973141014293617344155882781758442797747166762018665765004589991704904863397494143133653993100000418993697307026058840450202269448648699080652252980962713302211393816778725847098920004960091076667195722836762220294198465867825713316275561363764893604710597324956969860644512178195426760815967062812935116383007493602882752401186439899730326283878543190626655623174026818262115663916407691955525984378224319688688810516724125745121800224423944439663498694000189889665660493256152292910375209114495741514957273739719762491640954171889122662764693725141555931401895839182385990932563345087822832561612588919831117867253632860556201986036644707357639872012243913343884424667968384934952156378391605825129344478513074670082516032733608719434851678959236117347779779777724851978344665196866826503428836933149851450686052658108272857303860883090216076675590471119008297850130002714042191099394917004233090040098284406433058086654051673258454404455474187008859033769630428308928808701743918519105355413318020463455834927695124860427526528720197310658562443693600200392838200241546622866753006772867265265512437869027667000077615530375446256047235119790276353156483891583500304156728049203732860269801649294505918912348514233902526998656332690584284097665827065573167732495239306801423290530793797263103049828019005896313812228079622231045741847339611717961785843424890938010002806633385832483997925937766937757481892540749994251059333662721778017235485754242333479477593947674025025594855690481319660339274249521258702714524335612209511965181104786496938043673754209807913414496587127368138848281947069221807742472284239829485391500816075171946588117185206823248896702371430390053553443603655650726565223492684730662676939259624646954346235918440521792675862173912560738529707766053882887991183808614823014351498346224377344179093613145235993286322516626777843131968876472150348409528287614812404006598139287236929465343597251912962703573980346270676435490716793707336991948797954715639399510545865679804563520949401629969994674949533868291338558058467640655317497203067663224138566960581433080430293937785622856446029479482146059899250832716096249225962393444813177465168825775552292901742679846835178356455174331359373394774106105039773715977292708913376094247026914042139611820595119869207339685906825669284107022325923008606278022274501571384813827135189149401250663318293914682374144566809169248191151660938961097938705507755011229279818386515716215234453432692261673219339533740351913168504256633087780863884054633540068497328845620359443765902767294699213299340586453232108028646381174756535973252829079680702397212649688721586572058924773418388824578576484124814622047766677412148983419318017218119432629518181472515453332863444230379867412603099899472079142587146212804537456168222669321089426156157191033052225958173017385077350113269448926183419055320606814824268956905405447950165199510851509065803028792481944484825198104672418882083069793494296989428389014372816177398400672404544141547168808264688576154194909066880623107814048413404400997283039825479507689385421149465649692210918502605960245511560751533824162757949934493487360980771432281377802566520382892451362580201176014368700330662251403276276734598205449060368510926052878070505170154895511384176971895199736277764395799345861954856135835534230536844395061502452524641082936575037823211392922537329679908917960133276772987952619868465602441742353523509164310403883746938069739960735429586468258674427583800248941756664660372482098144908556906039571112860049530529755351331628276634510863657362150507027138117818936589442798622960833645822930541065172571691436568562865600346509379322190001601286884455019605749328021477242229360317666332623115075430948244680045603772066901219932922302236255124506248177275258466065472921230457321989369987379682158831921271497707427641471439237288658449996138309158186838553460894294998835568169436015084152307663411281752053391482825687898582562227065985136389214418239953721894027206872473510593167291757408721369344020911430888503367546917831253361383105778906430465196232444002942127096429662596529550521479629020759808339160986416200503396870462195751201244916867000365253289754255586969174112065837717408282353007111082771629668757458270474785671799595856954952069901123469249735893427345179188228237941860098424578004381838620841239289039751073197069744370317244474791341571683536568100140273471991404787879066938488373313283963738038252308528795072348148923602786396513147394241853645938530749785682619701834617513709834597381085892791594223143182092062736625592600767508516637845275011178263535765381697631004366348589334156105153365490256268873619478238885415439822726961843328340572995795622062473005661034835101109108652063131678909968765458089384118202274784094492362015313535231170681227933083305551692829385099362080319394421970415828232713513286493000195502040526296917414105841014852832468409356949422596930064344635387806060698011008556102250885101254550647932660586638576675396346153437786347155794631286155890980904161769821934460456161471032434397386758623585462822293890263604411876035192983510893745485261622084314157440183572144205566883251491814154368440962564568453137811318635277699231025618267910833319439100188959306462288632116492918894964236456976201740952996214829851065936839782010739545259407158589091772485119965412533014396326061330723571346005205769036849945605810741660094197959239004982652405778757643877743773121708192154786768257240796657275092615690559122356431096582521747157072298604224666892599388630943678419214121227626811830361992202672622290902145999090945430167091935259586668761002296634772504166866152055495904238093969155608951513602417422177287475397717823375575951600155499903611095153866691886135399203571539717307989476432138507986171589906549438063642915732845134613548110758561825538600453384907560546724284180857057979105430779632381299377226182394341996000613281123860887404868546858645444614441755473832874499647842839557797059106188086258711870073617882129823012920376196244893346049457464607330760058066329537227729624032842418464045095217649104201648442528599142096802500511796532847706184957456777042042199777053325410291861013060030701050884307753539734495283588691433800022811323164446268963831947219118304283041082407380044293904143180237727820036138379844100022119340640163247905343433497029234675665718989294899319940728338321686503254022912998531730992134176841733599703209254265596127110418316413210755942819921953631677512220655910489898874907882123431174601447868827276112741369942121241270827159835752630613527775597942577232697876074285523705361415149950187494034984243154543274328741641807718588129025815028427191655136167118616936733405139340788067252190519281308731555020195359145135517939278902988293625289501820140217622355120852849264726196421830796112921924742471932131025745365869410487874524791586661091034077375272246422787124576214661423187482461725143621927722968915199558375919847966253575784658795183399734679755690354328405552512372810337064496864724476436801193552780493721238462769730899032180393845590378168285309181786384527657051603174778770376710663486384282561975409470063866292897294003431226166418855477965448787276018707199580052751369334569398787335064369883247752124687245234665611967460602835645434859439139915591045136385717255703506623990334844922560946076611755749947640817636059608105712656110754066521227583676046997298697043375699363805457672815453124553914526365116823693092985184875893674208288146087805836716531370596279470206004699678508696401722432351534856455362968869453189764153223601365596704694049875065070750798451994565887224835260201397814942679475486395736914319316601822269293166744671530715079245202881568776868138055552561406332978667120899934086835290339492248711456414766190924286020076575614394085361574877937673254072629224537568661385921217626168075929529691985122101079000303124469125527766550629996181216190033407874867036340560707249808349320122452710101249145393916429997785245004278080554138135979701412925483326469911351105801999665703698007494364214094752234397504642469283092756517263080498517116716320276850194433660542347384272878683361249703214534213500120764902430003703739522074872321106672303500562175766341553234123192556415584329054702554985857265998325540506178358038220000837854327325567084631038913677250606440050446327311573611302742473541001745405946596956568055012416466379580618288885521622662496825897359835978816203905157455918330877233399906733824558378318161236166532455783323042295549165681078644647747712477860328506113914023257825801479662051213733607572073011193780215807024044838409047401982838327707452189353359508221013008033476574193592334214242146800355270776315458955336483298797970325092252716297288736183132736412377486506122775366384722809290466108114674832341742263051632306041981523316948453422509388261006457868011513239182241890094078929497874420334427823381113459150037818751468381860972940695901135873818325450403337640493250532815212128475796135746227596974405633386871516131241772057782759931091404926432340072793437878567254426878278094099972426598597532414725028444437561569809312044616744288956445859921719287635128679020614590003592331889511774886897959928119161475363230499710134140187991329584937950737667145066563333921726000714915238867544822190716198722349844925947907777828016455017094606785130955577271632831589025860868761125537774755276496460722464074371165557022889683021668217918984924766209169640870885908898091578182640468726928043791508054321748392175045360546627859523019861696856943151019936298417236539386005629054070074652490569693216537185243803239780709395031104412151904584871282245730893548947411121141788271789191875358159330303940267936432426649954059754955545022265332345900916577202266440409554033149870462401955994916081902203370175604742406160934606982917403134166842711197261770461664505253789316689808766332740365149177186658857348195211019179989869390069287991018977129035049793788770886665024108850207659695119819185399130693746933851898935622967235485229200204514640115660643306352063021409447393033141388721639801553529141695998370885477439589698474977468869949174962193082257450691311812270218874375043960328813767170561874982940116373067788030178669564234731165699818366869560821491987070399741659031205518626175641172115407100130234936967117444259740732825785981332660574118138296466004407317573450158413581830701603914747817122129731730042800552626759866607782831234037402725753454333900543211935794328788071420927583820173499558165127272684197282767511085526354239704915469603440501264018528722470602488507154321708307126288316188038178368944629658663142250020454792755287098768036226694920840577886451358459287241253813942262650919138044721318054984634670747063668349136056524969374750969912143040540653696674281595845396273521395654093129856891105881485798344048690194752814741070697676382344775436715493528241166839729937032038088227227721694013374761382975501544255494682866888234716650635287631282464188606499727800556643773044319421962021680278925428216488743294875571401997049637020295740385791215150481779202843441090325779872484589167677602548196678625363628602055027594315476643240760221138539846217906911551277170117282648022440290940154179057072403822308508892728093557953728409656623362764950288950382424807080621682189922861038611135902471984141396910922358125171052907457478143471091322281165030872524605807756877691389399298214455999991877351322676468298578086943898165794792867991869577198663726914796110260651538810573075638723651305652135711287225170353654063611647342541669484444823471497088807701540205334680676920045545895250252288086014068254075062242978612097882370160534910332577060916496867476498237075632734111034481887277901442910650281154951550724406521124983849025703316182690263106207330554628444211335730688772079998700726511336857989995278041546212594573981504339134592634065233046744997039281795100172624589465069646812719797537717721148271775802782314614043422491121589780425531193250825250446513142622016399123572145101036446119258118639657227307187983890735460391848616583174589357162318981528738643347558784240685476992164551979955069223899503050405974776855150246352262500570142718292282411275482422654055812596331357074036069797023815948708282696116314614034634055334777253507518440216792697930020742644460587990121757224912364266513689789744750878874414308382524420814212620275231960818219457591675906681108247980435856449355469008688756680540884999748095627877513319648469778296819951124129024944984612491883003886075761542669876139915912818768688119361584288526412177984023155015107383362470576065931424533647663320827081813347942528670584339942702330683108339477848157001059552975774576858698877502498738237127117327206773851925666447641607508802652234097042808703451290374392610200285492868745610754262758458438735632544798888260268414544653071334614985668391672489594788183583183950724563774518645587944364066792822104311150037173916960658381663677983542200597294860490878853393063493839478106887012814318658494397011244055596750725847657036821251044046306198146472702905124656903843609841418419168655415607420648916002738119894262033888476631608773551256984524978526421442987884712934339228189842175037197626269105119362656662090211982378612998803660329935974862046419126270871549733700392897681166445163765619026769111925491875412638155991814584877589762797526150103096728433223600981199997813356140661119674669701893673421762982413375893889160147712425316065597526915050780270511666493327015580521101585870710650475869084521920835327825244370105990938564057753162320943501778093527879742110111898944497851746482378757057637605708459644939217356194021947742054922547960221077999605736522728154718811484096035525523028460510138562717067656998367205710060900906288779418958625567235868778135853107773972083161822834191969084981018505395274703185554575332560308437470985224089695249031085495270656959585752349111518440180160554955938147094654111968404003387297843410429243440230671177162781130344185767356515770123745688931637274840888688563874705683948329501022945892807878036702055148063214816484843503545130270304392522926431786325696281626871274627822138868960769719392738385668028380226615613888866242956161197678451877501954342249403353417073361182650031364458362522566068602861649816876544189454737412231737357244538816459979313556485703545588464922404719297843562226036071379517611697334984437989562842035780759740523282136448041252654268278150672867240083242321361538640301970414786379365762737668420464531656644563736026427296404073173758848566564530005631170146573248267068118227280941229030815070863235851435813578571642339860295163890507457837641763410694222682341780618491591639983259006327501253393456190870795115276432086052088684551781543263929715920049741716238015748123152298117268335556567972547032895011979526070516264933100029554990825053139784334500060290381670833140592667484901673876927869393083949923431956318790912567453863960692749834705123693905930022388023924376866293186760555806667234715981125642903273802622575337452623984871853490266000958252176918599295574895690735071958014754365544100676847688034500437750841706909613172849187525027838028770380062881455971948430918778420789919339016511047203794583683960255590309252385245624561605718609597183440155911371731147463860810164552736710371157206494579957565922690324734310161871405962585356642631119658501245188489745652970653264066185965705090902548886780221083112129711059790655102585738610951249350592806473816631699419088161989689524166385652504851570160946877633000616114224166176198303599750275764144520424688602030468257673805130799707052558165939487819087129343150701648734202353421785831101630898881246578573989998215456226807526828160532368654306379510440458355349614728810956690491066233119578067753968094632338079905075708711532626795742973968222831106867362974325883560271258099260673622911687308622946815791254887559010527597921803014705814850873593923462166567777193858086642588044759728771341741527589729800224947814100360074064316602102219082272321005459141715582345890353186992091210303548037705817360009409277243961563896503745653450613907083296616361162295062822249508659386767010686958642722285469516935685408683727407605633921724216328096389715268984092950138387681484947415504174575034601708785420544639353947001729792131729749448555107674106365314091331913080216122752081202187590977701042678532001527026122277189459869071265580882618298840884367580048230768567999416656640054646203319825802052055388345169906830402832346222879430718548167508412888249573001922743295972456686259286603325502031433142999029368668821316251179372512748151486689453594055258649894382397852485289090724977530343007695560854670650818422287569182438339767141373030528017325262669454017223633331339368646929749606840863680276522137411901454743093215962324780579720485927919189983800036001044042095730481470937025985110175302738087654239566256059290678472807144784719684954030752831176254469359166496571520035825647428615217232495068835133116704005103354601362553827766768156155390881569399408278595717454505800205451153073919411805707129026777321405373508544739587178861414118508985182625678511653571343898672353248977913326154681083945902348513015321396604387848516959757412392216520411017475168918134949073360203879344754044013962743870610569367637672500116739188278876428777524639195630519284827162629808572891189605745023940589031827789253643742740154512608359406848276068287084133582430161871344341105768531658899847664010605277903835186456420648040084678225997905858334073007490787438362255895238427064138764222485704832265273630889137298344778805379932754232513416722235660447313431362822108173234183235198898846759633879497248786950787878923134891979836466532469354021729813342155453725494102030321105597459954671480795253812860678827964703776807346425054293260680800796830008127860135493764092950510380083506091465505483887310440507145694747459976845205790444929091797345573946581198527046869683609806650686514974424137131746032044090320862415960693837237383017056985137273381626867267675896512116080482728195606855302035585624054000895632916169291434454739506570777024227707330238955005392175141258419720070799110300935244556892258983746958551075636490430772632688771630286360849591861288688342197238440996038483637876403158886733373601027662895308974297845777734108907995081010664543839540240155443144989945164843282024626639203533834045965796582576349464892935255277798500021308217473552273120629091409120854790221627893845327727968757893349107878277378574868096691893718266551753147448852310721025810024417942554713494985721129048286822704175809249170862408412030452725273528379736127191279511076389298023520414232017784115896692147286908676308450641544880059961156012228717278246389013539973041391527931672683591440684882065597277626033799959200926962981899523391639174890425216039135750723875639905767342560498160833397219896693665457863019125159903256616579088856306686066011211190766356786226305424679355875956055767999560925757496741394637118262586988703072778966991366645763819364908025699947307505374072783493038277640743795850807443180361501150628365851037529913295473864388783725198740406458187904538293772928411332003476581567474687512279091915953976827175185054834286433543102305919390738521292812997200908821332756343800749584987751908115936991198586486653666425386579611233512698434126445456569256831824131742628169686294221595981789522697718530421369120525795081450524987277748638226924085428384336555292401796278561890382701765616101698180134709853599669330679910743267749245035816066023873835289275225181599521360786137407391849266213365228181302086808825618471510640895546500893820902751006453052938373145010175335681901853851218798576615632574104690414301902641839582235089716131975674368122838745333425450401951285950727495040461297503432222524110861592906026570320381679462596405641027361849836157512247383061229091716161568107001833630091723158501045881157280500542520607472608797224135377122319224535003940905533570464699457140262188498110818862441815650997757918053742710859247352751612259288719110155637115280785227248276566255308736306440657605403458732030452826854202803923038203912316183949752747852636351620720016762450555739648749498535838473519098752390615872481261300682169272105833425191368954219541534011346341887337281562166938853456633938823135029148909900596331921137030476190704096411007308404748905213385551752960564416625399257651478132737398507513600944193505909680166998581456901815969571055225437995544631499935007952441441725646373610128687463297982658173061998109013054886462406176243218864171129392661864724756680986924416571649754888995009925079149825580826615139313674350401210292622555339741468416225821491989910134109867491845180572292476200268635740486576487275466411520820257447908158644758504329500784155123489188021594841663478206688737615582762935387156608933586270376056018875972955879970813216304524815970938279012464119363033864478714107680982925072044194470319432117697882901562236954579378966936189766565724204586938996359526088052898779174285676745460034009496611419431074284502923502664293447926980654436892205455016719006799980101453639227872358856580524355519609376540382474811793086696700015970839851952955876688087107282231302491888935665455784070638562099022881956569919120235654659321324200670831772357852790645272317884425428313612200980528653028899317655938047337957660592723187997091097885968946779812459947969812663452961280238100991700785058458754536845034172414405283318300543306359424214731678650900506689257635288274502433207567941925932516849423308098042204188992795634156811463256457897725852636484511591928658411044079653272195999991102596128438384424376776668538077288326837079395129921176931967404274589707344273777277409823515548739500099266849964433107535510043203097555866582989856747147801977399575842366075383750850724652403777610719905884788683911021511570731741789668740670817265509919721828460346132546913169874263637387938839847688350501700027177455400637577029829214023403687893186672986266762437081958769837947734045096682027060689225381353921955420838491654890141071902638207461236723806003147280244008916646344190686305700806406416500192500969657017343993199989988755935845656625783497473797629828595851299597969898452087430265315004586901340259493508762517479748613558236750293556366946226831443815168418724839018613699039502291628170464354660539375801119272877452109769496200666926848109944375685560704963279314862420867189513110562276429037277417734162006041099794182771927091709155220804478707781191514125714018181452147085286671587523880889669766474182942940701453524985541029355451862112859651134501156676658724128564087535090146104269998255349443412719318010280418413346192664465084011858446720548326725419558913018343220715477717420110707994806208141396859883205899427017023395709864034285020829748964018481410497472465352888851363237551456822959893696624883171793025724021718231550256873008609813626890442823031105915500901139886623144208330621312596767691207857173860907905848363441560494008647337318165989418701912459198340137517235217669941925091734693800050446618330646706493311878462292936669835568023695396402966763074195510180747677975448505452143482157667138525580414035992470696362348331269715621992617223922653736684531645831489541483008134427338325807121794695185841156963539931955334555182514076893752750954748118032392423877772691687443945918029078051211959793399085982741017658379422480553325889200288960699167032535631128160854319066087298748227626054537248191297568140369392745803720400833992434304647660731061729584917887783289469785479558479536349444696453823573019894633179651490757751268957782303273924336699278027097700647420833497673804318505412019796848661849007903750053648244082086588494127003346964507623365878582788869383333469544391116127617694224661720457340827242542152049054906488151575538122514092788169237555677712001203406209082168436096164605702654265279223504778123758781635437425848504637023734654205116925128130767090728496816352820440884900884099771062536994287006170907319463455234269516344730500519832924826479569281407567326558081600146985870993788253149248986507870541269229227716985827955552256078412480945841974890850011437327741515463176036033678805862422740019148886774776070929192432533727145380312698284795991758547771315995577958114900482192850281668387277382013737394897606248031328163874815800346681290575909033389077230991667513633427431552117790280242120059113598564067242797780121960816035226626878831636886730599377790577589924338408085906840024303449253552473001231539086393575086843522959558167554623654158807646822420943110137752758242975485511523676524530250196494495199490667409238586738887760655346740668101392864964761764239249905704320045112021351199211329513893372355360632088094326869317633610674601152990348084557564608751822170677211125552703404707829322826091063698076735365548986800055121309778759127819149604322015086456761393063166369554264861386930309033099848290190096767276984581334689134558388185899780352417604064650791673632385033163196962282635080639233382842574583258447954248028934900611252137445639049344109838545829721101158760032796371680331944882106871243754675073010174587267488562933684280235533106809937649782624797684708274414947337444570803212823617813795819647102936226307220758060662787948578772278674389257645433352162989100233255301787142046520926755290792056346604759997375668979727596012616394891157167297305438903023418731200713380591967012639205633338818187819395302170915302120866331921695563333235461949828956142733199896357926248565950763381563722527452496335504317008678863784705766699032359272407228564366746479528283915070087263894422536992451809643609550928452472566177490491592245903654654768896247692468688071695099039897859332179253710662733113436429462582834635866043983444399323349182643967855476806912125096260977808992372966874637207612653107226962828263309228578411371166064195391757081290186384403324048430877864852495781912277303458301048921677719906808620858417438392034724172676731789261611798579251437075811135623679136424050719082948218204566401128614677854487049907296475434823515002158635941660352746821388218326059985594301798926263972013252713841013666796460489505957067960042917940201876163974716518280086881779798842130291229617865012736307096558213857125928031470708602037188615946433944753793145309873598363462179632342606399965614155334515119640862098029455515617846547619863244366102609970656672550118789713332347638848072000492216512419042922223678168973000169718359784402152223359833720530728309772269167672741463447542106389826851431168194935220357058991531303506575185229665171001217073722580510842750211598001288435751861841395847813491622007703845014902709623353686114545430928622898360898336402266023995591070091812908025834112362940553030392877136609715360703524832449900784522390912759394827399864437648999916367211548431609386518543557156296722524827159214800565578390930303834621136896621497612850658492804653848233293329144354318614296692588909353749929591332174273128616266240768185216519562059353387622491530877669407713631875879949576751555903456928082370164405341866691368663302431984461328591954127966522321812654582393804879029179934035238722548167900271243563040610279217652746762834514178330855491275992719224742083647048323523106493405509852383978215083212957421390569254295784325518689097845691443361954977525007586330715095133495337512707263339726916773242144854536584682602995868326108307289051436384493419051440332112509107260223857629037333092251299108037080268989395697433010316442391791071775072859434085202927658340431178335503272051042361732162613883956558100842312530349576944892683879812195122195090312176152061314442297816241254609472505765028113946680654670553609359619969867909380797736816463243133389347802418907226687698173490162097212619822562119788207355522634879449756124534116610994913131440077704582775298292525610492783862149777963656728337998827078800239568888557608708304169789992744220160135079648917716441007431071227253935354372783834498760393626875937756193267538577181321222563385181084579130447731683324300641361597505979472621231765131752098239407161908816390100858501606514543584804991194457555104002464544543741509324845139238944753311325838816846727271029293144723155105228676281836350374387612668895682258887806733259153260320155624449601853551571945115341426816903626653290095140175569301041952505978731647898488064803762588463767305030561545555627053296590099445766571875067981325126945358657632494500559581488901043792336755571028027809310925167389967179332683918160855351084373092779399288586783447744508419552209579720093349133652807197211744048626845072321778137389870369189310819723620558324495183423710407219364702340433900580085094273024017150417756884737310107242245455474767980586260562866670148981793825768687024180985837703809976657214601477406335950093448631216546416681010601402440535217133827088998855563812408811974888296798094186350910475877630117512089468661597053394570194181642214081277251968729059261717840566424657844562662703131633596566338932003496923057098002719870511555087557783621189810382844341102637398929245391534340728154237082576008158920545216145887559703851757766417078514651617610431125292187140504544302604664314002832525817005628737560774306679423131132179510964697514202754261333975904212978591415624544799451372045696909058123943695238054653069835361242035925584092777944461062200298098929429313134941797141346353232977299515836212148268417034197084154848481646287809002552317707805656751198395344894555210083990452004934659519511615734462476547697699593870249113944373153398473389168171303822418164352595816490503111591458552167433663292308467120677285458943634601746737061129808173478049935740152291976028058448588948394973183149347828679250588116713538470826047612072056008326220258828260234088509468881552716304054690956012099911885888159349797207104510988397503727841987161847758674372088000112292039588757393984307793197550373770065321575608100147574982988944113196397356622732620816510551325117829114092768505162972939541034554602507660931954977741268528006359735067957015144952808647369265423477140209241450139811897535022642738264678049181106459525167143413254790827485888544740267573152884504218751172876014300443964239925496985462332063034529362597531989077326066492182240355136398179826250265264057125332314498996342896998394651147680684605811185625275976057471765100484294095838655466422468727531732377293292350489163445449993743938651066260188621605468375108526599320003925327501775156421959580528688597042150377543715882800709045753470804592847139603230288430796607010694060745772524136875380376117877869728912669993616288880997431913496809491052544185541495271681827004736059532397593712063800701192211476377181724607755224482019127529412072158908986472641268265279959123914102841267379484160261512752713822487625591002768063669275572829664117227582319794952137079947925594171628181257256509858695567165515064796661339289199098086018364763983072478051168643526655888998190974807262250314604128882408922144740704155759405411917869190343860899722647703656585283995703641929990381203119534097945857322960807520394602679252714093687592595988130010477154592134643706701970903762160375165204547224775167631342906335328222744618242849017743734293092794915296154655812726588983443378793283932496094797255615314619053047468669318842843714925791004688895485965810294125392432005519150865435629866042285793035303129034694891522762323749352607624888483325020595674227916026469918088995164675882924482961588956775705044200674965032709148355563694051784390297148047381021655147342212923496210669706268918021222067287784708260360521682411005691019772154365358382628517866451155754722647810993452093510178318105801264334718335705908844000470114106181434722737889862295919246795976716674905746998035822879916481976015376402956394237805777711937379554000176153160989311418066679532377849252125874787417242518538633543051237604544145571909962544845357548374762816622739819724818321407640023305992045610405774348625923490532689675314980008455368334212185562034087968799798434912769945738482556205057897547125722402393476907120508183447721242100210861714516835833061762552259737212435969110954724481669661622931499035599188344805909722682637637001695878948160792260001727884437995054873648447548143490304368103045082492784920897634824312369287321995797200849471280049876789591528053642647184932571490468007757998145124838833053745960832316121353476199500653234249356785059076735843290689310805493359588257452368955897042893785041040012075229416122301760130111060503631722868420204119543793934297695674175734147125858932836043398305499594410845156819218503858386774457691894329063780656564750210496173035720366313220997882152585140964055738599929937820155828620377688466494991149917340867603661661793154836523733142113293189282721167439772580862512056902656663983641390279168454604165679212229065026894125578763430707741015590810278741199974312470620596492521740192687406525961883199292797113012435464275565921397122996852593066354804555999417434320152942182973977723282392042234372764284723878437271150707832158162251971400463417604620417550225088093064695962294756461649256005920116819656009853298379348479130146634550823852900462818251917372680617829472140374837442629765465478375068141764002402244388097137685842234828276565659675238826636809707343974501408128366942816595834992003025647249733299962396187896967623893751880553049985432396082840158863257701981040067149902554732079260286888368570324862660165780593788145662473267162762614139382437654562339294559977082177625524157247085228441953762009628925586898416669798471037730822599650541571890198543102339123776800830723667001409129138793175504132609123633351346081988258532526561264321322318156523226851613202448311100106661795898814978995386389545558798504672622242490963176037060744131722886639926780692603394556554339853849827547180258364382438158653426982315242835197602009651564086445483468193526936530767670351461370177434463268986184889252387469462442128017866171547547823420414461277839464767074335550882575331905745936908563388534207652340673367374169380606133260335370755394785218686369137562597625600079428962194461878588722344942028491621886440864004869146236784497351205593642343437134792013623041035854800722897653076901436920990014060128631129001654154371377341761274020375021003321585453251151228984621367308189058021765022448232091373079437327458811190978607647164954120052030943011505690160393178631233975019521629609147636746516641792037014909391264629977242874239080766389216448111395112776924171898721527971549120546930156793098393396579498074271074079938281852006299293376226315651071053891964788730881220334880302820228752104279851940005628085350921665976213599929465981491140017277478684074600700055324149516605439332589152979632234072821199301983977065481670529274912099746334114208574909200667310900623383154165578324920671945604248791902606900109669659799690985043506110127968226735725080991481305953034045713573470360580580501192840738435762372507400664808339440118479008586299269285483928258668199795982545112649217405382378045941078316485353640630637879405578834832300784068840194910475745436888267066458314604637085640778566769779174318185191861002951301060301956576278802482359417112933881643063904858242128377520161768378258064405616937452048676153978878874207120002866309293907078254630690008554515966357147804643497783757124062782761320185738252080477686501213759598447805633519237242375093912069496376588550245894821638491513202982661945988305517468088829520553629547222206547432257448788199406850399212124682725528621405641786102606526881149796582755379460383767213877042154510201392334847462184036873501749405492633585519020272049262523663139515932852534840636488765860528032680294807251162323067789607766416253974392119666819887659652245471862575901486734488184494250028921938505730040142869452675036105952605745804624912522713844391169255580944626635128976287555898495429447476482589375854634760747683651805193601824534260838997833048529655207253077707987693124133851015936502772176246610188639061816777468103751794808685570689276461777981724571501999490530531877307896505112730545406483377352192358186266262934952066870722526940742022516670789099348769951844244444485167529481502802105368985331389902395092488190351029849476093142658217098558501810829642247036456974994611753439383941759639875692611058802793395863041540847315981890829199088992283299516220286808022187029484882817108752720751122259153978282032639993454319784663675173825065068343796108056734568843660076727196023600595114088054790478264690175794248555271438491583896167527965441506233965051348129248553763283167460560713043504254741880666126674857679230235333241607130777292526002890329185776369435112660736050359319916555529134023954827133855014410093814820735496185674798324950913319565798178905166477531099019573442516504233020149621604892358132256478371253828701946465318671972330414738817707247330500710647902792722379354836134908494030240492997679657166469952981804331950694915661973765534630747380837441227559625485845195821985780529223300400919460072364652902813100523567615475587423947952170681270888568224748025310156353970141399550275272452660250341961710466801195415471360136047562661752030373884839960381269224686487130017011773264531193958766155209083335146845581118358262288535196460010048099851713247748575780008692384124986511756052446208855797005327584527679805329865826060303827126678724908866665614648822630257596528598185304916387720007392062823509542217840805195769107488688644004869133706332879849465892442531460202420073058135311420852854366729309713793051595846944559898840619379841389945347135084100017104067950810884108476403324188661345964585631473203371692571905835818585273511735965927484718499998981068469283632064735709331245369602270624629710275511290888576597642412088117193264195320633126433210859905992100842005283022292165767657594616323475466365958816926245278981968459106849757585443392598165784957918504404031586039407626937319636437173030329762311022502052225686712162920985571535481494350711993819596100359915888780167800379654219063312358729515231095516686692920849203695438148051338562271924420011512889138764869723642219673344801709066226795165072424744407761524033719181942408705285365843367936638522346152874558276122077121803382684611319957134370451366436628941040586280681036659312763631546708747485429338827844070494427717772525886951645273167298528747412327907130289592050850469396798105777212901612119337879791195911755688773733222967680068316783309091783127268177937119607313965470139887656015283517081507219315568309738656983125450969096520391131749097214314122758052023301096882964974875645390628107637995821177264616573141124901748357564498256498302248077853141044969467201827091194076353877852523269584776871093624242744677756225417540922435107128721858011551976659300375734024080324290104854402837138267536802296292498764728361570913189330809390362674451529965063446852904859478112124571429456286369267955951985253136387739239844654722692891360632471896839179381453111652576071459416806914714132664671690727113393459635280940696248772893578909349767822971879083202915635188961599122173913743706630170986940005521230563093339361732289881322849169072441394646897582492241316876942593506552220423048774851036404508116571225371330843165410973827508102841110111271765215758290183183619695907922777939727602409464678611049893495618606804766553002965463631906765476066202069744628416828104916861050965180012653121006643857459098066725525906538922062447644114830050120199108801096605765760205451413380736861980298799904559311401063216631895967602039746601548057293095149285802825421268713183121334221118455013633186190293345775264376266686442893276428336219161915057611963556400032677641627639046205269742402816756978864478421253377348343670262370977116468017787610811350135734767805557255019684655573389112362160892744650907830174831791619727027274300206780256518483845107169249922684929281823593749891902250289481409232258446334653047590307439371400065917942041685805974898779669285042558554706713501431109276793304850236221684376951304110606549012090870392586625839859788790555873177476630256847629820011522029736275588857696888570746853255207671190348202711629614945407651058469052405920392926978906415278744879124321495867449839724078536181398274711788411763602306860159702599646503179708016344659492356666964173856160290321528537081353501226538899798735674018472921653589173368144134612412348267079315822412488238684348153873284897433132867582048365982127764456077755784440163824995941027284258058382067634299262200982035650501653574311088261173691932603133389076325042080738222202867771554938797977564159094023925283942256225036934925757597711233499255122920547177103868461945468375885724954621062573545978729044816529830294884068858230136458426720422168202585377898839369004941994108167376979252378451036869757703395174728173965031662397905775685582195787181793866774818619149743330136527137436933124017103462349607080660895250974966797181718396372853883391401583832620376695890462454001681541204788545627236482453291921235476053926704392157615779497228066834537960683847039299894767880086514661018919110644216129679438060575661327707049962534591531024888447918307205444780137788262450777080683013275978087314682208589569974715649946527308572011468776275706555400779403466683255345331485987912901824827395134385238173420645550829883283105039038025032452231232423255932738686732235953915105774837768685787258910839217996963672049851863239526494686850502603829229739199436333155839986074476186685738112826200047804146953461952774715330743678381746278817997933192714656955504605059174918480064975255802891890603107591819085428697472951409747668460800823799019676893273282277131161851554122395161441181116863667737242084825098890749263465945652698711131282035440028875357044276600493384873952775932220743469756004925942299789714540461462148011177145339209517725854251444021686549278492670216236074719990505986601468846003685899242001865068224973107398551795535332684791981045445755713648906543389726132380847807673971200772771357568615248182297585130282028064191414959773513043638286633226127331222490261994688204485349689039335155590722805338130458468518755974888559044846319660204618403980360693345377806074082674096561980763968152223213174714060963986860262535422227230947934506758014667438423752164592157043096663253250415123392508097743615238174363235537679467848715237310163227454941619480236080574131143600688948092522606784467743379680197330612932358086372652059618184161450807445152884659974257847356191513124315927521342099043507337614917696543297989866537567406263764670155304150471928282836955060282208880124986865080998069734403766580758722401880835032259223508873519785873631205216739411919373083733798030266247705231298937790329479369546634347524371682370382080892263768595513269749746370489931067436722594092977811889309566888767322360729801189554492900737937070786826047744801318357253848754938015315551569738086364925591413636486599426873907490850724672852022687604524126175679661824505467964051899816255743030328321345562689724833312224552945518844451124558511654776970254792455988619040355570554804468660325471180253980888572614508322841840657654737406231659147357375592766219157203813499362741916854322197976020181988013004920120952145703304547847915843174993518181130965471879683232765039393383182860542529212183553495201858735894757734648299154354133485460141102919926190377372030008606186054377812195945333006931647411506966323289604194267681909868566042702892787817370231153204479070282978240298785531257782083021770936304037248787702620145183531975870322670443053755463280871556457481607157448874620812878752539000776085658856506244247746782818358968156799289842498352757390750440768310682024527838943189471073724241035152811959141643841227578703961851333155850140326307036587059031939990303733893351609651502347035773943445851876668501499083135990519041461748239149393827028708553360643579611499325147077446961422407323685355029239754487225296522678408479482155471958922694010606779257870563402342792885206825065502308445563750239421992303591011633213541297351948912540683494748249651334153127347578594139507824296590357886054541947119499803507438833263262625230113085356475314694495430324297015910047185267612026985273914838951705098940855585526800406439358419551375447577591793492016396043296117944354904938704840774812140613660487881661688119554100558571819646194229646542829866101783029812576331969460920028885399848417866262229831176164838107094457174582122383653777683226135389282819152420036926868043010703452450343810573190199553787577400033475131267430804832195404760283300822106448683982900642268504734984446762557520051935724214496303367472295610664810272662969798900508309423640450955815974415369754138124869816733431683925197685913361231247617770578682017879269329213432717215328871214135922080870657288240275303031054942376275969702247679512882946716101901341814395812750759292965835630065587713323069594672293497008563645179500590266022398540127458920159648206351662182430885243320390378861875971660456175607468332006285247971245026923940364323756148476430803220527191811278014394363257147447601058911986996120682362094655695027154649755883436141177683372734152409105743176348364523402871101793179947207108216932588723290668642627395020004176177727869856453330102834652231250970264441791459225194441380981546222584063403232879274525863486848761629755949276307897321767155335481316342499141054428953175486550745455701245324528921063034275337619166976998850471910368272857626691616703482278042434391500459971769747954606553694737622636570451237853291544300393379920540513538896220822113912790599392986718771048580954029154353284655058721325525140060292751526986196136154559401413504687191820737178329089818639826946428448671721831823982143613370875833147448415502287076015996724089131870619172670301245932437144240491624819014386289541717999430638967629418356086689053842294806280590472064925987188267125559021954140436217645095252005887865634931317216447359044369031533387234322348805254846105701131896619811474816104350840543925918123879199357284426588441618956134096626887846386957974789975957651041510618974157516331959963990726534305173826684299338191897943985884046874043022498900610398714474636298092798411694590596718253608309553490178847487347329525690517591976190212479357490734123967960333468560671425667135412912875163017806284183525882537856651529114575845985045839368330670166901950912949252020200231453347413074092939115196714626022518381230700698255852905046962054589301396340304181863638725851616194050257451897744984634936191611156533638117609827284340881745143562077310542156273985309258676920291874709074536597281359885312448634996939825825172484686531798951418512521937937277474604731811404876025388021277203812444361861982913252739109374255104642511068740891793167265389809301446411398432022153334785189978089496909600310579633527576910616080149220151627729372582953941987701607297592082148959221251652062666909306814067098333802504227792620217822418432448171756181568823561029561484347126973246623112524664306956796227347698925505693508836852527577904001072769160436646532551595706734677109051337537277136891849864966347979275133507779309792157223384459739500203585957581185344876699457608124485638626458221721170197931940618157157185846961011758981675439560354074976474902128342887327953043932025455147546719386971201058858529024276620923028397768137068407630826544517202729022233231324640732884798698332019746620726063355384036656623509490282142869736181608638058660781081661471803765048385616007698530033894631448947452744582654630845534680079005802181385498344177848622228627809524873254332212764819735310660965506588943019955380237772354036994850007556613024657939166546067773030488129949399202839638473386829565408167715518890737303349515527748450582758860907060157812967265825867926382628735684403024795342871343019531459888389564631513773879168579254191744280215571552127859092937513214908214461272296928498141742497536689727645416770523555523404304391464008860903007995825585024497220261631177002923800845640056187746501214305187992564280638049672125785269755933005212466693378832355801401741070521114775608809370498977516891784926226323834231487018608683274996293022957090754779206149715309026751342512884175892643946997037561799942050745980149341766035805047698997231242301432909758327775240366774237424710515270767482506084052895503848483939925734924359381828207930779479305302712984712821883028361630530887523806731971082782035701574982465202111980001924241258176334882559691340514669621268530868018062657129809065240479047091245721421667884466516447653112251410235059818038995368757289506869498437379431454176958740589039704158841228859265547396099947008083660583156565438115850234056556351842228337594078239426562419960487713526332422185233152430693932316133195060570740201563580384417185711404047233636861106880825004195719817094712104504418415594328426945991084010823608903297341543800343508087383737154269947237942099174983697036165790199346968679893696028005928879879459277020269648031430161445890093978202837623464840725755086282863521115435043274701791766331810859243889753124193877906556416054744922322703099068585493220592638736426936971633900963157103312641610050763904102834051974325916026309826854368885034668034892429276527369050965117859456702707903340699413618364085915187956757910683128124207243218347041450582909073817745903863637711003756646190044922215783386637113815539395752840298897230860570611865613612203763023416691520972343386653429336561950689746493192326351079607227391119100428284948153782983087793536443452849412311276166045104825194352699731696930330111618264921248040068330255141058899514662961016628944863692832534593053491927112014011350789108260130500894356211195157536185067161994716015394596463868961037678541893317677663646559135998672593926775420136110700162945382841432262011186776455856027060924256250032028724435402296884795824799651941276020530945151877701809391296604425467747532880455852642836754634117684533231745761280006715644194221253346841164403587617804096682333257353182260455410987435374179242189479970848716026713544832484661126320097901976404457914360181524987057239854564975837777459680883785440991286154555941045239814699694820453850863099739037687197916397247212270364906286228203529913967308894841781136423809102261622832435621880582475130780063984840948518141879872550893172000398241273755432300566657371682420989848700596550698845274914931154214094678928481543169130136088231219832067013143841229101132569809465952116693339326173258334073157761858168594764703697978317065217662932512521179841502698310037959393007127438181520979556851145697775183064642201618018130881806115405531376590023672042179838620266150855760646464043901848865629848613422404228340126658650391159352198946697280034662466682330148161388563430496235791963666739968475671171439971552309190869792004177629850901513330454749023716971513037608739588888468929484912276478189471002592894706736696027371223577880102150508009508895884962562712053264009050398552319497547876833105287999693920746232999894812691016174429487994435234865224638148995091713677183515703019401132940317131658034924803615631978478658388122954245924465429644799451238055020240461228541498955358433334388260056748108193354763684213196126999038016202474179320982195270046457059889594836669638580857213285478332599934278742651716920969775372598029662156464933938210722329311155262055623666169965309697080187848691983001223150798732934690566299865923723897550785563432712090325516073276682051098965860030880001583092362507743071486495359441966850706984957399397559354114383221970824418348086960499165587085593102846430785201457152427605631548762669539922720610263230762589277039400828148834385988078281953787862989629896039048212905060126940949452524672092384348751094254636617123353312247748428796386948817470219263061601063850821612457771549317315454641528388316754060905555111084344313373578833763802445237433319320842632586999391393539132546250413565357328882738600181099529288836957611248271999444397380243946656787704701744885054379327769183373864540820390813044634088962182157470564637089560177308671669005458045565924919490724099363058224542651967655620805778449045535707219171561594952473632929212270059433479170096460588666723712639880638583761673649030983299314010293853383279660630643411268500999816859318154077535197448355113257793444382328979381230804443511838599955014543138387805455766982716729930990412032863864348285232856596804338672321769357419871890369194094452376933368172171112373546196334041501186266263601125882402286250899088399061893952158939813947354798568915380367043235475007996588279544836118706258528785824685441644115493450479972580399005348233304678282489207551293716915702442771131956510978686362421844219901135925013990595355439373827007853242876493781698054180833435914103246806382000921676753750868191890511158958160337022439411211512997763956969731509504831359852240175827327031235170009311248227150515884177728854859899956544620396311486402401321566758540926117090377493100268537906789391718071901399028025138087994893038791227381546650416722061334183710362926707424693799283333335753366218692050027598175124507244498511327842390771962067985566126915046406650193579897320715066432441660880918644750845247155911111667032457342711451758105406703535832745089974151081579082292585813193613593259296596347821703301089934260168722392056470196341746711753485994655284800620725917798143053391765581467563350532998570290757317188953811612918167776066405758224892555869487863332862756744660967418135128719003212570039332469175779295476265263662733983890576646611206052117453258739953075936333464841335462314461963381177722524709918662194444339710874742906731544579130743017754225142445286723718475604531085350335064846096865862272350789596374648638720769018980358083299709608054869450307532510262371618460374639786054065682991420285612831830710206435721294578033490713836598838105120098082539502777969642257542593740718791618969213850245558292140222179055729399161966335873361294861835063247584557809058817730523009266690643097913549850018093271724040713626422744335274364035109890254371787893335761180440854103678006676601081187904584637535325402407424286012034625047378928285712268233105371888165326710918368784763218298012706495332119710801748559168594997545114757219407753628826456971577561688196260352228904080920559589123114875035011012770823631511651212847439112599621596241538478868867452679151499786451968299560490482823359538300205198795616468895090750048617924217747180877692510797656890598954412501172628325004670053162089217517059909881400217429618456103402407471281842944189933960065518777310781058433730558374542681813583258343239567546887959154440838684564742645132056594095248498887100118564657670529785934023482184237265176803953100813788050508132398176702537545176897610708065006297206583281362998444786973601050035437525990379935112684069264543278816938237817040282169073808993592506404559527804443751885531640821538231945142707388456601463030881982183203599148957164528696895689066104913460500487700726504115660233430494980587620052008134076861254218217936382938902281865591353886616173454010562719707578785275339341995440592311804691466947760017036054881564538740991347069408601094287507879721405672779768355743761190812536968323917464179198104451574436460643567443449571062250429827604875686682757320519191853071062906243109589517246840921415480911177063417237053594142925886996368175777910519918772635465484022690641483774868480812143059697532179531245933459162543929721915458872386838600919615208124270093899594354522543926299634674677887198122515254724305887390807546454751258598500868034607329253504639590803670992317795679723595688245031616632447995447088817880778826916651180407406180304651643057115234735214045266605502964322437072114533150552677672710362754856748290406904971844789986268430878435258875738252931321906970519202331243005563554907455831329947642729184180135601892725616474426557494207042193766370723824001997290882226165724064836444485932838597432345967480423712506191183092698553896607508565742083547206389443548015060572471369216561144385850464384874025282496793194640541146629407889734294708091981458379415034107443054001151820381028550590792546950769630446040884117779183601801821606051995434505206657150328035466476108093720778795033945707472627569145458580997450719245462272999489017971658863244077016648227151736955667971320843560642307657574085168452665265111930677689223956590445639417766027645664918323708736607692654144679717898542682681495713278960259344428815064438510828929717358823922962082540986822912036895004092477646764630145568829353920733266686562568711199379735537926356987381529557852096044067407117581077042115738503395495427071476839457262526428218298390154358318000581802282884530764819637633960242391722929002419444273491804632444446779205316787875568790145794387903310027666580738021084368603847778649940208953787207092162212246224548543660018759067258827153312999441475052363662285956725983470230112378426981174588041995240058585778726931482856658615696748652262339554841586492273172380513291203627969464197614320703423214015766548864972353381442375093842510398430837071834833847148427839010588360276824655207652670151587286089908423645739475484630041905939784932283814402052566845366324661343010047828962753313833527759024672182667008571342197321020220629807837877468181106604819299124646256116259006093174236492952938424272391364426104552665590700400032168488930742967632411422329442382344885572766247437726008762633484538875578915812984558935944577059970426259266948437222412593591324162826277623687057513448272944035550456583784810535623016157367523845950860196964175316808866601551790539925938786202740991269807929828881049268766583034770207391674207253405279438095949549116011612123885133582823571999420904473735210444771718477015173614455716219595051404157105995232715683033639400609385377988144275989211969522021895600109610433319691326762460980554462030466398626449027846326547259150547391042519646413902858628120327520811929185468205046492899858079069794466729912046243905449969912006621207773480272318523858512523388598039269115738639064358706046296597662070555848881920461742490394364185888424967275408282003433115625040180172286864502665018898580559256363405447214500483786329221702699213487155199716230403940454351154532719537319175651342028936099233165218025948641082686255363090835706890435331044810195071550395195922297709835603029822476004861151004681385542283661822499205285859936981644330858552125337483578682590078603729404023484757959793019597860575714013942512687367634903674072581703409348217259530803503484750331227491485770582490800278558063555734485483167638320426160173023742679800506895858061372167190559208921531380613673331216833460407156350031959185535254953349423473243689083705727415112647834547822419889840961012210272598949365003934448858839971751966173610885951740752975898350440201713738659162717157382268463175363279029517105809269677855596853077999009245799433836145187107988182821539079309536559336370577642081294112075595710148625159993729999037231290211667567971184264242637905427201475332069197476261769108657568533296435623701691752269105728107548947097490757246680594470372203818725939625886294458218452099096540564203831123629897800560520074875798095808904358301997729698351380996333406103360282031212410568712616828512737689599564271992844303928739843920510851090456256473187644228287731951338542262372428153706985351073487720081448912743889331547681672739633869161451841462071878391784194871028947814804541684926997854451493604229257754441823463434969413085044876778723738122703915552736793729389637714430647749915806713684555532625264371384006268960484181370718839213551039723496442556809635542308779726045971658016254446962798425180663976024375060145563881916513356681532998551242170355733532236836403441280911275118385762123872909210563644278872139374953199722768417471701391763737542458475391443357006625054950482072384434364789124424092017330276585430597909890985177666489980162645409735263448744277623882592920402983658295698115293018980602809107633338169721592542939071823670305799117390139910323633408935602075640364708073182669646843343546185570277695250238603528656103151103833106780860760826828946897597405906345019612745801988003512275622910813019835831731349740864739810008604886617918229759117787695089842594605236847353629813799568485798824239149892630049733245286706927939159775306057964769344119235938457507760078194982381098923016995536295600375719058508478218936624324383857778005774237896426676677794473708725604267123918317762812075625950868000793771960326098416455058515270782856988314226450740907729758796816126144313602975574703654387105602946502639467109357985307712402713195829381184410675855400082538667351758163789469959074277259681407167401830445794009859538532204240179486741214617050811557600645978204859567155713498004628448111156052268657330422109560481190748005655159690926718358494662171087993387695310844988584901937216510042922305997924705798457046066377723684143779893928071988908408968233327944439289658057305421748868124291228320817864416493746315012103876317708081693113864681793265735543338708379092376042158788864431437604706276895758413117756890649862112625278258665071860207273278409448397825031405800858094314318397074421649845102909797997436844046957807896646430076684769259411800879689569349668180656191672640778198830356237804212770015731870038555852487090638065906337252594122119536706578227915231557412967322382327177779967206366604984412321187123279727066579216990601544455519884270769293900931240798462262349608234308371001275389686285468234824026825724533831761479811594430941727749181485617233994661520728220173196519615883429298782674991013965860087461660740595847089475331303176443641453401610217606286648423371421791562711874895465017218550135480638601036447866234902499953211261465670155713177759516245918707916130815537992221605076367706426850345288973204996678843221151449910522644957932194694794413946584106670278201352176628964245823500510881752268258657779959159612671188864703337970028768727693271133172693929913414372160208006361116633280682397784282147735124836011495939846749741477797730477406879598713600938318881284889533344338189274996458371415089356080543630942299984076134384906065013546689742126402406689082222871364365102619335825346550256147133202070864753777483996229462339125568999729646435543744711626791690776087729732854887150181486730504533456309046925926151075069210835850874470935029914676149344262633062371934969173422180253364377816750938537090271328867881704847317002444951394305809831385059839701050171624692959917228317728330600652250299378046207392408712146786090520206396994509117743578994985629959467820349346135594534984910449645708916580206760086748508415082292202383381118560832058200035604375405839713073686105860725737770968929807629149925646281909146854954769487050076505124850012330341969474325205911174327767761094153758103262308436542344087784023411549765124679389283077489399184981886833057292294862769157153495499063017496259010593438798899891196202520054091092202441451877722920561365064348976584795559056283934299438823579362850813683515293015411960311418029879836812049012024623219642418938807843793495927427060341852943632417076164261295751790444604828903756267096276052753777561475347867641368345938751333799197834513248143155139499802344859312087106462610666374516020826955917787718699677184598967811164646427206841269335847573475460891020410448501803029080324286010689142293657035778622389218923972374241979511071356602736068964723872255486252267763957457623372726889655313851279404171084139748271016634840367503479180081254458795792103863807414802432065785665304155990306328809315805354530751109911119564195063931508364055561567127523660443138296521135918597006019743714941487352912926842585146877025703345613478452300431589183765750197234560119417568158687242847872406184847286708176753215449105341723946462296698618353324270335961933153921731690182407919728005558757067336940921314485874088265475534656964863742567822807442307559902989382996417752664370929569563326071979410318911845851880319188480253244925131168606219475669523358888418067407974083356355355839735772995585172120927471834150015780944301497755707789897664985230955423696730271435347685360149965316480669079802887959166761238600439246285582085619325658861089274270526924005565331767670722769574046291144691964799747714779898443320512513112457329386051906519365465766454282711934398719087312571826144787829356576738843371760176502341351600139378210392545039949207723710084305231070664880159188778009642415911094170554932213028382555771948857699740980771693795081677653647912224264059362734111225874469868643799064562190830702327474149681805812636269559409447157804585256269798601217103943649000935966347343890875077517338642854897353688712086345380839858745581836404668586560522016265224866572519880528866274422857840685177366029831559652538259798533731518895727321716980154400309923147487404377874261643669616957196171358437234073768771561304636949515949716695304116222681135966551788617200170070451613742205205945306351725066865446283255483778083391244472169620100939691935114967848497927689437335647806841163221863656153341023665558072892537362527943648929710663205264680688140412130954532893912948461483145231503756893073174642781374830390337207212374113993806910525600958784651549990340805594819404131282570264241345114242853638592440569512965998333284494046215526252488383178408961943229775090465092032462830557338479607855067125788233905246515414809735069315188587445264636951880727590099430700871313597159495812266122053062966369751538506744509394341510180017352341165182415659313052674469591605143244901762503087750073631955818781954550245380665426953698192679823962054126462013994493779273271118558480328130038917072446518851470574941524343259538749545382833283639868715946919718209619253753696346871459606321371427156224364660626736768030901969357258676858005336234576568923184724737498330838422716380465608088847095648046937291119857165426598138710156203404396251425353816384190134258201884642846837405595213988145683959221272036379896642899894892198209490427899639919096296956374100890778269346862789317755763991135129909839031425676615457487878010349356435176541356212017313590348743116693100404813428599186638954838073017414090232376486096285782417239547113687239901990997938282201255772492554203028421614451790891828195697764861821012847165686447315070392254682401440740070897405330760620529445956927654465145265470512145002170384404402033999673025471241560649878123508400696905884767961489609281268445163696250554640321844970496172631998853651732378732307683637357360608433749032222290528260117749693287669361973931406522812432745753040565067871872103352352400603181372001586278672726289670181503691157699158690823809150057208793489662828872656404466886035781772733464043064068689248456195559496054385320202134052571184958322557293284460064593834516689472238844556739857539727756147265086288842879784781255201241948220375237278657715254464375636506003769323873819287527290236167442036945186478520906547324356852225314601089209967770493346482940147468501344106569745131913563067402929475335667788467614452790662586460055143603174821829317394672281389625095101315415890041836086721817225984642348251915027849028342263998851585340043621391480348542344725190597266541973106048135067401116177385012629270305291672461779467968672615902529977832979785871703326460051417844997871916892815942208293860723958918402484059988034439898641667677839529351691754884978238135608884480428597597018692722126379529934062127522014698927483578159870521272623925133284625473298571929071686523811864304656091366515009645422475169223768941652805394029310015996268661993253561555566274486788452297886233663916668396400266594838214020952815524825690420550314463511870726964837719286051287298582538709910216135189062833050366577303126679252098705106937588027381373912740881998643236139598599290843159220150870608523412568077464139966992816281624773526903171367539408932797689497708303672638836432476209968429733175738777371152263114864452454756446302693362944532401085068510513749214928711923285439600306845506126865456486292166858217037650095508507836847040785861181535599258300774947178098977153821073501442280258004289253748429037904260808670332692356931839638544460600506912448736158468847200609483982680148557603097530446579514376521317681083505727374686169692660402528265891512969993709648927498549117952974858072298784836144529086330876783812662378768552202379149717926198843583196053758139390016048146449419914138694123716249485192855972892318726333960583172797007892967442178592997462471095582137255692221359338451089754450256131439242455744530337525477145391981502029576414051096360221320542760037497432832965385423348804191622065471847454073825824547729707917422826979560265637570878698654683183167698244217204396091122386967498876176113955366718720426722036334441970396249521214780924906100438404641268678497442281543801857114154144389522053341567460669222479200351676310445057517847684508919231817531325953476729114701171957774175772631185186905994496030358867429542374928741614375266841595449683432693618529766189906000697401213940444012556121259293514894607912708445616468159834629888453353078822887782233968067715485887469955019821640567611810471782569370865600655484880042454028857382837504724849633254637473291600399527525805348311064558151731862485359390554328790940822915740739788515392569581910044383261693259455233615585493743660513019497598024831511540408849702449382580845186092118942534769634082080250716087060761583400378529909505602425394956019714179087347148002542334354434909098446216831053893303428027779607835219203249406322291009653014641079562246194959508932571911291154116120877255829946919206141156174413307889756970695661631588787655143004311265499216685774186290393268021104535157944145566805494437372814065819746442111395725238701499489292113427694571873918624645504242832228147498962431188659284573249196001519623143548919840681314438634529674088720801874148743874652196328416150655001236991682755019286321260093978832118855572209456976981252777108161516816895510473677672976758720298388065351884025026474441553565726699836331761952280375619664375800068065100475687159176152712679011943087228485329223941827844271578018409242258514362002665502630922443369525337206912275515622618038706108259736352862997687592854709547365115645610661837926365111134839056758283765530995438098565785305167087527916277488219341958674710870346933997979654698616087078412162325539330271681701139065982828589569806424151953943370103497893678185547382329605624847546774050919146482446341992697783521636268293465426342535708809382334993217553477660510010531381478789625000775881758091473791542631831887302578256200267067361421515691791803595945733115858302457639089096812707191239942939445988643665437965716882755784207260770223438637003829976920770526680884333091171314907864628672695991320443009642318212473754539186930667398713096137844504980998536616722403386845309342012401363296361758117091307137747867460024623695194389633331436150255992018618215822964030298302910966965947652154321800231354529840685662052288555982506444471999525340205507539209418049241466582786242225226673727594181032637862557375925195624443842492782495043128000213686767565163637063995712758304727186083651494168376836570328333234851417790989417256057206628138710330204967046674848412121197839878451908952614162210401617102285277881629376864433220059612900702604876999547626289099002313751320574479603900070156021355107582937032970303601078269859466625228985216055388498409985233327750523224910961620468587450357327819001594587067987335295861249674388218784018211462243634608068099377229329465336668267445298751310668586639386556903592712551815087043855568421765608582400482572830981603213537655198418209159572408251459577561284181596003754470997351197112050607342581481180394683051822685436047073998716927939303051401982776962411108891627275026734102787883779964841009643554330176079444350447223591510495182549914446477168194199303059135374412971967631881132301396985435339786401207148247493354011381603205255236692086655046802184378427325854886382824051585928836817894927268321400594060087220343621615256947928851646109734261895489884298965106404832681066720384300750478550971416697730076581200447022259659833215642149032434431764460021944463001263055112630217942520830376465919073840468257694658104407264253105561278207768629985366664844168331053161457256201002396300362175297735315119391020880720674820920478471267382022429796955499709245126418268988948814753993995197044515641283845581482556475601753381697860976355408164468941447343715115455336961409425807281366468386913923240787017699861365521125336079939938900081785312672446981952409264612949630023439388711637994090726691009769003505975969358996559268467043342764967648255850075878313159744160007483751410997122624916095907067808119205702660054181711903862895104118110440605133526558582009644638155656562012798992831395504040211685404170882242976160063926159606230313203173288229463089207135688628215758391465245252140530817583360073550080450415071978665463154592972362981003642015095833213675573218508380852327328924235072706396959066239078764096592339822757201403716488346160744011405064224069541575053487206894846580172988206535959113694549880757953229216745619609950477093181577403159308588389479938805584453279949451476601304764083165444069871004669143505139027423568271449605769651743509293058436753637093974698868888991827578491783417356287322130642474343625847228542869419023975242167675159063884363966350686651569645441149618889732350056210304361606192767327230540839333881877867323714358449189915482183489030529441295316263979307737267490935625578787659179717933156565752613074437001363865590480248616507303881254685586648333556426586226468916375558004765458203350709036927783369287813964846119881777839146930002331794536643387718684428137018216015198171792759755359539099143407864981771373257564636901646792725449000869700784985410291537374218633905514064722611378463011364415501090911047986755955682672096821196845438730602622016504578579133490157394906428584018861720167257687587266942320816714778463078934499977081319957492213630142974721735203133724366314777329869314708937040173411696550554741274682305794505466442179528114246384351206539094906189652370585276794264061299655554115346414191437381018719719845278906871510495197980613068950710254803187968939172309794485681592352310295226001747818436660378771620937384167274186840920334609052424196564889568840309314322193645751983327001301423452665399506178592121304691762553536824476524514130956844309763156340818145887614613478621501194134366584339754121687749122996875179752633232256702121174280183822552100931225505892423393260967595146276584700525665240793059642709670030974543597072027647861282353352886592656835341811263945235675480598703133103307712028796521118550786101548611073449190948402855147280734050092658422648741428790586088667701758719826823691994281708027333855225992044501753886805888796820825279539171263409682131260253808449541382210451158171861895007320543555147828692228540753821183525779840432955558015069059154954611080703243616766649376931575232497876528190062873370725139095687512917769059525254762140815022973267706727025254752785208250338595056084046922905868342573350324962108076375915471792077057461571236281285852644433034772553254794586507131241546212606284271073861598623057481421845149589821915631233512023120482045111047227196715081617655023722854095646482669028947563004583874627037472403474179155125522051866098532557563330264171621677377675517853946049243151886107767812619576524500595802034269083473984294377426307397169394380055612048332144209681469581495723636039781388185648116719781298228133465035498889797631305862668684426639271251792579781539781381833487292393117612350464701545854969877082900088211231985058626489621870087996353087945270673773100921324240404530223911314091362026357099787725616896619496569206289816330460060766114589996342059384503379849208926807459841794559921419479760866066949886022261828651592094146898765374160565798938500789479340658894311676658856194064243198428988902181471887473975807693325397847214053306422643565824582255283922718133743275410763047355005880643781319163922099963055429566410986470470038153985177968215881190046464413499721552633007092456591832626884611132879045248922229850280431769472040309588928398149539391156686314353609982232089500683283610182031380268205193659063009881406472206451297568624405330829753910358531106066051227363010653272871783310842304265463015305472948082546827538423885346416248058143223473261758436072418675156860307471344587062693336500431879717962477731663926293924597311315251396448278299307287373373182355888939854297927259044822386813046813602158078732375795840695045361046527720248890070831304285271264388953788163982273369566524151641783410542591886424913843132811639498310797039112760132555627558868440778286087768391647810921580802684485615251945098147089442459318854300122450395176411732768300223478621120846810134103596857377038579547625675615957357169408495445582789277289301864240224288124437939802397076183343260913788070638052824504414848448198120354822643057269528061861642061074877894609620863037386288312676948018754331614026820455960408575082948992659868677394726727003166420439543663337794649951169636152895484454444102352654380502025460799469524332503186960614125519568862682620660816395433918885056177992959813026935569933174614105972315105801371166427284033655870586552545926836497381205042549246418087041248594441928273100314071793100412223690703277611804086230132840379802775660223780514858356632707809284643535512082368100338154963204889786607613910852607916821779211125325038956877323117375186083076935752230103957284623434762931442204825632360704862477007591140695221169546721027655623022451924353494039422226685735418962616736865858992387670895229852376569047477440705679275500735521210320148062049208631090230245255429745231270105862843235977235470165697679022683110082616268442154660598237996071616308115920666004279649350000488801454518352815693062428680659443099730464675993023516385641923336139675195644914732580035752356908630667562956632041982369870515532214852234880216297522898213547751971221655080084489150400369298001240675372153389136278141922864264321113058767036983623167792479468093587210156509072281698984385838269095799807232173811773110334341267292412113546578331927296409886874861273391728757271099350185015952659110887265712763581670285883293593083960452807726312260482417075954924311692035945028282848682883745265348172048615870525196983106909088720715668408289047535970270109152619074162377675845672705036270385865259467968487707431674166122601822309310979122712021487915448170721256143544826839830756834149727924286159997876488135664119045693313994193918565961884305202820450159903444144040300524194277867445295505598868096615122277944055522286369848880912117868968313545163755706314315334999969903577782689719828175496732096524116845994405837693427453523569045408044763209257019765888021136022868432092334307441152531960025361262519018025192319924644191949692361447489750218830809176956797365430040290319541614304740940959820813685108304392896890895386320222970908116049436587784889911680333479481907975078224039418047458829692711848424099303461426932704042931412536419637420205756342440620749947623420391511958303251723704587746119236944925110317765693071201199361334193392270820275303824347901164593306657892464612573683761822675862688451134818149031837596872660990509986130668148374487190485817511150904396758977136093104414913109603004940591284544277098258440283361759365701845637488390241243064682590511488029511319377211055059420633463525985742219050033396071431223868367610329939394225683266012433737874996659101741002855283806884121204422941716967414048532031145995205270604658390774170251057478774685892735894130326139564157547763024023893496587999546277497044402891948931436641132371226711952729235694428553895699056922083767018480181586486047455481167384859143563901984330457474779946946129160665944667106934769610375398665560581153971431572282378262543232913984373338648844473982720129059172780491116106844774540617537234496404243170537294053438808323804540866592729806139517504527084593156685424599442772654043844603391802971353043731813724294316072025393145270937779130303062795971862471917615701776865819534297190370665046971121962194783393601532793278144758875564903319620450478207203078698541224638186985864248595065720739349759243724040735689825406123952514056176467277816855795339592484408010339692497005337229802795598743512195560234100061758521960190047865743171775575601342788336319814013823048253396600939225553995816456237489646649226128964857647425091477884053674258908980328758117061305808882336573043462915479270001630961523620623401979457165873003692075244106481429065047818500932928177432726532536488031610156135908273394552113974525220943811990573101542705308941465889468810100741824400454973467628652738600501049270155860633652441672576986526047500687418843290531403447059752510941656653555495269096704674564286692906402076910824363005072694718890446621003158784602917083534284348304088291060002289895646086662833508788376906430209075941774863326275164829462553590701480112627714670384182238788823714887808890205669388051880288130553456788971249491289442980512180963724770307281834565514876735050168978046914173569193375865386698468267252432474189700995022910832321235937161254288675155442533576759406751844654500910862722865484533620901914418064759718761681930522165491157886211935850073908515954954579382648603610040211679563069681110578258012552653766746198711614804920439750579999623706884924956966831958213814299853384280650516268579444943954976205700006726864205262213267217911589376318152856315474503908007684995313177819514319472767755927870252883527081484646421736563449691061272016244273278892103412668972338710649518880606564334873292252024477079232714874020162632918703144933939586195415279485221239693413027528214519592585593854382316464327627058353144128352548852890830623347548238248060428612875842039672960761058405861545864909255558844560369714155635399554294594139924172562804423712491660219823765329309400605041739038017288831892563461524593068571318788155535774599817246997035233892417659854308860232597404051149397114758335939331553687321011441112777416058828326261895117821171986610438430526653290181903186207412529024520317867109877780411344076994423219656411057909215219637698054426222285444059781868373453706691430911046622606886821683595951219987826210609741855474517936972972943284878201175109966490488442535247655560305376498326041782499920203420494673190141557829010302944163171376669469412961307079005568813868488239834838552145739431191552148476160551098137766660188585719570246532765741070011097312462788051232192575459864353332529021965708297712524150255203671216943458891651048461408340318395231545125430723430506349301895613561313964405003828544077763408770052962338597531199848261651457521838720288130026806844168893687626168785359624170010335338083389512664303505472556898990753558880868282085746318853443054416752331571240718598938768243146291264527157484820941354320538700242889864213830797400366486548594775218293300883281619794679160786627527598037860340662635104336413196123439653954031866159269124609249082460027567946176820506838974825723442538046115209925565319582595497665215197752718074138283926648249743234532727540930406098484878497190685121177223300405961350904293451637046543547032403137086042617409447552260471120449095318469603746326071520987157192459249441289576053334342318375610290996362095896108562865419705495552655815071943966105803711807137621067018895140128372702031105635931414718310631925992119697715420909095719169067113189706674131238917424916007692856512532479323004379747563446655141623082760657204331030771016312657044566506663977010445294233097494579402055191424324160084483786279719139236217983483515186850105081099466414748979888399387845647650331936691843880647480073115627525197129769847399348284888774024773392859757633506991895011146226086647681589820382694428463228395575946965609245660839979555961041107560690469331149649424773855308356154037014759288422932906733572000656468249920866905844365638788573040784740066097366517508946003365507590045796338996541525797763815320133095541631640892113661697740481512009926574613381376041257989551357545392061311270427183980127176913323150334945115302816740632478521177614048316858661317823820495638156228054742092330958583320263196466807018988823081306987192740457491053479363577480792642990856833525452191784288244328348764087107845324180571969331492288187392706540098045843176234858108093856560650709235886739941199302493593003881459957796680982597863045530320490986778739685220240290987386562743489424745879591935799833055047566583247423954372901394446235730332363029511884633015607350584793865382405613743957755797451095981223173019747224551461741434483376985602803122666958461273778507092258873661410299404005882526613758775429578731502089476487426892783065814658610972116209180297646714740574486917437488202882904369288923310512391633484193884272598966189340066854939001667599465045835935703997241125272041152437553924462371817777141105593056154291277190521901443122967922572697065119652952213030578287797324364393614467659584255321286418049644092238053819538941781550556479864005113467661553761369069050195084854850205756153089306108149396056494814860842164294996919944417930423144151693243225252941483227894619442885997925190525269321199958181792736325915767615226898160693680404957990702852580039169655740360238601561888724225475742514385267288439065453034264798962050239171292324968717395470334402684970861115969135956315018950602523828419028502846049362717103323199862381197344668152423212394424905605228970770883373872138903105759913926461100489532006751369485222654860383691024302259879274674571467393328086765191732671608427129358966816536980232973975306484175175274565221257513160812540358223268846324982753569508526499523184697975276298524647900954248698973766752155865022176500717569722921511063769799742241850075531653874308615890944373956336465164242258780599633326809816643836570683386984242458875043116672741747617162737420281379222727004635360421058095740748945596168594302709000220599605853249353205073837689649202487419413116026498807214573022018951102771343969326349298489740093352246705742544669085732888528728144994258674838192746377905240106407960777184159890826456510026256627524319158808287823175099851384995069605121672282663011087592319177249363122128607959874939056772284569307995022109635652113800755631983073912121443909104613615806810800455211419172867640141512676592826784297546569567261752943532019484927678051302342149483744946531322248954872350610908464026584342991693904003923692782574303681513173189121788302447450084987936454153864510742659998142954537805452062352260597842787824246844543464308618995582303589552160940253838798608617451683950109469149079637378278883889221607822484283454108221422261818641116348679820019857273694017247150484542568426530544416684943797789079258474421207258529952230717815255116598411195309871593555248518917870548264190921712805921906871677290315212156614720487779536588439446207549998594473701524730620752979077500970144984544790963265165566813077002425033759672386942503603780104362577501628296270426899979810758624964695953661164108485855985092736654483915244930019128811901126570086704764918414902619346304667250866828693592184761481110668613504190517046486206816389363143846117292897950687338456355302860161589263074460697412239984986433200054089683638767002495409012788370268535288344728534424839206869840011511378018318444685810830378400372873785156670519118393823383619463501818413000895774566179306409682713735623832431044336870622705633540191712076655216819043821252928701923663690849769333321201999440513086689771897251139446728139523414995192541240510102329728341423186065719154879536977139713819233157632432967460482834693133607283441893606595404033686532959692574716309354966263093474452217988947084518396176257530454091269360671150309146331317745753482648248958488349659504776697127717403219860433265311178913510693254417762757042456127098766823405322801243330239328379843442637965509604858139912315522782481268689969616880904685762824441858315376957965900632999430910949638057220489726736900269290711374587272071923579246857337935535664817532556256565964721492303561053854072902800711910960528815859881045384960860479053647577802789816270597943169556363984592210396361770277803947829203161828725520215100090800156281859744179553024072451614776427646954053987955491572285824126320091577667366628716094530675340099098454040026325872038820529792736539270040631511359530859625109628898399126654621398781956906297368378504630452305339495401628796445257132910669800337415613413771859492244437959277945266258927320840300273548154379992843403984792067922877703259718758051789418476017030170273013874230938516652203295051966357508675421217566062121991943989903023277148469507863910262804734950400908992273721148851439134723413611641626889459602857519089025386963534606087335205239058802317136883082704436822870309263210607252057782845014454483392180756386295257402839102061491997883038020786364635501510613108054583839075290421213354031998504267897337711695980776156409903699114968536227877049309562730388841316502197066386226129770719108564512603435503660790369645601556456523649446576020183053384213399146708306324077892481638908629969739994771989754249247612553832208931666848614791745050829396837481213346110532794412255388471895471830568746158327614541176864685964351911172395723191351692684097396542420585582812929256569474724186450634968845219382240723584172716250840721198591083114257943197863424914382631989395509210735351032307783162630611039676135221290797250862296144986252305889784474413935526415808433193090758374893528360749946399167517555032814202583720497246146203533658997764584114894732792070518276398390643083122230302257166130578460638713215008653909354554462060789528700738512857674081518723070260130536306506054201970669435280061573032537686789148011201891423627157184988808382598701844962090931618893171382406399002729882513357974931713229304739443751937497637510521196220902387142859103673511817197270057665549677455696009877879636420361045727373542596449324964341272219556537794252961738583696359154849028544936145852952916958336001873832803083055970036852291544195126447746505689100737306394419651382824697072388364947340435346782433250482982098850600403888096385017031420026416297605581099119224385076458644137611665300194073366727885566641964540101425035122005149301909651759060385205212577998944042669222235083909335577962281158952222623811514892047215003394583627105666562485847981728757921392931993848153556918559155755435191827484479733584703237907577238292468701581395097438249084093011632935031846563305396184783048098000384024469913145987862241324976830317760503510695841141695929430142064308771422513807099188940439701102633560269107509686470845217877640968879050981936454173190938775484519364456088381959620415891576559426609945595355793896920667064825366560510586398967224493924561530201489555694412895619372616803892417785003182149606739407030248966102912527895291676172838272784736681847840131152556315723176209759064155661529770290135687968181159734333864874621909933747567089460477583623824235004672060876618151882987099247941777243517630661174175226490793779615226326855483046839935641394835303395899396870863066298137687682446250126965465648735852067011298124450321375745978023691350540264874964372051982604590620447530189157471350918557513665652337982424127945267084544878787368829086210070302641071024203903757787018795723842274633904894324427749087085947694754661247803255375821721637146834156484909623823764344944435044810498701695752146879261455458908099130069976192855716026172549886156984225500588716713698219150998536690968134303691216858356897969013774013864055235323653017642559261522539403323079086942459920634080800862068230670338408665731456544564407302088150686576742358066827005194653075127223110691043432731075410771332563572539750758043200111832173796353300451516124828488676749532871650588809421027023980574457371467205346287972864579075108054567331631906143582227085601050430284433162970805144520158087489443706862653263149511847127056215211735515812415832373203690783541119892516951183577089964382667870725113709457211180773963086665169580937445618210227499332203743252976369009145893221929733050047658428968349049803746918660763972424489179625586381470465498398555295273519298185178735188404818677038702088636003063743290230060552130248392292518304867989122798145073158179905271678107600832032004221591417980341856267104017379712261459682822330087393223151730964159244312946316301182447257056277210513735648134987745419618645305153110985142357537820858493439644556468291121342330546860989502291557679906054098676327823338831326089832895042177715202387424800690839179384262369963281943363123148654200834402097052920347781957184435357419301599067405454143872590075736017655473677759241644241034821126463779216060399298592689189992985152385169123212758360667783656483215601615487567390728237183423089560715824424397471025207585614230115005734835631442916134783200008707311749250743196717267071962804713402029671433848671791531833802740885604310733935236732826674116517132840374469621778695870279966644668401623105072997519996572054389532761613967020371264447482130798692620983863063975049982283066791262403357775394647319742533156918764121107455878780492429542748018009398467720535308148550217625237382368957761090095293471737166456152473970294458170069615719199152668766819637251670089906911904967625972711678168286693424105157017349609137043208355764958435657293126092208841533241998347223415988116587123150712528209344705823697053642081134483766578530050166795352940139118521337225761535802360907155103515981426691410823986373394102648160848471759281712012615766272658146133951359354956813626154070417520379335894386539297902812031577336679605545008895491814679374096171546420246968027366764748258688928943354376658578966400471483994019855674253243768284699208887156379254807404889476516756272309051793539830283179793789108551807168730595149921944794373827521867782492473332872827208394922633179264349500018768340676096046436066790431536936238812579060671081186443389590122644547372749565206753746341579285003456440097786491016845103641347528930074655806888009001437973257948228243371794864077297921827842203386281760241414867574476063630367739989220834129245711374531593224245470377471998734661477757930587211790291801042619758419656102270541358693784383644054936889470470313165428984099101033375829385774144329927344165442585324827213002935640288896429868581032971303681079193799455269134683377195490713289452719054452270164677538400194317426573685053483719430995023510615549603690829964762743272890654571366346335435859984888478254697613298657778926128812395819772585756049285832885441883645594802031151864390105198614813137558869087871112603376759829983987568055636440606929719578538881406271120266171863528140242951806166697232921972976124976314373933091902029423829523317535046524717548656258604946099084081651394650267411928769898800498599878533212873219265211456410889829997604271169896339376013535977775545490368569074895914176201579277116524618958509499214500828300701116514233005675194352804418571676151850402778239191543407263402118460746476023169399681480930813806573485598941914298102914784219691469001283807158420715897911096927659687698631386071408107286880172716409920220602692167055234583939034830101736842293061102323076289312330467565027720394738377652809179239273211715382783903864003647027182832861142024082100894906488373806019801223082168698909241619037415927568256096170691447209641996731246667455034522928287017629319522695810863284259292617513342207591788957556638972216784644590619272819860377997325937215564751226385498427166172099909550356345691432581733998476260059823589011968812022734956110633154432128120807816280120620580598095611969826365397731920869569834947145500846642310542323535767431075325471624362189017230326517748946566224756913133133426671104340060667518965164771700652737033466610172538702341281217023146784672245564823576286865253360307342421063421261789024857080405560311137063697344105014881013110823445921443797354866863927572430204302705444185353568709813493418900438192902947962283215746424832390422824130935650156850138317905946105761381312097588839918596878794120757644165450047836319348081414743547991761851317052724006598978753787800569756762116486712018484883406738282908976728925092510667162585959002181287180069166666806548846932771993076265351516325634727204395873072854486013544934913780763411845174597978521005804778111584962168243884877852457796323829494368055972639553827359166197349970744205197470573663233318588648179464778572743422772222687760278373485182824472353682741412605974303343883964285386615832473622433415759616185909014084616923390086557808598488422441668485092767985711899852130556415117107852100152250137445597107206912754679263564837291785613147032571924285512885689113848585831915215753592182735048084907020329788109672801950464821750382160160542128758590448912232004278826256191985712106903272284141998401920471912918883239825543406562731601166206146257774604623176682220900501570620912575291461026609308730881685648331089426797353564712130822475615278559475647185261153819701086572892858492866049640805939887893912331987612482559709562150485844855059755719604040963332663972612435505828392487188967891974464437174739814319868641614038671411387245957987967600153532964932147015597783723097062336933397838951190707231499144174894176240803392923438915292163401252873382074896658999952028085818370316034393687423075737317110997367473231340110515650898327643157858537260829835487099982637323235273749288262310211355353672905715124219193097725952639697640234209477628371632182046911861167680715940148885826808987984774719922828660929776678446715740087404527277010832872256854574288632959769111719177847190042390551742526653645093704246139244577034191334638587685524694523362579187518814444073702767944466236244371102138094728879744391833317386269630402791298582010349573211479074766908267180189809814563567316663252481330711569159852053781043941021091854033023416051062193237888454714031576466334786349766286402658578597956023400648738205725440272193024464635419516712973663067547311299417291475667794285842116151517522970203645197084339868992084179904862613065317909557935762388497834632433190374901273714148638922999428479328821001847780383571655657649694575319787644787970246178690854593203803599896934348635853329875882086552462334844962181859725582424911793820958283000646364638598149062576026213865660208162921631374279401940151963049137454255744636560536944430876176920770501538170971277237200605252898198680171706633416224975830617775772676903057824833189479743001843103725116655465829460470255442804989659601947978525140593944023333941837596467002643075670729291903791353296049109909295570805508808178691677432382594563687973129119805362367540250951134149677268749515917659096651215063583463461278266901850604349962033859385527804145796088182013460242982286741984843131592841056697034338736907893839561251610934859720685412250106360226479147988499718891613979101190964904068453645746906291505377116105375482820172566582666922847229142056110455067957835770025107530906678954202605690983284849245503534773515914474577431594592526298899684224315595073518789153242044466766909321548019885933536854832001766818499143144981539347412318356777440909949091025195433868527895062212916932213204583711946900426581251197498641759389363392806417229828746322128201505419559629092321388058180441141158221995965273522890086601427610874281626221916422942291814471820636519345320505856414271127627050325286758599015068667841771272197334735644990240544537770470794246581662201140939691827834628064708702963616538173698431763464738742467608619605873595311007346971471632008247544798153816715937169596298954285078599247749619950639538860585579519350858970849282638412358371808305251682398645713625525094443893695497957208604601066136157094817776607550842256609918705551969294849172985916892554491806878925541876918494840597418250093433246048378250003681126460393674168650566229568201640931672808575209109102036593192155591780429721697401370782305962497457672063205237321907642527854397990857686912105757041362991495259227680049215307187196772641440163693071421378916064671037610484385842456276716925194120721154413288933278574993402606617308506426344556624673698376615449319767278378816072523578705276888911653638619017508036407482355897963872780076194095274293659633750356017795832142432963944176661236788000127304599584795780003012748644358954782478342669277067708718466701828194633932202393733461960839054059640081588190706526730013573389058277130496097537097456902948484797473688588468540999917341594083999506086916325622849497245189725907973447801575650643780154054197907496445383184125393648016194786472996531001881525489564280598350133197836346412999533169099261864440290292619210962419418345533046724193729400852648398863385559221416840627328248361739749606144870181013848869464605121423739084141183251736114063588781886628537488007176983063936256166948856417080583187956559669330881152031782771244893072691731914716184072073611850051068617015294985033798024713841634987101547910265254672003384076255420761791316977267851060956115721553260264830448513119288623796584047989976630455097864870530338214905143581156156701565598263431534613999442639628769111803722538790472490905608523803399430768682936886900506687485000082392623967147234543602404387259360520605146284928167850898082881380725647002160244347702579923242337601494039554578738730832492654749723261252957305279640059026493230313986744724316620069864391579974226300797353846350926879605060633145728000258701716314055293926731955902298911817123593776871727423778619629072659473133271785088800518748090477899500293834672427990152266346477095062031518882176756719314190971025282588994610759138483914197517431440974144635371217843893491856825747058063365098699444808456746006319902819967392054424602684360876660012976885009867114217044847525688085438144992330596397620991244853272436359466903825343872602278415746598795578000932477804942545121021004103990636528375831757327098609503784902344077567909125212548899416690752795639736522580271327443708158557429725287844199514996164391077933443014636496250298559910136417181442553120040289124932082926917265763785952912251363953424891124943275983294280590518346395657240078833609399608397515922549433750061954614046309856495112983583734225841178544736764368570355006777225790840334133953672672579741349178295298127725767278800943448125186095515013549806549964502705042853375092266643317507841316581730581605713598207569906227768062055621579579608104254803730265272738457053242302435389376121259766669574847263390695687388668259205477561351606068081102003223535224419536477605628759296569064568141634638070807984050145108202579672650955537668791302360485267567214959062696278524346938841927283641885734991898633092098303317888334243319972342163093490998470446972678598312080491541712752043779164776513823523850010546390818295978607903832041062133949030007586131735425252780413635157279031883369553030953437244244761411643463390922446140881786099133209322303343067770067636115748704370236325701619660146492232113996310786129522600313730832569325043557761277974770840684134110389804463419634431880783744608167698297217667860975129376609676054989270046759879358795216729152854452623294827440905750197231722348645970140199540202127607819461974194718240937895461721274537191944488836779979348152974542414316875329447192103031948623141608345404152739530022256523293384766151374736223800748606915803086980377827728817340609919642888646969810748376796513019135090653278247701098281974059727944658877360574590706697719531722863697153250138181648186719922209353501482500182557568238776287837690973312495550774553057148905198899342509153896859999100300116573307702120559294762769041698845078049543225746255637073601716985492454242556373794339117651245505954907585544902399138552881086479802500910164596717309389500890707748546560202509936025455379343734269768881955257978667832903552153297503843590733033461569312856320620128319546117196991511676474318306906973343550852965003061886665956775738315589452274332247319959503357554140308752295472428924177067687949908772892111039069707432181933044531830923535786860154936438670032106936079870038706401567692360191195607731921328218769688934969813582513393093302528721059273698901370097183383731695640205666726143348203972522833919392031072830400386289463107758817980238052402022923401840777038307192822027672266820599952216487441822442073006630132712419563044959119122178658757242242560547291730031671175473544375670129984023869497504287417531513305896397158689384157398871303535948128330349111432901882987014640933175102832465600890847741836893939663496630572344452199264108349609459821139571145755093468415251996762623556684529711672084660211507583782786750656055149923144104088105407689160186126738749692964926974818013418943795750092797367043544224436324341936982357527877788171635717102864229200737978405326013098172320084786781063825985053081886289732150752225627112060992738709837332010923405646304611289263262043697611884789342619140002027237109541831233910593846761548449864412130983776467168210126876044572987692111160242753707492835698665301064304769478991477898859214535162899924082782555813669145831260815071677731910661105987428316249047223486216562631594094741853747288323579791290493374571941498427292226229645439061543990416516516294319655538017406205066351349998044803355764243107878988240577328670584599046517629965184030376277391136832597982950427279891067100300212973889808426283622950516742636540443884373168963524430418434740794038848207302183091123135161399172166655469181055644168422131586452445740690764734304096101955793234232175794676782377560078636344145207494104187185151659448518979673844459130070114060602887316013631095456487148506278191158051697154613639104080511989356042669630986648989558128422325578438348339264352526386181082456933108438459106016257761328652461954539935738160931264152386547708606419199750537534956735958287300069454248603626272283993730558653022268234898983507841984256638276520453689610160753524947434862114897999687584076494275984861099631296710819730191830105533630105428183806717683438833733849380048998705322646355336896042840691365480884811797422418102315738393780326352845767503562654304963427147926324869724290254637886178518893758977669360533679324427896867617974903365895346692608320601288932975242445633176614643201947854247561538689704202181611841778133638721080887711736507680770308792193728719641756331380008379419844378142679457829179847734251551900761213639615981093189858157504697650536573742192932326501103020239416109134233733352484573535165885647976734868664914621913525536507886843914574343884130890834232466550754450525120267295611404822029387886267666840574135602992571885195086250713199817189497177184091010613312784311146598760069463832689788186198441146255770125150476649719994643951077228633691693763768967396950316771059129556432143078925369910065161940892721872005791635207890198942506850770565488794029662864679007528712596428704991386493707665590217517296047800068741631075486050833977906153743999888168117333038775398567664560841715399418406987341224514233582424045598952330856661738585036410891578944458733998980896062764120104337582836309884747844809950663888427088334609426717569785469487040578948447557513847372693874851347241239740337973965884953797995429624985172179329876197853341035124189015965516176628484062230966904672062116717982598623949962014661769367260325053865607207983717954584306417165556408822895655662147270068034916386493166920135296884636309808752084791930467136560778165241644012711920240502661938455864808191005312895594320684637627795894674740253232873916840213873776736029444642200849913158525303873021112523902817338392289292333768623160515664127214158856122783754634913764965530723458857590893331359263832612491052906291307315395512298793675339579660914648593699584979420944800580532617061215529157993035612628222260613702064964878443104416544726188733028105370533797052628693474935482310664243354482309131015302511262212796682027501927673867119227946409958567504960394213311733716769382225579941007666310449192377624188947981385728120235820335970960477496783703733591549859481968303537974758169544658372543495836077723353625072343920222009840733813666675078990429320092278497164634528155274969804782778804992986890387979120811078438075576443974950056644016016380596650975647963248125080717379503819007340918976476940729697034150670271438878440129733132491877622466682566031999530013969240561100931181154585790555874071887340282556861866417002808411386435656047563475715944501119317454625250208944014325047881052045172645213203936434556135809204496361517520971199001187583044145306061608754067789517264128523828252961082575348504213247542762775954302851290090252329408573518124417854663578848955952897497458030334446083122838186185020285172658367546139956047421758930771044369871641951297880769325379726575080924725324396223951298929316805447439039437123803510522035120126176104173185353974958760556984426551096687039559166868407511842481344963661039209923315804896877807168750318188870500916670528777511014214550532090997249051278277069547818584924030863267553966919215925178978219009702202907293177333641333143737688658963543048408211914299075656875625298774222998823137865672327962186549374684687829703879096276996469908003868831293340749543090141177575857311074368114537767353083705035276385247777930434121611778720386529780973002568221849092628034677330247990596536560330234916837980570180314815582687079223609373992879708042261684345943286704911901603053716427808710938093943789002845692608886900251183727332364598296462379690523230695851327929230480181207774286354653131184377805196201280897942348722623835852285126194851984293827938923540084450472617092580637611407620697154724018544550995171888361454015330900313586568232431031391249884186690973968022317510445752842831153416665658015305694381608750761999090841910847482568226368468718837256112985624248648090609819296096046336616361573533939484799049519383980607407520634287216277439568356305979053603723226292913809339008545638081936590489590881243453554131334907898225736241595436327424837454881253721270776245585791269265527902514626996170675755518028301156549989955002846131161308780862473266007441565549351634206649427173770193802926773142935054591248294793775387742766801933151621916277753868924887336181830589881769368213299007503052500104992654421237587447083978501405093959647030332154963636441890814434558982671073912298372935266203864553973825581880223902957091003302706226261681553118414590693181363059881549080829559106834129597300740446646495477186245871805078802771531661519697899874717250463958514141931434759758418294897657316914538225518086431960057340734176303085498393192698483514069228850398558092266673013799742989686064239679087256363267137989782337451913662727895520156592753091674814630068228979806250284210450992270308018659433018601757897505434679034178728900457725709381804511513123141872620649636559975988608949766164127039561605569693691521345721198161755088808097598636942149237811495220415550906798660125830059842847885824078201930349564998488879419644106446741208123139476226661756158488738693639095558856148942202303076255881607447169034701897901343850406827874074726671900349000404170490323910535928487742847209051522547099495510103992680891316103671197965414506310166527734136459597807456487911379083233224450560325874826111933090651186072086042327841431481019985073558024292440126256791500022814842280899830891102787786858069168685381263129153445556814635286147388379483223724919213499912492387077544252048240873428082177228048581163340126016639543650805222819121292586192466298297273587193913711269065149088824656560492481118277911017399900618331920836593159367032839833926863079260824905251083501265621029657332903921602487926373369642921800167674192238605280435531594605855138738087572564847198967540927737665217037492606933240133877865193552862765418075573861988433363188901255557452104658387192427173726694685753687319470076351491278485043977416340409682411850053782646927438612647702381619512742240664924809588842410930048731543642960631903049403929322534022969963211425469209034373852907210814644662420701925785371909676220078902564659279170073241854188313516501900614793280611307451150047909891711695609858842439251447047628486686669931511286791034023065793259166284268596352413845218117833157357646454360094427549190181093338746664052219557040428513308623381298698187148526916955347161268288517080962097437787502603874735585361288784597558004164544028713417565145983942987075320066401026876033191957369580745153068421681506482333851841731114361057767047966089753447638188931132892737247586951870692022156828171627526063800132503011841543828369230470551759617363565286473992227806803233911787937541140190098858253238265774023071313701565501367643077606478868570157918382351777186308191387992960049943522162188867795253589688753572423369962957277274186379962603757519867995446510897637624284973031284394520613677405336106569702512823200021073982747664790469717356471912995164047668939622894974147226117625514364003522401906136768694359212109491224698359962711091299946670060318095015480591302154197593056337578681400043978635897187246872116413191218869335175844149131021809599702527256843484008829236744004757777920792525208710668282192344323581941646962612284764287321927372406251976585205399028523828392293469956634276891216940060813424085427304982999935368364289305621807590098282173150355464254262524360851703183942145531520384102240080187087111694179912437227194718903201295496950733647219066867149134451632938715290677373385178567541940461747586603659862380045002874869457884182886794372218201165301971878270332737536365843899327394779640582119545191700894788915054933978502204727896887320134242947756957360944031967581627055287739301533067021986830731002045092533047200363476589048478607139188166884141662456990616249629070477380129312349807355504025420964676943522391300665890056372596186187728033251315638023345131579743720570779203685668318551494654433488609045812671497576457940770935937102563064038698332981781295684902494817787426975833411662359801816213524870196755061761919261112449549444912126519466353080111522281626269084662137063277257693776501596479837005458963116227887012530765726452569380972656971530572352986109575742623784903938795428061794276011454468702229654875009286115646908751524042537606433725614009063398455601588855095423475694581740964664935559011459020814303274480701237409851962197446321615109714047220745986577593568042084269392235502499430394403742289416374976237321749680426806943460873239105966267067701799145708693142276903123421700088541195783125017456858668865166378795412374236569616922143227765391158008392899298518322238927593142610579647429506692321488659328677587136375744300944831692786774566458799640333221931324718272005547411238135274624195435905577458351810167601363222803718689461490229169486146114557945060833118492956556472024544098859937602359428728234293993846560743423198514671670805373880417960134286964261776776268725793556618743348346849038990304591807544096607863235223330210427216910511149379145703840500193263260578097105338652239168137892163337222701177357467050566006310031705727844939911534301100355025854574588174559999041482819114699413285401557505899060600704180379496447283605111936396575022405663850833587945403057587794540270584516813995031655168065602676520249924700005432567813549688646351598466874960349447242302510954267082066146080674690212404381193800999914211301412218662753176130942542708658423095430456950372428058600441778956272252148340044042803769399893695089632464202620970576476333775404346155137807740832299994533019440310849901106611444660042492888308351304804118819640206977591131642431684650833951741777697231079888198665097865053849123392003522300891944298028844501088720001467438623289212026541901828089440546275991142752553960619484903597447065634374098058522202767950892387822103586096282225970986425612914798382003378282983628551689287236545376001931804055887160694225553174839736509706291050458557704533390056925493158082664238351643416694890185926617762348353291858538331468864290691632439853359988999945322613057965237360736412679715248876977368468989114142528718212569190857433822883880710672517439053179468502595780843457668264394818213774077430601160939852421019076237224770476568529749002136612630781552317380350141329089550271372114247535203198799179323309982472713974725677868880883972208838401523394241571628395595878936156332680648017179573730094511555505591389692955862827598865182355039155127580403532340643931070429838641775359869558021639421992670752095220294396203849691415500829344946692733978678802644197830700247883091998602105050575041552314311143737326183819095826185371152597268675320798865955925292400692216452765454458140536787552513241248736684317401759675745132111602630204774513514968143686421042955772454413839003854765444004226002003428608217066043475096078167960582726692581186404147187251876389273832984993815985429516711956128377611666799259646510621127920422551355343269472990342055672078070042522989513559983044267532339009998385466529082817833726385727866812354543756135249495221755626993818529042968708232544127271954719532730249979841735475933176081458600280799785730990505777282993312202881103659296457154482960208816230973974356143476491195958952046699337523282484337421142964454385014114320352262633800630321866176582280933512790993946957029503581368419064431670448846491608352804756791415112088552508501245684766792201566085597136963054201280849542334384197872851022522791018410179691756288736061219314934414296158765228539287340676751276189373727866746298162798226516060557324236604088731098863083438418495919744275435053824307599230627070448758607139915202288794433620042845171611136111773483296644959503391307284984024160906257027838200050817770568704396521605540743849133333727643819249682294821605673253497951646968194766942008651154193413929861886872768348737809784935067976570101444352177416781600265704456934016445525966409819742743920777593716547196976776242445539341093689354630941816577467250987177408272006379094381502332388096237666093506969397949165557961297898257536026170594996162454184304494457160263571166531757446654654365722009953501468481418557300127382725215384493627291746644105832201782493495098508027143844146952688017891447767490056259941846759063836369781503985467388143598396273989900173796998026912007669168505904433740594092176415060268247947710545765737829131323011230077136856019384786326235062065036267515698269964601362388215666610405603889485471842530935436762265694729535477581957739395955697908577257264864498161491222226193375774877442934411773851826696651086914801530724356902620057927461854483242600793801183676256915232151849382622379044236662951722876576850227558810418710673892643268844459597991617041088426847398841865039916254946127712888134202838994250085968777327377181003713962427463587628774538499025182434659485994161191930330245010053038906749973221563806081064719720274462395840848348851689327006799090124092396075555414810325311501863496164278042349495081705584697076854582051026375918280327449930490776622598420746506459499539705122573954742132364644752700581689363600566730527708785191287774626750369886086927379110701271388169454546826152375315468469929463141625148339156549999946972121891626536955726461133501464687320328963501318958952978699317447129731444852039381701072434608102937843457913878730821652987941476859303871564901299436106332625291626644938295099682109613216826240326200160290064221407504628492864969848057117404966879074115588995897157679106850553356290247307101502587109986692901797193490468336197759288401798069870169614906849917515089173106488841634087732834385889087494020811573408878127156348058570351320707328753119479611238346301479718427034606072494440528791221761453023617251127544281884518326475879838058488304370175754031881044342534007503547023802892474684047789390974418283945385830555831016957925807324101242276374566888400411915584772563690561329239443683489605698846734500074071542536084875627137457808120106608069883311147094110481630643120673232521124853036482940621103455890592358923114149873914367750311730165250330935886675998800326501679862016164129903607734492634681859461498945128634397898948325453904351719595004639879018021829596521600026778682156356858700433370669613528864904659334172210831781947866087706284516348439524586674388847343384855747017769479119510718930042664614083956541052500228679447599023999249670621825244379531599910799499960206082741310692846579683040510123801270430345764534841243699862553297098836059164987828171575907233796850946805408699717088104370523838037340231847221412496904150135837365374403317700799200416363792291727289671147186624651752692269554708363444002209698803678474307153628771513508407017244994245696987631293064983910126228388677229984030892506002496241888958967489080528435998928362232721553440016359771113770535916900188194474375971128130374869218011566192453880837660200633665057810793879949636042459559806705901644151732084767682647411413668316612707482382641400205904879315507255543493242677414239287926394188941739232176879115558373053700120504577194558725810946064889725388541178166650569655582611345068886946643010560190984468850803894694518607174788540187936440834557537044100774763604745661868486599608660840476551223691745321591512422384179835218761146085452977321031170127996283737099381380402681582917472140638403652569574185917212895562469758673286146032557433637040873181948238485353689426949305148179323235331671350390245970713952112775371867197152628976310465716270484931796728868417557021551340891600474955458348670692120711587959541202415941625069016405351710690135896343717070257235986862149983988850005220244519871046303972686077948357868871756544407642284535828109100986691944215768471430759925959462049174049383515349499693170245320958387325376672982744256083617045668828251610899870345016818231110304115540294109137589845234215301339185564110894462707583341229842260317308875109236916141012150083587109159170973305030111411743514814396047324778476780270628913079661960057966559907017350926649661328767687092748338968205774197533792369189319301198487712278475359551801085197686875792417544228976672585756283212557091493535613495689811987237714398825935370272229229486686872525527973903541169376345385083563460663225257674490217123992755656146653379120244662244322310016043354738374435832870847571442886700431105336119823733828300683370643606768251585624181225659896944344996054773025612779742702766095502927707569768956112374345054637495750231458809815584065045090748740003757078764026457949838264424855434165440855604444916588618245849059648828332978598377820719021185330188662414357656780561812551721612242619383008855074201587997405116804324921226680352773752120470400653463230094056038943684205255658587540066655802933530788358787451839971638067114712319340026782149621565266894854042986116928249539305671668364498056617492115599647785443373707236042889573930093725913250660273117624392334644878032631139767044014827605886222963568432247306059262123244941712235401421057513864894635498672407636396970298119474791939137995644265847512075460648786888555576463175495836276685427629690429582739973374174507672255102600581907903374381365112779268386021430291341526173193117212341096792571874673387121612397786863281423549631341005494855885770917573440683760600234663845318391787397149483796347495926221588496963127460452969011686277847432486290252450841888479469997650703324378217992927064211553023673677859151647992109603243354894890727854038334395423466006859608370339732908638169694465832709881255208612052402081599696442928777653283929617569743039379877294762838660848751158244883382881681349620419154079144312396895521921107256057494172963574590838727860648686016694158929974380473673980931727938861009157047178980365437049319274632401417155592438205052458845635421162004998951018636196879018347545967840495529634576535214848875939901655568956846529956146595431791480206279969833859597179665990285468419877821220527357289231158393563836686569927734991043098638649490046033363929123521119576577413415832968473775323037954984621355025349483220473015054409927068332446694901107175780963968783305619998942007872261758341663172509023617768855099073597555957699524555776930773146841623404033684705470089764241145867393325652805308507329594011343325664891632180551521774656913408926356599323881245411123795641312711530140511355524896484918364022794028783020867136802667552498601256846723749374946426366775813906754839121959360905490036875939416127422926066517807788746857168418606208692937259330770154055280040367309926767401785355829965234288715048225896309807174978833834738262223057162919008301012572030450793781337678729749918401440296905187031454939805637184112830787180977700968654389735811771388213368903200016386121401705034295699857683877595749493370585195389568833242178328528442135460909159326433939151612001390904334892678797505364791356850308658140186247984877920898885186896908827163958630755160025744972065452574101179984883822895609411742567587643171891050090949209854987142435202920434249476166054652615717568954543512852777266345516693050057353571149634914938269413688185160192716772549574798816465474176232048515807421418271788001908723844942915314132865747557257799827336583834036539330468602098114849267701882513385329282480010313055160172952801131440150089983626842165448533348773167314157296525082075924119895674363186038936553084793714677482807407643261485922511809070780021343189722217083098770842427179153615124066323896417881837754390423766193205100793656900930802763975995043326448880423323221005776396498992980849400257485004136989807522639107891147756009330482991394069551587061382922893811833062382508051133749760595997293051271755949376955090584834134759807055220317956548646070496555346002561079719463163251084128861611411046135109115038715557472486473372630021500868939167838857223219143151369836273401139107142508362967002801655783927576233421824335680919859743777319119122323769081291681120098434984720959476577604278760684581848769398173945304972061685639612182842570245445904952102954292776371039202212512920420306673044040729627848237547287673155125579990154359594742026968832778784602031232422989663875078315404274767179928503195751835251916288117065491147321602698705084742015902767932669158823968024278666263679004878309205623795130418754962297686197883231756508930450965005354405541038341613095243268958195030479992566309718318060656698792125388120390675544602529196177391042928343554108843118234838117379013165328409578457621891517273179934289825290374330631914113491173540716504850464637581784451057366534683032967985640627730124064034274502476908673885699281821460728590621783239303112037639769521750187037108862200612503539647029059116877294491754944843339341882525466164369681043050457579315772256090127306551588438880007987252891423891896584093549886725666379796296413178398405869113141028696777113120332784301804186721783112584210923813195570909696893203585575588068122014598493348245535794319477014509494704341460156058705062741408876099058685792336995695045007722165889808100345027626833760519713666713513611897254061105184391403842253500007290296680423256939175930063878189168848871511953160465614055452616393227712017171866976140752943772916079696886797881413241032341033360153727790486844860436869167752198775053761748195851009877249175683353622579598045244519480127407771047011520446656195892039228563488013233663078326904617078214379169563313435657509002998489488106285047670883187548033640610149789204556211735879357382213721145268161185317163691959862851354596683362445131545375530430771256348752449906026556279590054033326151067545540068918362142826404052844162604633012689948919628432376993264326647903450206801790785647318012968298254611125297375984124396400753891437578321013649585922121016381190115140417304858724438304246526327116962675012844534998497743708675043449470735978672759882415975841022546659807430064836722718064890655484651259375661377400392921379907823902227387898676042729411381696999471023469210142559512139523307301398740469207483770968828841123723995988940826203947394011849979355989625819961049757551992657149984390338044664153064653930564485355334245435743265328234710909603750525023443280657048010340228517628398969921871046096198664897035494098769876036104302084007036010500502141908202432623692265801531740231409445368885366958768414808245347077596078663949214940036588977007543387991926345223506025273980734430426934129680367624282102677924806744083606698679898987236220434123707236592516061223135230995564016617797622815982949092461487008099262610207718782119701087682667681569973941502624872998140301875701391254231521924560673103771314116928105180186133844285600671819011349068493192252777991270646753095905735737141011810899864285599565131523165429600535088796778035860051737128084989667265706885118058653081038098317304845375665938299422428317809682016772442737439237477218528310735914571513866626689844816358172084777272436418674404997412597061528738756060197161219080300901840430013565653797791809330186277840179166258199562509970897901706493106591908779209340208368007934184953607018404474447262549857816845982190876337642103662217127463727374378188371351773416329488791048998532941816857031504929560819369717521285120091117981936512579894725801650978573595508379806971064325947456126242009552643522128656400899125504154069509575691426034944473627856021178722165548722955511690187930098975476152242135699270116731820403936312257627636764021658790188617786999922066788716170777379123826088777682618971259388863840581145392983039853901002912320674167118144142687381104326508539797900229212566876913187724773953925568885336225510573244352382635580710602705263500991332360980605593983300159595543839495181371646761942322189384994054006894967005143522957664295977626716774984830796515611062831830075345803702192125789153018303356633030483443529076021549488525084933299089235363271769681101764245760051712427537674556469205753426009809664239935320038156901360792573143057997587312394642939136463131626347649057361810457766687618274599942385166691566530106241273647649328977022857605623523901209485367335785383498777070231264866466521893184834880855746008414224845810265746162488856027414032463366534968646164313490905489529550090839628610647462636252775454562044063665987229329292673191801603373002388747167572463755754050939109940907130537455971447902553681156712526515985334876495045271064634706626294655768809655148823918244405497252716645579363844912841472318186139695515068054604366368124626886035827048566422412395067034794773695084576984588083885606717174672208172461822317946946929668293273304663904214360399058166765709814152917029461899541432441128433972084364701167797706993094269477611736033242091481945807690548049807416080504270627615568638645808014770897296940681436268539395394992128281998711289297479622037627731748641563529691608026300982359815091380855160695522978840331034182107074393375809108910467313543776848807067779425109671791017321170894306359922338628014101519499933537245348968846083532767353496400398218358814083792654742214758793058501416574281637319144246998434437675496966380584828060935122404446926580444964520746943794057249609769860040018283846681787307732507954839159773218127735734415824629449572998825111959591079516365807272965210046397108485554604570718760002481541063081986206579071873922669645851789860594410624943325396313882380104813180132463190021787677964700523346847770903504127695273640529205678565137057039461298099872000055602035943272828979470636566682085412931861648175708960061371944175846156208684640749379523704475821392908574918872336121734165358153176967745687070223240756333945195834153044028781714569506123338949020530439345989893865888405984392418357051582932332775148773745122175527091400976877405226505283284179294873934633712596139782409318764010575668231832664951427041287865967345635858451124408054366105376309360379479554594449478150441067345734811314495550465534544471260383781803565137374702816578309489729046667358260906239555355085465912238737107148494764387108881796642101135268540666807235442952566127115032977275910831816334124488373628088821189528474859770028197644869507610742488661978542140362129863908374732109267565608800366572993478508140127894790293864453540417861853755326935205539687948237749947229518357496005592230455575425441502860006871005176066423429265233113314739574064515524839435866700830779743002196345916819094912548411165453078719345147615558970326860373441496277911974722973845059167240978832624996503376858014247535846059591828504507471521293426974560093953512272797444573527775445204141304586727056723036253652572045278913598804463264353947924863826325135565388771267771816519563650006152699110428416604264796793459255662622353738336725945954038141107727746729623574400654440858990404812444837278470068138656851222081502167068366408569794988880896142981362274724565239758258162438176510627359243233061092361637411711039845140581371834322691475738744123917496444879566826322852849293125382633934288374956508927194056470575587201332114136445856502830940087609450505017112280929442548516235118733635967273480192915778646400149645201924926522102334912835060541238849177716226511615992884286195846509668462162159607439189503015848850070359306977736473345254226733817492230885179663733059195024392657092247125569391303666452448336687468816797003623023853745225779596694897129350377211823740654247779546404538123985982223093648242928528113647992985276329930580588488600762755944608821089901295171089436055161735159868039708845173078906849703848799921779961096541123392701777139497444213980435281581911940351894691156777994870477685179563366058306755940554869909756013302834664097730513555435252686761671257820859165906158942581473476756486917652556784004002004440731699369257939709165359019528498071042910749741703702700178549071548030444170986061917893071779051735384296651988360645409337506753348602393866586579900346993884755789661553137389455452093291911252291353140625600136863268617218984653667513624984103736724245340560046864679422514989173060299470771140647056758663896397844653616001163613288075865138608932927741113817176664689443734700224487288993194053559783013861043622076793709521837503134368105250702645828675548369872238354656699073033134552603691756025422845750375740248682329895975613132669490702350764438881396594218113470844603225268749203667995872228111292879459365608798004383037997146517363137103935716143494103742427362842221377942963801123284004428205691374474292607244297238601339127419525353304763124873541437737241713637028397017240558136012273284159319469151552578653733946736025801375795198410651324198013349977989868123304050907587466926626127479902194352298180340808183339501941055236337714259973092401125623121558051608524175181411016343500226188024173724046442087959431435154654140377340315160497409682438106586910310091746722219676237443630377211007036907985366546895362382121984829068613438055815430799060986526132206494632010387072572134879135560255726469385234830242494246237306260294902745341634892272874273611902739443839729911828841365196085736462019981072816545536110228122749376963260021510134905419432909935314105456485064088017174425999995574416183789303774662822612724328689555168098805968491268554229562516827257559564936975597721413327713421579764190341759541624570360118929450827611448191036433776456771300517326689311869446402873690439826752156487902253165541709258525323095833845114399223622706162059537685813634590028246232250734713705844707152127380661723983796006290900654353196502385792358704453856900352361734781505973389438920520612640054198828215651992046010582547882428202662077275338181701810016145225597594983835383742145056992916388338870676163699599813660700425211291806690443093909336250654913568115274611191789808359957005894305247183105406095584794846440591668858530228248362844970174727393453101259874396646708206889204288806859834348308196171252302887102699981099047103903821681285561552107793579902331800108600603906932401390558493584103574559984458050584589772785410032332284492690891694618500969361457680373045624351663819685025386642557099505641211002390126985153006550460926767785732762015641443931867059380340718383294938965747410462198380444661434128351830742867857581091712940927206185667039618216564559493969286682749028892996303668048674251436195584228257596361484021694645534958573451135621185446077790805904697630528038926629985709855159823388462786116587277450652239151645885720545460393771015996026932145285652098930192016923866927627562622885308150158091506661083205454312140549160409757061057924391939185184260309557666965924425178838761574944279417407768385920262652241720718986323178942142032492129157951000170942312617857517090256390416437885968418290583960368067420074780345156530607668480867981976338724807757151136045389366790628501166794047710369543783743488232549738132855764939711516294794673420088168137924304780666206162134994831712657867219581689292668290222393953205936427348589372406630537727392948043497770415615644534138489641347048076475177936762256147609943497108830121687813984294801696395155043552683537466384332987450287834384947067921757444080830877693883787932344403251762492762873277927911939038595975510157129237751423759923881804475746796188788170338723542372841333033071516175947351023702623855344706291189425305320170487157372094846845102542204113774911734902258301495416844000547676482524090489802636090729955607107062966997950067269495286484270289513746117051793257231669461908694305472032105088558778686127163341777115994745892756168343653497027972041690196122913818015596162120820527454432820763099200350987531250981699104471507606648864274172216466227596195596811516363335088565214074120863630826754740993384760993809835757449388703570523677537263421618091410447305654618474611172203622974681984769855085599020821489926056272343611399642683796523171129882006136467073453491432219767031534958315714749962499718966372294774534137033735725887246902128141780887531424393524279846714654752033926786188343506883703008498281088319263048250287531973968754856971468504855356539596288906987430063335049267948182012097197027522488932269102863389463782202264346860480269601626892966580635006638115784585875451001602572769616561449007703942421682037512792228318888362554817175980051352753302467886804318971542974975935796139716040920144676615917338124938147393841613032228088741594003703548953169314969011893275286715377552813956788180445040694873850393831418474932906927399747104334185283889992557236695749993705686740851396179167818218108848039815870455072204784887141362226335592316545194179297918992593168577531400239755869404285315988083298299890604941122249800193578277013741862873216338355991969731081874795586484719507365741264831972159054565557397677896262659477721234981925138357767124299860390149989109952583055781095396495568831433834353250808906288997972066529810354418343028703940795813687972196230935702188559550802615880883653192711575502693898039802046815778877958617741645799721080024664804622579361736470246876369123721822639512362784920283067653054845929563253650862179948760184680752317778746177043159725346511844626723149186230613873094888592665672549625002636681863275985931515117346503354496054738870282726557321122712100767190504479933760482293628655557038474705308526759615405026646545363845741627458079015164673350665722727321882544891569013756704965675046447353919209628689858241710340293314701812207593796839594945264458350262586421185641887212270079246001606376422390436947037020205246081145354692811476867387615947326050184307645313792729440584707997890561811724647031409297267299712467886260136961570807406247444118798912725530940848333600364195041269309538569883123388459443675812024066537306677070099645445429113089559010265121943357860556819286392890368580416868984146297421672496452325963155568843786525328747131178092998542571536958801914798679042477552864484740643372463647792364398723746837584531619271142367345094241980428105182121108230168687476509937148561047563430870189008173415059876952953299735513502199368648184799334974533066619344457803623359270688276923783682871325224213019560617949491673680327438322142621409556158301594282251386800724483721248149158459656629704303968232531062079814104750283317876630825161823195757551899784421309005485404270796311404140945970906578196209045506316589769235368915994416778808983021401294672434174839274706177853967938196871048715301971196576059799744864412509905159385681975576110195263681632784426338184416868935615069087277508636180681708849719124745837028713112564328554524764283642041885167746367874512982315378517711209184177025737564333112808972306101633226762568726398404007964196869532005958956517109334841105794544668375208480092335621836030861618758675820630673211770528528617326791152827605841200113921839378390796695159699877851275064169669606991104704313165409119004943233262161256906171289229086767521517143774974380559293816826832308494228938115915655138388835074336978969032954735857103074075293920035100385234336206787341707720756270337527049713929390406387218720067913069567101318851442556123129069842442077194568177281060285831327487769321386595086913300222803964061556501039197132032548243101526577843226741801662463128720730763888742040425813464672655537708782206798108580995268577664583581213902375029805444053412152094321588531556628061597502480540987266637333656846615109074191278051262828987918169287540320259059185395924762849363429948415224271130278230645359855375116298434891616456622330672065411920239628844981065792971022521293401720457270611590888120198236001945176573204719202574971300793052983922785115287787371032014288205698636617250849942133377078021024731980542994907382775746917087020640031179320687272864876007975565009942416748794366235226344935820278160806594713407037392334417267641223302158834516819645111416511411992663140348554078428941247065427523661167936263506508616057980721000442068773469820228526505828013516782430501197593230874012481617794188445220832493327618886404476988578238064557863522292310510927409969768099035121782722907752338819001475530284156412505145219865602507075331515825610244234802154340943729580550468302252381304213619439040044224663251379718659618468680515233892250190164996431349842139137444259702155568088384625933312754520083676183582631832097173072632974641891964028916961301972771744120388652007226205965397065151057658677547675402441645667219340794571285092579665667164606723221915252241830568352242326564452791556664751277440184468984870782653901078142491269463948883796424404695152252644458018164844683570184749701540802727232693220218945292360501034747859478900328008186858744684083138082517707249283310366517696020162303496059551853751069183922999094329174204354173195411427250265851921977450403298831915943820142415462796791722734590036850816276843570986001096512914980524306622103938289124292145372160647394900925901409258358999124233380121218915233291838201786753282046017356009594059376728351919286514880718540714041399364212890153392243747208850999911020980294515227112692175325113953224548091255800621736175353935670675607247443241209948577453557927255589383663892649241469325111751930527914354408337548080625175954849607306293942548786585675573010116316076419341005161995413538075950834217657778524005355361440706693841885726254905212894381839956076875466664741796325322968566361709017854815837859946958456275481874095787760390946004094854398923831529789420381467183646513976010691887997033829034911128322894467351111576819539198875687793311377097443425752591840122927826191368652715782866504670247115099603060064979975170511537055546844541200882799566557487496105852612982257140665344323910233557498148843901239371452719455839277708389573220100410016475946682343893839357875534413205461009146980012350927604941766308303336159008575041386088999114789389443509577130571191738269917155906145802664401985354624249283225920307085243620841570407040191127747725318245755662940204150253785390452025913356361234126305006633267470693092921042351693881640043770000360232900190517695921693397323389195823840477269268973367258481131089887118879145227844460178156669417316851409208105130281388125029219852639603785804512663195138079975132733540898423598240880805943762556575640121953484540531800412877665748256306763596219067165526040737798712275641634956426544986159548354660053181081757595361341427114165085378416817633165470580987587310483634632567293107331143409816679043484988576412862234411069856792787846275093695286116259183758620902237308877161672958867605275548177789367183934755620829505089935967196858028007393335146888661759337381187672314865623345199271589400799659259181496947315573585551459178996984935679046584817444654427537048805212460546435910994029480016888683862445229143264019682137132193951785086914113943327111845871196993730534222375409612607566742835104799042497600805543936420290103327170986585433440548229268024039336703170071054728373729361652751853950106136852320202864934865611288680134618696795046576052015389840384628930283507936289866644612569518886683124937586359191883427896742083915436516662073530334444724052802621980878062001762265996134840065622521007758602366741975617890137032307280868151455665367210091409422201969279952527735618484871590383965952953332485345281022931188396287268727879694894522222389473117103693757486227244002232771289258150959177053443002741702213239301061249390764153359704260047192998141726870345880623068012999583337563889647754344095244925935082816804509030134027777325417870604275890256700308667956809819939348017286142918251159381810032254421198186872331723416063694508000959720080406220798186785787517434127142774633359615462124812964985589894337591384512644763665807932952188432097609555636672809974684756827968352479350219823593514539273538702108170058468750880183921160693752404117359375063754611632205224121110938436066731038636022323035238158487621152740779863152512675120582133243887769535831364611624433194970144752266795197593111510608692589659255253297051966185837855050092386059672202160580619484495864666993865314704140470404625295290638862407768825516303850389677584287037215372093202342797825234385175435675916781833577710946690436513766541588525384439389458134246787196583870163662646899234229023212010153262854465033903792612985299667417138351321015881835943999123972560182274374551857287446911622063935622511219774486395671138155687129107727026759280989316253424241767949991440913941780714274145926345805993318569314884584832212988148964100322332895726976344969817676983647878465110371657488911877010603166119340696165576097277928400353928973153268835674584501054737641568627203442371498345125771824212708116095089915005490390752906088211186596426831307265804807978470512715461937819348174376448528050222012024350669340372809979544052775694167735303581322689076009069226268548912291726615628655291310106048248535026106556800309160675311969257150043861035942629561647296903769092025843361177119305529584335164580135990500365764746460805343786928949477075215778463881803454055594737038930334597468003899094225172512214833934884759280978234890512072905596019787186142404126203621702267930178265192743407119052441209395067931526710345928302975323331430439375394101667537015313329640293961111755381662990665707984084201116710605782457797945637662321267794914938135194485456167027861451130680719255951858661914724523372722325240528244084263320085834481730953251258361577321576094421378721013949604853106068147619131515865129576536215378446602382291089328270260092966824987144809790384449936699622147901025598674589543194528940934446343808017201603870385344998367792997896304204080804227784354275155120159621346090115056594340611299066088290442858224037816813130118406730440739645640843206083650797795636484039860308185086405857994017870778730520372849575446991388048385928155770843079786052385445039929577778550569608655375674237124884929929879314812069741054314255291549970457242740273589499917610968531995918335387797303634392670524332169005621052944288077723374853137258451780329818644985652284151915374861720368552278007307553023948676280961074062345028362522360372890362250906087503669828730255896591105950273333379501178094380695540183113755607329056922471711059619960350342910175912834239044732140075692086493041382308696562866997401335380513668349997352328355614319285502278010943055333451479200190230559616779000807828511460437508184413076424857358069032514540513134478049817708081441515790601303662602146923645760386442321425538157374313010178889154475903484953869382411418975315855738991585734641514408637816058172664766352476674498156492669088391501564439446002590749236480115345040689731528415739527898080723710429977921767807818644493044884620361976699422944787508960562763433796600835201728586507511522250323058834381632206099988104800599023282562594891864108099389223365833631343044912054947629175014934470389507686740245005536773552179937659169969814675881450500628206565113525748060454873624544699877637910362228465541277739503799401614720740202268430054366153903218858923691198495060581603342681483296128391434310961704353549781757188147602905328819759963545467926164928018297802638901206198064988638377790947383973342620371988845772653470651987962395168619973413252963434315896783974647366644428878142126168034786099516310256546723827824934260587332907418779969803486778139046494310339687708912633071646612087920485312042723692875573712539644689246684560801647049631823700804015243607065625318738743138998673042629788938480018301287317979132129599503117331719751987306502107859794559585732337360268382037938505380034824963430735806946327742464232949320028149031637431895958371798915123106206107621877318628322267458874979506689520136417994613665225394019354020244363104295332824880922135841713248204357297570016185031337020578369602974801043459824629352273593258426176841866849761218066290546974726323664842287715341632723034448031948564069359597556908910850790785555626553642547656532129973363043404488451028217549293676495095280917422418692940132112110483022530758786558356155317920532088333393770550899193166458887160791902008757331100867443527168211346944592530406953500506820030238653599926088570361308420757338295798842379177922811126948577767037170008753570096440877719119541608785371408031350361816294397510923118767781885596079014291794163693429095305006507061938745520385394785879625211373768668750718915916252671349142568107336318230220719152385602395867258409930446123636255801989971683646587219375569666562094675686889811567909195774394408009444263419632715632968007339320584233843742682656384026159521637373651996637621453098032600862954350374023062789684711389725275020753578054043941459128862051696561344641428011686689574278359262534285985781271538347225241557831073707463111139532691678770218632321774055219441296300067261141306691588184774460100781133148975101906320285908880863024598937896974620491512704532375990862388178316894582279204053103220193695848608433161619335024925007582802379078779395065281219257798332768768858006303892785258985664955131224648763810800046890886641618686991555931379149644446471971599013682468353181545778624368626090641836743136808511314588855352911985017574882906431062037666074486800304081892132352273157795611019712516785901586575244757633252668851791304080211794753328384309345989486076115773944241796153172666901011816562615823945651331103072091639895722752913047694539315244620039423672180514187830292872758600982243606496923491981218514026878375802517950360690902096307603219023489113735192654900200390549386951771749144794913055056104830172847635599422661171795717455211706862021720246208725898255154751891720903377464663154653983512111013536522293381503545640061761691690999728988865882812317817192368685186199634188024108412983682846670226133816649465901799907530033332908484386011750137068715971298344031933240717910930767866980026312562896582450732859775206515112387313882897233987526015216638295746640385246182315916726006556896506296495442329802380192487581699720302230738859087669763384395666848761118937462959261813588079309690573430660873782590670944291527294992306149089889867538480387999063863587447550892401322077071461648178908515123751240504420619474455940275340216328227308885479093666488688177840430050520526178241203806667138092178364157718050193796451231870833684076295179895863189881016053272234569313618023779675465380936916563260764585273485570436342257541705162392097978870859918975937973739825826191256784012256735663320961102858102306459329122559226862700483868208174856521522850977568423567401874258055042715693700603641649437337035990716315597089644669779493551796709509676059890245461801828544132335516040333539284742964023782215808699766970315577343733413422863965178972675184350061635743751735357057562903577249585826012788875005344696769910450481662250878589795088775270683394470505295701956791192313493142157076190386937414481455073438209295391032234362756563738018603302134175061745720568031351889577700453729390941285910012485418430592934705763912893199512380940202881896408685998560946834150005488325944855362085739819723998551202366335942644240291221061191112188601412327934711776291790292877223661692115070666513152753864833433394228656267255612227548472749966156963032861312678185089235998977826248347244666327841371216431540497903821049633066690603539163684362242632014621718228826090038817020235762606185680853645557610674601549663681405162138377477386058873667424777100177263543862829750134347005967743083835980024819515584066847519251585951867029957548512395195129901935012999134798706149292559465826122107458347826461070945664013328998459059512842766892869348148479051846837821465830353643637069429497249546448365240387384136673920458288939321092574485573804401831724626591705621965231292881757543699138209313578899733387058654540467341194398643802808664613120748189746982415794244744237358704094894531484202866853442579497253619053123230234779046956119963659953264761092613505013449170801655397439603957834078735154134499463017770962287763624343029071762920762589891625705652055969892998346673381283970166273487927794012343686059247248631945315346956487917835172203432957525039194878494627518182218423197467864241421380502811117979666247521538935634640909376696023879830835323123992948360591109023774436057729567111674260404894577388838870402870105677528709995903533707855825678955672752409244510907472069843105277907712206773758162994798997834476150032444471068574750052703813098990159982307886491240553752292269476387838453891649245761563961518242113914071921086980403279098218826367706403347019638151972812066774356998545119782757796356537543157994638530296501268968841010610500948169793665854955353215196502461696315080382373392328913710696941390722421360418247516399329101111817997423213322074887012893653099632424377556802211363052590224004905700874041250479342639479998615601016254263476098089688640848558987200861116791192136104658821879760921923618754865611190939378305786523988321507437520305109666322854581988005535104887492855356914421917354231452537547478853767850789982289196517202799527696576697658880575365619111704396651431902011513200380783794312939355730144750570258153159510004740397498567613379252903860199396543127354056966729043545415319044029856900077176835652227312961732340610206604926589764306562324866837612023165616499484072348973397987180588270038088546043688817411531142053446748818640546778403100285447206233336441902816215775282795622222360350920002774922499031887196629442410930300921856520648649833349524373618913158439230396984984323056108078765051563666593307458743564664564586506644908197933466368832109801902605822324328026144856053781721705065833888622927667588977340653078143257359839095942445175668039154417023177844166401861756484569624620847248380981793537966720409448974556393647966217115450814625314820538141657422714072395455690990741486511868240255158878791329461240469896657220950000150973568557849884615893552357559946784187464355893134911676719418251064560043709022272036133733965911976892945957990159608362436003365528420275648811136278785516803531816175623956214599316449145507214552320557665994068435362400876288543766295715170065001564981270176279753023052688900127888245769276546749360751797535811340012113064223293111333980214484366192382157055761278826729999473280830952684159934501007952180568962840085087377171238610208876345631127722839681011570249017972919629281474693486275233605359716509445561247617980820793975889670288663817757050817508410089907843211645705556631544452220691824360206872270167291363556304443399415582554870218583341623575721555258021650941057188314396711072388039142133708319701936944930575746700490104659273649222700268378327149722304882209947543285720561499445788127814325587925955661557686389437302793370533974676577735043097923993527632511875687888785352545140658322185743548475213090842643362158248078187863704653407074723754260618678918156771829920969374904699587208526362567399951192879623345440859312103435046031329001445584505228568526965626463841108263558663704861774952259434194128496273341166086651169360067114511422701258947508962098938224988134028464395065684179889442010821454356575311032630583691034152841965535641591578227274905710318979624301056083402752597903416665799956987682129152618521197618404919616672625060314518774421329587878188691068987929442765087270666948555372407899635979870537527149846046383841166260222479585825494263979525254499605631126242854478278629183328416512819791366609843314769570124038189197148133672249916470616818943234082662476514006055667161754371662639334967454313684064525016468258952231968697427140657582185406141106329844556299061993193882657061310849990302859453641284417676792857299960020685947153151884677713584739832499525985969898819013530459479683090381248310464106599952593219736066573465940810046149424786993220200284149377721406392560602765222802432894652061942801541474295505598826840198220475705918180820842350427119918509150587871350571582687006169008339906287393512802864571824366425655096216260153779138966338927155396121774884141973949755755675049039305362004137636751806043344235743348619704379847599181912814911935661853247692878607599562153100777397680689865467141124492104193221674877472656067391972384985947335296989578706664300853390447645298944746349120097025846561373362622953170124374115223853744302262401469399517094789849139121784182406645735095790547230397289166666702663918827238457195579690153872037458531523695018723122282048077985833552663290599348716833639419560223001398074225915071192592849057330984894264241658468027296604312050756103940812431126601496944096676224788219246141782572306587200691934009071878400804465256048024615469823285554936300694586317890717648160433581237984994115925339288874083068647859527285983183092481565523662469291581448180221300505782589124373792660612472625220929561251070190259251550121438629851696172793345494944415185946085421655782081191784337248942947908123698799469578826218835257776349238640489150373463632358378231611375891867886512291450133024649906995394569026303709690076849104312302685690072076499695988465998699764883658623275697648839457399705831157121889337266254403526779845307665704951165738141622027560278483730911818862683904044574150023629437590011470785078534102807660757994657275553904912645592309545195167696565979693376765495581119860877736525362399356728083963100863446061420711543759096144160946856129615100403692460469325629564385167779176889401627829169543000093350000676677983460072065913041985506495630016367067685119286924500732735318190690525003366581713068707004737658550089767862724464333539467253190804579424243608038795725743467562229198453248920068155914435281102950378234983000744841326994451890894029632295441971038325247179908227372960952868141841294750270843742665359444333890660494160649969654985763586694684250663648931537261700603903721026835450243597662962049406632354507455642974190767206920144181998500346353306247256854142397252728028410650428644963503515128547235214395613229400366694724286254345713881135772370133194509140130537162747986763722798716346091794153714996334657463517040931183845498007067658660618258524362295847875498232184396762401781419379902481523610593116400329084831955222629532797850267427493998627754728613324082424824914646699995662724450875717537728117167995223239111948922689810231820692486097508762278034513708424061189040607185033397621159254008707408053420609167557383858418200885545036894602950353403279555743770641620716207589853492432315227968352707053961416850103696778777019209187654058467743672229915079709483053283263885715007129667228140585509519728048710296490065871027126268922459776131547623819089813598288855490182522632029666545741865911737037738655048374095002622937391205079721544828989024333020217272383388596920247536021289720442463819762086070142708934607922038495131650998161248095500398151027732644335083098993946021094170090711566488388086992487092817536267335753850555062659351519631990986224580709565289091381577699314313720238321839427418041302605252389783326529287149625444740737945807901997593638419057572283604337207076524970288382466240604367240295829238014903089900752993095160757199976266816102284014109730584883506867687715025056243683355749531552593068277508241983890958971816136807649821755529198278291686768541098091708217017366918973196071747247799605150774839711574586105249810572443156742439752441193681250170779606019097739547223396362039770831284197923310501974962551228312398182475876805595314071435513065996429704506829775782489936586857307935392461865868413468396679342160463791152780788796842033820443953931225881442619931382493112387868257664901166815880584124575013218700311479111019983115519230928451129394999904960518309886107976588298319789134578753872774092775236468952282302611791461719666357331733004598408416639142619952383319980088932995809803097616523284581581983043630710706288489406130334745024400082929709302918876496213043100738919247659524654664137646298174633259664766148714871488956877111910961526451273767142979012800601904265195469115625057585680954790330535878372029790685468946676095528557029234855033449714837837781874909781599801422423078579396266905334894060394581823441022063298770789763688791364797970740408843222078873663758897716436205836552266294442609310716477668926716156729236970285505295662914881297293920436284877474124464027699644164421655890031204120109876468376457261822873687201724834479198306986080835634961351790149322438162693172977723351599023836279346031231956394399038724681558500302197114292058839923476200861166326407747337157110231445495156702836947177206078881639957781707561982919658321182273773149991219297498604921581204720754009197384370936294026882231182615437460256005454161985872006628823442310141595184238636240929464476214416246437725360595890218785425814916813563302398695507938044564574408334783506283050346668246862656150772610685498629005558199590522142637662037417604371860624549859249804860014129532895140270462849404981874558588631649303483628821681382066544884944715993842059511296822311344727487922709009682866703220149930194529301629869078297545126760213138170480472768829580725656534841204275762316257200075855299615727714258052258693843345726472312491529563964690738710129344986175135251152299078792185652572577159344754556954239496606499559848683872441516756376871680285111831559518453970936151752348279022892852574332111030643223829191027039056373824097675086090837090983950157463870798581110044604509173440661602817687526825751674389729872632475288913182673586708597479358150186933942043767828160213615876411974528867942750527578466652159744213766444309606717730171374034208460046896976143491624698339277594080467212574769757163240911309286726292558529763249367656419229945097506858305974011410192089360578774950741535596029948422245234454509375102732830589665462551817399994252009145082936196484377230319138880149281762940822638896848175610121384328620886386511098140342247499883427284576549972641140492402270002675598740655673050937619620942353958966035861915537636922440223191470220735883546439788056211873638149253811034954395489694955203844960417463773455951161327021443699186433247947783063227579389895191372330322004064353253482611395551632039417015581379123102043977606349614607802214280382577774361552538937644759914555129748989117469043193487700425534343705443826653770158051143798998512583764787863186155974382965123244619826691788402391861697163688065069232410270752033932394832318012838791458567848628756693021998993577224312286790823132517681448662222465684944630367055828268294701776589918590473242406202010704798716756133606397423934827771423820973593472599466500807700295180332653095484636113818773658970013202137558913406044041088475701912818186878396489488649370475458673148644662107869063471891664947507257026845828435013140726540697340734529436261627500187068443611968499336801509412677145556812098960060994300477034605341940994113823272490636545228355104847002169257337004416544355703057674037120113365294758034279997432618230880677360842369838365660892839103692942001098305436810149110239659965011540381779105342143399142394832151748107042704089836737264683804651451449172798994057151660536031579055903885301344276672455299036583206211666228078736323481607485398180652621556007356343188442326748157291744212577847657836137257323788032140833708192478037320165738605151429453970780975499364075343813085278104600527837066642326750310481382804919380073689178063909404848493968146295446822592482732383873708778983794866197044957718554981148116923454775317981847190704063561581646372989787844568012456018018883628907596095911450046529193211453755919638092464211930201197726146756090094733679101827342594197925655819478275095961260535398725383766520316307487087718317364987967245954951977081710922323477731920094084232651798178141513194274165658615021554735839645639113392295178583600724179567922330505190438520593555651151221031857721483927155159029677121351773546622020777955748118730041382223558338657284784730376541779234761673661946451105520000718410966282993508336905152131193209145573564578422968300436184688250378599475848221031036759530292958810584733845154635978966242730493959250349522242832294864088429645911731387642818185267024359804245220808875314317345920878223043635716415338637217001530978075547183860602932985663129917198965315587732061444757864461606548812737014906483650850696448949643167315630234080164702537450914109860180918478226283581891602142172973719610076959599173030888388516016414639817927197610325017599257759761445486892276650222549952236480216687756365713489969486868877665094317573709447823500801650013982826150961139300015631378033434553337296325767221033837343372521767387701901492535513554231989684146364561856139291835059846261500588411342611413988275615674344593995012258385008146062825019948116336391890456833352405579456189450773686597215282590013127138203964825453884398289563709641131423776679795778844775027976318051662092359260083923899987343205625695922304282640371047829335938406400712895977797910912067862675186827991757776745450016078933719774804348845197206410534094408298579304214962638210071446200657100147229699696554289557320944718627170540297370983351203217631868119780803119022561789175447428671342790038616042694490763315547379750903400624809386155985181034865226466830746595209720564073646416789839323353472996059700370964865516390515643417916987764315211654024425123273490313127806204060042333163079323310587274956728794577738935320724835870564216871698929695936777052524080546463702239837906027178373831614184674867785341174730328447955319442985204234914184077664245634584731594619677260989168567545712539492484007201230431493130995344366508639534399366838358733978926662249168259266635948718549739510976957962167016637936023158920272678426728620168368322914757233021131253212920516061086030419844965734254794766302968859888618206509812519738980963873108833432794724146681492583759718007265355265698915201440371891658028372532167116444597962637524392524565352492066121045445818450181916768319359153141938804037458644851863946418731353516108088628190852523974664665173884409725203115780733591269145697981137603496699727279285324855721999424822669259740645410374853509398679096033960033988103381890369694632215702797035795737845861163115237054225981874591581005118787371711748419673051365186406463018053402645224987771987522059012326443953189010748349441203316648419014367973288802962802061267607339210587720842158078397902609924875074075672111513118559302580480556106983886014247834572989336270450803236646232189375724925105625076053536540588653027479421898167941749602605281958028838406223539255933814249489243563741666464697504383258479114765294773353628503450123308251245549089054167131433867078281386951769675938801310959983358242960999351705918905331952823592037884767463601181371708844485722070739933107413113093770539304331506927339596067453670090966227111247533901149928802589337667680847407243126002352036643060214591318015824825408252553998096856692438725359715147586941401405383415634801130951178860893153085779082083932308290092579374535082359706205147942701052179052066201950902971113045985014718119180379558065802438128224159666291070446873889061957999906855802294943264350422971314447921137540754892448803847531994793222286321350957730807291529541917696605472594205962931567101195898972701419419010055854061341453877792353438336184604017046398979727152583932354601405815059382287906518018310842283781187317054268070767130966800801070413083095930093287045754935982173289138828349050375270521583073612259365366365002814461752344228338377047616886556509318468158970168096467302328125450563577667585916823143234600402315472629937113966363853660757375753303852616310113964778105746468249346187213092053702200578367916903037575776120636919599007865265368647311721549124098021191245026639550481930564010047337139484940434249169611993148725767119050441381895316508560017623606702252934708730611168023620631427331951238079883710667409309544706210188324978235882609340645260852756503110122148442594301495092828344384330321698882935740123953033387422299201946358820196872888469233721606433890683911652772792034560332608708265791419282482620713792895295269708687231905782143043729058060252460518537756991888974956972588882757847176821135295645697422001869084889580524090174568501910041779655477338136587862184621900931445303709052975704721578160861567865004106215598709544063399461830051264992296202992877107708046932705012319776584457109038022104219414407673446822205180280496793481291445426900321595631618972722702232940641014636688628615958168241981062895994575509915564006642420593688989287146488099699790290030409029926069846039654205418907481962015249060706336952341577645003445524152073247666343754926149117199051428142341604180482857707676482721556002030976161675449445468165612069148822437644638428184148029242805279031457159032035362833316243971961645221599979916028557196387303195713454561400610284025325453628128981528570447573152405707510733708687807148930167222112841850999441243662197373807562057156952415551986839104256641737665283749038102401781291973472631461305159837433400294925616637270915965442326210521810438265353450506951110860174988187947346275072451000401745359466030379575689793150618965356209275325377259231697271827665085333876069602551534267365463209637120926130937435019913981033629158357282939837622393783792952294607362411283339714124165904928517775320357729629503173560356327544225856708857185434061145663646031108271960055166623882525114984827965908308715469129419615689035943585519724464862978077859760993168131792502854408136059891525935908195335416328377554417536866088903345195697602520808930667711540618105733780340690011713901497634105365365695379104582970880249298048961673037081941032311461180566623943843841555706732061319146868384251007016699248865157438091381395528830846837121233066667934183574103351114592264339293683533090264246793175604091930970700451331956960291393993719943632009513055946875624749415037351072443663269091470347419383983817975490460439813977425204635063677232447330774357846619176764219715726301904228466957546162266264691847369807780229701549353829514236645552668266627203827926081442509606272746481681838886307041008368935282027075836924468673693051149123407144275748988657851296864282694754270842227285805100521809112314175808639318941711797018354132833192511470457411023028425021580072429642797125556066864392519929594104981921315479742446213852551411520027864515378798444356853855139095842522304744108389746094976946868356857903170439659757400401084347458778246007964998234150713201223523117146316150684441784369861496231704815119995386936784330700115242818892177795530968605432912961942619641118556536644373768287030794035787770611413928477056384314264697547425297464912854614694089944628330600475193180609501184009708386497050172780993347436155638045760653091274362804923741236500817791365141955669333294344710455159235157252326298283664172125534481978429945429891547389317463291201190200270234844915637781093413919834817271240137866491102984611489817749450852691395247431152641475665428736221153216627076415426634683081647379411152976652914315387033814310740328856390785465219184639991613957934775463839253802809384753980775487698011209483069231866279049865693861293474822934014326956566296986629814316519582622621504399214501693045371858333665587975695693676659232087184742950103545171261867634146048495128150136007445905292564354926859590645859790336436563554125446759765227596725541853980763359837293512460401101936967521524814569502455156604298453586482160883856130341936573879597336979840229368541501644729368293166904440702522098123464320193075555123559379461886286367560788069412610103218913292720951003393628347283330272894003685743643581309450670926594340190661588313440350681432570793832816284554861471368290841426886615792971058524143975254005130441046157174210731285533562784499486893129001631607758392366524465637484228367455359048297306703625272663652220165414952091892430828434635651581060269328468434082485693426597090839534392762085585030700347627719598218227444418492088357419236484578373102487380892122274410258254629613326704455684594277914304324884074440261815602524636490332023589061413688566790979379903610294668175390757122227397075710119822099897134644326482160553586550231951657462236324133709626441518390841028785385342627755980439602348974420551451888787248359735284366849490117404933480139936487813150344933737971926947690252073106992590499616222513356695980678626276943736140283027908383009349924796233019576881559207006659019675074201622862188995477745370102279866380948529562887315096716779438172088445387827839774110454483192632742459101562796506942061811167807804540232406922098244812451143858933661315425577512816915028800245805329958848089496708698924000430910272815463459124584234614786948732707943029734396518327504508857869303844282239787473786656065279346437982184608060069530402704636375363500646398431611718989121680938882963514833592393519657942597163848684984050259623573407613662100764147859925953841489884946458759431252341156467396710751910469633209763681385902179614343535722180557134153853139108305183881025548775280747569567374278136329000682804082068912629545607868678021451350411100821730428142707619280274385702822933358648928360048631984617847612786623092947519605833865067197333843127783299424128378939121034712703637537143013851373140965752462817375502107456371956117718121934081929180626009735730928954216969580782265745929863693827850433062492412403371496037666952400581915465304179417749408068756828135466698969738465577249596329591095008586487740628367563326794210071324701182820078450596119863740286697034388138447382039174253976672193244340217225643390515387270664767431052029711649312675526606363258218302744106264349139994161749181419056134138877951014906932752461813051188227719801153451603966883550458807621134284663459665339567290173552067379795531021190295676326500987164665990423380433526974242536174315007076627199120611793591868042940609539489787696873137578095315745329072790652546282417863217186399604769747207873534144606738075403415829412129423416538661628833938519016338153594088967121829906536793580320306103647162235352739344260158094507360689113595687813007583469686796540730636133637743773108771868163143537673067376133297739782507609101191106165088266438073899590635547515869396904132806522520516558366973321086966062940063892547302335464451666309537770391750074683415154115994256356646152435717580936237864285744621785100867730076581304654813413373035759960846375362532627814489742157067291281560813206707414714989475492800741447842445360221753717043906804759442306904105772089823943213660024350378842153170431393411565755650890904184529977610855182767482738215716243904937146088784400187590067667491046489699984528723806711873017553987020136528247776685660697214351584748710572916100868508135209128616580251119306117181673615391412760494466677936094054273380501156485244262356125751778336374488979418177624111666911372045676588131587187284819547354651591941393046997480343678353532193370186043230460167136164192180374134246249786862042100574732343785837123456164171174468642591414049367032451622997919369509635687617799635861098858231444064842990290374600010248212007580241522962371479824957387294884556764341651054637246140534403761368313811584813613451966767754170977382206722034057832044913649786717570157617358824875740967519259107106111391233887380740536801080079873136474922075108978615268539235022906473480447958079651311846098504394750227781059464899521262878069041628792341246941101274832312891118854231126613313770152600392376033353710617632808840848768994433585120455763905483720654515775876932170494038642019804277141201614310445344064843761446978695387671603066388463217077730069466530066819902650512338984648334182754744165372864484032939558501228482365555588484988285529204831536576795048362112511926643726735226532682963409223437278711510865326556900809520654098108665758247282593481116684226378676957541894823846443222788310629068889735585238167968973807778517418854950278747331897593728248233377395449153462358630257663032606583833228616291184009504990889072326048175294906182118846537451712357271625212160326103640873949702329123488703411044263628198445204743238298813061529497076306013706958118294849167300217744823112216349841233761812623950550961163657258279218892746159508671985107351957232804582808179651924594698643061079156406970472854679050797985499001675723796578716909180880596686172837260576125393859463899207705557472220382839617217261831152771652055937681849215371992794144328515894517036926424446746125574236183008154457185323786588989874392917618905069999197647521541951755350395629329799441577443854515691165518246962309103994815614592253600057912083848158972044774387103192441990795802082998691841330693910278665860274293773187118062688750914653217045988890606474941070607803030930975921320254685416434237258031482826634336354723157278650812887331461250237724573349182084414876403343859458290909715568891670973410901660542044670899700288991953332167008642519382651112010844382989650829112106912160862605753571469279900235735763627881160096372096570981466181842626888115793924852417218714263710975210635560703725423339854500233597515346161816031834369745763688036723501745461709323534025004477116090290515258506410680264252173252392876453406922584423977157373763172453334966520958948735016271418063987236293392269584454655221909069789135242656786711786616125288210208499651351158187510733498547104558680762375216266349766608583272558375933395276308207579490186227718028441007493175319881223869947506997409470150438013646228315436372878069880411055084752266499685981061683967637372145953478076766027173585079159539236278064189769854311936197362538243011862901082371649427238897886574126570852513874406289941168533132948528338625471543456566865891661292951009845344898088114028079494138294961496902119247339855081547777247167057919196641415006686488481357961309487540762541662451895043943043150193788741334082321267487981240474853103795440888401420804420049226518321176155068015543583103440745351517691324101430654589262698792364203559739704928990290153599931012323492911864810867612276799957784469302508993207801678150256889519811613635392875189242127143029413017676237906246795693091373635226878627850535383056160643864910948707380667991693065463816480713700774909491627985932595437137801169914632952820120422087190769490715164017472150956813821001133826981025330814608963101799031049264466136800814534554963371796633400348950310058458718610502697637238956501847235056131289873247319824732831893453167788829772591824938424220927798055589008431903931346721480338894555698044856187210990468243189834820489201443771959782365495414858411744684012192491345325428763397857397919745783655832704794785954787335112012446891477172458452499677197392841943032652449231640546235673285493696266969576490889932061952743755519751868647503298584482731740174253253622684860409076546528531647066998355898552061599839431374864046420663459361377117077072222335409400783890553720086286295368995145583341615245877235168702629149809371021778874389265106785307183748306742121952187904090596397677478290076097340367619033027303940966987009220542982211999452238267434061078582273967916261518475468461376314492726457256528924426255591809065084557138309560360149970159869335636968969711422629585566884137672676800770604556343801418977772146920133045148411018510048683106044613261040029819431136199603802005549687925832411386813130790989429756109991796521574007874629464314710350252602440383870574032556005406773785846747555708936073520096821134587965887903000741626294324793391452952235078338385087125540153573614338296318580757296141853501293918643214261367613252948203053961414030062540423673661148220597168246228620915723675346153474540679714732791994590319378265881430349632636882638451558685252557999489354686034377805170917697957420106776974885349300521820442639584652135547756867344809522421153330909532672697646086955775210289734306302316120344522231724289766130661487229627347162909752317387232645259337850415504517751633426613756129838236773880321383720457680882081439230520381299576803190372472183367495467923690697999755534333758561780924401221837283221263966460903897173473410068132358056573697595216132262301377579262312492416059102576469658907769662899125396463894509269360876158013147098298218168484950426645766919096303495608626317972722477393785505697981643466790244440015738997453353858054743814413309047569910674340134338563400741833228103541461177425559388571843847892671727206063418169260347539281073042287697879825465865577563972844672913290205012903400753794899200663749130220758684359235350134861780510381698236934179085053625689765085898833777039471152978637674124827122151140801583099531072831957759190258883010559806810599519818592894485962566663057496264770692316447383529350135552054817898829969872500098563474279266845713059287789395805991380894966526188057164008132155099391485966539798120357165009257699806330483815869993984506382483807399801696364721092519517282613425250142269901075501079180704579577343890285070395452260274211747471296296710357006527547384539422215587416410548523220745815990446434391103473147255427417000769307729666722716660440963575437056815989028916153165752436864448337808240149933318641236954327302952198859885711633490210461577025960800702232910779417297265632576715513903744124915309280936563318605551545461598042594222008904861765354612520169331811068677363854334177381750904953785325111904146074890673856706652245705274126516933466918214140016160307327172648888747929885018575160699037932612079331010216988981249536341996689221905818086687029154922124510115800717542508141080564674703854396042387226326969160765987245550656993188216313295281573155851021195224116214848086017925496770895199449523585663907278083034187037477288648826497813045874207654095639353465589165954800501193821380706611410779184605755867420796811483757583885708647596469100448810934001792350855026155514445933234248282941816063392835836810162078872069478254255314906509198636501702755030529593067690799499397622076392176549105906941299086055837605444131678858184529617928583529960931518050085894615165131649530651790439624100200675200462265432845214094390604187765761217547851796067888152337211740217156114828494096352351494173940060475486060751794689420478576511434338445348584576166428609666125530519635807751103344130743393434075171136239950847331971894366782425872064420237984952382083254472154687493516785835968236614656242633482376107746350410166533001155579568942100396142498486432229075900653290300599852870976138998770645437588781790423711149730702035274823592640607854176471065487062136454504274863361665703442506124672766174374312219960562519113941694042386894376558712751413656248747064060260852249635178070113340798443168513667996787997947531650963424758983799079165644925907633314377321889855011052326292119112620043889329904764587409883225196065143556525580451300941825724721866915519717552285113174446854177839373050542027595684453611048834267001674961049100226697723786897085950490893834654114548793817975268070134135350350605147918930393697439670307339580654162445070923285911313228141861505404163253910848305418443925119293029688139984188422271039371751809890959167999259877272420641690749044033104003904104651814255834549870015137140350933697281844743859564910657146427815311762977148220770004009133452181406647454572474717330357042809485139999481499220888379190135253787918851550480088741246754583230100740620663906009681286847654722595610197649231633284520156719036127193132335181382381336826028634136447737404568531135320027049330567594428335803458219012215488556281256728928721249161181554534444818380720041859169288675819476500457536791646608375826116422550031099999480974875625010394405563430451669870135211951902513773758220152072867213245131458134885271595397093384129144224198634561229598673901381509125595572968169162682387377626475009700610367312080617938545788297226198168363910214043677338452668639296938933890811967064138105530763332067998541094936080437116723346560534000740460207054830507134484990537599249591671103867679487117153539207649706513424959811957482539474583783071563079729533721532360515652836658302357301843090820698790867624446010830618675093335811613479581939406405806867152193178305312888121031354002672701935714354501564372947965935092919388611952980833825996133633746872224790634103759984552309106604863805185753771643596417807211129638563287665752613455147426312848268474059882964255267147703458260868686611478723445794280891800003251427735952142808326927662462739310294197591195327705897451058400014094009382096711249846844843574855905820371401961813256318773511867263482631003910674208485193458993421449945933722894036020446371034565571882891963376424203198897673236748564796292143783757459089987528790993731434902634493996742671340115440310494774487888783474307303944490397002403614019843398686683484640034865179350840245745141407341478941615525734344350198988343295193502911688138188079901361619256394152469185096479250985689323364753302791079051032852532910663146678775722528881932627100525008464467541411426289866116340345768584916922146596133273863113147170348708590433602725132795269136911251656006164035130311103262738804829203715443018377011346073308515556205618364534978993519062604034865562942241051315741373009716240415577734331425151314294242187924639806750769993525344720722241796273772519079048610861691372438892711261084735732059547387542667889525922355555532119085668031064870391227094677584902071232511558191614029960982962601033454996826590549935072966909921397170375970586501697687699819382239612277170761527393328149293371689586398574809172690747519155751653962439143115853528447822782943643962107100153598198697261518179890297660466684269730601152591343655139811937802834522665728757199640530469288844399398660182939987066777462203829467109228761811363217354115709923384731071118084215023330168583800817594862061157900910684668894056634310163872809194396127569676560393640159645893208472580667395047181439083467814210364150200714775912453712496700664788554840994561622271040014579559898301341512589349636051993426049971896742865704265249241426302156247052931814496397471371534147963476271362432397116145462421222069564661590546111413878164572731859265738538560267847808843188597380622581227202128459681102517519600290606773370902865885718750946010490804016067393554835315385865732506371219651571136501611663626269632339185480492710042677015024542682225918622888100330530402864079725653843045126481750859682871493541868714902625536904066143068944398083258357750991399232143733180518627600537485076071422239676582416183811244395073206855611724041173747540416722197038604485948524498280360723729710798911297289992892589455480297674529264827941954088221493379233870042386177715760126546084258531606123237003129823077414219421117219829163942909477593443571276751677743353291082397266221142411095742505940290808748283711125191955986403312390251791544504041481070087150408459278526198501744650580236534486028226227074317929008493889981114697183600812989301863132068926751154833589423888325559273560914404184076130178785389192394475451154947416671443056313851542210745843841636218403367808457966323921948128187911683866357101014609055317459372193243920208506762226463774298418139755216542740408508453435828602039333306290866377821892818222532892339748503632830454608593976978927413606535875958504783462251735618120858849610575063644072699633238788223108614554037618423543667397136962850599825091601067676279688743921409721824732300626296164982490532415484172780700746061705780167012075936729048094013211935520407059993081016283885292608217224049739993069816377591636506780939854142802299945339342063289121809740481704310218013657824660672535709785708869473766281463658638212935469609074055530136721163534579352189688266471221671012316845261994884517132262991351230146312187080596328187286516534571399338402342742531747888142590718096440185843090657895376084333835403826041857567612613434412016419421328248581353513136143977227923007476888307889514883743352290473523763864746489096122820830304467492978116565790503171683054992132661760996101900092844632318464843463722083546741543608981421960012771493164686614319674019691547869968586934869366547749103483361367979438903853021861364736406544484860575498326341900367009301379415137405341300028153972762117684914612948894535066794150381830021290358953761334005104143511001317660488480915765864332644439249918643020322865524285535875897061684291508208399929208868618666273861929732834296533219104507073700746722827714785673820835117772819010399776568020417504666746590404160702407343183344172804484643707471645523909029184566525821028748027705076344245643096669901191925684111519542477294929816256871555247087066093941399443889872789192290265238675878597062705176940565565844856123398255107858201652729814739174941446204699916447014782023809297502137324366719338028994833204579530564166128888148738487085837778949409772409911381735192372021261040783420071917404170341171404787888677911827540715306792342868077208656560890287239776598164741374870267995412983913370620821470160501717779953494452068848328092975187197614453616060786980873209158531362177067644141175593058258629502526965741873535255964948465632466748246741414594230609494269929472829665506086312423924613111012555053176635636062291765710953883733751439659358018717999555309914020297202047448637494478171088411554074999763522977435833587514060790515379918003335721528411829385777573308734222990546008243821524755880428465883501010034518887451051783841017147615898394909140353831423716768609696568197036936115769102819991052102015670818741248955683806848265235583695683535353670389726616284916055151284656623395411004481716726082587209048121398601636754586485335357827251501276242878778170471094943950683142702080484362898810775924086656759967173623027502823291264512403730275890134711368844208903793995286527201356249287654568115079287680612546763139593415731356138953407010417835680900217955070067822031465557402315315087984837825571273744176779555957152884724019371861585246247150496546895244968576687490962526885456172809764863020107899459559446254032378587764026814830748798108563144959412051911910956406359793679285012056775991510891911907818359390528500438102476945671926801645986903867951067940857945898559351825429568900500259176352796937604268777165093746090274318169876406043658608603470491876903567686346009200774570027339332030526625181161068065708049427076537824985704907325350308695542847234968359490109505996654599914996545477924166546543149767702859946295488638809311919594157578135872344727024658099880754873457326028649584835325146967020472583649017260983666376265098561023296844792091577266690071880190351417630604293974304188892138270373712786644964701160676211582916666586572708004444969156279184948960350059903587344413232891766801436900886251100783870423155043946014942304734636321841207680204571276991632155096892885439110303137210959015819072516062488212300970002375507058318260530095820928782378706899145544333912736854179815279630130905775574613672222192011409393391681387944920805487586949759191242400902590449307305844656962971810179087299582220826496011692959813377936617064267383304261650872378219315208819015383198863076710122167429555580928940944852876665632531198540011050820312389298478757300771423673822653292701990399415275253642162199531938117695187954075853993215069807004492550519256894347596736500186862345705824777894279261960578434627685729833068023013430552658292604328313914284380455317815110974684407925482781915530099127489473712305575514747942442328727677024848040034111465803956063363952606524060728266622098504885627451873970838134324408833552467472026280493211507220730672633304528564929026609372181761639315904583103182342319243974818952979823178792151435487221328059661348821784713050559711569561742863183915858118645929522807658015818360640463122926842224847490431502594208752806132385073476548709560435734617415006621378824036423581921192335417688002382269828393327370037290210961733358430355883027062053217841516061418491095869033689827949211094326088500663756840202142713237832403494630212034788022256422516246044922564307212783412006953665335673967750018996801983211927870066463111925789287401271514983341376218630699674213367712666148754681515040092305458937359700509133602750729458887579149360585705611659232927398936950261922368519796352379547677931341424571040304587457196100465612640987537444007966313400403786616015305364125560446037692351460283115930567917092506661844369372456668390490514332810344450031679585729984104351519258462541970343918999778593677777498891553187947981556839343287134960394264128970113761853095824152865327342459910854919000932202098828768952186353675299141433801513580101766065196809659995489078988285362469202203674921645909761310982413824387633128508440095312947662600403466025191705021257639028731217655130216208417261803570341623401857284978827118488755453187841305424230924933016300738155327762819142795168828913318625398277915462120016804270045089419764708462097887419553536068223877705927825283032885940898578138834787742769276031997941754510773285219227206477749320036031637080342770449334537094322334156432373719931029349457248747447630497590594559525710824068029772894715033920380640898797250367340451544689438290032596709740363697774332813075414740963679521257291179070958116689825072518043516237811949423133261112608170691563232698002727689167032973038806785687106872429839707961197083552987632129724378127484879682721933678360228211972859637918529006749372084538155123283865349981402109060916680332143811976054675106252749876637862302274955107912495764897564003807323050976422429469682260368431606163016445594355037073288671213221905138888280604780001543665631658517827350485178883510585148003984325188810775969523492432159892914522416511124504444903135342820309329311446666979903360607962578371296403535678931524165604727957251041752301096079682983752777362113223509608435269515093316861541807027080894592717101144038048865793882182357881151926489229985254321670929761212908842928398377870587955636157220543261435176834702663633764790051855785350479617478158788522720561040906399440974381534798148802213428059131104549867504325100717001373131503912676930991818398435664310324161987767798788402377530244390786567115628600700686350856104259470540037705638933368515185048575302165694049883318639153437937402843129166540391758368187896376411804696097151663603534699285563677938902048066420225183177957074713727202638130661425030210662382265965005949331967458211053741368372731875546638372950471558397328693667568208656651101181342134620536203209308431702640795879943975498040411838388615092056017181239678633468401794232084921018034507989672589827982292227382266136877451885056897690607815576523601623770124797752271043011586915007024619210872854495509566337635181364138875235280976487574618328906796347223472483345473135483429013959617462564355129569477295760894232380037758343974783436090195628891449955619021448434540263575741113420598040652363064479377057460317253745338899022961952515137216501788563334637951948208526853309814921066921362723697133971188686858520847944180517695469937960376855152640526855605756430332442455519553096406466148217888935038014512429963947616379608719909824571893163192880490790875652415533571856219643427663567290957801831408794798946136371975453807100441009490344591673560030685138836829681024226918287221920747964316730089845068778510455887104337390046525632596482882942561590863544279849015565159482348825154030753832702051303922603800110848490421446651032240123302418037033796722034032489995716733953885721798280104134579134124873530498481142917913856891977098644753560203862111793292666918561188579253203619820109118613556054237976361608277044346014874172834833816018188446811466115576457974126346257420318129094091565753610475649873015718042491557265755999976650382870934717281121174922719731626843749096101931491054175379929778322887927399808223319962187395589108858135103388258506020262923876374385828236689636446145468205922118523063968141481010671186253240159588288679027924114349182930464378917685255091735299782163608243174454074936903186360447919812507554847273277201360984348829797610950558513519192230104315461667448829601641546728119114507797245079283070522472570043049473192340540198644027542092250243655754136116082850893669891895185964923094264353393828097867860121196974843419904860324737409871883820716030198020345311643986554582744855759795071744838456401130177177094615220568687994164440413994554323258536010039404772032917828134364272815464312632989224188984183435143839304467154327904025846323793503978921252412375098651231863372959339063096322765506468411276176574689752726287830559924262939115430099308846942388773226448527179536877374376584817612665252702254989413765481122500889473494414281511489536522037438525028210631455238172745265747017180282294936711680875175305308250291178665526792494867033046115357159517739735055658389333465495403009932206953093872452592832154352576871364733071508815521011240350811563200435232190231610222215809422392080361717224243319882209562001302172347945693670514830598907574825728030254420174626851002290234876915572378887041121691557292790243797103362670655225852623939326903135991961934245000387514099840872537135464305365477560015775014006108576477784674370705600678316422223230290296293910477407676645941077645804773951630354020757981865971432485069742926524032097675056189148805246175696505693416763582445316951743122477410532453472203805456214051583809688084264398649082508230041455494410735298179067231029368297837462035512636111005018114002671575698041979954059958440534054781023802985221118721295427142605989214325503838453237339619569403370444772232173402825551141474806241951469502723112483676691275690920318092494199887365410095725156195266630890868049526946697488001639542716339316016513651623467270110594214590946845294083455147273507864174193361694619555329134814134803359529464113058592628868248307639349449413727306634230918141838224299483456294694848162989587699078331345246174603252570071818759147751581127327518039058729590897151701254958491896868953253191737182078869020826439238061825788147360001931968166312753410672023473853077787116595900888506111305469922929894314849696888673491928238269126798782427474876071847929575325988041552604433603964505814638268796198513638276345003246724220824517945229235408999951985400005091675535282394826204231524023586861777547110246919175401533783051012223449241443885097847280551501289445796841964244332878606551067685916632249416484506494272942700908396175035364053841263690593347654149005840772169643237308879695517586793633555046196192967823069488797345296796268115244722800696524805999532800525462454572324031723733492481860362837198922255589005132666801861251732866856734210020985673687756947312254727617568879218493592681574119673644675717702225686368457420478882417843879604528806838174121018682672318745219555888615792993985563848696984304969499622196637404554006846760884953840856661297600363576305278666075342583272222538861217528588705829837109173415337538727959243285181089544768812937803672724834462106459001426124409804855749590075751244767565856111223251934839649987716704763098147283427348471091965022031931370057781651495114809280161264692788306455476364860323251501774172047750727596619439391793466432253973618058272945612934561102083912930755487353084872084428627811354736130921210939291656461961112285442319566139314842012397938226916295974027934451886774085849213062401533375219005407047008946206794841182633880624451790373211814419685150336167946732523150522964042006471026070544024101278313483508174901903169728449712810084853029671549040641209441954349078573719087790732823758506586164313212233107704400888889712360703433269273252743498840688413369760055998987839910365053972167325484525856890380456565944154285242513249020139009792999147656894678988561060592993340962785172120603358426176518683680596567060553045957736620730755589931121821845215828014760030466379525482459916946747674692244561310999885519838444781699253849069083081946371115815777775947620955163675625321193678074967994751639302858379284851744425668035187862749856835225917040846777478918178365365366416437754800164468591355759492739172466090598416686147407344869036703297754708571886002850106564036386191217912139471751088165943801970183014396860932752878195368043429800543901348175777886298091426856653681771608623070399221401062779546450457535451995439958611948153638219072046822786137266310870618877283178469460379693025999438053244892530082994923857428900046397989452634848718383382528181914347952395298776474822959145488920470352594889138065259418247406197433174458566626299104695784589583937001111617470687747307251364932406038642080060961636476025255889040341968879751329602854741713415199751547187879121453225157827695514610901979182260638842789723070437624276275623491658065308426850103081755257089254222993898536707293053714873146382874199972984102050910692220983312351877683266995075770271449908132607981307343495716595327769412213209444332893105560428000464965058759413442308168134819320346827253357870726350223949904245805893125842558160308488347179547827509513925065868217676629698137596934805313557487497206930312643557598208901669259622336185549991669797971204149809949726218069128208628006814873992593021952572395392865546072272602276618461460588281044254834767001509058939836103098294520641319879111499684623552422630095254935742407056862921302775340504332546517840659731622117661490872792455435879371278428878719006832572813414708331080998341609629119236788347681623475681047573232073517656652628836643650863907523127837186431820597640306612726255552072979046030906102993090096426367280871182134752461785798803493473682084240542534597561482701310104031812775322008980804901670133124189436949579979424723679521977237034845999698927176828922652322884649350012509239757965711611124053875540023902628907281091638055662199031935898975803294669309801061130583055438208681930266739530299824204135989396786374853161999289497933398795451464516541035568884142148241635193445472332842930256996538325682585384126392903293819428307760943744134102370895540870611202322861108671283861181835873523224786455085482263995877279467259436629317664589024604765242266306674212967569142335041890353388091303028547616429400792939356528727969585320886413673026618989261831216223043321751580458130555148987528398028948689021335072111311473915491641922391311047869433888301283025978454902338363726403381773879606935081783805812273705387276095352094736462675793185337757068680543810980829694995374340451804619778782890596662372363493423260331260922538146957300805859872352719574621322461832810814221062289438339099794325961026117161003858998632250758033444378646177964449450269469085638683391859896749128790324954467098291351275054462683986314340223224742916505368072206333538619026597960736407044219308866199605685422905024000987788625536656244637491501619364264445701259606322379774451198984512018661433518715162173651905060513084857477950564040439882078375026631969745236561075569976431645821764689363218637575320685259450739513963988864317226761562650309776990617769869158514199257910911242673493406622225570831761879864291176149298751278918902954252552060552996517553719598204419273348256455480966642753271012613519813345241466172988959009272983405440661182826643184121198859052841334900378220084024511951219138499894868241385385196826807239838864709787967005634283511460074018623151551289107463942983245807704150149664031253369249701489594108424794063649733722955688249672415898277027558167722541695807583783134185476669603420070538393014190132595766351932490419755278367084991314819536267916727542103282811104241169852989043201184089675741143568844834174795691335997148950161395165199689862878626058606467066215131307897884422800620050665902174567778171307814567284041481639177267338425523688865738192143047759208906622702011875363582239962204056058367438579573017245439414089417249450444029754579812358281673442692770211571347494946350012985877927487347740268879021478747641973574787365899284895803039134086625629794231558144544434481083414994681348314569160619979192121556710498390236417535913702909436391721021305365405304723635526813887162329866786405592478350729922150723466014336471876883210891547833355591580870475545419521924324058282852807738737859767785679910797064293814581915043143778107741122122140022957233207429862537426842888505338679145297934360987301180305487652523828189990775157394344055502852003332298424365780577389701467888271049660690783807413952434307450858880313888813237877094041827279198796999837975494239392614535340495394787178568577716624017011822999208740118052738912299718397495866111849436227724274252675843443823826074947105917235381743641805911419928161626143321796021665284796998914503776739734015664533445371045168841671296362039264685098142849619930741843299194111768311682578554214768733702587879879569891828799540284298960053448486418755325718634071496814558527931480178273450301329842286359027627444061665141776532209650723932123981210833804849548277100168802246418517565656626055227074545312695522516471688583591183344446905426614663908306842439884740177113796822763244370154858517381857695455881620160881076176708897117685071300161288670833110665348960453216232788984113941651434382950463186266015780458432171377962546028251065978143819962812818201156766923275544752651390629187820805665318114573651353173312104036840677131394888838424466118007052159260407232129204719263771225340724667978852828731271386952964715363205615746137971405494987515171299324833214391045125727471681337592433102187327545553500307585785530442113983778648745204291299099468321238958174206609282070538343830340222469625952841850760764529755305728876150720307380612293422039769891499737550691916855957655813253952814749422747801156578486389894601548802639673469161901982840126934944355354631213185542343863270256093983928843666654509601593181487436455828427977879029009320152933868312343959898761486545393357460820634987376403642331421240818525107614181776127328833373688516718666848790175014021562564451701670759990880636802346643228208538070777831672255242257795485012555588805124512003491040323044681510800722472172888415446553570656303067998906704947750363786761474596334629280737938540199706428693923562884749002135453896376799007479701776992322791138560297116054232495754368374101710726291256502249262111729844099985535232777064747104616755975129217375516735569656765906134901126900902568122284918922478902606334403104402217998308126840406651004824032513428104029529725476237516672091010335550231955855575704162583639758659489729384758407225325207711583942987784444381619308793948098980554993767336635063358952698481281963785092679451613311988264880826416127671266751159222798615463359998629336157116321556035143132111631143084300883925015335188310241463164758360183707942993756690985136423795944499753908457298855479194636441092331312903656817940749646268458028541764359345184647104886115447494507728309743534667562395449966459048438216477237278747465697885615274314729774251986461852662261038547435180759089230073519719990952752621046728434657282018992095163871332744208115707427281042140249570720005331793315534499835155861348868015168155745462418408538064809281757408970840966433857685681244678484292280270704979450511625421986917308256211318902807134891229520244429027985662828810738802491256977490558859180490349963449428930700596902118011606393711073345683237619482082619303947381124464100498296005853818969890627272262066927126894720798504548372146160604199426083125964507979658879350868128670593860923996673384619794431966388744525686957763379311085126585924543059480564445822508105552553897257148112275504457064020230254141218578581935212372321835113872747815075657439522393918877508983879423528711128248246715823937781945304486795955054582851077174163499583365687392570772911886541625263321959684494420099041091021177086995845088579279909531382527068669919559721674288962600130361928757954506237192335395584240051201449049972074896031334723203465528850988106283167325949711290267332094236347080336153279863210691730285583422888024269773056542470884511595963858651759920969914113886584467891522829178833020626785070126128696290083509317684504003774011813366861481191073874260370548223738134314887836177434584308372179699215930844748494842593763011309711043434597084937952420678182034411657950496435974705610006159387161899818542262196620821898529548671227954116243779952496042218538721376983169106215284259391423524161511159484966073584533754414027406215270958210409009654469658943686226175711064522611408715354060948539786659380424604504951855375159047290792879811431116319014151217624218780740448949347837496525574210988422246105154395266015209496723519253793048679381737203338545279720994528656339520187666333863670035208318837202718230144694403479530345477430577525264256449908569274371027887703533292889194443198242015579228786731797707046249857356468277464070938156158831346343330838376504210735192960505892753123363453315005097767693984414893084673314569091577268735271063987372870489451283163926046226065684526741881007970392897964995142853003841482619177176975991898199980036026231915741696092178460103433849578731372192683080141678160944646268677917255905291055021070729096031330587631512953694639798659022734719002713468706699652013447926784690942793096425592345500236986684116556503851235263728917040304271542234940612483179987214593705137318319739910914198754779864542333429710759697100837011984867341638489956211802664537547688878732167763323933537073586091476611972069161828066403045781365050698832759063913681365902036256565792664800458223497480479585558096155627108695387352899767296650170896817783341099132802903118128021656876197349861400483264921335676029334524859424279218400425242651391715809180511763335934772323496572996423419823616734931398591210681719662827601555917826269443099761186357047698440288057247472245738365086973666662964067587099645577648678653197785048793323613126918567920478341503377481686032191632766427927197998156224646274361915736086633121477892761478423302599876121986845263421345553439105459911899035562228687799728689939781837113680671323412949190559846086787561914810866427978489172154155191618564558434444234598332776498402857411117343736092659937359734358689800005361283575470954283498976246675180073219237423297264587738432219841237040648587748861728082036094948468236996680348624637359382824751622955967509325806021040003337307245012261404400493503800296930223699925527162306838719785721479627447588566770846233058342917143763485727770201209947746478649203302406470449181298871449642051666457619075267836961476435860107026733218367771242669830194455679597403105140539940808876674484360940609115672579247714163207538117968337076866033746427416666813434209829875137211361261508339120268635343948008117416227589186774250497976086039757472571355035007827642181048971455584473380809543253997687313958531860166978082526182165374073991283522515683620485585891876463262774484851177594779382608292883401843953390071217483383464381573719847868105719345492739444798255573910681935140770031253108665848710524671650849155030483775919932185666509303860714324548204034410006599686520132316024874189648235028190923120131758468958955392674422709068027025751844340294372832177636401695393711880866064684383927265537299246799910321940069839934893554168204089000588148509747224338677050266927407105065148289127744797737179804729491089113006707860094227423380868948662176258648335285275461824528571611086870004000202292524122885549800682975631708373900884322534447707743508828926781288426165810679781333921807899241755034645085694822957800295945792131816421148744640946958229029416133837338879923230855647952951564011373869151539008663271120838630374561131485756390015980617979784753022028883764888095380228199438583475215269740972696145033226145292721915815748908147602166935717238729377232160492025594761002869291103669011587991372359546415911892792826470332690476904366318657556374477218483370578009365156594077668549625294786013257198156004390833754740690123024746260999144332999885333986729795187369348589712479258767362352643262755113638168534515356883370050500821783605154124331386233515400290275244841783945069361101479339349842614701213585873611088118931146971610163928596123185704850477670470177844659060810315588923731307853618054458024627550884196414336134317355950744440047008436415470778114369589712658135128904746687558478161962388047242089720569957728009304828149239863333761948481466581530485176340849956949724782272891928137056376318701216795003560172324074290813449451540064554514379856431979083894462463612708497709986600913741347681584488726455467769727567407749396803859813366568457382639293800959585474800002958529125887592759373140347505672342589593405963417803282644157042964550616391397550054655447281701093349373566178541445313360428003591590728179206727975429224438805161405032181438348338611149981304953820153445296721534802882337108930884329366140026362636479192960528467211762658253993938394360083121306448595676750091020892029873552657356235304801778528450700411533246200658113784345886060858222879906844662245870697270486764779779038970511819385674203880109132612523394762635200620304332170021008380720542921107615843518075743019350877818198963415148944587253112092163684003569298382502086376587939469339314647656501698788941391989887462497350285258900253070651500533706763612232350127496633226835009398881763830177606413798846007501640030512038150569605608700746323545948322437459958666784770518576921811628359898400584789474379665427471070369023476790813284355199752636815932582563421602647216673416042861049126551277574148630748835364556286469870996662479758524266562801425459406991347293924782604029520572117362946871429213950472722265958802589770361782120460406617706387048907099982184522489629834361872055014258458051241379228818398280808118344359208643166488576606648700620016162798777097454472708314860720512985188252339986037296953728450072696197008831238244401512937090293934395697394145353779019677113608031418570686503418118531884244958462702278043358353941544040316168971163514739550868306408502433928029921696888178179463488863690751687153927844223633071730142683926905231271072032671175758225625284343354130611797392815383181840855513417310248791990016015258264913773729738140812890961790553436800604877098342301649246532686498016180855132368187078183737203699335043292584989911471684634348250538099431719714728840573657684823072842483268907546341975122765612105118729494896225325713284518185164511204116349893697510374779134282969799613395056845675514421873989394186031638098287690607277670346861627891555478738092484592296904645937538145913640927166613649328740783338328361217029822449894597153670542734912942103938811469861047181313880011491067436091076314337962160621264183570458363289198255317243708025312200924487172280896265193407921059622006918472170364896082915238493321030830767392494688670897892332692706061342100260462465175244765234966107540254328456339281363461480979146880325926007077455194990316869883571683005136441069644609402776663772188730316745944083833309935603986497813534770961301121005105936665103768769323606712439030921623709326915789796106714316698474562308538991081730636860868296086901096659755514732066754911862103027797288011780993234718255255526561340048951099509862561897972975074371395991908009389348020633442152233044473674700330172948670228162003878978148193481027909830531653720714232138356362821752090344952239680271194968095384787467929078397855975825153079466920920266216288222764126188604143903815121663703239227695841501082065098912588808053677315512896603653149672334060201722886870826281288671599611128137331186750604797140205300467239107164607266972393522022824973972821209713732223670741271871867295723835929130674200458199643022298875394520843376213705715947271835164104585991962534490402397396316522184687259924373096537956783042491728712758693526900989290005839461483582210791309739946889827468718155472265701900437529360462070855901727396003188006834297681125761479109102545503110044163836220806081967839285346579590928252461396443332034084517049778066159923920065065300295795036327084217485902898269654207932585777344920211064104111247025635307916942152475317604190335257306317538981060827854795630929521087015930777571679225810925200950358821400576822728399495996381911852796332923383349165063996897504294460113008937914292089258884127499440076915596629600878837368168724388839161037386904893242431917608882386356756531142322047889308963396620635269827435771431698491013916159164506747586705728069545917290265883518262792241739735983643310795161374379365907791566607189046859451695143482233579447053960720827685573736000731356414087774666105032922753478144056269828567361946549224915371520956126289490781849722769465981584401432425899796612043123442809098575548237393185628910419959261726400410978667970976017237014761401479489878706138813767350110164317358609617183879136336770642427412456257329804094692130594968676071691396194195118630315061560128927089420054831509245063683407362078435824029084533478939367533661514452689260607749990582464092393561854942666097906849642029766289279895171938318836493282524879168248605638173820365147954741630170033253324256850308915104772344479053084373906074590629676257140374908831703135890954501843806090326478428152866110273434259421485298254935290718250550664059735097391431233458639425633785785411417143792354594099860057495178290144818509368836348518973018290220818243283810333134617999319275512902465834130970167642339461558516062162194501420083073574111065903050497920065945521742418295422043422279515345249925334630672010687711591438552846843061162185629054321200604763927093873811619602745467901258199633085186691667901357685017643194510074268447895899123183122266302983082940386150736996617756020183396675535946982116910174935319037092239787153354903915432632967501851239671847724359248588419208510400842386266998513187847939396476697310951062209047388053288342574311072260327980248964432942501114973882514280548356214955398248087575352907659182393901850852256512999155548065620808013170493125332224060796438635963644728070697031278855365048272746204678367189669529873135271395474157544548219565383400132887786385272414988969779740936243422647083964103792033981974728067928244505160352294173631208865009516651651944089937870344733558594281383786979750213334342319883176393121179462985224115079518801007809999368441914470888135933129558810730191843979690515325870220154357733857168969592274194213148907405541421485364849380774997371534137166705240713325414129172246565989281145463922839102511183546468274180152210422092408003895324216184279276553139146546046203740212531167619141737827600045975716486177600455496547772286031034147704376685366104199549037885386007406175835088357646437544000962170958113460544684964316428370549774351001953123200021393398389349871532523890729880955249829905877824823352219664209120785352171156203731286232903957971700605392109052932870987112108536970444470260067876054004523447503099227830732316026383113351958077832411692215618702994299143678765794509206080369291511339622684511454489035414576678993810496881633105657272608592800553398012466960350815488859423000054483494684358696370573912997112099730022749196536120262467120314445585217659642324358272614049946088244445290020379165424535683571499063885695245331308354333229252630750062447519560275378941255602751528549198684797889358878994050865895824521442339275597570580212929583365262079030801021085285913969741498732052338619586370547646854136591646683235327538809839128386412610986847505508740128092401160401411923396688004665144343084434705648169708239758704811478401269257693731858203524684196059745510766339626419036683192121358546157406125331919591329143850339151831680101064181781186242929040270048244708805866185032381576144988484255248885601920493613787424194520029855474069931891567657151134554157084126232075748129677687966754788139159584163088917279393771958443670555226453665446135502088254575782257332394356804299050808642130520795901934547262532070294826581516171194175279423681378691393415047368823324151864663827434690845340608819677755175403048735432992339988858917743580063964726274520244347912258468878503571625123742157006580391784223778041557334792452439470460904722841849900186293432195747701712842222664144949520676314611858054069585675709505635114142606391341249732784888195313702473014908590313191380403191906670411282287392802156037349723988153900155071655080551458844948749522591972207598605195946919204290793060483828950001740658459440425308672606675446978956458756560268060871326401199859668963804888634337866025697417757421556152013665937298066370195146083969947752561486205185296910589878839400081915495370082419126877582251255497104787265105335198361380121185025591438389027555957789649734943056941353350951178020055624561731664170942799970667097936027509756289774737324020605265935070151133552772292746152793620514764285295994103370309442206565068419254342173616820478125376353645807240749428101660488658605216029958095085648217794210969228048635612660717104406638091381705703609363954008723752964415452272986866137461109388933404090707525727989442908017125535820544768041878406618758302032698253184038197241015464021700029481826694652835581809703684075517488231375802710145968069033947135170328966106912527229029176083794395565699590160825533568921811049897388275539416511217705163042672715892830546350453129134134406074261864428543384738382457198114791733489656273588753589684563663881812854763721076021187812349665966759526575090749510007498244912355002686290776135210405645328696296955923837339994024825308951605643504201772925768097034075593270710113818325842094230807413285386523828550683525038543410926363918151243019618308704226307095468662793959015828548027039491962654096157015953200160087122623234017490750437366018570321016866059789802576415669416480678611569189203059278838431948266438393379181193076744625196751346468617667243951749448630084295327672665390417687279353258012203085412879254356649655929724169376274712595493253047656972035588823386745694280430132985214612332376406890663757993878150523269530276190455441095452971164043329548461762914645867901903069248166922300802554935197791079417158714831114602188447677495318891948369672951029844691275421373263005165480922236456302060537041046183845504713554792563292636080561078752592183374442367419534063324035321999553281682249762707897346002355012977323515138565135790658284483780050182630328160768712308824208438502474366762622123098290639886405479347142969331607933365252234257044023349175323037309286591281064980691211863386310752989083379344160189503819015985119727413431637262398438991868240574550133022163323003004340777430332024549182322607944697411259754184865878963787013309271027096407079906968872760005629297022688023289011265273946541500542455821824150103501117076210846317501395393309651071741702508700220157157389511283513455682908097930046457661971457057208729803214403937747856263218208588415102922465038476633330177097421500321717969457293207700986646610467262511925813721498206334282967658092531554191439389486982827513661371878197263330087944773670693264199786593630064457138264847211237402569406532252117706411241112990026130680973796209600196146720371156924646425984107368880243030024919909179643965026839682264385219383528630201925703909333406856419081718468255924595164819464643540921353791821474918349751610151534401241490863970436981877682364387096734286929640626543691303222983938644728217141208073125570557614382784997241770484296316215451108416610969616781923897200672164338198567810189039269327919535331208208067791569784349511716714550710552881148531439947306779817777892057369383870645529713792327952332866175698622647604978991502631882900276167498462599321271596055136334632704953389835795552697230311558473547614441162181402191871102857229379829755949412941682802094287492718059318202181459413938355869526011750142102153711574194991406601877322716515186738094204776917497362287168561947884029272150273359728992881137829327574562379344711499786160270276566358947524736670765303917853676017169121678038036193639544713597446457845459408998191349532062280109155105196657194583811585183512572431387360624826264270941100098836025770811119235402200341841101235613775214663226382112666443383267343347605728939235065477333286827295037531591599195604179295686179946599645829895888094135615398543555101723171096493231358382674431913220200600613274904034225396292817526683299316513938057134172445053135156590012308032752503963067496826605572420123853631351908044027932080858270868945784736673206937411783666638641437986346001978760674846313408450043894503538832136758511527515240297219494176762532662197215787632609262568966908624716125519489282615592376640251766202016284707861937536308024702190715811621345672350572289171786954495824988602387949261305422401094064465674849515596719748039795689045835644009267448673998616038262966525886854036542737735985496768960487361103362735847891681904797768749746273797401010018366629935221632481276692298154839859582757138515387373768482723798565724807945937158553337465287923907694122445815488805573359811514436781491678560433868397229716326716553864008741796291442677265764606419488957088881315250476435272220846011617609550893453886560703360579309222019068316448680006142584181079997520395757507577641138792630129874770241764183990258708568326025744549532294482193169078478586824440024179759558347708766649864420993131797645716537664757169497032383078747842748326058439984479289853287806618086254381971232829820294810492064343337191828196468363409706244311854919333641846630718733177165212807815158711225973725613815320151634918478169976515347006311500131816547968223263263898984941527946515889387381133750366047379459929999681068307851188566815937323652107322826485009296513663350545540250068443410106190862577787555140976067764104432748986330669537181430127669400003823209930851367442803321285293493820590441542768393025368610279311805565429466302946015749131398586689829520886821057873030881857035091457476155971163135946971432405194524516515952241562503194589830130095471244360208202590617692373705350944793214533690870046394616621503506007546286501930107254561789259421782333256839814248195431854378712093063225691841708761460461845476327472519160564485698436927336091902982235269814584849574017360508319412993995045327289149730684289752951133588008094682830630423712427704603555141268864316575238790809930512226476742069727576801079923028895513022375640909827573363001258288899757711898278161411212611610379755491670881744393770988925249120142344136407503858305937612109294564740856451190713222433013172161775732716121574965856239574405897788797730936060046343718931590834587681246633342855860759347042739259904789827509351171712473223881840569498432675201618689301033228107464302328885402177543576189832984706542832437534003838638075232704435005445176940335445854931688345516803841970109525048536803558048041823709020715645131933323257054945678282748317021814960959269240919057151517164302190044468816565887583469157011947778699412267126838181472091368489440832221854299011817291899598668534484977029371863972558320350659279652063344037384779127426558915484497103526051058838351866546964146099064749739495947195921617861034031677944925687630596282575836660196027066411369536995349637092444631617932348187122226696659039338871591457409502370230439721444715613620762532788316883888928294062135446509163590272687913973554862460575722664266554849541913959711056894860086373455319513126160373343322539624742717324626911227386515922217820463453642097406132670669056439877765709266887020294569596404898971305273771931901403755182318120263751406417382535349012453250849740437341250139838975423115454470806664224928202752020409820659953946617125373169975551754258383659790001360050980857126255853330715309810418649749304850987606758469744007158953475152563065878541757576543850374877337549065417831405171946825204851849814983240760260619655130470277546660481195946786247798414032188481990056331243158146198113693344759139032717723895465050635611821515396310515260372917973584216354894948546284792533386841836276477122446074266856059499594028705757822766200890985678233384900333428568034595553733006227661224252166616662745259044985170161516927144115985689756424973903744968933374064681328159458405375863040490435950135684562099540888200034227583960815689274651299838438184170533594496846664568158500661496425081567369194040602423416914181476657491568427797161513855616459404947313012564870270579718349765907297565454065016644834474127349734542536001990866733481360791133078130890911065682164101027102268641141734772433598941210632376774877452210340756541948901993751456436255031177458286493346004419338294258580831879385927954520121847795353386444892234352763995543208601092607898278416419547053334381191331570362069021588839834639917812447998304624662716375734010637777416239187648773081649870804815765987850878864658615818220433658320572841382644995050053582683206410091432681878255132210155077769941706601851852942800145981748095595627653045732116089750622229763480721471895199134291649550345143195366908174759545370594794251239704521455364593786242097969973307655667522776285361052315421896120716932538208297339861080800602624539034247278184086233177257243979440865988156238783650874575747774271674054716791204814999366535504506925678280027943211002074958732563393072136848093995475366467661868546061587199382753037580595992224020372293209363846627667017631150962083722748934314789546788389488607216410170556853995791344110792925056923724337182266462274556383059495594251015798950965033010132411357064980072939098970843817526197741739084254661948819896576625820062561892637838791874123008224983743758731533249948985359647412289356648561628378338086603459956266334399737525822357020138986061473471421283982543135952497672273333206533133844337604088691078979220160383160397521388074256613226057381719401859597151060094024648533206013538923152286651739778226587593583899277239693298656067037501002516370837873354492559398841485809443568986967671209162974720102708055696703264569002826366934399046108481206781714365741247494726163431223431699037264986189704209842961432501664785551881535727062216283586166555560832285249724600934806139222076129900434067667715777834341435595236188312613399230289150090451930729500580396959274949283149363346410394315790335579588221295114987383724704837471200399388829473981442609050520811798104562602522911376456016442917974846518581718151442453225370058385160685867704575795352593347890441154483739628605673716165164697555121188739314450046802108718620923424694607816632969633364982434461251882113100100110291073434945816845402047714751286666004777655752013257767269595689250338818905356321570741933127055419980874602238427188910910684271289219247516429421621489943022705022557966284486634712768638675157020568322080744395485939768698287024896497467295344799875152500243273712601695047541341663339416931756269904007647776318398056498165192572232972662282673772566111362635530225113949252785002763931111789053823534327880255391162408168848737982743983847096267944982468600896474250755396764054350444085851492173535353718700561551143349286469624810403277477383832149313125548206157121725390388028661135429310700945078316492834554501171814472867700904992338600879597968366085145549477210610468699946542635457505361724724987069069599748418843422279544354369255670794639988156171899524924152469022708748270048059833710160161256283329541826354241129230807486614039136315241059314294353742965956648285965975212125507543720342549688357814308291962997183540816091348934187872678367764452021104813299900499908665957766934999340672743399452859157263696520523061499562252484785264031132039569969422075443430296272059886074271452289851441881301100539753279599587789068546706188373292190799229237160296368644958842086479401906658123771046403491608729877119890656112115547593184361297996947302823660418473657810269662439320848664685544125157763991561522390656422846808687709330264692463031438485231272308969142320052774314770848452683824682335519664523351038915010539343913309412179859049434775617832004684181091603748329722737358204927829717108189048387564303252403841455785707822700263722025528772465148411359379496098070064507591483722097454133919816221712645837968582526848160849680559669630950379101234021176977403572166218538184144499704792492079214789722229427330231832419681133736589749558045340003324137624606178178376238776165156209614934002445870609897531558517059174740822954598533387175075434678202911198544869987177766406198999439146736996360236843439101629504128486626368527290001456980675719003655097421625824252974805374945456105567405122565821973820709912113763984573061147523278576286687153082136537692886537802024518278896165131872611946872456523291378318088762003109233270391452548633040132186910947533522472652629256604226456477241858680791258473866026054387454411628120718222908051362072059264658769967533726601859700301370212033168283812134285152788856608239436807459106239606149299319980870915840954494084757761275927291974614601008769365048973057686239478756720010006741802383678771101441504434771261975045144902445747707511592667008043180530044627322717823113727274322636694667658015444490437656647914532123846386494993590400634352496656154568480092386339045174309783485078385027593373732438262555024358790190371978519693553413530800238689043480630401537980408095788395740583396892985743321111932453852973315488542587788841576963462295195912865640751040324364692455841572980992413207159534121708136070275246335991025458077478063229341956494623407469293208223620579442965072270379384467429175837021645636005384176825471876706883240262578306396225400565738021610491207196489388396312495605109490635368047604454866612368674674862863651392442164049886037588808591444559597995650523765633797884531754923862522442491589584615177341538577734573223790950545085390417394461739644741376183075641498226774575356012908640443181561377512164579126498902585974418562626872682017582741592078753603368159023442641872724461935623225011177972540926292320219890841750612321553869892417292401662259482500061883799701021527885812123498594101344499530413592703650519001697468839099575364548699844076864624018190646197020648467631478505685683281521964816962282251728189883574063701202885432503747562395956360625370963793586098063480096818267268151948093042180829025801988386688532826250074064175619560722514833750932555063413051220355583061694981071403635511031176717978823951402327335701282806117500341062877966463620784122330105390225632558010977884756026221162978776169001035191303917250852050365290699927896715370741808359029466199241705281335523787129758505417753818894570472998562502083494265012436916256199790438544728484754017777322802924123493513984379898717827251851840572474244163145702407048512783721121026474207257354268844100383152508521117343143741712595206965619291133939625170186806854572926140100900622999525175670359754087193838409399695577396500417715115840037754774641904226401551833301198613434951685292226884422196938881605537031604800650306899976826605426033675418825439791032418372100076698878029086063963192202503388159684746158914885534002461750463228591397948063171064045046880707881375637199003041539802414135470621853603884444849625746407872241940753293422958046016867303845500937976935097359066706720380892306373709557524252953000432314288016276706459690485028623791865551810273217064077566458427694192915499650584510491553512208978904817779341872229354773541036023726344762365359049070714988276449307595436614476791175050661832485875252831083704093844919676580485257813708675542559478216833334582678148329673095976163618336080731673751701735532237522826129887873647198649902377309079481253694841182370982599357332060010375524962018003376903312465971024461345705718264559914227173200134470214133408513699888927721498340713347549971437396746724423637958073963041120994690241150805859724898444237289430705451248183882260697626602544092289552556408820180527715906483846771887986775930755556133953727451787015806473276382229577883464250974048772602067785769723216999384945133276632133339453968312767079081781324059890013497590542554283741364549375594524881269399249225745065128678805139493265363967284545269941626113179370707471344293796816962941503334453481589469102729633178279167782259743857833905887814131424697438752845899793049032235959395770273468963365120762431383139621450792744625705811095065237773667493204804634615341769047512239609387587570267790454284493244864708642079406658598738423897863051590005987535509077182610239930322096096001120773108049262769438274616147779648025431406381409401527946857802230789503517596459548521827662016216695677505756087331661794068927986812883514793606550096706347289130733167282118378772111835744587432258083917298211403153816906974894714069990512481414197594716617830995626469053017262941329497968498313703866986416404747801835378378121938178915787309650096346100211203699977986613821684442594796868724508628204789892107193031997444794230847147581965071774308753955574341659489269862485794139533495958747167756084936419827989515140215033760187487816231704331361266206256246598240319696339177449716736013567072337277703005131245590093073314521620145518807752705376977467422142075203274125477944689268502010194168310009544365980644451995360544541865877160521277017282885358435254134035403235888707390978589400728504919661083034881909938756609091619533699488114670117189894467443314667406950306534204975224288631634624892871340775772140769128036870960266045650587949986795627788620829386028812657774611793158536890971717251783263317688161893441088541149554371292750091680089767474357134690807115976816513485870346452212779739928232969610148609692077253917064629492917082554337706491021657612494578759182755202118725615597644392937049675285999870629471124134330157418137357421623297387652805962387178250946081826907443033210312613506831186886795384723111576310852439511383095073682198932426536121859064246835244956430256543855718493565131643318440942394683004920206239058750307944027742491130305480657622317837991626721523377214259630986870329250184395364153060468326933426262593137883646532739652452931516144470695651629359904463868338284303784917076021943263832934779707683702915271252449941291388310512165488965258768423325782675658317678256253422841260072790843001869441741339450791171756354744623917842101753981709872665938772602645006242595131019846412258497332876187840587749943532090211650695299557719870409022053125458473589749360301621050822052053068114250024691888206960767983502516619692274175990549201705954473817689256000234386501003384087136369276507511538844704229370986357800437514199365329429823218411337531302141773861035544185129098583846174840013664251177607722385564520621210450885888713293752548273874880435749961715469229534700911710301371053641651468698868565505555557890194218761839965689879759306560453888286406544169391141103460124957996007042207638400361080321923930642718701505357892297252507112764655193878407660864114570669237349861794804968342923049985625127196640087009578460187194290749899911088654293220779743761585235201243451040259363004538975477879701297851321579009880309295879859941563967017858312178837540625208188501288069272057822937595898368971300248777995426231000509500062784585384894539938656095047538408266969934717929544036323715648723759930367375509570526949464017773680420255623112415256000983783598068754873786228600165172873753577662415109345520914016594433466931514925742058576566813211903944366421235747611851643473319542859603627854010723029088346230450102045104323749391889267213631277467782867604780841603641566497378020387600369144426330534176492296032738969909099083398817231027300028835453721450499915586368601201575297805204107685075005557879537784497674502365002453049724072992934003522801768065602598639947634049186115580296102561665730003921379738604527219106676770513658482206557812093370686097785344412076688333872645033208572191910216204821465660077555929552515975659416085023272005576425025235863616567610384093277306047780386229585481157921304767077536376896934384961253194879585712650626751967330692300900838167313737837774514746546980445929695777051942195405069150978135662679889947823223308499651580947327988129730022297401346602457556971624580669489997751661561789259735323888275077225709821670172420147958485843483266346053987902593455138835096824742673425060209698850154268422781951255027712065345663252147298196457021368108256658106802240379462487960997062795638199733598184791028246984861297353525330723084648091648018394897382018591519518857753671375724230592930187141787395932039095908672696311475246528996188256423281182457873260382669101216704643794401686896511052038876088556595762381770384385576732014665666404670290773426283506688942999406343023667572942008036418133776391039283295954055745455838481799146242971773739296934062408181089845505413385795542667422314377562118894101976297194536179876041636379969236015717442182059906006472160115328759937094948838753732375007269885894673831195367016508870684741888859991782425609016711581858346864470815647194175718069941984122703891752187869817834732367410019737850690894775243755207509408889574024420036861642076411994734864549589745248340201356719805977548462110422418394513803920569447362553965776709533407947533481192750088984525861352921817427871622382333065825947507925483263979701275231604794861026230520769184439310422212496648099083418826814953868413698176990610122347076226681691262695050652158981971270822203573314422331303651899661659695713367763998070243739109898468551861452225730167660224565137401877249032524564086852588718468914966999269182201160491067959634826659006646749973223336738213034237138270822516792169319875837501675212013570122488848879303991790955831559034479000964501755535826371836829958045034631869198713501348402716587730516765534171757293651727792056921395358002976273897069940625070736808697555885271182232527963449144157510418122549054182935646768548755514169464709948166762271178343488457310577186310862313772095957686968242339361253245646372524538426465845981563066782790646657917596460603683622032306712736057556687003026178587390780298968159549893826480413909976934931946309085652422927782719410107949068268890613721917377773292851806935011410080212556874615116485093585174426479882840258729326206342209280719599998426793788104799400592937958561916102060010222930953147165019489753136248280846124052815245309557271496654321771175978508232665567646547872173964118193239419566999968810073230893389047279506016060445545278336860298507402196353060555058840824179242279967100964298567014823177572023287241703320274206643201798308019264416104872836947375210283729216109565091324523124635935482675439162779014118927282124429659622222027058929286826711433124450548516059565866399983437830805542819539445323735970970716972895233860744278386509549958113720868330727799024510264361954562210372711755617283794442441479553860076450503397912095909653084105691581954526577954642729797764144312777547546201363945502561618070802014502737770397729991715614083470358201588783460393302304672211113240719455308936767233494406264969497618123975652389231041755763204015081517048103444598415066896597557085285783058117703359523146483363151517994355919195071723691603569379359032460286143735886910179443689806245826388480589156441013768507349729501934941521518634020707840489414966454332017262217746004178289076650859702323670800164659849243937004564714145947126821461954771528862152967493244845580925175667534471136089825156308696990260623707370028646496166165492054248475441486038105337403431712628440591421503053845599627152883328032197778562092472520127248765035356577109367904002920942094660186899382175350362017149395251305821905365456142885381922534151483891694428371391902653612737619688375510945319626408142932793521612663384521405365170442818329241281634405185278491448013554182143825187368531922446141203667284464078023729738685654333529410068066376051743094879134059506052707913461110154760394021752560705314234934480801827386351321964934522801047839337996000392680056250622122850704149328442498776906561010994339523872053474575416049347425072049518100181610122743350666869646409114510163570519449275438697943190262873499992928438831675144785017265337370027703359857438936314944550602622755556156205110466277251476373977167771283654426002437535637463537153758770697337211571340582558589160029830061265521967020617836166609726663084649991643036366331276015576702545235508212058546102783487443101605270020580707553756245977730499136276656106944081757852701866179549945703895008470546827006653046678549691925365427090073943241889644655660671797268580678260288251182730442270960655925978230749879760161242336515567666269725675234669149079925516284859191859547137178951862770434643206068862418319410618632917535754600185555966428483151024214643252988963395205768517826257751847411696327249280622637594241756160470240108070300580585981682189278487707904184721209961574844316867988206009936323673892654002116676078674046091940144311240880087870628610308374271070572935225320705937454214324637193889450035554551354290282334742209458238816045188687090679610155658143958484599364035971905687019275837499351451463656040784266193620870151990635174590732097321308310167385619676824684405040625157690620102023704157584164811461691841681676576501891272477100182120994604418553158788518005877120533258025717598589454044442124987590150484761660574651605414174771328326007182831951283076330486657923204879954620374201489382820829387655627382802838840420236443813376206695060534175551228090008001334657238137939287341481446045065344033961610363492542294230814072941811634952284724566076871124161677454311206505412231471598686910544271977135247227945181319390857188810117887847185978264136037041049691284433814870765508525943326554480751847368274784017764737278699811346280570774014219831420628397098573009876769708959615315022642893865233696199912067839241423241856194015273083789579306793954862283068014003133309721725420804355302532228489921372055252954497534128807649190229253625858202483777586601895626521538404868145605872932841104005372289269229887376826959736643949152683143010366478917472184369430787578238730667423234034920357972633462635377735385451297235334948402629791514137261523801249496098633236178413673306854915632588506335041037436675236168442050538097261524719597448952445740297340373643276713126232774190840623469664883703840249622690927501783259877129894987753996523864503632321756632366221247403091608818331815904286662520895832683087719146969347205859974150967282191966464505312860435823478058414301247955199354300904119863649921395921489917123042292011774733497862849652914306920128226752331930998475693229986938536842005862585121717995881094147961439172565657240637715660928041553250746981459267498550300018895928232866943248870310974364220782741293745174976139949804589874084417233438437618655313490181632148360266461057420316127927274521083117564410218466763288733049640347862765568201059237468887221524767183623807854400631251811237538763332962944231870784029708777508794630507200516023958645363033227018411548788767988595898573696056384589590545344209976997778753437804942243997469747466241239064041851718423270840083875711715446092326398074679278883494733292619661971385908536308874239960859742669632558962833466429650213856986889082583172878296616822168559830695369099485264695340132136997041284968078406628644390746521740501549779183154838948089234304910497076654391465445178030448658588588918750586160041890591047228687850089873616724843849974032333067825526925292307182506067846504433195396559320553984188890831414383677251105310341905115430626806894194538641184073322374469852100986491609408626985500644764852842555843281628953452180240900177698171431062517510230479792130977272265815863347215364113178597858671120372836101323495731431274524993131406769415978029663814651519700891666353304717868116886078403736146639716652152159079430894187757102223990936056017659758347766557339136255824202927735297205404017773410220178148445709004106125250540929861491115620344717208873493727536006183615084672163892301417429664337990249549905045864763261949669085019859006134263064951406003439010006473075198890755828963385311378180765797123171918226637041994818734812487624290600806957173356577351227800283837361264941281059411469274367836401641002932126476792405231585205530101124814094666087498716207572613289211427960367314080339568841211313849534506458831597297546348549275231550886938170485654926309877213181979677323194661848918973486890709977740029660512884219757977173013013169338633622891174190686978517355002046203582191813625695063872689694377569402855685951485406762242310718326093101431941174463382368852816623393520612114531317538214947875215227773989413136071765470444607600465389770953095863126646626617738526004943854284477520918874819658957129281786755652437185100443838572869778626498711222500151333462181401069046940687067151476921911398771541020815536668515448118150993838404838293945911360440674966540440978928939265498242620700077923435086401831561598521098603099371016465908904622333318606289408390463948377688376067535892926274483014398583615190499541567746954439984257874038918369903162408603529690581227140779097677203418628794598881489770109420033196051095665570007739643084997825484768185752271728967827613373239021008028356796232262134451313101044198555302773481090381724217764588986268303080464953897231809218760815273263897759801854192269612953303955540181897888396833280478086788975853833252970882267468257173398068515848251916243161577136502967669743210893136966569458987110413221431226488334718477974108146184463310492184555402362219690988344412495728936897346571514926024288724587066585994844097429159583269256395696801583987197812162684739538756635863846887637184695440441150752408919745936433859453697094382087822037595297228762357374943516776402751846605557736287731733948401531571255153729965076799386981704273719411607175387337185297505692647693486761312908356344266587118323842753135072378929560134869944424868003654642160664930186539393432178117677089230966590456564465234515253529603491774419245270830102588180945751556089633332309609977024561154876046601593093193292537808176167408782015364082339154239949604040086480715562414288588431137323336577211086943981150580041627878472779385252859932811251741010745548011693017135223711963667504682836290568902147078759052693879754852185304312937804298410161065810342129147677837004575015570633923151723203137316366344591100887559152520190722583362092373822119271309953904930204314577826938423117842944733382744593217647454868703613078852192066982897324097460681381923461539089116549375188467938194022292510422169868002151222920564184660902386781603439812981795629119071583527944336141941854442201023488038628517470932903187672369640352175375015271256944830958703996420280123820010167185409938600669732529626791654881536317119795413982789417434849106306415442682832389766654198919969870127526254022294308528870786107186376582257764774948036379693600116086537603847953997846890085172315026987948395268425918947847816394809508622653380143275351405464677099822971870380742356387376844018708955999066171467945937538424670120888760747291277610543537459999388014615898210547490308023638958431597319151488189304017605870438785149708168923324877573400433711593689386336364851622523498841026530960123290228780937241026540782535699529072507266308572733028634750775853827847733086532271062978197601450475445449605187388913845147832669963613035766399111044884433154241005651731702120140858509636799517455306947648020935269506036901697309907796022158825858781326260610809034504098892503303971843217097926320561472289002725111683871350881259673981390696432095196666549459339960481375409786422997307340264497304990457949739007165150278035478962201865024063970446867774187941164741128484158938474442398071878207257290765708083835641782635810574813262912360821782861211040060605750215246670135962602941455956007440410500688017607895673642981260457517827817696522296396157104679852458414168448910543154266218686515773088093547921398851056759008312562899671516334865822155399175778234323774809001305050883862344087556706667766771305575689666253318045359041850084613246244985317685938480807657873519077168054916222588949599421517812023378904418052436442910855979672007450108369087944017463040295151297581721014412165057306327435195084198701749920476263552954847754309717670536358751026918897750263919870328363889179106081490660709571791579394021585174848192249192944643049139102844340403263417265268864631047586855852557950802863992943217460073048613114898483721823001500036388966554096253180364435470568051633937816867976684043046878951976374052151835969317968386872419383855017021082524268354458025219079472244389159506840183502795703107951520614312275536763590589963373240217434942966774777784542601252720832078632801306681586915667591469715239922160963709623619132933454562479582883610156055634504687737004891935026029359236405908910032637124264873695258166274331756224980268193483011481345799081946137999761627853028062113100504472426767455083226466562280421359973794693354231714518057308309200964368532212887314693768434875011407701686267573721285788851126434205724497384896115354687253270360642513793066342063188191230276283926176344419556148029724215202886921589680938471986573228655712873788501508819946272856695712168872797773740068854070021660847520306041132139972585063219771410522275509916204082028528783662366711209452665002557943415753957090123263185813072036430579318935041707881185196211858092377792952267864910207837326891021403549099459752974384988381410562407140385141556362416958327398891095137639425937007978202855952176810587369645820086568209388230619923966777840008297689813150661022076569068771463109602038964504008196578012373734130548596797904470607776733758080962797985843557042135745936103966560861395656304148261866703375241064793730432206171793367622687246210952757182787499627125533659545428562353609603919575696797617898119719007776037834175291285396662542686631301929462140495634949212660805925863639566258591321594663896297618290418012855053985427068926813838529714423157146394196279891377389482231791884575999092008578498294778129673715810323340170120067831495780583308414427656029559556691023108837413391531589068581529183517283205481724169058977980352539744902203781568672772502374984671748320244798583985762464845990297987347344381346342443482046746621392452022453519676248752457530078618340657392743131085583170711462389779580830212319151726648134564205856146596402220388915457352014931533534871321991453506978532589105201644448936913123216556941608507974068482168548669437278055362275841090874162386456988007889523674475152707756186450918671730570019323402823330889211820598506046669058526503660412190790808313375488886215193678650887604067501003089729381132020773685613034207161875056720206037073309478210003837255935068043739678023428256673633312946850556303563014021842985650496958172670051830814081825700492511266494915424286287216238697049934856488962409879052993937123452577718083320419367554069945738226820518752407671243942752715212253481667198009953891212362826215295359633630861702702570577332309402029663027119561418562133598815222088540457658409326025965948893746277935210727174852216547933404164632808547315955951447944750442511160278398218369135029447336064155688053209655906718473833485376800550476775489215955392917895481578160548876256560781901248790953267455409629796252831278686449809892139606127838400727205387180046396402828688696927797899373895238969035106240863689918016298240088677913459889035826677678752416683296832401710353114141073019042206049478329717838600695538657006793328925534892358891164850812075378106723698240943751310492604565521163686751660329984621074145528906821081082357672193155716965451983587446536610648574771810484387444499418221731111365673051339736704463348396755179041456057430554015453021377123691180958549754556887053797851221968693688567352416967145716143750233235313206258243331711586617531037356811253063203952183880467314249259713104674233252986390651852186114211569025343634096781525657194788083143924142110321419634819446204054230775269547181690466894449243849573813995374896226385868238259455013363100809519893112295528990430324745950122866914482837965305966981706553972344961703366109001096723135523924553020174656764816826818268536488732129712463404417462477508064392557253701668724882080399848351692282623434228208539880489540487163428378987091320509581645891834931312201410875422223902278060638820122352512207969933199004932151725152452406806005550563182253696035370354494500521261666080012684940670967031027136333927346574304145684630324438176888922895338040542944904961810947841899723291900758153956275279004233056552685924805345779447030479394698781539023257609597970683194070075160905993119155306802879397958789470290209288480646944749343428096810621722730489939192669359924131144200991650200806346354612296168895335502349656864883503248749417345624761720860431300583336913332327064703902953487761154125055868483645817405722456543569464816779490649830064314610679812410353079527903791937928570451537557119623101307413025808743835403246831521412698348945203397666968323302169253041899095297181907913446384376764482168907096108183155686723539709636478978559977495107475373700808880777545159262183565157524055050452207153190485544107930857979263118785169553590847677157046612884300063401573694227828955734789702331113965280892742622166127565008042801508364290439276537425038287163814338716252314690264511101628856694574870845007772122136875549226920956162125333760145311362800699077454173408643932275209683231559906016155571844610977462581849186898989006652063200688696927140354116255075186697395896290657777947221260339138954523033308594960692266334299674767984599404410443440660411242888991918667207772515162030730568384780487344266780460352134753805978873606509151098894272323575232884302001442199386400488536685825175487288637146491133737842125038292630118467493377118958270233663589119332053099886841270555061436292329069173721263399556803429517542459275476063074386060265516477994411161094850406222186658573540178351838599692282293208623213277238632909377262021901329044145356837225647986810403322238509333826537123773452575071809510217551849775000917608433120219854239336849965590925254660621247376085113217884604879785441614226865445481525956875409845737239481561201879531959433397024716415519534366112102811688568846123087507995980518956735010746017260521737468857703477196138156460936940747999829250874527604547227043471956786751128402905302000888870522021687978587014204026083894019120584948062924291798971733369023658236545826832074038441972907959761641447523008317867119468175799510521637141196598641730315523200002106340411305243007416301162010254261517590507120933326582097992983604622264591539801702757227656178539160003712770946185227524898845680934746949662243014824466654952784518439866882388307621936708426565992923331063433306005822210210448728976219357276683638811910107465301016482946940521697433970077273600014786595008121570681014276686769287299927146883745500574498734966585724988000588748311526186386730100099445960272910483040025363585895516890220343368619794507719734719726365420526718481783195050482963332176713010754926208664044188806048318060035040315884599456642519448584335489884721838621017836129592206137023243107480741923921522064874523623823486211750261372118565362220833047320959093053274392266272892990292147005860752426395730368489095487512364515760752658588820369117166667356079141377271247453900840412133899023596049772359791754738324672698682176405793265398274062385276317159914535001945698464111506411080485007888857537656027579330231260193053470928605736625706639430409597422586590738955218377346586369329265930312043407018675751505997919174527738539366895934791005176567967660487378769109944540354655410526902247205274384790979822331571918937426767577605239582459588890797581301845193372759300823694514148107080293994149351487561849744185636508850210852937127156140749085536227909957266165583001964734144447048583523692468904634735379843981407583347398032864284975641520285571253840116397157424970867440856523374162028655255699672991684334043427811355807425609509780002026113689723267996411151400929856028065327317323454499895953367947001163469375349783337941485065324467689997001456902139391762585624766950948244166398777105322671940398488891564940902324302991595715423041585442361385641029116942427050680910355512330917355184468773445880254799677940502902029404906999222613753878266714717097831844264378081176891955557414727627942807327120606251525266811619872892151643429630466315614194337683006388183132269440485652003074368170472285225359305939470199933180025328609491776875935351662616771067734853797749531602455652867945461191739965455211621258173610883828129086572961923313688683796590952786289127303242621865342684896415847838840195073584575283192938313617135857580144454152855398077601640211780977970983102424371472661664816980961328713234575791334310952286832251748825609545869505371365158181765286005816597280908445162918755782656161663287520628378177265277151052397497482427672460631948005520841994429830600893317522602128088922700499666987062351878919219441345662961415039603970230796051070196748072122879578918557488536130422934194660745350580803345931305156474775449372568213188023203103550919143832364653130966516173888157320303049585385157852429321202835879382868172864103908621213244390808389860894314146933989475322419453587065417772462380915425912612074094422482790394145742672877979188708155306576957793701753942688305671421018302534495986742605218473507164843642344398300072232294826048172266424112895180543473491697559012064917463344192222474003167313726678034214492329212660356048939013513713097264465823696124078809104357382357895783089318352744164840862700168446153363086824227800674997685039581869217983827327262734910584823970999709163855213402917898983920846158471565693003343595887510696425753180436242670691500299612296035155822703862778156441753267342031569335765933918549234106294015848647160753796586520788570320129007778879743835867324625773657508021566569229377183803057104238763074918536698763807044633663977608345209132003411782882057128240248794994663205975155699765181336982713200612126265136326635665295290110838037313968495114790898809815679671192261269958202840136843091027333597089424103044247153219035556437095413130219494778943934514217901388788616658983525577773015673445145540989381485133728910837607328131741432214246455485200494143151191423112207770184774722776218098843424198796071157257094297450487145682159433217817340811554058276848886689689557248452751612923714083346220192285781097349653033443231740248807209966572093022001465958846506576455855751919413194924453226368905283716427379801682812112369682614047256128821533292246271069665383510189018162091969716769707677259775940094188118671534453141281266484840672400201790399279298375222775627701893189940933408524078888378968236013535169706302174536010001577792066543630844537601859056411981688263068378744153526605872940115099392364318441210186982311434606098719183849433889579184853201725396617125248502907515100829197140754867182669673695112393038706667679162585147327778039477930286562181989114610511663987003106643517664805991190511714922004214735930815922512248566571556993688867451379762933492820128712979163586625276444020589783714976313757438785191484263507855886389515316219243697221768049110323899582175135888197306887758272211787821093342156107039525107284876818479362463668400802779090489751726402682065265893751115153578190171580154813857891212722995887169233955432463368781280352926301602123659591596189148752964826363983799905249366864651641513214963059299547108918963242810758152899351489420467368750184151830103207955474924396367250546484362701133776346386080178187223475278574924451278916348083639415018174554717638827836704956730456735233382064923504168780430306315284857306824745431400481711609051753177493174931360278556761190781468074556406099171626842469604707022400778270484404090571187097181657177973183916366593097127051738195021114497721681416812691845769142455419289978393407006217750323207701096739660586514122631064008423117713451582768138682745810558660941533709794864726124278088025194231838945111358163529019391441207475733410673549712850571112551163034747535389717082915352116361535035363600499566600494451360061932682187197806159098254921203122634623461032664703969432078763624771824921069298998689099524368497660871585862046220193436751204314676191277652488074945567420415823334222768539715085294982290080189587996157056797989344859824061464159478505226873870848945266015883939230757040599763444213948693864763059078279840570389373180563866075693087537019910591881595096798510487858033886934346811109576262824434160863732506982732642662715859660995168630869876791238070696661419544586162788214450283406857738942506055852246247786850174841495738137967597085184438378372180673348666557065666581536386809854028292595531792544957441610553956849073663503567024623996482022260965704841162297081956121875634731972807731903923778875954719111370283098578458550291473626884846041034008041313989520363547343100552262195961981581859080758749140350575534238046428936588899872492488623001144177415323606981297800096746117253849179636530128296879673670282232330271943393580224459660491561929048045293833136053179361661859499580959123885884370819557693124822252846618485035277709843631698214480269277768312817813415696254579461497182357514566488697542431200070781738790307611138210753580563271870022321079616412136598901730487721916340435314781275088804211042950684599460733263032404389153596044095419964823540653013203228961597951357260114434339010366388341307891044150202822057036786797334571811108524379000727430557551875478316429848114144622853068345554522295026086611254745841437616856340375207684456073174149988049808799182772044648831633757278865218132684241197529455379898616385448326326377592295321847756986197868017848883869450564723516842584386335551513000415420766379936844619663549635286487842180167284889030776480027089217337734239328653783209673701578020366238141384112537498632663013174000387749912721612728473228898397865893537525961532893243202029726591901923760921269164667443429750816407257146177058685375504726964203150322639742938715303360753771339717997583395387008049364961256519032546309093859069205620847332629882588764958721066203035293541385307039825029562175718522445378475800739350416881951250726913153973036941789730849348405306821435727917362202345699952119069749708652904951384546362058124072912145631290347780241805524604778962268784311756970581756263084672006713536601557545101677637466209127611633265378256081804417134154813183575174100281758234577076792927825048534938192155799750970151782888973649523137771991510142300445845530218114980509690649106189572421648172242520248902150494240934615614519161738023104647364244230951135922109902329353265791636113001392599583322292683560955097105879005611000512803872687992711331324233512281688674386698179142112179247724884999316631139269786245731276681577754982461624060462679370871368669310786613838597543705188884532355945341102335686209052001057795565943509673890931014700924926549481256617518869614700788313443721966506923522972616793205835002109306880224149728504560632286434767362441353487778813490448233057394712405975458036239728006430912774412686642677204963086587799089365431099990899924762590900355163946998765536697772872868248046582633109477882747281472590335282258669631418070384790801218612774830112932376832872278701620554401736348295050391628056257782570662771755147054517023703596736414811510614234525375351364304395511639830448521646208662798798003323644782006501395383443262583966317378582496970800660960673397332249521577082921619966292299541335863296091343830210675344200830777501259488483087476034817072425192900173720486376479405376958913297734436402910332555461870607301982412821515800632092856991635948560676107540881770793875968190586751273809952467162351520133978025426911299644153976654379295401494518735744042523676222084702140799771273412966757098025764597520616987287515494275303127393422945679215125024770857538026065509610296778712663641619913920533272165686222923374687131697363212014691967536057908958468305368045200621572143092033090202580720943240364451415099212499741861500077187088942477948352042116546908524140936890752637921097463990583773902424588780508698613422942535959894028967296264928641819147885686535576523421129255754037871260784978142889403104592382829909714000490024528288108095343978603865633248202670656314496540999835320841979365117488999101223766834464420861428155349366917526125981275105724147269035315430618646155908542725586635732861054596622530933497484485832962606738285874687105279760390489285232204880272270267259198205197834201821238480977550206996569416031431139852166534029359773147104100497037416888169180834926983134705164482924076587869589342821146613367182322503449868462102452471789517698187917041809273122774973661443532985125049092152089309561816622636329728216317096669379329539879938087354795936079812590672681872325201190851769563382836851224165002389769460256684248048341279150308961507261942223130703226153312614464443331898257733366662886650660846611254276736723379121453603454834950974744194252797968052874659968778367476296448279946667549857364800880333474622389452691448976614099542049970369699890079916661759188858477008323771436463566355089744772682710754911231177932115885794203841649525616717608697322969539586993889345844567174416778265282168100419041282095323438839290777009815597018725654148857724307326420716384900436856757726643118759431687863158622390405402323660271828825283132910934459198679890623787611143965301836357771993331887101186183462605216915902161445489551676536512440297227709426862028182452536794266954229922715639001980866357810388510480802616541993908058197336322110228968286554170559211448527023975253985087403181438644811323312197770283350474822687539601002072944598684459213332403496561737413172009802847065559654554747383814625157614500314400542573588625704324478049085962615205971851253735895729124345009731615982093632110239892320800059033488238854916394084601233602020863274433660110096007242210560013073406771088706423963665607701920814251807899962978517886416403088138339701752204799741541904626477953497964983982507405978145820177098206016219026079850153889256821994708797097176364283734043988587639549587471227892896134674937102551574121917423447323519471148993286523514189543808393745659783467617663769999286400022992406965796532027549398615777581198423874463746964928242402199427766965350339372771933983782353119847249866105626965925197013794881570615952642635697866480187034758928247335380018639486475920233006603124516580842085607653488028054865267461734269026789943159468638132106726500622370219342258304362043770675074106150028530883371749958143351652884544334456438020091365845561471917089137057886363839647021813727274969234838657485865062025372758420944298186714288843473129311502867223374269320334822231110265678528840531481509326325623455521387492522806052519471035094546366180556679844405344172754281466213822510925242124141319061897165206569279033542686425716007430608971945320714541030534482154725432050372613487709081628496324359464271331206683159350308684752941506210234389082552360834426538460830098590990819522777364334266079872617889615895827478706602619315145184321209189617869004078381701662994763979256892800798063388456033631017866948203279608291806259492621721937636262958025279734827026742859190312693105790541072886071912721795682965633068342037453190950535797944076483668428597516395910186567889781621443698743420564601107439079810137970042529374601807692658162671256676087598171008582511277898024598125162096135949484076444160551389970520539329842123422317961095992836151095457732057117504233342035979888455032125536929643253332413610993112221890079995636658981639469982147363322640020522596759565046309108308696504903541289883078405605455182958571687610942027425355851154405370448871426596971495103537121753350151671620154682929620251554542340718351053349392279425720634181883901315992636115305260877562008840695157880160231269269240835050361614828826553607668352698747664812617019556010135858308265842405303766819096561741064602074634141749279661186527534492612665873910000131750628172185954812641398474982375307804989527410134750900209160968414433467472183473985951570454938516779568904132928676765860252297661895931894456032246628415068413526668401096475388258207814780291240234468403052422244987380479726467638099234730486907254537435626578807832156199548423343252027732200561471541225976147383450037865437207263181408627413576486028712576401518186633428512209766759595388646844602283671189111868452151809492636431947801726796484456546589502704929354318457459212042993168062511925492011779765977455115873488820490996520237959402956688765023649247160061497820261880670496189283164898021825249841025379672998342706814852954388265820089887132202656416170582383341150302006996265722265288757003625519726461200856576247422116117102443993863618820374293991695999387896725161651726356629505503694396592747773749227201272344782035666395389817865333512839824858374991623165818030099982517833509340015725606729846277809285120872655374699743294693060964207808863955917413657998052781759920354761407838324996398412841541265083383971285573122817599853999298527153924278125802413098769444603507333406410645659965468381069332907181874549887744585886626135239402583351990689811817606289367168273966880276231998298306737427479854745432721425161543657118450858457386265202138400726961083041563535573521331957383729170427732290684734211304359385443180715554543210727338816106465944086840312109294583363306711565244888465168238528778065752707353534333394661350951817445139970546797850456088112499244098209492437122015989560254790508540655167431053908527148196840616174986846514768020893848743522838418687365195483672727405012193992861155574406460784563935731016706526171868080493352341358839796843614631888322938775469240199474929175553822914232217567244401576997029986940430853867205668192386398797464075755233378032432201681077367384184681355062867567547645133704566872775755273574665200335761713098868044380688863212054243640273148578383423020786262595133003070226974377582724697614015774100531266107842246842401501968760130478590577957404160511827324949782267397178263434859918537829524070852751702728770027290104044238551643126532889237046447217211255660509806443795686905257742316673271767334890133885779564149521939985293997687573965955073412815116062654417539686156296521906100208503042254888211443860972201767624279193573199321939314561655027776635243989421393410878997231026671233530322314619529318484731868234727500353609751332645419013409634704461377899035346460967161244416596096744716069252552601066683862464562113340551436737592650947760027427406658319602880167846501120474092384094522190838386992509684929882492998145410032675402301301718496519656060834412721656203171963263309102935078592054450964550044450301769937166695225075723345946976630488037733987114045238901858622454342173075286577004422610832982117576201117735586724454644924006196702488187654193399220517350590080521402716285706548545416049732371497042630367313389568328599345939220208877513789090637739158943650363695623776750564572536509254431941808300642184061121059024683827820305783766066653656274935399294036805056476125831057115037358719208028364327572060574279127959640847651971387540324247648272957065696465233082757637611727870303871929986031067555975987601604478514953554091503655167354720962182384494226605991378532545968368886462335456977261693941397059742685409934145193445548045534365103227541818726305203557964455172444660663066959127587442622677213153984757297290487288793755674218403231562571649483313408372826217002649555982590950066054376813005679412856731106436516864764774626362827807746456620333196035275097442037790308929707559229619178484157609703499488853935464647532883032647765465671983575746954337934156989978331991021836804665635192923653134809493727335517954320796970926314995985224838877013234762480762059975400904867003391938618206665494440224381051027389947011391830024545419051935294821267035423037904256855519287030991227573759459265304800702875123966903728029349093610568587114929938328583411640756268714595379245360078038822098388115565155501127722920217012894777094899093111995329731108421612751528484133934425737198667783043247671495400152521781204777926326420927129065662562923995724713202855832618634861862322533025209091227422536726049665833329815855459711944927453445411617581356467392604377223561860016689130501135622242253664519668013813046591423802077586468074132630216833635419502374271917487629941049453208563537704248572990662072846410981987625359164387566674909704402531629609029596273970195077249435038144101151272005533687649005456518013718907583960494984932988868167863730562541663906765232205976843767474591359868072943957582007127678241277296860256459667539185500573056447885120019013045703624904601499250609848301957978340055959053456298094368539801544955431357144399169820292584977965583254402796748032181165088893585033167052036521711052748569778386246097756440094986083364638987589908051089839761098234732034706375876583416474905819926249072174372034393415919094141932580298897575762753561866932053792059230090726378731308117363651555000450841750945357157068129413838896027772513136767732080602438572713401645412604435750130702029074765139829736624379969656566112819159963086469896348905624866526081664010866146576983478020758910244728903190440796116845954351146530081603675851435470383997542309670483649074226112687561375188968263160157240124751694829828224196473622570671627309037797070273838134267718228360130521573419106384520869748421344783410531228526505611620811044379802425142144636221415899629527067156345290831463234833506632310101409493853168137932503397265388824288967982987705146424492309241560187562242575367093590401965448051735017491192914198649438829886273934145893257573064801835711889727436785270847558034494554613632700028832982053546169122556406929650610200754134176811003603851726680347881302457698085872118190999658424368068045222098024076883260456314728965318791160783886648866937647285457680314406521564943228183910143174358219576881152988194128059447534727193425816184691485424334740897594560196823249685756412966933668129477672519011374647269690137071131412181020625098728124761323045548976292437508261012475193143569405715620686068996665458947811082140592659017527954689426757380485370685051835034548163760989076843856479359612720112007805094778719912685075928350360603120415347754901450913971688982027480264186438111932407345699586596733311001810949376121226203958286080545237673334114344521808192862174589997190866029991589818336067023141348462647838096213541700309689691222890375085524810203716990171755958965112714833399810561362475526972163944608681256788306817136342938068485351260981071351532907319581303999471687923055414205805725466475896201513617289965886593747859415715634844307125062118616969817489904993009626364757426342211110716763535694460862601067274427787335923596530466678710468036802648550173491216117560822684728971194904548374965799720982988652902917624563083541636795365612217185289735689314818895340215037140270523408948799805731953882769182812584523542263894166772059064953626392549713098178141731057461527028313715123396431993869994092003044093048534344399798329502227071549716376175260936482994215238095506294867342819257493010156425608433235230014563171594618322047061880216166606953535220405276712490212380493011615623066918711417685339471428256315254944685197387554667485919263335702974706139807391700070924431792718857911531947023730718995553083895358748585161316502254021349615888514815026289329390074697004968661657521334257189116723622486148711059831781989571869654274680701889815499370506247094470191637420496644085927272875338816056135511073913130651475598944653404281507927068375877769003815907447812216395581610917404240576107298308190952115096924601383825019890023306190263980134819298629341817473204529457922766116068414472290854188470317078834819133586338437480756876915436685312664485823786585169191160211270882401116758437052066287094204355009244193382880124192480893251142073412847476674311063742496550908885659622013817273212975169097061353407576636237304591916776974932711679515095760542456177478601792109249289013231551316322131700690291921127414448580211297762177380512408609503597287005888304892694581041150934822693574250501784675438537592766926696710491205410317434105017019669359156078232690904419228118672227556385313666241258598500454474489870525189713590091682326139553539846380379521418601729432868471773403319256705160402989372989129084771018766320072014046943336682085778981731013564906554799363117220241750980916084103030409034988032452074934069584386483038698722787834269310295393500625627240688715835920505985869485232656146435159883850030142257886789135553645691466870471603677136481106837866692673710713805985606026277464038836986131236865765917024725024889694900258222749965795651729438411785313349555225008411885391923223179405092626358173774833485013449527029510094970775001405897770159790495175753869038456864764262444448002866037915272253177289153833845855402510869170800706029977694122462812032287824311398695788799884405317814496087453176498857518369452831014422374054103872203025185832315679152293442324306789151138792340053360433662049644335420695486548948556603065968972066437018551587992611475300536152177911326987445954907309236431265227432651650936968039569117819458883978294314777563085696755064229136525326917591065518014807511552888498303778057974016041742117440991842937877914587370481010915479165192216759578872918879269590865059095852355567711139171987214445966970303022295893696699023764599350509331426975936902320406342967821201337854877733214273380570457161210415869531038317315628683983156413108888817532392973684934133087860728034232939789512775189392385114166574473924678811425521735962344002578264317444275547672058454378574436736683395913799224442928284139412144930236164914627420182321692879961263293039582863344006119806300688048491337191794574752069780714054675208396659704590193999129262217097493356436498827121976597271116560620140010346319641457195943199971041157044257464260421630241874178850525275310489226232746799032828075995397044076648274884837345109235042322367413448386555178349394426183622063477549198179082707719340734233423345142184265843559576214224297552030682364427166363506345741800857387385601686960743603511563296082169433466117991087498457800870859648433495833291301938106153282044435624109445475840141272464968805833088255105805853318411600624522136385446558464022697252069158802303020311387756433571150899051688671392106302921347702844852654699242107572600904559960875588836625896362061651384456824002094834609223760221766595428811645881083962230924559175829158687022907987770289599462860310000645952520375308648993299901022582577200737287485763265892405892192145531190004256916428668648000548150067368757707679349715989301727455048251207174079617518197354688308834353396063969537455722508481562361814130562296767878243570667071211031380291926323779506214804365983968244824319240954382238594723694123587250288883118119697047926435072606892316449085537900011586143234026696739370028657447950905847851593786214633950245513669243829984541687206175810215906477350549496544950132124084289554713442663601320343973201047750899901914265088054001597468557358634934588104371156139312451060614735877621334942635868166290993694755692760923581931054427094664733499686351699811816808001303160090742522546987954169802367377470246379136616380306862829959741353658975021084737976831834979714364922866770459850166982600729576955753672578989371448715602481044031932959035263445857849907741368774330786613259589599292153053455058027395361674337611994263276576833630703700494377290972694441245634190634255917436714756951353573045335403839808356470604827940821766107672294915200503420200455788129435976730661433738481847234968357480466761367118667427831939380645574600613204718367028960641435250396233393950547586007600613972149372362199399104318262522619852873305670781946382494796120107070987167276091474885313320366902905258809324280098966361813138333340048446391016513652325885007787849354572643196540184771367676328537850740350353995604660259997057008704298677513961787525231510982916093097007678776526119766591165281451553976691026822747212276322653513593686930362048304995578331287436737383550096978618264836869295004684035685975744174661862309000651518596439115347945228954413183652998752334258281686127030010694385243277858665884396548536081858699392468781939537549987259588346076669309270101619711883464552521364645891278541725585449707715079036538461687433412855325638002338575118328093515002251500533544235863746868813404072022424786781303916729376696411106207831358702588440137134805355755158101739860002147177426280565107200828041871631900476250093129181353449703278039660298906027840030168229695758473293882091012311517521043911242360713387686187218077094015119371785180755804929490656051724981613015431966251595513773841498186822192236212619115320963259216740205338807762238548512042079343620505231326293154850633608565702740586336989304271878762253763635410894614666947460872443360987025750163287830410400819315024475921999901263943082460500949141057671920584316838406010831346928597491307683595317575704996373589784889221733036556379886719426079789854685217573542252231510276590882679962244281597741150285898097657346113896035987584172255915967388172489220092065828112916450811155249547304693004172446900534900755830616817186566561554313986816583457774076852837783153367185645606522106274358320817939697318384073260764291722879797528116167286116279868964775355743868776025925207026184702669665947872645470114733051186964085376253861326193025012829403229620912382571986974983081479619089985093226455013142958659474689774459542846761212238254243331704362388218223047898902819825549060388418016068974794924633117714599777787686046523464036767722402915307742713606764326921468735384524263297010959893035298109646696366016150036921213886401893414711250727740163924596736697352099206506094576511047918665127420178305185501722062860656349375367039990061488705504211659105569429070356961741318904014090971161258225087469373876132899557076246367443124911845376374720072082784380392507006470924397279673372521195993892804098475515400518431196228387192325828090415110131978521941918395415039287332782920905511050603435019330568064004419741393400359059572476931227112743873668741766145235198690222602491912331243200418025326254730900137627179367353925883509998301960114306582438297597626651531589038428312896057597959029091959327058028300972831418397901173380492444405414471043731225300489420694997306720762270035062157227916760387361917929744180876009612338553851369242549074844856703309127298021090848200448394661414978003259283315001572403477932678441492329829375513861864116008388915425886389095986379387766896098603586460527611182075046298572799104140963853934441179066376115993720830990378470527584405626071235047509840755328563198367253973086253182398556179279409376170759807446723066642743497021045757376725786068975317004261436123495417707110930749243049945923913581762302702558989138326048998290379932717243794089480408307244420128709633708033841663118837795223731781431501418935102229293643581468318878957590359123426047400124388461718132358074901290873995562536646330738881828506463076230183853281935591281008722295735295079186855233897540079908428165995942410095986179818040825243252689188048587794338786546013463180080572885987159834218452846853227834966876899166766086108384728879707142383848155873682840799625995544849104303339155049433623148815601440198086675184101771920587613451642224545337317700273960706125796348375447819744742762973652317728707107492237977778809190994020995134761036613442272180611980633253869225471252547197763365274284393830243857297333827554150019483267379840452978785822971953260787561119351373227909920191882886914180475077838003388658089720183283486738932878978240173994158610128181893258747730301233969751699657036269546571758173322733178947748938830005188556438889435494306537100619002192061926285067918136322002765893777268731503461842884747037536313258619354058770405349925571479996730836336094081668261585282518130982923899543646450476060137957073718345524414248015086898875232889505193976144449326219683259668983396709440240210452100421993733028367614110743004254587018672151919066275769443503115572024308283623798942829896304133670174624286693799870112252228329297729308752967651107820010644741835092761475923260776971260230521775930889242716441608049746661709784367706392674610967025032787236980998512734180225125073299412400936161542091053653380080506425302062515936496609202766974652434569392966661566977597804650213547585779334660256618077798379864015248650760025823812809722379883667486363057213342285171663006956888669539477126718893465826480958699885050519091022508709980282817757468717061095622853464317396470903056733097223930584279019277132198152478285251641368096782919787370244196257956456838207747711008429947343285330256818049555013539006826761521591063392925741513725145615095797989532148115148811463413038795566492846118094255487771746459368678743422440224570261904628294150308924066833821395797199487153289260072810363377199374661888153689766895522138157208050416982833364327094169601343709577403780204709238470062796041697108678305257322666397887718340953715915143060352082154897818575305045405765314529621035102590584298153990021248157126441352250458425395387977600359243104742057378952575596705675950898946092340605964216216437060267372572662743999332978760443985015726114192150123969390411944093444560512464341514763422630456757193234335289651788388564451525448968671592530837938763455131002205494899289701643081302183594347233507468572655417863221842777012005609294641724361833487000411346487241387887695808345935179364209356999593333073742102456153391673375223209148473630213580042738513838259163435394775214492137817718906625496363574310256148442030249891105002145342461983823098417510895246583135521920532914765262601984100519038837964268183698568698659948936789524791079684922925752541861190069564993508593511598951039359504208357119672883327302520803782202940393192667551885065185934506938412072678935690960942743187479281071145877137068984106585204342555750548942556050307365137450958199403358821000202385683476824731984883340473089703848500551722393880920818385131853756292775757897090464742364539498682837379775924685874260878975269488657122228294080777915422038808684448002855697949649387388647252818908885820751576671251228046671542301057222942590172672849859998185464247455652021583910128922047541096482660778774238207882197755426723517593620398216258594123763995672839083438637732006538671764282976768727024641471084140137032066507676971609362021148605019874061459396923225240406483420462682643313568579525156848131764280553417281084129812769470757010473870816441771100559482445070882461373660063968121289123010086480021534758612999399977904518666410158241570029888143730349021096155844343854037593392779570841379468508540546150735020673855421992232212971162213190399395799516701265442290872721034489603435656164963019529033140855066691114097926330398353918720927660803243997446534913434013640792766854781166624541594838086292724922239882293814865419434429825660607701063556532269407079559251343168578854559895749360363707675630396558028170238543629973502784223925874706465145749085088101988664552097033570664364152205678577155221898356233651150318846936911086179722729469662392117265667494140427405663831028892436274120094807725625118698251413633320279838550777748792246402391045925657309525325576613389293760616146318899082835220970057235659294814609926552714080879524360608971385703112489101263156351470831190755644309114314628777612546174679584981708176461883399785722144176752911573958347291909874455369891692615477321197119998269185938283793579647546057080927626968290402742110525982084319332398956150994968738028181473578843931169604854344063356901463912829602120973354805500940522116156584616527939781056172224058298800401429400445665614101468972126769822211705788640352962160046549351501458445213820516619422104747825503319232130522893097489018343048206840880514731743977582028792495896360452681906252737881445302541165611500982367064733579147117606957845091738703047853997649824151592614715488615146765223110235057060581236764726927561617707452645558141685468501462701644844808326285041531924353987099666800121320815618858630700170157023950311726357759504120392571287346678965771269627971796417469274946655023720768052015950689631719314091519928102595026805782628951308038786696443037887605754590365732062455364291625914123957608012848558066098225113598831399998149538656171494106931576766400851844635030578702985441439136493160967123211972848622352337651610040920312897827400969416204325500829632002868443320628226716209258636625173504399564035619304296437772593672332539244876287643021217061765248029705336825263825492341284114242741117008521928381795830552348056987718166310633351472523374411300751584459361770514830494908619372869572436368366399538272574329281381547546009850586178701332171929626997105075716487418794532522455385495997393894471857096122254659235358307470723116085501283393031113833106062612118371648677070159058795968714068340310091591131918564630099822785929064110189542033373649922391004637372378494924840148193666566344585169911926058341773890294743085716736330247664191049422256904391595871307208583088349915732920685485320058803382130465798745521023759291963389788626680958590367135520854169740394075197041652900830562829530298688827844931816674276898469561861984275871569688839525664781904775153998427107546310771749167142654521262056833613615708907886895553643998833216675420666200334238863187082902460489253669442878454893212659659035183003276612333364205287156438131420522230976604563660232181865395346896286293315995704906272574806268322315360677340475181205495082247498884978734083154763347310098892833668669300075624049246879927259649757561282156215827344948742315458825688219996213147363172685268513087320096351693576775102468659895156120367293862349645350651708911294219270589583573784832404779664727792767641603466023722102742168184490558393040199988002963411026621322880850598605670740914357102091073628227785599995072739642108858514275282880615828753767389716651177023384174846934531398760610393449066570069285913150083321890947760722325886030746990177045205422755253111777353159026757257803231800231072829696219688747276296313167708109812717474382368840917872304689382371177431087746818786939212885734215775093900426837876098608365046442593312516151972846272090162176238064879093071455541289217323319770072582043808879522986511211148077523371000900516128707096599928535841094327981884539280093480155723951392641694031611342277994980625853284441452702732971230446354058184755099716045391675408615624512455358316976289240240944881654488877940840442402364020114184739188821777349275690422953315688383923321966831204814078691049995729974802366082867120051133348003942231479713655001667667808208806429417044666150404149178536769694862518504284838139064022765067704325434631301151978155427874906412804303123849747804077906941319983799615643895427797187635686114129741520230165315717129749687250224654174969678188554615882504287084398426947306755935251230619546927179500207990059308402655908400506474368719779141628475204995489003414104339641553352481087163454724032887502342164942435536871155815729465447005387680812329671845870430307672447990483374115539714576804913081230678582056196212775319888368071042512722424798913628058736322266943398804358089270331060712653513430271315541098550790500265781278741748278140492617870786555103390218922510361469109746126285436468497181480099208750411889686193475070326778081454653569279504424067055601054106837896805989408345986430504370728077053816100569603026481002133443693483572781402093168781329322832169084115481870809685836043670746733026826122091400411327934668562527148313765826137772886176791910725361001192136551390383776283462153226702310319333930895524465688728659657245204186375691726415362010128031575684747906652383154543901592603444068941497986236577033231845585809968843087089916052604515114136773604668206256440126240453546013100606726894207256830702313585774154639442435666660068141798082877703982798977248354735187818048094740258991709898707802153868430105907105331531056151442461613371618310467968206923125076794739003338997717385482186170704177286769179218136623458570110491566962846613656431030022682529452608752381237754505792917468791667250896953380519210478665420965236715474418715273140559204498647465467297401749742128142755830052763382520745562591078772139681491901825916722738543140687775217420799800514603719572144529214319944899653683272957441239385405124067655577438985316089670302879210913700827525299257745369959846554379601291861814795151556138847887705785968999629795994653578866231119578094364309712982359798212427634255064914710712513312083535002263096612119504302512934811286252001686449894527974088811859844916899950220974016692171314503766828952080730778050443448607735217074362469476622456830387635196421949561462460202515622710269341602544351176865117998101383576355270236737179545975944522863323421502745013748762893624727729134992988999239177710259303331319182693101503217295862690385765057654010625903608910247707014246770265670907353463991110224673402891256247469874853209638701415256947970963412398027408786701915920530182737897850077813343494428288165196267000905577124225372798547106993969365162856472778486842482878403761204135166543729513845648270645424434772412858552862726218699831566059009249224456233337275708713019627999517295875398042715014532324386615307711843903713964302894863221167725320035656395686117360949301311366062125484914681786456199111581671943020459614606870895890035345104889907484359280916440088244333709195650872978933357529747145482153164492240420786593317536237241810066226650838752755889509011555395474888904377863504890592696905048737473880687164250895052701973678942935946842947685688411826327743543746428358233630930590255885305608636297400127163110121693063065262332968933338195665410554645268976862742291106872288288164920612426489990099898779899267073383677241711677737962548357710071027090039859448090591681968089226592019201670628917007279675509786820192899314975874318762103119717882019625931733551591645888146870251611412126549448365295188974840105967705210745264012054229620884040209430120799341885043361862632001886499174659723128032078207149875720515574991339970075626293100640511778754940118260083495550986567802467007365225236794658945641840770711088343658604204114944842941372530005364606459716228081728486441187795650346803888056484934184072668596496890953722322497879946258299824037475224703418393117468780217687599972825581138529024044354658757342437186133215399809225420167496288004872803159961595861847213308040235259509654620407295403244872245276116854262093232099072162741275370644550604873477148520534064352270000255814489869839422768999907472336000730244704551661527283155748224744263636938710092326598284383462747241675845025209317047322982946930394332603477980118835244142896611310333484107014446650229764665875838127826895431821999924206360878961323919384415266469327806415354625655875569258621937523832923792294997694584104528317740689334741950556902928197404040059239502833160986572796100766733668447033785936092551691250314805860598256547977383436295070737007208244270718142211325847874480470206391780070019398568173863031874842958125355705027669272813973371255982478093451145421928009971604837924863274623027256998492249698019217247409184821650108400458342099801191273569363155729058207085998950239888350173530248448384895999087084271555347139074184072528915139320707600464221019336334032623234236912897059139078773098246657616330734692301858466641061555102275549819020512227861227240676776720173748671123135833472557873942933758431510620756558532105712270831442791125339727580956836119866297912007514071038633454132048497869248636245215784593918309781485668704083669557473540028083326958437780964791975195426636765726054117082430810640400504133285209186710773926231523166196409696421050033304327514903086041348111245677889712245097836769362969555643773291305546215124830110740520780068289117847773249849731083688162928458327701563401275065215469391283430431616772564104795564396383521108908038992083211340961768670579691200349364725771254787003523328554808775607858744085091292705728425664733866184855052395757909115346817983981080247302100500831523620470365733917870479519195984929966480440828260593455629505323302028037080500890479754206254717548499180978096747611071249890875181132588352406699270586036052212381214993935191709995460807809167386628216217901724699873581886026929693825361375303919806722068164368904504157462540750530869097303408249509013994914977776684261304515646117032629355489216045810037733290884408851811921096896027741836261992688048122483138989343397678681250907125045239462584560990388713276130148892467303196791156600413067037351584851293442987669383340259942270935673958888341410965016840255860180737523172195690056350732278864481699913872728682382325757138057601216930409662443118927817650698540766101632002498371316418661310407903836856302810396623349399820516644663430919930050780718990600659191875998680950141460709323567934589160882827468483380502247617258445287938672546653938216769753458915646485864032579968252008563682007986326680483145793877380916901938919546101645870607500040689128416475931570158207604792163506695754248851451709891727653646884622373185512479055340400110521579139054412911800556203680327163455935917592986335418375876657797329359389034854801394623833718508507477608502721523064678966422092206489299697677247883319872650300756292555657617131185752849848744948654633598735868159544869702120979899269298992884472878977467265574505756238004854640142164559577985116318859303170614016592614907172183709209062901410024849833544145434376432389889928901051283852686603936718534837652762853181744373569505006373610178491827389374506546114588085819389602248231893781355613603308964118593290023655116850605888288142853106427411838121673346985294998886697945580696853333326277371013693117643279348454226249177036753367585902209053778429615795608584859709515276301181179586209020101855632842243647466280055389331947742390504478336837560837687632791052616145958228320457726757800808704496047039934721396723036293372347181381550412974011010773969519487218455244863645679030507920225633987256905595338549945410435303033281517023247112382104202294418376592299548211059068014015269684608699036188501927450655143808135668807472026264560004109329554213301861701819442087869976346687012962162464686801099752740138788850021441659523465577654102709905359315241392673835661192488165144616740035668989934258361947627795830329725460609171096779909398994932619041142207677242531939876234935790661501671364674773491778620600359460626735898923675671589365105306222986722715325565226739491859131700363545521368493840644824541935001307350928995439013306539420592910174024703007720304605723742934027880513250420010591170443231879483948209604245213642479608450652918935115914680916937099561757138364193230104608504477595210238494222158967187319652843794006353759258946235255344195966424600548861857939486812731179150252790062984997686725833393622274654730374999356741250902467966072140129641307891969675433258589837830399257315850289058841003648955151294655025466740738308610812138333324257153734981574966447092148249223717727105027893881044688262688817709143894170688543559194670959328058277143847353230275756529492207522460236079681043508745993932844023720256046732761562415680275368558890380321492731548584822681761763975924248753874691589921987319953843418708145307625078765939142814468739702293461971058312708261504637957754412449754698971002510676653225034245246601092350108328666599666129489671640604366370985916792046356491991236341359493966683837767838295511610728790688134158019842888393467244503797707966626471175643406516476895705719445685295571693844387363491401025189320223068481547809600142353939990057552125334322356388164496112411370045174347494637663729668365130744408020263354433985776087833379976838335084962054753350430080775619990345597778673840509452951252964998296366212275493946102743734439041636681762253469141923067498011811086036748691317173952221526147751864008148442125693123624929217367689000796006446116745611755840453330265768078183400346009703516505312831887776359660047780914724142449275378826430989301533316154108626825290836184121164110331875684469657676962800245683939518664629467511331593639639337892663007250417544897814366732078004342922170886275252141367711188893668041248948142465459687241140349929124762039721912778502360572886086493690184137397745534665459128435160576855704967754341184946757469459590686283532526446352392316312947072672223258879827736568512894037191716097001449864919916276930977422797583747161064301392430070811352608171429183626972009250557765332579167907790008945039791605989199199692195519952411243644697598333549906734575692671271611255538528633860602197637042507858759771851817398964250612730514276923254622748476878116990249594039402658343082200520166901498818229879345254368378318040124723282499932574923308950150510741042692350639327415700060920106871358475780734380101428944704377533427373379466809374806759811616023889936006616213063393722869920300874091241199322753644163728205216842617730866960148983951492550936505267505978473489025139777657380306092721166090984004999459709254468834130026922145145209723406476302619120324012377159348862564259067285677981575386844089976208153997475654612248027154708578925426368895904667773064068638883217202284140026053795681516959078900583496644643029668856915243392784807952054068088457777664940972124353885894864112546654870608038803126234398163831747630260403227014967655069635031408156918630519425829929088519982139875383641808019805089236315401387889024315897282682334251332373136635266755143831280081526683694312895881276333196416412955614709514443872289272629729226089210229501073341880664013982039153696122063624965671941102640437842137799605723476142999105704536157906516503010903862989556772869876440645592669633850202534732507600688675257737315746954415474189683951599660258208266290266149150572328063172388239789155067773671572128490162302913079878418350622175639923695078420859737826207768121907676545068468817299959645427114118268283391186623244253587328576143092675196874681586208866922503863926356294455814283133554561564598552942225341932714626017904122287878349343900720215250627936317762126592843970334407285306218364043470074302390018093189757908666222244622328529496872163951169726783390004646477002806984224474507116037681627597603631194108915276614201439627687363792533417960447270768154455991298342819268988943596220301742495543859450825247734341035366562360319577510225355024631592926298413661369708021915588590124554701080033900008473287937344431163542873579907040837237548843900390819124767689548535741908377522449604570518463033477303399453680857306320374052746059917763088033629446025690645433375328823158711911793244232973133568962446748500838236195897300156008102690658148748043513592153019002520157077572157653919868013798705375639292122395664690111185781609031087368548064101378483271520617571447614340930780768655823878392685051867936750698496455247974284425594753724005932330873400453605305022905346972309367015011019343120860307199797525899137532267780893586772935269839829668653550825711329347154307302167141267029695238584080160537541849813116136525582190787035685669373117469012681199454504597140862922175152885495592739169122808643112883307071643491332345348043966342049857621407512135097150892063007268004455868500140285152352240857159065814999764045462794413036360587614604749310974625066022842381294566779556801700628556089322942353809856792593903447079803252747106877554645596905868742071494086047854469176465280974107847406338703300657428417150087076645008387625186293396625552669563443446034068447464352450369508455229226384709453977418423787920868911068084301287753076416552951723378878276784170454014425239958043694439663757865351343346168629485383261047774452837074746527171813991969357326688608733013263379436331223350606679366628476244556814745852873846545095168331234608948192083002563938935305585561740905000247243136203168235606956795028718384326162705921189025089667273005302569779893894270601558794851057720649365035509178276681955845947048600638895980432746380001003824103316739832994428144752073203597907166839494431574748241024435732281217371236169419345429699059854467396713284784109507722177042601914567693020368041074305218681165071483551337638979793184306996676324309608097288482120489500378603093992730173473163610885460109081629326802886670798716599272946115733378238334578178665965971885506771799009343091112000903245155266430261969481124214293986226277919072787837372601185224822891802099501533017647020769396315737845901231161705004449319076639772140680919655729166600559972407749515543348398822202459990652361976118044748929701678753811110787907329814665857825076882611869507785609740115605263038408542467170280501663269572898667471906391569768379570380752818092473203505097828967504453213097168613719860250158220187409551684362604779689312938664887316519613230855913242814377423807443068347986572149027368005159317477470655274163424038309935529750967163973812263459755310019242259411688823037069081647483816888121915320574616753666279828884729162560596614607185643404326770363305850846445005834956249650889276111370024758665316336675299769838244589252359141181459787995625683688823791246025097735623447747412347344484918638210763403706083055255864274070965084432465708105904338148648139964630793339167161318552283433060374567743725665034451122006542506759938267732971401163392152200457846694473786803977133044448811889281006029367874220758971514566126311295674235169549124481115105006356113165880191844365318912060461618333342114217094288597335021277489493882891251402077162545647219215743661795288229609942563822538674715928595004668410402495039744812757650302888032212681575937439381279237081065165949718592922922310396818123126079907464589487659001242290090702439520318970924789902003989869830189397301699523421414422362643407067066881286191206242564184498792654585434330253639522772434667375608622044800383155799964084444006071276262555620351044941526774569335343616646852211274373454501887654909456382467068124063657165050418845351666000794618631888989201800642567396448651399296280294187660426892285262161690123832399597723929211962971653053228042255360209661397541038707435771317097451253584891256373604973665019684358369055634106828003834248300033484319970713456796774366850793263120079418905218414520928689163542470486554056156365053450948061699213571590071140302475883164588270527352053032007040111088604917166136315993519847027444577235713967587400699465336760814034052631704106578618683924133348979227795624000568128784170759353039618264265007857003940702987341123323631545524641774057117938031472956585228877913669585122206799563540926195979690005320841537215259105452661233124409185202827188739414121993758200000365165180292860677521108756614993054989427374026905545111393167629373389717706206313328189842412784972094425316388265404516405507995336949419443420916309515077743924033562238140504910636352090076834624216260081763102283413792865282268364197613274842454925983944070863859813180505770083981265173902625255970851095991939662547738344471186630494092663963388618340004306591474126379788003449686429924132892297985629354879811717628186824149283281760246584988879629786018057535685374574091110298070136311697543194331486927396914405525619699242622819026318397414323150700775756061449202610475280876287036495911043537758441707699839572500316540959050779737434244962210368551597818941124514674618693751625426705399386362133905189636785917006095541476724053824021863478832453195211050175663247507064607078157355229158992628340682910846271131717943918055447305122578323959537541755146690202383775995038376470365799392973029262940073450031231905055349649155956247593000029350185907413001202206089917852354290459569569621827377626854972045313608817272041592098597853659995997769945767337349893348299788348406027469235836160624200311376202617762036974296986841833823033938949249045297250908023288255836792588034585732189727402169678664077065171374008370761296960171621995852760422133799734686037695355230686147853910167476843036429937333866170504261638951453860342317347613056673438692932283740921834605212314169254509275808077742996064622594274291121559215889024160586601396489931400211729690961343174060005152817925015820567087794645902696713992870575222825552426510961026492324504135358219606421506773830935761069828144816976713471854268440586416977909943189128043754468917234920203204110272580917590906200605266711844185328851342122814749303967146219877824763983475883314658142231954501974526507168904880777543990105848118909668939837433836131027038298955543276305684925778466312049713548368454951380770056156179026293064660952036228412759533203371958614141585963335024585373032369446897679808003592311587693172610234107039050766197890349638099280718611009911047676398845694719189044925292028467692346714744274072694159876926457710565133049775767987972026554890889473953713591153696858905879170743682932915560558797358259496597138206089576437211023072566358565560915374903340601742640082354098286258218241176170431319416930856734942816843488101217707791354873315563237648731925651863282558356174907867066402901777606500592293400630295657496527703518846630376406359550532299137029821075072702784697780597293174254458396977178175378077643482822758875092494866863041587569012938201657996950336543157196617607716129580336285170608158100943422167937996647871957694500588574302102213158945108733036390846504736950394341656121586279574933099718799404386202508409982229254408759024140862433451393077269709575385845929111247784274797776003473627904517980098646470837775235819432463216158196435509743060148260201712156424313735423893600498085077096687931059063640736583789079197422678154862793067650513883924333528186936216498821899786373354008347242223694412972217353880992507833309187715046275198767533299926907936581470006697118263642537420721347167002255148274677316848625920265048271596143916694087379289934475458285434999498220623138938137073354920422707506392394627570555666578391934846488990746351585354699223850428403260498276385318140496526728084475464439092016415289587230948260132101841181821405564507366914066520512875515313926454559293800200106717271432565856026497766380083722985857938655821332720408906090937983154859401914291507348731887275266377991764947154053188715516647322394214858522918646888200116951197862411009504628817577368965704099383003412713107417042103797602518882495845637231140649840162293983298486461302110495529705501826144396911891578498454343873411549267931540950416008967274508282033270909282007039204264698286802406316724908277788648565132131582973538136124725752917251970652432650509544653593055329144581899819355626995028326342276006552877697803142494620902203284687543228384776873214142974796896574044448647249350704809694310581992520649706296313420660623353227909493398267270439219769368457388108103487718738814099288361850922711855401334527892851977934936800624534774158193333135192026055012326853552713236780195496520982453773540140130869716845393233404691543570455260708665141609709635813977807407227003448723785446374897106959129607871594081240961554041241375067146134478951406177637264471560172376715697180798951065550706895995518265542395336824900219416091213478718448486787809415137294570423056631728404645727985023557948437097423949244974245152635247970360121379926324606001141157879530802869433149336320053280528007098206183086855908417799841051076686960827150724087665019088992583002254024552459457320167114773897585920030943059931174365545999610094128589046167096903516560332566165781448939118537929866695250967166562474018431997367715290930947016615703997563558142913992744126643678196527996819562306594319565749620917351362500233988838458182898025999265804519850059820989941327707537859141956956949894699922642294780963144182193199171375959201280734687371499280683898361465258754835800496595899665646273343857047156539700701142424529178071137704199076625876538073922913879950070357726904518580191854341602079335106410496411655462865783826578602235446831882747439966759396451845522722952253846796208681020233457015189752586949123880776136053940499434318782793745395282451365854109809386203235056164885477838547464078680936539427380024194634142754057809835133287587633154758744742544037323028452606885460140027025618553806399058800590672931452653301493622842032575060415633361127622135741531113238351795377498130478750835698551447878043936371603243502911374778027452029894619550301006626672017400429587256406844467751070677334773175953601476719230346219263120736182422848283713563724853828362030101827295449686276205078018920142732441806533058084549598961140875330012191107232845575847024678322903765216064607401380588840288742312558257720551606694997061030695228388957131256445240339768521428068910750829033408783286656973095474803047513168690600738001879639423561054671279753223861990363399379323830629753000732126645566960418693995232210973860444334593802005762305905205781436771309847437815342125198553085669103133100429398633069444269499606910205780427572836782026609932813238590607906285966520096883264019285587474487790223776526578482999948121888169781764206734712290542378574191754170980415545120030059143030930674577643382528858113556511689890505352839942070539999337833692807251967426189272914580023962093892499855643341814924271325113803661628427845769749591783850666764847112039958594888402826163114456527627772807397474598928466097066275168771499448427390477231974432837536591090950070688230070242618459416528601826448479045113920554477881875931626178712281647459471219128225780259210778945198304038273349895435982160288989805976132939301628944780772622142289407544894739520123070596465443186283213496612231505311151626373655083800150603281202403643470382448182126661389238772841127569136183889721598805434772962671225217651537384008718828443061607754787492593962170509642012318857966427456436820199235354170203825254091872753148412514476076487867888764705045438636952266277243489816432258143508529221328687212461087936649305217035491774585440293737288466131808260025179718339518474987719658702885567660623406141543789645495162715411348331461002297020435177790539117460586005851366583795167649530861729359447895992816806806938706486994704368211272079360337915840360981177564171486384863668937086406156330629552467790778610813970828042426286813694888957499980645833490678540415989935093331923513015032993078942798059190183087739607408277753521666594124233612305414281575088106373631757859369973395094131453069294064703508960740029631911069465701744166060890241154866925982110439576250322534729949896980227270900887053139339423776487096936831276887969479628504749790763631568041307141578853816723085842722275659064397037516474427672455004452359447558097084061805985209102468738577491402964221786135779018158343800508072870384094001860993678205360411821880085796742627580387063199215501002105846149365486737239059002045200394223117903001473348639536907119756617452384050696056276369404755912166132691771712538594485331073192612747792352417073247870065846694345088569025357357821738923171336722701624393479966274934863432513638420126418722683614036448954709725023133663509459929613497790343268323425728235381783974999815798900964121201639091812581604661091989770447239373270154346796088268655414652216965340956333332567143189557321152532882640487626979243604506884532152425682966375284115853201355233642762277313196038008698638541796397611918977153874596501680407488813222742614969819252386211712826407228643627907328786092624481623197062240892311307112513451536465578168855070560690459416085001869549418562259132095102078367918665783393315983348375896263542085111296639148540515872964508850015066091850378954259713298261071392136710320911073911933346105391424498253393696882487987153796539552901901214231682661174873333707650101724731582500193873372091513203948927543126016742675801133627940321525183572006594524957707499900705118737081670062131084657240922067022674908526037818132266038480123361205047239116082034603414536788958943285803239348922232398107677794358819175258326715694489282426661400815574488094550780828910844816417405715021482262803180020245949705742201435242616685166446697318748384271069806701009755663924418858059274849519364726547591659669135150510581862523843649150487718234960446604892833886450837368339574982251881868032318859685391691496833535766512281258668026848685388678051492297724187667930417707989201781250416468708145863034413844040812992404963155039173628930894824360048146417395220390158530743888742134684675628774877782741747094660842796605951179788956066724129230000779838282069543223524138634472424505267115283503692729599476805592156179700602780722902907320860325742424547002790733221228159550158187815494914784362125956122050252923061261991137630160814948960346361901667113271693173235979692188792143818212782879176154120843414258209458057250574862702625245338273636421376960391477863644622090679887922502458139852446769939332583004304041664137995487658647365469181911640961258505465476777368060596209302139927428383762525150050650515167267419755296596924028686202946445917902752813547908255849175525349267041030130825864119518934248543528559408799394442300522161009601808163545450386692821035874029142015076915164566434409306649790216668035367871309097382687846420720064472217521971046367112877362027335208727406210322308468914992151529598087509178661124166063665642601286981905922689768283948633975151800711423703615377337535943913153650512821260824020818125829084157512399186452566809695659336444901528406166365995492388412909521129582167105197043999390162932018020241416434227727093035993977976888060039098949209077103772207310864578961685196280632635068818427476163752211368487183435776046797183122659360927656628616620685279302566765950472051164259831290490816221391790799389738088286561376745209358773354030655913514824933666733834747996856378471348459723371803047554050930377272784968877768087954075644535558117956525436396784558173056732550725451313067084678143782237775349949371332073917791955068521545584384647965700261150441896530134825060802376230056388288409374754626790809198265190624165622168836420994128568586671499499351925610302550674110229958508985987081591331700882937916611679043703863145283636815980256167404600358403702597670875582808723515187142555036670872591901515823281321242414401772289549169028899407573508421416553125470129255568634821171200722503880793633315355204211879331073134106404018401681626259959552692870163948439860748672578513880259418504317448560766281820453507489217524647732789618106872754533998279750340714674288118003550092510722371474521690870336259411243585968779297206857282256976343555466691674504712270956563635914556590176607895596992906072479019013372491723399426062202860683493543847687461917343659015403753353344992177981576653340503003400362373181270292993479737538378535323281292572042373492866338894062953382326499999121218389198870128511691824812818234036480300128493151220991525645904776691782238657366366893758582205036537702438216299632200865616447517142803491272671753904525523430308331390135167013342764981335584930767576728637808456528038789216068200430554515003248957686474479599983919256448841629056985908969152617444636111919936327200604000674623934039561509773645990476247197241749833684843224243780290856188216155939454346730786671968586168945203945180746500542526191856702207593762749726305332423187343298030020385609541972109150508069464218683911816996394246090912247057509754521814300778145683669495753975180709004945378711324629201352181982303113820977022339211476912074080243256723029771458652414017643056497118714056527262675396676270991906867770441315679392667949756864047150985798244248099267054578909890589368707481471284356591437653202548090723606839536914460602962007343153713716649700396691512962645840722505021974558413838709961005656928881777940044958561011668528209592393952129863315103366080170403272679060196693556734670641869973722997031245040785387523910454893392748566825180941467267416280492804912763366382859377630970443459717555912287119113854511618339239693649326101414797213162133644917737597436267276234116732938075888659702405928089903134369287134075039317371070395108912926124466955866135897213243072538208556478558493026632369615805728164348761326794888108144762607169535263375227602844162566598982511571210416979010117255650564934167374131893606139908497287939616630246984939966823737299835008602318749101607803837093380151262872546484977197970192699480366519747995254283335471829929813872731945815373454219849516709077974672392605637088900926257341110224985569229197974116916824187375172436323004829318495512053150799381990887955810950160012838769354810431932536709587907129248457297081926190552645972805182033338777825345600843658670776059047740192542572559742884840747348060641299627141423593623402592072794911690469508579632185290228648809891581365193593836792980202449452227513212324324293665231639958308672109072041664703192893731349966853922238869209739648813081576964705493627297135641774443642214196964559137564391090689039424605541512701162066970267846970793074326024340476331580525156541438134630188598712568763028542965987414236950040788258061767096171199250863985765055154510567547429989692997800477620962071314167697611451292213389418117705695921073173292440886877532803202749558981078928637851158124514750260946181865271253693655080943357225044923697767780887849704822871892380640563806038016926655071469402029428575277314148187450791431924167292174988884579471576789455311935971377063061985462959507853067281375732471225287471516585629186272503244187162625856123509632472801064456672221690912068138977573457457607810474566374654335417077218474248673091632107576552930024630892270697207125301210266542237197385588971786068223415066387993265067846630669510766426522603894991384853906215123857225717212191150656827927340764415239816513158478564742791853137201056792019649193550232923577334314692500858343819481015747936595801468727707546732289243721890357023023745146987676268242720930797349386509800125399931205776525523086701680115003267035535521651559539985495248064278089345664640147663311004422848714935227442381508624064542922454275135696031740990999331094837755406261712315847141796593697827455474047065735032437259161876006264954642067982972580753076846152985032487637463448392556735158437256857928632577944613365615091177588720702760503867470985330266329096081273026881964455721936004315792440590668407448925440621408656512536950798257183355440672310264981428010345162435895632184888052073915085000609846977107053658549887374227649617549341593621857245699023854589814806254729314023778847162296519928486744810472035447281728115760812072206310136180655307851235336887192716881765067513121552175067610505757296019678209092382167564990591431227649534234404774050924126138958761288031277504625155265590866131059746948742974359333169321119912629630514240981876071437452935936488632617391639514235546888526180082922303453898343495693190130222512483352936937544456775883712411359454763885331418120094967684916254028287356340035918065322400246050546419272237617016523096171659169935232828985507594386605085095219470472061938482830311516289155850957901650549999369617650873162775732865118158627438367323884201888683440864909001202522894894304168169318047572626372390674427342863308426047918803882854467997474387484090851077221048914244831286246651025045994754752208111510264357840426247673796768058356665691138418927721325366725379450645924229252668032432137584007580508363203610565872670303387253653078953198820996137878705960037487611158453384719327317011027014728214717963829568668772004067336088201277182855525193041968294728646647355731405215354750240682825650834784309277667725421926050045175997223411180874933499809350188341900877457815919832256945890607451040348321909949568555359928861103234014921116350807279198263306019950779712703454223601355363488633446433098958290448961111295034973796263739982619091129873450153142265918578651075653627183723587501460888625985201828784212329138126106684616218337328952923719371869378815370339423381492779067256103978405715678210825095325322600218709343114058665088273233446583888570524329080490589470947758336123470135200149772293218909436086147198276672854755495882663438924659901001329593554701882210685031305160762384948236486197636806350200728235372861457578615176900074153804013318739235807909481233639249828844053371479654613495736012419503251710039903137562766710544618979597178728227731078764826985938771496040674713682146237299699276796566370437727843843008875096928782326014320763766252849262648020359977037691848941646777519424572976048209546414912390411041936532289851544737204600062417838877607147030703986363034097666517519925249987033333673330206991665188855424360167264975415664017115117514519896050956483163459925965100447643513130004029046843279055244629859696059570544396968981817361024870566578134299539396593848240023768046139405397342594054945122891550233233996067230121799199322496420177457212018414557883768829431642127083907473100318196820746976041850878057121975273841873595276222625653985188309339887797637097151456510972812215272534396001934766078252462419072799539937785461507069580985378073201155866698175319696450050762030266109260046808102064996482343606762204855710360942889797222252650289542645664077127890406698160754147795807889275377054460885304174001961328914510143187192772717864332785557970685400406217530696715764137171214362779822532259660710447465866437759362658015191351610155925285631208041211850712475373438571943558197989060025545540997039020449194210914698717032610945512350538537513715184385743801315454887593258601684666414751206587648048121344573388801734238517250974133396803639974706508803472935272515501006361631069609420571934416022937151637912615379863893205856998241795309281567337776788428727594243023350811361795950673670228153809693298129806072315195524405681061716932303372393833392642188630974839581477823304253123300170502123198874106677110747695268736401580557899266637574394119347510448521248086068696347000822847161701525210773945806036860513245794513247388721711303370353321037680635435726425174686004958414637596070076609797822802255863860794037138425588525950776762367668693183701236311839742817304133664496226641002395356070571882853684043864708965020425267646733692317424086695284273358653550219510531682499563655279543354897910192684674665529796715587540016767958149305804647764878639984668999593507264064029596056455044741631001088094097900385678735097915279751812733770109852483677918855230763409739004981898306612595672540841354448083478275005996271823158914008982631036698899930155535837591358466305962352565210981554046265832012860430097850362865075359783170239982368225838301275155513892913695226271061578957208717267464193832801281144136290056694347956432551509611953319549969604245328907499183957602992309327665851713603585347968771069498097326629712623988487945637643529400661369832872698394313705914305154810577986861849762064552081794465439422199198760144417329638704406527284957579215875286587471334748529946317632641988187557953428106915779548321220145022880431724095215726344903990662301841699666837433731445456082119809914153140441649949131133717559326607381265046619737454837556211002484281496743278560980269978687022440573020807248029430040124700288716374624343701796087448411292472082075080989270477267019916591036315965730772636036222769186957417773030690679259631964637205243283249410079042086531007168407463937400141161603964639120044898928083587893110606918888589455343499527569871037396174478103231142360237297424706898601810354659359488034079316756799791612036979144515802229204325649865346464545821082183815333727518981873893556494184229973147052792598213574415755983722062280751222831031116538202314840655285091489210678730666211417958160630331128343723997271258223903625194132446386299899689949120952919805303596865023394463313144207821412448131481631543628328297005384888085347450470715433000346954554511124041303572567602966234929585647268697212810622270001612896750118145127601598287195510639800999341263832909047904248140749717668919770693414252310000591151259892384964609814833228797911410604752148505498809020120411344003626356470694345947882417588680673421190988307386623232098754247051065880576935819453174563924750272102782588708106693804293953960890334482260495771363145576276393284561424955016318259887615965908490910413189840863899649435345778989108769342697596544827459721795702105680411203879151849033715427484078583324078735944653346213942226025710311530520790601843733649856803679296008213224420151507339403715597359804899908759257633421795676961340681376475677319680421446965893280526790743521888378003476437382189484886094442237742467100274459872156583501040235141848654780537966641331112714788884241610833917601923263563863386564269551111733027668325793582386021293471013444660294330770496674916228096676977342501584756421741204941882360213229168913389394797560561992818005690130974968123447168767744406260706652332346645994254335632945522589990338286540793126125650627458592898943857231983958446744127291497472063475127352783294519118870197418804692896376905757008777069638722581374932787699270101477151906520692997928863213548656466323223715916360645371931672622875416259716919254377372860335864373734298312235888157509995994779927550698435677610603670143063789226647651825540895851129793505906753461542962393716691451009119243346733634878158715791436846365601744316059275853369152145866931122373316652372525986866088639569845412599542483455827996194969546962009692391063741198821008261982915700778413925084605682891250014242260134873050140740265732434593881613623014210072863765628003378766039551119559753961437794081218401666735175579988556940832943500906122098246793000752847250019657398379783574929727781054220862431519461849240050171669172447721031368563621288134005710600736252502461109408840240598326187519584630675491535223251281645897656163718785721528479179352049290402947272412511751677978470749619392755009832064272788508134312152223401971152438458855633017001250298467881049844754797943716462416735848349804215152540346207730059606643067322335677043067341811042342431335492215688680405330673697458213103128264721475063350011103891006228022482950809868801047053181817189486288410191662919407560575861911628771442265945930443574936342652744193290943819102016067771123439134897818840095941369489503346454991528295846304977919969824800281437377945809252264410898900108055807321583088292579181448750750776352368205935814180139412841942038761886836075483371554938279677673600824786889207701261837497132617350047265845980980033925629470108045187251102388290408229908575384978245122461894586808529312584433088253076158188685787675885666856266377009889459739489830173667046823319178016284497475702987763832350228474920678228649458842562867868100134080687029927550579031074964152872649990917619143092231975508198526668542732000488932282821476175981888108849383537806927571850614637293521353140635354524112499465241083065466815126408068088165067363128042635557442047612445066074269422431017047055661092599931020762586475982846778896244581340554646299607546332973842338581185629291186308839358871522930706521117976028148760719176951982278099873829381682306985792044569624704738878830355105245881538478987720418821685996271263166350704560657167521327481743423444400477899179757216643775918082211322082341501120955267994408801072628271338768037303616479163506483054221517800099445736861870846708574453126027580260064270444670672232935041854219436610075430968013757772543442626618989637867705650794439007335087678466165772206821264962695153975253857964391572691578335744195211889637177642149703737593985579418384443668411863503020086687343385783871914845077727188620625883209785983067944402793952167496582159292009214868457939489354929187833702027528530780939917535622435183949910468617712703122335202857061640086783203776093218776865519603343141821595186493987606174680307210211023065322115882357761208151392293556712876611449751342678643346656274296708090706185297175658268470695724634104397742613373204056790812593319312130719046010626569413737043583414787493036278962201926137545127181006247087761734492806666621326519667750541244639489737949166461999998989037727853105025534078565721209966879736277821936394440810697053852949894368232212800385031313314090886889727523267565547561742255555352496739465521316217863870266974769320475384946684312073475823060470719980006380587852043846975226115554205134026091095952275274369955931054875066118022652687854112376286114416105725721272323085952186980928762749823701589184304088237658834743069316730514459047437498478892649866292699659278780397776604329954491846701524220247393873236475995064342637141066532223187061694059834529206061961657681910462808634199346702809439454899352946882553305945922211333819600093319862535978049882116331156479631382878603618236957118674147028659334608239725763230865398839874048822286500159287194069315176603330967471824681804408393045411603998361972835881133707631390144590372558872118199201702137338652085185334712429375413313650468786883664660427039989997532235582224942631352690858734439113955372287105691979544991472621439583909530307886961630301150877736912044450392169682879208968871977867316256783080062670412727772563139146830938217746991415847582055439457972040467174709621338401065785721774320448353979584779483012133284939164915096730118096189711398438053255139282995350661071658974323416391107147986507408847041080337093966768029286225335371795070942043521769050655157398457954963859197592020633626318277321491493531709205472787773857087405685039972399744059306514168331806792149333109238359098942417026963588736666004216255090200355200272225750918999823719108529480642212811661933074112020102120929184141317056042301371767265334687009846918843051971851518575995745938658519709227147022184266192308983201249696078342384078394535306963852497333429796523810531924702197781160120010827916207775610274107798126698973131025539434911335105881213008627008465276386636711000557336963354783306280697876680891360714466027824269585090678729930608364578805102956708876385802995255751604245282351863299101665365878433993325666825704386473820691949967820384528400383689596842603814719535180577477750039047465784341309834166761459518991074509504494204081039601544832577072110318913211971216370883694614455722630117961987965744814576510096585351494138185187179908084432229297583468510003488168230926296075063144008088661547952364344120359495762418318825778072147137693726107049472920411994761556046246199132360071083653727285189843994292694911175353751768488858835331585230052772132101108840702663576786095985446926253720457661447284446271492180250565145192796155176325768682808372457287054283560761015957547735079443434363013449146004038301312220069586965604761940872765804773559465829457227570389977587124225996362624781228251182486210539804103253835233106978455423973182103887484072591939046791464160728141759124016967298204543739018714243585426100558987406735550916669625193702229653154811415886862787463189011071892291103031927745677679773988322117172794209061069527908571654479211813889196895321389440372002463854171752027038779324717674987712556358795686468012214156428883039324175403301774869766266172088911704797450771643553817062662773485423392077767770456929255959171363660533332672029090099098100172894887859491429172911901869007206700357250046199136584194473384811431657149250733892300922023314010377773516563705677692246622915869406986301057476489798855943983641023967527797080089013364003532648254785046948254185404781185526284828488517095810698682077042288621413681725904790297248190485474020053002540685344695148644573139056580000970560780703106275550289163964898336732708085953304805555164308117544483773887170446879853001324586096098767508667367432832207115686164671499769989343133427105725235734273026237845880176089858553895110506455122289938141390830620780488323484753502787052251002509566159602034083731090607162277195198253287355682766268144427026128648023960716167962239551274753633332587264618641121590267354837492828898228916857202579507088604974030711701700004531709015879865024993386180047185713889836795018699078341029387613833092169843561419208241186740649885524676988785402919865683793339578569209960384535542407738215906826123547216828355413568169318712381813029884933335483437860928102430465216965899046818022415308007567327538580960165666143900322057504333150562118280699668874781119855329446769457003893884898231517126377822578741911608412470202692009454808799568944135388878004312256636203184433414092016061445194431447830516688924950976002754724778371496934733249302061584073824278850139504393138727812740135131175925246703932490240437573482822367248670157027745621469266419003932471931217388502943436943200272014360308825892631919906665057843797258865242281882553695004572723531882048139698237912343933995460007431289572477865855489776399188950132207643785039088493455010838625007338514914156506778010308540120389661656900184569519634401001989791839221792209246455293347368315258831581329799028460162371837420741419482020783535982783509971480369908642098339681571984653146846325943623326822247949484531118165205350784826570035344615936743529951861016914293537608358598030810445034752001902068633382755864349477234862273776335841325757839950424900290854007947298819897360484904628157740545488223355959914356140887321674561775017586944255420736131972158667882677736636633989728076881222453744543225406848903093352674427753350648671347925397525373910703542890875206657791777161767928892168248544320879256827549737376612836955670323225244486325107759012257729986826437869342471026457380709860039422409243165848386141357207467578879286745908723797845459539926301931826086891517343466259315023194114176520151961142722110171960840419976867941507322968774862454958402449844074149441692245525721375943731467069783969032090622964564634022907957275858738309542093173027780914704052949441860646761772324610548606288358517287826709896310284050524343089880578582482820322477504946673447489781102753730244188815450488293792395512619029737368182608660610783912703199129575716949172198060320449196502763890955546216809497322926791914138765799866860051502844716953995119803058445925459670562929416887907883116350779062853326596968419610414595795104291655936240914747424214583123637568846263132963114331207053712736792690950301995605513781330440283327605266966014168800594107456955630428541813945276149426079374064831811734555224682692941469904634596909061706580895087864762810427193482303986920663412348844054726925581843592398760676370706028167122436677854127529702281827235148630634942357440643776962110479779077334498158297554434568364642126774881515769077161351847245400437981175557071550280175570512599978202328017594528314000424323208819640179617521167614679651718454466195053479072648080741649605957110177192766593523494502049076223155143942390310460904414471090897445606581855496149385077440535804353951881632771414260714566067151300915069425415268703408279458035369747405892337935011686863018542374370697772655063091356704367793866181710979467322342720005789477007761440664597671031048395238848363473410821662259465513378201614955064794667375584397022977591187288480566481849683402554588867222097039409364023667902789130286274881339538714900654063751433832636878823104614875648107210905658344931520698010432019159331795636271169859411858397807895332710859081416828374896413101925888314568473222443328316360346396271025598104189061971616841042671513269825167249274735002255643437437696227836296615641909439486186706930857181806052431296230232323061597997948938516997063864000342491091396771113006186088660285631386690795676458256680893596424284732837524122238713176978034733222760922919369807151336186363462126808235119266881840448117107857849669856922394641203559815232028584405220186358488083430201474305780253959735936585102602895478701643339729784791066612279965380123923813019147014349217569265421567240756313816778142385974242171889389087090838407567956995159542206984787451849511026411474327240665389536831229680785137062860051370551672461252381009516660061674896812988712582743129696787181849514885982187802871267192366390275247005197096611083630387680612819228321454968345488956865576831553325731103803250151945889765732948790353987468059945215437653026716466136430899775758402204715561555558453485089382543378725420121341681993590709205967554637038178203701963250812761625727831520518446790901894039768491983210400640104156587290473104029004849003120263694505146621639612805110396252815825319583619072844965244182402325352464796767448123320059209399578230675505752033055596138850513625859162603262000272481676401055541907663104271325188868524269893144786540474904471632053670650770613379615235267288660800741549762095147012166884191368033226095126746252842907263624096158574353525358081502290893080296518627597543683379482288598279303613453657754647346597781849784338927413285074633150559037687523060878990433928692703346428549769209774472325890094924229552199941209859855733870259011817790280095252217913528185151227291967052308483932681306778018876438595276230146944832143041231123043024982791474782653708219039852435586342616718451730801340515168104763566371227321542490576809307228390518390031612366178989983802541445943445423469877993645535949730915594579819146964268912291228912895229870098760655800267591115881041293477990148567136089123954628618863613206768391780612750201350414053221354747505817849081209712660804059021342200870706694991840663499289686522485869435700686190848461150538923843573409373099576605633071863698705222152678123283907640189497630167809963008638831887563753947764728489896449771500587600101344219331077680420086167935784120510509362897786387213842199583843566157357774225423869450170853383686761533946108959078668752244092275140223755456128691177640491770558443373608075297619565607285146400189779459231749796712364277132729452719437681784405202073623822864190769309842522559308166336215971431427889740477851702810680405488082950228222810287308744228954328389662231720767426053578817483277005452085077473051723136091108974604185788577253806647086400469709969891758614900500109031507540433176664801764184888354494799637756598395876424023877481402619286136549592720577047704013839991699068994886220623528788882426603406431661052136914857346435997818569405806663310295006713333665889643851822470431175261758811388313434005896031703459535762296775138922029579684061646363623939265353734740333838367553769639738978682356701059125839779307568676665115622541740301973694885086230921016388651087089905890259021134886180925625066077376402253951822804805042515201238808459532277212217240619408765488397255810852288993116315962083872335183406033052524689685073093001084188204580758614249171984743294362086545590021803810693201844883391449994764698397560787199886590469206531504544767156037477817204724424107828711960019966283320384441250838417106231181834754838666272652557873230504627886628108386126994118688485880933375113517465919590257640407710235021516420961914646821460394479309493605010452922579380858972006016073641024370904259982282540297538080767020895356838060266064093741767404156026525657704987845493111192051095710799829796877869702860775523573349638429544791527134227859047056406520588715681101867709842135903034589210750005677767622751736045620386113858647547873434155466116585215163023922817950331764242150883199428536377918287189470114696093853061039249420663256910793070077930163785371322144616773294655425570208190045095065132013317285338539252380070575669034919412434286878025312446480384596700630376865174100688244383776713545236166498079254362146119312125283575441220513642013609343687219380211944382887005827437844846551583762628471493447456159110113301523897500629267953156630131573943077800469829592320842603433995356400275788890557532814678967558626157569901277660680962807742158542180355344238105921209200666644232472586436499057536106789214220738499756300654818194601719366608476719318705029276254057731015568759364820280363060624996842901876487070831128099345764817981207415908601813857056791545824704351144709219095431049860207975608660756957155575772878427537668659297213322269202991252483637294765140649987323812905119105057999071097038873411480440825489467228844517508704161319337623083500287663901705259551643630643277737664385823677397720266880829556985775588117980458793703974345351036446931280968531985772083596542001299004910558237299762744980383145734499421924965598479625929828674454586128411844377375844677367214623922566538527013745338123232261637419594996284646075299170911739122603891011539568387120971348057013476797625676366372365318544604843175756320159576071086001581095157664232903035740453805175470351901415487610262422614989405640345761465889372837592261091639843587082395084967133426329158056739903507594412457600998524949738328717419400555301136811716163101377965016996587678211319265269710577927392412751133523909721428267333708340659887320343872304701087081212938038702808722098104724006561596052429159291984893158317330824504857594951758939810184508686242421928268578672690245674881863736638054115950557229846753990862938865797297485949776325298866739146010924352139898153058165083159675776747742654971832542368716955624928882203100007300151340581791276633137066348503218532396821222944874583160082399792399001433475690086546661555154290314557406830971108572019092503562292427995581581991524583667281508749812512117487154444728312846921854055219545470940553452352875317332479473028568905390443324555000572387563270554923643829542916329858670857162955705019721481794041401716320864248578223201688657491473933249440226194895675652143002534005459269307856900062572789096882768335022427090426542170352417127762884916601879710884921688801578697174772373023188481205520259471822277078715615352164991111759637603586474855126017138020250533141804748436687838877466094851935622121475537340887576670237770798895341001273195247863429019100442564077080998821996288359827825081151190424315568007114976154629256687008234755847426939411061850510177158009812802966673698598172201243705331450311271764189552950416368204852129072105884638067235890621713839663735560727461641620298082675458399610160550445819263926405494794863778264567863279021230322194800235643780958337368473976101727861033715297613619862315792720525013272389772472379142536400522482842329742360117467338595180343877795964955724152707136117968873528309756881213211247872707668990798018762325614982709124570002381530477063033264287784714378682868684559352239599842272446773339261168579525262848404411989845134263466644393213246981907130398863823086939662619569385236013404406866603149750126561288616107279966134976297116174894710926353073817476995870854626633063739456187930802696992846803310062046812276737932483835799766133511217385291484153408010642712546566538232616167986497711908373737717822774738892790484234731603341217635276361335230782041866210993792251078233988269164032925940603935540683636953417428552767208517873541491707876194185256973372586673160378800902801785659772752099716566858650703103956274087918989274235939132197342828937193649051839180220705097421255080412890920332773277107535067393190808509098203644159558147753170968030116358123647988109731939963576801385688562961478782571669129988641582503698123364159519879232513257439715589758414766757216549542550825031999862724073123165359799706602257671259198738225668481177919484461055330809560290982982166412509004750349835304071126171556131955378046607332619851694786129962485294837143873484682891158895374726230241007986014819809625442476263007987420502582929924506078580136532829639661999934838511604744773414578355287601473020591235929695222378342513579175482380543560502098804430535534807371847695301213100546282346793295860484207936065135232698218220348974323271918514718210666306240993590166949487985059988248623132261694548129508648259237140562434992876103386201997738819286792610635208196902699905227401976700429412811812476797354501125174635829026044756117601852201019162716117638979201408027322303447462836370164056299239482566422827342350166437843434192073807174717773409351906406024285378256489010387461314004632815651158989471955927276354370659423396176421849764906417233947511048554607198489657531090297851079105928446789455240089055956971399286703723051422027238737447255718644193737798303826428166876502582348834303804448256841236645553299335050648327499581207461923143291848180074540352472820003884741596109219701510035673455649427372658662637748639783195881693472552356718193569037091445394859667885470493668958312026659251608552219737462547970016460528811516471995796042833113254214783595936568822598440197692332021985976510842888104354830895006199045290884087222851860281678917956796473294508411964614200919262000389180202192013370106053352164847729410193641700160995915321707409135721044337313770430170139075259537077306412241971200772936722564771559872429344529840029833000497787763740608451349016062520451339182505997583195759050288884205685850304908667765254715336657918790083312245447701746946958576416237266807423006913692016010717462964205527123737383210273181541260807832004643222669171301399331984689913682902680170879223451388340610209784234190119193336794049576815292262710436989721251488429600608665991382438217613853203069077875325361928025547463329247037956891124106230164543653316176827290633930779383104453091855630103265614875905911586006797156831346332488688531012761465449089232748057026975695211913063174306641946374814485527252486145104984585903450453230695563035426740815022433921283103446276203895089898041870141712029016264577781552560710556426333620624446836959817508976022647818088378586852308526384104218506136908919750473264449547975023952057055681347183322319536731546806105498369854063948951926625109703668104946717202684512357634904061775401526850873347796069719233107284699435148210519728817454581918094128030152130412131932168207913397017197015403591355578946633169200178154124323424424419929956717784181176520484558870754735843803940608330400561336951947370604943161094495488004112758481357130428902611707727272811674021744285943443764574916183219042104069213696456374825857353125869902550366183081844505610353330594818799916015723260864585285975562915127785600683243573928179717859355957732908428016138246872500630149571477929845531890674722491789139139211127568827614862125465850069474527545513417260711765772338532724021719072175922279819069149789802757705610371105230273201819339228793104465200651461558824225648951134513009126012629548769284540968304381085987770735058634627205043853139983972104788487169200480315093265777081841313645226128113476256477951237993508106007421853022655582493991427710865572367373931284050475290959706778786859681705433854362676741874896005940598245360781057728859133528466385049718909030287632494456925250277926440758386863958348037183129721425311093728747965657279025931805811765917847136809638275278715596306860965574505537763873415919326806386520810411687152999033412762855126636290035691122922732081152106155680350169995088825700226083059995124612903886216565420278749455826781665586414595543350551196819519567502389191358375520473885855050957850026549434661319857042347929175655029365426944673474327668833918397122050349363554392746409355393590469931170765801397187640932021738119024299687572715250500844949298612876402080618606550838030416789789429143692055955031211402520391400517703472192180513004841917291022022851265709104345863540892407326122835928768731982790185156338010108437942694009685826346947619877286320303208185157435024085313730577133777329649497266973432653597300011120479209515295184424054487212476656897234222635701958987927018044217645400847664662605163607481661871371146650249332319838825271510600411579438854786122763774065168013674555813611182053340106182044833530042023892172802596970594468085266598437869273268482531202893858875672878425279595569581723300953112659178055936582391783817324555066944254976928937919387295514375095392094824823862392072891721900463739882998096386120918236457226761839553390939810304337818741973401779745532779051183730400353577081994073214076086172800239316300575231120050085210996938527418929408081220045683708196000495765689334307423571215307474634147664434449195416460474343301923085864962466564275298661734714927987685747066883137518910860454429738392685531494129657315503009280986472241052761954548485690246971416374518578166611232726614390327500239193977030550886213733267554604629978361139055813841713529650131847517372909666411014355959403561656124745593511912426765569590553429150043078208156243654887016797674795709239760063929366736646231638145295990704423474605898991405948869831381269428831065231494804960895902861673361446779013255497984311357281291910540881055385969779519398839068027875316357536979401436147021901665733088557355868024570416542713255897570129957843900009310814372287243278229159821553183388367860393952169329415236188182351061982294370350648007644040667619759204942032830692694758861318713234669530370190853848224261513165434416526035929554403643715874067724399218716077694332788336349220864393701230165822010846259051134270563742004842213365642747048481870116113524753873131076755007506540828680507679022647618153418291832282473092004937001370138604709517011948530978171696144532966226411678104642546754732832092700214387693584856934102504762097473626707944274707831840578146041504757031828530172789382367557149302872244876900042377797169054678876842821803260481379422705423112337074924859595542023567208944755626746580934682918995339411127898311026085664108829969760967317284934630512938641505617210508714588693589302484041460589956697016368824763888834165032917616275294949071755547890071203006747846900814931579034050611134819649747701874044994874221202135000749081052735092812650167159278619807825967939820487749144514886909315485294455769816082590116606375455409417716670767832769963489246496597716706842646394544484908688868917161849310288547613350065833747693249116641083267105799388607921331549237355927248396408845746450059641974883469182919545199099643872780201343760109220443264840851423107888565877368545788381997531993280044425514267749805572616002070901382851558764674372281960608694570480514199014881919764483462302236604260017695128391309414066843409833279180620680176658459793604228348483596135955945287621769686738458635373920784438717769515505276750791063836136274653899871716241426260345457132991952272412485466872499938402276374127624880006739986978977991719618130086460550598378977220273089400015387229205775105723835532602843370746147824358035408614941997180216103637439389713240438517368309438333535919963692722929605920998434219034148651116972584202092982939824660657201092654146624143474542543413193178750588897732703876631049533212207969924704590801276174544614132132162585924159516486367762524635743287625875716507807047792291163250986130601983189289569223134627354893164792681942402235527233790692236884368950181348856957612414954084682449472773593065016474451783651098214013692927663031118515068566001865923712309672142765824746252755953888519755285883211432508930777361121283953461993199224104403053643069705901387568659828831255424032199547363575817388439734792923880402874789315592921834916431561705221574670885272265500058774188239565211740328300272916206655523752542163572248627666306729263752510492470029451645351116419807077686372287576591730119604412342278470189363966807063491520324541170453754309963518489520701452670450958865927450410963366458212933848559768701223815979469614031548767939977224893486710093099164148172300049660657842775731295668006068456003780448146468468354234931685688036440723072887817793576267693068019927468982594102708073240444772711001534033214858474639432215982800093601232146282308399078405804231076822571120485417985530910529874508767632729620054859931427700188502207919491617735781322823844627514543473262656516797848028339163505771521325227697249966020838373708301273245639204776028985681030792602260620342642711114389645994393671792838660899721274972433192271865622088469570533076563254655944700976167473382021796754420319981738813795124468902575779809038010715976674934730561343000046899334540180637806695243464852118716410956360911271744574125677470001140014367839112611895003059726751647464629263429912038840977836563275936032665130102320918601216006208981794492724741512245080325700280667387563717020303876482378930256552517112131864223064454211568827846049355131487392861203942447518595245037903196191919984832978443504792218654990488817415939649404354691881076142572131958662998283968001890085837556995693157196423893224338131136616425841344816974074383598066206568842937057694761122002044821375284297481195947499098198321932659591273837026505230890748929428445819530814121684277984817766938604165238095830595653885058352481489409976340038194369121865349260647920187893270107734362731106322616804661290021881382630792025007479337435033756570803907588574356185471875043594698922098475452544158996744497869784785948426631621487140158158626857905188029556172600835559619130328647907447507771239463744487523484544039793875475750375886991500040240435204853885527540160897906498027196963829707699871587484909571299700741447753775480492826376974974416508534393394123847263495083785215082025661869142259956231150993527548895101366017462876336311973197698902650030346444754670347544901173571103992416346743158665730893373805619275573873741126398214012981681272750113600878060174943393711827030171802072523153888765204453920619416787298760090454697633161220721878680211284208058455459593549936458863071821462539449963897001893144122167579329022642106482078639662059195923853083850690510693043306797503153119756827225006405845668820460369360423474110599121772891877026560342306928359313611565280997343838333119866838895375765208912586491189046511528633290927589320020280130369954198637964998552073959727261938461440534970245012377121606577729200682352254110245425103131959371431660093282047601617577524315609004293507918173322455425277953823861465639024217040475461400491832131486224896826334269684956612300464685882911561957794061404986501992956817455140129784637361065398992711050422571557412586840450166625260734701747013518750123791415483415680982013969378189848025657840962212739934756870805239857442225721368880198791894134965568652953895199527343286060582664912516174381245016962699181626873125790387925908140348480271796322999160969590754924094107605319405619870079758526428685447002113696682493377992923283664917306692744334733985396949266660878864401772012976702617739664946666311467009534463079955171288996537000239352096069730458901148567858240069538293709523294151722402943496907463135332176211098369203354721095750687333400129192371802398076660436277649287049671755399181389915076554316124716010310860536409261660579712787168125596866572151002921367511192109616463400742127013681995839083602536876192198117546242793301100560821038874565830384458366167045668184108618291074408300651323503001989335430764196613486902454273498396450116616615078234551589697471539987228929779458070005578111970311422869910218170020243704967233863384409940819577706480486736480439155078901003139248122550229545073322359080752600285810151984730703839113563790131159541066784767686560092224032909780356816024371074444353422171732025817170071418872230499071045978574877959126372282864577999899121706745358895679040020653662403831674457541809252263362409084419019223440684296080001518164094318286691910887359990335958465086128648943877321150380110247400365650961173369785313656312631111768004299749203555089385063979816188151872621547509078340150913191626877978261282842087991649538082493140377662028754038714451354044008501864880097206775187346160735404004762779806559101415827950617991350554476214178697961215081027840026087613993720491833020310059566826460945140828520090262395460822460774577232338482127838645292492449619746591807803776002527972818400691808384731983054970224889134666560624035093720162348252747822064967547397895730756550421311547640910153502513917936548500558575397409153498259506464755302294544924431735754961367083548837978712527699234867861598128183024506980104747589181221634598699322321561658514175404183966478282016442492885389624969709841702618426278283775882389929700039028154101069039094047845719254453392447674860318301835102290551675523476278414569144223468297262189897500028120525355166013004502632311131192768969827673950106906435307954127897146513243953302274515190738011178911271105523466740616423787078781788589634629869189960966787348842476144889373246624025638132942598254096372188416141475905466639526155970574487359623341617311855039211980126382718331606712028645399720969810756581809537796790300128721666001392855998570409160671792609168717356550905931341994079000092626001574901636479330931858601991131274348576164790454455776213513765394628459454516635199460544161171168609847866939431572974336101176080047159332096395099475944810428657282782586252091808130466657513287279430826206026480626071909859582800723332618938330674049495143762777079093678022717502753882535820940108824449587474339288960033788452852658882391813232764585389010392785943279818626916857639750406102947740678947551026244448656434174400532579394176559161342206072090407554222704724426210478328083884314584639240804649112470661516335310369039681554794772050693713797299730708896998659587104853098923438573991116441270048376098159784355851303506448788174572178054822211970279041677524243595455415901462828175834053111939322028769503143216437793592946706199709394877780476788666960416492730198589036868861404458842843552796715451662651959870184597372064657837730162431125413784468301322708644681619986622286106310236236353988462116681521643396809325502189338750478610111373592805771846333887835005436802550931375915189376227056337833984123790508115860509840148187873083799071582369024606457980529240573416808824370392242582202736888306644104408690635302098680553938399372589614677716657724081266319390606676233886049212473427759706092191732749308864143313052263765029720543898516024725746831051148836100546131637477286451410438020854505493903075762671990534882912539918510188733827194181656582889639359217287698622410231326054462867733188909446891343502932651906834985974277855818968206453472986374433216075494141093876936088745811318151495068053222860468901674392885451584244726179603471365135788583214546800020578777733895486519221318262482076940388909231699959708431690940797830872590851494014592263407014804072500246754583929128400701036660290788558327936591533490256600414202742245918840132028867609096694085040656865395616400639059847691641944754441893640832846030772792797082121969618659325819247056999469233470763164957642293788639044130085101899528169510563189470280760177856797058408930283370880659021954498271894293570248909320336978350744652097478160826994194647484083455816890532166068674290897239523882839229350919759634024831282119195549192686063542054311713890988420654442245592521286812015603932230208318727474216162687030001599461400961092636860981998400826740623812371858150040284318599045914646208037177546013613218705722429553720476276417783214195099290140368751867054940046142371477744242787963441080747737434722551278519743654708067627541017397230908743927710834975105577748382904811765682707039212422423610324880022039854827162686993897176790913522298084906252613151482220487344937267511480003309270270800897490031050450451875991664083653030572103927819606654673228268698383698297077185487082821955306607285751590438588417969154371341404555423731379043183974341699939109159639353038163388573263818843856428946166362767822509110554084868456379847171548785376244173728146835167338578392617991836546181041800439915787442077020228523337155533101306483748905878958715846403392412685456518593082222537578620660152257403675424310163690040458686668070886675099290959159036682998371577295703072305378580139633098434128991562315720419354327114753838145405949157943797779206988782760392384204849357124569240410873923267437692734099112223286839674014574490516967888813531558015562399293402584118819840803039226763017627009500058282061810694023505005827506455954020026916738091448262619613832214648994320193136979510902444402900085298065283664348870962817829757687743592079948231786043229704505358084437111127724811868766130463075941328347128158986578452183696448690599881623493450359158994387550688911768769121722519370891202849502061037228331152942843221014170146515343531174143606155510561436952044920878647036597660252272727324377100853312525463082306695935148155310712134101880127640827626108996123054319467060316744725220417720230849782268888778527365418263264828803026458264474958130330266271166147579369053534682161110081128284868533668754329974811468668360206979406853570472840573144210109636791454690902575175495557056642762751435427442843531231749864335468181616670253117263148444114980396093798672777768935238245759563290145414629236920078966380418663066825458773876174080341813554154834744156107795228969566528279440016222870691211832683473374733845716746866321781031224585840546334690207428483408252579690641066406966512550319905931870962138113153845412304141550437594132462745661056333963008441422783304743631397422341794248590442061036116456939440685589889861888898428788469157340491561839585118817536421305791716838866093455005258132054213516015634032838413572623939722755733185135512273778711118047917530701439980614694138146649950885309750730899252634005845287638027446151545723356451603178939063486648258057094259306219297661314410894110557460036204066105404532149974108888968240567091064875805594088177293273143975054316730832529226861181095087889742219987468540921130548622768693126808870550723404848260150928296284607101391267069438476953884423059485808910988236686057434054041249791396007216516160370636039646918548195146118218050256304554932776770201597780175240362061058990027380783072563928960864323208380891777367410968317328927860998675777607874937612086499613859534737384057081867444145729603464208150490608968694728357459553985896464099581111444463494225996950520957108548813035026583737196169053554343113656529325340018788590712950371669606506493342351530984033166858702096713923099720212437363258850759443735032297849321790538334297561732186996441971502793109647984916997761080813922366287775278189071777408479824069174710824824694869468290554736417604330669757271792362930764178380782735943928182342837332290053635134941418918531769494176756126982564968600756156100814273224671732782252990089031515205391407948221788563518109018183119469962903405593580602772414587763328190985189933764616703255946192243150493694261227445562521217515305964571474066197044953874683565233437494495433209101867954988681124274970057047184304872909535309772196801500448586661583223777294833820102660059534710700523227666482927066448432842620072273784104937885187717508763228051159018704262096876639351148508539759418933087987310692440164317345958455917844188532144286266732913784521507294053569160016935588147872162704801385738261218490582914059569356020702269922648520474099315052553658934612103617037182638722716339514894704609619042328007032188593247881516891428615831573052161107315120843776305480427395138716115749454556560839603301507081976842134148486876568270150508701510106170187039917722019020798762325966656119773606213341652458809127950465040472431965613918126191347129178389245511265348612644900091759503667065509775762406356057890666749269132507601563772945996931703417976725884775853641207729374808109112347578959118602848929112615552634752286877969273686634982966653835251558662543170687633043831418163105741372982552425765794589164608129345229758183084567590338959345545813066868050356353798313073013243825679884768054033697227473665265157857868546975963852579262551548318790387798682991497549044672605157294316251306272019443271091691866573565287089659631721491369472703853716969939092155032923275137625948192706922084740474301259538742279857829397731363066639457534231291250034360413075954793511551433254743508902945847759344174536429977105837993620984993396041663472911191755023379003703810767483397345054744029317245822534748466809237851128046773241037779529275582438339018080146142083093465493127866119972641146995988194868404690325611062469072027739711783082248584833953297350985494334237907229874036336319786093181647591874842363438236991841734866798059607083872866001777293889850535943929651987326477572371777731632556492971469848608139664631664804780316701255573614538900478491220496453231809776175199679276431404134544728945093378069757725128931977013009511069203233741528315042474729157531277827823470711496031377087482538872826302620473538822442763027043668379283627053683750127466130722833074166135227377455559307636398894609041063183054731026499427986773113511467238220079112240676911832146922077781066106028826713473582859613041852449713412306045954324856648996038212046710602490299622384569859454265821674940699772583650017129332438833845874453033401642024301981319388304952097128756127516799958979573181788247643660920512723469790121858752685778395114510811399939766943433122534645878821792766690831467852512147884672980338605506616044390100857763664787404199572756404321708725696899115025418145167533136791072580335858427472903118790391567154429430757574667374881657193370574063945755412758800457700008399868865835865360394881666855094553812598750787264704982704418115323650468727451817439398886766618997194126697222902042851682105844747510506362767347841610101989170699038407227925358933002690776903099830179802314944513547391517244843115561092309609613112971166199751642552440807153852982157607881275318024061218556402483705939814910210405126068595551849058293037803060032618062389139877561661569446903820842702597926573446037637642852642279373575709950463187683012413577400522522951930430892116502555136356513466462948817803581109362465200253100443712277924401628848400892785415980856940430371429016748042872982256961187212449987344369047706639262245657388424834445565418843012552620981120463715241521352729744663970863353971476120622683380845333370035802977312473258039063106734180140319482480097441547455420308317171420532075499599905560567045180950141834025845851500596787859587409007018699729307547520739218802211810298918763166243449399320447947852671438230382380096022907048614300348216279087195477501533681718520029185135837003726356980518240506613459335917712029075047808929443148562481177386465812152769447095042475193275028550909961861355084965373521994809071968802468740552109311557994931858805631695890905120849453316389939132709335586795875088520619542268683823809630277179979068789193294297319957810056135112487986300776569998568010936198238543680643894581924255056669468253273122627406683134783407339156822096207867366631025223729341098985996129589693422095733265853950854794214686238586886747883743565642592519668542666157936901728208007017854231842832838214864499800570206575778934042545378995554081155616687640471917559738005255526267594382749798838441361601915425310051864700037366681596913280854999867184033660945708669320637702784588468037249314272735098690370729730780362713833079212429597261568336751781868795995120810471180614262103063208830762621327079669784084955800631996343944442311069012059945490549189040949338870631786514852633403627230239763115792961131156409019076055620469315580607841011252239764704427594265958749132883889354451967548309386019215545841338823249711215304446814404480799284095787215088665074042212401376158358372968247492624056039201923226926385365082629611460630064370920190391995723266942246621496591149124948508385033851397770485714354526798159820263950395513653230172613118468331548299977610282556621300700947062033811186271003547883234717308879846095520817676878339398873141693191979344844732714316738898776019375399114146771080099457225487591913647701841109722393762954047373782362239174063814153463949068844288588818641128528582183222716721518159223143419927784433524718516758029159587338834680823001866092071791418706378184458418012157925283072970462722769190843390265339544935591169241342983720906280230712216802543262871473388331212501734706412578870467039655451575779464231437489453174655350018035623790165854474483559383764091927529794729108527506630405510166736135333090123113603387901105616455035884628745055407020753695104987839146754351729006855615142935146825759288864834271384178377293725645321224172580183145596327624040885086854324911556561028193691136295332794829568862191332650805796991534208759375242797491439047788937916534142394265368107348989351926028048404562307732804198571612218597013372228547930944211820021743287676604468236751238110468465724934283974062634728332631005123150972181669568081483440712254458123221361420325192357332895305069916414476528610336465058574725791776156085595545988226189258107278521385685817525028524018050408826507578766323027242630022937257209923757995219539730765717069466892909686303972359762038131564954138935214963821116742279476600847298780197909136288101137191539298969147369242744161518915941529534208652107739864243089791699559425865029989354295364571571548199614203656864633479397809712667150974967155360114676054406952234045759192022297449988777997087888535631238310838261775899529009137344165172246232961560910913333805226224725585926709145706984450191877187714329415229755659080453522705155927484466847968673111270452684084729930337759096223119741705802047949942151366176426028336896556737468655211427013119472881974991328080678041618981261202231999478951177240218147412322663522914083990329848715307124738348788891099309061040879600319542578307719933826683936071315246383623737067355454257208920124172643936379890990872486235201138125184531780917964093148077504936681835311606058901435270897820214687007935074479556987488782409927526657925005301808849066249345755338503502628608207569125130705241604818243784220593888427460830316689938435583768051474449522854786565818699429852611042252767676029156288491108559242011947512254024413392914102597850574417826897734132693167324472949583141544522085705502795222389849329749923230581200276379864532455769117164186275074702236331943651597522851026018682368552916546733911946651287640155131527682910224093033990034750577073768141965458284655556708000121704943589776303242126399488607238660778927320452532379864547645249688398354259924395472917303442864477364875171571374037710538218452692825005176199140775730469165351828019609351456522782754684411560020910930219541235488806682882540601653359642237897828985408079531714925320137933163147833064436281679222325792901583786972344334696382287252881080148695459560457006871319702066807611363447872127658670037871447827284237953635492675019779603969856818177997357247518508836504131197996265959722770606000013071256525276370386063409284508352206581576276570274499031102023510441145502167707119224491213176515297525353279209064343694994662048868141232165989458583305514023526289529910460937190607748362828401784588827000114740005257297321130275697076405585357575848398652172584862002576395442999660835545577480299568543353837001079633520438040634752155012435921114004604598599882596453721024682497412678381495091702395322524158944707210749555746769343667832821342140612978764264172521737431490668776267306369740995585870108156780650820756677715446721770027473453751944669607858162826490788163580689873789978543849731703555640874310139637821738363162499247276922940561435673360538559592220446832980073639486622579285193728813400768970660268996145769657557218436764046325090250044728198352824601932317919032162960990433902852917463170128769692354546320585606656902598328316643036453594729275539439477681154727466036978343910417888604889604644119224032184658097711927800698199005517084578482643081953363792082326527324195199085334975466901359511624469142757786403850271669033726883963561119930975573473762929906622238856269890857597251837430534440037526965978235726132246557152576207208319126138833533757548800457275649227548776813504465481062201315245140127178763395908608697194523562177432021798502159207759320976729736687001425736722876506990966600023517962920147316383058841667268878153249704241067649630797666374137929256628824641349386795007670467226053690012348476377011098806804304484502880167469618952611843323246871799771236700084795388670748759145071101882605722070629654678180882525392577402735939274441566786329950387071593198420285756201924311959189244474564358129834316786100690383219996738738964929677874249328492899822377571097310199152691970631125766460822916990589214803637891360128941155422835153932014821002193421725775789180444031900439763554905112967551325307128756804756367689543414759533078283658841301486773767985672588181959365973176118667883784221473074832639733086616101734216277189807669071115566516107566001861517475634358301602146856736944987161153222129803760921658469558135593568782638548342685324484671662603194316004193718268719855982006767997054290422002397774666843429487132800928091331107903630245895068735459477532511930227408791894553337829130644897958922989764305188340191166091528542509373315570627624491246822436400891955382496099864936287534084104494710980863662581516790415489663398740275808365537469099994475101702648921227716167102584762251593169549710428329794764952564243835784002389294406164800255924349006665803348129733799121255734564723621964368778972464855375522339194484118699777625965496021496543932936777184961526021556470203811597659843462904427937249981528720134844495329169584891142470824762587473045047842058917425273478460083131575376583142519879754383936441316745678561281029127878651266626107348373257341195276366850343317106362872374108644569187094634233062963012555255543031912845568145301427244666471847704421642934255907954143754980493325143808216659631513457411023637863242269593180872341139222462624030306573172709165320158049695286496744683457350395277994034670651683414337424111517919733666909981871082756231949202086869703819360291639519191816351791773163902849917143140492757644931439124952167439736860057193189611193407546540050904621598203281948194737911360851431826989931089375394302705054838780895738226054261040387724750741338533817061349676648386860523661012585079743440128053960598252079485887537462846266238520324460283970071086562328802727352755562312901519488509358248620953236830873624043061521807902912193821947695931631902175989741453533287170589178312266998971620467279376778982579008380152898913925283008927389345724652487694329261669283867381725590879901780502387277907294261027883073225547049796061659206002853634271688370868797091529669989897792180663001273994421768735209492188370229458673027558303411263826363418891883675199756819521065152774364556625526782615256732937523803959572553804967873041691591509440270057940222711070532198447885036096515462272883765008895047558722227830581563667440629123581342289509622099551232875044243490105125993935909492734186193783643691930347609153634153997964832647864610901273992075133825364014543067906172289032909492353474582563358981939430356791851328202145430433218562762776088131602535111937180516807553758518572099970425764198014559104697222253110565109768283253669390971219325517721531385376708294387864498764867375096779716496778760217765648686086956373686272587801557488775090772526799681868275751430160617036275508869167886178044630913791769138567936134592387671160013190029616500668746001353409119635839092445530903759690566360038843383948147449213051520788459901897383179244904066434774237356274060054332887315885883079504030843800725112663459255167932831883210622460144010433131212693897255653773489867353208174184735457000415633850474587686436331910289768535691600642577993435417222048445605344998322864006259227652058379256177635293984676225788136184933660802547111718301432928787088693147214410760456849243689623231109877309683543686416204451811759389315041293836813817131290993093326309610671539973666197477545037458712254406449296115917667417174574231239451428300218968211732887348293268840300052032269874709918012841197951278381764348932820598731354371841156303563282131850921279996093340047179064276102217535894261921532254970864477634912332863885996052992694525535306055198751347035113299133047347018080094540394253569543163102832961614309410296362549486236873511068500024754974361849145630638896115027192842831312644798411012149375403826449227868935665889055075162772927246036341371040208955322924457874961532013018956456876631653144948979727708297357979471496402232802711805702316582023199156076390923778710650852934587911240106624189405132088019194380031953438936131827581218162985820280694002514851785741352464263520576589282413672316351418476185870454245025498528413056465044439880203234768765944252715818897224686235158856254239129757370888074953999435605596295419664964272385395181561911533122181081272500214384795782195077455295660985005388984646005609520587785234290727983529548316458721785502061613532019757506111181436970674861519019267638394686071309935965135631861016629091852908760811010492087425533964424558307514982190761816575408613334748768011873419048066809392971967426442566114321783183341462001667622078362668238613266744983088874474753734037396820532516604774364422539260615363120717804907023382145719214825059206246269094687911689829447228916682498345158126653945269750961970899579945254634258677862860725750210677318246072922118232213941159611704927675305659430216372969785064046203965272878905735063774517090968686230634692310815187719602121543924226846142355179624969099925186098041996868667873626910011166224874026116513729663884956852789424524291244107461870764494676973579363288593023210675631597454035574782736687743003720357084197782388445122499044881906709984608554544097094156121804896859635567177461783861150168571476829156213299686912164346627420308412959153645476219508078260343055558066103309813513700795894984022321315053740476130076030932302623487642425101141845675568540681196544217230295601028397672526667181344125488215508466197499208807146885031753526260519949689207285768865478721199656642495156987654885633732649118919078810639996399273124012008393103597366239010366012478568739508656153226359033883932725544182833768271525406555205670283165956051776885271440817698252803868692966400870100306217159929454513614027225472899534938389662325131250235609150148264659280143024428365525026987976192449614868127936848615994802163056636838444825101474345161386965623923720051015280707603880140944381698203021808470587527191264113789713992634291628146793530165830104668665799583499856977638034782695874627791544095709800736953829719601696503233820578924444927999431299389831174945122352994247553327114389478075571593729994124341252639864701495967500373852302000738167649608318995262682510217016241312744879675631643032419909044662177221066997239083905673296108957103029377592220186899168454189483369418777634234935237697560610267752646380296754620578934997164599800587745233688028597622572593478733442931534862538389520569633655961453310711127875894031871896055409436703984555969758336607400978872244245135324522720230978694930858638316656228595584826514622205179968196089344228322531038477442687070428677506349285827641068117509843244558427149074170862187175898482460036677654925157726580019294469504533362417025035049757136928920090605932546415543069746938688314629037757616967410919722353956834157650742926442313995116658476811126913012293424818482519710288230275167559972730065705269378150446490104900081576857073767238176628876671371202526157616899045309256535838293544596674779861917334123807576933670595109261886050565951532763789216463424827374623794251935756766565094994249502494094191474098861066102804048035523697448371299972194161344051412703606342519420555233704026977928640784632727559747109692301071473243265841286648140819510496555329370944154859770635784841960085266732514796804288918816307252223084458099985480677506082979307790292234904520058462822088083948158882866393389639189316702585183449576022646930688748666179988772948931659678942040122670981285956748088476989408085711639959667891688010609450859760211932825183694848738306203570820148521359543227188426323713337469586881276383076397767059140061946784490174175040396842391984179725024505372890436057162018663702635814026595629220933713901962705338365011413186737676219679446674702200493074780104402211306271631804653894028138993963139073297959761886133177983666155468722589291312953005100336785571986608927669189575864401493010480357623692031851246961834264567543156792047515942729250026901436515467035477837314862959622375429062081273437633233843318685346317616197713451636691110483296612650894010531204616328078429569643316104063326176111993165754839763830732477358314332274092482664862476664174330969676051820256194641175064068940255748327663319496573880882535328524679277807061001220091328666215816953860788813040883744447575944839110629974680046516847024745642493070889706131332560542779569636934496034257070849586935331367789178080458959189015276289892235567760590519872598229020547147896450472117336219654695162524457121819591582309575650654876014539987364337542641768989271149871417097702186135494982139804721978294472194243801870200544916487369040616115010306888038353649803733911662138877881111778025673830903695018836643058418803748484419563116005886932291628915174980262157023621395215664450713959659532064312666866448022050165618903975637525917187418910908445154841643944144234444092580747024494386927955528060403895997497137556338015383784651833944197313290028873465508904013607217937676759211375632075477980932010275496246356487042083713032183656385327428444021796993019318317283063459367691656433230627777178207642524224775138932452237852872437800068657109104206654286639182638347608932869862233448112598855775304538289513567789817264865954908018766565128310284352574982054689139835474404097150285507937287945781319223023095299251522524044756879789727721830144095745936146239361424708675928236998416451805573322342894006979812749925381643406638349934337766073271563575699439129441198363948696635085543702724137902705650684494527529590960999658094807318346896029696679394197942662447073976374413801703293850423039378208872037620673219536177557360044736643313500261358714810069373224381387390679320412215964284295945756500523605661691282825028479759760396643423244951148156793000535117530365323237330219837778260730308788495031476254244031027256571102036065433979874606515501060911052640107058996146252566635664931838956012992006725142729436221309022683390804073279686035747311397648882071039403376193729613976948079770243102587979260005403851136530797555038605978462821213225441020470499853037123640563870806588206553972695871484805689627045323783072200679729892766457162567817778716940399476993340096945738741790054510524283757743708273350148153769648868131733836675802065880502624625183649559438010802172206095064392759876570156230278438149781835120834108419526977822769456831649082623623972558748825988264769339406281010367504394666728016387185562188128595421075461112962299490658273666412459426612061731618894548567093869371093191415404002644562240467379829061151929317018387733398421493235642962298953522605936880881181485815732167019330712837065684820699494723322239856507303373533696215036895009970638138624814810240618887695093981634421898562904131537299425521769398131740305503187656708530648474811935662207107272257466880081464758913188133401169248017179409388026234604119352289380009306982727159001067200949393909720516589546054165856098018040837934304802861714249329385154214665248899997297714045188817570549365097789926631052606773800235567504405992784995284374326521433522463363830887277137981572368503453373962535839748175042254801318975349373417670244014148604470440247429847198560631276633242255137330108485028081750728369767649003383448238853343332563948658213968752608273397671266863851988746932675200180720927292762914820088172575734616869063663905215903265373836976197715410200845378137166276206786878667520786309208296740705179116452077520374629498138327815732933758965811994018321331916718609431764748661730120560630642214325523863951567020178885443278187368545710645660550170961661081527973718603569132185878118805449487471321024502487906436214891133515622256858951674886063296648951669384276632455705140588999344276596233104715776198684587878069392801435352853810990138899954183203625027694161617159550245556206716099392599921712449070320751774652777327530474900880343178886863788456569439148912846988741063756667403140707671970562181074259344156593770042092265236606409440736080904968084486144617893461067372702976207860900365427689291397546932685636267135248837730289004535771146827012188610096207410612865656059693655533804585528739196749195944509486356237230256210889795724095804942655592613961213998170511337982559065710144596658916759327758858602862744212044584507663930893929896457610870138410565435765819229680206039270782547243211389075209053860432926740560554688968517686806514146188892972368031468911865922550945705849399635044359773918597668625825813804746285766401366960426299258651260702719316860662428709791009120673830915867686052553516093160041126693828247930683057138235239548330655716008763424132177669186570395497109546106674374527172147910091980191400259248346634736989467502503967688270229571387315318845028778010368333777732528820641262046783982777123990847151917188898307861174181136331016724721345923228599898024487846005150458017215744483118197579532424727376959909354117689396636793879226349611020879405147858696426437730477547216531127473915393750095479180629990821404161976206771237976106362355454705280382310851437385519846144483598644875890797934822159029342589441912584852501098493831733620364447260073461569389333904732302823076560327149641533488886126317896259531791813746612940490921856434555881782521874864031991434764903143989880593922945492042224025771434727531104435401794535928694199588934174958923736146700277880495633504633117546625161555166754884065955271639722771312794421180883192046273795369760759050448793158434880991078427242542922301165078753054423109605322345206683345651073071775833771898194711814924449451973809649319062004051504167436627690844076964068038149474771903504024279036444099531283381516048851247674220013847624583411537653150092744221626963879977360207699838690516888013623578230330085948665131409033850600541290390982334438287620828620922836670570550729050013493603447957893833481786400905093112671159291319565835202596398071074875111630553841824904956227691421445783041578201460436481589981682248093893216696841193668869756358942433248716200004778449003131577948777136617258478799787463305059642183750552656883201239548402419187939894607010412770063540075738332618522991702521635112275846804309468032387032337585022278238940470271952344579983745198658745884950729041945817098644726548993093890975499357460897288331304255238043730067588273026577462948231764550561148655164114352747450168658673139550440433108328310686177701032964575694450753061074246337888306786775919706031582644194889233953470557321151333941574493827458648793324735531307665989495664818976163057816898788620825569390380698738094242567195578198017271383955945735403446161316277164139229635518760926681235815335361409934973487134424266099518016030959996460971909103946298561617662672082713874285103372152175220508252750937544197874076473028941302860694820797499262605266751301171869457542777302006973749621779635178564417093088481909447173509492495250379106945638470290075897028279294239530858402038962932213712346061084375403239898776768612579611376060431747122417703481885069096638173092295532235218660003479187560976963846287741571801766862213849559381945824474876424529934176138533783173477105819341850953940938348470899494438884946096305865366015651084056154382309482125264754473857494462008063127302198422921177267802209998198324486819639597199544922594183228675932607352763066429455981938430436685966968473600677864788273710061216531375976984874162634088729758747409170843770585032437734503306402433555440213743375167277399521714356667782134138112486622274622584540496438302884890512721353941955937897784199275650706393887241967390229156178613625834594693434767455401691561700600019945286436653780775417754821324812925882370873723023136301995716620498820906134258208340960634778394709519828627515917102350334405582936119623652352145078923675379839543088188278323492994631908881584046554585518226139144636144598990159835170756553512465351275294483027055346962646273916001019255762192508573470039523820732074555722850745834863181725281140894660723430445977662698662255905132210421229525695241052538358791422052325048660783770962955427822149626319931188959814964414396252403749901837683789766453850707801198558995486197233574891551478437164559680913385352519824533365730420457556528297656098221955382469340771941859626846756250557106460516761000506303301569967200925527005408640492112933489613763675422928332908692456219438543645419160722531457744586160007658352840006199978207636600717657474934190661961266306337105831554203877216451861407142000635996564762958765102186620638008692149390810335616134190604556819560475891571896739557696681797634093709604338448266346972867463906481123323982937771105671191973043678543446886974165418184088561773527891939037291982523626885033482251364998621622334000825927252181706220470397325071323687925041177201261538244290451848719266370702551070281041998703942859672516078715898563950534693461160626530179732526753967294333618650219932560870484207937534742011105320484385444932797626350809571780937140163476675817341825681277642609977623762126176991920429908728150527754582160931033943729317985789736612923920566766162905601326177308932583602058771057872185891078411670678091058111724754932287074301572444646387717047129959491095251225494329776493313319305628426739046244088751181407818647392862363727372598675236999776910413591372149029195022737033597256114091400745207172879491251315610301971619752371418270878910104457221275086154711934589894134672174703549961454128336661505646311796569011642440016953741942848565203275575455837857763606342369287090830492058157722727104124473244756847185253867814845146732637551978078257098659328698956960123463753154161168054985173159394791144763165978291062143709841058668843940089083625552697025834720834429011300771123338008841139846355986266468107868487930622352566848932096816251364141010647026974900991942088790574774063933309195809579034438915013861896788451079636691907029460331201678367815197792459644975754605919946055201273835593113607067027216099054463383931816685397582010882048195794724566011127536691451509847596860941899206298884763501237434355175406829293819649377096871016685190122783388877312820783698253012593167602274127552447956960705809864962999227397259844194161202173317828095539061636385950674099308856897552457056069176000799536410344995074316818900949507806899842122708059825931796819237200715751311838323105006898606065274481077743567283886054360755679895234209005244082322752033332319454062117413425276633900305799582009554791490875795757161886833099293592675012677173493465626222338203934458890178203864989568553365137261830369582544318435530405119831111540889942761423806019763091835017809545316793518014138203048851810951616263773566159467928798753659947501575502049741193576227918518927522042628084633205549243760345264041445584585625408390248603508803025766665478193924795289450357288605483053871543331673077277980675209494994726086568013285139896955103410218624925882931214420174184126983075815863829938600547081873168008475652291166294385304439956209354264856546593213570932133757784332014541706998412157332028131543249188360014898195014821336287749167418084375232154553085175364212897695328006998842743740571841920609878247859246132336959387241932748456723816359870132619300728768843198873265665081612829408114708923646063921612974269272624429609228796013867669612234414031933465905122221842100019339796231899987862601469063721549621680708386647522173526974555597932220908580371743147375076464572997714729209073732470942424745709706589743526191007675852315839833815897012234446797723552752504405597907265480262481955070562818345280281579589835665023298086613630112152421161814008120642937967636101416047272401285265158948494193952475588651887825961888656500884983372150371814433727358601197866335126173521160897907883442851404489632255119627435337164200084635758313257389500777228286850171074536555822152603622064194353279797141713551733218378506066345241685946697183379988701790036427399514119439763101691839366080637753232077160790476404447504133092514948357582813350733893094807474368456344801882768040037388108590117005101088798056996329003135153127229599820353876728777186612791767242630149109083792555586590823681197193906350047344215372953147564223032416671042751891144745035804689983910094552268562775871953046672503294652981236571759135781989668003906983497831811019368354297200624426127921397000827978488138653542017912660955099393555756035670189808926597768737534857746045808691118143509979070332590060236542218630415663697474299919692856543888522169014578995977139738243638796977203800652974605405482606938387045214399510266112474421087266489818917849535730676181693587794976640042103310720142833861399852950988469158565713487488625893235985346497335167484467805242591267916887125595493514128639587407308147429085674603838069736471524645590539559229719226142321024740684304214415100581142646666325689699204577123232498144175201756587173645089483795502568859631984266738680287537880181851179337578244165504178465053944732831574927799694450484244052106222403222929546669180916447236096137811193604191672483115015359326894986639890279965593611051464099016755259307358686019449534208051686298202574582288341740770911487760139221737007878047124633612708948458971071152251391139532435361075443190051008429813358730518507914171902051408383060579746765550121214771472049395527658481844945578281606178414346119621101712121816722868124148422229504413845936253659842312499069939332024420376680504676530028143089201851355221415749068137555188306784009236642849637109162615635012058477756279059359241389628073791596565409859146632784720790264790234834955576230138443045217912687081992955879013010568349377443705823658166485785022984108401879112973418747304049737046918247688396593688517002922153245156085750348496894577673704652563175960367146054600328506440779755529072889474781936473116722766754761419732059186410835259679096861198950689417550155157157210339668355618957350572070160889674176894830113028682760039436000526161176387302097157193223860553159712081570937726398732897521725371199796149631848867836057561398457826656767459249973134975254914141235801763993657651234598167745913118760076534359989462050689549227511975778387718223450162122263570081291509303340326259493307603735192036621245396137432220458831167154952746055120328743271514478470332689483249144980277919270149264130961509431884837633899303930088803005480466056523931111147149761194155119142076427451626820949238154821517827154796323500628897805021864121821847091856273838173412351165620946810713835900730346166041488270340182735811633650424000350735389252606349084012937107543468537789249385950557120847021628629323617893849992325356894675897709671731625001951997595280270212616936295843741996794776404515172936374172093211833913499813776545272289707585031187078650341415799131804204022621667368866220440123594427828125247338041131148506657541468160199979293431687553662457141153066223886532272155812626022205435704315691760942715216793748938488935110845886808676773660933381047337494951523877303279969834788608505149244971562862224741057307484872392637890421443397560795019233693798180483771204864379037252999426390679484269792093490521436202230035944426499202285427348440841467295185784025830590571127917924019549582164616214018308571676043068897105759114476449785317193131184186940958909075373123257191094771836036671976901614396800188161859476619671489448134984734043239884498600040078059352684406353097778348685964174219019603438598204718767822051968864373099969996582456289427909174453141238278681406473067437363584742183405763127346628463958999630011532278024656592548241568197911570840792817477206521745336169982094345576318468902206480024504562992713141804489671267819622357947551734646618510575405838813843900092526005041198378022956138598903719172425601237353018554412602471409342345884729922080088324464392197060437885191126726474508155651940628688756670693414215655043990438571359442605865092895785447526647419156968004795174951883486690582738515784333720375672834452286079656939897569685705134395974537213928792113987261851304916851502052785518552645778481822141069637192687982598273058401051985646919448417656517702862397450977025615734871286760647895253438377779360096340059343555948357230636234014159462587233260914939932281155707944519858539421401014651975365820019418078318643016293310046879619136520284726102129053813436889715837853287558209044016639086358430483398523175118949922920233771913050877436212944929678598221288936501007660191126416046926594829853475521543435708533616419499572193269501492137995089254908553047288001914516663298053306465316094081558637781611994097022670341900933364604449143766734072471074645054490065493066455939442219671116039821131554061832126921782003328439677846154621809600124770365798249783932997554572966301894884266301714398266638903316189951732475738000495020889016261785863973509275986956658227889845231813163345585509804827687257072500014861126792334376216781082677947813179876998179542672906518135071728342148002502225006769886619947427181732442152748614467777728471700979725250612715378503028960904169042529509708005444746448290752700996647438167632026213018661872341844627889971537045325431264340682926502006942635023937295503282886365600782276845484230187325210960352556251316907640037809567688164866239521544617198823511427276142427990225629978848301024606885713939691189492195247400933492510552413631082039537752666244473887894383421972026533648661509794923385557118428697811145455094362198734515685625109196666556383403783002272833353096977703607611211257034288447215239642814591376184917929109323516665189102424787894250280479021851520114594425067759211190631597361511076331776096028691011405610480527874538609652308012962399151609665588593499491355877502341084920575438187902663421868150878382861222640138097040141391132553987173107604124903305379777571302402412809607708265702531587151113392422794338201995345152144245603637608678527300296105440730482053970195363238662190639196465151899488046465932116500599111556557448729244010255314849500700626826827794014664430129428453779182201683342480484040391248760766599215656007656870248095045110822813797173465711340312693202938358969488859132379671451152852922039309929513334368771028874200231385052375161632975174802067673815328177287584175926858173239270691338003975646012107736253247327993813178728437816954399769638636849846306024063950433532783415685372426898646442389341380396951556087209334424983813407480326580588470171153582232867979940163066949250335273084406330628218954636616380414504016115868431321864855705674318145627087374511396363822107976596670694169822427307027964589695749129653590710733344045763715286709470800023815326648489023373270652170514650511735752152442149614709301036960592633848898845810204953486596225901412649893141101405439825569280051153280445406395419469644662103285548427872834478387611948268230657791500607762863932847433320355504520752138194880243070346373753266695971519693837557940517946195418848269601967124479526117071273669062225894485309928679877757328387971380839654023557826240093174003887545940514789446850018317815474181544817937972244164727832787820319681241319916405742904415017115357543191215423709744046696929668372840361193368650845921982254315161415217748275098463250180126439095068408305566278581596961001114005157325504352936160783103308597786587599401045126480056597273037105719460653035297430476629966048727342945218474865617558708210310119073279168110407538803106637643737543878167892859693805565969606524088720834880837553536926333789104426110057553912084745429999264363831132557743685418056964765754003931953111800137794982390514751360998336124911057724303877472678884858613902995995451059125359897319180793098133506175382932779728416671734664534105022122871408076504157905122231976467515143969586846815347977551671802007039167097144226189419741659351007731738021601899447224453020362525456507963775663107839978920815620329984731565920965339284928182585606766716863576876367362861590175389231927046919278679732688853753498482159743734059665197364868869496845639041972106331457904250323634172512478029385771581275867149766917797189015220854738730895694500262929006808729812717339023994376355013997013941288026733176387421970754999745065784749369355837952107343569956647671072564301422711305820537890792976080146110764697292479270542841192132585001220641783136518353326015434031519386327749842305233861621649367982132724087214863758045042223953095392884207375678055174396459188469036230205382807449763005569028382111449038801222678548471264149269089190638864618966815049282492708218516923786455227081238908277584232676422600629241141710372851953237611623055000257775541810454312649460316883290852114704854154946835962174757019201498740531766064683676296118371085085640159260368232748808361781158696196740178440898351558600033119609303246110950028538769141773551881253722037020839372439935181652295928935463785693962741560062438643518969251085936942298530428129327249947599289618260133148030785022264663648857722259999028750560060891379093021619399410169577681671974581460948907447690687896332483096482948608855152313716105990113788629347086141659949180595355184792598584741947081953011874586363184904010393316157018827505351793230208406790374752610726041428186395987236741647112248075130596444196692298496397487939147225340540226657924213377830310635808752136380625263452028049834859453443917598053435098082597836546684788247952774471597152030845640682716462055572648384384232592210286517753846123052711456393771985478945008412071383546290707558106880162125483781150051229361825789395654183962708938453702707019475989718904291490868372516442414638091724860129145397681234690018639685337041787457064676065949089047825822268421663284735568840592826364693684180960997347875726043602290279663045476638362661572333883550166241166081866855776012233885296879480851432797193349477881250692509556207787491798340161272878031632943860260327886201441513605781742604477097600744248066568646676488800795275051390663896724150982429133546886630950931807321612816401697501369744675191089548887685063438159054302644419130326647763198557388526164650793707274817963312699124181218137750248270512485762888309208419962872338113999639891117494794689108778685166533083632579514945462733301538576463735430964495813756361976455740730338177875760200688672119124815735486754906519850807658125122400554824699387515687611211433744322898177835880723775916639424019242163495030819596539760516810288405038489468176630570122123730978886889465878213264214480837903173809159610598281994744658258560178303977204844020630638354501002728422796669158026939545077204928162886903178614328412714504088366646455160590743545918679680476148229520458353397136042308948878826659158090785244140592049902188641081389096133865505018237099078646710995539201861164061948631704016932330133816434835771494751388332522232183406204320267122553209936770683137299288476995189068907783744784497095362234749680172547879120612178942013706578965480507195164376592548702793427536684676910074748756093096236377177562735111193105397260785105954796892288298118312636661432975731113232477077513450437837894555158516113179838470465464835315430855050581245454526667521746589099918790537824481158228831721577128508803782312652797807052940693441072546469493349821681069750567071661725162053778149111603613973793963176249071397416433739297304627699619136030009767387706867877030952628844254819938975254140988081814969097526630442734986091181069525171587909605338078375699912161042931249336552295309549224186925600936188171344327993411708735454947908464559357947604839442637144389833482369842096171467746488105331644341725677288943479813367930954561130528531141977592694635939702358410803419435482841738870717908877823165612590592184792291806396830239979107991247248904210832216378858787456281502386375137252076036285576480872606958359058957727539488716077416351920924946216152520082647649646633559761743252407416387932167225108249368316464574185682966770687945960921483380710107002735420105649085636226586259847115656037637551963503074597571146329246723590177477619125855247624106455382301455183577218450898283298168025645090873047493413320774704763145564800636504259351125931842131813924518524899633444516311168807246499577394408499420945523622468671624753995258252547062843724638198648973539365207879545780609113901897357164730764064517152178906491492962142724965466248240029498932985675334345499029921143875803329336705161573132639305581693939836922265441193041863539687702770881171450579245076129861076177796554724326100101287601049084399549116395033394683244048074741548283858178631635456055905932770980987207980200612244090444510612404602372528756250562896567778851076931077802461418377296053657004159493533829888153753280575417755351041717447865979003604004357369606557179379704474199449436182591924200619171182994609856698245877107414898396560719719976872130279638776097889404557180041015510409575591053022664946698799238238413994502354819921823641359771286771612946992180220208691822302770783380037503778795663188953948642362789400219209481564311017027493116629149300500259130851730657403145141106764001853705294766857167340666614758130261995848548803200295670821431067238216233470938167290760120031010079105459370784821213787687278450011040515181539078502157591156310671569275150895750542923266013878457902233313829110358934240508699205648486723106469508015968351314120772299199517980940354274450066585627683872436755589576034436211003194959177205822604069514006899234106390182731429540141704294467044461529583026396346568848386983857333899473912521890150947624714426600086481198978660393037439794139391869779890705749762876547758883433759332655622109868998630632301965873666342317791140506504069935773485549960007617187338848331966434139956866486786279733445209517946343568553773855602126792908534617654306360356876904610648036150198722814719677306693117484330255588282446765847471569089904044271888278968018504162046094871769578837143930754830991831166751503741290500780212860449544206285001533440383894505238454118249071013961835719941728762895094094919662404173454283599204897650166942714624587943793992591645027277115491683968546283067749205480201041856573312889250363484777362868262020276162630549473592057523488390983656512466369604128536166411746005304192948035596670371595029780519143284161877759657809489276844766643060064349618862970967638962022729108334437798627703076375617265503498590416276601959392585617535982556999433838654811064901585047248146398122998869743816616129598131362093217263022385941893886369542657016762089360745747514640920271059340203391146323725039537587528549500472762300366432986587837849309942211942765965471319331466661043366861368381279294477187659368582300390851849674382778628157170812288594715741968259730171559281258275283844732838260342363878994547568399926093846069058377444033157117905164354516440225167088323224697100444183093887147000745253164063034812037918749385308879046373165344884904715914336100049978699584062176220691128893505176421858154816683923295802567261128299612087322149084967450763206573929931131435551913024994510617475012366595658258846631342142514450862247852713663683281615616789391812047065479971216484937627892185604434690656525539847529417085962863798695766446135910238446094485801177971905864273106512711085973202939548813199027353194582720981310525074807050342243597247569273928782250677797044033006099333051805299670863072222421317894652776030376554578757877751465391442817857204324163559333336575818158092575049311637418428750999058821425867106928234759532618406313069674570618354887052732234443049072586098005581424920650059927727778201662109812497095491443948777621759275166393167027512903138404309194566022968478216509988297178451176012129424433790609242964400792527447279266652615888391798699008655097041918508325855843519559219566479033135457166989957609888517085188818390247513862339803615642318750208552003922626304702105258659612361108402764702496711271232004357096557708751172904626216772379275909462746459053974576228598710997770738164010962083828423274480230839295357267241655799056575080083626694642715450838508973940692021042203217502995121966589331888618025600444451473350611449035317886015585545090054017512558382654785694715218837180822924345860356733909842130223984042863722768230523054728285011497285917145210165306109909284323910192292335209119132962075789285874296952215758461446070882131053325714752786782014337147076463875858627808489794510014603971339546752937515407828189698373685216609352119219117831455260539065779036596068611856077457225989755634178699301643600290080545704752925670693938546483880871712232222554239738853748838234088760817891195631669063464620146439485655017515589093265671829786743948079861046681360524283743596124712572865748682013956716583694946605226695737814452485891297644363034358023567447069248281657052258834336007902552164391679796016379092430436125523588738283498958947582613778332582282979781252650093808090999809158836471433796644842758612531698129150071035077809010684960643207819909769660263698246298757125059572722854921489932080770942126210672136583438695783551852626119612065613108219157362623986663491112664342076595896325491530009407812527532568195119826155536544940479254615214066164616585181405889841507655428954382292556688973086484274265136587297627221903165816086004708192501857047150326882523124780756858025060584678560707591683500813801367134923403195271100305233572059733559902783533009535941137848496969816835484319529375791140877754433604200853993327284793987536621240661714169174605200065364885114227766362107130091942428792507258655450540091179150639980513137621227173729590164123516782847759909666770837176770469013850685326595163950859910933267191837177486023455940980654496316426833742060701328934341741187508563707534458797233415515358970759087092369432072546772402334529901335038207517662614262174364278577450777130286355722233974557174638734476975903234749259457486903187877120902216454074641788670451707084884993816488791896635734340621828363929592930050646104645418763276321259290676591869914634972429675289966023092640864188561117820752099362773816092276988210960851271615741311796191800034096278503380277600251461569986640260392357642449494783626393154398527391910159232548389473556875311061055568983427896845991874799110553055196946111405793113000363107092536427064098347397492616079213370814588002243656092956748296532171027477520969977835683837685422810584717871945033160769058542862041125335494721154414481290026209769142682108174066847705122836408283111243587877586872051243501118706485658107730488439341402354783900381359087347698311431646241225344785161202529905622188447121681486945902319683665382086606056414296413505430977956575851850252235572070938113886896088609945581294429843191916001695726913538294505176506503109376782866979664459114714377949860811393581790479785310625019899727536850535332294952141332743074138785708904292605391388429584725117430591959973873537596464110824107635445162577148768961382044299154011771334265207280885618974006995340163848442320065910100780958758798382728213671740116183976364251965668814486652585976625511938346291424708842780379469937003539997987090590458879122680398855470790825889365531752721287628802218176047210452666110493810030630159053783107396564833624439594134604669490940681450360859797975201566380532446124961788118226355741141997411121060138795358975114114327851183190309129758763556785178682506587808966445061120478417421642496855016655442329041485317438499052611082138440539559162795927937853287984169453797146777301493398749828292238916580318202692137018434443825824510264722010259792805208231883935158154159006226553602194967386673421783609709204344397676233904161375536740742708521833460929540739842312927229869041500606296428070260441787637642605069004516083179802339644236814748727485110949259619721290205831279253831420803422859742659291856159773726972945144864285485095614845444245999243929886393032374731190466485888363185433032083789960625057721408374099254795458796153915002892934552390917316118565827556347268699986182566530451417328675033480566938409128244973470096102591175571896958814663665751126923661522799081130828232578774091680003281073112841455275750110574717766725302675027001449445435857655510044130034106410416206307764410085024331247326092314080640833293343886296678826369125589644338748182023667411954551754027745430361937669245555107410894597634393889999182871610894629061638083035915010670442049258578374872333334751093548563924402736299925615557754518446645928358034945647864656156708420333245637888836201094905751396799152989121570893324031690778165209678726961799994508189261235381630985346981932928195304163998823677459673465840424192730400643981772329781869033310020212583545445520452955120601513693323100597697007336386899558541428055106692353049283721570765135868109512635937125632558322153900103066382654637459634279847244733142061596728405599836399842225396789918884145543841567666481337254054412806078152712357978216777264878177421514514872348837542112829200154640106788195298311036422619007696453291379531074070132700063761555907199236892948481305340313101423212317180667764857569260320677125945712545889540457064344278231888792664595799698774947934182842722345182738121769598400325037734076731108668121459624826155565532595190716312928362360941981464061627695843540830439491062701602174661095889285159405407423029007824482906426319608040766759357992613233476816755254802478247874356164256442788701614995156196853772956592896475098204244055647161120259604252171693000500576421520495750671402451605080968299217811033155700872657260568017848099796922015871042251137622876910038572502335853438786515461998988437823110346975645847995962711707863944159399397159171753353351636869168922211168505572073680053772015828818143116496928875586517717086007632762786526326655533365085478271546076726663310626594765036576950388841757425104032900325298115009474787160346705595537398384192450434189092915545952955607749944134107157627630871207244553408817320670881674731061373854181274730536888188885084933474165091834905000018922386786444586371334051766204249067204019382061191129047399686280302960741001501615933526241340770929366329377586398630068695939858555443120153179348463721831178235302618828845668503636755474567439526741421340304435137609552363007028309138683984209962429938060886535510807196033477203077064246592710470244885446717020317200215010141026202157008224820889584320442182892836111736582786613683690765215169333511651027447039920266188826887750552250301313754778980853430752132460529700806040959646387220578337025327580673929010309202000805125032434416935112418743447754914814956802852191531520113886821230953710920697358712383669361595682951324621121002957795039233440915612876041239072238950697570828326229573607604542091281068665196193366987651633287676925302634076326890680393494079487254118692263293176536939765458661800466900227547279792339109538803699631146787266427667800695605948142911719127140856450010069941358536836546500417507031005709177508353698532259905906385318845439027733113154800347350662141383274889024947055271379259026275106325199962402443371292233399736397027142270640721249818334947567783782531426861637780993967632264521584683266723543720579483350906539054777134077145995005768118317505971106517369652204635356775626648085674827382905491893465472696235510234403847419273915487705783193872258346627032881747047070860302170609990392080338918936352587871426782667233797887453797555960003370399330818449015280510686499009831946396138152900879517085843485906570294558451574231916060174481264249135298932417860818473698755311241166063321706050942815846443003025034560276542062224867150636101122702537627385464782242853054249317870433712483684793085719582197175112357277178964446802415792290251880872594505369360298801721683123074143130254522307424277815285986603604321120599105794662790941930960927341382490848684810300768074387722254768615773443064791222594321853562711721774079081252400099376132678016223188827875986668264642284319220803732804900821879757874925456015282964943380894827679206822845294502942280441435089097945984285408767583867098571471293717115448391018900148038330863032774807166575819117064549692407184935632470799247025923819584988469254197888692139173471506351754299044529471609650574603559151937437321241021917986511454204573600131155659250286378276999161093167510806442107746058715502076840361554018030720273860059005406030085365281286938648102892596897669005990003510631327350599796728899912855676199949568080968533533975276440754689439338281277476982548578504705156733256546603485823838699296612829870629192369944587184278675063591868739142293883356652189789376673003083644492295111304953556129075263257060552896853316597368760603732822793476719916193128048614955462866330071175398029092812282417848459409946301724616215178840715995323172203359396234328561260891492743649640165956540973455341006371043785020662420372420410495584608238703287032779659615199497149299224940570581574876077746281137771134282967889370386328678073520291749136486964497238092239703696044986812092458739329190856437667905849211960220269086269858879883076195858511391070631193761092486288389737498280735428479760793502107759991970197067950702845550021379234335711742543302263655585272094114718638904124120207150926352513564151902583163027005045121808534694630580912934002289045394220738912749991678306428773416064336128856822684163852306901384008071252027619392625521976636213525387054188537997141601873797297528540368308070433062523824113652999557172279522599442327642654004672940758431909792629269388781927041040072569063556771941387411031958657981469896205757523993014003656033338718779820401563566352167723703912543177409274190027020643968414105536699730953452811103741201770257198682908586141370226643357220598681317590207555695667892616619679953977314262272730783099248300100138673505820480160807119691161588910026453558409717103938891310879281177652915128967785229305167364523698636805941776208340242181633165775515305047466848969710183471833686816291545996631675161968817407539634400544060891101463357251353249661902899225743374732023483579323563292931868904684286750266340718765506286447812456127840209064859899668482090079672807156556484144238784287964914089787155977290749861530408707095970936281143682722694232379426795609533134693086318822587225697084385730174330391237217941858918718764115356868030219892534655055034866016735952750990780455272851569694640299811169176859054349653451006539276108474264288791863474742965114679203571566394332813324272024402916439932558391583286378198358715695494001701945892097377098953965647626973097728387178745590258801893560272116351615420649520863244288675105577374292527535400818224584533909303786461411518357206779505724751275028639464922989491300328228978896669946016521900187653736707965310803571722697510716337380643349011478475092912580097334428323595146781774356568590431332375108307823528588889160476758177468457191250813095055384684529524302105127526322613447355350801394586693558317274489679611795019789298327148658834905353939019573216819100610905539616620648828223637827457088234105149146055238008381591349660123002678154240212115652133134598291793215585647988874385615312189455596894812192505227571293895553175621073617469779380788163499374301542393870176475432103897049966561083354246463678939659379257282303835963759928983044403632743902702241617787849209931061393090959266134832226620667512771214076052947172557384408101628897291734955520467721191728877622305855772322295104169874417997208846052908192348625617541930196146077420094853798506472304810212724728156995011572949764949417388763855427950508456919895121806201197359228643768036212811209753236916761545492081817415072079073536810492334238451674432272679507524720648053743556510822390587146261287181300053380811478415800386236486845907944408965488518536758311909382923244222978656596653891235768612736453895859489363294095941907838814357361809517422295098523458398173741729876238159491308938235405719521086853662500929856540885438315874096685833312588227980827676187192956878118415419379919923989550705457725108659269989123706689815547052985103513166134439269405863644053623881581684970598541212279863758030272946477614627625218329635580923152665091030025623708053601084918730355944814313562048341829336735198713564963001449878355753596470556555403147415844476424548052117542397743653993559364943196018733149845721240080004126562765573251368802474973861765632702456826708225606674866478359545824321846740243596687681051289848304896262166786599562924075077927319063329570478408030219087982752377755395759338736196984481729803479079135553623690970092315683014718510883406911273669065094801475113097234670784702489241047923798880053741621812341958004245990372159671844115754070632663498901227298852442575117468448406370965215720938415451893762003678386739675197660746988027038853566492025704746322516723053234830568750411394125744200945555359163085029369472048036813936554515103952415140689060320158354145351168724112076054704497535260434992286340850733897545537231968637225384466169476060248895087465381070801557650068059544475724642484828859254191209331425208217144449152205933753551023506835602895539391994473642686779005701641937521840716047729998939738314585480205012544126938396446793170040388342470768961842202649755005692479598144799213515063352940015490632182205493571450268752474179158011649766132330180761801932833535503091013366359016432144697292691909744013378257863311383788155709677849173831797287928554123398873644315840276413064012303623393705012891240836680727574882366940873256524251632007853523607762076164261954592625359141148603763278087712759593736603005473906689357380263527971018278489408765876567869461047867856905454080462750872663719229764686346834818639671378758277897050600505248856764640127880779728881172476740530745891565040550084688704243440481918631281950573693015604993042467529993909545283780637794414814211371496935394775183669162194829826720782887380902811142611450033377027438571051468444914571883161412622995129241644405303221699329355263426954246364121243182254843379389630566631636736634686237695499196600159155045822200755166713182869142516773784348283394877175727970656064640674383399593704437905134803111698003658423195513891486133269658350789746599438990739086025023239428435427257224782956871916681898001155237092976631636080180819386444770281977179859997332580547580670914361660264065464706156660094122635860012269562012705595128182857117252578829744897336776896752288002863857654783623445762977562870464503589085940491652797645490840869593030074022751194828148256365503588368022062625418586893372179322695834963390727629463119155621450133032002396342691459158819597538907917514887162483318942963953915047769165916820269594139892154207579511281711566075284697399507570295056050968260157893050131358133913282301923733135876914990191962404892027239598633806858634915537190493672325108770694057294204436287583677201472835901794308008873097323197301000467251570853321668785047110232623561365947784968732834213397170720760732363328932649452103657676236568899593134909929752690723698650155826727134058592898165497055944042621390296164662102751457309056405384215069006881969163971192267014296386752274111327874257152843011642809397109353572218828025310809295984774527471829287723042408018624827005067277172607729112506422840242731166556084405446967719691078691339394368467214512376901358778908983598780798400407342943535378922718752904068603964284713565262677648996007520678041678740328052523732540929073840477017700192527663202507534430866322624492539169489354784057932261054825932742377232004527805422447714340494436341512950397103696131138428645375615843335408362026899460784402121002477153302050233155250998995699535904887330858857722857622368563908426632996037634157793329150660157594584016887080695308421006997607280390402448208582641819702641053965419022937232200925945141556774955210477491562099559063142064311448541159943895693227856806644125168920239779637767982480406177060734680455086925196069612331622040649939427406309089966185097152228646994817151360854877124578537519560177903128883387976873211538915771409811760022273953582054790069341534504155655711330852870247577461612153539694309724788008749907791122158348577790437160397599635598948965398485268302295079833231888362639093278264819507873902868785371812165987981635549495735463019443709190137713883676082156072449795823624969705205473717297064167030063432089180788065425669612791426440392648299463956787485008629230800774322985304271406593233355949581908718963035655769868753097647683793103327309293251504017622768517283078090006909956195426056995438800723553654744711010775571528827623961408972892382779343366821318829404404635028005656929217901701935769452757963852168337820017437877118351702366439829478506597380502637336265596207900072053375955226887680913379506318729477863119379867948102748711583834334380226642512718361481005808820141015972009080488580094361925787865009852345423054345021230911986188758736115409801211534989922620679731490528519795527640189581012601667332656059887780095757464593804127384794506761591954697455975838984485284563195526584072268603499838570738602049432218443215722274012869461095455997433349363041624078148640681536781670068783781133652057560200616488131214854071528910301754575348327153725448565356129960496105975380981107683359303877643057499720389379760829844314782695119997348588673668710391938426981866915867378954699585068857863901511578951099231884721533871955797006124222296945836639732869213968069785476039440899783102000045284520782886486796177067904242408578671397230171916834322130180355259432825388596090231981566912858092279482380651204593528180769020675502193156747622055404806433480275122761606106290686476369439089037299929555316818883848820706830721074833769022566543920006976977364718413645747548943832877895035663678414516094491156970668520246647218672544587457749532361540558000887134749244616377424479664486463044246131275694213305338004847494156259347504942375612658408497033352765174215707705270703825207929861913977147289426798739828080686884640729106162746038562283242331727544432768012315970842144816796264111945575651101446716746961925339198031573124229245849248126885119446350629075125241729400710181899290552967897713006508679753210123007538433544070874104401932248157000019778174999270284166331505150406258160981621495021885711452242105184452261159725327741871731178008254524457565857554351382501466642932331466302136687215353602484407685597625809404748091213966646828901985637859022438765098780219853358911590360971790589895748341694491464696282727699621137319992425596811979513881847026248153354734469034009086861079834166609453270146357642375299669445905140102429509523620751326362183855019087333508299500196542815499503731259712445757170477214094352514856167890186145754338575791192783257995518453046200535025875720149497952619841571839517706016965358576575114623045276266409505472397451295490961522740827519271726827362483555462070204896879564074985293569481763927827960687037066999257303697923985836530151426023687515161323767235397528810440965093655223162716947003785222297065752952290880382630590011322643976225455447633765347711349883886324129176781030427160465511919764368046631207321117705042609970658297193910431436528883212184782118583708396353547765929252426737851428232887810902317655315697228499677494989549272886169547857061421825521783656046153208661362315110895784565270102557283368136476811483838887096143208445740151150850504222385048257454951117046416485260380793838628810764934830578055290508840171388306036097399393884041904503548829362494504296447814073722115923139845718942409521344944987606184466748302204343895125190354939070598321367327780734243160343964161271283638429445564127703216964607230121457714220755017112903631816566800370498678434024364058548251063882489807915134446196119185479493666089507185347984137642484874990681061178063725742887361416967463750623767405141610663653851602210641731528782936708364349800298239504483775911944601008934827541173787771684571798249420274851126620924963464406790135444070892070099662868906399705957459277297292058788262968992530042737416459596587347251807696292077987348174481084956839314284955709373927095870044718351342129155532142814852713810513394229552337593339774252231348555694380630215525632782301439536055860552229326532626153212889861808970187129192497019212741027203656368116431536046724278797888609573304215753805609310696145832588558729656491428596902815183137549097560360601157323771117790141292322871633977344644146783643245546551255130142677165025880067797180753993633630125711211695811668161580104716384062744683910194947777894578917228615217430098646446671777710919338807022875524056050229907641766418655623270482949954155059481728857789964279866522858873859602698004602398801354970764852050384496529158073988169773304106115684396974776495543428649100892817031838811776296005138105085705368630498320763952344915956863964848706831189040185762311356665249534917718691311461960955650319968617453630903022372176386985573990461563476724712165112329175450155931173935965532791306032410475777337959872990398219008269663859970187084416554259820570334396153714370144517054016019369704278422348433217726694139938158959801517239123606934875221769490589063594167941675086293289659198391134692391579676270054995472034594933314106819923761716361260443164588447078604676056936662997579068587546992278329962745325480004239113408409338166887506518705511542183136902568062575647110117849087116329942420027999652336734414047464569834092663919658916939004460419765710702239714864034216294623237028196567177830538040796680449628099533285312549169138379482046465702905682591881363396114835957372556620066448735286299728741478722529200238154175244871538717768927791556304700935155556144256973807278227107877052495938731095229479037293724602480566503032633247738133403378970906074713759248119967708734722485911597606953233670051518441435445717471270102997345660641388269996347125586684936692199496617498067980823346304139455554259626330591959864262155904319997183863171526713373776170757117053197469459822470600440590237053912688826083289726903350830704189878579359204765029390064043886341709210538262808540563084537872230709791820764218319706773709494154317947089697720258917811337010883313564706128279480866212553558056287942343649696759709399262951649736457112722181060624751517881062793420837822744371865911567645599920764254133192173068502113225385158174809193561184112217912854204263650086805271548907979752568567366600577060315727185515466147533875350498978802605246175368656964373056102833397132066854398224117516707462281525092678061101093012970536130630237062873955292594876478457455755196322383412256811271056656827500668269040989963267897404439412072581636309907261693150482037264988487266887931923446139865637209732696436266831480841735998924550816868252079489576155051601261508431296373476741562966279912802008244753984579751933112407509111868622767113468510270815620395300376486427820850577672304415711093148423998865864664714767428375304790092848727931278599457758347815053154929693013260511395516940664156835515041500585809891895946944510807708322858816837484398422911278578546239638656318684269771208566542350768745917436979754000506970390787570519073513733149318043056349174659728025348944268562708960962895127417256994663234060311726981440137896023994615252022814805944787600496597526518518388210493231674500908107500008205874656272642721074467449541849299797693430720777308013691276179327499566294208283181653852371109434643214610403917587186385650147368098515303335519696062525221509921682799847567903851497214126410557555720581442922391124536910237770097390034249121884659676123024791220060431097462288528551254661037510667837219286084839486904265502876318897347657845883851919348449367833658981491342452553669416895716123061291344648471514392007598848805263531545943762704147586249855283265103086287459781014435777882790268996849359976341116791417254930940706528726728575631335054259854631597400764346476524045983351354445509220805530103011690500523023939664254761946366501525516749286517070671954702580071390347294883418934473884596809739834165647927662498136477537906270590882787692885981390602072961138151310107031555017478804018841460989740489566198900482493404384808288605633150644131292781645798413700310253256456265016143168238251873715930196574647642062780581291143086752322991756914434268085866870747191652372646797581884656756228890626662158637169676379168674573165405891043327861406123803969365456853968766174690737392340781539112625913846585080075597888917389062647183611681346969866771120413815379975624429888492210971755549561571796040508427535924924158709605743474480362114735034231612366410348171933583406317747761772820718062361935631509741969751943202337136403733856313626541992093877521905040576352494401425461081873057731368124741824261147557129046158749612130709271987153444358787519548219777509558820279403882318709133742630252449287860644702406157811877271223408852846520862625226333073751921087271770842228976379178222711310467873617670875513252035767947745680328467092205816280983300502363321785989573845461092436833301364317089022371832227440558949974751090599235140391801120006017194461227777996214416528857590699547489431265977198825087450701869059520545102357429982347908395993172831899412184292048901455547961871890530940225516324200714792162512370858377413538989156771613694055629203167263982689472352431748400524405142767765479901302154588640568775224562808757397973693462580827357531191049000866128198856287595402559402465413646863750934418776508985210825933310743769568543137145463674068589528629851522432483773549896899367800617565489028440083737536584253682090555664489551398519856183341354766040740923988439371883570904271169054068033682747220432659403079268234845162075977061482990338116479506187813158242892375326708412519239062253200534653841766239935776498705231358567400360258326633422032379997200017864948695903872704086738056685615599725649144949129553756324474403965408455722184936568226452350611977635092199360655067321524609929386783746971987943838883938977356848388320987639349604177431099001013813327849121152793165159557930238999437797576654223323582648042845024229116295092365845652290823705165333556169952147271955530290519457655081700719833008314591624577426339034084155193508291401033338705504329327008777264079671475012047466003098555535850924920615920582134963690701602217532629143520169328858458952550025903726760781682769299600591751188062939712442349814757434614189260789978776882437801892575609521186544948130205193793845713194741658994391474065918098854141025551620128487311758744490537098579928772037836577960145307686732547546316951373312685653388744221553230121087408715353014183790330465634719266230632831042252926010552223375787069984721554668209490661109437102335343823153929100969344584580439071048176924020654696790059816507481705087085111500546476643699750422023791074280524517118670911371228120135736997306029291531210949760753460237384411512581188432993450981091632669444896860371916359004425743343584500428525725735534223763925114157955777428023908925047566322987719030677331150083245784735926995729730859638318081879195719117094680324808984038294264972234305046404888859918888193213653572151254330544166894082186000224450612022993341052258769137885099315960126457569623390504502275631672083317276306381754864416064998784341220252641847719526842516596811678385652672095971301116561762797276385183978743102449883258147694641456546519204086388832884745729769808840872738925697578167400414784135094166661959440200670499553141760889053794571836593996022911057138528816397189775754074980717926476979144687472740392691202509519570512015772136536788442673018593483882797385646464550416756332184463003689390014131602609935600916452164074376552252501848878989233786597444250171564866244309776895262632782263301737344092679337311131718164548915596341759659609355672027334112569449762138887244424842021559362544858682314146581334892716759014028882456866026264705318754622850631192130931737351678382963022134142583977504216520052618770400704372057118357092859308816838410183394887163817840744056765652280672516365623726015701994390310796073928945682067896638677032383975386600190492131343503533209036106723975583609802410577221501840555476738762489677175727064729392360802681716503382874131993566227452351279323675209435335929013696479362081455564151875765965065680338747256877391753643308536207281437574355600226366709983029102053567990010701156930422916677997902854170730665602345663334612493319407398503558992926926195811336113259222905139479733021876907800420192195222419050160977676655815986416045226506425088778118671838817082430781378445238819310798262184018861948305714165353622348185366324243749882890160499128851675874496735723042819800731816290576539219092435523860165132079787675520044555228664884319527626024914228748328278568074660817302454002865954616028286008909749605497911938255229881554210735725739311328568971798014115374103734807633123861990882856058370195984349619652119882621880202143038348181784695615957301844985414853034001804922010987556283144953008350326962214892295193968278182994960044373270869283838353386410834289873867944619754165547962800599646009223705329596431668503522698552733724120981666973105502660115621767589885956739210760693766069544726672358693650837090957737258327879429779407301990179398067780737454459423736817396868077504687241319129568012805986662981762154894431089614536466005020834603694321692564160925078126745251303771006712908299382318900500067075183383801899455321801458970320576366858335969196418053665415184176776372289682435263981587124609830483676723012693354628903449386231196866072046936147447304939371779174946656420259985845958838342481468350427062480657308735761436016955831237600823341817701556633895446666919463161031062372027303762720977971096167593936533894238800919874059258303375682034064946632612462270932535901333181694793532127122956224051544953623153291361762684006648117615346846829386902615817490487879914542779667539180626094908657766294161350707158546214181357731734953499675544929083312580858312431313808025068350051717607354846038439418680318861789248989460228158146023180011891059579937360870798106968961203239844211214244962305257902901230550456439354606990410266645512233329028866040872190182151996200793310333911731249814066607836646879169090389607998177604521303658879337463913349030051830156130353252075365195213432317885267389985796758361803166144631981831617641751851623041349814661041845203181319716742397819930437287020095103133247856430508819033443847311533020341303300063810436197375427292448338311731157554996432240265949018624975932275134253853262005806902435188908082199467171018634634912410819228949417686487825569358411804005967203860367492152588051574879388163115173003006898829808555998157187674402006236442180707944808839618560070273388489879144540218598669271575576834891106356762452845169250727319249899068534902287500931778713301938010741313577898798931277373620257962300961276611875638492792603577012652978108878235462840626628740526623067521491500674062894026130026294849529510754807644178160994967258590726869871911873610387810630311258337950961820249915844537620991889563509817362388771578437137786579935359534873995860202225958528604311504544789712955976733669089178310452696975567843108644020083508237094771400777334666989074588715581093939823784733448251712186705663530392202411377638094667793825466406349710745632066312214418499606785200755957033211379798699741753098027342655284297742777311403122989936510346810309661069286412234228795937492298333378557615110740745514049332867869100930242905858748291891830885376258276953556447279296991723930173054569128013531029502388467881630580808199934252056163089796457523300317333851405507288948183625881568988897584538975860443178184547571102093994894038174072803713501399840634734132329984133551742626421829722982815273957808004749970699867459617006101967260738956793211408972920260180702387868036116195634744312560810687016074922457087429303871019775344051129531976524319498440932611620076515848752659142735008635010436741721395099210989595627842583994081738837500329895935954692407893726482294959172977564301024373853229038445647305120776719316936389344829209267139161602329420754535774665578579697736003724255590666871144454547647358367382416140749283366781971859459956601765457352685258390442237729119705561459477241048821459573645630703967743319980583267331003988075229502829684500394644088543284955309265772608853278561448334383813768215680597932421061832812420495845811239224589397586388554717833894192729185919245964394893532967671196825098196815139312740677172232819161824157369593945204079663772361554632115667307009678702081702764291114117242123189038281074591103699702263778017225528432310642865378327273949438410048901321294603200195359377843085801068506423300975107153269752354902599651961238809001706925204912758817751991507851630630801622729773440453533333552498606336599625003806852869706574744501010445826892505133990908155207344459024046227433690603830979596962677239892723274666834848378985099013989922983796572746792757592588495935932343706769552623793818255702765024279313696547740723522181339887001844098066376523406576711362460594340078599259609296397970360179247307036773023485955911559607226043581911957728744791362114095411145678274961891629438874825829486540822472576407796007034753605872489113092037996320487204513270008538839261165949095740796596584852697641650105816626571512118156496089851730260337110624645905652699014087456042471289235174551283419108103073562194788820974597466736104372913082465110652822478289179586567001756055235147513833434806530751305653751936529296718083032680803705866325161136404288205906822917107322531989011420022722692818429284205858669560417806121019542613228279063208074254906500369251171562583675304403725715088172252377191201432474201293545275511841465159545540271276681384331671878185427904310474308330281923060388496316766455268858659710765038056110701353155663200715859690328844075434374270015384310569305942160138235073167616976289000743291071259722520572040804779499793364462353070206574280490674084401719926160389856986647355517855360750696452753529353724580962494904078589410485166890738486897999676414241835059707910231841718639635573319192287872197380415170179012497638530915230082758559833846900154726094250017585285092337027441900085583290105248963768911923816613164786044964900119369124206673923996591688587198522708722714507743976214532987769001926952379539836053379328753914784335734886953749015319371679755079623134411538003026046178238382989230312183151308023332633990829088185613092658875805551901127962708657886925703241401200423326412286764471579821727319583097341898682083856221859982341246229563291121910085558209390738565618566314388200436750730848302482040104476092069570206059170926781215448706170043305210256905945525217551313088554440884514776973340451210951566962400940377473643696027106646274617443158590796650406292163057354094516362227369582952790735871294192123969764164127277927167580459726709573777647875963510648731407375483021432302634849256466587901700000028935360268122423964200572570721797926615099837635197807346617156294363452711079622480207575343415127618209724838475060731140922777652558698055404972086171549184883006475679749620520233057285211582446320239627525315018327793873926197914567140056223252393035611283145016967003330128715798923949931665389385757329181477009278798188373285025682119009263508927158708591354168229994195395548753612011624952365525499645143361345613299580549250103975454487513522670052700096926571669354739975073101549847747552470613620101185052305400470109798635199753581779930541390093386335110391882140582404583957461461360418826092760410734286497661145136958110458365642481026198759546700345207946033833900890877564362045128753703616100174412872228785776575801886979559416712380122593418330617029012368803539340732160854304949977175085188566411959786183810730848405356457112895185070037612454219705851039265702251936334390655394847704575700538503943224162459268092581926488296275422868424389017623409446650320257495051621823909108624300662510400417904307906072632238374652643991856062115382276866951889109660396023473635906217637631754573967621767090754471302109839837442485174804969881308714418268053946495104690257653597593016708909499360062306020125180375926644789562027296798144010284058900740779654389005967303409452386336501484181532296325676147964786687021846629340298910718200530802858536794783746817654864377650691382893091808191283252515479851876726747744639648122344452721882981064459972281648549840599556354050712297077525117087441948859185353887066299451323179985591434659744722527898126045490516989516040745040265847266139450410190666652674879491056121096070625198886267332834205005971739600437988439764004637077167429805119955663578015047344223224351830525474673769236864574546119613055732892149598327682204201482539280906051087123398061733001615896876276129805772271837624062195315690567597672400995748101951359686992900117748241879812955759794654802245026292135408167784126310478874006386480857611902678224158748019210963013880230434103536825838524926889308799166784263094427243058179694200858863211796205116032651110061562987088417861452975898110557247580482938696393842629184684784462754832603216539856485347833930725094155262103863913057237482181477436164464396226220366694141617669179849640980853995124612264237094470522031418400213787187007006728220565074073193995780814357526007680073727079036834318198575962122347255882061830270981211537074678416784065213347702238774275512943067433450815209842277178992431306763211452641245608772498349058277408204941611683419967902494510631216747312023227422734736007837633695498132876753615853947637807080437813945080246757297485382526483951117472172196918269826768631047150842930105705818645393080303800433854532024985204918207573228451999670238216392392319631020940684415228387736054860640038574491183450915292843473064458934522081150677546821866143479034193887815893890736767831318654302024589120991976760299155828443375249025357686981696503788977402296573607177672093022249188808934905383971946999478351309889956744429150211753581345478000622621293525859568991673173534249067957232280258704370214610171923351224777766842089847773817551498003000893116173236126617066730384520831498302786248787247780784105407147303510730650885729813595627350196355316272402594794847103526744130083639212064451268880269085183553451334633350187737473799621589954216121950322134566496662819445019813151599600910011548857852709757973415468452467575072616387339416076706206530482097680780628684771392567173173872566713565748272093789441014137564992391207726535136574373142364984991549294833246994136253752302305210072003727710625268433553525123781163913779613280440041155077710774980642125251310085536835924580383165649726666146616613862441805917509220116555366509343304248710428283881385256263195354643958065892904668694304329412883888485868437424537911327997685122713272516396436194069721785907274773108609673995709415223305149436097027152157586472460897250864986337024671827359858930041610685207908976638275859473959750305811146728032679066545597036427554295767439494210533734516929786495821746925247504930177580626259478257356685936213849355048825326891362336446760747735566689291303655627983419845155163595206899379152562020235632642297361751172998422602603954504658935053387626079185583573330708837703181940223512597676235425079348344802426949037056152956247460556849463053607053865764806650081692616625729998311783592559471882007486851227345290709593866370525324549531847201595403986005403752715374949767555892729776264547213356024666576530510633965556695571074850533613188043017407103582476454051835615128739677340850959323204336366070153028183016631500739866009175885132101806949244987967780287861492341210032269702072168004894057399926580717282436014046965920091776459562268796879632882516927383000537418277918380161189601990603428930817990186639726530517095346162726828195235522326858002059978577732322413667924871910967176675811069092673324271354431223030253926205669439840135722052664611768659283770970795013724024868418385367385441056460444950342498889791754034288973106074769321749787673067522251332547292844807208139759564706086421903220684152927104690770096468299125087223105775336594421163744908157211709109707104445702161609033202318453031251488136869414540047867074934399659663066209679173684842833166944684540461670874415497074829585899221594521747831677643396063740367318974338203489446998194345799456386152210585197280235841966982223860856742944564051569357495671690182899557951560942546873625843648960343350632795904208309564912211810857469331133641648775127301454473510447194766025414801577456940413820339338694763175136774077526314911834081080375330646227556008940958574325111906757864664638009188972560302668727401714063407242041088692157035394963670175958884822531927444327305822143959840294142239683201926391151518788787900044995349574375813392216989356180194721313811459042384280324428226303613208673528856002652279388821930927170490915918442656375379023594540516994515457998615749970643636032738488770990164129921477229461443506163266584318567156903579229225592273027461492149720047557393355955960795594355524775428767469340776740152713249885827522618937992580732451115640056265114375322861983988935300052775871038428141884541704614740234122633760765447338415004842605290397955970190106578901452901297545668826548451969387029188863384215362873251915504354952076176033778904139132380406487917343030811006565810219564333395155875709841455633230868726263940490386516659926741368264621311336121660381086209654794159715373648857702339277358020610339740734776742168852902129248176443436765149860317446694886990818680835114672125505171788025379452317916789359825476021421664372837870752558063748377355314439121633507826295212563037937077362131686343349637057129778856103256601678499241296699991664056872080167461098327840404606357712060417835485773390678050072651158557728838853295953450608185689936597695844715994913229635324597133345877353432248842636790130300766656885567672668244820071871393505121036504351444520975423515882654948258933400315140887524370768338875337090420200395947841746338389798652938442875511900594350562457660142609647524680987916619850767175998053603371779643655596311678684539900175432913621097706928407745770321630443670540277048562485409341525880090924046797233658880975438175511740315957714691755397013227497384843523039091291959671674353536124105908311607512559792966328513210596111334027479568704596300951170394298721771909892876974431894035630223531307611120664258321535529165677586109919018078557051764442977228729658264041752584692402362658378494175064872690560277576818948348302086913961770288483528926904419507215806684279795991903211352844549022380612503698184122192283519016262054503213601925250895194655004650749595672368615735698291489033144609241388131202230005705469187006754148562846545135946573260960352655499873764970396023210866387446018484860790808787513773861294718567368034567962652184091233254083072761187629411021101175715332468953968585495979892139977177480884427012041603125905548271792483158046019257916729471769605571032655566168812829619800970316353783141745589280365815589115450064224855419392464670185373821877999403911439650253910595159886828337347303880658274274726506857652838011272896701030235239052109330671817855209911440236978211918659639997534276586428649485429110245555390471600011522531051131033024169623509668084487561130755924939890862450712096947466816961843919148947323178926286670646394036088472217902834250025966514670654186283738633993423688475751045017115835747503007887215983981450703985778181955363933010034152365797155477882769265585929451572186063674370795447544870072040381528332614379517801201593893083389209346292219905909743266636053666113929489953295786150575638406310178686975311523243881389343235146335918004745805879702544004590322396664806871585143833242416973688048483558938458962206886949730576316393805849785337586142081629784413362307067418042008807637813696581819284747580492890705963701565183935925928795703217909108454918741162659627010704503024154855237548313438697710387303054300528398120164459206991624871412903618181625630455639463203623887634789617550763095800100911635248796495857504798718287021857374914652226488660775295320769927064520069277740665381261830749494764560878621816841763553256863571189033057403661552032666282030157758206062220936641194771285855901883495935131611520610539464174328561658214213114368780038784965772403059183285457701301495859032755540235087179078098625509828024000072357836871108610639256708215097935671508169735346313693820041403067848531343639802073458765505392639492422786849054782702305499417481752061459743176189950423771976958065615674406284311952586203970091976895860598400249600522022898892680856190898749305437740668961042453185684838994726932065339265470197949726964824825046221561705117781133956304964035627609337478716464968191294244147025796072750737121782287512250760974572943889265568177779362917757165675703473172692137998660210338962446355679772980407920007855621036625278598648158949615638430992584417015618296448194050050791036434818458283069090624456134064283859414312017217365291189757701864636673587640441058605202528233342035377519954316668745220220219402084784579298560910513013714411860871954127628953184225892501767137822441852306784393055379115332411251670529899422800623977446007232575606255363056626878675643926198058579508544195772595536969961822593969275287149242667336707661809116893023056643175130134412579217054661873582990081930109279503962315696663861778980062376405211732322647702235552896866179098931036402523535955931424456160548262220926192324278932351494814573471902055272882878856770760994875702929381212156868031550008843482457334896745153522764000322447298799021675258188103688132461698442522494641971327137208409358265379908240433419352563303813975061375146289203585034403179933060669078644828241860888528982430336461361633195893558863579473653883545312657802758623941582594465887372926648280606415877290151203041469615457433421571939546240615412643688902389962423296663734216960472593349113841690255519703959641370599057625232484044032602837181040816277838868831314641821578025301710658799795071205637516042959325557335503989133073875509640436973427269539277652314886505026822485260131628842385760493820510444602025298310376603235532539044506350792478228248881552473772627511575197070423578205760370117943294153126027588760816427510218896851171430061711217691837662938411785519264182672248646840884905342151442098426171483307109701575979417066140646335183385063355813917707318544178545241353640650004715645227771496000785635854106010989488051005075794042905386425345054810518478137780418396690135166380415111304125683021068915313893979046021551022009919725325007717078308546380251239888295686381129167661218911502646329378677668932517740044319602940569990918835965756247402947391160195229661666660242370950849152614603703973932650528924627345364648783391017539948342646658853787223869860978361873647709171018382096051044899158244211108524114640560411731926637957139662912342090606120155672438441529768341732638742878577519241903710131246468298337220964288593204929386441616668766671783124201784798887057558154168286964985440685810787895503057283351629402107572813229546495300143315108475358184762328634532378630488190320899563993231374213587790797594789984748544138877513070304441422949498032033368192732020793662597740610468572345753765209128909734584486113321111583100152737500729065132526085194520341181965499234262670188763729919934248332965558283251689073458393499696207647043031450633410022853859699660360499179651308497003791988218085141039657612538374880688532911516444370928786651084324334809052402272923300343662892831323705039117177884446205816457803250779161076618677481087049007283963500364094421573719998903308206181903351904120443068746979638667294406444349195584079255714819383767157451782045082474632656254494337210968540204690607650652115670432526659176702023685217655583728648171219214190418997639606937118518033284179364899032934378631757351545773190283026348556165698851107181154824644060183683024198163081050071667732907057051106393210861517762458014508292893913177847342028720398193544852342352089983595996723726495769439225627441399866006037455194029003344049068104640641806282355744959580515465398168932453846147033029317995890259594674904934817407211692681974193753803374100961683057981920163617211107260915210758774115325544184045696642235911242406472904223901358649498629471779540645118723524533745004998423098638827580749857923066477389257325694650490428749147497222842074064378624722856863863304043824919066501960887288823399392949509832314210433975672164604953719228335956878504020789857992764965614320908975104802605187950662014385891980348780130433745505830303464052884014325456392773519882073654142830972166199412854847844508275825575337477063803181363825784886761622468958034737732696863313422736234362498590207691019335279750565420538384238713782931784021070001922192750753408474406318222021229586434535087899788398062582753790884257483499926928704738490661572119035445610490910813439926603224482244365138682985432239690596853335726921464266228477024609827856567464342403872454145935412624242735983758232308598118176368669897435615929155001642923968626178112181804121830972957146762150761844115919287308505925767053213593242850623359630613919337212855618884302642869192433350868778656575839848976459859858547187638412604357799582344708419131046625894716518007749182982120315950602681277551677758864901921343496123324379406704707014093414621165086178287929483105977537141720053219817019554888316044480828304920833774441998493352168907641883339523261931074270241236312271211592857878203968251841086412835046691884781889062229388617292063089703491646761873502994294320647009067614022160039854697815302283377660758308775705771709130690159352504962194591923492953421492669216977976973721325041231194518613928857271475620477440827459746558337826611807298404636938717337303794349890791349960319544809116432364472380647979815719298635330905446982513721814022120949827042208463983800776786654771115319212741120579157679937412241597950846486252337366084938931750398030927454287327916567509346312986052722177059169993145827889776242467295862947147503060234422662520185778108760358211263799485727814371111238187401894629970794668526339147956936151499810858063091056136179032834955708332105938820499133911121925300473858443915343677900942065273288992254274527940200176988689175977969325181699820420981754087462064762601215272949312047925374675722126529452296976260081977565089118677524390114255859990519916484837039400950678837739151747299072067389582959763691644646652343493770270218452734331910914109661900606574265351293681475258970784717200424602049062174218229900811251092726624224895513442124410869151522969311409258139786665263858072506117518385372595536008533562502688720052540576941651459102418833127245978979959347658101512093664924064841914560470886056790336202855583674587184970769836667251961054948593091960818870750580586102737117305985309226868325815653414673220600127781186719601810534894871541977406610697256829062712795867754090251784077433799246505349099241326324340397555277440089678725650336874187436014941396859630960521593064994455315856196681495404401620553049603173187294077208071302091617453968695136953651466426171105382003192905624278142067371078605706895290932742243306532854711179992950761408364514938985417223192930326267904455392182902007553573202633875268464722852891465248546835602347587628418859159173794056933032122338743644490346333261271984574155352575263498062924932778307004194062529759812640769696979476114000244917728860354722593655753811179973205445684754931331333368830585136571214591380144238108406324094269616899878214595327692884517716133084828256553026112369480329243942989180625686275185189228241523643655588109758166099411143224212603254309719632198890900318771034324739246690017125615118634457063864210027133931055254781582713640036023885506405492781420305600835081696398167211647731680782241830173960345211623879013353771527605700912346468526784253737309242672016709390561987209258150973820048179239533229384143767802989806737547997240012295090164549095455360239685503455062905122269559143463928517958232887714682871376605960505498875613885899510084738868166757843209146263409781389761585111170277599373142961316820808068221699423082941957951420276363238566003595335344804349221784948901524946642178348507159486332220505914471119281689659145879570271039669618832772126624522147430070563337431664270341535015926861162386861596282707854712668171002285538862165411507518829743511680722503485533464344748131956674645884128191822908404892122129514098679203252857939943304332365178265061403769326353101242386075589950804812398922298084947449718978932752339994321659565341533659038267828189813353934732248578425873956647102230434583406485981946212022473078108845733075256787764259174288240384717591977673178108288515692569321549257413741482048234845984605499075660105224644820792830836969031775656210537579904567206192575229322699095430604220341060860310949296555076073200055848150167742650892134666442546053568643568985454396227954636519232078775914586205125891676109808814054862392466608535799239775087136306040686555736665846506838157404646947767943523773890898287498251131101182995761675643018252496009160428136610320915978778095633532137670504610095027179667051494618726522505999279060970491865703475202529919682804855893854091555621109026107690933138360652386563020973103781678726909111767589226553293286059678818705284565830109435809134648723795009766844182206556173667173878460226920541429241392472433860499729555837627111262780436457218088482742322858260356944267851098718942747019330032410407251092710087599004974392015928010665352572141861902156284900523259265458375566608679365824420422355226254930447673874787088473725576325134031677161247938399634170883191754263448294708007199960319570306024625138843943503623056435333729313859829724144221160713993258354961098558098749999038996258469468450258887810933134583874716129495840481275880738312648984272428250304822679277061888150364958336796432779797465707568542132922288229149701215343583881118233526835917505227833526023231171061061320854965438127350485332119855659226171335399363885775670463222158733810286724473923804106902349457049752761971314206097633173601822989738207841903426048285969852779350969395354180081586264594772217723968273009991350697973467470095600986069717581853289664715958702666371601534025657832752912104613819545004898743259827432474296439767984033556119771488394742793894044019492120781902017833329475352967874795879589158944380220311772409465748003853243758106578706849549387887382531699375353048759909668918943240824086218831994126687839341735494357263456466207288491692545171910674077103860463663919216551962806339391457586421261943319689264941197882900205605837348146408833423367885503051635493457076689154844499820390741954727206835457737498033409183286997069997418851239966343655712410493227235800042819136556275903839961551947192572961927409096839664905737047622062235518205933407347942706668330872818403824713123977367515535079560187259777090698573008945623210609213914726906188174393859456194009054795616301930348558429040055246762909104062912787931191668376764921368520745312593524946150137473983059587023470917317156091210158055632497262778181869869285517650414330504818187919133747377872061736305992364993448968087669090204776879370964947649221703781546421400744639802267632204807778995304950129907032027837358244457944037059566656429348616007784675302959837377520680259689913736366773659301294299544620850566692124865221034770005964227822812433028391793530229049909607502482243665190138056442833492003884712159484283663049160437025380152298903075064009681212928581634222696772730293944897274979562609887258975452322730826170052887871308122871616535440321702868954180209970932677572170761620574203726010709042869371730373161316900600577483708818075410767735125234803044542385789803327240927911987208750900107358823873281274492979113583172795505155167343280938471449054237937012640391253242016623384762826466062940438539412021614136969029510461046514595545120805976195594001724235266425306495412621275357725882254123583335040601471019278866789916007643149461492036788080686940300015992163799731171595829864802202688219825596965210868356001651954235660684143484006434356450304727057018357505950924364149764535744113159491632946270052022076820669643256985439818760867588351977071228793519395863265534185585664907097048458177495746468745756765345179377216870212438620347699636933946207117506678750203907668174125613686186222015800826928989198689798401626192744604587404860884565087465062448687841767700428020056839881961496158926647463466427140904279971044288350150625042014941134212557484610208010022197364598510292277968224936243943660619579617528786714520707774250229368342402518263985161906821471710729793992176308404687132405506371604116312374440893840074015961446982639879096874129426726344505777148540107405811153826195459460661402332549593587965539851286215283753308302273582143910300739612917409335963496592903585968451324857653915045577911797844952096973897687073882726455840787431174352054777380499282506200775184216093500428422904429042943188483743143749514268369145383088420309893656512041526382170714828317812292111498426973998805059620420507309984752369470988459247746296997618933625124804878117242989407958096114469940855683382273116507891028197009743472935217538934619098585811351695198131697203180617656970720032081448522912363348747272292104721818565492097316833963049748507374703187283375511552029029940763727241148429324345270068840058457704218391278979489218644842588743692352239324990193018074635227593940265562351673565325526091519030910726159034692052399986716462716347315485981114263489547816889878729030750620035049140133676307244653078606596034605399375708505856930619231109107451906739221543310272678992995967518977767628454069142672327608495996400485378693248033616844208379061869770230364579590440895194151866517019805631415927180388273314738356679015665750845450081394958485668261447706629866730202280881721008231548791215394802324024556995646508509467383193067736408944902829506458313427783550762140461235459746005987268572754464270896867770602360143125675226816673242503985184401006657019465566621909328254380729887795594797031358876895231634913320315471224029979413574202148984334359091195108872800437146465716679307337644802346206910542990276019399644740675810454067764733440473718960165191597562786448122123859356692534705227006410928270263865321572554465911929646693097952550301682458608584629266444134292729013851556298311712418745015013388913406593600866717393328698577399711721575168904852461729598369272825226047825640477134412920737645293358898521041127327329587738605204977167855705042447246279705034422738798184404121426104544148080377397450943537995675227768603671552802461920654981232362031419751920794527512030117773662826567180697515983247108482558035957051731873549670739185001172729578708109365249731154835315811504427119687769643799643512975656183846735919123315477335073131392116272216109442115250040155228872725182830639139824422959289968350398786787613430045898779671030488705694512215651569344800685721337743873571456067943486220120986671482634971527131271534404546199608354088362307549735632319758321937352567170083482727612002921993139246724843210237888642016439424714169308705902713914431037643796778800711774666659421424447759456766410220381622815166918598113207476078921669427171623457859080264695640350756163199050067620553128942998214783785790519019255838249266484259850854474647798314703886366883121664657931224186474952232950072256751906230210195733250350823621356676392532864448394606248650409433874362071559967625466628634255162927822397207234987061204618562361408071753326614012910183219850628556694564699050221342023046415660832737608623805105041295093372183356808446740815112139009865072541317478414231134010183484966801360997672199295302328664512701442382026129395267599453810984388982675459217866980491510184889964630063809517536278287451955637307751307930981488061143677896753712752236332508192939679175234918499973247022914114150816289976885388272593326105683511019109120415675323047763858805318332293057881772474420129070224199459049014422186577359737580737248214565574897002890606713260042951697673406849733340937182789698269168070517618180690845056088205579637922462195725487780150456961215812445192290384017679736552438896909870638354113411827485741666511474616182402163451389668426559885616427159776900105480907773387880843163138634838829149928680696915549338370511244072253498634243438743483684417398149153832790239264579570605896210497520669335925928735968193114620916456279921105648481754320553915725881816948714633577829996459277141289867672724268869356128366764620059919105017883486119489463782079736293977203550973404217853764829842907914876727228694880338143565671319172511580844450343227132430108353179917947108596859711258451566212431402014821091976052526357687574635167094066047881608333040218871526101569836521588665727049137845797789780329383145243404846516134281670488619110083073444963504235387254498146236411154696255156198657948415306566449481374721267870598302079044383390967271199289087719604042247789612134847375490116680498895055804186669551201400708365301359948896185268244639850177387713948793261143334565135327662522074432939238038779894780804626036846110010172027043117419691427058386902528560185352741908657227363434156062353827837950872921550133186762610458269326624781378638031123868917232668989879749281965460317266227536186842727290173989515880538656302290758748687716449034475005036182846617214790128606705126370219377079101917821355360973774585730898451656041782907706356830721277057868090397806565191049443270310145246994386351778971117356928314396355491984093931529307179715289231196559351134604112504839006496452804771801918663834831659528296144774931569093447712700521340111698014602928690228074845764371121671256249709332484648437141219219386885020353532457043359188688649738103957601779691290121341995916813816805219204879076342040167914283914211954865512478059560133505104850857478846396207007526960700775229636858294958892657328156494393610438472716394030358502064106202302384943530770216178274071957956807621226915268445367078147462576049507053613486488491471352191247403833793434787242921898801297793922255194094580891363128941250830837118530996275203342332814275988759120103991712243656038539885087608775168419659684540993902413341397615222993885566692089605120486535378751343026457149388859888093493029386922219245856084435045520776272798271063984022208999207503111775711316952858022749462767282113059378511206653349111122114071632330468222058881637340330489761759315523798871593823047858678645695824383037039751883719467191386752409727898133381363134936358171098561708521767944167367687924187152564675964455786495709961276779677357125583211547929002396595568647618161306532325892418923342900260326196823754770360203503958478339773384500399393597465550399382019302247115641352613107897896425394335699505451353583626901447861002923034546482168382504006443211697442485520550235128477035055342659688756397081522437493637633975070723747874278772024499432461667284281048910326823975238762141811207245407562281623093275925852164360019586607292104646089836360534625628456304703940404263907571538256769399428964168283946369966301648004165130640434816886037584268217480670782145722649179880703475317822529920616774441150512120359463552859720181454056416887122553474328657488696573024311545276906319055845692472894647354155920561554258851884609283571959924321282311358937495838269308730045994621069941068059294294414468867158078349244679050306508040354916929605336091293194942456490452214978358023822675052425273736102246409750630697479535564502230585072451447066076042707160115142599481838740257576127329059011820342974046954824391742733112235213269079463493765999102766764817605897141794441864292535254354607534005168923560651407493931047259701644511681662267544928086673389050436088755289447685425371625051550340326576210676715944684592428097163638664083600911663678584063757586388657674212295629584816164057732719562104466572969322410519317026674442013076969915107914208133428501972794394466441368672924784795783239574314078104505356080625312821691758012192066082365654728959053305726980605971514214467077094856995478212108275189808319125845575678655378036918629604658936186279738299237537096465806988566496598493779201735548009210726181866705062218630578374101890519497560683597943843513445263134979771671451773290062974979675946114020375388207726989157232784876129724209070381875713718873779982533208585286391489188470581026218713523097878568792978191759861751502374399449760267643876073306150859888186296480788341706852402672106976562191347463668930103760456905583362423057960111125556041659554059188526606435918528254014919255356924673145562272304705750890679441377127425878689517115751971706600205190027840760527212907810309017504007684535031177454313007172618511842173170297237079812312373761441716649042591951432270055499583133022283364441476959509094046007864902059695438401860778212111757057888628920329580606102764501249756292154298102058937478676619750841130743526919450525984868904981649639116307903831553998803248020123929688407855811322230810857784770648697726871267983439324137849854163239417004596107971073069849286047521198917548624796385547338833540692338624083635166234838442931886048074857033401541480035158962560852384957150930354968611788991624360423200648675156297199122505710086977403990543634539686673609844562452618350076204571073228172758651095752624259682840220780718295502584366681107929963124959961977104511673350553779765546486093199158749845539828176101394514032913244364359727088635850060104938404640219168837621326666848751188413101551598365089480939434721294771427037399110807864812001155078381152961238752393575468174107485597317965818177717998314694880653044785554038204222777987814900341137125497106645894064728604273041602580727808148799378805989271599401835009074026410325374425434124925776304841005569636804116921126970680376582463178592121438708590550394386697932568683698197705799292339552997329975211716232675130401363548022533214569794199370028514935053350757320778850479850987210626669559437792982834743716024719225999347724213108932867529952772517875599119799338349837312020686118597645826151858638966960525187566258168299137300090605324815758847140189389364537888769963776642099412762291024348292084023674116846546117855605464533038860884364091971238317150950820442968949848696744467695544044408272727315857671032032896909312722786079805843250204739265747714658022706697948137461013640177886949738420384710242238953732589549829088927491276150179749562044051057804657370109821369735167745490519403543178421335048799873588961651203284480217072323493739583128335471355021486989681504773593367861827933594274391782801036013830698963160284737082509051348898395593135930135992667350768510457022630083846343513450795756891569206714886642229597341168525818354908553836741775475563911533610529503535837485976043111530172523187245475483293643891150553972770276372701259067459040329376192244356956582786328682906046645615435821420558989022665431337469298015001918425491236011957274958208416966472912705149930898162228478771747945712784565055823913129326493537170636571068881008980462499526708026864980667737729732988979461927725557078098414671981746737535868577808191125985130536759943675587932693836964394386763300664116441343094275206261494277987518016560936058636719801714312502671622368002385986212008487082020199345061072797961233737149584139899075511119132564976726986273346833750491521616179742441064615917622451964118688350269523634108900035018627510065952644299721911646047535914388348130039527933304382696579921109309016275505468482408319073787536601265246474699002484589173970902085867399571674918686247875377757463085727617196475863504582330816166292781503129387628320337835354137964129459610847234033572366898630424294843124375324518905713060492394863052841413396930272604487294269094747615730666979165790545050236854981090394511950270410630362620674610624659116122950344166119534926813337332949195146981953175543750629532431648089667400995641249617663246294347543947542508814682369963586648638772376628542084906422439647354818213018975791225069576368985894251992942128805086136298022185510518352097422838438813281406861650410102457418125990869516165686842185793095005004497114669809134666586869360800644922003918996705803354843597781370284573435078815114162880010889950835538729321846849193606223702395961151182330880188505217056971217976989509944020646167728958989775062250667398591647135025006441608980866500622885026987521758599396749042709519163492164788296002682235956327494558046545474550248467349636685089990667681162501604709902830647225454417101236713638884518762320540030640101834785358773552976849369945154130739735013189767780038540637255667890796796362778989629970297714746775822066747767502718436344675077985318393544527105726703184079887801297562023575054060556163601939035881239719418217503136645453359275495664009405671378805448213315422508397918902829606052592251581622609120724734202326868209420316918529792529814358836094620344064403214314151364094225850376618094786731215172650334918468460112943670961853912174567900304924248158473297326513669047028838978487715333659392679721729267227003941038426729122652832291878812501613831446612586959505830641006995481919276008239128721802448067657507791394246736301699754177855121350582261870089107531157867151870409706247597331432921479792573881800065728812818464619194286475031961631068070899449919483789001713099924600524823284756244987621828704343026862270471996283798228541544887851584149525480500404347613968479361558689853877338363822088038914982050971526913290062496498159141439643978669284543129909080052952712570041451923025457966918207655908533835564808046168663959658563672356432904251374553474575286597470841451111054109297652688662772250138745052963866489970666674358033894081333532996903729003190181195793623974200505023699381782596215038042113665255720016903157807731215925293828165050375877243096242286577616615500681878610172742064373407389512632987117007308304401904640482779572690506569040123982612638280126576857064498706789093904186117880150538411692121864252200827004832838238746249406077394577458360300690786455969169345263911868675227366491869751640043838863280805894119140116276380706352667875086872687811818064159317331448855027788197735043412673085720065006745267076032177889171387895732685876502665042267113142784478588765297425544311917198401420755066820687538279628191297981084667496417479395706676258201843167264283915859115552752877576889614034450936899842526618381152105605506411215434118402866418615471755847294577792266069142204223828608262404198537465638903250889099682402521089758765044509899029767169501582292475328678414262468636630693227912957183331140647465433172118001599730038785589682276263024626055042384458410206338290465488892326507951313875768721790166699418525708000190904848611140004748110808347888831498680860550614277275477705224904777854727928359081474260201118947184237905177445822819813924189922250371174975988026981528619178310671679056207029822654209777012244402335447783701387389027039529932803643407840524252315285379959199784653548905535081882442659925286853900090908502739257461321856731936739122292464196332102381307042229538544173233657593121861482133367052182911428732590772710357004468149782682364335100052966502871715050736146483978333751745553184183489349352207769201251734780061587604736696173128018731441422536320900471172616264434114904636684543268088375820172819387212643391077183885934906830576376462953524621019664734313775894591328934880542456572842238890721907597492144469915074813163442625081937739056403524257363089093807562362490253512504223841258718668853234223511086530688128280510471247808697963303251437574702128448057289068511559445314182599156123693013849900463159615687736566340729466504723901772316749962495509666821340361802631648363642718754855359677309341567409278650382100453775166708918492506262110539953016017285061810074335877089028096545575093140494441530363192772522968701512614015648050559240404273654052374609433748176961956845570878959173504513248154355178432552685560585953927996789784162832179589734057496985348866682780199746294068160030344393629548222620096562556830515755978330504210825167536697124251080664346645441809565031059879885618801010730209314523416662812112519757680441500235796666950234865527676848752361904555220680892318488686287705955957105099056351029692961170924779412834146233181541442014677142876771132075401359927313858682387575142652956814514911942548227200990147941197712621178331268285600946843677327249325461247917946720192274014057163243818946088992868467908252031526830187258366559119761151799070600010613440075973153130963255136733279287441846170685202962649324218809730488457043040117830557842253067356470396239489208830102021022137289241445261460188395922897660063556098434263235274649391158869910582396942630369986697952263753706328941037068641587893236363440960818498202069876127568083135133373996086340327114587629322621657905307132613485350905573748883914589928425539772395338491688581724976512467394943142105427882211905566155362368948302893432707144933142413992094408409682182773595400199430356969112929957565657346302132597789953189991987290618154359418471302680143731843292542566754232692449324449262848115461185738401516766089432932924217117072783310559064616298610881739192132473668729012991108716791926543094620948147159154303907564163219886825655545909286705656622312671918921346948244065669654616260790768214511000585889049092396946149629038635671764880389477970302235167463273418012022803428407566316177433484517196312157967827808530557200973667229685139069730958322697049385354831984400130147422115001837478972321821743790447922635531364801644830039351308740385959221320241640341873293365240914567867617484998069873502924090038900061132909121314030240662902118347192147606518813719855245495697183276729362182455453483779752559988798601929301567435424068405528059756616499555376987518458349605698324208214946742883378950167886851295128456853140176356638701287457771067878508804290549427712058731450599082588564168909159403677267025364371911049970593480322830464103793147094652929219191078538417519936097523752708359327461269142282008837470575875035274662153433754136311376649514780811494796476833274550534525305241031418230012850738050163833784694113651457518352558742969448340295146373278396740661217787409152958522338819321379859553678095319818548826105416540005763916509796491594831588278476339535228840860962650685352965511381883853137507172104807498712209705051318356066038151494571853517506402132964166583397382034699409971921607878161962656235779222494159736792484546319687766161254916408885137298117282777970429998557307622543739642957337693725420964517078789225517787578786512874642755159341880103955818550268540783541099671725121930091587477158815448970739056284391836882345343950624354574120579662766425300977940446832913130819300705065672210194316741564065652221254592279953350060925595381847620692015472962244427481357257988480293414085919679487599435775628890309398051058177336497093595047926183131271046556402487410153640865169701312277533788103389220976021817452598735457674755678126122729211599206134520550702598996602784294411664761897520784287855865548280882400699823268058461293374155717429134950966796813228969320419178006875815958239180018282904607867569851652735512622182483335286688525564278574677171421480111397135901574259502068718685867945109229264955547242233188973427720772548249067835568820208328406119146387068190001052948681610302051356505788044824566027351804460857973835252015263544780600000482205941237732214788555371069743184356477165865592147617464268460231906108941313729726673009410199922048328149748277337634008402796030560732949222463356597135516531111874284705445724771609239704225579184361888001466251612080433915533770291606182380477730676987179235287936014649149799452475835121019553610734935971341066932732120400840293215187139714867816489095814481262559316215734662394906882127769043798737789070704716266746251847890424234936644695942078491260686692331989220209730886713655255740738638015890601146026860293683097553097330795332165915264004695054191644649304442988056561598149147509050938257676536530336485635275463449252127474428113471627667623811781698515921009082435104817227305582312318540282974811220059006976088954908319701466662766432898441513874300725822241173094587090842402720422877167276757288286719647566048066227686121536695095323543650258931171065551489046005140869447530828041006129783270242761986525450553761824966834048176531919984982496019979917896104523269545767024734685980986897331251929485298298036359772241300495813435540561638043448001178531023559544530679613607916943197286886056536974941838111065595886464202942515194347611874382656164276599349257808536375599400083065253766271938358810592156180730599247742544969037459586126482175283230471312611404809580945213720551945923795865552039442357573624604296036756133154511410625466034076691044485445506296823026872010152487710234607474922314688860615731675648988092243391113806375129857252281441552822672076145023253147090564587056045298421854786288943549803265418176400651883614343583678863816723946289781327418766925444899119819382863996192349621121303558803600782920865434286986779998374247959995617154539507383859901399518726015116696083279263576349643066001840111320634215613574586123932652980176419062085375145795173730041380976568895437254372154401883357548915769807233114664345489673528019589331790567528390950137591312269929604097272864797719409085988996381892790707458767048546448490807706883279942046684961762793297565355242438060351028721502103243899598810701619501476912612702397086843472001579346015063651090117829727178212397992216281871190835037605836501630764883384886588142009400292985186036506761241581391482395570247220073598931032910076749110363328987060403258776227053209637560119950789099910376190297683810380715761917737597343672344606945061277921627693583712914826302661901300968117627518568409075099545396899019032017672439350826102134195927989015671830355623027045792392694477081423955665126571110818286655546528464918990244449290497564172865059638623779233012961820517467973736524576138476170037475041126704036928454839345512448123444891914774418686072106578599742035045586308251023592408373608297365544083965387398317236580912615952461760215705602035081663071829619483561126975139843935153964615523211124898687566130515381253636601509826840329164648074505413090726740294053513259983357360646900949901730704301431600168219504036116220290189948079413129658879714720994901933749465678492562960228803036860583138387468614560886630847625427453583273415859937695416060302621030546821631262324404422425587254775396085113761710207103862857520444660109936397714207322723150419317994751975566538690720991766566889263682767667711840621629774922835404613817600173964385858144141026606769143866705476833442302497163339545841254205941873522215591717093417317158863753234121278945219241420043793971208859809746012383843623195396570652760203138315510381974747623221992667682521088394926704621749800190108273903917478574614143218757489373185444151816329240323038395932395960683632621474287415686083465668958695411621122198939533639649662358770405222210484501129431644676718307068235237331907317695088836989095460487147049329329031372423770338636445301880026204344457907065725093407433355758147274938299901067668979193442189867477066878928735350988173137313869967786619555282538825668022091175365532915291516499094745669664084869324350348349800611869677169464286867807843569584740635867678733429357325923478127550074424472908352707220356529314934468419690883939217425601512999330193640817049159492632979604639255464065051043352679752730245125230629908355848954080302866745948950894987988190766548869072648500593586481814698964811132649701079162613734283551532499981774208096663366530985485438554149782124162633811920782130362758325376213967135448623738566390960681804550984158749091410165084400544608997917605029472430004179658314541533123627608566081198407040962359163494542840046974686442537606782149510513546798592441411426506793672982553979888264007803717613218514576671088350510692821215139170017348426771019255715132119417094510105100234376247861099541838207640710006469925154384391592540069284579443675623824415330485518715702802402277234325035376285090258218386677680794899763164798196250150506575261747380406236783897829758981275875786532837952110894974653441601011609654237252051874827135715943931398175144286158526013038567037420940316497339949686884739584753199865538039804422777691826187673164018562852996474937450098528205676680671179469549295016938537094830323228847363817232091449342344478013104044821189729776124383380380070891408508101636063659362440829800190667409622650992553409398629883808069315964277912030091176088834279336035559787167727521947099429836677979967882408728713476891276709287395326607772065001202677302620546923575653555420651703335988733360159443680188484942598674326316236537410201766236990204921374627316957673624031268094637237298121659260588597019117795152557127538252155200315225070812816048943410918101678571132669721399450510535980667476213254758157171673154115214243112484977418958250818103217385860606760105133507589834558874065255260336279049647983869776016591966194375495037989608967128682460796449127703473033114443676591873446893787194498174451021407299529446035300858191037262296384944262876535105064406039756980832134018042425227421162214584615182366740181233153039364852834709604486102032271203448788330991815799302193672799333780620633876999878021903213681118723104159049023092322584456175983309926324822976831887704054856081999931071254402657270875446607375434270132976410519495933092284015577969191246108630373828626185419539236335598296536583356348644154764030333930141520962008947115810058800884400136966962245061378017837094196602910452886557283802477866407713915113420986950944448928145740327709133312229541563562754630191355619066946177309195479471543924467884131218975421423721452348188154083128931395290195227482638147451551816696371350982604398132647712929131241144055064845472362668854426437185690041005209452698343757443184850184194955060619706627907777913984342480348947287243260455547647418769817743620615934841185302139415862973061008237662865843077237429120858554706218773534028978384619799921895427473660867249702206327211420374591446362186496884570108786046684360148385498443734565695823904099728348125719259629697612757139257738372123451347251781545788534728075019359981305287467291336753045157809832761057499459105952302904588684295058102783972807912284313945349635203350651893681277236393525233337680337152543624018140421052713605484571055174769100585592444406023492816409509093101553755915765195053086814251561389137371398330321491755993162247783087158262520478393680583270894781303092666853597002117742253362855370710367212347601708493632164100032056680367388178664186864801993237998451794430868788359196639274563244361232834525678361153146247879792956678352539770559717965719245122016415514365029640738440174626418772254580573656170221289062621942921735650899470154554665443894102575676524737537295098013227835037854715866954302753841792720174583028328410589608936503414296045017709959634887855344099481139384561915179462163618073311551006416108129915222151695246955900916429906138320732949935627472179715075536478400061468037725117793945022331788692694314098620882631903048855501381261187734635855889279946318110055099854727963390272609523381392013720355951042844110729641870755656134075727251764596040905585990413762787152934691185154760182159022185319201696525979100256690960622329032352372223724741535863050277329163798390430498655334506649111615358899483755195468802389342234527255933168850453056482422046824281871596565870101830964077693623689421281334134496259243108207364105718719136609468948812413822098189900760539182173467924841137249544466435778770604760103456720182923772772432064176827032548644540523538123256432679369000911486940529609192901207489568882068962206336146628715076819669882093486024032172303074788968628016790293631648806787917388622273138339833022903645904899289889060282575783645310997630215189954757042351622580785290384500847420919030655215649322217849557055092284363194095171255534819395781818101199757269574156307500834742412370170087326008899008161064668079027706579443980489938457056031214667429741078980513956409053275732861743774653200337021723119325764859467026911792447850732263637427129484753467528403265742214532716553100656710415338217585494163180804359855252345957366760181009837983139558518279813224860557439729855905462528088749320304635255933969580995898618690712101449553010855605815125837620784251915025136886007348238991101471878411955828085461077833027229406338057323527132019093757946982476674542484643161139302192595249950635319787859271979486950045846991349606605021957063292458025677870924003062378058998668775645303787195711902102336964844227044625741367195005149134838110387844065842943926267632697873865878017345161244569558290193420690146255245185380722711126441725886161417263415759722288186506421094707903959692635202407312981983575630657949601190749485457461312777268357998895643718065987631146497824704908192330551011888554172629417810751118397161953888241482765672923464477814828695656547759439019036515179760202451499069181708533453304939564824193128137262583283793084685131121449972651764588982943112732513456131904941363832192528477030224928471866465832987053136839962849020406801005269813251599482499924942362043348498500062242915893965654934781109966969095178478895293084363718897597101942450104945314383821014683686710367546661775608611996253141998710731663617482286189126479751309446250511319973895528675156498574326423239854365163270940785423073326374371001868647182237587094320828089574009272380334096961639876984551281918736726114882530541594852521477681457745212386302274760278091573701279174444902077174369055073343464147840921570496578014996565080462518362432845382303975565535614439891832858811814963639000362092249906556175929098291706428883722411667342454700791132174864992445584210899714759681977527730985882258717143135835399450843208994510182642218621906954713802556418940157250703162922022886804985783197459481230107508328618726218471776332912236780391061758275616584913259475060606263981377794338341017933622773727748216511175399812440667069373616754714707770690849388741553039126105428664093861458207715695922226798656891827248230527590311071878770486596428797899062325275326451273306198886885733159207035549998667177747959353522139316190409880633539938189770865073031503240730818453232848738478610306598357184883273934865370695873915555881414949699958831690620508960288709343044796433722840101238597194624633562365798663542961379724768196141224335838751983918548603037756568722268427118936457664456316498989237697159683210077288589225904436354014665347878749377690391092521721145478647997869284045373840497627043324792010746693914084369712594383699824219392461847632553557903523712064576906142494578062449948680545583886549775811994976118501318719776082203668886633745615893068202644008922238459805167562909052431582370214953659933132280994410269558675826180361588139162444307827762766581709222323636282900725046414513717529120397877818510137824764815742244181099766044506186997465654717168937020461077958507950446820520733891828797237563215839436305240009902370052529421606287095853844664995245497056091851368211156358658735395153691847943071889679700204700118876015956117537057539439264818763129765804251881950860435418371342540304980289836125711062767317864077055069328620697099806917487048803983647622914056810703595715519771735627282339789026814085604758897432042523628870642450141717819378250333589964350055538303810110810525474192214975423451465397691907961163653028945184239113571403212484228845764836580976314212346713271167368324915744883478368763393133843157508327085493728797306882422842515578428742488696110501583047984480398214168366844068109677477515204146463005528902603272007022231775399540480509161026593590378571604531549389628815203744269606154187572511228447444422038072347709537563014565964270896830180146033505075042306003954406224655737687509197864891027646269779098441242079886098069382808669009315829213934991733910310378665896150846526691568192723127438026899646563102816109196129707384117432672879017030956083550463425478858842736917324156308563695982738150216910994705653419851794102375846151012378070065883335486350105145875686250870786111240343023579221008961277243149860939564769822974593048765109715397784475952873418375877567843376215708518615436973706810301763160405795060456679608294103510975387153256186086687611083465660104829059946531975432782922550110752024226904589994998686633539185729425554629821765676115740932403496180185076789287469542963542162419142847523174116531668678598587948020929617581336563705585152398782801510940028247195457916910551025077708821748324846613348923692978786808874343112352199625037567258246393549305700046195496692807954947416611415343747876394130831278576222460320066554782470257012548311210243094396734962255726590598156335831892426124319159465594208313084984000134720023504964788914997930836887715034051408621514612290773141444188715758885466632839531378476865290504889609682573198420082959864166812292270216090721855692578836734935631605261735783546746656278545516711247801432163093095934599501359459626478252142699870217701017295281822059989707599859470447959515455752225008124799659644089028153024631739706496804092497108565965152020405705597309034632993569604855198219750624923379987341484560714798026288527707594752657101104549751019638395131649924846497670519742150228984246695567289274362721597215743482815593210182956909514862639864345218184882221146768190341541320984250197844279488011215755437588434572454407857927183740331082334978603678477460651906747603397108030123557678196486408031253868628505420516611667925817485555812010645183516517010976312254713342685510006296330745477781636637376824266321391160345635937110551114677488515350111621117639914090596667324906071925306973342702020759271664877952054562120296747453242628687988777149840045657910370646728708438126711828735871197699971853073936141324937345544974685887985702904722406832333684374515595237466283796061219430366910199049500183604301966909575467917817010502288892468015000661201861991048155699653808999163563781672981968973111526608315514453002328512291280397007536536078157401908280783766247904697189532541005014026377212618386450951450842026584890383249063029259478217886653289166324578756567289168831874506910263785620097864104188884919447220796073354000221335236627948023915502727269043905034643546397956644802957776016000624048465359934489021816723332737716638339706674080273513402439335491491767491040241526399599875699289413028333484029831884609680771342426208062951650723623303250119615878332612802133663604628097251863134446308342267636286336521926987526142878142508824176429948624590400522335777350260805912899798989547934857275598499198760556270388410165684985036859026167257200476721079251131495263761405460675289238557756242305899662448273087347858362572962230683291682770414184598987505961863521329092971496733137696749676837028189783500590743910871126843897799785606255026157521176905042183454328527102495763699004879152687507617224731056862076328712923853548977118459432791924982149006198468871389874042223647433920175536718374524410598684295233040841592684507077295850374397059653323588730456621359363821520241642114989706997545550530001393445674554066527235540559133996708701755916160282471710792614388483224994453090935624424429159994694082346187623095170269252498369896725155087147112131054395536343982451536971113388815261916520466221689239744900058190098780317527046084822877236999357978445914380374033432322481783448564765402855654718322469205132750543925200896470708107592887882553195640343750813113202478039420432308625498453981499562416226420479129685646786683259786404411966710177855541905882353855339773522033158334115775532030343994203685422249349386949814688345334773483678042718870393070040995625111525953459763708771611343832068964313760018548937160171660699953504755352053788445371826404572521531052787561496021136277140174712134745178018896916399574081464143615721247111258870358080868529518219958514203000148006109069301398274357327497559969255981849708664133066664975355520161807332595353195504887921321329256172779572681389378545120473848092305200396231368140298453616202094904115222168526569668862128352481729069461805869489486496586664452443501412740507239579262790960162258610200923018214041759419245969943858953577609911287346797500747899117912928354025767508098527159360036215897371623456483109163524554384725918899128671152416485218512416198501032261613766760553739183016138448352819125557903271217675267493820938740153783691969700344061386794158034961329900406696884802376742831247632598840074671177930434231833957188144855769658603907609827528176248658137146280968136767044735659794684921183386333954339992394878910531312450773906749028845652821680850500741116618882937107784109999117344478015588722042892751567928251352779818076682958330094417419051229300438105624994849478082791155662698676053150202538769146443255409838588010943641699664736567537670425534580596568736942191719495499590578840538127609531938240010655541567021256271316113677908340469974401762431972128302955108605918903011296209967452588569984115468744356233462823970076063096141782930619846513627414697588067454163546460199409375130285646122004515031407399314759537885242193873784220842792130262855676961501651537096432435724126927015005361056706737404878131326858600895035881583988056035722929825536138564264013825458366970552929465864393611730467723590376188209099982607335855665014315900325483916333500132551482673456989389556460274068650981366638423112024102145090347624580038504759335357212071899826703350760761318746714226737825049854212703002426609945801573036370988375840866014903662193030898915867292732659243793588023061183323189120972595350090909370015086810503318282086008332787138670659630454586046783025726824790915237425352524363957759054233577220548800186000949563516944542511444941923084496770893650227166871863312186434694727302137548542435572056109151772542039839483476913496680538488712896354805778853764806413128291230090947341980977623325014735868741526893456764436014820073531075389277105448627968712956917876293808828448067023399948724410761036385412970782832452502876478669714062530114677230419159822638749476260516834088754934597215355884039024612144130811283046513740723925347245698676478147291469356516862700990765337662494486044391887689879512899439251530342776237183023832453028694489615694396121295427031246057526162905113055372941291787734731945676988721512091832723621108125437739274827360377116801611236195935761994165183989626660369882613978639694325742711153050652344094551685533216968307905760975510099134251851461333045256872936418051452722437558457059467332761802785316856736197327491817857304727038754321745303632646420125445262411715670743753415650241027935544171246083846674375733503116394230564645357259356722762678456500297029019246797601359576692947422065938026167721996806665360602062677176723213208896096960545770183963950070178082455102991960211966343503565975856990505642721872672496276880171704818755504540653466245254743450147139073240864461976308937659897995835252601329788204771246192268146066081028713558595020186923943653462878635282908879990070864078386711402245857415703026817943423729524297761516537474142872149102777278456718689962930921690160942596213680461356406331878606436394708031976342750252851003556380481550323423774353232444067791963077325186650409248290763968989702538014271275021447005510748732835364415403468605083709695763716682455538443267315956965123563777922100783321107453746973724443935514871047747868082385167396629302406812855295570677204955003349296095467165181288811527480238186605912115707493505384296532859662924486675830197234035925639300681048568143657184807938480972999073749832872997413833604095770199809169656915590956569487689480989718352597606943967099438582640284495825428233253661854792646580082371003373617354466451976346044181329182211301224376967815098084310656172361636596415556717454810798840019487884021515637842756246350478247547049247501153994978097198980337834629414459214070276839457726023086751509295417057890797164106910588027248985455601550675794763594709236229566115076517940877091668855699516507748460369906314945959491164761528406818015283202443434941727834076718226726216941094993358754846839021911953967813270109875765598331363079694935060989425022957085378829636845815230128027460315939117380179535604900591892231486482733432969053723860798176203799229771139212190448281404934701650689488833926850356077984850877443960118437509437078729308453559431481062081990740975961134527707970847300481509277355858898206841895439376897394331088925695549923011949350757203575399698494750639274174825546853832754811018415932472154052325642820626241230793334516234748982840090612033621833929482648845452889424078163681850443392485248558308113628068644188931479271645913677536561651564560189501740034732889745182457500351269528480371587476363947995391370366377859508799728769237389661392702685852625549626025780952217826036771570161474803167629983867033979896105221865881543574764989019557988145772559348738715339404423229258148680930994303956945754825524279044962931765733098057814586117889897139147965021625697301397865727065724240315074352898306554815080934407621379983363268047942577440162887387947074285200790863015974887553585705969598879020996673703268808006968926844426722485878519747517385777903711230233548943032696676824526932534850172004608335704017226180717633309554174722129774647381332044938203107547537066721015275850461832828277059981410211192823090041204273506842084689332836267930703794028532319032213024301194868814535231103877373893733243239097372521655462218712069056101071324232947469954605933742961358041092716205607983394187374622460113474864874468973504624044622517909422786255570928732233755535704375903285799565308584048264077954100920814144548393487185331176778753438085074715209413650217089740535105629546783220503380342525306357792815161335793548456788923464944198964595275112782132156329699775766957534687622452443435143477722950765407062507575005844382490192877934143417814081700968517071608605402683053289895455032055990654025798865710594524040133259795379164399858589086287623747293835395875840958840207457849358722527098758913439164787382772624092832066022419249765734265504264167917755606289201568254676548883365766157256450497716406635009782645180490048760226232929490102553986826714119499643691627106672646189061700282661722564639621017743725433345359210474880739950493130897983619014447959691386780140280914304603646440466108488746480897131262653802343356175260123908026207214647532012935310819012226766089418916328589696307567305000929694784114530159731258231664661554847664230090701614320569910930982668250334417174095464821788088842487200758832314995412590221635756352099074433769789005903389790831036934308892142357407206247118915455539654288692944353564360715278307373117922410351205317504303369346502857071735889227461164534518494740683803062440959337136004857200513464499308267059146650032455950174334846042753816964442801960009198700545273808949541797268598737685389930472606022690310786069431707895952312656221378710172369969306570476532705513408894359270456219656507020061330087770636166819852600409785513862223191116911265488385405135618540188492980506786376108502711847512354048479125435633862142537461380269885843136206700398337672825453084563872628693980033296929628861860923753005123015811053116740721941087935269306062916895406150590477964244080113455899259802607320657050907972834935846404036183249450409985598645858474742089635282871894466936062899050597210652075200607394962077928833817294666435222105731465365918658896016493331899352833464249889534080217688393366497880959474422215233430320539112132412645280744230457381453005494051710999490426515278720721190555664012422826312625463016957226660953399215060977358138667974205100063901401232760963271543796967629690963429895925503292336604006615901411141151077209306594102980924198111995014687843529212485462980954011112649747563601208845164345679711914121553504343625531002655525441091487587409925856280547628256539429578840280206229758893576061558077391920466273934826941412794259247098964304083324551963525912492405353459649111143507385397477009431730952742695801517866739757480104116860783676103449281890702609369387618076963071785603160626744613380294522843985091709198460911514138669517416312140048872493140838762731510950828285987960501004581262387408027896951104273073890991699631538069959645930384554497020751950654914022509414659988955950014493873621310507179950555996579164827291788638142633915151494938559031077521529413464661891930535634328351065721585131393216995925615952268761433877835097074646572174483327240483761113401456464286907242487916294369595118677168341302421701698293701830421356034345505136122326456908336258069797706108534020644204906588096493689183299320695640457328069248771055198692776163427185044467682083238085211349602250941661533304322431217521802890122148626337087732185479409495627831087045266256078421247970697737638014810215000053241416672808483923637346296498450375651262571467612238714918422918608767386261679996453964424408306059475731150969424402215693548909643678029047525203642658243578638862562832945225583699439266851954289034060467793261315656102423557511551745311341646113343231881964522580504854910005998299088236047302247413075024356473895686619674863772403543046761245704302434628476855100726593171320938778014882758726770190579851428394410917801264234721937694476000777991147683169884194431915126248806004752786600466175157848974424074061102406378373567212480546123419911872403724070293494716513129546365609787113739565496186436625377088683105309309993113671390572808608449688564907516479605065285435767421028514620538252355993226466176317951888020543745207197803251513286025227079186243469119984822677089022673397249409364579781763779982354518162452131107513855506327277181662516540695920244674797341799591944329087491202320888869431001458856579164618354330365226692530457956198065893440081591011698216726867837998923718076327135241070095572180006771101075805635959486029606844858288115767339999873505759335724595399491056331427043919583333541525046872635466897817573639634330590107717207063735895096033364325733613435042007089115978082163920127012553403032744708598441263072695271478790748773563919438058167049502013503707195654382899013602656177503831720645512356717497921196137471375217419606970560871686637261369654492402558084185755972420144335159129882931476957922224662482264793962340562322200365525662913888127302496230693315633287665361159638080202164981263876106148432043445894602105705929104862353310440860480052737382937112464634593991998188074131303378810716322129816896370982829662342780695579283146793990475808386394636244013023982689117055547323875380150785188889949669011419488566302242249214655780403157094011679836621974376048049276945279654171655642801046168737704892439098364368906163642367880987223121585297133134545840319507241534286741095683839728513526018741437158524170112875943222347447209699965135356776173752174874171188566848549941345431970580942721462652938699784520763032964817866389988020786982075767836638472589328302080117321510557031861487574396242586738353120527556030557103046561708371895041582902379883701695339609324181435866022744969896716557234107352119749775309846904301203083334660378051677228825076828071190883830527943116370987168834471870732056989875739320284628798815972903606968064119876686489448391075062786346506464963159217381394037183165601299413759666152148240839152337019039799062729713168274285406114822697947728649071029913686044107017032683814254131087559497409252270213131205878485457264496275316340048507865594843425284139414908051102818931314697225008578062342898790025064824864163482687969835538359454178574600908148602212221288862447349060647511433470101027975034774798689784013336969331707280822032448032844755362358371710788198903569849037260845501984658522419302447286677750744259727097933492290019583131305832852007655201605912779286955407678490420276552127632417187329855999899185632436206113988823766251237658064864265047633382947901881606933067244951213747058939100483902735484957808576281526799579696137136563321735593418909737718939823590859061558636564848289783418188925298969226820746730090545962350451220156929175947109422100935649496723505559507258129435501304766771168908692733754025487890168054428340550665587369347556527408942718204271631220757722508680382804988579187868033416245412105552139657786295562506344764992923576585582536145037849149549786421047607135317578019609499589252694371071056461070921929156534303087238184771543380512590139214377288347986551837106221661318882210136920625666765174282830719764978026302572748720067599228773218195559338914819859927109993804975229767748777360338888854959187520690334724902775484042082222774432037560795401909052319073471485992632783544832889017746695469947938990208133433948565420012749539272522147150398991022321023635744094754000409294923884448953879246731961173451108836456576896245742275370348463298233389344112898733763000269811577405430358690115855892426179867059491027761132778844406912231217155937493873505732580359718668824876023099912166567384913031758668240302695460632128723078288537875229924677188591410081044704604212280524582266022051271879713044050042393027698417580951523183160058315658161105217987751127961354883558044079322320774672866958205936949947384614519578686395253757236480843882155355875475132977064774877079215679914244155244951645358351536600009546678151673434932134593266806282598919950081512267445207226245591861023490924472902065387315699295424850122680823479866459449235081594783721425822539023480747423757349282934386535646680515420142921935885227689162564659916143275947674826382957378510519508645076226683978423847407289443351674391649198284604665885649867328080175425565155604275093356379837866504708213692061550225807702227784689168244656235131391608248475844609257532593330153130132075865189211343584651712387163619286604397314751712611920219170742206617581418664250682344308400996194477055846474933759546918855508857032439484622952709453382048888923056855189720149101511832562324832302641013223850923932962308851312138971486319702282278920682288669137002552392369434149850118958068933095842087531385504139311313404336331653761714073830389012440802807691666756655121273351629340012423103967476427410466397374064948078340969156883777469225361385764271482617371814632013886189524787729442451636830402382949108452054659146466689084987587600216616019282186024839930786774407775693728628299371160249369296005776380863322662441095765064586443260071547797477579086533422250992788021469449349442029042697197636351608997811399102155584940427064514129234655199376902089433497539680444483601547870339024788502817382235581739145615039183262595711439733455966329293886474684608762114434190247774796993787752060694012244004201113399909121020230317399662542347029635906986803710716888202925295556037054176602138707639851033917259507172278495288499959486271068007857004221114035828603583583355626622546518318265373433688843933941405245820853689262370784874567836150626981750094228115743307071631164640671778824932848788626119037693643297156023246623812761578509690597683807052520231987925261464948273724326958740131313273296053763869225449928161436381547949063477160098269001691977535883258888228742942706701736968274065919472923837944556417428288782685016075019649943009152854715554016926154532094648152867189979325987231462650000922719843353591757623271165704332468578518358131312957615307250822078260826427047021782517339890289660689856389177413497820303199759330142644878536860795008576369057845130785136808516037400645073318517211592696049898385389494216697276857557054579843348153289412704713831523075635618859850684029472827968207067737867936021998094722425404569215243551247901431902498965926616100644641370868190649678456786167492424551196374101776336899487207469772578825243546173491770531185209040381276069821591270414385636018341594969912756055563532335721390247357693616998496711855699990950526195165964799563357395789639831178162835660946729002802356056454461600699917905169852773788576541524325360820613503976306952262579007988953483049495282747420907620907396010019507683586980771513771942520121788050149738990453926045653999367359230772052853935510704917169514922118841081547251472071666064300053860338285606238848028496735473164903954137481215119526487323873786579547824927755716083057729871554848470274202336286585254501820889951533110203993066862082470405570904555584950153130135051982788397708308270098408031113827749546189646041631775344269335940405083134803294392612212708033036790497891624464142914266196604222422519920499207428777816645189626337002384695890461944018401679114322738490972797342400343964355355290253503694282791360069300764270795904305377697747157888864953581124591497909964909023625740722161042034419679999286892178154290877992052284268779201032226534454792906353407496966242326122542710568569464954077056832262387770484918713693424605426365142750425742733702579635723130875422742833806360508187148666753944195304545742685471252854551187995903840616023037834102764754115768315238485844059605148433711835488241904948769047970388693554871000401855255566106083402351269223396627945648519775283463428313747081665291465990254019036302309474013170953174845311558178960529002056712085677196833876316500514036397238561589435725476934652802872481045880250878589150749025363292656620436562777211243041222328795283836519633314524248771366142423035362698244768941817548640705401603774774009356165159830875945162206843822438633715761576448556602915516622897204071687737537821780410795156424635822593521626153448410301281582543730204845087858018675020714140519388858851736080655231364662819667330201543340165449496954800540754941316835248023042588676717729905791281185637220279027231560186384930683683077308536277300796516504838437932829460178676183111514701119048241007300593484620929834699122559392007277129290992349665590812568876511377446228570626407271352674375571468090471508833970672136987526396823483752119851168784920800678027089518442891941962499452832565078076316482177983289347873610904629453778443048071174624343133745412809541082561774889452779282700845803213526952191522722315974359868260182078599766630441883365958302654581678291608329048767435880040488606897950455500259004545335056620344124725042211506582663668976863986905495240146928946053482025708827471218702283571277780407648919421016954768385965730091067691456775843430963075822422511011965035490911254781429708299152071506587883374876663044991311667714980627268756364556097419435348675975465918955911080442221429872639129492401829084075969183731534472151315724531258442839284108982609144249290373205582299740206523854117550180095737906633903634614595616645674602755020941515824755118142389609706711114880035737613765904349516018596637333377591661582088796157440279688537168242461402426229367640581875605880406921229702227640071356044786390548609749483622234777165078689996073429645366881471796721628537936520317874806534479450313708480625542143586926876783812317598353929774182237863692191814372145644035747903631412441482117936821191577818236483847426163799128195117313210147958316835435008000605420602165543567364335656578516256915556113881592083196240116717768908423976693193778564677617266099565058914808179580468778686190800197293445780533726138307636594974114622886985802362994422805505576689967054199136644852925923828995584058611963969107257568602423603456849158346998840726849497229222218464713686074245838002430083525916019652819924385543434342623428405327062839016997513946322926649158843737193467469117874984696716367978049703105454655416503947744280234712566551515381127448677746093665289171012387953086030403635541334003794797936958726705796189421935352039246132048951975720087849548049330343283878185523457384290580494667643765419080380887239302195087142330177868933175841061002537199295530280975115751874406996186638497030699262470719518735167391309721545385574473873693020951649932626541930487337966768048857239219408303694471629920331347565545450666863025823945591637201597659436272033678148574352671038796217575440411618017314217623249712485291598082799067167840365071857094560393630810011932259509594264273893393407198100503862875220194504927657093498894231466327759667518767001790579597048701161735243831927444976634392661367655610524740375177980738566732828642274170939760933937224019975841454155180929313537316541317588378342764884476562179873269000270431120449032351756860934095388076136289726239209082269306606679605364766893350832417459780293727837898913803407859990045428247021051395090514239189726409532061748782405180718759454581064503769167123343521302452062021417514483630696619713427905750949200647995771690047658515067178601876366425912647151263714093224108093735676210038834479752134170019351097923461442042053463442303248462468373039182211359162480858069329791251048828837360472387024507605990661529615682780525745431707035056122737563288103681822359461993276918229198230606849898709099525667054547567395230604652385889273103897929256712486440210381539081895023881578051571079689414001866704548949776370422703710330611112582139236943084798484128821788226663245881298485289917337162353166490190497124713408480316772652321172120173469197672149320568611698425267911679554700917394163666535955074091365173292505469398776907302945246057809987251318390336994310356026836379368851581583231042567429020816409264086028043875753973764184085789955609755665797255893660799017948649301310143285224941600050580475391796982453621449013626906799350285081626849454597869634740953403547805361630647660561651567486064196341877799555122591830536195105722909161019167530897179505097189818138397796601662687944099441676330941412121691568674815018890888190363006853189721657961415248787652003279850770060901130383957389586344794026151572044529675474510341904080408861002309385201136920160092751369170138309619194949958564776299259212928517193643706010414886227756892614028127516914715473851301633401447916616658336464786323507803788565161706662887195251022019239503430555856095375132188486116845849675818441759712842966317973605955236488728904032289153393956928803837030876071224115580498214332821976333062528200697429155064679828360937735888648893796145695981803882124968965076362452072463512824528283055285381221061472922084892917705065977033956982380139835850766326077107532390038482883775722166248107785313543044913342255006590599118057919745513387265899803040902485629089866419853944758756036054418561760509242731691705709144212477346622502823470045759426498265751413295519828039097912802809488001671955197778776112747103921341755662371951384414731805823676258766088015905553411620801591522838069583413065543572298372784422311666496496867900831275169850091960586716759747674623756453610961650170513853032557465488815416125127561973526021504471474501476814735888000647629997847097470824247482740806490924800422608347376981759402094142623797939867273999500408339369748773012158253359073263254617302114512101729471274485884164928709037520528040025080890847204553139971954133356624406507389880486492522265038014656179564297065506093912740853981407424171208061365908400165760134324409567273634740619499089211972809244059454658969797492865178447056851125137323140515713597247263286986267295713497795482827607081391257026401018310433875097179952681110889979008535822671835188869621143327902305073271184633606696615123165560041909073101843299395700660334422976447652415032123183747516733407560630330134120799912606961535273804919257042380801421900138555452297488642240514423245909374872948100386030985151933882719904990727008194682244478103055263289314988384794645989639737282204284126821912958646142700864320101316482956122939972325612665179264279257716538789070388877388399756233955704039810192283539918125426493368947304186951744134111370937518619995127469646007584712521516042459187866152250356039533628578232478802052858421439253728741794888015714816492535695440278586618492602782854534600748030356017316123506810741461823772232926683271333554987094733716132307533082370962087741409958613660231446625680698256275806969604587416119850164031016835842921892489442365879612378879767446453282745741835309532073140132503367933774895167279922869365376794519677471260252070648700102211107591297194770156128957825251987531952922470763342092721015896542013428757378034724865915385120535027892964269708816792003791346947170923214115551138110779810857582539517990516378069545942936824969038269314212172941991897939981572733259610315928001504822219198915792552205948456630297070491341850722232578704786091545049194176147783685889000529808770844160317567067256157423075002636350153201024508716541285033755393413169190706249098662521333314713004878767645525239063354617744873096835476660729053343600520771758774934128113529020673374044239719469156566518463243362736040347890705845463237780955068517225840781717827940941508841066858821362590019239063867286805168900263231054928536784046581314361341516452234753225016526498766522947790284765543990424728537767106640052328490839767094501784133828587945457516838993947354340547821621187875497739884689473743083500136711277239631149406465713872651247856157286517455373682509232008680564238796871801826747736231560751624701319001019479263550031327467591977433748143476944916124272389507107162305552376977317625911525442486480785945012825663906127465448774412674464204765540780782938713535047393210021803584100270516336181527356684329301605971746082544388938502999146369386213247994349068868745498659583067753767129219178513080744502083283297716462495869902416205863297428847663792938298058149613842321777766010435409832574689982308607906186808480059993204230805379324932431761065056049822859643712870290367802171721289885970505058834056010931899850715245032255053449288533756492765622774181697283537529438983139927592056449818844755322900605857902738878754977332909302049868750828289956291855272035714193029231319694128062127364338442112969432742539558691918177772254547866791187348751729773622549510755777679522157785331221214358254332028701674915825320942654972906679817632771611307455861385969772114095871067743808197734603305446052882703488003551373516280660501437228580177035020599237155433485430277735751236476882626193095387487319342313534710209661404028537073785113818638958725652081274406970646712974206157557819393450076698852269642911540219177930412370533973967711726261029710282940935157483088479008822654354485729772279376741776977345734262738956068238345881668214282501232409601352431501957481754685931131325533571732248052016670775517077957633832572925848182825741803417742023546491859291379489814656097932425574050908889831688099014548467167905077680805214273695286703686132088190856176352531651181579596181458224043596785073659587436839772085046476998302364642021261661150725528375229041091874998741841841589355084074770723344446550201005966562648385839854751009226821049824915506263248196965538724721431556785425276974234827616646714177792708540242337750173470110420281537241878993998815676407547616255031929969000185710641229848775310460110000206809929046094128512998209915514351312308402611187023749659681949118746255211036805406757933065486565611556367480433554056973068534151225066017757423294275387621041952524477503703822124837258465563599253091041496442151429733171543763749751905164712052087642471833670187110025738868077265820853282903739484118727108785674153121741745847003566747946270416422539553063204019174012958593136206579134171432960247976192631156023803370093267881385118733598537299653372841081451662262344880591598498349963568761838020869269740463945455814521719167845348999291965322202194948701857233253805957799810475331466677374535302313245212725192048379176513977395776580994640983817567639130577727229695064731680632514970110102269049744888470463838278670421057269975592143903948965816925578201825330908278891687548141114000034835239478106192616091892383693090848096921969643178320802743741352771630756606687665332681257091228925259195495692593450751520323520931918633737439341366729890453899699345804741859887178539030826396625544189723107575759548833153404618535863899871392186604355500260097940059987668162354868333006905027761472105061137149944267753121518014331217991859652069447674126665717259059634054374465580422436678608153179025479097144301064410330318126166462871195801689240723325687577844394696176079473832069588405800720752155742746587818472189861943453659950294694103701363107544727380726444800259416589836816204068735312607404577618697438592303244078935245660845717242040530578484898211302140826005928003469527506735897213120495652044847026945119972594456183039369816801691388150889834088035283376351812563830392112532928154437797516270110642236249182157294757835221430663064149306741384207435828900438326510301430440935863578173998610469143714930849824886113882669985006828555310367407452265139196811551629977192037179438511839600812046023839065827637197993380185703266756806423333051702356992119301082910658226081181599665891041648589966578985630349337827932170516865781372397570388558239619998163363095183437054282182829996753221070648915701160392452271352536543952163541121967168319514880502289261030131282843334784825170899194962499019658682831342698838249735212617207347825230761835578428395936937784014841272872978562091231290500768765062120621476143647691664646704035734977392926696988061028446498183003996849258834841372310473901008808303547474651314816500111089603668826375351785751552762472363261471122894497850771874950093477440912960792052772751022593249799573084916172554316128832789982679853189987107872868162669094389444259324886484539055981341120455489770576786977053087142920344710399705804943319283119408954742282587624471392356111252337870749807917863629460657288819779483348196020781602000228865002560962127284979596094194147234376711379325653993239698356095154688376340383539553173319820867657272439747648737460300308125300158920799648474952163773038249400605372032773570864748914856878261736731768413875520752582046456044470339741394776695522309678114599940058791042864499293777601614379243283590679829335440010402960202128124934566283816687046033471527345319050288613617485165651480734887228307556861780427246141993224979675253945797735208097084961058286459063822704491202871409639277895603744689105648309362252944436621178666444894225428016386340600061582621757076531890652713850298817305961397283480938526749271546250815472202092663902921590808487830013747468274384604320161109903313132750651329787389214342821365612832864340761384669808548160281657925498461292648608375928849512327197521193567002939806241769586851133412766074030071613939385083159329776009065368154099509127957363864325326461303845333190981475840545912513064544595163483387851507276973950648823415052373036737770253117216485475289637631468834067639095074806487906853926620146351214814733059716243936972532332067185784433209829563499724693247326753633102311100928597173061976904208254737900366183544474334119642741981043808471074702640334709242829791854167066757352209527348002733953197528850066781494496746168933744805132646978990667902553691519990746921988334845387313983813143520554513312704548967385449411852970926193151857228558805898957923317935285517086370331708701381636221803527402978597673266206089540538182287274616908971478784518813307669170934495358663251082950534190903425053266785154565531339220824494299067743433349426110566950306459341537387961838615064580467163213751409502052696471560959078813286390953765643307887536850605984752463423540080582434144348369642826248794527077833877364656311465600175771504151864572825720391920782118982399735307019585165294329746400879008739554097582597004695512023299700163007399333420099367548703517992498417332301238885021609098406313610281696837628987654621039778531489306765817144419094381060827512070708253754906641105556022733488048668483699765712113257229244858253094469740762160890570854085940890413286012240853864458898726842908975264322953207601753622860132632237992012964262681298368101960440114625778523174665741484644256954474832821817374905831188311153555611059913931310350703735155753656109335905891102242604180250291744545606737924949297122664772048129955855571860121527911400188605972353529435237931455013520728150981171972790022577891998171465851096647227550484303415470081081818569133583861841501091876395565304738682999908549775535145591494013724547374666024276668678557295087325035908371014615033598514401239699103673603245193342158976617521115738485861663119217470619364186881480601804286677823441161436100116112151541322134726248487348796869209975310555976730771615942020512640542278583352079286495000975809924703511118489673996728349211347383709788586311433178487251582556189269585254983243003310467519232162073457254675428042715535424431669914548402631979139548007826665895487610008475634508146779133032494400608356920062511581316664650103239254455387904655027892321708499785282051190575368794046504589795386705302026852031893612745109669946868959937270092012978867150740952098459561685628298034635709946502200635718264647675505483174132968040101571648011110487795838040397467925940283070638396861831190930416639666214611798540927593519423111928460891362947495453834501394451801937810999117594882551732827974413711763221028089662721293678470096523501044415652193434158268941792757650902392891316400375732631018426392774562768415138050938762359770645229699596386514003259720089408669671947726579946061192583284315548715835746620621984603933608224133999246528344378674427579222719439910407988224427395469411077446092250147592575438713006591386468539662856583232265357196854716811136726398787610148289227865580771938617451074260511478815972506601539144083703720928936521370430282652312607107807849701336598455578031498028144084910864275646143880437326326475977955009040068871530985309097817624301017409765262402448305669352813966042184788190220817135698432695755052138106637436128246660557385989340380580517377965494757617632991237340016855010247084438738325351479707981579279547912341066088580572212929557308712820433784424851501024877677965542290076063486932198677977356738260336029778052908813412684226848967765595086456931664121140898743678813860600452111697967360450088611396648219710077564725487346968427108333947752532884665407966027192261719215858384428457579667044579315178949862999874770549150548443789802009609016975634101855499271674014145086761423670597926949280626171360825241136922995865792096936220813070899178447531007999626731559974264716382277681515093221984620002302156601223485845848025601151374083041323688466370611222044527659121056144022631533990860133155201880518139455795342647095597099957748421623076987797543476045751694504017334345380153116744890042470881630893638847939561267957306212680018823602710593912678680094027400542698154400674872121694926298883089991997461467946884419792648946074845832335269889034675428612256713509788937754611460501698868575445858054634785008749336106300138974784211237843958257992347475567295325125453599010479711285500551469298903593205483429219185598918282319655954932447412174378294745505048357537017778820548121023860501675610732900947072324315197561806297825669588589845552976813085988191625669126914451781739339472323265105925648946725948884753493316264994662679346355684599237308174587761283255548001298050033288920511966086784470657375078501656841519996874910935366745704215510950837059985457222093877604164732527265972616750358680924589217880852045519229769620724350403040345112940725329280620428486090092621932243983109654223999954865840642899146548304790690741548132581960364110886708044180095762775840356922383582657824244318396608864935861624940077685415726062321867759915309428017564530702248851071483445372211313057938749685190149568870508914375483196668131339216955974700023319351373877201338304604593186406278228405969948838043210668843925455884710161783065151154572961744399645356650062653115403553590680462939936068785315191526243470666823254013777471587731804326433723719443703907326999025490811346852984117564988930350739806871882046009884986414128954512081013995872308779157485757407393191204082254333615758146348143130461659201079084365605525502195237748743624784077403442830886322183302380357397629943082462028803685836621366743578880212036977971414477953805040287802472944043942732178882147767102555346955123182058264279165019284447156445773716613961119529673837412034848084517712715620647070511220592586000564517217708618796455334315932774687515556138611261090895216505451800858733876361866651823310863343111385059441883027382541681497596284575250783475886944208842946389930102402672792542264103011545838455241218757602042490340841323843690480695146026058858512036682046324829448261100831668345172263758421457044494044535157949205079252871653821161705104514153679143944537645773562240662259972421199150342932752719138747244288459749115689825585965335533521924725088228189144459258675352438172742904741349649682631334207029176127477885784312310362271432393004979171673871921485390315513610604417365634591047211189114060233009106132375999175731735893073199829933130540399465546014331348828187489047765276956128514400011019663582174840046425375212849916293010360702737638024353755325020195916773522986658466226813388570401499270482246431740040274719782739767706376090876616017228239107586819691794809402108927333656582619430729796930896134723853312213140922688486792696926499390584453431672816162297650516237743643311187806533356994438906385901075027265203995331199166991839051182877536130373707968545224599848184035804044672299530400990246951448316017758361609697277372706117725258534811811878367304631531029914124366018768734788493254195805830412229795923685537173779569060156358692476720341405646981120442743171643672930710922225161477191363236019621309801269961873067039656745096832030330659953709804992987438418953372176557978880666001879645047059805394021867623612486901207569789991156292438639142686174159512073027727884981588083664425004975321353178471837499614991401781824290003260195117488231858121336245265354773929670417729492354965975756777691984194899997900964795697359602478785923420788787402071219716076553923540382715534656595530700376388932129537180872613000077591980713384630737769208575329187955036271263153847013136193383502397581660717221439080680755425790981795311896296970196314616971925499467323254789288350140295392042970023167199645403100642159894571461450533468899553619514503420022740519897573212315928464435003092336819749552407929810955791015580995271116105378089608860918907984145903582953110615776341215034556572128067204249204652197604004236373411367271732439007589981424526547194723115861847645203958818894055254887312402066318307165084594471648052731141728702970105052567279177664023870796822160525852252710776364695415960762917572129053730237444466985176691625822214735498454424341417640976270739037674434496262772782948916095431694970885069721486110545316691653346991968522181769955410446032033680088926053596369685230766249112296226539163920717364565780886430257301182038146671602286744981420116536463812029122834374760407868299939654901333457049348552089291309993864881387925782366628805944850985763858477492528778689710463399942329260315065822752420295536117373176039991371567332298787736489554911844470564676007776456118741623899853688347457096987023471662046410007738595674895459026236703672601494006422006061585834730294602817805201149917156955176864579458176097889078916408614218157724101119359960073822459626670795979883589500513873632065431988906825878264036486656976051663493817128742785258862566977753330929846459626744853202160904576063617985824673558411632699186237536163341537964130256997868018653544342487065876777579389341638055280874523824944011037221505356488567250785961213988903595472305892784904569117866014696075699276507284129834376569628695091738626125919742782204636974232304119190221808341471530121510381745782185464297378122196962625191522860517612650284839723526367802144082177337315624278954326714003801098697316916233742526287622765697469730641734095550019555609565524253413107513169251817362577537305534948361805512863153954512265449509340476836041061563200870069204207421146333420820796104168982248017697397140268300843421889585613847181513848054631616897506296307894551898099341644062991910620324019396973520912042441963877788124782480126469013654793173842685245984671545021704906928240275937050457856845908821745152822663895388069474530115461318260706461210484537294258602731658569213033919785885798336431314427926693230285728199640211727411210810526309567307585716014965506158320600621893932207236510877271415398096558645966672100772630425542730850905664342344850070630815438255777409091666018644761662515878924772185886099453643820048258813975708037821725157639841447105566917773497965044295344868377714402607104284111675398723384529480609298678251927938266152786797595436223033819292444289811367912561142848458171008433407521005472762621814299674623972311957781514458810268909029750313233901313053778817346523850979973153500858780508689647176642398067482433318793100906247294004657784171666712177294259473317465095161972324271238012281129728679024832716546644830253887062863475195407647009255732929678913892363890560585248652041280283394942403282390450832450824717462790098585510640643609103890804303480993554725163268398381234970881878412025102756859649180905477531055345199628423319151188330962367168672578500690891676107656167512645315862438375413084704080063223478191285731473840324498023788013745682301160487048822126160158830681687241166751716544727912592978310210702217291937348985394335326697607380487690583534252945870513905549043227193789918494060429006176717775193633469225744996624346945066761491231225076162120628131085301247244762244814227986396110446284131259405607036562900230332840159111621629120562030933853917753908155718998507938987152046534226638926273049183138335235815731063593298171332179734213392264113774479422692432848210721768508847390685086271496162336020026406372255359342476857966273567345120491784732520107754502607819402843668042320112548373966991884981828308264748211570183636097011694066645853166151765140026441204335524551029830296436853264619470602586372558806414788869663444151779316376760206444583073043896761160321897671165716866533037706766620242834176591497011861701905693104054073439981306873198665496743784726600882478686533206223899397911874214630384088389891912586341596206593052455323784917223139601041638369296466860011602865524080097964907876975652297885858849637999593491150884901767254317231595498857524378887108575367768698019835843426939032883368095051691237169926598578878892636807827795497833852998473109598126132004967791048656831631235827457957607444985049199444759259833442413493577594545235511141404521752802748416889050396880567898876025234811897110829046309744981334202981730946441011758872089820582108052727491817480195119945651917146659310894046735124031685154256275568725856816655374462449588978567874554465090407825383195034567166178642420850661849197186178062923869779025742423049885296625389352626809537507595218611702965839067871839073243076361535578282572375492496063892079828569590089638426957510194485663218340567371005469971825562522682660608919217348407944416989902239783467782321636189764656066081865189779886495465490085155364371481740075570517719069585960286858058729594948908408887204352668266415792416359904501850068139575896368690219055524992148379736926411766334345803234243742990413862558985723221874246850322299126397414636047312300761261382747469902780284281841912870733299805466442173445180544625577777358241466324053091164964137220612410626715255206011937666329587232929186225757307878806197483961254632475013892402841169406013192809304037259953768430596949748671511568235891103543724834906423879583181594850460427159264969869873700633190504889983043730669913540106385878860633494085303353491260036610196243895903592715402636756490541409281661155025825199221185504783167048233418981294838451839887920629048641507267486790897102323330440520663898426017067227464180106897002866682282352552258387488552725889750903866261550471175800212275462758485780075111338143740297052059275017641657966386996646598269450037416431663067948350740226812803865643628867199556180137660016248503756285648152391568591195392772360208626957845297424887190369087541656719477715816259696122978720385112232065671188371159332243289753343583330091781973623284017689785608408868927019604639965563492278263274116751334659987167816731226253351653406076342225359835607122864001719708939951622112028080394207863971031025451803058702201940799912219189412786426897330752247782243674378337671225550353079282729898903040669736079826454048542459946538648756367044862343529875931927777127873184079093657912651481613753843293572194961632853641415659622293854754699767948979831617712207414176204926609996417524320352086276996650523212402797245344453598827225876325086759080034128956681746967783200693545241817698204595501140334650446133031120102693660977554519977043707944942662246609639620238241149134513028166169289861420081327080208103295616608544892695245536942826854624365511014505994184496627443098983449261500797100918629318991773760654864714432463481027496884605786675045297037186345832332650370790329270898666028862050907102927570915168514251477549456147824663598177103375893710961000027356746226087753656303916900923067425678148331114738465159874215450083419453436252191075243763820538790549877185730915943620093115895570368676829778796588042070976077685085799803765122361408710318760501948510025460928906539602146671849761854762427314443471558181906872488099730460024456203316118784354475022141662096117835184670386045705898728341090074736821992934789825340878945999777172555422782738243092259333739176310434190454273871330234654473388963748538956531431242670718965316099699520425907953136482241887762042618295886067804713096970141733044700861939977453165639527847409416621461957907029931155120014198442894347423175361035302803355903557293529931624392119346030965319365355172206700989030353313316343978000793325075907993455386189929769328701703477005644106545941162399918354855860087531726168168040545253957311360243043956485496957608075787542731549136283988189515971547882555653545007660031739940835938750003176385036281216982144634821669153682978144119480419501934417276674081150133450777557040826808772774276079258213005000898272836290888352840635398438052299610695820543232661191909880543960863029203507608604563272850379747910849044943508679714391416864980748310673047616062886154982883825464035211817252689529773437775028277046505084834191549869002898666787392268100569469982866566808667969939842679886824392665645638489343789325156007365484238435201399478119132583329125221364680061399221992695699566269863723452582021278514489600252873581212197849632159969511634064134569808660590782568284391578743649587114882343111858979881778262650184307218507566631667515480353923798606258769788151941816980033574949329130434239688746370611798957733824327770016578508190019209599716673507952269101991193361360418623685577600493469225363032845840497566687460674292308644354452966494405803302672496740955254317714690751667676998321527077957292887902041964307341409954721329508686048670411809600915724810744248012935955019008155414970607412785010645467298295819674460220092497221425313984675503752004681866218472831562662352440012750636501950033273644462554868282731739026662943353316207032635369465809677530295479332728052388397579540700348251855182527496013522964005048228345339637118089229992086484029559814684934789092206163978560318334958750683905383278400716211552412039331876592310415502780168929673259802668227613036400739092418308858526756775379846612357879778408906166518085819751249823331555608901203493237293228071321131358117196123985881349985970006324373996025156672578080649336061252682894291919210243629774297889676991587323166582660042148997723820012549528227761252961081398540601057488181393159215029392063373822240965563112083147698002727752718521644645045565920939277249995856678059469655219948050655404087540502567018881520682945503878395114895438532204086801129529313317673034997733026883699538385351420299232337862504245098126508034128145246388732382004839341571852153522585664016121657591969806808790644694195997440751354855646701118204932057959353645158889054565209032875012262193345359331294329771034902560161930523403502175777078334403923240860561609332560686433085149399628859602836111153383048163378902786438231071353737136703758707424536453281122404765313986333885412242737127482448312569007309594929500456284120904218969296701671284968743598731568541209923441677967540234696079475163745219810478896623827978962443611576131590835325006201925163299423696328577231516462492061548535153852573533533899528437217446874397381726971643731674244484700088268252574097539748895625876890309933265329300190766988310423486900843015328252945346767078033811391184072473561710472877190884105998134466302079319833985872895663772119150204639394575311404233466353119114408977989299386112214208028119344033758106748854727408934778582667898202876321696611701928161776563780828708206056233633441932708408360523319605085816493563353869524564951404393592887916967042098185618872791025398467797194045569695252863258719457504623204375678596581616982121032979152594635580968544201932495247364477138464069895823144081502175169872307556927527142608286208861844447385937778246413782939801399238167138612606900573639429861527582517011720300744055961005460673969480031662585770387491712656904840181623743003476346614468002549095849567316522889225242814453941319433721472065208286330737286703315344458417748935018725963179909862308009944114766914688644256036861193283288045090722451681422471650907508015675600886783625596441982757315636869167093880200502991280980280559149203408800364569529765009534402910989556823469464768708269464758234835209445355973324593517032697854840521040244619402983050961288179912027706699408386528054230234415744688000831790368144828972552318852971650923504376539314913036903487816637964745380024046013667369195320343423570381272829422437525177992801980878009273579920608801149748385627626135623999897279572645950150139787904410569688748482741068864487361736452490409089030681811685557200681071231342649312039272638154495139816965591229417279171735971212867336708506971833347740111034116510536318932973971629867722765040077682580129691722198283294332431252952573818916327513064399047424130797794590121128619780048962022562657971679472825373720759705402884343366438045170894845488549006098075796283066846355298941033400173894202246573266692829083238796303700932942896507570946725612346920177259548850396067622860961096498862623609907961794246319859835898036316271138232778259335171687360066767258955349914147839095214708265357014652275574052797497657669197252646559657339372749179822174115600031127313301417924862151973531631050212001065214757118705455119254155769170760462761068447638602828131603530441444179620748629827304851424107154861273538961426950942069297217422805759833566109039412075502916935044493318365590921285904072250030660117317621593099142321602536191931910059854169187621764273258525305145819657432345196678040041318730970502362542545984268379787194343332727311115223277341336454404299021773977997628017738079514411951330658150250482784522447360440565371849059443533431152672954138460372826712025856286500375503974036983314421300534634807901013354183275564324529168409115560864913559767532686652086677632932902759603810508025354769872372785078868801169202429202671225378657879884537010803123385944999374593414346007200229876525986816329679278773113462908779194687311666370592675977460073823604360489363646643963129520248438801708089471550252226041137363984928309025678308008274123477943028555775115712061306540154765763691651431990976538157637548551508337226021035784494968030759478975894047878159170453189630839759778532415298372122328311806205552220252433427360265049166041610519885528264222158620794137930235513739365224526367631298184044033505978687512451507298740581943259213597764799722941429286852980117522658571917705112578174349928912163107627800442734221020430679055938249873310205694764054258380839940439575178172111189822223971887175997787651520716189270270059106780660674144631602121917911507227778674416486769707428643331194119846604216648419684744314157874138556300137797671397993439324464254145096156864833517306432333128949112666460581791473525533850464136799632844817234960269204140304926443617273534555886599575015185325596412672868122528394090270876711849097647397586056328463391326708761236800951643347700372896210027992761302117300879350961359087306283548056594743347002442147154264221289834765913325163487631978293205971845207757687068475245274302685548337456039447515892776807670385736972938631374933308083031720716129168102800213717514961764258123927419307200037382588903851958644755388708052288346419981791738851270508491586202580686423241594977700850420700038271504946005264154072591913155720908327455299703169752938701432088402111817161088943782861989421037596426255825577331697651792916586305444748060526430040496534689942986066624866530942811285107451231021772086849899072106359003055208345595296803554642471250644926385961231227122022006861513102722706047947331530527409506027242529829477286126518225328280091348221133618862348348572771845917311875043353297298310866466972663141889936785486458876027230065942292566395921156601541948070864653989262059028812993956252192830840008331886153207799361820703667152556759793261012173722961831264887413260159282147430027859489489892768527159934419791258041278417525193657502355311646225854077294483553457246584043438472379377515422638940181121321880115117325806309916603527482423324776984923529567254335603624620229876530263648231095941556797195704466528653101716021732327021765204075788682304215086457480640934992823469624807364968594638250530646097192208654107061083184554219335156409087714739794487842214001218987523203988931632066075531926962234906724406388352748796800522399279562804365675005801887517296444626791531016524984738258674020075204690097836140098150193499410719788213635792294664698461927299786073368430936937412322393242275084542795297678596133219358063411041589866000284924320102216117066455889407679736194416780905614883601053565374482776809403304859592560154884939683770027339552627502967406287336086804130000654430731757256504808401021544609239911743196829074544335547009636523870889314595218084562359626184325331453752596343225695026774794747084153484161521645093968039021949399647373322774037295035230952619788834389363416110149905453606580163463766235321763756695932595922497016196673437669718116414614504895355035825230438049267575699478771841708952092623486175335711647104984781745406892955386515502792063946346257789152586872534911373344009537890412229457186706335175445218849845131159772763116836954669129420691068589364976863886059015929155048679148569489342014384683875135157546481021331904946185372467234964109018547557943504600864188328984158136383248339746759446025580956969729735331027124715317774190772452538484027092339196383422260961548340849861256084641712174062030138716583841362753555934015011384358206237693506392359047333316190848296903052060485394212370763944338084992803164650245636829597926567467793936198762806045893872391566328783678434165814010705178154389478057032414735686121369253436084804797942433042085289771250599307021282549436658294204096601383570649211345036617692276772097964692829543150909390344715887377585995744993329900508195761577450658592501513052603937994667770207621638941684944170427958608371488859952840762309549447343509799089641269612132173114302129955697995963967624658482447897220965391092516583691096882482809737452838656217817120610374987293465022549747712471513964643942192073073165145678862714189820983107871251135363675683400234122173466916153403184713499085408171195743327019954230567392144866329252203407360796280760038044244546898334244907210900995179057170295986676881541925765419290677404912790028409307111957591949715746079902085835531533356198722113932965332388859743550780499228162406224776819079689238346205182816942725247565302965418106914222629321637494272811773997700451529354415953380042377240236520276328742115587896161399029637019658736857383300042992706651880981050064807730730697150263922874793032727783741329066827942777428837683517460553562191969173622112157581689002678043578240932219954546690008500040444352369089704162208778011733001710166739146896423161291110990856420579021394044560663815166424065126339391286431707412273873316901506318110499955550863937105899443040293681308670817365978717274605802859899087053804620070845056306803851568041706235367374295422198993915291491888244691327127023874081625868197024413634270414246392142287515220124816066146633661097204960802218381244304484686400362720096615901303668392385598174859546104243992547118621363939405071996006601178319650895593200216246370223156050690844355030618496276644594292356584030740948118778894173816606594345885446764952056326631827362534483285580352304415204725372556759014052097602506347950384799754408564748179076132101442255361426801365253569753449855192925359531916337880913613618145295353281288730589351939028339297904772507330613667038822118696823726429176180593673777233179390352465180909123493627431813518412967036772805495233989107800115770248025560742488399347499537210687672727014042588692391325477676457418472968539045032606111254015021167395435898756239832328108629868643567821134192084554507207558074328566546809014297157327285298690806886867383175796625496991349355197774002246705761788699299641064212447399060610245932594227525540785121823305997660386775079791771471403842707311850848212652556560379186883676279009370528244936827691520919190188583335246382171860991492388439518888339622887852545949218438061055362225475367099903287382166709104208981738356186785279064641612931234257755632289327712290089819334562071511800313043276219130972531616392525218294165582569046517009321066446824781470568483902503996654993548296956096880926377055875119536971541998030717763288827857458028613038331717924846565358590372191320082695898733644404751341305348652651717124223456795535936957265891265085323621884921996113139576371593219331421144403460749218262603490384178467007926166537749392167095879829457832620217618419020767919879458953772288922475819755578793118544638014167180417633786206458308296251411835997105299912155173076387010245356773841226447004937021685939524189976646953822069519944064801921317408886369662075846028106470904421189269857075718557183788278149910311397965456146910607480203138641799296953211174145645862305893240340470736689646440168669316317239861926618275785286265693712450195661395536290214204022518959774087722154023963322573621466709607313090395545037348260472211428642887589625947469933759228395506862726472948347997643213397035413439373961407181561136188575579529292920084162201602364500061322616737148163066670763624918866039533527638627256391980668374425610370231851011268344246280895639475630007838457373624362236788219569051575458351364377052798888620451042755631727911763514416265552556854297635936790101913320773644226224169792850793280283779389485623512615194188725937850424308915070742589562259249909427714645499443328706602563309069442707964389273513184886851400913862718779912626844158072298641843103330471951502161400846389960463035365433501959841821113779711033428593333721512730111376215789183648210893054301103239294164824763630084965294029767540759452050990821334480095815761852343864430259852598539335155332356456264505849421049170958101088498992222954871380589010492878188511374060362166907317213120656807194332277748009398957259494359177256079988404472136521598081278119693549808579042048601516600903768174407429465106868306157729442162201190305488591861832834449527938435413929678131795655606121719664709118309033888617129706837478467309960059886391749764959893510042075507173920195720758911162064268393235892520499206987599502377024594595165781993903333374583789659417565405183200149080807167605008691709783008431417686934810852795421659215580352020750493415178986136948185087944066365614689864532614773764634805015636157006413076940294215757402882178423291117064182329855247491330372517141561516570208670627064075781840053572985933534551114897692728453550859143554664263584537248765763492680619963678141519747884152218481270623499030461256621109900601061267622159417837343061527476512732635029962693096282469406577145405571973887604689682524388779109935465149834335177090901017145669410912531644861727535892644262430822220048553215556236934117813169446585899575091674138810491600569469312710892766365815292758041889137320049729360035948960467419473187976651065166209436908522998654564169912871790019728607496491386463389643206766936908456957887978374087891178904206219475506141461835557711228413602658924218661784499044461731945591127842757561696630314665915518927164470169709175699081954641295271263410495552216359503340983523278059185936536110815578021652883761532242711895039256129354784008359410080767412589384089526953725232085520696272723352642622152451564292179732883159376047152791852192343886567682794194048372723796392102122474392505130053664808928699366678718691124295616364146514430052177582688500723855008368402234079061918744209207045715199111853818823501404135213808197961026143656140844034074057246312700736362433802624315630921104999179331469579726442086472587194286139894644979515784041070352803805868769110033291225153074316457096223192641003401298646080877658903052410911665361427460533946807455429587113156261999908919907612421189794479783344143113488000397813367068612953171250327992457681037973697478236663657322040735022451849034979603493715092696427751471536292465022496936990754991999607982169797479883681411729825846232621260525030354123326463720197443096441324434922103750853780352390691459028420620209570270253230862396867626489903882749213765782109025687188688987645858506053052718140111713655527069468268156734246307220571255045383623998620549566249205743029216525384634239409703794135006430228574044101342321553210991474546888078329227982702652246964590508339264238662061635396799317154757340564728411978379357516755643733488519692893298202386061403306665097272921779706223662385226439201470400323921380076009729500726974446063333001555620018553731758876779899589174027880580014854472314144799881991774915653430835074259566968397599614028094001355684847645943759087299047128185307615486480957395852431310888358014327223334723254853686978040447383046396784849803473472856370586949786013410625580976082651956982221316490081799126746514252241577400527037434511513016885869981664076585637269898487228392427773373155592368948775269998321233280670018896115948430416418274366281217404054359714990075041931543328421836596497812402382728189045349119038895782349575803016598318836334532091419671040046110826800093119561489777734020246359461040498413337408737093263593611987353216662844776654199206890286221009129727429385774951755916073804368504179089352778911225342194702176887795021164336609147536871258865590122249277666076801550607413048278423523016644091345989804962331272374498739926778357306068198574524301466517717628196730021130332288316459155104185068963327104415490397409565095436454593560788070727451340268873305260102107146691460142162105521752001359548937532271804001193901048935612893037953863516250494385387838652756174307653998560268785588601650894875492717023719860113628268798402304672302633887330277672327618366104412079107734567570331821905684752858446804600138801303598192912030930588483770894785128765688014591651989264470194029697098858500177623735540554880595980082324099721957564440060511211725035949876668977690603608597262920019392044581321305670866471249193433106130081605196196852620469176941057118584496288995223552439292762434520851069523401608714042195843103046972346677194557246127662443865525581644714278298560378132268242824988302941617260428569656200334613247330737194168363092867503542150210697241727666149709804015946232252650951761661046249352846255932596312726234867380693170086400275657558710793871432285029929912599186537082433323400578723364676039040312991007174275134617865583128310176080669448126701359113996398710773122097499447890612311466284352838321750310771815089949271688921958905725960160448867424869922574024367161693783020206216384992129505144468105938493142396053719820003478857328408114346815264172548329151101306957681346167456270454195836082186651821515797276534618088492663857037282914719120533784598904725585199738176091441482655035809664160449319972332355730227418114268921134948803450791423775780191749971753681697365844910142208049292650027139184741800807404545783640406755141560466215072130688231490178091151939619976678891080756390838294057989124725549687326244196290375733419002866873320414532328412200801970995359008307796488224353919809635073252851829893872600586401569593584984186459107787660157964144253511435817074843352146870668949559501522004359380337859024118547647045639707464801920286436792910305063495140915221037974438608912022107749524621081547772165388627212565943210066157241547360850967688076757453577224352148572962593738095907426184576690855671655812339564456604338367225434363568204101221630804307637474392825526361973466040488072401106616734319830222227176858566170851778190909368630744646977035571124606978399069722784715219189678164047530065250144579698069632452019817231246372160956541536849616531432294950375264532929976877192791991867038837306721325306878550585693500869103405059685428508609092205100923396135222955683485938269534561951555999105844519305100064765093059716058408011345660642994386602381657137715654931360766342378924634348174863317280465780689984536289104763491088732364329372003009447578957723112803418429194712233504828845825587014515703184970849967699077454037262894003724782977285621162698408658740462925343311245843464283390462039295659223373143582223360432736662008333345693714349564595082023511269864534458468761189974251371034431774138937491722677429245065244482856959519711443848550245665913048283047707494922731276142835699842879697877760279714316141217386790925304814605864602724954860580429686374237820920548807964926185362348335953154037071290869693498978485773126860675727948085154610218135700437989148618499372288074039762344765511113193866710647969918043953443676994750748908664940411718684848108485688037103946949918396645419475495521407697530168806853505465659651806771925580899882585681799786164122391944616612189893197363318331149302310487786993612785657165353558880452067622974177348324711934890049184884924221099951593047440161823776764289081847809302952383868975183486147938498432519710667829135335025344028581897349176287493439646956671077760216395293080211136411565544092433908782323281288212287448052235008520539917612168361944471763863032898554560978265337176556060613703242107173447754312777940662817159575083554640911923052683170445956211835470544049499564437155409803811368990822662764491970191852170114337856643117390261435852357285523834462273463779521364235744883595958446613714793740894558031343688929755611749972345519545720764844342212401898551994437892013564608960898135689534628580963738066164105137169063141705381898334606672117071604067124788375759672639751515739635559255959281940565759880982970856007092832249014959266797769985114022656192709705366737105800211582934170901706820714585550578903790415167603755019280121093716243403624148240987444344478081654960685290505922671407656021995196372379899931522205644049407774079117092668690240742545558666321018631319554583887186467849762499024098944763689498353184176367885026924098417508506460817052855228091930690590074356217375981656482497668998501494364937771856544758511932066875066780019575997313547090940333551930192210893532507861035615312192975522209522091065448736960864262496130462740980585541705564088032719423601578608468097193553926882468606123121415946023318611735435142218377274064543286213573665993527212578553118911905109340255033297565872604381443026629118115293564592851763117454440719570595702688657550945460838526537425237493911181913993739284035353317217026251619402292613233725557990375919883802448430385293489053960391531231242218562563065336715098656743502692977599919971010373478178763323380257600373521738389232411090694174488849381310107159244455568603461307710567856485571082834439425941365609605159806149741198765586315626505372723350764863006395191892496325937164752111770633689312179085652194958036763609093508849615901714964842897184217850712162228664195872591333305701985689411647671030601143286142322251288709420931056187678681812897615254228562172183070158429935331795831809053043214635780998560160090953403711089474502866364101867160502284607691580349226181309843260848828707010545330654287989659926201918352171299319700007244935623384015933073895895583666439056669263463655950615438591452446106774744535148281272902733737417865943340098111996280859740593107647096147878455832803833654278241625366196163317484811500205143768529903495930728061582430012835649572987860869057769346050312472552364159577054465116686345372570637432171454843702454912251576922451256325585704181355346055013488151256562370497580584174519520679312810114471039984752246795164764264318768545935407167244590037680424003316094208712335026135969107152459804403485997318840074591478217601044693189095921085542759182414842776960942632945052327149865363253258913576886090169508619294829791137778166709523614742646370069209385761584139141334734927376552207718900695332507106880088849501037653679082375607939804275337625735184799942201801899610839642560016069978899525321481331544512875335979857347578542413082561559087642092397692156971863327855337214067925682379145367260054785933038610917482038864441740620174063569518189233272206113329198672257997473961698163244110082216844063973875145685793606076613380851557672798226680076395525127229581668676054954076774348671991953961279849708642220407310448240203175289268015765247969170183363958528924040387303934143467071957358726751939033008364512667927022881543266706354115415635793281578335346644675170396811659474079320559058583181607435363401829294585488985661520895136569690458072394726666193358546479293040088897340160480042336419925473488938292524587621156742401572061880257071109367361522977589936537231584796482981503785438689463740579552780061859414770618539798277903881108616518135264457597167844080316102420286487665317295001921225845720207981413489037783827076846159684078499604762324846356183094365374640817731386573286239910206786645743139822093529489190433952862726900075537816313138766529120381515996159381150591047414585903303244738950832683134972469485677353496047972941594756797613340515933595593581067423770696814757913481363918422823787565298948745023828533221263883340357037905785671641345177780651822540689930150909334044851769932363366380536607946887274581168443097003780387439860218451458960999152104042859584372376899093385993132990071838527692534276704838168063709374350391103593332650843510109421300854919278920072529571576423018465285013662132666839638327431365968619792738380044630961403986057200278177213698459089822186430727501710215504692082222619874715783374566740772027691004210403534295372611336875621955076140088740963692713407583059434859971207286055778322628643532162572473238193593248341224787738355269005658334870021373592165933611816684773713570650604254558052015578330284403011074512006096250503936743329863947709505253257236390459912789372163913495783572609346485630979063028792862037832676048584292573273046684722215887214892540160812251391212942286564210901677356725211699494455309045368136762009044723087964732193971656681184189565300188166672507728850943586191552728065010627805664726439768310011652194620870365700742161675785140947167542613695815112198916535342101448616857223935273326022749739333360637399051964525501791790748223244303989986957924075750579026204930742600079469328100184901774538117880842138532605421601679695752071870381223640096828029839385968537644619576901154497538218254077428538394818368157429335121966754885105484926731277006442169674000278991762248343884272282517413847582279321739397440179530253614558467044340419372669266878801029101659025944807747421005714073343781709228129906562813040764314061274927431976659795870526454734407668218075855186199758911693744472073062213361228722432865896350196299111618660991577886911214823353635820944874564333897570376111547911626451486878003280486828539531343705149356137223784487152375343778937455212174835646894500416379950936777351920991043042032431618811997823374222068083682776245169186646478855312119220227765495685519185364134021127408155864318603704453645822359096279679707807451650012462077733434576486541374833215498396082864241265135379303273675444513492571691498830472774485062913381302154086988864734281762518019180738634665560618336219522484313048519137173877014168085695553363552638665688399193622986894999250519659544095966608343636420203655793838105907359394547567043165113420797085566503541788621737895572956665144122851846709799488635508632804103083431246841625544993820505728121647807674372947263398080800804651508844237158539489097886673650916824060794803928779412467637686569661303308483266366122256191236888370066107800167703626084578894011944571162290406131460790004956113478080716770702714528020604955334622325203144584595295816262612339015586766008518506445416845301663889819657353956651514934893362089463979362008945684068025728932760725571643189743498257890635385449752759716768066057912425656394733777840527013069129388461620848431115138878413933322933663923966753239981271738051020374754389236785736069033876297976564563363725723497528863674417917306546219620033844388868707259343905405346241342062050406838946730375309548654282859173136392121274190440447075352959241494504402073575356279357540908039543878706422650543775355325233313855144334456830391701208320182885456646139717859665794106518607497238128767975023817423596313227254649595162312054228897752337224399105234281232558546579263787336339673326683982403030092163744991264122689028687232520741149948342543392463233729757224096975276257526111155191459382244914750355194106376302270901937599006041105168855738005404419743821016790912657176078501193582870539270790820215131234037839015767003627741382255137991405305879093791063954211099423988990827144698927039619899048429281140337256761630485793859394766977539533192296984143016813437537054310833257425763519479214700128338109866639700636534693155792462428745444641347735086289776162213755984126458968609523589164824771889651866733176461066690227237457377031610751744480919278473003052556755014648344161386675655779082260960924094292679308896565696929175283414561523657570847533890602767117100487501369200279238272978536173461776564550288941943077588189637484609512087181612099622469746184410245297448996861863506861613855564943933704761425785208816699751047313018998350439719511718361771394938175121219732884179266032374314853361016669904142253921703202655950147005392882651161114662993997977678634705233700717886967852329838787394733910661617397220719184802211739359257508734421931283209501697160614945973755480643910211385336455748817290751064900816592066990071130751992694782163391240299094836932735100298121954813745896244347156516491550374517435354648465945892652501080359474506043734757687699443624377552148595444803803458082057808617265858315754944198956474460396831032681020602509749793251560356019204820447940815357186705445766191726303802927676607164711405152588122266090275787541370307950066911942877881461873030252746801718987801275887475286772646877718300243907779828225719903631583533667433845597503614909464316703095048864710888513350335107227829135452336673144512520348011197334617715879582634646853903117448270719198129715589648640054736729774892552269577428709029726952992261638470600111980311807921457084713249399390374155316994054120997164501467959139065747920244721039092423857614859326786140403434036141718675772545164282441855738876778748482579561571616166202245798390986254917668069137583639534288255689811413210656293870288913846773517389886099307749055452384033481169486051994390573635160431587532839591434591260471100601664786236593177218256095027844230424476339855425120711213404587532766211962750830242133664839375769025557854215862230086502826960649556963568543691312467859902388908182207452944793993071889097343519816078801437507107677639643488498398622279181281320344417044716373090663888515722008258416675448020563623268355091020049744523316479950016733294063068730124623609708178283401634181630968045981840887544082214295694688086143828117525473934721131695867253640583680222950610769461659072434314528763741199520543196847714165260586085711483394012198033302199440250571302248826380975383211661323215465172118103926433616313397764131311629774114977312994503488886160276332719492590583409996840236265341204027266024105810799697442275227501036493528954969322478407655008227136194201948071747119022270607874185671327117344503911178138815175819844766149723058434319519097086778030737385594009378165551334198198623182405065190714161618764528176938816756858447000382462005417384077899562877810504077096708698680069302496940317447630906264056425468868691407085557652871439645022731789250269451808664112460027553425221426665600076773985673246913213043928768622187552085452735781527569873194538538306403718323851173499701110362701265132701221567677946457525588837564341682469632133412275591102202741102523893192083397068093423167981122556577739520743467506742634788999407009584760157183678574577246938644916733045226004568869170390438896392016076491562845408771643010245232735588280417188023394741815052153800353444577693641640359485352765133480157026220349510965560256426229594434819055815971728841969184888442143798372672089156281669712916982195891942885399378987010567130210800970308354820303340045195334762342654354378497385564629867624889456308867384484861971030711881418810878361340263683004312369897983667238904954216049708161879934029520630075830322112597499936520857467112175437369185140114036769056919656753467727083760364592104891776369861238748789754663508914084698093366768669934661590959661572487580253486566488466576318134923119172315690513689659794004216920946904325500336700846053664611035885659487372292553109671974038476439492475421785880320926767084887952631554751758388519702509842673862182803921546576577767443401145720194829304621734840217688813843635068773976265936211830029510939171860643816457767400471591786685002631399941958637680480815798817505178729466430076304872389627592094681620363435836190385132531440108717788145470602871519816133022388524042829662438933058274762450489826276205902292471098451131087762648701727890001438175304015952427459650047531297862772750524806526331935582675132318281175651165929187519674731662095269578369551259245254850473992591543445538921496595515240199297633484913829753679541651262681484948213781843199367308135596744187152595252301799728841352081366642450324309761389719230455015739790078887318259045704895971527427215209456348238786787471431644860178496347725972154343139541902289089791559373009067516360094891397681966597653336938096857126636893094363484112522612650006267290787182191971524063775208877655341889171986385315785475418420761135096530607524115222909899729020715605360897883755205561775697518663997156943294619858162377976140673350849454983777039168871355954890031380735207697652850821426887263830260577713873176289824491010251019071195661115810779487097023588171950671900245103818982481382682714006656753465275277343448363590992175280067124285801064976731877000611602987043860500264492454732312769669740100069350936638583353930083600188286973361827596889667732458828698786023119522557868277482945610060534380823068999871272501321780128605627983942709308525252889141351383664932101808873369938200850728720472558162627348159324548394017642215038751884112185893929165401905796844625288847580857963035465253514141913739368160813330574803902831643418904597619961414515702291997196152002010378062882724892504053087729007604735558026701867451787859835196144552093323765380623035086799400431616288893487383476227491661137240052914781456425477730481140165044387131875722468108350311388261393098377961890258398950828823107133373322150563629301379716228130410387347944293855199259868796582692759078347776551917930356357666747571040721503343243200760967191801019323541692361064762282757488124600525788251432414255858041194086927919991432115713064735949949476074867752866903576311017724652914551414428774227969608448649363221965760142096828168839517319585405231155359259439790837222154759661512183047630896097401855866587088279378528266047825442234007601339498644945243442465373123138093673319817941135891764010748070354849333009800945268352499792691012861739560201559127311087346169199621502833787341583319961255372472437100617085162515789445259021455182321455869745622083326380043982841192275805006769915064236778246558315958587725613850306716917559475655375136758260639482886702336982740073275030557227720546704549887262725298366074842055101785916762966175015451550799029971764736355364297061907198654722749988458042238045985362720475687236565873762387879935182884807842283305059405307015508320281006516709757633128111694062853059007912215146661769931319752254401851388426650842504593425567253255188040458346923533214212639841817855927611022126833587908009637568864347888831174428854576828263120077917451019092126109866155710731360954814781887261541662479864464299911374872775768639213167228191369039816389152343165427175404686236735869090166008641935031382694110719963379564337530085934424607753349311047793391816404665034282118767192035773249787780609036010789676276151370988008779395612516886135704466380199935726420194887964409639657012519413812518908989161098347699992539662027085844070330545437457148998266165113338656639543599996012751858095688730833627172211166957000840516025442205089483489623990588252295126878369931854967319395179459332741046760305485802074103181387264496577750375764196251051776865330312315329222794173119954915470631970345182283133130612981068360900345052198177671953648780101652651593064547850259037350206426141050879489270679863726470488531566111637362686332505619651378954085848188510045905964955495091115522029451290485322310813846014591121428441520819278331889371781869075796325133815618726327615517162089562319400503436155105664016230837870451826624303154497978273081679900461643373437049883515358223322106912607654827788721249784674388099014802975058002768339844974732778338705770150711118571259844699863651881638063719956705375435810517385740808467761206278696886359328436503689746835117523614223371183274601697705832004514779167246564809053280992640117368705726577970061715425065683860363417452269725572786527545242245574862163536834642897146388467991730429444880589646509248221159729352560724605479330412867660664838152052840802080171717200073733606589028548415241912106046955865957912607827779232434353137269049432239729440943328300640012901102793663593077605346394788735397449454943358677421432903692467914432423353872898698272879833627524861632889164577723049695298103012144927616895125651966698715283092704195816857309270403393486782007737166524803693878064049378566726179671005950973796576728675401370544635259767130119721998624978028890875341728140684520359750044825545431409740284833611103799078842768464508787941176893066379041241873843039648582151674467244175430814072546206390742116534328093858437070873447500328656038118978672319661319109203271056701176332205427321699171077658982346591549092562170831446965538633804373857003155548798073158446863573098279492612738567014221361953010652898560610243790142264395454927498240044022193435378246116869812567028031414029134998782409919751865837028771128743542306480853708207291317906334312665536911906512406436611966190838028134407013324493920476197044841429820504910401070084268131025407710981530545788488468831160740246986518190653515106002235734002372943722519807631808868906169542403348427834410508886992527327600702969086536319872586098512369492268122165285307798786457575982763945171905144749623298615277454334708301971444173667162120451610981904426781666698850600910977148530490155637419412414054808391940090717234833701300182055020855581336070692069843777140382232893193271637835962886253855364515130847831202441347124799335364226379619692544847390305898041492493339715444927300078387330725892637177861378498177498504697442780892749443418044200022197745021001033997771410311583942375078301975297870957979570599018082068753291631010440141746318091657075748774485396131093028598088681250969706114053370903770521035735299790008706755829835578465899598294781949743602931799484705616685839403204712174736119867405322521670517622866171847869671410630204550169971345475245772104335363834612218547013542169798358766255637494366541824282061307258027122536861816284903743402034058769247877445981692324354107922903093677154359314330748484002625330844059723949726987661129156200621537703528313235845123939728807204025398846870511844659848530403523448801567494313161452790624793315385870985296591522849143787206068399403522791125250909629294495593350564780537718357269239409331756650309379520275544155417686591496718946390002986874380327085204606936274090777446154385597864335187905642603890240894072497624504691168969808671521717932382356207899329174905157016264788736094246826308018797285445887125182136328283484746834562399350919800808061685636038146887431717750798543971548957636248149402049001669871231499190436908253402031886205120799426356165009950115006252478999460317789699811933710778157566854572379382880402547652431699756966089598040756896737901562034484557658070348065611901787742414519561957037437576129668399316323465455217186440231757446122081628428278025970365288391967479738386603453132595220613752270424575180489631954644752913902735783493756072445463758340015380273282633007186323523060102179961119287261860342467692596687311039456838062311464112110430877578390662931437432533483298064864113037417517270027021556531880479096208906289436631043805928905770045863576000205013870215984841540278338686235019308390183058901885007681992555490600051209061219614092617821467925917568028912639296544364271079226474890295142213806784354422239059732033767085610470299444860136168204307086264056723131260892770979966187390213962092265455693139380820097755462523117070101173429823613077208226269864851490322439705762916604216171957717926091625978228037215049918609122391418037726508941533240829476294270765381925844305345393353957262846773196490957521478301865400229420142120679782296779546890548008252169136675554923358758626143371724838213849073089125645401200139834105835896633696030635822283635490381567022561377247085615950599375876258211961903722201399599966359332748547683435967493236931094263819679288717612277470904745087636888444135614038346548543379765209883305535551808104877137693081189695047344380892548138500047538998856409502776910677034203609242147551499182715933651168960058165220009173268562228114588448062232280016903797065001161467990755925804391143928258484480946919678748770771533354045743999817247499585412761609176805863686209300954532815253500533426734327703079847427645538299154235954632128875384820347027887584288290390845798671764758619337965393334732724829166311477160684332854026289387477661563244518349149368793440756216075529436428521962101863358071507244430276551668854478652734576562549642449972885918593570362239715305229469380646109039855154172774696651528463736087427840475049273428837368673074726508918660409892012459847483688297530246922637089654991795981567273152022922740802227904764502508657197493924926181327861814321385521330234720634048308893338405363091192890133113584785480428128618115417928399556005312239163845543695425724601359904585072960307042020751509141208666873933786114596646688405407199024143549354667551096178033434256414527426937174922189852777051836357728346408557535377216138978319023097866054381582521027199155832805551147961937526999343363538935221589980681775756047250968425936709583269221355226664955247745814003594266847863849130332227956691926126861154631440800348422450157301126806993912533253943034273552673347815123287031928773703431851097165986663736841954877054937186629005446719411167272821280616191667665445432437584302729053184925349245607393981896390602759970207074689069642213748338864489423898866651835055186269520565096278571654593606875513563376494908943724617515081058948996763609469720714762900089820863154552253613423968408387242764992188024238568503745619555379234256388707079950746505543495926076446271470964782463930226310820771561516179544887170504385845074240445943187594855189562197749060534699228402870726958078929782251520726403087126074198671188594468745210930334377600252291924275711476748289198175461847307142315854756538052861728065047317191134860491476617262870355852306245318741951640155194104625228175760527875040613158480352799170906627998858466941343552894736324303618196827319816738507921275174381059813048964755785813493436819616545996286961550056735287324795331012203489643699341019259003319901973727834256049707045607863595709813083824833833851111677225954603096760758306255062081130263819422943957326341825620085391782597966593455475514134501106644508194240636566349334552489367547279510721930825349210787399294338908736778574089530720893885786773357242856295589127202694199751060378485546223909599711524482096666635485033798401201289737970908241664184809213084303846400902201889085959780573220554306246121287708989190640214701303639471298170017186587108137456640063305632759556664247682795680823822177092646503126405376268291203408080810547768223410093567466123376886105880864723570407092736324122373831307485795899505037817366318176781526415524275815318314506744992598833562972214902466361156289868459391906469093024426547961169769361979354151677624757305674562981943894229182630263962811725105619430921484532620423453916263563787149805675736044985820936314338754093123997407642414897376075097099249007420650026861593824122043883363546390082096233849749685219101848302975489263966561720876846028963494111564772818877392089653572850181729940915768559555539737122367909107680578921148080834801119813337495298768285030840522108321728024607335062689442013964789764660792931585628750903906316994727977579648604304476046798930558147139638701086820201763800454603185730940246705583865813745061719222701757832329144094376589469657068043159670252605685136887869613648380618701617947108595410110098218895813807827123868288706765877307989493312019950691973669466686025090066305603188873497866214886483838569807292169911191860188026253832821228426477592942301197885841438431854207073373809384046108925708401723324498190181005445759851936309484163796467557543520499060342812525710727138140076510940131706388536255066259339143440777207740419995453309191827955833581815260325040848880239004089684463881103279946880626412147726843656202473837200630983793397004575275666553734511459591537271070217206762702939249123340017372123443009792199420287065385292166577113884585547474024229990067960880878789578835619365315399689542364586673927641849431278909359041221895447735502130838105672542240382139832888251488121071963416670144568369770100403890312077359131249493993746022043100044069929409973577038142912552794141482986416108476784381553467169068435552028126384462432133419883712131277113122920437627784677137186771276889292583197901709150271161216923158987314667500847013951567113506788863969366258972327689616741514081044037006299543676592027450228145827225034299159654689753599325051067903863246036482325407855286682082090638382434989165471528654920138729602226366849936884763475920328174686318700871739265588469870390841993561469199847854242332813363986645007681334447304746486057892329221742744363988771932318297567815049389033454128575927952049440362894798193600256886391414774714342561697648507239432710164073859438387621937375791121786266850004490253161940633544799854457978895273622878226182331067600092144396954169486062911072225987357281667042206710794347002813987738401142574596309664621903108340033639998162964960782625897899958495009291925389931903143504289717244568784790447478961493155675026007594271728143824161399156532041172636998172868224631308212422100083249701408260873203223668164557341613899399795265206442823157975296211378796901305073830931461312837199868607007889295342624414144727024377542781459068630182158819103551887823159761723356926380071914018713619250210781989747995572486138467631830768070305339484050789116580792551612565279152126248950532580843443462142172907258360049978612862281550204159721790691275389344458112811419029188535941225875284116566999677643054960338230843269795219775266523342896766965438870194986150407563923238069561255802317476167998927024921145411104407636715950511447376828627794810129153132065743589012736648660355582013920173359015867321927314576974201248817583568508132062069848894877155090519896152289942216101464208399349483984002741294984293484871021022279720152312189694628600513175817007044442003646816282579036899379987812390906332308203268255646844750108591756700774904790728436738351628809760264232605656249303791995356889066156166971953028804558732006564547419500411493852014943718425769818200957090527829428337777260420834015326418412854940643508525076752907036857878729214425678534084658075249890650036214061173533983166479298710205098761397047219741636686574356035262237081848519234734892746628956316768241394618632701289708210386170720835298820664421539989008294547415971466805349189106206174637890983935225866528076988414122985357509998515702526233274801820681810863721059486624913982351080645207696215866383011683209490307268605590189870015922393012928199810029561870610294991347811783350549231775603088990472375894792510805948224143066218333416568306402979851013106719133449410014471238009465159933874191649270697118721891195484586727595128010029804806716927800769528710869824839669548234781768105948969102129794333921749104173067503267049238321579003427593423632387320406921999981635900566492813201106214602758298203007397827154247723018040178040301041173726523334267871022528095080368058651496274169442623593485512080096448730772280383738773832811229298059648718589745745218223247921441484119513156036085057512848585028546265396854798728316603543720728449258086328871552490122565914010093541610502618125603704076988928441722752421609235727130903609273198273142651117627082042061887600403496924230992862156786184626100179531371449052636599302455743778810296073092115474737383988129591495669400415343751781849595067474025043020918891394413537876264002194920025928549208264598478275116471022000788745954062370111565346571463436509146807313490576185288786140297340294331978073314709617816662970406594317535825967526557452646972896577372750495122910338899724131020332988332099196577796249327429653773170681430810837248786249779455379396223611525208485779120283179105130744596541934448470642057608760442777484989100395780698725881231141415318603059874824746969886375984326850776287612834543932876432288502097532302296294987919176355995200650600216517819263205826237895748117014653756872363245438448411518739968419510641210862925331141998111072189284727214914842258239244513286620735706764982226652975124299898512112570592377298639379777421953714694846417835017046038542661156351481533968945927493118270845821914333146004862295081566531647906283132078570150798127106255884044461764218606208637551784428822138346821019200891237365226463393265700456738409564692409638735846489959783836312787258690482826114475691675131375590971365279954104726675700024926665717719735949955756137922855708288538212554829023178326845501679341321410332879983040565255042836818860318024801281570051651832826023616789160905427511253971142158487452746367970808038334601563395550399325902705611811842575526956708669503961146280845297696481676783292981730693102284792725553480237394977640694127175026313072934411610354602456014508251679031436808827041344753256865115232732089119355665984142917481109424656099002895098574800289067315877276714200268443895954360151218134397543735886466737733622170339498576526354101225489223612617601886093406241550147744899268871022342488563585157110084865575952282453426956688821947460505774304303249699511055429595219683678320374665461056249001124867221022638704463213547959529741786636462835286447360547054199012027020831836567805782516036393910929674715137715549538271849746870457090111580251110508447742120582386084107863641701322685312407852564643181979105399057624891459434291835586259968641670275305983154368814328550548321109561959674382397117898508332699733402307633853955164156126283298674105248111769426367359682638201634220659730816200503907076814961826440354338991682438111928297042842755244861781246340176503659771946218396300599891688520382902930979782020780384337893680696895876508961446892168087001967830607458885535171187479179461614491059092888592894655212262440333959901181695485275621156289002896177814583446202782053309758819955390239516973850752925135522963900926154050995142105450444763196126021008873355896798661624092070848031176362600969211399791109481834797069118523076835053048807159711087469536726929171801680361077189816932095859668077279881936048297845720701411671842025418482250676498144855602648905249493100995317772177606415819758839318218021563243650600309581643212802624135896739455509626691189765232923375251360295618305808354571473352915776021782439880796852836568908688221413468436847936944587190149491926823946654442410514707533837436023556819690195817942040070829819178782383100943444460111854189561043108732606403790231764122179024460395476469135303197197489675862858303976889769756173978697213714209126454461841032321479114865441182417313611469201081863153485580596686094837350246648374632920736502401928800096367965596689799769716021733132223069237695498280680811606320023125475613388194646148488969354935561740241899084620290833312909686400476828749807884345468574935315365381340633817156183921169702604414574342346207174237171980267614852385059435160996303789751632356507374087283246297508967259284723199572701615589223120691680009938538734500584931940424893483864740423285930075693698332682106589348700441745770132970198137682198901610825820128718708178719986136452236909349438621905963695877054214646164646460305453560107530524457458020274384270022157927858314492508073536400422393204994562203920227160427438034148098904875412632366480731507571500457653956389003300645718175703101273914983749037241824626583458565075247192201497108422102242235993191300820178817905223178852539863900709356393567077144532614820014607458325730670798555139330937390142401710897637840905630482795685880399758930472900059411939739774971103599680584126105830884187273418472758547807347987777960894796310273562082234550958538590961317497901513152612941117494329828970695611106892384512501080519889826376548661589340630154209999713330680148579124552999734517079811618228736849231458948766063549248985580470141775928714189914202005533715146634730737103483298566374941281367788992639376354709277288944876556381182334890801840692828399354952231211451137935579531845455115742016998774018994162830522092472953345639900808581642824090667002230700130188248740474962010695460321668222577405522596215166421690835919233541515168790920232063356624163063368921453193214351783292367339832226281212564310856053365905788990268095321908894580822147957339245578589757887299839564869524927320366379339178663083296541059740427296367925292903643942848372174125910243845887304411487688186752880097639714246542556697054389161481054392580390961808022759840785259788992789526909893403657680442545298054216800430473524080730896120491393668301616290265298787280448800717794784535931795664504048616439791170705106464564969673232349510465262065565041342243302051839773418914067184754156792864957932349169439889575515991035762985822448500545607379399795086536719206745832066332789432729323412002473485351004666837675479862448725958994323066710719409845261646110216627972766000622333988451889113151398830749743352713387660372690787674747976479589424682382951437238029615993327814882932297342848809871473454935763246263678158687475201553030371158437755468444198076200798650943592779977637094298543065673786246218811521069644502125991803656679200716400819637140909133493224470356053331175083828110156450609529073661022879304756970093246927320132155196937467437319151756919511710837401624582602389375875818314679353528267092910519575669364602596542219789488760864662541073062080604642714698334996718666450992870840852979628465669708457593993413236517356793492225373912774692077312580521918871987767063844787904234297683437583692652709192739768702324291376108711731708168959156031409299847526110155288227348773428275535458607273349151426871531820051225048051229390538162196871897020291045347536776565521203595768534494346351425172857656439271104517830104527400579626722103093790257157354824078917413220084396409284559086721176527242271863108829279967898564920256356650840310644460559179388767812785575450506464660911821622992081077951831454685165005879681394490648420821082061127638097450854689735819559064149018173219524576056439209202963310783783164366818255993603687130473286769875559828036563038570154885336176936048446426170003599165399815741425698746400360424612356118040185263311232941444182807503332559323109087360264219029420996412286016114313736985773946326584195460146537145076293235893592334097149231564776778568458064204317012904271827402588407546072368387346109360132807802601561518961181470092913815025728495220374585288004108069387193760368864267430993550187295008711891140577048910416400259239117472944018147295346854680185441351632305749443664958080484894954178442448881149774146002039115217101455111952382130407466793507599297364934996932601918076304146394025607663703665429179518280995521141781481328529895757801173195184880623504760162960936608547828857887566888380762336451326980475732295255838174314188999205763227988498553599041174281405163636790755885203193000676079400201469434571083148296037025867073422093096031049771964429886053316684197791048079571065037590546742687214089259154807272782959032424830233336585915183275634482487149254559894950653217136612376733377223458023950624524883038227071659357001023189704067342661388325540465367229039263545952958474579932424110554043382385739732542538657217849168362421862280395283638821331136506110663543607910998258729497853635650977866446549335713833177271529606479097048699307318175908242179302632240942967883537902330594130831153860804234910726819695268540133156563381204805918540117189067066225569239269401585584736879233880640612145550039331613431982408221683203393820174682253671918921881611598234394273925855719403353335654903466211119522122271956743880196733950425653001137107511313848546422902940102247754868948222918996992990050822425032620961949097585266375859863260330545592271400898784183094245739765599503647844455099056020465717283218210596155238595279148515691341177232774854862871329633359902555549492443540400945119058734981870870419631014312729059777084781846968424490482869182012300360147949886558831620128386762157527308480990591114840674417002496922926290474344115490505952902896497432472886608511122498466444746170670109288284881506761838999276485602037505679770543623131862163598963375252759122657499182327819798489389024427817900788597498654993502370500650823987386554570384778778739255546473348731181773839037135708066550790615687606441889693668842240804508153578617899597176452177770772430163582140989621371033657655000348516387806969342359940237773718029423200179566662564373093251477936348671431467799109483070657115465785934124144733764700009835111297565626024793407743611130845132581012893061819715395789344186233070370389388840812532270911223321738933314062833268439171622985949252463033336098807256143338226108624830070368222141691410399163960201593925706117097928545932640971538591208668344480314125426493697935840198437158083137918512141456001847553912997926644945015106171123708698035034545618592477117273346951284063444340297112331964988760161405347984628848768954850327337022772440265164355911451118002673960138321381785746981206215589476399484879421680078428254864692460782240059341366903381016725592613241267124954652768455712786287565062690996351586694524142938896019904642024105073377849474177816280272633993969721858230141669001733853883182310569112418767644375353472668894453206980066035099142822209485355371625684347499059970992136279281036637599017087813980987120761496317663627174961068772523021430033952699185506639219417296719792465216451395749456264005429601976754848820805670590201640961447014082389727573361740104120999082868737853909455716051223609920191211173711788449217045982997356126245480851404645326712173738596455545766348717463037542759446806745813873887309814535778483337764573839951412122036676463128997678126230704948698514902166990589190677716931599771839795630231428948307528387916471373987401532792663919957037665098016974463509402220337939554949491172320472901155507832198483422024662281310961636998276267697031721718711827961780673458731799645624826117127812633338727084814151498718442250626740404339738565044028116067384701238121331472642284958676374171016351188348491623478044292358622243740138461202149119222960037717171236533189141571229429112682150611432954352489066181982119421692127704191381559584749895666248847638645796667733387058301694026250571588312370877079014231697111463249195523477237223456977689765200329148642071590003714024003447284802750854163287166820268180855021377885321044147648559019157346242884572825946962248894786834185892707959058725618655401945621932132707801675525992546224391242958814960276148464362763840775038938600267797010968000721798041107837014624291453120732814164524480365174376926367218945066367428291149233911464699844478368523931665771327100873180863747160007289644562310243877445363064452893287729533955894822786928697874357326882091811991741889869241198725784086587973183845773340382894502952776542329387821746044366877000822039223931464668979727953297109862479946240372394712665344022720217736205339176845999343105709381863712712677053450369339452840403086707487467453006355373793316853415428275361994996195812606554135224581912206272042896295245740509204484295773894257124578153577920812462279333134163320979523243589927177211945068167189616421664367682677779824174270492316234827967352544561030503738356052496807398324393142482012682319033406957414377655679829277996394652217363282888494007808064599145407252209230233367536646922439149496260460521459736633413084186970342510862824574295449982310942976012406429309900167945785150161172345616790014958494963322565187420587667386120961194637166500535907595779544740578513314649253392004736434318736784940680373421765326797844849386533563387561890362583138737677897636361787903324102154511491888424393757202174814382379919215376590493284420524292528582234103524244375135213482449512895225895248192306245012918313847905814790124801897082504949869388441083487610493424080447650245917478634988465145156065440664646631999159612202304073517132816309053861741690249480093987176546930440847894881427323551640037434981515692323215434562802984444300462594790601480437112394449766767409648266061735317547054675484162716156725911225539294012623952008090547337708960713901178396148162586362758454920898755210670187743685751212978291791791071241234456196682460205273927034795008438625615472172048635922031381033826728456006053553064835323529478237402558145029231891314268238192853822056554148767106227084598827596357572284560192273662460672485249053054555921492988539613348443192598972163344169784632704742120821895502802894643397797152281391928799813048098623361192958948738469761892195833704905072565645812803224202826394473086474798195592579857317328771569159258889446733128266187047161892504663992957870267156452576167972105011725439864270508966843977482334600109139937415653840415752301516524087390025527906188785403083510575837330254458465331489260141568723015828222684547372240094944504031636666507170930387447383638349461935439981653482915771828114317925125538528693967434026524609349243716409653206325238680621859847927648912653590583843183620622215775451464938762356920217883867380877447981811662461606518847743838477114699356876383758383786106209460870082134451781231510269060618406546328757609024267497218490146149345977728766909234225779277025931382460923147749871983158459172223004266061446920254594730800862074966342732371241137353646729785536868463797761806025027685988447722046925422738669339254563271771490960601481505635263323050662926552390008277627509757024856578105657183064153102238835096590983029311445689365854152390822302842235537957590120582233909116961053432312504409336477165928240123358255198759249637774473657620823141277658426504372909221916501361655050653539011664595562479110732214033448841873243555797419523820763750677305355319431800648821164192059908057670027276983443720219047477150622750534981354208002937364144220711829250958714734086616698559227922578169054726447176241230260554934163895057184334267539048134184512270246502488069600622362911773710528979330630137175138726593791247305290037271077353129860031520630738735423815102216205254179920531707776740386775082263396811754848085436298870467642699023276453076020305762483553978955886993207453224682535326686256737479163759779495530055971791214382471280477084882008388606806792592661543225410579039304874974026470407205316294471035485033269014778966227579858867474803069696557107054435056277297222069030880175495217442363996066834384825712538546826852870371830641883740802357170766997152335294274798894409460651659242129584855967256251100394718964982201522981368752419914580989846225663688845892552795558459504168717927137618273439971918662651256734786875973367632356307675800259009362994825670547686328399720990840392579907871572546032476866055646245065882911525248978953883373544020682932406992588755126294435202854471313193123050939894467624780850230589329713816295969771662631178730283412581755576226892965667840004088401963519965562127325716581258571378299779516359954767601598108323398742672408459163400195703950267161565185059331023217142082353002204783789322322237524858350289535733674910469805383598982905012209430313624426392670350406333709238147450929038811468697228056404677330981047219054777548086984222950312938894076620850937708594064057202219408596880259433814715851727265383906634103915719498635258448644188417630378435116599579776906906761497270555142527628973037703730156074454692037385302997026433228431079594161123621013872245485954102019540945213440814242407376549841233278697529816914294779246023569319760560447504035281771855218775617649752225796858655151241474405212202326458089286396161203128097992289204875823184336603645521804498951993159604615928905469475951719093161616263944831400115529171148286833314305214943047096144991734452464490616290451605521077116926444092918463405079101751987556316724871853968650840379226252020968263205709832443189267520799314776924778488910521610466108838710305058565363423070161945544409153918628271979132007118190858528770346278444481060593101672524053795850893725007321409142717606114082885844670949997824888891551164191684600239224534695308352988529788062081678050737108737084482162431155412251156644058974372104761089012545740080103344646066620329585533698660423140693292370083243395201575097357934853178130697785100432079433771142539128122710121065855150138347986604243728166838033462050102652044850113021487128963036629013836967615683349862711938619940093966772665275822076521376143636967259479988104102939386509755198298464898846270502246199116549033192436461636771978806901408952834287501359915620138488675240920176865729970632227752428565724165555133715780842123023498100670647978807995314179747094881757500456843485874896644379061014473789500444135723746782636829280935806352617907576845217892322876480258868387614967629532793016719743535755960898250334032111168506728039887280325927583248215755271107712705465188980174758320939689496292696120557695270134010380168511461214721777517326358158405517341029234272462918183165055134342393075224422346573194416844354568114988701056392597852451672260693389679570396813453139403613340617710452635842351576925167859805709955145517558307710269159278717429516585161209512873042439724416513297331063472680120988527758720495396064155423108083849308580609881678405354367266022022738427168753091890923195380041279819661700260934048834181142915229338244506697091928975976567398286318920623973378718559394373395998854451363890518045711587313196777374874361526621176884571300776679849354899396455009579341023680561851887597455973923626620517408375264956708449098625550827237403854966400570223140919948752234915111263506748037507798718948005145322286290214215962469562506515212596948834444153167348847805021583774197592447206363551719879133134512453741197447727223114816698808792436661374378587333687786127379387677646057155330776444813528207528751015730551924500879840033590138123140315321238224485565231121654752253964545908071091048336141749570193674404774299832327742130473656420515410416260204853643937180262747128927902193015519581167590076898593596596737155808074321037943864231576064174735122534063373292897863588342624171681967762238352913532073628952904896383862380294742114169485009348800759583828004118555443789966202809690991960654151878539673262344023826648445187953101215744391951227156932360969001520599962765695383190566884888317999668947620115445384283224403467668216105732831151256525947190373334497586058915346436599991031704497796265486848922101432511787159242244237214001488574483084653244677617068672685333404729451272410317225353130261769088917080525412700840407053078078634742063530462296073178583321111140169105499303290835079490542178955931824182965448662400759061431052003366223175700420937098627251135733672576074020770536392581496481662702223491045769463883939261145662010350466176710706157411566547419556548607373111342506071257837864062300074152669773890484898421727293166845012353710867250670559076277128128749471649308413839288788880622320937301083894202206307921578717319359306157870578660615548332401940702360974697864365036000201248828528624079855282400691872530792578760795045657108054125978006479286515706122869265980474455052662886639353630519809053172356104052821318086214288956646031818688022436522608403179376053565110526025048767975051223642598499694476081450837293710584888813095682355219603793241481716357743038444410006402306026220081307819683158862822709653749437842418647297227046473444683133288262005550264200976346078982514813204670713216621680092721955253913809640166441946767231814068825346911824594043172994624779472232856185400403476841712289919186167516588999121200085100073472325105659829179941924870923099651856854784669134304093474640481674839584897791547422152366551222944273498667634353184102742508699971337660963558761321590520981024525943815330242300157685340270759723072874310187076234200265833125020684642309662657967418103641390726128748322540659765448884501062537632639737786632358425052545017923625699853010196008554252168698283517888502707947509005785036653712101479956771066400476313348357804845025542901732477727184453446992215479305874472265597134971157281412765929010952251660092451105981820546800331081205284486743096551608311189496351506625836860753094089357665154855467720403940450630996673914597386841829414480554163161014399338170425752856790614341388851132436105341130882511682262755471126547436463798311038370625305532080400736068919349945265650353944711335324677725754502749988263801858226545573609197962613017953190775908436778755728379907960763759120402777702366050758654174196906258272013769516494233445025535485997207099474171652572330497308582918639536244527942647786582843560423970924909105484611522143377700404750610655500193113210673505367296298106165277413668791173796067704011444389014382285560785100870236426906297174025955841373311183274059659238691668689317498198619426357886613181174778651190687719964085416506478170785841199715796518825323721363865781878249172216118127398271619423142623030653265150629296138231604069183585425853119932555044436221875195099194487803465977480770448274245568221114177952522652310127912700449338760094299291957480041205139561277618978655599867786407215604885964778177213293412505725245539309015907745609424823283017721889421659166307748643210552826768736505035896597112289263522215767619954856601994595607449670467865344583515599176577744909537585239468052163097482823735732935259124870129661868564283638400802950650316472658841063906717560460440286960434704433489566764220604551407511070994066666611589082087109480281466275310617619675273732034291437876486084779486232068991182743025252224469076813538157443283261357626701919713662064719055546205729718348805036195950405655286721434688770696763644916465266817676030385224927050842607169212947764880133801762623101464459945677642215660382110413969098804260492671903923098712429236417379304488531683786361070132724966599457667433641247234294786651150189238067995277447923470758111218446116841775075800925683238945577785454292372009835507289804152398652247146755274685679277384134276762130675572127953775269227793363748068723845363174906529263938641924487114886373993815104365386174927698704983321898242208907415431786689079183650420832581087884004953444133795496120859833716851636137880330428833810161526065166376942744637386019130295137523260202982875143272763421133860991842026243321402585839985401118107976120686969204313914164123769143441110979143141235141206564740005336608657570429179831948950140039583451727031813459359217659009923757589481783610728914123976981911550381268516950824969048662060436590547911889106154596310114295125257802142306730778402310506204936671923304359723244518046346835233554301093869668108152902224345856936589960130929340495601062181082521440275307124265001129650671225346576839010380860073001694312720009663007208270822164312345448656842172699280812998580904965620893385745886778734558598781391589713645259401945612951359197205417555460301857379083155899674203526054515039138705344486280408061457903664320330540435742752624166937583655300925837574914677613529065956211637790436585185883977957838738852271045454926806940998897135185187120128860165637543142560868148293370980373036982773921826292131787078364697744949591905949231772841635605082375566195903892263960243544422720128431841853322670202128698631092991639668836213944503700510875154121052535310942604561813271110603637720358033044875500632387643151391615658010561758454692554453420166781627745749685809186140487009974530012477587027134074230908927753121086098810415213671155043950383423333793976739429101229111064033994050524986681853520258285948271138211537391922690745158738342592343346603954628766564816093464398845955618017018763871625158158602506129670218422274385249532585842030293358676546373003975081342661529580382239396132746937212270773280242804608781548405741217421140005619540676183208439829345781362535173050209350233906863168347457163527105004581259642865294558502242330458581452053640147889183988868337666888584023893356370646757023093170085134160637797642421024217773598385990376873932334817197907943388497339220886637004953347149956083910939225981212394984701415476413147072002890477724904756845032254970460371459003165999688894720207592735379074971506887523329015813030282238152903627559190032867136471988819015075775170361232519208389925904652430912843308425299527297739925071673833468238069078230620320689130566407107533062370917697671070791998002499732847573100883791044009415337672951682407294438097848328461437055549792446136137747828552491606976297940152515181418110742100901426904524439599350358132082887469587956477794490188790227844151151307363838936912234811909160425150134121414354436146020531322274653132343508773599336587615296693277340993304737393782926067514269594007223901595615103980147102969943846365457478859400481733215920453793060632328568293380106747077767579754704606373879102092481963207774384515610782984324596262996752360392626411292128080425575643176448805145053889983836448050872896811281925425549302140881735983620303592644090401497277332484622548726632491952785137785816182874461533262747331071995122837275976247139217028863013355947786833532429368302697593306745046822945001090400269618519088244873445742980534797127659549590700984227515040097840861814170089258547403778888429644902859742890598816651967651897001096565766874622809644178331550296942675689237070419930036870785405023626752529964902542868620557025032369278267797357508979005269255988110862443931462628514310565209101823227746588003017275879634425327356133524917667351634843215858320345193738653014591408563272042178021924576728414625678447599012218812319888674341100841896476725290688858966640952194748751833487885943109688289806666626959350114618218670746294441804316363477802927352045029640222055946756272807472243829092966508382885351811489751409911128627733088467445594055856275332851853577721230336302225091116741050586448558751528446432703934176149495357985717335564976252502783276074018587303201852046946101745089591519558314974247735543041493592289219655001168433693108296366235819259141391985660376429059355090717940058445624519463471371261657167848049261296227590734356909173860150943464023037583870149689446636723305993386119003225620612941764266966075739330211829643582303071495322975532467091825319833787009734362527901638802212558218901756269159252529872345146635594836820113936862346862772516729446733077658718167806374946638006429501937263986726699621568905371648088076348899355187229287975047383912049089951234472728795366130344398657477517989396784042238147367937443653690893357091466219484795599947297327722063732749845043507226011727397505842733741635305600344650118468216073346301209173971174334514705789669223778024254281809866562176080233036001978395889433939644481308559130647180674205613679746757120336379306245458091771094710167963221020591813178333182911299201225388924375621940599702056466306739920298105083581527213454756999666593724666050416753844536654356893477028277800540732510186167249665748800759324789961778836908709340532709401368790586569593082730508933956379278399229980446870801885650214540924675960735254330816062854473984516103845240669399789142665256019096841973392831975239627479149529155006950412333011850022269485014950248150983417131146562221555455264967165534859731386777239426475855393928717985227698456671831610130567543014625457387182626874065669865897459976078280055442446672273120555534660639214206529271359977377348640330104985111754764588278536197793416291877363077420654042359289786583264188893922249130571521576163651109477085937703905502182794597578784554123777397724346069458762167621686416334522630321043573587053254143378749706410058201386267832515636267063683965399080966039086690406821476532201608513524130069886281067075064080862050366482554050434841949257852666305993982975800019071169118958992446197158381919126174391259597241699856301787058905835317540680683003397205638344401004272755982277254879547446583123282882340118099278081593280270139166966258392474769786131341950431157152409623667202883776009526867834322828166216672806140271267781136287410293564231803923500973910151894526825228962597979687264491269208168063062787719965375848773687706990993710071783872279945791699065920577857796621299219194296993471800022226006108022202395586782969255474396173179366214832145040366710596501591748390841655025065195202210622522881497934062982479789763560188886278952824751898928175366589003582139375070594961395454588427906405099260478998826786613770202824413515658828116309225218056338817449137343472000300148288899244849428820491466443295525193529729850606507037941183221766585691959654662609713696661013128730021561574032600360740727435295548878143383524223030871140548430450132545613604846315871343807099105770153771791781743497973559749500490473223081333115290372202071956810789857632934639162471845495973577975206962893292626899692183947953443981852525690598849421108973154041264976041795970857041650899789196504443930876093149202552280652414628160690519830412497641125144129153763733232589768172944659593207558353049465093335314981777071282039232807331878752026320813339993449594509209209097714259554208822713803458213711703109307449283777823837027866269489444135198695182549030994128566452534257061453267974876551634182065909641336793087039793636750170455173232083275174580181699726814949629329573249472143114896423555546752318721359452647283266040542897429444885090280810212433022596375084196798846498328801752495157454885495707181137351189332556106634861728428935390306614277336037290657572984433659974944114887447893060802871547783940371846191210465203129277035721825987507718259880415981089427791056197468674682680634589316246432349024994005575543816824659651417778641455634216251988357664996911611523366470303237335239160032711921723292012497622382979412246708814006037283298398931611741609009052248312369740604995574559273856081752868536597917050751947175181556128961839369803977174386995635733725065112043639262368617916711308786826115135759134062156750590122266814133419371885098010566667921326678931798689725899991883544444824871148228560548539922195206143046006101971509755138210545919723658797120208933008449217069943828349157569259688493830576822960049555859475558773985604425325688108668640690798790440274884678356748824119518442512868715959896022065875375985256477895412133223090427371622382605363661946704552153098436496337073451947852993857079473728664636240048075519162294313999322289591602895707529527315271864115342792605045379713439430690809490548431526733968838684310093349073817834724070182421193778295067959324835083219111659761630958819300760940172938021407680733040800111137106963400946875682647245957161502921081441724178764280098232446139068517857485250993645942086587070118801437724104882815826417234022838633987291885422051490845654663881593072051547712355683856673514467768328361802185314070675418802484215445248070215321880785582553194851963784677147842009454314939958042764220373500956493716061299186963729974356067063798313544947317678325664049223597308326157344607587264499102800838824866983205125468981470285811255269423533016486524850342115531008374371371756151498302510554382538921754618186743079089251093733667067127844553364156309487135524628319599217127263357553066434259783002942389455117026530919214642504292199212000922117475742382911540295041113598300106648222924511424973749736762857033359576500196057675050749838767617353583476629328237156199135188303958258075741835702973581340688170859499045083389350417568968000528839543261497133337827674139598019357280576810106203542056637622215007798535727929247559946400439609205061515885223042625419496359304023312134150933251000843405987995641391725172585311415419393137367705498007940878958291160362073725951546467944052675676561377013291377312574594593981296865337541220558318098970147097209422944705817478381256358583628684953576205628610419964340846452580175154760040251348178593933684487988918357091693510098653885756001072149326631502531756739070240540651144067307396910706983340713183024539702672614374897637447287118863364219193234430660870728548084165881914912729138084609869874821442555824037324025700062266672757535688717665451217063286332440941747151702363351083996277041196835470704217887486222386806274983859053607357714045824881155286632440011145205587772248285441813332666180914767208142661813090485977600961020942938054434927382086700462953047852205160496548468016307220132342757843420744488083126232779296528326357998931878803711901682387392754907391636136982523975423083330216648788754097225023447449768642239204436289537234771622718167842470857124093254430143266056313314506715468067436272920810136498710759127588951906043326224402562361927627914645602622708638938374754587087003537375469296135226596168541917225209358102470395965664902100804121701626274595217609098896135476973976518058048530809744436384684732791222293625884265071568862737820846999574952195800431563023620395419833148257231374523395238443348135845819700072337013205861179460423104904891214853426660165492733710896950979112969576860133265486726708019731420346879883855745099261362485936143375739559341791425415471217405808189168602383756951273279550459022462585714778515044174094289688482194101189090923715071349707263063380137429718524300205384550784791286299857240988968480251670151025275143672665938498563954904789101023358759596356774948415136455842374912045625464535497111346195063278141863592364116625178303537092707487159879600930517913233257663703365956901678834875526336077228656783585523236587319307018379588430444628333509179823366994835151657716207856228763621810061166938601465725017643433067470365853090356795534155981302065325946625578873639293749249739507506901144517518057123366006491082629439488351234755250458286944943267158224458980811095206980968043003814175313966261729387384250201477994961204780236169326278702032455069086220229456456932502663707378280213153620060642639816599404937468146179099544099866585004024089377102854026948136833565619387676588267698306418664614535571092196466241703592147103079005967969550307223515575802068536757944585020166430842359909168939811320444393373614537181628301767967399277926771592693103531211023323347182411053135514694771324964257112522980121361826488666569741193872817718478202211522572970069539952499178620599801756220263041849044913433694281114849089568402396242470318281155113428047181674186183216211877790361368212430997292316644613783898508365803767112810846123464343473310012514883888305834941317914370429808603888053947921265167372473086592266775144811491727689544127674612647188626440014495339225298665608614656286104055794304369898213296252024503628307556758501263235126447080496694957924030236829069247650437911896198312485622189565897664057793374526030339674222189287430847533444348701027073003847861397559393898016394747311505225955411045051622957429213475545558065003270626052002850727866812077947860296626652246542612076224886206293890192778813789491498841881068906132154057643214068494436152726277012425926226918875038725224429782155813303071270463885241480592408430622421384766173692192561631868311812841427849497051418979464784124206115028439559038762161145709103960644117182047501328943736323658313874128041985792449940310614772223866865818109684473642152161440206912248246853142376497667109611028207433929854243575212914147519216595933915952551534836216045924177810991378502432561097359508579273782690576619481738894096045613601118148237957505664352993307156684196329955147944429518091470705009517108420445408819084604288277260826792646070431814329038790846649688608049446863834046951369842315789710312619358767975576342848060163607362713342035202917744630645093809362998707491522629168148856447386618508700175420107263222668069385719727254578503580223171815582378720594954948865787067989180037439952220485037935480886111007692154067535242585296079791115600149238531297324779978187879445862168442585076317880336952888151279618462882369869572144737231574157228404160324362740938468015195111459269454707374200698262212604152112144925814896402119267279717437398021838682696724844676323355221879153934215048175694740067868176653921725367665024877742038583053626556741712234014183259507712331809747633217670448778798502491672787468053902280378883721212671005451844332670427266662480181649841925948683101283390077491789046815170621803205112618170365184930334323167740735815653771110998376173339420416783074124737488050765238222558431493224477560123730561266271853196535447075393959779664460720912881153618170560100428563005138263919794919874552261674126969126617568623022905745516608601071866664898039871455443810722713991420208970731526233240716049916201309208490635179992847196594795894514670584455058353871576096017755847184580942426738282161333831795820570495899276149495094443330549613944281275526067490711246493756363398325800168468424267074075919616814219480300266226520189433043786761466710948739812920520855577999579142957086355919458811559314800549918207036518478273588692547666497027661291839336161147455518869977378912692793694094679199949179667806716764424220117537557652358919914876392499719043186290571857365826410871676033020423795704100243031134549112621145567166040579181082502648364200912839118926219224598238045783505070749025308241633877593725760953277395288617891006504621173935935563962605151898484807366917529913659987667996145676054665637463089376506747365363514555506798983382078998555154373988157461177110703098676320344704231940766606199601641436214856291446452974952634899967180074539121856540858811594557112207018616810681176472079079198360846887439241540963080060409635689779842736445436278495488070847579499375537917876677614060821087717649234186096608779834900704103763117968406023520469604350555521081348371582314114870225911860035735037766014997165447178604742714757620281442467018226356058501048846242111451663826400617112625128630463031782830481989098714062953276624157150906338592302123917060731860198988357442664107523304778698176884923536529482154234015763320424229255332865294724860728730094062520652076152855354039703776038023049615442705563448626943033126205366182443827836984375927583529987383934006982255903121598510114555973046154667965367323394472606919787904854221958499052561398408539190266783436823396744622564739192645460736372888651662100292804589403449420798791210214728463591857318334538611444847073181586673197998283085668523056253952331391808808025476967416993635116148468005549542295363833597344015674861181932886338456680137049255075181241717488643672582017971646903352890305538527593515745279024767678029717582061149549652738221530055088367755251854400893851080616267836065294767587027838128610147371693125684981744267851279501817968160978607275328125902965127737147958774106103304319973301212748131179204890628277502334715307844880735181554372625841976046130745732695503948209740846724734552876626915936766829483073536608281903452085750146137968367525226727019304027858793361426080435432917414064952610522635935942242898106472663247273337221654260869633900750902659679676127972375599821099490071330969614430919380472442785544242757436834396093544351875756317913209857260615894335804517570121200871829725295522285781452015054806987018905194473297946945416355750264248981669119517734128638080669259532841371786169779307718384608320318394228778889002248188604603203470748560085212795518308134711079155018033944697294853808091852115090120628317071672339879438644024934166166733088550681920756976844235148396628038187117960210494591308142972465681943715884815796868446806007016756054065996859047137873871396753965100373264702552390433798455093806792904074572758777317993476860903963430137103955489800192876653687563065760797724190062790152435147694310780866451356400297513940356677502538731224306300309659703584845197111935682579629840912571393258820159374276562768584324929531598787490111587590526455408023317816857161942009876231493088209272537523438884101422149564042198393424434038394542541132719048505285462219540268731378873204245982649680256365541495244418406460608439512965276549347721276635793757245930348058512163156266252869061628875779226755978803381900083016536067412227611618257913557492015830547909031593143471440459021840719627183414758838804195484496689037890235016517870203563414767734134942956367438605900178701495453298571469060753772936496052630872188115875513801296643033894831178316852410656679652103074751803329784541296458431924180541952658723868068298685639072514757017009301039492094888090989587752701376798159775825111415019913690339394801503191019852610982069159014197916219974639655267615354173072421965178947912303184076731497059812739697819470488898486687764161718200691548770422640247149412098029152769983345090293687003782481397982028156427009869023561561354055041303350664132813128359179316838937688668283052603377052832385694980010234267997063617336960216720320508589323507955333150732331263764035258927855744811784704225548647295620383590431160696081480396499059899253203776393957712315655322982741898733874683141425327908818840763006346678216965853026117410852487372386497315071744486143955145864657959703024821708131182630950967581666019635933910993260757835166020424861907430435581139732110871788239625162967520143086821296079236969922064842728693778576424874797436643169963574113073705692943933348836096623259952640639319959145625655252084977699759329045475902427216389785890199907109848958698233893394182349846892993404075732907099561036177211237427326781845653805980998174842255168310018241833651099553761500356709694096565439818432337267910883135777700306853354750926782167720200584678400486258608396348201626033241935764233252260683174712649768584252342775786798240268351883837244260150993319224645808853899682632814418253100050055522827101165723880086912365626723146073621120937456343995710101119163407713939275562041275802481917725253064663787617017472299425940946410626262161075574010373985244472826792969840905379883715672990080881511376344977613211249416112095066916249261652294493444142018532266968643159048279959448459736395687103139659785327023095679074962035679353262584504955698880089141242989780606662329798650103182561042270179790038520439114864178145328083042590888692607293235283709588013730064224506001631144735527362255682202387626486984386526201528589778761370912457782368618116373078042961794697890039878820452731837010194458583643776245217021629239094545617472445947481247708041751747030314348771815315847196259348769222056747530554307665477305748700678695948267618524403392744809625697899659645236665068703709988874633633130948507861402993457827539120722780926898369790293201106576135706230355483206936301818858365845245701058979560204983568557155895371711126392529425015328296438693145715045024046302772814661482405472325155334939544098011743242022869961642686713532312033575803561794690794574757011196599406982097196900502368070779382787435851009432968204012004733477992899346471814505391961500288034261910055055017519206369883033887322967037925033371892923755534994765034867325624712020813089544556273243108128952045993098699503717280495318639957257055571774405043179394568999816579999308773856489566384281211015703685313259390295419971685159472515988829977044666424231862806960527322747150676458056185524915100703439460508090084181768169617086926793626689845871321141533218292871586805162623234403691540902156076913759342313439617192988382084631216914405615948206602439782093759565900157623700259907642618907204377977039040817910211716304434015529164626591524241692269508187719926829601881850127736993065692086220590486088202143336782617974294242293470017477951840566361472013135479672622842524180260268901412029445641653155336755609233932212664258717210458135316725234461034450157955997531687287869472389580766027491780037102850922981538706846595389283483231295150402288135045378936977290658425833726414221692688687371335387600465968492167520749853324208624387437164808192528259195900391746663233734175881024518137100937279825527054776226376065300348848512789695645094878558382692450937870270460516708129556157462603012697066529118242510589113430296316646709109822156767051704987916743490066976242556296084528086877312770877640106741419027886600757286045874139754876975536449137611519422577053240101909464393663764476407587333758354760350272417363480366176376373690291437429968776148993903569205337690348072754096515417523645200639569006103529451102503511044926439681035127797551142107166001997938841317289950717641996071682997572160630474275467291524846402182436681798580340366317558969982620445251527007687894783858341481301100648548428312312083859615786667124585102517823993896188045212710193516259906580136849088110508670684420733835891896453759660665200450954387376449634992162092398984646305085020655914879804496832306324059811518594616652962771602099631822539265899673086309564250700217122875495122419447188687757276026184673827485986893625454556659718935557388034488598607038907603388407357745524336288348799188183874245376890679575928273494541481036239478604054331821113664027591642600984422385653367913413948050575761822036327529509588832936829331993695318736135258848378699852920835977801743317547184722215226516037589438718135720814269889559608992202713552176372564231758474350825195597484705229212016836197818735117276913506818915530438404484326524973745725732410898950409567659944855373406976468812814815328665112212606845844464446484567851881008026503702112685317077271057240396924481099269277304339603490289929490600179191316616518005999812494690209269166921074566426846297758616426919559277716443220410920874609688725919821194593673375711231004256517301803537088311726098854675965759046796383940059452207550722978129474157213451129105166155820555574783403105450647100516498762796118978860254376923220130608243960041284435944266167373602687525915262012389954692741484319956665022556816449792755846079833908185625687988452433391508201377998297565593455765946190846771966016882180320188169707105816657441244495684859228798524252534658834918663521985739235387994672955286864815152767277960929670941365908605057190793027217295046855947727963619837549966956769338853404170280151969277382814967098191334271866763148570308113193807581044722164001561125946778944213257276956517623714973037541716448347486189787210517798701575775242362076197935521856252785740946418469396772292259962181573744911187719944961259247136993869643810435274635454381375163209678050188998155215173017991128942956715311373441658083802679654442331353953291225519227223067940443448209984588362507054344254545754655886336162476735083246984561537550252098918317434159986970887880429941877566671322929369921161672237737630437378833166410420759165250645100060944197531761166913853471516446411529178794114195872253871132919355805420282736058398504742072394463478908427412831343635159729016970835025619870525379108030478991648581497333878796017940076241771921679855086664514445677104868115604682466657956519928035924779669971481856873046540420196192211488905716439296924695830223252473258461992251100676169271352950964862835395509601825066343249585607041421042605203218566703672191310446286374365871596318611718908069648036422210407675446866329094680741801690662238361374212455979982385483883172617874436073449619306625408315824273045817146083428590238504204926391892062297682997161360706745719133716159541614070684311138589773046354195714502169179857857964489196926608428865944747094564098088775258118253550424335759144957447280949267345679777615542094927113119194552847835070621118990850802911248456144865158801142574012507785090906999813519738880527614172007163060228041520628496919730701735026052079851080792398901605695188966094889607367856195733289165276538949214184891067992274737705499962677326252180059575573921752339429993531118671473106857154704886684358372656425634273555358127694207169527249075625422358832366437480911946530385267285064737579930916541416910569875121727741017457638948260326247076518932399097541059004135092896487546033634295410978873323041678629532935212498164569202160803672628071370092814040688210024193304481035562343891650624682808588258009011251576714068649319930689062518950024946903756505959312489311490392182183043907103693271881665400484080590891982076643731052467522749738460834937971260133088756528114294704283853119029288141772279937697992028192594661428521597917469473154038212717141930324110321617834827559665140837754384477538337264533598523824544092839914222614061181779991551134296241602390939564841479057610477732180160097894746651129273266105097835936795480274637541314716387170273932914493900339067450660609688039612520903563053697427448069665302573069016496159179409790047696508413702584554566849838518806896600475022080948070734928315893063036576217934539964238731489325136193268695429810069713032023651811034937919811642936480598969375632259170473847612254907343978044095377846695920276861927603428697513119075225199027464592705520299001910348287330475283180039761700885719406310542319417043512750218893772482117155688287964886037115428330257615774299468627977783347973453302695061441196717084240205603987451076658948486904992258132107211558314578173300600011903274936442482018350404108011876943114422185058729518115935056418230608757372865425412126286251811187153880516680517340870771623907389047332198430262199500599369576670921341324331260740308428340737591539251900933100744861786297868500971785837541234538762649936457309784297686617707146170750230522521467335506949756555192879999966639617307011460988548689588077567410987982154870360910538383142478113353427375872963673012849789484854885877010302736521881925651286193813329243480343250572189582446577918452982641832496405375119977642625447611346892730270641698634393192116152553912389637746343675335824501382838256811760805705973034571695156382212443843208222130190901111097703085858664070201929569233126622346850972872091623504685330462291137240064719642247826506981909073487257479819080110196388824027463280511045328827890379797142894007649623710871853274553130213112520201455677022427318024086599088673146973965381734086036867381870163764076438430790075037825160307216787344025256037789898097648384597312167282384942380599152706149829901672685726406350409120677905950600276760097205843341186550885558205524986367321297216841873306840815140326834991862304600956700092843210172821378490154380988527306277985442091703297001058655224795906440477563784012120818825803722160849070084230579822020300337253622974507236244361261477855877217397898152843314429973024054107443257088058441579157025073766565543774198328741831769309180309495205484303178937197433475370190058289522747556466243194252629717017876717664354727634681980950462306693763236317105982333283960612843956473884869076487912154486399014327386335521147260202304356617968035749373680185382362632214862630365972278573649495214132506459790749287742736454869624137220087125234702810152135408537321574515340372474420823629625761490668059558713526165836298083839446759382290085802764064832576246945554530910568981135814664412517757607386478769642400738744056376770744778682204573179891699560932098856704657446059153655618923076993512727541990281228260326468381657542907054497906313522874276055141413755287110587945708504541075041314651667696664784491308226906379609785584336031996059992894033057668065234183335734994617805512043346746111321339083413259556395431031030767051573135052556424553960777804456152976121868679114019753635539714844404890178555774740643911893839108663088505302631788425757591842398995871094116866127697384461827580747347739548326998184463386777117673174734025485006683707143064602593173018614103245916661239447702220414071471805317508923067383164851674015860015948792857663923306844616785402801453169307194840058145326711055139158367279198239528339376605771173519684180015797579794179092800770939658943542018779758690048312450775252168882100120678897358022483952546066921831757348049761055300373344187816225564079917133193957216480282004702765733556017250424672935438240743212016577694241329053438082892148710558516450247078724226984732245588822075896677456780939710295701196223381754028745634495889410680049637102908552753064856932629832816128264281906897573186397135907622912241808941435238305682996767542944043659377659930017353273334029397219489419525192393079366565284126597790009803173215549904626819456024811123888456561450071515546898196249729103310319811549618882478334772503599352133248518057057036923359825020904019059560574516182434742905762669562563303161437029381567275809512237693718795374716830426620603579314612131120827231983637806938836858267121497612531843480808163285204793127834478471707224545776766480826735427881853213116842400302867957081373105488402725284631168816074205332272768629975852124467607127630938821818877198844413433334261814593980513388667142152608676709150274879741420941552897385377140067872228961876452542473646061840373652546295407168377840790032621829852302260301562371955663099801282454062220458628191353522501565519578120286933063780314108954482519645148146508059140974506188720192352693247496609742514661930774376388410797786107469963994575176648283880237743346519564546442362208715985559454562569815372773630885430779709416302245841551633715906025956473305944890680571524091134176197947288865494954037018191764569273452824497608304432780824969409476574228835248549279118481626440783006689430643418863541372627275498726664044368949214704367188672400945964487650963369812550178694399901545927356858307428998865358962517849656001476637296382449383353997911823079870556953506238964285266263346690712128456970185210277708518667366798735878906172226225005928706306609734439495929146685332026921500197855891111535612703863165150965241753429863550230118985569421415900746526439515303892203256006131546173248918238947622725649367485742336608690087650683586464942220187197350757687145644030205365933012869905896487769878108900275174106463777875381386380484098204128609887490248916935858012015399456321412989420731566347433829224430147512522181397920870420862386209902907730695979394257465612637153178656232777486875514099582825383654559646709163184631213527529435938575723013832137839192574750120984844801657628589151194499576507387509593806590958730250499252274962523973726443886497000193692794361152790554238878329374355248454547210568706449030275849893593279796055712292531158855412675659492696424778172204833468749248310890963310620215802918737059001839037823364105953324435319896768830600819474047248760253536393787378438898235390739901453723857283416949487513724739336250346217701829312755845873849234171267997245014951179191148884756025267605181698026827380354635809372297389667527312758269550595655204537511513143626350117383336123295461619805473418247711787647486004027305776785526856079413347248304127029769482265994176077101185520260272583600362329608475320990506781422147824183669347421610189776358585218284203191021864353566635895881279371527080318887215490119057112347451173504800533600206322732400245317705631194897994753211108684270116019042004907218252078949654439675849146272498781616621125440211396772274273397522205198993682213219450428558045819285535189468091423761901961154742440895470841684123797829506694667297515248595294047805840476960924375447963888261088245808985830386295337362392993562156240681254690092199413332983289974032353950456721621432759421612643774205887203259982191298822903942244883509224840747276692534626594436771466246355389843258225137219409048459972376828218725570717013060757932733421263277209508984046636183558491869921641770960585688220428376531494662063570210684949340124650560510473991488098515187789112166953058433875754677559629372919812322264589415490055420732467472937401560233999354968451223730610544332610324293963575957202466221365397390316244164207064351383507624110902419949007044112166355325270461776168818220590599318263936356449289304728008536819287183490829918996621928609440683451598143925817797453258657714946979925954498380912578380056286096860673095222223565381141538442560530741943437453571248742492545555304084098746950773370322988274063888120607105756012621969412571828896605852322574743145380759419336144251968627028428333518866931215104477978839064217491798953453429891229567500352137400367075537080821500695851294056179402859750520886772903229872370212473147435182573176634872030905346071077023085843016044275187193157103104408390730534253735332544901028603259218080901097472913582909292734589595695905381470231138845860772023941065714593189463394352950559183745128811033180064045924008310967776760415851808396134118384687375146684939727469978425063248243200009479550461857683964979128037107895267132383405851504620118213755887417485681921853669926012569175082063749235943767056694994345553602681030647772192617721123059487712765917925626572056511372962003499527974232476303468448225734588172490350664052632681574917874573778268718492978072569803421032853209134496917452800684888771126683951323364386998764440199268998865145311423769032912406254803136214798035059505470929800377332399077155557082464481366939719158765015831546901064287684361867182009931646542664446037491622299912766274083672274830367283852174536553502351472875323802614398384496197348934576277867734411068135739306724978581775468578963130792291928127354732408540167034364121426585596337266800844450037741128964607174372473798606948578137883664961236978663969803062672976059689454317843174890764621599922749090058762075530038953624858467356823038624972243816923351120946211887402859873101779294527495942483935186811913513891236304650012930165437574681469711661985902923289321627795298918601054036528719544199674834305861955048498771812572522231642193364072615343495952089104435986431939207012164629780043782173763249243227668017352936893270899452341823901065112907261985637758856523562050726049578918319696184069960989810400634188170555188088013643590143428643517545197235666346763056608337011676070517466501320371703253016832449287158790142324916443146986983295586008083618998253243868077086382668276577737580660853484406269427431274788549672334219898295465955213268034797301200900940601510992151036826889784730276394919737259401056285635128197248373204929349496803640020013376309330282258040713089698820001977863010458439740069151468719486944292130192035545354998982821127737525612935751125664094598068591059774061474435935911153444016094373735897865175157271234731403901293161240581421611213621123594665043339617243486192057008534473556331331936041954113577836205495275883235307314772018040281114990809772995149782414299558090058378288375040494270631262971481588721067857889733303480200298266435975380292346728597575655308821340833191875142082904787602756191077756085003726460348895449133432701528928655627464741922510148488198415323090254963927281554886927394741447399615453287298490391430607707022560609965047554584115315754248707083048138075671423983812057248488182333839550984184005482637798078567864213036502384553802920101846242151345254650258558795021022350451589818767950406404992151905103897530740542772018156640779160790915603125879938074477948703651632949764842258421262379035554362759973655212859834158574036103263079038528030454365570834348949174419457157893231919067118576155045878437550812419234740269087086660097210064498110555991314642989037470295958596977712914220918237592080750682525861485434111739661208635256212022501061346045950758204362732530669490475661462735465555937940062473894265104678530207476933793093310632843264130215664136381481680719274291438588147897673573735350212290254886928161413712196684753611317628082282577704287838969203091917187534682404126251292153454249673497558328468263260971264067962248982101412455718095255504887596606053953414786571719468448381487522246192630346295205131448335795400375641813625731921687475989008759691496103930214498958486622978256820684169758018206064964135523444331666665976339134473264502843908795678277303505083485467380314622617104258480319369542380330880017880214007670795715795123791307192367308320391178795464914257651550809921288485079639449528593283802383588158337959093574038883286629647246772526251880456271250841922841481075624411929756471082953177277226141210143191408959048874822104112615221620825653242905493090886072494294849736673567763736569743887101597659453592588767143800359549640694012030129573854565320748273169848778943086514356283717614448981677182053463797465000210878154847086576979476166549075750752820791619456778994541141091484763813335645799935286210151700559053716899728130841569305022429697610774742095987113528511128805885774995539676187522721800440488346684197556249554306963775434207778920278612392321818350002217026441781968489425584775958669738518518385758578510241933056464782774845436601771664328461148067502538037130051000291055276123960957439169676043218070392867942969359256025341912421018998394284205677404005075213259146517652231624612396756213687711021055752705264659778294884348215410548181003964456999700518245503001935612412594123704203633006618123711462617996613230053335104739658027662569213786450811879698376175786326412020119688738811585837820779990045343620427585493568824124074979057027769350262780168900129005672336412710615440249128783709691414212558152196713553305431188029934278270060232546651330003711886765536546364060532130688245946030331675642557575696751388018291090267204301127438940907579928564664723008081563912945333001319909085275416610712620274741391178749170458216953644369189255560730252349450838791879654284978290302771286641591182200511902157497840846505476934472221512741974495672198690169539475748959175143691760980114802449129557369950837050649460983521955214057967579049715496328533626696159414468161859954753322611265006833443295749654023294268900300950971886390244746763434726408366107512273882153609569769475735337406544996567189001379598345056054958362739561323630359350619961482178691180360824856064572687598370107708596935920922664256644340997972842493064108552994353404161048896025227114444344365840870494864495995709654663552549046995871707287748171685741735018883908786062449994919478453073575988641357496446236200608583633961757806946346179797341555859359227090549541587813944911035297296276005648743250665254820426758726567590201500417505772044824911395315512657524691178869311900690795122169471423607460975217861752762058997903239437645060479695555769699697640423582814397423084931084699467180810573129122533022395602060406690390240625542452040833871342387430544928903609200663055231708571350180422129951817588899693383372440660501804679370490713888523397224718502507643694902101995854552729283454528609844098869042571464623743079668177167230387134386291500775261446948268074718868476192108478012749567726486736591608618566646252392793342192148733139340498353575186679762644008951925773434160149060833330563929097366840693563176162715685974689589175438353698177010323940975979236067781213793663850013095529028774090004574455345406560117368603760250292490168993669940776091091856755799530289217457119421604393725327001786261888400450558381929518331010215694069240785840464774489752553182761847824664528420022959753402060533459702483215007727051224029787027853809614011475005015495374989087862387653497832883042885899808229797525607635450972287188469900696372026101830224252602538431602090370172457838190767402483089763341533939156226113653128161618601367982409296626067384968220473354969614117715805319663887669045377281410209183196964022794807268431548629689683418755101173746023365284332573065671924052852522544123500667223471168606917600716279788066028988188971869549912047734131099633028015982106241784985911331331939789485485675905193116762921829339291795386078140988210758709234958173636339305274405286454168729153038205478373219102862202909640246142110380744089405480866585585403969152074815809552340012592486611636498171760053695432420700780132373527694463368882234372267663181468725019539521246281000461586756785433208884184526702073813801931074924089006936000361010340304046662124765842182289967750728647594363573701680671319645788244124525544707475763876620910416856899934501202663094431216810715655946383197385704840464194028572323684725444591798659945999846966483415628192824183101399728230114796866240469798997348553426553174156235438046764276064087049715413661743127444063918052365171935340032760998005095623570670735050474633912807181947302417360279710419404173331575244571756892426510376691829622112689341566410206518187332831814640302853816717574954112479151067763770656279005557560135576133392236314378317713876365297690769512561480263879018089695015981773154774662956103174019019283712989359799102319666154069153565988332789914000201953741667541807132177756118619174458339415871928389926239377971991006996763572050101860609735563695179786224431105839480771244519762100384336285227666442418275280455221585189237229916707903718792745469586683331446373324007593458220580891861461030037080463132164243836299701327115216798194807121303024229917794449536824276574898052643329635198079757599179271356353782765549645425960527725273993835697883634188677861138321177565805699592628184467276265965365101511936077178606471343653626443876781376596405887890956346714784356536250980021018707900398274522995488651513017664862842152007986492233278484280943458675548017928866258400855438673742240305832216083678899444442125579644985953845753850384691743837942319634863367259418758173326915985083624631973161403000536028070525967373690027903532138971148944278853843960927487925198876582539768701133891150700249017765812482890643186004623600025433654378422248142775440105610004391608149099238660900356861114752427055268447919281887248895660457061921399958249282380381151831405932252179525437199271693187408764694395620251380914412126047996090204805687722612167359787355034243768413253550431841272433406665394235252234576498558000548749211604184727828798021375311999019634117716207262325794713219645075915921084842574919910373896735444981577773859791163292941146780893685163184307470883023729679794617659517203375573392112670728200600224476804140570625785120103161544011796215994066055750344738886005441178729650468567643457078905218071499115347560927339369023991393442085564737214430028878387569641742153434137770079831270921134697564253198785527885039775614895408789919916580123908336535640557250201833330073743497381563565648311664444199604419559074395535859204246926173690500631741015021327414973931085279042450518784403985676757753100535814198810375773893726945342449455219294234626617562768905189753057005648443039931331022784487267945545519081179192174010732556754846793440819150842630275580865290800472013349335940388334883920206158330439707716091584251421979599797802561946269357888306767684413231794882806825298274536563841504196388121359003802034514654274251755883629649941078559428847383236174130420299057411907370469248215655564757585798399653776747682140293770974128219008340726557079499443585382285341275263698771228805209248951072091796367585112042073124043191080233478841957145658746384697577394939094395762709080052308831409026262710701078045275524739128930399512096560828587266023518930390615954799968561712940455389689653595962162269078136312473795309432686933738590304157396675200437088402322938485585564511670605098453904563220020166013331250462470822409728005821564504637955158195841855378516320310050107112218430329738069542871447482895638155993762124844504877191357981946477838390055288558240623471320474790123255249892263098936616135653169408903215376156467775857614645056242725155249056694568298403757884906110364976107372250863494993731774419026800983329793893310265993365920353612081959913784457632277158049001625234057555163903038865548367320173371876412257530619193425064552655051688574668338290426955552631806804195146394359370794461770759667157585001765691865571483761657541871552443540724976770610172458229078559938786868093022808893155804381867323507345721701350387282324949094208399469998597560287556742840535115693334583678797999802380459884091053773435574416795788226935007480064271482785841691840281521784547293473431492025796445600316317519956028991131945491981956389380704240329983981845700382312876325587713056924650155901071193641818360745197751429487757665296448198710530513145532387027533963142426032262130524930084088238721868554544322617901406030198101878612615713062983569668587026244196887165204416390122937995129465663124884804376060901066512292195180122468983856949330409491562975738699435080616922496197579631897901897885482740531854494785058920659772923171561113523890374222657019638854899444916030606363226247420925592148828202873452649011513346032091223355907650654547053270927571081837954102068596768696284048148627667466913851033432963930474617102451436641885809326260369123230597685000795017698192931007315951381512907533727382447824193487278035257199977187635329510285850308899578276181972347797813708015714530424212901885921648844123825167034982966689363638746874882216630093112845708383329647705750916929054198379527185386455308681746218584239652986121453746616246072744305223639153860079592453047070726983429370460715545592004035770818266772881657417610248438895477065374292718734645087747105435219052976655680073141158226496490757777482747688222813528622134498005083513524240570368953670586227216023830859264681133060706117868663800704443184840554969646098523891740042919508364875590696770386854001797351628881742345546572134030261773448238277863710285049073593084221043523094570253270528214534541912701138516057610242166454927599411979637265570256422434334080010638794352763188292500751268138025564082607442785297355453090679855480386009463087675255682176177454196241885138266310693903927039236795732679089195460985300732612349184896428497610572051591397341037701638272101973909751502289668002374260530211335825701036044678507469501350886604411525373813318466881417948141055420478189614298957513488223051224112513173438662013101551477531692754546263694626136178228050541312172127041118574878552918276871544471791739947994961534557355353818358201862608092170378953160676581590793884586492243923307900832830731235533489045877819603878076754930253744084881552586889674270896332518298497945177026215023029703895350073581786688062216733450667365835256449853667745619926841294066618260092822750389503593470537658882871881673266571684303184300481672558018138052775397735634034443486076981087223493133737113560004698374504463591629390327549460765886461113681605076948302915344181897405751854055246473215549917156382133259520115452340250104256192763449053517321843761056204258303248002760959416689908388286142916631925961955050279648682926022036735812756651315949029952229517055509381527179429408529776017713736144651860119235397984576090349381751544126276522462674704886796552149538450314049291149441672303170251815457631184541378533318400425637962704792098302502628881814180774049707948463682731556380214952776450489964084457507041960198450882179106995924558611568249558076423990272378047997682596244262501711355466204164516802866333153758179502794196829370618179044808958607510195323264793561811390632274742698200460382035494376935944492919667929799216003862223928660242777105906140563193549088908929079731136069570430812407770551649155890060412149447424370267670161020661018184224615318369721220664423376683612099014750018961912045007910924658113490177033596407938572076444666501274204049513829276790498090248429048671247404897986197571096310884508655258680153646046705739245356078969825649150053722304707165511636055202693593617562616775953868359805507981345630090403400500263144177502528363804412510922589908219199812709136681588246472509231556439918626559966930943833150523941907472179294198670064653721792340462923884406350289430854668891086808827804305859244845027343379706361269817424887576173593475927053398599659340136538054894845087978186169094367150082963604326808773362224980472887340738669992721647215003415238937699765035768115532454201351874422424333703215332773237788357470397947285214858883482755143973146791721675079817007607532773112816281794614614146002438421228017144034758454117730112840808426359104335023404844914484722639894966390538718326349728433562034671815461381265957388002998458660521653420219135226616960436715103130239944294142939491909122211800088320224767301909353499982922026952331749530241327373849684513270937256373479276292329102330175749515551450490204760423036256668269846704844596475552930001201324380884204611191318123446310314899171583473866974648157892694270137505382983645232522875994914202254714006756503908951262773350143654403510513355847028698908320839397754715431810281225496016499617475143597550050546360577979346050196880690371603362221726482485045282375168195410385083415158395708921626774536285561439270814044412115859854801965075070948781112618364485869773350978420720174301450171418321488726227098388853066297453698101554735136359651261541358987781095821295677119631142801092941955402316999103216337357377605595004610480556762334973020028565705563455155182192859956073051005904729041152911469640165437912130193614155975825614902482823504058362202820589245380943903024305068705921561996231011682932678545486305739687441874756768865094198269868577771754613638659953439000242926505201716329642997244480136269522224339593230543657130575738566798474387620758121351414503551145978957638386491588019707244928114556644701345326633574765847801380494915621431801962801127466200130297486294560737428903957377455045480016530053124533293317227795846912450887651637890557344208324171081077804512493520554894462957203141325416772337893020661945911038894574147919870208262377952857469109153081909892110630750766013415231059765441250668594324908071612208385903418397153684452132057527319969407543668640283686618853409605750406113752451140410756987730856849582305948728968328941360407781945005499249561142130645995202173656492002536640706520017772222760440575195597365543665818936883173775528223595872084513758042533377230705744775567818484716001005577231619389033469533611153388220277761424739054990430861408604888750496739247214125001599433835421017943584368160451364764974041988639262345847932304268859471631540661383448971668892457130058695825666636819216883122501403577217811468225016944115236790295570710748622268943602041677137966876056894949733044463733761262422847456594554935221012105403825857417681828595773032983873917247433701167997247373150056405407920099760711858047542356724235045846865780538967512273985518256116482319467610197500042673226084849203722622962920584381449058395843529280143754865383398755308072534246616647680178465063756994202945781662129522516085831789993206901996185903599041580053492223139281742357229873246993503109499942814705397255247957269606999776170954274244661075449253696017526560055692663596506008705217020690120890702994516520889204146621657741133043015415776091249238210356771989626437499408164851411270098267891078394299523015865441407219083394090718373890001144818880135789854571223428087793570027911730809451442677111699038557761572186617418954798669409238839763734794156175518214005706414243971002792159314008568407724987285520113396950313116587256561600223667820620086395420551279968248376162521628450755233186715523603659626762082231945438713000551410880724230369125112518336698083177444181547943886503200402956414489546517351614746649202590705513210484460797486685418077526443412993795976112653684323458774314201711605844490868876705725324972214673880038751050343981130076553145026153695454624342267698493313741755971687625564064266619390820567373774241543622410589139913726555290243962697446706452631653300305577827734965251056908016675961266925104156169069743858004891981257062893462009192680653625478947498484825160250160226379101680236156702224503443001254430370527490987144989724221349190793009087103819535337234207495034448865599374880626419660796345302745208912250563732152410985358870603362548063828619592961756478205598016957504358677742084996368395004844761432432639329055004897550283054381776244716825587361606332160290924566221243979382098666258370435865429477234980793708395366649286108059952612908376902460263796595050979486831888470194522480397111298512784051457974449739402343496345253117865206389743807968834349564074803195120769489900832003834449385696586492542789418255738478996758164189970906544472359075783542679635057478498313280280837965329763490986521105228856193969592295378315661258730601880108831410968948624680206219552379318983822334870110214083713831983281354365533576108702010152234251774755591103043703180793420422103427483086878809879733444597453314277128719115752046777928382079482702532463651328252680379432570173910054827832275349260196467386002848961612337915491097017905394644448688262122408131574628346736851035511882135421870458287231290817649815123381913574841268019396054272447170314792770369692902637073075021743605641548105818285591668682625221776116956158814415464047419288066141823280178495812678457723581269556697005402267606735182220289752950066390481428333033869704201904157289039309731407625436687128657039592173580894039363139439742467618412945215937253388586025833632712354298587225591171372653613051212840125054515040870820612422728903287501527800316691343450891629913603205311162359920018268378591458961276045129019008246691763482294882510896689376554242581775707948966444672805275400250408671116886975682167714996971829188181733693523851175189878294490796075765757946234313492503889792484616583660749635685541585370145938340632397602560649949903170915475338897119252010802387911802371734729712880721782597433665521011284888937732487728692631476883802340434002851400165381068198356813337926015019858126738689910515459563583261555889041648954418056231212917224672206035186799182984007561067880932042159702095159622343202443970004455006225018100624479074127376456548755761750008388440396497892561573947614306004354371285557330130686486133036018241518095354995493417175896096376415852307838301823147889802766870728443374012622837665136903488328243991015613429360758908085587397342147841560726080444343341410193655930020372496527307073602422800059334673071659942608220082632830143985966918670347405299769725259052426067729609444652405134720842846452853857394658620758866271783877109403960848457913406971866698167931424541140822071925651999337422270391382256584864186694901137514076132067233961806885341292627351298175261671646923725969965342316329926372958613739684821947740157597449828821851111944700896157283643718833076052840239086382563988573917538815552348604115510468567831283126233121102585047663010933807684611627766785585633851958527717782535985373245854762388705030746330333786350233677795265204501647628214721575669574616414509596894967540091044572226590747099968715592622201136236780909780939680010628087478626950510746717012984325709170143612641224147561372227814457526327409943345662833365245236746576026768503927202998054153349475063998189707148998178606196288891856078369219078237008511481084120620415159644515288413579213967621846559457091080752076134429768675460214914188962488221829655749932525344860021441388344195301604507953386295298940216515791402496755851773674243394820168215068124819360799677580570503703040596215295182517634472923800643318390252348416930605023611440449428121615901124861405315122062051391999014277560692920008931876044303156114803935969356275346370008600134654446502881037573494590318590509008504516700144598493450563122250069391257121303277125829995692251801923078863561572707710904596325236591035979972639096692366838755314701664391104613934790746323369683365301049379291096389644328293552921265168251313983926767265739169083633171348588493530390777599989022933649432770221640432049485127641826043443967487170123766788634947222040725287635318054552766896723492451048052636504387816731886409304121929659140998249367078083910447199267644256806139055916373031682435582505530415706078497246614226368511627247447562021623409028789112731619757930252664910757095086246674445250799382781029764966715213756663443509406858812182697345159943392648987718694055356220445839583046840218024831944148633338276473767171148736610584950086748267466898913571540776309736442800049828275367021326008596226505475577726342293877040808990653614881281289931201364732112558873966781657473252583611184818502678682988706144873723687202460472971120509142380687231414280090173555928793402282188119864356751303946954477236394148793572812407290228083184893302379452900572434361543506804974633692639300427955480761163254699950345281445714039942076164833953583077042960139612437420100018736435084302540369797426869382292686261932571806903959380415493429680296122373843698977985661635790501513661663162030234323455601402821650708601477854069195329743853439656538771812769936952858356831759449434412170584916796825598281267938436226471965560095394689557008865541051378712662902036475822402988333957984922225081688360867604481002029431556298754781782520360861157148498275136084559656481074170775410346234593966946316001763133020716748975735396607881293366343882711235643012406173825890828798962164475898313812048879320754595067669494333824643084734422147897588892711774880834618834329426008550532198481186644850749578083908101905749343321574875684925990009476064491066376210576205228642139764700449971838269008285691628967378920086712804193439238089081900041573259867596409728327571503611318241306603001334470660283021995318601804177041434857644182947488494806800569153365397570176631061275998861437926659440398808550504296630322229825365407053575382393330392004003083441674367771373686514072741437970569706657932551843403893788501527824818901843302792861444698333563034840056494683749802893221231105140554922401688428581778714273140547855439049766354506919298748373483039703214176997218773030172805282588007943043834756078568533616611696888788213301829224015741787012098603934595486244514854576245824967551117743803234645514215462744772951281340003316144826972161740573931020751801855099476645767542793186141350779071274393823236118208075144482093178321898765416843955135638846220442746282415398773542170770357696478329440327729608896438403350942252183737107618171193794283543008713973675103953526534685331617316268491339984163552599519849811004588729445587560010239217106204743494631962442851168807256420833194050754376453350887394849631173040314043384594638273827780013177946678908807423204718725069133316940928336033667155877370408792842192236385116360879665537308931476625241721059975588839868952741389219106922443369826165639271533734346347097431561718915992839595229708151989385999295216022806960714869081118854956056401090356791931171800410609702486715163343558588442507745721481824322075654526617366954527664436504938093706781564187348887938678883901169089282071198077455400417659161089644088224268909878363027724654307667783251078721086518274166848705763745403224750114501002233461220238046881207082745960869511035904434514318453465658060794416622376365645261335262460946409009983748445068200866672707588849494382370994210941214651832259610536750024587430300077536876953403582121353206519210641983444073774984335162737064279675840333125589673227122912223794188479868779457117608614596194763567613431528013159796686111172305239677630050886684002995050179112899952473941990048080094134782879560099924000555393623689891492943383295375322673641512261926805204923160545445201014902143497609442152342969408322946464238043602885341451862121243479761054383602675945755090501510430228896823793692309840349305302826321387920679880715029650245722310137533931042540820050889692565114851288633111056497573435351913848067660395205466866037710176326353697613217812880331325979294765493292953152816616635469558319126715768597039158611849884865234449012317940823572787337245822695577344359953037675112678817741580213262099789348481510039654491700329290409330964787758276103024964517896225391076758853976231823791476816029503379300453273804025175362112952030555447905816034081609167028279021493107405966503281264106732872941302116102222321682853717550102840789321352100181287551411732312933504263570282591845621368536032955752252685281601547013468713537291293052111153725820286267008526263934988917497869079936359377913212874198955999944051190565097913203728974542894286254900742741121818143473946911826481783273151338274692290226939223355076679944816968819437899512996365378890174019487014787177359212670309750387746715311911473671401999444128324611076250178910703975652222967129494474406287825311070144936242143779766159514815318228060321916853597186922002882030260381902484444624044876232713680513980222373185128423817950999302797107039362371101122450223378391129314694075043030902955694926409349325830568414895184737368852854301522215960936156529058760805226341251605247788410266253577956935499982091553626558669076654187413302596648746648595085867657571391327060172097678851256109598623180343317491064609809726354477996455041204963909019894786617707325573032283785886473649865584934690307638588212296384261197569009325884646128293328982551414329979334195143299961517030313130143236047221716602015127281090010386141274657653213510237531470149624010164710761711956295690907485556698370131347481363084309806183793065071560460450057556082203064829611444997628111949663368717132372440416713667817002563895750025826591793720397795345624035673577059026957389764977004669088877125219173038263627326718287131942320166398001502488523199401352112283784437936556106670990676605273455036588769817000116183789360909722848793265924501380913592831664793028610565372332929105649584599017870618911542836859366045897598832321808345843291956738040181852375239487940831696592608009591067928937242191915785397535781345351216103822464124629802917244109752939131997622408911224136597900013338558638762167571965613868549973825725595632524082936717739958465984740336751508502779442131032093322099833080530248446373501933013766329542328401357261089621737664157158862832497701641232774421002126133509627217110194278223618061199105045032032139870328706527969487035020431331758422488572925573234821410602243041993866536715465384942015601851247240449379104149989887275691541611414429994090703004793769687881914118077961604432818972236247277830616336803630789597274104916867037173050616771219917984725153158056721521277799137865077506754738405295080693932035251176366941254119920760298805717063143051016986343653766274435521532357318690892227953227302938184691225605257191855526592813822904261953323155258697809781342004830830650859450469732065105233469951406069374553878057375585124315361597201400691158955759891422728938860005088444159563168171800255887758159436767098828261172571345364159324152217422924802062021294322032702900351023432186448003551306324926251826679892251222385196416512155498746874662982697545095351964166795764150419692614643344303616618826364399121407204805307142666709628265634121825383711689668903924382598396336853305993757263681524469739926251007553632097520317083175648144306738745725302767358555248084777622161153474412549591760978588555044737620612926131593187684267866166785042514927490252660008713279496933437031528059088695456175139853389561906655264675584229054065444383940067953790345357776405283029694808765241776069285266217577492935923879796690482182237043672034906142273454629406820936290470271399862571818988900802293451296510513366746228253255088576783091718675194096132674802581059793094824286070356895427638027819453776856477193313573657359260505609900411006794925864394535582920391798539965970499274785395246449219831888546060028515509629275665262466263232078487022438151936122937162113425743092453775256771478368323722960374684712986788819492253113628296214869818775136832143438296137140068742407139590174005088906312058509096663248375143674982583374329572680513154279977347643388732448739559347256336094991860370830156228677840168996393477280761668794580473899205094227331245144067072874564028868540849052337934595657718044760854475191125578150771001124221637152936848986884333154329992827874496914737424122976254943423916036777679172591001905920941510455957557377171312935675345962425557103108377623372871924102579572757931860028274607402666741556432364715306917554133175487409038707160974421155552812884212049027625049599708842674529352040725172712195530612181719416526320980777726273117733684469512718464933092075794646990042011491104396130386658509724011165363008874277786183708189451364079661270542285390084973611875799885520050025594132242697160501494291373265156818988333727859589834285555440658892222302251316121451881619752948651957544012691609165001455149802904775804262986977903391666865865318811337455545247795383600127270898424070526421751105891722216417649896130014298702141979322654355593799296010651842543608910935652618437979589546411299211937329519709788504338294032761999849652707642936673902592201856548776943280691764331128084194608006638156081297975932656386656639611641305459895626398039788635953689154877046129013104955548783571149200336998703894660558547766624939487314296721965049934288747022384432586102217194326098233238208604507970017609598920277973012328070049025835310550805195515788476988205793364759747058266396338043585107729383933029756098627346753227470884362336648265165095025729486702435737641095060096605834427477431549761652634825691235219731875646025927518977340720683201744327577631801514881099709611356825508369931802183456378555446718665136856054579441681370171236444994991726190768713635995149711127839289221221131490619623981609486662783106280422722174119830455910383500867667766303099319441015292999483047078367713761222733729011557709193699562526320258500239110696580789668415058630932771058299111926318275989201760574282226791381967172075278785723871288628210045252255117464975361955902704098375682104388747656718348324799140423232422607225003070953196349820874067022157408627510877422078775552623136020578611984840511550873171675162477041682346555768076777229413726410436655431294687481597524215210223812446110218135002746019494979810086475002799659939307348654660493340577306296863757699970997647673095748614893085412022681903989245457687560312861564391456401249596099001656591044067565954572023331847590779928291637786911998294317797380881208949188861505527464700038564176225149503536912744456614242043880609105853855879907255354409386582049134849227824423347368580355530011632140529310311110357795082641727113721149493941058954334027890799161631700624518954981844724991632793796761959537713535929537697217121150481089121992320799574591854865164738444889875143704879113571832670643233865511468059802358827144963936180624517837169222998751286597701349787650161731797391892189433841738723354018881830069591610941904763674990509049273620663967646374656549792836157744863776043233255531235267381270991132688444150757690518986195087997650459475744356249315980100466539348477479381431935772092355984276027798586573301044506838009093126324748581875823518956715015786457822838071669375238824577782305001874412145588133503917206000745004032225673552925855232929645616542783519966557156440062002574791568595687270750101334090583208549287108431625196385410607403550812045053203299133382430187413491696591286543034839682597439481668415638242017851344490617921172722824993626281577575940047348252950828797693959851749672369911759002722305846015058719355769356836668144787335044420860897634371111106642154890112487115266819861428646952229953103929725618386057113644122918104340816293394550525362235838670254366944423705266214238376719397680172199292176341739233391024856261132398008735270440423261843689654834650026539718821639137153680875069927362464302422437488567170886384851488142317944548079633932757822332209910562188348390330939396778247010007866328813801506734655768279852516255054574182984922358087931360449340507419286944742032854834079173669318665077453575676645076040724739372261321072031748818175533014864373830657468182611394330932304395506122160956571996757255082120244534492144875356237048804379724088989850355413523328507584055377549640398364485846128121528942554356366112364352858717255005669795025987520006779177234209393207894229551000061236617530821041858337088565926661092153200478884302698840016078089149780584681132235510920849434253170910287468686133683863199503621947051117421842845955476043573230320535824172264187616482491277195667224070006769921558965150364658592147055618273062019649515214013523054027523113709532920348517320996881987168700257308484542314277352564581226643753757464851618826103865267890171085185159446519666841205471222376118587087612139521977562711487944588395146987565462662218116219636198018591263311200990529697303423447229254316641713432434446875723233073634618217072671694767712162749279470001115890077492105362880948988325356787978454438879340260852454106635994070212903859233404513168465180978244126436836450227895891443527362630005714598396879471611497012406148314749571328539542953951330073423971738451561547876256401039926491839149270077434835865911223531129659793379423239772345697356932241338669820363800926350694053283373827167422742731638702179641301532635519311459143521327025364033643766767097835069854388869123945482312134072991921843139732305017899210567655806038493924516145901602523385829823303918754587395200011362048337150828467966341457865725561886985120482980602666358257041312298770837805308070678824317197151642223650153730989898184127515933831666509185646805633088924084696160730914305269094199093217461582457243130855891418138340271172283714639691533372840427124936755342934748523366973760712721759544632276083334899661375661116096753483969357051195397633409117499976075214355996941310595119094595930419123216680573689018779919598113500050960818447809309590447303192690560925530176961303200854683876600026302727246627885397912237018607018085070556036929995573167473644512278558306855055554261910592000548589228673789478824461508879467029869650380608419450974229220959714406376944301521777273903882299518683256623727212810348078200234226117946080644640875146794300499043250142589990740212348266038445010928315535796677589633254088832889532828557130476087638023487225294410527904005211835148753992849400127645234696771357455607372879985561259541022676416175442890467254620215269587677723153501922289539665698106926700671602976093779258888133978655675391407390286260557478508356251642849985841974699513309478469105767391879845314651853286074603615741115907593554533446489176405715020864396403722020930341239677009129125723866970241519643995681059590597751389169763495551898525164657096530514554432758936728110531591008698892198220824169878289891942852957481348733793992312670272086006859303026170917553049801386297828179609153497103968073466891807533925878207386095671042987267263252042316296780996791325185626755160430852616192093737179228431955467962884882022333650583016572193986404323258332440590355503130509028561633428937039541307701259119902868449395676041409743116497521010020286658487953268017594720230678650809094028520861917170972227979725998202302920023634741792598503443484875908602582324915719358606578565429520813139728110834857322644146284730503564776277766169204429935042849681734309999196890927399465287006409430195899576313254367897258557583290143859441384999858596778607467276822212375164772342254761060774230552925800180976263978224302695752161448648378007919682822365636106434145130950892826800918019082286823822055369062176492303939266111838914984455257143687940854594916952392049572330268273169282709520038011305279742246248423889894592603718876221151196342335805373426745386008946032964221696157244320653479546693648120730873301973256405983510262467926557069352783825841412074645788977044887266798364384550269843853158753748777824017677213499180722128323795845225806929315872686539341389776912831438771305326692297458767820638333055127509447611669713199650664533953340143220438474516340653029090746589927073847040104701850712393259666856819741697901293158445860802268953119505829968328048684917326203040099758089667899292428927057022603123441926912449758299459772983066136147839826095443247603276378645938207218289652218091940604407450154538424130462197585257647560085329524587124609164323254384596548819791946593786939176329401305228265841791027425609743516569442297004946739075718794883443655042568730087366364053979242838442888251864620360005827272174199013900367577766266049805819537156406914286653620656512503222564886875410819620112142588280683053997006199878033189957255119310273424250769744420843237096489200742482581553742850680985103591208649297743749164010968571888498603800402463827873911918703919141211903552321001361189654289745798936231626164442094545820938071018235004050967590864440562770093740088413739549355827121895674927935240750085515724387841269716181250278227629325895949433305539769325498611586071106749042155613654335715139345046333823187576452505837934161743940681621060550200788129074788770567096883026515488866771332925156724441485142589265654040257048704603361135184875545363395209748350887785721287205519831510056643797144088180021484318958569945175489898900710486796745448027611489415199876952748540061302744613684534426013035213639436149296231908591648485149758805721281410660432072794556147567872824551964064780397907685308409486741741346800263595706668771718078081339693752361079168130835238015274366230505573452924752062877370270067869129353950496405521893683938505636340624752725196732861236857395437932022344086430286962807071343997296913525293515346409281831650493514968231686566980029795830464302290301761628445722277154560487772522989625589913453476813571909495703382345544473223896747202574710509085575323834661091676082212537609222293569488930775697185310579418602824112659853842315582218627102676890285201606265718395957602063204862089263541877994120422754266109369481084472898429365501194657187495326075996306520413533824721050702512068735522445540357788574959217737310078390660432549295169489746020604437070392688548299124584046718079682655480310493553377701647868482107724171255007161786997023937528643531762625125642569334496748647373538890604419861439471857066216175411461352676383716989638660963052175995943124323613281306598168950808004621649920402901494677585376058981896155911402764443150146028458218815133581357395494147794756197290575042180169992485586706367897808829175070785353885774797791515541059176111085808353854040832126304261691292121959274746616340515126387960100115388424135176063361373756043457761068164366245366417836044884220187428294885464665895127297910230694643629641379373614971297232404790700024695660624954826191283097588678344561144650998759594121857386461711231450087783503771541885086403533313319444088379154897693376473867108507510833129915976258696831267807905684544857989958053600774470091948920027882468568093624721552978736608255757424937874459418285000728930364997248794527121023516767685481866901045570534893849073317984318799706008727389127008476761587697093035225698999569779004627461155438908554842253802015331012411833188044257982747808694896276327579520785634490796227012380009360251094550189616952879988531343724173983554866918829171652062010960663008941608575052863670424497977784450987248516406002367834217840656157756436856435422435853587597238203254143058973715320960554499513687116270772639488492041360894972362169639879774106778890190848178157300118440714440361743030492383125661061238171624409439583955312527410144381106210349863933997320239197523893251135537537365564717416173366902157078118043420699842427299791115915095415830904718665466691318140434273491754789458207812134380776142210691015855079476150626355305820959134284635998989697292030951608986065432775738633177997715723154666198166076368904652144310936183102455624045232549758262848550466687421856458115096026031561805345492959964446663548127384267545539723720918607328820022340431517366825217781449108857283248531475721226129614528589798452608468695527707366042832435914712851412016285275784797199335804144797000033881342465067684790532658717311461729812832046157933475500046620115443222528311914182790680808573059550716596596721678212086115950622438628216323372604069728935527148643698166892536888158711094907320444511065441897909309872631980300781783081747617606792619269413996934821157188480964120370060068339250362690472334679650191026198772784988549170511967653037141471867902550969480000122858849522276276049713976569473216272105950687684284697382386992550436723401376037984311881829375527274389593468479771844518278513576374095639016940792766552614806119838690943636840171959826134213977662183559058471867551901612082352685695489319848002153267444841618015303214754355848838774264143019066304278438728832769920494432545511938049576576158821089864174622580138140713322083445260792191911273333024234692013674667712568308157814969812025004528584945422923491384300641842438139401716031390344372275469175837695460643286010957324856817681285520731950474612113219397091619581194072738821632911070277310934719422059205612225804053516842812193162694418995029748186664599294789661331687311912433019896195976867744899947669292870463017774955811481001537229687714869290661461568961659791508851603893181633164530829220166893039176187115201123448521468179516286324850774031901459992008425043782683102681333604115527092966886204747643677905183249383195239008198590548785110322512620462295744319668914370823451949802516505559197158343171127713278182544150097322942845442620193987129804610125715742645325779870442687883568209787671590257042905778785759477566482856711083916240013168916531165173109502627283159568761330319385962893227814012041410532512615280464025634208298861608909708541217845922479076699750473599013477232345734253211552428593055674477893767803907598329629120791273975969537453309815143216977856528037222527215567247141994073115910521795391322092753899558236447978053362093298868916710114166504295819562157675816986487831026337274771494216520832924826069180987008936195218386375071579829532661895422986583448544858627382101864040459688578776692671053937467197022972211248994027729582215726231666770007541215630501467436295556555466718623986693375620160459906397926073568941484597926658847296059862617285345113199361379406761932295108019268127117357337767548648806381836034341950771605208797539140837183698261067243959459696778887807084836417747228519677560395059380225424845101588572749594330083760808529364981624383666711845259023960887675253261820836542004035306275819373761817131782663438303557388090954792906501457027305210913889576215097936986308757312515370762141675820108521072780597086285236253764505644436019108189337444167674237681636530662049167709768009980703426480580604644659480449262758130116482954760365701179001167882531331625985399680737304878100518354368939845960917890459342726782415104205148237269599488569587813879766825346015622808652692369760749279629200134628401261213352320651845260577762050110350806593317218782248204574387682535863334676615762621481847122543105928753515251767101122510385215937926335402846904293640334832972714030355760870288909516771600840413290392653389437568964777457760378478237991059946156018870524487904905341637984338563206657073197245616091371474774900088989075247563568391873020257488553089376399415826483157807251463429185764728041393984174253580102131755603355993971256129115122645267183921469987176850529945213698875727834818800492854974700098395909403504508902527433195232478601719999563051337145207316973265193233250677430089275723141562406132403078863609808545427309758516986449307709946520942497849909223545017404592925494274694166955593257266813082437792569122248814780474218812109148604900303721643898018915520216856489471138540592436476635942639557705092461171526927822101156069138532677068140466366297052080672184002318986801659230795167250415145005967696473575252347865253530942063409769237410128210845138897994858736072063805885293899158394962867812453315815620843761965864887047164722372252352084391097514297256881551664033772190029351016590870369494972893761622722948197671881271779079175083093137685099431521314632970417940917467069279643660762907986083700998896438845375394556176925032738922913507998335030075911166306448052847336461521174623199093611070648021574514750913364216685238665260778937915715430797253634103154614825805063737826569675531851516122116645729906064063820888952307900009258295066660983048803570172291365718709497230748568642396866778646551134934065722382891201758107433520383334501747721633434302504545894737349311954812294851736934121543522829709597433201800973180320010759120409996420734753560009113646867557673756578043103131458991326622024265814586987702862101450244910224871531005652962417249197425457177859723534423244646850706005150055467195059306205086935036741282567459667645508412244244004472817172671740409127788778705546325695343202887351131910933292062704460857400900308316050221380948771457682027481489688355023192664533679854996701440732168468291797017202328679479725630344383232146540529136857365651128905171777015511546015704788021332874833858903958251362312550199513573248750463462994218531436153842902412304186314023434818197624752236077659571364990481877877288253220737472247299165002464431383556479057328628713110196569613988310135411292786525572791472076134462583073553614262418630266551776741186987303529274741645771409049856399638701641209328521621741803446665103064061507662340329048714797513097188325817056358493919335998198416465460568175157478830940183356806237713171229780320640406855491180804660550945557174935394138627818698328314084855400155556771275760730222225711998464960591488129684426659027898107265169956543067703774350989030397480958155983890905374714686972829001520941500616258442160278433686196106246080188355184546263875346248024676226217683217152240627102620274248940340724684594459988995210983125490696521320061266505530355910176021961351046397808721533850505405160827034396253506401322871687241741734187685051951872505599867577893332834274829621135922477860650282798793199411007463593935213363910728445649877198066946847377281851622962437782955706048278130087148798464295151358536560733537277866230352957971339800843306500023781246036032704389901993034531547261773839532272143272043702319697368559646237738487280952600593034262421814063897015170686245137922801037296705266650186691309253028603956459998461661561134594721121654901303919260422411933654539495061269662960551862458940874032426807281115689310540524441791078509083714356523837278314879356426617911669269359440802683585462482195320354421235164822411231571386797189255029793656446960985074860893736339217203439004942232817244335276635300751188718398058757993791380309467690229386005273936578741997073012580965224943386520665810849615851230015966391153721189303590917850929764961902300957919345013101960319498879872131340443228347096841662968143936340939413385430056843669701535816250041003670992490083911377811519970464492671423564578369507492953064946851592662567399899727206949475368254485516527937219933165667237519996851311323167414868431750336137043089076904163988676744590579789940807661276969872983932040184969598754009102961574946782174400408114013143347839864700615693052929650637457704766320445462105936419977814480968911751438678596811463791504842177475061625286239554832757205758176492490486741468422492048385816038841206737806251183311842801164486488157344634045014302885580718825626799272386410120702926498534298341851444143994466372202676701778921232723142933759060994519532224008796427788271073212329292383306078924252447381632416259541376362533683435540598504606348466707094350623210441894755888199089610180729918759122076148925870460477028383814517183808139740284808365713875678837849596197613854340301286429069220577779606133689765703917761765531032919589725814381353663470648592719720722277049181736241489192664156367995832330766840479665490199182457974616696854015786149393945298152656472515341699876329965770281616979976685960882491514859494057910042983214052605663783813426867370003570911416244851854677919322218058159359552383237306516517697432182462122760312066051645906207141811364456404656847365722753927892993267807528564329779918538061578918655516660892124795999053004787636391407555492186557167955196138113345548366073639967792871500690073913520886921799474125143467893153657717832914757432096456533515586513800412905497221802492497757680733753245001950709575882388603364658578042289324787534591246715379025888781806114845242774327783478075894593028547687568049638539565811689105244814839074718521390073828461155769488587859051587915416004382404632629893285574359398908609768550059820525970098627036704077271778086549163478473564640739154315924570822603654271830482635124338147459991993780252306244542457144517867236706621546460153969535362314669014654239158280242817072360317270728713555530912866399423826341885052690734579396991119400613900829231920509761028930240379398379243670922880344934595252986990923324184178114109778735020638247660156779793212088835861762384121431761033720659074519873500901729231900836535395332702544857492321804324261939025260212608823530124181250274801852637405558781678314880316256992354893345846942097381947106675762108947641014981076716810749202940045809141148066746963977460521876410199344177744806007245805876026149154773740822891485578141642812819779517296998855969935665777637512629317085737092701028293210251952930176343269378468347836305011827482967846374762461661154709119486727044284115554434376439822111406847470880904054691089208326438240932762982127011666287876011206150108074878261147499695563458897434206540135722397964992956119618985873432103303113671128615334975844869985456050519068037274763879669863656152621651709257910081406159600296804533629059421799739052914266399717018283647163705036687591776682775570416575304690732066489255888482541523421585709797024175981865408926761558788999767706176498208434310047929975317084173525629154872401341256867478327294341878406736792911442812833540475609369306588966277506175466001412331914941157922050024807333632325081790655680120437522428328431953964542397936696053045912261575626633892371594740113172952302339579350630527841614942966820464178819513726757123164188235177080039520705892779125232836808893082645879734366166467648571881288063791332002851562567327349576001152182432062378112939728116311215463490359276572770922695298632169340385272394317830426335972646123263917532901325932347142259756000428400449115763767081363318233499683721704557159228846355603190970219017739969919857928815984903546648780619962920016298592532267738466065240338993694165472333832172282607306164385145553458103113084211151572022550007116981165181454470352223440710677692827451888539325606068293885177910963841110175833201354614745386727162275876872141428793693005690895635281524584998566993038021825801517673652281240112834163827207802024336740235535230718378214943597293191336853019687863592801388536320136250801747688023533671553421629353082483890009799426347595821243450612539403131461437345690342217043257229533462454125382545547473632098251199079926412655885084138967559763694090456340305004651701613218688089518137023365479537535459759913841480449822943635548901431629505943929675022584638832161491383311009606430976544135256361111835367866750812487600274918239277053410175494780165233742549165695312400430406844180043132499914171929505003008525431940324934097865128579536254897339343699409597417615785903043462939113546706845850720993391800473955051504347456653112192333019326068107417241898982492935051218216965701020576389085936093373161072610754295032048646278850646532436511952084077952799028432262386814714673005804966533911571421456918867861903581226698068815415914949991040382426087759680548577050309502775284595921445568272445694459085741404654476655179033046556700795316736803373988218038984874330393027175580754909341083342396768600143383369257544037430588060659602323066325503585655897089353446516552114306495435866005417190762926290435858347207562243384120999357108105045581139596836692162843364613069252882640621052964226017557119687799067753607003274248001334029233604591769413226856720271104499071577275789257151624880786946886470556332778500089018349459433378798471016492656634845276936967477233217849298573425951054346089142687438132257634914351730825825407724877749937299758632674629082666158892030010916860994705427140758455741364704687033354091375296766142802744133430055208890370122763796198734825465992066300248780955791759674641054666026348457428574447475669145442543345577460383552810815754352174466625253087993733054627810606335777574274843557610733835617614674689636037037241917110628312477932026577015071434691445402915104685748783316268080840872739124114493271048207784965761559375984989256822606872211084219640069157506979491690102311221240040870127576605194460218404630828154274945632217606044469904681186266042644322541189645394776060040534423638133095084314876536553133747903968938526604054474658511504124011719726578920616241035426857107316570154854053584072199306357418559206761505931092407373278847414853210856027441158856353830898746598839003879167524842276306838975298475957405156394687710228183350873393237188220039242527208262771352893040234191617048348951687178454345599605942316695567872488744367576452269381333878793140554552399788926695387430763582921289559449255592005847790020863666289307185335639854309891085009805189138179291730609110859088310405718113728016706000812697862591749966012140618103609440499035745115606172038833722454342466697853212885609820520366731083991067440137379958930863897833854826107048393955448903429362362090032358373378625884079856360825564159409192749328055922379211009313033465935665389193664138591101137757616428164886390986748944508585958119450288551394844063529082443424793251158305829872561181291106866471587424354597947381445259603424811041617437601535368919110912204985071029752737544692123921440063365259576457902898133220536032166786640523524875540059833649627428622573748487805032916264776319130629325619029339405402174342695449864306526941894167301930789037545748641300931134313335904279114046238963682119892787546422048222975057181437171758801832052717936145483051626765595389966934261049934736777903941691435442323584434820302644291521450380449992424830095587553169906074044114159384701334681647017382368015043312885058527988252610340668816404888341897566339699447104382942334071567814293374341009347647303661981922959673029103753969679003399291263948760901797639853255730273263516529723034419727697360815674351649758760826677312571511861238228957070493763465209077469437755572541439618353226311230472111002530679452710457827403184323831010614584502306689649432712032020330334707340683855861978041199941171596018817463740343933551391787874043572068476316015270729357552518757610193408259602300924067754152951461855993812457658416434511667843736655998578522871899996814857745425823374050632135077749713846654247692586169511229042418835189977418216311965143684415836379865349783177745358552133445341947536618101251888577796705362901140941137052066863734097723572147586108664893549186924358823333702892886454822840633573391674658732840841775703964584581139035078653948806499912837978255206426406018233597453371876201776204820852888981480854372825270937834690111574159241479981498791385645823634829241821353863827029583204575842984173913638204888412474585225537622586507246807302108457642421879817453337795834021764047426142661640156127987998463444186367643345825494557270109454014359074069799215534457447587611514210143224246601078828306028635943056379411403411390309211566304379936528444332813386457837409893623473645862974949462453368863410423304783912865089780278359013288478347169549705690723529364672389638019155956735095531216789897185484287786444662337323675606783654684827903636430367144756506673657259030108991351997483134488104457582695390052815773838732832254852408595641477653244327100582562387864733927263128519651549806642679247071979667328162579599678740192649928185881858837955567765583179715703629782454942782707730444532885577619945584871323737265737542761403065111394345411280730123636751002599522362744066710113964701390052347628837020000491632148987964549700246829363843429636788072964309442206378901244951034768076484580966983905528238586585082881490561213249336022116028099973715743883592178599939369383298040880619568663189108697702270761462845932098685444278775685084122369256260264814575024198106742804507412397863934985968601804367525139443416429975006433022685417069823951476047802875247071078200867106840123395244137510128602523206594204020537000047815055093040079287480614708212428221466321971733941450136117717885869426640258746101875443037423023810916575803293443015367383627655440323901769479605823516405535233078737852640041682019725833521856149230675850442303531463394687426300266031221881715583229787794888854996554214122109280395263341147419108940907260490770404450312044321875401897742669178121685926149527895994728921368082599641143527759069371982091265994427053525039354145967061642088582687001414150787228767307515660582441993152622972171226099295706841267816780852487397998196510225312139117653701273860304523206230928051659399399819653486087139861750185579989557272908770736497693092514229863103520798986438952051392914586468533832477864493237422747995348716228448965505701443532440851366016800095368136080413338699206213079327237839961986285510033689646534369977339436188331352114550592936611349133562997224249799968399662476228150317114294193028420680057263722488306648598765350051307630181033194820417841509076477828876398302580693961143073496849366256066645963357363421479868611306941216007520106005686939048588957828045866538827350092354325961614583501490386992536728166712066659913976673543315836931997519254900666337265833295315959766207454528526064638135930922941929095788035093895018692556194263991875476194369154573911931154207469370393095708974838001679000031445000954892457346392322652335016093700057929515288624440471959510926069877981805889716005832729144556837941529156403393396955995378971864945022524959418463078913625041001214477898434235188311853167615828617893125989138168557882035176844503123279405652452675798102976579995182519269107156314936927931221083530005266922735237386391158684445741622356109821768718573594800438816312614889266311930720146402556142083283530070608148874346278727346694878316333481946748226411533013484448929483527957582541070685867116734234045063088951717392964710649052402357626609203040231096754067170785383971577072363937350204740890961860632603869492856187801555836719452452240053368584733016727996105392342679750413094205010835849692156543013519987584212503360157234791591798713991009985528764046079879008745878542985216465885253060102567483781698997589292784962331482515847314248790920189899103007761558007200139539672880636359749954950404064691810158171120439130064479472006689758254149609946902341668864123215579537569773744214248350991554272638797792094469873735642317181996864795382157452965865964473424431317778185765098093828370369898151686150274417382031965680237915527972323791728842321444757690601647758597264047406467335097505132848814964605017707966571996646174561951709191031996635827966911428893693594661186007805558325386916238074060961534493173672093930540685450647285056872238786513794644036657031862148150595526684971593117626306758383052374267749233151996008610383306997898907557720815318915162551701713493042891839209676502303452823477542527195354860974392897648423680230124972863125187698808971974325734204676168582223542307008343472596093096185669511793339476812792054914674573315406071693404842604290049049479825858677404508179124891786709226022771637736422842140314875566384123522471068570965550080256143880467353743927991083614348867883843111567000965689166116793602654938452776828006911575697092411267957839695152907039323612224156829499960999579998915423656463294885093872563051773840297309918781505120133930940614707825202657215892570000424121612941171046443216133725288936015972574928190196413129939335510948355321693060658612092686985560854064666165343655362275234761105086734698424148385508985158244865453799126591527118168437789726292395505605989814370071924866734701437369245767963276598919213655773154091377336565428163445857336184862744282689399512126262259652832685901376592983844669223507698605177115658097168571938202198520297639399944354174876155632016586839670196178884220610518868837714622369014371132761127856191200679436414648626447703958505242207149151063997375074402394030744213484434808105900339042819215958743246193614770490519348161638959021664248781876861219853261519715995055555041651125895136514845150495594970537072997320218685205384528254606875334574906604113230940519508899168682726550458859201194584892614045013617048644354828723185445619205871895138566713975336334663929319297226940160736996163029679824455272081511287218205643424471356702272896332705310194499507497404154012677834756242800386943432127798912600345908035166919130214667905273395774901455655797667887549980623708079420378412426757436416543148088346812596070633585135005584531201442776379771264539744770180069293626830602959031107117824915248041217022115631521853451908915132360100166498369212260046296849940395942962826619414690119780279037388408169399478873174130053711200217609464396992863714217996117913169026205786985195067549242302074447973590484396640615869523690773149726935162931121805066347601931487599681802881989897300803570706119299961274047004111291946236772958303845561421670751983063083470504571589565997592859687078366220862967487666555924215975288531156701287456539739222013944207336706229655316894572670093086910607571322186109142044727919839614406554492075294967278416269072269913460477586336532876526582315176817612015437133336487580257165934865009300120725489393386653082786881427743682711059375986932150950215724912156016333614844066847240146361102779670329855995120195578391686670287248642281932978381152802209589947815491699231197030390166364810798186607042355988809303354328731411123065363646377147212631787199387405722079974166008146549103638633215608788221548706978736857960522436866752286465596871078785689863981184121551688097266191916997015618807875544362601772304406138919368439890117956867868878137131616467009023406097768217500281985509611340482807399233634857290003835380205102022102441193835437715393819127541530424614429780463724198952135156661046530112136568413642460595469118947980215208746229110036288345595868145526152961327450515688833727934563138643501558458142263705730584935342325033505936490124263281309415981743060454870071873112613779715169673251506223389216127410506132179385142969391004940105490410481994883736926156169228637917933622008545485455601500580468820301495570673856846293719580548120067825722305267474741220623948220885951145025848103031202876150548998920037302388986567936604456725027000018978650773179469534361071564920369938349219269059247127008041503914690084445150087055359797990749470929791293885417044214367307907429702886223337685197807145262002895347794710119950994186636862101976027195771618031381055866652756411836823739579107143385073368046689555129630727196501981797338293652801702633840359996426273267334341543162661542986211874423752537169715275537293058725471832768469849153635777472996511142773495493828812744557501354674116143219299641493343039846569100344668843870817115657853028359158349209358307361578504771973960025687141475305985741245944381538355031991047084418477954960881475162105922020866176879937104824693635943759496615880615631458991953765258071016244319354245101700841329391510045977218967002745537883453237045879818041101266221778874421375593630336580104009194070029091741094809959672698701865554480914834309570799297666440646296097509443289644736854129903671863289560725212744431428619662030951276145611126589523053468911435829887705868733829171561049189434184179355817388456168241572006496422381703892770116446414865882160840124844367236167186583583370786726580000928113754345024942133801634098589957135037549364329052380536384219032330168474399735193002655629711064391496755247563308926878846345847493834108866632796599576302767964737115522428626410810666526813095492633727196002997361349869055803736849073688470322128558455645698605854679371526135807725720468996185240143310162670001042688339772645791740791312050131201433805132945787129053298532700865490655283724972660922977256497051664423545379900922985242452112752096144468791517073554997998501267499005348818313821336783744396105159488255965483438714757472051460030833831557386093751695209085740031417572136617524971491198993710225108155459063585901146239999362371075378659473350650481507764803756242872115096462692244416387884265364390585378289107837526094351557048266446251994139394323888356103443820155683202017729875364210972456363862471897906291671364511831432550143608694738487842486473731989881731448615442849539727500826204175259910828760534004591689689692408308969624544602654914445627319389182551333038831095131990259896120420664128562289767277091694128086587185511170144590330499898432770400454724607801227866151060041514920031723539266460389165267764191998563837612789409366948495864911136391448882464715310700247971527260062145281234385068252021835524321017720629543748470380335801694131397766279396909379538646503936995455041761610942245407021964685577443156356000131374843617282687511984662939740363709118777379740697599316125492609313828204219718808547186888677147335591576694094011084894277836735047895652295952148078620453212147105426525046029980644381150499585842093515072193086699838152093559946575624952291704676504798940228494058417396510974442102111563869768856631385859498099375242932490634982897803879497365687712451421606279252589169784675799310912003467920476391792381362681127959492885104549099040371831206559572075030051415852543712334981840715932138968243220641655836814302271296576710477900438334819538589308384543609642524161900012915738367242805436809650129109758861360518538275258686197417067442278111438970787054720911084297155188017127528889991408634105176977382748233844801634364982589603006929782886375764342210399563031247232326404196001054907203173436230499833978849348839509574589450024805146763359737123469066558746865748907064947842030728398121363039422701827851572225883317933357890530172772978330667291945205966456373501674574049782507906133484286482940150979227394238704084032452531048527512676514007815942685835490211923042752997915568565632582381506952719605951844976461057820279727552223969677465571953178673599967042646354143119510234747048074254514548784109466713551800737044375609207901881708998170028719061299052833248742500184090858155180080645585298212837143560237803496604613045208557927302062764211883219878338063789006550764498576807551743973650440203703341394242855175371240869315964340260421637991585398052085733882130262595663679615552866852355699512584670107925083875635205441474108285205093648589891809008224363777564018198548509146562048613594874797843162936236790042260290146472183615269861781107529810305070196041594032856756185473008346774629766887902195464277783105028697984901594955129354701164225619008799053233317758037595313680710889464734377092394128718019689413088676704362828767189587041095006743341219556499974140574912283160650170357750554563973407357633459054789906281818146935179195431184230677860364689743602916041692022311256460820296789656085365340194988602816257467222742392583604909299351409498043383571880127823110925728170202077833375884915025749798626239188607083271919681304510374852474392469537588047789900498713212113029970702976938102316735201530578796639280995059435882371433921586128618158166528826338139050200052481908617157347232753836785909548977324187317046367223472271185578549372830278925800699909353383213193362057069597348266512892278896620835332116408396070731606078776116249744254123887929135635980845431856232149980072037445759441291165435132103285644028343865005963184678831720913464794967322291221929843993316035430496085989813497482989022687484222096707391888049630373823108030497052406779517718992520718562791990778907534534403776236982605049413521783351002673674522550704900127124859488832029868916363815645379408439884642652052103625559478415378436690859272874532036794085057880345293810114783065785082223888355634684461003324085535348872067891173290973388437036739440337169985561377477806905507924846786160037455610197582577850186166236536163073930318954170381167763718793856870665953669756589423870023807539598914289543156778779915487963032652616975784351680700687144049739341794103459774610820246020104753661952209372187342005491919142139383847650675411829715622619404219267959811873562998126728234606653278003390734565159166482643261830863113730647033466239511243477062255752563846819846247291632677346568904957564711079241509344808841651620119964878551275807907311670573279017375196922724994420164778987181960708242817770617009655808163126404163951986550268326346557519858654474697798734747857683397878381561619652401506423288757756951181304778533794879137948979367356586927708500294745393312713475498767603483839814495871614122086499638377348639566171624801778513992247336526492103386577757379382446675889755343126140255680413797292650425280435449308693188844201038684310979509215922416246064960269424984393481787832858110313931719977383381028989021192973577844164223773523434899586026896170283664353571600872338120903001023163998519654023982890822871211037578801792294357468003811260497493674468821451017474590179394289372106316299509916711135095313141192211760306971518318832167749221150004048881348643538336691811403129723876778195679509036367361685850608175045192953631650889496556181233406369626942221470021040274556372151873013134908420041345707575490411426660330897328175182686812586503683085807382201042253055229754362805819124776675438245971000444447320168621741909848738494188075706943824412713596559846123379525624519105899927307010440370488257142592651477861845770988697870945684097857311573148382626269148696463385687029935349883165178020735678714297419721535853969671466034508319351892940855052139830264434119790404529020206639394048643843299426346412201675441029076673410412797507854839414086134740883937376222799410637062689832466922874817539265502609266484952960572319706974589180795515171854033794559718673979166816094365033824011336942458058506757233717074626675230154905198424195586149913723265786753068651934990077221817665774075534759505545077423380699229753151426687181628050740234084224127680031415057518975239368364991494656402534494830647382711389136961973996632362956418337943655876613116436981300208995622429481234798478792686198041422680060848457206885089236629483043372824138836430745932474176415345091508908048711466297434653097267633071818400938805325300640143144003034786405387858091175025576015499077731279936134090984038698840519955214899927981334270107616253825543062255528449019329394555010922553776530966532241160330626051725550639444365288410855870718471335508049082738839218001149462404167477696266174481112545424771774482958729198772390912057609072632795488934205771589984916144140382875384429719487089931241529750914327033364631650670666153315890466327489287086194654781737820296088816008601298607871888997095695058328148822766586641403676378834378642234299012762814419617893168483267843637460368852198222307741027735950559314720665901560251124622684534777717409087429160680051152809442552074799473504357705317833188255451764498403903958525192271901460257017540859350378331015515999927766662797953823371214954881930895632756092171094342346912158889342559827173155803329338204248097633453718403132595353844808491532309259304345335737934294548782829733444690462789920416021862905676543737450776877874674804712188182103452597163500553185133955489501299907808911852449820990308835524551403266175245481832090458530961539212796752434667067366627255512970535486182509190169310403386913904766373294710564909790411957391467082562309187997231713779065699282048349122228768264889153375727596799294186867433800047295805446472931564018389516743244087719369218511232078550029301228366079398667138209646497949790381936896274943035160594997112250679682360858569082278334445203390871336233400985491649490150751680207123378056763685820778070947669994340991529621743388330244010719388907296182114867136323507248520117411294189351010707385583620015669083550011194282527258426813073068621723266164682126041534860609940483925822388785591894206321556574920113492461648877492568994388661721562630298825221912724058036724331004539661285296641845606972183314790004567452910992385785045956442352491068764649133239178616273166535974546782862892760023726053661119127782132857232089074520088502041835117857131428044002132892722471693729409645086975000932849342767784480291976485359545395116698896854055723697095444468175381972987621893003544855535074836433436191996457620998663221211683706786415568641407231469295493942424714480988844936088512060105001709744845170217276735776375281754768065241898280466352027799318629541266638417427410655149845559042280487672709019918717228500794021472028832830126276165116736808237834665650327459482228170998028597917314532597250908841826005778325824865940072508445980119058075184756735919604841987487675810083130560210912530267387526657322039185415821968339079061012419924870666459206711834522334871307348118793431969723205172580040410662083380619578150111348062776425505694598954720057526547289275101380172288584806695414147559474368574902167145834298059220467440499610503669457253652667430456956526821090627520169053618713032041079812874360133805224913545905206374376441640612747071498448533507825935194891302654280072554098515949725414387964307616419366219139261824616823297739950773365215219425206995143475555431427528585354244744758281053517638031540101494037070075004983082135544619850344185953955519379855332916235021239685613269392479180452464705897570067868997769862693466366006325561091392589484571454144069646865241847687060649916059761056742746124342355649338761602800763495144529477365922938861208024410975665152088433049286102193032965929330194638243946181698517794070589836408692226752523188637251432890529328345543196636085537141232395586054212711525154711019609185155611325408739661970843108614653069400310321346232985639079578563505632380232259971782254579077550004916966830523876910671340668075569692705043351799375183407836917954662188749394489537268247125324155335632716143597386620634945721580367591301624741658194508922313680985660457254024766696429872110411907259551785432244587494587569820708960328643201225492866214133161776127143180687269657901650594570493940427385615406369309992525411370720736582429634678756289033721011468962191187060534022941965951588901020724200799015575571626594928842133429882055681799295029828669896455644602866727560721719940666360552208710980478715206518073822383851239952869080693322574275984200704124092851319646806699920382422158345854163375427743483029611970522279059284565839655390239152172979353958731633964296080606875560437711193113145401125203699809099460452486342045124844742316096823398714101550403576826004721805959036214041586914617733378813608792797547659979237983102271165200402250653288226139484241628079791151717777661951781659766091102975969908415110906474060093076017085795880034514951263033870639064383981484081121272103239538885741859079626997611532144366606811216239939151933446390674511772296609008940850167860807054735606946698865713871123103200792482984550624630323277514810359714643965708778107021784712954096882271930619965865421492303236325111706510409006945853957353359741217368561357684636953434800329775784777536549201979002851969715840057196547882892923771205288402799847656493684034408894563075686322193861310137950410594813853107263219198084253619175089658091467927136791510729371783319091237319231723888034284313548092343842292766463425001254805597590421302038927737300861001522987999674437479664004686082694912845487338234554378696777116748544564284984336639035548809536290670452433523427762408646777956790792645952624985432420849470846601256654718002517426343597822392454601335299966028369029515739432184999571561063673964756963027522665549474459559200826857791713412334113596835447980457607721643504533969439131631498473456322959145845338484068556063537557584340738137173348689197425305428212070975644602870561286089689904627371134896195450313439514382721147372604217235335727694562685170375633572804468566385440128091393579911047145641002483125463117473881088128482399821514828609157368777763132493774134339145760012729588155808517050955881167120950147204175673265638613758992351616373329959852499105959755998773862251697146547438490352331325623492671902218467163635261748789016471255061153793147861129068883694095809940038772203703731896786201867118810247563924186553752871364277468997143455086436999989218522917160028968833824799175422771154340062559905526374639661633691423969972300967940808121110531989540827689800393257854965258564659413385980765839521082286021459942857746679120893333102262742372183546016932779958464618663455942823053387341499692413453065218526654036995165038644302942226771384732598138911353853660802468251611919183527099231325106393387004392548315567803562031751804500077977704203466719662697547906713596285221527593458036048104239179027279641032735485818336791303277036813089727661865590491605866129635200449763488286050509056455515936222020660453379111517055221990944673465766575742289013837082076017505441021175014429102979253067061769143414201311043399131907894646265781269148608525199909033886433139123681965258042427258238813177607851941399153348803997306283203505489149145142762643814286905550392827469950581606307965375069494614061314684396274263478123869156473346660105415042117891806267073128997754492109159913655252224636697946164495710303841174539899558961947197677062949852334400379074300974938486050046005882029832847488686205359718210476984207487300732637078225753780281772782979692747606535777508111252984471282703563837083253707000300049112547509623917772057349473435362449215265209107296230836837353673864929012125815807249239296384636540271870890539991146065565864025186207242258354222649674637494210188092084105487040361342975556796995703233092559714997889999756229719646513907875696859089259133747554581559118820140292576516657318121707797242943926815588740176188765795392653187400218498620555562854819900106680989848757017095185387530001805176879622390424826428864701955189695792618626691354115499588729545507934870679986407173833430509400495874601777934677596835207931517102627924487633002911301638828259366054379743678143399800732019211101967333613081229652420427775562018271527698475443292161202108965190481451861532398655860023542326016700094093666781490698764331468891407131624331943537509244761320948676697761514044808657533367614077859185891286761831870686329969962637680517061756091179666876354398003300186775086502291528544094854752839937250393752865723786891708087732552445381772834130557170405005460045259532390278318606954439204025353909977086325850355304347892392116946496029370848661019830991629332223110571589166254268662318151378537126600307950439931557986128819833980646518580489616927611645677692445167784009888731462725995734107785181855780795632131412422982607893363024969338953377605111914678368429926412641697241510392004403437496421060174123324998880456422491319603225646349012930761555717341213677882322037319417490723155471097545480740231723066206643232873497323430953721352569300394917522360041905339826355646359384730916748786363136747181091980358017347112323441099305888848947869510656877308794621980747479165710742112834658038428399809336430943278895222924081578634338029181041447342290100278120769349297538200289599441292707975358980964762767982940801583714892520167260874022610933770892089227173923591932363709418235114642937847079202980644708714851881542790244616585426199262711414985085056486945053470364700582053175927172701271228940339711870601758641543314842326495161162660619846001041654927290881263548424927769926264065650768189484792316663434257057213837361665708278435059938622813280102573467667502707217922797028252616655782890006196678331814156532164744169049198549380061339547434149901742051164229108335051745035062571311417463409636792992196737891993046585605658825171850334263452969363007704772079014129742381650415156769621528485965613623053960919215729178511479703543990697282156049331466227538531282246618494037081273899718000476385640015157432006829389928655063149793707040500922173995171035316895133603844997850474778684940119006100231273870627958152078725818440002858785491737551540000019590380009386846681337997009632666177038944155268797828357079579381520996199005388588492535644835283068347869725345115134309840289184838363572310735277445226118380612861137456681496856549643942819562916720160309796070701719960443752515194094149632363310172509737150824486898649096690415165405075457369670490997696990115142797591330272117820919110129334074616227326550521343398241636286402554624449505009229865854335408568206264934494006561513470537101013864119918043684559738932071736898095044306100816901523611547465380077633954307374973975388648136382062770613965021591343101916961595690144949433410447865414426759809228832727833565662021782345447457839137245131663312557807666764671335780275549443744382880505128351837244993492064878698177751256817920909236259173313741867264872157129619606570071405338127076490259604340182809756097922632528215375661278845740099124423364042323736676496421996825434185970259932162264747098892205798112854845139279523204821145725726618364601996275285579345869739655587754562090312839077683680944516435369759684027888088731077790581726572331521242723676695782575009676073720480112674655399728434191788236237614087635977023779473801800097081727439461969823789623877498689326443076421494561020414471953297139293287501381481811772556242468030960634957670497895300569307909502708341960498961408823758805121898930173430723603390221614636120867868522629132650869656656140870221818134867697900933071014367810553842068715540833939125829813302353967969476704497471996510433286802040958232040990730160980452339405482102221045449659078275548439013725865293709434394781905043133585114057345359177581883150496988755579499410597865069621657395260183398876364667024277510022678039302972453904384588234420675124269768698751075346122516633246074619462095272082761903061439254831658985543834108037825165852049325958938095986919735140722939217758917278695817183685273604891981374659829747051122329298078630099517132661905079774703700172670301949368654220709241712320824297073769784670907504011443128972295142043870216666941825655705469137102406377807804949787698880643566145990519806889909146668508692553476983592869862751173018390525702283115432730196319217263206985170755541352032586543595571074356156775289774282185784557645317786965224511861300166419070174428965041093816518282519707941471867075302494634445495868193820192382848701543253152426100495489657880777569797144366810111443410876617223996923054017564695845418375386788965586952559049991826137483718234655721034780598352455414098199977588047506055496911503111868083775929153691598305177307220532552190495598583690463934637226639839400853941483224940503124073145972859920082737051178535171292464545603378767638189357721893044343151613730001241499360714662950103195487110685020109335867958760103923226807165956102992449737296837146226644688176728240542972459374844290906365318862099319432294888186519379241893138227728729469356979850600489742588454901712001694542729923630555896170858167823846332071024590932161885982370192856655581460148231624228590347500820290283096161596596013913740335306956560863193789141810438229386431706489465642413936043240788167761970687471067769113864208650022563652402011256081032704912972168654274562852900692875041039882762036344403128393495087795477678471483045275290110895905129738480123273581749912473642331933600692456319794461865590728509596226170203779092020650384630189902722900087562696548668402236826403443353774001306252244910909169956689229902062518635363795374765248768628742902735112359749998183244646139014470594446442702640256465947754120723905674238161633057977228786418543695738917732400754791389661164109462534682833405054896172156655634683784429084428388719939799769063793653497497258889525037629509714646752592481165857007450166840363479883515178431594149362055332145332910614074405835010044960053304882374752624129222453266482992619815064414699319790215045074472825205337230006126757116216555798968123096813259606328461715651289816948863305186631924073422421973923614704188783983619191096640231870370293346555584767721872309825240014764468722102273179311513812865551944651713279700269441672750168614960806070504887931340427022208901779999717104162581140667818867303602959667244440031184652057527783852065487807538543669607130077234885313665790070924560715285941211773743682995622106472151943673394734357539322229865734976158579828513458100613618975116917014474414435065530912364628275297819122715817007706263040304477409285649179452127514831812962518667743583518032896393580201414387229389440366468148422982935362766471887633094171410341199030245947760121551621216160788284179352948181666401293940493413922363648294009459223532760362525979982522921523156599407749040027432278980717491556668976741290944569676525025769825453424241174848803320214576849667766503411898679397726849830951061531528632549381386381484918750760619517014020114785412361348142288072318662445443916427746676438060260101924051461680274728935569466905304914498889095086456597150959068587124163589155945899527926225797023298722822346948887778760560232552387711545008524619056974337853528761466542933373014661069052544683032540704072950799827890598081870730973152975728459744029046232536403574735830265015251276830035059501953808862987788495566100154740991997690609385717662311971008376503227326237550155266830846413505066318876564205753404793652245590629569660095731715733136719783960306808074622556984603154419063611298774214085079739190141879035034518071452601177372196419287520062484212447511063103965856571378683519725062615201107216823864145977702168118551054870778751486126227845673405962180865492862015465707725296285564288166600245904902991734962398713432497847330412569176614158072470763686228871366618204661270880318551852370230045604819572239420528174565920408772836287118778052282703996959728109415781800967594290874642919228959302397142856375806719121228701363629848612213595121890164291155274942106876154752369738455795969787497201303895408725162429193758613640620037083593487059453851550420400691890065278502147661547369246897575596202790195005247488220149568319274262939376562605434742331391569280085184453173084081496935089319133026948684797375190911974333499896205239165427676184569331711883603166377007667004649912244153643595386789117182610440454767939847872005675945720938451978391433995690320653013295716175227126813394288664397190380107119522447886465001297630230857348270955745165474099805629934177083505352842131968888584640737858141471866596079915944126379032433887052966106743570980865017837536636939382823193814479659475438255451740354723112355300063700903874318672690289788624087802967531384907466449969608730941336131305157202715286761808325118875232041665164908334077246904293154712817976749101185714625239940165951706430703074564057505115285815602565228983763826331269944467241429936637410357359314147654594085605883205384849917265567097276209866659753062464112973294762779251795253073661837333074693271998804729604495875190247092847366762258593359563546880835634589337188497934035136304358319793052382012291866613194525746606948644081821862032063563312085818553861028830236992283885508944402255016589896512069451663609318502201093552791500448818199447454404384263871365981138074231205501970279942866628465664246908658326844162621707533931660993157756925111827280630275715594206255057077531246052536743248557171590801691972812991122753349074833423166640857704293597636221190313269332764250637022927549357770389482965276172578770847434664051131688240963997027404728990416671146427140652805555300166793082869344748812243560371605730552356694780392208147864295068285094095244907201365308115554353393828164175630552464048709984586824802463145220824634231182217952435008336285685213286326732184586221728033862249523603815161844775471170335368561054624346176345028866600553174321705441930557829775325186749117073325197675657323507716889747145348234126106560919385571203582772768657744520239977923199001963620642452189698585397662348281123180627948984859408579664921747566698517990246784673702182953192451978928947581140224534011378302324850343902117878900048595634252834389937130510979410044031543032705186635386983331597900222928530756492242240143345059432131775405341051258622810492115776415909890343420305743696445283731921456437171601113878550283166754583148633729634131080470921222378922985106595925180073181447525784753672928548404542736084136807481728762021900688145441771590129699326188706976978927155060462025475854852943840212629934443936330361162130831965184029727794382036484488054892942932274655857748386623139320314953448341600212130000288423797749071815574950764121697157091998946316677193672987778450231957219578237592424179891816761884657039797891667328088386595302111222931683794617398898283734230121519426821202467587780844888586679808776747584489928676339722430735288516107685698600035431861124924314874878745944073737209638085013325725584004255195196713914224562422607353758205511131226950356596840373911494085902632476830349619859862655904820189592726984822484590758749107237788283351172520285988287425664820660272120477686927066049728740800829170063314891224165476157073401236791884278908378489475674127087709788663953586231619483560554699317939074927076950500674552238393870746311143887607624388992521195546612439319675797324970007092778408074994117309733980629556150867258645882965320796022430072312346967322493631464793209965942796455018772232206093036667190462998855413381474265936268753606413820353631476071158020929122870797138256773351871793428683446989500241948818886303278485547567569532747449235029671861587334908837543441288260564018442371740257873402303546768942373480537279785378953020938313990797560903095751592258867874019569416880871064430091482149158436666610794195461566681729236589691832413144300022743033876979448817306047128437147988506158575651390198387524172541823949863169080899779018443086522884156584535463252780548662112912259773038582600846751619758032269213660909444359038580964323837003274847847878742254272272444646861862677568708022176166576315882873228352483562818647451650642562590072340368594720166613296595416566996596539703168590098676634361514821792607460042412305619843324325469609383114564655871869336870361044130503807416650458260594220562327152874218179180607738056967298552148649365345902737752383919990542316661265599767697672197109649575176379059721345283102188894381790441043179347374815071882668144473005438939810642773883979144659503198199346912449550144536436783698956706508697973863556742878207074901250649443088184609299419819533242349730744291050420404676741691300811622148513185461936009452166886195240653228003082208612758852478921798796242914796712266114026289361809317917605450787281534033521714245314463439834339412236469344205223386113370406015645402168223224965301867762331298363811155869432793584164013088870012568132596458908384461705286907266467199917103179442179507770194543058626766778709648717304747017521625795059716505465555693774137099447985418319965110150050712451824698515174101705472430715680992164632977927876848151746081959280055660025575004814678017123208393402556867740390429904859641161677435171644497813350457961182738236769359736156436852882011940794242878527899008542924277135979485988113679424709642800759422937750116915399397344830554390204082865986056850103320853275669657367219663751835217979924320953723486936899162905473728523527424884436617677511624351187169573612817025151330056740680896966877427995888593305798735881713712600321534542670295141689737832974694672067646843801374317583903462404001227010309037978092885281457219837938360320402353289904462263146044683308579420792549846316721765696189948279611598037715208117581934547329532653062265479841370160769815670735300090491353985678622753089161183412323811922708273180404715803781475793940529535682925237259584962695390102252584230240322950612022232013532202710369819917865866448321435397862064161644082356339934207294715680503825081315712977149019193107625919856277039383261745533238626167656665548690573458136228419095154017260178058257062666877174700785016368240555124872047324058130641562246555444595915094768587821394897822733126253578554173365887699233020589431815056474881259472897097356036586880040993631213859008667056296014603262181824090540224768575991986445632022776427558140527911381904565040514428453720241608183324168783764943385504209868543682884595281815187178929254286390894373953312009110894180317503491502408955744573748434322569435692405192063562285485282273167126822557179049628549597480375554219642089510776910833195943646853474760734563512081436965337472904727217070522991410871261762699675490949501524178157996560610291648688392159569870750978219103443964930361347909037516357295590895260035629059379906469577865718757942962473196416891338159308997812770973419209516357376510189491518272210202903369431636834069939428274619252399107785259417449315223074587111272023791598294043924021884820343978994362836007364824510926451834161777568571067672666964867132241769812446520488696953161553031636493767964635719488000535560463354239006406680524309916352584719985080147208905578717687908135558941148092470803385342740150950615759474378401009135390997678387915633805770635609491094869587817391239950516751330602392231172525747856667826290037771756538092213237903722275776250090458724693141664471302992797016256867764055541766975469309420382803134634038740359198730057620391675692283109211094598658114449651633947752074653356155997054452762247055946704384088630092223008054617203555480867599408589323056882405781430600514032178817857814562044707467241767808531696603089107994726928302266534177346379624313042722896637850369538309982559363278121289048487335593264251344485344619475691351875240564345899989101851606582836012749369748459265046851611894131272629309593960971754196847055365071259178303050473852968349003489745459379680252720805836048263403004787201641272762888440128934181835430279542564074789831236986912587649268967439955438045853644907976128449693545897722284543806535191258133467846923233946944810627605372116656951815440083840503576525932630214733326968231468105437980522715479000650269976548570144854979616858303332999333165517614317732396097807033280968320551967650207245800909330210837396645731695587758218552911894376530566383171275880179826456406264035290740945754221988131799866741012128884215658427278594983213256021277112349285270870081911372130406530980752661471732609015638678763932653003656475347299745513253507924264739528668129284482543398358891658572471370530849589382817609615079393221487485664669975170737200729704166749348075102038759288066708601325748668636315740001373245232576203720846856340045525289285397677519600043749471003142235852282366224931820658725080075200641220473954049361028758688832674837480558864140272766974466218396720292589704435653432352968762585175815176086732242753814338652344466802181109454525926997299753446826384759491353160716322640479764412977391328248026134165293787296035451068930775739286329399603193700317586806664907001235832344506445672179446483387299754039887921376304155552362451741414705649626037689287953413397634312763598924518390728068756670722817022970368062929602800285107234682133275423341071183141608565116043581161055474483262311724608933454198038723567058443365926934630412613847260118928572578672641125922674717217767290868387694873416095142280452196621973268257534299903478266636059096715987060315754373017219012185169125628877496686985321921430921384050477218541640696783454314419904723223335372782887989350028199249735212962361825667720232262095211740210376600523567657469577479963569292655707917637155580756347730094940883200073895962136715750613800188865577716799727765743255064158726978800419578992411990847346321301870917716951644643883323524641110200766970015422046755922301803219652196987544187623689601016332409777564646725169360380696373331902821513300711595950214398140180103286396001954096668902613625411151035033605002394452853659403909541062200865499913585248716710650839904819415435430685513277002078455973641940316670258534090720546144625030707880806009303942947986457613602606880448530398741521590151686319793751961973150359234645916019722546689459524847847608794575353198989575155074099968696296974832702770252002184545283798590580691699457772239996265989768235712842115924875007241117713141876938406837573166222530728378185474789934552933719826167442185601638997404007937979381021988714488413668141361229965758811281094521099585026910988292731841603112500117593760052165439135232100014758529886259774986683323062280452084856428389793131257989000458866653413738347205161418643920753952173708033710194326892188873195074247199185780105550688480253590251679055363639864329086257845240477449061607520545142325874497487543307396072797710546216090556505962993082704974035930412277094408986503242039015237995510607484061665787616329881714466817526737514143363895529923899209720556595085894710673297031771292745588164926740916475244140147482321989722833327152919195503162497129377731271209166731188490893318586032276171207033656321759874820420596712399777724766931844683737619458716500297630275152300573152298773290278278490816658263284028273517427016944058539190537745243020440598097200977604283026613439473375437080141939632271068572493571528625312234164486092348233055197206103396480108777803138355964084634408817969738354503649514330428829414461177758921688231409705143188948839665255568922958554152075200829532081993750829602819681335050617235849160256137431518551907342459622771957485882369074028657081812482894893968318210929754589838101608915368940586077665571110861807409446204721555151357462707432497754572918395915926315372109237177737854625833026932562564700532504099592465629301399621662190841827020784387748916850864548018561122372463785059790396371369648121784692319920596852066026985564952448991620320897968240679862958136031900840579297946597949533331225944191580463690497654127939063949318443724345034640988438877842317001914616031446712748403901316605522198961862537597313818842110884130824008699744162782570123016979791556849714508270035573176650534840792203860631742857091967432946685364761369734944568075786068629858123486244010041477055661871624026689930201488468566753988854664806867325270993146206779925897201430757002124215186726836882796993906399877575942529615185298657431378902492536454950696309004266199020711395693698950411292527353513858574588322186845769455489648242098614875259649343481907313523558370619069553096983201115822496518790524136469692964313685052258973980150447943558047826323299302961367803092318120317160484644234146322246992104675779950641151627959460065666497456915153392540917019019675630993048736281725830578659374526354373647882475613733952940687859530060678790505417120181385950354513214810441694201793799473913832327849723798311026330599760428320171571151397956488756181177006386751472863108662357054852867985454609780483616470260551498567972345940514856612313343572505127938282669957043222966709021730760100293126370038440867330274385943155643575197559511505242166747698727402668525209667279708668955101223150920291394457841494068249106739766399949415617212757458818833058736101772905192694956359102963898318376900410044398990507921097271286656243509855079833430260617752245933377036067090791867357994247512737442593730146034439597812669126662213576928188396986297405169755731182871595638889360546153465713871728318654613787430244933544263000989116121387577120654395878222659626432949774158644480584428898200939828382385894919502991888066910311445313972766755218064974657236799283655495837829763538004103633141594519612064696829350037080980619282268962487853486036125700406592387561273592096335774006483637999052262111123868188521601644147983915447943140230971492036566891110074243935089249759589002314429670123993459892195676878521576325325878453250959052016648804485971207420970098045466783588544404332158062503494008510496562184265784073362098859471245808179198637144870906579106869990658463513939066025696684645416117998092229259396954498980184456665806737777811453126613492379856124599136172638061883685786766381052705665822205034585665894938257835862279646090888341660715381046038991452388114394907368805925001571469634751692911679835123950699234406701677191226266155485643388536242711257010187373253201760457154772069451414720100221966419901291482356364775521676487506021853805019761703319593049545667188715843066889963246038752170922427642951500855093835834865475617439886915211924722131723402880345435861427728371334091763102972565384918116908343812851503804986328927855145706455355736963243969812464498561917366550686816886576812531554879841215549499343935281714737031256102596198546365600382416128292128486730407401085203696068031318457584802241591967260796675441004566609506938185332115569828099714381200586183235246868101082619268188304711206743460977337008483814877746076365099573728128473860467291655165258948946984277283493016133738348431255252913812411706182975436783330936919126824825899676511504074789116174649397457303478252500204359232937641678674431367118960256442674569797111230703355020623136040010000383187828827466925312846642360034760521904533083072027887103091439553237082663913875405573701764160322314681712802318101648068044336587466369450819838637465735048580272587224894195998045903999385446691497533286634186706219352626982905914312266186566892015546419562687916983750985221642994033051714917929531375852662136998428570255377963656101827581510925451952856531800273531954676273664420491649631835594066196816498159092139858945073137874111864533865178864181808745178191868828600443048080100998273714235961850152398228921774174910111717076466441433082507611745822481338474952623769403059726678720360439728926135928852044581810261921066835756911948526668504875541885097174831195942082327901342737931463935473801657241429076133639348656772347270171403027625713954643115192184879780102484860880746745055802549781321891164541993412135896862577699601147340207166875602402881967884792247676823045494329755924037564599389556963442849185335328801532556649748875978708640251816768721589057297878354684330164871146496714396480342528755832821495640827495562557012331175360578484644104087452294944126152152492343517781441912861329459929700283693145088450285928892249741011694600867919054536398487959923789071227642050537160654442257768361406249354302161822726078528684829482797376765791150893231635941057103388696582107585461807638280438052799782887934307413293123065803043211621023812096173932793377954263167954316060087829568564696513693900428881707676203713673059230459358529309687142215600824779900106556727286218527757223609008847087302707959207285298697920145951952616177211563477255922939827159620436280150146007244956648242339855872682103441024895301447620870789964405573037543320051228639062442375701054613327314424949277253350854160597252637922921905452960476475884111860745291565781353061586829756249080854368183906531968482818907631601423870381508179420916320867115431417939295178881395548313492179666915772965905105103095744842056195055549944033714483900068353872160638529139494850097659912374403731796957858122973575260912782369752954129637879868908909120745325150056277001512660565691491391089880006032799765232149285891694984223700227811257238632646492961227740965056231426308421226116524771654839892420903301425006205931768169914927050839635029869644677529668884087360059072184774997266442349205878301286554652441518796324654979696838679204720660708082399520747171375015599224590620175951854665817096008041791594387859069118448573299709120334083643864064576317329215414070803346660593724230020328317030052674689893300247071527252830335914830661870082812233372815212482206414095763466638593746307105212988791712212184044920237978246972857648644177614611872420951457916246502094797105940472948856430018770209599084823662479517566303599012138484633265928442486829455174801351678553630730885232230659352339412053962426134406423861381326738314433160121353462612794818879551397113003105350855993952872825338546417301455639110395777449110239576765852565917111882529094570980758586368131901598711915407326796097012427065776805618750531030950916148266000337923303801028921690939725471422904139741309368548398669960725031806254682646742697269517650169910580513785890437136692958248752714642239714651226615025468702772871226034413456424077623610358421510752099665602927290584112348568830463645961986023226071730383741132962649662300643814816460222658914573875211071118989201945662757632949045319071880836280931980414145668983054486286820154308904532550177634998583461064872178249445199306832641259761103034102865950325329374210950284116840139006710427833619226311296404241042984243117049233915360412972714824988170408612781016702242745114229480628281584207907885975993770617194666631290430604962895687651805423517228904340185980599708750414164261429942166118079121548775711423843271999260967020361004931656468063419900716232850504110009763867408362533445620394018966509469838897219011906074940613968796546386921450236885204354445395359923876403824921564388832804514840645294806658770501019043699238113814729902041213782560362774490647489885380895003256143566679872326229109411529157910037641218500000699690399475899032282108787817004359298774926394194113337662220141403322993242893968717216817047126836973538571741818497319158569093126081773994069433807798094593568849099924259057177533454638444455381586828182026325199126071556349427743082529638395798126733386012351448616438554189586506000320996248217299673254780219187241820617472506419210896008069933212115118526914005377215029985617174666060507573167596522390194261903411865130516518308204776601334102608772881087855033805971297283101431516137095769636449678110418582411365996528075114488552146641318728623962490293306697095836498889218003791869844078829532339567826795374485897733951112361425287796540013921491353529160793034842754569092776248812955998791828241342873512281020438688963137114466403843145385214401761101451038550344816820349942033028429289853477817455689962201780127739850670191334366894272124933720834296903373414788358848189803529097923742702509839264982678472966510506981806728728248271983462827067068846580846852654548159228199290451636019972949567203640367095731864963728300608523756094974554365743559617178560635853993641996401585500971252374725704046103603571679625283832663236412222453165402775398789286003598872805395333529043032356065720740814915875976026061570652922339118699087267179832524605058268743781516061933723856839193810163479832343004526916962310391564563773968730892629022344066742638172651461213574717677485919589723315944154797511057366223656268497346250150590601232966832219882416201406366599906545743613227296526084122550886690024770869951336029600386746368522607787351062270945840035871505669012103599609940790169772227114624352674362111248878052223675706886644448070857175154695784414524027775744603529664529569333934042178699361200500087427185054550519449884143578408160383663582837304689912047119958378274477468561639518230868157142065716543976494819911208484419333765504006941141386916091708393980270854461131179687651252871977955352648178859147424647860875617925885605568367406162976982610225598314227849825885214123694613140442109429672485375241118631974784528166217643249061086496887302742640425665689573902181625524276807620029487189379578472053110504665948953201812856273375512257746945785376766982597915247244773830334997544057649294155513488073915343460153593643858400179577038334791488219156266354479599488266373038516078230558227782449419674576339886319645264951600714985987988312561016692211652055287812275982218277886161979597357507360612265788195032090052557842894390739539057438809079655771650332932558312271272569873031902069323135464418522666782138558909448149749545934084731129258231803801811737338216363448108264685303422071747721979598233409405323808674421247475061156039695399849697217513817802844813074322080831923483889442508730952077378523448937494323706255524366079428558699045636617591778371889585878505935282230303180985170139655511567372472174190953296745342932743057006571537794177214741620972492756518157102376647192720908618160497156337032662041849773080369476654984759582787143397512850488568687555459079391786019180515318722430239996294441387926800392113094547182735789608769267086157421857173726102288398702817974324478471807811116123664394584057157761063384239628338106041808764003253786307830317713700471852101652004750635649679406468209187390207784523829533571954185486074329885882699366904983514143656551112698800148303416748425525571022399818486773839413286289299359964131559705133366812650423392491079087295525781320527506877765656286566435719704558456672855797856284196609207156841095962170991046744403454099977165241607272078108810317014790591796536576067965347449485060152813697993720110598999112480132406777019868131422699456062388187404131342798790647112034695138306331989517641737238186285605560393895691323334639603516293727319968136343794219097886051882260694529300013013013298062409396928482838723965856475271357559054084858077780335191389251775073339764971525811030754126100576747519022182824167352393507373706617962644738606330389854243439503331853736989892380269740005743772972611158547383760138057764981985992832964816046450434987798241912691228482363862818770088519455125905284681173270333342369847832221749342682195134067843002103565102448544960699686307950542838336814386573685221604277187399443001207075204028632042525431881200212374902463983386053591107778057919200089247546086889647455450387180220920480098946961107352476846073270429792091469483919272725154167321492083585190112741712135419614357636191441428984546330560824685510074829300556930496349956456325663796557100450008808525627691902059799302927736792307388309927124212822612843947502095642900196363025349623150891772421666395817213752026744364859128838502702734284820525347339543729201224871195600151066958859492127393520975303279871680299250578676877541184119059757950077885524910626113719649232273093694505909697287254974799571968719659827541858966019727443763904465200654136080278357523652934616368857459184611650671662999637968473522908170957513029916027917754177449657459112403203342380955804193102428558643949994897987947247078037010763793309135547754844727351402675240505851288454515353396422641962209650182069829473534030446606389582364380187995247154998952858293078583346302846328218627792911350860989890793349280912995752447156186625325485207135282412083752756220753164711545792571752383364434328569250360373716390310913338670876317458897742061145668945185825503755140324220461041135748660782239512570159773913619799606395326901451404460339270473725351324716511095266848052395389754350557065537424106217870827864275052472325759568502304363810351169065705020665087749264319655074414722343766800525253201556223134854576453489563554623203383177851456683538640555187238342923826758081010461600919682882902648622419458919395918270910377424522129214320848442379319219838178611786710947439924186395221727636909006125342492087429338476785155594706081097092932983124031087218672096612777320223391180697236607693868912188656529789697698636702133359352284789676222331692620142606652311320566201263482317236886282715520713053924139679407163716570035159296492918476449043885132693946077104892419231091349697956180545287576707132102099770523221946107212305382980013984561963445874053749081010138654489208932488882777389583693046561483219628481947826532905659426111265354185303039785403624454502688764987364887973067795230074413602068971598153706383551236312426331282632153493142416229087268745323397499991085426471558239405461208238507753028218752665623083006365463927546709002233510063139436383345130635690378269349842137212493923043801094384890431716193871671988345652665135952423209671123713754237758235620795795231274682457202963798096052798939243004391688089554663060238359006095804372740158649947072194351942976429965707986268650644359385811519059601986506213928233667611479945109961571378445831024362690760544933253158790081178057263711377134346656364505565273222174450971151045203334505147474356763832631199852386571715045790030303473431708793057047807025090612678477841916300650168334296560665488072671522342928351913683965836753645754444053124562758904849271444358432989302366970169092689034729708349089550478567844273845143068958077399428633599171605689999918774309925329296074901727163468252921962231325567479932784795299378028972221174169526670479123723531745449539961964530710692452092678203563695030309400420939531626405056875482113289460876656607348670554989198477845440181704789469969446994226552405072978332739998117527207056292177306124537961284964919185132393551480723706006757774897060895531536867570334170448689893868451044701196976225081142649374466290295422963526649669274472938249325615323931502758303172895489236667645075595201657808951049250129336315927797230190540100689628545709213459940237087823630297970224911315835824713376157139149308432889075299795799960443472095597113499097045612284692596304229372347851647599572119926011949163608067146593269526981724012311324063981894178063125803024450600121505372459030210358000097679292745153576990154304397081833849168766600759921391795291549992678263677988538222929795037325741272551824872849850891159539500623691337343118946256626855373768336300800886813951822090573459225014191745269581881785734910388483857030353836062520021967779963257385508826831437468058465056258381106404435079965351208894641900762278302696262543969300682425627665768410721921073808625668652945727820850668629967235858333267821228410271959370916927056602939133059408847796989544573133732457578426241517683451864687764308081389215028756439236475377529785579017962240580616548403716702859527228778070342379289514331234832147899954506414045396658823595022870773488983974814011928102760858252256131235990084548588249177525765200478609581749659844615945282072331175782083855050602862144870505629537883356131102000538855538994605558478697578783824367381448770299405548480972607538297670743991296576929569389412215185812030215414480393041803711122588633860321799626099502820276552126625823078524117975690740810094992356349237945983951719414615067705265344529330753695889502527609038191533007899691531375922318697335147330851401034113349126148867606707866321852300758444005302654790892138666604866543764336498489088520684783772838119078310303491416686423575218342934923321181145254473002666269373677142802733040375487761614715089607243168082174227964906084199327574422077629921045490767617542809768310181082680470606538399441282371754241752826684830333123588267081966019781956193530797264867889762987886604108663635946890470828722249565566507209332946014463332420962912284139007166091409343915248454839094033055196122201742999163705002793265908451062951827496338309633347120781872363590634665458550888820134964032628880786998985358034939342865414764415173048454577571202118612733731417378232305945208801283248092349954515653539238969400545991499205921362496980502182978746231385896484771791797293939705630868821946208029977992788942492141021274517110764327023270676251841519516638167007112705907957617122291043998130009604614607787077156129900293933528913342739821448678569455966827020071825944468869910789614903286114670528491143569475890795283499866502485099513254633885158033766655280645754821295955728787908265087722587519639250631038457984229227830153005608588270304593962952757626387410015583217094306676231968056237069699187400738498415420352394430379346536086151054067470925338964906559750384341091102841521811051994472094334530957475141765061187662983978378121023807246637803275206230988665022197760929929183731382078962305283908896852743582155356001289764335874724986619907425160101243282573605391544788222953502184146326742325062661358778108998264532553382712183782447103851201542412647255538178392838694873348818972511382497400552845724551500545615701680739751273513503578222405505492891794576056186410085327982489653586040372279361599837803933661648668652904921927394780765221132698606771479097025037355393623442642840878976764848390759272052883162232846972732069829260534195069821608008521797702359824773305683165545551388727906778040339895957957779608314384450162678392199354161552878235776500997549159503998996510469459272878693353277632405479877887406738815078983943650218007051352321292692208547488444855377494043446901424506752090735915872747499390714378326539494201724978672851342105913097997332856818710412662879936496298752246769383225483376667065183554441121592136160967743611117739790181369839208859720473192212299381660364110757396872471996712388113688273041488230989355942239382669428084679073284666609287253529713753577853001898555007737437221643904962710244239881891793938058406504853569064122283651144817427142486113636075693603456863889405899828259240634645590903131598267366700929640518717730473862620318316042967849831866629249844839509868740830300019276860600344589151903577924334408736705165036399949224933215229007890718793342835559328245052904482124089882848566732523622318961371888674930581150082262034423635497932557268157883527655497261035740789386496225732676406940389475244702169829266090352569087897958746500179116351412863698738003376009707297751274460920414865700138641423610314263191651250658866418377227010549245506570792267151857874138701910175542124955821147574072767859742330282801041584702743553886597730136074153086697415717186116044235606216826830296030074771578256418817664324286726612142019566428352779956379435681992870884811888827603960013749667630109727480804738432187924875115899605026879569322224238934366878981186440347996386459683472148582229551151719792272200177504681991503832498046850235252147620884936291128225918900785193391121991194658001029959501811935265251704274516211341987504869138303768704324389502807584770581714918702163145411295111467519591047765742978489117550371949381047880210308682125033834704104973628628851042532179448025043450565068531822394150352617849986742093062709857361122204621954496569819231400862125462889415671895315546087401165205345175669977188742953974195319770979541066161697575541631439916114201393890353923091571566273257692241508103673080070380908326495606950382028411928749582472584938541578433644381687532977847725206427378837368628792899255676254592660151680611064248410950535673346370167515182392634790985247862612701999824022867312969636976887306909402150036317486759911101452638849624646596720217473111815352202593086933373962144558984166227730095287384488643050824567038452502584531429207862991722037716939752711344316723151814709796686887068120417369207467128195225372483887170811173382775712891928602039436846032039099862965591445316314140737736707527527997026307794079812079800945846273362560883266642496319394511551791294070049141842198917639704903578398541058954417915491688973454138821098933305948305026923519638529015099791651987132932072076018066753797417544630231501259094186933969706023283478338106391013361089556634860105238705844195308083105526925945231682410695789022978922603069961345590922200740605007927363555947455619631755316375965815824693440094745855645870499566426961145923800306681959047943180858534806384394043354750232377513224723871005273190398958530031130689317852025948404611408654009145275605740608766946787444279141030092711053079714719999444035186777560668715738870787793084595549148836204848766601935827086784768264934679315797282547866930314221482891279750006120616892177425280632327411879846187599542457429405643848864140498066612689762281197918453532716418719093117899150888172322955936886671219314323763047270913506613850053508960092006859017071770958960788260815871682406145291558843835170894760331502404683851168281065881796930746515629887645648651274075436983604528450578108222598356483559741317046751554377699249848211609167199890525345985520975513231761413656153698436769189419924186879234809446958549224876893630924730157340861242979424362949280100357500167736298812410777881111674778685990094071827891102093280855654405376349962449839061148955348580548055583287916107727839700110850058779586106502823255321636293292833727886573035290942896165395782403735580597499655717034920671637739748753244478385944728259817089245549066261264209004975482029827176265559354383404117153049023423496713993396698744002898446712269851495336360482157881561545991283234183071035125185529897812588646361291546952249214256783792405174055886655433103711433241157800658745254012931384722898283070473209639407229745717992123569035117742380704849792868870158920162522400080916070149387792376810538527910419021003955917824170497197023742747907138319786534796536970404196886650302609533977543849894317606950301882914555409458042694953127979197526360154614623429141150664771694027177610667707544934179446479795265327523403868358649631207297805590695295177677707380382597481453331783356612750135716371992744697917017743924147331406517566294529112608366583756492391082786733307307032640098418912560406020020451506277690223568735011440525518988984215230229167565896632931314135292042294929402175903017334847004174005707719487081430462910620103719680978365332723882203288305653938554277229668693918456450944862796856559193335209081080219084309171935629585346054348795422269646131631005619216705579400028985562558248124275810129961304420505376354398925859031095824122458141867080801722748952203311078096496684836431079002817388209605034009274550532119530958572875664226086261430969789508580543375790110121164764885796470393533929294479881566032169085494395105825574506975104245148134136848312870135689597839095346153666511416373494447546622743118179945476174454125641754451739997225746135423969603429823072646712929649201728766613921033719450821868926117620671740181496199533251827911722948537493057421826957679458890304328525886835220959166263480656525440067292183715339015589709553984166529821252182073253023215992687628703295204573621198036812611934690992151480909785930869844475589379283925006405783767252874906427195189550866558168246934942522121231979782785765369120041766324925236846560987202066316681244593413534316042187393090506597122290577900087800897133019213025216458080957287846712999381394352431256791466413496287290281876537990944790579450293017422298470395907326037976538608555818452387400557437501835708123940100505531327891721985508448495837265291876132901464309351250195179460302120070944892278196430844066012974332857181721452207555808111199210799596077773766667862425065569616600104325069211570604411722235281320003492786510106666672064063105894803156729527434107596435621920792843993951166071893353452912797744219813461280092506316772269540857055499768956898230119298727776466486712395927492664134836526838299546924599634762893258271780041279719780889519364946234663794975518102898609828541230308270849891558529451313678738974491051191578895914345376468349823667726633236603372763973607607405373562667748402979581518769530495840680703050943202782023261811189956619943082822881150080128517611487390552029221402302605048469539736303068534749320512942985230676417830206930249737315246910076377337913357433667766919087910726397853300122308746903437867941489885292943578550946170792311012475777193095177352649970183048193929800696627513101449411906593896009789401451172533449259891858442913410859311918798466246612468984992022259694434356115238526383099940246550349339210081772036515166977497230309995045530931278850139019730050776376629665814053992223824703230899585044062243260764882829155942041483858954613899402058569403866828653041076990649101740120803749066436742413927420655750298587677265697300679564762275286721867370214732069718492582841035255042381965896719752099999320476538792238322743004695326417944273992360371004307732547752564276493349283026343791242244485695139900786268258286075639041510609927780638455881735795833395650057264898856821026302808770432412078442630114775117731896098772802823650261485404969694632437588994969710029008920178198926582441460309326637807950666572297335761921986178410998540183672984431320026512897190417706667206073715020700364262592744287438710810713788466579585877501641795100723961842118116836626059653775493317185842857318706198298127314551236612670449398281713303147027596463043471810923275237667563150965380150274599849984050984196650000412643811829303639278490296105025203249695715533779690840881107277006639733177564116791283921145005147790336833581664084446674697415801572541366189501938522934363163846614292081155696124673347100072531204722877597713144536143370196984903572060675041643294238471028250682310653751933796096525104025247862987869613036332810253087408775625770254204437845242390171304099831511342795959428778398581846787722982706835131956211263020940402698003550461406059172808244678149643596900798286964846480315776651122714762163614529285578571747652654245369350237036517073950913946031978237390173088176239018610363320411965840316188576828889002063693524597918654437752086157886318874171622667080633502555540779499075513081663863595590936632756943999197306093494140375236398853833002254341298727063242674421236312585928368602294131485223454878895930952419751375563735574370727800184851758103846948276617633167494829879092814562235110655065495677002070265159575139055235085666472523242879430685362571526141624754642825987575166022394807110308988185734016572306489823696375934264053233742419311708820692150978285711158352202571436027262734717695806932968072984323276864971046513615625878681251713779327274402458360242227833025194467725145520697059432762819004395408547616930202535298032081979910175116565824897160717828729482821806820468853490892067892574312284745943625112462048608661874707175369546809997662711411600124550859429063889550044303607237142191330313202489905081316963232616993996116254563991238040586576063438914861929523429217896380240859650178836505610129042360430462009721046637370690068886422719740037195421542514353150522070598769650716935744902773616502408392092284050104465954354242828654678784095758799121312111824102103747615333819286876234502072837621405093330845466700844386025812857290919557379872560459209057465188810923771577077357472639463760377481225638861398141432173499518536092150036916129727890299827670558573646802530132999300961228982176122284476643938528821010387673109987844375863530479709101957311650327954096206132089494823482711735311593946221093840766552295422894330233374783408940401656143854544518708881034953101928649089091361766465529209919358167370601844338242135851798202874831152986553602525807322764012945131422322911983425500906408161558814533807823216352534063240223631489040262706066872169844523339852240149996485928251388785130192705624479499879771698045723788498892359560596820770275808491878102677027116761424449106064712557999094432605911103910558813964540598412923485883094066145635520968711198318774709389704527411603368386939254073340934722710190876040523879042573699295997257193927477475821594169601473980383183326233237033883016192157515944076598468850135883310090205769587635164379010934331980719274998718192886657172223350173133247672253448874940146857202080174083563483374751065864258350840644556283926959387416155744700865304635489622069834947591807531923415913839291809940499417092762571844618462900065629838963017115120413733671290131371209124206266652463708645990698276054098433030606479917019240826948903710869929133891520463644902426781901404026892686157271861200518792343835945022591918485522158061144068839602437454885815589029623088221744506381141078108368559519548397506694206049857863749721827737357805377066881869503296964675624275591393780744516533549463451666562626146497169682120604520963433183521114582088052190055360907027326625706748572040014993532618702902085877321009667223802620521672633664374400272294195337254426927959366152506047634690389616497726735360275443553221003811349024824631684431952011080702661861343216560009835534166990002178617582286537316559162561321466299772694387007170825139680485620946370510502711819404236674431615346466741455890375813233823509484973858633267117850165327245620168221058790993293583119497937980006756758203025825008698707095583111071043671409386589893874837672021033192598652298424288073503173280374077875061574153954719471904618258023810295321729830240558579855686235769518402731439457986710639375317857518406255540679326678146634753673451285012971701534730305792939367130408810038610948640606809432439239616878895511103328242522903608084218493025584477442255698823195097949753550120286692758854082623968642838122668119019043233836395310725791675583719143009117510792519361436857269584975908157811824614885489305357959758739778644118896097331569158016589651847986263215272278593150742650381513678477470854338118923395954621073184981496645430017189576667973381475877644721912583693922265343428476700241702697399867315881005554055441160923414509013516963920416936282081812832304295665228729763240914672922712770452392220548853862326927141763546278412547286654094302600842721425836953779860360099270658751306492703810541836695199135852497866750773306806293906289624435400789172193608703338430310278866935901145520412271930876916005990726817075071830463075051311584898427819100383649507661959187733742069361720197366008258347792520750158950085627920009417096487362186330395530074362281846701617035734342239188997625946634197060231763627628673032323403377722264407838231025627582780744833032833514598119802996219343429295507338597977177887826596433573855402647788132006241123115557934630728980114443885711220134861793344143082259764903439456776244532955016983603936231460827388242750472177795363126691880269070943743294244923474180868651849214648958951187315189856604653393329254547308313815755843914348593035915669293455140015430901646284887330799335164796888364409570320227118134463505141894528588284809020643943174469642225676899514767205335789339160910583514842691300738702896816178258979512053598919756642518642018141357431734858922849442619295465265748365762762870799876438091853196644843095548368401480412176868362482280327490574482016073502072815406038837516889645651278283783093932054437499266673707431252917406172876870376242015199217740385348836324660591086648519813386916079028795209962483444144769914391363303781500311813548752036054483319917614680640547687605876653361001612124916994347865291171419528553195498620672593883252687916489740812255166827465612013567963486242221188534051928153580280162384640792991058642617997842407401191625506149812661850470656617412204578008730081693196356730316512780271754235293462651772124602323708802883590286062216048730244119826427205133585148229927930261830256029339086877937804869561375547947999581524266202289158255388609102526975981337184815590802531814388237810830291898232680853182833949874065225997319067176537855145285343851133026401028446278525111827238330353736760938369788819216553973366832453100871836794407076585488202969043822524527794672347073546707459550705632353451976709941814564805457873351677136615358933328543033441862647389622327890249584414343710549953537959411873946599966056651186298139543638572491923785327722356570119508808053501967495133699562565075703474586681628751829445416545635769879549799674768084427457212400884750501492157950526786467550224528976321076438333203098935500427887347369091260420863941255427969836398227512716087688740783201157153220176559810433807729017731867529332530273990138947907676542801975589893133318794940670428616573112179883558002158660903182900346352724232506515315286255654889771299974786490142605020287908514042253527064358375813984137245309413820477363727850099072373702640550999782096445701034777146736183470619029447312138067827218287595599907835549605206460217645178112700589026950960193751624266934740199434234456940614131764121620912125541439993637096787957232531170960390957758869822507624046320838273466123564816803944146353130488220211720932154748422480913797487707251058611825757042814232061429788140107103679627153140284955133869487158376790726452563654339840363375132110194400225637966794221077855651282682195339290074136356040884613133135651906781588703164712741178052508284252450653392784206574766794934364395373782246806459287653278780347128746729973148739120596136601304873132849769081357186755558382486482906923002449269812971020312181076615146293322571370551923725278981468110152946267287515345483901353291246573976818599772761743558477979598596631010700223781817026858707636030140929185917593179210513518768326654787510157934682223594205514519038192613471595728808722998722045704389727868394871822310616045745696194526005084461192294837412514534777514585914588066150222770041381793608932696043003020207195462496850324703650050762751199295112562141981039177663429820793794936854593107973924779901040629943055935679992570210345036021436557495294454295834098848410909797794577864029766731260585258653716364461736954906470930213037153259540320575891331494407702762123168191302711453013360827293742149035173945332074648158605011167883061574540920856683345347830309756725721086750509989016977585222517215681416112262625602825454666209098798755491017963566004566334248122462782570923728120847674816385310993962859924767221737751605846746993638304504586769686013656203753725954957864220549093535090052818176132445765986740099758150065926051833053453700150762597742601051331601124775003237797215251123301401983481042936656943283455184862898301735047283931893708127878214107547441651917943633509828067536466502699407928509830021642230895925156563277479816274309177225328869705017224652239250850792503793549055024794743737630481592200866253790962407806783438297346030990242979971120916535098598629592969416767075664817617512052523207621140684412197432364958967665963747043304059693244621250084761275929391274583921438191478842508920490750579550646357507647840056243781302590730294051311823671165210479075609086287335278480693446368694156528754431917491177549422880709008552754991508966163907365797947458152117424778753829190653387559162638736560176649124949531890689707881649432086178859140430948949693015238958724323278251791500499203072405570687983533576259903028985791347345973323469619288570852507774992809520837866252681895438675145180502569548626344587189218701544760290578029391294788543595049579992016457405478860867232805900621659434258791555983655051976363845829946316054210493729168572179332600531383238886533463941847691180749979319172557743976081163847158806292345532760197094023678127370762972928215883111889757558720399269169063643379390308115090737988000199360535212241809743140769999465592627599537042876769164172732145021546535564901195865005585461704487916762685210909757919986665113436442400752135786675497097379389332864871920049286234688885147657530335792926439329323661787664484165268060535734990116019337707800691234740485182668959398779531707724015384943342394242241383095621197433343637236988898201514073269127620256850584421723754815699320629148783360770839703399543702620816770815344709661609503912251886361993595898342404500503366343850269025492642776928590807975521399337744663912750061636441166866972125643266459887391709462410868355330017556936615536716895142663487807331333526175875442304890189913156792277208543378402965401168609438143005939184533557963774796014784899414226916181132322803514106721373346696219154974946124084630748518191954698657011979287035637694872395588772378552426520248415074399175769942068686936734895505134346249202579365931906217324357320110871343572041022971204286741218464065158368520799641155449870879174539500480406662079912085961950326784451720164639444660468772058634000603827002451763918256434480493504611089433301816290696316397593592021770384462562513905270601264226661839388597293718223329176902759542431991157446501470375232325923305276719780649981052992113942737323047039930894446596942053757631127778026444408400057498588034096383065657845693875248089278658750343917412981841101606657552040929054077092902369389617966286358364748428506806246662194816712135054367852856989910840378111350258854238204235601909457720872155634559555556389204201109851193351804420314327379708491909824341151439131334135437263384533017662969234754281529105008428361938550889774885125625746897787423451016314216795887197422611108663904424339459624769147957982982622698672570558958720356452469123612207421603818271209775864152932851415272829700902386421141272288164590500066427731371532201456651691568854641644735848874734504330608659586277510543819662778110967239399209179064931446805687825835070356129068415481921629146301957105829409113394102353351088620609171100136284237092199685664199022736759832534119279704058492415400408139883026844023987295404816779257063961937493390852148009248929747391954071468003672291950560221031895278430392305134604531998990716492677134547497887948682819198841315028991198041039993931944170142326461456167252623624397950694597529147218401445592064054148143904471463692642726944336848850602225745490217564635241784090048876949400865606911546091875906671443134262646733395121103837918497232648940248174328241300776985109831245557686075404163508867488341760605054544912740348252700227121076901145233462302115602066254952541034692243640838576952214138495123681488210709294385520909349131663639299748127958448834048846594610031873348565593022257369175626013451718465979555938719161090528925543263310769865280853191131247237601676366591422635117782265920494505151471749388494402313499364322535883465978737460188769527106663262549137059595555649980397272054227571840093476559139883518400745009189204765104913621962151253642532798230891082780808901468492622546393942395328452871277329722226884693515211531343978142150041985738463527559779666607079154361057284247473493526030328379599334792981648791651247063001018552431053411566467961252439699176837138774235137185271100929615070906572633840215080664726532464273159732149024579576679551377353248332383693177191391010245194992227510705942037057800761684252616863627352019370183567204355953106987690718462121464579235315699822486429878739496024178976110499813786747892031383747896574481291949438197194331646757161390917555956490661500081133100201260726156469055228061333483985155511652356966780111538491088777228878911546533194379182034577904200372548315568495610258082676842694938797232922530939729485992327867250106401923094441620564682921613654785081856931840962847002748372427301532685813440375290891631469157339031465137259753856692632716612646421725247541325868078865061481279418700748053017700439037618921805970397431533813400295445339314646549592336071265565985229739993317448602390550659412862536413467541157510441353422072308089355483006958613343774056273904575683647007365155017212560799133147122524465469269361625473642490266061147064796263455301324355705732653549255195492978406140292118774197948386172490714267298809899635121048990439635727176590029560438331460805163579169930970161079802774737145698157676302203431154048446719016545127692482559138361930445361929080710732080007458311644814839512686711109478680024610699029094638463042044939536222630264285737776442294685813695511350736686206268711076430954936156240248098659549090179380702211419874279784627366067541350821738986388490013000447798640969338921808557708252054574976887940191382004562763827433788142459861795428602482795669971866567084430010626701273545044690974973878709818118125593501229144531242846215391538188141515088100734420342191926383234089276402404832831934121259739615564157448712069215255184819478895834738848174730487285287912671258889037661950606542984502650250865501099913665183151683054182412624685923272976097862106135578281400635433961166337560434500078387571926883683698934998761021336733218368728426629290513512505397276838068597527962426844221848709347844886857718701428636114079086552588932824958982917044909395368822981111311978204371190863455531399653527843093974023226428573164156039366896011786161780695733034753639690496265874369580818277274568744497352941310958798441617910922591650941213692407053386627756099927941509162973490693167311575959129387245984369727697837544193080552549843634299040105741609957088049504745372861836844522348149751556614607058377849634647709772967861193578883565719706131777411286452947655118386001700482660013325421662546494642893523586346638477909111831359978670955070259510026448155805556252133944161240566539119093138668733391187497311443990759541730700522582647118999513754997103539565636575088845648223706954053337255099172663193109632664617044579529229177409741997227259515139792552239621742349820760648211371262728261359259061084114887851953419718159188522436909778495404214156720312185935258696818812129153042761184192501200414405518623651512822032079155898136271779554215830766640011061071541566616128951595426605246783097637743013072077046596455562946520651934317867636489258518734893298548033014332258328114776635936699727450433907057906336762586164698374553836202310299422345921829257794576316853469442035687791862418548554177302677905709091211976570566794483052874430779633004154594260433938637358230277667886580943138372245415724813586904229972174134755919644978347425288379490870220011203026396533893030541343981705194831796821637888280474006438424802646206280594059994896078403337558800153024982634836583413230095857289589937098032496164724552376936595691635080679111782099129213186712057633513790752989605496942194684407973323195938002487655523461151234230651166345717644345855723311888884366326398160675982232157787610497657212243164173918318671852251411505693616157283694465282736917455000439762508701776661938496030220296789491490087811111163294916681734621986169377827027935428919272070110729600607023445276923332284209851046268621166756786294071491128619100320508706673031528793456712779413502088940015717122746439175706783905616269639756972651622490939376251358500843516491436505711297890771888961939075945216475626378156328272154609698680284669315998457653456846822446998660397452439193861922198494631590686907935141122405190229974965082820945581894347918805427888535653141565180077957388024641217464082858598369999944438938640035838630484570627202695582788437989601003267849484334531472486206266380852608760744136640572120225841371705870006368255156347673293081556811627473772680698070011960383934593273265651180319040765954803108790044101846489068774372290044113802854499247317433913544365250804732565829399669275890711573149370857766049479318586715120872593094394534260040688274804423049754780011360323194196665692808635484569315368028495487684766269453233695963500612671406759172119245516333008258794582046054395264299689929946877704736051239462844431452960008355236667758364505859664159503615749109314625883828055424595609986957760434095954586656552605856107285421729581224553547869930832636670953962094853998539995981582656906895249415584618826826354291340801134030067401344605121454028051558834505017512059903255019343425010848977447902073365806240694156990721400838980864739441961578209091170303941968559851791417962654080452032723115364469872153589551737853181069059131637228741880767165159643430877194674518068809153744699219269832542520726199366323831661667615243335919964844532190572757659002201801818065184125731864306407738670648429826634461467157454581450425024432213766055954060202463103518385531962508875212540418374446280354035099285796849753059065157914005559448483321084719414334337878954902470781737191000346077806593440283060183950260877259877147982497466649829154890608633888228700408416587105267904791188262673782078628671934901135291270375139406908136136429562055785726425395401036253516318803746841566533926998866847154390827553471634402056929988360996847233023142588638408364515344922342226705470512792590473753742934183295375778256601324070632190172018834552423940336697159006301348677869158097417450753281931704174760433113996136844626994170708779339899114334485652439814941231010019147317958965068887579195578538277943389991835127179615069475790389270902634791536779352833423884015020741480940416268924979175687581631938098666954319163121873943897553993894104966502500210958766517804541364186328618670699904879471673298560147885069961461120277854506421904736373280406955245642668685036465573777772741199908088357941519292736824886515497619686144765183928216192302877234638590672741335050463100610195909054863909309169235240290980500569841243326406579362040901950896315995911028414641629025888288223006421821812944893387253989845166837814513295332620871445486922322606874001800802380320322119175153162299925295624058134725549303217043115063089307091580387919476952712358043730906514028422520824571071016275998991421466066612869808785962565716565753650902529298689538750991761583125976877767099377701035271957642670055245620757638497827022062447184054763031264694143148815952947061804223954468574723264576225710128539019779215302584790179788394073070596790187268159420848545526563915315518032375601862821603641072408060540985204622253971309343456565314435509434746316721272799252122501416654987512706083325866093257143046840477199224004637855432244190325808518637690750673342575187490643474140506345729359872832611466899683754840654501402512412206654187484204658387397599530892783269145712435292759472804680948051538431372315951848024398255778475206684461786976497939753800440510299821870335438532029704853843938053156976343205189984746463421406480077534519041544557484426794399693638275996744114329573119916672345926141212290563739270268451307339144804050779881908588080928011288854876036187744530977715241164361519496093410643133908415685659829173459398355769878605679227562870382199026741253643654271292121699970645258702155454611419501823777736982901382616118421504911506784425063911557708098025028337527892671643768818414446796721338635287466827138791786503558264290144818463559593610105087717442327659474149716097590783074677915168076814698907186122770738983655244724693691821402855319688929146197186438655072925620532516720019566919543726988395318410841389176598591060807581414357147349378792653300449950316161345668284040712612522370032682731101498304688493813255395362004020342097082718719114327942992353877813146496874388936676313933391699808409320770939593766489813652228991924759383387817060497742826427745175176224324127967461913859928999547796463738150728722988182420846559599037989902307196761028454368115588944988787406008500386072577790349064363945306289334335133455558857559161110744246351284166645851523781373610470057002136671300360504203268904759187758747276898042815373088553379653380123785996349411705348804851673322893854807482928355301038312161715333956299532424067584834959252258193820532284576035529602041561256081006458528055184700719266062365128056309572986359145306639676054093012105210682805133576855425002703069837618769124447112826447542964152732403493949039601144278742974354679439996104493484238970795243777449689299598186611073371042172804265238253400578643647907563738726665314136413235191286853613836392557157675431166281877041193884045952035578900942997770266258054165237570701492866796586715955394458523710488903392958201882488127668054232532185035447127898243065235589418220059012238258299309169062997782374523958977717131967033592617201317604067590128214701829101251965443083276571262945315436508447060429030794158515664301242719676769768855564774930687440157521001913946781222126069120598650599892825561479507204931250935054450282738691750963971809028661210383102725724813789686203310924321568461642956771880291694836470495757671746074915334789215169557295592781929318830938452122522632356605827798570596717711122082812811960558389026742332793794507166615937170614943791272857307489414951250253614570088930389596499925218626585092026873503903613470231775463245505693191670416582401294607082502896626691804127273666175691865281963583882482117297829528314517589731751108615062835743996609768862297497213915126132048993075680692902750942030775004448192081335764578668348056245093365052825124667515462915307647219760962850250257903113217011369703535902241754536913803566565257073816898813550252524361817106155902434808050554189645384930549023671184036837657426008963687221468160616275083818983285145931359613646304728225748368919344585249711941413999424696050333966788481680236063636906255410434932722526501687727862845841360219800938081806711181089802235708969012223954331535659276224111190628201015822270443631659369159766021740501688307981237028819233990630687047716102519763614846040318820707363970072256774603324167812572040006842031449980148525107212096715059090258064559856311002397091554011966011907604003796305379939758559309729317445455935467807966950619289277975030084520443325434835992593114495951513304779882219133225247511609379100736937267249652529759271041946058714960315896881772371640725430638009716340328502467230507790491650321137531469954123096273944236843176461397061914634957848211342962739576870903137511539464790687169646239947846260410445617881043839457035040384664606053301385292066277067047588343225098024232839950952432642971987407404133426108566563616884315550359937472651746305830226058437875532693021292530447237458143261844015661643020190670943516515954061402686444554678785826538032644414322702800072052213066187583446892126368655206120297732326214524457639868143427211152438965602906554575524322486076863728882377891285055372388015739543863587757496175534475640729018553948801987069669767556043304770710076311277870097866005033803400331658565419948818783452148790675080256677414989928836915504379806875421450749433426239795835948274806028174577422802100491442179519069171967169691048365282750688251696575453473724035046712872961441781362176394890304443475089481255969590799842494350255463778960972419356381991255840064021627644117657244745729812306277582878976594299707752517544095088105551518065422161117108546460784669605497525818101426342269763937540951443158662680567183727739721030994791692347164744604704435948244997572297090744983456940215496854240380578899140931845591680317925440567253994863280507824745561859466328332805408417373645007040093219586520568330943591632589927974679838619086806893874115063508916393186203537101645315120621734388696621314236847177227111467953572203996311960382517148566796043712627839760913125440241025313067970455277711506241111624479972206457476515062656258365205526659342476122825426539180479888762290735411400215551818356945461656210271423488669281917946753049479490143810839075918071517796595336192368938771883121325974660754629839747360093711442355333039122750001228500366915276880297352841323992566194708136338159661678072138657979673094894568342146196755272409327415525271921035236685083601891468571066069443417669837266166297322058708693240618698597903425000191351010085605409530062969246846352018456697889377599772038415823829256516670578507400267287441202986566269227874756825951809208321162311783219882738275597617827202714249900142478454317324922803343212437256868207418330570388704477531352390243669968840890094299257265323000536607985550703152129921410825056570869293629101795780414637501049584247826620157246861074078546530896054112250536438578263093855014567579537710736862681120345171618834586818984566354136194127914740320255340639447561961511043397432841947616159769568830147753761024652651512689233588027632088551511065425651984214320166562176664779172783893360148605563580024145814563454762369022365029375704753340579533293704553319586192224492247663416468758405942072670675170141263522348952786821669001668640896722512534485318145042849676646792483093056472941097602498846164796389438332042152962842288632016061410583967832543029729832361155162809441696883823473038883939437067891045081442106057195608417664276097827749854918912130055700411637037508305946579568573112819232796045750018877410361799965985181605527385032583530840632821514596974096731330275664282709421089025431474986259940398221309295819315674816853489938252271923172055842215276785239940836022373115517408821911715332263932254329437511111551965919327553344980767101848535928191870540261937906161375764872284237579621928595150462501535200119550403224804970531609034997655665359782977264890005508507304136494826241734136892563882924703576188038536162033700298302976120285349684994262067116133940106981219407315616927839449209284179704410472887732681453034358890340103580318339326815063305718156812294667758862854095076275929225537547756118401441500603821340023955828517352471578892170595313007864121711801116552616471547475675932716572688471002619907870563149411364763253499495479469093926511692474261986067430484650546377151356909067115646485193057752985746627877894045468103120141576671425979452394543256473540569961629661865104466257612555525173706149856230157020747514425112544008000113022669155477960006937287372762770417716929178881524812380237794059738002023204704013614915617699009866255047978358693579892605150727831559393991190830465513205965052061878237103951309860585458227548659145046816658953119864379703064091811337092035464521466103164104151576744063596429710335952054535710376283106832880424951875057676573744409199451533478125008349114527292957111515053378272867251515392840745787974668729133476159408416436838715466850779749198271826509197617874803954505422446722071303172527485313945508553906751983244859476834413884913070648579939420435088826062995132218801114586883773478359524118952306819394611548913970961717764689867373103964358693037589488361484358043810357804336308282718653830455153286637900869321405694653463344264820485130961929814477730600052853654300926374110198228062450777329698232420200141741449450373939675884480027897192251423970013642943984314677373929289923194255831554189088492915620016889844247342080634632665901649951740399269212753364626280539240222971952220433002693897569485105623531557534291841681639709946905232514901663126850424387418365837752185267630027871980120814529676702780907392647243846367677886538479759895788630723243685640254059908218135783519351495767757021619532181918172101681577935568717287398097108743212874455818068928854653782289549661485820997844658179079968306804192930194608526223407950634367760782355561024046951723331876140592592326498419626704935307185874730016859883353646494731683168418465463229757834592198001578622539464340873465515038141356055167576334323084826328351776378411136266030251004902364306628327510932598189629433419292757885985154192909928913873979072854666847622643573687673930641613222891170745328768810845340711338025071692147110082440904214975714539448581372133085188578470875235101234990215292919125871788907546789893189587322511519233627927486232630259536131582211106450496883359592953688709491631874000451637256601595839037832385554394411392678993638337697671711334899332107119433050266833695394783671446624519457795639111338492404661302363106651531180450849165652056463103975344186494716294870715248927098968872343879390454816187825811444055241617304381166293725346979247669748176609473710146499234946384598892851530632849334404457353116980731720454109909198888383239257008528548723210843315608338860180725525990428964955307287788932245238867774805193700719559153225133118639755725796017644785843706752843805524453213259717895122570658186051579513017393039297961425762126434574399050108877699097484819771767025148775067480169408266851887878160940578712036779118106511376724672404301482262390051326559764207629030292632775874000601446380851629340846814820486345199477286006677625479730629528413609087032367350759140497408145953985224546277898478230135534580539779733474840869596993354459414308877200156079538859924697899528184369257370397916023352854907562926820645051268760692781330357243477155774264164310041327059619560013290228137657865774098117047089148708525404879224624587587471876963821369832201264262945987416900181743509825005181468952234961497572560965835247127512354017139252550664783156172967258248715449599540610448028850746880090035973322006553753676138125296318731240742037042431607817370804634070765756164491917741248244999260533808741612860489125767754752576669161130527521267094211841997575148624107166992995571498972851740155882200889215838064542261971755185280405979089694559819739676838398447435119123106538327826766149472705787870136074421995813743346499665203473302878188564194771845516582924480741618828968472212449124006536859455683836621525443051092561930355577617336993453478279252469943268459599875737589240971526914025588823945173462909405686430981138888970394413698862899514079718269094568984149728864467408306201287329883945812943910380618415015657921549016205647118649601758318868278859431338419946822057245182552916264363677945911672237145135536839976433789718888806268137625835955078210915941342197926925555198256489826856221281282756884589307066303430053878789375425489403533099718802097083547122438974769015865315730161007373577110898495974304874182007873178635409700978774018962550865184867190959031203486648240233782737365435653240605337334017366570643880037369619128317841632336139633121507717039843596974714528188644620880794982647882046912019930776626300857158020618947201416281319608375499766760868340082303395061227858028308679010999206559257848758519625952613743443516350484410132559369573929282027573623477384579617943994570053143569428385192401117962559539086863220166391499976391865173881194809024918794507261838954821188828596610903677976090113206848930542221197775202752653586674262227617094997207837336535996872835947250260481901089185335228753493418441328080349560864180574814631945604284861981048188563961075933889225378445720879021904628924214140746734317577038085797121431312072413744324663727038332211660147345828262552789939859512932642183951775882204505733168189465901722640935690165166916087599165741030171260651585665893052488086691314915793752862258712372423675993808653831217645102744998286440424997427689949333498915226398598945254242086284328691040902754757994605925803277025507925062341549928908796566161774181670878022298365022956442380975630155583325652374774414609590355182554222694522416376407206799968452669540406516926372587995473195772084259625948931876838501397989226730038878173009173796873939956807880247425920480654377949244406031411098890831967550667450548154849111248053521439836956179474944250696331763558988067597262640853274289830022867530956936233498091382766803106168504364336412926153702554598454219419565654972561792108939607347950042505863719922308801612772119300958050793978579753181221415212088707045349666383186125618218475728764330273096759064664186347477689923403701999067046578501633814265398867246732090823226845562866842737279711486841306204952911154069349527033693604646338232367955812358670331639320685006026875988484212655456336808140195367320027668334961752143334198806971620427549621265096863710615778614285783468545507467423787625169385468359609734328489714419307525249480469280466661855088208868467573291175769230373523520095839249059146380414506344941768869735589825825530445770990632586079973389668130162849494723892692918806740698495228803784397991452718209652729824277722317596163591160782446252029436803359000785410002336607485480578969578558152764796835350706565113181679464478876474897010346154040808492915824914916178383678652187616373016790563910761621733799417430972854274997209627810905772144961888795766713493982215482650745346000689061554945128480401316475389935214454460358986377272556539608088963954854276203410181452123297360406491011750973610870820706159837977894995032164731400075175252654411512435749434028869888481200007820418254657513431386468830677528942041615388936508769845029026144686377629884018710327878347764350149642184221939616819019890735211396795421119011386294551035757026157183876637479845852433485516613071546887672334367845185243373452253321661611075846934737455653933808294718486832268285808156027745672081840205069193201289906642345501464984455862411271677364065673591369641128913046638094510659615711872793281548482895415526401584267294927209300253770135823856218469527241785522107380840071047465094894557019497106356828985364006319721009303914581965164133856494945821754749245999468298673531900203546487496295122686936306101935437667812488015075856292456617040285215949561638694591289709163604194830608772152054572365174222302970347805266736012993618338657485978048953754078066624479570769160401274694866520398040561801969185794788962196202954637075242958234939668261812621452210679653929217693495091658577377173720087900302664116337070393680342999253545979004159431936660165907275862192979720638555973268737493022436082737216434907135991985465783892107248733788732671743256106006721234319525838148263906422285901562491964794018375130011866469009157821006436515953308804489039868260635034370005240701636245377440110410676525894538832154655338112897975085217363049307311030066576593085507846690562875750054827136487399674743234743053453856218254424290158769316942330717571468326941399147436154507349941193617022475324824635789510368846542410358929613703471600947946007448341579211084270196142244389606788945903830304947948737124968166088551333978090605780938736614020565209938995994790329504582979972598863387349211257356474668219200370269226649755260094132120466149772188975708240423245543982688358483896530089507328182798573374620332245415322890667909700400337797977099548508137820179981191158272207737648035077772299566813819362071071550903381867190080843987489321736705539767385400788726613408381171528107564034558327337201480321076033108159244186008951870611874679001529717455923079020242880416622021249992717838045833346328019028849582426352291834343527746178198917077926226683571109975192143393034593035350669498937001189424184750585144694413865401574401309166726777373646744453487022644890266812226667990994625026596237746310521411641238278116746672820105463435704324806985449911999660325221237979815798899354666058742687463923628814362901804953709778619265314890534974384714533095289061170260285302315995809065076349126709422155196827544395806392125469864884753969249194685237526429998149332348487542892326272370622735249080703843573690531806808329964310889467344113636496036867745972893652450188305571387706913398188551050090784439049698950124369043532157610999802223328183140768974554215078157942569334013765092599213941488939171028959875009612822529142581416202197100981993905119004288756196021427561700814674150356497401033398154167801164342523523278788640387686196222576597502482093110788361415295569112362830369948068579095099440462571607913767813047044038523363620680135571967889559302354215192845391822222584062462464374640336096922802608434326035690440621514549932842212182699467787732253899135655963612699410974916869125070152873262604667316450861164162025599083325316908037076717848362683878317242743292183598201888428899632915436182299744300529067744902425754258531102034907385337634254171230046199666394224513524288765565116419257835667400321723127962005318469447945986581328287395112960048300590477831795196405456857535173558727899672089713361464879817326653617850808268234617856988425086771695065922756774443147215763980492177272855197066896656570049844128423963248690356160821067456721270820123358183687331509936898731211637913011465313067275704138447530753752626865096020990218580817286497072593532286899887960762791470542036247032157692122964736922695616551841913113426995485443538870234482041063129082551596936343239974061993743392690104595805166611062323131807907688759234178286505428020769130431988434671843871687767269436621417832395983071311807281614910538660376091619064040424235228572452316727726429609298443301772673054449873804850642588857534825292145660113486706396208303578952313270804674262397269966209003207165504337462909330221328282393324841155006993665836405079157562525516855659179867790784032790072251830851021000475271454621588569037956186279574046764993573878512252410767186399322236063475025879930615446053939840295753805327814435855364500110603562007670984932517024526519750561244953351876227391039803603429343950510301931814442913300360892726237479700904731662469605406519606258593541197963882013917712662583088075214638812540111881772449408173951668037890933143601481182879995587618893374541192232821161991313324535873466211308609823930752954673535319279488370017686274674408234139381205238013959453228408145544763073350127983057783783680882038532305788038778090979589321685444302137525691002162155720763020120048998127296285252491082981066799006073748468241464394892160705873904303878959455213154870885845879198615723044094436650389839232036992117162602657539953769756690069649865776771730758364602173914002963430994263519712529492008682523088625203050895519415450499240091544930108984089762910030916876170222562260138371852860417853880112453577368504650224854645812107783284123275279729545475065866810398494623954036281723457835874823526040489693730846856104840050413460550699685567160998325480177650734662487797226525062197296441296438053649432132175923302692457172337221506462532045148989999413864529156695181408916485408649969928332334360078460096916776367081151941206709624559539180013984345443985318004043834398195874721102300354313326644415411195306734290582374046863249146775275929680474069774842304866108855161015475194229797750618756124716916418250214549964093447195605766587799439432086448624490672655070780613125270301050073258966395303150032614272936483110230471346324781714337762014111254516814702059087281184758134654359158856509906801880092572174835103124785409164506783057069677359787660874209657050834454260419232930725319314322971508856429719123841784333911497458131408648355467911949699164362761998464155672961399535428611430669883013688578813174627283354947294759166093478755167130268390785181152126213575712182246445865103597482812137850167604985724535488950937877285508587654337091422939753985887878051768187482339642822009680270769642100846355641413294057731474546302434647354410720117500924563138427803042082211743796298208412812502462321640709606020907784670879824648642282448374614791461202803775212625413443507921742954258731847781677159610546262184914106574086065479533894231203938253231555054013284406491041100568259150878542267253973707920543102200307913719046243873866231379140641481970806324676699782710562943393212957833887224101566457413190350096741222663336257313147199685690466816796437618738431165049473967248819319207200287772708091587979777590781914646035898402047738095123625203457124887501576217665889078930564742868515645675823553490199167854338204355792385555126797525073864411037814829148077446257357261638681016248067445100229184692575202488238206124455645205301670275745123118077252446553817030134220080064373659917880731472987331308844551548678588611569887121685936907007015714636267670984733913002515914491077654142005454988471165562097108657039256900234437155011083627714765345675227163204527010703521618319826161696265448928327017902507803914428847149451439205337108104354276027517107534727873861395188850637592391326685156364751668556252868347588075621189402532153677696661296675152629490650631281520752126956703107891627094773318160467667162223162918698048263856784018181774874048197038474048521458549137019619962376383595405968201427667051021449295140814824122003721080268282545650272641206304977919886383463322578256512055255943610994719379480041827631338381650444847610415558805488289409019028017048022903689046133015874342190270152929350481208612501662375868024119551504739307177287450289403796792988492041130162799569028269554253417245497448015627906332384359429093348891165858182034093205814861669612969661447849264666623530321946842467035781476034411446505199641359331853915985098594472152008846393201748327743654581953448059185489396611850784685167839159722069599657431779348656394412671492439384943560703264766939051651384558122402958589616176079856960407688047440864333485397197463751224730733851355159085994812251795460124808018263393913345714742054518527939912359393998058159281694714984795127138412886200303677239275061296734575005755182026672516105574566260445456450097283676428408522179842796868884731301071879933791195918741914639225714538312865231229406246531690731379715927476095791460479233371559122683386330634784062073486395225288138091694618298319401679536934121597113154261223289884789220154924489215890263290627409002336976392923451839839834721409037475123998500074311441565804520425722343934813759820032952087648362027818230051699460908821260170586355933921267812908405145311288005894334573980260593901471283883078209061022862979224282482428915737611869707737937851115143374923290556202328845579978338289126744952601906657554476245274423322527879977696169503205215568762591674838700765165777539783412532286893938787262722834651420401299971570185760045809088448569823139362742670379899071453172885351209962116009635554282996475060543780370654915343389223346172817401837659541506780972411081489325904668008687934012368035595893064252009127065387156570568135351143585704056116367897944602034093751860526399815129191596486057692641464249313158544238776606196734633196994408364837235654471741138846421051243962679581057385372276563775278219371388651655234677525865843929605016684541137836979405675009590200983549579493397396597514278788170446405797597881293190638675101645450911992660090330467650353364658306367635724507436788961738128941644973248166197872775079421183068436386951063347642956164550139870755750986538246834751787156689840930546785996095525538092179667009903002578178776023795789366710437243690471676237339241847897372669769239802847984273465573081066325176542291606457685522022939410331177882298740908070474464254734139824601800323867015240769242680158827681721966920397219970496750628829948503296647635810158713165249586512538250265891640639583980482741020541084929933337208579060662399522489407649833210415606964437677909523640586412854941474175200146729637917793697050432275148965362929443341220903532622974705941257379829717387373495754388149580237140072070811115770082328183377538381949944227067098293148215022999965790419142063653498403320094454013702806421526031884019047973350544129565140429287336958407241542627904085223952512848644806983565237772560163379037018407765383508589146146522413436820366535468997164212761724542064690376765050365796820298079473805088051921112354751875002845400131254406079655043446319438010788469296338984330399664516619445446086604490423653940281456043567542224632969725531200371204857131318235099316381539412367292057386923139667547967763118321100636347117297994769374171902712286087993670426500962912563152861649521990058713887796420762494989292656200786590120370532699155137553472538956517468409050689583775151757249508003611913286450769312534683139224645049723363356312691634944554721742878091672241200617152808162511603737039293616964502609857312078338644862184136497403778171559377026882608076515568344377602943629911186042778677443185285682266025817183997545457058183895727259429712835967356958600715875920516065718164756296714121655465531779628282124483463602444147450939619392644638557871519827964984024088320828471759742497566426559177659458012772386970616444972701088039963343115819714334392724879524853298041478840121969960871030006453570358574911412616263485694503054353933091022366721718005112166383562808836988412435558079017753105433812266540139281572763810667195439327146052542427426136209850108721669419115048460549064510981850395718337418937832777466773769131107765053260620099333120402612447853924775672339851359858191606299534831386201574377706757372920408450809144685720001126871359684890003058203525794015084805810993713279762473618315543547210033285017236694522840414699702536105506078634183203572374173728926928961792566082700398013685444548907994071882190665703497169131671947893666129174786654736684948966412511756428087270195751298188817884283046437134866520517510398704496560516392371515805236415415341958067634315765661945293832372973367166296577828802287965363296412932682348921832012349523051086663207872173997887311384848463071750938490380279568455924962785195704961942734079097336797531814494414808293226027939535590851110282334363872972964843469408034066152030485517938567918915002514504300611395516963216193470760539576081730785791312180198396495273544103487743371215527244705085767251587668159368739255352844198929306304153269913155400342124885020453623908829197297955243766723918712790834329462170788608579122631869852432628059027880718679697758493906216823696895686057415831119300883794856463143483530687145169326198761187772477985281901660427300232713692741813718003688361356272767279124730184426004413326148859922277038481919818410169424490042994495112576811277083945311294229880607765662752358450640787561882686891328252728144621649375870891165172380689902452942246820859858434866017984441912658150805383865508654957586752663108052887883822681054809331331241417668970181500487964755380798646770728885831991018404863041817244095480856013133295183947153687536414934793138842270592944009053360387586021938488995596758903782629099616248157384115443712173811807415878095042251135690862344569110185721824341001667994986785918928664597178016440474440901732515886813549400709512560160381129098016995210251803396007887736727362887084761622483294479539661282226392788932007010655424841914073273061741727477066957691295146339400153782822778348080963047433527156131730306172687456310456580252247331203743007746168319234249251171053275094275170253425553082829019086361376677105956641900461567663857270656347146254680981725059242325828790459656409640055227586416064598870220724886539971579624322936478810202727333891341682518430203387816789835959515499486801148194648409605030307785011953802931843926698299433426900865502774569113547005650573718263679928668513402595560827921117431915968219254532914099959365506884577912392645801335582428501838239671487056596441577944655436194995936704132739646402618326753242596428692837953491490765613732234737014001508712182027451229031432459588681242431063096908230381513505129851586412897016177190874990214096895697651758800349275310869563687621472338504287561901759044168366615381377725325482630642761488784482232117049289309014801581073248834345458285402337250979174120647974183061941661439890725797726159613904441049341450697423014401218943703369180889502872908369954501572259955558589030931368206600876204917769847551561093373959835410702648500137116898163638900893813096152475289451361600334474299388225088805982957108896166338630365775920927193404614396879735932602608067414445251466197779406537122068663093512434217356187923382525970960219602723598734471923514790698747541331202496615208957766567208871204360362068853953444821727108381467308306738737556694905626279357047508973854225627148036771920434909155789826881984779842882583220129016503979705335008169877316519805607708575896036795146656269353817324947973047808439894816802086850897272588070035640106984024986974791757013965322812924920463192403609595580409482957785446964425785669972945857515806957532927372211218245803759186546181677742801209281930600065454291485827915392612264821945644920750178157806032313870931966909004813667026762099320347255538112110525625677513720091541767987960306571999665327797302700200659192710212111721669969218535223447393143128796120935639833207307521970262251168083307536680988862626551619335593404289556372002782996067327281144647799788527419392970161780738596197955105670778753137518153571360085638727535833110596026211951595465881933849390615496977156553530100327488205803887371434205494647119321890767654927055278030767918105336053747282550999482678596092346742488750413351440336874924568034169783394464102521179966152072298031477706035459659122829115633927011729043137784673919034459872425353285819040152287363219114465656454535717505518359642971584484275576378924712661018672094601129612031078694917409355001735236027732122079029752057660825994746446185342580994403771401239605720518693159719499481102686703601070210692048361978744701612013660405065632069683336097191954453010107001468932485846312458191977302722714950374719137769547201824661393730877292036570080248505467345340957886164064147269015476215681955761838473806874389652130840737606172011939777050281521672988714775123785955167498773130552661742020515809495392618452206385685469294488634277120915882067379655716647947636694820792729328144526827046298297726436832911757565968956373892075206558273583856889377299946421751460076752310705911010583760368229431113172888357985117520754272763023744884680522136894652158271737299108256727501921995201497541966676347739430896083211279305476491083742929770131126274553783137192828107367931073140648835095744070959779703085868588387244634791206431940325512252173627124128248748462632594221485439200000946294178589415874917786532785108877732863668346499520495695315324186745396874328733187167411932068508031466469933587694234595087778265304193575778707290324994851202248424028209733927227898314651425037328832487604710690523320179604881053235443005840188435725574899269622851867114946180851913849453915307733685035434968845510746433174170125266225234156368428314807981236693879463282945779367011464329189980524217023064185302860706300461777385911174504011828940222148670532119352186707862757726100558383438993956422251080513070525588523816351065295842627139811071492074583087912941293034078773222758243318579566837230092073245058540157384833062651455199541687656196541042498402041475975617197238014834838003537424081598188035329712498660457103832067925839560567021293106303356754821268995427882910243932507598474970927254746802608633448527058253702351109584615658954791559038345210734955543481202614180861920308368764028983403816229262995712092051946832605802044771980640336601473036556034080243542387001357987916372352860703574082949945158604940424694142611440058890663529405618898510726263018435298227996167283569527614301663361828795784658749866325593658348115597768921426880303962540076137879589994392557415990926925582706494446140669480685887824017372268978454839327798058730689474420129049131052500096864253620562058902302230379385937770432229582652459671320148942318705617825616237130135227175252979897454723612393670085508765920756982077149337604373689601386248633035341536196097541896277646071790886356232923157570676660048113717195398938947310313836396524860815847713709471514459678770516833115964589397978641988897068854929830449729481165771726273346288618405676268197137043998159221830772298273683097130144926353051509258960709129711918887554503474644206533216506393885431204660693167514892936039024321038156715934971886867669452166163869794790804646092508299922766008099208174506711081726447596501245042071399881779302007372132657190126172185463348487577656886882226560074568450891590379747060647580633128845706311245068284823407888419272074812425102313768739593967980381253074199909074127734736609177582047720144997141671270898659554238230040657400812561196354070521025702778816866664089894939063354990054265212323175903185629296250037470627290943850081554000766768588612696276460086729887681644319344156151596217614737730578354993090985957822400113489420140811777513535088777579491331663669448548124565496343895241029450920289651394870047449620088636328895872011137279678185720610522997653156365074940566557127044406849038533909828980871836174617183480198157668866347300487924328543238848104102780681086634764807484478633376730753419441490090973676412499549668211837221693567941736813823502511543649016935562780219520210738864216426890946864139686637076628027069602046817687709017946977997542122184543792905773908519333422627933333537457359978183197787194092905592760699592048219705992545091410871651806548137713491371361093200956355215689272928886017453260400199222822115784584960494694370555792359988697552521498744387426260688399502823701601549192863615643226722303353221373214561969224873395644534405156558127888429252163805728428428252617017008985838548726830162961435871066842884204476039178395646509669691021312004981640546771921159854834133584497792849577837141137035622620695749517058838382285573163779672813445209309183770215897284324732022771860066877284956521127722346691219436270857234065867919115059752493034509317211711814490149071203737884588509988608715749361790496859380951795707323137714309695322998360831917371996640963415336449347448955696661315821240456054216615031816631602045150208526651459459707964276301416358832881849088576666035987451977290010271321271962295945347515665623605437541751460509175208161896617671549215724987709015712655184789950819609938693390551494580684676940392957925356778544594903112420199927659606830464850624861015828658641894581292963438536249525666899938187678784135652652822682334621435698738230321103459837764727883770360836044521390611106974890386468353748409775893473081823625173739497463664268609242291444589320926519351926843526759222133732062725508982625165221367597843050845035066955527329549263491522444493590707259029499794392747503638186275175479299622133491404115565626434055063788769675123838961475675131344041624396030966631702734232431062111652739444769243860081556823507353466615992578117866499202379912400548034401928453324256146036989969948522143667324739427138968473380195539194450899933553336038303642274262064288482447371216015749917587047444852319673369790619549319204355342088007861820575463034627289043718082830632595862828550790985030072093626407800025401763290463058910003827315127629908420397043469650835545752432881062262050756402128792560493798308874915549888593341510000811841581066217298405234756015483761680898074168731666638706189853303636088686843454933820824880189273590244812327319131891660985065967349807806637297688428186727412035492579374696542648587715486974377170195239662535381564959502681124927228811718059061496588935422826631059633660398779682091045795760789431400454727949732693014259253738765405218256683452096862401149230808168231864941776155644588852110557214787304600688959705856705428706326566830798662104220885049549802010812253527279386636529294457437186026258862335362511968961133526652377221834642342407438335930172031490393200354645181320061868481828737210844158591548959185289973376544236340176962571016447094467287323679612034819579633411809786552630202657094455359511074935209494049175521421924240903118340858407481258692938119653347245504274194350386744111346014525423863068612682619560020600762633509384173458395376982665718447331155913317744172651253243964972916681658381003621384306125513752866048232350943610027417145242770673173257702401937363070663103312998672045512736945626036762252988335973655453818625005439140358281153189229710968237383969450624298374237508903077358966905152904729561205234489903625800612811221995724928695765783047956230840451526750868196306191538641740720678921178515944408466266598131387749602997475478720751699572810927671570797156948463314340449778542297172564002897642255280087069163746593852413790593964530894243461273044510170529013871468320417258677934159588836882718958855246715487661873618631967212233743768172471463137522592055915949718744397247562971586044414727860819792753050976792536773831221867459416773558539563752861988534284732013546289934030738646047648510920057145851181986946690471137328846745364593769364681285208306401037470431183442119094052362351196670144693545245263681047739748812391109005444918536661821724805454209146830531873380838343946710398304250372471563171541848088906187628158251970962973751566881382572393115935978310575386310809923696225824058972404542310464408266872862128680823550010171734700876397814917946970663391453185688556658709695893685213204243172053362894660906590677070615128507260824393561408092025940262043112202916186669073170030990644590882189993937603069756786205472588035452162236986574099048535458224714621719343745546534895462009363290539254794982572975831530620434400972855206414366855307756614753367845282216851584001377083204995402917442591652486183144407089064743027182792522355850199945874715858452273227815607209258057778399688395044001630342255980260912664392240033002864308976048836018403603337740546253616619752276345848079000901375971099212616792203515769596132033786594616165780441686766704646157512297882076311689858050028125273061914932272326925131804511081611122341073176633107168665446284744530525093173810181354894156564627773808667205878381847097123039032537825421515682128583684251528837253130385412335734703529683379364914167610145284122171456339671918613391364139593716946295838192115426931649138706428727868815663199390472912225710592229878776083036560843094269723127366517501353049815956404969700897068378962136731521080100665926400929646717612166018713260398097918120566307822909088541960081510165020720819693342898379815807728478176856731269159470287729834351625182088195467039548099061072224114810892855261288452617975394863661073663539392948387245041515534446580067729498502891476828046311867498396286009390871143959989800620098302043898833185838774559009628858120907672446245387307879815073742693115200951123895899931346425324709947306277007310780705311781942315679222706562975482688628237897213584521414932329866162030843763137925677240713739209902853367840633749079814376896316547376006938371297399344019100424035964452207174529403443262080843491713270481282647686527024172469554507400048836843195391058398563740236800060170091887614069976845575372126213775331152646418541355301487210257115816955313947171194275529853063349437000430080234872521339714337945592450404507737703155523411225233653035076059147722947319947077391715147927375559274882402606843662663836368827209576359459913108805845374452386322582374544889853558754880709885595169945953933176067219534249684145631249265167187773697434192805738893641538308049544685258619706435173543745418853370210655443549157839312543037878520810189251318401075679909557251658597259911436756341056240327570948868539796432886398162698575042425635315838454209456788414505255389037885271690839690835840754780275741386579424008897522823499376437277603062689056167632259269409683653217180192254052091746469200978319061478568607501985331733936503716426231051408127059126975486286528382592482941524213492662468435857566403256629305483979122735327436872088876391203043525073850568601039750006421504946402837547847133486802244232496390722948559162700701111797558827507904235646727901505942017858211017645632051874707509443306266872451258797931760370616913832500802599802949458683475737401087556881958539503738632798639994753675508724235357733692863419051051930538186419719358461984188602540859616889660970321113254597274673091755907525387350712782733030199957847018686832439481062071293564873302176941043648657897391373642324566014288897491038039393136524830589958478271928324160115895405695263354538576412512558651496599694968678372248111700089723930068552965958130659422439980196136639872592504460241364455793838187401591046498382223941422895475760305714085211924383226014673927736484379928972019396276606233274051052841003467640733239709402387569577189592382895305478758851622636488157173908733500670359090552988918368736107230097517414440067599607672210911973058536937586188681921372758384199251161871778662835244749740969800860742867068365080705118578930401455291120544133578221531612204171603772015272204915596479977722164145301804212712512323619018397952660647960975991771277581215658912428400002325052426174481001679099077033004648123958834808213239626675617208410018200786164507670198573173319928253706000396438517000099499101910477055808626327485276738312255152240052786149180920753538849958282461524370280953640299904755801097511720037884371840040512009804562324470943661946387209447058822861018126975606668097268137670220863102461957517996349471920759056615659122091332303393624153110621972777524850034634935424880759471487432184642400548696028784460339112296161411622620395342904063517624950543291912763136089201834074358267757858815742856578431229639730959355771723832919111143457027618043358701488354620549631901608437186535006240486036689798092727016485505624432149546729656698659449220723902068894547439351689872552209446495304944396080941363356827578448715893393132553502595186608380385143929582914877773202263401418062555207810925202733074759281908920376183687255591014025589052317964968933188879464524039838998190540149251023927664924728479301083224318337695919158091413547528184183196025402688305057148295183631275080822411943890981991107819628291871179890082781019174889942131968388606052023515579273061753748760050097562901812782192814822770019348510886240707581039631035694680244578599797579470066164132001985614471587721475383675240800053455654582910111791892543942671648917212343339507139803519215605500184435837598713986022459413895146739987016393203170835536486610699809548334295195774372879089513421661413850311499997011130692727734496957187303826278848726929805699513325941182690087847311459699653064782133896844735680681856515525067470003346427720446308706469255490497980249723537199156876040571560054731731180510343955002592463264849363123511841434917737403925908053837517871209976074299863743730177993781965333627580703942861951674888422782808152000987236322221203647641370684761637381294653666144208362963514005161793534584936633946527142658977466013980831611204450630220688411190121253684196642206493855389266368279428163990159655866294057393675259893194342091972673333503627724994732423045399110270703446188721517365268238825186414237821987576149493116632839879912650510855286982798988831174160963745303030799510579687250629631589131862663493109189715182324482829352509708747386961838409940156735162109829332101344068468822468720142447094056717293010631263327832701651310113241595821910987479583734582860354705710345915302437742730532543714076795192822942345800016418075073151397183017615735576850280541524724923259720876994438421301500884196976426062214838091238640064343452671893521938097485366177405249189560554918753475694693877820894724889017143670305095573330933047842292484839097504617762384395537968681169400101825625066073031032495453889326502465230298511849869843790233702291633735875048214870994556719704574144878051374388883528247014150818355624667612543205606296551338580901422777819932166822209283257852972025274385863804794119485105387928689516586386580501579282200762993395218245935045110925168215454943352668022548532041300612272985332332306470452574660628622920365747940254929985191391631043598856488598876937673391253285344001051496084061482004252835194216914676812075277020596635971103563001815391868805480544364480538807288883670519015918161285821539690939450636697932790749175104483611150328573640930881620327230100125542406053792806847691422980643523653721496662028943435550804838519168562154594399984183659922127962058494257506956139165023893679315639470194660821618361137614924947037772194117024278551451433675783409640605382397911249720965090175003167789340851106714310119176607616187265123373151829417556462733737615105595843775697504979044346393306869662628535787344910214221643950757387104856566626905067539684297893257725193988177925640369397148239488440714280604726616115869609076700353930866475581949478544891469758060906939962617807206209130527414417029269662288442468547047914675535179516426115636146667357999617829383184337600947977201014604326049220546266714687389924296424525644693678285602042763951547905881971730282237576898909550729149539650093073255684517210510704073542009153134809358629137560509558129095391831748724862904983578635325040550480056022001520726484192644843557386970628478815876708105304832291719707978098087135953229354179295637311936074735642787489565552805026113073618876431191097521240745312766372823808873043430445382959191264212770698392177936178962859975731202862940053646369337373138828717483612058430116505782767757446850339085262209220128315874250369110389372024357954985573624823161296314048807222826954651933873602571505678806176247262803382244853898288419776193983965658975168466232621907451288153476782359898429168770932537162861087900274477040219186974051134807224256985189979708783948546521094257823531700491000718778172167345927870584357463134133121647323632590708346245433263535938114729606816023480115455128461871863139819454535842616889256069231274917903676691161357406492191908746255816311909483052773906536267354195600734549982807071355568409972703659148239466769515570109867952761225609688206860828079533143202637701390606816089307415697353463223831364537424645221308359168293127978001327063673108398699139283295005977926881130694303491859357793381323157616564418269086922179132792244516911751267054145428886542994104743626469318801590630085042316529875950859117172157475515134953353344456753501226632531360995814065417721606864442154177343332380189831597165833389899719318205996973202687839317084762461872326803600801552060515910737631215913488000348047076034943524110863880851004213221210858586683699485199482561835338854391760287565988326340061326368565565403998689420500413288515447160280933201021950699211083378142950182072948439882909901662943665302296442067734240287102167217770953815146330002320927504753758424290880780187485829380151949412269917544639295756391582010677649351829505194289209260661336733835417451772489003319203203432441386616459133818298712319989361130496401698899514227273107707837657311416806709253395240987784176209365508959236870790302209585303064807658138806273060724920103787613091970832238703493495677601384751995893641626589283707235412336966496694778246649056954143948118415310694957898546142411372530414157874214732615908212076877075971654710240493675443225755472651786463657901960459707343774403236597132623042554985657081967640343217646617749320157524257047311856632910503664779015720552007103887176502130094659247117338245956549080189655420274095639066423478337019081675143297063724082348481829277485192252896623583318713561572268223405405616802716090005435844812015130503726574836274412810429349193003034247580269273100977436160442466467658097123700287743635385747959952308938580833579503648963877572726130347108386706693575394388702294620084236698774319732676300286805217615445395479467097080662812232609310992182588935907875435787014457695799595344180383130585891766049152309598968522341817555054090882156556595860875821158630967963958582786108160589716670113605752554258809640458938359517543491602991671052232600756709815533397559630236303368279177436814857540992112619106310363932634636308827796758206368391638729001030853159015969841927646833304282660053186380649863380011744637758389277405734278994987738177241941906996348162251271085305507179252930866689245665528615766952911709830893403922898660677062234608390947671997245991942244042982491088169000803974647095101787380785662774313447705563393363450927509369022564384612595745714052011869345368647973468085139397914170093982584817726658193047388627212064830864593363941721233956406137045825287979845483282698096566698292218488106193926548496092020963647132922238496905623941594218053977795054714317241967559296026169877285908084757068586492432193443972504214863787257294417035172182208789940108597612174834613184052045534943564613396235742849762387018235059276509071920371665680783894609289481664596238438308884934237912572856972851732763401000283343185846317962181722491633874832417153830329417390479554304782322581376786420807174060474434503127391876178952376431911379186834867790650991441527286057068772935538858098690960176332705416427064663127499445578019162699274621410637458403475942573810114311252531644954329836460985227542168748383492897044930432980776093217189701625717378050559731244433244869176114388206061234562556042294237605822804808364921042186254447294077869783297526127649938815724279192794016461786071762257787750733911719159676415723210481747379853982643067945381809161857447036588393982537523438949812420874941348848668180376406760556101055593438206716889464075623313960808764608871327214067377535988463864035225002235510843680965337789341033166014160974142149916949775091822139288033147179854985004277218299498830616580024216932606546829439518683223849435653825929492299283270178183781047732739234984189872530726255207169300176923788571751837942816575734054481328909343064895027121866805449496437893050395945355914518182995328331396730196535230739639272480778868259280170628316601115069573625261618442473273491894660091652723113639409299737074370336196707675527458482644333241426745160477265927606873586006936293586741527078839752979261057481891593713145720278859154679354301681329324122089471577832073849133497287056336280926340681234513120953214999454746499876475121977542389462201748488962143461152676734737309959061792982282284742996984979299903554500323633699937150988033832648955449652820081904121574632163744186359366090891562051787380109180512960787748088943577958690514900383455667053467437947966931170989548040534035263865497576698642867550631361784660532960841703639278626770960775974553012009263432784534212814465119109195051419875178765781376384919541319105547290043626008100757215810421841262534378808615052570081571455014323819859343012150033449789929203990241229464705239054143445462353631417285369319696791688256258227713517594156280535977066006663443002422429258040924938084033154077123913508303715450888412162308100238829579630350296204604704792655104915329877443133567290249561435111871259903762822986407533962558124651696029199145620857426688348948972757782442156607390506044295037746245607586453803395212819113695285287512815573185734450542289502466147590427512796678144607184509567735650845743781292551530137793138193528898711252994380700973525472296327475476888288036313951100785196420165549205870481425981541903904710266696021417543158923340133940196163915447849645710724701970552956015637149092315294720484739860276987765253088323843805321817708219052437590369644741203366673755019569883870465473204910092745376837563198394630842428089416533252869991179707785387133066772089480789241913665595456893773644492105976326019768772254281264556471766853836362426168123376675993348027194709169062538778667136193509927539326119608362563705088996377880843788260292704551206824082455852662584289353394249018342574920709144455429427891532639991236404921684542141701619024338007257959742739664388472365880666145120123999340404217132825343630878044620153827385147257422719368847967257161957638187746305389669166815069775918399613143191973672885194614781041612153410955689566961662433899760204627682095782129237395327979807390483143988875513303366522469772652947001255830774670914500748072018134465102291842278547025885689354519392441926971605549741473814265851986681433183574429726046606337232966586424957520373502333047311255076773064030903626673201255550518120729627084195277240658150528901666570209353084153945452758538573440109280601651885067696984796026747822945717596929596478775722428410340683100915944396875578919766036797049068636014920299682007134985607244437014090698561456046377160081290440546635637739147293053430292087263892136392507777705610308525066390872687263940109356836044561324611110119061940901899657031272127663205178719410674381975389223324013555965847938400990959957640527142498468166492449383172165228480100677760069001905710971767093767855709325699687161522496913796319297238267321432380027286535514591537086893852550266853267856574675965135481504339582220798590545429956849255220209210216868640316097494198732735512809552834360169579364476302985204446346117813279789279126493053914385329296566599061867788296832108549415096270733766455715108536917513584681288948986941747841553088750926831134844778911573449702466712745600810000451419270006857807402975805852056671257187754359036296463378650805145563803857023988840374255878799415945242359150909834715581921604437947836907345480427681668182698418556041063619217753343840701203290602021530702667756525579542314313323780173043533180519561680796137905951321845546038247822034256815006184749108733737066943054450912254785821168964169357698353956121987058949751937525312978937569701120223432239894492432245469909826526031995696276277311855415862791247789776592737072952142101181628197024842952006442456261517169983797136426291778784074442632232158646370090730601729976474313301975088759751865447284476978473164283588244503797942830001725763881554063635363185214849957433287987158831026497757925727443870944354613774135172620074451875753871160344284621885307267425440376057795849194774221982789802279800342042154326857208296155487887489256386977049334283983996310840339744775954038244339666155831535989699971234116814476010144031670595741074754583661088279539400242783670576804357602293918005385021971318428946639870048890958987494739064372330398675247910173264303941795894067345797959247556793885018603694461912114715115151473081191383408616225878996969568777602320362306464430710451664110755230126191422719551366685578026863011729533625140197047682098484587331012342423666449364016714712419539024152867258472567885651717717793219337202812913141830196268532796979637258199886886649424637042534294085635630647196558569235559906331450879493531262733193069311753538907045843622893379615442347992064067551718353013268653511091135538659729088367669213931571786472841903008333123611357761928875296129330959645953087534142343630985540006998612082155178520461687209023807079402498232786098047545683764427089468707710846257694155629348573894099141006133916405756781304601876399231038912095439948778732410496652091292159780004393264854087563554958215833793561027944452445338702087152983405696802285662884832560430602013173275937514514643044379359992991462292129268278073267125805209583255280722958247485680185327224268351863662364193018322030908034576420436998236585040056327550774792676149270406007456906600700507536227727638762740804870368795638925518684314572924017065836369875813827822570832501914082475944402410978253050891238611451926252779636921517026473295774740599050324361411095250582710938375432975771537355451618463704593552017262410966285051312530504243327434324449315753735126701583552261350699402728375817264564698093142177179232042778548927972082465632112978490525443645017530298886589242401718436313940158538234171085580402050468553239342295118624008193760023259791399756368805216696778409110918438604213448864100969887524250137737794676221256750380907771664951357492770074913421342026004756935083959629333159639753166048844968945919172582803603984216076060423030904699545271626571840687607474423177374266281397517046244502954657797786445911540960922074766984633179180221313211396899748465258342083572943194747081933101297415721903889721590203956869112622916896002026587482544628014274513153999236155411873343748037467858333800233824903118470685221610330078114855271961318658624320504437065243618583409812819974587945527234686989783823810551494406698998570769678417472486843312915968458962732148272997771675597072822058600350419756141426260648456785775275450224711030343221009537640102067144488258061296275085787789365186674269446853531278432519937997829009133147894752530925859521156949725783605530805443909471901761309137906230180251754290006543549215690417455955803116339213578158724778102000441597912999373610358948390491021218633247544627521585892707302675036670416507573246080811051604902085014680463459685910663732310886931730059291297194098801939587374376867505368197058026433872976962906462416789555178601084309032294223035284239362717743151326236912644605383401019743807330473912917058412149874717533902818134977002872580746959166604602235178403119006422649631140572232678514761042231850732030417293930847421604314005350277778573941011554474937382399392662759420207584369054398465684717329126628494312169248608121079535736259583902670843905554589870324732661511374380319322426336597127782262111982307405056773670900299806196385225793148427627195662761635108354378022570568292254471284573441944023816299872930508605104052563458172132904801596858717980532244574802782889612922905347584660634360623785661274183936295472506388195279410875071742332578103851088037252698309065840205009563253800571062066728503587588986141230007639348091286683478753805493821412806249207533045444586236537203002490514652585189971510103002265360910352571224345316371435864986164261076058705567304839457168604060867140075039987939981602550250566620109697841199460502927403336826453453602821605961014635778039175356975327132952781878456553149943825311016466456354065785843417915940664529842913489474199499327513816292579210657376048222015028392410914313376403484865689676067139418354687872611644048111499944976554897750119616293193983260060716783472656646080468841393531971695436293382896061244390974107707588212942291188605913488502897232982123935078023773247227744670102946819355268223318690534716541431422177349927934301848615229690045005809125909634492823737335798348526396320124728706232208075013339105740033476791653841767945795678858841632743249745799950838389862723174217697774594374952256450191153087749129024756552283374190644733289633746413336029896732408128274946301206543999367244956737939723228084674231268218387454384718914856855904790749175321849449110492667406275947863682165822686725709161166036638872624268708643283103173103477492285409513099539109922926484356065551535353065816325641090858344162065499579494909462573042030252439145501494366403362925165681722998259878556161598069518606047016990349970690089693857122637332023608908437302566947144571730467610018747944569802916425377645034968044464556062217059217529697634286047495092603214143990101263379375989552766367929449209756556457945193733880732174057586354012963024973047423580673876107214547451275058921720599825514704591386700214962710728090441916396986485336629000934565892985644609844448479944986437112752840139687013597274007613573645870146480886565183812253471474095058042150156559212740288255979537967419337608790873200318688350372516437669255107555156312740620758569357721813595699437954497961191667260483972348741554345980119058653301493669985007108129038918214642621951359623674768050480599257474865641901010782977320030404260910165570875011130978727649110873253400309030129473510371804218297848738043801992437019092089707872582087936273734850786342944924925382466115579940883769434659665759992193494139886263548905817269111447565603299098480563751741895601850001946329353032469893389323394313944010625971811732750352123687533578027491962897913878200463522278737494923484574292323339989178679329421743596122767728116263236442836958124169840319003922683011082994124300213039716478646000688199352219701555194258189085691579291599338868861897653221845139640848115225333359754045949057441947496745204759889028456891685943168840013886655208379176998167820142341453097878724436857752569644794729736779800760668232427933755061271071921216762831297284135266232729994085852134059106361401795629779625014613752534816845158885887295057976846276065415910417956692231912654115412693219855205127320067515391618484058070136840811717110223663519293603880850631680531657944824595711201781733122422323185724866140210018392582039226168318644938642627623138001384367800244401958557980634389773411521778299376056937552336417629937989761333607185353405471560272574467938956752648968952002189084019030383860952316396607608904906637515023929135833581695266760794817566530846826447764259092754747243852491013389063904481905004472631401807824159623201978571188533474846062419776639385672493517084178243734398142170700989728913942224046764491867598932484309944127292092340786716327528715082751162391394005814837727324118851332719208759276177418474574767909249901198951267487665214240409454427786464063029710566278087465369356482458305526615638348428588935390322314378128688762173566626512552265435347030757637862070378986901078408984113045684219603840900575007054724590523309816256993162236540914313860639753988533200306758981577495430412739683087372247190180602198188891796042186507058343075899212084202625001101257996258638686218654864092275690058945619703986838934410835285195373231956630568819177633686720748563096151107245479602482651021528907943726878044152954230620474865001342259566412448617224476398761753723141873276148622895820155161891131198123526635238812636127123619200757415237424022031574787048666228675764947115777350493497193307302701983888245524965118553001357638569399875789593204535576904290218088502575357239073733902139730533364349524653764709653407397758216412250924183238458701526939259312352051831320704973914207779184283939600708081533532493485992019087500409696749112969845193275135581853645637283286845525679831367239477619714104329618295211267354230061723975598128716563691991259412400721927133812378822470290564684180224690542779416898307161266496521774584489706577413476842954479908921912666511426446173156437474602777566128390795249879363505979117104431075521438059947064676113234919751952227465511688724884496509139433344655036720134694748762669666059127924656757764121068281942794612221526453978067129659579516689690501960822524613244754357063250125872001986754389131438457025712476194278348115224379347966015350246728192655487496803602913041648551457657971595471538884233015330312070349099907996333692354964018460060160962013170466662236832055337498325003809712902052867605299810821937528941753340401987976865633843695844349976012196190469947565969572990271442265048165544939444923595501630004745339599910466539509825556268702113688970146633892221919466851781775195203021760350441930976594286632605063706727288750697772981045262299303672830078139935503298830169818267783746377232448442810919552364492608809525989391240176990328914384898591360744706419163550129775966910632613010016845610409395144825044585161767385447818818709311141405630602570093000683000854889947351726540939265549489653779633909972195366006876821810931421198392842512570217415379974509973735201946365392110572474080845521537683020471215451050731759498575686478680186835095695594314034983832742795352197754230300009793808937034137914018518827901967093940869251656615106187051975924140655829034720882895098302594693671015093805721256945081062580120532953626396952832892204688216337894966295370222968544476094676101667605082908283463724514730941728952749919875307425868726275799814055566818225225283673469614930247377118525698220816168405434597752509420266011595706740998147402064066810663039469918690496535010761953026898101935302698548281662843721785580337094519580173037558022571457236740344134677713344680640730558223852007059436231581305031687797389570721521353154389297210844612646824349793115947667472415560470050373429084202807561679776606406771846199030287266080612893916425178072439591447175873402153116204489913274687043121387618605669270565684807291368604016010620296718589552473675475486976478072956772084748040231907661913451119716133401960701039322064326073302598280326100788885460022021643533120878312161784265315211566664124597690999382963789230306635599929191362075025902420599859637183125094548990870179561859655823406850268895536367763127301909929029377426020724863627824247700684186661423857311845296615377571139456692717050119731642301833748762497030646328966146830010992867414031569435667650981046425893564174481920581940288282398945563635602886942386261559554144761014351334134595308643052494329385629896827954765060640254373211829945971056161729626126646355129892106920668367944170451942918185736899680597283589428957132008505645023789774172891771120286198742218935510802067841587303920974696898612535089856467876981381772527623248000304579948377701974302888683417562160295180086403155226439609788639967423859926341583822980056646319445864575210785886216925985984113365779658587124015135331862178918380685073468374528985000549598986718959658218777053698765125449982818483618216278179921313468664523663466678101592105102385467900314208616534562146635363121395793673534543925434205602842017941075016668516112201182156292431945356438210189233984430545332811565268750994078759238605871253400900624872033390084417131722620846997616222085104197415992229275664533181512140351458935156835908998322428692864342251068206749857916571508359562344163738661710890415969194226204178144101957815251054009611179430596882856212166192385880714915837768623105017261250848941854802061662316363338706495750943474200281843208854596851310477083673568920778382889210489831286620530048489611638421390233407061332624169934936284839959491831996308236464201514242262900502521957825709179051363940650459512346865847914036700647942622317010352290821500711133388690966489001481848504654536035157391127909021865809575949619823392473343334876572433250690908939720843810578832884775466148076798437172639146592951946073356998218428613848994835872222290807338103384657274427548460774823265088066415033168908277260567999142278864929571345026035345385097238440619272557306510949085134798446651014240274126481025430699355352492913356243975729441574790059665429645511525410159119839697790676185878888158473708510833642085221718709287814693535869166151303461342872499569763323620812453081663470124668195281158075179642503374803391925133873810593496640360471119244720724672215061349396030544946454519075309436062291604527972909264593411099181115394550408956203872431635469976538698383447994439172244101333429944209151040762788742756298792629938516093991384427360774360841751421254065923716502723052216201277526824340745042221071074690768825444142152879030829193343646020812880981842984172440548911700346870365257953984111691430178646031577670889201067865074489098302126041046055390433152361182678724342659394899870855336887817015978409684321070449206872309263890639206442264142038295311310424568565477846270622739052789513357719271400777831330563051133847652220552745373789903639540752897970103234791186911001276265084790700865955367292769323895771939762021580064260899323593637022491263951877365986123795353052732835678971379686396759752703705900764504192325065921844838726861336034313651146788990256219036401555402906916076798665592411809741774962731740583379059670274274597254504991943425450441251792286861592182405703801690248915343959241478556642518770622683185054166331664219417326168603029148590714527527419715936517557214786985735490636791907263051440434544939209954657259243538843742707204990822870326940748075108142022126037192858501334600301295583303939485060807827546659126139733245148864656180295217322007966038184997263721952299918265277520810797696987533294637925607136932934362693339001248382077518690920531895999820505839120944673233227375097863235392568743208016999126935885170284617382617742762364086926174605994510461102848694996143736851592712402494052603461748870183511162496877802426309840481265393280444727585289313545694821777500006992421991505288823482486812027178426783643723971352886742180097198616084108693050346692636836770814253555414616017650676899316094743921601307181536696353777365141972208135688865299543490560495610620128188783174536367917327934421108617121601660722044159784094272243891384013750998573857733090090867655177855858606769489051571875330416679517836906353734050601656111135976023205531144411541447245668789693607507896892244325156881946760420168975435940120857820608489797355472572571688975942513459615249295946366428177921071594896876631230053479798747229381685609069352676134171907997639726387429245632960365125799008210667551047435822688920131127701267602174421366537632824592195107103970961261434347203772410408528973783229115410382415935869556613909662220063678803002598758457405871408512419767671293379909730478377518502748877836440926148697207469344938584740058502780355426969092590669469904287170539530125342264343330170755298565308833374220748629396451642439812277211740146588736658808973982311981053323815830196402491571298272437129266213265728446913351568336225640489375549377844767893495521278799043647498226134390971264430972033897901012155294138893324973423217262799111088163012944998625541845066572865762374386415912809482334690789626823149892391397899839450336294547422179241972281392309490570185493219443295037566623839217733759401200404606071061088189490443083763418853438480935250289641155037299949676961571072675142778268640536777366487414830336930450907109101556816575234847728758500141114681890396824149380518521006689673399478821597830593343330737612473752719861317692170963050319772007985156787863294649572914063561363215229683124871912807738652661638699999479090991352405098945870741081572604102863413516902986440397949951408233946412748505944891831045082584402040919161860967016381051952152272261269450348778058635878218849055251382153544117714938936640834610923839852141229170976195389537401845272453669854067498011865949201453414593211081274552089120131408802641089085196356265486887617483759370913198743380234064445497814583488133968385076770374028058692372572542721715108896062713119186816077787102935765400267921856662004180330463232768848725519550580156558709364635718390323949716884243116069080506069589277941294532547815981152394612461821475374219681968365716645285542848856835304249524060545189541260091135098420701972243548294360110476961898544841890383546230348647821280636701399740625987852729634458439833325525154677796089844191002400809262636941759767246615637338674072514421359295436162837319794236264036700356704914012456819652103933699741835704598987060126330856896244812320907820494000648783465727544303346475963700164083902851330664730034759579350346689430720776717096151494987252324266045812106223164852643011341613965744832229822509559455727559547142208568285880094062262229673187787846334763419007804778159834338815976081305660115532457893636914850488752313859232757732367402852037730344105567240995145113880620616540745012608517477156370869881819965665494431291299057570859818020316439961347909890250244030593858489198090653689593900424051078236381591021926014562124914124171916396673671647256671320178619137498358525616465582091015294227899634939705862291886685329570733567042589459979305055018810986193715546344369013388620435018662169954091426972033356345774373385544050609096802918366079093595083482961054534964455681106574687954471894954055777329106962337721783172648295620644224978179577757983901877348915957531623066208041345000413839270756368363708488284207746411835056130887210729655268862282950269941715118527132613657721893945199519178184752664933221671932449478963973687564330961859881787670684528076285865426115720390693348646564237585559000937247938296195131150806550074523932848847640870111031723403242822021800765230738295593573716116092460361373997478943437557585949718852316173077567545501299534098448430640715219632568841399097081784541010472623864328012801917228469095470525543851147463700735082584305587526945115497291187161171729549015883587976207164862426593147812048972281931619557021725755944837609107947310867839350238910322051050049820243386037287037903891232535730367609358995982911203474501554477382310472562739992878780439806292897024026265343952599318053239369365587504856744262082930960741390876516266643175194215518248782548503488915407384059490061308003803176659743382431175615570924910575454799670660229906853397778332115976685980186538198677334578523837343214907142991539378660200567449127576031264462049074140302578171237865386313666827201450793572061022301306467335294080030542559954990296318586131658732878624313549649663061610071893526328565761569458799908261648359625755298460107700683688308207324255374295583945664130955900070592203954970445368280194192345632998880554227313764204692175479391302183314070833217081215937764019099699601730332515042978661777458174686992605298542770713278910395218670395576292971957477773704645496391075141105160016070560565204802312381817483900393033815700273347259843360696306338897365820386206600139490214380265599979597693918113688124313856104834779633923872264611737954184203802366159010847191831985180811336454408398834672736456572496552347648726122612999275784844522952835135785127894138216296584034705911513566771728754703838863242829441178104923400192835531885616785220304187488355487206401673609330826786828932718754478655781457519795252150777970150714393025941329706189247192611539477104471630855021738838841047145987970293179743105764115247669959147341873289962236143604114398599992544064041865599477207431036294643351335835758075670625171928220309702005849147978723557870424998210555565319261006889806898979883710149397288240165847662551924580076373367351970349947761356014052776830820116018008029898905093129576815861130173935667426394797573138086741431691709076102394132422630971948909426938408790399252713187182535962209959176997396063678642108216528533913698142449232922693131676208124064473055113006285091942188032902383456484765392765510632579030414803523017979628614526606592287162998780465571956129233273793521121149181068366625270830590008288368459972455997824813026118668711806592355016080186533258004823053715029581142423136277161000898665770242796718469283024913536661812217561821807177146449145469012572335728999927209891001390067870123685717710600427911606092341198074916915585888154553068392704246515842988626558508964073176737164987260526227820042190266464586384469501792580797666547532483947875974461106747150748805085557396428318722871344077001716218598884376536512427134376961622483657376481787557298042678948729142395398028038566565236255464636956098927559898797687507646731912652875106065854783689271086314019443072720588999109341604149401403392810286347501567786309509335944917248266933184467547987057916012609474164671687745386198154388533388699763730023503956991993575172785458816268341291537859310867801430904764914506382844770286081298458631328656035493304856807819643990009284816213006572366646890988733305979885016347969380721086280720338901488356446199139998664759402058812468187959780654900286661743888987744972224813301982781497384912086503660984419870366404383687336950584757177632741215400909596701206355992829625326690114001047124262520355466644604882104194240781842105698933598496062908757854825157522577937698773990255600338883689462098279363678602754458722026743518087723383486706851146944276702190182927307471796864253517372039798875226947513907119772340644193588472144692142469961753487911887890892147860957118063814386022878775552235275703140779134658910621556201643969618216572207127602747244055107532159113206834821875856442636778878762330252542730263532330371360068849979461817921757851280777837895256775360553860815699810699608592662447931746565125298589162555710634246685866516246858332643644343093158577786459964580016230469648192240959208529420796182216479932488940293811155142506939037616240864855639321515877355413977599854046278634901349356606856609506858289291595388293104231729070272986198795731523524325966603889475195190323426881218511410491865301041538380505463160417873529030386137142183076210823598288329708798517073281287804074176147449875256313427671500978501559068878200032309124244664498991659273792156065802449319528973845826899367041239372330348444583671851922593023782613897174584861425877407279611599849620474635659088611217808671920684732547868740766561056588217945093782298545637734654738790316610264091652629855556003713612634944938721434994766280836312792754083167257058317610598426291326860667246824008868015001135533027216204907769775977418829026365534049192685849783230095385664641470596049594912730574136733974729985085860520184063493044023430323442642453380333139551171503234239781528843725803376846554652355974325881669645469668613428511354861638600630301374382946891276915008179825230422121943227875072105276527230498805646737883066086543856981547845412680398716602391336781900910226393985236734941129278549630133612678569445603666588789997785705183926543986730804695645834640248533946996359634042259685423521371388375721327461942109948936341727622296304647586416387676891446385059506299471488335243075823735831804538778856580687541722729081006425211962932617426697304355874665697857812880105829746884365430248186499509420937993907070858176876552899048108126092029976145046815919179300203496436130818426641587377997192969024607858122966408066874193902019969993126555997294987269238110843661750796868769805647221538539924296886636396593484788849055159339317008121699805030904908769281512528451389472634556470614298671891746386822231594644097252888614568682141046871919383578089090505702448385096307734163436011401255277318098196813624733743379167891618707944213362159572835695169687457458703677843644717800798031103723400429723576473661748662493541563649888290344118592157081779370898162494397475095047553930377975604293254481199588634000034521794543742997334433568044059664597110383506545100513268291894969520407023225416888354036126851926626261806003012866169212998028397077939103208741800153374273295535933554229109293682653419723461373068029203051247680379918327309298664257146400190378708813733742890222076360623408583539836118076469619436448173983318172295903988499089805123233773482789504421504360268012161189501390770420109630703163271182713687434001506316914165247704295090604478640080792798546259419933753726486504614848944688947984037320086290186932043544549225500881673297443301268393287163054797169226080491171116493242111597323684972711944272602850039241484606802368035149021222921100921689318205454930804103522015302533559950968415534606605657088854400620378432495435218721548546501401007626413955524465047959611599857234501601399279497670905190166198308011474951343135301235029084687441279690661716299596443610577044672921130012063546624530736377215578218056820331778173067106798298438394726303521909503459115649900699179342163553541936165499247889294003134781946934765518006146214662635765034432410327175914033923386430879656411233676516022289555972762708500413052846038582344931634817622330830481083766624687811413359663666581172117170578932593899318532933444948819628253459910701094320413833954490216473743784427416069069208903462682211127101921367236017405030998642777873424768753494289219822276259621892021115054065793378169853001256794208845857515969865246988552354335064955230581503310349312832157841663361647325776324376162344451794799306120123006603518068087356136690389338333532922186822328905667027102696381010209874409398436009681364363517234772056313308145994023506538396449721246014004718677872945754286768527588403716993539195940070353819920202401993314763899916169404175155083858047921971369384678537994950064221368348811016918254881845533779554166285855784324245867271693894906561806433858238267326135268989516570480321538038033867666888078245259411345178126828551336261082217014740379371728591144964918906770135858351793038462796662068333361705030441392973153124635689826325144589764543784376244683683889408102586007049083146259535322577177516933997967454218755368083212149297459470221477712838487164097393887186762857898527188664580606510809900810503283772658756391094048071463418334513355465085945762572861083249928508904207783896380519619802931689018941816507044033841449792311486364616360675348599575931410101263484097571707624184756932323723550957896005663053702702096155041342441972552495644476017075758219539223353141856690816904645051907534181849616121520817098230663313394269283843805141173967398223883371695850621637412293666165894045672617257707195799960578132792232459429822700394275718495931844127654191078934414007770969566911641269603935506317284162027166967345353671438484263459153660084556461418533434407968523267257490370085922983152059592456776512255627743487321470945487576624913975336989089392104168436214167339627999984204190232062180635007270584935445247288531001523425184858798022788465540412404457696977012092014473693602619231422215400153917857702408763528724579541579017652700101816445246993744722583898991220232702564607408096431798528154965126490603846586496755976445206878025055931653511743373367673018522365077237470089602695691002969617258106226262007602436070580942809524773273965592420780482793977623588966020712180999175995443631980902299003965476216945931389470205281856217230160159319193585619624379748374364382184200176986723859755237904181646934567652766160912681210200605039414771840652015991277697026270863062788334093070574012648114544074543542545473142767899042719707163123745347154541592312967663056845148293789524358677201660076132149695592138714495173013160755787420195528266072057913270762185689719480936651824024347665224330615041939303297336644854893263280566983419136307353005733026946141430061453533035119270193605971770784853873393827132365506545976568707585876644804401179974351688115302050719609190833938042736433408037466039145431578944296624696232701915903066902394138098640467373757103465004022388113997289527230311775553308493963775248926899849212888688483078147851907647407637424350939448260199174701515673674262658149970783501202784141580889658055542196250785584819514798866513226462352125013563667634699987008169790179012236172673482346768238092527457011460527068187477347292318716735575934058190610480667260291280047885641094971197159258881024197768588575653000879575056639580375619362407060011550203619147060349926990989021436196799349621990403066706397348269978182926461540248219884089203430609689267654034859280510108499473010333367275831542167901916274445361177363024961902011187947538567642169827755024031681744958330137692967911783972862789183964982583428262304864977662025599237913298721687377049276656122026842866385657954990115011732531639300034124889355731255442008088397900245544508152325219503941315723543310284341649635466526392586889946658693490870237636079997772137937728317763274948951243997897971864130760471952267238870027712761813855560721083004666666777230527160627920780920214289943430576099631720587022307156946249475576855020906487025342244092367329027054348841919697870096768493437739325005191844031437392342226317521587745360890171245430365063112136383151587830509818130649788254032496453343130346309814637092221523294088758149728856626431886650405480123292767838197965820199651989302948087580461161405379727373591274469003509600583364803512092801952197509709986263797301052781533404950363121012221238188750971607490941430402227982841266934369606271562705580384029030099844450628036758790731569137039799100259108018213734330008996512949813858062358217989631614812744800766935501884977157101954102083369161317797753881752630764327751915529878981231594941266659326593199254756732224039353423009526393113192308594475418879396743359799145539687833811017949649293831973942615781304692117632596586150716013779348313229893799113796947668566186492053860666884236198480874925245122351156920306307868618986923632202723441482252995861153712495255911187640864243272856787468000968220645841336331403176424638329014387411130575259976199613145795373800994073386844149845354693457531038976858043746735993692239158944137301598005253939274218587779407244467492259512343056735242852012913988953395897658621861685102738500587788758877644742052123481106016682883341114857554799173527045353926135672638036333406845149263588683680028980912325815400559180972809304022595493359074478630375253303870177609801990140618004645725848065631023532921151447228291550044915721053342473810046563365890387243858418600048334383446591477970567235784301230547805844172165598345999938043735282863016187446334447177022248908811842724369299989496193864318241937811766005992521265986003668135815818218213414291962837125528815486016750259949238346896626958005955635771404018966617143224004047702939520793082067660700855138425953360187026971700303367083586291204651564091974465474374117650147708939676013957892897973545454682844860661323835527357769802725671888155917422566119269277237095942104305004020828260824616338711325521012731700076009336734255656778355136322929346281618801546574896886156012970283323630572088901065891443653522315052975855364100115988291450796521577910589787345648103186238991274293336354810375313204851217216260510524509550490973608357957404537554543483807676268541490429797186670115786810352036666659148787097127999401980856805929189533396556795951421846938687174720347771036548635748844234257317341752252770195684040538152440061010583690206327762629794922144159754337652959353365390651610339188508229992566999173065352237738503849577696250087237205497858042318461015686025310755835646486197490331459082859686840329666107411281895113306317951831392417389706816157527577055359889263808860911231805321225019546666444761840225095268527190116007662406465698138135254461612053558134930783419034972943710131736763758836337310960646323985153103503317042910853369142477717421649760856138361707186773536012006252132850038551779461111940624562333328981182618067352715989325229464694919579819073754824955515838849720738991484413723566087180876891881615351277422747441518005673927432103078477237735915258452108466913669344275336226467789785340917560225324153064767470496682917671432680217846138452689500797005476456617112387501344032761272769841858566970723704545467679004009744777681519494750439233721020770814843817600806848246539525667480677427748125747993915528823994628088284269502642515615678669051772710944240267908828009508179606888145657115491360384819102297471376611784386522250247191899532008326248463863104773823059868103457301925545467391338090039500926977855586775241728046370250999554625640720068884949778068336266722459426729285162222071756293654172857769793811334826807155755487416656909630150305710101170149770620967656215068263074181208542386074727552968751646011623439684079850668367164465765889964734873609077987304275258758393167525229926669250641375411698683213808917841503929340515809414894576472080640559074638131956332070877625746528430907714652892696809398711087918241108135316252827785470498775851714214163555965181272632315156210957970553438097650653269687728653209519854769429165080545052542969328332277918775134926856697869438245625614317738475210578330340612497532923537917688079156114044649786430225621202751866265177018507191808750705623217261101707448434584518497433571529017445181319897948360200371194735086137344856500810270218915813987206356461485734959704057597093690459581898291045286199111119259954712554649228198291970618520062359265014020927898562690969359899858311303782510552997414358794586685580168351365602239642983988426898823081754499701406660601205646974317102275846977719097640032184245351284670228048632404896684597490050966836396147534612827554221715892858309885708671304233493976121894669086707526843950785387903672114681854594238539854849089014400832736396862842981093541319500952129147015544086465661710456496442794595620568636559425711392502660478766646767484799275312068695170601836274577069246519564768094629612130794663704411178466178090949647734242213578444740699145690323261975355066784647935235972817180902510411794091735826302575625412995050714548575253837484282920133051740915832252131297279920005784602383336103503877066372537558790211680760907648918067923667186001026592314302073884573200979421328966515299398032337587647773062050562931263919825220331805947682314913679918545922246782463230874642972883153332866409470147383487360314853811834436526296774836849168914035612092993506439690482174813808926525064784215260786747801482109460999759602884759110814338785491755631137495280190458476822629377827512090338161508203036914108834355801244090141765120445658562180636093267899180034503308431141706980494766912033437990189293480106250021279871543210671187428205785125242246622148156381165757405284494059285722452911294443136781667946958055133683250131607495077495782210653290946058056365649612602080615713791630357366244244231499330989477888536331163557670939936980101963014724689929046033340119648232036914898950126873616872822889774363815472607544413647518498398148198813224260738561062110697861849075779903754858053967667700432323287890558985459607663982811046697954799027530957358814406229855510530753366391835779588328940224924387802218340736211285826971363512226814531723956134912089186893006562205772936884528153801536918861633188318113170101658307728338060448649033602305596599494065032936003181485914189873672348385762305825652947242173849305911689865945549576654325977903934112590029204751399238108681645414872370966496853104694727943351911792235774557170741827717318829965021071645295676762292672548285124782197078093644099034950142264911175740510274870082172513645849701896141882204278877002486257007621287571161752634580701461434464579489100424137436694130811364359114752045437092694762631221245109485194220104516700209911281342652019225842457128653993819765493175083653010542765669887317341999866061937774371894187677966932803187305880645821635362766846067889865871961540009497810346365458164884037135884290499504269741316638243849120030566840956564117174987599955583816464493428938130105068628246581947061861883876786819935620499811437175322933226203214878853401716940175935220059292209372305275004575278024030336993469623927373695029424695872239659636375854564980648996534439379625678195670441024439655060179637344813364289949497256519060681506559152416064222031212248318395649118155495776094161516811876827044669838177470238965713686656888952408175233565734751843360077293934080533788670066305513906528952060019219525013807978260476686046251596128673006848203963507518406013757896921419240322700021453143100346148798200965602853626171935636379649656679660225974697244618485665898411403689817811531450146678990996459102306645503992564975291942269655574218293198814338147808929899020691314750179164394643415448387355727892726396196986239574831234448976164412179830779687890950900628990107078684658958479474766618727657922560968298834461704986617852076188284275698596151469688558117107047515120011565265511271495832770024710639371288535845578342473858469614241453411228422682696298068471479524086285935590796219501930268108272274697819976384058017644858910356654134694863882845009607821921102250224479637872768162758216810729733729109042523670474435833659740468976066493040717377103553321752008015803834201862062247041272439770635189896973371265276804102369970388360843321406793925740431394786144671830939460166731004195397980617808156445117979600952083495919900717528678897742335298301571275367414595148580549663306002698996521622465197941246270358242494385096497785308579239524591517477158906784623194077339550937088382080924626097611878960892436239921259254314220150016546904397036750177612280148603543464234347637505788794946158351076077762858393298888263591378406530660611192668858627852041155399076264016340189757271187380904121516778610079436125484219762296588253102143909023963827948119886807611141520699123389841272384999187500337742735324013789493157253988210222834734799345493082145556408229190534832358763513247590776004743512409702297136204928954751946969740416945473178463940672992388154589095246022622672300579550846636320790342951983732768696191265650675696631929084849423611474319461123327051943843870522551793556015035922689227283955985606996831163495323051405345058147946708570147056689706845498870207834539749065403096725767146210916902186986654477584604449324585174958410436643536249613412895040287869853926581928213759887723423947712111306374071404494651732923576043764316140724559610974953016339960510402400437696373080748700471309840586632408422835559332352297743895129484042981390700216301444114938762423807344485499073768301158784327008362540514976099505915146675986515608550900468306263305376787295450183493983686605539334427887495590454354309765661626055181163338951044635012587571428907560004503968534755269821002595535675213730141454349015803609326063958125948369265743687569340459693359264000284411250868947275000072306397679777599085875833624935867239466213323834239026335561253391446066313214097306906051072932468278988682985428623842817963644311558848328434360027001913316457186707774828614426232640448393128131517338846935100637692580972763303975372789900582349792364456062864447366748610682145742725192497861029756677851557554051117964654643064680920355722491661929451170312194378879347792756768891819039457161312011370900294842694604928719523155905596638661137065069827721264898784086117773423454286693130875180696234751333567346835901620181656218505707444361988442883713510292997260688581478346349500976543249975287304645832490949184130561373449239619800741613395351190547228342054236204002274888593092475819822452529890943766417014989344877722307313975825095569930216769743470976272819240067946088304768869495666020609450853681747692163551927375179595251900724421065515233121691426437359407092136156391539593891693006494644688919537511664481944224854212146121020591449855496767122462063225058973959176213107887295803931573939356023823914777855377899715095223250837779430975021003808037585170365873753301764779097417593141355285653803809366798859493638045748040807962986327383813324608083229044810489369661716596219191971262328725470628854925956781359796045920870461918152019368172941843490492547333973347020425582589627667862653570296891360177428969357742520638699989872146180078846768292959328266002574215868341785407096360656942670487006684932367906687522678161332952701534141508963875296229951775746155200349678124429520537459312444539798827502116535432782697225040148684848889058584233032596646963390914804087934662256846019167840611785603362325309302750713341974792115261836251698926230478829667891987096711109972216598164943368966754196429491317660943607287780058366824968405269319779319190062511892723734660709019777499206671814280395833999255888306028073406074520896398476250657914309229353953760310199711711441052435198371439901495037670598638933165484595496157362547765823823510122458248756143099022579396743339543498750608752306283154229893684767589490159496877590234378306084227712252793213251762472841320327094222906916251280481254462539249836921215802365925701197125148160427805680381844048235855336183502708557585902777639680917805614035888857000561192741158873186366343283120292067655577474872990191645202028421349303668376909666136666217402513857526569892656440746112490064357155143443584243877185048281084870725901774723962584657460291379073222045442578086123992911391418646100578199964585791846514887231092433791870676968409828740891262751841095684648991655763506943337086595747117879457354800389509848343086862864478332755658675651467168291047634883504971640379623589405767262595800351734854457934022625139913392432283271951327755938774115927444026215533068367651726002119677038780916831162824826966860266719811930170074050840696952832017384901425932500521321410543522799949738780998264288998331959960541879428906033508421778315107268987856703159061564652073220541664351377751199325997145435042420796888141145177046991996410675153884134354366448748201787850081693431393686229849877139148442086952092953586916369985674715240261805961251195715317536989567312696504659934647345269481217689518725125733718979871271744945510198783088843620930706879960038080112847294738084987520946153631725601017191010363673788817963685998055027965371593820505559187865961917385095160799654972633342871916113868488665694405801694663035049845383712548556077298139074509704106529330591287513902841093065810395578964057674484780468676470614798934672779928081317104590621822588272577359807962335125188126941637340944930930483362395547463991707767317451288415489843965300370099344948783635859246122527550396081601419226100759415571646214858643751072580699571098366812293716087322410438397649845672941817333422596126695297978100909759860513344694162341407518963745462770397962677680058638350182480403901472272719954532699804944676615367486862462098878948771219448587481651540044313293156247775725432014609221739402940912460049910656742052386212777844555957761169983273509062605636326777051848778671317277095453474112175022348505261003513572199556247414562833110502689939614588725111758363206511004258770036021380837546288043970841414455378688758847283100448868985178097274682429806990793683313500623548734269247650135686645355045880474240164565414980431440355276898424478017845842947251684900193831329620281627068545032596421054723747105673118525577721093759676263296957463625293318555136801579994741967842539090616837456330693756180312511981967548740177688941626256848797908236822974564048136166032983020037797336872424927315408557651466601617831101842864108247687481300551084268940428829165172094562590545044419044203282891089110256373728821393439458966972820861237583958721027615472632519539670545738412445892243041459723864992513399881299192112568841189032575651200189107338296486351286725313778073242775139940400030108252025944964732216488443172111993107569740565207148575986469776433143695407494984667082260601359370314188358989152144114827042557165069125440131907369103799283935670500548263643804021853349383534225114845874727812221754803006731123208448362724227669425925808727396885087694240163423555362396627029470578776726231526818882088674296744138849781724100358234888317709703554869262705729539796060554988295796279049722462434812965560266738659018792637348032522099736912756121765023076069679626021522196733693979209872118647461960455833211825851444013855164178106551314620045780382696992336120164737520204945468879781630458145942066506077295794377647117538584832528311442916887481404785944181320523761012353478870721415884146814022130188813741178204413574026426184906288126339976782405246168809035449958979580949778825811904808178914610554555162642160606538212397251590294298013955122733419975533761415202284592581144406924949012224876909489659662324649741881098018124747361550297899348210564099506083256771048060633910140923977408685257816693298564365764207172624354569338392752072840391526417639456711354312821626740453314874249637074693435708667640047100439921767697218467754790568206676919795772991319817883739849975927178899452970841088895935877604309148876609305007414007165537870467847111531866353748817550236562591465945607562176166080266584425004894766567061728425534415598761127848715103728600161896844378529465154441217353045925921653226306915910243082264587339749340592442248565649621298586550106438727100326223330751841290248981039638901805105063425627839811835470436793024504109917310903168542679468771837652152882180581967924779657623954171931453455228261164506074283846095509915384516792916233200680061349883670009098294379586522650242269330365991830202899489258159844143194716493402277657221710673699984954873746597714580652535172807033264420135397821731907981635705693257010689470462320386783816138482101519940366410788991544794717162929868509238109191046934953061621113791429351789508611343117794036625275690362511385069240285726456138243535901005695891012584571822870476100153037579016331713835061229056275297332695391487982024726260054824643616762833844510470131963591937366683010505464002000111237613558600112688363198610870376262738885789951475392140653876010420306266466397745746065247893316881828140263736670386316909577295230710480593066072755015464336142422589786606085088329290904782148024405680543902106058797731398817270692112810784149852955713778777252109056891919914900488198897951421147789541218558275548963795679613550043323707501146929290085027151027696555366086997318815635362710225774695909799255866580170000577053762023499326209551121971546352908429880972752616974069442778227506943946725551600965083961889410418237956698474255048126550683791210042770584783882390645160638064924108724902792931669695397204252706296811290352746768142433897869977355411689118052967639923802720108689023955259102503077485475616024856445546797201529799910497119469309999743828901085999506468834823141404389368054151290988727629587185439974444369759412292988151050399135838305972310516757495034300502706686505840798747270998389614558072359974786793794774447742582072916268835398263853899998283499980084196857259100438733636578134147670646739715615281363459598487225277078782751853548645966650619016991880092920341591040152219658785466461819649546716009935719223303700721953808203123272437360010092235724101561853976646511779670768113956982966320510973376945864433309191837453663663145522466369354999812611935520328693569191650946949530852598088713604856436235781423866055102210579516279598167808004111289646731977754277655112151867363513882079768119256033947198780787815032783466458831058863905044847888428544159216636510552678915811690388009321145328511906012538566377021660230720169518589382519047464013609053152667095366954624241519952706773793266162771155713401250433474589596122615025644987585965202957878817780935996200722471056672109520910480421887207161407574182002647953508207985554578247491347704476629278268819695750752545328111348266090600366098538605505446948764272382613807074694049995846573513183754137626457621337591169209121735587226298546082883319722414510293273367052554804407056401548534886120770721029679251342058945610902293163423745694516528530170190660731134190378220125019818908024534652932751937003942631089294424305691885872870059208850262029810891059337126089868950202920315006095715868928699756426591479064151210637033851326970663870233826012069036076472051638584480252075239676380036743898127579894933091278287739199246928186481629532579823846975871404335719227524431811288216216899410139205770825231944272990859146816492376575347361214390870663189186795557969599282237038550451460788424509534179501630664160620647775770050032870411314689886614012965296875275944136052790289527674469969049506124425907841388337143637078920037618913318914027031984754595186155321600020074064071429396984695552562590549406485934125367276625415085978175430244953514364211608656947208817728001072070242008148016899678417556074342130384990791153933090082256838862479972712107276394132797309908287407433723242832781984380690937861647925881898435307684456944635411616460524933946226893799838560787054774231976766096032320695933945358458993753227207707047148075238644704354589268062736018528339593603537150605284874206231414501050068832388496558314352914041900877922504998925979761486488314165087163571345943587268118745639266197028927577312675078543404518751935879747561840857278577944034141160985522185419824179179912960568910446673267489050631197018874037160336108226218797229230258635109191596985060619532771157129447081273817550397495674229678460125631378535179581720769644251678215625214082195758184027251440260403763113448422250448017975635144118979075592773469196334601350368060897182145487475711251966942961801080155700113038592369274136271885076748652965461948879818695489227853681606035444307753620744665478491386301369940121770239218285583859458481611898062468337689622974877455254260736195758576377109948101117050252417251925938401450904552067268938087761079552842405034031511646624835725454502772531041674819275165802165421910146443382698527957790735474425605063927286375155370011594819351057501230810065332858749557526798578806181243443861428358412589417310721333334373235649654906695299334455754034675568134369329208066436724711199691327124720050205438517675055788727257067264963333443796812430543962758287781997424163047342284112904052263772671174909827425801128641262175043942804824296213323311527570168938070734934468502774750573840435424091014255177645125054970422948312793531924655909737218659258783105856438955851151956011862204431813153120774922423547627742300197498978237333681306792621146952725221185162648474045188308316405892187728145353892672818327814713433271548653491863407911166985858123385452876852121354884230296513525990433987287597271493657503258729843426145744383690926588360332783558814211899568008561249729328919895393241304969658990103301511709593292424091717239528613864367919275348534903930586194213608097262799037077210822837302599689850981905505404274460773701574862657860624182234375936374529350757594096662309852434866916906494709734347730072375166376069331147017917654440899714921927422757081004101581321282438803848222287640822044684860994690606911858289694326932542345128935919755696339885922850187706632664522475050316444130937118518190790228210808496763156677528569101857311110736175786324551063496096617733275836159459543507813253154553393234705126517024992841335187708105619183722492916229391082218207041920133263242926310964901793745457511102788832895520721240242329719329102772446453541124498982200447326482094385734039619183035423549075084214321359524908008823626741418899560850682061685889016529331014714907112852030576215889906139949845946418465257633115519074476792315145672908658730078318890723191052227104041569818300482424369093664838934065345189773684460416139976659280051240730362931439512797489905241318284634061599983683106377047002593760814239264760283835029146604325398093005557806481783552470974723361277584120077541620947681939135997761446647312533830177806047597582741827405549275051649847754838042238592214285183085450325669297504821426608545601936214703566781020233872919340516072064468719305932295714940211782902336548082117827514312558593352788494695447632253471049140679679832549602690749600631932652611147484243912335066432965862173966703665354250258926131501890655172509981998520987459542830709872180661421808802156519105620199866544391631382589452277831817135235601311806958483302606686552667756676739800899462105047429775332577960445337779615252765854397634514613013805629950003269348181077446889511196767243124154397445649257952309526757354833509722987720135030062997605051422151978526988522620255225777736044314897200782247981616639909610715828316384643128018459608614608713712756482787187695849110065401838457497479495937465839606647181964304877652581139189694717834727981019382373236004903853194840642624176648219490298601005975517046144754638928462485201192714504737222717781759308732583141710879113813574322228025156362315770171766927653594150163535634226987906609296150411474302881136978716002671420245805481443517552270331460482999234524697169133476958910275805864098049641368909967830712736862183349237505693456338392599641800149813831556244091518908024913281481338761140016264750961792371562985199805749483673707960034926152249338793877799152644425000645867760644498807602322552183410146216153743953151102512770322104013004832740308804420331803767584499149693375717584230097975060993569756152626507527473275080257140190764941077823759777344363982505391557849216896702460911443757660298249893843873537700569277257263120979209368297332945938586351533133854816441744828436116884778355167839576369391141892505341463509310982400102384367596893592900679022914842877442008631393065855695254104220555868954682617569415176201795015155139204736238176776726817512842423878115351658238781951835563494634922962864730057016510025783096901596918884569654121005485575512490396132573758761845907980418882683260337446074251499762998250451554117286946801670087781088693697618704811402756952356260237523339861849087817391508810569278370612857869522734416270415885624420468885637535395144490892330247515184787484805085725764548159388872548171093845782875889887757393893663460683125651013471706545739388777882560157537149375108224914125585218340185813680378041260081502305443729444522524953052309591574175812156136422934290863036935625930831688695327246719336396069890636582855599114854270132965459785606191953819769622101501893689683282418255279628440782143394560918472581591254930616894321120886759134824354067550356007231698430420902798965769087879845424596411842698187626219515590262075862464502311230067596386809398618628954389465564999390294063926459548970977694246347496224130818156676670919444489915308952595578023720905149800798150705072101331494952382981662085087140625509179791485262487996835007399877378268047273774609706264895053720262074595946961909767683546958697692402102969568558022530944178263227606407290671595905836107852143268854941839302944539705034052885685808521391139829897154408958120780640772848964565960176583564976986098898693086550219974533145200058119296891400232996509648013883616763563436080244356703465269648334232375289791910301734968332460522113720094622720446650060111043515815194371562247982141200059691940784455409180337411960066818966399187649394844007451883793078265528858440884097207282475141505710190582387503134236318108392357192023261408829082037852948096072495868636152745204524314488423480171534614815148885408079587211158364484352322477604662439966208041977110649555978592509900508353704115285042137453353058445352612775180474214001213169877712594098420043534241016961174428310590515137877076589536718601788446855020106895525508698515200251167976101768781775401584611885026306830528495607463486405750794166827114639944208422883826849597289801648577221143849789739059214170650864399075305634851584896967130910313290584193247442433817823416520001563180403779657585452177620137538264890291858397257674395771138604615746660244971988686345306205784195462944114647778080387324610005275461797151310217786945551959469035608483068125369783676811046892510774815306483000090016358442278563013077882284242907229424471910344184820174803467304352664991787582858902855760143052754377054612366065187688958148478075617610606719245477816490722296095179600825029090282459752462373962812925871369797528725142651045035034527668095720468615565873608121643845629277206235742189728485451210785424872424402716544227335243099250300987843213668251928845303410002347589665554035564898475275825582333046380274350088440890575831200901121787387855525875761337189484593178345351914081860491602156190276181606233608147030278022799262172896148179174217438649863341548615845845016948030566440910841881702976994829319002902251110649559800646345554509756459998239088066212994139186316467808542042209035821924266997103197109883244363411924031008975153933781347506460415411760927325333133379065622850966370564802389456717728186728823126214426509318141302530258355811080964003245641586210585080021772713742756572909441794740663139817288044286659133918816993318255292387978636466791653523846923838384773496824504868505823107501290144659617554339702868874420039197867460765804323225467474093481697018959704992523834535350655403646361573107446616414902977223755116267702323906161961359711280039728910671464625254199786252120437100667161594736750854602956026643345393273224265601135810545954173811361992314792047392258658984107230254329558837757702855176720771944258662705242732564770943361285031415703751101545901634751866154395942819516614504804871573058343423384374437286118700005071526418517769992189826655830536091470859471993392997768989140235977457484702203313492756636349625256200051914159028347277289903349179288792525685343896153137504731846826134844169680977455790142745793624503219924385495765061688085128355735282878774055972290402060745495012245219413515251603102834545440324882366459174832358403295792892582195411107098531740027553804964562716469224699238864470464752705731876600173129670122672935128890989073028339129967766638996279418267643589868266102802179931605213220169525179945084345381431461204402802598645470343924640308310777522243941993439729914894267528092219889512276776646386715234604241120011888724190870893874721551830301860767877365746634993362427418803934005470172608979040093869807621119353116712645586638980233694268175803563721071391653482177413322086483705775724178427036056331226553021527779523673469189368384162765679541461682518489044167278793149857953101682121338817475558184255712314582539069162113999535248521400336481428532781166717584533296094823724272146333053765821030137722109162573037926427833607692640382071379654638134271486307135712269248129337593864587797324290081508926882249505509335692192969698712254510196258588154412477241912353283853485031843809033621077645433616558406261114685913663727744724514182851387508481691500366690996404769105232672538576118579601129723019676423276024068663061401817000719330887223509323710053143329586256056666853408094829951458157903435462317159472556156735507975184103584830775570697829158551455754741973143988777371127523079943827192284040978494166313572289982619726837539889631045549033948190034011990383702717379574556558350235459322935579493780595679619708963355340757222904795976462710133528070944056480005669894276924149052783202774241136957597065097587066625087217938148591449510028494402830687885438346085087951065471226943399765856385858012830385976564313117801581855338455646196593864277988199365023592865748139681753826195041586546012033015637408456489113641061926028914382802501237143959428222024551537732930590786120516208878862061402058569203553952871678644232956530439342557678175811970800080592829250985852213287064441083218645272078761711620325576856665313809263385947629183243947333857926187081022984105000966902660300420885936512045357662819901617872421560709784978647915083226745971007887208732163391987222581960833409750881440969950138628731384560926983031967566095850952431846315990350047212439555664558481120488500410465481032627103020697145272831858277415797151784252596362632413837195164653521163038181493383405764070148030844015932094106106772871592356932729999722430233846659210564237453778073820462803658976397302498124021481217770578401331827927586003904016862018854918967249260627061633313966998393380790899248186975102343711980354813769853002579453342010811320272998756761465464944017587815406841501497621521297790622771442476284681122760937988929300332747339396252280545545346558583342767431988750511748119512853453969505393602746705185888494005144060424659077789857011085359220511060219797786264238267848723252847712981435726815280892304148845442700308177609516348293629973127718570826992895456341679353176103302297983984225823957827078274123768915775623042397419933772687330351238461087823061362201155347181022310065422462335838387111002436001727501575076426904996733097073218848243850223012860008952976718107155620397652558959023708988507920274151533063341838881905469644306234476622701395434376298719983180564366551970717416296752584988802486917153113242657631241614549812102044953256765273830057423231431457042838149025603625152777359940497136707681780024968019385389174023915749170955995408342955511170099571467437916389457629454638405955675245539150416319225758840340560266723981327665065059930786490871520681911067646313586840134918613836453267394067543052107031248784193357864768779717051323282997255168610523284995053301930127494551852128278133101424292988212660443391869752123345502213261882946384695716193714683681002834594453331356006284626236689226536795840539202048724893639843296449499388131399420896754912415258383972928055788718294168709902289581109757469519583486082635332398367677743338977039725767526296750787081197577002823158065486854355263343013852269573579497332733329871757113288098139939327113608241087945138781890037746567203652962199225625661137481315458405134306634081531512620857280300455949442097808844129238648954675635636117266841741310431603283448418937945591474594818670397824192098554503153171604469449565750634539519770850468362229212588447612663855435161318747956759832816861901819828966920258682431033560200584624307029487199968945366694748897155423959006564047276363987360972304457644111139052905733158245391579753399380115161960864250519252270628770548432508931080958584264024883887633186899943952306355340306014012983407919645967758485673942536227359223708529953850822200868578329530745321440816178376560003129543527703747112108347118294481050584834128309806868294225848785940361419393371253940123539961982141280459258058888662605549323135670997196030335197743512676263905771065600207111293382900321890390283937172799335786114199854216934540656354678644782957584026781371130133763635997487674042627847886795022262187893246725150977581782468671999429846803057438328424251663922628778220242487483192260152054010238305741874939108902099117213162056828136796730057153293530923340986515081514005405841923197787406110986861286609121247594483734411690803464845448108793763006414395926013503140242886940476713845975973621664057351962841759772132728073737399616328132371006927654189026257577255968408953894685337133552384118430517090374148680400847925332437848681951346488332491804283508784955708280362198069413657023248221272841357128574907010818905713251934186668354383238950154900507326277390463810698258021009815514948008717008237713800065482482132121781053249513752779295903082894240965403891815213523895771332791644779814693280668886016013607442525171642807724946542450673146869072908943259387069132335004148476455743996762343755961021251995756015353477785617585495703304464495661867512080510837409801832798283430824371568483393419053867938539938583443571965105582464837068981058739088462632341528145884969911131765932782128239722818140602500910901222978312717747486487026032826423343558565771098615163938005788627234613568167151431960648360902544174582424615220248526077279644686107257280506964228898511849050063025322353206073840743536076792797362067390367769544292040977973491508132503202821163744170734244900258682082364489942788361961569975389078023524532386704570505817663672668470559138711834774419930603945928633055459467008599455613977082287143023641488353673529419665132201601975683849876285406891521803711025073857247871156442213060630630142883851072440060874770447581505352860264510629222317458270468530568244449134225348665392080442226207667493191566081630543265954615068494929394386085134573632011983649106306038946059742112063023639410734979965094767184775562936906758784197794003524762856456637606330652167094239847371683830874361472389560020995211650616194165346227477918801317161148048782562139720137961925476443762674567011132424836679973987299297619466967690052730161995599360860555723551821260791646901208048724850381628009380124051626625718093476953275146285429183041211854247526255630295095527108612794245050247767495023345176093258132295334883436714822613845499599419405598260085600867766683982879061050794683029258446703238135405280158584195477575786619934248149300365442510480337939416118179056857119589624388907613818561819610020615627611524574845105483559258151683634943656530177763993382197357903935453993841151712540576388104588952943070471403750663526015111781461729296843843877961519314672756880748531573680777908124218339098017850306721769636568326117199367156796742620640889269463636871268822443547171913497081474148304717328908127648544285664134965651378370063139174760971881351310670145474341524382039245262535875699668465655121931699345886009042463597186812983173361904718248351056063163096322039080627193941523982074707347885685065186226646737903449156396944803915605526829938685209100084771454534256668652935044603237558944263006607703435430231999474954760314169960959028293913201395214760857802764897553026277850537946171103987022762608299881763581837491411380521252382088819810447675967777808154915000243967801242028536365138695808362224694221025820995987737741649991703429656510760618303456227118655939691636707245140620245560900294137387642646979275700206201898552193864319095954734904869626304633911014017713183216616539532313764441829907278509412340114102356491477479713142563208822467138618318300587077870043404944027541863677839037291998708262704336885835853922283945560379928978141700312042099827817826040466795590931951133901451324625355592841528118092603926939398166519360874031623880712728399434015469579272857852633986927727142144592798004673174214721668807482117127104159157490990633102847317437430085025823877765576007118489711441784523977548620474828333750322703447473066977946781979988326242026998629099831648008508165423263074347223599750820021008489388149548178173373601305379561004795754866652784329957080616614592489871132674202379121630486953996106783582485357557723688175808949695435763330699733527589361596999845260452909374315431639470585413195510438270313837406784747324350419848635618718192374217311679874674955413641092841933533529783423336478465576380468497340507239392865053977062503256573680846083498286581505682372320880820921767474579874351800205469741940113590659777645780771614162092398393066213102722227145802743293995850999589238646658891472165957932605613581219604966863537251141050836200431623605706425066059125670817655108993625632609783718631588359286698595765643830988403557184046218369379429498203091069432810843628834564534438059650692770324980005148776717610012522754794593559668754787064997736663937599416752029086829224464256421417975921406049807695508200418719806651426654672444242050794331781380586427705036834419818770440167737343501845927384247528786726791987980389285101862114451562484129514628867130361029465974363540335807174868149388050211493679187683498912312423611320853657450621843962770441901587199484958891027732910487657415398736353363525889004067814511789828898188701637020257343182093345372157316201622068596007082984607383543231402589740769656123599018837002575701261502241485487542408804712912873195309763182928257388963172870493088307480973255602271527426978490932483045047792469040696409838903618697038889485821201060655820929463615019285051442041995180104401230065031192520428237492444000613195217992351535587304209132551803341349849486889896248384969573452937867702132582363432146475751978113720864946879918550730364455926193520513152307650127509092332986624505108781386750924024825665468162788845824278233536104898886729340075858477976149352702988692936350512815906522474417465754616932679623082897546300160971215488481457427265394468435232029758416139024032305916637696431888652443736698344390323521479197044415573452979695319583046623596167045141867797824107577270391832536118403950156732492788784748585456139735741236370033955180581175353363636796345394282754968453531620758851695981751453278162327879963227839287890221958536487643391426891610717210796669727044038829789329319270518081752881693836873439001977693229503756396465070247923123826635418410632797784594724345756207072102237995029501084830265097360340373511255579966850261118004746777228990405297743410208856637684417424618554251146619719387356231037285285909350260551084545602059492010345429272730739565705385730128859845892679515647561120076613018566575088376378032356424596942596761577353183647083564250502570228475658893020330420017520167031494026162308768396325662819344318142629214872144762747997293402502866691784993263433111567826054156268199091300591964170343608690166273683755750121674049924575358361450437009663607456804726892173294383309564564293064214597099789561786798431256674878766958431711264984550201676738086530858595987399237238595508450170608456151037442006907485381759984707475448439148584141392563803152617718131833771008759444306194684041691333546889993146183378673630522937090124724892058075556509375072560402607333627878691347636202946878204812749651772805071384843957013711024168754484983868199584178962907350895654737698027315672858285482215249028901372439808111680976871682474624270230821079522878986224156731063134890917348959571573199489239733172775700279510867386157623089521065377872464018368487764963441851655256263066788048203018602397031166291913379345284395085993795607246436994708275278581690394091064462808847022750157957009789035156265738514981264542575743399630910196609390779621785485330098426167861956738911755526806141965934924470244522890943267472525536772614969721299566449601721937388955392122860953848434206218722636889336741798809745326547137338345166223334343887912393591540298522313738345028912545044983041394750676144322465844453114316588152408760736699463589086727519221236439899375235025805263536847389217460412105900046145299984264421368623939564030577168181068547130545645827842319299891710232797293162215032389641570461443685610458365961109909166358677149093519207306996194117413998709577348073638654006767169174063827363202154005326928738812549738253505896488542145252549101158984161895206102651584688876741549903992114523739108282217870288516582195306578433441158149671122767513392050004457162796251826489626813032420828348417329494809868884190333482126033520535825640613004084160119090915976786851757818560571086744851199059374260115452732620155956110562137192348509389862897106334734044078686468685148681310235872840765621535636336062287649525824460800514421581340911624852399098659552585538631047190420325279039248509830832175367839192416624233321786565010470591292366053900551349262104233774182956627471074721857577992546718834642065818164410142594049882195549149130236171077493295753104188051302456191199771004805864586956710498769876078523746800281770108277212769448280242926991715515252292526975990459126060359976102416391352001770804421158983540959020473673176463912249784128405284142739510525132036457176349056354622060765475700593329092395511743047175872423492495272114499228302154545392691530067495801326900013385062371469146918857683021639958164008260038106586601932895344469226972778515009656483017151811607565719437950206813324932545644813991136215045789032600767070534038770567242786291697152625986990395346966174004168216831042876080579252559232794164176380827768697189745238883962018726967728389973577029053705694906194601427815198458205983005445282405969840123602876042270691547986890362931312757381404989239166682793282675194560706296714823490477752674102904684873643586637503367810794560957140735319799906228581670656894293911320665737191020767784032305414753449568624534387475926693902159851288702853776251272463086169473702735941634088204803137195737845174839985048629541865933271391459151857280403951303580480028950349351996376293935448883075458352250610793445713996217766977672679298526900027248933505507390194985706867808236444566663657148920490628925620688601078613280193252489074251744225386047135157572264635309093640310003123101520648516212488343787638407889003243304521345604117402791220253433548267221955810333832545177410397923959612745752440587226346893605257980118074565615012365735976929775986920309751629181152963805875817180670936117654177762223793604728964086690841221197375635828486295452287784848439172668996956908905492743313199718101045956214841663237491273982219788732498404560896363089886470280059726877691457934969520080715787607935465533914190708404164143986256256852566788691128358746813340688850634714870864115629818166359287906245188907596052561273028495136764338869963170815819000390531975590408896766860965034243829429163104682727028589734018569961459677519952154871352282409070443756619787820883407171493989343493586781784242411574606793393269648686126853117604202858311811448845887325728002597139703370041378701514461851783308955138904160873950090473768659072247617696702978817874998897353061607318234573422905903438454283346656197787007478622752700795873220510176701735304045324991548238237261295176793445316083326953211212152104348302424926731503270595636591142079086555290329202770276232606982474010545633858950874001737943782754772625799932507224664924694961850558839990608686259618661699077859796967877764857368945368357632309714474369016945151651484570472457899086921045587872046520833784385108785720008850085089565709867742646453365283694200772852941717326206621361433828405392302096705600243748041459656331139049070580322233863388034100665927580171207819687544194774521474854255443510883100466237397007717995789790553338953349674478094297205118027875148170654049717909750522518414698334222014769695732777333969028948858858009481185376715598330486328281534933998075643680853177835782418520089879900058121999090214239030231981722838071855990865685958247000106826635393980971042502338721292425170099040927620916553422762400266934842496555276944824366019496413549314430474699319913790310691535228981577734184040401118088780954308307520410049705163341587610511260194858885554442671388888350256114566537017782214160232139577395672834018599442654301314743560819741134387799139549298910878453537824445374346014677759300574334602502380471487138137594073834996616972942548171215018678810613022700239447859223857621733470418943275011503495144696925374135412277600271996395789299158964405891331635053120971912292435648620647346948958587352475984889201207765216794882758362507380624116593225286556094709774557318173625909860769937531317483242781673201775259602965387437888347529037721659676724413185725229889852307465018321476918216037276984908662203696925470194101852573190501043505131665122848205489009777305833450094320698594594519082174661498513226366050464167691841812662462274372723374336394864891218278373244440236715792767544837445406371097909123965860321677109925229685816033908731628851970764516952492400736584310147100738541907177256278178334544295014957679873138640812830900355280296085943458493111574125496813041651406413674485589821311815012089571669444685055353291687344304267844122363613286547266966904667223539970363105298933498795760382820040536950441047227428445355888311106772295067369501522184177314376504687158469847189329490194843387202549774475166929108218788760848192136170023467744318940890583860050512016117443691459121772341235948724527148873895647176356932073021701599354414227912747355014568423111688942437466119014662572097835313179085291191077439562120372971099301748937668622637764572788155249437677249896854590669687187650355411150277581701501188543852728314894846848473110669600758015875524464098631059625617339240959182904145331527657392707276703374266892691808598149556114790244007167877023976499880021779864162042494940199466926285896517870940350171519794350756842003905913717659512558437934800510325835584899609229921453027069291067832124141888480470938228688362677675992656699688891042046953332810540094216440718022511608543167823205200789127175802368792178155459433795337165608626062349901146788217343560932974012472239307538210181408368028213347683232699712974269886217148195297533224464047466655951294405433679417528931109446821894112676907383559288842239860422505105355305203174719901553449675607522832947264366107985135042411086031748151797644064322657490687687636158377175191085774253641353033067129230963748834855715406679262423351277637589771038296788742402323293878124386884022638100300227251196734486137377789544929364871852477677322880589369607927967327696990434568093528018732745620094709196885816680724162267557876586188839225671772742014735610575993865687111614179349600840213580632467956203105277816072405489388200870527532650286948038490686384629464377851554135358355045414788773418478107361079580009106055196633958650100906914722081157136388357273974037994427993397737752043652369582040688982049198404067404371238603670741924084344569102127028255266943538699439933310356125018309727094227498465191186294916584500570208144446362868592781363205160970326899958410613863131359593574982057226910532473815567310103360016518456068110970712288169049856996991913367935145801322331314732845623966739184793864330038283365441246208618809030324203800681116252739930103295161560918036368665705392772448076114255857118842484277504648634123440525927409203564126557552833949446968724059574161955179019164049564145415767299518505145062226263470319639383655224846280269297910078343267533325996141278155722764144423982553680451702766918674279447761932029895484508368988049201745827271180657421123098762147638494440025536484269670094965497237901223818411639052744106903177696750034048687297033047692826482877595668740061092881073050208303891636727769364397834487907914158490385301873115211349038563467880099736228220405603348873447194403616809601188573139191339407241582650292367449409111169005551144556376672558156813750182097533826386085066027732806700953551577428867718623881033309794202133651504620184029317505079374602476930520034297205495731752420096130684596099348954607930339897799366227094691028828294513705356591612371032844267610959767387945524896070157581929192486951226206461326724550200407984648899471974584986495982750863273589845059471366397850213049425447199898324647931233907376434904960613785728452645073141207499472648060447521163573352887386694819825499271248336808873489863643742373003650375357997334066865010940116478931990305099742118323225945334470823898409241017025172959896320685862014504392199831800145740836232851661350972641361594709020715221311472976391009617838212849762151348462806419789429347901549170482255232222585210565769733725978688625139382276109416451769170394646971795213774401208278338398305828711832665597621573798012685438054104401502490514931517420807185425761841693324463457836502342415733244658050073000564700140858967855181149177596862767883512889583868801319470766435830981294216405353682037099715856221756992221791055425866853845357949215537550123304040749410277946873803414806663566395114206846711201498933259143025358394813050403191358729401964289150857559072204069612134486317142720277961097177027300224587576281593013365550521602909391411027394493341966193473201247517136634406626456550889019494287293876934536110972784494327924869912715694345836332313076449987023910536156056808897012986026376143495864212436812935023524302593813947464884854587542100927032273641280782584692832569233767738985335557073476933656871350060491230042298004291843883517357930930586429856912815981029137049952904741279349191659851255381069207306319937157313277747870718732371632864122989315094786189338830052798665084387646227226277921473527988050003531281063513207611230452989312373210447150806852328957760717228250305663848676599982530898819411601174342958314512789202412496087472309478606542404083173216998178070633456175515606856826411512519804573763826817039803154556897384384565119614980958096305101227986400056358999631633526405457958631622898966847099042678590019588951770437453181433000928222134135488283409167039691577054644957300524222519865668489072850902598416512010214105297298468162730636516878671490629289975265548522019619261661252059903897302910447391229511930943835993575899779297483931732104184726808635953732054478513769327752748853176752419390003092235639623403979618571665561562887972542042280949420540538380649976022884292010113050586965804908855381050557924667515994769729774050512186034655310621702287034789055259697400332564532614208662933643766132183112646398183475512199628545616939162282202648867002241204538620950436346414272758810300454920157562411002669650583371952247341790214996074015076724200596141966208645163815771398973181230248054739579890464000048470518921190203084991594729275468423312817126222981913261542970415171592492874656233087649481707730398765940793406518004104687142631361329533815909054770241427760699374515902449979902235520742366128888435603324285036871069985291962731476856418447659591118414479355647792996216827936816065387827384282060048871460966683927374951872288233668747772602204226103317339163892842105065868551635946587028139160035941157791616786643372522430832708790490681154161848372837916237529075537662716804995604950885168491438647063594457850858474119304934612475959783064488782837418746514902587446401154229058284481867810681965403705523713897807897371560727330201933846178570291774361364993579017046777313218385730105977405275424013820708590586756128464950812334438655362033077871645938176300276464475605874518024504290456182781707907487499530805760750402781496571197762033666900048116782570358877574359985246783684315858416425136447147562024983293076990274312994980821891955947249421183491008600540700508528141272555129831519356440297742879195133812573781210320171802177013009424706933820975747465746181004732625521456769150897792380657203050772402192885796723727657952821258973260692584418964647462597559144900276875017057624608589674548999533300613661300592756113049569568255937434958579884382807120178694871259400249512864018869766652912585634667016460883244351210951511028089865447567233523500565557243336620886937773851243460809585445477071415033717587109451698538245870470142572494729306284450929293639784270510592577083238756763387494638977927050797834181779743831309886248807355522251196886957057117782083033565821113847607602621526160229518746500398306359963613369189784952428978127744589773687768005929349939142369535971390192960518947256814855295176937677775506513141616576828284258944254152035422748560648795707684968485118408357976767147245223464588238841952900061523666670151814870249033358892932149723312769692260686849096033036641169214966455144888435174020517715362136163863079126934544216709829068186009726247515817173823160422685518535785721221099420400346209080644779873900914947331966980635622457922013989538856366083749876086780192691159070824373967570549816968758625165343340509221883359474474839634163281446248052105449407578322583357878832994983530326560054393901252335863472112147732551258152059931172108634065055258916080139932196496554850132624021733603251845288470193767953704247551808516702529807215284969430924444948669459011911837457330825942638983694682758094285278023210731327688251843615173749184682646506202925713494078415990922962900565625228774071167342289548840738398478099367492306180546678429304121092707987459570851501542281195269727288106611591830365382007922960222366176510678110990916425978338729316083801548268852295036495231857150075151050773561580191674070454333106796725927461323191220023766022702340114922103914033840408566229537958982254008508982528283420777451611955845213873485031511223077247729297368522593620681731189370088411409680241293703026523281514173544705945950627825257003548915447826458607235656764106489567700443550763802481838476923769864384713231197502649904409814817952073674698815076926428100200711890710706779658997708957189577141735279169706763113935009819495107232504085710778572973227279000863937067074197575213604030056276501853206463398163559820819040599742645213076195720996076080073784550170655995043168363960237949209277633632799246797309162556502466020769945009554619588282690166766450558490960038643545672200652838335118549794598933991155043105693868305396254808660919481636666710078861745700359184103186635006950478447919549291317776678993661981498627112024316900390849575114709899704537822788055722022380768058171849962795162773271678859706737225530761080515432497912359675973390480820825185726744646936241358982045106465962255358578804970308257969356092048600171569278315554031273951623224759019451607536714008879338158460018021471435789173892873264533269747938535367256875013011558967368158261842415070289724364278173206667229884179325979156228383230626171304376024610154402564493685532638465699165304020646436653579469124278535166865661627879894770698010448835938010685989238314768425462199124216968442390685599215559587835935641276748844959499899558261123404333608189147810238155884712523763929078785560988448223065537492994068341784103183460512861549930838775658402587523314810594536860541231752353058077347398321386393246663544805768359074066054464987624547113573894822464581707136800908330619106089922144491136614524836333622855185695466816171310441347314565847153867375166214438316566191059477535789386775814974507126791148173485932709651567651679370511668628485409846723966330161462319015352846913365958698484082024924941772342073229180976326376077777648530769709136396402647241109621538875164474421180491613180604234471042787725216162195317887550162315072192839674624601237797696610332997523713019311094761659994087917001596233441256929633405007900909335701176428648981269958346721621263343754115503183072847388408226542444219239270687148421058915974608821095370794787031640279148321106780332001382356507702128723926184623288050910086922984130992220027884473976479734624717787868160264336952163934149692212867297682365783667513115988825018236252198675982154879415012289961955491821290353074783712488503997218758122553815942807768849195188290979072922716740902510229244890227051658885734921023856723798284647061028940154300964986544257842974772049067411815987766608652620163397424166253054034451749200527027965770720903175459329313093679473047619953637619418656919464298426833027498452327040843974426561449946472473383301286563913198830752080348503902943423296868635398410310865268970517889421066707559809473465697157589790072655274234519334537764070345792015378640606523702455918822186109300410438342615435866069077905283037757841868950260518368270367889105461584249356759205252533628647168975115021813847734069354271782684647788974020013083757667107289812403594216881737159025945746541303340616075964925332677864457318828881151234449560614199459789485879722892446516184094035873858957929738706521944764009853717099914676254164320530400158009956513522340105198386035373824885474619800486256399940744393375909035027789959837612148971275542462366465321724138762374900225260354250535860935654068680158847814839453975063789055176160415970017027802636287859461702167265158548382138364917925366790824128639111370214974183032007000456708129435637483790202245247079004666758442590639467818542092780707202377569509749611251755580329713342761770859024645686219266729272396125215686834502599104517618017021025488971956773482700211951477282319240629135783311274550710424520788886081601015653356384035211111293880889447625927617604106839097456948382462411316973242527762518054979666173947916616267903355594946175376818929322580585891754835024195986992448944403610010729282388082773263504196187919787968280770822429693366491720983171602762357303234233730896592933307189238360732976673529571812787359332131272040170124265886510167858754646208653431200794374373894830767252912654426883626904874683906918067886178342484321859883039834791880180820842520928797286882347334770241404677875288375180108945445399632347886021981005115748771189964486905816052713689447526128380530408961267598100149224650030793246064835223585182107517912034359063942588557376179035551775573439849213676954486782750075305004532119094406739008998930530927605365990593935558880042396014107276120696335717104550609801769640960860562319093576373870783244278418886144663666413548327766047205854797102699408177397132832476244504837208638652031620114817317017648730531300876187067623372724491517159146176451639104172321070648478079205626840688142374232698379538301994450024443481454883862912088037529340743463580962036174249288862749682159505062044708259516160816241715490582674383766596656386242280691268591372204139022328020824390863880541002854266089543521883549839137289896005867107437998491478357005363408347491800639902746808403700876215858475955667226398298011076358785697957184620981338142354333947692756921060238722833582000842032208704221805989293449365783335216478456576726504782025699482176732788419321093048545158518187799889659003740188886046884920400664844992453472536632592498389658985378692080245117514362220045384391073561693489361409338459540660655825568404346226467047987163365785310957066453830634216898525042948175104942936600235686060059530665026164428802644988512892925162303563859073079002666690568094361571712915994780850388294231657218234238742736069612109344427756314352751673156518522886915119484806151959683126915705770931938761754392023121529293824868302307709494201468801364043922199192447289844116846988298765210960742584452069606504241452330218021638666549125823436719094157587063527624319239329228736611760890768667179517674335848365453521238021120081015098299804093075712218934597596850403997872995791431804566565657698121924303376869739630072973847574876456430885452129228769640192517732270099579519955469355438779070809095535415352619407072966036755962327799384706752222570932689690320766136590779194605086647261274362193913384979672755432104563908664260527281097971594074630096888431175978830497299814170407563652245667347687801062293441155381808189451074843387613408272158337634744930359004212719660219339043666106582375636565441938918524631220609988896058376517734305267577359224609769657533021213030801036494894409103121273384364228647087044087527454821336405126675968773983192013841373945074560076185422313719213748956403448299182580192316900656763663128500635270295408561782225926976661854483225258269452259894462455097574726445470309880065611138583976995339611556279635935758605872438982938209461409006201462522456776168675204435228937195905848332074527837757524781556465045875986488553020159707493010604550519430619853025587532176101451573826308184719398901583949893231765048929633498320732897741140195910439936441910039491722168813903709882406100725963710571514999350588720173862181098390367280486352683712623401147126187058692848460106682610368114307401490077980188082241325381228909077757536178062069844007480129679017496346674331815668264995877656857779725704449648048710969638422054431871030362783983899676158872855585029864133017404848969235729243804698906254044368396168733875026832984000123420847103385569562012110642996822029590368318481807927986673733397498918869064516956823095049689561679763938593909561312516212569043898994849764713705997506326943411809911008364522842168496082849513349400007823948455348083425011929645741315286427411389588788998085510016029103311648565259992857043114567186943375508242909807543599071620769039223875789432713926436666232701854392622518255744024934549195304120127687610511321548830125801995305772151607587769125893962710826138948969196300068425110114956961686010566092748290134826934929391222943414624355542850658339538089605083898198572736541866710775661806956037605818811602222588794096069138864017696666223440131428505868137054862669671886347870361922041966308686595762752461938637061250027443157401679119255036303619384152638846779983724272621203800475697696839418668831188288908689748113817537812830484217834025992290845563887557200696015001695892210115457049835099594808138212916650607414569535414686636171468294981292821414107234773907589365934125657212299621282674649908332531287239167601378565684225160350999323153209497281536099071858031551222130841183132173661004581035768929296062591992797123762641882881228952503699642724512645710800610040354837886454327371545502250879805324211767876352619706634907177194395765841306781976826789897923609636228152948335552827152313745025344705567602462394024207727161637901014355740992342467249789002612630190328965230372963826586419686606588745630433267292397020701823224140232814305370158276999822701791079903823210809621362840274074236637038967934930040549881470983522466246116488410724544623231066897296393421599579741921764242247497206006273451049628537764338224627264809857727138869645540134697039411333585933954733605898270311586183843223454536633380334639803422097163638992419536266125130633467887885281895589021937162067995517963747985842185898105480184036925130964722154082639938297451148777099260498112148754405357248965921540357702613029008160589620762601877868950940498097641738467839219881489060741066471077382102740718939884399776883063836190963093672884215100234588870433159543594734831882546532258088207750862003340332582042359528907476605939949843426768094298968235292775651902696778344414214723121335646189661857279698631883294579759547990913881404985604977021117666009392799764906371991648742975061413680686333890125243154425242513151977477438210730959907650252303098091264068588781791307133541004203725544507596369352437238507836075886793933555194875859953225389739566877635421221129710269251322314513692864926992851284067130459424833856832041084853558037870467532563923460693634093847977012864279527151721134854144058143044276108583252574539030056532966388979537540235106178697116879431832092919121493328172100308215076280846080422329168899662944734213939451061954299453053421074229271423413089753011162205509670783237374065577355777269461237992675446279747966459647913339115314300199827457565099936274687143031528493833400819867182541492006304811349180230582411388240714463326469147874129784992875313096848092042636552241065448973659727905849758126464207307966530138502175610939576162716773445406097773939973520313749682802088160276461847476902069070719093626729217117474126168890734512365181712683576043085800853155237248824531575691921302075414260124418625525845633618565391758210723857487466330567704318917001592667855015536423928223998321672117963606683288910921537904470179008837194945078011160652929062458037475291422704953892079947155073075737312024174252118894930079736865603093169339297202319236269872344524239736004306718448510178062825155886660116125720178433770229812670250067054270647493270024643105236161158013356518689257909758877593195138784278227781882379075038770201853637852173853878393046094397379371971526247854453192181753422475816077356000916195514846941283061602402874434203258815996056471781947994292431666889353458088272580834735913027699028223920212426926831600354188790287689834911522735006071767183116480393060803192902662956473564476949058615235304050902828218988918072504627773828840871587844165238040660674125832564474320797104308948160568364792694249394601144952639788936580792068261999180762459928867647983404058423858148862046285083209652619532306214610943886132760732194707739208059997662896489022823832954483630647555747383469866171313250190168150044905322493112266610558044269047463811070995580774103687845117722939294680961886797654950306553539668521458240040100477616626521990500642559753656190722118193060868172513168839695157618263778982623637357034300329895378839205153315216970953828794123622839098181570628502773566349550880795306576724961492632181291470683246221763252890335048264790672054485072363030343135642490973821400208251890676753154343568950897940863409741553881032032215929681350916834942843205455702164134641515846469149814062934898434632307025863306237343983918461916360001554833214992204149996265847000138353966078451281848511443642727086172844832829287911594583026643461645201049531191048024408800705427290711399698573661878002710565414818488202883554717676027638024924159007474315115517151896432831059290065307156500878648588355262565984453180354519283119985164645860504966465816935981791475135006559609157242485672292769423048815234209267401539422060793802920035339605460993475404283100764206282895069590967425056632622167238718781780453757678211222459926129796774465929484949819215527260741709384390564760934100341652577001089229375244915621489457584489284940313695132752641867894932717238911566758988496925762327437539684260503344019485505353475440323780566752355940773494954645504651866507653934736435374049290403217142919759567313126382112965460237526878234872381957477342565218970073310445074726430974967549056794797555089654998127825796703648810781305361433513695621234821749888696046549049906797187952053056780576289080168986654543419340122895359762672865011564633956878065963449905141348537660961871201517148923260442671829052976815027739654968078079713277623001326951751785318145333978489167444991630598901191284430154118156433949123759653624792935737331504928500936218741813401764507774860805518258170929341922459272709545224626330381698999601430026002565538026325955199948915119717303380591335189216901289375056733977217711263065748040228250441666332032388599914249670351226000646096500638072377592554962026242476286745371379156753488765711696401965902523607929852722196801477777706971815257489516782497527672092348308446008693466461670657735647062713406630147420838626319826284747907990763448861743070594452170339860749937806598928204550451150789285332106851244903500919349022260770613566069834839438682441850725318382714966723270216906932627869905863278810857057231662473915006655146914456767048670774094300074424578952334671022287020530932807643171674413893112160198233206772850249389322614716165011311658513712012503873092612178707269717806266615244521080129780106595861456594006606901609756077420648311793043283583839637701372675095226665757171737138359769583382507883658433003358680985120419127979559133910413712664505941045419019138532390145365149742008035618569363558607781608376398191000385497379087797543789155573692088572655468095088616941401595117493842664104512439292774848251386877203581129868763143670449955727300962519014674997863913477737191053268925628691145146756309524579778994558947735228802267926288004607381439788013557494544478046530754429967078868926931134510432692333273542685693663829386205810307834170493804524618992672507831623133335263848411643578633251917104462104524062237827081614607536678148152087484579545280372268838445145179055343242612669867551185682776172464557101225768379508676576177867880100793690050310887365493710301346224926193047523565612773146970890889004769258915716999641053724317663711116167658038129387249814220891278804641582274649121400832563214564823617676829424099554303927774168566727529876236878625739672846933392266551252823086587429639727544194956543418735549375058692950860569191990304792409809875090984824943080101172507609210325803990507849034689544945447967472871210718963576114956907556873939399013155596667009756549513036178664159193528638241561063683587797787562130125885676212940010157998911433747969897870559236421677860453436897946418724940227676558623732087707899072695567737563484033932120310854434276213007866239660757490850410839960779712079756465208748776848856769309868290857153170100838933094236702408185260890104843236567729833470304898191968218857519768921712989103095453089892996438909198679291852696989383722097923272019668110792758980472559222729819669033064302423714579121039309213946600872037300941604233157217162682736577312561336902199187855526379493278523059003843301587279508285627196622044087946245653079502204619942620735690997451071673256170054735386960920639528143007667896187622581055350880104682793708784274992004807873047745375896902687490565713245444823963510290837263808979200275320873724600614575849391931747673883213821344499169478003667870443810233628922964787884506251738104215730828690796833748038938418852447165811102633139512360671358545706191827787589680121444690404505591472932681871261201890958758894765280386625863132675789130500351773885666103617546809615438117098114587338604516049287256299991920326375387954644719891183215169200692217290148753602329940982384195538210528144886900382494569580723783763719170022181230721957576434387854845800184528051440075621860268301610460588876552638390208817969377761616979037316703269033309532720079730563800411025136295317464067228286514112895801209938779539938171301259447209459149827661196767017043604274506094288142777927150997133112070527212822683778466454411388742739063391005883700939101581581794024255512016319092774162892417594337749008121179066277252997745535161091776378677855643608630940458505491910855638576964161538575311624179207155072054397680274506387782383900423681236034276365044271142998910805414263691541437999637851590724924214624803022514850508210411580030321028140838787396340434664955636151075022242618147934312964243775946125996139866641922657824836872150850189876075444788339448868801503005106171463219435580405691919195063936742802935204732826013404760353085161856947676204436432405827146826046974581729790333616854827098052706509298138018375810309029256137912534998893317551447639860527884642774733751850887804550636635070238690206227885472065397488525197217435565067975963129378115102267159950203195925845712514727730350940346504679257324360476189015969675500253049134547138866486658836633832036830853329967493205586369018693951955495570829940011329436254018216774064079648927880281120456381516165717023461738214481965266328947407884964518146958562203082915264113682744784983617773769152094267408726020941586270262774418172365996721331212457840884898746294761938016333224642861085353714565113140301290176254400689620778851915254661442132458200948488014638670691580308312737177590052200721827547526265600038311319539434084102511727524418009699541492055679417712462809189372664269293335354169241757033277087056693387825523251189189952856483222601265128104814816547822150216695342769442308174760286947145260791754617273548526475448098257085662624141773649084867319573801466790402259965386814724623602463313104829334915733354519645855406468100372506376046715114073673186693982267607886453397332209679123989998556327838561103079178629237035232219212371825920821290492458522518190371741790062221671659279557500963371980023729140338819884693265807289188387442803097851909520799176483936580132371370794054457906947818798820326921320139254096319495031297131587443350814097778868878211551367565146698831726931609935016468421401359497475504928655847121046450748596779633549848143206665421523408221797443458546308226575577766982593157356373731712654841894818106890090513788730648812119658675513673086992496414175291209376036729751442920138069100741453243211358405423368322189000069448769158854291445662110126354914852619192467897139293907512324101423675769253496838083002135403140126495581351448921554064724253905028123038505998264616290849030440025320967769343445574978614209509736039219231414377921511596929199164753358548233236242617256858772899896145032800510983041974937125621746293421447342587102052458138148803800217477834733584232964880435153363068820598279978808870225124579141557887639882331235230184064685337824319067187892455607640004299988732749086025273037727372181437892864951174278742336576335270034105590651021710177120287613653263335008747142999362240329106662441175613934961867797823618987315529875897586585741833639227780475558886358418252943897541088758595575195667419734488997175982809243987066113299633264214721269172644147460304664900133178481329704740043097530661618292891245266545173631508763863344558909557299762139564907813337045968304833186087111265292080895482927420116641182330824999061606929087056821367944971720080410684780790450382517029433580139538146957276740790322653017990725986227761920420352660622605252704255659346191829823864048590093803715941162120834436301703379977227157927474448383083073375619033996222474273034680650746860982552041334569324836565318823925405568167901759939430322319182118510715661373205359830114185788622365594561002442219363671496949001429639818346431344763329454854046380555595978522235328388019853597098550251841937294876894732024902543951450476622503720297077955086708308541205454429612015949344848906740241074245748651174733546389786754061314486928004717982611814929126702011631138890738754363029651623221258070710579311089235038181395207359138124326595771232628103047511978664653720689322573901572754330140318809965804027642246096570468349435022725390759879897395087369600442881400268249251917321959083323274338868327410950871247112318734948474650041602015031402949643411079575133836302282221671938107087371060140848069654935663057431774897260542987901750743238596058941151958121617580912311053514521493960299291099335122372601004191863336931364075375655974307560384859822703729388888313569138350709940214871728673159083211526034837296878157869482094641976501642779684087439354899412607691108779863353810918976633899182057005960926783400785506082343371038283758446548348885856728283021426003259369080684486518064977754289854937607781454490217637472723330129341614317330679654481665370575523893567885128009815921867728247257366671420086211016167577662339533016294069475603321658649485222168967159100455666979621403002850835429879453488340917694619547086115224768454416851412472918750889108100013665780425811471067558213038421540917640842302581548732935872480740308019916312008441870771850374838212726289115749129232974578721081700915680954120188784362852170627075881004741572510381253527810367435971815768786900496495379803751342635910378430641941522558292069110632975236982628051981271037007419935052490702335605827799453854936824601053101654614848720721808730492503645279415026587896268184838886512831000895163695862661585199412623571094543140478271544012295404225785854062091588544102531461479352948648475681639422014587414810135906328920305697216249099146146543834743695658523731089669310987072756778638527815267241090089451181246931733189742211015049648196906614827381024938329991866425155232515409667015743376505741766570540528716016136406096594953685054070671811796963752773568884929266806729064232115927135931184625732799484767705224802587318966826958984483592651579165411836839771107048378851859235479673410722081143653635637408492448760870458649631553280837893344522830319135548010057074588773999885874232201250488017355841124317290203906121609661982395136423983122609898800195924196323438270822944801446162821019887048160577506558179523837834795991679722101637509255356747512745445842835468665351693662413986473794478349771599730111413771291407508645717898547724829952556058211019709997584778233781966827574993018440731896278384610765775916560027774013773257683846689909526762345543225107349201126983446028781181800653226346036492044606592883688643432325296273791996523838270526523363498383040676328335278769957453756620565200298538520468346730450415083470583278960445355710327905275901444772174255863421740935651280057799355233536795406614161021980091503022339195547478769155680098424183595492960145237837727358193697909799223280910804707906042230711075841229204348540809178520063676670876800624981072687580963390593541509650223937883211815261379840741800736560990624960971359065476681770019700694127172424348984272688362032968600720475458658232024370693170687931356427147579889126526325029294366289313219567948150921591047533121147552909569095676899110973932385475866669873440225639287108847562907922481692173767315721201801311496982473596650045183752757741060107658312669140067087969535932774441449292850995402486427061667134365988932548425490187603428611228437196578449393438258974415015046829508618570528979599734960884292841865176096286845130601607783367890609488674648412616126760665539422549182470266060493015364045946793094753677330450246652609132966305888768842183340950512591906707705815657716941031005258499560191943017703471850604727655700734608973437534136760545447213379315207659072008361817317536361475164969698591805255858655477152951360428552681581223315964245822692316251883824993471843027789414819161670400699975531150617731862783974402281101820750581794127355774710670374461467344256793910431828660345422255218120803920317858443185274320825524886705776647946100503225123980368303916031969382526212476721742538086282521277328799159872699741358150580905729681250474952276981128614523621112848371697969569101176304571316297590326503976270547477382046857516183125018076586241245869207998824909052254555748508053333781794985389689975010154272126287960025490189260270370148506469312596612178786682878636324470960336782556773415549769465479319929408909333214544912568692964722846426398862865877230543343973346263569631036939607219322240396130419211879210067959511890297291114502399104852125818815992483692938236151409996648658539208659850432604520566649959119105380292647630186603410871390091762323550507884259566655042939531713933750412157514322197231505377632930934685906217438282421041081603006320375151547414831715371413898367896499219830272709918751258366765164328843243388793340030063648608688868324095603738374177432501498235159977995026229442993424578570616030110348625391580036949353551550603096613939830191250098062383307970479619013223061884736987987576937380561192146313349639473108036620585914955267102074840507723058423843551955983687041752455346068982926580549351946605838876017892151955344887599264408089075440001049355000355631960638128815437448238254353121791855330198958678239539444411299611503741960205822793949825445300325658009859581044225745889694343301394647291367622548415198208885863927043968210927862486027405314457490966894631307114794544363059398352486863857600382483095311254728081787615007974152553525705445512759941304643831718299007597912191325771435121397472366132379511937935270313612616995046618261150265836259677379117510728469722483628101705970729550643587843055165198172335636378222771749982056289802249991994278978717234304801739140753304023278172323852547710048769797790620365430318065276855740986482271400406667316485008911288797759208210103544494616545669543422364567885270526908773230700982712433124211325558613912346245479452676410445852577954192537108051145443110360466489301204792785324002443668324471771390078276767895253587378418717426328022085023387106471995035617297892282717819580336608391069144045656353427964404890425092770661301110793362229067330552667903655437908846649002417352978411904518123680574294244493542542370529092516633040263321997359485373003785850878842387900264894956623291882031750887853881522088029752367588167136726614526902252161890458652025295374640399518735829433725443203233107992091372432116660448620725297750924448631244771665745823429732425660128143891740312156188653090329651854776307386418239502898798040043095054680214879918407237466802294544612653988406571892601315852098854348392076095816880363912589984518373826310572542170685096080018942034735238050889263123248583707412917486265228351105638668560545290145424663837967614872867087941842449129014294910624528521450368589613895542076514499763733591397151215107910034971426506838081287747919046264195825646648603016992139427905863546917113788933873180608961020883529657871511218406917907808036971019720577920884516174176003207372657898859853961047609118145444934299115414600739856140811545875606295795971326067754946215900295259931264461802890288322033178997073864864615042555466121911604560340472699808354911410085616518359404581323194715932509917347174515844827206536677286877887521687606532753549980235292541435521149603997134864961877693700296236705648582113586494736782511293837886478194870639490424595981894808899691843380077228583583809139816645995673367407637061644824092716031608559469495373993657116847625478295768552889429522043350233437554488132327311324483902838466495426295063400415049583564896395996534468965988464350764181096972340184166258018058929314877667779490439622798373479454932766507093123043143170701116429296803517634444934084443492988755020172137552963086800058818619612291847006297302559299969173096448685263785221327765838431792903558014318742778819678219045248327146712144853078438968235801490088584792360255456803092212476534372193637932556468356127699344293628889717377674121791437260526918380111144923497766302904070254545770346969036153655311436115974482566871811332170772276977136364080969145236047078584356867187709554466347739938921000684339706895254841018601738513471066717012675958958043211355598049235575550839883200505883176634765335848806603604563242064415848896395629645698850405942092619461709257417998891713086918169826675012147543013572311665101782859723311649127033747695292649018806366960188520684044533004570950807487430346884969974916358467568772140161077839244148195608905263974953951333144650423052892264028842867897476779357461834814538600357528501423361947310655814592569481758370742535864375701357420923245586802824007868084183242976795866817673116670194926949291758181863414606227432137933916064663194954997896669442565146663408248652727637743254066009413999467973564178200699138813696464949908083710324457507963622541735000139794905776803378116701767242917760116636131844178215267802994972056489150101969258848519129400804977735317757353367195108269326850101204266568695019687549542682172489784178679321891861145300136927709806367137289299001527809286172711190857318900640388251891415549307711801924529053898557643491776459989002230963658890507763550624956557881549687514426411021855386976853197905954278321951283561683694649676816701541171416507702439783298802298063370829278010847135965790559230458490631574990681095055587654268541734659405049153895937227028206083949620802869367718761792930400418069385185316748660139671743418355732933509139100947569537882249978484890939749979251491128013889510154425968258332490765108132890288659854017300479106886522211722450976368387172519185795675055211190601253953407406037944806259052025209322411675042690370901175829441688918209830977152025155391245885669969376593059793161560067456821433309359051895356561619158713335328687561149841410708597137977792811271411817535651057196190217541391764982340777219146381288945981264890448833145647152461781605285678001352021917488271653070808143913842157506267307284138410501145635620996156381741743817572034129999760777501782321322214415534134906914706793998152086846356490754253050121674857193612599285763662137542386016232444039589390896219593539957701630068238749881914688064671394738600888922575261500639824193533025565957712203590836781361903940478777899963304253445439438022029283863639309637588657964346036852861572493356954091007080097863552564203366192323520762623876245574813445683139527182626748609548976329803778539439730274030941451461923643826656931649523011480543466792514417101415673040882486695881119265931909798588317206278133103601163857008508213394902057916964451326167874461767788581542192827888102431278840368746937610853111531769053605742981368010137861358028896244602611644287800322402913322739087379800609685456164576616423859108480597787142647217271879942302974610942674741174794815338554161672634585771869484303892460212437038470485764475919282532330797054229163998963936396514344480425579508202892242248205141844121029577626349895642026451740200115095202578640411589768067563760992303853295244650915674720841941674684557898001999366981523150397414122786525746763326843937450820433556273591165179374099118856903128365380324177918081170620513395434532795803926993947034237781626604145778535158959740399476218029616977406360497680845148773698888841957970130596700389519094116086510185140307872255601338764361750698638095213834199574188237601696687180248875682435635678147872418933208013721817302391131923975661528303447953316642159904807641216760503462210733276893582200221889425388297240961338244576469866416685579299017059973461944511820879422659850944161246618143964695121866499096606077861043713210603491264337104638580821901469724394521448554983780737605520252723228366474857670120646500645366984812515875925398024794603039633373785451403199725848223148084815234199726634355257372716255636955600622559126140228190927167678806432186363552946933903687765955909698707841438176875724368179664921221054927857589852589526993622365877796047182785320045333489939138025659681742313689933322725685856342199067602235031417361514368137106567052128815108672884109923658680748027944788150999341573452413378372255586083525017965600544496575448109827123105743924453402066470866774623419500062859840720212033404693434547590803833422360720300828096213164895418676483267207670245977215578551805151966792718505526124520911176093198617094231834017813025974165223579024237031134949864568145304938917816302163113873303785262271067781498934395581693295160734375536169638651435666997537121280072618221039965791867546696268003426795052316895341946014887731670882234684660597095397096188940337756272204733048117689815715171688122661452227318670044408813702001142909278643686826767220784575502889852472205639932048673393147271381572236062704695189006692119176442371070615948269830238287357573147654813451678712612453077411040539312434252059768634387640352396676465376861280985139996061837263243963460336528082596355474597227498685310465371376052602354126295330446343858337344186380580555500749702578970809455004123036488612144058659435807659119108969159985081614234253137284808663715080377080377518043057522778113945454038121317171409542328770250016053209672317574910971057467453468291198264457011920950821932049029490395558810387785423187605790448067475063334794998423520585395923536324823526566337329583993607632669134010637195091539038518771281401596554937525857185814992236047814690695126492749677977049346656839902637951701760144324576519671657775008734915163868794064247570417967706994312195020511311487182581805766900319234018522612742551765120488683963462576077366361281317148679957743860881189196670183984656620304341029188553696935142065429709158963139486699038789512362537898663007078967597469100716262040422692141848970160799222398158140252316585740522776139845378898260246167253874090844453632866154984324448751707262078999920624496844225866941633566287989426954902206333352935454169477900857672071632959551370069466417164280178350309374313105583114957909765257303102516963603577797413779187618259136901623280214775636830740761787073212947094760470139107237155748151089147524533782649484547444915966952083678569430452520184645994136819252662220465782103991927132408009999184336010780994742199574821195575126137894264659651708670221201516410232589188220025322238479781911375173855064056313699904507544830516216789451505175708606304436691237160810993825999860670557037584885327097283295089260127978457122942247838423367435246318949427610644210029321026741483927432337307409596831923064887341494548627882628808410237777471853617353302062606576873846052981834987525757727123799142845363207286673686829434742003810723459559841120211404748686893162601378330422891699958592933732914672445459491701012287429170856799611915149156886282017898527282850701163642683617244459932889588825772290434876422739310067216117417476739182815592431685129440238378275514679264980828499679460944100748450273278291235233218878223312427556949804947938036697451150689991093639055101565851425465446693339033236199107256570951829809125385574367760038444536014212192060513666038021254967012839263884158307547672957141172311951975964177407386096855569176647395501543916216944937396178560198436256860194429351302190076496992965257328311321928838005952576311291894823912618773863635430670941659033563677693372787904693147299578886732758696223896376071079297701724253835473400429404460932300668104511766410929292872723170441512949694643611755982477972932010753757206830797312051168157417743770784766686475190578398672680743125810203528499474112004771980998021067225274877203520200882721268327029933334831847099645199076560554053069603128761667206764136082444439715986595974913934018301352737548248392250322866484657544066890797221826778403032934408192080271505463016936134833011333699422400398908779565033484490321832397053409844855271409770540944824431399094887038308691745249652864802919891600313312341215135953414097577295898545031368652878598285924767333540640300673280736605820978207623350298093319194038605137377955239383599019649258947858704900384320351466862206069608790717567980299759423507537595888802740615962907632402069874244550511369556631703037481386039674199562226281822186399923021724462258387877058851443528847458413363501795227766090883837646835306492871378966693370961505331548874407150581087594363098856259738534342865249316316242910668704902681718767199255420908761927843978826398768566129476211980756338436956163824426290469438496252424132832941585530620925582772905373730842706372873970857188992585623460107314829349162582162021335914371682924888432188693947929516486924779444523082408516864632557638892349319292356740138966807472751545349635388147895605991263187510895057032855354831999888323885191015027786940410675117778389697936264889631395344776896740611163234254738386581515925419789948911740426555966808265619075071841560339488270719194742898393118689354684284554363192127874128484830445602927739153520504981207328913029579673257212940683465515852052817460745364083541159782881282480944020438752346034642597142387959459184780744445121297728622738997851911994144347135801793237425156616096211026252948818043051855287652049951945182678900515038923677626760070383215555431220280369964683803080504760365051058562117540179039545973241730358725331209740545478663545130496237917017005325638613060584546231560513934713116758353833948928581449653004710889361557427327941507694634142821807162378342117970329025404288700028409775981211155355379540568607927834211560208690783737373041266940492783831374286971023157788257560624799030342742239175449481103166973777496859348997294644591200288192483124654304973581257192028677067730181844557666786934429749593901742805990489466893504534867502580597097609352156468847659125641527682063871534996364191467358794225747208162355036414289495126490106797702156979359714294076639637466304523656609310216887314357418305612917766441499128279204205335117953415591511816417786268142212782974931919801209979483674502964264033734928455607467581350624420076226405461401250507841781874824164811773166146716472512428949733326805537712034570187528151824291315241323266875091176511784985688474104860346046452769142872890334197198048902537058711723804683072870070700349686024456106828186425012457512714776360253011443098033771284585271725029752359304621248368660192637165826482151497461594769833071384274567569310858914631070657396650014496992763869387823646760855362563541669855348673864472302646812544193023850561049602785993018924346019796837391957248889635989225036076301248915278756980774941506647428203139226818615861637153380246416192795175843290442035489647803004199538700358887539855544694279086841006528655953006106482407000555282698236322234828681464384244161567449582940710080011375433409758971697138729028670006063287148986321381993378756059678287130869559567530263754561047883672597449968360510604092430656172258998982041134893808547482854287065633965154917165849236143777959004985846986081538589055683087149950590561933953916804710177146081826141693205170407725459389112811099660578460401671939501261682081351848402662750969646727566938990498915929948232235144883654753207546888016853326136760988549877458123754203532424524440600516066442471725335781419492001417253995106562207043794799311359938367752992903657577669861147628428145277003703889866416191956659591524941348318911350068879314482311372327180317320382044489880512483643677082463219609965495591406399173796357011905850421073378289748066931830197206843043802589434826230749329039013199249126396721419686673084058453132794844773552594509212432276934153640612349181185793441271393897189818643664821810560515147696050990942291539245937766728854243098745408518614802148605324850861586552341812708366860286428057804533062867519661240495818976950396559553792305200917395286452208648895532199922981270111770833802906365491537095426117788859091779372783807322481019103989151740917025960919041453452920326042450437410595100531529615419824722227422926635401172308672161394000459211755673312114591120731111341335776508719230093792399168713803286835509730901288399099278299448935513270545771388895009376196796204056942824526326930228951709813415441004341992499345379573541660309921505703478388248882973234476353328324479859604307152898552973556531610879249446268114093219675511434270103168043349158308118769718898394436617415997501362799223523243289059624990501428838599499426457599848448214575262715632226414288669379640933066507653353843823521571417367841551684103999455929100660240254869129336637964341888993392018003354718888360785453597276600953317060551286994440354393100568620008330654376060299526599578174791431607657609661484222233475531338175542961677762708191697751587625176685646361031436888435618821219875454689689398224407650810237702010315274536305769444230715410202302305761730653327096212565620034890327963797679714984745952979380630922768099254895218744891468047142906171783627953716035797614070686682768711628009938950369293938481144720952869202805085976824336467176500856351849760948068662735255000511339238684950947965001364311298644913759935368020041115078322710146478636627078517889353361874084172779303151881933994051135049796717170431240940190123221317522470322044646418883732997344417749615316786225948816418552309819154081473328507978943935532789788699399698983520620038566733029553880071822993587093054469012134775064677172827418990826279129163001527692436169835160729131062150277359668434376229296637088338668697923167822853825862507265302325610161832082646271462247384741430914004456558835679748981828499206065692675196559958937263074406633621163373484330624651875115203182982013981730019067323220868668212007159265523318186836543136604071351087289765990055580366174022588627675574070475936008117967282702581335329217748288831996082140426743232781485769573225437667709798763338366454011033557051763665803799051256745393505958894189859866266203017732173472200835369035159396418552207750305851563792118437984003832469276180201443586406502938812184424907778578835680272152226403255370148035558598258351905204289887159701829620474123502164987828781757977735548486559775530167886014298722362584848989208544636626688309239155547638150709517062033147055814830251641460708164600244238240261566603094665574896545657077163576379200448334905015202746536934624132222606894836631499166546639875033087753955704882088232568009437392387209009786709260754265097718168499676847167419388011793646229510953841364136986689883457883314929721096028873977493367779743559040832707643554442100248461593159323629645929842089198219689678471582362014206383420427468947129661651950718042803500325258706973653093073061581186936592064138198174692739611070826530460882769021882411757242463065402406095373105581815822414644510990909826463472921247494541482339699877578890104915803662911416727170407097224573054440420011437134139962273926817920330183424445346389361477165509070240929716711293317098523473911811601049852655756879226876547065513471951037933125180711226425070592181428640993181628855711305058269886483675217246066360797237207068411004788918456498647959915248650250972905324334526640603473313803122113891728580380689404100748168823652667295358671041694607807908766567523305265545058930278907135472014136848322370877322216672676087397603999841264141872700502871094786807856707991192581648890627008436050431325476103638290308703558050912194993847429255552830743947541903503465529978895083471711277020114968546699855109821689844828511270542012617258482104149387403550139238052797257220077808946560030376247572440006292455420391844328772927481089901531505718424191610958170363902664546146308577255535246941268824803257326845935818748411509832699920087052151550676330957104761051100601001911947510381602988997678177118138135185942721126078102979239383752900847289922515759723949633142066867990396762880366388573871993866450257645890355600171609277233155211455572172506842907004805234062863444641491363227878558692646446117205283958809843695516502969631630558626509793243836111546812961865590056077290854229519986226306674600340534506974218494544668207049281472553596255375707816813244435451467398012816463966610653287705653298627352122418698675319623588792883966080166737393040105470189838567336470990306436370886692056459919659439130047149819136524837227752664931476435896841989670348493798299143418636875776921898659421136656983683044146720173041819931248026847115700905449652426659450134326622363846429731543556282970951668364523054684472161153915234617082601998825754814321267955090777826125889898076367007019456655917032498778407200350913748244741171540447645735339565148425585288803367519537276006477683972924335282387124447628236260559535171223981411865213911405568922169680263850165353110125298541286751031790057837872103308384271716368708747168259810361305470954202618699971542370186137185138274038309282217756073806283029279801204194079846880163256762344652611168381393584943701490494935663644019762332621629258778726306670461221990361909641767002143398070238089423155782473278926257139578754936515634348043256533317094362513307310294235702216511226178679062825434639948520947066711676421316825601182857600115580162769605648047626956346104559453710038295347905348199499319007893937463961716431861688754374807942462223350912961750755136280165804952585245410167467886333662283206741766916011837155870258818408793458241449817419352446230526941393514293274464682896874857787628333175506615488825149611276279183446954201342771498910148043390091983289422339318250309470896069624326132445535912929128415178467317550965771190925695690986403782998028035532061148966599556504514871341564135748502085958040391231050411757677738214117212789982634371706464072432733486217337987787067469141535363244444842755025921286833345442042320452352802333492626077544325869214247899089493834193498025243553127912261466745673441028156931564973497907160327881105962010984680520923979099311642386880971818107529392395938127752245186698299924471055014063705730428671371254976976482426852074663844008487033278330316955053476196056957304281967123496583979322284731205534813067530732274156567822354785899966391340843877709611432211417530508292973079925432365706871769202976397772727729288657101661463230959291529180013617940599797201967503753564147475619416274489668903712068554112035959864211514656624168251970401019332226176172048269965430712923139735930685789702945564416449444272076881736447130777215037741585835475069562782796680138940537671006695314445933935870394842752536956616271469954137766740682442813530449160435756007782110618467342437774157601459342078859577354251389459954810956400355357746489165964098000135318241861897135739551576857497704055914852483315694712572093055488762908249583777007270508373813751992291315953871893041864603208203016168743969308356338654457804425146888505956693590282840653154258265404520046160709658443341054502018067480094382544843749382238578165568393218443603723264491431238335482829895869304427186618917725279334338920135244252101439247324132705159776416510775075715573717311440627259998129172402987278066302765425019847972824067740144828057507118745550681864639473477262129787267915199288158005394735346906022620450028428953094581336174728639377768790564459529908376773367417999229440720540713118778336636889777363550513470101776422426034931694556410490810948244870842969185546352127306553834281615847344638040563798768456980010647451008257931447677461594502472977127764954016152909795993262708995057252033169304713746191415709541477795181364356115432625609956524437035656163844292134414897405007314414476171054565984651235662675693061824139603390272792760673982283218807478161829083118204719462012321056477290971147705221543319107561555713973860256730818030909559957516845325152597315212367494280428435853597175434683629262659616410409565042438998297386256971324688211305826827161254246350244485900334536546760970863187162711315289451081815178860365003302834647914401041659855117545740518706782017836376771262221778531267078868202804543707149615539191790763602020687950947208183192815959911225677804617585969231717700137352177506383881142519110529061025016754721642533138958786156010661055012735320947173173763132745819420884860039060072294535702164114302161874562122373103612771089638956693240865930219389862737575187211530433169180805553275709382859448206985493984770901516766739783309257685860032818847126209723890027133540352124905518903750907334077215660253939604276577678293406890179604870026290394518843171690302187718333527516966271048817334340256107047353590228131015955319578493911561445963266254862426248952754417395245785350754182382207804152798458239120368700180876254611798578130711927145656127612308534015207886167137397907955440065321737754136118361824125490905567906236960055630571004193332621888371534380458187807910404804495770426157979208212802471281475257476484549581996708687981968877978875982928683808577792354543462204976175324500144582470492792098945706482068683884440884874098536503903172159868715140201804114016222299865613344310645492734792832577688792740235853399047379728056161930030099505182812687527807774318544559910463897659334273280639265614174799053824286784609782812594273929582599264684334563338213274961099474877098866036639191456450923634489820228819643477289056400172915587047020675062941359865592022646976291938985071188486770715814531306685370730552894538657945354900960205297266054025922898477098013056501124180480166489940877198713484173415367040418672789870015277717656264550565603536884233731272675869925673470795546341984550078557026531339640918432600605150216646049795518044497389109497352723618902503841320165361411098334535112248605442806884492443297274286761110624331113474132565524386289531139790561771030010930942483773377589887415886171553663754488351116695722723823770524363961661371222136965639818987968207805449262125453380541623494941031411867629103061319679783940748826268481889264153737220898433181624477289471076083459579174693346802453397539081519195779534977005215046297850488273939661011708478107826363480843482041172930976067084758749914690026969745062691976233732438420671038431529990146298777945813432216025269815714780558484135903280285184749548529633893965415298647830514978270141926915856191441580375452083168905529536367445823820794658461599411814239148394537472728978555282649975118075031986930408621133851565614868504571572858752105836400592962222650000955150858223926241869328942865929149402162913432347503783789356546905995182573990223910280338101910477219560345078858837425494019234565786419790885346213699635740955921173799447228559675558470502654381166928030427679905355386219204933357947920469588264498456788677114865275142239143539058595860262931099561472545160161047964327899923269928638372949411129080919498266860478391893814146037585782208415738958291031799266006096865550351913647884907994412443467526948750494021288267774291115563294257072611746821505420706446038561006489176517950751434732701914699378086425162242375544035400583296578995184185049232805512277219001845466630506242845411671854997167039458400582566009447692226697087080995758140275886862979675712534067105784154118691028370001079385135569889533940072772455695608099037347984595078008680761280073107377859756109601029980118245296788123353742885219973296124436497753327023046774037409481946577792366929727233713521914225922551885050576908311767703248778177705981009801470814836421866943069988504616057723018451135486526822234096648359259127839353806330178539816382266348582276120403820254004397953098431501058733211313794447144796452116121101947581688244635525397100638452477844001065252501347308137773832895123580505848428369897786406543550124845223408586354281994922971656217511163933018752475350195461249288867886680435100159593671671410156912786276812897257307172535805073547680517743263146859753300771037960408710783514889920647114573434692911075636238364545198397072437547916333276213418056670593735672995377930832259605619243473897609565017189017963896563945376370570062923855205680365624093980480883545125954207133437264975437342478084899728526688728609080651126809020146041236284675120120033922020780307226269995280238635637431476511706350939684878091607428603523734344494793797099905586350602218564732960533125059558146162274939169555077406200797504481786497073847618593374521544782511379541638878915141106949740227848994548274686072190109610950346308964315780205998876082822439230303884191936132339786971858291038760083983529247178670222506447996313355008974814645144540195442203817567715392839568759151685254760772935526995547306609672243526885932393732901993708964873069255530280021511058470228787639787660715320614448961211589331248318058797222559529100127335465608997546053144529157903978920529551851481492997975123947095552452603997587370808737318442953373457555608512439434433716673256454684287820124766840386204210175218349235920721131264282312163253907623619789870417552978649655881101049051523530810722699084808498240223129591488873459234515751183224679250572771726981565817806479559036787152178463621849884857665564919947719117640234661137234878812594761120857684639667427187722006762747552907258229734408189501196819196082682542168449918550941224511690506191410581497673711538891095273867826965601846821066796222354200104314513274510681011935415942478746421632511537416402060555430198503087150068495427946561434408290836344387235238821881161250461663354650903484190776245901062351570450186137844219040104090319315711404779441207375416654208969637264212123054943743690493981496280663666825597264469688845044228468307095408201485654830811541525525208760647189622520842535557513902777625691157812309895609762689262832175159715664444544713474636224443560679500567208975003800122367049746132841785831723733579212697547627696129879559000447831159835825249213999580838174536518110739952310523953315366086381099247245820573801070153112030270213165559920504325742293174167573960404750712594641534685624256711463664214284823911578738325234517060704648631139474081412638193744005347574487559963303503032281748621914802627962394079231468197046335769535899433271867988734886708149021618745390450715789424243951714719771342426677353530930528709114721777461922474149369145479333171293032170879499291443024371329449365696989781534701757104148220375263943966340607438740548775259497941801460988234439413358813247114036042371778191397116948931596738878920563708245130916779942937612779172409934388150036377355499393748356486764507014440329683772139628545909194716811142172514583118872739829198259188302134714127227659153806019030605388159348269605912373240928439791818755129918879268370045332577126970537324261745254482577872358391527647424471485157993118221182878973566538001939162281301952964937697304406905757893760126399235155375325051364215113273138761560313430769386183218902035606946322451384304800579323336000375590328037104729834021748984451616749820786470513029460057061677405869517187149512728460887215003172891587810252481054951939088601738414536540029313008812118051933888736369087505618734905819405145499622129733318991415963367122368895293575346727446015928346266801421517296634081077151297315472914853719580423975297880202396412824306504467433772029999166451716980823208890881226533373505629502117650944206807709816674383852028556130562355954074518287084940928833729604343261192199166176684500473902733268001035649736620088770682776809586477871351449557571935153328592304074529561398775859007579847926646320287382509302525672304094588300461497385317347533722472827189000919266170622624843909208804058683277485535444303814856924453253890178160357160102529081144573115465572349137954321274341767397744999698929194229446658508742977311151772972217577474745555930954212684568262324141193133949153077167947409648265218497332622453365461217796464826640160986737934349995595660196748827428107867550789648778067879412434689114090062308865833393698333178189058618576693514551276539948487185075587182708137279508181467873313316901037042436368610757140423098046212670776497040224444041462165821134691276577931228421878902710989419004598078823668430859868772885106260409570879943319333302378455004189048916809197009612004492172238685465743633345725443876471610822038282029432263682524191142019396104416172378135260898621348666991290102434184339468407691044888540047401678687221654211760169794286374426966240798357548829248997762624560571491749964797679549308910780825252976754954825839373335091813517986200219561127403205176652160612173396120335316441546349286683680453363639936745648065729295135130222122132124577733315137039105428120545551645426525338616427945754052812428428250312622792169309880329668357390445515916489335443416694474233657293807935687493708821854499308926023422020349652744967418878094035010258350779860246613522493830688279299447286434910255650657807047055036524621156791370715840614120988345155805760720445649930335987903579657836067149608459517136846408706885458441891941473606362432428738074241914494080060021265503805678875246260214042820196268173346488264853034342347743142399211072940494798952089906974692161850586598048052980332206375715190419493632871551046492614406161086148200250379452001230708558701151559278872707822255145357193566030572171251042379838563852911909774867329085067414993004163928900713049054469524483625989886063728538568296558248870546706100643151083295006157063815983571884915040367831059240758836348363359369595750077873931789713870512872438541858838369075467154859053759211614240014342481072553093968067192883917158894706969903676805621067389254378085378009411878865161993962709023183691894661158444788160224948980703072082201664219195394410132305291521368646924353119624363168553263016485392782409325624229322424917521276534631961492320784715690832206753490592208463607027742693251037030335675331990530625419035272127271391219629580801873217751025826654958985189428440193699602074728827010373649488754314794886466887341037631230745821551571956323907815847342464177408782798479809459130685761872979838915696438275952680574438168020059274527620051568759392126241589631151385343572968216836278070657696379260412806388859296528661031993933547692889304411598869674408350183199026055692511036586820970856718091772528122723391155253050713491437103667652360952890745911285292488636664776397601340336073153768049467723270234857740525003955876699764291646831429212088582131341101521425782413276818996212607332979071429163529820433255396366312341218601459901417024502217251103044762259924478393022428901378200044893870761072541711744223338235802559654409172776214293752106775105016573051686571650047959912875364348470953808512737996699440088322069004632682055148401964630222751914488631808356491426274566210672952666684341035312464991973491937020129973610350719003034021717214702152065569065194456330420406333898321037596388931289431926943480273351199057122255950570626059945402458575856263687420121385785833486724411654413697652869941016975710657930948018591207663437205903782663597727412720021434267400278501421566699903165048909080570443874143887200438158658394052324662755715340773704570293573215832083081385673842397979112733962326192606216678460393039363010736806257360318404921885609805770275393066768402265363114095029867936557598594717428856857599030656091793888851041165994919761156808122476945175727401872539149136362097473394918892053502029192791014972106235172965881786013187818036447860655577356186717056390599552832988279216286969324678972972730084783957373782961919773569606992143523546573148365568228091523036259784454000885447299759465025187897128775238681277555394456647232997993344053316395589252139005757987157386927641838851837123392336411649091011111526724280052443751675673097016354554582211262130175428422540820728661321612569316502163379043865116115429791335844695357288177000619877104303655617450475326624817619568355622801975190213839493496365621967461208213624376691992727779003016544873958710257033108621059975851023939961553963495932277571413378565057611395188511352903629917030076310481790537165402019998692130089997894665159679486284100317214518836027556235464224026500959291797880252768255121502341504745432294675346427200152926331161006118496246239764321398001449499476177483130611340421600235030335339165366531441428014642773899259778263385910620923749668757550252938942306868157458054470947490871605816885404075511134601079574339271168236389406898509607478008430162803727859710220970664935793682648189849491406143357831564770452416410421061629527402056925773343253374486716178559648135079982027649124545288781609622434541356140802201567123109352311860393393104357558411272191200717612531602152415842117597299788664572579797500862104797606600488981389695609803979844220881847181207038802743612714327472951623153751031541990606327003353985288028959095855931032498949295711098093237042234456223027369273859709264491244244599923862481937499503463739041475793575766242650084391469387387127210300886555185453964079623015983750418542736812973067687445387479640670258635533531094811597909868398436540679383297809390568004130008385336410137211889226868362353610223156933004323590333669209741088236312806287053940416155419681559553910863699660776778009218040248597901325099531243409787142114071633383779800753093386434476515908208952839513162654023843308560654801211357247271242054095951003387566169821939214813425696714431887655065507169941933786445169157437984860638536963424643663667280241145463175366514875890179544993460242948716531427485419560779708803371778086210779818994556944696797184222629152796769921904434734735698298465063570935044861942411891248211155044321881211973333120438761265560089387823204417768775241273920073820648128240226123199262186495900657549574536566565486439903428713848468586006752285031731097271627273496394128237569165275552963233225688782268734776602187575574352625529978113237434120738788529040225084511094610143005412847266908608480545079013826416546818345669806214436272050925042161119985247252392863358254574579890732918117973547052004505652636540017987752013367481515019461164960550666837214421554912275416273361589706639612217355582982090610155428683160111241116784457399534449781248704835065789348064239882645464961620533498742051017992088056337868415585793427483768305319631393962977618269644200267822084910030220021253437232124564841314229213336599375486490651571814814991202536422464039701396802783711717412539081817185271108027156860285154764130413211708096581652891865113253310506514534816345401854940629369733808624896272765941909228871747558935205727084082730636767163556635572611688308290522112966263900794619606430093415513112961168092571063690396588314444454535606932664787211254163794776200393075795038159935925552325105916035852123088941108914838522800304217541475682374913585518239794601335114806068360735490541743130040136713369857457400459152121020521530688026931435580210006011055425733017275226590549346350412687691254186969093857268510724717273790833410744656032555061530710256367458966421939892144999883599437474682199656157409935092630614163110167144968784643373840092173600326318955243238013126346501108717172105594171011594580743739819572194084021366771413681738807995774750579170140119582906376286391956595438915555978914138135648988444404753319832169172873654310868396582946579542190463142287496074388180399432523756801231360979629689874078589967167703090557038061914488407919837993859085399163358787234818746751933484880769808690356320624050718869965914724969259038199283016887047763055269490830028411499318991597377537722724628023317554134021333734983853990998830822300922290783628963075678476286780817191354777713120535982366097443597009638108391263487185645461787847945996530372684782610378696772094604504083442209488850600829278150007183685473694860623015867912476262414645522766373330710385588768798011987348181238475048331594774295468201597061078964430537701136359420981794667239773626875018784072331081944513315982500085802239969804142063848886686099659287020905867297887520177111991909575769698441737978090797529034546842309970350702165272701203487217309075087887963673466186797961460621651880834038652863731240655091497861142429240060762957127829767387166844944148368684717166456777263557990928488352915669440225642243955549376633326111327313290431158811250057293554014174394592301554221894539587780556851107284710745105132086785247134867189700007224552401946631793851436054396460545319061627356101833634910762400971004567781006470343853668541230587719328244185355707001210059600541868891329499456656356396863988454570312482885183698330845100677419904038076723434441985848470957804691651234899339289759715490596160091382300923329682322012077357782520066222514177711858138051683021366712567151120717066262522775380975581624166042986861023628778150891214684349198550916253775660618152037002427746431183862510592183773629715867048117240475300330031548167023390942030628589782413547920362638658287117483023181183895249388372616480582081919491643682089559247025204793049688740110509680589133641366226302891155930114058230609987005902282451060587226223634375160658638711247321246663226975698141347868349284919334160048148941335428252075658578897479254372353078912164372027775907973018510263173830119439179711927364087151289618496472520420209627639116270798545017146649593270117036130194282353182468063340215716503138309952886027519562776932304445601967859865309826416035405263407332706094788125373611035776013631594531000199204344566729142336977904746244326173511028500909611366686844433143972633721674977604235110002319230612620842245640926811578694517205835371585450225135428362592070119903224363578564720375436457331301727892118098153561858612247573126796322155058634276786075641401941571297239475476776046780824044428626419270269222812753239580967849210108438587924338012456195914014009546225758180901735874911047622747782068721667492016804515918413654854634208202978251407451847427976627540255240722974188920133288791849398905338967926371889721527964645551899338548487431918506099690368288312381636485885326316084277732636719163127210158062007902114181753865791162937534202132962695327299044020123187234271872520035779464942495372049149246948795260949294598161204835021378569685632315184728125405606381886269728253398915545777028074516386973264901719197921506567095046763034348678184026484846012042789987497610229118014983260550706377790901522064852328460712053266554088454674621220067263550408616710990521541088583563622894299007287794655409095014827155330752594375764423360960352424770459217641591268082762885077559639366792768038991235605954665536255381151051593143363446460896145559929204171525813109430706555335908512720239983638852958457857035089480874192177345819058434344972992078803977449047245486417072217673912301906040181320155631939760475820521811022693076968254202470612462980848750178766767235902048702586747181457671518686675541473085672551001954324023598389656184896806756334004936515475755056111161269589455708553653113702851218332327852099580541750919143211441028244328488855655905244621633080048206038074907623612392029276950794462275623872434643245171275505227655616866316226266916817876040120683229139172547430256239130168348853497544144685620038650539412209512798815641172511736527725973072693365321691264073724626001804751040516252822220392195118960264631106838741204928129829568155192824968611293665777722932707106351638836817588155448730576845102238999480143631432688280097133486306772625992259277679895426739594726779909685507869433092856506900494585083716063108334178290374649065528651804903053956921869898823395106275095638652809240246067157971909564112797295303928522117020479468470082793809240838469376198560606102903784584577540779604255833852116555772335812706498759129461895226186241129287547755068949343696470339893493004865426012254016406182252503881315187160699353789997784295250734373625681405274681490217389508637053246858807956789873634805017224708710504481598017073268356003526172945386456183520460717713081182115568258743776651445209778509992040866969288170084805062904987839049303810283578340718593156223406533917325435407912870554403421103720609966291308110848112589577026412328870046931012863266710262009494268737991143004336954101556205977302592831458474802650078400484796384358754248533498849275949203068660891745308825107329847440836989325647428501743343541360673342473236246558580356406465667800637490536392615698502234891317453017898494574974386052601342306465971997716986066006557637234360314196185719292705517530087759587129532068630136221227656527333384813140766793671322143815001523951932397898185235408110451410569001883179637322761450634139019764719147333233485900550612497608261371007694422189997616072106751366887237793630969854633445779635353961198410343838073341385604251824552202977590086079550453866946084680733957648003143272636139043359462567464166611031967999568206299242271636204226580880445331839548820044631287887786691651957838582139653956697964713852941188921612336616540481499616445129074346543660073540888929173075691589718480429408589595986713960930575659155418900980255714831595135120739270370107443383020579286459223208999736107702422058741656920520880994210579287042162455630464635446504308307606724837922716649004683714160629079434376509104908518807224578972754843363125345325546676061922799510916941764367793293402689274890076023414281694969025469592505324798022092488605887196957183008949783838817732313233081863311907475322144220397414973442964271518910894366759484457490027812459857895877148016564425275390892295286681600701273499864902101396367344901686582436663233744448341117086197004464838426849266135944032102766160496018446138004145171849892416324311982029402964569991078876664738154356322828036178674383764087981890146434001822607179173808440341072375667440108168577037615140431134415082761115237319728487628149038299925160951222752062026827387536223116811055787544457541843310202517833459659899107815765461348617086376215144446344228724657540244261938755610191402079614223500512655544933582322183293003553309421995226561530632525113274324294129673543177856254927816097401924412965758248369228720224932373027870047995791763799273819683213533562312584290044648366397979287524878010815544920959503468875633061299553078068689442232927394103857261619713191075304397184738458189461931264231036665219217027522828556425869429931598993705149444868568718321577146876774837008278862154701911200331172783447896519700215204840021648822805292008594189322331726762713307500374673461355033399013218041758608119079628971937085674896155166475435326425271846076335049548070902509122502571542923452908487694220993308896072976971399009962028850093577832804182271403558554215714216421799098960395752094806216142834310556224789494834749571172447607233081115215680975702944294869822381716039777609811489724151796559215504451449441188544307988037099258453378621388006257891054559564199592073314437279145016249289351470074276599636899327054404951392761430208831550771917451821622339014951082726722732598037330185052940667727736214030894002134665503436045786742603124831546500348001249080529684340995557345888925324200684451292490588025334267907248906306254791283480051135709515834198988491695504343828161887251053818808822054304142373279919254006522333431535315715919447188226884681565822009787708197035592478612355600959890798630833022286945854006027074316340180831950679669488000736855550802448740626801099865414782276007269197558543878206122484213009763146321492314287673346404890049419769195417921436098138180169948545548217051401278621266874959517184649389002067412054407358383869956575627640306070504631848497929629235554370218264494946550359684889470152934950622265976933878109059068362234803780137497692960172016011532031906536397072453318429316407983409305819803009174376834798244591246657454134994667291744146691562702414455745689839462322690918571264805692637408838715338810656900932807767373143641322156950163676500947570011455648117239206740889488206062465082799131678658470610399553174305601818429021317058046226052023800462076127626796603243805491524549419559658407320927720721703520301204683126383729279787472698366273918365411500406389942482571643049010989349620616639613526892531287154102177378707254457069754812302923904881504878790857094777487082386720049545478446876888286100805083516290814136542009181185486820311484840405818932921636658439786388513276228581737748590926437649143664881328909049148413482134883534117120820583814046815260304866160312916623343681165030720564558876512206205366612912666174496813243824964156764593781014585313490949864735138362288433113746313959610979478440131835094088833674636614406940825327952132428142059548233762324033066754330448027248177798073805857076049953771776433533990719766220553172083285357638229732205478595304423550398175713050955310557242832408839322477244417742580865608584375491639752822063202577750908117462238703380785931016842450755708542366145531931003419971413378693699997053301711719431876644140236153693834340111850981986080369748589329441849809674130108114639548376864157123350571206046055330755796489884788157643471731860726988061295689820009697271305612596164868716190619233945639535331601946830482392293511258445576494307689428051439390156342913210701624123156812753694498659693260600046467351182187629311948566542749871073682820509223223766931144545744863345529678160290201347400585728020363009069467151665877757155141618733123307367408818831913490172608007527583316047947211641656300903242855847800260388147878574396601607634278825500439396650490738081697192862905557193454850757740506699282520930831107818746599273326064178707984158978680858612771023925261005726006905834236066785631939571588898049116503651409261401625323202839620031185935999181935490865267547700545941803565148603736003585170677499393382949925299397780812725011900392816025574677156597028146709581800502777383549502182930213364998733081237710897476489541959302067308766329884867334732482824876527731533680849848971823374057962204272173228397474778026472687479622735472485425182101514461468287324315083833121222999326752926071719008303750711095338983749041652740264423856689218780138376823026523082670221267010214648071564181718875614257808826949716276297913554381988581141137878837407990191608827760904250503238393514573421839807517273902372912877772745022006149412203101535609382606911315147356386443990005556610350088936226984194153241847802957904206231191402945204523561877859715950726277994190011077165231472739269668043826654440579233772662759069110670531126580060340499114425919014912188550134762593220194343353984366401141503436565090703183999306351654711027677729920898571613207863449983648110054939757744510998334350565987306155621611888883941792031579959469981349777407245970138003490808115270921290658052560499920496034974358617969907735802350344537605124109968872496224782744702368701721750163699114199322466146111488482728269641104853788762080580891580520671506557462648336194532999094030424432022339055463282240808650745191484296937688469496222907459315320057438891747511707214418549279124705500590297578746581272823478006148898043162379506298779177602737536369973874528944109898244529927749119525422156932986925296607983365643630075029982645627165928895721927212840848945487626557025109536522881105233127942872058459843242739680438210339596876008915576663678216629931639632268729742985818888504933016282600287989835942175916767184840619583096294577039733492130155154301508857956160739878543333548007546806135498209964246667322996938308449901987514954880698874051503032261792213356726498592490894602054276299498290724258207884832931848299568757530966686603315623893155456356433294601163969581737697101009131968290811324212384503648681430487532979495435150440272469439147754669690777258215368235277323384789578962734687380349362413888555368154677003968474324157412232311919632283960827361448274417934374896313752550216350975608570834985408555915201173643821724254985930879250802860547667860006530983239314383415291944023698660290622349509312007796255806808360693817060574411209662377710477972875786094880983470029205518889111742702859524729379129799913606540077726858138479198654242987019871245493547570857070098459329630803820920006004048162114408646506185663344252270741895574265248145548704168473146199307606038578561351262970909203162721245608157232622879336317217660879058735612465697282593050464691733346431095247678023568242687658800262226572955371670959958727791858174602168544301706154255713765763842089502230242502126815872755812586476927156742927495484820794639737062132282063317250698400282022230879146694546939644136985231690984557647364386932330353709837256379639311922574239282860577435293334667399447991055946353705721439831856048508541080324668851065061137689800493231078405713067955943121432429173811002354224662714255948385541112088597091376985964780509532300263363819677398216907896163729903793113065707546668609222949492859654675552033182021867886519744799899197719042597925375172936656969967523242368431470846691408309177617607477345809719448540970607579075997345941768451544556122755457578698878692695359013309628222838992410318974915664515764328637218022649017351074089707512268764341373695658291016309343380053084158641000650630101872516223527061279642968382103133032526432997209370223329937495455118559901820423400980069236502976161438637784268499014623462588043256202784410690699867686287330306305116151055736981697203799045172026805974306363547886515398682342578052554495769507512611937534949768230848441953218913667585689248149806082743742886708176686405912488235072696509843350098327025536941958737815718353039680904975652696634734005216015549327976027245431490336321538939349264053033783331287733119894010685040461905275499129651032312043823516029883792408003468033954868653996694084693501790096913664237824289515889283552400714811121670493786136198879034852008577398457138088153987547549357438906230641667465872852716641812481273544976794830456227761147930544272623047513537612618761901358028733003922609742372247394895305997714131355709633515600103987276958541217246248534360050451150504620722987217998319651117660818703613372080720008943213549613021107677255206939269221436233246578878044933160795997293252146722886832375645566518020603465313120231294728279715405061278104244297436085457435995372990090928182778825709654726040045279057052000715670325444804830730509089372933532176183796000181369824549686383482850953841394332476648387491620190439193237558173397478421596763116072257648665212566699871572982648129382121491191499957264036038965918832914261968531352722711496405360870098323383760215691968401965348516618575139513439163443442485600841980599306307888804873056775015433529083071476146057269508301876004628447907874710204750135339663120957833001823448823700982979321656360527893298419789234845171647141746224430520158031764350837547643699489685362930779696428015924417418979171474733389168817429730203708480561491160171619704692028334354584093210774537799449373004645623364395762044024620088687250954977944693480617725584508413954981784430735203997244224770267241668524753081563333142645094845850595596978363412443952416909600148933978069862350702866859931317179505736073783259957831786078904904704615401104735555106219594072328045962280818311449686121601312052249389147149328822802743024474152182988561106297040164389174157932070223639397495659736120762384769951663606941187678299757332150738019667749517232461370971166330655589117533605243678371786002513837663200746315154138997642773851869828431867780114077194039892790893911964886128368619511952775741846415713772742084382291013429564673207740839582284316361411786233967068825878000186900884926662816620698387227597262021377988296386941238460475391076302993149239759089834104385347546028906221479071418610297937848293324315964757947442134178406115514032187282196519239893815442111268184152216241794542183010797126860413986437456836453097156618262294614624902607628371315807207483236704124256121665494943877748702003007651318331360248562400672652684265409426079398093270597152713506064460041555769735659325411996440996632042466507661044573897533731441859899886355372091442440440394310929311864668813340817478251441070584147566308345362392613642225465536546520074378659153011918783593014662832117920913142731763882468589172514690190898809391646528544174206808337469853904667877390284241609045928692075999641298470908371869432027590924133701197505279453721742018005885433166683234700601013273640480938485215216650814236771414028881091453444340973403839209104090906782338432634283589655641141948059537845166480158565168527933719807589478192778470973373349959452646041357824022012274938170737164884204315333411885850520903509676802365122520238738341531047903738903708338220888646810737579952078890424009464212564250544325084171762614994211884941096824597868772834479666062363270695793338345504287378585344394616639314273974992548036777504265234884612734938960313184762724843913791469823432794350416192994372788058979846956262231202840998623826187042781069720359397606415024307786003570355159377363819260095694260007321631515123593220995667813822236494917002026677386603490857917105579662334714152476214354157782215989961873958106993926203264707534717152806039214735461122899392526931933081588774331371458038852595542200403178080136389359630824575898155496156215691451057254238063420257575249277070753872990074479701872583407442313932094088278395131247585994266083819688300302194868105441654566689683255776084029904242425105514091153441160590217891124883088432625489267166980833096554225622622303019981773427433703113825412062742957003650177005053647936691402468840710718628326836338611688573775788824589107088710108991828099188497449294394775715234666192544535531327989250257581234728777284707894916193324835699572525581304099398316247608139731675659707370659785095680507753589200645446885690213806579935231820544992176651133344841512166570982814267990727829993449317609549365839545432414003096583433035011392034807901316798872606410960259126003625624416643865025305693776655519307989654765663321519304475703352925141481033903556337964941763326631140568668860854154526641197317569529783160042873465788506405943609786922834075185773827498838569125719054970265694451005336236754502058804308719744492863329653480198519100937160132248449276136316052604992423379010686827386321107225223654334125278175368933731432091774778649692629238297477917210741577102206948190246140298130808298118862360638443530566683291918816410385777589792769274494977753207855832674272134137777223790143258302562677862874331929212505009424384043332517320085841368963192281209585761166928175413699499550125185323651506648109880022020737564521987779562932430418632890877807781614502920557201082272862787556902402123493109518862251813686072686564144399310466446897912600797699334146035333717010464637622695346491991509778610638431718806907860323979871456765730900691331897786984616856480105966497979992557110194089102470116887122030106630660388309511631149442517963900177048928211997206277558273323976430492270928372251898886151977719213432907116275751038059940023847515029454374973173393690456637636134696861408306305625735513247675865206032266374590861865465288349941381391070540524697310199814971481995942303676298918809779914669501071268618318032779091098698749892359582989918686980999857295611580132079852047964918551498683367735884517777766504678196314657871480584421684727192283499782569422195359349944516228886356776562441109848516122532898308290538510477018893154078811625440043989975510504204551104183997331930997441784121766181126579604747481979885682866024302908762991469212127533778242862052135216154657938030258074419514936893139367223571172869461519532026510216897413596949444963825021496299843969880961102474061799120761886404232457491515991113882264865111846952695541791208945203760746199834467890484560060819858263623221108503310175607089064735005439730079553796035526591074336099629540430444118854655604665159019400250799822183643345488364817367867335864490327251227226349020405136472816796265169564494853360164196466719821204691825094024793514657890566024938324725877888209806541921766434672785894364261461999135687310210257040251655999208986511372190087864538957472427373533050672532867482548395495565505337030875544684029119410630282406667818481454290222124167322998306729018463675086599650875748930140985326173028999311872811467368099873509967821202109412979590989966711825953116389898318216008506439466595834306654058733527739151678954093571366986542367300513634940650687733282109903169317261963677119934916131601132156807211045854128853803840819144857870923144775409197565068679414556974990640823663770983153744018838289236245873088437464488935187940958270194497477845273522063210234021502971665688215072479171951950640214450039902044971561338697842312015326206041701634547784887150895028803624533968940226609244807092973071219206980527418274656423640624817376305377014402974074125824244724365460149310616147206723272305984424266719509793201206583301289041879569987383379493512465573362901802315362275642094544808944622632835520972094610731719648336696283112082756249509315718259034199846578390117101230540234359911543785639071890977960124454439864596882656907723011610627403052172623618759626281330217791918132636900409587499043345239974853058507094264285545153169110272462815419729567265765098301818008681081113334434436970209312729581714638533713626329141893801628752446112610421253844205828837910813323433241657268688561530608268659002875389610140292855426327790074634016411557372807921479806529378462269766057968284377968773696445301426151657141723449973578506597863754837316184394388380190295777072286571203552842666324446118436322051808568207960320699475730127040649035528635528055776190279570249451750055193327478826418548830734804789356712194738397726554225119468439396841719641342223046691583049912189073408476404871115415004219474923859546899216776638254875589011329500823211261171301709432482961302653645076860275909297136522196845433391820109064892711942016590402634109118703940141480754995411134999436565499642282236640502898653816767606735252118857132227826437735956807729571424951302182907263494128846732190734648388784924869727738506921023706449398302282727167977513391684192169163647308812727360215825249743178397448744028296853113431549724748319269232324737356650551809707632516567451449571374753398902746178560347410075551811966229469097322285732077655672666614344803924296803547318201083613186816094798744402344544683045052003673390866785666459511909133034079420792952401414127567643917227763285295215479000757311997988001423184303524780164178196953366111898880523024500939518084535751924212178999025376402022437489832820086416066349059916116849290673299399248515051724928835360346842205745588709439888409241785253492652219848892845632982041011810116324918623302395357782973251821417081357526443380137896699237049090449341847049253632179582765080900286837898773111263288663912436700322285698000423213692957887846079943558575319654110774036874866871937046995796215952543649840836092634893735234946592130656832979556679817626763466365245417348863062456926410211882719949802458450925429604081404651300692778368952901056041674267774426256234605811681278686441853261084739828777232424410456315551625271696503812830073143939913858290570873524933841243708307395341671113717737295782972581777345290322572570725383074314351969907513172211286549364682753911336486899538442918166676394104957343055438566840401681917934365187148437261163328508355513213323335844391964565261502948616090951759701354619735862190814495051958753279880772087144224610266100087241340377405038666908099213890524483321338937618068728068895627097952158495506815436324447817791478713337972287810476267971864889620473305402369528690643280130088641388332775562851248508299662588589012513777239227614617136544211052055627281332555149410959904528594254429679318049271658712108755570895540139161017933769866692372806743731436871045814413441576297758229749639764269952499919155084870397643106868757791700168686146431105307096760813874365933498794332789352286322044840351132839261698106365915723594722034704365719267773553509759224762802117126414133381296066968905547964876631127563899050814121228563288817274254531752325300395812084336532122434301862700830231812435544321374868971932646463272032937147568460381335844290732503848942635789330970920752036017110116141157587140036789583978680693153604999795567812579742978447599334793682212916402574859460171294452788743196135976386600150681147816375918508631285487179496423672135385099008881640064373274771568150528116138355412904926740362296317169166776075652475079041009967222026171736557716775799537149766144909962849001516153300326554743492068301801127991896466431254772576303730124946426182485430045722472523731348064141027712622698420477972315972256334147586867209047894953187723259366246091105074927844262105728042709929452457550711750489474033821655449258410534972023424020112954648015871570732099963873799091114256147984493125810058328952415943145562396197681073192346008609174565634348971991854647115674731759923247492813026506194055016365886859662823743284369514361359422038779039312152478200618714885284377841774427427073945078556287351409581141552344115628626876932450179460027493460492703781639795715919803561494265360711129362056128974626647369400696879737380854331048814629503474142136978012585227969604353087632523841044687723295825756619792540297938253356153066074943453636372859645961930996397171283776734878441475318086422991183026158416635097497433051234159279204034658661159997200034505378328129230780772413958772482061162036752807934400810373628091655911438686564892424935932115199075961551694772244824949993170293529349283404848759422137634545036737685529901147044754090127787180853412427966452284992529940169797397135535057891207031129751815856611801050015816763089679846854461319663832905859917049260324960557609528084763005388425357448158490502442914239842469529623077793664062228065691748077724856715686131219726394581807164111094049195416232026503451922038463567803803545328819228107021292033964632618390107928557299379218947662609474991564133035458018435731023845655657616283630784437178760019306967981929630480064939802199435425891162973040725564759473842074163615770357326233208776410071970921276435961688748306234948387024348941768696862048262680405155179710864874477778956240048897537061375165274028435576074100801761294308299556670153911028577686837948354572237179278553699553127028688538828860120033476305585806239010020653575919117905192520454404962199545616485254541255744618042665488695039133107714355590963576489617785846464747567281515439970017650355393178587868068380374016805065731840982364680065327000741609293746426975153951072085323452443637906237291239099951246396939773264583228042431660487288086798383205634992160886677935868304012466205940361729152879218124248505891137045889255823906363460022483223818874039995059081293106104154429917497984671599019528328481489137475868264535349382853728273819842851866227025200418550500263039731390318930777274078293742859933371867433183030311764714345782714321701719850076030262828814171971822401081392621891732054762556809453845699526277665584582634798374047627173474509258947323038146841222144079020387450974023429946857202646826719551167307787216855080475941743334745496171699131870951731481626362639558899514610790914744917706871510206346723880298733134811301139063617734990675852700510073345283075256210034405754112163735715823096636366910053805873783733761420043406144288175029903067039921388346720064230880125156607953472749151727561787948779898078533792899158394499978125387483772007897644904001618601781498266070053070542556150324174845891659334196429774339900528339272033500719501802203277553882346900591402031924317880592059162054759967929366144342891745382362379690361892884013689555037980767176740003232972328058293463095868948822211643474990703883861602986054281057409811424920092643206705563036131066300496120317479625253708029380121923989928345062965716560964968938997011076656499125355777926004433045150724546228237069491399199852007107702002717888998984373305125519372172273414521806391806098897635364075514100755376515599592609398179934421431186222014371677034507063853325308712997868536688413950553301397726845343689821851493895448038367821561144130952565786124837207396356774526601568566487315665609691084296972867835068263561045995792114161125490048550916457121267196578276353059624817324350647444638715687775682264524064850599625023740469389646088555077821378137931300867665484437768795906366805517008375389547116985484548502107265358329888021965958527343132361211474726219115542008302932203549641650689302781377703070798463883788227407426867734330112119628092462221246273291446138660401062640516942324111289647127440270082020348302126854553143755514478339516024998552735218405998613046581619911787408802645822520563456287928335135041961323068988535130048665346915125890690578160189202164160383074484778280724276449065810452182956884515987881356711304812413854144031474071646155486661559821427672864635365582788698468228139571553527036767991660010335195984755763605782628626942691638848623036735910412624365038954224693488139446452611502184256180383586611994402157330119712418485798619004572761136233205076999121382759001993493748037191666429716018396330036751501840405862667628854860925138030304067343372458270801700199362303833787074463508065915976501799740767851669817801945881638443756481574798501010889845507768017233149362223957811073555918816365813513875545168352910008882163963650360217317829040593613915979515312743891078106952355901892181386501484926821818846570518826483557360356297753435735280121798402031146425844439791301888262071563220148241948129958334558587978546408827726623227439469299135424297119060062567787290637282245403978305246641645875603192810861510451202450774397552574840319016426893595237045254812760347238566923874822591871975629946780018452482400039161882481354424063073430525740575588833173832324454210271589326006332756831183165929208300783297056561177628357194513282605617483000351683740045991205928874239026105234870851480675317375238092596942702442681531611926650066288065506616832931867906359612590720698472167099404966582055316782334035957773600210701393228765434351231985446554573550263799565007637399757906275237813200030986540452026944064099865832438017190299881652348962889752142437293597350506056279652882405122459506180142110217076340114716409983356473009658156349041525840596654179582557616392408686111951287673835677530589929261376018579668814994385368422630613421346539187984443307344313848770251638080596535282808158011139247276524798545061510746971288340500714968422654939823175250286547112180578843283916589481057916131678228111852430719498730629870310413754441583367527651405467406123814101533983715611084381356330275774113246099880670050101977767038245219636516581789172591224201646662835235239342483464302385694242082487664514929889981267162207218469686675596006324131035714339372700284990781275724943459326567436262837144986674227462059894967105364456429572361270030849090422741782978101958025187531855531707123427175161917086190169227273049542419107805463902345847434315289513665074086730978526164515262146999655481569470456285367628711331941268402281435150401813466882155392318069693829874559879429227516292270329271475498998599554461176402220935572545760054638201759469848189756571011377525261933110782126045560721019467051476754790507553567248649039556399172181655009503892847609867061516739092452470898887635385032539338802364197546387686303169931965122354387045124986250420636228190393647968269165910521707978825450820403167329009619622317302862765291492217997087513680081815958851684771082661812543495593671875399998360545553240752928127454015649391539695233783908941331581571388826567138092569296061403922653371627381190160423069612618240281136116934378616463803849081284336786547274278496433778073231761400588895548244669447653925048253101054764900509931675301953461912972908949842487638393540852713525919921535269319852323613336801255488182939271097294543211723469239767367359845617377533166580166777678143007838021497258394645244349435953832483353919620615199283581580816198695788344151431527329286578579086962223582925680420363273982778573853572476382933718980967227059835625793848647977185624641045404697771689840585499149152232305198911649452044201446980167427293890716495676580210312300977034275560959301659184533161877920357606718334332183881655616965233694254108331886336447628419311173126037935965024614074681356044405401104647684648409996497135925292476191074059219586124855571590171309706277168520190490306340197668747745827554950120252099792692985791774784354004999675440113052526415313303443233499721062780398491210601639533229013390990483472889114578217868975958935450529695567209662464378201084399991810539560422098557674033157021664293262094931118659989636527482482328625264224420365951769530921998330981691620068783475778490206569037696617859424309158858052146901090727600985752689351118182586563305392041545404146944743726906059449160757288558517745823814014271867217702285875432664270428590050226661457224358472492069841376198111614205816401539223951882071665096087457383431819359966595067544353689505958731522984514867467310697291973847346000477987575638867458833002231165463020976716280358499097137558850757106165643817649411672783960468309541858260087276291419982539582792391065783798795062436660060116653565352523503386988519811280407397267485189762922418467815308898603105526830941801812636517547590344695927932739550586520762591344170869278521589578452077933362606509225938685008494825194464898636694116794494848339923685712240510977578976021135844881541639080005238423196413977692970303339434569342619170548870306656420390790649922181578260341601254984665843379622756267476930000273055330300897434318256364578335556578883871719284165835967813601865306140847019372381917234012905128650459903803028452908293398117693444512018968186891589095774354580497998011828645118902744703554529648449361739336252648043170475629716281987985538049086073549386795919817170044395859328601266974563982463156172350974560915142969242177416914900373492393309051323915633543223829628884659744082460952087822739479361534657953755726171689180548261322139978528938193776170360311742374323705746701502206970277986322935943640243948426112997565513733268459007427963570125320321206661562798153086666206499907320349903221487589591605442693283780733821270487440020603646299595118104530291242462372408441198555787588784333464519649098027123189888463912980647751700711802262830040883685691004110407774097977068240191284004337395600422943474796797071000526177057528035649740627041289186106447262466600410061534901473061035185820325574763795093046783372600913230354701747586329139721853820478407044716601130111040621670078520425824037453245575270380890810594031525108304049495156756186986298381922166786668521128886255631306053605673589885298326818076194908630272953923301178859479914336102287670361546730473200638750617836085601219924667574159498812817480576289824311193262247535477050302617223534067485044372050296811318326434427995739795813663703326426052136294381963512359931754378361236456663494333608031293696750179447737538665472023308584391907420570469614125608381665664991712317917654824612945514273175855821909112938613932450469724129055596041299370768878311382758817695165644928880224787037197161646386530958813990047690791083158561333896111944240085810523027205362065225867268608646903466580993956612570541592879833263786476117914273277762202401421039980552019192047486844469453306842200223225379766582608264634301357468448287579926079842191138149649159512666335428614395083122572165304506821877040748237424515352236777752114632010886174768586365752151894301102446754922093628609611490276814813829433755182523469543539795113178674496228739567991677571526051655697283601014963983126824219944142279897918213521129703932915077323948725045720423494254227091367224243463910556931694267012724360252016216867941673853878840757836448125776372365752534718916367338747330733555630451823779526849726059578454933471021624802471844550131703021913491087850686701042644318594661307812600482709658149417198925617020430240702432434378635074952912874601811577945772461314850442182556342140903146828304156946587041552885842647015587924221948227341896814113186134816482857818261857928524347688318279777877852510455674215983845156127411312965349729825242101308332053909890528106316698622339944240706755492598690355570286945079243194105118272627491440041970209973791185204144425023924843265826688764682323414541071642480268980765524905298565387342833226375653859987619144254303880142623896134645734060507182426510395144410838757286505647707550387186008477371293350272510760400667556921546131440407968561837633821790624207189602599417368348953755923208466877461134953223033990476875155551715849897782493895485637808915978842926911877107423787016713320370208169684412485642199590165529216951687696363185873543666816076164556199571485017098822552228338739280314207660629374520272840173880858690097032456415515727577341076502024581497535275007838683941398983602741429325210000376913640877118392528959209546027281142702697560178069114830879867135846283089609684189722758264996186266542524128523680199542758792690157285416509022683527166085691451400220422372475422957604240297688855959866035287561364076907349635935739036326397281410739366536731526110358731956204900864183490667016337664920781247578362483990005992800666590855894279350498483109183455276136141498231401604412134822069314117761865397734566084014076695845774571016414197619096090453254078255203357501144474818852895181490198784457432703950947746938362492201079960589813447017719634040211232095201488603960335013837968036701142848286341424497338126793019725934577178832068451937897004136417305657878592458531974663268805491153710951419607809165649099819204087831178171787351365620889405302843724876533995190805968444200377751499660206186382130488496755739255399153312797963068222013396050413351790329445206293915666531009306802019689073728166151904854058517599834990621634589999596899147663016918237597352904901964983782334946764850343899883584565022435556953215293181903211937452614056056826939208336917708743464898668407749160143557520233440672700967177082269330631426790515886490921589197967154800067837428857798491300322825172516217687918062187107329505117041772799600594760389625539734775239584484111602010585989294759889479981743404755416988826639435061438684130008033544822360485793477285795637499096105319348611155381671278826404944060712245667907701192914837644011674670390302614656288099012856873170194526335122113890800640285104002495119125130003944173936008127217937881618495033270056020235500749787074151111310331273715673672471283164305320935933765572159920670020229183005878206113167545216924390849774906640631733423940723771181798992516377250624225215204030541271529649606843719395020765461086828251782261724028566952798598441527595876106756524405907237086265510273866326417651704287548436060080459525235194989499046214959500957952923394710658787044958373631337388432706803655623133261140017940826057440523488424963554213351183662708180488775148378772032677044864519560496511069502696882730688003600713056197634653770697690222951001226357991014372602640089526618411525599401514715142298572364591402147303406165364510425042312867705334352716999115073372442595998668548126070176076049263164241140906193774697287361099677709959357340339961231369809191838595663881156956676691492256251935407180568291327545865418291616186328123500597353010298107550627119415256159505092456509220631771390918548058182980710562962871024583071339491337074613267790190700493542092661423883349268936526271973155951677742288406805516872413353602910254471137647994688960040649786418202318245818135312242816978109827400395771485380797489485196842639289237714320136870436586952472134198510469344620176963053602832593440507534529167227783605704147603368301914516231870281273462712911153793050601311898062607614922131680506485671919696863186832587752325210907498662809357978247594946604478659935924257183207118589261792565276728699939889047960154958469644854086189039790730798721158674096345716721008730444579854681547001143311483452767474953169802940725672969760809538249870797095942947800459554000286038918540185993955884624691295419682053107317430954575743124132407626471591129315568587586880117630365495202437540704029458624600047740834584907833187991891859910067222481376944910058386402007828637398903058197293103068092244291991121759274612788365477275762257633907152297215989602362268120112895147808871287347793328458172905505664046048549736735798224747213361676098692266224247004766390691707754445792492074802551370643437937115145116571993801330309324604403204016816596344718603758104824909503285596038148002195193452961521921312513724057516932662266310816578757224421797025032221122860648628867646867472497180892789290889113256372949423646438407647713315604532148973124147025959472549806791019731755719000282372613891136150055336054088217029779739554544998923501461255711032395930574510556009448296346514159926910558088047229435351341171542670744262611004441033292616634999386488376093651948646933238512634985272957836235388105406314766078742973380628299304656250372784250216780428850329558891731092479317430986744557453532903954165756179722948277822764568784669754818135871642729369481390651770942693917650331498281231400461704170165954542456321509897824142304405278450258952895889189302673125118315804031833183921727205683707201112141898188653881068069759873318234600492649085583723864653153363914184564334390101417768767741856777287954863206688869885325073718383148081599631374200785915696305056116070639144618200831348693597450978573263927896851711664226339280386151074530475214384169704746294952631280723863274708442540303830644147613871366762472402930445731264546665906910115063394625880136360477881901739323563963883636612345989509150086298269085661537800512478363918876447801579311324499712594417362933430669810611351201307450033100194254692850354370286892579808266794811860627040045437359945880927403751481938982826614046722713696332598726421877017769217517736094732417844435517417660961596942761910456623941634313964308990896102214116622073719944111404236363665952746660204070271197532641397537340712770759344998396245691091484126478433599841569082818357964123186685345776634201418673341631348763055620623789495903826213371624617100135119088149499652804544181657502342700523269696024554359299839582587234272521407743076622328418471325921556490819887660994064258399690737541307994897658553479303649062161735366652613502531046222751598836731428701559134476486275863225132038370828208522114004178305772282559352015257626589512629025832612386902153964190315791715925602528846203262602263958232922537328055133876887319270311607249157426278395220377838963956421048741696997071894054338350794630258212059649983710928298069771899451282086151494970009940742689624400862483673933998332057433304296259115339626298249001112161338660681618730887821107160982661693181714566356990512341237839936824837688032951996227225317224392743146113975481845654471299482968133231635030027428677108381493391727113197458958771107620397748878809221398094181547675052049383520715877119551396889000309506305590953796291507817862610509743844268669954572547906285717637005499536230321241900818816462179657816746277203469001208485813596046693028256967568538010789240513895065677376665941500485151610862338849298579588685465818211713216424097941767041176173732521410902660183449274478077501644705406063734428557452683694136311822704573335377823985958797985297673285736939259351368426652763482940876461409648816746989855880947668178501682301553113775167083249835580326105563513671108580507621386218849534591961355873792012075803548092390110684190310481838506600882067217509160302115635870397947404537823646321224620523263841865619901401627870518402993386152718105674463968436562654574176514458682079768475727615666918304627041286427410161485720434759917460050505104306345747239768156737761900754969209624713148889013752421050977502264659347544276105014753293641860990213643875756818550235222578638243340922481469324934377391612604941285978245502639008948675386256916945242604312114628032997351003578826587963664578033978251786821744157373001294450290387990050793075359587809133001694188617489977894782972150330301287440926467771695466037321794759150834756164111012459077956732246002723925729655805135101712861193563106618689697745566947570330830231737720939766582111770797482935989930375406644963622874271167851420850533716811051620273635864656052811120367390813536031446313967593692954457033176061152799293616149905754494458342679767294534121108376092255264817247721794192911564197619976508723203705369965477847747402401477307546625723442553009263246151514014409676830053411967566909793051682216800249825003346853740624107830447400429008963654717748527824485164715172860260908344357812914369777895549540489947701554059619033844915929477268621137839464848634012309028599513903172440900166248958399911261150372361246482210206028304575718828565067449380345726506362770011359546462706980240157432650910109881369344965859995928082555133372116623437802246354889437359877536564330784386022977994464025087323574912474745592376612054359656383282990578617513128492170623029183239142604003528487938688464325171750170853056423029074716819956931653022802352765585933088915925293236544668452303560355825792786823566985718898667521470045108351499402103703469740475133227010841057341942408459999705415299820475714563388459611031255622878314276339749955767268080953715949459952253163833659934944880270343848980133354380694461247937980833586406941545506941515295302374383705187504627490494840515248348264362979309495925859230748460609646538132317227140874422832000941417624985874968171025219261447194869952326032999514142969057972124517754198173454670185427151966314691201666844801033377107527471178153998749540950705417025441808599298184662943318428229969594430627189370284125593661252198601006484919407564971255484457525973653455516846688660989965033017319001573087652880200940524133444731015050680182480659401931783534477380944117073691773444428645422431248421167769352893988735382933075681660473067452362953346209538786255049144619711977430834337475489970297124378250763119576803098835718834919165989196308864537939945608520659601849742484572981370168428616571048060183740680102053041315604841371754889626800388159907241242036300629611401989883047625971423912948333104707114712264002970921507840091571936427986267253116673424637615814820329854741068074752664710396789076975852140787860979117507632565161261681505698359532497354114108102242308715996117945253139940638591999400642865271068319443054640662870061907100208498052726795926174100751054034881734730044025900166777452022357497235235050776776294956035232448294840873736106081019156551421329865391321668494039596521442866253732624091444249096074255621919759380162528512138143781023826801321546950655131341974835889453916609747333926138777138825207548405362092935322250122612917269630860869686366717029504483963904159045373626782480423384949806599127746435959496362502586578949817085836306430125517838574488274276954476859351950014258252208226211291068958797458957417878651238338779249595514132389258821934234171125669152405668780700003317995804436114319572944334446915486580877585700124222940823262216992635572888168778365526729664137923372944871780414639375632954720276955523621123864584365179025468798935074036220809278405371526487423773729455901726895462024141429440672085934897030302058168783875554710899371339304056214316426097266199376247496942937389343365030220515711726318066505590451370221151179910702407207605060550556233660858529117171037909052344585456043286283097338249830592912139517059176641769923765746473725976690094065058551241937842795297281775783368194499242917124502720215216921384510440420048255733523934056229838541700731488501697407030957530411850004582223476410423772665652577577691094002192861653985575943964636563790940650673446242884914575180773836008561705179742567378117486072926323345076486337532180599580739258177996900667763430688498550927894890451019027336800870706033282001019343768376495933857259687875927054679015032133991011467846273834862762332357229593709249672368575869282993233223844604903542693616951015652271875836348940353070598055930995433325977547114903786139037500818604224345891516279633730036826194205988035626863056173933563948013222607167888277515597168089993635005849873757463781653301902500020891396927561013926612821356712805965323427282076563216179729571358385021156670632650979932014742448702440015537812737571571601292586335985763922939469980837710210046294989884891219875686206577515775278544897451210931198369767084189981578044751232876247787236926780838668176675301233524233907095869156594319837807555647380191072803896515762837047937698022846166096142017134158659000744496190387102644082395658543399676475119909473591050417437199621804241662932438184809629995500041604775755795287900159077443496550609197303089754037448912805190178340037910108465182318983383700318270537504791012232832489226788246168849154278576101279333892213315773896257553442298139472647046651619651055609440478042745586792040233684040747019559870839790882661078067209787785667635736635304171753770110353051889138806900743969832683224944914286881110926849406529448865666666839227989777798657231521487780671623693448941421776576950214464329855305371038327095850851913803965785691423664897514619161995665768937971541504231375454086996805754594274275204740360424718536615384321086264096988369145680884382204953851529691649970796259316608086096517215528737032730545256818167697544115216124685288157863347144801323641025803496010471221561965657612575614345646962746529753413807825815087616756536629326290245631968842010671980508324577062810152408800644513886968580686542918773607366259855115191790818931986669881102319719166753007281084956799423775863957693420593603777739264571524445963320875600186448994429374097089731201692938754188890023504239346472982998527755425893829060008729011670220548341102526284225729972014661684781660378120125699316880695062467424499836655303940365939314574675691603766947236952609736556234907495894728250823599937801033971435498621301812205646168251596249120511297345083863118104511487151923174983073520705756813200082253880798833424464947279594553852841329632443040805029839489955504820725963581699664906215669675611220389955145058616128135103073807743235700160489815163529089903254469303897852057795001489979453590183988237986559465480266015587491747101062932593204188394987199383034486610996669166482801062399662544784138820044166617897739037489361191644088195379090427229362822580320963668291026206353635372899238173619987264453227190619589874060654761840257858291253750957800053927938928233834848579167167615403765800659566965986114716134898118379683115555541251177259824969116504401510227721366776080497655304178264180129921290817784997449928420558007747957789973114520742193153799276563643387365352889462538744115408726814112912786537999204672197579648116057460125435017500683363789074544843171937859996942102774189466861477290739114459446317043730513769319182937953297745384683519994399018862390721533168947823857217197674020141342401579472913258400951106160766808278100943623631866332808285321114530709074042867925373725154816650491205232344279437735941928925660780479321284229841519972411865173161448739809321486375078055112081081541240469131238623562109277335349718061885191666025522479845888396968314565965822257897227202057592632117361064979556563137259392740102930937283622946018464818798387035385410308134520610442266521595640935555545424049536679215980817331948527985173117719642831361976350614574145609835307926208851592490435901713140028408978948509297474333615190849150680535854357997695212578971461710227964847990931687923415196024035493685646030775135507361840126897780151170448773575953359466650852140241280629293878758505682227945697140567151562171397228614693632237537802562882859803715351199275366808081999086832751794822136952068764059211707220758605524248493219221312439124434659872028179738080214420702727834779610713622601561764511232807725988992177690491044616131514015203788233953793304557091863143888044258433161941563185701579653553349526663762885911455062853404222694690471752423968940858684841851544254179805251063644599263014295865880741916485180609292065013651233792046035600312411622696473670445311843215067443299045164530801482178632833178681172658547989312453403430987427445970649908316557946403045604888202149519237517096993930698763151232011506923734292707126651134412025824881426926392241887014538512054711997814856620716796309874700087412592526933023053370887031662825159010193678318087261601727732890780912265888331885261733390131974362432686275382064561391350849778431706669088542371414818035550523014790446844523869338064978521836366877741707236850023482554480490053160148950623201915965959963314142915339748397303496776439620864433646620776773176340570775432982775182653062073013206676482600797496877382410170408241624348619416140728719424680704426351373256067057633042130364707535270853835462551715812720114286838965329149154027762045391678480796862020763953017492560624934274907998321187871716410536416201553907338585114310444229346629914478678036286927565041468898781002389023513808178132055915274862701557807417596348089742051423346592935986206885228093916780212557830965690088946098283026202883570375437566245289142806123016363618087152237259708426043108502236465467076509629011661881696135065447682493196486275714047254391878527283933347179933112944902310088001460047581486540358434957426752722485387115939991469014090587896970647511924677913532069995227370674462063562425340299666097657281849164109337106666949367143538953848821383930706201317202571865622405868522631849702957421018317848065069140111763955464155186703856500437346136669635558830380972640441469526963116982876246067958614551368131181878910919564492882863058234239496514379408501446564868177241344259250162960429077005244321305406706922476925641104821623264458584918123737111793475955588903285797522371231597508663113196087019931535543622025870149004583265104389324313422708679741712358643394998361523700990179876192386320010824392085092441323915711869614875984160592312596075658226941577397684017032366657847196381190325494767740602251965033094118632704900628888559671257378889235799486059823564211997507660145953461200415126454728322469826109187697205463637586023559983973697995158098184691407094685856208569305128136951603006511970851654000306138400777171782004026588680080944315377693276378187208682060931084435715942243254197554574381942582195429890815813626468911279698292321581015830819854388912464593820439506902104163496844189230677616115589127130498278515016496387303120739651312909734373873377146394407539929671523801471105456643612800830304184283675534352604965601128947594016128350073029468678911057408676943319160364945766295326760261100679797460845794648358339424528529453797969142362760623665917439073617532044886220106610902475019141906899957169214477118285678902497013469442384155616316339114417342695848064140063784477790655227588394611213794314815327142074931284512730766568444492021075165467077894384946281847050375528154542487849810723403757208286993022586236968165326875939311500613761067792229308892128470954931301581665875207948392441252154706483331505898294618798778039082477159655891722166942108996563561751650815646624425937600212365619803271669556891089486943387249153381179055389963729111944193122064443772408976955236720453684604456173397623699974844227863663943866633606582676992391612410622625667370635303620827203891589471715818593517129644439851673190269257274650548737781049745322827986365262669496429581934650281942760894158893395887231019546602511161512406476995205605875830383463034663606744038695929481626257522773322032479942671505607003283932140513043434676147182718621250929814488864876136681080382811768878918369076434982498054421833987753115509769256363805505500102672468114843825460093274720868342480592662108755560638432300695622179644938393111390750243146820929807434585362567101063098127406104719537016024351014490741450921066700691558985690437927343769748875913830935663081191918271597828698035140573156172037527103502888958503597402911340738386397016907581432339915908513717392097367506047661661131877888567729500079218415831229744311824604310063645688624424045586987068336252129949199348289433408796201059101679452001989626059165682795811282941474200259613105306708451571821860023505798534084865685446921014797370423228385216347822149266951146013206417181050878159551404631910057285237331890944780867829501058076617633341112349209145517679670670524691461311549905307556836072293434222260151057176593339904917219367416683605062574034103855704488947196044214001560686395063524274317352772616048563571196778803140670187364270184147288801109032364984400195221603290726245027345692397238250088479516402444505847010772446807311942991445864044616879875765790399673682761567131521685929201957432236362817413128182532487192824195604627590496813326729555181474900951076781695556145946765070180370181983802517731530313627661682735268543018941926822763253355147772269714885402590527001995838727933874612559100574439532084193868063115921319615394522647504201780003843410264387216972286735356077768145028365515539064922559158250074507586454679003902893154311901448038585391844938094997173820725258862168718542909315838041245968682930244404744110576949910766660481059446858908840311528272303364063756860466264114810327304199160314334420363567783387706148989336314499901754140866489466897512347599685140350005409658015079762487338253517234872289399148455231273038152938133971523947773701333047586315963279136176957241976230843774540618060818213318000544005256251167168563917466990781942869380658537585930691276070245184827375752232709523948447707574328698226562603331675286021437667834933881827312757667113803295439103158117337163178014587471999294079256152881860899130886315114332441039546301960660522532943956304286120108013648924606479403831224369191895091055816081179714728620764713104191975954905644155396473692217762720717875205938793516942818112854513069226294030862599351466116406384223221348962818270660762061953091571049651918633890455416403075523801961815888397126171155173167974732189036431621385697109494323008254529278831251429638440042793388385242303887639312722144388745376947518300848063148031350734557407964479907237646457180720978750636811497561463035965785181450803419088785571775800463544126976127506290529128244895248321871416484999323829343949717415544192922106720622995650779236919141441541442711221704311597914910103947727056990661019918502925891840812226592421563848572116657418701624182775078308260521189708440469201582310980027408163737064828559544105567895994272775565933116058643564117303142176225434121920329340484124319110322178000284334286331055506525777279092291514697314227770885513089240180564327330293969720930262925170868842223176867271932252682122737928095643542525176791147112142097959757073241905872126269786721711266167394200770330290727496314217816662415050668900558903318138683108125212796990125309507059535772789162471795405795222956966104227723844275856866512713154217041681811185742769623431485666205006208616322781931723922665377416325509632261073374774625338309761521633648762478795067135785133857714980389220541059493881638041677224385358892524158079921967197182876192819948708061477346033913835098919174719250338068355244888851136761757650800992904576308384588250627494019873803905584527260226421737393113695587170641232102667742406838951849872499917131208080158890284503546994739913545245789716276088813007322334025793469370294449406350420825743641934141245992035114514076204468818395276279260865426704945164631593508473348629280391029628206145278380282295560141147757110234736536135362270344418229538295681790054382363010167848250988570381476332831550412741096496967765731967224426466784819065899822454725579543014195750945705265661085145507535194778051731255576980579751409321583310438841064005994284124241519258337924821915465888418461357287968086539321762661065697423697840882414271924000077859418409375929209414713100751207042999551532463942106705516952043926891017005169858400897664481434573117846340715712584764998801196169955816003833006328947329318219779054942129555010473200378154307101972902581861867468880939937699274195339344647769112703744015406408033056213672876246894170657868446472534212854226837948575931754780301952476390290959688178682805889461744681918741648609243256638084980512647852813181644523217937040119021139475679672183507986199526001216864423646284493806466514870972539074708107206276788040221780243930936763317416565996408412593838844072013215500379716214490557358757503499182645222833998148761030823371751321008995090069627949582348299332751571975751559873731803317104051094821588598001093385606313559860455671259771810803841929948703836895996424661365783821456251478241051473338241876228372274887271733005947417429487619160690678709232342292498051228106656073018153228865125537170643915958305361176622579715483056198907515298049297990673389587200766232671475370896934552161681169953953285675908328765656625393426270512383660335430495536237146424212554180377711074775952437383675033167365247162563966260997663555904548580228606209075085173631542695875946427752510830541689246161324521293329440008365956871545936530023905163366819531494758468585045868030400951022482231380453496318962292819800477855998274547030383582562622837333801400101029982665302798214956103607594772521957301370537063525510001488573995534087281774713388836271340395142911757487518663056959787192538647463374909919196727891587238796780636115588710082601657657278963055371381083795954769609078202649321011174940927316285144687689211468191117124582540442569437995267914772804099222298332299202614177497603174587773030929247393949715243343827599851932889860030535799943508940205936762983388122961505339685025046278766154951658621101841095576849969663992646343531761479800032651157582766826633350027744557617098790201128035536187370078462813721382166904063674024081524307388869860355412798254113568841457808853850178045656898510143680380258627119881264403412377245780700788653264909419331549188436873470980227344103859345809024460451142163763865522224369757032541104462648172613786170840345300405678418341346315152592174993220126467530415471873108841142331984590407234746093398725278508851230907794187479105869015115820017614135985595345572689045858664017568052014107099467066968142575271443940799337388743847566924419362243888165537806509956622904274725191626043698642101524734296015566808843790101725443837656966800339333261918179247809756903835311416596922207564610835576616614710903122118962874304701739881295913780175946974389455723622277524032299401153650856534283117792770123715239050528579532353743051759395213608361070664210508557331473693510608452737909718644655839689359673951244948684053904821122286414610704882461947651451711151110310062404309868597095735321805875480897926850849796298217155921981083651692404520875190251752961223815652196374793119387606507308788050816694463748831508279907587075157200200784189126210531237352866730575549378388097796295126274942535362704461857725260561394270483129208051363298828024370274683422841633503246878643208652493786541448203244192882213547919806160451161930261546083010774202708500753148092586764266746956774952484726478638784155536441436537662016441678921032816636505299576109349100275189618100005189712186268917316150189584007246304538271870513778440574048415099468476810060672089979377673981655956533751916995892983364780892215158929443992071257786909480232174113549171052336368415739165010286417311486796272314585901862908787487750104321024510814805137568964247522551708687291756265939780344522159308862125250988189495602484098549038382783650880984582558089270174325804693762494155864064286632956052580328166693731831538589580123309412910386450173529699180868074455027563213904404850381880852302528948622345943821796542628011215079964110562377418971765616193209612317962073498545249774165137154480318396915422632286627445928792513639047714827881385932026338795451997599548451765297199611252128236244782929875867812526019752041426061011888129863386214627609565795270606513039015440006639214622915024866202181194847288558205903991483944657337147154250481647493235403581157354629581962090123993277186871268879359323597415777384121849575600875972203972603973268825666504107656560052887182024304428162199879099189432447017729730166708166702883285626304548259309905149538549613581332116287770004311456564380294485473363374350269853693144020289004953984442198992719039844698724272535824733280168445569059226477938811615488560802541046095153298580721543309060144051425897847113226934388620135405964913716531877301986067048553702532856483983490651412642900706399600910872663141906144544260983816835597889781691161141938306231316868395565780370065812381853459496805303040377731323083814334546116409487605395218347094865138391133791940385266486872959813495427593913269304444204132038855236198492195493176363846652137399742543053341157191046952833720464632866680071515146093212251888366458195797088674275238519060522300230786901970696949117864309798988005934184575062172603796944560169758225522504198600619714336192427757654834180404467854087326435975869973956213227317464523427743562588758862864755940439897154727570536204478028048748459654043040859424616630902842142420163855596826673307164752256392406949705627756135398933939142261699164639535995350347803071780428935157473183199557307798080383041281585965529340218300905971041540617772369935614153382498995871203783670377369143506130713535859871043675826635397656339612042622793061725170613934428238079887493424806371395211431010504510104153807082951554626197945694006314453192325691140726428913656622918801581071274917497205684384080214987900584145927646061894811315659082763144153168928057352584798745379897250945708865441781033968859551319195770640221419332741144143719886572000192179856521269015081712016165507199563488355592352221082983905530817337081406193034817075023221818551512858479517626182659282279329890390145505169023913949888375478731701336023345855620788848919080253525191379762705992100321434546965302644397822210297660910401630629192989310806448654586674083302049245035259998512032603496893641700160547155133734312470764028845890138648694480260898354619268397319156438834532641544304907250016633632701727954140291252334449274454733013967377813263610602421225388661652883796463927277514609985579085042428148815732521263980934554000817533267521756673748955558753673526980938323242989847192735154499891678358761356791141635909754165480812444384287335410955211376618999749109858526119277815254280423608471096727019600554952970711027152902667201137649408827260743469747456521253375475617821529771547580574312837618551356472197687164482603977024658034200948863830014004583364760582594350837942815656849459055487575088233985921381059133853814040511065040908882321086973302613557929367981622880620615207482076638965136146045318028711720006817223412818906897258940194279483605196613976965648817220729632323330950388898494998398930072532499477113745479253232359094973169579299667618264917809737345837846632260634309397340743490202800944830646108839046506782245526903661581527010650880893882518770593773645886815601381814268667494347072567373944094513915072546741397040666163143106313947925994449576010504040573796714887611224387240377607394417324853055717832247138633813939630041106164126174161317138692261843103391050593920636195713333744561654124194868205601301115583193636047119487734965994598356023857965830269196200988200374421763597646859363452657013736623506675211947649026029885211765118220668658391781149371603905369559475198198023916109813865113069793959650163433008391975842861165725064480382481471589462157473074827106115744011486331388576916367431729301328753691770819769570381677120203107047650613324639460036745841975488692344476854065092201779488633910824324127457969030619594321655719729162100385930041681084100774514964335020390859315235463427538239283059736385458652876267410315962431401893513527236321915125172964200656746822108416426011060046179403940908988568203113758669767872441695649969381202885487632274746907131317102369312661616836350014379990532368959530337219619629260566898284054526710136410706874832581313802866660151850979629013211037563833311477589913641104928935525588576809617820143726765307337703708337161492677450166662257404622619053569120644189528906773493442725487535949317399245351910503675928621342395746931736442560350370942128220936482693248440721785382473055197942548251146384534882069709840187955610887198861077929307139764674955834340388087472045694905327890293652986587926522299593068578445156415295268399757129598792509636678494541317085878992054573272190482614504439641997593929711338442402965814871846723883077009323819407760177592248993356789509875142047517118670779021328961892095837407005321910056837777136597836467917747672285440588914644203876449991323378971897494998985126111347591393796633212527888065196222971377655887455327525612598663192790874435927523107506326269972871458036258228692963954300810646640177487807191104405074202160467582479492380615831572791493547600821386519076524220439292129839061902180037453134955135950246546737429607511432327667100753950552621322756527146407624984670665389496606562153741965841997073052662927751084784841804902343933639681731230466132979665255447504691251896368625218177204924422070094337870879406465228116059600164787399013949790776473146872431632049824682519634138111251188233073137443402776689006977813964097948539521110569023221415969185967935707213257313794590366545231671809538593319192306726304991585603351960990356576748972932560089130573565078580100847706865616755933071120780484058309271614130248902811090274787029524210003382115965181754933060567223870266131563947416274671465973762561100111573126641613064599588552924935287929641132886806488443998398010968604360649249227299972290445259690694536075050765082883898071348263372284050153083113193597138177101950792399317935375519324479471227523510428031813456319026722963236688250306744949173135225644245479876393895015969885177134735980090365021307864972931166313124905939243315616436522616591935988821514678197547846753849123280227820407520976295935797902616632656795259965578801516050514513529749897908777648101865724396652875185719059275725387578777544676613065882189531014811593574974764014410371674071878476998702028011726043165111573367889670286870646105612741917716152415242107770936315528469460694048355676654540415181862560596967051621098510808677794918042415861187363955693360899145165304597236401541736616637597520323764387452731663442658431420056097499388693614785560467747163395907618259444344920121241141998290941727152267692853401433590724598956555245993150525855901923881871730542437448420457069965156051530026563137106012513773882234333557670567046927267954016434730413793257615316298796283285070700719968861099192764605630999548517998529409726879101276202014263414780218710950687240523193782405766382172524430273030910216752071880361544630976314669122326479513629163847512779679861210402282213987848255551890054193353952387910102438638154732571185257152631451148412827052614297110634092289976738206464177038558427839312572546657484197944719990218052703237381739951415979698634225443962859976836053945359910059469162618721116332661485614473883553849949395842960010770139660976225223824548358692239308408162219921643108772533880161261033068095620161753321396712525144105370123756405204959613919386254785728161656216080500882249492267912744825003840369131053555970926244731605755954455570811300433375703181791786663969586443951239811045530528711333519384841422091055911684173486018006179605343114585715421195932562377932060144978841296404232138335713895937418673355404733186606614112651827469577474191359940983013233073282678425302534353620401708866406798081760501943858508061477751407571536911229248412955376676698005714295707853113736978495004035508926289240039361441280291242249814298132937808500975797165904959978766896068746006041693841589163390303182256733020734861351035214815299882406134131097646422733229374838908833414123111452662736433691359506651157635870688616774591898457248638408893503484347875035649145607907454413178520050726194028315427708648166525594633896504107247611029344140883584944305567558067866781000808598687412057915680475790832541348813378498982187870834449335256089393049491936527268886875707808425814081939799471664721009638966284170168047014201790249305811742271131799938499780667569692802429580347883983216048792657165999298328714209227311618024602452711142138480694272818071760823437230896531508193404497557863544833071809000994964138001127085463057824069041879930883052400601055752587956709100210411195624788510646165749492099559181124647718679645236469216234384425772585944537386248918149537485855651840604535024220218018630875932147233171246808116870440975059629288365654740396392954855717787544641793455573018840635348180339007974380348334175807615761767032842854045440734256373646587966985483220108002026509055357146754314263382141442237974278396513836664660491194772525421539779692721541453147673684462337518345631451788811346848930356572941326175999841981361697998481852869408292575824870448321875973380524538846219948174735327672559704753322241937368314332044606268818294672128076712089713192405158759056018394079212473158208085862599480411185763782968022590268200643713716644070111281307233977528080152548142279972854231077669424837313102542276435017956970779703643563977885333459203502559864877966053438946571482944098188624465882461568957989295598035043721638489305871290022198406420851289913482844388747107477161796854161343578965415578287689951071420898758051668284500650068511516235216082932956737506949428236400640754341901653068630361353583781438986854327286606732276232277727818224621249966475959504622628376798670013583761693045701057278045072259867449509983393671795190110158086509733676622532780940077551748555275647927267402701511972619825207414260861246806799723150837802324685372547851108596044187756884101940456022776099177643896659648260053921830603374441829527090203889687912348114119567247454537532296950005838121544623653709464736708379751257690335952792113086851090639079266721537231084719370011683432125914675127813103618983099704181471335273669746558282766669851637066723352578425575226080762311730070453102281945871105091498824578122640389486782907334572451791328151242669753462710054629977325702173588864480843306771287770084839934388081810030006278004944332840110701088833836394897330763502256372277955904430182612672760960151507602025928672162297974607767810109507543699812601665814730050008006146182073809847390560808774734712903945005316669630220888341950483320714592441835078910584208723845369807418440238362039700349015802583865994467455555947646970382642299618090726727106242561886626439712508572357241396949794530449430175780140976899413837913616084568316194765684737621648583575918983490072854370081509271968934490151926862724686424887305517967674042482134714385832126949242331028676354612794688464689795111642940594998767304820852442868382937005816116742872997569196303229530967356287948339634029171712722932093126805220400948150715106278665455141372877727483912763489150328215850142452756024224269003508331211665878722489359595649334922384622167324997963486899900586897666745378473460452814826060428452681472433676606469731352857572751574674315675854500744076611078311606649473564386708877641237869775815604286369064741295159663795892826276783176111838113523274945992602747036748897746620791267468122384934639910624883988811660138938901086958319698508978284249259285429804722504112225431722240368761111137843074500000499502615749918853658116928804200209197099798482631867386578020763631451570790858771181003571307217716310047575268481059421263752424108992638358545682705160462708026693847262695333161531345333244665812252140684969420597726701162292272966576832633384483807166401235108937281580713822752621397152997811581504441192954257172184627869813758259772113993374897150867876270965900540807240484890816344274177459775562132877558982102829714430475666024361785968017304637498169959725076214381265275563046783625321944801187455615037278524765131102656134415338479264943562288888006551029977897433882888985762271579674375935598136594919727986964784937103502319165208894036977195926171176709703619297373001575598308637743498861103925774723432051973712851052469250985109044753409261558644361523611971100467790184253504699033306248617749699605762157855506459718266622914874279363776208899721253217504034989808236502087035899380795196837208733496054396051016964091234005959369635965357020637204423940256458666030606900364879519449547862330427323370906002228458742040690632649725410067818886124391749243650277011988851743308808512166659412600467907110137849042339370998829875315944346403266958417405864612219072802864247767852518799992232488689020253064627628018565037356370751133198171124959313706753093159809937950071726802223544023915679574672709424539365928220921323943983324417151815598324443255595784003475613064297977794369536383567105933257457813968035608929291596039670463970157730766409377597929881714436240547381847056710546984709346158956422643470100467083377438823223022825295530023306622256897738932208917354344411717652202315669701162550331140768484950712698430325507602644503401469980007965760119403427357421783080716509911153771021131797927674865156475933804317548395643624860609666923477082350607074216088104787843246178220388781780737302822337051914295998204882240586063677830609623382865557957582889787395303430845884525785892782740153281792836463095601538443344050145433311679508229865361012058824728559022763897327073100256109071636890145539947862510382715424148639150883495293516341435466465081757258631164068974650211986271434579120277109595472418467333360172074021105470589155051135038656499461740759314090059732006005097232291335987125420804226050857463768016726588671797904465955547928364371759491384253918674999660927241276039017753106847851822832672243288445637729199127179476262367318651982983880285855126027382815267859038336444345554668460847143051263125071659095498734225027318377460994907733673753132787375568719789439833018573898712799515297422731840213492273252167799492553594979774797514933499896671622923808691952766145654005542472043085916853124454386727951017072814352536645362508283937824164152841059207334263480246137354538370191476513878353715759489751275978887886907855494581096089492920457791107482321820981434205593705375227066568574681528495518817016851168037992263166051089657176632853644458764389724483448146622445538323463334910797258235974063322164531259220118434315787742215946167486738588521845955034518740888875425009327554181885471412773558491187380329853100440211849248506099397387643828595132658716847056937996654718016429001794173253674536271654545105435128157746086465929029904177920097828687820273198845906663015928436747677782155779724269414099938506618531937649554957953370403980882515372196749411624614260980383450275511775018257734661733522219925836165717531360762248429495394421491937604345458299871884048782083566550606585865916748007402236746265547320295545962559964876979120337769488671766290012824334668592072369278046891195034763380616900684464519429504095996826395071888208547830381328294804615864002924014029792046466663454485472321929285042392176457834961013850592522505504979782158685715057778396416245826295009773827258550995038789073313407121603771198784532485646443141839352863770054402587996479115572046233238888919054896419091838112760619566067046901468854739402792186811507891896583507621554529247334642106967361793351740021074844469637119244727243891098990044216735188704510877567811182348063555999057286495914836490703560074860769525110705334604042590426256051445358260772574030818819463138432003271396855105503760651908795231036751346979134482907315093812370577172768715978132543819564788501551682575648276549514948399534349495555099039531568911613095721969425868539450908007753537762849486460238472053518241591369934988485379594226878238539221556739159435355811311223786845437981737220794563620650361705663878413241828691362530598573651261076384735514428504716614109377743200016192032216414508013661616251220461616413754840862499939588240569366790203598310235200036902514854006335058770552074597044942099531531290236132267635666919503268873311695115996291192618766314248039547605209013304403211410923361155897799244039983946337577274350570399166745425716113605402210698906032997549858209037564609140022945171544822803769899529778056817585210024844647998587311116591785280450526810087296487731207175744713544555640201884337572343665370526968765892008739355455567071169403970559071435553263403055947237505385426719507874381259108405438713511022184611119080070691284124457253901138899351100063884731516256289355208647307103650135964994168277201423903801013534746402739673089061076187411369440267382793140032771547525086076476103908264325443252739578657428017922175229971199612823737996497384290620945749255918861822951003598565631986520694734159246216442767329449667608040858829215378608776749550653918368315478905308432451532740685484752603115874649335144785982245393827361122517834740702413530446897309225150264880187148058799529988998282998542695136065854113031094138368742537941127766694114822845230593568885332515626807535175593350263822680245796379402446465249685747616659213790919963422551279320752780805031466241628826350118254102311414893660316211951723920714765410577267829788496483836722444631078823232655993165785338509980494157377774354326460793924664413543578172378092287415034859425368868296198413327221355161449874828718281637489365119325509899063937017262755928947539772007048808829181816401348674860542552679270527193559648233092128441876729664535409435597699110028566502272794817272787172759794986596814899204779657921310188202244979133489104717173936768933208198179468203626114546607737176354181527478846811718939124104992052867761950995033723598813550520077569427405141462707528797462587873615218249879851522576034654725856345137217309550983218899141131081488098035137881286667563109015862607266081477017554513906369602955847080300871626047081519453176519944110698495410474746419789246625273079635912578523026979759800866192009080276991076022983141850632215836078956593227072171899951800958204589003471601344753680165553568021732757795036771888430202512250347870600943737771476551419092444569567908272017600302700329649010110214243410558874986806349688599437164280742524796408228486068655738059613650508096718147933238424304172504295377892598486407939069052604828908280214539875066872421530246565797216977403372709089662707446938973927981311373470723269508319411902254833964105352622858018036199851321598928702886381814119775551392359407411618327054368902718072177101505191216212866242585143685044372048692068042272953302747893462974916676877965763951782945930519382878997843225416273500189930137412439415407040558560133387214815522019065174399345937670374313329861469026642696442308374954056377654299236349786556271303922734288148560407216715582057791848385499688254774017648548139975260425288725995142544962432101404485328141504365587940714317982110334902665687605637655440027649362069815524764954275168594311462114926203855089971426696116938190335682704263451675928022225376876319962898709545139814904107268232906900031731700590959069973495216852186258048175784430985596638725689973142561943315948363589203682155522505427305145637020790956350276436032842271251791045756274790638774676602256711302382720879253798602142302435188316565340092748596854992981823573431132308896790930646268645287827016817102036114676277242163183416342633544415684345844967013055807304598265821666386068165191356087186551543171888604996973630391725196952406886608375643459729320773096470773364501464617677742906049295464818585004213612189439833409691619778863290865269613003395795198929265263532250828358062576624879040027755078175083289760491579981739623952027642368752795535684158028184460244886435944686794774976114164527138660583847535148848493382548627302058383724490278988571525582479602403627918135834538497612609603799558914538823438845090558179575151288746388128319498907187938089109163936742160497202942659779472716027008996842266068340468410028994917958997751871606777906894895167064827517293478682492537269284616407994558734559368118096514362761578510560173562413344269948095488815724736514683395893895808526517850311068841180135365964101194534437745154539978316342851199870956992242234847236584852838804785182744811053158057100766916634927931375443030534301567060433712690500734706997571181563583926699294077020374526861752346108516192156631674339201071657683109502296142388900356048709954489714230325711646486367079239570435967386550404824725933941507568247468415159905425533359129971050302809632874140480260521354010864014536667584663870488668546257887979964351785168590372871851971575418927580471504705192973982072357998020545104830728447897735526860040127593068962125213015760366475217806976179461010684401747798806427207896414026783979559257288791724710972090012332678736164584421400979552455016048306752266282555968223683932464450759063911769100326895714184693372202827816341076115290042107634341235432235351487138460471850190620779851951613759968956341363739319602802674335377394460161125179354363892420946127521365715740659830146745492854588481961235182660221859376630312390824959498936751025871281638753645907668830667737980008126049769371745531481226780514168589896301271130579510103829585327544768390123839657117825874674305979778159421597986208047713145672272566754028210952434746609049923111744201829636573859299047212873637621351687900555289437184882310569740759892823036909773521402062818716765048625225813250494402666480303349431484735003716273387079694639092336056691231831191115556451279739939631396372074732532714979288104411990207968800040556312391260766004561896239530298358347048873880478355133302811392451371830687550110675814653256925142031611134088344187615491347833311894852391205300596143074130910950361532665798605813714403676046572655667202940212727629064371630567997994014731989335447435787468553980234636499546737173007589647721864119287774478550324075154614184218672074131586771017802884842330697712135549859959166480731819121470507597087012028958722206105846807576442188794328338304025941810115291708242512674637218422842992855525440374580264548175293656436224844003334913819675104196004941362728380882740077792944630807184320763033122818765638006544407744863661107530234563477158750407137889067046749567649111908770552294011405183881285438821269714000843412454993253557058681598384390033678228015114606440255488040496018912372100550059938815981136755894626844847624437697730409220478446204647122645660189031645731818931580278957189766633188620018802410220603403081288168192229270899948978795353975257990636347748243114509439840293072796155385866365823618132235059241674863335749890832190892389635972987266060603609004014317798493777073219969676867298934941538093934931968149003888219451167708338416745885011037878466530233779994206302405393350705003247282739984298282652163649137788828510059554784461860697555478285501564319481307098986027695671699308387549663530884383331229630335342443446213077153148071632208565963499100653517082759712234261516407730850300481690396174359834657680409095429469105385746185528237024200130911075846352054154464627043782397021136908704898443448767264280260961591485231001071781703948133538369732523808326913566529204058785188427822462823579902391533841234277336657482324639898604869951840931540117372739749092310224476305164772945938551337226110541839266277749899254286364473037166586743565440648160407592734136021645719573731139742654976792924399348892797764629865561876441779811126147082565485448361511031031126861084879276192092635453294214591749745276753713910430255440929782611418659298680225733408316869777118903768773700119086064478182225436753407979199159244665078545382995849990527739385204462290141474621290773773784725869421247682370520492563161698765563820236863284426175929889379261924981783018908232833775281858893594966336066074630208590254252076944741563794778501319513296625719979337834517099300352953707028577007396729052795831692395630069569190397097796902022819356046127151416973815783850420934170284671850475541807832105392748810040680108854897778579424288474798035259871888178784049324753401081239930693635953042924671783279567089073343303466455861172209341738456931026855166270099945044422604072742615554339770253543256965048405339474429785119181436186260442135924321715237736387425074721210963445032924048062435668581669291106688112171372442868347298029159458275898863942007545144277382052931219871867071926021787300056802270039928561001732103885222551668817143081671808458529890797691882975839822757143030235289377842371211331518956487662884140632310432310585786631003367433540707186324712911832866008974040722068350589656441889822391121896473785379947592639054539916721205464469587238030333333143151792421915735534743988590498810694985596091236047296994151925339021985222879162404282779159748224996642970393182733279829381555408705992720243341115080414643788552708385733548232065425442749603513238435234449715024785412435756201201710023580736305936885414023630425183137418978291183685048674726888100725251303613327006252296620887489409482275501324021579333339546047015093056886044127053557921707007507132699972443600764103730660492162586967734496440389374629403295872721891267797110291127570493564749519182166136181131170169446745954344115439682670340053837768090152979525535776316628643932770286465106943513721793801734889039752264133221188369790751267403608903655451124094016150148455050832932879083177754089260683706409702773841409082169228662637933134826455102341324468588869885080456567945750333315382977838145533849104987037660380505253215226549413608229824791675993339191706574618855687461592669650141587163777321839252059634623506046771176158555292615066944883591914024727705969082456371822882771281518885663882168271936205242123235589183509461889681724183625173409154448538660323914463642991946377857193317856493642168809958172998203192288417010280083294573344650305103605593139844062547229935114963492118353166279620880394604716885171423765045901518204314743059487624869884365255965032896696692549707876345434792434103842489287060496815278700460653691564820184330739443608707532876826315893688077732578282918994438862810691079656720190890178337905714304460250347894850672863234550376894135446189986953228905893228687869751798492381349420225743070394344266888253522015630988396498327099370906004475133910140412573682185632875239172184407162944072712023906173319134157042257308857383218714150773234491316687852174069961507581699509268502176254199086473053572555664923904416411684147571778549319649329957601453030500445837241427010814557580328876804634968978756970837381180953159728343951521549017487438586999885455070349968780013261033376035392002533966515422637222096921865077129490145328208226731654726766737259462506271631948676327973108197287150207739832522698144033454222192003197860347251325147449463064306611455533230839896431659212727352705369726544919477801581471501702918154092606334133728732830075316525049041210820787838830155163266908965464909542025539751612562805203539832697794132780901381008998121619733059257229922315232266762653227162830805474600253753144225757792615013970349045641746140980890681103944287764479860973737162323316697700224177946245673851800002352311334162149512436511294658657267634574611330511035362273629210223801259522494029656377616202745233225794903980536631789581254789640205542991996347933798088527315884558900512123457997868310011520997265199158985609169877863618972794286850864183428436438099986254900425592027597680876280303981409647826462361195755862410400461256158263176070558888757171207130803634127702687302675220097647252638404537803469909517769962964104563528852770755374662575919948308039447514002381128608824847656899389290454649352791539222656551413873591766536750532338496111784127872764767360841665299713876740832150903214747563192594997017089491650024429694624319962490076840064851374861586464046947517171437089516974571986506145307936924114813362107845492041861211863265951416644216333964191200968023620171642839588389276247894341711046604436256950803096402240587094763105276320647911192408117320414976290568697650444565144185884680841997894101411497880352361721504951192209946142256504862410673041425437039455119288783578947096146893973257655423216655863172992939421902434878674404580193072200379135832623983494260968696230868970223014261454889691203144123686390543869850136932417668470101161065450610355337259951599142172279197598294533757620724024740061847590844369861862805905623170274823357848971301363509633780336111361432034198951728334617456516950143941535352057319924351576507202937742106286946628497474460472404024867055036037276761836351354424784012190976700762288192287096666172086937008660921416812969198583709361930869098554514678777146556511678707733261018172635401423325910294408034224133564203136817664114905941126922524362687833050165280156339776684852066922148301951123655183810389465630254774153661539230136524585168282301116464989529383149256076584324823796677940891466860751121341133500663496761802848487596043500211895983881944640149829652787348751779642755911705948467836705954001735909852772906583030588525774447386356551529650203519177012399815377280423828120666811481153823449008102519939935414818154294324820525593195109334077504554465025806808602230283244720145416619021064022515072827427129351581396309717495683156058261760290998177794943763947080512974673353762864556566106969219160000585185369729633756525682508618179906282485033161119332650160747016543190780729342691236935340350059034454813604718028991410446696236285440905935796711056409586016500767117516264203314124280940203346987305889082956082102092585257390921412276328119048243990577660617434098246958949902476256110921409218524601243718691342442549477309397913687545768368831765815992798773968072025255304425843677736702282615682932153874937634866289231468112139659581729030478748951054780944100166803038613125708512392846090648112200343969966947878052689320344796422356203498019679273205960948018571123777038921079899771790054040233789434958183411701970886507968013253062694407709408548846738924309797502754581586915370428891143848990684705155732407806151060176560671115538409135158609731671077702649946517025353567230536803108533283703140965141891349893008063584326176339116662747687669881961918140820390730801189248010059651669606572831545776032217925270701642881094184868958201195920378709971452376563197033406497429343921239733615551487105345253299378860195576687649223538483723719005225036805420844489135749057131742310670443353792997856557862238195999274606890643673314289439684109519693860651592978748415730412433379514552556346345139928318448129458566715793532401565391720894263152500784118023707292946106891157905862834486423806198170161349761870433912188717125914903680953722489975687332454514483164277708333012112965100949774541341974348232122412397091552477125163879190998226639563818773390575026236647818258734903434592543644474125663833592714623661811616519547381890941337316491796736249047108135752933393984384779875522011112888391148976502435893402708936424387405833704705130035261114751292404208170076274677407934598123708222523968313953276697963551974656935074343732721512284162468925671627138697413728977261864778334820057373005963376724949019481065244512428862481252295991562438759606230084179080241324809598661578651147563941553051671188037132507680494616403402296943551319254303703374070050843426069114386152687923655483717655091858036434770514263755300903745774315271593371457484726069595502459669628987107497531627981151102721953196749825704528369640137757056391564696517797243111017386457064027722987802919665018262262083302238467777697063758264765077999223294913613490645151599584749860239228636800412707727384171882904785491724772677549942830715243900739366094116624547739812749051222784745143802221840825776375163497971901781685703873386457889424511771726583784611840266291773885487470121691170474209909371754502797740379101194481625092120492812202595663564683585620650687783369137637613892559631477608566882035153768657929252371542640034650312483249110778261524997029185534297404406139611391018647572358106907931737683451782034198055631562053008795650176206644506916683469994506209214540330747244845346192505942639024310540635112623933083960061070023002815578571404997804378810481170621031809278600756154611139435091672403427811891976631244880235079598597743897519644084371875320454261755465374571262151812343076911276341711735884659744240766138626788579406896719466589664853441493258933990302955394264817035009537893138393108661568119961163034315551647451613671550505923166038320367533728693636393505692753609371162972719141417924378796655192813004825668210742608068476282167251864766738408619919445814759612643081481884358355703057168359343286291165963646527309014624707697240738394384991042985884817993676611288059602645336581351696630100729289287270486605860867348022718885060888629808440994055782610340273380340808746772093249721462027441086665798458752770292755619135467218316795042708569013161941666990493520673878466323918100263242172879189239819106831131130255297803848013908132327116573460352936855084940409677452946682254187103779796361237361058817093007796079371522537111191947079538203121235867829432570718150188163565670086178220909266716961469514965099515293337419313148343750120854496602986188043222981870469719700986903960364050878813733615381305456565852123270901219026504228839044862342369361074367680687013724052793909047426970177953194870221936126835471150191709695782277685527076255077735112927207273777192559538734426847126598208400049430209179734085512891421824313017483402641270092172121734021726160027949017759772612495825944499627405389861659539483246573390817939474416376686645800688143463166985175826576004232570644345960578216601231073770696714551511983694581719467007764276050805508987665920575387533380488018061249024335175719504591576931626587509448360495653927538799882882407760258114077081165034720247458220697847655562439377175990283755788068976365993086570255314260118340666119726921555962070586942336799058771602474013994196007793192485636435717681077642274980434524573606618567308168100737959659929168472978760953327921010318823857088367429978824118525833999273944258826985313758845701031409716874002318344421570876652431695196344394153784580397475459846730227401838529311743874919178105575641844532591114586957504771683259541782827973451700822434833247299012925329379498830492294274816611044115027904103704991170213899954741382921641751400278933026809104361371486198942326190989937087976319169832596528055758438878004272673884520221087800419840026151900455394363752869763524645340300824446073469970402640135506510013723921196676756640972310884046953294981013337805738879537636744786432801941420943780908801890789340845969299293297111290313277717103792831523986901460234634415273425649037475501381626070889538781300531781523844165253755613806950233782352336698755819406555816242825566966713405548599769098981680132189307975975367687388235006298407397481609300794967178546293522785177641557409873080131217915024171947634695490193129439328484203468440484392123416147701917200615409657696624945897945386861739152049939167844362996727588502754567664649292071674687571373192315583969621835695623326929235757962622220631957899127214869296279520631246219300939246218782330753693535735728551902715343462213456424328296614219631944563819451213292112539829168006768805737364660876502410697512866181730127724075524712672100835973869504932567431044645787774246632726372142947981173901372175933515038748706098273667043047936551740948424587866940024205010569224658415172024535493496532875153987199229655660253494947903283858953700458444367732143004371592645868444859811304838824068766236339264575225423974891976004023323640244861585755293553323153506776167032257563306990102486422959142283604826858654962851292648369254700477757722513964761197123019350132759035367070251552653773439812888610378879511922607644553815556037195910877232966973710334553344033368557113331309312599410937154237226883871714744199098020914202303820546867433627738347497289781744171155765143246268431866924071273109826734465089948989590868977828151731240055175072773284368032157930996317979482011131272391963933316692875098161382316998646271681667895563224631468763380420743661872081453275093618568932685604495321177501081737406260011700328225776907079090625154432844373601983121553413410251960411102365529557113439134750578538142986669175449364283758419376682714946137287444478413685378797212477060653003594489535045088267990440164174930007068428058263498671179355061740428771769668007499129855576953418199183174355928172402339271198088954829535506649418354640906031271542369440186546480120804190668473902027181399826616688368852941433989254900971167640082219738946040364014140899423737028618672113843874446193770918984156580180346233377429954025460779860915575463557637263597992863589918953992053536816471139924880671412229857936482702242344300192636657032208908971596527081052346669461560100618343517871846262908534580630466621456310387273026390583960278987361912404706163253258059343945230488622392681697183602406986946399355022179452443525674895308571769142873080332643069319840740554509538174706676235726394593818135947066034149662248961260871065579621232777482082559424513423827364845225294598348530408848272872142141571745763216238062707999122653599035447202798431892493167242743111385843524333184529169158880584842878033837798287768472511742740836932531820728736146673281050345657322662020377716308498962100227689921067168346042649821839184764810486412675130389299341316111206824489528008889755781517473658679758170522414675934274527338829208632721200561612877909234104646703482301352831370293626700192647733707283758968762695914140358982516118408142073578972260753561023371679395864225368018292981421788622919999190294768925680789997318716597221619596498162377075904635867299651379842467404888902812824229550956376320658637770330395761893754927154666113673466843263632364346364878287676320794356141332436635819299754678780704495081241953751641900965105496160907065197766416134376405362484007579698359180938572816681605671242805588511737669537331169395852801084148152364681589777909849266286793899394693543525405183952242238448462241366056853758314899438284191580756807218395589175319116348241440112569054757130206933880805843414122849542278858814733430528535180821629616351242612170339559657885428685211867376376199974480803260960661589742052614630979346294403662927984130891786352900157954426929549264364484355044061106216099323962231260809768033083608567415567193325935959957334612228417778689463996091853146665062163370288062934959586739803724556151205649314905879818455021443528217853624985089952057624144346213206638556779038187677230284006478564508668025512938603876956383916689772063073615581834129403688746437029545135675524716821111961309696582771872409329619719480856179777697042106496844608379124344467209313196677396361698367846376473065845040442939924648471990745843191210472304312109141366873817383589727547064810367045552970456655458901758678396287663730794849782819383816612397500397692118880860073481975072432376949868546464193383940648608722096600636652227228480023793029273055596761414805424042176595107517454933558450824477525880949640665352459210069582120848271517264610119011091210095446126601576884322642150948957070984507612991169773609039477094078001214647360915807470874625259155121314699451433625596164858836135252854133311124612284523322035805043595216310548069231514187599985689962823547068069006049972597864365882672164837874684309777285728174166350051101270075812525332194128290661834878124886680034418616216276029627985958428224490956114406543756866849537794256177374613101138417297575187815282853671087084682114600144867572868305191173732403712021738017018821554024634153233089134330307750144807593478747704452511258423285139091563036802825989177564553756240745869416847836570197939547737342655996454165780765309800866843218056036410997134699663639950107802264652183565402481716785701511859031754555977135322589577200307018496276011903987033611163149386845648676792973960499442531470174004462380068440267163396333675821773819054017001320774563919133688666351147870096259953798102382397290121179355377400331669089862337410190802049437867754134772844977383010242306513941796557068721520617710739799930397866252070503175335235069421911134722932366436887238585219558727648806996881862801108527756227360258718908045777882723408721737296164001251737067198586748960004325266140940248419933274258717165478014778968270545693866429672972834605365411438473328658541419614299105859382812536390669729926702527376171859378174021127960988129312257574692515952368881179884538053953525670952603543998952455745814590264240420665533574610552341821136355965445702513223438929996904516564415928459258592705716972775726942505091493658030351004748564283199405519821548706237776505680930289354231073756328098415025852636892356219875003454027530633484859987837678714653068193832464966019591795931502748471296475877153884731094091924751202665570033078734817387886440438394087714626949252968295850840929819312516055081861982362669421998110287227781962901750486993624254795633736276766073211484661857324937170414439570823229858786455586071582527817535411363600461648745559035887237884450629565596740648687196600341704117193954140387601989921943470488991591950200955411090537840551586281231886760682039150829474697345849058888771632867947087772308544922793158281776464521682259788928220858384755921339668763855596592745517351934478890724506731070410492313063130134038212130482458550011028008573976091563978687637565473178847916671749568455266340651242824498759798726047572660703888035925183884006795044094770598500261044121211896143150460110992997176706187464392423906075078285306152654672077399907048338216177714951033165238203307482448329422334635956672939974116500449591455809111509115395011846329233059287573352402482447612425300931150340073274028340695215950204325624800436774462968821076320960451819277445555574782622631792657272757259748442592139791807013747468057111502625382301288156892072051681404215794207171958377943191483165808110650389853537737329273079280553494282454046570400408774487207858461160556512656944085866838802127089415246414369640244660081736571425284702317275025844334949592820665232801370669751500493939308317437758582085948045165806835525249158676399395280809209173838058517846523532033083361910124671411690039586457876707459730832876631414505763073110269802501875455028916806510135155086432766597498238525115695729181736278529775756151226788451428090314588689618025059419960582024785419481243967910349225599547550722020176877301062648736405131742045783637851468436026540200623108016913499900401052886450828762909203013342392675396656882717181083548661628161205898821025118370542521433619899364660451314850659001789618495278859599330770501273638700347816528964000973811900953152359989855159669251211837032201595411696849722018241799222806631870674294334717966148578166767519615049927218943529784357953321672969086761955043353668277369646380745622697038748568743153355838508383806834476615598827680194354177000071594338592885561961648716968498295270129428071767576525851813661619999451973308974245640993014914074777745017948296878583433927809638980342405667199558751782908617326956056447883559856501298821481241744282273081041450408331348281360408299988776933100328451336278988491110692404472190031851747114568354905218737100665475482424706329370039818033317475897457044530059456910411244672806709011801533378068998148143560799696020414772242956211929365301404757825347550507542485531160180593237117704744253412668127988285362019244281146474851957743622147734647838875138612645474229845393831895371117719072489832927845085995169042350187512014772347898645129008016094442165910952101112037257652989289753820579409018087924601330827099694226139695476368850192165593725630658010962350523180625622897785309144350310798566088967644931489907689561806630169875875410157452375686909249948223941832704873671445466766941090697822774389473795870758316752053625674993233587542037884773695449471690451955487587961485924264053128448965419413569748094263791828947276667945364892565807117483432538718363516378197489341489072428115095812717768279369689152506418567812813512498059530164369735056412389390782388478164080538522516305352419331480639199975594805825835604007460438485206312950812838522951397234177830522406645233468454928975704901002196174443713296185617615814624819225383584855065945079287564950972529693092668079448868972971769625145148775111905673445501406868850814428680088108908965987919483736794663906517588887574984235361158681459490297379966679348209074912722305435713148070657698853787541006732335370768756808541176388300849195222153419412765261634369091401446275957636185556628222599877797931409244676019024965417938640598795038015353832931846186937962299056314008400623784513057423246358539455145083915759746895114897440742029015296612423409111366762060204926241200986282373115240644450501545319679911335049259268063376613882409813371579727533521479030563698359886553038086691721018841571344211935474111766257488456985981335446250428537191129316538912116864906857648886737149510671511599317168871304057748233442662522268027649892331124457356586978052458000912394176883807302844814852209318504153460299493968672672010259538430925551885569929446543365575337268323809988883316700458437013560712910440075529636718819696326779179265094218762260283967488585929184982836350296895758026344787547755213874099825896239005653043115740990638841548461872540738171776199174977218311363048658355107040544249405881574037969544980988191528299608292763588649236894098439867847444532212426082726284928579688441766648210989523531886163058348808094816239182243384975606190900888484458067088594219467173750821426892302634460772924751123934047415691940301109596267058807338607336964757440052345549802310866070455937019944376368465611427571316540958139894584717621215118379054520696463471060780424225190745180346505633736228084049258485287156369560732339567774246867390927542771595241247961766701979415686349246831602174795157439808122653593880399888128557790478516308437912239295377402420423134101019018716138665698131536511734709183966632107724718219501051260885391958727662696916311096114324075182109623106398505367461707907221460663543410274611948392068869035070582061597579141938732977368581329802444317748054940511873267053059805686768322680403464332413991128561046150288552099901004790734997688157859625858178232848699514425391094074059087053754741639760203943932421519467557066793100834528227610576463663848291395085960773821039574343455722156372213103023755841258374416062702623876264469656084561081067689746524320267804258091271167988504465848257212668329919043939545437277520980548867382879109245023603026194568958660279986118425171266073761822730897707007578388693532839951086983973004035816997456851535737968314269850762425544307785389853133211603499449201768692505723968427032935340435757448750740639324669342094409045680504857207303520367646843681763342637974915918634924906848053909802075505426001707772658876315691542824494180273253677303241191275311652075689617962121686918057099313123345377801438128288635855329492860885122213412293821570442890033140165304038829762154287429677507699498137541827022178886872561768026882153100338914534445779220723378109320821573413688602280447296152195694105192961970678490857588541841485877635876275047771577028559367062052996448868138315382397783739504236865412790800454053937894806376589482456141648001453989130603122282082102215890797216710337633449404585385576218273168547620679953092153376488084391116658431353067221295888063896832435345806639148263230366938996053117256872481657329051664747023464212458239579703032128175831257277357683753421463982517196301679636742772925951606373855724891418606267065065567206468289229222655090202695672497105252767189858196463440882184285009046674960847927819934180533347109017799792890583303747848395800004579972861760985165752026459910282618983951168392281247707906964065634412475899531590964000143771495234012626132855121954790058399010148943391496691863131927785787429139417918844977662505866015521168365282098609295131382759172451734308190456449208482800040400717103541850209559133238026096962199845683059227478568443264336761397603142312721681514046867689062527549708337838671777825906673605904418248632968126673220391964024597860371449724459173296181278913112683860441432676554236625155654770805910803585804065875418662790135396504162075544021485858144186407127132814237050706991271408208470384716388751720040067970091161910478558977405242408945860134439198392142020990496847458538336041615751244990132850676707559106223427910365748914748442500463376567184537039524039627863992652793374846224006701042298154893473501075119364514594283414938103963893603692673379705854568011249611408364576586570971027546472741924903958691913975865451419569732255605642988459839484891498561226051736981931583796463173584116618672548901599762001016651913098560247372968359725949442012196106906775569159973779856138280764958733708983825609780312644115778801948829374581644883353919962428261885534161414015659747428053646297498938082822276497967472339082082369704153353008584621617156781326645251462213163306752631844830747299497925935313874424143147318089738316353620490917392197402477546729521072765973287082980687865580819942604290331070494726223916906816446118166247913312765970578362788962675656243419478804862148265179207532300567720333533038995941306079061184870328414711025944598701218284471311707958482522306419152558258671285049988581803421710285220548468746594360387718114066504427506092470157734739378410049979023684653034127494362952867242357892535252404131208820445086019989395632792915729538189603779206823731585204845716803797260298382802494958221696907936616092007412048383607254188335645678666925127248400334766565746954564601966927520522932454965163904179291335080728273112590807772909836714965291584145019102059293542224112068265744473239691034061759531611859182705005234057857724644039185801319062600353009691977349671016881465921678075267038280793888871037921778144549627658389998059670900659020982667108599237199568936134894041748790387025399364864691498976691059454972450244761920919095579841947726059802985952433563213178320006850237161289456603725987951647179889529209425613430509471567885315062179210433961014986757595068295031699499087959584642978594413327911707666032406348396729056389864748318674067191587661638334182258103436877015064067065516131549143729923987886967248826826266047104562220096432647404958345448735199548888318556543603801656983060817859385869307477085656846208569258215518069566786912853234232291684185577029630296195474580916197631972971775238659660241493462805952642320864375975368854944727177316335869378860371924135595384354181305386427055983770718977508806009605765654935728689585021037431729037791570954264263147094489759509262666177495055248960521140560227683362948519404659427772192037306530689262681341566222254111578827225108431498914150020005020512392086175584369550599275486972004112879542876379398436310003455335989369302473933833185325679344210062845447994156974898352017569498351410371519561430716923221028435303747500759530192161941181081188542980949913276117342966439939405434311354619545394956081929199961445072148264149768656337369814627675799372643365487655942352836490365617842591400593855733360207858616972703781601227958216773608499185675091760955907772083060562844315784141442116753202152392759742099411992750603269233798737750280954991158822216944493418834172860327066433332860626682471892788391436501895599041454022512371852899515386328220380586160629353739242431093073212798591962739270976987028737983997281222827890300920808670440207002264686605700959947056990237184239172283540820411089961499087587598258628825593721513447518644282675890022495916044653801952314497383314138851013327306525987730697446495795832693296158564593515542510838949943494606622224372639635385668446048126614147550949954065977072327936073941547288318443512069387506081483092358500986870612996403889959436324494395012977859599792177678019823033381249283832218739980456839813701413891193574584142522741291958772449097344748838070003483248604524528647950401608784752460301733719394927641071716892574833768206933703234527416931677643126479710684262943317411180799123414746944918732799634310200091300649201827355134334811687880320216090397455250995161653409973661860010674704791948460651127101167355314231588616371657082426182172117008162577107887994193608192230727991242383138261575105760755560529089430342308163570286691680006276452082530770563022930774976966940306345082739635807158579224895869886713620893869679001762416212603899204846541640290728596153220360160842368339110395232832404536310371395718879905848127960001484603586742552968210382042085693489651383562681232192790832220545157280897564971184563057435068723943542214403043894009007868591792446755628736096869889885230582947623974698870898093719699845146107753644120747418004422178834078665267950938501335145905978134922066550873606254828780673136947684305497787146511440595166950586641813871529224977379175123085132316627068204087806303824313106979687219774521068530597815195027915072319826493056565533919206185438002681093387703189457419213136535727636824510199308533032730426764713348668698890698079041026874667268744813331359882032822069795617412977019222870619902015688343954913275737058226095922443791595166525142510969491407944530517323373759542015114003477105708860700789440730307395090628696554013900774743831856481055006742241370418098478354432365444753382843660496164762255219021628227245231164130551958304719674884900410275250230598361302378640389820842325970488793670647578827195052933135801125910554412458949573825003645784540058845154079665089453804548235473645716470234059448203730903989180322273932538256487220509671782394569222654571080509097501101213873198575208713908939387073680071864188716467183184097573937967705089805444238464286117845965673059577622304318894531341086205423439893751253677214537542193896094213385467732043567756375991004241627623609318933923083226516040131477004372601351863330697024967088984080527094978241299568980599290202520695092648608659642137812984580621959397637945739562910175795448960902229028692038624159977971539770035394698897778653712715047450957419490254934253192281774913138903529073877304158371066483766193584258660172941126729239989268708999026528999590255752827906764347458675672724555552482520958484885952912966771642412891100917743174083123921513058442951927106525934191482764871458070662677364966961307816351264171318062881159746496506956862107248583005258004944216561311862917369485901919507971382417836330888387649518087439451087544984045354374016110193457799927582079981564997233356818641817398459397740837330951179611059960277528792299643282395784604441168304461196062848579550176594808098766034671655562336750823698219653462719628924569106025392837046394871478081551323917260920547476618118329555657776583201582063157912704540260585280507925339238760059032526476969940427716125182355928214766468136631917253229366428671652827660719725713482236846158922501884224782525853765636492165417442759794958437613748635202823087385237588933998076568899296785496002100359509845351499623503972058333277940218660078421558358691925406648728425807557087663527771538771266050035426946040596809931943587935857348270820441624326014121692769185695616438242342014839533825852546339481330108496866152388474081072834459453095566784569451167772990999573247548325554285732927561440210501350533335320994359367451457426641418491675915149835035447369890075374934706595123994465198113495204613144987991281935716686348416712698375614918854714622425931474847987426707186155641992443090276188059173224072912265650965480002033608973080294549816597453319678473840767741106619985854866214587332415085685644205734716727463417594849277870085099247828776945335918527737433975984811799105389299992889357036951335747531436416673944279642869952400027421078616029630052999343177171481123090437487103636763642887097366796314683538675055173547111833371963719718551336180883788353461843070081591795653113091313737342634907499735525736905330308444635526098931041468276336157009751821200888244680282254667266078101758401654712976543699171089512243208919217886492091589195402945110569182521707220934837053900397866737262539265901638801262489082685302193704726006741268066985827053043303408945839001001025625345362913913084094472825951408376412014957143689098669518547409597325765806534564218327728464455786139719314451613332933130030559681040143349255543779035153509158030772350817696294732143276012029407365465909919199986334276387845698740694698724507660994890005230266613396430783329044262932240895428634401995093891383492918308763157321713445930294052431378524594547383509000206148214288561788832570656609649110523636505651178076612607761845624611224372538371467578094585165870307487538620079859904816242619020050035518551867031084368240715528644608263810808961102668774024611288924482119071079982033561994629884239958410164714752703854616524906284033992626223210873177215691175244478279947347396752998362607437357162491019032214746018427792250928878042946028010310363001572314759877579121316247091341597568012458568478402511035376121546587030598865583085347916819440794424176784493184079822535706373898009100813072596026323777695281709633642676601935791552074715702464172429937337499287640259937424947302279974655871476590923581706719895196055753076094778923102116471237948175328919321655746170077970051638369090245988453299045510270775017069561870647308954522671813976729102923124303656021716076081762191413665621048739596038549578413735390563521641795796535372525270969081359261714920881858945560706752801189443730891047339703645892484867238372353349528502531552883217316716485770617138378913058058155004942338978744858228519345313420408550126761150958922239271900678522786250213573538028364823697090089593464996442653800819232611589761980077181305577644644144459685483324311297445391884542010483058614226735985337867073598176568440540833711948785174416161857994573492772555384746319843550354406282202857162434991255327283625340568722248862102549060402992270482161529343433421845809973478005831200261390637915876840012455565905357512240735569556598184874457829022319423830163047143590759605449537075902254639573076645234321014368896083328888926441583901610197523688793175094940965607509001920900033499830168352802038982351478498217495462363440136066892429889750471803333330606829099285362192623937997020089437764215838332053688486833204214684474971231636006145072185180325351247077286461902027161626171142156785763771327235921282402942484251296848432107029175869320859531323241739929163284431393656421298819498703259706141175436996512410485593235752803341800532284968009878442895985245494043693547347662498427569387603856457991754711570799986027317766264342516885179158629505079200958537482333137841843397879293723446144944433763105483314052417511422034390643170040499550982204763157945218679687352681382447345099525845028261001462844368200964101259212559192584629661103314568273648225566438982674829264116965269985218971690776183755561437169888532688562554342590814268018638838966899156211080199831812289809636760824609182001816852820432180888608869020048041259332849316369420581213685326722349195021302750492292672272738746714427111052724697918517284753800777619458230254375836839553312176566020380969727527162212274505121552872249959464874396992647990084784974397563221112211407324667724111965393573869080030133223527445140921355424280821645776662091891316326448881847446099964110986760426562656602557644616592162424447947048057188348895395177059003181808155050958151475380708396216501588796490746009902630454853516657167119329920360440926224480756468568312222464589159600964737627008108157643883610202402846516412598032984264819792497287294502253414111201703345338848829747274581660823481499235136449847089312411125162320805616596079288154623079564152402032530782921658930165048090932288170936922508004744914486998327502177037287078366218816695352910340232738460531517353796123175880583755755275761640414706140209585875615494853313999066133485925975635082416211313989453220695148410075501193326890711136283513161893585234940301608815099863310172889297484412320252052608060637751276511884393204499811397849725432295431024884364098372456205964943483424641101783916109206746592778927235772858160245888527829199011692782946479859960019522945587047260592410437956225187580467764933324686675620655781337184563341329813480877131210278074029347618730398776711637095018972661141498047168315123499904490244323851896467782455914607634375093450241006637351481293955444331586030411248765669125209105252550799132823110783552348450903964582436511345261481202885303120577516127258616179838914424232511082390797054951602167507868410722599492531978895591704148667421009568302813214232025530671108287050738585652699757889845641842794415838679277180403978179963999545844943728067113831943607491874475205952614789776957513445514316899477269955007088965889328748771384323848790343027647743054874723202368305241944994034810553660426457938667293155272221202519031939078950207107471578232978546248662932903604493540787051842114099740135206466838795269402039495926205751783668041053476739502647622329681850958674285683656407500763659717129665723296450800156625644627618855241035814526915383937524372783569485542077451386502239558818387759465470202833732052070878976631221291033738893067512140769724565254537250638997860633190478794343654424532015238005099401899975403400990892684416513853372215840397101990339414116787101160527797331451668823036169572882535477294464522024562639767554765962093900359388501577758236720303750232676553631333143094220087752485508344982048570535592282562437891134050034501219232747192092700576775881759704737413887709730041905826376858851202508298715834185154530162696953406491412753316109516415953535994327794957356117082019909052824692664555896658254356849943340791716919199186822595179057214597701275933423085436654347866277860366259789461299060250792124461771718944701921659881264708559588758299364282277816751790407934598882994249331656996973678085687769333289905571430746706897343781515419902168201317927445150459383857171153516129228429072008493492114691166163379505726675891096199433417779226189867339377210010273967846994014234436758420436597460778056072363866199105504727758403026503833089354150027970446606605977966324257908070813409214085503466425187402748812004072016906346787403299613101249463799781446661819317548064242493631742605126246148312816457727719321856762400368338780234587769922906289150779038814815755821250584846918474124719254736109502516220692175309457896426796530616068367942670448926804631767667899889655917501745253943948378503680619199150433905893394036422926738681148958458090166782192034924303210986633233320969791461358386067401330412693342086315277554842775773539758468683372298355864830465339383887013028990688348430711455742823250027483673776571420323796504807468476621883799400174872723309355965732030978964839813960045811680898570599920129088880511394528196773957152327752310526564702358235641472904600351605889568321035825161836651009229849418138178321005341146373910697646112473181873810013501615510894551811528898530991413261463800989678007947403335695171631768321500754089123696062644967928273820417987937888579206963612025480593857106117439021262474479595415747790486798609414993900386510415555312590375679583555724978948720180732486058539936829585581008964015950661982453721237663797228941084587177697177148160730972600305035363680554098619947143597067967819191751981418093001534187678805708745722262265180871061335507575120771192885870194944671029772616476478494521017451071547715291813213146587914602472543742854328973154232720037960600930141384128725932091735259594785036171057290450560830893674509025985880125047189693635150982022433670743337598334869430054510655348277600949500975981239690080381867508058405701451759734170623652187563164116127000877336826767341405782377832303618159552986575553533988570217380098982185753550160249707874408185995411955415905016535278319162416234704981238460041451433372566131089143123040964044027411259582888995689921568247777946000052173650306551491015073653232904129688518182537505813973536580887348604224325944810709280766445232716370340821078781914472168865454480432116520872847580079427367416161785507688704117685903924134621395357298440476732824772586947870081312879058173800798671005623253971064664528473799718543484607502204809424853535817949663412048583048760883981551093060051710848042929723779393148960652767778575933818227833657592875238203066041880640963653836164163337949139532123837111513507575294408113152616733259680776857913758825071778449494070538154911669700041919267724661562897898336539654340708069440729732274922542502822445764175872447899741804901041822796291146834113350598812431505644822229659764498612595978371034868597337600236795034727052186474392624773472204506904874134214786654650395862679517690229655309550026121955018990591490679690964323585615144563778795820776442392780050979581965693371951493549178531494099285993583776765264361784543853207637969148927026947094391200467884553129834329157624676743723906240973010348769318060668193722354173490471221356132908137840490785169938031144702992268134078081219668419525304172758004687547615304062476073472124550051189432689431157812687221111212340423793780189500200345458653870691705487460770807075166515507416701447561887299741310268140709290615711132905887642930653421017989171915765019047565197179449812313102016346401137093600411757864749744825018340980894816245681470480740906269714465625984727038411330982630210760629653186928713613671643679265360351661683974751775344100693355484399779078177378596745655903989031680894624860213288155972247944107582939355205396801467858082971813261597342779807368830962615165431978231703114826503023905364194178589928077983990759436167229377489098474892220287537257054226376924742423332253739012902103811746550044242773345728412360264224967668811830161758003783540258587001917697789195915568108342388389509935511781885379139613876102405103658212378301668923827986321543326727963109009919744823879981117602370993488794373568326044321591529475516871928642217152186210334334048482209221994909173212584639115061411601058875778664381109260565190257668234656681677312565838083175658323793203746843210126598129829561318209796009925581554478540235400240024306214680664435340558823040659581663678187564790150356294626076257425052265403484249878664498040413522705786364524483551089060423040602858589754653843123113952529518885704542726529943383063652826883613389229044631964771843943254430961398207577357026137909120364448221439642351371022491773851439502719978998936880516841658129471615648348668524932085720406562104393185760333140115628441045575151526061727013979318955865930143252667842136077978150247177701295901727805591837752577013894676454166107214527445070009197542858605028589595421962292578517999169513438940365959517459081062719107680972855952168939037186443173681188895347931739234573236743345155796332786566282996363469719257728761075070909706155679538259758169463206432293749504037894392855025547836864134278772226447705852363212072671832577012979081382122077981396760730884942580898743204720202710806819776975402566467731302060228726940796932009928395168660037925770825203338405440150370172468773949768640296571720938828266538279461991449100985967633555315846338317649317256959093892032296116660502702019232189137565565374410691257436377022374309524050712483740807860344365951071825893131445832854214839117294295648472417715424334996566238956838671975141043725882544659661522056969126405023918693180905320044611521508949967876991980759036579837998007949192586365177427216005090226868458199617122774430469129433198938538584318216348885471539298416541569953042824152588538996277269105206717082075052683207796249534263967472100217966239090598005158192163363888251129301665227340498880652592699289524623797351426529817840171937002462682809730340112401194692850016669709518433056262722027349967108636794380442181106756450202433790752861908344266738093198585641988350950645118690059919881455503131801129208993799691841413413248929962359184872041273095699027704653075355550496439338123707989016773748887517901604635721701614936110971866510670832241435457467551094737493340079438495163234924264486439099605832031798377093757290638715283728570226807912644178961656860628733181009300322024658004193368416494609622058292688487234807931402731341329057082493717255968129160531295699069219146094619600807922910628180045642564870798393386801331365784934540976991963399961635023624821985462771181105265988738663195067340425234976595588574917539694807891538168411341135287027520303384926158062431273757632918291223585419297047685071038059962349162933611394182978248212531491703902520863177445765114980803518403370084151430798675524801323965043408146328371431465430889578062919522744758187597246450990707723823302933723593407762267043052913249865501121943525826102366194965150887977503026782079392217637568885346307244388139967772786931273795735474031879915604005771385794956630131264354650478283663133342577904438797741494707010302542130702674751049306557612360031244655871780621534610693083912721480773763638018878664282864453252611941447541970881197757535651470208534490960773936483093877929434184669629393221446375719211046409058120332114437365657497395637045509405790290822950189404887893390925942539028348352054143059175445993500294167941526915818248171151756709963234454398805328156428938373668417498839159430656217034032402731500932213275566592424026885158359656471809234950530456916651624901368389707966860808241618927494132566723615045186931645057538399530813836547658091171880930708052998139659319786251481627576216841259855796670894653795857587407915412098877855285734683166910830324883833326573781641944270511569991111031779472207787931462688008098774895479249595026869510920772407831275542205325164154975926770742284244679319111722055843864716551671536772728067263858894387174997480938092407740484599635539733760166158269692092465350191109750192668683180697467004286588170556234832329508621121343212704471124075081041057645577623186476072453014478114060109778767463806500733637055033922604713826688847833725124467203161707033178667150282757402752334722015287883251519480619152036461637208154169073595347280886855220969902312199363966400522029891725307830308114072590583500168983249116672753700634277531552573957810419421916022503909204601098160702824755860459599743951065885705595186223631377734471549565686081132031424414372664810316244858785648524906044017699824783056578050356471399369972925799905684612361210441714237462174028226316831650708922385399847221553246549369178427009536398263949918924042546969011730060758137181583062570295852932989887487632795716931053261339429392800324479110550216190947873031891218099784505822604808145455600917972182880931020980990857767083005319011855598248071231995705409259057512674402096425622360473581103807458967566550012340479905859051390893558610666046386735011864148143799294967692587305178112542491928503374468385544055548735725425577137727228249181002315958139216821244397313772240680498491248969240517143169088160558162285911076294602787374513565105082055829209618997098961850470287759976992826891085850309903923716338750937784947826556574660793396057312133841997950592092691778184282317932580708657636669738000825971824450880014270121632343801774651416960019867817769113237887868972083388836265101424550627968822741457371176209554571280646458957765349739916385494658921750503954567262650869441915402000664796052195803670392545393247615989665908157943298502420473928984241901097955014636037933268218862993350287849072136444260631204044550060625450281935740374991945446078629217187794518523087897544460671067788286378812305118910035065077423841367832405003067794740550411942621724899663303063237904231221780265198270026659126563437140098984759139770643187546000201961787220932104894634339025899489454618649250364137833251233095072595014134637317473341664930856461184064592304811828468647956648886206610947839714171772149879393008352071060293534710255610882586778342650221538215747400251804249499419013734793026718742776089733953269044931675092348240578170919824433057281590754980128929405722005345919278764590178164118985318345467792841765502454144428474154428115262434089456894990417279604916189968837185738256594633050472635563279815277191956587126672029709508825671866288259055494188540192746621771451344483342130978126590108053406983321799438542405538761497410296180219065856940690747657646058981244184652073485574992924928866771786617595070753163450078727059826033362773173228370640707760280310727535192550153794163538985772158304268719446966823441058211536837350234290782362028775495151297595487772579495452365648460292714725039937480601371578686041679149500743328252647485737681365505699963714068524794935278399248014448532822260274547973340886554566556328394488723459716918970555830705291953966376611545187816408976266577204206127187148762209736744985743627489907646627788226978485372176849028647201029065468283916171417673012184308485179836378707374525694180621926353629852863711786825549778594823507505561278751029097050311029624639330084821069403550454141472292935293326692894569257425718217375997804997270802332300759401147259236897145123849868660715144102788917923543572413566103037570019057422412949182013845293227990193396158810255347529544387331000212073010212956848946227020961145890551206808675474296168651183896593219492076088785260126248040973113016101465922642949758471316625312487871237668163244559955151599261394620096365331430092880366613780619258564884392162991466494286521340214553653482154936221506763661915380341743968220287800982105147318187809542612116327070501402116358411819531437484104598875127884315290583905540944397554146641782676149577281769910774863009074254368964996083756422034325805275290737864920349193635381967450884400438073255709558341054080443865377599588219369909225151115251601549351866804387182516130462939164886258131952805797105069618656299122196603497343592130829222056591769144967913017286922946545583370839062993284597230187130204578268096621894079746079533558595744420445247885924364930098983730962823432845084235963364506872788485470698007684479872761898181569109444749720065761803418608002146379389186123363797203300395592341346109539386508910670264034559571755572815859551643315683417540512247756076407393089862086297478236012031308331010566824093905864382903482831685000296374343164721980770578315319155153651118021149270849616275119632191337134232019511100731573179335545637442818893070425387184049252019319040444216137450574393980687801886642805264548922162687403913664467581202406259924061860135033413094877687249419186106257051680411985751115600104333543664979736942497127756268780343483098610170619017837773284582672377848911127672870048093073747265486978674680578259930636485821986573759491273925171674643215421559643742389991591040972661074324711615647595496413334843572006371952016401868980182321133027394739581064670676324535601363118130051649864468423312664250395035882235450961622833814672602461579528025772871350792679352050078121141703437940930062800493275139490029147747349696577300999796219814915249299202888012299886269280990812844800956983680117923781366374984086138392309465119443117057021835773600360144394159499630907962046450167301114319855206036800250684225910843383316735251072021583299178104548588078321908784186367456354351606807270736916169253636346997735015352766297319630204924119973872496906647250270033708151162465137692790977727411479672901762074511709837881070753799514312699478136802343721370482875010257483888814448876909657704780361797341642034119357358615601456814509996813549288265240947138045106502410561874045933881733604685581338510542984043263678675618796150259914921867034847544907401233880317203422911590779894686280186762157924553160495371964733111013054229379580865627051850343738246920176287663279368685053662077477046206162631199380884785071225206973525093987000078837511724442645746922591792913936050534758909151625358619067203571262237249727569561103126701072616775616571931690348415014066333086438779422821109251256983902196606837552796540899650121142605004781844238620363462027770386248651125584717172148308511821175682389764696409355755161382150864066566335597910637016529616499476778810355630092846081695492426885613765120842008081929851091113200445424221322740670492235699541170415744231125102097684055043599438174206225974810183376107861676595484321593445636100649791883211097961422331860003783849352304649515548057303178576839070040546446085470710626404864615311010988400935165371995397325161964193079038462606025389061433974238561064913048327401005733829116387799076756388444717128835681415742386714029429609753441901740886555371412505520750231327076823873626595428895496174092652822700046086340605767297185189101488675006157918566473652964709166482737463221377337476292210150975589892645331623280833108027434775549540712847640918698696905556788418952966390488793506787486187151473428061456339557567655467092589580288398015540805066631940086462332837940548998057259574416783675152941694817362869128847784541032527065500396605637446669956844316855373680822786203212078283991777241232187089032099293755463441869257437578920027026462577911467147582285677273664362495274184528423525327756320564680592873214574355363283404457551842613385204551277692075585324668768795572828050387414146252867418281380989779979162652890232292640968223231862869782498986914066216042139131911559776047951541096025878802972269266410585477169323890085332930545411463414036374853656262406644472424586055448543906570288610348313395007959744324770228451332657060283963906067815891077507523442852218831081150745927538876351962852221455969345016163807384681624089767012071161420064898452894648122974121025021272302495459079408938827665829899082876485352241110249187696547449140632542898290650277678387941634006150759495531373353712281701314696763028566375588642597210870546233029062677745381308012312041881531618350895421317971066825546750157649031549333130562365393602239220587342694314734346164371996854501418224053965079361379940487510137560224198435405695444833410086875560169742605259867413959655869218610171211280083968439006265016002622527602138454450491714285322727344217617737495438993370882725002152480183720483266339359693762011041616468624049448320783463660605201298843188775022263722785628410242641917271627675741364776788474118184429007991397770453995510564606848749459857911983520155907860349273291055587688225223298758454524073301926758930928749683141676542544694662902933061038495561510033489517426391641770739538494432607999518116797686845625003290351199691615821309922865096929226670549160967606962048641967284624673908386415577807011458471988197646029848315160610546826287241546655271663529213646428631195472975522188098100586330490039414656996455205620010444429510955262268509563266860374914109009687695299108203261503115210192774918176043827673462164838105527311157208267429399545040944513623594785454501345319827896796439966579394641740198744054041541664103613404096923137302633713238027689978989660016542808361582595991090249825839845632271452291795531795244221218647083355583951191805163554221408537528288740284729930591455786620248169208676137032178626506141854786514755531125996240916118755581555701252540471693599140456194029211113209713813222636476531400690898871697780168503920427139080133777509311999834015080615572166808285533941861834918607586943936900691407621451602306592856831961204859666228099586300376737673758047133561829977108833323902266286602501999614811184523139191217680241108084692434972339997155380557984308418945376782586465369767122089079186999622921506504596235310926804229084280631677128518293557005776788427400334304278957719803569197711061629304067460172551282686244508580537553684097162659702244639479629275879162434349659402968629297051538534714515643671053230656885176431850357430217003890627458013163057021009615298907984092434843740269790915286079805254530205515780492758881247304827888707789965965962982997325619516776970372959959927385948414297861988993074144119064111261856941513861100941436217510439258514764076985111900026438121498422530004399497499509811977161185040802949029476708000297030739946173876147133162887942122807735793696956105969661747766903209512815522723450339400182991092236301751112108017184400449368957661561896832430214884784988162309844795816007142716091788126165286112256804379808290959047455096617319995542902282857838998661895637893016849751455631921527958516497419731401521293571758349405433369181658254777128397062665930059577565182849139135587185185981457361986896166439977698413760496888039791942346571738321422064574945865379068777338803268301835965833817228688197332165726754236950166364740508601746952970457391128562537632433924472255595570723598518183114700888451244440869856247541140116301361423882042140160148292787062490675284112041651349610204341848599099664149490135427707884067568465169660538346169313782128496868961356392067790675400173707252991739805161445086112793209988321789107655469799991148347032718495622075002301986638553060277152560175325683753713257056579180207896764954867099341062932953528976710477723863645622984360186934886891653175522574132497096102069748431567808938089695359417278880942719642026134369707163519259294432405291597408049891365342652432795404318605008440571038283745860176673835621771607052389777475150747708328768425198204358008102246934028995825400761240656125819548401088129824590722740177361891495881369355204258070063772121566332204666720817421099082930873486653205059277065373177096731661791881570399702853738336651346705166992159003964538640406412037813496479177914878666714989547521130952593782047465946877774431498454320650443258241301227954569895762025366878411312303656902844913799785536948825055780778778761496870923373330443292481741836992605840737436884540244731533258101327286760403906443354382533440311756795849422961075465516200791056138562321540301916332318949861512316803694425819909582857247621495705910413155387435602260958162302626310409632950784031985226841336735516017859928087632369070962891206599647766440587568306820164808477306475530553920066874121666409748941600985609593672589906739391961449360479096258184347596017713205535651659917222377931597720455329811423607805373983799754141159881038439757594357955797269531369516892171731377716164430212703473273285649661275333314760513354829899225974878651122962720037478262280595386114441465265413678115668964021685430340585535927282391645959718193284878106745386354891761752358972180540783417100724254711280891942680890305105914580291216233751230556776305279028001828658958409314823103966529707535723759738758828137114485067864429983928401567560356154094084317091756682797336392446836805831958969316797535969832240371436660361429571453423132475155520670214026480219064182530503308148849776110334848886012326145772518296160961525520305159409973696989045891868396572596853443623687787108704262993052099871721481242880457137244810457108699958325679912514765382672458404307191940317196689028334082678589537901580462801829012630443313735109876099836544238322646426392336166623911603448396665048212351789659575996878573715972557969797207440814807305518163636967211475102621433521775381622186262346850833804683968553015256005311127202919605041233134458681637332774348260064482953701502517019343891717499347470327429589928648279361999115212252775618091049975247037570979766036135933135160475633706331486416699176493583373428042896895914849407224556721774115098518699191885294379758067995597859425004722246950488657126715391141815246077115960852250774406274651350333133570238087436682816789963243877127866797131890637740912076800794411810105855509493644229058372766336626412463292884799351342979429066877697222899998360749551226624886445302966104666024065337972161178819506058545044951896468661567990073475815804942166938656310438957425860764826894966710589275707425060703081146760738712196279204913122472888371547763440332829177546673297606786644457694594870698372919143716150314755223026449204315857002812122545227174951063014439812155989933137281667456164658176628743257088415959225701755007244214644077926792708922407189005148526902794011924559974778523476906178983518326618068180476870039180347247392153837453851690394898304821640401038575942637759006721740159478806800601029742388860061016984033999212823342364250102851146899084482770927506696404959592183295074278800270225887947230866989292211251709465861899686967715367601560157339521619678941320340722307478475990001283329302908008317268946936684727676259462044854159337826102212163053427053336345342569164210092724754230432750373051559898523903137582464042880884838518981077131233648336347416271613269279693344975481542645892498197691234716290442513967472664291256755216063760696815450718367449654200832421969259156543192252854063150494633250021724735218062086219687274598927326741481294492801645309640636512504776527272981196440067831170151794049481823659272567716131415877586418056143845356226674759681035292344219099986731480866733063243657093141559450750137529925247383886000612335751160353671180131685222520079803349865630987702823831821980255534745058659370883758257999390654705195224945694818923721140741524522460203490578444186187027454581481089209014344970277478679021161240323586654616360022798290883301001511780981566821056172760455450102956863185020308344630960539605387621526557719671054887371976034146944635784488252329826383290466912700176379087629070923174017093597123284615488556670838519341970251409843221295442700770664006239998767021113509558041962402165298205545022145973323599539793837299864057640670267218260149573009440637619620628449112693031011675208323304805486002744799007135801835288974917443586050934977827344753063059337711676226045226514668988306654475473223715951434780499947054329926372833492519793387847531090238551421912078358423276469023905413394773815884155769924053540742666869741476243177323571687933299264215917552185996500509683074598177065092721764506299321415906976994047110351146529388206636764516208311763100434056700545191208411469158118420153393886853544782599055714348527120474806010213992255891405109611420505897654514473557776785220522728571623930473107135922327125088658566395563213184903221890829505339797658524834782887451528592132386119001747196860583043245948304371165510962014374938621967278729627029059070316347313030306573102946899463315500194478566319856466259247837800617278611871950847729333007908272112724800357058537129252731324663560705869395500119726312653839095855913233548186235671843990945685177856707051419278481518331862928819566717445743906713542129963363408570168881710231106067304113969955267566384398706253312360621495082661700289517464502594876668838397801363394465805349658786399840656097644875556408064735503314394458341176507907643405503759499684214688676162232220809048406766235519753471616796722211652533875285280432266006848417545673016162504794146583109477330715134250900594285404420353935107042489033420654192139018629433779716442520088870956593091929647571324892728723896105386101726438614570033901141614115992556341382327950097247090186213894729611332646104913127235088612777417732705015158414038863820518799162870128327447065452899723069386622886764739063089144846094894959500331221284860159173529869817374152958520805208316192942920311869605002709357830031406487813412221430621312710119133411354812524681167388738732035799551965801271227468960799701369249344695649016699371312618709861864745052860368080282336489174814637186260347746297126865349495940487661720742399799717360343787022417368274376659852344772714817839736955527242181598168463026903461036614204071911951954085208894241718717270121422988421241992877491448228919600245860086737848820378706530980215514638513426257534436773476440029115530549069625057571367542504923546978987041736612063555282170815954292648165376310740571070944158039896379956552121223603356049430280145711853249167537563061332749085753402260355137037886407817922589377204490318868683749837202722094112974825414356784509573692680170612498308510914361841363000690787898073502658207257729292072558664514479487446305200568203301267440372255744463512089953441255907785975838675004242190146245816949142124542487025801890090439521454528911527259068366636413476963979924720858884677941468716911617252444493368819954579746902532109714603839372940075918490753940279679298359720350676575044329669460309695720385738706336142383982498596405497332555968004694142264108197505694544810958935606318855237019787003018108807259105258420313638267534681723034674991749160035142444436383841413254415825961502650324592424574925809409126779200613609606430727977494101784557100360019416098788458578847121157870739023222582778042100118720394837169506364826181767661515905901416521328046590528817661713335303462199707829897418542292892148039684295465570288345054152739007650780797243634245850715194730204339626255871482207767775251757551190151465693063604282231650392895699235674072741943212176918097127904986758943437944747208174839196085940987310654865460196364330666834930236382213866467695731337583083803931079565761685108905324831827692608480890760351099234944303988322893404645004377495490289848576141738503082505822031062970565014441794688027643230770173925008601764240720816162169538872151329319407314752965811917085204169917682352109519215052533034395976954400142061397344674650221827568967503205809896033393115472607270032957846966609031229858936843627373363310034086074218395085405543038748850964201806254562477442256559014525042174050509935044856483322923213494050982715648462099650168135056355237218158130281531415150321198119701229972554731611316560902845642979610877745747006275832235212253689382670156054427748999545353264657515694786017346857255606823905135768544661567533906285854062859099404188760525388898278321292141281400468590574081182777001688935559304388839999376699918472444589046149100427022747804018821047463059677186334194001925928630379987022294311957293754964593950261367392906185958889016783051265394335784448503525800196079083339088192350176058220972550510390396123320330523520976020867111829344912617226612690544924837570152996952311425141171366049679403078635716130568071755934984964322826221383382358428787602220859538561207738226057176040226946975342218629491128469998567783837049396097973964033084157118132284564004756929749340999227821811134536999477718744882454489634946319497604857593993655265362377492429768985936534362273052928602197059409408104129633961188993287441827462805551840751057741293972180933338604291750413058707679283521377475220737134868048537097943829932503893937537104522521207010399147060818183505784795809696621748919559242688880782710376736956580217531583565756718695248761326452211724163920330667890325331676033434412701137903548845629558281591090681647784928194632639451110527211500651105435360723442204351455636740978091207144477694106076556931124526645631032083529099223508845650895689344610711343568383569406708463940924330183821850741659265299496635266227633671831598970280042121081922407432487452493073222274953090353105468625852248606899794963305287845411429459158785491384504961119377618966949845792023734071431708791310486379041724342030640252457348000496472534275400338168468547731817377745283409923308422744272342175867345334063235541873081071281148046639303474306568551796799381478843440617353508677084142468787023669760032350637783508435882267152506622425278029779411799228051309920588644273984745382926985171452332253995687665887234138615405254287197529511786930765194362293780416271652261884400556826937593987340992750751488343915099578403495937496633312131313935979044528485740836083697445328073511964824165757570127548188905432374129323078473487698281440516154308483760237073275078187851488148930361820408074270928188202799768992367038176450369113750492776407870621412007677138299869083240147412026438079871200178487104870147270774129769640570398074818202952608910129349825004068686784548239829377160531978658168357576074677509518508962748754808896170400129683217287009140284359583522376877269861720376814532435510928928469635946286048049451083282371521852162449332360573426556904610037942410039349172389036485593301868519069857751827883658144082453511963239349906473830823839752482933180129098020858030313877079061972130639451817353970251915461169645537084899493507874349598461773500868009819605484979531844482264595765096181323839245555907236616468710267474484845310263368250947323952985057878828620871491751497867387224175798304538467991204204316361725236206154008951486245770888579355569840983963143537064908758053174423352994726017247482365784827798414942358857650402648163233995258663290125049758419544627367450391319724699812976520495870873959048239112736119651144575541799029788808766941621417993279111134070530632663086479570317256123290856265213422946128721455944861062260758053828885483404736962570091725849032639846747591105683824955838173835749387837388465559898558361628394110408640068695655758554757665252010705284712096135139646580940094102156856866770818341170488856127862142434240375039348548026554680000660678570866328834161029038239299351917299324232293607357722063195394869367118466651917567149780743052753246043428413381321626490766768203756533584268204240401507990198401857538645607584132554575455830117132449381526046407771181486692004050969773474206230225690572201235284813183355235263672250553093180953079027486717510301568352445509451304854559352439402764176089419308967204648132437108079242708507716826838858670143693357334324931722705314801997636167839882476824469698407930139505876245799752544108336246359300422533240937824932832197281077886542426841512297227253682430197928691371556911147126591301761681509888916700723953134781604431519247044741620783286298899041094212233868306976951731975379179119902764787976802376014998864485990612329601279749968072351287722062350050658090099584232827235596149121335189851726431625284934943215811934782117122449280174019006784234620072483323529526160993148457200182704139075662849043776116106912054840781692900112284970147036705416822851037788224128362243317044664924917952368087185087989521466771895183701907556569120855505741488232353406580436637230829061410752730682517239798613079014744668619942395322288822319364538192388433960283464153428182180505441009908494277854126108779830262578454265798694326674581012906880279063072086474604609734256860337982480133905471009098204293695314382970575326976428867171196377188363052864725833840712379278537534700917637716311047655716953770048461861043034959583406684474949325575294625293027805340698633521291441520855912712233549666718474452591928793242154214641649218122511435631014762364941493411290284755039931519415911655404822553778575498582781125249725466754581540966087442141379123718734552590060221047404186432406213184856643421604087186636190198492778719526740337897208842470116579181933368555960204057318745911149968212054379605754405622369135655450225296151669692799347755406464430562750641628933026874876202937593550337494398380434460650986209152917850718610364498037824457729642075809053190913776198588098100493350609892429133571427323443220691514570389567066759701685566795810337816031616323942391409421575760717668708500698969715226927680007646910071226982337867900779109645636729059130692932065613083084841065616924834420851754208503394087537986861620153435121048920406478167056369303345690025923473239555087988428187082196058417360409374348571123067019204649857292889673840896603561989402345325004364281337139485103849412535959725003378647347048565378707197703880167740156500350220342109057771074478694240860309325785043887203142122981269438027842462539632380317452810825381805053528971881162221197917977744682639561291231693065239440927510604810920705923026351895593123222467077727058063550745677005840288581326604909799661334876552919509408401708511492046940489675483676150251318437488866605352271157342813364515053239485978757958691678387905098652206617175993567452788727913390690190380589158845906844221160774914239501207163497381264135799331205563232796686547250667801388394539585128446146470002475911983927384052704420137199577524501646639017903193339606165954944794529533681326225557165174375700495489985769746519606219433425489653605384550820922430347877784698672001299950491145335957777217487511265809599155607072787289524530997111386881259377763377798780214120505014520892458427659945902962943340765035858974369907861533092060070093648344930793258422255129599250315657804448286420367950216131292653091805809200879089463455938479308890911045295478983296863925484628952067425754108914486726087565300120324589857306062341942295712954693398144693173370980370325793494415704127332170923795458103823771955998421621660697825367968496896521604147241281618835569938342406472265078370590893514098885979787669701009876046612556307368793078571261564446696432970086514572770548503167817981941461893576011681351255097666426681174103827431941861904346631051429929116174192231267160427189628286837000864584024130893478639104585730451028311071725541371286246036323049498843352952757929735027883394256140086457630085872557734729487713625774628561805169407771466360223578299826260762620470825258772421715498286488332804865839780090042824848149992320343396090365884945527783598473289114168251792851025418479443495496906358728092343094531277357230567703062027127654578875870029965362606626695543715524023012376575078548321006451220397748573333211134310799844283524399393635771995791582671236266543640740104597867780963754807371399990463457156114256858516697373504748700904948853453087160363211995136302885811021147149268114504998817482543039654706514070609496818582211935080690996032607520656308242108305698722390819121695530968876878572651683616688626226589856004589070051019994195415900625358746272952077755064437584339692679902395098406572091007199821458460259511308367271607551995073233259950624502130550996660736358717264266384474939487175529819166105581070880920581595084105772400289296074688257396480286172469935914854119839858321773729562855230179207355830460601305215672318600763988422455048687314469954698367221549870228225242897807270340352794040610271496501943196129886001052425136030252236035927920861017711959089259339715915040118364288298042060987658138098596513887823446586968967423539373134489450351348829575109179605746842531420651719073370970901653254260690100822627826161321005212426315019324594187028943367454548908445696106896456799875991947615379806686876600265381281033950305005595763375249881232265737465149709374423012258631603900495394356543291296099773272127701133001693378947112498777861235940161809107011854494393593505251536307497565946698636001628118586495545116938595176947209426512625710852043664058550315203157102167856242287876075250420057649678826384505351937538553755784329766760422965004476872860027238958561355140343301107135223689182565288416616827837833810204257963484318763599223442411111056414347270061965650852890878983410219044282949320478686935438960668322067923387066062017672894073681657937326005710629633822628551360642266318347330007144097086962237517224269890359221304606829422429413231842518283827923393458186093409321912999238293878877717385450292745542502002718265951249331209016283078087404157600705227583125340271872034982745306872618271491364476462158966331290701352347722728368987058414862427280310451422418176124114147631169858344096982066729894452158655656816121465017635343813822628522836920294610400470708694782391409444290720277990391429520153371146238237079674739712126204845653968390418285585192510699922325884398378507810053553306356127253056290981455660119135624579042914449947472655590587974006693906947669993167624796385002019985007626264942474094063470814500258936302356913945447490669885205785231665629176607037260867354657905020698761442685514510132894828804267755969406970674239707723724440032167026947671736145997776641428583811056545908955328120456426247769840778097315727781985023014120304124708377810441677815169425119962161057633106690988480998167013129593836417215346577838679273280852417545259864822463749871443922522954247400183614927041311267990243176564648485133910783190018955573167054918785939594948797687148467740667090213506760211243788562888714618709913604761267288412726313759778763269378270194874758307888973967137531046471548558652848484827869604240970335183303820537331699966073755945484511661688218311889945440282652665848124226762871339793197667410607816452865847673555273376607891011253388552246097157754095996629759068020455974882112690085607672627797683285832391643451203744165926236439312994019883348316191356209290848692441470414899608298263493446416640551095776724733079241278467359185639575608310163801923893687051081580362033176099179830334841691806404418743701912001661509892202883580162731154102458561215636144182157393439374858290357198239487063329648614001435964504589054016535909234506999475922277279015665868313416614415722007441260929916881152010963174076274112739828779556023039864264809592236402834136550379289963807627794060278485380078351181499584443935122021804216532824117717631129882194274561562727058666767010174782638827992828346971621094714153434374618231232309069237893732114733787968484832935967451342814453560982626910134016387962457728077227129288105753053526741413190807548155090603371773621295763037343525157562992283455299427128842031943908844260781630334432755681082981504976748328201653363359581929821077946679472740757025918733949196752851367864294989628130117745833127594838771218162900658562892265687622917843028912653293221997715219821851989472033792832995884827217733766086069457425659897426649888144677810380242661189044111636789112676280702128184085314203377035790220075885528253028677980916044437652542950441828088524786907400656636998530864904730913621157076232744158462041751650468955127629916652848077363131657436633235601170449607089006462431246665986171714163291091116087680302975193847205458410758496597229986141137051543502755187546233462741665026231731370651202278580383674058942953464428713034018700662910679053435338159462133167408971677915847582670423987619771542231943617792186558207759694788280095734867164694925559342754193982298729309824834603710616502204428788186227654382602629710878138902036011270451657439957198179971590189164671633984114048338326680478815960582961867844897019077255992426633836065298916851771624548512197098113550746979135860137045164332307730527067075076048515155883933117462881606695194306206430909142228709622102687626947469030516038603905659133404428336278589736583167738289173111704639409115812867140838611260806208696365739106854556778019881570941762594895055560427777617084107692813091566541022549073814912371127718654658998483017292066974962221958535395241155091559572519836087709865062044892457777044425707780999923807866533104011269437896404785017503966374466686872238915767313951027654546349330368161439096072343973737883750214965519833838110093230421710902830329027706711049515905885914015128648678478097063606367135457347547674761832961255253624987756430772858584426000127982027389772724088970756703525530176278190266333078222757870436519763709407081606982903527440983618676320459387224739305888463790562691828755344633840141812645514425225890293861387692260904727222252419758895022862037097968251867305430926430510423286746340191555462568746720533799587310121934860835777839516089314474148608661135472324196556459469952742276905343798685796199076231190481325269156092148388971783905696103949910070628961151129818728483451884710603299540489506661923231009557553609413488361847035170005547014183037463643121324498271105022712793924283895294918231335463193496738645502087300801467971049310691354063084960416046632874740588812095500923947858842730865547044536625192156336954395372272044041725632908080012777111102122878081430976558405802515619560681963868043617008703695486807993360347518515668158279705856023905818165751311395288262338470969749800643251225163302882822549499806448116438191483921313564456590894736080978934700213732917268195763151946264575191226906959911408382147676526774255285957971305514987084029794202039278455758552182090391973834519890258586602939902230899935657776502145513595040222631320852160608351080955535017167909493983650852806222410123744239359972058311350879134223603354888079531564906807081544589262982062580820414109452652491197901415847741372626385093724343230443223611782683174641952294867935943330118718448741038187283126025149871396755885861249306300532736833955466342323157007591446542142564604318478124102490770150273467633819948683127076000618864391655901760087123205916727629055064985757410791243053494035872782155289385956321175451827596779615448447260303293205479550060654952531409767178401699340418367794947638546855217571847697783905890905883101727691382331400205925293695407011701707160571658171009120387342412667951612227295569114164438375020839479591748893937831256014297729958652425916939606801443308967394662824200875491442237934767036780750478537353115506039910445504973349568384316291220138662972083024090882098326235423959520889689663481524311772232766399432427459284356845869831570414435932024104310767187462493056755334947434461668721624780587560866314571057363480844057655085548025878332821256698043873036417902143246693230201883409382870613660513800182107628709817406297278972348045860291416445243149335567514278593350591881810849387498778764644023899077530711961238762703956832477743738950657590994648758440107649542280383521235954194623052896452281687233007678949775227132920135941140979409285827876895896191467797020637243502967231011048375317379782500678127173019896221390454144616545964098833479462643365355539062400594247523236488472654594994584202051200674039485349845690104290384249237292060843111935393485046290509376638791579020946279008180893423017495262599388671212947584579291617238274233201941569082215687456863018829049301171780322001270790365532941593601754018800299249605437597000642692589655969291780580944002271503818906630867017227457885287795040743656121386496009641080856648597948366037353144620942376490851778504061087378179074514974707097645479702810543815367891349295038618109337025976319148662374955666091139442250716656351803414195958323332368562387366808161502139248250683853763508102955138846495773857332310811618524548187805542377057572522876729038661956368921652094082441441407894280515308952014883687732959412353205639605407398172683563412767313469445556810174226288095941314896144935529403048105271621406593735500043142076289425532298439024918575569314048039610520529645369951879322712179473775767820568377602127440615234181017379861186911682107529117962982181222433204709286692093578034346295368343198084385957871932015598501370542822445580011717981722701246938874332808665343326028115269510510084643233104310904237261893189615341551909588866217352493599767732927211291841295743437583812861923484622804479711725193607101005902857291795087246255024738434015603757926900799039371611024916612386662321059724140658731683065370655371290824710698078892381756398622195404798004786068353853529695806672648631040865695749816331568561835332770885597891779928134390945247714651420497372086280522387891776829860063357256497093135980502454275057631042311356158198004217273547655916117118680707739142253720186228104447334644030653821769983754993804757349731997137042700847862761063920485289091786966884619776803422375914299920084704086742129869261378231347275340214701833845849588492871617237563285290860948036524166349583314943696295131255665258590157965111716625730774173376739373079260809533371679235788426240754929022308649748669126531611322188568341630659359716759408045698642722635388033266625663555532605563207377784777714382765928175389459129950237732740275472947510098634164482285882246631321625762157687623006009506130297556099714138730721460211135583178609049031248837362289534845626316373408390723701099745439204389998197780079189324335984922999076394764190130110262448262028431614891062807992630618331767560177201901383339831019102023874715921705149866911624510479145520945162398447641994523252934771979259053516314153076338557460246241040602306975608986776393595668635162706094574699422828644264656019513304184798350624192749654565550453203278068269341430213840365471014456734561931133377484375574127319005327746681495607556761577265171448637916964988389242835829526537701906563116027773077931729578333413359324907801937289974616548482348606824671814023878674813165804786953829668367945454317298985588021133098406453583516934105442345695570927866694066397945465400884651246941712537829662042891494945855993092787872860861547830463367476019658120431481198403342783971497920518075925591084427892535501465059112494356365397743332491876707308103759601125591749805824910085779457748148961963451398989414730644279924449073894631866834781732811379891370970500187873438018790324543145743810399309594508388691271755342863632287749817834165182332508657553742642968411385284485515156219675490161556512806127488924603193311444315738600560749935434303792485941532450026299393251608991853092733347114656336421423211439341618950268686666455999504976984239566007189459659154354404103700688533360214803137190028937932216626214935786306818600762283135795133896639806227840562477984045713226899872450418257847640835535341485959597184923454596550934617537699774577245265246217668606558006099889113803441310510832977522105443854446888538363632577121769374688783356178772626956909947123093609563737099217992480754875295553431447958558163753240533099538678045633142461748191881773266740891959785439318592574878353903009041432974297894466278952309547923824918091198003454459916768840062300103547927949232232691109732592545516198643973937173099181635248876690710955315647083419874837655502474905902355140983203068998696432300417279745274929343144390119454021171936185703962112001229654348520146996417421447000488260935673995966484185792935292961285971428528894265224065195936824728547692278226304162910108160476872281978876937890950053190625791323298115124940038690933049829221362970085801153292396051210496240521795742391383536595110776114526763105267268203310128576786293348228332430547023534887608652289563411219024799831554726115669725815017987591456767757953867465459060585844762194194446274478718141053106679270744704604790028734577750782183192332201401096255176358922368806009671077212363936618806342419542430221410641615041758412528443938658193822581941199808882063987461501545294570028078098133324729562372346357305799999674636629529168234202814753594031185335701174019358246240468451790107810057820968458032757284754839160216365832598458326332595126936072105293851064271714602451295660611868314864867062296279773280777278810098440418828055340163819854310178053282725168566028065059418082938276026773890059601353805715615171971404125616776408647637048724886907336797814443198722581982603394522874883104864862224528799128267122547369738479308885028343293191966933422855121089851695757690760885385042820392675500744080555720838088621962253202877585066141374018636111959601242384518117982589291048164942534860409363033526630594202626619027322412450209384578924060974810132217356879882408778629829303724810502705143922744933116572580098571451513071094336894326529476160546325197438877023459053322274144450026883794559129793246458599981306688845876025069116902042958755567590144035518184818055218958523623778000828673175453343679118394466629402237646004612228690128948518900531598404594478430352211786130862282310145140801639095360051379762465511974234183436221943179532124523899079376047851477805441900953403457115667651762412274540615738544411336850867868924738605368555115905844430762498342818409770006888840657089444710044097654963055222543844085740182017999231077537976587668000664078222470389373058775500518117723494013939988053121091760601814185847835292683534043071380468898492272024018532146971811666721154502880587229599178853432204687731058496475885445826846724157453568616978722831803162031488328352200441061050594661062547377197950209139699721006586669675246274167321987843866611307908212251520223382717356325496529003658612657689417449719933518526540076866325283542318672451500163167550258717913925174422923831410413258537367300661707591947277730517950436451874916042039066206256996339851402482899222166710921176760835756431847780621892463299237910907714477814778275829513104624929112942563124081971895714146154963317783488548184292949768836944943095487137287899484995456421552342250968718068376801700365764481205073268401515483879437634562841784551389982412202256933791039700748623027604695995462336214030357978199276556095495752114010867327176908806936202187913299882613429373920712212331208307695666666429331038663592734145014146781043539295149086717483779504920991468543492358298466740446615568138067006008888019790267269489628771823449157542212119327401455524213280490696282178170143388471838364861847675903587477398802184436333013428382179433702161651875657553211560703817417300400892436796404024216800103599537358732775386978571547698617072817493104122456263201404544725132349733995886581016526853015268413180791309710181244359597892493799369175807137568303285705633714455695699028671689965240868271886173673455586075466895139050818597322834838969756861470974737413899316058552407342806000600566585178804045807404351629848984317750745860159269490352225898770673958413349950216019898137116024483628860007884781844279938331317323843318043951217102280682491239371623914827115559735687925248483831095527961983495403401248605630477697956336730545508568102360291189534280886172523887139864888442914043444759572208934841447454448500898245036572886474975628496489310545543509989481289128930325311417000318947938289240117736018586219270362832549515194302721331767047602167568640030089712724508820468378621346303252872856895420071373387184346835121620913707859555959669866593877807867042806508349104686228839527897202358274319910161592533351425522671684319029875055722129984837522343697266393648580907696609625484682681443421302004402444544472786803530605415090999493419085797722902131054062715549943038622856099924356114427922688133424610861539115925020505382694511094401778604510779416794348591137393606781579431709038448672651799267933190733865594998921116340803125546561704865659962130523958486436029824673067264182777318013365226965280579643112781973661578540479250608962005578502782150820768178429779271522583144891178809272409096994960744729467723901537164012304275359488503100444016397929452653410369891623282672940877286418197838921859359223700155127563610164345424522505478004657275515913478046769080487984547439197503550444551714586681766438046801528853084493270657862900359146321720068500781307345150016071283436865899371117033091918650461869116218371412395246902438868692856964965135637199235449356104209643341702289081322255050007203093965583479298823119429996792538814851818069656101610346016279576311101100966634989770705331879389583326131461431099771940953553288930968118827494814254814576304770942147295240682214916229342410350463449491775635044165705913861810392765341636258376942662336908113785928376261571776381349815071300251260981433958768621461168531622830793427432200157279002814218966433934081865498163390448353910699847798390753265586737896629750334418363954915977396171457359065628722585660355192863350792918670415074552103732382163811198401133118209204835630495091187845633672653652650995457778101312002677282533701386943388315737753263604281960480638529781164693943231219067497354643779001475486965206863740105694473306485397999387404348294239744803841629359868058202177561121775832686792469566205257396967773419318011015100389786566368007873585161434667657413634608713520855588271913158187581551505335852199002526530341920213737338681291825919707281973453731436944001199297092867439024496583383182417705709539902373821593919887262790799180096818408645515234911670515631654871140502596632445961791490397598851992744378112740735321058766665876692052123854838608371748359351618029272895405651637391137939494009910951299239020929526153813083391817865869833717942695292178039591328984557187649396344591120927532025529786226972047450465063201091672972288185532269178320616992170634443861340296328557283967348464596670508831570529879199700374699997379562893801545988726109434015429506789450648356762686501402697309326419452374652862632667716480835762757850101148404097810237204489627385882931640412106142421772505451714918391719796066792704610559510184894024318905746980295119452177805585027504178652024896479620358204531568520399247381315093916574291614375625980442267993306673392077915285991631982704825478731009212782655140989504336692708175053029208987557531684730732449243270244496057433202477007451123654645477712243969886899406647563286411741107749172769312074367593688278610553026881751788496452554347787304806005521193479074027334832354415256945262787322521089453115491572931242583606331142875461346158348294487005357322032724125644831677740002860825422871196275411935834992398954006935673736407633470403254788999275739069586455631606060436991840312028141765148591824691943054544307376673199814359532501548645883378203989603121433788456380557165795568655722848445920438336279167903206933252216426386313362182314197950707457771799435347066257974259731270255345811896336277553038805019078644530142500597387893376189237326826348108416525378670106724056011113155854520902128014142962120490164964700626655226039009130846826587415968521694572056986875054681202618936327304642973296731580356063895862659686408917170000771022587798908392332255684084025051721807041642119398598276863774841083480134236760249592443771513614889932437535275087708239318407152860198156478712785238261597593109336842160127062149157475925251802113351430808223196953031170795122017128919030858299981361900714339900142298457770784227543671060216133355299429208114596884739496383901297097690216329468360560720020837771890124437140226096155548523070492706988657394369876288661466063184266090438097728247663262044922434998583049943336300384332474676086253117970600497810110641334636252561656259682116572019609115817533010553255300503170807335910786132896176521483815035298541698325657460285765849999064776134060563179948049068119425097466171072505068850809836801139040826826651090702870291308333166129202888036719179051069484094589441580795130609286489120374252695202298025039510474240851217898506072049905835403726397828692459802694444241273994716120089597994794564948104700264117216837194835559264479738972672409745420538987080222844506454613696111399558717303880645213224384289127937667847058430738465966275819317882387846491719268947877424010338723945221164997325881133641167273011104842313328088770135804375199211940226042673678795008433830474204583846919311162410937524781317432458018076439285261343826131330084301559357869712665378673796241785128090886107571376218856314208456628634626244102372429673347821475706776005068475327207978259473304495203953714460184861272645656101320780647554798046484477533949694575032290288485166783558807384258027726867875498630024012653519959093151548041830914020439742556718319026441758686493704212501936745605735892925084460194638782620476930325116880107014089747188357597913425352438201551738441791247838284512817245979310084486423207287690626125115110160804365479961133224218395591759523010897684935814656794738643718851136013332176769041780781910409293756294566933266278487828112498674482274965489039184620316142308500090252659675172319606632096310082966483690812939607214938377336823666417220556219763339870150081946788353644749370179735990958069051998749993459292333091552535580982958051602627447090277191284945858864233242814363812548098535671085542368677314759612642313506498753353655650078770714102991315962493449670540120673440418392525291895904784119872107136208711061567181071562886079974552452867949691500569980565310866583649468544748901556943445918729890880770515032143470588715715677607665001471969516490367204034560161200634872134278270295303216168718577374436087594417094136808609969672266244963514987602379870929862211208168498184953520753049451388883276597824986027753628892080255702764842472802497054698468616216395068215397667928715409745364908990061560955603637700243455169197771017601244882274634662416129483862609067014640361511647519054111862373793300099756712633774521404801354533910232847610607707785762366935994645596203706975499343779031555448153352233386976315775470861623341097187564320035842627610485799003796902118980132320094884810459496808583363771017188769914128251409433856869748394811737522074939321228220128066140728621071670885532458721284532589019312427107964990142733111509966644020263224017904672985802270477025468940583239685292194232132247892493010836276409812628313373316726173549623357850820741182048949015491821568321177387715380538716954383602803714104189354989661407334387700063268873820840623854268813119122515798822806240955751901914173206659155924664570057385699825779053830547158573054877946196241198349799167461115105779693942608141604908623492968949798166845446579337044659052202605648486667301822622138420891073166992856329618115785060765884785819484087425694551229335116285547605002618402094192218181451354149467460008796799585953621411987280313476364602617814654218235558678660828158024651978007132803682076449023335800285620812959503953598751021114998210725877920827326612250801277222420346236338773230085271033750793808693946865776275510567032186769157098958032720934891611419761525293631567036654422964971513790705011647555994853350579553547113925712125422385906419082484482545173013308242664998549866689354595659813791480382963755982353697125226736232721258070099004137221188427100980240337680348324881882980517882567097111718614190561399268823382646143574045757621565781069971910368646669315990931646451453825293325662772865425619234238223589545507989870621773079232331613478392695095871459710465805000860341070819747128204589815185270774480504844365497709433456443844030080847557380773355933941799946360845497975751394070898613578098689084067534180662364470487102551798308396229428149606911855108377114472561317255336350918097177266374447252335110224818837798926087990855244611028847870692527215159507911730961520051412299534907802685370929462467416699445563846085989082934363939597970295326398124481876021771764545115827228795875173189280111362162867879511260419026791144476901453548306909936636621421741788308505680060361695080312800975780057158093502201109482648456705653618677874865664292941795897707071716191685413498984537616304220079277019494541775935606103422256140767245248686158743569646080019379824861033528055767878292666724216876765070778990236890051863039394432794622132299073099253492222788184474074515948952560287282027209032551438274249031517987604974117203047226601878147026332810478961174644668169951193042340150415860782955228171297321005835769113097608308364774471948564230241206351257353090781876065111561861870769706800236178218679537277734056147156083717620690861168150480718934469162408343537589087143018133985543116582980385596124200916293260368675385684488574742494121042913255014790522549837890060011244455564230508479393086958391155297652329904996761177957961621006632093000216530371781562307013788535256950426806046898669203714691137800275689598715833049090016307423211379573989703087462289179587240518321447034342475964602699955445755262744327510135121505581973092108239501981607161360216141605194900322836226996610434970946563632260924937907254631846202811459103382938690740626329145534203416121983027756733323524782474152425152186399673797886954330644230402640574567287729178199287562822925923328400688743147116215243579140971351086308329499133530888916338614875944830638343490776958250059630468060372880258515062051459907644343730558359215177755328353965055367344123830649430390297747039196281020064192577959831184233537751744260037021423947171189276766456055236340736947740512717533026356055097526181234797539031759942369090824079510232690798292933324327970367117932420139466528781780825590335882967763705954970651180938265567584294003958370661157823151897046208230699634627069387505999382306731821365229152755914443272725799912219859738608196007969219488253250358542298665513281342472795617159889543131625382637484032084540041018001069216237576894331570875277283818159755527901183181747530464600336143141080521356056721451776727114851028443481103240523208410093530474097336126547032610625833747066159691338151848631766747729548004357451849340902422764864898637251069627705834708304760014760026369599934464718096772982664005155915516338178170351127709705059187512729068918823723481785028851770530471764155845084025431091849289220634766757487604878596955327399630478060062821903510180476562749716388629205314906374829519455731762987465367905104848941924775713762252852552031319129240280464384194773882085215845484275176817483843583494025865650437389986051985069331808089988358869648448753032613962165516489687543921067244182871031944701899601184342938148323064437139493328623676524116550513569111995914411206725190503159584720249041207330840033974226988679021793456796074607696048242620752822869343487921844486707545166692207252930914254160024910675016210437936943427636728287124052929900955517556632176490683705635961471837559174343051184220786670491956984169935222967687121341554432251995879573270223302248897245963520532589000137082010853904925862086235884939179859269708379415834386451484356286500645704210953300938290939933291309361120606870621680190695514826110667445870176147137938278189345983840227454194135612553957612241238385448307376950215145608083336414108060296174880509620038610756708358366088773061970045863102242515524970391388330266833311411557478533415218976953690666792205194422548481101061474349528289895700571439956368768695033464908483826429121770735713264191277382480753327823077524209359998967124014865209865735441043874243393900755542030274069723989140467946079392821686702227780140771181902605316008776236716056100144601607925106395948310519698619165944016549544943982307916746810627734456827069087607339371081710168049355480471134250414571108567281749720243887612755240467623426865084629443862563767304902502147893788064860674272007525673846980839624949517943067102480411805225305036280534150513366076566801754846441695543280634836435249932029560712362884535082181340680342303713805035158519070700220818106466046533650061158486607679211668387083466678016551705121927795625463859010798558921310013736494237395009818885206745585827523787859849776508261272157114915976173565373056295187851573878238403800176979837242899190326995451133248982559247508523444669303830648484326004262004620857272689680165477812762422710387103666600321184275914577909226704032707748621970556500980988346247404458355474009483422686620631818807629805166170130193525642532630478667162048548623835568346893210545764780244954891561267248013270309476032026807651759247673608207085199211942673843978864827329433110832121641676532613025226753160113462379543655013512432177811371276767243788950687938065073476250059320307341301174572810539848465407640005160203025061858332198141537103362903234012154375420015520515853065046669990799774808684085368459023309504471028124099977937073143980126467417739097128178351876089767047750900253842791733963598153393734930264924213933040343448732259936064532633755661206974041675616290626837180165693765455885847477357153261704622219238778863329166219700759190460723645470850642893340235879266761687485864961290606998973955564485917872397245701500709983576575361707470206077803436100737406755636264354304544289713646235092745239377627973561099073459739193565837174414317003613155989350776156885635931916614686384597441323746716562791050486682034259972960806156408992385388213650715907124208967519720869529833986519295226831735431102307596809718221077276515168892597822237953461303785133081519600831612768414903379243551178947728920131221004860864269986440121997211874876055609108019931576383254681933742896710330636683226133756188213069670917805749012943964896324517168494560818160470381962571227235620445126008020020859314610110400030408201432953762297743179262465329798694261687713499093990559162342953718126880709438608809983607235335879019247508323153001036607618714531031815154100860192505942175936686338677833650068443428637765854147204509443942260312544005434775238419327982545005136253826648938277546403116608780812684348174850276174950633635560487741911317722799589777079758220890190585288476514452145075697530470574396701452472070713198337057105205992854316238166151870171132988712845014390671345491657309385215725213680707588956598979414494355571823048505068345889104983877306692543118865886410762474354033284160016255716823705925975940040472720685107744830557916196889332080409715939178047829032843156891692029658632160177155685272283657037994967025770164312057528285381185903902803072419106008620083212722480905155070986152444426620148129212586860284564352512085181696155824933247986067962264179444534781848460277806367101536668590778787918645415014475487018283704247135178255520161355965023890346373831621977399715519727909584231841670887219454657141852393742721634839635274149085148463571072369637748968490699732192717034361174536697801602654388656504392523384541008695510517182728087787401406470088874573373419282672081768299267989274756984003918901973337549015128117388906810544886222654899674315898543769068916658837138050895064752743274561392159489795306183725328895812042659497432282172512374916529475704643010064258862042240575405235200705838901836591533441149176198475417914226118518863404758805273367088981311848216100194617657090177352966780483448385393359257513163477705434218482381656907554704879866176703403871761107225356840109483182582066759932329338713331113676940090427702021178310410178378393516700320030333027037423595875215055855174922088858975571751889276569689572651955076999088725209625940702984701800279264729054528363810324461062162485001671442663986266461452405566572735608744832075889391795313706469776408869035203403973486473842357504174857714373275095935579190490054658460537768791972084915135142132749688085737756310541669427948707060054373694662170196562240125489706067673468059166107993428840201330692352948753856898876510290731119829097144762251101701534192034205908723559856947135115551659602611911591128565958763568509435699340752843586795256127775629063638592957315492009642135111550010235959917043753277829654757735222557378551135607613507764029278852361271800204264461310861773357680192589404611371362334590832416070634968588558984975872735318589206654851093570100189184696522637924323312994655565193827956455992682753362161297671982844037622375026017426177612442732212955692263488789193059368568519070373498915255650570750540816473384852282253860934988529468137291009591320797774554422117150422000614623971849339246912708298070776148391496164624316910350647876199858543095660899406198288052052121167232021136762911665415828976943125486877154300621265486062276506007176497262713692870823945174746756610367247717531197323430647847183996951101812867344180258503547092529245775061849186869783771939902064084839487398322688676263338609575172327075340351861655708734631375235766395168015215020916164488867477094069272984833186202477270026786291218152156183379339112804686524215327841523333584609395710045773825295661194746395708054252246667297899639558450124534187464595402796490107886371904480324130669875259727012933137588523167468344846916028669554426808906801957095937598152995374142989532221365774163119071959854575078412236481417322298769579251775797854212344341916978171050954814293751048222560358933840781725707287251414102232793308678811092783581438951898891998703316706557062424660992470364356284582702121692871795925725392595191146506196449271682600319388491262671782102659587586100084556793690155525991883106071643480980510633387436790480312519094930376752709317522127827369796880916276023709140596879184048087212655346741086147833814947095965822112014418802622650647770629476514036883545657382851675755283527819803352881670239154469437984840583275465708176416096212078189974014310776915254949073790900556601658805001402348146658250148092050519309564684016905555151796896297416179598563890269280093071378292816746147548922117560191777760413788751541081572780710634681180936662553918149958161260405079898060415855280116576995215871030096751380117379292054025560902483024396972606306522165692888827626428087057344307279962762778807292231506172085003313331285383152364177654619957019491408283970365834440377393723580665166998911635275329275971060986696595750617694353174735471479858876734986248178737259645714285514814716331886792266194821802385677358911553772631198452017294675062087127260086424968443737412889120536639540246993134179483669857080296789936835870297218953377825136122662132873263874631399742707249474070302518174439967836914418244402427237666027854061132963319337475024599059327663879450522862736804129480026602909291757524782629366737501428475628118258086343530072301111309152868443725855275159295205987510415753853383071165528572638744686232675592962286974582621426169711827520293555868590751221539745853093268592347022793972842037236490202346711909371278999407199558351102693067280357579603398161445951206337073376788136607803863231193808442686860632305846400738960378684537762530507569998619871278048088657251230973659871505728782613920207735553640165105678728213346596226645680355293773435690258723406765459203485995099563895823570128223733858377492920053566455475478080518969768956374049377337700236264865248469508995474850490899924068413828644237285900567626828905683412502175393226150999593797380772582793769968376228305105471812418295773859973365247292272281449923648718708392164557453127185649846397022903883988956438213218937204181150027489398756777877093640384378319852729216200925342864981978176463122985746189093960789068596015329871365743492855710419787464391035456937219256772475871622268442777934692654513674200323216521120769749133255962063931114736830211900711510542410313202585646902196754476309824537629594584135653764955123326915784759132383158526658091291596940982805075111156414717283597416027012449424289050655212652562138866619994503176605089408948715290813803704125531900398801811761387565451751498338726445896690124728476147277053520886952522493779426884395160349798718833497924848909145079769604071872416251065447966120350148098472937430771067718463541085093323137611415194392866119097122322050205450515917826156334050434500183642613419968097582101381300174850215305798004422397422001655693851674143417426635052895462465521389411377260835780473748180915730987978519327150719755074604230439711263799718182275931619374646217596740026833753697050735714899870143938445388494848170578042589426462939639932346553270078103220732702840333003592781192234324196860580884985303268341599436797552003024621916971126202239321806876397205926401319904459513903081091916741174391329062323522867972182601421940225755921203777427832953319114751221836918642744656475746083424455858688406255559374423577938855984521544452948497949895514499409242585256636012272636848091674425945808253969471600190480634179330439213846824938867162084622361098681335715350941531527588806941789413172484029820865135211194197961217968029649150496801461579013175300915291181571710206311893511843929332070911257926764356794191861416943821521088739366168444971590683223962553764682425468703136350410791839891723390813313159127066905593838129299714164374336434196095460667618063014647485223189846868626493361690585827155919931324958361378788195824647979549267602195740951438365203195837360265276104018924168053319568230207629440578880271598098385135449959893568225838660400181901004651680480698252097448895127061888813290851440841639390222495068921003312620897816555430045316926829103379082214113468682139415168754285254241726501075256039813367846805140528217029529928261738151315191929975278349487112813657802886830805939637118063196141469729701232518460674249298615484283088018367953277633093278582647863580120688703596122616828119261663820040182226802421323780352370755930003020512994491442430074719154791753383254665904058582883590345005850931797092313483738843512398130330493674620632915497223667164857580076663708310598708314475871311077956491134777812815981582244768667933108553529301700926497334789482523167894733371707581792284621365418728570758602886240691425490645638819078214845433920290742400186888944670681008345404411195142396521327932748527234537975041924460173754749393115003721512174576054958935772777546326832093725265987859011023113430820463974405281194597577724957737327597415666148505888645133160423173155454266748706396567606772407552232535969117618492563648297485101096088775805645616012355946802720470432650004820363609193934667877265938120610775070359625677595658822539082797328232993391971783483990943887262019595041555958014929839791827307205400399201479973400977314216720315068495021098889017696988997419975542621918866351629869127815010154025002281207889911298518410308335982222569069216420540510112617380740219935427288248716841124495421003658099624152067438463257914344984678762088109260482646899700170583450035193700566283026554910836967313734495248960634260895885315629765786188877793534802805432197354789725476552004996024385573746956685432224069741033591072485260596774453907427841156545824716726155583960661062303128842580154503435739204204643602466940091678643241775132647062857659179222950373677238030681667696070809884977899304549456997393867865102732966052310050501201860699908273710451078833601272961428956346835935507575677065071603609779546712298786441414762871339573735016354670587423991509104542013724068941871688765094031436980572929822099605139114713790986069299505629762991937209349487450925758729587593534251590544641099531707116634534463118055308229811418786730835132897048765627558062333888649381712550416169650538526972149527222400036518123858837647391887608531054183650513825477505061145222939144212131319898717987898006985918888018470757959555554133025007903493213730136202973783556950020106886388512153520151849921645787415787477916148930119781759844275959462129246562218840215062824325532401844779351645309615437734085287612785406810256022034472742887185954640313978010261636779278611920577473524703255158958231305788346395557373588176938547010873460283850479006146060492179009514858625876053887274822855948469870132512662970732432542867518081146509449854406159938333633976930947982424311149522318080089277949420078851683008337253421875602212963335794809701109194206667736060519544039569318921058683289792550234643229620368638848852459605558421219140635042861379897101026387403049182596717680052509654081426650812650767062343157219372728775497064236094049987142235324925715784409667276992593759846943227105941316693399418839425062110660514688787603992472323532433282534800232604594953606241703548509957328641413048602679197992803908065504592762411586208513549590029662203618272817833609080557384481785446312092568165589064769092371803454513164352693404811506421256390762543026600403946047153968612630053572922736563068587329209290111330741756306221852054341922369950709057095855870292486935466223293271750872625874617923552638850140524834072709762841317886680304439338829657789816406681196304739293177148554561124150768996182491839346757248525665880191880736092650058409908844163109682887443440359734149794221962842177602628455345224467977340279714465439846031270429686728052169017610362821613502943091414330499964677890171682843899259922687283679701263543867558898461191730221961839141835599855168624130043031292741153663426231693051452981908057897566766095844235152522479455540638537064251099024956686419932810324695869213462249217649759349608776237071507944161022148779561057837015048908774003512921900332890799415738170038341078477275111091714646677128133735972855599491349110644911235677452005681537199011466431037617157297544009102408577301074435375690142040385131958357804252396305015638108956296446562176789859872303711085558037005667157240168253701874095220825410453005758406021247250215933142269667585761275694138661282249432404725616824580074667370574966945124008350209297084911458104296904757179260885360011234949337790270072523407957716207611090448823367920496829359312659710259499872342384774796459850973804005100771769238113336883065708276624364843902258995964815355907163309161977841584957157459943276185440213904987165785681706879556058786566333844181082851387654649607510492369816098225439579156911921413054123398227595987672243866033046062645773037849794144929294747909923075972016429631953650547998361917598963819708523079407001570863202062885928838979140211860147531641873719856233683895070991702497188246339200510007694219706416699387713304758088686803370271493741268922546834232403794039982401948011432352745232934439708283748164291710994668916061894887491108312389920011463857779578533569746183207777634380736983477580099613899983615229746216209549833333790756865945934213439837673329874763374334517760204183560829721673778028688721959094381450753231576311621030658296368525840298731669386686820255932734011453238474752148965524882913525890048576707273407620726279878312803912748114015110703166728257650850576131645218214225847545863124795519573039988050637010255740151624974213438026171601244946973651928160925589402770756958244360891117551393770821042219397656320549431747914098137005645521243922203993879015759770852725945034162392280020198771414314602595643570127368771048732211374026095718599429128655504840578287133847069741440127891382421922926819614480541454495501003007892472222277399931378628815454488679157559756501292953523722405810643260168937182239376094124281712474655922508611062391466645446893766329818685329132675306784100063694529531949211010033869216550538552161561760745014688890991842483268929759812146410988497050980972128140408182020778523614580555605007738191888568007050951549967273270323730355796165608720578278627789882906875820785900262995263504909380023169423197842924664979388727941469924009968432207591280981799147680187204222407458720009048065041054522108587935647146070701030156320557792804735124695628179630807028273800022923488831441178965645087658325133292911721114140074017300407024644154883447011593927663383017057919440123747829129046468813324802783866181144379576009489661861125591591473939462024867548456637063953920904771585563426650921178683047998279233032296620532407851190228024039950263995571186151417693321204613446811946387581313625143458410024736515805817663389168178021177975863013984843918666077926247396258974847605886110180833893101718481092836996893174079723314865625380711333575401744604585145464479423737129159878557208028022340732074498383293198758628111454361015547544914400736632295260440549484522453341926026429965867719290328672461722297010847328945456656069756618216245246751574492147844579972848994378430973380819793902278045868878395911948923805510632680840154209044375163547432098302802956033270018543996595622668200229041995352890059335198173019893232949827925950523753380422917722931065652600814389681196390104795298826911012880047952808815441362587837132916444002813833395256652618224796057508597495671337181855572675958774001176050569901454832811573505270514610660952004564497378476292987296779252036246346514333471206678558170442496956638605030013077935614840076705535132647127723896612978149180213429648353616937993192016633414799595205042296087766403493377176962210689497798731046991441383805783728614154243232061454004850084353280531278052833230242477098408109654359655202868123902687190699172460417529708910619940382369235770283858288175720518392859136232278542399594064378302457704527284445496405208853758059312873694129438679152905342564020944644302112278286210956634796159643886195558203749178808630734606007596715067506316141574069140597561938137493022515032019682017527771569483227481219107565260727381817293389562664509879861303208781081378561022276343263786623159714049313749870337285094578690474204722078883437103446529600174992240891959799845848908544918085760027883831017831691760834285902431427461470317702323840649532944801933432126215525495670964076508948868141994388650039319764855910056292349760880438148240561953466194564280771249853180403540188354582848849715212557472607882843896402852952968448829245379274796139714024006272003168393658358292513142513832442335404091133328189641689037799470801855969795221546871999998073676928577595905717282518511452518421233164912350446077781383351087382622410039663559417329463347658413433999786089604195591048802531852073187611929036661936490518722971391856245354545317023966972028961424152515632369159024877378295421117793172804050283983965950459077900570057210083578421012587888149138665104856432959890521679082035909809302473799308042033060544605699164172469544600040474560624433980174934164430073126534472220969322482686137369948038319998246948425246133018741076351827418871462370653907697881441969424240408248610457590105510588161546919865557234035344566460280127578489639616107409780299809727164022665094376871116684502160245973019885963536831622111374226579577957466986104362778982358404469385284428344136590478464405286939446575322804786893231322765361759651104639895322473539636620371854802242311824466817568126824626944803540958370841713451961999861036758417567292338360733366843507034270301293251645662735201015975062021880509154569555247846720678492765381708487929646532587658411478094820951354668616044921081969118014130732654066317897343988593753500953471753341599900324653339433698295690896962683551330657851617064500895270538507117322263307833429695665584222779025881580947344665611613063138697317424070750600652488378905193408977594876617484104046378696167864466775986322933332206084413731069171079384884646871045739889925221194842636259442930108467898024545569794947776617340087466595811398564025219802133105339169595021124051851392276244390728194283787037267377090462819627999257881069054579935872702011710369040687667326871728503445622796129051764417378356063977693517532747925744705424805105103128855004740596474438348321941093080108354221899083841284659218108938455276163361079602148418367086157783798204772290720943625600286963709000830707332909773271842498653944832415286485543040131694191126932287687902879861561724817602577878471186664831494715329500957157808669431073758838206427962887719286414029104079573946695295615564553330040798032585781480939148601360427867778080942161259204595139029395232795163909741464686384328261007240298658234991782453430601039029907740655688179670107684238398808136774548031149731793743414167252152653818319584214134324218644460447751966446321717203124225402410784549585950977066691214048208194090695236235457386320552776973148675183291772208705707225577742607480476082311753017939318829385377222974917005192002885077963614136655943412548061393427548345405245177950067668981226435208985209824954952359141520697759071685270659800162198641267660409592766601388175912797575972535205356098962290535959456934011794195244071722612683312157373236589822606933453054683438587134900502570134578077935406495824525006180181793438051775929007688336693986878342160905214950705115176929888833364368786427897737686226597369563369311630497434725220127255459171948641197601386346652602453975732117773480869566504237443026040539613156779506398689767812840673803483641765351262161559640614503759205647658202596834913389206976066492757262728335829732487128583387508770147542079306239166430137013359635602525691694273444453224587441644386029587665050495710987293481665486078086417680613618351900493276360066884685242685358955280908996890292956857122559623764104212012977510849246080172586688664652361140754578883199163147880282582459817946675282487921720038961448138135191775487986227732209703638406878345645406387980427714912398176233966952608416220508570194579463802462822187180354850521599730498310593995421524628876285345273026917799016254328561252948503501234918402085362386295006906772951899700206157563142727189318670389491731906755192120937262512512123162062583551830642425003694181023740239342629241191089138297948492143368977352201644798219795801589121533753692319047288871550509884090544714867050768991926034863733464201330430855416158118026311554355077402619834394325264522172086011391601556775237694773840786470831175016283411895181297127542616126661784188618089989464860794166094942248909960023236115539985291182839070600628895450334111756789657538046753646214930405558674577336995677497726438481608821415272868059425628267799179980730167223295956548405950006292683922768299370789244636994155336603195494011833496045240197682207300797239233480097410630645050893843754728719663208250517937088722776431202598584980689648769738894483281650797533790496921142754893877291893089399029098392463188452405196000484044507127139154389353306790646690573406369031221735112000940393352238092098543531490009857740559063252207390950113776437702671481687106661854187514438114398641049079609813246434995906762213032082530251053829454669630730774314403777750732755125323490064207370705335307759326263780083389739779819794599980861678256744114989436363363207406471839311699671860508001513959376484708317772538047647621548560949566485497571728600650141541525609333174502524096983838055029665011223350414298362313098323520404589494363384254192726662284636595086097168912500732048212177634627652010986077906845829851316139418297371653126980826718317433615225036970868008153227724943439198990085446138570222688541227838721614366063595834819147725542996966052911476538933563394573926229730847632633662989990561511511717582645751468159928264117654084975580902133106096338185115034882426253955194621388907893281982970740851089836664811238282855999290363376890835723974634072016321982833461760163437165711728879028952688887799065938757101327728138431738670216051660989963423572975418127298012199509015605699939689391136617455177845362947136526338696670400647695638370271668018819432189156728360932257644560380273053562890375212954351817502216455094726414198415783419316055746976466379299171734789284571580648025554612761344965487237540917908411168713554187185016138106245420142858045455096986867390449975978624089342077835639022635727256533445752572676398381907163359708173127958107665573566093834535298592842596713493857423888610927988235545493428104885369410681140277329377908716230690628094554692426859659903472022196155095775789808107464546696711619891582611882862398838446885578350698926522944286829752033691314230110642689038169158610553199762713368710614969585541061884837452116555005398353053342652357447576341826586360755325023124302544748981424300240066530762981480951120358409558897440351629991419787831412059825121258958088400702680847122789232373169202516282952369572822998013648506831883621468974938081756534785871973195221694336038682242823410340780317324192809198272535269127719748770910689535073672158397055777364405447756874788306185024701284063742214694107088687280913550966930370717040649308767773007962102949115124805829267526649401971595553457027403855357163069124129955798671086407132817513686312027303484371802799283226070809760903053271845981977422839070610279959276976002477449308055249371168101021732995501809245341217519009892799719559400615675640921597953913876110279166309403247581201845089297151474895696441600174804588732819869519699712990585350741794281241244362041211003536939630943157927825093050921721522189660854192514076127135956731725346887118247261487894057651315335675635059141870511784226641550989276241658762808172659567606660110169974908248070052255843240667278994233172661353881273187100780046916905630301263356443767551156133832717766331322188519777629962442230141002323519989615272914279994454000443049750073136574401144800859920599406237671750607345323079643807561156222737125955329757401439433401588154223671526703255393988934774737997636697604457186547218579962994650763092383972752517411497167843101657189437069736390010847799042763747913366206260138199239048478542235032236608604527677726219848451866476570794426666510007084231753268306555951134310049532715467521535119700879092878475607267911083150145352052690127079905661068283140570781373688202442081993560510951392896952131300109317772502168287670972333840863304539764840530928166907787432268904843766760342318898122661720444096942871108918253114881346290935974927881166762017884123513023123850010703288687600661546495290285847672803890592845749310692087637041102834451161405786013308299923623782825134714308868480847516221577920023159236553954131575436702493975584845254769510641347884215221372293029249684974485778118377758600449791827557847438604739938093092056872517938106844794702956476202721754256860324715098361848347613455032918201278289797075222518180255586420786953539791387382206576320871654097486270402410628185276184062696287849607341068737529461600606128955669990753057054783062944140577091115574817654522110366400700591845059015535324892621577386889602463013139912609993951550913072775239384971970758265587220624473287816203514728139752766434752900914972015720875559405592594717561549538618578728518250256660070449493017821615824405151180293885786835764699521154072856116980457544500166360090422786380869222789277552581712629253533130931575530747904387560119612163679560613439660651704623184344663526061995754490320678695590483351141538199428285953629399914090961570477181167800034026161906116756365023060446199502465014912352083166079690555032716126640509273156399034507320418792665800517399412001243201212566507662241725715569107285240370043258934712332513447869651065334845142464830621433677127726840752023265574762092405031795831686249806160408185889839163002839781578653234649986359562709719928893695974561530617304816806516876629453105358530742493478842760164992015479281454247608658893155092365088966508389566442557448900353240630950700630643481782393698200107912844358724713936559078051910319550650446087141462353012952620760695600618182862799585849443537173869228479261484425803528373216949064686178891763597414402650387455832310488510308734880692356880989342304390073767141470310935009702549110412653664845209274825272580500402710171663133517592655491946612564782917244504312642810141764931220215147598264436985472135836066915305406185354488785957031439151063724314977680810563949869243915872872708875231602263709878953357783207874908813952013278324490015430126123839201494067826603007177111520656611472558268767443006122772475496868423515533317080588886000108609883090229728546298008407477582984360159666435275881621839852779791967147495547042007090786080989498432651071993145503348324840275928484725887052375181376070344702350301458547311906754762491745283878095327076489243046663880196751626443975998741286875272932288154871905711925591436161069990531488938306876295507739208459475948958100347129153644364911566687758774499189046970534267870582043819850970638509026586127395494171534243112851152800421977885611370204525122408370471880692521400441772295759305709573075306406999874536056794284501753526663585978549689309754014349657258362431100874941093302694365989293955887099004773703318699729091284843484661997938361898953674629936613860387677858927679383723422384068513003278367419099875276450596892679400188915922017333856562092849982659388344010031281154991629445875955313377215596317045605442307523473114514562255868955113961770484546435267214388678039453953164051175703590505666434537107509907898266814035602414564363591176538306843012020898668513193988668720653529150347089550621318485743907747247454898287770905811866117695927711100242825702319010810994593632056301224972657000124271641302948808603450451941077526492106379892597630651440573026332602562116946451388837701801575406674709398095635469667780122482887832042354660212974030065001671516786365328316435955340673883721102818758567695549862994517256682805151208702213243034307740328471743892129597991795392913061768128421307319302526721365334038010041743979216238364759522533464640217226845326803137944637989191976434637581353369229594048676001048079427206641712197743284890477962207040106659213122730936413870974189772178776560563369980567219910136614000515766419077093948595758725556899046071265903160386764212190641277829926807582407777824659617315639555392648291039492558710086446104876399364502147971366953680118473736454725466804823892618812138555166695989907010891959970647874448822897575211157464227627717243433059190791083684965566825837606775391372922260373565163701811462866874349962669811183210368334108661538880674703420153723764631577898457955695475982144031676885960152313801056330619298014952071876564040768401497304069444883410971947526957172290240660188786272036765732024692412607032096372493353855121744022758792081614324445450212011376540015769184121966189272481019008833430437461169818820064708301474021511046919751524530910252076776429775019122541155079423847446481145754608590813047636101322058046805170595159241860631714085614487448592022023337608448551076643236044409237035979931591606299076204408523025457880294277314018041246866064659042803320773835500326463732767994216111393129767632492736914289914063314740627464389856462795344190108517650657090698873721144115192421457030429278080937593097522079504545760306058102877874841769317429045780017247877298923648411986593622423912723270541375431414963616562839471209672028687334873398916168195398037870393953800604058908518368022514649204856999260695738993686325564656600289514111334389775146552475055879954597969529948604756069851566922583868296333676099212996439044733991173740351297295167542096030240338006326607422515081862706875193937679572572495988684446717525567806433032552692279800183467152128550732666370642000506787042900774132517652949990452556968437331141221536823882639266577178862870433388582173989817402027102881346118390704102604759771286437583630274272530242233281414815916349599008429185338829623624164545936974549736847761090584314117505932966596106198992571937473551845897436618370740203220432813293997981241110752040272754878327973814171760299429614873194231708690403674750554146184800296690227973632740194696950313180205341314600553463899974300222405626489719335396334459589861879347720439935922453954273437937078277013976843144415567008075529975791766864888024895521998157612123792497705921358208256506904172209600503804329505347570749412116297229542851787723124750838673958630387007806967647310150123396495141152760935705323576563148351372691681447228674673917979311043932843114916436854612880797507352077582183927640916247884033066189833496622934605940040568997821539734209470107314819903285700925701050406623630426885534741804303121294021819160114424170115359295694127610187039265319373499958810015197863246392503614481920046424229592887911396133515221023288823965373216863968461686638731272754444913307482412421316594404836851157230372840664665504055463897101076873856527044067157152447178418410208882653278209716822436420560985779764563651380686081466176651786214333507290961027250680074192804476923172727966301020666260387546494152824937423633551766372451674704343961815394570170002624514720902357925236236108403435499380296599716251377086344870272771781290482697193262730023178018622887418703004936032109831015376133358271652801584226368562443954399604660089763402907181928011633039221881472801608737958541010551689722942038661705571413196676864142853384973347494983883910790948210110155697924391514484478944250491502002028236870078314270825535505151641195930401549453815101484361238035708303753476745156366316769987460927926462147882888829479198462061028810986959559196294218853245139998683437037673954233965537994672901373717282712719958522395577599533258391417711839640613218299814180238403298205908118826020334649118037286804769731742345460705692200794889268332642155270724629801203867252568760286022479316781882352238265851792042478486494677846872267686796806726849902445134341055061218368325173133816401980030054758770414233176740242181934202243682177838574115774068513802580096625122308727915256341705666661221325708037739858316601736047596445938362229106492100321636111649792427452107867232124640265510705073110617198187201599723333267930054928360609131407114691704907498593868498287013657800097997372883781092566476956195472267103866742612427818188853709165360961974859522067745345427510215609770433362275714925526256218062452410491961834607622150534298230631118168642960882430088042987578436387170789651071164167327913698977233490201083082684844441851738682182460904223698552191340932804545887097765536939089407507438587438072789333601394202676307433993720653809253925917652182983537394692175096030344895447640206768824375634508939129599260601532650341726714739496433180699443484927632326587468121773831249958623182755146734154394873868881984801353942360178060075423148273808548904636975497168534751172779786375959186287742918213077426662858019225854566526347098360685699176951515009965187469361002666279358424080241774461662811052707212747761832412026500466170656501247034245028412625827717907483986187386233585547393767726453032060615829868183297257450846287611464731951646298355069004238479229299627232120745434867687375595119431315254436620199264842028864524128370672321874430881781645831562673607159071938377068886677802804037805947729453234611193739890271160587777832958461297736845543796147183942201780252256432918998678415914086489827012794293864820431517155010650404957544295628322615834394224137861072651202012084099742146726341768024060249925602538972036969003114886787575967874850047277022733752115112084504674106650639920998973936569661180598497524743360843124362042492324375024360181801546571956832677503474761620077434623972884476818843323991709579372823020555291320287379127618682156773699297291816425404592643576866024093395902627993742334391089841603167444522365638396481995640679841155198771228896800940640919015754515577318575953575082085849267986684269696976371362034800489351638975665963504194633418529596457239674890152657925888811553279851510295666125824518228685768983263906336661083550240228414784640180563387760235237757358983090567101644361472406273810896723446973138371177021789861675848905913390338489804910884830260697514715818653077635396518318897540158964232104797394617845085206599314754416238654304263677946753087124063220986074434438085155450625540616215719870471889297518222469093012969994403141827904718127218254507233911796629682867980642330850457520847206584350431147792742222578723228180131289154809179791815836552305570528891571258077802842125271664161395242756283942815852764550823446454849666324305413802380121883782910634724808903652350164036622381682181659189766526284714776733369295430689703487412204432541211291164786058427343776891544326502131661579580591342838180941447999534536242039769967872517198415048391705799800919032902208476867158013550063609947585233405863272332263760220242597869501700899826324065042416733689920969042546954956367428067059960361023393909580906944533928969587016389157919425746192062862513688738963127817537073694004313487084407045769225138861339855848431690193977365537504279534325713795266618429108329069566904165274872811140624116294380261854174886787217788178886674536046778537976420441006975996810951832610305024140101216322397331638186359255280791713003589166378943404856249776002577597119517709378450288625922586461008875662432137655585003546588939089883737801379799094856216574276657213551793533918859013539802028689402851089411931901420754644803517409454058725820274211599003109136903217129629203561215501973561952531280637170857308424977311332282135016824751017101829899274507598674371672371058689608307668778988451279004488632067596596406242994546880952855373379511944206616970589702991351052904935571525774001296477489839823118765654768091883640043819327314942190812078303619284492397203345324767838360149200275042896607431951463484581098069916464289174035997170039650718388126543118772103147077857604840820133353871678443178867557483496775598819069594633779765622757426339678118583957599148889324058302858013777623017167393362137669618668462915871335085211518639359548951759087175337290943660291827765239070002511730564202694142251623999391764386918152039295425221103139327576756793772648976736438819123268523467189324456380863301399274554753678523495847320535872056019437489087982758999773187102000014323976470487028312158742169843150258755917694602338323971781602122839242668889782814369550846366022205395870632357078205868902323479080888545924953467931413147669161691009602558036572627059001384333274990265676975939509551180524962817683100603781068914592460901148800063491929351397295585518832632947102315116449861592816478842710238311118865169030525966159559496937079720517806778376533778676474661490691701380671028850764096793029085911327270919911481072234118879390645049171463943493098750390713645157613750684446585934421000409390481417255714635831950937421938283191413946887583944037330434033617085553013564448540366287108053407031490436633822640457763586928744190427333624339569560900852840477983938694521966832569458633760985101729591500654747209879199600884154647212232823616787374408521321299010717129018334961932608257396149950488608786405963944981700487850461957507614374765267321206172771883698843386360259274776061031420909738658854213015609672783386184061315481149927836098433487030111211875521920767782712715073992973860999393091207559668119754658568477273124876050652355646086917004397997772379542852492080460875419188600676939424869675988716820046229859725235426772151363192535236965433886508410538192734214796748045347288002382435572257276799296096001050055727056434186376900483389062764386100741197927485496648050592537106539057758453513812867079765651574215568285189348907234133861051587728911217287043244292489490734238086759549089153029078173637086289236930554648119408845669756835659639237402148532974171581838521005466161198887862759802256902832538384501574046484602179130373863697417247515321490281116644176058449866514322483154694824246911357149189814801051456574697351748915028917811887762589452349291752575916614395680296485184111270125523924068633274963814448872957280724879765800607932103518131387433020178746043978092632166789264848649879638135446581383840165355683943712040922691697706081549730873829827643246362819629662491178840316618047869895271535969018271309472272525839364846531366814545690247171486152082835790340236676047569988781366036226548162444567381446956340044851435266630300077891129347206788011684665535443657923259842045684508116580123638350114034320043125929518095531112680064881935276667323442598823648957725574867610343885572029621583253848116337148027677836233260393858283653960935011523177299698249564075917238686356470497543835501941059773181762593928611704954941237472853746743879378946370265104830997133462099037174021352453317531855628169141044776646811105097073075634439059703573940694962171315405586560766610460029658874857479809105829022572778539408119313341887735124426961556861496140098530577692330479103679964337861743100425575052268474857307052975532330495948570568765211479873909315897977354496904855618989529493239270918899325329326080253420200926817675709253471754626454376971541700764189746921876883004017340957955070222833680870665643814550157546085455246160262838647733281985207455968513452509018723997487709421007659764473526981683651369330785920054615422254724657050607089029219604450329153426053830216992002454667213928243913329628284595244470753545558683290260083895678397049013332327672802935218703819256762656911759739959475305952941580040668406468101372219081291464744141683263807016267202772457813118990021346030717036718792445827034047054037363438688181740435838553818886580617557300447500023456391801509596465633990574823648894253420135424917222876585159653639628619074961927029640069339445634544087825155357810458211867621925398623993137857742684250718672753664800172541751985213933353161642545609495955121977989275393322157376581009944271313747326615447415012601172865960820620772046713258284357929720937384921135195042734985761110127736087775103151691476258851438128207909729471843698588679546079830960148900041831961888195295254233568441392156280340584128839884478764604413361129242503876471133855939413009418954967541888406759159127184134825934290109493515422056922455823154149491182869863416640756844318144937828204764524167512288411544820328925246069290253625006314666050782898307538592167885540229162127921003224651246994223876129074277741495056332725446215249417244133720444070639379509599658757307715120919144163912693218310862013853651149711601618643120878024799363193520346852870581949077863649040957010340707605098233209824660267201384455850016320892872136916242781167391666949726328098962325355874001179078405669694416184448815886568300758680356007431850447599770423271228451362216439774469826611842434740786239229669276185459583627859928936376891868792541243200868696730700020643546019698476053048809071366622846374406362181524399933857774957311010835674017625726054636965361361647716499667421691450409134055852316073490782861436940877900555174279033370844335804641439703450161921646133412864601785645675822718330718006170230701953056484708016388986127072389006144771496955707405164883105403004119753629709514140324160372342795838706794587558331023248953513153266701409782981316119415275280937980673718745226157752628809111800573546989588275034297864527754275086805389006578019251498544842418750372611167007480583183744849458113207441225137475688965596436631947256257106137070806743274972720492397284625040286060399841241835798544707814845468769849601084357962341666758101256317464370619948657594891735834613683521112888800353319180218614376964798364099500071255078894245872088108486866448191117189692624691892277502518463863032467390070507207404157942369839528877383238659806942647995505663046024565409755703212158874365616344510954320019332122470977244605094804137406267080546417988087224638166931696381994790964373471630380334941433762896583107996772593875201540169621465237623075523599607656423526011206859705670190153455867286913350825887250280517403222130976423441428834047399840746993673690671457307586856518059380282960041382790170478844068973954049826413306942443898952960392588791171028467407419412512787169873585051301253715935352265922233450080345143921774754939800405124520357613868163704020811244742299139769405465667881985143130718030010886661326368184670863410604528761854878475865724734964812692537603674739205601522044719286786353980636292151720003506917553248947632464424147589511181684836783257618069758004440765618204325090486022815540072792833423238226243285119020801515126051349631951205882187026798706345845340497172803641022874162243688781465257351151766241929770918762916651989570645412265739882300943854533475985546026659484945160903904502983473979650862279960984915860784594441663516515069812874815520557045973369806381659363300040665464083689148014265424655803130561353760576074757728398533198705498613153175739988542934254093797310003570816833446896821760590912646497401807575871644413926519396101446079112473728469467620896548312209454517208222309154680049715495068013678795971697942138991518310631222600667908544088000609072904683299276073963757146326945412599704314262817588888823164605924689745326413345118281012586449190581705685406260530438973397940827850728508986090365276150382734806879231864087520484425117891531027755391509166687567405158100508934440121073024972742939112938017030716682073828423366086423357394431192299912249419848309871729293042289624582735444534336679804597670885562816028538233679662819333586829567899479937653167185753852890258893688052088921976147715444550675849385926157390424466030963456292232612797380608142464948806441526233884804204907133031875919452871942029576723017711960369624549636391165362705755163022772592027130214498924981531991033659715062561746552094228405029919230978566778175694411356119483949036212758721886462999871304852193423688156752149982812214251262160713894538832412106102309697851190182069692367365342180853459899106042668868559794533585996414305834254280855400641995659034322237487015040119879055209048755639535294572108268926639744803296100749040019014875413303457386845562140345739794697210619865146717557842587336519030101019943609016889744510198722707838388447854092472537111799264500386136431204123583849707341596628012991190048144772211312566790437208916565050448307912404131615008971382340033727200503635175895419419915904233423612725508673546932003131660405018251175546997516972680187515054051226002168310980959420908866405879760536011561073080006268030173799228307835676504651741822239588564599417279175162548958203249860391808508223001611019178776370965983345939829861468919751984519781738601813729187080729549307557417665381779751389387540117676166808945870073595600815860240554205727034803435064198131740919673922523869204073881735956398910977282383612085686075812167892791504203152425495918649606258905274246056368524177126620308657959279186989870532806923316298406415344524372525495339193753891929244913134389953218029952011554701750108355180691099846909205312252529903291827305924471376047206745094422014932836464710486345912624994956613676422327074163085842275729562335749492780141758724481391528122972666158238698094057157072047583271007417419821453567739400957947828569150229506203863013086933993092515660120425750368591078945329206902069805551109044516048628230411344143398775645014917790406040492342509917354084637634896977021373310648538825053259519213067991316834821060487288550852849787320074742007646364365069292391942511072397971713399132179919079271855430792008920506140251602126884106719118423475221135241811713296916729798711555680116259176216665679097432493410254812508288728547629140040885873482168571881199291280274311876706856762889000363528764233343087191579955374206865037255436624997465544000167089843012569234031845762530513966057302501678127944814100936288391718877085040160408740694937403595153063058933742601386138842327480147381140047409825593660473088628492953396547560199638005772165644693438543389241515244603257270973547282528246350099459553476752662913237887496624173804791721507813610285940590253152875234331594434269545241637310482445958793435884479501762829213719506898895178609699779504820063333090603452338943712590448197256059771254956385560923627987729471974981476255807864008041607936517027286444060477125474835755615432703646678749908541177539679936588494944744139301427803765122517340902891311358746239471134355020215081743116558963265743831031130176942222414536003479692803852273562333931657217644585642837010765477153507259585056043548344329960663183583164077815961888337719500762265272331972497470893231617983228472469492761602325532844121171954376264583532145344900000594072163880097331457112303135346416400501394232007759074493747955590915926636668556704589716498203398582909736025081197834454235631100817889509165905099699680724951625396783417375001753555272111263858820253805633011361452300306708642989894512514615480615649584023627885770304716246360910939823188125005279759979101983323472067266202989299207518939484124194858452768604747079953703835745588404280680083736201821969179256175488840423212709658422133869373096731001250945005928994323505876161969159799893738639149858856952797639851882725833512667702169211119120570266518930192409209178049628063620597951103608559277910727424024482526366456247691851352328328361148782537967391558076575140348882906747668144321894044930849886985651343735823265281085992418667594071639931088418688497570037006642285782945232841998550125898606915516686301961022369966390425026283736449957284457211490994039261733418787366141503122845347007246661645844208556541768411058684110034367228182705617247556404885267949470968944734006705083463956284197426242938735715346096036265411004562214192156970505188510049411223115900084954143111414163093503049161314511982433881893605194192976733304581876929179774137815383815522992051309021340256730460591952862985047432096252678371327435647670616209831282426071758727866689782064868851942215318901771318794260706990054923613103192468230385624198521602520208939361875970225280633404591599155016744442063346678331848190321063355120002657242352085861535935393630382572055480847488211775649306439534694489818094016134136437258063277739659868613955465151116943924199914031307401618364972256757422455184018438026933200769998350826573033220800300240397001910276496173750232395441648546586126308517852309935478263622835848879041343705476744423542524101358516604959081238645908337099528532039435900911762475299088581913692812121644362072147620798462810624432789574275960608367587040043251712298726912959352392052489786119732815255526692409499273997675914054045766053494740088213090527453173671247893703180952834148341841957851898119699320080997800489777229382873841923979477696373868268411260279892732423601260594492423311461329702750435631122515497855650096238502696514070788356409152341208645451810229705107408533255573745978255602568996891309630356178208206307169578788647849156068515556362402894033904807056376597992486874418873545741793611165176460287189144922571378281187496906048186200190184978108992297770849857872544526489026467230894876638091736534466237216680765194313927349801564940079343604189167054536346528294227870784111936125277113812621984280268555426192863328507856780503558217048361574458136794359290763443410314906242721158692353752343029599472751931931083083329281893141879898270463755447110554591797373722671134688149621851260042068600211953390972907542742676072756350644569275361932344927814267972820596579575593130913982842797586055515179650119467985147719307769488867220231538646766620051073046933497381772211391808313777944749692509832546990172716045724760735567652149979150299665212120304435166269521085482903974468822416852782350146586816437441828876097129663204751765358529250590976447448112326400869910485647549573865695932959922706378954093031988335257188590001392930226507678779488186314515509825328929753569512736400383135172645866312454770756110052216189002121684535442991180515157108564322186781216731552711898317949638708517136399754606015452308692031970039181405616433313584034838445581383129216929424372239219561090208080098949142691867264175567971880156907690005030308660165633604541223578796213045838156976224424773349283460756703835659041627294001004395034135134126310258197249594674138817783778456573018309789660249996234716842216826523327681139818418400264827213958494533311944751364702651467783338964315178199787613697296799866344358817908352181762105163210818138690249339352817364725839418584251343231075631476899255420727460462242868214423454649787043328027163813343813386688518259264111756315652689380942083637068934118757550303176237726353989257381458780295840533856549442916415993519452682704981559781402988323643143715260301438920814892849104031440542545435060952353338696422822403103554357023328009104966585736798185480007577010194063893775025165428657870530841275565630181464211770710535133090731185467077973707010178152042209338879637462606078176509903068663423541732782907456314654836491378603745630365006289134630027141700782987786803495646837499845560627623381906262953017076345286631088028895306394427689547952841213476331837288987373149836317273027412691866669172728025397498320087780260969284848845765575598898850888123487717529532102423316436387587205520954378434342354563781619452056133582987944611486959083330880074608033825849327674547352412070423713803315831476860341007461406788593743835550810755260406608215114070116487207743443745153429752561388618272110190575211254372177679625903889076829064603092806609383435655596392090468927367651392313669089745873651884740438200700873117204310021690612691985651627628750566342995701623111866961177519297812146569711565978055434732013849515815410620504854539030074085984170168169185661458531949626242668410953785893097732720333975754507255901149269091742213486115216524613616496983404924316102624922843200827362681063484579637730658855642874394113957696521111528962403206024949625900899773105438652006071514652431339460209696019767059587545175868596299744102115152614838681245311529065384331972010884450319436118437979372916846223148560486773600586719025429733064070778848152366287625205617275883013012564283848835243251325695518699241279125462589202556158983640516974973953284093225670320652249361523979565473596005460482591050928772976837903522331451428476901572416918674889606132677289747784810066403058513030645350281200214101730361926772537829751001016794930054455856658936817182073754935624108014789512199023244878925358265886325399275710711991909586427559026888404100502845999374651955099845892527573843615073559759129875150688615169978483241134635723855683968305138510208595759218548500938235135056217330968463416970100830219650119470001470695888827040237977526286838073155671630039227427915264990171834505027798413469609020342571167146995127954022626106046110475236622389368573572899882700325303294058722890615840513318401726710741214941151780554626754128800224615166443877124336917087600882456453373453085885002340405760865869968462658975751855746365199796171191351711272946015636833269488047112897513678927081670637407949518030924753696589234180243146742908581929135324786519494225893325552481791316331234003043869238189161535557418104540701150687784107775943536450925712819806044084877429134331037463169499040828835331297618260132115469755680906067703408822896246621221704873154240857806347710839457175028130894621996170984126621148222871219052867828240155471773650403591331372806861214679721364509844840868110052420932261624467551345172612066692435407514297220830009005022086809569699014722687630201276888763697532398575926209828770511246642379445088557281019663054246288287563811097322494652973540587757870980808926441230890553291679084900451658419847265567638012871552747947077140517090983865940351035128813454921244557864731514826323625184655206322267697870481872968655815587476145570756947359688927347155767469826521784481511133676257673921783318197578760748054892960772378123247066054411921775572948683037406432257828144987646306120145261800928843452018832146396020909345649843017594835053776179547091311379578080070775627244701337837329013881860486031852916821254897993278569289035261678947484222864240018988173588832402823335305836001931424940857147131075788313498612982676537451129377219397373441503150694691873869253879171768242967045396373805586595197678068884898126271589750215909518631078642213000521778368849313768118757267368250719436429649431481292783570940624163573659056993703870957553397196046173463771632656986588212304604228751983550973704274644994967546699657304788680516932057987139475809279638090491522689162581072985073451767598325077113375531417148364109539295673976441989295169184180592711948623956177368739450954106188406063175929917400828021457717867191875627267419285682394535049962688698231562740761374233893722839141627968366603244503146276197881409924531152617648422273388825278810677095409351964323495736516327810029431181393283715546858885415745140151832521349831153810894547332547300361507045805905414142028118030622975837011989804193301938102266241323762654778885044974914125052551373099648556106238349966224190674011532163232721926360083659093344042439756411906399053561986381280914044069398738080545205279098622484063410207852956667265754576453132860342201457769943197762046123152219234595617029005968287324692376779704932100848792864674107341436087077695165027748179047206211661558269656670002767848053231927115533196323634920942701097789447138000192359783148228219887171879214520227899197475561358585327984876040031157355751608166111534350323144627219575857011723725619599429107922473676367308253460272775384063865865987750358534238199538905515398844706242987268132096503833585266883804171028715836342647938817793092093542525723201255246758980597495615066267640340697608653542529616430913061982583890761496849791188988147769792620939302001293568177092318959249477943669613814555803786304313936331906666740825264512254560131611453250907885992717939804305687338214355881722610492530992065469070221491862873423009306587214675896765661456241750650833771114557273141933049301522582460537911637299130529048231078923612561529952389418203736277166500866083211526719000595772421119106326176617747161589319434750065496854636113358313076911538715581745479836436628743798743313136656084903311665537945159882555033602563510554883477138647495781689831069533332452864802356582062531548112379293331769705856674666079323806192032750120267440098815879980003177800763609895613480920753501519773685410560966148316561721471459510204452079327765228019896628842750477068253646178194450281117715238034886300382401263155428372442643862046756232656977788185830948234080927281576491770196734918251961041907891154967902508209076735674637180588787253912859908821027633502159456968893985144776602956908529226737249419531353295426971862819432573860438417628495289545771587211050440657318774392720055075854106854564487240550715410789997186838373456204359133198807255334237564599476942461336654036720912142174272062671505320193506019316402696971764920074723142955332778104327922586795290447677834282259145605875290344457240749263311841204109322149908533707518161811614101521169567618930066141341827173865981604408618766661227240730623840138030698001813392350224523701756165286446222005505144766324167896106473715877829775417513447138134905478015911215268049553215573012899006623025802263137391589708801622609267077683512913269813571214031686875221903058918383741128729391465850586842447995780133560656577386627062838884724839677094396280335650702902371503557795805338764446762979701925353424728286976168507436881311466965088310391314897311263178997968548006235692668601328915829685506623950717542016959119344797177905043652032401980690317293229631927989161009213320936258844293069624008247718344023867542609150232268969752777826881436162002958925061199090130025934577982316498849175263843674277724504183351256939785537579817868967274432697316473930056902741355148169064324021873261610236195366484592578931479981159096013479695262267504052291504707038556353918639547915126696885859362710546417026542330183406543803289165327131510952593148497350542179036106130792051056706565092738926023420352830433660796347037114468558057626659933710353385906698534608201919345883632808454309449859122599204538644774578398830608948471033972809218380731093607685047510936949112197486243938581012106390575657374748730651259416686348865494520054412732122094388162343667980052646752953089230516428875976572356053904136377404533905458389515470096756583687381200512236010498405349971274998765881106400341216710736263999662420966499948020691598042848886288416574884603425506030220895958540067241078315643963224457779445680250093746190673601676794677469790541279907943566208277233483442138527385173811926851054696740775008265269371951598026933201104850116120559128365760690530874367132982856634067825999359923829668817124895366108695913998632602090834592160185915642664064396288483506854444578692141830638768465457869839101391094105310056268863011664374715107090381694009957378455231471156995439935587084689219126476376769095525388798127278236202337489897332631261493332079885100404188976010804897573253786152467390040621987838738008474869089479706035416395419755638393655642083070959725975313159746833757719661562495476833926576188619946726832613521367794504730778711265739090264064036024318200699986950704414915786040614069142538457061441396639777094535773735147828927473591153564827207160637110811774833427043442088254248229514603564041387864812615560808561537763729102854111275485477906653115396988579499275874440844794878801020432050583240769794402650105974944279056087261848413562933501909555123087927714348396780318756475394340749414263231614096848833033324630247421643810521222806861146216918010763171672276847644966436086854949691903335470098630864746541282124407974403640159899033636457204051920372826878206234719791824808254400189313218447946969744871008268481493434223166036035431422153683972457608999854075674908983633311818834100801031984013891805983058671500391969318008341430981751911772860884318669992374010618983991361854102412008335346107042384302675944985437803810759544498539251884882763927005641169069996322302155647917523420006376246355991389688426367577844442542453764833734087459371300849202955912946247886285706148547540139377959438129917619162105962332438054836344928166442422002162499390955520368072534276954545327489698228364011950442735631922277454097999350179031015218320853985820956793791539745682647886231368418590570768348168112981793283909380731923971679646913472631366269578788184511240709613465068484350128827325491800369827139713025473580220954054281506914356618406694230364279370415270692270994314025338071243914060003025756478424399690244814726299910177467804144175230664871432503867165158422985732114769630507450738639452019711780552442679538817396070256414698290256904252873415097675959382629117460674404430563495523446620405897663957977017307950785277780582207918195239607479903619420765791898363064411140606697900078099460639147717285077648153670344903297782366958947641030591562650957057613080900745055611411945619985718488537394342775827362766666804779661301422681444167221115911352186154629642708614652379051101082730396978281011683568050212956811606383799965701518174508981709058689882692383740516312305245296800837230013581227310506239152845189413014827713096220633699241241974301550206204173202416742342861202666580946873951135542855002979540319122530858529714462826158220570617701692272580990746548548888566716337951605219663318068797734546441405188431550805752018549119498076069825045819075057246818292928888090889003261878426673586920457443184910873542196995402900541742080579505771850711143533666380120315409695568479040883464904359034187078975102780832145021468534407809700008987769951291088888490385484763249731564312713911577376415266238502639014649734270105216459641104001771087620513539950142682463961648200311843062796984907823139705218797161941375122057838264062736459197247210560093763240949477340816983835450429827455270492819578017136074110512272761559426710000985881201616798058208308117747274190737602241820872032291652633614801772543632270866616105756695612982190327269613745015906917754958595022631200066811646676778804954273177762529692241513450613980563717168774095971815256715879931402337248523423732647813056747930880476326261722637910606854152055382113329857085215607982777821136070888200244783455875064061199481715103846301282236762342502022337665337000814864009120908002515200618137705478956902486407292069210246242531861430066632475481387693855301664688721605934670320357356848557552809274433158651427234656056991737969039755704471622641280122593990284106653228384004984429923900397293263236450784866934381412496720788795118959155070897665852041174168320185261839076958189033506077027553705830800741785954145698483823562807755423306826912258087504785350636843193723640865086501100447354807753451579488850170360281619492119652074315859680521278730620918445577165419149316010277959981700964004753952659450694999843335655673172264822334487697494579633334419724864304632387960795945022581627639871265961587712390743250350289079251239069785671078099265791560376137498835456154799566216841561900053038553714696207370019920717395086826557083331097944221527639896878585342311062033960350951058174959821393195127242954579671512593492994101872469138555110562770927235527702267015851077134176385796477915684479151806877430534861351261510410271483346335037893714490149718973521339706673257555900612012373668325877668174684373993779505466220677541017948984389721993690387035919562863434948712179362565322493900965148443382412381987078455833380454525749810722836823159706017512108243921843537299321968050182839947737615709344353290861111473490739149242001943445077750566986632573736568759024919810236121579038967918689032670974875516345046718500241907157085962289779255034654192254394394344482156047237410828455503487217470582813531402660136407959712762406402304308379467469629631236134039982542579118443854899166438432524063499410024004763208469727537244169094709206468083498574432086434077941178458749134957003602060609107863382106802100982745654696557932047324875457976889143742628210104578569867178098628972121043436965450131133416427231370823990004210315007543415199460867495191873002459971449907126106932039490525006735073720985791489832605086739347603651732192086445658494893226879580342229755267922390207480283709178937483112159200376426356823756215343678683746535435347211582215626291848073352362647823050137348606983428826036583500443403052939184790910952558588395455776238657905492054593758620587887293736245487293911160469081370398213404453916132413432931109761612364031885626118360524929725041087659439895652019896284173084940909792355052193482295717285487289693483256185456016430904483046147382987671479340797688853405133642443190901241629676209298917010880795814464272217412293611758421780598339375111595704754858678828384479087987655427364886659758064838431066008770472517630654537875399046030395813587843524529753058842337563476239957809431207466075461524528187253048731022939702080845024711830701042234794228866683571550206466623658152302000350702430409245844927365816077310327704758736526111606418478485674852416014074101323178063592690723450257960193742726214234461382001345376023810338080479562032415719489364357669967251547763197065786004773334783845735726365206736121883449645029069690498951710244395885722036946330362366471850994061445522348948379204506784359802266427878223021161044146782591206217526696362360266448891182787610145168078108464854789602898480174328065018236667238447322380321766423417839838359435205936367713547705662042166052267802415793543392632287025396256773822117833457609240194356008111234202160377713142847998091691795287813387212042548545150941605849508259076558087444316865033934564813950364328211815232550634599157988426054779088445346614730617419537426536645352810254849010309636260312994508956404280555697537949529281275337302995782014095381424608395351688305791501074406555673942087551434189919120560590333965118443585176580202295796828490869669121905707923310883162109054457070383173329423792368815877135017124205032284493925129104600127054036678777360123928028686082430005765634883724488219644965161293922636749089095050033258053679168675145148564003789608595707215298440559841227796602252688033394655081871461242930728166047195772644601402131164786434148932256862799049358688222776338909439485096830019621629700319376151350351412405694399125933193444098175937148765617573707909630812935305449366156079803368596350713045585273230620132760949362273979960025679832328092618013932691078024810725703651650374664816565130124276931860058629148415536286990915814040385890928491840667131484428143692504931459921489351238217498422576510773696261371782597146197860557281597597614183843782706913390621182614034045147085823776327009116943972295095897044768700428139279605770168372069868291475041968685451589362831912449632568218322552348505133537775384590943997316494452134250789919844841313768729688336452292521979998471455317104717704723089752674132428480947844583471815719199142763984575281344911281568320813457904298154807797687253469900006839451795059645341813511002847360568847704820163982116164967306980096307795961976130119098473673770644904444534672628352987511169423303894255603529335447689479805296243418667829342469078235202506255173030091222113580752831030031730758756400086953180575640529211558914544555383728518291882735630172943661972969096294783578778601604564462350128436467458978886995645593959848830777438134366525383477829527989998354306365306026855110849616824853684237219625225216703371146982761634625312432245748299338045373540772653823380677695654783768192645524929160112611868183927421575437817973812098267605131453998295591919234920594186083354312776002619721825713497126341047065330162251680281603689579971306363283973275487270155679528154580092594378966517031513735016311377581990901790262881963741934548129673477041599933597789011643196971339595954289462436694022179117926140175424610726534803217865836095246291269729989920283177026883604541565409054688254867997638712147916915174026925526086962248369644083090263661306908394721649680544327992577788961956905745135305776912082129004393298594218925947761850685196816123641545305728665069400069084630179323371873143781948646683148580042106891968787386024620588103795974919111338253359773629586471060595758121567050718784497248426847299082620293728352070089864879712364047726980625381416297856474925075033174319738556363177154093976185540159426245124306408601959795087927824515830386457921739470464067957441039991575120040922287779340468841273663207716288841495422325826125601421066521108574538294495149882327945391976220784042588447350509402633686372670402799001044345505397102072521112006455628419704609098545741135392977485349871779043828735280883367112748229737385825928272730753624352929259465903755761615646893942595976060778918862853048126832185234028029635860616024501903994565602013575630537447033670348257321503531910538135139717306655924573184267976219422555309857445633883817859794415353122662127642478240514156587292428293020084463505919004838963614171937898816650147755609312620169803584274160629207222775290668554300620874745400022141179360130207958546078101692277513602084983977185957069295093752340550511630270653204861826108138318680298731869971941972201049795147174608255075516725618475554425567743566773415966127550573008266360368196667039613279526412395274493985613928940803206997005092967944152505699506166708829294174264287118834307680474755197022241621183631685543482939224391902347117867945224668605572968493081693306898046384937119766350779371595110878478284872606678851199296263884071944497808182737016111864394104719016417498375759577598204438939590023458249458473866560444956187612876036782557865143303980005058184738167086949347224293897710808215677308836483779627972055319949540933167262114026159641045109733371720004995451903640236292658551390803863046399306172032008513311771251775842039207309496311366360295272086767054583226260752851413762627614901943632139362268253304818943221727620352423355287307518273953824558535454808638401712794244562126982771934138728473220728554831677314565389187315042649164331418748861810186236864257660161198713721998269622217761033418178881585373664326958580019670408113966708905371859471971110607969732473750555169191983604243304321306192816807134388747527503617597482486416974603195527336834364588890425737848482657211780829379826495517839587304906573367312208616483679969586408782474061233997274729354284375481985184007779952732903969221707141041098960446942117883939885445569417752165223401099461442476315835541814588582846992374952323073421655906252467699273476162673010612930390557175300055772152665940328730483002535853094052998222559337033580291819265141630274455316876639144402206803951036733243551891217585792135361138048634325046024525031032706514950948709564752028343785771610481278317055317574362868909030292291439683141701302639691220028351920123785622837542971860536410602962494536818195598310610952696033886154163391158605560974429338735807879300320160456365638441038416612600375657299239612814941797080502968258572595590647291882074070892129777589888350990471346483048561236209103776129167050567529242148147080515614986182684341339027346222966742779237678593041112474006645603369919733987423663539176567276360700931765201773007107927408669747367512677963413757258555823500942911034770003622997611478200894962908087823396378930850745786296556145682963017367865579579066712218126700073872935106978317783611714875466440189728702025651966897961669811628397325134856031284170868852639919506700940285917804078022695021407446501717568107915592781009095288770834151144327589922110119136661819016971291158073242309365960249679758123399336851279202723342059304271392136991617271943006024383882426017267272488204181564678299133457042058672396457926484780713934799950328273273598882399899226946625686908880065199943264650360375690776459415906075008640742822249541970660224010426275622394430018254632049509105537681395541095431576075311802382768675071863132000580640202679574664048847742680394500404447862490787093063384503657665202131834164770236965735581652179055777145719959012530272298166831961392399141183345526227436407891530476020893296630960239507409546671241295482566892791542613454103029618670972315078225105378218798167617347373548948294505759431852952693897007859521908591664135382897918846897329265356308306181587144695257704905229392096142154785444424090877010215954027305395449850811297842538854213936888468251753167329369315540549005823492882865313207593712119637026152287769456346749091871379636964566988998641790305943783488191980976622084879876979920535446845056554386946150131325885676880419611366061652656356746671177259045816838460430024244737180861211428431910515589580440501780359143017902021015521610137738328174916946363625914595860392202992613672335768774680603112909464268624744442986414883226838285572498391058693145971996830923805181300813154085894180359191290928090902736521997281209296098263398000146784061807714726459039046387403528544070459640191839755474627128845192595299017200741447331716053924153936733642363971035481192558212172219554503549514001741571382517266718668082904293186659331494255511138992974457122388547840685314798196307298077711867891001906592631434707318830406403116024460774656524237458780178570237604647787032337836502105084809880794685689117460985194715166223065413956997990469460298159846232717733323486234999588535073127598953177722258278464764977470352135328780021203272389543631227143394905378754961919304214217446175569236363301468588605581509139708493136340181843414269828057818144552111026615329685286674615828843150970688024730255611152456878477612667194983806357725612458814638350473052178784452684704370491819776736200570563400024828193585576555944885754901611372210717274831552096296066837175462536906097514274650261885002030972338489716110053234674696927848608596567846650174102240519060238572270460656575375072939099300988304330208508688432797822980495895313559174415848572639900535128631841522770657747538763715466439657218280436923347393502748752413208149753893235956887591530316919798995548821324383429144626893859107334121382142345740639950813678567269651325586321669389371523772514191374743609714207903401973691337289722450890828911064444893426569854861064837806078830349645289087750495708842725653828417991881665586799096724895267122313378664687653083398739702367202324607326062052846081037830774326868783908512609653495553628789779921134138492715742389683427566417037769688999734645721002984397912555717255058598741904266301692653117780343361668677827692065941929738934378768992466667397040515159116399258563735353501271858986764689690822944214257840241966897555226123926701955269326343367988944220171851607317094264199337593051080504923160432132859892769902646687179436899746184250435948296804638464459277554630524388510046025831663503168059997230902484119598420358688353154858383520518544915074645912562930545705605453552751415634491969741282471074057290867161519308397056961888079419129251069539648112528990852900891610667783422126343584459549337191913656457152134334210752561800658291959201573321457604856698362157599271498203762817659305562559118642108772712898953573119174539905982060028048252205935367510623337651045173617629820429012293767382563770479406262690813616149562580937123098350155465720684079080609503587476611853403793325985556441205513256227498451155719136724062132496897939736010332160957999579366616443874821398221043169977627691979067896210321910518435100193425882602495729292995732416257483419692500519114682145739772150915449258159474583538869506350253103515743616099523696356336983586157585404923852589474137346846689136152181597001446362365393887126962735690369229387723942473251479174511774491976497738526418810106089056685499575599998507166304281386427558073684710028259592816346894228329857778192466525514116522723045931831169727403218222895809988543345343438159975979224225670512725381315609614017176204770776608081776551482477487454756308531957695000022554762495904205473612844255013073233712249486728336187503996812549222165626399023828392150996874412045877720279024612245378513787846534260643818361487774098838225837590059333814259539993443016711534228107098668674822653702156384654669233211191435800717536945533688729328448462059725143339769742835335331381465991751601507179817331702707163638121796167857798712669532607959475377813680315615615124251757492054700430389579304126860643137171347499719994278378783639155597355741092464379262804824768151902729078375936283139380957057094226509239479393561396724556515331429455809511350167705436705562907201717737937076341350276089011882663173958541144625613183373491054092810777686614968749725482335671924090905268128923139228584227050820371378369257898905009506082169336852368942348804649195302794632445964305531884864888623187613153971959165442743223929280825444653814465745732439543407373521330705185275528753050204580632769081504754398164198973748257668387924838256549265417005402653292197572636993370989443242745767377063035752677644784341665846156438326382197086873160288326543875544663870843993417285729120718492922490103631525803899016894008037828414205064196986545247820293254363735733071490385117900031475727418073293281849374130401040353934261259389658491281664288537023981536113684713679791529603390243050535656535978581756692309264923136218051391989168546537028423174584091835690099982817112099804234430845685946695116997114780758016541766413448708427710330713811883338996147431698852619919946172085293569418391223047052535076395107228377151697373561802801598802310139938842221405338987063114000061697862144608250491043491129363460263202467059794576201029308304307891308645483281428125444742648033837690351512737089505683197200728584040114843822680502956259227198083741807226655655668239441795375392990277841011383261784412188869668490824501533555152661832189118012911146679433501837513712389326814145684409267075784533381938954871327723173726265303868826926984352337865651082460868071691283774984756235187004723791896202444598455476272335853929263042826992374477865327659574819717658259064198407230976340326455028660531020374825703714042746703939480123989395498485089370061359533327636878175291571372307962821555993995303264653754754363372020030087534384134574318027653867758086355378912558388304257136693166609784884892920230899402252979045628498259545834814932954007843734703308601812102914170289705072906630226003662670077497713433429693428761588660703012300230253875232661760705566590559858508720256396232186767268299269101074397244859960314936101871334681985517843971898850771633240997332875364113360093915612618197770088796097775558859997355393408842895813669883361218889533902345203398867897636131143477972425971864115488463658189221119260151083776145477685396380090453172737011645156636049935181030874895252308763766087981040791469181114274916248286070176234650154042128218277741317347686574727514721204838763477519270498971496872385919434196828593844927615642193153992157227512473175215138362964504539210023620189717531958895673981505048500802988971656338304816966569148159062257207787819490838397144543878822354368714381558943044491340959894964340921685385134761666425940242314657558875880893228376680448995093518156440854211006105923849280733716896209969163294242289610960125637612376093588343846712137639488463295738169180471142732269733070205265926771689267997571548557321649844645196270206387255708733117033253865381410167498276288822744615074913435443428019795314646372047301134405382266832404663147617432354927800745832717408754075131348571474787281682829049654109019926704456725765039833765544174106518650252727966263164719413732565299423304075986774202767377622772534507992475121396343207871415077066477970647114159094520238411344948718720827573920909974804026427384789546496472133189013705462738533919781750424681187500713984935708021239587514824689997192367491434656142972339447532759625923292022545287712311022673827099287552934450823187650536498132304559648140331253438552708523447808468262049039109119365353985948856628269418908397171616157740853146161833579409535986668343620833046876109302828663229975082605518104258104300171578151782373276164932128776369090293708752399831464183312336307602549107831079217622082398621744966049219570826189722311285030694048468707808936546052390793424913996021893237066483446724199028980666852820945393574437849001386793022080228613453627643784458766651193046762450064595767435740420103736144784791454397483337277670389176541888154887859010965050968140738061141194884711548039104596824480837523382680923287570313154948326603517073757649610933860358872462759840400851440680490368220997189527869555694756737515076393351906324494929895264127629633067500115803831260412000622134259001651755153054698584818212072128961384768750069879083981211986575603977384978658822232171159211038404039323213308847875684899432010214227802817299551755825599166150841576535489112842125385802275531669250953309413038513403580416844715697607637962027958980815957376860178536905099077666456654691890456652355183395269732844746712123073852271389364550409473182947878433847124065327684850207350172977062521520622481201666393476381656318416946967670058876365617224321250126759693550503623301121828481821736942914163912969076099163138334158369065189586066838609419658469167501306982441952706914014890996428286997159075755065218686023548635155999641663690620003230444532548608217109493059562184208810144624079927143188274677030173536573603379868629509320623234779045087708516161796945833081482535082388730699164543316857939350207737311316108032394919569856753980283293441636420820967067382971454264252553655155761705259866357378302314121472003033612272495783555781194246720474380508690712907078992875364583941725825203975789100133854542479669598968892774092788123155108576867701865339368586206915540019358561291019505717616116654258025872463155632585774881685369280514873140368780352419175660597752332433812412763328173419738938497990021172899808147808648498393525811224915527517948192967993260480743956538875425285866092268950072308857408005724613612740594584263393482225136233368816725335630962413409400478319575481688953770414830586348740465544299409187576406676434334376473173303569179757573044281400505370307182182976749933966045553345413910643906744131878388551126987726452076048137625684734499087523323798039854068040696677978830175689376616366401804394091536966225134343599576184908964044254126982541303010977767801560125874156568081779065025817792895506754111426679332327038771837053655792045528852013961339251796443566884039177109342097967897253868113905473257353117929426130748586066433637828418560818010873857043563301103225540590372399244670390084512131429594748158816827326974452515734267764985871397208834351163588051811961892459988795848417237922270123614212805819457411346106520257833047358395901383765550237496583443822441939048469266995740769509848710451999254090844721579607350088640774678605946535055024305005971413552970370846507637312904052663397482456800923908968212814595942070847680128933024559377897808070630765617621198546623992016199383297593141566428596318117853139178145244092182157344937854044158046193018967217266648955608092875599686146218745920751154934528345379512291847437012127830467102607735767060594568199864266714638757652564561837776211981864978724075550242505778435020967800464606364197017618900607714139519923842169737674718671666207499317117692497600377320908927737077434919345547381834910891569418452059918278674639067988347285277348079688585566367000159421985904043258461239020820021251616712613946009443236729407468767363870834939986451343847324975522715032864805298855470062866008811776893781254575621323506526518704073791153392089740787387974211391752414410889449316293381886726657067062398851151851109178409184347933609781181575909369102502079541008408054343963643626666358123199537594003760683691594267646269943587146993164140179557829743618182570131625132944529935059315021465225681103138123129249311307901326315000032408878528018100958123631968102718429954230422399931359066634031348773550957886278787137867344101101894394169354961956654198322058632354718838077372472839994708455297076166255315157107807015970124286269259403152767244170289460893470777135941692022343322111556881956210686530568409538642677172072178124289255787188814939313715910349634818355529329431540214475437507301971362768231249496055311929278361456607594842520856702429313822297487093623589642100851608651916912719525799580576273918047464860882534350527720808787669313804262246281760862802448045236682351304016016338599511768394051960272416944745104026111459985718959310738095968628635298229130144705207468759815478123465730405044823899881739338498128600582787559726224416969925396523050583636251731412041872575129213801095334206206047188716044747910148199230904558667217254791465207842583249200637681648938255902944531615076167994885537711911474916989664360312448476114899293212537828373333578567196281049760523676563758008170544681871338409025802960472984169772312354376469120236628058803033814352770891905519247428811050365143206327363308139979624850166147029749509748114634608500964237706949781585255767734453973251964324986728212274478430943167463308096803769969769038427363203247370267160595553997849164508215176860611155673832919366238678635003030961216390976212935489767852989802297467405940336892473489865310159062976278113448796113577602794220431263582391523967977731294500449404462055835713566608323325657301150172865571775725735889998661974538153400639913373048088864004139249960541919154417739181175361217160029027848502376068649378195447119929672042667879712665689138268508771393754287985464362140142365143194023224499039933772380913302181937196337378989230321462426371745046082314311128889682327720008353975073348422567733745286131808676013805695854169053310601788980895246518619539634501713254092367447762269710578259664430975066869058531559313496858956842707220695072259533580376187584734919826417201826303941831480409630430545022426473501099408550566180390757734416997194717002161148310389461645506967539085117399653497894325343354515796030254547887556829569529354193369231100594083027403584761618354284611284188177290495051373970687965117569360805038379415923511232141139423948453886206133088588434002128306432816684513962529701339983828361620416651198528700035931591207291838525831738199659411002265873291591345877562858341924455810215257238964882994143062283446973925325114360166841256300384599021994297804369914507148585311159615537947147277442515918336585222372486545790772402057804851767310161363093348167204111651985974814127531548805158939041196348758999179132303295747517590033105441603512817873922844965600536227336654162563103433452807595998812479704496729628896940729109942932576946759577299132539317639256876923250316730964596976397307742907079745993093401041019782034392204799367463305584566984280546885842473381678818388791880778219844168795519722863289571369807371225258154463305650254335599933241419247754031130524625076276500477852542703606320382268164624928661747369558089816778178665800137629474782368996360728472888047483436817137415897598274576763253937382404455674608479377169027393241407910192156650247629575830875118271998251907935595528682788793999565642929994770668535755622164958157325705061536422807225788934689017694665270243772040088777784699422732733695096468371330830622233701498268182998830667328385807648999492164750782868209810590890902814512577347161047034674911675184923105728223831180804307040917146275777828058287625647583693070953017738529861157696191043461870333363978943062185285312159517422259413281641413368568988218282865967906994232192069107339363067782909033075406707418495557666243553979416822047448265969470171776025949594061391789321213268038850414725591232554841231868414597472726486833559146187667300530587389941169009802467473771453302571897268666626676065415291313265831328647397120012290395917170618735564259273150537398623220081355661100477231664510699655873829838482137653187074643636213248698603953239010769665295034340488349477153582780368236715964537517920590524978477634401579397861430131833707455812663329996956303851760239376751332540435237442317749784993953060334061146748648335362021917087720327137661243025879593268227973378804393527854709317508848721197593514693090609010492571061283907061169503485613581537802568586574926512361272504774969307680525735490258542062945448695472761188892230611010259225387186067492413054779191214193972245662905072191084507956101923783192815325267687094192800466060492590670609403571627766398793733941786622721858387433233337967084377546307588165033348022685228638611993201482267997148582948636776422960201675685281871920941755621360370070590236235204614006592061400662639290676142711965189585142965417472999932692286576004764532094580693743160121239832079095999035932483917140388531312685514910960195631254571709975197462545505560626731578375218048379322417335825564793522627303403162054796798533524762932868659352654887917153054246848900166979371446877000888611170181652497706956417372360172180472143786075250915589900949594905967967951980354794316398107242958065675178371094823948080355038942853589790639738725818071328071307709682898977166733647183823759631734563131174151574475580765689373974304584268127974577285117974924137302675436200784736236501621138583502957927960104731727446092772279810674974663428850525391453367450089907645373290408393384161253515428543892559550654582173050367967317258042673807789755142154565569029612025861284273888498849491781379729642997855182364454390509790015094461502895778440346021870846703813223857218027769661033768858662522564395528986806210830103643885093289543534649873307634775533925891529361215977523038489364110118551402418255186788974134260730376352260192479690728046651218146801102223757655949674253319758179403282076861666202874264017894940698126246565636753234703749184837726645007863167777590576858859298652067658716028132185390770164058559531341305785050860970598762502436857884286817404359537478041634991157527968140944496757546288781461062844510151033724409576233000563963918447829399914253457282816824046847586098857098425985122013687456847297725467389018493237476029413106504332103308437482523452266840638112754914151238075234033184648900337111626349181844382003668625014186473908474175298488167786249128573777702558787757436461241194165737787286304403016127237645041474517973534339396752533251443448055310645961182503470474418952190847509044671928246350837234073295126962672244171500162592317496932026522393038736247204917689871983254141543891491034110932786810480106906422231646835932381998694046031902445504428944633269568363667729718631768368992714790540771638012486599338783344871178478030668487174748480515749585138967355821910689092888099372523824735633574882283582891410123620967720671877226473772663761882467500354505880884574097793535445046247325027724402633528820141644851484244886929669267783986005925540358749205910480203412871867602416567792517595472900222079076390411859507443234419485980804579044602798424431240101886192781327130894720294491370227072566411698941115482923946169705324869248089717110354831220128658751800666247401380612465042521287434762371401652358908509749095271681805727339154511049619942218994704479636965102044126867666293668223141353931531227942402634545949430743410311587211466554191872944476643636447467957764507889406255483433237111475764132608361341614959697804325641585512333847848557632456381913836588293007281153175991744833893912297379373713886452945345975617130715826637381559831814186873549975033740998135654449079760570140699529704897555655032886830766084589046348858356093332122915269549136907855068819210437119638733328390068731835789553986586747908492769672498567856575189544471147035060173799960463329831927871042479663861211946415916415357902653657682089970028642454569345761956726618259474417312437324918333736049085479290861047425167536341989849353596299187875812046492480927791796863964713073189057116546890662372744549186199282597619961437553746127696525163338916903455468043247536962134186729430980939091275054851766721070837577191942947214784932949988219379964487776906748172559149087731360835195783211197161754019380608626090826376619133255118859496507536367094223262879442146029494776649325836149552911905487353334766936558655102853846262707999074227639208615070769870213494993190798940074591259379650154882638991915950572753539689132022587472015700093595104332957934350616425999878976537359053312159384514065997384281268187293488625293314822840645578950588930914628609752391885976080698251028869729733013449101217448320310536537157060443494406340511135101178090213509276149390691763844036487818407655098816258786883178426501364236301047892214538164394569749082346454051833573673629425784557816776036311462832450413120402812021745798724339834566834226460467985217590460690832687815294242763712933944345644335863726478226200299366563539487623567145408589923697400849559779437257171906757740125827885682327120270713171258518030050376829500829447923498579624187207819509183610890830959254008597506028487743698131169074525110694538715572932944005741391026782804194113687210337289178819702118814627292908221159797992828958832651666988473770155172655693663824760358128169434596737811745211624594738351457932107017216853773549797105930569284861194128582868566354878867657386541948479081007547372914803007662011813341666676970669334198023525169786275308313622788513999047835964350954884013063456430780285432961685288137052563168393336042500557369766116105669728042055896537555944659346794298771681347651299184603546360737427970740595004725794440443876208850866246981767271413164150366639677364903020366811534025529318371558965021302775057032757107042002932346787969413117144406728794468391679867344361923536052531641480604147946305668935359430068058536329686371063543327882710779684470247606273686793344155192575219598286203272224700775364017919205175395160406814412494156444559375032683091285540720488966454619317028551057138296232375663282136539105879918633958955885077231479110192590141662912930190718631390823386169383899074726873216482378042681575320138719798440090094654417113217378354028234148752818925907860122758081216771846074918549900405914674003316861368410902780724505611481956438839460854027177397214281716582238764509373447364939062432520320169284685544551017358781789845288570942202066098764802380302356337629301686110581755419883065546116247273436035314355974361555940921322164306682821761607131491818016046157481748855195920085709502575136362451776869531539214673162263421196638374965946862980544225273643238464355089941039531622982549303600278130275253731406216425851130079641713249959852837765035219586599302039949563528451070043359979885852114868615943417922680168245171609381295601836500753537689065502238735198705825914098238727822108298648685455782653666660277360395761009006777031607020970631331751594777355175450945603220601325297831720952750908275995342964938533002406545051987276916696065663264575211660705624960962292425315123666919485206277438873711835272875728463487142946358673427577825649572320767034432423532270515945229241817440540125055288570988861347013436568635196894248242492181926074543667425974960543959366698144578040962513488260056564204208257801123344273438849025497556787277388764255682234810926593687150276881724994983792535529805888172037341057922729966877943713345330854384477589930094149247888691297417504325969651380300202786453784138997732000777417832755074412004198114329923768478084782097716925886763811010954329679506519211747800341310406508884238971147205673048090470625081873364482830846089329580407725279041195188624565728922640482327813959084555153490654137828619167154530999911556339193097864376372846573043822918384457593007873220738646939770159533504046775027235066462287747662429936656093545281063556468943581463589135511345364328672007472552519239028382964780007469416059905280956471772943009515227661176401674858079098807114977239006885501730997102274013882155147693523407094439028574152196625738351658708068710263453699317549122223417739716744551526259521462660836431553831417662933644021230806508248190672743145454774678100686613301019833890127605011248534975284402222958365620424102258640445382198940938682628899298611028957550781086934579044923703348914484919287543838907392054491163100433490389675810480641454883579188413905258525741776880838295633127016075190823984580145118866053926912255578676577608251614627820662118523951684296832976285850611324586827266908678046621351315902912909873327625897462601634822647832568605849709653221228147040450737347459013044355654242027617344176646468362948836913888978009947192983989777897286200860825355054015041080669797552901589060552825052165038363110695170628391467047447993182021773578071438056472553407755449963572601855200595618095783318264694270683493592308075726124074616664269626537246013068588587530318454678814856449405459977187008558066942345749175436582567776182532676510834050510973766363221796282890092027910779150391373446762302863569063347884723302054323301931107663976902035758298087455825446989629390462019889926828260475061056464730831097325603880073545673331201172124407350213315611187933584548613144216926455167154333582298746615764626759299899590209463444479251587697729277315165791815069186186176549277115489794111565441324228285909529659490667419117742555090987788443621094293040837416641745730740184332778100281674000022781174371357012062944971401136135212463549305045236906349172315945838987873278289515434600434672148578307058873918745608886632741274908731338944032789565700660484290853092377291710086451716952926751107185603645914275325933228000004660136205890351729084499449169031882970167976682328278303414680798871182045072036396462087479474511005691500063739343885273788142148439667278357927561624773544008912258569870948523517966392761230847478194244928341994016007844718001938819003975720203728890688613850555996428256466581625730544212446252179251258854925555154686516227763678853590350858596062881497908988406326351848623678840859007382766450963101686043222316248247635709741521435153679203058821173756699962495734392565296443738167803112575550669580056685741708325229403032036394159945622492795464982090415671560711743604458363554430824073847337048220805078226679039484019077776466623518857257691578561332585103482231426901666468092541355742410172620525501614925045479228256811634971233089863632697833932925074755899734789001914714804012462611249932062299498174076469418087074546985649863836763907508893407358225501591616003360844100582746453249533672541813090050388945745525720055523483891416328752252828769441917210573713473511688320824259251667358240058946558528105690524286149400941574469158710137978135483235856181685330120415661330082066087783684611451582908277849047973205017444708506677736855525454685091301803714533306491509230903290675057626750549705629410172183403205474390812334248696606957429892680877468627222960724380780560000495606785371760008177116447034284793741515656453862381168440061376033451818431758736386534032587869527369836770423501193091512595154567430799444573654775310684406376339479381523146105485719831155697983059969357447549775335961130542264952542816798254733302360073948151627570987935012983455063125860575584577349260864172046723871160471070238170909168565246461756955517863327576070205824499197494635499096519341876544959345435490840135268745662138184485086459145861293579324059063298300988076921898551336482688412144123818643695662917858626665982937979377163085871055786030876972184148323353614182261204687972651192016803981841911224204876735356077483116389350647755608513411180148060667571129690976708061522715149789987041063456876787396364426316158256701439407100706747027372200255273570312330484671195819016817710243442057010381192881500957897152404956628781188787296828713000817804270378179410574422664128751398625133796467266528121698396245182151561708939390115032421905906672437519277894401721259699739530304598540465493413354420874260626554273845256076583571390665006280938551837243009698959281286419700760460126135888833307930923319999632916228697699702241931982177709505729826480030683044030419254382692422886448816940660536862480477943036100575277782566508455106783092001521282926967624181234623642607269066419561478416614059918623871232423009218522854016478245954534290797780384064457921395997489567340691508195171904034660961856527329426117843448798720500147563785823688332990241953404146486380018481876004481198171741770075422963436928211094188487437957855283734774131464712112960989977901124597325543070031752501729146515367083134605842813531011345552071704411722007245669211986646774567204794310826710926184662393624167838011060130187058694467653276363462079529546723886177420873903516329918464564893685825518986787177250206466788385070569757493295778201133008881414828324367173325971586073741848295448326561684132578883918863090592572420495832313813761644388167565540861215324719419164592360601544283951420951999281760474384160816534936224747299375138040584548098392004643816852495036402236731717677864289756047116781740763112474830276869238531970504059474898737789181521833021605992076093409327197577087512904131968581435062206709833065199464053520977727977990429956229751172624860160141420657201709859166882762353376296701175117106488162770759962628681460965222143217341447547602468139481136471541242634094745218862113719420315166165413687725459179861007843347253793833795783577297642644242239075680811970062336243404588603753113802815747817951853162780925341547496226298568910545483053269436516106116761216134786400777762541428125798481153539283087006745793825345941281494181931028193865880370261879841332323222558860387806300863288368832481125903356576705427189922349371831722040958018393594257163294328982036167579415490476713383628924192032393453845292656091020513414130554469017526367351081050328111081778405894974745422769427654258128325840720793333137480905326134024475745084087796371537529620678745377261384357642197363282455288288161964372722695448465345145934136852560761109015434604046141660698302556632963536766301732365890969307329514364698722627831879728766781758832982498532220287297558618719327546600172021734909992058767071849027008583369078634997833156321342202381617017328402506349853811758135664929137312661466720652218835439153435704740260489699384570745674203373071516026413284730982908865160123461448258290038453306323582756811510293500837389925189091189964005778862278359009529036174026847880723022466509751195234771218471977543005325088207538087854260926258103899280782748962545875904966832807875688140285697705986738194255863484106044504630174073499878207326007931605446446702558052196624040245033024155378062603958854852380200150730719255326192545128654308634649615092682019327365636025209936410949579640679648497167513943808148589520665479833933464804769849523047231849420325343323006330969467948993918407861976331454520678824579359496808201395104597682857139193996477270903863534869664162989941184146039476731240431356573947086448007913416909737430488393437716270922433335935692419618817834595922614671217902084039870937961597592504786065155389220723240768883539812238133744345089177962932127356817206598633777605754143665588508060693209694520174144941025747336502967971781751143463764965399230308075231849588802952213082648095477242090203747262389941280568359239887924321657226017164103279728433566931879746394342490267030385450228191561648429284097974423615674788602244337873421047648298235314789369174828116211696189430000016121204162004050603279049212832242949986928153580358882540770671470308635653561836767298508253817311568948419241264585929787118664870764581512683961214730121727438364414009228957901720650511518153677735182227403704779511455708052479521043323285844762556586712714521187922417805717855619315017335097435354475959781173913069098122913162265462936251738710419205667742906755962431964151918340339038118111853472170235148257056851030409102342144229271078029101907908798416587420584556119491038549680062686740214514942533866464934425234968073491684129122900219919341451380724174337293391688618936242798185149931452100019484891031673576582336101447377697325502316212826781127311527506711516387930112995863824074737612180024215477329590210743456282907285167414238292771306787710465395702967012528990495041862125080646505329973854560977927236959187123008050435751264838951230570328282007939625279184799273349976376961671925360986982093778682256219892970916294340332303048168009130119847117654532591321076300438283160308995573364061093314776898550919969845091998244075818315454432526741572955184564797345902012430983831637087244202217987902183933610639206310897493702234327576813116336089989202894407531624577682865123303256042963486072551965997908368904680189984464071592796942164155128168406422438631313286718307416518791121051491653783475325222739722181095950431832783927591073705303796431853726305372865691540353218313676333744070374988474106553988661880861897958282600987558549911174182769334359074749652964392799351756683639567252097422116907910340633115143832772388080123684506845485483545987229567093730465549258705268233715837210037779540582720730897133366250696918542604315502253473823010199365708689248374258487774058149029296966125447515596199634824412274436885753940529005033364811270662093161882888005378202179666031164250271461104672382898935356996852474428989630916632990187483835124322524954364335060913883130437854578014692408033676411537648455543801399029944384888568111224980019118995317295476807699541469253075685508332434940291919271386964329177357143571134519748789181245601574884635967529836328105188975563704674323728870884423845853012825573082254826734508606421777101540549256351575692749638827902221063947065850995761836447154627249540060773057741165770003723349231184975248422422728584514857481408520709500303818207917016414376547688721792415675762199747352248493894936907229881938943979777909875074143971640510494050190300057766090678639540371255526206682360757211609069163749648371891884693785256607923798403523684405285966899496358448794213228118817817435421978083681571849071097736644380582380595410824448028699180045543213827158723559797004191183667449414060055050944464172875470134105354089485446820333667364993549192489134813051691982648329941147714607920909962911923685271619681852302665909393068204136555373585666958283999331211798462242082823228312302520357111239070862251811922548211196983025448309273309109703531476721649723758243111132493763226493036221753015234500822212681398892456728149380233451081760153363283018054073604914511130559202889280206316117202569496166783786981529948482105619856593118787829692203906484652270516895091556721981751648205783709621934701209509356883383253360662451619680707950828541433037560389638821906379341619113016496659103323452830458224869694044404649207028694644946871278673488009225933946159961237618499949778309794656598114856610696430887265295825821268507609033039629990008153220043666296256583327806859861499650517436435793555135425877333218444644387825509549416757713645070719651834820164222868566851644422634420124814935646490714802160153261968046434738472390744828718151966567979825953613771213497562033602917482304836830412705601090856774160980377973749979928322365262732576676899064456000182387589729979766591641224458291941739433160695379948715908833061427428686844643939932692051399368774861617204664597053816491538264504486010478007560479787819042060320705085781674143072590746213191927652660968298633174284235663046109758520315691365359273398977340067722094913552557602111480992491032962649533079356296509235722286201083755177436097807681625930562108477999496512055622198050506093710572619921290293073671484434762545644828250748502159494146050384687182242417377798030907458067941263331269058458577184887773036205369793577704394995894439266707097342397476397105184241275797386257778769156646246927772144998369468374465572901268070577420780543937568484144939896396856390281409479456783569446472131139203523563357899205731637844595115102907801809558211508678342421914711898202659555062392478123467112199610690682753627072351705947750368487888364135640841506883688424711174759390086414756416283132451894596101598843613944394095564864415389965329945320615248380950094917741484295626593859356270584455818287763859575775994374192034665567467164234761680000528354688866625432923600131013765757414349922950231266365676100552820652261675538771447945033725405986552228355716000853878533773575663615026420386206733048274213454751658566770895933357849502128123328265097812084478662206399462832361580076884162555082187623008422307597987263765794130194054003487765788428373837179428951154484159916040454374531377784916096559756711587867596331941327648455918935669487172433515860131899955099070167106166258865484048851511835950542744374038484338424364083220667413715854417345231879701480687689884113727511346349547479851376768764670797503157268833481202600899828491265056836680256462375799680593438293374517903990787974314189230493164213851447187296374409750764470869826458454741500073842060331251897963980615905420273804995749075073541224296430242633380921106773591079213351489627179126888263197992244994976153199568218917785628676854835124651963706630901200590545552996359234880125631440649228906518885595933765643128017197876580860103731070409025299183792514718558411871357127580479666314990549597323634583966979091543192660536035573613827602503940436657675174408819668053795422535748562236517722627868484204652694967086661001689180496566928582482561461529066982580761496161729837013420992582867015515529449271025766531303213645453218838948784705576746747918986702043257423242205693874303992871358819413096721960686726969210146445915356741959346681890275801371014935241297655562305246554283843167254601740360345447013601060701723899531569239566692100180457340103442492546416130230648262396935493595772355154839668859079512233448836316072001859423067293259128469020435164984835889209413331775388416372394781215529801190878008772299202104504588245935355444559075373198376702671694178672886813493257813586966626361838038158784847099285199324480351299815206801779658352681932701236089741959526746998511932122752359656115093216000258135781568438905980155987280957724798797581248211680599015235407397384782216536364930379991563521050306649535326766378638218192738682862450244932098761345556861456919688411949534920428372404043674850307731778566797238289129140820764731599783904626584520539539443010189904040139895839041800516165311723834355683778715144183437715763558076331011415819702091966292434097350237716829839101579246852271062385001389859721035575699954992118894623794710119917065554824567377198171455743122775879788667085206155745991154292006605823080526522854359984932106013511513860441720203665256996037872476270943418930959791430259662745517929289417863489738347725156290172523318636900051922907262214478498172352081118926003804985990159753669607289640679065595239388975828678157791109121127993560300500209074335506501609387659143448051323858480948480294581170578731620680751711540311080474324163067926638410555841276373502696138172654884052863158790568763091441153467036206208426140267569766696424057576637405768938072689864620448806336752839231890513850296017059158710526324139323182679905166261864724219760632945387895928087790225841077322383690139617679039374808589058344729848795714550632532800674701290866247775163762257482483195286902797186106740629081562834346105198245950759580225120055066676365156952433207215325086858840194943537278913078268970304899612733863905743614868163678512049155825358162352110491406513858260739205990806889886035567579506577757200903316569484542299307553414705131712770312349013759673998920471591394701828905504274558849295036282230872203938436403770936613745898534361984447461551556321632651045372876102028218595360045344891899889425642996948341043893667747784349111514853172731657828959084897210978758313867331135004183636257947316373482778703932825811191788921855623068012479284605672152986728812133131341476025426608411154943216391376022178681051220782694745064748999894596329030843794983380091740802800403238080671277833074014555015353858891597885246112793352308160058569673020990647545393436595340130297351986503435631342275528481994735353531257869999395181558421835536147343378551260206212607565479224717466354161185674784832184379375404770982776864027840474601526285569915500203991226538270544928510803744130392977693950063874897141389299447966291316549701498115351042660740089112364722437699787726039161029004687196332509388797188774424662949528772181224050588066505665472670519708450782057764958690533701525253016233658804830991368703750980948954444582148134718275438143728674802861549667957270864266950596594994010050035941809647431166992046610666197505366938477567974870512002213319969317498429933487847565781895474013150460936616186114818866786177519024480824746992388648612261451499297308132991937370377163380592874478560125578048067356465097155129409941208210152436602400929620533678552283617287774954860090924004150295696621711321319736344689313205525094990291858061298366950744583900544788132561704815651916377271602974470083698671674260824894341721487361675922820733844861270957496077139067918498400631302124677297228094939124132462328242182380531752180006277618365538514769017977838769713362526262088838354732542931614364053402790953200852913124012801595697629560560783458052782215298099083710821988069731529532777929688253747198806200604852934195416832830024198293936550676301079702130646729291425393550029264085457586265660463584471902215784216128416504237755917367158287425212514470781065519302684104470526093085072420944679298244903152197075134095502154576552404111557797054407747980151521597357975782940476182507802604206176276283145334160671731783016546081847207978916090328932018721923649640098287173991093072677609812245802384698409221978836202621220735230930253103370162386782822828635226947095024194281290552120334192877560044453435163041728292578032789658379343689785470984004935058033394767395953840831091740579709068994282985061345926665439220225893788391383293994255808738511359019742886204695419508391474992851401940034432952783234765405269125652038183680983593135681115530249847782138991660788875970835107145281562100911226857477343427588050508870137978115311216086409618164084085270560924377961376533136839608416761367923574004149284252483588384548508447263928901346414086888436112552619418554981412191677725694859456680599246285742470121109387244945931720436316716470985594918737021736810850641959679095677628538760859296929215976962526225528572123729474804836278691264890234081998704049008025915353837603653068958969394589237507947738026756582828739572780127938566299550645533605007694292147104383990525704434071264003139963685458213339623330263064052779676808433856900694289173018131555966467076172766717769970048581764929758644647126729306275407353208580711649983281237406698071997578033612499881861404775594084739762048680556602693370417399513307790593284897108030259669470360653376573343288372683880530599017422452388896837649489992071858832709805136956161280614371991019177215600657866020244148701427294623766837436616602609377532425839941822268928829251558150105785952869780642971158212865115882781546412382368817120970181312051084334983981747488144545942106423922232534520864824491123666076071472644727178890854371082459180127021622742580019875200590252786738943201811427589840839835722215612103966649636607071813592620216533363918794408138800824671603243097034063380402008329036104716894788761131134790865407359883392875833617881920874947039269434175965801080538832072827139517499669529790133761967145565433056960197094020057472567602434447802639493498889159392662458735525407028986418332848664214950154944000543320022782093073779671136173236934828694900003926405958703657922141140698318809731993530874138504754749744752953568226002729061887303595085362430138102603785181652945258769093178267222906858982758639650405016664153705222113443837640502459178316228702439684381501143911215992425871066155739686725277074238650310309363661892781883810794436941881337312687763987403446188866839281327306811646898327954426837986379035912004349141036046281444613582798921511980199143305459916533985365455473826390127467177823599775032796795032225076459400863634804641567825796184367920482172951933247355490411842269415388714253187897603226134243136203806440426747167140167379426055551569932562668192720782177332806092625961830509138861196434368610313819625157867993480304989831005490036110404919041513570821117548330189963954921668766053727696407040521516713621739459719617518292831209328663193795892736562647878896244845974895155829325359855930179092626167690772067277810735003702905768412979901924390923496529482571042679916778363754177699517518532239166258979685472423111778098248641852518693291099905563692584269466058551574722690652846217952160828846919369651999304326055294784838706141718649314995000268917100748141454508404636333351865628980484231121607160758681362570737910818040988612862386643291988533326357978820238131804184734292353292638536226658965376629964415575106825749003962924075500838980961562565638934338523671296199877704657282961521290956590895963125623420957927611946145220309980117664849019843546472042984579523997351885914020301728333745814451235113784429808107842698220971376911833683989124045754795837334257284069821477771511218310484724081118758407464002872198494404492771666056300519252229455364126863718841491638738425690969907774186718701440941014054060534771897866428988922525129062577505015914670225021453356857501880325637207636566120140503333348333889354862883037919481956659881456761414084621382558547230271915017835166874702114744647864331620347457128836288333284819494574628075310772703383737801981052026243297582878670570627993224911609674371007068979600582827983439355727305718228978470944476643801245177426306051475667215737391368572016105488104322241433586915688315423137546912748429259556570031724376705333352543952566157940383737575308911704996355748018744288435751654127703369449948563364196707292165371598374081015214033189653643018242111028917834831224769328751621734109667731899377299389588006235738467444541469286247490123208291707658918304477189225100779160469405349357391739842241040573412240948823895036205433349580774399621989020462701295903929479106241517457395636472666983209491824623410867045025031964088930145938692375035005038346449177655678802640947391016224976521361891340113808325018061260541964371430028350922984259074101678698244117047293418194355773178000812590244363874863082367588209325964130426562053496131348665886409963248913386386628953943022897272825684311006469476830736633846244570454208711955841940933096291786939647213871181282852697877076415761548829267255167848226168104036723108006789200425941785219840843287021773818161528985477922709157237138434348988284208007179799265732742303235636045601921349551658026168519883359332020831838057272366185768279150814906539950237559188418915369726271059636030292845801589729593958180369985154557809533853724045606713110085248421570604859136829623225651229844869404179822061140637250535445299619600434297648176240057922442802553613897381113244074760109207287627575642916666772375289843504948494301126426483152470037576000098391697813563659884855081190762184261150874852315048401607665608273166615397047194678002594854023507434242958666993915481025281309653449996231344563839486498076811058241835793492571468005652527368451027404146213697891017745578861768243940869745161205608573081860778753914778064537822600009596263502000534498689197013167055490496657066815225340191629336670386478635932871885144125093527552846336688153828403983465590736659529504135134270043918392925732610290903127526457444798429893510713774394753020704467822446673244163965954600227787954481220795852438393700690651643172164769370247767064174156707593327045741824564182642971826779300862784722004975983752431685226004603964303067658574550261142917434003936558803654255820342226404437626687405297566303699676154816819283870021281766968806499911344578305805240295751945881927846712305360687686605510568189718532355443864009744094297886755709503849921976106740352128128118387593652401773937857128145023651803356587452815277979510514234573484295027733079132431459130260529827898327996663364121694550112223118191136704375875754143320172233185472602297309168301044006996757051763980991781328391902924350914208271679705160479197000003253188893914311463801422668077498713428613143882343107603565440328826517123629292178179688888185714988630497343624236158037019987290455448737707457982534013113529311133770782700216900804285225082031173198373236760631331832142438184961931863021751292411207673215735954920975918121565891514956054221275246826752295892969157897842074453012476383003387149539979128806640337535472580022731474797765436344480430185056794797551866365506440183316608801491032845641599315812466979423134485127560908901500880515904476787129802639549632703465694194373842683986505995323222306577624891096485580903266218614819666777214519163424384515614309427742239597829909304119068514309975364195553544639873964101689058361805890556281610213384331708129472165801060039667616933109341962173919331765263243860610187698504326909071690087313719291604924534830679783121478462201129276121413012696474263887923625006915335452410545218014384329860358189965343456829807396342393357778158598235468190601313932199851609570921819682354454024140537786712242999052857589056127768724299521281843595469267247319427811127218539295763982776212242001757900671868644719280493857150197206668498578136805885082321514220774622580790535601999265909559574944206528673354035031869145078540273400992663627390094391393664259785052776439435963504396534330617211092398575845226311953621108310425991845444591178996299901464559174270159352158116520701717371482272796763907297811889328337479499539853812324563434726066592565965941332714015228415318073189800037205284071460701569335104660366455399929411774027787390691649637442098071586561580873274626191578262242232550464333139398109144554603446594744282478354351332271235389412893133195285137688351839786731929793033885142341004340648272967318057952334916458811730713239900889533813068211178842367160081261607610686859153039403472291061611766233711640048881638042101240599774707823288601815020850417245152039653212143917671093166670302295533197077070458646746256760718493630395845809335619612880648926321140448255115585220117927654763304267416384914796642706850232297170968267160909438030466495339256992567262989058650059923676523775551999628856395977493691516289300166079879116978838734077230654039025465768749670952657751315562187213254616712674436158642265014568353834546256646367207096203391977236496718441666163541353229150581521103472731400145099593926871052050555393320758276472240585622702444394341051261599386387690745139101308407509045513114123811812341836306284785998984577122748509721889174597450770874646095631032548636286600297318105619283202612595294204247150340594629043940515475592258574900809973841777664359807334336860256388521475251780294877639460845769061325537478861007048903972207290056005760736464692215031528683191941907065980608056409259842434886606724284278256931568092893663851390404905847071168875957554910211664623303782227192788268926187012554679341587482912556802229651760073368110660548209175770612768914135045215800535046655479096630676465983322402451745930962698462587092031314235053114362341277910085275960344387787338690668321997420106556670089936127688535762237451278673812381708139733696462784984804293323501368097988404061816876998566186439622399686919440570821187116547169731699796597980830625000034136079613939696758575554069717588013958917602953393314506932121499858753344911631855697786672040338739804233405393706612918794202080934129957828087013846379872024393165221362037516016860489071320555320698533328131356986395725178497119617873154128007163148258512502380035367366958684595630321382392528822637354778422252132831551073318160497078869912980343143287632692059149664051210671550875122855152635180795190592666084242015735112626211151349658011092605771029324524532637164154318227545178835904145743018905197792751642552681183142211460075965596675666041092466600654587531286999844708269356550814093601259713789061100099035524137108902942472203538615371265616189633321387554562541267733623985859614506834535514939276175478273394915790510066838366515075862277621549007565144423102669019204357459434184121154031294074042499926823515677657072028566154217912505700767598876027381210421981880090578371662705477014253263317252050022618310298948445917582598503252917750312164468106199127793529148579347802549556424473875977716745013404685589589435340777536007825176486467824861019766986069698853959181522439694466900489946226585466401173333728199963661319986913514187521915745259776610282745401508273570337782477768443187063591322344245955525383143586337336804041750677666675699768544215072715560261731352570077269318581385808568249222512881445688464410437347337600273305538031995184449577872845731856454691898550382762976113329286492311873138244877135050864736812635268972236719777910178012632751737271250907386374525774943670401933772224375715250716899537306196719353742472517314694558617134724160741697630901220150964124670456478887386455324724912223630277946265924850234432671407105953074713568174638039070293671245663246537087497363103343412265443908438230422233263472796138166171333459384566697353961006145946094329850569989219121464275196445185211197320762621141042758236831629687817626369096298041578768562940262254262890779844809534847519856778955854237685621957264853033656447796606253613522473109760944469316312827222468803991195796066848548339776235071228109707484556593254535190802810412552798519854368946079662836227753984766456905690036966899359723094570885357069249892827656328540417610268794848388133703770103736606540694260323027908497911399197668980115705104359974871171012132880023130171589797045341890842790484560521043651384627334670748146729970803109922018422725839567119328473979425192235991838908011960438160782413043157173786451805537003586892031786918096812012040244621570435615719926087822979993917023683978140282278692721421483004563165713548895450866838025615123754258382856111872805430593788196971971761320600930575061540025183041390173668596665459955968119957321986932498038559872582692519985791643756676750199776318145884198308332119222186523255502337657681719319030711587775839022557029658179991745700382279975728912259692766444644127494981028226215073055420032809938253717205535385111942634186184994785598942653079271268447188163372453053048028585382708538062979688889440385632109175317660753154426849684494752576111919244886657220695989924077661803046854061685970617019649632126588784684430632914964557537259571271956310173834008671407570063457254199812609513864546777606025086152670947922720458417128555544968007598735497865350230097598193521868715127069274793822194922338184530436039983792632896425813161824830386058237167178598528550769083852721216466237432428352355194195809620699719644646948671963975821423842588390200367866978015138933081816847410036650502417688422630504344230738421078451738923598892240265348421982082093113998827881493804777882902679942119938619017953931001025109253701044297423247453555762501093037283694692196763937103468419376955164121058633520810686906065897166324229195495958408160519528543835260359287823041531857342623380022020372369914616224139648215120675047137543509331763212501902723138391013385680760498244276857601318655824448297506841877526341726476820517899909739103628505624777472857182628419620786784757480264129087518503512644930878796099050664714888317127286493792898233614933766564976354356690504228364904757677171489600827100033982768967053993827619530661332375198337954591953578414062336648251319226894738443594049750247664979163069818540423280487082822258249378179699082123306737447360140420245129878603825340495003454047090946040542957154698064649630634275366693076032896423015893020365173489437239959353354575329362492460672990967954986275492264938621818988303090055384544884786829022684621457501682472210290106803400803225142918513106786136728156834897164063818292369857107542178722446425893519127824248047308417566591424834839895549857403461743120659555821110188897006360492427927952290149031919821410186424512288457059159632714322676914385467398514164646575755077429924281655502908095576650269230753338904181451695431461583443922946939412809907113099045486904259522294905653083640053256823001314390670831201788359465287302033923154625657303179395726943422579692907406033049388838121506972308902624480944673966647621228735494636250708584693095182457578716925322948682113465403089044860487186057237192471806825986755481009310045006158415924129302087889361610340007511681701764353529988129820520663790747382894984939372907598006436750554067043768033431359520226569384385471386216290916833184718599030384461026785063013405483035022476378750637945959149690537215978395849709557594606226519896901435701905610596546649524424759624382765956535487178067820380280149971736969079825190277909537260088571592663851320070577709530391656350704334207961360314535406916680492071932237773060538156715996801805619251727513950319181379396956965837510104307014290308138373507080942792127804595462358359833776271818181567852128428475817891668497963333532685886672799025773197882440588511524062075408254363700912541708953888179369078438876746837505973473517794169012430735603017911042726051651873303827632648426294725628908400324757559601521406232833476923538764782347546071684444400186584873906451417210905410963392568829300321245691636235350002193992217738176234737144500073028495100531416230471212266951013351356943708493234673173791554854237962581264386903728955185180592420247328466953717133834185379588249832788745352756518130828318096961863919383115059071553695584809306319058519196148385248305468928405379324421506525931253087199900185786219106692945645699663555866768025026554669029765901248269733161062371167937467201240052947225469252133133949995366925285039702675247646505397011224529265495412005495029153231773479325337607637360207483879890416164589375539679974497463238269781677894318621942220547577936943272886901037222718043601770140724625440913837620413095674038635320972391106994691588299339566399660219077814834299448412945756484175258539296981069495368322595145345206460798923193498352626295492103720008741669818509327500978261891105930897279767044274470540570989456350452082539865631913127434800261788985188865983500666901011269587731858754705925324675624255585969408895412254599194045690367522319022449536295389880819262453455949373800595739589552369957323408020025250257452836772069919479513007046695282715761432358748829835030922402315319905184394104940241830232034254495978367999078964391597971914151444777753738734846963115199042185895512461734652285041762322961185225939737725026244271685339063849965088335913462641485834333313882097410072732813055862909200228507717772505959790071370220152758530498823714138335325735291128863240627581736232739729454487572752481466705068126482407484790866367970699024439803373706676472272433821768299886891273191499156300275350025027096759860076547900128415370265339298429955446469732540930875034188684452809253976957960416814048168676573825765284423480032640124467631306326183285332955102217919425621460894537666706654851239296339028078395944387665542829958666378096980047228713660446672551595759441255798529955750125780099501615164687766787302783411063888236471593739832517772351534751660461532350875702723662635491976490839518563991858462996953498636067669446801820995942005225896553999074230118226480493309023719463756407565848951396122668561728798902819966501740460918288160272643047199441888907984196748221779961128015624575613676896306885321196315466230622628333941282726747805339289221980836875867653195342633561315415383028876991135650945190764047229227095916084243257076228699054889648965117207264720031838450112235264421252096993735484712754837710891457704903640706398032827050412629164430601064756004154739047079329171280928524880348233428076386177334869062392507431161977932662254530051229665895467465024285621847012291866174484114413471852551548166470770282127441725638569462140091938647748563199240755347836874605399977008248588831304618561474304316375112210052808823312126668624577828592113626440563042887170695588525678514303924571104297415493889163144728549709837202006323829183582472568163592763786774784531783703500717525046453615904120565966224078471530387909189410882590559633710978236756851218283769978458800334664798260648029042363109961309184060093750503245638201353945070306498731561396760907264079893753978404259869211989503772364422841524757544774447409497733367871711847587440829976374778587364830099251919868021683737043033786850916599362434439427844307305435585735801755561360348896740223900352967855165343916775877553566578095617991164172683333113160232965691787006078300121864805178444566274343946442103400816894834650163681249314609787392240969969791267663128490826253118564014774374145018796142321418389409323071211701415119341471428628650827351416596017147296013254934200099971759138230731463260267308091245556790685683154873340431107125749349212949733303501248519191355550081990998927303989790074983168979442667991884849135669119777719753263493496757245490206099136331355898802208600106999634525005758388695135087305797892346961395313841026443406973455815996049656788103715328139141259263631627688851686840470855649427566367752012138049505669554746520478848389972339499090971029789984836000639912602551351122160259576650494754747002607823219483721638982291579721613442635136209388630406855628827795786822925113768019311783206877006181229691059494705775380971241288700576950418938025746958355513417277139238611465397532354518278237014748236293935379515725629648081640572303827321033100335805185364958711932629164755419203170685844664569217983634594449286162034734208186100914135227014698812372557180539686715737896115665243182204224762502087885322467107548476721676208344798081965493441803125562243497485176724419720723468843781961661870177307618305347527226905860938116396855156077140485639490078106070453505044690556165596958566228699826187143694355245268107494987611718938375459454461577056546980804435552779543405877768509012905874111878379810084112759024814425289840470968306056483529075243352820620895277010896474643378440898754227652814752102400281414510240341853327181252209393610659782313356209772148503006982966913095728848798774571836526883066988699535686254858938006288449092911878064934315194146970891115762841316771959609606417054642683065303306362596425809072606358676170524321603614182966697642438916516505047524892292666922815988346206088945760264464609968986532265812445779445979931593098891813108382853043213738943088915404613595490788087494504370709745977509999225723682643883169452797457637874377809144736203704906719653523313400430109753231284401360880366788640918913743199944064114243486335081235441238550113392915711224095969871555822529192361160584493883447705032576576155827932593671851265151785171697386561023041713131634066018084396222163732993456173119368577861385979961571829696512326654374326579562300043804610393391270727106499668622273499356222330881424911226156106862234739167781145171481316465223352968102203974241693270353118283318250248230585413548626570695271714555126078378262142354973166175677468377903477406858356463520455593878379555842382119017768390102655638846246096727694977213446462960785147143564809577966703377809089643906047089431973932055976139577610152276155373665426377782725896425198992702671869563601545031387950140340009369713740924410053331707139267458661932741151366244687562220868308534356759674003755891690475044518347427404942009147162128553795919048161242066753267146606418456517333379630545944922216862248954080217676991743901346756645947328350707016918097521196707722228718578083879573937656315855440799875992730166148002069811813494895286713679963250613693039866561544492437297398827672077227960492545402280599000361469859025361245978469535415056237044516796199456091811514074965273382457547740399416936116976112163410408857738103834847646277956840614835412431909175325583849730420254928177570282138708183445134266344871357844502272353482023383308393479835012264308623203443271248178972795695846803728802854981614469074746389118859664108884036935444224978636683449729132895942503606921327708049213973008749599878692366844307607279774078474838119243649352054871301580307024717257354666682013096642458526706630148253760232622164332303105933180268150096543794931339075966678393973380050808708839281817445886325395382396315734966600183160748742124988038254196204853540292377954009291218003064963152148945009362055227690792029437904273153973277814356848129481250149857168120884716287851726741430171543242463219346015109565973102836384863831271414169222384615487958261849575641288401774194122967982349642992248811456119676532910629280665530931815414520026798198801310199379675975528708338726718619240178955193435359694439857291432350232887737784665756500565388213998025337779733594044992701822431115997765454160898919148176337565945027500645302171080035705367439452468709377759641169585325474383247673554456701240929313302731539219929758858705372120766419171305145089894805835088485010758067261394936963720527853556546106919893034166770684108533702695179362978296095364255375120087595757509217800220588874486626144064946895239921319734719510444941940776654397177991705357199753483425704197421756126392973988009929547610603404481690792812455123079987468400639682288638735628654298094678797640007312822095809900637939811498461563492411855537801224303215721929445683176859618272834915684120874233774243560770392677392381933416821456046026083535828356850218018754203204140482217042829997836199703565338607565446688055741151384623324746158626172996961163733677683830038265256952620105570113532047325308699525661892440798076132525145094265369582097947305266030726711981391692798594397746173216308183672415778608481317680728100718491874579564029834029119905224000170567309085426933687901111903992802363637124806034891628625673157482475576794324705452874385229141049161527650932105993315587768422774557468484391499519888255845016247577188358656056971576470212985595865580254323414988712085113923143193937679872460848276977018699018468654923298158809455372324923810295562037874293762679169895096333163848610586373175195738119500969911496862810447682629459730412971430550207701738652760380401408228738243868431916037836308411946746266774017134970002876086504109517569455862954258610765077792291505541466602806883251573349457704992907658821399158064132149079981468210959544731591385499538276101555928453550554750404396499529825431396486743614823766506017111533035010402039153561940888086292881526966597495340717162982360528763974866507542569452227281376585949866184395059434721531043832438719894894006754879533582229418894891245809708274171206819341275202220857874629211996558997088644173375067988031636028381756046312664861229366871170762615012725911451239920402558242550003791479893482232129906053574135432527153725026459544693468057143316519419116588598067361828313947933290656338789353088688509737955185026161646849845537808269844604177055842256919116071617312618523104971018599862328893085402924230691884165892281426358779437491370531853874014479026113335438809627539935695167629262211475391308122126153439048787273042655063776071001072929364127009668615990370166464879164840249005034121896234973154862943754893635702810858779077043515957023244433000464775694849930334857310046764916550624404349541667855120722567294362195937826287298763093760717357966470217899627327637471688639085837353854138440377617039139827249963053523177695288980297682105591177361051478067026063735286170171494955659658996503256712841997685361385993535235463377346300576141296086631632648117575919020784509176301608940939387103986242193221216372769197814749773498866395275309732396779176423259923328678509433793244762865791262153816552080407704737041058113757765202344367190299281353150368957504212691901750967380122084576923245410462034735147826942981702023110966289356363132255991694964956246521103250274590926762385525362555357131902831539216472857915451902837166981875101590644046923718461156516841040459160606265000767650492115857051989879885356002428536138452430095759910348315882355957469798859765614047849076039260346958812011470234696569250519341112549506676908249919168647347869792123452579756662580891145115199189703456955832308385466044480066699370046673060642217658034209240815133006562114659727912732160535411547782139712110696126630377502122416022438360730188315790613038134735523180934207410720165426155488034849282777287183303113158420805925845098520200025099616818109390083772643288912906474985205098895915405240391907568570806080085474447522707640897929222983793572591867738979102034560116910145837586994710810108623838667629950084117659557690758103359096775246644299072796705111566492875608938940453285332745747925780510779102059347637823839313338756824823591675043903459552880719178133517010293319998023344478791131767728002497681473230325595774692061416164485182261067993811074612784164428218414551954028844744631461227035543651387142243981401925249461390653815438008536567124214953437127589323192562791332542425517236551899530793684633436034662856758116032937104602950070424513064653285248640659245367867383505236687365219381888061183331590586613109795205545313289320623634536180215000475668863318890731761248410908634136554940513572220517104279150649591033010944768050238630446952374229476081715524897095247362962378504829923686657377508739364763459852480781594400732164096718232825227578351545591792023562533132796094252237112798357349872151311170375291041770619807671177414089886348041242918097607451055207495985341681930433066253959853295149762260087694834862309274751702651257997140019682977320453016243101465610650384849151280281857256846340469773311583322617089732815446564355512841704734555906191857818139877830107900057593490933141200656177548084471515181586187438188355425235548577586735523829150647009688498800276184811393110909398840244035286839536664630168419609794508907884128250408070371119339139775066403483024680688919747516359193067189827070394446824006187887288926999198117830314937793807346328903257003884012009531876528144399451873572131632135170300582201370400943101698178866419764800787621323726168583116068010494557374358761517644797216113880103104935766134135150966490865390837806279853870447227369387465220969931906118842542026662624128027215480237325190386155015057403983582196855283938586504678376054658502637201396064745039058804886536410000531041391485922195494617827511691507420550357245297693846587868034622138105812377914411515219500408138615423667755840157661461386838467136960284884975499333374616839693281443368851441862576074726086248113338304382554498342374441521656535371805174322447339591276702196323528567196280651144656008128870167254870103430714970082534974099096887700974980006442581113032246200442123130483566888178603980622162947486197101439363609457828878671665518227149314202621752645682774060460557342751402704540737942649343544132005170536032482201185642895568777716624154944797024135257097397023749707627702571508328042341857330582956833449209125553182231454350561303169744803176481957853750277071967140076266815096513491963496851187980115610926623226749320224458480619728625049408952286468470594412278092807937578372728620701961512199232650883408623207545167515787083715097234172535931470434186578572814376255547590800520899194471159387193404714539148366540224832610309670321852348893911328318680774998994911330644745024422969058267536955002327482033155170505778655025609385251280892043817947515523053381196156239824219130695777643084512643826932912652903190861288932288417799392917115073031573275353580370736814379901659981781294405539713642523539442303591302280800396930017417272869402059758254136339074781610855821736218791121672331165750706403678699802890774679248605858756452901537150666073907182231326157260814953232061458057007269563899972654276048624537266661563639495093705190448634254086883088074167341838435787167882532995003167292967300411873717509911050887383326504819063264803644862094746786553362546214843509885752973368682289887433323817700457428149427220049656730166943317069865402670627913771165082363842252827233681959169543480423136020255511931514340618803211132666463935518472020807272490904501925546562056970782851782339713509120589792967956952814459215479566809204655086748058098820583246238200013811880140964517431945699855305203891614536275560826550691378662104475072718014383166377656813411710412694957154535241358150927758468620572312605655844396114791222321768410788086396717562400653008031194739742853480215162197921311177318056138632365447249288523775399564711960576058698800645683214855443934030840427493010105755576297678227811632111332115863845710207717831518527526433620407938648452793388133187137117869549102724548483925666863525197199115071792394331485637571773205628740426397774398138655484396830324698146568295159717014551308746842037748503024875654919354908658380746681165818417844760053122485705936412331914968249510707128896060848351072106835893774338810125887736553178152600831181166392361407754791654956210725108025824656951011868980881408966079513987521032988877116322247613990297079837509357309097282857279151459748568300891053670330446807416788592747804973866962731443557541953026887510921660272643870520272288617194572255738519857070251153040053268662144820492503757202749106928420884349591638397202463575500946971707266672537855215841082738898425173618194895127359084754390301389517884270558620412646790931021066694490760540075753902256798274166589915296626792796828090614789213571353120262017197208426821067734706794529048636966876928337010488297488411976574247333788516964251134589816260288617781573027850616706973785802264917559987675396398141614113733999591151615692383735663951077967641933566556880533524243851768899992638494190759065094564401327826262578115231320818356626952433273920178825203287300488640193617333213029829738634152913114504215262886519158237332258945080368147912408712869314660585031431767193092752244416925460112742040502614460752853468035402481556693589646293234312436846585376763072624005806862852131056258733452076172486198785485354890586415958689826198310004117714752047182721195127123641110895078389634500986787317267048295085242197577760961436360535489057156669326389755984890690559547205535343962258488115307799387856809220012506354850608102646264291352799802275554069154856747632051073651197182631102179538482101815111525722365687356137152316174804838271633387361123475739247987854971014947938573849760416790428321783246962721671675794049185530410380661956322695685493514910599042634732477156458895152964422816829949138165856998161869474400527760385335950314322788457421815462166024858711255565603232398061579723850528771386820437187744475894752675363305900065573447379122925122359471603877166352155948055785582877579790880470537124284776681425316269956513323414392463359611990626228126631353077844121772492465358395750955053267928908676854699679976773670750996613374558602281118561149373000551918080697451415107798319854188510659218233600373686572383748980416845726171652146956980457906840768552605204024034228083779122143916029591224176766359048064840303399130589104451025986811106396482358385671235759713610955562791601115198872895233299730096210549477699544484482883859060067851532018776660402245424432794748055255299428485906330222984290296237183543927022300467683778274236249626555494654491594682037901097026886805833236730264581224662640111840192386468097400358176706393292746323631215880950860250476650311831468176687969486081432141787114028008333842571721054183621206949959162807347641474038115314501257275307743630119214084075801587442422433678358399233688525778130555324438679075056014979522595725134322886651752191465596878780495247821716730738567625580762906676803349411025166554515304185643043669733554950193291738019863289244178075652154922852650225498688299273045806851214210680027692112821593571276530123043538935728799107873893693844384581260645779057454344597486301845526082025241257849011092124608007854949999725700768694255779534470941119234369903284812454695683680328495564814765173789704226689535200849092306414962913445893417178848451602305797639463613842623747118071219878679435731502927260144677522864249148717134060626771118820328100762361862424858462730699401539063945171170831819172364664009971722028508212802084221965212455091922862346800218047878782646621306940808023106443105228034361833999570411324495256472078041783704531600645520107629464447835417223355608720126773646763437118090583731945228647419853580005467072236827608889104781231194417793441625815134473961240024608019068384694426804801487163387705793626630054689001077945452964982849714611884017597642514706343316673846777875025264795340396349121940035945904590852386104737881626162299276760529710249752597988590594802627644980838755191055694710145130208889362400577346840316975683236764517978326135732014480929921803436366854468060325998544661018419928219644726946561816579051784371427136032909398653324890559456458359848666962850157100583440695358398178951966166493233874497670098020746255659626260399271456334817844367206944732386988757844279879588497378981756537212046149358783283359532162272176915584722259751134986186746992987183108134947798063843144616934460403785651705406102721373695423474992360117752781642206569470406830162817483658187198663779646175135669778662631915301331812842051712689624857318728484841761319491658756753566168107787911230724720414488977538045470432032347825547753597426486047811087912491857027214530595579480599912786055755749901747507702406859093994741993812092945362273401035574645261828756829946528670428412927295340247602417623065092699881365475277205044985023123890262415782404215862597076013096779423422946552028379986486877395835238135070586962309344170058666331734065228028646678801515603749466407037099312406480633739693649709206008917216287325146368240580400447159013363721157204448715723544697961657924721954676923265162582599292185046601083960065546292821891089931778080209365663879732570463888965909749257219663235897147279767865648223383801578230181239281770923176286550157834061665757525617847602384095462746961469572883241873860024443385758804951762888577978491508497288648317421083187092134405158977539442957082661443673051471534174697564843422645414887004137157524433120238439183848995658000239201559744327664249546148904860852451036292620376139497584770246077784428227029417035004791911407826573214028937357812741956956480815481640121013957954404519199292904485720578533529357218195759473232249917209465644722469213151240833747809871455228198112536285554368368385379440267869401560339786778279584527785937752888361629842983983222405729127568223598099412588768971878443909311875867219612527630927908181203166275989890884568911901009685310598975869645203321243615331435734320341330261023336585160000998508580756254617722759697615767171991404218628513978787917739361534231848627897801837579584164284110769450972558493495581826024836844204223505942874282234938259023927440039303107755366821213931178172244163286295522212557331556273360248499797164558665195716857623191559319730762860969987102426183832603552302552052734043452617874347530581183971458369006032949260447985390726852145202685834248920251040005542146333573531710853334045913999082197877991184545037225853158415632417236639008937516014460208578764550003317446463269487342570265447533746324942378463693946218226270806637134388880844642209661154691167288938097081760375869857518604850784841101890839723326140903836990967096084189746109210345236184560563931952070464243768578112754629579138753568221606034624223937582748151124236195636670092296290624772940557504588311278060380646128669130608274537444272772180217966646213889998963970045689197164497087021381416523118871526365320153279636434847465590921212170431678849554514773712368721638191093615279045590957054580391235597992238246054634705691222036357168911397293302562607436101323046427268681542536729726096922038519257885188575500406638120308874132569363234944909928149930748252759633203391982046079414887666898969035726701189679691153299640456371851025862014287927762808711674649776936594575384498125327603121573454367913904466400846196322807336246769022689154689344821454152450962107576413275021846939522715437474850361164503671221292283371571936763745862111593707904137402212954660902830889930782610624685691595023068093638494114962029115418700024087590162873633500248696455848701901422284926302753806825251859332007242056279988590303398401336981231819922421127268978308973612828113501019314165982054370057734258075681903742447006234383856196329053309829562514681836115697794089980940330841816341941440139801846474175635493153845897881430798429153582791418420554513381458627143549051959737615391374643565664381189362058259166237798100728613362789178094340583465288753823818016170272748776772017621564971166786557062607914522504325854793663319711917355657159619614298257524458636456011136171468418760534289838632453597136966008825485693311677817934882577285645601127398605955457811676043573970371510995090953864818027295360708924969385515103331036017810896306620444286658516227842604037323466645242007895275196806641404324441411094480334730234070180029995304161272555888852180699706124065954811130112549513300919190599101772323153453986060455349823954552915917390517557981160373210311672615851872323202618272532922607547738463669398432474177041649828354498906033452244354289131555592250025944457458851923470210809012927031867531643319740890493743463936093604765964978034831458645609585696083982397647874378375175658950389183922058175634019548670004071851800739834978679163307145153178867169179705378752846160030663357899477325876741882152877455739723186296157409514023959294250416055522575834122190106133939135642843879765142138169903810559009395373420198776270096212015665308133275767007231046557210120870880738254438457051157154589803363116000984113212411478021991702273680503259434373319004450081015356287200185889843190006117690921213975478552055750315258059776829579334068947562644188753397288809236349208767831455767710932910284225948157926912995673501329373157931383209430477470929901152682826543771960303698257995535379046952818739711141906409986245343305061410858711779842104477468175431957841545926658897528058727849978971026054694427659705338539431496941683193953535438930603068963123321022910637275459032125900937015630636004131587706181166775945069989175865764396441332528387912088452332327348257042859439270087875522007781335013363387513867454136158970551787246920853776825405615302935756211492332614407573803996422299561661727814768335745509154063732739337695698513829033637709933180487000479608859984976728366307159215127792226753339501758282823911836802375290513811858409854043185001190430030823231684883415413575172533351713326072748595077869036670487971844246942005509003109693648059495455033812767686963379697384962292610517328131700239026923654392418660534895499805340971413834349119772890855491813819989072957113861365274748430766835027961185344053281617038519180543562253998731596304596449446653045451879011135886507582542690634677764923040642099204050253476273182404187816321365833210160913475163336705987754675727023281770383750250927160038914552980655745783327399085795849208660642478077887768901073673913125354105930511952272129819337927444450402118897543293205546482311459302978052354166296958862391017134317486843505955595377404300464729381083089145205893400791785849108098989529247455627870300554541745400328826282178868496637452992771090269744058723168015596722468274927628163920399235092317354143286724854502240544329931579674187160234969649368712697458524602471951090735560349152299923342036154601722398042185469584174367516013238112612384592572147813919358891161465397306278446248851430621923053627749827467495722112103569438759754653000282816936137831483258805863534896695120800790806762485893289666936109171062823147163977219426263089132199982142713987337528728392968561159474912801096108390788628926247082406719290675618972629069440554482572794586560580004624284670188558228257516380095986835873367534067156269563339473764506129115860833859251287707152901064856694055398576011707733624414099747410505816570102230364535819126297183897428993006480530618467864108199578359962991031442744736471275537268419230735989787793596363197994693188561298281451888962443328759502796291662346877165643769210186548784617278828192868057526577829484745857879490810393675985096377534126074900118458452634752246744575975958071375494519504068747002558641552194034268594617933071067593287705697355710436357274190895263915353936073531229799566613342072175268052033653038222521861117552190183723325699265611758249745359617170063190073103257387872382105723663515527428156353419392254576185815418221032102300368634469245127550080653940295710953706769300340900968387516763257230256359895877423424595150882417112393700105414834471383419449799816295302784131677411506319075172135508860324351438531941487068009580562581128328132851467548415354468711041262286305816577987535692727134148786130784487034922037051322262910337262667821895994762031822138032040527762561424592535782474432906433828439014142998131206625177686357765904799723406654175071761071711948919670460220449205147623287300301281876753551727497967398191729035993382217384649861816547044959497899324941809339322043819573851033226711328752507294866680672675057278598665675954876417446972660294922859573086884887773611209732188331388136564291046506743035795397170888101051837461131852562454319419645580415553518068551056479193551402760219098431801149402110963602849235480686037220033928088345070952314985248225729344794775196837156918274174768471466945961731907924216272192778183841571627150870330443946568538816959590955376278741850851773832289800097408022020046850598691309462778608257165711028638867758800999396453895093554381400337161920504812726613370560765849060162127168375941121034552543031172889248356729566697631021341130825576084524313176878244431333285679145347388635317880032690581909763335683426606704241942946703039520654899600671481566121472558227062601410123846236615427327000194990794025257845687751694097169459981914339352475070294236823696016303121498372082862174473732208845623441995845979333296703781654103146287098429028443805027291765353653421025690002949624509170992995040470674865512889081899500489267031333739685250087784794818951500133833287167623018754812707617599662903070622995312995673090332151692748072212084532795177238176336530161236249108047874620603147991506235200414806086937358121446826275192743940832568271212400539959144910165315100753118142640024160581585956975145239533185424901412779652662066298434985554531958589378942209224097804486331453664915795195456814731111063103545613459568327122460544434877848435683733881740958810330196944660592755635162673904125618755432227176253302791310090036408402888476016896373729695147783011258029397565394941275580779623134749990021616099005935898830140121457132881584425925805971353664697863354293491966521647382071640502104018771287419330897734836505427842799664005223124575349695507747707329545036328488103324343228439926919224173552268363602014012502694867309501150094143249974627728214455165015879440507464651412992025431353031206172277241134419176895751210955209625598206515804731009615446096854019864137127629608622686848708786996308045425865307545206532583617320377444523206260423588848720899707775232440913298500620134842985018808824926512133269015492508435199066135643356879070436442648358171854361816717233577379425134797182377280574656619612416204886401440177642709294448479389213252424393012780173438559652113876772831883059558581547797190524294026021210780148063131406884381746176328403867822118125815970702919260380195568594904885492965188003066850254433921369748340811979694634753513037287998818855943463435212711535238655071445900094282189749673691389845739122906796008463621425541995237717047693695742285192818081578375717059642598765261925686742994013466434238887136166192040682725808258321397206326174132677207302438727223586532281053636096825522954613531605587519159463063036014532344521519467467165579114658445168432387177672046382274267529697254394627269266596152453300351138220898661280022104002219586579044722925543741075829679323711431040023917982485166223100903296615088065418346502304916204689881915181418519398433420227485391870801712875964975371837402647385732737940814515100641512982061640549338621460476496844368794096212442504207558608712037747642988376371357593786220110224149758570050170612852076375061844359574321193059904450424350717138029776540145891869144143807811526548720367638888555268140958356266327632728096005989730600635178469483328942115331165495253227131234135325511313523019051501079986189027441257088573018530864954034184167599624908677390942991624670742988395579696895138681427630243676229571167350658881938238694048097886722704824748937404981378411997807093847315181268493769829149171458616585272950667295265926853405059002366649389915937274343960763182689970912907990194707491805486214924428881452587883681519390565407918075939531104540178127219145778172166412474757804164110165178394238468509245158225194497611582512301624663923750627184016915641664940485039551543591725666872961702104365144612981518683853165799412613015838744664689522281602899462945462262210357940622351960247997852774584178111591990085916031482804895991177291079761256312413938577056968815189405397728133606189362202389822533584409074862891088005665384730866349451090839801651009583260111402916452724756448762069588210452603784710821083623732183385447080925970045786533158621371177915612786024576206397824008141411821752560995570509895469807165863136660190759972815184851669546639083131178013681153045893864925917192747717916712278509451812913173169498729328177710901510765372912645562809227188857483041277278088599791151764684801753942016800797072950442658465248603932451926333535431706211608520634598224758737783963291705831322765255128143498617440591713449098994020932483024543958065519139581097794453259952617881152693094530102177221238176310386424620060006378391076930108559154172713598925854680045087941462246981561447606297126623605503427724656239400002735031517750222742865764425748829981062551192868322386933340676363162251946521059362005995803731037665404610057260319288495977587276013890531321046230707682468754686844991333106631400162735574735563246890192546364274605452651153756135211405798369479110152437907224422175295512021105258425370180879657776598900570004754316218081181884281971971460338355837054466164085647974670581988392036897357647247506072535593486968495442833266400707937105525076280031123610490804766054100295574709468895703501643427054518897944010048589298379563625733570935144852794978599948221040209748475469444257988250659624348212494523192568998669616361531175630572084278674579572993901186653743702560716740185000786282912064562811501612928041719052934002274509164192877445365882264145808089302885181930633342327656841796745079939573053401253660838413865890157747684388421270656365120969357572626188076930897021626180680834498051349704022285619952023965758227224415201957925724097907346328922812864087536016262068911907259994197607604325096682221003257523699563274424673678034765540821990184701239300612687369365270397803821590455478507029606520983013541513005655076423147053128212929754429460880607109794949561023027293847066885381790843542440961210771411854049591324631476437769864003402332903701522502056309883354498823155575659358878426784665446397448589490093542588551324091426190312886584345861583407952088633855788479056807524525492484383242101472823202881039676207269379078159423475398611181011637570942653833347664843610563793964165217090848230572893684458528462133634047031293852729483043768811387391178190492071825794200446045948311713190008341925978890212002661589728642738555171665736772277491429885561395186515113789803478409101102001483620608129812558507353346372300119685445895457202059263727970581739908914073275663373908561220203557339942072718433815168411285399107854959559813571041787937033707391377310033434126060117465752759682151491725063412350478812303948354140182368539878196053340083858569305501577059089773899539988751021302491531229668349700187055160884492467657791197387477980568040694804946142672025636524262375350454857682800448888014910565875115555422314974615781199820211780334661147477935564233449904576553000554266548758239977503381597961046107386880596587253028873123146542441575053357241670876177737251063265929218679873473227195252522119140276682597990167949014831086970209770382731028483189145808760988067476767918459146874643636689367698719978131312607073042130785252363764965601197702431149077014970740830024708786403548649927626029176872583255974842376756915788751274724278080215672318955771913849166526344953317687291679966559729550366543151295827195844427225213936694672028563829756085757738092648167586183689289506949472641137128378527447878416855838040030284538353296833333292009826111473239234535536222186254080628873921159036228312206986108189339127227729625865272870809086289162690001196626853219278118083064873663755950944116736033527964717625825046454658069593923885080445416901187320530513642412590668822977783693331065777912296611110275471359384792987757899025076567877163339208964175999876264896320520081582084574341187908094724087782979792051490357387146163555522309515403008079177969270547950672924403393884959246436715386281980516970543660054641746142586198320400243097092416712067798340525698066096030112105615299285185624661312463815856743947864795061711196604023274553900150472949242460725381369205925437267003393442113369451426057536357977702359679146165719701222078376042825596571885140144108433688060470157259993904781362868787641673138225461943235922201134375273340339786807277567282264533808511258986391374350413636173375014720882609827199087689092157091099289337954345769955998433854698157394169938635291061418675586852701655782617545091920172770945712136878360677606551001975911058950563470131159207416894023238535875980232613963711168684128475019255901274007300664555722563465630717116179559171776881448599042272506041262810149233717992297688555176724716749609794808830836717279489813150862001478483125309631456245470733976671395916293845365328930892909010140708462003203188314607228407324692989270160662148690537851457974352192115195304248161249837900806831074630654608792489419688028410780093788698862757130870966506372863600905460257161076881581187092232788267790632960117430648605824584696283481837934727728651770391632588185300411853805877103196808477121132934682983771702785744660358890622077785275188817543605230731792090491933669373626368608401853354119025043387086468648411573105177461706862914810540037043462395147503316961753629803284130080488897098962558655469908691430059758957999147144428567609652227282020011726261809204665291340558615644059535394891619243531754688381211939289112210462382042685975065192879472931716305624518856571567913455698128342064215178034336776885100642888247761066105144067595759547469917214131766015874972698488557973481826912124501492526555091660008317154557215313654695046865685553670052834563842966064675854528392326264749789263754095791566152404236463343717003755610701892177341214099062960947792060377933156585463481980889037002955041640825759822851676573321545146216773280195516764304034633199802515848406923264406309245730418456152528472960448143734360586869826030804907051518526302535578499726825793314272748122097204778226579589808847750003775627537764522599107645728053390584784421512211747395079918854157427020932018500633511268475141488246787483216595010826371712152742141121526899346414782477383597023594746072831697948348207832975828289832105230079021110072789502483778076066334679914886269618998790510074644024851974190363326926854431392998650307654893282732588821649518820252198787263541832399414014320359261981287881238537008279564531961665680689749118854479308358071104659585402423978108068932023260016571316424884415291447773962040610363669622193421319562423946922423267480863123256133650456853092420623841309274971359252958816465974415130666296594588154684260827213634951057169992908943623002521277211386568824185142440075853537461106911314476483735276343565271987434965365621248409022102279193933868721178340024265660918511816745040358688591576015675258447163209717961304552769445319869557765476165546884709444135569437258030496050328123275877108573674516636004648851363843566710139501283487372243567281584812644950286529716834350468517366647097450343297171674345200038925712689491173579862390890324007997998413079931127858973631839765712025567454911277991882379813711636807008047433409417271658436164899277180335738082641747520431465317274689509348643046966101867981210017999413821105422427423067454830512933868997486342817019979437579211407842150839175347572057747256755776289459806878241243362352896217347438537458001388552743279126068396952946083304207955356552597926520484443769595421524010444536549799240283386187484028255094785499855139070997070851768801976576147790774686497467951259566709784292528326336666241371426926833892931406842505933757840074844998610232312329499683849487067509421041122924332895060122748293875235853078266007963607139765258108853880619118437519621521173032828038610054813095413422740692342458628313894670700904030544474841621025150486216450553220612555599400141625942512497024403925880551954483951114076079558570924038048845582637890128128489945975178990866207753108815326664490146469895247385577216662383926266997857749733610896009793182582575699075657951368469263139167585564487714134773709656991594976730097326665169809655848734644015348556568042482481912603716732611904760385167641193638804211109345476530017668535379749721760802254971594638080233140617127547105713538154655269323402550118879068746667141052868383805044043277702505159046475580813529103661441453016177112300791092429518859204348742814590662686240630139258160043855433404660498553154942089669637796024141538155981157038427755899331794243875041284861722652764695428739679450635354984988882415695892902318657882212787383359972733920105033339326144067084776723011337220526615507362806997073946561739079320530248736557842517307967570402001100126882608130188195268288506472297870516979948416275778414675418180811722057251874740550299398825944720485183129830702478068575190530145932311221749791031509147770688168686085966416524557686396820390237768217332619895770077984132080673276000674412021885573398286321789475175128469487274838938789169371294758677232027127922342592834729904064259917537395170430737637123021285414373288864293640122626404856882661934675675954153492967617180386507990294860056902404824321987787435387369942614354492254772416098060526135973410972014485491076409483182022240923362835284201266071770481023775231927346904480089691625193084260516605993121806453443201909523737486290763359016498502302817801367007184774936064686813739551130512017500415755077318889789887805013115265359325144349545715912743342477901165836507626258878660001867065618400823551697664932558471233263432370684632425419176582716993897754897565892357746833760772123902064139391492400432762627731438506086363012833355323147866247821929064097482230632662766793323481210217315984736409175897463998069344640713151782464275058450102364783853437052999787389970982074522845491654355918820944141703112788596933865678692087698387084834772902969568209498503546790241633833056417705465844770039432141956599694424142498949978205861536978190718730240906197848775497574790986892738297826013070722786313732911184235145531568214906351249688868151664683085060012608045631644859243765258271059699678572985750656349402923935817700469110372572176393314804038709123966443222416772197435219134267264844192137804317003625175334094539402113638678868788117903666045421781271001330516584005681939630177573034217426095540787215148868786219682672537836690853136450128154999989780445618444891951383034429886167033813532587289230307094307803282858293351699270717584324736925320430944727323471611093513198714176727828938756819032345952890222858184021694117605907131031927732034686406055228221220113448703583401528962040424647064099961168982533507518198836419417580849933904792568054519152233393427749523826565736496885479594242431945323423641828446671498195496944113391586394273432162143050355272755153937335253883791908669075223547394984575106813759971909337992059121424840282155571081097863790178478751371637333110895676016787680264351871681019400070321993701278058988764067767661412176856257506778028563604055780865166002436547473786446052727414545953074742749722441266549153525690705109150436978958194190010909362485471754099769554876109560550034034775669996052634688882400441428401963408065960895238558329795267662427234317611948917811915634768564941908746582692482788250844775917474275385566760877092575382479568419889701042486277523229837370295074036025678175198569290335335504135147894384831807709140183404814040932663311660605395559807186377858979986821039131665562671413994685220094766307002150773461532882306627566797095066298427428357579999707289450815930100092177028301247312855721160454199673404652744856836405664609609336510818721928836040627398867685504218010592343641770240929995274572879807200935406632712404544546029262449388249993581227127505214816201479456399226824624871407349370989796088506860277502236293679883538933169740864051897707349480519471056146705881186196752568933439777719935526428785182775006305643424323474345364085432983050054234127311039863823335239705841056025230459160504333000960430933176755865392031164303513935163294627051443476963167757254844851693351536226965388450699092832537432988852343305534470395451750921517901393004560223720615969641551612312323327949142930498458432694980495416487376007272485234448194345542363772693052429825622669387274186643578245333327004039170129594789482454395628821618335768666011579592839504217022964635838812885173451732291680017311739087898264463590021691506937950210324634009950456307710107338904446940508532285505093412910800701940762359848350587858649596287578930936058129432686812049713750053738221786251185251402031307770368603677767594431434791143324063071765850511809714845783077741509704143603195779786947806959233969268329049633282458834626448686703849407733608042655698847687095711498039566462226284787319432260876053908766991638673006709958089492277727831558287078873177743153392794207988388835128630721318002109787016966019319709023908884187891752129239163459986729901279070916911589477230791078745331984002597301121981038533352899527443399188045805696966441280809067522381471914704625261871701600038512390071370218348945889212737898591728269353471413792665088753179297362779462457108044601265300622611581365741607642455818422878548033383689403899728013123004932445983966386767091043614442944531986345967738821371406159216846474073979746977331879969001333508293940023932232443893998019191710739163522416965739519773697217951889543053181104164273966941035917943799261481275368121373682319018442697768460891050053646008077041167665949329282058002014722147516196698985311632172861344997086169941214606232050500556776469994196866940532689198340123236382780352833449854616403215263059362302827056635096291683592332195110297311635241027298146336822874752630729764520732105227547219895390136852186937017563513468916215944746257963200728156177193957957026037673520097417104901790327703616046119143066938193837466270511915164765426255861696675539909994160750663671227908114278347027716570915038914689777164865991048688575816787590421788638680498975474943189949674967118637834686663453563055422657305055261318303098988252532539707833817608825770062890087346339656624652160030011781925478954548609488012923401704186526506281087970669416145270526760933095687937616062058844922279659432556706226505194419228516898379721638424185601558519475274139132746216279624112498078527939889401821000631514486103038656754174302701524077753364741815914514797063374016978344207793554678749371249661345949090696515197087097495265795722434911068110177447625500185708418737637581032366859192982753593210300264891325735773428636353751784206485913945691910425225910130558939492871390667500697577904846493458187588323170109704843784547711415393010447600709961580380084504821418536050652607106553089882761236606778386945779522796708548481271305212968152368415870603554427949446330483279068376304811432171562025293785251949508246901633221939518789646261992064193541653987082089872357197400560325157881061921313461941677304028071803589437549817689295121707433298304337493661833757094745963688667894810549942875678364291953444167344433694139696700455544298396486613951527927312895827415420800164822312866526798215287507009616807209471916023149394378393755638956952961495338582710492049939025754998384448402429371311394168814287499357729024639463867202236781302182310833450312725097258885135073264729892534876662951417769753148390847305913566587485836387991261529558411535605568829072453107245200429616206719716225888154452452807426551384717487932123370098218470312328819559100532148236666192825690356406479456265181130269955424796812796283093248639450660296242551272619390775592222821392526452205237794263818601556921967866758959254814016633458259804615426490187616283937982891505240902243756907894266642575222134037263951378492324725512411882926483291289812398943859217114895362953734684155012473093682127105243802835907979506035845142218677675012167644968033622257856545821630720581638464328764685236583602307416950450522155236826717230070374818262521683620223277449035490219498812777059127655464116455925186886482920110176114401662498463713898382352443768732829153521898810132035891802683463081622987799123081195997406365432138210163785955693570611805637488427597558896088989068541041822828296732817370483802940988444499851149408359582087978888731055928471623111616233826535412556631206812555506252445631917016619544550792656816969576081572569668430955602027578331681682871508444114836620359853945373636580844778499498635839289373103292299707773414203539687312762869922400959177543166891721786452479421356027634399929528994978850618111332785151448063003161144678222469334283529036208126374203860306102994190228990197058525376422541265606007163687297130688100811740148388421731229239509740237965881009242843657276384243589461477673549320715747456024438130667056062737710944917070611161367450984038296857113751796307371362762912059184730147777761808574443240795788114999029235207392637068768863751226277727727755334642152870100318379278910193302090122106983857839067708261571126685989701580644294215601652135702598130122252385864059753656797225475108006571545858829121604817733159128025831445504815327769985973724562219334376800683468146580126753993578449339892122205405407267036128026939063233520260657715047765312512206927070397542503186169606796152201992218956291377247596903046802932332571926089129330221047031747319222064171216719501482831009830441242538259241583184398450826289717479480921677612986167738056096051712712157019509186139596666286338928787344464824468341648634823340222515137266423715239057703203058027338397059188334108833260153740167074215287223670532782615808845867640058245046471591855908993252223301275136924072158781205230575920426441264892423432938130439650150004753854555924998230829884349894480048797898763712352318264425913143792024350957274499420624996921341175232623022585227415532874344012015401802073811208977199505220791323367860787681341250500856364023775742263745833878914821415959666276108153635285555122681562804814654465290089865505461793357602860176522303131483086088038201673211415073022813701076275597903873397397139484712607149299822051074524284162555823198564133028570824916179789168567544828561367273108675735724773685106182669959271074329993604543880754301397334049743992896439377678990451249954084668081104181812606390626357938544230100300805932538812693513430361032581763315011997772937928058875636175230758591878095567260452635224228560764278404219075749082894849668922974413749507463880539041658838835689028907354772894221673175994703535747406369788360847403516395058492530564299242218365438055771439344729465024740564640729629076824008291877747986409265054028434267256105171362787611863953822216032222716372776177321955155065120908177524429513714292803567246947929940712097168069120119766917962934223304449137784883165240654177814640190871553754707258174530530442948846784726869845530583169498492372057614636357363457674209472845195366818353649114397434655301099928117823616217616441462701321124449922987657860142490009757971614608354703594244907164380359470714895386803038871887787979464673037260377071825234790041216771091978520963067783101171833843277333511359952872217861991314291382108769514990065532266280299194737679572558434008644567899023317439022352742779013426389817613754179084173832300630026230353423067387026832753471367367691069487750390155817731485499515083654187985530545233017755901098360330664975274424889350157319084736981112388119624092219105423602496668811989568314169370343307361870116781716905356589742480636359503730798765750325071281976611521832672937774779073431389966905879670720887086680580392427804428581734294215144546378488450022199327936505580650330118153849479265324776315979475032976807284756463259937401741957181941033010243298688686825093686535053161964994872266360764970023433890596159598270235742693368442391068657855985268284861366325046012255270774314608201407985240917644019753280633744124890099708480241300228853600118844752947079994741479713019540401892924987383226656983968311569354486050642209596368805468759585762617738925436125351634811451404411745312946297933242684101023974178417543546000770144007050347765730561182269227769773077309766579954805006720702776384083001329969171162821119355446905676317476325999972972078852959227130189946785926349660641377001786287801775069899499556930617094246643213853371066981824572358600741160646608760958465011575028260024600584074066723785123849775349127708386414810382114747053419675284585170735819704730469399642618265663376155948457049793322717941518565997503517978783187118737711577521037730614640322939786546686887892201734475317680981717718127364985860429460445122074117322283256718448824532715005208814251033156172658892876700797078653799100988995934578552850004601150048306541721477971749604397466472590822705811962121735413465273300858164426777720477251052776212377184001213930833969815099126553439111376450060202462929875163698963464385212734123066826874002559508640268173530027252333510470276858818181216459173118967472159412460523388371222646455258311694767913759562768378939857867079537571320154808207943435767287288941793646463200660799451296786775210829648371073131828760107966732191956564063776589497081893399802965674590825477759200929690194824431648349041029741120449127849622519778973336754463578900341744688717725569139065805242986127763662962053652157832418279800925305407618994229524799396386768927031309375315336279547377508920307658108851701634545720117799842942057437776030864465417241117719793455303415023424914480563740219463038109480299479505359566858369565734652951554910423166795876115965305496388921028941471265561728830710449107338116735320544276489429362158049947621852024001346259943064097220778182645529281864085265137299921523703714400968814607312786790223564336522317230670563747295932214395827432907345152719089167657134623390723123469603738995401616219429457258410089528480132956762306206821042938265648558516657851179968758912540866095720133545762833393433026108583577294715694686970241340073687038558643118640876476949295825815064997813243901236691736419164345536112437045236728919491653835209612003021470183509957678434536372710072353943926385300773611278691744349817858745037897145212923301112769031516744571312615760830859781460214171129511642037860126151261243380768277970937426847246650215573806878395940912644015786829275264739907738664847260996723491163952945247197830509643601584779223583332083279206641909376192558454034156676567775434860737883465837720277227517033789371336133853210763617089650109677229770485589929170145630927066375377145137575735173033670586315350371285702118411185413065318575565241882513834230499081520986715315504771293898721497855166355684903717677282041333191777141784110009195469880322283755124661718594624020992414056645392317722981833418168289191167000421681241313246865154585660556454632271009626098507722086475908282842529551691109121554397209301626638841535319284709092244959742837364459476426570022063338779663596581380790407021808851906321800374718698866856851759690907300948017201417635483545901554559313736799127194100625107483186646902761908123743857803916208397920477693633551259555648067152380639578350136582520759185436386438076736172206371638101773700649568633490310023690909898527645546623518986987677913730287962119571666436155543956473709377783468253892808139225694435088793692428320032820282397565342313024052821085840441904800859581217516249028918908308532665669325896123483811596671869279383321641873580385041054210226990073188280839006031201181445022953404346006817382382401468269003429059825720221244425340042682603304023527689968282433001562427020250058426350941275810555403821415578561858408379387137601733083501344510948376330342227486800490966791021132999361847165668051874517696077516821771597066369105293955961445504808432920334836355917483420367293121891042952064374425500232229539368515433631526675610399085938089134293563219839337580469365284544753118928473061498153910629961114503974641444154205656991468943452072399070640123512733061188591836066352713485560807704904549729727067307934948151567303281170638550854677999379126065000548132769242238070872767278908684086833993267050694950784339989747722562977636024922727117862084729938579779551668758611154358157523805636834480242784620666140616496542222539043947168606711585181408898992102821268474672129238611525469250150314617959779917991835885714014071408117362207558296537961016796633932626942363472560084089043936415118975521401123800000661441378053585026255762380327926943288237463708300114696112773944616958169593982546946778557479244225341819942882605326965940896354111466051669377394082269813943533370855016822766944074961895495920067298782203858994363416514246976883430432637975266599831725569360962219999537973039887997116768387369997131601849476167323103729395578318802499825366195698298237843348921646910374568444973259873891872633822047402630001321088566182727510796557694583595901419686964182490409547859330987103078864682017934061877440544929664536623127121327434812504956399328429167570885280157162738531020731656793454577940513807139907935242319367311146720206651189464002029073009242402138944048779398387761790236095542820271698554040611819155921412658527375874487380922382749689414103999552615705684054962710117125826286165425114699093669108479787062886185852937480273406214545933009648619146886116176635799997218699717638532810114565925156589720495815125858925518276392324516941412700905824994983483425909356748941572235623379961528659118214108611268101052035301044022897591093094077156522486152231073931706496847225195746087642155529733013561340912504269008301732772351266522270473013524568167592379960902598192589174765653703828024932952331456495390853820299901887783446976674923735223137056615451475746695187225692967773211296987317463364723124238615885851830649171909803243395124099537602440986931787219628244917783010787055986173097353313246258588458804055514030153976688658187011899081764727985742789707732348662391293164890608688764312455129672783128123187403003056706833968078063390561042495689384209676271504723007807789695751263455127503650745675003058424275188548951480943082760138956862634602692312860193289573384952686479977498984311053267915753086764159798580655453055671243486652370021069842034598504245349358132119089939311420068708502694368696763894594337529002620576285513330354452686712448464046246997381288419292216226839966328336851733504303076261490849227335787672445937712562471911875853474986115583486129614560618434897574013503006725106557080184306573974555867581298667541635982966581559874876742751373457830493211357356903348571041844382391539764932104754983796120799044476493852069344706938558029686639032756430143660301061122500776185628002454244342394486610641714341452752234083915105098630315090931227751584791781180699283377603684149770318911813226395483707508782613057492813602336533154844908456970862807843851587454138259898905263087120824134524602647646418982167387696590573359699406794255624210129257231244685805068692514718952207850731662112761134684865806115677436654996463467633317618328862985755695107824397969656738026019638798737597833065806496776750765003788534058620041075903217437237546809338878657566082895260650638844190474768286072384252265036871055120885007460174055517370003629281290927944764992013520007867442095309985524081568992089302381901726940323879216119154414459363032123851404126024727807800985599802755084506257335455730879932724379300993771577575386880917025747479146096191736695291615374209756764005097472046081832305752339133231425855766171130480621234177989822192733120216048523647402448820619782958883387760004253825268424068791993349242671559995362889451978473329189558242538666857541927148776996557605802535794222247897304420361517327061156263762978868001058801263416184331660898739938803284854087169264951224385216476423936672847844472900565439185948014554232681331743241589321710689555803156777679906830662745695163341878638331460808687319138865384139785307762741287353746659399252860122162073543960406073378762214180007358551454960980357424444974582405022802553217165990773417513911994596979935535505880356651478582505254328655351343398883453413762113597697370140707411495850619361484037464288580136591495374084220655167094807026971600111230475910758914202124518409719883421500543337841422202879690062946739136483270888274968470133431438702185894860800911150973096247895660718795919708942319822846046379495114116931309695595495513933986903036002207898338958276200881412511927935266663612185754368630602412862051952083725574130142253139916137493679045374517777803196706399186498661118102543460485376900468605157858916309367025447486205364698768456533270281344084221607742008097481395419641564602394571549988644115531183521077673751441101183484565605523508338118950394584373413290008293704507839822193855894406199261935194379589400811417450930913391206709955283905042983685721444574332814140340840619918381787454049363085855444841744801377568497676383898759191174864080933011260536277825701701891498894042088299088633863039127591166550322998239663467317043280872661161658447899378042708807646778510539070612135633279287026279311675667706218001872225311896859069732957658669852360190798165248115912793792801588070144602348993038731537035084572826128075768587375434685622345697534754492057342325409605728127530493192156236261955080227724847498308085794708242963534863628332458147940460398337620492406180087863801822359150975484744108750079956857043990366768446961737812830239238432675023104909039501999616987824262027938843350830682044570603558452280758401694583112470538094509380332723185236344263824320373737344560585599870457238801503377567485309269100091439324132412101208987479090069355618890003353221353558663588453350331345738468177476449600120371259652803137742149611437142261178267156672360323743301148674904232973858466029577114682041189143856207803528398484656134922000503419427287636836743112603051283655305366225267190181354298545239072843936512459212768788594502996333360335631407427887821772717181035510272486807844847989160668438622464570837395891133825933950725836327517741683121095896543413304954922547630551547429316272958787467413145395569915978970442793791311767476798952115482187373071809926547878751468749114715382088844665122479924856982434281390264983542106433060807976652808550821757858397495301665379800880746599004702212964837694102065611323715127010097891997858003508400207747554317791141081311327127411121153277183667915438444617224263340200328243548307265892504222664756174036834882737186731179864345000089989054483262967662501172613458476927607243167081257306879366320407073756645954629000836782941646302693371317252432976367531758495905783120029729754694529719815761863512779966664034981164802173486413926454947217868541297598130403839358373246587184338993013383061342428751021560145714392106988381994795727771077974584330021190686922895239223941695505218321116296721784238093372166696855987248421528538001788475105713712054053586810680729799827031558627208652314067161267473092811462911587501097248764676603665513099706424145523254839765343593465981479143589900197929006071786145497044151692503470068127782066490518787171111214368958889679048266636629659307005198875195345972752641746806491711316027069272948730604168833885214047504030074039978684674853568159848201978111440238698989137121841537073550114948958183887747604530166503559352880159964220138776930950562974825587031892127848641622466056301810924819310611611695491564454418179667940954171463985866187338559747256324639126147066117012382705850812481106147438248660923512086291125979428117307914746676980973628536566375814336527204447669307298938374587612411756881496082146113310627041147105972584427990487473055128696258611726321485676922830414862944694018441616242768373149980209746842911241391673868251314005650016254534293996956987448943598785276024125448451259881122950102107610416197910338625861817553466472890475404156462384147924803900343642342857393966694051168507840882965647252820591716428188111114508964927837823968180951603198853884043466607263178434745029280665709223172499342466270609447922323837084801652971146652277633950675942446056321918179241834811310283997757288571403081236175814219350418251079316993280988049100785717017652240256907741004486542749924230376391338006612676856044674566817115117099928725984104902292399346828072600466668582086210198115153117638366853242829951418203440979216640597318432767579760323627003124327064027314929428143587324254406210591403849118423380800332313585113204891461025749544939409476008840037342743004955580152666749990896967207896414350078850348990163280262265241410201383489107688817463329579792335917693026303029701172112218946019253213733912657792528089541603395898979027079412968106156802708520387351989292048830236787137227611030507729608082778529153353620173611785054324511885651009470804989638031959943185338146177766510649047933285741400428515000957418873912168026469825123069185286243383715241392456740827925095159970080749154550952179402374961740292895830286965988148231114067731726346872452919971241539346181851274929212953317926064145411143114464081938057099491844895836900507068265151239888237727570636908106633344468716962788127068731614483910764632868694698995689753112296905082727658544342431248259881132095938475231408598786795633548480701937255980246312296962058738419804158750051786477476127382019781671028616458636995643026383558019878336933185180676732635721533102870160554989337631572548997517166893003649308051915284209584890011780054405993024145232629614754912070107107114188221404777847966485212757118796046452387131111792780809711969530968982001913231640029211703852179835526978311986763991601829633920085409142799882206576966387264583508795059893074465212087818563941221373709516022525608106357290163712409154209747556333498489065879069205363586168561138229215688928096761334782684832847122876489220990517673639547039691400679688446342317158266140555908702112958172564780485423577177900422706512590471103783222799516394731381686839779268182491514445742242292606409585879453807906003453163247573740058069313296268662208936529712128364483661792533047464521724783674561342253438292924554269496305039136679575138528114075321498552623945517558425145389522361276353669623355342380933967936013511060863506678052180273707574769639528938344804384827617131041971677450957516466377213420460570035817162381969913915182854403056886749862311189548825265413003435259428031540709217510360957382314223056419776614859040890958502115972492662477165641199446031210983311384177539094765558155716074408127419304602525229035464318767958251930114945219831796873469505735545500989511398679352139892523512180903374669901380062526749028243688229601774020475298476035756239686782958919424641279083958597835648098828774529000867932711667399552021753945586272163120153148441035313484654232487808164903044779976611568833822016889426460577484308515376152367958788407849912016601746197212448067535299343293491252588162058425518453809706574513256172817861214224840671316931303093002775359549937106893881709459065831913860185688100767444972729041309533660362840730591633568510232464183594858327699391910467670852609515381278307752205867231482589748736396755078542809544658742988413016845117870013511126644913225902203866999999074884880236985850281684300620300962999507008209803349332007179049311686158028590926635718080985093176936711962462825314763277475573420374977344146495157597507485657528432326677673628362496192228991005057282130205730225959695805256246761527247586861229394702943514040241140376819847464190562450234722569740654642374739557796899502456930688420591583239419377714354441990306174161476353444721055232370627885281615657591945787253864342173979314177551685544510946729317657556044244387947215822660886905617564429111517980035928498431401563802767118944384510920193584058330332973780039302864693407319161468759136780604546771974314703176139881518484204770282400092509068330067830996217631047299935353214590645861691630629127767114864296589209836383113523830962499091514620799989780915936686149877820816799817725505707774307421616902427992173093006216491913364926996423016905193607863041686227680637522808592298988428234987342389536775335399780839457628220413393214794261398521251317340846613120979900441371955097738318692767006353409808156777008190287887971592857505940771090235206979949766252113887027434406898360611709911060206255675154292771669284193031832182634664107784119739843266219285627253050819435321102421012211488580946531754635748485440549640382540267048181049949537421944595460325699897087942460174000607836785067934497045370934796023525745213642635851007316418141015444522947426513533323608733744115424662735876602417808800134351142190869714374804046673334966183102960608356761215538129272818006696656118218258898541020668403959887459656329241726986574330805495502667280328360016716708276490211410709737141163000892754277109075621073080687935944433604120577772329311252374777667623018350739444808686299911636963932615286950954556796661108987341381658776158105378541921658802484531098347270112593267495404261560797750537500584779842118362919848708100674452236496406079185336554446269909909185843139893123921687747089012417691213112212156744538576651724149732573531329798970319337588833212642457187059554573234898220151007236844650878292797733738377726542370552350617816296064122892155969566707156089000393637626819549631714947254645626957113452618652768650508446021387326349440397196261628816718283660816533708296733139545859007187122791321380040497551209537191740476596838697095909707661367598601542651664982632470745701600270781918900588597408589904267167350673735090697357546670510818224289565814397200426668174843420967397700277165936239727192894709510447779599501997503940100679633945688295513134344003697414929562523006642089311698717719440737456298084190516134214288417570327255744125510406770773569371374061547171513288263450650966966646394363541684124517782236997392565047406551655242449855499407668639384140531356717928617639035108853116273865279034288037962393985569731877076884654314083594766190603827670493287159641433741841630596269141178972227329509579137159347852055533180531397504958115728987718696180824277434510789348034606718223867841089410960745327519523660538285864431942823291249784599062760090568300747607979823177345183281622601073480189547866803849021363032926054561827795744132318976691414045294512719499749697074907269449083664366095768291047341442336133302404680431634491522968496234063596248379397135872714727535754619190148896741689558861307530514899533739769806267583043126838783960765062448346524804804576336808882541061194707550005899855565926454955567019427798908387281907075934639611931916836715097199244386103705735793053623703050700048019057212619715945126836953802054219685980778223674997853482850156094274692962381880115730975364235047692386682948459878365314192552926477123566896354547351697893489365651154665154535785853715353385024958932689588784129231074247469614787785293861115321707683160676227630356161820320858728980924746323274894670096836249465974776017637898660977148585856302716136835712107780921727800538537393857609068440599241725523176473215965548601470271040351345416679238960741071689187061004380572340325119792787195414282076452421671553947189831828471073129066132553325540430477047145727081065340469236267442478713411026099970579423552458730275870921199146153493920116630661996857130233932819642621952941538679084387809902776305010381126154392647234053870503532457147971003202943324084040886389069847228397931388343473334579719232954048224183280157823672035338018041326003089141256805699020383983378089472557120398340696901401628483348285149533337753420745676351787197999762197187812374062596461692496407603705577979968476314104982675879345465974902306547607626794348942566368148758052893058225499319307201490065263488216948732055095256573525925651557243483645153234727060505130883987254173284107027540665616706298402863441527540040631971861974453317026954630196985390773234801685264619172785631697116532331473749492938957854451127435001846766406727639690342068507506351375228753467173231932625003173095128808147411295839734017368823111393774697139168753306805058912240906342037674247738130031384299981430700898772574105580512725994066264291833248912674369277486650949295019165530939419215660889967600275266143874002167000600571636925196596709814269497698518515385552870460289129185538504907374079133194112424952525964483818740098538777628574899745357394632381734172275646234130098118639888585363296901172280457122231328009057781470857655167603890137003073534965642638198280314243612264777847110473785137604996937334805884639145712842153644346642014217147728437700366788996826295653458325124885380208881008615380102837323450981421954841160497116610972090373981573557411906798941752765278886667358580885499063451344117536109378109356573843131270138846561730020070585267645985359199150109686405963900834984925439949221147606571539454287166064432228220308949948612146110205263707803700207157849070150928814633685639423032357720024525134974369713800031004698143339947044862724137750127063787628795656369297571692457903404055528453178487543327376976936880590831801861173041665031317621090348164740917151923906788213560022659588346395505363667792391890712910509600075402502218261436290095089138145613166160547971439673887391125701459840830522390812366095753132524868516243932545377399156156159341714733408866278874241026548206652113596028381813835002354376399577457926521015634335611151511955437132597351605672779465758975078230721155411037394392126186310371237258772113026858390985152259698490425390138003774153589589738388201220610116572376402723017194738652523837648072525017658082189942448737891392746134923745771024017877706579569579589012499640481597501453487104761476087133099090423391505283891277032169298482279941512109926471786788169519481670120709832340871840214808522825272453560559932520233289259619322287527431782949904786163817830412040764825609274511205288450471925474596739154666404533606295860589001522161360233332190071562630151872210243735213680984085337591202007360243425290618356056160377342862142579806803691346987157731578063992797425879225422600819425768763989186005028905539298649300807578376476561078903268309057544855612166661068875847225369182708810849144523565786538157943841337770364091649045163996658083489458635481386028005730902937349755955846308880517247987194577431287988331493173054005556946594763385172597862845959457632627363183449276128367926873769250953119978418515948177081014456934808563904690676857849763376466621186878424622304238022980489591555528768128860874987410007700174077696519855392008562085448973490820785080257676416583778406496732154120963084223451780344166429640450848093516612127409537926064353447090225154191616549908301535843804969528774684566668891323954130543960327822387902494276082993556629283544536060495319571214765510432362273102765468859008976785474539585393234506861591628855699038341169453441512712438960293633328121882670985102786250607126578689465375915931137525039002199491652207208181557144430117425492367628709145344311413909420821906097299305725053885302869858127563183318125638421840639511844532358244144649477559841624803236082195057531290022107598898550760171292438650478153013778700926293427595954632925866489770157257464414637018723349836990906249234078670582799754254416207470915519860108742168101749118690050029744318314649099566042235774697640308178924838537739970861052886282179314117596619372811292656689821977700975991339893891958134339668431069430762960666617005401526448387015208565792881778360673180742729132922868105930828587615195540670034029517465265668593611307640740285543035464840590565805430390455545184984839078501919213837195915180787551743483659056747923860383400637776316849487922633731394218408368070209173820675908380011600005749170932703440716432192532190245314199300180547983471039662084267996122654431846378815221486218976679714493474067317866870875957143031909720696685304358277392721519840274316935727045617471494074311747001032303830664247505711127911437805709002269620754995654847374555266288691415541163763884645570808798760280551840715791422226861518858227184519514024175552946866896978543841472331764108506234103949381218705026369180672770404376876001854777002614389615758130725756310903727863705353812520052664758317911177691376272728720918093851853285903152154664068400379739161325001411475295601990943366773096392522415555612680951861594730672294095245921015152930139688663799072242029837008865369813165579798123995371526611916827902046623115721949559084165159409250079698564610146043906555741722596716366712783352182325893065487219756577785260934124895408521679969742280543238201169772002134488746666057933223050895856580046003725872275551847455665503895605842597319263298324787980925838076568557121666063980933450103360449530055755747813040276326690064770330299466707650499395241889730387754679510282121642791933339977391299035592470027650695007660396206384058822775041373158325118121901472509488408003765266606935219197255817450644292276809963376496470957419292261620640727239427110291492537460210238355668475673021504525664993772084960145691275385605468310900794767592220506866938084115161724256792378010528320149828206275343689637495464666056535282417062905693034946764147466911114501400637956756761094676052930302673349923416331192310827299283098102671514104710134598998130757753777255268858405356027113822993783613765131966045038274792159530391880802086547134549992973185261894358751740130338256333496697878249761373589596804438703409084274117676984285801602088761006788354476821654378920002881054377230372068853743648082286402321138650138472973469332070061863093651080551670086514624487517453332787602999776765308315856146801102459681354572838888798955986959950048328007495492034973122482728098511121016073481350977836316679821169656388197972316143203464463979411401695440547646302866638820927188997356272236291860686300386281683011851534066057308573268750439620292343461383593079062690722488914894584156124901776251324927692770732058499539919479996018455273069057336594564880944291607286321409456355903064382097738360407269905527250709853158325231395317054573332717292756931520952507049827344449920805963725257703546118084416632688319157226682505376538220350055856050263734254552192755900691385497501999041118244590788372212632688905695714015706577623155089059656955284592463765534296908662990671674897098247150924955200033845324204332578922022420325721848926455839214555751813321403419431373199477280109224294835060809136197009348218530620407857960108756097803290497895348478251285263664877700018773060651845296702502089170114570973395865059040719409345995182919475276773738838457566320548121888078663662545366066121640722448016840682650443458773242564042172226563394293666322542310318416429787806578219452784569463895824192611791148669222925281506269019173631997223545738911038432047929825755915978662961487706304124562428401590221308879101742501307273560283217479363496381072905314365121604147016551731196310569421172489056148686057127974101015721575117810450315857346054603100233873736984092363533307665451605506054328363923971135574587392893384032278379874037270690669893408566758661351424992644869670007338350012333799966226173123515549537238746824328242713662569855517185996494779565684811736135371620661807261163069105010374147190100543291266070703122297265193195925459714095092445917832392246373479686041708529601525104730896812721759902815369643543835045874656589356054855414526156161328281914005587629799110093684952696716379061989940994755251926016705388504547906570820912296425208223534448887142616691488120765148019681520450948126788277777322561559287175305331332748257004502952697623979242121808010809336229976687067381161028022018121974050051172255874321256907507619970838633567456098048648406707092455872543441304635660858215142557380859747534326735803088576322488627382377731816315156636830203344361878483681803671910775464330944839522666942442024627067832376439829951606403021464853438111261818996739524696530012313416030282911832226534769199519220829246435766481243705814668646252075902079100751646717269415080267170773708017068028036999462259279436988190272287257895370600712688531140933486257959201132511469560281277587413205258957955793081109104519918218776268855022815342633901839715686621779568792019569158228479558922776980085772863128322343435630316227019265694557229115513874833609956761699259401581844479229478318406782539307737202650263828624142437021675404319413281302000664048240487899928107275532333492352471316621927888584845876642948554933144995835398062568441003756164745817918772735350894430209712303365884721602216042384517167999763852882922597006732682999148870865604052286452257111573713021728039634889241378138098281771406619477068479486902125478867490815053997415191198054991504974539089348287450668170940978813202070745584455255557625082177958641790870114583761390149802586106473693121539568604661053248304846206991092013604218588566936123913102546517637504665471152559204038502249885266540946866701990509859434519222582562748937566115445849936795922783551416790329254382489413620348242534768537192539510065549717916957016852440137813864500259419308342031840712666535461771585455785395879004479637812853657090607752470001528553726722795149120692580429175324000138373024572406428303392281075169843977300480530436809992155656719812551654663309910145689674631977419556961986279149788420288772932584289163787745722122165316179548733690691516877303421194752168286125406452897675847764046724227899046852726421806238762447947633010586342858135003355843373867791623252210553667061864787670170471928783252546029790527362695127467305073593013491330462711110889900054871228189719089583894707344474832775968111240538207399887562631607134932844170118484907393809326012450530254981222686857851221600523432805017620782890973153348458587899868591780015070677599069148608964667689849495272674662227467696818132869278324750325945958143157970783907527646047011659674125921768575170517403927366456040108176469991035368479046515786562981883374031647022286598734995010597026698466722625574769553180459950742766845983810201553500422015933388946321220097111501517381137652063482138959137648616066776540031825521718099796011997817504142196983039302409420334239074382418105192789189146203464577658472958163270277531469381587653586251343377514499037256424315447157028055139562781451216395349882001338836785630684773842633270986483988244609730126588402168959457822723936882598056341314578971481721024811526923456407939899155783647510478919711048310609521276709262019406678138542013137784995178462011692706087214752695140969679970943563102013069664517502313049491940864702324790579182214501054507766603307528081456049055474986873248484791296885282237269310495171142246801515246401860910166058279236686611079055367140184769129911662762297458563958736802655200555584362024393659677850018139066135371270734474005527517464747202586012668129340314936770812223119240158701299533315531681522348516177198414593208610414449588729344508203275495836155821181305163070624879401886355805264528052979893623281679633197954369586806978659075847237699392348847735418410131618461100747007264273252272679663912253270962171008904659671878503195258987052645392268124517918061734668004809230615018988193299019831238652315322533596128590604571905032188639745776178145746414004833296065525270663655612885566378855530739925369646605190488587100707085933812097168405774906238448766955004705691437602399986058098160937148822020875976522764791083434138059570310570695533022566483232347185891681872354038390968963564156225014033274166036007525164410862263805813857273201793737794634939983009073246931880869510887924376359242776607628402142056884434292845521560370450896082121901962669139397667495585727918362279208582345905123237592663419191935627808837252681569092921774744049494281141045173613018929152317775069708835491846002329084844426494419819697480565405325733822989152613373306014006352269736008071428791297083242089907903116986172795599633423582191126909504261377026162993229442971698172495682503683509280144930311539642431674341482037360918748094369363231393185825963893307879531427014949634539857663919567626018418725510219570764195627032530698932570160745587841172248429884471624096667066269345061737835423437940657619056914553661551348114680290246485174215747698072477811015201445325932124195856740276314939482851425675033467826676347708108560870677661554412440908018036042638139763198876258544818533546625960728366115549116390598377816810908439982775976179719921502994968912430320084106716803275198713270800039670592197165776646792335897974348918294324581765887059137260788229686634737165919132934228226039628092955206940211539835211805130713329901421918188197961741994232056050242746566532107285453490808889306250861388587902430469473606846758593552243666325566286485506765072810300646469666874208984055324636367874995718348704477478111689684241337250280481466080929084975128037363197629991419301917474372340133817547521566054366908837634137389880179441978994985894810536716649786373714820104266247417902814805466182579860582219453932354585289826255611152535300076610968628575609243807973567641186785734495476834420847233931852691845151670554838818795466389996605395284264524591970982890643141154832325024410074127304778814294397231121609748077343621419709344405938148522142656581974336772413837377285797715800490714446107700611363430667303457918323293187560908919446781810187869828434798705160228346419078490123072517321568894105998649750364291108670979843133614873058747861967422056697904364106269228232348427471012106831811755071088965132193654386553928528403157335397178141210406496337735002905967673277149017285105285283096172277710760729055640565734405625075972220268993995184121226185411713763750990664664263928788226213725223889499977770104833533246497440398678900984522928997973813602136699334595692496473190606682803406743282786185917045221429723747228745744602978127481734757723822351492318739961160555576003564539034880268877641273689286915409031855759068229177846236935048240037979729635959550089053425309197207855038355591854609372704051265815351252900108613886718332336219033638052982493051664198229063709380041303568624548524278913003139840226933116517582696977623174160563745580104924974295392130727530482619646320283408149815653198353030606083038544817458035413371292931934238917150881280258966081155122005203747887305359327568347900078404873858948379437330132191706694942064377195115770316977905883215386060373093424821982811000355268486852897298410901322813242738004470114910963344955071154553945637523766326001678980416534489979250196216903644874832000911359877015143819858817633270479573499953222048844364832080852720449766810714637366209235146046821639771431650536403627210671766903356678867881125634862590638854727421203478511798833435708054353828448759899557629905321860400024517740282489022579068374240238329833624186053721241098376659740962609958101648803009595821859511391284825238369298468766267553230213488425891778604159064107532114201059572822097134234972264998791265664902872617280845732246775291052342007078150903559089411855571490432701962489709296887365416103095405248215589490576819326443804635642196805465473818623734678354153601112167385328559876819283448578121757688726904940708207434408420763251373309376709050682070428725752124460407353021098772041059932145844067544132645316028454546120076623863106531148485695631536701028152818020456352533944580761899877511010441587184687460967554875085480700739764727509601735919225046318775456069404707220485606381937556231774486964472270580672927283121020889995495108102369987818405796168548721934476752801645329423570861298101432712665226702948572155047427273964121788406212429536657002094444007094464509280913185917339701307372311053692003095231153766210276036015862851046685498340157787099021856782453983676544943441999542704006951521908306576441771872722855548689435507011129843549910451970839891499337499639990541345683990472351446861758759237014402935521297667169929415555507977438095440973054895507909034733125420935116834474932535997368982875739444643788119259589832998749710543403053207756320812209068296130302964219509081449654574562991438763444323390824146775328911043588275645567567097442536480089944521022948910663967267766364547017446386861273930086157999174168218527953395014813465489481591548650092587546911663694226638510614303037089518362411337483317093012843971253805790481097119984611882654354312854034475572006517423811442226067376138665438287264747275415731141318128590920776850708277904984039508898123450425742158064638761058573828915302920236111647986790530291588785727163527623789360025907878055798075129825141992559747220523998363577871884507135154784379289472382713860335585999211421268616344614254628278350718752582524791057674939216249555348971606495213065937430793431879457298599812095750576198131937236905589205479272709307277320539847906771283686232202485141251052547145056066093737439650941419441469583230167923278085795001661117486225912124163825001822620325635630782043083171097251088631147360194856598893222530773186874669573649814745866319342367168326560683412205871730576320673235622187868594989222744740680694855053279944902943615028138536801002089800477152386592965288989026778841140060771530853152305163550320158046513897018786062613097293601676287961015988958786131894090727935743588224734864140174003014613518528249622270848894421600122188981375454517360129094746975983436731203573876081307142643565188025330473304710008095744855737970882741239405646026735483668071898023380792197706990351620190309543934970972081631895613358149965172761259382878062822495041614685633263089196325159400952528083436958210153334248261649480297161505917010271914547166281948373077804553640143266056227143735934543902450783418742078072413065199680170622437473206648723613057007841032359524916856944841353799126527438301805213030690015615291269240339948133671270033934973760259761627966932787233353947358193258021616546426828844451992114501276403047770638160560188957979347835163311853412206446210883949556313653077765869645097038060450484044694561412628951453733483733360247114126258516224524671844161691254440097891297244265703935329281017472451213677352040883275365444632697987489864544533978715546412150219732586240815696082335166355327368730911510694586414131510217455737794554416959146758386204016435255993477295489727274150475652173630605836772032324640099287256554452362244693029575786218483806139610481531320740815203484800080528280286027510911909586432838649351530477171003384369383770239974709966842451669937536514109388978311674390344561705718607405235830825764350096340393246628674647737520650758417110650156192029011172746862448551056415516833683106437357473111975035700281977745367324571296983590376082611233029017883458288162011193335052831780476982039355870666353413709180491509072842211979158970873219747797887189433422533463646652621171385805991187284808882874368953254938298273831476439439061536376350153844671750084577655075054274441814769886861254285517950563101009403079714242239872834859269503923488093949131798279347525013337977103016269152668290939790191488907592713579194695446135269803627855533125882333901084821331982676554268805028799303343090095245107272741364906284500239481054406329092202194187888778041631186779450712971076939006823943744971815991983097825054844315759725683969124832309414011643213624238460109065247474198137139380061997259106907706931229789996527348877243183871844240801898222646124010538612746592098891609673163550681318026049776177116930430542427978568997508676492605478970874243593819512636802104212829410336759686409293871863457953148946839229633976549895060362622673127970223331320861478490934374753856511581040879545936891201736788861388512314264912736485868742331809173844364006589912889244471693426479705467944415618390489656523321881887802798374596287864728896488157611399052781049864571485352275185748393023529858366721000877280415483804264110172705141588107700696295649032168500840089494062730488767531264396015718233839475814564689349521056655719480076443539007321487041068246588809446790121815613096347000148111954360845849625437296761754013186711507496306423808913803007128239093843607884398214678571276287392564552851106311339357626578809382393521005971337841988330386301230992895008033162547036872941171224721702562821020208269280023303133917342719943370602384953334089477765501816801188278242193194809275387767186751945665043559898382611635629228343751583015883310391299925259306331686200212404679846662500293372988645014636134463645008306751517913910313825813673588857637122716139560652285246560932412685043708918578000494075475126891254675904408568707759457617812070372230032358985537950794474443155250330784596852063759165456109514410426231566524392902384346344950047792053484900315150766685796331492841006453022416082561579261208711627184107102887072466481779814462247280159274571784141667157598610367491717097115178042380578684575322141360458466411029173459488233088698335346854479178464749003708500132372560534702529363379555649062589129899153945710645829588111014309423725184329779434622543919153158340539621478659455539992859395901505259533197616377325637513878443057043563487852190092954688723648341085601855522216305309365882311641949015524149363623426373794981246705782030108056169265215270601722590891356722147835793537438631678837900813706982847850362944693724059653935290793183198948799395437593828954717711178207944124917192834107658951756236220350386072671456703747319369133118437405130779145411330452206050113073568500738549475453838396304571659401656334084947191384472003903327757841222640028538649058074855103319198782500019851532659871467685244476052776059288310681384366435899393692464382439118963806134578456113196900124055289203952535818472530562627852619920415043365174947859382146178502353992332131390374459873037807260185129635953924153177770917834773906404653474513922837810698670718451360487077362932673059195377086752834010341516962251934481981764111898703612170380375006669966317762189832550101691586402919907239364756400636996477454297124717236218526283473927957831330996125653423858560728922402726930623595281943020416984752199796413962225718534798644814926960348659112125185318350085464085895705311072056442219965342120444169886516766603896743474730587615284926213368780021649500972689161622460542137941400381746448068684293067649924084225304535030112278246133875801143654326202893607036102245472184918059037418448604437544487576767164542514179320611571441539925404500360091117385148709718017527255131995608702929040418557589177765755004388847160022329368495984028121319328886985588908998004687083689647759487418552534033120279831890866710842844673451859785674990667942029749704507588015485204735518493954590778630089370082460827289823757057941255266850320997680003582860184316169000714720660174089437167115932206778772729279792776477223668293644412255878480468974515479326132111809054683787070369407489499523571089824651872504090760857413722558495438768670092648602885565354525879228151873370444975124205230519781124178793505313240031945442720761841635943080644707161867318946204500509710992392354231942200039115721969240483973459987162065551028419800051370176494374941341275717314132906082296929521852067167032281030127077023225084949513233039337923909954948436369179595120501808639745713103795198447790835821783869061295573812431784842958894572819906885054082110126323161819480783686196685490680750209628927205446029620884830048534546896667090142809850886504683389387980434357358678937748273360220220464802704293917429481039811440411637699177127217873768343717749880285935396241327901126701986126525551722247521771459787664736668812625314926267023068185474379281109318977367939144650761641384806879705953052513429756755902561720897340424109395173931825234498691013988670229484526270928429936391316438254906931560098367897020252652433550146476870365444896693120082300289153603961648297444915839934759852091671878268339978473962490654034183001034149693640887932349661274157011328156624162754335819026909949053058553842970514428890676798953950756118386824537106082355183927781929468429100393299161715662209085002280464805618775375360764670315797354227321103281122590644555605965231606557012194364742709198066894128416814300880833446182209609969914142188048593170867142596519910624015283063101666728490088673621111407190896757249914567182789056022335651317379900202837307660715472443232490077883924522570632388673720996737678968516645465120325323325184034894651638251266800495030843603527929165999675912909508755648566969377286691091347062198521602482894047049064232552691822304644875457409134136237005020782929831765346049815929814818477638946179897573099058284978804507672555003603592205728690583400370849115487068451651472133723045304573512955764755748650164952279077543776684412958497697618817113119923919442280835433876715346717419458271645767425483195083215716162577040612499265859119166404134376439389254437980482882555764683124372107310114031337055428168815152519070419591515017508471952964954579080251653373016689505579695025644121185827033896080893499500447324477797158551556248274812280377721150976936841867759630284501450864093054824147647377363249097691419553405853393153856730038632862621756493721044067792822137880786264145793855457715102925544731094771427383465447136464001297857077334195950189933983459672433243537355782625871885372444588187163421745045848295170437591186132697687394585962560206620165082946130280344240313552554332633609071886860005478833964504070774614906536171799116085320377981289331122083940559413695239395780481727632170898150759665133595727868586591461300142828511205278419839733088275115056837908845556509133749866361664640320407448594135446914992466699530494762665753856968441601339709680764527231313761146040876470461509327937795966615141722716301957554946398535048591607065273660058615267273004928169299228801974382112289028906818133108397719755109549888362923706984146872648221507633496416657765603292682761340046267301579557623078680661922106759332470477033669140812455046046276634875941773187822089994908132500333621411924855916614913510884971783623326658848350838383394127078905422905256353658962636684679298402862783749258025391854000680492821355231408056869123812398737194072043531251073101778428646614948671710253306026198023354728615471425162582846053655628500062441602917461908058888664293758647887303468078925807250784555677061689041625866635587054127495175383447789756159282633059937838161738236257689901942621648890651311977490813369785454053509851128483453814497954512804596736429846711806016038174158188935709910263080118611539798409890717133479984302710936565590999226230547543462076169459469211937367546572722604677703616541772027407214257877232152719370781261816844753714336614951343390664279573951666598367053508465319535318580370522536537969690331579674651842392705950295018622362437254850360484677111494812117498767263311995668127857238956217254253828500526723698621567266416578429610147821375554805607654505404109863441363445282349190622680738248850307317643210364869597750370936769482438857548185024088185629993521726949438760686250942691421163533802736805496885410904474708752085569538434123739171950641968049932774636101720111610356326565288974902657534141338792408811551727173621377016083092846031191704601572053227106673593826627831392281533480782204529972428820032107976940741605059496515286361384619509466687717439083154092616410137333255346361447013490732207720834401731393282216427864255125339844114802375362651859783509467201460725730665662215380907101911608925401542523631634040271594008919522319918833084199028303615861593286162730480825115651333252395559906053260197630887169081042369601068580578944528737697017433443841222763792080953922328629021503013138151284365392933904985647777594966628554706387462584991722056160581586970022413163160613417770196181280334800556948090941744810207834643558957799003309811721398069333372151140271924402517975201368558232259860245384269226439098312336146616458360784103547094135471751834236090231669328942900404549469436927180761952519645151680733739127966118675144653345559789401851800953620350234461480944068485796289783480312652259412286057240118831988587436610303188851577485941682942911880746404993012485341580755873178007741261374855747845318346076112969477970478281345951949787328088471524853647186978322709444757815340669683216449386165416841210859803994587274879879148450350328143255367382709808623499618980024840332211852612804706579696428644711450356552712633691009855422130628750764404024703618460270118220931431323665519378527363484805664315055875763344674164378799001222167096542909036766838696214019072755566669384885625913387729353013973368514148171262840002159325214325914928768304668751793413851784564918571815417338984254408909511128818075196117786808033384176538077090997546905343394427372374685362780197815926915807559075667161411067079677708675035438219349749870289313772781285089962618738594340174563145776318800287131509317935260313750767641133626787204246866027838672341575068463239532086571120987634559637533433824963744155412165252083951242142060201419909684163224599486852045942730492574442829437346929051361835843424277815569170995017561164887139839829408356582635253927562953437615152175761887093382911872346986942381225366118756909045076716261246943802872524372730652490846636480645677515255200327496987848015349490532537726085059849525572705152686731234683353810747144375220465602480443726045585398518505809551965501786657055320405244875072479980376881602163523930294499372715373343941240332137404177919599053225612502039068350028558502398311840400828975151223837822394217897335337704523945118662328133563487486609051284981897896570195004950299219358825417451961735630568553518415952643061437581459473447803978440566244644247378720976217801745823416736737171703470864514563995135244584569921463561229161561077570664708330280027968577590249832911560124492692044622742113507597062767599408130331779180194687468019079370191489560458339565106997048609028735333218047391702754551183394520897983542947140371965981789893091439898783990531754981790662014396661228417916577878564274639334162101288851679255618625952227669309126171416085974241965126292622194715533847771642254588381682994859989123408576085857091522504495136628590392773450549837218435422256365612773599825641949482918617624534912736450078092280091296794919596115926119416090608382461577883759208573072824044863151587206849217554628265489908620160630255101105780750805542305825146772092996149704159286162238863258005273864515553787375018302287832414307030979860049660500177947373520651231228962302182945955591350276544489936279439223834738210744819573031639092787518881918467311753726993847897076883076821808390718790642595593688598026449627175467281171206273235753912489410577273644324763923990845996061054024822118541329272749439838053417110577043349808309438295695207453548973706669897403151669950481481394399343983400545969132537577496382301947854315637263959786803506209835329304332312979464090007018276298953202704176229696141246768707114492428417841515576147412487461927391798403638220140255013070331059286814531246524970194037993048583110537422881957219469779707764690368413600395605523304271478778156855184151819508608817697014589409128495047635593296969996792327852472276257847933702370753206219197859871814474404600619478423636172592523312304559473929384087091894121577588099422991819718529962643684189903912985343197102543654003382503137072673538311679599557254096883050247550548357344103503475477579868575219577420434636446468544424177893706444623418882645906780575093259374432444105766082047476984618303112175513328152578996419588264576852861493592940527594783068770084202346889520583366491786812225960805828937021024990768982967608155405958001902178805067452420326751048112155681148794316562919613125845803098963256584566167285357416809426268354220967214964908156027598258188053061530804466456512420845235999436132863115357601216471028867434284749916757262757290152368306112388057361366341125536423620497840234525059815965904442011377943412838415029945268819272314830032553859927610591876524841681565916878843271896589330200342539717616424457495336689100670105879989982712792062803481944585480243209254195544622764484874652915724691153188415501036706004473198908184448275615218022665096410646185171811511221610434166131079783831598103009932519842353371190159556184704271200857655356111970248351746122052378500735159143843865619095830379897764039365010918692524809781072915136599499981383734973915889214072479501667755712134473344529068888205867139527499538061539217878294413745654484029307477979643723445631973237525884891629808603899675510934785162989274266033374883384573105081756130073322827518773976997151748049908019300168894813639247186001475641042835083115952950614265361007681658675544907358060797920223700423947345775945298760468064790266525552419498837275996762827656175984945613628794994907679560795400853674921726641661187906677799610286390146088749568799107473397928591765830493537505122894590403955177940168329491096339268484261866042985760674101948049690297274961754006376874110872956505416119009741016762736549369457304187134022687750842373157021274125348967563709253474129335698920821359105206950495765114535508887600041531466026513683950970957864876303599985155633812916514202565449999988571205809643454170528360743151022319991954869754612413088272007349174705547708154788730358930631926534175972650897975635552477113483540295623168806692454485207953310540152353100630675668236385373070916421814847346321713649403957780977741204768909056707571706526105744768273664110733745784738534884536017996724645227280395528439209196963351148419070202741364308222795914203911378032054017908810756948502099547336199980293937076038134422299167868582885028902556459798117730258129082579479876610276495881014373760572466021516387702173700879622252249213860996376139017837456250850471686872068970871905667444814833836423005831309752425871051760461724308686527193445983985557587079330277164163328802416180894336779617373286339140271590795391172509433883633138517305659153505698912080457517497860929263175062976298527650923655002082116848621333021090828444691949321314397243905700254264521885338290414301847612526606546546901460744420268755348146466535108806587351716329241496106414989538688082982722159005554213241763475402251543881148377139463326299724588670173090555800743853675402230985828674223848371357447924989900478844293847061080300642523599146648721528483845272513939323728735573047171270210754699320628033739898035348756209193215149134752033950041348925971299432836359218323932741621467737023853702019551632251626525914591860997856478176445442549723611996148870207231300794065513076170271864816460936840856150305981599187556381429989618618227340413356245337134905020796313887004109181262275129633109904343854864761784348712131611141291245888857055026190227758612395565573356949077007366431069561420967014679033263028188466863491427478431955293108598169730103876327721929084263365406346200618971022365769036661502963341318513750697069309307179074764148804313988954167282451932452089284636554284532770104091565720249112933993369442492048582827744770774323178417530374490950486812348365577299962355869637371414564941583993582057183239268433091318343206043886223206671899889022642376865582697784571661493895142936350016884727748995839630992002310575661427763385019752906414156107584533847032014799128014415538029602784173927526130449933383728626927533109108379623753456337040948452309213339162656508185353902545581377884576007321259640396285361386996082579087222719070248710756552028636944984961585011691200245212049392028078267116276648345216417109941750406944034751772887731241304002431224728317591093370900140775704101827212980948875122061450269773613706891106536734471931855169424503428389199728636812346476241878784681730235922353587465785674978521390855143989003875135786593499431540183361444167562417965630879009805291999717439462845162016858149283761433566071762503997712694910391491204063161147219707930497548705119433619662162579891506297386303101310403751099799368248078523397328261508106165103553862895499363919323739460109950005514063353882171496928075541413242793013558495986823197498966255558777190457070270267219413539942318422289725711221898286498951248113821695191169368010516744578668066588443148767792218791260044946959982456312167109002785016996986414973103900502302287869138690707156536964384092069836455429557339837210510944575330614381023668328185500424566244068885892694169522070768684610224313118068288871010999626704368987345862773535255702898587876436191853969824717463353013704583547689174546225135534097309386218962597068072950795384941411770417790999946366571946391931373127979309380369653035023632198713876158728277055172802723856579024969907235901253922980076389260843579088831967745009447022780411224597221824404532773280319884990567982444983757130591307036975249980405976355720180357946477143986295990615393120344157323589817220259144523968710250299862549180026002217524397302764743280840921584530743314256375335826797790470260635652877844535244345061545441530006465405582189002811514466160487623160080611953427793002911862453000683188947037547544152409616125870254673673719645384783360114214856413531396251087060287966593848111925485012682245844922726385726531085708673299217492756646844440428957107225685184221414281090961467614485764517984726283481841536236197300630887862136574948885535979858105826914405927482762376584250781394048484582639020482841989659896039017145004198294210603574371638390881992290136171308236596963581857343030458625666424217046513350433456284488872265392715291186113451856423473771628109235605074472351250345952060149878303694736347331171295634951602497715913111660523197656225876088044709590949672746158603830598515425307886598298911784105899467551957583805053072382289687848884211449775457254432656797343872094751406239174376561524897893618350845534329338347539525967682991818628032219861308537240106902216684237903135449457591056214693992521781138398190344418343535698248809314500926691068803369677504354846418077952567964224673693417592405752830399949619312080551980044028790310632096317060870128201367048954767836782056503715316284942358169281284428400191138637648837109983741182481791080002763511939200873139100203851370498883342526986078349767565086339343534481369379025406361180434430087508109084615467679865729229590506983383905987257354875747408432722562139698857807384091442766493971219469340235644348492174534024781044243267279761611996148760445341616403128112166744857980863661785635585195154504800349082280989628664283704478257890813086936819066775425691035050227138995488089046151220440664476606492207580668273735039314910401440172962049942338365232080185471061316023533117799408578248947482597606003980435309031257354949493696900425677424199724595199010114547369593628450419293390346242505553489647702277516728216845723600293684947027596670498159361009460180550022651911133860691842037624175273103797760359187986011402713328100671165392303453963775391925856979755131741124616188142040101141576315880610049395635371979045450990940768053122307192533221543333781314210279454657514652003471229277065818199702706129648359908066852022582587472420623492105374160205214671672243861973142458066561414556627529233710249060461547549254157103538667532627492608471549622272574972904510957629654198429317822796894955594125010256391854876548477133704952878815528952197246158405974102495646833828883848411140562023199232140088007242276315224791481550388739725238325011423151783524716227765851457487759314647898808514153590435250057400723646217001518201965657032290039342637094348036528242303461021248519212605119786861607733113239373625833093482887562919074586851070344576543278186413928423733156706657803148349455134426587062863297192447076802799459232360633209335183676730316406144219144929844411981928618503169502345871528184146415759856192995531623057611678394220715990922889533250445749466304615407667964046614062795636246645231236404385754033776508931474130665889912497490732823240284848764476755394794474701461786162003225294511461760644638642410064574287525099690391647897908553505098501364532007394010043641580542556097295420143572902042873639278994778291172838303337362947991979307948486043205900744849269372407830896360130866685216090151228705269725343685503141292715926362721415213530191432196551412744569652734226060848571994590102827231830108462118875333180373213745035234624230131581510610452705698385712582801429868610781903658763643844858017746031693964285506974421866244980228826630465904794822312757445073360959691879222586151827213222522148979519227005238055434819297524874174370852988461789310829209812002393072319721922678381126644576784152267440896199005193157778218939942114937374970846058703083348722328840929903099538607768748413098633987726905136843115415136239141175471443199752023335531237499443654228319320009647854414084646456677216821117206055482608876845010782459337348421316098737874123778067774825722052097987140582697290269798077327916505148503369346536102114896430487683748627942177920014252462378433318442029004460759166027040617859820401588574371902377097804253089336843233035532846618764064407426136408512696171010576029380779219284476992193272707598708065351441071551584186293946418838318930395986447031084409278168993910985765177320355371608324213755262366567920288526105510241890994043684200952592562185574261035906882098867129085376265282343326282662667775173158321725153368756008215380174174876317407678078232953017818751371038287007811379192710607942001455947486120537567979856272410385653329923795257695187435301935015661755059412535643471961045670249630927152431498394673196516429499943680490020378191848543624950621623425393040169398243387383752851693308243458589281718333902254320508942070647170328371301648426636659159580993265990327003455996674797879454905114126756455643463250901097301302779688721700276297888396132023785893348815027538899921358249534529184456573771793343341338029103253119179880780702647829527789901999408678032645059360719832768860972045966998521733072726414798036420416421562658318117970532255749413428896346360638381699011897141129613258886471789403021102027547035332648617875127730483425783025139927757280646525452101975490994109719480567955748426040474362373696315972909926986763382994854742581349870897453371842697242648164342174274293116903466406462650205948635542084835020332070448971118655018138403041037203821252381936185418957360464014701246279304019303207667441368315915647097530874965687779002292147314120824666162023545579143376152647943781063976447651671216412848304403466873437205424221926320256912634121726126527683687858607692624619580448799876737925836517111962090291468647417123897084786009040955147035945937968765706716248892659307577420400374234804922131659319387143281675854266539664362658638034701041990006282228264856093864615923817463944020218894921680822968251261764792742842576309178030065838899083587680562023459203732309281789453513560080196607284578548419013404297701721919078128366763726685638994927634878658208353010404439312010936450249840721209874871086151264750509735888751780032218496687046912456783819051369726579601935837268868276797570182212964018439825552837116699630737099393694006656472198875607140801250117292137386274602377951595358118217779974903497994557478202685230996863121150943819717317173036143393943883623330513405161817270726830586658662515195911674826667175418243307806597668880955917053124827585708979179740079355933527259507099044793420621682066796863706650738225696950880186760497801428427280062460825017348514790328302315706749245314577264193084243466297509698699750596816100872604865203299761317149140972120438046614202123057256865100262934442792056030731041038828855696898687399075757977779279927554895941749407092232661365004787816334429008002187876825270310813016606440724561621407846652150374444381430610901186169023840124331173221528363208339507609085988246371665055843612907063061390697899940105683199516997269918726288172704588162399488413740761446520848087147131958411693888883289229973491722353196629748382499538517749150140475839781471576281156925473629485391950621449046725981299022482588030013555304967198214380105888193258787207201892628175804414658156093619331260411837987190647639154321148131740523539369814532801459202844576347546465758429044452758768969378769640382238482363045207546029777803997132919161896659348426542582180313300044260867089498705760949378162840310048595929898315473576874376652314424073021299305373444611258412410840328992224083678864669533935907728631972112473352606185114978564869594299309674517847728161400736352730149634766229639287998602901957294721651465169874488104610618606635355810224478714776112749174604326742114548258088697975390596122620172775776420375398333626715664841797863041522379846618768071400106818824479827290790569288532961345744138785543852149785121952254914913915052452668418963017483191956767237785872157895513624458011947592345863010111615110574141921345077086117094545407333559599379667281228412891098046685839820093618847581388929507758353837627777226475742314156616019208744118094091021322727016178281902811451796101429636363339488331829203583489581163244753507140390544486880450747524640622298899304828451637733112840626631067936988601393088089268679224680618964161633683411647065990557927975141031709948752241546770327015617921360846033802567946040505121146945666988876552882338081978734184722536004371857045541031194300918681227498672143119085971977928237532763753776800223129863030211485757552634186074393767739496205355092226360728628487172316289603895307767462003431119994353098492150230459597097582561106814909366935180848729913176173205165219372432135220471585154547933462839311754783386556427811462436181426406423663910775158795000778485641299135776661201630698539768362682455713577016696786438151238634762806727997457843342661080811163955476877548778518194824027466663395640114897602710969374102937365509636745734050148180997277603661305793323198635344470963897152415193740514864292917579066153834663665005248083152377364462167256458235757890885553516991964035559251542398535223025539776649417083564994144634492639307234032499588845255274664905005138132782885759295273923960187625636527964571345852621405810203414687738984108632700847665450563489618416031395160633205255512161886407779677791583298371519982915155267993410306831640022372550990912142782411529917589658050563937177428831199060270103986186404058290747963214389176189735890995032379935983624800092589605890035485796791328938067133055892424660621246818617706882069547159994008993319310601817723518050935356707492660272124020197061417033160629242362782227017009639448465307147244098007122869869559241767602331849553356891876152865800012340831006129699430029884166570516788722295992970173111722435787710763117440478867500697816570954458467870418510608587442136062112116724247460609940756467186853479492535028975538129710347408840679107993736921708263382127439703321733382870563443009112331818461773046266221087395533799974755392869581590720451370286641460958879918408775534530660745297308028898869588605282805100960815553084549095165895131359435373976492459827536767459325380896600674502310433065917529432796591426365613671905025553282000950122736037240032650947435991396231661757178769555326376197748181755879986594511387503276403616370343549418010798190069263072088101659413823453251429737365339258875035786447234657412692755420782357310752435758564423540419110743931944169682327364180187151198441279870425639623711181546880341034714193936093251830839829836648053859606331931292664327930134474194281960382087919091782924063752037857657509966450389687092569738488010870340982821175061574515290392526886671272772324604245286582031121691112107509900234642343629260732409826950575163902336880347121986592155730856202263974100459051354333633768010286054974596110133874326200150235229252374106522407827270070071307615706086930432233923776024618708012751715990988233036444101284444507820932355023081614759663688827201688019600121391355950660199754594256156936351871136722538392895325051011472263265017495347128645614520836328225030980797252033383705993262921381503262796098534810945739642549805440522486433383962825979125593199108044183442095266111256655461587073545760883837841692324214594316179560373462218270649808121844679750992879287463631757746928354896108215411357306127973228566295207172414428513432462165225184368405255228461652879567439431608885989444949806703275665243037808883011590073022099109126044954313806589834769503593903313507908210435351595824395323118862911324231926824489842902118413289353243997717849310205758280231000371124774349241363293010474962887912480326358839636000268324741720536892842375942101008672930298599767500432541725306603581715286751705408894084974188197436490044287877241354529264578977818857127837033771316737319680055006386952351238713974302869477359906538597606035650768341545573561093225721259150066229775803152284379062327726992463411110264192383417866948149986348132299843520126625262687518961057412154350438238595055790761051510639691543086764909958148653807796377982297584813976773951276976272081425896794273276712677292220222732147906311698195497450181710792233521656534214460210561263533096572486634563528138822058550928129976038773035170882951882535687029810079419907778475218609220158092163130273453850629424168124942801936723691529817419883904791846018964246101423203854924808041665726782780278304113167550839327943320877256602352302046970565179282265828345101632819431042378776600798532039466473200017500402163012183371031102095319128867368822868168929575289064970895569182382064098049842379550216892834980777883741307845598153879125407030395047842077438148142969774207260556008485891936226381047936876677491276370258262604965399795666083498121809159608944350195211547705382834542511975503868377685228847196457649010225228915177042566323301231258098260708717432663304438768019600325965750090934955031011954399561702362693869195569801079657147512041023077063797899046386115261331533094525495388826784796855674864921033071844796611328720149696890623965416048206681802423087694129454316689867170546578398793630663079607754299155921499386578372697492674008387606125414764588008604886791099702195301162849091002184266168263667442123815559347920458601656418736227815451022612235646710209613582037965857421912341906574594021277404965727954123235035248939535789241892526718113586546104181454527231281693902730264539313602826392995256530138762406554504316128040949768407021720275177395147915370490897930586988432457062615404920756661562284414763429038412330135192426414757135454226963748769937586801337256362299822749747181886266664538545012480521343924073609062380678389815617322073489780611444875689150725226677213177719996491816597585943168641829343688602097287594153124250412189233363104538477066031435629690776802565497488610983634558261282806635518002764014145074835403691407711258907329108283742110475612501438030108683417919437249133089878878004989641776401981595805025274074632471986748467849251122373160601699133167767775334723141229921140912018913965349896812457025193915474511343407443165910742385368301133369340954670043230652195499125555520563280912522496522363485799009995069690299655118140220981943570413711801049376477404119418895476203191461216915118553748820255833653203562963480067238222586238485904155626471765805393567035422297574718572882011922398656513469719195776643435636985850276803782174973814765956737699824934844406019079115682329208640313188481854442951748731342682986457296192204691008069273526474635570881676639311435828960342211146702350921056959797626178201023322770694315742127264784445721348142807769664113871790061074082634219322810760812402498029999269857688586739393037040028748567793242383653226553439422960318921096616160596963221486474360218339811849028967118607061637622885209574849874983310961535607410480355649994095947852319716838218099977199913929089433270634981339682302436385346287175364040404387471199716086962802022540457344952626223006924033361355208494878627941978880024689561267570415992661487420907997938261480230128286054629563573224365678553144169314988669941029022724900805819333303880110508303638591335762510777217484166554360519113223643787914668383511353180194358181807917916768792897887720197667102375032614984914007432715053231081638616665629165613705432795833625049627846304691768118257163188151708441186695884375882150978470840542502551292530664906223510492399914838869417937484370945200314730626507813789699547541582753890569720140748096865932258072659387310680591382095864060659528551252837959990630242954898652638402907158637895808687876686558265224068534859125814313461633397657341337321607031944386037032610299030749510198983554985266598553400655783183221623329891895214806279112499777669847919192085526732739744412777554659268963680680335725138028063643541015492219130764366418537789614116548612366794728408184816891497397337103520940129917390035281162688002058330187347241963878970778967961611101936042698375334119397654025169136690619487403741426244254933562501530080272668450618156092608088643466211245680178072192708573675884969504711866720296972684409945674938452528564430411741060042556628558163268229896714938624611820717492842384560125446218222802876621841030448754795702011393347802149804649826108245718906767071280522379944113364047822940337681490398743867974955846042483556138084735221853710753203905905487609706415930194277403289992618319961186792142904638962886332277691126651650371770293945839176973913822246844151655047054287610627751532556715117881776228179597124243565460576667234975731260462271589040485183203687870610580522991418822264375649532815717657159115955522612396385873851220637723471641953548358004883358168318707884357388556904222060729324375787721504420945293448031408784780646495543936857825281599558181686528490397728361390865238740162986614410544344366021055937428311848621977167154914651747387028915649055133219444822467123663892712695456696543363764907234907283647456190246914162224919060178989098432571459654965379143196342785747192233118115027758201969761586179084156779943987055207609904620411915696907605943072057722858867468655374619281667924615992833709632989812844516266775838073609663276843152883831972794009197251210964571361449423616231536054806335051743307524946440918126336244457852697581549083860460703326863049115311482216618130101926870148655268894972784382692623665432821684903940707897448023020270512650728467030863661030686018055641683587108732664000795527653092452674661151702685032635798361123731464086615155665794864484062312262544115394749801011103920773317673911291395236699289262935715272001022935501083385229577374521555841925755344592227493938351853159832370556012260478809421065377500319184888291020273804993223855650138938792570328725218603180248092343275719675281083127277000998352610298771294667760722419930420176524482753678129231300904385976234582659995455576630333469509735899445301749130821170604840198729253503815171438679317763926221660592663843834007004943568415874227907981508795530824510924682505839654989309863474121332922361910726298036196492523952622147468505045915756513537738117086168243301909848040146426549404279068738125012530325944594837245182701181668001382188352276970032352508966593031347283438190291771113435403420457193663284010472561741709019016382876631802691434599777313718169399728163813045791324238302768668315521555327508946567196893561878136166219035567619189703995684385320456637027813982682619910938948550107051231202067168995749697448281914843433970577831473903439374376039552769735263818360342965832193475424038524858379859090281974036551103853864831201290448530140519458567273294648486614527609924379553686253273813072195294855429847816076452531244359003159477258323648272915080185914529589791307436136883391313072395749987279095751013739788405453633326019238018320141835562133407425427529986341983007194345363118203337929651333682761190189002441884862302664548666498481094393554625090123576106233021501806815437759706154138898560325457757333824882726659613097136987952713216711691643905096373726131506009150182903319022477186191208781532704854189296193729275026229114343779273780361873172999097059484378532927696589024510524002940687208408251911449781586256734031591812633639009184310214736062104861371329656737388487472785350659206569842558272012814740853099919130154070921980456174110883711991896810529472682866374310932538105839174746026103516103427627649028901822189389428778098934038656726142227763864209249830591637954213175558099574807955161651913341464646912527066737249807279178987834813848473959337926623452703051607980416921117191005396285024859037439457060389689328149840576772676954344166426627654307633890313236393302667950213964142568244768531373054344947555048899666951983600432911098317909693443136311161393606826726894353960660546631447493970599542616146571845683236214466259507597848264624957620493007814510721521751478992601501256910921259705718156668432445661467423465004486328670592352981472758159294220399602345432293097266843305377674949480606985314951363251085507641326764501996556842198112882083569381685654367448128804080134200406686641269313340016052939511925732650538917331722600575596735006064491553397881177191045485649236186012649074357447305981065945680331693257324909507372215015401281135987607710638834357312399153585496124432016070947723381398282585893979621607063852646161371389777996660756485787726003163346832900421320858217154062730484920686717667212569866545286244555001915164192746983916453478937601207341134462873988038677514555902920186949090804278998071639261212804932389898090492197328129657414757352225217722765935562058845921810052412367193206849235240847371087452745135357080431612986969691125053480727435302106699194998153149196200089740518714114708024462701263990434549782662137343951024081604083967587033173681761456171691094392505511448897825877346404220944252344738984814287642104484570599080272535743844311583898635406749581148187109715773280874512387583882079081002576513504172898806849363564061674227371550743241009437887460390265370361917881789709681482719506077189639204041111008525198049450945739819807561765968828090585993393050250205902070511591995955567914055080535777223436420422915766417344733972291002625861627355064613737286068258643370650921631928060938537002970782375729630678662441800642226341058647330064093395432539597229800353393486948563993658978572141389292931193590513068263197830489125488058264252983866006522293261417623086013281429953209659266990154262314686170079738807523675549047645041824348182825651350912650992253315471305584513286254372652852998778220966092803722227000058993644885780840077209156835758367340533250884798387306122835005416139758361540800267312827567152132545752548300108899988359423679191359474511556304457569838363738681817645090998099714175592072903496952957302738377394930779619268530610305723856444797314471195426400494601914874653414442356108136572294801214918597390439453222302280138231384538736774794067708020123758857910531446137927937961241296113665563614117100612779584517098003594302268198414300907585936644817577096361341943862481859862457458321436695650606873267725052153546940177307017432162760489791882495704939018021354877672501613261667281121328184116307037152587740180729396035214572843337184802580962125695008810746380039077554673315469417926941064168928203536057219692483460432736826518037374869162125038545587414395115252586856488524911556174879072921018693083061792855374865909285861507028769731328941162422089491202928691775888974286519295837131227176536477542438476581618728403469321504982327978034448022668118068387355179913658733773401531794943474726401344297734678575590281014738032403986953481934391164661406651587635140802230210797474252711062054213440743139026785617861447012571443549023745920301313181947440506725468537539940708938407204390938694970885319674425120822131570311205169778045028578538924693271753352111768666170993014793897441807089013544372422465025691853522709435808955148539146025726800531417849485343870684115681358978808156167786458258809293365164224725544112247857146318368557548598263709535283210954673075121467058956396971064102850531546654508116042561216430628314657310382551551304926269926512209252689339070205325152320202142096884934744791921968249418415614301940702730424431822078954260071448732667751096674299598942412212532888977307756660296506557043279174806691605206459857596300670807438577264189184528360125559804595469126314100422759591339525766336404395046221207245906703808226881614503639658074647836562565890763476378200416299017287655554936061472559788944836129712357112896959000158514944510930679497463915372653009935691336300045158205265527845766053136752756397647758608493449365533096499512477639582172985841628686614824430637442492385708539717404329777790022246893809674620720805106223278333760233577440703846104835594385172437288659955529929112256554003350398693182580190571492585461675099965223350278564400187850268687790536113383515550699313692996661162846456515006574583830067662787266780023416471873228008195394326951465878040687246731947656039857963529223460651345635831545609664494668846534074397678576477024014507286520142858728773076583003117110634861664079730845703338677822033370671696313794185010712052536998634499124059968948132114423917743452978559216112383598244675582201362735293481052591233678017237162170959001779516940639108938877693033110311525409733685041227085964642990905351278961642623880585660818310790422571109925491812327995122765745982553209812916418457310892576181650499807053051194755235245325707002940122516271301369341739069040877099196963109696897105369657584476848943414749415533280810527679479137964073776045349939469053212787764103730705381481071777754353693275737862874554009643417646271954952904444723559707759427731673530071491927749636807648146639029459774087014284980217288951308455148445833147599795813436394675045801961317239655029273482455045156790627270948617586729781339124141983121145571525189147349757476727367106049651411300453305774927184718328879631794674903661161930666769849336657509322014998557437159828467958009481344559788409046824033478052854877532937686279499865239608901421827622935528126278563497879892721680828309002862907490184126192860167262406605112553575525458177385261828722562256757795621830375715622236107721778545361985206994325790776225491840954481603659198475573335006287893175547441747229120585416472642528676640306750601605052201724814771729973192847105536542219530546127943041672382414037513372524416266229980634565008598710971542391233505360443862976866297251888847164205244232969592451332732860296063008993898075324667534135107656880435590310706948541266074949835486486414645782664375000625115202130905959111874548195723904565492124537367632801839422196988111769821214910556428931721529269720635398603437633931669452727086078353692848598141692665364778907982382430875469996521022499798922967355568880633092704361417325186290823659367511762491956944622927288861654655663020731423276456853843784701964436160949524428147150674137393479684622408597913646985578428228945053109480467197233217552337464012073633252846094114822521770153875144709238078847409730284224195845319805571325037973805133148984367774228256174426325726035629615112599221630861615979762304451710499626662614971199208594488771170726733430832008943739431308470317156816611483660132567917680385622889033995980123146487745373282006284428874551045854414114700330766545807331845566708140228890028727923992145531522186545096906314390539201007072306655011355495340631714606280863825238824224445839058461396010831052240455568452223453069542878885295719384409159036171884290269034936552367588859828709714927796025333953130814663210711342131852264705947773766733178400827217071689282385361713808950333167630863025584697127046179968602450493975250739217681212787886731708903395640409261010076734875012200357231356786854969118382522604551622916233067850500910397205677152834583053559758132350628851940481374325190286344741529157444841466325249323883540488347218688806041884505114289478355512758536215231473084458248294036954707996599195131714132860124815752332510481272584761557740541596544841327393851681771885630587349403368565099258490093525481750784765652429697955027116965217718637080028645818823196804662453341698764361219360688045224085117915509040303962632753121854477201141632616090578587822188355547847238142764820632315723854241881895830249122957722568628495661361787169128332164534842491850622078094774895373302326927284525451899709160129458840898619467582010544140411453331711128460669657543083737827253935260466039558319899851553993902200478416276769146034454000311479705653454746550264678922017678999738440101753666192501278463213582211046244975423804961392850304639392516074040092206050347461668657863461806423003173600882498944760361758753666538539327951410741354569899352573332956145963740919860802949287665582077304677213386378360404515740166516241500483639926747218035086830581994793710492558771303642025559183532648730343703610409805946369119370521044430626797308418841754299087578758407370038793028328547967082597496970053808691124642191967853791570509035243826544096035253667616340316916110082068629365431006674146375999676791805281823326106214090153444068212225232020457494324600346343185796085357375031383014149806975521436896890571185976672350573208526724032349845957317649299253109829521917530948082162925208299463514448644743961072904318840923339384502597694521045500298756848430902111335509947437989037889336953660157212355426729589468180687653529174220089212179782418972837270643822224858676163949489490580763794417858047669159221513782543779357216046296881122742381628552902847855517010375921020044274301194511977318843749405358497785977539855831237251476835499876875980383541499146072329517902473622033721025396968625373248977379727972432494996117996960298438295791830484759913492821278648831786179644129532442425313812609435255791690733841463962928992214675934800701858240767223522009428893676838023880508054802353383442550591315248616745800938453944705590683793767818976997481417453784217384190713512077925685728761593618103193909861216650244599033916665704754855408370399043675635592269571881349926687622032951062434898417270644853551988861682197745974546166967493612812658339468993409194977276836526149974739169044228042818989489590140487085719453613036559078030132897329023643240820972337484424740062748608288886558544247702203002481691972419702978024468795676920354857517565906919475200294671970414544273891272232312614334527935216272837781635613974373328253642118798910673296694215888614579546745073699478961588153730959236790589301051510782287382603073485748772101468450546559028943160562891658359871132430509118254784690419966052115833723695897009993557523841118400203785508614857442962875851472787841617807309571269312001650145833856427254438140751224794792435925865064074678916041355839914120874248577082674635107507386737763813863388303760708677934334830948929633946572606668691616428557960680512869393757374944646839317730782116567111791265164088449654117004396533655229802615164414119614975576835292362541773217663174175487605282359449456581833434084327145586555189128123559139793047345122318695150549677464130639733500948300218818827083968761852192650038006552489693388939243989209336873098878290488255897242467799004771394980598784776791911482857251703856555021458488326255632007600786352910387550799510042570835287094536748240317232890675031670274988532315819645898170420503121339428076987283350925099962058274773531521476304264212162497868680775736655656710348171921717011490226058978427970563153428397718050680703204336912578470412324770376900743553593300423553493317315426136791886761016976617004548787920854110896574975475804783129999472600608528319559114314059793802970416047777690285859439167991171637325758028076228011970696690693146634959102956690333959065720846637974274928152742600173823155385833450262394193306972940207374700208618089931950995452804559568695093104607119867891624629366853012921004722242083505857965828247182599610051207188289811031111864400907866035729834792099224455379372701797362759064213265454905714784508275343863514187636742866475671480583439860665551183546618244512878004631934095496058467558023643125932667531180697773357696373544467332115476736766754008696615556883978977574621927632082248113044141592247688237320995956039354498545741804806070023166567786952848657171891399219545440060416400683330798979128021365792173788484031154539590849805101797129726936273484689717970091959368831037605918145948265809700819898033178165870321541890914295333677775156182416254543758007680576914451041064712590349874612510484366216379946852115054935508013399511475431605613311683376476763490025215256270524904168168552571987298034835451750044701788424886861931934278524238864743270801199821735811005127831064885327588726192670149118677522827966692287987270631631026343490137198447063782000835620982734312284547703798312855900767866222050296299958543286875388766995031418090637922511242306259971835839509956215747084546953358443358374495211008742221388450830544981957043824118492393560255628319827347294542475033240520793331353517582547183080647682953352461556657055535365197476426737262590078824333510527743751503330360925374853712430928033265572539599928224546992678337180401102375878376941206887757502329312358441365326043239203734224983031197373274334840415781508555370187905176654918842037103158362724175682626846253644996184535760508831005770324750456167112690003784258261111390555649206517075442313351053612042191771468813069920315805192376888033884207189211777770389960670602685580989801620394457065167454402066769710545756844607084001677381640313402850364576389512712758040631980078739031526251670122247688846323401343529086422880343320135501324215252834592310332622075687882918806632220300326798527750255475838193067099741280825760286874564129514298306970835214792322586938216814719659530239945435592339320950363920274833322062945503173374891169562121344513674136662596745436034241834656639793217819810632411332951243423520700151353334280046279820212734679129567967695864494869332988539816930748621276285895515488136080228158540949474676279850003218508883446367863852049844736473898596020653464495982726846102342364862608103305230690860040992578429234153577357614569756794368600550001676640174223571619830735786169198301774450769511728973145247393837350156574064601343935802549370056597287696443257675478133339402600493390563330157155242080669566444211170500482797185848206287516222834582067908352858536411664011807834010287491363023190740924734569239692456756660152044104890355514718080248493203765819033228726260043199830931933430262440456943266310127152538552970784027002549983231378149862877703620559908147321609457487620081813224632686113579972341968151520185332723016532519793845780779517979001970355774855190977572121797755373160702384166112806195341852589379384875182714633162372276046709511766020879227501391204640253222635971928764939293145441646500390789537220777737754708311315680823656685710389913033357003246054514932602844829255220605247469965966207347820339655192854087787216036722114937156757121969526547474008789276869517364465222797412682401016712725046802482020906738658442521948350957563905782203758485617339500210773684809683512535098827741153623865658363260473312641996948073818780886308639746533824429416991026481020491149902430623700391177074805590871366197770266862866534651506203922284542055496715644746635247213716220929306627869668715698468828098155567451181940127778077628420312383873217549279707777830162250877589394125140114730945912370613690449885516200282314475763529689705839463921659254905965089300658219445717494585814001581637472747115319006830765283506016737025468061356356735954693589853469611508633569002663737993082388925613292588986008168526199251116777705172091258695520185107978032059837380204947282439029996422192112059106999644813398673216926366970243986376822488550334324169881442240816552190716436270669727591552241086755813240547051245312433265195421497375067778559012012484474051301789636900552083755559845729721079756761098868420043122225524502185497903514603730062778497581049174343619428444279328044263460192050398893382155377783831490995012002308477785286173285970263947679742787125384368950877034507837271099936451777494210251281740143027324810721706141897693373080912746948551613381864755903920226517672955193796572247887688937057852333617538370256446610452888326858958468922432693205724331027528577594358792061649608279263248740239463657088693670669619152436176602343541237308114098936648832400306423615012741827303730494868668439676529979618132231406432922095489675746180963493111932980003360355776683850115249020206588368586502279978953881415889131291935896861248743025705530052436109673932894314406065247456117165551354386743400418580663356732668246004007487572220189886702316622794766717525746999257052399867019292624428296165576498527648401264616760622829052290336467452378352154867124458020776006178325072498554330562496905725981017026019825259455718813901112595420318338413553595481977044060949613102723530442338824734877347160424355176007047307303161871384935319786097941356696069367592192464853607793749491657966423262190965698262814287024306617194101996262951511484567340189270565466323518782435691554645436514139543434038692471513248036126671817659401286913700000354127522213254958583296169592863956353911328573508238447746806973064578072454554643663247045520553807459006378836877249576225657420769117236320243573647296632176969591145951832265441817047647758574872001885479222839844545094675055622005998316469220531703913029095982054045849831374754257041079578738687513509082997469157716397821325182177129021353893563750861076311297243207251666776963853970985491571849921008577574143320285544110932729371062680709574073742045396571979180269949262762168882879254403032400332288317586277174199294068272150487195360994286240609701440767482499046468866060049214997243038108552961641612786153262018503045271538294578224934607401649991035192653572929434766857843947694685310546369827838673028439320977377900433790047767115544523529094959021844007359796664263933575071502811240636466755281781537847944662323841290457809016298051831651850352962886953510742219073729415222681168455266408452363075814209092021334840524000039392173617868168412990549831230509389246473428106736747672079306606565890791853347752891196553268597395437798807495301028066750574532856603339351490441631065988047568197125672568637146045604469778931614019979196597846104443888637449009126565462418046432549384925358542587014936272785834010851307950567145737241348167145283216074966205309028967826102401638688352271076054897203818661649536380292140546413208043276877366767323315076812551876466374990525739361957509765840996497014475756914984200998640381456202992740018612304668949979998450468378298979119311780883732051441727142915619151713369453155556700674270303674373148299135495272491707818861471288136461928342444585900072314606193373837839630966513250794876540019903401497471673261274042951391920770636570843711911483777106921199003248301610769393086609431656591128388404310854104014929363812257221012166677784813937533667704318341199824404905647910700652321433473556801798358414916622499385183567584987700663773352237932717689575122273072369415842586014109200354854084197423635317607838707829905246238176456322863273937784723689375621569911373528488850208051717575215746616090461102386139035148045872101858355542762768907629931354848236514202165333476511695889568701881376975826263115589403220892449021054884109372826306386891541310001362283041732215303128371262306429746295531846756179082581527052541755757939937465310281222291411644086128715967834002071804092879145443487474201487700776124792299520640453243470382793124954744015942998050319001075927236785982596828279669446606709741361147586556117911347671937401958389773166824043931653876133786638492416691469523121927717547635647231496655926002615338837933034809562054213426632993566302875871166265021853144934434578075426651656187633558847729171974328078067767857030299404820456059172018620310659068955813681111843229864201919075884811111972684440347378254410274339591080238439113869671929519219771206795819651641986455704374659422295116199099246938670922581054521567476284016139092481111779656033916864578584566443676808953430236387830296948534299004993835363860288707631866106116589912432366486600053542069882501573561086759842916567295267737396179307535534819240006388878012554661491525805601486275267494365095184963218164944527143927584549188287249254383565701628934244080230594903685303513633111378202178624553256900534036015978454776770870664294103834879097195452492338209340765997084895701568128543251664609582886043540407680094439837267078365809279885444638543185261911986080102042342791477586091469723785179692693819492414134076783808126479195901494475315735647072754107716415349046128666749142262074361730898560852958815172423532587659079643550951724167445922587740146964085860701511576411495679111161882572894304701729101121266259477055350162759360414756192693581550422988665322156213946215189236454368112357809879664291554537570144953422365168505448427023162983800257036934646309861047262219002327610539974805690695391743342349316546016700290991967578042333322889762612314135697389592160663658840824034294958080483652409589077545141722778246226540964653701291087410416916517011959472967818624417726035157442978142414772310387275455415353943864650140355866879679140567558173739636228759462459351024823609828838331545297249673256250509533462722911436491123506360581734975823253824817118008567473853824167292315694144064498069030491546280552936372724984599776285622180443918690747063375452440090324345581077362416087427954051458185866437521745243197338479456613180397282547812511137909649560600257224506751049314842638060579112267346890914743511974894727980704157304755616851906410243034290660775046881744975500979692171314171474627400342056093983752092847010854490014480018430375604789260913748315755512578545356614095794706050845168745420100147339946276986088554647129525485405045425771461402361043883771206913015466717243144284074939089825522564934757963950259298836407760712628776145716257032089439308906651852657723157847829085291872272830494951046436086327973153009821022462484807307590959411444929769196802268897054341163464845977235944360633675998280619429690039828367683225812146711275122174506300752275405507074126589581325430904761520369328567348797042853220521362229602358039768830346018496727774532041892320840452037899603038123934649306663483302002012380176383499316493646840866552332456243576406889417530497860190062324938562613352930909422526554978522614701162721614995711738522896662848824213637031789531288760264154690834489483786310459394201314789407350939626715284191925283729324930223235070768353473026204956520227019352176178956422690270857787066104592986329004717514701163001697229763505516992994206596012298146815492058586323564126727103951701976265339617893235988310950766793613143098952350836534703911672061662852692408308574529397468879544093713226058546247147083078579819047278407454161372144064592908284346240951840853103284770043933618873386561587253586457638749801292696778564049077046236639182807773628507955112197860018462569682416963577175575224535615665870142427545791338990484894548728638035460462901322801673386664121617648510669639615695431142207821923390541799482958683766342254375549424453949716825510485516083551761579933644437213333852406972197073945244896809345381588302534752081529546115996701707907726841083119236447259412777171646138516733469758654416991764900296419274845075274149447660913027033628634356306990908218121768871854553361829868190381342928622361421251145746293044742824083399718295084834949410307264108454215807341072522081479849645501163099280862120743347915356649663160412195102090482568793693579645111608781576077834706883308096864582701604909439707222147915579761683313055898960837934151065880277084425721320914425568036277017007569737259035555648969631065756475345215289458348216597938769170274547855661717823418505575936456592658683753205008078230610790242452881573212069975683813678784483760374271104234041403336903070053469946821418143204878833170927433593985797621132121110899868958546986830542072166998363141781304730524406443228620196793547788064763251510560876393653987346868781632892651139916812925300263250203872229916617539146879383810356617972229389258370311111039631432072116327329769050324477358322981347096362995211403344980800803975681662503560775364079716675912231871797304275555266908583713294188433173372198521653798145547494885421930134253227996437199775425661885281223692770885126674162123417080113171238882893988384472915694121352393545295870455766180953616175498215369188567102401211586051223669530067091810662938469273374118584498594064293302750633486863771879112306234626169255765919350953818118983580413436911727168403829943181713192669116004452908909455968951185031169182264469265497313839834890729384838563988172970677405772698578815033301320749303538443864103511880061425438097613267241570021644905626885214755008593922388607400886256161156234812772521331492251100418078203493005081609628417990145816015033542792409899187438037715165637771928672656583511215645029353528681420348525426058796079905111680885294171756537881198668282489013010745281990238270060897155195674703025752136055869051921754080658249028336313673284192993021994582584750137634010190342411137552043127800020263483628982513150186002361323938186850074757053756657410045125396028782257172432631887991016369686804492597103667560341077555148612485904858639716158798165956653106340414122846291616984037244976778749593644130134289787811720122449170091358241068157607580347695617301936376358709071263647592472663856575530519893139921817253105161807179179599964096804678609899882681639370478828876663868793943763593903550103492379532361849566596597972196865691985715530087331721760820525564994471016636453738979838398479360819200101725702341181240664078293364690755213808678581364700760419645078448448026080833428111883342294614267596668921363211954290107599809931561998157891686179229559125882651746765309457923473019332942098385238706194167341138073051594540691736082983917476204225673395049312030304306444328929082146323310915954950426336630128323051079230233785799095946791879920588542282448847613396891869168454325513554791604326366582365902234803952668846903785251248025848210181853894128924509153091326200233558150277996400641710430451273393873601431683678320040323099070475575293611989397625028215471713691067992054480529246500517317527753483420201301397716751391859026322859961083649150609458857311539221895323686286048381343937706380373504346268914420977537476726257922571833180984831042973768575627300445331020176781686349004697793190465332079388471813963820976160390409268574094683784515617484806949711643784260152446963411467496107616013538652736223060157279027825567177905588456190297393617167173878290609015481083889947306594657297419954679618117020287022417557089823408901742043784010904480154658120518002090296312882898182452815206334243330367000945540331780702744742674009731729968693220616328988507131718630200770325213104856901548998378789976030359129151708194201583718630245925161664986496087560189419681588815367119069042648238612477515386820912931378439678771986783510921867288942757998820664614011197647772470660350680912224048947671568913653303060686545656647828879880476587058460129802907573686769609605058988492607756654076251219718809073323695281811308568818581897497083865945360370486674666640640713675106800773776066272040672127379789411642043609889447728281594591459150489643515247372151570301712708385849701318138820253991510259553202270406105526063295223480574445196346732249766464117319041104187401561080940959796410399156107858371178531483514605656826892581755299866724766605204269299039216651967131329295243700862156674925854076500297628600588500091639598795770468323294770022152349478140531041351685037046867322614818835834455908501119572237796050940980783108367052139055264929924379175837231086954610409545380817130446050269864735114490537524647860807426671009039237910537154733058519844716574763847242409159100642560417244360852587632594483545089225621768280064889462572175580704348436661458476732799223639784845937189782497582061081797444373637790960797443500836518459571842901464688912144041302549226185194261081473686987475114581197705334438426340201596743429250239526674837170031275387238766966556653451859906288644298418758524229268587156855499816510746184275564531024181834831727918354166144073733417727963519345301528379838368385031243221372018997658157273818504602962870527572938805240414505308940489310389617398329398959048120611888358894608947565053967299359993350319090886582680416423338946201712049279137580117078088098075593231969499784406287436112644202667275389307124635817592055518786174636559617522558490227715041414112020979129235669359656529655595329864945641528109669232462686598612018306064958173735743383273985321111245529275626790898980552238577164597789473440772652003764388460123491644066420525898328129391554594259786609196942240406360988073210459818554105676240722220184866713285903804331437083672511151961304401252408073133157876697997870027059805267086673139263030126419426956821770040756703262006456645664848992542785945089692683189563875219193349084930247516020243070327992861051929973492056698541029752859924994734356919796982664157857223294083254599457793809646014921334560213907877896245954597319742831805388873044550886755707568693136802985777623403644221187326942744444094736829693446722672002308567686896137871271159601381594883370416727863577415352387878295316970307673848683260447249519261041023763438032959867875122082853767062904737970791275643149369202682656767476324006210508149327875956710107572250435422490534272244178265234605317659379227414359658223800649658427835807516861305437418470394153768205487530754969365584846535047497746042552338183803277412339081010802813048185920555409371886138229033668339455274144384085948685681549291669167840283826876920928221127720097561378116223942323831857755241099692811088408889189143612268747772247236561563142523160567642073158174304532983763815341095455475448576995611248329407902070450030496136615195503562477565261781618984283317509243681937854422391781250952333655002459681845000783182898035316273552829764209655485568647268979461826333477032331579522952527990908113038098408674466325791557901400123206699408672141680161501463036163532692302954787793877434957740248112105881524568946947818504096904003372868258605253118467195940656363681403144776130564547138696145810556079863334376935830237058221144592510440081539462544726265391205062230427992859326804561866835637942695601232458546885736517564503763190253051457522897672245350374557363615222248932597106886840537978023851936487123307217329439161399457814143112926185990392714924167754983730920798578672228102907844406173993815618029739956482033212354413552726924520721759211937033233207911189661840537913205471716086213175835018807043809063478191250168979732275045506069546138321007170339449701626921238860068805436988047194710876314595177723621647728554206221859933540524710174195212847580207380629817440368716253555595471457094495755563821906598377122933917698950689671986807872214653020840042180409495225040245691587172036615955658516903174538359780552865972179928785818160379280532979684167324082833015549627908314143076056164301515079853339278910044326507816929868115604067181276341641047830740692782641923940509994931761369225588010662327722799804975462418600654936469885886736006153870919742618615593808066390926749078978240359579263132942619140206376921803378964112018430229976550325728157491559775754236811719851996706670881278399984721234135679615923454155348747610310105774379611640004852261872590055411004638894985267571350975163515656657616297643429729786474823343821125414198863000697908399962912317907795667362419875013693887221365624916954915309966441050432409164317334923512889907937136410113834953538614736379811681427624528927047049970511730251067514498887811969814460048745378733395727629895149609692291888246615352612864151365460245625250156181425624907794866478161011364892804282336910627222388109378412599383619762494498226766050677504752929694895655352184168757024778263523890422525433532987379684230073412997412224141357789456293043048307870213230666775353561982805374022233706259485486468565583082077581722681019741540038017793119943650135690276911480442042673205091823359911577659704289505749595062274934464099366764107391766242213433757554576844144968442740651317244193588061282993807480627551548511937497923779722231145069877329641604736486093508276140983755935305669408456921235208024672951353479273139016553514476808850444429995457634292449120740968024738587552742307587701569416143422930851846507504840054992131617858740817332033617324006472943860893835586820992015410301765533243162583243200974708850184189283891618987180377106506286732792958655913576269143479072438416005929831911916864494905390152862479104306682810190020720066643894638766773649722671419368704413432363881886220889437517537938828216810859546966988543092086797578700011190710412407870903079741222395109464148199936644509647312657732916852249399172705900059704389092062945876551067770456275718883778233189439520295487275772102387029253980017525090231550745289276882476058691119812042869798822892037378697451973458868576761304248294898013832031332300961924214185526572723495559269003699378419135560868884553600732778966094720504583930782525300936762355698293553573158002446907286695000724079765892102855259825602769939193564994154193517845180056638351288648206804163875306198903626983708696121083209472939432174766381658323329534898108606689412771554856273717655668488028539287721287623118690166844557119039430712324380777595361389325085695399369724129034070187675380062368542165226076671186551443736830870766234222167070558796262091160346663377955206409574915998377124696789892833585031416731321975379859388732521857832283502560513521871968869145644200901705831673323128380240725286208859593257391328013791835670289035669061629988344692122983484676702259675254323936881258698711335941925490535684158077984558307369764798864636891392735462778635749945874942891916031763365035664820682467628806571199936128492166937494399589950125060216514286930496091219577959316682839950595727147038515225670283681744001068519066856261791406204847890008786804387755027727040288840133539014879776163385299077848539301684640300988271964910524252534109248817620657749638746059707490001784971110812417732324672191462520868784769111470948978651856806620086747484089464899569173238606881888956508620497441106209305251295718375791897972988551204867898106105379051099119491764524981770139423718598526088437547162063519183509950046985713527841217822479394589914007679592899315422867123246745533612925313964302757187796189084727790835091847590443258955849659378457108178889020456876679898486166974864384024149221738746076456077003979041922402215721076581420978389468796032724680307347498699155044825224784537601762710967269208394837743068960330229771238071816175707442505547835055047329114827579568311524233094412323313672097950112964456552354211696422795558246081588950186763005559045755797209488615782886597783384243745071047623353083667520094460368570543702056080884324358987998363941370549424769180931585425089075933400941296977140826233019461465632156133927429838668751182393023617393133374914792039083117761950126025237061775559427057434608886133989098781412393131041029542780545260784438118167573702619027129936447759784298042752401286197065880587611304872201369967076578770122925192861926733937088119539779736810093137172167554409735110316630624735835658624197443131941079536228763674294078679978305862604835978752868369903778931369832500044009737332346830847459279454127244956915411719104201443628290919587104602382150142868890478706782704745568985850379721145735786340787459422252019499612997330494874874034388235589908675891867128956451765168549313908026825341808729048270594685439832818696918587996618476989612897507571511022901192581129503000867754249452529389565627150759081488950767437799504054849431407685049062696028363481070945738591283243687762920417292518847871113101754503823742464658458945218718249469682530053525957772285132918534561596558517203348682670918560795753679930674679366652299705392480342016885990857521928624382293159145488549503912368008933048850919522101362868155876091298375895373808186837136101450371299050437394461746485107708246118586974832659268522170166775221451657288189228646272667282930949431196063928211574243240881748688744994106812412909722558296851938234614088967913521217591906611804736590927008915798113361979500639981474175936584154737258721316234009385999000840028543506143795814510668534035964723317580031978800827098766305650869728729673531636003386373661469924759462196519551026200507442862333751653028083475271719096846047325910829354951539480755741473295916722616609453437069161881296183353680442364256143069897281513698953298162784181188167500721463607042627153154677539771142195815017087924975750583790942027435636465881080768867000628192514838276982175359947991678797402778520641189732961438879858724936787166080567680191825701618906164849279887987941282241624854485211754521931745548418775764890121941858372819640269803064302445514197433453685517174831688898692979551610534339169119644292559742303617981296187757854865225142019269248177854829980795665822653449179576061899041084123010931278026721221420825565009626524667475465508277720477948208286480471654249876067245167199500384186168434028118916788585750064484941928097099411207437231914545801242500598577143229599207170866615890684023504487402157407939258849671261205091212239337414328760618296284723507767208021416310563112292031171476929673154204046162022491528239169353681603257024271124636174438255119736362891385041754100196369824474124199602395467601007013733505072420550359525765910576017288077427719798411991621694726482812128024800059772387858049145946373498426462510326625015039613070463006835520231411237881995560798551931699715764971541254893389125669998614373722014641453056056095342062345427346576309679735851540692687742182857952744338075922716324753842926640895335918553765107975655103228389361388513126653553872221507315743368743718363878238542948310609399050750341287780081234517630159084168376200094464899080259346735887340149057334772952332896160743243931675331683024460733536714590497654232530720546473262001692592921145926802614081471252858980691824353328777790226317180539250938929729042237681937625298725433471355638189914000380268193209926406107118156402027441575005835874391028437684995124824221041208354836029617002393577708816045194603003890993287695751125589011527267273060016490260961286039250529619629241932831830553239668944512515089423196778751753306080499069521498751071557872273736906269522732747316367147638978785381244059335158938001030987635300447395497162760708344803816806272721665385728087793684407023649344432008307623855973099284858745876371953940658510998667914831968747411122882795360044806172331947657802082373095770258597993422382061479664281388108441049399464955543540236233614388097238000415507836052022554370931800845892470433316794238324644781885961641916812230352691461944479126551365236901939191093904723223652056829469781133031019280913489768251612819026872818335922028439072893469335005825870059537969489458806361550420880378041483308962359932846772009397175147557663418979234869950995763236238115608469765730294088657073930404623732607401439480243405176437007346247491385766076921595424646394806543235730603495790954579896453353484491044648293959824638994265053658801196208463299266844937896862826641904329084157877647774216184882749323925731537895520774697975717304143992167681556577805197880507202576986861635239555713478234568032350939198555159945149798651604015099575208705413712081772402366372687791820629431031213310134435174302470421798043627205051855496874777073004980728219671587427554108574288457700547149007813635134514793184682610232744266673157655307367170231183401169844370040302346936264457895108067248516082926359658394936213547952402567576936465668491265084218554189211262377598312253556976290568872246230116528713805362749844466817586619199031978683343882237321134806861547177519534957220006650622963869347618875751000247009808947096303763991446426853041303827535635252329473195007094323913106717311374008634196252875968879850673321525073805355473274077038457442607298423779355351631985507308021029293275381534334281075294001918681344483146961600798620043374379390983359132782296764009721357625321329260728825919683817234167243574443862656956796118748710057004417216034325684245632820316906219255785867894224425981534961345104669149223752063285018872228713060549558692738189534535915092876572490491588642686381015984951350414067638709180159404239937577119621706029141600283641890378584214370758275003807380823927217140123794285302477145065272936203914517895946372696726419378807008815164647528600881107008397171019510532229068734243446189789893027135276800394150984564863132464863524495538605564426355822602533725708188562184947047565834309981178074590447625605545772240721919275996420298385978538146283705913734788251888112210692089607922608886493243767183927452999127280206684711795563476880339834118685048458365580769537780976976163986621960414210414225440214813286390865241365835240801953771127913841556676529872716771817334582575265290020942929004117307517865152261171705496634071178983170518207315782374727764793602668312145050343016981454489707095455874091787657574277963572168873900618121261997663161206928672690888210402139453772999487693295566566908823072749254401682106174474622389924603245757009385444163749347690978359154689565712799613656486512566432050601709375066023585215349186484612384318350064110304098332931608508126162773536568930153526460095327895494017804556812778116397150559789021651300639211253206136821600768340959342577531103557195870414396470575977253222148229084897430358282218292660794510128800061558035459519840579049195550809484709158303498251452777402007130584117724374176094294849723313880297725124334053677763791328828765314806875690325010949087800542872263997718526551289697944258265808721076733499066627887004326871879041150860653981204285558898507801246619397287196562832209105096858646777210709168031964063003140127508350926506458302525037337875995157760278855403057016574983586270667692337578116405477350832273289144200309393536374818299500726847494248824020333052345448387628297995913315291620876608528916900516618134811661821358643445301396950756227592044184076064216063563460986258324847340851317637079808521899172049487013493912722869345847522587359575362879233259638168264251268848348521346956563688188844638032420142310622105572382388938654857973642279412383753720125565798186062851404342150872492049043555309624938516184098382950138249340495378261222540791302735530549977624259245591961692231200679522763372894852734702932590099078808098833238872243138926733663693744604125468627413311116388285168050153478571334160941898500209808136749324309720675387064806253604730885390464017860700006711768949651117329948688659557703182169513160214733584697480252766733170786703296747685699346812177432015042285022712296210284059467781314779316652338189220287219396309194003607037941540578037977839631950944703582656837942085672074019615082629713708842976548816073215014730837992536063697775991384055530821156668681643075800028781052235629397911113209155187110390753225432923923455057129499466962392122729863994755542781257724309260662064921789695570125848794397639592946922188218885724008740917988480549919004230465733225648175340013852048850109664152587363296253279387101374240691215201181464662257742650885075259601913502330579133736126558463180247315954191946826224435488843353453021122186805328794902885655860399997344861245425007584992033148557397364524006729358800858899128040094791222206974992463396044944525846292657600919020498967928027827288721446161606657756120593643099260074927250488412225406802358718930895069202949289699849619190500873568594930371709298698535121208800748846798082861126566797306886935426086522673800689266154926085996467677281274782483784658793085712534558508460819093076352601576469232986190057002291359211664823681858315161080154095599350828468567892635482272835638863922442106966030553193101074092001734596823323145032145144035965295728080521813248959256355792069095856149289580645189148811948527957440128968460513052574392195728589323988168078539273180001303781400684754313518742571739789746513928149613612930679705727310617033811771065306925284119468020921448184885502842877899786188249622140115695607647741040011352121415027111394250658181804142747009259486561741625649070419707156900295520886832908954164301776613596648926393727618646034113602706018945588640432376734178711616503513496178774385334470880953582297981837613274539613186224912157250496519398122250417410772926267884587945001644774970607343586742674923477437263199097790466627705412871344663891031420498013328434478084849842727891906777666482953662556516942826028098362374287842950735573166660591153039747773876337604879082760570553684852760873614306642593337005038810488553163410391918018048275259733210195573973947768434620684720146040405895036379825400170837320767512637340117220251131189836321095548622344958154633297970058961846375180642146121655276304849571738172733533881301083499752433274703516580578138186083792433482757090322598288371875431582673479340594783923090908245324972374229121160842799165756138820326165046223759523878435192429084313139554430140678688589151644137860259974506448577461582662160364257401646171942651992390986679936857190032260123809147997873374003771223846098249617693990282895911372046707027377256911370241079059808792014495189505510561885951264324721528115187360417473709576340485035620545948178818345579534120054828417581307704917177803995390711015521232542910897989116221344389145306314920154118464262066204726335882949884562913856774213015377709700854364672128257129089673235142377195065784905630094488759494220890932395163911702423226019141272131230805905441366077588245690471433787168034310517467544001611691425084966680209894209019970206898307915585185549587637462985294946345901923113814866098870236006971036798295262615701649532691739441639648720772731959578534897917703823835969194128172584439269239175162723589067987530667514298606635326964901487883439786859988717148398335499837708796648866499440003159259234430486272160257962170577114092707619152317596371620802428033748694502582724294373879501072784717926922150100797955211931851787061409708994347863666221006996634448628830575584903796455382277427674993615699373703924662517916387132129115788087513468327578951061726600379390655126232756016721302516118959666732611215289294871045044135818907682922118200089573190122264040138766706717075858806203101822803500741135038154516881401863076853765979760120822136523032323277443109335465423223100681633506825890145531352268667245482314475451558200085000068061502227182822044553419328959918480361342654874754022665922380362544120155053325112792838946336243323870131827889567058037887670247923528049261114596455202177647609439930758039343920903525207232631651003673856977410545969897057387821042073939033133044993871900607001400528342686068838962304109153448045630736558527856327968364770733805530558120824888985403012539983283432928874109924244596566180350156393464241935378100071373321541908400981362478778810190384396703554767728047073994683812808784787646882306324766749908877305382504428380443816125384837330577350541434525389184243060975208264298671620775639000623414706264114537990693357055087246137948659995595691850348963890389904063622277014824637243330010834929869156391146825553349383434638566743473907645445061896796305693327824702766207427667415588883383023273771305376001502155282580106385822047780232483328421507825616902480647732092079028291535231872680143484590597904123595295544550828126464884506291772088710501667901291908668208708433907204222711345377950991643066206037782770849137137939374318939461423511713907218160738954450266395401264926682454396632978532976085451860229756911135559427284649805375520467368402118122961748690562887726186674691136661372496713063409522304288955457972835051880134834996848085163594922741560104927732009122279823520117356356816504408198130926292511253109991962100169586733540863465709015989358080192065994252921006155228778103306909846623402330930716198122414383272061915260323119770124665025625766578444942027897618145356430681454177122311570401851318486300887174882906139390339775007018973761197316043188304182786371936440874270200340668816316058575957057159809706276195564191377333941041664909791259698280047618435513550747504585482243004418658969665300132294489371429535053544493159305006768927132179069829663261452478882790461862446425322804393390902475282517106295453311192476000108153904496214530598952519865323497306983075096956865521655781774731267083090989546790564293807372405215237811996005676719234156134926824016770703836427572974559586085542778185363496673774289714562028894972370575830941448267541050838282673577082272066162706284030932623474932454493720467495332767134847978989218920538470711444222684175909916972797290110889801423514962939789941993695701163387062122344297902376252570684598586968213750452335455792468257319323480696091921249947939222085154296769372956191394303392255102179292270614929692401093366643896833567965543493411498518190879207276304294565755580227280205210963877835525303686128087497646370927370679890059669176007254889963714792114393075839841318730834222417709194220587455801512147277747534896828049491827767490846374110602892876560002492378968893072871990534102761834415077359738501978743747764648469441175955486801041491839026617125262886069351364866085681409254683424943454220267800160927455956065649575779790079243532135635050900654624352209507799322474657790786134428693444299997014375956054757235356414000112769039922841931065127571165840559159685054671421050473212651240422014559023456745356284319548281350888195054294563301553586438215921674187634939985416387425361132911123488287569323612977885385611780643374759001467843912566428512942515728312535312644051024210124236720463297911474742921975894417732161465737859853272830282115421490916137309947406466226287253223720830065984191382059663276373365114828773337983421704670358119755670862538609898028265375063319341613543085952203934296392261102640629504731175374501727318142830932754977091737831487634528299709727707372712433209330232145885345659398699166176446562564199102105909208402923688479711192846600958857264365985148660726017527651722224022231312268729596668205127657470439829423419048785400095939933709472829773244769776922860493465145444000207590419522572488764759449533954670367187280906158043015228505031297669846247991505722444864473701418649002686532801434189643543304535771061858158442111619947571098869671760738873013604685326431098267770816366747442185742363814882879129772027025107060988695282938122055027778674259329931224171624409213889127240842592955615634712277400013642848720105480445078022063874105015393885345386723509018303297031988783258629032080089902014252755512283708769646058187135846009828059683366754355418873519986094687717390951193856288218466157662124281716499981788947486563891109165432315496483872409842289836435394932133076644483955150449420515712077149747417921267422057495888177215218762391704229622283172693752546722010062172394990207627622933780074381699344475796519296147498700026568865080748391911948571607023729204118087705391302401402943375614066657745159693745157613175542294740887108097902324748344630340114206610743671150074986810020396332360423963058546895011429435772873549799503870726364293827689067414408455964955714165175791240116095739283140315236329969165273172501434753834091506620934665827681410171238039239753873860753045409440580469055804302558620677956735959988068993638307692891662628372653020250663997246761232334911468430534882894847011567571959520930101337616296386426927770482063447715753170454515191635827056556277275740527443915859987180017824601217831872041227523415810425533133680865579930792030851913358680389940967269212941869446530209650520425804808571967260962350052613470937623767414609188530947445090165811809915099762537540490210686770877344252655625027501322630871833069743308638019753490672209328508435341752778127630327259893955513453900814782523866101242849157295545172824836070540817075144917793737928647130729810834012627675302915130379753595699668249866976300192822069193157998548504843256673872997401798954928791513750827147421051390988870130191063338492409741581570033623452060001805092587127116965791468072715188434428936874175444105444489099568315648932131055492571703303442594121923806733502522068219190255108239599649915955307808885822630618301137253949334355635890867309266726155045362931848161249910632934537541177688771967816859543544494281407030075882301806340147824363123125599011239126849649209713429704765856109570411453622766557984327525028614902930071181346313597462324489650756161365856321943600246223335787834974695669400343151329849037592852935322863067946621023531451098963110860863911872569893332572037668107573686362467381622558720366144350087690921733757102676553731437422183301321358245043829522873630487488016956221052516637885375246176910071922158623059078423331584421989902422309331145607109501148458772180394446975822391921094578053242072828543075729326594293552930505032414522025622136595679299654848136669887776527437704172694778739574265575699832740223161528940172007535523457894519898136473286227622871929418527208947781552345085457563813102109799810182345819999708916940078048434783456584914499807715654613256922929427346401042679341478501250778951260226523339491648355900178356778827173917049678530938951075962032569502165065636200213555161721501204339079570173460344995551354699834075885862049491966814787900764473244399872291315662070051184147610705604990222204146133007868371352713774735094184606630330687801819104950647983933368782199202449876121315826227181491375668586190385101593477395322770983925773917286968336031602461135605281796854996129180302602666932438680239466260176536406181410270303223315245337954882632880544130086131582205263870399211754699383578662983318034503802030332704072126592609132603792922331115796270381560151256241767449505382753309686591303591461382799107364674983194402682624068691045688859004502880151895605621329170255471642367927565074426886657708186823904259878449220708671060003007118353242389700834867713418987812962599509536881258848001824286668109591997324326878905321830656706968295325929865335100129616387547676391134014906827564165526716745223651198441583802460961833520831592489562215432384518168795439014134399398767935854582665701275355409018903476743510152847373070072238877947630258441107867401589594360615618683698294049164764315682522865322311495918079821151964772556652659565541021499087800316323372935625107937195989094079347871347236031721844010794276342423399426269299513933245337852911033665727783563272726821631988289048693838570653794539425861663559453495363896744847878382734173480322882696631839296488092728989189862617968553749585763735610751799687488556673951139468744111263858055870645848622003286706131261729459725069668330136207098904165174597007876912396478099789535339781815018047505330212250746991823412696516261702396360280095027804924157471179100567185277707819544574389326414001763859088918265451653843257701558390490586759623505501508210508336934158386605687298960958365505075335989190152929876933900228708788370286052148366692383871788477204333978317706458271351833049406803022992007719226479834720411369708111910563643265592954348378823077187998638192534062896399478666859318063309438073512210809848328709832333688198256858883855766230946619392780795639943432912679018563680284083057959199927615915169537629081984781081985038392136590206499394402815553958429736535314991084618685896348022802120534751958198428967261444567400472171831673113671418589792417846145127452780332918881246502452228105829281726828258305780474137540713457523787969817150173906144408889758136153511704132188370955289982967517504633729669865545546936264815915186893680020893068108019653597832766739198482255783195607426802202972611018196644189694361715357971800423974552307901953015310946198933036980925147429643866545655379329374733238854169208227763152153532950808811937348382029865830359793205198064730127830150461519540306080560519114235299659365667880212179521959445341527116168823037820930326959519497113893862014748871133449986300800779219883112801360356231206773328478262466902857547642001213018476127946967363419394270879136408343777795346582280303329969911392386607508455435059870785105736319439582571346487546504544182420685503815563854161936143221825808983254370572537219924679929803640512949658524263729444831142396668075871877410985743616790098473207694967941403863119491505311137678748326417343427545474573494494305650105067428631935595010518122223721051519682580739996845495888111466425754795853539092733745713843003281581372645807230142680030409073033777349454068073852800458554630877420278012652127483270518283204976471992612601571745372801481767482709834326042303195359571182182599350436099060889258163586932522330888595376984236320198797707962411347603713582988036118004248725808349504789918665101028163368310451988142617149468018336390670049653582224041747141465213752790527632986050929454065100181995104758239047544769869153059964017493510348364209570423194540790630672639601235697754563568542930198549387162673890790468181712398329937243602848465893500557641343602414706743550459762185155553811603546144648502705711699540396363026102429278483110275588445582178964003731098386217679348438159611470260782505069254140471225452002703020461604590171084866795306121582677982646064543226610156056180099865760065318265913238116852847560732663728546356975014221288676757096328012954068871368405445504799317137774626085431734964666216815427263605134513117579473635259721273907089578180872665665422338072749999552812918719704032671785989699025313921630142172201031440428777931367276118169215410645595549024455319087874627589508886470144600099433908926981187121312574342138537156389372926587973058303397122263545176269632781246972517160402414299200691687885898362531066918553261422365735948080102135360238772277539145937622600229622034186841425409823955444744398597244214544265017390697570900024783992736289299372577788524444988611720620289464614881549448054516605523493182809334157135093026582972426086370100051238316169778760365201410831669435658000491718787265041151324759232329799886445796257990327709755317428589540161835148084614790161360711769154934965860991372067647565998579709653632012549235050620090026629197793823196455161429242431032597349464574278643357577107552650634205169726758483375623600842759176788861490401698500272848442152359220043224595304098611671241211646780704360374825286245207586257312714049303251298533004680355382030264979210193184852601732176934639205344874774303059368558732046222121751924889019935732258180331098229855008816125632265542129030581684485728515203936456487713588267521187196988741275335754834509581907738739740406534964661187833998562646125037519921056668434559951091240008299595816403873509199127784008775600862004164830249887914685349179295311629508210642940941376835914084575597006346586371744996376234409396181925047555997885510718519010911699040318324002674035799868275551116353539009592632675807725349703959173252856699958210557655001078552306040144340925846817376414787203445482103154151385370339151316343287773415342797430356957932136728527890325626557574530198344897271345907169121368988674584497294841446541940109682894437662890278714062120612373676548749035482653637478635775008883901044133051448422302564979962096499005257028269612994071622571162905104493623831388830858730724861832998462258308853380963897168202119871373902604752969189244140879573712834986345239378703268873505630287650926561010902366662194938683861976412697224803735522560067113289038107794150470238632337257971350487918755084126562534873173137851490594833184606684198940552450324913917331436871049597666140192589490918328140762465680889983130901624997314020272019888475268743834113411911303574924833740476656928643035675923777836310134488742250694098817737432012793170437312683710538909670809408230284497873815239839924213161549770361732955774609377107269701269242044505298408846731510137203777457373525115197956836612592963951508294271876257049920389743359535703548547886168835219721613436595425609362029407023314851991887782535334616285059565082285336538528731867176986648550837539127932562194129454007385556962548754549828081486436884225253224174441480587134508004458552996899777915008019221752997392696154344422164879575098479954216688504991759731852721598215492479583452165339705385064481574107306642689411186920512497767809056501831932047521860424855347008664060542274235765726170802919840782699528372654065963273721780775160825185661175264111579524739002740075622832119640566686564483730899982946481866744544360011955751073938956218370661882874692971941945856400766289244046599351568325138465007389723358320037696056719763367571733351112176485793125832589401168543962070286242851027952115553218896572917076002271175595710617741573717363337770466366125861037899613530915608773278327120179522832454954792266517736631961947179184295458590149173488396457492112605647272928945252516939052374708304026509874988079054753318672329152120680399231804536170587190922514512552094209098425388685700076653874898660041680237493431223711777792119732787457637491646599671587572441251633177653277215836034876960400880903030826659359470380937756191094960922761121250185181234647665564901915605974362472426784659810002557186595307469764009595583264242266966520611481555586154551697122170310864119938556254850318769456789452879581884184095435978340087033944452891105372831290832604905157236656972766516342879042084928074120459494409528363692681903394039558819483098548442952095665095485438003673758012158132842814643430776295869714696745217437447043258688879648580102257277761680813101463738057830367254548436957752391074067808065717779696651902147616040210980716507867121253530383238695641135304144657548122514617048638614540012936923840206604454914599382004641823556910477765401795572131716512751789143826083296049565767947401939744279063322459836328474486429616916137326473096585898607670365419734326994084296436329002542197053918296960929208822709474420697705723231788342341294669316269186552031626293813010744996196195309980795619807978607559601398006703965658969143868007382924702517647273947051934330650618321930877148150357401958888761164552937950656175322834024885381790303349713017176412737998815686334239647045837043961715388727828494584640167271660034821578583779525811352019742919968121190822251366082635325819223864364497337935592453507465582702408590226308730616109372430171619072496908449454306771524065526906152871146771353222154517443733505685735309821427485449577625377197241715582184693102269520266118037444255639403916636302616397952845147512579834850278301390913423537221071127020386245314718378931323230292668557540553616294913255136834778560232286202227299895157575400903781511870135773672543165515028130731090040161436355213074980052761905696942115491869600311980499173884514665660921560403438636039496611711511621603377679379941038946049107568100199095076583467151419132855511399077717519451800546552381233900296856552970562767635703241494742833200827221121562262559030903312922932527514964582873704260736059694721868648842472106050983644977777293322615652122294472538310926580210127629434201901343370022282008579594305120123710233182316028393727129682430092093514864504740372800334882494301251573003335321839745807207495110273514226432014029155991849337187595028442966499105979761177268842494348701008264164658270591406187305998565601110727534520699312687773895622729455315350068970500918846382588181400308409281462017369962515213205809215920272220715237453911945814859699364775483172722038821857327273079620674482404209906543094282166333644142539968634206526038902664547881819504114577662097839575866617704664977230337666522416108665303577950947721204245782721822610051513643323293392650863635113001378541495424592296322602893652530810881256899670465754470666445417344814023240157548996647762956901277062139638898559566283210989003700187290023624725250775889229486548662425655960341486553047412110211369560215942255951845579954863361497873994464153664542004903188011100022425205602508326029644256005001980856920626142360394381319642339985746566070025281381680742918694590359226371601752112505945996613368801236572382689536331119826802985357011672474124685707193242939035952532516839405855221958954285808557018111755727534537681440073265876850966880012597851382555688301324261627477583177502639412989318237528927942107455223961579996329820922995478068610467666437119606440756632904285584065444602585990503078526365345406331725551535215548630970335060553362321707018758674040235732089207282468651164081725027191413826979299833751807348086312023951913859966529922917521183800220100641274980599912986566360124658730555371481486818011657848240465610249719104775027292696805786517755701396686385730256085001680870934769228181836540279397687380048469918316102798896534895399497017090380772299469325248201543135206243154185314737314632131905188067568041739901200415599715744483337316420691457243430824419406973937395184058477221522784548043592127423016879350415890240710929115820584198774708491109586232978405190212898704308956910595772701322021797164768397979572184849744667828583082788975174189963781862288893665356451020094716674797501921088030019847758984767861539273209612543553321467758868152183897256969256129545389198376166982906754519754926728052144747686175921183803813984592107884075639989474627207243659908507094758073779751577755313041441538200154314704228064114726435699658594728650026790543622289114026952214778331877666008479304707253182858033142986686371145186012712938831329922899872142214783007036439860221652373549275931879524340041376703794245701853657538383827284908723132231537442661865801053069147571212593275483232187174194722913281687519888373248050616403976502347201239386875407650777581136088363793366617146651886715274577458970041027456715129340744809092749058016427644719156891925089774989764903343208037892861711352155719745788575389121454466685881750928011097405104129016955299743553962462760706704378475494691431498842033776826179974147616206531055458917969115600453825404084955071762041391041257416675885142828114303888495955334537855403484014186345780185754789260306555407553643546645669861826289154458975148516437381456405325177449544772249499272798969828436372249785567289279945509864201429503365633721759074294101246351466090495361983831274516606715011166843697953058015302521740611372811236803636228423381430334483740944306441591408282809205185779203958907468509882145918071434427168656471114797539668211620466066129690032861285420513634936120601669522196683973271675709687422405404812548745839737054934405951127251951249720520483523654777965131936530699750067706297613337170286177406384681611288363274292813531121226671348520248059626080550934513344267634974625507391884533600649140238924142591747122759155836225520506260585294900464508027789837240702715830949962393290803245639584544922766665542854638068055541838927828075298108215370338096685235274920678926818727254002267789272607542520795510884938646872102173653684996193493378617982955184709182681735164941413970885642820283440443413324588314933202715773646182921736841890461752823111402350138716182338647390507346642931927678316286979273971531740142421129885331062161224817237672039843814641300165904351070470584848933122225642602872711593035093658364394138577830087604072163346698281794849445605271628132550890954571646111717826306643368771974278451773438287609808056959886364780214960927552491628035180247762710312094324253866736059716815554817237279201276379477236602431592284987917997390864425720554226011820938589028183085450383704836478910096908154222255557364183925703813712216374128542332704276720167216704733764039811858042100775802869637519102414116449251524501767631881169099875797950614048033333023160945961484650331554909100022029830307248717680007869586752353644953899116730893325834325197274228314461218034728168603516836036706918881747070855769048016448218582289835011928575745075330856531041327359521987664568177674734511897814638126020942955009197481766245866316995285772730019262968902064490998173336207759185924655341742748813135497543328279122724255693911681562025756924090392283640069052330190121574304855313132583190908902513918797734070776489087195283713903380068046828586535032424217378792017668495273230219310653636387979893968453104692704185592112455217045423123314430449845605824087425478704778191060870200180157712479325362548533642785794411382324511562571220851522482180993424878469690730074399829552350246565858995626380482316245879448638556769880118827666336212179320157889645185221273339463974261557599310433851465860660122962556181525897856631044283488887145616785239354451619308180921493982905902337236539996162805878866369454865773276697360479656636573881572668601019957440705199514233336094241954919994138527357383935464048965400524636201002637598430643422912145877289627596309879289319005094531713464233145273125234791949750064903105200227456589390619286566493759972204475083531756567251477453719571634065283556314020308969175087294312609032736636137034893099275235659442496753399062601202867313049432166099378657961194151577597177171456763798900444145761597953782614967246030571423884097547115768028809549084511487868292564799558326209296327351210054513582701509500925326639201666614014472164299481373579461637105900896445227375782770231490868322112617974716806360037427407216738656309720799469855027495837152103294042523657538209572647485896485956292013498830571084339242257472699144451705280766513971926334484283061603168849326297886690529474386006903764563379998623299030512849456699077493987652067731553586660177085282155580806533546160320247157398801619007031126466550625158290402625557099843662531864225787442796409784994824087378808327026942997262223944667583749864901771714037781744756293316891851601780420818695697199696956697551986885765135776603113901868856523484656283417283350470177437239265670467294337007373124032874380463097505241632166900082052126892850011449678075313857149880353136652223911710867504891458288148754725321101199137964584363833872713624209357421914337501963326475788635405540071979487371382724353291701847446279508539497888427465893224212081993462665898572280814231440966100854815824181279471970135435528741445192775330339057829817153803741164635880178381256172609348690215642212794512052660819743933897977186978587370757881552204021530028263818313747265344647959681956022778108033696156056140172865027180732976910517119430135681193762650588115702947660012688849143611216402965818318760707781277214588308808347666640157667293195941595966278935492343103503439154946730174578076587876433178937508847679916180812740797832205331064830012973284254481946644318491666723418804297506557747777087839532405173826785989699584667232487665324367839055213251380662934445297585403347425094231683493821886330578839285490064221840170940252934950743202214417791111593846054548748523550081285149083690418149442158226317070134849729182960660047283193840867579417242027384530515840494485295919881166588334272575019859295807461019947384964786910560676693818964584202349086969789085253532278546236970863660832756418462441648551326627820790854782248286920930405537297524741725484743403215723015006536712206631112148207554591887197886895453074790724354502237777846789668855257739427718567007308131808076384391201313846802969772358292471317692163288448428857063927830322265261277272445768977380135997758571232520517613355627405035083988851090182143512363112825757241569515735009798473947337215513668514816844829656533312574291798563752200896571384332741841546189604320806365434831606545723368807321400253298551266135251298301138974205113984262958437550314662527187491530946975096249019159382679253819920805138944644136142762893189574408849608903723345211227779987388197352307726302353797706098397101560126593104925799544984627590133419944713313476793493473200302540862321387103318601251832328807103617657328230444119342710977899306858962015011870839827667950143951807361579652132290816071003991958594426208523591513005580193836306255347104396393167777312854988285361130808501151603258557324984275070545701499674857740097191475061950408897380591075544030040185748094433905572620797387754564835082960197366832572006303677140169435643686386615570960421375622706968318304146805519289798762023166664494770897579622593496638144327199974387318082457817250199873378721547828306776011556655866602742148241592688682828406393431650366147910796891032248095755386185031461214626209096748750319590947214396278165084364963144897885476010080354045185442378112685174783617542139581994596052692092769969838868932045408606031470428433454566831411787694756802640973330209551469640118676212636464641388710388533968736675635001720614080123123946389165806819232884820631809066499919631657836516687340654582887224704102703440651045257959888300333995334220117277362799857133777055183605594080057602093175157724630949437999510555787199517772361453619494435823776086966812201560868116047010076285480044275137706275840509752916561211041693393942833639867685630144060597955841807882995637403037019229066721839269605065450600676793175336901869550264961293555350086674980285950178310470548008548560085987899504387566581161891949745913807207531782544799046824219032620837476636984928637384319113583036124525263992326882766939881602869741031022615371208748935949087362601993332433784387160232114467538600844165765733035394558534707299144987861328939047891775833687043150636978969475724496162677706727115421542311681524858299783856116336596838947788924590892605590246105429398485632151396435617159274811658291042189414576655659113655720512837674797561370194834813370205701397129906156681331890737702695315502626034763422023710271909341661272160044781311352682306498298508028120123409604082025655930390374621867655033364583541759365652963742335211046969554377820102371832010045398379181491925878482504603242290203770773516616801066515887496003417866530414990817745198956462278002542743125901961790589612796281285051917168695436519766363815245466958176274766004875041451441335192955358595347848684389859573270831190289849037785848854991248672073754338067594365249616721934211632591855773447316682945112587612666139850654155040265339485677891781519351803468962567754852854978551786553757421275250129052893294955057674169078241692519352638068403536106412543527521671249179650911710006733254896176255481796384313258421832167229602767721753061871860452966841478390507054505394142046225455445819136799836626445606301694401722599307875399219791096344751951776801159511226079529141931357736799219910928313256199294677528364922725873593506164756555372231822665391916009336073215725287226595124006056602527632882441834106645850533017439760339114922080585475268948389361552069712479221307113081169396471810633485617713831752869110043143880639832350832160460837135474149328585702301096960739456498136455146513499208651913201939718726385023802553896456700061528132792032424302701799448572746865275836202656258360358089336980927675892191473355222564641738838742838321663533737522526206216028018014287210616128760917383915606308216266638980385451932661036594553155021514393920848812397498623123322930462757157151705228173981385683794447870333705899164644390694689465754206690303599760719302359990418373295646806122427935185327921011673776142955191827650418198453814866503004515582601193511751318841792940872821083616047468906364797076162285062473704574856152677132017624889343878116760266356370591557828367530971106177685491902805317761815050248861729857582750130224830615008537647930341387512193432146198486848378140878700675561622177160237832450603958740583102806617822389411750852648616679414351720097974880237622526958553078075961307758897386774336543640646056156139780129950392885203981316187412273885350418518682911322159676899904987608619391848482438402670325042042563193533658485737897951695056786757334504943183500739173657400614122437122807345647542642254608250769513069623595744031069572907980797174825851903703748264031027315503844164799660195077402165271509028577418707894387512701640700520238120656236638661499305306745061868577006104199147660781146246850892276235503674611768608173402582846702188114688775805253861072909163776330265901333454621090135891252428951909064793182623486830184502608280027786463162721922833301079544731272082577499818140031335098790950200966236978367623954418666457138998631488734050098677416607497748765919243257727878508066325304689846929678489635503653540430722600792535862407455822873162591740006503131968227569543173439692515231018478104879271182077257331530200800117025890997483631158164221437735109583401890951647042669902082495824608210096581440125762966023232154692876738460810779792061188347772138990336793625554690464072287712969077082292869380479850771842191248007873638547010203144985572181121080850532260376943127763094957321756164153188850571664813963914552824801826163131909603508924781670329952692790573181310289679191131064816317080513301754433349893589681967541444974653422812408332173744206162581119483649363675529899996589125502615536788487404639573959819516524616851165871733525740207681875845417124704687091669869537747583459805825572321268507434550618567860589712861474842093968359355809653135164563741348408829584070776222110150400531793907749276905562198247345076683048738323680723033793283890065557941239545274392319693264506407446626346474746150804655044278558776949789888072423525134591816365309255402897412196660015917018770407795732818100786716064407258653109403305901197773040268889355324341820899175840403807208876241836249803178039743490156019851584659225826719437363187329761729368403569414709451706570471690414018937289005209629433078231652838774393359600465016431670224777612299606598206671960605802710498787585723970056286697288038573908673767716009591918273716507280739707756636868490601037166549277945977658658693915851923592518672269509101114005800955522913204904815764100810353715476054217091707652560394501882193196970007429958189936620417366272117811076834325350991536462752122791884400594581630294793888795140575243808056650606029626783696621864599806817416970529390872164956636665258020601589418642566113397944136961250272678135261887413739939642401506390117691129515760035920488067506743427929283999411024031109223625358411082851586417469081735130155347395437533861855499357620013809069274770086934059717273747308015988562466239439927152014358704642688134209241168631233099374442308559216535545929033676351776391106136717584654532645008021887007144909362804631534050396344792602375799460986101871569476551501050624496689968693113417097298702062077253149314698420473053663151492478546803035398413574755501120680438298295299890892344684798360015562269842604196408641548931046219632836668803823576474745186254824580235133533847231432982574985310338027724324896193684029691817805045028590241612625914180209984124710169148243398347409383387952604762692410761565186074721618174884201008589152292833362040793700684026769876227382719967053658828799603550736210894196879239011119077576106022027300028372518589709355501881116945276347700081318525048275037798943359885658503219907093532012678851719437375204976700178014911728762331900190956544679281375205945314919086517922312395089932170290427260813415803449032947879296878088634382110375542245773194341279117628235850669281431631959615969114904635972816966628352195346695591921744697334885881283057875624891066104015144531840797896765200150234065935846278888717534728653802991089201867166540290385991748596694747576529525650294445154373200653258362374660249130503859067094846674999844063757035226417364955763615086360120259693894503147714226598639131950573146917415465534702371992475047244486983585630714771942363765631752027253801408566271057823878255258228688911187813981040687696407319138971730633294577772263441733438995394090793215794858614265098082192294340467967228581084818872361615517677754177587306075554819635231969222081759232236637699542749333993534006934781319428823542000529352538669933255375918102170658802066149396053633500918773967659463998677043613654321646805496190385373895571740211210323355537446504058931837874949308051697084781009381236761384764752429610294334504897857569947309482774246005175980388944473251370322192806799690091332046800148414718466080379222141587918337769305483167527559423041715263766407720657769061689069350454335096331414219589280873277683455889658038161387876010108317276356205325828064464904392203139637985638195278840384003728189516608541669639763823688906852395379413890128481748911135410917022570181840607248432256642331612359744620456700845875611503445350699024931424571099992080193989749690635679111308746929636870090801164940174896463475315487293853771845575245622906369458178240693265827988154433003485700690975176691184558474990128495324537487459417091436009518056616637635744026128270404475348811025116336196483004429617028479262261117356575163034583978274817915991971913670901713939323511597852471919594633894656036375598687857386387943296706219116370695772724383909053496384145533685693745633497957128397674093514834390141715154925411080119711363249454542847625958032047984846830983666370204598662658571843877787825432422468204467236974474950955109243835166853431101956690384174008291541369609478235880958994565929112838223407665812245816146811931103738891177475960514897119749822152292223195435957495596091421095743180077976337756840183192962777589575464896675715540861502705211746455786836991345456506389931662482141851208395461498398051901836832136384809442283495285984989672190043954617670616032684808174779231311753570423436153000675057421775599061383181827220147688268757052386263878044896589539110902294228592272286202634177609593110972915160184367808403673243634894052514079380700080704337911602317615990309027776838767836456398684931568500717233596501929740132808229697890360744657760199574464625920631526758184373879158216211691151272098053106736283895717640861341566662054313522464915318399071133475814561977536099060717117292806144746308126419418999539360204088943206546402752071145837878054178343740027183738712932372953514327904420665619878862261620292544276789428637697405087882197412271888275339871069731158855802986784844848229820089486834971651622987807620148992229276758565713054016129096595751120546015664005362749664256907763391514731115706536458914058505044891330807551082725788244731123168540869905355990998443940433324148625260398663097218563267963965037597847393048830839284577547757693538261947103411722816113868508789373409626910638406400465763889885538094080117899879890285873183026707694680648748655069098505678320581728045113256221803757703716535009014239236714992598222914724166557831435982060547732971780785365290724458511040108869696287435484547732678639955561189046062687035103777811736460998588256336008688497708462755564710069239280729563483786232603663873822724384643446666167822081182721054992504102902071230660003183748465984961451616627501705753010866370883525853214928411940696595718951597598443640986730446846985451390486319315421078453616185281319025472756462749145901583755810971666149476893631581178818273879657205835226973298827978757173102992207554449103947512886638221854708778953535436011742371740132885952834904532167882408863563131044474432970682077795824279030192305182319495212210690105019095692913443368530293830231324464968153139417013868626952751589386662744655901110713596248001434418461506310561944157101774767417164554034818435890734073313820094698850184781804815562055518469673765206871061043121788955549375405920349593988040376137930366468802095045254558405731380130051190331416274497854449458558368147118173388163923393873037448198311048770427318368651323552527004850974758795544215011030631713100064130246396730947884028682303039703139212274132021650082084039623209845458604944013441433693659882196854079947923294524698798908982901796803765120984275516680140472962798561878946178234588956807328345971044564813594026369700598829829400783188722724357271691251105467509225621089146062448162776105954685521519152810293656991781580126270545092427192353302606131077810235132124554891343732567448310657115162065967239796528040000874308607580731219638309564208656496294649912638536753611049012026274730708265629280500347817647169222794428289778137676525041283126412956673450583663955876711896583331200314320321253856958073395749987623079207489423337039287922196453799132753590575076062683157956862269993234546199820399472746647376093352475737007287316208343636290052651111760812121488276831803486695837370693921515949885820612848903034534629245898525179612641910558613547408536103400798206288767011123762600305750124664947147694055182627744884483427249922102184224970640386795311740109585647920644211113942430424546578303851041026666036796032388716623833702644931563647354665848367476712312678294006971962426596014335410475031073737818883029141562092920071604312611112592982312535925629758509270115345693854484310728422296969420255695620115984823956972806547441431294036924622073351857718641568255531504600029181945766241543307304207039197607733469235229865658493279344350997007211463410970212008960739057777763116181220398337643654964799346295135292004681490105390256076478400104429811721586222634288220858794266347354697626239535755674701658499616309973721948650603921863097803300412024320970579968745364774198305092217601099982191091422218485726055862096930874078351590730295482416360014953351515231823978425903667423648789168198668007801862669764581824822534196739377968118365208402410072698451484241778226018097324814956159039470041342893421343798993164001080780248114373149650488082574491986798444566473611680026792822598214997145977847204020320522034829650418736072061255755616593140395296135159812470232719294479945660582901941908443863540037914411578209010800163669907655047942105219945629127764117323701036062298008243896486514269250785388550745897114731781888981273416847647020567718804381377287619182428805365848376469181196529960070520336572251409929198121193934919368285420384759397293198611521473416631780742442769649598730868985508817823191735179083942652686551160167837818222148791432335520732182539688902629210076331550230806107057870243554251721241266262455121077297716614443585045091331770660363296578980226073219902231425975429188513910696441978824583820611522011378301074293386178955786815347427799382432394844337933977478819047003856765665182780442926084078102407108653311403042749498366062370794228457007439538149469666565431312327110146869659141005829996926435353231092476005136587534184925425953633974323922577684223287918653613653424377786146696775016744012618381137625608319783282933409510772458535792622325246128309059952278173534387829708762565154812584914286569286465090403272465796189830519493621517503486087746481822082217857025842054599585338596050534102222625596412681349645140823486271224084132477338555874755086527631747148610907715354488041191119391767575053415787474351631029618266941146795579501392267802438566372251928587668441164129123427177319464953766822852013947109936569547463066279604607651205979143634648438949907790027560015116081026220983057671844567190893344830044649498576253592683318770006478344109740491770981837799614606800827458283394516270502529444429853810595349892162464262228143155483701976909390021763508384107149683283690423496526078644220217164284504974493324508598521256992068368573517365571202157494704089695150593950155392787699735501619585070088708555764979220276761072663005502220380001209527594551237280642843958425509440222535779478158567222180247118275932511795298442554819014589740839730710919174716976686394248056809202901344081247885441602238151108874521057459238755768315178940508696123088204682911250461429972546065643037178088073279913617604489379306161569817140273857378617698192431957951358551702812085440415052311084749275911368677869620764537247902271338167027395053392668445347676216397768876232567946679088518352771211118789452330565535170213195141169393270106058858246958658233588181277549241352917745991145089186146424845142295073124361782556050867971628454840982486637393489503636644808615840938083779167622791446071916594875865429868577616278991526000399900657303100255678965575383341698841293384869141582495471381377144873663968745657025245085373603092792747700348568050044027729218596083779439002217697867073617641653508204449190034612595681831741988705545248081165790578829155263978426980983462617678405397259255565329466888611676139158056273887385521776405403654695886355306109978270946624063540795192376610009258524543156185668039801354884846891816472738029458980537618085301318105456855389972910101798666706338503788057753003689753726188380334207896539055672440772189036346270367938740715530300220055282287266566254956546124536517036128665359360157227182901085468168740481614188243409703339779434122872296502311881023005823180144434846536175049544773885774673904597499664160314498716009553422959437284759161933432414755374887074700501978956137915082272979019932639936516991524510912524397577619023505350690762114896775137752300465995689813277934990613591489590920243855964574122332761130093245255164893659442675425985752632210690505074827585368867348973354448561301995470455641129660701411771404820725279117519512369006658747229080701740034985312263520840461327717843663917445054397450082672020816241483444803690047410883740589771608275733493904691182938239719428255615294386813050941823117215898252299342414798303615552639439866857436896863956345670950544035936710783115874094778257956722746236138945878678228141112285386556151101371890692613206330247078114887987079127386746048848424123405102247369147068629875177842237794591076193393698838016854100717623133028010893737639765038152164239435985417507933880596958776190501482132145239395101477692328852223651873864137880117069462429182049030142290091925482537393492153953319813003164855912996029817817631870855585217493032989265783779406381667243035710846881923887747764793130443511219938415910156891674018192347769766290573927284922892582188529654618482775064502974611856179864920494920248386509005073486297590541188964448347495151387688678488724972085354518355252009577101505662018785947133278453851072235238196233005838299223991204064673907140762267091711413477571939794515478156651285088142140015167900849824245870225021811947210984305469845175288756470611309883959205975926986964146146071324376787572807222527547182844765780492129375332714158807507130794176137944197219360125127664589728066929301783666551340602344513829359331352858749211870058048226147881420067253286290681384735358558996187346233180004498403809536728118004503908681835824891407095643333550362204002863070341897088764890132691531479639438493853899275285974389173415890042835087023735923607451850878062049765474145524044484477434735170269908137478753513008873515531634557638501625730055454935693016355364586557651422759065630809168270583061329380342328291292929624489288199417087425759774738566125861251451047726645544902363320459828517453623571233980475620815080140912239618515922612202858574387550454770929450437933912479804937069145038263207218051874834435145638823205324392245413210415689445216780584802444551620264449971199066909540911158605813801533791135523578908819430122040201033918589171388540751323269498537796962253895535249287908694844957255012668643583053616198960113178395664279729256448743902925494672272152655444918457289271567983408067402354537420844044156953659873118246817022670470398232366736083429198145876608329118240127093159349211954804316617042919851872721650079623186541107971891157479814209025025412728352624932098971918266394768946880717461481748894650995431758022653563135435981243977440932607357557742734351711765339784675989134770309204944684205150328233184232141514870346849694172389679646201052051639410774555591721345143697128702059530515463858660917178550440831145535115888658816007113594217681816859404586621772370922393231844484747886387242904958320068512337447834276265472852776556562259436373408299296386810668814344769910034918346977088334780158208992059282056074808608628066435579363206351765964144769351956102248115291313328593500503506024841288508474303858668547793051045726584743059650039192292465605996625880370657127374948253629458291530924846738930213724533948242936173155800342570999165569283183937335360571665316565663802720118676798489912510076038242740385134854124557817217415748582654672722666146545372204664661226854692529756358639271378638010159832613623039667547810139252446017749779130912368471987848470850771224444873409030287262323773551718798264059872703124313058905197950899900757695131297423505965153169233052058372292154729677334693196286342826933633333859669302291278403348964297915032362248206309087784553048002051967905168689329364645344745780780445685566151982817172713285151547267136629347216378247083719056877059792346837519228548969085167891970685520899089673910644548970083569422766622393673511293234525226354285494884853136159831644917773871520161465530027272217158217528854191967828914993050080216322612193728574916563337000185409133202124650076117739076839651211805747300543031679578350692395911099065280438603741736175120815044185800233294544406203388734296493869008285549877064354742241994185974545472831062168155739301959349541166569998382682164013533076245973210012815715584556259960952708308255746489723821309378672325834084163392473418531757492357052035875484184346361754800822461073134581450428801897317776941840038105944105605176305333443250901091000676407853313335162855375894356324948891055305771653782315098169697542721136354171091779991358962304025181870404129227882241872858395823714870491434418824983071076788080155917034081038071613871756630462439947493064235013190469293655341158398659492031044675553635186727601664160172787605321506347834217831086616764199589728974771806136678261991512114046875379764540181884010076376603317052686580888601836720836558768900496806691497230861065406623713238047542865020533243639463870270633018801241376173735739731449470482838711632781363365842352223462091928135424975821377531669541868228993759500715189987764613953441959695499056268054035090239299456489371128444885500052378617144843467453429792016297222403980753324855588386022232171346617671799235140972301431707625497977389871738450709760286726983483889241532497352083061432195642911241618414353151300427588531307344217491404950648783488745659618161155705561308071511660507683671386817282875953192578390971582457033195440862378781811097969235355619723322791238612345267127307240294329441559918367171163585165784251294149395644327015094528292898190555325356459033111471241367126792059623115915400426970568812743286164608634306139970271675584078681684396849508391196079584117852016093985066776289608866722533613288218345933442918279924353969757536824404478875698027354555581053694380716356380612753159053819514052948819619887029078900230146566554975466051318297220168680885823327054340257057289174735112207588919715910106255411316593326322461389453046060396816322340645339587313306764331028467908489818201287936941045950969809223698678875697771805029381340992921050676990445639087308454137239550728520665667680828055502560877418724978183979022751215917145214714661394023145033610989698207932497593860308497915681986797878611180425839507776850091374420839763039446526769811302982505568518905675538633944593152491372810226445918630902154512398860444153383165248890917073311029623072229786564587647152058357315947337517957283495430619597984591387325219884057561392801341508174189946012132975075146829788700258163351033668453143706247404914613677704353299648456511381532332973662167081687065546973612491331835169172319032409467777105304569134230264646237993351895387849097311226537537936499612470904029032285406067509595628432990235765280028582649365245779533883183839426473060173662502956995298469558829858271665860196372584381734874460405805246930967310056102549441351687322951591057851139365466854545945445702881170786966156454333538167591671757596390389980361875949774879147963916189227780562100849989213161137279327880368667529630480728741053383940604210243049195862521207897307661236448381192170365158938171226141369133019944334934904459148070689961616479147703909404230435994281013707976444580492550906632029105316261951393530809978156995860495552778649660408261881386580639231295907898092904674420728454450964285836981500369894443136328851477021009206824210299378165235491695698184472735780354972684136259032124342004573357766630755053087813756138793433757117563342712979480614560480525790926605260922635079032769647377732236622970716495691580109138695968285945802980023746240065071326781050011225736218100990845216323087753405887510747703041643841278022433873167857742948515378542315784955886318162803402893091730316949173163346568573076828663585922422644538658769174003948722046468914793552381582813273021550310432107413562207328549621591913959073744410890922641779673967414491875513323176636217259932959259790832561664713803292242868797696172967718911860680049527421919827711215921508193947822162249269813157914167607068379797672081023397162477374820042607765499505741442275506327758841691286388335814394948966149557033586118822851268114031946029654944068852905934745845893704817500862576162528072047395397711565183354944048368458173401402468210543691633332834680932053737215811949672656786969379888269287188556635357844015322280783474492115033775436420621668911761428899784410510089814252083686624396791737493396568961388587439002284591509846577465972239064130447615167256139152318551255635216940010215232243816493732851546844942043657626073363402193684470277900358731225503249647297450281162624652062888344256966431905704939850308166913565724329610438045028337911572213561119243652885722562600424611118214511608789135266603080229130787098980249747964264811048275001898703215812351062804331211263297503559208224156343871038297225451982187148425170355704969920743216710588320854452849018015561704094265796843159729251208974391718635259913456246203389756129359968552933512325005935603746199687312977772226611935276743585793734268773681280504193384347879666194260389721437805514461703761695901505397533478576385538692613673270542196945387148868892997607001808225789278485936482751444965106584920793764550103475690632903417696640614719846010867402019944975766215607535672545365609257546314961734067924408378670876817798906701744055451144264529736678608135319642479748326612377972792761152032070022020195479620157272436059674495566180227842824499195470594049753623000307574373616240499832927811168721944246466402968078121855650516058124392065976169436599583067234546077423844687350149153986264897217189701399529125383751424311151984988587226509324793490256178187668774892205574509377724110235620992813339998396126254805986916788201732439627269563288193735833403610125822328764545120542769973527065510402766933173607539551852917317772650065433260960404846853722982585178110238222591797087374058977433867177374121948853423826524276908427071501462365855812558125808118995054861401483411402316495562558510450453412983085195997801409522284446137397839363141594531495840225456485990830810468104033526129487618975153490183883173679986367092217966861681919782121563017702431438968771125374472284456453079530931610456016985377455520166989850394934813194392963742005360920803040377242346176344084366384971148619152625432291719155575420574933171391709067443227662037411437977693687398046332680151838879323784233974377354969939767192223485564484726841786501580106127311278378737429382671806718915020632112046049263035548246843233866674479670940331423633738232742280488210632755825361940753839737439583852703107473067283061171075237315501874640388841486843235103775963943382376757116118263440419654654941628636914190331536681405289671331879555003687490583278969420858190075925424402466170915984894592926571485702248658860966548057215666215857668803599039097902116144601654986673962018401863984267132251340581071141598680039566135390951577585454985601464438782523023132326828104218439100012692409349257444569372652257695786623335819287874093034135027307740414236343644137276183308681936009396765580614910011437368573709085183410752111648127451609014394304755097587103864744725265550564760121596698294519610358432865925482077144065375195054380871225260933949338740640203848673922966861349402913220848099988059256919355294439701081686755348271546216278729697992824070125907995325869982123635655184274299382044918919324844265009430767390377516678073718267469202577816660490912720382768742366009531250148356236114210526012604943567047397650261733188537735563025639092103305957081877651861587588311911895402738388521878974618559236861866605516208699366164037909919440532922780711806291031509730561349937250406780249327954879694030007701879137147407578645752906888277526357745386223402964393760010158416237472808094540520315818907675774755584693199010347104843396218814062414619564241551707402360850122752027280446621273145442816162255757183953878515397334140208075572380890755555890988634568231065813723712142820921612959374008219148349534566151051765133718062424893561002766570522360172983243129165525746972769313594319306214628194777433270964648271975170259684435305657824303985310880402551068071835306176984325367310118488857946261993038999695497888594832444354677178785490368967119113742729257607102221967509983181914219465545414714030840151501967147438999555518475205597898204692013353169384835687615463637445927917142930413654286476999978193748421861540643083366017227303607169983927922717810652315186300555542336738172776161010156992276477463992333160040132677986740750892744999399834368683148131492414978353198461801184333269473159974608094416042082632576532459979293543754568930189736912181327014240277068391257863437042126437052376356668945437138716451900494232026883476892357711873396636990445501052830537002394067761522884488689530545000676650436011452088349472853870150194225915783797133341360066943951259773364751037476881597862307270461151910952420830954637719397706541055521798783885067641714007242082097682149411909263943406394393125722083445923516847252625103317795627981419643595740293429914024581831873308028168478694910332045623911325779521698348157476457420373604393259626193674660703640395868596651505039195462099741492275775455704357749893312866835181830648644181278525263208841485686550082716768007273274956840956106546775795194250401366478456633781535660625431101626890069726985609593994143782633778565380926320596506436863362020090059611429579703788147890840036282503034711343778354364298486466700333142720829114150249986444203853545355432405815031105146145261300880179432819649091101329623447045420086864775686580864657024288144116068111880402133268629104351916756056954524241578465643581984151165589975647683756736845207410801066956331772413525109315807525636217639418711401997278333685561659983114795837896832798073849008712956338259733002236666593114254330964037803020935479752191270996094326303108825753372698369561845336566072124227935915954255271767859475321549741132880291491414202176335007499892467482838470288740978957905623079601221763879974655396631371757524398711871535156542766948212283792266993063623019768826582769959725992927255734403331157627722093196262888412797736233350648354718658693972879972763706446905552969289649369183376914078320950581347180987845388051709244255123112736896099811318173973708981119189341804017674366094830904682958920097902248900350047617915725583618284606790203057255823618285702746109211261717693360590131603134672135985415289741650569208941840148463165615855933566379211001682406447013196023060732820737086179594440754910100916757824366362585177949465655058413056316341212535266052682037825096396025452236626084667661920204619528881503626999057358003321568513309018623909787472532240993326789164938086455609166224962035798446831560679160220299768949232812855365869419495694650422614047630150341277496545389456950074473159730352279556083570196908109615038458406180762637992346151579652010109808337831431027202472837284554840163036809417511056345120385948202393201884410655020762160778546430745288691199601115127845626616869624668487622977614589880404912514783216307058163048533891091798413296377603035930480466905380335128280666270108681668418884440189256005609825749005235519967151050903898645794478106793755813127416002447020574914985938369874275147218689723748227260610312604377346323696342595888142104149408012958634210308490161836405316395350921891284591157717363791737592646359235043797584301769335098049863672942887606275464181320074472365452471182930780641941536735155860983777304834208706106694237062569911716171313952599140050042780118896005693744252928743423577856386642462021504413943998789417178600583895132140402000975879290380489463534526692335811647246015868923226714884164149563938461284779754582208987960127582996311399559522822650210329909596161179427699487073258737176719412776392092251184151479618942664057555103805561137911353612416550648013045823911744920149773769042675779328979383369198437581232619677138403931889315349183004896824448045244293831787556099997506705865872472839332676473340946268821745013267073150584476677538572969641190285590556652251283342691959915740136743518199930407785091788574922204987109337714475033849260009471129571138056792254943032724743840493680845419816658885586658559289680773384327824138233582750481215432744626234746678585981248483125976739211735639634329590534855087679466681010964144112517041855616608745598924137665917516702369560061822818845898549767336689072470378180894392089203757387625489584987895824037795646136016529637479511031058137966743644326980972160417415291971314235528421395571407757034301831587414222353506494486284831637272457078254241136952964195238614984693239740138280904295974305603264717025229667947858487059524209181801842471212461148929138409886562191760308063056154223292290508782021923046108290259744661057538319041740073165993310171319619098010472638159441725321781974162153522842607675682419988940275309809074406505786766348068531516144613292079956306058506620608788123888946660820592299525088301426795002645332551541167621130845460592614098808269542101397931920155204009666752542688976189017075852847556830111236875746091151335183534574946180037517541376767239800701390115330781116603131852513742146878694504803510286134788597580367684020521939890982703068262939984558066507640732553387670175196712240467940201088225410568209865290535784272767494870387015173069766211181617715516540062371088478167444281069837610355759701488556198903464674512568886213166354683831886372270227969715115591593570338450081345933288146407017277132240970896405765544097614157940304855645641746309172498786513083570608161564273054572929493298363432461575160490643273184789464826723110323767602218536580891837697873447238209375768981005590444977733490959638453624367229205332183630085463164152786713872912095114132298578611356612401814293230313543911946678776598263601037988372748571139200791763325593409358482276896641685770942287982949865896083021076195963883016370489387765839465673868847783160162818422129149606804042887520052550304667938786843656192251950317265325464164178080165573370766661608239582707092170259661218444235087110964559996831326591458804072832484478965038266091944228459153794968989235072638465468307361888491846060048432930017494305701135235811192159716854829312820253294235658451136921699717258618683690173213194132580131857038538222127403223677019486671565736423703505153117384665046416981505601705901298124655202596003610614584745250749914264262719344717740637916984270149178921782842402413115218383252419979956145443505483732831254629183451068335475605488828816795532353878766377273228047094470864648125845211823351576275246417894147502270827178367126131720345683482844723586227998583406458206762797542335488913035612288908911331782722396872268483895342377117671803808985121803279363906223187706274872973898828625059291107836816741359632396777208154816407423485623205353784356674060301228311797070493615938093970128528721988704697027060176331945996413692736298162689308069375675684844214635786613460106664671326788947096810761084201582690408299242387371333766545068016953836515786305545763946349278926636830683918133486011625239670260915689171356480071883828735484111506809378116568466751289184744735792588309997733655051038009262962965192112925530935010124509404226534507367533627083003184624545487527872019418535894997166683602686905133160012513518584025542302970744967008463463596010739350731134363962443087157711510796716476584497274513942591305890371509459267809581047390383344648044337074390703265417158187737583736044115245109339125174133668309943500271580337558877081828325959725312618913270128922828392323587458871589781835587450844791136598228914614874076941512923445797323835992337844766668141282311686778078099024883213843170066095402743898321062706030801960189418428125762404483554102191089573024589064430010709022098126635451781046097880469062837485154152650750062001708019216153920622739958663971904462068167479751363553285154252929402151715050919127872110630962228359492482656764629992228738493939263531712514709050383963927853959654476119626328497719450767896518917984545722576333823842700959320199499717901128774671951231073139611627122805886012545693235099934148785121095133634951204711396761253788217760715884660343221560411052321165598083811344596697052617202883991783625793138486287027083871544173079713531220236690789070346040063505184458841042997516336510127380835838603800960022001487424353384396756657414943279541227707912894921249568112146647019469975959803221461951136729311139891420794710462539918620977199633752292437047083349776060227024526231548279552096640079777521994630438338834307329288943078041949585472217519561158567236681628653770136876437578104149240385621608218693939566248407464003472516599988894180682661421781873386552771012349401526942766995637100193381343609905976148833050085813910235022832182196036241203413170846199622081159277316896952327649957125269204352081057258589172466352092319167036745059557407072567951548879814999563184731642932237766966268546881583209681649765712120254591064384243875272674884815231795109176909389214252175721894391409973358181970571943205467107003542318992971623248552981701348267479863865772194772323489951631296642465651729983924709877305319440446327415819962699076381952403773293652862685802515882544894262622722657460823648392782243253234437339365167032179041614977059274892734662459389678499445102750315371443944151216503663821277202791329172310440391429628965820777799421092424158910243591184407538815171979027962109622602369669278054906878328274696143784878319433249519329068630780430826440771299590684135520109424458361180020096163856849534018746958695264087880097368704075542735154629704050324546672147406501864364549857185151173934008642262147104936371275697594940285285511032989501932893308995303552532601137386105990312507850359141633770617669175504869856806595029059738742703323060709924612386304824578756770103290115593945212344786923642850011563828491718234556133194286446332813973367129600598795517293743942128140033082415042573331040598484270123540829103766875643901799854803354524834835904446581758567093402700164902006154691914326989423875028092570080932009831453223541154761780331381297295127889865288598347341079272456796159579759149616865798623907363722965021092322653819937182733744567036304310604654504900611167814316507701457737200056521609246959161797899155178998051022809088970905658568693221389752247972192437852433080176531774945581688870108187364992077578107917817195444288520276943720575952826457851024650292905562661544513154630225578327017899943926704490264901817494538959368676792248414996303126067583450606917565554290054843651172140895648053861686814125412954006979102775680066917264490188743900914631633215117849269938279218203830778836333134100841095847053767085469618164340792466943851421765414609217711584944034763937435203074943378417011573539130301870898215957506429651424328086550451519839269798402298486723173337432582448437706387744550456732241201748660438607190258934029953021972421457082256551371942719103470257456860004728021504676889781002638067693867903245151475304787025666044867217194628844421820483336490568924890483947148781420722288243720989048701024584584249243350853286881795538606923848845973678860066849190469129883507815301216171422279106473534890989808662799959000685314981691398984777290720872884202582551009091472974354642369562936412469216579877739643042012576384603152156209737124925329468034610586310270436310118903678563124105504724905208513114022913415332317172327465931774347661433450709867413085698562544779547173793277860974891615734569059422979614850017304218980761019719383041072010433084867051151511152942973219579822637322251610490463176624539137647757697074663150807943621262485602323280190071484469671711326886543397665708670614313349730880488769067137924694205067476662427835311066163751516140866451024066146883518306300073125982196741417778154011793898236141749400237489329579482440226613800005025662786460601328465589348841518193996858520248182135973131322747809710127466630061925925881393894430712639000458905416768565204298114246092684347794470666310233592718768250357031148119889152997413090724875038191535981792818661604745067200623418479406221418517975947668067917396240561239483634386996161679495538359971876809135515152066910127971252824291362110267575347573390207147413662427597592918426213310917079918479822923468761316666719560952618464519978097986201043970718110070191653519782273625274630770854735544743285436503751557804217160615187052261524476494140029589246624449814135103896474888350771551883471183424686366124311650012298983056654169969004912758285732086857274389065001196215290004358814950799407886639218989277183933253797117836400961354422697483249482333063575808549758582280065738383704543343449004250057286773799011425319775957539028139848505002396927315494433813930050047877818674695193466259081238763515040903449294449331498941239484082541232065526581896169747381467191877304948612031894509111798450922763446273552307591737125332537268350841723617420903315547439601397923387126182625129053454853203042827407736731770863531803130677521994630390083898390428509984800656521029800196785826078743429572468798228600383444000388030856617325323808717063286954979179395349459619695277605368929487560194096151751362202339014278928700778303689554101300124214602836062379898676478621917924057955715044731432142377127852349203611361115605365823830627938657398087066199381265041635385118029265411202317427162305259955773045167350647894382883990503524458146032129425543544760258972491899062294267409568658197070056130954622561152712608085705303138441812188329598063329331306694914507124847204276690646396088266519510879333835717572268291625807362371928210018500900358015244342151742927742627470984517233473620310550975191862935435011213428008113307587312202223477023726331231307540744003149462822758732568788710206199803007417127805070670078809719424033026197950325250913352375960665174261508854404898658765655564069769287784292155109244101927732873422692967893780417373519743016327044571935670789073320467086094316478370748360214738497053592999357997477304269993212316208567648648479356525883737463055631851104947333135386676113559213171297052626322274835176234499668140918680885094814017331253794976611530545213660654020938213356014557432698686070403294226465271683084028653225589136377295348173487880920451303669859212480905004822946383176216021784790494177426981014726969008283219698381853371944693524296287953981806473189202719354878930507969015338211689579081863305760788494899712059720027803178042957262403423028650768097529959608981749131528652582351427868734028470869936870033969204985613526458531566648356231342063435851460923625180124338265750816164543935082885530526527765634448301673480963240362676255488805890721215417944577725390520660670138054816342784952156102301480839070690708609434854378179434788047732800018959520171352684860436684102330792784215894236964314180387350342346555082473835417556313969377030567110486715688575489154822020828100885781040119880562484050978737492618606922847846055757214042941755809524014906978762573846439559480608708279436351694863399594301866310642401029613697000822764553279420134015606423733919366723483890157658858763217647347878594514992158013479249219295650219114763247723260362635426978587875814082927904959187271192018947372068432850638805559109038076696163922993558558323973580926616029939592286820507039526161756030879433403913641751992712438730863470804417497062346149563805055435804529035063728019708982867033370400811289014160268101519386437194297626665924205695057748125884742470836901063592911297804832634671573922550800831316990292619386515287428629317220712452088301311086251584618941347634512417360295003188935852608524764443826840859264811890001865846580668077054130561884749489303416341732655751472293597532134691280919490337850428180790527755623213642055340138242814418898650508230986775340934132579246551869696936131709786046492589785303924461788532329760776040624781188654903622167416145418840357777297846599541249652290693812913788324604423921448419740189097537966650226972858745235800897440463704760679424550054280976756726828310147228493469140460302282758801875568061793430731730349145777283757483756835355928663613775664442995254064577717014937162919178206398033091080053910948565285215913271707710121435585548074629689474997888783564724082291856805836589990758750012379409593861665794785832597382380274974167210216359220763534664810668304689437775327033221223894333666223435999761009260245575874319569320908874703491095111649836354382929285737524249698758713177597062066097275521155321824457650649080649033940599286805892608685536031968686756917139678328873089491900479558049666056125298005616245197750247698119418961417791824698142599283028631599657131108853199066918936963308463173714380024466780700288287207142745010895621291345191984350801813893735742575652897884612997283005072468309575130476157510643667194085563117392101870339034553580486946305775758444086881140519389827671232782082453134568321298149554378311374718031485183595822496474535030991408895918594634898190481212047674771334483815377646773766936259878854660056797867533611678065225938725053136553944512683872068139586798941717207218693761163172389769324712723642549429173860901703904212386085558320735400356895243594179503777999528739294881225498180955322696757802407386563842586037873458055234128991401807943679018256919002051666587753239707853298430587397083759681908988871672720084994194371309941667789690008593214932694669030434471774825204367337718646364523114049693853889703525011360423697996293193477742655141291525140559126289611238434002925307311068398825615005779440626948974525854946673029154230416090477397371506742781688955124313012214981552719193097379040384099219292432441808667408428039201529066185573963839295272356643131399461390202657303194898950439413959348645879155808910500063486110395998246867911759175915842642106539800630378250400230961158960466881377277559218109396819678619931460816611044991484092910478266991657278115521852752968790711708734147759777140558780926780277535312879968306830438757986084782280665137042717600663526997054941670825753125406718700542724677682108437863388219182540675813773230426079442145551220817434172321607891412717084203320873631598294898335769953143758502369416165529567734838591193581904515534923458392571627486467556494557290132457099245452254329426048651133955708041985650831494901795810832754836247745806819741059829163012113104161075846240437587470522780760837112239118341674093075171831469361426688517823643684017100349797425542574901301754806825423940852133564478994507397591152467105526839408879593869496589575529365130468547035939290666984003570303285675799779211734243200548956040891008998651425927437652788680636161257026875834842974222470624299983704567374382846803558512685316584402025357210760853754702783725412096503095464350847636040595221769335283141319822355491814195887294978323484724539039649056996959300834263395549311665992623546327925181373023152858576395569329640241993053933693856051681238963407298328579025811781891429763543419721541771882225945863322109439997880633320084136339304594969914684201074325463104225500425729238624415413327800831500964350910896575122810288332210453995236354266134881557321844201212655083499600662308447754027374093579799836557143656090990382903217174776512622002315628964260156090183757776217948231028137744267685774017342143523286048687278706447740508624347716335241537960326448196833147774080768678013937488291608235569182955149104335676301287184198992763865105980363332333008882053673492298636163969246467451510474630559822146956970715353696079300841890098067432353844138359576169155649458641256970366371521166545286777978347725042875052169317591737038298130461903368450952381429599541445731356626125376006991987719089910424587419796420066023628891144126634817624882259423501909023986564702936457196552836779569028057584135367424359038281597154537190198130040354771093479005964903268300292056237192423689308531584340723121437223040289923603391051939373443951918950336765707955402254951731755372961281759043342237952146152700932406232917756079734221066736692445048752104791376626373483498148448034605353847796214877787263601509349320932545523845069806074841334918305068616758235245033082340803074370008189015468696839651394175568060975006767503942640580163579302708225062219716866293466440710199504263561649792806191900606019130441903815487915715894339348863231018074556338543466776097787687761390181221311484309923552141870339369839411841712155405844387676511117346907957892501677930072346098884134973697104222130722444543948464492265754633774949661367502611940004701514529882637675806985353535467987438876965028255348890081280807178889724007289663122552178007966444635577197940324677673282219775301192920343920866550138890351791423707362896322422895392861271406007729260189814196768376993407223916623089360782638404012022214747637528914238629546818942584787426862835748628681424319862832981301380743787158254766858232832151850722211972651306362200231244826508060493454503281329353953896352536735320155139522451314779782979234208051503481494352313427551957377372074990722126293142337501889477470107763186962443051184297972486692132282422584305415575193532518557726638127760856829610799309192524661195609048555907765516771853140200067127187633809535071067694650536700728416386891869786729042297655356204133361553640371978495425085297614581065863914322800114094758514533743585228359122439423870144754821068143235559256132503436918491404340347934786224262121435522111067253718630728695142172680156498016328476540843972077803519205361276400146816494734217222817224849171159920662718778705606753772684070695525569140361928543134835712969607561197515209760703721881760086314474910719753414612544084313532065344211626868557524172177809824112211999621736172498819568180491680527427712014847501815011859582013762357762425535415358002798902283861851457137602813864928447479288320867943838413219572861428580394326086470965500173489482956798186253622683455087906908785746758028203808907619085248940448795981339773444181981164130030043160041983926340825614672029172085699998946500396513912391392408049864555394288402995744570599935922273387340073117751283214652095110518142113379449222493274846902249829724072335925681940187042581802931447520039582043413985847043333141884141910620112902583503114096120390157601935869916538510618233314005482755402022077086280578073549999299923580047916279029045573251714934799590035494218160149598617145896628470710866874654249889076023762601417341984316261303830590466872163895719766882670376726666383040938771096446490355024304941696394927704040238123208529030415290533101311181433870650217488110572694008335724691678931697544264011675921306519434961385010909996960107778386139514234995575527297010227378879933788933417039497563008737564799316857509946721862352855817747791352139214955126911392454205662732193574926460531836829773705351952311438569153576118871843141142709484107830636692684130074935556065772176540805839583014809329780764295911637928474111892960664215432574107765733407793285384866068541983803421244589498302587239042930042127235422725840842485969935619452030985994997447462148506421278727881842120161120443918625014439226589443660126350914365336752514300023794251727000811715241947089801444919517854919163359060395684821206783156946296559482797342214447258440684137945733855285117474413115709401659433777183545660781918210681225362118861418806530183401476987841099619230836435555375294958798244016527339336470878168064855445904354444091480204225753193398131428094082480619277919916023178130397873468247033807571276373648207065597081426424251387354713992256950952141252331550448603382139082183480810841267821830312586447823618103547000370003069476505833842074552384143262838108182739389270091301442901766929780126224552959694016651453503958732102296209354478927041529057697739315411290540770912881719581168990220035447721226247549683030754674762447961559633399537510090234961696052430724060520955295591825495015197781789289632595166511857849413822448150118231825050519228769240353165765366132961243493315263503187648669791995233111596981037157711685941923371010015364972548630374310383922016676843090030026300934976533997343231474937896616150147707144566279951895090867513389526714331405151824613225984773815420040915245763434251801102291066337731852740908169287155286482709560666375078394809794460000681156990304500739886540939881125531407815072997784337991830330939425561304524105086900599736468935458186541760685781382131844051779533653954646731292907788153635020344355621628074596687372455460419020063172579978015230395776474593513675672562687859798536190643707641534069326383941712099034208651056458751541148369226208074407815900868326868593785954590628321762045491912812714753079327002703714203067297159398700756160871453753511843502525563885436806144449671277520939189276717753841936990011234374523744169884229500868917493887060369252444793372315743924259350204419070365584728768950993307924716441054051035802501561259665469537880665235161761520413718767483022697007562862440932167187651864917436024536526343497385070205384787735644657301578378583809275824645715112299244797686022313586100597457314952997889262972569849324558862260486160436854931039830387632555395756384981215437511611293740501200639883050163742083685095213940623921327922377175715341388884523640466823574333372801192983977563113292826698040871823090281259440856733578123636543067154020079361063179360707703587992416315569256908695839071308164138729117495178715067514418393573276072839609694965349655178713490033961475812223118467607835551935932151242328736754058945596208250013902671994496731062330534469541205604161275578875140109668235722331568831626070196525299727511593783113637079399823883206266374818045507872275463745744602435237558139875844815725902176405550646953843400144601626080147364405541335496373324522179925166751791144855316170869811716501150904757108700150082816245163996763243804536978856910859094157995151615167837329702515649151295351078188913979030505438377455271530601133608965133679858657168213244323433551292577189904726907820628691209697987149762143774385525769243976467379414369751670671000734028176307226134975347284688204565230371916134344841136850924938248946129778041980917461717100560384921821585885127651876817179380652545636535387549731708495234591300505552863359130570834591941591982690543765647986217695761419894500220555510748083590194482662715720492002161614838713527024292314577354200501752059869094553844193320389707902147237524576436077054416488178584196409880105144354044325207726186679762348726472694900758821289828352349304139100875313409171175235558284228229607495220904652396515577265392323492867278276813265808121084164878944903320077781510416523391878657330371963341977928546940784816208474762196614965403465081711924600237266017878130438432349919081638503617524892120003098529293907493788167127812873491782507714961507129979107944840590978420567720452015169618040361493481448249060176012501411445693956015395473094601074704229291670528958946798722507962223964747063271003504240453314908122163711981558198340861572731468550192513242458487694894287529589742267409464562727226617715392147649134581253452388153970833533622570570676797166752400795452960872212189529679472222840031606665031067511051607626315515145353781652422176350703357923181688047844858312506510884228003325551695059431108196378601423253063878231074649590179252297737118747964492050151768780391020721150201217614624644936026946996273052478928711318133958567888449345631105985946560707699821747728708818747398219209922282304462073675165440840096395127041969743070340601757489459379033782971804696740169086986855420337862712270351293966273730802465089454039599261265462856832047058210017195985121396074735149772592288237378919749822658440292755638961833106885984769770939494270791270506563892521061206305527587714230689751830113154734358398799411380596961671723439733506548470041762988679791000402331520521107506288404479746702337955556027720551323681421307583999710114908021625441487991393977639986430486328880118757795965926358886261738124750179913031355198320174217122522744735999480421294076663880505455396490508665410961442959635404328212648659469048927053103851072393377804780435268532218299827646078959740703977944733590386622767875989028100783545030569507638740829333875345297702377137925628040288479853548026686010279095655900106147917274303238765166437098162317968974052289429729193635294988903557054378277924254125804222306256223414571165804888530011344727586948546835581268271061770240391640960142690755969296214915035031454481284132066639436480092980868813313633073511781193576777866304588360916047132117034787166427329432766148087404189096202902866263859413466078689689122958469213320735988272709408231919940040191942748061190591828589358790413663767619815959309870346956373275112993911631909232511377013531081941509199057937338998465038185396441282119902493148353908944000785263516214382493212823898893696112624450969707872262051680447788277965283665007640354248835399740384513647034929758050841923550087400741619744638773544645822002138934520180881026440841622055648443189106936876897279610890044576154403639837159070619325745297612075853702778075164532244678510427147467516617955728195626954100006968237446156981018648110661046661070234802263508540302387799291613917371170863720236689410443286862134844316040834058013075007943217241205379527520780679802938041095527459458005307095683707547726469272535851226570645335656422268792469787939670979799401498281190531434056631005855323878761282958812363483108093453867160180264620856953312367211360457130348056986719229842039116964952629865772429620782977286263588370788543976525284386370807932661749922752118850049411362921419597734478563210746161727950013889208426512845360851583601802852156172144545013512673650245734415650074419461433487086764442969325757680862743796545288544171811769711688276408454349210618557518653029544238522629425581561991486128810907394542117326580213954218411617631346499773602268271651699954569505924305882539828747616642493981276491393606137688055271947061891969624040351464851905211371196023062256431998979516515903965255199878593878886364692452433848444682519639228639223634710616470263028516904971327927399960051413831983158947648018479824717778076996463282448220165436084230273219725007810939774795083316966188681965984081186492666531209980204852728172055805400221929827874002946334292886210962925996075739689162559129958721969438207978591780377934460869466563147789936632487490779396603769263922943588484340572156223194131779610242150597287345294769510220326399359275455190172708983917085344944529128818524096028704551033818976938519196423046700132449620624712532199887980854823392610657961811039299464681478257550799000033625868841731066107229001292575544298914636375291020647255326215569424804623131292919942678532374280275879402283907197070573282143353724831234858813622241605791962314466239791070818446084734160689823915773998397574037582190087995259674064936428275977522601542050564555237600954380012758760588128765680963083563811647583207582552950407039146899987865812758820615884361242858842353861150535809369193705878619474537554102774842967442877465740768865141902187787233272067705573690148856184808248996321186916027108294666399132007832254775932366372936650568355071908248900024973398482536658873345708557761246180132751471112778177041366651471415338475408407385458768726097675672408418534515885568970322343335760932795253273729816597750757019661027436160869102100847534913491180967343332771994606035909574954826030986724285463129405222461273036659733915096624933051902969401249517056082254890219832082376646235210682630708378783754229119169877646054031311228020373885845781008506741604732672751558413563234950822133796115873541532789187784984597092962917964273446938625271389832510089170494343920529592195380180717817906817571792407279171695189963044363271255463667299882331770635387203634927583286121281275789275950051106722683874678645317834272496353117207204094120712781603666805641048483298638068781031051574741495390459750191028862495127781317854659890467623953313016491796169800275344216611732271725949403338609568796249570586366236445549932526207539054508465118873615088928567846559719006840254055438291091417554283708737042207442655851985066835936494987422926979047129839139575358202975419889388236298500674357135641782443359230863489757040281331254726806025821269527527762757413079935823491729507383717023799744126428377222785343954070019321895549079712769407478541851005527627283497475403093426999477526593399650404947780412239504651125480606403699477210025576725075710721932905905427823612820656934936975252595496065623360261149658814856222523481304201965393667020508882467798172271261506538904998833909090677312190726889473321389339632256889045172786862720205617464162416678483144284962034776703850017486769036140529801177449506707763826660662805166275613291554158014732210373092934314425024779120170078293638807789136077539535903452425407589046025102533738548048693411738962625108795774021862306339597410860562622801161893809283254567549137028454503776446064877321825007617785931989850671176972367485901536310798616393136512706364865030914410153990661203147997300332112478527772973069318160233697589266069236435112381375848979533227679925889497776116320640262180245544607573797670205585705180447574852916192032698879695830719482750622502389059253607300526898551029848775528714055062244776312584371844721389621308304514669832106591703312428921145669211792313607046234624439781697405106698914365268696383952910009325049135355355245619075776962280116084351704815366003501812899125266575031533213434675414124580564955261208743888219690785252678664689319166659427711983042076759287324996419256156137185034023418222060784997972579012330897828707230322565417234949886615774466772074035683072392586934923002349126117775521977872509173158702988418303846062248725780163094799629550832810636687850959015631601310095421890565581777130013492083330281398003977212851875532073604611986749893738017914392967627241987668396238126664186683808151336642150068573104538546071119356468460797753725499007176833564903937310928311930843300628296975622676234907703023123307931541960336653599943505437191743311334858434554766355027451446536037701588519842278113637337593246118475850804900249896420513393154312720966976054291721939245126020141534057648615272293723541814607231784721539473841402116266307682029491191138355446686870473837130550034636450683754853196674706010811676645763387735450008567247372002269332128512696932291788398297082526530202226263367652419706339012571240143203924614612677837249405387341160040125865011579600159166129438514043654974997604239349482403592402877795185334909141494942717554554513635095453018447396596454298436739729106647593607296999082069904699879293808485893551551475381303126265944828896148834913730597309792372502364749775918769457592790079495699623367199098052632927624039551240112698722835860244818969974421520034397423576263325680365728081766933784010210719372256463581102673426122679586554197364948500156347308968684876534805141707321390403794567465791836694342756616232895417162409087802799097842645694646104531193624077721394966183027104176997711488396243537473896533516207747175601061248521239175356697474627001413318106274263626594922796455679274394460025529725648013993624618370052147828463689012757779996607519548944636058379324074748877870710204115359088428421074399896484267337781235789258605051853859693724442465371366526917301700634098425226282877465771493936092479352300397021423691178153438945363907781982442514524667138783529425494692656034160330874607778822260845215530565291230004580198762338261055402963791564283405464826138922747386728123500686424782199794526790684104624568316327489367732599849179386561706267543310005560059908732343042017592862851275931766866292658046522953975170506707802425301835205614572155379945118495613329238308324760735448352003666536254012451236668362439893132688473180440952544843297566209799476610504914998649147659632096402062168831772481352187539520203185372412325114559614006055231462803491855915775556287296637554182347127654466241935571274233172679680350727540388790155263063392957038202047713073006747330984667743636731472554937895954673411870725795830453403472349406927900591737598556836169939643519645157533103752533215444244482158102339435537038883481170410808789696378559984635825443260045343995617222087781879531726455982453968510830279234729160209680589688003972873843194966940913118876668787904095592355808731184256787204552531416271097714215462844173659750726989583600891754663186182564665119918442628619470334899894015144832785359619116770704838925735340313526302058763382545100099234851897522385373061561768985581717058873600507361038821373792010409274563796495529301141498896580206671104856972442846406880975127295117245670977230015584135077829719468582595380525534260623603298875426313009623189000098590551470467107107093165773473078576351787095147625299281875327860641875256839098017979763627395610709945238708267864125985860369989222910635687630551711880090916997110258271693194905348344992330103249691094740723057729719710583110844273737105212505509732225283367115471151975523532365088227684830919888651334069091020311916221358909635982948563161213532406446356514150867819448072976374019454436774358681685584153253845525712970030536831361041348217435673723446250161173565165700906664347342913219658978188653142950905455879630310891149411250865928949997231585953859514451731456404660482016815926799418561111182622379383855296548166044345662363023931382786712157768115937856888414732312852231231847921923870068102381280677297412450212805581238195545267594792634837676115227084471027751454366192578251365253375681168842863116294354329197378033583063747213366549995788235984255100576071837086033729719682529566684568858647551089782898125800372766439721845080630480503296994057397218905835251852128322505863554229888811405993724023311313609874518395921132805531969377950699353377939440382611328485859986281761347634318904351012535666539093110601264827220749511446763911086871008755653918276726251598405538039089925993728473441333797379241050267644611437851653285752180657681168157821410412945612759733810579719831664429908119299431137288092865332709497039279858295435195942359458445650051697475206188633976089581861894413723721134018862002832272744699782851776729950341358735644467701827093325927618888236284479939692976440463681320421884580214680968654146775544810043554952216339513981010532477550113752367898687428231231995310810888029355004763354550187120662127749055540043584860484561386999772598426653081282891928133700322842602531445216725872261918315948283490998768253026576544349165914777123825321675954384131657142839833440416454850014152441226530277127199847135717626687898607708881932318767295689910032084258899186181348856703962511898549698989464852932775301769935145887339624535489725193381040009098563349958355839079862343980612931916232982179220328466743574839092078816275802940745414028817333110480824032351276354083259345029138517308228319298935405231853003965409072413684071406850044646112150226252812284785913559745626022824677853224698986645500264072205851793109724836788512114830317627886799790039977588599444924976525081679618274546483874966405631842611906466901464118327232909056029189394374964662538381518367719397612019512342928685105870111488361601076824140043148774552292973962703530571371716101086492976772383644808261985045092779036507926285528372770857394540939083672235020477417472308430881654116633318906560350862737080495623303593251577376482467638530193365842756672174740648741023359735859097473913101881727333931847290183082907305576878854047783884100326580554044657868539496032831218378131867739629673497508033597676187644885223399737490477635079268915813427790618378128939481704558168712854531285926711873421849563383086210580437200955259520611811219703982511595645164694628576550182818056081408771337837057926639991258574974952612347330032869333330607295875889265252135551248560514855759439367060817582558790423929111877605924848655353409352787537738578709155240187061869231250774699091445594983904815447190572806731332966173306431658488212077655062476664018490797887835055440657387990304205227966297849934826180867824720623391881275490036083444539119010167840111196733954955788372407498958718868402141733282796917951786862392567063602415402213994811359611101753564108831325499383415471944594571114281762939068072635061742653507147711282917252864702565200174617249230749082119247550169850823425983369706791863592697207871090853405037228524708834738499522638175935866830468342050443222064544396813860659508252482503778141699362214967013197247986413582223405551104739920926294869817400194634497041835964010034723438033346711438537057618134496392791965166422691766561821966935977566007615071487537514163382535030998853936169388024285935098586971136629529140435937342918097406974619728394023284069650489423652832973326377931437932486947527005701940900060854570983004875677908226757626849055029810254456617576713292604830527804074167547900885323221234185090712812542250534198474191687515775815915670013343152446765755105781797374679627612083907132214959304952571164090335701201993031147584308559203697658874013373514506071311244123462603083732757692150467730024868322778326848960070418506164337322615845702345673225710133592513952575036414860447060601581075761578051923407335790937919074910048143975482771651123696435847378025793377546936710543082745447907763301304329423283535902077411365104671021481812388113961795088399171428973116738551220810753143120817926007440774587315383764618700034729522585295918597648369405797619267378272107491465867118808197218920949719359897732875615127204342888689770902720416971199063142308341938786323189987987792252990271359435305623644678163360103252934608858638007932638632668586452465410721790768680531842446015783004477222824795665040138169502553165249755611790016273073814532106198509648787826797625883516194965385422969882692085066316002319010869839588587366805845443457100209570064346337374034674263442981744560744188706550920744817162800383868617295617332220793569659216095461581606253387181549209981961982796190488858774233864963366583379759274775058466746170977713172873709967698058697646189981592123226776208218842915118794849834906910280143637816853849707966167997430777933531997098531232503592642530536145232658437268094029858282470580704208118715609322772704122569294024455585982459204954030891290937130523492597949043610825276962103235447244122172243436264768514429348728282498305721365443515406524234898032499989255528531982456208435580404457507802796622839367978444549447667262226557647796034509574149412055016033779889379361943514453238949489971907101287707695523060111493078667439666321143874046365796165218723638587260144000828537048297610646483566237456272522237618294088869799285428203510710340491032539087628154732848896248352928353247607443484556371444857287884439246251219848269277337038842071586123806139373274921602947046620530547283246683768963355247464158668333498667478759962625339827814720962438406962358968310804185956735541313267301048391146918227019246531766080634528502016993961703809510740469791548246546769627389640354103434690582552924801082347717048981612907777889050485329631667644881033971657937657463933410034164409804189707602949496409511752089363519859281607304354255626078081454144037923143352439040135590362757169455164520618438595628818447521547013069596568411508871504260237274638409976742873128895222443943145422744020533760417748913003621396559837392667101658529019183054111279297799018015264753282349287753404155365134629388783789581962113825715932652812100357295257491913865050262962980544546624723143443334640374964405972908151538012310924813554233583243895266413974770887319557734716300610036487117682623272940585898198034732822262024958538018040919205513903757276427883012544139827020664336378693291014813542683786044889247650930018932960222114672043800768651103580963363775641973930536714001245797591013994703226070687534466541543066730695481578261269077675796467000649023580507259355532091317432642211112050111629687488559865409403212625528200022049334511539474627201287474486673263098742475312470323741513131317690720850462889093301954478788681040895028233288790300339635575626299587922111646013878687038215656842237647367609036263539130744772206421667604908889113508777492917069077305127060467379984507624965870813735017607737312509600637016130795459114393066277953325301029218637219025969024143012595181579183930608741411070190789920506487447941789121409247320627536944272219313650991277455204060588407986321938582792366344672647458133254181259435321426962391526001442345012112488626358818134929670394427232290934434036444542153923992020467596690718238682484764153258996587447171268542265848580861394635259670632334695836573441920356696346228220598278128023696758210953580056742307536495163390426743352026269647882116536806863783883753479303544421688307619901313655842761105605951542554533478932438029796761933624888202185776870816043916777460161311527388505371747025800878733987427277432730458070010755980215154323638049134955673474370736202344600882596117716561728515499463498118446350387011795215034676313924427953836550421151924977710911667682895220435836169125813199783663832032379568983711372196177719937745479362227116816465009112216749742700826298273772859854213430348157263243922495801015927745373767506120133348448529860104524222587349021084921032568549810359595326421969719390883238098999254963705591445847597146549123833784686920625869335881472439773967713078052391792606260880039725686007980487119481070111192425879135254385755984238799264003764436874842037721147519097534116924198677692556014016021536655841266212971090576121680578787224060078913901407307634084557209940691795180589960134523360830436833174912023989323836786783453020513350740233933101784375149475675475732357168857709749045721707921488942842280810767457097250814990797505033043520249600466674229384793665075207467762250179336603154400629844715758144104892759132347752952401749154382799445032829286123424506565942202290466416730905939463574836050636669255089502958515196242410088267857608473683014552608813598587027397793021414566195353927091652199156102431867933348804677133366263958160059514294129543195600236348876574048148518711429834018444878277254072996445088235383521688639534748694611480643302666219442117688757760025882702027333124254533180198785825706232995264158135401325013742760996037394635492977027466533985501906285064071700462987110600703973135035806310936858646657792796080897510360175295603928072393152966758215167643478213027803541492497806637192492601006680765439556549076696510623570738040742785435941061474125695031202248622386268978204014338044289638685188264316873939298160900964602349317586191305202849923669814575112913119945193453532437689119606072557977846558846577462047797892163321823962209933605678716329279630383626633996308548751095003948653200935619403990967199176560302742212694033722948667390356773556582855945873671738394444657612235777435817819561722233526586330409665092665139473793491866503580899892275328063594184136279957486917362111047060855636937897568391788337782715443192054245444289383980547404118186003867280412376020461036147281524314560669049556800888030587371292169420618157521205294868884248419664219489523414742081552454839023454873253356306340574683063532728226919677322516539493757667542530886705683748667523426662110686010632118549246393739367957475613954835255549618100534655569724717411234925905800985907957449609107696439121723726768479980733475795453655955989998967657659047136686154535429344772671123902655588749371522193379347993665267366933190844934143855492470030640077157413501824504984259810101419709281816130855015293564599848076186351692762720237077706601619195086845356035389832687368478833952367127024966716077061186375162745996563368331011936353022486396342261199680572881027762621287320080666687115895373099647842659322843957984535890083332059136499994460001680206577739333008113319427994441939194860851004688171866491591579435722890843534653677066489517324036827108717468673264318931420293346680207713332385933852174576979041246612972737132374292944452560042282371257205184986571002761250577960937575193045427073443071377623975257734101960486728263324985972476375627040950518984695181009150070713349973766761863713332070986988517754341248099485349316501731636504917254797828246827112673683285314917120435938597441680103978042689321522480104511327034927544917331718539563588143856924983168303263543775875582997017674388851786954768714298918993694281547259815360092320631569328410206710648522572133315779987136596505857241344913290263734328630601274130361273938132163388548856824340983543814430741841806533326853578709629409314558232269626716873826962696127866003819885332318714782900872535463675020714837221261078872084447054764750751305815217133976042604747039276281878037184797866154286843089053892011135293438022393492117738701026145994229357886920433391348617924648923634019402327094111208494575340749706256572490688848952291752673180463805011629908527628470000803168118024657435208364498144546199374069470336673665423274141553333620478295230483038310829262520925174108353741126667826391988081897097310679782016237229579396503528657123808089756976889374699217426990155684873190715174922319801916694304049506014364181353020242834921995380839143843880720805216291478352824308385429280765866387940144003019093430223822700641964446335286936959818524511348189722442124112704523794648788447186084591038038719908199506708672454471418224253665251601432204853031367534097942304613237283704045923533438776278576480024052503111920211380437513726018954878792807803959102614714883786543345873977802205700547135683113804265535591591312491974059987360188414590601348790764976167182799025564791935753989276037556549970027348585172062974924920306962646756346657301026193269838045562417578281213241246907304291473106691873853087762767707837979410707042176254148648942748286834792634787373382266180548999262311232104269645929398066153315404521695651032082623148809685087860200813100896537000492627809067738133944848200103867584833214822305553126077146380638737929078592400438000502825129982931920215007698560977415907132268344498203012110418317159187027977325751923790375444949761861979692716893096822523063909550174721376899202118050659681020526749933873802191617318624829082049207728392316387837626206911062861705336027087790885005704345349083302025934653828064890850955728303801122519791480230737694341633641034040681133612008734974595223184884334293906207028160463678707117282350024171164324415405753867581872044086239009983660613241833404768876661865776771742559088425750952897520196860070956444956316180666425890689169630893703253300122477916936198639878163698019697029129021696564170258916269050446998402488185489454533925315102192383881908859288829584197653706243959487587025776208940276329084596082025640646895209267712981279130680673748561100400753755089838571236070627968001293985075533618348463178453579204980204977948325618729991820457617952036775590891083445437544819475097021570291402769687417103407305434532683900490441402243675240178133323163475298593471825925650548383378495471037074891276777643896090110195247176060486190450311676994039367825624317015232727725788775365096821183278912611893210609399069743550573992004552732891267348769297463671999453710858747785581692749706655351008745536248978627069588046378910750094675707137655183864809378590037232395979854660986371306038451503145047259286345521897683540055539742999499036538358704561576399164925047487604595740736825998593402863066181089002466186976644570992058000007170446569430646975081412171007330252809017934315157261652403409342388636641208573641170249068667003209428482691577264254590918854453507925968868997593627913353509981412624918702667948112843695387330588926000425249357113606116293601678044267225667149927233930490254760364876061504979453185383062859442324283282167000866753967475791636354071387762934829607857984699263767335030313850704874339663574930213399470467808281409207533324731221348417748720043231036978637886527830151633243371825747540852126480430149800951043323226598150893948946397016051752904204759567903742172059511589506413717438558338589325548738820078933313578637943047112315235255037701202200304303737511858059597016851584195693027732863356989827727005823154944068888854389412500487124801787675011539568138512859832432511572773927945141294906556505936196739916431530634596119917683465018905658020783387957308424004303223415640102994624930030206799646804610719279811277514291231798050188232956725925194249996617752596277338100518958895529349799938085713075864003605986205152740911718221396325952606277255375534437867973773092644327585417730971201377952831425362244221167462792676564456977334723200302021901842547315493889468320091343298747225425626908022876086379696383330810087723099355243083375822277815601154331684505288899988037777679660353569179341943408654696593983087354761380867447917363539404017950943207260082350793392503126667311753283526871034445271562789661724673050543728825133809544959082297007330773567845957584405377475877553139564977372635484558391317767000747831963407284309490685299491678742933224833554090887539102436012133946827770795171241502143326523359993253021810701541656027155973694293106688444168622027682807978437067275534385435800692094067378974082406802256651157624231361752082234302427566049461285181232482237589101182534557580020809589500251663114613808745882059306299847262563594199730895706419828214895219998644595796674277295783050221179042781375434534541531674530615240329888162222023086933149363925306937721732484062067919398807890447472775103346614833107635123343607406905998698642215440299057993656115956544883604006015187575112129715503269841238019219767046829941133368846465113272983032785969100981070850466095698451113943324884026016939456219593227718727169411666813392928778996998611111026731550531135185403758450542979438881011810815370263104975442898603641943021916296156230273054487193369814072765398814130318197355597395884113985572399543680990245351252984013346008493225854305498954633987216686644537296746216364752691177873237587033859214375464099538805299022307964434507228488048984365608705192840815193443323307257904209797605800996030024056255914386007741692272141185262652425273233345125678544072289631569645275587299573671233654363131956463798782299185146222934158714567213501637894154533510878182159447132591960816970603886378317625703838804791804464333305224616223177720063136379054375178226868873590928309867777151498836829732844109937842925610522913147887880887246044980418059181700578120981915355268825989048418514688140373571098677782106739869191400924913317397751213563254255713921630757921160796070200086938293746534688806031487789654840151863945451174238522791236743835119723840438435663115314504856971847224580361087787664284307607355695216636036358142482886645893194805432859198532411595932837112094266004221932553916936972572557399882899505927341698607604772596876749849713755533823188539084667673819725647886200248853691494980484749844292486675644930348435028531289054939934125248959002478180499094255774604406847849142715784175470223915174137194289166210767697583608371693803352970952557417132676140239344838625015557762373327432798917779670070713686099918507891445698541616389339509434119532183244618761895099227824045522000349827546644558242465016896571740203472043790234009627295243962596025884402686140134120963855976558274299633551499089974763945561171064622399533398483856350448599385729795717553331870232533489908409212033979362787397855157825883513155007604994891961276832047118719576296634072108775931219105084321922779539816319337429563112582083875380529873278024120490352878611495733072017977104572116480813117815252783484197101577580152090600583759050387794554802253735087026534587440284155188238347199854267579417414300149332125025423276052153368514275363974770051495460110644075942447023043568086656979011203979998533715343561227507048724767503268517463909114032395670776588735905519034429738381309999341090844395131682395403229014185187198986781002533145066972920806841954710423583051757413344327176332249912382085011240389227898350850317913564380292026908880402319209324042974386466881575075867026931908948309152269864752674308225523158092298869491656942831081349410486223187871005689997093197045980991113582845993639911753025531896159154061655222923245150579524685510045347512923625974970190306486493371893798721341483424494205170341231067606608878094016635052214260512398036501011665761388297220747634339197411684303477271371085809449107807355410934397777215853745180338641642585812468130427825769485035630904291044145085093099896926217153927720516381949365127110365409086359708453604975227257844060442598618555958958789591058716644238151269028787398254909963813598556455805145075449122300791394786550006861404514779346707864608877689527527255764758403831295385143618823881408496648839267135067577064659058056579926130420149056688008299018948579392187491464017582687966737336145373114668647549918620600633456839848546787099866401749931953617091159988036147489852338716095628233632265145058358958842165957183192960295697179028307531501846670629517444088624398490292262040843201670816953228826295692828043488800948577922671172040860026955321487636215916081825162841997997264117906722857405076477850236984741985967064822140330726646963371610335849903832641373686057906094587893044263686208602580673595037025750637965479212055253410555631778100994979753471700097690526153076126639841032965302554505939645425134190468764312791914330408307265681615264738287504588932674094017334045999684380196550966687404616867948041555668747566776462145703275129624363565765680807260495642327009186008330620938409499536324894060873752071599077134185634519558481432437232204206663350866960298401442702355993603766692812364631058288999021066055119062467680625378725346092442358266434093344916868655323566410545633698284691244277932366265768717130811608822230322623056896049195907107490883356142079086919239119532206331897851681102680444237978122405861119810648825632597801720669734390629850529123308938517567604959269797408038274166729304289539748559933728129771549773982006205638920900314596504273260639152215385729344010575624816855540600209694084188157017460546777036937395242490507366845899891047736986344807283332357746818753667441257522012481191124669639955735692876847718988757313304993401318022632395300980580949264525042241743461021860608460954293371770762889792145425584135737292466253863829631023203586624905309844861499775230952573627154337579629939800805369809728448858046232068537578882019288227102994189610419463717588010616663147368279064901690758317050318036140857696015022847745657572681336018327357555192973884552973684498799187289146794790900865471021689644465989323120820263175017008540250874062358747639167842644270525359896345889658062462810548278675830048462696467867804290703592016806184977868346385093545958364982012953855713786040656455788863035908682522790525512034719590356404206251067285600350155058293716391322981636699484611532390118126137970975585047362290893132266098762324366565668558068969895218240634456010481191044526035199571576627398201984304551122573748316831854409313774228277597245929322877926557284320391360813979219975589806576660745311932381743601088129841537284979456874689358090162839879641013178968439191109549977181142425983373501540879552120350418159214566353037893260805948114519579852054388814300790252432214343140968881099363954791343509915400261128051272203469619649351265803737317815187847629979236605906321241632500471473007429948707897090060483220694590362149109837867372488146042896293708215479443243594498886955152336177864137374914212354574893495261372030959419507356923221964067589143901658638815568521259706646784893411531606059896032951609672728971235504781760494057978127285445079240594408136089901294398478401996273361374527726897736888477634546310509497947307490367924631402898762785448362103110430510359627966671636731614912474163396747287912125083332659568285472076515494031467324970510215629387968151094132362783335071525351007391352515978765698260756819819595742059519355791063873908933151370952179210832503674211581545694394546024168316339499920108593032516357255620971497345318792701981292321212881080351296478239561000927550581865123845808471912862370164854353135868179671052835055622717218987659680730581573425875246702637695994812176035513529720637580744181947554670677022748017900611834549760115473348733036013280308763352512879714579099233617557630239705825055361409506461751674659019492298007838969841222797063882614178329840635695504499395104244855316163135189348422450866372657361348862458882838954989650571709403132898487262229917893244527929491258826968313847380036413962848277751696839971405951581631833079444260948140007595949794851275099322462134988458065270483092882397525201554762242744779378345847890716376633357784367332622399514157279899387439440080701074611929998651426743596077264535662487637066149535031670082082246971498741528798085235742866097882803782851517324652100927320477751279308768636627122013169233988246006530628748554084759573086308797022400382754768180897310864093481252107193874233427170697938916448991092977616309521404118464240899754794415104630483099545783196166880462549631659419987988608481588671014123265664879605080840119978720043468821565950043919664037024384996157132397954236701605375014292402949888635574819813602395478443385304593695701488009722970681659464863197995951675260736295736094093436429764707759263412173328643243457593804664491719625142016638618718260213564304780456921770648003049005678890936050139998248389590733527823049112955708686159903598677394740081677074836688548595364803328294067955790734094713375784084980775161233763313630791610092881235766101060684172752097927940542781209019295220757106140584466846319489699060340958416533881135196317501709176834076044796323107658245940486479856298367519956856995495721506282908303670474758072118443521077408410513368940587482868759482744334128450569984866528103444940908467290563576499919336832613169530683529072679359411137580613727796154935124931209761712709080854796373461960311690650848207512537899639779079688161335273968311077302248461402670835240860914802469443916415777448782092736348455113606012229540656483203118587819187263636801781261774960536470382209899854618374704241308769632773145253819195026305661388207721682972259039451251824751770079073274219126291962556993217361309672410365768273876067680999920789620866920535574915178626597529901350658537645231406785200012805525167993214696110456860327050844770719867267842536419375810101937596015831791583813822316024090584829668739615775561840930476863238374332753093513409614295961664973301687702490306138309906738086566991773500076518074363809610769025679470034765781657912804499147698646903174346266294392772246516380496360960878722657624866900521946946161041158058447965030014863609203425997259755802582865211385098807182305441918730658894098909910278347948727365179527650650475128517922410573872736218286079786617469074115683332654107960443521966696054314360958687408658668388798152165213583292474177980751702313652531661918567948826249782606704128478267496675370045114890925602036264358715850418377325187065196836471913297378173243481096689596164741711518086753867089249217018163144996114640628343506351475644636216546553231861987000334695502628567352865901541646065812150453517855892660920409567058358698026177097932513124412492213987858869446816146568781763459040020288849436923300360412162223033277039296120995824986918752746283313177536741393393719608436952228954086642586431192275670127135417285986959925437108810360491327946273545585224314337663898511427989058081459646545236235612748969119131423546881131724506946127272420501369504111321040272710146715095028666912978413926211480678121637356637959462203805213429497656648346854476541411194713700885522824767121908414497643163170147512889313198391800175565995675172197517588918332196850141498329226203435632797272044903194473709034528994552260579121727068078734019106842108246883549872329857643657937953252400519071031783471172645104456469636868697406127873736235414960145459885455436592611370696620546335731110089919868343405055089989084588590128003072823200719929734303293123824447575621397621281751488511824427400810025033742175015857590523551142424429116410981437365182449131702956252736943609614251119313693023056963525709996317474826636239192825248880096781110405307727643899163950280786318478758494541862053299514621358572807013526837622843263484871324864747629687347466716063011520554808491675208447786866376891677499563344787752345591607222966209328096971141427189853625613667322429496619836873243812769775702571521319450630069755316980404241450510184345636128429905661786523676086473164394707044370669057937454715622571757574976408395069313558018450774500042582169074289218702906639281776251538151105825683571532576759363885033584278783477152054233737125742923058577663802879212124461413649347039048703869124564631220595403219467450858441109176024752962313812761111651561172702723090877130606542510798893568224587775114870267384044465113682016891131805209944652304202387391603483306780396792605596094387175728060601889041320464400376166756354188820716386309526429566627634690748148239350597196849484942884065838375991232639200220324372736233430851764910791648401398690440313435976050287825090166396781755956966822714237123785600389929314158913973170728962802249472300524016629554640526789090398066312192435123170597289608651397715491881757355854464554014480683920761020632911487971267969410786225457214881122179698039642732115461708057888544312674329578877428843051508897109407644881711323264136562181257630100240836207477966669615598713874253594958431192130841640205564541015213909872839088084435611001169625700001134563247414361417310097741150644561339087056828630778263820393895783757130271069104452574586948477483613840703515956071070029779017809210525917001750409782784717961441084806396454827482191592675821901492854647287944674621898589128731028348135728191807016236873546141697686461579581480345428684177310760390264758839336539681689929271847374934319010730836330091123263144333364138348122849287965708231920069182993582232821842042530323962557636768701234610573739382948758114635575685746981992397096054501524617703388201985923142903754156472781698653684752716946791314935805772450617994863907749370449642304110763195357886067701508719774028735275379876194158700250823169271896814161774654848535628597338031546673783875190763257094186557968201363832695963415214551786628736878715177264928394170729874855128636330444562283766506505335171654264814605196946241116366142266225622402981375499895671454381843951905096847040893477729159427753600684887099064702340712675919096672420105014681850131665188712593530782840072221607405171632515939271778193091254882478573031106794173638447909587324497093613703195585752214592266014425858465872936439754740029944846942374204966158142635327535022733764023600772818177414803778523414853754076475426145224576806818955593182465119948227118868117031259750113939502099785367538032704305416204614531230324044932589811726129506030997381489144033653040997945746675570751142432967902971954305258890680292921145341411029462776992215739618985328342785526186680338097477613150584315137281859562575154932357930197992334299029379673717545270863496906900682765568993257666790545883517015508773243755230827739617254877610943912471185735070775535732578531381525054544753244416256309431362445707010416778875897839739950394170967764659675507595538049075268895481909834673390489765538123009684234489279524142021838296507101716829638700682422797653692840211437724060096749773625031089729678149813077523079634108432275453331508306510635100662904197549951814072385483207857145628235828908342982610943771932766589721793012297273799209165054335341001492457070578013993481752807293606514154926122861684437061893911856506343835402167617563534423243820365598537086537100501199648512411147196480457657914945238609335079665981232840701668540959606625643784432566853830749259397223665515591452410971645604699216722672027786152403924540196267222457439854681972937013195387601380634495360645587463409081214352898904598299435879896939923480840934027259656323786258498718570283940539459126087703827592968050464765498590530916992156707308039676140150995256842610790639789872015083147316477536625532201434089969861146710596873624515219116392811998266623529534143477618682358674301462881266618550613066872953011827110045812502807690834564579060708496280960882480400441703998468835360205412221129702723560231961819575449345265278885972416188192639293705672688598618486577987189757408385572751583693839673316127053847097269925255299111986187803548506476312755496163180514702837022518299114921362310483097011622792754648114445142517156176367349311239804075716107923491488558729347897270910507852756317947454367365241772373114087762591460377312270671704930264054162057945310246766957009965155485548335695024658850810354424438243160323722976512187009352589787660273497608247595202273426168017684327733299928163997133324745020811367170020814707792360533232096098494502939130358988073455604229022146943311204096580256006426619971429993855203973057280224869497107905237732437136148689205421489948936944506586661788253194130127522834831028306618708409722239156514740743213989464419092597081538306540610548838761146563346929436166777865591943287045555161530980123992654100822584664737226711453082650940194221646611140364736403850035560038530101719459684297393791340064788701722286771842229084019466963458537425336950412809591883508632616031021942143817575527830675004013428444753427364951553868011085133604661733545081524602870920299595543642478273631673042162232485459589125546709496017878439927577200979907595969718221639344629420209817107688127840981031409055068835838724128678282895952083305559710634217621172056237546269758401135877800140575006347664606663846589402830034725951109365991390830874011765151141509163257695184244006393757154561127318047825655544475278626198443952439022350045828677322692355684422009943809616007971213834017803076791490134401992638990877083875928474945915472436859822446720445934059952576017184840645184958225502609829746257688789163609641162417836194806448462078248630468376981881820312825069372649311832803471768556750114697183151686455244129301598968702519824069046095543134960709326447783532043178166309961708396983963683751839683423135865445285669103026690763528565231456428745154259845561547539607453410572274457899275947175671067975411995900744934463733203111648166246339842058514303717317561230997129606291010393310649259740780212544541296581067976171106566324231142042721468566583043651912774737583236608134296013244883423725617128640753541419081413827163123614661591629197620785137784960678116609684037162853149898274216977352712426465202478881988535440326698924667140482318352765208615252629181749931198206827387007047295170110712969929296282287028867148782668085474802072055324654277090131689956138688621242444681491693377675462501453831536558087936720142872911729659510559824772722355594437290138812041506174839059354071483860538719171997274052885549734523762278420216226923274255357666196777504606531002943771955744558795829945200238539768310047574192034501616103523456839044687956638910477739260776896982629854519526025905688750147159651595276859482111256928567520950770231968339099079327540915893903470825270721372942012012056773801549440255947069597337271791373506482044513059854707637335097860152749579654963943465168673199279447768655340027082184768236899278294606173791420053094505982425758666875563863284922051243623502718382313082095280887916942943103485556422630115615111058706189982073686927162797686798277968180638142373385639392280579358851175490431060553574589742961946392279722690067487558059490989540813123818349578498333533479000758961354516882109815994995611674251361212083254414733564890512104608311112290089307079368339826946642993140489935089650022347261443243239373263664832738142854547239802798028027153165384634437936192828106127598003920650718429884915382456436693165279620076919579605585247909377554756551460257056320204641156703054235783513914009931124542922719522614975285284691589601582982848641467845526846186701133712961844150137610793630426045476107209852028554779662388407589010463058663183586847235951562949929858443248578328605379998418377652571913956858625625063763689261215750193522515704418717801271987954625714454533524119275462988472029879212310999316856620682873375605807092456211564317126248675846524115998561712727025017919419366435579640021580770109362389510651771935134755026244749665525423232083544106278586597826642827869962784919151492948981145100615415814899445064090334740532820940395123408249491929104581955557501599680691969795749208575343200209543663028679965381829239561433512229951220013826185957929936811097804512357522145429137563881764467821955939379865382162732335406810603574980639744716336250673089951795928683437444758077492941889663753556107497289958558852565605770240568500034060502057250804136425390663504385127581280147466688823117819161943993213248863118358168521813039555125492092833177145958169006574321576908204015709741041147315335607439297491163819900911047206814463543922232141432675570736829378367510903067017958492321350938260671663217628589345151383350529249548832516280115909042240674650092447166459716529889403043196306788122042481017148797793486246432262393250802905213886997648532805268958081982124773021117006967416227122156693621133163287540760277991381482770556503535164458176201239076952176562839628428255618063217790959626768444315032932794943094379013515467273249477564992970308682352872289948945215005751576485199115462764098343254977572319392700270360412441864062249640390045944380377248647256360446292288785245361639423492968305410138348589342504910230594113391614855843782816325071334340698843050089512375320140893702905173496137528097238692198805472362586686620160507066523344855480109635711026111272128026831258471282806314319260744547815443282049953193202734013267214324205631401948540548426305002541599032704639104649038152061286488504441666306182169972178236489829845439097373726761093941452483081237160775597704437759506070176072167102616212220059622091235738227407417471078573726346191183309600164814838660600929969778417737203832548235594610896338035085417683337528170510947711199931440345941444604355290658992486728700830697147074960838508181271359039069221572594415355848369099820122242812318206460498236032725102979099867416866231186196436572228285937881468001036826246568714856863120024788551441905467668947704371137308424089051104141845323569373163894579957425516702202400268112425788797813170231587651460663050888706735962254950271439397294669244941146494627333807369981596222758479167659910822793158115696123844098543484199240443357459339142948268943699693482568433999232019869408242342065652608809529796577100463086888879888632311099339871153459344811748354296705250956531348053876209125572286736597825428902748516717765909489539551207452245879736036286851753688666682136682571180847809830505170566328145275434718642390245568290485688427650169455945327693259792780407091834668525340932630439292131579974273814458486536957103946279294005357716193400996724222812251722769243273348638030191722520670449904907897244627458877089037857284067208038236692343464388607775133109271335434031239020572591562318460011226667965964813983657202035616521364261311932758666879832668501736900702103129299054652547972860749137043551899377275756552894036127139244967606273931401467409401642216001901541929938263079985241313716963087608449016316172647730661122724438810778564417655926402131389218475975787983222411983999492412300567977730839818086282809982269331235650491208323399721123181121163566485909714724662708558831669990740226944001523744048724220261030515263358113984949636201814643413611155956599079003722571926627994530708468830403860963942608964388744647453309333081117077748310990461382318630016301680073582593038613116061404179653549428068587647402743225452677748179844263943145044661432200017974935354919386763611567174157744702492530053713291949857601384003607486133886421568112320699937102625481266502131665151830578206416507861292369346374448611048776191167083788795124977841877526493856367121577498676773987176772671640942934471849128025733959944356964611127471517154639682009246265950798646550144965791620088244723924656246403880362821179200099295634927723314212598006829772711474209127638770029995327128426716289093112194537998640927346464971879681345342693019771807924130802062374053488620534881580219603160163603570549287774482816719361945132710520341554752313517130623298668110057155200428893412405145689596930334440259606457620991199629997989360537573435997193034980488234254667840041616761821414890585513477414752493868089799641536390310726203885153405390399934402093436578494409703018566221505176200890758101254387695869835766355767934579585773925799181071657589498408060525786398107510580393539372921732003771208422668040931598292361422867305003292020682284184972569357902417978434391922479383160695802748550076499788946610581768961132354950501216108412808982269111018639595650555454061305522498709562780396150494110521622843663848405251505380508146802874100303499816903690281093644245586850076685381227748350607250267292975525199597531322729557615944943700713367728818247460352046389562657191096488121770583691076646890343074077627974478822767412217958661905509966127058866051242220814916054142093311769682170171500713896737194362191004923766374347590998154899214055261595953472958636038805163818346382141680163006333654219494930128136380699987804446567247993721758190634791129546529217891727282674949259820307677445410598373610005152221826208313816547063642744058274789130262250287372059763617610523458560540187359715651485660246564992635821687627455915485295447150555643266334162021217594873698461116114585301774663565879079833051810173987652108922342791152140603583512673329681943984654808933272342875290680154699155987272439993441176155010870244437010821921612195716233188470532698756156078659821221530962427562197155890678964002347692251371453043639276451972155802487138621665070026028743570306614974598075769761916264988722536260555641698387764772846576039225337315294339895772983208235965401927325001474768943363923071985605761727499200374396518009619244963951886033519684333921121469750748809154127647460791029477478774864331864483995116031937697196574179741584644841396218840366702262643901901450696593440155853251600062875268269403007397078935023851719942641140464003891131900219777672721250392990687662013711969089600782744775845087212894729475708088805432673919718967871310790099024119895876059041969060642227000874571061201539464593532141572011349448916537520683140329331308645183002083789966469479818943955813801331892588417648060756776745670113420655738480350004600819143293248925840365401248362608489228164866378525365170559854731380897414045702449486874207472486955127560385955660037799057079981821210263194836175962600238527448729959103251835731091383445657602771486341875703798866262108723880786569636684909870064411733009252110250138408840780428078659264585762949007964682187463422136372098423970775001387624230271483303504986727905183971642944038773503387895238145858495879928713314688268616094757557027207198498877773717057437550895822558113088552953438983016712459424334035044650123960957884430346647335697290688279027277977554882705293028523499226711261502662695622710807462454076340930296633618375101057552323919625108520134210767108264761327980048364484818609507437043236684202159315286820593690604590526321523946496812891788810661929804095149542693582433807968943593827643508422134058559212137622305867323029927662828680844775906640021675971833286084427470168700624832293432820433371997760879695438483710484276566702016337427316779207304792343281323562397294486450480258685290196666405779133266263391179726954888319139598689633655744711987953775682442988861885655385587611210311325287093467677011609314861846050644582177686829475488290449870732983445205882449832895774779419009990018821118202514873969349649357805987371163362214085681404194963073137282963937232757071211985932255303809500822713517573407475031831475167655202612175083628399090948220901538635017423874007792632654297337853756497730601082761189467310246151530279413289858758853333153735619404085487975714080659902963292937645348811013424153102594097451960584739755913582213514653561712947989314068245224113777434114566890446165933850586693136183110491445290483867329414562959452888231902971476839064601149366879751072554019497321614913257540800801738581654453912870595663701982079971597613060280525207680623233331629640763748069583490571546171628963813053893975419601643390564453989968597584692797991761327795636409007500018664432412690277182105180416652078196882211748269776893886938730111770168067711626318075045012811652786396801642442862791591733230213100539559025566386681000108100165996941214944982351569476368910209847314435571007879895113054829922623357015962643314163092493131754402148512555741904915010212426737283545956497794171399099215571413109656391049873770027013815815704533942471027834586198135219976416316807053334720418648207640442711526998339488103298775413548626770623413412415088282451935720714537266704086598793993258605810671723925094199055528420193319911564587852870367951925068588425033541097976296948914787396266224575165947037908339683659267356185866176780706455617285966021946657820870757286539954693353003533578081688747709564400964101438139134431854284564901810993880893922191605915069241409025418693875990611866959604897385345083334090459844838984654843886166734415847325033975160682975529397352644161536433786515084838322462589909477522697970934279124056100674741685041789753448370357084418984566438304559937066476994909958971590102414685051646490141302243064967233184356838709542039705919336795484280668829768689407376234994385971259654781211223524174796989437596554153732128983859235302103956538659284592772040320887488652185091933222799281315681080745470808895970391214822760798375834017635523104906844906547021994310160926547439114190705092651548248170417484468768819286769335042096641362410179650797997628631798265564897603423252592034362922771809415240234986686252228599959503337101593802273305535164289388005364063948833325607941579077856634601967210267552406898787320874565114495034775623058908831295455898397999717239974964779043264646938116053109261151472362282460107881772776876269284863316668946303053259472287369705048679961475820215730912929046592694946785105514514574423138383401462013447377513789596786541422296850159820859378818777197643999001130755723704693086693871168289628543353657670313076397090831257670767722583137868083988129808044210457738409826984496604881799357605836359726417432402793552036056954802512158372251943478523070814371161185030457753201091175362723616330843462364106996752898298337515932286619968837657448259007448551572754968439216369706801650842552258202369958958872800081207215197675028096640754202622209773594337877859206888715765541992206356642122227907163389985122718198496146993689854408352257893006298844804225040513556771194077250487194645863831222941973653500075148917974230632124552744214921148808890783654071634980404100404665335570552155565170081191138051255259447102845789848921660781175088730543321284895478522783564575850480755666714833371089090962886744562269285974299603121802364109461139441555930547543206775352957525687755726874631105852355721430834893810904846712521978729500066140140274812577725238898622791799129355400774919582401368857682785390730550630529487836097978665032046804486780593078232389967156413162304655909843612450511491633266747376761706392156847990813685470566144778174006956654385226614665927580927657863064911661008801485605767858358307786187038226554851553064568237866945530633057823842361303667700307059184301411190008760369470028216833578629871359655857926262207775958954029840178007067518460935563447534427218289697441344330232379819575755760517010565975236202210607835280085218150401122339738802982317885898042409784093866510718612760160378035045199981352025451119680176252915084764394825856303797384784002629702874704522029367313886857144790380781076457604388774271213054954753231467006340188695184630976543694870642807364277551311367905636485568518428036087411577450730120804269465734633301660994317641218521169590107078970112573042655449249021525430620965719511985743318511356268773553522096932461494316091668419506276695971651384061865044668499068445751664480169935514580209472427611994582926826256251954208176243342643731684015329487457512295817911172325606287542864743468741302436800877720529224448607250789972454361512452522369934273215024371441349588810757980010063139697147072629093180448763868182717746686818158758151864629166923424558608467648770268721084926683509622878589586997547552612447207725304797565180560188048257195789557643240640481222673538496551491142336713090462856322997534307431893416621176353013797954990068784261080903486925170730564060266974819497404683850891518572959043238262077924640224794368231085536524227935315353958943589575332001087346440637922495299249764050110134628837514261857087358283916083838765461511422166249534812275100918100126767717250192027701617661873875908723092316883157225237355472455039512762152541878536011219129765117917534038506682068233773410894689223705788376752047588516937726059836268211710545365003684035629952181763219438859076706449112069678360821904114493165391438205401642531014711973010527691783099461853032719696271434166382079716884742829412456079236279364316401185110098803301386353860833852740543319184019796863375973970158054191061244767092228745789641655445751878170324136670111614963264668127610271268894459906423017732090087389116683906347071598665110773624276942311427006991018592612054057678935110902809599785682022992518544732685529461544647518256362410251110117748437953332594733924736535860138873245650154264061981904716960801161804564210368766338685311200741439412337185710395634392375601093137722677056547409256530379977089922210799583463199593667687175786958225606065336229225358855269838301816840324733770094271126793985146489074400479627827244150944579559000852033772651836521471692512913587617112705625335129769319070244433277208656270015184984109242633605299554187694315495732151938572377998376562139569631315075872159966568654855861928406471799026519845467437902234044525507148865587454959110488621260769609216284084072349246014653503787241163537904353474426730942096486244353068291591720831914891322546378430837040997085095349206169533443324994806516164121590373335394413592065307807966834500951973942774690729611801854321873687622371822619806350549234083846323231004846003218290833066696558964167190140100653426269943392856296841765841859736099610555266747581306251601172876105387103292746917241767364152727614270607727587947486029435086784244321163504280742902223989499947062980059898909915367873053331634141692208944319363240185486776580840432683191500827283578737520272007397224814947259033330317804054955621656333292152657839513588755456211138816407857819400190747234059381844446423257600677571654339458261601833316015801065720999031125789234149443476055654683234443253943800889994237964561161956147317859109446064309923286807935353972776720636544398235539134484888802738896126128030118296408110461478335162308987066212730741280990940535094391060997806624497002797686601254092690681020996888840334158337200892328691934525054773904601108528728775376250241618855409534742848654943228284642373886836985755354611656542900144715633113007127161377200543055268474605805707239215914476650385428133278781105484659094051143419221542808683018624184882692198363908076397231200376179152960031845065554698021035353319153438218103332178781872078853184014331453065589627887985562085227938881573492186852481953324797103775586430863085917960378208492677410289539344726083106040964141701117131060605379806213344223013685020647357224608432497220403660372745372972451447651378463101276196148732025760866214366248463712079892717351445162446448220715335109081297317168839516833011351384316265822686466857928178409633384747095481657194933030389765956642914837955408261907669262786298408587275730150658005090637768180135535601206268161534263896599595155455222994752431986951385872487079233171198755586742735227421003768923320608807559666402609528482894478661419979335599097068888190949964758013569861744949233349554367890332492608566622913873384319686429719827835554804588301442440098797338226249296285017943123779671796426559540314536822795593267422204378232617340945885780528751424814557150751462226667190288089847327589223619134775000927804011553262278100098416618020360930609647953240276847115375408219005098659251291062576025012132520533580449851377673850177023704605614533026137346489915716453993816763225072671345407659264171672754371151880522839907439599132303077596811823509716972844078362942799483444172344563200190890815802637827932750984224367170386511566708379502827138645545483614874878191371498722993207940777708436829028057311205587441675497776480474368623663533380254583815286270892039908070073661457140507394595829473510697292015925423960454315962964174918903684533091574836592779950784877451793735546718823201387518313754664441855340847671595153674034576633523688394875724906609508346294020738657033899549696115276551461216562247706354476588940250389615721449135794154001733522428455762447859347335085434713328386858898216713415098950380528050469009563079661808363961135113380944705814911439732903530838729701666228614710457614097356497591599527350085689825049210186948513646283159031255565268882834994434402823608775622735489457549854962747759191569344846695024808586829521516544840785183793878455548078304025758792547140693296967261660161244383780019153153127419488703312423122420514051887165065140154275815049153379569345506346167398158750412968676761805694465502278693476733331870282874082266268424729464238743493857519137271933439665527247686183614820066011403434204683840820151989423787868461554218925254555146684429897908364796568997265947238179448379772617019624959710705892115403738820935566482074021671853423243100699901958830329431121747367541745608834530127754350244386230921924691618251960422029559612604671546582640969722524568181855769770711779105239732924329980503195366385489550712570138695174048263856235343014797044412608524218470641788119477632917372372255929753254059271572870053946191356139071243644191993215931253349551624262666082644671065669033933004936749759636661876755472579686307683248504189979841975634370627213982741888344356160388369259040095051403391431400487984742525736855289070751199522597809522667665046643503411483200362036317975485697468686352283649991280685518469623293380090660387569871183569024494266583969580501901811043618946916274376354482534542755818387991705269479512547828403890702406457033019569708456128507436939804938966309680503706368971261307946721267998972841019263854014765652043919013567706426305198663116695686723763879593811788429673423622009693868401973086607475555971027400062055108130381561700196696210227635916868993217247362225949145249523717617645693894802235904241099381895892390433421309324274782591355031058533012512998841803840605013473917368586514887229444002663989268184928801937573500538644021107806142437426304552830270867466157396724818232642677100807337519383349213301194120837392456573142402052425600142199343829147525686268395530637565480321317938348657797837562502671594107344595401673355775486556195752904102486145894878430222608231637079339924270724104478447333068645604073519912087120592039886906746600522810022637062767506607522314964013734379850799723582596181499055201271580412358230364317249419324199204266838291782657573918079576233779807868032509289509454902628166237846475511282997233456138033574834934171662839858427694669753574390824054021193830030751884626069490307655923070469144777294391720496237627020358686882721030994367602402467391601470153859418978453794499761203245824667222666322803585520450428120216146653653153374038873950459703416179533092903275628013256076793658532244390393107939730470414372509966880728847967784610845933566843075620680050389531807382481253569417793069522900952931282295147721336148515556050259356067052235140592533256448725521272358545466800174072082599804982553026737916416708834516241576120112239512957437518441538421230893057816088822434094488680559335501754716564198337427527214861258908747076440575104462235864883567483212774499276811760886370936714321505746425679305676567932537979456319371148166420299659386087741171962616222742695632685923020788269862258897988190449671797005247753687902659371836258177313680838982573469644998463446133152949639836458308174722276410100013079262907256595291259588501996881772652381161350768949387101965589354147712521294134784588192848204103136113162222942963001065446215840601150859410498227653934960563674337141838789626188311718907898664779615562872934918828218132294624897268100703287554321207799364862818450975368927134292436015714230471852297613395303810556905082327423598811293143267273010827139439519228678318403081093050592608953769685988972224542884342833311143136109870035647262315775474865547930045696222337897705597514203877272991340674054813291578483404845279410420735132907077359235310462959956176024539686873013635056412234156225976897489715530509300283087574057632608959225349729414724133258594884762008630476786540735532511418938252614408321857795025669678632233400564904213459283008771376748908715085932089252820505002671799316680846731344665685996966992361202683719305301169971884670815110589626415352248972851421096837465372232092536613848303725744493935226715187782393054857739037729763682081253603837627870534640793824325406584411367328704137442755443019647661467558117555180926114928938349390812689680926495258421672384797319807852775515586883296634802740240680635854425883707999626160219413138713619780480382228760487890070478815347964430030536609866479894798624950112402701870658645209399315016608319408692719191596044922766087741656110555231380417937201808598167663099429436765220317890941913473244298989875381121562673527360351389383167026427085185202876012458882676529374339891558633719806739732574233510123139273816144963589934705616868784780280748325939325729234493758733304171250732866376358240506084316991601756716094769700568879777396720233634971987509504521177330672648017208975760897040919138215588330101174621028108997784867817866970480298267030960761657598219680646974117613378964565435301695050391382568425224217363946989685145966058211119046895076803669723510347278595762046085673230610959840701515626465067002528405327965808325534014395458649211013494550147140119870607685908813184788080508942306963736688746281032833205579829584843985229591639808683488782287316563445220188452782417433770470818686985132538052065198046168864989465739196494735949757977303171051889739125366110764870854276964299039078436781262596741179736941413016042277714392476728267818601786497517072051932220543983508155262344746318616911120192374349369844101284921508637123876232549998589401306165253728165945102182412535723884562377860968953727226989792027483914876530442255800009050914509187806359675939530150735523443578731058225338789858090118874875344310972985476011388938184038503729756177587881944976181526260804418956031373666520029831166915455999088795276501960732992841083944079893234434222210648204742375929036660361537818884008723987177978582694619710175900466549298670864894913695837609828522752878363851098520770691880739367038145280902864068681144119494257587707277205995891324285536287789354289005710036480524417178097983738977012366814723944051621801377952307029125802339582361106484682619041341658482241812902235138420419561544427764601871924534425192954422723386362201438596469810106128547141731891633628479529579544112250419458289471601620363694526004243930832953055944960211537232516735702122265933677204023861951790312878338901351763089337762372582198721892925574642127962976534053040418654310834261013690984095007951326493772513370038057761108385684739426790475905482593835399025396681313800341044864554885238239949720174602967369765888052860761084795974818487736282341820339941694097865553316078137766119458752428040640721103385777137572876922899179780885896276277044733027859449190131233909001858057837068512062098426791761824723150316222401024150616457673245437332623848096150535735469709088619445094169921514942092932047188164454995534580202328784890209571804136899995585572914263795718937795900486698229839614382454208326113577420150345464911566911206745276697673850052319003114903362999585272155230112878665720383354220515338394655397602913882991044850520663486883232310320641420833290117366266206057132241288241541202737019224545332806227919525998884780559404640120386165526181876916037919175736356471176341085947918391907346671634977783929565349017087355548766753986950884873204128302070235741271601116229635276268880827539209620176737906922806352755481335723659162438531632037468338384472173761315728225815238927242170666911426008438808785039572203879718170537517413166756484117038932864023799047564850440709916100565194695187834762416600424802763024036522009536836778184188531333943944432825315414790283493768614016210304475122068883436470580778539287921404359156797797842628893372839607145818673739147031424112635535980505436194548684800593002480843059684933348961271531329952056944995604712218064768795443624472731179891620167203995227422951268851016260164595134155809730137988760801747900025409067670869432849057225373270778010020748498313293356809385940055995869847426999549216440346567370691940587538367605762761360464209081145284212648745998729202062472361702895027918288142270199149201616455054545146762178244072690697857175090271228349661215014867432787919966155600079572574666773957733137108074600147681018280947199015945757742722232357859247505044595027978197149724631704265902195293151088267585015039822924855635628401871153957040394533561173803431703695247077483783597528118157919210559886163396481041069271544425616085422383176512480679535573246787340276206550875034396022577662920984390644038052511978230508820562070190848996091480002724395203628902858291366561166372563639353567575917598733326561701395186826915842011569980895994685973867749063393394975380448278146691250354574214440926871753807668756932629480126437209785424278013102726393790697203563826569323027038501881109852443965630229846660193492215808952481319056751742887695917930685943357618236005245558921151717836541260332319601955256366533300576319399552338122824421456781161766706482796812702056859129710439255966595908299649530697750738631368769774074782950145824929061162185770627790514333652010873711830081190570706184584800896225432991987482553254892208012579264513313894379252403032789132081855066847394994571071486121434705338501853856022917756116319946608021006486241710861298404532300053210425743821752217353375621313816355456219947169771365956999195201088118941304705748152606875145285648565179576888551079330696162573527887085216052544150936652319073322141607754149473622423431291924253334414989045962838789943159720404907968715794975502725265963071326451220655949416145017757164458028302521913782600464285070336454450716464457587181683359861218336588308977272314439479662401790511361773862443143686322355791581773313901697267475057332947814778447231106054454487665423301267425554845223384878811243247627032549938797907361971403914326518711916712551583951074957403149114297893583990447813933018120555972140489759958047918226268109116375418043962692513873011474291178694396065531673391636694310115473778695752582805808252458183382208393545793816658359635926123906779457341196281486554579956056113848111071738499186675596356660828082826951656698021418530561787495707876494763039091818619814591407360359580529036291716707473316223251886204300764938275103145118254669818232214159637099977387183263684205887303769099587801977393305349276437631264674362726186556046911901423849446750420134862238843619887592907146949540540192302409588265665870192369043000710320967682308680069071880671632366846915953615672874608032392425816249746117904239539638259149888488478458367425171420656722825245923642040177362182179278390659778356045410951593512281238376523471302995200120750321342258751188966566741889021751886225775883153206608666538752755015474147184618207714107243422727267124762929079018196874685116016743839451870640684321217223319938788904473250763007289689563868772187251488121249014896401042960511144401564340107463033982145666540949840029393875650481687749505167989201112648968774895426210737242917138023178509296381931848334735501985347903895989223338561342212011330815352070473229747895775911687680123252459892922292694616960331738788265684848810963851273843026551786355339530417975432157832435840519786259545544891073581658527100388381272473901427258801157590236014062804932326358014124218801643483683518120896822236244660349979089299555582707906520099153981559986289014339028861022071782542684373023905375592245355369296821343986900457183673743900100658430406631272695446814018994127598232412929090885672477013916618542302445758199672389807144949481194244826371925151654351870176541610550347168559951445068057781019633447601337087734282235881194810040159070282345024733220260011933159249717947473688950717003250352919828143496953163640446282390172561260976675104970120982812725150816264468982861616005726058710911575414011998133276006984385009946965651483422690592421919867100189424485454759226491919697003478604310207674534672766976034865323141129567654806993984778818680522338602157236322168831934215342011963624708894375146853858956423184620753124404318558461349592067244874501084277486707045476022867164383826856361310678644418192270374026274105701623546322964416414228788081520813051959319338624479632549440976409358268130180340093326462685183655973075211186858510213657723556222044583261576727685658813958747385161411438766871836907205232420449482889215889775890462839622962216397241483847772001782066637529582743072272539640961593198188307697875688107897095041513917324110431948752884564852922628485112084700432379355021286745375225221563162881207439634812771517105822009624926118579736727238503814895281499938000722163793887705436949227744826363650434274863814625906803993848699384243671089546651869480488021203255359658596105717862670480593272120883776593325575185455980078776734003041008842913160710228663440274449580618225032295855693555709160694502647773332362774989682740144663385074798755939165510861034202823557005909869564881038186077174295334742753590622524240355311657035365038192442522063467730722997722687403354528895638332726827863176416855237244198422914316162351996617595460465357264411484475910535130593941507230718880985964439819358022202795032416851652315637908523714438131857922206688909078023130848642665238102376768910612504725074928847158133078084952327129521881106855343766383277355477177239452093836154524171461423090497636413540210482412361348602879965529101623012704915693685409044678183059618967333843563789222093158974033495398419506000041386015971164841973640381703149842543628949356420952778761212129946481823513014214095716302504769938710043238094404136229532663601949119727176595281155066366439910922539848256893800241684338918008020761606526848921114877431050581717537297520111999655721203222210553727468271707100948726010987601953614938822453753747865259152358523653074679357170532891895075653660600374117493275377659856744698835925522108970509088982761617382323693461428817158521363422539306317128881667356521118407533135771649994755144723887342165207630973002819657808121498244259788022608811006742167929444209189092339578154612364569396041367949977124430391488663989079504643237083016296447650213039954644229703100755790171111626633620604448226236292401364532745554111139017630052087197444101162220261210383959313069372632871981328799635100464907631902370036285808693023735011775728136706501220989229199303440731259322644504003411270597964691162686346237896537890370771507788599522314440021258249510741426994473286470376309546719046654999545025408547817298160086303248994346537331111038146392113724681732114487238877277123880873553732366854781203487935113606982959081272927755759903426095535977131908852596090152865754099167008430817244682939475032738259807459371489249356596394254200039443723188086721173046637075281285771916983658309803798944723184608983969167782010779262655476151643520536254585267666750688622062277338304227403870169629235732709892788779156512926768407268603578674671086452659404113290218089250792296946796387584635092971367440529465060332665619500228255307857659184273271026410685805027018804847145171121804752589218416718364380356614314796094623347734101428055639199757524211276811948391859172741892032143797488812650911471091162624857816430296820645772979893029023364249501509743000847626207217575346037492107429605255185198980306016471015818241640899714438218187102448985814136596381185922890380810369525465069615466717878042600018600274022796973516997188188324607296007610222837368085618787980710700209460339828046560021685053272903615472210737222484728697597157004994606718549048270406061416960392441563228105418305650465913160940210145355122153966986443160611014801193541589349105687274376415893623202799227311985870872119933323627154709129500711999650423267765700782533143287364238390588419883087431774247283751652863645703675857587671200126848298203419085720762938735019655914188434587344524039643810116691713901758543367441124744864010946495942518174933721816370408324208887530211103416080575100907511528271559588396365909092797797127450558346000324495333716337569546048127611478169275606335016665032176167957944243023932854706190105615280921627940861397329815942695203332485365383056427153010406387898533051899233951586713631209508512057175489794159636671706587792958372772177244260841486459976155007121278748586266119105101191685162989741550580645459180334899435019006743790114799746527066418847367068642598502267126246910557456193742901991783512381578365351153344215464282865942301518696393708068148225630023039028333100176538900000662840714558214536235407451899569208441039796609816112622097553880439538090347944725051173226352722640929042397644593552949369004716393992418750337922356791817609700795162375922721526510402924780423577240202004119998756866235259947213551567060196754512226118506686308648712758560730825656311598228230531815671671384761831894787629587583156843770357772405907841254978358641950057866586834205272897598753139132842199092188290649555026379334373752272643805619301427586467138669934383964768251002510536400980528671482672357277334612997534490730214271485750669489353265393270992912510916498615318688176269326417742388201273828571650866831928468639089248960562676244330156379604608525009262399406006717804569322189867329278668301504572799719855200506852455852845323242824858197053741236314329044635194844357835699225172525687985565266776501070444436599654655722494830099952460610375881942526927970435372284522844428575624514027184320621951148592042331160761686351876258375801523100249207060968948424488792762210031793470058906209032426996059601966127438669741017903797656423149749734215953982150059280386637243928594429652132499167038133255772456228953113253187447553099554317550619945428090565319199400975977761339785706260614291122257636487731873845445973413327116616230394910543861095510080430663099052981303922936147201158246105249402193085638704719156079973638157824218634017314393039053457115157437117933243566587784681246226888221063984151075577034749119787878107570962930138254272451801209810623684116750013531637228015226468125760673628319091879296556374971050938952106716106653712777335897582710770060559103723214895303922153313832640913416951243924162133985302180597440420670037535153949586905866972323306607637073730572199066013219345833549566720906880344504580826646735240549341826590009944331360933065602324390763810590133198965109920538183646994948039141181990209934785621208344941295596119707475414192711214800978649129575338104174441505181770006374879220195156054190506057380185178532509052131637099357739390142229797984614125429015186345384023355067241202467447865811086408827444591747242222513821863243698926135681375706611489788616489921724070534438759538901429412728888471664075047123286815488400859806595753406516958013677278395218228146101879499547493528897232216795629131999325038601079948979576011676612451922350145972821838709669417322598706324750703640191887879397662971841880886128970626171623885627432366524880239093113852247627724503700913179595943553342488831509933521030069504126478051193962102078669701047595354181969427643904954906670345826024609831816340355564995998675599091950028604427923028627724067447326315660640582394884511898513463434078777807796796491070088679736031625818608503585987454304832837884030151956328550903064350071501645038984789505369891450487573598162813720425897842740640432692513707795670317397361434625130240729342373571470364688617524524676469783732711681937371095844402232250796388505014242890416798199438424232501365832840916127249097888060119946217117522840985542236713761911431537712644163105565184433333115495048163358192709331833431693657828292234863649745477743997425768303751432991237664754496660379206611537012788628775517754903908821435811737572683253728334097931474369396471331190234504771857690791341076752965522642941362665574360409480455719550960736126826836674009093271036247511536470538823177304461697147399161172689757247944007680737749531166433261291649375940173697362536085333281635322511568544442695005970084057390219225240374129438316967447697047765071186413630034035734431420340008366317814592246282406200757464610725497147598956136941625256972424256345784870442912734614810102002889268757517531711826765121590005600584528932793962302303929288526985133087745765494588194386242633328397013745462915044334719733274456430944483918699145306880733501590209821470187292865708658583550876614828323557441127269934489735788316358504103801692750795691912027763526519308196281047914111157827056180439087626750535276453572210566246069038819291583028152267951272499474705862195218545175313676008740195515895023789273732535415519108497390589472607965782298430023568261974420882050044455860925236958218152420751755063632575339706721394553072679926057123667566804143256413467029798782873133774039742465397600993477803522733257715084946963014100811859871864346683902414313708980190168782988786279466750132624778202462772886926074040723509888881479136379948686029540838228127610839423841173883293914289768524071925954963232442036788824199516158951133208430934112517863010819155867254282023923948776652957639582710984840445348088168244554035684107257595466053516686315313625920617250127558580464083076655152727296483428802862401959399152009158524848933358257724312506972338862263408654608349138383997016102061911282548846713305788086785783470122040900325808559261903956892232419260451016682962022136989369907291203852225804916336779792722277647620831743443617707117827112910596882347425166221395878259061755218667225910023968488503025123028907980452302195108417387910085220389165437545011613963567762418213791561371314294007563653558519459392326574396803720513952284642286355575652104317957698911715604645440491206039916266760511421434103709417422713402341425083855835167089008794438707675762776661321427880047421360921756236605463131999720980033690329081300689621860613001147081573299597399323400071149437789170577816322541098299453631589641077146829758746788566343136546644227402250533798212736814552104068905901938745434301056686788335125205207714233037793189867483860837856902808264301812631644363334354272148392938388508861662728082573006613096022974424313253972362342505639564090583195259464427311814210396491235798632830596652011613904559862913877597575086964053388893036358277045885737252449495910817992030692683617108539938044194841942812259767268142520660031459997882453962578599196101236167310144385202404648942828797679495644177364916317887439210208905136421874573983479954505118906456785561367800518003224747356820819168590761625949752958785356929292349659433111326360782360622571724231623128052228010196350744569806751950563891706955636294293904528157767448958158849304289239447981262747996689063101240336306240337036059621756930832354098820901507064903385458630698517107734777199993146425004996096869858118755790847498450010991823544795539831383991631684626570970209145545462927182645187271997672695236534824330753125431783031570751680785515469026001066185839037575383687835540760590622688309825243652539399841407341451019426471608253006056208530714747494891558383689535050978722980103036239789519450774204969475874725780701670921488332532976314973873995521048935719131169547239772457873949564457101079175393122806340777780846760887146477551764231202827123390413262007120043105576968532809537898103271725266160178531061706986338251394881831857839129824350277256742337304895324885640939374376202088785871511667997356317303701013206765258491164993933354433448680373934883364335537277912509520359293972725672893115468234895640682272675562417020934977893604917674273808754900899122401445037863809177442510620170605533357997225207127706346903995290800347617975151667790651270504011632628892167362969406538345521578403560915489194914942675311268804096387812713875837178138030710444916138341048631222897823591517115331045142261079046655674244068012332640570209367856952177466351902797167834237608427549308453307126485479752721892254436586788007565399182582646551308440673069822843432763126476800601424605394148946719933536216202332328962546540347102399229716919529268455996515357043338195963345012320405460631137629178451984796277322786298526802916752575324565669923059903692755884275909329315366577799994724938521099995842558102093627068671486013781348395348740658649566988312635827583028220937155603887994748904732966280557224740909180130926811574734094723818822313669129109006781432469371359325161262843705026586065263553613631310067927500868243679179233800665697761713824295672910361094126232310336448660022897208823689390863400367551176996268602559675084260289312140325720868643247200593663122631857980081369263678287932649608049512128659074515862881796595748467789791439126185409108859931707744792599605836432403925759677440219567557595186910845021176219210018376222517546121121817479327035245188019752915678896484171049113713780238443882216350776885522266076122844100307524257568138860238486246528841388190664869524099819201175161518256822025405816641008113499162655934652429419090387773974284903638512923872520729870670812776136439457033734028314602593675345627561327737041854982264857649091190636974016833019439880867559333772771351188304481497272169938120027117205317902628153418129322750834799665840166464699586829154201932015940106842249944390379770539379438632985759778092876684817550097784239241870919674667468921760903763890470882861721122311777463791565816302275951743872879108540437716773501263173507113274556755123485395929601869179849901521794394502188424718000213337225399868664858949404178307446279442335626504175342708371938231063679353992188807777854541379569384958064672950528928519421464233325247414309018000978850478103905452339440670140799868541877349956925969269507483691370983561059218026798397994488396696817860697658255423138335883699873186125001133635000333056660176684511198656737669557409787826477110580254522598238062807535877313661903617085986050385386261174244093853283718569818649008313119121704902380907629679322540263065667394673139939030618577995984674731595868725317803811408737082594908391597987450629365601601418491326338261559040814544778236527785878952055880991168333838790298097442109907509097920845694003505612756882734041322029384149879370295127297364727575498940334229661257710651018358350839377657749989816312680115932395330952391747115377201905805021250368611004644104951875762017687712916447919004887306249762477367273583088828754060383358546489785880500445504466983783255231466376612851468321954267240506388078686601034652027961486190389460331338550097482518296534790904289145144127213117773118073625977271448365097005862904025221044472363026369270499672692240168862885178092809447108808369994232367350522358739007412220709360388281462444319006964144494592987286487210677256745456699112265369625217395836606405968759062256162395270394657982257685282689567906096946267926862390130860290068856668575142177314441446190710767988640982359838104639001170056992387122988157755176089513428637233308179642746642467177183832932885159062126163059705295245117078765526250147852928361036845020778848307855567642256085459623998940471363629357018188158015688380209640964453347360897655218541044654361211489336804146498525613082564323023696278096786577062093974476968483656648069929969804184815236330256352470149041890454438313334528014100279119247661891181239200769783495499276237783197151276109360036160549906520267348309261023160473332207234485790421640600475628506465984137131674205834739027371901961579507811777790812483682821574140639754075675773684648343216059049920908966403908202137038691538332945453038724122190680659140352600921598723806124316363086796697523686040506513410134130885481475102712295120754311684349604798451368538106310381946846422400714669574099103596571128065226563191434354900903844403708379558886344839974995042845711239250527143498043237182408835698734475175545244212037913954626157672578078436995463339116037911853866474819021785960654030026599143267220937403499056619825157641323011376117056411481911019355621296801119327969331807564942770955272017131709476849696849338113739289896566813605629216907465975390465291265232867240422582749969949133433659935333286764503761851156422929753654554758679911161116913170317754232293321654449752139498800771262982816477570230560393062997178826377597534004634721393643016672038168959667456511640626575442417308742237394215648527739728893436092590935640378573792844758247610305775475692065096991667426088839731401923120688607195492490179625469270806432378567055063169173312201155610224504812709656765726655568229416107688977080761867039354289903888543378476356898011763712263661701358087566520715258279463510792809203571006858871057365286899321277202499506242920232882516452875663421395277526503011104683781890710909790352952492083400013591458261654012963779061943932706954828474136693287986128330075934144455293619110210079577227469678965881878761372798792354512118701198282936466770290286858559662485816448205911536403461221173125243247627244557338388811893774389129730000594650389034993534689254595723719577510212334992400748433899463475285317524390173998299628369340289926440659430671438719455602565232193534174533697247500606967984379728707504953365236774600215424201301582001314447572986140632546158245747815872543982710275528902848424364045534205794688102199519920247373323197990128178236958370399825127864787405304266190709245247696127396279143981486877292451724096400359137900178990332288125565795934491457933878824677627349852484153150560497259906555424346458235842443351367355045269122414079249814985644984127550138598991241715995381857363009515384498642402283857817878316225357385936256741285573661607511384422200402925617893313793322008046554735107403481597049159728456887569064098229033811025684827768967224201358068415351690905420144041331028239148913545518056113430973665717928980253951143946567889263166225497167379232265247057564562492899812409451499298804115290974652949875515588456924758578382048642598792400074574424704468721780899048770623775200520212831902608968144580425693922816071230184269195874433820712166535292471559172029188923150894764614386985787086448817546556869201482143565542993439724738401096695609911214683746194239101031014078177675686793354784262033721151700589277999015946088584146216815447650087751187618001005593367741687468953534367080257015385106459467654548251656152122594607649741137244393711208786593042010339815857023822939581374090671271575382586567268613816814673227966704245030513056553994622439878733805499966890611652981667120596090581455497348767841520112338926035856543934268609825800839051784308139121076433629446871594277068214993360303540533923736919287068091891455501053351729441854333404923684397379207168564631482818874177258213318047393720824651028728543666106333568866537810499173842263282251738538281330386211742589371747798473858349971857086228628872251285587336432705093872178444237335484909403946512331899615019811422436967762684195664626049981287545878867581086571729765920758656820353206216843110534819054084663303352848467019132243263714044587315796894686599307204334322682069182460761467460195103291825877890667867967393902669513386129778890247767426129246350297989052225265864848482460826694306968371255758200191538731776208247644406948733156334543315366052403731255841335438988843434646449345536071415627819029585146659297509429021408433645251949322668823550634165116597579579796650136691506368071142278910861681629064302673560484546327296615735589964487992464819103384481665985061455046338573030761752033086782487353626102175509078471265475972995404914833778804099803377595887989865359775655703861092763244063566722351266008688943478978263258949079144731262066168194725296805797209485524479123158081895509444940283042172481888762244018292951070413041100465711188940273631846696515070643984130543698716770825140767055432751638195368115427431417950540114301950946037475268138113817004214940662261559666816357704489379344251895031353425031050182553728268638072786224691592988355690701421899507374950825431279987820497947645010045989901181851035437577895662330424476469411490862150366658993947381147039855530985789735242836267556300444909569940321457913065764467787739504350128797187241174741674921219045643533580766472288225653236066546785294115276697271653428346872578879092452945002248694920968774198941039235473476748407133634886695514682752299511465094057422206375773581156978774000932951479102714408794301904852096936083289824200552176748117040844473453596788200926900840270448120582871903576193231544232158210732025952931387640835460607607199184025080785837751529273839279242065866615895240226526882163832781704348145970131095430090089382430717766053231571621239480723603827281046608198842894509212012521136437580210549184846387105173011858298849666587964623540539452066803402134384838301336106921791992482546974840630586126917434661628613897804852854349926583690794646499373322782535956218076295046286156231470182915446963463225698620592303752307822416959436197601814015430431027258268925743493931620182781152859973488006128557498647887063620202527435813578230132564579930256652347176821899653333247872441678973218613291863999810592656394394802048552069508383309008985487545688666060233318450818150025969576312650703422748336428983573594821412068645214801257446442661113678803054534023308376431041600365994623865523950843238026552350622318616401220439671427385749766449567924904704622881786454124870859834576728335347850212579275200273189127159075960826586218719448640593461990202619866705589516397723095609666557114089445624480271797060657015924355282597660748704498125751544072393860046797301744634584933855699462072316224357006679311938599752911139424157708660912038262227796403487185600015866191418925750254270572479261328951608970653989487636476663876661703932312226795961840094872584818792471163290581778350693741503400708158678488398125698332974417505292219606366282738853488064635972610282164858617185863080192328794185604665640323119450621826571467210359501321134386752400477116847047373382733067050628868155247019217551953631229739329460528316898799377120827032817904081138185743016961619775805671397452441872446465714150578023251308509984109231616797871326325513953582990724041971687878576089821438984246319162841041628136249710282381331925407055947013571835543947745292605576126036456650856415888254448901877483347563964676609968199663920190656255234198447685128980133346308639935185759311935577692381550736566854890845869451491918512145508498752521322863202732899167232502547594556689665207193744911750338495861510281034361211983081137855606816243847809745836122200760237326013869044679398491181178921636886499781220093960435843283448264695772286872558699755088335773312832934657068183407620505066348944226414171174440790674584551595864735647865224538360315807451742893377771987247118972174313722641187563014189402119240957742758751456272938876310369033539053708557234747041848612259477052490058680023967930888292349429619562368277265536655877489820212804338034107759234908650536968680302107349992034028204555584277836398152003249800005996516409557515151908677165082398021097789946525011867349924609900743911163752724769821672985171506795612785581227328291301787155575128605622677419703372994877966139033384378432049481768347360550072656965353196663423887385557942453875582846673476196995610077868350044299578276757860395684236297247405122284245657741688300349001985199468953652966715410375538912899427042637506583032554302717741494765708046798981456224026107147126346909851669435537348547718512741009171269507234345641733166301731964044774083828432568770714368811211906299354299588322129683991646293983148689994964901369911561871205860044901800706183063522886631215041239420528188193267594399722078722138838118532798481101336894317214322489650885406409358002603937538011798081625429593843238417797831711586431750950925401401452805023730905030792748859401448474107582239626442396761275945331576548805359742905827734202248314019852813305011636182958281362064920662062146139698732357787383932723532667442255229148274543502312791606036996827210247497978382201647282323062716911719336929042210478033814563008950840156894328236055573914727295330584113496066510732789982566731703897356074813263588757279485429883703052079945232076215652814018901979373847507689991542481902440252786447989917209735159609452878748557031035445546211168241113196062826691242012089606771966192720103368696894225121900074732377693685858059098650802925221721373047950476230824945763319565363193501382825105603146856755877475119873585350431391807736468096291520918400827605862546606342835567219402689594125097002770030681067540664280856750684408294546091323030652239167989646082590975072997954594659162531390353037684975883115196201920855029208913804028618705909873942789512065835831184683675030242097679694910748363073244060144291018264492422477299914110373806930201830057745521481377842282913685487911624685032124019482170135948371233635909535070251189960415474000962936980380646726423432389467103905807385661285986989821447264458674687526894501238631983047377930410454031420038534608595243097405219751995678592654005321767651195247362737165072741188028554386164944931459643394214629820013623663162150463642618062114461494975338832787024398526479116510448812266823828702632243634750165424645494669402368845948792623073722875032352786328751172855827606612347197185043488865956000165570698850074592515909222121195532369961928613377076011358571267191893925937638351681711873663647646088315016554147232800661338724651239925952847946840803108644322265522994029876466702318368100607937660368724822290757560133525143172394428610618599419533301116444795573740194003122979250770512889407767252880875292436448222851043077334255498379709411565688869466080468870133673915066442980976931973428850370152545077900853029155382931963500233755417515489093931068638345894178649544813646789235030646717986689881972963473964434783875898822843768205408149645657186503440239215350766246206737658015865443550762582372576406112516053934546923387584926992287058774909681907165709762127205383047052898496116896005180373002014686184084586693090016930811897799842267587480449928901849248000629589895447954534153236754310136602457491498342980611690535137682416573279132502614486031400124268043015738338432779762947527486881393209322338881620091307136988292602616693407668922469706958313351130559796516596816590388085520698116402126433133490609375949354797251327650579515046158966612939796703934502638444463755246504904215820443783986727555327789532794389420681351387906424097178201038261417822977766068654425862609181612416592532628318870331016306666880333652864677850708443458817263976307602644219824877738181167833731964901443716356320258967435534963077835396143839071275858970889613373867672301322303619687834035803180903000076401582416881194871186385127506736425078961938292719479091534479081727915246533997428436641650509975520214638710734953380091655160876516176591896560104830457533208181297607788310028209868546530362102532979444544748884127739053411850593109845739007434525271129192622898586122121728742241928929916479729174228675974544749112230828231219746322946902803127793147100333721695020542104029219022544200315254019953166653147210703918876471316647041776521248358051423530973928719265446745959036627048804903683977909633240235691283772114157648809938773714946461193802020496579812288337703214993418564243940338410162053243595808415875396115036313614714557495300984524496851230563994011534552097295954738203395572557363372757603804601633780577243903387286313393349297455262613731208492477013718692057886511180688634600678463631442884610010053146825302046332449185858138136328985245084495669108122708404636136234080139345269119289274135514782497002318574825014629682232794947750949093719518693464275227725962538172163180505218606746568468787140255746979161019568710177070795880137133150338712802417739134924248112717009661288723398177849687169660626901588417794833169732968065448565609605423160445169081306165615307136358966456084293212230453215133283235023186804685056915298956714055696234940718406696730067814915612695988073498495864399995686230598989886448082830641461130592567063958745770157850585632891170798627903627013308967276298568791124964688274913494034078877431153589078962137659772975268298357366410278007557280442670625413887766308055543576888216604319820625344282135293129231003373305494694629874872341103273041232276018142952309602889158321464343381029504796440008067564664962970415812790461077288659170533226417824457506304075046871446148413052428116537465225394781545922367235983753225545065243137454665658628473486799441049146051267461051076115516199996016044564401428299624787623775900820057138113505237096383707380934069806552222087476487112785883123943555014081922473978679059693863997115818409523059080857046725433640100614413880138053388968942650273098095049005334658964866686444966957583828737476220734439768147003386185439156842529349616443263911457479387029445390327981975542116199654093360374700266163656079033487477315771094089363714505633864871932770753626778016340271083138697680510211208856559084504469768431832510838908553895435827632599390107012301595440547913826865444829006316685558889642316908236861766196054881928726787447937087472431936261150157167783106582603158921069206413802384734222157132101280409657442298406803020216009363583006080814298468314002872946699942456120907421087872094014278437514611186999442412416135670886243634776114930190456382244592023686507092661057308240610397133834934603582463125716403712696902619188786423963246389464072736127432267334443157147441944044019206212641886004269254427824249104915863344011505742704312326686713589001799091301038622027499452368282777696739446549132620831812551763392265492996634722946812066854893853463637653952242464113325490619499452877124792674450456532863699236767314916433001024092416026094221851220060579247902653419973416844487740565781827832020832122293018023788207746754527084967336090736906538459830288815113746326809619101308995618908428560234818855531214499575180403836418168012859108141321962027965652665789341095164456085366048492296585965287317210462177151385751419530726510101702677775252655364551423063702053839297783981905114561069296172730746093318786714095118283889946731601685599102892745064394215207083001037185468322338786111965992894465811481941422613670807677065337683794031895226034187668995838269295117438993136111735885117449651917200380279990917814529110401076571939967962816236319045346641645341042949554358683481841026481766352762032241619845260132397360476412621617018890261502947219266480430984895873024100534982821873200676905538553671147672571543642659458669015918026870793180959653275865074493220679839431849747440959198623271564372961434153456958450156227621731260819568489323930961211881044901619345871656081498000060707072468237404605407999158458838636335934223006860951986527144413029983723781253051654583606651975383370825997268958076526288847865059262634013593306980052133053803199967679243782732328893483076344849292485331051755109588933546528106786281386508016140210144441662187817727188835106807641625419561423635663109255038749890862364962063792956711107712105178792372704397369714208104775310803994706502225614599587588452871120650121690500896045074924410717094891091706848067496089971700475411693489233851352207495265439472972700884067035503503699526732206254835693087686992020817843342781851000345633179026643533651617736659128554919316352139681753935154229300720850295060842777714449285575264673502705788200635606588356880203307758102793797219602547273669027407720390553093431412867564656992472202956087244696894269171198659414264133286099278369801918830616390877414524850879494175954214808663630704514280934739638604920147425994695389810805115991449019531486056609508995408725125285028899608053594173177402368997869472569469044314828074067720374540314526886644427986756860647606077313713331039094165327372475177881030508583354117720749770085357428184279808709398232231722162851722333429782686141833767456848801229773378474221477230417331491635757436855091219604316897245056133684336535746557644537887986356838413941975094795132063562364285370654695352485408045170825114790477034857560108651122223289059195476307941702408268206512122758524387586200482050441641511613267318580316413644029640649785097773482883165002547585217630596866973052647209182125921650540838688178066005063361023766542005976134675352956958672395790051692078263866644332157669753895302085317892066905074368824924385319877372116101954565418261220876133247127733607961037891703510188854930564640857486574999903613776223535335454252388055884805726291156586805935935448256866047246554533332358798056837308514025770115258689714132065465038142267729947874554514825189152135793981585873894120453644816417280455680249793274322520438718446925284313834173845149150266804054472820974062791683803976171203634627488024717514218886531817830571245516454989630842533027026567954293922890787736959681962104256454494843221838823344354633198499788629258249363520248715493265569285828023126678141727127508537851113620171389888864562446132025290462062267803745002039608161147761187621451826358324696879900623254479903835193011617733927700958882123810228271161330912522131553374280228261395656805865765241559897809921258183979214262225884044287560728953732659774965624872361937975139769962293667699731171593782648767450210719146629935704943680689045040279856692355083427137607812540967270792762053216996633992387434698486808737113731228287002905987062426343103939908085993655535029393259999580842679824690865522066429052093787078356713794752634566737675737859116873424430873570996342799401700194599742048072678077774897768482287217235553679127746705978900746422049303983759802609270654791552730178973071113461435124043190824336041016237757538404304221344369899556179213781556376926678582874189374910741485016772791508083870760220603401900000486426953205813276958492820082233527620463899997422376699914045943337650271887966131195901942560736446293714316363164534795433022447191685644652877562611568046847892055351045083394494712364389954946614487328211267467304880178253948014309767251159049426050367123407199082191783087919518024592967895546685851832830122382463716394316952983244765074299093498608240460782502038177385555758938324122974230490968816467085142186205587438331986304051109861494896189613339840021748212293724019701407081270275712801770527778411395887225005481041844336333400641766488886705488500815908054272343756094641327926894674070788145592700980361468645056965471571099694711013629019476755398808250666003564541406941180154705621201828522726492459647871591652588669941918984228776733677880803034068961286589428838835965075778293566242421739977306321600164189591684276106557931667790315833484953595605210603859966751066843780541824055595818280900428599563902959924403074841552478034606701433321540278510763538509279472773877681378029421703114475720555412417076652506155029811440995091654053924689653767597026100212697796715370340171362302524064812440751427551141952734106328430110754247363322510187721606684122189807290478796350176904585458029243676430976347792732306398691282190480446499225865115212395122262118060192923414088338577407350043018678204065476860786616902746638600539431009567668985905526658880049423362558739706215788679149119486338188113836383138577136929028577987638615232781535487448621583245955686552250364127399679031728731367303656696236389095507114488190567746661157125008905061906958848906420934151365355973663967980709480841121316874778559091506869863358982794006708441189042385129213867992443869954448706369225364758969223782744785350769007431052422830886833131927352826109471059894209331369314328554734510077277322262427919578387724567799140278442288759925213948228844209295267567652436918253561302774713818656453617594906377271980710280786510330770234023878385567260203172360404168113338738343917761116797244030713576087187903968256913796659272141893172318678821105514886360031794479846027890393901626392857963509524035351545929415302483254850868088090953338257576195779609742648972865396965579921713428147065783044131704255126686943320256597291014463916404000262025438174175453519019682841665336160557062434015610030344609527354455558211752853550541217635465007435831930692405461585858597256992187462031505692844555426852757949329911325229728292795494599386213074772396877232002014628043897698101340875863933177771830638703734661717025584083485144777436087236320231460299945684821247579859142157561001056036574279933154637825895040693197526580313284228942966713223310441286775571793258215126629678571480518662165271607820803722619731766850408705127977752748688539619832186367140846731869145543783230963394754272114111024185499364568311734900041795692804775354607874750375476818739901762029134218575782575655380466439379888753672416821492515016374907692869519095388353769790866987076963915943411126456975048810682949332135031064046221070408772063383400095400895803030741744749264447963823089777064561937864344990001231786689730512910676638718016511974484861346744484099280632763563989546182662392884910552399703440725389616651288195487266731761467302749796377836421650093863963069200171480356867326983576177328203399942136031907044954025025739876361023829417268894535376995526094358785218127154786799463053259933082978073156402083780740009950066073903526511439310398609339545759945470062289681348594319732534312310052933949848486223363218783142474418644060528751364685643724508995658979690550382079204262340124342217741801666919058118484337197841294665890544562555818155555420792929427306816204866128054403627117894511885808549687080033455296158111930893122497312629477078998711237050005338102528869257680611157610966473864369759089050252513533048526843061873576850394104192948915142984576893399038115758046896770735736637243543381911133438900174524107949242141294445707487823454606248712480519960244846861502948375648317254702058232293791964933834138421986585647881904056587652279380195819686310195156242758739548106245446921635041219968358479742060495329936067430884113705397866749118283215115578729557665572592229838712233972044969735759364386933535688643891687586353766263323006611462173398601922073265832197283981516148869327079037798216960817629122557261871963032413213481435510331196123664661615033075431539111590274661419060216692281068336100563958888151059469204101888755444785414240308285651180092621312829533960731316634328999800416862837434466087206027896100963663414833367170694525405776374118940738670155236423061373653865021393017989312090989669602538945964292565541671791904362838793433708234970806388371466423898872540839062847333023774328691095402637666962397910669199272912688004227570705434373411690269152685965240934448547058786764895317717816695604330037589312600698913140617762302400465793404755143257490484781735298158763177736902690871072292464040991171040250795660471871210033724778178444418896680132723408847708179829310011403833801182232427092757131174419211558854526881436258060753874504356425387656852701649181080554986806085623647616156952960421575719365489655600722516818728741939330746070701120548496919909836615568096401456754879090021324987902933067915199325850798973397254211797310897443224477353742605233974367830406579730537431910629242671168148111553256642914083139472708155143555469832341161028742904639879984600422306653019787320948056827928495195563187241003729056790250926288548242581468768756984243422395109427578803196276131394684546451040312988594531105240455619711429602359517926960607371539814461381219710257537575527739090680074804405849336241299005801598073522886710937840997894618932965429728976644815006120841871443484346599329112522646947256588123104420278784247148527278692679086332647126738449765271518350631481699887565278871771903365865048432885119801758985338517593421619630426705876921591423358368252730578126263160327344840662486232303856397500284567157193281776756866934482979615895689317791110374306672103064291565441226417070263965937736120165944158257876560777964033063856563344274230916535859714926972190250040100695250145415729958711006714193499308574319328674002189220411563541547662517732202346277656832704430940208710112957420005215162817604251414483554000271893645794798383865907671209293013506501478162178098685087435339351988113409425463667910608573143603636469687425407925154019689070162956745193857108767318095736958739922326094115598527693912049553508709994740053518150839672526578973837812060828659192107359267470936595413299550353188140092698707647261227068490461931895986866063994156885317472156390354009601596608173825559962437950777282631608624541483760774896671248603304161341561207031829653471203146300414274338136040120214380909899099167590695723689143118022454409874251982128401581994768336887706475462613791529778237214699499968640092605603943408478901249603659941588578285805574738386875615543823919285132409138933849778329453073513976880327200968727260966149935540740762442636316036493407980367779525297552550963478531016070681348857328591713687569741315144038890915493146880589952853783568414933802447783068723758542532337143625738990797810901313078741456704591032104449305380399404014124605745638174529576139224201535317870275521696132134947857416205551430967971886277689754591820558484618397362684899491373025757321539598740436548575393644627868447780433363064801484837057616090669478228112936825255404837105400264787497129472504064051040918709470968376231863509444148517693327168565829301701452930201015706314377836596187686068187736203329645552035336663304854090439774937235331241818491899668937317941192461843179878234579092461921365622057922056244723024359008318140584353339525094339026145612659442078854977418598582901171913812055107272348033314845844873090089574920664940312604052204213402737868662036077488246242542183413330936490922664294823254762746408213894060984815325496299350387162346687946333318610134346254508847834020833157195109246609749208017527899634804756836424838581635695594153362047080704434165252951833445571058415143216667042598862400960932039890033719057329259061953896422274118020645393047625483277409366194259243799696595091916376929197522223772315389686934358297392911116202148777611155248980573849504153100804279530427311692668729273874953501138222261325881231227385949213518854727865242911541400797875141938441889082431851876622961552648026363204841889919560096435196998222567748502308013971046498078893488352350688138342861579000995338393240205954096434204586988796935071879314396009870707351689574150956872387203509903405279794028677082886463154228842181460956733033764014470809746328712262353259449085817951472561425963018259803026786348665462318765968979177562844824506259219814169163085302122734088161121736589966941968259202022836693271768541193091923126444037717514285968477656115584735402750878999748911027534699486984969702232728920820425162040733335420101057116479991180954308453286488835755641329191310965799091746436664939826049164161757412986471495979188443479133061089395686961665633898595920020565488403510309512875137188657102564119918088532642797016477384507943530411587556681631156231678304886819426564716140143157757995437323546861540574313513574547387826273521345659638421393519911873616210905168842553868616762299567739795407390096559008052764172333982925652497032386669998117499674865611593055628705780651347566424016131855806610311471506489427341499895847841674498728909804155435565612396524530726531743649168331106246607607164821969609857946685206176139877858671391901816584360732789183372893093003576451875296665607972362571768343299071932483232626642481133887427838851173799466855455258711607676468724809547739197543506311006163293391841164559463859962740191979310128144233437176290366792573519095031785374043406443601359113198836002103224292175376240008437633210334861763999574901482440304361092399003534518613696890522219194064718752846562825722573310153657253655720015672494039718990683913324280466065011266381942385827228850870551813402856299252434844530686427268525847678896493960367813889952165633991403737365680493733039413671434531462026222272955009563930111092615517984845795946694801895526851324443414179130949042939619101689862248070833058379366542879506493679907436136396622409860032706102931695364862030194489918222124908001453314685328701462631012549126432556869810998541549779681240951968849694461866592053023589886366756128125501962028059650517435616339263543312703547230155533883712068933455571147482592861250585574730746356304770919030919961644550399455383171186646069845228861094894998018055828954966083794912933146548221071582019794858102791876095771882627691103557813637975587323430161872273352573791541948209173707347444557488089931732941695058839809137542965606775605431452540262987922053500133386908137059521562407790568068366457186500475459639719630737158532172454846813075984791733982537969755085466034658790303827486941590747016112187949504951370247644053451095345815631066015068299272233534643832139646298708635447519104377183170302848499112090753087891899346047116352140701236456755274228503378004739862670230283409050324696957572312521044480928492970253838575536757341727572556350081094804503384576784887806769392572237916315896125237667388930002418781459413510735795525847429036377941495673739424124138911935859452354526738451762180531268098860817679020738116091903958960141334645331883946615974898327662580462984449522918114621778007289915956475525650044560910541802403560858941794687615848387678771884350913217003637538958891783888514692758417567824650897377703503530146819222111356943784138341014168425139319450194391118813191653911913331271967187398144385798294149381460463249795281161322746862308723233624585294121391747716020757777686883111418505268863721159884989890355133281462460149256287720295915755131219858750911684946461906814927220206977141697671525772356692403570022098772914672536323411119048106197893528602824528013760100887133560895630582388074273267741558730557902103193717144069936611396271588591875541079446260487310708516875993269610374722582994891465632048083012467629387272359093177572005549821445696155604861028477881211137916503071922972603806611673662366160998135420287264534277034436061748707297894734172487216160888518034922474125618731018485859395135176456416351605356176180526624849409801812837359700609718725379971636787051948941780838773450611027546360600145698204561773693214094286373338634709933058192115130186149653709817392597287922499209446402863550349880420597164871590256514006697035610379253170857109729131365918126446244321929773528170657704983259423180451206837020910422265033172306028059830268758054023423236688374361956815079997657493041197710073487559182355535484858527304579069532911975085083179354205885687377871251697556068873262233609137789160286789730280407523834282580647153113807080872463678814042321429343493594082252622131682351649492191423889754502905102414244211851149812948076646520875684580759723976137605059434349650193243078923190174599737644834310605501099687814153982742325091446124492786608664924634387554750085525410129251090890687402817867549857723966730500377183293038526570175619090018831000396594436157627774997246224489812868380343899996660863683123903513161267377026587335118018051257439458407944643474711539671315617574634129973021188889973026269100079564626335675934371278386724652931580632462644966809081653712748066856730581721366432303382716774535835718430963170209064125897271558522619430427730499684960492506776417520584765010754259511849980556901793695921524170029859219805354180243740291497795454351502547184907919877782405696032105030620943488116289176987106386783386427220076797739585473238246257769646035353928254767083223763802394366933283095818006938901382232213138302385779961644632306940636976078359285002570427268446540856414004431381928124040229501509857105340917777996383226824748017763477645720819132592496283306177446319894386576267974481609250040484240129068272100383372601444418241815550818795230803688917798947737523717576250453342498712440303130172701794998202151404751782557039415925545654155475134202234431413487807440821922681515982239120855161544324663544605705566064037967828442239991570495123140455275901688017696998682444637342909098016986529168994218724099535111576248209951151635563129540981014253418717619031540021793121174868224278190391677904601956785276146399453349559601672750015115354780872633928324468928777742415734137828583514457422260311421757049717938048772228930624411497342797551880891305784766838522097936569177351588572712611788592182654978986550476699865360515720961906552426433047824433309503991605405209843174353259270538268388329418100806885327919284022769255006562450681863381140676145309773769983378650042932483034593724111317341471606006310187050644690651582189654632047509181184825907128293738897583057005885920545743141003302650567016584048248163500510880297576423738243204903309697299004108444181005414898560006648897397131521139484016620592773239130289837857920011990428936277878268523339915345794016953833190601966186048608223391667947450842296984532021742393175556611637565602810285803281942207051555570387396166475810834092295135508921196577564154942500718902069610612962135630889591805352483859332793266956965536683444324707419406777978427883131234752376638748107155882435438652463479498812268562200878923906993398630895429665822262598189861575037623532201428910417702668228058138162515536166042319626714897254997705423002648792871097226552714070123339162126388931900422776101375040420810667181737149896891639385848244361586962003926582749271123140774133833886745200902394873864071901506628252657921964137936130398099197919396575366784584554177336380057008324984536042678630990048832077239295680749084949708266706561369428272442672656728512998420603588438378203194966152289766665552661931292502824033245044630139671121710092598195616967640041500280272748650416770411831716126448909231169787906110895466161167282036340008885091169659736223118871277455446860201024812557092950840711425957129690882665692369999648851381858773240896143822620331641921874198647322417878680848664725815656540764037447983351974897258561973579734879000638997522123027753326475425052372424287239168938683850043825712361724417239694621449777872394838535519985413672494338423390549900342561274450045690615977844578569365683473151405614405056758338072557424644461200073569008598460313342540632722423175690611629637955181230864964101683337972333140618766203369151382255882247064348790661878151725894326049721686596052572888885302351796420978499822963460834419128410831823222896258206216948044187384308738535592214933585175439997259709013297556721246528690279478514823576595384629706520106578571628757121126919068703519235215529091303604261095354608305812261315107332228278114732543757683484928275054837290679287139289024284822412861605434640503632701788195660696668891067249422090531995388093101855113970432206943984516295897924527936496471086905571047241724998273930715350430043504284323996144196239831841054375611592034356620022399642562205452118240246046911165809272652083877712260256756568265364941330226014221684896544236211637588509846556826477742753927604658847142319129615576117089943276642606108523991099590660456697872644452554289192102999072092083465837264388221738409439720353373185060136962457067359423538033514158083998588613947646645234759426201541344026469135491384057128367505445080531928081022201598039427525405513880586490756416215934405953672629298191119967278128504706386879316095827455011401616380537670559452306107344818750236136493686853790763821195499617121344282162001182253995928611974106769841170731689895068637613971748155742732884916140054172220045416347622537429258843309523036431851438947710656568364870928109878228333735503215564440305083031432088492487007062144544686225719507661391943027226740677922202848022035412514224331867440258403317246603697053945781233789253046220549078426141238989337956402878102119268397810130046641800497099835675401643563568952908634730333221733938290610109828599384653728257643482036817878990040123090736114580052973020593797628514885113114810873788770402565416393464715944646523407200759488000125531575520208511781558845980041932199283234604186747710855397331114459580770898033047951283641537925853168492114109160928990976092696881379016875437285709772480357424524790390520751687187816432123693870556326388699506187480430457688820752314161138891163600710200259590455940226251436472422762615057575926184005807589508906793852059330112250991320203303501777718986191845472005722046466876549085101253631575468619966207956324304395215363446919809356829394302536349868014621702104501550011584292199823375015750656652424622169342909485012418395749440022725570564990854582431827529968226031541999894070426170858694034419575426077611090687804871739088413939528905363133372413874397047385201820052129354972934643832234950798042408705028246092901954104399125792846860502194416979924570497327978905628437261255449646089248647464308398777013951474125141752501190368228992772752929989181570566521741810095389118169593102775112120696930204578144248476246851059343292204503713922707480241954192532888221537399638889974408002681573748922502368409725618222116494669514055884087234649634358723867967863154763266232604255618153880016480584922384415105301087799421419073231893129245349463839996228612233304926210232067139738289562873150743844391254336761344731862579989882575755705546647281736706659925911159366849100228673375084597388443210292053281548567610920571955690553697683045185039587977676789990880550866370372896480709000402180898142851535320062175975026492480178809762611932322156372368043209531226502096369173032365187586972812503529264437782341998729758279978165293929605006721663001868938352823504985006429611619729935477864205820489431622216445032271115560904405559693640135942496505673650854615341618211884345746797956755305690577708530970567663959919495121426802159028100425551018894435280347308357962567001296270174117676194799872213858933500823734349266894806194163878861793433843356160213691106182656521389315953584940909030258628836087745249151113877777949869786680084345360696467271127963016901270557633045683913672608588462576941564659547805731908251295438459664508968295437717956353518490762891841133007744941758551352139625091106785792315814278998078029182582352213690385463428009998730167863650501015568355662815879853120012453594746976255128412599539307446292058046956354836055567197888600496107068860698981295620123625066863404166777278009854521912160691889939038494698513382513975700023120397941721187304418678103904076666385831171469518636261944885864377035933528664016763068102861122278425401144528937229112939434989707546929846902295215382155176883292217138848385416800428496057637103907113571516625724495374773076355879799865119296652564793859074853231986794808641133159645744518504117253019684358397449333778519106659878650958090620151532669709435840337882005675223953289090587782454108388290985533639846837059338451643666999803828417750973939917054766072317705924461889864507970601983145742372884738343359225916090729742975604717783129652642812233871711124178158871132372643128457241756339098407977128498632430867414583586024734130654895203816678776638471425393898676174093609077214461603414543270049390559159603948764624022782302595787781058416923280013093576607690422085583694022664364849477948952954327119639449730698292921517799311027315750661661619333705603203423767210782582749493709861087614399248195300987294903185900995111927442512400434794998280154137584030783663860781470764750275645149905295872961384651656263040430629213426875000076917627245863554368938558895701630294381082087200553445306537588939895655968734105889588603016967971249070990901066292844723189540209054685919846784404350181485194272609345257281891339109240070096650363734500169346637966461335703879509248344293430516660796857173081013705367781179349291898385066803983485943817304000537355796354092177280264545189073287127667254481424589498767368360176381764267934873344660655472957394914708195452407101464569109059811661489501162197672267229072069835986900752500036542469392063657891053375322003644979069372075038404513224271888814245694583783173613588566017241767092859471320647443945196608646993099408367437798671777407682439785651970460813907366813219474217854573552516806819010043429601030286945482911646376082624651713807506837362189960838004947763169921354895490019694623538024163494914229087464176717630869095963785035925991025061000232099558753095935626978029896095693104250898043270425831399319180481429312248687492307721160389410350813779095797510152945218041739747886403358930928046516423243278918519948041324708910063646860437442200447605597116626359371255434673272861382638928946102468568949028625873824499922607225878179739885630358807780900650466382601760953310302637354234585011814749601752636351149378899396864758534015841334814278978659246544717340195077337411750265921964144735451575899130477891170599331054660192035394860668275886538653352662085018627528880102400914174288896857373911948553681983683365231852782317062816673624471859512713726810736204600622956907880373642201656698952658136128168949705729424759024101180256995653165906936839895172893888250954224836005815360935055563388883611746618342175189820387900502389659599368330829112979634501939642320604902191531803727117734058867367270932151063068968784693671791672987842976651044977895831163183372678237475184541557606508367863028078165630404801961631812528974998613290927247878135585871849433637731713598728280882914678153794498873093770628684555673869712187009665918716859986067092080147907009162122283607792997010469269445139894719246111454972210957040240058033034571894568785408270927269132798072093081167872442933836028695697720781844488248144756997274482043029634984237361842149482773817336320308267382242723223934177394785838542445858481377084286582712126739947183331373151236484042262925834422422160293081312442795608603221578938555156800254455162992197283064438383059660517945625733824457252948678352961634162053602821761341007312077503246189799416974048507412713726311311381986587228855574958304463330395538155947668809821820625455283639692119173205076648423678961430328094525754358253224618614883591421235810832261490189591554915812179840474667831400441869894730375663454167928491176297487497542923082477637218720766848346149703148258342951773731707496119973625030356147573041382456906278201063829395457914922875946518868089964809521307900806257330885367357637715199992024530142160349314591539511761530569560838368005000146057198188211630100244516059734184529481527464786727027336137884570648619957397357945041555548960962154013447611243067003045038145543600627145050697643497578098673876225431565651936350980215462842318910073112328142327081707873997570522972740379346953084978685340452247180569785371135357652079771404420088814553495479383324328549700100362860799998189516267899486628971979698156657817075894144602383067389836272663780869249180915361561786731588114099824674219230965664654239048879754312389268780586416580514607531074330011042330598479248235150071090012155691009291518590601981886949883493109439452941396317149592740141692004939550863328214022209291905311426521767057154391878428051149776575691704293973966321777395406598360552874941796793568160898379648615132139914278160357973287281381455288487188715922407401381762467200227393213217619920393634922976324052994624254521700145437903436271842464707202699599831572879386574980647770341243049526180563445743714627154706585529936650134732496317545764827821578822989340138275790091624781399595323169867270426198149940319446265283550562794790497499446386801396063221626611858716082370119033263836497507137501304097148840126723223602519300174954349744346396945600640130414821731472996031527848312567716295351392060417635266787500805707131784274421359211154352597885013209497543690348474550716762269652969431628639410822253370894883701532968967668824769149835534323310850102571577939323088342791144564352864958065047502803041362383177517849179639624093619078615711407595551376659941918809256293889366625351229559740698447596293768969650255600729664130653072585719250574434946569102863406359193456888017540509238126685580985720384721545951361610907413095641640366112326393358598926951431182312620176940084741306257253350662898495517731438661842780115524895148901200442616215420069289720908745982675540993950634978118858182659647304234889208437728508333474354430990351282422617727318519547333025311672740143335438099368413319341012695164750633435853913903550065112492913412670239721805876225374021521731345507482108411525481204351313024432064864855545480012357637666517612421722079157620088073137243878892488536510571082933791127038909616075199519712292302200714985969373005788051432940547192789931961288072570497645422039660732002568006894412616744076399488833716597531570563712996161054898110023865193591525763422246729138009856531447768939276873400464166431874695533970686407122812334071967135107445609556465128443309789269084904050311594424148169129148645964614908022677791725408644902258529971051655071349803177298952418534073519963194710785349069972423240093933143692429548746795861908629077643576084715410660364878057453594696891195307537516088944643724661418733680733060439743451477046309256378546276040150062977297715629849436352864877022998761924351198121160620553487591589590336171955282340392443798372889225829356804313735273027855650722337092340753016154595614436555350712174742553601703571036829490444482430056358527018510350630571302174996864598005850491842012261650055968601102917001542946195809105320813790008920780370962614217318031724034338785661170163667671031732488611296888403547812092362814712740725953465792879992378411721645188844016314123645763993480074433595637266047821642533416722813933858929973384065410758264390943871959383962068707981589007232027618439475743843394541436391450696331709832246820353764641801924913805386918902022338950737955834828145527344596867727685788755105506436396480790050319636107104698549313124283652596549758902234736041925223395623473533369028922595899437263896045357013198095632662105411842545390108099572176889684536151334520787250815171253540241277861094147035846727938222980548991837799686428498090022937715704955761102879285935275105622978574521489482533432291570942989573185041164847676643768172389062401531190433159978363407528119467725723802077216913633878408541084196532593306635669516026459508942627779204507967973064539171762497317878258191868288751302974055525370232804542245374134886410915540352975850686935028552696872428518069082463040563475557493589425299940997673234559066272974068770508383145129204395258897562352824584732664896818648117366018629968930802228920706905434044211388518334780656951115906947398126095106757679288460356339956843135912389152726206915935951630791309417111749285574325069247323228054396111735394584023973484668061723402510882144416157534068678190486378998865521860422185496985768627096480965549815677374000440539974791150318179146173234946434985069829257052027328003727450278273252681759243965870817199105246249623135202158619343705086521996008269948693980397269888272764988475862871582207963578479154694861508277784659205171584219265048858383170188370424679944781321279078767372618166342973002483926457032640460722889882378280042358895883303196763329794187624102009402317471151792001980271477256012168101513034168774521449651417359259866249412946975728843416323174088438491360145042897164977565932261196765178316449635733345266016953567086794406944467349571856036312327160222340343337147219218810759058152689566991472509976207107987858770499759209198281533262740730131309133425131041082667132827880622968314336960268887212033182493919344082847071414722866697515697363058129405782514469091299360368026793155600796411753879469117103428495988029600113961404304179979679547649790861909551995450518464645264083352414785544693817087419551421073276755156823124747775513780869225850059374288517127883381460942979040123314255975285535814704556850490415682406566059749870060785474452875020668825559682522211356221892565197851825347365514223118458659346130786139256336044852165502776653684087861943999270894701814042693251404866897456478869148642365463169599038930849014629762341460441885280620828712370992532791682340049415793028059779054697202261708364893718838199318829759764509256285277266518846074845983330911467150826567412135543841780788030502109148336644368273665627394607208136378894009491139016429354334313121049076466981644509754785500317406400997346981837988270664462973426917802211251546647441048740053006766152271348488531373141730331767055646144916324091294059925485709999909004374283131851439957419327753762549853772860288928387467901700045614621691991256662250770000633728686589692080700252801961467345963390897481430577081823395172183208035013922694203913444870594679653509864257352381155894538068990491962092395097294134345434935163764330927532653918988798726387050407492020754278978142211420793129772902702442252409222723314658605947661016427360904472506306015967389588409769408569971618432789991198753654388346993323836423951706000675828725587843860301471450786882941255291824322145973116378392681433108144030783000978739026600165210634365279941553055747205571554680114395017218609749366742975598942451423995302881292565299438890428582142525431361374669304370885052403699067277581151165375659079781248192712166181576270672280400501852247322292028107545728332017163433674112897411743100143946094907158986392889410784498939777863638718302801826739352160585461747390844552913239147464243407089464906749108314808740100302745600202595887638243591038646770837638810510976820512671537378740860908572685332795592182844275399727808247468398102244852166461815924304065110067832731250140973298711335815465178491908523239945332544546851678538493714435590236769841303223975262043832471960899009255659979905117805673526422639150605626230778994168206371219298728328569088697351517060950867120836705439872191197334565729835213130180406774927607223707967086831073237666028546964120317781355478814802172620865757036958490215521088429830356348478149334664182616574177651969209146883850314089874075262927093677742098628521204100926144977646922821926461873699190562636986996348164912652558074285776859345272634744836541978377210418016834081764608025415234609456005563107893477093780754730962566494040988695889851641757054642791281581672739183430282757728680006556540156909159186028751724266764094707421802110412397418487971606169789500391165709488202482612221445616731371806532193871062356276896468853603017072663658377900193906904054198713891518062276867624781276817135552196448768846542711691298227189795135772071648830001376095616238660467055790465876664825009471702133973630405488388174209176806678551106192156917450935393087323872390951564479071560268274876772768573941077512073456572007161226769011768838518075846393857903151298847466838758540354901378458279942633204811082562306907839175125783098624775703561162386917476195359875071385197351010375815344199364653044805320161467178095463918937565967859691503041021078462334474272746319778815075474427498978807117328094015809638033066444853630379307962155151567010410648346445175672318764726424720752265371381580690500196458404249828368440358961274815293734834468575691540493459445641642121364751618843417416086890277238099593750753367272114076823721855435465965535439332054163414543618903763389662227743901930898181363199480957752441568647806647431417140657197138086251339457465977052153529932286466798941611992525100945704682587416508912752582478634354762229814706359415603680252011018035901101141733001606113464120116693817814950376751373810448038202022403473815218528827669800582641890526310453009830406089009686501334333146954950708677250955202092882818828671504318059443809510073315862034204055526819335381013737553309013148833092602191392384476905230300938980700457252354585221147065329030654244942408527441463964515638979265484052491707287310305154039358643084817779682530683640884119828272666186090200878422677122584180370122064556694517686846395475922302899560244855813575964326539355577533518794580404974563793008508327921133271281510966197656505192198317106706323105521059467670233000354314263669672653156842767489448883324831215553898459488415988506997249232002654540024930792536747961649867517201940336611932388039607198813244085966806138978973949041983750471826927208947556982625877340320615180299691419911736578770278117159219033313270568389968369936420453716653874323213781841062198234534920148945449019304870593451909786711940774254111669257786419134760393507452423619714181868461246922505610332573422551513341440504373394214237708016775430334911611550599078451581917642488117181092027791719330445900595913469974592708496257906656043139022137563567401451036779820757765642272483428856476574759007983167899175894636015876451135250666304413480351114953110628466528950272656623197483397610058412551229908843299341776519708572511124735885548130871349236079653021260687619722260797891686880389759592515965491369768994890519118273627121150411897620203277517889454476498768147730301491875318554597389546160403722012965895252201968571754951377354453371751718449645032941242712284535379310423734140840587106606000776715914768107402649136597876585772906742126691221620332542371451183964416288629441768259511738326636827597648692371988083219582556419552399068586234906375021240449671606564056089083175032881129455598550690612260193117146406242545607865788369356478814005241542091042300871530886011327927842629986634215031790203331545214706658734898920552402569343058079688803878326260548189260546848579387585147488596133392941872420103551574498314547847344591035253386287224701707052506741142928681083542605422927037507872931912116281492504880138756202122114004162935511014693052062117915439877665019209541688503769504701308101614875887939083877104748848217208615978027968936757909870760464753984369930317512330367267519202200914821845560636648846613797313937758295922046085456340418696660046064816044481933262782229578072670315339357673221806452957038296920209157082831922016453380289780538760602106105095369496052836495916276544120425511044790713833523105718450176750342359149266984630235253258901825745545634730039942717187600383531658601929482538406478487766578841649053350112836979279275900519961189263472443746128025349196455758051770771325514504972222977748119643561900376640812898789384101167777198745928607861622390450995067182329065136954886056408598642876415100666155055664330985649544018260329294326308487636699158333147582057895999543007509286373660547434525529802816197533535090508842155844268720635010797044707225091398988526954037236336437092994365437527495354725726375491519416261095612801743097772687262855295239489411281848321323473240939126055489122368375844070950864793415833447085740963956353797422755365033391985949094516852043266354839293703803789970146269778360258698986961643535195510454039050149365499737893936628020706404562382581887991794389876061497798388399973799097529414996907994489022141452975734092055545773843963069347778952919022277198384580172423997739421676850554020146532599328751480054183164102419114690839142992854957909002588319921693921655440364844821701289592378005601063857388575842913210295924702986024770814560393370974096934335113969233991869711717938354110579406277776471384047602011535049854355542882488182996150113199398351672534719569103713553002868645638906712248455031048338601692875112126527040401060566922074488066643959207596445137116240400471875598898021742898740555755335650439445484098356341711878460262732088744065656586642212060691051522350466589234630824823419177470598550759586965054628458213541460109250459313196426534222535250541032106127447213871939487507907567169798333533491290037794258570792216905290223918963290346808953945663071664575836205653221049267268494016408266649204997760744422322160525881077002771427989518340821359802303886200326560813344618049451071160065360884353730022725818168294023023711022741216377907064034011851708509722360806695995009693732835199649272846067866571591617376775174076244946771414651783565143561535636805960275558208391782183159020146169175968132367370941352007705320846124386605433976402892620043799393357429181169603512987014341283910311058143306940119414634636026645262075267477340817704861114067974409529203877851435203490208350571182515433245844122994952841891998803770342093582111091180954929625435738004328226888773720843097571837834319629628149093065202864833705930257909035822517611804759825881545601542548352148682781416526514895623386827696326511571498092728445154069590271183524296887228355086267424701444178886919929131766718985270884909756345712602204672208994654745405957921461557621144864232864249167512248033561527741462777496813795539729145100525593080834722762905863954273501130906737886074759219659917458317484007615888019006860515116661869350515194090838088185294572430805168475127581705670300623930537526262111314414669098707037659159337483387406895501902081487448947728688556893097314934731278995822484999314322856021301724367936230282805762069249907598098640312880580472461131178925278896598521535604848109774377635590794794732863305085091588082399190164140739643666707683699596470686909740513779500649915702889894360170951504877823788018904863519849876503208304829467509514494457727542561365331425658216343478037490765290076711392092876106543426367372566653428436516219964317507349284434353958998241783125764320576217417971399807241510970055186932072062021778167107768609608949254158421254138268241113410163866871203003589676160321032693348513729101055997374128514515369272390162459720221154944681272971380143524439146533968065876532295368017828266337373328717488169163185205563771416989300909230615236790260657304597496074063186682777557427597623322790191972662672866963162783125285966758690333504020877730165536788718768266138883369232969356407340018678995614827142786480604828523124006410751004457418702585093417724886480146523458961009201452227169751611444594855679667028221432093396525008062863386950904074768757122059626720293986521203239028611800684220085643215081318553944397935377926139169442971987628462522193321575744051432421869031871127053569148232134982563494913781900220791502669744173834666139056699918332443147955436027725759797776907411913624637664646842021128147738434648183451139423332222133130436815436182791266350971090525778460763086356815731677810108424924134431248362045671337205401244675813863492401841445044155632096784514202899459013803419079508286049915843769747857419719683609755112843369177473350932554572685272241465508500326031003737546935326754942579891246587049761678747217087056039407008966033177907910657229386244274755833851187439854726936165844315916293778752776825235093768543493950433441258772144910187403061390465248232481523403664402827263660769074915233882038798844319621941594130121233399081832443487114073992612775537479300443389705219133461437825288770227816568872850707235340989870888381764157929763855134956962164051653819534236016157537577993927167736241083668558379350438415968069057848198345643482799750520918568164817347572216465661394920325500067725373604782457030119993969832698271269663360008004945357512794910639582925818614063722561671372601431672000083326256629419519766439822342244975375093180871872750984870515334810367980299843568197792514194282380994734341368422419277173854384778095794956127403599487687819114087585394748760705724481239409144111803239427923693933004637936398748368537916406618223188760802401120774098228401982612560214306669406025110519256549070768831338394488699901945167943861531483956107507183459102191595158285411345682291067652653136420373291352375471760831101192335042335920645804779414012971309178375917059528170818332547652158510347818056238408952477530991204128968927217043004523161161609738793961305689966243077693222006939893835337865506239330774843202206059554373515481528970322004261442557094358694023011896189909585182510072570743077850561797875315819856995094948725391691197999193375162247546093305176067846574921537446980272046877790608381867541667803720921398212721573569853980294871632965995804085582777816347770515262393794039799689887683638556408323624879988088991783016652892785048263465271905247357591690157074695796257028497260143995177079026856971742730295417136375046945529990706525121952397969122962330635349521277561136053128682906464542284832585691479585160050132000589101130610668012805900171824058123187403068091657184416593768476139698925663805588694892583412182390205457846166161297650440020916080546104198743688810923564463610062849604968822732733613066155911491321514807181106226690933738724520435923608451431401201000778533074998158667680356307921520463580163947919983495835161924171408943373100600351311905157005632639928199571021006915449140866796590798791729442066191377604280775886651213134954985324909649423929858071872407707546146189670664295799985287619513555418689109421019274095493130626548238221359219859215244242558729300737345231258541627533454280995118174000778422279248737982781876041939938149389715201913780631131186056986681058062937872926939013771924067804324370241964041124913741160879336328379630491889414817193425717693418939726176458972845812601375871965836491287723953977848730953796027668433902281235376746747674047596271073528696198431351305669230810660287989113296177259140318379610955408017763113898010013391557618044441465224181406274508538448587734946779863141666954219833966578071331685620582714746225747010986918177452311320248726330158864445430373812420655793295748710769704994645708956258745281011997184440947316529459176542762167151396672172051126948591447102344826194527514086883943237538604880965847725306993751650434947255753217431523857215608315792213364416491309001755923969632373296046678819030757618382584266176563900896175348499043815064582375844666874052675104678921759307491883613413215332386707313054973385625291740404067507329971915109848440173285607662096643300640833814820230651968828889351749374372977808339973356582897120918566091332694448041100836230479813833264004932918723376445920508019746118181483739171705249283507088659864963137729281250310463426284138959527477508508113724889486985103878432036213424602380308557048082197578563934100494067861095592192245737287165159689512374161866733965043152797051450447829241615892048513958781445233735458348883569966846766818826878590496642352432849383550105438216070747048860376381965986270023773450836886445125887127453952137776196484507019749883680241776045360963826062477100006229045877825756645663646554213369275429621115302729636997066241598305210080871815402324840582415662351317980707095510380121321471541984882356848374311859833039044068492612633453190236307944216355219922008638622447155697713680495029942546008286206711902452949221694406869289004461329004548340236043987078243214244315974488014521100249575918125069628572244024731078690038146900064706953699749577339458771916387311509833395705304970231264520635384678317058248426103355011356174914748500612691615107113175918865787157736672931578011760097130489936761289017034286626115378492606628284967623384214755754609647416576428175213479678855936913692353255722771305394961911646143062515503819249345295023938710734828893244370481668396122281138090402454591207234198511960824555855518585484675126724708289912450084504224326757046251246287128199489421399864439612357210650856910996222460682644283572900423559655501472409567655227581090266970875809058083949136913647384266582295878508543328503131596060271927207398513434311075090455918690012830331430477957532168433661613060659575980938961528121230407693163800262690171967019820892347632324272042630581819212848272395666266127400590503942205077825821004952951869495021812655309352752625500863532659023214402056913172447103569649607300891050864338839100577420135794511787184412303238778211264524922206819311636715478926297101799170555722446083580737338253027998834365545681237083100176072085198993715567290100173100841592846179286935440372519775959245880071222656683759390072795714048881699168361157789466667669882861382927176484284364110637596590349028734435055954493715600323339046058614816810030484014665108836223009842232613747828203556251212525805125283976423959294241949191134088291762587224262318682145659418225829334373224542216268566684644012003341710143906153274558329416771601008128036681338635829550555375214908573976269334042757198423376141317246149978772661201626372947300727153521002137125592657267353104538617108104802122191239903835388293094273872960297426853299015994798704457187017256954194081653183462167509602115572306219557692378794315232939409747548308369346306106522079999303483265136448071055295671193466739809569623059136269694784941472857164491874759481777707174974488018809846527345690002938373146284690956155258576979545303245757670102661607413170304064753495699208521965341732575601334201802745944674317164744271079994271276542773765899649432554894096556902681628603126077552183782332874516237785593366900291471957603826684773789447727592448934658544389627993748369058459404053793996194096821280343542657009078219361647127581282846137721762082669871718211915580160297391119391185620502430476484178959315686143372315141382750464368509056462152784367790665689532870561700424619444202211894518002132513664500563327396778808494996780188016356918915275157430783061229304133075914481012161972480806733686880899032303742107260549964418609330821600233390451976376866847921986279463857169711902634284767843195694706682849404494570632071314295501182328780297218247468479785196486138196659444683293266273546235396040398389907523988408106638867252119302447166796751962791609461654360776933296592743557303914715054726592917960463653223577302894783572957314644985689211964851399221746249956336280647916584589759066515048530784807947453569908277734031099219811883704273756942500118571120608026106462570977573444043597513525774398740175952718643793134974384676135779475244116652853700071952415012786239683365856018270743296418179478189774018621219879675688751432664072063078252304232185813271217361021077769124554393637983132871490350719339002300820292444817584104016665598028431917000625994443051032002995344226664196166134101828822078435329620484378954097450599110374379560483445004471882582325526911311644736725628178774337046143054637349026822010099161437811673228272509172162459681652087680252786509791330095114988709113560024934099298796131626679937752622477812255380780132970640577310900310718476068403607423982965629473645107856640600691500878577715772849784732087882902117963030835891490910884673035265203167672358610171512854514661337777669808416988460358159054351583506110256617941632619999219049102221789703574683791368019345015657192525082454785385426629959026864966227031012954514247948837653936662113667769291607715447827997356250445975638713918392475356897118892175089398918634849409812511027701932503657393898546204279042823352622825700431706997179848126149995586069191540126441881832796131412715009293792052143029121522938356653270163120792025013507504392700775820833278176450243355592066028725389504809710893695976072298860667221019605592466623290725565127703784695569105207836184934953105461419914147541590725884177173646376936007243412861846554919300275018800007647786536408619348568723981421380373770019265099068756893922325099110132059302154166732798482719578113468766603767896530019655999601031481858958657417686699242931998990870550768703985368594564117455436939954695191541502210600114921718138854614330588574813143375369648451253614493472678537633748476850405779894609631115334092955775160650352331362573430580255444076880475918086440978203932861620954020500813917207242056943966462501615654619851284293335362874207761041595507712600702996380407801718293885676610471614669934909239642874263312711914165313072748988454825200667992835909057178060824576170195940344255705468150955901560600763990345949998799716900217600942384098335459406142354108690522089732869787988109397652249161097304850146441273610711833641742290601110034276594373652116906221965281905227566982911760261436620514436525267656820024916931712961369362359679397516209888967842861002242216345901803905211198900484282796771373879006407458947378455430041021371300770112538589109631339366396180620717280842286854585679161230928717774851412020360958283659115389278338801329114830890467111879668066099912729947029810113643161834290565759710931328054589500008097170770416578780706063777088938432836230112699136593204497493115406173053759546396401032598154201243759074162359800856929527304203454637459402381466691328212396241678911851978293730132707272835326018727595970757442695144066197843369430745849994840723586348753693304846432943085296463385398416296000214288615592685560141792981797729647894292588819316154703145110036068324084534360028602361484617128448376518527419867043065308300373056657665093906601863294378460709053639636583305181823334498227077631354918619900932654410271467522224637302228059891919306768315827859313705228975777770688802255494198636582093114357172826967048969408073083516174099562343551722560163112443517620523395595010616018922556062848397863717318614482858163803280244525722241592099620624158957981458428112359304318641325385250877130078970409193981191912998910634583367367241145048867787709445018321714200501330213696214672023731162906194981642272689676592949834098842218999397954538932571761750971381993972332784083743731575707181847501533953765192639808619523030575813330424156051790046063413083499268902317265806390854058265501475371764599844352808047962459440483737260161741744475250112793174918380006867171679840261502660331432746713907018636715433972551785149295490356892386653810364503190962187365675860427710518226931743704966812143141399489079530531989828434623500257619876900357255935192329545444853249559430761798880048611088652507295703961103338980743769566711374728043950833266635021482279207448084922607426614157747686751877468333114567836861494561783683591131416209798869743605455920641608710846191317231811731022235269003959790740495615565513195615004939544039645607160772470610310669843684811797999696556352814937302607136298285625669059873150097415595463824298623269722258205753484832507595958317543662161662173876002360285948607400396218237540024132073919897050265823680167220384406656725674566529989945433332756267836496333403937612668930240229221001636430111772657063916963916112331623855969642488082411703899146342864225918894402188165155468726302984685973121711929292681031651903435042215867944672647762588091790139905782670212923895061537153314186396010382859842729045023254448563910378600562695956810831431455165970772855450693618906306986216476427252967455888757442382637918552294929163630478216070520347582198913113034185584677963901630990424513582798447851589064201821652104420763083805966755392875523548387156572008085666139882962054570853573325124414531564239235275056504649183536133770117903785726252530235991985220221875351455497949157968862008602985396763350217436639020921795848818249861027673092651668386879954172312745400799228659215150576820425178088456291573381175612340953078695956023840548414952450876371690038703241906562273998350339398193632701098416503276640496976542464513127279683122628561839125946395221938602288800542726136439316892292107092441043652051731491490856417873157666638373469563078524105954729336942596005798067262697227545032021378167716067918730880842069290903464042329221752946847160403723438777766896706655449081170044114165820011152253793596466830143514707315491701800376616882223852307580237423108600974806399140122624948564219387545523210427146451539686839175613950942804767358760158179565634276035786246153280317432249835239144249939442566207342719799770314644952086504181497296447041877742910497977977504874545112070487398543444285503635927911121578320202868550379139961294127072912202711217546138899800547550245970026832924122486475071312093363081165215953737945778273868642072564704450749942760143185360875621934203239539507169488645930552747563850344093314061917687765836541446478277957252612549922987009105896293029922052544854804410561132143911397272461367569694151626516548601133677379502321533544241944897835021288978831714353331622748613047340430542117387124630463718185530461609914453921596417096837577088082686727192890564821428642794892437398595785341422362411148205667304746778471859367655338123989250938010346948589794072488464037894176206820162235329446173388903058799572097546383824722869149595530458843470902943962308220539774220543931636777788074640193689055771530735199962978996864522864162490591255371830440964240560589523819523761346775504774808633161252586194957070670499125454625694345410377835869503023462164088935851923213724735666494118205934483346737241450425740598198872781094178005179413692457267852003201464792487343446787471226601896453555331053282416931011140846742459357563981243264878168500592357529988500826346901737396556010419162739703773654223314008119023346128900804632421937919332029359170823244093836371431291383070594297984534015459478227843308700940551046356756721602376975364264178545090846622462078033556231673187047039779667970463315277388634579368462673118486149930953312704896129871817969803796036385905900455586456157413679450736651741918551937607976257882160679766840637357120197766351991042542446398858932472533306185143850628570444003717824030834986506767522489808927483163969596181780866918706417976272870180053403543048849387125149569872270195000794079883330401423853953146288481296323192301512647003520288232556871825517434033314630967336675749618508215979106567126043775735264567149936002419465087390290100481057667895504726770650013713230297382886893674001444244145008518049449609902264569945342397995297579024911396211808526622478124215928798996949967873245638694973447320610125567613192440402470723379555795642447787694884183240236817139756065247841989867883618010113092766682068333741418340754595770947021207438214569836465228375181849448723728031947587010183922803519946809741570734977432854252863500362959923697891705083504179744874463899534633210344763386190738193286511036347421590220164556416093910583097496874061406262403175762823207554392189320590261979018379462794189737686669262232878957667094062330475576991105925033795759665341572785688165242903150737453397118884844503192103855016229771579014493875277732655040217938807865942940324201659184006717796021077650221626621199891635729277385581552080159834370171127158610364785962123062386086471820507601163975752672031803965182466822379440408836277488975784959089291859781777073861422463824763995239820729667833840209510067999339163028787243017956629933780514103052225935687316926283739482537600679552643865316815612515533265638411286888025216233537898242680127795173343648379858152476380226322068882853147034426389409627635672984284449542207169416637475819885817173227682893629672253071434866893674614480586765030723530950747529896474743450381645687943584133439537528207732155572036157488072710232240308321063492203163729458381823254736803671729919325964309497195057395018394648743357543403083566745984439194507853909508501065792505290446992881098995494643091671449998812760479262786269008555525514677040250633516956791846460327403760326839845708826773064883935924988519068151305007569717631540834203100215628953068559333272557858277572053242314560132561373717005485497436307978854277993355682059012067396744255367476249357094987408049454622168581713862598841750080755159997120387089045992937704368623341212327322038196475149078954871596355588902654888732979570617659160220868431700166088660540894442280111001812449211631497396435576433882950318262116277482041403024972035801338488265982403811259533166098925116668377976549587103245880024971401276968107964071606213469876343971849538839295873065738669722459382306871320307359089534983412558686074944084917086111732905355209250182553295257453390584540259576032702003771567102172174774361626657066251103865573604609539372407320209506887227314677030698141248029452384378464614955023367148951607932145186846619150924035626155341454148661697726241677855011705598151924262541795368571727463678153990449488651286706067530995995213635247603848323950604632896121880500749248034342328228701587232082969658135296842831929214047784894581731463492686263574296691554963834679825717638546933335188185668830129706654247551785153687488213175713103499198463315204386774727237905907482753895567399902586166140642247707689491793891808006479570741809315443458366172452520065372160728669546027488123425950244670117335547341071141431770254647225305937955825959691233856482369688401331060370703537728098168244766539870792603933249177600636630096356265043518936645523450401309194020332707095396931370228015093450347359375737824346297500532088956756607087157626248133679028042530916787467924796610917176556665720229973104991482780916692625370527180412375177640421966179696276134178742299909772055108179342501510765081393916868426521265467711387345839193246220947135625205811176209722738782225116604912521372794227668693755068444707890929038659541855937786397359395767767421453814244423223047276600138360527302716708517140287948331773519927638601749886521129823566890790271784832794175501192416226117043195689847484600478819183923012971275819596319715478747193127546440810790791611522266515549598916451025223613312881806878590529120255581512518441057120185775343094402828954969433589640299890344968830884514917468307389132490478530843955094888391844401049768230604570454699225600114629636304252297844954916024822719976220606135041677867037625275261083661869598669436736759219927569659945527136628264671271309689531199023909121327575093909023500625269940311065356855769813828632791312969259353640316557516932058730355619774561493712071621180927390963346535409459996112403135489046664250935261249216678372389039445428989435268516682172853106861954502607139176674748090468305422811467039157317143020981034172558812600173724217873093258099966532630250649682296902689678702088951490391539386648379429547548500296069095812970725803005877266302961074584658706654488393307657882599243176205543587269791617880227181792835521718553476041333000839654071877253439913344603982777333238413171082467621473708731880224114974222321405221396319809880353846261724909171673114184320626062490769601510076615448341111177265236113031901045229504248246023311026920424730402493122149954461797130181906971662617461076684223820238677236411690771717279321728387454787912307280744731583382642225157419785551942508090141848105796212174825594138269914131892297219378344652322668065770771949174647784691856880200520010837530740752207992433372325087873655250287020343720799596565655134101315788987434378376015049866408366704503767550142545610523033034143293436859217377346691144262732535769756188418519209173997688345629716889021464322457298374097373810412888313195175477265606460973533429716001523053246066039989325937243182059961410664799949230348391158002457887812543643101064632240851321769712094636720389013117258471746808524074579487765814421744089881255235789531786268120994912210960325902163388686278164869671671941523149081049210450782981971268913061786898807893359798590904135084293893749727266379466558022278839962974973141355965463264357657040545803265125108358850194083824284885907386498400100835258576910434260490156354913465816009990558853446442637378779215975561591903101834907557657714732881890469529471123449551129987267907770484109318007977914717767300160106804654385139757729023639875288122980382882902442687243305979571375734927732031887654372465673624532644083468286218388739525133771013936681127148060808821660603682079793978635184171700985344798968730378450116391148061766278821443675844212987759471812682478559823956718320441965854515062230706017740262038634671604310568394357894073558274166553538356740196582831450705327924411170280777856439401246064518406735186535367944645293690950013698656043286976073574383685643767734961978258376061870128039172417357655306695876755381532405588120618476691052442852375484908963798671613289943864526136764457165871179543609406409241128827967317203522587198078885545592832324432607763949172229986007808853304819492295432231352487471124654450008674338390779678301788476653817578807631140005894529087792117720620131349683096305608375105926708163726294153035185323342479369405172275052567889104459808750275508524677668980380271453933669633537272795081180597159611466710217126301590865007087324686854680525628867749596500103009802401362658620732768290561775368618337292993285612680222691056309265644396572161141074145191129377630245621035272469468568829535203517775949200573900400626771207934307170254359778491902002492285866552851260681652512226856388267566424106780486379467420900808603212084004320469754935677041240863443366480043666534516829123815370091046146697121749225235552018884695181110569820199576042909094657479172501491295894524792412176296017658687771418495973037591249824357326761955153202175357611799962198098094749948614713280488920634935978345475515849207250251136515115551149918034449723497917384312814346537126749181776241501411329738072977446329651538570092807730093275406556839441012032189541989404029063455213026777693140724291491138650842794929410575558437031088236030498555081266803038785150812184985470713443624822609832899897838388123001816503622442008193908184266954193538070959957874796360095248694810071251287778796909913154965042849137434834904340438065328460282003812092295964063329931257155804250003662048382039482873050232448525862641583683774336389396452433720253032339686253957892845031291911900525600854547499380213998575132653569914342176728038080900245589958198254014563608752419821275126222072344528086765785782683520444626948630884199817201106994245966599200921011036399002140472665016214018008307917125149331293215020107464200870991391604416195721075969854675811193581263970926091463791740845051603539102001974817157931288049435385950767963034286373085288945917701745062720775211366194186886749014328303963333639158945868432943196132075589481343194461569430755327393361304157157447278628036378804906738700131999469344596117328098718407139779612220127303322564147070153741659040709480388744154097371402239640603734732347163203024550551639511343081090508007339762729332329449947982082085885417330173028301993756674214093788727540301287421934254974137688595478062602300323735212766922554591829655085726054213228737306602967779299241174922485937353644231105497551932841464427817833081795070547562783416868725956978578431648339935309424019347974358847534437991720807450318735793537702049597247639679531812748860575571922861521179965778701934782940677131556036289935682336761710812794737240709270494769157040471174292237993250872866630749987782726729557620781154221080515948833347254936771871329673222928925016679852800469309373862337419698712270048680711573631261548036829436978444733524446183071446249519623581067188105271846297482532841341274876478811815171061476233625594784600151794996532403536628800128399727215966739048984043961945158237500460382138038627353851092805826620040287811505350945553821828697062318192703562160421735994342724596082218630132394172550516624488199625125844596253579244324666412291454274638699338770851406579133555985224847440363587470158500097577918585435568067722199558626005402687585460346852638036938188904729305926359214851711062730250376984124054822496126336063425416474478646674469138219158417456182705004666636403309355737750154570724260515692515829615876115418892302837048281371219851442398475903543246525351307618887215019294940764206176578315618972482703101735096809743323179357836757742925267877794761417076646168829472992181099592795950688277848244077592636597321966225547017491854880162828893615452353034138007414203405222345509052740413747500887142388673388458294170572821107473302118704929768902670491068085034905109053956138153145209089184707526775030296672465655519714193901213466559978183958076303564127631012482195682972922892945343692424372379770014397354721036270463783953329313335527671735750016387404757087690464245974764628711565019480141600770448939764172639677663130561833168063556458613611298020216017136288151552149754670079895367831994508076303400009867461082999129054879103867066228081716715462795351272609644063161664905441146723285705401544705677451903464406186127165315142337807243227176162767051622424132202654808349807950934169952485878486231536110300517608454048393267889481668893399991190144349838356531298711227963705202954490533025637546168967285625567518497612391146775355643982109059630030868550714745790412303006575989661410463133134752932616014086323086803972891559255843363544378820266854778481429236023129569142692682724495953261776027580459703528165712391897235481369301169081779323348029711427592649938229278077492296955378834898799968508990992656111208758542714053183025389655229101725289617359019081608924497175990301131103467839256297536511035885009246298798546484787211339708461800477248101881092102524809371375824413958181460603877204466802579499043592310146074828170601018058548447017075011643341904305991719149910057471441900618552907231741045799872491123046501891677971263617479692768782679251387923961301369975816671791337713171171934290259242071474332765444178762791813623189003293502689958309677569588301649391479570130953957618874532106628187417641200607849751586878832354816532364089188600924770103907882253430772312196859449700846490487692615397089131019432150365094393087183985140846717216626368958308042878881440151955978172280306498805293808862910502012232518452327384228249651421485868044255413068672005587885277156914655266205896427220700638628566431051203075479797310679968953195944771237307491662535551863224280539261496713465700194712885295596274395213696349434771241371437760563380003431442315698783708079724939731605189400744948555333951167320636672687121305737069404908995220273873846466584024426065111172210704473777327847956891604649781348687443890511498946542610340307005085431543703694626529546078506802596169942347975735420847556612336227409654727021081751777061469983812869627164526423876441566151075420654049503164863211657266066227906551563008565220670446446784944290705052632390558855362064771315052224533016571219367955786608081627833207448910914422074339374337686470723282050856240533193327368951446202858115200361927049368491445079426907146697163856833032923881049936161668909856426920350124354517502608623130027922148023242519694897297083106841972434801468169170556068998245992837831386637863038489755490236501674394742037660081730322137325827372108723641847738302008349561539340653863759631583019934913554508804486589193999732371821784932560511413534670417077294798666773388274844124356000640249135591350083125260458854326021350469921200839716801685458536444616619067575169300221134368879677975727595220303410822859209196704749651887293005946515449510918629464232032397406090443780659951835109166603773584899728299675990656202585408910967006934325467545034186946163500478940640116870187415880138482486880935892073065817874639774381722640565437007013148429344782445686264411340170415007412644468157655782732976049441440753125737802161872839609859462312707538145632197669314156254453567144257308285506206174364841854750981086898872831724861632724765739101695254950669108597020559439439372619507031293653193581436290416500150337905369995611772617076048946646748824457654027288559692927615971062801403600038044182356767992273108997185613949718093326197615062110107032930207589195723769031717944816651761649373899614429988831442751732212410934965066687398972890402877172148002828652244729717308891587989391159297065571575916241320617490223345321865971102296090121077979556257305234132827986238497191285265329838925648492755728076064459782831468262296560298042715063777681657471197790731154348913780779159356156206774103138158995661000417150589492704517895022953669841935237085112573749969463954522737632397832550130015618657058808546863169067809069336593979512389714567978071770347088119387414224618734687048804214258206139010173636669345807289056388043938958011662917610262977031770519718114118274408309754839044506631926696537919109656191076775286800528397853594863489795237749847520123510687806538419488895178821911311070338800449334623985655342158120619342219522749139184353568744769496950851949123740017435220029907455208800939841705689543612765200935766109650157270089513072008425578971765735385877680592604974460440328363639199164494703777275064815660176962944404166806473176718256023732143818561023152648509376749250631919742882881880615202281314926484822204442673732798006142068821227747681478329836407775743853801212080650231888813947441760502287751956688018811155791845515896512528749225168928294236033224439919261102243997329902367953825462759221445060388326730652846789222580404521443919087837221385195230075598001586390832552459699535640604858372177128117745266854327278398831356067907675077357825663868175181250055382010449663737238555531066199202108738911704515774431609841539452422395953408639909290978766299666449139092070584729400613389880247741182780209721852818018064910983014471732113307095285485879069591546360699196995903226318535814869814687627732443295614093332948296070840817876951314375304243687487803146275033275180222827303052751014959980096467095511729307506056167423970542817965791723324648884844980687532556808970723994030866788257375495967302995023346346608103343682339807568557458322515705943519888162650427799952524616048208317226269551789491282230797636427028661604805228650153978337346923176441602828991725709947630160452104413239631348544171722658505675246755826889381794042608298538630252653058355059715708646213674068766379751657363234263474641673598402909788765703473479131053571917727131279090816608697157339700298661722661536001785113565182529272977907816858731396008429134005360760900884914525063447252689065280682104740053720589119497091385763135798556512183986712958621426189594655013369179635408715354936183127144825726298973133675708606077111749063312070713641054115774438725493462342867026529860916273689554653579363846128846469816416451245505504568605337089089459108379311806749424486557314403692660486990290512044633763160186302047935310682628907307223972259473252032126692455778093733799624555491142476856996450713162652648764165502060627291545928904259012453889887935278950712913668352017908116246115561139111109344472482805289735251703581871834674548938738520792336923474913097451339002504114441337592100697446808146047569684954120884730209599033085210137122799611628327273418574273911379245034102356947298842073570633238065595570040004939305204341037963593529193113793669409960304849517321704116833665951716362358724662843822807858834782447388395144815057821717235348374721330555882245228666067911604957042992856062372729966966103494089858680398530090638082383825675231485286065824962489436657825547439768827163110005240759613695002853286508368234942106403833424714541569026340694025787652951039104515657507772224559812573368683349752761161245889396064404393269998909593010380337913199873779419414671121549018105562673119590739562948009663807370440781540756947646007661942012510233927450087914341458720401374790137405646718589786771507900345403299520537373042808727516201651275014475622158406907887740471736580301210873628511151734574682315690658365273599785544004508842863065884696018981994877862796718524681876085406319190794633509834459890763571567505103051616438981245751471938449921256054530727740129365520359261429492945664316979802093372732676218386769458828712068318534415586342012193195050328001499517263123653133603115604299985149019015299292179778118331371050993894567635400505310970579838659640191246367705965418140263577361639955129669931311923943061680371550069356027051212309900087726776523200866498286002418401257570478720599270456842422015836878484419408389073639105868300473467528668382669791213260493843785774156836187041794136848795054916278959223139285996141144135974638283541890005596479840069211642614085819070801994413378634517824042939654395781914019909385271380285343509619777721640284170572211829821741774398325123962425282078867369609566754870754294454892507098703119202767605729724318372790334820670651319340158541222288267468992237054766239309641963749287851531716388532037545217972599705592040582893269032790069759584938771670843751354788356695824153472807294713139224006828651214791666008470023278166201842281038411161236366404380313163678081568459420556457556462663355051201752706562451234870046631900984055805627362096500477293118401415929905054061660699740592591578485166848617039697416597649927167121440344018043120360653442096577594812739744973561771500855346339984917273822656284528317362447867278846790869887863321217300597105852805031386964586362378798502707429428238093992442902647640749790463299922527120788225540006793525635865933556453643430325329575543747144215115603278723902112424319804414766759432900684094411890308018508060685849500518014753437332333746394784248296827264789239499631500551791839687058180742977873707602536479269296718648890959576374197464695646276848305268732619354465038746470165817888900260982244844329693563764943428763851313021164863163808737789236759961369215141965196862693307084353962181978014807306238992145247903758745416056252365284952401615024776707931653843220470080975627541530871338471967675809141675360211070333979765073055944639194838374358550431102347380556819902574048259848443344460322500558632762805210443450247041149797500082474070346400190172970585331860808643588511926707536969143425891865987418406775245171651530896595999614877545237598202197855454762724340955096902187844514527764749274824168291516496286113515979329007202412399770732251017338175112897148257760798834420708008328859991406765304395542888897104835031962622540475099221168015261520071882461141431459436369718148060418336921214489184962853020868141043802738495028945165875701233523675036329343961609558586298935165358566154149320664673504567446408073892617552058404778750760149967839216594008524933344560081967120213122283547234512820094061869234471217710362497939290155607093016716104638826648136252651663340614134237021068568417514863757777907704126904158487616089339549458921791506622406850675766845981700369390869259580412500622179398563096421967086212048519917022127039000410680692515533198136205558677495360868825792090817108000029505262603050554966294830276637501267742504864883870033622749794556422980184163616654198564071799715280402719983977136252263908570636763613810137541668861941177227660671903876362015320755551411697720956087708833965356983907490852221809935561873367869425342887407948555600309521384307950960200970692827844817430267932948738641020519479550135617355080512575790921026275820768273451040225902531853387911316442608013028114498338479731695335874404835028937168704264311724889256131636607003859263180023409690310366292234574655471615042961869944865313954754723635971273427442219685343051215606511374735852098948520539547970301353417282466458970061265354821993256781335837346940188113528950842513905460100491447836442854591741954825327562143769792882792872926138036731238720610450041730231980213759936122414645979810189603768494818245031037569699892445109217104897341605566711932904694306085183624437754473774801352105172512106408635079846743246050267547022493184859902559454291443830905873869555469135678485979653864315171114897256799388923684274627698709188398142082875702499787078648137544819808644452282451299282362741412044663926009369234930226613314664776740365863349129030700653749860866785205133234443922099930233048556382760142947702511027708643086109139407358781775231369214729127993394734199567076973177653409432990030234721632233178762896486195229900686354248513180649201889034607149833077015557497986022628494840665075270079253838467694793807283902375216540202745696344292870031326118419822792945803883108268690898528717455616725012116557426886745922602071246258314929933490800357003038025404623670275977672278128808885353789268123860839636858400019582681187771143903511556890461431957863982721378224108380248950922389864321705372842008453793131796022344494561887300528484561663187583799335785206666787744204637615012610945585464631640963984328222426980479832021476948534700769393548014207200299043141963647507440020255456332469872009898175928936392047768332658263827801193745977930884573796028769936180386897756018549615273476136138721239670972407065804184285232397709913974337226270391581834565164385212864961204425284860220545975158167834427085269676689589432618786861015313437103658981589029345749089931592523996246666834899944394365687476806929074370035612560544544273639630338789781934239550938156291658245599311759083539016407817265082918340126715060436219180873688839055851080813605008450731796567471205765450180557913122692697334798539063138051073144546529886027568550338927045878777985953750618975214369570699455912391555190053331056915578006506503558204261588599308153366772885220581808849437589345041294803699196186374876111457478935603202376405493854228884843452048106694921955208566665048705546826330773335412702860934502366776080177667432071798331283062182008984985280804026619578843900609514043515759927605399836674209637911753455292191447730552409017281532175866757317565932834017544839663441094954891560599639690203117796896109596116994171244362629722123666892393562379197615525503692919208372538502958297824828303989235513602286028521643391375220106890208602291457748884758607226003743423383889569057968583369651064612704043061716376877351785205390237764958602308436415059033917532647163993647246663764710407976971585029015499685226818738462743950046664247046414904359434612082393109417281817153365440481660140342500989194439754179559849650246038624631923992388328014215384802403922827898467512368291447097964295680814242476329506914599080681621907971292688555506118578842807907994540096042108570755550292318714143751862388919686992123484797592717226360890360699696088476621335549238845139001466607241263425374431648662670656153377974540956166881787724496155196275767173957015066433461695134968311418064015496511226914896034984406082965887060826605496357732016962683547300448743988684943854636729239298593212867407693192497668307374993941730629402130381460283355040212561825362286844033813595946861575816274734865683404706639542083754121403478071054760137240824272741745096920536398320603343948532733146302578127827991392490976752654754490609425452705456089067963471859528252125074078364979262559642333249487129548825329145100301779311831114799685995466051132733863649747599708553013244772259286859747803175817154087881279722380336997465861711946592379832273519220378133424864759732450918619795537445057241734104365687566477803662295207935559328167390610685402168226890838495664488866686992599064983539844391783878558344961019102499109567210579276619826702810131481015826941903268594333960660710980119018939076718246714556490177637885404007521404544403848220341196398992356883049391860525433654206733262399024204746806189844092214312430874606124842860244708835840278637213258947897173162829182180106337049043057297688108152931681629582145000414042303040714177285425728818576119738144789429346035313893031467937651222458746621754480039974693296767695070137988388458627201631445491185209263002146109431383408828469467550518781268631130637489304538081483787067208771041962071859290231390516291344145849757769061738615488886098740089720702404348357589442196256764668230113997908651757803403346418561765234078840878898261159674560193920045128128155284854480223122018754399769567361047063305792211674619100716234514400251389921902440061417632208174983464311765082384093086316070070254476344994834739485047217518268059044093601997863913128812036166534584216052028163393129415477294102089576193812119676887727288320849148070805825789569339917865363853983934667996274035584645214423059372716311498841707402387553183112153699924173566478822907912054079686243224141549474013026426813240906686466933884513115372491207469321465279954411265289417075450488544001235159108639368162815874399756794822733864908172920779463777974755433178604268416746394016390611947027994374648506433600583064787441884874285649035268849678417869034751390465844163885280034393177248724012085124883246867897688854587568164437122869200841681560630484387815382523878387436409677031893221342707027719751290516125178202755931442457077018724257190044294047440950174677688795486767102477812073524458345109315667282988770744718727533385251961806771196449731566828285321591785445977293056629750076944693987552419983279263233848175438776052024329100143178894772785864864573845781804101516812837336856690798915088791019327265728146950767794041578487962517458278665178702220053860296288876879415047134453342444973242111097337838784831100926775190402785872577655018818813607683617412212002530783677885636088199153929000459198855157711884782666632096357680558239205758507068759791254706523065687571961966407336074194790503531927003465595094506172464772361411240770670226305714420641123674602424579783392286036157538829554862996583555479110995498579319194207539068611710979686341994443227732698171302674744232250225181413008191340562151633053147316565401719524398101778441558214166354828831886921767747751896143737644199337882572700575142351152247270082445986906610632396709909228316317743464443215309478894416143242573977869242553787951341271390592316015312303834738528280634806638216339212008909340944704819708550054718353209011256783226326565134645245503845489078020133144849458961209523126562803500453128491424261530694617153299080575939956170236960895552762854237880535595488531799456841549416843428753376284965381859210038118257541459281712825334717850104165199174327764298011963363908133936844400377702954060009095712977486500383240562232267432905412823739819328149978604957195225034302852475231758686223620843043266207043493290505328173332712681883663923227102411248766919591768262476090618779582191312459148021289880419262722022747271819311202716238842781496417936318729270543926884817091053345606652849540381788474676407656329066018962960543314809368716488478466954498581036636671909576562958631732506100200741834113447342429694896914992222768197570173566828699494852770994753027251794945627978512961873031809878160452503127051761447660799765139749716077727600375837130083543765043772171908357897182734937187570795298203516114419326865209537415876698473375461861530019283437368968505650677255867594279236380717659029865285038012931464578558826728284775233116250402790404680726902824009110450401035074566327561284284078924530432930635488019837469593535924824795241189139483802454056878537473497081791492314826173960239621706661998527049756049670128468725562848177327971724747872870485775918825174928233521078696119810136923571773653267697111316856142954152923985251943446739643603038587888362730210635227598572993646994561094116776484112267265030563714391932041782436005760764745041030409115743769716882564690951450490130276894832718203007907477290812930405505235000916394517934549272092939997156296077846499301151190285623559444945377768238838343054984526110114682920209915675727660196606753289680316966207028289018994271976015328258519817780578520554438859178603163713243536172157987335617640153817059006112175137814318701517572997747224260303517358350608575095867750511117331238334313073698125318480704881585559468090474073563436516040606659318646231754620169855114323535650851342221643078397612407333418482759642356199979574370523540764365290012619021056974213283607706004987214240667397688946612631710490372188871085074486837524415344039325857929750987126100298202827229997481907322620007971843580056202520570047892106184030360357556131870677830365550136664966304411363985388005828939163189820093191472301891293440049796280460480402879271876476731313830203861151461220592308926499395494221164519064303229010391273878796405945507939850097572081142802957175917078609315638531844320277198509864333936978878489307684584196895445377517190594720950559945119619474606883753439361170933899381679214228911770550270303892718565600239162639525600933879621035656793846833573612536782396636756583568352185993548556473404390232326701198199606177939942629435046140958253059808791114839225609528110082652136917608538386667318929803373034927410018725625479916348762576624620353708580871898225800228259219929760770494619549195042981398333954439618106010412762324261257755166521206254410128175750070005901917560163209606507598055931608469975922597304054528424591304299006374224148483674994583626406578902751062979499193794494438286346011757725908803329873286604740135411625328301163606593568260410415533453603091185649290576951224594503660527447715793485706639963897737553318225248323034569114711092798112330960004352815317540686207924224400009461735699947636283532653022898667862309654480885613036152213073114736584645073960635276835086055837267557834512737447810045174036640125634889634479329990913682098937360270309688430642508374407716017601815612669609076478941543396276550597517375486309888741889044267011356745911763818297687813120247994056066376670546399475440896461071657011272175473085030636184999216445035414065828005129096623662671811020991001001562742438349581586745199676608821363770523688881343626075650096144899690171397515654435240116968995424127524770371038187321437161767825492356875978330999215370295962831905653366090735318790633951968099576125960312002299449226282413038541508811961517617143926228222316384264834622299479735350519368953858820957232449697230583569913844780641336708236898497882356577160519515596793421198263858118296028860362516009702314788444243444516047538414995433340069463068253917001803892258284919851000637184253004325686425146734123203589009064471639248309275568917159898006126571482377293350095379062459116578081204437606097079868525417086326969085332215819385250550306879813504633607691434761611636689294181045075119529175471955206554587986269827417614821546607627468907679314741285835138451108912370220261214389643189410961386508667666067955529968358619332195783731975163476442131433279340291225217241709522614006381224928818791852580033227110786226406367346125980808539434082459144597290734870552139410899840028760213359315235543412083487867961158967034171761999897295115649470129835927919514349202696248126435749212041231637696658574833641755494774248381516649719728574064003747898845338634850746468645922899662392256883992888514165971660625951760796234927501491158957910557674755219789372065026194774506539884073261861072997082820708122443655669380028554730153123396414431914425926927958849617165333198486953851526330249793093630958996417869177615898659375250463735243630212834633667812072212169118962741102789404760931312068104782666497687627517476233010954039780414518954160869855646392467810467306553568500245920514730150000349085746400052382819082569276363600667283181762700097145319314044843628377988440967725003179216184720748380705760794488142447778930891093552955110756500038991474974725759793206136097062875760014596523856800406912610147278594780104745337912847390680174191594221638973420455948319791819590747832537981769660585094286362751964060155116312389819761047667491482332805113080451810485894846570795785821274017601505559073956913626333826578677004410426617477198668088539686489453335198583002980899195582260420738146150432347444292418521499944212145898003265748393836158393436440003859769306330174684651849395292756701963875714205532298516302367212002376014705826881626434031084718970218872598046273006467371920124186061923119757272421369004838831940176043816185384189220109331090666675186810034999134750481539444126168987695535172348622079205950716233261287448140688298626833493866835258007774992938218580736863910645686352253980218607660110139701585014182420923514741650184189012385468192837022701868142808082149317132340556668040804938706204374330209655623143378269303729903174323376350676742541425299627601094652738651264674345465703063736189326702728171805916950125762818914375877313261689476808146970773663823286182982553763205040480181878576227986150200119611754651567741985965436734395198891720964891700470105592949744836773027827449653005236376254661897094927336144229401586286423330782070645736916234874542742605608876888204488740941410390507736904577771656403200673863991334367586579172002759381583149271658178139298403642783632214480160688845952758610651210794992692041211465257661309580418891043861079822490544992505414878811103416563043008103444626030267065473075255680610924389594319610787890190867673269575668115912563190591305691589211117300355188439558359455868178297477283310935297440516738977006737135224367419293969877992709693385401814122605418989352039803313918699943080660086825531703052780647272557482099188450579438933980711688354674049827981844666354572614522773202577852341405745759224252448103916144693751115842798078597241785402279244993784029092856929132033375257302928861479784197403484202755748475444800904328014539000019967464816949257537272649050701368492682206442085644458590700049522702790831001265803224623579368927050080915168480382136798984117796299846204416499521655023341605193774647559075903436491344183973791002889353470049815996020051482337124439610552120666619049136976769560149866751748863960806368150838532088245875452052397266353558405582365079149997666607561150133759937106630699247459730272236336836111724772664868808425516207426178510686463641539864873655891904505379888400307099390797814351976134108989606164071284531694831153103384933514365310956275709820709588068387049587481691077909586196075794323770325007738317105262618457805724290204832010403318527953938603875747139235217228568021342565093650140560932075458576058216990078746084248550713818609801248720234111190948189188787223319328977068781345387267202951433762816750808356626150344432563745034540860462195146122010030235941257516986300785504793105410826807408843892143579494330691969169359651744845578629914208714431037742471036311290154697585905930301985717507280005604580086067088763462776170939174081808558960635805109285396759347358518528515643533244285290806927497069818323868074279220811813338509993590372301874997170343898465459407332133148329265561530106485551674472176653811884374366914718839840862628235162013188365804917571043946089166280265494882538442960142691004144751430606945315951067338553312449854806348285314657437001118482913517191791044258742952548089971646718124317319511483857150192725477838918390438881455713656708666284930362261852956720107889867289780068056329122621501537333862128505647298424453954964210624537550288614265071784444995965560885654038425652548145159158801143308547633787395369221375418284242825992118220065851875135443392535759672223513160001253527644780562791266694275866221213050800275608467659923402892585701889811779991057971363738551025857313997535485502680767908278794345816425530102770058422193595325167120337214450282980757705993349533938719771509952077275751023397148289920345919265560580809357727036542183366658602786623659295149629276858660510229308104973555204070776342150316918653015837305519985375916601013956529107543477299771796518327124072589610469594659043419612966907490908795327699403762419857380841422775210947981717181326037353494113353283437967729606709329491674563201270569268691892013097581140340094536085428520338608002362288321781364251287622856576345259737270736554732486839832589674340803869933968052434363221278157658575761874461393343655337279894047967650889826371685184349706861180242268997160498603944543715117247645097949278101579334349381693699061109348986355583054368246480722289176150336927414330464485997351050701660408521330632940267715098966308658474414299493728177451257523701578676958133097415603268621869408635765213118201026574525948833512906103003746634511137931247170934240958939746206298793807250303446571961498868929751570543450044009132552512318423905160555894370065198337289706862492620737360219299983407356524267020366594075687187872381861146137899713398414514611647539654475510786314374268137676568511158152670454807451053342933740993188306291831300230947661984410873537681197993868609577041626647566167064055932018015779385276763670953731594003805159093003677765548811827963096886157530474441247073076879338711149074532303903331824199231753933210350722238286606593885160941098374934819337818275477416280256830036092100534797709868021301477123539685524828028656962329027981873599208378177018215201059306071463983631289035691309445718607654452751014005108331153192134269564550376435716697632561625609222666419112785137871221196062779830404663046633181501168456263592812533171367204122951232522574691619636206590895041597894961808405055742481946619916361929775967409408003909671549857996391979886511024946456698601426190572848474495655109778189469464712948886729163417580320853811242573075306921857609646790425985028082162949597252769223450414462638692507154216400099683829330636454814610295694997764240946017247097139593676949030289651960059110359879187969748941909234736328553286351712880008591538941500563506234081508221719124397190375582187149853211145698852008119013921873917180657187838171011755439129475574460574862623123030215835281795750800767209066524114950296250685619834876485827192057340149400803707777788176812793973157419999114023847862930935841870957321936537826853265234108839012549041489333736186545518503393985576085439303784227761447257632321034223407571471576556097249950304217891673412277140908326434508474475945318003070764204500091824991710876488265470516541757257522847599566906432077339656947831855315533210589531756088333932266637655810410849772168338597521525255773403581610925651197746149856743408976853027261825180108752217693761792651831392961710150896605709990918630726761477110350005909366994932948825699074487709844908380339973672031072175415727253956733318595775633475963896311545965951205431880412817535862460300353905831088847976966524136764814977444377158194974249242347864776969876239578595903139737663714410368822336035009419976768970141147603963892875850199109496270588885206605378794265996111309656865785120188700519385647565508056319550293560879822043337326711424393875031870750954692355652291616678794317591221222340669666754869207225564290677621288508486395359992607627642639578275825890118948189331948179713448799924611306991846402534992330331008647076838534813666784582216715361116027193087417061583512222185744836224737562777111662072590245535843320344042327106089360423047799767726919221053468337437893172788870161417543333661022103257971391640161015938296168209633926418012254242409418515315108241600521792887141826073139601695157295903858334820313747587554958457722306219926359840109120385536461406087081042882102423394613436700644467022846003435279462047333470416902734399147217431424456356895204360443088564044376867276977902367672938679662039002014079680021482720442546554986451800359708017758273695203538141792394412448323823012623920169524073464852863101946176520780006711530522560778364567614667916014513770456107545374265671215970396082696169201009016610081487378211408763892957625238469566211737057741718412352668752720881281030633220212045827014556024259887363749389470769457596526236714761356511018204684989397498306661950486392184112204098518634036240083468852028517369872266507926211604109310211033304704347604278957981405670556905489506697285001342381772457051905578809670425698806943826869556904752806483935086022097600954220423708282567310093934917874640032275601387614369504711094435971732148869961234149219185306453997819947363944835339966776894431128877422885261991552166591609419886498186637451600883186898605850965855367147993194116078723499563819237444358265758729562361923110042368952930501928296210955544618742854248000382107947586268312211850192865452293067374919652525150564704265934435403142438305273783455268445005048522224412044600893052849243127886553761330424144572094639170408107683617601403883283916517210810144782457770151323444780918667075898629960801567933912350328190707301493605145268967600985950874799538909179391966720027541483455997401203481120728837149492022300267680598958013059830276889052472176438138430342654252530051357216258221469764827717553343035392555987025886609226330810566033225579883365605750381955153762860112848626807196686396356269871575022342631332019355274288699631874512332624099032271817674046968391646305515473982545321203300170889249787424288407086516370169776791212564883668433909787269989089994011674471839381123141837486430666509222214205186974004566061444942179227175907718182257834594049324773643165130956927590555756449848057007542888092790790850930151004960458792893186387002193544904782534015540343060242226043986527275756986217960602200037724594593871096129120090276871749826354980132456891137677225770524253097068518174291665358933922014949325853767652431216207863539891836570970449939223436392108670881447680486229810999094388589826374771533407788870301024018163405755071603216075066328851161022675001443551260366208150930871833055439928166100336769858594526844331636918430572496410915861614211106914763121940161770157406152397450317537311511968357424841551712225187910637889418107384854872628006079959679660518668606880384387467816053137962301386355815323525361045505836438994093563342616159346834241578648000439772968298778782236096304521266784163116226428244874684676173114646980758911373039964706693798607019074037692105182400244655531371691702267546759697615508669523868355519081259958094500062401682657399470902868061357499440686764873549166185417163002010691301946958948398459269172133392202154446298085433499556911549839560136258743375456543064999828487054861531866560822588391630156169012446764805001029380588164882608081448421122333971389010185459851272166286684945434235467953138287781143247679871127866511760315348869746864265234535133313203993388797331902332122406392096642964989505163245157882506657224414883491845681634262216333765953684102953433221415861141124518838344094763124431306601269572603967645560958809318551566100311672699729171727777068702584572467153834807003432249617955024470234124941126085240139510635032247320793872163184534514231703986366526377789515424796638971588805808137944251092593823312971796178835793418417004562305684734054898939766237911646064271156731954099100703213900275386236366063035775261913479249002991814167064264152068402746621979026854900131159380041558204645761979646370901661835437469395631973038857807316023644724076092233694998880651348811443007047947077474289345956354541877757064421731841148036609585918825701097269146807533066269260345977891476224988950402586258438855286334769863294308196115463485506456587539853315334389479399623017499590170187782574060331332734664889986082184583339566597188388081807746023621626398755896083208805574318530771596011183626536701962976428085389668929226337990482879882104573859280163314775572850472186339490281989673163654151566031980356338316589471919471539888135419125284925773347247263658462926814729706817217985369005789154584214241433597762436717378379666932955506247720536592539867005684300724148599690373054716330558051810742545534499436133952756877285098659105593861986666718579342185542322785333897963426554396847750771607965056633159562285159756522074990294117887913732199947326482744056984563867070328811000180209114854397526651224172316683061699831366924192326850417887542928810014480445833590324238090458525577529544032788243413398467316943315264392584903442105645324340006241326592369701062093237201800081257810853638987499425115486068604023355325947516442149308753021807286716321985626393063115335808116774401064572762308646504363991775986477473784154201219681219417079753086997639079767601988982404685053197578553528174545793329060801538987261786861877587945718952876998074506860530489132080630217042827074384063179148378742894780489447131464337769686181576431345583581754899798962455726631773317064362078943493768496571209001554721158591513600965179823944072784973941322935335283678005344159926712696361381792058872071109078693303055044490105743296475820016695672811381157594802697258581945974536392256367678621137802607003860558965402683409145611766774394508545805567803678872529930789970546894605029599075157691793015012519212610402941809904386116469863947751931684906266926421943968295399392696760488769035127533881361783092921430399159374220105381973202647341629848183476848568704095285074079917142707214118826452451605439955991878415744002978285689049730519603373636753506309137114536080834999782559126142214749524875193735348429846799050628775720090060197702137495288447618155574591602849321016939080924575040121141202990864176074521713816426268039592888796436219716382114338230169164617905803690479411600899602073880825110520569915294429546481176418849483630114494027729942459231557864572061818596223325812320660861730085201205443328517092471354274248778804910446049502878797144982315667130472618789725455635499796960509644635492728539116705234215307115470649101436987730120841423574641974181910433598130440394364781671311953054491182987788925309673803438118898027164226255274309860600285802434181736737146104830963743507153072244942339524562823614299911341567367910058431369657173626938524804023119808371549068808043988170692194984393733029944892543872730531236438326340577310316008643610797820016340652870337972100975686008150198404908879184201377793157970556174995136104261299973429531826229664711617520851269867341296374147753060877931926031465069943197490392328237945772497408200407847986275159262418342868520352591650938811100115349162008098975871094521944659868486269513668146407810924510735485184001241250271885907578843797310774692085199236247836890424215892469256210394427680297509194215448145615102483857672922373837452250504694456160212231046937680556535303955119477324945774276645026004213639060334696490378798394904697015922859650331661406696857823465080543226378352824128585625608520222846357805156382520351185918408685941955831205743531411143680445068842399987419208550867969198851013016896111207542383692430589594415688689839548543562685637104381733330331878655099411244526018813535828904148373318266470182548762957121250665523649005723813770759432418698967637664628010156037636351686633906488295776455239005975711339462825574078904396004715095105833895460534460595742541172013947852160350142760718930453743003595970217771874801916021917546683712123420467790237974026161647588812962883662980465577563641579595534259951117649655498558806490489865618017866264375330755789858947238765064321587821340751837101984383524699259965599414318547006135865115515266148205529426243512666218206335443271825619157332854642230192820443955204875253469331490454350683479616065328418669751587997985980897027406632074228018731229730246053943145036610034163555006467138055312256575405911798202632707305298535120942785622424726875835201583107020637342136464211487683274502046420289568272423400109539973335161099771760119053787434667665950002003710449888384754292374627339909192611245088418733128622800420051797105186325395645345310031808844672518119005168708075579245728833989659233331428770570152174515585562108902400612414629407821018142646845657520004607051785382434442927408611518770230225573818049694988713835543760578811646936435235183215025023097567176003068287520321851342875484936699657924225774557615805225349492852426973967658350378337371141529382803659705971880290229939342179920399681661436202955396557853152005707915357049373646271993641002846048876296200357619586522967717527605843062854457696732677327383882910691084131245162355892148081394232253659139744978979131413705866954978866502644547446997603058254530309145364200464495629580518611397202632766398017049998579591390610411022633862213577711095136665370080381275445534162372361062041835377186988234286678407580981590051542662246187755696094399274652682466948608986321652625471050253872638253624469728961341930945221448963711639986531226682238327841888869313764694020102558166147109384923393591526540555895682797555617031375306324763148931699145885263431030271013159810361942517326191219130635372996365393602406019156484358435805058330871533737263329218889099524050204350878549172837174415941520299232313937373624942495502613465508923273799324292219834721071161500542677308716615929488623072142664461001196423997776759685501820073988114220120638092937982468334121205062084303568259706500940462975820802400043963359988241787479132896445559899389120550863356645923531686799193707537608073287712364810333042583521106958187160712146609400727746631774279165703306975959712316704017886998951691555544958677572395732219482876594906808243354237108934165595678105966950636376369302166519905029964989306029217412628161141683036185154592337612083698345780068650082155891779815422571704953191511127588596332732565810484049382292509007009921545695234993431993397880895104910215836779994181115144768653808743728044701132228510924883814908977927588596464758754888414574194781310927295263945934998751183328927527688262799594308475417561453354091264554365287913117838204763896569933143165083566650552383044466025579361859623509928733654042534184655963818597937758539862241640531413271115433910649231757895289819117769834097746650749575450679934689385243656678586295021464497078247508900390494981235684273715426266041721697002621590129932234981637523077034917876739240708919965155806897286787683042818630374783597967899681309444577589831731921058196239260077873357505867330140759739146362360527620520848219303198871473350891034157783343759464112765283707019052170792470767012299393520349266111223039320763720746054244646122325957086309964858236155302997582822192627574350354230259631705510025391940119390101504282208229220037303577069539295431135934129865574454164505959933744748814743778560303203152616939864739445981425439952677688591292245762455781341637418185597458268313459758484872170143422796004173371332580366803692228437431752883994441064556115668037350646227286314677755699037782389336251654925005890854136849901423705819130055964352485279247004972456266873003114645732194350382553157935005101280230678328874503610176969289166965489995031584839337341064132548266472705149672623546378918425591932452278845249187810763582159769658123641003087640789685812643458825745607587667425225733839668764129082721336768078298505442429735893761346858638966886858464036308849044309160676684271551498079035859156768940835142988402837453781150190887694978465249183891373970233969156164849530621218686965404901633940820793435058171201722232492838248720302554213586346920905332777323694550732595089221671442902639881473260483031388593706837672843448077705499954413581592687825112050355570508157774735445708366801782154772929477032777648526249226757974918416911471855600074943039925359754447344024119730760741096034891288180571224214080277580889261840991595199241839039816759057399801416872237998537922169358402159924930849160806648018857027515987724027327480742719268048138189299846132228992486572880496442959218609421422308453321792144387610938250314068095778813838184550044465833260480441886140631855576514018306808552852489549812634871362012513909963156151914555454862225427842092711405833144903723209806109341742385133882983202318256963022236828829408413669501368844269918122957343536569782802964558147967819652147490696076023051751939858129776213906716945037659857714595251465902966955803484150473637421997852321019429289612657594141144006089776506001814787326103790037003413143760697067514568426980669584021890550379336394061511470725181643192641678713154763008351011299292978169842109543067903049106702800273368237651713859302421585062598129989891674848517260668936008158289926884860119421245133907840714741476993270776628485510322583522731603389496887023279475374248278108407139964998220103927851159949099145817201360318741743553554102562378593785239941755149150760463337791436844569103557758480564582481340282029131820495364880433632396104511408471556166262404691527212202802812834753414541000928349018022933780148406919927925128091252741710280733650143622928821364750340676258690682927588032578506455894875209861190501390424287831308587394837999424777764803319340185802514492946678101721418059665627265065298204934890698363468119451486607249908069721240830964286468917868706261898125091940599264730674867138052023104841871771621821334231729441276131683061087979681185201656573911267192852765325714864649741015405644826574881264145506240039681308554085268373933216033826733903455724838914123831592072579759742410304924031245926315650402046597106957369419225447555431421905869050497552582815254737936996299297912289559870603330040214959949569758279671905030778155549372111583885512395666895800602167410873975949136979630933542983038081099793465971480559158611433665583303169588168250455405170389146779097178040173770604065978607760746138447382813224113366297217381097026734224510767917817661496364090429322845278536664270576195334956444840157604547031129256603629744217145886408518124286916739111925780934332154228826287242214720456730993837338443526833478519298541640747368036017208343318693415482655435387162204708723694568550923235859874031225793082626848799943012202713727582800565983380856995954596026734251751002846555981919206288878603086000287494096563651720690131543385964938169178975317787516466574737796694225865774962313448009700605292205534787279869452589202753315182800545731979159647489009839374329891515945471234210707973309323923659837367607153008070947433777214001543699448906980032492462121657897777074116533389240238236005001943824166789317285110940653095208630777755588576799460663340506711804799241809662911438118374512526536510706103824859975189533732291784471602871290421544434582859396760477131186454879708362637458829473754856978238545642502770367168050867569649452220729414218318039697016019034770021565684220057785582585131647432434156233131164621770703347803923830871440889958387378049758100081891372394680338271877571484857809747942352962226316778634582922948978281761972500180427302626120060222338635652033563875609324143690077242466995109556794686223293650019689188958803598988565355785361756876018487704777751896169803711726345704462739073072423883697338864268879770474289938062865607030077197916139892281358952043199144217127895195361847119853445082454822610752530545640495098654351021334407601485315222031093765034017525894885651119221484298992689298255945431058167770353615764809183325684155073145360883222354584646044785309438620753602775472380908898747305864389620994364024358960377840660015758190071824946701138641133643463724385929171497949860120814361167845486087843363326502428491945010518718305029384384118927531554638291514168656774741961956017829463416190896210595894433622582962343785389146206944412678593513731691319081885656086290922401689057040357115837866519573439309202149456951494623813981799791243505378445834541862822503359818402065383611826804390630836796660281020416694189310606095724320037093332717119464616894956263733117279063790530886249012716485462389743400924814588554863710497979277939541530250784475054187844873076174679751468492585236700557584462056371876120063517996891272667131351703518618518100915526848049639872955537658452628580466626559399198251344310068470234395564008250514544483422704729906787738020711043989503889721637422177340946395216974922328670029557185283937924986851000024781025171227752488222285807477013730152954501195618808678956075565625587762991176073361666290929725391332325913124778965374315921072523082985207501714908557678642580696918917478927587391402489570744712332433505893509995210309208953693849460098220373182728955636513164256884508717694298659114469910806934334371207150536445673757407103657045589669969827794214859876077655503620639904253278531016198690358426886287109780255323641797519868437154787065592467324251494904818950406295607016610133430177123986940228635944136783226004128036611493417080075251251062800658659688916575041492836934598901432282321648063527834488325931878110254922706531784735276235124560977129831220542228767283658203578256889469422066907666130345408215394355236748584220956978226310657145425859526919843879391435406049897430063454040010947686091918234970662874740802791994386643166997669639223504863449634989809585913093509581603364817574477904310031592438843534459296619975313811974618720294791420445065306139198986500833855783134583343681246343980825444980706976746142794950028976854034219292251437580960897455031545876406773207711289203493980420523961252942062758426881738057037138679065701848556959591487075143192154759590473506776875800548136909521197022929455870790208069373391470776941730699831567032655966182740009941923763905824687924277120526302605478532523089270909339343931812816736940857822320444720685400241717851723866588971647659794467319429669015602482947718362485172886369527511896584371905444311153527577304458099510660261452273344937240718837450545432229980974652289088109531862567196271075492707394993147336336899827923965216993054480982586987156518960820403593218112016231494652942900259499246928968105886075373347615114818441549127683141856856221674237238854655676519702222978209248090229046859731285423514828473205733016893429738769279405088342303861915948463599409036500385087244694045716975268854455206024070827390711788382525754738300186042568005437201884309618946180396885411418397524354944560293827152050984876793816830766749302749835994692454179908875986195381409624368942736595512911265651504281002491524726604508870845943778827804864505975175037062293984802237357084975664372810996513514669559094234482101253066002280172157329909265209671892275914848654975275066587876251849764000237177096165971969866346383715723303028851846962070778360760572453093734116563039184845269720867041317448409611547881295306375502617489113718231879666395445322747450892915593472504623929227364418715132396659615999799100851409565758860294569550542346137533956046235749004268662349629622688903824938733542773716156088261945567762875591899894043067537661505816378340375819548713822519671729269740996206252274696835433721217996725640394511525083467066805931344107340525784621902821224972925197216967994710932284564361710038849965969469318333770865872347886474736828919151112203240512503603284957483948463146102148773150688873939162413616386004920938198685948401246970593752907226066139091581937580653238731094190688591182033117009063118911864208263763336061875724188551011979495900037752770911786659178790178727999673258855535894295536089419510243286777856102305765712520201103923199072193862338726929160430826893770391120266043572750226659754483837407982943844888568550065828690886032133462491144812626676963174414458156289110897041689943155048165817443365131056799377588507636071727888939414574788067545843716765948904097229827861504253631598550609942445894629064843313801501326167882689160997409401523266552351403483112155276888058525181659569437201448607047647162043234787347082026601999327062179619388293264175067317978748868590270873668167598351757091236991035089903711993130410135035305388054945508132063568085140128096408183796476168546121461913061803683019156410355994876356840613685572131556449231362925301973974743339694249078832389423628856410536110713741919270150327692393394158786777252467102750706634763207725870756872339319462191068196463195999040503774772940103329906655289326566002150593368447523337919883365149916651918277808499048387436345768572942639940293053148486645575606877302921654275707317254452405637363332637306847853680801435307108421696798174140634517088757811278220168667865948567754569316252034294337416015344290150597213684882069294528455626121984596339999377183540261282455276648327507205217398766454469890755746735454183201670111170783433020496051701012446213630977500456041268216409725019784439363635830899829408018768610488339896549804052020020227483443450831291957937224430827835234731529296615211384239929526804703006497416162082172242053760703310400795527366540116582228808280325488584009133066793399023276985767849076079021220219251275196285342427480073134645179287393890295997662190484129869082199861970489575243666221199914321731254124101715358751556621790341375967095699694166131436753583074810621563082652987183085671650477620903522322102447778963560988901448035938300846761429728221687524285556081170624567168313207242692528415898391665631093709542168569407506392740374924149118561578372202411898618133947557145761055894594467430149007165712645249001563222331797761693609343267492713446729920291927205710151433466955091590741158632485520438945439544831274606525982304818472124082276295835137153084969623874316040978633390775462250832670575007352323533563668852057538220769180326905198235457111397237810348246889395413837255115676138471817400885160252003245562304950552429099823797389513979089848274597181068266291520219003211058691960263990157872197542191175469646107988914381401727654967798538447428759777718897487465314324772651694465399014405973608187416979076443100872856102959373485710374709885319604347519976265921789248714747957589227597193745491707294089763308817080741818964347405499741065539670115852856947264031501860065422768491439309954482195623242303083430019263632285491096905146585645105010399594287755599025627727796681358073360953558785213769226892302901436496697496870916197296658414014946117952239313265676752531304995385091400662040765260375609759399489497147264832062824623165028147369372540485346204465342299909314432991133222947421055473724846417320687350604442615739113983915250721833887281980307153730363763315123339672613462251700957002560984804649621033174208417164857559651043132658394291632156520893734421577903203187428182659703106516059515227579936128060298662889542970262373886338683150642431650061008592504944418387584088809211287703226825586860022139354995687015629777372892366406086479773763152088393833674966711962134922219134582175418551197685643059752292895673502329557383039098840933130632285888110039639595334219216660590286949724559021058291935456164987337870226561207589448622878481208932243092997137043035187612050760343699978871685406573656152448897015520327444068466901886930091815287504144808358500981881490765831832262984193577023872126564755084599780703068730498012388394163526385770875609190806912339496852982537730217324153592826178826406489724843816848816429462834073703378451636814099364724690278090370140890620874494124169507536396160196292684724317156377458087894059793013655365893477508351175413893440935382073444100252683043141896061727730394398154649394175225045296583090984754752805370773887092800842453963261127091207585742192366727600987146272682203954709223371257030362561221929321197043011248832533737663655965390280992411171432962271771002760472245059923781243183583096670838614071326219900362443021490215768428049806874528997419563640545604448444330214594514234639549772415378168956743395976028746701217255192281239214249422174394412066158850059127867708886352447487243695685339281040479258423985675087793952896891268884852978661306873661358832103430868587565071576445070950231326030557698465415304199723333289008147460969922642229100317248780725000466190527141537372618936382609741033533730499643939954719421112103874827928240351904191372514669803510007662858574318862220171101933681280458227699545950125664079682306893348874575166582419038459001943309767578854516530359195676667862030764851649249315623332595163687354030713535975857236515577386408497990919595175672184323231201511780605332710389521954350242419784920406760706136635649286145343780323482138868772809818403471595999686832251595982322902126973718149821559645768148016677196537070355796688880772091688300412673364382815651622296836271040570672990970105125316997862513742018106109468024495996714617551330914518664679230669974586711466683488626737722566813999253437078520620159463542344610067334176300357054888437724800785384890179214204484641219562478866230634878298615674577884792440568260871634271151382731503522046457029060138289848316333226711189478847691472069310366428069549635716683509160956575714498881422144931468457705884308636407335193365547807128214082380080942676124299418785206267317917194946342023840176675229728795705526390249728787232776999797249642690850165901265629183643794736681931891765958577302696605262298313442156789924559980148602536285329263739916535489272271347724725789903853612458920013028478005425048880296437634076768033762699688011257552189069559651914953432267062777093796189491575437319648979578541201794841497381776015083918505370290590587500086854762125217126248105693325177095268532644637062049047027965944580893578647369877182397739290355399013844734787657940893720837076450342436905494083158809190157414386923748081373881108322773309017745402188381066361189669176730749735602250807912519453507400572668697586644012181226104834526856104784173072487378641337914768720237369489186255121400828601462329535384894049008047346895442604061397303371228148995241611867891487767794799198765811919605133488454075455285605232972685114308415100820155561780541883038068468653695243149530635029402366370012837857748193649600899880407801961715344416471883971724670927649195742543003870141282352850902618193219578261552227755253789696655283049000179214321233124398485578555684488362566521520080127513415140778535905355024521293348355650653104230540660204124161370136678988120595221612199082704810361084761907196446014928132381848968670373427059436655011773060207030215503325089547765865811333919138570495893898014571247729382491370027981414824245762129563088225504363570893675879050801549195479817173126478685218603100790570823870913383046943375821209303361387484613362198829233727319824616127557399877770422651214878492750102581216640874784761732067218743503405812367100972691827057724280237692039634645441510785835724745858355734512002138189549379288550610999244360814917311298731599786017880699534421922372335891661016161424363113662957463158234393730755560473159790620685470937104488787782906145007410732823538554923052148561255707809579122117222442004881388528785388455554079016599613501558760070426369875481777649380830290525654277703028125616223042518818960097480318675936292574495141347094467161970953087816837421799620205706630511338861906493740432027131954042122504434504335829200620169162726954268900612968804102061480626474157763972378937174842615522558267901161266295078382874979786384408727993851217891321233377292499180001648918897661057922443354139676551062102410096987715747956244696389501748276594168451684873391683791645614787757874556764918800938919647442835093564935509712929003732687961221619132072916126747745366688489156513827454905740780210593476481367443742786918132942278456866693916762135716076509773658453744247352810922443662128353890984942304448744489028417634815564813036154182356323611425416479558267302415305643029331605656591955184529049631353861559036084437986624521868710251771566024231290247488218575533546684215990752846928775406966428068324024963752546788433955334753828699887554802412633967689065480537310099571408776103699676254199830357414606813620792210989518799106654155559530236044504391824231272581052118490145621019617007175348957642364039249200844995690967625374255389797515024192124246303023888111111407561844536519696189659572792775901366340937166261360430318787943602623631425896393405113256108397037701546310161531182361338207489860445376152476225692037513511278973074414071805793138501986850168337259536352520853592759513231329079511629661147870930158306239158049326658062575822600750040284102053372325885359296156053123875777742107592785090233080808017713059794231669503589230629508448283487155356018500305733784281412503761903273415477724074716841386920201284335345662140180294284006825153922197315618099391073118388639163454109654797049837139674932654991015647217216501452450310542779289877794271735791369104460777306002657258523095968080345599421852910202637762029114476888379362818425110803249616095862843057198541265310889993408073155050873776155280965625909794092757513004358855618190545781084763108596745646873326761093454139095285486534804276452967955745081681151024087234564289159174351861314588954447550553292360022151048905486481720440763913888133722291426102140582995372919543032706341306056315015372941035879973993279002809460008248351947020063334107901620341843258356209894251670449327580909288636632621312269951928104297039022702151500290686648403091016967485522371834643678034899348215855638829588053914677140263686799984859860071641574273841427642917721144744560129103180961060064523544347288993335169166072371089377416399741656333011731198431261646433043575545888004539374488773842204648086623931081565241755193072175941617192398868337448191089647119719150980230662903310217080627028913413158919181655904239250088809856446273628607839085171385663920475988050810909524525743060450210764666192257497453108156498444391090475820205397057505736397445472079076821944371935204761526670079315552991450403074503183105224334879944477167286733968258889312537165967230579819300180608083027514290379650594566585938296284219218150127550090918105700471924846570311004865456647092786896746762907716957008412685057870005955219952057274879607840398452733927873384929470559650750168352034837482039470653225195965773295723703112991966287447947111863989415027601019667060949049689918458773659955395920701560186525908707547177052632918370674427688797426728906343850449557572210848339642737462634604894067789655614350943044172947705707839960815411037315028530654893506186121840637858913130910899307286563040554281882577799167137884240330531954430046662943701244773958111978472109178361887184917452611283495781894643053576308199971287181569923462183930044496355493248246077990415883833807315579183983474147310347211408071697046930139380487711946458227066999977199340572922557837526639900812926601828072620173753289865242749210936273785981340775908974040824638650401827561786819052996987907078753979181036507893113073911959589875158218131939218078402663679761443870546093934255274618687640484192193310282636553065414369163322445891447682790956149057046224228374705313334473683574151689972017733710764075901750208123317702136463769952228952231093084300820725442882518809891022589249786579468190927215677903473404719527051969300365665101897579134883228985453024714778255013032976017970880313521528294216353483747614486076058819393767752415445314589296660517843739319105420637794226035920849384430173530294275342631229356692949983425503424342188461994211769743166724457382088224116031355392794514799186214392743669542639637725741797010597523012236505819892944814415972033927368419586507481663866309458310329999701792431365395534533048473573536470667828967899190664258339248431864994851107491326716351301062949387230902622600469048378862029228269356725176569764784986404895134013631442403080032425445829474062001957195385390897798085223193345953980793378481842892860500405075023284229693054774804535988613696164888455300585258507451744474058295845588091841943072374360952049494596696560359389001139419715002532925390398530856190922868016245359485074640877581017245708620173516642091175451076414062933519918265781479529340791092774786801898556370741747246314403731423707281936441973216441017207514430665774295431899219824110051849640212191326485787603134602954899063299021035837557892464226928115168205581902208511152793555194826631271111430138355373076672770556500826300944696673236976394782645917432316492694382806331652371447311580017580567407803700148986087381989941018770944872841801566851299284339809543629059277997590522193841852553435211116472058384502229039170457705693793504301026019726117081856118026462006463800940993771905161533105430657798651637545194438339405244965752489331447780757369992218374243135862918760820158379619748634278907751840852279311936410380940648697473738867711872185419735327764520341748049238126968120788594915304502997889636819360787496775695133939345126948990994731159564062920005054343675064870736927819664214485335006029053948123711310912506028471433216033731438512174224093014421688239956566902705566376981320614177103767329461389306361203487883302292123566055939448612064567521376567082078776365737108032269248829584148290678192581749481048027464861701855570710303522945666709068337784855407342924929171194911805827853897728759682072114187883736187128908793630652457819675720709374572956281946747926335011036865796582004325227263598389214659057799640342327148445028831290577016615156176099367933711968781590146286518616224845278776140437050913204907042408542494810861599280506368325912724808145678068529853245580649822726140928308221905518836837475597948634730265617217124806828159565957581538120524654935258815396300030774592834645320012895263598038617902145363721659110393670742830773502900629958944783667823404879666804744559358931104919295368066279315132076484076519851715495755919878863403615976918053339865095558046905940827567454945835587648709257084829962234259641734429778866637359154967762099337872086621485397512933972463792809844649098202326402305895529156889995706514047192026583196252264351147269454555679364011880338900250613663441329805103394600787918826269039590666809523779572177417569647259342861860914068369864865525323653081776879407815529262459200812522592018217740857855698350582329297989862000361146958677214377723887847770780607389884636241892039028062819769733642809460404311980998558962023617922065264137020274848116524044776883860659421273363006869160837420618255379011072481070994626487321853776118965054217205993396159310015468523182230775326835767678118069152512910506742577879625651100858883980588801217489530831630388139684834566975665984475926082600902680928374463689725678857556663285023273651970648424376107497757439731846724836358271038939621201915973551239106603665570420356968767643025852006378156575035811385906088028144706047143961258834531714527608426833894818856639505344462443660699094288253001352523368567846587295790760864509120292008491864648901351553931071256257104486154370091837655275977425024786650609020813389342501200550273391718837025958582480552085091603489616572129511342144447893901083187552443552799464457360040251921591694449555521591541645186457977396916785433130687681139029274176849224270377146867607872369123485344191151960198450755693952651023598208376287864299310219186166595921479874686791204032386630785729334580089297001965369675372537205727581408637406100907288631538208473214689959580902861310107547513482809669819341349157314844611532479272294483964093706487878284355033475402194234443149157143103163973663837536811570756206951332919695899412422987352550782952854336908815756561797484600824734478858124762352160424558758655387185459145674463429057589991536030746921498831548467147670395620493360071931433047760664216058220000689883995729962646452091689292972351763460202225221009024360896368944468162740407660927888815093348113344290648296105002961682892873614435494444813066097778780868179606608744263196938841912308125002588002263536758089569139557896047832099954273051031349222104853298906851563737009001493588990421890555299188093897479784117390913821680235278841951303909787469627149918873881759154218847447089038373203756292828675427134642404968620681841747029539017070596957904143763402588326664769024750571744509904969728485668363990081410611446711637920252657848225607199834157677515787774325779232589515069937211724989047082467892249886863795982384189245877460835095427643486989211574636566281037198547605376842993859421245635013860576120629476197355545723418330215621116782784222113367955450456143959500276764639950182630829117122857332850218999637344767110274615561212237315565180135168897162502845184321705855673560697921917337478924448197310526029806333878012908949893657081314353258041498423043564732339888283732515132520228675845291638437558816950943410514708184715805513508106345378291828170307167070215414804357286663260207272092141141256894733026562727970792731185965592759177711763582751458819933302939566890480150566375471528389950991109430224302377112399629369160587616517645712217917417243996245943179859007010746921486871095698899460177403175526011608158318455635604565137824305657234278674073761357530047630323166504250280110816350387350471923732702326763816268485745719422154490477269817329278749189462374037472834184548258355443542144748187089992660737212094484570514218196814015434211700740436609427039757148585458474384508264268952913614639551443552638984957892616428927493656732035046847881609900784118672327812557772598183977191697782251577893652739624592758901286423294714925207112192283120637966584757497553171766944189755927190204704532360547127665993868458258301144990100774501897302904307306118564776873723143962412431845105735499239549552747231412377785612799384438274362962200017130563489734307632251287202324317379572859231138325003729080039258258539065533005944019591479995889777011851897456660788542821163861324553571759946927064744484579783437956166417905194952571534824098725221508777712327721448467910654821148692364883668850291379942484989697198899255386563470358969901008903489470150367697868372840675157460678118843599914929699514967520069297833452623241400591689480443153708701271306818809305842991852478672383772626679184984272418651348701628381198926144597629870290363469191439984448193820113809297987516930822701357789869884186474429594364799712101992971768581044404014533492671278519639703875301013443895400116428407934781242894924195915732805331674727919972063702683006600818408367428060536264996252445230712966881821658239109037571671892103891115121358995075921111358788395724338157277033718074989053387377089448567161361687905622597436985483553273309726295297844234369386599289915413247017440567911866117620416253773234568569825313249857696062846358855482437864115126877632464234521082063711165221433652815364336253023520557513766807037713137086556658273661707882998492452261461449661317913315548300672297122204017767670705944452128269500489780442238625838434989936089298794740138853432533030867490156297926929096716165791920093778136910286602314388668004531216775767281402771026187685257383439653742711506960181199433458720085249668728726099747449932081469553341755194578491641630356201325456281843359850437113662751184456645934817279020986681661795450253242987147625498695834245939065051463435398692549624622550345090144226691816395843330184658427624625153665637447180116470630136244913437091518209230422429256137929767001953226596691725867363165015589526985110260641100026149000169839329579606781146162529485656945640313812677571743829176602612357172746842739133536271991871129031725923840443637525719194522958279038226707523899777997837297142658224739868225739087559725687742767579015749019200358845500081728081556362835228097746470685549897843476225810345508248572577102740527346133346248066789512031171219104079399251940426949343557052660473746802184201154879545317916522544515816804322085146648287507442542831857357217589489407227464917651401105989742307514156441794694700771163341950492641699615540247702769290138762936104841809983072625318409217209819798227529251506618027031802372720957704365265878809957210278501340730998671435853556969187642341617403557912995040985472291935584612264697994313802480977226943513368501602543433663600889264016298892189276158293700058856399294708908742662196042591423788998228074263704755658081490765399962725897087428144094958764970091028016423510322964382210422814853259345868030827866168857216390529219036741398722896243893712012887149545174616385800631119907710048606670950472146681613582026929235160807472910836045001402931351065318634265491118608986096270293066111968678399457841647811388402340081242591473095450783481091458049513672843445482655520502049184099994299901249943701425727222771727770250800622521364320379862542503384972812097573041395067504394565001979494500390098851025196026068198395094736504315028350111897389968027054353701730758252858000200054316586341923768239672280566140872845933265246947495779004363807870172702295770843090068838323125899820612422439492523331799590021332821391673077288895321053380377628166701772602843094840526934405973265681871330011957198544546029743000589759510258739604024627600194997569196648550887583955708253640222640135411321652275579222163286885621815606914088664647022676660421257766130003830038403114443096235730233414878816031338425917018295756116346127207872318870492815495692216339554967216417661302281998166979237776345138706383109039997457238289217808335159419083651703902744739703894358523936206344940596950945511297352698577277951060017275833814764289727554187655246716847928475435672562154595261392929950421524104477460874506661941802514609044707852584801641215496749941895476580610927104557123846126621051968797337208042523790932463780106050828870671751290979307340726863310944048363589174615210282357580379158136755297628114478981413219222026926617181415733387854760995894928930803480655145952663353172632018146363916917564564988148782019848015989236316005712696298445208752156645157606869354513279886656298856336830763585448348656980776691032297473093640252677731685023278005028731253481532979117627887853150838552295755071729646285097743967478288708624754231142149629886670327513236877310961260499226918892861108086795938677344757820220877234305866184484712769736484025399694196478681711426542600772018925339941228147404330790719607699480830540257897209601037929076048389777520475364699061839894240818732700387823178933321461782314661146659275618068030208896689100442677783940822534990339204561929764909182102383307581820773213082910382547598855701834258955247519414537539632801312604277130535447884257318038576384021759273173278506944069481403363730529817224602121682466459290552389035842294963408858470451897425753872852554896818964373991074492221552170139440920828171776428953588146904289983224168964000043126472988228676084121702753348031695643288353248740108169941960727588566603589344209682113538309792438175876872077187206159140728046681446389435636212676865382083544940473693583947368466976240025351453786381045613352040162839631707890847117479388333331042949571473236082992487397407291181187528909811224962446052462264454428527316801266868949658160507560183168054250425779216374410575264044483198549031291141374140349566284671722199321047039872719824581398485362429535922864159579488774447135474856526539856975612480211893414218052883550175537058796244686185009754827398846238023397772576730557829005803769550997473892842602259740521582739167585963325454294684582312213789044412703463742807491668225625575928025493157208143962976860422610218259710360452568083115279836228601990661317775707804558073289693008655637500203855028270615919184728568201348743042799910419874601717189994200988569656557320906655119107404706062723183084316587435924787729598599019219931083530816169323629048149388796289654386573400527427100635356970516868480154085353197245195570102985108057444792058569369148581789200579326959950826605978593922014882590335965985779925169070783887983859414496008695963758816074736607649203134176665850944398507763312616192519049565909254105251227899198130608109236503635539855462648657211367000949604070462816789216504499498239755889796753515253608097699204866787336697056337399035792970099363510394086569877798338925715614153316484359159437068691316700367789172749924249361754232055030187736693898789757827001064637201605212786504985719085092191816136948561573001430144716095657618953247978072354747043591701811918586148041184898707378031004277064732256920497871796003597563891360857902433240209239843436948124469269222176289666326936306202194991079447432001475435066919302095838702585790073214438194412580663199693488249881416370012385910204971909458593112128656569642864216703641789741152425339326804998693843525059650293167636562372475887768866664654577764532817948798986599099176039044486993103382702918207369553630274028190231417892003268291339650808935554494070912073021108194936246809415189829879439938885891181613195296948997629997585832878902892286924018353772822580733328710126324312038252661534946396130770486482649360215457115747128618255857317101589663536280932011338364281003775511715490138800317973071327796641822132729957405368896764029277445273389031394143245472370345821314346304388902161415966110358824963783326304139173120200422670932511951385700319783979962413905949729093524012738355084491357675806248683921743715221387925598048813686599237007779067192009260379527162195102571126672542177083856321337034843192132974417032572652307993489489316543968854743320044952594845963210724645803503216392535046537560879986147671939969709967221402683965631913012231533083950884753396395414187686217400324967956054969699960207057611601863378651549319776672437193358130592701141834373610002174462216289019717590497218181319233573412711498808266645872252044408797567278063147451323831074889361330470474332631414990443051496357074149541142956027407206672792051282281769683572203366479993724531337285381569187220264361725463075670369246033283862869580832307364295471343796419509075677663134223484638403232219939873242892692346972818758682112460424467950808891941081953793696546167629483152873351702694808089567427236952303808837030294386855452478164273547923181409149639660155963695428504202199854897342889266348369790791970369104980075816624057378946598067856151667917668004075247428720950710545657334199222961395768945637120173229585124294513969724246552954026296196428172992042840260951014128892148537883932876378506899826463539579404081561743036611794003817899496042136745372906478305815206716973126044356342436535796191768325258140266085925219407466624940072211429353731773181203977039503070545364857054940352137416887295425008581573990305645361705581149712239107599782926169190113293485443700260641291346983400102913329228542514694360806657921725441105181406082657551507054580611721609147696157933851453189597387024299596846037418965386573362451231490365900213180274493388698649435491372833101106543983716816115701670536183767847389254770506433988457397031637924634925119595288614539016570717347785726355563145151524568072936175675745780554019987215334446031878117914447698543407502536136402715412104920527356838295832462449668571979270471806567725446457050013108428503649093444768032786081168844953556809040449459085747829547888177841284405629556208915089646259638679001293529653557892395023531006788811274846435705610687666319857872562545714450541418432432001090969112375282162582292956407125570826305468637029771080785500679681717704728248327619682917723610323838355141480904499922590511059339181459649606088018602607417254562201070917764128338995681167208236334748915504604160179305498783468878144409449217126094659111073160709459142796339613112330690023866646996151669271813846906824439789048945818445995807128399794167223299396625528615636571318341562325683190862360325772553830670879070467932265854511709254421066181876870884297475207745610231816178599042202968222935610028994996404630562126914090632755236995564958475757801822332011316714027107097559907752505995600077335201293129754546885659042290220893607333082689779587428325208641920210087019024516180659209926768095941882694564191572652108604360613755349454699402882114689735535937557677107208548031883768927475650718944306555528171535058592826464917599659794382603731871612699115888421750840121163207714717678480590165204426071414581682619699194894876541627098683692705049615612051874973826718929342807716764196201872456249156035202887046474773185626854353490440872664062937326503350326397329882987335213038045625798900277588784222369369622697008149779492060031525670564564146295215746292045761787330581121374770096231453495670431177749741783353975414551605358808465256871508637680111961213491134102375246864238561433097826498636027290592206109633823941377675206014470707748221338295243112449982229713897210553412249164885794660681756611982429330669428928361397462832959046328508905581342931292837491693102982173517654658013617786566567697309678124937945082664336726339544440316292537146880472463372728373156594461097693376805308664311835902000549135380720589049028679783028413022630372068828212252406778609957075393931853083146540116199419857893060484729498783789335433094521746749000899546399762543739987993175661214434315773788626803613719746327369907653331535729097318432170368085425469149956314660073040594779101077231866771547214602722024180367380436915891848078155874299093906739745165063757492405126030228480237361739951335644653638001930366842257224974570686247421351683958190603262312142962187375201458497987558925306117363870836174818544874015236568190080441930967492915059784400784971064919919253854833928312234497546473644156253572150215711461214038036427408015166010058409879017994260018199079400342183916563171041824608590243223218188316565524043175962890060289700627970321022829787513148920772517229369886706896121317787343734604214832421606691534463522116913586213049984522296960056575372364245552644054910474723061602034335549797825004338803226448524515378487648823432379744286277466913641094692576220445353481171982998940982424381377253020663256038633485383351641949825071021111986018225007087624729559789577938569906906177344162821027592049727555371324985470167236249673660564397358132971327267277398055244049227602683988679947710506647572373260887065082170012011577944793294440977710562726187268405934732925789586393102867468292186151483617603631399434637986982104722973528174963557300614755541373703646167259157654937477527104953701567842691723067713568171185254885266402558852193747266025022631065473129412075840176664532858425073293416245663687655630557573237907203468445431677939002145590052482720293329869204087197610328376505350009362009837515438243669414137862676337729313657007224475007678117341523825807323877908471179063341583951144177317747076562277462863429698759437844585982409593504410818415858802232802508348507362852992709853315231972857451019467239194128746721884184833586947320184382859198871670735978530532694602885344540886249321524894819329197698369940378848913130702578407979814636865201871413009925863786889470773547028406339734510676922279476078945536256346008080800128031426200313582625121156759243642877699189304678219300547282451456629710808584265103096360345888953092708473983763690057472693525327560568203497852045413272556365109625068594657558158137453783448252170639223035286138181486781602696856852130613997680292119312648780008982245350159880882023509133894911856938165127650952912186682059959382839398790976749189973230655474078966323125744714904518108009343095861736577465212977019353477690330380999852112260069569747050775469451081009083566615848568307442968153111070601742770743426391761793120757458440700544353159347377439694868571056570405087353688001809468501590582126183920146695128783413800517047750699367199906616348470132300779324344840381428363613632374453232055324550717878603318186259641770806684568005702438568018095598724251194954942395180886897536651521547691248579079537272079719856151489131934650187971101821320287453055606060074546153473929457749942750395071515968486987956505893289030527918661013428147357118235280730664784880380031193769475429515888100242862269443553614031726515693129601340833381459216076573370887367727178963439095413416160257972363561093692944792502001086149866967537843392563126295478671488488105949655804959715334565073674130262732758302290576078745915470184377581737366621455099567869904914739868561131140786037628745464938168427775895423747658070736114261964357050977835985160448497455686130093465955694758839282503645724448422134060998700968513696468019486460138314048215693132163941656875783722844758165514660759337556618235463075305849011394999268410143212290141756683671663415604031088859117694818168521913124215754454007858994498818114668021261965562963512770715736156363781304989553798671278219693958634342830047998871642610899481695747165869879515628778542181495433173352985145003679813453547295383490232241581789494662936360026518236024218598783734665407621886235229363760082513135541671077810253370671025798368348850775930190076724684742011301327047975235960631377375518857989645179749203504604059687832862620134360687315481520782800625736486171713680746987243316947764777177094881026847637830836669768564067245858907027296072411204022850136289942360980378446790935662877535053132739536742111356605980435226082081014673465055185883950993959253767215147247082454769174759555227592713575044488636195984199738293055493860450149493837002723344151538855097292001375614593447418959818275420128160578812013340587483350110456317644461954427283579391673937774018929667370985564317888502366119328861268632125716796101369800710938136839528219123508827671657268291715100621332117002000671477642116809508285521086910675661308295295205552198154095667120115145995306509829294160434603925972147062370962764530355397791245000170449199796044536855580430660743373568358530296148958722056701686570950435531700834800177893785786159555476170266417521368834804547099350229280389483332672634961002322539756499278529234379945826510174417756166276314636597654857358469801548500828347186727247526153027898606939416041267074383920105255024888982339784605806490854113540967870256388196365618433844311929447126231396110112434936456074301500408709842226616386643127982775914918205324884132100998018104084393249496623897918577989248968513170519624177288825090925463350647283491221283546669933927490277699172632979835007372553352360516361564254104348353604951690070718851139363633571905277613901019156429733821436524151614776382995676635283761596339970022823244994883855004870290968342469260403920465881918010270383373161595986588896585727173152163926019295231665898610180345227618658240636539961553959094302749151422478516024215143267334118843837415526083144656705976583793223958694950062967200329119715336871080029238440896618993035390642535264281303824936110177119817872496326924774843962223936081512913699647437912667480033016296371373862018643114139233874232717659193793011933541885624467991838716868726710460218845303598285892277513553599423222624542976923881138515770789476017926056360605015804017231381083493252266266590911359380522837847191846229766558493123442437925033866766201626506098949154367008919199471953166780288975026515094660846174715452706031949474699641402287728209394842164917471495774239824633516254939870560048980829392657905647505951058389658154401037651804093353986746615619195817085794253125077869421624901275568937228081975705877057258561967218222781528362690482645424506394300798918173210668300770628679828748482543921272259213253885914639876414199705358951102732304730748720236018710383251221078744123308635968322505023045184442960038060678235310044801414523410670290632154654951552834095815014876018235152504887174021742705971269562136733575801979767872309389182828403720011280367752253513447216588219473603790177555365228773433121755666159660529800630358086474024143059443333652576395651190423328427813694799193999511263682502629539809341820888618824384904572176606860561685400860520950854783906360232105054500783119977089780811528346561471834141325193936856060269777999132663991394907820374589929203169876071138457004833839875454141329129239622039885016297823748917661156271539860111191296312854963315638026589603996337621217400291250786914541020302333106639014605406568008698442228212197645750529886317291885539386887068838786388001251373206850227060336971235459134429591577395978272775923587259284619669218917175336118193926228379260949051167985254076882078879067124470434216293379022232218498786721592001043873878213780571315766381455256457688839893790234803990688627759574525215309367303194362848935330326559508642826012989372605108440056220729200384367674452018903965120651510835266001028884824443859504258105047512034973370998183444759268908546018337684862753298321852200353325306356239092935224218416778904936122715490395032631653776638060306488181720692855813442066016128412503923814634109455593596588293055899250865763967775484627129047294610110734236732386621155202264652020061586844571572551514443025513089968125594232891363751011927055454920144637377571092309387610278212747257356673867113630239552888259264215752382611130771683440141125646696246473963665437350306418461986689319771514557082538738267587782118187864215087280984525778172373580124814268922498069068871133368506856940017653126244004320857946334235419050385812615316199763431874744396899555474112833062696581357116803512613201100214174632566899828164177632971926693465856794670193146342717375290572619904480136130801281989340744774781908375733159691191646629950652618680601704456199417963464511503325043715910398865339190666410747181336383332969798920543697219516269875163831272289572876757967419515975824470082511882358178706673556660742976019079198475941883894853318274912363257862181935058218060741956085079262787336636167605442854800091862310749892249839392738095924630231729907412863823355327117094224373831974361270390178476729085298491976636516030518537157956552740690915996799705676201095238966227960169549824964950576967680887691976690611247821346548038279135102872550607507915879431788698854235481028690442631978623289566679535876533246049318135672065726287852632474816588383381187299667401678817909319567167348057249346684549870507220740889138188437655796640535166450533017640955205306003551928920107918303123333102886445613507586925848903012280045203311895569562323005680403198161623796645703860914269187263060972571491919378151612536285181632603708700350486982578522102929796073619859690164570600849683860260631250726578446496990256460372809383934999034897390736665327599605827840044814257947303758150070214098731687110092642024661630524316755966197401505276084814158184778038586792867146661315073655629427206029646792693734558932716792240343478778738279183492906020047087136637129149881413140549175164902600556271755847933906182403158796848212058995520117584767578390794911515571353030481720373648155152953686493345114342356563002837601275602136663554887437225049145266406942604854410870707892503149901867392815839512638210975164546479926488423690346075601813293942690692372028075320550822686934570694156721186010254199677354264397872916792288833660802459699733984863262027467054104840175771050443912269017323223554592614987243761310194580727772022503411815943511155114365836048427964260564488306557361086548216755613204609733187232982759862280032815261533292004644163336705346189319772887400368780457625493485647524143641834000459806181455036254796577442656737925055239022107910895043745531624626365877717466618408783354650472358985173633148107193304051266184762592422138364058895350627293656226274279756630556852633524599351792790388408517176916821514441390118432559471699155875299408302576608905139527943784043199458450811762283113778253782964406899157215459679583809330206914467756653312650172144984427653305550806763330916722161132066027828003596287734211256587266047577454631658475301557307272085776402451693818763965239541566409165045419748931709660994350943833331405966309336115734998021787893287455188760078973248849336362087067647938955156517109184595508097563296751996878834209764083474317306734718025160585980305937573219793073234379081564138300081094957620152410179669671978852531916091288084939882323254400579724831347685677854286858137926523046167403006232086250860047641577095062532278992996984888806212589430235696706670764646876752946362757350637432843673627784353233214614326553429201405920538349443543733471252153974844553809236221032571335776494372973424939869435971864231550398731157776935839987761301095205503242953779727422104901258530806061948390996075223722161032481257839249644187305547057690214594402163675013076032434483778772572564216106945735953990077576076279962331350066403704034245509837250985784571452188579162611769171637836327482069816179387994804881300467587897902648472965412060473739045783842673176451109729013794684605758596217953240778792532123715453057497065840301469507616567114483490246584476148849280732221380662406961303486749029745367077366879590287156693003622605280898709738144716290577198903251692125088342694761889518693027173047903709294247844599135266316260012216258508450640807369729258308651586323947120215584937340544940630747796017369141487456962863891910336247634900033179900587976793107650125456685232662679331494981024310465482250045471295844673893740145192476111529392701489287655695605931346963776456154358195967361325472703791858727688950298971096602291163043786656957157317211581577410673894568402022670422444481207361765427971500993552619436624383534616434450588889717441985498630318466558801166602748399570663413614229578324630823387981747659308694591417083060809757420856545938547793877969096748496259819300698529570893676385805908139007533597304454462794421919246840488922892841461959294353711589504636811019228339628774689495753619088026896281288752800886531756451111881191620466077301419979577565244827745279054182808980759474546040255009712872303936702782705456956528689811655357363763396233428058892585953687226140182939977568856516202297292953710402638232618159469129051324335759695178230151691589770332867120089733892066036529661324323387296248162977256472971081547869631710839617978974220586126395543264907428331015271644342814958795439734672281878050200254401936998059954385623107348417110465650900833712202309569142110807934490843462602541498359350341299743305330746864528104992954858299903930357079698575829915062732913715368728415754931769455543406692912562599847922978949848850440574035591570891160837535711372254083214255355048877328556154666736782103872779354636870293591543604568572063746461694805147595248353924050511130403055261957243608959412887295809650673794140531870755439505390930702959840334595807268947152490973810332367887423979812964722607955263719362352352175285722192436068986285397334511553137829727026079876616105043328347371255784234336804543091508337534738341039266543470387744817866584559567733603405267805931054051742931452923541731968573238511677245903727802473393602250339797682167289868184178938179166429293102694470550869965596821207183344680398733981748474904955245367758245665459717537882783759377622084155031535784219860375180949655565478292842576566397018209336722336816840082392154386659393003577121777662055759916386409762581181849101425680257865766171402837520479699638634421780172545220603669373525777231281189433985922597413199942825744611302098190816587835060258613881038842897626352732740887931155665223030965734314738931662105049996589428165207705341341710016833371089726059534878673135213399997356465139619229634697316464478908995279725886347742488784893679531507217446575458112617876645890457882166290567250295699350704639769428487525915567988728617183823403573989093794178164709223047161541874510527889936225960186322303857511467790602462653520940397734297425490582340079809197318964297119642417013967737288159628516777658542279394238321884038504819318959538442243479955823207534206628237549376980402535850487358558934677872242657844803623553112600659023548980692888046993578504026604483527265054672667969175980649732795973964458569354508281088739888144320644945607320973856411452397257528591239465943308168354721559094551926260685863163337295171285597509986481265916346621718844706836626838779142109289651716023343915919128671267443730288898844082557055781106470735040161896429394407895126117129487846722298995163229410326846490306194929547862900966040454937938963232617929466273799575198554035443933664016654823170179774702523150674676107561293222178513466175599362180416147749571433492918149737210456018180923510684982718475817653490072915657538751720422934923443248452045841507852187376509295464835334113869508974361092213019862073573855309875737973969249618284267411160977639962810405395486954803233872467764377066717130216556642346628471404085895737618317254512214243588051576547675045698769770304161277881840352715732481477847061694458565041010318922049525899243749863617105386714663986564011427974232712550733489579178441903436369287347167397227116454350647702879160011652037837796334754003706523573327823727488031418462166500432825755202948060835422333057875421299575963110599098760409369599350128317386103025098130527070391325902638218638857848854603489659384960180172454023688312005100356804970508452603251227750974688681012852314103641309413336501940268934350677573696980372923723916035590700014900108770075965140665001525570390125757645397306192565029655076197923290516833296695398094999807422702185761842244850348835406567259667217844215439154465682230308783332307978869795830520498707325730620567715061417714673236420229459197806117660937548753149465368927262330831444241150074936183452511586901728520797603989691201641270142422006056475371994344627657171590258688509954808845594749727566694715379218434498074885295166578109660426681091457405204496447289655110467785266661288765550434854036484377765643610249639612511855074402827956297575319629070396101681505494223792272872421974138908119319778369924636568933443392699116907467875141548786385518497493703692237417194192478481309456493217579680336429085667969868517860235600094022414652889866164316041662559638345581897556993975874028149730222489760744731741836594210034206096790730110988793045899061105546529053664466922247525682668994190801720245163705293637320453096712183754831775543789772743612787040650652204885301552172403097135095503324675714819516053605360419822070622814843097518603525851663989342632741312656963090454423580243945609145659187577921565105372520636283776935551600993307296495120205141507157479095119126739323912857659743221640469957329337081453851088111534130241136019509521114714553897150989409507167281484393679321678638758671729082904983371676058679036355983732245491785312697135078183716003877281668419968572334815231166415440615544396115919098457520286568215633555101395070767555277756115594263216234252570453302911768908494598349430776573415491370014831443596353994315992386753682001664580399426679184363813454722887821275771079645789573074057633121794878717935098073587891631749514563774894303168720030292545368233548005495352230437651460187586639008303711232897900109050651117173992380738495372484488020807874890404160397407084559909238871185726229368366384854230326870796046650011336866290446293650235121401451703176347609815016124902919573247933023138764473203335426151657710501730321715366609565340534571072935038852569408258118841635002099796877112263937153247296333537271242331651017545257967460646667203580566013269856943852295985051656613938369590911535116293913691468828096898599121596902000669676640057605831039420011371073622226235847272839864406278358544072107640367774179731958029610687378494989295295627991569186336171065417082474753924903939340721161851877693475019798014889330872793772885612599681895771317826232903457312325515781724192103297299234484733261404017892174651120118726113281508832115063373869404342753973749356778700321369482340736536371337477429774202898689975495196181152315593862320060801705679591260973875891642373020794687165639352510272010273400704216602694327324922274719248310572811537484677508625472710421923604529832806373613877675349782166257401337830253980837040485315315384044093083811680630357758401578626854279044664670425474684753218751864690265243417805363011512775444641036478914966140501076155825084909996820793385115974566979374668911292994495558263101144659189609237842365971275106908186304975344052607551403203964169020712807735362869793937962712779712550768606561591501807878998519557934612890646398883709553475109042367191884003156655391421038351499167175415522910934789529913851171779056561146120698167279807159521615283350357827926382787844442675221478654455166532303260499991292610209042421306115591890494399296168576518686721041453668073617780370502349091605521555506412736607704486604621012885653924262147297244485435195665589982329720232240187489144006477143550804138585576821089492207502481775449057033762568961024274061398797216057147095097386819643234557844192313593954480997737918791619293982042704857958350594069459043728993941835660567308578720197295412542971321902262785934312992132233161159211535235717504764127042722774621134086341438247593781530123246675877183566848284929519489318052244402442969521537056571831851684120987491644591511906451986861941073387665519366838878392332585416321221553834523562539610005227054731798386146718444688214728427806409007983714558958356958626154261252652818129008608992256678822286667141005467115781257530059496867030083992104960812308319395770832103022946690056939497547923865890733892820883509139058487107414921365833286110883533764510536421297133351788953594559143395333845305567352982369288792595769221029305433210996585937251116937183928445683261578287600345871187171904966578801958854774565204912012770848127529200966234136800095320431706666648727373991542642880645219758060613985582413888897375211923131475398275514599558908075476139269134913382049104018832823867622949474212090778763508732014799289518724800861096064696622606025202861826017550904063448796629852083152854939878890578217504724300041966284361598599090060270153423007225412668466956950165385946326411961794296814400021647632168720572901339929818711093279310539298675799418029843616054265662923858860340614768515563447781909778104232379004255343304556029872587052103489950957118362282892582937185393253223652265991962314331233894666588081349217503327488824849975913176504420042575579392409206064555579408296522377666931189540236513369717302720446151986798948038114900819742906798377077971972252728314032037233035399762904777278354205016735947804980352265266028870375442448571468961716646528991239244053534228232568200606530661176446969486378098248592725235449194153388029077200788250469793891861434765818462235334665253950861907887188654714883183267916664145296534522659734438236889197072369718899847120100730033435092984633196298039252521160473219845579371294106023391552930755023228737995291485541041973104430979201712035177111762028961756614085808898244159128820647140297156536891853440272698665076423325773869225640515048376891980144765915388547214445469324466910750588586063976277147656825377827191456863019368726794584157956336893079754834603520720030239280398428630765414855466634661133133497880526590734571274337787976743249108882014799817255166725686039106913687510265989805815399119755049458719371693720766909602551338581511188089280968203630865273310908924635455570980046698185512994131484818238125419438644289999636486956101005679998222352204736682312703170372397933481746487959485116042852272045409618178384803483698603825417196069040183901840552751965189435811592278096914205004029895247598443491625349932735593103790771243900220514125830075168644976810434846485847236558133493141785429985031273909029529402564587668796136265151958307286933476372824524556737424731850251730560686828226692883217352643572390445761235854298914189268014435299364459096391593475691654291719477496144106704818680750870336706814974861590553056697849202814185085023252523711754816679723422139916959419403243911531526009048223995946074980500745133003373410928686505622666345609299919878437233590183992905358614429439624401807765519315914056163477599929239442490199915633907097486112794158295962340296161007322878185653762553359754606580903647705518365787496442399722803592675755968392503910312126562423072065265169011167399770745108247126457399766667814980732670649060112717141982743402354471015798291446218215192968669131120218884287153580810416869992953146850326407373521091840635360685131406008104586070949415894996764069791823039375489076540986737617268121519988651477603466770198347018681697393446097658425850937252245435959895619409162988237263025175054277722131499021562396217473615938434389152490588425966784928971568722014713005113277678104848685372644292526395038635202088567523886465604505647716772980774861036041378959420222451311388912684200151948429626453825754009569922861007785423924698351283296955996541078785690076596491739717138504385420801308466944358195499853289966585265030312679490300341193085737969485107651207960614045267282495635396307370153051976195177162948355938680580200502712982323512897925939376422928198114952030164175502266529533865999455809882678286182210914109178312869669058757536867902749550554849274715477599757562148331619531257263943313303579940561732922887801417463995115075762863891474210649806631763271421531463142450988629634140413496628495882102071131830341492536131163918129945599389023849531850676503657904175238218034373030288415197666882326555749142406959624371038756977184236310884671425315476149984718414620889629550404699849003547889604104490991807487633808109834128378664219997113285662808401615700200006711392157400531499086149494290808623296139059464083032326263102178351372154727611038339075889977783186094990744639160045252760570168333420029502325578707005227460168533580276661539012869024331272281790771917499744144507395561383283149830317614806748969728196099209346894964355907460235993004685557982154663480184715169436596279006842533576648219626298890088309643768061945785575690126616590286175532520668036759419113561306806138914784103625425896933820781214302053668966694226204500828961362384282174416733156635849957959038628592380276047861178076950383593472722804032233272980091847306084072872194236269928914629197302817376510893498857891014847831326096887463776783708373616529383451176847775721343588163856406413742055389858457652853868716921748168847422892125238814638733557496311795525124787019175347202684610035190634849317537771838580638600493226799596285089311910231946580900868010659708047365015392263496127173926189404480394811073760887090437458992877457638337684701601552839256259098741148942701331820562146539000755409095193645407912942613179858631926644874434584146767842109435545316033932834889553188966801730604753543591908605045081407577483286486000147753933703577535785669293286887592318539838907680389884944539960227814342653382545144328491914018937393289292413312505167103820106985251813262487429532348141083022565587102290269990174058633260662612751150250845500517235385782647661911089291884505465429313650013388465233963287909770511136883985730627068881160282863490090018855191252820408290665718034790619811258427761387415685793672889756254089018835052071633247976146089966007651581463164753072839912807945620591351068979842394030899059348007673030362044245010478454851816810049037119395808947299118457974028845186245293262051893185415562689775862899152461678436815539836191719729664940035120737929690674403928747219654839400983291953523842703606683675468595187417293624415343268927035071576714106900683973096173727981924082491884947033733687361107578727198405283892800933697532511031764914720534320939248704604970664194103299475900221184635120157933704528073713740389016601305450245255220066104305673090471173219002941572851854025324149955771270220506928228642820917763818370451633388897129058718098110978219702658935929593250123634094968447585988227956346019900330294958985942550540088341622242231885665868302654341999166932611851721641596681268173536732203538953534595087963510930678036778544171229018514718751003846031994502529680123331808652476281474488058103499269107491255192740099317891095601950058089178008184864076955580933221377949910523321592271065759377095547103906984783501624178354498459419025006817984215369871559815975694217919795395483419434780238017408664168538258431647059223936191784194308389725981530164698287292074352931486411014992291713415992322758162581173289534192822645875302929879521062748971640478897730619140617377994457975384741640856061175669670009730077036543497011782750691024220047288216970088050960994645885826075423443880761429572365075853958702851163693275866579985484505811902789908249336335244867016910621362860349352513743830071099974157149272765954716605023177433714916853393048408527522123808896895900531260777948814939764246181579497200042118992996725101700111916598505819608902010597943067065827959639841371968400277354446252744607114214825269222971565450550433609988568378815336942368289445422520610887670673728498674847371334831526731325813938545448881323984695248489747396388766400405395212730057825903416547581427047214452592645071243142109485042683494856157830770347435166730700032508839175124822521127353143614532348685920570147985601740422959706609343050412492261475681685437543423694770064151690093826858683959938145964766416837877368864928520839623125845207116598528606124844874466366558668569132226267268357948748871099978069062465334591182450647125847437459589344231295994791651970484720476319418198877665195662612194524814672890591434992346951372902859806550945258034745040021689133084027669525944498997284282005489918677603246397721995962054614226887476661629275122509798853856333167733050056675584207763278766080738384894828267077391672944908339006071470388674387426143955440170089552733053603285148674559528942125393849307988523700864623572322107508859095402523061810270650373879952052923678281146593358441521552620312238653621785391069177531956212392717488102136869941378246898520367359690166911800556531470879593562801075228102087066820576405363701953047708202660794262342963551128133105939074614835445933462671730951586529114063800767508598175214874041397371103238665880768455316932922413743143590631411290047645396340644783095893703243480911668041574400215208787619509761070216118419324515592341663271936859710029429484541896132293551558728447520735386538315614655907635799101995987929404174271366987163371911212849281621326947967210886807061965519230879165996305844567703704240063764445504372733758647059329509561317432179179705376887486133733516231271701215195309488261689382217159446247483505388470281034265821923042007789655092734047533768201969586169367661750854532089880060974108028184593422866363920979008101807649086090731232171833804438912125836790730464949675801154953231209058559942667315514082840823820883608667850306426504483943134730342945196965341060176629089195263678646796792975094491020432560044252729299848540699774267313058547628994562830635753398707957517143060413108276954895093978765864361873840725983508359436546337038879775641462629421792647322482907356567398034851785116283350956762603761029650404895957330917097419552738920016947255298825296117519712852282750266688973519833898281305150197596034590115985073123592605273287921432045012254319362986553526730987664528447615172213526863959131774988079402330654028255509374298527494291330750369228399100173797665451905466324958100837474704833746491180879966685289596734606758734620056951797175897336395016504572318303560431463701674375440938010989654572549835534533175687860956162089243125623663190399017481949262087857047312003478967214499015654145750756168558176931007145215983622690923172541595712568802896431281030692014596185982206217161428815345266295002559423753361333603438619074248966049688697235204674179657985625078781045696051982649954533881987154625847448019565492741117148512984864737564735985771007994521604406046395957991389888035418337239320991722489322253841310754821538111158380325437311919150183173171046465477462024543869150568043069086876670571069889251690995544877625646208757581009703290041342747477943661234135547073183437066046217371022552790170258798102924601490770204305102908276445626171245724395020173031597444485922955481980598286701219079754750117885098397024470720069656921938600855100389460513040495357387272454757805694989579522860073086387061562389091369333308921500098104292607925338938967686717746641186797868951380083833075212954900713236444596079224540417646569549751505091282580311983704865000963091529097059965173769095730619361667302438846851232063334544328339493796764054880687162464926847654256302173443522581569936591298176628266547373514653512405801590977631601152003828542787618735775778556282278137766774800408901525502372603172144150463891821208485095307435958644127246306341735266352994992305811547794723485897769079180173356606786488155671496366699274659549858706589808784712747387287680399352623147699485740299741066860708562334016382482422545417914356654361345564344327189878560705704309802041772402336598397963456635530478187499660102872187498111561231352971934712414303674592088980097364704703155699365805828440681101336023397989689462659569434108328289291382779008404679679470056095237035218905997358846438746257790619668170205120906451458553866992705263698168382940355625422913994305151404915792850225469359320681053329408079756913484274451853705760252203173436864289887252626067345451266805826567916006192391053965833404377016453134031858048324916977457218590356472816309047660538229392432594896750878903484694002706937555847749690647356036612375229417443483264764924241841898551515777092317843057763571613350799675272293132898985108573705301115473498166949893668960168158836827558005010852116784105073613221232494488957746336521020792821702333814028175688137969440698371040263891343706909787268844369046660186032350744004975262563995997216498407791984499991382932354681837464986581246546939392041202691139139511748949678232733258989673431228964135371095787200633925922053108190342420567736785017324516706049990095447640589057155545618781133940799064476025304790756444765118230550617117119351894655843047559500947537361136198295122819307089868912012134572918606495559667845697740806807296302296814344805088149855226340955582521110698377044606255810792266778118292237961078158349048169342343801633261519417698433531443925120166939928264541814155295502673505788186025598822655610326095948199127258789382199263020698397555043561508133652867450548637712159985107120575358174794062707504204060903981732586468288802568772830598120050723689770539695276370601684152387228580370707180086626631901166289130771563866271688924813960948617254621044882269121136069543629572994768536089537895004301203542190835583162789797116575845855844287245869877837060579592488608404312378566618900077771635103184020386451684418254559085784509714020564014576107918847741565513135776238217556095396821803079273659564943296483252805094760219477144385239551835382587820669273527601003195951751144811790769376002422030705228118068958946963732964287132795876558315002628983896450325777055164999905870220193208113512186911472797640784158681157121961346624060073453926709691110611939615801972957366743313542371777758677480790273782372405219411152557303444392741036250335617285260967817296126446276951668205043860627413682320266437083006996151650696582124235509090594234018865828538989707905763084826170270461047982284742685641119760252499780256972866128859815605155863027870316875126526489236884454043758984370345721742762776908204982238665697527600679934073108304103492788096643715197227955061123004581837643657525986205192105648751003650713030457852781228897575661321162985948242901407773981678162774704994505678729503426383594380844379722353934777426109415710863992071785184265895372194746642130126042560762102076217847023042318798401912318889818544536783780130672026125494880959725699858413219597055883404426599372257749401637162557237285443043819438217881819924219499840611310278087349416834090314084770438327621396268274383199685393472469093707558758880169841473036566137175918375815867791280998992067986531452344003359469755265354730728311729272624232697566914624145633655080239510012703854281840040235055295362844289932683130153063874743190974005534103228962943429945503968944297613249459942306244458601799732199057366037454100810872275201625696218412068096527223273791746286159978544155619186850612901468278256229210662158423541257553672092062656349503202053503166067303217936607138399935163805858090583244858469025079159657020077836246549682356349572856513918869214480489477926207180364705343599832527725326822529312378010793122045788634746482283896786569188857506422798248365937459071019892805966879661289487519776960944483515328694728909241475511833272594583248091088907470598115015961471630751290452058773567575065800298798747696835430328259614762073950032441577568788167356993302557341760075255569216767424761571041686759194234241714951638838173930431083500555199650442944283846473618428195645699903691761915215260299335590526257659004089451134485889873761956723257627472048530687916988572025785638997336869355320152414991064536116184165567337662699269805358960036749142853664959715370179289276879977224215380770395124320962017877843583711064528986822519633205260915321420005278666328607639423708663881015857847912548700863123704093832866355328639646379004824199694250419365702586048750061872880527580896701675025325506521472806049136993675044815779096263742227014029221311219524484958240859273448038578890421584873503454913433166317629744102500627007776929549492232828416827375310983012567784848960825274560349852596973378314370366396694368540448738816069563633178417696555965280610994997707452590417853740688709528353915612083097024838098771599663685638002437299970638496334502312997058462567215228301171429029223805987794347488317353897360561854738734374121673019746310117277082452618939682423197841695407101332464172757246401822386858899726668791312259743760113619700025577662878528808682360510113344111514328779077865907415196874016619785728733657261891825248258190831157589757875937205734235805547122890940393813460308498654403286220394063485959161556657611065058870812013671472917169833403596896321214532248671240190088575260124878522812652297049727987930217810767859948075502126736737687218404428453981971815881092573228452600679424290695102863299868412816221992653733778698729910268100645546623077186481021640706683287627572412127602037339322878843930168574447321313602635094749144650633420288240129113240255226753812602657638078754167015739898978898911881138151162941827157348244560103826522185418157559055564249413484288520928504692284888020950409709170211545972177168997385410120803688601224666890400311941073872331543248595750155082059269998654701133577893270757704509076153672968931223795802813631668570262169912872469224625246759150215596325541930963620580046694586217418923996853502390490949247557031388555705522637345671095236206184132822237576239680090423364106297640210768120579419734846280439506998744659255435747415898995004378533599594227866249090057198655898852698938453018821537589624914103542443885073056047913973044095518718586277847368707515268343937552649369983340292784223199341778395434162514151353536732688726423692876061388221139846117661725858322239919672633282710123145276248520013679717260003001581733470320179478100255207439302747193529120951310937878146894116742562220772804782249841388710626824010435234761712880026771734428154833691006758507808982669599452938865455514859243412276381370361259952524311959237629691341137011840737955609447031829655267595376170696995782367050073414978483877219063120449988505691194581501480570778708013909433245298770326748188326611429572116033277140154251254238996934749224923779781880513237406118230232900224497222149230988894882801684595191781541618267911010699567851664536297216861973222610638877792986076646313133259747008441560728437360215699824306582008068002081264252773069137925211630020842901994741039732899739743130402088276241427483902195537337056955428408122793798768327710759634418850713748810417378079924813132046802939768795428731632155295446912674567948972967102821014410904103710439967971519994319552356067469160056623843447463267573288050140662511153708451709424620617844865220152012999464562220223257466169427272740307000409353091175813885879058992803151257375804628747880711418906375609377817769407694686849096913612403514385286983821950507354875627079848117316848155964781985686966271570459879962465377968196947953196045032590278093857905134940606321725677306316619896888117080446734032886824296681372330764927636226497330408735854340562956961175500108268059118238685898319610942320243302584286712856649132564108373948697644480510143851527476115577225378012216864125091935903221959053768523448695603999410918717942661028049940601398545733296675132636276349372903901415755340515125552532886296141420154149011850772345621038149179100013288276977595641581287058326167743541721237132265270592941245423500535700474188317643378838764817351663360057472506988317451377830307507751004880726237556116771616055667154749659164347987247753473197866216118486785404105563584305927925395854727799232291364586157141221712757249910009442217416865636739558787243706824246914280589360519527759288805199779023063100847577430375619038608862472380997612470458121412428783947971997747661505406798591747165882911687474509642667132608708269799417788734648236458944335644378078280431723950141740843651365833839835666320874853971199319325700073684033303506295704275148772414514391498300937802471571527096812825686913019760988302648453865990592269744404129770377709645385295509186806405137923621356776526325890615878371218045700910637046840123893667935072777852120961285151420828231816006070755702782567839993574919027997891198128389348114168602828625365003054172275442043850068905928912366147153577320196126429491483793196778606690671994284509050611296488976290423674179495364958038376392576055296392917674259245310340989582558957512400176465521341743066828058305371680586774968984236985616095936082764411465180878395995453765084711998361198743394175246739297367810348967204070373772726941683071755582166965154459348378140841327449355497962488310253340164646238682181829199659440291944148051438424978683608665083532058546070449346391657887627275946726936909450407414310239769080141341441322405519413293677906433991885880525594150283833786494310145533130290796490504258473083803122112204791566466052853176900213416606263252037838166655565743076281575223894273726183990051378877876009221890719051605384344897946168212242415923270884319925755799607665785691954552474861252758339015300626952857919645833676463773053372707617377873647673507809213478098782094621433026369171583697473942668414501449804570919702612337412470156020043701336328325676686758074556903436579701702942794956800423957557346173648500581886910114887717198814885318232308867349278124145616110194584475911458076877954723292304335470868730113527329206874753536142830884115317463517904632752613215032427168091654197334234681714800224430215828795500644557980577849829292582093652739294310899487985776948334686741122883711993531893382158184814786497821103105523602767026591125551581369190457025905115686072320206586616290503630923533985445553402650607241181655497790343120670922223836304527527826758483075256833468461950447339524217588170013708930918643710801493992952506238379598190964411740613439646604372517170067408150110749368648593445731905473521000903084673834687038075549115593841012560380818174120660986778527544852747530299841544958753744107128700461912910352203387933004642392308296493623355119232249821179316150123804631241581167654224670357201923389254989735331739512703575096708582957651336269860156793036822684908710079574096578060345205639776642530159590873629473637620702769627176785703475622851300180010492742170740021755271022624543956865675574950079536232551516550381467270203552903658884374452997433890601314001865815153588141209199204336897730313738211985382201857997669067981637593786497508113974483939192281675597196804699955589974437107198186468820698668718969027968291945454820930184812672805574872025371617117803804021607671252763027409632708695884058593311398692369124737768852033529517289732869262304269355005418297464613265455337026163882204181648800267181410210678195580622813204923467642566963907172782851238865218183527229976647032834146952302534949737748337497426742604641059011473573158243165768555592632304195916885505028726531175989599086972120606122081914261359776411382812015694026895795696326456542564345994330187574920139076325336617601211287524082982878415748774516916903696356251913236924340159440665476686045599161047722405018220392692402084002562527798679153470305424346676583319940859171560051898072590648351637421252885068088990084284716977504532910487605504360890094107630582868278333356389945562946811206113770686717705816255414801109259300807650381659407702025359465816013751036622999012722878271880407451085227729759747930146167826778584740602162148144264239016460971134422684536105740769630046863423168644688015885737177426096990344012734669437551553951627450008119245138552909091330114286142503449352397302618563691423752306306029439985444614938489824809785771190823040372132227867737114116974757246842202622302642274633044896220204394675940754836943918653711747685572547124998061902821339752581449627694162494824428837796277434857941969956205581969120597902997166438245643604754312272293966919149398034564489665065247669018424546714488886726085712080527480946614639091775674315776462656804001028670811201678732419017790899840463343115890326408855823005197468394991991721731928222079938369449126041023604258237983072233294818235076036517350225617581070707279902359277971030381140142436342837607636931539288607509345146883054732411840867450217342349264004635453609011087860347183396430860778099028199716317185164662555621437944523218794608880440036346187088106214728360297647669702974167194583602200310158009623337065428668126520580757302081732884367683889510703947514393723676819678946507231371476891496957764095877180376351296416495947648814649971035623259670677186904401423856265943408521827719079949428361957006453451721283378643947476277327240282318195726799120698587277689869667870459087570889279949104343260478286379307050336912115799112099294586259115845022359549951635873611625171442832422256029188671009221528738421991994275384611277636006242012774518910544219048211951137788682418141162493767058531267811311765993576266865212770115750516090543549005879078891083878747258454618569939926250587275803072667964950448794158538397904346086889534547284945930645172746593956072958884028915666278716560078553900754154137103711341755470128858641815106238957617471823699253632805144303009088467549605024628341544234158627538729187889209266447267726862309824552492215619361879638061842417262633513268269293239903408411068081387532713144860843262955065607716495494591548776629802176063902456516087300345548652853888690214048289105662147993977233172407718658083042574369082357205152535390711608631481500614472905596412780549189139063022363409499954342369086104327994426645110841852658061284115358584310518870139730723204103300185132157612217330467995866505458448672471110415277142235446757421798235697726458305031223463656977758369477141586665896556666904327000118151057686495814204016741143082507965665360237182946905973894922005993679390133910274930995364780739476041095502858549811929287925252482086891177305509870320592640055943909189435193789976997799284767182512375250582848064675918756788987304421177173567656870697459760475824195049407685473199474180630213206728646338827578449577845184806455000998312111674561618482693006227211200477712080477853030442243005034001061979907887273158880643152394262409982191396502196871162402358288753640248065946047449237446781955977392647264081757445084496855692597463728324214589839177672740363468318752178156439948649386882429015728193968738312675147293549195912261904795566224915522990725213899052983719668451268984788035514677534561753390434868399196069471790671754540154321639081778836451073347323708488239722462833018861277616928583528742195844555276868961321205688345988589189398524255783089445811118236822706631365810201478271744682534893308089167828916035633339926041173170410517997400219891202682946886117247568741920854452131070085801583638577882924064305369560312580917334961125130239301517388328571617312784061079994976685790487469011582491170531068040910295924654503851565015339080219177819039421014544890915324002092691318133814810897791709404462295304132825943629299156944495120918019162244165897758251207591940928485932664126202991689341692022529574389809437117166533864159345084109191346562170369104807108803951996840128994919300044555774878157927353939272650717176302354830778870651698510350543756005221919153934653438816021283087726390838333578389403332542016542524256224606811508971981524838274402605517412279279204984647219390516437533906631142704527676362317459614696249064562913332951001623623522028980258598290536997672686182800069249760865213801178046982819107628262018253799589895637992564149259827962565511223544739536830707032442048413683752680049080735233302909560766820999603552936002479966868692632367766065789859494641531824930321204543102601747525727951532641943686958263863239482901683516097777824080615662579761912305380403541121958643854166750929708109724746005060523436038255079096748546674565916403625279573195900278590208936391000648289280092915186012260899075685797478558084184477546180568314533538589511176817356406621230419813009257359018433523069324210089236948316718610880121482928497262742443856899002016699945504188031306604141668176166541071763658155999465178410123083131742406576836075585934870516256793754751547347068140293330930727525806842253949190463264971962042364197068879216247445788647468439718682627283717452061972792978836936728866197868909115618801425680668956994619499398305002612328169991533696325359139792191492903421421282909935816170607195011799798163560697709474497575664240371339880450978122239838892528246673681455991403578410672577330138844483393914458597005954576214633783820058266106176929405698552500306401723946896662976487836784650320339109002577990697249954272608427350421164177308389887328467853214023146871765746848874219648633656941818430976170752491261474061429147597609973647627424130902316415178216125888867622513582064906148347161426795968160329042866359764885863715216856976620286638268202919035756873529921727543480189488949821589610458889121953761088837309658076135367120381185988440048938311015895779912159308863375235711125130281831526323728483173995144901844851079907267164659050337977037600971526930496716236493174650806082093616845522610788271150315655904607286976592969411799350651742087625183030737028571855355148046130437416236609839712735818737400458306821862429708203977711785875850906419762714974080951910035909666001166554936187881222937614779937924140623263134375093455515986070683905814390477963443492854134555574086303024022546737076767439728533498344755942388015302213231547098737913285903541798233649629183402147939112406402756823028491066924334032690338051925766654280499761725363902622190111442116021022216601955405083945305416208777943624645252258407332147879269647214693997813090901197949428254487153627486033244022116859984707409923798723618208278593401008973573116905800502625134349828769561787105332360515326989453096141873737053990703257595622253679917689479345467480508624782196017997573605772201245886684913967554218604797153982816528248459533005735510988468325938724356924615908278419158241484440485468859207609666216330251407179593788515625875707610677574839686538590404784016014144455999337633471729519732487838577853101447784553677782532161033324869548398014576300780371921216631442498896917817242121275077142801559582658251876767965699437479930202723386655066358974351076021819633906117639623178420431796167020427994901248943783969673917432089255387115572016044929749319726498540551433225709836740127770579038638927138573735430118968709078418253263943736910876153011092429308789149491074742095492768981037603957823153205585868357780965397349155019806594545003250858341950567186325111433547260212771101490589426381131225200213975313640082266395533273780953365496546582789669563602847133678493959891512357770482127527089418221556080230852383226548342595392493696343219422907968538214254985492135630116975056326341503045817379999995253702752014229509283273952415612880070363449204506366106201175404490549227634193830639528180480524397279353408816056890824017864105419526055865861114282488685578999806219032526170607601304019824573699813154221955771134870370697326019650529886407960765499065980265160810241554254345136716870094945856616743496983160376470479303937184910274244832075349439257371671176515286657166805627202348716683538201683608395407745272601727128124041420425545897853304229037724657009822884640548715362582722079748596351461380711802347081861965920121717567063747923172327359655882138923598566503062463483185300760901702276912804254548317734812160874710204871401577847106417417978811940173795630097365614486054440201002023230042150871920427969003909358731504498929624004354476626174208527054108066104874103521896964634078712116845798621127275888368802699449960085503854455733128375233046020535588300540828950377836778636205474438615293559073063688326019289060741062573118641592384947192840690251427118088266145331880066782655617541171726272759357848342521198782375408885888479986586391147943470436505225158455699975784977804803912656404867033043535900790481287132285259714935665114663393894283653604405681454557429421927062159801579154587659568172392821568723573512709319205540881855973722970065594157854966810469314236195797824351282357154679240813005584107424008555301363455285192517031789927480732880121892070189321387636506296101152360026120594860435021760372907936136509722683702531554610006603269346519837926678108029082059910028424030475356105054313966813104884019246342638945292774887407652581237220583227195018625583678194044009542588828411047082459833439360936445979904464263069682134568447248251330055670128505846587821455173752533374319425763297600362509995531833688507282466459441902219517857108697385025754451994971768844832357289980301315792786889316536191072731168816352350551040698324506429793653318656318863712897205861909680580168275501451760451544469232612568740353227165719817651228672241950322523639212502455969173155521701710785208119258017714436690388373693108653788169490978637126179976807064338128135397976250777371544793238177410883303358628764468265165698440011287682318822303056197592603464981894339724765671414127700252529455979617584111761698147372018125205394421224308103982758039266411332094670068898810466984087239239395026801643546408654160426916653756001487031282722436246602631501040218929719102313677988712023786371024005865979743941098152940971127966495733330256630718139577926746202152684577884335310486072344101534185251714690891364125626588793130363102809330822967633577008675663374197634460593631303476861255601728757342795668525094437780492230888379159205277183769957385058461199796052927618987181239306027717038518958075276306461586000276915408164654136558058533209445102460183745679084944544354362123931909958828931876135477520100815340323611185751259287800682119690178515399130443154874534405613257247507217202304361301863822190601489871117759240432950471991023379074264284971322027288992911306765299815815483242608423733897665464199181214169846786244864489679217080461812463108378365270180320000031022340935694420462010171362514368107104724914459403914440608436083600929439784803366339971629053975344114212340957847612146011234666475929650541644427371146886272006699588548600660072719216076595140315944302724178327823023995941618126792876572438657062679979358070190147692141497079816053618589483186193649502642973464421403961057070038371103916096183847995252286232005012959126834351589110967584966327010036674592952730499371472542103103194458529224058475575908891023248239355745690093318160217385328362842635037707883056423584687509823879197155221533320154213403662340587466775569858380189805936856808655912711110652337845612092883805041752255338422386487794811412192917452428963339441853407320983278909289731532404794869130726996078072050071000915537772963310190550856131029656304322869543849196540190059060935052377889689762656208950177367285717335954499834964750147384649959188779081964525911350097611552540603103444190905939641440490614300120322595894305247536991067298433626701047360096950337245532655637899026020783234511632231296962830471132255357562878172584731559772793369482397627612676347688699529987292941343411964716499504139241951158583413812398803151961648351018249993247591840451819928985982794707454130655780176424721930756027546520637480214452348886550512234511240132092435191453964478223157337491992225997032416666551600491693462892860334007542531594772686866402269100564031109338196563311447195846645992027641087956313398222597439697726362022664399699904619667831303174058565611565056216557008969698220884070994698973692973009513439079055778873097042335622407537511515415902850303045243949544353749979288197881519024502018874207288729231256205767403099318583687553866934314192751793676508861814728916501780589711238044139047541932291461430689295484296117109090481295857425197654521375363948038522847161756348283718688544702038351796972084420955603507233741016740562089203864793511861061712461557753805430123829274572183960662672653440666456241968040519362347964621100908903859511074787822955904359356432752447985533845222424211053258608722475886658657767945976409706664171948188419455136330113709346871808571462365840477764318882952831104533903592369662659348843497740489719660145409230655941141087096763169228442098241966304737134028237469370256306265240926204418472791938523296230508265408669409702610368489964512450277693337744162556385888476928751923556938435398273568747888103051352271655655052176633421170404170495621189092267869141256992910200937274282136720269669527137947147069476123966947481646254459338483944774329204517480530557190199354757400058936521725981609786360549379898466423368759273739980397432977992097350056595459475409854375548372889582981205074234449925967687942240799213310285381076625287929939802701075811446439178982444817191184027177894565033446977345142190352632394347011920120797531194707695437606987933309941659382091934703658066748633173423110565180495296797542672890115176340110118595655165046116655545093161237402985075134654540799385870155355708468738051395382024130537644671866475702166439958265752992512242509554484682785010893566754007489761813841065938965557543398535548017672588390669456147593814949373245657237439965137009242632346897254281250604701616848727099254517067819787909620248059974094113580931528163490764946165555497321288453484874860002803126921059578546032073415949796413083557992972189687539403626367882089188528339489389860053559459118100666798165972648096391043757139652692223613111504461702830874367942024077236982567014731184648977139638643035472243519703753765016425490306006056388487356300913791263851100226138596908232264749021617980560488635607555708551611466715827429845556497694814038384227127515566532141604234698451447265362800367340731130050486316241311907535669345782751769568107330490453360809425622746686948818270183028390279430454018175506913975847409403494883126941448541943353301296224747606354959294908592832010636432082517626359014150997950757448401035305249690162446220542256455720267250761199090864642527617442173390335042905112667682819198161715708958553502300532263746161613593789428257232503157915727984925083107749574014499449462187056068790387690687757923263110522384913044912130399995199019472827983739911618986183774661086200965951976735120479188544090467687984713365884425059864827192474927905015237025869474942114026705644823587518047120072124884473877275431473356678191765382240504115697370269793458509888356408532589516332919900000504356651416357090093113014433818293553209850072121767953653399848499472011122602399723708322412580742864575230841888816300451899993323053093811834307696233644694380818290146922380738433426570585511490773452578449209889622818456630722275095911664574565013664104786814529447751362640901506804029773509416110181729871406734554852694202356178278253973247237942185317604535968606966639698419375075820862242737619685950398535518295532474775750242910043912053233754413577173637737284104309432931945782695044647825378675352973058836097840958008134067497722665524228281351102727184108553660047077490261013751161854674013648000021201579499031806312266816949428093241915191983909105221069733323034957937336286376839813107821527790745432089274044973129103043992007287265005865329470051056390340607969983791261788434851025496033514785519805388320032670733954322593767708485768772149332150930761476791539836125231769975833175462158315164684702201652414632479925021924698820140008081613262070326906559051631810662792918374648038153913026014751107630997171794380556319742999951939681661043150008303149540250943043872371266339506898114207187348528595278306083656462460222901249897530453953319889744265988126074562731567120002809446251088866411460309497190915513648187950143646560512726941663714974817170497092650999589922639965522672286564044429878484552442753910063081878281547644586768121776084715433534098077851678108071397221151062310342841546118374931023198162991601252586722505111670934149972093757989943674063174174607810026473423376920938497787533963472452748585369307022456491277836183379084012258760510315217334311551945263960561626068733499597330614360522134251064193868314603250936507999226920334881577334874027983046787809288195203782057800226785585259392245891967328783318611493873289723518705138165716233471684512892255506594012665770711063618281608146145526578180647025229410034331694519852940066579955857116859799391332502364843346377655004127860721132020987195666892008291980815720464180125319744181439629201282884825739820327299630229971216330229904516091851152070226889352711403560948894621790134497152126126320189410915133161669914703448961257281690836736025615146982874643694334914906866447625034296659200892500541457135120612674017471872255118181131380135458812758841162152957954168321612219777403720269749104416042070393726496320589687693211350695612347762645059995995425338073419754850432794350307536835014877378696432386746366606022676178826895627782034190510582550681861218507196589680280254652041779668183271630864995485843635127609886751119551613305847682180004794081150301148490872446156153758188960148258491853983181160717116572983268711710217065710830392282567618530750855883374868441099072768099408933309801023509604444121801376180118122523061826062558410479896505236147525073200831566642370885555851878225391508480736153039135771051016051546003903258120948415834562888577708064930848232620221204786870591158288135606471413083607615154123908462698220083936095625020335394232450489795957196246516040494699412286363981819279452911768893590532057256699677269174599843417698045488376292839375404327526409209227011991575469314406877711721835304119320182287138689464888550258851245504288859287636066528195677293205105515126275525566202468467420771295777504280909180311324155466150342320031942844760476136750444893273437057731652127305785761333123315982515961865589661054614539518452271348564592933942022016856198372980580640202959743806343129436643794829565499407609986370597630746169178937338585945933976626350470499679481055537759039685519452526703614879374309263286859902203390451973935145399632824600522002595715909422453218317130341313845831489550816847842419893628410430326941463533309509518940392545577130530653347617342235691531973126742819933645571671089033155753964643550798271925436077380293331765790169879558273133835989341432107018553245124587361461866365286974255125196478119832536156866228187517380224052171938917176543916931455424992029217418814263472491897367074956652121013359342407308174999612251907324979837898574571661499679859803311942209719949259717893790150348674814234573716963255884177410457707642217826318306020095780838298823199945044573991417256639713198791312343277241022291750378558283518701419025183082702048784610434060339182239712530911648542588805230862022714805516552028490383810967496360773858157994846522423941657004619974428641454993032383880428570122214616692545929322198297417002824077752442209956992272815709803330445279605338697673847855771374218952525404433867155082522261418208684052450068334803134152160277732382455080737330504428438517046915435368246320166826044508540246936708237757375369637663836659373525944324978228277103311696065336515396932952003599696462617107175291733072177128357070450282803052537684965571760698698201017668502689487531289817191539533710769749863529574905785466758091313647458115910496803233579693665703162183444049530610426968867048683304634267497691834959340683657490309067244450026906355251954485431130019480519518282897592502509735594187011391600067162484641364704547135689296013467095633286585931170461733895323986828537663820781158313898253761888751698505743029995185993243327021566767594215832371912138671570955308624009991886104762370441089471382122029164212530190745805813751349879257182145894676449119574468941346771295063227491119414813846648616396559815941532514945521699069529874407093917623232734311346182832975967579367757170740965313295712863952703056366721658737360810977351889476188602681154369948583501108614986071773397035891144700420358725809662105455280271183458252902452007891378104505600560596381718959584253861982783935958636287849668896835296758164369536698870346686129415147825324321422473234089152688884033731000471965269468851216193682108465961763380016124035994310105827879636829836146562440271329445290044175157861915701593144753992827985354955647648536387690714545608431445039668826170619629078603399837409869398771328748675989059040305820916537501272822538365950664473884777124388959148907666664615494979932968672396250746947390761915904481001104337644604896258298628760394933139326573607443265274886196495015291571529383244419719693496150861597094393515870210086163346415612963427936284070592027106345751560575663832909702969828340578572151125533817992774046198024181011338850374623153192760243350936672840361509729556125224642785291778620109537820777521089643784333242147013020780115177932946559845305154908145496534721925968411126155086691330022122869060255126392972010813403590468995092576048369499706089978152867728660989111965002720929917475926151324596625190405844799795223250322522019837168521419220325276895349985047338638414803167572169248953010500694043130631253046927974286096220996819965050474861073371706273395197407322796157707904328110870261929536231664740745239026987513931882014371862116357464697872791109985902953091060784319249522219577365839478678805530508146572095930075445283708105960167525768445450803921000087897873300433038899025432694896936300390340767621906783894815569610391094823176533835290121494111549892940953932457261982326782102881193811753911629230402408548682753088716704409024268055347773238468454300080052735323830630810485251778464790210085567401808225724388636107738712475962907161510643116569352559605016653960681971862170014479718208556837051845348333486743171215015265993597172694318218380032028025260910030742511150020468190308235476725426732801529297292339153814710563414851729617149526344777059421410373467751237166497055327725266730577629588471473332270041108331578156298635137738358847271675753909590118103897441307979083562666820695016380138775929615898287762029543748108681499051778613499321219757432702058214113069206069356324975690433180353856063019461043803352898180761253831318305872430648570181902715555032982973596847245597773187987398942288755730664646158305054320227267150935553354315114151277326876561282771989979371014801134791572524439762509319216745508772220091807510865005587024633881240235208096130998257161860790724930567285448744514486045710454793820838760934044285838127539360105561112107131281718908442162821191245418829651761289485318903481919447040159695199875084846066068753984392900460977238093649564262926038483399621169190144891435264297540507161049421157536648980983786414160804259103307791544132500459832304989810343298259459299859596844520255096456551674564981259024625220599949515274830794023589481547833165190591113436188013749636399313433036157825297474810506305089797369893558817968251132761105614420334830891587770467194784204540176389368878325161456153683706742116561750318868653804747188277463348665503316804496470673127008412677735704456098363957779269419797194344465863868045197598174296736473361119415302950624295660140785456722107881950363531425972015429349700581099667900283058295598658003376884867990982458596453979581320572155609826974048138851594269586626810192090380090947280802593126993827324663020292646974149246239653639765813882420894651667636412780599490561588753431744805835323018798682554480941482317097467459618837364865823465916528536610320026515982981282865577611642834549968367852669689244495896392106051864047795863884018898487597355557439918683538060656032387106683385870470234691456278513806577573010303787922276378404696255481210909279348424167920609929881557756445046493450603875086769363803592949603072451503795084577722153859245339371076692193162758259273892010754476877360675122577274422071399360237826389067193138381770219654899943683099634641564128484020034374329480576371025498629615029861516302170707521995415857299949023982789488395765581336067914294299513502119508336736714693335324773531396023207101374298763323693441891985693396963463398606324299415328619150911824006105171970273295712541698301250044595262989448905750159797110336348472567373347096253220713367269770815391217218060417428417036042185438925686291972808116659600959020157181505105357448644107550861461120800422314068230190211258468800014912906731465090835073498507758198876862340431769702883436638110595700097642151935136926562425109382390871864730370501030884249484427625371077701053578134340272374980993725611147885797612368343088393880866025005975205495324802724153114885160820365442333814795846234881291131310217011612129538682432998675042930622506889693187405481535564535452169411396123610138912565567691796821900395262397649011882873141249637844699229040516030251386724021058548480951803027883421924343991131984760522070829750020688108830442103450309492447598816310927100899055167023887987701648713995040852016000805675304466991770256718361477665050117533668372642125667512160445621306608692328515777798356880293917751154975526546409216110717315254115824378824491446384623556127193687927852834703974868412821952246412747004300569815764132896998454597723261030053345397204119559274008220487270523994183922480388653754455525077347017615903823456195518818580642156270863689490049898362375744525845324087391892255800593040548350890825699649664934679384741709098547501924630037295231879485197736664120294841823525783821042128875008136422187406511690693118477596299595408792791414335664090774805190602741864914905942291387504781319004289315192378623668473558149244925781306976963824190034988897904263983003964454879369449829489743213297108356718938684675576945924328932431275900148306065421357632791745527280532757514544062380884904303990277941895010558968410284943261300173520919952646241332396739831676054146773851636393206856938347750486298306350198924982403799366548663703835245447600482553972447994803847730007965371176579879195614676894668851582634007890433138590638615361991106736741995269722534400677489580783477942112628470714448167900983455877611717494593443163497602963872708404983575245363306223019901083182365594730674485418946089460287496217702110677914780211772315888851185813347279089089478476358002894857984794649763150222487819156041577299088227541835822478604213327889858461326137892415758042423456129442095447847256128046569311196785026922342010699684750264867167449073923127101521558962299727691230764963506251381964407312417348438813622773071830050036797744665898613705295562398133109902907017520818762221933388874415652836289905383370828405481544912583173165920044252082833491382054747176738936257255158859670178394634639395847954712288196869496977866474371962647792498923348187920912134258895612967586306537996789185622874607345603043565872239690716611984855622735307025261383877279897018044163411466629661554533736204834265110213475888592098720784612244792915041102072625368273978093788195278635166090126551091959766832986347140404347882051643305899044942981643449761415912193947203808836589162098925256858235974032184160621795511261540389594623873834246608212217242493560707428307594939892956915459715211666515226890365635566237248232416887804298573875820304394944280017965829309527547755524850442629624111266054981969784665040653743161720002646243952470904899826035188932072794417798047919690916074030838586291481422937026045853671287193204569591812436242909180211910368281807986811373759816875454969177265935037623220830352149061007794754698226417599930727376495126835907477174884305828457920079047347589280145728202681602186531258535848640792544528320117275577006835523209161440164323838222939685707991309106905712461595194291692499485594337745430942693941641466398699123072279122171917869928155483127214752632665677075449675737398425382692528192459271376617992543968512626438021741371384708452295779435001553987311286281896576151838758194857059945153697249244882650962966546680330156692460231381977438097317066114220139556724092808322977720380400306380694479421293942184545933408862963510677438028213552671097615480400365921397227312977383484423254083259103506242990582967952806455061725107388599847989971650170848987426394536997707956019685781379267932515110212660366974118336989599689205800787572722517539365492495154676581649824441364496738113210140940771606436062094584351744641985902395239510115803173254116658742452806298923736786111772376291977751756010779577858076276422850470805081507806480940568651903401102784457844159272381824482554511715830761497607923245566835310077059103504632340023747797203544233165764875726061851987754809409959339876585542904612762582420444974526677638724667422944103149826183710685512762230648360162908260506872765036192289153589718296551376973991696133679633557295216018873406617973728195403062166055364362391449312342329777978250455713273523151389926795203760012102799989142247194697143578694681201302157755533997143297991673746310556750006003277014663402901662939527748655430502973892315274005702292952849907333378404397943937049738380123656384871426542070394350551112567774624780458288208773588371930407345929966865275135365690594029882505478433093388172769520388424354518331709448213004930018536187952332368038810181604229675691432029356945403662082405734909455827442923742859125280303619500366141126813491427034808075355957005564771248452247990448384050282493961448761988291417940174437287235128953365471682930590371606301927371037167532073419618425407810786918058911101295374705021873590995759619114649197758174565180505494836470633989764192801980393301415268368816356481567203883965679896374189110852221520623346742042376892700608170927621988091888528158669703105916877163441499608094001225045262237234540995163182951594381538521656445156600758575630270729033195726035089449552211703710724015822640630094928713792104699867464216796097160177084126215951866206321623063753495473059274525580027818304316907594497072683445894328062075600338785058308588472078619957952344775348975232050419305542457810910083696095654173152098846008548736238931541782097327910708593524841002299986936572816684742288140527092499331265209481823897366177350532725124033809482477124536918553900742348598159376822018578748469046166446291908846143448669009728277117394173349069020626841877741280926031419437466023405334373710217831218326098359992661313259831545160065011611623758650255696027152859014259344632944108128551362913727086530770912062638626617454302044000180811484125373671565829145039125202057335323958367144426354639378812581346426118737513982645586909434592141954313558131483593674784071450948758725318508894758000895861649730140888306595645550170274899657865980035630458572911638878581881937951540992278657546281578281806319756553700006938972632955742242568291578851039447277673056876919471903891838328732895281460457980633871099986993232552717630643043530275122792139729343058091730864101366324996777590818661910151784461502332669704824858543518811701309404839864320821856759563552704563977964252677888550653781608899402727966038467717248845521930198150251452071309305413165664481323041296744948855409030394535352210082541211331240681835449480649081918417113445170851324004918626395123017115498546788515373513651071419776073210393951508235872194534504038076242653197579689125684800286199520479618174130119215417054440986362450135456293641861328786940665505381397969607858975133026402020914063731941907261556465796017618646113784239574545877367753797095272126142410371134385208387591577577404026278646872660020179475793286608144886784842013706972470181894071400223086043512978902858194663792665403576971525196911482735260160433417674354732363259674600496215566735105247858629859994648138295496124250378677587275852742467939846275316441187675081546384303265062045325100655801504668991198765278174094062343062018037451708659945974613914895491810350171020307663910840816227265690824677946540539205037246384821480387492364208155136219913920302266209247007823890082402158498133054741264313036977824323837517346454057450074446888841282317327370592601036936212196348618154359253168067195441636574689410275808576451277220291202498171627720064516002397221475082998705699732437054189655621520623582140500148841531036310709763532146624182342696503359999052420663048455553747644948947733092670199214271882473083705962189730438971451800699262367556921843400296766878873164237597550304682761210024001908418485175963155411293086006429439394187690925458415258355439407457270502319145591969467371017371307575193705877319129550693602393649893195686100873225901860193964487996859980769142655694229662540864985556337046744758705612634620132632768082954184363071974006384409028405870243225817041944831494115642708456233913587259502875203465793147303256327569745098657420125956897839096058874066599023953142155952832823064073469745931384034928027947572706621745298029568621250243000535193030441558131851996674275385601599794641648165390910254529613783897796657391246275982545604382628611909333120363402261437537807897756705131656346536214221224972997403891466126995500815479033232546563084971021253258967969275234895675120780113282474614887778276051526727514554324981969511370712430031652813135423842354792681592139941427600059622835568236985844378908920904404842322514396142987422649843051626948758309105856451502897280754071548317546998367850838794830794715088896188130326103562341599349820692105167177133039488808269975348162541687409520873371018492415594867246310236531885732153352195622782555104527392193889257204956743965544078462973475591035519630712808252248247366866808724256588161744976516048104537559674195187533470210413854873966974626013991901626866779611343836592392671070029730649422824902658451533608364407249997143802216390070527298098607896889646244159284167730141135553399086112395000317152931222718502953914762085453219753578293005361520096964409820606301971286531412162346574583201766607932284085239188103202247426936298271719902084918631051935431519674283089994281027955729445689082754552933764298573893650803890399050603393007606793333819964182271311263932446767242550536834046017806714447818930786946036915525216552152231473020452868904786156976418991356103408769339310090417787684037168406557649224337446353397385223022612175950505348238609847491375142193706330087034799651250454108527104651146070402345464260779736973058542589220029704965528941020007540769977280236401871901005942772759521576738909898605356503804355489261769940663066004700744616927210199511392267159705250333599114739714180108766439247371290071976614423154941550560218468142106023995880620796400766592228728279179303696503534371094540608194757868484751280380351561094255695196786378182675759047897659114544960802908303624001632410626507631172815546390165818013992229726381646639661531610601950900772988360499572103587950855325321208871764573935523808777118752756240415630922745671577300354003600716134996226716518534752841124168252743918454279459757648879775135357001165522051021931007498344648838755739105433486750652746206819508926066175586678749744261656232391151005340888421476012227913214136295245174727932020719865547024236168749839861816104626017059711709300910181698356392475300212265587233021368781466091708854882191913325934106238443121614501569344630603095481146015703564902770397918301913684730988314800075966267776861797364608403702743790025121896486910546092470815489950760350919284569080934617198601033889395621772333862098272143055900366270008885412865862909498290269701601945430911706166025528392158232493035272221858014401791277564460999306426040842123177825686997398299804108490150153076357477266654398711507505898622013529047137167377324282782497676011923102843290331053742459405184450791643259613620586701412591517998693649634174235611324643274278714026848224863875660394690129057916647623566877274874965800404564709642472640026815040291632921563372662671726756794300111308489392270966055391884072495225224104541737484524089840564829489518329888228633359993113436531521246494119615979438449374467742081137833940005237868390282959820804634517370409398998570004017576994949183948593558866547819846760493658348540445879226093906653886864298258778457451925584107753048661784468517410481818027220589292640101363658036112856797964900087407954115780697404045734746428190829981468227779387929018918607054267020301201843169976360349178642894946285088230909101879991132921961572907067319198067650798876056387226059680913050642834375805813942001418404191164542200897721985685667811239521928076222093068362286211325214403308826080035654598189512265325219367114228960379875396801125549364879645742603704887860277351880514964065167919357022121991073980756586695306429900799120171300149642760580405839385986244228841438130950226183617414386731789993731001931777840807302355873892376879120622592967922769521146228636244386741249640717898392611931662857671119300653194295903834284739132354523152199138945545996454274599725195377195747691633494518714239770510629526308343405572972183734980967026853838315096704513100062343238161941716513193652748708442815650721344870732688666264186542812177414388553970245081177325216844490022479670332774836922353085337564699879664750101555354705412211826172381456755637168381739798149522152072307579576609175727463557082828718797837571851716747800733230541463096859401741641887211606048790019891780886478359626586314780693167892548700638632567793549214284053362702952274976314811390399880627911091973523567442922631596826988323974267399355754295550276919759035072610813501646230851592435378904322303048475318716450949613116127858120560747840999717389192442106752726966424878983080724585179284390684006508572103042554935385880293040706345364370955803689053413423296017641251806321566771837546749901863629538714762576656420880158930825576477246051082101547350518941398396375944709931532177676048881946318159974764649172721027737534115488288081632588592415955895303741063752911075097043193401326067285725762327176216694007896914638010176077141263249270399740319890812251439401634689017931036076338272131651505049228584729001945514636532817731507301108199530209188289734603349870179515662866347358126605292920432401338101791955563226304033533909927651861034453513922422061919085183337116312118327885560022972776912722449430712445727381137832290214061019131619061440096906134998870015914965377849498342805560669220810347014584772494743304065223104683161859565475650113330393697051520019174584519585884554015041783993934924824141330457134002349190709293719772702576464956720442417955752536938230852365407598866836824070225468109305509829885502841167709398476970966639150011820059820068121696286479163060625518042157936265191213323493316751831846567671852636928413808999687196745249125593318876079626559009317924871900679082403044639984089806835829253498566255928783901720865986760146700120765598380558204853098594092481995804489984774539448948157587677139037160952902011163424342276113171402470831517082999715950254623854680071834713879810136189638730246460148822887559878753325775850584307179420558090901656416759546343078539511940936430845334032273297352909598171132243587384159201496817233883833935207518558391728755229618657748085328462310891926842887814992634709210919425339734019595520097339618693265211798225243817666863802499277774047840401683407297877897530082443517274532845997622746098692654944545261421495705378079610541007566973102184115024015685846411340939672477581257487422877808278518444096797039180588112170642596277106135957562741431138918968188636873915732097364514648965495011300426242536021002619590646426451497846043518067198933589964819264577737628149322227037771561184313702145036834945725255005464214276899013317411936278028919105130055522394940659222341963300185734966562651268168283176451287147240372812346670525309346334750440832082131115790471615718429640970846751049781953438259965857249153790603087283181281696682316485533918094046927213151820690077205706529682659086574047825075711683332619606665205283194266051610696377156609584688332010503046677643679132285967519565895945046315233785777126920114538960340835351296906031856982651151809822716342785673794593349075062395407557385060952764319081833176556460675251140724365768513999117867725057388766224607138616655696844632078349507143781658923056115398870670290647079731381075515727091503970544827186283476897168496641491551955387726369119807617641630415407999122919098281133520509836098999760380337017830545855213477738015809717433828963084871020232262832430982955250533583265139359246547077841279287416122785299808793629140465985138511981560687765580276345241275397514542764537805048136661863104772201346142849593406929062456693193052407037488162358382110816995147875953217305553856286527728667471187178362394545366046658405122394113858459549534261527056086954365355828849693440003795826822643221510769286510196742689704448878424374620422513884340961406091221939289702584456811317527907478429136045460546200108109092297102698652160380264118823347350590687494515862268627471957905196446447883190548747551930063974236940249843528823956245236777704928982278905111102732079060643855493913252124162766677084343363630302167257583477584300720348515939712328052329785014620980095753212270185384945354797625673933630829762600292748850065041750422969359907917290378403404176883604745056746577029981003830174541538891607278244135627900207037492944805897265028302708740149539141631910841564302111891457036391481622714175592909291542809564055625485370218124796245328188285158549598176835442820871201151884777093479116056016621404103126949493761826107837103907899112637748224676557911605738131326005232383424343557127052227619672003944488312186318266264085585310012114748869886265918011946261475903129150764159774417523301013051507947259039207221472286354763977927699739150324013370467412778344402213243805651015692880736490721285504276195124326498610136073227188430452927234522372324041268895240305148025134939841032749143969809120622135900125268422547463829143256653485953290199545661733827533672915753825323624202165401979329902892708990097418094129603927282320769005626353246965627114431687428347699630380536778300992409388810406286443479473631838754302804611516746473652955301863137397768253456794712550960644144695987344009330366952178900291934594487397284379979613415773424447679489925555534349040299919826649513223573120321197688959589211699284821370274896153185662724877309350645779692931985657249508736706827730328891695068089225037077940904092654080011293398200930848015163204648985658258766503586423346031824899160790710813385131043433352413181006739810739398065619086697135637111277350003178514554908537713494934888849348926409457981524161819973719896850703265016005818535442680334868472197899905108820295716264838810571982980891262667084688737103710408476305723071839278846086723777041473553394429643233715636937969855621681473416572867723004575763495104409575403906835231415453957009190568353204265619079383484897538056169550444997574894979886541279610401869491058891798040840718918189509843938370356928066102623156739493816616356319756347126657843542046164264920790524534623651193876468733740412658248754662805364342985607679139391499067129836970816155097903167949052096183925350339971343447720834771611591867218694985378205729132365116010767652190944983406437078136090955679938758375415685421034173575278898075021684879989917548781765346401531194287989395416744755848923520390689226318587294516853277554715646881741198106987072123593401391260388399928727163380053367302778627008957353853072475177086983802740568257066998604620566638288907660576011487964409105806195815748657483867067158309457693671307539196400669244948555329309045195562914312883603619797184478860111663184647242019589751086078876893391748837081768540636443458000141514281357820941219421519707168166254274744889027526160811908889757080317287746922031026338844317769779570081115621198613371129662796156865559770166904895393576874288505113358484560923003210357015562720562520287929311059667095278105908015106848920883967095293190291083933192300261300342124037002909814039396478608537519904579120220207335605329434981353767151723350691523616836679416634308126772236740396042459280047511766928602869969772947597066564561948065075581639521977937298344433599306733459745508045793922985653588605179791440123747924487921856853488899285512634586166616542925019259641517987008598812141407555747637688674429592460757718179937779753903540785620026777718832529775159572688752439182639996502114067281250600587761463016526501317371302951305244886419860240087935024717203441970612030022904691893161502723999776097827940359327067056523000668101946111691048686766929135351497236986604099245806231958899700153821098211016784126822890815193683965644324660173679417937859370366118382958153709772577568527596537568963431030313285579944426600849690228883471060099046091706509416350024338413510187302445264684515842011195350130091734458035987886039180771793462767947109512030623903895492916595007297567273645980320499114467071637383226011131375525255338000640012409217190829822083702252591456391786098508418000096362488585751078402344655199478212676662030063395552359237152322433634976353475177029176354273028809685338302416290303255905719045650724866509249767461467237147687835848187352275374657605972538985600502907274325795887449280854089090504962913590734910736863851977256182238566648217071600786856987684514781477836624382439208082444628911736415141801358238033786315325812795087656786772208952687389546115532567775745506230662112400602466578536683636165315656882325766451857230127354068240387883618751416424653695748943908438380533731870847989898207100448286002260994462953672059621749026850408690828746052696432388347303675695227553611201159651813998555673148316198854311584764796945477600790592158324987004608205748537735841104372063735133546619811111006987720250247262805374162735525077081199318610392473462424094683740407230195453863394470521946321856936497130942025337285935206005327028826014518483521999466211879031098914311415117359957720036316120347090377545537933423695686883335124909304818878088966788017432407076876288402214119913990318881683969290191860609808373521720909737112263287229295648311315038672125737319891961120997218553285946170340001949942993407045340426610229006994767205722885871732209884904706337685969550381910447034330394961902361201756808897280974269754185065426965268823052605690631116652578440658207647626631767698454625451128887120394018686947211034155196481420532528879308228801731749127566676932085524402058819070240476052897301092014980548013891962637234530926629287212251421119521812811491889047601404426416755813890179263325822368969395961271232563973451156178781380868289288006083898208838840010736214472215764730520869782506117427964905168627980586053389349407351474074839468590027615883527612789123980494240137823483617291243070403823317869418473562570440377689010058544709729470426950694825355391478598981075332932111702291332463184989076160168557033690815430693404791523470910605860805639748495443705464870493267310115534189083856168974406252744197096483825668515950662142125151951106758080912810406536237278723320165730058989443480808365081425221146124395103496964448267114184345258958684763171330166042687774011949968588538002785534476173474301462593980670296861486577342393705328777053774561697336970807188496718020711070712404693470898547086279242429974692169404325348112078080118362515687658328141528717286479117956508198986552482883982377298216287804433892127715017008793843204399841230523042077429635709748465091391425263852366090415545000507854868067675508436429963510634152978751337985985511925846415452170462278450693594646129451733647012086011503215104700335786687228374484909573489105394726689121691475549309740765887201891558194288411017890928706450346703894102685629966910365039111289309726280342561544651105724539077736110647964662796565134932633488244936200289690892886875449169388656611085424040257440087471985086760345057701322963553986488804281601047283607765376015347104863151352583462953322427176575896518258027083684854613416175475376087353678458639815268272585682095024364160516947387063807263197563236257483402980442861432248554954891407110320808462269731620248731261482890835408058852443355328638922000197735445353422606850326036342934135645077927082212129376757138354228486050919094538864301909185471785593570462391404050309306359110206319788101674111988095076163411461322729506040085074439881189325966524856129070509138089127797919228262343401562034362346038157122213725432239301372132050082793393883268004526896742809716030635414226459892645546580310218682470010495263437388508902429587621239672741908505301009402861590558897760066328544688851984577457738437616117257185162285610401342426542817852067637373911086031178510870247787466661419043792943809007492176692883148292628678458110417010687291251059483221018682529232824909920052873104362672614893370357341226814598393504107194047769842481508524844031073675715911262918565765156782423740429515197116916591039119136139520145264501426138248185933743775158050300085493887650184432408546113438139881289439339686999442502857551582040339834258816447311917200050926523392712086155884638658856881569026207513350275057147609629406657851894581257579643597518712512131387590266248267950675125563079594374923731551256601952893925788302501509706125911608779205593635312634429223831059776542530552812603217099724187688229264587821873076850900929495316852862596011246596798203470704357347381226079925375888876346970415656321509051485435354282259016518047210400224766834292037893158293486114411002605466288088379727583027897919672527129974986723187756764371407038813491427428620033411852756659952241817019292074238882475033377601079859353343885766817300324504240421009765173121157339962901248325954247084648624711387663202588891791121015526835951446436129804439940137682495274154013876716827400343771562558731213239282120360908154285305569474815838171445740396287934242538534593217882337240149275686186879595876838562086230734679536535764849431203416721159663143960949137534245077564676681584489252683112122962359483313612397372825569612528667880786359824394177348495743487142536171232845059944908352805323282668403489546521547110611660252425278122109120749404729699201155130763315197100649965527959957546274221357120821350404343058561797397047012388871902150596379448271617906112336006629733893610745985976779854410551306611639306170071318573451427571974855266353872011836618513212963165022719269513802360032898249797637315070197043762500502104061772288941269834860532623770250496962393155219119684474455698971458756999435225412801818929440131115165873232574334245765331504783158011114375687802334999721134616999871137251770487914670372562390333033223765536859991517073593917460177880502234222861915972728372875411104990523119394885805521623063132822085873082045185644761525255982046506057280436264321370521899068774134752127369183807244331331573034029508452987169456527846521555365763421875041214336715765474486461524998163384334993582224248632052057187808999225268295759765881548214105165776053554082600812339560632305690686508917763313529516361874531434017913913269490007579331486125575199072591257354874361765562236980823942775233130057566458246183946398749856142597766387963469170743902978752353586681662981229743556744376439707609550062749777052973663558533800826947706277410250567210931822553709095996348482348782908562746463855834474534392900162601830840084529662230106864556350613524724346438269072610706262837958991253266492571369039095920441486452521684738258480755697802326043288374719487034897289569271779340994815105162220872590612150840571093979439514252610409723613147509580936381592758660184059416231250871243669605538273993885442294861515073368781876411947564675550664239941607027155831363610043890809234012595614744672609274446626044126257836657381820732600324023676031315491502221105543404796089543277195741480583291759805433876085740021082258387814055113625693599030577224158699065189751720434866691562458757880286178568199094280614583045011009708726171610745836576843058427522758535318757441351686683584485070691414719203323079833041483841550692773237619900027292991851820003810536692383778997755719180452078309243669955005549961462075463166594519597416161998562556027159592091165682501227048245122835489349903013165694290011622688657640313149817053424883545006936987186293179006031706533206342062196222002131557989386985588217445751775061281146659271105903185380041088605961734239655691666144065343712585723573524025400257647802810532368341313031720724052492739548434656346386905475243884249387621392331201572920418643744508792786127923262939768142955576390093424477930006082015283764821437430583858095680250070656099236244218804043406216449320013964453142034577925663742168964975723873109677363691116447527362424453024517060572797581293080649140463409019237638110168841410195599708019396097763029040749841719388590550713867190862758899690573319159496313633366712709073230869507895311047521772613772087403087898771368205143866324307357272536336919688877955234350814074065887587599314872769258247366287169061678461860744501986925814131782485531389075709853073350985084492785331813456320501563306936986763683489332047704993360557319738395276816076675127708279888040587867118557305527576558471477770048228083901412900617447207182634142388301066025804132110537285592631640947404160415344879433898044122079840068398824068859686813433509265429714166588632410801321166786778532853674165704775082258502875208740542219569243889826468852370099447045667259160377259277151710944410025561085435474301924317422242551425378724002610637881365990140596459542093068875441416633999002850782177622973638173076264927484813019166848419333543969107557627060810813602389443651700986414747912875635838597668962192793644067800490027039848677036204186258108019084137603399215291300672237030405000864121451117686289972726374601440098890093647164925069866563528914246250663435620903209827285580598115709277494084031172741068562267399005049493658383262516260523928398897655967293434621255112664229877427943664545562557597942455806775140447213440026838101972858332469963569296027379588965591910287611192968091830160960500422401428976528395690792021909701087340136845704390018175376762499156543157038452893603012818016143140442300834305580562167759743886986616923434054892050872086907912712865764266196790307063715137937050614755882784778408738898461979388807358792997852055812499275361806314651602160758082795611273923129435573110404725805562813120548226872761765695640796419902863566383723712573999772616765484488344555786189502040610390787645438598474557664256215373918691898162625450378082259464970115354388021676537870070890335856183502946771336244252208983750638558182277889598969825931846724788538279241801669266165647606400620821926404112971364765625377968899818939123423455417999243593469101558391457566934520695995526212904709170817983234034761464025569265710805900510089925019617064470326827472137702694925438472481266157237111893951385993019320846419697856631482142598543074041516631634164702275081278426440104233692587748205139748217132391107221525222533689269155654085636123590834438487491871750550484350816676186951434757507844728368310209487043883157352725294275708574235994268825184746000741680494283095257694119813709195480812432509276948631019726626489337938225062642092441042362500783004099596898611799580612561860520929568915626726365777477574660611383655295853255152469990565684653334510386415569117321073988902717284069210636524698578177207493353913009204054076845167761881564694754891208442259973880458703789993921686421688500495615345353103588421190655316205632266477986252164464140271684289811211374372467778160293745891804565930063994354028605093328346001511528056314335158675722939636524889304085525958659799802634762667992263229594670118396146069539780836851240992376705593378182945468260582561532552846962781536616153664792664215328122201558969603734497755078600071357923246319728354224138577512825739129203470024307035578431414426734687551597008945087632092722979369061908631638692344616734953303561860170836577379725783687958569203609625899257537783899166132627161190704050700069477044511305205980922493144280998153757881548097340262345581900598233074140459018743165597686715970110460316160085429516516803720364605686831727563625998871099110635503466894239465868657441003819648622854360417356585605244918208815095510608935654614809884152145615210601305310814541541552949956668790562764970730705653712535765056329999163566510183671680463344645895604034562113938961613899180019041305201370080258846552606815052792465888643036792323726067594133829785323317804523513272292779662208600642702767927267341137254391104210387626527598733762835543414958637515444298729011333623938058942281942373655468090067928862981668459311651243041832579663487080148492874300341179153973429776960670366682834119036799568924996284325026585883115166045956316134311335617150766652188811457030372645204172312550431008367618022474932315006235055182780503308625883439575836788274485178456391611692485134748643813453958058177859083805689927372672042040148746516636609076246336204696071337579739677442240343919540765480743173767976966133330321225320282158427129626857130724056298135809295094293724961134451904496840422801433187155328830144968274575297007664975135983975218479986254071932369189484549639615614373106260757360665691111269352622796976662623725580323741113646071799587131588686836133926413502959289401936074158146677754508576961535534536162584571727383285276766097299730198752070480065064203056805465041799350315790286252310089628674051934294225975601316937923877201048231250335025917276364799115936674461768611007224584312364384599293531629929746481008081361792177797936945602623844690653224700800285705244949206694601708815014670224180320392313188913947452031094335942161412658404606460660705006112511831783123944371427491855106244963556413962423448205963097149348092789462991574392584870910022146468630987173950094502869929355283307663162038725447285786609441794975602775630289418202519984445221682736618203128574266883931099097496942239940313553955478474604530239959367086989648945422801291343629316726768040745878712888149662173523692754163901892510589034448540439828873489720778703831259124384075611753527635799468058436077527682961913042321558250856002064046435334043687284316223081642796849545273810554255314680297353749826289675874282941791487061333632283716768265390625361363686675037199227231869012988184357899537682491917685775535051576219693557136029749576579384257273242789840285248197475910507353515978138958303673448968733238133438751449726168410072619842662227437196591684703469941119924272456659449231577921593665093164982354099618676574213280177373069555872574050681699610415002301152006283438718604339390084492606678804498335262844961754948720281373087223821328046735779160415256372535548462464376023049958079379017657791153703422414705323490064040979501810217903145499308131875424258788875873053181180626129901552910058578713066459990772899588508284741202284152742615089947791909861410474368505306659699470477992614088592321245921358804742077448982641983130592962955890578086940176591008888517656932850570633778706355793927108372590033819392609341229097518811284115980599834964397670864014778223572401495985135300861848417706057939179163650088815730705672246603182081730541894271341494641461737111053614256744359774296500817006369426038939344206715588786543484495740859446264260415421828160686327391271730156681084476351149226592232142711892514725740808693813881973850028525803130851829033233079969536047757367176494008763941772546972115356368201469541545873100201817615386600080557256153597040510048977896603665672634591969496224076282876319643424500630815847906085665468574353471647009305510903321457452955258359348659796984214730443693232090969578134397228387240305040739268666565553854821222277733639499355806730223188301456946064720610272103642827838023997035098119434187375827780493571859620519343235662651444413459681315835143058360650128003524037752952859074161169931360812137063617049860550585645342785376539807592032258295915239836171138270805265167698207052529333575962563839051277603836905105159807879485162851476504500083411675948684901540539713916560316207891088675950373270322195912604728433665500552038182385209798474311336493629111674381122393275077827719791048880736058935789327999843020914189996329269668286348885698325765069292115468238640623247308147823444523092258439803544218968613513506777081055396514492735815440421202966078738698386742979345615637836917320084034177788673550500906575646514603541437847932243644081870725908974287004702966482411969895541672989756984173065267047815353277159580448631036536674731502247777201006516625826660782196869479514074224991020960978364794223456575793671520448034012028183022243520827966533408854389189177262680345107335288637488928774485992660408642026243986648996897981009960553536865129560926484872324131868306122378381285424053155883957635887889214854443545613476558080373120981689475406499522392493715817085433285475762105562167720547559931892134111931898465722600144250061754113429388200390851836217787923624352758212943584782592967672168273368037955494926519151600140627120624786234921146782274759093598327226962473846384849428524038221414372278705653933012424482791501395349866949815487627761564528637521772041486258223959607033601280371852077138081265368928350813693584921841073242828901054170525016146233629576985584864274068481971672780550747835931226863295348776698697243950022654394964535930586613221167442211695308428467715326066757085290884507471102069157098945584653948661344063052538845847706394745292445607130043585928816573900293293931502747710074161046446801368878956650843883416128601505404649067567733786274245642878876267448580940817754283757023949399597495667666700204580773016570425058219861201506233923789329163050788983024986322080697975396788806231551235083396634911209072160301052345854638472113053339939270476064223821616413105757584505426785482026426482581488966321751070408385350111822190923254068888163242325018412836317833707122408032376234143501043149306199203983129653705605851824845275148790163955701970494743763673272949247735773812343074078696926212377303621990331368578767079139817416249854963662759313174829034383360062687424493117422107579214736452038663226213544055875609143580937114666451489031814995351009762007482431004733595555883259930148657808767749236347422045183109156311258550890594048695842458452978366242818406687619989984283915411858936882417846805585432139714281547647833163121057075862998343929654160562031881600205941515298443524283397917391574731353617943077106010095458350678961223913291640492297576928728103013881146183359409333725179506975462090249049890094348636597102397796046592456362168299293344480761999128427165156607082713300713895048782522254009797193231785213125029418567438126177646605415095173354416338496735428748591122123821549776690575355422708009311877239826361477663111696667704544801895682709173468602222944637829923129398586354174487586518532865782214218178831039434703096114367197598606372393586817002509424257105647986881620833188896876315008231002242312921477022343779506104774505514346218669242042430753896933061277937189193867254103129778650012081058226463917387139124967331625935963590660738680446964353835394990062287222564653768754260307355283451911976838633660830157772777544866693495592099888550578377409109092232158299425291789610790807654171534441982686816825318718570316915677933499953361790892482824220452274876244886887023696184843213967935337085244171792399939313666780505137528325833998397542947210919470414072628296248816028413655460658336227274843708045555448295016237953981311141218382943792059377436476316585536026037445690029332285095517161018672622897252328913145931228702523608623489135958321190947071088519826843021787671927308246095731105868914938219913301866961007455269127962418004353547377594191494309376018538309424289406564791883412243095760341859245481245233695575988271952331111460455795072930137192766565963473388733288097421532649455728057725268256013191973005004513716165260752781328405968000642739117180576440150896675389162603847386890634764735129840265410456981888939255379415431992058685722857579351105240656882265825892810395582621991365110493528581258409121793711047106586699607477910506459710863582217113467898617898599075539348931274536421943928901644997796435124185075753200303978918682995950830983989604321617533504565950305580671626524529271954759296841229790630172345553199670731552146925551803548121575888374060796297592019307588244718294560783055785655249342454069781393523619908501250967260507991312120316499946726820352335234752913339343189549348374642008237851088392422244540337566884130492598575935561715444489657802473466786287104812829023045685088855996331618879700432507977753803371310883095710467737530374130321329379960013967626954668785750191514191763770746014668061845029450817140162852257940205358553173055023449490010296804168613087090500117715551344010232835259998736216433326846925971665627549797929384299600849490282500114209310168406396000905437518579595367797472912103608575809930494978978443155575525916355137028173596446793882536906008405561541841408793099091083931644963746336787825986215759592313532203506378822608932354210013075193942529297945291126142466946562664306156168514080950557144916598457194021300652260815467662860558659415975163374329227125497312807729868749781745824761749875960749233001154429299209487928703816666203897457202746166681581754268232473859326729704039426682661806278011574116196549939224759996141708995733665715895953474653164963202385644176050421178493243275492193564574027444735383268312657780041629133802224049750373737987947444645479358824765902263298865068669723042778803063810960219330854678384354813740287468665836002077538664903174894471636236251554192723518207993332172124287538481759595188778012074681856530128980151377443134163000574168441845954285171271371716931905471593787676860447057193546853175704657646123108544602765421513675258611084722429632032796699631598315376413216562803748450010654174082869445275058195382292930362844869116387604725393720977588317280442325863184835576393561993439847213931329556095122770887093482841827926346676730603413196339731902571163984826263357574127796404692000705521058620157482769433258772881352217625605393695691420807067448292940455221871848040204258174602852503354228322312372092245102152188967082707160703084010141445582060816623231800747237186914663838235226340835875883709955414294620352471429342191328148913186731906977226713880429914363125328130429927109899023992195566997618724722783805980613729868575829856941337092238053130953923073133188672488835047844294710041277742583594633397606988649417057922862618228887664980186925345330463382919513395338734272000049987422769304114543043003580357116804301178877037024309599785958851982234714712843873449506494722408611658145826153533535008926046800608087319434277357304964273468914373574550528948797637626901699404751126033199314039562944019373666279344671174469735593364283527182620032713864741494529971712386681604011178012610738376735841868355009637472965129651654162742649768100324624263212776875607066873284761292292576076455269085899288986863455210716356302198021417839412329402774627325485657600622645171379261133126431046606905261877459331689275453633729061295722442522020672940475711942683507328709550701013469265780721489494992583936183699620695969710300591752348502492038019142161610480321862405720648431565355342030291969000783453294318629489957356835001611361369402238932618382779921344025912775220700788889121990712373378974244620397414071187839431257337093369954246756948256962841680955731982435015976073536945853123716444848650946271720125903971224561878065948703218607614840354378762943069178079008309718557120852236160156111503010891438530486648986898841349759986207600845892958237276982102518421862062162469393398349964384388085612431187445781387945030438671519808361198896753030535603998703915669161860565900016582073449187527127034739226376525821011021828799424770547323740766277413790880117126083128628067081512196389054144291888989274200773183344308058226120205014027495538407606870336811783744078444723453839276851156338855443203023007061778998549575891993923795778000978046791193091485816039552136952260247792755602429146168109161549369174441024908119474304205677812339027097344880203594733082405661674092319020449096411109506716288835414182966282220344660289626437012546882271994529256076774387113034534868339793374940978858274945139819868283225151337517960251321959978061617607473017729205429301233208309931897077232178223434456468578831068104671942363476813382549386177235979512751551152036929120797037510146518482698050049196003313611370423326080950925792670208687487248079309303656831360160292580370188900264938767837378150793927834443610676538083348943075489311950484395074486624406827465869029758700004269486683845163349267776964397572642203057882641908602882363262492129279321033889303255808836306570469988658621823639058146133341084720445344926901489815558553750787585189524346697506741153096286465074970595104918212138814987637248662524938200490922320863220738348718855266794418120714640335426371688618915956581429182894830624237754421966856803411312982655834086331705516348505785336114510198593105734959975374648374346760164050330739306253871830624351771863132355812266851044174976808252507456594522461197985359857446550025233759892530216111254967160023288160289838439419119295770604701624508127836772130947371289668810497798192118217475058975767996801559220870503928070466811697126560522664460305280730170305826783635290501231277178752793519889351448644820784750227982322718760797971089781314238385842474490759769637845638218722485375310218886505227726934473844425833616189707468042500331431714806707719378069528113721802848491170115777606922607308278962990999802643564930932351619028952600246633064908357689016510850436187633485960717993536775919395486311590018381212613820938531407176303010425580708437329386114940191006208980657505714894595313679400495551019737449366083252312626805377746176180836629400084112218919932187019687235408934545889196591231677427932928805558959118204157584701651272841382334552134903615152924569760824941508033357833447661927692250891342367647328186179029706822110679316535995077160176489731478977368081389171221377114537618976499315288557608310415520768047339327738722111857536159671686537084511199272183327363544669431204280269977631727129049478780513937778545255152108577946910860780692604056398399141923514866023576494870621063761590619629768502233685201553858014577754355434351844597205215105186463064426880915722817275754551410784657638659445345091788025497463542456659198791359514179173788493428014579744689997590793030582042181795485387568734198779081506081864417016763936976752774680786610033093615783464028267833086546239259431026179097311132386331084025725112262762915537349910116873053795721291066552499862701393697923042945490517855787168816778883356752528655685218174665458775761195432742983418240707219482897154406045892614309812558262316283136348809538679350052656625410285041662433150802925259872685617337649230181758057310714310635481930568151471154900354608115437127848617510785107189852257866579393663715357308946842306453912294123102626852510106471915644522276948942525336243776448482592282039443149638513939881416180455804866668344111089325348212964403028526788788806844819949733396209506585538105980008277330468117647360781997009935401238700857604172704066750445951711831873648266936001273036066660325224970732065201713099136904546407075054251532719835960635619362463283117134616719941090760104462974245900030600508824433639472608781034839958303417670251577904585488193787511831813115999305265567380853944648344220525595994633700842580797179629830987274283949108966946098286667033204584968157221081656012165724169722794529236135517048345075435450573141570043511267163656523059036715276236649041903745239526259475445907761915788179799089810393915126253734075013685839727097262152316442914815333897909493123968056209314935982667990333672765596104431219621884928124848915389954228921316666006872302500745566799314233362911416055214975034209606043444789188127339178275176464111013911648011975881108682052264699962307918128564707511031366482344324030783603327562349731768798923842025391194424509090605116622717555655316114299711206908747609996670505219468561457772839906878686120108455633245724654007832441043253994746777211110818046791763597459976379905688497943595649273747818743574547624996648591855808931520566619760002118075982285210733894498189398136696603219722769073547911200521832970140621400169507921813044165157546051624560662153229887879903156055843147768086133119433194645928673937888341895374700572323265981534372199216200858635487240065154114485426741119903209730373867736996757241631604422400822336023928363944119101043980921126404392496546752837901170257386478633671499425659359943572352190553975360817544170133591191056456215581613728854213183066902703381509419548357467541759259844861470986423859550563222635484454222687627458104629759437671140680676146869088499160708488376892327179790306472465988105550806596507229024831397619800994608714618494489906017465768418484972636331880749044744264011937768100136201323253105463242027086618621797508508888583939451728938168289035920192467057433306724669849374277891211212796905617351714203341913279668755424713346280939181212878694748932214735516816524481516147204753008524114738377606505819041616351843372925924943331571137278762299562584161944749444824041897561691704838043970245882702566701962371745135499920022196109145442276907369167399225280076983528698015768282746851178315928152059645481684694362233015877959688520672206426256745685254685882252071735622291506395403818972352146638061262638575469480989800869388665318468692230557987860130208714679474064905770967694688248761357221985437652963658402459430608314113987868263697074618486118942429620979510060644199916100010794044635973587901203022469278994396880819117607286209421372327486815823927534395159376864357247459294555886309141479204198267409118893378894029464530326271872361233334307791072905005593364115194228453501090504706378623892693957859602249028206380036849038866486198976779691977383965524145195912147318831810452756892606472673679234816245844575604531399918155175618078403453265219242316744938477263937487783844762845677782588121796647940567000513011073393921575627460326896685256083678903963170059397301296690212350771924490909872761575479625882957952958756251008969344725608691425998054333713512949947705226101575459813087062084840214474250207317826503652619182878207108357513996657494218270055564764970776320802402948045398460298965988202493908962818149093246356377772632824759938276057928500322366388216160707974046034914479552343465163853011871577448280940716031057471843099781095268372161281617848650014678342647825239707159391395476357257007438043691970635971553443331330346357613735272861090378489443714992318609965890708899831113204456847363389457287405931795130444077353662792615036327477275088262544732052008695878238020490949412315349873774315464135859259039371879189226678571372031571719474037768627316487236790897264715667605366942100337119891108365415991286828861187559746134233231361096942198592401663287629476935566796683585610471734521589201955329824052609699301866415621087211439831360190654519467362499875677288972466281567384847668548409257762381050675674121675656132877235346506626081319146715184595522314711249885332940996361446016967828066607135610871320306082517474513948482771980504132678077148355005601532480383798436712713983304008620497724626684680943045761290220483691579479202963575297233127243426189962544358765274306931757875610602331593876155080990748922826427211023098771403892595807379940243592963997976817710886499272175579184499116258580141077410809156982037763668838356226274531584982430273753474531786679340902997740667428258043474162273118194197401419209019580972649124270676777498477718531760163361967843755825881657151090898273880574714980804163508577426626057173452333206531796260007957956038203986232520396188088782495901769477543205124754221421479787713122341600205655429834242501118055224105778393553924001940636711840741817638459317355997863830915993696576121303436395151324031744380150002667392568741535203317721042432280209073338424599143120633603658281933477747940475259980397378514558080432440884804513013499598477800856714312857341234753243029953490316696121989859978594376964861824500226940665056130574144912755042548540669693449772008076884033204856353136760808951380624677117612714298661195095483679121955539180243412976303122000158141103313747065369804217749495738504431080579333741442146575164439604824258792395266628684836677860641835010113651459279379068009306909389720998717832022595088750525696464268433991405117130159013989649368322858747566733914705892600416146938408032672874063758556937809630500299974848252111895418291641298802161454550946537117275758880270547082870178904742682306124428258132116663635705696749577649244689500867771219668041584174854124356604824108270323390145976962183558264034226876731556549149963905627349496205885420185947587687734100805335925675360397244771475634228932778795336465954923123000083005940452902161395849308414067024287471021316201044754833954874313285080046575906897925421577225911813753600280381206232392175543206123043601997444026395561301697273049204949732241358903281822224163186153341999957625874553546816482643615436237160705504632849416264485304116632734961370973037399288762079249414164892512453157778507155810278751035328676638297060843153662373798967294400822034813447763249475454418728029649843779998810794369987502043737071619638222213712770010554180653456719850294350913911285873980676977050010989755339131157913645015523300776408728903039238448433866813496552268599510820801476621960141786437720925698315612792764346123488573320917819373799869301831173164568795768526767678303979885177662669224212021662147614244638124875081534046707892454185315040354482826544161186688471051187870197121565490927477562271208279079719049601505456491639638292306538030392760828527250691416764304701771087373763171653885239971080332172823427967271303277811876120268117780281058967848233587595875160283302065748220638871744796295768272162131690117804706276490013898341140939324946174879042339478966816785946850473799360644851731741174287394084728815436738209476616175132156568449715839612886699258387346806867039335231053588391070449771856807950802333322522227373045655355156487292782723531066068935401587718783763684255758693834867567749389085121270247994495311741810769265069736227885698997425414696297453343721410960116952773815034358190705148158556818631777735720077902048694139381771527652621926702916854865022819148372802717654301531993021231321293600545703427709139246196827254453986158374733403594537381030620341730923450670768296155243442481196781897799370284072482746065804707269172729595949512604283118455200657565730974495685353428323942655952581225540029169614423142376979281882684294792799608513474458272435282532630168500090303359022041802439672005785484521947686533436268063351730561995865209039217361613550174977014815496163920569786716583342335239737773769922546663383956154799013862360709236487182859156080667425263587000120380189245803771785570087800241199800963731240948588398935351392688797853292265704959393851676861032565790286571571901558937074403124464392106545814193517608966717059459460345486727048325504990538281232896323939207580929471273834228634031210099850241351482093937499460726878985205492616603161497544400257596632751445289605173734003626218898823887272146032691098062191256367300942843826172519438191339470567826539551494070198155441253342406744525122901544869155272356091275938377717296197192487020707812412983337368032689661479462486899600837532679802375350147292372821748584156756866181747769267022614662179420060823982750541967081329118697191015770892124568821927458608075783801062211118896272838371657404085536495987377929449113883102190878235631354032344350650025229682639582410481823391555472194800713746682478712709707761316576514380957353894314434998058235792573430925404399131336453697714425407311798953493212509642444261919876697044431308280917594144622324283201955651534403235713475854150562575542828866282909516805371600493778680599510523168139720218859509307076733800450637312377322410727521532143777289153668266904219689307126053765548495713851489337016977626747666504420633322671106243927059914951632448409567271266228205921863665513998535656046985793465650846938746565622150539404943717016003243188252967695174509836311643422002438352551336340900105729166772318910300932431995245573089845632977632880781756149115649980761008987691379310938873307905164093538542967371125480738761815501801242775057934076290089645691426696244250851689678383706155314545857331472683793514161710197026447566092607896136427781426481285483145351101678051718638870584154093959791499864053260023405376672008773162623967029717976387401522130216336665080349363829879918606948409314437843114284408493138741101213585088037463574433324108593109358897592185792023468957304342597181703266487455019688848983145274970856426031416998223880337756138357677773349732772349435994490770666971462736127765796411183992213052251367098930703035133116847162850620912375387272898949368248608765693792951480477985776137174252348698524083195874140624717768514853497833958649728193363135102203406999381262425022701370168265604995887290540118307482399477039938570422151485896366207799246052125751770672672398020825168025321457842850287439112055132669784531870639995484750307131601349853616932079393279790578647443502481108117803797724369094933511090923534449258180332574088371651692364259440681244522489940918425649186680904326806710542403027220389812766211914714741631316145203705322734259608201916823451177874292923633795831826887814654256944800979924148710111883231694852245236600541969862464018248906561977701155985696127893130795902131914496358344011095315682908313424528625493135292204937731869064316959528945087454687427572536501618943613920728470947110890338181790183886539484354518696031347268387447684925796410252591776060220456963462539627863457466691859725682649122022745076674139174160614688673874700453793116327069556623715011548920751256689071637487362936274529550011063787826264532252326659958940428530074347397486413517307138856685961193929993280417575067342395825475011879102944763306418371674655077565717443454379150084340397862578493908930324470186695561085775550113994883238608973860271330190494165336770753440052333160835861847775860745577074976378429308270233240429377259309470608481146310171642081477506793249124372276896251692523339326866173513320401853185639362602427128264585171900800831355788010163144317071897966059021289622143545841490740108691508254915289127676482577658262528311951920561112955529131674745651161093643344506255833418454016513417139084437880691951028386732397718440372546071911293387214450787406314165521652211932765961469197730600834772670832134141404274127956149209132252311880544257998020417276571626060804483954626265258159077453813102800055311420294976073498360760138987941556524150051542972027178950821588720023440057095245597812158074233271567174886196257811644593226526014678714714192589071581182637085433353612155582298618779630650968393254384206267768134762477382680192115455017539536240543810726312248204366012339755970370988691403908937100219369372033750762109892356839104538672383503010493583051345550438898184716468805364710145142561527953362668585583530468845094665950614635271995300513303936930346747386928129261309305404523317025682705795253254318332698346704094336251808364868502625083975806030679378641268083018625849924377389185925597205841060401206094088240276600738057247809163703971452131007747564386712544909093936957438076947827954251959935415482590946996490036092520238666393851986900363953599321588768572005041240232029787959806387504223488139005654581648094528473563969319622839728992131393015009921881332977250456254451752180667077792633404405667584515897516791856693354720847281848855919122801514158795069231222877210938635615894574285514556157643409644201089797878474635806581506485842520325130158421979116404929749510281288811257871703530692028694891419268647791871134025736813444881400595408222848302825216086508670368018634379187290010044225095469673615215178701068071973743759541682128277651876988795506357413177076363537876813845506598763753164239905855246307999545569903406263287960276061593767838686572495329504089702338062051057561034692970797502157596129315431177893925035794572854023464902871611410821754506942786065795832024048196683179058131672729332200598377657187774094632382003578340891973276142925499562479656667892294884779810821740840744240331656226185709080572590810586691853944611378044478408340359514207899659724868348679421645903349156320202107774007953993358292909408107659319389701555612817203299868850793262940506981102729577135639341450758456309702603979985114315273585683906552266019849610599941727919206180628946105082167155666966598439707453536147646404231879919621581679366736059884725482818854464562774430997094190325945803175441384910199924917212121969856697377573774323418220763222490503059501684380704719112571882838948218623769788498843364974045915997850096580748439433801968064563505378268657384787302416144601336695512759089190657281687414658748071738647618750626199276593484863577187220404661579573087448879590609765545982816796593201498909441165796343033409407696562728827514864024383198289034172105734471581236587382095530917117951712754397348838135941888564723814281100102169312471229780761889591196277607266103453239550622097889508515583284678502650353855453197144457867307501653577595529339167644456340197962919228444677178387971536365360159387698561455762524086503496988157698314248777698267707466867468946020290155505107994698492692864775421830374756833095936458102472918895561426156438027384946482458395382893228624807439237497418456182832434649412044665919879882951454218075207752324594276170872282171870367395984620390166806160680655561540980860923714052357812199307443583953082174792381973041174023956885661693281065521416862352940197404671181518576832629519439166784873625753270363290526349225442412319802239734541302125555527579540241873376786837421719819764115882742941755092090953857458295843802570266930799678189797301552720666056248861644044822086789406039729225867576723975945874495430891035852748747593560263825978490342595797101640039067800444332115784345680073782639898987354004688751764270187911674172479913649771859253926703040703424223149283122861441171698198102140684537699056379500752890765587247478655830205942706110664596345804958953546194810933717854969570226330521030143291747206476531438274767484273233835373172481491210503067249611871827868053659139044360086080618820439004238172287370307844245479534537350261539231600358121074763858868418778442476874654756210881786012548293264116353856525208919742982439567479456077393730037993063831762491407654319162320327903360647344859612494185417930877970230042471131082227119267240770980874867265923665595183109562067015339101481211193587491702854756953747602991915345048616399332850062099537481716308458376373812296951795724856143753624253519342092041017692567382183235067301402122898553128228856708935566864366221491101977683148125229521985450780714696303821744299113282940134902872210657420350607594370313790396999630508033801431860264689947389541279248443878644686657596657810849642171931254163714995207906729079501326611125077558423701527006545123196847882145629784665040949919567797271150786345782152138775308804698805022665388380518050107084468397672030690907461263324305834313351405797269266640543449863807231345230139700035388566256519081289543199945103847927393598437083741661053136833240046765436599289058844037426051684279960466579699097520679876970008381018029201848952990308827896792281351702709981902531636388802140825085238261218833399929714105652009952405197439484669261426797383218741041014336156759911466159729166247454677633473919528902291185733430452414033076923210061587878908743601253830855620088035442699635726743158890083298855555450490042061143222814691280147739755412505038108972667026822691234856204880642918802042971586883850475177910794351761986353683103621256179980136342858299407896262704618976798410607301265559003648249174383902474428347275434887441976947190530966583905002751404158869498961186014137384154427301101305608155615708430571695188441474341119715733281331189385443493511036424993926372285601199962744287327062849797561412994261080595225643933157824617380381520383336063984123665814403930708964521060288401020464227183862243668803827014698570058343149940740679567079398334890496882235254442676107506881499066804996785845430129182526321876322194827246755330656449612285736055354305406026169904164798840822522423008812285615119762160601876730780219103318355326165880275790616324817250488493591788181294256579718107797745866799036521913469076608501284479455416868259128765669708315329068428492213403882521685399265585047711205592193394265342538212534169887385017558059475992575620784923645031821557004294950307376319537943383865607023923700200219996473666197377498710059459229056532861297099601300806476972509560314495863654288747736467498973397566039442066244256161369458508364057449285426753032036545644802787354513997261762499459596443254725318312235658899617284782216792670195112535333338269818480618466909842515129215736204078229882559473264693575425748957774256578922146899311824098944154983746688713151119181739741524784622367790261958763991220326266270253918231545352195732815309003858760320751865698453706260414498632646130912889572694664022189786823802227552741060455533079558130266561669297459541152410025983476679768307061415403439023573718111821462618185950359009828484531950084420374717517173167138383225933117358093631815305029103726011899506046645309867084868914680294968014759605347987789906397088144273761989855161782200349853236068014209008585558360678073917470004344505896044117095043804573106611943774951600714789687996125748370521697871458093900634865643887136840382994224901941497258020442399138100273613417250099885819907024201799903487354468091541228987797074406555112414161377593270403905863837987083263613807823878119539981932095835136471103585504707585819965713586544024555608472398723022379619411019207472936551240580281035184119997663168114170447022329662268946357432557019231886782009607025067746774887685290206457106343336425705523033289172857114435082606868981736197724215102358796867957187684044925814871047267801921858403882133146407264210448810489377272704806537880722697476844692451726035495465097989452181194753715268499149394282615961868139254689764350014114297513120077648699462485063612713762102954599470487016274737581075945493790319285179589868898671176302245214061350904203181706988414899672084392229107877385242013391819562400647554786164831145407809115587293147456018055148365350703526759098761741148475626260641910093957148049359057906616567029266046413683031370099882758356836645483103365263869229505773342958810751594616029855618078126782811740035240575423821427045455600180693511721492810904028336347133960264892823285197310701945304466830261483538127778602776058232751478484569952963179096577586858594659466581581123943034614643855802204698049197120458981524683129216046453329081845758339513983862125606252383216663201375371221154981651590545525816945104045397260708640548949165404442693559487297656813525640520034824816361647571862282846490780367452408163412963796344132290353716473584313738777079371129187894239775042402327171375119531168577517148406186549932033617335104268384608670698418661368676518789102469891667467214188151857320359882449951761791229299246015613944066558512779965734264934414081355925710699686045655674193661986017485652938022519862707889080467983078484955627081945821843971022966421363534767475014030866370856435669309075061019026250235622857618929305097324534632981162341479805968728204746503344989848565548181498338533011908038342305697019424957298286657971415612794653999508906223676573002721446381925962720926972946069572487708608575935146662358850347187271036896944021080975983910300828626936229447809690168706825251815261417470092933728914551646446774523302193547314419781026883222695860442409182157656639125629431116768001621633792068850200802597003790470646010786285836311797038672916567905361202184369832942901792057351625175312368467334586874824403167470867543767184560371734147692970516876705350139263600583477723495310383690611675602452575488426403659551129576148601334071499267229864640267420484151975526800507187417435015792288219348330014731414498787087451720924279370518418373838353780310465004075917092866272250663147252298886886804124138573916514536971172749558231175048724520577741643239970480868705012623572434205573962900982985680567912158144878834800757664668208363393677261721067283841096170517821304723620214084908048140723103133175919591852917022423559058756271514756472246463708211757563784577007714658774076770574562587208628513720286890456115521159641375889335171212623429618954766576249962767919389578114455264479828892657353713897732652475378628861143341247671734384058463440012523829921467047762464647258429986642118600085819478212777321404681677602663688414843203131727403655340313262429348762823563102168303954515968759642015069518782938347587227327642870873184344164973577528350926432609123133795502663552520714099846189869501782885617594851578922854396633109391881476482150740196979901589912271322554443832948018211347030409347676633404361099641222358631144778732727615617921053827270017648134561488805321977998223797497341575373237941506557761396237081902966466434697897491365839185994207285206626370874836608852554139470707291280390362419017491251277727587967299688822261700708703121260585353340941564861476302546231874931395800754076890684635464933134874289211571127897945575975089871727209539682419631760331019720655556912706238200306718255609727600068790126882633231642679088059780485800071131350020734476077846670741873092700201113181806084681989831369550789368704961341264934353350700460004638504691027718263114787450751947076187973137973240659247709739050442327012642921422916026306481705467684480419477994833983980166013402456165433199259948843659344565487574074193841137224415797106005137925498521065450150415614675317397303140727116664106010268653327788314628640107868414372301116974331178796750502351747816235680493077810277936276449233322076484566376968664697112137889695987639152255580762710358718706452526810067250643381755527874995069881970006130366289115992350869656070709608334336400442073722635784255860788402422607706928439538757075780658825902701978452806289731529204980707415179681630779993710075471056724648288056988158431346241177257914490784980499113967814490833200048172002861696066862761052450897210036271499617154698672759665869476395133653725603177774570615777277260545445386982804494496416867584477403433961801308742703472356744295980633587030471777845463751147705911547049146958424722896143439532781496088568888255721076512826393739166411416817917516252697205773964112620112515036315470249580936493672194677260240446795488592673352919024413272458767641437457259904692054609021859401394312269479206424915618668757367762511110242338623733566845714149489237971379072082268517154455335667478510527894840549308565503277700047370441553277606213486118283014539120454520334138925782744096443932470217817588443340477099409677127146643432620698025585347386437173971220503863838181999891160232261741307823263595761793439005598304203848248832284206910729833286608287631947741783715102198345428840196673231538999786538650065797059025797430061962625993069281981545678990550399424504329008308331028769177611313135009898462874562500680120245246219991417325629830632362527583169003244687960512735885231380043911575868107399338937681878894662188450997756761324192992321269408102098068399296399029321526317921851238597188700500618813810140808255298715228814475769785694278711780314176545914752533406882926056494939249648383832250117085204873284567836549798897452427873410108877617793163911199794795484182053893378082820829239575307031035650313455234598560426872232897706242174594379093881594155701696606645729124139716500677752344405984910680040417363253153538697475670778295261809815761873943967879150530672599244102895684998864777836384315673166765103668054179959963711247537664299356609690196474063589491286285580630361720517187568753111447619251898100826671586410301514201029939151778523945066943428799720324994756874367555802993730360557457320158396163030754794423169218419844239050176172216382065051024778027232483557173779096942307492240640931190275371826510118175259469871268637877143166275755389519337060044476390562724965735111223967987839084490328068019382363989068972870846052900772030741610275465977426934431579123297419705491705803825387691655562218321420153168677607298124603762262890513951775709619138822759051995987985967813292134527723249417857046323897941850580448015939413813472634148384149107077877203131059908827283433014210209315709920364160263995509849057375731442381187060536475764168715803524943211868652951427225943571767220791507780445561016145575313880143904810895107920017397649187943560082624502499038847118722034326899529573306446070152837617655384814152800838191549245790716845853814861631801536993661226918818339744896489490950221004386471056051028236469298929562172093005637713940202025810343720232434657984117969433312599554339780939068280714594496980271110113768051966409445369576110846389142443515681387057936656389839735822321439643646170845318333593872835000493078658576306524153857097178320285071053483886769271627172304571243476083444083592356104635783179435089567886391408744627797675667548342709317126020911831657048826592024365685373660852601403742644996001936498565047904710067317499820943036297511503751906122759385383548384144396632231493296122188027913344973404056211244422746085789558227602308273306101201046874793185124721579744886363257881419795144672282015755915988028164627138465944515431963960267279244496999800505358804168905638075416623365110841549869632396378954283445030026294967960049761467638520231958660727843545681321897708706451647626099655509979597106406710853156825437453848872573838688653207720422313543256924546543721364293092780175595052375768345360162580097507298017099405000297030272152648386763941435859418342027140418456901426226010673838146072512022391631613902474177237532334022265484605602837248433332498160889330227610193646812302917402395947676647241122112026732658189860005155511345020960622997316889267390749776635774516852290220840115786340005691311484528730982532872902400172307612390858089922047266826131785935171204071318177898910685505226285330510263218362527023044428724563704303618574956393446711582382277429310442685904398917535841346918039063900117537897627049785950039444889593562043576895544699527933159120184822787937265264055671509797953345373728086844684895525193606952793249798570775885657573193427726315343507966898285798746619582778137971502992918335820116305558773947360582697201912712057798290564236787557145976416864096801347551667162615104684117360397715284134664152072472087979404110444399861853644679574109048706001067856301957371921571735680692518986015216031499082995109008572708308358331509736242828937470264534665274824497012660319017044197800303555986409953316935384771240923673052492119308994793452963693382749384834463488337308928600481496892465595164527375315114913787596753187601256645514794741368132154430913044637771526677407152860782728462617119564082324250968025971957543629668973299378923721752440110161506753146754448841064672204930501346273835062631709340570533312633753976069475898165395970626742605030563076051771950316376725751076732437902223857878311409770659495388980271112646120452165375838305577357813627522786699353917771050139080820711132174651226683511967395849474822832443123936200930726159099928099442362565710981887128785829640133257325016960625553016126173807087286757552050634319293133398447438026920012287771410531837317430208819401807760759308420476214860001694960291311183158697182763986872418590686066131874734184170008440461649955228760424813024407503724412227493292971826037383532344408813997029015844290883903892626094449414173678327588737362534340222976885763468880893009198012668822649168189984024096707350762060994647221097143442748180817025013444257450027582819602816480250100362419394204004584971875506950027590699499767105739696105037567346375265128138238658411464970083806876170947216533697767717681015188992256511416678146046873321613870567145587616032754383521345298408383899000337869591951913705447937357538336485481696534574151463920921184013982579447834208683693190342236400031165310872085281776614045828352465019890168067416259810170778973044855770868707358901866317700910201046608471390977281103620976251846710982405539989624704215553971547157515900449542895322644598710759247077816457875307862514168639867062418869002923252506708605470003329170264248002462272111291625004660768208181336903153214965217304227925067671059220827473965408977336263182516153452054064696305177314560985829217714453149740279762382503192648309189495932909594431139180229322724945318926199312333563791487434265589804443894513460893691261772082735207283114938770038316429317059795983838908422208300509278095142291293803410636907049586760471704644027715219160979570902772394277324880299037459450212014778407221575026965429524405987907328744860011852156925544704378695497170953012176848880673050482082380441138592064435812015084076041631434204599573517351688488234656592114178869126282674278366790618730924945484242776818575520316120834767215723137963437757762172388651521980986536649254870891784158591660593424364117398063202175396132898987828619759783514984634344587473565286652132469522011110441885203659846732046704825659672057321228179940231072144645509681872851031339926793163010744162522693903029810509230298140755874165926330866470323009232123084375990162905216917305123421282862575825226576675537573267546471329851958115301195880935667630941506993659718974936831937932969983603860083416245038462855326514560092362729314511735378209533350979565874051877995557028387225172605035519636234243314113917110472638504016722992350638933960929589567455180242635692390604731464500370526370375161840297743774370855963285860996340825873380169974337525950677377046448127425135175436381613478858094556900974712286385769039810311703877518852654808001700590040486939176009054259314080216494821983056066631572719870668272860179958236488546625763104421531267829325218014444152359085050382254477197129993910774871958001844944570566432487756381582577635410218449211753301351137134690310025678031268104050337832042871001564460267579929358982957467948708217286930360500012170469658604994576267719399014440300008251501232911909599178390782044806004126233785954164221011400792878980867246733542576263080783805870051964383268745777107169286368508979335537193590459990899826410922052861735293193075308038977019566218838184388492628128634696129361386196966074056938767571886185475497731937002406244100578033798843618838890547098868865125572390219277966714248149114510528416245681926398558667957508965700622185480493086848740199674150350496370227918229179566581717042913931884787627331275143653630122288266516160880219181147448479981512378582939900758428290369046921046898985135064614207376082330855659199381341947751968906323350919890403901589838539325188978189397788256627200030289029061443166842021422022555138235085915767653339724277771734943244879827116446889888745440582606288886125112701341191654815617360051797131057565568968186497974091423358739150816480580531932807339579879543513091912451045184236660403774717909383812409610805716295640107972786687843505282887736952036690687619701173170930054174888570059258405412721938968781004359243585773612682724674818766411307848583169484994656564064701113063547133056738649264331742726699727802592644223977834876513819309101853807017967624291770622887664875766765762934982453134469315636545725418653149535040899934307096556495884515316507489011842474859612418714854096251523164683228968393516240402098440504652019873657356525235900290720637912008853987134901475207590959644905997299189543016562306941368279101836328093145764839048856552028514064673931298741470143635416832097218344128601343638195863008642424662876644702889511095204815313000201667685806113652279121975439596877806558633524312938227636116678608207127622515903990975690167140765918735655590012806144211644651683434994159675458310419242173015041373168332150620601105874665548942920689032354869567762532882003994070674158769228671621089606634765599378445223236251367259789609619805644812703346696443013266928794894215709213438455141943142139733883267913394550299220074087614114960748043357987217540471730110246928153055143928130244040786747477003619478200000252458477603875775220107698423051372540076194794160025991295641233804132434338245605925526664016827795323988141753561469642012212407399710741204462538243713179921073371849091541192341164641222843248455904662605122809210826184689185300217074451275556863892457193718581201368719420355583457298218792258935753302164368980466034046629429001972997677391180452124491802802038736055921324625163459734105881038969730142286717234435016078226158054653641397290860905989982126960289357733828096858319656259114412676016868632399673367996658181569225885827257027823285084973079903757287479910852121711859332654770817478924458825361531353733459306885880710214297979019763749834993946850517759773303938066867237371771059510034064028699873143902446724595679258909480820569198513359582658483923820792482311130558012601569637012298833429685639112054526250605397626282327066477178780724098007829910450474163757113959969127970838727651999712768283091271402947253779243716840909950375910149271896428134163912839550440033636629175253739817166117452428530259332740293004953247566918494195310579502732043444660569429792339848682257548481700374647533099357872634785805206662518838736074875469980655891897876970790643798139937831759691163275597659902154519076579978304290188077689063954741510544367882967605990930787484147563704902871088611657858885854564445732974152345534009800596432057621252329958005418923124283821990884443413630467195406463806514047469075505841062820672181813223905932338048346554736442892020052354679186216467632701793560876225746904066281152548525614347446332680546872508572001325917754536583742809352701347276725063818730465033887803007111911578566247406051543367653354558410157339543794938063791511314823768903592904703095311022731188999659269472712032428992925984718751719893866076678050125193537783983507566245254864773642101678116482907366768035039210163303561662654803382964236306154107396095083081063665080443397277376599934493378180090770262135304705960054116224142086510038123757646285196383866574052098799654603921902872218322003703348926857653696922739689822925999631837197334438774735717616319125864099949492296121127801852307585263198107673964374201434067461710981839398886255177385088091366292689659332845759815934847207664230049631663001098811035621162365328223331769401971304849718285650339986068166643590464246185185670734805456464026514034888124100240805934936253065565251078582381788604194032033327685701815052600186786912350002619630245340865788393268494334946551848181493335526032242383066068575230375709526963208013262829629200727607358100107552401793715772545619993738790640061971692594316080429038286841825014082767042987301423280188329816225589845982525017619007474984232559550799110287600190609060636856453637032088675982603541416535587012353016328266828058064460670002917022276177070285577643778788499683831206032770044126940422592638060911972453692241107211966241737866410661416395613857852274863010688632735886858782796334955882800823690825366601933620690066375125141919730856771196855169440195979267878852366000445703156244558344134573329395764455615718709469128098008985438623073509311082674589981640356620259620723340868836011188291265346402762136110053146103642719471977160120264663254044542255112978683073651797497236604975810892418413351273022725282847885488956892108105336493569961680601713752306808831065418482965535185596076553733146558051155105612285371972286589445786670018560443297535024217073962921485477804775619035043976849757058023580915453277410899129831219315962149320437802309317515072211052127659264681234088150728614898266396546106243074492165230281850677385418201500412833951378804526552617481983701920895853043063300880025536521385682723132803741802672931158022311159562905606586024381863868443151267415613328032195746532552307066522640198479958072305835746862871593709682899986248387645721747152491667527933676534108961394814230990357884204080783836252328331410757650354136102430327313302832197645418737292843094130520540867026487478041558935680656362748724446671087623532654680443238511424232604255760026874323683192099568525449046061523408796114265775649586887188318190412392718592626599623605095467372942339810337922184162596468452932038855877747485683920026549088578487934140143268946694422455072060230633599703934624668617582391674735299294219681119489324285345128812775926965789929204810621801661622073871702059250994514745892949044638625290538358555613079880849883183391213653259086948031115190560104592444929161524376920395125626778384701159644855006769822366654891337277284764566806478539588045680960669146878417418647767436882236065920351128638128491443364222311477308827106778274306409444764928459969621337785668355834659210400956118211414130859849296839142945152656763915597364491032807176381172721123714664340621495332261181407281406910323164771364720958794534668267621139395530043788616905145110030585842550233900006805824838329803598549020480810906775576587262185670951158204607845887213826885048125065692825765084307145379485725776508279483643711073255427731650965736005861066114417329220206086113964217339088869825638787292615834992970153585810406908327190940608171525707851114795376281743870335877332757536944265216533091471564378742185545255202391154257791611872205573222685060619593791768447100932719419293955882936165969722551057556363829855896681390481519055930641873335790922807228174292230034137054014438898120667230182223702405995694801551786702722887163653443209066034380069857899516130874982955107890491127018843984168022814938566086511180084794378453041848114437678473153889831644239011532459949179414012215171928989251627189054725422260782222622686110781214635942877540270348693775117913107882436491090272432683929906198508329171027611824940170122539593697641637438361219495356845936001804178280015323257287993345197305411320164953008589961682062002007526044615443367103322840991668435700121852931745112782453948459239743306717875230706237131398608090430699277736942926163604961399779310441525511252151538395356975526519815416097234579458361298564300573818542425306953275462943192556651530467527873975671330143726082083076858742106293383120573996519411600133909725519687877067025204614460685355166290635979695008462117132239438375952389426222281915311842754042423152091351989711184947929416262330810745941835318600233631639231220735046421163453525803999527336807520994697141348106274220443178241420613404479809253726097443407134038213341179467555282607598548604277784425967231422541673353881453158926877608015159407763927764635539424339417571485510530523007947034161062339611075309531007372299145638238310384484834029086904487795440251235512325797766312891699165276388968528003514146105424038179183244360064353174529969420647961602448812959622503877909034746681445052081890495796885934171049011572740820712465423182930438479902621697889204264910368303810476744353881833409598502322285537192933572278099842728533762884202528823215173099276585951261697087838879700349689125054552426092296160872918795995002544331168877719736361289255434918129429101956506727210190129831042119626966678407165339588254623743519373086914832550208702059068042608365463678484322207409875624713780120238826790608563005409427459117890438788813905147275354327828072881431019591194012992632477700401940256509434011557862449584213246674189924336893620506576401788058216288731190694272860723144848004103025347797771897612674187076926218608617187122215467027187058973577168502080218629813872249966123922682039503909866185751260704386355048634376248693899447103577899816673978613753884142483275085523553043145719081316469302853516173625592516360571893209206928062187889459752214073511368824584100303516862883279778966287823194058988803598391130022860896884993167487258373744673109252019784514809287031743431464002320105686568569502497392630387267114979495438823533177072221105180994031482823108728377211131962968534526439410879860353308593233925804953040592491126812644671097369316728792981200864459474484420262227878908287437570121380327062761186376027164332907188358491477344071149825790967534320860029950797515345740747364105846371881589589043616208048303423385473237997753334121529238591940449158411630155551077276683388869663606130748036521332331052407589903423716976140326159276125053051469255073412425157114665178052239168965000363163717176488348535276212096438726035348437227947174930871475334032723379852669787510704368121835952739940982535383524397745945640122716014262840275584880788374201720753373255030778786896841440278649516266129191313446827382576601721899985067055123062519636066042814401762944584296836870125040191814520901342926003694148483603513676870335929676677130109837242691789282024576878572116984940442217391043220215067996111474943693944887190265012216876861331016484580928025798708848952125221887630184092682168242420017950731521791528140775751225739053121226467960131787121342726362114748522991966917323355409053249473823952881674548666058493701892202225215812591775828124819035007196547304525387483038852186958221595936414380410952921524671024328023842112768296874033349648469834120160085825732209777899364788800455950947186520183912870255296576368089037312640414384218122797697809957686278756111403306697951646895168373764324080428775328515206728916789897010868195107455765180928914341892410744802698517215029883311779709003280841062302687555111928948021461037085350568685267457375480178569365017257631380888241353691352145305592502759219771179436296306935345620007621275887687864580932175537840227415268655456255112508058361211786450070673611306509579547790990409217224431385412180238675385623290001186270847689570494785697903582110151448064295790940258588767338325738349845750262716517605744738880166534604274855818783925494198166196115255889147109165086672497013535432298674426109812668514438804584591794751824067073026984431939691888903983616588089117996354774740345245422557257904969519813687693943100021063531742724477708739453687785371040942686338676974946041734641500650024428513383328213929512172039298361990242872666986042594343093264394364551005712848238517882443849431712565267792195008198785598885189305462868943004820445551100579753033440067022672342548359956361692881925499895072912439543258725927849932545750063611454500839295555080936441906880149952651879246395314613051023673112076816593956623322647684591486306174153152998738310543298869732906604521955902830988360263753057161558772079127639640473279108152395683498142128813041621948813885233296724166024149241737028208829081350874686446240816809788620854006646866623983583049710958255553992164852261594106081760215791933575970492732540576677745236137272271332957471281787910578426379386716411290406940359301422654247558716332258904319942614811053028754757664406056365791934564959466696466350528153144889662111295517007589864910430862542924352736733622324770723700479017594462749572371018299461598036541211030785681385238807662238713698917190488865619475788352824139024797766438858619321120679783790020077352201706723512533973148757943471520344597602089759820831006389580067192626147882732159772636884644916371780349128452487452467697262793621823421650909331797087408127257053384178152602666192372045882894729330301443656648332478330296920184252497816099745877885996533519329157354544632804236664851085214523496898284276608239467126594316346423871905555343717985408873400401520049090607131266958277258420840172043978784652502452410721804425589842945863114585103943420318347731897755555464818420097606755030637424467790838193869273337633636427868388958496700676988030056093484371886532666532579648969104663337199390704593199543723164286856711609704252084400815051142298206497161236226988714697286082434720652142691035473992863933629743063253441404699725237860553333173841444442664991834641070529103874882232106808001682636733879907636883840143002690379961345826667929213486640467232495364986489158117154736581764899970342101237448132594543821797599723635579883215342502519173029081137784801371695763181404603188390901503261782290521135667876261696991123156919554110431149759342358389820243578576522082502025730671247603149776365730105671458260862605983268304425082890619323397850982520628587358827424314989642137959779381723695785834446948315243725006503083118900052001090101730263769383306767161556818315426029491070919899777932127947068720110063805229778568890265292724749969584253811825446507379092915784792774321991405836200361903753864273801934656075509649016961274668211856724710326376133668900730474578220927588267795551704953112575836875286829810362661960369606638484184648375669571089104185698845635304775421412391291121758415279297579812765430362938006637283080272024028707669897604713720390598584546242795583251133319778251382408000918189428734748555899437335214237294515279862891316972126350044827167755102719598372742788586719254200922653519658432766921536643484016790578754219670442091963295806719303780945309081950495590728426919864385762399759099662917892853151790667345371153735687834667406420829285518742326638572315154624012690295280595342149675878767647099639846700638424442753427797344950063199479116034682588157952973132019542161879951237933651536834948166762868224230568348036837390797722779547590004938828996474584396941298259705486979764027103566322157043272761277415088974118860487252153226418897200391968593568606009188081644313972263723694873964762504929148903099380051182748686307949671377847889661729138854126051863493329796160773394129321160437579416106637725882875756926616582975180121550031017285527737155287281644303686561859787911047390705714457328732823243246668886399213556700694563317188592639649392451065338822684021818591711734111698905803533071197859209375712037660032707331543927840639484403610862025277335298839702243048454596330226004351868751882540759526518575030241832636885790022856684151818180587020145230253606117484949261783710342059670677700531201891339996696672213169336015432354516166177348771082893996395572252341458608519354217425988268452575024277159003125747941762124885775836466390594501119727335207633671505089077388121556165576011225345330017182470945965914510604364739488537253089375036603922018462039767254695861703557622649790916824858872619195270315886361284485668793538544114300571477118478678096892233025957538357105196424700302607143459938483971533013800903532899599083514778319609857202240438994266898493015666513770821083041168207456872674871840978517404250480811403578098830404059470144472834114866109420649724012594308201288326509281668354037634004539515194046807697345422424559179687659302282313266233775249304062978904946492057791275644258122600707739310894647234783433630411329554405924515084864085390529599617556230055557597793221853131897662388317673495371021273611985055963549398313538939692872562431919991250294349520182468680568871978120710056460855722035687721725895316721705511561360145720325221004614157743915680363994965948273572123207924096599138983464469197229929108971767803176120072879316861426204210602793211675634698516495158793675022486811608082261291269576464548673063490635473520586020236698036026821364157285909979023372136266225453581160805423248069733381320612099953717622932153101538436497340863525875844587903030262758150560708578877994670700361724122222615886315110958080994756420431704754737323510951695652391675336868167694264436425440133068697216447713377251132363316039846173506962286840462974925782338577920344878330372483535975865272974276490678008239331601958801963525303864310743780191635237218216408000898759234590843915517945695615045803430075129226168412927861225042017450974202254507104957463437628942000966588151359537170084027129781326464469185369469417765810797215639128870282273714326982663114164344124189251511698921628137857174496624897662286024979092014859099328366286195486699192545884490974079165914291708332348486917500442566371171023346365391537729899289133321456687914463766254723977191837023958862928862544821207912706886301842115970877404934462080400474588117982153447490594021950720547385162309538820979336197192165052896478328675904154985925631250952009658508932209776926335305616929990921098886405930553017853424363164765274834490484569007026644355351888334002065733907338498462596083731729814638332957196157765654659029453125478101681208368938463446829336462831170699702568756295514314129729082037358211416310036866913793913424063344285485323125026964163155310301715561377929442359158270080585199141859554858193903134024057956919409802043198867002555113090611753760228743621434199747617812499942935289231263847532938854514953294983501243850071700292613791488948846421506679266806086978947904771590089149452238504845299513370462450099409996525484410645588513632570052255243477556104173267246709394279616354477869976586377593763678615771320494221008964094681265972567863630509944832417986523452891669689543194042456319396917698853074518152467669852663863687368524801132107996934215918853875932071940556004680888088686571820492240927799652304816651445130393145776387889019061629446918913002433312208029813639621180014711264781391345354847670844591932504236708880466967140256188601503760156461818533785256521610860892738625994018027720667299680194238616548189360655178191086492175083196553287590546881904905871735363449813567692937729652517471823046921404308921430438056327967925599156956589915439910714477297692631274765940056563450764787965439000576035014648637823236050313466287183239567953014094293951820269115256773529866661665560241885421933738350917195238918021727247086782860309815367755552986684412746662648025409170562750943829986882499828064179248242260458729330769621675165817658216815393257197558976242678197562499634828654528776714143394413154389215402203874073437509731867104764335512353080874805061737828675142902960897659521603808575310580203680350143519359681529845430602762560546383049934501951251067169890082257904265142309848071132477213977369834031763034844944763066271753816461724248736963421147977798089358177084128049675647947199386111244740640272780211609445600799992973673490846252293609988481621452933563041148257420727485073492907183009557386407307981699611187553950190000031265105374552109083958482887107161954322030659030376598037841203407406975797012593104873504718910420500448737099947063460861025864592363237936921509481461664074531083025138589771301938147746222707631360407167680387329065090583232386522857824402092634610574760146149020069032174616389178257218875971775966637837201275947386825685021391802918192527369142638392770341074048442783709290634195358569545738048195097445022075747050944155444665309822784406563762661348745551145351126739623950264840331095807036094217227294706454567010316930889347846870464514206136380906565165968196067595396563996332790947721534561891906123126309599001997838448880157392178037365200809757692417975018762152965244262700055905125776549641898353239699860201935243777133982670671295390065106359061451421784286065467038822662700530001000838121306411888824986642356009923326221374444960141481111094765965265368124933725295077915175224139226945737835981681234137907228087834032219954829635925918101517523807705775490612463886020377592563470517387085125772309427504129976219886007030734108034226791338695118826622022820958906459614796723182287100136675074100422417833762733250227106888523147497974194925743519689911617642462507430323465898601701603778937229725649878864583305099134404978563181819533911843187572697910493150042046424991236953357732101766217084778702791206899255653597554337316388994208447055325059280759070666287201312172508186160587195905352510414840450996024724558257146212197855382693193655231411237336981941607921883384178832806133046863566515250420787831445858766710630675721526972823385032285799471197607923930444945949964368328911222684707770454981079070079509476983529542573864275867201841853471933787727036839871219963763748614369515582932804960171524237417956101267829810568101869168392462913621992792231781337100981256051695263173218767122310331448246308142501558435838798234137225012503378468930680284915214328151005400326392546593077964613421973113045924290282353730657617966277685019212372437955525920095162740319110369923244521513582672405086514508577132879434227755367140830480689146704883471777012473472429972068949426959435295969916775257758915700376317904152851655934499156419508032861545641909236686687593704926482184754173667268190300386428084095398465633771071005964501662217299843601883943981084289967971219351310488314695861825532692830558651378761508718679445710532005920656081247226333459669296636919121730436952594850774224724620534502056236041309714016635211764595934958514903385791940038616183801091717139091376868581790559445592028635283244607067536921557688545105539715212384230120582768228167821822017392601296882367456720990719563601695697465995504249948512228719022790382961589370301368281617085529775397754852205092537559997639991534289981540320389681034620627443052770951322756342469518202216973156811866612818976595553655766517181581852000009464694634106337273018689365629331595961552279417073147221219908353302485849708080866298086885796723452789121501592447142132800940553891383109822911081695971573918475838012515489054845147672799554984211746703034411924155425909672030616672866231978111136689796037647505120462136387264535891550526995383204778986045091923930298144455047139357098737151416738636378709929456263526946585921917260523352433550165592105938596046821199673456793941786051637967453479263363649797908907318974085776458614909426358943752385801883516562175539849163822793833769692252931959035618679873566997359494093936652965433866380308661412057336369545232709699808537263175888210051768471596258812874267094100022482492920696255908736146435676310134043377238531670401164711141328407262739843884449974564951663715898121725459789143277354891472802971094041762283711271095155462777035480104705039915848755964847128377843475851645272172838746147308362214463855117281403280182709937376434157140608889811991560006033393523347377731889539228419392955977167958900613850282206092379472205142824565695667497028690250270201124820366338033141710260723456186205648852786911035407322719538992350595689607524326532555168407446481297113005377975200286213388382171863329551764436277619791906375326278523983824013345012546946148277110064404162891228439203948468670266014634711861157932957927200758337679050453999840639003726400443921564616284675998033378119451201352440571345041704200928352562662420463629950473809364730079062464507129632033327900985021978768843142157373176811108290472103357083461826116386153377120325287608988732737236145892219614711522711236749636677259356470489049995899822492341597043513892427226575299864935198947698213195441991616354888072595405971784114950837606905030889212217663746955726145375221267004496336373316952141061512051060734726034906775316591878577492540190996113624030611789498511946192342422539288155360578672239501252019111875894569269043730204080254076221606420987853339971725479049872155002686941297175812825375923618154806330698175912949623886188922646266645268724842567217116050554683186373838310047573076680956860888345628849769469562638156238457339971132396021786207038980911728297472351772632544638575660135740975999132683887482820229022673723897739616365018479978929657325781364840849350185922823876481212020493906561362185443257592017506702254247589785669849540639303440072798770848640334460921184404069254002825990950261973759089531700814642640225891476270045309330648624101959430945915122917931009789711502292708129588964821899908570547307213409687809306044440433292889987198765996630842510283804684659711143508999484266749085624641245169789841124835077936507983060622448974586242945887279749180104996142787901793248497084168546329142586939793176461478122033671856299511710083189574769133780884431153321774379396186089331651263345162271863563716165104913994793051693967464261486378414033599687570237718500835315262340420283465810147162701398204397265201348161878740169740077303346282494239452526659225192463122431990921036170252180459570704119156017604863043359479262545920581704808877068472881142406515962983948734561173290571637628479174875766385693516859773163319669151297718439741635463329199005328088687406950289430786812226687522980325722921043753996126638367937828851934661667411933482843473014207847668598897853875326381738034756652685282646426584162688736561592260729737903162434790309098318247253134519204634849924426631732621780192759202811134127808840892445629903264286516402144934770421203727305788944592460955412189751959027015077472639862916651365535421633574351698348966686212423196344054255461704859507176779436752875512307817073178325780394569400013290908432131279571289008052208039858144634648794578637414072644017920893475483615588995113705427519916242794059594821472586250445597385743186489406861453326527331448243167755778877175072287592025261114387607457035694317748612970625990604692081193492544859158682804489170754757454409682662757979474541248552958200501597440494224660943548624405547002654355625867555642493453198815630784325996447978097524721750948108264492952074900917628059415922949334336199211473883078128485585928132187110799952618579958632304708972961383652052437030667057877921675972500816042032678542135880956365690979932912340699487911839130091450746553913396875070160734868753831580162112495671042244231350782467833963834391919210496025229314639399790591548489196860432816372212265982358933505481242419396373259617118886825685251070948054013473608532476645440121576664469420727649837976662487540849980995432936395327789643968762971580527520238860766984100812291267796519874515816112933372110969942072882174596648535481458583202236265183796936280244187895778047579964101838107705108688280441275693160654074286305416611131691556526450243111759579118052488722101440057857050206515188728559040404246276439818588644474794715887951067823000251649737937059361585164485443210695088195346069325362716911337136359584477642195828571031282473981829857090013485523747036690262051209494039546947532888061170115042257079469532417222629617314106974513744715280736239881830387941309022360379915494663011664617423164102986739051817045669931013987738696658756924520629264484562096337779525337550897225460633404232609245522759962841088364317002865994897510024145514527800048593308078680648524675463017543422423014689807986511218465799387983097795507317067337571919309781040935000563607698107123545489984685423280717929274836677411047861259608093515143150985186609133276398459551527064416347045497823778988500069214123037858438609167193784239135047009360014608450579550007866475676454152989475963058747772306484493153332498261548381332365721910528618886103288440149168520174224363263415994626498313986396416432578206567801764740996655531683019077360060332605970313780903746988950747966137441271177558082648133549616203422498271370075815329056931002121090872964835135501716740006254839690071890699764011988700494352376675306595107155207827869134999484113650576682804734564476152951997228501225470145475146413720288214328748682259358262613510048993052582097294166196130911857294951097303395002900066459198220357656313395853405843977570673532589651482698459611483697457731508054735983111326192272614293093693757368113020968864408955521218786307376787706172696423461634247511009837897367192333437960634482166199580588735244036866509798277260673777184450201570513197818642471028733370619070911913053331206217648123996927249539041900712042819830004234762796040041379643486686512482866182944285431464124518857917221435970145566907896018980028123747517552408991135821079525329849215375740937171966485037718582814691731317843593799037704751268071861504815739970696450992517961040250570628602241334415282275323809622617495923255927941580829197632246284139212148816756687747618597445727622120941681468162758025561922537049241617647374403605888557477101743355501620172035239114617453085403771044852690074376852931512745517811105504589566835407170088106035584712414394461439221242720271765146854156045550017470341187878657774332258769399114265079793931091953229290828224588073330466393890080091597281354298143797537076261985542790863858155856655341855387708771473648407733440242061505299708149279365213057913588634324246488010920751071211472279365626542738955800534544747682419411072042195009425813922127506123209468431648507146692903959289085487329434742891907186486409659270528492588040559869882617984536462286326243149269545205650760123369735236228315246337152028388342128733990993908228452253031351813244963299431609125906408869133671728830231740817073913651966731661128680002139148245939193024951038329048942585724655199345545024107835105832318982452712557148411310154302366878220845415352275172208817459910160285550424982010512515280925129092591513007217394888325505788325149982661093873210352437508824682301824893763828152866997847045399247304294237453304987549117668840513155874992413714984257261687408977127306462577544017559952769319440942508795653661490009373827536626710612354352604896340742853717993960842316548339429740970272007150995261377831111959843243287519440028033629226791589056438936199700037628362531405525284472034089519358255142998752639495228065806728240175108657857114707136465642991116670711707273682554831970231604495992399951094567596630589810546294674876301157112561343105274545876203641669618908148532203594391762358995323841635729788476197612858197019012565102722922513780902463889212666272160062018573626561140550737998026363075268198067927034481239616760783996196183758850758596848163044502827091967090442753336827429226169696925447740647317748920315063127253326781565290797537165242337648922426230167345175984877749735875320305291660099855669670949684387087172188376604316288607207416456391953538708467613273503394200907473919945957561702522076071665167332943384933679649627577205339429565238328146525374635638165981248415633235351609125840961787285894071224312899134070917573111664105110024806544863170407719865440002486573329393310566310675834726644781451930518847465263761460362091511862239197808533964153203551636133575519250295927493047651362207146127792307714344184640166547707794248643336710872109295283837578001354557208562343665926738872272077599321486402125013134225892520076064059698178393858377091424033814668913522588186621359240099129382170176274971927879426521482073602621869878137315507478479637144617180119239922698598746621958976435076317347638977449978689356588620472516042213496093284686628946741227311114088231348244313581353078200701566426597590834093160460606265262221824104935617255049626722603320152025289894697154138019931196528954418280273125322449977419657693585836121245963343550748202062952201211367929349111298962660120658929336677326823908085717811636139905620200870172793106548077078329813603662402946734044645372790272508674831069292587375854556933558400490767956339890374024114852650066105190648395291456846382772287481715708882439442145455019142289690560088502154114969360807196909899675594965653315053222576498685942528414322629638034422119690676494060356633602200893846337033064511794629341638933443253793510750226536883666119892247722127675048790955070028934500916081559279623901997724749003508211871682484294886462783865506968277109863413481012475712914568694047475870759448691348376674655464521032837472483531936323241538280318301527518537040244688283695861061154845610524106519527161776193881535698606826198767903251137660754231686284389301508786411354429297158594293064452645802072599400887346164832287205987046867366701474881117745881163649097989985116703906754689769030361603149280889145298838117446130201222159036065808705396609078580021662343465769359239264041118135713705914641548352236312199765630698522319766122426861934501271149285140978995997703974996501390717317288757958035829829261584448188819493174600879484236709965329960099133666725862408081977748580703287414334860551474087922712451712720928517568443131896125009976399918861442899169289810047888440162344561720839267120346767511591520752005427253828388236592469981794376445488515684366681560002749945163201651384361033227766851764073351144656188894676168781825311904325828724754391340022057965480873880179157829639068257862314413609926596157578466252686589749033950788669170583343645249777292638201214326560812605739460677817744696374009992832935858603547252838254341449435054521488411725833040843929514063159089311433193925421589689347634783570130969130187152562009435222732754346733979730336276683664232834930939399170758898607723892110216142667704837218811538093275844087775235696825336859895146760702691869321735894654306819175924725579496128796609347296819116453606706987369453267164066824347461914557307771026700863527536917433557508304462583382741119351563558655488285387878943692810953168777314574003481505762636205420453320533773355539806048092158844849887073856364064697105342286424434663375319672962766683490880641409793096490971512230487582217187990287624362277923287689720086193368819440173571866447772378484319452680552599574105867782543337034932216073175970797216940525601020655634698160812713852288566149860691115478696441247207634178683461165942258283514303829564415060130661561501885288478391160006489733073076535316107523231281514609152278933460129151729038091117133603800660488019514193914330279471215228480074802645905934455008922906992704013005837544989245291436102778742159826852721315260734019677221676465269409195112209825526506130979468682488402518218076803621577390195956287149881902733639310260603820267646997118345802697521939030363420228737822662074311246641632276351532522155761841069843840116513446600833726971644828402226741339621743869711111238358943220014568568051581837918259179006460074523589832308917224390983060372164985423416148837572233195454834636501267747745735636696618100060231579850138396813053509991323529744097002446166469440102688471751078276755144029215797664080064520556321759722459867623034661499169974783428509927690054441429685013924964454039170641275358015157199651847784640681741241333869016109773080939632482556879854569673008828053284884135957225210498712671476918937354387840528152434567055820615481508876482312594534002613293002576205989382743178265462053876332034456934414205546180034699405674913746935128410852646957307585996069658883981667848908083453269162498507544061078406776193867913842281182200070825702282164256829436072228594348212279866872243042070221292748216846377205565658922207747552187922038852914342482644021268851664582295594444726643183087074965562429573711126779987756478734003052403756605069203825827791723580554243679619300225577489570791396626722973657358438786414821305015308313249791810192901573673945318340039784825705885221286112601098380598215676772146317237677074951325809709881859668613347032422207385918014707993351653362566389764915635600484133462307773124130515354149960085339817441346864963152397174977659574602271062444480168599609397369925952247042786192517715984609130019662864781459433706518657510059554368684734094511642577896830291590934911280345798436582665279355531214483410324659273917073395670024796980492622329426514313489739462836333042326112261093798904017391267047803158146201727055924053269042498001139955415319255536991767544868049023614443833975819051510397288853032244160995114582598973718788783638044922877929828824017065705106376475996733508255481574390309476956493369768257337267898544816612424145335872132315982541749136983540202892654159410646127158818777691241609223463808841174457897491540455649507060531727689475381534413425832310140482595414490600046591736107619557901722541051226057160697671161125536820961413496520131822272014806785194879066932811020193797640445082598857726501934426749078837569582874199585988046981867314710528971444805954740349653429203053335956856589210936990500971611136449731902428059540501106773388696792130086103318252806923080019668279505194321674723524827350080561909662100122048623894752903991759914157913590097341012418214643419697781091780845581240259605194158308202533365303066248208898868226065843970688199722468931196274644288598565484633096786831210140489484213809353012157400271669323561589533644058960745722810384415512081077806541267729776281441048714392095244730434436319847452487305948067287691730553123152683375077199588818859219770514300196243718054782089641563267944657053076810278360631665832277258611262835093734551314807583696350664880603013604395266298376738442359972953370845061536941265815151037858257465859160199137042020121993414104132369467021573437777817494331476156651825435630012946807202769938801955688217915552373356058670802417030331622133291897683544156249944561406157534296080353147199291446884779402118731400668968449321968588386106030065095657158591308358556542343219428322535888782334919090919403240749333870456977786428118337760299993580366784107447404981459166121678343313871807265476942627587904850852659919853959876337559185003263611637508804487495728050972278130979636976083775165242496951178387128912271114544432619712868527043938513625688867460761023483979120291475390120440337773864000793390006876247817693203832302960379986471872355895587406844422713012207125607908426148121063172677678133192269994113758703874520994951657140292391537084283908522660961963994824049533154089459068300313275198461131228900858292264912876936316437200811826272704340421013066632007918738046340376946153348592457547016966130562676229543193462811432001921465277040901365937246509772755057623534815554035789123004887654271771806126198636511322912679943407343505930243186970150664296285043272613553592552983997473600956865224430602623567792862465389881140113959938240818908719890457622315040467186090312384996520952913483133967924162897518608174131738969940422287037230331420764981092573477505374541163755701823343232087577497910152140394297955952657680062854729946183196379061282144401132623257283024750998497279167318389437582933507615201007539900184363931835468599414292925959493583613510405021337340075967179788255496334201118169923053669693799342534670006649655074481044383721634030404496089647803170714618953538902489632374725450385412178637579924178612020062189196736817299120856756338957834403090819352097761123514247215724808912802335500353207510461100318957325285504231804162622043287430326569416445270256924177231374855704693662620634954939874318617978595176880118041143252176956600409138563610133587072539982509350585061171916172036403873305848705701925924592059995124539037499766722981027372969630373478399887724267503535442174250719898180776962839459477759439751896463403749291044231954080338106829491849681776758377019943886941447029264863667094332282704739151722978902736189972741213316220596901852660958067843874040370899795757005933580622233229844864062959719455188515752392082522517715839575108906249614103150272543476904218426293863245295334397056656468842511640148759660367414387435900195562938736692565423815540423661037380955612574755571468385566554239576172306050600858945705989652477984038857306059584788083845096843740276905098329432933629052783253279247456990239533040484764059161485987334865526708808972388858832973933507075274938324012881339262730104108479019475505993467826894377061553453579105918658785900039592234623455270244144983891555918541479502520824248292939814185438380646791528135438523439927723295334857765857663264085699947819406672812963802268305180076063044498777480090993106453699164637469942317394839217529808146957618396098642840747565395291399019174780159079066141057357198028185598206145200973125711236447896860582987574170569024622837795678440621893343872726163599248744635160649815424418290300093416351344409490192922645576411134429739212822961940280441448542273631678214933268097411399049838952478580459821193546399638416605907156732397025207661973557248009975228222082067745870650313637999852742970673383414630723258024263968180294223706277116202141132498686566349307219469095438085795948944340877414833768760103453642543746171636024463074271564905600101130823443095529620753601778999633500230567849891556712422891681856248322869957235079294054646146099452095955337260437865118683027971045269077246550936017127832016528553094547747888953370033452902377613262435891638037537962705989280966890043139770627825685120790549427279007836101491639507497334259931729299510535698469264800053539045458418618813790293854860133485235943931122990812667807014758744271767591637518228952265598962565559280539559172727132232192468656645331461288152111144850376065848741100616736753700935078751206056456164961125806775328469860449535051031123586394660073808795143358622707272384480634533045925567477925045656282812936256308964749473331545132339349183128305849488897996422958702514344065927201867297282222015020916668181088590411990191298486671268996513907375447022823131745773742504508826998073389087088073623512381929854928005297840918980834167043698826436905765377879909149830208169817902432001368049066632631239580484390762823685804097604495009928186670468938945189508435114714407301272221238287916518266211276153092640798658428984775901527790831906361979835650352645534707338453302857310028537015158205198946673112277079172064014428952351091221859057768696964554106281208932066454947774926212309361216413693902143165395560781727156866360936265360436589725054856604287541965324318229989892459713375413075264316114612013669875692892948236142727900697820101383847563954755297637614650384251842440633473789776718255589104492696537800785540023877092359519727195862607572630905134472108872204144148840005621718295995187247341397091674996074457041799197390087621488145118998603928240999504567917851726208061642186121692905730958191370546812714723540591454988409754712250800004964626866576237773477094631817577967960848642589864291648721316634134157550169968838734418623663886749625362303684423678046081884523563447511322787190775323559443030962335779488864986463448739869808822584741677031547298742448295904469065907008950261738813982847365043478376716236518016343119424113711590692822507091884268462197356904312941348054792712259909332857468502686205136250794311841893404907531897150835425915907559920539430036271922675625143978408663382051584777480491795110102289325279381903399667074675118619059532607163503432288835253482502414564116427271615557216629092210925729412667345608990351031553593669372403786026857194087000620137413257301800262269430320840357275826608927293880992543417547808101582216168608599036915049501615052353244482610224081889356395942523028485493965719456193841122929985153921893940111050952802389537934617740752081082529716934730153165407048223868112536719361199866552552250953913637254638684800245378448671061646917825631347516112707097633882818057344008108428840694463441216989585488683269706529265077954560185393462531202367808172251834796043338598168738621898755344207615269920609955360579648328702606766104682746418699226197214798704111493573057352884439234325674482711530388873432242088457020170237627596460360941948754306288468445467967574848901404684172139242378030278846187881785918364012166429892397489802247019948670579463540341646353221081011854250493958129060885091265899673741190921517934870624269760077333338834949700597235065543273275397937502703370781060258045307968793189912291457962249039145973395762726141535640178413082554305040522489939891283936233456353381106503037985504670569947032414774629589737033828410314216461481693969348469408422108284951905833292013168963268046593489183188984535810528424372004929977953009093132715735313310067406958300479759134365924571407122248516324197597445207884638620498057742505079317837617817972118786390014664120845717149301722960363079502527387617829935203912099376702362284203036779897539394974778863991607430689471352673967011932348807686854236378776541455560665080911283319132406856542854363419294164134200109034069078846213694108760057618142453703351121467638781983860471793157294891667295114322573076645219510755313918124115602193778743088714034104749174617702434141911742504297469155679626007265371865494656927248908424931702235711816494214538346594833887717651351713661908417343846922219219016644245122890024737680628731976109509913424028683492752732068214885408344946592598335946332131281002329919431925982175956120364192888410325704850042840335341496090263797779999775263467182029199143255102643903156150474864807747912429339662564446842569244271950948419911190007211355176410024652226945990730860923524810814919103287010696795670836664438635252229555454775940611947732496581173483923393722270997255473277395749762042701311647943599394842306971025501639670741797095696942875722409715438670286842713613753392263365000562116064769692518777198529828776161712056835731631293883517999624530903656752574047655891557488258853353920557722800426933920989227314973748128896918407419713240324246656817312549298455081548556086029407257814674439634133959332381703542271866982159689746664587165681975752059120453780657554248095057573999319568191311245004701096033467122929705254648009653124462065854580088731781032228249064239054078107073106651115424975102438129802469437039995657466396885809191208076463871264546278903177478664243777678517133969126591527486417846643311677570132590756412936021355382066667157422414654828509720630577460468463376559146444763398241707928155519477332051702090274992564408446352882448174221426943547647961584192196489902758107011480970830572436015981721120285933187253533176954418170327194384368935234994999449977476416230597649584238447881695133914466349526943490504314385112388927828557749462967186806723901103084594588299516453086332441521229640644422941693917514693206738897617586891209704050475340193300083026989210983472766110334023190203285326108233760628605703309005255175616584160424798061749287896621708593418495458322622164015089444484401629472224244425833982758670232103857903007970573784651727663965773640148000053130659170242888192581645578179779622700917513566216291875040737403259639721118565407099320033431442036232600328108608498233419041010470813974953341732302255099071372516522868169998193102249694302498598178369416011190765290116652591701189474464372563481898160406946705667019382973263368088797632343170865105740734315197873921319295670046560548426616229367347278896568673068059629051906937148020874462585682973348747813227371436111439409478196439970665660477313347231412406475151399166372530971638532432274783886707019754870356232453115254604568998178666718554138671289175614358702811217257626504708746763797726220970183738772628596654351095320404116735186784001463660989785760464749500692977797542599953941219754166143147980059908755551372271623619987107204296484475161617965004548299778751119840554145809328308066957204175729525391722532225076068634326241147071026032301021499145598883344064763960772597072902286704839472640113991941226447678168386321247611262427043402536023735855834545285216678249891425886779961588042211135728518304633941670438357136493766747030557140831265048589940463846598710110965771983459927859737141402975395990999564194613920556553756453381624266233308738577776768240381428967339000598966692686386148509589930115317544516291920795477532215799334979667643928896242057433635954855828692126172803966372796209934059394019584182797921228751588191063777097273323537263512125074338162711396945930703176730665710076558452231116229817660810897214488812833933185534668439924052110834896291416023819382642884720295013314667411730143070241218054356182489225286242317690297268218452816116481622738581946337023748042964134394673986302932620648464923704423080739281677903878797022782211496526934985568669341699007775610650380046006987910170643909879824482380768194987340479582195339207889642612878925902609075705355478467009486047974976427054496384100399412530276558914968543646034675793216792331509354300156003562043907065490349059103551465524160934771724215682370883422228505271215131362544693231355662153731653153486411066723063745919142078195729245066194674260590285820113990321973364153039473842427784565921124552025512823762383845466464721891486873131057155256558322519663339325420605046858275690183228784214196929239235591571555191974257661633719418753048753389318756916946329251243208536173117818830607968731454864474850248613516912740264311464444943053448715340630523299232827184609620141949956681461737874320181291564762220878685791811947450156193187124623842982531866429789062972533778927091946123091618487548904376249751477907888484001336680120620423678266966727455440053516566246568955785009993945621709932334871873207034192434762102201781648277731664333711670421623353867812516495061642575056828882128492929928530410516740204786384550346670135620899186039175309193893144298852914103403995162425460792529223822108612123869645611639308262292348481721846785885652873986898206231733260990281919383731808559847562857114083361408071310633344352750131174611606943260014631710119110031557376575644416482838782414455814657060399376564914255797492507338073426343306586472243152340314449656817315940275373232205561200891229023409704811738387393590844866569428549994871709582867389301316534420888229726694739968915843129528253848615204687531732393948285724297966842540598644360882423887937306671154676446671751849823591301398179621319457417835258009900372514617288221583594405185600632889499859646036864489152036375533998879571112853130845651672764275411012129512715677794891542202714535829503511927579900197478528382649468175077060660324994973950525263716831024751897908202876794918211522045255146388331489148170619870639716262634398184921163264435971350995343494953937888433468286491741343019023367779980475523653567942968645926825945291616806193015844603018028421697160883145716895817446604990225896567266829348820831887620878462169686066889987064932276973424251320815677181207068021575431115691337825520172622661766771320264180986872372841486748989978692128072407420958118916821014638962576574117363614401514699569606737779405657772098964021133634092446253677967788391437974865706691975584354680133926956409179876450038486603961923119130520430792574250176256306794317730830606153610603805391387297546917207916061136262545693079117191652756501633914086169760036461547640760804459956349051343139578142273339210987615642967240135029208277495885298053482893760398145905609765770001333562735937640928139446773827288196301289446667281583920760367539941183370138153226730489274245984352275384805999843076116862192281425429234919802509556138431061725813112426662591102363348129725739779655437319946475711823729758936651378025770259550984405107929770015086967554419058601358380762294219060611766098339818436264061201439104967568933005484176713601701678684362459231663226727792121424449297588423928915208257043215752526622234364962855569388601563689605143553136194197272746500778111051679330307045791439888557066835024733505099284738629568271834859844364016522518542676040790298449869494495177760819186053535288510323108817199896300852169172056313338840653375748343382096921079224412075177222718702903619874072783138449406685941904416946524992326598202607583075515470127708178561977128342370481533136687363399717661544307349508704531297124834742013315450535076272762691445422607777244410769950336585671119135265795007940212130949867941163337306671466369065777005057392258613334192794682467574524369772986036825705369211076374885390114286423578651323640032065061081795927125007049516270121504952326310603788136531337886119615936686413283580730014379812234732792882742563427837274185845603280040070937123719877271767820952361885339668823697858694148940283578995735379309101740313293970124346309084163712630394779227769663165304650547997705760625511754056223023477073637890246028285029155130449084227399445231882266535593763983057678237549213147082413941148865437199657782983448400394908304356690792032822612086661693189996537822168344285541670960737580243828010406250467956175154593921903528134141723272270116104652076283778321297408760894050755103065389859497801571240180819764897626409390590717231828295951254599323446981142654004805294976730270153107964734891540768837701369399941658647384112720309084802688205322790300150734835654964192496443917243129944024438606211221109144489910592679256751612462309553774299937486368650444531737515280807025791741357629788077562921487364254487485797520422705908241311893374446575389359975252241675756354948505725728309589461038815489158702703503408987457806049869732604810523012528725815069148954286293270315235297781516575581295663831984260415441103781402069295415957584071999574334274020114945469934759627787159062842807241350099436718926137541858315866007292223701205294472240775889071225060609676616283274780740892776584433588825891069608200613359296510905871128154131769219856070552508185425746345125774822862249725498994782188928486921577546382298726700388851090022550392713270544139700960474775551748579041108232399855660582242367095065968181978859479606043043033018107536089258764659246143699390522590364591584828366039951834693719076284157680920860719986379496020990122365379748882838128845785309102297670907846879417151158263861318135371591224648799869953423636507769029215741425578607861911127618612111081116445080465833807118582776543755863802308580504458344101306481595911704652272425452903615090599970362573870925804218254259048928594258065278612370947999086205249224759167402830764375153147554487925219877444090111751314632373179442503866399299634182532945003326539282742299405366168158557005036373026230003195331973474636558597287822113145170943317352364993554506208723181996582271295477190318652189145770606117592458333449947587633999863277504126719226149453117682362298272862337573781411127860069047592721130069775806079451107272386766358818533856162324606614961929520197544208246948020414653938229256005211765036755379554145437040100406260273085482540327213893873394727916881917478683088630204898452106448228150203626289008735150289993534579882352142984420522940696657346129588829979140400717943677769199666551761726186479621257786683783176334428017750746206840975692272487896933683915362205734942360539777874452751222071299757069876783327505485088863768671008804227539812521739575706651507356727917621755709606688168945739035628359460137452785549382448524495760098677705796220824985231107525856506142096679454669020179244373105236472804910213920242230052809966158340389651283135721123070482449251073182874279395198787417187070053517002586458705652056542342414582466559732555458591692197681438578511323517941696132766536170083262069555606206686729167649956148583792345012234413582710652118584700285534326119663096209894082860560443155140218404749907750966445753927861472746479255614505099254724916889243799347182680998883632116135045646148445746901808317896579586329666284562915828490472919283436614249163582430281601253060758257468574701252286174000598297461779176596559548069768586374573256350603189701385295997311603433562930613227473557391164394561758422367362644057499075050033186455635761314588489835638871770935942005043291101787343832734884894043393401679271135475914769703869362054424881016149510298371071281878459806954496334984908660895924610152932242445745687971245488884954207045612571270695861855698720077135695283526228341357251494147112836274177047617507206647030979321934794903173388593664014007856503417189425243745387514889880794406950267335542752337767867929029156260929519962765512461651301601070580344969040876953473916223185285627583789199635438847516132521624653310356264285621276221674338001584208499131018894692387387437042306561825116181085445671439436530438962265352977786186484079957125148522868905287468822521061991342418387661153084520359731102433594426789480790137046883397799454443526180908682374516416424456848330277810132157699501904699258161431850740807986103673030803817008669769361612018014962757873592724170737296847211888107311458762572110992031299125488097333082686430596694700244747248655545470377371924912645864049982310188549939701321934734239912559772333282841210282330927889154012129017488302162224814736187727742246180897507166722228450733380725415387061796721108999521591001262339708792917474758716568642522885554160409801910584132319064458254608834431334831269588902154278394137619379552889890572901731151812680440740578842196123125686794146578287595152092830707165320868201568755585208818842549209607528429414367720561921715283034793051435293228708933651110458009340785131530309396779071712948727680883407039908267357545405581900934244696099173265122540122941636853885351334433323651218952887769842557843671819282921142387586352169387919584196297232463183996382121880467319595488715709324144026514474202783764875286845422757016319525445072910174013711167111871268467421332647387397277338084325145561179335420608798833642116289077512071513969234457452534804285407933740178107624463005822491214640771463075596452485947749831536348875828190321390733933918630311608315575848262654582253635745986735544101379372306218621101124762192186398426989228439992800228228661577374166718039340371652759965434049805363893291214408815940076209929397645392984005813712907023976584757857296259554653407903861644962877997244553058852378409695202715552491447790434923898232758338022529063114066333572779195635872789375102308630404981899480592537216447490773952219549886519488067821641386577093634973561950710547910252015871957049307328612913166070642083311555003600168300318950420269179836854002133964948259003737122137433217760553819247895133122050986780766628558087897436655540837579783916460434377281052877815694477798025855146988353756226027982054588431825138629754011243379507178495165127630585022519575693072193852257106515797399306407172371197702137107986993827396529260655734510192582940942616818822105728879579929094591942880906530974364211603954829987898915750458388105973719859911818687510593670374447176336624214391690167690495367978006290709571425875381916169727513662204342519133508007922706162079056211997515948005547752738291679438520006881728044460495827660982371509282848579527583910645915029288144414935834567893803450697812612863347999456955784424746850581208722193123249194299189015793005914666404189311452256048555904331447141391544120344698796276769807986190154576742431318622464599387269314337858260956593128476851961357921134848648739539537955955108773260605619180832619923614544689648757622524819051449292820425344310270624296358500010063133918131920766753750055730480808914034342653123983983320556228995676996731015453715727127418932614455037325174760501146566347508095194081357281792228552772430418220866479565959098066006559461973191135462204225074321996259399286302285589810729228706961725406697792233479476158621581973766510551752091307270693317915967530823539168383650036931535017296410227371482212353213922728438298190820176983207385899522405718016195161915848738657652772618979079316748169638874665634281313531783795327090704250458328849798335362287743321696124166249774706842910515235579862222607480469139754542068346734408641581492164224300992801245533375847221947934720653302907562870698129862537817544846533194147260020023157013987137227419434999437512486773908236425140315242923225728052066935751161290617243057608056427757349325568203458029229678718506458125612294047920068825676370531768301864453886540955536233496433562190129116699664254175342725401726182547622120317891255047248944208915495950869174340731622721663140837612496427972017907373982381417705827207808687963515928685339826273230906280803738511708745874340408924136002458711523275355588663076769174755789349050335255654455478742309221302221164222924675294956254185440017412839880436170890351646875008540289762244488292601150398916263544927141755988531391212903750020759176618530156220678544642072962023548909626581708811089540903668390339067049839125298385270807826972401524133519274858696396568132046002354164063110937943313270557512706933307080041828780490700782974081905269637015721372515484697066970053556801395243754217869205388305096803981135551293191987967142347497566415149533755090655771509330690258688660171167270673107045296537792678713921358850282991861468190826456048768462307137236395752989917236854127575442063855686414311721360309108050667136551132464828736153007817640604590517203686996595090750809075523991513292250260988982642518999794486208887427974860124237086804470576728701963761874602498962360902675243482645157590882004931555596813870901359786417707737843125149178295310483896843948384787975543532059171271743029507279982538439358346696784368847320723280884303124265606076625527874136420027842210923931208125727722515872053069982911270751138881769091495632843958418256982683269956722852077043422668176859974773141368161148264966845092467488209349086722602663427961465175695088082404710162234384423471094231056544083366983892661337625928682365085968289788255878908543663775884715784924648015106615744774159707339629019664696777532698298792024749147839230231871557330762552824891770182078238980336677125878814149908287820142968237921871507242342857163711837107127853917782785032960677193738061466017748326448962066764283883728672099012484225909999295460768259999538884862978520775332371392310697827752494769840998599072379872434443101469163038356279793584326526722736292067323567121203779081330138675685775543018742188264887803656994920078130792645127125774400538662935032170684502760271168032362292539827052848245978429842343325250345522691727625124777425240093938434742074824393750771833430271885387069541804678602263693270272837054603436360924908728023890064019715165702104501322123147442601107012366436964938810053484560569456923916927651715126670780011628715499375151413498378759171782554175548525925738064894152617709101428190071883103905422389718629443940676254621323181087986262920408806848196475762761569430514210218068807777079213493275529218505582024825194782401380945280512086811342333580936646245384225959016459150490492051943500426278706659182843228350696159490176482879416139418529122043891130160636777530283629747524290162504823001133210642752298553611884815266274639224295897610026501939255279701491588854365393923422106382291597567303647649648446087879823983803672409419447986988515420011708834978917317246259802920849262319800118340883978155975586643297605830077663470100592589353544254430427744211331933026772819389251981329435250575328606350524299848016529398930810535130703085293554840097330862980864533944892819604325524502241792041544164055682849068467259671248705842984587674617091973146141471229105991253631812313799134184473384420211381478603316172252249639515337098215746063163425244825868117189410003427636354426394530074774964821934180573148881286385043546978041836466958476667918031804690324799562961569078401665692438751999360035104304771839535387829218731275508032646687685140022297804400561059464616421527074949058816046547751287625731480505202191046698546139155958080639023270269380973225243196230512623248683769378096785736043259710125148223751501909851876920960382416313861687382718107108169776322855556630396481225662333315737042403685255704231961253681284821305017321353610380595716051941434127660546027794481368114045955116338357023487324564273287483610399603412163524894726832605154429361612021533111928777654337578091212155369374269668246985971318473879885397882024993069672114300054795999213878047429527840513690625844637849873575403617005874752990909298843127505492848225749312738766365544755063270947502645691516483198061442571614324463268959160205063046432332086316025641274507848728719567060551883865907491399173723668192368417120308726903974225290645282608133980180348814817905067284242118637818307792582657721699448353537368413091221597128834126899057398766766826470628089464527324049794119657745608662275556817813746602142427302696915191339641114795300385411078439005036795486519642913426264403326585146445078222250158941593423932017990553122872527635078592996168741151160830543242901542067829625788891367013277700515938942400387385217746864085624750340028399883898130339167221231072497108693524995744030656972104124180407035217794353280009144518333214610673266669693669472427467842894548099288955641843613178571884336821263215156446378445106592110247235785900789424604522838919711048459077293574672905071853793753912891449969527325506704556099980434406310820518003004973084176344214020070287765096173578900627289602542829459610495073776767929498960740791387831692922796517463395705538108094193259777649149671059718765838559376832204219898011119743237325819377581166254360750834158766112015796141494621613494236347095998118500710378581678873785773539394912307742026734995323235604008612541162197957453565066069667425658310130603588932871123540453876170126216806563193219453483587397988845197826778190966377313426411475749315031755820121058642660594389457299753743441891460258794550377641756869602431835833004554230599160101210119948458152035159918702355989065398215203713553142229527997015953523865754265162708488616298766871053599357426032030228283801378657465393897131002152026613302317015640410081389776247928399171167206417727841252026855415164003695360623466094768999911594001857803142807683022940357882724625475193736053982100238702134928488023775050131834670247343948069459257324416707768039619446406799314041516499182349100408503088384860270319597055274390805413883558737776809413948938133073485320286694487801253230353872013149694611330946397611522339285848617189059016705986353536270636913858051807441619563711157626691763555502816243766434498903906177615513678127125615433468491137105793848400477057958779334416822076220122806611351397593491166481499049867767304621236101176562286296683202916331073420822792545681655418239633034966825168211018679351245689812986504512417368675425542933134396434681325676133915100944481701159990911562414424142677391438022729927350170552672374955125691286658208387319394596336689893486988018217287965804157772959303121957199793622729087241359000699288825612345683546724522043942954909927623326869128112197396781443772867508408095943879187758459643364119582133676936603372528618380268003561251011652193547118020516029166848736384252701058087221054465643420422963492943862252762246138148687435890116652307745882416534347221510185057335607917941764029617443212251106573551856580496837321402919307909886477602081713957618631917860488711976795437413686460941776155627999349223028374315801332090569735426847198466076119178993016783045188580343418802397422153695602335518297088500247875495639547727176306852102441193777641604710451765571397301927562628903865111798933569811713778333390218007373665614546945943020729605289410679969671175273532141793893927632682743691083136873070731659930499287669469568520362464679246997041891318885916460902109250632675775368709211975833504753743533655613159211870544014236883604987345375762291838621491757874512190501470624496497869883320516167422311136021807222519645230485915518327001327108778039364233893946493655761526992009048771314224182329326631590823055063147686733418361941454865174182245213894977935266564086368029253583435277316217384228611265884275080495495772025715876054328984995391158357933769274557051089303008314076628605344057580611327803086892358301500708451105047288039287982641433935009992388392255760626083987827081355209001338508256296933297502844213887686874052492950602773954247151162770437156069991311782322077809009545765923245159405678865674242142070681683542271281799094512468017229077061372471020502371204541475311508710466771152574006019136337517617666613741965878035573816159189110705873980583016347968570056892707741327356128756718314179940670046186340668836815821621248455845649376501653398954865485892275408919829808831891689893066577823770184075429413787201566680655562342564704816578342303324949946492967964821761023999901574356155527190080316982843508020354853058303444759327459751753408252497500998160769362950603409935467706600544741385737086772687869806044095017097681774474131448192416888708062654772638817776932309188148771470264244467902867778430917886660849602943366316917198027809524145337245710801646297973228535162155068802701402981707686844928316354494712036260380413521229628241135746071164285427998822330320026003741555818355605371949433572907428333108719569360024806915050503673766185352664811897440795204472196738505865594553826105100105939125567771673684242260222122647511958288116834090277476297586768702926275262976457132645481628058874247872603231763578933044350900241912304809595487780882807368146941502888182303030425515881982241618602524945009187303803390516490699552904539089316825869918794617584629514640960795783447125306444537862556495894943856980818073323321595378027536305019603846945749670366588639800300472311114604425024100791442474515091365450440118489504894550425378397217092135633465282584667899698235703499582147386048879214555169708442177279351128011973831580897092369003354809683721978869556513516072078036885903835405571536507855620568783977823261657993681983209851684802930483936915741905196903783616190296127340670290837533188272215343373768284761330572356681144989019575934520446365018437406210665924095030929624746798705450785596062610664554609735300577105605859783914500042055124540878482788487544026882007062805559378040461920437653821536344488273673678606165287288182859001813476862697149843019617993418657201209217111847576693938651303445151662527692008190624202961632937291040314450155192623522805519705830750860311026806316981645927228537554601187505064816914452960490856020003156143351985926966557346842080476213760150895340456508993855374339489760282829601055749319664566383542381286083313096035035550217738296006182206925984263883810532263084903994167376572475429433906693633578264831713075635145411082712222624326908380342346925779247606442288698098147756838912823660373998675048414864642009133796937099533029645132120951037021868292021555917374129888486551031897548786457232939085508981023526241886666288756042840076251499447739537105190374248537930174472629297650664080737546041937765713085934447996868401367953899777155373009169560049398450504241633705563105489617550615278207476056002360830737250853362022455922782315603025158618244910241323845075837499773626028483537036149503055045694699883123663492368295180840417550029805201626922271295357157520532263547067899819316817986545363215119201983676911853723389914901057782099673383735425690414652122043046370948353509350455706691112556757247551807410812796358001120107562477340940659418416403431966888368303286537095873193346399415854953119522187475257816578364532240728366368809384026046020649780775514320794073754796159466102375763886738313010769328729066863592661532567449145205946967109104275578520617653356934388844030947616444280398526978493910845080364787027098598603683292991169555588690202955729687779130866469677770699910897002558225544567122537996130392231004314195231401919727299042925056479036272615795738667103457448375626722699030080251217824856468980986218288250125420236424187809620783061683985021966927462012863898074536361187582804108237647402543303898216366835949334334137158126264174838704737824874148648283697391015816829846145214826552656711149005859325652460399969927654288257490004340915756145561000707363334001817020247134801284398325510955960477951542157732586028421141795040360783699689196633981310100586247800299193123062616128665393804899350240430804528701995907344530256336901515739036865532767006216162232771212465564410030999372342630483352467010219971632503082556682949770544959058101263578414613357379021607501226082154147907379850531410097028485156960791810917797996605524645277416270710487313738986210247065588353312283438479058508370662047971855817798138752752220205381065081851296828754462988603969305121580900022410603414791577356472118179235754788097891525768729167422965047098905080824800990134568980708937132927652374106336579359575081082166570527135271165717610951518862621635312019888620283722030346043560931824380512176552978683207365808562680815246498616552054403333469902052801181403217439611421826247434140893536348727510842678776980069495701922967709577407512453008138911540388943424370862359331334460638570585673636439469056148041839870988188737170928594803348551749356503078365506070821831881128131633422141506975074866525454600055307845717241289789627292429729010987465779604739612042932129576159611292636186889694582518343264510619940272171151628835018100292899057008902368978958123939857297756294238295715697911335878608046901110544802220231992999586181835416822000644984586049601993908180363244996448798895605822746120896513003254189243501931987313834590634136118764140338541916545361343287976389585207146093254879533376390381897668653736638782695157416149831829217159072322826465292599750796781451909186012235943836750142388154256105827944206199204250602324175618221180139890223219831334471609224218058138701609497371748580178687333332641656282380172959304276766141043565758057037190190159334974534033377080736191842618812662446222612003019855261048391510579284875293668357767983313713806344082167320384537004445709281603606027431945468005406841965729928549616416596969742759302219450927594273124634766607051312343346157221178879107470044508873344331022394075814844833108218070147887474532914105090718538074875323592947122924429559413449735211047669518509378015370655668138417032956100082002293504245169307682358805064926947861237035838988590851073077793837087129630887589528837112870907595684438502519524312629022811543115856818348258637427468232209628744252583286027962679454233171153747985497789728309186907021194779172110512077782963178657485394169009570880133303875231197650179399026823259339643700028939505735796280266217564818320067720339762423995100945829477812568800312522997181816248380794646110402800853839698178021682292494015702479825852000619054120674338399219320683443637489825602560708754544995810526130398571950878144818893907319488368726541547968730753939312630234656058268258133139921956294608977132761342787287881794333377871998933707866195973119792389190214653912334867985227786972141523850113574347853083184476522757651827929956217648340349503192272226443601897632533257804080041493975314598689995074042770529000165761368401650681161189495269401516991807141684270772135265757868819128218503660333256828812730868595724645622383834559273819361753747508962508754644662604805168553286141343919113661365782239214992159416117596171236834128207407422982595721715341776198415042942718102492810841837711130638215072278525401776544499053814998026675122720840170018395935238684731705644107162002339031249592652065094379032392981653841294693509747802389453804415873546032896719007089207803488462205360768905268139963346022175183878096565969932389841662108809104931580538356006201997948748165397412583365467934669214679421695403813603011054432645133000203592429317274921090369330731591498918954050089444498766184661919463033343868686682328395430923853337833283093055716446456834204479689747411432064971057742900624410741656898721876205953878931955477613694543410529876143348064939187645151043680434194986717776410299785388047334499251408339386939305724027488525678256672117643630873429063181485745651532175222678603618056290764446162014351610525284579487875836237129334386349402203980781901258325668748022893185019933597543875546634905729775156143744148745756830743788184897550135490380731966440464326190810955520895927106370814886106471646223486279114706622911299942311970906501294367291862279199743253256237441633288834036021870985708238758184502951206630270368128380372797405925823697249004946992249467006451565701561474856431292183778762049628311619729864631215999283321899327570060036690335128497453114650886513455947514059809696646313909515922917297089412120041305755939246154557590993120107502880378583580766311515281256259741545970225251160151245833720231912024729645915353732370743928593859257279313726384975714775467547525471491324764580733285999334857011425221952320213927640063605606862520696911379803928144303055362184367429317272719796176332739717602246038573417927496408028228932193788206753076149250273170459482546056718981055786908391929050854208979507657532109374980896152143810216106741804580908817151085793549237081019695318279124853313907262653236921860874909466313453938481756379937716870668133229822390415138779404227447237148402102567657537788358344323813104943925793043037298304852871995341526637299329999073206494283927693251202922101210854983255371968669180021566378184157952248460229762545238608122825599927576788950905328751984545278621282856219556416457825980785352653340032703353881961775280435812333487635333629232762193677763830736172613145025121258741895521488846543808308035980981803779579998025479481509037892814486940221901787014566401072358486571670058187158063556927196635467260550466883994531513778847228031255725325834157038761064204348317622955491753837979881553510344778185534088491112172866517920465559211358084492178432773470382430418142434735476675408148132443223746382633965811937559420258146460641239407002322657940394224566624036695699609095156128959806938500856664507825986477777544258208167324504265672736549998676318756563117800701410184914595029777575927552655655737011196146620974469852179818970691273021640856344722420033424903295591001762086831961965587367705384363985250303543063852059457879539300509599121027935332908240998490660063752015340378356476471477662469924154411457266141786793294193285623612766479360310863055308682317251679662902302329502080664140770436007543030792985291382074314167824351188892792792587218260394206301689761841157429534417896831965788218132987426723421503542237220379549794329110600010662295357842051580655975246419696344939489220493607767236706732911106553707945236633272005686103614438899783543786862564803899892854073766960350343514845820749597263845882996093431580163484430905908046671922881405952462785376836218214589321659751979312918078344428708912544087624086900768117346283643424476031889066188582288199737048356123638115239605731931606867355408136069402435534946891434506821019581836617468677146023182807464617427633096204686272649137228457885087397598169191187860059374419000384000014921328532101449931103056508832205985857994254742816130979673460077357732917557639833551202198436019860816356988576171496536699193206161141362760085618563279108982330579532843371810394633026489046341530860383442119566168613125995666767359530605712142373435780861671338037468238150434731519525396995429857663731084127016467037587227728793002145071147013276639239007002637671613876873199515305536291971992577389140949958847063503490747618215763700945720613106792257516404965801410875474603361473993854567955104369323336488524566330979445386519173469143523716081742791021152148978395733461595981131057442933741939490192886185966461472321657208723767882659055546997311807430193565242311445779182547437759311469848516866049061033044235331416258380327494593385681504497476820143946297780064402472727313229817311960153990444880293139319969486528651195544620296689919997176777995973800178117420012832230293406033642361097753475589194098412137481276209554269710605486906290244759781229855646827598712323374654873583701229228853299889077111862544313329207187034794605694938746963525163500811966317736236668006033685708613846562869519980405539389050259372579214945093225946506946579563147167564128695643237740847773460796187112296594096686916431130117106279124904542890868018829689427711184469151239569320169575384994131718581257564786287197002126132141605162683931772569196219272348233356916672674413050409433759605123611159624679528783566687311202874460720771494065459286321978630055275132331371791995157328846533376788312962462898511047163655263331529315971717042113072373802701316421569305433402357399337273036973737868433799791477035072676376348089264824636293167468709642404796292614455776602139338393955275074912880754005430553777809955414565487684662830856649480961314048606596215586766291490300070899022567839403249911237103708905063516714509809208417240467026082254039425914569457422620149193811618654135214922586172884522085093230054331469712861323512207817667862594943821877785248269155625837459171116369306807710825598704364808914470581200028213102180851716940509966381158602270676848284612856411084723122032962025489962778973877951036722303569884875920269164219503597165678475449517240251663048207791551525921969406630509958685095844404661315638800931406270552154449349607854080597268129475864093033900501324356683090112704840292438279878587014603485815054926603593477327071241556860375800826139426099742592723637157826990392105639442861735997133614400215252517211265889668110159887528446768678194513919584843549802559917124264099737055157477100449729028020140804032698247324610319571496357176963752325091171554133269134996142556969851071687996760719687668585949710693873597247162824228176249576723168006605806642078728564952071717017281923722539701101919126153015061108518259943741166081360702635979485913662323955909120541885057976744075551883245902335486943282386149535740611161242421015060334399750758653689179914204344767143831116298757533860252482890605248903813446908774317367094222225485890651076762197709544282025972581195442583714450892529225167336746876911396445128837372499271152485558678156265012950180382672996186200751159394866738403866265263084041887052371018604941530485461004663780105565400343555614844523204176882415459355477550398014537021792775936064721307532006433388718827985029770785406279023617420051000074632191836487176205409673428619121142806867789685672015793608908726373187873683768033524794332995584366228682910727851294697762138958962623366566578315136201260641051113517676600227775597851679215075994423490676964748079668892944659433924350086240775770530369495100435961408214443573288582506544706025007978178485310601832000114692554830457451840850252014429713470388602674412569615657480659263623456851606909554883954796705001116380129215035451826241539237123389834563159253774288706315754181180342374617610739233915428947987958705321661104114694331601273159668440570612714287776374491309020232573043296713950970931769702141828256585179801403883253331372802224101370312289291953474089376367472233079198385362421193914404379823632411199595418390571824419510647350617269743916745606435550484045024120052019576307836331085796448060834710729359264374095305910756104753701553909720553245005376368205253099975654554436914102049152915238158384393693743737831543980291468387141951925209194007463608016589729600676201260715196642029850820832608085667783349252026471278414465580176699422873495733758324996889716803824909556109371316277652237910800960621761200691334769972634654356885413117086998287311966935386612743660952821588970653899708721747713387400067379159353784382818880050110441569891148939951156613650828809191154120852934961876003159049498266594048667032123056927925038641653749785163439930181494481146181875922448433556797703161140153662182879841596464857303213430712450881885623599803321325449445784008527474437588491850192757550600669015308757019227928743293078442848308781611377445820072886713245678978856514216597424303283947692433852051515688376151286585644082896215411705874299809874864704505122250637880233705235515784357211586527877868594181398199538168707954631314588201601939314857453098820717809403141000556403212961744928699002514630731613859944987931436773031398437538125948404315155324488173492685841382680445047936485650843064332433075271396816224853875853402995843694545371459038054439542153972828808055962689899682634475698464520562123080330975305091847306814485190939645116392229314540171295421594529297868766267567339162824056362734611169662713399233017861808056303165066603420520781416026891337835399199258212660174331890034613514664295201607183305837902502509553535996051530595543118100043283055317276941164816640942911808839591105760621074235823558439508650773378950228184303772147868859929518603326464541439908889067747494847430665899698330409676239570785969668104681058359279923155310165795414906694312432604429559754297329158581462875272211676172179163246479434789072783081808910774366304724137331905372828999573658357299327919204798945742692308153426995908059860793905356397974616538607718411998925172140832724138004277612932922598289682019875624094982318857640138429450254333287425920562094322177347016749879029996064509827696640075800107647189707687795605935312975976257851384009549665117559816699338354155302334495780809825477890874871656058458147758933414695222058482201000243695819963072640050990481398810373521792895143896006077212269681190354001597503164860612866044234127758013695495401899546993109567995383703631526289551662790536924057486980543292922792495722930226881057943415704014732121586185980001277700457913204693695777558827269328973752890464900124288795532621383482953647929115157881970536849084352523515651364093569665163983105121673317759913172953813520357843442064316946745584834563944228667992005665921704833155009787998903357468152182534425093026970236372438744059644985080281414730424965070944697153328381913651271061886524919054214915920559176797199795420766510533754927888877904993974152627627260356979113716668837380012862738637549339589284691143336252993732944880645790745211433833000313041993022021698051505184031282661619855674940263590642443820910243105142116316135359863335855197047828221193165086979509862805885914499371641165613339846548757866639457330545016511774889312998164498686368080805793450574726742257980927399147613965161488093203572836826031037670383672557679017896114839944761368740923885594952430706197563457206295048071440335892397780363415391658492255172329386646063124993549079627345291051420847127171920876962114118476480752490934797802469716041090417983348818206292523003394795888830872683251067771566158887367183710130030297582573725292817352691199280800614464757978342453352259344190480582546623982081931708183319524151256385537397887185330008356720879987801746416291365415021030254342957079115699643068963517537816942334143468871221076975939438902248073696517842832887217775406735073992244377418139994528984329056124535578940715389694018950752572299818476634581430536301286261354314400705190264138659746365541859291978914313405885698108224740156855187498215380777985118104419290465695599175565471705341634863585041367117322110935383598346770021833658950263308321459548600406068085048013542818306067751636424675559799751582274977802902813133216998967906636983655789474106941431657671839858783020631332000480650178767498728351832034884201878326231723830942510057000741611142993887544000648920336058390574105124757039777278419939738993002222824847882580703220554330890954019218285050956002623819942525220017776384670844330288496556804007873487073202758190440061818924439041612818012365038768584769823146063666931186662621040901835394752423534617166279847046427307834265957871853354073830169962950530044653896087000808710948995627467714003185171566212409629976225897616314821010109004049560270094235986184410960209591347574531722801899146021920680363238528942433456540406508702780321417677949032341502125143304382298646866874919650983831080480566949886529772554276311761907784822024070996517660664994041738386314817931964964787597456530610150233050012834457356969107787854048770542813988606837739024301267244411055279369570934856985803168076651181201904639706989670902783368612613494027879576562424402580462519437807578847976569655183261690116996670504867574505010592061044168343355199203795787887932203416633276572295743038589153652288660591900500071009497952643254292172052770439089929268740857315884646820516732445591869203304024034503624621374144447287175896641816297983791629380131232148682012224576836607839310042687491563443895795649741297688897230215450302418546450099108346515138957846348264740051203102629041079318521108970420942584187444649264895929665843933258394106940769323329379343499661278661284256075911146080437436086465989494243054335120065976127754566002899966325610848039963125090966996848147472398837838203349817322210057971009123018709833133641873390679184790856243918582943686608656027134513902853002362938015365430014693778591133988489585053494000587529223395385775940878371880156269615038050675057512329820131103092481326576416865605000343808297774037459565434045028057581531927242644567871507296849208489864005898568202588784240784573897345477187528333337012092722278294982349980228654008395783216192272953108866674173817849202254606514315412353364875575888667188954207023040322612277247013558387834109129305612575559086092668959231250189802024159038496881812825600587243487691781574728446483501459905897511702275105615161325037929401559951294078499496543815920052592693027847480690624654090242626193429183923933701540427482612588863895073792080729591446845577973538491470679126411534167306711655860380544460576478394522570077506755541495679674061328278316551961178476905347912227530922564450707353335777566098310479621684379100872555670818210150442599767968232946497554366708047852597547285390196248447413699010771897262605596495605704894877082005179129240332777767534246348911077969259992883263454320299031687565248495899163344850536214511719713930283171342132349259313094782261245102794763720988173069694634394198766304189354388373089238225052824138653817908467336133048837792852270301310415001875116766314985508431556867950629618963887522072816164691975441857088757669496906697953797095298826570245468405267897783005762543582914987182242912910696057527180872924341541458673780953404383021808253120390348903540445267729146905922396345578906405365612312615417638772258325755183798864913341887574591100670530923501782606807228354072000974241701725952446571390731450056397252326570989824962587562558089294852522810832651317358231337186476403813323216837832434663252328718087345814807673023289439523420778955427321180793033125552461394656713604212664128891431741331720450943306712489120581138787386630810355672685156257288826812408452253703494052911180758564044009993444843447888620534832634637621426874739785664613042626226490896951046239263290542482607661461004398102411756948604052111761365816715051894134137205940049413690426797067771467005039263334328726425472310080715878593857401487325852196555983942444079518170944497749115537927319340598836658281600274345746743779123996373782170885238397942321058155374880412020524596074518819900605339304838342036306209598081123035490856659914036134314305661788081130143444559004543351569026337732403834445692881187703737476986454566786734663619524088796996797559611172196431796818262273012371403129932600029284257183322223447170873334005577230560749039465672310163679611607124250955057234775216533532471039695037203793387441805701888608018773210225905636339934759967546364419641799053910058594633005516448999799419336571413694387136642859287713793742819146499103876599705999978879016974000557091555654564378710457372946542618307368549480321774616462077226179385669779978665030670111328092218506005560588606533562747548264539344490354793067917303768855833968036439848947532725187869922636081704489791626796783340117920554932415719760670136723514775437571749329136214178729783658908798144453615515105010577787301449258626251086728189115061896321907575122448932718696027373918495426588256138303371917315264718671193365413223813053015242900600962063971838965229657617349205166106384426665297489321193219940538553350155500808878632180763333106079362917995809366292140740063108517069775166474339565388570954691073977784973963514831893970813374639893784195961468628674337472116224551154692376147713702432238632450313452944743813572097120380460627446215129751700919267150084271367406236144227515884812745292573450735438681660315764955110850616402827993146487290609328575774599069091008396861247483931212176734291046260690519912723899140257167573830443097625734531191601433954925019311386469350347086302861502354492662398294747575014437596775724023648771656805430711095499922131526753548465950603764014492278220578314216633103800004079195346935288814614887836705435346484138964363791351049179491041513726043586097198294873925519552981567995051680419983378553138369967361323101014361990271776325688088625533670120146514117796704286188608321183564871260899583237057110553767146992678779917924460074870123403333854814287600727312483625241365821435565516372128501001560629724280308997677427002048153433058845262695374009488491382057943832142048848344297216172797085359253301785964043642616767662297480552648757391323303466069691142847932736398327517071215995837775429907054538312047827635782076992809614748333297670759152868031049147137892953097104648383204836491965599941553481657973863724844247048144963634735290791006755497806044315853661577568960035402031786624984081110433772397253036915801583773036852644220886275766261875742270304806627314935764369781110032572536098263406213738220581826865931442085324444826142481032638642871772873974714495326601030082969884600094423400246405901394398584350259049021783713078072398105629659015425512996600912688625947603749084854553125143383940642290906134090432503894902593923944285865831463797395336642911347521888093068238928864829366414363344019721853648390987769494905876911830491146414144283839937029152672367696420375682573342529922524608050037111200363267533741293995152350716910940457444114118043051528665596155850693844159426055668051618673173400466480294000077012232864715196405216851769133381367952171869850546463031525179821264762775312960621087463944631462340798618763624188652146916610850866272871061027471914815958800413534933674515468313588762536639619609760678667007523916929582312168712549217420044205258980382317163900715075292430947865819232164131060436568711682475930726853113104313867852429134770196193456592030340789984386274284795555681156391661222918124382425396521878498756711148039943351116402648794038775746644928030085530636714894037132353054026720579790759845792601883201839603175192481442852098205397940705505046475184864998433798030689759289474113702597629929819950326577170634139187191606095046440711067255178978152079458811555252348365322019976567609562247588893454453073496524216084404116449658341066970816409503374877298185007011064208603496979444497579939141468408631986621891641034761136332365067590354571602185913740595721311999009295095756186759180513715800261438528539296733396809972796194290158866194153442249310085280304357709029065611662764051548597221889895890089747115058816625317235513926367456216681566173384210643626371214969809592565528514689704229804825935523024414501227228801754186738679132503366554259482405491473176029586538657032370351209026336373153354172019706566790243620979354532148542769734661402800687654067272785961990201733844814953443803733996683080946379525582079994460090754756501890471889176989744984722459307512236546732516859184157405823321260633342972764188647927143512380166826550596732321424248436468869540733821398990990348887168503018389156395031874803234416182493894409810515064106591105892487947004008947737635031863518965825966834279449320511973329399953734450341632440388293351008838533086247879620047284426189483544134550173491992626453151736439251810819707381416483402402432632025662734514989061716105940546528970261423857895267195057151108761502348793564412276352039704276993922348575827422395836932864162067239399622680936563696322082686637809172435307206512226897366544759891962659109973588354440716571421834550398503571471250523550266187031981389481962509563247548211681008558831698070937171290430836485648461114657816751411051974342819370309456668344363487632311693937946857903988787998252228786386064737431440737603530752623129214166589119382618537562486321428130338916629689738123197431380131220746842537076418945536539242493423311625007869756531021950074984706520241851049723389550142721208063430088523319797447745787860222140330893294346635710298510960621806886820556697012684886439365193148574930933206380335825487018915381255913649593911209504405740228250232704491318467933789523870896941887235399233280153984344030164903226973422497377999395657851195981487068865189666282376590552322484715938125450127030563143358229674330263465689363363383326386449768572702121188178792377660013229712077661485074205352517073784174044458087316304132215348535322476182256327842130554819272476181861462059124011263992766583809421078577248429826667165602386398049206622646377252426494651447012861787603979935533572600441044531065682737646519661610761755524796028047803969700977591303640803508839446273137361163864206466161222385643656546858739806406199989995290466072146339840199296513271656179137934500026173102171811812173394907424064398999535718423982790304917149787433620111507209880102770656936159467838050370902069356697782437624218884072109945234028257548066733841182175049004477917165873185736215498937592249122706056836599202323832096709912302480461004528090869967644343187360859196560072564031114536738427757686417122952827018227761411276143511278578316550055223121559825694677295525758218911220599609506154587249458541301152873712445905835432518409539029192100333997579932906912772740111807858184404982575155700903290672587648704444742356550164950792980617947006082459436210163536152504624648152012618804976886906613929164951312611218788030459060843221616417988645745033134196588431889876703815113033264707853846435699106890335229927525069661942209631538832746419661775654455487269912781339753886422400451267963830452080300808446138244735469995147365528709929371101453634365825250597579315960430414604086982444802523800416552727857214781253900286585330230348099797443179203995126717133564959471706025244713420707623805811888515650786263038669740743482983188420171718333403307783494716575627804915851657521598748824091437774623734276145713035198870737873440884014529967712848966437436117803031597087413118471565913300089402490593617931948732521299750154922210686198340891082908177385401385023796416136312617185346477947824808008894411512752183171393786720155996855902570910885777634248149209429154704765628698835916265389923762522654249368659901379255572806008343701933551037042819012274812375896063411342946915835425460038736281006062490288577139622784420999355006261723746098822824807752237129118914863125471432875433467080543658492339257994832983943456590591410693622558972631417346026124139786463007554343969974315880920898518063552283549375396538767484479843056983243043209476215851766527332034760742941006320135497981532306071963302728509701540196686847609862799655749331507761404178666012984147409821830366156037527492537064992996502807303665850075565834976082829456197185805199557665694496033493715075586162608938154088981164395691392280041985579194753236164904163383191420273188177136434164604161783543887483851121602629271154902677460914086002087472334964737862600228817314317459852814381283771536081937839950432746438200040314065766344179703558913235665727521462255911332285967310857251700476002009126372681548454891907068352497253636229542815772613494226672865885128878218987771891440376962628821913298080416637589963765607749480477812757048926015910777453644194141152997051802336264454737836052185186640198447294056611657546577366482407398183620202053299948261360497951901269106322791320207126679737373255694671924450732615920161105459874036857040965437762127666508557689247365233878492188546413862721260333573137582557384242992548509597367225831573472894862550875184196897505385878717424757774070643137938712601326184121348126342072554536481191234612516431308212801515774686677561332076699282958867453755176495976740896691679506764454514693676846182678826069134907682721835056680423242313144947942289357516267827652704584221940243600251374875018459002646483445136030318500631924486577105373783910860393415664223042686396532186498430281169664461828511646893030691838637701173590917337986348444140337825740488242863711914690591391880465285348171612649355540252102402893814619561168464699503753569945587245597091287744012919031453941106145125807775685313008100202175717847711113811910278937239782368031614240442160540584980809062771826208044449734092948200063720509964210807538538801907703931354524473371188899837023521019371757467600405572122089881065947156762660934684103801270615875824303386066053104702473383618063719837572598391043899126358609547711125744404761898496113082381557720089054877456668505659248409454136660518713820258934395547439495528221903375741524834134457249686316134480241492112557921476732284988657454679117674666661922400337194357784226396692950566838075673447503029130245983002048698660413750697475168787673418749153432380817685446152928165164244095677307506210711385860996202294419656925760208681087774617513601174039773174045638433160880850735346488795370971202197654318247085441236282668256302464001114043372313888461781931093177601505703818475961882860230580586797582915764918414550314645260580074759796090740489581885750049718125650083319715279351446008944975585693441554457467435192348272024111446916655703012232517958356986698064733966698604435029572426569887673768183687026532501163706004375285458280936401973886936589573987676541448405880435877431919995439439724798003919072187815565651983954582610233542344254612483246714284239778044653198104185882946872501929141144122097098152752397405278259212109107830779145477602798746073812434060785916142747471862678289988335692920335092349841261396334578511637402550175707939799744495023692863856983190273699953606342199509134442187609534352723997298202141619614764450570667370163263513733631868823436890507677277584646708800283640027275278814407215528872525379836837573777249094433425100455099249677487052405619730269460590506658058487486027277543193381774310801559348249955884878333320953015271496718522365933390575101156230154098355754733829116769752480522386234038822238448495649956291341280943538692695712855942135449301602914730006482865161337921737737479756741070760800315406827147785830412519019942980913101664588834268194494377731014248481527584896982438193293122117896721710038418894250953443676775493447357016951343995176382550104916651685548964226015880359424367637448265029546282005684322071982290496649273392075097963662724761982339119479295730101654646690621610901832550507689746097181397825142569017897255151189687266032680287550955275894664947518579696310404600929497516047713617515034291468756516607220700581489234454792749061661538280850561445252528632556497181957054876691439139744013996505394947157369347957497069472471684463080432773885628974116233695115984486085893699134745735856944441483904311966901036951591264598899871763977101545783564837946511234006241282387732154043436880002014391574144895883685219210826211092200508101515492243295785934604530235866452413147032400912107652883234709141187154966121918764035921507879871156843268364491246404860869891694618233804603630088316749824320251825567063103825758190393534465546826765482261238517164749726258749260110574202683498690167790387934825191921607495352414654636519309799026614417002730149760574667894120031243980143522016208259494768495069581738382480283305242039849084213303516813237319511986218588633656055911491281138937203812517635638997050521560992836221480211146633808011121498898496242540128545460142949484453928452677145551072619916410682436396204534951440483865265306677158711209582522331282788150876309491096924067037656881415917608793791196809004850016873347955649157134393707864463311768027044225147956105489872073205746894762992157094160637533203396884328253149013443519357463232028555385443142507175749321228745876747606573313789672487907768280669728976774416854665584465982882949360130290542204007011608814948320573445790950508246797685719839479775544607717896523859661914317156680738987659510129540426138253351263594313910589442514843529389220232758768309415286683665236809766397619352502927119714311993100056390103145157979013029426820321039394119534406926569265636507459533527242010554990511276080546225509919722965488844744002263841753589525045154146542672635238086372161809987104157116977788276005597313806747695480031713405753027335255545792329631566738527426182885653865580294095814857349258532849604727798246316652960665787582891343119782258686875854798856528756369271355287879612416027533756660582958136561034752846816929675518524929719860791649807907899551288261260583940040289744151214706412536287861019050631188004418904031756325927130931547556291853710166016348027104853363125048515950759377603267945339080396297461887265974030158327617870999272278921474988384902010729250311280523570830518291981099150019097432453644163680541787459431784439158711824353100753224642574790448990911191453035817722254032476824204480874237374275078365660880249379660721515252556263815527997065655431797081965332539029182498824146777893039146386193578671669822731334051249867646626613560084840314498935724303427060809187452753246602418047791623943758462160930942366573264043297446951866920501372505012379129950644665353568802102487723056085618133749777394597527910947146580875237307812230581980455320467453097842024016784833349800879058732025610040934728305563696070521815426945114682394290382358386887859534277559764867773965290645478338493944720485094483505249419285025887161025528812580489979583091882951725695600162989802703212758777651767467135757531759557550119430262109593762979613086241418605588335897613837222874929629505249243543189175484881200015994651205764834836177977455587350008345371437189464429028977581333255674559656073824433471319588487546838112491598094806350551245094134204846827164240989341010796530170212057195518855354142527697419005676648119889327926012047741719121933040827501408138942166111391585396911834815493128909371523420648392386588023054852029804400193197594153098033085712149560774338704899273545506447520809662944931098350233622276114056209174787210802028974057198020311362470033284293062213852304352305622387218548808644150976263265850190777037594151374553496630176208499674984540422822739683805541568924133606327806835518110531597234607221594370321785072377041594899993284615982889369302593477814981106729592781462421186300482443662794945439348842161182261702560860348683086143604065042773941345601468352886554620559732766846610463977723763349805731229585958769553272273134713261759320403752547605587495697579559399880205034114446035717457481354342823456142556122690889134719556428423682580493288484117199982387966604370524849666073717873347318909412181395853104216958678224240616640625974683717967390909098649664609901535490828931948336822798091761683886056589391891983094873760981617527907294751676898446957875999749752874548345270887052026549897913083834105674467213388833034619914766545257413037113199129446801326143662222051321187851827043544039329962701570417531265644782847614048637880330338168501762605885723715836299283957390123648969246716759444539512778520447563004452039735833006253260050207374760648489627163842233120662455440984348289000708849330413367876544548752911284776291349114922217294889796774227449143404002432973417098244267896914228410108282215239179009692200793703796707621785474209409757808334938278853710870866616663524478356866727637303714670721751639432385567391246912181606512815848590585240758566765177779126453377666550417196829936320031408653242231546491026716892558517491958480953912443011369611926871698457119668941066708109747487042923325766203476014742224170541117416705900749761028943708724144295851714402621041609370241283823468567254977030294712280599789331943128324785766506522958562480193798286297511489803857335501271675698575527464719723255665880252422958500467216469195679435287578353562303178569505087166046088961054418647529418765128018594933225772333570984083371920112183426306444282042857984710147729925918778136186601875688216646435368655507944858464571255886479487049049072648592351213127156731680516837758359754504434392054209749409388277004557506890607772410409160191846250338336654901426247613011469306944556896140534911852741265771466970206380884791280286521111369736522606260190215486644361858500019417608088626895572088183563386407049481030151719372128479385634076003360776335492418308689954601055592426155796987294371949033485805084252213469946092469430344203915608592678707332473029061651965406805171689672733099901763597947864153072315777022648270789864595146791789395169041741254585781541192152595793876870745082635414798144155843444738102011328998395952366794013470431299956275804060055004993401291329990616511447204245502470237682395423950569754931086641726190607329269772938471717833253354131233731677977920823499042198317662570690834567849193751147902758652418679865208439465535815008851511233355068661961208855123585994301570889110867173576560242442576523867710422619841003198355565523270490855242284853370428465341515459243317294548742995018498561256340604470947451904280272545797044847371641941937591333485393045407977007255963567059623202237034674404507434008760795377492472209998941326258525406537311379860889509016137160162434966727058184964995817494910456220619381585874980504769495159420715892827427339938417001638637357757043026457672584058354164476617467670312374557450096007612275435501544925551964877653819862837517032948203178798207378615936588343450327778238757561819995289061694241137458169548192595655311409211207602477438511056897433034173302839652978097404574651681784868445900226013018606043942036757297748282216762230461040243062613293252526384802850220532923318388733355694719088953046899633408654204365488929932453290179648548170912925203697127425688941912313280701025049125143229590500247751497151380150746161249610836677594157747553985610591786327307999329257631712259931104319066836341907132256444536636096044624374299749080471177818267001279415571400246887860587819646589733091930546908521371976589729484608606095032114884564351324299400721804518043306064332807095442402523555034201307539863425250121101825746555290343847821571118901379531603148706120894555649573810636205849324046152649468382310193998732220384974450849980002404544211671158974005489918684736986295078649419984683914886775712661112500389895568693131129449737541680285661072866519655265180188677739278787484547491286469118270037722890563603744026768526457375916082758948253965132555079826569537632373587483055259941603156440654887709384906907064400622878067127945938264570376893612534029474063163837762088222560316635213020542631304572670090041349015492578867079049773401579376944420903160639665818449795927888298528538050498543053884199066396680731019666478197376010445975648519198336080515114718277766635384438696532965383928914372852060767728549601868429878647493511429176843313939707044852002375804445924739675056651169205275719158685305707414848046865399553530962687059595269291508015521427571336674603942192781199991538639919107734260532277193583082571799702289537540550118782207553208492096867423452858651420940907795835826145195176705835326100866967571819983870927448703922552629389166772837115041772496170595297641410381130327130379120297408568315790489102993992124272590356304462869356199850421654512624905080278256367253767200702404836726133212140216266091199131751034894893929475729268075973984035043066134636082718214715389202624829519187100688708392875866990725314121087730951243743223745617366442954218098984743268870419396794658140269023816571043525235855245542840354555225237769940631616084372339894465365410542360341442856336228029321871118551192531356971593935234901471660105124314857422586972854088443703125315348784972643808853345318387307109440147494713035814760778349833355778768790473396805007498874176548438009935380554881518441623003860274347983983868107690832783365183635755039975230164792086739550160521354688414763242654184019187103277909251722832778449749804971683069505167911669000540865357204754863615680415864820002522713420314690707033504329186739661824659164009987120451476358572997819630102212583121934973290665947756502560620246233442952539294206714747361345083114226051669250629967085575343037156942924225840056326575061014469357114874333700051918983715772901446062852799584408428350482604878318691260002613155978898760438007785412030183781106442380611428138859976442777933534904165728308515898374087383750959158749244605295555636844106299020232039630560396726814446693671201486595323095901518243103737707579910362486760450160318219409353042700860546677229118201752501646717307665763173169160063911808076903086988747868977637228515683589547920521959330185266369800909198167955842532888758433166969088530009591408063019504523096133213256802600981981965874920768991788465743621999532556135054924876136328507939041075287967483782406810463014226814710479021660573398602655056540314466354847793534622346857413252107402122428245514559104906532249729402656128273957211369380531934567101361630977255360927558748129841303364512390789342133381427642677348812689277435386478706295507313616006629972625015592905488156761369721914593908231355687635169010256534184506591814402712711041527106830898010913812364553996009081564289798029317711240428758794887903329194022537084629977716308677504717125907857399082371067288897565924241365989581759995317796358533074130385033545795112250219481535978580394453517675747340771946520873355287207176794973556661623466142613518283711564903726034324642478175283817136929098330883890398702834990048717167033048408672805115464888999405935882875499881091448092083150806189646550479420774614739693353316902313581192445624016151709317724616604418435956467886228892827278028438418119998531771612674173254965235768782822928102953936788243122581499120843967737162626609175424494835579555858041514817584714340031478754769118779688838185269617442685417544678677661897603582493562756142922303295146759095107398258278067605637246243738716692848246033009724900340604569000453362822802540478055198596622731752950317235947310542688742652659279505575648321846717022524447216209731769374578814826939319891959367749744066931588638496482686375670872546610873870553085270915778531876320712591700654316171395930492387908200333938191725870881237501129643300267850037710348892089797155463752368531750264063370578697413144315283589082264056058250610445691069542286592120205285858502308716947026131438637448044545200396584696833227388088344786868761094492795274480440691537738414405995187836679479417283458242696009288580318167016050412961333378622187108994333617238517138978419896274206378760486105728510286858337518335171434168732855771466905173557093362654933308573886518969554414557813718704630879738344246154239862368651583789724222771797638193972072023718181967040471827816986751657118413004835456233638078640184286916916613821587171836131854737169472293847111560915478071024976697878996591650533436484478613265157998316710215732799956047299646692779184252360770641446516267041924775160676562787167322311012595699184041176359584392844595618203006177767208636950805913198767382814842201442392407330905101782102161579978176650614400064345235982503731467046135051883025404987228519038641917403305744577412507652009638338167900594946027560224638647925895406370384425099679146679183502560008883785625519203290575433154651131444035027829538870740181501281899301561852158392447787234952889225353245210299443005560674037662919671792414819837245197524031970711643863574851694654349936389532712332406451244304800555853415362667597961406015257912769115663685086395774619306898617945833043145499405815609467897505126545658152372839133963850584308775215509877081843524341863014195354190449082620514252802778983456786234651148892430583960372313108242107822566020674100030344198920870289267593434446280656039889231562167702538824006743164102037818731660736555398351843283975268159386056887965751873204186312819654666363339062380300551863347875266822144296367705219170243963723203634365435330725490946198956027866760016638588499405222886495892792974606846987076965267682580339553371029968277578913562234542816777693013138456486241552303003887929458823715348502848005479556359399558807232717666065700653762120066623853523762680418496460948206112630427058887204282920803991730740615930978384592321541436409561684675281104090199429939393378433512671395750588481105597941144685352309841652756829495881912292362905092111498363161575203130699129092087751648927387564674113430692553386766915737506816117396505629246755579827208536271286341164497982334591926557216530999921022934730238050670551566877746487744018924289836938923708931238456998753188768591754418974335489503318387486527660132582106631421022684677733817975359704194222684984141960646744344430948529388002434179128311742476320741637248413028074400905842076517318543072232823489767770816470498945114091471285513239056938398554772299424456878314081773142744105616026899895774419883291077221255809398083654664605198052284403542640639971517060434555703975851968762944656513606816555834684276739380653439392532332397759099628663979874628878896502734668449532025510459887291492439884036738514371977684850483138834425511647805309879957555334577078425242204239321497874497098150686098830049700265381021636712101471831173641662486992441638843921035954922246203530690452556376525934354628941223400177936346695785433597110297574672917583464416268293761844479302505663556945087132705140224287860266784118372623758700143539318538989649509947029237825901876445158649784255956907355547134363286634249854769822773698473452898239476099841177569525995404338608314304077561112348903150367807897315660892729800187289090084124478186959504525998040044153386945002965413350125805912082806125542637545359760148340539190930138910911563203939946038643870250538446831145792574101200844132068568920940455802109994196044960921903797833354892983635360713786524789327147256400332991669713829951800161527162863137487722177616642507998487354062049270403541284473966347598698026188328064526457696346419972651046085875026060841923901121878625607123007812150979915265299656913193950895113083622574754195171324771809434519970732601137303270643468552208262629097528750196891511168840219245307006532428602897856886219799498592983371044285490382205285860237177317338305266241906634225107222454510402540980477842484810249806604962631762111482779279170365147174741848021075025379250409211883226159106607603633863403273152019934179626624743789354316670885951423506311284449654808974181931596862906624052443034031172590288529327094740845592024019008283233712526227792370663526175527294743373620104869212763884453422982606486426416485967127409433792828922954156766824595653558613881249103913975337514394776215949601000568490673165923894024011541720088424863234834276943621274148708129843301114352145137644576590440481557333512568687777714319804372736121196241477046795035506544010741471296864766104195282881489717111524705204306637763989394036674447817234992627855536802030262750200876726918955802919307571120720752806414445414312321468897432404455892912314857391723357115855085371166463626590839933961669697664870572557831172437737024425523881320445791272724745414005490147518671612567930082601853013442759350226683554897092456583649809492742046598405738271603631950478762322480721584198300789522820974649841231514700820072149384987298199480321098850487700776642829365033187765706627801462420426353962973052375558139821231607069089139041468567969279700492880583998176859974367018069170066094122481567637651674715984476929924571552771173922976111332509767878920551115184244513207042987117776501729209745860994644390705627422153535175534432429225011922375128535501857543889600524130829110718224004128302310389183223066716467116043423812683869069189313129344588739221705105122515517407502783154422580910047429256148311146592941553496099488562462266377091512611277123587849027249470313843679804259840738111264504346470698830894861980002878421742529569431369843394479745770071604817559322221102885792567940759511541896757636437022916541829938680861894322053705143210287698145115472597213326999170832234043107637037744057068464186221474529414077679445801103922676712682964350592181648626261366237947583387611404703474571228474908796745346816966493869053277400583266591298639294741304155658471141335539185173889458938494898571022848809346380662018687401972732997003293055418080229411556619480831133275698953448380026577470431702620951451593060840412792300318936411155724099692649543309606934022469936161063393098035499280876889561725930150326349565058059017000340994153294252073001013968012242115693653866075623090153234114310872698339990299890556094261865358886685696269881735195930215836830861960614180417867436139612496813810085273857778640133070428235878285080094835409492491166589809843866317417492919598166598959324395987796417794663715778220045379293510791027406234106614502159742245528843786893105625870719570559192752418961199003333550269258018129729885629113206613354685074691106683995883440300614516814434298294408273739910603283683278160655737812885426407491779648191564144720294770853535089352702996440343869829117683871039243889885986759708266833045814469939341441571759264779059928348801231241403806831251909488264798927647089008536605873929711053491645304655039794699590186259132923516802731030217436132779914976887642954722335921712108440493520084252019562359486882078753245434587606323101483016062491441158151091463553867207979891808054189829047448696235505244000171868776946335500470407410727811316834330778362388809163934346653891374815814349248825810180795308601293202228417834829606701027404484668706359396091687147589484454377420528306651991964264768606290404574823077336158097951098399084630235973689290715987532951889037277374857427798917267377213777011219308442330186197445943067145151403937282716710602103470380623314008870924446157024133529838930830736975359059994792376633882231580955166784800486147735404109978394798974924793375071363690815815623739477832965384013563401143291498731708918472223058800461211262537897454425164996684917382917539956908478676331173489610253874350902836391091051438065525353106596023092576536012154458618670337052999388064801716046470159485039661490275148282152863349062375014190030759685921858837203626072675142008450136755154147807016421033550216906946278829357349866126741676335279012226106273763909774882078379520238474609339485588443835687020589787524977161454559478498743236893851787082591342460811097407940475703136417090201319768253348577806878223579052735892106051511413165847464818300727724501275011194943663321022152971234991245357719248566466976614565654222000733301826812627727488841366445807770013196590346446312270191089064724736898347584312150181378230778687845193512373751006936090171341613067516516796868110095957519493518085211539463134066261527822816432567246199224252168666590988710041331337933596239161958945567469559542926946800250717942805489806706186109918138786997411733477958200650139741526359657926583718345298961017102782774680536571904975596520014571788554917491956448734560408343129289934845906932590328504242286803122100600470287934524658499979760403061257122519192391425258506711681194139222427160379811184634469803454397590124484981182773345704621138406226472153599163100387427043573349933382281216396887649105003028543458792467355801855630647680265292379278110745047413482018940971237261175607659509350958426720779135397150304163930329829352925363674160106957692420091347372587998566711146064730581268124212100659756313263604633907306416569897161942475568100074027854296333551016315515779721427458974722479390615202400707598922715028783987926366469565371028860190747393738485695492085272503763192302201850768445847274895361333398551683293543440274994740972293501327770099977562182699539458881942960609274518574666001199269030694660989922305158934017471398957949653686767729641574183665205606174340847647019256952602625976964930527901613214828240849527542479805427560928346006630057812611934286877835955663776749168825906029639731905824388979170152626353295006774364982272232672304101333739633491947920214300792054094912180076312104958511264070630233236844232426626924626142477600791818699470287598431659304439922914766683030420608412849581280586123863711487598039251768536265535430720325832885337270490734985687246991487063724824071415628153251486888468015156331538245805904540777514764155776010530875234060180500605930014850337051828402773544025358314641989646914562588565552285555150109934949687076570342254650038166923860087695030349694807416121024812620716910894697325844229098554452975484851280158692359866489170903447333014261806106334877736973122522790415148722216337128709737965713838058625378911928951359584750822603403705147993897370705879354163910110249278671236804392481592851800053183571400059260699753708088889775669130147398328811487086955697555126165737695797608003158812349016605881470878068707614492468678115738950932306660014048779666514144211373932780989573798853444563803480142423409109210909432544968416892413737102892209858255239916476519588884677627771115268899835780453251858136076226482923271618420185486245267788320993509423542053903714014867701075078221358725684636432453480825838592794888698036231401387788190205389426000693910679349602925425109895475684408585959655987044434744710751246215052596491713071309312723236477589838888131604316000038971172981119818590575296497706416624170139224594322967683938215225289002411442977274105429754532077405104249032608724572335476977337602123468873167626545467520740095632485339744725153996393054101440244175338985285982620191648929978273269756612090184673973926165894422053520838331898346908620159506792557096169703279326627195677019673359817783880543428998266371444581012108092597015740480240208726511836887011467077658559553645107051409033332271368670580022141798467775617640510677727614129310452658237474521461811544699594371251497435941648901600716126091319474654953351508352480509182297576772868314784698362946324278204498103362648908989138611256684673747043355368448568040595233572776703184488217483121066521303168130361279818108646163318135890547312557623623339043571523703319396719388355472947123160223795167074743454968020194979787839770631705812789572603340077866224829934272373387832117524248577154352027198065708627765184670726724432309509437105052292867965090536947594382562900200873050861514481161892362449991488230447496493220909006632639373629786192719062564374317586451643701447146467004809350890111855733143497625246742438691342021609485802088440127565368782801920855460843351798437197516640416681462081408403462774589491843527418563962877106302152664297976132704880644603021695830363926283925211120174895225887574909569525250625480616775977588873857199750328653809785483217465509744189521697144285614599466276764815161966611484965707950547113422559239071298953583750066028282758748523662254003522993733538476486071715395243229750725477066814596116432353054724054240921154460156754904117224235475254456253206796145121627900548173242153093361118486263623166447199904858987730599692558600297357532065841192894849403662413292171809109928142993258691404101921155981733500148307959122799541659267814458063781030694044810431945125427538706545626629960102217047851563167239359224071851937567647939110253589941562065007556773852272442032233341303261126109713466457035532548936033039128149378265048123824724550781197400110464539886388955746553954146909739460059977903377937791247318142885383131736517178916332684796364642727182896405733804414049113584067026414656520744255098222608069569240787514338276196445889478178317070120996888155536610288289324378977379206845350213975056298385399661956119669109128924327859647598118229682427165557154152806463339797812051365973741416835057541228504923125453403654861477747522031378981885049357358519200813066463413362500026924736507009444303528444924288180982635766440718527175616340579696336572888054381197935408059207561538465673373905142522151553712435853198358305926509285774304418812060751645037584991440065447241607444706706463785423025407228423656919091861161637653588647932045973738831532247472610549277961212052008384158635629884096836993042167177226100332688996122503881061990669240656887904696085760376626816736846169565632178735822824358897774305651064719793688482744155332436837337726332961160275596186856070179938048770965754291111261130010287788383107810951725116382089942016119401300582257337806740704439011149631451907286860386703174916171314794524100035788961321186996676834161270218613338979966058692650211784490013229423899789767921678257398669008131137517966028900062871133733057506099083982389789919857139779853963992382089108215374228749885822950077318843019489038648794894189305118286604485866484423410162558496308737109579762841119182974753682837531844128644869720759902482408054879641254778467329281342909052722631082301538937496668718085786173778413274278960160185179434913767948678904336561335317811751529414358499094593649914914666109804678488901829517873789822559681292648036110513466694270009865635663342999861490704594736234888140917789424781138682897488413844284547767765007468447012990865621032887731106000802029436809570301392251404850974693137169821413317394242196180680273571878534332333661143903256935935282491534876165439429998912207502038712042353382420552127535988868653234580119107443611906473531025237707121026410048118515254655818436902229072640768350830250699715527313976905286444996247709202599847579417158319761180296867538259944877010994392671334806596281857318961593568010727524922974747950230799554132895377645517711944562065076124673794618690552553541357726426342993958130080943625080562158828869186017723678210054521301575701248826701380038360283784505457203190539964973060984685450832430623983604711449468600269855076119024179457973737477203352412319268967151118750708043902453996710515006365593421107725923411875964810456030920846382955016758305728008689958170150207707131779752031056792103175580719760171142761754792735117857240907765643550578205823112173843266288468573718241754871327689978497920276931496763735930288049941250083968151706196074486691435229363957587925258707215102462944629920281137995498640144639194675884699441538426623162514737764338196008687076872634853133067617243637552656652197716853977522416504280951864624656447016551338432872082052965392923705823310817210272521520712581340420349144891266700138787869748301556724788557937771052669283320871766804574706741377019259835708160586840541326212479218205803939729578570898492204931531100888748838159824057451789240101906358700774819302784527442375574550307869635300846838835360131248828765111521097450275237415102767798823504251391725148595611821925655350362597830876820495639876783625990289894700633080953759091029786683956960185213286481039613670267000668070206619482599134694832163245103212378887620471913432570003494504490415614188551374221423077842943971385759233966251928714390931849083308394790315300170397948382402857254733628342106064985006803181548488372483160302456695104496479042566350295558903591127265854661887336867608633327604838595963224704155378156232288686572496383028595788097625229403364940707601115006841015465108162547605341098520849900611769258492732638171870773942965331574459578184192523216343212746872950812168801115177250828685441514281215483895388501790377641768449087039380465743258322104481021577602113552991271471324081035371041296234941271289392921530328860573611470538952288614653289680751437715654469263160091446045956508592180688971850679968792760519664051257969229339106265852109101453864017794496321808531033989239424961466675518683459171716689858475439050947784379056621164428649002010835312695955063798681484914503878984201912641142526461138608303465170032497897702510519674713130209533427221801007853848171098207405495489708197273037001381910126581274959585667819748128600547887583186491267185117062193592344842833466928725762350417509604710286034326100028659145504643519820160116256489255971324964702859017110260772166311285300816941779286578519917652241404672250860604580689227489190034975053803728135923678958734256121822637419365295855841620073637103709404195369446694695035704654160413305919268021552311499326300191854325651055082487215460609881658037277956035645118427402094425903867186732394426889845783009784763047671152451401151021536217083129645730228108346437371020827604106573034010287600105805119093400122000989086206739126954470745558394418041231479743225420446814906833604198423561125739758788901128213735628986908436077785477299399148779995407892922123218848485973021262845974504993670408646368485094237695452239494039832595317845099717694899779075841330791819127570343575701962215467369527831151889288931851583308423402952651271823135926800418258765857333414636733244881831777875825731690907865142093578238014686841278155969411980196285550028766154463039879306634107956263598945819717969055073593007397564068802869342913380193540519528591731688741423004853020514812246248265783271543027513009767255657665706860966227807375136441929324814593211567035718426222264447465598556561194463498953858385173343654113857507971540289790233746036269239487202478481947291457831172178493532419904627587773207760761684276388887984750045480448478248030028444547282048861377898619350846694901598059457645433130994794817691881714097457245654042181065689745910729243049265053407498734381732486883360051205370355024750034385583785379964278775973998836517269861126811794888070355547389809408709966255813168575252248636471522323389687610531329932514041072990830002744385610193671743956542685860398298761025351294196471180105442040964691848460351570237815551923482580078585318359284977427207053655268523388859858914781947744839937542245314132981416093273557619871929218000432612941307147135044355517599277133701613077063654961802780428597141774802083305878121302341050837550656351004008549037155584382738422318345842568117657122944658917799134410128511586738225305184385403806576363925350066801842085904314398103495918450871345061372977041120317002774773571417247398833138162152587027491941465012147101786076338855577492328996863933446629773123245610221914477534159095755463485938386240916979758219876811480240326808824067436824804471433076481746374551712595326673930577914342699474443434663201117137215504112880943363996522730702162312695189120274470073401332149060224199989441048600034249516939614064250514156329153117500169758842279898525409366225845157337113909944224197186769509864596818684739188246455301976267137848385851497694831766032041441427669002172810172286933997772011465259728930319463578973788859360899356386539694268188968344788854512338546147899899487939738224962491794142138967382501083130628182670777493612465972425821498128371677101931826404131904798061965664504614282573531094732048588564948064384291183433473523749887511985311766966081134134996878737167671354528128090330553769354413847879976540442540017339141874188658762219373745508245027279078977183939087287041335036498296394873384926819113893059245348550131650435178220184729434607562317894892392742535374559214687111755051633164439524139479419775774649731805185679281987963691182586995545056908571087771450547401484841146863834364643217243090432921014745820745348576166121802293382153227923587315467785075881396646892251642517873776559480272666195879226879358098302313122407419706053143845534615711640935331229699873944766834739587617309373210751086307106276123813320559226670582747004209391585559792140741466447773520589074925506238596188349646667008362578938572484888658096828689165300217993080859404756537675399033944130832501862796666731486979769100986899729055472478014093854410298335903850255202968908675516551296380190050427761247981020445318481735793435019544506583882882319837835695894115765910664125346556774436061640708396169144952255031114604391220697354895934846985350547462284335490972198049681822783900585421886105135102124041737381083174571688337761567898998904637503639339424874950832413886647455904835527984059664128901047106459169889826775733145289055308332231110223616099521595598795391739416257776088232691010438792522596151766334614943684526079010913641389228883753279864515505480515814247318013888745815291694374095438697910747579052787013552231685180968728477843566143277511864699866861859005913237162024581776947713433414675735613243267958986873418296156536774700555448460647063940613908022671188770539377575360207668647957424392215578120393364933338534254364097725557862175637575198063477386575385967490370381884468635417627383254459790420900425460054008711739458551520189978475350064585974282366469271729072251467536871667756776966624149770495955563998630212678917819598085019521290502959297372450664696687772604070598213239263689270052397801065035624308583289209030260651639293071573927307313282746472707003357004842302466270363725613414367532985550414824434116531827871419873199333036622236201923880892918896292554042381421729003669472935064189453036361004108187512695682547836939222209525473434757845865140922103443403282930478089805224649636545741745122050112461969555433588425639892479267042199290565599663266365958910425862545742679535576756288490506148300958971706194660120029812592560520034050017240856443428790160876199831545018783472317916757028570195505860492309513456265764279364023871323143939675013199035810432069347558255710317470338557426530153831876118973353184652966756573607223121963433424179847138133700853146885573552338951907769179814218681797259326106810757817696364431037459945878759676164747852409219333153915049327202775226845454344425244679562540251009897176112643529546745250084981975007848680748600349639456057684488406613571096614081303287688914615823177131228874345588007133918275160696154275108829384791117807833553244393042723503919543306009592036014524102132916767701195611832098003767864828683199441091099461736426861366239141076063691661128361486275552174496868254426513684516557675302293215063780471854484327891997895616581990790453033798428294566949183239482300077282140362518755464922576272073588705079446394315176885671005388579977554642143803385968594243119336136572205774918326055617002140960000435384886726052745722256957663091668748684399718239122504188341754965268581523128128960313048726855828612578417981239182436607604136133987188310040193268949125676729505608805304339750033346148274937814002186772319327694338355384170492876963943680168395440494636759436540214696376337164446160868309508011884677034710258120547755021169351436114899956764167502781197583252307825482246240832906598592466362394324965235223543964988599148120338274008092543109773557443402661221462943478669853195518259111649778757803562441179574860587969309582737474949686682756116374565366892690574089857717962971566916813631942796527648572575759713343730317890353939610667000650197408345940765513391095909509607225333735253251879057137857478973376872222084174066896582711261461532449490885702377688415254855168510834181290455302926510500502474963588547242406469573441895183897688433117345714553343673131068467436442555850282980242215754935387787019898946572991374994325691805167765587083281848073547918919828397837719628002948598330757659132866846793093827898549508477884677199238474375154359961975582415973260083179016320992629258646904552216356564246953356240145993095502724143625796193334772323353526805543477980136327904081997745826754533132503638148496854540334600345402237318961053719413643020963987972446718441540962495665676464325712133144109024427777333194501022336022502506739349443129005161559697694321367103334019165558828170184422723157000638324232720220254399674573308684559154228060528312822208878440141638811750336486187789096673993326649124454507729130420110708544812910948536112511800864356238100796734000604340307652876170786833521092410011703049847128628234050692768656532097231400014830133766765198431143248108061207110310575142470427432697354996012552013145732073392561454052134029528571983915218858286378722059779904886282158191306091229708952784700306018189475419011400084350474506865504240727282896511895256433681149321875374655204683386722630246839648067990852659499486512773525605586760662302355305206487559292179492359889146395037980880228755664879832016468415900717724897812577761688199073401482747714899913779735746664479250167980890886031328762127293380354655624019069673224922012352778852413269588289184966872673241256250320029422023073293497691651963986370516847437189120024262916913741764606579132314522148210991214035844715622122872422556548130097506066062083204331241160020302075907853216843093556654953695103894639054253508969042996259623781011113109170180770772457460934080473463511805106894649352621612601819724446885153562304165994934124327616879972441828248973984469071662074841245608633076453723927543514516925777958199463254846110091045978867201994640280526293026508202731127453971428221897243381131257973606490149919612881629948853456930825310537307204593759179962568073932811087867481005566430951728355096920452218622831103428174667283357836837382872264555396430812847287190065093381927615458746877540579907452654684298562747613079140808433114326505817256803427221699619292907450510061917582033296040677983085039738539758505147214755750521462977280392915727171408447699400100269690508714493465111027185783237435654142350183925333965014565761589876454982860216827901063062442536982586270894090910736583063176564762523208641711560931776857932437301539283734547142616268179471098118431357067422808233721431200428822578450145436442414463746092255225811306872439546099759241340318713726209490394947870804395602239062679768237869769162396813423643109029610779809058932638872468110516822078138817339338106675420340483761884337868718589592865188528998164339580662213152258548520971392003549231603515031308685819067038866546985156752881360865270809778021056148340112126993208498200040223062507237748124122617483852826243102254428163283289732823357133208910687722981276096451977040525881478357220502605495526534530053694256476803923384496412250745543787300267867282511008906586398858149417238738313749136504269179560913171315082454384046088903549810524629214311804598750099069781788253695532032393868056630403023000624087447175306589192055033002718724536328252052580169810635707667447851615310571145059603006610269262764874472836089299280776039121499631935818839145977986420954235704505407039610367643258883068844302366859089546746823422398652716898334007774152182180892155047211696347259474889599487349576796831069804074030904196592677413476121547929159969119649327896634456480858290548422516081850039131133566613900230479300193164560588125746552327368132431062090084675972677765124766475211570968350794354654910544928081387830986191107237567102521785523281931937479724142516249919459909117749553340128069792874302123832898246656790225534440545971404737607763396203311448578663291951872864671018927306743472872345412874832577359133584693544097338686848133227596690933445768850824962050957659629613029056179824074805805117594117262685061400492437856613443605016531180897490822337616954396807707273143319453603210412796709672844542931866973585915141184156598920378492197547259138789596774275432704790390411826093569116369367719769983612295287955165045827006856117839183198283426645662191615081755242247470188985643553985644356439084194372864184339359826843778531226653558409384568097097122745077443772619340900236219359927972285025522510418204230544816444580766779254877137625153353329129263798121518184209548460444659245470132840990807389163345543771714166185499939772889717743573621562427827179907740177788767768816666008420855503948751093375151337080727661329656717986903550178919660734991385722634392120663674265436735188705772643352634399148364978726189277226791482577444984389469388019273203422810972850197085710488348582890536465462295309478967469998913121154636435176573226155777128711609877985496895324174838208905148872017386210433789986664483122851457661817173178564898884936893429387146454980739923765793392530369376238152772134218002764095329872287150777284187795910054434029639464836013097942454110910666846464266932209871014384055346270518808494270327082584240417992489762276290760998591178595118928838795962560469091259957770283172257634341843426174716598693178188870941744794848630471535376020074181974167222894224379631645447277807637514073043418003487294433738960285009670809221309469750209509400839705775727540016281266049279783832586214487825923156763752698865294731522345393087979127868892454161319311229182760276235468255391138450595364010202678098728340381898946015319799198725435405225505077000657740354165737167401628116366587112329717223802225835889681185716911286062209482012271166264593945855704280703355017896355807423669330004052253160758894863794402171514430733167229574162578404185643231573257620177499916975752723935915981326362824135251550595412570701105978765737031939023248005506855817259401161830259804561718381892714979374194842028935861583342092065219575822342154230145959599499023610445770804035349556777915897088564718647048504532667174678716869696680086282873049257239098541780957115964894773678008961717826465430599938663929395014927735320153532623712649447359111251597794252247181778927436422652465120205999980247428366372808850150270233559646355759879930803492373242051382277393538468730197653738117666011759221048398241104110197316098459432895917893545365169764909791284642161410098524211883599770191590394364723080689667779155645814603264938261414981409908062872248955077278365412705695716975791637895282320631426425267826119841456848766479158963963029304591484980409931484779157854590660307700859971155577974992173016546538008839351224086576348152803244111970190835941735160178282661153430355261146526909866486138324586897247323766873303689708610297414434722243426668231700482975248089136468484031359367301224211681113020650047929058543911307768933859695211351534897692810003459934770473816557541675524528686490580669143955906552472008815341364109698947055804641133886151704788253994880903010618641301870745931115541775205398330490633465313253660336792721918078577619003282051425536553389020791375543738469963459476887106101653377721211080451825455304553122309143837589486515180246350682856733540255878270620492928609169538840743282559111570669553449623209408016469239837638938414370050779136811010646127512488463303909036546919287047299378780825426338502826437755460623048395655907167170331357991350543354709526612177278108394398267162761857395915929489192156434424920943049785341453752444857326597625214193028840299506020722302970139382401282387023794340681677432152137007794894850581827543983317082223455738379098944424746684429933962907472711073762048511408629865866417593306844641424186586542298865484934149011266981961716486307606281330281773801689271857230370233818518880042394407898206308024538588162983012987320692405268312921784437926897102531374354678690978760657199230275414231353991009109534892050545650098199862600793488713580719253309005035728283600155383708666852541159044239513003995982265195944245557446311536042269284111129487004564909295269508634656703715518283049840886329790832858135756386814506911915940972286269714869662957204119786512164097588419874939962570733645620495726125108711783504254210248642535304419174975645142855179688332610923656423839738145976873338716248001270352652271026708561229085346524033384740806352732255049558229730576312582753049942287799293312519670169887284985263371116161644000952391425242027133628249879931985961378165030675665613898744872047811571860449811528292356612694605522435608576654762663404187172072862948531576619999864237966092775066438814764797152971794073806293700552963345394545777375589761677612402869896416166642960261437752034491697371485814552429417709862474965529098682658059933450384713534038059184106457143483594036941347528027798849947877766807642645531177023620792463850087701367969295623309710140192738139003500181324246035986215325458708908434986722874083229613331315869808648823159567263293818056636241535185086606062486996140180394542367066663372856109007713393587043954274729264656502559504625975639385396916211108534058990272519916338978295458136921432547744212937578069713384995011026501395357399980441287543731876723489175113310257264529050838749268998610513440547811281542037816625362136662810768249068013644139629500264977741084413868199967251030434814327826472748184428425050074208699082908963774407596280452182907984045469615642087857313261775616749968665272916947685224608220898427753029962543925246537311699608809632420150648607681593972229153889487159670784475101122059553800199469219890909035240895171034276797920106545306064227330939092587180137055564342846467159844210330221951828193035356943333036056946639615191527225468134361026081474564947576109459059531251671368344241810882081704952183939300120003032966747470409174568831127656705905484694544863155419814960745787301866498451261506733361287361423773093226029885273309352476045817922882080605369460758814055131272101173148931675983718385640820061701726352286043950230894938630088443587881777450470570958143681853852988356005979734058450624086385714158329645459420408844928870459985438342055197374198996668391625127733961153520218770870315253146036699199382773228096245619497948135678918963248900259469932474405497722863710974186791591165230587655064522151581916757613191608534694261080548097031304202643828899344532693330541917883495143353254758731558988785374031686632433707392621443049318840660360725276073103831125157082608639951335625832300592380663084704111388292959274453984516207663966517733663488990026202660318135121092753165207749204947130083583946561339061264737697030784892620218466407301198606621541854442330511682384826223291553322415904047347097970187077366592678870633844870680953413105775940156300928221301825130030777404330925249254620317502654296087091732261297690079416636533367943136322432075454744183967013601276662635218535483617335392159708427193673644621572005860488676616482123668948981269589513061669238183247451242907636880167718156913749618794088384101211632743423975448861298582996044299246034548881873873001772425896028186182002041120680367115747064698658861082682826766447133630100790172978266697121051562090776230882898325370943153652749658669901871231892727824074487416409458573397278510275702999366229318067007763770241890901813622051301796849508434126217644590568854139118796050608773039650963528738113271257417484832084139079779731849453982582453271713774486360621186110080725570912269509247967185271253002729330726044835974532426993880022393569053731435509783402631758919929266822861530299233637117160196532964762393725373229826515145808553119149677175780649858635380873061964288853635260776132830069678453777181269123838267042245238944189122252720916283832170564532985296371936258226002243068218364494752221637151380708173918972361938433801727805053978563631201406277515310385958724541647383110623460397364887161320908721960382337430449191400404479215032941314344823746489195665043075116959909451134299472451580034340512204289560282925538793194997368632792400198067535555938636765605134766192257450873964964007984934525953759044497706475320822414808585953516934296369305528143453834191978144275363292712055640620221894181086557246958818434479712417188110273393754250079567341104879965228672187064788230851708031354828657189411070566337136857094374343629456280627777816661067294390182254432726039936411249584564048165682942867872602223636823704387825909348719354921669994400518481180366809862925333041113858645721238288599325038277172211011576937052905887956464024169772597879524780133233919499381019804012341085273003548516749343306280864498074678292499663689191844501248223830786969066505202725328313571572016844558952237832830831399286983281785157933037224072143483554120552305686831828989014113037624371361062457858069958785023034567867288217386615031466192716275570998926536232722447356555061425595439751830617855235260330851209821461914458551195255338615907023371452286611536348865337206896349930606744178373945059356522371774415094301480518100689920688088608331702381777536830527467623393282854016603060455481967321810377510421520013720942315921831074184422560076047665868018135575034617919669279924987040039182322472825642264802584456368435285760311349787142141663609969295950803873521919990778704742416561147181077780353534822531460359711847451649389212700948452641862047750761898599159469099588211947180746886731038555949453524743488035962511777540703304231173781437197796611436641347449811063830306863310315294181498382373984859156797797722962023024248350248693803026279215444761927676006079333633314433095380190574572248752204092467679253341638160162907166673053352758540556018143190333997016347868234437149473503506833729254968659640097599622481792062112510888594792413623732506893555714168723721141713367483059889458386155551503023814130265158733743314599398061003848464435871523106403536985859173424503792054556287268191225792661357895008589596828301930436183705453738285070164797872283670076728026287991266755436529859777294143432603872507066952168468256114591358390357116815475135585380104383976265986879606098828587994343425601621217739553470716916000229843643262059578115735531696495263309649497198854695986838811592763286348346815132941810817279184043475406803750270165837585348888212726291354533031783011975637309355655068292523363768945521295481379871964858869753811874377999066857438803212541802004923956724940178521810685276912040767457700926969487637206508772255695936676191620309395555772429874473925178879514134094961400487703915637511457596578797100777269750375922794059186430548058416703200931390692484739767356375361537281858509693159145779848164139950101088539238122316922202748495325526361992102299977786816520733127977726022486867061270863260783833602994896709360650361533877586449914069632800314036042883742777666635497188188288003999113428451067885919219901673746365007246971838280330413451864714548149647574453657326212242173822366626579419732526712496909983225138913626547446966417736582505926728480143938034494096561843784465561822591576367537677424083529088001434156388217782785361331133117733393819967881385492544511972383280166270411245109325148117548108627127693979981448573926552542330152895121953689162039343185086279539966591044066894885789343954335931804491760627226506421037375472137438069800978587863029399502629680044013738325737565326251560111319503438850223632991424363330390665272900720492457227624983280373326949899282688843878009458584102569870474039943062659592346587287475678479181486913121476873860844037499581841497259509990819286824009095772905511516522175782538407249349236730403843272998695561171318148912273672653539375936159293800762852072683084397844456985537540179396942103678322554094407351410879282567212070078135067351118040815702832430603904405271478806338299163181745014294150896607777740111761393073769845489400693977417249941009272872504454653075982976705945426037678226552441873506346557280264002499582059543841704367081751637098100858011799774928654099686427221162066527673189925753065195683404515109352762287429757478347666798950143659792792710343851965781294244244280414866256553962062765655468214017951539435999543330822836237991327329721790654207302447357450571779646547056131090757874520316508159161250583708225610711756702493835922245724764468028581191034465179292687278872836505663901007342145875747876234762830730476523664269741641923169922872092810479972203909709850211218956987969910764273392582650325092024739911562790261961762824331794186512345348025322062118018549379371738613395700792326417922417891550241586585105564289073366943856111838262699741463044372282639129296773326812950292248425807240345308432983243823669031834612913100407128293678056930340332598549955837586601928400722732912088394152853340708722655462031859794355149388270470548019124989332372117204842796266736292721571125467096187001475882100488808385033497413483535625936650219992791910678334961314621411936632885199404554939069485593849838989074604300002343489257890041269110348269743410454438708751213957905189333008406864714068667780238398146752639247974688702908893146736475936771509338962976854182051639031062418582102961386485241980503237542579563647845843791163882047288543302278328456025720755548302879501426760625902685766486960113051633215230019745429485237493300383053204321077346937703782686722233463572857972215296034979413736338191675531537733055883314153309152918283816006451970785145124246795434013510981134540275843589916878811972882676702365110998486010855993633818307531491078086780611907705032917423741052608540615585667315449680427745408937133420553544309338045722701026782955924995731560289074993348920961586675165064257540406762278725800066120504997025685398637464973451916664237754118421143791639539909353584557493590652281023270664163534748701434897710268969908751517452762448652509821960661439347821368349767512883082061297595683620829143588688472310300991616606724996905958951386480047565611966446473675232749146429837590748739743171489364845582305461825875616354010510223205652375828344304195974816824679694807728904346131595094566566815750079074043649017911732152657252180858405134838532097511483900327001807248853788742395764953057928895611439667910567417094429199348199776843564608630831662462028954537496914244147194796728807394411918493142764970811879675350648663622990924981801310319431572737739776073593927759031355616152819932158017628894077798049054431789678545875944214075582561368476063439645178676366581722414901279939497075436422329084541877934686404322080333937913858749823388219366666213017986679762431515440515860620421697891609167893202681987018589530414725470258179271798580091146274409262397520331674899272565185758246389057779868486399965755103324173270904355662430171612284446779401213296983280301818492850203005310639219302137109510101378171558766803524293978009313658630705728967979875104032209213716389126387771573438220972474692890314342775673506350985049341193072718930745590270888021839575055188153062197301482619705952779968445458642275916504859094203304393128215795490959457789927733737745271959124140482472870966414251120433791440718411595580317913134773253944728336857666602669913380200166926497405898227162932387387519989315532066692814737318137587454784190750544681809742455764116139341513214898691748687957147017263694474688180645879641009521590309844498360375304367798974814902158391798765067951534446300576321288597670626249673276343967966428519558062703737491329127736373176153519027687251805543586925425671054195967035051939625052460234133965200863931331216174784148862700974540276784512098685011191136987936209365088878254732681921785386950747183803570016591353629028595682293709147403514897589940171927959948525176879858244720493093588810926670401090800361694550601188979907927184991761256828715463878444275681364952101836687183067690325361986845588021462027901720948943062134411526022285880738111229516701579850639682468079843503340468475292009675106105458844680332801899809032126565630317271322785604254057873634323488832327124808244100149293608556226344344591724807979743663000933825431114383616678741085890957431277255882617666792210678834419344583351673642497057183115454736162627234228064496550768137804082149435110110628412700841353808637709566564900094494281374954990639840691090827435376764284913935116505189808715538666906208958470403781317289939792618609862566374818046909670400340637523280969543413567496632479641818936266929285015940321285084111069571736116413468617391635501704637306016277399815664229487588460313234348007739348949173171932064579355583111954544293719090103607724671318241666659019301430541737573665210536455301569917970224805825661587498480205701961044378802654692412556995123510955059524188255661753985259716128973703588302353685624382869718326156972612364640045823898826187791441488936090937072624235703033835075776054736118323242342852764412766451410907340967729405406010136413609860025081612095618587715341864608006609717195460914204137787395915013924083027679361768623340751370976036159950371673033762922652791739990903731321210117990458716999551166008929681711584067847459190596053238299396451701421006514073220290919189136841456384240338185251509144355223086784481266776460159151749338716009868501942115040928694462713656381326214114287236216718902561723232685905254220069573051989589555220455583648835683324026497215552355962895014370200962062026506862707278479732088321551953890512127849297374159217289227742091248699238360448344990969055076536588852179654375141991866684059046128017427384788222624642086242088911342695476063021156810495731366584862745733486712632738185813820020103996221541733709736678106035798941612339650795109806400248819170598804412252847474593986755551469945572899067057341877155334036539877813937212047690951243663199896909322406445420886767045719009824368160533516480228669357956634042300133442405236741865191582836996331247621443303034801782946067744949281077688157083461300729140406563424343207126953421480545289279170080282608226977753768169854957351240834820489652296632515240440105460426149092858060452550016121498287324174392643194012235665037526469856725724972369627855948653028554464270787454576504312241734681423731439108385616748938987237532299380597481021445246834066696793586255613847669445152937666562080558317193511998327988995123867888343059322989740998035131764323828349958752709890939222836434099025746516953668370898476309828641384406843548462581528128225229138089359352711351650849567086638297752083878804263697654573690647332325795827886701286925753327126785822937936861117250356006385386700317872729525226429248910792437115319705546061057651481173598382657390974653096254201621086696080032765173451694550412830472624736820398874863760911645475997009343590617986129870057803486054562821653683072145843499105862838471901481833955981352491694100553724080828969316583451062317818465741975106552148523821436935262424534331913785658002248780594654619888422796644041088981883460312407100955585301438118566515370536631496890225915382958196726726487998483812402765603445002095840622996459052780652552916310525496871312892602475948515575123538053056329611458476934073706827731950310715387582970201770537533606546390344943062415533322994681991143126761328044984965761657832963551124882568866832794823300402175288147740758870082900650878849859734898393733601980045826534137281621688776274146254650136713370044519145650598282317521488946856671026426578950972049739400400722082980903136735674149926068323700431886036582412236792568956904688511051752973493368893132893780140649531956823197667513790431066626962951305205746040172830872656987786865578412035427798672127353560259873337767944319492210511160720298876926730409812430824449754667845841999595569683750663640580775252897317475235051873573957806490377673283464633434071210070958737903277106886089228481378143068335916144094885071758273822729030990253797221761067358459734124355174622453531595265986631639686389187654713871122665378096907318762540305803819883658734979997353729031248437066142321840820981791815607315622200459920162727923253145400510921884704849141714143443464875648005211123396777238386135883168723305685670479536039325251712900509653251055944597161936318714756297159845836757946762670131272303523251843847553609402586363504260500165978854610973601227003603154111448892132795138922135288926821600242135158874730213387309919100308325193410481394570870084027026588672524259618413774360940167862994492717106437831190158443285306254573997273727095718738215183374359677538919384073637923279447260875267040285808422753091572355630996896560662759747267395820022799450904986493013624907917566610045688390181332909893400970576990963711043173472477572305199174195499735960888243589598157860101394277258603195788016072682570851831155670176030335917476053664788694214595963984999587920417763473828814019802231591782162276214610687900392521660908678522470670896105674535008446295641664777957408016225051420405646427530354636371118293514960609081632724461594742407482059742073212471108933229473700467040050747055560122575335500062194906185013133453768704720475401286877463115376930132850279829851752973319546749112571001318261672736943287076872311835144687456545507919117572493981619754819337796891562304659142046149570834896934018592213492617209117580194457829882392526134125206365299609155012906866057334406092108935055701595013419553327317759721047886219033431226289937642888012125283558091212585631149560940614227696181914618225064671017728224462559202615705697997740747615085476491200230456230186144006518798631444507855738708773020014397161710351683475978017396463611029367643553248259082349479339312440238584262445326415106939020570741599150410048434962333476801937647839740088458706508387704278464622448866775592252928565126478420543614943591841034776790799893868084235946814763888430616488073241547685797614202674882628006789433567091073260556863244135538275127944865942396654598279803362374847457371992199129723692050047317173340992412014038376583739787090485978970011812955569741865335223095813126094835977603543639579986157263843054448414929426791809548213607813822750507359422584838165858639321557590342899936572882030826935352869909607870105855442465478059614743010372186148750693974211726398977291735003944576770617438883338663136212665807188712335730449375920826562158858314459007617640542017228132601312936875290218716358751817789522539858477798024108565155286876581333211501107881636376344925494066966251017475862267165658120338321891212452807737900480083457753489533320451259338974529575199760613878072451434852272667000795991174943014845631371792254946602436007982124823804105220871758951131271398470554209200078988715898648402291148534518431426980842692875229432352053880525324450307634556635049657054773252128691863198325521916920409655152686137365364121972827608359993283255077720541582670741742447217307053248977416069534639143943850604746688738743407546504484312484940738359795153383515426437293902545639430569379525467901611855004200697699338189065104136313729640618220446551284898810029416602684157717227885426349508410208975455513582169956024361520063899063624291635011861786107807815883755977954596492779107636278889805125076798547710790835054942071400431599705960356728486318996446156628834033303407846282504479547686163854644585931313999700040574063706653568702144354856787886348249376109524915389168009797934132529026556928520758547592826937968907417131553297158993435867788334408323794693476950860428186729701108882382233821432312976752024590451649982434051845372641476351568234658580735194499345909983393229939937948508453334996314065075519587305188617698733276393451464316136569601668337194200187528779068606217053690365886323771445420262791356581917491245951244327920535252814155388315606908607967926866621594472683670761965897665519784802096953756782439515418832755840413388346540314141238533667741857992394160513241390564047960110311898855472158183259014088958918938345122858652731555262106241751698391341796795656782923834228187236841214318851415195870950726777271686512755171800179463201245373305085951097030346550461538817275854948004188048796848241963545850031981971078883115489071717691287063677156564535806592081065467564609731597253527743433378263133307284435406570724275391968840426277847124526416107856429893130283107413030824926432485906710542608481004541548805685248763938316810391282409079245228920583973869309957782027602871317060852188513803286045557333285306267590436220869358365835842465514511569351469302228718884244206542701553025504190992578941353735204342920427202342727271328509591582641676386110517828583697013998430600125898771675314808011743891588294205318963635470417355501322211706169665562183176926921646048043250485679477287706858487706889085777269765510569180854110411402088581678907469814166180650383365058841169861538292537552900265730908694469298412899445471166018482481554224873515015356732216091790098218778503440490594066243108133973263138760660732391464734006741573598187516800461281469565749462043531504775776316814564666884047306723770186168386028444851607835231979571358932702474058699523292588146628672121418365457105703739761797995613681282076733214821510699198042058747178683205278760534334384730391651181427286764942895135925310395783682068623274895799165530255658945548179439557175043687809296783036693509511455335395888327951712658061680376313161818454551347475175003614759214495777239871986168127551639046598395655300592378762137304186605134217212789080037105179357384835578945385098575288348708150058064567863111966411188222214666984436614257764242429547549734682256808852877238174551801641518026954401250483359048335401549109231399534142046309856724759315730434798107784923751659366353575600173817902940415048848371679859644094956557338297124931013292526713768076891649399728882059096582381781849417199183802541489131303934011075780468057525763886526093396403500717787602222687155378485952148816154372044430880550795854130276405309242988279208121959110458345872398245316950104213172795704025964884512172278021384345383041651953998702772332420760719893110254702748358669296370598294387418623437591001623523730057037819425259270939338049023405960635459185092345182732253579127237249115394528593845060242839444160441535073168793708882392303685909241003175359458603326422355936036812680983662829689749888142924113195860437796898244271713989664713262759835408517935227249384933092148522988072098832991014492507944960587101951391759563886426738390070279833134445109126486178950545069161822441129532838939302026561476838883898467773078528128281748649021416227407150301564027978326203512572645655235924989695709149977118117193670469353098113183932637992630943006417298511839995860493186478488440761927075863677986919360016253920142149350949127726367507643247612028573364054893764297272346429700976140144094563511857880303607729364042468879510966735976953345198196104524135004079380576635031456481061208785029186455495544233411964230021248252265478314488369824425884620019037863163382532667586752795183211830791123792856418161872093747500924532306545530924791820864786770149840307938611465896803154287658158949145057024704343706718927138621899486873838611472246130913639202207375842881963533785146009615825337882058309220376014951170360524710866467908606898781564687816754345602218715562671150743731213481230462667623242638397863426111664133701412665907058703682974921252079086993169188600009542889086187309170465073088289583555646052903301291562337770392765291271776450096558699121737024314836441103718451044295109678310448382098790282704987960176809042165228012901682422133578602211098408504488064873408295986539909941509285824910560758911455572306426616021367090672805094137270788210195544784030998825509731182033157007592337820065692148603239270293172121813408499278280759868990965598268669195851112131480854928341819575371979114877882469898076950445380905763329192355330194826984311868104431121812320312390426659393017330158403480236955182402635317418269884856109993121658474541426025524099380289448111438952417667210356222526245397883990616089421823693578110549599841546796478193232244229464511969464683781912974489853174652035067172449858636832600041230632406990723479018880945269988960941431377465360668420260461112636061151881650083483102322995112979693322294592728478611108201833528914236216232080540179783162439791364358712221374054221601503215033527208762877367712827411906644030504947369198305775627150669846017984637801536111772475368985262869264740762660243323762912028060307429599195794098938752720751108856211570177452910959709894967761344895820471175406102412847966865982458386305704001480778281857405293094989402843133774809591513514233558147994955057822836810574390455855839457166488719774508408496322421572039996241807641167142446629426530225878667878782401607680183001144321440281194348125255862488714980214428473389820615711301101600911589092130312313641862363264949894957041774185463819946698665402046572886930923937591729553376890936075282087795310106721660062553469821548585553976165378730031446936595494288140428292606548197227104620837385093262652402874156062372492995794658674825979993194004266579539965836834875537738725197180617676195025493310442093769915443354524013990163376072146841741486384089548243088866974654430407295213934251248146180263737200277295360407027535924039836730166945850318022430006574012236721321175661791601352157122679743564633822085145546402837831887032990322578992218026114933635008342747245679041188800873288132618228649048005454761996373694063257513862037170606264428103649081593570676703632702427625846526969764874822504035652288390988877119745486127361064635130947115777496348591764377857921105389045500386222693905124865782616699304664438014288860379932655018946001944349619067060794153593958314184058373258745558883657417896767750450110783068244635805129064796990694399123858477397520764200974457309806654785993323645009959658181177174112280170614487900592966824287866017254332321255028652910696129906091233222332984982734350981720634909246313943571000471693570229888504609663390534088799483238781701396583165774821918328340592619897019062052860801591069605405118356910154153367513635777194158204342897361088698423584491801049483091323300909471614618922115604061055103789037117735945460280266550864348078426879865546994631276779435578061490181805220041773416271071429155716471405861801057665354337324134021923489054915831198642338991040249986984580710111443435551086916293971171712386514946993175002063896692920272778722963572914294394237938315440330854607566127618311200366088026977782682583138606447005928065881988334689690361965472380252537056842866585075647193686616612703406322444594629128098419193917545037908459594098087647334113407334703098408806119399646684709589567505014400312748131320424624349492292413048548669585979348576646976747656596160511140421521393336614481605802406965717653920039558003489952005811366323917670015603584315007415602517551725128058056215509837398266242435866415018239518209315738931709963511155153451697127246477677131103464346857802015248623128840002040252346069358779855818244329767351394051430111905520219841027314913467460728403844615441091772964759793715939116793523783958814283926537318156817549133319198861453485636385590676633492778034026687958745869816925489193247447641350551309523372942371704859980154115119697012004135108387131160630860568802411580634666025863233094721185543961554946037546744171619495247473638276743461588083214992350077609811137789563807529170924782717842810483114845908501613728099327969186688129233936745502753183251638241500425057794141925666415049989516793780862703550882970351065091862082965867359938252676917168999792589814844562277408910749002499443191240018064521738150991644988854504937386784568547019844922661538573583925854182349397350843417556271215244714295648375200725437811957102493117734118647076760490831953821643104945899846302134033523983302047022579163855737662118851009860113015867760066718026873258607820404452653688872217105593495279751187753847280486303262976471201849085240147754412395308293421608008650518360933710544901317856187561834433232983392657509292191984046869865666655612134430675908059813543877839491245556271292335186334788925168471620874905552787074265473700299951630736573903488490956440573631268925779704088671095058066964195117782747244453211246410041998354655997477683787135283615632374204628870635359026394280503879563138333060466499153601796009867252216949267375810242751199257704534076103083795752483741429343448570926027831807235345621922340148241366040312299444071836465521320757794934457063218938336737513891362276617013828394840493066124704361777381483350105429434084580132922640653642415771811181927307467549201245947981975475880466906396936405094644642240950962187043610235310391699026847107720656135871501311923977177243412013019350028984942441160214467001491114945664101097704168280604838810205806550129010761660940510919217452060801017999120440050245158486748234668638253345243294046854869384603354166483981205990164526965369312070052872840577074436949921034923763809304331060848583850481986388023748550091225056526593389111800455329290375279365147925190608338340737808887763564346161513479181174627331449767737083384944557820552461681929382454610553646642651925395032254607029503875453368362261927150322136619303301486251282336345529132130243501819672589633438661958588382598373561456774077097082113189958293943058012106337665583659751357811261240090988243413208750770598217527070920296855921793200761949331558928683482957692922036302722276090363682592446814044851194241475086875265442468303441136255327950427841475600226626140918604796427614277359131681686714607304944242568256172779191904952411795191746164564573422493155281058389017198711517381590453864302216675263418860171451443377210759082158602575977935434209829296930094241319087034666437805305993758984455850279612544831938349666877190579798064830588871184589848457753390652541908436838559769819320836468475558314994990894961194687639796708240661566571367139590250873565756837534146487384500502387373069278320329135930801653524876692926630958240802440247960999050776783234417334544840801685399072048095710915650353726121129829487452008832575717848926643246466560473197849176032521830962213007619402506157177767673195304036481644824801496395116059684962988083518044932866180024294840715948224697326241076282138783619428623935495825732269379709497330504418993804186334716935142872201057289126964046801965790988868621968915582414604548434093550364714753252786496221476677209881103927959871576009928209901944105466881246461137136199812050257702425967682348515632918872564867799154599379338126169237086473847938138694721234509032745624632554530764909268315909814389605392551072562119083035546672191335291345838414204517677855172942547782595859717373519805736234003493534643920466279521543545599223349948820348886611842907005480909890448749306427486706467924744864060932786038966458501094070311514234902962424901430350460365557273257060109476959152886726803233362694388211573783103498966441691583765652330524465183392708420848429592228734954549543586952962812577965363405207411351003228120720868046196702622581720968402660043586650081145707405460274021735094262870068331687444187283464049781254438697227662341346117720170524872776834095253713185190545672521097922213506604314882166296521745596983499643188562574589840441266030492978786242215893778013874387755860525566315947694000513469301030357324340799089926630058759295542985995047119827441697220789798131910786346046276343864508000005456652645504034835719272047030422305279422730249203185550013442597446075339165031229655007382857099057527086628204937255587357586787233487563646478256464828618941935053137634972035628433509834950265737235868642967249277104283043618228724239803716957163844174461435534522669769464350986356196486078315035234550950887479121390496353787159846285396172887395283411864609410723163979373103546013435623015081000205311792483315293335915667651516510658658137502646740485234766790475936852803298345492944889463325034017241967580842454505334431533406581351004800308363132348207362314804931922003985598145375799967321555980235589196577728001058627605792211933688036768214288337766168159594124020347435994039163176389418488033835362201456772222697336717902749027769492832242108222517369993739513096547660563565109766944377774938603177086299035852224318065429974586795772654069066727270751509907243694274345261133623047803064712501867265592026108911100057392948332522514189955669568974129853401759983280247405424719531738028522844499067312664293286230102348608775276071842327377543289680132572712693274965735017347032584262158165162635072636633983879373775621683424477571405580004883839974461057914992975445730445526255841244125243215404590745315310609006541023089881643984930252115716406130158696114655791474505664201038622296660736064342625274482245657219615972793903254404437624308084135954197602002134301090958661037937676653828192733218929421518919490916397280433974797144606860025578674816554907981661386900506380092204839924475616726955069677416732975081384668238242282121773890256665994281595467486002720897203704601611222762022661065336107310180855002362243430231634097453786991201627917872892560933160920973835735139823682279910881216426747212857652776075522800132599737182495329887363232825190772508250310877471435370205722412992202083772973927793916796624081400796738537144245638718762938208627428405734837885459705155617089989937829380656062131062249564813657204442600365429248677968617518591971105037503715739887514573672188516597803739687731166987333376957214749501813881822038166532578989726188688614550499062739215719107037978967846303778682980796000298924484638731711511298361229319656385124376733816443590735001065179187105262198573427524824217129287142688413073983243607718203051705769886941075040544335206192093024889425979833032427950897992877950070672204829443386446064768104778549782372377680411414642836303938991968619252011053671379704374444362478617409951166711246656590530314836941949707425830853343543006595669065244997109124533056581340301435343205732751318678534935191976659166259463479606681522496087462486101031476845078982510468519249557922326388056942217361351449459022537808700842897180553026875635130527740494980230776334813751342018774210660066782548121558898398040532588872863700325235229168856925485431745902132256890236800788618178415240257085133833786133478915603543501485372029742970485435298773502993465912305239243885879825393164865621423929864878658780385056673059019741257348390016623813963840660636876658112203155585825371647778543666782555859215898497643086412916915647296928333107903691255035836101160480919904200060924830265206619211795661581940577914260969744713489319256606269620025133109570955645780600317379959702175718982420627286213740388164442567262072581911185551254373645121493270175841595109125888212549199174663055285315700139655686505463988454428147419376431198711433638958951931052003470306537265903788928523613585934577691114583650357505507138776057046970119002828636112240496383094069450072335440179198354867213950717229514975214361883853687016308911392045817807854637929722752240557648852406441300562671513097852039432235250143184201467366435340561624152532157731144662292070509771344895851952288319862540638372098532347081333210425631378579576634149620690053419994999203413026587460074082819424991181468775049475669375401955704876598463175820082443276260376682801547863965134447678439947473662885131360070732247539279674543736914493931694829128220237014422100915961645132731351158872964370409682059644617084910350958585324073999408274949401492658399018991113838687553046046265034527441365587625965711207317510081581501721634966381776883758316573212701580049981532384164394569695621906744190244121323212194282452676689981148483728275304115180669960616704645250463376849048377616879510412460640425746891130042464901619919969287089458686806691169040346374507061043111368574288406939824425393749878284929121739732549351783849405394661596013353871472051968716142407805776487197573657068678801591245989692527844263254908888433942729935027992696125532351024107553731083702260526287155475835297840246309274967635220336158696110458601867183790287613685488297928744794230963691346894162996326585942336486514155501577284136651136086921030107777517232586336657719008535012236534895196511534421443396616605341595002118825492090468710994676261168292331580990788794102713195335584735229751543236442154251861489308151111122408965300581025068950064166738714631134636818681046176623132574709083247586891404133667189384532404538528895995526645673647593708043543249060757366621209870775485472048056562064309043523380248021622722971029811169108832904262055801123171330739813084693804103083638811574399345969650779195806382444572290617016632048113929038056616675463566523155224606119486370409524406802168447079448580474126787804529446894826688282307764535824618546735968870330682178123797914846369323311958935263362182346121226710117418403528518158829446147409736519087828262601756981818336067987670005163143719627759217608369799575601958209217210814166303383362151714317203265361868537648175619145504487655442511777429152893201366817672010196104203818694963477726598350903246149848794718696863086219596404757690989665905693804781067079116256772954810431656778004129196205696218460877205423816286122699001349411333809232048629711870174213330980726022422054959274096347127609879615492266304314900119606109665832766420061588638768579613647303344451866204433943121758923131965847844390791715796744794960969632947474032302430886568597303525261790407264630894103092478290984062762805906797781655355419267881668639027698132820601179377574330302886813786724464356669407420594742592923270125807109800053385519298301238475003075146131970234904349159189195358460363676770354950092496927615412596728339776351183223533285774832411653535352149468675072872325887523042360367499184600244630611458338346400604795564938397037229995525574196377013860292083849112851498149187067715707916476354074402173895831260469924163827370639473056175321794274949585721223431891539624489425671012556889600578010380718293208939332566429134102000719130301666036927308267016390658100081577207083824043071156470759942393062786309133449973348654809026522070216120536501918113176046048341015718188671095484543717121650967941014985581902244891117456638641585624119421444881248810738801487252054407738599355501672091258779917349489995069029882389110183951220372906990324310152585082303876510678014896617744500981412411516116049239773210873250452408451497117403794613555315344762772443861782240105788866085366433596753363051604714363058518361597927963640022431029052759311225494679594279438032999216685407078862080762711233548370812038934078160069033050385153324810786380904871078475952671182003946722526927345917658592800745176020302886036193309660548360614535363169621614707957156436294240074430795989350751483098430633243475064463831248956457328572537296547951445642855429563390837566567161121796084460333450478066274527355293791292529273298842087932173242197426446828140059528492184839649169418631710646229538546269366895518111838320551888171086465365624342740690283502782423304557511293982857664356815190105396863419816054166992499142782662521379494294852684713471173642189722523480653293118896777137898479589346908167463662968733194032962482223811272699841736945647563500490399925571043528702682867000475709621022931196247173748433691749365327467317758285875430921390560767559313516988743878823292749729012819384941620222995150490774545918460179079034388503179074184986614068613940523168844718774350232401292398428394040100385923637817930578290998975845422413956727488880024382089591274102488663736853093980173038746301649954250587870387875586432891984696976994854419224850405390839074110743683035233264425489647469346634176604168253185642744926946920138514663742849291845904572376473274752815927690719842125240745549270146333561058401605150105349465390193827616506063585895245695904012230947751540143254406893403948737070649577452635770524287066304157062772355121295552446156644798976366757124995359988888821210559244613579121570666476472912197183887108353558878405063291186472500424635435296225932629875101098438302647156937857273679057669290794094074751385001988416440192172615422967109074539067117934820118690649805765036716666840751438801793590268739396684543433517085999320842452366880784237820695041338191016657592630166236400338091099732689197540342630999326113501636826329652165455982461704483881368137508751944293146497052614270686235577184111963686706188495902089263736958060820428131615513078487653443983612845902812512959185582918610456049632582875461030955333987886303172802209215182206767800024917403064917375236332974951103867971176887245003701317199271251426330121833401418380263814219989705107822681813241555447977948068274538227286927760715281696892604418490960648588737066532724687884428350428591449786439881794070115500011855772762852287406017966481105060548489019332522215393092559540516677270474335797721187812688306656603950768893083604269178503232867222160719248302433016896226536874485576094576125061662250135698938695273028404768387482613730884625043674872617469129408858511719835366368146871310193239490743216765780474070185043506186440938076520673785541809779017628492692482549406881497056298568945383970800341135546376575572107061220454060728205482022089149062691631749636855495881169472583357513187855447389975379214667698171410896767554644930446863437826696146525578551084701213749927308550443151052321356920874780030981858871815405811815741002933039533720778885081787102523249759220211448891081466393015537152884548966682478760696847159976971452369038563954811722382135465325809093753082273187232956198636830734355512908529386401133654969462644498721024572309948793469574474640569938271852637580177628321831009501424892308277682801564583074594905588127121603116711105295402139479630606167864133918785454828179551126266911717975690841578768855487291132516747529873906505460383961627583124764953506254644163919442339735391715051029147473918598552692172662945292629121544826548479415812841670328016061291120928887550156038666955268002368309307653856876980649379985164211690902964497761930621944848215313400784631632869402013512611923622624338443243281788917827303679465171542319913328278831184796091574638958521330528323549103538554472279259985705705408778418846302985517263331182798120942731836499608681117959361632571429061470211249407263168328231075014415798631422064545418786261425827526652595204196229178743356748549524287177179605061542934573078930164777787690614683053331882927683467834851990951663390704824074164463572985660892298262481253251281464445229377466390500307639677845747125975037890135792621450969713926736099560706855650821255444147892962612528331794541166059561696998230183015956302625872606218352155999069509464622607045523706368201281766938991443755577154441110848223423226336852172265507667801181355103323046247784698701525581863396432935112499281059011957304749467472655904497368391032928959709254209819240331803890372031325255083425970644680383595455247044006769800143715373062110580250152546075482352959546584093071015491913419086601944151463167574105180403036237907920124203141499475267009230834300604466136415955671827729460624636811775439254666927587738653001180609205093955178709356208729869614858696112459667112653040156086912183502580683440088093224258427641112833802592975214871133606178639221303822785070780941126592116232294597233267729493964308598152597402218538915248206427817569017227497605522562314355960072361765334471164979398891643653144784147882914149599008603635376841626302204838910872400770633599530559025969530171088782031550096678843057867744251017489514280059974368794696883591442185734306964308477909986185162083277198382027933629040111360508114952232447321929133507853627746766967061687132762204808814614978425579958189682275968604544041364828152092112777447663606555353392726267389976798463542253609439238867143156717791840316461494619635994703362955058019282760901360392511571308453005103619674889196270083130104267088303970793992149350019922852684454723552230858419951694864927298799336645365038303787223322139141527118710463435589999443573970790772981163715911828068287319132482463065457532081081562257475356792285343679182906672342234566690392888571935910178080066133754373950634314162366310382850547619686131654526273842328213024200405478578849616794858295300213092395040707742442077672711020463918449735800416537965861414080125558403546402359171022703497799264421055583719545986943131524740464713099182358171851601474846722962347296855071415077210590872425733779657747198200371793551061899011059634181755816491795172732528954345011249591743067194029854398948374065835712067271478598298820527200156862590855777073744127019596634031106710851607303533992720302720498559372629830574085335517995873672052323224353120543289295381132398958342900931203591003913396179881154480061705526188819462421362521175639968084216327720454835539097304371456644962720664121750085563986511159595086006954555351928128409831781999427278616315221181357297926708224487984590601059763695869529533648234804859590363281855836331240799997877649917981933989317597241653866169815940923471543269006448273261596499922786229337147708090068887900789143623599779309693114485703541349051039628760013519523148823374680162225004920145717099934740787584476014281096953269063710518798161473589370502094353354122125767402034303563995012617999767586392102294065232716941487855751370073775193559277484502419136576665275870521077094343502012641570466633554091003129769410662879975448229317148791599779128748152271946718953825035239693201524768218688975907532884280527005747176279363528781031008959683671908356184746280880719540189605272284013796491653567087119337685346641452258039694868693402842022750019671795770208548225697018682126346856331633839247208316753515530507031292001736702555398031462656392152865855830511677203180677418749992185488770062052193948376489451389812494405805894807116254347320013990330700766424564143838055638675343370569190673666765051171085286711745922236702732713754248407719802057406644241600570081064410381598123365629818473110283779631527577812353157751275794011056063767086636587867829640245745570580090813406910309120710771168673766289926041262970785239537522706046306163706479313832992965008281112319923477946342011349525061237035225624576397731648982436681440898718024499119246365295979810806813186230060282864121190560444390013804700712393245573887637359098988802706462753288273598478222572913691921570174561936093169754522609051232209941077622250908879825420104516225913138937584158478350846012467933103191975690707704455599205854727093713007556430503358223699796685034273341163873517848452574655428834390032374461805952940678620493263333283406763330744127253906925561925866853971253005026152621054162700395566374235556775285157696910031176542162535280905608867103045670427751457687038632283557055596752475334414866560376548004167299383669065369219871305218799056893937357049126515433187021450856643656008307666495084802920147437385306907242406258900740756864703807979709242463375699202929209527606384696265667877912784552330326876185364434686257426991678797974199660162478215759604485124772217647816303564168790016479605766923938959827876929663737211720257320369161642157186382565716359860148701498456471052674122659520471031334734027588550075104491423927442544604911353264167435511809492239003585619217546089031539162093054577846174457977427613479075353468507114355519736543186846659339832037954564609871733215785613655979084337078533025857404151741594908031500334082149170703059803533953123363891182479837823636503280997316777343362299503751753085795205704241940577900934655644093540952894632885353429487219744065851852915880313396538156474177010070739351508705678379058821967678004515625171714000494698054263440474645424039762352394949047454650005068985074840924245917702308749480080984298852788664472916191131384875757518564339449172266739633817943044110719844367603896705723989149297713309629812260010300730853089883479861020936076851891541013709837231268201650319415410224202441677733725716766615272294253176940296939399718930616660290373148926496846953534678755334407484272059722448950044742611246834831949098677405702824541217709752717621387557630187007286209871244702529454967811368464839993050355374577819176568502835530996757836985766165058035005292144760836156268868988985054527530122830778206374108915207253786989676415091580142006672014190309664578472121156986159316305570878006695935412068654509109232769013449844050263311450274015336588845036322916656064660787219080768942300574575205653288014590174117275308709509462459536606790832997256680576218716956321433554045148011167660896634845262710594389627169633283752505357724825937609800166476780964973586989645011647126619785239605071499552524615904560106178124939702355123014090790251827875384364424556507783042213011330732724716046158027579501552853458338941670994243635763533194747053590300599415525013834009279138305857939382539111474372311224800309188390712235540844500955079402688572586058980460621643128580855441181435082758235325994258168401124354218407672747073540709096119488933791454092839088543574861096100901247842047421310860866812821161142490335133550124513806189283433389412655404426893528213132360707264044794441589782766587963890174727355498121619296685388951300242777183162191822243753125207826957487063920158262467178114670356856916439666619181758601901653636908130283651006340145299539281870098067199326310137867365580366195931880864275930677404976788576632661741127062081982754474872965046213357710100670892585881985933924073097814141809919442282846105425848192037998146202678035373068119996837433517350535569144027815750731283564876984693158329345107461730222771558744913580066029552568067803471133732313775301934764382767340649225655019165159344926621376626501670272720595223221737109800313311097395286358849117153132956704664144653425702680955813402968965916582793818519135562496470806825658551061045593464078199753211837058604946436483353518141244384610897062599826942264734042082312404271324887009647709309564814746920727579323702377586638108815277860348643678638918618729601358515688064127175060825882532259423501051748078110855909922794662866948234670100157382029827443403830161090545697583266964258644510598753979191967511784233631649916532046927080596787610644835340231606650218360586797673228432948718417490119564957628082194495587970367453031841662528374688586397158874209315536336863604111458571974302340359417482373561195430354274074980359685784540770972434257401516875118920963855101699492267718704130272790319825208897905854868068628809372161602710760686229766092558623841732400769006528552542720304024486722029076113340791628727110367771628762555731684768797680902552776365655816968956221713821704999776791363543804119484162857367117709812482971653615141711866619812684558937122398950284983752347123771444718527761777172567590047355981330555725706841276131687669705864556710071588495138022457970147584769367245686429713363061049749760375210458349149530096138068060453084018735369131138736945331309623381554429517959882966144825519673667646923258554437390433349502060733621219058164238402203356622019600192249185026484862672112582933142947392437236713504166452121059768219109987891989355487860573836979256047352117836986671866092219900402830513838186014686383627770760204092082193208853117519982060006860866101876726594816871503024652443865810157827629290896590563849037368922330518195354140981428361716812494936873431537407927097733953734117044459660536351827900841256641631629231162944507938521002697792853803608070363284719327654346323381174591098185857938520656601602110971233736944490176366496754771337576092316563809114446342749197543816227399722085598093913744610819741797296707539789482323963299905858022222602957824898724107053374614866121433075594455856740498998974035163359042303370792428348113028731103569148256222018026886247206682181154721165868809292754826451162957455841474818729396359049056158333875044500229416546912540535788718141645061785947891303176728833897153368647650930169451059086739475652705158231992486891508619347716700273878324524801114700639429607646089573653597144259760808508084797915866363966521851245196550253492768309708153687393788204835589703754749970292560280117699976079359260363872902249673709675972513533847379562251797552157568443161277376657613300716430413526890680396953836005976934960576075662317486896077015419964355895223694312996375752234386928724471903781995850774376088347145510879533898102517681501260691128500199851942702361912044168547555048871994605269514837022447162038453424677555298017760340417268563469416361518800016995370233320684139467029968614952451233806874535352153919456608414213947342734785991601206468344525854645576332485217601801379928225046530032803677505169113108523929719210098801115068045211164495414055049933656795603168100098556798478678615716632079009252599305707525294967274589450141918019964351042501987985085618918076576536868727954410799282681458811271418192011463869588712174979633220939335416478934399634753162019185824482017888430752553350053819709286821450616100705174072926717553627236321987583744454054961651672167511091793235389651430108759775811753027189977421806915998732245893486948375953458382902783348614443415591170984350569756581146156842292907038579302027503613747147892936164696505378081602053071489274704551858261632550735349560830315371537199967156182731385543626613466696021124647190661578349184139240236469383610004082089077960901381950840238286496525782632445453220156210379425886367768914755081446834169085289874447943803463049475468074818265377796257355094923014209512270018599742616050723883967404773627361335323472594960854447178051764847058472887235891863088978700923641832244359067872867129010239093073779698474380449929120905680733389539843132514797814239083751765721497359874237834902622083953961134888563214827226876001789731788657333835077180547675742400687213940371178191679773722398718830508149176584703178976373557407421617890776888885711512309081830324993911380485875284428052606107495989455382992481672035406722912038488134602965597726013818107117908386232685893406794696517274512854637724111087343902692183112996126446322052402278878580656466523354232117109471342979928058291382654174717373812550620088207617835263840503426989281117308543713643366374765297307583134735664906939629547504406184032134738115580723165470803755630238047538967865342478775402257126378530407684842067488813423056851772389017737124146302304849364564772966933006708413937676425240781372744537118322374982788577074342697282520879536102444163892294519028917186897043876123860648249575204609229797196643247020160717069632000167228241560269428380237173249991143938013019539704759733286281599534497428849439917112620756316842584028439420973844039587014146770699178894452890037829489827598662153366168140155811770031577299431629934481314957378434968016933891665292294097628790364254654689487735156033281836167783565588332080052128819149297777760649207536397304383628083476957516828870325798900038894187873534292950336916586720413061278854628341657927339634693903013269171755273680443533083223706037633690262281946877290160469474781201366076229388108706608280406525148498324287602238535674718293104601449985657929063741273463518985956812765086003328074436904409121002993692382558375615496837696655643149360649667598529629891177585595594241707200899467381922909442477296335821710651593355260634244505417064701742300479337807002117268646882593168135869852684501323074382782000300431571622006065647558417737189268967338179722104464217230632724733512317904479015418903121751903969427453185604469361253111084161067304998240309494231419756944603424626082682033350346269980525222624922713714858602786246902787510213653537014918833934710506439957981151144743232926006505264722555595083404673280562045240452246346774065022799350206186516892386121594744069748422183955850609687170052649460222288107079218612288911324149714850695931756298940411340953499041693310056057879927427997166586460269947824298815235965057783842856356625317210479235307881027540891081460412363928761024494096584232651917507106365399482823764934049220101607625941332917287778873216692007229075476378353639450655123700343717827744770414131011541943288280541154898670921087002538370561941557369715076010108096103929513081005514233767446732582597034603403605751073667834580971360714289960778715240621312141936320158634773943693411883245200380669756578763292159079102906816206274895080271587036670562034516472915425769389377097911049643396204371507670843501025400482153653167302951224123730598688109813095632954408319013675242410188274302365716245159013598262900590489969583850136815029835592129448883171779457438656766234555372857026056982949113263573238282840043124540304058049099879825494252795742823687071850273228550546867166757017317499729776250233196907347440294428714562563696658022619934095687120582658387102165439345961198770650242924101747537269851929039455077266654418287691438928288340497863342054754455323722203993233068816732984078346197553131653952699212396564649236303133319129939983635885409109469037176580875226041489374931153285625907942685442060288134087115242992738271943590641831060450385921648875842698596072391773968395817812918129290429142805561361084386353787646723269839557265928677390415658544927978263067090315596825008692249287782913060309793638302723898852756852867010723498560400509757117414864529846850846018734422785326458320557155530147104244540727306862586535645202934787111705359685548316022279254035790543164520805886980585415507186381425088319544174238879211041320800006667626026645042005445302629568492598605109329003272615805991528090874544555912149409319233343166359873806643071035732352860406869551894439387291889622921601118997371753731680231510645233968888435727930469207160596929725783964145180647934455968988374045640353148160330907504073835806338523965789960960003789024481931979640721215322580562587122153080748013356822494398613615612883159703884119965505005738786275098415019824184581083650055917446037162136783675664410439029644059725642420303707298093039445049698045744554332153297523710187243615874888525621630135909305512683820931222050796968973431988394338667154444340513765274501600259202017197516007173917914300500662340568601958550924603589489919630124732807277324821229346736681211758264467395046448186648506364915386625851652723016291461662061385042661218091766641287876006540386489775510223685631716210832953733194969165258499620674579264315862633049790683072104970364593753023083588712033549619768287494691843430489305485891256579914822522788597706954590227721759474741226728032956640069531412363050350953032884264601324852022908029858575327144782874294363653815736796292733001452817729401395519954566548921237053097567664690439984502014995280359662058485041557213051461832530807755146949170878896324129068219752550311014695237073830939253528630175602167108701969441917603004930275464229553158441136633502523424585096483631634971549846271997270377993144283564887495221074476946077336241533072213806792408600617252175880269077460078684085933561005517615620579495621337998504149002462613768632783893711038404008557218362501034857330708281630216806332050143058977892410643189796234280218161191101679254298620830116502973552282667651655828319520284231514324272999578430590457764429362469640764402696220617839735040352451949022263823856171005651365954207651213386464264857281392596093358296257797319983767446349554894585548029277408664975486937959477194590283045714863214581893368169777559242407160163241663838549125544618669333329917976845704927590727974187690104812022299304164212918492782790596415104647276921978734302330134403949547333886851836181971990114597780838805699162234245947677645223223511734317027952008646462510717869893738486298999862431500440747075876358490617226320097920136496939454945746784611877641164412550585340431834675312799168507212121242152067916942640038502841817716027077826951326155205706777250938266624370731673869137042350451979727871302568434106207429601084142487603366141786573480155894118971229762088115535058174127229222870152397398472841443164137958824894591940622573122573819268989986235301652333994512831286773409748100788134892380829278358602911403115917254222026195452257369329023374692865821360477569815176704615365556284499823583474491597457076199984425906573383473691691570925399694184115460349334855223875599473021915213213783728630843842514773893303450808276273060475460364050167822471262279140528542576028143388265359609324882442060414732912385617531804060115292210484343107612052850248448900494386597021333280401966846593801216721216919445491973030526998320347048949368432355378564409748528641221152595543310791970767302324978042349634034016210275165385487454882396156669446717942835034362136797844170374295708390919674836230295517645053836559149698285971635175930477348158452801959213151525144021469332471052907526561347963618651830341871012525707598808829825662139636077042475608915509740033663102348728196748552438697585316091433664420099564163379946863415959121672127927568490819542002591096337599431071432430171212737095616965801198762649379925014654168591653334178746195690355228952227214883877687201465349720790391696002159264887268994768313618097144728747083863490313091276124907990469941373564251460540161250164437259010114937882486943259628003529296542214897133033811232352951687323582835652579471383246460575478431024252733152471395429279754810555582904622102717103078379079668963488586516890084299263708712204287351736223662476515919311061405093676640947872067850973582990318427630389046684195267862104003432897664400796171043101994252801763605197887893233257450212139315212303367566011946507771941524355011011899596709239055095260933909334681724057553192033754538759040342240038272578151331596913873285192672779545060990317902093907178802928481382974079779837448987487875140945047997192903555624735185412477068793668394380436367557442011769213501569607769206490914920790950383851811962904120140501970570830375975053260316138013769893475021505030213494406197047541080460535869174668733558933018832089692532969573004402699955184413676808623273906046032581955592474269537293172301697744212076366201623960733932280917998092765932065150075510798062684207634054367148784020566892614153252687383178706853630827366563569881303783810014408266082807763998760346878846454968061147807813487758350876602065440921084473615384055866257708084146980174168891997868018432499296477094204577869453460420960427853531779236025659460623185073416453218239819693981598314017772632468388590299684433278029351253574625252125851868039532583400063523621326739120880663142165892379122526096831476593131819888733952207827459305745785801151294481271883349694139164342298757749837649995917196013306390434425524937536569792148562597664436762618624176508684310467031533956262437731937095274783979593567117045990399192101193106761488313647462878139533549535223041952335640336734353400636152600037988276464661403781215626425659632014386541045727030771145666514947223614138714163387290487052946071064269662346211706498487497513589933708733738865341169420445465731606093075003543720397979881206611743671742798699930537986764083645820671437452584794316359649546216303276473244809425817477482806675663810218423360500381483775546400551458353022214980883657079326709942296146494173199382271550479803293384546848892287980029492106131069639181717615649850068245715717567146309785962599179518410260381238447200890890161401151722508329785728407978977159974341566110939263835763768117315998246562517786673057651916249822601455280707251114415132309575363659218884483002231624361448378445680980444570343163710481909337038041088398248701729712907257829685048751174940442359656871903967709606875692615879067080379721259055681067487736630712528512567751158225431992698486470742596129207918305212094318898466153057421679896782928547464068034199750373226770553528332032051799695428784679908775227040606785875994862457165325506247410822330685911175652164889353056054083720014237460542408439717677359620739409018514015576050308276770455085016149978890460650503313233138373124186337139782689130423928916029157486340839426355273035608800712351336277435172898389946974315908822667991742294845930290565437181775166277914184221690560956171493382090304662988977312943717369401759187208840796748520339487288916115439925408548626519624394731270160519708566656196203363312715413007135933331079635430062325002724259862827834604566337076256763029937459951759151238045133960438539542512370394395038530559120262304876973005278797804324567728011428625081143414201613795015874552545014075441599843612150007181687844408340572830097829388773646391096815920533902869867866964497254661346317002013582629142802799885928595702948920138675736350166722337890429481293709661615453263561176850483963655119506222149938442441899019922493012454987287877163665066168506881320696533909040267535703761533168782369465946688405016462907070659555347762630756903591182771455040015369273912268095193127479410232055485467516742308652689003771171921248052316210021499394873400681122157871797026021761356175790102059913279536320262245601279438523139444178498339351789829170932180811080428476512889766972050800920740320072305467402885156285756938450589748075074815258941627634042610023696848185123547694598701364883265182276114939722229647510448551778287591145060556109532726723536605405825667425358317443926184383263820077529207463606466580383685075765633671202429506346528109669749321973702944582318567500497335638416075157549264557913875253506825928188744964370442840050375644982158563455838368320967187582702058850320759107705645860249077808353589064705650689170573091255069576185279539751147248645198304215813812486001651455256207987206467208795847360246145571664562906068478029900101055573800387615077717097779232252509621336598294995296751650383120286600375257839576554261754578186427030369295167457183155202299288967026543337622022653931848359315119869528192417438122123634789690703400571063508177908812173445280516013136630472983474011823917237113635401905423613290737798595239909931845831147226879843664678028053179078723735325998318797944699215934086996229182788730603388206415388961183411249670253209030572443743479456394482732196080913548556131681320725382590506962219166509685278571892909859188567216195101233880667545082229593615730086163198599877199240527890087493714875267290206845189669743445240764338023488674369213340441481808165443038426005454336935473494657069689248661141128324825777762438576718987944739513091496390577094746808524880835460400095691687526744445075125640447861443854812119306557234840230608802742820632971582787334059641814914899637781779886212299075531888839712593052696904755853451572269152967177384036579854572245097556560868112567685839725428903900186333159288878395041827127632642576826221256662931127280121769337786096150251499507097841381193505914162732714640566236582783795410559888048549657821071381328754568965518212352302343355798144268692669953969971444248720842481855229100167318459057466973524441023493446075454154466070687254646721055013507501710177627373478683574747578228412661706230898216848527406493725175967021761364888107468421589272459448515480594196426161493647171651536534751554179179907985393006636741064824123485241587112793144339858294256983574889074779355285354996498290208125587055871946658466021284449793607007277128961146362864160469514263678989306386703715377567559736953132639212940316639521757530436253736170100473603606858814619267876302764329343833755913303403939734177235204260301373093157607805297944019086824320003096045643784942701056887003660482807075747813765902837685756885154045453243096882717772582318665170591946539007600814501998611618196126070120422411743813701492215586339572379266746050141005281610898344831054386921317525835615459628983232098413492860106768975050234283404763382508650651182065722634239517677588239110303528112028721667630974633642666194150499373869194701278317476500689709529049441952231812427721651600849927232729849350002441568652738685058583596900322499504801278855439782429517698694027805580500866926360808523372585233569180082246714131992310233772585060143682793562536323826529597127929331747168500296259421480937344667358826212750626371764111497477362546163791861517607899139535947105766027160583211517608801753080704071215369657443465956682930646504796871471033735822133293610054803466670348410975461117918617942434812943697739492545125102151994120119221187509157409298268135372252614141072651660284846873328648105319564904493461134100006878155850629077095339839060226910414206475057132222047106080761780557473125617342437538930371014708127407684575334222507788818486978581539732287518307898033759445140280043763659793144705396768717851354974634767238503405270164595293974098531818871469802732128258281715700324957096139643269662127512345856936102857592874755977605391933869434910866902093073322092506875487976925896260079726266060249098818053350747079171120666040253158488869618739026621831229849175827207058289703191896335907495731525336472295979157202913106390756434335562526500108762392385925500638268972075575417091141553235425807229657350161578674689979833867905775527132103782042037430275222818208846939991616540616318489557961275829886824702959704889673507006774513605699429102773868359060919405147131397314248091700759622070158495020450750660750456300997982214034510869991494427017554652571063392021714191701729098453010318037326236931856186516907581859225674400193083804108619464826163623266211748689168629544121283874262408712794854735861864903280051608360901621441107049918818326884061492088089466169499581599131667443309025218723150453628990444031325532111279791844600650282163297955199034133708058556805789747876718014844334692651510250169366270492537295588806875011529143191619661709126305564989103358425701764671245273383744630568646163713630871842918835144694801474054166343304685503333893831289185732252427776427699726807907153937683757993974745972513326581663892673971685526061595101028752958749999507348349769142808153393869445595302425578745167093700123992555755984534255626836201153821444651043952056530486766595944265759644545977633939645366693901791097252775907679069474648972872785511790436163744844669873343500461011118247528081092364166956990148369918979225038859465262236860421303923046764781082553487356232817496150081968201951679444723948705191830709811000585187976226930728365970734774774102856983259765183410919426779882394264627877102273926132653571469793831154844955702388008026712419785776450803127575335239449619475574384691791193651233197461411513826734808281530692453895389272460086711106437578736112097721249074262621034287161382790198971770322471472117832680228799969254034482669363385837452897357272981421957038295178692374130735661231919115751277106930072557003471476300099140082692853024854512991112658508732691947871316885696924934887562392832165014400682755159072138525443797001927678338950998867804155344562348365399614018862938249084251595996634652748022001197222034585132107933374452304209648040639153603099192955628457701907736189885635846586829646627618216501229431907011469287514714022594514105334137360318378027548089419016407886821625007151602916666390494461421609854767133362112601656300053355562212608660515448310200206915763665060597208751605811505839689371906091001630197690269300840071508273723442199951032598040077378429467291935967651248895098252837445744334718234915336152207797700262994218347565320600804229649332641775299361996773578719902594336787438121313692050915606697538237248311104117759412054984168408490258593460255683886923931743456522934702074351453003814383589677747195686601016913316468333881800054863980000913085979010096665439791510494000136038294270362918048433371678102422344726096081745335611369402986714275806118628803283772717084638789610225280216187146909008425151354091723696013631752971318170223660788168551610918837073001893592075565685231928640258653633797441297714638993414563792540537487705935437909652106719272654022959899764174615143904066721999430000419800521778326007196305250009987487151808435285898828741512058493991955699268496418407149839618450006763821837185690148351253969624894513455166389147879538983582616988147712762578668223311443969376431637582410532794099037312044207650306117031823979584370612795842646654893286142200400312175760153720740935939946489673350128771779408607297625938335614847611724272363649370714544771755960333402268513296560802267984768455158104069742028207981047191769105649921418968389969571386025384303838671227360119864892692597408896671635916881721825055021811171750605238219329270584535580721087717270330679826981336238861692493492215443912423564304994244962117749879654090376181506378594330979824735140849177107665008778825012133994601342448114644312763041582945148448021126100748238757819873752101231423494879281392606357631013783767595528844632976583747201392091606469022002482111850194846604984175592735338419942502748093836785385845510451622378985217279952384911658289997812644572202289650800186386586936266501994497520783300551311981376962667498297639650427479973662446503651959860172613374573422206906109018933024657654853371630923579031343373694585835113607864384896327174168222070609256212555746572339605730377670266000277235909602704047100291395492352567797079486169412624990711051070655520904486246688262734832463312209154861692901172019698930774832637249025358184449268276807433407375314187095900671121001705238599690625403843622084118547127194166531080851224543986302645964482461289400632556188604657537317485831882088508337030490084366289508253067587964861897751560294937325014587576159690518464357171391569809081156891919911191082818068464346710368830861190330814897073824683421168737933440579290031904160409171943940168100039056185599498709014027629358192544514547795530753228918134397637141027662704793553043611581932041347647330002003380734208283214782304753872212045632637333023046672578945715967883604560440816320501198617894425982261383408457227740375628054793888846015696391611423396188492007437768855177508513916418475774401238074267914449752098683102701028845080753816070984942202642963159497653571028527306871244153102303156744037376586249657394092207803820647132880602860841501938935942543800122317421018230849228358053144628537530193632402000784202833727294500296021579396045171615679087689357007464250097379757138825119788017502794646782594152740261116188235418714265820716602293173612271699393858964113989170609955492966901243378018968584103830214471672249420810972356545974440017214986300235408044229583611534128153014954802104224739734087655327468386434152318959450277983542555579515608846650512066524303679035677098472689657295128062857551673901239380740661649769347606509869256033479136708668131616803666439701903319374864532192876220434210811161637185127718117249171889825556152295120639419754832350741127237239380229193558196741923691796783811035680539868965364969530872531532871179831904772822388670801850137907022133702849543072815201045785614598793987405372637601415415908072596284328459591566937903006400564732964932071439022433601683348326853097991191288938637113834821653237872598204681797106849970379271418748315866454210992150950458922673567024819583049311186995031531126077504457990326096638756896578246775495284654637349261518258427385485017134197650484954869306358734862966032740830905103826635391710464659099105189424032910485186489145683468561151258202873062035863086801948818131856275938095106184533167100719148204950254722346635258574323552015945992419214450113015899033624536788872041658854389831136291255195958244732675867308173334565180124021504302155245972006278285924683566743700722278489676047229200035787126174877210247694292968698398772578880495074322695747417467863440538333273239647143784709321701371074998159274874655364259124839119387060726891309210172790043229118942063870964662470685231263566728809452227114857608414497165685568804161450535677885145395273111097224218827121184765190973507200540658078676312070553410386983293147177763074428830301854138067431502811515066509296411462799907503863349182388611639682756654028764551033009738268414393453925107098534316952293352552257802148781353725139418933059805019978612717631601857262240030541723106654328512640400711683732096297127033321670865801949214384760668216688359612518238372049955511351451571388562569714630837634192930798873702639103242562647404270482867617780505387401613456135687630891323832362556426790356817455731984650006753107881431088291069509952655386085559715524377750730752936609053278546158545802237471375381901728450500795147649527287983852840494251982417497670961284852825607810423445238955807927570057092764566667402290797947545490995860163056469235028696211956075622716840947600446268669540568813052557129504032928798141662864928310040247588671040778305952274983528530341868741929769261289334769835091393342610546418712568763582874411320466900455063238420980651811334081368291701359087970079085908785513614056066694556738661185013531636261442751071933174636542345424593192119825189609133063061100728138294167421507487363199723981301372713160892652631889907085495365900077707654235585000007517973048172700488234277714800119958039448992828044107901889932285078241081075218883414578335459909597734782617886896024053182647629068945854945920082371063020897392560474118201832072715556037055126038039990785230184318665507259337521085375112905048058750239055208946731064310183914864844510094949491367578222875597998658490306590438856402448490400556094007697882674529867611412490289781357702790367484311821299466848853086060667814236243433155188142321649797918099921281233543196603292149296593568612076013071647519724974568144014006184877344972850798237102940900851683953480537598761497009883869672612802366649427752423460252365486864638511928106365924972941712611961113118708488962221718791819519182896950231173712944379624093310748432607298602370918203590129863039356559618739314666731151302271486878018206354190511381767990626246784716234479334214562093859575155419756467751793606533429341469070646470575779708175956581612631376131595934443803565230692801953031024094577892592437020296505595767443389294428280144162082926920332818411632180036102671779694576595839367470736833766085258544338671786890185110311930987585396607459870968089282279832308140296012300647797238565179827210055938356006917965431683894523171548071342967990736016080502809793482581361581087510729371475487263253645047232446683575107228877642625371393760024123748580404079063617384311163331568251326700091177033556210258492179630985826888948241316032491560023081845097912850493378195948122276487298866370230121430228676047709260643531317057066095695689765768192575085551099490471910718014033444111692068691899311782198138276958926082372352046771829340871574154760883900477653651661050557535602121151558846106258526745681522016549729867341533810458899388350268518482208538148682265075383873893806760052013984775123875587909967494657463722040093235011799787160553492500910924313371929942515679565059165762545819339081694920552948205254120982473772353793086108765585592765258679256917623996072835389986740108041084559506499114216586981402026298583750312187019660780610855153276195594620633371544348641313922013162667834368504186659060069532017565953904647464940632372987950713130803929148147775094344776732228476811842039465564729442851667734309820061445095151369786713995842944691934201392825652826941748058269884729760990037353718063240600461363675068412779505091534737949431055854404436022602608519507798771797718292671877136443701676200965395402461302929634649977990401633122605363966725249313025793119688554990255908256142217583948298885510571129024334158955976075040233307082849953477439125357248693395276131858946295446961540910360440176126981698358511815481344735861135732424112566755259921769921275555880990368501064336150336886358563648373750223010830971494367017303050207019477302055843069826868375210644753487267036514808013512672993739940952036440405261983298477597217588039940357747910684804226582363495652875243189651139692712329625825191974093842891681025727933251789458447231461805960363729193649845396062840841676745945940532589631960661709174910815239530109275661049819072001751643846994023848996379082873331026230109471654964457742667342431020229152828905751920741698047881224514775255355492828640596337178505548566305938838909364416764179721904707428833557647569862071270903990028613954050146146808868452490296756237816124067289024183860651923387280314039187002112605341290475204757610975807657633143422605699165866653113836102482190617923344089407669542936896675208350728811193608858602513973867203349330146682022417822859580192604109954194928392899672129571374240664108706483505337564278845085076985294815995522528119473308904788380048934266409131020490210779117861237967038512111569103345558562129165777770634144147870638171203924875610041974075336011761269305143514974285051788980596760595214247993088610827233100209076377555937633522021983832320679092050421423342468686659810743488144374167601261132040666203885485487566299173291134175467038259901778506491631564320836098490881886088432946862751219839679566893377130599824458393874601016486631259938371592433040460170476229410729590294263881751068840538295250719204034520324091715216377918038235823250956923941003968106775053658033444230889777538256763519813253540311299657998312308395669099852758633219948188327453698235173415160823235849334108925928793495945003373175851560377988903287797831190738915754341971137825783098852410007169896013315003893824465247440183427733374567016269316634804985389600446384451165704293021138220498425737542844121926576543262843822538576794743696631631171903678299164717304457199094027585697330117066707358617967929168479615082360016707565481427341803656471926990901260700716285040869673771982373233349558358016236644359346765315786451367337699047595156931346533574659221957461475086265833372517756378167354048198613421816461733362825634466854182967989353418612894926124356660917965302298250497488506936436292888329641116071658718919383523793340457707208301726963062439946266440879703807123802971863181000925747295413057109938972402698390283289837904694847601817114395663246024816064580201940122989594765149371664570047725555576273760515308485308661834018954164506516174407207188338960707948337220861737258079652602602949442394461080719307601344413069279842342306256255160102590770991988152821402558294860956241566915082744350199869875093240405748483804251023028165561220376465556309186159826306903621575735397923439898646510810701212250814154886127269443512104126412145389593756057032597632407543409382108355065769620869899512581370616820867095015379961380822905825641688159244608179372325621313273806937729900651399564479289944178649628196324591202116855184323684266513760520974153856976322933903908148912970825519417050343427216306475321946178003228386231878830329962854387035492992657011881187094675642602369887705457918687418842269891342248571367633443493904461668341750008465175874804992216619896103785462176643427445298935665798234160627915946333182361569689382679683162309680340145666234949295585226309381969476021289821576457519399926280925276181454922955826831926832840982342970104416244623025314350928415943567227005523258592255260776146723334723095384181942588240523971296875330060837634680788774466650885651413883263262513800143700965709324715664938166656554106242550898832339783711392219647513456459147927625192955996533997901220869440827305968908988840749897915133022661899718853955297906110606693990478572916000332217400151386182331452259203736018670766884912996236611136810596279929320461178521137333006110429225280626249031337827832044794422968784035037410562273312254463773975024208975120954920392885515239964476772357045197411796520363279238915418775777846212148431355958815139161075931979751040348260700187322282425360732732414355172201717107397244767179744482081960168286185922822452675799847860703944563010935036009699597913234370992073768799210974891201482357867235110980249930808761112313798298609679729341541464250519667039018859632989252433238598398508656048124342981987005513665586137220874132572711104993280406547985644726159755150183768606196481123448269784144988853820722770314694145059556175116040680361220386011690568634055559711908359976140580472592693306438887320073423327164886597451194662473994648335111503673490312942954600041571155101447551551668478663950130858940153112321271653756267100717722179994969452501007326074263483360597321520235067454838326675665426658417478550048963281315118944406209288243399350641553907179848757262264775713280051734460984103980839742517894019996107681720827069031798502841216225824871306338470785000003414700669859647693697250185519117473840902473302649169430255288449979244712138675790415134172495603038916510234605743229679887167203198211726455829662303193962396236326885730453172799399544149705858440294138601816311388405461596613178339932874272585990161350693960368670210019044985895696925012158907781343026258695457940123842570640557617418322546230406595617002827951012387958156231161498624919296907146129970063710337509069460350920814049817524889041948732836521751710527260315411994785585928375975419319643296972784826431637658195998967656591767186954628980175150331940813555110303178549697010081840936224753163340592654644875770032836250985744439014571615316816239895467525284221861597130126874337264495993732997235247323910365980529159172301987836222683095067297334526368625274282016712391857358590442892598406712169589863127809243536394302597802289989581976508125450534407668012049464505813351618353479359032803816781219770213570159350951693350781266713019248725583488943500281911434344586159827035496782837886003369402708016696774856836756803881360679407597807226812469510315188655503074921116528853632260602407538253224248573903825962173415286602042550994976174017008852949261682896320875232723001189106362628238644429229825187618496062474564130529089065160050319140039794669295416960896235110364452326974493023217851891818172563742251881881807043037030096777125324454584528216575095944663986258816794994721450516436574256313879599411131921699538256809011050395359683478358368871383048111820861314128883482899852804854491770679387790791884437842214326215167440090669159388264057824059097647093792519446625569284621176503136210005363871827554393861186959077585719022828869074420767706280148977528306779968466951587595433977937809910934380578412815590492423641567485247783863188778235882279952951634742858117046146969013042002755939434510948336771594912780736909495362769698023284406078943319410709412327199090207974567811609779230241470691554725087060379283881005046830518412729074783003210075929159281224324258646099319637737640391642651736474876440602214917150875666766834550167978872974017977194862620749956209237262854623227224208909172343239070195426391609959384734518497666377227436497585825931486564182080507355159667529604933586702847832028151935025264647252445767057129133351389843030752180578425405986064932302728636806505536888423225849988246193318513598340821154923705746556067682750673847499249638387940592376843431761903816246707551498924686874777123569244273798316050740452534685535407200095053619083509210074224300669740496518069539011912607190287895016468123978983056767508694876894297943328815020680541987633795584284475727615502598679611047040990993390280918349778684269505582324626799409214188272027707828965612980176319732032432956094971573134127197109262080430141995646152831822468537902186018964582147863616357075292468294047197319907994380634361840186878954185399268508411570202963282558693663706956637213346879631121570380889969603015279455444038149846818912701760026185714856691630021355560687765999958455985142878101363622996955074597645409967366445425249677054969121330491997777257980746308990824669865794809823267798162299565112496926665810601627301252391949924927740068592373325071463694803641392894682569858777644303216023060160655363519966450894256403044844707725509525075906740808246888809622613216289035126916046240922350596443940519246049954185983141968901328947736615996054031909985671903028863505695922066817523544243771578068626445755852463591282870069176771486563543344136641423489573494065768785558177297812249950575514256048825464294816501145229958377347144106349454141861538728764731488578833344424951935651024789241450433339728735123602848698008824307306013398300095258229727541573568507627799267310485021254863503464341483584694410949605198854665585766437340616892693960093503339465472286200020965643001293883178400474730438236207191046219441159207407605967928517633369530878855942558794526854212930689526477487970784801681872443509268899548648457255851451968635427588524428116178634748412016201894058255544582595255389564597026381255850936607619758747320631666480835320336943788757711857838894436351923469339068612443973316773686778533111807020146755700740740648895664771586368381956738274465281383908064929326760092836974879503944146650078567108260591786030491180444558547065489560976350481383424984123132961143929318823082478000415271481349022991352708549604574618353250545969072692202034978185529388477874935254190751738895895072675291362474926066238687274671215223456749565055470051637331642240956661159825940867364972898181691103037671503894999012883471806416687368378950107703913231128368850497129107104552173905963887066551923321614036929937231380394002232478512415077881554561207992797672339260129870900463396788570269116156936617912483173574146460447849378333968196343038060280590747734364290156351015981892888276545136358727574063844842447948162834794048977986290617661147697853633865976444941144686444436686204713964525659885173366847010765923757174546614499156214115028273445417740093516403207878128815955688815686116041729935205054858584261148446177567251839758920429694956799766885214545692971403119247606991968816304045967813136857227147691857478941686015737237341089684539950820482878252337164178531537622386228863779565839979187954079987461893428221310877082136112870105831091374004894544186074312537639969705586824750664795334863900305261579300333159581083118812050727158718905085003649027017985756692459255787684646688093005126207638269895953079999958098362863448978154850409012224973642328345722006582766884934252354679997572211532621955553780092815580366044206987117155691393145095384940211874704168580739505211944655020525681814542477379669478229560315261526064007117958109030062111317287569696241792034833916071777744054592444106411438979435538873471113709184769342579231474199310927178953916263841177124382363758559635816124903209270907541680061644187647216166719292605886122448658707581583597935807168909503612002444241377796632837241586670470522210323847479946172957224675659514555453974234997835230679255158577074151065344485572816481447410658899901199244777714844931706572071517817888272370277169144150728054848754588243636518914496244309652914093000854969534745415839850865945070491248513524188244921728230070160739136565106862904470605417608361289049328661475884422629034954660397340093606489856591022177278619775827595249871477166966856960371895782512377683281291561997461815601602384229151168796971334819229796637058287358048652912769569785263934690307884175753771875070953736369138431770435840577806125404368536990699832613017833216199024177148596297528019985745911916764874698558435995531480259722324934513136537098858091091715700172605845034739320996298542822856595097273224035622691569813299430448065973564391428896438923838627757976243600581927080028021792154873608605896183114305611466247036851663422336009780041837409455086594491379261013879033461695295775499766579452483695154533383435414124353623919422321654448689004347441712853904236090241740515760432080043721110889433618148986989946170539077893376826964576508243144739001495879894519889684989995396334819266222231324411428790028742035240331894852897173621085835132759888643604169160269791577528058819590562568498741437810657954831346208469034902159395776615973801855338026838572979196883494745232634076704180256607966526243661329090370552272502587829058838142431071378973007319990634503309081732742627366262791941644840539852593584780764216207213826312180947401892819477792885716594969890609640065129666295684929481585423201798789321587017049717413835154106228109011937535294366943721710903060298988431862455568211884724349415365403163428515439167559864386102916827490565110490608589519251628705274524056697898016978680131957630939811224371166334416016610593204262513054494382184223025609096267616918680879406569034932772511573097506059620760940384941734325254405842080544600503653957031432807409023171916287040831799247620804288443429629567490462165565683546883908863390083803135901046577739464383893243020536369186615858551334806143140416632787521990064415734952346843777806373804038003171650022105103293127220873133463564441716759665367795989400669568121956536787457493309420115511095927615776435754615427895890914658952889070082435332691475536357318606703103112287437905271712505229858853129393934323301480955611758435475416542932013432586231363683214332039978606880641930416901554959365479694179290224404206809648931667650199895794643410698180647981955129568887738007190319299757643853453664547839271903517643878589815888440851096279369614984749233880948211757935849659097177145942379514891309402291829933747689587480340932248379561999763810948316476416160399095728154284192746681790002970906967090578627435023878889807601806218548088100833463538503302324549250134036980745436632296526359920053303908566052444414174166726940946237424799147360321180773308932767892285868201114435850881391525917972106195910205120693573626030754663633344104313702406798117483531859798065583572256963933873306704243066920608741022069045169862570143135977480004525284760477292796751067210930016216731488239770339135245516009000299757366464513394025501273882911005075750178451223240321546216118042300491697504861686121421860391611309279693390077032543543387246965182781173946922167109357927908732197122290348727900307079068890473300129599941925014687281400554822643396568992261511227064763914513795793410783188050061465611551303646882845961537906139007884003459273148480983254602858256598465507005746207114127138880107350984151372568534225776459207366031582375391238040577855213438131273543562257432831555287952329249407815541987464957557927750969016241615359383860875634418003518681978362741421260391622262024843111188912791741367588621713414503073909205114602974487970541670313140263788466435792062763867139729898581430447033879193148082753503380529146297103543246596989614606712039358558929620273918922332596620571410266274657360980348950228459476505894392886994970594850544194926166653126848826773639190979733931869255614234964045512788655832527212660149244165839492902643938832661609125622716825026805804839129009085556115378050563029805091529407939970161828838856114405773767591548640481494167289427533553309051053092441130923038744802556851317477713257646415529894726320316876655256134987809166658692136575930921810230440567807258921269630622329019890907763088027160267760880746667049272806220895404595576172938361256139464103526624041494391593415540645115962014202205884248243822583585638495255712566537404702297719336021339449730456822479344262986191724834969472779431790782844689695491494261716940952322187563512559002522849417641483738817556981169237758310923346433538873920596309039354771256283282517018427118489833445040745565290017766416931375608434708132813050733273378914772461713203665940548258406925130704458378057582251496139867622182110169117129132092863517692553750101667764621618743918485300500335951041543864982800679568815311833876139215231877126756668021414130235890181474557381495688247612092505166969424920922611802009581159315406315997670666376286079214581823667954590451499688679566863191756667415052312891215324578069536589028788048484039142095420439441696615785214061436167579412301608824294078071519851624375398994625209277576543502049487448624723681657360383167522515366428688808540545648199928379992442743160608710958132819371637903945815767214523398334851065141986937144215784126951643063643888144301355594134594056702670048453185808149184539188300801270232981902609105617725020804653920057966193319354194938120540271704978535137663060347831876014972320670849127575857669238700231032016981753341984867373546042585608859683144734353862961358949962396314337195221007187086456049876892126024113335761482572714557358766900461431123222671532300217946748129619111257669266136198816848959256468746066128878183523632505503835499023868322846126699092449927643930617057197729852771174840061636056335748974377628139796319291268627139484401819390586104591495929218934857422531318800066270711188078352498748928793884781020447762967603536827246902530772536424210658807696424956386390176607509451214641931915775492682125720576623524048623589554032947746932086906552146043726861226869128593115653993321544326881065801011772502116962588353340036969644866813977475259918986880111728980140203959984543879201254713542627011624024346301551706267165435970435465369129202600214125325153535991743512199533319757127749035627865638494941115639067852003418372686690998834441775013557107252306462189178481915161264478603637030514133244903002479109404664364599859085138033648969583993998585944833489519154655004674715813137060396801445604294878724230049882912333696532283439369633494967421958321330003512186783873365358429001704729044300288250253840738743824770717618165329054439758271947057418266561013880378969262700730333672131728639316326129908536584727920322163385763962170481022978502825944929626922957719119657006795386181575043940652762239181966071535866407470507697324646224137033856597803119769397559074437457110929221099761271697740779118844192375392509372767917431673662244752941010254251070312563212069310182085643880928304258252164079457081073348371161679048571833216687157441603021531816399127251345095860093374113645520608271018535335037354926366284481640659313326108922336999261440626733210292896074114789223238109902227752209175059658030971775479260520511617172034731135337409155982365786661597687693211434468130534430253584658155967032532683059100142755229562284088336214453159349085312504167734527976109726511260601458892965686509628926398993497583629950219671350080563549446029543242576858695826417466000386685711363046771633861499284914675376500344972172180607562708027382548382200128383034492242788690714829247224708551290234207886437412205641699537345719864669690636886467955624549085889047982846188283505387676433730752151978556906997268501082687842720628602888231746008185072587259724277125770389729318349378680218520941581060820877705428493745453353618328085025874694736334648803343067600727378772680006946666468321412114072663771902979166972775468045470281128231958098557833919166066711822503471110916317885176948079772313053094003381264681453201770049233016537695281894697061363071662115029493055293138612356373185602421022221098827946294234754796199429061198865129060201568706959353164564341918612949622892437632779642619236356447209441309080455013372697926547449706486004717363001546111814612547475142173581914851031972720847100571671282638829989931396249770470088870315897773594388313064696365955297872898761862411569865975979336077670403219337970434451231903681112672443217480347710173415806852667145934841240038070242271324736656515408858821693922567740121752325789021160647495131664955243193451860718929344731453854233911045603432588281151137085766446169680286110260039887914645015548814521309787385664134762039458455564229488402351527566233123394071336222432987813943043603981977036686617233175471002639324159658840143620647805746840136496311576538873042000382338459533234458440224552318991184043319247302589968564363151140599040950699626213726048677725253628713262019269424460808092337256692311723419649256085123099283672816465125336417393018779054793603048712192450619247578105650720447223618327783549175755474271274317190162541729794844826654875793249624677231541019715479533775548929905041241772785821940009558893355792025072549978666719066592635454087237040105167721225740415796442206442423465496026391663712737779698708778102271901743188861598676929953999607553172193500853744436239580113768380910344838635720833383066169168884421116629617168167121178216041203926448399419286474755311904826352356034359296359072939942372129077674104289976719635745302533815466821569608147583552390050279901218341483462819866726882120111479211582769628664052842536537504424633622325583045079265285778566535118203151725891915904248485081023118708264198579786827917299189139866607704245948381313304176776754693853624220217472390123828450195333802854603333169020681529207593743685168229517168272852852110072266995304401776300724113360693205058683230433070438827285824033057379530393550213293909904091548516359849037146858465114646446702002180346213395897799383624798626326080944746910328220871164338109129167081763736685242222755050661027692281532493405883696391910430290128162798796913224033839880930898517743488887504439083887744249718641926312335773756114520932463070437946254770507259940576069673052376863244409544655220210687440711977508981835896084877241461134858972084442748917003669328672236763734371471574790541196338000210345209752883248521107650112317471415495978990792771221135276758480914583720500936544087514726449645599942547776081113354922368651657697936908930308313380082317215527186744604805979738397717173663707949655002591604959124059681118118452362415992366340725030691483789543490921960636402445129797026576796262372263552089662348338383649546751077426568228408272367993175945682843320109229943967549084961579273169819203901196851539740727686661110146980206401062776027020163053242382707774006169188829615916698783749111530462592769094972606251338234535420221348740397109044125030686647137891504285227029432587426031952104404014262269083148783004904398506727012366977463620039849777779009886054885822803369670711767003054271030572805784936913750276653690241016131377858974440959352768263529023584121105345827756690972491108345148836049341446253956792644578697845329767439464827114061225638825612472158836034405995366073919542617626714186491735881365462382194340439951909906652398124843885727739201112859370592015250713283581094267250807184411833260986987045125054363127460477932791242622087224410007853155358534090410388875961595308853357640615427018802096389233817513139114919536774298681417114671805040612736156820150578697173468899142832575504875708149665405739028140663079521680806899857680560431698660445236527439369568291454208707348417585690851849338554194421292279205729893254900536826949352075510563590738173009878581823289870005336628072415850221313955897563724764961881539827412659701179547643405467089858010145816817356212423875976033554013547326931122234395253568746313757716768467249621028103818355121531908809307937821367438539829903875804578074426977477707908131993440030870808245917466265841959277911261657752820294670602718059102716555037271833228610429028870660996994452928259409359713297903743150894682488449728731087778201932854879199736286779026702281666818648912548958790016361611665188587627492547588148077270059875822021953247539324847387329093476399137434388594433679456971315944709709325824464023121053405447799284024709915381027068654095337280589318607907198478286656054711276904479197472852124548680127343793988329163710839945970339750661948188547340099806185229190915010523949615213600238231547724720767424628670043432061867915263605500823898143274964626631827414488138705063883173567226183989764659573637463882434961355555691401031882459857362126463185439574061447794514035532495794154412042678572516872768611924269494147050186363420207646421929361393258103840450077370232169767853380268301851203044167057970586070308445318144597003643482407414390211146247638647469147649631076222739846439097102770187265835523868184778081785204593005524227445402152426425046690639874273827017937707976894302636802529895748108172394672209640819823782633528650923302195642183539254147891482697078818206989008845255413899441660031901536855618958569594648169225463963105564758066662671910778848874845778585075968167444981572932249141332794342918943621624704607005334797005631126687719229901234268554424610305432409779040996644762848606870880518395041644495917880540180993408531443695813857378330127947120472164123142278401677778698169832306495106850938578662681764098827768331348574753664526808511900832236569981116825628095728356340744085672489619895680860616121737967925410193249971336665758656239081375421293618029277142171175727797143140077990755446326946856923722960250965398364108660941051048430402892259602861100734592991312404257516911169230455032495870472234062536024002111814808959427771796118978688640133337522223927970331638705885313316225986828200450122388150427901038247183526742717734949893276009586157487059908025281218959102276403916498375804142484951992848497609067039046196485137333887541773099907685052949449402083491736145286749985471795316963651058558283995598126397269431329308106906580570728560249497898406073843069879567293588290529146984829482735328354566095459346248971843914559049598013764952624533643263901717219782710152344118256607245332255763643690925253683323618600594871703060324214245927527860251099791881673741078836888745300087370597833820179366674390843545801675277099223887339787208892900183914688282734372677701937906370570111054559165407677930128146239688321317643817307823695370937766762313868318056835367637199124124644995937560011184632687343842186793357911039603437886647947975234551738474589239450092584052352290524274184703810185215437467841958747234530622501085118268895635558128331346635002789830110823927675613401604691650859477678363444439167252644410708309631902067539856739422974971542445371103560577243309964583295273073284480973478697331184289314233294035203781852208883316092381782432416191770198767220678821165006428653906193732509276437451051309196154009578055718953357874498901670620220715394186909699054093467937320131481058544664019587478802323059775167030065477483912236514267634932303907936126544871978811136469370914633344845651228888261600656204205303843296459944600250301937802272319079664042380512763881264629015791621286334512036158283337191463675663447450468255342467584768249267430545182339834955354641779908316158808747751765017027709925838898068192200483255986527712359962214295184165797944723831147455666189351980671994286345382247314196279321179824135500999623953740835348469272335510679425323584864056083746736325906627335529061438756878226147912538727988027255871335893351156932695714190779592355072727326771719356954940890373001601652399688739760619413004404721692464419781740991917696806239660384279442638036326098990467257896440492104582946857498313337336578295617240681713396239785874570448658016146254310234700553788476080876828714335270547792517263815352942915554803965123573875276248075332014587894414542467368002954775266889626831965512928346519494249612955143572546471828348563087142040560030864760908282909434700804591751374833589989800149878198090414421615796610125145610549573360969867985883153022996442458329140681890406847961493109366417270971484881559716280412819410173737575293163697079252397414991856757120299593264668877715114176731757817917253135455570893132521218814943295658897903989126767262928546250311502592495427581377016175641013137897681486816827752754767466615135343570867462755918741048803392058674411639575665155290907326680622505989057524636973835837633227633450879300364930460288683947678042583218728186918605259489102560035331862440077987800814933884337790713183651945302428706354187152887255393205722699207308228317650770147522725867463442532365959171908222343276971050583564887486750136649188003029405641026854112570699785271560601012174753721687873089515466942318766830039801665284962568397844348237351123594539897296151298095803444355560124962035997532681539786895396769985142116137525556149013389647630734830947334616805019549317076241048635667856598450601007865100745526767688350835104493812880538632340779281086491852722544971180890244859561801305893602917929059971925992894938350397570832038150403584734666580714732998048153200028934131283825917918687239292220978523104510558087337380541879703789009529627234583335176419221812104082085696136038934907636916490343295932823178026292685966887960827535172739558092380726089649412520700541033195330691422557210563100571115881029704491757505307402228654272783061310406811126590509371476145763145406910751085311406447623695190304720747585074250247486770635076720487903251905155165474474373203405252488334584312739844357188252559629475290847360267917090030388913945631802195242273073858544032795112155450265872608068810884851636630633873416849446038313820187439561687818828769794551412887161798074573562306167901056705867582104335144292985187647796445572513791972079098572997477317018879276239799067467670754738852132851730676951699949341126105845060775022296378657389985013713039269672118931561839919215482722828631137787717947676811596323033501089861201935841006854912289338726131967893999116486043642072506014389442386384575382622404474203709001228697262405621991163473264574444220355197543632179426508258003401390744600409109852735157098275280303716807706719163159299987669904593939868142061881795764131682827293174214759380599856927706252505711173300809790947104403503483992340472306365552947034048223801057536923776495277555239113222211179503680643200557040471623922724705499863216953967337574325325594893276342314535416373834763770365866804545237902818724544403807288074536226245815538543388816624538473767782720095877092459009191474856591196801090228091115079282690561230471778737304389083007765499841445867118333928691183680349915674574876400029194696972045863854277647359661094463685367619259458009180558028949971362134926812976933114113120831495406424197153702958498687902230178135583626741911044080615489577067188946599303352801856327098308367210877364724526617996326370197701868060784364306283110608777504960485231603544843077909856729004730783147404829955029885419678768238910903878027625330946319754682621365598505438646083023441775943157521524684577915666484267510277924252028835801438480747324345713355509533955370080717816777444244896308125986150466938762212240243037277753633876304609493334398552661220041789790314915562336703728400680298449387336861079004654823476896318582821964555186135681093502568564487850035108384012038434576475298223568713407380403806037886210304053602631557775620940855739245041585842752604986992181629911943571964550156916982995631805420002027397266814062458622083910606506169942572183801448243551154860637587456315719727820321351188830985057776633487160353689399084876523547940217172149255185309448679353891950381684731822885766345480316517277523231657235236427774583431090576861748018384758291420663771200416382170538763267991235555745585054453856545328613701361527001982728564000337529004910680487891287236648149272033281929910040947147834178795501333941269814846363197987039893835446859703117668855342090028754631497145120002874418260205709982617145171355669327313244219213683656470450746720905039772948206390948541656557450824417313337440886027097140559141422790322341081168601673128816763826190943727388063170406406159318680963023170437241079752353750184634736483120259548116509101586006133685208534251023479614945823205286664566470225351629016120009138362657718925875352683644018690263049582518606385815723283663972289884740621734493640513985483587806545770247007570196589695801515348077468643966323976708082422478903046427033921917503296727456708453902832947049039324750800967682883177301018827725008523569040198319131480019029385564795803467891833978715465981000290799351373795311950407747133790342665494474457651099837737571126718916369657812534008417375001768972955873431369089340573263471300656654500283319247556185755437212841093119813927269063252258568198887468256886651937418230608948383628619643892451706487138758636110597629947935434540034216364822128477284545744013258657502537808378305409337157714640422658788489081510167196305464951466470385660824448642613299908626467982104592386638549585004246805605468820813528290687294340918203992219452645848952213392848715057950019233071208464868351908326228937373370648406565238192831564009092848423318698692762178935858513851401935110168693559530343736671083680976731721331135383751958149236983791908058165681072502825485093404511703265418195894080544132980139714675148459288191018171665549193523990102730033402986396796325652317606193590530256198366540954538853530071001665200550502078638412561561349936469137682316816072812754899964987614558897559139711260051265250395695569355973725354575115601959263013342799670731433795293129210389192184041534869944786099565248946759191208377214991744468013413925023353109923110875578889456917765371135779920165553018702854129247922573591022549248854113064211580262659371534872228089032600080018662673223393592418488127741786182823835422632715425787299362114302216891491003725283608138542299815738871929016983921688522188656349117084249622189121543778905443686718319737779938181842191541174155509012087563118445107352422542090761886804377059661455968427532069427858611852864899000814657206032343686316560948043825028594455752545773695451865952110189138427512326223503199923271617380646620345085878385373488409856529797881020851163906845006354033383383849514583122900372098390374462504127950866632284230773378665210183270777792942047612897387286496948049641952490585699598154988863715234181885098128706996168595823106670127982554102938451228445454142901695970196405777498837903415690925965731896842323377428112456100369414871712036229770542212244203987991766129447068857467652983973557534315158215675209295353074040979949146053622276373830522276359006354044923692485773612798255461035388575227730033967660587690229425212012465007772246974698469858154188478433330967562325369815536758200145650422052032084009167099526198590848510710196972091913040370064568323732335952308951799206802520535720513850928049390310871977772095351570533761022139290230014386671019346357126525333456484815462086269160925518385350373772769725256601885888673953259871908774727052342213839350543035466801103016293912837277404758208191022255695274885833677093040456963818248394142845746300140233921164974699719769673818893008271449168341356691106707971417198395823650127033909796886147610965782850275161092273056184570838424188137643615753482953314302385120693036114701429500302899183462065827198713425308122997485734683421107868970540111898721986728405641278116510617337865127886865698481582842744342443664580638128329181824658913473147064355217665321967032798383320670732979203651043434576857313926213390499169373777280266646408496847511293404818525730430188232748061390356443902295614405122363767563573156378113959554312300141645069223729700764244614271245358178707151226826644955641541455260063607532059090941625685543156890874586656627194888070665387816758305018118968566148521747551859414106721823145899144655539790327638810106838803540899743353897812995573413776189652878738166169444586092652561716459594496119806996020885463024728925106962784674643484099347317676138318069774140576810917108690067258606817824939742930873926740169665163470154384578495490585303951497645397044579342950264407225209346023206656606046100336789027662724326837702107348748825329285996316178375950987388081567613329314425607139865906058905832236073393127266323741098504721610688480741068436447525255887605185217696466134158606728181213535237541938668398902794946539622579880908436348273149268827231643814496338619365414341820228305221067401856080527663771641996747901529031213621124117818692366875430077499163862037575082078218582340811222172797159872175162477545786924156600848978601805698615424031234100570097452653264415397195860134123463034258930398043751672436175916907694203247320549007261364618414541036693064599311269091819594967842859678146364718201646873505847928075243045574309400439984901540037786698125960199189244550579955215736852581567502134702732035255780837980438588831054576438009240046493547141114454354418423427570442319211291462477030926881326990056359113618476246158324808913854893246668702057644524769286235945366318005200642023212716228632904321502143368139527478932489711392823334307694490095885521710917680235283062390828909805033696272013962380087002928666904824460656759547635090394860615254295895171517918078494221369916188194346734601330022540821161800536747052734767762207934670706464673784904950519628100651962650587596599978220003189843544660674351429812266829703620478634814943209285691398631718890061943170465434810745718127422038450922852322631931082495272329240097215055968611653045863085241167939897671645747273242443443425459711271681539927979843922110662711341951273128317602000393863724295023587374749605808925202702100544756463176833132345916375143321700980651248170177533382482000064401517668365123551061040302783847038800323543949790435892090862800499725411587480535646684793115993893249336488147581698224128549261082054799167616961174548587713460603275155778153126360907779810237565936164220129215531345974727768211327549755874558306009113706687332040484858907142820808809883955594829769639272845750947047113787255287253245069330107415243506712282743964148261951735174438044577298012957792400286182797815990284843300211881693762511235807788902531878210038334812981090692946179363687322584765703020644717665362855266113698943434351385354997366823513133522502515805601377019231314153761261769669078647579046214827407929796167435515178064779507988781767368627780081471658120374585196084299851482821161454833962026007685192965671233493114158327905205817238565914188003403404915328901472429001729646886113950630546299065608299331201697450816578690710630470402793385944098829289907069385016276053615197222878094564266499979309676635973990676578375336784099986418016087835103148595153560292979110544882064980184175987794901680931463771046455395485053306837175844033947032389627953458364387004752629380648024745948458046914597398726058551663003484910820593397131031496081156002214511637841622959395573269734067555923671865749513192254956933661717890951552991539611710872611672549608733036717281770638037449903580256469552957314917717392944054988635186868149357966962424697361595949743966475983942256483281432983970713868793298122733667870713730837176101180279586649966462832445806104825517031154035180369041205408433463510470307980705044026022151368541083147460279687979304687169226084849409081371264802381462754937961470488599296712658936277237677499299969843717846277448292990262670945528403924042809618340053163130176086042974114356412135635702651407345358436734810756093898187778943121107448076171488053036197738962635784389211059937593004911913316492210122783917189671265384395724793044408057002755040189649510355654184516174516310089760037990345696441077290307554782252847828494402062764454718169779241258766086471552766242210680696047513237982399677361199639914219788047070611863800847494111199490568664580411568457106603797193619914687206750158364265756453371352160892835623495692394159939231779681828866886247426886704530325723476092043273347006306159143966491334085773733617214176567003403647100804788942812172104679874408202194564206321562502419903038742675783877089202642253280124750501652429906456144764952446958793057356214020308762426201484825774982670445364479132127350493265446950534991939033312152872867054506104667311180535423696935404412056136678104706094667458729174913720747720297763753142909842377239746702661586946148120468294601426854193380038666645866284316869131323778159808827720163342686372236686176638312895193878490203113024163156468046470476829726027718275761114029969488527267208222635999820225268878819371949041154257700277753613352459836440156072397924271991030142736848324818835405274403396631729081612110775315264016334703308407631785963784058343236932960005749517587724212411003654187402205803644574898118783825081467740743860202576866475667772904913354351144446416360512497500843445694776434028288063379592878842253818101541929091591675541148032630737203576451031672127763019902092302117641687514607513771626873090402315983215144041843939982710771745308287227613988383377097308334973689911550251608128032201349549318226654411962376430097812717085215441566998167474683346350954923799741407392769544383452002451651228429540713465025926187086450597136738719311353141803503396001751842386055690414614842348227095438619274112049775351014952031348596420428728801086651307798432503508487656999604976530514276077603586617440271758106395515318810469384843733226843668252008881168606081553901776320176402932796061702528485180453943574683846562735841545248385944539557720137857429985776159130915567954573473989820916567503541651926514154226868121662834378430477072000510820004196586593384089273309759135273428746336289132888453849406566844854080837299564285232814973038197130451871838990488120628205501829351548874659112389656901207343878416664608493410794777911551601537354463555621113385590826798710108348518690917253212758918154748058007300423585434188140862496232443511713145117641400808030361162166245387317237014916907602475976254310015088486988787640559134092610374248478059386296527600376673242495867614791617425094699978112386873840728243213170971878439958974214165130939797412666909489128430837813405864829078993306831018840433924180619974541779600925000469080750508647660558204402971585276606513982883955234382874265412853845814559005243112444875092586187475589593185157342850358357415373302983170534233663189303485582063649321931211471524563977703849400330569210640423471038445754934259949220241980142384690657488025021652244536292188977972490258074105640422965078232780114016821536754420677637873305299213140363555814662620190297602844446736588300057890226146793317673672839801449891521712101856393844522466049831693476538017777605616062563869490672501516760863472661784750802452564104175028460204806683051144823272364346073185688117285135839872780446843569023193252222437316330205687874975388956053308494966884406512945410814073493727428818208787270030914776672287566937640626142591487623815572388910355639545032064574872655772470198779301586314455578084748112337633152291025377366825711327035182809086371232150575801032290321423637002438367414550279007461505884711283782747326795538312024596476473037941845087192848997269413986221930069609905698398508804848760991502267430347808547741254776928399052585563331643150959831333455596402130211502752748463556507226326329162857360869953021384233608711106724865708586220405174467061700861734824930254850076507286809087667166031569846738154873674023026871790518923717129320878512787438049476369006099215965689244878995844467906067154740344620951435136542434755385644815315759203242129242146186421445309129788862197598584040983217364614697192907661199404811877689807712232481981369249880267293872927988028100111806518912212921590711229932784413779802866741467978335660521767605032312094484194243048536761302881179930744161880221706349251306595757647234466259791093584237456678487106264899731196838031259848405794021088826153788735579469481776392200539107585065374565484579578344922179999814477940251075602159022583099762473981649033614746229621580355508655610983125392840802124317732917143823751074615047234323311670296962979357911569792023854177138270268615827800515512828326999965794578666410516741434660675704341480492622254703317124840715488408350998310319159632093371222882711690201500377003983767180836554988866830625309623713526352979076453082824027615003969677137975178882008416773999029993002875405435763107249774494850694836114824586127100491071928375762542714980333398581664652565084686121045546083308315290566772716910175710009151454863008155372375197832615793186535591824075247383522569200469413987203515250396219145278989929111387241593019132432948518588770061595666793249367698303764586294032715542372395219086505964636402283569852889111531379656422713423229499792837421727082115195440865186841389971772502105288811303054807661642122914978348487085713128638451798427054124182857957981646178468792274481427918709857911648349835813815556315628693327205633809900420310899075937073276832455088689625749312068757755568839094946145404991598131952852953924991279011339104728069009775914125986143308880335759999868243985426650135491709117052821542950893181624003814586437259536494268937997186037953600313196142019362970048369242055019806878064644096580777817217142615304082227209865852057251599273550785804967494381981915424851055450922614595277340930237427689316195901373812511280336785394788868076543546615586050184585091382854347389386305006665717260709555578825567174863014298314862837677535340776833593791282039851416337719240001610939002828582967566842568097334851696675004767479701411092014636301835275400282416012636138919195212863283712434390427914761997017782504230288688811324827794280728373813457013085515151903591690803012722011693927126809323634856785107613849638925302565981157283398629644050718187993586534764581375194519120823028887225627846659057488134136562568585059540378078042537830404876043409770937051644021397314766886425655011409778068674156507763869363044995731620315818754108263975692871545370030978164367019188498106084068537215547086468735174563010831783289593544560430784902048699736179125736594047590418727158422364020640952321365777406130061711061580318210638223236874868305914389499915720352207551017486979717437245804159462983840209938199032654470948082293798710464041626525686926633652667363312622254332345380081567106059155296058215543590757052816546084960278191391387520027191697085420808147642568831829547781913580591428207117068125546634015118806872223549828925341173443753705814492911072250388997818911627762353222284203601412011615620888521909546217848265066673617588946400973477246620195954478635951203318966984658348693302542726314273118792601768856823878185098451056745906841538986193585202353943871431644137109800472973273445655452519186477186839640312117046229128428696926876798504964876758932978584629598069486773758717644515209414915686466108921996844921902170250550564961633963483556312720784088667215310552946814151692812077333954759165101673068980648648223622403105396917374096168379356180644373104706920771802893040755492131034495762701829009980229591059732333535386545726248323692769781168002061545555391735850224824437101061505381721402419994498471390625303509879452176756128218142915731545390897446377851805345070061978051245750975057477574685504754685203770170930522097807990201792253927828159614454421450572312823228033812380326394924715167283435342452740603514739433187955730488686347135034706037446518705937098202580336717160209891405483156926289599664523572822454213730721097079432214852490047473400376546385590589856836324371252425150985680936647020282151397554647148892017837084721844084386850110638743671408612827228114582268557908808353358818160254198614617702523769532810018809701778522515549304343684926371874669892963730367460696625204352180161075934263592442461835424161550537317878043057328570837827694161320088268523338563821994446055816443798895216740005096159788974665994125279057792175808748023927860659320321066902636786900467421417949016792479710266155759362398733655149185406086134094830507592865175199520263018629461012786544674585865967445223750833331153501464670453551681834483527661438042552391938429420946010131268391859176055104439101547203820736542069932841675327965464481677361244199139020251084038649092360734471174789981282291697003173486071609135692426412229372935332371061485004264142217128254037071389193779954815502687103478806245451276700095498588877804770833730123333733196974433110973343751578964082977001344515337716233747473442797199660912716190499860933803052073979863095241230503358191540023843746871593208309198689623306525156818426471453077154644498481106545922830115639209064653676634797251363175346264336598884167697055662253171593768632047434729076634296862452985006052238416967707291545825895570035766100880075754213116450034464442176940960818292375159545386253279257587730571630376582656633948996765507005659490719847427421128232385744280163178643442510192223336382383174771504568296887555479186199303972020910881572071785242619384959191093985807924227944102213667100162210040903570955014634897620322462616301521980801377544600515201784414837966021171744475811587043229766857230553573726757759064052537434741997651061791629795864233994183333657229120559745597828842340874220736047323816149506495470370255679811024459500617598422151091737850353936840096650123618791434538997582189644568748935434472489915777567323221091151767158273637544362891212122986610371567975427913172850514512448897237801008266987535383503637821671648938919953061484013191070393753969897063635264162693207113969505502799717655154049596004809274593830186160238426045137087714023611195297761380313738890944128542789936492078594930556100002050779276048927245261604125585959726661698081980736392411936784394300053356054193646383681694341531321464473946015280688544953506480461337738189352337335452381614059455382751353384364121014048200280029363810300366876546863316523701152360843292304955386376913297873613909626194745300872593408270562551522211233589610132532854610326727532728244817573662371797575274627755613279675957912831459107264393923427388108417766686962504999630453936835165501678960973365119511817643634982372308934359701403200594114812351791002464810547061034824166942556640684885289198622451750939649882209354004499162097207688446168725141088663756786233868660204121965201761281473629558884011729082842235235278728122506153672062212589266629136223871162433143976135504389895197019191475132543919927130197358106296141749837634975444409249134514962658558075771609848483410548231317210893591489181204622287091247309887392690691677577601020463256081795886310873895147940689831262565892909931494957852370005476783862795681657603944494979725481917442778730647628501738163973973700997898355323423574675751043054046433231913816865476136012893694249334307397934209889818047767497154369805696030148303734684423587513710047783726941098627129421141333423789088476756894301951677172872983295121948357930508047466668868445498654574924316884583365612342022328970233878166322089827778006506652616809369428912215501661787735143464537170292760985134590097584483748855607288989872561110870491081247104575789394012835955251474922433113679394152745987389271674325281241925559183529870695990025626589445776117676845274668415951852713330280252823360258415020067008665969410446731729701195387894714210140610289020911535967996838724117434473706284887508608028630805040751614736010009417284908028361311927999030532079635097837111276594739156317003954939109582469180974975057624670892288414654821463206829841580464677020635570376781636895656140070884310798369159362229115622324534742650774149791093146317199551648206798939553793421416990381156003523910324227953152193457938854663692732562578256451785689828093552160758726485744913245850501926654495778074913769154223903892338237297808970440463033804316502215496730759565715974710466330749415843768916767662203733817956561714241946322117583915753438694223021464091353751193634543117589158109494792884475241866192297197101552623051644613683702638072171889345423328887946004228828774371017378464676684092533886857146611688722285727237708984676660748776394344304964631932870624200860967147256141529458396541477386727617125913503004271927910451320862827148661125515955964352224137186630616515192536455315960784298401825212656868498571964828395478067787549154807081588861691499228365394689397499815475824865991207826637295769239263324890331747462747285020356244190575292788638694384106261190525792560461608178174079046171004907065371159546948692615726138287369464901362372652390324901213788248885568984806497310959476893118967304178606700172447752276842622780592485974068934278735472370579317272031897847535720377832543022043796610064710974950172914495819514102215329727608185556272989421538950741900473827557414515716307764205824061327206079886109505626859964554836026565794153006187457690370690566797773902720982803281494461889915770239354826348183547654656083521458822724759774656726474505572208524277291642833880261461527150200070017098870388820767303505626369310952440605899230673518040004363798650286393246482029245594331600634812667788453011501989216314208465096165260188360459369879751085035683362116678609232114426642092362664292069057512297336476408999767097172521721859340023380419433541974134740277211874529298515281447070042075578871564415937718443432242022440858304859159358312063777577030311460902540169873050544388517700782395678000681651301711772565993946725032463025410096545087400994890384142347335770583899179879727013015732864135833534919859770543063414890791367107101421734259217141568966915818163145098622353822965352897458448181258777948606090755546171465618791356168670571699334788825528859249295364729843292560675698291559695754390835771909305300451729592215703290394626022930333281225560916160218163369828455006213141445484623517788715602606653760687673177497272887725078161513255106675988844497467930368561124572192927858971354762975256197504050331014028648190952104559405948110881359616327579076240468072698182298483840705501932448677436188903139823505660940840457310944285837428870443834458669736673182585120160216945643271111555877454284227783974525791935861300963380434078528548140258309085276601586833016317260846467905755897267135900162194762556609860300258439586494767354259783503200744641887416939970341063003904176287561658603809295535548509315909292527651124941726510881063977213767009084995019442877548222019207719221404426140157210732660756743576228166187812526452347746520057662320771043008756226375536975365057615577048525913893147948195228312115562324421836117422873704692861350237850582996137272375825338955290221115253385775194738520240496866204152263384393101362401412081569828843950621497748090082732500390959553760171391127270152608016291392557273836156834228102927018817758681164421275548952018343454967325737287104026371477879311315776493187124546319494793630147730055089007072717908651339626247899466334052958819506175534836501966805520942404931073194873096243071403072579232235486074021509617138834036406879358353506012707185076293722956669313791267140745016525884614429133011168187972697627788749152108750052528313478964941243296129630583373282040039566600278754276410319736993306472505408959330111582420598415068531803484687457886784407699361687744020941513045035244326608586938549534629319046174450684070936018005618317486641644714780630795795465076223463251370976803373018227432952621807638572041361279159345106994210594381663581513514564982414226679952964113047465847338256747965396115884420130302717214203518518840867183179185075492484694022356482958366590104563600961712251214183026008889776055610718447319875260962046609173062092664291145043666262515916065414185220501369360563620127476543900954778721837784739856714874624528468240837292189619127950982412550826430933403082018649037902740837494341382330876846010272990698136055782700249440162252796420263291484744617853109948263940613895519146265286898461219918607395964076503963889244492987972727923574923755305523709786902937862571495759382798271951605821867182269069268013743359702108725867580840971058711333470193888569786007934901533288524879163637996235668371506388034902723732390269995734624026799732939406502122366381880159595524533591777721166902613569115479600119397787697894189179552415646489993068188739080588801838264563857047207566308832112857278627283665641501059304514017880947114479849028808329288730991533903564198542951965433835730731471898849580953760481742609398581509404509541332089919539098930086991403736132002563585645503670199878211478859564616208997512087586819543435980551407930213960134405685605660033338956079920797338112993655523065126719806674848563458677135860870046235306672792712737250424649262212177847832817905285603460361868249617542867825084441171430438633163845804365876736507757406730077177602659355131874967799783656244013736647908188214174420325148860061553287615809356338066337537581981712856224319715190833165798311165875758110160487775212699271778781362104210106742235543709817805051070894985709653034407109676733981290324402688532402596230450641332560007134046159507912578125123068261193603434687406939640504571197843773688143540650277054597106237069248837348322144736471033671897405589912268344947738832120292616852626835333285103251726450462728223813977778534005421502552987671692124708520742066832544577104202369352660112337796971415486148890374966932542013880978527178974008500998631400659173292433848520222411073555568508130896749070559480170406395733438632511991655653051588208076363618719240236633756730335702795331860752615251555435026974167203647283761343090642952237077513181091518607909164565269771259633698496030492905134487936415972655334600200762312087674989180189071405640470439007752973973658826914005475425945717704524648142499504128041552344829624515123993981910825033822921290530354572783353503536213038538739242488154323382302004509908700680437480723286863258419012778028534327894881655464299698358793135489262560187717364329429235403573647022423846795966941054338681688501918979413105482257229141847452785384259688486457768023085830304333863664452281701153334491612570682607100558739349225670132799389263667217852839763565672400079751908698245358557045136495226027717563474301968313702098249179989985225556215681234759130738415849347055180104432045734108268676799778568255291969477005461557655306663415141345915924312830238351386766310000112242982381438124489448922300222392451840776280725017760471251941904787907342217747736560262098373442146708295909636398744606885110226697128455041010886374187397219738273408451607947643007747963252219909037150699518241660036940062461621942314707099873189904977959547116295766023546094593884943440234821416254679303815688122227208828512453395733483086777078075708331532300588692051433783781123117947604886202247197476111185758351271132615318911063471381689438205706576862476083879834808906020463326362176170767050131231675009245435289119598307302797348111996601444819944341911860449562738861387756593595892276221805611060144955401675749102870199482187665029984335712656283711245061929933889768166045849701348220152472748405681780391839864024007945007796806383932646060179659186561062518778036433015657469909559547589267918280191022857099715897869826079657943193639119125330572605012353876001604132720353298174390876742904020948413423337787133990608553610540943053316737246125787565751976490499490247187743301384048744640107494681295958712939238656526770107711724667242405879799700248129874401502344836929104649856086046886355335916963699267210811465593962005674199858831256419377740732264226838650603644410155221768602778663787004789587883357354154790980357490785392813048816127027726194791077281024356553460776692155662143001316920528324510459401593393415050845616602140009738365496368074046246802597161236939080923410949882987527233242945392849004556017481741328821266201173092051725619792796825910346867670802135361542071388121964281856208363269011022268079254811201493532728655386613571942624673663390030122986542820106796025971726200495140081072661815203668733465003044228841081293655702722589282997256197977404688235991474904771202687969708296845327802177959784921297168005978562939257192042669113968080835044714344419956858279160677833560823359791411910166131801233941915954371851888249989375282463694634324504999043548986489834798561795081805838713219956569370969957284836360895429801909070742532581254549860780121023720655955201829906743303618418565774838513820908453133396361901898164315743199428465232073028885344958738230717438212695585597145272387390801745929166711506356980619569107680933529265227126787879001311276931772026658964843138482530995513966784965490964475535089138076486146816956058620744709193421325709007698740332280604757689378483254292004436876356817089801472934967898028131307044182859472553859499995150660498880765627671802954094935314886733274519707181081173904302289313669989548540059211289335372278222283772750904523776686133052467553307060910788626752700273472184735631980792960445572705338498974315611792571804536332648512318884535661253871157119830401145469585503264352150946362904694851347749110892323873002919386486737445510213734423899840781432617800277359325325988359007108166197952650178699597867896639795450462300102542238467313134345315947918305144395008070972023489931307704714680303283308588836996086149162496142935922188121500931093786403370372958769481833146476398153828345043428235922236746325589447449779380707933323569805841781262209961387334562386138280776835084137658385953131260976875878491482146160338521126409339183889685972398172846146915426030521826298531336056819831785599207313701904877820776616851931184783504152345635192960973192232115267529714327790606663711490908122208935346940989377742286617525823702497362258300146093409238129770292729640363655694616335110227453827298610694750337544187581010408810925883474337416427720638895145516665996866005358435797499051766824835053511470614179224350257936919597864224524129124810021466333798227415370268063001139550293217373182172595957199075435906492864955662186315692924728859990415339982715385316049229609637458285777457975889769297992108386837909949136177631352797652086215414914089452544193083202752731253098921818229381193962508873054947107014866433304690794310710079127858852178066176246025769577821277347790966395642052625415083306361033979525001887137954354295991023430132804855292474787028330084940344411232063372491680026090984735609729892923599471723229598608063376580901378448849871557413108376940656507531002510866415576583541819070843723658060513973180437530740011922314577943834875844183315023256730956077373830647340903202139282008188049942676835811379651134765975435308603675579372902594963181014695922470492439523533091309716173297792685620395894780911496770320540528011926409185989413486303855333102173540623404084276135320563239621228267470323839320480890460195574528629881526294099233436730738812006262262833194583193263394018320040312685471290201044419629190448358538203156802622743836660187838937145821986116427214402446994498003390558459144173050550814495331699906947891693721674294646042206223777125290958504486148707745858298740899028093292574965089346922755912440183097573339645041416423844695251676351120578391421340513736495583477883988344997801514500477826241321345307595422477045250737630590935699956326509382448567669489014179056215323199027800350511996181102889864686541120615349492979094418905446321108477300651220378089027965292811589641142589668911352604540040548338755735188473854408377929703502779881465257628536452397344454980605346147376298582090798463366988377472352987349479776862959372303279766286125787008664296042667878681310503943713595953961249356564045880560518857730011566638276771895389815585517421562737570320020938237120253435983417749096620096778119405239947790278469952659379539621940558450092160281981977323979076600598503657824289433834707671840547038661097915409869874691812995261101232021682510619408548690289462743006520381765419366866729692520106577060615522925392951077584660868296737566263003445610980576834656331018451094985594047949558069683047096391392086570857585230592366544536626059596385605826494154258150982039932706573784662124143574282816861057903804616626064422141390819256299358492318238587380985794185645492433584487728934813987970840978861524628445198176207021894474161583909609304409108006358318646623232840321095346312736185988709251347902638028105533933031585845160040071303748250628340400884338027560096246655975053459093351777349476515693399733512039920143882200195811954568309617180984704192416114679890598776531776045484700703758567164019925387663279836101083354181632214737998392395595413648799246304511671996540953969394895652513757324869311608328515196222440629943821948373828223962585730773544562067451832070281035425554923013957213323459365613142886964673384207685953466241505745807077961910070294851418226425402091315104988178259682544770294758674493635224509804324003092500079208681807511513103268080620289100656999164549945460760194913073733979243020674333333757308860325316745261170367738385337945439218576786439625296137396017506318696437414020403292823349090748972861763314036688628052626021501405394388295312411686901881952075243428597739060472614696542199720486069366027270688999544254482386209636100723736935055214261940856639418245840433037052766114168393637078209457979627230723440814575282110591344260122185518774454062360391403382460922906613829752056437198574183277112501367077422491226308092822739680778855820248572847529552631063293300185494038003816085030858157294186323282097096713585736702038891732733540257765169220552533581348200225532337751216862502334346100852150112899090911506034395575282828783288668554304034333998102012834680510728210958460756578378591174465258462551867489188399032895885181573375907975072669480147961605137769875553827099795754136046791076450975436465634299653601961071785568895480721779758739452473371862281855029114211111692896665313002216783908216576461371353307661298866171111282625239655489623580631403774015257617276913721242406283708656959599194170424028244949067678252431547483988371423474674562230944921950881904284112538885797370647141345908715951284235406120452840285615390872382062123966490677028851417886439986605427455567988076901753977535938604329751517084449622980645962362141528974843282471835827090422747698716497564258453610647408310060332650935195497826232138335558082008587520770135680373992406580466671045845926908255575867814535470843320583925046038919432809555885253496711865356304054737391757843782057408583780858792530481656808885073617900545391298066288231502898810898080458803876628612584519229856037670433945663817595564717085480453631092802485771485916190965564368369821930215342222865385667950615544723828071618283310705658500967770377612200964900207492645014542312245882864449695131106028732655168200876989408497558806624083062044704783260789877471920028288531570641077927599054302889755464190589981479013035455609704223538113561667215832597041230136911747337185762252772155584042732276910161618033732525027096963019769834795514982044628335737684222227634483401879919663290674754382147993443304123252669832265928591507056409356444357543089059352152629120642481752950116563936770955166989889595984190188837811775600265036694534783164508466866717316885687110234648476544326380307342050442733852085800757618605925912470901101463295340453968286155395754770385673132197194855823038563257712754492405444371766238640115623031411253762718697722483929187051196491285719449392624362813421830029864565801366665098994233129934902696122482154663814914024076458265420428928286470412130852282586557503023158761237940458095755548137106900534690126496738692581929044757149863998494640598458812973256751103373835407820604644412472408121212308716362617634194820860917276510329992349469160393398789661967186696039801183794954847076509129946354774373086879892545782002906111787391188796145269189760647840679124767239184713826844340210046999780103345775006617945223487348908578185517187474011137435729753846751697705326509504914272240884319006389950675397159872164677102278635851024380362901858353237636602428917823823687250414898854040712956924020140371361912748428738498576369539022131556805496569451031498229650432845897372167006980810990696743543348758235984697415707698703800923792831438019017818537719570989842305581768351871284703625056325615254849937340514051689917824843342152023696398634378282364188981089753821331725353381270848874595916771743158822345592140016899104172075567521534001115586161504848034422749415414495707627718768239257372692938783242406340312245016081681194045564910935035247392170500393528039663497240022067959510044363798461346265936536915905666403121262204356613788972469809410187006268231888867512456692794923333239804768687506749952280010272067693181776722463499041058721684126617197937730122592708453042693706511800220994043552475710898281449557970577187192567368361897419402760579944056240021454814542321751108040608765079848920216247307797465021280460177025161727624422900954776341348262213813457148319213951312138292239130583949094027604281674760683415827346761007099900926989932444716800256937058482379822129782972732769615652244620847451458692380640099570974070289254171478489107589115648609696231524526940630219501383466661652375093681934488164700782138518643771450830366746553896100498093442669358074167166690524427173955867714546384446349645690955011745121719636992706306410260499755761687298990465802969702050916203180005208689609850436082509956991573149528879604657841170723118310435134167768415059603291474180260614217026188011475191814184015263809611359467591736112620860208548609993562842530713643186118560593390875849724760655559769583342785005773317556245336159263346268275570244771903613680817899668273141547493738823767159049649954930743361166349836340638216738860423216819728344898759699703387889918540038942869424715112766833552188329108699924355198592223326914971604029560988393628095134039782875445639749977796604041111663649337543315489163739977590529866281882831471111180560637500360057625577978413264144276845237578248569825888498964432015544296382872979451392229255502714159319445405991904848082417220663495392277403753862127215288678557623937529989895035917384935672526895495525467307376020778298399681686405838970729637248570834559985810279288246396798982211395585121696182263244925622327846385223253946058006822650594415767266030503716872320741841148155920678084925478505487161597340362525204183282303251686150296767747764682831595613423618274631121495611252291402491643439071393552326751695940063083624563370305348365430504305170355954258902633751383431892535071755199642190540083361084826612278579590114628780719314697154786896494575550923739075975604822489703697383718539545394988196187745086232099015183340340151922406309905969562995336268615005950607564219603938746324915386398599054315888337820653308089257532004853095500170147944156350505732951095199978797890893746735084939236293340984948859315202803176796047908107618677720948658892573138749434623667483406181633002994916788243150726249954881946656554019901775319620426799367874432554772565516099594067309413997457310192970728972928628665655056718672102526215623051359135218250622554803761437929228659075732780939019109452634691078895509342222024766567257711023141917559235264916974840901960570004823432693403210179075688351772923752157605617736129022083835530865583525089227400094578921576192356687133081755211764097496005455587984235047179241256590578609900195411408974622654082848462256575619723533351683071426038433327877382664523350688505575239052623996957422586572707540617231676704345697091534489194332435548537796644064991176218356610293405822840939245603114045142175236917251515931559354033312431072286827121775427897148645731401657786462095960150469355568565817254512809184238399816350260847600264122607047585200150752458246737527417083860950526213709138874046316509578453827112737797888985337636190159425453706484449849563625237081292748605593548587159986687434485744323954401655964938375335339107973670386438417928688556892902644460724508821441769117168343481010405838542723311635960299271056581896661709326762418376927204706016374233478248744198023457720720204418757730141156081990626855370951898094098130521367419968598583429061056039505367599360546849002568776148615181853450692540745146358647216856531966079923874421766703458386060846506463464902574285527549205173684694707953101489977972086400203744470579333356837992591510586340038195927512720695287768785253541495915138196129353136058561675153564594004112107634740014245181546619307139973988785049304812870605208567366213836812202674766821163326485033913217385057478859814752604534815596101642040191757971619401042641635011322179358532393944354072632490223271461799748664706420547764324326936765591058225571419217425157148997960080254208770111072289038873194568250957464907579297149279520012326922369133620790099911684920125098065470451298288001045640265786531905230403086165831992653764452230486886665631582731166552021186986769443606699857684415713400470751472081317646276938505895996344729818234644751718105489713123584033875034494606540089519896759253360791897386731460010813409771531604500295109776122052993138319230625970424381841898574206201293930389535711269311455341419714585224917043094793664596177787163265076283891780594175477258787712709813327817784558168457725612067803342480707326503929501222777321411072137081606014019157074004499318440205333419206595220686500703836327476644522483499868498287396022923745254872226221969297864223662013098296586859820079715969342368923833484182648624337262926694818331537495254156349033459196610011169541411086119801186665113419292844768959001202036141674768812139977645645037540372953443012655227131718899620647488489402855496427862951148324277831850423662403870013535358276736320947079778886911562626261501007197851754974490038635029433848415122428010675082003405956862247332767139732810493455842089596469574567609929029268012343123544791432804557987180690786643371625454231289725554151613530611795753713003241483037864917463161010761054152894687300168537539244889823207374606257919581179842444888966347826714328756612221053181366922566498699040867932079297781202222146730008175444486785054388943186521150528876687615724394659423327904444354337974576465661810106340726693611324100467638441621191571654964556640173599332273998581519996823466638008631917735317862864419225557623784401199509646965779192870944159720410784576222670230366692546776502314207832751183480593361802365159789277120396197586960325607116972528522517237999358458719037197321863736518555506317484160273496564279132160277187019103275404582446303849492637184160843149278026665952978574804683084829716398283693735839097129467401297867892018616454084776165074488855170339134218233454814285278795497386887047165555358206903267440805498206486939053196423083786045637760922416155825817701907206146449085328928616782842951541314313569410819245412131709372990232147445948601695675267970630133501410880645192901186172210906461558782801772277615045078731019829523212717879671248652479112938821350315402155683994249351005185212754030115530044400734621758176791809256925422362441374038941889676640569253048768930954052832288086443865701642102690804996635170595820635682045039455755937599053147755607854390801635534524459182178256131425487528827272478229727823855972702508956809530280542899008867487125273829574084511246428645369696603126292578394857322012268796277319222847497081420940389537336092658572083032804858314110824449754000400994243541165693684905492104222961442155492694502771346610312906074323382878598039747794766233877776094973524510785734784087808742995973031842729139049178610690216438831968196641614982837751767791104839616413194272023050099135820955882772355364911732532464865067470327804866423630437168563851430290093001292436635772163875549270611620083672171509323456151692250356384295378027848908541163881299161603792261222666087384121311964040308520342580674287006230606888757221467497612112295076477809093120524475406945890398922524205778100326507593680161728169397648529780311110765601438189378233257401028147193215410993001867878720374173177702019103756124965186593293583520731640802504449354624700821173805332154149881811011713055895093353548158173984440028221736674373403330790829538996619484570482909172049380036167202757314441697245698077044046648768612664330767657976226850301130558419700989418582855635160307603106537359054604610996163138259341840508513830692442320280889933044108985544354661183068641697512648375368830620596218808823332401544908091415095840841116874087838289935105263765734594622030382220850055375452927788718501188315916771350806675130055936157909097438294852110615026118498682346352871392951798705651509281835388949772636897365342001289292435138754683857976694960015627935538630584113762753469514140825157717984829658759930962219265393819897941253284806386513120948277000796153980349278662761875312286678575761873672027251201993966315060799809263664906263590325061259958618487837400585918066967652007271782330446939397009552833037676859561923922616415727289985500639779436190355307826617539282022932149379882401317637324051704119409504838167210158759810140294819456990093085700252100431064657555943281571727641820379337012849877470090632582162600337036767479767757290047370246283952416026981603490462751137118691627379383314574572863434671384924982806346323984535992535377239604969625374162881317117737087675457147704214541208278084904299659724328374575277484123750039118435948186033787742431267848103390875918840348148122865169642888397510862345416286439348202250918322097045745068832542378396918387715049979450643418602256619010437493085048509030163110696379744362648149932820692143580497777496581914258195563351531440224473398443318496246958799681934782335239122103147145746640205457346974047963643498282935740332335137425472309637073857641000452237358789529940742706330980728530774767476168490429734778149191575905267736241010814931154766478793980493507010293116575860493768273538153683949880827043276571067571016303646700118684724391734639627366514448741960143038124661711642600709235455240968968219262798516638255166666327529341751743162941490621659362896988853011313558019557275151689805964341874171939991110929597691377205914252668619659104811497797970555409483439905069901837556208453149420314042170708020886663786307764112069576214876783758853089083382631617461603932015610678747912358686401596286392455642228983792042809477158899105415898949707146974683768749896797803564126982815097958937498003887241976408027220134858062359091795396960205312326894543698864455943373203053102575668400745254565761659244294383752303484575194847278110618466064724206075201694774382066868100024934674508683493186794293256310600559197234796076533867099763612972449200402902164480268718968177622901293969958358067849554030123012656812351556683059820913387298441378123270099132292063479864029039404653826431751954109215882965457026440988018657417283718656371919808638176711750285702791504467817343352121425333859977432446121394949761980168852125776770448030418135387721236807085573356981790665050514463764242401268366011165657895411653009850459662508731354683045484530161688198571967863887073908296751550258043857661735982120515332376873488056780814566783635809453737358348025628668690109878161880159527078929671048188713879658401349322591277010824699228485165054190439810783872640646987687070540686166578667994751279868933758823835460411569464015526327644107472773960178879061773405617216228683120530700846516218141673503245703836644950712930351590115538442419614736864549171560902147120415309927194368469078493215484314534010737197788533291029867366140350107070767534080813954431064121452884847105357350527946358938190295748408829866060460283171451374955557142551897790213186560654188291776849801169685938135501120451404104451126972854881648131445169327860190700319325156568555933147853396407392914135523550161590624426390028785415942209253286958569084257761807070139054401843301518534764951633493187719623243184259075976872814775370644708389883602704086826428525576895497215328904976433400691634771319407989077147435873336832495750938531388819887163994600114139398883957128073981352502130533501072419916985946113443881642051424308588716056771650444521366626490083173812358397282207935707810412540857220822290407013510006185441437995721820240707934602011877861695059274662526815476510045948999208389228643273979717242068347594624495869467708186973098038432327660221910178957462165536717694559167647603753838522989125615018955175143788958343090083347531480546541353149434428548823071400729201397414426486875309187931037546058743662160357177454508395430808485113443783012655641084432488824534448456365762293018279926086630259195983675759723103061868677109195114023166632603164934642634136532312591081847764274567134834258012911298321352748196223865399925856069701190534019339252149210565499130098614339041993857485662720918910742230975155358708309165502799137840591282558804707533886888025668993304204548556800791298871492204316622131277660625198496103922988247140874936593460151621215419642707893878310021105969982065464562178338821842919713856900771618556779785218798183149590844702167398069602650531415045621419797375095343519149999893916342260893299084496964034488435422412509157513229941907477134690889711718294650493132216709034538784803002174403443080433017673605354820478610061502993179590285500501573330305561471026892128772200999063257206977934868300791820804159633241276700731625035191271348633201060916212910573689784942859299115760881204193464866148377071361934277537749594024374904473755297745312697088087168584669351381231835729867635049619884509849484541495625151791545248356437724053592948198633586383097062995462532120885584099168693633079201946145179289314280923834771352885894676957839282006906073817354058045194383415127019815885049903196330854170867309305275734865513436132512066489526194886569571764632167247173586009342219687504568975849329396599025837070555311628140583919792832957167097867329079850493863857913173384088531540477765017197507513431086378735325878663423039729684974868372946329168875122726078734925538776633947161559935976506161631985432015292196177239592723618990668716377312563769643700328709413829240536505284402042102674346759397292274639601550116253567498876733362778378242390046765593501197286555931291635245375984528297499746047972990542636198198006655860150489704621436251117303529120048272569424318469971372705605434409629279679067568982894327243805920978182957913330719790933564571414165810501589650351967508476281426541103285308655920023169904567724822067703947026974508580235719077315638932555432478912494212502898410223948490084621659560283929246266233291551761920007723702876506392842682195039165010553420472876600001035133791532177693493874725283449208542740639594530623862832714496782831083401336862621329073588203791496807502239006790122673856345339065267356924006326484471018432717688080592077165323056878726812890215880273815215363595617882635277990564549219661431664337134725322033201027260005126591358793578878633319982321335266512117962881162404552766775404652534252408416914486937003817697743544775436796995519440485250030274921378440745818108966366556881227863406214362812312954865335060257936226022080054690692471991415437026540501259280465479732437229836741954891773629544710173087575633826165622815376767525591981004269862770712968098254054154918961302887513131414900602822684381478980688334649656822940306381861309234381500104920183700316437567808303430605217944749300752967083967295448041780656256906019596152055596039247094989704249403418663131881198067430188689825384375190172661717674087740580771256970230364255329060759819895304997000587703333905710998137133136487442144462005624557907791827672736962993499789581436586305063899572915256492680218568489382902110505791643857202886494969665572081221222736847775078704208935290682762788052969229459600490377217489074005955771333676160006572418209216863246941076828045346128999021792276184294937434322190746819342892470490157773412676155231593056190062958188974060069521678312563679317258283216322252391779297044225461061869978100664806784716953032118808729545250069776076227467338573887250100433348783937153512902777691793530630362850413458880001318579558945650264252676016824451181187602740044096141027029741089614749923811690954786933054280805224587146565613597645580536499784816440696317738381171797244082147812966541490071078155867901743495229680683800951819242266715082862838030725852433264619616211842543798063931972415699644978533977260993013066666408631144858920115741637334708042207735062044708206996740008663295688749833678098951947622469869801564509154838878244853313714469641925964960223637608878538354822688762853857725142601156361704968628634062848981256257143167338343015794367370098150852403071262115595314218161370544212249163794599704495079510767421495955297835280751192243945550848009600538036679369265172657755484604845359530444266450578757450131068766816902609489572929644672457304910631761064751974156198865317553907954003316823833709341236677657082469152296510256250364475224382129420309063567573070616644935461091701324761109645391860759351568163360717304311262847918734914612314293002006187738897883338956257363726161476482792781208650066742024928731920012771128726846686800367680351962393098483508463404253092927783519897969859168178048830114913628640085109710215271474687250838828247751441933964202678308974008864712209474558452061274035105453431191711255341150162377740041016628815430007368030477205343967338750360705798396635313418611132788500072195693081817558663241291795904118372695962970918977484267299361182064277421017158158226029525191689453903693998408064823760296251837816404616308730686881878097971206831095502439548718815984781968236619044329912555021462073551821079273183557149566418292322764559283966625439095487882894363418197550078506758671993204123872733695911202875889984835119943904792018517958687604099066317470156116337366472634329119950110476964311779473072581662641384933093204582272845499066969270533060899243503701234559959339805728597533911152679150509637476744053252010139551128136228812441900761831156171385331684845912120054358426556320183351380871524044309656837582404991875660476404582648941042004684163444222780297626831154659783406984274039720624232065920386221619988998246993114372166087037185800709566998524269204323736505699168255252014577755541826445774546887045917158613614962920440002159408922632885988711577133615368077264381993341743719259000929791181750078569052697868403751979698551479267158287925760285362761408045859411143092229590855425494969719167336422216190215727322887858607048514154476756972998386339785192247415132362421047169261726123990901156736037500558831109641536933249908737362358401468618883193623650258827415827812394366399231106550293883113926448646156733588071250432951287624338930061874466947541023928066850324205237993377111468666345160225535479620169562802222740784131905619988240569757815962608933561089619005876855465463273254219393734483441761791834288146959410898767419579092976270731906247072826233010113969703517677927468927614610748659121263373057364725011373557266725628795401472782291193154448660462039243423285708658728753142272479013438460797582079268973479282445693925572587931043146707990774336213945458057916192466285644342061510501938243615699284449007039918174578783643153653151865372319862118748023238334521481678917070851011930348937609140756936800913611416182891051398477727650480762730334632757542517461047345451060756157732825718803303492812725495317653127874880470304462986525905169307411901433453008956903663063780639161337710102158037088936918607819053584566687585141655311313773514873245924993236515299103893549800557448656591830409348279974746617063166298945501697087649639644901557050372438688308110609424536126093567307854859610908276241437615761230908213204528456117843189615156552733491903245348708857724622287393313599762910982765319155658967550135096099646259366559655548135355717654157915964350236504291329498849797046577916966200710320594839071224698048067229880909390985810756195328917538285495208796002150869685262545593821685912311511112060228494865656731370489878518567093408217568327149074320599037522818201984745615060031715670812205779954954190324774222844981157854439470527752277830607581793434715529799122354985232704219989532745555714564235215799649103187840446801555689215613085178314421923627076604750619681731932370212612197361996269573676958131420052112797804751845570376642816539868246474625155864579953508806490975296636889489208017675527321479591378307904064107391443919826364408397238045590322169912107661860309595781347792328154278158269041142058214053393720877904486115823628039834724622652014054331857132759252317263999241463740220405570791252751424075151826057013170653221190762679908055725979849866493285977329523992752417180358935236840869260492157926427244206862531976332414053037589934199458255129761749433168343431673740435521800819867833641568309090250561997865279020622050821527452755217426086193259913308376819966036883838726081861771044157284946594975605369817199864540070978071360962514092270580694790467836874354010049112685989322006168967177220204707453178680130869188857197554974338928763099457488129714189986134911082221742869322326633587742212058792979734214352498766455544431295953567444810098653822106771759401851338951072317462003797281261525353362283885917700342410249763031909520987944182851340778430216590094761547300404001568760011816642277385231956958310635643274908282014884972275428951947117174079969436829425958627807628730881741981932786951669047570160067503514973468296576569596586413897983844362291315532559317061262693169322392569164370594951343630517015093020254114396999576911495484766384990631571343451277507571050410168014800256174845932652149899445827950106414313586421164621089705680993674112399367716168334885451876097412525652471401912970365549682028160458180558886147172153408656633490316460138347206095071629520439974560191347692847513139659616477094104963308440550613488619232578880527165648188385971333085995285603567935447709184289825048958120193412500964131651887933071764396183975962417388924081513245191671508177271948754857934971625057520774427914582837764165510657860281159001443791673532199252345859502569996465021062089602327816875532356442524868387753197922456255536885570488398247993892790835683042888536659115795391553961073958145949929777718252175944397124154699558896809857208039979468336476242598947032071409905496550408839793735992429325378650159435495348736558334355288593646446406625263688518086475644682671015428767809019047786144883372815398817556209247954423032503744782537269823763687787668103005684449306971934299632482235643046115982561458392989070593717818851541325971070710577505818794164411409073919364990437624893757786226625326623251281273576594062338423313782908043527618186741941524613547397056059517357618669497205298633970852868488062721940963602474368307898277560826058183712658568234454493758972713696364449342837672552402392918665344121263721202006268376918741741955915093099010034510524218177136374294197033089543739766217818100958411326620451382786622547007509995614941655261999790858127338881876833378014138117551592940002367116262169400349950606805258565377999751216359873948953658664687087630874941054319690601807007535598582403702723996199165032364613818646489774626522567266636711222765523222316861005380643281310682297545578571603622832141373140064701121077992389622545314854628215417195792853230508615573936968177069327454460574004970667637217370631169778702425126210530541109829310779760499280825047768213230467376711093571051736739543082158530736211197613582321837639247309923730645503102188885893172849262178875989876208705161944364760512271557418000943403980934452374943455879962106663401706958876860961141483690375396982280244226655326911907529739778513650824161621422097218164334661294336012438226671872187328377416130726270582941284929919251863496537604563978015340140034572462643627754743354679099157155631770674179207197780239830484488766084138769382257641806355489050113887325119194477656020626254452735938493420157274924808554322025713550822305384477587140573306217699192077387906890741056788020714293846290066846425156335341444122232612463495468481858009209441496087508359549203399735426190455325436067639698100484337220639629672459921666071936843656235981805152118224863121753295198219820121184868335472405395608267555503863953178018532731690054886804852117914775488784571096627416749224803384336050031043546250801322953274574117837273002523279008641794126282153942548572605858175335213141201088321027414219013692833417227214776444927049531384541910089844569850740394679229822614021610751981468609599737559849075788077378187051039940502338459973243802679185884652110439573436480626032936054651704279377122961062621634836699366859169478336658920279757634931796272443181454788334259060448162277002395015150310507371497611057982193986163070226111081435660976807032923863315447870307802764642343846207712869343612098080123734405320359469002866956109597946619660475991161932790518167172315648907310503039154252779925911362040833509617235469708994026755651693753980029944412527400705584636728635618503807674772580850923283829464473983291180554221990402907662686750028069302809590753586195542089475247131845773425168909971206825936744467750083392955577198755459254049762062172360697877463138158894460724265332389120383150300920640787527468849273006187274240910987954711291539844955055014977653531241661893812210539492402807381141884556305241613761290819503051616355877162601902106760354809044359205197504123862277604001657316273866231731304002226345338021147851979838200874374690645534379468709853811683473237237052853788701932018895717547209951351585347640915331701401330939458998865695867197850149463702676370390993874849136893435727599175483580337831587199032464280767643050977089775284313202934635234307663594084881467681223728440929809541792468208958468054944348067830909999960221751116673602009087355649336742284137009075056781919910730368299848411366489426085587636369370580392359693071979439150239869438907622597522484671107026453234188162118572168344947046499681141603684772871186796731119124095045953058928092647864576782676845876918002575383959678804486409391706025943291801433629489372334554773175097253307292356003882883596610493844728424717144176437308950236252636364996199995515872753686007724753574014521831354663095033346484676248432691998014888547351436202836512192959334489678276767666261771335747453772547051098787510204004856123359607640030117679111619264430337176389598255925498784895988305417653304920439291326370521809849593076954729587617074772340657283156190207203582429973831686275838682464581762918296895872934237195786434002808787769924746968527598720315259977001541870374351472858590384908168562645326225237102375752205123697328684241708156394259548845358901543812898174829777214287216567407369640304260651467945722413668930754708381288621157147183314156410899635922280830887934589560742751028476505525697768969940524284762873371058963888652902000568726878716250521150986050657497205004648056733700344350204011280863136412012652826268713046471144739885671895827867254974382068302317397061952458576736400505248225892714150985104343036187872521149538020171147510248368003008048081069618350309464071647481803826188613340826612982995296073190625023161902121791854754364107490420063945604673428410916582124902022054686612017408530517237448328311987002374976994315460102241099020210894420093163103654482437809974491367820166513396160224161141508036030960527906364662610427080478127309867917075530402139779865964794897617955483937473508962155214196180111092511488069517686006339224789451692725362919964045819254156083261874719510078832777998842177776833072683760426667225873678512619879071769755780946233171806233794735148370825987113262769484268100095167506371050360543681312876987694789780736038427466573331233194040468612307578714353536509465759195445898260512522539468202139854940060283589506984969565513923423585241346325386835235000898022825401624674735596694020666752330081047186320665028538258369451329266988347249651633317165793968198529917975497204633116210133998884480569614966363613951369762134095060239684605469983226291680526878168898806398029223481154192795660250160791947488960820974982948818080210074341281479797381016820034072263984829246461553223038937453421825564811495746584082605771911328696654884520596476319941674443107373995417600987921853206931841126262453441158772251872503731367393310040891783121819063422892261090514944944585925486519312937431438925757682112761952483426417970217720465440257203034605616103053369506846664227426986921719575460493335370142404526763678083417041405309808492762453457354666970978623764359770322808578361061556962904096323407466778155691389842268577616321259878011428783666882189488287542609353152307944981054968501295142882491727958081695299940029688255886143047935422411072017751858860692492263358100025567719787280334739861079250877478449420919119347575912410074468497911656530360650402256067272853618079294482736443996492228168017638387956838632251853929815759576897775185741668411081982702762124327402738672291574051166950659645220131805493970991623088196057072306555322783142421339093841387148533289977840144496655173044248538958961624079379040922414898272128579940327667207648563227680694885344532127688404721578431963095753936604166359005247961280249548224105723378244678800202082242079408875069354205527124587091539175093009149505906940296517551434844550707262961800240834653233085419031859051181214120284671355769705686706086778126231857610487567239505189423119411931252397981096528383257262001657326561516557864055136590018990073931160053106482425454055826025818061979224334249098671457909956006763530395378710390786076509386726593663950393957505422483330355876049757146031401311898873799125845459551103550424098702976692769608357327809925940882394145543024022712134855597597326578848801310106933041668320217703839890212449544320699312899040171389994831063392327749434746117051991874515769016125897860736763156296654817188329334548898534563788427204088638048927820594948821863134759985592626321118562067079195908111563028743984018042391025919638157059276998161393639202007356644919314134475081317221117292439836918252371069554016961211545552087318959637336675675291083843543854465905737153338539262383298465680153191643208013162217520443927934173322546104975303042231849794691330925673965913562965735527688910886058714828930343860230843680641633467514969964578102595402898434996031921276208294895089883702856479803062297592488810062652403127166910727868788863726271766734802892371235311157036455322530392651011005542948616476947410854935509141102023625597738435568105192172007112003930245253253518531102474193559600682757494884377292700691919139153199771651201503480330970037769861759259419468065648051254231560596150143424085511058807414871846271251121779616480256339134974502426521113499448780541173356814683374110820074462930128876364046541965110052644287684154901921608313566173972305031632662247603780859518835232006769836649396906306866154398372737797650117160866035156009675909195797398916676843286450703986335165322332769760859991765191736854021111726710503314121515710037039119148257014470076868403336416338473923921608002976413374984051683137662838168414072020252671908790172702580675372136608652110595342108235983879303542077631218232015768997248761784607309742677847880083346958927304942513838696866147703160100907165611634958947660588092858811582344918476619383835736584135439458115622465604914962895730996892015694566083400008223158243610807901423485983548808703927189228131048358460865153626073107356859482103480909628833636428986317094662944401332246467656384609484733294249290292433484572905838853511690919703177688348317030645085948687494527385115690722391540095737618517998063127237240087363188322639861921848958272963689639425273478255127272068260124416974292236416925179249292051392644198086764470138252627994571928769382849072919867006137139060359483765816841276959971392474955397732127299848431417386876508401287390036970335037722801035916088461004422394199057644772241039492535568158460762397940012834427094656290340808334217581217156893746667206883554829195559482847656283693328456321333448586841787854684779623379508728762790194298444241316253638172054749666299771976667239438787642528529098549372852968691759421360422694017427628769872554350154873411657227394785537680496180743163147737440693173299560077992984739006335520365803909524457987285573392490085214713500937364035897109920083109824925908882715359150586057965064777642533416473271691163619013590127826030194285830991873384869171433405685642868603231469695955781500437349141338453563925892542075833395965099873114218572284535671959934736784979549890685353669993213218889911000711609004963935797802996219004704659613440719249054888620806346172297415060329558889628640230124252812254353325687103394978342137168310601460043700495710884124120363117690349738894694675923447672864533555309444821454796474682939336442594455578376546548243992714690462233963946093563135857059375706167450899304778056603533686428601567810983156650147164998050763078627226564192675808038342259773788895842893794384675747705080144589904309073344380532765462373383442428348903441312599720451999356981695663206058812098059535490319367914375569594053324047817033969380467350534899861461322133401502492905094020567055878262717589308533315179210658073768962232815563768540047151051802568245424562583172658979191062488923674436837588156458537166304454596420609737236911896478083559778017768199690081402882136826680235402874331067719499642113605758662111013122601169616717078910349757118031970034326086543212216198123679398050323571338143300436322221278221148293878701683998938174533282063578080063378935831411088526835442951493874137975411323122681857009053432101328553263961082207986103678026135271583259656604742794011326600270415420160482264791175590360884292748258784149724198274037866325451970458928106032120798178034395110143015471764969353531307635547807561422831046711157206332563134181630397822649254873020818126091887914316720550169657175102688349829382582282642570892606107217434916844326684509460520012359451655255963461368149481994569922505270202202417446605005285797396913907962738715134862155653580124046656540284037162622359648241766615950897388388865481702989903763613381493544154175291430110528470496826412331805251369419017592735736752482563708490574296181934798505276777635727003807072444689594751090679714496565608628896614934538984718254481233813777239988528477323377003013879976192982872146059037305152163346521261387088822455402977520623861692961351011032746166079349696211482837095406384995543747384112129463354829921738624360985824692168004793630316532288067995872585547549023927299496244183599621925411130355618436494025633340683088185863768204368234037104130566673417533060898761614168306623669140077450112204563437367000078696392031707944789866913184455203102570440714793415240373319807764137765586624412814161999202716530356837308662339327663957224935950077329058011994926795752596493572925366201580686392457079119117087586684682047771725382823327753384263837296197591597641874760117442443987093424277235272367115337790458059573387792536169444744005323348926062468016287307506738054157381931454417049720189854243516720151928330763371440415524103142309344738300638154670233754590672873034474484764339361608626246201144159143692270458947153510012540504524242660308655694072534618092955348491073102864233139425868217016436771898701515823562220716150154122526606978700203582190072774077445028874443450610601301934292572084842888500605007166408867709304166983729750101438269351839758791652250507499927835428881527256255313860716505800952262901014649783303269158361117723672750093164915141490112605943301553074215051872733503803435981563081430767681289950500437827655942072111015833643148251450108031945210313479204177111957751982255957491085024670150553502170914121064673546462798578856665785116568874419959582491751421068255507387915553625937079713594483221521766725607094584213049331179964560052646100317521666199345945626020970895439088980551874624603039378412866468008109476195416764976105091608823725595882387897907567547747504128195372179044591300974346219664475474940996672725796159398561519955588509641099872236093819191409280568864073911607798505281139554990643772183453587936101625494632528433368298125493196839246981528547192716148024677185197251758835048471183897551494572246278399273977792633723339263311308168754486586716409775640111617085339532499148455820450456401169562059139500217967904667242661572291394978881971913575217634148293353725213613149460648767638338007538028605531451835737968165693750862224860927699754922539455793354294744220291550476461548908080286023997381816980701082697565101317062990507732364596787634367113873996256956860918582613120320793632546448008296085696167843302224623765425932639601933360537413997251573683002926783917882031618972325898643543320040289079162287230834067429539313491692165918973760479220840503316329448405592023755750020844676134786896361338857424976647139307482879354518652474159756467198715371791008124260165074369877319434526692044580577628195351568939896800905061071627876202661403023403308814619090681045685583914056607981421159515643845825738349953721182431285680668838716787127373410068144823351886537877706596019949862639572048945306590586954052961563936160325998059946298179520493020542233866373378121224839981570735716710902522172182876418747568543784434064156725430430567665167946899410143277484616292292684720697563569409468291137967389545162219680575933941050874445220232602860371070449264684042584374239730943838708153572415134526590128173182802851343636964882710952479973944329265847253956630370467449329576584696808731065435096753902422300820379694235433943282599996327583651051669608626339786230569228971807932159193038894263994278196440350536595997728861312881538609246338279509457624132363242065540253070880757106072131200261073392877267196814529191089100227242495916836555690209825796876058298417737021675306915887043019172065814652328982925367931114966839862066841600813068367783499847679982752622880803988843252883818707866248020179466857184330681410117561531334666255522422974008028875092722260556771260121759265210469145666082993041595840955713451186616147920074660594719717330372606788664523848032089399312226402763741717289710763540325055403813433935228115229034645960606064024325726277268117338537366126167283234093824297779292800721614990917873252585346349387986801769758592337487744678163077472248061194128022651798994685856757037365124829451620656111577134329998101146093158708979568040637245292887013474366520607778860616532172311547513891364235543557238278407825572056799153595077012170195144745087444650593369394785960352005649096891881297122261704684499804334024139144104649140166295404169739289008195745868591516516342308396646187703975991630245494328513335384103450073291919872225935573114694297181454630372908721874183463863019259579668397044675267596260865688067014473113835850966577223671186162374564022268769383529678586197021188364366520832388992177721630056018803491447168214817594860361254683844036086572175364960608740008394309256634529577430093068626216065756367026522381875422658111806351714740852987663554070544112539945283303916785775069103185219253416250752206559610957927702841104677336134896262492574223103112295955408359771825379895958397787223859133888886038864011515263973433742183761525366846742993204908742120331873596595701189423941983481167012921268583047057496478573956269331500701972256696493276022064376657496464325780115189647100569826783137816469811411248944858814851315948637215785458794397214293208142254629449250756686965741500493446572466407605296455244077730839066369567270045104598845766735899431039637225958134085051317954508139963486226407586303440835042918781112140836393128668253657215715690722209177742303053754429392446476604221550153364809415371858020896646189809545988170191464414492876667556166875882293896449464839150761236139080544099445345728845476917289542158295746728820290771713906565216192669198601109456483499575950225191996715464855614575126639257555290208891870974621739890049680776106336328754499649510067853997322164364768008268540507025976666641734434220009681916100430659499737739441362259373462543340325287978938423275496149679311113734518825850055912768367998785893226523714208129388438666267921061395813161861956690354978637584282305080527927757785418519668404372469866623739327396378368349000480999156891331254625953952244074492141052505259799765440106350070251788709023450829892763420453841431203397754554414100911401599169603564213040639824493727789867494261005886811425512306417323522541551819409009811271991776456618379343134540684437583507646302209651084054677876668244294867600135468316133553171259773448469563772665219088959679874707239085388931272189047751976306193936471966229975812710254963447602865726044057858918750331591930831561300514232109440561706761722686134205748474691255630097902670746582365022503190397939782182196645766729386668189991949089438447149800134700545667557621616900827122171791748455869754069531854766741497938896667371328290160207013432883152353752560810668336701404125036460334154618603340379659406081705543490497039055424254889357554048088336233913110389791356340891974485842833726941833622553956866017423255965890527980978811358031591411332914829282442028998237647192339053001686249573121738509433384750652729170905170246699799221229007080993554343273372974221416698761242946538088279231540046925339791719417201983899265011345996678095916595844857911516002070650714303063780589354732979030166319994584366100053472197728621126306398583404787643442535064558318910405815298973959042188295535152391344998855535372343816797737110132652387553771134557721698532492262484851886840419654712023899024493045157571215524416067087768868517260080926076644113693520722665466911610776511575301266493681087712582938137505157958451088839808067212629775612291154722790490901335625010315470560366999571739472475132696639019112579509246906575859932003455173649851046449776287926479084450743514668504668372502662085461429390343478621123044441703674652522725193273965981288508815670691227756876921580586908538557137687067837771879180130027555419173535101113504540400170170107201119218949608823900262923156602899094198078872073464998931984136988177024312293788368302212486219176196250052276343546577295691368861167720602124938501211929557385894028532584404391002340351473017892577645609589812209654064962095604879321769768435489235976629819629517820026672723840225979356909725535070594324114848551903652688644071699920813147969422769218201271853726479810568881169953117069381235802149778854274454397951498002155639963625083681599708009189381725457634585160944094540393521200552129189376110303573769600748596320967535010718700485649192049491772292286073047679355374006175661085228906402705807934142742496994299550180991095619681656484818194601668616009454555259895091319454276374228718622577058089517185521107653583538194298126001036510022641065557170362055233807088521485662413168915290524986252988255228263704438779425102434995334735198844269669934225810854713922126254086192088208770528719842954387801981158610151409830469829118696757504033571216332344064705167527071032512305155113874104050179863001806594560415237250879294376637448294454086439113096260983824582965653216069367516605551410441597167570191883947599687781334811278870882245508808781609680576368402105950584563896555266545006874733490408981388285341259348504292472971479820455799585929994556849907734135477299156477440967318966905631090507140579317894772555386224677958394784655444358634897011068616815039504257988403748616156533561972246936510787725636548671638560903145679572697915805397417930714536114329478750782711881998172826791561349384423715999468760573111098573270122784906627098621055020271721355320116152065704979958878821630077804089046823752877018942755946098116757890828788720669026917036304229018776013140372659866093500624579104596725187509644664548356232637056087547691676491495181658137353045875962881794926960740959182144524792855326745874514392065003384234679348516899055812995634209852502672232937221351567735920310295677033271607623101095772811164399573434486482917519850859557196612238213921014569903141101857182124272982336951432112668156429792918858439674090709165954233670284776487197257322200148454967218169389308163705391827838048841605172624998711782459081735737578096993208093160020538276919165527762240703114874078251857589106672568467814547769605074330055227735241847551271598758662952367644682225190732347675745097942921094164280245998098012726936736903181255509821572696958052843299454323663015260819555256706369713784670733738705817058376096119167767930138227990634684088491692567312202163072762611707156937544372905863556012232058041606791743621390277405826141412907576873923883527938838374565896889362771765141250591766396061551518134938171102609510778441531994790819608225636934673980490112796654463752402954538499873565820588069370981190141327655178186184895211100026148262111097000698606513552627855960728611953846141824210278160354275162245558285175866596085526444698362697469249542763923707062474134030156814630967079441369607485094526867836177426158539818097012209611384198389662663530596854942840935773790951519308665841813097517236677999020231254342056531652353072472891982035027023613873115730193401291192665436428712015328949745609750089543662240499728269250742749886079791750911948824473930249946099505139061762166306600647869434007131461394651779040964172655542122788864512270769905994198166330256768304302900278855435114735445135620999815670261110158926451801266079845885695514047737475035995722846646763714201405247330293644780984314636555160758774774875534398174383196250341349313288573966203648389251385193110257846047648115174466356794010215424641754239433347278424799775324069942961397930316615441553100748201660030103494439051479717862162069455473087462746897413750252711438863069743349330010032893283983720590780303908596761797869915142776262013061569713220457601067926160859729890243173333216275128365463444874328586895847507028481557549380827699000592823329354199083246738105974552245159102074352682346687882664133583969969985149854064839213300830616778363823037162029924732755143074236608173976567155915961998163323056025849551167446248421090975319457329462198261523768653786926617356155900024474721789646430612512940902945449838112940657284584452603005576856328770078948867713009150988546395575369439724796795993040007802516531921242562882369871526179906578626848029470931441550510581192912249050932109245101471360928331240424858622656170242750522820857932359421783116131620365839822490101551536359530553600402519476308579217559411935416825944900704211239731274894067007633974966522388003901957471814066272019843144060508495626509394749652634273811848163287146143908655056393529129097442363486153409338743795579015906593616271644286864534529473692895915033865545795583902703943253860762463492789813203459282732437225468206114668429792717739940197069071200975262778702498144084111964481340533798453943748806301524538173473600534214434282876430160788263552104185277725307674338051203230299926242325374152867986436242569042534739204579053903888656451926089283881906584952670627885606183971983468455033355638563146265366433071930538643750886705041794086917143942344106737202127069645740697063479263124289828721731394240502751589393661889234960797452399345887689844562844440141183308587021463947123734956815198828380288296210350152689974582567014618952833352621136578379068801445621868044621860091294010670209297071966973046081536292424143282697309233454503758259753230726723002715379948554566843564125800455322191138756737666612318923619135283169864088629382665955598138084749237307649726757354912490418281512658001871071698968440137893545232922077636076152978202104581662451945644765984617303854727508878088191737943203898454748858084575302038827116165467552371407417393827187066692990637024134543924260602718845938546226433997342559892194992144357392695411074848386571587789581037436298835285587599653652613145946520443883423573606732500685297750348013704776864871596791969143198485560592973931897157075616716623364686098284861303080777852125440811761289358629132257808386107045238476235074462261764072852231338990595724183476181780236546247917820929266036901577715783660998397056435085672887430007627565575328232531020149510662889135308212319046908259824646974727966986838679336396687131193454462416451838352157153413348984801358093010055489119744259080447672949278145738865419213689052336431409333550458980085184212994595165613056109790421348710264143982804141693180208063729023008277769296462637682747219795698775954137526414308905974989056709099079770297207933861352053102637339882727364088352369800509721686146638114121382875257672268072713762045509308197267001398706338924605471502731697391398512007943823861807592848457072792417955740418346092418357971517736662262998968899761168855273623206718476486579682683433063674821790172221877453808992925186308057793581026396671454061888990730461456234076211149347922917663988508066828923934206408367335946043262385817277774272632018203843472752742743546419202241385750549487053299024949556262923602717331260158490263193043083396451774985492678639803287569253299374283269404491672669914033704881178041030415644955391008722404509051516740992784411476352198633474719641972870086267060573191196794882952591897927331571289050275410480213515076093163345273680458125373842735094420127479748846411046117865421038175343089050908735480827162887280597854486923215614939876493423156564622263174192027292167664138762803870271596602090252146010440831195203087449544788164613678661537860523741522544893936368218749500311112070303667782860521240276567236932333906900896424955805956272670202212679183706506289336047124483522824653561810859123974966823225394032718646083559658010776110970198715757575240469255041661195019809482274392800579180808214810469882908321579054736783671031689641535635538835131069167073430982096604867986606215748141307547337301604675482873469114432818682428251041393183086614161589688487376663514969138288387710555186641874735279635585842451476961081890706827685949729618884385067099698378457411856094679491090654966839437289196552493395728313679675655278384920926054041396356756286772266167152352895111335354547381518855479909234707851258166929985249768652834297607207523242163412491165938831715965384077597253010887269064754507912100746891000080033623455742575869093336566754793453450684672092481991900598676839895524633997411719151842336340271841694654564223594911286828669711788401296792897467964242343123363020635422320697466658069155855216773000332723065784901936942339550924133439001911362167024307840996804846560079171142620921010565070306438233631700311710834423111558596000115331929030426480565482910011629132554119163025014758780420913988075839634047949418439351587026575127908298478658315415190721601422270104850468476785292005587255382913393281290255427513993246094474966314813331122139757562136077072438112801361278363868628058101782928725237025970989673286795492778159200895969672011751139478014194397863089557989949389609657492118464049502230457779345184048085993831671167348106562147937421152455730055577688886486536065458725520296501238887131103738597232223086763529428365970701684302956781610908127217122039812847566059159561910328657943922630723127992342132065448927126725777986113969263630308618779923097547180801445628147706535170323277259321258381951404114960901400148470157385870998797637318289830293135658694416980028435591730475114015735811669547984030976199693791407794092730497414570533970017416124800977052584675422763121796459424584495870682615357267762440101329898992629563937076235604367485158650429621936871699964327806755470313947674792645501412192042275645161110623762158199360384655276238028106168615538888493866471791825740146607985788720408935030378877366044058752942822070507196934789262283049644673238049235191562685272375949075992445450132514739679632889282120601794474018200007303666595404321686643828123613514164439240936459686662404539286508307806171319433561294823135710540362898641084541581244445542693117423170636673965326950374872041259630723657643802556796007050177006137799994572935068755585739804598605410463699227696828538849098363571190580772849733078647088673310420829838873448782664451082789804584752932695577132479074666953263975372978021030285606090807451142625462108813302421282853586668220694363052296797260101748256184291835549782131387779896041670996114098796169480063287910878148583529321715597405558516873956257963498757783151556118754933833424826573728847192194428753112419101332558848134615049157790534491035916955691476001980891855955939544187066129597033821232853888295567536202726888478650357379235920335117093028782159912215415624199082004613993338243329589895657723773174339956463923663126598416544302548531655955990639007887046779235153224221031832491840621226357129683848212965364359664850061868912761059108269069752649339724942749082860127236887336333202520973473471842006754018868098701032649308059774950931090773713238023489344182608701573069516986235565509291647608124284788417751128923039540931118434990304064701061899679138250289587856416590234353325905155531179709258850692677596644038523034630063675908046157574958402417379986908431880441575181474856895947345065346992481720701551181889329893172189612540131010085495254814283874481219793009826907476333619350370151466785380277789451817493255224548952233484843306550562741880347529157963371519521711137469093128346429907656611377568740936018388871895121264950061024215253380056239390900805753322800536828792545796232875231596293324848159141182115666604014458408940326190642160644457539808915570257268410900603648484060822832008385338187743940643457856264412388941472111584742925225371567435795239569106957758547694563514758665890970486241212147230435557786120591380066138724654544477355213902809744116217926489839921440289869964548235511425077396632287399426269894987551094703578989968719736060924193488072070525197306311456411901210105160217355051808180760547061259268425097791599059235819269507971232265149521604051553668334134557779547152856996745133682873769274285613544122804380967626407970563346480517258913489042309783592720836067916550421363630332239535244887295093256414275669168360540299034518857984251444037847904003414073063106682810002601733207221445260525127717905988852001989685760199201898653309257296906717721383662737266575794192715816491518174505064141607446318239078463882220479871055765609960861242201531556698894321554539590774656266753752218791429692055619582776633770015832760714390932368227525738847921310072472149222753247808545334196273546984807143168406104813891417048371713367049021268401067854367178350160685064721503690779280451231073206233354749369774902393489614252567037969837674862884659075015493895049058855542870332693155113924117029011107835743197466126958599739554727330241010318233150119002368111862567173408234870913518467802881604522654821852653798146474343573252644762783886721405518528990745790865778023894979348244316519603689266212726728781407177557813656988760228122140835784471670727295037489662973087035007832137801094133908969846963251661127086749065059742054415847446986293166721348411146877514078953284692569713576407082357656521154079915502841513396417567918074526943907136917310164258920303700993362799027290967348509100647121599580700465540659756741439634415883296846108582190203444288491908492387448894590435462090437251577829365132221693435680904186343034744396155157144439824713701119356587606962354710698234860635464182874518702971560042380987705632921471816333533205363445585971645097112460476044159636068259551471922874295150389317990166710757810560137357033754502702502510206234047581429077143587527095004021283059829825869987899817142734162176585307406031382516941519548050235136971107110805277002464660961116013617193841721007940423237385562703239193160699413123010628323294260590369398392906721651703494931466582237172216219385545081861505250426018942153788816224068836934794664226589778810988929223017974629590394759899390779517870268481534394585483503418890286599537844606154087767124494187000551424152360031199316198896765905880681316766588493978794118951714580190591633479982775817561467244357601401383156367455256008202407793968019594876525620735280405676364856085746855710945324493063065787789647357443348129358557077289342825915549493372282677756010136745700132409562750614246641252384601213939513330616499094566131629328688665860937081645432904346778003853769555238496509515106538618095194531957284851065495732859768075582855960124286203867564609878963819246207397730229490306425160527019264291125839293122661299157530778572338866220838425783998089020507019628960124739275553179747286686643798005634912832187537801992070987197698483951048950303624405090378627256288549169733906001502588752166460659481645400433212925505415505408775958898854214609491213245624898860434079267790731610546493506183153265769882138228406552575250262193774767343115659580715244382272553599486003612148497260013527174418978669455462526007115866789956082427752519582782954171574454931684911688321898345557361718496656212390666122271076224011860483442450188318171756607646972090531346313289050305857393516349160567562004941569756136536849787124290793985009002964531703522485117695358450746786379355594671061997623329076370451819802568806588736221947381742970941117141885890475941698573610165880166296087572843847618342884811758193137493265246931259669358056979536945036250525865529185552944376145620236447898674326688613216742002767861999393865771030681779947625633768469815092875303850434974029598497767179317149017597522922800216235134714751775798216998092612506266987252899093537422068605749985319476318387606311998691440519257326622349355981740875143936319518220889843627474043408251252068611802617738037251714804761040450397660334798545899366652101919716281041195722735305508212678077894944207030448690399317650416859563382087554120088425809405632448756254100645099106293097598314725079209119866427375800174096984860095813440303401345463467582004072221620990375245048476889686491897013940715019085260875910294362844334055128146637809187642218123625220308639463700551351037623806056656160684613962258788431702452666833610729281374787557635170290406255469156313260624977924064357807994252108898161224864859446601167409460405149288314528645019860248571821863475116952983641216817091329042237013318218227481063024746775490342742974104318710556413547366340250177024518629228981091803619363591206786176299274686258432349798773641303045273974773510313857539320816290845265525374400284689322219956179359077702707726651207615463162199841575969963001678878429704779236352584043527756305939190008553986197919779170646371502726073270983015115409312641654592803763029426940075000587395489777792832250936774352581465897942147087372064009406902897682589249268838640824343673254212872093150507384061944444813618805450844458218465054658205261251668475101238102934674598030818493068097391085522566721871414416453050846505645233192459223265132745554086588915866049787331031255969568962046169121748640890456528098929379453739888318370558247504302664813668654525403831681820105113773165961281396690610701774166517668314124398553877535134766733525711316493889434811201499481033749468417926378724772144161464048381083236362184976581190366998401426395691969641575678122728065173897020154069744486087236581889942455937265875101102532753216372563481084131775685080640622123609613602718298139570498020947826066117253629099154742328327356012525944782620309205762935579934939381847658473323217257058298638258546107353140987398484255907015479818240575282379734512335923389920562779067403372699673217150129805338913622895094995117928433876668155239308259386782011483809290208626756183330979935269651646662715960246760495371151188221300369507960832462159659285455289345228117052930283071037699009483293361222732903552820804638935730970194965688642502639240073069715568607388557846170652617445859612673266203419183499460393466048855949645047364606405567822256525462991898590235479951242833272586929622968941903427942899776334607303739273559513618009062102756133174863483822422332704404227990427696783088143762466224134105078819438895122338723892145587580542819309305818064752324973803766406162450053656466533549051418256610449089125561330506977199881074990056124703271079968872287920920210700307981642915811100751388714815555047192734760260313708479297649573733223336572538562724952994926924874597881314114496267395993183558332621455360585200779494378060668023209637666007858325672517791774242145313809012194073176092523678567924296592133768937811210795700493413164345589535561091614315721958302960079727672672991892683989237410068623726963568952925563483354444097678245309147650412467876370012749793988482189583518755561504866742904901615369232743690843437100858904442223266161944272878659141756074732821865838445323423368779118540327631721657373289652397492710486311177182325037928631854235909894468531158417464018071300517287202875155435435534186473322148452982728899879554486168689030476491433226160628492203332917577802827107287366513349638695213510419979747015246599564944317778602612385404323154337141250736561186427464103070019708192151936087548328812204953568396704231014564595981307955581584024153870729567863025355654844465080135532270592038518724168073397437768040702571363768978997999057146696226477024302891012823321397340630154427931442567728902783453585619243521095183490110678253494763126356277330643622507211996560752393626892163599919663981151244426929359688537764564769465995441203111726464777936362921972207800969193549977013097979723117178051335216951017181598868897578708008471837260789348223670511553175078366565279366925292193330301729504786978990715557154847382818658523353232265149363120398540110531521130006078060596780515280561216844772459004866319463286883768280013465237226398807149168829131984916256953663545703292049870334658340523549310736352539387614689087668484734021333020152503803294232254449774178573285148036051464230597884154578693742322331704564056886042973090567540684138047216234707907948315164734193044122774851038608114000758202501959193715488779630995518199216024916349994057922466859973779164121491906268435472560493140883193713137374344345458597644711861854815417933821881675914966612259582136897309131949470857557244239519142144816162903060156907337937411082793983200913566581561189344139526665717225450617797488155775587346482783626643212613270983525804690396284515909631169279435903284491951872575759445719621391361787394105743453617067359075005554356170828757211383068730215261689978655840401538809719930834281467109107383956819812834603618114759158052923539375138520104533761364326541292336552266580913959783948498408961302298047664865968303414905436230641840712104511367096780253322085524873005993182600338416862091350977677299855066674256913781851126421324606472740016151306960485872829952404687188645725469656242756022899792342819544265151067079274301805353818709151917193702150887612963846634142565229545481746000413379360405404772164737976432640403659246257315222882912619244300456479754648766952489221877103070618776205881121359755154617293794170167656821163827271005564881908688401753552221860373659905480729295133862526180643315159771961172838114513920958147339480506938520759253121623328143576218035018325176108566598697002174488756888585246108799458655282630313009745087341576375665717292344577634485180752736860514701089840535249493709433762759851831114375925152484284125143461731113533681060883123780696176926176545169787723597643461709656638248336800429223954545330628897144108704908477498707385451268809355268821815187972477547289803117779607796209379415968908251293936778573371318920404473447043527249000352302234089966478820488138531336958176701875074439243929835636330568116885991212335367577772702426612598582137957564673293701880669061139215117122624553137364937087770959334538311230385010683968200709764269841557666702403240345414289132421409002818040024142733585576539639758402218773526869375787416539564074203235775393849505929349606595366108332511572164448263775326009069187584604436864508441341913244899878426539907347301097765926547486600561756447564941152553890040365183161261001745655888362685257989980588744236540624771617404732858177455099481781758935546964540276934497131492997644900292799842705101017767012038125187057602869985911365096898898873512969682502410134169279579175653500408138181905200536410345465300552930171574679131463198823985400958486968720544635236795741116796669581105041644037363268114197513566707007590503268895062394638962828755590695930035540452302668434484555291133821942013385652170884665900729341997572475674589578591760600589517381491735788173855725949584336719256171436827166982565766950770513515787773874103285805518332307334956762840378855691153827305444719291161022583570290100292588943974292702012496200913259908445087125727472292515202785877659987894496503040977877365310543487558770773148482424569593862113780189019098893698761713566907847492763762335027844860253346071843888306383865467105250801689543858482520591534413101958526694744471927098565206982951934182087006829161285196761349688167259780636222150072881481947101059020874081534493890099076554578727507362765146204385784951538539024107373936387433202102716782234287966511186781514479975611917164307788917877628017183936430157019503852237616674619576922005811633083731860494929141010101882349593316300658700389640498203151873710912108184542766383708907261536682267102839443746928500393781123433263746939927718639459068533449267583921685048889144816313614283000963130165280574103225314243951577281422418970185663960460569760112761956830983757354038144669459137289830030895937800346299495872501961225588455755576990308002891239061434974809581665929246413976738065250634853522687594693391077478084448678662878186878590792375446495839953370226826739119954402959044837770707240620459345336390758836334217774680758923160895398070695207154409127806147962294074706244944300441510040059660482468431492452780077881874723991783295596877659676019042138641397112214088566141207628283130355084188552074004443784582581360652606990909638716970692846502664400341495963769302707508568187828954694811791183156301196513617150343795888780397050390357343669831865846129545292837310996865339591638310546666415105755348225127808107856805949749628142352896973711574889710701840162050331201378266294684531575922237509690954453761926329510138015807167514459675239326377672097975717872387395853660737156552994457204138500680229231559544376336510650503203537651168831509957031332774868406203718667812112695295567028494678477713410999614585998141190613232873183243745967582492529181437068653873243059450915856162938629771145506518127539821724407942244391584995078984011802694102542712104581376467181054082480796330560972581126119322397227338478834575709706823742306124672437809864480947237211783365704451670086664762374313695172656607342537078914591286522513789283923765588440140159387113089277640332707848362979164946294062345317312831938969014342426438869024401682364265304412824434261169509307710129386277370557309950828464630449771057562703184154145134779763063715150020524495007936530088035895062814660766072309365723833268647737685129419311014727244770799687196853282467064667963682920983972386559042415093948023166667421909913825305805270418671761978415405047116669353226148572384840505917900068445479780167027570672541649253974156503979040862118001174915082660074996863836736705430116954593757867442502778976341557678135403150896255615577812122148686427262768035193375042974303110708863021147556741425318547961100214199448480613947673550766452363467387227073328794124963668314385140992273122501363661691295980811458866414359904411512329557508361383462700674658901413622024854900522729574311336079922222932452031789828554731669797974916584350466523547960989112621710401703709973134592211608967750839055003208412596752344908698964262088663435805100508566808540595983725828222625936811275508627071855039161857318965426401087888578314502831236273256907881431018590273397860958190521002149653473452395784448615703570209601096472891511500840557967817260703391540141993031031761685798820828754205255976586563689331298699777680871825704211688758700854430705472366686523726303598049055314510614064869698332985665846795927550703392106746047618313165222900327092132017666776322728047934818464373179985787082627325549855846075725176811466747153466247374606102818323045383062938123941025779537145320219432591665590386362254622094005730405569173436991427991926627136640309715945830832177407322369638038578281740954039990349936116510043352535584709989375819353566312995969981796129882989421408057883697060287784674635669556928004597903238590854152995632974076618183417663124825898131687339459289283499258178026091395521775551483383317333758933378372978880217232620937443615583655832742553060844550089724936596363558766793728212164284524474950581616197669126913694902757411740643615773968926282615163132343548461081562569058100625791854575424601124915395403010661430450179344286411429774527938064524886300031400833908171496206912343903237852484902354619041679256594949067949517724840130703201417068610044720678010021607176220073110835953954153689363388674382728029968890381176430820069630024288504724049421800094346392586669564758291045654243671112898691740998122915445323297721457657339624483011167843141689931746411681685530074219437607787190101039976459913185241668529503682695715061174992153608460918764152678339440640534824536663652571272053124295013123531642762703150234367848533619386881286838891985004826277585628114150285005494831205741051132888951120029767060389226990298367674250460838317264727921600916830142262730412625672381382851745999782581948932711519340637216237859717786350842289649444365839511074994583118030629360887897482852097571434363132352099732277130670431753104115697182629133068231312758358080090367730610194649828982289390861734142891553231089457941996446859721375699912095174346771016235996339748005055017417625991035674614511200185072417178738760423178127913364989373553365829133046495224641234738711110728911295452140089702388503903616723208751601016465894519420930343404438619528617776508751827817078105147355248057018620622983703864594559533964668154052588178860735484864509081371533442077250341016614158061565953033779765776514290100834188959085277172730423210617485954034288377870831061577978577555307802095044999447707128020480966073705144593795103158184265543421499737551224960070169170048305506364569418641670767429153227604146172653156390996756645746400390338237514083278880754542979890618095496458517941349219586277794232223511369264469971712409698212766032851589434950280471301049761597833571056852760955694215831224454221209326481976953233482344682126130360612130069586796135607776261496505779148842888309218375450489576542163464467090870622083801087579213278282390616280194236813205379878326281741185019367562226816958584704659155525511445089062069211091195056366388790755934667091639489541545178978117907221600005962224428764454573938419817203095735612233693524146527824460579619501052929601573086755334839618944799027835937562756239001128130933147378665893112286575214543968680868564162629324831150254525950180849340377317158454371944696756905552499250458127782870642984159035678980189391102769774648009466217369698336660301570117158787029213343695042952901164028338533141258884655819554765269355493114770074760184561839901070656095530523736735368120385532019994897106462099897317915120251615966460952833549820416632007291431622175433954781355605862313645741302982245673179282718869585777443665494741016364393738421969813038170916188214559730820415558518415340036142200186379610127058793670045541400310580915296284757080683348286085044171656369616169512845061714125703618456646517601757550239868089843085166810318711891129532245557700808148141241142157577273474467929865070877874069927694206579588831975055853452351698931714829461577399242336748214462568896335218513205334373066607994559016935046985724562168137398037504815394236878515768327245917140119303274630201781760024857439920502805044011853647021613676834396200179999244223525557859054707662770621634290215611116193359524572629231504718454698226539882339340593868478933920644714982215133873015552068513785737831730827960133638702790658304549675762704567633399711062700464010561880871538199857536089910172739452046524136827456056588314761875372325208912493007231361256503451660594486268694525668813824345585276747291508298015448183573940607123555680253209788090198309404479469629762863600201865145891435371816030779233804763284895360613033899383446908707710299500581918184892831866790272625472414053855815584399635877506454649974614821222808609995556673069710088822679101633502661328473489570062590485019026209032238740604798757416009805802667689213040941793657158435818820946517962091190748350955704214174807090125181880455045478115135557396188665248679460056526554848180913035344165776080523192934143830407381307928970687221394012091100417874830025836602684044655318532316071444705530992897509802398184231182590577088949313261385299287740554842255948063655244587586904977828545040173480320573305935558487853375604507178540756183281901620200509981480642232022974088131141955881677575208186966208832684715779942640006880351996009460517894679558660506898342850022521299276667568126106022615558627692035340822348889227056228986043803822790219083086120661527933832642134969530281935241139320478948657178434075511468919005749118398198495814788477939734206283410863924256146054384283580236003943456447487896378670524372250213472999000717947403232368045451309854069259645455913348749027883946903800332201023266657240200598945973257923812371621689707298832957075942389960340943020004894811825961764981591563618419394612087842420810100742875316923968026579060574560303232292589240511607769450125860532153310262588904672841849095641592173199169691675067818297554907937404775299245294417343660731389492912889944379444072698026162323338563903928256517435630936600501033715266099387107158304328891328238693023214469081156082717158538903023851498419380464667600289441028893460186609488476733084932974905000540294737817900804738633841799776190625347054938306143753170511183132755212515577578097969029443380017867609879349814318277686832183415270313730286667856949302823519436494388576228965555243979300935502111145643825191087502367611472037846672010407076132865487701326214049134261422927682244175397047736377160020599778038298722855801781270593467094857327547423527565137096395149943060307272441918047494318502678735977987969313870722002700147471155174813705813367428394372372932354151886203172595000453736634135806428752604214843300309386292958218444727741318938608336891960559468908276101540220616415210101484799864878559884150930919460076678986370852898880708609962846421747063459333901351848834147687898519120767104812779963267815473291274081820834813079478324117753859013045822802045539982084237158606046664765092144123332321517028147900106463412355682436629068116723089931671727415622944692991153003486210713436560242357717121500188366644636918265332815754093216318070913618568695950680871985529803466236730682666422579220060869375422199829855741287824114322082934969502285105520596474964927914069018329610506815695947550524281211263853124988693240871117580277317924010296274910428094983850986052266850911427520870483431885981064332887709854847340379982790921017906895118695847345123481952989604659572495089712460538462747185898511462107490862517875082232264205364168069870601868073521446992477173655538973424870429278079065476852302087300054048650351223025000214180675982218196376599347508115504815662468931081047579841514648070061265419390191449352418442921992998201052971753856750521871472936120076578717302278020037527237858603082906620551796064671370493866433359738033224337561164147228602599935330934066637491148268088394000782809228919176330596544857063954330403785159139114965643534369184715628310014283360532481372852114955647955643079572425925477163206769196311911419631306772262396896300577792391757800956803777579904479731594786938866176882356224885760477723285139881025708883473328817425589917075137966298188232134496183098745817553862936819071485317925358644933481037040632204147701613618277004400121838923300152231047662353412393161859497161061538907804314659563176770670273176832613673379345772467979845865764090763231089406577794587184324094441529687232714404666641994139632434294407508919253495571961843991324979382327435136118158597987989387916737672408335848088427208344837588719825128450635932938257969150886218310409430182917599566535504042232787638404258017248355031823184390651234276689709178277023374447612273842837865350711508892188279175878310272172631291041363533832392773182603992133247670023111405935694741776256670606273881711995083970448210832693156606299115198381183800296006380527453571054507044200773911873262223323626210707598981424274850610449118219949861822998122164830652557136159184458510261414947746975676963189861241090091793001802604177092860281837280654370947486889618030750224878381706247191962351055694655519008845348496888914288966585448854023404552117868222631432120758730741939485047871950906224492858824275732311530354875242437135360772011539895591739273632377677418451036602471312111590633974680822866629620232806542627493297710681494625367627337825050515621200136892001302398425268817213385910118235234014042530159206785911628975629200474069143962143296186955477155282683636802423875965181980777778559146577552712899698672443002665524125465878503856009356636726602032029261235050532575296957990735585185342935897165568764906279256957501152049710608682474652800881520328626930215627036063799419392892354461747684174784126643534006120003219086601429347975341638012025135359287795948813261489101253424473149929663980336157990073655751740626682268079159531529950967163255021845088147083005278996446985256733850027243661392615545035511959680779438644274032208337979985976429517573858550114048714834453698840040048754907349767509283407847235337784526313430834304762696078333137722966483463348501224911319375221646600848074417990220562034920432038776662327077739060954197048088031517636060270813301042277561417085033625335706234350699211487246679590381367820647536699936273026360127992255108542253535140587605827129331293273596957320824171150111403571866487301514900356144601019253098589690910438596685044626453563135745021165555511227500899781175538917404125325606677862830903998199465153761426702028008867571992396073058063360029626294020377571764292548189187312905155715238587398999709679241503391360754973631803681575595726451429774572080754603836577319257108642879010380747067261295494055051841660914156220208539877347495425633336942427836098859022637691638640738971700591204427682384857040354283014083218454399460157618887444700518806097205906276156192011643974638209509523209386551600835045458360539357862123498747993028276914832968116863882285546005195334531970272364321917218344768417245598051801873108675735184340944911000170977050160436287768120150996010165304289315277079099552921541027346776343886939707746170965381105347672521633442315467856278162068791551548966301678965638156649009409599797674214251994246748371867367764692255091447903321183761577890567365090646265292865231254918668084488806301528528549975426675232246105033277658924021704620707691150486798679845362407669818142904195004904627512278284069812949548368365841515293463446037552738978657774164305763754433846132166276952223971859421948007110901608819556134293351987572073867033785574544686475663567552281373666184593818622314726925524600627573327075763144069388998026342284467187197131599511436336617316222916859500040511516250306102666005092801261587685309943300229833992692901929021393771294399829795257679717519457536192631622001024946706884981792649955906569481025889400315424065476404550807505364691424238276916037069996472623274132393096659102509591795659409929267595727752612184404990351725181273269782141792029659853334638703241269109228109210114448146272992459502309944970455983428323945928109316334132927407517345390858731532035890574026004300760668562076788122982480685659530488004760177309176247062399705121555991886522752829667031910193648326556949259958866099972605659498598354274975427360975709948067781895911839130166007935257226014401443688926560322280996977816033404198558904717048366980172678654453656811820854836361148697552770614590814209348843348866244801189368236676437163044657013588100801669102591911751724401818962028367743168088697839394162339120122826977708130001164079241898038121032525814443785022171687117417649157243832565113307334081948275000918034293274020886488296283329680840638777017599927450599790619191509562991353731225110737877062191206871529280731765566433936304041595562280056959945077497074487878161150771186269905896138154897294453519135623260021813058032187666280239440687676152856260966493679463837198762098145068081440932780136827262012793737611098907669727139596829646355317918403663328949192991933983238259055460407712130484066607640866070548022700208400340021605313330214236394013325741753875976028180264555801621355272273732922097163953279063482611402723901929787078062755100808952349972582673941242503309969831259512347470056354343245150432946211180627883042945445762685111441911120761226942854721369435239717619379211376744450719670989361574451376707312613373672271111838062507274305704470318547630895980802050161873438944329449949617742565878066480229023577112071714892015452397805420476558333474641628228485138332117157176562282890510016995247449644395990207728953873905128992993984635760547555807113514328185940179691298982115792932673398217655723601174869513742286283146491985931183146458600763611451886043947717932095425284295551323783825801199941241674665921806037628503960085113858637323769033229022484055455765594650600820365687613574605915083732363641686922471076749710728233457366728960126419199115237347153902759879809401331666513903367434548410495368434599762706376572297795708940475636798536489117746664954028906231648868344805001857131884092205264310273930754382042166860986458275156072780161714795579780654128936081825523790714322093869039634804339110568538547466449366687774495350320612559811093011874548728988279976446469644050523779578621841697678784365211101215940822849933812509852522656459829507251581653671505350853397767665276156301424887969046863389785482558727979203184006167560153695597697454926382852146323873683150118238025222921805486934524356465916377743997029333580820202893951997354037844858119299231734326541808266178643889427215226764021800447997634648720614032042806354823179058771548729210605858142447077885683181879440529378127988483031902020522742552580995638998894690381257252682778211970765851486350678704549011277876412193899064334372524291412248424659434502235839014454037278213418931267114958447707575534753218267598693230427530684123293522217315622013717691292507148609578858922798014131169691153358466584489628188255524457295068529441141286723035975047687839776794162531037645135221595079567551458110488951134336865939272448762579720011216659300602141148396812007215355938783104155601233410419830614907682612319000394534372825020844652492905683128382881598030870035414371217046328909118925220623821375839520295769401595385317028787143082002940783676493205277773728603115728908644839116046535744555966743205135436688582850970878814866917317527471180795879590541199610111290906391497063769959696581136449435910854691089870464665118765307318912347797321313380715175882641944099253991479739800238225029329766365016630176050020951343809775522401667129343740480692845708342959979215265308634692424533781150241567380292042934437810123598872968491851609221365247827234372498422156292643143872167747872464844685034850808215769158586759564353881921680044451515448797778650343081353225534088186694454157927201672644444074823925084074120571007193010602631116107515819905295911290436243987332882856493024525146216920179466343465818383204518935567952812621382996399326234624774293925575161886415431902241074669634893462946520703218691896563187516216335996506336331037934401827395971358873165030033107865258741391121455782763189750227202978760184948925986408735261935855769976759015243677625163309867583376139946618044544204632121186408490895634665209876295225073207957477516137498067464327503672824030574547856085811069468080871611746848884478785249078892438578809644558872255018507519969413741366049202579764196219065311099694737172049207888271524435413645292293085990468359274297779502866608706349159287021588616064921688107720138537822542968854203907134715979707468876208094494102572499975652517421911874527919171432460945395040544207196467084758525274029398438758772651174746209363224754900034537260959940877491268504170648705883979954059750981224769628233386824040310940533043263603946354332902034258248987452537442016511452240230148747379457490012015732634895872661596137205746441130562413983850022354139659090414041030623712659657733185645825553031611807763913791375162596524565698753993806835604916495417257753358004081145900655435461552877629093345750828226852865906653424684311564458258649890305896732055041272728587711417555597380021648651217925802114811004227574014150678477439454336011404878140829227487962231057582151177670513270294997983996687419444550074949031183413642522363059662777983759737112015894713358597937137360831344664491521045558271380464663538434447538367858735140380840481276388253147031731456789370786162523287315458726756109285101783702924144146144249316505981688105106445339835649406804150113967809292469286710460042862795798591189579807319731459158555714817218814259737476643849773870116866610068726765734220428414484714715699461708715404190955529022452203558323776369483557568315000736360854029257207854351521380247164495003730769616074175344342757782011946991006047536567828546167753984443611730886027362171856643428727799633557367086208724992693051770825857336365950983046619486876035578691932439100677963635992329769061549381387585354428670069035393527537309914354895611359910329486223583122648834301425349254936696444874199772671506166437037789685478367278966231822276089622919704944742663391581096668538998514966073666844787057306363713732681301531022616844533056576938644237608081204695835739034360639277829736506807449087271851484660793521175111444015911824021733926619284651395099235868262399257953155873821270745629619662624308295329376299422880260186832396282734325432750069896521643594599222744325699714686580688920493963507600006854832877782403346350555623252572722537444098584081908708627650333328236256297965722079326184614144910518010218702045705380507482840419328244500318710054498210722569485489912031367152150877967334347176313982989993652489028732498485456131613705033847297918913988588573621943881560613819906004287572524457797964059048024541945535908112475686404303720257863816068196777884365887588452820319979803445229803018428734935903710824707530363159503448135088458043527207683841748838257444305152531440057296503511833489029634111448975086126352769954310313964668262768688556442133204084450187172643618384050781377063288811160140381495440835943809359044303907268479715054060650077738508433259176768834954432063134000364439373994849989273057403275114448579642010372282739328657007146125829449352212572682897590642374595268554120292603958519651579485990240876044042846103346415211044717454311922613050404767554103616071279386316230290752915570151764686840075773041031442040331766391395408531286405220209178713429634584774219671736731744182836304948974883237427121154425848868304070533616939792686984581077851000309472229735363182815966589249684788403289366589881864322011455161973208096903890645687139399818292111578754383076502547627081604502242862991343456797225662181904564416493208712339961222893186526275761655312516481621587114519458358613344456865306973663689846613433183902187796682199000709714322912829751892311057055375822686553184700877211430994998759961305319670139699927957512536975474706088085001498762946318436973821616231358371253621338545246663621833593604310892907755229881767328266932046110086709967222835909403914476651415279612041755090249262131849657270209130676272054094285680559771902549596291570118459267924628609874926450493806360764960075645164393836170175742043767764861437586416970556957394908929387559022848434863293023114793460937235512878455112355540041338351146183001252801966016293766340113748809756006722230554582918670591973362991238263232826414957806494852552387744459757166823052985452246552600276725641167972301989714792504800150672195023693529167892993122346720950636508545978823900479133997656421611439474890857359696141764079663815457257130626814441781903048216862050249460195659394508025046303851687503072625318591121008540033540852831454715589328152778949049013929281485480381715166706790386173480713917792805691876029121995405956739985527217482884015500854656263848954231658662896424910760158398314690258983054547594882445043770185901985195710624775054361066426522578764515937341712452932420526090470480543819486613801591339631902538228293884829966982178329816088370388331490771363220251032496542034309416130288032241094054912391105414818909081751908697268794903356938647938958812074909033565382549437189101860539408734772110645242638125898288520824365348340065960529905044615244019534116076095952528932709895850872840267401647578558429426808118601672137960185258455317875780442517356299611150180359256809895033004667919746287233711921860904744795166737177512034095612303112708694944965030685047940247108531159031953612402290779217025365156788843265206393786246279621694468849157398010827735508834959606492516337713606630008762412276559801555150830213023934607598611445306634561435188295948029997546365473345262920083046400604500001337800850164093794779908641534541939435193292067035750664296633569866515344840147598260831992259881438565010200136018406655474667179221429670072668709202929218453331378988238584377626740724951278877057765612027150526165521116884308325100797243120076234725163504964957169782756158926397395846957909343646741372866494861812403198058896670572149314051605463650132624491837577896544689915064603245219877837066031261693052389459326305766363994452832113851103641877056574370604788049785786272356825744867927052650513697051019153145559173371100384127822462115144671451522917310143293858565771153996424823774452628329039531029416460265233725962294109445284478125082490226275572333864214558470007581772953255319918305105896681403288994656306403513105976626668207727430820921707912009658892693704427182685316733342927343881190246786378789744386725677303185277255904023003969358783897079327240262133005462378195428794351675858775371619075883915635380243182926325055295223212323023782918226506100797041680647153221306334303757999955027244693916647807042820885283379977908872094938008835944700661733071747062581021960338201595449853438907717135345589648712531275256697498515477660503502422109785466547697019115308362885148139053350042428324190533633595842808896828933090786215730797240874644861104881893156240329555175182001081346939966405369261048487654648345348281516738128684982163370601827435363857210392671232881805962980923632192368767082805907096866288789680032275700683910589704113687445209250483862335199419192755736886642432072487417340219531208875855647480265592275506563273628194571121515406296902553026347559250462707971053279614101685833084837196572613983603244939699203813657634111749850811096507350581836443199875653860961724094680091726567540491027683816287222656754192785664757889911353949616240034492266283857141223695755759157944856483087532065887871319771413270414835358930409103639724175562429690780669546102891847783616859359799509511197432769717726702280028520211930580188793427894459168982207078717010188560652110394414184140677559603689282624844813047351719371786749284467572294972446303191450995526981615561546856939173680698541746397292293933719754904241244927387834218497210356036289774111930380120269698904746630347964570411983746434323073250913594730972235579816402078191788722646232096061142112655828573820397917195380874365553511703836479473356260815493699221717239923990648418249623533796870029809872389647348781782003037286714866263421736063919090062659308808931317691510879862589201712591708505969056139500274112749129311074167751997321326400116788531306773705468770225418374335127743042316763703099133270322578546464479999732562128220301230220292041536520889447261872093364856967033503074992462205289078472650735159490270940647976055129587663295330181832821293469425372180755751571105063852596788110176133677025429816424791555234364185646482127573122897916641780649834057408920465605249472932796179019913436066782399461045031432487890626580441979971786255766105084821367635798879832959755741511550407801952209607278959367290362978405544537892281046658560564626560897614815492564491178038479826879010114552945422217790151658878012219576343399519455901673934299121477695522936846672533308965425509842098405331530569275718934428380253940742146331827058194838667810060505994826451429615045421481640813990990294822707500813720617642249122027534350822486947746122623061351054800252115178038422062613584040686862532393856439459411629068025389666623470239552000134117481039312096160635742641655762274328664623631452476570363888172758707934698757953422048103959008448061073246885828498006138268871000642877731088223370844682800648490815160446965981720225270320358761382457981799370432583139183877355596653505338933533901702092910986912657169337161535378656181109919477535385912183903364994769966092165839256864285695636553140037759879800894623203409035756155998089618539379239057523521928450780250802013946258672459406297108029071058597999127933629433542077635666758462436699641424667525884168963017257008247935287933879179657180139775637969064261597222496236524648708019647719233436023882121063947601051228574407955738820451916004257424767814659407040337304772032329796475830167739333782746701339818868595656659439198987029188931543842700660530788812938560250142901835417698448300438095609749846199677381708092347910398481164083464119747666816602963090660157653705773608945819884708659448897126917263726468453636033953659557507250279443758653773357371224391722489465640355953388258560311207691032462673078755529463794303342655682425197941885421776010616764420772772173036285941565775171986772500721094798054457903008262827941536315229347049049873262191241877027847011291617804565985153203701947763887975019133964695676276314448181983047525332071618319677043347958243153507047837952123414347551199829169556326857880964013503535399433433726749579891136798854421297002766282313815505944603326133465436260210364827111269097129171353699420203341432619944494733417655914351219985802815762079159294198164424971898346335516889250363878886086490756760529595890656519123263667301754590564070427130770114389737865534569794709512498809415258753416225128206207850607688670413405072205522844736350613730517440675284979011818676196307703089241163666721884088659989954571055159808718486562328622398923597668522855678306734203972038572921881589259200325732714358691158072516785069671267346344933331111856809532314789890028278371633796539004390102210064615088824170502506321976996801684752350329961605851422198427400797088994920418595303929264455721329717836291766110188720330280957212871060599444592500420755679713219385436796622313343298828639083027153395189278852573850502303207833320218042207900008454881093647875674967487053193098049268075266775211137453873878613405047343472488502972592188091318493419990036757885176776961482048183870279218633508676166076308859766256518215503103853117876229145432895109763883532474970772851351567120140502621063979225130585303867881060388987215788020272967448776913044004829883725567716869473426217210818118497396126686404170494639498152535762052672843577837613342821071051621156069090181290324620873163291952833459676970161050476936337437024278855959052105324254173912454628161174022350414823434726567511451617246022486736094246786588973162423869293027079507374987365558419952094359131848756987843497714022666707277081768220467722336251137008052533614567950451456153952556649531591627640948171542301079162249257135284877020897945672390945271182076768469148990680751869659792569026593438272478828625890288178366143412429457664540122265624845941517222540641859446372070915175383905920230541454290732452244894243054684098688525635742365015778848080445026413896429872671665591181450604704344920383584012049205709496071160582721058174240942806720082114514658219297635383770750900477948176335206155082884140331102892434546947871680863441936045054552222980941112829982335695152684199025278027331088527083644000776984610142144159200998340598333576604089696309754097789355267847962777645815516267577208485580440170516587874038562673554597370793205605285589759824014363143060128285832214435661802470331818929226719449552821126192973771579880452285891337092794257112156206498626730132693178920821554426245976654151663120199158656728277206644038509549389661629691775831266659620926376197419343431998639823479514654595587416924783345903127940302888724686619397978535719772349572122973595971494794935405659717787985484558226189202535396426989182124891697580259932784525008073024248728370017940290392383232226194995367444942405575997644512713960066275850501689863897943930515764356274280084020665289237752844109530617605515042396961354512422246792234897069790524380235694856774743834683852594203033183532914275824913810840233245759977502873482400479931331644583194662513565068487444211763042118612744770878994998314931405437250333437789425710971896378648820714629697625323921718893337277931498871806510176409454402870402896995712029598052743985664780145327099595566634533463907723600267704771287391351360885138026893224109089806352592093390724994410478163878169149575001408729562054313101858126077133841798060993594024147415350054319484293357645095293698753567067502392017295918025488239423707617455119888982305421589582244113526212710546942928070790782959253309986046435111486248776461139894318746681026051571991460180970032699078399733284298892957660603111731858099719169452420882550953996797954555854515244828014486805662711172732678182078885192018435439997849770751706468179175273438299169508670150132323995416356287579241589015851856220913658962481149451394638852245693137589833380515872170670537639812037115876551726162213067749744385667672378106944619273258535555862407224668914776230602452599778976567247893520599568163510299119263131899479015110226756428649955729575568866367315543378976519454087524019325500302745393669523610697485965170452262827736840966006910441299224619567710911458655722801068537114232140947574528530406009511489073966216406856996729554691083976491771690329025724652945353055359841925193890326525919093497754364292928930517926178879170805302073813292639135369318512410261242527030555526482730549841432673588276660856206127148100140587738327751522772478084753201794659482986888683389925566515479356437506466824010137099568823703551228080005612353578738660179144512658346478834227317612545047913626138403821582312047189382843269066001728750632971403896509035741212010715678231669271602024258501997024735562608214044804080192448444122120493901334956923909086607403494778013664740427623498232778840386405497264613319589515410122555301446056302164416633383188075308223837360752077653451293695697739632882783314010502599342742650741305980344442140261569740842224121810129074631287420923489917427909185330611909760510453201929488934666811755464546145725953595644025513389163702739367664202231934183862000849360279155432840210961533011417846681299562073755397197682535253023071198296188755658981860048497571635021198976462162171411401705396301285032579281576448773560891399876929667414208103491056306701490145978969036338260439809918213729868857708216364522957060775719669079469938119005769669753274842361907082493300516917855496192497998115364065163127774802146664207360431023855333750791609583291486826027533355638490980369830586647513660240738631544276486626614690170552483954451030519723040752124138798397740574408371702629115310571377905489682188336369251366240167827609728846588440723085766523205047389119380519689061861287889896301922979806064947541424594146481629424207873875241379419288018721300776215871262797438963847311655414807017244050311272230368393784241594802952454200537532554706421757783443115392553834325168201009342041285791632599602893822054574969751996301634663299097884071479775463304320078862004775583744548674231975110536434906189481467406424328125715820653854923570436747994380364099821466595076372762624097935325052055143003337827949561799830804381755659050656578881031559792170554277021809734944565733627022923403384469299949532840581046182810755210971261590432111030724737933871430601542764308831773621278957620712138923363216873131703884054347543548593354732636004248730388090283068981201568209873276976035649717292855623363350340858342014871380008339887462330610814828765371487204769624849511395833833579817229582662999867853277050198414443612742693963359054408282549079312610413058331146009075429419807058443228729046082448079112691710388519734542517111763968161213035256848688083592830189265653550713204276005515350707819172013610250563061052494958052842270165715773616156535907958621828783934055897271355541171833883647652489580246347592685484901688838970884666303053225911328594727188162363245849372692796477690963967827814646082219068357827830959932070092280965316425592776823356332093025305665474164033063713045421301226796262500025184932376870861758588955222645230367373465603953339602872020691865433676422468679473230375107043920881345742803657212453495419556499263272275857485460224285658397561046602009386263018169958505884413272428838248876099612895756153484959929643876148464752050802121053992731512706071197488687041984737651271578444633764139839865453115242609826976016422258393998372209336574470601456400606178759247884071995478910030770061628443700434773489125186904085815290539139608594266882530150218793943217907338509703232242519479540043466541708451854921588024417199981396949365936527292612128716060058060485523179647395864341956129974866147861029329725607699092315836014559610308032106947743284556066514539665473505780241357216983818480341615158420018341091698433377241741100283883551175258848059186420576401008529803882659234267305312192187231993207761336998110480270166305343314086570504632808132310732120465533643499915279008507445759634307530525325240731428146900710963134541760131661958144569323950876583171347010398352538672062407800995514395830849186014793352807956238429337031132207229063247699674115852872712439119107959003175091510007018536540840683505302788212177488423876337603175918494531250076635470885545149061413117021663274317871566357558010923541360663479126911443041325867021793227796385562634193991578781761060621278176264614369489613138161016389913092932862593915925513676296899251912546925107868576211907694321535922991606630462484732916480587463309291694234200054215533220343902555621410380838793545158950360262038143597524740277413745288480918981527953687454973148841527897609481944014902754421124924244436029720405681882457303373744981693596680235002845321052245961723576102660466874088177775183270656950161156797996658479255755108088316033122823453745347928723074744470164505133794259370461952886099958514888621976716297617593034658258185734807044530394346420512244300373710040577952779108194477760530268133754737917050867299571072569002489543891143730500677187672241044986811648013025154270578573958699409094386506769198075278766017865413526666028257366123551171306925601579806242951761588753775485501972708823923853020091511500481114819338513216822553954075390287141788605948847616804843463951958289572031899278486037319698928389182301907083749506104791313943625487781481692021342871148294697755870377771209223677060102214103542723419351870594053126585807501477572234754774356480845729750659679142112997778852835217563328790480829049032123863565945647050377243670593108665872363095374789877756638312520823595503332819210075909377191060876876035375825419762046456700561564642893835954148687257714804267187001457992442150604920255284797365868155728509033187036281901096380583871614305599901734659761560094203496115843299219831031669441691461436531165216523978370256903388028907263210804022408747309823341473419840823454889242448091396658930485611933494426599460212750520101667661875781591925318387382211833771821648450917423903604689973626987785033702123857023036218664502012638049420025296995352178898198564774388726047215929716798197083046956935231415167785233220746746365723494084709240042877723580568411960125372161071650412501831204847697657861535896965657294715433353169163819007381586803141862960234572294896366152529714312453045908348504644328817722082824845303592287777027086675280186728657951751545264381847441839151436445109892724171954275537142395698710351788608795869443634483701193438982482982247164674174068051578008021352196302881773027042613393709814101576913087023143362193277459036441991290228583527733264723525071025919706456869801499869106150687955929379425044846084073366229727101075150885094880593131498426257513778921468212618851525202412596446978595630423804247675327428461286895262053854800058468848970428620475954039889354273892601527544787036168548188094439656576033482035378759529839010454370157043032405953923106160556276547905186134948673828503072205302677386062381046093697607241745034303417677582637424528697176007790779389274704197256064326933553824650007038656437288696584968940183723669091796353931811573147186514918185455069059079188055287965837124688764768069760898540081212625732139268960915383113780125115160760415714383899554238316586979691829124514219406410929139380659409066973047872130249587060092150997196194121207498564872380421811997562349788473421722914774771615342665124445996225431511151976867165415119976033968740859857370282893724523216257809032046889844546177327964590681718192436291567508186416071204700684984325102391160480774208212230076245332612655943537306005230371232519593567289410994544190358685072295846238332461644785656157865818805472144734521040150922928326677837117025139512444913088755929866044919775385413369678959320717682921410588506069926820669197456281947752120032987697939982433127497866564055226042854471563761426530176690187150217716534213320968759396752306942170186991622729697165528765461309515155620579320597211973084924344750324277064206192183969912073973333216793951201913687480170273809973572640316434220656900683025990644950306907599092240554599268067241477645799533218525064054745655352647715271971824554230681974451902369651939817262458882794587173104981309910963648000992245169503473251722095250071938319584356799074420492796865031756548596441422095360346183325796005016456989146286854762841412204672428302172809950457814411952476255712736933084396271633370998886430605979670980534500959365745640420972948283758025033626624073368529365170430383604611087722167169195774091003397375352319399525491965848855036873526635400498656256012437961082726132610328823528810626760271466076736392955488516138594329228516287378561787921996038981593728456113186738854418580453629632998642002550112550842872627391715901751023557158532575060074922960245286487789345590089758562055722701712956430520322726501908127477143161201957419740698548533127424987543957261962278730373222354073888496356059627633877123303281393388019316522816891874941077938499737878827493550299009203613864247294937248931370814390058071368866731068237579668109683012236358154140817570003555342670923147597720200031396236515909165251859328047068363354356378524310914666863753611536311212250311430911852200734649171557671070150659454897474034921375759723392306822611446422234737932038658069667987474418867650211657024461902190552626976159386213454767932312853088646109043009367543497884065211167368166755466359516147171285965475765671215252728083490667115348245186576249209450152731429258762908008948658375736007281985266677852980014602752354264404644584821868821349183127695500235223831004370975682918681786115276916743694140215692635650482409138037893543516569302378723647278918869942992350019410570609193631282506768614729688212524090665230903681239313778297627308357394965094773386830792771645526049374269045886776062184861616293075420849211149412855287996127068348711263112754084729626889339556624103133878166149327620702952465990235872092259921009628942709152790046585864557181760662072560502089535492245647976699078859998846594304002737358186655409295894515343361283035158987016823344978208694324565592078200467045488741140323139471463442438430624783515812319349981073172739870437724943016698842737254935175330432101655000215110085294576666710132133405532638760194456147844031926823814548223065921321604144636038970784300873300701664570695542887710809319837746346623292465323584116167238065977475493753445640360726830230332100771041702704878307264210924645164299574964259907996005459086880481865463368804626043719074461629920434680874571381025299995375316540317971497387182379656982524861731232134740072810618890662947677057124190232665373432205628497358216405600780231114120102420157737241087228429206375280970635141047729129862921671032293114209943426775066443439291296009135801578418407471259206632621858288671503730090268407053075188328678673705885990205247288177407458995118708669158595298930611760962547842952997475852326188135642952148295804523184986143510102435076954394595690883059358305614089371003033684464570386148179558952856887094651947687364552707265353859491537896136171361826255510648341692375239464610630978129672314070427853752383155994057132041480824941512878593033710133638835356659932547388326240491882944451472947143434920581040930418936926811359568916723209416201589114352946784183310999863924011262656499153546603058554948618299993019380888539949949416777514751439503685559953790215623624583174735182695228358021480038985328673757350900070648196368440485135612294300189844582809441266582017048416485995693733065169864740486752665743028194304682861672136496304853194431271176846077265753419283035206944434662688188501641747521555216681948123965942507967227579162580579663656631847131316149522104259021989457944535120601317120624689956104339333173411068039318662940316407624841707596610625657648820243168216788139353061867464280676519305048881657485860444302619515620484909697741738885318862336818019885935867736106764902544698269066727073971138259484637634702603612701990173736617923605530787260180029907492914670958147712442725366813584662722347436092888525469547198267639996419620898535376674185301811377693264432260598538190761782637492429132011157189726402824024618159251088471613129011488793139461892911448744152268005546594737704951726139008639559008276225471189733181528544910112323695136582403656297917189097059445418097971289370826035169543628055123805926686102886879154007540213289406841833471535261538228841816117352710854579398820795393556814110525249204557917234396245291433275843886585915407225013654490760918658531372412690984027078950792384467587502752606703579539515415689662454953473733366472064102812601641813338022946616371619388551457991327728135182784291311951189418642921062197431808873013277193954103267809766693878092384573988035119634307978723466928527051502477769359616064502943465411772779360186560673684983902040895471466718265052988276529098916675260196103612590900928101887637450428575221165020737579374727590875474484386333474366576280041700115757599356805127129673180358683150107700532761286387952744488757421047534585467406470265099436992963585920421983672607467030490587405628819559615292266080668693706675166820133636591751324755271449357977660985142876813316928210285618153127335845280968944297685235991045913420903897625347208472464470306740931682643169621279177497129307306378175821141340623862378169253910538847689159704521779271898475137430607630717462392338313573934068895225500471495809830752221017789784722658216867051384249314516631326255117453123209201836728245825220715376412759251854176577095435932592596540337566669917184758537256587136252828295703813287659236590059070325434729787747949659465286943028470176396481903216967225180078275435979170583054701753908634403770891746818220418675823490560797600034122001480848907938989475330182056441889498798883359288331074963811739676399881037526301190060937096228959356603843959140497886991346113326516970693083120379187553136608694456409530217094723869210702504583339199883876053612486546883010426797767564669053097630926533039451857121097652925971163201263551813835853435147877119675450985858042893363258426430674044866814217936520685953204082779615602543264440512782850298603405085339381473435526945526070755139810519725310931318584245425506556860899301983848889510344974777143829577148303590716378142364247786419304027300796505408606253903404257580246785344616684822091227322003566514277553112476257143343321501384011975392185264126400345192384989124048613123766955895167373622056429911891129787545745718113651767851818352287926038747345782808953935633803735389828907514017272136699588610762344642239709595389642403901114840853000723004713600464456469988806393855061605555788652297684796273472641920917273053032912478419161028226366908512523857363371261276075604513813741191406382449770133786268419984454224557344151096260741476917148397699325562707461055948379035002177014533671785534331083347949899572030295371409314086632262708167146910779792585905511882378012518869224379153618516223654909648035157002997392868004002097859069491628212192222163960968925680739592638794634500138737525003267655442315436127268307045447410730220325711923199432395036439939614386206045821381274250677704686930169791963185867175217949191109708144823708869315961160068985846086842767916470250187203796627725928428698344058089894564220676732031393370241727073735821737138322427096105225852127036979252996425716465166911319590772542695162585448811730636705414264022084118954194502384389899460102137425678705332341665949828841477410569576402503478723044211365439597265943091132056611001347858356205790679641936957233133391337433836466111240392658246299513541423138323427847611299867900537644383883939393431805972555920369803395980079531780079028272418711974751114020587822187083888869031820150097444855498725854243850783456959892044583667723294468188085939050029643670598224089657792589404168796709610611586665799765012021769912441972968367080880818000280054830514990877347670701187266857793259309119334941278500627243072996844142921910950404362667948831650893176982956776260310434314270366889813167028065220663288963595064218629326852001952410355168187297590851998645556758591431285375421208887589824892699854145969138342379549552700562474225311446440137725545534540213345579554551771522002413328793458863516471025009488455512110441981685660262257436088803331982477301958998531542850796456053850595106450072231855386081260703042052811852506350947319263081642608953790463104532888426623444747559573617891776470985099821269671085351232985013422144380494321061228206974704069148144484032992610389226806194606385016659986598472057517172815064310551835592046209294606028071484220160205831172763222375141161327405310312422176687496589553567109283808270297898900026868219027642414612948315484246021884954890917617754949306180379950060619384581826578095435269583271863050680556683816719141883469216241133314810874311020841143391996233840497331084114030485379481598177339850778355800367820276850323179801819599763082307756129450448895765975332440874329207919607667119674817746473146332813440371587832903323021356569961069083064547644393079880735703286003781194510737581402306667695865953765173476055810358492233200837059926571235421547316993294276799769451146316546781394452666009545923909167964204770670527241829909409995564133064120889551776481482192669851109417011921954977620838030931608147823599838657674496627419485791589790221136423510481493732181691088815837095103757782263861383264489629990401523552929509945387747386676388207762678483677549825735615003020683136893254733889279637703369770734129268919921199649703389082882938123151746908720493715679841362224785586274062766595794069549775516433236816719492137860503592947962314348835497446071322639454052534183522519741599819242321380792359493120423462556675222067990636649828449779502802278857058513924437183188425236627196687226256415031656746951212477045605609597043997463348685805162412946146133779319266988788770904535595084984077494554134305404024715278496620949660805515000840275196334395619888760443243841168261544465528700139722000167326187867617326398832416572568857349267521623250441186037551949508790215165491170805849586594351847915644716860067294287902869889577766482486284173099623882181288904691783527068578230386482604516549565751511807028030675810812228029465633423922463717582994085232741088432558527836656505991503576252300866007306839611848504409077217167173772070540888081263809406088635102445758131247977258412531293776326630682843807234512605189342278007388226583429311651280494507474619225893485157337265028338177950808574148769731829490448653501026088363524349748701342147898220355269546875356443821579178588243179693480637871323166460645866812774315704238200459526273344452086980247620250669617028813437864616868365170287580823609112992002826265306707055543000404291925645349181436387697010499988655381147721531169296964445061800927636693119827845430731874580749030077775172837712418576312147851832807990032092889078052961365890547143878055079130242362699901499004249243673597878272983076061443710779743839301947331968100090577828481459596586764795783601623890639373643745107334427211144422437950777067304026291373397958847083745078576033769400483186987464083524893958586196189491470673566386976747247853725795243316781200822572136018959323021076388538526350197255140052789953636623973772550890689288463669211398850859725028976453029974009258463070541531804365707756194154097329232667324048203544145015895139156724594541938393252773647514532404091694786715251091398723331573565340369419724870618809168323476416066902095980166778675607495229705884791829663322324348678891699162903865789263781437401048601199222056514788282521918852692417025347882914203840933994949878931703931963185755472589649428500395711952047881556403268969637632750934783133421727004954475849625661626383828421516106515338912688004294011930568902170405065132470270652484830785282131220317629467253315256617314305619656494163613306194646696065627462122470936727633838012621604218843841929481440360341477408232828800197492328240291780463977467410939548034927766608942006519049698543324526731600235677627927624038268072897316286911685240960768416322444899787715366106758690760582098788146381509480643279510381808389062490927230803126757097409703696983630722807855905738149260448263366989727402605155924869062724411131538726779398405744587340188934567388649321340532278928272472776587652185929839844612613493980004957997751550962849297916208024706184315890559691765504464812052059823481559217439275449464745856235088042885299369169871234550598806901079136780621469160248306315704354116238053304825423704496067352799599429106273275624890312277103040535659322061743911682860726200054784362730691229508520220051360984132643570736821002840717576728124828583224257280674393729150117564958703849159602094883856833536661001852097807212333545599227046543165261002660007547732194918383582735416703762072294015665908321082927551321954918574657957841642912548011122917022428150126295731697349472352290674251495150073841350411138952899138270929161794165089433691331828539330029864331729015798006609007261217978063589126810200400881348121382007548294054260400106385816189132384551107104995629679639560388329294995808093387369720444102771602300584410916307997950439961400118415955665188869798999355013144555620290067113483854409488460420673482694435276521450771286126643976254287170616542942410874333311615416338881910001981994548726027732111225908325064162237850735445928806634132627134120578359710543359615034956816625776026263113790446715314802163567105971483085850192265045264414972152401762669342815758447972656699344172386306348340606036753646762694267609178642397992257454419348794890563050875534171916698868994077189093471712356612146912164614735813390562561166585680919719244174598425514026067489872633400368317268395545011630076215985560050745905149641867136795641016299006849828837077849446076802602414947625666059219000248200093126130650486279072374047722007088487075539799178589393662822108979746259769899269773063903326783464775942463034153018833608180912896147469317237534304637454077538979977382064997943099546282157297584865469721514819120922358672282751098842148775151321597280546864621944227339307506880753327709244951431426797301851767487463126859968948835097380956742623608211093433500946815864206051595610788936737975921482621870136014674997978935931154908405833599760175016867486436675213667952639722715329606541765672756729473749320261509753557404808051465389093649144769916127523101928231006522117777389106222857087931304478794819434327909872287993258551666899890531123438476444905334136708727730857544186921906071926053617466599325931706817516688558556660157568216737920393357407960841770488415806849380464001076707263881573598912163803343479735352585227261306895464562980689901393133387683052218461814648735823910050354987121931591084093246365906584042231598527268871560880919269073053555179747821896440749860676449005906807483280806293051718563875455010317723317760072872615372553169743656680384296148992427665078616586624445196327144826875547000405122900766913657755967492424874116746130339614484210381791548052012504048649063246077751377467974537189656160830738086921424945209642526658531952030039410475457979762975811725691413938053942566732951552295165758940793452813819444918991019983801454412448595169728036226304632362108461958132504604505103768754967817438545481971582937955834545279858373481599539910746549613347589356599531574182680635686819361937945337454540786360590344660557422569899644463238984867742497225566007811624790354379228113583413674428361134646211149210321200839872350822749298242347850897210824286395411355428966186791314368108738157521060712872282137846456870614657695971496122471118663157122169737708486940198951350713991756551256958550577188086870064522271705429614447229930595922227478857893752284571032585469937321079187457889644056990622720554513043965861085591469728365681532658705496740036078806013639133334654574836469050456761000277205660472390464299940762372937684812695198650797923486969505958586926931535672136336357344244393069868570024992876996466257403347423083172414527165993966500650833497281874223820378498810644877874997443818088242925202343335473282170890114353564322795789425103924606964381063142844835718522629256071482071363165086618238273681158733315936207005998699435737526732864172097677161365985121824674211523817778468232979649619424938108363845611446012921835850412687790109325094933463537125110729171394388152127622329366567218282495393343918564673020777311918207330807508471986981833958597677978682985180149229090840400803416602449120402997800496206882815121720831844214663789553784826358216098061274153944411664251825527449333887347739927558636082246994894194795418317409914737200401657235522148505800145147075181508437377037043698780550253531408943618431572728677743683449627319039589036425389024766496511103330245519280109941222055254933916891729587866787346466675932952381021421662570154945336522746468005990372729745081292251501813728946191989682894347342919790489507435561912776229579428480040063328212994994950417014650355637674404234554742553978442042179458878793518593549508337503514327585242167887974948537572281820857655305958324875758998156930654963540805076213721327469436872213406482073221911929939722319207899516222991843863413685638311199713605083402924294890522580359586746292918838596427627755917658289727581659898050592398074793363382857517760238285363100426874951398008964463362358681847587639595141739399952764723127199834788109049639486509217098302297697849266163155760423221946166695487093297977510517066555701191758311202208410787438607922231041022977803376187419212635692817334748349746079935471180925067012049657944585091747004804544877328696293670461839049180266667276141453347845300812553322657030607413196021587204162321035238653562465982777607807060876982041495761950785583277997933869987287419418031990806852742324941281765691606414559666010256645108727022922201377091408890259315789492110209030704316788366877938382613175042542281827188320538077845830510977374556990732452569523312205584029165757950718127739400228048810498109152420904627106161326711454899587819889593793852992189563395760994844210729314250134638920208821497063592383751678697023822596358458577315565759860629749439836367580843909900273933367773522060950604667841074926264837377811242047360793725215651187619639565019142967471236742574185824224998931078688137260675296407037556941008669423574435305633450679193739194350485323882689756786608373077411012217680734135704187296279741244434274553398300198766813501183073762289764722888529653736417077897104867874538898508056514112378948344611676383601873124264828955657742333662645585775856585552855859823204419404371032836038007551374717828554520502039456360928373951735928703658268913141042289556784334547032450400440666806354783156667998042258053887630352632962011725798437507724986079423866018629140398385174646388922324408566123814112788615940563724380687167160229262607174021027967690203023992535651550595240414978300128745977118189167395489303211372988785834673055356644987584893688109780120981897743350828276916131419407841559565643436092839481421509452884965327394769101938566125730717083357559420600325752781627874818384534743250551315632103992399417566162627715711082229928864832220346663738287153281582880531994642815253638505961327630099769200555108844313002782588850951087739718793925870261432017547540229016316803748803650982349231628582733029617350916734373450504797604925272211871969338406052011827328452524924658833755901056677201462451861516870511851974159902156086528812304821001270224086390810701669659803842391735579481931718259016164883286755515630083868614651669068034133117786653541926030853036938167200038998586194765819206364579265373531607747837490196977274294315299173805270679639078475778802939427523796878727602635174739900853135585496630621230020403910669366520749029712144147974757575735495495516529413876986729674474596075484511246992849319960574602926127837592545090354497619169925600741883455255775231472104285198218890285177146603884943342426097124895594127663405712445236876915597627499632118453828736414099122035036059875013966842234446857790382540169991654350624726515880754293900539425048140447418106058079685286172529008729217055703086175010624544006551901331861768757222447630800183109298334194292906393173078604979246607373719723599281983606761512425493305351359473065286587301263127935338777601293423557137062863087264637384163526746971183824260158262409276182308185203089315679760056112148436087638509660694198859208309420531507173833470064852154681344172585669729430036433373641110500928788171399398623102780873013535001851276362355293440009543827511250828402318707101324234390469972901482287837499915516691103502467846366088992416524353842505769804957163020765963591719494983168933478724940410863442845126215818497949067604964200392385700686597839357352158771731916261728803092200881693712029181641005619517750111161702627796968666950158865449359752019620700372565000398733326816767865729277278328833766240343380678417518397752723749601731216466610519300203843829910638293109142442908728331032115968068069545823787750495446538382197344227946554245444299315377877305699499314668626883797732146742137238310594449987843317169983430868121465453706270410864419407773454205181080363852214508033357362738103230756510561135319383823076218163458160879854665390523019890946275629751712743553216531791474466816303657550372090550678846413510770549616225977856039420197847660570324893751545173771254679864151623670034821982109131933671508740963155987103131065854107143483771658758665352969929481548041867471831112142197725597107520055883246053434754275530485813389810877351887091392352382482402790594875406347958362100270805044837390224595945007101745058543491542747304680382778580604993944661739398604095618562651777477742932705624921556127385340284877693615056432428790611152348004325105523743991542093795805273095496865349533573271946847930267598047720924736305493668068874176236012633682630770363291723298995850746201013940396478072323906423333292536644841705457959160550745366341694579890711463132521145749940919509565041253092710441918691989817057126830942960176382132161565824238307604092598233288431840983135676289371265497094999183683539150587998336862782767779034230253174127490682477721665770164664425634399467258253885627678517207795022416060765581024238151689355642814002566724267036928566812225350067130112567618798810623819259981512053890116625860379119873146452573532928508148812925300496682519081160214320803069892027375337285765269312897966863398958075527733516450163922385782340391530051335467657685354708067785949423857337981012020040651417946273142467316026476765999102177043295918602197107923405051377804857665603238830141496328224723947271531560382284860498546862684380661588679486483746418399416395152049675577403290033596149658347833186373726894968527864313485678196172106537679289912776751653123739486239854027230410866520508966517485268798650976872094398244773923076428018573669745335114439323671834229695724759551823919824902119012200836769282770475443690720934457118564741524571109432019495447327764560529286520694594535919443242447769482906484759620124740220313005724663407316134294639180476872984919480250149879955816960720350297200487674846091192217811986232074170959724990805654864094705500401958825691726105721395814607235841524506370288826532497770490019694897709685213903028198709092579409645613226057636596511780354923765010621931274520868209002260226453918498833175523937452287745517817004175895490997050636988145662818747837372706028059195416481217497642922929797191983335439631970056659149799356923800045272215648251251392679348539510937616213837831469673791885462837325400775584571735224872033420508893718504121427457359753942996250891416274192284544437238105163454371332009690245562037288840965669233312636818125621091797509372956587232957339370571767608891455222157015703831848907245124955887515190735283468161766618778096168583632025525423423206971611527565425194428035951118280971132554554531128976676943098793563840696296035555937759957004632356337305296312777430809296208796949610412282164661238261735725814649786918916520492146463710203844744293828686781892896779329147599494872428744882883854047344062002255369141045499312017961505472158735372334849350765443385219784646344450301656856051004201747838419371959437859178816974120825123915382808474637133895356076762116569014305771743084246956144135376998886071412923241137232416811889472452970953414498705759335085729561774470978827826409502526530926747129200560840884269333348708399025250287431683616031938045416675805116238318312278290091861086715672891452279674348564846737392574708892346348101922325491376681208045545864101876626236743931199461787216298500336688189594872496999685508452404160142171994050715071126411965447722047251215057798170521141487314548714037267221841681169959029805163714181485510451751697444936770770249972926722670858909130087389870410256697530531270672119491026162055448413326339811380236245525821354921147802878884709910029854264548739661203437388853608462500489916967281412536753283016405519582501822830930899209009573003731753191170760437245039307819542349067362682646805063271950578668652244591447187211913596234417418843818230492253724145606711682969262264553842783425310281004100212138182835037857293325350244150846280454544402300544279058883603132765639028947707259779978881602580469802434833373322780008217666106766957989984323646592619380688577607141717296831806836908272099639665459667430043095124943985864177296249448794951820901308959542026851398917214396250123518414847982947479563534286720218703491496273438721853003654733466404886064280184318003181700773903369491383882095490313226851869316114755975662606998806655287288717174243327054771264227156547296189728092285446609612563263034538877354072409297583221173615120737130494840057038253822337846300955505893624402498725407473660040856797237814347197501668640357723909503858857588693103167421680327848639528600915103789781514257917283989696583059527167339242834539948281173599623668605486534502302538997378706600909938824710230673751154368020554628572726705838306974378405481602096658428892289987737056921635168671877461272013507262729810140831031651375485775856049944231989830664936899607380879087868265119167954640341394844077765734294610794581684831492668075640188630505323729171342813318106434956888731866582110963388420122913808622726162058845667450620932576985282598186990808535524672042962555017694908475525641804558301890852652546699141876452648393759528012420597260486505043931863358130536961644147023969903767775316644286830311264368984326368315116185071352994394736502904672622132399091333799984273295231507224135447962875614191861074990445847730221209125904053880919471598374587061371679359702757001672639887000030476609075405283465631560873561276542367292006885075426421594801166462338568676625736325911265042536335823774083370182301789840318043214141008038919970475357733711146685479377312975296687000872338008378273896009059651237691544425813801428652701358808387695814083973954068996554687106237529523514030052203657227408415942721749273363428422506528295359379754802240991242298022855310542487287480757816670392973834405179659907546506258553762891293392645584742531179493346989245020844617718568093674480381488977939781697505672727370885405745506857220567784206914641460229292109084826137008601310378634323065114208927995607873487408165301855326198359084895528845609577043920586235335886228197821739786620091950341029150953880013314313948830703908968891133424610166658104460444366563510387964918009968828231731607013877414643388990387183477131557231760298987274395145269662696796679667065225280387658616981214660474509305669916513471788707223816992395600524127904942601091191443884303601077842465812051173369567599605246415275061412026165385615030118942814870012071954596846291083107322754924673912986926398420896083925086498583119055409547462695009952707431136053420663638822855017461759523860451873675102776987386399527763982894749026008999983692186450592017370660538669928586713516102703649082871729570968837428293564993931782244809509469327922725735918387230895604853450272524591492842260535204258078288553582054153806604984112424736733321229534909705933832785199081606220604198957096314220007123780390777922662731489016475496160934552041996120856718441302955355291391149181252164141670677736151291355555429106692100935537196556262082642319942279266530065572785694951436255984715433412953659879191752640329613931417858756989463366650232097094672305884662970842972766007507407388000324370428242383662511168270450722226487614118347652645376174924776769685445745455146570350405065887167483257880409093093804618358997571806055078429235546811151142586066971824693248038919312873191320475314588478575109578809714746587235183385040335380247857037464043223672887831224266625632790314689188160175163149127740740995683609938215646052183408448265790772235876511582120055760270597170392921122566874394899419091884940316503176260076152535674838021652767427070226415851352369662033519100177331200415405900941583600088413690475511691403780800653251175104097888670367045781985743911452851459009235376582725237167432804543306734273459681508457400146958349907635535362027866415463657531041043016977589892398493118137743655885169462758607394745232342010524862648801328443030296624196128698150664231022418742090302316114098371209111156275753067640822885683732068026958780807962156091039054828757826471350898528262456472890369816534114788688784802240626156146322043950523060162357849591243611160652172224094270775492404517566584291750375800436740129746530262187192358623219660895409902026070994574860700399130367937202351143464200076961629548082147455064648643968730825859556702248781032347203827423605098797762347927088424470919345214858303845364735456367026584998064408052717881149056772339160341101011844215281494440344638228379015491862980568941888321910616091469071862398859025009662883026492557351182896317468003802040718856166181237934036267715895453666132410487653808156487391202883702613053364417258476950572279993651070487213857999942202057757729941104116205620304766968105378619247088148148677547964753098660339359841138335733859207315617993043264461530739575669116570361572434971675838578707248436897537588596911276698856529550714101217612879109653324858118826191943500845302246539875088104818098643366238931672601624365838027314229088712615170250891340504084349412155103057573145730148714190561526710511920786005578435637944750373341145306960040060363621491034035608843938105976986303067792408502508492611960971734080333319062855313767856165322817929802143408669524327337085415965268567386690138579150541360883776513961498437541966629998065236782380748557777141325023734249384463498956901555244227604963940734640412950691940092575400103927264306355875011841320976231386146672371577626157637686187391069087869995492185081163853965582267712072373120850832991146686795624213736705960318281573960678165842119830343615484545079960358560322797823255837780318075438172298260329603222168261397396991735393939612146172116791826075552518112510841410873632062573266918730433548464564864903875143685659425919414623741968725106139069471146838654744759178168307127455047062420371367162853212474039798119073676018523018240577349798118449707514224609923997664433320009657915129377213308955281693132327106974142201483674216180921929057773232241284368829841355331854566711910310307055075364420143360812454819352177127131635690119562195665627790575726004744639184107736196814004545202744212761600940192501337896841666667771890907726960869201747533132598975365887102060650557942008818173461411364150547325197657304089855356858348449189201829512497204430677235762842892384036722178380038093002855778117710573598750107839888903312948253672435305016006295556359735057587649144288727387257244950130355591689160506201492434936400916597320888136145977651759790990064672712833990840217259819584393907240789196716045718961023260838416642395755329994346902052215129707906817346333820852528238051444573143698683422241674675856202601772559316871143081384823511922322312950831754856311647810915332307121019276460321325980345507948848328441608374982851751072667156243200660908216240309627655360928833522099387042220248250528419323825347941476011446131825471069078314794647087399573147811847308427892915066614883682416749495093468576359314665205126071863734577541339994583640529227293258924309981796746495823681592219460522332266310656998630676969076997314820181500207471229110014111306130450272516274001070007508443291965457460984557147327375821015165038679498006266969554861996093735972045759070225695801263301968340701833486724314321726124177445956713841965199954758859977612479441966642803577661591763430813688641301446587536990356882101952009065754015752564069868948603793415981475635955479791484180130168838980726286133016325649718828177648005413587629303651622963467606704636492818608418340529832857316679618928887544574677620683877294173667618408900131504744543854870088376669781597853919691841611409699187687648461184774409803126318378809082086044773546149410909574340179412605520735312065163150100206614462559064701169688353986692694838637174165893220293669743404838676699102999585991532575069826323899187951878170233193460299162704249352089222719459529150848451894041320533906076542050528661832297469990825778285983840051797317484097019768518717284905086813070075603518762211115764684512837904819117765583766898376474415349164264727778785288042066029479459985685154540414302430120014654965211893023827276806417105618377779777778471279508918923008147771262344357846103832344746710770095067012804519275469600648070912118314564898855127613987975230945241719269595665806441355237941656827202429400498074581337910549365321494334860793830404337648547967977088531318764467834448963736719218681781933492261382621218632158937667033487093118979925138791503931100456510773617647056247462492537926531828327786891943739559706016714931147645866125625607103643145895329843237251370075111281380554161143945908620718983374963230050080722040651990418766049392086235346073513411827824679615710135730719213136030781991534084511416415026821139970975765285814708405597006490409449805446756226096155149973303059702074689437688053913077988740436735856396492607285342096969168061095027485070131624508899023370876619477100498125816420046016685020478660676196395995429826019483917677880249262242342473837905832179064373644200384987414319831336645120524535657262659483634856327893415886975941786388989823866472620232388460059474314063523101630023579372308636811303662623014956562649392040605132219532547044345071308456152714698989801502238428651862879863009547715011978543674881358446705084891556410741672035528389969686788849624728773502811018132828080899036382312630874623659016943743838821534385033605866544935746212723847440090286563764851977993904035657521276735794521285619419005679823015704848422370607834321723029340726879590106025258304825506680942265208032999084947925362714080974087186854143910446552970376775634709680339617050961628151046666863073879376008103213952095685892787742936978226363284835690171587579045344090033736680937954017501296641911150136899633424734175457437886953061584839346564979150793038366581620391752667390561369207274621898391173690281770005695578492880829061227793839045374429652890179405727232569082547318862448915011521650042319844266213467672192698912253919027021456039626681781838213313880592646290834091692346941048022964327192863032416638334555032164199813108201756416033482157313820766138361737878033804877349725951067101781668876093313404853847972210251723754734650668823565484807795433692417197092115531907202859566056978909481755409261391638991474341692657341722128320535591587153359992554656253399846473661751575021104617637271912781300044815076844230754324520918771714367160284038130245075451578542731832161758412687076482396733481523564237378397589725140183895843302918570446642084517986795568268801763969341575495057835258969716791103464902495249701900210025189167291167392720428567839914797498165907666971180700865453938100123551666480559738403311734231403712870487222257702143521130263604324931753509919317459203203273627983636744395238053556379788539956469926183906231405797790845852482517012920067014139417505229705552063435075899889026388819904208849768361607205330609717645096893170759920088562597726386322225384347257013037385814617917712340485018046050544889895702853853121151199847765702170291596627384494260756802271514801028172212623193272353937251978111458091008537816735428030449011887234345078416255186913542655842622783687256224601904916327815505735147256949731252183153260876892436771244094521125902688737823681994491092380998234311028974063261754559265071970240317355328616720980070766537124383476888257795216721800368926890088541615165857935641608134004859886190144183255184110606556671133739199933145782972756056914552355887879299800804662930612108228725330553902609818219982551738657483294802560717887352391243900889011118016322051059438979952337595652948782334647547763927473941925186563912550646269614802492715510589072935776050742552653869621435526499192184607949858454292990062377083490519738779566344195616480434168742708950963328248060557375095260883234864932559078498650643261698622852204546871089490169614549895013135490784155095593146378730812346671747429381681825301511782692949984870270791098956207262860657920796479098135644136013465787755981246665507933482488456935605021474910877186408985782353206459864867518590994632068307624156477770731048675343315909251092665829893585915833096320125285837508475420699597911752036266906883431096542503861303012390453444877451927143119365871815216672083318302369844121929595757868358772288215911937517019692003673158940997290323144299377020138757144181052301914740544483352152365734997765925182837642710142075647611649847606272198446978888011066778651959807183899648895501251627706919123872572923456381013951236445794383278737154084607602881840838678076760691571006602217526022595588598315732149310020126888669803242519773669019452798705931280563088617216708320234414999415179502428163996871440760602513186827358140519648926912314246925036049878497357851063192884670251667536965146936446310030564170626230046740190976236413868340769122354672144764560064901247610306473091354283425194403117598125597389795783852036051173246042514194820844512389550375118100215330366642832188581186038028735786893363306477201463474896571195855952916922624488430636172129299559065261403109683476677828886532364677405102501510176579462465757150004238818359709394936855235501707799135105149434021328227749271035774794221692273834720825219074392254485586550578300148878999274892131094674386428204734199364644903269827845883912791550767915060356840800470759208875034572075332949821354846965440017111305825223619700400563682146212762981212865508335348955700004271394730636201146663312258413830872008915525880268056209843437368482893068086198674955095446135717835052651539506821701582886769217578258740167147786942250911872366974730243219304763608658814448345360811328295961659485436989715793764802661132494955086872792357250102172679666838825712947949267540538759234590213794357234003860884798711307527864651985867202772418062003447232963728468133684268595698102029597149697493583207334900592074315944657867484168876437165930829919650094305583271506311496091558057690282667581943565391249960291735970527745486170722465485819972842347075897679246445302113468903509794231840935348784436517258857057962026061411831800668563252937736811699772906341386333107215891633967063252820117860531532448376351397042847762288714471420520597669403096644799646457990779687206724139975469938764218272299584735692474479844918595999922532136495655068388003431896886675299530623969988195086915218226753663911504559377505682135101902200829049326903677116868439645740113900125930914726116069439458827965455792029388365817557850118272377629436666812405270264801579981091644658347752341257696809604196521990290369933632776911284927854525781365521400940302184483832229190146920593057284167204942867866898301612932452849223903727410585324073038072464183773120430068123085237422647648196251168697591489538574205364626849768047410516181035518732999961695266852610425392740298569823201565060361213808365852108782777594560705950468788263747159377652830105851159854593145168424963267112435521932805414281140094327964974247010769183142237875352170392776431327836163097751973757584702521700082855667297776852057864488773113805409097550206835815220672985969574033532532751529921187618792056515286741067460819057793327733586782217767538744284982875562467761710287413889635817309809317810352729861800266667082031000240901680234541622902777220745910594938570553030062645858461719802052711177515417487964385414604681341788997089204765529104107866311972322664180388161722263418597939337418684102813109471588599166475942763743582037827852553608926897649005174646474964072860469663270256579697421565966375164422809025476414100167650287668809571620756918737306720908801960219622820456843419575427784994228909931975822430688440682884396964054616921729142718821093098380958138698920940385805807101196436785064308268242950099119221612770648234395774489617734117430791968796190930549875554324303319992981238950523009303273860172039170207810026373430077414037715482403766400818538663554750796540665769421939194099927756924887179443415111893994736202170292741817240028430682810864309094701928149322254191494590842059128697513766362629734478390827917122450650917913081067709000972362581064141918521175674833849702306186327211272136420099178224049415749486323471096184417765512374637193445364867197386272298120036272514213456004485953649837519946399838737576672107632431450779116667952516748036452942948309404755806945237707015587788738143610559243429656170206881932801125835693056872211847148280349688387357770487107095375518162526772736755060032358113597994776378416337737377318250442216246593522493370694138497709879951148436523310406210103811337508586284262969204489865617027913237227034077365556792352818173333616975268487880418527138828418761876744289615640392481907127606322803263424319439362629092448466659437188712340517145540127351847542826306302010978487957229580020351802472536755984723738810134980645808962331403208954390692242036754967572080122462749363984125511348140777730462615832162615422411386716815534839616864022990299457813157648401263502745845095324913612698786158638058726290102086169769234749107921268971965056924681920118070000017303689858805647650169935057227257911079835428128057857623042856785867069364180947969654954217103186191998561296856292249666635199704345405721058232220438916311247859420467534583351189160455673228692882318649655919613852673864524752988260863509740538024797632538101479114848546795177549027024099684339625161691849214306207130413065450837541551170867467718510758014930023773506341108363348920327294470735761967761625145483949212595471110372681117359394061612900652409270200644967942061155735610251733354089279474508832989324424536881502270037953654256814451906102809898707254077776657337478351376533702813159590469953174480034523173758792891961845054225468777104327821055100022945354764890513873239626703467539126120509021915545434005308393993440742001601250769826775484350851374221789814258503059146781772162669727831539807280859103518312180843870332068224347232584052228585652848300374646440356443894748485655363601632420023430299885554588161575836154207689210308843903484268143588930727364299608371184835000996669171994299499922913341425393273817395653781690176128083816969152466500844859662997995194480288167847320373339200354098500061882285497350996802844978248019585387810895171553212079968997850139045700128166297864938968103737009209329267967479567417359700226020804387163245742997166079630239652086025674567743370466179004761189715601553408368890666554530263808838149773636902646769463519307232699308139422275811938486404105330854280584687964942746846079932397641594684948936599560044711907664823411473237051132883973579784049703573506690799221875814243273272814437059736659057865974711182228480999791657144439547779170136157359948412920276675371031988991798708078299506368868198493488307434469141886289849118512017149120278735197986211764890575761311471696072754129514343521064491481848192357461853043981846344185208303507163904805883001062926240180512003103627982780154753227109284086730453837940689348200788823313152105480021650853726865400854869869848825910977261011833561954822857327944834020385370282218568291719557706136485946294070726334591592607522198241582158518330007507718124261499222567715015587287106805199400030920922138830149219248459016165963627699024435231726657483107916277019211954489783541537656693603343535336651674072403341797169347748323856318676753750984769081233744902740916306904938323390523907586575449267813291562975620453237551888165271827111939684541409624404922230493897939361190451094450560784779795209369900724651142862204496567622742158823527063618415089795533218666695170415455008381209158913265271341419025040221857380615517141111741817592873363337263736144520412770238413053948115016085439216444130119795598508350608638190596837884571602411093481406991322094881292490401071502058099873591994590099337029223313470378820797057183198311469452582168836399066461691684244543542497725732937315473116951007165743148227137746389328243713659017393616413981964848099821499049251253041241808658164610697128816457493244938011004026468154302546754559436891039177341606306962002046106660875353150602155569431910081263504563219917655294453510972733058157878021518962333448416794533696892458700854830725395288381721499194787045831777700844585646591688392450620384261718193702784662677973203452605352036839315769425823801971060999205645370440124292395105693162837507634100170660348238352021978103104065649091249125073057205028086941703182206132448400887703599407660398604492855910645215939103940640804807235596523952002053708819161895472372258101936372949259897643855055055525949096874205281236190374263719864193875010659954408596161125599786464441387915908633324984341771928532118690861059249253181107523145863883871896919125636227391315984541973910291525849761016082441792460496838599084584483603781323156782947969464498074804480032453582850164955401413712998030879770827941783228268642804619022501652333669486943097414157516236235953199129898636080713032738830151026074694533248423829453306463756551738388629749739992698381171583708227163451647544908550644950730910974767447969082441956554112816428827453323569187184743643773528846558993774070242179480016067002140080952837880399081741613132693947297582410173118397928082482729604702755063906282928930634150838227453775186060017177520658325153897774210211570489818719219802952446463437611912344642644590428301333423148699851672427226794013527227196251647465253887495303109269649184893668772731623994760715786808321763131615288241541475531120001162231223903400767125641485571401081978638531610721221067643707379543593258281420769061742739606154123850835863097365374612441725489214828350965247088288316101929406284132432047396579539411439354212784697101493543881918143258385464717779890357546030501808640644357289369168494537155540435718072690704201662810719889243202065117580186148629494062308200067433423204700078065057127403431666355868472644654139503684380265239344549427221902738651139950867228365637231418052422106928595110762062909722474261396025922493455860128813728911651841309220151069856420128769143670669078830963925909725513809913397504550946119204599129634297207809470527531292531867157888608568242636174203505807142366820764916106195470606948872900590788515731295412297716931742810184944301865711244008131164983920548205753249615301640167688418471679656185785462733261580536128462690080338957404092780582987168768197626572300597799458731544158971180947048419888753451171536078412958746486779696633767621237362070739731020839417936076274934879815359165271877349916387714001218386362442108000119629636119954093027338074003048634531202342969384129414618359178809371145428815299819510480779477499871604371476583252663383468242908556841970137268592720341861031904759464422981872398734022251503872801956454846719517662257505051683401328142048577791134194510674863924702152811949213466344974915739996398567257923831459077012846484936153637913960079638214874626633106020339064798154710384499892365508866874064338208639691067332753521642982995356451253648733959542431752483561215918431030225107557918972910578683687892493107719056258477549516597636039649662874837751027904871074277990532555009021064201698906565611651787733641911687873255905293894091259803213822021831543714482722411695032935903595603901395944363073470117218374724593458054171647538543983159664703023898310311357483411723855682366364066324933745517535261355214187427181057118999626597505827601402390250512223137544514399597338285443447953282645017136226033849720587431706256548735539058668945843663559714840157547330170054493513516212947305752947809902944373489287962055369794780025991889367562754532903567459083754507260010019128207881507037616298992521353113193472176858793684646525247523359242348604048166040521702456373607875526978746681904426922142248806144091401257509355275036098558318541113780536492121698199126159634986967658327692016081594890399289298610731337933580584490622853981554036102947654562589932684510954823631199765921953948291954646802850809440360642997609357778758658762259900388208767025894742766859315624475393729735215360053595947214557533930900565376366586423201776841240409018868780023616577208481961123523853191101596563676557334102658210362710611232967287060289973865819309199099335194673880237873047210291245805307587032103979839493409731118743659222275594724342374966821122890923476206783551686828108549265031929134429187559562403940250050792555760264210821601028379985289194072191476738134704367578821830446634004626543266694082463545394133256165631720729500675511693622520428757115394399494605831651618410095353388282698121037654882522238964295076468763899539408767606536323433270537731560483364370825701616594944636018259632772683555237125436248765817400425341036111749684902854123202439936795861138102575065977327219694340510967631069104754238491149806190731639509610223735305178977383703159864154502107446958842122422955754373929491159818585400187000906690443699980716237775905127214241038421686881690468637435047108594907653447307108193044861534235297678963959368650825098533599796664884836965442908026146049640890850769541863274520499259724001242084850096914552067953943069293672573802923978564907088236687256744057082779268794606533805630838944938347656561594666838248431006975182411970861071229336759440285351563446365948085425216654774728757373534818582526214301433483422765444830889313868324994795558328899681384963266892652268789783413693923997945008164684183095517604842090228724702650325560829042845473510331183205426337271829871523907458436488109452125637762901244659323624058180795029450510294710962688930447554847580933988129288466613613145087762164935657577146043110536746224785729254745185828085683452984166032866587179449898131353873175021381526459180827363861295683090044502611604933788770639537974265400734370904059487268433998281304754837122722624835242263892104868742011377719811516579523039009287579681815385280652112426607565948197042189691786729674520400133105295652595070754639863828027152867137675189937760146729407804296991097515929142365881773996229742735036085210186868412135482046553604504472232879957844007198205154955073279432364222413382156308635642106973929166783007683739631885140862493911686260609597688203130050555570766415045133620172659002727424636994342663537875220726294575901268489130197555317602813793007071398599492331259990324433175186599180543912404352948521829104927669793254911377799788416186012865438047475851669115711355791510294454481999068304070724227774390289782616944911931357401655016478733466487966919061471896397742341409430346710060493989006443485889195580887277501979110988982539300078882003771782593424369552704924253792965113984474538253165139919074107059965604370601758698580492670749144624194705026230478032302444719270031482261681960783050257642166788560245303877256343199661204349683179566331834873567298184136826905981420652766194735483355768503323188242976687574268204406049501482036143061671633938245088904536253827608978323232852556321612420972183685887029196669569935604287375756469737289561515907265026557071091942276690092918591250243980573520883371445341677621204961265122844323716139454028639776274610105309249588880020412837621984751779299774941486396656654860237058533194013360118608181113961574812946506409822819922341431286499189428687281744068950140951361035103182162151918016943557565995289414435605883091769726696741107094346291405086456405178665213903902803075794765579641172292158380577488341026190870585665304186490268282557978382992112049626627510003769517899285159530394616585425809468463611724702636530626988371316499301252900049213908023908485625198686235175154460853414295256033457131773768710430349266710392616076466018010851685510897762160363189284321573985067401319333187774719673213712487055667360385466256829119063916880790093978094783595991956628659982987440164695851263822369825925819841276791975624622236975245200213831535033324440569156726182552897473281744928767702762268733799814601745606305970369695209822106953238412147741975613052563337700333828325237908030620994768444894851933912469371530326149905151382887169108376730495605398385321757629140226650676748015360597560729396506580029147312950857280731439001410135450353787526585348750423212541998955172136149357719747073084804393156079656842936654828729460280079664245169195069035852847635533086373240667637642319323718075411401189235823803976682610225962727832295980303867712753352822557926254398112900424637741900615717721952179468400535536973078183582158224123461780343661905636574656837255686635574127492681579231574415662156826256643206359198018457011578205705419009639949712725803112295746452247785001983331021447045392508365226818133444477127572971051447292466117690302359470859983263329281467639664103704070341414761921227223853394093736538522254466841925203928596296716905902989221625150454943175549109442102236387030954000508529280244556899559820795505639759143799617063612609786848398458483310129793178549358132780666957387720261378295970605224971602275861015856528441789955878890089351896167019750359050499954764214314313458423784144047289976484909555565358508464276584681752537891771489870890660969143215485838654041848495422381339826711938649604629217807227346774457155085896693204439303189242721575246014380007159887183680230120299544059660069583466023304208568195044447089343420587252064521757875432917205965434979929559117270790958559471837323640612038655042149708220073104458035015515639769111856605533387161027527684939550866575339382427882307384288481506061510515631508944935443614008778199055790228475409934938107060861132897937381495429293077276195700316935595861491683007097553352709361701174435353741574069502057461889605631069161277111920500089457259444989031523531622995321478391024903760372371965369200088330072366354418247113482622163137924501846017844020357223416401192498729806037204330592170960004523037729769239986013791372161280938781668799517161217063265162480489731795576966564409690653011893133179065333645190414732014104241038172936785056527289307153318232456236925094635894981604831119724268792257545414262022239630175967685293915822387273904202339152703360919074692786769257883714561752859056676290334632453091361973064591580460917442254552807843319769752883543588259736730917346964596243851471193478620640746988296759581409402861674044339801588435199262763717453931876305464853806162734145627947365212328094568080777581002823223979656718146669919853092393208839489239457470670905286757356928643846032857668055716441783001080610034187810826106015999174518799336973042934595681184540383551475593939620345322976865232152142290749163506452995614033442027709490120078383545136226854128554300195608435355494428061367898312292277346455199387229988232518301687735981303164319784373878010158619566469250281438733646300363779229577017083561651403888196377559269583131368818493589515182316151157910320428070220398397160333468135658847727400011182834579770087382530650955492674737575211072099483118767643114872571127488233032016872702254416210064880712790891247440473186921825871984793240842110874480824713851737421452087670178292019659927941598011004173134733978690732530214966966626103318835596853552338642145073062081826349412576277579948428521633440231604206067904853840235209988051847274207708435781804462101494801739985922782051252010505396771353665147586459194119761113839399512145295547911331793512188357005505676650255843172704525612556567451897822043139427470714344666239876652541384994787185164230921647106404175148744327874277362651038297098349542231673646490827176594345539729006822664221355396558806178724308309522078618827351442370399429567924128488680023765423839924822178722604595083045734154136674651763478650739063928636424982720940724582120363525422778764747020294114816781768874943508583296031562680909295112041106978951676714773191350860434636669283771861413742793072860794168486530232706557948881453897200719168029324857643493191552886588591082426568727191701304432627124198553208285209964215351982035157398020657620201626708806801322126059769325824740807267030288389580468796215419896007729792669405452599668248685490933260350580836595447048385903102971247348744941907992091953310456055283036052756898060167515395585667697592309742427802168893165132607670916286614133661375838980309958727660719968998203491258936670876636438424077904797143557952832223254988585385943053788573901362998473396241090174556464741105084525314971022711496943221307443421294006025407675485640317510803350892518005482864621777566501260725751737452846565435450197512822213518342328752847174869544552366878888373180187427351599081393092923851445785032621392431620161154246936851466139655892678547441619982475698878131125309176379034595051037602600516431538473609905792888769060408686155706428475975435586254450807884232953633240103346398146221661033947971144106864555749044736881006514698651088495097804385272035934844359621152698702739889376668561238294690257258207348650320006813674198165442522861335659633750721320563087900553820010697100417918261600682577427541459717545607325694809500711860604066818693562949723667992424647695010275717417337905911080385595982060486306967901078179829951723388138151955934276975143876774083343163592653874700810505768541371033274634350971222311128748607127689368670755205134691945075998176260120438211254528576635059756990731923325686271294419117354139233531259018272099618563494484820872237744497701370508786470355461079142878017506342859100022463206191111654582276741576302267229850560059865869420978618220413884732174124112698183188687672371368213955971851613104661387482715822117556111030300558434022128158911367965484514618190472978301764272251291465399262063585474279048038610735203706415178308368454778714249875775062815521570004706557968574305328203652960688598488922393274677405874480660815436578273454536364285786276547621172733351637930708127473981920058010960014128517167567710484676295329126395474012512969543832480545891612070488216334869968788391515765282819756939445658113357484812267333227904145977064368774107301677868067382827215870413820323342410061013687867125209498587370959344225812830697472636085646769409904453488185631721644414754016367722800324839670213333725619035081325974957091926656667543881195089170228238068194071476267383233648733260018360665652739861487737472409519839667955229826499613455976077186928460054443116415918083327981379236137298351771291422438569478364191906994740705021683203218236842420697252174852290127109911967350748202873048294465247721953160160216164862544798585648848807874869556520626852528534613027244973705694205453680996133980150358468047166097226578032072972073677756758568074033457162838297589255387132138576160002132818218331543717683442906351044421265208720671831155691347857574407885243627095643222489485205241617460786381012938678015317708769210107366150744659451368316558193332929427021911402665045743102020634220304041979050518098170325753314226625954475480657635055666128579249659390995336583930925609989135143181803697961721175764567029676981500303643699804391098020863860597880051710398149348546908420034012306980069520223056573112610457702864018979497422132260455022193794393191436721902988235414894690038475367276761947456130666145574777103531311263099255498461961452183829659022722462511134515589091901083076414159310342294198050501404513743939225490047251526436467506619445792227282438679231567477835116589142295018274892042757930559014126777453198705762051764990323924145621536599881989540886748613351002852975742878910519622283569369810883598544357062085566163797552677249913535740209588860883314865583913839405216653865358733550199450254549491915345913375917773193071761975924217063438610290188573205203684650437991984229872886129520925690674057089073441308297260589328295913609213049412717931495044336802434125721957014654912095788540961916217218582120371413978774071992277431963852926514393197797597642300105041322435291399316132038797080869130520619430060109701319415371451075336331318733755434190579937873167425733873415164604630945493825102999231661540634895065772988898956834225183481101285889180080472649213972108683919462897296033674782628411701327567222994995242810828876832111337050210088906240186859859157312638826085446720833659797629355284296713861386391777738448200835698341612712310223325114331532680422568380402284320102966484473908288000357636892213320054896474288090554262373787361169213204352880304585380313958526562838406004183667932110864324999895630137775381318135956972726281027342087546815025138941990417581332765425121178585502633483103643863695414324123170756832409248204522536154656328978572212058909376653024785050858873833657993161329882722581699833946324463047628654624019999904635119403259484212036278660564899334957290272649819989867063378658964587577564255206383312751330207720627304905492184706149700615051847608247678159012093548179900078909902397202178201176797904966818238016269812341904321773317266613033184309251366447960557174845571372652694191085341142291324407951450809205275480334250714512062230483336677462414261916425700809222658775957935575343021446158570567705886498118665013984556801677896130937662482256962196322507743470435057242850917407441221498769230502537637417859344013021536237198703654874858549975247608627215797558970825496573379377736145476419451518161692426100057426480192950339211433288130450912134466058810800209982446793298027586201089300791896803938345926445570152200519624791994720931879983461270264385096347320968279781154777333366485970659806454422260853232676703706135898329973485276688102665910210610894101986812541389075412437195191156432231973213939308887970143958195375847282154137427109646809367232322680206376418883044336863045946472091399429096854555550536250709681614639094322597521245144033203913077497898926321752860383108587723616449342397998132543534256318567907695910571644195287470576136122446597687154689600683694020496735571085410553239470201402221963401839031144970777184268852142272551947336788907678307281901696289375359955142583408545488676087996842954642587015301209242611420931691608793736543404148890426492567075237008947522911747886599444654464935320411441905648273879335422283456989200206213408431358742440370474690562301884513466167191075762520605703947678494552030162150071815655068685336630660484089739360388932625416176295673318559907253581162714372779120482957338143312999808135711591367833264831563049801806008532666571784312829520896296709986379251690209855751279971298998756188004059448592158089810428947802388397121622639831803856727332001767357572904899366046510184222725801896807967512063589827128260507005404057367686383995170562063769059907297168126884166571873092576375625961356360115738178839102521295605790706280459605778100441442468475152692135525925971635392955682516569787308657639814274449326605402865078500263425982716570226169954953096954250300977738597727678421070014879157835035720855653763489840571109066606455878131475773418889223419109242611858947401616458404173307886702236798081930850731349631138429124215625980014298674698928204059943906013891005134671482988177263336088041647863457409628542035511814986882496503364194787615773922250380487368003554055119917486641647553943547935901382592699758833994589756889049675027091590904634865154348529136690625213350559158891355647034419620254136308796304883095924957750375768113481237623246010472542681177850394337030619793790202631174617402566327887947685158350937351952875516972855462510642082363739764200236152832178670174400906677985627353919241555046006121389456963067543441716273743474933333420277923326738487538861320277877136333724253273093891900868294894649448108017456450494109514488379732720593113638560745786103267288512290339940936507997830252262349033556861443859360213933319953356921504465353283433382443489958413397253643133019542611320373246580180849368542972186379492496772378598358431366239284617607701246286711102248849339213951168841672105613441048660751499829554332071432885856207128368440097609101800526306200656571500850890904854905167047659035984030788008892442677523734361638943492927292339269268880901523660801789943852679744839202823820478532884742322238438700247455406648281436229773218891154411853424055496554905072098071176477748174540969546243001308613101054635247494131135416163438842830697939941243267176693340022030282419338406373702707015909223099814546696176211814901735139887153550697120193662207288810735188221930564307910694855530578144372110286425978984698263672957873250848342377644170370500829343287469214499540891885086916710597312564990631584988367072336749626672602095870548954538810821822205107644291319173829819766956546152052380337752008070309669760850831436235951408083035436462387060090746795207282365305214861538257840468867892066211847629111824587435146145256547401262771366132633107601714899071001967236709709648875967488197704377650491543177083280786928377995319285462085243075016022507984823889169208295214764581574104789572732588518363854436185643535511802220223366519347602122543026129475055962830113418388545939905738858165942492434889283620651286067123353585960244603618242853111560008606167494715025542566017792618582679500255863821894625443470761121439908363908582410769839249155756380140950186400825697574856318892573735259593245950984321953851089369679873399832158125240825401208325795174907534874347279659323911918668905546955886792203121429808210571942415078616850591955330830464318243464723196359102282932620947433638902422645089836308807782020614961232679338704125546333632821453478522623469192577376263974820744180831575494932370043642984336764128615570396227089766664362941909691311185678526927141402050725671688803478934740656729963833715985174899559464070166839778346998332039738204756770514274916682343005556871357731719106972461527115560879732560814765538096183721966077485358840900638927063340224832200859378240610507850448839038373609532022635895375721611311488767770595582970604735976965830179754890037370104883150157572493724536498461256625083562189755768093682149797807538921121419894232540321228535995468257852967198029364894340942851342624733988873614438066551868898339863961655105402735151877513668737628883986900901374462905147234783140985857086920640827684079117532065901735841673056375749588962628159821941648588856210217668567591777115299885409401004421975732072793043539059197348279063603720921881199178545936729264625619932160352315478664467856528141766206867898375189097219342903180761787238726732311800168625798756049785297613866089868041749808068426630298232393332103344925043894290538878248050081947979710264894097989936003316177808622189177587849360828403557337086687217107328449501153166599072721551315611937959530213499413505514456568304990634558312468298457660248585771803099084884578783777698580161346253170723706720406224604448061943228198574818524118390805661458037210028014992478259851425232866550494515154762952626698190902298272328770975507694585017015284739377223258823181411733482519242544341594193206770930794281988889156871758600742249845073928310033785561197158280651200903736503138217621413108908567342876025736525812524875442131427727950963706945290212233404193095405500773651191646697004625589390348015542049305050652340883173392652048303530222977154689185540559104181347834866216370792787407525587742894601303792058764452722346382582144354013165067894689306403523928214161769248063526987242589625941766350675105137056678635800426470549657563849218024464638630797850424873201236097722349072489116646384318616419382821354007456130641422488966750962729678783605720163880103637687277727945312205445162016058517073499781292418943301551388390575168686013577907941068071030444648927706944201326921742807228334198666862359932802916819320504048109004075330228435440858830325046514963280126384480711365882444133899596787055616452497839504927871925606188653404332153527112734969975098106539627151056305957968727151886820689271736817371516295938221885185262242993611216028633449529946282607989170216623294468751217761633307424365050622859942985760091494786479743409924046931355678580154046799291025340120449352885034251806976781852557725216797229215352110066422218880334786953450052335935720063903233851165500864788809689572762802753123213205743878161331128412304998703187751301309721704883816797915939222363884727863625123227769998085882801676860337607449268998261663576628204437844682216507779470981044562400170110314968070314196154182684378424621207729115101630037961375055371357085820613903995260569185741017706118770835546086613505039216746108676515976204161273581677652324119188394178249659635358060750195131134894602811407229940037276899740286984773812341444888246766896103527669836058932639996926399060008143371409207009958429400590712991012297770645450772958802456289077697013918324876190639962315400172505168927553828491756739037352804098794140993508374490834005685289080316002171688436568723316611731042300474012617383501591149666847885769790446426397398037865365539902496613707799776533437098806521972923610239298426540784194816051920271247238970493006067963766030745081708761190946385767556389264247639175347775671510310234452397935621091290643251640361349803478754082888985006586172356030401927269210110355549400566953422184453523189242675283358287571035523323286959329753276146890089146260108061008360121991039952416939108616313678500736868003291657370527827263150274142466031401289645130965416742576817802128454390109092448595952877447970283488416045525758268920871959305961513001441487973634862967480045485730828473478914749968555589877292520978727035492107777611039886393601308176756395531360101494780556016978855615960980483296637417965120445169411149144706656567357312247003645399575713137228390401788829954471186544854809331161718765722190013805693556834877663945275982445761230669198938776962199628224364583771598705212151320149583775470221956427076970619301846827868365400820682313320941593151534551403473433494544284755955209185819448857970363710461961382860018604570536926118845105137379201797402574418358184385031527446272192577152578455354158484952003563449177054387585300604446282719937443405685179263388648824772131960392928736539334231205963081903869494851182794189166738940916736408823481315496650485577850595787588870756783660684469816463759080083092002131813737510607504927143168516907372299876956755889378009897783736895533773108583988975920741657788550239568509363159236398793895857700267957108461220242046237797981365664316632313562937822296850683475504562469412928195477592710149304476904253454611580650941495529123689917245789304492276425291486474864315886790009069457894316244327237189769723398984262593927517803778841018830065261623104358317308056361596529927771746338034195941871799957168755677087615211121531749966710182775752448224309109012867897663286611535851408822251719922583297953787111714222809604445309307797659362983017126470545570845265241284334040895724220457296459411859031507833685106766747768766291825272597939260886242984329005342264851680729469440884744295136965742537386539894461410390496199138325868495145436435421665251558980496737711948900120122885800441468869469766982019429941044526152323799392120614601800767876856874617079977817781098312047806332283210525801803132449845729884032772743666013788630329749949479219954560515503710505192766819893086522138192570461953679608438354905260568153041144214855671140103377724150913193938411105000990596459292122071010827220172035365056853240840084028523400739927243097515753791211880345731801169560158938518094806730049123901066674364294964068258478700734665009880295995087303436660254409606417762003925720997784944914207303994727814096074965366306798585643704072570937097651921456978038966490353548497642292816753701660578431081910032806583562498257566850103551801463065479460742669009930845873065758231340575551197412045127970066334642008781196761482085765749222398402221800614938904186346684423854473212476478362742221601496634660636014211844368460454647515293228393839647939240877655372826605307565533845206854057983963123024150325581968110466612396148350110317136314575478083469059089364809051355915214299548608249453410884148439606175920155726346668014499502523815995718600886706664482808496528152490441621278294999129900172475253422498370791780244272035157270094449272207182124846889238929356653027643122805770748540954361478546949418433697955943235266420532479751385856148638849588027889200073432875916540472998144597856123527254829626002608421010742753061871870315461718301227449263408954545683826750385899077917160389530785576303352628845450452351621357097522670140136004458503143416874096919509670934841806880408160038755961585574284776825569481714694233011780893957231817195034659957394199345985686149583732183095352668993479097198136712129876482221407400394871365241595019933013625118639574792812950491163151391617646171220301526687203935798430014927289308414383924884605421931962023163672373334036358842171496212896139212995703324412439301215509108749532778469070985237946027358829535469556518756245060278255951078538977087523367013019324181904804181142945889839593361124419688594490925260330348207239279595780920208794347944297743890152405631160599352272086754275370072412688959010444492012053782461707003351445801807593872449374727523606125516618656038707429182090749202231687351295532219024696077897740726526775125864528081881690000161073217007855089303298151710332981188574658266305562604885050358860352883423465241440347837785561017347470645638983634684808159502370577674711177622374635198942375434510818758409490995478929786150811352198391106309018059666745647082868751226382361875106088501195265081755941816502808719895751226307663138667102665770654862783465500536059297777910884012537205748244519822487537036655456115363615683644245046229306742206581361455255400642617553770069024812572903653328477699114691350295055748324722354302365795421641721445702480611120151032994537995464113639350736868660049480061702406515109557748882990875539659532615391557076744422348031185016891148753944301635983746256544145611826260598792702238480062537598093310050456578837040842643571836853856512787129842803983082009462955738939956149367224188993051047231844831567173242948200889597562535761286183315364357300687539118057743956252768519589857039473734558994573485377062278418731241600961154555251976771082893343367258406679935089691851718278029220721944699078623373590343438750783577655830224815189401783961781095127173565932384035101949276763381707857302977128803058310794754486971152869487623529440590436086295884866528938774082954394910650901221076472940977506759260896894765550146664048396606393254123300298941492999877794779853207343380593957137103048608758856009943223773183795845347459478689793289093132761245597458526711233225936990556540791653572874477373812723250260540379750265039944303565101715683345070956949856571574361273413893625023702552551164969958160156996260820616971061401341281188739361383284489667336663206521739323451412151191430999079648262145216942216652910502647334414193814595518624500788371246170711011328428932531991931812564206287529272568760411748200425691185003222659991122036945261121486035196262222655669789692257140424295668509945847180342868845152692932144940012529283588040168669416767755377469410048554626713002544940011111423752304936855226987381012886261545507731889802199584886322149747390464295054369798520729636961999021627089829234036444282266196574643036559342787891783140975509434720756548898295570384495557786714821198341925384040397033348497635167852696719492861816951952080149877045283788069425125405766997099157510444695394679716609985768625643560219558858637585643843709020750218305432628018384496532651358254125530735941300295432364371178580124463532451423346815376312348191944342121647805608382308273283771055213878664222427158847765580810166660823972402917336268891280074116391123344531608891766592320629532871172060444967545356352889274358408337456891325314545124528553182289519239388340897048845190002091369886216351733100511710134478205398147058532335907184581172664183911590232677568280807959284942144372181386796487926610390199550356548125565005890750093839294044487390836774820260324015041390496661433511198974398234772177827396711341947673553525327057295742406327912877451494176239944439933260897584316267440096492424389139062073077555093286250792117371844369467998998313852904182175814846287797941995992475361421708053201465405659623542245575959110560385844397740924049868959204758388023162769169264627505698300952953256501788847223896728638532758021267404673196604445113626889589222357602218917963344316941338441778223492900048063275618924659317659847384737675203077609613385064903304934987563118664228692938006793134370479148886024262964872419126582629795046278051289361373351390432698701335717633153394527867317977787675425556614353324987718370201189643614322591156047098335042393488597361098034602762053397816783952691711891861566627298104853853700929099009887429461845659500340701576259653174439891028772108143362857013307851499127892949418660830709632345650767211649095693103829369807618806667678898599341273470172805079077524281296881475050209129334375936482043060594444732030014107262491207229778808039090452416490670707129003050365563187712660404063725035682944468015171044495025015806239051772595191214529920791246749557438250220183026536482830228463416328159277103215089134600297459936065501821623999120316641837014807023706220288184103018048478240416627407883129264493654673144832217032887958620706886415247445231204250913441070730045598118874012318273446743888313992089208144250590842099872308296466861607059517849692291129860975266503102216424718828806299551783401347425673750940548267224785096329372041691315413415083391064203827928820664490914383778580625066541862597963671312249053936606830468507251631341732574369831912670435565263722023938262839103971308451703722666254702758839386747301468374477601643204089222939039147695509893971522848748233920886573121903186374290287296797412682194117488240831152599722753156675171269007512568651581271850573163307539240014512873108048567237269591203027829668633612732516276959072568289889462526490021052877685845639901100232874847512474775342080713908523732078365014443719526412535575848949114055463984993738659795141552567167113518376300638724047640198026301532840979940658638797093032679612313386335446009640994932956677396957011822016031821526629544063605203094463842620857155379004600438038693750536985802745223212048954294564156258362768427010210247178656880548582196187874829557794068806846360262436440116882344279524263418303015744407408127084788252776247026052671016255447784201094043713358550903267282459851164138562835046873494313728932268150292901781237580670764066262844510206874926637742923238030586344345286432104204500056714510473023348752985247194939013346532710170899052323113948479090210376705003287131034634460636000027890024242420472139639781884689506830776499867652884368108447921639589997430475535742286148218827990440920422885590284383666779395116259339448361586499443403920673523860499525092028194963190135272459386107423219151990667861182496066232248754781773329283167573564102552147004103786386709089452570914957920014314490681460503000656307907715171018253828881766533971242862952327679472865172430137924806318744213539216569984362094293119019152829019651086042181579726745814216220577616685181045152109396817489514969578433602173403098778390610251011627741752993702640012031616891924020554683756401943340866683004673671994837659802879924793239737273483131849367251786992169414217644321748671893546348890774109430828106966467025649851529395628506943132954954688332717192587855231321395996464171182496964606706512290534290857908231599880633618211055544432410557503444902446924632847742363019364305388168895333015461927720209120806358405260621739290977397292456275461569046453501703398827010846718192231116646205504810103531887630179707406238236903435821368226286542837381381601335092041136318453752637227971898699223285316612589312759013241556454822428086157357855516117911493096154789754097730975741904812253265809226389167086560552410069533964807693059168275256630957703094961762677175855416361188974632826060069491092849434183658581171567842072322652160128645454927468865583577887520795308033575202613921087903459073791317263868536766561752192324971858171352545769068870096288299354696023260652160444113899580265059390049813242741249211798693162293334535795795601712990209326975224298502865741352362498900277230573164005310127807804255834159584559430037001761834750554292114354885233890807013772378396264304422128479363182170270739559478866142917458075945225433286240529763722494714594694485552427538222788810535843052968387756360749963749573037899892958394661942279564800863496926627023619486708770136476908149088681552308314446290791211300564104378709842943837539152460523411281454355267902908430532732000832679760435653284428448617861283679626681154122429723635832779190657512407546884562120814231511196022353677126876671208848291622173695999978911842404386604677674654024626482106128302822099038329886084231770539383411470804750018194050896678328814780388380811076846991174075648587097302566186677148928629153317509233032091893026683544952019773358309374608474548653282128033176788967205706559544673601656299813325227875170834530304117787740653614812396509917467223529415362260891401982136478721284434798943668793379784939190980348659658023492615656491885613642094669410770515244670452758313109106642187937250681223477534857235688606403495308207567683939723560831850188065839836790768464636291436624239324360874378883760009966742119853856554507735971597133393036002063918274029617338349106687937973408795580019015182783122968788382762322203361461756576650522181601704721755266004392187621390395909020291152910212297445627537946856988926568166351937002532882066059315704244732865538775803452951570590623399965126936208911706016256157515883286226853186243158935906879989576210637036987451777874811342840358049814302573781302077808110051085932564602230571665173903674166982372280450543904252539369244093599059532925202594608228666747460466507590129263513943690397421125090943571439737881527072737917552339046166291155283004529363268506216466296001700726977030249764036153655629261637620197552689296838029451197689872210192944667607340369300306521687028960697338000900786372126166408519066475330676916908811127324798645371009416297789012819774764277250629938039158020733483671983177434428024438621274079291794872112402683460807751831548324651191393730203635220150910636211917067597457297291035114386630252179864067549849023264651933530242884114156590252864855821046917878457520133769794479862780059651166448885810859123940078626523036853683377896850750575894438907070384390324849738190958779400445817332078843560790161113066641739632251604612314681163009381977185360854575904215754933473151533105309462590528097530181055800415342629594915531379041545432287114209392909616641524536908885981531575768876821032641367553234192465309858791634740897050429264268055112537995544984989979573439436357900189903542724152525456246730451344722972150653297934243904080938845859430488600617545243299218822443327043328654312007662698047487623007645074900595382236572925630832206083315108274352203890101247406293984497402260445955950679702537846913160246733406821782613590176583055152699714001905752809727863273402380966240806380692757429773302737245819745387666422918962900638526500579873653922189485893147114301024342793935999867122679133562993503061974149670141905621235379847430844873302652478582162805730403457719408528749432625528167348775552669641963133044612471325377559883926933601545788017642573435540499868152621413808832711323575793457788467099459287834330135277644809242862782696530949723249224194437795398830398935766700118218235999421245248637198804791592669726732703189016873985718613786894239281580089359155441097814832691310389728949565655673353686169676409127058875780640233822938881836836343410523859293575213976750791097389463223831921784704145681350343804036027428470802978363022432194505919340174180096796184411505840476562028697029679359685475091940188232800521414166706096160565051601192023125159870561826797057835767149700585343421859866657943115503847606538994225079551048046003736603783554452587186188715858692014916891218053695897511615262870896293959740311673488783013384030621670272834069326416379875831419829308162673683634175249541409591695532593867747829926206570698968538262781409544016266118424961005193858408539107668145709509384713852184784650458928705256988233181108775955779283266104856777455218152827504668610321337047444755677886323894804501675904410833098394360000873905199966428851692745206173582878794995270622885800887251057312027337836657544305152811549034260570314369021521281415748748364921534246169982923098827966480609579294081559490084290061016028401998421005795329754827080718682881248513701134700050017817548205409157421210872816782354489766654793638957664905370503118744342505892839679458947097645266580679194086854264360991407884092126128785389867806601910578335885247384090062502334478436883523855252618877862541313138460976308963494269278769372810987012916547708151018426171037750281379059815604783342082201090636708262024150977903921301712371914371141648871200207688986710231398462597415135800055449629811423578680421952941967317341291889385969047111810619572057773188947106987770619233104702927110372930187346023765407193613455770999796268495885464024079070814042285060036525967121072287832997169063308197890738822220515510480389071608361779406038140228896757902198948178379765247906226865933279023839329010969716387122598720985303493009545230440949377395786009586329827612297877169666236961257022191814479518915396700682709523268425670394205249806542581820427351186447721553956291498682469776759290113547782518220813000797560689096992665353511198134614356761656173599880787601953375935099149319033861050319036289797539802519179963375867738742071073838352199087179196493641323921490386086758094920775439403141334487741343630273192259734722465179637414849547728737569494032453988153625816673227665901064298630416742510981097580657299545879564195943854251675395199627774768212046963569182743872009530823362894369951851458149364496730356327632917795041097255478184387343895930570603182308087913223468174072325490816309651582243308527495785262324006937431940457341045366493473386860560270379857169042240253644636431634106110473818706225409458373080772652891302800731070212065880083010869088040336403218705514719657024502716193034398970587510639170616611853624812101972834769075573467623246991167569409818382514560601660207238202897277974169397974034997388636350664967136625566918265433522809239613258102030859791605902873004887515365504568419059696500588145736071046141952648766419094451763873236477150246756284332125954478561474449568139215654196361621712657334425579879559728895096073664523134009110642000896131967134303710287509742055520385585579526823033847763420822620194397465001538825971344743996949600192511806758697563411220812544765769230267284976454001976573094250865342790794436838527876567395214554146825521042618480363262500933256133594498228513348139933670653948988095929303995484967575905467589511323778108632624662855050261949546012454934098576765754172969988601409349674509480170535381948887492847772819701057516142959253734409105087249451138571700931957619001101610120535725161609521797949172897669285258157453824173172115023796518312213833864958950781271350482830359842485106939843830933379562672983682198738180810547771276266070140781860724992512879843820316777164201408706985899204954270531041616086188334322098802495113539003231023981721876195672080833110887242201734197506212284712951979566607243617716057768523439764416762969436389425653359172497604422698259245531600328018921233536647513373166276296522057317471102874386393262616179299381857343949838531790666895882007628370226041128164060587501269278468746552071564285118084959528016363347528364559258048760715738034571893757012676657161427776000107105520917096067413675874150095142449423796415167660779164488273563397284984330596351411816209463210146011396375906559495960826639423646437631676390812981653784901554671321694478941942931716505309492657347402716974772079119016562316280976213780855876873529373040329242873381135596155599422795963454402850372352274377165370676791953133396235515358704107575640357443678892806536754392509912436147014954185353363771889860317935489979685997122583974706766362267033404734858526125110413688023425850598621775192594343870060948721530281770823481645888674883153806202215898632416745770363465020516292210553822593090076468884961620126531394970884699117874208633399744473855913190525679551766747292490437258206270026077314354769672512527003587751774678234686548307755970878743259007481957114161769219674172002911200944739828422337946180866767109946745083543802328233850338764993637560329990101275038028605038343770960156014572371109666282262022796029916798968170346903918951628490352199281588652559403693317140546177447569450402875285657815323442309230348789018678870559966642939036922810434273548583418742720453174643145681567011834723013718956634149197584202783662110943969881156780746505594222142006566364720597370650983687024004805116936404981922104921854122026402867181426781873330789732705042444311886533910297858149285700531367257754503339380101624833284371911578506301976492978018287176990914407134620051270457921688937545629502515473982333706858166129708805293309912443522353668101617097215296385182224086296928202041554422195664278191831144824722241390134145046756453939319700888778951501130329908517316406780428597504093993414927939121134632233579921743667712789550402431268989874879882761048712246547433169200805443058822664171964505855367543683633028806462267572282939387038796212087314828266921633037655824382032414052294774333859071016981864752923166495876388912846038548899990730999782776127108611426041869364207034236881408422873549026506832873713937479816148689267132616436334148552845826422151003525226286957556059517292854825243700962193832150483557314632124441999714348591048145791942295543553608078656667556906761592009452028330101083622803478700557635427828852413802720570695772925315693278135543099582004080276437019441302344564367102728857015691242991198096560937346799535845667918920980596445252101874945596445348021742343688415857565421522954927061729838399870267666021648657401886677905499144992217937638275191670123162571989616517185605621238748323340700131651433558081286277438765647143853192369681577737978306031476248435710554244513260290251412477938873496849596196605807172271262849197689777358757425425099287280781975358802314575543196741958861992751196528545844992006379276448939573177788818680979709964381397201732751384196890052546087030861253252107768145686782062256066415484048590880095546181491659824980632123606091704873923433224560292011609361214714008490658714246187550374770851723661074028109978321230871369637776512791387763394184167217050306825407852548994880920440532271677976104103413677771771252791101204627439680147223024658073654367034967472206308721996544205569209305992678157022876869801067144126324759803882579446760325802269638447074420079103246616572678464945778592526994370158313870244385944565613377613695024573764360065694351706719392932101164843744244552092090698662673626932493533970037098104672202664012666900892116459010282038442648525319920228271319055914877511099851813979345109072724720218587004819853009330653354128957693780205878445050848548774165216372733544701812276391279465042137101565257764164251809111604640517734453204133182400836769650251716835944319359436945885494844135633423932136578393346362249570431315878587307198797237372898269544880420470459301945143568764089095883335707982444947817181124910300059125772743128840780914692784650715302872600475700898038906806676839524648294676417885365708784521621592434772178149857128660229568823570520273779215903833510490706756844241643991424299124985236068719349635461428273229929014391861796297258547216317506643813857961572819474498658219564147554955498415901999631816187118499646440391696072340379405047421716505302419994275225074360444920343752253081248067486093239864939250054725868130251329517986380098710220102547314927580857133492783253197694733397030557249074267872779682080064877804019752515627228776494613976347406497176789601598551627333250721554654027306894350968810624032386423237894288053844950630775390389747677569341627452901764813484123259898475793555570597921999724933339465976345117173780205276008480208792008087992360301089536352833882477020053514828702773832522079168173487306653239795592858742176257282148465880426876405160743406938697159605017085728555409713719348653280077470401427150161456408197104172153271449395691089983381980078885046513619127547895512806320104075502880170433954355735704469218079872143232744953660609405060999922665576789105296763489533838933740470378997256244037711093510273700165575472913078434110564569315267672332835209782539163007358975449497735128063934261807984754247755639048712024639348886805179624529998068443323544923558759108594724525588943184372030896698561170366225208761646636709940092183608283764883202662755937651074004702880700865443271131459322046699921039836539561013957477500920002900971296999689993325662118947201759564729230150292104665625730568845929862020715939261816979867155476512107986135681822226590427471323470400832613679760728443915085888141197353419008310044156821959949217804382362222276894832594243250771588517393149974486386807130012058159083519141635612955284369665594108556549836283929301109849865158691481489999802333264985774915547867664008683314816385919365660494684888358600906283675884731056346248800549279558770846251880652546313502594785749213721880808420960438426231095805468822694302166672115485582123023706909186425872469293518475660720413507813000170596086343721981194695048510846292375256900565252657160196481342518947231592682852321639918266331714171692403243072828485962443013307240971768704205447442782342857309150048112625961216899690904571504299987530747339974189043748304104736845713701067618517668831256135327583508123502158127805057594491169610750065516851915335158852487551499588455547495904677292014211358025607047044961697431862722247482807285640722260450345260838770100493294535539915357093648883359252301585484531852279835434179264568531689885564664317213758605406173285058909622991254121485437025029488590454475661401897224954474120902377025870693742702706432055230502027491967073820427745706712909081498783448647951842502079796268245070923234790388530465867070457932876376901484457825957569997000321970343387921577432229012779357980558993876698003225370022721984726736600958990507757672686501966588600790087010033060020206771483960721555447779480949792220828972828997011981977087830055638321043364836805876244871608108223483838832296022864331754100756023500050346679209240514671598622717966248381616292920898837063907463130183249697353565020960304706687273576359971564389102417632744910432838554955081830632742755556444203875633930200380049612202590469720143962935156834181192945579395825547902616989172031483756494898425671740444006315428135277416652257408452397811567170379613284550620383574912364840647296625500171318598658661732041102965567423387394132143238934626878602882824809373689075957621839226886353725547022314127870866015758989451428928405699041594109235922986115867601316473725906492191002919098117001092027020934765770311040483649970202000765864804997703173024601674789604819758991344121360100762725588998727920066133478936863938757417904550761435224379229449849885064568698457155583341770869625238302776360680225508969972723696133795808101540440108894685057880167047194303198657215565339196259040578395063036529116785752567456985770600136993467367199349106513117823083270448621980896179620590867012539082647147111950411652495267528032513535837056306635938985547391257473471550717610945853715765828113197443104979206788353557955966053139364981222355568215138363888811779462886555990731203416543437689154899674422710102180234985094966114335596362361635200006300710769391005071090277832340200607460802686842964184082325096157815079004420582023460592694192248902942423670544437333980134571571100527723707955111932062560517784028929664016500991153007313078919019630930325654951479120658455371012299845358777544089973711880168849388694023436989702825879563927663522089142569957336690189740171037654322956593016486170499465032553871017087190358950530966578436611512471371505794155144479711753958548243142058519090748495501870302201542651970189903069813609791458562010812362359276292660400025355867555396377428343485860600101932525477419877835486962103441267388411712713033120893732787324167448734807355612487669420872802185037483682225092988756675973511928991136452284309460581268478924465655532963000366168362211962673394501002006657966062477330728023130576563491156810737816036072769985989688112071057924928659776785164573458961649768851612779132719314446611402395773775568487903578477551641623604627587948154908197367029336226224811349883175905257551530967406500797954289654703628527169965273669564967148212270160268287721740215613813539142398474103388736038845123659827131388762993737785351390114836087652624781037888001093102955881840985893947013330803094410708924356773694341837368702028621147200349168030521713591305017855642062840272157846340667925692172379693764090369250857448714196017767919939051399477593462603649616649320780004067876255615764893840634215422369458730561857450119545894135011991011297766827237634224772118327791474414519853482860643607303254861625236375431251233362089941357169262158881950962589402175324296958684610012191924271575589955787915518946055867244271866347550322193495834208699227958729230736445058983478732468169514138318190103054352264074208324429198368968054930764756566446357170199680662623927543685118166726728528721278058357182217670278362964092842524767679455716823132366201013832635813542484442321076583532760798318912399250813724425472931519982258451833272482669075409360144176783380582933257606161993911122724323946026223095716790869014808666639354194557150581675617005803085216119256159606861685789569928704479079910509970408344897650870690048170901664305811686431857018451139073423296301216489404885945624103987459032986767770754639788119244910951318469074774101716844884802298893275809543393461117432421328545279692771318344246334869482387056230166862956857080490155390194650195527014609901132638974433855766605193488350638880950266110024126874955570962383148976638704312481808407652972342894988823783347674247411030394139509172458613555654157146932441438353498864951642041686548271209398888189063650191516072092114866088774396820529862040502233448819157685700630037489647156028381136943073559139135716030420325316267661488394913760203245725414353631210216916759886077615564460730408251448610874885063664203397356234358915622165044032779062680371362209123699300004213391183989623146322452683124028852015616398747189242955542777771115879619518826519850498712983614468424711589193768394986833112371150322040596683529988919740604724695742175058952857822991471081101380008408188169869001805811531447086031194544928147775307541765766117515636408620374457360183303110813636790440552413180730526748934599719553977924961890483299595014000135499924827380294045519023414719183108347500494816911388724252581110762792443493808191015346644345442875219708551211885698946696215625704106308681153706555266747405978649613590462796739730135115712741319659384349542044567650619942661854290690727371773678644427256760333286632384173435124570175070411377325916656606395881287684194543126009301603327189635103414762394251055309417481282373001172069501676142886761086728092156076238527366412989315103298199193368257079934811470435207074277726418596944208109656881129306699835711866515172968596634144364122528340507689688768129403063326294762221380159922488270596225930770225677871865554186799805407708719241079598431657113892688058758649377989800239751761093059903745953871115442911591840054239303019043433289275185542132505347039490503898737364446889998426288695657593979263147926748493519877865011509923368060832801020891764445966360323017858337863329602018127083193536969519447089125167268053244443572474917749483530171261782183380268824971148065700654361317705694601637055824451064924087773177068809266015434471276095556817786132969865743459292566177095398663548262692340816518266045641212393532985460121263415936474424743546423006221230301331708277256236078195046381028357177839922901344499390007751556899966734826606699425512773195599735638473037354248673456763794034225756115813804379332541158092512288809545000045989210446295977140825165089182388444668907337869805546912688243385090554865996882190878862168752870433132377770513015336854043883889990685366050527627878093384178375934067290191228337321923831340771720672887402805440693076511758065577853139236913444972080389049048852853819841548484467461071500456418554324164609989118181512128833623003862445924724961190346910499053851508727584131131683311718323951692276645818688096093701203175679137899993579103296564247881089071265002757948994677835066734207752788680144805371789879983200198498536695723427648422863764697718318036278417617228234795613630201452260747707338678190954632904958055847709287244293563824033298312656520935664952600164118427228254199501747332568702281409690184198734360146591713242422628299746208995922909112042511917851919541117958652103395485241297170730510477803923540547836784251639023367423831330926843284583766454024285128433926801842039427023760189857931994138341055265983240376557307365532617944744969519369752163333553015958827593567424237445131326659369172879048332991387477580923423179730243690376097656377258412673697666719019405042192508359026538290235910736086693705916448532003189882773035290846425344776479903129901510027379512038487657075578275843490637870369837334899270508038023853652619726996080241803696018682418619257375891813976358203372953170854579093496106624263821578707530280997414987838136771416125035676752150461872230493369418166989302189195016748772590890527788479163567193863477668342162003778782849479059064187296429678885674851732164347737249578503535151017074925097622164892214595039809004620696727780574310247541973401022999651115835589764793291910001402906711492360142612995016864396766201689508195375483753955612448099609391953046404127795642434641251941330318612614328406321959171506943023695290968499365966364572923934746799247362432498806498548827745564892028482215272538306465554010159802128190292766898304999325911516691217047339022681552671367072878580518128868323409719456738968796761350758186879172471799342105283200872795038139459823669557726055282820087588577413299112946004874208753476538170983082308970358000384696015297283697730470356158894344179841837345269917488819966484977256291513844070414808130151521259213021002961072903110170945927399431957446916322876487465327960654352926503950823347112531456500637108201082235606767976952168009906802997314804120244249322110558122852564327520318466617451429073253356308977484705251692691793683110063258803312053722502776495831215628016395395691910131039439918012312405746958775471648343188470244378039907200659253109247718780515373782115158448979262364078818897039614762643829221104763450647403297661576697347723708363478227401077777662718162576590975754069795788719999942793426466295397950860960386612995281879467105635308874699708546255651823237367492980279033424498247125521919195983341403617062825572952901343038524486415503010516979893011841385115185306582808780229965519577594488881115230081203228197166202177521981252589458065591139290270567656792415931319337902144327459634255042199108483743070921194882039836645178357255824761699409685051355714807155426425514506076631169422582606290082518671996238631794837680269361659244320763199339634038831715543159259538580948442882551959112699081479857782380302685301430881872220873474278615824953305280233869503539903953914941704859165065859342403438446184488733016467055117844083700283324890896443420418080010936246123234620111908985023493403783526341981662125563760658489829542646678574553916401906984672872609896145911024909466256774370336305461882266573012889574700329593849387432396038768614588621973488447010009769859812704654997251971392049043193066067088323278493617147484876661227266486786084536666720855347515128666470250236170850315923586743285755089345392773139028528240319368202633672300025303546754097987657479763419264250255071772608716446495356110229915119247101246276679898255488768297681006129068540761356323517499296906171972494898107651442005986721355422682726138702957512002425914081850900158854355331243687075194778513204970565501002217984558008693794267428496247353986972462737128315841683013415797634227216778250403470864374970945393770918533748115646001040615407331505518054889147227123394613176681125357381696353230861687477331222787792116084775982849125612801862541855503004048942711900503263974603955274229220474781917636555429692900713537073216717687673138367193556645302401856060153599136157484267648936134912366366359333012688595276558842765450480525879588821082369085655539409359788144461805235931539639589827044220035556885322323659082785960752175051370145157396390896917084833215365320911831543264766794273964947682037635224744028346395891869709729251191463952873619391340521301281050589386736117532155011759085114257369716491876543766874170573562048013950436723172122285302440898154884264448194736497242923191759016838944121272330313179236362372653909080494959666440432054875653317298099271608382817025161622200624055723115861817307100793673310293299314225351048888549641654892391901074466083629777940911177550919729773643739637969458903895931841806562245967485508007474747763430457718400625314857714611158623387098188060648735276721071448201688522650223160201388846258669971343277282796596558837161865581075868281713852294978735736920158831725583048201202280291617866083388871045973924945850040687359264092827337591762237230356251662780022882214343278734521438539732778601781399382081857715104490986723327895597382608795478917239398565467931722217131904331944816822916289108002718880016079225580936751214328826911873625637060051712372649947131785154683438437784588849505070623063255403174055578450193796093586171094932172505752982302259478048145984998530034153732982201926271160307283816052510550228020482921004848443074845138421204823889491445380803732292768015917867535633946991578274849554867434934352474605416088476721944469303080442927123660553563747068177039870802413485932022110770669777357391820497176163861460192598717381213351571660950620327424727142853580769904009835772032121567557542946917220690391828135817222400216973507227323697229258832304241014602129829106639260637621100498383091550413950229972117765810826650742062030994731692903527344553226655254634598840392655877553533890561950262466190034771205389548676706050702666803079431554163115170521497103937572071364326749276379991178107398586216458642350875919076407919719647962820060484434936032191691995968687529832187073912535643808601736378947600099840797837985601130896146450107677790693987315698851214240905197410631871061614561831110907421244512936604161743155040057354859583906961884530840643210423854406076565706978530793417470195293827232304754866713736738265666508850952410173968906646483481306612447816426470535918121016425040217040500308174401855710577564707515565494029309444920994391913591774392036499434785479445922829292141347409506480496543805281628843575809839107516829110776865483420214599128649112156508687658200965586917148789186014620283056581644355702464156386713561239407814734973361400746642932324740991980200332784836267252972585419215435766558862629512889122280247240046362328700877577264170903824608460309738630693549887734165009210416557569541199088263632383810926564943288600856360080268821175952235998525359476304544078068431533181413370525728612348382887565207570621542189339760769595112532586129347659019683896796264187234507372922494021340689435986445871031113819698998128915878148694896814816394781712687365283961051434207606743541457628403881970143930496161014516735834813650283755665517884001725485269009370235628830967644579391117380499554006483917677187397604305787078088486052543906447632315447870133839119163397377695741289662687059258524092893726925674894006987291860381436805772117825944486828754958368988643017488760530447040928722578285416603522000387498441915054030312567756282578657058136516451361029873208652833725288103169671162264835422670084605355784293645702115231590466300332282080970257006231761416483936550951755276488973750350035790135667779215109992300291536363786738194666794021976472800962508861070800187621256028410081191871043663803191280790027580585421269563489792857896726367216881168342477207701832526217009660417430568545406908396595348557979879797394264362751508256262763295450224178995363524247483639210323378628706316601065645259572766363502546109228930565349366726964420448190400407606171735755875048806521628366375532128122169466172430847147300325458303792493481971076145965778543706886351874201503724498110560086356757689057670006013170057960962202822722986719677879306693829202856553977604605652776836745475663811960554573991733261394175062901164733555931245097393822689762505865087837802372494253104677669902886945670533960844296662512032666983880921936645394423083834250871774405600191265114089700137297528192245550849223655553984554224752401876830724649361229039429984947506129531082820846591549321426508449751751280094838438226069726777628637001106748814453071200107480606258163672413085758084783355221972312388689208568387598505102174334433361998292302279741024873152134163037836895889936801295987338586095537317190478728336955911588370742684657889028720136622077148083451362593364545009105695852654069978625061389696736423117917024988990234540069805460770031626892570388190486367512687343598721257427376421219328715724807200021752830570981693334476406518082634655781898112043202035564602225611959747051600923336930157310078494384435298364379625620471937037611282528007371640782885175901995503316041244597489475431076004873226503082625999975141318558112264351549350445653225074886422486437329949214060410692010880504147094304120359615692781082008152855529384008672671662841596913451588932581722347345637443262566337259448920739232548894706120172671892559753377303381274862015965551556426999294931280872811968507438596937714436716745629631533750765723724261108824718127796189692556105313472483975141849670881006119255285967868359615289437973491138790921648870249169403734755693832965914249509279088208207064074261216785500222253049435475305304054773080406607090004585936027401224048830481080872333761343556803702441896894242354758961002154795533342743284326995767810625333592540653872756321168082558186797343172560898272941471993136014954498279016107044552892945767289585007063465629025225588472383984135079551947980998484910354551111518325002347196952495964105213113509748255939384564341948953631439093555590740438054583489257760083944279328620779005914701469989919474764966047831640750194601440328747069564726340601363044410394349888754031037759812910115986693251291712368328068278666437611119891782177384306118700372659326663501459201038944960450069755328502371957704081501305130377254694487581130984334981266504028626590926732085800038824816057533948477032731472677378266942680925023350090138731428666572253632360549116005665112356976890881867230114985597820889009339524271718138862663255071822339729937932683113902833174906002953688851316723484094326527486439841443435461493576551555833240985193834540903459914621398195002870369172401414431570720412369641160627730961704656654582420199895178159702206254539231063137037736940348085563515165129484811133716288705466551970651965450916939549662144410742521717377877225007107978942268180673863576366844618328298264484656289526885675887220240452465468973093791003912778338172831469445708294353933938798900545661505682985915748159046915845707963520367571622518232258734457867016332923295278778226341961349780049007268662512290198745373181364816477989048824751788960701995380294758195011077154486167987992862517095757087768930097793989920231720581214656458521850914700990147314183110705386941308557500190579272688212917100536375659013881952008994448933584856437799665734639034293848373711740832829548863753485765616953897538379677428447372536235376613979890251103162624524261119524673568053862447502144653336537173060471698698709499182987623060162885912156044351849832876811241683913278076610608181633948182143755120428786220162160477055469813742142737967087124942761631555730318346740202703948560144593580177960103834874877422003399533995555349971607982315593139492933878626731213704198984635683898808175988519343970834647107842419649858567411682152007904169333486652608074164064588908342974955112902755552769507082615194445128787646890080491469030071950093833310870633499316666815032665101584846649622138189831931291485616765365325283827278406486523259838246595462295981363123455761758953784405804819281656169099939575546304452064219964137020464141173904022513612823990731827680955990742523974660129362535963314019725727454839532087474392783932158195213409548675223517687548175716803983274652352551647957441673547682279685747508818131335139304296396408649775576087126845799335913716166014785757628214730142974625774324247352808238506127313434881498343977030366244306361049154016208514604045663910285643624763911656188975626078100616147943987812218502891652926543314501319995543482150714076325024312855892199482339182316061467207525812887940632884183430150737313149223520775307246008386381675445245364155470724766067130141416730583508642627754867323598452355594919035944835069327315054372948803840540699084367501283383331433155287455374674931013150539836908036516849617207049752773322686231329629105405371197926731837355903456496447488811883447861167078843351599074186087676457303762834676139058008364840685185787431761781896737503249692103319757156563681437811710331172167669540157201628335374520752864472260870042894526066437245633834815109644530300668130588004366614142342504510192755765413519705055310714424572902316777382442046193596156202611886668948121585702221998448891794290025410407052190985468690538347499622340021104421508365899950893311958327295838281388276263265343798132177720227372564237913079838620820243218597016727119426156869766422413047846204663998896351585026082805227969771284261559109500915269063364481154113764741079853554108967215371074369392069897542741327752388137783565661000358322716824194360206750478405704466997371235164975599019376257060770802302172902939112895581417137849058991331896710057166290585006860366053864620077020806600076170236447289816909291395319333630968800264722272685984078644337524799877173142412678757087548991979992143224117117486170331273602561000711977894078659893344964234570544408743112416480559923343687581349348670167223721454444202737758434891109131209661021222736308043242979584028905813934937765482155768800081940724195036621023911868105748427009493515529301909676354793027836362265731756772204036477300484725897897502438623041092549037100687544479780386428859827970618539836337737088071422970749061969893824315278875251168474749616823496746901829936716393230247276657179211052148451128892071860522590357766032909852497519303841043081540456441129951435547442480553875285298854570513651284214659861582689302169370140764358387709861707959147942391115611754732506531974390952489904316678201359645752063550390925846430289675710151988293457568769230620204597738342763245148566823410409047141721095525148755546161265818919064351153140293862695986582504147625345786089054708501917626673398602374534464320557838782518808642975958829908231674628315000960718896041733800880793603087276389082584913593095360526633461608985843187655598592587560112859729675252491549663720477380198456875230749903702137038630241527267328692282678327653480727720618640900319821469327087654277969833812383227659070771937015473184298655606131995926031181472033162014039976945940535550205792833476356451510619580359076251119093839371988831202011284519087335415221759595429189946405954122015740799401267124122928000389973674865898463744244551716193580864521559003023748259016275551531836467079465984623050571322095595411777166393502471801106275868522534185133277886268542844523267626767039419878434825338852558855978513518182253264718800892618123861377840617514506555241256055572901361005965300333509147126188929457787877922646354806981797485487157977367511652760637659924842624586888781589936253128381607662015821605235357698098408181252723208399561163459268283387984326053642032033960202507623622975600202131191019100725501355796346325104658817981468662162456713962182361925243105995456972516125535802562166071135332338562613215557674955169428991515727598292249808130512279880665060295561900626420935345189534017154300587753594889592335129909086693397246929013271835825834264896775887314251536492823561444748954140254533200164180917692294038232028902850549847923389108642704886869819955288780116322082291773317109724461060110432365051400856202985718067990200489935905472669435010488866136771949616923738341449367784505780569894093581807261425511226207364154701415237042571908619893404647050645206733662844945202722613395497133181401204274542432999229846027502665681602669887920283671742919955513757490745737438741598552242849678614922408666589496002782989779190354636982439900922651509087006133330759783103342603350506582103181598659185981337621845202554500377324212227607744121574983535592403946043061908630568457957208497901165769158116315906749220769837203420264418533861398557758180529262444790502971661282688972237189163485505967480635049181742243494697377253971741049136947639344721370035052738003993548410900320750866516934643603168918085614959792452880213523321326792831742128047710353222613976689919287361813719699859077665099587279558434976652690760306037635671334305856251631222255446776220857739348522550225790173236546428095638926882527011501395056762161067901044934789809372833409039057780458600068833558363586471455169627671713900154215754453066845443769625882314650625268266454699550475523021462571050150126191035907602022407144540556415037537783053912395962298204764835298519971443988734745294869626539500194186519517833149798627663017725433340581654689704621661167150684954423217257226450643558000744415241815246801850540459617860013680722693190532380916139699113627560595198020774737774772047915965334723166691688536953942069713899056114408371023976612490864322637135587461471912390261777259956687466650752235139468674032640096604342242407291262591181056119471653607364527332074137479636004381451204102889449171164542399364400275649424874707559136348369748988633090306241793641073808768306921379566938818644832783164621284677405843658541167175570886771954110642273242331994833407072295506947799712767621681064575353790109990745779108525326027446453221305963396841976346687216892658532032996132693597070568187732080828488758758142347130800491975018203983697556326671083673487357103500218657583213183363247190716560387868737040122952061337918800790029048112488723127707779374706359210887899881833670596405442817568123026434096148514624688963426602074327009419321532782864884974878498057775356811510867552147841118168101719902872744632874446611141947053206723273929380965137107150610374972366366043174324409164668078753357847856406013866064092334010619802669301746389357337918355557993351662877241271483582497412290826708487447408275384343068526180664038899649757804321690785509797929946025916222727827018382515747844617904872353071526306264408311454955494006517132864418033347691396448212254231698000207848814349114412239150300901842080675064893318943381263883765667228426622150510869210022241322297555819151135215264369035338176429670832204514606470432146238994809157154893583146501718364852244509783073805397817056280979475212573672180100946526713854946666100929873869253570411073999120151047889390478512061210422529375450061859221808191358283335078804458108395921036016260667504611567721209897577955563404303649998957676106080418563597098835090157962563408231738453231297599494639332305309514754719982299783920226751978584464532042158582035611128864959181119679965199106891890329714469380184379353567869289698045323836092794679704487388206556206622975407055161153106528336541314577957092829620901719751389912005776257872278321553278402622882255190059388930879886680521868418033757750625517780101458971096822624570637476463356056875985237024446932338083285963619572025306865243049505818676265721603198021755029586547974067581161217125268432613000767161743301051130936715459328866856510393323909207642219345833155857209633069750626984673843692359313887454191994281263950911159795134647071665956439210166767718687234632597138264857480505706108577567228466768174119202145898813902436379517324628137685646497023372858050194692455162576143298936181708688813170976135485639591205951060914313789876581404564416006915678299537186640562248598152429298146548890054611168186604373177791759222999879925463443293046670915029661344446304248861621630862805093910649704737627009775639303409918375016774856226983294229777080882843592211869357529725535008919771839067265542887800394047336351734263931879039540658709674263792174648179027563746301352700145680562678875879514328437647123389691392942973387940320744684751450752030102278181681049091464748664317736215529094274769268433230559118529959718151286160867076434451118020053945813436787513375113168082073153606113744486828301674752667325795822631655587109632376504721790474722406000366580961242776201519142734642684820519567718055035416593045665075290545309240177114028343487687996578855751788151139092692682165595803532626507714768585756048421931717802698566439477174179065018668143681131914009224116275625910387808728071488688694347010336462968848452081518151029325516244947062701258055098382608525988611576838161806021221197476247915624601078923313320483375323422850033460792763745132004039112030746299547869767041289597476750853671580001108724700768855947008503979897726850146458972494961489387807239232161854094349573768040536667680872751023520773688134463760524589381187542094033020546359715818692678947229451789804362509106596186427686244982703958584617977707127687355494257618396394286687649956155971774150922651711346205362569917436796327245052929023164711116864243812491130121803413308875064620982982309064428307427718868421195267950723520113820063144949440259128839226546725235383413179026009663903633948019499390294989746914076881388511066038629004282910789740202053993268162497525574618518980487799860729057458488024186997108890542989220801890690734466190956560711316250276449626882284083159768321180302360093841089256920771480605999230512913351271062411073613492703206701091514212985780485960093679297951111431906987790675105450248198912685483805732009809949761527021852089141208467856062569859801018107439057105246818199476646530184447263662761500039005745743155457427025866777685247028604319353519215988288289092537856798953118864976341182604179074204165882229188566927378864739956028556029352864896011886795343640023753401030115486995287535271128576370227070405386912092839678213945591733372130753609375377773919672839984395151527507809126043150210271168126207500154455177848624544900914841711094414591019129410148670640841042248064520693845127514189237818711453028373538957524237413846241399673427564783590876101799420317957591693679555138054838508975737763370569341811606200927812487004061395065597900904763240346518241025420911958479424815759199901687970490802110484130907130117015734580438633028836955311845426109128630261503057733746737645197386119581462347713572847170386883407365640409441786677715132188927475177602518493150278021048142541256924256004990406187247033287049837723819261736926334534399269435981000295180934816427218092726705502717275766312620893030175531688253735076887245375473788189374676762891261664624123968961060416005266933222658020747069382957494888728508745646959724405283779804984501383113245824975107611394871397421795405621248332281216401384128160240597852902344579128372919459834391830796619774862696107025525736816214494864788672555703512630483858135793420166490582954517764951368562377130320090900615501385455990941246193914956078017762303782763080277662414672497293530590937488186346804295268557222370547457976868384162151729710672970979844087251495857077282659354211582299770544052291116193384139073231690428498511642834279060707368471450840216615487791277083388961935113896661906398144038822348422681059908625451353153099708269674064956098067857330079102841244794946823193936391411300346572771306593409115546630620872095827661418695655739495805493886458968885808849355923153263315281664911757501564468090141474380072408986316124969065651133496789442815001198961026839821292669593683218120082317087742583846946743101870194704862362365446246652568484276928045983710643611913322466929448505744468145522024312355916232402513288348956657754451893195972437385521525444794983556310675929529607598428367603990927719242386131107785569308719372301631714638546380961071029345981452645155051883010739583932723639855141437039526332885481033178918686710665907341231271610600480397181251620359879184256973536118657782062768315741965779882726458520438692436024393086298958234890510890628890627709063323131018791392044401892110946975205230410665376083671349278556077885679236464993275695663845693770135559463796596476771720691164768725330355120762780769250314086448907884646536426769259190410095101364041800856743694237600110726854256314231606369617943011226365362977482786782785838126575701361118171490587884137561401228653737551384413904938648620796619449356675362072006779344325771774590709832963826812946802693318049533797237530822465897833494727711930685071540860363756739638909652506922968589783759035354210638270698252703676071771770049573146149854045227754373035043603908092055534924343810102608599952647974014524351950428992799111054284191841462417636711330361232540841228792188763062920779550290055955713077910691048573536641267511155646684724281511412634013962271366209148275081059157292495393168705458340905998257357779243381231775223156242577397646585537394340401379447313141636063087993811752192304325722366793599927936836593281317174299398577372453290745000934769368723857801054041089663884767181996133589641814872213926475532212036709480697526826438185056982628432128159493599864339366571156222889022633365189988576346181947537436075432685322684137601780422767910780335718875847360598083608212208137958326930383340642845398575685835152625834535153508621615356138725683171138825421811791942837041725255721911303819501733588106127284738583064429626929435063988545787196934371697382778677343863666739408240287610243297977958918128372376976961148518066491457625200421167766424690451590605449673710685343801349072700690467300239604705466107061131703708496189002571687240125879484090489142577428919436526536530633367793697083555044588813184062674247534138579145169675023090740197138826758084786193647502330551979212165895906406890662593791577921994027561941531454094392110241835894367391685614535501520150368859759190374501749589967771900779308433669797146189218746115012950255673246636357320438565913473861748908647814364137406737746460910623267869320054999065218452778539445390029031505886955689132371636786542674191481879247141360721156659568112906224957007504219336294684973811938532655825325361436917691599755188501381659956667321907053379403390059954850486498034705142649426541459243428594596588995912530743268578210271928514581634434614385703525730386128060188287322021672030839567954052455655042924993224930774389749161443349846628196384538345630295142896659909469887091481440058914333079151044351282334247930800375082150568777781104449991176690893191470594460203236864329521032846870546800997232391276109619680468969271875646857564348785619852208102770829604521246677844757246195773358236097600234718461043134616310156231264225831426084767352996190662570185135876375621409910796039571203243849796535681472329405845047665767746646918984214457224274999594962557705616908191451436543007693685634928999554085468573723821187857356304090969511352942930595535859242172588946995892248297338639405920731230629961331020429497051321081918460964687982407869487312665775795803388243185220661639237203810990158774841549122725367402346105739840356050055453576568901203733793098905194835814609455996981887183858680106427282899549580764085148953240508643267252806265406402606279777411306019767666135383097480537431184183922281119464480917405747703641558753324573358665641187411230479048686951660384779160740585742522026759854536953998197779243802671378637798152072115005683370248012743056094641270705618503014315390560115140842813279423691130768132075222645899646046039199076746826944960582978193053815125012870161840068221800175608386013896172411413025342453720932124457745363472738180050109506077870308456670270175921607099677049432234101252305552607008908292911557506496284020805723453171870486043120807936299142025604102061960991159971519868800903051115483788653409913605666653990072301211397519926098439949728542366816792435637352792112938753484799981645141818317917020171882749084046220743398352377549911615307983870004341801790355360812108363924657201774225516237480131251501978701155825106038233090688913215524664010584812882675138834948156442590445842190494294650090372906828652690407334056831434432525240151167468011857345967095423488221783329213921403739998456269855967749336752226030186081056497418659273715403405280426893335426974696754586128200052421584147646526053467494300500166198708130593036871412330941776294237392112683250979144468552178027887407087279897820487706837803055057334522961411936331731301053382999048185637893271548818122793152345940834424289075414090794006492327586906888325732482411099575663932545171786808178173864766697511930773296473590992964026375791247822372546307549568442669170810544994480888871768123334344714862451472054537380652903445953489718331003541502029045172645046464629029541835366085596272827585210751013538341279430183844245257310892700954303316885390909226545254950227003162924483553888300740270344197548100734742193686591620391999032082143832788892055283763639430745773990575850317777170703657047887781850576951007741164724060295600577356378610978651322753128596348800605756792601354803283237965506991490558731453789457831631335807992006991244787866788410390505827419417089109415699813527184889288582658516145777759395479158560289651956730321980572412457942753768116427568234000769806686286728622779071944982295812205298117015766573647509483152757627438169849248305491652169662792197659124103675489907642181843581773505684837034819455404803147472450132868678384078910574544923577294865629666066343414182871169287456736658706080621559813645913184824674224113139449876792707496857947647314063100814862093727815931951646838988222721974951803470469647031443842540233206819048446502414238031239672109408903566261721754364009226952769824060851030372904907531863301986167963109261479058634833159725414450293350637860896406306599334859082217178935395251442728689473386303702087987185330969596213164826243561859077896654241753482168944431278409430124315691756131721405587541542168044223481664057834287908970476387819043141849190427612927969214323999114859704433000746801416860674010346867835836409092593153799603235467626382627999607952110495601353528751982961281969397593407593727128290507136747201497750079878176619809799909933062702304089716456164580654794890623817215396166686888785954793110689146084789992732582833482502200003209821709548787526085564432754480687943003637018656267666276649224087801105006037221490876641660603091056893409984625410504399158592905603028361800626712190982862333336621772532065754156905519077090663331432306909457238662078255475917628436479316962519565321532850623084386715885728939544800415986869238465067375326314880545676653213928548529646721341143332349035823551533102719149905190472922037724246043552631749266248471932605223302173333784356860162873102826295990275767944392674662975622170891928632307793144148130105502728144722687198134369133647915906886511056568709426722091709475314019858328042068086274840035466196056762589364754804447881779285792410023233293710270133869975620670659055579948966901935945803359047237910205922787139805437938409002008607996879817225741770144726893755890775967513822981897168530321356941502684725086024325478135712257502704709683761658115354739409632510821390061021464420875716902800764061079993999616991104034236021377371426101101633024584163698393959923946993368841001536238019747678907634086535828733250015011632536527460437651354318177675636053930176996569486768913919146341704793634932967492870793720141057645969780037224077995078268646678581630786753050426919241773090457473429883615108838067754209996346856090355339417831244755542786076704828808138805783425878843469492937658668868703011423100107536538594293582576869315944728237512237520743315714485641106060426389593170832067531825552080377177018963414642840959239246382211211105425687992994503506846237973850303728939784079994023006322367572359790273478064372593061580748995066869995908862211479804225393458037855063032196789303756142812141110066711045776852622862313997306712642856726267707124364375618592281264257742625455382339169305867439457077636582689114911966364159982264353235678226559603206803961925202712593598145146227050344446921048498291277409278747697586637486993810775968501240028416790022081327793365101484702173910296138039960989542679113421209877799978220914221687984092623185096495329435539628825856994489281994273244191053548335097959570736899432165258000994752384039425951140398267831098075376353622521081339029086436007549004710377926910588506001537015603702395171149864856992098574958584687341833449649672119568670205839806407738679334578574412449039570898066031254263445163864706621805875705655428619493599183239902322061653716363027389828327560531365522012646975999637160773869477459431565159367142493746361122370375618515235897413492159005061063488683232108214054854295747242517262349756123340049347174036886765190706488058243146351760033556836749089804502656187938452256895084779436539646841048587879215882548009293023002832143602383243997616411837001936477909775899647562025632646422831791631028847862961153794337771659796578685463083288864609984164904459990968077948851717367954726846062700465745459663652375765950581439115492990164559046117542586005706977262011954721291751916904727000229188261329381999973673163114592546243121248001370002448823077931236163831690917471190644851626662919397561946764025491559809466890318483271490415945499938069299669883777774601244208438373751993591822859411172484584596100832346015675939486002632578328347884960620147505648306066535372029129632737710966032858151902928600098958342901997427168972357673053877069229917738974842771389501440566349777030663392919826617833127497107681370001408826990510526653206820692241662721122326269678317100047396274292259530536722732502783609197182269410567280782885243292467861014459381966645293679003672290390689476351681385640156820546046930680404865226111764409429233015641475732203513925918773653549811472245852560150810617539414909032887306625713892159357246858422792112715734543065591024481370269191014655579873135246060397033062516726173036530442487746198451259370453272018204122676966555413962138309178888059242638136053998648882338158466987269831400018815941776036168763168917707471881490494001505119768476220453386148567626118639657816617550724289543973883526656430173118715828283699401644945651888991535325044131024547213502531951549327968978796968750251623249812263452058805038314376053272840747590607474259822711890866026028444982061167993683659480455741703463398013985397742400128612166240410535371798167360628548121211601559640759187104661670868551710824081422412310536584154946951110258571512750913195278077173658686275539259215567186835355320980900726094287036433634833682431120826922121371393069579748675776651133923540086166346445117424764687416572020195899679494380182130077192839362561862196852782096106213333142745297996337353656331894140243960763496620805202636235598362459269968357779453650430027592796899847657103554200525312464416729021451545335157035279300366443224993746994278866795674951165776654759253367579752663444453876126125181509412120572831272731532060322597191636471713468690708907051846555088287037575480505746930925676723502864596975649348472162348802842162150710435844356537294311867174497670180092904936451381174868065734711842860970382065409664568340692196987342520838560919315507182545655242397826118683682742324179324299447180231478249800188436230086977010812066996600011144204602925170223875512903262534904875222088901146786111478009778602611592171671922308814727653841019332933202536854478055205874962545821755959394635929458151028054149895527138209584617971335326099320998196498435301082014969388121500277864912291899507889487992307784451563821888729521214314825836719564301922454125425426126632624867153153577549288605102222688524806816028508783080933630556137205858981936285524472419726778201506315761315197910988015609322817409066132777263686830671746504735917285254899715326508258799369141894724410754999843803513564468730714635601453852039348273705178402567845605401592569369982909200155218534402258154749289998239811096944215398474354913948329886337819930054464571238420860019385742234502304559883539439569092442753048110015322400214392323006200472452635921352723378483722761790480828636345899040449220848941273976643429417844111284382856598126673811149759837524836673628140374321734818517063166465831125617398127332400033372136831709627092152811819279632976465444103595063478142339921594625089948060896609063420988821947603069623006801608651182575066883872778345530836513742072578285247618243538091557530094046435517914178382473757634649140801481731277269372947924155573354857968789257338738380220517696090327813962477393019692510118527855343733337427728815374187873634149550182536407727041782836400699011005900644226074984257977720833802314775952704386122210987299618025396375657387104227264578047676400164195125539163324474634559656227493565768220803828078754331080644001143728098581116672085948436125728575939796001570658361058397055352385833969421430274628676644494149393294821877112601309766314500264307050360435591233749252812423968017935175872691923983850090259609686406199919244531861510265628227522501469712573181107334221305060975218414792797240819228596861439638158397157175921222634369794613083151130407084488065864408585718192002643984229323585617594105131176676194564063031742502583457587534991475968864275577297618362550750042637548381348406091576334463160335064920502606383353946481253188400039425317947522871085214271073456592975172645821471489291026693336667618990338485551059958995335118276338566070295825021159594165029910461922190255052543123291541201032922425021201822479010437591404814810007203478997259732204268440550242011211842363548109207841610268078221572129996162412434823825093282567619238384735912989159348034116183330632486164955051983650871082813663045116874194646056142771430754460785013893839405128685141367514177203211382744854753601400063796799014488840876035012903812932872727889143300411328177587777158513618772488069435800462973192385120597722188046174284693516101405571322475095721695061074331005604655024666004929307672760839840084644350352749094042629739165030122564300174377900121286534026169779738873021841752561984281585874676272024663966754115555566169242315695713770150400420789137333164166604097663099014514415503512527296193845773096987064755915464101156691723373514187130051349525040485553212605026091658590396570161344728006651158059889233050109755491562890876877478110293050181638093731089580321709599890709609593427948392047780842795067129649457905797205966630122325981265332859950892963977807885497360436426282145822863379197343468354412773399310733012719975113962221522865771193855878680178336638581169508659152653720040472521340552163197326421295723652722124708675493997937395244537478012426508076374655699082336895495654082895883120010394097626026924627457968954609922873889023849887340393582874813240802238579639580325968755264842314953409420712314750775686706104529563594146802645637203307964287276693134864910326604413532627967344662153570829720876243001907200862996886781993747146299459845869270485748620380585836590186624271592370647966506496410967308189760864766883644238740380226700267045647945501764664651021131798337726573659756156883097359753880808581030004036637046582138223592584133301368378826428956458797396981147936082221088513332051666210909619606508267091360191717132695989572542744952448550185828714746666335821002084002060171958697224541910399960587173685866601955975281931356068155179371572882083646262736521763310148888724297330364766543858823804800042966643300653475890174752637457354381846758542842479098053354826818947134983878076643709602671835602948417985575726034450239297970950322414595712419863051887304456552579584762673708833117026215466396295516746865957071316773228523519531868701987287625740687286553047345927861283392510636395369901573465590503831182017027153592821002397755759138292163818190137007773797136991712411209650805835613404713512815777190690703054301741561120490096354272373847096404050678898624015675584937183987407698206631045649172846312547339569027993233932566565146484909129963337541147301818316493513755359288057051535810677708187010366215038947818985002732422209186403038011814815637914560333322208108535587386101994585813353910724504985340610480136295460843408236248423460593820858267399627438923814507838223148337267179897467588019968392957913388674203617096491912712755957276384500789721094590703880266440670346079055867594136196933939620122775047377855689088510864255249212872683092342909005542000153790701875277011969683033075422761671103017605209042432420800574330290172708874530042331547564390796875102867329177919188331026846690133586642112230602753341588695808861517071093071176069949720388712707830945836754596412620804905754847291988697871103467190940165797757266083603874066203969294831561062443190034822878013491766270345975984413801646590905754606343272391700156475313220651521018995476190297443946933665517409906835408324801783875425565389567802627470771855872563394340128971761394336406822443169945867463578930160127390415376667737247312465892595215899445091287449093839628490552943065440126205629466566194984372969212877487593014172678174184672460475271226498100508069819833925701041554558112804734718357422577874667788178594789578954709551373656548491930747867288355297794146698157880596961497472562024521696032279576993946890249449556446596184615388316314053536016240975504583403647928558150454841912211573491351147210711057063178317579977726418650832230826118113410892713015805674591747411733364596791306555966604794361095350858155517248524237194745306204235030233324013250097939465635368545479361912870406818067716469957581699558494176912185097092650504854607982330451664079280985496920065395411401479047546478384938315572835963988066386955104110505973473648936386276924799039304861037984181964358342189612923587538855926774896744113010451972380033078818637899364415118568492904887498263170720498315739544037644643727305875053388559424936024642122013124906087502849436851118896444188607611257073553667453289776603872406216240885376406908571662462522444590744464044300717080805431574813598461272075118342567107536322878939625909066365754825363151555793925867471538018565220592250463918935766686951200917027439061514615140781610683847459019941685488640901319253665322387140443951201394167137503131176930454939348090702073536331223684286272973540150658870309266299921590527847565084381071544952636363217882269338282200454358375764842931415174781204639448072446517313045068551098261104364125353716986662621722839160585659681064158596610529388418192531263942785863164754998884384061473999238147619009721705584581713245500445450932505157177831475008915512105588040636715595697137455147893176105702291752878150461379078999833614541443177599003195294303780094493914754671849880041856554145916758046319725064918351056074803648480335849395891432743412050889738772566452782083937225533746436783368520373267298470825283037569362247356839261685874632776215111907365640282834652419004534948686107337211650121768037547529192007378214553706592013249564654404428666047895694582441728536304401426353846155440618139299282122133308174359794301046102187768811537007465609000987287193908488332166968044805277945972974091004108903731013308122793733090870671729691640134115306422727428618323701502301867561233568503925317416617700923745684250552222783722835385801374723237092050023201842837089996357014690013895931725392970909724070300717131965843086177868311016344560853987300512603569334960784351361883570209680553737490535505059698515615881332018529673263796269263531177757864898724134310766935542930354564701599019631461570573540696676454881787519976782210823545439509809592904398470352905676164195252922440428041513975730524889528125264450990761555961629888479195947376647355681999600507389697702472279327973352681055350201920192790030375659286705109032958958199811777324193549759059233535935656199921462570823067219524990675395889093088713911948889330187846680130622965909143289298060048961265805717359871185318522739616082579078306897690927516496695298328777529121810767463957138781738071207875539060286400224905523575809493420381509992345097589274767960724359658695155423771326566156541152003122487415324709956004096485416081214582229335726653909733222834196342194099626863482538486806124710215666302873933330994818661448373169908272329992468251739717128530988182820602413777843246579990135085316469292469807327144834786203504163101294571882545278521512458295823036130555138566733450079174412549113626412880063979992833644435184966898949952051532912109048375620716645903650745522058934318241450847157510104361481210671034286026727935479610685145872159457837382667472430205623871180799505431791386859099962615648046340059693706426444326682126132187557848343980282739176316138265723658582754626723998932086655468957766928871800075897567074106365655617300056742130431341358436825063173615775886882640147303748538063150236658927374284911265355065906284422008620178696370308310720103710968417035868928930507087257653734686562550287574509676980535760365732766241761816604049558488957598818031105267696294454779031561341719607359255076734565202296698402761007668871705494713058016095180526494609837979987242923665223016431934100794635056386996768908000170425512487164400940044169484530946380487061550598515922514109785180215633685264348502293311290331571368839184313624338267621377078387246919196060617509624888053411115855001347585131126312588726303453083482315305441216573866070807791776784158575973532517524725330487425024593756996579366897891903146361819677398391194942398421312515720099394088445794068183079162477786543474274739745138688200025801123137856439031960664593104473987366989109490056948307078033690906737054387386897402055958954437658289266058505515884118590482598018196395832840113041555694498729049869927201283991960580727315406116733190005544522856453634507439523324318748370585698022617268693572673145155114567164084798399276425054397590423532057846762232394485591712895697587442955590936048733565231235151436957127314728660499737832786033089815343861719930318581136825388095498081901488064040165954091908016841375017713063802872112210645641200864255314416485174798923656199862067897412170044330375547965857100333332627002315221419327906691534172373699439735833782989940827887473064968271484279182183559291451063633564467932777778264943415828880848581036996390948037169204250561673027234851084438031703073998350473180712194189038770742157679453223863112253634111977900301286437109340976145893962915632003855771409517889266127430293800971124629509091380096194820659097914843062687779280366412529700934844554085488391050449318465422062047484766562939874349586624191127433386577082380201625358252562621858171579274868150074953014351237796327622928652163988215826154445038347931780619196935511454124662969708222130061484996792275663783580679054475748352022955735549296449841048224757148555152737385858270712581188097940403730723285269743881530403727426291809503435487293571621894687323172039183700976566316248368394651149529499361706675281549929284239764913897334077026065298178233996581723358877024261126756444544558514303327507044243238506648901733267117553905296290038105214558844300894151300972443588490172005845327037562806858851005168742269465859223906216981620404552357454825757499721651667727234258233602675532618037911980920885536713402966350723845821412020922516770929342749832899407167780978661109417736190774165436715499121682143820441468473742421917468821036959748892252918140558263721838065506840410348147501502703878857982714879894688871665884759045449672909487492194186441973687360652114084291810762603741211006707404483352673630116784905052332940571634666432074827026807108271336282556795657526923264388588099522271639540251781620382705640947793224616841174399424664023440496283563505769320136429123813821885268070516851108526446147749619600617874752122467860442160192751976333707455918947969992085666791903694036966348393126063057183885697801028351477776652220981056987347440864288472784434475718009382661934975615289028919565683158864751597437279041565574308684753447121963846670261254252865065393743445144210367375180156208418750646069571478741675493326538459364412505437778337893944387796762113945525803880330088580549268595173847587310469159037943486489929643189668020554788396939090855481466749626441549272444849635738851464999211755094017674637379191908315697962724693732213679796230666080893870661463221401515715359509946103366995957198588192558411136559430893843563393483446208319612133079615994919330395275711244727644513548991351111076030886609481823692359990314748008383003242826690063703128572380552034674845114970409353972418355430725975160096375230824359794946342409240229578919514460351975339156145036917141440263748736604346443594171138628883668453086576747141292269713353540105412001340055884755583189697475430529870903067655201942535551050314846165517587735178934983510936400340698668931380285367814899897537696343629478085451438357874157961011124743452549725455491824194812123143396780850433794944131681632119694754246088836293003981509758889392677428875983398384577695586812771336671487009118289525668411726161571841607058856470015612673508058528425236592390095913911056361890942656660405487038320117576640627813539744008535703739859620226756310353480472817416776677629381102075922692735966393087295152144972543875243249383013938988240399798570456618671710513639238913077028629383455805537502572721633527904597936305462689882285142412609174176164524637761449053359470055478557633725858733728360378538507679908367048964412874700795937776513132507840248157673417678660998105936401932780542426181443595711276904341202349212893596738140202234131847162068453230281951142367264425895569890374987643146970731597346478077464607642310085164766697048128032843766116448910623539938306175558003402394524493128419906858268633273927015033581269452651231586633438496513244526209813741867475168597688340631530365281173291015368238510776696929095652889286435947229833582251873885759372352574824746595678124104276251526538804661521867992621364051225156006887327693563031234874259057023986543843718643591056805450521625293971608787447112117146463396205241399017956657918273751123657651042067121055348335059261209962549787374501701586834496920133143248810526371829881627424016852728540845672400952664791226874004072016777302244321897306673209794979356611052645214115808023593068067193424871213736719246717259718887074128859270956868557477122431439427978739877412675194535636138311309231792819100037629000889215824125327393399587917268364953224876383357555334247380518649375575221836258409064558185773189797710345084270500165693191234126344393639249057116630857873802437505946897647874369066866390322077906651013595541626427570807493043360195127646872324762640083926007101372200873245890506498398329738278000882290138979034904591875226733568169969740428963160476390142838348523901072648895965211141605657019390313153395292019040561668872650509726605489538581758569330905606497752812731726684830620523124668649302754877249099524082003166912568186222272826088702764825433762551737051428497624473803197942018576516482848508450970397300159078335063323727721990357752129808807910926784799136067860885582323962583341901491046530723977993649641967574441826912242975956275332460045425856452653422948365397598220135664317767330578235422679406418158762599261777127239894576282683944373934378340152508997409892478375266546032428776348369112161828391821316238434981625503666262029548817235040202733043062702794359951933742843000574880528883692292240708850098649389704157269773937079711822816866548877641621434227402079713279236061996615253040918011789258991352467313540700783112861112082172527031468769970725775887116041374122444823490579724989196824272861749640871916253494315465229603581234257570713714257205915293965600392953748558232761446581317079971340290409401046842460355073469580167884067855433016641500120801958832910319887695145424794947425862403244964295912224616457080933533875198084658738143433507671336857077445164343777542676907962296319411202622234132040250225928140960450382932532923004170641113907438783640950709488585091782180690396973122399444219708209076673526697840812215265687464425796404897470401195470238224697513009222345262215958932398817657388658347289468286941097024503363786536479247569122450127949729032493633506867830707617993066804611981671398752872195618363519823978152463501368710888694489998925969288797475179578930383179623817205389322795306335083562653747472815471249619835943532712392925317784619790346829615061172775905878026903033544574413576369068109623646911762716357139334353068444016450574378585934727042217299384892231854654673894181568800426457831332815731416679729224269298673919147154964708002038859407808588237906921094707087368110369367531806855671204470016573564072250468000570203529802284337135446061542255489828299978792481140838976286580408686993619606502657252113280140187895331244737247700185101846885358222605993555562202564404037673793870292711878880367078635603105529625732332465668013451177296508127280089397282081018247423404380836867425861821125478789977021272153066208432904849977743075650911892220417978800212401627829992774245381470791724039847245622560406995262145347732215306437849272736176137334449890622943714622232755638182474785788801597436933537079924701193051572827284891633785667034734339965386367820953309720651598405545897250680473520861888515504705738447448819803354096433093461333202157041336917891836056588155389034972968251938079470246660611125059154404028776364179605190519426567276722862204488305291663460379106590352859221435773686295280273588873433078892364171677206624128082292503160418865922942381339402920147769789998016574202853745237270600344082676228842013108436363476072811536576158581950310833019174050461581128370405194493870951166208298177614915078020746906856208742538752807036871887372254945293478740659658247214405061513429202851087941934051622969658142814961598657180762284941448988396254210667801672594203844644606402567935907460748830879301809982295847586798373839186745542795850231963767090042222327844604485837424492983131382334460717987103888252320074049114880034046838515002349331393768688598658425862990322050913381030557558664386373657424403684842300362990056772111269044430273561180257570979714401855708943545438314737214873824098675054232196591471378969058105939487818194962531917554707306866448157859466496264246950928888072378835264156306786241029930869129602663592984432469471144555008714512491542135491758009778565585595946389218314408743275859813755503139554613353708206719655139547176581667221461210760369768839726916368266404559344383393286810390021453350829338786666117442208895884405132176477848990765233782076815712597008225273552039853396123099068900158970376091144572983224177830790245113065696830670069185504192460113240035819586401392186102652069704631792188233459258686580488181889381694106651753085524484086696061214116445967579584578958428978765960000358586586444487423494485299534439414581105661003699123910153236103161847111758668410046143887392429900580411895237545355814543944730361321781922369815447333954421438310846694440135337228967575554361450969794991532314825051141299326264744333644856026105581509152614008564440272600923431797728349207076299860296479691436732965442301992384923489008187517543117759972108105730734294918277357755200958938116491830629008831156097772848573024384257870217479186509966720178239889445312993054818132824628095296580806569910935172167528809876582464478290903725763148960324053129692418275173222826479823700401874526273728625053324654548844400190732096312982346731515890889793990878639283803447984127662811543422114166003447394032190925152018159804774017395853525746456317857819665048268624929206714164690600199677327243012348025594860833750148757414216044833956399969681514961059836591602349023441450526879390135246203092744554812596283502984521754160566032727227054959726438055561134844057029563917324179437011317564213518595865602683662509087657525541447686451294305417973078279839801960759242405573170288827652167984465991859248203306270912003148159502810555593700917127716345443912956671627218095684242586656460894378325043075178051354950233273773672378499051563138594389812256375731291665172838516298604574025445796981907361314010059099636811738772882850843724424962654686123666222391848780173461206025231459011827246619131690636498139799175133544688537610560497390615118611447164900997123117506445493627504485404308581891441865189158002394559854808594021056293924631192067970016168200606362269192707832024801755548651170208631001910530618923847685305766854957008238886005020156606467766834164780778884684575311988645740020429072320806542496306653239123953231240889731267530340881880716716989703966428642466111032971487946347993866441959779415557942812623831303952248113915243324053159248866804331593592435460822009930501567992883136851795310160740456376928394216672552485107131875945240896358730729819938334600144818307036233610351625331103779665797156230973806682820056051164989061184150687959921574474574858172229145401236970012188995059855409761790637276290730163790576170360948864411565729013400265216106365416624674901588170450025005598206425322728726246783539407624116183540716874308353640945460294317844397859715726651970592182051390378744940809267555363240466269571993721590460622322116345588522780366150800062943982990594906630328509536414469576409024184056510829253135575710815145000754933761954307730689740592289167632392249607757621741239236926661498183662400857759693761133743430334324971034030524189026789539082270560965737483408541463090823948480224265255522875870064855723411751718902258799293197701033961773889148115664791047975519383649436276870772342819158140143372363210466598811110994104696081854120926956577465252673079297512829316466117480069144963109679795674712043051612323185282090388373202192263760593238979605118408315167929975993511841849372169075828251210513829525429470636601224954982834634113554182643618048461637484770747965772022581449665767865158736055044202086963225092195218962149932721427763456383185323859613408594305095605807672692896780377648158860254014700273126891448366188529360288243125497118449842893753068240893251018662354201031384455389946639538418882042196815969212779942668620838365236060463949593992129326188770772569593493877538596543103313423885891433701680873844496190945379262264399999272989946560693131288670326131819627550593934187726821317989226954197504950842338539997027366022715331941031961227467056160122742677122058526882497325834046175301974838341942765474148762799882629796622770346391315761939304332428084925158954765966702808706996182816366184391837698769676672256710190188567883432158590701179799831669844226985457237869404499261675646524507181530683258367991788987240506738987199071708172231633336702730329719465797849852670667889131314835936131492754611939792539051179534994590085000857180500764672005248583640276814814971118848581592603491140044186488040869771798044033013305286664575802944702120380127301052569336730774769914256482925614715677605271704089007143011574879055886237878797137989238535236692738149484702436223094490357410787515618255062021083122418502218765201037921553038733583623308531626846459368093143801285111808808648957396392063340731255690584079512147741267237542152403940917189313112104698671034208734667809129188893198613853566613982162364124416187889283952257319293451135437414702979123084670201132915875272852897462005341266221382571814265866263546171804019343094205221623451178961599913084398493889938899878365417700430764204609116725745788539591651111966995376609990432737936860037226199717860404698242607978910238003216608006185401403799788422203976980943084398343741382969290243367908195522503243372482229974267946309946706131905542930608191793425874262869125681691022729393332505217751458388789758860279174244070335377997507950882523018986661298469870903402667432298295616433019512451587841754529073828481969903972333665413854563634922797566078665110183253639439127806052960832805859740775425467656792529473732066397777611223222616116333316327764783048102376608340135708448065862067634439251810691797426715117177646595340876236859116819221638994198311154108446005366097569749865635584675076981886736748102363213089239691665245585108652868737148820877432964656763691266590531379229908668997918654610142934783675235321120636620820929163445691159889347000162755598975435110031629753091663695350906525627520263899476423393009504160548150412103904761996144818563057942801986828354181833923748384557805414442633871395119912106317227822417469233138835058371127401701051178853800614711242240321685496425875355717119563415437511759934823254346103667859589143398741213118875626270244899060664913564896459638700875177454283150199646940991737024637315637664736963231465092167458216857788825801310773794638878542894927889062252921649918535328747211089791719932106488518977080395692115047875017469042767963455981630809778359800013379608322886876336215033447856652278080745138267513848952944062600758131229266830052341330820272785751022278215324046029963854088083018605910765531157087671745879807808432090728630574817392795212760773917512212103228454682731168263298789494391916385331608500820863048773199955452502985260500355428546765619489717950361004666431541425555598469812528822852549337341119598899910268183349832053937635875303553371155381760326844992155408980027605093527532298850087042056899746917985086104595260224689932009170215563161349665569842003933911354929955889400980860906724440808636148229167133705014143383777581285306743905681140375366556534673928802609367871870735403693270164545467613593102072057490834261229014259961098594416778566741108069186753067275718469978230107176993241622191720416660751374138468011681696650889845211587203006956066614316323604357419102643773538933769866701903053144173521034017227278703688153684560365030923972318265222442596267264973082753246875032075531957908478473783302182299184494480328854756138079669051639841203558983457632726272972082712352254498494283014652565274603521425876715576052279215338036266017341299832898954806793881744660014529459661721433800566224545353504405714167805970999796580060078963930697637966412828946535694782983403939233389994616633302721539759865332629894797049852742950191860186885113019261199914169738240143944163016272574279545570934798737657319341825227881167781469580748726671944871932837829675983479627220865437677646915427768145730724496340490059818345019256957532392876000831376289852782923376286544304917909557766678221127207650010727668318824544169399542521083239951240013370302995339569120230014506386545918653958807589034776954438759285295398661642889727662623461757479593236594861176424136869122166347072888697787485509688689696051186043558849352678538215200918952383880340300572488562724562113882778392884337637199815363176830944900560188859303175102655528107076132403025542988588661269098450042862590845232885725050542922966556070479927424333686059135459629725580801908280936887511250026787268839432155047756431797767548043584262195440939988763734981940393946530472570390696079067645554540747872025314047452964204979500608407006393322853690647759507861172369793801597142860779709817604695275144275970162309661952241794782028116754620681967979313674013872720229123625579998553660148089267999845727668418748912398267729639284933189056666322316297905192381079192700873417367500440294927599554430880909385669696555256813942234842085503794062833586885420627309380886228115797302120987631286913194645130105798077817093139612784802797456108499551293025631557047402142993838360567785949332608277721379368849303940644017050913872534100058597948125013241671835671959573793394948616353171584352966104782912434351729065456938221802036188969658949903455183001377904569801028651538395839674258007993054390726421167338378012932535331116366300785267870924258699548168762895470143120504837317759514686254546476484663689686036936892861928679103377469455828209395162369303455816135330582531813882390556566383214842530087769849466833676817329201786361775358539278065708304113106587239482827235144185998838533857608284295684322795244156352577218169572602662826216325121557078029857519203650352998619365139116318835553202620326930678371214146068592088984327424962683490425445182187264186150714418631070533490192057951168116813609670135095005624660190384729634411360384631096610574261012298127865679225235864691314945207235608062038935613513098463549680607620356577075814351255096540569909748346977776626179913212503763189558425008721775028539458505740788979745153008796342326400844348252280383503203709398359333729496237790363761877862997851724690114776600931614434742634010255869972331225392638231664544033537651212273922199960289293176094250580971690004166450883537803059497408520616235620134351348322896293606077289884978641823609136936595090383434665028286984449843282317906274705142202725002175186262226813852235638867905683544154727858154491765603566576442715156563288568581901197911078004279959319001261191305068927772393670983269365885535649297993104866597424241603877849932606038687082061464805269910468401625950954679461427402503636229460350714970311866109959815535358655158018726368845470613881819392819900505956021371754702761951088673201599304498300020191114365231663517345511369337596974266028192365737559294011599195951699459403910164597368794371733917841298732670088298047335512427234599296697285292348053125892913172636742764660225763354124369053390593182198174244410113920489275232548397029900134841236664775868586768935189917219489711218830273925715275880418740076828646983934240180289609457467599454394914241939596722382600557434281759533589309943578129533561620684437388717977943576259777107871861443743279850350041620130201031088407500998417799170120988670726539552990530878945164957355930341118042677674611227525342275338093321845871126713925737998226308647582360152270897007465038830573979199463153670453377062293972626808375160266733099852986471109863802998771173015338662421213949547684041449696203473578307016377784882369645357529360906013067952738753143310535409794966123630647387333123716507441186298307629512610861033331089196600841410910047143014839460963732779907911560266139115789324942290876247294048765091988720496105379628472008448174157511832334715293850707250098653069735837055051928778131443000683535797879700458628856835348943830391700406784622537346893056529106412030866489415365075544325448481474666216629117698592851522887071652649205805777037484736884021735656093384050074251274054552704061753185483800903821403541905386414439067478368916205509293026519070062950528065906204821696944470837014817388861455707578458623212706844102439893122893232244361508903243473207203368324949321059882462258940837844022096602794206960729401298264438945852343791048865063361863403676388085381143108442086651757462096457516896015536014951688424645020493511292548959909453119046190676542870744103572594360567656529241371152150562478476248880776427586063515631433054944363550756027904506175008945205436424808369318264242859774964340700105319344320104277290239121316904267462345255515398418858481603141656677703855442025672728824329715315536176521187911575836145392330392908027349741177857816752356572275208600726476796016695957925067852857625745333724993848978253536369064601433880120745321319615249334855067338953599175400758131320649020923484056546565676140182889338464249585997275923805928898716739785984728300414163134974713175434331222865114249090528980793896744663467989668059062045902207940743796882045073883649614137747197143662458051765619698546753363026057934795928876003113318584183453697194508206097685316730786211342934423123275273722735526775050599677476304269843918429556716226980202309512995614109762369755983750293300888234647901548139181374015210148011362709443681319868545627673132723132215595432590554703850681470743567401548542940792326892222235779432977489427561076259202152922016034562879226930946110853171027347446316759059932171944919442809185591421036301955542497583598096302331803413958516563834540988437107037075597286566437170105225517592339714112431236726728709622796940879806360127733317804759792311663644718317996514771263533030512672132751024164831163564491644546566450996802538846703289836415358022255791751659180524118718418675858469498989076411516791940187958795889979069665593962510317886295101041937261632497007440659310471528063188487194098874050283227899355017885319358913918492738356197642158138584168143918788806839310726938106399624166043227266293603947492493146081520846578028183583148387389001279994821646555092829477962481159419090636220945720879185648323741081270172467655943950043060373218847078815288593606354392855167521514210198886535290431812741505582702614898362303931297174362165160020469420919015164400060199358214493796927493072241820309726559693009029408767220058592965494318343057843000831262098483796621668276028772859173803045367613305221899349327379155008762170264819667952834209804059050636809519945484733332791693932381606316220847047381270299809921880459664525255662281225457968184031699479950355393972492174815198503186103657788007935504892717267330745018690594712717341428625953687984807187306708752739230787951472909420347594308680672308081140881515487414450999355743852275467085655152626921394755647113438055333126281851988251095124554477823766460552711967629513549423807448229113821600733509027909364701849731548000770076496715525144635016704921956111155434585822247098097064888572615680900253730824659219715999262884705266862093231191719815707680178063294882977304557986047295864481574716271047881247910850483176143681799573481107644671921012831048159188595425169426118866372755968259111111739621354678932302215194115459123587694592964574196843024528508968167026305448350182906765074581564013485564382650591115032402980750646230957959174944971942173797825639998662660491753469800542977989643991418615613841915641783368042702580607671531658227958955482619977469107751965821149605500330736741911163906309071731520645979857521626995070055926535906315900155902401237274010096643964014433171687452655050903636362215875626304061917415022899432386094062946544339448246992023742443581055460748384091436961288841067076045628178629382035263005485727723126355171443037490844798306658167931425325217248212509798336752229845462318523376962060804618334612712137763778899438112484911661877543316604455019561527004408300821642086598368044402794223777759570489740340238486694666353702629387403693309881112761822789520044725477856525068868019829425480264827842998579471725382980728556820383274207522291651164654585197211924771595447004224884944329999459317290346807073658764063123952225668531417121447022618787793146570245557743905287858798632926172028760474323586646752640048717388094557732131259616388967127961889234621564590879915597138058916905116276809561185085713262797024952247815689062963185418367587654096047071562597649603617208939511720421035391906242498449679613475590900796681873284664834629864902642091180888071696688764433347400577531203641017669414250289972390697744791144127458800106280969105601636655348617148630493709976081237132819899438343460580673832639387898256396405238673225097978027815042449765318406870411376434636430665019864593710090345287982880567843509154470377576948312610428333894230419928752311444215580660538550781658860465894278938152413871854644323016079598802652353256432572219057111333694455077617756639392061414708573433372082185751986111696517931701044014569489910421919982912155682149595587853888024779298650632150306141323121095991605228745853878593929160556195170189670758802707141086565666509536956775554013087581758558131396065208468910165204138159025472928452932785906424285039872525555973930411933572492572136105499826730508283442988679939517399835425530129197881895189590953914662498105207025295217725987140360131880697158170705032020112948821601176116844411579834608744856033030149817963930440134865498930518567924539150146282448018521750894718905958695467498459808207198576686227444632529157333758519590006943785305812078289364427993236074023261543649364137959250999067731441633997093071987520775816029125376678519715482965333296738005041330497547273449783815064463695991432440144192328767781996006179716920983896142286617305858108645451289008412721568658122758857938281349391710223177540582000302025265784835996119753974538164537331724551512549930036813498141246184101962169542236096680679582461860420368363086130486082827311111978628323294842057097636261544376382785657820775062554907398079733348135929823106660780169101330910856514626974064559733025739801282700587765186365048887700495647509930453332751175432701378980058272884710042072431379129186168760423170967721879109233302612245680208464174160206875886315022481380865681649197225166388707578013050692041831477950114900801244307856927390751182203431640373497177483991810269379502974419976178942062377242062069061010147496087472202238635935639841288240530342125606471489287997913796692569742917249218983043103074775084609307600957088811542787433225131533106600664289489579918607154339491531662706686033207809662530319090027677777639487178495194195182763677799377603186449832526863567327809958904152706438844236059528913863941193526022047908141229995192497049211508938753911635269509173016416500280208216646207649291266323495031342933783345913987904308760264329047454702852323773830404362044969936649747140131221235532662666474625460942420561029454320166893809533713894647936551244220725731307418226206244861960820524834721720632598559105154854222294501449029090698416770770485811794275553029634308992404265326932842899494557637975752467089986276500136700474868649182807021139542424490121037171793020421174655234011687756642993604354196923030050771380342292872715223868168454700073562949821688610308899512536193696930967045908842731480110269320529216687311447712490343977616647368196084047146662228347343283337146877501943003755522633232984621636368473019534210621137020257566548316987905417935172342276334226271788745448669032504333834219904427071141626781214951049732238709305626237307108657137023472292054608863146550429546229684959395433949032376905162713086962661773808253867117806339295520987726677215917500112242160935455266568162216183105575914509908335723701525318152089499893285475995270622944705660410720393930212414310628512622228762626032266607286241927737477048259248637100807842215447856614543113686402922828621837843331080423393670125098546147169003535447492228109737924796164605363205848303344077184482724316308503720270888908687759011027143493352581240098676785668581086100490056260662086904318697566853146179591462841060730505261369196682453700875084024728549133909857209355607035770493432378624252263194081521008038592808551476473524296508728458763422076087264473816755240789844034758574286061439411152636901144517305188489824561017459421547954428223075053548976667217814606489547479913801882142420760772000929459340366651635649615341898909223580666476749508506447864754619988243915905984616279794566233190646434513920396342305388836214993925289546927418412899840018389181092972513379278520690164350310596288779562293251566978450003145899752130021401569958689624940049324771304794912166837140030795393784584470852626648971516164598249090141080342300010806135179199805180568588880504511512857314649759791682385467564427400121175928588129353092705381273942837732436964528509318085044396141045859277493072104788561110044105037395759555324105084982444348373598513207338563488934572697113812570020576943578203178206207993236168985577347614976423571952145250989766975754584833225970699852168656118892163654656915311954683862946373228882123403296384100667466686865467992509066595321400456751160808292438687292695043940534665863549718557874929811398225217683607140994049670994734339165736650917386210014428723655858784420349123954867205303098119982265043209662373354589396411742372626860260178403875948291322417986793609086277135843789688177828705594736721872155057860060513667966002549729203698324398896656139952243701233713122526830186671532532703723482368971976207235485349219002598482649078243367246491063014895712651853407394581853131102496405373469695011176109785557486864228047696269504929302713078157623643137533445154759583284284598026400434775088852998341435408442548951754382689623611145935222703949484138224528126900409897069320420424158796650248173600261637904594198633489613872079696697536172319653733893879264143717065332834930801781968052090783799858188654835149944418776340000683370654057179998956834463682936994695451874156446844416265863958392234163544208694196518313698716108282390022524757150080253961512179581302658153123438722470291288981626469646576090122305417015852468726318872565077904435875946999821311495371488885832099233205621902600705496257206649456440417741601806207297470161433088415820980536423622986862600503957998271951631273228101412365871610560235284765852173755586332022394286341975395280169291070006919713035837564550564677989279247115500401934339397261985135782011908189424090411855303544682766639885922866696345996060289624662499801668252339637286276417048412384260047060492772171615792615658188578695189448364225184624808352036997792324341410133375589244918041368832691137763356024668622553201767172623345392195475409754620237477118199478599336162764020971056735530524029061408162666429607492619499656922795684833044952973725636607280602751998389965223888569465678187559834705361332341292617854115723692920462965061925745762643387430389720095685883807833895453329592386847015845521258457477829972399455939832289941563165404654841825650807050980305666450318440947877682721877057201870620314946243103738913745786246323257899551874822765104949692664852435683985697816352683248905385968524070041084377432958056143393063309780490395065154836982679258034649817154724408133211472605493997220757408891752563334353961481909161523814371846488508359684388220901356245679841284254676082659357195874984800150390704888862255520342664693711819393295400874600926871538862938835448305954764149688750234134056659960204842374251621715891525730404494771373431271837069100677703115350066491554888322782012341543665497045534423789754224587254133909120121174236305975911762770789756478982317920614233806316859737446180879877108152525600765222267853006765229720394187496258454879872036868936628834335714730885148993649408855206017567733493187225856689862606043761106769169738617567993486182438362707081764162637648065435576356412582235903114403860045812990803540342410211010223479829082710306988619085473817501674732913010663099933582884674773098813906969348640319329844300673405225671502634190331443295257867211971316692629120355097073676395276890499898727559676154619805391139982072604449758555213712224095960575086458597896339504975885057915578427761966222137524758012868275672223915703455409290293049183951644174428164048725679338696045862112194373535179449545695948236374360438694901167306560740934091570236153731475080018584043782738646315126391592141882574673705289512653774112191632469449773816958367503377360596685016475853962564934210186904381914294983662865660884465441729702611641933133799428331324849897403683703458106375195940667237120040328804756571268216594806344911373554061610176281615312997274040695038784727613476093862797973633879154545031949305137490880444827241826567809538918711241479551657108729199769318630253505238510157008477640323839045492533834701527110073379634480415091201831233235320394209555063658654448987892176082538948695424420761980005672209428500614831217114746726475132337706436577709176599600546913359204686336202642670328995753712016952434897051428260317815699007047858372379145637401542409775594310313549773597928722415397683818652219783842892839903451620026362843476479575934774966634892258288059720137693841015503724478462681193976202832649143522500565050166808721793835623683675825079281158627194217415166000632008208754130205087456340282051698207951907152816241341258760876386749109983649298759219309583060536164106700583201727130958481491940733826827781180709100389420359283684583841321489929268030802966157713262546443391819050087344906320200940375372186676217252788325666087953875829478756988874307650011362272612936905265527790479015746510800664917850407492242287894743556535126512287068717978454780016618494711100983166569343447264482593649094804347109165189769007614258710934097278719188055026744696221220719787520967306948834601022916724160910798209606345715651705129767680799702492516594118764996580475254260419803316493525402113423260109955516669075282707658224077688543421729294995168251728840002546122629309990197422308877986792608966746366194280507647051540425797428510233571564601650989523087781532015055230313731729971849940154777317464415639033780601784805260088721925411151483391963966366091320062169133766360649290444567492662534269591840608714440141737241355922007451518296579016178432537091030388612516915755591089802004070993467770055327188395115943877683527711710591222224551904463470275657499923800864960600244287107684560221617121816965617689899425569398044825648490319995642404181412614467997412262533052004784656366326734226429259613664119402309697771343795642678490199771303332853062848237397480801216212834532984715241237248195058004505807081910012800669016590666063702568575737671789669771370280558218093355668429133356280689226658381369367337709520561474259987998654512562869548404463069940054041666835521352360785292717032787476206508432055355942688129030283075786412067868137330949258214191840310695932668021738985095519889857669931278716669435545699133871502745700048680425076599686768389946978826603332170252300322507503152072726882524590645029842828685048129853358907010266755954618655087721743201661897670393666926116862046156587701499110170760040054129434676735505137030272719780108029195465907459779467100034508458494735162900424597720798638230690952439448163855992428110495150554481003045665931367885141861772538281757777022174031355928783919956499322653331604409680617362825296462033702559806009352811309236518371907841782647733626286041207656003121864902286187133173472348673788336881225374508554759744184346876732265979574198748374089318905854756172304259572126807538147017388524620646125661603641114342058640456020948965957651294260676757493336367862708896970300428301515170968990415635460739177102110663141915954385339255028989227710286691249480850496682542769396884173783454279077553565777143612314915172115461631417912190327112086329151056827067588088207239653207405339484806709460018532551898320784412224685368949581142608033803432893925494420781655760673317487728074637721590151964608492342877604520732506670016753581321351846321068491909273177088567527388421089521663464235718099306749501506306907454950916067400609867054389721310326434494873184786592477145187681597783618240818141086755573718257794334332431550707634358521329278389725888865867438933515732413601117167630141434122794312143869014455595060817347526034748228562456337866974263575503968723010064581344780678878479743872892290649287940662139678330191602742393684231282251777206790310095344642809692471748950665147069035826029162923832188791558484968705820849254413897560971551989176612993241290871008802115736721789546573962808815719067448718392680623117906008444473048924172160602603444968019001738626742146682756351754466567613321587764170276503203314205069428512443015187420782385771253581993220129497928117552638227180601473448740540069434505062433390031647127879644288678134925805701497825884265752490996034492723853855685095627076295668641750213657068984348131797030293884505257340042013492977139999341856337052569603770497606666257582427318905738624815832612221357299394542623466026672406755739859158261311056366043413128533886807264410541729376753865335487515811126793265538136714521669113664751717606218571038419529584261833617114660938730154995675211514158391508995105879756047627679973430108054214813338908602060820185444933147573287058676424126001206983824116004487731234673954861123750557568377040575346247739340406175183236678550856729276968186159486369633587459406943862499590383294692877620929233895187272284501797061567909573988854449568265052452761353927136288209228900367516671311933197442174877677114581331397158200010788870601497961528296459455111495685281430913798216882320576382790435360838876084875375237343344703206329116794097900073396915417093467117915291501010096776490755810057915579402111079491321242328780438826818394098467029859937146407773393530448339816575917106115531048326109090629193283657956371027152409420138534979073647319134437782927062227255323551759679444205765531478792379009921569989756687700247109911993468610611633067669315034959046506571722169026212866443709810756865809618209239492208497703916249421348553075097658982919363511336314900372338372470606949674892623796619475730813401929436756842030754057255840814806018286535752732686520998035646707397658610898640486733287613243510093563508990908502784747968297749870041535312039693436811123383559803775532447590104608589569302339386258450676518220288245143726889358421363917733798645898630081205640349203132755106098100621519918020117059861274754010970521004511123544824257090816373313331397480272728686366751751386287262221014157453240275731861812016701523285865819785365494652589482136551829095332801348306652992230501631037795435342603318192786215849808355239923233588437289517351253150572242565796374006705601000541385184904956231491273561726992855082972275813724733561322677609806397231458520173697076711086306184854659913794579670911701370400530384951837984427374789265660981070597642841739685480763430279568462527059894973617819047534919839393848687492836000004849846609627747557384563579582506731073813621149286095712110119328754275898987136903360185073475541871573967683745484932741445686007767593478934168847054506528090176152236680841976004179534750196627443635398615002809490781781841041710626042157221085462295228205832262233472999808786137557156261977927907474526861488208268634547617890482276664190847706440881124652155438474701426733751237174102269371621541295114078105223907243108523422339479211311989689458722470235432942832945350504258792834479261311145310959433062543343135988239587369088584489495385359426339396816409604778725793315053477356399874720143508410346168383697568158353174127909962248251779504730634329438442322111965606483823008511737656771164040480015805956038681581734337738038461602498709282576529633091242742910770384313891782302704747524218866854300140651956419900144863110495310400069769780052521568373055311411722976230506265667107670100792212826782376378517354768604628767121388857412462606499028313018681675950045641462936536152086550712589380274705407982263074300420318919870941988706419988181675590446942895365916791554267852859564175111119998696510898074287066334802883731413852713904476283768370167383352835890060085738023015846993313492301820246393106357071223132696174239893559018091481929432028342882606451049731147673218354312497291979787104855508489352174271815483686860829453768170302124565729335436587732128202010941852626711327245055617585040534609236238513039695746437974078688328094353115741202046086266646541728794793328561051751095362849026616090367582377014495167143636590570677398256390618964190816410889964984415291350262289302314401918826284793162527693618673167459821802353915116073670832434287792492936024571303560321166495424513047424751680212199874350283214240625427687805306303142924838556695185786682231303006713507486870412398414903531173636119919632580137652506578963485456606855055717688656164025073968930300467722735587635163236177305892004192239029964817186925787426015442760135974842153363580777200856839420556857051730219051306847258375055095088964870168133880653806150512116079884109531494372555753077277339160322571804315840856931721965772014122116003076099143308994031157353414757935043238743886626820013496867132242589720027864298433914654044595014644490205198921563003037559556035494843399849523559154398612946122614053749856976840954159096301990529302144662766711502534084659038171083586746361715453327602153792770038411188198301605413959775364533315574537333526074307105254978587863470673145901053541999696582639648971437217659320100759059435625562581364153762582473017540406052604911708589102839170668106189945579617375784487588159573572121144376398738131017989978659033222090197892749322504727278065123579842234987996326992019202883406576305244490523364878410727305069171411601000086613849114357754579939651678836508904877921950076512545405373293210892928611385658139258954621291967421988078043704364167851948222961028908398373708674685658938368633219749819702040774058673886413060587429896350417006452953480397418099848237028580250253595515691581965876768111345517101815360058397238817082713320962706672113076190517725673010746175846202986930139377749175572537713262234746978974783327395190298011324251900692766207382833505600557034069931841848996611247084705534078403367998357892025555177240426246097883608487829401699085632043657887383061273158160053485659312428069637746171573694164951500556050050354964408486771047104027703566899666932031145325061405121671565693660703572020729023210670420267119965613791142345109889831987814388415078079048350914806673727884095589897418796044237893452162707134533514047870254009983569428283966134147821552477906828801939756758730653998753448730841394202496902177496984275460117535177405978183073224571596778272888784833326155426724348071578687465777309427559605315895578914035273224927019536103857056561611087882565778591816256257589259638712366274741204921521763614386788306611020773605828062997117968298202033649451755329880073324474876049020925374929609977710509027197460249022560644691133172743427155002855281724563341671135292328633139666222994699140367505548855052126388891306910873041203329650522325868613869287115684549628878646109874032846136759887829374024128993306789544424369045177139745282053085292888835185033005262025106985523025499910739639212256481226395841514884845603986231431205531906348947983978333448414778214488874819537298489893366484307124627672625082667250338853698363240732629501682095990575498055470074855692547462918930783368831910121331482045127920112020953314076620858367110960982908492114397643796922314086881895933307705931653978720145291925965852106616268259938439712006585136386301753875346799493817627734051400312202556636909202760780843732720184757203386195239054021306809024481153781867878598772337631819990891410640458105082179969781044658124391051171007829636353116983969959860246075877155554787030060515593295077820269447929622859019762235971652237370476915563392770551639861612418727325265517548090845264380172387025712355807108037711428484581719016572598837875871186104822462968428065973907459039548005901456737562221109913374142059609594852069243102135558645556920922109084033786463092130418174700473136955656829192756328420242696218295446420742596615389239065984279448076791776821542553148228188573976003908318579433283505953009620078705027208309777308575673082722238979146361585265207866182580083110329535495903018440083901471404883211903434200184500214768465786388235513912215081114917384662290159540523848981953584959901875989049026111171524046950355798327361301006247390870413204566856762412128545520964048242938626535580660153282343030564511742329856213225896237668211867843327831401026683474690694238669226980649133067498757186484267750592442044222025602040276325586855943499917420735429905268256452966544765182718452232448318004519258272214437024163212474865779712519741192982928899244496836482755380331103799569236824891447223704810668595019329818090896557032963889591015320513512521212317933832976292121224548197528340052652518233127667047174908286868165283999411614643619857675748120577733338192893107690229239830834076994701148178413244461611815314929160032403108767808400955203176156911872216634459564857085799253354150774402467462416193085880705992402711108364482278696975594970500390163025047294888137916246543110517257406115860290679833268580674738148155351539537163127786607298925199752808181473490987945957208704559657374800666003511839964663567006052356779443976355419371901198183584613311400945144664976836060650000339827623726262201184767143205021596749214073509196955216965722112452247503272924694530172289926530913096906013759864326575023689668630513331431904112343859327545618070443828940430871279677132351864484696647085461414963414024384418413522547094576405729192652480222311571028277237720526358306663679836665993926450209196362304104121537654736357135730702467934785175511369054757000793463273849462905481189038407924531937520361994263237145147266437380748800987482793586602329660540602345060194815218154540096996164298222554663990762384407064511834428970481435408585394517992531991696005077999134539365914545689881289510784900213088848339668102902786624025180836102628681720445918850617355364416568325233799000250804355395776051959426852208984533570978575042479258572827171405029438871845289583453220982698464852765897280728910322256827225566401634193128506442669846891356732000943863084417315834965114538511739749673889065618482966878952430733143566683083603099443855745523870488610248114613365264857920124701454244652538562581587679920687581325278366825321726526877124452689551142572120105197101570759611722442536477145467119386741548124723694838588472365488975510013517766293624659667893506241651059721456397832830636464884715588031271737230862240123370463441285960688327480656398279299097864121225041524585552621825244010061972576571436821855259191272065565593624316665442237310995128883894845427850544077809474688158535083553689884668469949130458476963295550598300798651649267955050124614884780208952671489787799762355054809269508525758147147405763679797198374645314140613565322290635927581993379518194002595674300273697475318849286783277593168473664083308107234914481320280941274514099425955711824656450396354199759510548766090447505985568211617539678148203303297365444650374117763366799512492299548059029922554967207279115145215321518558752327433381061408926944039270925984084091094717600326443546506108509720194600900895702998240785673477655907303103768675496702269049526917386946861712837479359215570204160840723623994918218543320156087220071570128917275607344628163584939513924416882715415052078974443614539307799823952745402095526565972326973003512719065917539776702526127143710371379582787192167731840534287466386971040063254341210991102971037625210850060740247456613480415040016371421712943505005522916354432084004757831946100426751822860589857850640596465919227864985740278143808821790031654878889605513235591527808430795070857033394392838726907910972107655310875983447206253722306417528067885677036669841177485037967417670516625762658010331010061661009878513947405040283183894889753227484528142630341002636163625153599091511788229648772306823751964300198057390607017205449659631427275513215915867112374553619334074227030380166604337368840687520814513350276107581807680534731489684273630569819829080341685548899392793717438890574986264268415143893581354944001022894689550025602157560591151726036792497156977554183840272326708845603255728923559432989564377852470425179609748014150456141765350846913387983859550400907332515433841654139581204123826438123548127516271487966445524025000720987767022509080398685343729030235120874176042799947301457573329067449285783690461788468315604071607395655499643899557791305791977400507182456855443330476413667969494245174953425948385785147612263901583522218644707213828359813952425106371077184881143037965883834766922536511408754909846847004578080568841557928091917082977740662444172869219883958402318106195159637428191794865619378710574458005742445898528239039058455064853902962885312999361278379522877648009616105828071412312302197530790577660738564567782367609068992446693143511041349879676784613698087570959322035058527656912616716545168172369497028276057392224632009009251555645003879163648943249796133991512907796607944322333188348347809543881989121306602377686852068786358304818726452056015963958788492904977616167744968444816468254250886038039526522902039103688026996852838961190514755199808112544779258120963035356400523510823065700177490542897794269805574945977326705691579698632868339380739256904677844127261945561878030222130868483214257258764047765488555099434981528198564490319368744726312408817144094864332689335957036393738727084415766034403036790284558489539423674734188533954408532758594525258956813653729277490309024794790947969896538607747474383963538856284714033892074869496375246027071023142138916982209740929327582548760912592550987612605857664882280029627998047844695665075440749821722847545910336364766301716660397214712329253811670178149515427904858525822340684309476805048587390307011388132436157045198675675219404402895688333377774159558615968927889448360952839498297728368478545461812951217660314464868321258265864865763232214472769931291177871563600975599249577349251427468808582469231018530275912713581408967771104002975985017180964784619579109367426870618539868302314664366450214474108931915292415231098306581755713866164995917646574898427597815552588152599733997181044936055776457523993791763059720693288635357221913152625295377347503987973752954219215999452365806578042582938922162247819424740081606365748937246759661170832930847378364818771997521435549916010246981505070724172834306727494214865851005232564316367872898318980086407976843162335322414929597512830212533895323839412408433695128986925994418768364986630254793069488754564678016856339227744034289729779761753743265478965095542064106910302415862134429054842174739276712273310545531347105290382471012511227204393539162799106421190201083342129283202302656592075642854121822388984422998481085690949651157881733691569133387925159534477427434821812617736975274083473372210973293126650321480716087505709351460343483633393987148127720435628352879329660375219188091923451335173580766610638120295776943825759233187583259525975847193847270372787373665644011491857961599274861303056984041040753135380607314557175633411821001113502724440060402382981974109288863011338003827072475167283749595523289692750135203713746229983861062963943524811917280900820670610535220682989797620649732344616590967111794233990801790078627918593404788186620948253164685395334950740435777584142979539653454763590813524078613053185139108809934126804447712685670167278226741812569752644800323856550920990024692978451592509318456679942004768141709227339221636490378749158238667387715201557619796363242463567773792097090909276402094898722517536807097040803714631088404644947627140491034266368462291359484603204016139291942583923264345848943249007394740066277185268103867340166796475638921027281045691470312619616102834956399970086329109560802248900108102313174890635221676367063144107341987254381710273874295398532074073416034573129813271053913925423881343238359381721851334456208673109312972113445441286960531875141230872259736236584256343460036046976182861384658024452612308435301840900201829217751550134093435537341135738645907914951616852138561939938316510482800882578136218471713696507854796556533740565950413116690639510141787726679325045654071047723605302735654581182323409545516386950281334705678593500802483358280157026017225855918018817122031903817127999064727777958659598947349469043704821888855229948875127398007614936470503684760141780027647139222887817919476957020536191659134999857196709404776921762166095082209617266297871317794244243594330605842805613662260652400049732428123185156743344258395604459861916321155197310034012123877953068524316699823175177078474279897865277237568208873022413102161867408733041396620152378483105883196908878171044580742961436709178578763692914080592087898460215768992123329047640839819832254607938232131008343641996286801738817970107892541463053665862074397746830543868163376839777649842859803725361006222441515652717826002609219436334502796333120972158996096424346549085736377182083429537575352524818772984313955115830362016142849589767216619259479833282607281455140820402788085067543420557075538153713934685428145048732972745048213017066652791658399599647205073557536777494328224525953901705857191561974741617691939952403150914903978257879317414656818771198171060364281808254490271512856140208883922131604129964418954245889923089220454315189478913458314812603236774493353916361068166097560137446031905793515772728098383246363630736823505483625440062891793722833275527687208923333067050513852736546692507268571927048943754387205954237261753821388786889139628683223291938222518693798290022599304888356363934021969094183646555732709116836386414351615316488237518541961753148677390715773410878020372976518350743888330079521377894063048337196147208584187355937354864665341897450480867457473955636759528929555057839831770210756874222784944767148560729417902745791690241409964971137843707816849637838890156255174794907490234357105618255626723965892103052871960437825625513223399418502991954207095835533415488276533142125027900695182728758294831283320786246475502320855715687502962490518734321515329817548526001779539751929922664592925353128943950739432667231463190932702600981866457280589161957152467922224983541648233094701305133076236770584987617195005796211615828151639965532031554082629998340137503898935567418205242706111078277169483889323177338626828641274730629522979962783513456112033791960002191909913248255439739139580489998887568325345937982713945720578265714806011283743398205995018141757580143087101314197833453606490720753842174514740136341451338374289734072384768974292856771036078741315175658522146938977212528034427444655240839842404807760069734071026957807705924448897150188515193567347505754473481597401828835182359791739340281968412691566145065665807141226772889044860595722418955247326063984571679676877820605617980290412537575913651677670450844666195554658630650627573490891831079100944384062371373632118735962067531687245673966801771478405780036310011630234543594622459171298713946711357577503700265822105874180135964109962113578190233546859048489447623404666845427957218247033859289909955275134117221361215869708744118606186599085962645432525172127100096445494847833933331130757543726778702620444979885276523519932520874479518638458338137357073840461912975083019637363362567109353234918492811578799229497621487442149044184243202410304988475352281424318920806353886799168385299349176644923537977507735639362514833782015398088844660797530552863449101151415056363372804756919531997455655616004199631501189318235480814203550417388765066997735873677336088374449658214548943935161225242028036340028331436362385998480486997982797074236779360939164744686857362825828769095340661380226784261632497849212936888577451574867573856754802904147067110929971817338983336224057324232913054445920011723326528240245822482472730188714858865404658175524197330030870556436840252462110314115759256232434020862734751526893292039167792744255640115799695933480879584977827094761991646977854023721414749468559746700189265198192339317060664117339967556967425747747717337495556624935699961370735478603197136819813944672918188767995310699786085456831376884380482198500294248723624979402994356736961705736006888273533757097773757077689056698568113013853321283933441802589382138621317500594038562722153234051459624985861364338659515645309255235015784818077495026620085126180953011273526484944826138200445571804071601940674475622765468756862577172697095701723775043207911265154623596111758915060222426397074515050667209327009059110104435284276578463230695864031864587055599632826702032144195730599614188357010027746144464116480332431938319134216042467807580635059618314663898327791669498286658388454307519507148101069248411686510699963260458634858168178188683320232341668778593234772377455478135183074837355312099432294185419967288935592288651454296173304143098186749027670133290089176237118777381275126050848078777745168170461601587042183435067496741659995818167321649173262413243318006768744821748117384934664514005881072724660536727977617229556047537517096105381053891340089436512469920594936126031361704312284674049992526730779495069483249880194888003942238312430753282956625340033448760520311082221243462308330380736597975162828526888290462168951435841545018369440691548211103595240649498901365172608353716886748617491318535966447800362206245931918606842658488902870475940992892436292627738421399168680733567232849967587069415041511718814457429766909509839502315811764504263356805720734593969497942113437953162347619994930763072107380635228037675013742063903964115940431605735364785555762880581882137373957030085740645647592409283584017062748830813904448491269510158120159769643660057264228359094496262984538142812266655014765536456944863403468220057908778075365620590041487652373700067149159991575460058341645249186008314753912265516715395820163163708745951415690566923108711682865735336295624253528279969343510976088622647048760122370256931648897825252208128276595099041620133981377558387852805722800776296824426320084843919277469645646282164446105008190827974447679971625804510078727568133880439854612982674675487766360499249850457635181270128355357506302425998015140816049195541544244420456563576888509826924107380075795408453904507719727945268446455726550455127511294029129957879298856357580888944553420452835901554608590029854526269501889790688096761243164179532114095390513080776392462691137574035508541303187435496881143793881800889773753000773784779560351136295473898972080485754954228127878506611490865895790585051380764949564652698943934834416588283156245987910514479375714088481436685974334762103920857713602993051585661083499383522380589075853095554294649464344084832997037137856570686448969087144997634286230159411454590445965820308280247481121357069850354892919263604867544328423427473754151104611849595475467728223069066865683713787354090613525839562873366367077355957502178109995365067489946961511709319912667115167364861609154455391946335135663132724340328855951434420166577706755488843726021242801373792925971094720218818919588304014808393348620713748572161870602255111802280989815987181038552346815715701096183778490396623122762034680335541375897904495883970594531841300231682478322391542727812676188703928180422818879551727726967379890402927606179952650154253264494269397335021404837764370777591643820986826350880443275318677461808446866602987561698876009972338326815596037196877184618434819976383452238890448468024392958111758884876384930099367416227116711777867339623051355783888566875624638506580608333210054921079037926492528062714064897534103881929626848321661804428994293093916137063009923119678440535589305934310991652086050640040504097984068570523895614324755789316941227136944972556050073220709382272305269171993751183138426312381890260466125249749205477367913418730486545905145138262257178741456299000101091385406241630945337913886707650690046937970088896554218187085838647309342366188935202925931575371693174616595127419833227602094836698614206759255408109636774141611257454349813380030685180743662928604379189067956678181604213565327342519111452257995843280023003645346522600791829372279150318733805645066021702039304673304741524332040372631779624142307545449757346515806422114672920521587397641064577997375173896533297678252818732389583459030147330243234875362493706079056094162055814649768930996639425854788476241263823023218706478748102976159473993163297191189990615699168100734129855958581119859883109953875727913982971216908396986827883214015107583519660019658480738264854921454189315309842418663478117065073704495403816552597828803724672609700823221339530690391820879697919842344831054443610070694588450677953885573290833994678222559737732562254986800518956112888436072625035464484024297628780766690642897873644485284049481436523874635233632121925085956819882402519419833343656217269312740514529408438612120493072269565592098853301473922234678167161871717395739730641155600019574292141940221780588882706265791181543148290291377096931376376039741440477730208141305805204691702849622555522572430231892019100099523475771013502305477620103470540170036585710196110268214434994924674670118162645140846709151081909716972174150860274037897600096957157445539634252453087192008953056132174079167067091684159072255032830879089358823255796814074868780264025374371634796377966029793771761412222917918297381826739719699346205429711152788183695538266943842775428752486150777224223620687143854876887128677816351215747653874193434396950760022934192470444396112165581517487584984197782643933590077465423621541486513909187230917051811494445573293814078772429849774396049773174797675718434204659403074546754002758841926852117620274070278746148652207689403803346476601216888708380207334468507164915697462156322425988608024596490239279655776060955552748006572680325300049539877890261755144254259798741260677783345105239917128244280831817772323010614437125813096654477038521165230087878614661930951575889582353461369108346477625722269647838514738102808142646773683593932575395470094305313795867763087757864272168740097183810710254503121897797685247373342250680553600751596720961870071152484909923893627983030302906989841319515216653602469126925209385571291678924044511467041404192362548341329912291490296554110219146153847057772844011062014851341418714210934016121579252551633859133152041340953240844221982148936008062131604482862722409892008823219329275306110900835098143272640476265016919700439209373956382555931873704121758268340187091490121384673604061339600970865406191402742344682042555666132639430591399546680892932448006809745461473639097372979978065161825074305510348884877628549366619200427812481407557564485104374361838297009543695775889141744336793213222779440331344400943053048609090907174708790972689577998352349070291698706003154319546203739741774178784055061503136908627281337706525922341262374902979181562107237568468945959813892277221013713108453478223326805792462265856619017089972860601987531094972183725566319349948951306464041394163198112002866195990496156759106452124882881977707974258945813611154907648929528414473824733891739458540618277894903862691564174807341880152127977625518418118984251390873086586219489939089894237096143962194370661963989688580352385653268086642611861627681230299926590230501813629106695844031176193840735199243117848506315169319819622070951482038703058762729128833861426512193614969544817643170044273993245520442426231466736068953588884656483693143781312600615934667545342620303791220481619447187313585082241275346215600504078201339705354764885904898671655492280789306248115381687594616705892876738158838521437048568545976593232078961537901661602403508345378807628095126436078553511707535827457985036031456940357732286216637029655358822378947924490455492685889112873339638871809395807574522178826962409615834326174462931404104954448696348759218788008834576959961826592176779732824131789822140590418900245464890198337436013601634911167599784967526328810548756361273936271581248279738537174091322572988250189400019811128677859058273782443175748030098983701417533418946570388721433794034029706252654016204855024311659951218030209718058921914211751969990069812320632100082053646320029059874724843879154224575682763471387278430187131862444110896646425435397659749102583515584977598689081983966672734256921121714383108732639893767579692923440417945468110325223484280795329879447238426672702753741360916168332272119622256319686046657332399796587415922978897304518574516605955532049950776117236845964723076440773701561893798435948643772172556822083309909329165778237180022994943177725005053817819441483026584903008576498360948613513652880644037814871884386602239114294544562825394653660634484704069612042263995765635768269437614546968266687758451980136451918255265229839172180749577744357710745649029202671660918387537032946654796838879080752363489375759950810536046784262303564416451738974274156799843522628747331357035072703279173051095483431726589102702296946592540549331818041955834085075361074202699028183177889272085467861896097730066245893059743486083456027612149079222966053036892413798523272464057796217025220442709012296912127378243498602234290501544825696277344465641483147367834298933705077530335943825902068248450861707354480915238136570045189904237590684797860400843049705707105448476678516519040506751573185351712012469578694491825088449991028580869933002260292210502537433618125484074224669703514984915809419233202552075713032482617484781673353958925917669424069756310305064800508273202705494260778133540544018735029861121703510433571801767062138070624197536588196947983245278383934845548428975878558370604523767541935914693063046728089240541690168144108553936315060725937001262173862416242003001282144911944716127712461535758050369261879845272477754970714333237059632833227090513350057435763825123845346791981771576713971737132829502465627398318651364633715762323719213684632628861591612368965624331141713316688149375909938343928209639858257781759291123335167790607272238646821848485227283413740410151941389370464190847647270380281128574729189502084987101785280631600947051149128154503504539350995098369528948792830081127668938525369951350837181689791008627672416330442885500780492780033536835330737123946097470227077650449918665337788149402804695536282639981433052053200235607478683158297584756729063732924879166968300179278372305223874204770676946944543933280016810458264916575508281264362967256172742874940893798495635902668480119839863863687013775827788680218880011984784678014288461906365124831508719156606451359527467504999656456652772885784781082159489193095194110781938247017322240575273653598041192520833476411564462433212888398247688152712274132371762077184688089523952507902278451489530901526331322182838565644345589277524287770093487784360358070913699606790049746331202214877344330019938508924265856298815582509407768178688746520618863874272358400110873038486087413449556093922793619605532755617036147458017632471552491547092504957840237358628088486107358661435914687021575031196483469897131747122794770483930959711739922858914000080864661050813009677867349749315547420295760170018795748721022773823648817051559004171865393222455652792191349204578429116933866398721897860442949898748770129124188537041049906826034431968182131893178510743970092248338721251233562576968440464268089229131868298003183725745804115746252947073957643792769359109235275205355707374124682504406323349232080183035230310432617627032538518925528963728557159985362908420433631733145356263382998952403272891817593585309450620152896802099002931227478948658236312033794472382933112771536605418299116350876196652262640228336568859705389945461051256697980089981723591674246627203547448105500640254600527016954771395404531360392273246594954976266617987209519815110145798051714847454232728035693246669741487149377956453206374822835471566703300879193317485914617954890624616346748264358002723564212399903789882703282636067418712480878304321845845162224849423593994842290415474894182666917451542980984482135677885878273458659010909409267814356383381579434109309081640901365145718896507354892412124358182122659555325641647899977863276404250867319854638934754931169418894204597830875068867933383239793681810680859071533265120649523166850232929734066527792748221467667233627635210515830615413698777719321646559556196991639846758609743292086252134635707888633914597936799221206803496605200552843120862640700859526095993195225845300618208654813782296143916232026918767155256774798938271448127020180745302881992103208227757699617999242613233439030844007537890819338560200276042019939763841648788342646620648835676457152944690313719787114258678130043652460068893344671077748064792623553488683470884934315394332558262788191051525637911862452972810382896148049037627740747703869696600171659494158342756086168284253481064861740354782816306706252101645412417698258348345986367927457189104139843551202516653628975668215172233603641206787727715414973982733729906255484972063548469197421888053340925516163281454022950301744751704637634503776257319790919024785351443455433389285372654941644445604585606659627714239530133436312178572958790028380568547253897510640395666668388955530490069812794643617312493024530430941436303375998532893824252556041580306587343327092108882548627974600428038199091048820049528496221739219121966335218953883046707405492787296779540148983710468551069813066034087867685755730894400024748341024868656263424738367171672687523371491453037214787383311517379972463592203866323464792530357938642734986686723389261091712006251102318116673523279169661417406669437098276665069687679426993264672544810792272753570060503000938751640080056135113915494534745545805077519977623169535457123374916010674394140962237551588829659813311577391513487423655420032009003403134390995711285000800145649115835723096445384253512750286232707339756500668369630017109226851842616706559844526797846898914321479265086015564797186360508002176554572898921824647851624019868627956325166649255125525314389122047255519405255404370164783859887194214648485306600045382154764509237207843365653474452640920359949347669056155690143036992508546843810566949877452533569924658116051110692681254196031897866083584356690665652955351661865753348034438939127128352678488879094211492895042666525555782411866113419716766018571351363506073798069869942248597013901499345575330452015566720800950708272667107308718798958759221612659220550543018043316715000006310007941360377804168830987850639877664213101940321405538880824839128066749930858914714057885191530891544575881957222485015706399535499295179718008260369692353111277832708388349760051047288563726556943065400081880270735117635773389345624752535298861631170098238885323593889779871755298601692608253010996130550445266297129064100195382708656016864958432073704443096623355436515707677363136297226857111985062608020731429284161013261777030682160026440212258891767396381309443157741584099496444560148728014040579368019553053583006900320600338890740045862860937978323828372975064820217145605527269945411803866210977487781911444785111718133044672467318046168783481848058604167017524901711077437932310139981424949321034039009143738605953864181728616550681431026893297256253616615965174115107407743897824005551347915640702808481102771555872487946131374647341604141358724903684760151699427979924476754878806459187072560824806041142271722942924542539286765458290864275355452041809755157273285495521416640775066962246751841073172227962588024014618776310058001368156251694379910143780146359661105291606773666121421728009405058292579672194971679153994567169401431899871194393946735745319291848272627094320403022552805130511696465098896274568571583531415017408104620359159708245892483280762024916501705758480109882531915609101992648092788249466752356971277985380521263710154634648727975740637996737963835283324664338070339660213658154598714699268166258339594656650670098234281040059811974815605330928488190960026618297410066675941671529576499871284192693678302564848843617160388260427983128918357674449516463464925303556428203310942303350031152667744680250117055914134449513865150110540621916221719091461657969922613038458307859666588447146420873299975462404451631548650849053583375205509675194847874656731146518470124941477337345288787258144315535004714945392945679888105796007918404149364346210225094748575323978189415053257169153617911474523300063890490449579089005607209502517834340864044175131578298277233791551423451657234313651242790827914860890765116358137190419545174359934291115902971814762765445149384945499861675378760616296950736210929467442077723729937615032073856955474256314486136399443341539732504554145994287860070165130571279393733744094746623294625683175890251739315994333070439806815459234982200280731795138619865145371501807652356978438385425022879921133617799420870350738103398285441927607916368342613206798951279835669728767210631257256676698625887919036300557138533912961619380859777669578406292180600054826608455814073228970544980636201293143523912283009675041856647578324385942199819234098965650614509297541657514639365280635602649402488022265510300692591623585965209513096495403712821335179922170678932257876260840032858192672031433695647137705129876546190579507841091123944435991437483142276627992528891704035343503838511981705446872576287701282089587120719899902942165053942325504777951783885935588592272523484872175235367577911543986865070168056495162769408323596372005390422078246468566670411514671626673672602820583893951486006738686720054873807633619619953434155114259257474958415564036913479413321436713062038745896735551253830531565601891269339585204315451934396173180205567593709346726596412910410064386580220180374179701366913192873549643354846907981570954106090518988735196584312496598357534465774985596678208426478201995221920302244065201158826651172585770873263478071064217146856120241165458306781920022347096113582067428076411993828132976674981880090063777811505956612066495215859393814978906465011313394129756027450850885017353235971366351120902828554098559344354276883992626339351204314440431570990670024019990250488926445375388243822154662191946816701393239073601184951768280805015231439351939720926631296631708267384013913138243377379905943461633968586093737542257027838335637933992953473435941869294508025660334516052680460992479095715486073239424823359115919404534953855838674274791469534191488668131873011366310883176478713714295999009073547675801935504871570327101924525612138699143048364002869770026519020607070248157785763079705492973065726437002673214105176220260420929039819751872926474138860368328336200427927660456202564114234478463619454129909404348336931239029563792463875563569269636356132707347808791170117477566516696959406037976883706212179325981906181602282667501977192745497973647318485570642523756939323941022128333744921671221149701254855424018185136530335759286285119389574320584675150688893047277316453324213349705966230331476312953588896998114866480771851080846902020532261862174416627703808122274693613547733159993481419150788320841378210673154830848889690865031091369195964968209088004419364579384213607243374331331945631844025179421652679190702530764688948439712897020060432060579344314288452772182646053965564932992401493058704755815641651155326403799461451961833162608701887757029036319491696472460052536561746193241274969385339223790558939050665684805900910742400294419183191681690257258485433088565175275158696406269577529225513215048871964355352890907407763566145808451991032064479542142682299982150783608940960087484247036052496152729187893187489800066373829605008286083182336311090365963248261493665227445265699791473294166419229518690049646995246256837372092639426391353319883633883322739459778414658295380399575938357062526324919011450969271945252463996377721785213746476264910409032814020544464920402804685309547038881992598127112242890646245849467911744970294843132484780120483106698808368252493282152305027304364488801456691653664857042954925036709109583309127124460114280906839796513436048643047779577767135288793970476275518798540233730680828899324407844496964603719461256078480721616954700545435625259368874698993731600506372137937090845955792267014524044486324566700527612729279369079782893870548978758289532486990752804701229504420419289710039563613356044420591792380582913600713672683648885368301291642297533216596607435747688290951843924257090566316856557825317556040794092347787118087669096427319979402668159411059186779868874870616601210158960750093158754111971262005173262922463014226896205423822568244838354535403383042033825852563269325339364675475480543770405171186829449719291883478918241553834001581782952860854582684080168305412363729755189713498664588076368910939641723142302999957964831060544783272262755761713563868607106781254025560925772859295247973362966797496880089268226662372055037699365268545165175482145173353744466355032302949379272916437608754862888958494110347909908132259403336981103273136311612248562593274684614920003727383770859766005519014817143647836171525471629123450264870415429095673870943759825761612307410205294482074616480652290865386204447052875304831103546700925531911052354295468207437191535318514697960993431033889247654112267160841123815082688060696988743065225516155006351166612561726835552188571820197218672484654969228339074228397731859525709101987974892680061404451904952274886365828845122115381062645722242547595183297713811684263333043603640224319423266559237453006446364742401453247779422220427635453925878887056412892413047830391565295460318343510656838023528902500128929229822732193735208238286093618780058976491872655653002879408408613454838575027385376226717237120732260305845268547002322968078877863664235175568773863529302866213622450137345322407882674494643779951706993598734726841481798035520907586547625620076765991841264316323410369174127165689176409672394736671483078603803593263561549220769560953287414179287864462070253103882341505325245728961575454826437714334456405589467529780586341501597817786503427493703038511936489371270620150072489796244250558099393062120052269317042095155467323769450792598659739139942065397946014978408620979828431656846924973692487428972584131096936053453200324732890277786920493390625685738272614233076604048911922952958749933730156698276316707401967584670856772604123838586201434810092689166711073799486252183764395109510298685185237576229584224162057460129410803556456055446827475117466157048042540203052424709179431933027013659120654488367507580160712555902748736385727509038178355471270239577364209074251223894728712836932174413390179362496867456917271971676533643914108795024424278327734604148975797004932259306005431109588291431326889784910499475954208423663970368522415677381899133653982049199720074205630420549371492973938212454908006935690558940006616071922462111452917524577499061369138645473451465862747104596937093311025732457940538746868499617028742518195369137138175271325412753712301043603073261642425770236739315320031285819159453753952200084622082597147471433547310887379638857667638660349818869909447285188242150633168376460986382825125969007809273733054345472251709413598354593931306126825557810060683837511696210755719210561783017623720936628684775413069359799993187399049376532653202901037847953248473117314397413673549059423041869919780822683747634077393062018699384229812639610604666180457590381487194647557763361736433999544533447003529293725930442745687192958195814505705640208356360993926459183950061774659975037920468177682123757571840544027579722583662743625519024563623171691264260900142499372442505672837221383677059000950650976656010695794070409266303827689790830075400537435989273477886057149971966908546273137944099985125676946650240679309333175242752182935648307256465514414572138840120336736970038932366248193263484315147314502699374382222747235001719552230389071010115783182910100501203350962240486275978360698986750553486487404873506017595945725074150886643923638105740738987742950089389034473804233089309799860197651042129403958595483910826329852805670428642366642371190006921851037481121865085206224987705888183511722730759110547759917133538686179290038468584223561108083603426021100357507914197672453694658733491460419638942969060101980650252200040135687548384725823536839321529316418863866017738133176632652373958287773581872037091769261605441278798729050720553297879866153831776644066497110447749568467547050114457203957514926145062477928172978078004230822558816111686998542928808459806021404274134261460830807627535073545191769814197637290576186984457676827933975544964231255732780435172948249301027701766533578842030941482313322824234496789307187654401807744247396158424982047275009928792677804122410846552101768391314683932327787369263310373872990865224792210945370498612750094960526838593085144793301392717187567822537812695381492480424163151226987718617973227193296596187719710883035668214108770093002201575684918906372252082591958833818425353402237276646545564946747563041518687811324601408229025389139729375066137626764217770734097831341528621121947435972440580973693620664656668208542573865581951068914065857764124433502559777962338883585170924908286194925398012840078038662756302158392107941367365102972194079586293549136630517502934803747248046899607191724052046175902729700779909683652326019391460423135085128152649102499519561011762830419999858702358614242879016723169948855231119837398771830379664068808906744677320063289369454577994912649042759842741005040783082629901900381665006604332231119042425873192313139155081527944144661226153805608489176592088597410966139140348999410220335942376625366560484804130533242726081837929140529190835781841990449030120465900777355524885724677783943718794126567669859946744206378470020057298024044320322992237168013389946094193855244264784367279520056028272267961098244097177423130521922478949963784675442170989039611309376902550978200124443112950828022777639077964530548295278398077879225972001565525451197855419367959227437771641728319930145545095453053823512696933085376160091932596809424186983205102971406514449421293228402584491991523912931499439495598129493661232200151078794791199758302883111323782105193304081568375984917137565942201342973767088683584848438635375590853762045401192791034569067377274505134344205312125765929062005803931003626899811591510779600929761622678684630676903397564455111261843372403670290732961152906915572384564257194845526955116370615037926903856523818589607656615330202414306768767263569174698248594088000526481764416160245963128675214144313655219195525151759202250273022817169319568674200018327659367687381828873467839073573203627840902047634459807886906291591076845985615816946992243195228242807292915951065904178338577158467712402179978478489621666576495379610561436131772222591397395678001937094480929148042275630580991490206418934512051583913654831016497750076651870848146451674682571792736384921989881274101841031398601406061427243154278368899328648213738923591795210475014370111725847874880596918071078920977001035674661297540041524910578635775191401777431788060714450754723359034286214102940132945275478931582436418039348356706782541520530910107030942458949719954240610537229232442130627954961098913433794536380189814073256940560154924092700449786803625480813789079599772857349639368173145762527558026718902739248745636587275946510135002632886730905555693969853842220358787566470782999970162370186056103133364744674166826865128327330245019790324322108787044770651848256517617743871199752940293292884742912538273260279145761736459501863423571474669793881882494679089454002785611856087948558141947121416190681030115571069302789701537747159384530564011093201155413249982265136187830458844314563747882098054716681930971050369943334472700718806881427854468861975093605615455120195595266263335146605623954284885026459000182952853672048856601470029079256174694571065800313125193459632292125053935119651327470785488631624247154571017439893883654321050242444563601180020899533892427785400936707923002573971221367799234776927546073077687678331325642315573193441366660020042297941018293738083871912450629205157945386124974375148574917968722612948778891365886866339666512885316708689021412100048294049593040016384358237930814606164220432285327989910672768321975116881488844995681936725318910520960049067811740798823835604428918750324518476583765729889257828689978898901989058720199389825543391703511023532635306037364630042886697201460475414907695299998700242826854570536511236992705952822754221818867486645709422619803159830862089623714976506622541098045445156779997303058152749223818483443057509325134531294430630567167295704672789676058331702473456816259859643346987880756688196020354798788688746118432917078634665880983131399974370527961080372924966754980338052007059762548758982506548325474496188270756092135694688664152347119646578793904573955839110750929675252632373834983990760307809827381677687922381478321994207636384741002125876537181421417980171741355801169184324603102043341467632980695537584968585351415396194293043544628686961991745796882944897547049341752156110941335211532639053441392886109019960089166114151338628440421414377786259459088331919297056782232533669356920477824146893152661726161022131536735997977197377186116193926621948792776431002635932966799432524013106517277678907998976161219052190706070816213005202070186591658302550998763875660545881909411411807218046544782020723023729482909729194197346921088814935841192959690554205509033372159806540721029411745104039402201957452217013506468771647395338764784432413317263129252905500004746952044597470980310065822924641454859657028006211213599868291606079146451233138033170963916369145701349496468684647321842080217637139781005050535295604824014735100578293703313211392918051055709395249518178399085892517003870854604037757818502909111763411243716183322016540755077190935225307632982822402073495565672841502542027385077378262089516426044797685269924380022588782619613968232114910787602690153174898342032416936092637920753967735829131716001630249762900809794903290504044357439715792269920312634929652242767726761759075869041382494853443212250962224253068322237757292441283854819337106505424229702715095745677384000962123049702959404107388908646124112355460503053785536335072965760603633233449635285145426061457302611824986551746358374760407530257584196716898538384030433088426160002658841008726528206686712104671520648608521043483932026037534413065417943650603863348066043866127729461888928744957717291780425593056172896298414551490037665824549442213184185763961548241202399577270001388389474964251607606963659919882207088097812729115990462314323142230328487300987529645149961769739467810432113666100117892658653143463130971777778044993884778399903791781773948560004989353869906260331642487039610527845047977189371650248213216402173538574041468198997326758376441418346207056162062946827459660498036801030037631700640040104415699209457506678321367105103608422177441942088259596856552176187526670713484406453340694870023167003532718406688281497685738130075083143461042620205764717454093758378252976807251831137550904583181899945438419098217121449309145095278523551292725143328282337724790382148267396348070636667226494217721418149267915466970443565383062078595348496654766592869849750112566073735578949756211965651634963523859424507348643892972168609136005945673457866859339285995109725466845555406783758556310889613108174679309844585602010162627173287873934621878856988286022160474518733423549805022662431635424485219082031429966861012462976948234472306963613375528919011562367697896532078549415820704426034897348299466502313254964722270344112003365145210279325413474427665106245231497464299690290354783234083866944223050483644725980156523954756667736366406673413502610223802496035571232670837767948500424113639224543807101322950571590463205979123761078491682893767967257018070732405486250668657784425705899776367406036180279287700657833947098069942226670263272371630804222679414484931812634538627700248194698322474177795385013768102031021805250619706703625769227664439623095467264485445598647964254510868205011313195389161867759626230577571309725166539971592393639520575351620707766824126678435467104902354694398876078894271037580704872008614109749996558212283317548481210749169387386117084567234310719919754028639665463200790871838624927241807875874624710847911877678811094947604139713295076879673049423435689090590730172355999339675210944882689662496783010006552331083289544390978212261212347563075636433711678115981763916190602088173515824204903654520172067478414257246554445086076725531364610686366843904876181244119474448094755244716453947399449629852268997774630228188552611829579733191546825453780263168754857129630655261212620705683288426334234748040395163248038643285706524936676350190852944569150421337591967307865555401378755608678296172747853010621691426075980976166999296928050270342759336571897133983918456060915550019715733642847169139798722141395301831202107970504561069635786325525353784685760186937782529898713850024710910325500237975906560580329228335970761264287922041854459597999883593802426846009675752530091147131417939529350440830412202236224342099896611522140542548095413236618788512669639750586440524183067028916912638424538639775398745047556635119310268370381469506870930669292355348641675225013861014626230881578228844148193683808425465937127542568663095376065219301146950467226945388751028611818923123751135816952746401977275597650138559744579232270004737643514642995910586615947774902321742580018814726183557933391508807682518510799798619645077412289224058084671234767514792389214945125755126085319879130653575040932308814045694844620958293690605932725871369053232566972867781482890640599949849755653883463506361006023430781072905445712172396669132259534128900571147175189806602827873670008599649060433804609641659981409660201954553416567567952899878145819656152514412133814137235109449643800194953282175536531905530069810569520990134517978433637801422606778347032956294439844085944966630678220305057622809974839099451977246239840683249955752081605487715176347650659913485862154958426106881591793238035362808584489716548011932459471422466591433460795763138192076143237110367877138178008782277930171450791193979664873772747952598268542673684847457088143642025516658422808259971122503893380405231576120470048917405928273245572721841630303471226820224666912021657823630547446213078412263888156146325151675568640748918403934348499474470691558842035586501656966191235899211872627319893492703672592167529633909297528848641439596015870349737118708706351322593805512470391030144298636394019648472850146595619994129546077823970360017168241058436244144260722601988533228155496515981259741219525870852067803292290688820377915155297412149614792756281240017599298717416601005592419082328135534625349535370745708029608898930444583792636748400180808079706876124918795829627598736387345194753228390574427624531223392741762643659686913115271993218171460554190892949535576543522428769270884811797246417371799176844209497754957379927330774129635958201004879341084935778943702118525938419397639193551611825470679588304434023491039584845303583586078333674850454525851535922318911516814936367757725235040861124361073366439650902310274452662840025684657975159280470244768555892690976247824123575740049316624021358957755828010815443820884859633082557357972020219991023158927003678946719610643040931113746750578381922220671494822478764730908901849669802929572817696977568829822739292342333439117672742029556468325379841567860922403668703456019287492291160530712540503565873021897350202434967866581472760422288509270042508593919960710232823285619195535450140736132506376394200000549332633903707530547794285886638805693867120799678271161305694035461371935867240440688157255263045671174180219201994733207270406211896265672011314997340521782141302201875559796395346263434386721478628098269941913602621766500311280250078367708022315947556451293468693005070177826046372762676467203715441966656939573463502212862648147745075344764838590194142650159229027476623775409860430297247259689896043180979260760191126644397896697118193863605383675901535346287428756887159386846122338563708956598034402684191039203040431371112938453961767481442119118916507654700936085996630733181566364393653797760259897717099895113230951029904988447877827302677530100861804175940444934189922680707017144257395899139014369482985544735751172084107456988876029664014847561265161777756435275001126160738831922194679927536904285283877727380084071714253068607087179398315960669483634267412085577902247965497322935377018092841815420757138051427854325350454815445989230733560681188984087518866520477029802841204346808212587706766986894338782547329498919706856030179608313504664407400539232629305603765014517418011288083887243731258736856273116783531708951227830628354815460627626642621330938878186215617338629140454837541165648559627088404652143277038102067097935080975726395541539379197619283138272032443490108259909040549515070265927197546456632312390598597566507687955894778635999596587896032082210139350925019305308582614903753678176170565812841823377322274904679626946757828382220466553999466556510265102709982925662671405939413812683158323162881132497534377678897289757592180253768541020507657806060595288962830255647506772053768924120183450754514501781631373814435655759704188502999650188884404680212953486120719039020738549064705822349700950728397786853417771276517750491931941766091539235065048932954750537544210665277184121736401128291576290852302296965479535531076771464331779960362438951851202125203250864373902053174590532883469179872217104909692614640992344124477936692680838676178629769145310335326625611897468870447535280286544833067433928664203184145159947956770188389054829593695744067070588611460280849684078370243153754076356815329728031037189880947073553757452222121376166310608802762089405971690742978249224644686940781018386794625730680068775395439417780218389061301654303737039778072453668504738060927594078089602171271432148971905188861566405251845921465239480406606028343026602936109254822752043620317088945205557273055324252789587178502969995521138024874359495029044055063808634502588096188866214104929967889061382446539453757909126747810124379789683359521171336698839881102993333525526405747524087216417277557215518144683164622755756506334835652218631676137756201001063439632657735664006131597362617107253780724215289391028493355748056430739722973457309113551528573574294000705259824026312556439339976494880725038514378796439460993617098708937125941263802680010687159676168650816630909652423994547020345934073002204435213952886624093573894129471649248378818130103675953046588025016665332863964384207368334285083570165832920827025066126634892013393994565428556371005556091871426084523912919131244363656988655338897327148010654322917252783384595428643551771810273901465763843857158941166039219167745119949690486406093787746397175109391073571799616259241227363439741260024063957572130279559786494940404087551680273347654502824129922963439942360131051226156895541544336627905653513015568317540626109302944570271240704682261234380896677780418838490413022885040439403410255188839161791614550211099359545807595730918574751889616825244525626565053683683214840490034195300649029859800866759088909143871973569701157648551395979108380554686609383733004048314134247709499160143327749726947528940750453852656281170848042993629719000959577035113135137971771356191926590736207107835071553741139648471731263429940951126506703440464482076109695700720738783217538730251835020430833463208639111020656777889985802314434577493350020462659135819877200655816419134199852105816342220483776132057303616537305188959161659979510395424814350428442658112157000069319189810393426827800736932412802239282284458320130390454428195281339792926168699043296709896305125724486373563578907782455363864604922737078238245647077894823431352893503721295329058692699128752026016687118862473539108002836579454752320132072084153574487164324194450678297063784662689552148129104459617023589338594640354117697490525899838858003574284107930416932042945042121185164868584208887514818430451968356830455308725324107780217273500001585220386187058132177816220100735767184906633881715334378236782827013431141223026374671420347414192755554114436500697575356155239354420470225670135800839510164798151610975869055924154186287231743845262090522129205437454901317977243247798614471179325049828933203370466733238974193067591298531574499398650695377130871749568869886952036223228744605980524971760571235981947646244704893621109609511029635330093568094813945429859042277334156862334416458629683459005920572878659703160367378523062872153962029807470322407645341340437641921633913469655165322631498270289394258331609313471825553356523576370952953265425987119161865859621898538143941361774326715416022804569341859944284592264433937251393732084564575488795933306241852684699640371426465164957450864677304666044971958726997312704815705599734626452844634005660931427376770322167829531987752351634873880795909940337971120010651657807900208849174854281213945259881007061088471322967848835559955955741394644340533123331426146228969195597468547547829394645308822629074894450281206870844255708208778784411265132050160062579322808996876960591180593746913458090636480233404573268079059771167601710307534976091017329646734118077919766698360183635806497110040379890077941967872977128104995591265983891654158565547495743624699263656104097508410493657605883679050830437303029774190261691945594046319866829028146600624788920745605879170615397763952763283141794403417976296754181909400018534622082659867899598111378470019850743361737943890974731087725337363210980281615712510320797925240347189739758161485884013799965777533022384873205305747572361557963928321630063825264169713124657139789945984746911222586903069627844169130141661778465848578738296447663276529435955668854937615454570848263683283520450122592301721374511115787868987499759775815398153210430917371475234067715113036565826869770217373807893101921508619171469136373118309343657215782886755952807462127017651027092789743740655692240501613973183586676055053710103208014582510016018074138773764936377118078630303108520543821988922639856172011966188576474737463628257560500460956936111006406456708694788181863672166611159970792311709329880957181145248092981763529640010415692292926172850581423877932485364161666141412151020193204860198923559325801898585068412931391861698587664645690040116761309724624875230717138609974500138543560909805898718574228628904897765865146589477720157118585620720293452315661525550847313736563267162221601332141128993184854112728443171517421850812190865052502943901291471861996064534619112820483862845374311511229091725494609814498233614099218391348438649673612558986565835411807114090102927355068617248579530073554599770175360011504788090665171003158284563814670077288782001945345216239956143939241279433116605679989344632957356059068593666534754067130376380542956582847611836788096258942299182960577210128698129719522703438948293198297114646808766532412769142895234676837064484983768480608239365306195985874319482177573180048441295613046432198374099323947345477865050766388808465363047152605483896116831001008675758779057690595737981017722575667510705194443089269856380405856863255101810335922237729097302651991042654467921757404463111108857747896304497787820396764050985862879105298461268282900290872768673007458312970993966764186019304747846356208461880174122595783994450688635921379689543584948442285031179269409118335148206914892556405878913786679593607331874278289367027778284829628389591287490842983624967530389569670546376917086529534899489102124926987727905928236011204068996973896917187161611884441239991524908951416190153560436361346671012414754985123088896520653203525937068143524119200074710051366418596016711627091494685972057288829368656635802463498947775522015317933427106881467450122028895145022626722113258082124460559836808737709373473461353659795526798785802336950230052711055947016310725069142411051186506300221030107619453756084903199702815061280378369834059585762881778778757902351009810729886725173947125874733578855922878341089676200621162171503892485129297586882041209783766533355481868691012574660701978682579477617702136358969920276276039585884414223409559769155655581788539532899938138690061762474506071955033658007880051957196264431824642318834544871341684662799732381852468309514527677569373434872914419575939568567809213361947964935662362408047089317000942846469263925558834414774888465812431489355524032669522740116957104418964353090267169032868782650053575676250495232362250187278506242881554060427836379463817536623332020881490235677932548220871981266454101587483751430937554483139424239434092183753117436213218980666887072941025048892201899382754047289469594887583908875071401943020719948336446382665624808179192010300688221473013133654368093074029394057832802169821817229903826884954325711396035793682401299948328607598001077502216038628686651089750396419064540798411190423661680540829891997396220079433758990312196564599679132205546934629870615245644554819096091618016979333929279249849381652114596089860012256115223010767085793061197766892220969218601490181312809204754340132080667453698933180065026565112417703382512758814904574181024471193880935430911881755858249460364522911153009080270413334397045687679751551199923383153068132121645844112034342399788337803766176930721381862237760448373313148749130547092804453709652985111760830460029544484019892522293831364922499877373435866223919009404090267058729099891895381354573589640320728666716978877079482567172617438018751280879705537681625449518171484298086977454929341249276530257234780479289277689127189282360330140173396575372365866775137698404298403531518387388249589981872372845413992364573639141784992655854975414467378692319301495422989560962943373907782214015699380520259551518668750732074145514722741275905172223072380563741789536310020104025077134024293639206763255386251814443645462599467331066781312067686012046760741282585679877342356394033888043859881159374292908161953810290646770386121084524055116246864827482696446019112299272160193887213025950674715941148693880947195508808998391277850459008032315606966312287609867383980810246142248443938827845026112469283727884566674330934953826045839323584395079527405438559288966703342543388044060900557396591546196084376388476207920185923240717674388981125955280083216080866415518686387401844888165546294645318593492720879908142428341598939171851784340481214389779824083561556313285158285292396977910092892945444141681445524929564345356137366732324224859933306036017992419234352225747208050001540237866783984591215657205698216904836393821506725059515420088393199457894734100035584172851565789466196520385412814504774766432906936745812103721034110465334666027172834824498113194227835472840385847148883053460287351468716948311948747110455643292782395303118336897685218436289205445286952064350689804696871883414148438138738619114257155675259036473913182421234941889811322864673874762941605335846099641698776814085232911111888524287786057174600350419509931850788081815835694394352318254707594811911993406030496263201196965732805334461971494408938798288285775650022105834123535906255315316710879084740951780394384443107263950169156655476070790255713191319748907959998254871801503723583085019389377490779677385877773917856899766146902313881638270195615633911751948649118531002597342002220013289032710684940189484910118094746452648997858865703355068635124416065838926866120201386309892185900520123429373199886135269207699884428319643784390173110748415244654106043657239753359289230754783601264672046054256639355834531292376040582951990012306748355868796549864150872007301372117227240320673774408166889270172476305608027155018261297209783438550455204697042822660646189231157620959811403590053292190905548773779540092879683079716118361432570030895928576797860911133476075173084956866165238945980760629918250842364859818277263160641375523605823545415940037540113637106229213664562501701715027030963951113415977663310295802777018331203183173543641093796117318701107593097497361054689992729832192588501974764739077141749609741165021063863344434824430714101608563967330836173715901449181924440381678816652730137134411441554502202867697396874022255735123278487375239070798219719869083449212487322661150366509206469805574542692232558091588810141689171764459776525836361697881779857680055798749279566859692702521455354981234152839842844811425654347925389383269773607797598315238438505153066873211660568116356062032789455347811275987308896715101436816882006149667543513068370926774656748519648893823573363031106621587344331911325941556383666048792735280676683602378527307396607149014285726322537777193340368671930584494944741628679641466373890715304464658490279450063927919608467596808464939797083484045916350855152992919094244485964205483115435465600539097900134809831971275281174422193406202672487645446511207543570240294963382758167811897963780322300875733020995229258496218834445296900615159186874928306032902954053793108920099239243316811671152711815134382214379649961678937868590412217928646087478857445355982233190818799689942762040872168867665804713115679818942801128651991841100741863999608296791027246736782830846888362483317932915987546834908233388471913277815267534802233882491717230450640435987748836020607888745059073814477963293918883678704488089183537998189893913191605198813659578236216311452799839148649189273054425088142551764181343430094970728122126119609663999908640422785893074300435299274747279254307974965062523526051687365296946980306550663064246529411240511853089097564997474832673609638997177605798689945276951106794316573140411902999237426832143694074705870781569181596958333680059817107416438527893725536033919236435025093592687621845040221653975908170130973925625941795510710976278685089107797306542375570341105868073409903826471946034703538195584495226564788841792515044851678232455943020521045401931036597195812234122744779907979547541746605643789002505329989320292654548361902145126007571474029703174937008336702256676603116893745114256001313299024414411683560016232471139291277659726879691281355340352633452583851378594876418244598627841399707063446753612907499569208271237629790246514595529174771116383110947762805114559605649128751949858521767260079030572523140961461419504854023876201549075244534766773618267108719545286703953800804256126786779524608164800240157833175628906184471099325500963130270663110361710486350884364520213935543952917445986075737542388905004525519406438000310979089318221765406593997669241602325442012279895803373462177323258737154269646469918030095513378107594446656755553915781934948690630938616401457215945710081372285351871642966917651111927822654564744795616216137546908480116611560399856200500260689208906904897688791870021057135982027158654242249569375855932098554297246385429969263179173498741121328616473211014083159403224592624828398877161598681713115833638702464683067897659411300233760320125100015184467604132106667805968200910545639761636394080384626262045031355583624418237744829330503337658136987024749149312806562980989376079757390086269120750675396675879541477259501826703033627147548815848426971430820195878302104728917753828349246651394133724636721157800102811538149786133077327062993958415608014671906914674760110256095930862281818580850377914348809701600024361787429532348673567843249968788149914199998218604392390549412574885265546421769445893245604290224104651014293530261969630280628312896355130689372634533635608552509328523729252888474865575867676791035711403835672160375912040148734227159089091979256572563152232618483571683638002061636917892905930672769323483054768020604718871581426436204200438303619863483232370820414622392821334433754642644334891402413097417931885454708355849325183831481550826106314470209887684909486498131297194260257689572100589576952838804762533844860718257542062933424335412123690196880721268594021314144751532649241420345180450933105716907805166924299236326341099007245569711105637999012519104451277341730555227743914671543449845823803823361559999092167312125555123634060477243424940962891504232035034787946820817782797555933871601100578186766678521742611703653922441317248745741930147548855789577955478333368976879331496423594385440315794171489726164689201088378078230346006486263271806713747428870940451604611077049207795176006294945322368854426171173595602393875989214365122766683147506374962074885151343956238592477974188771265068466133735589518054504169736049293354900853389904704317321751998326110811077720028214656712559934235166274264937534095923109988889516728794676705365437390579349572087089684727212591774100785618204095455902827794272255033463474946799747675319659985914647952864823329754627780021139445324287014396093082673908527734170980616907131625453549622812428356118311587752810521431422514181891223945113766719167061546347949058575816754459577421006793210668877609507034320973730043932987771543402193958156841687184993234512036005343705365006017301376504517544615057346364548368329020040847557189760326474168239371299417081491898802678627282636424547757268166077345209807717342938896569855783161641140501675832464123546421686774582249350889525306589264842846811617189406618568868899748223588578754422192078811137779247045335824337378009224130858527376028960501490039122067659944110067854050703853229834052155843772726893355222655461286381749671631104214293282447771985458552173148078775440299239931345832651553570739251465577195191932762152995111946643114031614169081907586697308545465181936793263633970712112108339550953828328313613321067352109889674694825262903902356148115115755690557953984119908311917228138273917794638234708301646710824771386950602674734271130402452925466954908320286322018753437132200821704670714844631567320768933870065842940884528669276108868421637299191070369613397480524583397403333320466054541383150037452273565153564133413372723320580456099344105415775808776390129758853059403163881403140841825552737480810832404468797898513171046075357707948143695490560683820599643766410525554236338458574458943108063643652266432109535042593110820864623393579296299671483974870289423533628495320370311997742110999209597133145687608865910747831992669902811536255320231429817348081213527850895789582675365183699711497542099857781147600541810029233905609887322292845280816141458364760690951433473605457023472596449204233865426563494978410455450000872051444347750449022224287003489974650035508116898712442838031264354288323898840679546143018152308862289565971030830673217090729920946870804993456221188682543175830555719470314216954825973888255026539146930085190929746849635109762554444235365133861647473466682662955343329097500682509691995471027622240238079442505531896825251987672584475088168473174197241054611690653487170889655893404635611837844739559919015182968014142704590758003769151354296652385205065250795324821912136116934080883726748480776912965787804879854920970464179458986166928001351506014063285037255942001118132540036079140310747237637623097617427062344700621993634183666105599180991233955348099395084071286871157019566949255775058621680832726470730534972527047628608403559787455900781943555840194688137864982321827963804648334571119324781559271816863358680918369291800058343650647551527452311728869384916489402765160665849735513277006754626487746321400482455480648552538933517179205902740118641441404320709914862442699170293304890222810740740690447986376835190654694613867835600575855742254744701479462347040258743777298904535142821795719917150768191201987169254488193360212666410820635862649675986566810523736816755814212765852363852213956798319663501479690689777612822688102189022618121649725745725410571504846207904360234755370593728101799116256760595512820408879328436962341247526608259282489054100633942047615008599140269037114133701854638238219466062090163175005449001652521571966514882175032648191113489256631741962955598105593490834411347584192344859770982455653357357102039502346847512839544292025539358888115559669626248722426950150873980030819266255640095151629914428085717744050425795686269391590058326299256930726128584211906973297709854484720917137527357246181966826613572087663838801122825989336420944638068123764968261150301479364244362962527523430644332619465669613024422336352926668033754625981329697039063633176829976271763461726723971390089669021292378271804219087513068558039744610398798790927849128009591789334138049917990627157539980740589421856527223477514766325746554009111850104073808303429318929539382916837518400770395537451337360095050573773558419322849732734716651949585274706433826591774598072967143237861609725800271938802832805102677686794406232518340647156239337038080762821124052987870816540592639966484803418587849133711205262736123731375567878036310865428913307364726058050501712777341107236130333513018634078563871288168023689685998567777640076673159917509111369827605698932995105125347552948825868026365230837321163071646579600087833034268229953574374336062110421401159516175746494083168416432091237560675142004242037890093470010413422391760058836924045375855598481876874623151682054362410480946933505369087089303624920721871979221057573116273944716198499153065603906108850293153652305612032068900751749085996349838800809762521329570423775609830100530880264794269354824325375356036204377109442655097099923768461527770969135085733802790820608426579952101989186561455085159665103999027083437632841759323062390498607315026695026802314745468485390445904561480744629174298061586848024889247017310114683785401003341340536953058814974352653678017058946517740685930043026290958716075169564958712769595377239757439071242323881770320838798818372062221469316941450134661781702506713912858859448441134320240068034317072592288390582023170084884414400914760522585492152326976066324362423709479058557646487095555123818044124304581894697129624583511716065044209842045640496797875374610067926576302787041848548938142222675312926810890129869842483052279522369469143700348156273473642544693423942986401184056876937617198384396218838267686184617507477271879032601259498521664051277981327423321632060608619339872006315748135982099925346176055280473770160095855204914425293735250428256900964899764166395807631842183633059773429760050403162437074965560524735714342099553954788965926799419285376107531883437248949162184863887913965772920367551658955476380757474714894082984874903542355211792658898134673235026925655845044082391707333361421899448448642248309609125820366284707676130709658787008714102031828440552375296995828525291994809509379420023596951337373783447931193400587855754878914673659787590249799836066684548546194880994136855089731036271976837273278934667798760403833327855592191668732905925752647285416616632792419621190766089854322405126972712359190705438048612248844978183864295672761057581095502494149594315903487134041012055668689106530374937123134767542110472655825114184832884434772253111912894578015350740336467017129461554446315582123776399734357117412453876262957739151934314363785837780878416847396573229542024346854046187376337158903484190367948567035511469523470398182284671909804309878051110022477569964897239102472382143339829168216407863066713187020727470777836065896681700060437500260585012924732753860038320416291148600929485787731211113955488637643467938461039851850675342906733056241116008836717266148251827386268108264345290594337829751819589660317356368720393018835229279484183821256610903289286738450235576709898765416945561011855370635198801718107070318139794275662065042456333904845004421836713064947146899309501662407336933881960915016073870637078957632061214554116413063904106486361155676811132156833396624205640850046701031766181768768874618090067975926104526670704576469996353870169561484061420941187709877301653964409650058503448477134652169750545372337723325908322365516283028529099778088169582617466480102431530438448651245153608788327595256285951857306116087712859266477648500545641092104023923545061025382589405858398430767860480605477139701968024750707450513460324581826293436875021351359985649288758472013779010038685306429348358737859954453810207058104516341677168750861486447384455166843498475256968306453052443715827651235673079992677760754097015875540257539192842011052569140131958209677805555611263581077650874105915958497945269905431845017957789697405234218054959661948707802027855742135527960437181134308828575253132758463583440054771865911625548269488792336386857554197708518231518619480097617017025705531460283762137401087207324986863722415199095403263258325928535084233658965787094985693489949870428490665245817550659750924859301782145336430263790077674949392530541447220646156768768073463205627753472192917316985405334489886073547606911716276499803398238911213162239607684150848022731714462008938988312964881377658394273270354511815175622732876411998901592257945159481061497185935503412472867116273616918618776329622468041867563602702459482833890401116569295271593565626915133180819387039200146387039238869340158635359362747993849888998092994298604989137245573738575056555759609090804196552697066950963928261996076761704840059950699796165392577467200379851563410738572141419368787891048498570875863660002059642390077602488223910925178810019257847670311398879599665037597643725348231790930865978331741733733514521613647464596035405814777170789719942893858511899456849966451805913491060602754092076493077723163829181679548042737977259575831125525319130068161291111159501782657915356472290235238784492716987738630808208628142253073262363730816555903418241825059618834011490748503245665320269008130378100587077764748056245423859050369135935624065962366086858916692367224769023165633316140675303189762930385129026085746983547991881744961021974004482923179418976806476855411953698775340434779150700018589644836351683337138455956370240428146896878349631492942130519505636376767789423967680528691528406835252511284781862874570262990651125821186658519855865868417876850505377238188914020679525274412195208845512325641008040565811904253123432503218217291295244398821476300278105014618979540588080916300325829221347775018103474874641747229513860211265514697742603706027007653363810298545301079863626310182238354378878589381423996849311514000293689154579591723857035941881360869341106693645840946374967074483996309890168185895762971578920308017918959193894467025495983302070094202358681999606672587815605491296298394452846737818326321083084080408043558660128412368165997393817419575381143669132608445822439732107552919373914301268321068125569502588624258092677240340174177065153823744148530939277952508025928994515040221426298070848099001780405230174898838240891099137937412238176329970943066118560154577527984292289395506563244226312714147237314721761275986790483943987052313970581526075921077591117230278851805698999150026693000781042904409453983244996027845873155463359401702927760779173475027595892601025495866024597930741958313044825598550531400653102207202128072693515182997698967378776727660608642140387458426264541539652392095284828236166547192972046489396235760969809306088987198988305481925055778442574309613511632287644142766508495617145482377805718106989623717307198864803898409455515239450403424037665897081470745424135686510137943316925078367154049631829181262549173597480415106379933497212633788863207123131195593222491258057739636508151803839116331772797700963021830922706839661664438277553468038648738144253841915418860740410007718024672570492766769998189257706553472586678834770728536418253739298102270351469863419836984984038595035972016905587981862963878759043208004622543271605875389839355631557047407463395143318259328784396536282732831229848814408200777459462421548694793636160163073284416784050399800656059067314327025533187172723864435816402886440057208137536191339605327448291448677826054615418739613192860358088517963773674028791557477373280332064719896222071259337739613482949225466276454425479872521581113154150347964202633657300772613803955216400504605940309018544232823332337827851949594851955007433581575389549982361981401983423378231257434582141112435059695175172655163872955512649520122843520367273597806688009335286810143406313854497282083804416164662770477664843194143483587715278920166994535531216524751317761515190573247891758855849411069909353586403267486150056644193158867785077507439225015148029292805938227420955590985724292297179052813974802575738003986074975420399672124490598968206200065846990947912740337803336465222902765232501202025232445759118134509148250104817376793127794587565679150987298395436266130796911363862491119005774457755342225533830078872630936191167764081005753413907988365224268344322232744926997910965691387350634340845941580726227686757332961616960300651807290035166102302975527598278984999391830917185855270595173757349855305151732909405396716884569539204362031382260424789716310791734391251595828237340883080000030607309351755888376084383457282640162409621195228335108934982668635976276542332485109369523646031399043418291426757312337335057383128158427702996959362652624884522281810944353244655066499817496916039565391649384203806221459021289097760004197641955241290743181028796023501456820350556457482674508393468971084607099924421682335532531783046127868196731013952693827658618984898685908852820517881624282244613677696029238579213521146925023348612171160614482164905747700139220146218828784483238861856295607443035672894675101980432939499625098077775676100964764179381704896896117339522698664856286231001213208888340904630426467837298641654890522482590541215408115502800615884388990761478248916698410335210877438449992647943240059608602345303675197381226295296794761952593185039513885443281195348671481308424558041139883871235389697614188570986670014016242806483330701274638560127232263819590129538618368380374931083051932999255460874904738004273878524679274769707058020535999913849136899264696763380570764621903512817801277599826867359511726364835039180375519951569206349190881602933003002568450978166822732386845895792925582620265597069043397749700387514224494287834607927745219252273337802318841254194190743259203685270548040584479830600221695840540062799659296503807953584072788894561059156590609939685798879031297750602684914938594695839259246258305247554691198955961710701040664668836251381434201497994694815746223471767807106742317262616700546453187206272666537615368285258730536938587802133702164229688815359018824680639678660735471358066609729145734701496274911298782318128987544512156611346121328050905332550366436260640040649332082802799041306144091738893582076743646275344908100755727860403018455390232336647023641404686153825985044919160078960092871739909542510118637517468700827270580622419604408411315707034784398411460201645078850389636811033008747627927556697557513420761497738239729530083126073090544686040218112454774743626886644475428504441055554227162755956411543716854199837162629026399103974136737382679145481428881126073950405616035861497213968363135079551883943402675876617642198348024121264983440288742278088310554556044968582980365209378732605620139554004715809319351279689664455757718870996474640328639661956744662709959365465196100297027503826942842015746266553839509924051462868376529159351938597804374037171042724304810412005269739100823511852334213293321461568120798306724384845816320599616609904751547674166370032982643977857713573567788710130807357485424847072126286691740932554406468687398402525969025715405975681090949998026358333457849448879383756676321565149412188936332486428469670285041389632684105947990442180752102361685969171495576001279669348355091248581847787240994391825202343600685162632066715834547087214704079868341005470016068378767548127722508544119709379065853360900725066887433814057225629973962546691363849679758146620216974956923695169422585752737659678382976491487148842812381398197053679637205243344970764231716890982508813412733471575572569992134337757095569210067819770212906581552510921389659455847186586028667476319151289270140016148350844917200098294387701795207355553166288260964081517529238089795261515661524386635118176744072397515384685161073939972019966366254726564932117570102863744464667174772721028356124963243345543955951212398792301787002468651160732476397678915026204805943002327763568841303592560050748876951244226903832422665665526182646788955883241211641851162392076145111577193906417025886278828984687450952073974161827652655714570353500740770314397050373559608170664122405896272781672667255230927544444394095806671935599723083676232243707175935258907943166518947609574178076530000162803332323466433068573969328245735673038094915668632188345672582388397749085284374989585529950309801923599004786464560624301529633314176250706840059929781870112056502244675849957684645942515434576467758077854787475885171124090243714336703686737838631478489028471209197195798298475194962285664547416493970253510637640571785825861337173876406557309340100900926103257068847277769413713093510689875982162509248919592574433693037726832414007630643025244589530991931602996280820189616628869353655583155213248822679026257911540302914487492492812971621864566909067817786396910095806921114470747876855304957287515882517596699559448729761304210137818672623612647106894708332566481421754899429066829165866579459391786565149459242472729301853868100806055945797164650202400390798801870201854670737633618746617133145956613893034007297537386050239800285144821709472449276735078210314973282369978093097184749891842945399642575462024398472830092725706400909304692590977258429266367899939573521310198699855182493488822376718166342777059428092165590025085773666185246491545892857153302805829671185169475250742980347185643143943362517438664713727586712677890986071636229353094802848298765030550602069697842236384876726655642770475621695481720157309459238490561187643537720906891876899952379889515763653859411065720435726181200462389935106692773908173065070529160090456576093405284539977173648444755495870465851640338015296220891307827876960594307789130913338358184234456437877620183570044719829997513384718949922989013795936327444688479088213401772463816367184198776876241354272187430891830083961699471308795530685093755427487292279093925043123057165756189674535715048262472668406939461438242486196853107352040183142244458095200124350936658327576064271296062003764634686874500285409209294599177223308731360149871418506436869065346864439831839204512000002281085911684224455934011585862167996598786183140881601891692234779311672193868707892728864608792610107866087047855979792981189043146497292861360476858011998348007793090374819883713863754328803159010922842685662535014251657579339386796367333699935779371583398747589548820117993243130480979548899343662821166240317094088273698981560990256254234322679456088727991425017524467239950743138820282262616981818911263228892786425272679040155822533876098253859126131444767725685104247269097416880063538861215654128294316050018515982363437060813522081831614674289916878023312292268022086290234407241355349391039484724231014257962998443817294169329106414706612544540330380278610736988895113940520317552430868757179057450412574155398400402571781952631510102401030775977843590697434538073666071998033244479816195200192821687733780025234077114665525566886179726510128137681911460856046387718859051285194817464093075371996367572394892196921002749890229283050349303172879580834320700898949622597705517647519383498342740051785849336253414286297888558588781445819606302680419106573368936675568319850494862607695556512194025612395985440870528077242021273181656580665693988161508505919878600678082908301139915070688530290273348386512990692840305561461785413584775355036630379797190676051715292237412587407890137982460300712857851161018553868338846904732858611285884600316538569296276709354983664935932845681349090514426688885308690214371149746430630792999956446093516669087287824354088843519793078903264148600563352201636701768690040200305121084755162854526866170742291832165684591060189252607769038947256416812398621861195634209824260193913548660062407878909237656590179227867353717763557394467950521889287835127379904170048308497428084012448123518833644135043696149616872503410472857582928037682033169939033857715389904852740953003510401856049218135251223680079009481249804056150190998165421228148719515493553097987361928922342553254855131551276711725595388031192807421631058185851500193255833485592650027274421901963411787389372037560454429950896087551576413669726546670563325386942795404618205615890891623395838380622754739038009725515000097509096901713943976417025042293423350416580276588894418852925957751782482437243804867459322911096058040223153485117298050775509072610968142452498065758843098984074820588501270145163787943278624257663240310063415353927578293089286136248375617338077486709074646454894265351879161145393368177209148118574382551651787649351501574766350553602666404177911676961978182336429333231729590476999251401974480188770953888828186237648503606436390345527708306634444517289498653419883356407546206425361297928870887784786554057880258567069499675832374334963710736152892580751437301622054645692138899451540060120370395335019709585511568352398523639961764449935667739089024940861240248464533970999821228222777184871174726455335393633426971277423184438212886443512060240041054779882106941534746663174814411023400998644917502153857141361464220310862327095203253515415900486991823758956518880246990782025575427551174558544268470107402277941537116612395433779704239293062467340755987810942748802949102749596196185054178781455998511460271217088311768247173694358941978502175431194828137769925402221699513467723417151465852759136419798097022465036200341983528501543366549351917737719586190058234882515649531888205466736926574531500218770719769756552358886857983997532564103381865374769172045310515600365471505796743074513776010436286805672998705424839314834042180669987432458315207176485159231083852726693890760231602974320274077927498920706435624269213847902174875973383575764043175658139957297336575165591344291083563268806153938385242074676361900251479766515113875864605284817789266053078617234065277485616295909495419046810963716679843550410269800051608994701151161659992002727051726056576401809801040401460079856697170397564646431935257302674222278038886892236746860785698184479169102227059426383285761578841411672986508437271958464925371952344887100444954815121311831506670814920812762410077984013870971568435182069787281230040679646437979406710460599812245371037313722096147984885422738422391407281142352653336527782356555368484147150146253429333087325839063605415939212788246188521791630156501031736643830067955739567311706930537289582084750075986306938370538575653920290830129524388811362847137295235479775571336187126379979835328226717493585406843973677145376817477135806957386860492771270026762757497874100695319343990136494432881368644741032847995866531325222682974861875471547862737843881464947495674320453533513851384871075759568142929808413734468841436101925848826266156956762401193969583775246565348015447608382562499940263708311890713341962599201779939262823950344837260212071263749944566063437548188461195675287406302027269178697023337267895839369356609262562796369558808927948655789635323557003676305355525619664530258883765222407510802946162064521647184211853077380242722954612038955589959645017827443120847623467025585852479786875416251951475105418047270029559544438238595056270551353885446089434226677904303988193229990660499184208065458199745989219816356509546956240295394241862446772354081681785096447197143873897062271052945218958018606779414423287475529252304710798032806011683977322223444717102309871755549490696124517914212229557844743476881087816274635414252296341497453305941415274974914249059224796954724446572202328149434989193161136431172205651038852894171679556625905758959664523943242581165663152596927980843104633018492123600492928258004594983643671502733220069534055750535387257687880804502274181997039361720571516420106447132705943623828292281492882383329784767839609555956851048758118837190912378714985661419155536799590147802848881786799470041210492611711176149457216767650745373443919408661621201689680420518931223546594551317494497247563885988969194853104035488679125146904915805396090285958229280756262118422910234385484195887512063266404647503140794365708766502055849237248674249941321639811113325810935594804439422584643814766717384241310858761182031991448301449460600262444252195923930583249339875725566831145992050066265912466178130652841789633694454238936774502826724208274317816070902349947213349376745111502379584848549899240935222940584347788951282520481206134191995746354801603005680743269623080582151257202297961207189472636818095333736489849325735428559531795754428139143841799975056698144960845739352301835540938775708234754856279685730196286969702869480370275787806462746048625259008691723155709767900711988636442581567285705413095796980040986092042085015880509014950618867924459632426698094553591644296137912361430584421498315817453993315581170010240630144119343696109847277000842283960404232687714945287313772087664321139888713367823052468168541234813172859088915437803885556014081257440863550039508576946964959398370101504575663309022237625579399301493979166318907799148799459815246074933686054717969232730196314834931010883880732428077392781909850031551741783877112760716264438391355687494771385009378654083879917083268653320131682279566966869053601707422549856563858262462661148418063352956517598719869939235556785205777292520696234124897077337037496612253643325718023402801924839922682465219184469742735831678127710864604185479587683187309162336266129402379015653252384773097546996672985522648128352594484784363299997851600924819110315014563513399939133153768101259627645216178024000884107797668927361986872025668562351542672016499446780796639520090436075798395483766061258268098991358302206820036080063337902137980576819917396289812450082875017634440699402993793963146033929102831163797974683019262528777705324199164630505179370850200531061680564456571617013926851451051995119146466771055055783165749692557065015881787844615231290295164715895531925999867695071439449811303440487247540303786149561201800353866383050611615194719767370729244262518264378512232726127235397365699072092091742834553751902552268639315022094002395195881653461939800337639215624736469705884292186495284708719207082740686431258217361212432005625514313183300982637897313955485667515951482851600592230071284265279002407381459837504605256632344507095516144035801530815600830178305662821805063612448356278499217125154166493360232575030990721080525761154560573766195507503168413261588256446305447284179037962809898965489745764986482979680596530913935246713289671756953918998872328665875328905518068127975077920120994305765743507483817042415653636747967411042686992016621891014137673562830051953162726773819942681062435919565405111286107406013660878224431850270033648613488544598131985653080556357165909227654770786907091372358584877859942908946481122944436799208186867043964047721609441832086297832661144553584970648154518955546608612004217161875523798532811129409754687562834629442007565817996578574762397332709237521401364595974747075365674209839631164270729406655442467047864951933104315841890360086291406136570703874176322371173565119130089827840563733676556739137731000425812326207503248909821117185963111214044128305190333388553040009870617423888817817307296165679845078695140183214503630332410155471516385747212909340572239009955206113991786092337346086582164667431195484155294944431855660727923977030166058806512291007407039344925623453382818877891130181675712177502191758159291127714097447203832489338707333099125251006209234954946609936265751992100069536476415064210302730216606380030904575665459731194080930513614822653712543121186346297962246695286930236375337267143029230111290792909678275013468660515031499532061612145757544673043894282999514335585947342756681942338618049324769122136536948466084290949105756371401423607765451565929694287959351484078007293370301797963541773384027587696421161773047214648387669246233339557316351221971440669620418815918328272603279433264121457292112556694964511583614118432984188091862223305595277218068235548586520544832313163723603916745017567547652031768447390856530234857313426174284240592324203958629637599219635968124811333691325588948511185798959556867042413459103427191967316079802379093194960070166891144037799665273482840952504272208829836949340933641940786734421185473828308614489041769746318607010403478962940807594234557840545085908033486650848682330745298058719128512051188614504934281614894611649835475471936211842136197514271035887702246202611324117679570611516549198074691076453780390822444201969383933679239574353814018226885189633175947736734026788938701006160105496522460615566060439432530359100946875111298392675657673567447458838686454990901835974821797038120897657041652093514219865197231582450684013062878374956700832909132717669778362739125285739032573833819965388315354896704631438989007982586653031545146296976481931244287662146946734559209134576640503924662411088925957367547638488214155342544097725889803216351886532259029089875276729071620272330243539446939420175101684080514720548457482869639328559963596072633166661740761615567450846997545109386085996069468407738950655190951123215331243999785283310848419163731031984806848836468511413273638522597991896070758401816187295416303102678506717681936239646904798673232665888111351972065038669358458213079362941387115857386366705015412272386407314371820239450889291447013020634276747449060284800309603002965065536610992789188638659740483873351522567109465776140854796685231944144095270543751267761230146319224083712520762238543528272558315922014224453405444764737208319901847467175305434043254603410323642153610907355346597998196409540412230578929696345345735511279815005281937113409136299819780170016036915854492832512045207789829797393946405147262581098535866121804435470517854134519571417739725282581730466926222541791926162183663601519452941627718195725124724668506114597931509038024446123113543086156868723876178917017108076610426999977076018892223729906972409520683586947155937785294746071989945804568006461482948680144086544654018578825648958422660974514137727516022747056755560767712670431464715722270856850574781933036525398869054828480611717641846564747653520381297332713688537761444218869104918700668213884838608658536896832647759555340094741163992581761729193730490244048644157259187965371886795617507215448363507526420408544955705294340901751148543211837528691738042218060963659649457761414323422452312970852737079777343310842993393145971503646638801182904241420805124784705204093861833488118542368447393812024511814329370611304252092592185361233076830375691066429610385373985248274024521592142034872978023836374560824015124909259244125549047444828390280328622735353471750458754266282993618098356701016313484567136734351422127388608570321883205542085130204515793510954719277561685224625443651288114318663155420403284507779594478768783905360183530834463143937052738670186132053725865755134905277182529441479181581516585578884228132028020462815265490491399008669283205137052831842181098672028465778786895999387389987229690609819514800605173583495852378776792578405004237688818670614155224844946051626611505218223658383826106978646651118959749352350230083481377968364758187235103411068044051658226870168050115810229879477241935402877444759974112905481457234315221612352647260577588906112400626776798645037149794840014781568833716720500548183415641164609900461337844607136201564070181232862230685317143594923788787620286098924157928771339812467800446658652190942024776219323696802481114558408105336616613524347516459219592152594043368308455822298165542097060972221172935838179316641740849571174403901466941153117256431088576664889582026987903149224265226802311504721412694463362001128858536934596972473183953823579199774848010005392273625828008051914112851419142181167570288164922768429995826486275532019612180345814646629059682050502248106871506854339882927569583660064462985356268630966471076415211465218973618947978214384179419979168415016203442438021812507058963519130966292173093391984172386727314758307025081190700060321414223618589338289727765914094917741931718998264799002577691819676533076215165803866320662639494408904048955306106996781565637468336051637580735666498855097494970896713005209492469251965795414956589869761905021108503985882714343225556048592890656839535339789900179137115507248150456890499002771463206002699208839451627613763910315969552032385212033413743968956257511437250585378957481127797593042058471826744230904475170187145687728353250119888482042051487676629279737303211834370783643462390944116991462872822130238643017012508872464612910072864440421992979926727076972722604942140869602544770128258637767216218244112522418372726367933104550085835067216858449627038131883398884035736141307933093973867641927424221316298537940281069118628812022104630046351622340271155912672998603173248835317998780681112475662427265083516397651075151633042975277473002697810406858298801515577012118985855972344342099718036032955358537638764349592938095224418642743225315071873510034195402392605290359567282600592025994119734053510874524121969008040200439973892318604368597596143430254271173838286660679591388244226196230029615512923200442692934425211334042435175793040189214753530451950715228327776578877351967986248668559448467365826103457716580713313431195086719015173564343376008720541719402441844504224541417265167903619212875344393366349220648290069458102225347567967684371910494334786696634681526682419534948536014896081344107376537847739381271011539958734396326196917991469349344389279758919025762304189576407741148333663578071544024454589976400569500327030609528693644226747483260279288815940626008629238744191132826262986846319991500827792295633268313590959413979500779325186357693282372762553662684810903969316979424544334939692016733975835841521569978838268753387910341123367797173707118360737442989218950156061464166860284254040982205833856777332672054615468588932738693487881547598309184982986442072404252360826906067025275963979678711195996305566726510782278871886273550693811230371513435887326749434314505084003955032928146846018819863397622452905895717938064662989795766485960129875050908154642416455699698067150879573753609621002841179630669378150035885517999747232469948210470344201110103905040134665550350044368472441718401738324305239094528212100496312482899080205085137255402623358498809130000887353808462853347801648521225475164913626402666921785489815709404810195579000286099219887595840966853295315839050055883479699471869722696967318103117634931509131949524092703452961661882016402434870246299949629632343144176983834808631209510712608548965165418764450812257786351470438851587405499294459615129787521751884452003798460158643799997044746354675962785398936674134833885678796484940669868889203624980159599707652857903337481179511119327376753053351395014537350038802397870557993483541302594224876482845429689667599679173660372164743020295427543221295231367367776662008918712093700721480580070336596298863284981387592986777633259966521704324777068658567773678446252958384630541555983163774933775312165777869591810183527157764587824504899760727217607642860480799835955734330045723242907243172775428664627803832254256279309224415040392571512724830409125558082332899559115570145255466841936994465811373009933220605345643437194711337366452987305212998225972232595768118584269578220979662056357536260134938621432528280348950304980437998372431288779920460867570719329591038996481775403810796774033790941267641004199332755566809584899195376441158143612861682848800645179690268297900685051001302376388609860127926793151163906028066159477440780706136458476307730637721946258572123519400157465966787744241098818277237191935280398324546484428795225029008456011971044658872907395881780950959852565089639605704325101978272804789324742480923370670473404208253828108049268313178537113796340689159605351189304829359911630763256191796673949793541684196843232606440694455255650063046454571470581929904379343081287412684562484025811042188969269316955267831197278774715719466215174999209816727760490704928847519687735988387188454942966048055056139634581909768557900618392998435806158989556123334869818129977262249270629419704455245357302836999071475476908686789201779466316391507701449133028809677481635351945141854924166028008998669208863423328510109890618240409854099352359814034983523657578646311839039005646544014595659885162953445753809971819553091686354825047249613109416911772865458128148439036267704426838830668600583621436703325215945885357229399733600422339623612998605505158622041778633273980292592468400427387757145033942818021012794666808715738684434293071637585626798245691534429963961837445962946412909818661868157249182510450072578114242630012651836122809864026504012527387214667297540627453781486080316957429035839839654351135110996371651757476618268609288911828205175953780155906912943691294278699483921407040747441230059442413075972117254876781357215595668485245361747954415476905545910453240826156231745190274072734234261761619867835386732883694513623354577335669924052983932424499177778003922454133364210119098770880640728803824118109679309665088741554788609789502450129624686454441106614601364028093108191498148586958761128083529731002412630515059031273608658006998856753094624207867745241747961541437218417849841818908727928569863606240831520451043059025504618399433467165627511249098842576255266965638182789669520125380874602714081972367611026964142201566710855197725429215364549740297481674710432110906412601606557171958486259562699603480001970116521281595847821188365400114349097598629876330252366213574812232037187664725371080544990960154657060315822488127140968310454652920144508267412559248003736955987870165582274262773094232572559218989523858260770388709262859342549849595200622363869431434784856281639626865011584139595164763023499450869112915980557509957009811464078160558582865548937077079693716790585291517727440753489894944234004367773090803009148632063937278822050137792809419872543120135142909183218459089604179025596209218392765198894835369878538243035173531349559285432469147950809646150697400133396568609268321593489002883976459449745141137921874805337269320525114051126743462473867647772114379586749596078453700294504060248473350421808542128230923095167409731487288390990467709378052043466125017974105273469752707824766611963052330003506505224220424412916782065790195222961301990151529128067035199658267662061047143432077835009993416946530908466363906555336458628860588782920947435363310274263407254345853483009770004405550791707049157973033051037013376096693330527705447320541377358849069241019335423941137890588463310018940421294298885637874308809651540843594762135100205841579464821643021096166987465867931649924963036936754704315773402897482645650025573055888411638058736466076390530706670659705827794598965057541544394904299834220351780293790864778532675750210146561650776273639632695566547824987087161863334135467258634441684320112555001335586418696025987110629111859139579467870283530326701037156915911031549053181093428811003722420560027786310136153980808224840302220522489138441871018984018404335675871900505498830766817528806278084229407742760299840424080119705618381977607437200022210892078992759904436741108026382265746181301286609244062647633925512824673462728116364586642279362323868200973091901157524494947533520489998498490875682094492297456383792429570441966427467753406890104233923183450359374563503485301872924590206156605918164058160029285909202225905848920807993929369321874549282980586225722744178224675366372209569223058717365864514488391215618664504415521156577017572503605443224871931830026326078298077482723928725917742056838230637938349837678026486823792812114683300232429467644713790160018283054567037189989149786161373137284221876900880429006372633051715825639222815305368713493563960098867118338043074911750430465790137697790910669762716318242818847780973879444949983455248868360958122043736650298817521015793595906295227175230569491054894591217231276539145154842863760806836369637598255905337542257626273864823371320135443927737074800964227707471890932145922958458468622062552645393305648722817325518322972876748486955854989394430020852609155959608897621877541270036752988275436439536545803368124849957461973912688196342884999307975482442968402216692764627103197762718407105584714624584415895702080041882155698472007348547472158577888699769015253513351851866617756941815978406377694803850958934069618598120546503647930301732754023259062236671518550971491153343194465225405281954933392731141796969716085558036213630094838707819375416602059590267717837769974823730564560403383953560999680511340514481685774889972001047110447633076597590300955511044187332665543576830622767886820153714933259642501188471483881059140153671150675038161457826821495364546112810750194185728787471861272548772591143427372073909314221525590165934168667895197040633323689350728222785626502687557030281393491215268345965815170259869751354813454213783175339031038237034462017237711046036693751380518078465638378927160503305675948443135614955673671139600814650525942900303291808180724135368560204636810470690193431645165913072905832368937319534659994946225158504052420213765318696057970262584996764834531684954184692573890013892883206807157411489040372619186408199557927634570499499115795507585260582380590873300969573693002370848292004650656822821351431100098599065845362678659700440123602281139504909417465687238095027622997586211268639828403085259496573417131561265561720025774177004219283234014033346848622333732706716330240486842751361029851415965222078240310108975829658356397714839996642163604323268897132868824202026840521839988140926356087318560501645054034554474010298143037476636539828420404504266257051040245764890822000577458913834503806221429810591315259113343450858956965093075392289385506940880152751751250043861183690374634496191321681368464655556800626371730114130032550725817583234016572123593518135513797512912219611456368680526441220199921152310193343732296034227910956688381734151911819740311415326981728641903403733310958540482828889561479405645491171092706854980460859120711381104854730908201419178118818518335297582854065175424895919940136445145993000668302188137074466939871192837175138880796897975626465378359954117157322228357440546502310130154143927562873856323065398284022827429106317995055319526893475393616549950484870186651161837404662477757522718339743950628879735894249455623041076942488997191801701912222846587764375938005241879117037486536128829115953602617620517842446862922993461164255396635329360745359965033556828690913818280298902486133567814691043332657638413667985586671978571116357036827939490255753982538145996839854287485985873070152570724551581358385802100691304736580564200730337627031431576154134286706382198669172749128710997914859076327341914879059802027540648047953397943731940733546021080242190726174461272922335513486391168176274334521063418923214784373912788992729930418818561710002119661415546013971192463793786267996882786960332275724105802609761396036665021282030070643477586581355241445421409264275159906827643764506675643577969362372550648709050613031341279296892647568200723354291409235003742992095822973059860621433498328478624021815032571739779045699174543567154722420570223346472676651256835740741577573184168716589995876664951230264319214649528309465153549409970862145378995690721375157645126135894187130596600663976686165267591248148854685902073181646971687545003585381968131901096353433134893873103962174166972700024257881758731215705753893624941263715350958361950238476002427359464954151098369457677669616216009983166739274762653768294325799151816785416393721834054413626479555315051627623671097443729732770312938170103636547148174925238750028113403522807925418602557715551945450617571964780465917546635631360065555115677282680499441179011245192577726457580441965662171728843102682877874784286397005037151764607602318655099879476844774072775684293331568900704910168536780236368933684257303760545817290466758887907634652062229281548281137523497853053605430587379185368336841008394510004860249237713898992294415072674341021718469072365210756274856084594040482274114103006558898901131493837016803522198307467872349770534041559191399593487399677067357102639544402022751379263040286311395717271902156624064163179078617232672810814229075066037090474316046662567611424130525184075771177209947092224587213842737060856490676370566050625529503542474303074765345961191365232792940802734763016775771548294901935734435474713928298321322784476232031817344620298098409821111739019855608148557804175004595648437320391994915778662588978125522773173663287202063835656867710175640808857147618527665225939927552806030729684152620557296177118484102307051041602135740204353903681741379690861564187180443732479326508694463454707465830920774966604974562153893147004372045159985426261011212543956554010111605969839446638869516397013003299902431312894817250016789869829707576201105698926831497738843185770543406937019026943680093342954684234460279196770898156715216605737461148243112890122627576188328088738008075689096487597551246286339483292525214942314235990963503017759171079799369679952994085743510827118697475287567733034317441844368313596757112552374790710793670031593515022241690611351134947523568406851179834370110614692805691468296304600094592757229681349084001958104124533510061032460801806408980176810654102215181083618762711319371146363405436308631981332035597391618365482271506779345791444041292027890988102732270253554151301521898901931915657321912667157163979161762464686348059254431630360923654119237767653765089225284265113659643415151317533820610212919468807425926978297595543088761240651475353416951316419494309672635637317382838856922631251891445407361314478092871879865246396273080282753209511237784915453511401636346627535926856767707609262991518545097398841894652547829978594582474153556116515776921377183194095547785123257522665354247170815447655853326876907192884353701705644819959709959657716722631952813444365543589962447638593537560024811468204521100144402676613231377671548374772140320804960040292272638198289444122061530138796202436660142676912551043444550142401382457432689804078184911177435300563834840218664971476339425406747837632774284341619965451913827898076197815194327754928407585355707771515391075347002678896147816061581943973139337947081165616385581602257203936739095997267074462986559106961614110524452797001176493689132683379329422542060803374801717362244572107322230025049284644507515099173465527721796874403161510988071251282599483041280636222119270486930533165779545855286007405243280484454116047288984258204383629101558958487791024358339966621780627990113760057900876961359177917158801141480871458119541323064162258561392292098111923678650044273795952346120028278978707875176216962276152285749523722084424581746833895890624967311175938492605591053497983820970001569553721366981645106377449272092816625632848213450864842176733660931980987278583101333796626891914016959996580904618518598697381877148383430089489299678954369746613741247665471358868054230176647033316895297195854765252369583695155689560414768367140890688034091464612936066054691520466059500841445407858382237781043014450757776282330406274751866620492528578845348421673997811353636770431360729503664918014200939767412542853254725655874353845634539073623236747048445398747202895309020721141942068600032669870903167351730400668620668044933274347213713611303598670371664138443931956276635666835235204957446698488979748190670574969881202624639773612330116318948923800605904442290835325775296897998224422444924963160932915998651993999078282067798743952832695738730836340210275151371580493537121883315631204640471228483796461944399593193711895446829168323032377390131504515552402448314026542007869153603672976653157300793250541198464809526726086145741946432312357671631810577419264670936684993514405929058974317026990780694692889886349414923160001604741378774836871365583363798584549310827099711600652218392867896536750820835888128837961646537434303269755006965029383384169682657497609259898658024345668889008767166373841160993555447975766371477937325438551735850283564593000358724219660730068004070632920939161440702635166673445593239567248525233157270774270947432066841432855667210643368817476724657789754115710925896141922704966093057258983822265054101035286422553653905546229817999326928415727889229435552719667672694632888972904530348703327672177761500226520055032290551946932211912240172166334066278188528875623351412970761278014817890024577084033528210040870520446048059897885575788594661213638060567755709387453669448926676420922336085819890044211002449497754430352565614252360448345388734746092170430755674931985275728368592979513077895423158775556209834697746842232810093857717246527963665458399276028053090102920328409536433422747501597309511524137863841599963907195682151721428968155977455814980137540924674056401099309736690314374024524183741141460540916144586790236242456123025789188468654293333411306262408469632080585186315204653529240971627347137624161018087393400671734785778080143105095499336661401933755749187361007492510733640814143873486797567225100644468559622633206105652378533274314332749272091841188656789825146589426450181770063903747549552720604670959729131369317758012991683356856735922984599781548239161177624895985121036351768161896219136793740864571321828619329307659551295648268115344418109157151770522838177414926963368453878457171767636726214914482658278226909178189149506752264671731191820886208756019857589776450893167523762698312447636671378303570555866026886060442130245681334046493457891981235324433524629703331486362686939738571300296954999006338074682833285155883249692399270769713757219919761435083781819518686721265937442281838856772872751297278792301984561802216937970174946294798785200737908863709144820232099657281291625724176094376390875740871594694827119909869523395310691353528008035602462139243739092693535284824072931545035950797339726338998854199678399023796843931689830340054871818035092723308210426743609442268168619553976006610127521371699707290619481241654119826314946950970723094573006398369574721835158286831365665348756631566211552355715865263589603152962453749249293740184209998453203715636645454539354859269719242271561570759638980246765810474982744472781997217552822049356348535525259635010673513384814879907238872908734142567775933027956248017290578466344845279838832223737266509576869737413693871959324331376031661980688482561903951738764867835261149000172439919869063233132520642401550152503122182802591184176791120104063014932318478561965016917141800626038559576592614623837945025167256360267303200085394145697773647280502919398881079088590808986867894738506689103864114593236263292335529266839050512935158525959371799444181733690382817648542015015303755004788222439673227793043898551437924979142243835771468584134879251710541446435654160344439171772369117646025076322332049411251863989833906431751708503503151636283090115975663019498748697104802567150965186619514795992448001684786026204330432961061357271230636653247311687868765971623116550463234418783402632622522875222945149627767516751084732817505215959987009731716556253591380616806959348555854507481165645953959953608519052784341387098277018567526911700472631608883775401543527794267460408616451306257757465759887132901679341465243477899649185919582034101291847633531040822290037157478392916257414089780471440959678390346215756946491372460477986017672601594128915648096319117108675469679952593691513277040940902170955028686120072779892095468545551540002412134552494607724297996632384415823909935406030045077418923210298344542064395911357618368889562909513899211054539450818568419266105111870045709179286747296740217170066658053099090833589370402013435799947967158239194634000399390933020337160371044809391519095695053191651529112316380512114204601083370884287965817207450965332105900703572060374706080435258314562864231838557661210991965771066296449966483733264550628555154240393260181090877914490925778459161183689009310135421740018391574533537272399585708913755429637838071002376198709341027214204576103221153994841302838600063308201804148768974821346653594545949954659726752929808037592980968735615811469304610176697138211387241017299882304488979246515928158970435219723066289241560671834808811719355849916117143928583144976934880627105103586166605119731705587195367222469788561590310206376414157506233801555377599012855724738476446433710263495958734439889855827920602220631000080502088464286738780947544954872250121380965952663953856359661709664693349671063984238173810097225134879405568048707122569480861294474400176038730478975789013405175322816308519879330358755927203409427236276113504523266228131361631098688504040248201509239760024105600578894421486437998048045133241437616580046758285268790908065695810335893225662044421709563317315391734378022297845329951821736032917608779555922197096515669486731080728276051396569262934504587462908519307179913439575818991106008173305399526940637007123959563871250777443100716979447988856472212271992200181279008046385913687489189968581338226704517840351572550308659997921012839172911730018513397013772992919337059942107125240807680250206720216839805922224187638508766645577486433454198624894152204530643303725106673045646200692533922344818058632251469835673564144691517269759059654490711546620317103583908634599805216212437454848846231590910735272400133111862198167852465865774473438931520177038169949552215864680458002600928733940745027160077651779929871528404489662784115276667832679435506036214651816996949528493746710180957613881545292827395661944469379713801481028633002292228588237967801034959460915010480899383705043898057400306858570159395013339072686977025404177779519678532093793002689299903004484630749462514052591160635389357278409996950376514095762156971085973576760590884542637726676745204204504789360558146878315855395067964966767106846181237133540616466733632182455355793635098927254110257691748625574964762975595478424889246290806785857393300407200346685750858034392956987055669421345839451248148219961200796680374121300884794200184937674753223940632009556137853381313375777276441073484082274613439453241780246947939319955760963256262611844448291280046635729550741300301315953713997905330332049255023648134391819902905595731105835022937089549726198524141111281885805541084932937250841805069063121725894829073358938719928135931251874075241597490234134158665176366645876973082524287919826102573086330749939984825555841446505635790940564721046484635312604362448862687217458515224614285924009367703535636561251119419201750327714797589458335388167778278964212061147689315201554018700569649320752640028530913096373028366122477585232518523168747486975682617898112911822286601074609414735537516040035865353994616183779174108105819390676720977622956459987274868682352840506375558149758521444631714164249801140155387571606917757375044045210275328331936533883679754761207535063273045368354066396470295424901657624782086708567815418550194638828293008397363056270600222952515679752630943859757580017669912012760017059129321146879675870075179400738094229597152277450742707578026100350311424711532517092758613390560161174746498733875032551515745108834299799089543325776652194713536972761305543903536224414807898347961898404973209159302462044339905231519814683531169040407746952108992545637919439283879203243951764845716740665665090740755479669938440472779280225192133213727285435291348082720139441575401675149879179585596776086154455212980602078038260796815141416370443011572553302651295537406119994257472306216006865826385323091274801748027373613426471895227268181003363523275538895737473854264400920838111692098723550815871796541302816667439730981007825907537465902025221613174652445203239758425160569918264640095080730719727115533829983460906976935872666366431459880114890065751186832863849722183548895476784062921370696386578308612719508082922105297004535720107774252122793903056934935103372388084649871922836071400803688053556158555693852242675110143265133801155444465157471636553672980660833315251179329170658466882501017466771461035719557433026928863637932849741795030729097107427831348874455625856201766124493520482312737209331034628154502597695457399233398763913019176779428451342592585222680067180150762106233816661134740418561358057399065251737963697741707067240415314324151616405173644641004863588029792516418963955413659707580375323676295491154297656504070703797059332504105259576234152784772350810968956719067365025025205648715328737069345682967104915255200924095485923329883513228826825133912494799322231390332813038742143774120468404597076319079894872326095816429901857628759273047343367599671439545813106988127840511636520841709447540122981360485392597303740505000216284321209511967187615439802875144011985477179587388258486916950924974707745834384091904311814688624038862554904004084103109319950761803426281863504557954012843424729371517352836136512264982943152338211853943214471483450474735966021394274839533719631808795423582179487773251790992598334267748581054270089869702986060139477881417451165778848398077009435850887614006811811316660234242661989666281087798570656385829832449201313223537498016571721893198399944928314050126219344488761878501241879324441139416846188202755893218234323782274554216455400340895020579244767609004090928344802319461845347115434035971827938915409824098761574256270066710452230177872128532843031707559023205046288024574032895249726374396033369561178753292490322386304384992770656795570122956568485338844475031298143896636345998524039052017064744222847307981679286717104034687693283542656395989063301872691701078039918862317510685821515053751932015799182969175383889065882451785416666214039911642151514398481136858538119173213438633221643354954761867774444592501237292847016769255115678725657201424619160882657109163644515838470351779916309515172821038227499175545478780313757067404935312118857803468397839973177360391026042789463750880690937562866433172649576040667703863043979044707770526537878684356676059544490113549649749855074889920963706587103327754799116771452358132496402774734571582528477626684329627344239746448327281537547668950547205128604526477222802685498920780150306008421680956787056382825401139381709061203328004534319446242328942307720679038808652568440545948520032523244366072134624174447647887328188179007456134221245951647833801307569286087787713477535739579161141465659134883966102565862953063895347403932234279279099357320364495295543822842332964904397536768731523239890501292781666852833632463819714385592093139491874587513465796778658008819460456946124878984497344464021255584597648775616864647086495210813102021244073866611246825519618370653863961852934813408855591959513605587183125126941798146830878336896583968847731340719995797493874335610495036903336066495735648239560973260596831969033466874134453060067777359364122422573360829754666098449021939595108099639577358957977421801422745921097673647726228005953326962429429915234180127562268874595152151493544722392395561706879130075211435283198712333051115996199427848856230948133232470313137174775361894370084369302455054802882208909010316048880196963119720287463899543858200296686811568748389714966692158725190598020366101969471566341731429135631728905691956558062236707681486065828869090253117782054992311731312061727629065396165073362977838512869076402933158311351167045843370754965139953324344471562311504651303110783708526573592228355820984803173205560692064155806022353941947835801418311185591194229909145623972270493708247193846403325920900945587658218956580083602933961239228309491530439281083123413141187301077398158175495273253700905250232794121431196515030658749121547468301058536804782251557880793781532564975270845957670262060518596258016658289479807867500731283451724748056155483175656503379376560026060522012644037817481075912362384286601358179914762032988439386068571561409386199330633720662845435267496796827774815196337391764331379593535671331883842776929272087948148557823788187047536367505854793902731196716774121307490433777455950916331496382977402779086975217602243428413757843092246167049107473392721154213423822806441547184344129496340349642274815297946299753754861120291005243533800621363583475231972347428392793019253552879624764658828536084666827918931051406761796935363241715783752408367270569895263085120860803707006956159547315093578144032316118749849750495032258387565978687206863358450134799671258271531989766807828357916024325712638843628374562128962641447686947031002069928038754276231953068044333426568228710957920579477121417314783811046378872551987796570447388399954582652021546060094468194821297408250854454617682501024240320929210538223615009124531104618030993157537595281454650599360587129062184263900940648951877096119856708303413951699291908675563576271064099277986317100718169481763557018283050833934470546480628859541328296803455043090616770637812396935781086803507150779543098703091843559857308301468731374653646994853170094548721904240598487767289651315851189046193080242160872604533308827318673443327560517639912865820312155280376091646439744560835366069840378864732028905218321473168313345547601939944527253243025837227602031920095998316300281898632293219617203193414156856812232558980503125869966164637208168641217619333313904938851951511342732997265817802103573947163673545200560144650384139387438657673296226237565590099669969610083959779773152046792574198023283369824061895141294583874139686663236541026847576151456729083999470804309481216351617362076754852539484062436543698227992204192167316881907645989028414758088983939842260025402140652490781882864353469922378885056670839125267841522503607784095695468297996832740860466286482332869365380292274186624612835337643296710955878977409079582410951656701131968422583979057538214901050327542466932023523798380947735079858648844687395418703088508999241855869907636617670509700103230418316822004454913727269931266760665946419784264300377638218224393825232978339527026552937207603752780705322079930843882317616842237814233200376346033014757434333074559878091549684337512039646665251721147892885338991095994263973441548815469392718382427177820369995877683161590934255345514573103542585593739182889417895374531071933451421464746912048330708620852373535143776811227509909580630258385603888797098704777167041383183992045853818317449429916023010140515325800151643767724618121142130051764447824185099167324528403213335029119547451158056907891439784600748489238655056761191130278258666652369847887754405557319943264359802188644466691966498445978338463605319970077272022838634541695809226010413212494489929896379687424106090041491737988856074539992889265478689174516169217632216888765437174307076314968420324876886430632728820529600066843962081597512986412742866960558988349849757329788214678062670024509862900505850755546497044546052168129003582640805035791329295364174186474322724731555524282275665244491100272294264220267309640675006907960865512687464978501647202870190049507896267363518895298331004885519092017703592222915073063062606097169797083267590109535660228978565839635249494413206394456201344379277487835049787328515388873594710732260146655065312114174296496919635927367965141337363717581663243968731577476224486448978690347641158961704814096159425824667679439599222106307523336587672447892666704503694840199056137245394219520117329664676790463022655648642466605349037465241934118484617738000774531029438197702084371136864732118904504135173303803626642736313606656193658691667441206334131461855775060355775548907520212199564586554186661438500419867181382380593605464555141807319748552650160779692538335575527363046045428541100684537110219929007325191386713310738885778450758090162612887821776379565584545931399906382850995834970297374780689557836468076719390273160207456381411051200890181955107999334844363491596008634129529597947118485721571214243945094063493370646105759090422979214609321192989204126614286930905667633025187694554595360964791016772769078873954395558529611884434373775390682516710873162106821148147549440424070199383224716332626650376522915420748801580626085019775439131246853686048746437648632060396581883021059153972947034456927343494055006501230888773043716393149669626697087066421066248563216415795497922499810408332397989606335769848443055829016461137487828371512450150653327460522397321890336181193915138348160367324110365951645234593437961136387378356921980654964740344731726179723150317460689156728912716902643419125711778526160524969789731822161376330196711447942934673515875393283811508123145375607754408569493316234808256574671905019857795421648871133392678645658415716532670398506312796135743578594670369384061270036836050280431382983846353862817135445960401110602461297755135163500323531539243855867790498073169451062985460097351238093664251899169358255057219405070946341701644828206132307752431408863158314423473161691778708052349274424695821814162224063960263311373089609118958056675689445699968220880194331335395501721922467437049119476009850285732525567044429401463755686892207839038078079208779911305745388662000107357847111528317195590223913690710748859295207008195109317929811728387711997430472380446027693357314015727906219079782231468510267375189994616977275262058080214325921812113028452510142520737277570780192598380742514675833881397772971520193789433069975324850147665589591067382173081155892472306865340360589473231301294280419177063798565315191453466484596395325122777083222462716592623248072730336686402290209184935903096875789012378294315778646264421960762796720551290414096147414520199868011265016521104535213276376070380876759396937844786313138581815817840576156610867231530694321960872950192718123668770821819361221896776263788810863680065282554808723575685043737166929056194801542744229784116389623395620163464140614194741624102771374058488917529562560155924348005020945775455202609147506172521210372259700708032672068591879393132142476135936884482030241209298331519847962040130718405917408843956577490301860796597381202646026867162185390336282649562825544947873382559406052038217415293482857111634114212862053760105841590321346229209075409686870970511165686702316887017103949268805078548243402041255163488668772371590564845589498635672118198211972907424147705766514869551040924331829180291813201686750934251609199279000868028438992354057384430665046319447988582154724602131785237488625909294762532259864669443722700425984701253162026058732374637928212261348612793411964790978169641047230736469323459575821079540620901173338420227119328242182793979973541969600976452930055549291425686734254358172551322057259862506028182347884236371687721364314929335633630553905520574120209288732412276147583106313340195878979542094163695194628405762833719795666707660476547079895073865550721254206939655988701431589810115805685660660645718672316951800902906421322877004885814387823529033712385272893251139348459465113919528593132520436972672542792590235435010372096222397370731973603185913442684589472445241983718185623389581427224613264046453048436863187327012612634173232085026067963867016892875324953385136547417109091284480551279931512369026742853680350584662694801397723827785621815941877340787668412789471578046961155079603368048079577677843480350096997808226238253952914668681792795880517671810276673878532063852172819711344977225996731223888678844697966326087389923015185978039463093131316107828517463634825926242011129799230635388840105429191830643000294896462030705034098851286017511371317490349882574804250042785797006994265985258975997761073471698457303053705167898875056257421143828027864765442867954541998657342302939744715176247209207663349013327825094016903874220454625916629024136062675348547477208164884227296749923117234287041253342861666878346929498507503311737978353310041824803487508523736342701129760745205344153368461604610491965880005306290343928790018800438090009484681678605233238029276199852252797817563350980090808395158163020716092908766017266780650040416500042970658182792190576463082422516840134900148658275449707378333548914600301189520492112440166743342819169507367485934754883222864668645805807402323204686883810549489676374627291809029360668524161218476551096317126056921920207569619314325691568097156116981261681887117470181837089124218612354818071197381096956982036920429237257467066883291464629655506828914593116451099948034044685188992820533941120643563351959835629138603797436801580032669324936425338359564586167245914880374748392817100809580111918083353138235785399131677518844075525854306039398968537888742964951909965526637538124799523533608278536267867025480424651302797588853992726680477502706716979193498420240518885658168837842907923852266025883201816962793734492353942671000176929493283433672484980409387456378265313881709112234851699790069653705232878404487726143178140621113020778180671552500132883088593425700467247503110667047361376553146657360008584505113492848198591655425232188862225838519868776020696521702884392793167410755301416082671829885119030806592212391127573253571273739741459764374156726054071663938110506881794367919677275574909699634391733459614108201898904076825303650642829347733319774219033229311634616701696357234269557212148554803830136474015585908546458098015485468525007369269950932031124891134264538579915011372258854904440338239152202282022692655431994367478790971994656754107737731362556159230034809324735865049946420690393926303163542809458657765682171500391718132666620614935262008933739016185253475632410107895451200061549257831851894624709277517908691237837363988699977563194739943558313415325412277332233844377079688276789054085986405999462981821782684476159604617235474765045027292171452441140283566377687099182358053586304242319326196026728882652665133789359954701293779778120306343874813056383263657545302522243621223389111084994466167392933672557777244576377907509580619882985657952414125820300438514146832069951672530108556691526785167280074118866619432234627850438477993417172276641682204370879774956647296399360068787795524712637315296324105662287725670940108713339169273830461186497473523601196938590728499636711645593145135306878362772584125292519501514742189451039323888785623927759742935357657658443426373784772529574019772453734786508837083238171727963782689415067284219383745980884500330410682669923836340187060781830026525781082057518670849126391738802912867836340289402538013621714145728446620539140617671479959271027473851028033437616195282341655598619095298250751719154974733035198922121564606057199898713554423426370563868332312657340380763855684679978642255761815840896351437178801870803383889847498992292610262419547839417850852827004701211035670520271456533481581732009355132198324346303800116924468428669180636945904686906571391242453391994509279810769330335551396140046307619628651741862269031841292494099073246761139953911579819242072269894155781853341550018703943905212916865941475387427498853604703215044131557029130784717281961463695645347853210033755678755634349458605986783547439484131352950985714670057743264421751681469917210372047399106967359146957609602690023028995176967218055464966037548612560967547872787107038841767673296424706682710917691271571534576792173206485814656034817227029679276308188444275378430583084055064662675536817312900894931869346813817764397064645583767437729631068487535372450353543262691610124873082000181185687364084639428206382524692588618921895438537688140859635447561764388093513426034514974777679725669839690075308222523147628301067569161593714927564327029459864093425289057091456735130810431057488294345370471374230525760064877163477238667537384377417114175293234080871997089087200617431148865774053368887566765922104548077933964385043427763621672552777791197746841231962650839833962101238548779210933503991324594526717758486685713337758049673626100585577464729714174181831954094010762207518696284077593760126551551677366455537671135574851724342148295553649437672974370047825078164620955447575822967296498465906914298168526359714948317380484173239414610935866677471684782334095079815315593837933819638255156321184254588896541323984449172335457936857043257196201271624237721905112034301275082377741621787039286843694035150058992273299681008005420444410319228383668957845453959458696579207531640634844256435021458700421766282884705416244222635875680073305152686019143482071275230126437455824371292568184553007554028849056398784861047617275749517617800758003301666498884742168700343699646233379177858467790670430298057673471791768790006881808552797488491174368573686658292027713606001262067153765791722514638570330910086638083062149682626707714875644423518588880755298713089348961639117055894069339931108126259495304326273825087392908187652957716571959450178689474176697195167738363401094036048811413071256217068555513394753991197568048979862815747344250163110205715412649347072785183331577208777082702021200296524507120117532501027636398810085922068046345413883689971045187168869934277922833004116689921694228049086970710755259316217544926677817098713195634731082734935113508328703338056660090767000467614074927348735459029194079486518625463899023798630159778904779289043054082310801840584117251426464995391108219906082516537294304696652561730496733363444518929182088340657710216948436979431744365072587745304937220836223204144949865102538785032301352236185039474582792443773197852525522292862396819641057991867257662956556053558781754613591580360806373525154639135871510185469079380601004086984083149715523734601269042682693497039727324057551305809906115650761746207300482383281886398942246569196060119973398818707341710908966277118807979437866587433923816227042364868847384170857570650655424211973989075174966314473870408319344006257206574227209479744177812667413497505918618236749445635259582809956436104921509214413479398032677744176046634367445659970758569816184464084269257941500945965152009755196478840298300933478399823075039828688617159401478749486970798052918110729225276606215468708971001835091899184427906781452836778500702187995260901312907377601307544136335553949751012339354373305077870234011577932567214706630342466098827557953893540763768555362909454354005621633836903818415459247399044795648416805696087184585466344318214268879356286063876142254056872626421699725373650011847101189781077388968308413801847985687975892727998372138029442415444811880815160153030063990238879792079532505354544296815790589328529504593214845986932715663425395751052450444176339619580714350519769352043807644151517336732042518972567839150695955485177276842258657605193880896353235842162159525944358486945644413483737621000585225397295825448866577328697527108497412863349099458994321970151320813259957564953250303213611350653675104557496429116421050980340580985672719294688071213227261097376620666237006346837420999630057732377972147456625323219326303441931276904097274905434787236092984250361100463195949093008031469431916599251553221428497319604605549530884240338461670665963518104722867226317650761144389750186987343806004640670279029256751279469585981705084313519893825806998345413569826559672393234297354400195470809022628875971983694185517420475898967365645583520273490276576095158986215124632768849992626922982425355676524577101853287245663826850991820761788943424464126891476049315787288107704243123560529332648107262058128978050217213944906224675379877724744202356308449489403200801121400348869170021091784922316340953871761103887633340925392616237579761150337523422620031805780259581042400443794689301994678193781695931374815561199657234727426161363310386000623203822329466407737657053330948445364215664710998653025487305025793818569635723646947722479906005660571833343816291240859991123639153143687877213503570402448225720735779005710268217984119732868044484103192222852790599871031139591253213249380563500644449237726095403599019477290712538314768164700744981213380785190985834364428436057570701045366374341320275709787745493283518869900955461381361891367020506261606431079198820872429156262428157023352978252961093340947382202038139327433229796313008370831501356336301005912067589296717249788406502833538378881712608288348255479664829855700116162481697787527878469969686630931869130537355496246116642926996452233727565165556023760545574003081890602310041710258758274904906717022284310008833218994429628185884250136664402875464275882834998376931930918167940253007724668732718943307235640164712482175848523402146773842660031747277723650018764319632656740010600739852692480715133100331686574357940532412070150127305705502221018121196728569306416107005494569613978169250312334653259717797945426936563736818910499430690987206886409078587543857828671820600393059350313401665164697291191830866925726539736570945517141765080814519822717803316030091147503603984955707686487467941962666310250229021226005908671519169554958038269837453878191854881269765808238663155840566107506513680081255751473205978218634411208315798833976228151089019832696688861931936989465294246930226166441346365775624086096434740421993986223203302530999118028154222197671849973664226551045988276276577884550847394304770969169136834723577217769327421259222923442017801520556283428947375880950824270301731177231138927561177892311341765348460497279462494476375596454896667961364817909049841412914075602807528003010471828142102141005004653831252469438494189298080184235375331159697930014883738571018620455712270512557347978403612546323173942860196031555959729829697601781852811148922690699522968586638986169495914752381250987363299271591266484130231539239935429512771204156853947294890690570925791252029122114487598302281096271797271313138437309684717808606833552203421514630975061709804660239771488131358325159237195636855720278026950292341046801766749528052573815419159951247875047584298761061233610580995757433913491139034446529656897872990859569539140985753018504947968908511831713283838970890560957125665631834399304283564335291374084553784307978366255163590588995122979830150037316031738081889557362310277863120929337757819715439450085745936449342803204888371443722840591412379184107863715233323204072624522393454513423412595602039138990491443966554781589809432463421872634635069100319519077128499285622611753226727101236326668229884293143631298728703062860191932955271590043588722025931687214175807238668864787860605681398669141499780335002334930588741911740435593147560592088552853001878451935872058864342312650837587700724546329096213355544440297054756659226561094774115838112064074197294767161291183172219333766835972688469342904722882223315959057588830160353830894059783608718221234623804836097527599922920167552399941868158081415687299131427384629892953826470408597625920509653099907646929821971116832563681221955849813931819041882483705260368071336510308267263643806202293545036108822945180588791467888944836665576375711223580430493743674782297818234985298308468414081895672979681576609693957666319487178310735820170233138555139869551659571079733760179872313828214131052856467587541733096906672503123254205403082680650453103052491164369256671410384711338874283206642969611606855588000800734768712171555560235268271321452584631301819054626962066756696744119208831124230533352594217849492163506607559592732959220353405418602212628700710904760112744285038419415698272990565934026632196515934716775493617570829119126205665350522622102070652951433077975083146317321323409522476168698522559895115302258311416787088372907268830619712807239895385337825866928803613143608079976449060987741695786363329146081231834083304146931915365747976684058037189553382835497882487815869753075696505714090288724035952252922250515130098879601022775692110660703100244988081541754515707193323293101280563847949393118507536092486810738866472518239671680896686410647835543151269424641487413532229222484050527424342179171755045648509125584990500402575436719410780137154101336945873753884543855644526838776368381122127851048074778426322528610726791213796991427176012257358321587396293734126073852927409782042194134706620163029663250880707381666842513856888360297488564733610497221351928832355643184658633629351679224944129475249246803027875922402231281533219147980847210988024027710367149767229911802417704062816342009828977984849112766495877452290436456633797070826918786832992446090787923556283428060401462146603160281964323669045738724882703120296482229893009024501998815339583530172273536577366059867162196219131304418163954005122672510593319893960761617429564576598061946707490138396278681087094814104228518127677944470380308239900897709850935759041455385664656476537446678459587769262885173346560035246105939998262467513857963467881748335636841121220137470380161974943181630622439235640507473786363603174877102122872239215798457015278305264689411248843472032454190802200550747005293104637534352801057041011961473546110907613404156115781872731185050700804819828750767245083508944493591711263543169672054013457434062111832752730615334223319883757088772038074533093430147858161713370621545162240205408067116809616451667816087138916445158481708775994045329742185399219798213645770151504804941767362196156741699266883100907583007679980111396249646010093649451826535560776283375442438572353556899098081295627094454121156913378467926216726363219481966102136729114070740903146251078503531448223177244668773981908556495378685224053712184482502748065188292359321423551963619229438896690530035540818828028136930521838340128420870949947924164291014455498936345741424843488389393049348672533529365125243909145533564306807681942421722200332521828596010152025782040937163907369136896832032350259298662695475301721094772894194907821862434192158899650879611145623139841531796525741486233874074850356777066237607444907046842661994442991843861412091071086821641358043574593126930033541213687943179335015775128368346214486976559122567202300913494464615432551589190397490515788254921891010640370878511899959746062668476788248546030417514337375677612549586071377038643878873869585552002121962073371521079669199057309629652352450400338537311245009223876419433089515301004774869146223813770111213965783694675801073281097212745992162086975759277300203446755850834783279230550727574668813670900500037518132621204800825909672736938599774423534798405140156261032717166314585690826663531558824695400649951758865962488032035642797624590991019400200406946457085359628988712614724133781487527881688409018828660281412690028343529375283255346413844219051625195428472639813040403524510175805894365430234002978004931315011941537185161316858142721149779391646817066518288010818290818633164993941385365103170000286957790922610110677385140289662462592247779740365191882147368101449353034682066499143490621793542940295741634234282139967717235111802724922156413726612402406507494036778341481717334023510567452857366918983642153397880815834114505456041730138883270368725240575846751638217385735827461881627662243829211340453563645438443989625915374657894035249833298028325549825687734925932666801533745118170690825966759830696651943947053974323750821230367480260739837399130526307056453916737818542140703912411084154467986267051359067953936772385139812274973652079643370052439069895156806505104602008776257070358682179288337059389366048101288460152787773269929987297240293207292113201453326028748775738310340172325573584160299580961043369231483506480512155345929005787217355498416273208668313497357605978536758849740449604880645916707986908769602625700284632563450583804772380061252753069940186601291409155918512873519371876028420834971193334387801345738475444124347052754637057715266814944509934649099733882847960232273817153208774756563656155506798574554472625493773009471991438597363890280469224297085620098470938832579692382500387853889419872286651599256191537296010802365852891944801581332188471308665147025901965260789362842429178332784553286821933842405259867167565033699445475897472383656920901409170774299168094293801608015389309056264370367503667128046879929265027087795464407788643337911238867027676093781005847196685234162136444527498593308554864114183821485951929159645165955820172009176412085223622336742136696605664377475832334060960590840238942823242017052461186784426114811690909977432561099350967326518025760766483253605233874195726734492553400139950445972680869549371928817708796427507668649624580329511300788987892651133278724058719740912816359611314411176841821054248860347676431966923495751846112525179432960082253904843378718700807671972231861281650150562462955454142841128664795983490679778201248467731119258058529462414354109447638876611416529845544887329627011542824651748576508159515834735948511009198640197090922824590312518456630732122540333966898186699432693119644799952561934865049660695534233580226775317113907145976043331674422721689851770983212234323737464992645846021341190241540209915456239063622664143665600797429885807993020331592441631918387558305102131217575311478182070415501363841093301004955550312209741881366644628653146588264621599818481137704101064021094438561529817793631111811030475081606209965273558124728881743018368599669936358725732339870889135446565782693028240695647488350122982782975265910449465996306117846859616743282926525988923240538376445182747693685287268416779008136928711312124964075039608272778232237197077100022245781344205120313890703435435036242696601207378118272482156873935839782107751940403359452836576460667419133788666909322351122023809705022199497413595358360871845318893939709657634800126735469013494071059576603293570234737105518595294555987682252781706475238411774180308329375362009208002946179354474125073787221070816640036769776133999083344321452166181177394572780978242719849516547018602526805480762570947139394698299045895924923737331661199947982963032066347686894601016997743171451934649878390320539634744701854847082139147748635389289198544800254269128059185135783231894432797543927961843517707741677576072191184432889295753756052917686265092516577845157780563657963917420429812098357072449054963060259622890038287962492096241402903453139495194852217728958265956319280939045068875151117116524032887715521708003066401950224078199782360265508510511714653914904202006874183001062943264875490696564360911447520298897119334738868457717173278298492488187275488662647368896516456966422844541910966011576082092646592454282320664581248932300326492660330575152356043410848159696469736663701616744633292078642969897892931771823896253435231450859080288853040907003996986200101192364021872246372706514631894552326086592180320812440848359402554056169833666997848509606632266556433846949064549992546847888521863771944583501215876618033724403556667731902164025807796848509565907580504579988664486194927383779042856762163080084810346442754517787880737775712856822404055818428470054615456817393849942306239880523355077217166063267130550673215494498783682782159830434439519440868134418346791105398760522179185307681540463431714215970454901469924426156604313040536370943157659095303824052753330462968775343333179856723530565838923746116012846910152999335388198284481127449020457243797319747422437018520719667495339402638991776998638028066464527635215914255370718713325360230080164888799569582101918360503195921331215274105612807211409655998627549146656811149917747394872125501578469791574329625444959833974899401776336283947591101860610925109413458049304391070062377988159257344310639519351842199644304017820491720332149029415840291332536837098086860530316885273291071593317543063271024911655906586655814989078580355876354130019106846719126872709727659788273800781449157852153831503710110904979366323521402316965571788743525566502108568486889569924927728133786293119825296869699007065247656806855782079525580825297186954382741484070331511696667583555463459023323512476729301849402415768386219978155025616952217366654535545846017340668838733447900059100931695208097222108060330843458337988033185465172257992723351250148287612154646130317138509669015907451371087980414693559948794066601168262070028150424873420612104705459372683775881793529578423450078892692104892419526351210748781881539805118801369119793059405676815553465209573137209569660358132523548148964644931774164025851375772933900481973016354892206812788567638860559500730113785247297965966760213302730150974797668423625160029166209292438094358612187732233942840148016594421587787248181289937212972060287772534619027226569043189737732179504264230511279488048194579515998656846733172993204665268851384606482850048987063882160379439568869608800424868446556495583150792652103170303485091740224692057344042859590563957881090337281315719959423621047509373272724774148496098897943502739509604431811527687388818800239907675024538529644163673152513159584796743431936873712163144645502464400501351985735037792167498967994876259100431599001352281960302193041415205413237629425837369507632747152626929652866905679738746163319821344184243074997171069971581948283943075446962291220005937836459374428862915335558160065449092873245016079815037986532861221985736279928765169569706304827472027518610376283897811226862876300737578233047606939442256545731832339331289939187511488383296433559608096919313175881011929636175370139778621652837469723150960687288681232167436403487700643163764464087259382922802440343265685504354654738140691622505869448177964009617136441918800931623726210645980913241496643726949563999954600826295669078663159957139028559022563975096656778412746874938394022671634825551313953856157290320292493406125659901362481238858148954937379590221325836840130914346698065566215223083381952366125598788483018247976827930624721633010964085466191553740285821589040178109207443167825459424369607011130737499241604085750082204064074631556262285153384756908909661230712945005281509328544033807019741649361110894620688822685791956844527381451395914100051250435852972379267110973565285331571346660540112131715263850835420113678519943375563987542220555844619209694244178958966158444541280141903188070604741042124515075561334647228224314021710914772509368173274065854574153862175659704381544337592985877148047723332571248559072935169891894096758084106096648322011660117886021860497416787499151768349653614744154061388959342032715935803365837859899518411614579424999058581423818744147510570493900835381320686567800836339855855631544219882256116260618922319700261795420335972629679642623967640870120480584015928781871963485110544774937823457244181196136040404051618874882384651876707638042905898727041582906523015514393649056995684110660707914187294527929288364572056389292520316158325040507418312664080431190734155424197545437885192641318233950565158340203441520985152358612102065405127457244748308508477423728627967087424415704438135178437558215141136649645350174108674519834455637821622893589555627978034422427855250091159502873612489226718797308631446951985107541492786433199186835141868532018240211226716642751887927001118523334038410783842859074047851139567713531083074461762384755612601638912680371011601209971969557219201713516251080618137192799115078853744137616055467303046125775188435700898473636099434624262373269360240691209209117935400359703220223443103916641519069532095651435296381920313783336679010877079005199628224139056699789794560458626338748493435196216715649862306995508234151039892524056403076277896172114204972420553354700795604584249891409538771290344901416971589017776337937441577593771610158715317989268568928718270962338453036646343805065510673070283405390648868010409324472071201759114939205649916961140840631391671731866817213027453683015657132218047010381567255199481509500582198805478168218847265857352277335337329765611932681858767306966924558565244695526852735208148092279855407860851151683470850330392829481524259570781801328890375550665699126526923859182207166475210843764286036764220004161924059979992939173963766853589342757904034602915294052258406835307475776342936575972011539883136308716758568700581611425299405393457842354747027869736414008993370359925257145818121216112172209413114155878427895945048011562447558627183853638943785874194442733533845006955249724133823747593843437150878370736165022163691573562680179754952427876487744710330163030566269310066991229534874805492396727437831685420155378059897216311687772538952758404445216180239518045552141071075370715150510260876927207981501619721412435684543598271407589329629258922410595815247391512278822107968174088855876645283113465978060715504803459069424086286889786904216423785558399381184447215342963306194467992527141542505897311315745255625971004249653709454008063073088031421824985018024898894307744430405043100896733632452535632794819926589129604666082928194919931004735754570829779758676323854183936032234304936763993802479320767161103896649708550360489822752435823059908234506768898760029739985664210676414389190010523721105630187498147140887292693408471662984498752887731555580278972562660079337330318632844606195332391954783719466915266294108914764721976581519410418355891975528518119001800886161889017718291782731162473468849435185260401812215311594013857571517741009056265470494859880538833224055623814462765601368208535930678483540822974386621816271933873149390686004891221351654762744246973505314192079979146888152307656673756004603845288735928509368671926650511459194252965636059836646872709375685524491826630931857342571510377921115650583601031896068604542204371158820906634325493864967701281373594775431646385846940653177940080703607356423186805270270092409187410290854612503345148592956323623625648117882312363427489763905816472064556151886766249916971706624048431345827729993494051873931863514329563825685291545974719737653172828608417185508961097065757449031673509414661149814000743434716001928883521412604310795114938537301594196620501054928211733095439128905368773498120038869937385483409539660323416446277988247286783067553253662598929451408101670698494911436725494235154896429678337003057685521802929822809536073143047638620141348374345227691153741167482657057061715895660704221906435745590258707110671148158182291485704417502117383004795331699310902567335619989565315700951137389312559226278898380764319852419552042544186207321355545545689849432533786676174164846662068949258609531394064975015965681292876084592233533789057703609450991811049219429468808213130438811901909875013837145254726333031123943504792541855562970328405586582565476418059782037474948043257196077484848102905956746561885607459679097531413309599032606175873970285244523292405268833509680310578870306621543307472852937242417564885934532516002518820677074520401505228802876683277066192400290824799838643781864589065614540750173640469167508259058608987255600187944689688058965748983892629656217763857669838332364330566889365840454447565572030091003399102966702938450074032895614889150164160420291268013392333447322054860339074838182710931520593418597223487862133707380249215740631773433441798119271784584780657458711291050671464887072585519768954541245572969764544385697631248307604334322363733793608069437015783725505842483293706470102266108270693741386352174369676889668040062060291374561408900503286805655321631384777867624767477494622979736661712924153413606682572834677815338032061596073153719759431483151729409011991927771309921919872736866898259894392973784674669598811545356533936148968299407580442917744012092443177754427567783418182751668155030422217354766143182134922099782388417236915146471408773303843872482154671287247106026936648926500404641233306000596212348577311231548168619375037220687933973444146081939027737257650388381516973039001139740636565560311943022188398186629038575178779117006884276420616051496898261459071270868898972405007840391027935764853847139112182337100386458805191128684167689376391908583823448560788557154834217688187337891798717813988036518735995270347272267042742170586353405783067454219042928835338403251099748525780561132719931992375495015003025887108833481507229240275246148315875399142502454751307851421264233160057345145898507576912003702729549780635100487161828652599799869888122171556236169481971649501785364643998001279307312333476912933341929709673377035710066162959753170253158189998242547535503270393483002722103436292192103632396646090473946369371407822628753233355777252987971661104659051607166400203619948639838531514867139082225019037063599156114092535198281908714851809121605362823581631634661297629491714125115339220505248351127102619105788380083262424984858502428807791243507775444763291587094670234932758032793033532994014094444199860619936930211891798930204603433687394487070283859461156510161994209978072436999895276800313437478934438406925475517460618406318733843015675655089502011425323914982376258589826980580495947538739827871523026077559353012013512009846637498326746885024200811287869843246322888140210511666806039561369276245548695385197727484353637616396510650966816474214752491822750167351487874960564200161560085977492799198013996503009158709337414007545263202052780362154317655876198184753124624074014006069040910335463235163760800726833357234845990432547237864682202252698518786889186936394467833871630622715434531855574957120979180322214506729833619457819227911425673077832199695561476240516072736425279027179371438588131406242836956576841294057447148725292706744175259880288135830119985021806940878710785612425483025536437517596878754154243388803946828983428072742748968687989979731800925369295760695244033235383993742175847056980772477299985198066241711350773518272779505690792362837077537330025700739683566232259362603588881432331636196925968001457693702834202254358808698542170790625516141759427522896366301919481263923963921689786281459418941138424909625022382548028381980776803508747067271766053374468870870786684568264922882733060754257216098026581415560184044360889330104596869192054263674156918790929386948971139316691043663980129904885970873281822925473178299481683527656970181475199005029994847862252032309737221312353324304952727323465476260353925348954673477030372354202313292061752111152673428459905240923163998934408090681968985248960608143182688851629283082929868331676881153246899715330963639261404614055622111904671305298955202462766596780872066108376568762234628800931197736395302028777805377397398350022835180409093671838185609736163000179757966665210893308208019377263339499532242583634932702353546239968739812012089964288351936566778837672329356662002347525229294411754138832869210669746378104599784212551318909806411166684606814917209075954691657602500426580661403270942017760643187466627762010838197663671704540611474456935112951812449429384683464676673814054509075369790150604816964981707702486803971505757630516756352194455974976715420533422356943516134747584897188016540225643914624353901007031744135365683040195295404499956737121839206055481467644751213586976007401393618774903554572777241842320562032517844384775851265752731064498733928578302381769754399668267184348002781595991107440942052867465987131512440008550124348079456376361756299882001261328429246330154780605457114952988397516276856926063789937665132907204379749524077689229072031002369852425781344173368421539572363288675908451366803083674457138746370165666656483477727076829476524831002068513649698819167901321245239904741812002474727617931518420714638349004758287662985114146243811675888737841904900024369220575515735636116010336362271903493284765141092976688694318839066676740378048533824904251693521502461465758105877459587929265336344987592877554146942293282597444406050880450519818514965581433565616520476869613320658495061379536107395371878238399637350965200519877218197710439917075911387766085500523761638912576605735005670742021267106559866860110685686549050595549502831211983274926682656022940188958581336111826157937896803237131977185633301517125498775068838250836331461950269796910459412318181815735989510852416999226836178431898150486861721350521581784342721235408222565427263340984333036883857424762207444169067065775074181062363248949871439428152481458989681797968787062467435026682326928663210359956966191699455517578731217329396291402543507794916027550420786389045285431037343303429872176905073346224446079218627538400346776459794408849318124569767041984023860855119738022937164410724999445896550070378938980852594497631169863202887412121190727047503278161973708595154498759016401895170560321733955037031231297298002393253023572860898704178944627369048702337129500904765386246753797947963824204309867298291254688651637894324749918011499028525752590064830568227239960327562096787656854277194126926843820482953044691844967183604086430638869108758716121720890514155197580362100098409597816508592093031504836652248356573877956655034915763274884948963555853236719214514787358785874962841953329698052627113542190942904787421934097580877329050670886712635863530435726793251116987233072599492945457529958400472888835300669312322996868672304692456330655212296673440737481069366265733739134822472991492684981914327812604149117622933929442612235156406707181592180151298966575160705206853423809811666178911687369686194196045123051477290819534286548353978486135710813581189438012256425396750662098667631508657052436288685899580396417092778982828746551675636595010824762245568010809669684921326921562164928266781552684565556780184657920181249620511704757438158993693889213066919789685234344326286741244029119250532198988417418831566835722714594805075475958341842191477630133365882527379524542233070428880146014696472151680044768109126089883181579622270122686247143703921835906166252390365431468036705977024608850399778305672257703247911391727397988366449067175004332117958610178991737276846508554727709574633698913508014350622882673618006524276697834629372014360449990269109788764985080179468629871008192727586369847493383947267265017818743738983195907944195685837889828427688872698564159012382314158712125312608225709257459805855489042388818323874044456593300624817561952607733130537013769228020439737790758127935052653001354893351645899240519336386874931889284182914617144156458971427299114678019813457396704879515896585369591880631950611908401263972828168268216494166755065238065374494618115931406501516832542604360865129527460431690165952782268081393472378933620977223073301223204657463670243058568113305484750133320810565954584003136168494456080451343191285964687059925522809703837108726261085470875632266061681491413514490289035643073214817777815505387224890378015365325750720906011717382536100246323158797839271459633066648972074473617644745976829981194492015917595431365490896478016359406073735929335236911662648359514106815247469257854992428612321507368721635258170761322275637426025886989097026591253524222371275543948419713391575111804182883476938766530062565493435910066031492507463624539520715011053000887155069992355308858117344828398510446414830536455663075324348177990883348042821965580588879918285827768926850614667918952453338861781807899852949675067803137091556239228898295947300807527538304213136141464353490628413359718956495219201289514915996828727184847044385038224310741360342328055714538706084726552150677664591980759108750536788828927026645694885152867071344618729242222609613488001705731980144876161592462028683375808213695506437945085572345824032945973684006987311802208076810611647164234613340300344007197286138554312287495960061801673109902928830604811080192130734321096221100570710656158351357030641931759497365606403438758477486927704392700843510732853446038113591306571083932657479099234891730412690410655610360113298877019589299965394917562662735854714812075977005327241391547510055212536014723353924595469819230362011085706832512999946216738341919892012470376235806911878855245040850227649181569310039477029748835970502491545685483133836155601901211963604139991816409074594950149589645175921895899114032267304511292024745570042081234571991254283544878964140431471322528942744291722757976117615969549124636845994739181454185739626584302511938570058953194559843898682206089423944037627754128325368757549491611283015014233727124457614401727180985270545840992049915458085371752988933913197176653079936912859271747476166182618116909011280639821276335102142443348784658783934176020607237291547133031452307339976073351818110730106403706103994638612579350125485519958117695372690315091262932980433872518539519976745818989256276253985438974514953270228563709002847022138722615149685986356224166643412026171617084165360184281069690660243050076009512866040827294691641985310816004688623154567923007842126525077989584544402765582165740096284904235344146190566856213596672897837474804166691387961003852867682172484326098791579244037267297261969280429272223830118602983514420197008453655518993045056582708374278538390014781171001392338870260208426073661475141960447558352401570224860933475230187113023265967146393628764450409214363469224056870711221252201007088956556835521232180336506710166551817397646622672674789788083474134424814263598111868900204347860952271451767486736493082135230423587820484913284849888257412149915895913477978386877473900920020231538307318210469589898849511787380564415068583374680136762394353112296337828155603492184460688119117162376076632623599320829889283321405586649032117547856100648106211943581459056547874032830711073672597963380833474806730111182960180859668391736682442637358980576802341661322601802117970350942630325070702213330169498398696429865873795309712444081355975380054194605912111736255208346225252774199420614482060099563546610840151996672934649424176466558908297737574987606573673835249706004868505710450038954091316095092995625671358073286629359331844170100791052034750035159441592557148854256249303066974490730358164218663114474940695691589212421907143511589433444877175210353113232332469571838584512910202866724443955837570081604568863261269801850495528632759110428818398406282787821345932157701594957652341535861299597193042752947972166457841904987785541866256766985020220738937416957480686049169041873587066488730459172827580763858209328023459983295603933628224992750281454247438896183090726143759695801879422021646477691468042655567227681314964730995056778620301810338867168999213514935761546364815312179124115492062008857244728984438116379608027745616312237104905575279550122091572872142840880849140505644345699483019360256239220118650254883479447672170739312197045415966632586336315720467132479720586218068397260055657658814389015514899373827560389894072808268006860965922674046160491446468188460807658309597789913740405628503677281687330353978493933696615520764378318132899534656439785960606115096340924800715195982214815667573079804057917904899616279329342389490661720434105821769803070349774377598677575528771275477941025160496767672476673259282937968285742916494797660313207174737301207854373761744615440114298314107698278134353068620583438370833800907920925328338016593441137980078493157153429647699991340327584980003403119768514078490288047911680386823042932852480328847665112411974459495900368767162008655661107492424257487481581444734478024432153157178959842041760128448011364845499605309508263584693309352920725558069479482078903413323505007128959743689978678822871972989086633975849434218402867946079660223731161337858656812726590979784561777240892958099695874277324097980705326911136579116465116858079413984526856916060183000678813956316807410159755869931288392657851909632763450873541131685491723899292262378194509803717889710387548654653548191143638987079465267098609012369633598913844896018496902412955525875096038449665781752543316759086215079090525428638804746755534180157708421949120281199645866136193644618130408991668158663010577125899410590095859742178899723453964341882127967144566414580948279460177314298415626654752192193848185267882824517883459007436602848273723268775014545246027727342851087323456797028254497802240950181203609193024942039021507046866705457601914629442454324524489795847024668865977294106394347029887480044413922945699583496452402045478324623224372186974053139162179275726530821593554355339862020868825041031164932942898924996749043490970524344386621826234092899602210944987483985503559118887136447883761907562508263896200548399945448216510707560942041724454495861078431227783164378920188186975376212584993683958736494898584470779769531802760981082492586509863649782644465029096345731146069332184380121571966459031676493139974618080593319576211413922776304516922978725074738433369666674994536584745920923266191297364527858474817870360326623583032063894899668627187303737170993257975023348784407396316673056486569739181868499488656693960615374948298423536396960739298757483269761910783410031340758014872238327309659535184434882287267034507971728863018881021414113513877544938029890258710447712983856757250874092183914706120391412513975572385593542874467825531353580517696967643896730628054628946555667060298657340746105566662917755284723987719686725169600973053275144490192933929156803811981755646436624773597886580120374244727707873996240447895352366921639828684854305313673033917173009467805554224540587480065529269440138223641519413057470662237462333545820583926383624704891719273625038853944086149301962770637475984516206164375043375142349141972521079186557342874051273715430822561068856529369038910215408617839428547147520144686973194300086037410809333003762111593815557336245550902058877567661913647478363689228289310033180984384490233332115182613516189815593987274260924053067769189202566174140409055889892279710869278001747220151687055944638382480764579977055352161908087413392026152106869028128480964934505209863912491138034198801838832684642156320550082294957360763802482245901602086076493501105638296173242449404064907440317988800404824116623878106876127299996616258657452955251032685232083686424687189104651403105432076068106953162982961179057127882598603528083455471194816378797048538087195309132426736548723516419714843189985470146233445518271978568094758362746039036980071584051466496191342215950885233324773446742140332805402745991652403083695434036363205318979037168127541951245564865584273655307959198901612398772170526469533218634292938844284974593719613900118772398843945270892681092398326534789968886064971266714168940213885247656546172577237723750797158095651356020964595186144942142652243896559694701950603416943007461209362203539577649534951870332522775882498852687954308562538087411550040727747937765361963319672819170297265930505738267829155595742302600154199725521384053200414403806446028503945994408385173841604177636548283752639594608613619235994333943431619759257532768405353676324501700573912733929659737511910976321658943359936323427176662602859438380506892549756615945636276370270070987958287163280351065984194300868169592764954486353801157175345868494015654582141815164426165550569743745726460062433736246857852272461844239663545076907823546051411788116703065742350401255403552858809521986653461603792992167955974432362714172171349863671585620308646141557729817537273208630004457611573919314606084451722280146088973166120010411149443638153330599539412229978847467778711756328295337769716518114592447195744132945008257239523643355593219657289105275454549048382909442672213338691720047269088632665224608584572068256734359433300084541090279627879981355892641082807272750357289330480849566173654517511363842358809471614012307085114107156026649295380048741572702810689049170208755108697522975093915574566657085439096707369534527959194678486917206088791833308194071644092824999734480037203291449550278718298582554529099610359928166746590344764558995020191198081810664475180893792505322078883559309456078263737612656297778774757752424746913751395789786342940170888895715084392286943561315224734734321153630082170291726089932665762670606160904251558611843441740692696687476342463359793943825599677909139224697775383093539522295220850903107150058083820842598205316131517489455519352275083614965990213851849530042513642077404933098072441576040168536190895553332121466240729329551632840245438205965973531904640511653028858351921936572225760001517983990055374607457748716806346201622390536700916149435803933174874304994556319795781469576846785400950888813371930828203287343969272039018821536228023020201836224332208497140844020089605587911323869012108051399518878552933590620746948626464339542650684071277118514713084004071775808185770090905169276538928739980816772941902258152198699283267307989376776339049423053239269851929202702084771500969850414264680926829841384449390534799852385048843030349716363060379258244011086797514647124005050304933891440286113129026510907208600233683054927334479589926499334641333364845053299224253708817340798883171324107438208172702122438027281661729511284298358000726167852029959329595773842314612879988720692124189242834711241081116098999605282498386852081190401536445997166943175732728474791483662818333618754600412440482729932306933749312355079387116949614831584433212623318372777744449101249195206214442663238085142468312911300849850880024660791327377758745580782142278650180357182695096446555139529541059007208805508575416235746698021749586710169992999345668871145104775565611201283130155112303726011078373626073556660077379679462664038859891299523684905611023335188466727328959191747490672320110858634939028691901394609109259571972350428786153621298171220671112319097865822948183369371709151462593237294087568465269428582791381704085263841617254009151595531289145168030914022546700065885983658761399238975068014140382944667077021378348974490999904998737967654353545756509026638029705484269812748466778567831397088840169436382006938612025878322074429414489559636505954921942389580785718906606791249838152064304932252668291471460031735937500540449336577621238033128296795305900398649752489399589517596389233538522074894385828833929909547385293601489753433013615975770305771117396205234221112349196775255944793711040910500618868536166483040588724876947352694734059295364544198925314825165512774890655969550959095069601795226159280396907914791264464004888585138823224494175491603831387036206432874879926498647335531806487697862921900200836294206943515843324273466442693190222614493541848062990634824970312008290747360798008196032285311069222016807364670428995444875065153947456064725126215534784855726777143129850265271775638510774604874482466381505903447420076851667343610622591607651875040028546429769722765392427981373196924956904797842873846348521162748489483855778350101926677065431336407324346753312749561093535586824640788599501391914560291424476260969433361290695018736068726894334792200136424239440087985573201619521981916266931397905993304017421829241770874363811720893235158500541324146755862567824752411427796490743053306063199004941365863617382771994563644092191129348736193119812096411225211000408071346640613476508161581841273575953579228395631559214014215454155052627253745550288808750995213149008431308636975718686643175141429500101820209110436620904833564927109813730277256007922382162824157950163026495575560766795250976124908392139210675538605828941144071127067272721739972060780173407264765861456553620393665573822425600504292484775370711331560441677311672011045682414575486140430937593139867480977431860249454621978824540821769347550973532649859370812700522508448544588397600106771734813186970676469050822042430252527247281053206599603982655665690814621503865440927681987672098869279485481063240571374858948934290468887491335820781542466655357373175364362940943039954636109134320428814497838980866825560675602536991736346515268689570136095052610585535032472821490991988495249283621963488485979673344946814537040224970754435008223280308173992944538044289286810663214357152635425889588229405431835942025110110414819302617494633010001885519692418715782340587218009358651864484299220865311367103380066966452921327221326988062601944071280438732253324401010499169257495755234976450352223017931329378764038454697126590011859731240766291458026973795896779487550090018753982394596878979941819953512565048162853215991937018983242009223401758783456752119471760184569821204293808033658382301137819874433045516719989629915300289452135297545401968879992910784103586992887216819077481062860153669432528390531148369491184013682565918168039306168001702136473944227766737762963516746676250692342053038940218644579141256804005150201853291018048279493432704714751651126626325815686056104865868014869741184022421358969602599809783089298253565420675216667421108816929361825836658647082556461061265682440907599529801201256907409223475707924574235526603999156791049229811476025728111538991928804895596606310778159535403122849165317254624657238647349764233465786835338332586113835067782868057367349520578452664851458249888921178318686661027911654049319141289726096805362927669875554441712244485691375068612269842039497991448319156975059174852058155209219395484884689096566600543671456479563989279104968531346205667635846996414538150504661682828291824718057719458734350488397816219259167889657540605368314125283867338421376330043358910624648497795050565363775359403012740503863325592336951029380761614891739521922456382237481500470725797959815307246314601260905640361263080903196568154531967072121451816191495712257185866799732534980459445723442216301100413157831501783584121397482665239829606631533439982922226608870541673658209616249533889294092317943706281408277290321754506443720450954287911254469019308654236800561339131783869519302161742715159187707430935685761488708486187638718556596112343779585153645326781166449345371503964470780524779095665990205027292369688986608827175064041848630059317145260481417242886725241369516077926539161246936378099100558452095119978030379341552291561093404682035489910399230666250688333915065510425438361715345238816387033937538951925480289059130507961202114284663048266239653555571141108180834165104615911295701910187271152471167963713685050539750820590034692755078156819064456291311119725347608456567725743890397929598759453516510694020581561279179706255932603674090811511568053785609020887410262768948658796890524818991160593699148547435959668632697933175999261702173424007311823992563934473217774903556547306890290297195710955537287998640749811005917678705131652632986661209954045050447001096250402999591197791731400516312023159733517936346003617940666310807091584600285906791415470637113496321794694532854646706899924007088345917313096173556960950498463026671573246122762616024387192356726453773362260392015965641641083679253778602986583395497588889989758205811293343468406201568109037733202652532251547863770426245021375744150499338895219188818388834891080052467771995948550264887133901864462593594035799143717373455467048598593875708883184860855989908523755966674071672845735613514425853219002868651716270799379596683863602751152814479521182666688149714374737196650681541734361554942670899580999226681076704368648926735331572928207446299266729821618461741414890439180111985057601303880909460228538125361967121489875907465769913811717426715241679263441606463133193567902473608074121028153967828811464179493142220103328798238225224217749898228400823187829863800213303913212584301755908933853113247135954493806267134309779590114359418290179721672288340241576387891710531341495202857774416749080174120238851719567873574963759489126548162601018909566618716251041842334481172970827095987341899610878318657626609524086349869837673299621703560094290355818326223853218479854460190971035662629092209528379237178081381691291934918439073730954986498596902420150657650308902612034167932869351935242760991390751816726424221716714187432224909869959636775192060702017003577541584846242891299131367036638785206377013435509378601669783260086167921120093486301042809391513664478846487847853590913795164062224363168128521131214121283899048764298242546982023545297540848566533403909042823823316919053241425461801825004332395636945200187066037916212384987805952344365933030173318218501647724139518300907875367668789472002554828755057918022436230469709402990791572429238980981905556485268856373635661790901152229213484364773160065713792252353160138895806294834603126392146870483028518177042703920993517096410681437065547222952819796154835528883186842036019397959642242804098148837485935561750485690886204545235376040598118534914495790017933628204793268331821902590672865073782445541491911410047790157082136043235386464759403838020871174220058545321555244096419548156157777080411264857863852563740273356707003671769630335255247110362839019860675990173001968596888257748105721226027484243352677726874282281000317815937949592409511128307774605220334676260588526340096873739848932380131065475971969762910175217714567080382328175575623591692437630083145756923918154471602675018385289053458611719944765695490100749450452719235859142130347174642437109216866979553921454838113053578349667520322196220247817558068687818289358726887650894954726559755730294574535526671886477615036925391988006546168294538428559261742356526864315699979216292933847417351466010856519439431482227158502123201596977541752940258246780374953282432902944758484290785240220891308849126589915960702249630736648145858964025254188772987125988113066303125352248041393940760706095827913617856563608661984236952844620648888823321324659264704583952474192067025525557048622323676596361420417709818717967969809741242075311307948782875155353241377575941708194328740812329112484515591246898355428327227889554009479775893632167040871624536855515064327670775358335933192718994541157446006768424935534688252849258372368254350793309758353299111431056892508737245868151461327280870613651160505749834974245467072931051521750924072710766990241553670046280492771208475758249206776256636329147853710660344100166710128285920407439907545831535424316716575851217875589982754709132904500347161070413857429788880988676238124681335315307778230852527274414422213656771321896419516354378325162794769008215735907594299376278198593873878699106562803685200573128923641949036512340624490061080407560086207572497540893496882375428526252332518920381754202206962528778290423800657390529925216021270546260101211966032715702513968373745856418772405938079242376365304984644321853319727695669916024132387187117081169537232876645345123856555702680193596326069150593905681454427238039334990933855222503759928056801083476372817544601814785014594777997271955668025124392206058626320609179678143343456427532293220228044070676227071625794867413382278821760594129841977044884279675541074490192963177808220759414301040256664315635776584211798972644304446474598562548669611320452696568987545042656320003943049906774280988949381333107273609884929646221846366409183526068551935911113102471515931716225905823292904848183059701068573284940139576704992352714115951581517590464859192884386495167438187306987915934021814616989609945151839559449320999109064505183405861802397642172450410550296367217184403539828719664500686456189295880486442353173679989813193650283144157893162887459241530345687925009669903115581081305763802583862669265203421169700504150662997486161287155056167575383856628913309004001494554972642334878971706828905871174141895978051200526739644128264372270099275719211367068747543071491470587131911122877639796955026214673363056011657802416559395645841133960858801269302194958607321615033907166960661311611721747047035039605338369712401998035222498446580075398994642056745387843090777067695167398087247570506444770935296227192740829649910649749545443324048916855057576240428261195935038684616815436104138813361721221745226669003693128885550344020529338969065567718199631368205108914781726521288917670113739011929483002570414918307072652055812216356348654894601328145311936502366914900115291559951236190663202957392349411033012454515342962139469979694627527983782914114839354580225375858803278305841539923701806744442605512241328148123528906889008101792974846607348095464575341272913973433745881155447148472578636762784840111144954012387336035873458391738585436091410625344201421933683489545669162451365197394590176391111941231038372786725657107985955317796144264999243672073323485500218916061054832395779082350206400137732049297187789068092321630467176425741925985563201642910524984250271295902535786897562771931204713223109706573249393405101581886913569321070542102948814361348678912836143478085098386729252276322832456709621907839871336028945273271324160823740450299420780530083341962102838127316726199124075304991204606301087495271678069553710641013949818598399629509687516777821206638265012797776230378794451160789489611575779997427962877442200375304297285050900431104820446321643521014973843358754356926741781060491268219571387711668998049673981140825856948821324318068119549219353079323719872381556791987409628784049597776296609970512527364807782108188397839636960435012892853337471973622936474263444555834364509256817576379454564524897745453255366285708850043221398606493049926142091550336316677762804286098335665397464809219957225798705925324767414736032642874121741728829372559299637137966090134625343324297106208795418705583841188809317813779709385527653550325106715297217543957655477480232930754293134312641307957088234148153598060214558186380929616980577621949503061353251085293136063027457958525223159452220002435626809200776798507224192501099292059055519307555840605367014225337384963222619863607130709671136734437080461993398025722274815996282288881940137434394876992117407817547778924773863313445504531721426065078932292582647467328124587016883765916687132053862942815647405419959349472727371868186234805810131676124043608712716370721104497482528587396772370835030657394058517881255330586255798110736671030762785998678532328782364518040508044603292135119889699844154258427848217103246630932490492446556398265060782141476462625386059623568389450494982769077728245725017771114125632301187922510540714939854950060117994857603685170733459390834490840632733602616881236371150340369717313802757094317883774064313598924893915930185375375700752384677074965653365383377091923426286057775950512404791121104013577047058669927371496045149891019067179935967513166749861334293609407808204087110030885673584507272067132272317965142212756349244683643796449498557920457458708208766837724167768828279464651734220900108307232595323382217782673054440409508237348370715756212400685067354113505102744181204771310203061141964348393431982385591758962272722366298155145003682403135541399723703197868542964818066958708057083808685910753008794345129097984627417532702980208263865082758621709562695016375519102144575107447335531158631361315311033898023856609682736268758417656093556886641978197496203394099091726970807238142160800917326183621302756972456398400753820291332448552738636046809073976684645834520888429231219005374218362351304492975501238255598279676100028697673660802036887164152536454212018278308589383083717053374334823129019125063764659634428691548717287930714611792697968837911216515571161632641162023897178467107326351210621585493011591606586729033575334465906452170356031676388658677193450675594797192870766368024619717456493173626811429227138361884924065491248932843916018189115355427269916242071821098401650364327649817132242169170623417713917843727890193386973920938337990282974316018177136759638055453402468884065723370053332743230875696764883820522522572390115646711703558342477141197072221816223653076044729744302077754713136487117115157134979917631999762263110512736769020934122192919601635953132515564452252785968675654519969855317511836551733596172413082030727907159190823511619722969122837195919235097496042205991465603553565996094395301574389210254858481668775875693446049347968212227373260483329657090724154234997151009863072220787238008398393591932506799333526402187516137597341961176020328569212358710719870433197977950495616403426015912219129203631884247942950890337676038653923427899817138618846530320971831024777227632187215694596205214882544842489558866416649056339798739069474987100326250421878619389696768052920895530544469416762589694734493991476125047066972974979183117291055442236498137742841347189923510844865233949060291676977275996192653239260248344638147013703805707436985117245556256357023185676020579354938624137357528574746297827866986952821157556898001800339909543377334827633490153316344212714012256705350684092336027043417766882680899567699981913199536327579023964621541264529273880300972470079886383918388057515229013734182956550087686132775020735862965735472002921818947658952573840805316189582501064681973889636479856675368354779840140391471250699701715019623943653388595668801031354756389228886771495758553877391751364259906580785812049282401299515245630350545064044281057873051904599950127561649373746084925419173329383220424500672282987454243008215920464174272351468761890029835060676912644931273764548275024869423190792226832474407601788860702201451036209858562297290385922517629520676578930827537152292489598778484316714481052390268039682534183802867676641693361240429445806290312694404275731304302894211401348719911142023304233027372164881230701476892542493042518735600165588179013199272482837330926260815962345441410950581573487805517977685900410798479041652239915920080472783099843505502979948260983675062375280541248475064467046726123730741941727611104790446322652631954292213321721192853154911258959152652413242251100642155362541589426812505479644209203133732084266751664233002570259192821964564428248062766343396267284425871081777641298120066182446725203966804170784009240285502881640255576105894810315002270198017699767047416156943989779190436231036972146472521644195328132522767575940489877409656993473178362838434297497707864670363046559675821116462768758221467666160311272742417123126298658991429664209242010059432137580863287281349273345664745580039669608571872286834442491109910180546515902071959791668186203916443215577561974178020045658789999933264104404393521727526354641426008293721042695546925336445411754503119512875765353515424510564367277324308623217241284385032070620642431817228508180413610708425632257715741556050429295360028352462418188092011966793792569936176124761364728124411741945349874044583027607949473766654112576798064754854805794318091502009371033330015628954630304941723211666613150277348212769307302334643993370846030226696056176584652225456595974155469610512205300510549916501134443802913340286066713562601798391575926046406926521731948787400051415519306838590605440540299855341950780811117637404718761775171220289862147755282001286787870052313060456697907357727876465553820275190216340251444770603473205271145841073998546489297228133434064723382244421392192420275309024386467610733956404801603979546002230966672182982584452205545067806752803394826595492653758498074565702058076009755038397383840448785261107406452491448897708003392019461203976035626471974607377158519815389100266104801349462842684701544801473727074668447621368915775688254563920991866742992950904057528634230539314442337116671092105558713081220403437304583223753031260562969404663614943355502805619269202459749741595834202441394840113198803872443080620216714245829370928078406483470370600420092897632425807827898246824524235478933880641235376219319193019061223802705242785721876532743738625728462455667054451846195257961277606160647386752203749360704291312757891958051177290717186343496569602983635093424322584714925439029675535890093100240272335152091962228922064937475909620028612499102840183281451311912673127674155360612843631274219230110640707758782776162712335553927777190446907178769531357967078455330787742662392066212447979496697888834536144184359028102600811095595470838121404446680596973388872569517676801757181045911674875472646585199299960956814890304602452036310672923083644059551706384322713114848709600360261776772208796327432140912135809645451865224391263311754893812831913230367373810703750180846841852335347044825015347982164890767519779939440975402351682066685750104516724675356599235037740494800187975928066162855026289195443771854822584447596401127244549037864871887808329296446497908569879120647067631172247149699175866054611433636426433626406791341301527741782267363055461030733540733385448737210479144492682400688081776156807828877302866207045672780210358924872999720897826091092351918536862486020818345879306020868540737855659502924463443331955190872376083642837985510343737193790314794293742405192456370904272527105582070569471641850050485525246609966213200487789878117047287543280216761048468785223278363858743377781171119793922595435024791504435609585494116780526246851027026643282518117225059514098909669112762752280607619481438354085426356646425742628888743884122366001078679410664073761203295884496202999817800941549275081315979337172772213723523426263287126929735532187772889677216316161526621442156057853993595320825240944825884125793288297108890720805653622236304786747983806011938468527515252687200826250282353192942129186470270880768348322664263017470101508046257343550563529799991889043784352381100317956715277127675184134086863585779331237458003721615393976576743695370831897055292998865243027764494244748061864789934006874007884290686487283014515501590110635238701644475246938209572762019015723061263044616238736190270229713513367142347136737939819939685916465789999122462661800905844961981870149114764641118265832841543084829849798943859968026805347837501066178433234869883062181454150527425803443676877859476745289690776678090941288414749684958434621233188375034151122278447632776346633841647949666572043348002791340882070156583897871326801190745062770379174575489417967523797563166313713264390516348524443558607760927102691182627247679745967945860552052959485205687677695353920778839500759054166105807850347886438763948047248557113139226347194645001964062487625812886191373979686285226157809273447672867823233549287801704845785834536625776125990168946217036616145254798243576581784194181786381905083624025041944892339476655086423570442776080031156159382001610213967977694171306937342051477639422278635599388148078938771861107799705355243209472209826279673691462518303166908345191820363562606804289547603978300479855773517841998201934901742084022611421225920307729326201806739080951470096148679897171672516252266144845380060545021297353388314322309000238630477732919549649295426947445563486135408405088092039425526599449821448603749162138869296556324624646040871632769331461706882875830972201562850272892330108005179217797510411104245135908267937962331029673906078798953532540693691216267586011573604224307583951935108853306981412554790403228111114313468667433405889760501600033814820706777046743545629343964295075632625900605218334705317823375713084078743204531994652392831887481175969797662993786886325034122240409564852043672394423516821997501516907996660474197722042853131500799575304947183168708761653241184696675252797398363801418035073491143417250055867024473422520924562158832888170667611727920575458377933835401214631841810876416909973232394137728818180357055761390150256860373472632368417634590868982999158712423187602451150919711497280587492702656836944145570206715269894253148333511005336693678736266981922220354147391534462699272513743545205313578372139525962316210492591404936559686651766158617999472507858537343486118316799755198265067870301498929524877023880733031000263663920766602723597082124742839956354197274091980748488782254478110280676354629975765611344038017227370838680372009828080539593876908150178203256529452247101653771572205514564685702467496407091109689367737912205159322192129286084618676870076822292716134231806875605676096453024585074342355974579664956988260841560904928224276534772805164211027490096756358582196539232667830861647214015176886303221215013677568044446777149835618716933072116600629501199137969210189357769772049921943288132133768812944350315967406098342822192131875503144625982650524782771720036847441371108234420577878656091605232081590755603003267145047479892677682367118121081242218120340983368877639322966417973727929401708535283791720871426659581568184983084792035745672862877549966707505938079359509622612067150369145574225252133085802647122724689896096769667616365643730999756904010479962736514442952230793480465814042585985550874758187460120142703324233541633881636930704421371717498463105873841950010427868774981503570114018900266824780881986400725624522837514522036033124618335271986245754742010004941589944142881379544829113210757211953082205037570811796943928537502973399458363857126216469980568510568840114647895903952218281547840456652785063957238237291123403227024481232943306313040458841457115443303204821958157489239583951019533812439781057729674203139027045188837272923644076718000838238968277330229868075561253215971696759872674349612079749511656276840856393711761986804712067892544220802122659349513560993594264441521298315651187704810401858391704687534292974469364933381198770854375081768271399524357729943640325114423917180693278749057305261833952432489388025897357490748406560816313630031309952038895762234449694601904867619977891265689262663985275945528763155552554220905960661308135484639499732067040309951386188110893907186785428433606840104955235832264578531982777673372103097233298454028230502230919934562497172174572247218994570762355657688810784708026649874524982684414992802405667456234700443131172006257926052484494807719001061424448018551276504338235698190846629822541885255483251885962719317135327901968700067883778532425312397145429303923294811301757060906656551009512706112743317941104879650989609902066600656927556363830710608103768780796369255069786756307605443911991801624601397714796462138541913947990334504080298258748419961960089766225032400344846972079093962693448605922846070382847394994717909101003160502984582417086879567938142527171077422693251097905159559019126966802693612116396947437786070549168072462210883620713741145906538479747370875223694041805831101637796180052235491851557020401660072174750347062912515508145312684209096129543276818084588782242272409547195059403014301173511322274088470353493244199592894232974864712380127481017135405412327197430492274290252666851516474743840314202539948546811449206690647290271890042607231794136831030406859795043301929946039989983269096733578448642876251568521188143980331600335708052257098409880483580037224661651738422140159028185277639153852883171099854565106176586584899281944381573677422168035576446413239508677228679213912656081534186939268717430175038547556885905994907218188838436603715346695083413975466778970572842331886693636632526726349344025025551253561486236325304437141263788679385340479261588017588001882606348052003152411985708892638125635677201319117927275889906939154924440793150572802071796699353908348284647724679619778859466500697534180142043438742807167358442841701346006488187007150362367033239619239418403486423038559793354277329055724615311774462605114236900431528626113029119959550390534295088652639953443981172960791428767507604918306423814890486195458143981987017377594608753396221165333402043346468078911094597778724583457463885872328520679062062017756045578690248960810950834998593829969087047914942721525200860375828183980174941206196457789326625765998403217760409767948902348657143927490743358107407101270845280407158769518907964373259744049887697573811867811131389217574145755988971320060766068120039037219947564832321790763172567975644842592634523277377174172063153078949736995299408716289586778462690795212635938901946382317020159288620982269015724730027986815145193472989548995094600534465899896760990884153410487368749025217839941979271627809449033321422182956160540821760440799187665962908820824060920383732334915183525297539561382390698819890255449384426787572991819226916760411835673618401573814633899992146941654520580246042004263729158041134204043138739929705638338742836590509466765958578433084534277868606025889327431935081091126281412615367380829116494907922708058612157906493828411952916921361246081333807324731376046635651944024256562066721198577297542278916210639670906916241172034264824077836237854413334691839908725187080799665382625471449262385350350383580771275184767310714208441146705538288550993868664280329540373977751339976645260994227263744258598590044082274867461882765304274991417399160667754735039751549987198796400092843458921609072171001313310598310865424716273772257035526067790289910917598848534557401637947699254888748524162053427853682133913404964402202209512855865091491083768478040719145194164017891002577419591747318354714921842537608804629008642952184802555617074083177979219570471917641804950148930088921751789407345682766048310612934230684410804049566058016031921023750570992908178237290252681420512949269113559750283894914078859026889696404605049039922459247993529592476715530765482860739423672722728446733818165193718280959529306910223191873991476205959935124740387615675085254808969927755180541128363644345957778022024981332875964326332645036957924348087104581395697600525102158474358092240925386956424423565021659953283674742957160043215449800171562742871975006680008185622263556830232414770847111267043360881812157404394563506625271015484690226737495372293133621720535167238726062889455472260082535913697239064302978338802223447684276749388749631014775152045843021691737113329232847671588146112654610884851108652673299701178615857905117169458860661739993111543526714450117724392393829215572779928810456268267126171093512184951926983176736004723198782020235265866481008326577670082822789063925445813659146269327081510034935653855310797577346370961405014379989007080280660351366571434621681464299709497173630029503152336219337419256569477162690299023697943282755317212196088362999110847033321315412147431786742900855680278816612875797138736769911591407406564291013341467802703571213349785526054028792512486287081549545531001196537669854675153434042641749171555310476665497366943071071663866875636362595954451830947333916052291048588339629618365280901537626419173126608835878763582579158600263587298756969294475099052734014085517973448145313022201143336354241072701910277221139885377097215209105846465953324353959312102429348094451991764741003837342489145271745484876941013856542334213493694273090068536722990406863758532342522485192753143663668679954475880897572402925315136642815461579248432313175729287215246602548460552789874939913043036598285134663298848376581213172634721224433610992418098392988146779586035260597144875888676442806076291243089834359210499775164086636586854187185856364547656466997872492200995767124508779384867453149844958989352548047243627027311568480929341162967906730766104092446415793540168257323834000965048633665779330488438032748653344257829786296098664373892471777483563048284420909628017441325074407616881189136083761007371941012253854201755422755042908402805130625648825304957566654674395884780327923713329525978017465422470181503067552698343524539933164052864176050977127671126373886679323056719461228216791063046824137253577109572799165876862766326675923796416363855644224721956514288401968291973258651771823434575887630364554762933206433629587315178932211100842435187023659829654630054735819709402320281430730349739499550722576379246905417392365181105670199412523984757363757411464455509491554465702180032062580205786173453425663546771167536876567388072637307455293880632584157732820601818392890975245432800618116939287149426661046391583178834370934607915112280246470011743700150111704103620697759648130649380440262509167382375771774732923824685047528986073413432040171486417202092296787776091644911216943183246272786213932706618093309172267186375618354610989724313141175759402164972024093225602835122500535747900932039706359061398631437010200848417954656896497104071077578437243250942532766817148714401236632560101386283883610138327230758798128500580573767711399785384200086655414339710394879100108098287535554720848981058893448507524808382555090828901342387942045809481157445771451550734193831456938729588159349604336554825995697805672204504363414778480890239201857807228974819644712361324513914566775546332222453084992713960157121473740689811414547034008599735395078477846490672807528318391020253312949205935660196019558277156665123198040375115024013331228628914273378420985826690706327030717821250301870695590104663925836972038038071986010724050446659061071381608871871212539480552404611105512305252501543645553715140247928452588419681455416960854292745186202618998965343222323933906812891603485894302843312471897167660147299934901822284624914973503039440728433441087736708164407566496068435187585711846484519610386886612512610168354568125650112869751238902572582489254290637502216194539742010532458473463358358025107902946550118950450691716538653347172188616978512036418831074554326661617354860781650400777373852815233846527617091814589252647534013464894499579912197666601493334048318154180793738558244020569017295226119806305175907687269930951110233549958706021790114527032254222937285935043954737978385388640704405203195005422618374109488441375697868213774768013576794834666707407792120885770314653166172309984180774556882930584716149890785968661577304592968415832177967586381169306661734033211541916440335020984119218323979756375488355452575246830466625982274073911374846015389125828677906520901256605388852624828761003944925185954451700027781631946581251827743486134732687669734694523425434666212446304011516373178464955122018962715868121743119815098723285345966295252421658264949881916274377545026224393622335839447122720854809731645821197086545321249172639165516820354753801790571128970051402254108113721094384675798771347854122679163354996390702212025826748416955686595799374959422319881403597707003110090621142282531196159884874625203320239517717595663948453983470488530977199379749459205492376453030861718473556000059320815703980846804975128858276013676886103194768850357739383122598335712428266137684718125817274844221142426770466183770772260596513418378032660499050222649850566508344672829981717722436897326536238256853098458607351646869956928016319982478865658942432255384476535331953551482354624844323490577098941408690716279344395956220632182257853499506639449421465883803430622720019516045962301265877304255722585171737721348488596899794237421917312861385283612553590268702088999644358572186853266251439551970421108619291519464282871201663826431051347357709625407449303374961893735473428747165672634688895551535926988258438425236395244679610708937775592977990827544144985239505735759264823859687322879153780074837421478080943672138543318431140528867173310563167415415205708048354134916149681738678124358098307351759796151238052041558438263151298375548581461046427046378918819814393516185631472031308029478834748773796484493830799727391112089420494673828177513634813969910076354258367716412596825374514490392598037273975001844529895643099279790064111282066795998339698972767455698692046981706312053290190453904425263566562530905906755591431266279841256258823062944200013668073931729261556994995522824068624690619229277440771591809923848386347721098177820666411295096319728911525099644589611466426044742406509326328227137435826267211802614491773087720360934457476214583458676212685489874947072894159165296987765512554363322643280490790104938135715563301577000316066286189928905006480385811337055998790441766309737784692227976388272480562207558066782254144651385935463360936049062173360838524284761194339277910830548580327310481854975887885351402350822411421223731156431438977841851446735032978607507887348623664082254948733819357728714066780862372836211061249057683139347320045170087976685842934582005129284174017992894950374516777030811062016307641494099199252634197000802370104232335234523272149804692415955079129155616760773953723147276605171097541022773914707646163923733944408175620016581196308476383069724245889463971321603168623995164441889765110411506099940401462920002666975227534392934884846160855370667521833876710114241167706394321719536655887932855561619851397843842699373187378544756796499008081101078144112118058714522701353915885873190174993275775710326050648363627984689420918144205693955712155561695218798803596177201156940706287579089339017465149578923752254830612993799640744204701950954812770908578729130491993676646328402677547549346700822818327945208801019242935868919952942574155922656112191004148338945383751074766217770114458395966025113273991382112261694703311108562050311851520130689389676667052281114532965314268714803991129641969128324372620858126131141663050419224288588128516409137069696882245995547946811844635379965426549524542366854524157673717192396295414823368368790457506890858726034396031737595834404854277377879377085897783187735521052496767620140468918509555703658973152440547073933917848985644545714665617307884896489500456281833789062098845902372191537946614798991293223471510541422071099623362690862838153102018756185280911846127843254599525643777501823467107752645826076617886074287845105019045553389659888421109837885419920850221104881441025498458062052129909648195759765347847297592311383473030829053014968943676257192347131462425057142629438064180802555305956423999288781693708092118662072724407228497515514844733888963171572000086087679290410768677778153085244358909723204985488661546647956973965615791789054162345252495806160312033683237725035502240821502182272039043312155211279098616115013322188450803583207350252115543301345835775159612651902747114419041734971247590295764662294171478449561398113027644391054969183137795824472784707143483884454879771202289618285154870806700331126259194636348609243746739711484913920381204166461587594084280487738755348921041474568063742941907133208805647519584416263052224918031890042386572002799110164295437722324139014273333697125702629385403708935509118041121319522253798240517353679900602240797568188551490227657884293533071478882491557893633480013572273061853383766057548775259041045909726227324894682061675171036043730353904917081630241181276373050018312577544642228110692011363287565176328097452314384962788544297294462153124640381200076642344471039697882253950939605467224045735285555466702860828123095619509601865596583054886058345573735756376332948723888498941369743029994930533872115651469359786959325743090413517336316414968396886407304870966922409675549001465364037884507629259434904620287190576119052321522105299142603096676367781799451642738897398207215065043375295848700941596026947530114871574876036578978012805021338837640469543362492939650067714770756789030030391201902743820016241160024591439915784043644214461671731072305130431298241673784160118640731842159478788177480294967822183594514039350289347232404300459999106373863813139219667001445188641570471986087463529033424690742747956140915005920372133716768972963842977085078646751428750145192801460124122163427872884877006016942745568950179175043594934692747885193906745822580121817302507171139185567651318694142484897072727913548984394108952198062916836786851674069158172510331369328933149100363685505689340152987756286606736282158823256180429110932927234144454535867948205746093014960154556345374019142774388154748050861351950618401647920688578574974638109452131613589014839484329317787707999031116144927503512525535543449890555119097969374226188696261943184287115603364628120164106390976170084789684650426291106760283306339118837214795090682174287667683837325961838516268318408429435530920839855921014870521745319366157344240726912353583672268679127643356633296346669106706406687717866365240248000138247124041508652023694274701530128849615055273818669072628072970075542294777068134965193015000810173608143130214616694939474268555478216226198702350153933879992181269054833638717609673214739171260670928919262786934105921239362733915395818764428515841805104272815379903932912832778671745294714673947895061352354552645387240669567904614379510380249440140770551546759027684682751805877138701564291127621364416455551704254302549591881087136004395265585431440213513576003997025841565209804185034982361349559955110877931181163966759876239884660267366322991811209835583408872890915530877606873962428114300520377824775430416767152852179093039554583606450242170962321136792719061133668819648990726243051409604630254825878887244275433774342942689953745285287250457464285807237426016110998622586966840469700348783056613268549518154467292618403639746442141396660221249508708492283602490486927311032615158048910946087658141319281750832366566575355193738287825338187839627755818618960993771631030573124306808196058578054335826720976912695941247830777638423972658420225413358660280499110058553632353210431970035396610670594140025183611795429879889502563030410488308903951398474742502760502045758918383544771946564455299598042568432291608612907917884314017604725788422397607770031141389567357088270985167618109525424055022925365935666767487297066224584462122972641252259728993639934628422050732203069273625591954350032853678935379599825714115937057241727627387927000051921607429950694439913969718193645588285050356851978599298389482717020592639196788351966335610142369904267125308988801970057809316329098733804718475577539049354122253414158654595100650545353331685562276660452663893625932467266785111903274169923466736673731222894567304786397194914677191533799025644498384682047897558481747879963666810127040872162225194266775625073987665990462791496555649955772178717511026247295957136766577906590913499803656901680374039603618405738040128976715294710880852279086399750908675449261581595078894785167410513622404224386266618071548700062875529727483399974745465555458027065356775952711839667783838948152379992189520574062981597175457482488664111223213648243643259541979297517549781923918848375461497766230003952754947607607284923385390066824754500671408326263088360420034403595630900971506807997042274962482589762716615941246208791762648381317817269572670181688775784135670761053152995508842875968149508771338718113178719411281652693656535401903623340370403176859539030305710604287379907702885945580998773097834382631534951989157623710814003987084206318348709708704679322846838099809002064981412662865057378787517768112773425576400426168180895280296301591152720558177681672100922017086963368349258203430812733577373543101196703967293261494416050715905858516407176286676686096785702270457886988373933521932099335622142459169132787517520132110495544290303019686972691024429434633281283121626328230400855770848710987109845362288690876445782945000657585841467187931654755692487516783066937844377513373795740419230059286030384333619906328458117320005969303240168154640097669093342093551777668294025937511531678924776044943320178373219579183365110378669557440236565256813056240842490672913719932583451791024940536968037007301940918608212952928158781472299979234296613589738727069790283533973922181466002605172556830939439265406049241861906970217923995465749774109337028708675968120899051487056148111445472707500458207121082676340533173510614914230406856188321288243565724366246363146708507085315838572698385368437560377214514443798655685306703431426885251594829747826688594923650384674639911241638014294269125320234248007519379199694711109151583528620807615277395242347930252271391817408447162528447160049552129391622820755593087059345975618289841548568090519953825501873606288282814656481946908642478754947345334425228308703495797443485663054375283468312818799166528521914589230831746400579768380567922850193075761693693410744214722296258986811973045485210176658905863603083595068490302864521552225543583676072156482426224308020062625665173524253758068380401003640118614106014276153379639385266842456925830893916349985571137188313262079026467659732155658236277783970982750302138687518977917217027148370778528326062791733998687390522898546155764848873821574351853803812338504323230880455149879549882863781134730884155016529893286374302861231065129187126023122871856698328984632542961129877263864439977620757464871306907803847207495775042624209262658348746492347752127750884235942337014824625871396225277157287570507810845910764188753646867298483258569467930982939172917190727643528078176878165311474768725334337538562679375812440038102300204573667414490600218887838194431888299958037287224344094721173267086756017522641737773825707747988385290011209892022128592892679315847515820522138897195267245970208607616342174166332812872745200967162869366214641999978456698329230867959660591676496425550559909286987233257723682006859781728716733966962315245875291852354075288126971402815329647983985381067907444492181034018490983838348662311754384856755758839793881828957260075364191508846606177754068438687675849248594786204733026826378244057351671812622040902486297667258817724115301957097822974965108320108105019492815278658192891137133876476414438776067067294140689791795523464524498525570087548344186138386519126155161407209039649216414763117686685350064932213205995802231540732761127936540030865780842052830896208562687139961557743956678044124084676211688807735073836797823905856332310064343490787223916607018742309359616791079707207930528881315655745106594111903092714913940863804421366740608058888269772438892622318847387366247942402077970344889813574781460832496102456987126466137977436410056253591922795783457385900412279290084616972501734868389645747778881291761356690616303005157166369833176686773344997125561528244864361430445549710848019862303572745450659653402912931844867334118199425086195805293351183114750598132267608003139345425929741171880606097550433393528310784722117343721562225173951644678287450084548754044587570099211972703403385805938156716982035042742379381855941140984401931146424990481057734989221558253313757190932720376131997109851290795524250233436893845262856615111417198666860408258550676046242736726442093607142635042109732318387156878710324600089181456336714191417053184225228823749272027766242807039996033962435621662017706211900384414962924853991275446919737661694453324170420639871340006820170243541576489176556089619584477191074648338983787666093206700980853988111607430736898236682342281445468012936295768931840214997235960825771882070480318715742020505980194491101641115345502057802325877342667165243018346965820676613536318346579238906791225361477813468789206182295431286956927222159707568544789607958084379408571657712341709206971698367171394477981967480739223139437999652964716925848706771003472592673076133230007491495992863932071459918587436997183363286918163000088860274184571576014167263156582044661668414413105075605163850758925375230536920481004903250468055354926926035348617302849299355780372438626475810466520593702669078967025896971866569709574055229854250601414676425225584484558947025327520487139579575112761544222984076420916347632064873023044401533209536366836007853636163986635158680957334401410739850741855027111417525550271526307903009340539252264120266372362102834717486577587450006771629703649459760600881918858139201200556308605047711926990578592579715704479358997866981660164441658734526726943071182439941640092320239023738139861206394077375711487014693128578508826371573050940229148942305229406810800714286654174563659250834963182898728380064634768572143717394855011400154569851291249983760177148186239551306215415339728768847949024319595975589395696882075442022349293430867206650202274180161423369814677090640973734712936146452086030929883774083359531589173977351615991329277605045061251302308207417888171785427755774642273327876417826024021320025738686802306659550489303224123297506819130422365028297922912929457492584890258053359736221413944888177266351417154923181793359803961571556832386604219807722786532030667896160495744361395291813655139572003759531653783806162269882646799838356578102268026299501308990896547186053236099021738273429991181183290517861995328278621353438554915775255438258023262669330067003082193165890657265667494261817166506385368173629204418399582572749069937813591488508659283245060411225806841039191273810004730748667379237184653051160374553266749019514903301100244080354722043259241426377147726648023175273548738545383856888190262889384122036137624952761392671416910736743893406824146987632272511258481614088476339207476255332182398718224928916116985046378124979225428268822490234655687551163903596849882698144448468752837212177885897244821684229483698052442056002582147650823891791181863777398489906819940701542420062012126800917264637126228525397727342302257129219677062327167179438317804646833967452923946195477120121236973353268495865454798436922031548364978832340953201002911519529261547971064325127477253526946999883269137728090362144430448415308371994364543653728032775700775803729882564327881861787802848428824601096086619709967815339838287126712336285895346493660907706620568370442876035848518501602465309284400252276620765775916114552418129353127181259476607630600076749404062201414026300737223580319227895303996564533167264405142242285702416049035652184445204850179136473267662220708140988675321108198158907531253557921850981660779310374412489272738625405409978217647906080853916024708412455441855041407764323960783420346895433553016214750815080592091889646497620159531461073060039726196852254990416936010177879576186859861927097654140756934421037019599391071634003227288855908436851782144557802671651615308979730652441675279745433018964364454653536550112128425747829748273879556865737884528283804620137225868860782716188373124081482619917842343224714390615976520171393097441229562939742025087704731808015285189861178682781526271201656104183520466982939030334274421909985194692079393636274162229466909796635281977038536266312646014162370985556583621746371845750857138820733837294852126860165372761847470096131529340895816847403542042105273171206911932051208840786677017548963697655158907242519721053103229897856258643549720217938279647405523397975321238153340321626311472934822388436900766389745107272815432679769707432138889791473971188033859785256589233461954768704485137407565655181859044237046729856348071761247387203516643863070552776477308875976767534087804646877071393194676954937565136704730596824821660517453035253441123881071795305015313749245900081647435641223091342253571744284873226196570012191382466642946868561455015850172074217066131124262609528242801474027690645240542058465840574935813971004001599040044330109540782884439438272581606231388750740533732385057969268840611592812518813914470331745850010255123411695024458386312151408756731935081021193260562898138074308344916121945736193788070790861586533441173316179756607359696237068131133450842233316209632721977571835414307017453110358622455498581921900228180121170012999220327314027136881337816227202054475122772035248094083638042590203507756685989578240912248814015336749469687627332672606272356922239003299316910501630943915278269549075212607768113748212946024710165960999721282109383167008889234465632637697864083373613121440425141537564814230937829965818185903620356275917013430716169786385327511744891230454082287739953260721362227781410638883348964064117710639457773709810141042303541174337635089732020536917634071523543041850834882319021727882974847506787045087650550108879617802742592466106560593952272247448173617900906221053988032565115848372516427475673174338637036689057002582744406389464389538642417906896742242432007095780160563576152622484617019102151219640840709070874846852493001824001157866781876791523319527086939186906932663109965830804393140958746460867902248519677413487997820152969041257978829526144835390178334431322228533938143811399022635254155248744392549469723717852735279887799393261007846199654685013558614957438386018617987118049879166583884386794232228683210144378728088219505593976975045624027834606019775962151665822783322389025010045622259847428988100047203499968651970605147212123737603975132583832773424625254315543275423350053482800211012234062163037446889239268560348981375047960295213723648898903934332995041468381031270113194269658254982175831832974524382287706125539678579115429909869941399522777355319575861618130682443775781821837210338072323782092137319893386948052499621855755574660335263807469773920977688009609598846894649366582469064677822767073764702777144840076687692055071537001960169900296382912397030811504685135448335335211510380310654973096578450222610732224082513262940313183183603622693469007811240941856679063676587648041371987723897471617571361665541787197816031689724962422669032100912810664837761376180780892470739694043040927196092920399821700698035676628612209681901570579072403717002680918631604095209034700261130906347778263959883432381607979348131513256072324500562301900916986901966454295701339929604637798528097244658932572775208711822322676399415896211041807098170467542178732602912872497044894975230069484244292498487721310626652893618660799594822957144300135960906878467735170539824485718415698409879078060708524193942329628232551278641104283028766514312622984259750507836259248524027952399134460102683501224898384663985962291800034215654058105367627047788435581217244039473437266316925105204693007352888157926058645341980623980924735615152972594077381816544667020933215220094396255151090389399380931367553108135646406501915337579821401375220590258839368031982453175325572831328958201212291609905929200315529721721093640238649072149417595092912233409433756996428264857521195024567526543079176186038417277843607678377451612744301099317706942305868896457762088266915301138930313959801775807052779892660701115706804596749173508723075997080272234537352535130873357068223958913574207112965540285357820987192575871350960706129541307966962085688686673835718340292522324137693023203515226857057366722615604940210502691450977344841304785600134554546588749432400280363611221745693992789046607644959814089869625530816735877194387451449360893407353491649187058137506938050446497969235610567083701240694265358520029913429720790300615879957525857076305424356293162731484170695784314753539475659403611774224387474702353499052143937005005450724831863004589486789741910207012480507197060055165834521490123054862792440380225815091500539140694709774341526166851154271283671322571008291898883049957620652108994462494293808516570031674543708381731090592961794914997988304762668843601360890190267119985173756478408696188066555869769362770791025683654222540885198063971043265692007533487598286978519660778335142164809627758110958642642683650121136895841109422589332096168969246876329954554749853380315163174686053727796195603161758911530415585699793189588537455716434313997471430690954948481431554362432784139989881720638022021225573075104565967350088642901281761541402413525840252462232602310704531470333513304771474179042579839334182816048591892848241694337444918583562970468258519326296539818098755263407417899880461956379521752717099869196349327725229387194946577555130167820620334161223799305538743507281024911810866416720929393091329484249197053979771161137570700238929055399822577995070167600007336678545956930371944538593180368336744043846567699845942107655237949207727737159232636502184919767565007476694445511094984994512489021726637769676671186713875696032672320492659973313742748379359191553224580772790029259722551650258137815111914427196947251930762679422204921719203967187138040473911928461670491814435105291093174087535112878936610297039042498252807604243261949980733795095777912142915886129093273495286503007334490732680972259825937038962287109344918452884492109795800209590256663680796879847859659204387692985994627171195240800172808860424413242406749632316053716433461635050925643462874698992177176490822164087988174334007709223384104946564578307533128138572966434538025413788133144518585856920329743289111014240207939445289727640679504312990064975999461937270226856483082930798493090297425773463274776504413055523667128333187534738087218922351407328826081476343073207394652160550481329345738294766154365299566287395116439584616190381768100974171875640162871972597764449502315960353036943068496868606017126220844335939290337083963097467695273919545710831746466404299991028438677464230807521090830010319013362531824076655976612206107828441252437148194163199343429938850974313766479052369338249878921373472379340721006394642168731659866646930256405451622264671596558894942851557138518623713910539138792707885929943446387467850356487693851804698274528757943024456818230117950126935827069155594319376865019412666153623613012621525744332071180886402708070708956846259263551717091319490133133128571161989612490676369970674387603841204539809857760067645956847386284160005400262274941057616872765962808211899574136045366701321675608049599950724349558970808537970371210640317444339743099911833758205418235153496494781170089045620974564734914616986286523189088360925390977256522317077987958626254407453425297398896265155757890517298748105550955013879756370520765399245422053055351996402543114599631562934101832437744126948198579384113658094520837217326694543733719028567125301375705398294347981343788688367685197711630072139173171772118265602569843702192416421920957760549700815365519264317447001333978088442822381230809197169470164350057351391300633497783395189942598924168997878065092161641519892757523321047932052508031297709572937165363950495374592393756639273854032581065254586643482565889702213347885171020976234121991580768792364554036019301898780575726815845893921147042317562532338116340557640918726234787225847422241714822552118828587258018844866407971883782921017766632310041901474893262680923516092619833309991539544062169461648145424939785767041604933883573356813233058678766175754376984294798696407981563457230585501466816482755399795138295316389185135184168136874712631165675445465481021054800097178464106762294207579748162865265915295445473452428549471122212026182395962022703804272071885543444985983830129113740658588598299645446287605039278219192777204897675242677635806764764509076027171744033726900112630246492675793586579214733666093978269865311051537762935725066167474528168562406893606860915330559711438017389634236087653814843569203402087954921844487252884773653641560347286154517547178759961673644687023553416371379867076009367941750437788944695104440981680206643014847292288088380489577369170044599826834729384936832561601574062743114478674626965472346714540755107942678013215063317823274393873263655371744693347872395394300548205376853215824531314312117171418240350808140420707233385117686305316748449866814943018863592833081765911414299358692748855922950977628983935158192081460623289760985150565808614747049209351450734644371877041530259420213651199632990181661712036399148034263210543832987956809070821052701534003880528168677226560710586529754958570245680923463949308083013524568739434448288472872519967224201469416295556408806211990750263060553354826359624122612431004703428725045056004097891972185326179958520690430249871092484243504120475401876582122199196318828613666561582637457112059606731844336720670178586954754392199778500846591655136170778633941721689134625921218895057406966961973145661869155152603847300174504350268275774517892006919793817492058525678054293642129924912486933393443293202064639033652678679316773437036342837425269228633876880419759998856579825225376103920640879798557725345347254774925892117489753175617292299021683502103995644235327158741418321206667197554404740536842424619098140079348815065946775683178953911450974566294668055958943232060481978144361599242117962976351916949249419479903028680600360692205732011171970772932427912221965857196673360822139824764865010006385568461840976028333817389754333504247093934323498413471585922056279677445151323150677728489802950646713174569239752290850674155366263803130640741458601777106143188774938585941841966548754180189816677506121111300633689424132258590418745375604368488524344467928495743351313903627284909109739842710916800216772164077133307384665006882466924714684407004637861791254743420952508059052230349992718464651388629484490484851615162300323102821996901504156360063277050911826935792837596614973443617196089226087266639208503488146122547498779739626113319101823193412169615658584830878215392088822231557650484511881251290279291284705175440594241443669700617667503472331942086087067294797106734084133078873586551302995556494366278641204092639888360658344710584417080063060339342328334079886301485039180958527655495842438987859671001681015566575289982607284672927589106617001062914128110165714902736482924145414721959412556917497728541967316015381449131253661059899764416686811234037348362366185985594315428646622913852398852804158361523162454062052050033105972539018504679364663064569414693221684152824163305996110749656973582823321996827404264989150426331866841347337673035388959395930183655678954071767272366756792009809820071965707727757058780675373942161333826623426868549092737325776822469736552827895461659800733852683496329587863017594261332433720429915413891544177920713669847386677356400780260468749560562855193379068262400174947653355145097665990185047455484388931503164011316649199974204985256373344223172173850781229788499330037270100678141912591164084665660538756270632581308059719116931744741602579256920660095727871852607839159757428818445552314470060499080884509942140815030117029745622034926598359901854385369858898834354664275027041260621729385547317797908657294604118092361878855540656284912150968376568279878366612620097645559928662753009252274711484286757810324377485915560177927813458839744052331393563408435409039875604341254360630375464946774255755851481496740426272231700670022937041605320868057474569398308858479030893779685122137260154079087757145783995713080017579087326266065038448477415065886086605045261982044924508421708366556848383721583970210769971893620868656221996823470886662380423092980049594890876123950339395132122577435377744181696712713785483015554735026089952947298183131373416061381752357857840774011052793234120742878667213727184897367416737116352738610927919735453486356054779070628827004737154770479355129640666901871643371081003396211514123315879014568245833740018556799125409742293499198609017708409625011774564286941065885750695982350319718012461049550478686586688153314166152917476562080710660918682032159041727929393956178410220030648723182011598413395870685710891119935302163411598887004256091720129684056001744199370519842253709350621687216172203922663651819267845783486978946970839002408855170209879282905228085462124626300799155352520622944794689273352771304188757192734915720794060591709626132014359619476610199707114044389079348300947627679779392486274341275578265692046379017183573016614660668638132843518019205850618676563547070915600991879896807832636073590158907821311672181169911830484076837672790834635531803677492909549165330943224553204192120986045845402524916695653732507307727720824410694665336658616611138919924142670855443462599867207125314922189239654926246033204818494671058524426922468888284734187374108701462958444657414253739743587631563332327817660772528989160264869085273023571432088477698912530071485728988001799771742297830265648415649600985663152034521384217983374513820331233337718580715763597380938591599357648974377657318724132959003031476818289140785910077930416932102015106190677121942500281661269987276705768523591253141567456003210125106305583113193801831927972116945180235650188892162183877814903119537516925393479533448797529787217841915989862234439693213641082364084165913625841070614504144255394955087279754453140939304043706175933854414450269751179284978570596450808592717490343076203975356550741940715322561347728825933183022078650126991871700397035335708190739896512997851735333474089548029935871825940239576727167635919743118631806676713623200731636123796754647401516888322092958162430152661425087049214847612083339428445160063088082186493110073211534957394062901717726854314822340268004117738460582729151137310293691983185615764313008255705241946056441982273106677903151842681844940491093965134426605923038624820174661193209611525763190540149059881894413229723069976280239193468840026058384822077287761892587907594839916230902319343118568271459190716674666623969774236151145231699190838420496122014702575835038058346092962279103329822479891548664976448009468443922272893998167695581924076021970710341702526134632958685517581785791110537780264689367084122053092442797768676198387347643353069196079981945662258400400883699147942411482139584039007508995931299585954131327439937897087967947429213189937991397041398920251879428446179598540695598536505039177702000716231878384335767613088220879210044953594552470364377050495813638767330687849441851908418502824843117223046943107926163043006254537831720457344445212786622893539332730708018928999419866115409135395441628038887202515300111388781750391685352146338891046076879620478182221225185289136202523688268181043429526484207539440958682817268487909939087453562939424653407276446936041927390767917121410530110475297490611990776532185577556693986555669724180986374530511749016412840637033146075596825021917492034254051102761328841271172359110456772211227002166047648300329217057522626508434970114862707615421691565633893001120164500682518181866682744667434076919515183553560512485261471576257670223194045128036444750234629985392312954205863762498685742032953494494103329957472327815807728752585304585158607240266652556635531608510363673085588135193604086882837404893737858577879298014872310492582660217380526894566419632245216787213167905998125256435301987051592128112148803650161227301721747697668329478630853071455584058460743713238871706978576120489107734123397683735016185353971691536086426426211450665790129401799383168835612780016899079651573619708634736831350346542347366104331390200530317523000314042072243773515778631788352709300914716412936487739907374113320070160823262580692811660605531640069524998475602347615093807941175224468568855387282803572854845201193680081642550322144282040650145563323354326915266525906724292371599256248247145155200597900126368112925729888449654017374342321396256670294959976015810132430799363279523166708368681009094130001136924323280741396462913798400489821863686478375909855900146254600843146899377065555595369000511266364058737910550566413704509174056881026431543988652035282394873849808854602782577421845970370910426989605292974847113363735475766005439403049046984089716448146686797003819687842934518467943883702829457386876232396126286350279348354167049434152956642666802257006055893997783976389127321777429809709960324075182862732743766045957100193289596448710042174873672804819870866071562653082012665241738556303946196626727214206845019605352973472849999259248274670002490507970319228547225510837158647268487354287305896800171917726407987631934240319444040006828224454266280530861375366468508872924008203390383073128731623934628909707860191531320177885299987533587594893431050014319708829782855289375889539992829409040706198509957276679927683712856156336318221318230694999560614245252500941547656626348781660496255026386395671093538648210582753773189950051280375463507886559615247653022596490149014780165593285357707505691565650629955058122677102431922707358981054437211483159413773707017825127229272985635906101451639695009880054942859897278852867618718906318089437521743678538607054729541251394413226941921482723778397762577005964640265607351670334199585365093032853141856092323873009318554762774388423552729198031601275734944471056631177376334342404288578049013517297468416422006325878017784751638666209453000988926313359706414127112180896097294336661371511558845738848034948824812837150101185116019596073009891144487552006655262720468722295930506615852692017407508782796367345660380961171236256466886575567796349967030533354040485781054651868761646860700936282152112105616291979271028349072665794325616485439711819485081361288045001393760868452665533247290127196756609473263566103045637368167493238343089750800238557510084182231779093853416493469402909725994043050821755589796138926563278478681840593991792538712950539542046995381423212745211403302672124353129284149308614676867634770150364657491003311591578745709124698293767216648326652182572371369910516080486800239912476685513733183418301369628145330671321837977196089703076566738483681222946554351834866048925282838259992246458085574915390740055553227427618109023002144712775132465937938079177349260594578286725598241371332943852206495897500648931613125982757742737659812573643576259443899796854090833230065699227558912249607394981114925308835878236547931334833454918486350248077464073033418741264819846461246640043700855410267063208575383001188130759182415469016001815961437633964736820553825512611906073159116892889973250988816469440266962318135508128370993587335251309285094374190923628419786599447691500576032233054884547366161025503792191129894678628907825498311924262707919384932472128792477860036945108045145814966206402495350582556892219619815214599226396229868074763853085514255392932305710769795861421672695362177716693963474360291242919977284317941071737825779041734632255905755755485992376455840624644491701416655069900652780751630282127275896423041193608454816976195758961329420498763112919891806443511354167733854645942670225732041263911540741460120173783617720776518763056803346169374391882822770313769469022317604848604534175067807775051943308724694268760702705962703867441786475844842594190823702923710343961971928170510630673419080081378924114504089325699270566221536522766751107594540490126944130268227864946945705046184316035266742803377135039022279599780893730511929363693667007277639876348126256458081123708532596407183069949148534197227869374301889509154099667774573898992367788909013216801846857464374767291801515083472233159501973047748317656666911300622290946752931945403456891085838287481260321713874407676619794172903946691345126701927519877072761067813882275231258056920517814989518763343677765148732581307428640277869489760787855307675805516557393909163020769887979259697643909515853791515972196992327655914820251087321359894697170087385887181727014064445437718621343929610650201877930940077005672374949488014606632105038736295719064336698542525665552977171163547425226072713227348097861002628216095350947531963379409034247688282424671109270096641860899586345539356024194004499682765861804488406111656014491875849267949859200486910659541250390490053478412079448153385854367374914796817887308732430198526013797043566724480142827863061842730403969279878419160773803258572529333022579152251404690926607476545393096110506948479362051525389838965281901143762314463692360245469314087636427795250953667296702448392832798448636938831654754313037784059216824461115941320987216507375692276791038083595049442617043814692360380591326900244100680241766513402265322817816011022617493166354291597184967387945818109687146572658282056128333406895970282058793206557592087330683191149860117655843144701881670350245178509365850105777741767775709909494650862652849119818604491735994175987264953621238212196634941260594164507070866201889512147570917537202501659977486486100620490934652856971208377227471865537990783675945498208384395664691482009838259075163809348177216230218088513468845741154209157235087859151355776338782963076994372043225605031859189743519027335582228489257826358565851529669650093968472817571279484197916098105008837067454240817299468349746698922146203210455065926931657377303095382847816214350197438115912890177846087361527301675644299422743904980796172470571900252266675254173391465262253909409636109515100759302258348084883243554328422800812324158619098548786986508093792419268588920917683010484575582450447861895171269663066654048060661956127213703576237593166779833629372878880750901515763466515920376436236845234421899212881654670990135697320903009506692690231935460350180644409308809218018623525139954947952995264725043419226752031909660239269157329492619362066863003523762839291828798896987094087061787868313379963150477243199062571385665094059065081104450618692093513542283685404237112946645032381929650657926172249462150749409373262827946798358507895838759443381312804449847298581671193091006982021147753288520811603673988424516598378521817159160626071395922720005464217814998086724881393322639854541514275178194507625657203437902217663002460964186142493683363489698186027641342962038592152736583328897123312954443800529160640801109724410105332471451311599746135698199167846005754360831950384312902238752265704711817490048299450190392689025406066918211805795668868889753042018960733036611341907567283704748224981533815193764598415517528804044961668936772878757934094999068084595124149545324174573375500869953594350892795718867440624727934329575503444869692079834284539852928293152650988306394401724336494140410873358351534592588607204293514442353972534710603248341129867766522972145539825741860964436688799445172832211548612137627879842484609007965847718040912654767071276252646853001793026547437693728902235984999566130948031582827906013346808796695684810019503160431383550684128772415752879188293864494770828436202463867044771585359832656422791292627242483809956891050328263586467249662018513522377483231191741461748413721442692939321899220799707248243457209049154121867937733017130019432156582858900192122615894932848846296858915742531367562783195998304717245833813401608648342168924763428914449591786357516248708020341692333102150446616936974598289761378965525309687948116789631195985872069594823879183807031928335987424744553919582945736814962310317120005514513296701908518290026415701355356662514422347304108591569187828994103429315792209213494932231643519943143272362040018534275660970876780567680056008514181184414853928106641427724887993702719752685694178241011700331987427595324280100383915241724122310458459212569002664309836406523278750027831478674197729620892251644849088607847661341040639059989880619252527995188426821628510328411091255961263977628463423790760064877918346113498481777974618875654567166002381043769286192798044790380648612033053497797366725213466292347029298708142561085573132601699113925577859617763732747826963123550065924404527814017089660792558864852256578837804745336130396480300168084866611137371899557529358519163678933383354630687480872713101886978667616704853644897242512572779074854874678926952493372869629180057544681291591513721396976096098936020654652951911151493244474729128005323461463888061463131915915514474095462981432658536291402053991807591014013223850444965066299308715434616286576315733509133196284105124928653403724410141852514625170386129192533042014533666134587186165495282361181605733236096012840313910891566382304105241767067079838241047086701547512370726128578487739243380415461626884098337449394302574928265228897517671641905957723239570464418652411426950464329350406044022420538086563403207921471114919596011192949287797420503786004696633919083544388882826713204334887908438826874858306697133473198717778291910778096061658160880140577868252102542186431963314195334071750662210636257865140389883192610844672960796318617199941852832260983696827696507563648890725299171192326511362727777205075382558072996380012216588212754950903223479178162291929229754870438704381153477025634715705510950935347401285194869710012684199505134391578494141213396123510144812438874237586615946408883964957273243591593072676674612361851574032196049755686343424939802034104465833555634869652989506349798058317854692480176404159567208418750685771710165350526674970719977172013141035931097808861914618212397280327190262814342586572030509447726214580842910161546555516570825094327847700978519717466649204752420813340896134067826026515829874059566703675743190313926031610868640465424583819241337007296184377969842044788887280275524787580626132172687825869418362357093203886820718815971960893492436493984416773480107401215638309927152611902824365025868998498121867884601121225121890725368388974681210186390167155761280485895974125548855552959787097947725867329067436297582615581827199497661310899456634988129350613727397924198335050722740944913981372444439531556642855175034655696710033975316957848927078287535404300254324561506715397072403112227667198265165434080606963200697557708104057527046554142041065843308532227877746383916267037032948635944829268584812219453899258457325120787729406981957131842522045317820268774443376233209169821605602129327902996220737641420775464785199219517401320816081680617328529478165836096502114752824804249570978411323211686997249603511446823225301669885450135909763394709091477150808512473501574641715799084545514443299989202963310769651483598062883015434146487753113388928475256507737020510930471132687332932618188997752699598906906380573701774454362062764336017830824708440338107684243135389594552703443322868804650349996703979075534482302222483721562855703868405105151141953827188057325931552561462274709017995592293962117678286115884953667909452636410813497964998244399987182588542071246251152492562093961873982931131193475255487188564500387907366820950000362139451650383291552318317498132522156779933698972653583356711736903318663685026487753396311171131376287877359722871248613994955897477745826149890667794236683927990902292506835570605482689485845880030670844033015084267471083222375757959813662888724747950806717979131717753070973795003474714342766994135261791481378439405271101664224748298180695821259013466439305815109500577180094935831872174244293287443882068294195643391498562121604924651825669432176736146573203548358237439035650053028338411142314248276231750497334402845319836965505607688340276086671976126410126811935369186504637651425362733019151619546023394987635017738403560998834122428983147348505581380251928345179271605714024989154741105229819387043063361166008938891827306414004487149647958429637761328855853451898784378537969168177878361294308391735493550872012641423882063641908306392139152331113813022113497020869656607447433986120556489983160887225822471049288588113231728072554121811229538819501798889390743865627900373151014587434743292034257121283680353606066288631211854385139291617219937501887885376031559213835064003720005618930582367212960244865368008084653562472895543724745233168030262927245960167825882314426975551566309978367238572529435119919741754741704148619482474876074772964943200494130221908079538724142467980855480624911196538889738158312624731780430834253526576378281394774740444602765995756805985896374840542361810171015981125225985046636434400092875535852453645294499756623988025914191861971456511862802198456728451395431209748049282430641969532284741133610352331271166400247623091140221526629433353570682583395459021557457439335104296714758005597493388109309310856682426961327637897241071430338348803239882009565995416712445771180132019707553691335185823366980373325207341950241424521224456339011788323814485576186306412907383330412902560939637970455476970659698576328209532446461998457836384255245069869019329253271673564266118689979905840625591680412881546009193146041451478139853758415307411739744131831902027156969321536303968735915473132114617748198142298664823430749871049992189199739957700323486965669092812991904072263096038202005809655921581693279286304763980329773799899117857688480691394443851615871649850902787970967414553866403545997466152543912005796473150467398483768755880473573969185015205961539124852067461700728649976169090932362192827060255718463800149729578310358506443209733745624115280464334512541830173168092384116797638386950061506168728242397013231159138814319394521571719192904131761965807027683711504273519940312758612387908179969058282869476471231463918094471007021114140885240864312911550528666715839950249677933590082427769929784743037786811007815679107674551527992397434538406669175823932184707318599680742927329170918879835695528665790289512484488115656256830146259245147885167023062574529515441514586860473946851203443334756781110794861334729697721601783086124459812516158042755423552817228389711328300036910145872443806778693048761991665635720289476796162109208429198898099487728243081178723146863013310035425576080504059188285024916492295060443916533207271186960083301405922451142807390394971646231305708700655391855368039922553958249312526309113120967194189760680973180350676113359520544263119079287695099721588686784943430829291447777979226584263556709664964934835072924684439408892218618059948744660046192609760962275396584401820035992493843300576506243832676192346377065982238719449622460503359514614634789198861725722896312091562690907805750752757657620578524558946490251368755345521932779420971658515444306797033626394290552173609651043507843194242125854998073265530190341043375581076833624315992600980501588896114216932021842143801931169024896426625553507770311769575971073134855036671309215613902392806062803607879304573948257678138978727495349534736177095154411915868888258851563007744944411310297016674190420756866054863636494023190056316265337257025033987062344493412196794682799283577869539802910181305228924390244374905208131989624845864157378163778474782743707737704284676251563458624525165585429648956916705735754411957455591247095185959810571433761037571979622177484008180986874629837572935275770684552132123623229867881031829465968937213034030449903851761973762277576485199366224576940076031624276967543008288886367862512558315558012387622569215785100714538806133786720010430181814077561404276866241888381728534242623087349319420897817826124698587499803141396084467051434053428534122661956481266078317067553060111136812027466987990203845237846675773468521710764526306760215688502562959387899456121718940321852068841781096190847617076600196915880961966636715934234831560610018386306622681356569035110162025103547394038112834534215099020146144222747126297313128238563047476115305406188848793103234754405085988834505219800325229237216151123801592497824657335556028858642127374722286030331817659836346046706423801731742976719512096905646523609124900260158978936354348703268843273669348419147211055985435771348455351481673982783659349839890812428977612998156834412782860100556345850775238528182939944000071783374365004869908919227498727245150756473065594802409661393521951184488514695614239570609458537470135748942595725474564671359825977258105562948663583429969516118889457997158584648384535629790748123934565536219758175778023826931218076004156743988918624677090536704327256341709967752282433090478001465599931370132714553367166527582179499285805838281448196755905989744349223621099908674563101566463803355590214227400553364772482587942064921855670705232206724110497321236914073334118298325587900112763334553393058992171371476930474527650040148715497771258605588313323138967993721876566131073389092657874516863670656390837336428391117358566183955371876115749344472513297980712228391584194458047738326668878756902402750467032443904551144134976707482609442178466873082756493452686768722764287615097098187896054166334462792556521582184287522332369546358728332969709199009261136539134435974527244951255287170939983119067433206376299088103468450668497087965853672595755930415182282597425693233131889026727396573834858444006607036070165592546326690995128381812124944846227276430278583369355505514498969067649356264301976964579381186597527432028065789688359036836346195612839803888767545635882600440590545920666106326391758759758678614337058731515706690939102860345407716580990076963535914197810304011808493694683962168126581595833499733748313663350743658820737084599905183452158309270571734672632400367537259969260381362369361296539787947251212481378394181227501269528584918290078919068618202473347402660266479238816758491931582301949387551588887311796200393995194420689447650319592327847076345839786507713101263114010262834379435357850418495127734304432532765340157586146168929203375933015816219637070631442148690069932381766334897962358345404425147845050494678620619780106798385967196088274456538615836081955123832760529339171401055272797752935425105190065383871839152832844646821568539039626597227529346864939047283251011220126659565783324884023155502189049136698900702887619134974080912502715212853468746978865156779131426833891329447712966982304576808784521845119361871510329406598432883803658585396041909712135841160002559697510305446705491415899584726649071798441781498143441569388578002103228424464802563663237912624680522721349556856698814496525618070320605324671915839178030058763955918651054051198064669937982685190338450506010370260092463876549889877269693827342486465023820982086941169911746742144461976553010001085547097414601794308813597650680372380030611172703888864784149303550005055211848686528337053760888587598482515711032709536870672594893709618709795236219807569861329059004018941092642855149718524502255936968043251103853230773109472478256506551729090792714952156021331295160012314623106133239345787532423762337249513724289491695224547286000328440015542747912769414450949552644406438546722986553219968607025785181378885850925293971544143566274543670006994684437888740503561593552341297138544425564421012263223462031356877052655344127308338290578239604890428173226584519295898367429742373278330230707582308087886176734365821506436701345617930016449717461927140006871373108547659619817453342595968504101220137514424613454229462349361971677756514879573324075904180487282302030009091275384435028888414403400361403562954387290167786693865336956475483389765482069714652644382153125866745638076023403861573727072314396667864596087278495864131651097581868753582435203966857187418799470570868046221444677349327102745513428294334691108472198768302149651826499908480534979031605377832841917924557350067780887396532271839696391136343367988847081520983079847015299004013992120624681211031821164929542230099875466456709991363989644214450239462063914910470360630210315230396880662559193576882026407558519599714637728730841591354204652643120280631248076020532366885892548578402311133898536603423741364448344260516730185034513084264806821085190754010668100552705392479383988667917159166314287092976301100938148790430158619807853744248294409236936598991234207336310074735958763064090230546613772959675905453231202156125178538512089946888833599500615819063871510378793165230132230311310750062100052487559274692735511378921234784656394483707573729978137107031457463806622053823418859314557217311390306451366915489049415999946867282960893326660906086403179437093807656776441220753794851139036987888758191896278987711082816880415942363579977517111119119374689879756253816957649548590599720913704290346261024944180670265970381636573564122433404228179895408604667990626689366044436612943471866356230293564015198969521842544392834774332346009332360034773016563016201821052339535053400298688276106791165597623452377694345836669609739718374792057111108372409033984567719686308551561681545621858876178548943031195574087720573243139137391804056726894529651409446788635273760450354646447536766041498514331207519144253037242490706832029578327927064118031323801574588714446861240806598646982899343779470886134481256706334121800020902213389110476071308926579187414334279343910462831150045658670602582322815261678412605230384295314920909702986169737156347134903119198215195346923676148407922468882667341906718456356608633108910992613386755217450717719933868981499643423069243666196948085494920158304931856435266403347841672601801934376327806298619336961589464380516757643383127285339587912329189548036208404275665107523146667022706221878471202414308242967111009950992794166628112430481024784954927167351847090460563254593452237592659450828492380430461560593189240240248504218608937429822336811259175594368870538594211274317940513939723153010834614382431263805544078956703505294181587659616961009236188175571914476964503452018061125039187268074994453873133485984250643173915310411203307769898416551297792019087655079030274154853433646411776626814094773198277893073575266423773651939970096905032254312541374405083625608942690303615339207219287166796358396310992246829637972622277379960228513420289552668643156292454448582193640934972758394258435875051016653367377449383470522592644858711620298515972283008452701097518036383937021866908979116751723029475425424856181499766348256280347385848704777901022992011263126013610619498583960762181141995023545408682607736944617703283892082605276301439158874347481259400949932193078353710592140408179982911008064708203615250970192327561044913477196266984691165803199234536992082364939475671983512901254840705727322455394269033066576773604201251272672855245827749826292024538796822481900201198593961848078770041153385254473440056565708454432098854523001063463358106250206469791467293801843205359265204011899377283188516605555199522821580741919954994442868403102753556641447838434724573989388934833992626305630531114500729352213856917059560618945442947792163447494037431167448006635757313405710826806661866575828296378700817427089160714365795140660207565442369530722784320649336883402056344068116882272700898157961498138532126753036844938275074865323121782482607462562811793429148534102309654638593129926426384596170367423522320793546794136496760323617818158459390833669272622343423945151684497788484800120709738448956750068588541570614901124353072389730630566579408162524322551135523007288752864178364061787106669185447066512996510100481059843491152609163864788407781393208610818537456504285704823421261228051295708005769288238522859524966424492983834395238052245550659870370250708185237240025760302081530178841514350844984577636330704792073982689750948700066253067626287285970152011798658519403774038095211702485020714856083104434087715744277438340738611845355380384338505920980531892019203951857084769313731148459871632995741009072120050450233469736357381758886579767859666096196545201255189416504979771306193536359278255195680757288744055282045668001958191219878589745385945331455138007542892467358825031057694430834228067697106540162565140330143336144128170798677992963857026198496261055917660459486917355965317268178908152850041736683269907368627806512168811524089504838742678839766146101741007905118808443024693999366303490852210973991923722254878167153446358167804888315481337427402755991479328003247321566139155233922084039037778515196598393613811974241670330451807005136418363626625448889148638809516364290410962961880229525734426768122763830904553431513681101035175206434145625732240324519606998266898888765285891444093942921391289660844854805186343228614541222413665009001457381896086026473232402197696563619648753725625078029721822648125557827780003385365592622194879112602471918819379944755988789418709608765555732585513239611200347093332495803064681610638584661800673159291496927317901607999532760016092120289356196092532277373687831127712117828358288968641578403113569714270550032880066892677833679990150127278423034308811841721912241435377544063459741478412449721234313207657838319662869025000447322660910604838551903156906594351742810247020336401106998822014849200749102706992643728236854332130795323314919433017977353075305818095262033031461093547248659230007624313217507085941541288318263840100160159576725377756167412820622039399775853236522552006237019585131440350748279608282140476035674276658237847595251186070013357405136147752627127823505582935832941630744794247850880883786937717076893685200528222134259698693010238625159990386423061394342466329116715901035515206421508031585242000387762058189629792626805448229844557269213385123333700065276559422968023639200869330270404380694807418460055519499325463704088750217753375474884104714698991299339868607073957132641834392475914064983995213539796975702261813312094452018894090523298144352884421339918226157828644598723932401491062162486848281143707979784422108846093164985115333224078359434266322737927988254195004465880213284932468738489904986919082843450063802998096478327472171254127633647629698453853513044637391652187662425330885656580503740855373019064393903191819139185517407380302243834133898445517142119420413307242951061985515511083856277761765356931355207354110997804560387462107632318356258348486885205847165512247403344754102014308987380963112108350570901080540755844198674882602634777701248808363952220013046133994851637128046303252953537070958433759326134940515012141857990855633833725322454566241551480820736751082728888464601074097467657458900037945684172522982221970594459388239906520014113380593928093614906699522240803817921352553405334835176788390441455073142795786158084083142697924946340736248534387049282692224688202935417423648389682920517924240489447756136986675856827950047612606201652392544338198625821141392154049366475988309247287571540326257737292989033834799144135246808645053031952683307068776013057864344543448264317390852657828002637206200696188574396639711740464030303977052428830218580347683837494575573879911567362879701131476503138019096094410458917059643928989887386173328684729815434159942531776543577088327472525988114843373090810954134869260628451879907194196159362572530967016363122655798390913707425188299003031516755883504683998789749979196120764072099614554329406857593731820200280661906208750319616548809597000489708487662453866003297544240224488802995259299790447399675521482549878608804486692042435088099706140739469920801920087786537714452350318716740154998203182950974717548542533275592975464646499378681550731417323446571779717792374042282507662853076589896639123445790623226207634277685284528380448460693782638360516786543538983866462496277659811161131029751575586701194372279574259948582774376883548485257279428383304608067144174669915076112082431017216412192375759471687453369535705896029821931149755063763415910143273146976003529207077180827996803544374635445999044586741451120508358471905453879791578620992546487509653792922409887124232647138895526795775913617798259609058638662417478875308998833549660109824111930752886782622850738417759977397075335791834838692730997133174179602501406289641685428483388612754388523805306741706770534566672533855998624608295509378792540001847857179101667576721579154589021664131075811048223574547362240409846840887750617634226694349571576825118385368190627100741524970121942752237304314220005739001832543790708746981118650407488311206454040549961359917069208501451637574568776274544404751925624460995012784495138625658554421210599958909407365479917961366875763046536908167536492356102498293085226954791760852902065036176937127496853339554925253600688512081309514630578335443623119442114186400847280537273908132338619759766865247704766341366137888980690768486581248627351347520654773093645697327339824732734174369223376367174071197955398664406466296819802047283334501373981534104033016958035136258253459496112257854429143863201810895031356796737736002841131183495670729236998031398480216151368353171636278158792370048384285244725249864992917668585784424848116280107192703018767978398381388155952442343865126683631552463337340898141064509305868826782421290537163788127188851966433844254817904561782946133159020356306396504613952762174269480569233272398853710966330683658145682020351049179557380770306227687927151559421901549985212247681082568542111558313369073038200385532981097302745096809942384788579361727240643245900101414692677583618994567564329854405362362307856388717821729231470729193539157097843832010743848646055393242474567795312787658629296841714409114660113200657986033388509134272809989217517461878233413305146479926681335311607109534251967931551584916322304339867643132569624293265973644369388691966696295589575673792740551649285802823476159891330546130862689276710783219779860605544823322921459502641141665827867210245098154246201461497185353578935931612215755441853904401008476026278750144598266331040558696625273372742642389839295703283209178130779917957406201203937074590269016887889593608291735802825714580716511848492763503907488768991415145743883169152646756983745665875081635381679846192316923860246515589095665717911965064194303220763073093895578722029310010900246189387370652781422011463741085666143005540488014074004314388799338577381439947719813537692640726227177439131351225130008600827736580982505896864508382809264491146156886172301924244439960694406590495740521998984354746356879279784024089915061155758449522986681353849069374961997432852303938934458786191566345147664819135982547660853231982408665009618095969845945867152143944458264726280269190467159398434408823446291514841574939205758752756779874331643018681433028154127442285035264447320892018480239928618518902914359685809362311922710179368597268104143330987866681791039316282244990861652952795393225157256166682083394126452509233803364022214842696197037139057085016969502845121385343491318675700465802109301663311171584280924949848257103958135050126559629812514293646796775593943973623579290695025399660625397306639259015057967458768644010103978179044138734086043670347981859465490138829078731155689913791228849662847631168950753941572276844243457323465414804262432142482759778287744608852180962773030991330809485163345014017411633512771476600198002467925225810478342795206595324693573234379800028110520718434416541242592078806311727606072800229584970980349285715924470293542365290787819857743983348816461922356199105323547870699496473854184779527074452508390437858792759570643341994587843704958326577627295748464403932475461193768834346476577603351647064258036615334365686369171663302668438944374248085290900625077043509812908448012682444404068783023669678311946411654682157326257642208391481512863723828288640353420884999832157944019880815606610182277114707428169107843539330062651351276349482114451550433548910102270646738311933176386873711042211192783156108277759845519389457538691362068677534131934055219084485478260745777282927789314234264616093791975905182726130905869533091354093422728522392585045411815474238858309083843782860642786166800109314658784332978446599055527765745977692538360024616570800338591520639621220781201903677192542625165985001300875716979996680803739453825612099560576279680350399866891900211149428596038967000359676506069774429200566638615734909122791410854250211089084884078978714845895123690622725978769354466871673894688080791009156579652694518820045421002919546939616351251450359411368732975049049887943064383899846609210371903028684874036216351575352011109309726157478043397150639755325640437507748616045045369376085601366951364681459692740280561105116601965112476398989322582266295610329063469584477030388612533736717022867094637438422367864625872459100271147453175176871871171009615264586294973211964107222461663260595068552202871083138457461473010152627553529491161654657030820246970577697591660440755550311862172561440775644409604546991154176406911256727580007350847669934961211737232263721710581999091480122707573724599998697536326658098209301423950761113448121037523146970800223090327851695575620076590491601083947333350384661879683980793087246013308765486432811981268283269284058060903879976053899146233178662728497542559254024702460831137298797592197074811711450343827556166924719482376790888035792261432732959313342077594576273885866230390613759859450339697636202307334019008401751498608069488278576913766642788581192845804505705951498982894367063359887143494364812692944149248953844130901267909552454665574729034911928147228846007326911972259866069285159019603497594300691243414045230066430401611255466941605130821349474538225812230533911161104629432965710502133354104283560924865155844341435239988118810084112093496447929540066015651537722521430606539099855078849512336617105378408000341296082209028434980748727029380659579270013846652572857034716407288001224126135713300203573029507825322571619187600971691538668496722743423682732692605249543180340088890926842156435900233184583966702103268467199820043319053300795222833523612007296624365810153512365919766269009146111489470251739299090939546976127038126234893727892275577023846307168143051197133958130377487652100883514828705127758717132328801546143974294976959891363853131482254539461466255653081709314527093308168930188281527015168584313914910003469388186788840152273030362369778849023738573232922895097232505288012693570824091128267076920634052764431832756227964502388414194107400923739512620991289493707390229545824593773623439806605880361884075074501662991009096429417801943935424157004363000385290341548445751811022821439029972528127688191258568622819602274769078123584003908433292476080244081086424593825451979351940597089063359075962433838272237190763602493756056612715518246693197340210808883722153473348720142979142813355084994258405040488220438508882675690670083426748900273335347270848808310982468995897411403435189982941717131748590226652671230359854505460167204140757359440422232644562800541359604207670413766730701231961995986998054626455999509243054712047346575744435292418729782178835099713474577651044961633292422310904289716120550365134241627579658484854356977982582612686416711472246418016908512690494968828592561622861897366299095659579917903697698823928559724451851980309986849539679343070691579576987803814104185217675642634595297882761317942088541058099923075298451365811036193498214721009720940885716508172799787647420482549017316025243642028883936539997753581391596464327723848215520720418637956919450862596172374588661538150351913880589431423109212850073947938162102672590433266974040546020193424414912811479099617634577533830091920611103877124302052964147199217871172703422897321236603229995380929942762108399094426668588043208462619649176003229658304373278344533391380872384106496622283747004335842799338446996380708277396394248533378532425544467341784543940252402036210183067652784674313879597191495844910278976590907231971950055152274824896677365039779596856806157729743929761300057091692857314374452497833595950179185286774183391580780835253271967726933819919007195510558554374735545005290179828950067290616270664122402425296062157630793641489294629734918510047459403199648975434687556257452464420495143099294253579645492354631621994936287718122087223112253745377655150780759686437046562445743452648319163089990303087224871359610545115131246468605415896784454716253931751880024228528781422178260607890668110851284445671379406755423881966680942859446205502457871011287431065326299996361243345712493782568376027417197917404363934290017458521111956083721238604754042157558482982511007183191061492500284037823325869914480188728998749800755592295874030959723343711293725282057983394442665681466591171982222596713442878484393553383199513225547921509478199344561053623176759104456702819416287316724442728695931242484504375476932356979897721068441644658423721229497059714983122061077128650054294608164800916497881852906409617402690225766267312869649218185805521646124825544087736376452780395155795904672052346461642845631950825492608997694597986312457778082268200245484865604375057344383132268751856909803186821592205950125219475346753722780197364022732703471802167571873887755365595463437842222903213753885040801948309390231223146120425005459170414936446136182104425615038938247886164773899715342407780250502697704567740728031922123750857884728342525324387662040497705579327435046027104147790930982140196065710622104718440378331457474968225585037301570812501747392938945508511500736765584587727572746294824809818121865122318588592612557635456158820890178307095725160600512471503759355376440612877447616739689826515462011555678128195113075914009025323983401825665626785970369531080373228575069056410731652298648788490311945166976800031710166244571394859414615814271283733968270775435212699189232811228862844107123042762248578561563539712711745030765860457808576403318288292672753419435775694689124188553985523689316715244885231163936170258998160361594132670761639462210477613870837441186871537616256045011758921955570937886463618311290856261701757001627185046027190745834286869807587223059553128107276524543493012008189803636501793881720252871136429486740433193654749034991335442133726018155965447202399808069908243234300512659748395082423931086364584277579238371946244829699796379157337849379762615997200459249437580680347771676808731310274608077513039246980139358869276968153623426937706242168428870685496003833665866968635226910770644000410124049835765009242031117794737075229641315770904080623113980632198445592442651265208146171541369321221653030814032392854937995406763452230607813483250531188055218778682457918707439144902556951024437494104998172042606180790070662046459114785271734531327558593159041409060030235844696679519220589700342849970693621821360625903402646576168205668455662597751918456074076779191350594963980259657492438564084842648628052454411393850115288686936461784586611881416471040575389326973091058397211829173690122091703060596459662324694193758417421291215606274806332254822346120744150585174057300160230538139113632446180445086912846529509999090277198446556152759403266808941588633108487912608352094345571683975147912704018799812745109533104665244537278150176876599835482504622573506892283735231844085924127738532297965540252260028709263147808514955062910302868795641897407939599140605059305820618607647599814345024715535597463199815759298483097841827525637678112152775464608673189748224859493168644964277433059140736227203721063890201003241083218396722918680584354303218387050614289790202085616448527257735863392586840267901874478596800979158331335171200729476771543482222298452863723137993764201334109241512713999759480259582083435496767301114574065439949329137865420060329616352318673515398590553516575902478485943020249987455737999947275712668245443926279226636027273615326361474120121943311246851894505615549251476447977294154475409963009521904565609957821644831285794060927104546207673959601379594670574047226396641809257909667306562749737704810644994266288977943224436715796330938474652856783812554172897546528818493454244272408158700794872889740364953643066917840565388649448542011697579373702493849953989549188457144191337053084336921789883861845032226918863460669116146689457731040382035728803884174573805594613240054340448938656678579123337166935581169099951170049658688095945441341169007757596862253878384175366927281395947986521346299837090831275177294343699042460536208935839654529143424236947544401459128438706647621894700545821608567632748089221589575345930267142760229660686670766338739913540322853357963160612653273398293780358908106587464108209053883723397711373007824611193093647228925698675493676541755652808105027378843472287724448320602212894960421938124263744550994433472408875948621676185597158953961763393375412333363398553893941337053713004617036889552440840583304851082200756211520449474559125445945044597603622327642953147020174073687805932518872600135285542277154389563544470925130530750316058879219072153703027300838084536168114984433055947584493693899473656376538510358097995440497022136149681426865302299988490432709909549135229824919332621125735104144985041950844001342570749147942007244404578875907624772494302354750305654677311691556757171453973556922132864897492324446040045510529300480541522809641763379940991333308533062222019737852538188839139512200092715048424090393501680001538490802330376903728902169643051130083642773717096441732759885282223572504299635697062595849901177772820275934702618697230714814976557210540662899145515163745560881467923296952990788040499191453049952146461667367532064532951922979524250733077396313366319114043295686171201034202258125374391048177479611842795876435770100994660540209147922123782503826676900383082557916666056722481517078540524256808817464630338183662216440665915971326977303581311901397499842873426085793562930200596559455355537326490524310433074097088294506199762546934571270078138964819601406710674025680830002002936083826573232292043339940071429384559518864688899960007114234910738715124125218332199076322913071316203932900945704924503204978829989918053225890702120142049112850751798470689543879711440546834452739024475493235243545078450797052058116025524222211971762411903415272359256261983535488290525060710836409002041199663494409216777890191624611648962797016067054368513777476186857891260619831626919679889595950182317698179223600296960853737572531862645120924191185284246768610794409712998341807060879516809365814389063777335335298740235524725874207060991290042767121274259541032433634276094435156758329740150529342696020315399590401890944209468508193608872633806660916780699595177536432284881285921483811589393491158746602555513050487593781747334856532855075316018244347601857808917042383984182098878562165643216974058790301274556316349539505698224529160358777223032634946366912457519352787466565231773914141774334043014302953341656315857071848494761867289068605421183504376985330069091699803602042276207634894341345244176600175413993438368157764286264600924658901787034494805701014546401645851803980511469764808502584910548125882762504751154669778546056264755463715639294350400229195710423080170867560476260387189224964488363592624341503942563080560399655184026914043408488711097176547319826449194387089248742745175572795195179506457863324156810779722923711734336251829631428433211238310869545706863419743245589676152159726372373197529298092011131745501037066402395599690228138530036246682401176685898766548370594498549436896160830522294134457005963744349465428534750987243577509504746157340837900734253016632750038097623828079771270409855278793837081903703796809471483418769836257377723984718695638855281938394885158977741069054253252403755361679816387880610022535901935232253890958332279282470373461470418625223543409660337292623862957388448696910219468688861750720281263428222964134498309432846762174170095111847555952546880020717362517965335666594255808125116344141865930504771493016273880723684324275845658929098542649509126076575399462848320115122428639088648536351814584055585900687305762405957508256405268066062138720454101365188218361846143536170912386513272429127336446485783920176965903073945291236439966563942133822861182875548305688326485995780352850614346097539914934667934547393375267518090991249907734882059922785633536758370220431724756821909249011124474412849524199328611023553815929615502595438111270637809469524052020682672005849536970588116832229946531305701142475926835249259369568802163046016690175805001657851779062022027720302562782145101632007238429960779382081715927035442088496615140633780268044918807172304401196058945745767257879755177103789438828528530773056056517276502521076950969431004566922620937685278559349675918995951545695095163103622429195320642698030505510367065020352201871328616037911259112808495914829215794179629780101615796267074510098662125712193421820260981754789522194148631045273979428941101856421293252032462584815520578129705887771725691099460444715352708941174163113893025509541307529572008772514609616202826811316104455117288434444073515342475684797884719913335683506875814151700456738125633883780085469100282715366638313607668652182986878589723040263470156409121189496368913035974532804988346567669821413871000628022968324894157658736561605866806108950354430696178575267134582439627075633840087270790695159951086957714882850091120874931344508374158389734070940926414744356900451603289512859760270362345871141143928583934495461217375881134943471964347874876887898000015243005469456480860713346048165200064661183404186051798672718511315170081316306058334099156030018979005245703651206892508361490208831710360261622013288944648742282162149243665729330579561863247236860444881117348968075880985839102782682845451384965109321032792962461353695566325213195667803874538244343563603263187163123312111795450409288199198802242487162811723000568504506089783195359570775246527593989580710815151457973913624724871799306409367130926378046925577735598498603268313073556052622948549078911097938671785859131664748868789793847307797318706286419758477113356993083600938421411638996852397355819009218562593418457374133713758798234650159149927282265907527250807582876327384503738206366047965799967709558090058675950235271531705462172985649059371761178159320040857450991271301347044666267628057685761062181684695612307014536397446439594690479064154510420610360444973469979561963276887857004156611292096714912878983962230436938935752646958206184486796203313996376190394596388084970554554650180765849040774012572626917723801992156606674294708738749300043682433973433184773715163178590029633471395436856038486313188405030272289882862840152142396917773675604955986004429645988250985109821826593025752139796344803366273678297211479426747104311569470479530096760118211424639990256081677408289325592059493154992634802309482820930282698199134794212407387080459574522013248351285523202564885707693102837648223634827950119809232606137893049435002340401777506478232652161107697635610494248294431503893457577701351876438244209096346743815584387507880392419857725753591286078300252199230077958371866370514984471831059784235284047670036705017996667775957034670949794933281113346814508506464158885212367737644843102358072459294844422820469146651047022668674051336058730495340600857150723544345959714617517792631786760287405407755981402246266550205624029313417239815242070530002320013072541201706579664930399252895119531488150590165735546850520812285052854111133803267417379239737679612705411972869926187715788667279892071739765958125841080137706462304964941269273010745851991365122897615304760448767200306615124494646777866915310975817875723582718832251820807117252007199269093412251347785820856709659796234409475215188645342499376596653229010456958844787498674289028026102711390915540171992275277788643149057532959819840465579178130697806858316800678150179714018630973306830893090356415323139697619791388898058626281689000332953464665296117104880490332819986700013932043141801943887131460571589148365539241398780086473038418275420839344556229519415415146382952578659294187263327004341122964116208147928778764650168320279389452696974422995315036404650002867665183351740701858359535134838886772404621298253099772537592988843300107852393388110865637844209946303039682198027123352405368440889455345404728095994136239046423638676317213235670972927918713304200656342471004954762084143305527025144226675346472832577346305864709604935061316575675999966484695930711674395046341997585902917087807999548146539258794684568901944267553243742488331446123319732385615603731946003521719992858633679149600089956831412672824515070822809349036349325216301037949730198290961103528336456890533490929732489568209831061770873223830445440830970661962319430290872441111888514041208318977710032773042399961045204368200847909236720209846379296751552539440275711520066710352345835296520274443112778942841854307558162509260719355331079952403501809343908920057592931006272595078424567564431136094173814781760216272091121275555850165131226746425192630206165046565231212526029844108277727723566536978656721043331220051305854200843518821419769007213135787439008562428817263980267793045071285042462985507714696032397209025349872354165832266034322068240584449668670459745438397737792858613981982539204490800593288895253526581337121646428025574601449367057788424684964479775264622312942794125130477199529580993046595785592556013420200579431555250354432931423001491577628355732042806742705209105420618927676275857693128918199652252751517895312163342509313514266576897225465738677131480270286165007992925943808364205462767919186652559022781472901575024119182057557143333229114136074066493779248269554928223513004056887561585577323841312991958242040731705937688933309312432791998448812246377843907714317071015266221082341465370403934874752546329224863395470873532320296793778304093373725553478774433939082432940261046031807892677882889868137273987000100781440435357512667284027218788150459502111783210656661692112875432481178206619488381594760732848094296878464727351665516299508046440820303933083559167045974493055644764259717959456154720594738616397248396972582500283123592973891129101977715906181143535443957369039303173132000675015139129804875672266288240196503440926193104393126744420937344795951917872391377705243949798964995627880060819414880802684655886333257724168736179262311885984214701599169230378557267234333258186403728236768634405532133682415272444357108214055583680303312941187262261842460108764120683025578535637905581648697679416921616279101514015982369580345845983683821706026513816209374206317103850560786490914733647338506634556336658917848854902426332546163751998476724802208824371058401829261343084101930291397712367911396821507555094153089420616720362850597694396770826009975240483419423550793615953916574298211623807542807310841468699335354168341440876896921872423414443130902735286088887048728356297303762799212481997648883110176911032568342764541624942818233430090350395343404047109105761743392319754276559598093994147019649144702472190025211577577375887069975696490955933223571904641208277054981882604570011842929856013094948942626644725910433968635749973739296631102071450136599304943516159652370074551206553785397584862430496985588608500532999532930122908178249433834627935664193313220704184135814919020609260570863176419929083663948227485637707548205738689031925597561692949398866238084434962625213964992429361894173456415918956183992976087968720555849347199929377586422958709535358620113712245262974842232234580122303388468272912410235362228227163812069352281130238821224841410362786222632640004747808054993662093127231009074299356626073444376567927974564426159235803129645161634964348887553365158323520567829067979114688667464646796993284748354087933953706102447245169842966408554874346022873988074417229075311187648532991225196690794641823649614218068294113300846174946629182448885296964381279528088271676948704610090150927158817829292908509947165730298302425507855688324929948840511544090499671220399843809615968748624762956074450505050586995795873954898542257893904493227550314868432807114516700630829742542396417142027890631939464933912843404285510245328150567866205233719078778665038289334684928900433559315434177312377310517513933909907385208400422675366646267310376102961467527001293527392542387326864928947008175690029349025368668245552751875265904865132978225167718855032333647018515883551929740484444714554109491427689677924836003538476096335671565790095766694256781796701001988050364241580575416150083167031573217028988689629179102603980127608127317098253457221093945174804737124338362419132460090173542689250099241071455499471046705712706916340509168476962212072924134543959339309120361973968352250568110544207326154065831541421762337759670921682286058455387601397257567868369546045475359799422677662032060019591869632439857270295068219051336887135353577673871890790998886624009811350941231320400396605586508596622920231496349443761541711208653334198661716297207744142208547918506915336484897194967805792778634975175278071687939822087992614124556790965306858094609178703908608863578306227820968206946192181757162333454317552701974905370013841677109188258026494458072619808446734339750369046039163540818390610510021570524310917940687768282746454537746678235531043588466715890618826724647091652269758874451141728522317291695975982696938570132569098999522197229014761849545083191198814219189489002307369540828590441023523164756805632113895950311386452821567849290688479835067908973347017285337898870059195073918365190426791901476469480405157725826464560330683561265568119044252516003841878281385232818739430976546103788264872978640984451004028161861276369062248992160771063719507999958499623876260031095090467913048276101777653905391091239628999897310941494456078293662808023324451593636312668386164584811236281978012035069324228278217656679477728988358215349175875550119536098142434255108011618164880224283268219799095018126572634267574566618924372947817699789939652114239068521074802271457284939487911297029678993216304057277713052540713092092561059242356176056701059330800302184278744251703420683754523218179316040774853064222649167847762520111339259562596093050612241860634191715787214017637343140397248790796695198771874276540012519052520362775176958666768104262864059773260975382767887982103254069092987782836264599004882690113994500365366599298557080233624008724625432676233881530378873256705807036654123346385727420302029680886153935774420320145827849946116568732698201585798192060417735714489479862703390698718751534686500843539276691659871152004052270735584588885818149501985878026409086624123556912788755197169612397072705924969867431631686387086552858591524947219019116383412618486573883618194839580258939340051940075017148015903959876979209670924857313240802522994181516367917681500438451501105587879987868653986331036355644780832247295834110258806132551020277485709060096027179961724683955078378221678732660805381324255119895554792870415502630227465808999370686470046524706389484662278531605029468320353393336714727341881591534240986354312915363585077157233889293941555354786272554411853504660168390057011180158306642908755367730275255380178666591041593736688625772775753638574309430611131533188320481922002594924266497958476602774209689048958629758012934798108700844458336650151249478292122168426099930097220556318535600092461481854186440870564847380100981791222461606565320182468246386575961408815868886961979773204720082197444446228347963272143992380353565919119175593359608900098729507126517835283861791217525185118038642239854247100480797931551266616207912954360571184293771376660982780090845556292303940692859132204665608973903276451000913357542831250160640757508430415927825565327857719977368073348646587284926668389095802096593738411025342007652023054793606752873328231489143788929966781012656179368351115050488711113318073231869548342719039041014442270043598838726856482805844329300686962089106860883345285030172631324443135698044871531144235976288390125972669498212263892634413736676527425910277675856597106228247539612737747226827491935266723042643854764571631666757674159007487131722144984926566415331706129961988380569426172515221754626949809157301477986817530704279794059771446272696992831363082044748506366150512723137023645307177584909066320673890231649655463372996154170642715513538558731711505883645493588250639000233544665719027738515334772219995009904933371719613992329105107202142811591595038326767008577765810856518920543450110888134220040589725534512874573727577930753165202537317874525118158078419145182137166810005639383703431854800514897876861754347217412636232184456032719980265570185476926873388639032477695294036240962548462259079552826712417233133706290655429687595284875056828225832124123191272290467308870347128720393496690710409940882634153641629946898992749909478623636334023335597347320460288579198116420799105141882955353787941844097829251393045477403225085319194213416233627474318851782902426922707749455284975700080876198735836847810211185592623811059092028881969546307595789015923463243296690075061888735077700514210842017166585661559888998488632864983574803070581189958395498045893417594758904739755083469422199601332496768893270632934226035789644093228059171511787006952586426829912776737204458850745492605671245461116338615798150729127906303104398467723076522029972285114631070457629967365016586461038675419341541164720473444113837501049236479756669875194957170926427569874434265301291273654371137596455552563570085209601341394333770371487938732327733086285284554815361289125801672670730976045336903514037669973071565025158219510147097683331049876652409111056826708815293271020349957768148192712685696311809770917328631524400729979976685533536059988262463840052776753282895248339556293280675160707303734549770314322819011659333746403413336049332081925603797701832104315141008254195464546610638194691250638541957470974139351881630736391117229276573849119075871295489570209706347865626309071291345434297982534241477627831130645178840087863380384790601598988566665643071852624674415601914293767703866622419024330482141465408123551503714401606295585562187094651163409322810544705581527095157833663220699314058751955591820515054704803977131782029200856884493250052159985773347668652090415623413549469428198817319485247880779832391545866171592824240725487590805184221667741214595965790754934147135856368783607136771847387956364208293088925828835698649908998434869724658980691027264996368768273645716216874638623166382873860089901216890145203146487862151031678052203489455428682129996479290659494706130347664602305990165449286504965089286245046505634918959354935353755964108119797373880070419311475570062241524764358952495224386549658221333653444199886279674808859207151361560639528812315213535163910170238217351890899865592339400931451417120626320392372545607974136555170131875567492277770558920842761383250562016212807920048419292963913004465214640554949682556603569794441469484046574793569057460679879769683576218772993317706197562686210536711030790813224184406815328003902777846708975246173768588878921955227893134270279573025440349160462456766901665793494795365552509490416608015885258971448872737995910469541941524060335044259678077327795692362766303290080250573507635683224369675481712574930231653306177814948203320460722508835079842487853263194075797459865276522986223190178842747055271305842415229387016825249493995823826344744674861009059718566884222223236005792593420488411968238521329938904448551190061835130961619120936801148008250680872330477146009998991329406935416431222428054635555238205739528612366331881742164202999223777768885615501741867758361623896338340191011082852000057921059355061922405993028556890428120765246619094691143561049034559327155431828764554266893965634280699589869441652787039133440448696291257594191585405453237397971396493241958713061511483152634621304269274634530519263264943192165696740381635518573571152390542422853358155659118799305877552360543983029783036846379640748555182296067931296298338401479484584850884104094675904354140372183338652224213547064978001514051772813632005820669051448283071254236109055938508958190329478018369092222666187382187207485754250362308500863301956383986778760814342865815634597100583515004663259843334749215031526364053862376864459141834432984255533102004933662466497336875280027118115214946667822168941298969816682388418085828877578861044410815331677186009810053170793366330567433894813513669997561001279346901645969964394953370317046619941964189918521903873295925666868368041856934524937108341618653884041269145987979593738949449224336616587052871933938815363900293691447144638106149958786338110669299051551591132282072626277242048435000660335159249145176781859430724276976363403461118317580328619627458455530261110837193123298317000227296028109557527009994337601000630220239669751080010324127604194990882818795539323317027994211872315620940619377169585291376841925321054153331783670356588502404066584441416867633295005475815410188882583445642060230279281262344231633674263523496658572400957893068145070524412654047296197624053745299274015592596202119012528484722882504574462278803600055249776670524034075504487599907869409547932329163668489210127971627551558786577694456602111503011247050018729278496947623063879541982925063755242050084626756807048390444551454323168360806991816142932072637761271629181039208374227774228460794517933622708443884799311663029153743094462853051933453439666453694175654582873509051783975397072130252999005064498035944319116635761480376047614068348106666687629006001685728554128336844286768273910189576179234719677664192296261617898759866612316166899774757013719970456470918292210340721891272823856220632972347540010193993314944426568604235340593545630663276295747776663931845046554456104767569936011647495257151716426909797125285195198381263738667189597469740592398560421425656485927702947462430811686916800554587036555168997636694222888610759070358640111311375294820393468907919930250243345099545958375158374172279975001448672326366570436936204098772203951824237307466266921269092908092211344652064842092562763816282262878084655310338991777552155513485894633011725785348034904882001956374559532256812577155761246114670257865099059880240836117702292731336303015870783629459653358114819965924808208726618571102876424122242566450410013403838475601696903338686657894711188685121127390865430071713651523974444383088619036270959989493809238206892555232435188120088791149042888287800985627610856414133553527624790529649113411854050230158928944910963183581826054447044275870108223174553793913011013170602486509447474988191542256737676133210489945260114186869407032409331042143582157656288112753191646277540927781547369919029928322669994109783540221583593459308226785826108485068455870947392326823637929441483322312295011789182776902261347422777891270618461943124913433210291181597282637154354966231392447071080121394812995152651483059253865570953828073602302248976889380184375526554183861022939444100028760612864316609416310253117707956590572746608775872183441983597247955114947979473551822627371644709012130900505229982697205914493476900630355088853988956348913903036208804390600158817487132680922895760143612595097285596921847572863025946174744994576545801383562402366551782649500902996689855894147801764501012655392895694526169036187400303421701486705050535995809498900692152731550260201214358175291658105010023073547644516441645501898368205377349829522436897751790529802618670102056180544121570586752284232901658085562073096383795085942053298845310898898378233952582241162859946820281746895755888921776586655666250654017773967273297133322713685117003487407381655045993454302161697218025548928293234674668095418256416222802356682241796847422160064933982805772202108405844755461555880122434821782610317180795299502165852442014529872181596777930885522918118396249254438300145522099083644996314927976075304808180296412287014713817931213844153743479022280532986887627171318478855890856727302249804269583653237905257575070284469401366105592792506552720539344489573571145493818220059968252783634620696768432189956328135557745802498049719854808229869572315357423087612552974064901966788168424135049938680771224752130181194522000008235238016426058166561648432547097788222517758105383069195280002191914819398033505650063647780482410856411019638869942373507908387992205715166702210331664978642477760676878953632405668739744936349445957721527419679173700156338170162331512521533929687394995038741884240904704432946912012044415027674174750803219085550747446375193885933149649366466405153630195166182096461010335542932792735307708987904883013315386054679835783174367446470042234184490397497606976533026603949569111416021471381940430223580369047079141568360780458818848193616506364364859546305740620794476371723301811585464709016122196906847066950284503230949023233520269017190506395975340173905446229452812434267601652517687169547596929510483460434508148335858509116416064302652015275955137397045698776449601384428509176147677693684344382714470880483340552615265038829952064130825519246108463454938915614291781778014974165724324290508480799125573425479424548960794487461000290474780335937144343135229385115650977929248381413725247790905177667179718338364982488012636929373828301412157537495741548736473841432940882283230568968145415387414835922881624867096679045069232853704486565615535032362304200044237389082503057641082655833847732368673183013883652218643540049425299143972542478952960608153086980742826081261163483946155027783902254262656317774235247396161333462965145359381136711280347482250061654593828137761006381073547009871963863814647676117493986305438916522772758197519076240086926650194715193519697526488754182157825139626424089906931266345706998791787676895925608455271574198084922362468518274543243948487183791913434318153830441028259246367213315362082653283522878187848996235852324016934262949486808172382670924451803223389855531102707752932202811106479125486741072141890942816677953947263330667684146025666332679570604395472063845948373687140363834619845603993820903745935298118390146886981248676083284809320148566264757217829834820492027387858943887880265681970788587003708958699449168241365321374858248427652268355827378440107094570114852700651137447136073649988279397939493804838481731943735730092156806378582579821740502423835508662471593492759761705878171156226679071903436232265780889355228838868053325593882208873881395032921529267455903879693022261728786283046922414242915015979816611417184549096149440354545788599034337576802134165658271807583865721914461543264307990816139755277962747048343631049433941226616696336002410480131824454627274600535516923271487087356627518165084005766108248119472171968862452459419862612564719109855401288169272776824199283425737334133109129869660464514661966250994826308771899588315734279978056187453721596265090898380553754631795215637132978750690853722903723054902505787811196131571331422566959898338895268185284868019228363934831871391447882925218592481660351662467428226831777732992960423216369926307870582260331871398699426639727839595699507382487697655035831558226069891373409587467469814625608419691822873299928219550709720800702377484667237026697275282694709335798588052522067064234151379542692640991815233094489290629036416900085338478802364238957414824269379628868354023419681213681923224517501399962099599822115343961125237520712766036363784272240746400229874518128553002985757336493440298751828265727318106867949465436599801887767514001800312604018228512554945856452422975539186813415831779743796547353803549433858887766739765549257550827478725127741715251691936463912207804794223621265990855506614734524092858317962921734776766803466700424871998407255171030064165876048848072605435974638857295890542406375521474300244698582663818427874551641837067952994830890303886746988768272519837342675529095264472471642885077759444856240435134328036530105918093999392237768483958996815546226233344659533067102446600479257957925626829895015402990874737951746646228338851757998989572703835077734427877778324172065619270060936987120091800650531606118641700000719340399187133362798613554747391227487449412153010230854744026746586927386989986545880055796129435330413737052319500898934678464215012108778258635590360975535017367798416045741815239467167826520977660757838719992637039631566245520296743309487857863440317660155505692127518758965625271634993312374992111220791446860789919045165305420444532580636119381466720160224130845424117249914598441413342984667164604171853044962381687367198723643010557114436403694076290704895490717545425608661278013032521488334414327964237792090767084601783272831326045989565133216474215984072108809117369429926534628771518914826135081551792536797732296824616726400922399693421173788811724208126397426441238326767401007386468771576578713405459710395432717501023540508368225474158004778266040340379545220831960098199184924865023076954775025214932066101556990535145323765039476212416272604600907514797145242960837371495684894927024997794496542359596442300763998200369096086238964072060594032154850418351583024851289104583521950984571850708051300372465520614320468348743332653595142501212108773911885370072742822556837638053195795584859580328661289845415010403909086646544114295741634794058563546513688614397934548860978377668330609885382906770250525519490252231545320893487517131854046598686394019990033242342273667850708572233150732438568674240542756947147969741301623016047916257654116856593516552364031999529376941092294262588209394939359300167795760624440034990294036886142716598698745368522459557946866175898292871107624581481950916764752623028486538882938767851968751773547886179449898831392767503975520436204343069330945926781682241979468774708765291024384221918193629395732463124901000594201771289032560738980304753360569233651231117109921775334493528122069069331785887827334078986378227396089106453046543988440904132906367550009094922912778680958907139601088443726271988235830977153659447471175314117518643159402383452386668641155856097576570308048234948046900031161430148958562020383924086830161194856306025184752086007705186346091417991110535684628481223298849656556081014342092679624089523505752262702006556516676864923582109494286646707860066981637800599875404172981982194355634327418924412345314238198024283077895646453068259926644962749294581893083551768388637824805799927715895604681667939361394005208587373866407756510423233378530381755023663379174306768581185390579518799862556087719027673886085303129451055426355594440592589664322268033957314342036213268532819914938325371216481471976590332014694524762437000928125039011577479215409828927891772634362592196121478972976491921716912142489819829994858368165600383230795778086324003857336670386420376384764364826483757664519560472700738773104350231429213342900489878118441100853725761697533146127774873076740828782047908437710461450449771705061675443269004584896187344232318943722991454740270841927482922836957301611423496743784415398381448185978286072720726010096801125611205501825876106146361523686421141333771596408007535377434074911731948824737715346451648624818738090142025874929469704180331684954189284639894798481130102696830852811303283604861309441036683921656200447078761080573743932007106253394136401873006367734225277262490468298569841235496009329335143499791063425479460931393658161737808834876537539297698949898432845167745570523631144993768422526274502928061084807321637029877472037041290230500914938586367459806204892956142153067444696743919799183546149384170450717303648160452878424569341373943441162202916581716554119306114446871635831529946426107507668889866052489609553481334449085776342626743799600178000419241286913727340829743702535657806136525845889805114132334210483024604591411324880776353506456979695544282516446187247003375201493478943293147574535004231211088229423334216581508394306271646744537949984441134178561934992960995045772761234374541248079539159938847941499039580584382510112737304192973832805205454641262242300526597283998887143891950004176907187995178704966622283037282052521930653911631123726448033002484256621840342105955983308646874631411647572907966042444008692279802057849858030438743675231937971032591364357402764937005152893035350979436524106059431257534323472930197912355690495794700271675891902753438061346620227716613497876531290825870338879686411957048415113276029525725827287306623781113328513417144077789936385295948244260233796476808297933278438784314175355666880647794833717699868125913418648691772249748244944645685544292771388870282645201755211893987273416128767310472241249719707047433726707283018177030381828317710855092956174244444427943924787693797014266367688328861305560087851126562877501697282143997135223529222827431343379544365580753504984008750737607854296279747932038527120623730840302386978226937626465523558442693479381354230089946790336958970794734841636860614045373649426321606500972609440559018923434760064169228154610839883466586863909735830563311872344652366316188514735682117745610624987024028109252703343698651869518440107862517253783405912595706081960986540572761089005110895864147387051745655523741224186249597188296645392364892344864950874579261269189178646682365104361147662849196450456846432408945329963119289491894899242023888420463463860712457753250144416461929776180593993325281532718293434024110895916124811577513700741652210424714926111858953326530313614559447072920995201223133475522083171035603156305476516659926319513162754928637552075413696820384297983446982644699479049064937856122105243426841669407904299781958019818912710469726422347100827774510266954740252972382727027998853276105859822769112699365468616083310596275918312837160633618343089686878742194297297284595818213829134094085875861676621946874565970507052263054967047785781168130365881972027255203444670773914180304766719902357430190521050889783796124448996750092786673170620836774885706966997498099704896412132243095162558804644897038442733315539802476023864769929226856483081632506793154521790582525248874704969673972789304468984417071176429076685599572377122615305012864800623579805501700315836827474284717552479444405912491035985820322452185885451674901710281957520149695499168437682191547670523920175991173599429964709735439075787431924224796627625763427229042049836706184710507367755440649031290014048907533168438413368903425265304693557065974138319884587269720350787284303693317237782113529719421163580879353950204859115163905859156752755851006909789623711490212747379670556599497482846030875753190426336939692100320892276496966340671801509301176053943010340327770154983194826793681798836770190682559717034491613401613832671833195471824474277166376399922842533452469584644464956378988398045855672107101950383459417622843456032990542837525562746467100407726133767359807268746691763502628076006063920913856238372530481712668240171703187253037714097377404740255430283166238873684025168177739443058261887035128656847510364507306695630397128633482120657729408485566119745257655361307614589134934906981976189707251687934557064508994881414556117676219953976859033524922957604604029764377928033486556031731141490718203463714043161300709220738691194532793668120487146422186506649472235996552650666744679651584912541548976441694614780154864424245859075626467539616250348794390524284569497876121309204197268538149836706762747302707206037772176648151918305829990582535145885512066246603148387068279082951104594557739640883170060516150375252324584728109299071582457655346664907138469784709461266010809633900333866647352034131481737050401087937862330000567438552095202696944518081399082144869924058918937957117366595025106824972904501788004651129236993509310395805516449849486621859663385106687931769358136137271254660698854812536312577648444609148477606646990598397335800748266017021769569260540106117779837279661932974283532920888826297016820356947067922506444714020789731154420318798046436065371156687332185742850968403364635956711564811122042198333291983203822414662204805640535550575808510626128328303908329268030591662534085722458998420620787972520075081404509630437368461112320826727398439397110874211608804599983858374037946070615745796284425494881546838181919076209505971269184837754032916022819186038440984720687350607759006273535188180457054764206130882347355674030506724387078087177211827642983992932919418164695294394451640224613498942630626862078372815280478677621761168568809754597216638471926505953428283976565703482574045296742259248286419689948415775844510234439890163978557656563884141149871572357766308056073115721170572618389868211027739963345593795590417586232417211980744206534878046528142300983279867662260722848177845264215253596086364695767505734090806133319265156989273217986548481172097210990201348603446059768447973985972171424194394315355246155774683085816666275380730098980951231825735117693245952132642855917257036977463533214863390178124148343076040894573018201243198029809301042586058488845496742987623438118694325100180236555871298141721669285888918896882689278867284209850699085180570819651133842368781681533593790676916030298295841697129688028445762876951201328259778533217680446890913658650465298051938562367520337140606423399144413374769144389773727176585335020363644668699968816643881073350803505164185697639355829829430876560308755486327643090405775947246442123095643019471619537478252636958290432614299844070465846506519849916492760451476916487558463260405135668525495471515687802827105099706435356498334762658155007399768532151881322320742137526174427913125457357212197396877891022458454082521791163144304008622790197397607027042101907171310564575926988669786291657794199981894587439500239524150409339842845807351564427927587045982940168390458543302881855853312432076782937352072299479565683652449262648379144072506158878249555429575179144768437714891187225751066354537828582890813765397803089668558670174195952632345474208147300462302796009618912510260737519172245241083998641186781667128556940126617430585846834594120602630288642102207145603670551676529174334973804822601202725448529800597432094679679313408896166158490668255783269416420511174210474041893089169054144522206014889196431263630537253395936697566612262579043185815494838789752243041692678079502729559531404843420446062682200062256241738424944615996481197059957080745818505979823850487049884202419704768669744199823709028059078329459572466843773951863078287528314618659957687017519683967664367644197309985946782265344693399413141577267064944856295997293373578379305014989257713018385569929562537726180449375998620760604311481017616985334506095608857768586978580293720330545334198531167211739445025010357637205328544083506768040020166546266729727641771137420720556106712111541789268307602992088179521529145334835281764560464884848907307008863059681657578715730651351309133025831618070652479846278804818869941013662804578936736702644200123333582664264281012805190373004845028699328859389152212506069730471186405773803650286964285728840797301899714256966633087463532060516856048217220983658576658631231137563989625455463359273110811168780451516144386548806070647923078042996213311564892371407121828215034997282944622348068376340986010095048204197838133104737105783484672667708303243133205332906272938356401942100004429496110414246423919759932749990102275558053346022052689232309590994037988727181331557642185479086858342288609136747180465995974003191040057237645334842913126348662743555854935630163675494665855698548540789581405013235238719257764766828818846849287646545386227618888846953809966830132945545825846831170489722286416292225476119482916756403670713673144487782543051015845634413560408954820677903797502276741207620578170558826693004766480111078885946508757996442399121541657224399261341214952086071678494154257778923363903704590350472798565549473029634229508564876497895091465820535791363471521594459066058686428894030221323006747843814744722976567740700385498445727113854620816326347512991370553614311966702825406343711646143350114935068495170270621547896490894754360534799070117024116083610642846083426631576922884718300685748880182135735894271155731588494715243615693436653200480740229952498261419659812004143044960115844222009451006402670356066867918563724126904544587927456384205306899458815965646934463289785025047091266094166958321331394090229137739631650724072828170547848397072139993055534378361912557357953256515853203399159039555892334766234739973002756162052099382995025927532369116742282669573875049840699870563239527895826795993535057367837554238273105186263849234764125889545964167588275723123677633451494469476453838436642421399649460821321080859908804160749019260687744760746983926614701360557039157191819545160376650499769083405745748309300526913197552809202645687483787744181384499630797797419320240538793668608534096947204214553700572025819876159310186487951224284557284672766968802094326124422386371565843860348890346215729786707873369560171357057245799454800682646038981959942916080821606336989572934011548099201216127577714720422138962652881187291967477907356373901940133181180786931745120049986753774294221586731659654630245400410705952541474515189414518486531674712151647945691451049947631048692406198557334698150150525428425903574925498863637839266881651672084269658118310734526761829138293856525704318262231844927147244759876827639921686203733040669161728900673235635384812671353134509710296672456655560349830978456096246507283462572226994798478739135260975695066486882521054609479425983642149074331539275517464052465817072631928241295445241462971844063841884644842050058492976561471113114829822263323749847231310271304919700930413500127322040974877250692540589056251869535642035410922427622753792769223519454803816616179351893728823940559267306412993708294109415179071647977308895094864345722785307707118000226067416987061802881473976556871935550138684655147809562573275370569849542958478980780358312464425883991984819286763026154361835263953665176693265789362782666618256492997925565091111364761023046394185399987580943722892624297931220629196397998873268700581171022400529861378584904478262593867721041975618659616281154912204970683642260451614932798863799824469640589040802165219461495616889277108367826104451169234671874935582939789849984042826607168984743372732401914583524427677863614807754353232758810241488443953007501887770051160686452741241838941858466849570525304083829437191270952581646987646328512603936668190450110108071117414114008326797742973284607353652951591501662641110458420236954332178136724469437585816746721952244401375460868592885888356460829471049181945164196944200044920009201522100917228655039672299147325692578114897978150575628017064713789457911998503029189561347830817510737987772480922772433541434344190153169033985815743159633063512247262336129280867456602557198065783854015516594286948115317065712390938056047927992767492807961013557595650683209129455238065823589726325700258316213563209816360026161072094072038557908200625602545319410925240150968902877387803358996089468970903892846000425035145399248372855783101305590874408839242694064158150697293629973833208352937294840636449968502267666607626915949352008452662595191049902176717621678725385841449426183338186054589303963368229559232895886211739346480933377512533271573058335315320660085798167854758255717825846844972795504310127093296423356647707426226276604818904370630983494878429614218351586942301479116919856059654058811198399534204416261976929581636168076813022515748791880615243374877389613667573594278259006277801594703696425030577401626206182748645295802192496357954111744426358867709624690933473819925962257943529474159981207568265182604086529978380460795831067680821659544305654187759877362677100217688215277660705687719687910625138458443645654301798930358468776542447733332627778531850120374723673264794377025243769124729833584773735639825866019749052844285053320313515129148316312539114226445627584906677205301007277803852112399678291030501567448238941478307280952263782370755645311385298747523719571741676137873040576856683858908730084367871048722620145540090962272366267780452587888277624674566959672691883927580116306656418390382059182775124930858720528908062801181998862525255904825706736160460321147800269318139364806857708412627430695662052200987428700157104043405503960987055436780522951492137049188421863320022685386225316413920914647501543199260771894040095461242331111544354759572996847933449169085634520609605305774181810612311374630729320389613802770262174204291623320505016366899778784340222820975949626562085259759163637417195069392101352666352673154832732413169104363046739624912262023604022536841690696272116709045828600070915901261860858629371937304793232823048564942559113524151512936860356196763136279246832235569935969428688010218698694543715457029110600823770586211624268009898143085046322947839257222119130081074344105932594413239573389034082963318527980422588382126120903215283424763124657518793271255810915381484507913713306192210090973444948815339771579245263489175160923387000969808702565071332646658858881545170660958184999307878410011443658213410099907180795029814146342032845336258717490627156413786690279213556411596390747059755491042980843293297706725462524810528995508054948220778222978892044090520295126057178877935435328359831998096377094963450364380105394139090537034963799703264084591586668285547170126688339676101236315334238264589924990623096812450117515498918205101798877002114433545135014036601670184750803995687414271444033515986755431514194658130426330681693682156858559826388373896069730838227976028158058778392545549984119045543026140584010227004324019709270752745370310370342054457556286829713211972213504453093507087565200109010288716942817720704398915677487895596418290904222339421912500826467409685905930366052810456129857665171879978323279225599290288289158769143259795969661202543288582083180236616334796684658708916887964840846429820551292824207229560278024838660192769166524563781149213725365739949896221005612040439980657785136435148085657247386819162138926114199128164991376170047813760335792835049118653971068494953095069911717749756706363625814684546807142469571205264620644488353555421671841937768029360115172578186344927150915911812366574736296451173266321210332118861011988336850452180509797513049259876958300164051302518851831953602687434948158125975538504611341010978416744026914322850190289072833529421969072090225184014903239008123245262832558664043111475850602125740740439941213502962322642206575109944702317901185472475459512591815916264951198449506533450104904402700205173166363905004888040032960492594668798354523028297166248876317766643799625536880755639388018830914493369571158440506968807818076377577786871035460357935139413208491244963516858634502050147047428210233071824063763224041338264018717616648078815448568740856363326893083444036614957811902404627386127193655074448605520923433043191900424082196951488297920211229745545776199586263630521289190407768749114053605490488581526891832003657495866814223369964037821650190867736613172361523593969962416575886018645519466639656834897048748666255253314453258067656664404018529036489542776069953916591807421895998148729929745249378044573633566402265022894415415569114558139034074543940047487566802172881931510347598007712350325626736227816082313586892748570446348068107737390601444070213691184433007266342035651539877650237143758342335091867901249969719756189264438097372680495235092358380210384734771975777244027184622517585908286552963780051035955952585020656275873312396100035963390004517456987914541297183954496880231480189632497197146265638775396452573552948864046182781982380504302767499733506056229451275260125414352218114433882381813544751501033839963575726848628051981569945327641156002816337449730491714434179657064059012277450174647454914132315433402731730140586360536898871003614076355161781152689828912257885504568579570509354231730697488344619092145110686138799020467383641008959065016150679970769406075872197138556470801299665990429712229837210849290088749421452939517691664815179924499136262650338022183907312087463557283158973972416649787882122762407699968432489469600543736114399455160560438008797612010592516680795982017806018555897566295436586547073174666714539547474083747940375771952943820579353057179528725101834267279960392874345670964238799797561039290338293700168878901309296675190243552613967382436576260293297338792544507517402604287997043583591434860408577059319472709777158165841976885301095662246699155555738471899433356382803404054880204339213166003692900898730914128796776781415804085033191646954596796144571214119671319450181205434473250940346390565126382569751952624080644725289159536093201924493077383433268732358222893511677256714796982659681999638031544189356817662600445853022443726596383551245659419237469820510211381632663702288602357733506922548055564346900382717012466597496110866743980439785870843583992125657197225376349528360842900096537857254663827774156703059622033092574698895771047426396519432030353181955699823616117433991626291038891791116913314735416842747577605078825891815486715907316309673693495674328847594950476977301226575418155329009126208447291552896387608892549452588570624938521405313191823214705854159096844753321125314392714196559942363016609616631640594163838057863695909022926746208208127137244260773401368143657124491499126819932260335835013916476097827061128696999315878087312291929174911108755149641444502080120815696082077801020408505671120571800040637947265048171882857717179903533693096378900058883284931737820207252133968479439454416998168281506475032289606378722549180594323347500525795340557673553378718880624029861383540327041073756969351494659842418236629421209507334474546487501889730324561645389208126974551911233408088686828731164884988935562570691620542365133981376217839018822741904482198496337144681037614483407964249229661306326110230159177783195152198824659252144641695490999387113235836654894036401426709978666426847064924780482014798704434531053730172185329554190314566343142307172129991974539781366166311282056702084067867166977733662168750491778840344312352911665133326033099570398390279678327345812895851238188737804865993921047929710426384253012635864125219139778007648522427318807773498717770807083009849751162906218639746387913312761082299899526444051764989863220160172395807031732122139927877126717058595979312073066900988062994666033264405446829883849843044310554409721740659670229030490372447023760173775439537408298858247287374262616478541718436694089571301713464509741775086336198269246991494246837057975343261547368475896854892263750476955558716604178476892275737539356047037449675749065321259889026677959713817444892989280928921443469427725511365975335956914538222440593726795255606680770326706883482602612121557138109939956414872865205726805049896957271643347093267786772497356258275815222085695120857117129316757491778099728233340167924945714378047604031603925654851909459636932306501971562405973077997348670722789008176748247185346518423212104081165973821457314838031589636353261647996763980470011982585139004757347794391409814743691869930319938511134365915265414950200159025037659823971363068747950891127351994718815431890710394440863479216877338093833393954094421772537182429759002227038104526708296432638787704278360487979256053813763750371322577857334032352927988681866348991864436454182707728224503868893188417286457522346402525119458584943507911660245678134619574334040319672389377428684989458433004877248996844938019933073155931567223616867769423595290166102547513458708346377143653840192750713521932486758386944833376932129807519406546185594920020921185529029775456927259644232902033714686415813220513221879201021569187423779800598350550562787140866741316667531109233698511883439586403406646413900941800824810691154846269057046055559285067827239769671728793696194207334109846321935387532198244472369784206396703614752394322031571953704098284940242321879547068793603196399434821658892592835059075325678084334970803554081935347297025092004488845995263217163740343855325190653261446228035163872687089793443425187624788419252634391476983253491838528203579847717056031163585874742930160819567090361354401313987638942419520766199918581102915373577323696692122133575821944370760685641295997726728014733479851657861576377830355710575984479101807934772509230605294132942793260229275065532663379574504717052707616401957469159973394873218181176405451508616751123262419104596471361688613867305968780078548025637263455149691571251911217265644915417369834100749766924191502444385590268130897032336266040924169565972430589961208111566893036722168332282645255126603047834250073603367638959846314588249760938601240994751629173894320680170870736112531535824165270535543705203426287254927446912089882781254968680584736275207845017069472782510412233718641168550321974480970539262437789257923692872224070879685610069440305244368729235301009213069055452065390906634080898834367087592034962241722754792488413330726382243380631158525730699262571871599221963292196322534705415865369503599286691287382494410911166765142341120314072834264506980710194539293479039624473133681357008449840874182293401902834269467297988301372202639307895402092686563329325727508947163566305156934677379893587549566370054975342480255142218801639959640608746511887062471077757537011238123798321248978144823057471555433029027463825812247764090127067824052339637754072579747389811164674236124232091421025288771983128141824137970010181744077917971068499902001522514701585188652887293224642555487071446848954791574275597260746737515615493875869465736023953932769034476801531052915512468425967495635402283376611732796267248392538240558439440208223408553901117281404154302281369056660194381779476992654095326277533254684061155517871913843309234204096343917248528602948255575205792630118198726545573730901269994324079652038608042058272983777517518835499592507575224704005254885641326229714547921237071310351358363141725300909736807472200751629784755587304881459311508446007604801934330808643706960509808517579611978885775492899100606031660771565188877533953030008468956140921746380105106075357567317706160050975863647395092661310018170186725203821421963184200415488077688901811722061594100633687070334243793767486088893769267407939828285463590114787070116630852770969889777714794204102360634979110608053754141882184706478028541550106643341722893266036010298353476823110412669495086523082934546127834415053623882751163634353627799472898115393054416104435086402650117422502867637860290785455260742374115095912265844509856061651643981510673213224887484987229526350710570310422796547837398115041169804540844432366710468632206274605220570504947511489531658114502201763131272489058665507967685358245819403558765613069574844771771397173538962980889831249108884627301046359123513707989059486697326023888272264567539485794603173455958902130406107308352088005415818641293803750864178509037733064548871890410458357290907532756132010109410573138360614970923353994017033512910413067258419883305261053111484632548940766277772691796562373318112254320505776584876608122497518629909211098099815840012409806637102780835589998820757450458287800477431336632450320189054463850533784987433852589246114536419453482929244574197597659777003044560520185230869537599929246331977251890846274655925080427521683386906458841924126975403079527951423494267954418909736486705598610989750917607656696023377154937943949500874405727997715654214122419643224724934648275180094844158325406442394614170487699061721883571171237935690019611473116878422267074418843529577824694018020978855314684398527275487660455619636341915747965148365519557977494455908560724295453490372322212814810050946473025306102687110716377417598768660255942191871574768649372772810728958265326631681332877428876799730521630464681938232736329695972749565350219794868069114817349588412160511680200064870191586989817000961511060832594627098213109362431471307784800870161105391235301902511077216841126910021307981012426804982983797135422883926481268729601892281468935944514717244916265712624339784483105876239536124476104699589315600562378637574550410529683030964633813297597537145421888229700716735958491340902475131527068163071097105547340461582014979408855600910500304351480068044458137241016013189157121333527309751566009373727528053419354797309041477107538405136964085855886498165190620472768445481713030646825659502418572336483856843691057776352145021058505276053429170151667774816420120502401677087521974437629342461601356113068449372128830396005023158172178150967602915768829259577901539920053061510889769161413805581662511817171443311130179223374695793718392412546468657549199022028715387338063722831538542808558826561891974716146813197487065327416259822146172861270376805104112635060809094625963098388273408228373223099075942596899087354389488928309365603965188058654845790680167363515961534238984832071934213006570716671242839058096392424880134075877689096203294472358195452420424023889175551524810000284625750303989613756746961363063545356959679268264215084656001278192291532454163671024322808963226715755248893023240952298678153195335197443199806442899203064630625063381016195488105666741001056853058666823744138844188523354668552152986265442119014995369070695514557940158414345015362934613907959032000813621933134740653334847020354733298476824462414364762215846328371713242044470444271969263658312007402774142410580958578821868442483372218923769335085104346733774763634954638950275505140364562792969723187954329640883297174684046428062946457640441751749167013147765372195553713001496980905365563643610533335125655569176457595704480694699526255576980422033209555148558990262025714313994373687398102729609303803148540042378462475148294798672253035236778774807623910406153664700235287410815668513949618881416540461915982828972724836860813879919200171551690514963281687291806343558084447860612492234719509459829713602959148386311924950119809955192150846109712079522899673318597271138972140371642094126120452614047788979000307972747542945746710108408569906283190120891070442217289657554932159361578477885260035077570670567089077952286084900375402682654420317033279395666570659220243752150970261676345038978466853931387920260770473613292829777177666994248205077433883657528086111199546669854949845553423255057680363233505956017594139136002823497121213893343132222307766152593090798106199063014956508614744981771155352400800061407635394363960116172182060886788441734290170009869494124441022605258164811497475192832354738655971610610548036327364082803590536420701104396690832886994341380973626389267966162302132181476754140790731702108967241199853921554267520554635591278008814066766480352682896156770788518141342239672455177726758203413034459816327775474159016083599334730458237719612882508616396687529144227718024266574354577393272618281762185298569215500999534203516291051117262544476303479544734712616606538018314827133024487704067381482031386991545746428441892110381701149840027610837429694700240833627603253536869916364095250092800213764987051928684006814811643606458857138690151919521441968522223310976634556213614188222084844009547475519492928911194365791586189873505881803569478891249124622390273657423456898519570455720687162799943783652355636337452896879471529649308887449948780900322852203835940342657847111425605030803908182454446284996745221712404995031028105853466747975934304083117752105313766241729584851780790085186221179143697573136762384667418739967719878806541575868260547811570250774109326201426170095515393273147257854588758539995533865095297450093890894116488709686833990608314126551888692788942519341180708869914144363997743112457590603324378904137852854884771948131271641031766482787408708842735221302983731169513777776501763828997606767966656952822619812662966263650216131100974469401552139974676074964859699784334021272309603114535403743491979507628692132080270023394353981287553752748550340097734246525210670503754948386020530852796561409975031080882727934937788432041195459798942338852334858956666758511832668859847342165241681182201963934799564292237170552106636923942205204012479978340743767466030550071288621189619473638821485194686404307748595692714060643480043488351387213170445309308811878529027103758188920218292271882612209730246736925007584040093061142960617671294445130179004883890270949349383156281324717372547954792750067260712709625863207331041464116448103564671492255882377928591373522710599381693291644457482014686040522754691330641649557487402421394708253620832168573886936887268581796246588476328045543758874201847006799653093531744145739093571404685513738613187554998909773542415039997402535379300940340455562356952831512708947705651045586414129548957287033926638433446488061844457026688329940649819083936229844146003945806740833230837470521314027642824819338529592031252455376525656808257915759491649535046924174870845010700187392537931801325931484313714967027449373621680265365233068554430381591147641419615252058978611953699453307145073055269189767679871466635864605869536936754244122810298612892146613265032832994636069822720831233683163330092531282583168034869071695159387630065059713033937530886102342416574591427137998005363373116844574088775218320472571795555219967120043639910525039651338686427715572673483253267339407612109881990949882585657586395701502470386584753829837393271141574738477253488568724660172698265239631911453114452864738775776958493827128365568676095759372097979162694664561460528920094300676217880838918577815777139880868039136037235329341305379584344966013809566725413626822163487025594528123869010503917503111727570533376038925530847463138233116773811939215764297641654206873406532203763278850348713999435346974318289768493917645788980338788157528590968370515113837883172832436807086723810037754217664811054360245242088658027024815859031266915317676640878694910615912653329983021721783720706021490689193329297688967125421388689118352551022419575468038935088454374853059090387620597959988768698273179438374401840552170551803188264044401396383158996229725833837217053288739365751391831390344448737451477758133009211378029053674365103560511165657541494838948526920264043837927922783304494316472451822439145829091417875494202230953361234127370989648103900395761947326807248564259745042992776925991515852018392266986252176832269985507393072182173282659477302105137639638928112797827096197892823034463385018040017547215296494801201902646390010368465675697638344415766979219726439343730061638257294890691700084264765553733299562710970751794788624479454648355806507447288017141590952085859909353560116973520678318035546556601812943627637766751890182263400090899833158206335627080756926307836867880584257746159638839563488860772282975627715863896994432262747081397456796931117627387050777532565143559938516985935544130947185218142912670690643737218241012052458681470192584085392570841184193143155829534237544680555407719691609192489067879458943734882620642856691885958385648675669479245301820068429659909268112288258262129283976579504826056381000926982096485119000450345079155109460878991162796710187080885690328604986602872437229607664432281095614487958405404047484790593610370407996199459860101499853911511295195005068435598725722860546352442720386166286848665859305263774213339061896586170557193828627496210661029541241571182039561273527130245997807730773533488346872471851075719475507910306446484084900142308915062581793277287893438430618296200417997247267461570044671570011439323309294532998043182190269701123579857027591648470013841552862338200333271467955521297401185928162913124137358742918200434907367817775361872285568597922279990146546808307644950136435485997442532834030444593309365601652556319138092715019339878145374854790016079095544393727979843239815113766659840291205460981911175919716476939877918429229285969244024310533908959687902495893632085763298826998582174636595426264006998729881821552537922439399755503366014112511421333912751820282615656650987621621091918032472317192194263233374014186299203828021194863326987834273076376587366455425505063330439538410429760794904256573431465258165502429306349568160174119427723739463536634159122454646235033988812774845263873326145403224438934499607067679973832106633803578419639989488480766832687108881419443363003257859402595810586315816312413851135959191274457149707423292212421413980384457134063943388140514551418231107828063953848182854729085712080398822106046685054402760652063989139275041804127046117573031962897084189052737932856535382326453114552455591167597476250090211438537366724990085301506788473435317326200077771977103411764121974184407432790751459109520505149332240139935603308632488622917927159545749168121243699243307870135732517062867731237141738991612537182837824568927247799663543454243786166044058102010047258867936672841161780454648867713855896679618964243451412506176309616281293263698757855041265148320494366910884435665335292631760440773363253432155568477331049545012700048770171519628110056387260020635799726425185861562525238335394765451793348820063678876197407888838197235622639989595592538024236180088590463812407555254380059226673136302545483176409438760191606718959068030662057351772740607350176250041570910928142781087684255468465689389301478477987370487114516559936206275303151057164769832168369557199992275763991717810428265030658009247005619463436893385214673243464973424944712628589375650841454926672730776132287766758521054171547348403007998688303641836813479241767234517438083097459563489363593779703952092505632801214340544284287515269299872008282482684112038484042635032114960325586363867831690706816100894480443815783380508342824986792908282388183403450355666935964083511409059826264768871412422142920368826283970309621476013255688698082986412206235276812367234469240052652235464705521622932431328411601831510773563843956949468646339551787725578518345581125043216303479474291789940668104612811079951273865688827951895521289336297698314778597315518797878158517359514057418647384642389400091703922062240601979972921099858970097714476138193424411158860982289560766039829499471021489797783895641873332302581606049062514417022003869548814514552994001057897010135653927523353021854713306431542085696425321614869569225234197382185306778880202372184600709768425105785925673771154373860781635777165375652580918170042350514884086186402463890193709792912381168953464271990030759169859069758356538613936813900688278514066798879659867361491597715692535720934629090116482898007266856023242456105549832758519341456243932954789543612409695950368931950911513900201667656350524988512405451270953499533983422268552025744987739555184871112620412764346687181526731792273976526955784078811252401635119484885693662471993332619227903691359647030329759854558236145238869719405132974245679648727335778385127789837687210469873401264287943964978429503509514056580638732755805666332004564521277329060234825011652469763406148705071999739383178242562294062992782160140118251191831026992144781091317994751898430435144211547405872994816644395648866358553162211544819289811619936666857156462783104274777790953987978168949984102644555684396740866923728987304289875050123598919203286461631967532918979853983188995134353057670888259885451376482344279128164696169064677309576836385721629771868101105101152846905284712958829961164117412051056339412704691201390698973804254247047545532792504444171420065354569877759137084965122019430109710397502760523421002971180099796214327529684683695651862533680641229417402558455399114036577450915460180582342554763105561549312268598702858111803177209230739445227464194211431055461684876348387287126313181386564933171680460613665876816538428869529147318198436786091705033721129251273890457462681521672914675505634716461550694516930609340446148506342198842985275912484693145251023321051080647305274253051421460805726101797985804489408159547823963226430354126994955021899831932165053937587758484382936609421289818182901634720657088783127475641486133265050817255642219663211855801026884486784498171174522283423620271546405409564339090653747509710979466458836429561988922423328050550105785975449060111356569721229257673649184185650577076194623576561215108206737278628979454180426694087196960386633244957114732942182451587199730198083115868501130366600193288015580574397980963299236355809094427423327582656911526682077258585509092682546764105671420245807195768972558319407001710149153739707231727277177500101487981067359358745456986439747251012091506820132413418330000463783907889615502979568291776711043488809480585648183389968313273378311712619868341815192116736459578454402146835978766357755096963326195606294541199089322492960438670311730872814714444592189692266355778699941442275714575284300998399413717938706029822004678279050917130864467818398368795140897865535552777513419154392375137406087252932688663339927058203394121089010539264046905259787154733319963903604677327176303500165826134559708865528421801281679706343018889000580343706410637218384496726190225729900398246664581731023707303797807801853676465634669775724438786151081121989118639441963754524470814099377899586862149346905141930987103935960148034085419339714829744012715261588210956904329491513543400738258229202157971564307036720966838213838682591282541107493784210014982633554510703324680390233867208130159435801891820584087278437790017875971199682412314788779109651135814685364714020640444977792565061591420858984640064356949471701132327210405232389975052713039265832087785795145763090562495698639891739454334365680581478612557028761654014701424777409037861110463051210220002572951083292550760288851140167002762633156583865732424084128550994857989193762960505759574092055878186943281099955136841620097723733065117661840633656977457647060910753787542965662074353186137300070469223852511943383116375929472285658212400716223815155524492978672135072712463304190792930738623217694319372993291080893525482715539353334565588851130143450602223252168412342972400631110545570889605769750590922247140627516737526811394887362528666647737569799700562849706797899402902414180399989421031997931501053099902482602089072120676659432846990974935860715515417528047770626179671629028974498366334774016773833858329472903835788124996663049672424037951400978166925231212317352173989497231289256351053175312256008850350876268177600721762481857215043349035745295619923595190554966988874387234279190584626390905998624412398435665741002306520219133897942435539896200162037412607476293639833138822107754743603092981325731565235821281784617784042279083119817734652888904442437576715727342036922551761879473119671408799471780174597013720913263938877649746650467899334395178701072651675891179898732744421672203427071784287815443199226089773823430121471593693706055376861029527016538332800578101076329397062438661847718552916456779796985263327133729640935383864440432279053825662486271007317043923407141978152759239980358339436094355887288444226148226987256252877358545701287853466836040809878705060918197256640776738837717339760249343694208770690520028001127600725764133157667622902575179505613946866104676567396398045111572464382606238726267358139976030584994289778849443251672014359608187978864195250056259326830549403549227168449418699720672891686468804684850957072848798671979563614953105979707118015539193684435826081431614549435778816097306388379389099212932987606036687169439282760234814595000297953007464164014594271645489013864413606952193001868764796228033551498397277309941876405557113611982820471763599970370911540794347231871126482429453935084804470689024074715723597352429077208382109421087088001292490058496172748797992837138447115466767351762054322822455998854924514839410620237983069063174846702035411843702603327409775783864631213522129608270700180737370364300179017344193450182509173563587302907128988172396293601545734064814040757916250882104905554611722731461599935912134775840966537836215658434013152234548735191481746012021655472824839589860074403405250638411119999339228480448028567699010824879155834402855125127767665561651417118410980602028239666294682316087340416746670038886550780204637946074371163951287012325047325396867045900038069936331281639244754225990627662281734470940380700361052185845484102795656857431990248760221451632228256640602800665811796932405789345678375886257538794998195565641671435989935979973145419658068750481584504595252781039922933656415141115496231829125659349614162604087006888404438781446641691746178353395943365276243422353063457236798136006119559333828866352914304196116604118142320029342047872609112233480873941007890335137967073650300189901798063185275048016927045042434150110667733362054029736044188239301820894063512808377041409960770919275560430184334471258297358908578991860827107725180216305615052375588593730587178069584196875455852604836485140342994684703800261092537976187077633178386843481973133682474193399507424325527674948872285614415940891070400009529278242305419378635995189450773139428220015067314450770947533357036362639095382930860180702187378815199677048539326483670663968237102406814632738980178610837035673536093730058849573943155730861676647410379114892447634803983654195856153910191453615234588146299892727758128893638037047224000545914019933507688271694533323177182250107876496539394874122019324448468109488307718922490420126174179866505878903495660595718861572322475564657476216496643451230881226583477812824717088184248692757788934268926879330430988200482169938570051936349346240383142138247092791646060089536331046030539775867050697793712418299035843880779901110327887560950563827468108088887009137658400087747120084290780247990781368009985814699400751715343167797330710472244124251669530553172116890901066181089973923121826414183923363955946152776163486586777209679641275608265882775955629030561649818286477996794499157334962083626200056096643530378240252364751842537398818361464449065603533103647365458741647344878917596873781047112592086120923184080693356055450146797848826147257457040733024106279080744439121220452556650056582001037322180266775185853240154595931811903687395305300900982639752028088256055782990368975789750763779956002921368727325088958820506159631436049741199703735297421077138187342650434511571914230988997762700720900962182915431288090251029230932529323825037892967591043839028829670569657355928863540894382206289237423638714594276342015176948349271599223226575461569762613154944386551025771297068609516881047316118936375027888761742191096697483123287586993033313613365776251070345649876804945257994997892123581747751613211426084151374218252922863013720052373743763093956023961090657374464450481367029166773764338437335010387441960290296204190945432608056358677139526893770598514966461131412269304400299552025620613858805200801017591520493384122302856073533896486655184070915473966906432779820686196003691896257142391861810417166503604897875244255919466786329508474979789915003107440821036597550740674332985197160550401471902478585051771201517266014449056556355256850855637335402156335518130461821688458518528068668388306459081365823400212841957633513534256702843638387610379763549646446984855376313181862033028036430405646988419863855297628875284602688276015077791524060264202231870290834146178524434433797913596813873459847194448189210466654866759887304741522191401812959463435084156548904067345224820188973248659307781705937560185444991902756173279246572086938253857192467481018474219632104808431335586602300286145496644822074162669632173931711983343555654350697637161781502884653567694951815698157923303100626412426268841385265043746116848640864928664735592245692269237857077943357399616534532080893749781019008895114727344745820943088227889379039701164923827279665267064905970027677528992291096756551111014102723337367922859441579113396464638370271650815086399016800349178364459015867651212953934462908764566600793955952463693483115162608996366090213964691010421350148526146261561548154394362672577753105549245478786346455004132002794553261817844487153975861704588285230018092179069969851007804118934579821597912258754559663235929872501286538899784564171554753133618372102014535829708078577269339548295199014119353364124478626995397647351846231851535887644783779608891542442331922507028880065274646320298039023715314893481608980026803986667446807578518853220827412347385775294114919951880002955427490337890500831009261517023455316598873887961725953994552673565733189786988453808457893652576041051169003181727206078498116270875978722821986475310065600359493200911019203200635690721469299744797176994897663162728004053045035406711900194493231268802948252171916836611989136417319257655926177229778454209956607201415301065347988574724084030341135598205723715519493988312531888055609027400732191079883559294547848588291978329915084957231388920940355114612450682792975012659060042607708812923615765047830543882618495919475561270159313990079427018651191178438834729649950697582034680481496681868483153534955829472878373527620792948788367806253014272495920671958930226863538834993429403554037196715965224419033755324310472210457969707160313281123526576803624608294708537199895288137457934615982673456288953582547608644140177590583474252640661120023557007657420206327458039938517519951862285853595492421160663047588348801669032113475640969142435856877123996297933578580156249882179275508303974223867632125453735555530387343716027041428550742066365851970940853360368236155801100128379857028500902188591694034205360852199539758644582275873258968057607860695531635991425141583568577962878708001195350269440718967143955794455217227061312628126510820212388669130056231318838787164837583724974497437977731754952936062373746641044569955850501590675057563404272710992985764246096824284194052874805218072848375137806725715038403894875328315721575184431128492573862885739536298992575703737354128137228598010550663373730805676165239100569714231456904482742383117439618459520884214419801404061155697876144657810481600245864954831211109073419234403999679214755700341424366352706127286168353867168375855053866717566551547695064102007880520275598905635872371040793666522335862119966750079239027779032909032367685236956457721544681423025835383295824419882120618322402296220362421936204464069533360164383108432498911709652857123601272715575965903614680749695419354303906631838935694527241159584211275495828710776902921359676879081314620751833060450235257689951341344664462936937000472328991746021818253132941111610128494773155638939929640962990181932272497721655569579552279460212387218758604656662342043500650510113269870362918879171494715185207564116918588011411067131556436687042920428175383441014032433909151442955352602668625721154342662437440417745340836659149046248351801130956253552131903669996094994518136884028406872277584550592965663301846851340967304592411937472547638146889217626959378702228759612405291780009614140102195629884158500850198382121703003644082434919698558277269290834548757364012762192086235904934130095753149023125430257830047298236317432915450477061029687735875642357335929218377057350205155183716498917676671386956910199411051103686633087270309558765857130877574303212997448293588171114240106177299949676168160399390777436537181523170143647788535488736723480438104128078753945651656649802575814056886007542334461772252471270855594082560191460367597781833545859635580417702622747340636152742955563364698238463684311556602395262711961684100820167968787396487266699700120745174999245836808828945889448086259301614955916603636279892049338724412350214460964686800880149216659213370513070120853586865097761900915903439794320562058540164184641732664426503906012029605947639978204039064824048567807048790997673268044467035087904145825494914170665295990081221998928233904454639490208707111266900927905725644650860432560559773268307363310930240070076996846833167888817380989096010192046419256619970382331490787498150280504883411920754513484716506800922118259333038547042011478112453003434790090197940166662338231109072577233274439825405821473435995660476226856211913427958632782697948615857725998539568426000549952002105318311040907579557075177589738371406902220555916359612218896963729997025479499564825472108370734423629751473909172405097278448451788564406626121307962225178343589195987007191081868624858178187819464275917065561291056484490828199639258861169379484232132577693347577425268944208886441591239403824248321494663733469866057110762347012592573617316037561147969493626726319470424389508219052623816921970312607092613788475435765669953569195242983038164446385661955575733126104836828506251499181785673973822214441783430760887166050835046693926437798054813291339026285556146866063085501518327667757372093952279036236904538911662336154370088219831860560172990939923663428908482001105949398191222227668928499175307521075121634834928506739280878865857231156236550614419687101380548990908250885336526210274163345961740152810225797662835697842638878960779493666302243776648639951397390442710109992314890951451682198705251367834411577294577796743622347921737464267535881001547741423582397508717518399464048607225127360628943573784755158059715032409932089419572239947647080786449999605500498794041986101207665257600472932441471601536113263358181036407017773501533146919545403962540547836798476648906200051869326207244435057304032490722020886148572276362239948158365148824730957323776371620161780764647979814763394954221108613177043386478995208476351301124847402821450730051580418237431479626794083787414343044569417358818238163952622580675927056828104730686482412666286610825534734253432414000963891133244874393461044668374370799761829630718248036206766854337869533790855627146045254355569722764869638806736840965548610799393988290281989967383185436507434856380935522187125348906259981106947922957654874743767281756441406127624497525366061067585035827982947960124693263121604896755311778077263100123879909221911928515292874552761818882228426762573710239825526429504562555624670789820099688991382868108874597454316396872573639563135203396483472699334557308138243052936553668269962296437309112086939874313458407942199315708535223632959529191683219909529342772915465747082600820782072155195858804717614896630256647610105835112332130880833646516551826857786583648685710670160477925025586313083592326590397935252384859828055003295237716396768943740097602890508844369681498475669221769106961646961906435466453574949521706365173279723842682178359469014575345485571783708872650993518073038679912162340871993823340979888079434666850416328034362554355493727770680338243968629629891717399854816883471524261492036184554137572875688948677871440391527101520198083633973773593945796610002321172660288412726511261309837187250510664499073486000768016779244675804131763161139657673534468766743670416730740507147802267201240529251101697700467561982465288468875217842043331098225740949333422357232842049665119322374946975891198754294559835080767982529745900008606034964751192868619142548162756177103751913854356059816482957162210678255653173763697088340766434341493566570503583675928527665250115814090877286066962133028069570135246527989786522485905915878897065128283471592914127306231406789497262462272116965248169428284635673761506501442311681470988932134475942048645377018774870490186611512864632934380506226895076826740648836178065847447296596408649753350394260844465965850291705256269227251070130209321510897692289934155519129748010934582881624842075383105992965344663973548948985209103271549332672326697511823145691784645017666168938674496380608397890623556344719963091435163639043468089063686923722879827886781649651374942998814247168991782155041561545420756605016705293764257837275766016796583071047236216350821967783916718035035592893949785248593436903144062837407412308229420389966904712481295102031508079315361698671756448950638285629920827669793404458939269398588636813665083886058421003022811272484205148386980739784103035609708431833945460348861350390544058976001728693002814702149567872267493479113255453619042164133079705034230789109162284506818226674872795318870327373909804078204359714423045101374928805587908466733722578393641653390130962053329713318924018216197846695222327971783647533407513647100455327452116993392500445691151895886319531209800395884735587308323209759837711684414694480909923493184365677391230204299951257369315652723977465714367424631914314489120463211501684748161055211578813924844828687434165699525260527818462173904327272601049513723719925466498400787891606935982625754570297518171832057990999483681628247620727277580962029827354125518192363129658109005001041608430928340492520263305928431678057364417102825182130297022008204168621190098359601231582690797339694538717529361417695566867847286355531514590288531955279966419378568226384402428783548899143459585336071977686573439856619209792480150630809422090156765261540238912709982515334474421083359372438685496971706509202995961588664321692823120923730438594779536766102584652380270463779051951890989750207556708510523478298331767401287971510574573565630562087827706072550397998972000855425793545334663160228983500850301671389502037347752323386044427847224493965473570829308093389974347955545517467316990113374662949113397807977775289826026456756269151735762312204910012189014740259665045476781055267055488529889734337511152334287774469646721457682588846096125532426549369230235796778094653827826943681170310580619923529523308680651807477842260326982270483099914150298455706251136098223473283167236358115240385509480274037815271743665928636275721936680700194598213622496140833429206562410310469346015961983571798720514848601522993577391281523616357602564267387537266596919391163069600792403846839984466043344463564902160351162364366994235523660226392818008203257304441330513057349787581461518718092428863647215606557267786438271434870626660259160582593116978566880639810547170290875134132796485730798968204013252948738361938654814742178181773231903568828573934245388336112286420190039091765024016098108048511510462970571932360452699110269334127712207912447834798735416586195916114830674514006960697999571496932461214505343861786402486875522465603375241871319833452083661896413602419948073432168773692448307663188187209347573156524297671026766770830434897281065587785630443090879784977656842565230808946650362047618964745772477294856283749816771805141149445890868382887444594094545491549942082898340992456253254317104321654731248481607372948480865832926149969840468284367920531824514507400730303228768791866617522521460387021939615825649305912823291515999131027602897341840166174852361787702915573861637217122492574781257309782505167316995292571436697994920945939092816763921046472902036706677677328788628442872234206738978128836790517509496937252828963691155102983879455804834238339097265998072593048178027135947224713992189329777691485260110850320542843238479083780255539412158416458880014353618469444077733793230174733155006217689996911353452900010165517291336982965700121221369031175170487202820612039636664350821178860257025404983184859494467932854572450767267851776275348069796631259003492408338383799285381274303555556681121272877446833752004490672009605036310533192673604177006210076770198677781600221763877408309191891579037455763036035181773234753139814531408705715218557516225611122303852710708180097874549567477600446364416068398082477963481872493219563144356082293182491720035043785231302717569369092477658811810851632305827901280401721938687065183942932415870983149611327436933293476488949862153626458105036638313440835609880811654724152428336221346484220324503938763121861602710126074662453934428820371352038239026926532465474292872642783762680045372627093805435572107251673532531063030683033392631574474934033451196363094683218093305024095500434622809055235256443560128701336446215646997306817512876512893119790652644201991916114775579627657689890144435329324093914297409234302898474148700979897764566576187218912977093539959168557213665927770141650901662792723868500678156252672771955867625534006958653134552667693291246363759979474964771563459056366092967928502252369116326691306025202568832711201451131856448087359697842806920586155401124643014847424047684822006423060987224694691874981415458377924006486262284423557457531682913711349287442656448278937833210769836236424459861799833921823984635147827986652923188040389005753520716463444257681026397120073188779977971431548572243519782960016156387762743543540065363075295070525471989970128842606748544897335642406836041086213830963802277989698539122700775052711471956230945772125688685014077957146277391098631404495210326030512083746968752043756530331395006267687347200557441169750123178069756214437061746260771573404736205810420988931217085972666369659871347006070922338864219290230876717495470326577423161336359249381944549783774679492144106787389351751357259054626190899340318849859577287976923296148367927419967183778486582920799260822234709877011723134038740320542914559316606144808415974646528458475823813191193844467469576051893054207415872631966522830890405267600253040252654642913908148927859040565363533758468628067404464400142038130228598415572179369666601802430221214316700438703205273712912218915634907933539753473482059946226907159190536613878259700439095032225279789020294603255385748674495038806622997902006390770500807617985143203945849018860142336061057716928405873526715929401010536790291144236024451054825710767470256788795821474801510421611629538006868012536609027102424108780085032752587060315678584178409671604124229746798952022779123526011069348733921794741613325605971712884885424879392895303710009367867085456669927798866877905903760967428748154825311565481184340951848835134068588635019423066361757042615319836257801642304302148248833591840160472819003762557360137045153045674120929463258186083944304912064084535639545436776269702457913765592302105614009765752317557037345876392006010626273516320846027922492912383946639106382961970860706299434111154919466619685130890792104525712240915106185730200009256585654990478373241655315912988457578025496332917318781790275907080426915238861162712569825603340278448122765860365979454963257775360611188477571195377407124690778431856928195305415589912481696141061536079285492187095817593535289066123637724039651422298827473329424102938284608530615171050014108791098679806526999842262238871676112364130556110104401208464389152658141315971111762408734719769884135212112952962576873497009613792380789194636326141144540320599059632647769028068914481028111191970600372843135949315204164959660814948987177752519933278638470955859065053769526751122977973974759440479673687712838120236998907337224167093613732406801874643762481708094966021942333538922893427601393698389784296090966812893095515447677705618322304332499320527010310159528262892315603177186284781975325362514894927361302628737308894784120565528408621890936470250989636865998906871316889039607452807121185237289529911831174202172753209684678946647219969235938983548221783344580518150369660958740389653724051956619915447518501573129015075401519224362163503444525584904647199090052340417818810560205541141403181129615027329147791617180366119249332093863516007986428111252927321819786131472799503657316138013055395825141015644513060847110335849770856037336717291950943970994980423608674798211501649133898957688975250677786609177161807031720947952734254919067120028418401817775099349141314925184417161592970303515851435630269142035896182130591780622936680997671984543565965157675528363362834692480381664893630245779641056974760795419837950050743113820129736403888406044062555912110347983368792670565723772146197665512304607215631064004840399462522931255271981629309493296313482591510211405263834064053671482009388306308489650778023606392929210018265097962052171077999430638654159176026665805784712649765464259971966923176595410199878540309532577099491928758455184362019858190695388176200089201816058448342980501462098903569064034419189367850568806660132895198588165609731905711490225420060019422903757465435117804100792526091468519797082324153063832553614450162002538496531329967217263876046624970349511099424022616860844557419971434797474113660983904407284414732968993015013037636810559148769566354846310953129015821868237260465827417500793806205629048971741032537011239937320896661982950283332639760244242359739201506052430582177603022535471707253658643651097017163688536965510494085621766270773098585260421976151820776198768032840006458314229707164283500186607065797186999482692726211062150154147452330314057710714266970909106797245566057099215973325536502331644541144509813000302761053723377467061966398154006385617928407503300265408197830535640523524290128640861053791854632201984313301434598623737694637534568140970320740203292698520824008029454727941302517507704936172052765001274511235859245676964404399309302847750820788906646710679232094520150533702085765672422373902622377182728682898779045699706955582213328328298368993117208703954060908289386394419188948777520802049873869332332476710949195125666763109719797786678337819477774076420617295188345255396022561475968749193098094401319082578254231926329137392894738036943071404351339650813458882008056010837527368347065564759935932340518700093132283519914058895816870828006631505522671736624945856596167806332443632762551681340388838001957153992537740711012071168063733982703735004610275233456732244288607995911330065174094051689677622765924479593158606968480405719257693576930740707732073518861075283173609169346818575765086497449471417099491406607629854682907772674568489166953574595818055154135826753915529821238017095827465846942518644750900909112452582398326942312716414114823912741988675271968339249229866333026981900994474314616342162577267305219725351727477267849913904635335321166136156479130277005843310147553601216906306774472245774313173969120054680417747872516519463036375236881924317509408793436019513159738251869767726186143860855899542805884190852563164404054859612509121862731736590322221919404529479560767632221054587423243315468803448263001540297362977452592480052869854945948943475025746863767901779208547022993175227371383920105429115125025976237628165169321481570251320685040405837367370893084771742449313204946926322531622291299435803635714879715527121481863520748747857569907750875067704628666347916027677396853191572864519989905432190467557587671101057744074287845136055927854672822896378026759468712380314818304973519248515062005842769573869781958175783282073443072777323786452437120014939172946646491441628097022866721039121962633484695054761032313789475508698895993919600324487057457197961860001839493065932477159143597882614783812983293049540362050563134678424915443235950103894593362350304804327953063006442366562708385127778517783588243912793264824299735618102003704762984007751807349518481924938020024796770395761714408372309483481691876730567763586985108938160941331713278523999746901187228702991244023992275792172173541770242795712145674569583410132745748156078343273252836211035963267021772879288179956670087176992788175723154787646121575226002781365519647032195278375497766695613540620876722812374712700629794415059696524331350827284461455385364205545682534512867104430655108696050850901196842950981269164268852679500209141346448390295133929858604236197203073013108607006410950205128481098043156048550401019662822735506618389567935559551335616627684022917255446766483655423637998823168109665739572057316021872062877876272533295758862168722414079294806377557680894506882636566937703466939750997146392588688872678469532940771203477106491790586575983440093480343747159503212637657162144539344255224001665055569709202895133990538615264445784660744569218043216725937171961974058729958598541354063932295130568419246106213533370155944771777864934685186816377412006550492629912920659752450513428666139060490563495934034299276465707456432458849246730163162325197905332335598764912864448976803166215299226880873337151519833778883208810879639800442806576540924337460886572619557003991877515975475294162295798075265533887775665801251111184402706498248189094534389921062767726492222187087867835715803519448954583806428472139491816293794017792387185752376626790060047064963672870231699733642565149449602191893754293153738053646984589004600637227793741877294991017468722566581573169857406554575759415763241640386393124697266178517448141306192853328272211822503891852929508089840999670236355558571656688718068130173964368266262332397798289256190301804545544516261216755078660699026513460492987785870540291749859057600258717725574240879947495274939514125085667108552386676145447783713749990684449022442439734161122636906646796073784642744276470786180606251876459618891592801283311936141189446214559609791220573322710145210686608376206443439786192000676778665804791986519590356146424469791932944401216904667444962803093670290189626678098314165487994230016601780293201288657662292267140157768464014059007066696103543519397005402611267777112800160301727308155357024184812041955486112962695668625418863079647204278430618558214762733365557955653050598885498861901640968163447720359192029809075516330266783969691144531922329213351665824531461989850273068498348051010996787677273574185446123027102073625448981092782796701419036302035664255962128555931724918039335714287534344535419488784863011932960646473634956249331950588428702327824854500596869913006265789183147252198650580663152400992320256405460707083101320655930250634625314532072067329841835480798047342114582553669322262532398165617376416666928946958718211535145458022048303185951041263992601519346120987817889955860476913075497079776030415253426498072819423221091919801667196211144581584206258888592042855438808583971200858079637246149581206516250913933285397973372058084784937935518540077698635605456352207149764116661710875994604808873989809030089717549729420636290406279257550351685873582196775143370809726648868320710057439089740688843429606036440347056341686143686664439017851899803022304362199571320348111738280084263680298567454971448611631694170354425645393096239122309378910722500808376892484397133512572559068762583081273636572055405835588539340272522634353481804190484898292062258007264787156577709907675380819952319772769115473862774415936334162060759876989900012918790874662161008249954648830271303080537432712239676909815735754107428957046783191513318054886760113965078183622341304458681306386796510998295659940762946983629277176233875189608253209274092135307498771885125035545440993253749532095007942431795531524214349385106284909817656527885720682324905028156386893272920942398452245119969732953640797241281555213559782438125286813420862638120593692703083644114201632780109314029857271975232163339605069017270869654708837013328019373435333119072011897556055607030508442537354675543703655286034329700548388192865694997868061809353443154200158633559928430210140866609794721518136056286138323591390227448150622242271193420308854291631201202365861510871033357134744016485012176919842274388844865947004798725949555416439288724196430281881259417990816282539028132334931160128954467433494122026067969286628851882237651963390812182300488059204524179732020876647716597283502712846890895454480386421731958594229067101014170514651323884673701786838618304283878902397717564864267465818533618307345036589740781305151838631484843121660824789728070812408109365025483992473073960264195290785306804483025907846325075411517940206098343616599084727533476280617259096288610877547584496425054842719460531780779154166150393905727676371114446894979254617981583812985621246876612121812402389007634172117618517082702249376445613868747679697134268570466482221738535778734295931657933505893858517430951151635118842816104378817213535984640156990681302726917939837091550831114382786772355885158242145106029023537473882306937251499744505072436664219280995124282995420998816449543511790223550575692329541846593052448502934640345027137866983095732321458756205282823429249574953344671060605420034623385206462852464281076528371954363465289601892287525714064709905104409597799062273717049606846004935230467913593199310781696608366813306792954087565608480109541115804981881567272601382728752557403242662175484981897750587939672648892103183466069639328435291634629187090840067981209504000601415505494419265464902370245305153321427759263704815095754536832112980664572338074368852415598586741718128679284148015362117584082613647416706405990186146703900793034676074864327798066554853397685271336708971216448253411419275044520054045613521902344267223624758033004597947097413909297323381536287394462330526735694595525982699457143303064128268318626957944087326752781760556268906435228038153861224680472124167633212376732588032279700841815018569842733232030646061532207873465744396228675738713282139254063694593105317988500392757493527264931599662689554014715974854715290239539049420284895510590739419567349141950057245092095970090503485666809895192910617707288719411118329956334119355307691153298782882477966044435711808840937844461547079966268561559698394078299291786958642387764966173607271065166217290279037502074794751503977694194620944710510626562396572101517571445727406425457763618327324629582949547518018475394055741911708441417278234621316934733767286398297927154038727392440173187586252494116295274050497728808849080138677253970834006484239763701052527303332841451098969013019456350850119151032548035659380826768807413814361896192858084970571586461843137998786538382369321150817094900384625325253564248450572245557129940035930360089868430260219368097258365208713668809631231140461296120360323355904147091857735299414899890772645685018349714681618413887614600611694446230585129157468825408845138768638428604982895134517416561408490682221562068620695994406468362046631795594126389728272049343520214981982622871769563256846961399026522671088846272318019162532825926925250020473250346158369904833551370463873599821723976266450067864998527497706434215289303808946240049623498284631662823608984665563115838194542844706471596911974615437107803492269813008013321401227843744058222232905718770709718966312030368920243385961877114788074301720775189283081773758888862120994915075182469435657974635835030113861577739222767275731061515253947490832516058488240037105887085204421795473697641917924429764962651110724554162278553865832886964047981570126073168692938142353685848873854415585782947070414712939910521911582782170226619053774233187394772488852774046595449171471378292799827035813779097218540380512466394143429275855458016980589606605723734458116480545546636650953465875795091003244125572908486988528201853542065284695794268432468371388648027404346737802266531044305708988921269882709162242883582849694585160212655578832749730116639626407232664007973696509079489104165422327863707046369771824067113291600169206027663003376401963993940520029683038533031705002144907465440547331864714003015132247511634495095510680984632930631250007061199433281548655066919752924484764475733894909883563666622502903740680796637796793100889422278595718081635283577109263845840875593790027863969104964392614775365798096727742090454692594372589721052236337031883899317867446351857511688784600683914108582259185560376716017934431018063408732201565488537078506186341974063246684784666046587600515581733433999710752629944812007739859741622568569938295890873099379304457035815748457113148365932871003940603448992169449871652571141345584670772335716062915682917565974762197339094863402957574514762491217145692963161776458327152861254993061854305377190170120601221767043050951969756598716294241504400700346487176618460112319929565758752297619207867767032341654829929171514029352960478662709490855934778773732266926263727559922148176822588400849746435631992942951814313419659210594121683195988439915004279192807062743062720686927393830362178071444558063966068312427583214939470336150411712434329652437107978662382370514228818705496902155571106907139786962644075223612402809489935341524452383622370350574273567080044494556715533511741095533538581706810567297641851839071832883380278935890500765191306181116630633328225469174130702031827755060491094393447288784168759129344511982217685756438070350112236370714351577193044113322144705779083490044963369068967774595163380793853458746892830523164568644740854893264465076257245242950938456628714810050786251673541775057340622364278703442088035511302615298616121920988678065449110931884354074862693135696944936576104110338525033247182090674237419083208809668438322978963989696738343008616167271447065295945422314299372571619826936122806567780494952239483418206794859755453477685179379327536729100594669003501244106201188614012944492821584859526439062057606104736443261096575175535898231001454000088113323573815087871636185088412052250746042416154512146281721460554951971898071825757863798116940892528985930214114238927035664724604809298853304015442417068031132211982106972679125285970906069499531931154846758195724129365051709087278400675441987123585923202423840932124660536312084583161764645659357666131933024893976388446387902365699386818431443095014283578968313550208622650389400399680673879264419612417402791769384436039213080335434645489599629115930844198137861587755797420329246010343169912304410240837981161306469708628413623809480485429967250286150127686528225388266662354180720367244812629163326723910373479961042003631698365545216328011052234751795882619541080432466403817351889367556821622875861525529140298526491959242477806773067607441405241754496210280313252273132105026533650839593526914405228982678856697719913489393707779198986186502785248581746071470494344644659631046472418787938570412234004285932604749045922059393497260403911471308443445880784170620474464801769579990121903150723324946860993902848104687246350861993564114683534894090471029338084474492889206234633990611848507565215515697850533635464083568571368250637031027746481337651411608372015757459745231190207936150939040180663270538774431652010452754837858166600832139043991565278472875665076697906856929174621688099454733214530697213863926995366815700039399660277436652327431974222865178087165337826537258785053641672049630832991556180793962858484797947902162719344543768317176172323871423561569330817997406502511807759098050844933236906436523608290761663455313996670902701293879236855783146982690210223331473938687609753774309984641130269573781077120322099546479517037749476645949586784158155040141982438168152876443206500861873438410598203575491905072509025599891181188287586635675535471966714291998318154341836356965512986831178479447972839578262810064660379696064286602361425420451479403398799332732673950580063987433130064190022097641228260111768467617144683132731993635916424807692864018982050342439682771334887397714466095841618460397550427240499239230631638753134208829927671146331328022457108436808079475546301298900309764935719861117731943816850835263648961483407270395921269270852437987904103125894431430587292070607777140054297470536216206228507810844975618836508513509711835333685006933315215863017888714045969492565019954196430840863368212227902274445504237377013564442916928803381191883515603121593738069871666992342974752520193098972515582906622263038851511569016767630857890139725551962697159829121135334463168902886414610307256008442805064706953097203555494237581211127583686445896197383432352393553067778094694025785198808593034180708772041475959663132804950283762781105131805056170311367396105019770351996921892426679557206567614815420854521612664470822092355466129645837870137833223597932089929778217224651416905806158508610933684661599718829363676890991250605968691348909229967684969418495286282754913925559752475303870569108881031964931509539136667360266149920168796974587122212508860224587308519138936516656990113788707834827405599282589132646692554743728635103300143962891274561319068418421914257805501448252849629208442497180137321742116600127449680173630670470469182623977967448122692747021444262134520133870292174386025327020709998645539604808654727667938760556579976042634714871821827998480485540512954554428297024291227386768150630728582229417030958168095668529379071005343628053624207726057043471725077900413735363436055097853764904365881061256496736497179061958818881828886167672780005981863816606612681956861401639775196069855825808992470336658422669402301822551739910047508640846273645509553615691797056853832908669917539847931322558013935046027819462162086756643088250205344081987424738361245874301345414938042356576861439949469644764938062919688647338199498536738536999190235770538389940972506818922536022314919418977525435499591518343746201916059368441817374137932329007811844617913375732749105603427277177780784590249330105445267992026917227221165446484546013930721418023015677177051577674157846991526021952967500291992932281358874680978675366172077124310018494245535402923501540646748859635976964883504505874346189927606120466413280949260897217632009922838643611180684645240342161525567404630544651982480799696461691636998632683971825790052535107904562528902614413655163389482716444730009688176554451862756728423999485531218734109585886211429272160462901602770034885055093834418654156317781174637865363592441192804713918537197334624820205716164528294129742108829622745556648696388144884160052919931806989371142004899411138850452740428163234135847743403108329500534426927560486154918381884051825117402605551342992818194212505225921952607844854259054874654048318657522442873895976083748580037238011557045966158152480789085753913995131230760368070583587085307331160916001002442286224838416060551930202494060837629360618542535974209366542532829405027167698272622652848270499742164842459114045993985140489108418485971419100687440303046451522069767582332081910242417358757164040652831426504596560153795374258844841444573482380779723717951731544414309156448924612425797883384861454018710099017659295015059555581854094016879681458725177116304815841544560643262124420540547426812132492720941072618956774298936540514223257298536760554246153633921423239205388693094269484255072564738750661135640226142055644876398514338502034781596874273967529987449194626044479369903396317183317514876768951418793687346343683988851185555532122373212993412726503311169932245067878501004971617333915608147345690480702015863993266960544453075133289867062058456442274947699213871549690558267580376604211669896081727741895089006931774700972866492611230499389037684195860467492008462338173193527847905962680555878444630129187189000162622445185056624442553799821322421630484049423058049520173971782715457058826338888508745514354420989872096015769569789642857817228228195956119581330240761814515998157552310526354471592593912278641477895578503713194523692296202217055338640930491735397101447819325858589430908420039132166190137128591219533487227975279469302987204404962281672504222627018444880075335336203401275204900117060344250304617808512265242881508360168695672033122473604313450489878606169161774632902216683311814136841007093112514381415563549277067011537634582746525451330317832327505478650385204056830706843279167593068805224887100906142605050858746346220914096659318819314838483041004567546286275943717283875518273497888511230764974794870394986113509744854988549362110256139784536319471196014158477341146445755169330549290923904103803669398235880718468498222820152902206255419896681829955761174070389089817776848769347540258390802999535226928019152676163485327487390333593079931374941458151273222397249769320264549072173586132897722273026730607325018158906838375363502227693934156917447084499372204417486430185185950172336924103155792316869965688470160442376795188782750083477409111939125259269471272973268300301480013045179556939287527702558197270767794860019060793061998930033889205240918496962862819251372169446763477731922524559960450794836341507046046589666603789348318469861203079380833377211687954330126852114924763121762473000278266740531471860578410374893191430534020826434775917739281324961013694950016980621423115067934246264994939216715898662226137747547728648879477537219028854974104333914268439980659863737277864754285735223222786840760465634731062651758868694069316113008486373915034774453775450140089576075799448495449299870248430658954538407746794343261930771184031635361199863838951824887118937096610980136546264406194815073546388554230464970165389169436891373183408159604428080275113677284603554273054931720793830774865401726314348154993881379925230855384636071048139067976556473617219544740844134059314982752000281626459096789002429180473381741020855139665914676576465471083155638537363037448537060686867807455938443526327340382854099435742125701232101291642961956787997967305158319618926758485299364228929215849075657539520920390582190559525012489664407025143181015464712657660330034333119174915390656646263354617967470424778593833603877435513374350155025764754528118125860881996882020351885889568680380218672558706215922927513568615332778430501278525380122739895423818132154813132078646423317501627352369614966933157445660825350003703779063840622027811175875892608786565293673791092537482159400836672510974676991137457780853400335779820890155889461383425832221477352016235500576401787666735418642071050606705832796589928419851669274879750329630366281209792155112573573693580985042412550772028787972309731424044891915497911473931093615133869974858132319754195997659598923867800613577710855727285511591304759758346625366413905824026803780089257350570082779076911641419874998806681291744250271160789603485465325875105511966932936057406663776368251932115478816623550754867532530408871357883616464776167241630585176609219054984857014439895146333667395484353743531515225668750395861569328652425222745247177575999812910822027707728014599871303368945774867041683229451719283601861799553974836635425322224063412494425636867203964882532434350139951637314572354262654735091458555132333031997846889743538213549149941960445200670540880452181530193445561016309996424011829683330024464373614087081043378468618991364740567092603895733788638852031958895851677322298527697503474654574306626435013894517151355136461588000872699655943697248134470093661389217045010671822732333258412897758467473115525075569359256199643809285076117389294699162751060957775907783333717448748075070258457607106512386882036248687392785747909113407157254152879813228441424771607396041889852618483115788191145853700856248381622570255431080332242377649114922335177625158213105751114924192881197854246850976530771373011303627301415125460978539042947237655556498037632936091208334021809773656911168672449830491845985827802177103080276360595050850874818150040185729646457946719809272384452209959805460270749621877475338798960877206303083082568175743365159675679268783785596536983054366249540964888890049940833671260618945151393323855792365404659387036286953222630111760462360432528401669970426088630355071451941824315644449350554590625346024459386012649233588480724733588437603013004582780857956826667239552911695949854037363549752286845799496572652973362795854222170462413229165739567217174842496794862763260370207159840764036801931741312863005358515597201422351278835960195616104366784604476431539033078700985086263794472226073254739166180279551999618580873592412706210755579710207980138691676527678833075818170580174177636821512403267182066916417920942784361695040106733332569018698873697145586273331580757299008243509398445786712921072320163346042634795190328609760302554973552373572067451854096590157761097647921479693664411076946317619469379390880486316704336962530638118865002837041074512818996866244787931747498297772168296738104285164311833966817837577949746285637634703302561876279192076078135035007553414018378246575901048745114430550992404903206749612743365158223301449366118597035463879428865038267052604442877884611886091583522545309952332767886927015940522186516000472559149146909111937155259574767442515441410222943608041125048604348712729647765482994505761220850861259314296568176612721130153467820030696643825241531918891423508274878455908192529723694607039476556581664423495363231957255355384788625720579225712238940250579679447471640863531005880146448105525599325409481378747748124669473624986726038983265565578068583798364733259605025815093241236602355603653798689679479425610481505414689146871110978991694718643749694199915753343628411084963108803010863103027262961194229269538492061760882556487766310239791061618620492636871708308175757296701101225362192296042215119418154734610018634668847486130550744261416870459427606869403610020888879369321866959480378514999202272428596413099712369873151196908445333218164371853037090439888806553221572297032700715460719110871551606306031583688047671092279591013147546963145495297482808535602529832277042433885507114657031359271197947069482462047240988137196785128802498293623352225113204225007860595687023548745143010767464458965307074061381102827772713715717019296565383030466697364028127909103245254161561155864187377451288063704668480445539249986251458108191409746639965024876101091885035819781445777574395378595332835432823160941309634761975599682820177337306991436694534384041744629290996855326451755989729780114152950200942767453840699525192102816188578829508807260590720045200729970345262595114697761098847345212001362684713651062677493825179867715611519226925059072458273169526970853744742937237906560231830570362902907924295408764716114484897494217804709543323142598329795727554405601306750334797572977596838175599665724068716189198744237909513305880826358388988960865867715926386667663043051872923702054933677524069454570607958546325387274680456413385163185204245245063379205329309465867420341768448725753405729507567491921288134413993926450816690126839855618327373946822522888085947300321027360217078889210774533392094874303021979066479017453517381286693919534367809725380930703764405739803222280943897703636522785130996177587570556594728565538962147440088605331343714412605693815995168171776581940017807354807501834797839145423157496348603737613514411476305021828278649313130162242288229040642537659370151147875773497482281233955134727770072617398969142512472299743714735474048191430023165766278043257843893508238658677560409936008524303031011975779212923286904885677429619546409498067407370090628805108672088137118435833308900174433111421182639925120245468299325501828007058860914211432703891474145811945429813244751437697945773787092239214151956480087272757247293296720514226788625882452680974658861648258597236958786009357225344060064191930543942574297723132952605298770385553078702935000133292035359493128367953603048600248977086154268566260283956597965178151936418425725478106646347798578357666528420733836624658403974492277708585444035875978865476594156210486123256073019620047932248178760103993823689311107828814752402430738934155991638400415576839388625849489476451100410008640954473113474871607350642738856644563725942615960753020910734408011200602663676727226391639272627713070036663365945441739304334695205997380644692540693143592855079890597314119662821017066619074137982218426169486690995594534601284039032769076160124781595606446131252163415202040551987774784805466891063787693663060334746177179591736791412729981900424035634417556272576625116469683295062905418148917104797332793111406502259281780314112258722324375755942341167864475332090300399905648103408467474653523269373140462187040063331814625359296257948116158809495105587197696986065023459668630632275492995419364309254099559142953382892706100408082566091380701815284589541969290612281122019927814950229481007504701078681274573390918684155428778978757947043119946598269409013973060638990792722524406398501812374166299864869705997574452969763538060769471438936481427441979214546046362643073093186698239053827200015657039293774997182728364190434808325592004999837229039144307266802183235556187098878136116818002697164309760490688924406625779096589949032935675278350977329501204674626452808220770315185475477424452171821591225284697421168238183393490104096174973364096399771440452008403274111432771245010608389643219746617530783742253981431467366316360309618104275896802473703729782997370061350321839075035994330187853381263182485099293329632546422448334052744335417666856230059775821677615385075436345165797852925328997828171922210625087954897994241888258017848282793441991328341304012166391666352153049653983008798535785239784663220363289899108260970907530514965516851947603777823427374929942534635931687302963685170061122738738619013398418967804521725450836680603430323251422834378382946483593839379105511339209031727786939244600572173936281908051490159107068260817000218886325350048231969049430190581135777703139747843417883850801071411749940993601989616993216446475112853196609172323333071459867936959322719069255992761218285178554226096270597967973187099533946927561102952839145732044002162248706805066740045528037642040284465385877288086075160435705387316258183546929088192842599512931433189608911083813228124552811207193661179753782174812157618067665320526310353987904001187141516555043513075457122932779520968149295550436415817630694417988100425863885892710804212060381184606085968167627692311857223033212483625033730824878113132970782996397205835182808872552140054929353555766252293429851958592761981534209680937511758482643393266930462849331216760860914391458268219610094882694985512857399947716441893813909615093724798591534413244809410281877202812375700037748027409536249865393555608928455078890068633724634161121015000530998262142736282739649918581120056156603835816911816286643760038049396755922785106567343204649107839320310614209373448618473535891662812831511961854669772237158254266713763342282864429534140600974014069705444035881689396494597253122269881516206260001587920919301955627036592266261652740354182094112717005148041358629339474269511337114405366910295019759312785884369363628773736986783802656051451239778653897187455747460524262001594624066047762903212625843119462363864687055115458240128283294343524182658991746072605496538259963497197263281936537675162163454776173458278526681772284219462117000827495652935463572880088972309092231966221036912547904614701901602420589170885001143063876412220735136260341155313867787978576164686773232300356866213764906730521473069567006595641388051938649633676595918663260016926598837518014115386315098905437438802273357953073436237056018682110740532675770134061153156793668690411710143788270104262277026598740724311296842334235723317349765459549038261327787294704954805547409316862713836212797747579455350347941940595346963695342710109263394658434833636903340178321538541967111120125556709777791307545476307482556375062253380840359970930013360309831945706799563955559856245187758686528224810743989937433537166583823712814994463960500721947898673838329377846552291433818991684932604647575136667035323668442343336600451862052810912868328933565402305080475072883332625414743003253791652770542819517990811614800817349170415508011109404630907383296266235047888348399345783296972031846126626445271646842633230339157662191239354266373063831515581831691754545363610619927872083555512732914758137045843526072021408221225593202492600750998302610970879339138535832367896062340801628238111061293043062667203205189202306640296377623240005134323120079427450638333427603599132177515210082238178588352196639666215925165038597852598269827020343573205863458473570246668329640547474737026184683182336075852676718762727552563887792029514907649842842198560588502417389228397271319742259286287657493096146875155798496356052222190699212246867157180692510351573485864627051060230369147553867949958535828380282824459515162956137421498544904309319450116743577059299410025053153805669608835749943187679768825103528678083581803427462240719768586048161741706027239087863494076546374000380956008075027650326105405784335471536515952680868389500392244607832837270482996580817437784185076987693838639317634515971808621173687098223993064908733757609508515059728811084191177677074034518787245258021054308552100106592113133329475415296500998035474883636594009959256633234726631546677844031645055185947842981254945505839100992592800943395394387419125369826694884841737649027482817398328690620635503502040814165579490620425435648829467811709810543225647094766423164770640671388532263224759790054201906077371007819569046677349840067752721013875224508402426385931876436185383256868894849218724807576885013625624771262664031547495455285630617101076085982471372668375531766355997501301670220365283256058202727890688439985627463990630391094856799400753078404897302220814168157371489369273114061042553552992680329195235384421543831527244944594008242709923142638659256344737271830361026528817551115030207046535767591934916891501194195450704157908168355088185829311749051387250697121998451482061712874972217635355739279491162867993841106854451608038412688208943679368685939560293360126278818639699210150472232626956539644017191605557777012459309433480954498748961656188690805579374944167470424767031457505388089575512905077475547838901615321204490802706492993019410179589827710609512149660788300189559506301586250947457097505119701105973980148861670980297278521206871015650960967544873555822637387308616889122518610376675145579076626880693351824265794601299924186058048451884086959940015293800101298100590873173470327232135202740235992595085916994175128391466062439166030211465558349352124302964204510830365630316862956723347050348124092207685629404288987711242946963178231213305369122014862838779177415161235097003716940409601274708000609576130122102582784291126028606753339465605271086246961411312992645030081795748365303103732668820064435830963753436358038436587187652630163739236760966513932599437167786353587039286091898622805550386482215951053543586898508857795308681672936166118281881268285077026042392814454087095367241313900978728447358439864148629916194185232842787018151152030978942906732788230545655353087417713758135763692881315558446286799821628543152630407853119034210133192476373868433387187340758759332214780680082695960542023364401068772229787530970524195419795374542395514197893702921949639096771876298394616076438190312843779373205957505243017240954248708764645547684533081791057073277008315686704408288623424525087161516719507742017265869671050055235176534013136282121670087593459694012363588817737279466070152859827404430261237717916917530458007409645759632573005507599846637021425335803827920224922994703288179530484708617113771317868364208048047179407278461071466710206789680175285829864830637634114904022212372373623124908423689661550806453091064682201408681048038260485033036409396134055017577345677851629745429153787582413170197118645597594982250823181078591241879318536951494630006829704619431782224561823148493684136369333193065795960113308836257047695909315742224878875608651985992072446528061661959257898971263618573946826957472801088253022719599053236017556437032767518873536067744024747216331322873213472420313739327030651444092632016049783468661943315047305301843747329598375808767793173492107457363098491034066640099075584364394299128271046194897172091377908348576095660236974471323854395485538970455762617162014310880705358121256411590371857353680596650464673385833912014299149528683240473423916454312722937879661013590337711001172033308071539830231352205056448891479236331256395645332471621282374597229078811120644067532671962221108258094689298252369798210861454989368280057988844812235028823378555322148520666379652902841372796075005802699120852476777448602961060502758428036732792733832994104382341236727237008240511709186953385554954659261160648027379800113798152931034502040962945859393737299488144542025320168164009438719238082587793389463502297354772527867642743321227165416579033343051708318029705463326660045712419978885732881606301964454389876979619452981418504034878974273031648160424097345085994514806556411460546056066442691527131493754781984979356191070155715723467439444338939548567278456769105307758191742524413758906295793954278504379731943663652036585404753318991620811339355879023755289108793979173336389835908807695561690663947283828736331922477402906719412226402351861334576983830606810710001949811080784425055353377047323468144133923210860794294117013588266247496465362701494601200314684706479005268208349012036276554572816904220849925943858810281540262114647214147548170751801969650332859282508913241474112448437688020636107140920992079283560074284915828044533887517696090597054432200289048899312009383846180393404974366697271173800619254683457007098812179736606690714914524488493804720148372044986653327104849944564103260116116229012225161650636225163064312450920975199728703718107320753697403113401770990893953048662030301235850839491814432582849022777670373644137573868257016973589640495036717266216626353771870713959372249185442824000823650512997775596998034391629072329786152020759479426039524244593225336636271528094376708508887320795460203670480112510668366104617793504209528454171181333947488109004308996531688387666450236461584539590746098643628690354375863543353503230841883329587350754756522109710726012341598220230253544928012288197649502140938574448862321688298267299923098420576874574299077235568361875605504529966684098653914512716815079407976745700486602186769375779887818853339717749320318048938172485268339501101713746576103802588695400647949107265780491864869113510401821499835111669923775786535655252087659839427978358304553280122367029545010680409815748757681945284460608000268045423780639302128027417596963407247172809541945196036835826424054309147727615744304667668483235324834622179530032473212718371468366532509947467482858787139937154346117378972390455361017014256074340404120985152001970468367126783508777674094729746781804453075988431921335878468169208288635037875716880186454216335645204667974241871184357672086892322617109617956572115627422653273255299540894385465150884744503122749195496832540709252383039778603439123712188710751188295103785758693556454808065039410968423407904151260037299033023952297542031724478371177640921495955363587933731518346972851133209572102348123664352648769154988558762833710457941402538999064044016151844346835291099244271260611935781073820524031511091525169963082823733871926587762813967570234097448461392357661871232219612754819732558221867839971970150883236786938680329247458539422761603200916806858204962983159028411518403944589212696398273436994391347144631219670677475917297052699767562365781135407049074514603976062377514134877534158539697584852729030766726415783770219407108663292997421936399880119275588671423529815065758089693874002528720299370429877435810981826498681024392777712276461354363014609880313638241317330599334383331849266017262538545907346091936563963155705417529070583576814373713885155378177804252483857844144409846499832833904713904873269265399711010880972786316072837587281417471005741815870376951630295036996416485806991643333866653541306491080683733686140409379129481285615599218328442450342658156096861647892963815461455250800847538506526498570206231861366299398759726847566492724180626897093789317662341602575025785089072171943033621606314939588851549450975783845500893287476503956187500472175605659685656398805160546166038297492282811723880185852904144945090460553303122673187341725270198261414006134993500056747050232172576355406613009431253570526894042586636920751506310380303295399852326917436374972631619379807707793899689782237857765104765857826899958112336700867010104834586421646346197060047736506612703198545614322701030749859869607616658425606422816734984857190494440038543579663656430329075174081405644780315386061830782950823042893693295209582167462982777005181675945686277001173343651430853606686678997525920486774813932784981480296384355362511155292983358304764092384735251961608781173030474855684594635149559862343685195072201684239653947357149693035422623807768411467582107808017829162114268535958004260238906424349946742058334190478075294342604426050533409105407727006167611447005814572926687125375963657487345374626227501908743238799090416664582640792371096080644177114099013407508916035380608636079372240744972313243858034532566835358740964283432331517416304236898187149195596370514831544601946175559377802828705699353974808426493199349940112652864416763804295259079970904547565359489790042237458317314124255133503208581196852242143585873904198814369631283802660335379418609450130992175987347532232246028182676739426959325276382841161135616428994803840288685997069405708019114713299179052385322009430808601144816839715544623071912355175848435860882327697381206182520303874207395151671574548048121556411531137999147882213741707996630631248901661318950149965219840033815029080655391697428873949821684807850070461993340415831734669163656437480176747412629382769828937112179607986848672814643685765247832683217774709537047363507070580984298197460892929628745655234757011220669075413971950800604511449517020998607062578013407787374710516335218172900758131164115028577201467919592291378781217891360213550507240506844085892064128625413661896494677440510999810331215952358205097077724165739525872395659897277354726090992309265965410112481697922331165443046080102353097876657123508561875570748111175536884734386237390549458839118077520333778659053434127961337523993195058475305114005071938982057103144271292000811033636647881247401891437766181402014776540340146313284447281235145615948110016417435054561684835300807656589880640878780018655651280080046569177481501674734998387482379650468518613057142955290301001898599782619984110605700689599956794180698715523449972972960711526517721537199717668531265612560733060842353618697539989082306617344144093937210648235162445558722291735473437949899281615733734887081304354660333891410957050621430661741640810039252600005053378744400688722945979006333629745785984221430758208214557224008370020818041747852723515510778567355816155901091213467392859890969224398485311585930377876929402987637431217219717714247207609560440017913284863726986770064068342273117655267573561891623855486870082354977274713249843766113844017123525343078946409706290507744221064843468307598200387906194724187088491645375094292864364803941786391094978027612719970848048348635883210363081061997640204991459507743618214746847612319262077742062159851461632697510118189656500455170768741275917723922840035749930506789725907631664057917210644213680740246747810453371863928128645686258607619422056050564605888880554794262858326217061618292804677722006248593929144022691052866924524510202116831297624133527648655362609567142984594720815006314595130483759596005807193984735858424532556609176651933731324953979517292107278434498197753703973496965978003999600434341213028906280210737620851353946418602429880167328058382590366204859865271531440832366757387720244445455482896194173706450743686654629096420038860071221113497084589064461242384611978127737940647938145422460376886342425615895790071835607256984339497619712485206263327605596457552980810002679512476495679441725719076816176883499488875473504110426190492831607610557423346690869201841006024617342627978343850129725685523019592398355497319956003182178223226020127373045611702823071326512559578649111042192104440592676884537652559656357159253661602237915697794139603175879036281535771251266143482348030577594912023235595592602657807396474048832222932550902499321392552413411087486534319624506816370397415370821004522122233983410794178662781036564455300398229195107735039454176163923199106235222156370595101170203514147821529862188855948974410875593972209140682887609234823507651056530993341508542888211034808659943727817402154145167825726200126509149499662841701559027637657919072948050872723968019491862565558703563166781225133584126497863972371236495510757414173796811523277925405893676746090067955591941718009806045285875035874887898245502098917052701393476107197004414969438056802551620226809778101033192253272973202509800714280679103166440725990384387191220727929384185649788737440953322823924550539628241906290901430211545583017357144642596866651744020242873650285328690597998341264635755827353214208069287646156090629970478638267107833552859047974700416763971154061139067252284711099655916520692304819801476937274347175820600970043389808371379752210132351746776699440239301015550608103604610342931833225174583296374293341503857773875192459350495065654582816602480414612420721610122937258178790451486842993757586738933108288978835904207243749793820903652372300713914162958841659613929820332735204493567863542909020849626622444063827883007522890803109619848756618123610134110266291722062768767232694513561551715558956286473958529141655153810983753789449958721076867030425689743127842437070495437830751564110064862272670902044874034646947835884087816584472436408495963639315960922794515719343874349673219368571978875176366539697241542862619178660772701874677762834953800816789497973908354423109092627196049663058518302175045474536384489353751928061475562363277040419292878913355619283797807090954451042452073853034178853379548141185341380558093523377192873094592435311228994987575780089046864595275442354964949344946234099520859464295061569685539376528273535370057812114284984730399607963964438737114747714112752537613176724366148708106554076051970519058579591541784863341137614450832726323547348575372768897620792302648686812704946922295669290256251315773843752199859704473488815865393228780292622453180733101258286968156083786970632304718801009820419669711210781491545699786516880321648761848660762044893957622302503642844606410461508165653235678672243329116595647075145293996691708637093507411211601818144220255994265755252863736840591141125779407482531873580395576998055634228179084798717666869261797404204655998046605986507965860397543548357568368777448397211201576699732870200542638918792941644420635234739563942686675158620351543944721211796974342433242465521416697421046323236578728361565238412234486936377625558944567099033865855823151656081878049099165775151755987006143809425360624029289202697325720687754904377382447027043815555388120284981063472185162498198383764170785016161095568708392264744113504232749501314623744032234493485788999395934159773239298842377928339829963331899503518599152996042459092161228528037373443222337877135721838607949339038754280611575421917045472099974883249024581022511379624361478211179670335088948156642843843777032915143830922039667475642589468186291129181126330347513088172287739332152322699643042260674400137709931890713663705264511470175141538782005359027263416004741151815508336012661497136417796197112730398993418234909937945144892235999828272060552067853526294784839337214867134316066656226896165833500417068674090829503777702664524777919294208968556842564321928970231773647141857255900552600461000274536882329133449303054208851809180105657850415672808343079626627909624762173725164871706293643560958405077879453874879741999485512467050161801159846283597454346760940212501721537126838134688531909053212978981335947923548319034237014547677029289831262440102311578015859117736061763628375345371436352803775295261969083808896103596820619351805647660504788188809485488752365246313320552629681141299875752601821904418041259762307106606332203097013285965547840691997755038667888376320914161530972439903215538318398263031445853261476925555158188053488421770207390642212645600450370485810106227865531193054259879219902816719575273314261926252510476487382838261696702638383753138248859072661147376630410486527971041194373789084048633484878679672665743839072757191804070062098759992237393386996112004466423541448312923433085520561669853538221851016548610410800003198152453474469129995214165833123221482451413991826908184901789964177386948326003835007182872353337487854745171086524238265440980625330972081902841151350818886423704737717495711076788731989325937631059031285361844945111034613642167843784430148220814155281475460835295297041510657004123629256611101497602462308292031358852377763260854306301788935415187428278556999477663336624773257905517275568564181696782549235462195240054139951663642943379886776329758814434352221610059892487691338104028541930241943695983554503462109741522470821173393528822820004428903119975982814743884489977048891030350152307122007824686085339265609107488061218971132357476879183725041765714522084300564615485681792681253380840440244994510561197443916378781731195489146282931396525110498389003338380057536110995613142544641719114883535749966951838248998772399841539672343299898170559253754777891396325913106641332532892016661679330158696568720086532602798317073220271308708057602719883727115520491346602701972533977658028574433145120996640052225092738251738816079796854132416859481410648266379018286125649520051512800647140892739404226083322917702399094701958476849358140840238828767532284830393637398910647916235951422783593131284543666973793740060601957915532939805143325030354217886105052665383052807374506315776413750144504914688087166179534487506222054027941480339777327730608068930995843819598295888436458304639164259292482222139381620126582116374552868775293947627827608365536141684687173663738590318216738182728281285374196425869624875836165952034466213812080959507910382229582273954579177724908582974437884521494804612547903232932423490892980192501993491347176885347664865110301949550866403216016959903429443114343522604443913512745551261469806158549317496569354881525302618363983128458625492613266492830580983304432370886646144813755840651387637187877668364274648611472027921558272607424817291929893573688595264708143128611435098568650210077225942930606193560752222315662421971192347808745713174244680532782833676971691556805091470096347162305683916883028858917257769983229064882483412410529629111311482737390309650970528524425880393048995794992036321744047845156704365345885184953835203288325189793290036358805875010682323475937577858544199019996223853998122032885331197658144288704056940138469645016131672163160382898475074598952816274743025880860099026109297539137028697429237277413885004102113212001607876934108854283202719163651322926854874703109158953427777376252549738326709669376931132903058353131935754523560256910524787145497199940724712751562498447758393291857109390442693072184804306046797861968544524878099633695325280774602732508429666721114309361401598748143023279277338004043491731417457428172417376380844801476737059614912355393917289901726096286857260525185805932546666019009932280130872164847863900234549841156238138354612767938870835229834533022052156830340682032059443968172193129396870526054903819805280685133586020655409497654998083718330874248316293168264112335508573762135187251690918968038692624885413985908628859452783734108654280706369661262100651886522289625254353969682197331234152002296239134089201205834137055045829634410545245976346478727555842988240253144064756518509141465420113370553760671485790322921447181237461557691370243244121364789002208807609126207399830555520353384773189629605576091016714151712362205378086409471384285810676603210228895981397444612900856366785216388771453425219229259500692538422600814991602221784284766796121329370671536932639676756148863409874367440811836633156560465146552634200042701475938220502048706167220881785013031940481418113548845066242947274802516993608113103453628223175901165800867714494636577813481995657458383909922704252111747327146489283637754807447614132424879032638725749712761029777936905668721883712061478919845328571118419341242796944592884560819188770109225682057901798938608152232302902341912798785723479907957349840412421394993578876490075864776326453261255409152898910933704729111000218178305898637943800497183512411762745984603536060062843953463865341141313210878618139702859007372614795848919777267356277762101671220139177997350984441710246732997774730136221172391673626709871808904543714555725164158797818910348517507497212347982729701459955423184596777618613688286744852967375598296726445702889011840139181817465600253314693251567599794593755266975040885906349584463469137417119759093318765681119938206020734711666878755702334354361051146835253702834282391955290258790934987132381070008004534576683472186527185411736619045012962974616521582867466308339089618368365264790789153392549272612990195489999107258127213997646538600589250251872968942195955961325289649255315441869837478790083561835688862082152097075166124854296036303278366484474275425448754510075396267202983361454055479620151837135493460879889631429656654545378872100841209790471893562930143166213112555406171326337584542781580247283544765479293826693160601864865386268394399625364263279524607920222171249620215765328617009156761674975775829157641003870225783019178759277119092019563713986980677681624367443654138160922264267899433947600811957432329527908516594226360920306849873309345626006864596931094672637594656982078080722185160678613978967924112383559320447576662319029192985374546742618958935684200406612107590705820193036992584122346494749692021005461236029110142151428675256958832584028171662033549288534303309386379733526421229506762409410995729089619505948272623618345040261505503028158622140376026607034264482580740857129647417578917687160353840841106233237969573127774977278165142449347699393831161477417560255068454875984671368373515626808431936475733354692906585444280468005399555907125210222579818530710239371973811654950688443525338947720540568496519817683031435982891285894640213134767080206081941105026439492104854057930092678599292190119351072376525096887070360980471843142592573144178874553631611824767530660957853033127728111689721506639703472726208380792067975343061094521002028585621938263698095715823137691866754214911862106135928074356330818884530912786619293744835218244449522913526321084631652126708623689362903991244038668157267008485160107981986536078749266199249030685075169881469869859459215732954024887746842688365155821951105558779663232384660121001573065190888062477998149742331563850780044632407151511104726441892524939731175761204128791760839683397507529467839111238487055379567883337391427514482398269657521408218175803407354738903390285392552574345671251382232609209017303628277109209098498550255234268414598316826052899160481745069914841649247608822372835197459014640552015796179569504801794929226894694287041143329711801268554917208139594174265813273703237394424938960958881785279496695822102086245093460704763867755709893638747379840674577345194851902100272449714105358589165067917049177657736309615280978962414273933910634285206796686521867547291775901844697682957058835617754977352417087057404842663618843955394446214566136198908779732678628839767672950110010208255562563635308714176833100679539880692123793065598367830994435165989308790757504437631528496282350898504872862825811020896371429594919041244568001282157036646000352111182089069766349520695036922153630715254633316260061458288767592942067121451070115108662877950692745317377787749765463039448765832512476208184200159132553236247197714986965075751595020707722686215357535318682563625842307743539053576066876693107673258868431402311094403393297051852952720169385415392910959112865721902718924121463109505811685448532813475341517233515918868973522475400077884451399677747887371319059076218501593611034248845279152157188703883005951215816452270062065035586316693117288896906843563704041337369855424904473089118791803509383569265180825052093701883750160977539112827935288798464516525000774949214611984466264748089268371992179487828554300375907733644675243101348326392451045810338691358378489845660464442776706092384766645047829763188535291947339273267219866655094626249854577089258927234036192781831477137898356843025456945439836048162485297466925508946378541740077860560603814911664167809364060683203141159706413516728754508028871438292997496350767861860259138874148260587959454737623719853013999012587074911436415987019265391590021219369627926726700204064015272229736854933230822006476289526483484920325318229818373379516602044731039550463587008643597532892229966483187421520942752132532560577263498785701526856728058347426068284158757105964055247754808071519704177294854956106727254953540537278948794874528934551250941176593105799424497850132388977863053502099931477085940870674402409383032149638533901387031450762209201196207817811997445731820778681975776813834885705314181783399214910340104236127670976603702058161060481428398196572530238491123862484590849717623350737060476461165445752249536721024837005167787697234167905249540908757225950998314415138290349945178167992868385130324679757450664883755818627744526781436244685805024172159023667417172422781679312144666794533463395275569713939756304999482649079022096227097376937637578961703464780323786564677201154443320269891900847541866902830956628094978031602076430851133746797621928174893459575386755223230752910934777145331931275210253849581168465502273086758459015749753853332318689658211408142417896443698309823581390538940767785486375653714345576501507417025409526838611662119256779568603114661054232477388596214129439886472442325406648850792011146103321182631404715637064476961619698267880903380992845484519266012082142687917565069572108404411777796673750704101986847220721985583271228188673785160948109843132927726433735247573940865673197103453763361445732130144082986668937498547565202521633591129371315164635502526822314048916447047415497058221069695980204528588859146149823424822100157020855079636835787213178014048124459673667576240135519773574820950399693358943465056058835606416359150193087721175510175380252919503790995802034166075394411654665461788607366436189756689061099859199180043154316488299024671826464485339574480873629888003007999860621015697345111377983944064018311366516611420008080909314279436871412773572853498948543103472835897330069449681924047095222906983879505269020804441092083601113144334604847879830513681738507586848611429233343545863112241771143573115930653189985186082412983722870091753784697816241904847490388961135538589523346920350875929779446258964750153199977629607662216704262030581124486318259755995109301814046116773959100147472853547943455551731164684168550632725344269941462334321049819121351132327487180116220900351374464405917147721579891317091942949620056566232023186218928073665819839844024801175983215408106772793529294854595927145267614714392365393058927253691763711115391508841199090544743718186425282829937303918771384802434274652333597184727328239896808410649768676970669834128808301073508263258011735482049056572591822225833989240570180905133886286514243368381051531749540988085025048475643891578048778381090292859788023652805517999376022916796420898541673718145230704753833216195562121145516037856060893274848876718285162949250480223998285059836710352454499747603905801139867099257250471882737202471096512570504007415246279006284781991065868743743818068147340709344589990308382607285356770817911192073487662651698531065930367942298596894824349132112991995009873659360594512372129178899298633735327532604814298801898135032940850102159263059490493377340760988460702042236064844443837937103573264537857396418766671249689784296577098752863103330284734648666163681921483354483121172558521594552989183359606527462891623277591620424430033800762385019498720065489634367929117078838197372215356155845758346914092491067317077276309998779759219659747611224408392651967813881742152284714923736601416483461020112954008798491979946179492385767875140525292051481316962972051714799655560309511835667209190511565265287544550676008102025041945365930094260868093856627207959101039823190539353873505692040641405567165257808648431421880015032685642825923955719854230200862020077779030098176274288940523627499715739581815000223342444424667345006529201207763555230069218237299840415272672505720367962416896759080878608987390998370841488114908055890072507050499553622466414076272566894793194734580079881969257191975585517608529752116049871760883478027769860844277673906281566298616994623612314545942070816370700537294460765754176650898017279088061377920298213703387501094725593721187444473410407641179541757624980627523256927290958586127333308731150138482308731706514488457705173854608279640102188809314598198420911294389741877294846535227906380955299172432052571616770012349919451682249149199407689182071366786642491065483401359511724536495520936688372156129308746658882697609165942226075253795600230655008499594219462172582501591074267091933874513767010899681443043410013277371165964689034125554764707594591972910922676909251367192757033747113287782205932376823770964645628841416565761880495581101751886603727705797850188495622615229236064798713345334646893029767405102278285493801558019618616346052269655999770752655280027887284868297404658292699684507083689064304291709092944519583231955980268547015547266118309432630081166149101425753972240476718549418660319200958458026885038347389237836796193635039260254130067344182466688854733940437452909312866699086094724005375951552636613380158802665398699800926595264437081072112743698786654435672752863194408306404518163219503733950978920516458737925850288721523823637215699857420750677468127976628271719358310226187423764910077126486054303583537030739084420329887745906408244809086033683892708275395262702069158586762354337640533428702632154360892418161262992728972445387430813728370050886764375869329282198488356836375754927958874189971672962619487600482235791064630510655198710134666467556731432255571726232245067521492056535781633986003842784333126695155596810980254074678182499216908485326224445709406909707231692229002377611154191886688758055442561890868229157423625582590043666466569881031530652969586141018566992737027142858262826250848742969542255823314580203599953831693212395378370011433335390313943380414098157855378168943267151908243269795425142681430543146330679224271925092372654220715688652248315199626833976089195955097748969456015312986575930943531997432023109182435365710026579818377056164412405839177101160828308153800283972153709720937281892827774607399221376332092918915746110092611857256980026645347042093527824721235922342096599696664229201401433365991751909577639128979296762037311188168188804491813577115927782655171385782190687795114713007165296168262571079315411168497146760533631733941113754102569175892322542256805710478022244073231910677519471687521232276207317579765811503659398838965830043750838800336726519111855570408208933398748085438891987201920286144142135364777117979079637709668444718824584014503898772691430800432986791300169669897754158081307792330990398622217112033581172794693647194755091350515490180759118603605334986605302577502990431278173155215498845512017612475247240984752953321644881213263690480204782048657728693142145362819589163743182846301576110926588630222657481618777683843563361016495249242613499413302456298505648663088206259884750836403726281689669190788700081099519480447057531085470479929683372854350133893460219007582144070846686276582644769565201749647988060098219607511517679229784959961251970619167213070951878408141585174940200402703651565654387151826039543949595617186297589530256950763985349350687745234397525941874658216711686415872562246022298601220784885581112534537840433436889114960757533606520602899321739926701205204292449317742576910461921324242366782050286740409649562465891249933523016725915595439924487030183106633040484576196742337529529270494055824075474319716553843332428350430742664139652931790693316793311761817293350655322927200686141594989249623514720532420545079206550641343188131111255331386543696064528147126975777390919528363973017594805198874020406266672410252806615727583471568875971873241024373023661250714121867911472886644180734177692349229284524732703888539562683446222073508899728203500274890935810420721758419472330456087061444913704736308015983090702309246948793482358696204489742678440161041891983246101765596822501010149717442889462616004253411858768653578443205550040651910713890587802859764761320287765776657567001751688975810978481941956116094541337011475996743053380148879076673326824808739291465195444462212899889066606828338364359714164633975999731559579834723295727812434238847561514355459934490559760339526804764045885565824984343810487903988032186833311134473425465635233418723445558946563977895821384962732007451424695865442014580159074198711101891798744771460287454994247942743784445558550555804715209585095111197996898047214295846099908847672360364495787206753713396454721896079763621603185474475043625364487761865889970224245321909876753247716345700270377423593770460292948052310275548997153980681774105251590826474211443385068615554745658245908820609571167464003136053969946234550240233314008239851219315849520242920433980660494025632277955604812162336731627105107344536953497226958991470934205339193742350598474024253104198194917434485609402784829705462571317635738062054144079863170743532948902861048006422687463633053057538836252512821795659143632697545475989353508325037200177933718448478244585368637444812094618481907974171193339280883521080531552583415371873618745308315111970756967716899206159493597953026160589126354223917850836063566318760194083923686200980210339890365057018333495584116438935769220242932700090186110387170568982516010951130063195181447660157480196146077511909538219498837937551941392741052110442889647544183221958422377251628190813533833071781855259257058655177584456645832094059377308219966060468677515940554388854241726198294478631753212771920906906159581661223088954243952459483870167381101219679079982360034811821033848701629208924410200572224943747923011533044921075075976476665976714774583013595496743613442498421648033166657378684936816672242848718609164984983225454550714407610794289348725303319741840087601661421765800387528194036668098355861794287498352962772013503335193136153265213305044874212516956899542398333979395976367035831930732210008903116252576782184292741986232870510484246893023460825926766461726594427858569489718643114511153323421017278980723454255558699762789169836186788880631522838728561803994864590513057499072748062490355079151835872444250152090780547813001554161956780835527153144087089516673420267641949293993314396836448834379063091617309183923423000693415539360952565146196090451881413041855578996079484088950873170776900520159685727968862247412954053763681380167190600016834654381105678404334774014976025764866833443222740488537055593628463821174087640089416740056934165300799178240267795374368992999866172965492460850045731450022284182332853797888036727098921806422363009201811027934215182765794146739780263192674688587725165824742764598444879610466686462773819903625126122744349128146551051622160801544451315912874390642564610000663791858507874869415898630812553493567288139258370360888192213854825621140605583928949135976431328819532055283229587138720391221293414214821415401673445864190520540339183355875811187245634362460871393495527574972884210764033430050782409384298088724452284717479901907123681699482645901607876511803620984109792035169137194404947045246327319540870929065852379501815610950679466767048939874723366631650089274285510492953770305304840928908618387883418244571284377648258451069836277157393413198070709056383549060970828116964075626952798179965500432690237376292906755919988174894857846625575883775840137127308883789379807259548213392263892512022548907972603881235684583486685413188887329172865173581156496694832162659847871202262432448248893116253748404994687439521664806755088542091694609826179949619055013887024516949197933874176818556351307164693449949085799477825291719905641963740016941723388024049570255439600098933555485926609467329378546442134144889563634640026901587032308078050098117055267885858325143410704754706498844586120896613138456911656893757716489636380199147894399512162678751595045202572810863107916509229629073894938487446121235591581401364054419676105658513052778350454258341817273878202907027655625190225833019859194427487256389060610858310623044240896240323995701005552622721480824692145450536416246622205658413585510095893015759688915038762559246214004204730936358104397598682575432848775625505926885345669772939562387421440573935758063143692681046298344227752138467022441299965362945333788937262751147711263150134426115022721496265334483528751547185908591951524843975199393655043172932060105255768720461490196153450316390462725767071453894549683378790730505930351910723506858954522057759273315424363737277763065036762498074303626521181813932246905919638183933127182636425564758320154110879340669145200628800899346743562719131353965216747156511638664782665284008969182231592552299323354073594589311482227898046524779896444918804826541882945476178814668207639191143885541044820971056275778729545140898897844958897272753107564775498281778034632627223744230122407806333818880617292593188070552603903842189137751085609306518612771075668051423346256478246543872667249515183985967372104022716096369389937605039227210629056221932587053578382435847120761260612973373657348069119212564216737942862146467181974799691625997276134661623630921833122439028095989844686772195107050392782827007951834310666402755793490316691745659584678492585759989322432008553824245650009890639094982509695735134115540351324440520231774248853697339724191542292060545324108703413830601009842232005197812641326583132068478724421159437594542375905721667678923986492119143938222740907703837375638399415785414263722836674915765112303770643959409867754125887020368861254408934830633998435047075282575494307362510756278256576033496634061926967179438999031764261720906574340504231761187799238738052163873934377735445125576992928375343444728102829579947510909496883822179547661933376526550136155992359043647023224759967003826674960632480639503837920432797009187044280975410230563924519579723351313379596124137991902466557873367649679012041282522054008794257048730250490562270185056836475956495530867315044252652709785887223709842072606863963523355102715577599577794936775843406170514114252737941175647529019427343738935591317281202527680381559584511066908156474071222996730384364189816232810439456520382136843977299216635464840661911852715211769685875463423658537195644255985907347644189088019940811016574268661745643054103314780197186238500588258055398094604752411413644460905853256483763236449904112130355750069646342452980885514261085516214943399811654876341340924425155765923234883941297026927863668082727769608243896932571101451210332780849960815903756820973735224386932232349493546518432587233162959570639586014217882929420225228330834380628374711634053309372952705705448472468543120582570607118737415530633122143374898256474609704924872121306557050208352706504859003345918949024773958421307993823884019827776685970909872283538769042575139938629834145298092109122501573576807462192739322022135831305793853410337782240282741385858132364836488066832224800340250110148593558238521710704110872347490437551707328444023867195460928576538605546322338745739762866046407731840348525357283320024192032852941348622934037679141264964590577799184766740418773272780115589207228360413538362424293524620556225196713842214541681174744208197822349435478118107123630247504100214862759831703596420149301009066006163691858754748667227473749187598040304235037710888770688704847494861213440886017626098647097117547231941268818770188250694992954871782076959283605307473110075078289621670737960752601513126857310153218332838169537180196482064499290216363039363922999027807525071705455899489058828947729627898787531161427913348517354209850931160722476356645995892612277086821901285074652234120207100603500987565532232649415675845490960382034059594403931789217564213542966569683282120851142545650494752136434263337403940413220727391861580489356462766145812852009042819463785582457601228147066668413809353067019488061800492570976581295371355417752721963272800225105066844748891178410572077119242106697760134625774565501076854349581620327961668434861513767220350949740343106247811714952518337398097649914059578293896630546212124896461523579981765453112984067896950183771271347042067744447175935841338863231178969541733720575067752429301624626926664291896079459335133139636548053094544634269512540377978063611751358886754779596605575125729415269935161312567950098223179383173513509858410113149228015529373774150988396101553594256436998080925733100053945593428501129185132400707836681440624227887792744276142364322745535992629577963651104676467059737498129264322261806205295124184494598883039978145131474849922454900642680698496356757768058264681025097127380239065068854405711912978310172031196045928357146153942054669117621364035975481008108604891354499151450450283544161699209183133579576328825906735664773825924402718294035128362716834178168350579028165485346303337385482849039695109959956372025940830852887061048130231107128997985604116093234159891824541032003847329599389597637894222104825526628297634204291133848276260465972881797865599868623243302522675734133942123848089931909206459291671478782956471017992832606412714360464076279565206496942447973288155154845542309377656917758242573554319031227065535419623779276753274134633347222788421962872948478278050829227049468706661729210701890147722113351136615716229639617998810524826082683000393931637201913883099054647871106219679121448126992165376722480751497699648998296140276790809136393897350874418314908712229338490064001152949868516457779613390773566090424118206387266186160587336904580199372114506813035646025285711978361257277405962523823366742088028711007615343541817214751512412398895094309608041249940714264499655950561156904179147718249827147659075679051658024116483095146512492052535585141125134275694095370684035465790636631671660016701561066193888242177202781218215219292569362382855278170436174546927260809675041071817175691727090848069853298576038101483064068137143282722976015913395084013910381643850534549557742764101354388615151359714013530633600608702274440859603174104276646351835993955071152440465595965293701959292589590977410131001114212713724904868129566984603351634451083297098232415022047547337283712217830550034607139809697216157450724181776993864696575674461096895413174926262383447731009605499760809512722670736878960174012163584277098093015648941173421489354026542567528578784108568962643492960322559029652040373664829192979471139690539031585719701711443408007973548567047164688272759276669986584230128327413276552012283998636658271457431826624334912428230507745329941842832386941730595173706123429221649838103276363943116702931520527659816875344972217152150180585519427127744441839493906326792200277495200741422409175246132785953134092319432698822333145703443173395274813662460169893124734916293653738955346305109456459701821723497287671923714189599232898927227386815741596018096517675132373409902498745049762015921732572060899314394287361091830087608274192434807957751819319750878356497899353567557589520105787567869422467421283085584637620970940366459646064015964835998760933552591307033350411572249808514332492202782082557008264668240535356378743403689715081347327538600295119030863003099749057293043706353611943244212020234187031873227724551956668418004591082437100470138784443447530476778981287197436697996002506038932338601929290455738937501460898126222256533313559738796521096591927622219465890166483074050673238335804139319405062910862537200442769988740583581935993038707263191794639899537372433623137936169738538898718893179073626782432103279503985361473093295138996461981976652973314384879984780039556970046257189611451784115471863117877132438078169972311180376814048240983974111118669841810880332789417637396875364228696102257653819946142034835058728266685797240570713788077853185146431489175328394665123891291976601183325846380697048254366442470014640239904584831219923038799284100915528259023274463031879252572433055197028972941717115038522075398329976124065759748654339713065184804462343695932860525134714452986287433561468433761979298923450603074403097200663258063563201302156867193096351285878004205483377680742714731731089087013662350300953710757338301771242292075071144011723059115326450553639519424611903049720147383781212752366193731449875014461656594332354751109056081033629559933185177150604083132054022173020190839131341333810659411166677694035092960392472515673410844865919181851454884667580876176117279226201733731012750687306063978574612683958967215076286384843859136385834920272837054323928749518473042576976501642625387659312285865894415006327724256513904470746227198148430202472580491825103418419215906622455286187529529992977333672472440839675320868127117998802751055391186667640251061247696388679705610471016088942491790814346499062963057376883828802638186372239831309445085860681187653252502225116709172041246473401923367461679537530807124481582862204927597998363867184834427492317466988701714893815757177467768573152465130560060439907456914564372147588393962159240330893729592839965153370198034957616812665919468128924117351431589871685199424083203862431634884383110290965427881355687732311568830082451807873082681618458606521430495017948251169207358774232652390328226823221514060486886093876226429492967498026860976037522206745733353767243227151461231306638849719473448530092937057605886939589222501339639349398873821145523706949139923578634067569515391018239432275821668106345022139095090046594180621787032409245439860692857193691105881433217078327065640437376766070814728379802650641111638004217227569826392179135428987080984126119905305191935052827417912200450533433376360523788473821026470329439158424949267551096999873352141142419138452219521402508352073134583812827892954638281155614640381794279629950105823054339386091294898475240258764083168663264145592840087559688903009004402120935155484733849307080945747201982738604184016808350751683491576843605507051064195829660889409303493022775297155045232205268995852464658804358791896943135897130594730695661850898098656190110023347532868601450070156203707662926303559814642949858921832835768525443389626908650200904190489615893342596952492932442001211032605571611802098037411256762465451723590232830206770090014600353845411595525653335449960544796003254334245897190612332215215560524907392053563192633918061141632107913321378159065437059720657528420026627831330766407718080702891740793823980062209337619792114530957479185895432923865687976152529163382817609179634692034963085223166343888361316908865089220660666984549145322853000223604908218444611189552538982811398064719472911577294161198744395874137705782870051811057027431197573687910808823886906058458377078526593538984491193441838839968553762790341595127826790434168914769798266086608266944074158578237416025284685211743804566997597923349823888980818764373372235310503803550385820001276538218472384253453006001776239441669881728056948111009274387771470910431107858509010556564939887785710072733885298643230421002854684679912683681540519230580831043541673361210382824053231608172554466995345323508244874787863604917639222928904355718197695428257257616495866693924916849405874193863889526581976050346841244642420708270828700668799155037566793548551022862812718365468693270758612890840019993657707703696087917617378809217875695885442535886096650371286931797619177788553366398266421054869906894301066670781095266418563491570034868292000494603754096362182473239881649328314019807891139943239569011294995518159423895950371679070780407330522870578696518627652782422302659738358274739012121459135512928814746601583270233656237823157280321403123036560931128004769125007449301495672062374069299343612493142810426679263594229097542003322129183606106670886030557074317042736281251936434723160881774172166200165921454854793315690887210156143676028698381471721388386270239516022846010310201961680323400561407332012906226621378383347727078340516091891183846589160716115514531591816777410182998987337332130997840575796759985566290578991851396503331138845111332279124725460300812438846811667068202551327847851426032833803701387396659409164391190402489235224041014121243757086681432060171456321689636837080226773892137091407088868101329649670775231004392572529389809497013759427791668238633105084039319424758605078924905906543047860797959773132225000605742722377758867502750779988030953928625149351315234026613644705488935521040191001698025660684569993899839160914916163369304263290780032620271021217630144736651540390824593384972094902736199921972324741484290237170569442504511493614963089064613254409474617504890069921275979329962551413875889411330738367162814261333856994287510543983042644242592781198446385006422307399564466284590568023119216390453909395323185423742472840446126226354601875570656499316287136182434492471635099051067969705962268418347067457907917622393775892741673207591473053432547511889706652947365714848359153697234328628869633185702808321764445182120136669188237659891871108361162105608765610940861804067208916468519800361787443903192685919262494754136259702885139474152616832632685110141925586839850821152875007377224570713598116652722385884532098765553870728164535782083897190564814454469276376338243604422344974839314206846409583118398816979516908248128258821803518754849292011464013633810443858585515891674822340280801241641644411178862591575730067802548184020809359644175350734109135629950221327543575944244451581283583404602031040639852502639709215921453939037623178091780627842541607530429859810578619850002790086882573423048788610107331957274976576913389584514743306563977248329199539703972569984283433437413880292880061748256607507527446101980116764348160169706683277057620246897191869363662576554826804547413193363909155040479181919295816479724319349439553155244797000519722512757266386537395194266035532871676537007166311576369615015563488215997452354622056834543569069074268935327803686819712722724028579522652217049016987201348765004306164195462026962759206158948502305735398876366083848855985884007891670346200382083286395952319001712919083347966607050712855602291476408501851458235448288782851673154088611467106408760568927506750580645166458425225493016366360967691369542413627562252667834547313800394039531316628973447395290713499553207381125797928875250162349766764245025090414427016766831959225959545844258050469010035065173165486133045608526313909995010895428797326862797656934109483219309443859429807800177521891929028899991902530706265548342161403280280019533647772412664038236387390106811296789587682622819821220405590813264682809942240792460918582119380392609643448525139207133045620349353108171294581414372967804054810250690070505997381996681359943372935996848557890530066411365664340394651768737162142207994572992215136864755598857386333959931015097044610877970397554140676685935120825555522277320196470592180567024182503489139267771946106038519834310617663394463877583523729902739001315877832106774413154448058066205905023720971499955276878622130234721364641054388688210405961818471596024706128040434549008278794631905512411189196285300855645717191864542403576898232356472872922571665028259925841345107470546678084587563016813947302450148400575369982705361413865645734893754669236989386347225319523125890069074925483401801286742949522648550762870177900192238727474626083080876642938583643387221780612833562450691637386978128512390621764575559111969454605749827693066361488809022471925969548265524697621564444175898567483066511867152462121212257168973659287969881679624387364738690174037919713922493237503124372744226634121106092788928789068225271897297383413289167123274557138829746319763215564382709851804782567803676321956477380613440779445702563949326409964071844730823451357610505607041668353972744402788172755481569451653142098989078820636217727973489308152864649278891709803361909156047938774289301313916344954812521508936176537943490774523050605895972139155857923561585910499251798099362184117390153538298282334523501046661778783867255064563477336661219753835558654779478122024906323408899802743177243577034328198176622445456151660081684285882213380411392835639562737708840387009447056425569402058656921823622693187092666602630268496289325718733635919874493056095232911101273495392849607379707669699027725512944577717063900874559789314060262386248722951694279414066089254666992457319355399823130733460037580066583834253935221722115316346344634412700778975901452870920150557141361409626262615036876599882243745439497572325747666916137387601872820834552016856930268769562438963913885426616143255795636690981784064069755173271731160192311585160197820784183986613279565576031845771842971541915479857507661394503869622510272787798868461851395932324487516769205018573830862316911631654831931657062195382953247927748270841991415241527477738348001944152255003959221584198943636274003495814275836275686733217716766291725360947424749163624615931733237078342372653591726366882377725029121806787412038695178418964812355890247883500915124971632167083572612036784985187455793843755228110888531878797770092402816477560021297015225612007200595830583614624037512922720387821643611353717708475601532459509640098525656518234475748493929225671109482334247780922316430372976237553007567387636303030961633223615847962072798571512528546124900143945360061525307290567001678225982179559191293917498593356950498392569614064812480492492832311439332330381718119097342384816020101395360044304853928636074303528293269090582119365692349691590028241714197215057443897778102398399882337925028052017929761394002051338254629307635572586876818162000188166496420778038694984263037889041405817002446527003473128829529397703325464028823043507541681831984603506105699314359459588316657343347074409713725223769026620898505278422899741032446426580139889336011552797988884456762183485189237387616106300242284813459788093200046546723602438286313646795671772787608573932651198843971238138111303141941820205209476451805977449643592100613863648203401082483444023068378361364198226376000957131601737193063497266129721621212182493973085666854985975922830304976856522069823387183253313829846206920796381397146970857314528884139284217052236922140632854892952957205707432834076375427942589095589759031518675639848923237213692825067938858242190015392029955222652885682815247589426858915850897984748591836415452974683573434931732422446851413004512140112384714814173199859417968950912548243796186907423452507381796925351018434576357073373135144103216896289704449977198163266520206466285389116314412563493802637518034484755571241078189419725700301758574036749654171366413584927717011605330628637876117307461797984516352674169068901453258158457723388097005734254088146471597503338171910282667958087787460181913767442395455345495620160609492658210111958528561387626125294929349341224814360825158385895747747626230524580366279353979079467069754989613075410892156868830492135933835106252182391827625971482876642537546898771233403598058261231123487006926254171672683331831899890656710768593635034633772472661724356157294372068803094156508444204527403786848768440182689462363429115005851025438306966251557776951525858703917419063020765372380529566129425874459190199023171017852173187603738122243630872891577340244210228680927509824053241436653302273520318368685306075402079193819791119661464537048389840870430373185793243484769536989874346497557545836699212376643657663508236181442152634541252949368381035084955120175345577408373059045342468654526478677005931959678838810287196055448225041511375518425327292661599982918908293257223608955120461463085929668124425760864240518252305597875429612696553178598850881494631187283505501725081737286086636658099031510200141766213313568280950144400134798310607707754543446298239232903220753762812384399003628253052719592394547384856241168411751374442263749270830341169303295615479426914825248282259708819145068848907112150689003073310280474052854303883110770450594017012882874252991282953832461356777553809194995814412043314722277055352904105318757684743011868284681121328458813141361325778928637142015904214420464747154700106347083565932384654191768346944414040179128141342199643581218112456646970411282203543122770823996297732024345898452614823112248668820976563624367119752167169017063194556632434087736409706409731294128085570566768121164097937570135823403605046397944230183249818227849729529622016216919384031964217394482199971703525118987273139587417390084090219663978692945175796268191625455719524228221933479101971502139774603544969450582595306485165740989972535001832080657228771646266185805083776281408525586052857925553081241714683279041387420839887957319337504418590883656584537144922486618165527637869867378638402160044471758120923395708048474937602622560786853373640233725327682976241337170062792911411361020675096323828922892545382542030369285939569296676677806111781313063270582752509982815233616688579288165338997209852492709982002413441116383972803493106439582365621706466227191063743802272468594289194738466460923454240062891495042367695037101107785731790306866338162379573113894168020277812221647411762333127600020456707312600195790395785168839890546983940064175160426321548760589278081563315888597992871606075804564470571979500094257282775542425453640236288855952991773696998522444106724609764860477203208746218965055165857841186619118932553261207762780013830507380964641785172231791015578521988712905719754546449820188124661541175366844596601646231966146746112260362661489820101838599245873386363324820474829544817237565533022787714490046978331661547320846260388322364682810176388854563786183641816520810911417921092278280597416002043523086825317443254017141224977876106303432076321693620264492227910317804144665352643234309695823185653643888748956782273092851260067818956337151359211918498396544621004583815363180775749538364356166314522929226488785868046389687015784109595528214201280569830502904885709630608366294179367097344791300454493465668335480353534316316800870094813303155213355095606225123495440701725849240754685404146292929779700880714267703823333300900308514704241482881186328435543360913094966931045142910924692589012930323547667744037530365159778886545354082742757450097003374255655485705603505119916733404161179379308833716620905934532987875977400383404759283133146371218691881639492504540386876793280876880382764312071752487539006083690293606805824597555337033281214859019964889250931863187808386622633193669841416853844332048018889029447165094433491667218997953880775156123764719518695827942228872449427255802989700076246657542987801716180543365593932478080229492484596894851959132557514271304244094142046582417091527412877713137401084692597641927697509701260982615294949008053763201564462472629650884077692657390093423975917068583038240354080374843131438015056460487157063860214178359446440454513580494846796935920624713446403165098722488029529933929754906443547059470858791038191573426063426528025825086509757218290758270608478173237529035366376012795120680225737514370011302607100603523839398361884596015016954873599401112425639915534686722808571765906571754883862539538945483383693520437567526985290887574019965051667769629485289855989435899120017442363073580338320376910591307658669591089537792569092855786680715952652527333791488326219049480867195711042788478812782117958293813807754649302531051858355705051452091638238803362042433681662386375701275723095445474743037952649682574685903715212755667957178526991135819486663711412536833848006141359584404009281547088950702917862793495677154537992115075953010861478161180297675034700352312064267688434954995276330057216115060091862880404192293410456998366973448502757820529762735682196828269528499368568081637593382023220252375741076658889609715123759519082080804853554664790897968998332579242782079941465709772397065039269056589551652508674270720222303956635663190500789791757499643068130733289577840294210067853192823205347752917863875404879545535867797755243012624323116584063773224689531823412986553037757767217731742996100001647874203065672801129668498412825679214188727809484494279132259997638719847367761489090287166977339008937940878945289351119219634613777032411557190816400747579629387565489849989735153382829083690327530080970225756669148713832530422035614336965739208003431442349687840758953286347663718018235613795666596063752557475057223623477654646762985193921994289470050304841100328815614528092607823132091281352516900640942934849279963210188700277672474041685549823578877675176567191116005193614602224403418978347962152296208732160684387328725599649517629367713648940690135730146517460727145917586948326119282780652337570622394523598709506510422227928318596299570408333632164173562163880914280382517383689902508226933216928603289071292569376754036458391437479650214757003390022962899896191441381188612545143344158014469461670737371617173590662821296150064070638111527251408122370281847128186115297801363591507861607008548285211934437612446152848819991584923192500255846404230578110529676061988281179400416197342701434617071574733338158854495482739076866285880576195006681231056009011270543041919326316923042065841439360162689796256203350354374464960927900787288864109846385079333161533921922854358268664804217940509094456598631397740552124553720912109866215770625956536220068753393534223771988278870388930292777030745385297786434332750878911871280941614610112884423862939604589600275453430574054047133107783008342398892431226852213946027809120976478291180641486100133542184856115040633155139187287105912843772383682416586394946134196633324384258879847316039911906903971207350732042368842575570458161030060373121778090289598641498534413592228579899198331648685398652953266668378651441594269734327973259706539656814842601169516773534161735830508677809328776810595628463569254512966552536686754973677340386665894701825823263170508818520370729707669810128683706965764600106540512163874013237317011566197803388858634130515707098523157436832168897613349648356265512443805755034024488877185422574022609474538634646366158954727026453429909457863933568330487297982575158760897013642891279343366172022062134245478865518753333565588071410405480913870508431167741131841124869076790470667372202854618339154311987356226988185584729249720340980264536314123447587315174155600280470970914568857205767767011291612718911457368179017252683073218482236272930805092275760815965940918859886835701382896385204150255477432876969111850353317900122522948846593216451667266248924087301028782035842832657858346199769414108603906358830431960166558126543939262295697358181620020119608231713884914778180251270435509998455598301747365127329453878480593736058815054604441454521322587190417672807291578506527949492083234501137145065925864577439027476825723621443353862096438083939432176794682238804719933391424840819740278166449927398780554063570159237662135434446829222025430337139286842354214433668487329301023805391215612592538990487591175290317820479284633147871376300611473007119288972331631168880414172882157878726642287456977358166858166504701082548051603379602905901245975186922799340005578320237854744488374038140302990266178323800491733499898674181926474644638704739196238018306534547183844965390111559520514534351902797276485237142585918343657165531583820519591125947945882676495419057830474919507469420855579621490300020758083904235328992355336646215155113258453332279440406485528122672614229136793078860681482756009753078057236712278940840831548515292708040211793909472888231062125917409808647123713536949806301371907980727622687329299175371514798660159628602535648141727887701285858256832794148911884060630299799179277966607681892434733704215687059084543073241775463448045345113292886181124588048569578037856986640196433526089559873352054467095433548487122702972259735377788255050703903423978174797059598780939200422251906191121268882540276607125396847524950508999239212329249208035927136709464239600583181411677207980133823507983903340374119884051380127451557755352497247600928393772972626932956729278647017277103711229350261865965124427152606365017781196402667837166835315045997787961272509640893961570569048648856214693558868463057165523110369644750979147517746770965696191189570328741859931427196458215786512160363893323275787742630332008915982893011890472666357501548798728131370044205548280090996002175012027796204243293193641019682175333053744634179946387998002975571230656773584472068094796096595162527110274466299730169786618358611008083567342890570686544062243911794509107898414679015578105074851429214696805780113873612918306640163534190719139256352052133707903024161985836024239776635167116635394404760451824505958176181021001146559912248552382927645207783907552441924629118799509876682382700308346296794911771510846906009006931694807593797305269180148882563840494678176615994044321226758422338529418163749761120932305242437108981967249745788635530171273308783217825249299582091081348773411257193367762790804184036562358867516217160586915649470181603553666115109038107554922763551959046840988930812066732865962308701565726776846578453392252239017076695566835557381101735434843987549851129716725298845116567053738312439773750047296727279240178915129943421313768382324714268506501530940100947025725885727476766492330511282085047404950720459440974167014110146461480939245812121472604424210196830909264575672124328763620392921915799762103959723913433367542379441214287101303969756034607588158019808632697686665210347680308640517970277355511698331567032939089977521055900678568108193836151022960433553453141501578650196779850359322123954354950555455801388883192969756132830106322802450046334511441655192310977140042383579785567052455672603759502468855963747296148781988967449330283127919192829306643788530939741034793371963176424874116647316623069207306024840958434188452106889625372227316513388438368393002230953808342556852904805657766483698734799129943929553552637438882875237296092465316823056478792783391921562617583672548835790106554504888070454344526166329171877192403512703262484318823529581182461567620976204270667377269025562575864828832638125112374091472878417294081439940448256996492884501264829092650573965753968142570356002321629691080737669179162801874829977948005600155909466417199174978630432635362291483456062992927377860688859635162767888259537023400670936841066426138382869315586347155247453981530483497277222489549075731129583894446129604072361896818812976390028591747171333363063094340791774555230583524985998387934909784994892118961136858040877322059055755209145833320727474155872990299171651176722389226231667111965290454704446731569037287320584625199199389786048566695681625476928282020356861139701329637963397306980283927162682447098812837124178482777500348996150480191306560933526685999512529293018856308542141980017575217783074124957420493063613729180642153861241390229946330541311107656580962643927410812297005248183296247549729656644668933767205492849248836062621681732896567592631992604942292580186904403627352158744298643564180157723679947485482200599891022346133936096043898776273014237967475631694466958185284092795658076561478459072281239493844498296003474849031762101260161358003226749114883073737183447816927072869917440953668157762868734221334767345141721654401778152071439037002494395771007763994707010234629046176261818805768137204706073477637214995008459335092741843496880336146906218221303380698642899071121336883099981970041667994259747357720098705362505973125408791851261903703323778314833031631449290972938504744591518440904065828232889800149028709584730009338349229123805185296365611633567576976258621507389748766165024394265782627998006315303277770185286310837770743320359028353546208142142108971263605860859525324940436674917534276362184306204185086096030580131522783322899450556542479264386056554112327963671346387845321013994561557745836185211325020463882184170658387900832368789319394650752868024813449081909433929105824306173519758737109605736665683725093769199507010675275969702526360521825351440745374836278375057072485887796427156944433439317780962204457748419303939316386566525473161394848080463990705493563167550651024801661891566968256831675716946094666670235825562332147643780487184404384523759314027096497294069065435964985793717574253714574837002166540953271051380854629744834968583080385488327403730236435991895476074843347293233632674306380859093217752180253618715824610227927868609850363845102355919010598315976324300907737236979499646435080152958945262738148548903234737569225656972353140808675576225383023120696878440761355698283423986362465356476961423475073667203917071831725541508697198339987686451263024191673375343234539079331348162470561294116540438636506430199835208188575124296997864419095692063753148112546732892301810295385283900506695377039244350603391703064652884198693995058262764971931536878952317529534688160637661121495337561164388153082278482343148115443269347153221269646055876395388650940331229319805025601254317283180857822253560453743845937470508830215458363020212552850967847893436576844713139966627889246861930987115219860829137861466023571664701388994955783372508693205770181110943459017903852714454087893075597056797390352966900598182998136621526438144247504057488926080649526379402833227018218009238874913246968843934225680472508640343990096583770931738460570792581830133137274609369345627437258823038812908596559817344926499970999790668560591132580350501458549475111050740567725020271721669631044618977081508891957412225145669234955252164563785528933583470773069742157110123739156914786024483207892614225937042904412076980690893221637158241888819390605696322610249054257852777343965236133117675804693794865806665692668280286890434547837069537778221210526743552317966179430213186532708506742470606299611149812701201326331203097149471311030275697226213165354116788346733647571330256668332256006584028679049370222696540538589562110006453122197626564699165357799380983014980231368521215977151628417379436278761298344806544965189987856883821613084236340971644347514239566315343508562318236682138259491154820615371542574607639743358169354973363235374863494785398875960447315790259865203204870016390314221257077078860054453056332109552067037013403739538433373812013037170870647774577823526351639170309650159031617462459058860803781819693603458548918271285074471735507954476405313587675494386632549399185146778560422788682169935669494175521487737433534189856822097271756080771755813799260331962616522903968888670767240470073457168350624520108893175345188943700742841094510493840182813709090227751315392710897668066987724897566305272719743439993204880280269060201971690143389757685886813661181400977415188302586542466118887215510627043535444996274126911953005980729291565934116693649122516546939908613682305637281126919201582945534666071738491201137241624362861417857432240549226517650943595203092297504628816117948935977165186793143008041206974878447836834293199631318337565618938497415928675782914825177997313749227131082100138068430615942598537864590487110896070123479541961593747829992248163617689193441130055948393977344618187809746635895848862447141679967626580520380053493070164371789378937714347674703512322670489301639529278098473443993834884497794836482002623448404393691301349560845915853193436139065986733922825100909575674234717469554735406636764090260746736445471967042702481778966143760009598269150341505122708850772564406358323010623112825917231731171177200859463245109190318063900654514118288624741218945862462432012440311086951386581394842327960397678626089490821973265316948192933654240241910821445782817426577627567476010558182307518627507168956745570349631559932254622673640521953530146859297006590820248551398770826277427455801236872220944484467977944923863310011732469966995231949331604752546981807809631438382976841352820425487844435001534099851056433505775565790599239259778816473063184229696593092255280758838804753502650160270587675343216455109456567635483085945011373914442943803739731952654333169591689263601056795532384452811268426185535736615798088989846234814718654380646627523946770368536267557901214137399669251783143137123251158189336288751515552558279275735339368532701496245717673093018450539575487170790267529280974773322459290077337056810591255415982458356422414620311113313914304621446457127549550775909271552142744877956878157817267417440672920603443256320644422601615223174773160407690194805634050096216895518723835252748264107623768630231218857144104215285938796695428081920150711978681883723342521216893438804074974214078628928158253854847063404421857916678621678297883717121392419665437491244582466096300199442873088685010274302247687338970622052657225444601924515206868402207753728319257028714976130171819740221433461252005569641429697058971700300541135813280758577335807872685992215325458512142835537797036298896205269678904601272438775902399377047715378943638335441070972110315097192276482798314491154727661602260108024348986511043254676318367725087828564363439879272510053372414027031589180219993638342831905880428101880424016155737892228244380257591729848998558316514497999979133139375905874889185524223889609597948115602443023378623495451357819486377397093057894569041433446442386093467606421072849257859446294364191088602580192669196175011881843262061570013049505406608506768313593324734592269079659649294540133116618247717040012105363759426747548376553665620352327735761232026890542784606894736364263479113006832727631041603090152588260313882169962945329506143086081286985252324373858927888414894079593459813118289441533858393459499132844783036195851550419984447717384103382128515294134319429043280552040656264563224644537807082035652252231822249698790035497870488237426278405166673889945639434974383461654474630094894657791393905776558897691911035022708972146881555584747375703878749098606995917177710552381538148438087236794758600642375681006076470505044662628641942293399319832957004137552984316131744053623005966886869740809603452529547869630782672786635318110311122120871169870000089710498734099848182554634269454725134588080965762304386205992979434174098230770751288655763059596379701600361806007905565115460576385778943571911142642594067000051833729704940646657667024263939113764540752427079043873922285772267686649264929234689888632942091994403894793558320079893120681616277048078617533649469363572637984977092544687367114287632733092540275084931887155694949142700769644360278337663687964852509332221977423976084732170179418870494289793160199434537492511439900135860806769118689224407385215716769100345526913711794553634582789853980317175567165342546965575941081999123278248535853860342890275820989774719316272520690879818902570982985621341814439040936535208560505713487576834907350030157415623250958607610315060865436905012893770566956202942015300463471243810567610151453486106008418287462568956375756689408862481936127896348709448144936844949872814361956440330389966889905278352867519886275419514715252585704170835122571762100720539518887797192508406341299297244018663355750790449793386699527574489033357764597096506074302512619568127912212640545712659695929895485840349022510604684842340976553813423270733112185880877301995927194103629359636801246243807140608728475262219356838851173268752878476748447499172587062945040359081408098958007335764092864953749030843452391945654351493488615830210546372600020051544408212382291589446059787220088623707896174769567786705799735872502411685424253632826939785571913796220284556481656635485549263843600224671659557292840546735127792953248145852292149830126790161425937227692101585605045637227078052888523403587450130163001779169864084926029710398830169550032065295226532389083831939636464199121938732666621057055423145864554423438648334135682281877462179286305698767524564869150566718430846324073338245986842387991597272615365707690112889088711937620662737916807819270190750682697159871361123423840434110331180252595658563284556230245174403407504539922462934643547521724096551601774070800832503545458249984729567801106927152017982739132370085255828404378192560334637028360492306257796262717321857527180831716413266921062666660633595139183418227892000074044175812613033123424724937627616074435392053690890398229627430337885471569666106124645588934834308477477088635077010514433192021608622088971940370103431351953764943304510082071254450677916211676215213319896982970202074567609591292417262925051653092488933919737140283733532634504026043503118431544360877498599122183834236215765668303684472885686358026514253008241852076676710659924161310201605063842545008036240692123988889713493214221597238438872626002882394441335664494626637288382020571747291112996752478239506315645972873739886968744193022429324344573683553852383767926560515952655434463080885018868133178196756523838993624657721922056573903623003733323190570899205289982940942310725213032366264883863143859461057915972716384590084713278089274724355733913164558483009755950277087891577228082544273734957827528823534601112378469517021746558010289127019103991680284543805394793892119762717688716744076872350293792550756529708594456767668943248829526298583492536420521948245827147774387741832818554991660518254314174371051452096964440232617213039209910633631882003377845103265434687000859729257245309554896703809819323985085418392596758511173239156175183297048457731469167388468261670044959477987047585471394323303403958400479012952544919443077829840897996193128432679794160541190532881083616186252144873982085298516353170255816569199498053573023382420313187421075490788805358370751155249068249465107111803536974462223274556609749347797557827072321918692679453741946473121844338929910726613594989160056540250919134164911574813972462990462908784134040990761134611099822265654481011060050227424916275029605451777998285225196653823988658816010201919946810824186222814969529963828220155972257211362769271175637167773256493858947309879477177132130725249744421970081398814847506580082696702566705132581761295189491200743840800933729265860815098991201571352912346667770585689485873459250386217544797966579321914851636645691277364499342691717243480585176866450508148112022271250813795723906491157679501695884637153999334551154224613245342386532556131608794480643420904179284920355521079101788682878511633867414618632587730215422364209529252270677349528942698005561996848434044832719822935609174912640912536023225100161864146135688558688095915182309129018096906302421055735889536201771548450026465697570090324681951615703438675433702640483955126911513850201501683718894980502175573928818747291807824188665110512256800732844043824555355322413687970526058701139408364808801833330822762995323151095596258191064749182644738926653882915528997131589077853556584284412018874938935126214205153157830999235280464112009310322775168892991757128925989323508880382400883952360748286022849670923199303153666687190983010620723805350717411745423939767466735513133693244788534514244418505745867375691148827556016904648190811717930037756201552010186543101389236311918510845846849901792280518576636381664377758780923224839168911364262731277397964556984302317229613771062659732776136037348491046979171780304551295360587398130461495999393999606011877960548019425669270076369420604760187469659399930167419379213889224367022384367277213828393835839751141570725494101196469446111481392638731919067280665620104243594069817982316765282477850889966454514032685127654438243212668114594493190567699872260692180833998176918975013653055034603413370754466123375445869339105220104936410239970846779681818928496395496543015400489499265460958478158025159330647810544500180617183783757973163101965659777502837871035089212093424222829064592601916924100163620497210422348518139840763124790722067431150739230684611280032888867888427559318245624470775720124235004225804670249703429706349186166205439687618862507296923490992309572610659756982175055577017258261247283948178134790615493572053235058359051538977613949992182826046480802527847589991018423566257426006598274310975797987644996637900346339114942742938375273774299192330205028906277358729114033121949295334426361831409114145061786415737169197214918168986486253141924583622408606968611971763713761025730664284240091546152059124647024511940577479783067835587395820421841337312956953028781620131154859299497387842464949033238067206826653151231475627941028622113035784584329561086012509078897092586598730854576854322216600850426187270223747064815809971586756563198902006123389885135426603321921974388790899546844385897317708608916638797010773495848091031866710158379492364882190695327800493009767374258993837895800330603574525630587972262906963353719111973238098195769306580714080984211729045030777965073774400067514708281526290683040059011042935285488967393988395088366750320920302287827510438286944572781830144505261655150576154803514646520713353508212832507421481912380504447834364826280451072094593480015638041813631440104634064383637847560797866959493619219342834605214431224730869050724880048955683450530311732619343580278405490216197920875389957063911970692575211490873036064707963088242192981684834196135570779849828195071672561531817361926230179868698051863263399907526132596439331960903610953828738282826426662869286484979820340746044081362642869834056688306916481174949211272155415192524556999233242936628789708026128495572926901310480420360394273138936346751256647714324581369444587303281527386564377900258372949229322955924384706853180742267124719626755838375682747684151499020329881713637431708642070709511533880286255255739672504380392116384038622281567469157137201597584259463987379045589561476415122330010486507571663474905957428779091013067296078346035053165862659430279755965802933177084869825020570447188096305180835079740623993540491015281159309218298550425844093753186397211688512399939579955740721453642476108362999068877320214072492923664807785734320772046901189090365552999264825029236919202483825793878942271988989583457048296840109424139238505074970070037840054041088432620334043881707996522590905829195294351834782012169548640319101586198757391807252233975921614123813411919844740669658766335017725798936595554030937988655182725524592918678652437149467185337269504777476067587562542757313429859143867223418308859157392528334122239145865644753172750160924118273548635658705033981746944224383684192698214365081426223204366189366034603356624865203294981463012038846565166820509431867393084518155881154673161959701788225114427960914216476854226431078214045195729245338415528892084322480409530710556484042767851594739263031947519769076486461038086656878129856469766658494773356833368520559852623009670733961130884034130979855546254265882941996722942043592210336659408690524270460976714978877462480004168249538455908127818978180335702096174393499944351106341210278566199733364687908995124443502187118444987759090463734788117898511482210802508502954203001065126366180126872917453375851299181557241184007115368356259089709844746328485322172194897150640527806927423052664540166334465519147713894928134732760698515950667059006623555260395553704046257280255005970353763193230337608396459087071545250958253273183503690175531637534034774915048520282454407721226982741309872326014362956141699431753396199604367851182253247960381598391798359488711754463521322815433351631829091860608756390042339945320838797621359736665908857288464549777916116967261676247948640994864369744605404903809357924165613246269922811869321789372393720412416117708063461478550517793036562578516442778150666913811863499933947415175194336042047511529940788605301750956451137329487023537156790695661616725489029005583085309894701843865362135923705927104131588670205858090053163935034607427193336213817034629625270255640408923719221034942800020918228489092062431642709589433896340291079152969944270066958731201167205432452403092096961643023600386920631450951229872535967160709493524984157007793170306776993636970771061054236485170414982897433250553033179595720293028144088055907866016602825784192378068769393396098454157067955212326001296981455616750990323860535270281811772202228639104988492638175555319316063437396940854690712063327642910736080113570060749220738137187840382271756342123288901373987409649270148625465733577967913014631251875763079382518901344240693184635963603162672780463400512367203403531974989662403240613731485092507900681516757074087454210571036014248793193885105429899077950534782205799007218989189441888008163635363555965556900581509822562510397106365473431511630411319104530400574356293253209402806399100679288163520052160102909109526869317606683477295220207448457317637005626802936138080378903308453153723891611743525512117421042739478732584507539670663517802547675838817863619612975209304632776515408352545340862673169999735552591692409713537729564892977393676115719187241796598735649711486705370756072485929704122471431815223084614489586817366180350445953094398492331881588790928254490358118214190192753510052353017920750258891596358660399590958184460542584883672227728198913136281807903751460905278935964042595980202438402930830169144323199073877079596904446019917891361116966876159784723182058099424513595055403503414898760100914165152754987987309736540199629953413862918938241759260561255351186359675361970806100744513711777012445803680696742705170904097276708745362342923381642207080831337528033423473206439861248186541951912436721550427057552906410316466417421048081502856572166141327245051576869099243216446994182981625627584358593667252534283742929322948999125356143608984612379174651814985676522030408337727541961070777511387289634759347007133494480424503675945832507581924937272104570623605606758294380439685300270018444286869449623743701570045898417956589952921952268758513190355505539234768161597163666697682282932823215146814329395765184801296200566818925761254305931322052906696098887022850865880905434488134556847377274981226591227767274048782241194051814366734786278465687779269529921556816111171325371867261030977856953981198834371714901017846272803683187889392540551621044859106012376677358848070633453178370378309964155788978638213290430085354471101548883663753709820704099011722071191883798987645990709312338043354027988124634339242472080140155855505478824350965557154707313867324515477872058209036534899922081507702191243746491174772168695299934749077163814364193061998814654869416795566327841059066972182828060704114354622939255354498788533965912244376771372370058975006726190140276184444482333117005224412479663115878147808575228456805349945836056376828033932724113918273622505688766019410679458954378373062696182823045409777869048455428111364496830227425174561369524228534888691562715531515169886689357035897936198672335886638092548833519412741563046647303695508562245066796914776621235510710512896710513906406411314743473436019730803198287109983236263927915629026776357850793873517025464995240517967539783976724957410724320570259141051652710114451371794591406051615118601506739411927596927716271303335041084722581263965032999395350954218230258605040802318122947520230196889641382957195565546313895026615960089846587562246287808179416267643275804022441554562489555581672365134483470543942199585405489865288766769872583081906284081695412415532257737548739019206970782596706799661295668010553715374155168554532487928919270625031853398087371088467875770789226058500324677026536812926592309347520432980553774298764105712525222244903843909578194134015023040269103189357683746519517358544085867903686185244328176822095915518513914345387257930168472490302299292403990682065674601510714637134240198690651704321249064105056528458322139764545765949670854145945547329007742026196313553098161714316652515987101098422630121571095048986041353086277814704363161270572523368676899264013888450926412836860757761803947143875180300954828723799768052061907014560919727232297580166862464566755330316529936629821205349502441980058450448166871857436656546469661591010915476213342090986488264543764284739656895241540417443902949002047595987857531305107044430335503654011385687145276965511782824236451322742374356276926373956653100300194427093890222506860534481334592492236961732207634970313345106983238170761693043194367903941860844016666970910444304953804418418063781357739822302176977157234053414882215305535808932847221327180281921126120523616799483271888897262183255197062856104950569720770682718987399622949143175186299764447190625778203551121792804822331447971576411774947381566152717225187695529809550886359834190170955566885926288229649293200606347181905785363941216459723796460809882682703815499487899062995956353855346382047254258835000257965643403694737001265588763676125544949154973345959128987361172720443779213268552457342624573461872844376640550789687434695301143936726744232932129992648829349259196850844522398437071449110021073622268660165600040739290835367749100069934508491247344799831200836197215970933030881733434495807583877779921336224612819135589816514160618331781734678258984624061700055978675446896219298493750674126587244554475382718905188267356072787394291143829026769578115435435805046644849542445518740273554876668612651424590557977839209334781201165974548139079314231444514702399778730397470464615478823137816008991138089818190202254334288639563984069929729462128426431387833086144010257557022541173277264169131903199541352296798085988170341374769153793537645401219138295317308269889536552827782594350181670631004377815824672852002653125991543743636804692324898708136906413979853639283187601899795005351985442683969808160459158624084149643884009184861489668263526272382347117841495786579161133631712948426103746237353748201112899898446911913559919247187632957407809707485059118200906561469755732225984416477498243543535307226204849780283034270918709149277652041997925177338154281417977035200121979639961018126277856038987074094334975093787215248455394792850140814460607371459239708403477142297395229942303184743817348721906799996881930185570410921792878272821645004456447532593512718563051386294628567724728872706488092221320264634969704500466213366902730994712522308415385763881731963485471889572867934234718635378503977940920449606589266207315485590097149027588416327767963899885576801081922444620961207929263312205872324120810928206328369314899327172433899501985439821534394725036262130442746236524750013261325455268370959445700962773168742475422507842280571649695384305989386396051313846063994839219925603553894553303516947607131287114541382291263985098026637178685831411826732373007285965298026727499745227862272461975872291922442002895277338524336739526487101373659354727246517289992950961176193956101500329973917724224128139296755193201631433036818759957327074809954131984913125814959331083796011745835024724162392840156444503137662924351784953689360397557523044690430348101586471916440951815006225430975143385822604685010869435872513740478902135574688138428934107312148497814257752171569960178011612279793609201769167691956543783188626310487077077816095418917938310978038780226008672845119457720416312205237681607491955508870892762983889146555165048210990324676783677712606456141411756647957618573407180240160714981340637640950583185824444483832863190257553691275961356831107982251224406417822359033064930213476580506089873964967260365574257352420698686175881368534169458116038685206426837827084783314909640566097914292842358308794542385971637937936600593128145019582604976964072417027876463520615668663267602829969382820850315644735017568744787008919453401454942633324918169887074278599831409919320906277028190371595237708250459212319827174569252114401043580535112257690619192321188279481538693205892576820458932580049881209857286539855385040869521033932761015565609611791480709231704616017836183670856320395074573921912672613656342687473631546929661995300317557480284091373144783145604285822230783491661441838005173121184638299922887231757116518082755533012547178540360002409484562229254723686674318911958373742936205813349113117676553888784874645902811823928728744089621517495526791441994815283759686613588180901570380862972076046605860192783078366824646192849123043562528157199325933305567504793795057157145190520930169573530312750089896505275712415597312545198036998326337479539527453792229847410095338350313730762772758074885869572024792215401360952315135920381039243359264621532037718623509528532697327598717599835770507964857514150093632982180403607726539751703196621165680812581739480231146951560983449702656506485184082077324430441464473961207467714459782785960883303612575577829920355726286273283886700569277146199619738535124206018531017350076884646260657736269856157014273954483585534110601747259825138746298151611137636819665837483189401223075392148390798793865119799226094416841763196400964712075592129398695992278716066605748149074427616780940887357241721552559165056396447802067344854846818087422127665958651204203673773641377714468221500361898508804892213470706918718596710056980359484289349985574473211554155477929602534123908590886943370213149201540968779952947365348353425469197513505081591762669332545707661582721542387819338740327798711099253158824651629498466933738292321549037290202325119222275137710940329681666478191115161362690842555354912460486215871016855443618397057197194256737580617907915513946729953488161392735979927570679291817938518303171365627890533665280807831331907523418870592215313303570948716179604059633040726506316593958162772332632730195799387702373379207608687948453985514137652817901736051303962056407580832937154089258286385651128833733793736641310509430547988258827329026782435801351662691081597597093874822002476898638980218760486350702035912757123918708864834875765813977357211448588495247335921616206422671371168218220796050542620458784421633099384044412093109681710895243400030512494058464189870775374054540861055516577727228222559877736318876827006494460365940441232124045256316148459833050703199015447639947010631035873757411203749318532761746150471740822056866500568374361785339302234120291946958647502918477426589958539016474025154299401505741110302900167446651941681104319709938557334079256809254265771450796376816862687716963349164224204091560894226348413522478674743640467125479690465835814450090300212141731134665964800134765097624819824212669478864083989236770340685640154561940704197921701895462681744150512324702875785290942083507674226588117618249057489678994580598306980123117891111358289449171563205227244392937792337677838442958314498690288339119725475481258860031073916657168811841557938808680884500645314288539191598883459414052036658782408602450330977816990601085225783278396826428838872343450507109979993778705531727206718071125023637811310021743693714411029353291551109298631141572698727354792352409439117364608295110852915671335869042885739935490298099338827985770832994802450731725013307184283347284317611540524464069747441204694369634292248198808235902638058042908500771292294483788784007157885760488555198982518037664153694051129200299875516476518153823824332135120718435030949612143828879011941838370650463495380913848780921238521566954324270697790084095991974960139677450065586154179439250859865494550253255934061050268692870209455369526894658136263301538538067002500964431374682213458180403267077142714441876741245250022767887281757523277327905037083298800174039669402412858894995550030694644617807974983359734785708142691659743289378434431856808317753019933307032520979379466077076058048807349826232531662267792692495119399823079682469948694388263369091613716128419661188094493078786482393106291406752549177164887611294626433548460031960075779254950838792552127163464556629743567137035757722797590770454760068899830256593930991486125019263998862808938531862466704303692587144123747532313818605672194972520251379058556540393433121089997723141731658914101145644158904914750027457497421225581395699864558529689278084742439169067258562340941752367464574075574945105507036778346749678848520497584851192339431235129642182838828139447666575998491918581079563807871470214764425266510207118979348137700823285594273937990385839128691604513140640726616704513853243129022397090621171862124927917397775575355033793913426941370995287736896932999452502096085742046025664329199174006453058735323810869902445552983199641382006579891729655627326701791752629198759116593252505194903544099825679951706865483854010150273130131479333512589432807248622213393318348387674579399557734885758719183995777600268248704092673828229399250635419615634231689284048298881842985354543786246021248799741591520465564220312984976327952481677290748735331637822306298452726478993292315659327024061190127805975718670317826162283105349057942382854905786724396681609270020153738707821397846302428731799456231332689524580029963734036297867496083801860826610809896533444426173481293722738574051084411081343449469009226822353194088709752449998143828764989222397729138706019901528338130716093188652155934955343925301275138541039890198742819441779719665176300169378487321256127949730631996514972268974766497298548329812942372123467319634333419554368160448127265685883636871235755506222970479327121429646036655712255366380336410539446586692674203703729935728361678906869990325455547248725940800483199844815609354315148566875560909646008172125322652271743130188425929253749823040889562053091540906907246193505906901170383242867904671583615416317388896225938569209641776481211185348278130849117407663181546896734076633805086107760403106350933009443585498034820736738063526098073090690039808906672405936347044479155541103579572034906136767135959700466020331349941961680684723899901220167000308446890646787653517908408300496486674105150493757592144546062250741872144937243825584711695562288448527919532222334649442269691897991727100058871872259741929975425298406669505662882025237008949860105176389759487191555929001023048299424872447636746602352228041994004790750143205934257264539412532265116797167725726557551132816361037188785801832350966734535629799556671339419943096321261893509148087914840925189341868293857172017070779492305922183756221736728067131517056971457071352515002487961311315577144020310730334080461510264006291444987406784196921046542208077329878813876963621306940812966072924614903521308784080268211718734799792556338224286212885298031205219819710627793667449626669117447860804461200725995849789242869374762771897715248641573672965710853500468182957011310974495675276279062735204321160032541854422882659872915308389366380737074128091938831021145566776313318626427034109486402760809210183909789727400400081147164050980685766511806039826317462960441705197391246987124365313985803712066809141510338018956974404495097685383823272400313925676551355077474114599470197373231793680257085672690244968620318231474195823842577666531257143582426530153506272538274865936367755295134567446828166271802454503211705849887880825245079973923280534700905222549522608503112040983165694027360057920458422982243058520814454138109043019007401559041172136366550200511362426074342830770748088836143030995728128125065024761814028908545678661532521219297688709712921326329152496641215355546502739041739883006897608212408954997467942308697045849677223578509620099083606442680349743762610285556446953317803170093162958876896819156990899694412810710190806063085860103595634606412520505795749460969979202571829087255910867640749475520866419529136789637289297814628195622639770376460821538410747833807785220777942642312067181379154263990519394820730623104134276644715106407903641112223855894751774412090528663197962998327091020403082661521952768923473398915464489054790544426464061684448612986992573422333801280387943773937413806301356336674595280108067915983847949272388385135677977953908721088943490784538015282398390005302520763409515237470137836691907880200908168613898672816593658074635258604273132186779737199220322854248676353045003221112586946488490649795908250424124635550603151342472366281971492516828314955409664912106145165551903214399760124113938296932429780974491449820696279666450929347245960834729085117589842839439280245322990007634835749760169279049161626569301229658655867546350287352063993840904424480533902539718536581569138653504293298904955097277750315146565731729991164714830506013924184458395919000577248286383957504903252699002824505145736112573050426510050546370234000596452395231277634100957676592770698813824246478431290887030070738754144531551309299127450165227261856847100835412332163165386744486804293792393631700805258887737297776740170207900662603961509041531584741865966833762042414662590637208769067852243840055126160267938262284892634367603544652833523230634136114160253328121889319620341493207140718524655544999909838791113580983316544643518439257970310320878250959705234324491037589722292218907933324353905087579425555609278324543548332048730081935445823663160829927559288336647238235236042971512891895170501444197154222433480004116955448430284617932215084600889526255786088813860970662365927622779134069578204568787828978304044202204872600455272454440324923320091099304230613106778789220228431594609381406204403896846660237480395386696356761930573523551057789038714953651774253980020768484556971316623351781847119985029478634328795502080084500170530655985429825550153883627174489452781707672998528105288881659049867097953973445819644140393474040417660968697735820655204614531202459651096890795648073154676989615606400376130117862020340280945222337622371955293380690668086000772279754604029626645032334907237421179584684735342155231111456183796402145464250362910620588576420621028054376620183179758147340366351432347867119881488127765369703419130767947435978794214569935689064823484479924797314009608749203712845284279916639217116518856365676125750826826751389026884185007396122941982952759840552583811654109404154692227145865171795380737274971989427894953338909683050917540227062093422080050719376565831914150573587133951297669184037726883405252040568236214903257464243758263218450814403450835767876223250685405465269881061002587842821920395112428764804228016616817080084813720183625942404740508342921783212686463101287021083195716018228460745349485232164701477554717955467276182182140030623206586551511164552145954137785952319218117775401124945076508773504680103732438263388656984174995893981596188158402309578002705261854816558090822817889406674061084530717537100194155301365238579947364410139856297881227027797034615546773737435825566576195019508663213115722305620558301815357992972453530054652943485615335375121160124935241840798106273798754219390313170528918526794123437634926259709833470470983492305507188935813632948908534897990105343690953999402500906612898735990365457103889054214901630968723230692891456657096631459105024534453338726013631086027016509617211836171010954703982481417699749290658041666983654850837427145922477798503297191594653592265705707643926817702656544203901353964929938132218024978378859345482114392331360992393119982797348489979561587443137055471373683365471301372976673287063923681515379884399295320467398348370802272661698440250911170194933608730276251971224371583577556902266949736022993064692640872068298508683556955091254933815102034966115604108133471164261687727913400763461011086066700929360403480548585294431004516829039003455268040213841827418811593250177452487466876954042720550564873272674224007834485851039323744238592367532982741093354654539725885372583001689207024112432794658553245669307347655574093316866627569260815143906228927141307420208896960364608728223966832211826441637033117392154123163275008308200803294069550319468479483606543865923540629775150343157041784476564011830380110385847989941720943429845630053206044177669072308194970722858800592036725026299599956460518787358459862341755097288949978016667779100384051905183144572581236944063400745900533731658607139931957756106477572766405563499147511659137965713268914750394926954322922742689892587797751773227246070085481717186499024022142358819352893292847278148415217968436532085575983068749988456599789353206779336044923386617945709313190252051063387296679585176071947195627929955553523459458164882973276733221019715153013643776675564416018169858953079200448162505764679886344909277820557712313487653467928568814444570529056072364726208924889187758761016770217309769821175783793532505943947881161468824817827042556347845405769548356352587181778532342151323376795566590573586648850447892298745800117212215441260380465550053203501114730173717892724983309305132472671232051412817499342035131175087992143776351492087769793041799904770546206129401759337471683275315313877263659797868981458003773512289494953069432841806016602429102268020107014191372907512503244004053268837330821220849237159862380912301466992760033998415050225720421062029504641252258413566399498201213431429410213574877505231485884130944781078476329232678273407910639038336545117055583389130346696541290782653199318663132389554082106616647014183512209048984199524058432119217344373965573772272345960913464626857549580618120279122459930136622383975647864452735879712762927760323069919230757802502534272713439478972176188588450728845034588641021139822002675191378093134667580049665723863462061682461255880322748902577263383207401884977255619709398584797874181555046676053201270461557364508553276049489877230544291920569686059220096596447698716167640582673432506588578820205687575877047473025081594711496307227320454248762527316951528218618797998017647371510282154643163423193903879122414424830402130661406978367189159123120993030822938353845719666488935520666675184268651567997164407071220373070846876573336364521269049206931450261028602772025329606334664207025608216266279177255354064763849555831857491252599867727376041860605978041100598794241810006250717974590054576570685371322038782195798498410140231651053098278822025222328885405482344860249317508187425183608528168797686027318171266670371981032059432568864134516450045472369222267383671668749741777846935818488130173017414856179964259485831879760563250623006734232558287015333932056618175709614998622301809376388078176656530370729192397153222416339953831973604966673728321903283626595771174136491182202914521086422000657574762458643997146397628223349275864281816250526801634436443614464511328584773152483772204690736528141380046672409280124219073087074201419764197984146728409656697034436751626311738118601249186446046978784892631555272557727161408995205152338909989062476050717338453228513842447311810633564134168585968346443591167182116571897338015545704910218662913731742927076357239246338288350262187442858379255575710920680592645111464152750109890526677351605472169310487548253477905502538083299650555395485661979979750978504537080149947988520548250214599524006621995932552691402718730609098880146913933308095532941070641878933159318792083093973937978792143537806303864223927211452696250706845960364468460342257232043643207074959259675997487304929750831855405362564832064630293607250298557204518005333838381957755365088655607356623402598235345070250927706255407490802991926967859600834283275406870728230393393461356305381131076351684294816953921908018493652856465466100909751904430045901232585425242702630924896636321619849063714895137827532745766267402238033819758218097709238483543768832064911919792155468627957501707795050194706714632867157762017209317128325353828135750871502245257889341386328421217412057018894159090704341119303149653238331425405235250913562999971620535528518507744943931755782609956597742629378952417718503746458525340212893203619657368361983388374252155874368451927424016309409682523356945927991789920129817197916440565353358829123469715724881651120981882813139034353178845161198171367237032315949936600879256333764031199202218810862526425350569178610500957792128449583946663824285977778581618238084622112336153484710607177274480838419867913605209856212761563584364032595434086509305031489165811142659667311738100906943697903989262940719216729399508767157707543598663204139344367733531373915160367503377740907305750915944580124604678661757116700389141148507889187965592293497259788741125668452624109283545662562052530520763226032330486727538266869821474160682173642835541314023277170377879845342141666644151134151466270063721213638834812770449006167832184438741755848571017788476092714125335766853994649222017382822391010947456124783898980590361767670090244855478980266229402149725389550620923630704755349624416565838140848518504103870482449768045868094853400184944258772659698345011341874709771308341492085945315131884168522242110466831816501162399189764034512608201638973664261400736829874536789608873858272303535012848700606821790264047081646290194493084423883828953231441674929588331443757093883490653825381108270325427596046920501775941676386854741035280948359529865708195112504277933011082558948550447490292869404506666907641505774767231746261212463742717089795871136908601807112529038404670944983999981562112583479791183530126748132741228383695309313200270063573493605863409274958539216677097462506886212769532549343460066347726031232960413355217323641713122387399578247559793187324306612625824304205940286831147582112248472146904298840254167501793435945156496265707247399589546752148750659050950169915432311388593228382655167620401295152709884130273824584905617468736719136652755601928736775515465869188653426527774020426977703278802025520223333475704799751217842203923975238826160888478314453003586453269573809037522519303898205681996354564216337697808931489638127757066871595160200232671767211740104802505980044528572976987516287367742838357895282617735281006853241633334478698602093803885607392241489503305971268864506158872955554693526669695685783440308886520877437431019741862668294289898644639164903605627284900087213600857148451282654177059597359466936349662049415010391564033441683831705146200977285871661275992134641771306772876152771080718457753305285618949507188294089261504512551257056360008547767143067129510274956868322960858030620760424956349770202927077054323265243916512533778109741447023169854036063664655795770033606754302779034813157192142922695259197000724187372848797034574176833869931504724146516620068754506380589853934686713662235840502671065612545754034227412820169936799861516485219031439244630379968337098910326049402347529923522154612605520488828824874976030143586952385406903122360988602677710236349151654317680395491741929871334796922444307936576830232897239514998400856013330906804666211084714341401556927816645015885860098557236888773006290034838122239822203988579299918771899169338828508367894008735397087769303471005689498047957380550433386608520109594576379393210603828995839858635523790569723429810363885903409331448173291577471206891767135837295134501404774900722770568525117814503922063257300368452280499393349603051613900983537155306933196800863443643140397908485779175882159596769767486098233009014422979564158520612482355072667622451196979232858434619120421673258791649247622600082776067036988486094560108420518773004532731544681477287674437104653301536733202250841308160779937201761002708336116822108051476497099556587853977654316450227843662370145789370716164919482239343362623807779716067712845196304592795488971541659335581733221814856133881678750455486920004974954654628174932897936704000645065916043825005040252869789593827378004323927717031639678519928577917419841079847218586770787158917324122217040361910082642191493276679138963389157384461378751806744488827413050555012117344627643940922495829414620767632050583691945839106335211687683919895313192960386091940907201514746247052798499215694154699583361620687002109218975653157397499644947012149505740296044045916810942556735399603866823806411393177474576387139112947864015466572884320856595356804938425403473410972894139910994255127686029248678398730717219715848085836996266869222467083313416204739344099198903993807667746585749903660325780242334146047013428107899787124319940058562510208793248200481482794551401226418639966292558784016819586208724902090330399724114356509492631414202998202265016960921122065827101277462801663817485409450291328288030026771409713440017639182265501089998739232339666356142325575535372441698828156231651451517342947085998694126970777882105618739553542382535749438695638616914639526765543563703263377191860468866012830179918172678696078516474790872665020103532141828037761507704078594384505403531353126678058917952859370833085908191426704696859957621834717807149220761484919052417492197122102648699342416693915685211522884773086918579034689194062362515683406056388271750441299025163724721249522126857268350899175331120610525396537032954296144219761450096808251560936706403586522438380658710666721472668290034554976354042698192021942230870277151067283283431216440836515572511967894424105834105533589247175683061311643615226615996343375658353917244097859893955761902993750902012677915665887878838854273380751384022645198853743253805846275655147100257859157338926152919300339892592720003329780463024747510163608115651510109085891652604238843217237748125692433923029637468210876921714223322912078301328917838838320775357138324273867884983955531508195294739168414042402305200045333757739973610655485779961404235993614312208633814856046306504715640315236567833724648194539139339155920001051588731592851987500264218557006217878631941160239967784354433008801026850120729473781207285086797766877992579395300811168343495789810705200174450609447225918329967491230616108201430499425378005463375536852385073929731093614598659911986604361298748722370208030713725032518081405571111217713371963214987685114743495659731218480977440851367840249724014482703242488398070299126152301358788170192774402587729127719235506858546133989307708725680152163742878664451523959158658999517140464869824998118488218944129465536812519577308095099333066166951935493425458006442691245828108564066722154146179931568677589438202976820499170194022041324865907983045050743266771043532615596482469710908169847057260485051847790599789442906450103677661092205938144799960476290252325480030874665444723388803505055211403033121913015479651412182835657582978962056590825622804308438022326701667741604050079925650955591607498869219683507887926625363510866259921319069684457997441028510839669022801805578170671143369663198941301716910816905826103049703599463209680934694438624501917615693428325250888548747203429969553744227307341017255052907699785818269423720511027088777596156218540672069057685136828908509087764746566133105710133974088227037085081490106571662923920529100419753686638881598527941981456361632409539229419427382588121033549290951828575804055658567701597034949400713765509542821722092253901364319908295193104144444731306959096443259124120782192650205858929533058843551921191859200796922881142226918292175803360920333819844719636412687743393151074960981711038745165644453434450902261792691503030540549199043017849136368679531218785529103967016392413663341398967475459500870523607725753441876796822528890338110730151664365535662086776356711606623743047456306256802014982249142420439842272913709394080980310647275186714376365844776840103650438002629101214204544883162391492024198732462070004378804282685403546002815222551832866032807917264632723978650836670773170568598886662854348428830753283560442443577050724749852742882548549425175870478969485433870420575303140004579741834741326015826174175239126314717621951005730971050386754934593978551136214103693970997070668130496581885404403431624765698382621592828993753823043918397393205497776231341023968944526082424791231413357395585776761807225618687465714745625722444681739731787906622132647620291049056681720623487215974675966890322288059011533243383711586454986655741497529089496119483078319475355960224970068573230659611742699643057400473432646484175410616691823276688161374466603373535452897326518196464256008372412311568501188178909608882954288370065063753660197837277575748201014125322720969963940125688701941195756390615553140688696623006618217762722304170442662172812967918855007768456129805501737811582198740371586732846628194327445201359232528964706932510215311914479066890740467931496877211577728230293927679050312568466354037221573776507261291375553282341142124675622048101803896005521017403835582818210305157889216198938119090099415740700956483057389514550076538747309652950848690287188984935720784423232976098393492333009924797531060283085979732576057427978577043214860349584406818114432106749972540560585418155317820091742451763752307584353281685529368861980356576948181741659967288392283705736221318367102802959135891143009041405025052362622694608518837518330726249185928040214924406076368755368104797352010369144371727185962828396011703448459362975213894383520079474787861708256507580095883678262987278098115357416986694250905903504059144737800479156949568487829967515463933906997995111149002288358035963142551174919044423178915398460623016192508664800127179183739212445384634922644365700239239774920103509535614784858919372889636392831656891007061297329598019760335765237045869671405911042406882474627703517616668136466865454239093512387087931964951868384092637796342773627153742608160013720098647179760442052595182313236446049727011376030704306431163790056426989119367717173205350045777237728960928537443044595077671362968517702759839695853009363913396174213721622251839239036148551977828882115090403155924742965595372965797758608384286957050791745431838956986529303678124684750260591287476395980740645003339723036224005781897868482938758049978456608502845486846781738074921968776773376214454074009894428209618587025871736818491727218409960217650385573577864288088476467882247426823744622635100912958247787806291988793948263910450575448000206965377324748600098483922538078568814876307232407920173696065005933707790436662337724056898491661372329677311683547080476528798843889393559929995327213472868814892420681760422530287418829694032463136673491219764028400054918075875125085207736749010253627787732126911448189265381010800138558741716363501490044661657516802292049716076034937045779087220068811137591366408440189454561039778167432542992958831153474547768537242084896911852294606398194206286396699547138094016775350246614951256944392204616752277817624271531877706254054579242969862706535651707721876582053724823649585626378010812420854127865535212211900245173507735766301153631869379224126621414976500552185627129640079604160578072268868819085927552199145387856567530767098841682256680730569683508426921424672935365828248267627076249479566834586402467358942320410141664828651375911918786796030362996579991874395773465252847537060583345957527979605294479134690306995303127736937054137494969071727650961607643095544146253407675405528022460807495399555589798334945294686748827360857042681422563086097197467408627602549869871337313884162918469148062583112246625908333953041477784567163403820058172690952332195937708261358472263141488903131189308156893857177261505814615329333135229293523124876208252857115831549503416410607447150791263966505902286690598824964471733319508792372190390830828972574090951186247664775228869333458431358254568399318351990248541266534173306530644094836414123890365633030844559326644302663662480248965664735101396432806133149553253796179361367156451443481401856713421713462448727876364189180739979503016000904742171678583051500147877618734597238420085297283346995704095805064472796237881478613635860565664601043149898848512952711622759271650450707965123414697307621794606924972218788089329295080782854320633890354042420123966077757206492390683904699967470999465670693927649570874224030976432943060859275871559385214513826818707907615117945166688678050049783377755082747034851089970431163679634793139612743073113245630585268175050101140394017989833952087830915048522608350328396164715961844370036148226946736913110132488557711556976205940981775194259565593978810509194733313316777579179130808635246397786168950077881460644888316123322812374989237140349642661107287323746992036991617120667883764788929487710037819266943776520703500623530582462014086130692146191828375506386698077487547082450206907269261187434435658751638899266620858257473768231682577208105724856933411560805397865409229114410743210436382936098955587427195011249473576197074406859146343917115543544170973013230161817160524300539561591341892326970362312932450925515098926124639572294503848814875170908448503985245620429995881668375701141689559044530335006816440711340489300497924511889682002079680986944948466783428331318468004090997327219229718987089761306801791884369008483902937817484306586099702740178277206169302492380776560582363826997082323691937805837565941816593439779615094283185277410429330764622695893632089530860985657027080854971749701906048103221236947668576370076337028141219175041506516662839982607718572852434262848889886284124522375224783580504174162638996706206962084082329121042934936049568233321041590135053879574466186547104779520785930626805101454129949113489909546671887486443037449017826666925917421822249922427861865645640576245820230338739436751229044707387743794415847271540459813057064124532659484795307447995887971585496194594475958044186023980948281817456560985203649915773105017722663699047894427987328560798749256325948523472118776039534160530309302776387736819856236023541099501808761046181556018604074183456057372996144488365189704120182386334459761612223807734236705122420086044495187201644032254190567082938208588736188980201806261953650187215310364931955743771934785222410791893597599142725161638094613039833280106796276581654648126310095859630177299804803965197194219275367373751581374346696535183386275889894131038924525375999871176765795441623226515974042433469361362010780664472673208800144460800976231867413577020196655041711592002565031984916472061682069238928227852438736724456053403272235129153386049958061162364926800600337968607455376592101231079554116705187977742085181402592681797519768004395952919583659693899436025953628076532123066531059020076698832730606258986734767115978157063014583064315498078876606981221491028470077165070412579825688794196766571003618910424305582776315977895528242298211663885948944031372132083075626060976730084608192375794462272540391867502871912950493139890240781980311361155238996225937168666052663913848603093287815871490160165312671635126569329159391280458083274340320363243487747288597858875430025758448376478021845030661908058998087912895724353136980871196614642769333230528812170559662281509355512819660289652820437477356654082544219402419348474577077545757307746954498029013585605849160230558229029852876367708622165821951448958555857219275677762075720470717865718908023678316907280619348215764233584720331172984807712500130004134943484195869372015447663235385753307738349355611090333754122050225809457422183173354321073743098935143638072363700731227910484658486121173763923641834283087898929135221693703740761036405884587552258565129505874450856796947076630236694049374304415154638670198648558632808584533973577594956501591191488078919216223057694354748778628259583263225080222668503677839629942913396322806795121921587102708115689575193552043292206310119814768371260283818934959521525853323882454282093385998068516427736343302679401336538787441321898337416184301201909346253195001143056481766877488108718649876928105984898642622133258460965619307852136866277710720183068377414909499487320892960321773521214001546069497010307444691611363327812015032011149204582341176118292320428821922120240223522470460255527661173318816392910889187900955995046845059944118216159536977176355412349715775853277862968108965480212712477329551120815958653936595169131180686663215302258356499278997658435902244993134642984439387642515834855575324741778378827909364834143025264283226292779714621864536043389487406490827811350990314226491461919301020214119818584964221250940737116694625810435301430852922669544518612869502510741533891700830514238550896655668876672165310620366761475407336285860454714565900256270481490328304384873513595026710057846618120666761081659353158807467635895511401218349485217129631474084373555210597110703504591122892424754579073767390886477707155859680950351151921236537741594823991167046174067353221914859596880187794839215498322102692023556813408985648017482498925258011353591486037945878053125496339251835256609114244189077929671883055062092647362446132743604451520775103130574555061264636700707254930840223411024780167789330548017627928601241412148832203212925764345698016971446568919055294016208111993002081279453265969354624437695485528586642619888967965296534029130036780469749929349335041476543635193633462390179524557822426845255047508178329074322567740346318215586737562369782717640039713607576364324661778851478509828072804067022338482610135480373645120775367482128324501018553264434655585389520097229655179585245562577638113238232480101758532527973523089370116673024012373847545052225435637249065528473419696263924996889351524031648826033748199144191339225820389670061719646248867728043951351588292959833044014364201017200974466489661732087543786959859783162459034715274245337875811756777041025643284142667572084810309346121872245127456090977799450180305233508427329253418979594785920751984021148141278697837002032611705163421206840055261406097185028384821776359254922406907422375214551491342783087148082972528075980587518095455408530499285367882051625844321700186078028624937997401858391051388816480223057873298175093413418543232862790188118954980102976277886066100917058497080445468617793840314885914140274549930097643653673046100168571782542721167051660201795282822349213255184880759409588336837029478563899000646862475606296912383800817033351419585318836552931311913736111586162445289980979591917277659128223240927916194815497927843071071673448140847993699312918747671143707654149500563760020184767297963019053621279945599980844078713682623587141449240731715522120715389830540812665959621823830649763029411846829667917268648359389516256743241521546522959553349174315306922902776777209357200590007443164961648393055235678987537872660622802341746173649465050563296495096642238096904517612184137186045969350034378956917186570340239832531210201326328328978904911367681144733725554388655565746603324236769154415320025810798994641253166584752986253180414976187006246481782113500579314082759658121687976890557422793743033081066364675628648832536114554693046437359873238780449114527033883244687299677656030374381806885009777108471752321653692241554927394535644786835995191847595194335974742993796785166692654441483620770457182756148884878123932892821704560897295637262206896732183948212677632664845133447964054125310758806099582474854258967252916276044446737826395549433462206725533432511458917333096745141840512674097505493931836490011677843667140140295805319205496360488137035648654661080663777593638687329805995347338150645243073288934579439504820873499525203366511176990946089552384065926698923132196710043532268065584161101080273410386299301211115126513276010388540083471312280731765185900287807922789711637000297332654081385297836917036937008249032639709953520424718422798683535432785959069904268510037446175679474695409559814634711601081049568439839421617160171770892501241567053442700808618665288422723985191532529753459556255997561121467559104416297730011160018757279935170325046411000155105037893653742679288112674723124636325249404734098586862737445430513440604506899430148334580660955512207231678567422581657643657128669533710393111413933310516495570331088595877754558846601320674583133701819560618446947566165181454541431126272588177996152404416955097718470450293333910796451142219899415012058978065055350453784275936666666004376572769798299684911116030621783546120568472953668886282274895243527992382113749224763528204307968805348605635588522259919562881566085609111900252133557228596078314105355462138753878140346036003088818318019200780161975995716270253853436947184060563502796457022327298805665986240693266693582186920956411283422613431399013594971563354035206525190635828578067323795611742607080254265376319336068541797475336591703348262485559902035133093732335338320962379308017149183333734396695441556448694427821771624006866773435214959332978437154970267448423847135637344576311738377433288356916297238906298351878184480361603586083409873066818827649208086046564150977781004109186236228825762471807047216199274171530208398757424003551268027534145080726211152747927006367628198034956499446236226732045362305653901321959653073354977639198652728060972081630412827222408921990310777940053537890619757365889069419849737345442468493784665425709816917029302377803413042640679180556330940364025611671351478182329511265163977999788030233536713121256868690391441602301240948129253881576221999187352764444984936805737384918040418577488176647684033438152255211776807524146307097733548910879153701578799417846113781303176994159651222691296398357173890786687639150909533297438025372108148458727167609057922359029326863960471126232025366873931278074934609623123802182711684178418444596192465835352940384423149499891222460960158937459162358467226853103685756010541571299402778268145083143550972132393867325624395792764742958184993085146849809939837728317457118825340285462871259994167592489359626333474519922512339382589316632191235065557198451657705691704259527137718258847315532017944020392237286528856172033123925077094760449536565660813901146537571079645442359344116489119351764106367596387438594165151822401466934004840436702963968478285099599302770543559013059514661950221834430865556952322194858776700202687744188140083303556032706453174179141160558661359915845129068878015062560996811348969777072249226636603281686191821878503559995050715534761112101328756856690633806129375290650116473988177781164468997461841136124352682545501210568144864315513987573570765682623865256240026476386282848051088962201616829488974646641626261596835635822845606824442343272553953421531586505504234325679104893007710347371615136775891293367642335249937118583910389519323780498885989984540388526059399556964132179432421767514578360080675758559494357493623673606889734061910639621283937895042732748189404860304561906423993559275000879486990049819119011746483611772998376806159284750640213981242035804328628040165009030712350807728166291289068691792817234463299717054359791388990031007669576942356015398178035747744216514363931808593667860694462097067300767783895395813734988217266891445183775445852080014361326115774032485426033112508298991051573847914721301972808108274964712014064848084420559545619244442092502945709718969113903280745618085807624883693058659519680508831013433581210744060260971803436510507237470984518139425111973872651412970756962055806523092529143581087111891870989780982580549667388403748698636214786606294085787794432614903054572254453407659120787701382613671789541514522468108623120985574381614382419659972781024856854195771777136777217929934780543774184707284015639027828075414753436346953963868934066016983852455240282512067056584633373927120129806485890283841277413965838408726810708769916279198673427749068430520325126924449557057245657258297111189217153232148491388851716626540923861107233705736559295672476998966826489637335302268647881504873778408236750710152410216464721458938348242775457465336037819920379335109625094307347786342418768388517428848071571117553703255748685753161542866317009579123205371083033056193523705542541294550752183236629203633559125647394375835277742886637395588395722226986682975133877274250740957207037623215649230696157263953330652562883913077941344257077490045412699779738045523932878203414745764170518951481881106682482832374673205683736568704258883899561077088845249057166670080245374378056483184469605357144940901388045514707578586556865164959283582636953946792142256727086226436848404940734449849874104129929020908279445455672146394186818153315418928798530828717423530133748870076594692135783901921639106619349994932822966867067563694837823128768156004855659657929158750902368405132493705906062411571606816147595497198744865220667963226452870610461487718996446383499480115119741226436946766297393693728454882095348932718816574163056161310493465086443851182253586505193290496750696451055959028423978457123993152964690887183561188289161620573690827995351192464909869038900979050378382144802693032923486818375238223114780442354666426886789010301039714829670460294863624074683482053701911907851016091363976156527403010702561934908824813122724716757260435079003458609961952337059861123021739908757013765175222652357675998030869156533324165348322575465822057376078632790856815307671997221876282899143836030665617522375136773450176246215611103925496261694284015629732075772665379738618863091325600164554184067964647510457166089666489658126564664455445598635677921641119000564124848970712661386214554036611455650354155342923902742743308149878521117961579898374572605852210731751764637073321619163154006062239051438521567786685216763707200621133521444349973254081390641827071335942570556634793957637233842990525571984653693180231078918878876115021503306891552885301845445288336471217599055931336800482476742962651296977819148253491422824513258016726276355553694857458238824213048659492374971501977666381349997626963590204084790124278475714421321648843515883133983904520546756132023658546534853137292816817835363361748576830296507513922803273717375720209469963386157638487286037681743270512728058972982270884201080835089100313160686455766290160260321449818948701371936809101294263395641686293479762950237813514552374783624099017297543980263821175562834961170471279715498962749068395087300985764520655361194379062080766389264241297190576474834281547441253261072059810441601111397599780174311493271539897942671588992236215989172376524913433154536655609469079195952976801298008598858446547010421385302491971220267375710971051641739834512735923488860623696031327815471131723739030685456179696906105345239012540811371920035656468011008859459157818166218963789520295368078113477157130394872380438905067316814102886926472073358988529707461991963195940909427633880071983274346467391500092959113089123265595751246312580156484319930512610396856666216918085009575710008444120679056947037109261816551237358935539075356081263573925076300488084858234986150416405303857385205056840535736778264104426316344870944326883524454617039520137496706903140213015495843107425805257010913942666286100228409932223018805654292468019405990939702338415880036996488282501975041261898578125864858009758691452415422110053762655116924723440146099516968356550525038448801404374526817941374132604615069325493152592156074898875501920391251042108586983693289800261170374805958759274265672536430402541681022564816804519696969406334172143676099040283532281172262045896821892415070118653718534166602886251781949832548220867943016245896470004930079685981964371557483537789523590853896795076387484967176342785904624145496221530152123577259852021275710508860257183136442529897479954396101984324458420006812157515216782591464863731239103919976805695027768902973803149868265773705713804026170230025641555078856273649547541683756109266383516333539048708259908897986637567898080353579209956285596178103559120108093737138129288235981179881113272337286256433224325004411239094314565015885609788516037014835667520685361188025846637471073160127058091476110806673102266295466417248731409758137592433220361335509254791869427032142237705436119473777138202075879395969923912721859651586973477423755671180525397385859360761684793893998795093884523862601966802904108157851136773936362154587509688834236152231920838461881392898105723897165342265519691675708311449463973983482736591327271479833645977197507852931329921206910273820564470391524608719889888508534493518265598066786404756492636294313084316488847688727491257231384851961705293587581863795402792643492829887141566093686818183177596609787419614026276262683848806070651874276174524369925730365593599620437958131078976838542873324413779647899139119611054587970956159797646257869392447599204857632122433086035854100117506591091996590124279274882700964501702060615301488403476565700425279122930433168424569510402707483162716494510892996514889326857177562572638904925285442510749011337468470127375496139077769803163297219202838394216024794968830667708757593727214045515928227977972447456847384078151606034022129352500749514145739396331209674472675914922921802849895310789104218645059969693501366863470160851839149595268407853305644530882690655968866053884342103191225419503489925316650615420117453388534883520071981819517079656749179131960041244481089093739699641241665708827073794009739050287819320497673523885369530852327571841251338200751442025245847291142419651578119793248841673687869494951966406731948103626237703386124785771475066864500530454172412778955590485812176562277231267599765933936824622030514634649865011161640026428326707188378657697396378678713395373872655613785746231054475758724599789990513830253328999192828986760478237958013557207742157040368863512899105388989125385396037116156966637181713689143141641404680208597435210892156671030968756257965188479550482499956535589484791415457870314513320861645647399049294435783129311706255848384987257540801659445489597210736793192158536996828122490547129150465038927261213513941051725685908683704805276174642500514650142613962717223116751435025751393385293994360782592708410151124178804493881307990793350502336123663859657974971579204446723721211110084997666182576115241392287070383080989471444541146711956534929552189838133836559623089764512892065200214070538257117444471861939295617941980411279273730796128043004406445629882653277147469572111316584375655933710656594657892481262787506518550586846784853422171965391512748946385347181691275291034170980868262732655402144839361122557470310582562772806037276019593741916252803559142145438556311326146594451925747015408578267134283453184995443692972693885764208559369078441681311590821519241668892599192659971210374902970733710521625062814233769579215723046782542192838767923391963364893939456537457211806281644560960351458409613965765489950077951508495028309311563187808149787814162369205287007499435525620941266942352714246517686589704129560323515400607561241902075607452310990655037456741075848441511225013386168557925960799561139696797194118523605860848981784972033927969811741129385043224098941277952481264814994239655411075761059030216013713856886805524700989536269391048065182213263533522426838411522003158062357376018337078233500144507508215950959691839431086560520153677872027619704021854430965440119735013913634187285181503492989616910933685519059738447107264569682795649731435663259543136928066053964767731003300970806146188732114946468116888957610858814406341004313770347695848240928943000424964545282373302619981720372310232634215242112768918368333390566837380692254162370865382415131735557656550137106142477098650379173055860780630449744318632916896610826360931689290926514070728395257377385988104544259394757283258206218256500578411838608662342627462168803025976754638718924661487985214890340204931342574850158652079056480935067508214896141031500982480194201524710190286025646327207952499994746388133974409187895282796007495764932023259768041446619893544416016054207597245760243713030334220352349736504815821264311204134568459325298767883124669449525269185328435457381731316402602378476825133505244080964531087598854955710725435233410272569163540046419405080103502014370983246509217927960134262469800409508247622544570840044604638954048258078789931727989728340511419934996866476631008752875977466976514432320272372618180904653148614982950704439355916666846660776307035411731392869502272954313908356025063089793223371067251269772319523874544891876283301379576015401710946750998744343187474864276872631170086961238227934424751187840344213937284187579189788041412250778642136661041555926225512751981377164796345954798263854741656010643340332384158264258038317066094762884400221846655455361727261510477477591152927237229470928253493350631198537723983351850616452560565103343531520560893471637010211917279891492832686726977271883004166435213634038027240499100676786490824925446388206612538929859543316589667448504687704211289653437962710234099463514064338460271891841015855270657518440915899242251451600932683588391516670731802127876182531748130315092128555169742674852700264506111106019818766085843571433801079309682690637844535692148166305392567236970076347266632850268925961015130332351664425043207143274801976154704432450891790215010640504566309647908091885416156003321956864882420516624239947021890629186924910069527949120698144975087273393866317051734605202012289600587302625050780371336139795199151079967528757115624215746286469725273257462878279575688308495264753802132970420089323260629340720239757866618616556866498967481694323203142833515402096767599717924929113632282198584865771478941482545013861490200462678958723972530656620570315038977993109180276859760753910490967508015875596538184698742368110836223588566677255226137026114610353894029436740371827072082300474434478650040982613997870367134085419139119561736050980591028337049646168695084229667553782431960450823717148701183473270770224992422095307896120625907703408709455864948280315485829586008309971070230537361289877843937240175935442024900283204366516981688224398557390272228242996059875113365579076426861421947260325466771761054432500652894969548247973282299782831780946487607044168352171024428605091910624937302637240656482308668270917657248971466969049329459168774279880561084448174085842317786713708800331430970286694230071593558286114428539654256582784179719544784594870558578549526538470396407652820220477094078498855214527572405846858291318672843369322680748119352935444034989294233210068078657729096665263685194486656266757176018815232126908137050238723586165213859259391551343061535539131446406741514166530967333758003312466920982274660178492260000234892549739090993840453088173525443974908956977254468036213248773567342409584038441825322074540935621412900286892853819554677901084423328157913878452955162626707123012578155993570680634664121788581851418363793656241932813206315608884300752042961421513977517267583132673822439050220926663034805585186624580664062345630399128187920815398814382775536459761673398049051476651636980756840442961258806684380778359840609100792485126192389751081718424837510031936125993368235340896308056466362022823463309746971022577407224785782095393583990187141864939189446920925281416623446670157775786617528641178506019252937781478872579912336393011864395694259513679831575077095369938646939779284389017028593087607687612718598873994821940444994571508021386824747420559024957335610863475308846286860813504018930799250259134667183840774500198259064695755947757035607604773301297070031679295218362208923481759707296810727255562426534573815270082080859719124292471725323226571532139370832954662199674058696555143662293333176502317517850050736437108171332408921951851868108039974064176316771633503267776711713204330125324624261812226658589151596549031530090600476081803103326257909052023676081007554466691499200415396092743318968783726753160383304872079148696673292091083079365588947173782665075737962053453958413043714390264881806205484027912628541842098801503232446766942415475578471680661082396423629421085779028363531837522962471078410309514738449630186855579237937389421286766778705929528035158589100090942151363981268786219289394332588305812382065509487015412928818230138078443065511771124531374857599043637745554640165672642613723528052410063695637194944673650708336529822263753461908743141895032375196443793230930495958307497084805287196243115969405441531296846647505853067082264949505719081416107347142290946565259194246201100050937093947243110869686211830991977102122873884682603788924090709832717289871467532086184319001547721335112261638109916768220993561493867195124340213269493903581633674144943375581660937353867909498068569034173604419730865383373055742352373159621794483173074814692509061104041903222268975657052959434461119053725802663564271791686673981724056029044814233323719259769835843938758897017736759877014621291511664312926728895207901140726405904412235135529896545686938822855705370425548478106436561187339208456367049947268143833043876921703621915986775662394022315626186057750997186621662640924414361196929968272036247895639680343470105268324223885685051868870971791950060863909607533378323700711069573836396399478157573672672824811965970531752297279510405387847080184642307486139462827885598417065955443080976078383262292641847167853681417800369780500438608984922528731153008527060977124911154777038889211755642211418663344069464716828219222329251424070434407571897239041332698818330138154915850377950826579294171358087549663664687186101316369190172170032081632692069501014665185628850797738057781301121102751985596714881338738795244464031266475706381502464934743610647829415100968434987426994106515844360890487174557383727963205877293345510670802355260429351474799428725873094067158346903071389860633589165904593072139627117075123025348614588674180256127540973223730818534414845180662814130810478145953991164025690894083565841752140698032891908466991952595782219783625245189971458480081059297685273795059297916320700093505527007017536085340668557005651970607382326153525387665835895851317908714223429221920063761547723331642781471558714322932712025049464515849871990131262022731011819835038305990937880523914565335938633580360961221765731442511258562559942839143741357542172766793632580591893351621537431595642203126458420977204720319019716862192035078066135659980937796456395041172682052219145681730529730414835489129656729681296273002944058468774058890552323389804841848058932627614185401906978702440817463353804721630372295138056920028309205294701081596786094295678503613151086618771813310924874531805992757487506454734965377902071427134353812271877805922281598882433955157899611844302114236015597984782538495618239308711430563634445466693440688792778267556889357771977764006432006669072365572928826773350234729353522353622476152392278172005148471327818171723145849305062197551584811953484717243234627784425269693516251698492488482298301150587427162775362866731854043591221503562566296856339772760999654009264954218339392677385676060985736581418233496921178175957799627582990873192690617171338067952757833460970823595350462310562223485699807785033654795438058194608717394299741983032639234080675414916384157170457416730245750495184312876897031552023963753684450763609209313262917076677368811897905709628165464251390407917108976283299180728267275820809938392739901060362339214403224826329739957867127766683021785579201509848249904303184329511933353182788122795940056679787794165216963872926239538062892324223589307865063083284469019163777538001192918968526223870153503009535264760440486699100017577807191361480095599621256786457364387920291355138479414554236950174458103625390790548511014571775593560383678347557482112901401936057506910780942771594493956271625345225969221978017938606283940764416821170211334420155460542948959075706816152879866221477951284275022711441362218084693231315099136770503483276003463203793091514077789542104168541290527326952595948000381527304285178611051937914107414017470399352430387578152886852596804542572655703201844670388902255327774587007047346327595297041414814624508757977621131463379370828089774427638260244445809023052183997987138276455953174952400208800904534513602631434488644965158187359047419359602234828303985412685445284955333295477781939918614828634426841049201537985755342087578245452336189581678716917287626684554994269844799041350071464210400079287516831698256545121810281515961414727196754761418247152060161764510232266839573225760636354213850984851665373283309756845908898407854944038013762588041082634744341177552400382792142476364518594258795836018210821497031053472439168564283164256944499186307202023259098683814670775696162316156038942279728770730412128070615538226865822071291747845764580756058492603091592754389107863468727948311063785193072530470075246857575905028975901245295500646917389459798114694162789714839954049246990449705164700570060206672116467343655564619385916966688854544639519190663669991866913299714431807649070769557452623133940137148315104586620509674687244573085961341995719546293927410768371440985046280987952739352533244879177988071959503712027279972101944083863937332556356169583176160600081507380367897494252200070105494437457035686646009059758140708666645837804486616471895990925953573348445684904702377432765381144884501108292622332008498476709328973948576310120106658252464839138101128506797602211526535946426249740832157149832416921189781485394731768198602959494641614439466716097832938370338632447995707888836949666958432356447191363890446943575466450935153680229509156471433616017234475097058092410096873029809981621563525327770268004964520752296570085001653235765675549493087466502918396997664546922350020649345530689422722306148949371685736814537662588071071832660632507687965294767926619376597598140034696445186025327836789415765346217788064655461131619638151504019136639820649147122139731516560867816200765239604582343943283461095107448045855350373515343215803591817998552083977904392817188461031138585284677145121103687121533104416362210897656670450360032303541116691719408366493314233491372508985036266439235950562583710313687015681878480709556769145371317035256458966973435683110677961888960699020058376731942931737928117710826115960925105422262823044569995748709632181251833489420243055117771645733150893023072552373374750937549636904286219432079057653334163977463833653500039691862922821353014263522843003325649128514664801368117053848475799003668674122901571770430844123634257981589097098370919057234061814047684293552564238843695241763530681764914805535216653086890580465039760072116960460352219796990275264654258382029959284294619564675331513831321424381035652069275803816872085036027661055709820797826979776008165124630758680093417630833560570798956670419368113617400325336845119589012105165560596967204588427019227676708446021976106972332096684625889112314995668515203233932374955344309784193592290958699831896371528558253088294057165536813442083503001847879826435727360313636317292173581619814318963916830362150030595017152421555663924860711228656224841293212348671893053313259821581591548085981504892017162915257967437916016341751811435797877848610068679327215745609252574044938321280873546787164193951627206260839444890558022007466106618499378805218615984164383835187952092634828228022083156585616809416168277172826248390817926726578115042872144572249759197972165534547323469523773499964049728695417571556763528958033308405758511794411766381318602539936625599132307247496055705508713910043898261299262182269146840895480052282855885894862663747156395621031435003392402433913754571748868421320944743510609847238825390358051666133247861499688647143043201228006256172930962418276233352835289499377085938109664709269276384294309484571929365093880648194268036420329130826007264352974382820193874805326667768703995634256823799178376212415989826362365884214896821487160072719910025232951725166755893427903374680837729022963171768005761720395011300404859354641174600917997702141371429253411631478617255126074874909496551995673224991247242992925410416721510763455274992855091901408135788629954995563733599719286957803063567812173183628157239416520424665669080449515156459206843397513817569434007365820051424002012913871800900972871560301500048265915925017879729777681034792397487760526399113977548086437994617840186218972944526699093292060837721509900234337506583227456008860977662024176293104436937617505198496588555446000403815893846264453465590431436986069712278119503425545863654809722214283789732139731430634638395942665216190810761729089189908882346777892869149850246064063329671817653896472118946224636584930326651405909490145820432534365175697615106616256877593541462573180916285926902823548982727965456687960337616221234349184506545131754184590348649841662378741843081151828222563236876578275564813104226659613062966270583792345871198888673050641264692454819073520172495935308616100998423607679034690476124178856608757729717971654813817733986018127990955271824987960343298503456674325350227865535529637535633039743278784507772239193178907312615570198228587924098145251541943668280847881164902461103926587980344339621812154124139452301110997384902296041870989293676923196939935625878187102614325931457166296094859295989998235550019305054743292807282091569436364827499097490513126473311992181528066505399840064838467295169860353736072677457801927769994953621443880806131913217408788587628066110828963699295234331337462064039975228338341007044506979209168888326432911625616981863614851417535927598674663091377746501700127097889193209106903695157790330351658706225458885337922662131822589562316208051829793966445686582552524387871141114179293676178973051787761331253581101744060881838297239736430061657685983050510329924698514076670269921437410833202752847553618471290748569426704945715424840665656409026348636788887267017015626874376605301054158292055559615707154714122165365236000191610747856671584288170060579426784423948861679106501593112528388752922375815743933734657306937474936344972503133424501014316739414619570037569680854107757772215419965083800162431018089904821244374579625949584059372948736428332625711150147418197029182074390940047718875458999078830798839066822204422951564065380402906634782807457119466967209152620183990012542369944197174065748085017295597529105207341635807612386849033248235325766377433814136804174006885322286489528085148774191367988598253514142266680224539396120483897260042529263793529953896391456822872845542159107870998452656683569031390419901752567269244101675924012352500799763575227504999948043954211611574723773175500054266887990307398294942593911171531236035320052113592207180800529294949493553163193606691808475761365515411858290186814655780884022910616779301580515095368187188263270041747105020504861852075066226897526412068064152734110387525449592609007729001730608578359372034192897501593193866133162559458855197449627499182943215809909349836561643160393467003888289181962098906978140028272022329686658250873411267299964075539740412220135485906189187847099390575987624719089661470404205163425129589286551859456347643758881396002045197651665575946208459709409584943892056029696052099251920096125383139720446885984189841820406839306333217828096530325026034092239313310385284958721684055935416978417881490368273218142422670972671980978035753173317412073257265101278461676388988464411672624275322141722094992820312418622349438105570828695922560211091538414325005451528367299057684394909615611208557324494318348168738249393664394890492861611688638592819008938184326448714376794177649292363690902463466663963450219389786616224495400947790696246959466315504699787929740940171361922082739526964886198010062738634046246435883098522345872613838743476840603472834399387524044441392466673368514638480852593594161568763229152920616308632640197212792000103896976568859841045264778818618222305006057587665372507138524940894630784195072720090660685606663792272334714274943914569226575822414315686146359496580237570820053852793787767523989821527886920281630181655543090379995312223534076231381118415577150638357444541179416862316577658101747217393412814976749253733453381597884151269965861287340942683549811782945971858184040029493646329569740066340151979796208686111503095438979051642843402685886924565405247834400010585637538087111285396683171663077126115585244188045311682033666668157361466916903267644490533997526892912999859350426422449145745318934132397757430129696170102995916417135099066177181160127035612039065552320459322804918397695530041108159287740044143815016591780625388900632743955120631139761950142775622029279167147187855816435618146863359880249050406590609175051970218053436089370031298186588819972671913775016944019578795727450059339384300849586334187261645517802924298553938665004821075751476241778187954851587212099029180828370706096946796700292158141291991298880567657554871987728279410743766989812052050678589911221427532033466182618382688826035340004444717752304389169310384836905325831306333178854551557009619116649940496433534857748309915200636279880491541784486075945134541927793622410948535053376581393396903484824651115597392544728379303444210775972280590106968544141221511687711014957273920107270171597918770012471507656281219719991104181840064120046995140354984084581620828504859690784381944134351721473578953312535132689753741503137998245593013663032308118639664976450524251843446887189677466910993429825944104191540442004727319712437919592809438002995309137231707541959778895345799303200712893767792926415406264881886113468773024109415218440452316156759861173359549131782113710345585355247301250969950600977439634766049524793919074547294530420104801884529182740335586336007291417140585903044770038972615483654375245192826451024469006395986713488298000832875168683402586487927726681101716204252288227883927808218878958267452013487692496473896581782169376172637441043085949740785218908247515805638601404671401980348124156454329450722778022892822425664792457677548496292100961297391784588692561552217480485406877835421933883168638004480799427596484237871150885722146604373378575376823388366128891739153953188998766016843924638867599043332503889058950114300646724644365966713344069729040553984593915267102009425227444180546760566525852321065478061932735555299732377970020379467222450363586038991875234596526383956349728342288956146802776799487771455213619391259906250158627883383572386662842509590655040835472121823688665062913649627404565878636684894007569132831411935441110020809632006529121376203422020728713162228584243878500944869927216369110081775553155721399102635139731943425541298025449231281905112229719291720459805839115355466533479221436293872828442965280739075460216890999424940322112845992484658482141447170255072568629460626248022567400608144471624024155783144048794447708441087676273252146403401439832438877030871422830877707290531300944201318386633729619886072816353006357052309860867364456058480082237810749979824091316184530819909116921406713131310312479594827126088157257718209247426241027906164336840930556134850877549560813093100232492821374009571027693927669656945281890124286569872269758154464244875273995588826712020941564025264541928364203987399560925740959212613143361021659701421589093592265800669383030579958097707794759926018861311007753233332896880872607842369091519493633718520832814872869099611392156452354426771281811594613836928842954607019358293144908429371508316975592585404587566583144942941348486749381350184980432997284133654912909173538399322346475777128682639764276821458552596067832149297554588240686443833109552909914726219256491927717893167359913004328050570371549893239190992771738259144721369628182051728633711404809712811553534197306813206841944400011199320452034786563153485740267459811686546387156584291499093228152760412552111266078382649006035305283839511341210092965564492183006385088245821367989964234735630743524056311358303020010730336389007895906901730439083763137814896091811736011702929320030237426137380432072256212647700170872860196995929673639006244051984431020806557237414458207747328158984727379603983108261391977581225845091318565986719089892082365162733223531590535721136245332721659687633232149788689966123019148332719044679703753340571570929754738616000285494176946691523073270870902057626961547586861946006718833189647448298881296548195544566323470659525130468661486352070817295256915356357450766470291048623086854789612882869881071312517957335673895386991727060933651771659605296028945973733513948511223452162540205036321889921518146825771119376878012281727466722285430421813248173497210505669115768567367201835627890179107619191908140356968474240498287474575332238605004348290308002703219601005128099518113845161364699600318072352976138216896221547872843415080988400268688548201498718087538686502828813261542249267892717298113900369876036663373559148454254720569416605681671287711735365609951037430332256858595241262912528100320442341603184189119493419739355075770300001868863744345405851065322076739386349789140531231465364163955188067132102424423145290846905611988351460145768360187616289858886537873061985724275881617595665578600998794739613174113465472885607806276886289545191645293062662627024041902846285415462691643897658731564289497439358837474567794655112095593917341427125396222640956225893041012961575723504907964270506682892181182795954534918629997494684883220841358567944884861844487754712630529343394243943616712274409584663264555937822698793385532536797619352926606148178044807397330733082538856475615619247615902111762388357215840706757767345107173366477265869491780996664052685832256781468145822155014296539263939986510667916355802125552800929889137847296152730334755431832095133266531155886420615198122535895614183573303388349964346159001532651599349740273391262378651564477973396541850785735023117981328913107253391312145668739107442582737604086862819419910023845803431645629553709218700733422347771769915888376488041351546467556264861213053788007104407404200955500929071504512341370727160255627906971974278137238598571605353272155721451476787232388831170423031671719363629641216823525929541652017689240868387859343629573553224738452305196506548473920749945433128776848158679086202364649590053407370463460453653296108801146162033202652399368515326592760605815501100186726448072055661408154093921249460895279431145535920225834390290610354678673707271716077097521115764284773123475686683433499578328425826043914504532592745938623770270101076274775186107387593145654241330527008372636892634028745904793122395010525635246038467370644388539024285545193765496980614164277635405450642864073282155332651704175542938804563511747148741555678669944714036335770212546684522840356953406226474313676235412057400316971336066371801437229192963556497043498162487578253799554180018387844980486516637570086767838531857158140855790393354582944525599512515546522415905947039075214527577192382096459479077345654044700364008058501571031537979698807382638289859533368683482289940540334338198628498621537875921360027151333687316939237317639431812804048491317331410523696549812636999761648049775651414432025069396695399193688105921742080660480195816608374732517629024242418451193420872100325095229631284866275533761319132044439564009662790113098910267501988673013798825675127263079768810096985372550260871227249891695874793234354851622452657661029659202832208479303076793007401660622166505789500887807319831158971595595566413374121727076835000365075564311393770712872423829209706094952707848578341694201019517092135294457919161420414070357226901486065333369997424588650806760416961077447173432055349714694933457625059561378237689859016372204751409200327320611619721947939212227189075794122369150121987900039178600392608965867182426386323697075039302230464916521039128121676629241158730010203013391377544846942598295742638836842198810612273017085968278738608348102781864975117775634802298843454291604672122597966876520142063045309648165985785555588214941832386145249398533269801889850742910329920846351628643644925286914627891922787911469571172377207529086346455899419718740894143190390205643051485447577936723526029258585774603928205943440931174843809729908227767082606869437926688656882451856222893359496962986475601110578138713265378410626648003290484233189256096070141135783298440484434720244662212977435552895448156435806250616726925666151793413163758063892005750151661672432717446517499466133202498337401737228178392369128084095143825266010387837368505667282550406606549673278041027612094009567915788704476358110251675119457983839514155743065045461361403943984693555215086822607141941993176558408659473274577644581918820771227362009544974702044296291226078417268740505646424103269079189340621952073650246532672300690930821190725291025779503094475552103007871646680342768687661558599845689906136025364078871623909599948135999840651010849610272808237423764407852220181263870269453363459824405272290850324238599217404874060916462013294825176746942874652797489699053239860302842390293438349257792495189079941800328328886890212556920917075057650446271032686960099001576953813834812584616582225667167259493382036169676912843230094710492671665555921537618739347518335856541150489797223489983846069139729672596432123133217576007132228384450775111649762283487802404187142948315802114738121234048551602286169865686166830411076349204515433595087518481317312502451459538029555878134959455837054772134872895605147643573431933265284273573426512520530717974810594157075997053259691012286950761009140874953356672249738662960677371074158202053279751476363636831461327996635489459101591330036092871473471559848494669032935056880979865102281810280709653607814584588771443136892137273470822532308046528225102576216612151867665043942310592524597905550278361957589206893223778217514010035720474112607492814619056852968510422782023492710300282175596013562780731882018228652750136804199779143638840508729017713808874722411548887421070199379874339684064036157719476064849484709487149205077953915223389923747509960409796332541950450631981350954849659229600693078139417223914682017947273704723356502102676409657369503882069958738340465680002329730690786989802886444158432680884053420254153446579023898536676815413221939809058995534140557301158961263286249528538889620134257364562104034884768760140141893364063983591917503877259435137650494796313110144326417579928450664620898659122465430242020518086737070210539222758357497852954935471367030332098785965689187963448542682891294438914944592958670564025375295916281083794171348497025955704702303288365380951446208443650153409180667307287251595477346850219418906242608790962717580465285001923986977114648032633122810578888125486949397297370084755913444078998057114681677801027597994086502719192871612935072118271673500443563997762723706601736881143026308335160959483307661421042182517317103777842446465384156352773671578882096515317098028551896570964406337449619941765475803955037613807690186877669129753436991798425396797853227128835001923032860774330984431103926989766576194635527228333134180752613392112015074407469170222188979341794920656088978944279520497989192394994504523232320174640042598062856922314493610577855838245923135693946740961064020921819874776408154728934609711504730639176031085977752391471245575173496907048143269332331339565702034229783437785074996714034459255864313467640445757461404699116325089888723518756653106220802890638599765436107218218293248334251527728189943536055926303154980917129515605716153237856062427001696048138372133374076119401440001025856033191739305044093884505142575645608086313763351038724222927868718910949200180972937288106976677062861754221552768819184332413137307303935200001800954690814152831347827939273902362393699994696334855219068929481017666329995948628701928840030995079091993567708464455781624782786454870496603046372967432675075444502852526693966467917474999507450570700284956697881554543783588237726252762397945593063773690703385883456848904303861123150848927654195033576244595738773753172221129006342137591665391192334940991486707014555737208150262561270289393300846170500111359083256334144094805425205258812351845751111392324311149410309423856462137006035251411037474213440577743167545047331186462131600921838447405839523708076306469613610405651578610728863971068448443692839275033651386469174280471923814181533133397531198721833901937394983985718075668721559571616773451191717134010817454237070591985871354049462505499656907590872234260679790847777092898581305350379288176007650426242926054272425108401816087590592339751684022342718787792175717979521952241596656298744870437221879191117592958988509954060619381418552872720720920426100764840995374012559494474291913171550997014589151045970560063021688536693663824622696151442989887066196814454627239425048548646744869233652329274602195395675426470075353394480154981038901754123203234739778484681971887265384496671948278880541472327674126351139134191685817896555541171809624820524167458980780243900916522962342125960051120867620026712161987173852455067766496132674235499410256618860207205714333625962408711928825681865378260435473293844436624763204245616760348222901519404683339063295490767450129206357827893862118375413845016760139475001601478260082406095580591008850379123016173311414680162687633688660742578367940595210126102957429174716232536866442756218632575757056107346973164682336595730819777554986431372497078965501562668019807598240586372966945971635299645625812444431585527946796004452039640942539175164722006338902020617622396588472295108240931711243309108404671536044805527966400643532187239904078010838114541531841076125158594270965458947324892155646756257504063137146734627048183298702902581287733529087758578632364835715016886752444168500058389481993581659904309009940175557925333953769696595832592151766996282352531117157624314370633943975735799142767112267655240154008233835204326993228408400324115062976514309402644668373669862431319257825784058095676624128855786761314750273137119715084464020376316957220276271764050679089958715359776499368926416117889287464027843720949921628272548228345799903472939468471463303063641035795331902124077410838762249902997228875709629296783048933595881264843923570463640052650259315620695866863463908240550804603477259827607209204974779427360380666015868053156538081666383212775868047490322485494949185848952091272881581698229195301013534430834754215192882968209879172893136999483442490370513273766516827016000596675671837865159965205038118171689517767828963109890437575091059173063890799816765377868614756522817085764643653895923012067707778153933337281259466004702428468764415523674805097144317786804605484578406936526661717275195289469573929925029893947204670553551349452955372873655311574943741464848116303286315497621303372126209624107021148124122218319614596423422997659275334237995658328834797090020114125845204259919514653633427737704572980180491329388664947226010318548462438840777886363680225674265626385870340137915576920426070837530463282273994193428288133933172310913142969347879972156851718363903295766429365872435071680513617652637106020146026362152335759680572750312704308317227803627656470297329661763850377209647130558326280204750189122736084909762664402652085290700223779123554760976825180671642793561905268560912868048947078007501203362062380055156972129247794021433788411326607788373319104426236732639389960270083884037005641026430254957257258806875066495136427658258495522816506542804803492495015920680352945170336811540056789407739107510840880294340965864510179947719382554798883324917856463473057049196126313559092025674952724866968115616812862500217061965140056937315135534046175118829053108215879925603432656860644668228434954105750628108846051409834128841445545446726645468661453398839960571908517917708892643884146824856243275892645621057510117790363222461868275336181615282371971262825891439307276671467724849766685765351093072765049104403779119086718220726159894732232065282539074363702399748009742644621728172292491482045121418798450218009165350656397828699000457033074626206980914081666494426657234851189164451911249227892529746034075679462537137586009799923717498643974545503674781780397281463100907941841580796322075391061256595781157113667768599270509168089677975305245424631990999397630948417306555164350114959595333659165265033082276626223854247529155089209762711699617970371472581884782493593135176494337234526344139728406334304195515386747706847905783308388626853490901472356835802075813341770781576555884514895310973591582422877309322813558765385445902516885993910295839088414663566039283283848840331450970690586329223192499470521814586722220229111299737737056532252029683922517894335494692197865202308083496332919599230002605952745147357881459248249288204344835380825963822530759051446997041548690571561834883621499150150749897844319947451171504742690108405059214200332031281262358382494216770120992957153669597667731105492398622484079104839265506570444018878636381352865419487131979549000078976910069117212756082924944154863578586737715136152701462867733399440492041384447566778413660599451438650137857963469378949900574197222105116073641294263816905437455989198550890165406963477377395691190164218075047376047737010959781885588695353447183741678706680545786740602337884914579089403362707709163461075485500622360448170059384835379582117847322382976243468355050603103871171478803007209971276765288867038733506300011893079826778376169473826314890791956645043866640089242763898950513460172004887782418216530998472143651298650742394136362336298469477875597008957639688562144528866978551875071803167206715345830761520714927213805509515360443513671222851648974547387852106944773555663395637928608789364297636587821440226829780782815887373068299651481105019291346673879350987242652264084507747452573375044224897995979070298010769484820384870497874755267414654692727137137860313984336374513795543991487130995116970536392923010639891512552010900260237536489732999657750574567246442762052895033366791124073850388461180020296866360456844339827869248210541443198756275182926480929130005120015977661289549714595325270999073806421921347222150750119975255991706387727989066777651851934542677504689817216465326518435641964552873152121859633238587628069143949905047051522656944760355588689017673745171000762596370614980845653214206104080065591490020739379481425998909549500642311548228292607734657036069777116416770018541774145299411431825853051973319371932801008826464870884650923875234000386436523237397340827835879988764530184725679197433230427437387399129848274877599080935130489837244517276144330184822426219419348378237886647279978673045509824886763802113226081706363144434915761809646657094458030602112702183020867809329550218934047416419771158658675296132742302879203725208329632129812753505653384248533988898474582892021373444078377927815010757005334841480398150945457163948908542277381503937531623411698470717845872485560050308923283618791163492308997987590333140689477405110405656954925220163733389570302960078175526232198669754522451103433644348222378827353464712006493747127386532496535842450128594177455748470813986331881814056387402658411810103226664646966848976995618296135787495306027190171908602221536755463983001464711224494567069981848293802025227144076834026169533252304245552599235331420036715720630361229686357760743344299807555765773749650046461781867470838982025802754413356436564610140173483595317477613212824117469060943034528071314813136542790728792665736019454838866998419186953528465914388858333419093855602481584743997200907875907891651712822195264820868337253765863274843632082205922872722174037201625367497817675597698033669820826719450100571255083831326640581566626020850418401164388530921259077143510122883659409076479993093502196250569715623449298708186892193366469413478459453752336772019524357842625286913445690600769323020626380362398350022424905387059745041249718591433318876453673028333287383960924161324080222409828904377354137021162756298620130552518105046318636244534757693607603219309971573608608523416191816491394584334403060272367227764814913330582296627481827620332759754938010327005726139348813539669544741291759767013183038827369866681899065004568110578171177212175254143405992597000605008223692526657099707577543346194066136404713753353910138189093694875942155924998446428019193011315607682157929316071425814651647950133025863476838235672158001669843435116081595897516410309867003004710150084102516512212034419240213292684067279376091415845742384961025288499719902919339007531575600225563794707556315179169671323572082544687057248845605549405998823238283635077125306934996863985899326929479206075765497171567779332397725528521868690926617886214020939018071049681995680926643115685708130582410971791628804571790904029703056286223767716134228950405627214040045099747487347576169293974986095406751201059541992291771818866201141951154205637069016682472399452670412020640271338343793146740118605196960470897610854066522654887854009721653962308352898962554377259031716984991906756966141600744502442947680018748043792432461267962498298998479986174345534760207590386154327374694445910288622741399039312511620202728735982867132280133978886734319339404539663492591474106906959215619196198018941193831288825168849994399737390514704493597395129067981625174930943489680348064886082268980025384161175358688127340775801550291482037193789116047261033144564664081476814804855332425981763181098080116584252822635632415963485664267686494748696365777691450319984136621386967863524025753921641997294973076480034226720292765202099210553916108224687345389550678566028886572879135211846643634447254478938189685556549616484730218828358772338964519474942638823131557955092161634715101606300031265734336997012151471193648573201628468961491967893146345904545259162995724619790332026946442253469497334269200073614517041457325681809247194425767514628441945587674153622833645652016532715789338272303515619403941935544667079388926630617454797104211051427317031102039403097195832349534324147868639370006804260294043753236487040035296365393864771895728776361086641650549263909969537428579459875979031054512027874144042739249010034158289986492154713515573104180429893120742316178817051395908841562704628494601404894681434637106164257430837576263154913110056908449838064487150597037514581941461154299499411218944679044395363600847492328826673789305477292002899230063622990485864355744277529698563980939379283303535486809805049363471810976852062870522785575189269084645215532406813236096849624221784252724123526912092845634711437098464439649873651921428490033459771443523399231739091556846937072241160089234438768648020207357999737411714475408138874850273287347673939510643556001534625207199517006315949106627295768155034374652933542358995625795050088342419437833589346207724495938956460230492595864008789060865147836758104721612518292195266194996596297097505546999215677213331170245083467127926454148328342475088480136116597380295465408697472976489106060250104450038272099305494820460583521569509545037909676939198464927434794906156401798600132810848694502359512488495301306920893173957372292377228554660362634292345566266847078128423879829803151547679560542258377965584592099674439875722379860165911293747239828189919819611305694251246042354077803727424266223130008801914302967018900529323649419538101859584900480004070460844337541186492853770378855297433661819740651027356507204526606612349604750035777582121834995109712169573976411983156393628196423027148995997969819965087657674602765891794906429588300173956869536740297598175702038857301313684455728334806169785059745635214211126085684419677203572093985332402955259648615544595217404619364744718685569652330425823426633893742437617075100582848401124821782172016188970267642414806695456552020347782875629528707249385557038326405031563632030031732437351464193194031929601384195791983605105826379167329587677170964372522615584148335556411825369779121010920600610222714390128625515299894497166536094266421603825652892570566334983345365785788052966968949942511572976212472234268946537915994620997435325410612270470527734800346265287260689990390038040593385275373455933590616491425803196470917950344764381028310916244170691658098157906356338076914610611328206240073581916175283909022130354133406856599541599505614965804520014980325176254068059218735295432364678009831799961519072906692099245889584000430897732487379759963488657979294672932155865580195671085281241308540338504432233662055385649630210243875743787146172804061168539257176749990180179377154929367668506670113773863501906149594259619476062992892513016719072400985679595913337227841287268617600010262177237154474190073456185831246461395021513941571734935391055466969130561417473828953855387709248828479405845843370728771558850080021143668661265729458012902460506304890709790570381046322846387435483315095597043029434432002258315065751593957575874272334136357875145861633482159013383863831535773271206202391403083853175592125931187858650380992403652730561895522197219055979858900183668649871666537444185310272031925135125502963985699921716334051759673522759521173141420395545789789545474744910895886934929115865999882958356221931566714733080983076558199968835731927621852645646777765209804239584079819240141854705072831638022030986954511019612694100516940473022095798220664287824281865150944481797940184515420523689982978864247770361079122082337972564979551528313048428731193490689601272730690555496188073596322480088703672284521685801874994041545718719548423891080693814118347186858033553422408240374342854533577145892454033199807211497902277036601183600455995153611552168499046111440293015976342128126240532604922267818017576332948562175679007455325761477765542570044418227215273916075894484862519130916192283522471578693333917386355582615433234861259606368357968163816045746426385228814280689640400459920927365282768291493543033977024666550936247415854333341181094425022011470750285396502319684359646546519110315152602423903919676718181166569960123319961286671909337172827347288633593052556060979323509533981574189288253814370220197359413364664317527252178986022032800054097775825363890910174781740202428957724658205841687217900916810146239148475429352403423085903077162261590850009180717498689165532834432162081390895676968717582167294417992033220050371080609341372538066582614848393451742084196774595936860136709001327905438087567821788762535475577825599893043510470085254662664760166679291442750294515439531979630559538602815003588182367382432950885088605903093999162722242144958787716147631832126387897938720319428233994762733438698036845537600826257538049809652557829850492185065094201194133000453684522120501354471075686056759950438860010825194252971857190585072635044024572130636605021375615005837691869371710445587288866972550725486225344492876887099232322893868727780171677378351926988965168154639073511285960484927140202873586807708510017036769522575916229632123808685478201340739343636012472316823504552048900675740903392059621727919562914695643536520219367089568472599552045406638864341976823959564703453093138900703210211917790350802030034229120639432565390812880495262076908709069233979911123593769811970521388385760904892248629762416335375311805615672620732627572584510168664942878881836054101390025610951131935980237028595247478450509469992067568256246740220858369821942220081349087106250878764423239559741648629927598625487884000784550233508087243815426393798113218292988551409047344022874640027027920801732881685782547505043434295763895246292550954582008835846540842817463155238773206274613898018207548206651046040853503524664725908207513902391373073826647250814478255467161548794537551578527461824233762341253076845085119556110772126971638681755332256497278774444911201485330224044970138867282254871190018053207502752182776837126667212841979982515366970381041092381295991483792649119033160428241242883931838862108461757298741039448197683004116469096078243709083040566278940482560377936970295575191329351788135859890511186499849961848389254343888439079911841440427130120694021990980278286873722353166052620035566298932342256408711763545353939208076656943033862214362674038857150394891505664868964972393833722928069555636952071012780366950375150945074944327638754193006201241962479823454654990991299028304655427583468921211197739669243942874471779899540971661439745639449835939997268991998653122304301432412004564198681316681852751658546948168927706790598121803422446054205877073392669526193455092278549130198122810996561237246221282859941326526530089808557247382619304754110982408031067071602722054089735890564307456034742874354016151833174291017143485181766549727665993105270407840462131608313418974491083834385290220839783862073320362691633069506464051207538010868709389894611687618783514410304916592765894033055343180676799228960788398065212218229381041412086453902078081720219908721578134459470727537239476814042940032956662473645419404854523780217728360171071079658024228911607760370086008651261321996315634313491220374812267929113959320746974182156455651585637645198257329101101242829324938693168910391366875102794799917087140048153344253443242692899320718737361388872494410469340388821448704593680471922244743838859006047450523494858981611710392907550062009964276462986379188406118634175453759265378839978865576799029342684372435790433400742844681377555003956034653229593926986892143101464615748475602417339121465645638915829008341498499640383728318645211472185171894349777633154925079884858271820970353947770513066751194259917655972338732542207347365278568134810557725900554163768624534994598829782871127374626706359000017849440768023030405469007204168340561445483117357168311016822705334857268337457793925534574744694209799841915326756498579370868423439431904022246534026317824036006544568221713636195550031319138466732660614858277522332991907693562935433615534280370895806958529415522844910792047334382944099119480174272620319634927159382256824509467105876607010563967339531846435812134905104481565353554746135401413243841580205239468837674208087151742444827135711607793644561310867140094018601310686274608673110132273592404690427853276480636403655124459682581336671268590898534139076446530853142412781634010058682286734447670928848992028885548189318555188869941373887184408044476961026773633472615260247277951189715377678836010461128265971815115191598507521769298374405104725513083847293062458622597244859046789645632130617172341851633714330576225596605050895135489964890888782747574828948159592209485479940652244339605469430909379406404961009419957977748461960796490358406586839986055315265361071838397358854181183610477637113529144464924552797299358852199735595747055927970395091614753293859898070994763602359431349529992131298955202539833973517821924413632851388467094351237685347598714137216779336382942180862034917370515399243217578654386893384434555196396456096111215564442003761011792533823789436895041380453016866588230160912727647038061881178650146076377496727610563243470017838381659408082090303249804840415961163796514872185926303911135506653631033680531196875255060242197418289421628684291561340149262607360681151350292104113251901028841116692745143092325396235741280824947567973620816770182395876675677299619450032397195188629548480222270691653869488457351609793269810334893965613581293055306754866634141630907498490253823472649452096155155798218601442705169819749866265733356961633739239972988725114535054756869057897688914032930592509986519311981660655143974724818148441904253643903498350381567310635308133044257466380772469864250621438446354098381923172031685010858285254475880763196950445394096286807638933233326613751590441772804665671136740232887410909865658779277280600227605003389855770302489262187036710826429315559267813513997113918470958695843896122192967139410018141367756619871124356674525191377602357294895485631682048676341339661090482659124924038292711881771032879015381531065039214694663586841370451619964972373174860209213050025578071489699760651595812685947328740542271192403285240775322192760656733949184029077871010873318816459660772482712467190065848779722978644990350561836910317727077490773194078053658349974577108533500211723951960505126991188331620000564550597272094737247481280599634004403763451272959787730947120639202933537279543440111611216387713473963052533091878495429703220406994170780444657472100653485080489937336128458915669935864526356592948140368241331489770141109506536472686787776106185216535011701366202215281690838679188719923954060122480769983661457848802831259425761155892118657398151594337471041424908090653510466402671256837035874590089896600296509434637916334310197355942887832865551718332988792513878871270328966364448447387819673640549093344898565525221151685223137516798845041277981332063143561859713472636903723001939575128578340587901986151148142801287952666027947544213133539342016768645239584575440981637778291865537234987454477672719708026786850614613772329948943503604938977134584800618536544442202252287296806152094105325605459557675281547810388175626375614843685362248783794702623780274815127611720342590788901420823202606595083733113794567504944622200808555535573366259377852121994054789909532981836266066580955020122742725495687846378193835892542081406745962183738344391369853775786463107818389862606954546778571649070770519763424477618592075681347071572987797934415918463767536261293304634530490791907419153060861586021160644632029842440442022686182078899509198056252138368542813712162052249174716397687032933188310877684045827079805329002236184043106832737275326114804608621448545449362772369075467376916731346382069176006755024187219917354185453933604287233591762043197728993237183331278558712723460475160528785086808354179022646306429092448028235605314700291727044880019816936272273647847694128121820663369135326151112359791271929824867838018246569371908100453416927308291164173647367512976742840549818763065346046759411961903528107605808052180298078104203894012829317964244857351786161149373798542555227673160086644321470329999288591681932700123628344502964092635550966251392195554273590034361274950962129497770314665043723161259601312920079846228186077920942824207513325641263317388866326769685793542873987800602013594555886070939583618138806469137623430863436584827438959176076669240019329568021719698325222021438839408700105048463735017751032508932003513582599877191301054158519910573825204884310453240567548309847341485539685641648628224380354087897948885110347154842308247417762481674605220809413433089268199002338730242063676019192980391156118999108511542367789325373753573801812758617229153694247607735235823622745864917444948547443130274054925377576763409088622110846694359301250462004220931976816597926446501556677836572733641921653084914988488663100619707986211909765320002683228827320211532361414349049464387686610177195233924260236900641076909514584311541633902529685867490427565614120927662504989481712482262573213152398822049949059424763416339303432891999241169818459191403629697286431693217278969577617113185446321202543460485709742538670809501938179575175828009606059401279532837032390472856261697377071881139758140517330485307242619417109455996684085182386556529263039864771403640227304323182417766021356431009390511466122057991932804795986509870149607785848868565276547685539731686808155500576490040857344899954447055619698605883504292836670135383301404947336025373796799126851519825234776960119209058561387139475747632121127685158076917196482338844197770747339691286573767479507505813722810142438559857354159158006205944114126278756044449658534897232936128108534095205909088881742463235390816857169085797491098101342847104166827237468426459152889090614274590810528918752295366184869929501508760493134865038500169466776493947822959968327139833272409810203470250415589004178939889456701839260478380534380725002289764974777305085620698721054808602561538043167359689831631356388057976631352886184867088659402159314429854680071961530665420363893863415026866711287731157996080847223093028504987742408291601681316083036556990355084037181043984398910085639156398328045517098959678669827479836227664171731353382941226122974820915942712023591916026119996914325356442913042661360935210346047559368956406986514632057519408708286854452054405464954208997943440105918838766334067774847532920905285570994647734475907903103410887393875862204169720281802982540816088241535936579528538332473691941099318023014694526249973236906797363028422658463869762023128254585303935415586021304606379129414558049617869781953449039744030411026161756188063640940008082117652711671277759971949299532037653716093311008834454355958140907082927213216717939117670557104725425616853532849141218490005533494657811132315841392909025057972064985740042508254559318408721533633889833200846092929448050782401297075624134901599312917833930613403477187460228976230102522586848585786262696723241609328717166815714927380627151532251529982521196054684842607132007568057608133006285759771474431592367453568876839883513416702480109272964196221484061198032203179204824959014748938336911384974648821467646808125006878176749914831816128901739471172783693478335941126238314344673354288677305183358415258350298359438704162126805751141312270500033395761789765068011065081776251087246180333314958891163419757995315841377530490629826567675249142288596237199599656293887417052769777351743319134441133370655543354806127234163193082140348557283670713559762137807110097008562571443115002104598386650021194666155462689283802004030727261615105460940246820422431799319888450926725243634763027805816213918237291371301194863575559934338282638108466888727111480737721553477030934848031052132386988727134322040726834224749344239444788893467733407618585154808453037285305355724220940337317711925301778675300697420123860036356397870754201313079814839932591501051455539418183934098065120923164949246724953634498654925036965162029870030716371078367648593478742019613686720197009484268869178578740125822217523615817908220004241945702013702708305840584814842759793905828553408256125939181894603570445947519340826613182937520797195134841200593172354422274922125919109739985408435320281328719779488898936166150894917751476426767711441951074061774719356941934814488721530019274228715209329355300729498939210011725808710644977080650932817775030937783755101937740340386198630781009162006744743529739517979492037585178267156298452799661034548390060473771601019477360490836941682312258193259123791318397390073139010822885832579945599500451776132615379599119182312060720621214655276144197211069970786790617469074247471825084149533250090289591610291334659918969775034262869283326196124955756612841686743626476230991005296267860873451527244152999042609699795711065438796874388322403810701364714119559543205010878043103580843676970979711868949368683677772511548503789379518111019793985937360867870640120040970483599499267282521009211685485070987039869467965846260484247805904832422507088599367175387276969466787662780599568655787938006057041689309082314840567956529606509901591346827774374347189723806674196894108630617874449595680017737195313240657367682358061426929701075851982500926831242131570157197940908866957751386894400024587508856843392869605653929597973931118137921931229861034056272484759691856914013541489934067093644354481890688107302637879167295408594353800574713069948221344660382365181810060984192362570467761605603184941204980941816760511641813656108102628197811892496334294193053635513589136220968905323485763674308924655243196214035181049962740344203417320997283998410627071750930140652822198952608167171252883616724013428489456423274717960099111758584892372307762063840188150089991108943542303847658933934202477261781618655194006341195323225926115514795162135728046228507896505786969905264400056613952544307556942703044876874750749573859310368698574035409778780371142467216912053616208495715036545179280897222066572070456064202790633287106256230378395156600859677278206250435980149264312069124552430786631139545394776891333541686943120839780428654768551721883188920842257091906691160978134665693033042430412273965638734508176496382366036745665632300988657520102700947711671294329994207699223646769452627735095522551457129774064681626873368771510163661873639114699655969577070186013130352495591754646235758746829573280534684806529225155913008005858373385129988196956482980252039832976136513814003480594124899405233549964692651965285409524339873396577058402493811183817631521250991479842688875670399276418990122660128269198410132917253718438254861053414694991454777426638225953270714013662268649517006537330717179388813315134381492844390785532180016926850710796941871811092504521039740454513521500343618994456283367212141724073876549558720036839430500091275320474979023289728774752991150949368766084782263952399580402464931446505707968808760621213703087548233050622110793815533997486781464340226260687574120667881038639741155944986296002348863850579485200701372726913768762524869526380914408063402236040616928568374387348012538348683363342137710016122452996202815980445048036651146765571351622804756676113770847052675548578464243268835497964027883341972285362464111879200099491912272601847861435635248530168450143358535654547164362495287649843596736489801250698633694560593793560105282480867277301130320371999099248524146682616365066357436141767763795785987984255804098880079962629705004679883894431558250403747268338826962593371539294120410791781986045714401966180427236145654331623888062440055622568021414365285697425728929176306757618150275002321640150383479508062255014134034035650570345414346599786883974377089875817596693092453549633591197892392587858499452266354723956369324015609576484997254755992238934004594253235565195652449234864115080639360753546468126054044079058514494578597540495079648859731357296527058699634286166386560181352503643687812106483923823367266675386785483976094134228110876398906434211022555970713923365146642554275017235605379429564933887356704771070061037515058352624499558590831385246630141681285764558087948076392091601441681091957244804429844403766490863326843976624705042527982018096083372878075197701565793502929932059075839752998385219971488775001088256740937966840967031092665250889451196581346433519666389758359618950801979266864169137989992010652039834225211615440332842600759605938914281247037835067770261847865029644670225357184534866492743172975000760334762537588477775286395974828810809432322707371141969251225581366092689319751305379768716890552142900816644749171482907611257847960116148366606397346182106214480074229328992061220581371410030148268385907188313743976707664998245055369196932625001260915796387340807020855836433085826530756110748786116813961950805431785744194666277877896824506988002874515005485171039921073697362348514533368691551006042251590911978505252298816053112369945547736895160145582262581200895916500717372125833157642954991192621209728981330979899774524047207766150413932611094193212873165376556590516604915029276719846210441606716595089449462166724899109977048511540695938771256585662719336396313250199597695279304782308867039394051036648347664890136725869762516222792760993091570016859265460211474769344354350098292261534568570443573349682192367096665390850874019994043602947465441856935187997666385850340959909098481568369318961292765105324011202200476887835705240989339870682874249459910131404753177859559447461885859109409841077392610416551535056211553031502492983912163353406005871997087346743693306997371387516147798654117339282263026701266039104469568706247968321656930543791468727596912506988275197179218177786304143697114604623075609065618546304714437045435260922320290656781646493867707670647914488388710957814480468385868933227113082082578402292580186678631120881192731104329624826117153526088313533173057826338402071777223793488011975637006366339442010649590502993619522366638302224902019490019468624133931632101693212261797709634273687596928287530528167781306989690112896612303962820002975541367144117838940942647339291618685633585266506804618447358297136368858482947436467428601842756142877234821403709999761286123836458231296058077677272836642015254042468927395592206744329776176803764233162196212917351251485548338818370507813546480726784787400509494184792082944328655496739006655893628332669232810725621131973998411791876863432769961550034511979227204689978480249036935066950150813918061229338174285119452756891656058303822938700360456464008003754738974312644710579329440196656026807948502173882354927931393814002693330219839966889673736510645588931449797939200110910982862345258124534762072410844023538062434618545690722549994571684192633507286499208679517767484914924503718295148012258366536672464594437442931156482360164486149036708690619698948445810663230735736204220882476377153423173601844282688950260308358417675206220534398530691874113539842242585233891192989425289638014474786948094367410770711253995733931229335832506454790359474352948808840190778808592690471231999684957112157739224517295130117116706126859452419460631508528113118819699156562729803937030310597238163324363952937720770561250145951964999701989190149245501259184125920614044495107162689961464082261466715928420178661797704467800925134136410937837219565333248869285056766547018575614126297565557332273996952535959821100149534074763409516193926102849951022280591800251537341786150471689048807749377390808417951762867118200705386608482879738743722222154105451449217076507283163957845397731410599795148275873409843296725265708563148864928115999555366438449959820675838746927819401847070500894245476831580252891125211680623959724368162562857799764438325883437231161719839049282268057496456698057593489760380134765863205303518461676446868193348186691346113924105234686445448371024187618866572885277884361394944437583617998974418057376885626454161446971591121476866561528481558689991880849571330293215096673652010494237002845572430872459419591411968671460619115712902056713040382004457211773193309618157751748634571595752704882728023948978560895070501227843679538937900672520321214911946224396420562517184443158383272699753374453735326211841605416502102671077776050966613765077934822900872571519090899633046935102987089198457954732163002267883221771068245985638088892056582148203445844661109272979732663914814893555030938669843903772851944121506592403530987020357020971318187094561709645874300899569329311209725413973169695697187188757965157087528878441700358075602588119248136221368931776471972224746518262502251741835817652223996036071998153110346157013863252839163128673434992980554010364773181109385407245857177601437831220809481705134867249841433751742053097153737072969581333870566291920467253063405791886988997689197164220390663580795668061237404574891985466041616796114136921618871785913068793181892113146752414132330980468656714499772065291561852164716999471737507505709307679045487914826851102512958660463318375592543761230980180721577633668226787782311433489079909578717422414524083153816500106259168765908515824220140571842769049534730672966360738871058686881545415319767932029317634482646761385045726412205428744440490591106233844341176525957681661752526453538420883143142811968010736830334555747329223725586532372431170497542438586433718415477627958797688082081490757974974288887974276703877007308871838844181216157802606109111839261009198323076166504235207120517512282189433379204449228257358119298955497442919117746345981795834007127867321280661893341110994422858554042281398229041896964200241672008873274606880785144896794629629155654735634841822260183189265827213755072941889280649595526867807694633090338471999412155350933019826664432895872133140891013391392840280156742316961276627669850649929274626630820742461541728224595229066605462525439215096958897140539675055596915789988928101820372521440239976416081338074572464181225843432889498724968412099327418200838945244422976972487973952175882374009553130782044392932788635381214427471969743170818367399898308013792310839432853091324153232721528517482207107246171720557474349216503128532918834991061114066181801689911786272689766125963447622728625065511707408421038919836965587637313619939621012845258369279219501917191292867113249616501629613944417120269503589912867114668768057010695587358473603571715494197407676812339341899878863996809624474876048631388808121980659331698662791336185664746531959859127391053504522749365020734817838063911235279433610612605567114345275267914756548562232806197192753235831924593387561100933614911907682467983876516483857837208486566818698109383677110484863839031589674137819327233784980418448068778910633863719518674164634305876777685100366641000431884379129052707093474394070327857249303091454690471856029097925731415731269990489627076947794609129436050766051247714275888465742551448937756553745435482585596788539534890864430680778300247116697388610710478705811138874008962041808559077377085892790261120530157121077904107153509303797711527115552685355897733571390982396807639591021880671605684542152639311015769098745368543757174191128745491382134231358910679921454884586575301883692858548418463422511721892606287109863931456232752154675310377909876622470397660467640237520203310302032738281169780850848550045167217674846736441064711402725898897438817865871742602436453867910007637799897321468536552353344118268018153090466427458483186065022484799805269633343083107510175384990143579398672527686246370547414118188763054737604660960502372054765019323239002260703524252113733668373041016226498424920373431737874246884569000792672898201293831806229481266365598084069526432213082716017345126084952506893248917031537975680917229918651542934895413452762318914895291396095210647393283634545840799399332799835820167909446680584518306108176667227076435580437766089261804082928623873716894669947229986050039337818112015873030976520120371275767177350459664604856312616850674937275881952272856166931979848255725758256009694648972650878914917954200209327498118682434682307401867789241186161496485119051068290332885656627335174268653464980343019512374100800863160298575472814841585024040009832115211913608723036653431062117727151027370337993696729341464149564301969214508204864696173378124920478892961328870053375841641874340872875075460365309716175497318660339379257868876879815126422987896079909208053983824018506224164055875243217257352571227410304296079066315501207840843445756327096722277250070463859764707711269652871124829283436543670979175674715525080435573329079671868519350648920041083459803819970179738806183578456385850240602682163480554160438134659447624353759729784682091132270064507695311999094248940734943866461161664157142962513789113437466369836479023347305714507987045441828154526376759779530553468738390001323520416402675835907984132751501039201341507464295466646251291823376909994116841901399037924886683706726523574793147235293827295221261207837681335262742603396408819052369203471147587583706999682495812477089516546688225119761524901190339145890605455271246251832211831692647678498927897549104796306240397624460754845819660147384762499034468613203983020543259721839537570452826993881904560436723341545023615767100316491695997624135426602301411858771239144408113230103149934925659753303095676613411498777961237712114575160511686925499447933643967327866817344239984267616076490732885982924181597142819777891856591594491360886331266549984978882936479904878785582924282806158874509617435554146658625860595987120231994343277889523920555213638553331685097169722536383926328929364768890842856769211248735414501470480419520295597637085263312943532444826566190840709657183394642818170761909440854647861045692830543427837461960690672586480935801067965562698373762785891069793418473491757003880427574716495119624385368668842561008293453996273068733736466592221414613306707630450591225961277282163287690428369388682893310122380005172417521940755328092528795073084871215703322930062131374836423319619783709624631220062155388334068452122406941401581913362729668125529305757526074783554323514674482195682805899702299551263838545478133839098509012858081894353220106131847435156375112963690750593944587923307691607523728919160048821820454814533944148770286200609150938964593033495513637592004178062165875389500180519516723775141511266956583725389198197797876029859126624780676943437574203335537653442541083108640131455049398769234463712931918564488341188758486923956295904452215413269364117877890018957758578894995162477556486905669747907835672083041946021344211702418272637284468665896934128490756483497076431897821179014483460450231857358343475181820463214099908193747541020478037866232677190835782940910661130267378931366401843822594777124312081442243840704610763727943802476578500684887893672331545356146443767489055324686008589654500830576869530411361647585196245133422398143404089114721140873461432434987644261153172865362484126953273897061829944126389338855501170140762457906142702963537845119883014503006295508971472849651225477467190267320913600198854102182684343933063508054851672270304055471713204672394592615922698273359269212461333937794374991499085001802504029294360353848092576542872473617352881273298770514290537047129856270948394585132043099421165533433403948793582101299829111777427673392672347841158672495351747818736943806800861664331826462001441654176851819199384146775071203203554300813476840922901141454330621565549390960848044131418038434523850914446041066678371464398065934027646488678938151846673976116703480790129958847165644195574718676008160333220853447494376657797926288149795408873439392912239844518598318666786587746734710258339287783460960215340921535496082282279737233388287188123472466481039519143340395185663619929324175662256682502493298643617647949122150904188609324842142753474935440664479428248172047552322634870139964865017958879521208917557971425196809347631311376967911426721506783749796524289783549277206604505238862944842727822983867910394046623437885000668410065685715005302285883280177152036522843830698092193498145305571891547923769936950962401310962527793051092675077127370053447381435737442476272173034852865544065458747633845601088063931371981024892223597100143144978902759713491526723416469735589967757657312368660990396359910970810187173399960011802431228884343659915366545766644959350468059620292453882524804501233065754932594537723735192536391872517725776603950011623959849325842330021706630747341144986028745097199457975232691512610609637968226004876632734958620336584488431889710852565616851603128907702448554659672036739011666196006646323989071442669587507410720421332866668782862865283146328878937571589321139222016497569437104977471520947966071924071794411696245887120322871482725917972959511584403319281251235307890770648950994644526876611519670556615018627723824496356134417350838148331034917395238048529773875996871717655689591504568721617617649523850165171409367162570796349826080513261582500893093622843824025593036813861016620517069492175866172616966289136944540280311058909465835630097623607709846178014286701976143728799426190968678546345320442437860987315545418915813328491815159705970249330411224234424144438052510298539465064551382157902185660777372614401491071081582911344864622648295076716830359966629163548455201431527715496544878047371943901563855285227918567227292669607420024948782974224748423235611749106859513304539888863498417203466875022291109213262839186919391900207419293611453615872981868505174484161285005440742002659367245392530209336161423002327734029440395293449868879258001529970578817223723969795481158288099826718884380802627443479663872440541907883639397406206508413913603853978620589396026810911833084931493410554917317047007796564796298910421094070257661553095665956747858064955748612511288825451810446478040891463896209150693677793010696365495327846475843741664236692452010865560487118586846598452029149742768841429545399135237744683641375161380821956922129306866004775679917110937906210930891668206587683030283665974093338415179797958224127754556068266441306287486981316878899132473769087683706822797345925882762942354255943125747840254654911875618720062303636574570724599731384139667441613918419168211976314019534068201198719436081501817238543613778653092128050816255596105519944182700805435872848042611276910901917741323110119463082401147585603585950959044520537197011989473992043669570459261223422916422808343848534009685261131842293259424462968709986722218868528667978931009254659147624813946997480810644475357917217277343767572442981908978853386731790378862540700135987694135225281647958499597309794040761201390795530528918759865285594586583796305134150647971660986586757770467334415797041743900527547533248975272921781605102518622756307939593186682571277756786400242562236546008296366162629052001391715353159685101194609321046937592619935596356444165028069332630224325003996335035387951832962294616446785201629502972496887452303578018068810172527596757001231924766842551812757381190010732581002664464963770269653774836772719168978669562507703644800013921904833995916916010798298244348882397327137993477249218338532973099942001471406064541793315855006158167374036026709791664408691033396926098200736418307767045495370786950880526637671079616405525746118962076581344929215373867321142424194446925118897488164847271185843332929561882603686546863521530931193112861828022278205579623016348115144127782270161695760874689837627086608454881243147688795116563200745417039442358682004164707979064864682154560555904360593876000207288839369803061416490891179667416065408192056316337104614413931322314451698626542117115317648623317092796871394154307860338328792477623574091922120032766349605478262814253459169327427000084400978821948794194412758411160787670535352495305033032090507766260071246759087737197450165748820756942191549355066081966417114304722256071006016760848898993974052479191887520554497712635535778590300147221516285614608140080225200768593187540209295163365171848889078139820141550520000083380488855895301086073517514662143503837210960819972670151094559569603830278943333280051463978170925076361778160403430680657564068338242020315699364381945440694475934268330504848876268309400593819536847784984778330087067903681406139238793765803816540114803887983245237586550062110965462150558529884258750704282555646998034853011461929278928715213418612686817559218070573279023235195889649557377373481770279234605141645106436063131051108278919803114596041000443143996725392461249203359873496176936566449917230993970001464455485238097713346087634326355038983162647967858611679417010065792507007348837392400692794023614929245548690715470551413243791930525441672970474955232774739927590523669360209430918129552599737942173148543521516700878728546486030392592898438805790147934938570199216857960254608677166023850301804544312094420460982857125231809806038237593648947202151399731925267862720386680656621606809514696326520344401380294468306597268454639052279262331684561660262541456794837401626977653287086644262468727421887060515586631353251331526908436042876477574902172582969695937372284069615389051120385292584050992455657592186519376693069429203045846395031884376887335348004395192636526028763037618398049631077341764373818371150173271059615176313975358986700486730595440010260167206853525527174520024981032770980530578973473084974981197685261634634962290942073727867012235301791871639435705097889738285567279305690656267596474665759720553501906053098204227474058970393008340346511395035155403234054742479008329835823052870612749889750230494974325947062425166385606140859154717827969284389644257462969504376600181465033679617957578547901712682565067557000434717339792238570674757211291495189109897095896014384176318219914517996113798246875680302366281017394579288917625656957397588023623013255378673332097776128922068253016698950713969444416901949459328298629276966620770743375789868249752433067647218909678458724838296161692294053793945314504709793062768990183433086692662853647054491442293840670646588048394926183585092955764562436854713127395202507546521976754459524620927517313427039444570322138988588057653617174792892987379294249199770107499368319378134172919239978613920860513829200485578199970245069725595482448513294304620453900291311292530991082407970425683854017457461853289514393576293141612590466054805884808143978594331367676129035995132039124834168768842245911360655259504475027911759554805534016223337518467347348026122515619938719527555369617929112215564129183700726956114085742781425654042399549519544509401818059105202735315368946383721472698704183920791326718563130785201406346665029954242426337673380059305714355300958389035837056856354917758716078584280085001443070492860641591695817555399064109614204316921723890068806439650033032316398406169840565848819133372803391431403699983698520710131867224478263883590422325242338288955716467264314291638542710134692090792198011080607982978611313915228186650981824347226496624570617658253575033270699324384477197727121941664377162292681149362224896664665464925559098432222723511854757754597319854026696401766533634664833005854306000436000827989860356720057811526466399769977526713473538112220769968428973241376750228429809298601488380220751035713042458489308140653686993899081258352083608674933871160659758239455369788886510382106872083154358538630609032200016062683778406662795498698004290399036756985042707529888149101141542316623560644825832204210563304757144205960781733745558264237185575295460061097667949887530109494505097071263024520094268016248760154486018123778841160502097251070146113497395731070584478669800155934725119812125614841576569320792222002765075939644578605912368588806035308434900269985175938172879146240738597660884723165391074101771280267243962081403482268611625565748816935160851505883137357079947637425300277829948659534725665496272902583831332758434982056980070473889576717940926054830975628293493099615444477245414263819810445663656968990227181075503232863040928210011974408424976524937661706531645679657447770459660392425063987260571245906114941280399700354325097739284036569550421845846574337450011298444937746488036549961292785905731712603154516462298057819816950946746007802091377421046858568233855552057090766316043644417551451254043720063421623902895115315654486761060965841113321203613139085383031346968535405908471665289967899782817504440363937080927529898290072002236298387534475287872798481368315926040150054957825525963027110442716767039789167308730708085371791843200401964472719994151211275015348630515592035394621449494472610752259160197326831707651118345331741194029557922013576390427946030146283145301266490644936612928277818759520062983013683723916841190218598287641910681585106657901381103671719145149538906061821769037209044215687711041461180064227225950797294424394360154376859462604908919326372744670341839333725387754534526788526483218174316909355035343090227925908391491311139900166813039690145739579906487504196754889163993449624265128762384005393995906488900283455184447114188272632798906917806379994689055931566930899174343050955568583820441760453896450904563011335570591658908076402454197022559663748561043038653407041588465166454604545305668792398078141955389983219798498330052990369337866910174292313651162434346689700762958203975184068070246447989167061613722223109590215575844032680523784153014119890962554421194505892068063490272680837421805400498769968316823344491393770256772550481696334200082322434113230155826587558588069256745648973345007883919406870685804709505870507466907223786278202150852373128813979374690728120419576223049160263334197871643195506681699301728476554160583877198573262558570476248735317222943702172204912911482296731965334972144183140113931939476606707488214935380689881023166657933207260571824916808441287796922238659023884106538723960326541665934952928905331233125778543431369629094456178891908508426937926235876608041572542249281523006751778061916377843260358917407541808529116068917971731480705057721645892532198922497705115198128097971031167295635448633715030736799334905051248443063440894586737644378386870036385283977676977189819307693692648196754567672563959071828544701299162750140691994448873401805717778014844875734446814967398315031939213186952021723256374416718881110898516097921267815709852353328115897208867272379893296589243340231161914034190093220807018539504225121922640510085368759063387849490169572710938153366124689767563113954354047908490962939682137940892047967231604339358323705017511233188549367173737180291294521320850156434374099875211787925285080282087768925321241481789760331396146024211778037599223666095245706023957829323579285655723614923560262596341881165064352990201936406351066133884418360630606650131105236954624245149052568624382605479813757690461474465641900464341520269241857279154631762709408447725841002932622779119584735723016588429554406411650727441368717932445001845315761113544474714869375897502277513297308540703906296401581470615850384165299873661991664648876846536683950636133506061259747695398387017602883987596297530338084191288836044251792376894181958813084209248791097329648316563690298953012522717624347635299039813493288463704427521226957206580005378940150402393914797399312111409781189110128639043729693786088772884094792369388238819879698690960669968203922349961334057022540929489787134056673538247490585684270725073703481672388664961265717146060566555543396086846803885453579753631830041769967012118865298268893020753106156777415055021874932280798562306862157450000640506371742129208341320076543252934207429595318280870420491616415543450639720041508092389605673628676529748117271550618647344737941289059994125458364932915154314227030398615156758640184367505507419974653079457216345116534423555320147741722740425049824779552803189882361961655319143169589733141182642422987278922558286787854390540966724594606422709435693168841020324189644189530944432848195671965961080688803130929980194538492033956621671019535936506221721097195214633033828981520858344857971126569649608720330812987518226871109669953682611562937205786279133871294905440511266157350279549593400402163828737130223740993196511078380406641717256363961657515768679586598486971168955124765075596700450348498440286063606040496264296871239153142858121584081304522401710657065565538039861781372056944830907759258692517272314859664871790608273201955339864582173740246000785437213466975244528382925535728852329456472387986567735001602402598995309315526604037059917154055807454446069110168491249546202458064886406044869885946031716892189054819976491453860247883125589827839364448167517994842042106825636662889523721904374148198311901277151498816846926464891250011302629160719037717646357256910812168032074448563584334564774336465297509003352867883449352296009145392417607938988063019660319069953677631424147839491233402907901429987595571284550916004027092524735465499200597215415571906238862127845057099274868391044140418369918011263577583719415594317371097898226535254630191500402399383850028811354072102916313728395079278702601166955737810106337249896050509682340139426605146713630867423726462467878053889857338918075349672236313229171472012534577217066988915197520311324485775126561623196570518112417316042286999758179674227299174011272793709688036181564710250189867400978120521206228803420987472096306914094922519635467890287462948460642904405009806765955465734500322027050886788173466755157542410823402362560488495768199061546413122140253247841620061539121765960963889019681004172320493248580585110603537984005962413986604271494414111590824442734058189668163148729764803685991264272894458122745651418920206683825966838884621959048662371068454606926057638431709515842122219476266499177104953439425382426463641490819344216251143207281163627304374555445054503864043376893113952584212646229408863713700737519209946727841971343329318362406620581040761531572038297081860288775421483835007459443814647411040072590907589650168905079894307731721673119894377455086181124624863691924153765513987493830470329159914543082112011742059147023600618862358695471673152144958622724307326626396344214832644171555293059916766338323620444166661758610881808728242822598623567058448496328502960196444340354460483912916963026023010418579792973270740167982359365309819233188628338138108998859265079867104392576436824398119308228177535745936809867378079606199746207080630190774602147910516830171059053432982107242492442835130889617368709648834067417682247300392328359131255238995203097916204485493092374415583920998957189578509385567091298386433415645054074346725658070538264785739969020627820699161546986347836329485983679648298422042353920064032973384393454114034618306296647300680357522876133454372023443119350671783825758489907095086499903496971559676328114149837921961004455294238059173232102391699407939782961871429809605802861060791190735003946878729428652548582902491972151403127559436466622098607922119919339397398287182984559811857109768543990269299210207778911608158862760423613704274300497683085050756489829437629389921162721333364458700488405231075079520074183336095577456783470394036379741394649573861594633679093136852282941684948258084760031444261580373943659144239250292866084069813712278060059732355210186792793597718094457780358344530190679608073810136902853881855078311416102613515504562373866538831123309780086299154590014126160580531295694064304673852808782422881202758730593244992898173888020758138623824046755906973466906274971585573795659438895317979211599739964392686358151190220905239609770640910739058425726071041137784563669600577530192718410952484128129013531096871105072284515393981036902548046886103909302332291136934097232818622566371737537222533678257657268560118830032059798947949517020441669487920556992526777107315897543834152857880252641163163510354014319328351842210273119337975556931318613191817881781108951184423032774822154303233539969030731869495119356178676907391617974472449816981373795363760892336959596779277976598852460990889442482022681599302803761995260536410018352532308516541964107573898962325649691411631327944450658665158633194751641886589304169122174339068690614408185917105990558263852409267558082401567644459005964880079233846144814312137184732207592622057771257722979997889556316033282167617675787169104408602276704087387314372630565038931446871937260847075157397058627968049531281276451657730375821104007590013709312969159757459608202120487087444120995451957918731689773340195940273700285670196215152065726424506950550857647683477012532885822001476618392014222410623272091111602830333568818537682959163123738011809968568267695625270009573292173304586894695589145608341431821695858432694448304322753092521141007843888896705489246197914424173653860188749495725619429398588370220656739510393728963049755538383567768440284012886536994694910812938529955202702818778313145273804803933688073338781040830715775302758708487238228315097666915238106133011655822640177454304231878995678367340151669127567873459148858840785041345674304356223577750741866243474375619750697468967319318459186477217494523826313305199910914141987538117524278475641375756739836577321142686369162298901281750026571503338939329182315676091767521124674018288245917475013220600496744511817722534852645404515791715361791296567514342649546557333270257892600351997633311968930855097568817774980979061131973695508876855879457856268688719954568821392779899379818878443463762219487805360123317306209346582298540256632222868550918667756683973504448195260455281422984443469238633173329273088099120712280715581268105504077656836402946909531304890440520514292839752021234690189803772036413803516854533923405454383709696287659267124440260896401632640405369593176763459710752403760027116201497015819801805203969683630949222180472437805274606398655684206469724784017419412770912786462831531186101824485793314945495097147746444405156624870258961491905197714633056316890523614671176650150030279521607695272828727959757053893005495015804204042776376789753063277482071417157465195556995422728465029820948247397961440397319403466662900948841070604043293180441141993386250620845193607539569770153583578674316799599724925656745145130541169541747359421712820628260691266134782226875663015146229429345056882433227882409233139014024119153160910732355008249605130933163963516633446409514096550105275982521270514532627606942690037833471145915209816451421811249472063168933559869042437484298899124083993102122352837854948590746176855976343040105549008131242220593856953590036562191357660755717430736374921162942056740856572519167380726524463121131871625673530646277225683276102759081284684699910343178332372157756368569180952999013393559358713853760566304552481536801503114750496054628282397877254621740901653130159540901864849965107182052963262242622680946461322858914034149147856425089859259490870212631473302145257354546707466704027078122272559017504993390641906876437382721291115887586599649366728562842027833216084593997615265294836770506832955163604733590748537756276450644664160808991864629923609557500943328016159812757456201337085316820949399797607478075772380427834918767303255254773285960506949665894415348831433822756050398068212759839873703254783311168321725562964878942411640864370531160636458858559215344233135000553054022183685138260496168725340583796834125381126475329234475213064010900696965660697032319968968080087054353897662115716356486151220736070834029442443664526884239425174042132642658994275698292232811965276636595058256176980700539392720075273756646443068716735593267479627990477480554948070840265565985541401365500815515673189128339847772280575681802333927121436889871119479625214061950625248196195361109372720085409969873750464385943486163120623650004094338862668934370685817053966642674762232869970771995399583027983886889139895879221205804988195431933125820923288834464524171761135954467425212143342964658054449756618536356912674224191953567237837356168471275143782299025564948623375485072815309700425522859355819725950985333916792700789343051239828080932827112543125051743452792998357122464013993873405079010605147973350332125108163698962280222075242047629734042728560610353096896963902400504795668462704387486488834729810416774983476518731599928411671484755659649019520375044765538398081432916098290345790069610875229253465040557954846844391223112870022170156550499676961230568270904679331861840217450989365995696469362356473148146370630046450306853195898357040891803945740926307035287800790395419294064984795519279484045616804933489434381813331709593084175414448776823428855318402783044232553721282644337955932777582308744064755611131302390551752249961602707795504807792793043291626582253567983157606304732280343733069224664122186987626427636567863512132291234459189367561730332235185197286432855817244744092583038811942651994690440079609040079747421580948548977321610249650950316231434553526193316768314993107983891565007581213850067490138533657734258880784153118947744735157640305756376945779764969680646029564724589565303305936370190257236047541763358791154898349801216039686264707651035694725844149803496838921764783461379152951905959018390259417559494466765831719059845727743287971300473859035722413892836346822864916711502781578963618267179626207934570807280575773019046575651215779661662876939184945164707564922065292721402854832059590862340222702800949745476972181489618668941991823283858259873577337462730984017942025334932336681770692489714619509645955352361762540917294384406819970803194849033750863801374427854972193018715073227214034670680678597389385097705058842982285432083453010180082165354514382327384654325727303674153915961581823563428668397136276588268656719642397024081498954305987246215118018356595355975958273494467706629954264218918656347414012859369013279829281802557366442734451733069142879533437118292583208467258004425844586507287589412501134873967743742024100826969538916688976665120357181370455303965708265295363708737801652273184861671193464286529314761061263828170377601055187365126005119497134204356815487249445111133700904262724224143886443715019573477370445467743277233028017908313213603886085606705564152774340962659844476746057997947122457245301753568554235739287253759559518912163651694625339463674182404826236696699124336298155948883220068018429167197907854457921200469932627239019025111465058680164811312661482790350155168351614731931558277851105728503381401263202777394078687151875575528737816614778911723151531963637695098815720820124394294595798963973950389211468722347442852622619708242735537154057089567285473472603774406746564578483958361110099314373071362803599689040055577235918260753125822827100239873434977029277313375793404921666461778157340575617497060835558680513240814164822135438181232901533705055565196592126568016868926771371610543125549328781239680479051189373501930950478030381151605916919493673420487960658588018367933612630467784348638537351598037606328191646668648044924707420141193751530169253342227636370527353445687835434937266175282293810503930954156499532568779799286548420260312274730475042742710097619935370611591627507210529851198347794652051121178423354052038939264031826402131082016712853870288615224091774800178237585909759214238612009296806754367219279660799661011213944212410416625515114155693856833748549255248240617444196889417320572738650166685255914996730991464716956527492250531279290577118057681282934842088954331826322130887200163105930229825691060994720993612321759540942021301890731416687057907664680045041165163740292791916770669606095138640485847325315450607595539639443472696383531793448225075082165581680199912872424988957932192830427641379330164045299232791628207357821132649343118613269167203876661341030841359105745614250949883395441080781833254184466548990173295949104296407033997717527834750700294581505923337351059680607127406383041159420217134624253569937570511135200565326974343467519779435110613659993148775407433157001845972328425713377449334968810474297620425871769308624293375986901289877526624115719033389502208872055104776705637289684609178302668455755505623271457460597538466132427879826625848305194126127386928487650694739871613638688767704889970446415542695852974279188542928332388808266142960977156467669570542511531191951838091725261247938677641274428420945811481412577254428507451485777541841197347220033424821756658127052236653461630427497984887441591787884166550880966504814178943986574988610391897524211166404531579768591628826828587313400378668500621774791575775253852628806983308460453819974199480233790159258404554099704147049421791297321965757353154196551318751006158055090157834630969560994917986954557152081604731909598882262688734693480818927412179567575009106600627189590776396819706033258325792129463963466751046438595492366913379989337046310245900799662246083590010042552714399924963279011798175302306550391050918942883631039971635750240063063408387688203571596046266699782998445935300778433495566619990289075405777271905593617499613794554642280819582629792370465814035265766420041721348515960091011757290945494577252921037563004669433519451295791799562758537425667555989165240549078421047755819636970679076327234489235633039790821857682642908191738755821325733130659300036088538570064317249638823817810300947424688573925996556870152695933446375717819729569810469180250616994986791695448307333871339321071388792491826371829644281200330082763470396784184924091358695914195616515667162637606400759841662226016408228791882290389641346284728793793980554095282959344917407377063995738909850026178236125366631110926420256946142369385225607272220195743166686013620304755589019000009717839014846577663559628839725175911973704941872347582257440242092543599959369091199145966962272503136618299424820999820509088526321232316526379101655212841263986265012112596811953166021984719207544317934325361282042420368664561742335388907020456731644565742745313905641269551383693959268743279386050521273637100039882503782790845773980295753219851627464168910584504280531800873059033296619143738932659115102649598111617697459385235785398155091788224640413554499225855331157654446905926270003610255062069561900542186534003999840947587794799474356198658782110949586089298172675666360392771695794045146258559411323433538158626485152224276195044029826396108068019711218972700129093476306574113096981357150950376694060926128093798090248595183562333238938998720381033225184359001464407300465480958364809982335427889172184908660838717352217660020090785765761845618883663839776278322303673221918641257529659502252588858291646496355175113833636253766431662937408365641310289671498822433661675208516872791512051193557966865136496397050160243973941680115908764264361781432171473911025750944444637667463510555095087659368902425315158578185069743826905804302198033577776743609705255949455569341960035575144001813364953865780309553648388171657648420596166810194453219435632958849528626700684856511329859667622670547809192441500095372804463790407268449256884710918140936486466830558347253913249990615879822062662302148183002399508650736742028842550028992750432271696910589167052461425786919526706426422985624377698246957285152685645307730654202786314753240817080276051407323782638694327249672883828332179215047347952801925347882307640966688895314497901355284290360726154752796197071615196979017440103630439434112651553843317451796294233289679017018658877052471749507511889896469111192729487108517820622902880577002763832026416682077986920509617222204942879521983261059421321256723668753179022374511414260747666096996394524765739896112469526977927153710322738181822347149685049447502323794710464080087240469574970048744230524766638406033559800990034309528511315413314094764883425123408988755491897015205895143993039358101285075473461101628877776095094763932927800969159313100661992108514886959674170234488646210807597652940578687071123484507614172715197609779571491116608744461595872602480239709717703943052227935276090217746678589671140817062152626299029829026973809835337114694855457455426946880273430772264541239613804750577212226275192293604298897022334953854300738003148838407206129198753249626659972681274646880673721528731225080407307496589299934328554894576508112528638902151771933767766122925700935183233685447278350594334507917800657351017034297136970094197527655690233757758996396483155148797053584663818237760932449032261912482977813614499972234279069593208479439610391004878430587768572427293543004825262459728369536927658887965760772238746235411939672441236161753035908419435612469859744347433156586096568771171635151820273988804562312628037982654193257985188126653757146815510112036575679927973948140886327725413456819509344981138251977655349542594653526944599755333730583689275909197684078467598747629960135811626491435520713422713486086356134106186840101648486445462038410639020505994027927461417958418222311039857759476373540478358905799691205549352085781874936548906296198448250410750733529131610144107943031862022903779819890040523927715253697222951984016959045889356948606412346946897445718265014337226166201281194212374304984221558314759252403448848770128292178399779392855456843997029949031613830350044012530791553668093601405053262879619402058114180482961448843885290096835882512301744129103924901539379740645852729478285770409319050130291061269933458491470650774431017555778207139227333723213870405663301922433251736959213357777209617843132233543645277347872127537077776633921293727257669503393780111995697236704867172449593976656649620185597034220467331858071718397996017488254932456263168827317602843007722365173640152077054063456102752144161332925501813627345076223160172496445787226934532898984266504364958668143176916807087161633736359745839737028358335545361364865100548043920518138622893154478889169138375218216090843320535600690329266539904974926378285090513807937602520679538450389655721776103540637643653720911164003266325510160028242219013664277590782886254839889834143236485618406687984420737150971763516314032149145090204511290658848952704313369304799053931179656478087489109637583196926415968107110146862904003319727919674189833498924703685986078958811251400677152794993206579155228867427262661130092921525272359997759945384306051995528628678027294788174331879360234674084408457750315787188505168329196981375344680118764898170597520406741932613012509703695912805948768889960000799131423862710527333176165692591369596698149478587604411400621948197556399180775731164154631154742409123977820019179018396373577643839256473395104251993255760650146642788660320492359800417295694913583211406940167916764184084083711073939115071492580995862113453113310542972612315853964105279203333768638880358667468908175716080030698215757155176379453462780498241214121159507861301677359057131152301425536236303723622126979373346370836648816591793964020575726992535357403203582511167506981496771915595804420856837345999426246932746063327672284034413146483974554118336392599497792108096936115665002607585727211538631887144660130751640215188188220327519784816975970004422613479308759461489140611266441291456791079886334499428279120917367944954490885556310745630447460061830913539495956704813745708881681861816468943532140636260852515295971281039700799028579501909381571758463159231327606263967110039130091077556822914347307645125074947047182981552546569487607824247111600457766876713550758648880908309093196501637901293213079560163212236849984337923868094936552147909376453243132601827717925581771584872900933367211363404364265863508270750162004077572559402779651508737074175222053845879525345804067348742735934400128953547525012042787720098890819614239943762287609344334953872200564775677817628808934743980012528384075912249087592592759613505283041129133835847677667911839134994646928265724963683241239411085189552822175649264359796108143711950652977200720886166369053131263447865165471275229341288169216386609947062570705294973002363021703200915488326336489616450990437171798349879186901186549299897501867686731304681787869292346983443828091959137082960520221698730472760962621349842423386389280605106247163186258856171295049876684756155853520046999533733648120218199533578339120280755881438316036772455338753101077176970838038457174862755005053043907376284225782480611478862991469781616278504720808887403414589821357420921306251198248859292025183383918212232537864867378266387418077066118023579730534191879960990622468844757081506442107156639315382577226508903930941786880825748029384120787002596302717153050390543408717729367262904366591738751275393992271325695932060249652292273912351706513051024974290160289957314721950667738651299505891090520238951824455975990485015684153832723874798491829204354473134146145031313032687249856542258485728800405210562939708413642351219551923466107769419026443146986676381260180581979431063546350447021467345230762185288810873530731161684037841298992412901106968952178915869938828937532200203287786891352225474717648261656975517968261626771401803777708344526887467089604384845724688092820597431791528721409071932752730301231735153037015734035165421547988921835513279913022601243046741307182786439006047007464274818769451533604617281259220651959071119730623955764993903061626594205861136758830468773894459066815194207582125547034606675472711067819507411294467255099456467460333080541715118592697648286140188746388601713181047775093905019972176637961118541075259504552091854294075437778905005552389343329848704865731641508895140279746025697191431692162482694603554963656280963849390606174399756749885842800072633170933468274471475906803506877330703683181777150249585174721021092716651503841578726108203430640967736315799289482757062804715381768035976173279567953698487893618294706944564640695946439972219769870924720528492490741044778794922254010592113649240201379805873627648239854277065987612406638864978789203769361146709957412072049503032985183078477196347899045243943473512936673108422949431835337771988907816344916796803843213893764481807967233251561765378379082411202597777169441707554754727498123500010046317196612026177465603926461889036829554216878996766311542751404859721894614313596828861795297739192068245973381593746445913775807880960246453173084572812991828724931966797394639313449421381893913910108518975293952199478131746064218560816051384026454636647812271400359733529269351654335563105991202559530881603969128456321996647457175842894121979003533194962188943852668832595537190855096411696207224343125222670250427425549757257115056799732196225431500071308194434026134418598621717047857254817356220691766028416756824427741675870787034906676182834085594143009805187305694064550693187562637830225407858685428525738777782659191058908631160184319707960672621054210993541048508461917486513482869207088193617548529115207359302244089061919376048087567832736540074239245720983481998392336325186757823409929853125437474397196300205984402370383255788536533868234437977288224336188277656884385058129868843438161134242651478069332751905517591424146324829609252218929879609093446419473943697229696563515692422662636043931494756989509152789699435578259064220529086969510464880029385856105633784896433918269753739283835965431520107180098228753327706266852143318766761883305799632152641766041470896256985380507882218215694033109766422271389853461567015344601723026909177972721466545255518577869660043369663748509608694277342370896134287739027292921240212505962046345138883368517323499302327312010059599604966844434502325609674090848638160273347247495860051587634258621282259721158473379763522012585681407627111627886143496854892912214817358862691725782615877810239519025356509805758505079771385462393675580244967260626710308640065853899777998058161481518911585365943702707124527912431495694234930365831955346592758760806440232198652993190719849990932048363423480791975069391482436731847123592180394777184694978809543918570131758860187466140712129267488303005805688043310536439261491598093458458851437398034297021133678170236842961949533042027830670859832923613209731648364807227359542521953684708772017911517719591973831427030007892424246852215173058837115668582014284110757674508523206215739161902861886713128419588241015421727356520256471043180882932276225233978974624085591252879462571173485509931696982528441280146136405905905506593062438382111436625479380600868544726552113510642629809412782736588495584909517903717939229431887530000370030090818051427169803426008665264607174226120562610469079551433601778739067783463772223482643206214793053766426660422239559983182737726399305638349692962256351732672939508582889866402236943240595095317138283493893568256517661489503005436517897796132363368177328213596104209660935531281936158254038403385625176259673737522619770852920749425787120546771130113787901153789629712131596228850262343067337980317564933359375373901758697161113676738812055712596198420596500724495207933893097876004164409902057078435665218208478208987105514993082796405952148857175711463017776091159112363345863467006507031717955868283758689176444903814449475812206551397257175980419111828081298096988452346968178731421728267947062917834020753180261631891126626302599606217338600726896362276761351427222123494807751478304024063828254584534803647759154122305841105040399081047885044474948106623593655559325425004591158332904149776891911877640289537779321038231155232635358607465376752734409469038637482450331321385728365540447110653118072871819729772251648487884854759441187493441164260597957994202055495436018289111570008049896822241881426870567234020512588566617933374851902891547720377169854064179438120150893431460393423754451739810526955968020115339522480285684350878041351573384299385739635337190989543970541926753588992730877262262184632252180243497701426824402202481318425918049738327267488639828649536300322475723518796307832886361301486947956313231463517709506267700664096092063782306748367502107241365364426118730014806028248532972185483008508916616554957855752181606179428410977546620072441816973131588082699994009612676276861571739584485785280848393944457672265945117821406279388845578028785411418072493303978799697261688077192086060923047208526764821782600463609551740232719798627379578375809541903328958072478590756486234250652710332414941522945170768503018788260116669352173998082640747128060738678328176913877433156533839947111542312494269846544930193345165150280655801633268643717470775541489412881997818511781940887838171084701830668370150201429780957819462506574652990283402134671570712899987596588659367704005873967202752561645647300353321260262085177991927857871992854155880368842577398105342421434532969761698738205256229361089005778286716903425203099270365832922811350058088118995690436355722851930583584025709953735078596377048745282238884112167533426885386254406009127046609012856563724508937582507959535634213138142484389373212144839855649468476120123715965490639820004569062715295238740372320997951927410021261629065225888485911626627858590578310796464366752249034424937108768408820184942928120835562174939537543244583623207344746088471336896121685753986775871472109001743855824295910934784519463941772112871581396924915062089240529463281654579956555247267724617085804422085568486664653360916792260533339941330621310458056562287549245796996614767088478785957237328497157698695474491011337593850715294996703522145190800893068687495566862101658391766211522224808254420178804914172471191914607345136498935938266378371243133339502157550028773241734638700698447756989898043388455191915278567300705515940510841990756781851271232989651517237818004363945885371903196533634856132857016119066462577121936318885856428048731654804956171242374172117406121961429894321882577535268203262410429817587346587429247180134194016081558852413624275783326787293470449683073279020637057104428049494786878340923533639163312322496354827886722473644889705499672858458500778563755352251868566646646063413952173144033880744476634054898707397520775968725771884682335968357783667788483035840641358800730202317442301809523298547281975846131974431501922139787480691795870877647936197444172041521118662458058839039683028151010472910225837259484477061515187448034118051570059167877318664027875618619072760710159446805888454632972955158103343589018608899928468926992112870291348556467309909464155144858161849257933255535659489227708600196165803547945691201173970875362263579823801366037278785371148130275063737008571052149042787976455124919356245395507998247313300605048731442589304413938918486246562851095175888629656804869689221853036381405095409162310938976389372698152566168235609514628333099551247250455303976014856760873638400887108345891560050930753734018044245913887905062137640787190762251100498318847503550594883991135778287930556444233038969681890217107321552549858572316111715523543617946104627234709743203409140355145690141491600187266818265463336897392775145173604304980654298584410916522819788363303903773355424443930298427852968427958623860507276620911866300137277187717016896847747334830305281064656129545496582772025137677949521456488144530669764963321117873856110078719151391151279464289747019224432215023758638376789879546800889907770403585393134040290992554921081030728784796768177121630496683845189332343828496134656952436036758608045167399243394767502358045335023408692746761989080440823604026046916018877566493698001707625252498931404855776198646513399710576153912022171156791156980151703017259269493569274291449059181352880960228219251074363017518784288838150981443603652345238469273785688684032098732076822826786942098640898998067733511709140428392559127328280313768091971782344667407260247991428483694367708266012823478197081690994345979780901806569259841153060711525142743665153906911879143302850136105810431427837476236619711741322137918214552943068087191294243068486120414442796718318764639757054589033872547533966043133123450751719723009614659925903871118879572896901166431246999995959922059164908263981997820136781226438448481395613986034989702972112866885937022056438576438611776369303672991630719474318755319776661643139880104223192099996005996907890175702408242078247429561863514180567927998602516384899683355415464670509947758085009117848603448645814412609089646039148277275281853627072752078672337052562808171216847519954627579923987272260024546921172392325920127382442862711193375311969999609190784533481745732695587053586313869941812590586629573000593233078408327848538524376825207409212462416985530817535285414800378819910733111756066716179981802422385239914678275158920621921785165314711066294205628715329031156946300795002511753074934177220533594476330509182806555583769115600404978432245345671032013243285043737999115407027011283531833162094539769037886771823605341144449501776255473858797019002693035397886017975020463012761154276672244799167147920625061297338175730292120861443252855343608078232093398949816250297232265988079953880392576680618196965405965052405179630905561807625463719090406473254165086071560365888009990325958949337596142783324550212845774527727325098883367117410330466523033394784230064081151789586007037353135758942822766438305549986921172333437394084606771963815573699756943781179703467783271971030109145578556870681678486139271373636515905329224059330417690128040551538241122809102874565871592412142522089080754346767744939081144134428055161586924535339865196241554643126584277582970381926465871262787313320899556556060638834320497449959318424950225751152889246376093359025050757267148429908380483978509556683055451891889181026005187186872334338467166572553853531817119258581665492193995839853461702959517875563672235677538105638117826438699212297916525215060742071681874011998973255905709706532411149744844359837784549342000907451608375038482933978493462328898851619734840269970271032521726275619982999031478816276716084407251388660685292081633330048657235139043871157831889501926302890945333946692482526182270950932354110136964262789307751998165955338965409454657217681661083562339944051799874142280544581540180803880943324193264246053690677312501291749693753295476548655938325710699303367699862251304307581558865912106384538383079081468080226903739995163994006277446080064750188253380332842451522948348698065767844882577736769255385237514716729836150842566252705530208878950750099139278015516072858942391276778398887204585121497537347765866032960583845269386595941238041807415238088800862222188986530755695164986455085404447835449138801351937514540821131090693577517341661248978047824624933285335510629440789351504270686115894428109487990731353833882224068061999985874367415445794615609916827122359627820211565503812773811410697584378613356953130456935217521825834849699515381158424710575002074299064195661744165804783772714084910253349428198640963183618353206404279374725403621761583849170376931065554846142134080824496695514202081012210552321474262365555518057576556258666736596222505360343197771743441028606775534893548731839475791898140229441523830909503816758853810812830954836358212077625159137204996401768825092633938308785586589558844337475460270494777060905959080018423735383765669079417191225877813224582065702477232352495358775553863242046845731746125955467431632100613423904552042166536437567768654844935956025884647080870310929384806063348350165679584849018906240222931427443647270463089587199184829389747988758138102290613898956270698509980128954606090398251198086585875609739998895180017561312509161057047621669130867557815742642072778554225501362577743581477203801218782810110957898628365638804363642452972828254080039562192614675735458524570763463449939162732609345281366340746302140195468623875423255270612805081154900388200175253534177952656058525806483034075221893928088134864330976454989799522584211628503348354401721140126477036416616130208127399447244967795594979327894807291162585767171125627786034065781949894762698648729243139225979217814974863356943681277069056908392739424243606792201734420856799758293809633957101342061918167631673191595166342348280890333846027422552581541820647603360110472459123115007074625531576535975490191781181457707298372632889958740593405721851356543796281046166337062519114880709388711729648455024835673237102278383689390301728689009615588763865014404041843415679592121184351378969271910839639286374599846363944110308226048271111286949839322185452541931014009512893273013435613214627219543436674247948526553341189322644150601771351425642024570709771106539827272087134987381270450088009825155091290262775459799211818924547880779436938389824399479201017460898904542924286804237717530086874070498929757112560449469786596536881169007279336293590367046172818636787457876685662936902833613057927181020008445613459209098287018524144645572976529227163769548511160157784271545865714409371406174825960494073763107057762810419971549039361876238668052818502796455624165769913503506079063994123844225357763782491830417313553715792440479132512180094657745098860637297063647073040949328661130680809256692903351357093788610500952520636789673348328610728538604044788695598627327621524541002986101979196605603886627899102084472933386792554108670964954346002702769834421341236036816882753220887083121775907657475671133893853741170516924184834409094698800568428004583960413691071403920230665894054273766489637963777155078920214644480776047373205263721381647438230263795660615486686554604045316953538238502053504489066134356963400512000282214289105719054365977443421255141666383614559734535826349697295316704179526043033042394558541507847407259375783241021109383727518754860437047237735369893903828196997583973288496493987209518740071632495428402322236635723428071482379021503517609175809841565144860007766234876227089808576384056329556466993265724090192687503644442255309146540366070282350971485892961541292387201154903446969972648576222531377245712099375198291663095979559582776276159981154178388877156299855470083689701720233233196157824829718397704516047950592243875503816166067151259866208452249029150260141549198317447660616258055274974163371818506265446895439841264363019106217164814043017823278071913826202101574547793765828621952176480470319004643905868637919206214394065031530090812873902357383794326536268892456731772558629930385913946005027396635722534156569614838332600764515177527811017713347642446184958069894647309724466592361967386916058131385530189175242669546638440530600990412660464691700304564080824134102059349500846887966684867619261487678231428120912733188594838312463806995710139252776914790268476843960976095475489581470266716111053503685706399392979482948871977657760043720707532893702841442560887845212715314982432539297587889363393276077576312373247810041092705819959300197332657973856027773572274204580576017885116419511532873318954444034240182913594993753571297918284734096109333333455496005792023937351675541471751805071931390006607510178203171211653127308151309718202133193981655423066675139122303483383799091721008899359589510071543550197735366894611803287995482023146593517960210196550421022057708891327733458147730941320600916477253139493314381574760365225921750947509510613984162483095635405110193473653381728204395602113385865011273603710850797519941874021427721833043474584157953424310756502332931749615169345777407922051871861384928044822051422970486172851671965417243401348758566282145171232065707350617089981640673898729098343937433204067171480878685138655814673508504797578360075324764361716711611805727592479264041574712562172630917652592480054177527387554655817255900155337853738496670692117799166121487590736879859860356507689108721963099758880250700253765420054207379925988864207572672464321404232186606624217497299512248061232397316913443386476829499823622308752030666273186641234995856164505103270264668292061666346711324582429978749319295854406751903522217677619677252414423666927440949814260444030491586322122370996557191654546625573799684811508667058181720890614333264211289667033428495473864178108278023711127902153858781993619158514126624210335286029782153964352854741994584015744176355386984244374225935920104221892559810441282438861782623570729864981651976980188857619963248483171670318415828474437523315861181514824761841794251148512886462120309136666518702389103223999830290252714674929758884056790145761981396377499416195215699241963315958370213845641878948924355366846013929500102920732448596559318892233192512953937290814041943592345741047345034722002679909714042221611830390004848854608400789092725185832307149589709395535956354779917594262787069519535275379114557107358318742959211907909988160117552338174822621479550039354066844072538001710929371454093092432048805398712533980280716188256474474329570124755342536299796559112286572719170502693414026574839575365428460037191424965925636125569857055767741446714017908170566750165416726598234801473730217912258360941135533828643093574543707976163011784208896934713958077671844573662103479827642417900043924797456935357238768129928489919718725142275908715431733558204456772105232675227555092458346572024622341733814357492036203070668439211803209645744055816693320709680749560678391688245913248409146560003746150345029179203710690006843502806540799891973556409607184095374974342732910061815645374205142562721756556035546114702829424760227719528017395249315344156606027286307640119437754046808592260932808402650297157073961168225118792912790124535160209068713727209449056725456251199387462777287835212727245251707342268636074050792745843233677331042112858755063096275166226606815701786161787166399832524555618908297743453681506900524264219026834185573555398836065817102003714482088842002587810726969852133408497997948752015024944373793894152924303458703430022095163464904046492073417529001317181873889779768604992067295435887681746038688153351184659086029617960169847330978050461493518295037079085370234952810019847475288908661132837191295189322117912642464383776215333168617491504559971713867260185420128786968550749580738160688561461935596937126075487648188746955466740028929113844166670121283546674700808683859379164431182595257787013808282039706401925117102445128190507368885745455184429738811455881945696373029339011191950218394893409951924468277238441473602637939309347269284245004505269039397670068769339079590158463912711659758652949379799526440783321253065281996623484005279445089975773281783097382575815346067567945233791928125180598732796266462807441541998153845735015720119883702489607856091403614914089387613543728254161580749265064427252567540525689171869680160172479819258895739510751289763902710490317414816260523848444255235897348226829618399892942988363690631722404451017327390152895242010582912737362870536533141738146791073147228027220806571436772264666767610501496949924641219938369723967299362277230989979850000966966482796041331270728757128587006554576249078875612859176189122233516788587325730986359620275878895087164926598852133649589898230190331856273070956383424841998273844066324537343492262902105638878105395726826805947529814776986514234982509373363044839306877985510189469125324794342161123281758041401632554106930481759199762417718655007484362691721313289368905158842877945752963459436282485592209325068925025641512122739363374294787086542447370202164479908906917119026711836270442854432031137323216722704603991223752444051177675360269467258806574612582016014214709375465739154607047854122766757203915447009001900414011554893727717993870257954788266679560836372157640979191071175148546409833452649696758985927679383652247097485416608697983510425592723820028239249911957973463026734737150677075417794997674367736707106004452794634702897550890494449444144457982379654751117649675760727027236597882473676368465370221117207649030188031111667222997899995782819510745664346748622539588927219908303495964005196220011816095316193162386024604941140357170696792633328249736150968184233896817798304848937820603145661326396024832936098774491099469266314409242632544103805007620972689007404796134075493263661457363443352085501037595727768411809300332291090850323525993499768061155110980078712316193077692776964740477250819334424782570403555622304331631856915899224454037510441862736380253967782237106374072645699891805861450828007259827435412899511357592040597552945469271114113484738560035790440414499882155553258798316097988608881272920301656252563439273130997977364531349198597332109941732593665169831683529640914023185439655129965081473453739656592935654090469958168480638465933143746469029097502175450413194325209135135506321094883926168560140804405163002151842341422470485787105434155019722248087531489265810838649517273945897714358036449413092414926610195581829970298975651678878290265584847710510150415619175251088607742689445184871072308184675061782202236026812166282711552198910554158172405511618038960768937468825556542522040384489309513408647483661510565209252948226585866525558012649138234602387315916623951449813654087543500352532003522776275166104964402192355924967750677005283268174485324505429966153742709732174309300193963514107306087381001411783316312743093689869577635134410441361844057942867894610289293450008912439950012578761242841439756611953624168589954319334363194164680483521351697938275113869747550798666757561828446094686851800257337807292289478954283220419535394119457944706862310106225309713684632658203851467854169909050138700355959686536689290282766123953536085646040766083055459578440843096873762072912576652518272599825988457587819921686270965535367429898554147785942102885141193278444399243391109912457384514819608912374782408580174052079920193280075954141833027654179731628495354868190213811782210363600450378324468110512756321211635740298533429862196827626141602196792023863270345143527140504310150444870274192963372750938823636806547627172228220633680073744770700649016956062831457716127520483507945404582884001245882597782912944285956791191092684619533390693716762237583006743414990866387924329199136939871215203691068112347462829647596790946550228106874619592276218437162273070050507642219189075150487507708540704869286668730170165218134806338191920675463551824367936586589425813845494263603502219522918202568326685408753691514088581190471104247959659645778864446508033154785099422326400718790555811187950096472748986883106777954688203555619181141427279742208354465610741983893933557831058712159944615498131094406236421413443864972497417486486350553365355139200977040935272398449589926859111497501431859915356525486218064828917081357146868264847757520315394643965300154962396525568114574531252972602941071545543920591619755241288614010461532353512181944587070655277476173276277947964466592990074479636466819953344789775306143075743244005540146292449325306566548459876435464940805266419162566951837074230384710433514365590319312416787895282739699562318594229713475298300927538108431908362372081527397932155723396328960480223886583628422268883278195428091636918562332514377935791461917318093981575588696785425360542793981923411003448962352480754543755302431499113851510709611171687022656399048083402939177234254062335898255791924401134022754404138462565199415622439705905253303982636793418883900511386422460605965426952654279991383572769985029352173704234389635813050020520199475033648671597180400279320560599820541132901254062348785151856408211297953778377378253072720090059981890268021911189273483701561589526563465243240318737090938242506565807103848192930734206952731685897286399683547059931128906575163842641178490051876412054395225801102499241517731906035088848278542564539217631852066355848123071497075525978632797590448375278500544600455941744502941524192113822697988248030378406059269874415477352092958899422602249880230987262699323113116044478386990254152136030953666144006216407074030027141254121931511917500141406226575953964069703640316909619446015050612672062140602679500335235191342996418871785412160071087840351516781618425846227045267724794292679696873405762325384598528100228621446510601181679078171389090452696871747463899926683409388947759097388799130473139546738772584751193678829139273983649685990902988748764712461842777588594045686535202899096734940343875099461738944289774543831778574575570470830768225582022083528823111967529409229753373564037844631006167891563485508670015607517968213672555700502783969967457442100850050392550130004271428146928634042779290720979586243325720234812363683914149828598845148909994825942052244669962782737618654786768598517060321495202928966770202890609155429374333712153191144022869442007795699856331133387932692644201635388596193855890151933387728500281719367628490143086994262529377058634390821080137896670512696583158849107893155431270785622817596907966784358509197686604883838096818526140841277972539824861098908409219437715473362277185412130188205705809627232148137201461184789505426042414602438639779298544169257710927050829439093104753332493879062799611845267537076836769649026831616843427700716379111425903034083100788052424507082003697341998431984979276981921430034318907012673029944521270751737723958036002821324547182685841897579581026340391599023879824077328052908723578610686468727382991596406136768717855036518181566024693777417500101252164428681006882569715178266573326602902499725729336178820993977251811552573991535562643575789121862277013523201749489522792864337042171478143877880197749979278889221336537160239058869858481033392125865403576370379891522368863573831315455425336963350427890449337376191301098339394403072515412821697350494541145492293192847943118443499881727441114263256136230439380419747464552772197876783733460720119074292154159883647709438385570574327665344379376280998234910134181127258227129028597975784255576272816199439131025289487566088724368846504870868180388283569085782416798448327708517787802311907426976828929359703265289132932150089966040316002922072453685316448949023646171451470547648255122055629052354504867771736887653496633613572511002935806688256120276473498420269415721949986215084615973771575354609072337557621016528160337556385283834270426816053981737967184097408531537484315008147458718060847283096864442710267771095100775999665079287719696661805635984198085468770729782353147800775425511388768831173764832089731141231587128658665926323144503632196905608681864921788754386141705421615838653024845411135975814936568481180452306798585478491383248774647640390228858912132090585484456225160966823634520273574542740856933117813310796619830523688203984914378172555990314096939330640217534373097962040107946637258133702008034095900507553847409581261873849359002577051899936875548998047409959317223220022759948986536433218098869337602474210524325464202886900309489005823394770606149815047891165769931323541078159575204050497882633252482484221073169544551097808896903071571764616785919085832244330331116465103511647121236633959929827321672637734628117581200265932193904667635173067932286096349548948352907256920182338939798978652677978737185148581638475956344926077041357410129516626498794745847871193387028735337852642664671997202124382533228746966896689138595098104521939563200855634825710965494257388654307456275581341189615603367486755590235426583466299820639502426615375088626004660856176710994215987601739750677084923317105506817737893403711328928286360591316048856248708939352763463637391896995168533562979939578154323426788571202079505531200157175092588359507883074119083138678273774610632365599544139510497589838406053671594457301190157903352079233869473074721382026527579796685595922278613974419378949245593409683416466027492229078148840712897465399963553138935345644849186846476340933164567626665139493810053880704096207347159944891681012331566008059976854199450506903155144318418027696372948677027012144516767461889489195767693972119386914650752631052086106878095175300977932770340706204024122501083925636339950472798017689317069109051561511812055739724944860367678431848093727973021979391535199385963759698987461013442236090222604926608156833173468791906142225015936909185001422818448573800262758849113477882832972844428096792792238228736885713318079938809836658736038785937930658891754320963132599487969509761596202594695149469934674021811685741856346292923682754779293736724854019850555641473679572314761372679320317264598625106530636146073220921617854009356290404028963909123231015866998625351990480158878957224095312982331938124051268711160526883274273071620803405593231183311448708946735320092720187736315205802800460414003140222857818342579150203370853573552304908590469760890733209478545405126608111956574706196931454352178247223687179751208508858979721935845952084475399910426783748707343262520057679889502543079629408193054341191422456347441381652020632872933065105881300388520850987139514090942887539473977255325096991126426095022123317085475552000501843121782096864292399234269662986516501293007165976437258973957552504835894719449117664319621917231861019893400167073163575326128493844098159704802369390932372663831971306184433443021880962437541503150475123120538892036903537130553775878925563788732389211515246532853237876636915832211601405106028721574848669611906362876990542191627226655003589357803225046020015779776103333352214448466372069230601880663108830868352485775193066143379351181252513955949646728866963498622118674402589071023831626681127325017934074536056909304657922217078716659843245631553956889593859315042920169292920523317424007982611337014547838405452472858976088665503876437296672061477503604974554017531890524961201814509798529295058773962461683655515947210078416180852413472107004892501843282326551761201473590908688581916026314725394467480999052914708532898771461305944494092762665348491771185992824042440778711350503226703131334626816607690135916640027499884431637949244832475881394516985692089024682003273512873234382105722377066185129756847588737026635828072699194745547369694452292899339186741980876235496139179771677455975641309681962236028091171713536163483464658437522737728271397963934538182829883879935069085446175718175431485193008025619730544160856428043113271015174478574699407030845774418876407605534896028950999216636139683309946697495998664720813887435113971345219201737096692079432297925933051950363865068155703746095205858629656107312715287805142603837292665408000191645630625569651379895333699163102449923905746383672103358155021901220761311376890087917019684190522963510017841206940900430529388243147870638558417460354016172662460990079083359131196559774790737670256933788999651266868087164268534523901992982857538582775448594880002450576053258777324937389170318453447771415472827560011258050032054093329948432467935530111570630334594369505181395079994358210367249686797597283569723575163765309217299781219442281042412078479255852883809219565412422797205407149061701487540110316792571469209854570477659035441855834866722275749849443606410682818676421341506771170892034664526170281995330463837545664518057433766377889670738257141120154780511287485182858244891808067422641965157128640108190302870679269849869284956610485148664355732707490429136177624841159646416727382404594546613358450297703166508727602567051126087855631530143674552275381682844161457730207725938295141026751655528856304005864173662997676320280003421527119263700949429954301559057666749223780739686513321224325942112062583375981699304621121465703787765060527383850804795976803312417230677957282293863598611931258084466685763415181508366512227660122580002743384040019859666230191347573375031467691027455480205915878272769867611578223989403666770353847133051111720206801559733143376574126740558829813615927084464898848418659680413647363434320482008183746266749217876109877427389368790154491407533103322597495060937636539818851682318466996049658644650891512152397692095723124914675338191231466479777803624979999645899616276484260680904802126842165110615938757443670492751033294510771495032830962822027040187242892371642785646982578035684383467381566747223675040797049097959963637963096559265975393860583158890846876969515225995643438182404606174304235696925869914948947274718738924131950062696434117389670729325272758569320596952674182592165837864739352470252645666879439132379533998696301517161760025174439118061349034730569040343638558305894778639948939762272528236415349453418939342381331954569199781934464723585027438292758584798107810059128970473613971860356967553898878023928958102429415040785736610461755780005941518689543603146046460487594331782286234803289042990320991298178251983978432357237737764046665675227108817395564163421236733290339304694945313492117896196309705038630586444014308610794693324757535808320664428121988704704465150604473212488295771282354854665050808550120349799922839170042108241431570963067951640392668746687303808663656824857410674489702638786167040996425066370757141933195139802467951945717157616729940250132141110640783120254239127629612814632531705596189791229531268124342109371307421542118431927058877027982440244980148909200551021716399349373474796717067897840253381889964860893569567559838705100792700230663241508172818162514368505617531175955643568711914240750181685932446012668146529391736282058438328012743878689688011264575232152609977472131078417582659423630010812606888974568562289038158529423293647365427274413494016335786849237586699139563324776755499142766682877515882076404964021919600883645137493323194461111854423009171141337212023095806229837633449692594879549260582595623949815036284475452337254144624160171152486105243970275885322873141155728743325799961559483739140817158350229811109805915179395546974764678953522414553210889346305992247814810387571494569397206229323528477124413545941399372521699830545091472784302548895112893819314350335920739948074716189264051122746744280539511441428068021467854560988082348404794814582404812809049782358877255204167716621897191514928637535173343585742927308395744137931169331414380910654473933828779544241707646853280036201875075624286294190959028162265002697880433387709176892789554206806739035058942667028291364802658395134246059333222628332012826615897506843704591467899010331326632379907765335701756160156373845602983699827269530316187809575834043897599024147732657541493729031057992460364560756078526781289368058379624053300301372944833645909465146109572595899714978395944748614680957798895298485077206917808011505410057509003624381452999303877909430698332105955824334238687995380092026175534170420405018197503082431723199093935066938503098850727696417367692569465676739454536963270087816975424076041780373365363988450519019941026659953023157180986642653402304956039466652185622642005774406973531300571964249096870794340894853150520362372702795473605382953696077169619418335024271965813243607211923380494762881962667425508133329647242596573743684632663685980303770075516578720113915837892737559348715575664450136275638961545438805203587087743882804144131787563658901622661887581166785503727346678394910171743544399264843997306939444584135547177392992656799994055242681375843686189110182535897769896228925646891901095328157957828008644491202082673238260214085842680529940147920037450162854779944652063455863070988339241999265348836128193440910866221722696888763184418055939468895601081603696188487680960553096926920695764676825800175956234607588437531061865612642950829505628041483772053377999545498990827047985869216489080337501200063502150880676729397822796803321681110010454318167269426221444566174142552248740384804394332542128222699488961732031000914780108446771210566495449998424527098237912418583211098451741795110053069155072018883960285180604070826482052087545068938119624042202076662090383691957689415650527684702384567661437676765103808506274448964557634143526564567698316513604487810770848638817228994508765405631613291349810869844972027028631885704407629644779088685744210763412234099988613712429665775041998290687865114593640999665289853464235640735344256190728592977091350031632656525624425686315584584133622384772900402569489295637762315513947704676920881596534544003480129133498955001049709255412048159529969450557250824437204360258244799955289255804346551477060454986843762454771870773549941292492692172408793448754353785375871150047426460239220415816157064406270016031052585302499494488639616908568745511669697970793402278256221086333435973018488200733343467808361641900505460899490267086294215504383516229430290445404753843304124086998635671009623968031667226384774468938741335099915766558203000885811411032728187809066758244020160124808946008936623163323626136847155299741302031086582958765928444782185650490910660382613258965910835839988540775459546861772279368674215334014092854117451209187882090126254493280134535804313690330710586212644893239741548776888328218587885476140400801515873130559966407888255811021542575343131461624595943919345136079824914548662254480852495987937062250295954438041984345473276155498673347420685822113092362855665811674549488601324244495366252524501087466268122435475525414367341551789976383581094603067857580206094965049701835817521732277418019885809784659355237827735408299819111353166025622060365081948418186107094791771232615863060574014661364453159140672773810922299553834793152449276601578798371788201294972812425055907305333820995580747236685345666336162706582381969368662539310737548847840320848212501490031049139317354217043517824170683789856001721216750338122058230393050655481640600340119592966891521065119108007629372046666936695820754375134056419435529538778636966169091765540570444577681844547494826536950851133571576588046428550236667197362467812816147560677984955487901220214346108101900583807606665003955775570150191958694300911671297906870224523741227346158902364361824934815253964020837725991631995532268016380652581047909552549513758403578691151122801303089342081064050192892955999589169602962236654259012891415698626581247709787514679463031754604124733206673530619624673034615251414586766002973523491034759465933997559900537113176066022387474855262348285506567533899187164730066253989224932084253204001062317493147889235221242868741954809109821064959088311388446089235024940327768034157555160710639103999335696309780676022030161731449829767256198432462103199664251566031089713462476447220170686827667469267800262044585111879983448989070282159237813264482241490468696752839910627004379031567504662369251067950857440434021182835330955245695011130063233635573946746537434037328524588584484862924104051965671649941454913853790756471658125498341586372302863727919274093655352723268417789654191934763403598760090701423120292202241983254419634851817780733509882023221584839403515162202493846631074267417899156145159621785672492473698700150812096023522451053068394544617395774796397919276789132686517987688535597067545982072419684475500664996720457515501444519303352818452599969814756702897956924351601890719052025920808587474359148463550344197996504043709599490590157013117159235645722625144452486084742471494857728782514475496554714888696291510651638432457948378190113818008713360336216573837933984276734327982806982546502325049227309395150925987278419190893183782859810177252936681112195058522824405642324894617377098462190480426155402787624817692200718199883307139230446904050759651471382590508513431428436008338244356806729859921329597603273577247232683451701856082850998974287106209013008244093812148580814137426992211314081316237262943006066780943686856967342676601532542198715555396837483857730987822430399267147362837772317929094131681457969114588986784876590181160180344682933402638913368160521835149105362089199354701109402869413815334018785051348538396104224798306374534696320536517093950055483886865581959345100933717213142029617015023778876097740186773640954329270912236122002389806566867103345956117134577189619190146419722039461944486528027661710787710779734000946250536971407871461475280085323621258133736537790855709442770062739060960379531356666100730395137193520073074155429120011380189365851523563490738027675587653258321172139683531593762486711648539614682615169269956058065662026200829748876379600633661312892118052410979009713038832137465001515956650638494227015041291933717052557650111995310299839094731030995938246609670398506766458751245651300593380798106048914907974582115491189585612260361046284354742211407843842414924191087017102966407062120438422838812632094463055170067120883028072315342079558318674182890506127994404112347201377606286864953057372244797684589820720229960515653111291967636076944037415018792661188045473580532130236108440029447909328045166890055999060892971443790401770789578068393252904517775991397764359177134626637586304268319605625076862287493067430965965248253443744872297066989661734390999407598400985366675952896210539922587907877364207346152238557435366686182515505881470953525852102028161352102634708338224526939832488269968463585199543087100434666049272403578055478170137159968309132618192958609050726874904725021586415076398193508550845969021236352081956768319337197609650992030082003548219625123829439546378466937160952451673031820770005295924672727193438280009755046001432388415500432100045191875812697999522459235149332320017920353869686875221763566369838963409386982757134932660996656924937373140603208378193884284438910696454462485735400218974600656604992368325600862625648072646110239029056408919686211061375131109286414819850750639890608454514604450239213547096977972893502218407214282544188540793916315338512699038620110803858778810753575395585775801910642939800758405145999075506493020066476957499003076806405236934683121877825028293324435005907766610220884702709512144014869654022201702910341702786872570042574030507177070265460127445685070108417218981180271521868766047530786981133161950430830348510186017493005629217317991920478606003519767000583927835785516618294393055893686385028909184988385960189464188745980743158665332389137637635313814442184499256235364002529894210820019291083734260662834873851058354317713953988308523118165312790427860989375529730206259359296229828200374043051229055958965739891981868469000715572683021374269637013308533646615879445555612624518569246378282761635731793274915849935104449102739956096858269655765812151065190324493562639176305209606640177623467218024920022081646112345456107985675473668031809936644559393446223730592719284131721603328182440105875499114629160733948210098446553222823162523427185274298745328487651771205889081399405163037042969959428198465067079668158424314952091323527680855263194556142056846903696642098482736636691930348165086525066129075669116178637669070443835491027924000106924994634468806075833775957814215414867873852202845736701612645716125363332348610788818164344660638441153928083654025271743739506451269242419829081064940315664433852715285482899157643244207514303990330438251183033354307863474884915343641470607464496221923696254709860025508111408343874777084302368764936607880056120917093339377044727566816631725626516889919925502910663802703538964927004545250040392664181409183982074093645283232254632612283485526986086077772924017790023513353735700784066382475979786603257059042052215650488606294923737714768426817008028944575955807067883618394122906558484962471918174069473753083103583195277106544181997757260984619282408213083922541126670928824998070257566378341977554425891468909907768992594774022208994693193748897798714341921630850741113205015007749361870340301447809497173121410222692772565940351148220148396533563158186613563863521128268412590678045668890297140204013939133937261905102697747260174307346910318054727248946635082973153266275361352557981779041618207083027835624325364118510182453015766977745499255816362497934344625833129716958501787474468025122092966005525027358043084600687941356957808722339695708763772724007526576403275121730446447924172137175241446408800076622397789142992952666977702827359055168134316673814953505216761621443519309859029937413607172042548813740880005089272702841735224239619816449687155052015787085944713927565055088138871723737325078105735487952671403952593938736642466538390197190323833663978011136336953216912685394317335653288064548524070491008659498055835574123527027858559881110563402645269678280819595133979246798314094756145156817844659677819038921074470769988509777492952169722410987410922767717618719483495311538841782226311641448073829823409288207749913146809072314841047615423342316354903074757231317072862767004381758789709541875298231513133514052665126782878866706020434260122225334428344197963356307532561930838269130673386007304383095980872938065578538778533736087799170101328354640156894303512683347202467580978602579743594553678801123500708420755851328377462772359533402772107437808784976727158940047478874657887594837270865983648157347153760822569090897728093394338956779096232802305223950522327755894476067392644696804336379497367216480817042287718631118065571511089029945920536759617988043989389371145760861054868160604830943804992414922042755151190875540847804428177063939531762085968037597557538859782950969480649695802804974093805985647390556961831937428612880108530036128880870317302247706912008158154685483342876702268981880472946174807662089350254321274602185215892594620954465769653576696047929285598770968566075021648266975333046096638795992540186379564937338066087995168090243937565775952309157967631184077111129642478800574057408140502858341591472295774054690160770140257551992932435597125415559281193089666599546567431028386179848522592184077595453901838824044002309612561218081771605458274278027675731424252355792646632020822622593546918071401903097270284277693048528856498494221420106891063844820719951927945916503517210111079148462252817812124058746189589374899082175239322994834243441767502074481139402673640124912649373689657602482277302862701946462424721512708719536986450951468712214344653445652279267256982538337661224267748820564328529685178298919246738791676396356080085241416432843879056411007367138052914047808351585736231750200994014974137274522565730133528533617127395092959652554304677768906343524681098475365859317973098494850935812203948866212106769439910492041271864649987628094239658118955258622244012285416928709299326224419091126068964183150514715207260782073380023264643029385398834207069913733615860467464007688941292973668840713806705579143097128751660748415408847708370862061587297066769309358965800417963628696170416437297394358648347546465339359059347089194909907630197912644858233628457208594633417059333231725549367062669753034437705326613000653192206256129899283003686458558823963553381475841901421114402443791849242599895960829903361513196401618943854553834224262468964985398911090488259828628833926912326907589641020511560460828779896265452665915315626511237951517232914875084595992257919142006958888775801240881845721089754657988381871221853818524798723196105200728902192420542712056076088332663162756482104963688159755034566251265999875201881984106365893450241254807509249960133062687514338429153095149015133855674492958885712201862311565607775624738154638886751956770520021161721131902386830317288460610472852173088434778100652592724843995137215488585138941087647943430161715904977763882007274017964432294258887476932983435648144979342173701583374259163978534621391000373925445886874429729972717979999197424413378782405074768451270336334953547215115928081371004985334954753008182122711453570848605200315424199280691545568437498314910285318340515296940539945638565527875823341294810425112060034861938515731100844963154235292850910326911321868240336354934976078019700985865633582145901753563823841798100708687673792685411657909456893661376951590175029691707902696241186720106459708705560057334395541333703368460118351061741591586411482895640223976312019627638050588572875259974997557241598696409125531655949263662017436807263446612591289313709504151265661770018830952024173298737387248487510365505788231837167588792280586680674537405774337105855850797111914456255156194100165243113196494413178725976089018345660439758375624612378538833052654167751026608796643071730315435555155474258820649188728770763362775443389038514507260410720394971541512460962244807096633069812047050254079206603657248776728706214733971277332882410453673336016390031404589222920239427493926555205620751762843659367563716923667423833322376178300384661178919055769093039785695262282071965101444189185542545682095023408171956727776789726720096208557028138721608856034992038935271434438079805632889666527225232711944678316734011304601211073495848283702514923136530365167074951079897582717730853255789356744441852720620926566624996412477281766462638122610781343526014630891870466494687261513352467277332130597732233943746698079532898829801629319177207594861682361950923914982529130704688358177987692332150988282078357851917190420848052725201349523240775207389128923919299299587217185464998915201514733080565243271227817498983562647180213061095142793175956275498380369903125856749104715229561385926424300242286448534561287668420023169180343199744641938901416915491324274389414349414765762133625227054566544276031419510035759360399241911744849562220987833411087470484821094242573000675331296476775371422468871612555615407384206847353600034238917215683111303199980944220708449931732568272041741907580873209359399313533647548932365810301013998951727333438221459703020157293264242288095793405170745310186822341885532044882339059132758428047550352014241814608437303359688411449098041435369345696263336723305196825764301329834120718071955280397834817110514746261132664493200613338591744227626620072157560372018479765437662793113790515803722252263199356354348333061369815298511381170085260940973467891691579250593134303449280333197045792265754693865934586708215274812845433779714492450470044947530650164040221569956021021408491707074813673739386170518577133113045081615972736899445957680753705523113123128528130047358823626124081386731689419738119767667484331084847314029863205487258539325155179139382736105918169326480463393677356657259825454277956164375704107543057817447293269376227257942236729718191393800449312959207940532079810619130318469891249800623509087952360329918166938593651480556960280131520885031690356481875360762362856496512189472866647617010039416774985230811210342380977169423676612099707667001767032530296151708344803817191675897250364613193132746421255993905356996650930851062726627779266449371485877629894556150043014062038636037017726441276029360360441547041564179526347517027772129298231155179297279679354314647147385882742390472284144728131814826719018647774626844503006324892137095139135015834896582150854084808886454504642642474474449372049857514432488505973925053495090631868439950517425083547501359163498031898595798656059362944760209280210027989601652623431265825140246768729826027355507769882691302741380372615074460960479629213204094713101178001823267939353694385555604083393106507121982542812217319242762438825816473773433027101952338500571569717821274194286752655590784157809933420933404237675596897800327566863459745244803447264857480813472808754007166412635871366149139497375517659968514064938359765829062295458625724188794690212381899581500801126237945829089222574387929533203677519181993482263746467719805358041449222134540061559903438348407237279046445184201067074771175693280958227535462220796344203748036898400398935735697726203454165584789332086694540603418536751374960182212670040894924012640520676877977926656503736567877044558406714333299392655230442432403752227477146789178717108630008892282833589848438074368246531143931042143650764669516314931770601391090255408908357669966745558603432487117401009999750008479047407284949483947772992730521052367238106903262497519716936047513702945464164051693398180072656885189720579559732936335783258723413985940099352591082705846845217012316492758986260765315313977581037612376202867065457665669384299040609719254416611326244826666501227098554766557652976857299334611611479545414694669799761619300697374846082860785190446164638153871924648236621967032086373070813580759248966113648154727926185142630707088295846818358461368261034928215653863344624004722287697747597682638121344141846247447601691964270296297917649784809702153296882269931733616487791580863036641152257687055573886123936165562851559230025513354381511646256698441719654369861149409721200061453371517145148984902955774968059061385008420170259484314636529005001897967629201813350482267335820300952286573966920493279194604376185251286415122940869489907198053154958140071636712342794098041285010699860599551165789265027094656899687117963726623534550765105766960220934138365267017536752506470076725886355531199648967050699846090572570835504241369592239119494442332976016783018737818176406239870700411484203707051049170269880806642334765082383942920064873330020375202470283316756196292748252397997862782006137183584867516493913035291538046553852443004715017794524346394740850658567487748681856944021512848661774341145114021487808832511002795375527341704251444696782329287450271453683076476056190413376403760724350738378601758146222334684726002520525038178853299558124292168934164754109813567002636464956967257374876621050673210702572285053919001434272671057078065868814350843765934513289905597468425580948232961701530718951313634077645142481004457483452217903469239115094162548949690233816936801938655429704638249549209627177171723731280950401170109950114169334776915634874173376648997178244144814221274983853712554005647131555152780430435883136219153460368110352214864119851755056954794583923885792071493739669660084394655268393222301794305275198781185173394845093374559847305914185669653743917022212536193288419913940166533963379408322861075784973431005371158401686041342658904918169827072272882645755902936986117731493816199639617670379224290598486927074130021611846068751309046572369464752482695618471951607762793141481316055908226414125028538268350979456029255824813394719718046980288868489720651854257403973928305014030202957788210907890476714713912793813530463369044150170348764588997766787127684554005212059445562613687386133317196652027937378257283336185651526398549750597062217192604794081419965346292118843974926628805715605626842490406815372138817535293964892952264150551496176265631208137437384541071962469786796652522786643627417999617867648571728590801394891571365115238956426454364014251773983926574254670396898553129955347440853761620708311320559932667454562680458416706067117819664271246284208391821025382617712383464711063162165927248851960724826248044970983346009393084287003711654456780231310955880263549764286958551491418837050809119729706263684097347690785483077493716113783028618159249350443681963429315722762149222144947168622173633880624982475980223115533316689024896801021373864126134401701702797067629526652645553080774818346476605271058126782962054609541532091487845254443363005943933728385724432432804512975367354909936572959416005042966788500708701676075419230391862836322301404480257289252439777121526513994715367446952098693155001883750164906247146917215258074433509026326301925585784598874294111776898630866067158963350463228082009917969691959575001598525584292017049766459703483586978307171313502349866795025285613455804567120347271324832289861037874429026894439679107037879113163317020869192812798996181420023096070685614560513764878688628298283508635427007874652634131526997774905959699914185266493739070662516033770617283899041086935824159343012287928891316189950157779009349898218354552495174761815103482907464730291747570420744712704967162273828484848914579457173426704289170763248754287769366229518452509788474992131484568121855568565442143730087666247952563498151414663354392341996905579601212368778491334243096443054343659386704654578272545569899596840895440632144505046935874249947805833287187766856286876398378223468446390149763672597430050702351380933008418801112613485233876098731096006989406964867353025779530974849275230608047135320915001604497835812023460222580771084697653950472672812161858845434585403352462661443105588775482040934416707637378055138113154860125349185114504892974134818636315104143441318459537431946157508189407255136560995347967459261615373282002603267156307778060916050443906344810129132299141386910546018256305508698773521885051380616059324836892329051324721306041899871040491728022986193678141398173403276129597754374779786344285580977805674840598989392763542834423053536208131963459989769632305271668248315222906850077682709295346906162252596899596844473013400666482843802404500214645985578575887708220466963524897586424033383475331434430929355562280125163339256478529569571102811036829657523856714229056102471075253687803854335610606267194998215667823082145603384059284843446388819835622902393763237509213479433657719584638513013038868532428738522173161625859419202721261991269674769961008305432731239671081207084591668773816108987730230906607891003325329613181212708625492232806728258848716742968717220757461252017298924874068678652911899524481975290074880347484097817667624046994113292687666761664492834524181685286355617773191397020894925230216113834048841522950450010451463793521467256297020916155472093635065556260326007320177394447611626208743781999818150920123665392362860620834545432766546532522186395303192564801774160800321608649194711043954575954496611186693939311396704911511946407651879117183136790000720881570322568342708888301182586298019404291663127339303814174210609475191105031014616079610841527424063859068551166441522159822106030587755248257422625462412399045549534722759843191650056537132646491466149886468502645695755377298327185787081795467173676477466574283010305598538129426288859377979863406391463421993296968904938726753148989910972237063348597722315721615426477083240567579439850550748597925966791358618270167584128042560176209298279329730217847581239062313997767835772264963711408435370674784650421021679988531360920574754588607285280454977257021579137617766169480607488008161201190079183591894538089333773256283182253201319383117199663814307917521955324389100408925418396673561284707212595707036459171943283356773835928125833537914095254398529235833627797993230247481514924673227196410350211920981845872558818213738336275902015629011087172961502938784192645947714427215358457189901098602670925741578815537146374342913013251669184563709036562279738624836693856641416876260720598463939794125008150066324106920855406253190999247635374769085249265799661974275398694443095484603287045699953974620399155406941277593849702807956287936171925843706469871808247855515273463324024946884325992556831241490015939085832887020032906618315971496603530715412129837666704231644204322256892187153171050596221034661024606576594491497248452194203035445566093058177712469185377471589295841902515711935478071360475077492024713514928785906155682244709453761910216992642888954146885094664129429821572147598785209559257935892968281707827694727913739866457450510313013841481176409948033663631215062747286533410941747357323785907495652558831082776017981867581444734884752191713610676659958701014104161237351049632112787651346172599363365072052104358651710905759725035972244390995102589677462202684267511443325883895087562218530415973040390391126871751882351448716071230882320181045868782807845301956112850511490845942471314389325722667453712196258250638389006186297459312467589626952232541169458408599263205248963286058731006925847889017492630443272849308631919760311807079796123023260687024157739025199229546456673999952624125424795227734247831286039568596981734403835707461656310564446032344325196965620682431136412891904520960970865299335816238883529045166187193677080320594257758459552364824358862973262925590241478506701754736755254910950284994970575778050127175953117887505420811192525937946324462371331251315627992528573334176261728940194472300032555389575907245435946688992759698865972330953847758385455479963994595251590747935826528489042547234616993970170542796305028247701763948443368177144022642538024518733102987220866629506568628657869285799554236480394172617712739445948021847404546412293870505530496424857843530544534216005625125919455530829963667915968256766935998745908538516112841848960459546829196426313409286342371659903437479194433574451955270155673721579930685863058907268336787311844621795412851091519469160623643923821831652873277647031152667256256858737000359875328952808833733351734880683694982420128120800637509252308721048211157137533121179769256591997180550050396634810366910582298168226446241084348761494393927040705359028531580548935873153600015846199229575684337755663165156142212751632024612944178782321802655520391484576840420552732122712307209384975380560774444779629184105724985411937265371810517447788107138934172836704950604843298964846684015021112539185352954975203515758277169573781758386118183450130171040717189243141444454287776161303424935191657684864561834439769084838312010522022720782211914986632643428032219301733994343743279935133503718004824825491783008604005095023047640977163871645607778765780857378444926616710298311956116618506690756918097266217241514357698907464314162820643875312542768074219968779900340595508805759526916201158113426356002510153118456811823231416756311325229845065008365723959692312704571704796844303958057635917228342765697582604341210718546056101587303061770145579968837770017441578696140453820230387498496076685406074146405160089342370679189006204338944545607606189639417536896137141051600132118509832118663365820175429598795450218325633612638182032143453534144690338901969237009238713549560523988486396159633750668150649094230450355725806047266000682621741431531625701759092489058144352252596002303171161620917924253754757833020382175319811506272673841181188229701549393481543389590011602359728593176419148667377461406264463983678416406197998161158727692793847883807780665406038197591991069593064755586547151778036787549909972979647492235909939033775146868949740332938380245909281873651036429343875469954465402616298925991789915689019841076349057513082357739412156666272642741297086964834934313981083489042156178595466968855397170092984068812466712676367135129016594760963981404235642837717821726871133679771425378512658775252127993466990993466456803954932995155283391346419992461004430186139030536433431739529696507307515302126738946424931770014015877011578799569351174002795786626448179985601579326547973469183182174238512806791782905372177157474235390854629184556508873364828121019548788354150246683363995492545223424477092436926670255703485616496851960947489202632034495358059468543489990312244624630669350101036098917836781074706039826568586858093899242301608331271903341650024181576958269596182602726611300393932336694344921212029485661577228127568407749478724047500240101673631641711998476329220592964688768998429393433055757344435789831417519622578552595920773945055739188347938256818011273908069522137099543627136192359382138295736364277485602424553520083173915155549715464510410096101871338942165436173889787365148141994661555312249489101886749832153319527017834266656215056289878923702567412922143524814300635885438466174955221250340883717637298878565096846811840080957831666091791327918727498863208023613115391189039283930818542016859127846507654745670743758963734647615528673715299150824472132287804636511093826435609335353764865533400180248579587933322008742470638234426501564326005197273449129624331867768015963345972254837050717481077172705644539841201185138644930843109201364960637070865125147166179412589856642284991403018379685630738472713510559929805417863953411132105450649229094747587623627973368616267209142674754965760579048336603571695539382480989661618996200795395328485674712417553813440920727298081492802224421825895376093664151658463689190875977680651008839375206971424538872933404721888623914773606935619826412162744530567753953230584234099037022427490954727674454259133395048312477026110481536240566301628944367630632204589188915483899596311559767423896156462095531260816890831990646355560345664516479660761887739196186426879014868737471762887206456722917132298086607335582968898696524806065449403467823585761727471321975307654851086255120853106550315997498084333923048870361539070083813638874667466894670301972615061077050991700862294350182114743318200862097509919730540630719770186427237506980229671675979500743473887615868394510084300915067578441018267823899103443822537911098165951776691647772052187387303076042198244555561662434141112285630751583886813267092085411779202633797388676787923445270948527022855324117858885865954115793039514757872432219172474874799790538068430161102644963966530803438554286525042425128993871485876012949824052724026999709291499516364543318285944591515043589669194953179337863429667579948570301721077842599571166834241928149556284821000412766817048653250455679546082714865427158001671690174791531710351465749595318856272691194396568750603345612297373472214355190105049291450729075529955973133319356395153054078239244594205537340147824177283780828774912807920326734795213022492366614197081477454742886626009748534554993211199566828337051944432699899708637819525520483898277031224251843860551518362149533166236419903965103017695926088290967599412427415156633476864838305257471624555399290112085109931956230007900221030817837685656970270099992762692473547818342022703638687112917302893832756303167585339705239007817492787156079701818642675737488532034643305912083815981287697586457762052680084459805035255958963061139250079303571545375856399015770389894422243503434252959478632814576661343409692518709076847924456630005301346842293945019460677123719326875399202311310173447487644417015776095456258430761061115308484974474062487831532084736877545700272317501996536844083215940939816450397250604288268453141230928124840309132494269492450817716079379728268643545067864920311030328183760707542965673914393905308307223758183509714245147035330480589326723021589011663903537684805850565924885176170346182107834216854287960739929690475598180620040912210131635583078560824972713835286734571880775228152658006686221899456047970546202525115042582808649907663831322388393959535079981520660485184938104841746124668446020900168998497549474614164710550828736692990031465787913152809912818369018613290274073577298096760903164541660547842053327634691738292323036579497007208110519548501229478941288030229222920466640854513495327206432489565894367637775292310914606885134686364675834738529955015422681747755106360874254666983859028628634352383745690425564374562735006271682066276499910212982307581294836743008723414795794959186875096470785647932841562853491224391413036977267464541204599991466252619225398606159800733872587676710716189168773933668696322178180301587294595912292146202187914963505585479351453351544898811142300582210061940517130256570350350371049664311937034998210221152220837472022426160231620524972195584640476919477139325883817861631936416728234025134056251467852237660852493542145056898086742639756818949908255579820028148021825718454968413559845795758977035066435796608216742560128841149955443376355365998148751933525199469567836318573416503594295489123398315396946695134807161638457935711848222682388411434466016456456476188270043706512209193305714938037440830363328219808822587808068415210827994854293131219749514000075228366961994325012947039197006463654671088457577703702319231642266775394334281251020869187921296233266915246087898539515534965131025639782730613579551296547981202285097662262187993946397953488948012883396966382185984169139243866348923617391982518473666122678379796312725253191601201475847824077027178072489211264168969344062886469772474164282528502661238362195369148371920568995600692547237106440966610932905840519808385807485679830258718034011796167634597598174216468640236627494091041000735387703777855246716835218543303153836588930899077167984493617394740753536564659954525341545673409431901410363868579749092999867792095194513633579929795914265617980597644364209687357416384440725621782826624190725113276222485279759654557965616404632761724125567260675967640890053013032407823564342009222772426428367371321332160486625898691313564600748065634651886925220147393795333009268659736516037351091234715792483525972271047050304315501631953689196819676111867391746690271255141974982872401066529493652214430478235001941402299671869396105745288013757433964008407317843050704643790790685562536782722471224472433655524607092243362115615605580872336933135086423604116417858960092177357927332355094190941560636849973462038833844446722828622382144762050044304816345054807544157167100660606876829756470064728919264116294013405360369317314122601391230496099774979276519737048433999869681366836545299579718361880270808093147841719104275016139683009000121161182486981087063442065481024994510909461424032781287938468836211777891829347988881454772269341712621980445196458653011204837824891657905240346668852095503710475980236239523027679591980409440084642397813936732354218856188894136351409161782704313820660861846727979451503955841213186057775874805340007675199910371586572230910418981848162644270413067239519189807718652944913549969505543632558885764886896357257653333596804235611267156294113280382871396827695076869216894224718565409951878092320120879475765928103839408010200482103766773952661231061605690197627044749295920173126981886236696326969705528770156087199826128407510557405193400709896958387824181959921687855883250470718448590489872717216466845053643219156643497251274273203399404253271736057002488563635361273184156537172805597316465024459876830144022661718823686749114310105354208228757149650118181796400906536730929206723073023548843201861988925080289982910486531273246828378334883745538983332381611793432064872685796992245452443339189779294768112213691086826043939097856232479683672493403985381231770176036883122327890943324714706606407210473934404032467358805561622080715066844377486285825090166696459038991969906391564655649851669413195795585497747699018935244930248342376173852752722167232859140487042947413732070136615801441987917546726524528025690967368851476332185412075223594290324747104807894065324724887292795955143708347050990767045141577409905195286612001306618998950686937121081565141250839991045177525289231099399037784077479747501668291370826148775393022141825800146759247141430451579881243217522197492677998282625025555479990526910949618334603343502093513608940141699100651082197281491896554878824455176262871588271205907988166486217141433090450888699134809333638153866438920219775348852150505016965424820492444538714571479028613129953441411524768372903345079902083005868114968203885475803215772454667393003952836886356582935912398662902642285674561720684177496473813791389909332572184857879251255284458504571166728251076536984333326123947212689004916164185345518005109432781244147673532335997625892016988936665357509920898423622494869031001412363451862360243463094189628732949337118761340679695863763159347454480489013176872784906162539577116326767578395015412827701742222405267563143795597106664565491317612940030167329627051704993616333463956945319419768542417377650079784905101116868331595578003869496336835705525309394375913151934070118935879200282329347075421888747406846644883949006721237728098982013184481061088582301588721045277225927308622907993823551612744511886963258107575808841877456289508970310054742369582550960666462946246465895370205347855211207554630321108195546482967867074456194952696860727626505639225607098862549456954529833917356536703032644603950365519590582183547695402092100458203297375060357746061907137567996776936508989690050048485114211619263669225000807117011931961012377478998038062325218557751302777115087476859563270054593929710703570802036791144796191040647188771656202592607595744113290838896604087750337084305120662899067959883198898561754423945157008431403675806821769722766912254433806847799746210801416464842198736189279220921450366178581055197523388721873363576489615486220016075381262386965203389469009757757616956499864630469942516521024734791787292228791901071501489989098646809169561130003087349737410788397407310296603104520078156270999787799028538317127527557571611034601372584890254335464622779056914390355924417835148523988556231493291941129796923289956405641313342344541856737303412918579385459309315751989472600057360140054578686054136026458818408430021629053148168949333743627868741993982619333381055709171820850774554996535747000697236529329969687515603701598939419642317430037988440100210133353160829027592005171474484681580021188378425859233566382436253717288848918688709712169272027516737228348875143698877244391938867938395456441861495999064925636734317735489706620826583158061656274163055036022504593049310102827017824027661347917196364470588715079349560713586798634027050557496310169699181967154763572790419307838983776296242328073130335520044415789444694470834306240248364105339390536694958274482553964348152669351203742221223675506906709256973233603177203563864933289954840133237860813875718811624641898148459515575346400809972923640605381751972202882270588950876259212566152426832481627228221315097790382803229881517050183317926686398830053875998994338411674800898950748323907797175174853526833568529183722878000272218478584532429991072315443969877015766164825446854969960224311793391922276736349826055249515869477042769681841791622084196892853169456067571649389156673207832719984366481769385029166111485053851506416270876444031201352685982701871332306597123105043871645759992310594899692533021991249527812939600386173712044165829405185961975578473201987306719580901152778562347723600226233669088838078238536345616427033325658365791241511156412033992237914986192323535677475639447791343072868969979469578984408000668300848864312022806751319319453092265902395426691616243836569851955458937019126455322886196915149331569013241161836404677651503745756176946531789865493966873373482249457248861319520432073820298608504108232690530854299631319127914205394992172213239169259788114924860933551257148539645807573343328485452772843672499123102760036187079037192357162915231225900465913219460204834622895868163147204478430187357133075525428532610567276265221224898010256658659913970909328667509075583274574494674631652393914048454616260651158343460222982993723938828671336859174185374180994588724455104294096960154056923709633753979862709269568819251438661764672917371553883242945891645634611523858937571207892911495973777820167890080039432246839121924138135333527510279966667292152377319591875488776158313957954087663501946521494832591532406272383694625455263042295533726413553032473817089788785836677280404478321441404755354968489937498342111466796329692569425739151689827857413895534801920540627536388089346576501715444185695339466725508404711199013156097946339562415509721749349442323508894732892432298273407722953019276112761937306542442247518096908156084302266800040977729415878866696122272038922296266082503834944997109708318606946295326905891032595351844578974716484579550433447346561702452640656326590878348740153503455642250770849598136478360837247206810147465488725132690224683086251818807915760930484031954651967977891234501285147114843904954275199101173586816565186216470400956645006141267757770418701636893534610137176640302252507604409422588856277339115253138500080573277030568357615393619241073734785105035250280467423917737738662405643274571947164294068269044004378277506967263442244739387372693495815010598802651936875028616836612972651518420243467868748030580871668147868077586184609504586827774996848770072204346288585469831129476631258461366497616854844487579716484695511892056449570810943189588808620468823870326001027541112230755817722490670201787272746399360880414672941699910724272424789505096407506161576122176244878546487430770536357265472891544510121904102387159993291425231917954210747900599453728465136555503902158466370861242738996896099441610361031847191121603249091601965851289660561077019996026608932396912207231412271522746493392699858071024166322200705689061790064786730995628639809447911727447666885025859445920229664311590388907291764773505805178647786774100503030469592770363194936730740921204190923632930798132509366115022715132615820939146301820188587808214852507900687954566938500110084040580804576688159662165370707865015549270328503658507435566719514979874037615127834589528131168570296368784873325581052536740703741775723007609737570093547759074167824923872059689826680549746061567642743977880342681107154647365728625820054694357756399679870170094850036828154610613966531122630460348494757526632744409296232466486277269959269588269884822067829445545726880821275572135824460784917015950553044347328001388987805668553553071618626206212189100436059134259439489626516717176725075875923251666954902416933046770786839561915417993931535842534811807485772027956897698176409979044819234329889684653896079881742327344269542061580160844258114846246933679724382378265965935799441533911519588979080509605101367299541675173777352125393452269827661891231601610366984463388973285145351638933940490537300250261852280349650162706194828209845170152946752164928959804838504310675670980406965569171335074159256719516460940195315425437116889213230311427189086988261102825335992719063758606193639469155702457297842274427495002972300375664669398592919410111328341368366372496722176112329232527050511565944683541214997017069731878645162062273752358845073203168714100070065658574447450188003920365254176185239132482548172907858237014719098819838572544895700601663386439087583833908914805506998128969004542817229959054838463352454766385020615376288471304032048878126251120345037970571115206605161814744570756563560871291158667637978578396838403609813239920151812044155875862038029783816403620416665509439262278001326183506111824098322106956882193899514538897724499933852625962642828180027701962349703090736715234420857164528259491038772413893854676607499990720897583046686711886098340119115684208792276696480561084812394452955226120076474881811445068942024124583447292567683884354479601926563748520615395809346405410190566635860463162545538578331793471269265605681909370155607692614277353418291422709990557262796715826821189798306340236629938510289795230039847101758978545446245124127921213829475575090284744075468403905952192309305778622886089681292998259099898686099489048020948055073288716362777473276992255067325662086884341592950277871498437714174773490919680687339129964085367984054659170471679422472252139466969891103448996618761467265323242394466949638200559236020746420131618302097907568740654401689680700568956264314113298318630169717928289925021551501427237838367223019699387761893279345523763201963911011296899428845601909003389340472208850103143084488492319840671475293295863605897375091358110158299069695870615248164964660255064271152974956368938206083083975548893785485297781950688273540775914084494032806490006495579635034708205091690294458516371596298510829680319212407660312545669387655146656686527236350404973385481852796162194694262959765625880532286516966021954666211076422078593522927576742482123202694662812426335656794232463581628283344884226792918867934046840064833029303155285185391760074155298404478240769521104511292522232679032785630116886052155473970391313460754980569980842402106543386827799956802403271455439180433123458429661302520686601535824506725836086856941716599207843900995819890800599647731304106033052007040752916629306995150400690001608973140254822511941615142522643629744638167957329977544267945702940786355838937514419508754035316415048487667047738608658334040883193807541065150155631325191126466073278346912391933953999716369859004440636810588135020281183511636069248593783020350093100743575684183410219997482586869447385404492160284839329465377153108993503536148807258780841584813190895782701840350382824267538497655033231676339719505425257603589806505233555131588258134664154373523927459734929242989721046781463628631278783870857739865239974940276711977937735768609917795616971983519006300835707779442851274207816655394316230122814239558229738085792510842505448716284708456058911359060891555994022038520668191532262762132091522589757277566770742877871016906172268229855911725548376456861071387861496542206928601140110275642589203604840555197812197863383886022404754618442534303169582457770553995072872646886667214295279296554514524033478424113405362690204967882233823947786040117936203974309881581684613762158743998962478810952994748325835074868396014156621367009228566664349168965150708833972563314872850079852225051871245153690753344388453258069923393749184809421977986698053403845391761488546846351945812540352420939900268841631896525882208765944576697181524089781920501697327779933680245841951134104170088065859565859895426523878004944226085119606333852991647083864881355512351062530520501470208584079733763567173842553229317901394474714366285988251677677774202153908579040588800333515936259784879986411320204591517900992565128343056428470730023197203236860769135597504478615395911749925293335539731818135172083364690723879089997687036441224484213932960304388185003283157343075580817519879442762577760782160979883816517214773370086026318089632361880203982201261241766510823604577955350324783433501235312187801804357401922623649367432165880575422248408026371118358915157844720667962204131615005742723810328602077713126997408322189942945565578797458614555336503308159203863364800389617140032918611759326576095557645773777600480791832217502309566691929618831251829346635817180104020973512069615882769464212792547766979056283419228589921150068238389482008503822908226202107338174600379429726263698355852064168639717175394593370068576268295157094383511632400121890995236462347027369308546095124960970545339276523747913768187903360504838122191467882062468995564385480257150411249476520660690072729375126918305945802497017880310762765189882130854906244362418452781657664934796530436589129022089351113161623038622641383706832772035408337460563616018914819641057430254183784952510176871523277208072225543868179107687250613657196629590848068687059491739165824317548864485644322039979255563104185645447202142782555175221942069712959892058225307463880975135530205736591177053802515409586175009930900584902857011086728021903922620986101913219341928238586814571630627593950291287942475298967925718873532428236995753038289680156514709653767329843636605019400187924061816439284673484961952379208388235410071580567540123097122595896938980829107419035707939892912388076159098838976432546008265125573873360955481007003799379424448402264842452591424523687473452843789483994546087967632101843481814938969388502013807658862653671600424465126184731039954981741405595910985413107357637919768902675442268424114042606524786834316753996092493186423843140610631625025951425518836494230248051373193105413366223740527082230425601853327633523215930581932056314381494430391662417399047620059518122203541332808772468040815757605874766799679132990960370006658833454023710584385523671762960496546760178096603750291371584259200161311318011420561337006302847269137493754697361962502186148161135209622262618804474285205051495142287401809342603147645384775655659654451509206296426227073727843915603362628957953314201134211525004203444571862373505791306881606998381416162781745516893192963547124203013964583324335414360166610356915296895391732797625658679002898112881061585251661277072382990125000450682144599061103517272237023923379403909934053076733698462617780061754162868630802600141059471219055188914207716273249099987204603346502050706867416029114657635574179569541089089707769015331253471945665463793973393400291822706655364973939677775942626973562406885308250866300985875872873525735544238343148473166673139607001425489878557735117683812471431668471318908899886268476593152369011921447735439303253357787551945390525519003247488477387703492677542465921193756735265690047053588682130393503719882336827790911584414539304859668479440400129808285348403163548937504572801792298219773835702239588048771548082140583493973033646852312035313702350557611590954139855201761478701250012572817679930051923205265896014600579490912870350631998198393347109640413634207799223437866400038903395358710181208879865736414153428405719835574659015723154336790527719350427422926642074218533526709866109224970065270992437226404495296005170072333824091208136887136710820495627309344069231545914166357592762193469955099934573476537642603447962649520717249713818624241270729188884914744073728680040386369492723405876472482266349261215034335653146647544385694191313090100616031214558927333971972947466728082983025622070147577693091468530909986320545459870087781436135186699806226443557567212085027053953531571370141035777844492718989079932920881846403570631401034250454338278658330794276062716145401815487252194451805530291423375380156026870884281783867296423817061609869684684441905250957031039751585189616490586936571454798207585635981540474712389996002292832822260183659971459586727274746559673926614388816458648540377945996730210334699976712326162282346312877305030565182149385733127616917802975297937110247300432996704838071878791313777424076774211760789981767595199152516851531300692341512047653016730755738725811702316872656331664890801755063523996943279934301970170260295157160138971815734482151043957766974907660156596694622160350670508414411826779572765364747312575370938970841155090797615253792299081817230519145504527412880355231070496492820046588834726928478364051391031223745571534355646927387263606572037419431919713472190654457952208485170624799769811673682673330395446674248656311582589949385313622360725607836252079972871194476937527325940294553145913772408275742791311105726073979389482284121383353782948681391356586687353367735999552115841853007367220264287019096613103784976215129557206549527620088552923656163926838804236403091150700445095502539919648624657492202191558669215284720644904729323219937024541214830515402620408334274823733499762274999931923090190271395360058367319038029649735284002694127775458592196142189545200875724495088925380548358648871664433222648287896484269522205623358912963062866642425780435457269547737709454267911998958393717130210636114951629897794351111900596437255781463728015171918300950052810283269169771602987848511696067219026789135520898686969191360815634244006809469215744364159173309616320155115670710507092713073004875872000233824608067381238728956954127323285219851899992144594582463840175640828330525551446243860215474827353874205441571002845195970995457341042257764898674104336743183242343547629719768262593784376488002405903627613911264778379324124333279766208833095512373827393267937406418974246056341245004310058192128869959132173340914332329627034411702209211452077507164287562213325815294797374250893535021293824274760152086505115006402353387237243684512433449951961853278808478001938189817736081321024326468241382427339857515429512624547980141888082179016230307944772109595178480583254862825262934013520783757338875369549724254351801447501896943410373076510382164682766607005243410261595505159473374763040178553606698547964882172259066319735142023419866832868826712288855007425306527414063247597957369484728086626682165962848138526176273866407862890446344661204777707174548910280543369389159058512949256922836304317914465600278757071453957659267140882424751033882154621911907207763365207065498312389355371864114999286350687574547989745270173286124042859734099834981649313941471270212658162876715903743650369827905124190809775713387746361007373607919200450178876250076587527777886195735314192646145104676761080331525131187103079831437054921816392202463012673421751265030616773011070442499821911271315639985110835600913357033258667603079616577077067735130834920957587933145806411792999152163349070291471423231388448647441613039616966377032908174617469177810126220766557791879254149035025552273186583041369723768977683631024417782873609253636982294872904888107164358745947818330158005570328414801368818968002602146949147696205637479538508551097456199692771838485684309656160977106167969747880845945101802662901807671411409493985521984536989720020390468269419994696173632032293572354620556989539757179111705119277227764956034867933839355451677502653839098859081204580005319345271774261882993792397430080766913814141686815988920685522670334249420555849121663964403943350094654370037865661528107891591648336752671589705778317128693287029921210405535615691287684585393678928495321448399904385325193400613263192554567184030134302883323514620001289311957560178920639751554090163397922077790236270420176334912389151882544462182473683407220892451940221820784649274661268852825292337291570714004253878136261292545994208550055143716131913380841807571755455959965601040391344213377633430763188555566159530569602092369500396339287905241176359876337885650124698307556610324128224862299626822746499478835590037775783204968722156853185070622908363951752380812965424692143323675885067479229082584489529943936400564040241880045712697148127937428097578206805705128461762519333010867129415701784531531915342844664436918148074181015185328961436831604180302026309333075201024936851176446744492225866114999969722797056202207445017694685461785285755835937188144647059891385087298476647049033493760312700691277687764572271408948562745533179356205860319253321655545389433363327056133481277553498350889713657611772142713522124099308753835674631624400751620985611713228925491996790008920105113573741421252322938360280163878230301875990074319248520606077983188771087930094396751917377584472410588760876840684344491588735586024179677421267266139860522717095513938480854111848064579583071001890803129416643466089161981052834782298320796360725414651449153840452914576516979499511471086751783383475174337326362812942611676227946085139139380905087974381201258638667969845730118362566907244431865702416240782036827405219682969452759850483713504926497153346884836047668002555675317496095324999298869994048432543580286031901870539112055038100862106079045388116320261682197208577905268731894474356643764291808074245531658491666344219603945108028840615552379361654067854320560008165479690048280164637243363722835681951919135183444371244169289372034254902814030048792275434639118454531692470232564678255443413960878495308145271564760127717740663426065792405445853507428543849566349644441086135618333034273177987259759433228482099080668469900727392620429365344370085290974218332784042948793275684052315976739149692393268226459294348181670822817643216667929206474080997757593145510462569323470802962719533205538543415626460499624588815925759899830913642156665614394465792632487850065971075336800826587645730213038670256519485854556795345027044028680591534516692863364080395549327507729909939712178031928212102705599135707981193528120708824253715560218071456331210336766690264476404371016535396304410667908355046055842190117082375038166053942684197677943918941586710192856942304927313869325877021802555667603087674851953266333427458235302433901476193085953479812967032924294701985674738790303111953823505887714563036683114132774587689503115798910230679887991718493193882090039476483240748077253524189034879869576714679544082405634021223017374182600039852809804853113274223281012237329715140364386953885200216139178896773226589875060782335267071882256603388357880338265404334885470706377289045933827181190568640161741151457735725163116593456512283024455535734607462918581699805126635958424439910460163249806720466815529678908950583230559206417051779156952048825308854945447557685641979959049244795936233915623481824312011287334093125278515294811478891127183730335800039691195052554255070408639099679386764208207219745826978101925486542525054965434210502087808346429313697889146585618555687708735899933165163574534433995018064617873094255575082849315417957255228381939619296478096264593935334069853703555639073341649490518668812998997318216202251410086685469678883340535164421167154624557005569949683108141322667424887937893672418326529957706493364189778443269872070335684693415300296078402804310858190342116482942040098880556918917686301525721967140459289202228879846120882608124717199069139703635105540140836185677410909426020366600644178003780662086769473629448118717652684945796298222113985660805379485090381334357116625763453204423447179478506764610825536506742987427512280861830497742043248131947065274418999736841325008058071641268738147592669958703925931933883007764220726621373652287705602778900706215050245199771899865547403962706898072644791871903048323781859917117335270671483537211888822961515161157863080218886032760691132934185949196908827418379226607689808918569509031770306593017518233311918425502092073039546018835224884558187149112310564567916044571265321261898402197666123836345529574206981434759806297249281058142100983995883782870347430161360749433222203854814041182686780076430105542543306000366436498990980822923715412450986310470705911109916609980911474961616584103225011744193880750668322546281076121091747899456571278449411429341656021780295576679540187191439202951032124114043362592385011866521103710629911136044144010610138990319254073256647279378813803722717066286805149629974127408838102218134073904168065498293895597424328373482394662354265537947013024073347070702298130464084356610745284715021338174481275091027377399812778275424874637503757683722020195975244252189861469031044645302712656276903758090195407828780825918187964551637489519797205785820278449950411901344334491744566385773916971032866309223190485484906046589456133966092345129534837563434139362997544302739267547415290167468572064850939516946200237691254762892423424045272457031027847865013790989506770621919738559399663081251403515358745219377669507196763466439532189622303309155195256452691052410319374600761012974503694602094138998270047645902969010473170508302634100169813141365436546632771216918239227761506368091161456219241578760157112849599500836809541312599316187725391123485553858728601417368470848430597656972674480766051084914674387954699645192331652184094611392174430954860789908839649549696370919726373515340092494782836929986164424819686074214116811929682303703920039879107198200319494745482070375567318797166937886241972032610271746470526868484014085278219268816801110492619076394785961191365540661539057208845912959425744942860341363628739027416858639194047292355302089292116864866205312069836339866351710511777972055937124353370781343206826590928143004114393555382777594304874512944964834414859448586104676550798738590276597135378821532644200587918792951917894825148642345816531186267182198264439932112898176896224362231640699883092722902597649569606600147412077894432702801562241377126600365943137464456280095735382609034757962178387480157205660823211739964213110151189724768474958736492231471872908869056577088967420883174353889166120476040857491232895072341181845474897454195683423776420040070413280632258057638683885497848715257190813692306425089700612865736629308436996479419285715810339328435998969702321806672968917695966959879671807124597139213940939963737926588322284790201991355541635927615487464621121558131956768081078627723854748442547190786687768818552114787777227370307801174948872114000028918925036688535014189531611795240251849996349903752369191897921520318963005592207943959256836074955618351045348094810341428498387741171572284261322675089459644142173249970539858723448568574392571617045173210304029043480490409183302434933851313868204297241989260955864111298563125218234181283458110463528058169291163129424151755816306232324366731862789641160119088536311680831579531804782414428270650445796711831043530058656946837447435650988694287442726877028970335405848626612369971583277011949458191081438677744484372142662570198354473787033360635186328645110765349986842494233259953711684601974464104279842171096537830567243288984361423242550855957108627320071374980239962059392139879725096507517445304229171162197732924729645393714159330451842169246528632569855043321583240173741482687117585530378088677259103540527571804211949586417999177246898806488313596747721114194699039181583996862084243684602872816792835725593972417043529515099923385293385074540763741158694631980654034172317028542046034980446996029980894992671191722494939864078177383668814095731318850148280128709069579672440554210750403269392231335030731710339167022354268833213203737234568942216516111178013459287795860729631368838839295540988614448958598776798518696145940770927180702165617335827778027841676790751902997734656823574155878044595362905084184121529318041460768449019754125908751614563495087124623020480834315794717190817433204831561022105503615685353536368980153398323678121766972202223588741050228666375414407264869289530875393982051604334970257072991549420095663127657745481617610544077827792733747138788876147563795114585954867246325280218798580518826962018406008360352050595612435015453529271998689889737553361092898033826230208965570827984229039984453559689584081860496126881010316836345425138570567133685629928433799569841780870983713275092201809745216115291523626657549528891621887127754260919254300278487127512793860463442568727345857715044851852442514624866470554662614370566339741242791088449655529982042992141112456642068648192956071363668679309087852106714944040176638770988354588728438054595377781023722235459294305684855112494735536497039299019635098284735095055210448969279207803124129958912968454371901014276824443536260207476039552616774243365502186657967008709526867575133392328071122519277562774647631375163133967169307629337702136813536403940740186997229847238978410600054296761386322987653149700806811906684436161833373189283364677259760731173171479269338143575835696691948668974233307691190583109020319617464214172630408618941939815701843980738410107275347810742374626483272465719735280467271947986791588993864206443669283051943484914065566702247082918965208366688800253458319562802708804182678945556435768245740257964392652979856579098087767602201341524000491831810470825085879756270839469830034796235603273484580017141229104725555803257711472898701201515681170749289744923779289793982537174537256729789520570861111443989854790145628436355971605592053545351330707651475821828414252467729880468466011275764713535626018688929467844593733518063582371795486007531586474773846204335507136883797050267920006937327691055250085407422609454878273955548916896344330664712650850082099680223716456948787378738111688236730443792016645209600764281041490106489405857519124572544451143667698030653064238767612166977162474336393669461084411247745257878405168496562574347652851289076287599762722834795957764218779964037384366006229854350662812852397506631374094627613320834624872788599163765080904360407384933675042461661993835732610315143831146313065705761685541544339285115375884798968942394773616734665439701169834054820793931619679356408414766029263337741577821867789300060229900155903423074233981859123790479692539484170309943331946308023835447705124243733695752336669431273497137983509038961825595766481781170423135566963174444405881345260709054639037911147861930548393595538408784977727678323576796654001575311161450861799997737647734574655615806943341724893644341001266234293426218852823111228216033571342673054154249074458849778439469578112918800937897715458040005731317097663940822835464044239772748166672270999959817201658405182700261360620399150365302551993650138896066453927987270639801660484053050722948292635336454587661397745533979080875873907788553460570407943965236015070961409887054091781399577832609694000811283157793629695020525335746285451880015605640893186920986022000915701387386914251914334814534144764138021095103179122791992729254853847351938725290822409182014352332792162233311518867381554633590903717378085778331586082593637612436295613493953684666498078664867777176422959440625200284369959536556017677498503515211937942972714319480439046597204113644847357940906720617478911302313234507035894966242759951739880489768574958067584149334933273253097359356496783222649806038430428451308808306961916341498460228345180242474872059766910935858761780074858589855686742540596832270663454578403420749648616247876591302784572784705489239305176859947181480890300513274346515565071780961972932594052549820124767707204569113430687186524640526432782137926480478412891565498375136784890361054940983721063063273510084421504461167571799119157529465049420850931758793950661607920201947250539921883525522747432576782442058035755204247242890566743892306583292134179471828608520876191293484166405355311397743054418116114273967300265300211043042006337595463196282444935237112404075023551479191859869735510759812466466872700358494095872740019284379288940040051737742151503537554174254652194003707781821522787143905964368290669475592723854222609636980669981894186915374361364251921047926108489348280947477712603209355859293103881010715284401595470459816571133659294503371655316838936405978676003111149166464707210228305478001574665266124583221674190247756160355439661759935482187127348266125368200150052942621166674445810904468949833651225357512404885407633123287060452470673868325184085719839986319286779835615465027712129900757878261192652923408326744889863846267478970855638825305564679964830828317543628515033317351049277024129856600505590548713073015211864488365277175644350276936477405842991968914954557549519360571461026690609849526452368478742737136214722584598193379512422877747535556386726448661163036196620387286656600990393115830942505630797003679061388409375593068121440853243970155727734649490553230113545515374061372014583684157844729960742816167048058129264564371098433043975034761898557800077041760074067904019071629528253363459202609236283046658638625901471909476157050554593010392015295225996151364891625034247498270609508647761012214143426343537094006222488041806450462321480391286728217066130858716189937663774192607386658963773393083371704193789989158464090571280227061274848566148144790876592386890066680917891065686527338427014556740168957888561532957505626539661278440022050980841500158364193218263520336967053730054565899788425191119165675503727562300184600710867907792542705512815324380533236086742841961276159808462878699129734287301675917069527988445194570477725899813843100572804463147283589832588243737398875966636453383026918196958793263021931572956694934600688214135650464493831988561608093628968458289592282590302378990370218631340592568199710819405938958619503929358601139526491339769032882444159474449861087652067156953759231021706800471191581344700245758343068439018983409930824597655345219951608778086224007403181070214873512134926601520357582725977005734379253672351979789089540541106189446481815850186766504759549279485647793949638755912054877230940838376810440272905095225808702583084573558358936297551103549932302335920921432588540992019057783967726616654846291308328235329427564384227426596694509636837077894540970259108040218957210365921563360005192997772395335918979070230534305730363420489940719814953062901465351732770259392348320155764572735562159711187285114910109886102385520616978578776726692083559814447889093370589275294681321924722800688766645821510134541173992479338268726351481369421557884457260532495077015920875474317496995252745031759691249166543863787497649047881316383554044316854372199460549467280456059944049878361122530384798510648305865722672851284434445281709672315877582952786361705863051000634184904141054365571817188342704101472772927181192712957355887580124180493220309790702881837937667172934266049684458453314023523737316571259887339990416283091319353201686378134533584580257419929601978601341580689651931663568319219316852127664588377698118246780114227032598399493195472533438812516689814425664182921106596997793900406683670449712392888856775424573782635615285699674823530411492257361947658791100718672934400604685769128011428294231669275875242291301819816723648564011121812787032751760817740264985902875315751137397631960705881711268648023827833278095059487357769607448719220340356055006267436447602865436226249124236476901361161666024306936048855842965005066559996725169658526146575483817943702509851860027012726874356591214158889163504743944201729742852565154320148924783009748834921874493888648899625173925446849901970599746400645832217961484551894433315385513743661349442770458724836596755508120065737994480672784381238434094578398266271017953644246631490401079972657100097050766671682828949751164822843019511344796607182438118632044161402919397291987303199088863295912234077342248204710465292922116982038419903514232664354720495282842364584217376939770418341312840150179017598466102483211995736148853426206684853399204146773296566127550992770965033856454218936366069274349419026352098242746760200448037314447777554641235489071596020943676527892006534651521275301340860820787505800953854523988637746597347615812031421432296823418458479193604546406722630914259028263103630838086686939690127036140644411975796170715680384181719103446939613322647305066920181307668834442110884558963125647213834839281169602664089650840866743297665416564476126495084358751494000768038680911227300012700039219202814831642132789475693047699385795860210062628607789322309740101716339370024393622736281949233607788632333589682692482916089697727369977757361953627734201338876666119934057840244125918433947833253305716184521574906446792294047073772653850272555039942277565744441076760090898571226735931632053177331749958673537324166269098169037299789164387592867126237537188276687809347554875691145817912918282367653082903417185797842632160249153200295214126791292484712754518967670983371892425717340786060554065830253404261713859267142233828121268967421343653169234509425957517477270987318047387306907992670071614742493155010403542180555205428070749054620384470035588732423603975443991202342788936733521964308166645299600782008913284225807095804726675848458040204691884146412430649221979836718213921841278818762805516287411577779343225446563450753728386444480299330755713098372661163153964288108063936482425237471089431632870666130098965312832047853639674018170026173037129243909785845574855299702537117120608829082326878815476101454722177263247888527384268540602613795073339178145305632789995968401725715547633864433100673604682769432309997314827456388154452278265339303160754476163128149089246660030759020525229069619274057387166863625822041782304563821527395571253537776499230927920891523537494685005593447906337784651663128830789110465013294252349834402207428624448358967311751210082273550229593705255631124530834636809081776080519793997589679947380231303331312865646402080269367721961969276372949209190930282715434444145469962099450787217403947554050990542121886064871934586302009590207357112681239742061857002775529217446593800428255053428214277940943337439946908720934159481524165008000937531906670749675436832678638636430387740613978334914346532283433260287084795453360141899078560714305413779250164368222749327141147839799803929048729413782736152963749390550501791462946827778208000573840752336439610666424411271840410791292253792488824121954574798300022544628923202036893434529846233420165803393872442974331125495768141871936021598329428526244708357878558787171429576877481473657809897129234486630958150195037112564111481454985046514670091711805051340590893830705413573483215004963893663335293709143670817191328509343294105081587247845916328219215340161923086745864505152522282232407776365324130841685577774120072748324518421115633474946087949599180970529416822180166048663100652480341712626381660826931610935649855410491499639234289883835118695270212026057503131181200228484218779258051731951000559417405866435307940889485234154683415886130298504316661664239123673117341849844413017789352929158515478048173842010935278788490652548941167485114897286786051560646286755039603009310896591048106936709789989480571542041616235872822436582200030654515268651543906531824487800425882064315595542591098773241331949559441857563385383469596202815168060351799884571503829850973364863917088714267690647517191482723876532815259568151373859611896405437353783578731041124736739312338073864333860774907167065106231859568885386969083424323877373820129705077205394006931371399511779956936992226974191090289024126144750143401728134101757250917082773019037760522720860391534353614624816182764508083420917486598159268330672744357665966465923947096062369051706156058110485198057892405614357890006182070966162124481479482156248214365049119670091589603511520185528582757075661036175841742331890522505693178602255082507586126458253992579971105054302190159476096973574767765681998043047340291899824284486254667464039297958404975580664298187383492255981718149023406689304627848389934854244155469331227652769090980303558267619174972148309013598359729559487397695872371144073301593847693977244111333113508323473641468112854843931744180035667822461176414675548101562566707491794979763585758488865458971224821171391225065945635992505155809514820554392256513434482102612617313897049777638258314256933912454078458142754894082657053743446543426111108920072415578199648761330053536238935671424911254623064213540167127740014398151213033908900338518422170875038240601071541635293587001254045636975628092377591339954095343302672329223856605777636421298075971382253592058544401344857633653600603880218619144641742305132013904122782261436384887092237457133519465838733741332799613142214488687925788638662605114056571182646467174812184067728858774743186945579035123816787161882291384444955005221307045794867770158118040211285865411973554564058078918805633364550094746918227325236202669223730805967853392873852580087318458182573696032182190782708504477202559976235133962077116392781864874380131302093597868645561493363650638329005334704164965352786619440051704803889031882982798530718386559411325455824423464749132737196823452475692081639237115710117903093932789932508739868559031372594590117306738188539579671338693993459550209989140727181761051641083850712732193918299937443225264532738341799495043913163699963500950029395966046612037257379274009426449338282919725535842724388124311219428611237124559226718313729814417904824597332783201902267094717033876392450008065331688873002793790536155419168315655955365059705322129432983218667499289298446048690120687537659562819063406921921171834424015658617592365896321219684960527078188701559360005653136652078068973419691082390943788081472113681373375408015176464025194223561861672571946756341378225848270640394137399542619295061046456373986961734909475872709479803268644812852570775321070720865850733758770576839397001808414628699504210062345040833586205424929182630604425911696460325631532848532707807538236521158849107379736217151333783462861018706598293576210894844323738957707740637827858380663518350978163614977370642463632837376855861106541184088600295916516222290418782848249529432962575387627188177234763590467865054249300011985511459656773380215528309284380372884109222835987447297236419817554298109906312651831655207171779589118988587291556191985012992863884798602676577728783485193842248024429745050151828978322608655263179614966037761929319430654476198972737634185917237266548235226086450263341344665180641368660301330892411226881358736879835007998817820683698230819926518513751795851447178625223817868578475160007694315677631257051395466398816233654869190791035953121723353251388180746891349512860669905165827821548213354398653699697458091504177301424736792751309362650576404068127838932510813483980594183184593562702137436151144464696030453317776295636897615586952459048957777879783568454404230676529902432839692435917501857732375406816777919876614393639866275218275200459540994176199082435786161412841884778010126841997507588338892335325442843756140611669581642846237648853993815689395517630487075054698494665596147900563276568788141466764011530261493791775685333364098147925134552490876249374730666254989131162189565558158372425453962930548295368449200540298110095066559168784492217017540807067902886818645355076022526652096804259854140660911532221736832045076638720608208485235408904756643283386734465175638635850728849409957469755521665989640955899611043101140511523782084068505268795359837435079375293567584982683221631453247240191104385544725309478641877519987725823876929771582797812662157257013520849602562574462761799810138503550176986628372081567956402323294608285733590269428142870209962267754353773264509554861054543175655396385365918395324135513982407234110222063553766612922872898842111276508050642179593702529773355550596962340876512345363311362563752257394840857553800568100374077962211214725474940610998081333682311745485624196529230214641087748143278619623377627453056180164988459027832538152652006175304042307385488870719583849899852859140037703880139648069840796877300611917507718266326105187476596897458072480740324033111117989875676268315931174212801659360464513703449516711151633366447214409034318134106008902924952292369072643046849282057334165940513140971462675648711500907239449959030741657882492879362743557440778115520420233093756166791232800849097089210313436402036062721011797721135750778097896599772039475264683148303001949955444164293537985620164275289550066680709302098403069967611845387711739669466320088987672998491547557157773605137146139306086332870997494045122238174898881051676826216557784174011871735391844539487679060263238689584009001725787122824993341391709250170674047263508888907399565395639969558915145131273847396941554679561468337658856534608143089731130175926006307431757804422515941208460338240379052825432722556238730309955669182650894529717631174585199133497568875092758142080434195943830912725854136690262067435055318344176835643704706639708727629477171768812942310949376942022222570417261851658131312556907151892338330355680217678409713068009156714635207063029461952115773954386808949233260276349771918778425547388126325281814578901738261691959979858490233824100765964229327780492735233028579844514576531031560328172110911197656407275797137294081043604719389084405069830019312606861537037891194083280074448373284425624327541741291862202416074217552968844242050792557441171391351454220297637911038633658413887699545533384268631961995037924329951558768552900971939356805638157953415172595257061035722525134826544564639852365461133815276986543883480232162465266487177243546943680695379421607097990806507100780223163717188016288202812029006865595507816973628084027411426525185099043008457760786212159393389036447225418572252799353293756732298341099506614529862725143393268267620035005187813539691525706910491222332299106524603529318553736012049354682371486993729623620181545485415342951395770931004530369754584444145809155999916872935541773182622830080661117660302879941511566262538892842938030740766457644408179275772737239444859589528520351431213377212633706337965055945755141600264193154625358390433384111082186301719152224066128799821692897466736755059982416686253137431509890949201381923876526838794575114220259319899232448745037582142872710727899632277902057589851359649538080644618351812673196697259092017017527785929137304512351144000548066948224719995372018573219382571143216628400702478979871394091093256429946069936984422396302453766181603197591315221353289532997671830698118897879334159470723370322749311528797797153763138333145479251069882527321528861478380453800127191675998298095681292043287388515356760967924129073784806107059355274081125292526231166701802136371494819466435227654459359564347711768643805653075499782319776647488382900532457059388054890318506249333321021750218314087821613273529926492819073779777624654714394211573629878989770265933332312586523134611094283425426041306096184318378569400846571265348535561212222467625753180700442577306238823810152256043255947121083738538292733261806063230994893197430591715264521197471905762357738290269202139577736809013736666793945981449508572481311843092191881405289435628928280201477067258281100987192765506080607675035574856313247178129469913268348324437756685922225073313803246763924585171031301343860756613212040133744098072530010128170129831360924482375990189827582285594165408067679049455938695154026660025441813202938537479512732670285705921296801226669748032530106940121109812395233708799074005194307151885430856188837442030811530372778962155145197602290622337080819182085986963328309950947876624080287126696997604554886066651597610923828113503809804970642330527814272247328062120787592280650851464763663446475497083453325471545696028078858710225340462650832156930443520833515935633477078546860892963859887083282435399683020769023240557342453629465590866917301151863687948979982003838155205994488738067323557623197778583370914501982692918267730893220576918366653261627493133803280175681879573655599132316807608336899538037629378274075581768815816618194587453002526453275119202306563155280539178395408963497904047290679554086252391189724003428618613707686342606850440753199694289246359418555043980382188519563111264592105356001590741015942665412251992616822110993890658587806094096176413009055577693659965991830375031379503507751842396890218352421758665537744270308341980648893234847551580029836538200495933654079433448015807209626793836223883244610929483066256872364964045013993436205566642562218949369905549479514833893874289573274572069694347909682081240044091039242766262224652723325043773418771673414684323826433324449246850983608342498065440883975148569359792536860748933135800489924688700564909410715252217018837538185226091456238765594172872903323794412288697795275757526020460981085550271042645834817531571589848321012247195823425343252499742054209596871354504898759444121013663184230086955134338423703269908907925693389109706627897441108970386901587649690906748418190813260274643148859183771123179761129664537828097067097094404653578198544492843622154745906269992153371838513012359966351691139868061707966148448464224664752590643101210148791467620986933332216175511813026767906499363276636160089420020196936056489911650069294439831448297887426232921827498799056836189268485393442656847175757725232337393740263750221562089757813455808812769381423723386789991095256050165503054952465616363738475032126065863640682063423126819837096339639304102462755569186524736194172831880498312530119520101171441054741602939197885326018425180001739986764769505884263625412842082752039946186555624803472794151251934382878257871306596297035876902391190797313506313927307398599010202981991903513967946305132821346214114007291300747510109751143355294063187553087497008708682374532051241661355122908125435051213054437285838422627158068920560688644820203831661234927372887706537582383520212021954189488133533835619367116209917000808039605524691818110940091560294909921479245383756881099818279662908121074663311608551161151280816301974413783414427741132461212919160191645004150400587579446174523688557630113687723388828572152308756174451232171888124462624336680592123629828655584125323503274888984291699858064544289610403146256526351260486663541255695035484823364555154290931162093737858923088686930162227602319409991916307717321508352427179018039382001656026925410408064650858684940500883105077931950842253935304288898906110555537634625386553132838727259001114983275090034812325094702382070194957917055868275098830608258158695593290779268905447031460162337432270768250460249615426693607724323204981733605013907333586576682793322432479810506888407410725026877678429315273622645216896773199612734783018293667528742867888389641515613421851465082669890989856788712504718181647078268209886330626073967403682529463211924122849898219484246546447092256883258850492119409538456577817751404044317321924094887689647161495408939850830050499899892378216896703372273735858931674566499759011632816306693833897069858734627598736041183725988167439496957929771691690797288195316004214797616024334460190208077272083000634528456863221864372531260119588085415415013805802132428143232468065092574346393657364605403560766301980446331941902912864997776455476341696693227358518765012320731578447378520338022990686671301248968888201824096225853997072702662917495424495722499316322891397121967872740737426492602988584820017906967273034732268425373032004101990374511875570581082314580118106636186783618522092131958545427992811264429075737747970539057478476969383663810032024027141985990668974110827643585285221320078146184156503787141832862388649774731316780171147469437692861543690762561946370864219889258761495313297145195464625021308319370488853967394380623344609570778145246627191368689720641940916817996249351241141681345595971552503426180123327090150572836571450502828736420241523180899382647981392875371731767246859882260814363832474028283460238147289819635994544364729583396682075851689333301361192012532135531213913948542655373753613607992988642932867628379841437795397761949096465525690457915536968376775446711519436184608147022594373990323615515997461616822736357638599855620265465730902081249793980376166913785406550242606550817047072138020864197592940181881943986379383618240675088203251042538152628326259213464411435551019939062535763144424387487533246503014070439591158478448768214047741971671708842876059974943234673382990971810554638566211592959842133585735173476862594957896675922650273882385569748663044616809325054707216449251606574790205506109931961673946271799220606369041277557563161934300349531107497745625708654146654952706588757334812239181770409099775336336822748543787319603111374551576015562312481925967525663336605934548334493141994180877098930295070824790605275472160840227413761691266107009714754685211077824122896561086034437072915423424859338379980830898986624505097858233451529044275021556459796494970149777053226794389395136321650457964641857591642556252987315341828352522624686836539863110015651715790228737548387108744903256116278423910194047535670390169144341178372699877899069385371535017181762381083966826151653972432827204296968307443549313658730550625017568864137640848149024963888264038240727324410164374203775126095657086262011076229186423664440972522128066370364191660971241127020322569641166403501288475237164487640170434227375921868358405128290162197340278929843556778490496456304946362057841628809886857129842939600588913605629629143798123717759135383423234548486962482360700658840072665134763799112060855793820595170004726662966435823169877864940351524499319899508947354570544592319149367362775170914627892442116746962768917019498282483717340895475045682086200323340509636101887493760763819958100875359937077670452825820269018321728019969403075347120929748010816734104550864748484626017433889933285107277345665499932793927011035042451831255924599481615585893747866220286182873626682834512204051118135862171500362272502287491684406634446210087902814897682351253596279486056137663016933411947704515645583622561419038585733942167108036154619854375722227504731643366333243135785992165892279784317463084941845812255414483181422458507875317379920059582967957639871956161252748107862364659828800949584901036649578600503609354892411568808968225450768783283058139490400674205266268636045566151277564935011970401602390919062882817009820260997107310849232701784678093821047554586859350631228401385674656618781316570383923968402811176470227356573598085966624422921248716460277580762627473186094058839039009115972446068544943219992554568331622646134158931217726468789959613365460000992743094059434035270659677783816323975162738195633669225863733521486371237659047222462918802414847231499111204060812193621421704233319037087987660717363729319346196620699870751810712875250856336315327447070706693917219440304360470717896246415290692846413499448251762899354351275734621373055437072191902953633084046259323799956094927254953365369762350744515833848663618340763218073635359926538418366030693441424747642896642497198916008325577157183318647204414561633275868124397055181504281515679723529202804799694456701095313339232103957055278147198039075650557926350192311158017562594613708984043995891589419507095591323682952639812630067112701447934809922667991885954267488518672341461518559426791276420724465977382650413228482336031014237897081156616200268471956348424125198981920551471693285172187684918333530400691514513119919219979462707345506743118468704623594880739835409182011713061808616947789943242102917399893538575694191531086893891774119413914467598051766806474202218738984905493473692961576898379014676667406448743413828070104776755220894975510652509428271520443367881633810889523615301801458789341342397524796764661238279731422045652156464313369920597808877792446706924857739482193188914689472561227829161660980341034155785307301565038248292029783005895015544234719788428291235947771616830953470011048114050320936592028594326496494225349405933936861953532106149637614694052026347064866708646531872917789239551220336222034640803116501518732067179170596824742992941936551317103355854156187734591574048997160530826284949211183256777223795631106003035455905565356044236651797186940373890629436023879462163460498981840708801052207219287301607886431373156818757040400451083482632374542271780003406284388609854276364066498422487599593255250236455060390831167707131382652009894058411591375472401905804296303716982967630197752062219260014560985008279869827448030958472523493499144711907021636799021433929049591770300657262563984655730294652005844856938255671897015123326227888065066690389599524630781731692914426842223713779418506984075716328191418844173279419373239781153245199286855971301568735466521098227204979006131918486078073943831812663456399679704916928789273474143490525261802003084420646554004116832441321384317319197347832082569559100185757946773341353568369917113463450664256528042886913556975841658162539974704384143511512735865278023689175287542830743783059347546460694974936520096485912380581478297173321012425584111091321079033396688215541004292349365958611033093286622346389502009314644920224163008021084316757812642172991669821299912145821276491264797035919686701838474950878140684393622755149492600859267862163490269323806547786467299538098835852198107094637451486449912682980648216260265312236979616574941154485305069962674217524528435298135514116616990597566437508629341969330260402832623914542439130963794767379777473575809444191249906730689527458606257347474432609114715936019988506991750643819782322914402188648630385552871183938926062131825383985646869633092489255243284425595139592151557071136078400627847259232170788332253553182079879660628372966360750957121699782385529409523267105667715717861692598224650129638253374920882534605999695031954464766237398211548722247488735382162047484599644630898671310317789575427598444767422229875576944200638429804602865188365370051258964169430686958673438656269297973412374781557252720549344956969880264965450498774631590964696401593872174630112981731857262400980778786137370125371128449368623458508060307525579057329192702548527134723065615129558949732498263804014041852319037911156601294255874098665351954564503221606262445145753224499339517014334492680792233729174479647424504878806393259151392919793820619428848520604868960330359739509897590666753924828162768060110624271361158172749029393861505008015703286605611631126083984803496823315699970026567744204860960067601503187456274800097662103987539518431543080464409471222608133535914530826748124084738716711719227171430062615535661051789220736395065505094651668217317267894467610153186432959643447672360600073523271128993522936732394449515267590144943810322281229350844434722655172544846708641119983066055092056750600416794017694459173458231467593726759287526782753927479578738730828543572470381223303098462793362485320891759425363308197949270007104832163882895376339065543040717334377716140733359988751603129308800672285680626374134487162633676091620386646405378221486849226170206457113570882514628683647321898970185148339338494772466189749034895094655381716863071014105949300996068082528258707539787468897107051074384980906865032322238637948617598736405127066889772795857364611058489276697214283756321414340471462871619531864362137878952518038062579599945722969869508312319096428753958234868359624373366036568210888214668668630129090394221147391069128395333742009838906808269912602483568643423454204167500099092540615856021647740623424799949976936759676325028913634369569648843067628755519585961069419521882029609308525058267023322211222560491905903800499885451122940035750694202200206731687249894791136652573698775943910754664536499386687097276360172760940378804773735533322051655864065417903200895139724797025911565589931041234106564752117016560330188462638074927393212329444382705033622131894416797625075673056017819165225186705142495771321625447464906886666036406718763522224233113615090743005475906493528982089981480506785502582181775420851781381637150152354669055566713818902553926897372311928165686782719100837891752901023886913353920351251902780258849752955548258825268967481971298282915882346167737714448723005151351910964098863365499293691007510625041036879367124565305235401810286232011098582442476265512970496623958216812073046186567519388503567675930351475435743033400857799618104984398610522938558405840672397339131678373445270260110536918276899611408184310583249743344252565502154962021657330968689758224146274622376785977701596737232617334442957024223237041095228464245955170144160014109107187331885096847675812123214101575242888547544091734468511624248021627867065283312476218133436613062937162647396329374182087977246812758308298468329515846947667864516590503309307932093275885608864738819447573369999812416447771205956409313659953956211293459979731691311165576842975029139684749819903990423799484879027480009187550122752675505978346101831480606321621011084162135130952774176600701706714425222088822926891836908554647240947737510072333273967177919921176399605918971440163128643901606951504245322314292072716599854667858889186160120490019421519115747437585947359384136465452075682509794244304527584551513213520551348015429650244395066513413962420821196300117785118415214645604917481989495043764556399775994114893902962760546036679036281399977763159987967229871322567595211466079288536394336054466204502624733686758553041079790797101697021046707214950966119454948491277414050164207485133255638805413179989886285920826546907420871728619993569125419957390555266719031705395283315390080504780045032907190524912468546094327329645272493860696102142564695949915717554872468125241688834601507486362982050762963633541550629814677656819294544133549192001249871603792589722278594906765628274193902480244111484699376331928629414934444213360663216269527116890026489103203070171565619531106723470895080887722748812596919154550187313633401560158595916129821712348737033808805077646365470525391729601063229539819824125838400577816622679868023086569345694240032070018860989321055755607552003474423339426243151859849299511617180935527579030597342983710182657413575291588166939103207690711241296696546502697875030512676266501160510743075852247211646801909850667465803842738726034121538822304479823175038772951142049186485014991377301946822957807130641796869186741395168997280516166740664557068033345533260131176126538857916724731394082398750880353202151073307431625283798786568318601621086466655691665167384897093832418964119311887555860823120166933166931875671191003580347696041796830652942549198593788685434410372387941423956918305298362040086861103034078023315717415176230399110153607251072724458007424155863884511624702892897917622165417316213136257403320000818755930315316916677206697925036325899551436684907932012636020519374654141879156301638864231561712401230687383825394940732187506039399584785906423654526405227264206913030642980325561888341715955514471581163053359692337628482709178250896209780818376451839789213415259936108232649946390501191899042548629280931766407774192678559119825467756690389800549083076121771834966797061593646021346049282897157541238165255938924021000730486920835646232789730031934937859282918075388592304021122871195912321416781660084484758044093841910125733967738318830841890872989245685667319951651890241266482184983967189379905790889078751257367552352377563505612751837994711019007938732013095432988738032289382096454322017893179889511455882978808072061224167806067971964638006744652369664332508580169353120888099626461404781464059728935254077869885128178578516532709364211071498252988160051139746332991878913035512553066975269582932402667296059862005201768742809150636340335948709389347535959640008701665354785553892314171901224434703100658397972956215554256379472377499568490090635992537418059968841193389262206547495364769104318639314510969810499279799521908914727968726190091884601290841707762582749094697311257217051547105341150754143298181119766337365517323584029644090557837512622073352471422716129275395462999020678509593445032558827762785829456919093133540215467287114353873703360540732359371836226294422875207793303199810294353132264602377768871765652279102288700329460043147623204497669632477134887801451196893013580761284263264732383123296743243017290831426429807804222903199935917296170585974616366440740343677013887008072658743728781207540013219862464451973169489163641112104679347175573910243431242598266796824635366575489516159003575360486637455710327806114734041523289897006709066153584966910910126414726840268704780221606067153507626523661139064208027015756646136989202102382999831392980111943449889803951158149397511228384026715302047630336627374362245030917252906218406649885442284199437904283909587637658196226686450121802985391787024492894647452058242015257415197838023705198242521721646351543429627864652615582621493651714556866156538176856295922199471043478263365716605529041381230416819098959231385730590372644490662538466925138685751314020706799353751341864275667203870663745441347963495573548934165009372292677582609019098780144757486446355087016250808786486260299081479806683469804996471947041012374950695006893261094454252678325216415067460443950176875421987909772892171635431216541290928525878327526642579094772819997341107018795226779494768113644620531736533323505817034972688062055413986071160008769247844053477858352304293757858916407694088080154838443172494295810099689485140833778933540724886225423666949225315277776379142708981391331799771872078215879109435726422455836579939453755138267381991143725683194827251961442112687475575867868944809195407922784331193299223555358549897567742793923523894750374173316968220112294159310033643402750877715828986506932027960093409444121466821395988516412281368264205357132950536463999999104712212983794813129844100091932090126361558819552415422985863476483024214409833486826493000341644458850008864466364203969919607214273439730281833715333287280193994681762228324250225375438301961832330599490881555358948212210699144479743645627238281253937745269518851021757524473719347760153815564902156655246466354951371145517274797633428848474710039970284177854999177031514742366120135758095070318826421951998884234881116363904167510170631150186165837113308016596194722173093637711582797600626864251079298374757918493568884428589788651017379725711653758954592763817574032122409777724491417627062399305567930357501138243031690378737151632999964968293388221241940820218635241196047912773499432851881993925890268215092949024698607413333420235911500620861292612086896021961820355624770631880802528732030052304097477173553057864466211761995190151683952069166687303684090398893311584677769368911606995661560059024388397169186599863126808576431330507188140671831856202271161519849381823198287390125478914587561679045869479948388182706687452583437873096654045435481202364138435912215174123994569486405984500478652330849691188122557305862273057457268933707347855105574413762746716153227538526480110237946151210906650058669531260803568084338262192912635942467406107769297884112294747143309747247160834709309293286718903269175634898175301311921230605035888405725798375742294194411390840505879904212796991204217927956382184029379424005912283642047551029550328051757078022020655419184428945221046239023999425493237258114234668677029482916266058438245767613421130475308786974431351540274509834985250400567211781262321483793843891268269453667684609989974228036907051596890978825758261918431698725652252797672863362490630167207718603392667184616117214861325911755280812151684931604679473887281689761472938669508876263737087608951742211980957571912316241784923078298280574160236760444738170202991778839836956737952057595336251722884774603907234460355561610327922959834494945300154427170917826538697969165844916874548186651437089236177025616110168550430140665865576793087609892538125462613750234045257447558489131772626338997419388868929578938240503346937183528692814043573300348710617186770670323524589604855462412532199672518454568831547997406193585810552261105714007050943275390207105467789566559703854243917083309502425852433635833329380919221989927085452535349219214768714576959327862141716434420367729265076409781033477195735634195679502565316933398672383708832949230167857132467771010252293530444567771422504413382880250138295624617269398781305479034615472050131611296032024637016895734292339500496364031488975447642821148787564646147130922178842350642342335167738872830645008997026783193743755830212719000298289758109872094814188238748710130878060019472041722475475878933551221051896357261990888873414416785528639669129116747844111799326354079460335319619026820378521636200335512655729430084179602309910545971611271148429615917207094479894767859164465437438283090574997345630073015856683742577021929770625146566157944166304827952411661916611286294831169750272980647471823855124909755115455756353871913881152900137141812084899894509902767141826898829081565102063491558257529056472078961956247787431743576159998461197812111561047172181463169354398993121712429620507755554771339534707505699550804939060713753817820109784449758113399004866817354431548909558895413331023921896845390377349037188662004440672136225365060857108392201511206275747409883434077894328104648378591073811763444876076590947866089242509623140723980808369680090361299474955977639055500742240208956720874860422857757523197723862132580646778258144037708350181267956752865226511333939744855286539431432563634670463556992745942519607112607115400499570707503262542063123973891597290037823482313821672802455973985906219978246477549534212101583793936576287979815845080917518578025198686308582122976644608966455151416260250771345138685528076479762742030913928716536335594189680648496692719684174621726252338787305992072596530190276277117876477821960379065903404768711267568300531592801696211238004074613310986549533545367211372174886056404575260924527628353003200959887637376541232361317780328190735105214090483178848653420768265993097986137401347437491076121499121251599126001183539346080586351941132565441154231925665738221333641742765739748672923048456812330305559486923839504187079521016200722343085373801653891849397971442595437754620016799531635543112522705666884848274667866301558026977178676121988869924765372163836331239086621743878913882468065168145017209316895237810365318546431978524976338006024421036410497083341478919019208684405352024424487407176424347542905963461211545098908260157943670406662655395828272437238885462132841446485780440069343236983211728628245946256832763863358156314094758750053799846955472049635733892700505661420697118940321600038478308990180509852637375564042784568998605531477075203147960433011504449612157620632712500561449798703044845726767553810790241216988508433911168364598271569695007120256265075363178327879509128646035561925671365913079222546145659002676787967030144047081949053367650323077222311188325297164433107765026166567686088298417440472371253910702200791973963008992070746211678016831987517527276560322821857745807615819553593163222746847125772367409996146267028255719954558305670853620494214708310816090947132554546404763373412615413283874522967187600643958197417259129841173889574670511350403684456855681803452612444477567131761624083987596129436815092479731514265505852903330152201332903281926118934767653240092869935198668595715989952150534953809109585021004524373186969691527813307989541262206123583706569398766531981761722277167645675601269018240729665259060863544419031562182229691435186180976685074944681851469981316480876584396939269347460346908442258873200649870169333599427292602047064153812058799293154890715001495840128342925179141963351151373916830695042815744285890831856672241585030363988408993183911507019421550707871267502461348630765223356911193297164756994096181577595805093480735798317658033154572650611136251238787863838979873361614241857634482167321130608798616732641152571406926737013079227318101840191397283497757649975799138849847269931257061489122381880876217458618901807910916702054579911367142475434616826044779820617428342301517183248355520508774800501968845447895888154149046697895709490991126875282418431042230563058379796523052633694172751124099503124014561554952305957539423003856726986717607088987720901247802239362849998198954516730042849436120082012091786411773370676458182948340899608979977631947565727112509343537712467530602494709726227438192522318294992850894541027443988339564773980776391140603117527594217091278348143394400731661083172331766585332074273790323042180821285832610964472695761058945045064844475663422788303949707189216939067585591327139252201416579831039308086816084425893906855814967189672614882490124332158586396309523819130727607245712847207856022818179216983642265758937640437285966035058187213041979774984924035730184691211152880968903317721803592439228923880662277393668298120473829156751648605326424305682211261635328930875292485156093901321799604847023012037563744786330558548875649784149718946660296092822912402220377592085621848874054372700882511047929476940928478490131389965000845268216817175852995337946393163258908191719349637474543832930245148604446628136241175683674304179961081842571789610939376776078428441063779368739583052313287662579296748728927827761026488015993210355359901674216338884084813568016838010925630817228617169424067555727534333527582926190549835858017277879652851647285795160397568863610882327640938250201351995693950674650460682579387451981392517233900254226265351809925277605727922624607646370291826481934378803004149389533655206155516345567178838287129017753149632178030603404757234953018352091541414775191628219579360873299848448872974526965705605700352391720907254691926286150892041919771447022995304773003355196369569819498028575334847762388282228580047721647205973242240009290641079020379652564703491142240710778352145336411127637879114596411300407056305768134092915950236113569932662034787518961800483785107764138815247811050454821602500500488117495225453246084925182367509651071950471687189528267998818205928928119634982960763168319249349124094260837454570098682898060081220792262537486337751665766770247473265871622740973561820480111488624712028532424367598928348371346145627576503858200266036065038629106574304588756938720877822025169178628347519994535042533295600958577736545702632736873809385469977111647180428643218412160206479315649704166513320393963995138763063186959459134791902878055116517454867412194059597144851847296237401396415176419229401628872501277911094933527253098165223576024068206346808721653436157575935497412133542086905337675609906491074227538746817229662924267055106120040637245822298257278464625611640144668012401464805471791375554018310232925422726133876015883598015987555164785804080888787280918242686245161946084669986880886801192125786351362045310495945295008762402501690090592215510751242097026461419622706627685271642010593432882958596657643141146529916952306074732464197834695018316023667465298371387390816012125503725970069346228838680255657050356426456283682391344294315920355391364821977832609484931382350570371927564289765767317502040017662592913555934847319337195599088997773016194915624610098995924174415067127723747928968329593132633054557750539305335816540559689820523481639392230884254578594711557318242685333746219559295709237950553758092827612355514537507289022099618481051842659887027512375010867516824571194109939468833518440213451743087295814202126219647328309829584462864803872541386897059460899542323456431494206123385440924387496591527625405844386825725495457328466604421697221400781642985341603361442568832793141649743060361211488263516090833495745658722854739529149041943861813838963279595902340081455061171310419275613889543003436327033114507202700564743826331847455785573940135884513191843544809819741353701994099871351206226998940709750051128680091904812525388631721812714486829352990159086932785239365799350186425398148625951213792352241739615756377294439121074777763120899465152369593768122419504808071950801774369595448928874450638089550322672666332843235241372819599759528877734472909257085114362130028888779686256514158131615517126521532401388313572171278391839196291717592215556941825115763531229374770508173395363553430219903932238037292439733631628629805642054000811976674431659982657516496647295178517042055734735152480390128685961185457660562061083210822141361163499270613767483014438542290108739925535109779722535779302302883196645524325571128203751946948443393352498649635371832869973535556381083729690711074525811895593666713283918826607492020056492483299045382505829590800580732147740924603368553059222119384917676419389009891808861831791719398060113097617203317218146252045044470303485843954365259230831953905360189265531565542506437660920684737348012239280761883757777926746008211492600054551232531521449540294581132432968249178190009653037862611837754289903067323505028458950347438481383608221155840719729219039113791623913849537137034818746049177105158061139025947838240351067044337208637519865995415870646032207752417657834345690248962963066385589913714658344400454263677758635921088297804873673191183067163743557654237984556980149469653587519326982339505034254578474256522877445889082833404118014205130529886460459504074815390026175600787951246360715325689301421523338146622667185820475700847137617319320848285097223094249758083715631635444635628756625042442911346911466470213277977254823563818969540345297521013936815435068945313833598159582056242995777462252618006920345872678439734255332148172931485995313428923051788038104162218032765442580410090712903859679657440082559110320108757815841714056643179446847862025538989757591707000775251308336061603847508236796821778891710956936140289513002049950126681355393557828915931670466693431543726348953879386953675025048162507623562840898661547283434984247987450256249165032992519336498676941023595892884069709278922243091879228841350093108887537332723852828621890437567746714710865167136245925235527488260314829192385350924817501576083035325043871330117691098085178546954354452490471447405882856884316348904023151825453348611248847374946745543224605420656519081517926258616817737294451494029470485153292450994798252361722349868985232340204350682099678727909259497455317590406069914711378825320585339980479682653744931410688228249882347036570240363154936956909879307587808703804027540505085490456039285009536549946657774830824898711083605277452355882691962440745302813939737591980832043725889870607536155346155656039427104740500210698780300155837717583386226158245812995894973226480951865829977463756059364947570824112706210010558545426428669301790375285436050675474859289573128003562625466500689506576339239159586131552086486758289300547827698235861098292204574417716210082862931907194748362765086303900384168824809245256761277134346833080095167903480791319895357729565431337763596814763910276191063645679250078231033759284543066093171423835640696800070005823070978160882382881294199338861479824700925737914010262816184702183392565233762022978616289347233069411421396593349685108458974914929068555918718972851535314729005955113187283415170560191518983012378623612823442306495903233373944167826649262983634483634241532512935365026979394435121431152412791110569929615497141969072543432461271230042315956507801145909674361951489456970091977296051501250000298754147047067476035689553485082491524396111952526597803588855243846883318786633312881057621471968355197844940681721046377031322470496181632928823246528657379042045847024967395686650983791950900770112386407167159234622528723230701493677149156894901659503001021594359698695782903807014481575583144183417465827612023198842750355625632973302002926448099824483431232183324981851780358852907315851484789110201773559915323854408608612035323836420773856307196241988932596082488431010665234507931827226256409516035855483146198026227072252554870284156796767362768362266222130549592808974191983394324549615994365117879928997256247660949073121525257130070613067763437117442262636799442507193266278107071911386542652660408422038041312178069742389123763338553067115166980788891570627627297829397161545537208580224906238488791825702497833006425243697573616022265845454266629543053669564064139215494486081249649701613752399372800152821450283974347436683952529634679716594183414857415900034231937594467367628582995312211547365552596497912809374404447179662821870524162480791650205268382025124863587115615198490843427782825359223359799972191691403900325433050824461789806889451662716869413748912914812970362055343601254702405720057798462847944889551968065870632895970945721437310811982812409218413708863939303479747413336648490095846091991597419949781015377659036202294202012504846633040918719055531576911668399119463041480173460232799955685123512585110621751196132837865656519047922341434663488617904225920296313482663110202820317224921467598676031320540106780324160546461699913984998290693221312093246438892236886305144647035981468027478355486030973870098319786079135494850508864944142797851710535635177160440429205389465604908874028084567977591002775892546984066149692157529420299922668958192643987951209128956476985514988636573298478462679737238733485387856433611288024195396986785927313322306368315847382570937604753646498858870411411408866115222643277632617159347691828001487999312526756763079742238675979344910598542419060908115246580250159580910537533890882269013223961806424485988807704566519290170112895494513486880039537557563119575226910720193502433135597494738283172083895174835281781523128573377112178735929150625655973552969890386549423762163533824485721309892816871249645707295387026195222467935867967766043870730267819605221037666329683015556501522416095298530346833400061201263151786236017246955685795273248179021360823601505933687573576448839099184741113415142700663232094487111344516403339472201254670002733477516470198598433908451118896079925638472968491980898483369951220928098962655709808383211644917931727941334863309865906226750280269634232288335429593089943948459719310866040758241656011911630209269145262316343723447951087551466909368700534209608334184600475523997732426556881126758917880487335163051031069745912957775930884853936092176395994085598902616024162884198581466861084269894898818570436986189380004686107829889484926273566777225160632651063572467640088422535986602968220197860011502841640200667970057523693934968119972402407276592416233852962638489423157212692379223380516199653909324646858913709914361035978608701055403440065429105730023409109984452501942341980937807423245819576097400360253758303978323588938963298041770640008775885015415336167944774852937086229689018173325485103271925938701301485975466511054680659120868639507464572981995791667532881448874422017372551709248476912814129207785884172625887714788039252363301604913116422408408401086147750708216437207139724824051178284050918378029656802982062475767385417148763297889009381445168766058567059641465978747373116503092676618146677440064264843445627807203642141307196781237180455583918679081285551730767125893178913299903872030649395589804961434490602504294094796644802543266853068725313211202348832683236003327687251736401348769383253177331672852150110497494573219008272181154886287611555120427956507149009948441336981852354982696723537637787191856951902461135747610747861150981728896090784314000087917803008303302745295007439501971806947966591260881358844671603940636271723851532536088312761916924964681476938067616531153777914374593579520123771820544733225973852208353034639071115096089027101889229000836532854352337988638912476641301366858142134791289942593537105170132378325211355516551421302407759793368862463352072399361556528670578498161560372098623194163799342088627820311997929112068233658949124321868589659799527138941394345454051978860423039214606533210779032070078214209147474605787478377041134223143487500428403039860453437031735875995409409392856663481084562780459427440182834891332045378749600094402470052045520496977609451820959307610987700556279012034215995941342341945202628411551222868845186570369856680604096827321573372333330541912231816319907519238921285641791140752986109515507730290210691010058740625917975835498249096492850949331184137879975777101912744355599616265712380721567831254320550205050297288136529356434096796252773020112807781117157717799748844830087126936090981971273515364675266651370564216251791329848167714060913822694224845562391378309285808748618218526469422625240659510457057591212100042813425942235534484995961152829536439916106300733525551887527785305794588607459241047428827148771066541821873954346243171279400608301822575627729924976236769664272849793766700658306460082544793397479296230536137473887795134612782660688798599759832761178668397564474922253573866048515860524629015407674361348308257113299873778401610077002118180794186966732958551663195550391902477083047281322931921566475822145741607088566038351425641030876064451911540588121618844344634778819500344785832103404234064650663532147691937698580344286909848124647883396655672490044291900869159685301441730714365447661389123353840672580337975816728714466573875126410406658776973725141079078599611978197458916097876906631810076144171957657719876092226638719957912068697552131667565883191686492635909105133026732443647818958119086044750941440565120799310687755264850137125454325628193309466522559444930976341199329518353369475107824876593919144581964581842737553477482529846345042967386568997101795645212065707594037911438884175782878621745716726788492400347765354089343576044237978941984507908509077024533684819856318600936035533048584026035953902240881931535238817934621842026179172898626990020469715735902999259127377677072227057636792244833178138335014086037072780971497803812630278573482649370145875203092138916460969835635504453102013791503699095088759442431393334526109118106034136974459883687751390407995999512240022744542558939211587421171972166277768427063261505609975350643320161276610545934457208369166156273562362322289848970432651193862749679557910089384952936003358302439001656131324024550407254052592246186979105971870264278125557108597739802996131236729977143382512315901712867551577631429121459227181490808286167244458254365509331528293496157754676113959670331424977079311942791936535153955722560819237043249853857564679627118341662497023264584831988632444007875911850564305966818857753278805122270676754481896458513783521525746218802375052359782554544569564619748770425928781940804050590210665988269768645731056883656010270121670902085411265244338307112045687857307749780600435674627748397864462680649441487967249327215319622529577978353326474175116248953729476689324184110525671165827224625529598725979245101808622169496984096975774907757040053081000206140776403924757503948901919700871632446396099886108148389337437377949131601180064352910547140386724878661263808227124571642414801534365884153021519171159118705256155821574884432967107359023259809216771764025004785165488373422631049156862745682376466267954209425902860604350204990295930838256567054815503387203263213653390810335445068054495531942146156495947632570302423049362172271798092567298377050120206447725800580534125286728341632961475293782150081501883263201881978287703280135446309087179434069275153026647307561231404969189014373749913972541402519765775861185969265932384234177612103168492482095108617690384009336681147726899890358994788634734098313802980966832007159515930344255664489306553453660912786747379134228245867093273142125053850287159510417713874891137221923244488761945005353819670602455302311107087621366618832664916336791501829638827006068559015762065781158060595710403337760996470175551852322485026770012421297184559486713254057342448524050723042725514214419864834131290690278772022589403081148767453942170236365678268415358987666576508785900722743454212459133969664117116290070008589847840509988843865885973761909715193529683980661997683352286341997593107218076718419658976343473493513648667799391054607147400510324132002743387523138278361594426966122626054034376087877298636141182761638153702233851878892985857638571596553897522262461885534958837787827846086712397798065820459167533903723412830397557735043676324360164402429912284899763184415877401460038096703635681575400206399351291505293399439086027364820204544023631086470714424693138287194487866466902565903864069105057289118435306773914443866085747469222719122183354200207814753775627741175734485809276799322133420926060841569750162701419099086254699036153609651966622449184651296668062344937176480313129557616643712596674210700775080988692231749117905055945559213472234606540386288599216342842163639514016776487447187882203988726500001950252342510516547018720077340705610752394434568329127458743808603055563233750338728902388219128818177776126435042335404196817060877866427255905782890050314752242150502538771055147610185415831109264745957129102846263873012284359858347679601528145715330920143620283323866460184140315355116389419466112869140108138124556827344108246609825307476122186174115974333460057191456794520201255590552852972215455734586540691804708433237075562586761223395511189652981597629192265371251412614255648265167236551211817484125112314995708014750415758289136351177613668366609574055058469650941252537050830331992213807309824252724897742592236695311088597669191585881669684632454814106450189033460527526569691284509942362264642003056230845529855366898079780383090306727260587633808366050837235138704469038710302520487593025748136101602133140539369114642788926719507724752009596156678482379565293094040645552197500643236135167538527871316479200142812024043817422976360275000232748701618434648729047462994493162076172778652215567723843847890313373400120603689169052003642833273007359789772727953994763357381079804414989795300257168915688355675274378996570783234351170623046553787962384432550951765235888456253208009589636049747435120443267498042560060478982503376824192570324961297630301519183971621408401785186516223484109608543428853424943645466763984301799370415939781856337682188398276476268226190579323800750698787916510101054407143170653255849233207301070531182242883657572563264876968320075828217266309515462858554131809019258852895209981066650288924833078067806274009480560034176341298271658191120250555172930224490365965196104102633992456306515300220468746849493473268398375539116580099612916742120850335789241431331207970831967453123016900518248261740226783933071426931692709269970959508542784344217379447916068837241035184888767548093976978732036040792535267192169496849081854502250889445522625459393508959453069491213422665712000391197070735571722656292334085452764410423447195048049064067619505247264754096660659894346709796026887885297573599215932658286935570570520538337040670798259191874112516712441217398544308265921196636296492637392598775407753055232430590719870144110662776867037185173086353185222032889335291693082347956771864164881266049912742859059855065184874722077371672425634307958608726045390750927144199871855503142127043239291746981215541884674015613252549407056991612840311584572496254258895369884038377502306079225303510566688730395150360370399267771360152862794099134800806449135442402098117564738634269351337103330214502516732567869751198346680198785687921733493388223746237508170576606885630538290239292026272772093404808549100529080948574284168376880542468236849164765009303364307311942102714502119291371074786144010434933883802125335363039380768879358149528660411528090823666276844231377674147271154949469941845854435586292499733683438827771342317560696110163036524072363180683784919474111580138012833762166763758844502892300270191725277855130374264565963206863206965009921115354952987679111668134170437133784070041556717225542566696889473600328574394648076471906117089092746737073982098554948519941293220206865581286873719756826416908060129408269995777412019058521649850862314461122614646537810163251405243865601862505726612129877432229790409726143468141625865754838139916538502804767191065030983243976800504005623425472339164208147131263664228033414212117959351848332687121006914674099483395330957086031752963943748310044870103443645288935531689094895406395987982590535187639248692491232975433180474662117058445577706393748579183476024671722556373895963583843215164877432158863031679728044631941383127298043288263558591095060379758603022534151029746749813624904047317698571795366291817997345083641461143104993572351371257704671653071013061479239817742973095739645018830957050056533051899495504845394296839747836537969312186489163970680662722024839367301890916771565896374519985140625035738558796785586378732968042968538386082234392958650657978148243236274934400656681323338116359582561816877113399749727322896554722112769288242887014143442064984193054230471059253397187161406133174580998956370961335480778841509261747178128561627764076380935093709286192022211682654848191446950267840146394150164136562577264365665665809103862439181911686985861287948632430312754823235902869410698612512931735880871484097287003694356301844884793941897523632963528738549006397284031324259245862032019391468519279509752353023564941628718819373311813240325815277427515709151970298178409699748925267240824413902981242053713461088488951998141671886725946444546312698308769577927979312989405521509809932611577391078010017043349676192148766629350824973564848618855562627242154874638550640887071627304116202334651706307237923055414252946173799410136979112342735483074204374012845038953476606999239695895693841856535681260457141011433566328449288762476473141713272972001104383778071269674285494661128666206406432242457376012662713228069145211540683711768022803076634479522331455227300338091697549148526044279777410657496420906536225519833270798061705559712907238522892685658917683149296293285525053473107121351150104919153963473851036702381478488306773308107772270966356738271037610452196099088901994890488038602667418268610526749631294844876692181960829617628439191292686241049573004663518298739859951981826236154566200339290096394932489943200774714847281812948101174762747348329969679099532325265151225709055008285444516089193953732141991754470317318790188702466781043094853295336508865176765028135410606152237617461643767182251518356543280525480582468105134111962868568036355513387681520850175620677267619429513807026774198455804438482864522222424077501407321415418699223475692844087400310111180281791221244114281385255349743116114081351172806881668934319025219904790704147234372892914801394003777460876592087776734435496142873071151222239897595247705911300588264840762409668122292867031906490738352685401131726262140872200155093519501947835800825665507981063657599575673562549616849995937150974159241228601811098309314949589725115673619058726411314345255833064163453644844043085876610813768896141470891465741885711523853407810632199962464940579878449695482214370602230365436604302293672546951244873313494548694015138408347351741861705734468777919834989535269696773268553360379663834793693927518969496186802935193785348532977401706980394891351853002411830395407421343737188871374332630338626498198966436416987639021287194480481814544789342808923647940285698437872382530680600436135341964873268391380462235930759928647433966629531659777412114562164375954594419607431635947762871014237204457821475245259458708053631912132091797488133873558069607368607421392975784396121009301841898256560343922929552696283281071289872624126079371988324020489286062454520135191350561873395904860911002532694041154995033422662381542437512559308483011164420281657463024259653321425081635121655918743142873787459112995218080379382432212437174353662970946102834232638650154091631576631839340322656392458257307015782663884012608292247117968237272278019219679837854247532261723444382597397624055443540708634028256335836878503660112605516464146756692107445669500332468850735657411713832286587451683080089587101472602060488120814535666784459278875130792944855794898623797414014836827538337997749820080932554577507869845371335573424593768436352824186258978033896534337446828920143409865422252730565182404805796108730985233157848541735212414826248741358145304590770311470373278958694623338616643893793293951210254280171199846923573867608072130752482870051100527190397960439193677423133008093176968737670328541606372288583064007419408306370283813604481983873513380321430834585876129054189805311106650337590135828436894382369641298046503041183463018894746975852320961884410653076329830689370587727540809227790327426469307912646026431671148069406977646387537302989448084890534392528188292739745396853062318096266927673908749260704555892648366107997548874399706652396471666171973740886883172104705785493859735630474493812795158411634280622562608246606168884783014904980190713109045109150736688533833217237928800954162760271872958456699380442500797556999410882155429162023761223272085338913224186425943359502412790343690463476550440485949690795141254032048526769931791701246225048989524472550648078432425750724280446781983952284551282922463051188321860445535542229585515949690782520330509357021854862673294710989821212779655135218998644565978060998646675964383215357990074064101865493869335056992039804664373905443215946989623997970495993406730545650737414499422482763821191531110461299837538893458996274917242424053406915784693119732220280559414414352076456911057273279725983641187852309116193935241840105024420353971737044662130143840653135382366298691290068521462377042140794204592842474176737998221873279641671674929367880186831236583058497191615101625035041011825260846996609736818552992188945315929205201808216384348948998722308558969049167978734799971756271736926660099289873128985026378265224567532282378574982007985817515840092155110838273274551367681511178809714614339718620724275066771601301199970583957947188112076009918563004919516417128200193115565120862931354965642278829831589304614474133628000738421149721856755007501662326426772565028542970996228118752663787495702511288670739728621801736608562926358628622165709610660985774685035391322190445550695285649823884411474686690604466931522972287934141256179625556610238363012245119304726967979532562865232952614939228037062694192790559561751376275331784291460645339070365680455025115743751478982829528918670421097815348013179463042770035839611331943962798948337171515442787177571766522500704332457985356173205035141309138186185811526819338110900082045477194496779661665610980664606488397288510033567174444585815233775986881035240569555897498382280002583265620495290176504746871367329790911250990751824562296595238397135753014562502522275256024065515714098244158357829916284728038910353288937138063246309382451406479032353361985650636858140180474081090448901055177534344143141153934951316209601976481370509606320721912894507825947842356371195746687737496400305347290464029994236504847453800359087025563700131109604344222955027594735015811706838705013640752266824388845089289303608676298036124473672507723928078296940466819770849967701467591743539255892137518760973279199913923787069516935141450624435071658001147966519936112135196445019112355414096272021519167882573546437686994000254108561620779043815109596665431939184511439934037868654561325984118967090467797161529574285368564395553265501547041733710628209425572119245520762167206609715654572668817655969348518289305868007671241969069601048498940950555778729536201368555144205182293758474546496318856533720609272496422191698035739995626229444721953605048006410653080009664753433425612694358439541404948520149942277474475775504614429812419230932797835850702318965754011909832150260105576633789672498385223621797155486657442305184181948883079875773918449161968856499022919276696315227822219455122555921002214635726599270091186208738546047567943111342175734258239309416624047015828397907887378499218221643810024868203639207491306379172970052939285734350008491587897977302316104849497612984605952041551067024453664306172419966982482257816290398620425825397519939180229062439529492598796792243232425454106073405725392148989436288770949823928661298634040679260591101506716142033944542084063762334884398641966508728230046575818688737412829793221734330525393106533923952747005632503122297380343288155695631808820326909114053836890139923464620461456928219447344436781758528232022226837988681352944480728315724878493494797028372028396382710620425522651641598410086225427329206150356128136063325546726770451352171299226340812226519220046600878302833533603738570393736132154052794578635164279305362597337634152825484844844604879719294689385142986255832742569679005531588142078369330501273289812729722772602528609519758882922472718539525944916526359809492214496854930671419528394584806133665480559132632510985439546765652209085140990068993159601244098033158448892786954948270682276511630713644093554805633997938039101895748525869708292495952492260929063983319188983648678969620084363344221216103012444791029661046948157488897196541610788981954511521016936415322913075282637854116625403048462082416730102515839597089881818633324402111892454397827829561131104375182806561028822934439855085500667914055487532819009493007174206577208661457594662332695925712422149248843783100732376326387959260065967491200431554015771543220245909973533748657800007141950332804019223974501044282922266922027882369943538134215179205275579753285501081984794895746895203250574777189511408534985044693121107538760543274497179638772962651862963508695616441386379703522980504318766525559108697388438353185343925461948081597738689005754003957622758554511386196894028181027479363296510395808776579624091152506619885259153769355929475284377619475082265080193367313841825718534561105743047323419798729046014394863325547727713998325677264935533785333248852097842636380082227208790169689086328482387015680511449995807271378044097292338897526841005732315958170092914356069861982276561224533927026066441992866206906985953931503615963885358233495157549855542191010475532801451440929781765627780274872850710216648839611675191700129145573678305867293522258581101780312192078530658655596561660583980701427348900581350463890001537526855564843665135329185830355031915212736091845849313430942171118830921015812383797924600059279318167038187983549315226288091140767462617174165593841223267548961633994874649008335152694518022226179557184276558286189172140247077489620380641611103777360891061807820922025974782212642174155825214569139061106090332767380077437689877723064869536753513971184385661389744102821106602876566295685997243796435130729860404474931091173738486641080482452221287359411030505385724763773466440245834023530980882221130973759344306974805882145755581711366679134831278364065654124712138673712203787897062464455232521423252885503427073115486483124857070981386723206339338700557496628293521415814521395864701968693530108296609237482007784730798996530078025498303960494685773362384846397579164140599149069707057464210139959254078104190501522313580661864353368185345839759903849824172468128416626118844434010451420204451967430223051191209130759340844949943730259948907751264155135416651657955361507484727910498103241035891195840860397881186945682531405425163421067115158012269276034300925555209754301418300067792998382546207433575001787478626911787710056835641958198239012451299631336174441304923697094792260658470024514264200958553193518895485839185464158879665931727276715482438791976760971167790528406652329317885292008903892946958074507338520314716926811154652078634969889048905746890746897154952724637834394643972688500655886269410696360378419319988859116576310244560034092444567764971970664357211293413678916453758376052408782427844966305077480331683106644880980990379648103491130793479911056428265195179506285918475291765932835188367883978807385823380777209748772420933370676859187409474507714881768872120390436299422869675514248386257426668251236288730584166091022239527598410702160531268473315423351714580389131496972836483356912493499508395253101849452676975965158230660862418892279690056503250563523733318919561476730322448365035861115750185386232209151082834027046040539407291934376795095794520820896376615069170978926930650639239072957545349290461475247368132625701590492607411536423956246241296048446394232082460638369435478795477966881680622679307667842174101280713490086275812051542579815562074099653246638612908965113924884885836873603873060196535001546904629240003310895045581405786998415307375650118600832585010594664669840078759797337795068021084542674566714924971718316944562312761071519147181040555132392448254328123176672281427566959469110570779887865403184892651744363724174014411213627411563687927044256683321681643257817327325887360152195921281204940433203360876836179188891486067985567667848869141623319809488256423554227336376581337019016299029644042145477297409200463612279571727681914117198892265867472667984857283848254128871956564954073763045811900355734052100407754647057443552485756975162506951829349135609053427130270827005817343809340727173200022060621440777571116594966394574929577623289488428028160837916593703868248886294180858108183847390027336164709771891123936939756208042445901704380696810633484829179328560307310881203245493404451940300065375931127777019505518266982633009208880715268617141146179450422009904987065950073656307235147757610175742814822470139299609596432758660097949341668299943385456054345682067655856826025040184766673577159940042974990688619445052512657766558709614908556489356329747982420110349111033638122679064914061701838744559250960117944295181990575015212344059451109444256755210897077237196929610485575260445480944099058930349595065524409159646974877151128320014140930669924888160091923339729571181243760728789102641374455146391892428845660241154751574312423096210391998666350843323920959738048359765538191092760307260392314498519051652689644006442056436963566414820593492731112020989677364012230441865423058780296074623034085863027680141164079749982534516992906008666509620560680355941969350762327704257897084569793646184183210260030970394629303760823481044006420848305512965072592918956630560514883024236060119641836242279214989246059804139310349476292179613860214735815791527873134630923919052961543437408606670492160045905254625874699067383496210263158581705038403802883166372057957636870949252661771151683674298766501129834433677568967857215598177753089342906348361661595029543079359764639269535729479791333178885989201411730393928958917091314654245008569904816726893747808541549583072991626357194777881029368114444028674256462504561890739034293866175204052823687223515866200554182414227708726430158188413427352008747174205661261092124345596336836421574191539779057051458568045058305899589407173866209283525069179692796128826427584889220319506265748480054784574517696329084296494179063137164012283202972474672891546853564831008248545017495465029389023760369529376557937348184720527415995115737941524705296278217911913439986422863158281945882915034495507556583295843381423374348938307039417626534161445525138212168433389891016021431103008750964149102433906866414222820323239436047856574210103852686575674406641152131299378368689179953566656891264797909080064257152492327013076444562297749056343683648792585268195064087997551873011945876885885848714236360967864419423289484778149367990249220214437473956834864533258395130434579396994173450132423034909255797482987327194380211855222543259605104610155652549394786632014880387221871807940908107281527805769370982190335354643501182217654090805715074645945450529917046342958783647835080733582043945508697271619487521385811233971547428591455531987268620167767850409793957846863655397262005605820879474157256858254565029133811732237681295798547208050455568823223047840996491708455648329644937633745638003811074403546525925030669147019348948690440199901668026473899594939374832841259410675565040758908158516936785420639034446215074261155469799813878758059413281001497214750278981070875958241817046208315805309192971388791441922685280511720552337539193158271900494474683913517425220680964787172973676755971386188657589168738278953587304436478397495425361880714220716131571863365017825909547206663550494493850995233052104760657023576261612981962086986732907896110295241562190248567839598634666799797077876737166765709041051426563689188872150800155510762249392214855332420774647830192873372839374271963953310547291201409662918445658620983773931877876551042281931765220833741654445832142186439467719092205804380813245106770107488120455767898741029462845912859482715674391452780176782239126880882998020180196028427082446767634782098778743698141477546037149309887237259942322793041529861115899948612810845336757369254913352752777802966487873231649088552126954376231519133419374260087076433775833963860806674004307677018770818047436927168188838231508354424713356871911668737009651927921509657342653933178483681100173704886695592398705510792454937913390399920075772790390792724353711410623354574262314335988992438081543017599398164811997380574273167937018101473150547799916721310374153866087130172022363679973870070693539578173717385883402100762721100810770237916220419435281743064275381859112811298664380380622851653128462872144239269726776816560026350342726575566029103929905956422934171708192204654455507619816534114812314293238605369292861997039658454971978618524799407379058459612902366170108829724208911302986677945298154095867988581286087178318918573873523664231538816603987206643211082722046656580976426126769780058533888988423075907793341958444741064816488857651250491565649125005002625643667605359878387927798562464274502353120729931431799617686999084719467436361808921089785287190400285709550884882512744920684705053123982442932794669790273615337540162675108679527161465411314298104160331943452219105754894631609905458231211148168250034694571702933084711697354078442460027163483394381648946053486171748774969067934800964525493256925593500372081616304487549165869085311407145667556730227160434099393519111873103517843913371838435019207613024919823898382727596510720925370058203661684674100865185307584731340301230502686396334593421638324783141565530803819600819880023513703243500476478043174047446712022940070331804109041678557669941887195287328541940631746111289551162143377898283335399367937655519024876278498288327875497485246127858012035104738133289659128034755102566821309846771605035386845498181888557918829846738548740495957787068562588165504500292229785349492217805401084925337749528031761790476950488463768760678352678896540157297154975663203119568706552748730415877844166061488748539516264444437035914826580636975012172507864584776071244006512568575115308441926525152822910509610422609640744239804246691374241339892255874229573391892578468576963743162664310490316374953678770994849020388010869258222971618083713564428915219111640244447675690002559362563541737161930807590083174365094631845568117316505910154798950523255574773536263113066189059231629249705361529446560997505149610492186005838631773173464647255727946433580054848106815770624254110172656991463523050012152538452873205278445471077253019415644470774625854360201861342774877178210131086033850367467878338676333381794536736575958352044080544854244955083895134204912084840299429140812338693057787982892327351671264491027262748673027691288403898005503399653356967915555780548253694652262649815094696443161147630422896843985549318673597778978360223933494234030331368285789763202923836130384707004532547161006609371622992663487304708631585146604028652000887191658894811527746028810290986807237199106294980331128430395584923544435058703082133739902802768745251075340836046388851289119481888295278711222867058057380194458451290343025438903196402002683402657697692562719758855007390834513829211198659795226380722269499083583261673414233709478178703995541735917136482620893356714010607068219953459558219612359597682161331230108616726515316582944731783333517501480686460124544097058750214488894139322880229576289570919737903648137318261315114144796739315130799030536030802523937783180194026465998002645562233572551816407652805516988770778811611614362923283838785879916251840087133787542810762494632002163013582837027442086464785781439212955608331152453046871410077566103872177544678868025332439457783295807878634560142358826992046884280854586052728280814120397927134858916220303630003380107129428532320526831654160913488153579147003282166417207506490902449168849737269673271796675800376822932988421758423678566219332281201639651321415733402265949363366408003910153637950704199385219879867415981108964802802424690648215486159536348985908946020212433550136150184165983159496439996641617134200133258269387210578293974377886281548953409837954799508086681491555198651462418758572265391287743240464183040828083679711095639572512576481880715287205913836862984601272574369145143101592319755435402513376857438047746768923034027143287725249681087526326153378697036787494769312182340720242690630740592437572438376226231923855032988526454961362253053423738050978782928505597039552114382359186297523662586594298582550283656228421620544120253314308473922995259649154088702593678187890089445241611999451242721000990216323977475769661851841690473220921445339501308391624282065282897307394135985189991047327507177518177993977474442821098028524119751244247483232745013365439003780003385217881698460370677761539893616220119512570596331998104460381818516872050996906606526205384860051422004703496870901895530995612286230593244893702552559715365282252134583334512816275388296868264167524975582166237171974853454512364490499400652290256115815331999577444168084563270343419475995107339085351067720976650626089752225142045424898139198852335336500775759841712794149898784737614325663474041680369757361904415892641487551894419648216892797178220662253183211530451324236600072413655835666574656966909381745446645193666519560759412007650912276063639647548557507400719689099135096573087982826493692857000922513412690871586007166576884553654422050248466441112766871448630790949807100706370970922060951158572495849651471283070518579423391487500132216124693435482332736465913592492111754071681184227295787302038874171232019641414596938364056433803275461458991482027489238358208289021594823545917371522713327472320218118396706387072769532467511857090506251936644996823463674698689923629684298427927838413851509929379785940977472337799022850130874179535158730483807523993881652902666737916895968613232839529681979155310189360973079302026834921533469332613962619824012750749694615343869165512048209957540742723681411655188955875833338170632544718197765185795025139924364698643155033306416399530021243256735341981283681571954731728765460575406879410291163461104614381908233441863123803188023937808584281539649188419352304480873836215313781907941664960909288736634841771185286773821109902642625171788014017433790357062956503077029459398280427150654935526537532881091184296140235617121784679868388860470759430638682863290537192391788390777788142435182167170801917994152561663016204320269318770637509124107400829349234023736939805475623706851938303236751394367413400770158563477505517445734211861091683271861231547660704480391607448742609896877563004791727373765171104979452338582205182745574185502051999572000370815339653350595962980398716044800395233535437323940256501698738734615936117296922926929917986723897948791539082144275490173923376645824330483686074593490346609630884547863565795959854204327684443419674651145803627572807170109852541374863942386881845054419934207876112894605848836471297529132156546647209636386605185821905022239122228711205266603927433567509258890645337491015115647004672643828482577904689426777873746455875656780422032245109301590891420688876422962979925383667666340317771718183669639224842883327848658395693852353429735641518313434033706984223523590738139970472227695497677055450559369660046077363893734245017073910786506570896289302969792621832850702271088938172188368100902139861663164667130584614615458924696048450226059299191153619162972894167503446899274441046812315448720447556964895655380969382203380159510782120216810570545075687838968897841204187875860249682137746304919961355584188149084849255374047470919710165946795716873094512018825940711835314900737791453255884893705902235660433932715524462674397855108072129943408632209291810420753034495767053041953672964308403698688197696138210919553523136952464422095068607096904500407013754260413220049636549404142698481198168562194523312830724843777574624218060892728388816072698670093788433288183054129012625612459368009239466376858246185331595038848166725032445662733673453482797643037003326161247779344308541127200478442415557166128711573237039741193436709965416133979856953058580678801108964394996004794290268408620829869289201033664380022256880482509829872852214026854243320772610934203595092243473300775340521205487940891913829404694149587867850221584460479789121115555977263091721467397592878500036435685277698202419686676545459642574100827420525854786288543626839732688478480772462585917399334147234494023213119803970909526940722989615588446753188704832939186194885604881154409880284164143394588941782412500977933568638638846416798340689374095346757704172472013673411142577854156433228988431390423425070650435202773763449083808310826875856490627300164177819399786933107350862849027431078156348547877808258478735620612048635998904701698917617514645421125710846307128544196123563159399805375120300246911928807069151739131883440324847282477047071763790156722443537418485206251498464303334097579332280162371947809158930350315545942786450315098663868458847934307059653612137292547088963874702004557775350532331638571218532137789193629841851722740431204696583131161411589395052150339488722033886403878216955268913703747553857041956310925503683580707822812736541102750131934838340179320025698679516185672079738981497817549166674826464766707775145343182426411366220317692424446114009333109841372351137575035528351582373499156465672338914452108561295804231226388698879792702021732296551639959300565554406100163200418278312503475381970801222485197991069725950745595572802125698105290778250375014017365907471266793731726600673858005345645472177566124726324105466114708929526521786953261867170946252946713885134496181160350330216961254329260283657253389459641716490003962825000139022304350177650128516858164901731879585175959264870164836543527658817130245682605335213154047758780896085226166802376954167835086445313572271698221822245988537185104872853691256368803955914696360263968799282593967732694268285255146485473295234562013224504423323628965078536217625534092945719500518350854349683759073246442975505075864917071034295253763460971460642211431580633972682092488985458603984222921876167839163101807334316783378352742334831888842224648089478160937794587062832134384372440282393253911918872077167576842533837902357379396711439902901125248258120932107139007915950462965058288238680678430731167548739165134685871641453604806969220556564554286341394385993264410132109759408257648696284921991329881816605539600263599347981632197919489995584408664314675602263562045926869243232608984529142719862951659238648284899858426386020656151348291861513723758198140211758851545170292790334426755377172804673148593737071025270438645530183193628736160835996075384898759291239130866620019743502607215539784392964349871895227536232793433771012571165508872097756714483700732772015530177400583190239018513719548816005993901374738804700400502836230326220987754329130167267843255356029314614940569273769602133337163929488192868088635520710777029178492377155282661269658972218675869561124264908735302515767800442338041143039587206898808734282760874597327588331776798337851169343079503014537757074854693896371995622292412168365923635044860443356067278919832661573554568980652725050509809314629727679651287905734670864556508738371443350231465465555290726300360230418242937449949949903947918123882327114293993051924113585354632928530450209305481064741794976093229947043286207872285784524343321645909448820348763340280282866707410835962761806598952482188969684492367365073921471247683090307594520454633120414557869876411552202053188684566568566533332430323096312618073083570985255270801032610213023268811376536623002004640804872188321853884792653467428390798552368396484922001212296488844300076474527465512791110490726926360718742454131180855649470694353801138034323962791120476919163255126871259858262718688903850708646933407182234241503144098370481433373171624799239988855150817157108844742584247685558427253979138060982738166339922638759010661563063554004506753350013102435773732554797019352438776972336739244971310456616685697280692250393095703039968317768715500693881025032244623782260088227250393275756675898471838880542076144071100044383793843200177079324085452481454127382191461192032513203797446225833941354555692841288581429770328473941246916370258443885728777973427595165285487103670495708317684063784642492550936339703497188266226102039432612690110878121773059260378279971661094729279542350162897273322467424453235870627014428987056167092543836769619003457140197594267482588547354082485936476996063490360128058118860540129926894535556834437280144633822993481823030417349693973768030293021715754576869992923170692078205752279926392101617335919638408099786218077109360118953387519717448683552240879339398939769368208085690936520411860445285824855842460664336680609801629312421093867872010915890612620521742304299631709131111334629652858543072552161419757570801903638590135463654366681380005500711177046957963468985313663892929981249787018685704892648718404584603280673278867324492278789617597999532707247256550769945736622033105788380640065719807913246235926849586826441871054818962838205249434983783860100977411237475812355636264550500310094991922328093958542933204333357679577357415465055626026535496008999704696595439094971155883060255961526534743425045854818968653947492385799008072266961694296086668770458245252028992825650925838964429476545992673938059673831561483982020371094291619229064699481357280656540711072035283700243296585887510823993082086526910700829787700415045623732061531109741062342879693728438153946755746624154336563242825215815519864804375559478722996531946827806597909739883707177186073626682974317177745551241565356282794100417352259097991269435720462099381189448815588038714452820510843061480635004060971497059171226963407381651730243216500874011570517620047196226386168293159094634272505818495989241819588481917361935302070169782590013887194968395215274807804894804337222654207600013357188151565220022441663595218238269741679171459785261875826783324831927253182567236394795279703045773256826337751768495159163291577609829729290496630698629549978475725334755548989204862590724677462780127726324947401359874277376358339973342263456940919854170216393134611720407102460605101454332852719097759741914317356203889861889757639654487199958064736529667322612900476033378597105294409064667717075141761393920726196788002325721732986118534599713451265425393856905230586047687521555342575777856170762118654804160764160940161514330370860514501907858947959966490859247971413219193204790805573466238694576333672698229738031095709354107409857147881502937828827820243395167243906247456058776809110019440918115672948406963634251677253755606881876125441083638074286427805395979260571604425644643889489643407610328239292129681544965466234046458186595356628085864132086414135274523393844513873050504717507576841137837631518358781698142542243465941454792884215391800781882667712278093065417516099422324875185423813550133342836402314911419424227666899473162951882506513911710759663756890338184162396528991218978237810476253909750027099695802321176635850708333475139246728602010075656056987536627719276021754131110132936681793809754731759185903351927425701780695231117892829528779887699413431637435802090400491885659742176084197277686142885474494360190436338949576559901107074337805227276035897850758107951018703106736165499153399130025626818585965058910910087214294805799366356267744546650111450931753940604520352708055331504012786851817469383259302874745457621800583149517273049456825190122994068200323288604130281173265298213696063121832982232098588582480540702188837915315984445881783013043922930264342962760170816208793610632716883295044217142926902829548593474462691844958908179345304651148650837816005744719751864589923538096310956896105820756503005750146824472664836864414702875099720213432817994704685548513215721328854901272205357856501923457001094921649896370400738998937267351833959575633016105218863410235367529651346846259905135562291147158958905402533855372293684221265003794603390361537751488275796178013326622984050078762475960807517751181245649086301659599283920478563333051024836820400817296631758895440200784128939752815809796209362627939794354333259442734052265630469650282297649038216230601915658788600964624842625463247194761574323009835498288373761914503783242537130118527854235315077261901353323551313673981101741704919380388976832236652390650198399833937256772301466904323008117265197460854515663625501085131083216512164625717989665426746268628640563942213331309110280111091061081947472839896488615050280008569849719064473766722756280351304415159813809950793755487335604159237170040663498379145824507692430500257833106577422236264775083227773972625160777384519348269996412598130746090095615946339440245147128775613552779735433201559090035971468655208208716849786251756417650908493820309629841180257789006979700761742819317584013851917091427771762047765809070303412551295326575235562711523641276867383563615135284560600610702436663529020964058251134109729513260747420825462683620033528590698956509979559764454295946898983972975219773343505638844400207507383450816599500467090348969715050447490616442851356690965355904266390544901824477194127337658278975084955913954632009878859905903371370963036422364255313291527609841321289214209484199850086318299566006668314002809850559332953231164702023641192715723679278896154956609848253442064444937231661527695484660419892230288772052160738889263068026292069984411812331232581074497846509457812592638044386881821913232536933104199074755316770488227730390682122074565449880175732022528490488538966495495539782914516898775191716297714837780183488215070110729681525210693746916924728150955098735822010287781833881952067952204580633101410458154185284389296450174781808017898727563685039278002958774481859534281548183090934738886267840273224142595578442061357755061427962563018060750548868054402294546210325738169414518789172170711288886241672127810836098208467143268322628718363779138876294393252671105878171993823787888961937538818220559697052276554489390549461601763037466469347357680679374206350660526891814214140042617843043785314874879662085984752314009929831781906157450584351727023359259600218922833788810749754286775863042750586146753365867864984392730898102787639631654147123896052841848634234554924746821584949557390211468687715170175326142228399595846534712073033655658181197134837011488807849607103775389841563648109410925383337420318085008749932711409473350696600057651447208730946661451874081545726768819383875797838011043224152178391838791372642988733718269919974821500776010499009684174056558464755938710441741123235514168663334363752976810613767757495151328316663164210943557950448703910080169029493285738662098961925161932053577530831031346199340315180881783650567853443651113707893932507341330590457240703423446065903321484494938265662984484637504167510007547922666676148476715729869142222674919866946668993845534584886065244861014706024212548383541826646659402724461980689404344510317251895994878694251987967749455937808025654664831569738955806113028141416593319516487239101179268676939910428374128917537413615133537534762812047055680476465600636879326682600318404850281598032413929477279522890896684401984844494024277479939445743761136339745407037119572664797792990328660586412761637822661214904889552269380923880875942343307811008814380435346853894145981578854735731570480019008287041101198760292674644421417152440360573291981723190032302852991130352736962618488597902555606935030712701695903832062764556080309231522860012942266361953071249812504756138628140717534775732895604005051426615603364307967164368398891542274738082599412630760971361418505164197760508642499618197252304265735228069006416476227269273130434818569238698675133692514188366735856566548235109358712634503100593144457254494170710776829530234334623637193636128242285413981011215115835463887441586313706112224139764330341213081468558970269607492588056678187855424673505566346918080941308882363300318171162148639072521002109766808882088965198245943248920795042757214892513135755883710260947444704972272488798898566905351797683174924348690288333341123661659450460391780118128637374909743783518667622000932873197557603560241453728052283289539478819788403966667610361817234841701109040762773352911413522970663339817425901310339315531678120431228114652555951452350251852735065979835090185409843430898251530760102709243271683929014999435111309383343515290914905819023568900833996396422132643281158663563361551565080565141870999630297335336816887960092282492060344242247032059411585480090870334085215378101613061218096686925234229038450462354400068673551151018537544957208229552992883578639547054386074901887245514849964766115478293314161238123973074923704322263952353784935955894316279677780582833802432340967983689527730945963381875640421851653236592568494552301098453153330029488850803517699451286803705623859051765736354341596541913329979104784985064998078342763482986979360361777457293935764629815820793068323933867028305938317022015296799071779567065442649418661235626289433228620613390182675643939319339553068081290824757606370788783429427099118748838191546013824637598951386242563685493659391493361879287162397944678407371255287665670779400813923728888543968137774963408275491633106315566033810119938254018042321392547243035061187075038996189411237247696724327539861952347780765846991780387789809964268541787372485523660845933155401027339625811558797982949393274391180905026426614519271407953597268853288662398564650170940424570900699400439716263855890415616399608345829101155045809227429226714797244874707480376702671077539565001109535763175133033211232322839353088531081253182080070911318113156945269947164178360751171692638493488029084192865014292103028812800063234248270381553083705296908550388511851166866102761944612967288811968670831231586509290359311563440560509770424559083243108876840348884589578136295610047549620180303199122934703827683605993827223882209541672242332346195694757932561957525142671747930467059949239631224404392458634033886956194818843160067640246162179253955373019843826029982417086180854632885195098829593762785671028715074699345523114372393145936061390052314412897124763240431558983047109812919089787034070851207102779318583155150722614050017578691874095467748222246947991948145761892347281726370196363243902610760208171554145313278543302724176134246921920806661816028588622683024601225933812475458867611098104068459674526082374383584368662864587575055034628885887586848496630726874894936456460546374351816624999107742724318109163324570081185328261616690524590342818207623303791411062773958018441806810301911357459194684534956081357569831769696436222823909633905597310289569207526627500958608540742944792515047170132186205488021704457783258202550344616961897070231838891497552841194295590961468855309371449163174495668793904729954024991922754423648102239484664311460030408290482761547727106831755205998684637385340904544987244569440968308284124991926611763178144149587496582254525333393973638215556597766751247484729333604280503134170849908755317382489705521773706935968025171685407101986213989904797565905271667006278671445507824484585297530164197111069336091006915150359221256617069402618794676047081271051899586412223784695351536439962630006858195735941188253998022978504024851879434561764339698141667878570939300427394758610751508427158754543466859433463020194347043473804468134317174319382249984390001243594202163842257272110356986194100352283420842929741241233028455433934873065326591425791026497815034797190265208401489677680637459112734227244438495232954899863459698923517166275410619563617359014796722844719762456075240789810621598301615600115307330089673258638783744745981638223548176206948684770882425898273453036501804784107210049251968722204216536119560521642636743003798345230490795006114764224066473620814176800598854670382440279829985028339159481156688596273806446077746575345727800662296013818073621504849047313045717711991963203934777289595825912333696357992648928150677149699447988705633559968892210114672892625592648332931850318173660661727444575540747949451673234117422333357847258130523845127325914763057704609971569418583463115599032900231147844484415469503840087805066081497399183023545315096840350691257824985325279305579165246665621033563796002086977907684620686553896412235006357933781400020480533474721202092963529239793116959036797155075874773781033944997330044182152112361185237758675687853990590805834694112349677951054144277718094088589350583569524724520501657160760625467530950592793899381297025999716516910366530946474346227516832150597828336954490718962753046551967159169241805614219379787841806060698447136192027312949868572945111504594175286244167382367566746046052731237471234112672387816630961425861884223096898833951581059905184247779488769735100783068815160975296742878157148861080607516635218845045914164988276788741983625568244633158163614771891565387205617217623145989245524274073541195313281740011484072995007127564548211404144206943453817660687221839426481017563697300792235001006697970601776814843738248053518586765273881887876970057394849505623848019944945612811300671727846697907520346827548651925488341394878548108807701085622879739892011860479911308041419740317125539029029832009562193625525473994614313961184736258110774831606466394558674077393654395870626738476508540383133755520499145217179785306172094745702134129297426296793528367941478892075148448068666256544899539473701112145134050621043855679826844340230192684708000055843834913126371804396753748384667818976287276336344925695319017692643709706401946324086045041974155802503582997840229876507737209577932217994947126814058720969571355581595500608487109343568387094286920481488778415481325815221934224872645357985615445670509664477930395802653885584592291234728853367955001136125169646005010259754444611990494454920581899719490823235475921431217885146503796290456100514783362325770356561410943627322993448432315507752680161544429474986228707772925772665529906530567681258533634395725328421054047468989713920625022033053880822258115613735748960941459302488270490343888432312828667498381269584481417632649017998907804752855846880054647119231761314820592359314044819447061657699516024977998148925696600956315532129892653652123381854088257472107299517387848210223195898877818181307201665298740276514687383803289418019727350087202936798655083640117856579943619674892135206717900054720274809092552628601450433124267086448314627670902272577867680320394926355070871280375018029309725068475653034134849264978035357865321300831037633081663615034130468741638089091268282761362669033972136594171434816862523919481686860898956901831300715315081028280936152562894199429873757989859714869388290951316543967530959068968769164078897996081162633426975287683609741629664066178111070144191195215606099725215208418260676074647559620337908347297940324308747914763126630675166261213486888290985541984273450175446476959512187717564832031915242190880490923226423994361733437619402136655945383999827093294054224731759702177491279248065014829292355152993398119507628986312629346371186973524009053287495481516613683411474561764958683014274531471387655285984134774871715113625034883418848439556452001438324130498032808260471568099081651534122416364720930801390539655931937827447048448777539423919460987796441229371129382545604362240085051024144060686533251929777228438802541306938959352342091513945117024296833892951326811880592840515265685706207721332182274589946354819145251577705361142672856396467464899275040388486101462581720499707893748225534261579560090182539458483658709832048759007189591240608285878690554681642963539104779564755370727010360008611130182879486482511508870343854334015423615895922788775875626318876390889746227048095953741078688977689091387674859708726674454224284189261231625018139818173151068392426893017280871428852007318788947311198054689289869544032153850805455342089899991131236541688095357338291078987074038644333146069139050352693715680311161990411142459363511984801641802096957069945347118331538175813902909297183890903179055173208520104219554898337032767012223834603809850862451663830294487112921526154871323759282365437539193859444826944096528337611624358666477018283019945457348301489285482180015749888027825977244057286026565612233107589427015070385047523726707624438107402913972665754991730554123739498486072281822633698014096131042112583780565715053962694001546125499463906632513325089949094680228984172462154344214569108001710153051090115889704625715976990501775349659481383246353735247341199316518305009670084808144633442139443222444049399760136618971950458393396948731622401005688273355280967865577453274212214780119779086507531318105955365757215384358126547576487303807070996004849558699623319651155198352552075811913170308030388111170215140902108657725496314806466736817712855346676209378904112648685545786514686742991850818205468241890905660899426880000227792278936670349554136569000739400589927630007982376924855457002962337278031288433682362177461271707838716911611383858618569731535518958913292666720336194767758794067241671312578790822678496667747740134613354980615203859265068244620960447282748926924882989256456195685322666964873976736684971544143164557229768335536217678591353910022689462972618615156531604568172744367025056348924593827516757592028508304838314626768545652496080283058496777644863936267905511142256475605292401679629171502849292545417452028072736763657168657343322617525080599390663684591171293062783598755348700678332193410230989728886224759288819249664889615914465779378679448178979137574414379296913853196677279763504912902078487419244664850642093409160804882374685252620879484963480360279319251992727257419568767949197684178340340266789706088008783999383472135971866665692471308811178292387352595732295049926211403798914581400193182445674710627916428134584625644583449502174114158413706397327868867189641803299774948602619885402714548814706601325829365435982729094025227653139678966715159950932878606351101220333040019135659713655383620847200024183626400280623698880184342175145213329310827923434468914656869718779848456041390235319350064536241989117918862179128715887703276022996934260719987488725376021274982429358930869467792513018870629723605421079937552762431225682202230160123231446441342282034712462668592090263453162831842728807982592075839601981076946473308207095654952347208759591350226259659433651372698608896817733929383868237912493016673114397176062238648031363840579327395969149194734490740509794192624819495933736746684483019753812332659263199998211350272053448635307201559891280924380514873826188193329549915343829917937126182960046747096529374146385622376583613175543071874983360923275720600681383991430089501759486762891907506893770666578052712060607668347671520639534163573870762076512538023103138893939278463917020569018662099889416658951691817515783598133596076174536044102774985292846971534331727836638244718702399246650360573689483890766262568257519646202564982841239591241492820236203879834580700087377852549386773392757464255739260683327116302773785984361576834127676999806093466440484071085831604803569486979921836938098993137206359858345110013642705994842469004932687255429233187827725408333989830004704003012598045354836910928434641985412426147938159672596962843716181266723536086076234686946513763573743750197027882716639236183530377575189570043462193031344055830263350529043968649377227393481374133011291092382235470750007313647288356735083992852088342574166782964152353562954549822585210484652477816142477081045678798984413060195982021501337403090102952885232806814804803340420873614004957315033032033480224578250462333347056084497284842199651149790622260375542661246475774200142490724295302240643528720753508560168348491219176767770210690365438939017302039817839302751446859135739163614748505877675300020763283752423628108127694118025622101659516708781768599562696208106148840325686857941985439235788978917239408817376776142593141391460623165517748139511357809024469379367888873956725025192955266343362838299588555601417087579156938350544775502696860597989319007744847513065640038009126809126924039735168680256077853503236243408463624112703783361757627216802004888352506788407640793473569749919706145064485922306926890800561989875468665500377511661672224112974036319420590701010083720053633339537644157598522977189373665136003136463615772389919300477032086006716982716653588714612065221146502281749131660991809320820423496685991604447250818028133160411762200049550350085482454364016422867524933463530256568211979957494971493202330527618932275779174567575654807152506453741645088006882028862365379308885609258550863838807756217785269772720062320902537789686718255008554483816747244038919221188605630377708125934063553624502785260100433463496368892513295949214004494771350991301714886848681969672012277101171435512786226554211221007832128438138515939609524849104643382012339652099463929227917955396403627500867570747322887939944389445367041866161754785114413201773922555255626468151837122661051672635188284032960759295188959109725922038477493205064625552083133362912325891617158248621907438452914469903604968765052007355849482235306625995590079276676889466628751398748680411919093408778354681661755668138387670640775964592955772283831848252301779123502257046462059259755241499397179052131194885941321036354647572059113235815675251627448353177191464763165629117041852437646777452620884118158249885860143913723478572929260336824008603258722163118983647969926292685064979113086766820865990699995273082961640245849341158988649917336542163757690487802026600079795123845762750537285933624641784821840082289670671287500913437517872323960055544985180165677024288747418843771276218349110062644743902121182022035538107255404629349684241975416691063405124553188441242082633724410480792598576918428781848365714372116111751732106339537910402671020907040802867297369743258639920713344051535094114070667090956470117266098538656141802520373453257983373718062225557280793987020786123231387757622927290635412519652326206968681615339415741933723458190253032340143581929391874599901665918843449535127275301530560253220433345630691064624499318878782962064223179435183211463695651972060300411616783913298999798225860858257187813037877385925463150922911734030687837335401237704245625629976106483160368169145972387822516504453466016847031091680028070820979000985406087246135026850641961133389487661402579376689589138801761828071305183021187732799568555029538101735766644535834326532152947117908484901335490853557830231249920398540694252979409768339935173927865752946332752374166208111159775016010879700200594542898633513591828127764303330334965473666521835498674241643286013934455110229511473394385520289722878555132459472376819169178041816580043649430291848920946946045276542270327551321032233091491281095051126359761676193241708058264222371234090460069973915239888309206610062055004925772681204566397232818658188964144880100426412080286711861230850835836611321472355054877465387985935118445662361007812563327958620246927744876102406133245858158960103308986579062369672122209534958495961050079691281031532272196509497509808098620177112450248713666290805404193780222914710393461115718528095158139362233394754297715936746857961070223494973517887536775973766524350662411836908993414159743770455017605211774491298466763176655487758012753547052552983003538811741548287035989154226322057043478157250793381598236350761698540733849066785049243976458525176261506192365063659033418571342653551897473398133988040991103965494174006304582249970017643414136878679584719981999447715124684172077404421497254073944431369504873272088463064278734987014308396052953240301532203012256905783975245326693125809829538554715449657597953445795612368119574501992780475919854611232880676123918667063658199425536800476738977826474203830114475050668771017225975102022611141772363386774983257027452342467114162694650811540360405327873140834076014812927981733570759756571747189661676592645387266462977904694750101897052110781927302960330252932772008048732815952580961243892750015878364750301884597928522866640091661019708003355821822995169877070929971691354579838543037900487682172245718109723045814589666732276612526939908094548211256795254827751751565890826197352203240039495722393656905614170239213149207266231211746479727251211773167669079624369469247088218780821185892589202985366835624229658820097136285528178519141371946804701763996397910162025491060982319445306723219944157937610394171373691103991608269240681476790906387946959384088948172003497044331974103261827247005728014829872780715769259493796011819376373565140252114777759564629428048863827307327020477112619449200583960508488883445775654111719637905188721222493070671313908612305569466525270096394080461893130478033843114681254819966708549789562995184321072296132333562697213630603998189231769059671306414963329285095990103290152429504013428893228928454007498923855071761537345628248006331457025835450367680640706469482507162426893989248488792668740621880136240714010673957250647707977164837900904010087200082214481525657114275750033300798314002620341939191026640870691447210626926361340726577493486394421593371142563718127595620425819607443483622738617174253600425503870615335525355324928658965567947102503094225517232051920994721173020470345033745216258629783772380773808113725666283614068092160687896341059872009611504919135466827116224503396030336889554655236759419888780749527515931947508040160840463913451494845381084180173639185494009077165567808355121430169392928604581609713296804639840567162831036780562297355030643325007236321536602118558908716577476055033279264152428387980851967328099836087600803566808647234280505430879423409916160035431353858288714095291641327388084798879947134675273026203994835165829566928069750927293384404762410811373890218894917232420139508119910015586585333897581211364681816374053660751002070036130523041221952253041585301072818930239731415054820588000822277581074601595898673432194828175726828687321000715317186506514469762334289283059275474575300235657337676671139776984501790005946008341130796882247189232109697756166547170917765801009230114103984662112849833772361223488768116341805430915278160109376104988823315279827219846347430868059534549758596667888807196947194364707076958665163366971287590065621510862505203658386432413945622908412484859550005919879002004952581473443093593430520786344781406196985269684366661532191329786089027107088711786271229364264603056290737555696331844007633311760921499718105622314657089365008556530401066138474501361053163462227134337318620633693870401892745953797557508009751185685777312595916652700413373788479711053188979871024933979438546619436694438861741194126374928058666421041418756497280166465271328172724068541285116860196385552668163808684874821108148386797545995374539500427671711952331005329002870745137504424676505333719288339606352714713508479212375501515726046345078037585558759441442387543624369800691332585031860506462099469776020366727396888984056773628691507638954519032683128842009404948639333667055059839267279488484715665290677301488463099115142364301097178620906625666139063468164849271134227630105078667430974123723552120291553566322965704827716766697169119476546251589968747939583175934021068012098214003390506514618105475420363503403320702500884318728637227044866312169986398289476437120204923229244675563414021775960008661596014626629899769363769531454665364461701995866155689837115098820203335858708717779853516202373783143192310374800434751183317702853376839166304581414745137411607550344560477885601231461068319184490785867011118557575168739666588527498478669008521167558449144470795831794538647433744984056504288740701826882023989877154334969947674964495347126048855661352477804194147502345228507929107610940268214139833226137046661686871858733168718767494798477278904395243829803905816268315244442486990408579868715401316325509195570744983270184020392285862003157489078750717371612681391860122487869174983771470675136993559316476057091747328580376852781805969260587777815673786549218590223287177346454467292877014699362336487282475231443660375402706413144905102775324034020618305906628040856539795394150828453136133633924305764500751695540374047029801126005576524439112854340330424533121509564088199544888210353428895150530683842114522693028213536579143871228937639386641900716453681412146340377135506007438954708077968868568077193942748656525915667196068376534822279790386881788022558989193310878794331552719103984094805254055333586922871894656017516236179867589011718344187092804395769568298875395405556967843035286830729817415422575651365413453366514503601533207031378763277595732887074223896709491969670819935271217649509010148539161749043308434804219161421340526262129629313536284741415105817674085548632840701038553479746192257146109399759577206634118793378301507285397406574373064816236995230643260224040440307928176679972556575655010137931788228932401995019135402774056249140848822385701535859425143008110441777451709223080766696909960417656333106838245477979707283685641566706986924132824084025695577731305785102497526409416710348836651685887275245849688345091496330950598470243443699132422596110079952684206240360856882276975735657984555666813303466854852098701779483460665301777049228989138972660236835830291525076745975944318291703163497246711986528196772808359148358211854719017182534252365884358828954244573269114807059257269006663600722835532698657484508149820239876042813904832734344212626024328436456153063941069474393024613497841868296492105611022423907326779287945819634598304276610366342739890942390957750237466766193461528275520921014295838938003053757377019314153494614564392229530493848530415667813820977126427478135464723920695521500450902367879836687754560682363311515412528256789561104793315472299817958490301004930282809043677384989258925758205589026161707346061700727412434357937749767299161527115109241625165006966595988507019665614185052229193566488040047961950314513248767437679282775737408189083096359500567523618191207163793402707543647180217730374194045419190718927281889894030959455154276533524095524823830454970071163998101936809457658209327130413530243491016193793515757837580574194198119000837502237615974116487961093347711329347612027087530856199279036431274492862360398449258611256499787386721069276668291491247550215651215342670412031872503406738836090957365005884085024108600067442483239013141944272958717450893235773781722493600368056751769726449735350308391745923808083162319003861770864800620999093175230156454100619087530783247183819111062821066243965945497580914254994661502089208359603827462275010300951127231426377124802536113114249057285837695461006383871170260074300758427308521748008866682415409728369617117032244921929417734384306770609641832316170723010066680290182768605994046915824708032918476506157448280361073570526572396340457844929212915387627814168690632037631700143576656727913814079402099612271138146395763529301673879292691702759556084247990683591164826190099721392908174994684012019199474883563343380627207458511867295890211212397760095631435091197469494422829473828658725705371314753979255719783899488146947476680091142397196875578774335961595749141563568860242665686482516451003734764970809118955048872548422602579146474453104279553332643028840209757925086090814327330650114264606035415255330462819992325232961537714004233215086805494556892843190788634762678650744960484268886492538387193678209902108746886047381768006318331526521156580455411686866369703600973888902852807905080250334854438292777115526095196341380378535189200194075628835809941872597525633665193497124620654935134920415127517015260966734979615040467773629200698491264535416690972615244676355876057624669038208382456031304176343483917516193653732143708516166347112070546972003146044442810263694145536053626367835788036509110136031170762435983808586984761949475790733271113625744577721190407443718760808032092947532130101467193520452067522626464202566437241087620261779702132694131469358621095137648784812101461780671113253098519316743211404536926706768956731993642794805249148355553406052521825711814000472267997182366010867075181893148073112759819077102533475539045487403060412181948610289761098211761149486190569254915457578322508537578534656838596924178369305041665209462611188512213472291542631250872150043986841859994349237646055163994654929676353793847017264062656132405381686373306209329410338688712533733386768979811486952276210033963588314987485413939188633403373431942393756045979284531483571077697844009634620242112515742060996259157017882507916666056122898339262976146688357714910622184514990223345221735060417139621587254807017281031222211751958396617354202316119612997337136896350229265651218403725610646435314973797061428539386769730083378642409295680573758239243589143457953228596398484783576535063186408506734802121265361558627927553378452068881754949577689945599819296003026247775482227529049944500348903588062414337727314100822745933229201564023159547239687105471127782235527436652032683208079509603346476560710853056004361090223150100696300001516372547731046528824381050415860993529661941705817455314355365631325848239663339798987418962135768742684530820459234595868383039842759714401168717908356916266186686395634117735909853514131422709202069045956499785317042226913163457190994718643292838449555337980586749833074451376995718093529009697821660702242016269816382263703915586110189132981962614047015972247488493816732523595870426034907600253775318462655072853514790862801189835484544771541525448981046152362395542777735602983062665947711712109277343805756589775762651501436295362731267470423743350365332044364879909888715922188283405579345674010865246519865428455813771360529423747537823574631305199194765153605010248630304657369851380037208964230840533487386503057374689511421104924027002226063655175864185927223541928517811072896768633234236778008488541106084699246077352206405880183365726685815142045331841170962868526819964526172956055662080306532759720468268903997197576685916378320808233095158938854128943562389724283054036469891469055064305142568488580263465458428189623335291488125446521712022185671081267401532853452851727959763988619436757712501660608648882485225078117893403577866955353078971657354854350197116662045614940377719633523880322337548677093467228715133976377950052437963324479005585443800004318549330502320573519920380111419372726058789690483561644402654884435909068016496971406894576741097620647136720050560976751907598273226124589734435199520936349781513932161209147788219747860528471690600336394612014694454433407734406022918771761042740246301338629701534057750576663677557104817580573659657920008318568201093434334792363623439049502220717683976646510172462271790899951642184807086188564632945573719148053943217309070257903472858955801653394059267501867337239762834330554749314613377317033692231294182601718405541895036717831657020364383978936623343947547226912997236249685885940251380879169831784091338648277456999496510261963411549683070633806495429474147660594148543351650206102248691150099540022111534915699332542842995332459711021816287942396851893195872620226368622131302719279480125921359801046174356539050070443419042456089665008327088224250980283104090823568682867006413031042513423697036754951699857702764509858355288812889529671850302668601859855649497456289002992484642900480270658064815985857601417037136809236283254778610017105582992090597243262897503630592186732974092261768081199151996839086884598384191328634109162738537375280893529227424491788223337823473999358510882589268368341446141332339364887675461413887600217967660497099933593591418074560089669825765165726882043275403657962620221522386819967616709824925780377610831186696792171104425959890075576628278309709457260436529976715677571911476826306959052194396829867961542757177061171261791976206389594611189023014462605343051844472896087979383353271554591952044729444779490753130302053503138107244973698866478313165728881390447873274588782171671233002030917600734109005573058465448881466536136649062234562727201013360909740698940452573569275264469370121491145738994577665628397702115148851525505558960272067259986978276540585499244346619807474303145100261595257008234380121321862441111089328889884594900140989762317634243266656190526856303647337936438120371699468460779653662919908666139380763886258040604235122755657499054092018203700882810297144520647920859934766561728899843227484428110341353461854840679877781142136047074340089614896031280587209718303346070965708670790632905458860933204617588255917317317908559059432177924202070002943199285430732914020517716769031832611812815088569148555698061196281542377712773101396178777680114007953000799707298677424676097335292465305723804395724407142400569970848928351383025912648424123649515790409960963699448261399907284887993879883386730112638054259896826470461203893602686927069863461583780565532330735726115008006687366750131386977557948515330144977977126287621621341786585472802204723577653501167064108068690426986050458688141648918249904159438145444034071584623055275578201038230607462232535544291257265490103375148278844949484638501650074484370516275469190857900327309061965240343432825963266950819200203001581859701012267180232602332888878131040432519089073791046115815423082503844885640664269789393026318526361900296640326565793431486184026220713681943583397135991034590206060102479341887590972425605643453376171517384918482737021339981305914713824642713314367616227060722115840053545031741209118079208523736193432909520088414978682860947412182751465169519113169543063898731271591096295589397687537960022076542031445460889190180174787986059601244868976799800705822144394381205227222436698181939423859392580094665809576607558695478540282704859458091176962394024937529296145903086562948157198666511939230942907621444988680589267981388582911009830854347849693636048345129832139917470277639344087461351458180895898808806191535906987294516938529585859679344788612888491189177659246970257551285429724542095612156914237973056909873034078266199359180420442275165788666954742644311146201645163524526924202333171120797469870824222277068557500280355776598338818804924396600508348482381387711544387557646019230533033834773811077959358319451334795988182302309018372066769768226797743052152442982400104750301114728567067875351017934415313346655181284966622742979915034565756909907081496001932461393470944055485119090360889006929948464376334616633492086565804982486654883417643832062728486538551047976225997492945271690595017037260756284102478546211194345781900601945367478263524109010784489525927084198161689452080198672639208815166964376422917970560404137556860836112128458936725144902844504484310106918992468619251036930100322468348660981133107536312473216383023062447743751498982714190747212684851807590141041362364397478266268364443900073952194765014932676213568352278155513426807672900824694616065317861079496109453944838937271160484536089290037020520950785611306971634257735010395456093304328962833315258606516792033877636767878772544548601936509192167897251862780647045174978747785501416285799020864074713207045864496136216406268210486830076025464244881217761230739130181787619195809283307686475968613272787767607475362638002905252178029953493973712907705204786065469258802455590035015403005092720760185776864854731127552446888920097492046692455931273845904642482409534204698021822739697705676836272961759944854777677334416803329079480049031823509066897283941660716562061241736428900809705435347956090785613434294024804501121408814497762871707337612406929895014644101200352799660299152145998942751737557836461278328530113552805820680647773984357128551272115587023689541464090934886985844810901198331288839393551013089475044931262973264559295236309760424889235779661649526599112333788414857662144535217802707378992592194297768224434285105710187061828119449841198322965221484085986505580294385666919528813123608958564132380528591215262191055709738699820563754476771812358227196976102620515331718380362208706021737855786045107411211577151179568505676467650751124002313510940281013782428279276533763521258192898066023902437706913145953934723564298519422040402196307379891328580885400996259727481496667799021199596935047275563398606720878048636432316786871112391600146464605258643704674819322612946081978222602008212773759220228397166552343722373281338074400477848344849421290997843341284982521540557008010608938324794938238810068471043151684221679379537779878900668342219351542931549390736082140006736352376702609311382835230296306215350114824718701581039543804962478354257577703181068941236016480267763127021799663402411702413728679558466248164769186563825311290071026855188337443746520442033492761026216155096818844167612316888827460943722767636504292728137738370571574611431317175360426409656309299772160254938626254872264105839830648625587321773315149727322139245941156300977157356485628065729462804089088784790310501561849876973895122578882546650609753720785085543825385381609347711021951138431242893330296498422873309435813756381823694903830391107958955873195079238553579112696365202544841886391982518991703747870585302212355850819452618225526931627785180164876941158198801532136019277043948878315683106398891462827444643797025203587971572473895718662790925081168781277232234341798811558270859209070769434564545998639378123600352205874348313522931206419416718789889483760319976080543596715615718096412741647236565426014492192265827621171202202163114753768536719930785770246169485148619622457930787216679760987373543322027724364434836885148138007433943073746182822862641612005236110156926435003921643678539822755484656738615542991588775521716097281407763420513873445319773702180640629786561966598613735601042030037523625227548903127984338094898365432971591349044846416673399925823064301930793153277730618543501985730504980765903124378734558207385315635898901813980203307115598873907999013597033827704786013973799110762037068990238690526252581547614781817765086581066459790823904871579587504186928452309984600491613094366222854859225908683611183739714356609206742760817848120197248613068431495777861883556640526547864627457133371253330164482177033064350342878037915490209894114584449565936346860987450474678955843925820288734939062293011686632765844423731807624371169458639414671699419149084621957058053743409425519962547212295090517373415106041292061554169870675794236885621532561666517305271792286276702144787167422155263125916452843272700358710722317908144898263993474057638107420832321359396773264707278308919056854080677050176206121525475105041990336284253398278007034023434227581339561166278154225356898918199552470616238979499115483352744465601810008640081485607309207753592772398244149940930315665848817885809353759891697841123829214748505484290617340616856160929788700037253664945660356922687865345575538495721574390131340296783047582128030520060052344812684441701280767617928822143960829902424373225617308802564425450711498552896605771279120440417940737959704588267007952175481307077666162659840350982451883938025900413771284958828623327262139363022388166437814415805552144035882191506254012752950009361311853294849727196935238636360617533273219360238177850203383205230666629604041327008811282960258117075124040404415355120570560936232004864218806759380244619195234944416537189882772582680466567130087031571422401906181740087802290937562423739690773029979034227327091990709034512029910394411992349349880590560128904126772675464507212313877222550173806359195278754246507818520252328189067111498599432126106339490623909179466033587459912421831798348733506272005505050730573991253580285358329890197859753824812719893194177619555673312193592883104991173150722874398163356890004823309791342366420678048346658908490933732707887524865039625805013806397986078385870521061582946622330850188525406673721890255250605794460356837975939453981916712160038627108356726029251169929871735938540184815948343161039887121060535647091143284916439756984617843296925042208855890762998481247155727032485289032643860067769493169425829105936385887500973699874974371210330657689239119717774559277910430266393267167041597967776479697169825930632789147414186575032291290904347502292686920698103563213717929123754028989273068552646834339636087810660998547458219137597977347313080771805356483255134950772876906251315162746412718764753226909058825388362906012028516571418274897887205311829852209359917041174378420919249045412116223746040573850108370689225200792749802985051894362303178606013313756596107487554505044326328018530003300927228685900753417179086775351408396067127608848359926920992411403335831638362651784065893875495791286027423435946633549900074357570965370217943518480106952252321724081670937978838155336116872590996481646934861485658251475403355251276737598746633380392531362088457959767288467690943639222729473038661139099803059269878095570020868479236823641135930636510278268036072098158324392922806155663997947700775269268967587460081585478290763216019681597836126420905609296248819602624651192510043926810557524249678150192938067450709312496604564725624022479824398918611119472291444777435797024884684479786701042336507044009632892637885445532019731525222822276267652446995309316925087819089022057653744978429843407656686753192054694799747101349841736277740838809698865188699708862099801184213330788845324841009686845171163299052025885834133651625272068722371844907249636941833161008293782616289065909172200638799110153639764480959066254638669133459609900186029140472083708968567656026495389786386330018668104344458965661733880372037766063509422398316089806564827363463043106711013095442869925132063718179397088098856782091648372056166367634618586480162436063970762795786562297011918994448046642480020284264154763386947991151705137158997471766665131662585549762995312900513644171749298844994651369637628433746549049736159801778637329984509302612350731224497202131811010548743185481074564462493765895086380038901181916743833674907999679947379593319133383554851930875308552234698191200091732245307144709211420409156273539864536996732729603841935437078309053150316429994545020664642466757442671148951958922305634585329740223997251584815465688012672261191702271180610320159025047903216347354028830297420327446358429404981573446244392367774380528375935792174103407508327792972957001985217718791403916553439122746318584531966599883040753847686129663220475410292625801887313749701249667153206070268394934593663412678352709874477926689648155841835272351309661749957025419858072995531911469588962635247630575081928476211400754259379820180163007083347221056318682080886044660957006731902640138597722209945197232339525583952683962734050108347702662366785118652602851432531139191148155678953371157789633635329319152299244388491281867740439717082130363848583644894763205868535489154611766818503374727766428259854704455734664109833046905523403713890712788198944027095543840396304350426864723403748418739429936100117577334769645404692583587272316755846513850742429076669740845044051333025316204271588030011951193108624808484090975560825831083269918346957263150106607215173844579063812160311979386556403532667156416406214250348675260774317667553016223246595427208805293593298040170671536818029206111650758415003492423653167309392531599310647321706443950064219528515932239977836506957089858905841597811808122389759939784901416119061256088524957553216283306718188559379452558436555119538498770285528135482922511728110380543561313693055988144547730047132655815936742939972187017584342065176404825807470478012341396477874466107653362371556250736986434686734612659657880402569522266708449630317770769559462455760621336811309481901337124235829818676222215244043394415841337190962913945980688998517174768779539758191626327698484107857257811778939289620557137135977859331553019138437511227838161874894886163920470375779096495860210402241247597315475060176786830898979301818112601610589844086975829855218862611610198870654852143804554073264048918273277171977510229192859873653301650230459506455378689737370619086662316490623469598122128129003493370015659828094364113166407375781111093110245436541919977604159967504758882173206382244277639345974063176995623706432297708292898481059675054638361403997675207316050291237538187453739716182872151329898771995137447321874806381172611618449323206331767643933526976779579634922583274026514506350250646288808790795089520103281094330079441851325195302328542581380204237132436654267004673767276154097434732107936986238466675209578440157982241481383081848426501479363430804263488923958755896542473497837093615040527080512933006263433954353362896015944542003613151003913896646131574992215331485988883299179511819537928484729164910220185392976120615682617315067966678482057699406021221983122900383136900353165630982453115074891555278607078958985971103286329132322259627885911534165276689200388997749324118109778718259415196513438733423467658741926858547958743789698045014242431454393331760317344902799801705851273080604276224903005024742605621571447696645804755607112979618063047871434491415115127384252424184068477027347169660741599657477675232793649207691713129505960275330160879582645567422199833427522532282852001711042459076395408364366573296906571494023564425447614947570027612488589778679990482973027504760907923707041439432186678365035091393296225158403285145791179628249653259892534615791191849164193365742050800466130572297075459684526042063191972983531970949024347284667666036107618681429087373658409212129827474436839211301712088224399783117483893465169704733992568332268907596459069380041464573798613317069018393157292905243487211702974620125255476671143524446348951647592636974935978284168384552120385872506813279113405202502359808191658738405675493164457280062654896998895447714793946610638147129788706214826130120737780998793267534665139383194705312263367566689559266257604300603156010419213946055656758609956583197213595769006404707015778431419960564456735681042420018219078900978831717172498225338354378662267850582197673369399655813968953091410750027669679028952237075881617948462005303246773518560708946765248851839885968512513155637624249279041745470776159400207911260552728714065623010557979408533617135663196848520584075850364910875126228713197711620703744345876197766553818186966574688937114892829997751955088850321674685388766615556507263637640489346749196865057320762249853471963579378523940109521451546462971037439298172290509545685034782612935034184847558178311686900588690565777905603150386099266017139969944711965521808526933091198461325006149065886272712806692828312958177793812644043242844384650755405684716110148953093837699767825989960047546004767653866735761728206660277402469660940597330154462116896198168202881843738105610436735007379279672838479358900551134398135345886397159524748693706925201688067687143128564951964947510473806432909313839616649423411220208232664449546497901911471375067945405639007205928739441971266057700462649301395039581297244479420647721305012785051760765005359031794380700118036531797332718654679526317335595443523212277804126548227181733285621635293867083825542978169956859576104240997913768583875154817468599451287269760556833206210111159244188049884752126021610528063264970213560470547437074885155157998195246280588597435364332980315940919300264720241047817281617290273532978618905787001172257801516125646217806297895977129196189116747858913375358514657370969563478333959014880063165690234364970681242570117717223985978657048657747406742707656927710342625465719634897934078854197095167813308345469245312811247537406429324603466960658602939541538906112447657746792784148163398677094812833109416998923796099092703890532847441333332603761267581527129892224763435537200845648286982293794432654969661393489991475490098026892285154980091458176785128656635121213671198449811444282320806558736399929132866705243681877038847436199607577731228912996347334500907476234695310457422128202658735330006216879141288646280048368664068022108327284733503479584552342212900026929524409812528047226653970393072854970738364484567626512669506019979231322843835882220855551965325109885356042528143891876458171257978105685308535019241511034766756052712060531960802574434062452600719915401435052815757614319492303387285174526482064515110365260219730556691192444756502416655353034314146836523847601302916668942134188582994780321255667476818384625463692319057664977735256084441331162650309888537856939364371071846870429035229306267800963210651649214445388892827416427467542038354163182778711286907570475192712326657727312750707991182016394239770047494497588543248330540394203603554564736367131725663103493294345236209149426687993396306957076715495592470890894399065837652875190968867067227615648009935350986646154873716013860603143697174411719286723884451401195326714842759862887572463571805858768433797441979923430968256685013003414399231412766114170331279027482958524699261596554333223571123932574289759253965355557500966114074583395643527348141626041409817324021941361678041578940898552671420326647540792578782783651453373543839662296800336852861670836491745932920160590808312873875495430957630568028924226575390092726581243166462810751361744507691904337514174807416411044625042445047291558021203681075083323646807166468639076995813416081126371171009362729311082153242348164643981284366410328362284452222697857912253557752359650616663466801026755130063420610180863939203516439205061795675324502528433129243340168655131796836707743608306014268788762498976377630732176027674001857362753169690962713957638384030921924858194282510592172687725544100745820210340660986098633563194338674354759812289926346905776024377061004707422881218493572001441814478106672702715606288414981939655552303859003568147791476010087154222002893184413865820592534303030416899214976735720284131715594717051908751760719266489380459176621806632410666899122856113219274919548407163022564554896419394347702652899140740180737681355592320097751296678787854424900090508404292041284372653560136119550067931338372212081385352072327171441012013579928009624310993383656258730500829349602497283224595781017581894804144584739695686994004837333290727395676345251051786882688197449903310220736240937339441932603777821225943585124727789559727187880160325662699411751264229213414015404702847770878143964394093145305682553424818833046380431613139667199088523426329286002794433634677275677912232032511265815762212407714366196430442474582819834390381642691109082101024884113383620845549585329216542778809797163978815238138339552958476314098216235705473934378547466008911421807284372940217625117041904970101582744242532869106420917289053177561843861588283415072104342577672219987451049466306039720742954706052492056519001122298744988338495686900084055188057310017163388041968225915652491556375543651208212387295024037158148000228930728820452828698149870059158431455755098753846842775722254965765699456969130557386311883569613604777736673292801872476489606105845288905507060976663730093734609440945460414463429180004884724418346422278333087540177801356929641391022348753204900392041653678263914333116689027826598246770300229945304001128522822895962397700237166556407620730888701357412476584360771863497053680975802688205802537326944477460057156881883595565261756686779323097186252451998040520889176268707078642714091455158945181259419285538017933147091224582987879961034057666356083954419829416013958491748681470295015407979945568470050419510722151814175321607649297469936165394315728294745248192114271986654746558095323356511218605590418531603364600963584602818334957289895587699405270738334592727059445528880616944579751490849747571479722266394254261622472975452762551175607628803269546329623984027996538538704584546424892530946063977216064785768552134854602864878419380069461623328434167040508574948715222201620006271864332523897150011884302040575212121184369644808858538425502453498732729218224980173914518623953367888712854716958913569001274455842992929573430658166527163756398517034294474411405578667822468225293890277960910626436243572180174165903004451985421305617082101733370257998041779575584546032441425816516030511976938869022732532485612935434868750162768345538698210026901373822766187299686011688855734974155112484431495523517224368589199235091589007748346693493792557372652962008224942383741827554779836264642331576395474338535471866453451547442065567946937289555503534046850335896348897173399043381159553280032432141955309397837585910801846000007543075285171389206594623417797361308573166440109659254289986292462626397353588411047676001840497942004806829272495463132919569028376670429457397753016876885348243788676147836236612268215986320519628400628385165623811155363638114464973692673354707612818556246329439675885319633748826227160751482123913782135763774520110817335845573967863872515979181856854391814969855402188719483830574699400889958673690241364731575258248113533885809853976505761531354322166840777244243400684280993592530458421935751586918944408488905663686774210073959203040258769631680708293860321899544804995907685400655503540483132357598753072596646094954558460467970930753257888051591582292415794741168301146156926950505748121463101125521769576567099901847221223355633016610950274440980768004238301088393804886855512081644867888529334887515534980340776912709700856285057228366544426378767201716100893753250137733990092981015905619357352533507067308583648560925372723001501400145097019704113995442210390686745317737697400398814513389566300316803544628045401535247399029223292315366037040945256745436579748133484525397753239555449866793061650351383106513482344522298892101427688344763278008597622483283863098426762725877017947941417268523376801135557315761734103594025540850785357130305696031015851970190862931585554136079067266512947765862302772201560204003979574668062560697806220710253773319157439132717126590001451404300540381093072272781892528622358404072649926068879244131095330496854100923464520185930297170921227108339545975004897651446111186544553192719737001675355172247246173419463787983321973026892410533176101778655463286337491707759129044791370532149867162175228043633546865083022658451107176488694559339127588134296044824815903597245548760036152972771998794409723762573819003548173812578617496552832344568531438752513811753795175633836310142732333458223325531894072258659628821730044889877740085203314301405749120950325175681880997814362610393277021215855341329067178365727718773630772217678131320868793850386750571764143467419314014922514787228258025802529954810110050570710229402116820959363007957400951614155180543910678769878980861681883527601994351155107763458442586531060523894342219919697705645966039703826080999911079842747663816058057052100723416633569092870934792135632057743009839210979054910615070534097897301846407776023801659888799047391581759060632505489157444806975034179943168845582061300958622725773302097790841204378562409798116890212270257563131607332425661378222076311863398266587941309958798712961013686712732786442032313255520945203116036611491687601249860475884625771394023114861041891440136805711430196416220920352489061508028840849666307080690429530482079270214650966014045787181792336422421176290209296622852847183075460078672650820449948616558102939374239508768646570907721700284926573497903687550390031898575699043652399156670950989438212160997897161651576839476563838667889099879742818987830374799312773213909068091081678578698604768610435618600120677108339470567938586583861568866471083569728167496683775348588691948666699704384969480106526561661053974607185841851848663517694063038943909527240637602418206559187066348237537085057102705509847013390465312957343637325082230358921973521212663826032843385876959798443666585490449612822850149149778380960730022160394060957195227682191899293519189385726698361629427344528691784998819691342647075809172126023299356536336088010591608426108364580215251304659604729662052935403317349756984835123432918332192766676273154122735633647308245226674455639083051693492597308163155844938944702209896837190686174037555448483333751773663090870227700231875356990039358155865120989959834794196673150454885970727878605662691030267926635494791491398346526701154784179633953128754500897295802647138473826191514030166833257821938949345137425091677900633061528606058595558357429566997737572610910944493457580103188045934797840999148596557250094652720503979133829738823965291974120728842343734605224147797335979267178080511844318705829243783253041402115970822001875535896518018248018726905596228204269280726841473914475168357797613808557572979914865162384226092674575475704407240842141585944161301524630495317940742784748801376153497612685127228976805609341420322198639472586326406082421992998412403860207598905422350539419699381164797524738218376824811156254713355240226748562134518006132144531657093961741373125408185242659779028098132815359096417394200256970664091440697771724052967449243089566294400910234482607306945635529142049346768975578654411844902905090056301834257673245823229915198762532786303928037978329917969375740973415077662322767695933995328595346762761237904928496380292555246842417717396622017852935936104681124317413493596797208562151840947917512469450639928433074386643328111901370937430453708355971421614609096632040086669385667998517984183710744787638111013783662239050845708168097568303059928367543295991334075677668836424604266202792079263803813203588632236717853329759384450302876410308790080608469106883438443666567226239971103584204858161518051780510296502880028847728331350627042339150100900567645648617816586561393488005430745210113407966942709414127133948760331701797814186702336521449991471023713281837999226203080614854883688905645318303375289593934640261319751289837432124578464272574866529342510663362395224407726313614978370241945567621732517572169497188077788146524546393580997818420488952618981319595039423262941085480989879792770474988282437482681308860162602409162277748367850981904023731574748434215725911733145276361974994112276119639783250539522750594715333052289745231335919804256590526493369727191042099796219168888427211571630773037804241430488072666114865194259203581962155527283616770629062055356558832172168955633535679933859228636796590238823201800042276205234860976411733854263362981469674499416121673523116752432070556662682235615615997529195819273959061905920528510597874654064367181720890631576429730660168901750514287461634428077293278258615688673353751666091486701531094101311109484461932330746578278694084166258294174315687010768364374559774780294020338530225365228593556469043078509864370604280451195910706054684453455736989481852945940007613970319148365296737975223119644852619173980544601960422533702358973054800934128378154889422510702647476639407458885020263477848690582422575012737682004038770597041311580589272158477860421091609957842115847953710315895296797827028428370472858204420364645484704790631449113204554632476765575521386080424856776898261270446075376805023675271960608891982424494579610778692342008401731983460232219037180926771200599614247393391331941241219164393056071167400574201230739174813470149721891488669831677760195463127417798334806427085707688133070242948691705032710823793386344010173192121434224444533554606726013420046944003126987571503831316236895556329148674428223476564243540292631287579514610979390192967599516805330451786542562243214441614518145328382613437851277172918325802362299057097207395438431440736219074860144486906727253940741846272003520127767960027946341415114321765627278409601605819525138086030110734035343314897177609697188091462199240785293889615872108535743863222832403892447886429633922709549046878661663496967034706127421337692025996144331849195361945790933957739413087113167439335496763405456491543738614350614356181328195981485787983026961192292483016993134472604408921790419904198153282390318663729986089154178414060484385176992497707962384978988043452678894955275320440963836653130507083870189340775203186681660585861383925464679557054166306734652312463633195492308931862470945963770623287599304679962573520485320733367163657652288537433285616782276918931278397822203201284177421214623216657435220174418543276599918902182006384794695942993738860832317645274828328756721539322941963816354416065377032530592172116093354206533585466931673891972242481677158139909629848230669982783122959809180643901249731730430184552602657005752859064968302698920009564337930809422353478752290160825428348214385279845068412564971323643455311043079817894280189240184825306825891790409636108014063462372019499368977525161417621122136627573536781442351092778194857840320503203934053589652650661381298677046901743264707134740582445055388554493436196836290390897712164089671988524412872554266167144039469138209565845696441555435390044062820488534149425070268817338135676651807562807286379757902542559398321672290553422641057713245628742809824849849268011519516268964034383579241385977524649846225074311477082891851834175905163894854369068098110312243197610814880165140922168225280553309103311310842231007861449444273064431953000962670749131997828597572844522747609849520431219045542983810244794400202291073058959516291991132230717667965015175514111236123037998461299800837570679260366117991488360441339205436566836770394547658471535598271114969595671989033181852249969139328713233385778534059490368792635097605590158493541952661514267463712421187054954152063452488952167696844780433009257261224163379302085057635015066447655475616975822898429958186338309487846827732070155614599524698019580330124852897420963854951321664370326562097827324283407063928109555567327461868457380615698900370448016873156751472627496199958967006177863959219629719856759835825854481788077589716616311089805059925403430492109528120709233317432096335799281430964694776822422866433876328215496951541336813359730608575451955728490594231071705853479799051786815718109723338427963354064245427069983800812449308440827366676144880661347985911378545683770779551793309440935306122456479707635562541191647095187326475055560654721088020538081431656127674112164756723743070736569297721585270911818249200259470882495260766017751968001186631135285964654831352698043619590070059142226684244451526466368909949928463422528201462564064984005024541670810720114324994535007162973641997838695764524055834903219804031202581023750367664781299921647787310948082208778226655781825544917678114578118390207519401844376859692802175109946853437985830367073133300910950728354972141876899336897625326176417073668887785280731049904460161766407434643225280556255689185076207480192745187502972822635814740510722560110662187544392694173047980274608783709972412130544851686026299336734727541240155181776846959084540434248951528866195517044662150237230463359689748372189422010791447200213153709124117415966588857859625035007283749834120314125533493408490567863101860919652314253227573693072010083474331028257361735468982158170805048558046379517361638179505100058796020720508321041294570355433188774119085473807168130990497856835767733198234490251211918867926949331406448450507152229804656250740420709473024552788267988613290604919132701403364792324964091945073320189762400227834890063893465068776911718743450156260913346531671614216414274456926026171467748706187888618908105743055524752277789946009413156814482323467085582640814032944251914777980181568631040514344641303800269344115167129472003059353718419384887372805190572613443945511838625783653022030103466947177521035587803043319553659577259981354909025083378735498684989003075437548539914461824818550320683202020276472053882476900950117158226396002478356444022197157696987859738751034498688035981791064566274240355778759138169071905286157552489278091808894199432821708128650027738653956551005081934707841245303761591708962234853524699053267376817959288430484759324743284755252475887112544336511619622552862289167532611658409792617803719222122281739597236134023773022966931166514344547649975727428297022958596875634587392059071636678470239965542281487264205465773184718678644396851200775200196835503311431836535360684117419675144714910363160663456437592166659997973288346458947598423834180974156569505985792193813038090112687731540340914525893763111563245987533648820003990350245657240968635217515548988756476266386149825140624779081736828651438944308458635253336149004429421693644341819715592838841447549644026821230317666691338510337789256664068180158755177473652041057840296645248165642655575733831368063311312365435064251373262158626950541028476498764106332059668928415448064823840155663615945209042401095690721811333850581868256760694000531176993650610680630440529429436895713119414917178422625390953740858730544735618988138067327266512360599103486472128804966037486567884162368912327996545551876087678344829169648448352972627638160332251334701569536396606165539383949855693983336643645077686436433991413890179916752652300079452063560304012581516179111802394886056310661566383335105691607619617958001275875929642791003646963048939607031544149204927838255457133871974027844465463867132783025868490974770403139961711599547612033455049609735519166626796823207061487477554585090829341086646364427027444491437942279357700905323255582761489096970637517230899845546698526952500624381134013394576930561875240102389635079044492647501597518135863937843718876919773614510663900671341049765602659545163468879861767047159813420935026889618992720173633410940148837228668072898234902563299026351492262487826691330874712497627707834914284790114371495837016235691633829468370011242111948414815862545516522346182979933643581464075067531811040261281595354728580892602059406764353017059014607707783517608284485260297203142806764093439399126966762675449512849128438759146438266460148821756204782517995872935654346180587996189209937177584132233826776250067762685613663564707653016940559863815786817772374669144525644633227733005744005349254539216101656569894422084849163917135955409441619636288426992709157735935394273920525855323756030587666563711054130620019554340174920838380427506004598288698101195872959608745358033561649072875398843798254347405946527828120848000083768742760217156522362683409306947241350431148623204241252505257762784461385958646154515033022625797424486803043069973626019233252298807950328643665168694304187234035952688935181301032932783552810466810951101039883484082166421662485700692475938509109489830872768325000782512274916890440911237929824977523753590704774213084425095266051702579173477156957470625053957789228866287666203797400499421825202068841220735815559285717323560557406782566440908982711426597168511609587709993027021575229522876208605039181143587078796826432340232910334907175650634397348139989774561424422189599807236938636432892694547788598851846511216632907949334426370439574444109418738452233169116776727049520704828670181507734782260940819564534955977086871249246708105324032952167354358601328807845531930803049472833493492520100657559485319893012926539344038061529242124485562110540893017910328813993222793210029333488823001112555063430893541587721818189395618637099162031820402483022965336662220833874809391878050273619598146812566917495711026129286239160972231878819628622183718755443513643780066470492836272610035672813300737010646042766861232244466759865467887977920469000179879023730179484651359348033918509156922143306628110025828100742811827708043942869193637506630687694901321956857150635096407146087200624517795144935308603680511058852972820970018002345796210628637652764793486562652156942372802073381727580489471431443312301972655039290823462367148542968747036675985103143079319312545493008163245140236186414122924065526096699988606014506884974687537772663734866836488394463119157168664717672910375584926774680784662178654921831876446910280148304121037910992646598495573144699955985137581833702966667419705789346676292484639694439725774977740450345841815941003676860739132667078480782008637277521600223025096796855171945573545284424908674443276304498864956227317550155738812752520057387794620614325997184173582948511806637059408170363700919405494385463587248970923484330632012566460857748101795337132866739037940376003127308125153451546785833549973029949556819142844326143830892439461660263067498105756346191661030125475120851557544047350604458861383711022313170496321207805151260090411340897544569335406818177430726267471823949504854120141213411659999794212270364668024365587797869457115266512857664766561397005650774069190155037313513284058700140953502945649034209470071696828438418518533299585293068014474963054698915338349644070053467868407327473393902370937781541025589473059278454099634860383750234223206771057992209580177702273920087406067536667210877167006793723335448220927164483040388460878234946666823106384652773113480241555639001840059845246343656582968112252198644219451145295462520403227520655902265095424235073277246672047308635706821572525034341544194500403499177805628968675534291934693740672045499734265555867131462741186517429747289902869954836414190076217303702790732071976919911329090630433663527640786983803079783783894803860625823965090952429356983401909899856509152779036266273669347711339765817864211091407376020679275011503064654304127801214454776762545632201230957790162101953789516072067217522895327665787992106140965519058595235836209871171008006205256361603172126686285774382599149153542006794864307450338872971306164358001193805307064931303865546777714318563701550445314841538699303219249568055400699129740976114719187409204958937358562972559174722357915259621489385658354085157280143880798120002537839196772202240734735294733656558877604538360332439769321133843532356161752262345989310554755292900154718114800179541741643981662595349175306513984923085196815642161614382244822173323730109328422568094880496219014139049880115828834239773672565001412025239514239403719551931820770650862144753435735093273818960246324619177315077180046997343291712287671548438573841985505967471384635073296201931912199135998678839253730396582129300133144422660803560089212062083204637534804925952515823884805290176318518825226684534372556687651326733468549933677207831189599112654971876475095367977986991468444730043037272194954737423711729154852146086766864481526228069122312055409462375300263203017491105443982161764997705142301586049026580412693238971257518674296727642797542408447312371744992973872978722803506316550043197220116307239069699788219075822463674632466461356640255178374620795567851108464179284528090642732345026614162868840662797041992103416934270319519030985410496636414991939482118737138884924530344720632455306222742774548364683345610911113719899130889739379133567992316220238047313384942253015444072265480665658139736402705019250374948994306101685218986068426910884042482796370860063345325635024672787435004102461375270773633062671983660581944696322675054836156615709873731109763697319648565216878139336058805065608691731886710291008899219025347972354021596151524684206359611068516359991087294597010354991966423352263421588892946502830806738454662148255260423858543979718350195344801998992044238506228616622403877218509897719244833268863363756967893572932111755542439060967324110845216134928800019641776034659273635042904678729066600245696336051981474936735278097829407730272327068002999443362042700690744260305014788970107548325549372993858485858540850989203383161916880017259504290934679161472720832962590506318930527970848486846562766779057988613027452634567475514065825843573991414689908596206600812811821073162106469160459380624118171301647756103333587014538458965310468013256432691199410891651349711038701613576010916129102656404566375378872270510946991047960868944927121698528155484300592541811186267513872700961074640294459800179721591098213628098786991343457675843690655424492732953358212861169442126665946238754097165249615205825694337909244867689246272746053681715850929996291864679682386565466766362471032453634244059534305359725345178893280563857205049882471954188406522961690424634972091068307549647946822701942878011883721789019809780651424152108822584737802638240787698857391071545360191419472583265057951081934163950657766046743433324851835479532512971423277578699497305593168769044517004047260737644126447573978615077992387848405040255491092627683882264994743515257122850925454853689766253827388930531107407288589769410151598681717419166888751332730375201108070013514311383377840635907676117401613998600554065831932010623129333037825326588197000185525877968342780268325233189257653315867611724664922271144280065467728253046215879838066161032574784920008565327954432495314880935977360042558130977310410719194943348523327169697069887932621023805808769627625085819570684242782257530857115479951653186195193508717524921200001817486783854858954485515470386334029705713405318862904249965954176089585827389232019060900399655892153253164464666872882077740333410202445015492796351619010462569983203062925920710284040899493641490176550872777931042733641898661484983260763736302899703765216081923601214241195248103368380934711817449697424825710407191925530344019874634840203207875359046217100722955253836856235882192114593235051937919074367629635383222164695303613710844003794159815342301514775373034185170170006442654090628560265450123193359878902177162949093438532782209210335741916449394551727138308654832813328366390123383824812907211556916791096395650678399290201513660187779816510136970984470247010271111792558522670122267990440178259944247498723715011641074329011971332142695845781527627513498103711578611950105435607620894424631325997462180229581285010598451528437924258549851659384392583012025974463001233024512792550029797314125481970033581647407258492211114166379726424067860886392937358131164667636449528627238683327267949756834902560720951108340375913329858310227328048130264566293673733551811675938135379145494598373443638305332609867582292763274342233206529303501359121816137994481415675233269488700953856627510870040458225968965517781928971437737663714798084784725429031035779510531278968364155685656444024330700843826644600758166656061410897930996521773717794145922431107749425683174976742584325589339898172207863185080890630287483238660295521592055114219098460973368043397629827904055322606057473222342374655928647756440686245321845040013590074124735340916283960997572751691667939836227693270356680080137062022843261893126107850154916636906886600723190778057142615520073091509196792107237674931739502075155236197712952257184157509478931839166694257278667604971793043934534610720634391403642861117669944342004828644497548399973329145210937509532788483089720466999133930175983920709154279385060045172731880864895408206668739826618965307719416613637019784306485179662044435661997569879352570253173236802823352595120260193849372254628628178037219709709877690985302512880337258142305646729429962191829792623070595433023505066525006425709305791421056085645638175789937203858631122234819015760964127683580296581244397164980838896155737167779681399106769678257362314418848455279847569414517248788912801645744833382226348610521650595595291121367576786418026704881577570842687694203549417191346220184368463191518219896297961594910302799765177322616661521598539282456281516511264405080638781217822260061660176863660343414394541319716475986911317464129736641350631772543168695140851972835947556800304396155421843473936243731530245414018928399559205948928830102147392371922651393079057323433019650619892269427281453385237917430772768143925878402759107279477731409447194341814737702320224374854002629915609088122020115205269278283041521847177831120525553129258265697018684207612635104146965233832717808679320905091132016220610014687736747809658390833057437991396496248325918488906587101208102950589278145949814149418271751150061010978535932139299131741937285550093108748324230523715173325235115467018748244391614721014602591875639980563457125819183995648899459547459327569134859189403162752902539252433295090730355910819273005734690680705207720984352792129034153105368876054685806345168451530878593716911478240651385568573142948708439249446085124097551433757915856440254069146674492591034863629185202324123966055384395256548223172462184247584792069054002976724575290368048070390535036992635895431652557286326101243044135051069185309540517555071070345977724113446907275998578193146772663081944128867345457080405227876305099945276459750582900855931028745866219055632424332024999985971279803145900635508711823579975614999031891227462913480586992694322017615479583941483590222315102871423303708204061111589525383096621604926668622991196226189657114654550753013374761578660463218115408198954955070355803899359564006090104975089011601000844349798922087060656005115440536608455032117446099850331198719656809034821602082866602469403626871278962452189339158867739384787831689891053174384599398888551531741288380423887722114143698245460042864425676498998585915491302562143823321973204859557420987138434238015672529671494220672318429216740721955748173901068621564664702016348184208812548987592311042738483501460303026264542231950953857810823986220512789690808558590026080306142536798238873514538797204293982522538207259267265104610619146576783246377098670048468516184474718138792264748062460883011231970422454018850993053838192823696953711709849335616088477413988885020518434040178659002687998119090217754867862122493371703012912319512841155820780167780081764538840747303729595245788887714165310058613873309986168535158320912592840164648026703939549054253360973878295952012741592042807022957485069485967756650587179202526072829708289750590805632785909722499084902128263480917291399462195377324732869864991908902251085715218427595194775488992233173187086540621406295072912318538467956603971817399150413510670171479628012033557082734947738051753072527312544543029166270215935372610198186582611492869201819235694091134183800835465156951992435312995310095975707615047101189363561061942747618516912853057872700129568366663961231803012239872524026598973693088308018597046099123086022841611824473086535384017421350819387525892200136426415445872654169595673696110546118138490471484781479189682348708976451815192545169726806178436181277385860751307535366301536246795883896254282564383084174613380613336760870497786601279277770428653649092347772929525452519232044694429563067784648083431534535288258035747592780967207901999541680621248103713408173460722909695238363059877366950332405028576308974421041676425179678337660404402901682415578750928988637347009344124643707502839959184882986290821589259701086567213574524421217848279476979671058934135479664511514670508212592391712514107463476921486125931298229688346086976339916693983597014814049029316356316497038216133556589936059437618375133656881696705080324539698863130896127100622486048784662225890196119558035897405005888219309735217496556828391230641163985284578292550730838166223209962696735436211953300307569454717972231039274049019434760883331876488015409901544856297180818917080749617254223688100586544183402166425179707750183805683171401474509256564774405142363483892008651021194965193980392202792526631713635867158973478695700577096344946067153936596425722668596862300483008271062323320882585022352338599487215834650226044341713647551313624173938074031698203086952563648801169266574353290310943788234057361026359357694473667017136972740624269753577109455158665665082137460668863967756670649494987060709214224118150336465377868856899186955281836778617823910208292301000268926178636407841917123389955134713642386936492713564670646965394749342396478851198865328168565714359637666835264049742506080835416487766822720674672722822972513949728795133538816489578049099895739622416176556907425442917168711991219154234507716939497126859050376256534336600927753033186866576537333847986855914475021825567639169956205196049994662456151308420421013133357763553685868158792063147987602232213052090826308602921824913042562239789030289064296301656427534104800036215584239463736562632722885613043065738222528849289058571103850921179009276829572023748099425463671564355351394183592416815540022093834548622301667705325031403426966962980815731904081530521461334749950904828650378985413442702767788740992757708578771985526557108214567263420850444914297122464196940957380979628239353756760121481909461337316383832470747937739054603293865712823657801462250677912628171706074511139182256128650209412854362200397178563731445620125884958972856697765267689963391412274534562420068861745095515405724856524759494037760906571844111069626279695720509680860000192281409636227783913761436118689302498360210789986375785928130968406502137589561712529537197129757305698924821527676877063674017413663190254672868554971932833621250498859114045115112654347210679570674406017575813891303187922502349905232816824757088232106494427072444295779541058791068713302436924993747583644322066892984425685266387165811821755776108034855533477937858015058046671008935725814766831454776553727828830848538903357175949833842615558354985643857826878476437548733930820008360344334016848274105949714111682538124226013911129109196988997130624006720679739672884376258305783801787769090769319999980905615598529845108988546247105782251480454063643554071088809919937431977301684230685528496211726576428408388342910973871104195877536466084942635742451820692889443841759538816705862834590260452026074394386134255409808618286403004533236356193874330226042235494207502979831845717185920514559787273830251219631260927106083940038502578100913782281550177365850803590637954149025159495467585368822601267809728537758797224400496473601848796759439888202395465728709040352715003724352536360639591592770291678357799477022916207273151747232420802090478773063752298189709193936627703592674187218564817195928351769439351808690564643304540182168167175783877309361534068613016784371895145621607639716124401077296708716240942937268940019641361362350584384715487474150044839213963640462253745059334994205859880882003217235524200844372197081905933169286538285270929613849100499195558933206464691398630422446826610917823965904444849413936568689339723127274100813742623251803478086165380840598277642965345368798506682009334858503541225815303201248024095227804124970023276802254202775666454122156887140525053027685075961066260668652479382599052682358658544770057762912045873361238478802177796665141610166804307797914688211079410140308191014567521371475935250001996458663995122255156011709611120063047536497214560264337039723440094925550398107250910196855583962474769159332553373283260702007247019625354418691731669550483348057575015686794144014491982821192922866687904718275881533266360518844614233602768831991645699742963024123038208559382566878999701208809241655092974093495420203070989716598682246198851152617169111653205659311836708897645610801384195242313022496062983743557437554479830606894966750845324604175817435529511608161210982073436073847715717939705998588302795219720394800103960259560718184922535732826779389123047488323366891190283220076670688991304582200345539037839378864900336853330666269560742084986241597554903721393086628559454310417128510576712236603448505520595569050397044540331616998038137117199001880459919089860015022771832879868783076222756639830976783807634541508451459570978556598631386838475106585684564856802234252199596040670370439797112018858391222798086867173479946163445104047766810780527116879672766077964139294646809350087079999866648131852746658678551854144103139012951905652205206996837928402102987144623460553538617819020029865812170869022762171117236906720087939206912645208700021515630834344766264598433801552774593457659932063912196746844616481943148760644748035093680099407611758759411528038355010029528579117067609469830786308264151212785902950838302751434672721811562489703188745881381341259178761946591134980753597300350737433856776291956035285164179294537646817515377162383571818410217977058413583659515863980175108487466123103789359465915531081894207110759832073654426484173362041665315872600279461366210521712145124782991848453467976859908588310587384735585437120323571166634565268539864364626449249000594133219968361926097261181469809029134326824130587457114022259101537221560890898447424813087373731711403207086408774571996550678130622306077604268424035107648214087022084360790871008544383341671522235337072888791381473784566182283844915275604376055608983517709318593212600003528613314595298598233247859063789286984813866947912901548578330368980698800058617557910748161354489508777383512475734452411345539227696347606103247047881698133046769317747042602121091805238216140533431185246777388040743565626421003386597977489676927530805116823155621317136439216832027352667647312014060429239031113597975305380853500443734150065716898711789209475006941877843364968391989275478268342558213946284162040531149429760406097319500543821120835443531406971643145415044056563651854404766846527113578667413189398535692815289292270421048534515385821593036212313968360773054750947022833825816424594498341646827279389497846862430939157654889743289747946311664142902157553046864087234643362875686264823920963153013615475540505674322846309270981690273291357160915074436570166145956381802325735721949411356305671880060810570118783191268711607722627173618695912737109838211491582276178908783932821099407965376492963590912896010903089600957295702108650174028349926343412132542471085145261346970761992977307489891866575262050287525123284712734917070034450487629700560986060321974758584182845199335039069700233828233157261702695507996888909749655360884795867115589168674786389220935757324429872422059574269466791787759200536543687062940306992420192449864443598804514037713440368652316438231972126054549594536430811318632440587163226261209384505642432364978901444282550523273388044712795263621141543424566078361082549093525895191189040426160325278425248577195972465306271887046254607005346299562182174817983862925875422835272489253821352130095891730092493204632967073062749404972933249096834660871598745430077814034097411192423431111471540106231699252415345787429670180704284676315814870742820953524273556266731952141003448703108427881042579430990801451210638543808398098610046401888517967459380066389231682310346307961279887451931722589229139023543160476079511297395790670303900288804783178513144009905440779017636687613443931887459324580723864990137008705618151234419649408484211243747103465944654988773048544741274934335849904756398187169274084721728402605402674777435555154404465845778287828098196384086444513529342167583321471074977295574586684535944153652309035319878311263508063504407813043458914026215725532316692903810846438989050182142251363638845327149030192676611505311627241406551942819575518709846482003665392222433007792684637788948027582862244166229083805086655882830212376543511454259268333056381936436072433155124899515699403258718972064411250445098116184045322729204750647986117369541814318167081110497738604826961762257200853460911697585620590084367592077165846720788293527094296935534454792218272314487614732421820153932466723946853848641287524463973033985640758767401399507314364668217834892043903566260861524418979915456484649640749620706960181136615925413653640190957939091698942958113967146046228294062579937722978758947291555502734975354007603839937453520418948071388565791523754872559131470691557263781983098352543756249281093713154826134194950118741451686906097925564629414836250098086101036818546333471714231454226335480016236996740766489656631019613640817533058584533298070557907679487357769839433063709495623216425426620853653321000111715020393195753741040480377219227227914679543476238193236906941834813065808739284765098291761391122543269739435879930448011349219009676315327758374068156486025084770465421369615348731669069882666900138021860406465703483114174848307317395828673272730221956212292609724788272404882636827278232697807327344835115836955680221334436680968611299079868231362289204900212456558395462991363069765742337065962501189127911172861084697752170732630283299484642714190090875269686225408478978756035753426564225702967743111284816505228204477435171206944403571111237735228570810454474442617726642670878338615084920127344668440067012884457565651892248352011686937499939909615923618706265706854355797482200042736604421871972057897722619278766229316555314245901005313110318820153149825314825235894780913197210608961485002939368933498426294489044262115714014763543338356883051713066848834920181058849464940276623475192772928309780574352934677270326298310228535070802825684165260776482267384585850093732034558261297082365548555990640049309689467918088548812037774252234141166394660237698564246135473435856999969147430615921225184160433252796003199813893709970667618641164405046293255641552498646465383482692440640834136163494390326325484090501704115342559027001170630484829313701957179174958340806999438880313626489558878435319440236830157549412910210273641676924245993897894350030603148393738879050872011767120084826722764961419275959619433042314635437544219770974214706371431473432545364697424834375457767080786071857797401227576171097742833187232552920524335706766586371436149945003550288381379485419953536123521248585852237782988570108101758839539717243703450133427682698799178864152086329703657407899578536821002042461232571359026871718657890559134546902636497387265513958473966763462215361536873959019003661088565333349318626225901984844353879693166722051594247908831188049516762126231952225237171931790067460847797934646997968045153714730052481838702948016902179428117419756355152233345174714574140307274288288260725775699048811773931771388457827038400362843908367356730785890223365663075125294713509251932186286162460650842100625710127344185834822111434979696038937062081311335446407439117412231581534033935155633243754330837270969366896017615134765093629413008941237564995833121988063907856078981865166993275081787640527472541011676140590164716656843747260758576263981498087924290122494721681551032566995966552532395528946410507350717763487177423673745384573198817301463692069253665996355227077823635485876282841246537435539592066785128755309900094334830867881685097187087436643470340339198805120103274445044129936322118154733580374251008005695324222676219300169982754459659778774394433513773083049374861753306345688021012770086669149137113102236563570393632705186129223867720258066317594729350920769037263488359360898791001387647003762831397434994337353459902308151022607119249268404549189635101934928654687962288027985933183556599472946528639526214213509985322364287474994580063428130150754492184140778336989630330914945753832020841927290350075768684671786523881165278251025899432614525169028642426890709999327712090798796969743176143980753799324455828813977954975261882687935050949934572278043594163352888148922400194067253818023669954894455621497319741779078530368889639618412722470800394554593642832844175587408633867744222585971330388545010664997946421445654953647483195067371862448664364236260526223232332249453711248939465255900678369298787754969400530092464712299845029655598907989197074572467300154523585311240181729219288782931662316692348188480137548109885376716473380464568388181908374284254159677314526131180531361742270527131642081929119938490575974885692913162408686825580340017274773171870936060120628204894652325596506863223457084649188470357807042733743702611887332105436845483296753811992235784328644660427416095887543945371047048643768316728894761721751506844521906455049810633053251915695989476324404116819017954492795587662737487659256406413463459413984152333742870241517352550779026273146599006984616787354220932272001063338260251176479339920500461195352100745373248044581049414290581773952047597582566383371335522458260660075894450205858672002277510785118018630347678522203687894280012610067465596848789571644192844560826408563366844355746908380453410036736795408486251792631721816404233905468496542178457423296120080703627083530065130106370596536858078771162780368977266771195973484608420336476891776820207219247833217229395733023630641285012178988911737177543510751665722894213250024076565699112163264658111684514879858898293448952620561192265024862125560418700391775892375662822410067719640292375451694448724549232233661527660448984501440455662363088287491370735856823976714362722122315730215736980168486393775080954872448102932515816477005826053065737498258826014249473596152670518672816311387211811011408145548760028387842185850384032095510274729430632060869807259359259174919485881061942733124750131317389378764069314583951075630292959093580077340715399537015655732901051862528793035640547452061487928750423372602087106548248706339383265723835495723512714136081494495070750901556962815144224281865368169193573756460410658820749305399320990386517498904479633788342707976588483324654903033096638648333625898717743988295653157997309334668429338301347314681528451375093521168050998355227831748784855867154581398156550232271022562488760119846292955467731378842179307324781056222651740672340094057953492922363335829670715288071678939815385755811138784257945530018044899124304953690660477431355580099006446466767661945001923494732961837840751732182210073323929975740488026394236783220592713550819657251613083170148387530510775337263135327660923654810550622826728966354844345430728208262415826900453896594296795464777481622876053888727589882497769961848648703680297502563841174819349270834190287193049863541488964475198778443053537051910301485962178772775805711719587624442901167496121214521912037747903111467257101396613955689082642598218476745194137704098475129327644020788940194955054081130254435192176707749824157257943572078959483592338462574857482286218538975189582275618644037382282209676523685534854813221931024595419255446075126709569489769723551112104248678653314040461168575579135739357595092690280132848135366351626684525160602355850672117278024606778023876966227324775812786607590059294130424017047784417277121728847072176690338468793022173331019925108445546211868542110453115803114479440653063393865145392999306725629601740126911260032061770696541162924997692137879674449369911640626534884286318483694792775553915594587529525388445274704820621774421261680810530636200741013258084350332799927161483115602298556864279110605280379039242090345202792603566936795773180378233181218008288392796586697214215126151356342895990354786244787667465264807059396210843115902031008075658428937906018048230919341308311945064303972641254245742598252850742890446781842704299494536468916957484043177454317125747477335583145522433614752886140849560904016072473099696763073163564115014655732511792986750260119110374888288623700079686544891052348917138570377615035875988474847344221260494156643019331193067024477239148179586337320607976523958227121954567604299784720655357829170524107626253361673059137178854528402934941206597049949347710699643178605949066795955399018771696470683184262158617566015769820272703360236855292934343807883962463423122353136236247101462423094094456759698371816532029796120193564434408142436348784570657017410547689877900303790758905083401448359126215549688839804576865503453886184913753490048539619389167526899527250957728764266171746919836505750052207356078555902194380302912491601174254166477181265928743998062097367251281569453673006854528294790516878645346958830896249010123779379636063730749539209517465991108633220611722462623034337845157285301296303002053615707546612442951355425712175498652384483786952852865515472214063954423838704596723334456353214333866876130916231103427833333937510426043442484928485965295917041180705733732158832141110857219117157200769731573707725954433372325598046558285296958195479497382058797330911714274943300511283040967642024475164710661418370531240430149693877240756159274199111739490433392397495202423546662676966065591916844441418073537680981695623377601653767181512904809765296593377163210025560771522896179870952973441008180668495484276878046628172871005251715743130278594767483265524279629958551916784283265915600689443757601891081000583887684380340785261826989267482495047976368581201703737244629533482648260764657309064858232731398893810249275984501152435880946072154610145131586677651475241352361560607641830060999035045345270900476477590028451357099633564368048766590197308059725878882565739801442778716754300556807410866239059670285197969462411453777156556705556466934916920994521668832806899563914173985085832716490688796234786599177007495964286463632146733368834261452337877477672845708026285629785994264569425638479904461163502227944243787755921688467433898796305870233139178602582186775958186752714464126761012692849039824011351348973462896565332119441655112977154676213170594756984044758479963355645684677012873410320989147802801189761782595673989710207310346595794535986275287847320099712293256535369144170107440986180190678908637042052936818816255333119349713379501318050771469915373948261232604781713920903595213228581622809653969645970886930167808631552999038123762333084960957701700034801259103796797693346461192685242907451449496677865240429924311463962407329411410885019666579906134634847706448986868651770888549852432762501048023680654441582610663350176771826245599993054338793309767368511125984795707235986173319439046375493764333023786299581730026454711723155315678543052760458513210101393790772813387906541559313099190905870229920326285955499939160877672767698780606906347366382117667369469413356896039682898569555273625535447895861748136079100207324461750606930543779874838213823696613244942222728527922924953529139911620591916731802172499831282905345727817496856349506159267760164219841149463170818606431115379486395671456043647632609265166130135433219837178438181911077952400618987209830930797933936967750933919232974495663678918367523374976623723160611655202408622606364977776907208789658342912630788127837044091500526635461013044592167549714509580714400389228460655888835410671234463802089224719916078092379661609818144718852170158896163082691643827204999568032605965394293129390915389561620517817060990386047418881821182063492825715011334895261263409814116926441730417486176897663880305917323355357315729848077728415864971908729599557012816149036696392227998872725737078547514579454280161630842629796512252148364601865944835199969010508909132956156080094552338804031155533297797420878789613222629212148694340173375018008250088200435121150733813313044680184080196555352785071236738991292490958266348008814847355713202616696346619940661386739795899942007311701824782598211070376395991088366426977590950169489864437158162747344774526497195676148137749392276587232052733252909228568827943495724927593130281442918213570860441331278800035554111203371463736927947711060585639402967837483645824132722501202975675840544232233176396741998550146624781802758320626400772564162887632190959947881520689092892957101129567593356544745367453933511698664639708302763907558222787180673900821015568228884703816878103143472688287072551881722494487734764132476191363294079900124528319832875483679455807168797184811893525894239452925658095541207058586571211418594325817611030014605235700553721857035977556694118793467554862307044690808806825793349175964550751684777297710298049244352565819640124287405152637784659423798421980107623062170653491126140823083447753262031042330686238083080980341385960389086342433938930553775179434537059093562809570662904654069809650280004720435904738029975733090159718621508566274033958053610333507702573469817279831445231407016930811032347960519368699454639773112892398265600898514609359331185921340191409374633072509907653701721512997047407040711260543920329523659089984636695544995350048050834843950324437220207465259836946519629717392450978043066539658700905559169681042318523839384273646092941203129282161325813179621403228735915210376648178870851065645200315470404550871649837047813498226911886799002484094167370057706075908020917339749343350283507720217320977448940247556278047935969307650913814296753145193202467834896755683809611059720387251813440099416113219955965359784094407614782395937192651836379440261428975954310893611056696981118606550955252039254326911517211442283051125085821885131150588865179852367665995690464249856802932110649159318749460268196799833051909839525699956747241034056793916418645851732394620693700041754939389655617853704709944881752852549665733319665841644967706811647303209047175665995621853852603285212902599750678066588901600888971416087878670897194493173151498978838203858266110322836901349348965148565680563845419477540376219683164512914692901380347801205323523506516206267512255320923331517555604920065484151511072141491924389982706858027997882223113516961984373763964546444470628542827317976229178113824967933667511949893404333318884623627002534525428480522344243145351644056402695665772999951038053534241980788674832861185953153472753709767469061133571787423398328374296323512355369828234159367487058368461575609725130102329459627920744298161359836543190751256665822376437392193319463087199816577031495960674738289661147101851450367129063590922830303046246444416735605949002998528317722913545425193106534172309705713293199407943175651611804284004810975297126033095907985250396882797524811686483140679767240860083436063600799067606186189796815922577374594541867422940725449096398358774468495323352266439415790713381435310399214133911804880532428367912905185833975000773087561542029689140567152279978197471846809917261062044615716120487076701532824901450820618247418696726276971251343517313674456835803877530045581970142089782506884338550149050105289167058990372389700841196648266517355019873203462167776935244863793431452160857487691482691305423019915771883029157801969648526437761968524779407394331181183282209087732223174390605153068401773861663372435540203246091625385980474444337205865301462431858162527886500323604794997027582569895543004409164145927166278192975041410332566889633496465620388020368248981920387212375814833125917355500789306553202595764313244981785187852546264042915120563753606411312951144560722397323118538847858718523881584143891875305072355430870667113291001609303683755960748625991872836126238278596852831805098201198251950150944634526011077827554984519142295701236714718617424633927556198212010455530442396827475246336187864527997700972706050310537020295587157963590148654619270181877525233158761852938199328080683182664464687397697931578029401154934500134611658117537975594938121420678796046454987038590752406583740526204711384631386838894297389889644622554572671550933255312987272421743689024119424303730350376818692996201909505885025659581318765874550332391641789989006971993242554447824151797774220154008486882956020258965310572852316430483299558893100092337743913479119360032829272642574681409847321750028671231365085462210834203976236153739690605914249101154465990113924835560920416158305121393421076769330628996265653726612977248551679038968498058767076948109758162153024627621758336382705466273668269073729337972068569308244833094513647589641412206851452798226012884226803674045480260659147223361152614978594292347293486315971670018083891103217109212530325732968469319512617044201837456752646889170204874337456974399343858340257650509083262265928696445361887146024497936417805702611382059415628897709472152626427516690060394754602099167139342588473995993204674396298307003472832611131879459978685138143504389435105394988098221144530666142377615712019287832987848495852538295727482653346130145179432095628405940773664663463962096018648895496122518639799507458098637494812763047625142425173560005051792352240785487577493205932371816951920145339630272322184385461477691017212494203939917245445710525987556408981290961950543797928841510302039434047901152255349785761883104406439025055780282942276806757659419562556744842613972649088399268883259408178371751259090717325505108272446787374598160940793081862364643963950248338542150883086824307074230254641745980493391058044071256498076720102722461306734426698155805851626528501714069857546194027440431606747738841050399599429903904053316444852821284057040039966535962508736219586861467453515393147525576299121190445405778500992136624501704799414974805185696108937658261104662969430317292242060745507950362948343061168522211672056356279571076017272223198748033248085707945070514818908779010278378690842556241796612525890076784157094389229225449824137826151101884229668362467530973125490037925964673144738835605402132835772554127534017991131197868768617634988871624965581764611930971308372112844518179463091431211807606695566062833108215355997711338289277251523210037761499167692194026422982247290922377340086181574938529281211813631531576320561808447505887353855181445644070294239513371011607131515987712977056229636982170372990341915126606193846869605432271139783952682451116053320143548079849766302507312146285646760931333635433356949807214474703482486049870050230721686504341636178180708926668356478540112949552948265625139819595073894570750514463335217542855383892982577319332342222157092957273409077033932278451488063826105380114273648512353257701183998420961970248231977113671244130370411445054443895604907784581129422495147073011944219421337757208558685088100053810279937625849455724840968735337543898029461928215835818660518411792604246986338290333154886252544843015204554698617974751743482483003696221490212891422344734856034610357155286141682905078464929517504985965600319388981835606449179316725784164939873118242966436264190663921175978787883254359251399408475987356671531968480659994247999443890950457785478848583015161122290414783680185246269119850515615930467593627231603695679942592990482592066740777560216501611689770006369050330373450755988805816124786613809379053418758837729037244429438265549573201865147350894949644420733305863721292869942581985140470919705956756855028959957397877403064865306229325477859835794705798112195103193300032588610673150857942799496377650655436383865667759821837212142313170538126844802353132656316578163613626431428750091323023049185124157434562028329910893211612935093394528434194316553848410972858255486871394774768704721630707395304857498495035086155081796001664256194370746011136974003651615274967671383702614553892444760617005078828614791101471450827588389388955065079409433569399758938646527598105155973741004116058790804937067844974021577147527112479810713812718589540653505538299553428678888821548546331548472068028258801016594311985878359520055072959977841162370955712304567694729000106742932327796680979207545312971364183379762071598412161132561016607442905805495340055659920748863439231800129242353293241162700515088319105473413050978656796839340339273486789231290539281454567009703598083590263256186464850713895049769358985145967234270522277883729708562998350105268635627970346422689371692117237581319178220768033059775730829037620029167463983630315687617772634157952629842573940386276569770222718803783849048775242583764312627038580505726321360338783021334551791507454275683109721879308198319620550265261511938044345524619873880817205017697673192206764920884816213654043479740115123695112042230376641500901043751686612437885136179563683941197508364740946850118152297598355434404308715538083382437026913596732273263574859869294896084554813694690239198000395314858661269891011095478266692108480051710745798578574145715223213076850556048229287374322246142706844015618462809641883866120422266444642002496500953472207928929182713026445368409092037661610189084781829522639803727938766102266759588649635732000160926710272390986304937592138427123377396881876625833329541209770914802459446408918921477123565529734606076119894606493662444676977299924090714140259919118267002404366309822077983105437609563640759993780441484157725257242272831384102347245065089458850219714305168198345964958907044456302863744763886919987850047632086125613374110124457007815172837175493406758232304342547500420490780204756122881500810976965686505439958390524214416202800459104528744597823173964301401327286581691790753342215487667576160746059560195349912502054931336921586378643358372778059439996920646925149146462460026637331952659378058662858319563313712220296879243066989909155592660003639716657908112877100657429276508067969137609251027528406994231088262521735932760419496561612578068091587023575621562025254639148436191891601520124456503507114733764842708151537344605679485074091745174153355461187395054716452988589788945841374106981474300666374282390116709164194797542174531328764960715996104091154758893576652993359778298698021752665781370488457517779136169246974979102921991088633066035671106517374980762669958220689350255382450935449955727140288130418106070103080994483367777908169792744868556590671176031107153449956557411196499585621319047013740938362875499528138341248209736112697119895224246767545367344967496819395939648823437211367728166902844585700293414575038553798342541484377952048262309678128272341441549155847485705163939853990348369076474458292861429657435065987680985651499627448818877370842543034353057118219866788764573769382757369026717548817084676807903689380023828937833922142615123812441755442831662349967999300508537258895880048462456213857884368626897912726200209003521727818880494780607389380455347901967193898237556383847630175649262801891783456685644314720184302198684245155098040606472546448353747644284344187527421707994831077420861826360396673332166424035090841249490338117241814698988296591823978572177700968948594607022982101536843082479443496852699004686575584092089403057315241687888036254865215603902741723816283503029211325745869487034016882252438471397849168606267852802849832383465790494332156713368098867258116042746077311558068972627925338795394659609779328750494231276789924348791873070851154340151855044539639173128169097977954825765546454614783653837518452558311345770494589606623548558621895702272715880396250146884347695389772938254434503977652370809939687844314088257999646209575237311004070431268828051065862143307415326735646898685621875687351772861465427609446222469682131473618610708991533189661217666509516433724349712676029300394196667258054405071506064767899198824828367306328113718879727406568751225901469688105931282226816778406616600820198003303342174828339971847219820912280099120897696944284223441131540609760809654023922465779275671702544225379534133775885388727922428307882032574589856560392230172254469173758014682082577600466557187647186450066231314602321584609316949132152056316985626532766350710463475585362051466311537218783451812816628532696278741640069466148691947182447666465286441503565251935796468097703809922920749273262518234091366212788529194999105417174360947305853384357437276963342223891861657325176036796554436268441917448990562185315388537548234486350455343201648959736848768808388762949027689138649596034824561016587550332130313312160892904566583249808907291924487818509933976918156874401319654389587711434269523173362822704759184703450752316625961323900460204214071552850348648507106360296297585739239523216893646712521338338940292461847768388140085075111065858767043798631267465178300434881673824128813377186500419747934914118931318247105129783015140267711083579159043717766194093955446994753941096620971537800631204132481587318885047062383630081721427271924785815918410017941101284826337689996534009223425304544299714199557659993716544616905155735933862295602775444268404666365783601526706151572205998936522787663124268813215660768033216800629147670058402615838487614495009127479285659637856878235174470965895796473827186109226312679170156555054934545698233101399089251157321822047108985517396982003705011376404399578656508463952695642038760110564600237671199975374303149521468502229648799855087470757794218002228232378280136944874076795225731036820870708460117596834726646842769067005573662770366405636205580711690742677431781844735962998261372655980992929219681370624338472833452471737956422623436740271222186164203276146161132126941808749336802401253344477862918479317139341566063896403199532580811562011552112077615507361763725884255178095816514882910666781669560074057919540346760421480912105291466956299361153316216915083553717406563948399119036481953381957553431652091679388621154717675534369506614183734049507502947318801866305946534682460667124130997172466474026163963456827985845080685829745238701355719258034483375751643987132363974441299645806298719677823584942718097747959457437568190618920424265063976653352511853224494427242286061585223418825111820221779741840946693008471911387656946076538471169651125249047633449403957321409578908730118474272270877201343096714286403909700055484569043504807517325285642942820389239896781706706769059289924049688050529367471222278513237865021625120512494706339624622591130157019972607334899909295653565047862220024152113096551372599006216539301507440446013356326723597715091379916119444913890521708315536323365614132085150793326851483988794973915020600793583323746792636863735321191871144723627162964581712188986117125159510828779794252246453475682858824979851329810339390940399905659083396134414709102896252159053318861733607543858622215331011784716681766347610364230185596632115206061055716287839364602815105722484568978881960980001920905799867541550728158507793546094128707807606521532862367450375988698516029002225828492476018466868205531804372789354756980387238438522485395797839087464760315427983632826518418052826281050812749924590759536893963569509757218244971363040849012296737029067925811005783659274760193614912282317504718551691422235156978402145414211500736035435688990854395557589756468135499110229850840895940213919958892073276570957900128634840819994438325531424619299796023896328226295854817713301829215448022093555891036292449865176641413229336031582299187996853925860841343611567744104193499703153769110039064450189984378338600916211793258518818281687972787697508416513090020606686799922012666421941556373991281593290249401972017179323712661982811907771248070634613994324703339731670019030873708967437341746244680705715476962958192892267758195653162324231026875280103915538611469589581145781438742480398253047462794116176431784926839854175081702913104703346510081816873061661241005922142394704403669234886006910764166519492112022092076941630564542859091052849061511571795120877131927409360749343566721943277478964421858159633369148013293118411901155534873866781453090769188107995075689685677499384792129237183656085553750064483900515075027081126278440811306818437493408678870870709587463126741116578158644379118630231928776095772553748500184280084564564036660291179994373546251400882595314653685281973230606831079286825643781090574701222541953644877137334002789691119170843244677396328297131519663972756334181711583130093079100479382100543202555054120676745480303663651227633924328705255754450510139213298067278808934209797459274096423283114309192116792694129227214060076545547222611559788568323372969338413252889942403656066722458255702387528520916108493816858642787511076366027665902938036800177360919869141374941883280851512223509759369500768500873876969973818593826666120526712953682732169830724860991689976744351878992079735239790617439038949971406921589941776366230734249647488397535955043332918306913320023839755984457671301964660701822911862531577203699861517799554483335633967815801040432309184409704387068860027494916297529276900181226189831002678494643286008724291053840768231128982044724230089912852501697669417510571439592271983084872645384731499427774086914746548731748018463900920103613411436871623001002699216210895936110913905111404590722611371618346239020630278499657050585171155556428818390419574834160467238875172818704084021495840448796982674521416693417250917405314938731060899447062613309700908677454107821033482113080226736503242960575872635195137914466616123392438101634782121131290109900478711973313890407496835415971641119743496482165995535196394615096822891790025077268644969515896512017435313292218226899450846194771566614286039400326467277156157682619586982760416990128890447478968733309413196935581690406060758254582392670770185977846399497666907746160410420956007965542683517657056626963720393203050845106837986556700622362552899423276122973168669969709963456898859731339375141762403833855165368537697010750744849431259247856077610228345465098080724785731826693099029768844912803574379709788461528338295919998939741831838864566916506262170687407689407472738439014009538378031705143715605456324239274660635431897829480376764953162622158959776858339857836518336755517350923878293993083159755923500200682617838128583887110239233498427260332107423000234277898979215526057284494903030225777706599328767448231283053139326386725352117134163670863926100916333352445121619501689023014251028874003349638580407556921664527731805267229867808720994686306977701802900662863451583205839130072910145509545641069270327592257952666895691437095421837769714941109452833452551668751506518159034367472532609012506569232023931835186332217160037543448529955451444862422736787550881451068557639274239631559559822181592276917997795443103488333668521462631764113095471177918453306163829022513046177500856229264599507216505118821130315891296275349721332266840246083353069355018637750764054384503785907714024215158697940425692354186878720692976621108330438723578983213812329629780945878560832313152152693278093257625664170478163283261477258153038027591050786015026118660670671029577780137693505971867671362376198953471854738428699835712000353980105291815147157174238508675899956081801395798022150138702753899255818648777246199543185987475721430602387234983681798221026216981938593155764056927424644361587141584229860194501056341403590739081777770488107298638955605268323040918427110464854637567474184732245754214419793067307397601702685376464215447749525035904615352608182825479327102067531818181543273952560628448691350836605965564581038012547395870179481929629426438728555183934995360595963424330127292936560196419014989963249728703411736171604522297733750956326697659707690113821495694385409743488290965863602783358005116849883860160836805208604588239396045476459257003271068377214299763200030723355110685003433958329294135647034366715695311694602148374710405489539368790995165599250789508964429537589688494287719405257067761574424530558503468414496067580654720915657318089655337030982440945830731283344559822751126377522941467619139372735265315781243477305752581103262970437934841023901695170630473813274118484086536380959375811773365974055280894269324501929153703500390867018237310094487434546320647908850814599571313118409774578147807675362655514821579087122808041497361225383945922977173676402125367096522003491785120467682275299796553529623802643602009880957340583307586537767030279548510716841974050439829209381641008753192514614566425256330170138493324587846483356772890944829015029202889948182620585718764669710215419315397340144421088241021405318565963845856697267589629044112928782828166767858267967589097393506482678662613024319312579961869278716917134048687539228013247026893078508335030473048542117224840420267907676102157635879156303656240016473657835971937478559831179718281439357658007011955526500935871042809717323580417802053879612613239295596939733387925143369010611152453504438883592354321053433158612284290245676469592206935632072531478879354083613913691826065453884122382518636728805675198541662021247165350600757284195548826560624694265383809240297131672955045199294007224413171905646733511279060166392631951822990904659159172980748055121840982022322844962272341836154970474948708539903745412304294442111371365281218152344508492822144236316111996326485024985520893547334911525700592390449052399467162497751333202633690770813992873995708251282338379232810465758791091721288377897601936971177305592942887209273492836631804683091048704087213058568439302924582734424886618250836727954713699870639820322024910367603818888727397925476234673571054572962914735002286769723087122898756131316144121926659057583670386466614284546383942023582097806319251503017374073528530340704662057557759736398414100961689278599481481466189151315512343711826227856251014982780091930714902392240193112228547099876456654131158789488655688805294405885862946845603281810422387092505434535931311193013645571463188992215287196158576779368616432223678434127552198976003280970717431994593573251224370286868589519191390828183129209258881817959598615818885401419624084013166581550487880169479422902043968443812260542892418422020515389084362699529838422734062933663566448995622113307108604030846430711286331089884125322342012906463875807129263308177373228712968641084324537317998924103881752198128415661411395848519260725110287429643192637304719695313748642351765649731025406497474484232030540164740987363431828820972695409113233445879084695983193274940307305560265633012192740558208970995017455249859680434717284385673861958890365650559947318775232084782432785944109804311494598555705357622876181782965670839713752733947996579780391955253846740654007456360237318765103513975963186698193564921108078036384150763638223043005699674051499180303587689922370633826279675774389191290212178414300923036143288008904858595817964791018007286246088619063551092491693957172256996496820983990591365137786071467280074793395785391732495163793592390551372679108278299458471183948826064740135752484123048352847413437843276496925630542405960157947468884221576042264883220362582269831376836538023686930660509552008012421872123624090310106283349124501638156645313330576484310464664408355775877230518305786187445651880715080484328676920436900598381952641692109068685591804123900959386872958158023059874682845350549095943674327668737348576551481400616833079373744467657968015721672693212205801299196357411564623766992025979758601554427607229930474463025235379685239853569267756815491924574386066481425810225264030553139975173471353696338073683484170381496475548712638155289177812409427338941936708106463928180310011414875798063751005810285456953796501935450853208783986330717096085204228634238727779163761180953363645808964889569892834548194308874846655824953995409083478017984587190116988005262109942006623572413006835254202172165259520509071082246865784884109973028519617925489483229109037445524359390840103393528770468595734365071040503679669542553726781447695612176512223495180278730050886233467792843558994345335127897114492550489774714439569915872104284679753794920275411577930296787886622057961776013665544715416820641819222870304212092254077441167358232346894511472960525636126456484973104010735804920951979738536856185509332779702546543185460903350519865160593870710839741807009031615535992045472648534203358921157986872199399612996160492315578706461486429954036270364218505533450428650356872108569892304460424478801389467886933322926696664757059937953609491626984363868926560748985461688285385624409832680714496834371271986044143757926488999018775170014793401033773317427382136407985693514823029958190862588401321945751395707054527144171259140560187929175167737620367293124478785390265870437184017390034849826578069918998669482746083928132212020077026125304179225067329858594964092559300842630387721193606233454945655773981410664836030521151976856420520448212129030130894039810684006637575311834183813752929162183834122313692574837346199682634644121387883199596204211671999930973423298707182661496775767111084711078755138719269229089258476940027902106124060833771229643886183274852642747103200862018715104408115543595916507735559745270430228917858172595987311525014088032398882117137106159000614788661655120694766742198876362352339032001952603691724282547216087242182747072220447660090869643110987251491098549703774643159250300783766199696765594857779224623263057474669255672630602941143891227291532811820859321321124181906089525434319933549506840497846341445473585591358850232083235259423971764315870066507756087371885755622163807278097652760089120709518289505257834809180645289170369219413798541744210870295731636155139696684266266588323866025377704859523957580776039060888930664450498363988978664474687416349349370591306542220599503575833392802154827950340539324727725681114596182595890223922567851993852769548550450133593454861497428949412288029079488046088402384802801809662775253657091058903309742641236923601621412069831754828327535799307086593933140114228230018695541463642264265151241178165388958189987823653532029699386891388585788914395554785275466827547558389395752979490915878555387129832332515748933485338126310290239379267831612113323455039708885620736762749614390607660379133674712992274881155779192979902606877560946922336636996149683938671064999439537461680696018829352432416143150736269306366359976567675259430776152403250279681394121525507602747364786964754885756039416563848673880456052331581334071300049738375904316995290126006867642075360302138540092867432755768584750153014321748888633307632660172464866244490112235214924082383495936032497164207429683158527419993546039113828681899368333807736050233759826682717658284870237816459985357392921474507942629709981875709437036288508381472520173890177900019510571134620428001145064218667991134610274763730196209903083323085250109224410583523953798373181023287066379886176728246539324285840118351835507910242094612865016288840512856482623700484822862751716817638518253238545020073412716254324556011175765037029157768201122502543618963019538092864143776839987785124431291065674579375196040688928749478014443890626671712968402249089502380184810913836459180770189744877231581539690844142955361183699796313917579110032472481602363994091216214345872514012871759877380833238776309435144643110944206875928455112289435301526334612296925833109451400345975211552694167214446310540750769993017939551915668754731442562830218411175086385222519094174926156831557720340238627197411779191737522636836048979269832192713037601858954296743393334609216790204901419715893510155101046088651350508776584758851442651602225455954051185272931336613351262743522124609236868469651729346003242879479869635917124375838684957002819302888759844249234907263049229496253676636839402094389017590151354129812648594463754315446716343494216636525480129173801100856940057011931834385480828352839516329175430901210204250896705286928650684244244804496767217801523474439082779526593983249138094588129146313573338380052927496938792704554621258553494811399318478413924949871114964055933575874912008386034095361744386565961270837093390838149950694963152895760929663297184498709706086751181804879510285986125436890284577999778990664292636185760091330026682879517082605632808198227613127382245480523233418161623444545671678049726494686746062448568357997237525621876770561745526405758119156285497945795498784462192459239250221115614044233746832103493293278538950227888344101854731783619759830835546933064989200208820732827572079269366685629726985811412279568283072882885293692483418827749130311102389873266618223105947041700436048855659630440982501092144931937426029911258724818602079281938275171873216611508133323502416394846971630239858418220428101388984148754472452333357755403754083549472633065058012748094561573050544877785850106965301523178253056634786065364769549073367897226829049185397453654849183901689685578108233708290004308507481468904619757312301400129838801153166566055298251995398149022402656894563059233301503667588906088586337810905760534529855517378468688868535965069436191726064112943571306330522983956241490532706374572240819199262621143159788852359832368154948199372730372017384931737174527095665400418657667651005653158726487948397622288239412114004331437217163128586220625837224176994495033410400700098609633101972733088708544133812492515076073281093154152549175564221939611620142694582223494771049637125222767235935429782198737575617768941371460704593889637986977811031850240175192764720362435675819479701528937893582639657876297894040122900724485269794250599611392320153380275007205806469897462003615328910474145709068561472609202187817345548933039980490712613951817772081425013548120722728284868444061967824792114931515443406198954403686899419917725541376811340135331850783308733434199398845953618756344138941408406145415794742744191505980318852668424081338747161135390384197780435881700392499937230705226811645219971567508157442141247910522969676915384311310226761589919808848658250894785980700377427211700418404611864298168868780225005034826627533736537556319793825398160106314954737492769362300261180788210602241878416144928273060737001218716386113943531446371270705107176341004533283920515148722163494340876788288604713947502682301467582147905863521836654244910553388016991312537890957991154093570009422021936137202589243249023261905574435120227262466853369086796883856019965605363048043685708595161063906241501658649864001664752339583677750901623848114541901917444102288108149401644647663812953872024039129623849728127857194826811202373140711325153027049117318908402245678180597962129764948163271101934662718311172980764684778254284532775155719955978123117596168604307767467788302910053571175178359198099972372357023851844575880317334119056017005255613168932667079127505359635204720463380656266401519250125685908943661401242069073948196448982355349930968088895510519121456201981972411202657551014729981634091001780907623763502765339602214595654192520073579455901259916125748603769312839933942675906565111782966034490227048168381275408669035095556720411993046299802227396137201378514983168361791106820506223899678618139994631840552512773361193163062058847502799755622355332836408634424807077910519154467554628995843504699394779533772686973305641542826830982199043418210951435132425040194887381915375521248495340723187770587499133701037171332556270329318086978313112348483784288706026086366213200863356772276631233819159671699552648874644543964861864327119119304541847661937568723049201176689200822459360110614162312917195271099178723081184328350903414946122897543731118214009445194281995224675551727543791148062413266144160819742366866243536563367617930435832814040955622865853979406513833711188476274097896242260969691521681561594334128853573332074866654268921322623796710128504774500770599705677071223441271970818705177965606669666863747670747339096398146008133387690167801499504755649122158988955732339111755633132590510741595335298962030641233805685999895810064623204764271428372724064920003546252267277353814273766367865493945034521245428739021403458181539932825075099662555414382815442046414059126980139478190330322539822244385497380142398161173877323951525116112081688823165440456328720066315322945551146539943043315284493440098370592588011048018371070677599590686770667115129584008131439626501763608760573991807112184437614403829988950078506695022724345001512270542520132226262219031573137515256550120956176174366135754724814947867448445897053622738808837269407150476546129381261455646238824461219010105933845882331434580281198167677388188814423373817204446457248320051037674704817001829390545535470038785612480129735091787605082351222515505820006006335271936216608220846448384559207610897273773659845512221206550100528615386057224504561146991520745410397697030178793377804998994952345775614952681699960184127052898126277641860783761485741467124818736931072887223550845730857326905993550857952866147970063275495102706643094226210828799315636003784185337569558114971787813556033047866962065461254099772055963415270042225647922392364650373579696694530661957155950334710216308485734561762684472089413305692557658506400301082705038339285330457550581561643155414872043148486737304716849924762069710276404732216879351874313303036262555488860532182564764440383937077341175567027953742994395097351231300074493864770178694012684808036013693151452085275736767500280710947142700690027159459075690026880491695252380883559199746636752738070875188098148900312549173533289894167879259419146367056465793426775974137181444766457789835392889617093173046552792895932834900267929079119829233736474038905646240145469305865793191003200393949577240442426465177338477557798786270577599391423041666395790374337024207299341688669944216520872570641762851778042761458254118576767473236563321507268777722647396807683100101905186417461511497356406403530988846341577124505503798349471107145477061999384868873301363776343567668033528477616579012492081954748528913612147078447936108496899791272675100830690949962084290863075055001215561875242770838847209079506494055203512154066142649144201758716377460159740827184921828315567516976588946233570860070886718609040327695208957508174712893766083207931757920510099211571557735911543166408790344885907063061528631969156419880185105103787371982754120512933160751548005379264955533666266112083728379716506973142407662169028232205875082682488723322146259144498037609296507875219197146560247506227579816067643584887589181850599879594553544014927336489481912123014335483753527233175214469703620934987325745974068370385244359375831458266940305625242154396869635263942503762675503363195509612687833190284106441779804506670515871971517803616381560471306123107699216180753963373304032968470781703490438672566841510595797172838973703354560509776630152004379774798332556743837400023264098121572333375764907856460432441298732264354773056369400532008994486453329352998873515143940226226010623410486356908494808486825501423492818926232942660901326747693590405887321493540100272801530159663065563777710080194718066497597604572016242643481905402629311497937128138989718619448267350203311887600929713036065872406073276745696917740886626913652873103087911303448424655766693308652775181231061543130360399904691041538196028262675848491295257633197299593520405250458481750590409192060148331114753808573845760249937034078033842759663113682313183418568975028542964192365510812144425847409620059199900833601529685435428997460896458907239504124296995627550436298484541941652864916451748904377934455773950608133143121118985036329304564594875947196456047148877818976063942982495403622611214738186452112464943982753534076093551514097151581337229118322982733485513558377780518748803295464578326236514643103500372415770959358004453628689422527241622358133754624383000762166499405145190993784383111484717100678273321945667423454594343361335310502992128226381039097838761677399472177473348533499635090814741373117981853053129588724769711547241712353866817912679196610336922537469063416770638449494407920603075301299910767829698790654740012021602718474641889089644114499984859643793908034510738752722032845999143115397001987500702577430529314123126471321034060069966240604489040099684847575739007705095814287692164977101349866103746830472428067490925531690007462384387508021333047088896758306666662005575274845839007907039756359750042479963007993494250783274595177479752526511082174915838193150975263256787329673438082442160850654223378537927790400290276148574740018781313332263812467849184282030382759458937011140822387851770323988139770215147818877345870782706348317861746272286062721054994141325227564576485459208785749404525713300118850505029937407815485759300048625197969437502987676687909705127011570097281872569049349985476415897880016010346075744163225283773840851710346119065069560065952972157796949075023279922274444244187719983293466032843131662663897810353731905239720199943461219981260100535608362045137837104925283072673054691015211368806580522096403263428383055645823941258286132151584893102028243834740738220235033561298727132066769245118418953782763843757328896632446276171713085428192298244511034936630670278157219489987443344792383978576391288638991634992064480870772133564020733309508858825394145656645459056725070640674405218798553298835098244400308338870221418441440989628586661276663229559540313685865667624750667510063129943466845902057938148515998589489777261306523297054150110544314423992914761381967573077611465975108177051016132066025560943621369170760347007409675231870120956271584027871068071428669348803237157615759868861613509035361960180821599098718219634692669948363321174114029504442145443612299823292458871608778435643252878613591481744967924432582161749503516201826698473904639869102241717989761422309854879037914304562732820793905375939269525862193818220810230474391688905103073744393284530100097167760759262554832118085701838277019166408709646644125368628217685214135580846109242316861544570824248235609705205151688923762248904081806392714432411807248532967850911378655767732252061022737937875325805414170463325716877739011169377578607542445673616438086820690583718343282945688930376311882871895593972740276942601498759673540240265590881649270935031271768410933673387428340077542277754162709478885755987130872337634742905476117252110271764623617701550333190438578061532200265177376395156287226949416848944041576984026178604781114726483020345897403121764737792938762936803126791657231883687343058781656491479520260090497420731808303363900188607349346500672017188401616776649444782685100901124553868618795643318383640386164039707768102333098509784927938907388303870658595426902126623004037877942874757179890439376315838050356886256000320451682857693449972361007403458771574095410397074041828040676541558278300882876822265258970139370798102179382724778508730477735576000102513204094759999963128813322176071461445293123511763112128141860377957693004378833707974302832820995371580989543911580764452643006365466456072648915845969387643084339451530560928956072450848733513113637887504944434689178024805951199165250874724518259912456648952537145614195103653564772885705017061130567797055522487462584067387462336419525121737117316203778196878417455271988640042942833486668726634782388237707027393339304600623692471467948714580091313902563540750281763011396982211132281606630116318959955779498574717333728456669066446716835999891856093221560528443116265430944970706850261385807068618564420618838159326797235359883912629431138183069622888644671964548632236063975585029382989426893862815843814203220644862844207572757131131532335054066093559765357625252361045385069128951004192789042260136323417705085710651261869246922018597585020922376752265141348044391437798897056058497846872852294373839499566103029380692103958886064696903714192233024682250052659642646611075836231462477091463718677050499718877188616493815112494318248342384170107125268580967158873354862727957281235700880234869371177376792251301707664589389928847232100696823006506961148237336163746763562224764681484708222514121665747036724705400511432937407547669242437339889650418043887847073197713565926026761751168206571263272864391136200004821807667909471751081609699128530289528017251495215869207787156484414855974571974799166755200457638511534268236577969852871938676253809999595246946022635760318308376019441535466211541577208638055770559119243259695737841888900352658398375837453009913518486288882205889739716692721312388938538263571652392136734825825581521669278252893028145387135663042022883106446760280827043754624494711909901199021004883406894624404613622355331572154230180600322841042052446652171029541366787413450582392503427377610122470302256746114350493875834901294226444389650872315233781559690818426520614139165992894612658611753895479697774114665712435133411842403616250482333020617787990710278592253040181852733922348122566308325203609646873518999014441185535864141802335301408413208611287491780490693603200350982245330568154336047852434232695684168293320577840094240789426471100743691160071542344285186154202895151792656690661443712472799089089046742196149753445039927248795661579426331899131069168945238985384241735243306987098881260362640208337928000709708468771706285885803691314932900977675244555865077906119376244216928294973613716847499832681244204651998673591055440258410945925118578477153098332817737630336121396624929774623271989668590032052098225088955647329615197810667938456646434956067379619979179880110007600691918027552526359948254395165024904241259955508606778034403530413794166171269418441542101659715745411284156268456263424097905480886590492607062397290816125292099101199997393649770950490114102170368953451484968128673199668012336504888313127985763933130372223849444589262908090384146576361740708919811711479095439184393388744159148897363100786315932898660812869400679486458339928501202396455052557851547012201778431072290826495313192394817690715467226405971515342976720773485811680939497828829816177656754741451632243780419411845051713123182151183107300826370769380317039156575199888059701335146625505237475277043770532845169648066582110727199857282188361137897621573531727463332967960262096382285660408497578817215870955116981808018480857377908344401378756905387548112367538688186764085197898236711617981065633023481932330133861513962111366200552771144279415923074565825043829091685677103853350599603095043394832185682392355445212212408352115427626051971792157436971594818794528698482558013022326220006501479172076551007371700330517036718552943558641701906808494814028333048791598530110057185239082226485050124048149736824869729474208163219376790880018681395581088554345962450372152809429896623215707627730323116112588051920853747421199748358673853324563909776817235291433296323983692412972426300233194101938072604737829962766140402088953236741695220974095412666055484278446652902804306599927722167567138733554788162614888944818845225108980580200033754608380835312537329060061445323349419744615785440343420234922107772658731937917890274520808232535359963105999334041707000760396865189173859120223035729560758718050932167294331092748922049187613461016043068784223596355245876362175346903939899175830824015935386847542657064282438955102984141306160784402829649688895230370314235602041081416753308886155783360822695308619647502995405255862601912214956829371682910832749724302012743261875545050925637858787330008147645708599394118702616733664005476201689243972255080344140306568896136550989335727302266713763301326289615602985690004692474072993066335485762394873815909424967822689842439689725256712136952893175507667320315187949376426750455108356577580314925519293278856345511466940846731176884816727365443820248469124467517202647058712111659361168961702397153958768145810076762371353984836931198833683545147110598856839450340214886730204438116490712530052341640271796422186909567851782908036013945407477837070632913492936078677440955712456934647362096721618258823080426364014684479502204909676443436837230365087263189347489829958038279761880971667965727784574905415225664836511999415049347392683636468873362146203397539385201835835497717978638695655081142859142254129140696780637029993550841399486654735446026295006287283922610815799705414182473119159005156466657878054408652047996132302880866248963190941574894311249876695922715851708320425629590204499509645513775130334117269293082890520325487249689576962357526644542044733458710489378711783479401540171047644002147295300714927984516538921291920690247628512159393377788888630801854627455894448399126103708379049320202143163469548369697451832278524164750488152961166490080354143971238797757807532635767358265437904541352741351846174764702324690761683518981234747327107846815437343238307186139491943969489268046426184674718476478058167711642075290600530973963669050559587542388090267896913368492059010536517664593508436002259550760445390712690845663769693097586206778366556315857191794707241507002463653548501107017707409382805246501351427759100652803566861981824135197116165122263509372400262705195934615893879548950385584781051533847635842894409307702962243110876367526604806217592850355967105257462093300158811615122916392119125497731576941416534635980852545772168080503150502797470779217736411385895496898291655452359347203137913902125086220654684056884220991090569980473161689908998474557402533675657191471701011974449204105318620282029621941190048151604651139359693202386607260408881788520270938531381479971733730884863814662742023512084677292261350933137722693654559629701383209427515029663507161417221611591482709463451533667591692871836777878017858540382207149005737524742156880869556806089969535497601739920978282262601556551098938168594836721334662505729954735797478177173017461429705718504636911205685759872926168769320272309090557005258992538126013793226767115690195357263906184427886201521050921176650893783939586317680441491857416986706816312428352717449157975568904318277234865913175932787764014940582809032555793600697961124654102625602377839398590285703917867101256044121897297963096318553864791517976029420126070334306453905384272404452173327078806773247397596801933809014967928762667671475206214262400844554792798411276891012583703846435793851047961836215388393975960050094266224992145779300041070752482939444891834960335432484453520602829627246696015215940906287670757323910276947274463439381171831282353137813747458009031492655818492264250963064824562408299318568464853188937286363238833481457770812639717378340380598493620877834964537504937808779575681496389001526794630293850794364858388804762571330106600811843432849736743424149678038475979101145524154835729282149011672925966212934131727131889348873390596050065848232261088734740530086816474848458685105077649083647695314630315615670286740063592986538031059494562430541634094003190663545078909117257266399582422010856583822800162055069463929306781639617135908556528770012509249460398002139833510077059048363857035646791320657296986068464640010912222374589586735555192785634920016097036921679292400339379126761336486383473440181908121705073703507144078217821679269865867978000641554958209821225365180633177042178276535732289151478089353025185285075688238754184788771819980228884994816798526329331904695422122693032126790685350910374210142343113337937140884364039233128916879015337045028097929919782245098356895413200448195036671448767545507450284458500849682258011536465869869249573199399842090494435916527327759866379105438449635378540995583307908442221590354420038229504208707324784393864924221495453058108224007864583002606395666735682592899721991294720390702078997716957849855202561307846472825400832823191762968638402500533129946808047795749762557265988863547842454629481057920426371660554425707861863462836360741491648483961843429461546093406873352318838418436140091303164112902888701450007980808459994784445743347189667550568959912615445352689685395405286024332763337756894925278177573920866887597641765351899925322165619028194962902187823560344312281484412302036361144828421370197139638599447144007687540546324494301801373269164338883112923314710976317961466914441962003783392359246202637027316739964573961630901251728536069862416695314808876001895161119869570521950621846576281590620353713103228053521375839413718994243963842211220185100410729157096094872623143950137483650211010562575301605101896657640729892619515909517951496411734329046740152884221809121815056352004868191295758554411039023140598835943597369456606024456690378428067230340162298402591496692171712327245851574332075827022072709516086758124686403265222664130083304450654151379933237472744767958081704268166369004052361346484708166359543217278431144443887741812870937694511542601546576547053256470551387832343883103801343686926671714775141296868806577121090210120724233491287233238201745920622581781071698981140978846123946159670793113058237189837107511101203914459829065499482972233231151983322894030425986115772279856411772696529111486312565701111779215490863179766335412628504845842736336916490421134585509536312747532785741568376705119506451793297997879769213857060475745612791749401719920363109171648697794094151250383890881091865431923148226534822794476014401327598636905916861734261155034532180272531455634878643175997170921424200774226716730324490276936946401093602758619691489755496361551695034223889242092183374495120932358448624209721806492476159937072760386177481663318306305934872955032748033742986626041291194910191655772318318459051029255324775867668077851233362110838040194453600477156332294189784872842177809059810502981151514444891415684805023867120026687512905416241183690291045294532076946524000495138384402885693684957240397879566626102008090419149196065324002334686105131460438434532297404389714229153447558937351217553923185357171341880914087840621273969499196408979919628872674986545085671830914818085660662451736202915878696724814195629630838887183179336880904146865565535533555041110436120631367352349097017555985725357059783797618442188388226056417596248424914919042653870173626479408220040730574677587763561111108667202089774103689567427210049282286526065209459755594908866567698591135463735688465039524596628556309946044589527286658608170212729428054902011394079067369494176741457270788826494776784966089929438057834182945054775530937926845473550828820048229714653872180118796362456940316344947313394450035445459401961489085647192498467463257191479725288097707486592414175810557090974696269580711356112834354717910903166493607611684069413814761982958738821930144516532911302999695875897287243933859212802285640107089243160400476099213598854851213475845690530042599130052002242328481030131504719266788610316028186878097290817456603345521653036779565869076005225327972154780426539917149369325796323967928039808635083037426947869538486173546743444752719280003594396381364816784157628534805070673122165671897005869620673856624788283066788891108239487105127760364851889280723979323661294705245375639301234634293540355107818566752701991197086129496288062164334408807727734739620103733215049213985689196518066509765470216347895800384806949470783025107947096993165713311620193928200362134651628202052667560917126220279204878196151039969458991050918745189472809356467578110075296158934684262147643816486264399785849116445888177991261373813368916162197685480201564531910830564444615804786434480482320223942368790373488731930243020017746988002481936488722590748345737344899852386934351460595677719756203501200825746144804947177448943422648984254413366159418921941246937644754247637488889192882346391159591310557853459373833214516773783728812772684091941928507475161664131882040968556769897916846445501754582688187631665522108689607814898906785773878040373126547820252111858359124689388419380580184644633336709023186373923176590279916819795812443487749815478634302305499129832171339948178870039565934166491727424769038432702611926024127802593039157234249957662364842151084815837085902262323529836197765690751072494872562294419099795423709311096792397601027140979609825819586956464476026431534800162112323639353687461214895225190598291134984390240405109882587640604090548160833691777972330254414187714775448646224314141541780648582792530283802265607690918297443034761692825646495634336933259780155179440056412567353528293830702422835740273747930326040747485192603149504011533058063301617824577944433106048808671058315494241687915587024345465923236644146903965602703447570450101881966197830777745346375280339932546194838539604029648477931319935101992789613964965007848956569855887030267093703088787407531820177672797046355716486525688352462593447358371789166537103883411172389970264414921333636661165018735371703117258497428949092388221884247257207454157590958577968156157490357375480264025355936728396946199248681135096496510208805188457863445337701472862472232202625766240814388162817710199604973059559312606489814719057850952800974448656811932726929969653422786028171890543310042056217863428269161751191095792598478077820950790901092014754317037111335045692443981114646964863773091582621257525767788458731490276449612558941358416841712752884221065703427345064527078337236452243815170085561917086285507117341131600644761659169593238896178442729382747684131210762987869622546258061299824193556163435756869870309849058652567434813993219686734576474340338984155667876028013822725897364456019088488061181072098431177058571966715024095801155411877592559002543406416323960676428919932614937939595739070850493683852090497359526205192271697762510796037566675164632409444320029310965834782230379075027403804306089173409940129753355075332802890064453597588965599417344335537421163338288185992916622645023915773293973740400831980751177652603299842058514064306051576119111054123230791478171830775104971053711561866353610287573619027716916224309910259061303874455987534351069123404642641290661043756081795065314194726173135702900058357045456558083214506814008260938988345202080004693252807205325202356708841612075715190040472002692346556424099537722531267554473465568965227215225835293666622033743877945098526960921761389574662163527153225581670670533723195599073250089576862123601672383777403239208563716782815987723879797666142590539175669572051922850206007585263917735749352147206007413407607087401070041321831029867167864538072741235797145137193459579356836303885617332252082012011331588059676738071090731687189326054795244853655617194213094751036561154006706889535559836597751246806508797297887020965660892763705457957130450710535648906102258100517731683089939054375258101936376098581149573052341544320174463008031978946286485612985348988104365977106078870808552721182319246783823969247859862472522542142662492280154611133869691657808393936573995560754959215114582183209009062958779109041397716007064929625667408078112571258538263616981854678391735228393075916833351384248128649426579745531163657413621460565797485008777898682713097529567844003056217071804477767260718228116977077500609799591128607588649417356381750886367398631153972619035273018401561377899034161341884140380413315242985032023685212406262244364592278247231979808291933711220354009764665457345860628012360433606489202684957114203976743623531761802023068479720228873868974813519877032704112372770058617161960971579474190136628283777758597992028389106822226348222356753056140969173494216477970320941690323928721990013588314953412905186919289666601654748272163550524356650442516383664805002256803400900137171411754295355443691295744567931536389523069744582863303780421430349277911588730105254201332640154245049705537866460681691244178685533840179000615607890333031993213686011700772536936240035101650294876429618297818199427802866715311583450494788067267732810974531071211766244526945280600736637923297495416603923494655952025790857488687420559836881620414659594267379643461444958073017401258871523775177670822572026225393679022417198967867636199110768246663378457137149316214539129179991451204684709964062036359289367680957395036388658963214231141868385034080986646204655978216455810676196936887949605044583928448545430029563006964477685899117452693827408971447505342428886520587546520891502756591117220565469503280220208581961515295110698594455642422251091727853232716814094389168303870677443838826933493023305162363668112623421803930316572307393980818102523094049870751812858535615138750933235956660837282839031905008329481177247142435572786561558069081028908584122566656197213598434992183550149486705270655210388544530163073426228363700489437051578453229055081957288517471590617734550337083942094646487940728247974081937427804130315899096431776038634635790532761863606703181515742112370811009306514991884782725050877946172851580879124719554766680275401687577978855178741300917531629568271152084947131612970555913073805930083346752503704346223877091957859711085102884715154236405623525359054275726242675108069990793755808373427448000562820693232448615706626558584755037874555281342087356524031942653879477785096891156587939581770791025176758838548152498451063103410902224453581967938287289142786069777295196431501753777905299875347879666290423546149270454468198119302138876895929879317898262300116545715775394784588421953571872775566173064949553354634249023547664481833783472998309864420043131062045966958258293497553818218727954497932582641915760694810173235132965636134557892045717524775905384510975020297941427330490744574778332523792570919285237579174564174323621851772737221288446469839251316210901458878023037765370919845657936522030035133975102232619775612958731133691319761024090943586536130751695656875208162994278772257241261394284817454861863888391160985209650952792504620768720389709226923559017701641559859601660480499985549960399410263863968893597411637301788078506410662399892190140483992076184714524498777727465335356828105312845631243521381305347771745927415643106087127892234537497533393764156173372355238465084472865371100722280472673533781588772472519273730118098050228328001711974644945259667168030674514334879181427343865344398006463937688729328639251816973536320273140411015538430625213180401696721106431049713641836071043205678870935031083510249824579301704422338297474096645661912659366202102182790316969195462743858938037036579351122576729551006857085733303474547827728722151618914245221658778507869601074726326363265322486200173055191824761698765489178174820050727733511605250344729892714786196407015991833250775538325819016251123275691071968996060547604235826384169957282130437355776665141848851574172058420873854788630382233019187060385219817330645565696712544282982236937177386759987071290399481480485823706471328589578039713108285601617572930512796420818364923405058924769862866822845894180200220497337339217718048800572359579292044115003246691535213402264340695177815779971700771592600317697497182910670491208496339783287924113580060771214395574061043407069993589369240613551534831537067186991567733047063305287560322611015462474156299344342472973549954556453990832805717747602040842208044307927046788876132767313668007214871213132906858158316888563101536527520359699731114993545854252433811886995776344350431019558709007270880080077524608274831643179967712788868675983310923966663166980455880706422210886843587973871067594903386944689694496678856221825679638452016264613409504564897101052777149717783034877385587061223073565448557717089161921668632199358920620615269093865653445331752799716795896549517810844934794191260343257280745497363944223216008096565247951644231682975223233307531325770385109929107183809697852758184105722599470953105670404106784833504967176254770777139865972612003441445065151094202617638275778391533058123856776355903290689573401934130712241935127215758535323812964937934396974760187563455431288822162584761936858241496738360119519054620340940742119952492432585537986775880407594391283260633639104739346555190947453811855791226363501544724725793166720155704964638808063101685693263809074613831859132925296485874770266487214019902493320819245757817480112623819723059463681747273262539791324500761873744043543992457599201520057988546401233464412797126257614739912115735387447708352458313717248175580012229037212175975155414543169379285641743141775849414784631326388629756446440358853146399259119309799865509587966033458925389190683176253003669540936145591370788545803940382380344646668480965495663878617984533774642097479455797958829767306358083080932339405466082200057486510315751548640267872929290316903103361809399272607489100152896747164227797407543745490719004624828379279922847556904963956000357596437061931389141573165529462219018700401259430576517862261181029115975563287141940252967086854080524480747179811253619303969776973795623279341797947759299806652025020547406828253374759566500287923890657001536622455067670375773759132151632425859289011134319115043381415570557553852353110670248816141467194514406240764840898084278375021417527125122433689886504700033315085534566395023046054529237614255311825769053655118044265379751129391148615098780161885828710085195081067627845536343742210882270000334929073639453420963484073452272431175872628480900308039315781254458248308277343243471495084359323696321292385777206171113230834633560507865706616643227665889170697575280044630170970500959319137657455456279471151216868514114346661190055379830093143764027137715128195208616761734399805764082719104801863485381623369267148600749126134978638904295281851026960281782062812677914901063596393097129712596308571970674018428214480730028429707144629256265911569590022498076369519904743272540777391127521790644287473930655150295822143485925501181730776850292540596320294125329367659488938750357104532763057019394360318503548050107710407927228127101573050293673030862614337766059974024027052638320734080822189568723160193154356411330530898324455360624704228727548974340177039396596966358747419485736420957540079535817953863383287641851914261428136051006840170678266545527816776614275583609297566568840589076928768089223682123293497193174364675344449890424377652507417027120547557436747063785540366949232228642870934808053352804768650857141295369720688384133985192660108631308916724623753993635525179794703746740327927282279801684941073240118098712589314667663460975432442513865738371131613830827999109488278518132608580644553979475421013189469168506140676195134518531929132467492924876278102026515852475792795571059424724121986676984760038258727717615774048148562372739061849505315641774090907490642638829253422448875600673414339188856804316414509921193667155986511229745071921898379134646303452824035328978740130078721713092382658097704323210912128123277839821393773102816440044099766063325599309581702479414091108620323196029139821118989097048651075127238798301747540096926615025093764391944191116365860503339670447273045906379835876431134880805768493337585829319826806712805537175481863432887806072287127928804972662361184494397297322747500450668313497757265639227253328546572391148669875806401486647531329357616593499704551613746695510573241257003396211157787173576932793283185217473032480851141327678627635266124913546491194459508629113437021304798661854376521348220112135047130074202676770743160926271612631334355153803204827521945474944418422010981371360507461388991739762301536131023509972677210287996769750542802873776987562911453401130893033751485762677885756205423623985464929577952305199195671507999315723570220411065392247848386274201427558203134062480627376672161354839769439571903484868014747263612858129812572285257966424682910900383710285710032807422314961482823853393892300348079323820111775539669911756207453077669330384935440887081869489171717875533896276544739418958524796704560068648531099421099438479189477593831254086888103464239167998337673578305293740570609694198235582349856709682939158071180676964035815466214881182806548195795683678259798020371567577838887032851855182275939265749496809555314843288340218076424196318301550526529485338782640580425424090379883393537260026204444714013209523322340611222867595559778034876351741502138341273548090489201697464736810408880829882704289594908347067254788503029697796581378836022241311462849741107404261735288652060216435326111661042155499965844874537913878843020934104612026401543766207841103620485304784509925472937372008739562195477870249232790223678949609685244119242483335811157635421431954026414659250735532710015552501671590815660281300973038664462414729708198428733976228966376561984502397386267806052696829963104452635984105666730475310451645965928522562105870732300803506300237797289811284336147078578408255697069581221594045988288949314539200784521483924743317597496541401948601059336640175091191963156545056078656542513327944989964395887970837735508545846056242912512870507984205193917322829391031781741606885243924077729593033008031715190137921941716836275137826865208787250087988964796510073006024868672679936529829472724785584620458062383457941391523008469982913573103621348022286931303117345065647813354486628052453336503139942307892837066184568389454240407363828503364991232216218780341532698604578526812095332259901460131402431344335939702239164435569305090299370325238203454824379712558491487005038153132283745192350498937852329222334275930741378036895787627405298442446403904812107329048916007775280750204920992698709979404555467222234412360785589048510846221039706964212914784506389143445392613098371391361609505526068805446809659426865603739483542841502695858700271929953504816168846523196921831759612849703265305343268812045385343745341879893501652608643458169736876037142254253807455601939773115135530645878310702340618069777420680657058902841734420374607139118626533686252976562061252422874819012118054746885232599389020636526453640484638640942953204915236265325913708915729102532991919676640281168034432236314620838463596789047991679212809348331627875443423364765348306891224771370712719613376277104152332341116256674651102408085429562374616906880555222435951388202389831646686113196120997357531497612916917247720612913471086178417372637659763237022394072985068915287713733566478340741081048545745305324769540679982388688150077808355721164697163924529803445719569359551370633547439030537982152204914388304900590132300504175917831582434659632361583029766356934676276410224921536283012866354187930538841992841384136541461434191475285091585148100306926270397324723190782301568454601988300789203458903571441887553679038282101758067871743030074985000437957084712032115464483901850755465590862601764903214289009656897983192056162621849410988794352851658120835064524317053091465315106192462308619303500997285915063188048089849837506990721088222011777729508476855683372885839490701890002641837964953013202363087757087578581462120068226590500277119869317806021321785165948971535099855755853084754633517028861773117623941069331550733798738941436293335984411469249186990760593807507536182566973166728392447278712956968738571374022132078420432274800415229457253034870611718855442010785040197674276475688459327217145092157037200322048786011469254361978941275454147591431300576045899230261410938861962508676761129893094734478415634556572719959537668449329900473931918912405878502843502542535378100903120979335864386980589599984569837615633449580131968706228686448591851306920367222303494361932972854041773430460991945987665986804358021455674905057571635908004013276892118101861279037255843623876594921997821337158392147207154431526989999291835254134882450900048426932266277527348664367943786305521820089069285339650123558420170519845757755952772180941990293152366510728493524498160302412540791605267495545253567183802158263110640723674335452866735070771305208858616961371006443009863542745860204694769823680527892886173691477360097099351688529201468349075888519849021321103630102328843177238615050801010429405341992551643441271786027437927022927505682481839694742175059046099840918251085027326556406770427221042126217295985280380218551647021906348984172787097936806864999993499319551132752653778538168188805299631635533754032998214462453516302828157335430891369005374122369778830437575074708674469983107704709154769695090966728952425783756943987078865569641399939842658289850537414495864120642242565777093266424300631483523860659575611209881205613365982926924680588230880946638195411331378694379623433352031805584538134093670240221721112113079315009910825388989403222276606184136486415464490036970869262084125792366176155566292584982707958376717968105357660325247549598154696984711453223474830787190427739643410716332489554600956443216812942942900259924700439168546421656934551972740979574766340217265908790242213170862520410663231997214136360399774300765803043141353550556785032275018992241197510680742350648349421223204744171593948329011591190264756512904201942410889817048499129150981427902825202136017626606814895389698348497101213450295146441463787015198014981926044555004277302699948159498974677498013221587824295217025829699504343318376018793349032503712951152834864957180962615860830128055662398454513121318623034970755393548096611828194616665900419578669858284467525565368503921999484504814858258589690358435861422431511674260095276366347528497837853623817134220928200993038893309247961690119349419539951286776185451871608444644328893130210801045028598352698874714157838166140476243506208562648270256211563713104620189868773672721134503683401789454339858088907499225255225032498845083593338025142796104224651822343611768987599057926810618045189372466380647627099350001722352860384210949057315398795919480816756769934590272501928744438703399736921183545860506880720637060582511002986162529537694584426964621045470634995251164012629328538275294916098740540474769390024473183753199332115585567806762086386420440910564038851281239439147478368942298766400756991688625190328933996187104779353285518282574217981558521520613081103225460921995250093583185950338169735431846387110893707805400422030019124136494235357749314119607442931860957849551554043940730169231723855833397753503888072390350542254667257400714667482561279027065657998686356118996542623228359679335636442733113680782849185899769870654250542773153098551374961528505063301721398795889746414923196360513248531836590470400857331447053397462686769537985405725437896596108717570520062417707049880004527900436573818734441870616676891587794840782021626232538059952232299965863207247661538098840338605518462068732854087137201473441494501830240476335577925548143093434655552955142000833069915027609598393002710666402342243798415087042969509093050968973564533453355077715573195923109791051979126833014867524470768236265409799833101878215410975748824373320101818557299017531036695813806933949278029101895454944959623624263452209939185323192191950916346972040805243837745745550347293581243416624072072957256648200481832780784236962365156360915745534189918025595485456077970385624159209550979333579068059245592239581512627522496918439029039976483159095638567831271248209623663237603896507925079400422259002768414213669196631247475572068137187371299324036779454625505077498524511302445265535683272227085713382534071091318017407102827620458548383489127441371821715911265244076450785309548955668874826723501797139472139291041518551002121960880748822806496767721639205624138492916634226689224546009908444375356873904803871465580629916024697825856699616738219168867606128169949933310013614004532364851361957153028931186370178643751811362913121060100768571101619161567814410000979860427340146252217996517454319302191473261889303521878895331999819635560189931751205665949009540506163731071014034258707557788980314112625660694987263635965098676233511918850883436007004934525728225008560810673352393517826384913536201321658881520882972832783066617704016496233795990733417962076954829608162745815955494791107355752588500204862618897667288721007108872299939822823649124994295655055956554924179043916281247525054599707071922883772782180604227012162679924877166371873601123013490296218242083795896547873776673918592014174772418898790165153975280136251599523837037952231621312685842786728097291639123246923292065608281419542270317222713881843510243079580341821573090324430663608098182407566372664435645621706962325279137045511036401413261321265047142478045115439162168125794938388789528004914484043874993121321559658165847612033437194448514655348129605961549126096530462420721121970523150520553811946953787437407996318470051159780252888834658865677355699954156489122207546269266905719917201745689906216820139440139467399757087350495595493312743818370813893445362908370266884547495233886068560259269560512814524969177701495954913599697878652698367360698480875642144059229512947376341056992103278224082675864425684228392653822382203673496240005633948018479777394642129250958335707571281037959576690679904299146110900775196640431182875679094192690187521865921894843997817487350041267842888613013591909894560149289866995100436697478191667275062666041027927278733374883434450152015119501284311545103602371885045923658555516859085435914428169617032715768755271357542108299258500898779400648184414996443172651957303715859282649187887007197683250168720796185678648461705604645883323878535700823147044451904523484952428577718404227005513399689142916754409806856193975478286142344147014221482417183985170403906836464117892610727551704381396933248597014404995305624352713723342202043439237560065271496446487538658579701298053835597324750971234507338001245317769699896971930278286150604845307321532172041187282556635309413072161702700496284635765992776538494502947755658719030819714043302049734207053150236601626892136211959763319821522737614491483397202197925149947300947862064353147692931291463069106459512964326100836620505055564066087770487305252422947491152867526444852177888366773012150621520086374693144141444297451223910422026493339940705689526374597635072907082545280518427200373379710382780901761117909700362250302783187602605948725945653461348543699020328203533658185030258559041760131788593704704382125804902852418338984966065098250048983288110265354782660791379653257823274753241010317527854714265036537016084386902524671310157579694619182349604089647709908764757249290184048166351635224882834078219357986014909442151942351280129247959259461149431622900479845933068844155604464070931662865272844811168370679399325895511457357476986302880979459934617163663160273734921810723794953644424763209158802456690542163034855282646034056556790644922964844556098172268728251205977135443701411174252224192140594177180138776410508674399056377685574689056335674890947918846465846755685396915869855778096082543106225426361727190126705535620141359952426599814932813531606875404912978920983154554180441819672142147694354892684085766419055929554362141119729145628865194828488892842176102332203681347637309332875726283028518997024683389725774558855312774023097089856443326655228488347665292364222164328209766772354828103752293382009968911020691957922044838281325593337396471267966932363578601265018526156549938095268432099901302516082560630686935473773671243803335594663076797003416544373180315062369903722862614467820698990147389102634079082029177562867442459420368922649329131139093481161986990731594440888909972095759180286269702127500821008616195472518848171637821167464662201095708417883644444917249913075025016468012035011271548773868541669427928391304257480041873521378582066143657496247706552604967239772955323428914098401000893396447553366266804174929708625066130714804977332443337737033780800376471288227578627718480896420158920432308536270829164269271834481970480817039948595643458608912148471987800488077575407707981617086256389193679453541582333592396986799969773369719971870271454544009961853789541072804714172303000396982669925588145922575000590912043135139840064573001426346468170279518888012520820287213448214442948364907923101050142636590160795991729794365126857792696982801435215505596366575122120238318782098604223625315412197230148814672489912263187039746443700824135743275525532334748068504421584687793002197523137096889422801284709691037427004403717850809568941417568986549281037316182093440599550454660013769702507033294759662247354438361186563573770106974858056539662438620652446035570993836959873810718294209333077434474220023928642237839999820644435544532089067350475887886880260651348960037804627384737938527828283259726919613931816249677504420423233853650834151064041479285459200001205093862585296242795599055849460320499015071174170911693434064185531756862110864466102027032458396102811941327883881283767343381320384704095969177994240198587628959802522066117340679587689880314933604013006456013241426680053542044217590903650336062705643051989042098127960525626775844095851200808788029044454180908265940091058922397638778240329044924987163386607025919097630629655471307462410161815621071681671133678420540814389595901699620267149010629625970168945164380413205228032984108265579372084143887240403159525060114254363405524586334601516685837720961628805724260825230776652608501049359303628225447173243604142055443925667662988784722416714967055346529578558158069604401308246439675357472418274259612848181438104217517826451443728298984802993509966096756566149433311651813426948501799480757195783570323514757127166090380468522303618731009105904481118698146974119123109861367057145502581492389106409600156486076048624526734309313940716704096684113231393539682335785481757306209761494760446211441225503767100766478382155968901783838757584418365876367763924788945518921944403746491124877492729238045331153582559362627551692152789012718158674347373784180267548213116630989003908383138063616962596144935139447051601090999407686764644408230296687519340935192208171201062933106052510065358377113208390822971578195643285227741353518432912734326790014385266403062693957978071548839600001490262129703430284396656403811054111711794243795289499485984357604259777446696535708578194494528763203614516084354041011712205178647782193110217322864730397750661637601367709263580512442127087299670492212117755104967214011318116312116094475338058599879474696493964782729042257265266341054205570495257533133199799286778659153657344158892073480900399592644423053998474246193029038655376556643200500114089515592415820770485786136910033268346099085367592614204794180507767685507167657814718740757691755203176621362109220087049776093071984991027306067677501435270495449811639286997558533868093642384671513937012756530224516294332098828469174504110108565378951789069455884893620634671772707950493093200613090852646858620118888187119922817060635171559007366315927037710371522151981477869785408876180859274527990302114137774948510269762434051387610665808702289658448638475379879251131924780298314213782459113546764316613730932224993772785768748770490763877399000363944024474824898002153574512808036283291594425689699971543496050100767791106675303238779790330035877923403768319596727262519921555174513071966128873436219923118247950139519025878855004522357275951850702107856659732186178450576299856740301995141743427041347528902412533858652018245383827900866885948199576011349292726091302647111255181136261635774171601171181099056227052374055638033045748753719046631768962451587121430178438876591026081746418270434855023248817013218159007577556096030640292521815249023838473411683752905660013889461613670042737960385093568366133028872773008517800960287994132160273478166533981687291774109362456732082538334427011581594471536020276778625942169727253221546174658961331515176699293669672272687245578654590023567240494260633657697707768468489727012625701815435887573526050781468641919566803238520913913629831365266443680513804996117544152711988918069316001405542554319791049048172914762427680849482840980954850410746067330839852361066915775144221951643554226017710649265694710335957802506419815249780188571252891158962045188892092935447373592287275550413976200672387931400810905415278316053581339573875040541957416942295548890220798565747570414466115432231173648977499083519343533660955230894475247213315101354534254879653545936841377892462130137952765155341624196774831986286130953371022070505123566794849363822076525811491930573107271412766402341140996493058993625056744770056538351971742210198951528381853449161664611384226297918945606458536531407150338346821607706579428420608661190624830821353006218591455062034304591045950463739254559158361316055500470034515490011366110693177305244830454398105431885275682631041269813216297617882292857139644902080989856001750825966262641086453315971119064021610998410767903737305398898483754168852392882257474659952512607487998359955172953430678579896738269412023269367045261425036229528581527559691593430515882419537375130831549923516053635025924813745911946946077497248833385350966419346777175325578637022971342797637603456467323950217798557008557686994880719109189192287475187758840625644813145385953770387208617923255242879252866127835672658266406809006084560541002160554840450833404506025707505285407569788541163222712855445734916382142554329172890512398503663147772803743485460760520397710623330663299209745016518933057665048084970280619723010995991852592912106559345686440788245900833515746982678044934241219671846375874545739337560897184585449645497348559244304874723441916298802098971374445078718198950117392523658386379243039351913698719779761861317617592977012093996582229032299416557919740527164064385814281987912939669950278322811686246911954756927768828696697055163872054226917867472589354937378407515193207883681319886996941478882384387589998786572447045006746024965282363069417450031828386728603010778036036470462503272872864335813786474349117913949012892333381729446634878433574608716534179641586214767017472577747745466463685991141010466665822534196411779054178179071212721053885622176797651602563482029923595773983516009896038568104601036465230189279962698556749578993706045180497757596537953009134459700880401846777334144606771081899774582109568091074838890861198070360727208265425098615254049651830102745260736731030225460714447802321798620677247481366359064730847260339356335746470102637315715045532883706647619535038558394269370466880060005229360326126841189895706223994121001608078517911423286125275586694395555354221832730146789382178525531153102099167093539594625697041566992557072676773704190341877152547791099727508379386452407723928811355726251039160610732603592528342753870609148544638255753783808295782902594875706141927476389376392776045961467226749754032356127616372773275642851856539658422401774092573057401742386945834574007904703610402083906017714898037142368610418652337513193250244260624861842121825770924310549435726689834271626025167970595370740144025549537078978438116712296124070776790666488388117995546448234538768447243417781027597165180475564085036224205839716945391238513842263996189321024710545063412004049702630144768320269607984918987211718805732881441274861269137716463613898754605767892844433014679239005128759375627757522533976637298651597033808800917640523339114246570143312137600269724333053379260586868133915588888797286096306430402194158024238969963813581448069167551390038693719833377133721454226234126902201597435279064739427923969960868109260525469249710306331726501722707037519140360839792346412877965037351174193168726869599702045105304806623236377232220837616787202201530593025351990979349437019031960610104900513324149183688190793929824873236506647818712838240004459463079551504652903484065042442500172031488737593550842412171347159883703550811396149000076541546383884156183348654640775391961776969584125892802217036131615827635322346019076630823185561533037258959556994482404373140480697634806680214877847386026713484847989608692651653131371920163261501406947173271078977837760349025348608305630021322043533758018644246517341059534547665821926782078363649201539073032510608635462752017561367276513233163921412752673459241508041035620925427410570936349192553569706264218859784537356213903296383960880683429729019944162725000458655178228666411491431347919442830299329341411791616690292777554725141066969386700516727263632589062443548635822838954249831842098460190015135362946940596900409872922785721772457935142595655490537751617171099947324899227027020387470528668028246857929233759103021899972950713923274031094753684232183372496314100722981649447551365517973488537444647231959474473019103413648531237483325281215541579515019891363240076521747756992206019661196386663933035916185878418856322979803065989912848986365425962741868173578655955475323336860568586721423304728266232301570689115649270546418622174424648691141480798848405751884343759722938189199229587642109362493849477653515543881764379618264770741602498544354765514933746313188798695745968466812241197588348285087228042816586226849886730665321807351076964456933894317129632335831537202250831690818500586834323958711527569451484300773189963930937825233307736674940992175990263183502518416506751083614450362023607094170022117736395205011871768147398508165560552589398798296831857322018420717095254038995910078564306140448101864684109228034483530693194296384350598556000631613973818482391507298279553094665731955071895879887094925914782057695570318894102811555783541777810520731785999062085994375913242565726953562819926186720242964545570378823361357483309820962814247378356541567732792089808158835140224289466856307317228549689102954353883019073632593891051925806149753647104034678638634075417124605500088969908505072238426961329718044685005252945365351864312452443004099957806093928738825958381072476609754537081342674625706533699474956650523899915366225524868270759965001321779534407898677827461026299867666139896281178133836944846237705959856476696482979224710198342920379604188061653615044420853996792109166151584516832886451708516347396635533009096436711823010123698187356651602922363921905906463781190443024878867625840021744772904193584601249112733975852891048408460822038172561165621045930206308930823952928943228793670917967483732168705893198209234601402448127230036938365465646311658499749298714153547283300933284543026967619181298803401421932887679382965617979275430517527170721367891357473906231740466534350897514425183829211977655891720998135083736419078962608281106337880839387679033411140244423127179445859388371673465193437117233363992552371159323162017538822016157120682238436124216506464452987964741071441150269499121778335064687611882005048299556972212644648877662130525176283431874602806451058097960248125610212460378190269453622767630936764545268799286626047064274861433435477658051511588480360138481775871344988581456096186352455672871206628401050278795526977846961559162397249307032468784827561325425534872982105032356442498541593098964433052691039565985667772490198175304556468378757642634310846048110207247135930437690674689031195890362029696264794459027277444702923548084512178259996652036394790082421078696892295997463532304730840633345121644466678416891017124451554865638533331413270466159820002267374241669257279211038508910496748425128622351194036909141411484999392803240328675101029068111835322301038782147585377331910080922899341734171850229376613147245837330061977993305019493379730260415812865386722955235091132682236323412786262181141496777706063844336432616913020299150547188663128727559000971250523806297971590192458385048738548377257156356832118648966624902666658127394362093064859029647221667671894208230098664919829155014595213715868968357046951295592081500541831778090450485093281927515908105060231397198981617901629009036882540980276049059857297944550740560321579836279190743087528565107703318015150681018597458546400196104647285238026066772089295177346597480714805515902375967176238155699312994350563427000047774971958371180276428175029025312812811106168717698745397331638155351456378729084896424932571559018116355119967514349135712234686013023691995529141726430169865831548400795714918255906913901400839275730349465073155924466075071520911395324974431959868481515223982151073764673913159356935875084804794798408201535055070167753191808402459005539117091478803073766343958272737882771428859129621237339120550461266659378637348576772052922819453400852403403001279511832049891388277258150831414197231495423799226086498854697659164387335275971977207502107575211750194315950407935324029246372876391033627862347569511244107102770151725077992968390109756064174592263442703907924207867956713714899617352089877969453626543835261866781408442394757257717107419295481891827765626486889999123093422542726055170858431710759734472303219870886027878122868884237929873335167134080815826643158794304323480576548737340211934413351334639378623440061844779412498197388031588841793147379551760307475362786877750945816343799533856291537298195389674181493932442179278869234360120336988647582820002730112687721569367790729440741672473221192026080399698747776237489540075448495089118715351593940729995269200604271410641872433162453357961820541494290036961267720746682822637989972193072035916488046271834919879147530284801070909685188509302433673308776886095931028593877585423477191569728994094013743940578922861575076639758571625334387396585223877161845881335929302503160480504527788315409452444614600769716054971846968837934354665324111349920435547524755905986028389411718002124078184511249403843474368096986339437794029947575924876558633541041159463126070286039785365868452493956391931257248506540404270296381704339346542308483330686291001119959285645754221083812760339861429222742326102458349826849670260269395990683695780124668770614646045559668502393544604426539525894552191933341510704864603906813537145303337518058050392665425035891772743068844966793081138032265920388001007265590779323084822123675164884665304635898684404988059488371313252655747569882553869962474499625755393513491238165341337098514609978574042939492878408114786175811709241999232987007589220523160339927410185377222489087462991837390575484018649865710417871174381235337204786939783981381215860311968773948894835472386176449889869041468475746627765696332937007032318858942051551076723473766968309762435416874663384497774338766516468875170988936593154267966470798386091397327171935682438842621108649188689466509559330148248215066246233453432526744807546811747521234082230879020836877368848396236826950828647009552377426451223585910849366933143829218048013313588981204708839346499354713272658831059833176166363156167408475988510607675609381348453418324872020848809683525540027350879116465035370261835269682705415857401381129413162371377896913398118663976145616806826623105012105746201262478181717673203354297682168045358472587145120380280867875280924395918471976905498973446113919256502587983650680845348440582503432939732820394532859110687095186247582636910881892080138024895589600897232374369805491260870076966237389159968274859766579472403445822425318895458604659182296096959145471144910756062174477791929073365642988875894744451164705780937000778384895283728796458969575367652557021894903188825644650810034042416881306919017158904106871470740047400270238535721195427299248472190894385804148602045397721773450911448364678485622700223572560449039172757684695009206432478636150374486454048495876824719921869080889727861986085865023204961124704615329099480665912930841192914216514663812454408425408958916317744050199770154446151013063712008460317340904433038191770366745999851904923965917404533640818391786134325380122639452206435623834025704984663370331088224456181668382838990426950452268162330891417873130273447228627845022803578765083418862960505627355530755820742673965549584428665573310850456565060051098913325571159049470368722536117209146283921436207485211537333774025871878556487408267006449237862814488767299839355843475987293533448016432351730480011877506537036217419318119178340321791087291796053801206811571261952180729150109271541629088351092193897315200059738038549032489008406424841221138049578706884065265121888189209729267877646666524838845488985244415072378067410304207858524801164848924878985182735139097844771339945749225502954327125848950951263207118898942780492854968114561717224234821567478991226330047734677171740590525184134023514613665285174471715857351767581667863385931041731965828259583815719456312580334526611313733878335922400061441934782853046203172570379595662164562637637761562830925996454429752342686569768718716184020666638349780655617343534228222523879427664825310634306892242900185733301332355848112276475939394580607270703891258433162516277230958822576897583686824855771863805259195316525920295039935854223621171512434459388011959022851485689457967638071803477361270647652641995259204020578822802222075686427129472203029335087107898446376817286934751343414073215077729801783289480601586956217335860746752753962292485853759401119870148282793407081225978134033097315518672068229373542813181178771330540198949062946121580192017627717581636280582696206809730860717420761099104745544036395016855643578808447544129396471687024881700067270993899987557483846752115902016185377773955101134310423975007645462179852615674161710824876938630482920356608315485301502751137368880276534753587541661939903363944496934146422386716178022368048005019094381937072765121436819577721483345563651235937694887138610744096944829385237664721793881076239083064133985872722089325010057580485764225251347819078617885088163096768428689408309009191428092428680700747071703506405946693228346880826199342750575700102432258949966153566594962216192734663015395207139638430219754310596998473570885199927269132595248078759750741527567357776216946370622450956581548985161442383823114825782441423918741946878844667262627900689655436515163689744291985936603190798978309852533393384506315960680322117084023468488113430965422548219168456849350920557580186246012120259040856162657724892325114128645068240524488447202827025735563378411117170853342683231091307087993451391557051708244000253134870962745800868335518583922720002955121062137708232172136478420391111317705092851374857065200209851496351798750177011601730591959486898533231095138099047245297915050492160783734093656664730785011946219331017094851982638553779788512806146103031567801437679963457549022501949501204544587699665984591930840802451890859277276876487907918573345855942478672071275945010834899564101892209789388084274602786368602069404989641766110355376879933925433271371328524674279677865650475932128403857087129428394803151209046494268224262365951188433287492597618971151888226542800852366343095829895111459817227988151815474754313073729290044765783758260112300851264320690283063592768363924345001687135452840531830373772227220421465880589992620507799789863136311474474734311398481674567577150181928697641121895561825978014216126081811425776265004222356295759043539607957515579716532276720790943007871109981573437285179281433120367038330467776480809845406362075408724337079906376256983463200988041499357542846602024017253219041017136562718716045940321421026468519661775770818782376149945811161360130516128666320464063969570467555753575457933212011925485332216724196958363589187857987695125137233913456193935312692409159084791987049077195899844572318792618809119114496588683314255040353434491755812388084808788635105850186510165512179025563404315191180976509959168030769578946827805762865534609608035453584426361398701311735874504008566416963770870703907209344824492679577900701068433672530462353369056161341799156460696485077849840598998952606528994393592531976716741723380990809158250248640228251548035301918686577549500961039054323875320041667700292821518535821109846978133112548526960172616775553104061435896717885663177990160306671529179614729184854755013926906126458484718537364629814986179940714479425025195747627245205068844279901567269707769111765246452856889146811638337473516652770333929994692391717147113974967212476836241195716095436861970360345404221587274393798170304532336434676175598710321325049865179556492114114360762234277915249050025898436881326037724039645514054291346960335354109435670870833267549541550677050340526060063265203197934864347930110199478269107171848435760724863384921698485564157896045063223247335873788352229054440948717199227703977857385065773609911252647896127389342352689523646931814626601918293561765582794496665482581947344442443247621499433301120301121855907809989975489939721968992629738926039674681420771584222351894437854563369012772123446545812501866086733601021913725988339040367383496190254138644175100946549075367354241617438394378795851154988131168022199610613134303328476444477241477361808856337713882524561918669178739850196151789582592792136494596692031365210476349740021227159391222930967580642189065820566404130749134062662152519293306257524979569001383510392637296899038049063843430071387854671040498663903198209108344935174539514949086865290290948517638319632848304412394700862000247441035672758259862994257442848997654122586045379848145308287356797177794880032328653916716231852427312357669215541867987719888263995284270109460175240784024407494437813647313819814775774747871653921207904373834508774182703136054083995417078322873089932578530782706535237648982446753109072722829997989091590122406031805813290188902964646636019894021831748206486664899617216573340763745511526468976791007860017134517932631887967729505365093503353092950989633455143865031295280568000355192856769952959233025082026978967133016298127941248675061169831960524696720330796511249365076354045025317507935191415156653355833725586294615330657895047460248509512873505139146313363183584820595509962396065202651137044943753191645890264605272842637052413595211131832318972236921191983365189418224131142379279691670011171602242741162133933639904468801716310756942065627532814495737145762777566760484676543635979334046470515904552649718738711457195845671369103182498463156970397219706199878363065112359895226580786831024417122076810593960332761775687716036969264600993289406976009136119582509136342550054744854094290199099772649453867598555702661869658589260092141271937153040631453544316392467110614664199261395798689310317313476497608402635120536446287288054775342316376095969851633955730759380702869929171835160102050456452977245582334906172228224392333799852763749710764818879370830195146813907532589370547221561854889404003576366818304045896672733424976996235856463050486219496814337393699092410265608044790565271045865815337012031005289100235678144540152298157569723724672034644579700641673829817228253408178180108045879457382126556994512735382425737172802157965496326643575797000732979744404735968041999675359248819612881856305645750400166316098179282486448802076532637554097746505775857090296160570815809771257595864878305848955452525116629202089571139007475974970458600813297508842527617467272075498431898391584120694839283518643875303455232950362436719434564977177402776891040151611374839127327716107020521204243832936745287073368013848474612148370837226051539557071387833922771879370381884223921000417058926716669172804579622034672773804650885817128606395421949092762442509058359214199681975554696738749500233369178104582003475554399118341394151841409557926026721915805600289766229534622051249671296955176306528524127781450309625645586911820579276384718251209610678557979552416045670267934000110216449861558727369193279239427331429966290859274280152632275928636129691215330465354663726951237746773641431491839787069547001407028941979806673535003998933833234781367219142334031027632593613767890634102735490803877881776594008211338696505379963993546079982191423212482400131475497002739731365631236070560691108574185484879089214260428430132284929505698184011729618161802911350257782219042166097100859877976125108845748108712593946694043045963951266561799332227953980054846808566994961609780558476740766333922131998267011563321821017462856354066910349210679068681337394642109635726649064195341993082853409305182474377397776117512637498463092899600154327610846914119344928192182331945116315661534279322991922354397806751894223430376856593783538128193274989219037009735077334157666976005072380232414816597772755311543742181639041617554729852035048995725858652054059525100232906195553778640331236342829984936590687697780078600465768795305124491492225635257158306140618577344683055533572865617307967400737916857760247240572839428848550707407747964953786833435038222548299585090017306747454985163931964846697079301165444307530343074756776689982705823453017190202269641761345463433299836843100795472747837503114657474493070687845744267069139727318495751830775932933804081434440850460742885305103676847044948711800372836677157774029137093483179106661283951071612533149906239912066364965699983543734065190810512836602874741570051915225473370883133519620137878966292372839607206391468433144714774232671141623826898055834048362241433683333709631350231023198177766831368626513896282305963982530674744761927936047781011666903804746295534318598363387543893796462733621177604014624481626093663332854889965972961997802196654252781194665700001833138657130455492135566956711282251369470401418239886692884836934227126818200402606335351124233208798649622702270547157443424597703388994017349233068104169488259149111634133258199441761399277198717532051032947663312218744776687139758158891327339907851125490021902792760694253208182400526529235883667555833534815723797605287313224134943024502953872121879854068880918166472569483967240966674001763572428670803580766545738014122893650325174839522622491644685234881069798066848669799582015323061569196409202479507834594081720975136288452204700647812327803804962301222833252927555971074961194549588114277708287171493357692423863556555547528930553054285209507832278648223410777000316756661834447402356054548272774082947017576648703609709908160736068580745838701086405080906049042343364870137746397381229532259060967842259364290838114574924321470523355822858534214229506913346240652035436706527093173618836159412349598841652151609920165903070562833553937673615235501399977190302657876170978841619650249490693326584877749859257466135401869539577035370152171931786032037166217945165329837102243338884078356100374000883057196236450869136322709097346515053871425544934618377973423251847241051077030607806125515603526003158491523971653375656367301338249067294923695338671058280326391221132629565408266455247574347657670002202241214175871140552919110336432228677180021821896371967548610773181830016761075292717650414675842305931926483786180478931471550079787704039438900618704043759741789522823752558747277902812060934273560139419574610009848622799975546999627330821972333613926575400293146261543608948582029605019332541121297982916528916898862951970878973592571686126526334896045466735849414030912169493691985585173161225848324413932055792817349898096884023301157679417420993497557076982051217632400696361278705178560949945898714856442414064563924131255493041557569895591048786298284107501059945325841858930241910184854234319667569822183646580061493548124339376522307857734333338101703879058988547026867327355685107822281908652158771989677808075093337562225706807076831079750498478323604275773507399654997402223754646919837767044913433498103183907485983711771124832830903643195816291141753102365435211932152890118968444624878583784994939660366249304056648674804704772960394004675900830927150294204140135847122128566328496335754244112390399962915669676355970641642567188824806671922434034588976297029678957669450941850799588318417737994573215799330981714243829670938465181419279343553982970570913622614770387401468705098239261132852492248430146968041930247450891334938987789409229521446342049699752698755684460658428226869984673934444335818250179355627550733026881514867798794074790305315654799901737417409009618952794859772496427375924319204911641906065112645196436174222058018255093214112156380454163605852239454886863400398671313624267634312271701384799998741603041386416676572886179089245634438342148640457551212527784867070742588767455493580387247468186075085954400841245530592838591027663688101019180834600640207080021425975196228971908265612943247724678737297298016646009881049053998898953369355828755239099812287749111658098262287390578556265802529735560440778078843485400037972021395295244499530379281795505429004795220305029405366897094164812300286613812853088276349745473394284343927375583137374625270329297322432086780493990558697218753692137332862210242553490171650139258608307389373074129891819166859134963090720303877166671646199281462209355794510094770370327824556608731155124471286513533801913333816029417056539677476607292453894871716762162252067374636150273675625580271878706112975760762610152140709530389931912773619290272187411315264767821821214744866554069689439810153422480914559344119193608585045781984001946291704329988817593376938205479307822136392475054176836163021390789722030382459376290019855266375291637658441170215829845777240205823804632990606163660165106475672539959768871083176770141751930131491134260645241546181712520269860532678181458591858431876934308426956058031055431565476548917437699934785702108486786533082179245365611292987531200767964596378254501116918770103904885019603254566626294843976233466297411257256666612134286416958470994899983827437768751574135593882594212136260474616654502099701865362859632517922677021629199976981341551343764823086627613642185624791843092181472357781058744147034328033580440355156001746011751048515247723426220469697368650071931562854101107046108973325404876065776477647764845243186164773360192051610972350700437551601856271319138659225427095694153325878880722400905614595339490067110935329082032578572926278434838979326251639529545697850869303407271047737958926203932442318902220050568987455510891468206785070215091050942503227920269885643183279788754890855586792939333010987067733419413930224830310643857860549993631606960224202289152127989777248225957953102934543054180590188727469831897337663767800409897867589855636266256630224779959110438331416831886291013191263043531614825872818469147654832764227161561860222991057083218855300261341653587494580271390461683341749656730338163439157682529887320327149678521982970211628311858035216682454651207821056077900354603294433818325094920694554673379421344436057321200149726938403770058073379212494430962398045760069109279317491506206138762933484755753732592386920726916652968352790410396135905595110956711711063884301850571306383608483691974131516820238486145257172013758392479817934565583770486996348433456519976305453783200161457787531147909247034316269452008722520004392617908680593334255967428330328287332064892852509064679169376166883532780700274464485390186372342480584772606702575231045595383917661230895280335697316049495195293113755096786349882033124410543047945895979999028107569935599652710915908953790787250681151982786900083400495797059723273954229580461431416787408218268066506923915716164298950229370049602001750464816828650128421696007911224060368263750731876271197361797192604869408556491962415175757784989232456087376100997116764743346146338545190896895463800265676217038264316567445391433007602423060861602672553137744793454285179751578265930968857127253462535656874051542175527339414307627349985156186479506701745977624559151675655159988754039462304397699117083292523972622253935216018624335956783878699286874209551831641441262629349509280658675196352573527802026480289626437612291636768248315980502765744345234879164862519345826499486304850069437598147144933295203525035031398248228947274413352051252588690214350556393191982545259906899759815518980915457254997546090285358810332212812495669444558897446633000728664007117538282082962543952040753323976955875267407426625950265532178296302032328646874960802116943528208127806513171534026621932935266324409494270971955767222498224566731669080038038992541706003132567667528343628178405638694773568825471885135189840551875582151682076087589873739786121385805850866823022138743628445688849041666481441254777643844744178492030872411919106481142843900979778384571744163959920100893490745224596838446855914439805864082340276900571941217389778862405270735081878855356440268368405655245288078521479436040598194337764457734084030764461640283703676641134048505874115350664885548471597338175434815921311294183633995913393909036627058590212271206736943990173152522476432102644673537725124772810641523310385337532293202683319116364873268464416314061064153273129271478058528847945243151664236225809686359613189566573597181351485253173463069439389602231608180198589164839776542578176835485022610054866766746069360353947233148351807500229969835292106933075565141738960464396667875360985225201946342099095827036819783015097689185684324685676894844603353003566959670205890156646603162625756484828849018249825500142220011662915376566015614379342042051141811629640203625808657829223203457183035009937508292177456354311665272894354505919726108968726525354586167381394181133804099783326814737264043100570023235977601779488491059816764639672485909774636402311306603627618643833617910720374380618588675452978004295691720610282290069813333605838560026001308286759704744730474325018151438035375805676266326655246882773055109130980179566183152485202884842079244122256017445105486611355889933188956170413329952196159686033985574114833115062735396159530642208571737490799063265880092379050156104131320668778049611382578678710908516563784448334490153408032101606176311689293854514834481706695504115049322658191899076456554413551152312222933604492144918682349394234798625680094864802066517787204163691375186146947768273059208922450375349870388484039135706136278543897507524795322215523507442457761541294752309961137327036478459963876694276869843430951384563535128164794716077229144581678981060387716506420317030569669262148456056303011870104199181928655175332722765993053718443660111977435944124234933744167557496536433619881568805302250863015413460398920343425220786977926556050597598868940755849412730521027056674526703710776004502100252965385590296785327969086330230456817081561141401175511492313006271699512261585100158030400978771339336386196864729611443772174560799782926476590126230782914671369884632888134474592014826543447619798722204710408757985907197100825244840803474793838199571074585177745324572664213818704028347143378049345758821221584473557187722028566535142971065019225959036988414618268095752688895472884381150117286893056922738319715017458072512542607402040405217343854519280453921516689805305948138060751355279053958779131746186490421152957158876563434007149532742637438993576475641695577149394710579670353054953587924786336701364792566580412968215028072103618018753137050395723880923812025881877570684840642372052880800472878640814078707215555900807912934505474468954607608523945612730934886862129759022009406556323779073824750575047936207498924811337383686113169227122935289627809551278878322570636028454452855570048149819319017824780791346812517492883883401495592030284427180947856961083031961677012565387277797890381577270857049543901579986514387551106476523653584789362387522332600409657330402035461643543004355926131444387192678249413094420497703817191000496506710964631806750023309071741788782516875323118670947290996939534587947583019919741629779777577266521393214738510186131258702124634129167829081977707043951633108101857634565585181183946224161209468758134770322534644819105246329185985257236421227376546901889961978854627387134295113688975150115851894400270136374505911405912694797071574294343330167140667976360516239282266799982369896808684656480739284579628896729438165919926086378580142127099186162640943697428178934390241758359653556367092807387334394598774768668822158959249482373752428263288138501818067636297263419187622008947513505304653214839728789441419253762915171525435644554410252973835667050510066433164879816852077626779256498883501895388524008151564036357652480473898722383384316205870615809738943653755036030121890939568616431213065220046897083095288668290101645551704072955767020555443358736832453161039103820486839975340774894735870701313045041134361094489451895380634142963222384600136337965371174452058118958358449360390597732366361062628432071770783505875311494221068913929798672882904283461100233541981580749892259316559806503761424700532525174206257736620498080657382973950226690505009940137560117875880276724392277265444351129125249258155687849537731202718556355587517379973592426609280186457397388817302774088418410358889321210382936982122314584764540016838834465671640510108737010315419723673342057872428658379040056818118860893803642794902549904558619564833233210456178108019612541839630130684552156762347402663267824978493509237564967128690685621214446806561722184071152963869995420139604461313681723877264299945058713444481260989941538660275695501345138963897999329762412784381275154190824558488560665543095039665170941015643614826265808617237513235000466654146893801817821868521142364831803079788962042560486909611462269912178017322636024374539043215596522001314370394693482122974740892448345164810469008534694269973011593174067945788031139214229758609212136518573145704976004876615981550021212826440497923105621208623712759230248640206708813538966940270350065839241966591728190774880703507572430821358437535800683767485479571529840086943939909368517743017426094382908195453481256377937257300924061940711687134202493955755747684987984963302172311217082872797283307467450902964931513899580036854837705130055986424405627101009485660405729839765911171299781532099233398412623362664772261377638869305217420881921394877270648800227253012164870116904261600018331734483663416002107118490715796990977768728477415869155413571464706013839204751465252774768690538216277426067815405906837044339425751212958410046410480498701724808072738618673961730628918312477417738903782153618528103197500346420936151974166324934132648290638560783223350503470112570376656849448362792614786858116588786768277196565955157245119189490983355698545121400994300155042762063795629058123724157069876156331349850218786775293935534834473950633900541753566842384325702318007523413870788316980842798040320445764467616248718852274709746029951805258083829330407340213939741135744548663809601107892491509296861680960188976138088361872069223180622670333995228786443191676612477471295567878197134861926399650556532464211760112054542238031136755934010534428453296148411448426689201150667392899643257752282310327096288740861186428338979553487917990058418968191672807583814147481077586941822108052995345501139019453835903189155956148273438065259335265996858920897639026521583802772569751558435434710929524133180022693323808243459351077623028718428315655174808398901339941461856407705975807089396270731213479921152297753426883752361273758455621211673670614556095070429447880936079491323075304491802613099565294190930275160027247654340435292294279088305408262019446714103743407582582907360835300251060359613376028267766421634134723006621041752335347959739973120060225738012843974343690535703367263939111791344917869687776760858068809916122801910316562032989284050214849832273598757729405879613590987971182002210510480252066551646308612337133980203028179042395203142489233318876250916401897952012523783603308642620530521783322377974459175085030559023716137003454847380719474094853490865808003627211010400301797912401348119933806792381423203263047401319160793837350054161577045331930121033790039975946918861155090808040799588922397252464902209782116498068701818935104937157320468261312316194966795123186738318870384991838979892606584866400222174156557943701570633702548894096190290211579851567818749144686745379290716638873023176913173594482075548847412567779648909633703884424292794117716019341877119361127038707660062699274220156635947911544487736295033647951658482933637748437456638982417606713734043750852364776994952366192649334387743139108237630775158052237452581323713909362311542288503697261189815848058352895330005541814088036030099317487544202751130989004165071431081264771386785066150803784484782302892660287157402250175912362156975158347018312223179912830669913884321823508083592323767027815278594538656025207322657554576111186890699876675980489208575877850669565282288993809197189972415612419862308043709512444808923016639023173795784547694186205710397651610268034455600983802390268534102813678130317373246617030847126489511194834483428169680942493387887252233539586830743167007492907737513478364746384416507508371373020548016415518713579148292354974775725927579799917121212122219645083814273699799429991990060319100264054884549381787694099338441397089614489468290834452077746664087131214828003760854440463110056727209774518401247782700285437167441563616008559814849864956300199305813148752385853534117426320800604500807703111507713533240086411198187933352696698681839565024095456767025126118689349393668013786833179174191370799370235709014911547035666887293705264822015510036529382020232793255943414236155607708851565395091716905184156111794915246812409188274478845836537091989933690804430748773886555762040409697450303445985093608482749955226940777578639495977681384469585338663092769706217660971581577233117559499162764676368855175052723706135980147070898148807406219818610032690859744392041561384244930674279918960583551833365695312896930970091267169645302199856657398098943169420587679151038461696491190793931374854462994235001285297057681823236006566878406266704750931090917337159101655737273947412721396049839636517948179592313322354905189832971684452808710357398791976123896039037378826548799873780180339659664993413973076294029353174726399718696110212008931484418712435073926635880154791154493719608985183742106964063392453594101548225352009231643252607752109409189396186954379537928304582931546509355400800126703315550188752583144907090023178788814768767118490057156168754628099297946141850638671526219107423327382041087293971316467813412478062387461818023100324395989064750881156153683899017400579250244032007083950159374475910212654663873698560518511596198725184704210994841987153126389998330517058937272457400465420808656661248555800672903478100523619522814273590180567342276340404745453264075818240402515180612800558169731897645858993390389432147604524311246474094926098147267393124730001766398973360605606132861045709525545331488173894839966750428169728801558152679262266191498151345587625978466412807545112343542861555104579040380001694479775219749616406940938433916523613825565341290751629099664373937866346986922232996889872634585855923176924438827037398357326088703630394061658430384861236781904743532188980277892055797042249466551259597857272045666486542716157377587626853208417067028605180848962865237982782256072528827294529920471698674297391887667493917250581965891571239563399812164697728244903732668244648273889292196613559289788523973578216542932516000426742320594728501388082806752025479629630649726279870374076314902088362435137262803213737106404785688592581188541627441119450461231643858449111402440458442191465645125526940148496310355283306793886092618575415661691144493103020946060524787354313054342898121768152698366709788375168836481935029537238826562676422701221158076473154020412661893414208487634779851736415523999262987957783093197661789856674675149341173352103057207105580612245481493023109355806257047826606856495777416895166996602040923283174504434542235813635552207238813820258184490911527574314764698885698031476344679742728291503700144167651934893080225084072164395205567450667376111604570167839470080501507751950055949484221189366363739645057382753358853815731921744586423790714259480999039655238815839068674483742082414450835129546772712825351177228709923836282329822122596388432375996951602567318283953979465145407107593997294315399217941004869385754845045741575509700010843583537677704293602493621777582025363007631159893130427965058611418323096820176049872739450211164177998868060246496061349187816249642957708249640973508524722381926985924641091006324079204390197858206437026019205964971660897094751769440101996190149559405025733591257179153565552614511902586640355670065224371955493611550881944658658931984828951821993430967515811163818091233189560491642802651638455000346212397052862608843776554781964831529036339121431859341620795558975238573046434705171664863956712682368241961162462729017412858184122315815822755899456246366583636108223963472748898643017216159990685734171333653612191681792305791028159667672945174954947831557307733336975404904354892757665562147445786808032664666127381226967845935036623809561296246636786937559126391302087776180992653635757880277715723693139016618169235940880368687244488196991844221577741764334277056846829747617766332440548981475392946332979924974339434142403424009347694167186201704642046546144159853507851477511874301439426098229636939687374629415539499796096796940991725807218998515410848283023701100759599643488020585553639859551411426012033009431280550875158337739676713282342071716532813694117738125715544065534589375739228498886635287272171975224978371221308074319016655840525404854551809460450216788179200950616530952985073740814074264147523630716165194706389504517211398962659915587506759768410496947201322846118648283766493870961545575590259463413166684321782324635656316212143620343510115297900165759889516489126635439485928408419908360095707540634735698624262160131105799019838802568306771395120580482023487985988558717185852228879819575232726552471715226800436500879187489257983563882118079424492485130526003006297432332583313101296810109363674969745264954538584263916528893208752593130175958640476264988645293457854485568441016795425946305640127427452940691274195955003181789131779624503021488638197901505216478766459067970382923986521461453832815752416359787502496718767917579159708044255115940455365392093275013990782658033040727510121393168966250448092247479689298091229617845681934083822773094816590294203472215609027715829260985987593525397038381722610146925654060199650647421077967562326856052790867173472666298798587928128268903216084858828724541536640253606960565440293616146292983089352644263554532156452413775133604532413059091285483596765004170995008933341812544228618374599035522027029266170322478789435848269428694541770743961229899732091181137390150513416963157491265881596777714007725367378754423610383480852314875142547619876413490450269314891319414371039941574753332617193725600364442521854360131657966689478055548834780546922723035074326419335921318431337172444192177190041213801889581449595055389549318600682700320545593282917613295068175977832557784701904245453362131794029960308075146679060906652943372102579958206123541789300262017129707079377962017427604627315297250766519154798056870744046967809279427128576968750376181866344914430417946408434980313610728794961204415262450724932036193208457473189947568335096696684549665238688340518312444347219136063876157386925310404452700983904382340453251977866993544997770531780958300977257813499725629065264321742662817904298581946559792151697423308822748652740652974056977829685375370523340537184262288223663581400852429361454761383391092361148826553473426732028433183957728925875537508666176676335541553510729548217929496127571042568965576261151013048208386573730548631893027487461392712264666073014571819817269584323413632529830938936731503026847426274740780791804811081629263344922028817591844555035509526750482596367006319162785284094155054602395516123092835339397560578013450952346081205037442545328013333145113308622808015532594693645910383386334330162681866480358935381915972388347117084301015140614444535401216375906194331625104824410845710141689652249406063411351943710928896963281888602569436244334802208022835982462688475812965608297919474035710702167576126760509063332542063668717854244293760569905154267977479013357678637902275262469285393039336345990380056530373469614276420311728620489892188721964329801350869987251218798037246662625452074942802799460028344048917568376817345895228927487914102239626613682830737422275570472700687742572091667479329739175694931727070489733628684989200372643728995401906475868797761733495595636134504225348844723592993338228706044854917992614370569219047991346161385132373118152724578684683966322090380018712144129054282556755621432936417611635841880699483903219321269559563843740966204864945401186300037137758693445477495563357544502954029068671430426461433933358105453215316302777235141453088480793415424048313879945385901253516320966424213942526708728804004206727330812023890379616705680649729886930694809443350926627970525947663315306259954807641046853239089707416503400141268711164001442281144040635691889742006709027074116202878949381146117417711401502897886024026939181619102470395641033210021929341254194249213431480437512728805639029182810606553314458083903282001293543333586985092908834825359264690611555703278330979477187768179918642844676437280407666112651451572219315630776804150681666364834186109997454048322478130629720426762035734695662100168786871723548858058717156056944013903275100179828104624102982185611606129474358644917994224704489291229419749256894587866002820249940741968041645589520787166716738548947772951512705633428276995363083363356432466415432875791347907602012580931411512168366323691306766638604418553129879275991857491627131693594779473005405364267645771509415365483927862732774274512274070902142481909737784800883565779747364327294459363069114994028114934178222334284966432117696507679522949259995668785942930201509342667769193045436207156716840303722264698577183899780646676629179067609118629598793435494763643132951571246739082645355755482286771848226675133546737943665985439400595359708188418073108322074523058192237386804026664769957558852504027190834107328145197913481151358875987663730473958123583120341807257098247055732196261659695517157554098799196959578363343641642700633800275808522229055958076408201881257718288766662090544923750455233900772763129771854415265634917297417199176575022811925447184581167743490786152444262945719473622774447438006947776454206303707742641160713855854018924484330156844511538585408957988589623037005843648288264031554192024932667577209766231934065803276883316234642853858784268949305759525415964467282473914267335515945402941182745636121346563378379227068823598038723053717561898504971149464512964023526676121325766827407560762942302163168250495494212879979488053535201038215897685600990592251470621552610539309045030565691000116177383473682116392192037433183676071884638800211956200743878487158775619291426231624981821390433180254051864219827805983225688783373735144919534555226371820078347657506821257577855165905179890804468950745183422871922189595673993264117983384390779086048005745717482182019992764813537795804715726018960507931499551440643194496857957979033314769879430909530200391416292675793346139570896428200664728400290957650503304927370690513450306397412537277719739100813112756673172005236197374348448454289068421837226438324571564557803500761078781240621084442238030077599050033822573429700281694404339116883505904541882039098384236830598731665908990225151837281581869138805729877254354000448309598038969855860434757643395631108789430483887403931896266805782657826271134441052190297162232189953662903037393821143722647437336189676088239910181111302999374617401497691687937100609799562204177487671917983857714034774631731250479727404138987948724790479409972386967317625502682203129867832370128844300992841140511044454625078549693532671077786061286202567706328721837405741487338370784632578194909210989158695912889004637583741459217814708405027336831162002606940452564541597706156835430189470431435200247059542560494826849391243699473773518633225906691578912042310004125011271626164699456664719809035679832105648380295161654764003577998516044655187987666623393096945694316884523840655702181784335786279797936053425010688316747299473252574703408945521305397485169032876033774373071021881124196339164917509385343442644718736053850976751525645469823336957281777768412323556073123946606321561977976842165556244637681627852015812872045276867029353016788459964914984759310106847297818453545336026112030299640766375656907737748443564100936226383151596148170414348975407910605567993780625808868701806344661788849094487045749025352257119661585456677167691213848033474410332773039097087874122791413699418967610277288469080780386862666894711583068008228831756495774779256739809822253903201433181365829846406791232383286306108484378876351689815357527052093669772249525424759910479091446800237264767346182167762217448251524249451603534832848248214354541168782007746402324272497882201992489428456814259460900512503040683830307904112158485752831538657021091464356549642328637828528226592058114907095723508045116632950323311590401550234889483822175889735477363948561333422793857476300715360643861909607263034574011043184991171760234054205381597323973528862416125554352937928827903095997918138606241558952145161659789968697585346692471578051061785072750270395575000773064600483185935623140549400015451553779189068196780713476150399041044827501502650856104735290122837975441166530857508626827593324756387028862051715569898138188176285808142654173491683423714667452091008539860584992293167118593344996302528552074046329740066704003549666376392969857286558961328095109211014212272584413501110425378817818687267771361882955119000500267076686686154606206478672860110500991404939299214695907659968666098707037105076961432069336445532085224427366657285183293445594159696793892337818844058910374473406897932293000336265789223518616461962039224100941140559060389245556148181436998065762442070926491070870368905455516537201028680758485384083150778380372681455413812508602968582201768383335743503986956150902418848492029496785586314992220765457441498776861191594337588588734746906809365328532701609769746519309639635890847457921497954484906015424379282299493582101475974950640372736421240303679428248455646972755039529323913762560048637510331829115681435104846380680317813087163702877058426538672899584263757376241090620016383371437513138080856755496788854829871946590241405455266959119852814195524236481761476539330993570145099417187678891461064727878077257261747136976947836277742359014061582390186064306925359698378272362256417887808502091698591709949847635947624617509084375530202379359599034337552832918742969734446795802875323351591627106853586914256615204879256808692126885226918098430847649403613899485785984428135965923706566587124444742411113970102962856416226068191547434654190564115340285285600449293548729479654341582292066525787790192925777532558278537786865653858464791633313952732516577964030478656109953226861211581155301731742882865846382052426792002430288893030813497108232735051442277247817839557690503400732212674985404210025460404289945453641940777546001845458863625819935858842390507004773851284688986043843160043328909524660969533631006924248613048021795116454290563244577358412517060812976130251460124996447292402276507906131703692057262280143124580651748010505836065744176192562455368989380225294481471970266829404439965488179412802084913352951587487558487486673863851261712072911877840681661971920652239928845113806018466014872062458454128956435263679239840779032291673664186540503434095583183863735172141685286087696741384980579674847934484083056528925839692554216750256594770846625994862164709997451994001377544546475053849870297004877587425902987437941846169645154267314989013340740938762333831172802773900387864159564317681584950916656750837522215211323778476588934879588991488887877058408485948299301745384575290041602529831567704918294636549251274129110261609693433707886559186754388254187368728698849910222769237986306493378203232948226974846099116793129771353888502263966782769654397923244583675873201171823979618241857065259802133401140810510129926421555491723569767928122114626809106672731545202784987879930121220828018071498149213596887315509878179839967556744516109806027423746845919020804084952410700018620832379957531276666284515312484821305549296562428080208121899233616275741496756411409806239529870312313263273300489023396839183078984984484994121992795325803847177028570332748048430200584608318777281664996898423344227601267332351287452652340417715221696299061417763995190694934449404652846562220383479630038139653399861200992891848746111983330395466063012575054201310111414995305052094470955664794664965002935125190118510831698711815679473519742197767614367272842489006661216471711522821958285879853486592342104160616935531058214154479899440219471831140160705659711715680883520510229063355827174219546967783761443719103101439670784203268435447391830935448570966180301024052592615527018284744613881631148508302062811436979354523546775121104148261431149487788897165837659367216678711203142391391594402814251890935689034702007013679760151386194796763107873724759901425356959391373325437967550695077901560991648231370173560021059785842871772035246427995079297738972351036895910222760854349668633655889392032751438794156628252440916739573815184824753187033672002436688818353578234117756785008575114136980154004898470613150196152930090401474503393467712333606824171610787413858932824064671721591850815883579173679488343728154542857263043304195149434378973507736636874070263243459350596069566470838199790976916890430116058981561945727761822038403242281846387298338955850184536190644056005319076495866252678062705783459254899819434022261616247036523348655241510755657125825970808381143112239923835354957604142416006133631806035131307791844450320370214472359821825288819642396745841455427559406639381612653610125207987440203619150626220482319588512935706044993936564110281043177838008807674723207029861467560882674422351323760983735728605502502762516495610479873683764537352999356980583652470296499448857114486331605471416896317190167887964159254651180612444295466938646693284325347726224468327202212937859985946235146429268869308895125223784341068320595901884881433160439742813403699491592003661359913716775333008618691374660866939479778075625729077461763482536335593987489144119283431938263589614249026617062579465635968931009739774219307266202960912689379406437064735825147957393781603233081292124617817387445818548924204264853051133362919474045808236976178224904473399477963014515025771325098039749684935423204311157494783361757147548892443571208773369011497231396406534433587082320754599401977402471849670204903654613415745521875370449556068068147878344167965987706514863766184408667662688658522476234592955247011906769063949123067078996401175484917306829821741217086930630807500206293869638767857974881399758201435656050014955189461649730821114314626552971821070277686055517540136678526874556497335427510155715659686363695023495863011703460261368182375736782835386668444792745480348553113769104841945434775641513855265831737003801788277454176746457925102932189322272966567128856733270368039000520423887380732910307094419909662016532462267276435780251833458912429012504576926802535276797364258775130119308264303105175927835688741274272945550506916318017452838027165856173443559280962058538289934625992115232605067935887545530873472834550583832806293147115833076666690004981069983391396351615252183911648263113527699640043205732881651218514350577803261126534910821906404912509954228045386071552743007911654867143272339153506427058580351027236849140189320549752388828384813147543885679770565554891779962813600343411723282290374259521112474799444859399904214854857580756581143888274542089780277025131601423442495399573188781209881361390868803593822287191999657632905053622807352244897514361972252320760661436183042579718019474628281556608486967709165248548924529636152449407752988113656983985274948869831585888071687003133604682941292025297251650350747672633290675292959002387106343450425144641138105923281728142330488239323549076819271550540704815879073606240036271507165611410249926037035031844616393296862710513044955195025134282001794929763325834477544187156946814026160954684208217154120221890448570898240677616391403283736956676474381199961762283376554117922482223918441261353839759169310385005398025707519410483688052243297171338414137398072538240124356684915129842831885187994753591319951773458673402474739020697244884347898088957145506773611651100865947019961394859885990221432152364771294429464293861590319950876234212485649675124340661683991657688448477787127527099778390092594683316629347991021681196797467483954824218241870918972414799440809679333255736704894756620795361789214403341621374752923043158570190622393724743395552485841688050614950213506392619076932696376565212073783097131698602040386450348958840043299354016598371752527529273837571563670362143602308979128285127651720833486703500131382129491496009822618213773275571422578040195235270876885949285161108762453699632096680477767537763375059523895039185255539715710955918949769114914422535444209524002185408372510851036394658410663723343904515840720211153781527524324508509969816752248266847379117430047781899465698459132368416617505181660746450627663403857095442404391607368039018729583896815035430689446925515001585001537484656381457035138231441362386364147842936567510494224340521254725356588235094787292841164753122526014670686227502401101450490735477092671296673306756183298682072171705770914958135255893074076636570883724632806229163790198351630160849218433294821373093321491961615776002825783061032775508199961142836113573777921197592901357632702729110491929049132820326808130920513213978751038891588231286417606108672655539342255408747936386990598349560522228877304312163938470677287874094719443591020980816442692428260911199463780934046244701347839279807141339745729037117347738838008710250092070487940856033251911192286712875052401639032264340153723487314655298259840599058562621336800403647206259232732027600974109823475714429213107883525627101373076161931168320084288750808582974483729702914364519106528323595491812242779755586980972690876146776298319403128788077169269887626763570671283062223406853778305300261074178625738117487253047034283298002794223250340846807026295519271071905539019712272153053940562907157267199929821031633180205144562990959444671067993587164082219153186334420435162462868094275816149299214555639183536983713585143330133504453842112284659157445746776601095722809629700990782993388103309446554870306745240363287580800666294329119150363094050344692216838546430198878445015063858483651184524833718731992992372095647105710246211697223025616142965451168245415601828189061081275062758220421724403196066568247319618252911593843616041222783303114254875276810742570478001559443064132949432091700749917004662340827311543247760608664145564567690087866197370611210689015760074792060866927041197898012683759059768934021251062629584351020440730683240012717203184915359195203359713125452391208413619327913108157122818620233699580064797479792490209586989498002968008265247655749973717657778974886934378174601147945890392552003967293712511823244229835806961230759408463848146141444411568048696703475980684809077285959701438111962462642169723901865208614987747970535915253630578679438098468902743853407812238227321123169355040007583163300191392957322372014032552762621932569146404596167135911982039929017564672353649945300309706682269219484412012135277032501626417877561201229334445916527847574444509176329741628001975883809566028569864890988819637464153491039032561413362441494623471339227448533297658722356391974970751927765115723938010947390151282057231493202854582875278786833156935521546764395023634608322675453960626315089180839096029566864973547393390665949415797365471482058012307775553411642820027697423781155867671434335030809766874084334961627984779632743017935327760323130641910263708826008531277652794621652080155431575118123972963533905256458176181661698035249885868479331890541462860731842981711549055262649032047114280372676705153305938553062188330621375277782495054480092210733003705892058260923877488690230572159586184433621376136365054468604032624219424217945336140109518776646948587836004368039201562940557998556557551426878719092466483105108727310838114068346682890223087164570185290782041071857226459601886944603600263563164840393339866770730451912146750951629010499207692616013295034615760990532893007442782953489189397236382891559237995848987374505082667993655773507393464728335031248517777577209988146181856051934807215011159001221685898851023520995286937152423784269030804394838182804204470419258893579662455360032291898950706223711812993771830239802175076888895460534259436485396945631743990834526996693273871836703149223072014620670193308012077432934028053495650426802569266602040672994890084382700086834874200028374041439169273764726222141681649172830399397995957261464485640003629536956339948619426127718381272763809037994996493791560524014387271287852570998615453107870645022214408114900313625724916014394306435672700467702459252093123194073598620428358998166002520823603002383967969036055668290770229842623598839114443168938839856979858134775676321658431601115808187740508699864530350526792427333612661287185518223520778659197531049839784044555412601051779741850325147929892309974969292689877365909844910448339743079268171010213670409704589030164418046530797222191091840996291934226003907568428389342781738023892457903955417210868857486252830428291600173348305267833753936371815939155082551249047658884524203276611636938503147625973363745887718354169809554390421414515600686112682347400795438035349169645180412190538159058107999166640176472352278905719051842781786272229946427540286207554661198690346311470575646425237540372335497648053466292228535946776344183094753673173483974845390878918020459294787311690076874038884010117546024296038892375634395978472962844547744291315875372578206101973875475854425746110054042835976533732050885757904700821830394141678924166191558453745102981330260165295369295411682445302724090948180891204360512212884897754245123234914641642512715033987458940999844303516195516205732104232450037149517372298400276461109985271177199881983609856921316063526308254628283228250200972828201454343627143675484848695293391882250470304319974749721327201403967339332894510070140626736350667590903603935491690091768801885209030737683055114256708476889523311505830097926781763354265661406072265892380513182194576592063747172947981644106867273382937062170883510945649551988370568737284911519818117246332348336336439908093773698356552042851700306979729873846593838482986795153733719194380134991922450624141245789014334339360155628970923228182449296708553209103487150104077476154371691839626229673230976008385082518715694496781199229322781071740921226526025792428481925324280269692240849110559040917582302784109258013328535869445546683600298376603325808180645935769004618756091037970583048527906080081501923743639162177569807825467283917078182034434049791021778273343408218074836173660594776235855358915937467286038359917175574937057232837846767946931840272709056181294113227722747305026346990676420710271153978462345164239585553252644913004384396166566902669208215670586177677783334392473739015172594449090164813990182439325368363255527279952715830503484646973639579074175713220971176248326244182085674785214518864937863870827852880119998670765283532635598336906274641490036152842554379453909079158928626900429559548210515826718912839371245013083495994830198195661371607959917729146281806329442039144488176214242615208006896422618215695433340445330378587850032830577141035273103534614799337923862273417103775642136514875644676606067624633581541068197169946047388436935364805455496086913093928809392649938534459450890195239965228809223751615229988430576001693457491429323071020417033798463579123995627049105179072793309017539343646017893713530044516916249489868826293749891977979280166521992895268533917870917962124161671420918869311445570270790175320174696666866214605339497451215545650293594805193312772366859822285247032834956061307081492622751757076706839133762067214835247546519921618504024742717126753285718394806578623425166360473141271004137280420884845618581247752163087438827017971950167539970525944117443103297345800660686221141921701440286092922951952389295555201514795660762840854281231640173480490842126286202824276843789219164084297007812791693918428852644436492572408866241106444487052878867552906983951428013109050552725735539263544467369060687574385364019818647164615889284453586471677830504029358183917517503230193268945385362235418920249104042667141965250888505446341542411253379619020968317708795850359104403354985371864787729839059696337658805541803475000925985666613121901047540323845390720640343854916129643018150667060276139381749385227089347140728865144818606642587998485526682975427262836964424988975448156336359147516469172977864812535218819915764642112495490892218045183369512857275461497996152668163029742423146722209738979150351104266452012239638447571180118236274372532527310014138240865205672965276338449072945713977115449863323390381452248448358459381085219132075781925519201235976501230816911885907844285261423245205235822559688091998948138510506683951878680098478329561010912463859170766267421423653608463948480335762117722721406271525295581749407240085420129049380619038580919028457151042330253873570162073690388025654527253661553696717784326163396783133624654750896747553528110028557756700201991611297243217656495100035917673084479605455161388634414054459516752109349174423445296979409451492870868293077317889817557124110218012994906338436408081349246075127841804183230511928725894957595858427384794790731161214458361686747876206041890088795693386838619089587228598281522724483068463201991675728433453225572027411409451663120535967820812917177062485956987653317248358301773178057053392956176338872223543987443204136354989070847733272397187892395966966756872468919994335308599791185783453553710466452374274500087999915853536777294792675677577503462826052243231838288854451753158919329269983574515640449361122209839404661072935210312676671176872307789144340438453514841941042613288099862652096480509105816357002493025316933039357375973099869274473529970590014126214702671522440020707763896901103865324591295389626372228240542228687236727012411059520320551950526775057636318233224798736039678432590074855002884503385207408278454504424035766030769926749415268668913682894847127337114378352824712055877179928533248126007937146500958378330218704422290597841560685249360695436451075785474819437328162374901127063110400786944436329334446378327095068040822198339856159968954678293198306941422638076082378977156122181217191258675960916032818696334333259815376403561252606709233105306817269874060979347401071275665269639855316967503110438364193852209413567300025496299935879962635047650082689655761686566324213459725872481806503364952218559073281358034396641246401257064060995798691294421749411269315954903634796945478273421682885972852409683284447209935531145943419697334140722626656907723123639050210862274271080313110888652955386717067330264607645508501723856935604376199588371124982089481232174222051089180348098098659923703814102403465274087693148102565649103291688816825584877845530463828376849722898701691592547716790636191076990182871741845846263953277906276670342246438900386903207117847061689416514635899839367752709850660529153357314770388103195929492038944823111246164481437917192315356172500190059345993822210245569571349631459596297396870667696316196421397090785463209617925808599742980514327144339624659143394298028057398508374903088498590848242891518883496332728019624902115345255256199972214708833529185859212306006390715778538277271238842074258081743557747956460369011777784085519832764422316840154680391272873964430072006868957834412132498207305998275775216745243650382591144396915347293123838994677673540037923733252170646112866944889844092150165093136348243319700378876559514525329156982689837475986608739603654551431354956375722402408747324289746166381445028860252596125888664444945591807793771621867887597762248028603483045402259418543909080093267558815095127091870123047385948674078291205902884745098589474000376863631012674160781155620551494863177518501062615155843727226975635694742292429972946277632210273616876014837042548614850507114085543532732885548509400060386666532164950429256718022023986898425004651079909667330304842735582785729951876922854152571682598334980455576602844139675299157379187003210023919447656893872040723469870683240847495747296704003902648592973278629779116894326724895759207819593498918596482772754464604948166171766849297675115775343730919176588273966617496912149754669716812225644704227613189039402150561805357935674319419797169935258140849732739346115154575610924317396143581909661601613455896157725460043197662190348686445537368435813572906033947438251033076520747934893047228305618664669047692501344580979863332737541065906768747473583671879173340514122695191111602885819622186841119198403452903702492529541819799393129537996416985088888613547250332762062939215601266395074246657439378482320216827842035281222352183030191591115797132299628878982679950966133625971907160770639586618112699597023643304889734054604790845136123765153154019950598043609646999530761740467519181500417291381097042428461007690452212915000590809087359924072816347251858455319786074886097453124797641442082905968271405237754477132596286801462424117604745601583912498320375798058124293530468602679523831623533517240596519162651053241121979689455173286430115344683277834914169629327237393344570912970781994289066729623104857995082004381398990100208807886601302229883102658099804471347803268435320953821764983970457438910571528580333357819369889414962551666531297260142344743577797521158639967405387493198406709473883659743086936939347362694070053221439066288250448248931540797925728919618017572856554330809104854222950100384610704987262109541460579469523954606611599173852438972952514258323858294303602185077823966062902122551444060074555731424944111924655560973425658640082760786846119263955413791898865439404910274922886512701343376452315401100607509221400436507644319284118334715555570442307502819677591457367582439176507477416479385157451631915195720695951962140509120367631532792410642822681386283735561638287393161165959231965163918961008279235348020606219353553924992390768732948983564300490466835621901104269657005970980102845218545908563801152997559794275595668433226756994749865809107529974293734948950220052214985268487237349661118447688938536595592496506922461445251163867976924925179828946152735182649426980677051648958595923740709614035847112696354676919199158005801458665982652161070882484126340483804865861910013374847121030726428189187224231937789256702494902922121227214925376124827283184332239973787468753954562117983499154557102601543511379205136322086282508616212531179632459526505193007188027174497483006636596727140807779634410583482295743622364754491383308279318977125100032583811173231597564151753466233725272698511529856852686158321242240997508165713616825309917256750612007454419148418646897712667839637660955290034610220959274498960088024110907200872897138787125587638447168818822847925992333859418085671713705886585830844802820976312277046619007377386043262475311987186639531951603065313712394321006844213478618800850463300663785752546907212222034181451855394816554008610883477713627714544754754194017667655266192570019193182116850163195759631411782695298659051974841153983858015862854112107536324023051896918599365983588610373073433802975086663275579348208448947724263301434504604527562804679673804020676672226635420109154375982876467110395557842479352990950896743582695167292345513873950494649370236662038205341061917996704197194746688142242440779608058181039363755787717581764135429743219402209496870509737980851928837532166586488234228646216915614095939278375501815916241565605211511918578186698868669881484796872491614350680876569283687655448642955264495301255368085105314459976847169247486114019651828987468137650454295013127866939746904060736672732485244839616184493224590333209783035592542682770964071589699560200104679601598544510863331084038590848169715990940586031886753881894465910694262309961107164766232024219473784866207420070711251638459663042441198375204768763680975023005069252801120781227261569340440421698294658693818043909650634822271168856204414776755426881135051569856284949701367316143832530618186521660962465832687280703905015413510343868981173726070342263340687258741692788429342477672888109139984165872767188788629142295365214990213397778490649456719174186461050179139631595499191697209279826705058868815668062285690092074888650695278816899725535296182181560200078863320686820161440875552241521436124878507838800183166271867348611973857939989133002299225387695255237794063401139261530490073895251688740578667345202253375610020975044525217668427269872827208247855235082055314866260872995098273900902090538878494213827655007680943464456803319388607074552240144542155327190755792100400952460836741533703516772605376697093991039836912612384201188315785971886633296572957707194792733057681270792134970762325375621056215297599049385355239635070403162282032738492847838436777728271782923956538320616867260000796450354570841620438658275362221351839589968134523361637470829836827461215238203282738019007839584497936294613825567359179081851283742041034311920958449646933769214790766305982553855151757950922185595250709072316720467030776581661260013741589787099775992572771150255301339998077533736880882978496383954389809801684745410136472124260668208023032121514379402031608784914402201562731091081151994095706875207923956504584857518615326922686658398669635081562711180069246494431655022501417470638868085157233138175958454350214316649873608858991810258388986718032621970941058585181034399845880997494491206473516302512999334117286090684898908229138942221187719913645588827533841651271000144172766015004903562601636655331802377179374960498273190815217284248048931467933018414490131470062614144607991107748342365494543890768655172068782810870922446524947179546050474504531651161641483911745084262167768304475912987977383267654749781345421952724313343672223653383452566966643314237987041376553288854366305120512443189826783379546818154511494204946220969201542747598655751710222000059800730920123769487236093772233742342354519265852432270958659458408434490663477456942830295412380424543420385235449079308213536623724502336061469244256079342688667427983727709476189343412196506466370204354180229994678917728540982250539951493845113216704896896148465173621255520640288719709343268531209902897066382714913423380934545508415214987949866842461309847194493305769096137508139944662963161733743936070469779307256235979355811693612516759448627149303588970660208766993352421117009072958036129414475304448982201235290132575390392702147096807822502754355791833469841760326437345893551434996517487994096242326480454126394331730595356109644922240393821334146580164368907955116737547648018820253737373325450369815143837696644400144095309597208464364567807460841311845475615215440468573220865091034008763562219725715273899815750001852162919617720373944981529431355515679328473182567262462888962256592656889692988372868673843948502154454727457175460449948075995254168618885646565748590333940884992639683200668166431859670768153234493742634118890728668328950503350188870481294815206212558538057006043309709103547767579777240673793630827921096302121339427495741866505645384449280360871055735683366650190068004054206293125205623821065732122293302057110725371548348671663416850433860414957666878662203541817652289890675257008620890408677090039050585407712761655543392479671801065016160987175689193781853103405656875540412566122423031834027478333255749832346059920618205767969196766117739731985629992960963147889715443215332689840610825790294746293481959535118666662787183376404894116622823560156050413457070043184705943537659148026318913529573746354411850826009507048208119415800496180798895070053583598441045202446776482413887222440913559856030044786408176762977169159935576687090005747198233599009957267080199792237462118808678962203455406446743088776524513772043346822591809573253413268820010639484355736267807205803828405149855339861067336104000443381688873890567388241535949330379250783821176415309149518454922685864199079732591858808458826585299160715105442496899676522928895239161355714675088347145380121040669293352044227139983276868901162058039799178208159791889763392121802079952336172049754697046832934182862069544449134039239742310523512566794510341498056025579274064701912233947522460332794167712654493921125813731088355911067679652218945456225594461957597583479316998906507709018274470915943337696003035089168707500707864807887791485584633683757331417614360207002712347951694587311171178717479765269535161950100149405210185098329765869372492223485653248661196400603917794872690830922064292729421283161563095828350154280935953539088167122945644313403894699960216986243156559768891672563610922872387716868357034740431277232376886596906499352849183450907840233396467780668475907259575192521162076441150952975511458620444132625030070366097616788149904604948934449605665756044703069306909648977702098294252795519749340968608877390937726547107931641110714486106582778254671742094799922089549600576713656305517298991965052341362952161476183549506881436648067577174584560373036511445172372909636294430600896411146771698834021056259370658460070428503778701651435995061182329259320495902250723156780500476738208226094071950435369982905064214302163499578051822922130731714596611913241173617420495273072422958518421400849258194362103188230238146374121485912084555851930435034028534838091923365099026969059932665662439369491488062860205850068766050779008712409329148881829845164984601587660255598038122376364978602997633651801977966005071170625509438724901437153705298931895643506504395354759582816089104622084174475333979914384717647667577639174473663843799450629411760094102351157332149202672017957989735631007486535325175746379945855872639208759594029104401484305837767450934613292119143127321486721100979057284444214292907974111369541671085890617729655694439515816808267192733208278373169071374819259459018556149087196150940542818607315325639694695593946278307356972412660263179694483488863256919957511101366275259205612138843278162037045250101130734507925394498407221746754549481463850605315630565669111143772987466527452514573731706385309831080747319381537340700136172537693613888698919059411432317697920796402029269333168991659391952380428707955140703107009902190503053355182541113875413792605817241596264960386894968583404956384501033813137378981038214405551248715041328840327586985336629408955974689577392491948531238722501284286842636920766265751625356269189237221992720476392862025622992375241225487947841507322647070547349850886921829110043347557266844917275900766379241151154802680138803123447013200264429026937397994340903687244813983074167030329534699067012155814822420763410725114284138751667132889700430702263671937717031452420351253431562857047230945908390008585538791852060122578338473798104761293654654622311198764589031039863896301942995028255933890602455091383088383278332774187660194237715017854471088036510543835084588402491201962890238589584803191282229193056271025333616906220251825789399723351018360287080324127372817039130090297883607411578249250842626979084527721388526827531390403342954844395549907292776513793775642788657710136188507754103359592722167143730910780610234623638600106196963954815274273693599054037303553105767695055481152245352795081338837158660506420766026375763849513979367979042474778524466060702735193080160105334840369637657610090100057396562944112517194353509575786205375503766746121211564048943763967206222342286071518309913432813368740659475740196901610602478117534682470251403030642905729814667455703456407895249692417089631332321410567516863231602058574106572999320375917840016176139413469389463559735408077161546014033748072091540757708154182310384458847389707354288421498330703610510237612187020142459251483553571890463171545620256366930782054025767364878425742365102272501117595768163482028824095273705902185761188264470753883288332165801731977861943252822910212324365915212130435245901137354734491486204647941225395652780730929393435076796108765440944252678448472403085498378504727101975895881448185187688819897911209829494271937028395880604653588713818916808034152575626945181558282849665348312342584814953659841748997455949327580094085921320977910980534762557245158505108349770376866209361109120754674854351871289110388923301294330835482786031438877221083491604705256615840863396342643415056997312046003968793537513429122556939774969809755452870155995014589660533048645446363062447303942875536501324895069893751818988179445406081404992992535696644353551876685494404416694305780346829614901455059105957988482667964711787337134810357498816653558139761204817428629435927692498700448715901730312359790309910290883405733269084391779991660935184354684270311574647775041022706304928144668940221757984785113938126878399823103470851104957901806719779691050789290310982966304362795089157769925891669904699700568954179402006351908300341268616524549804889146986930794905141863031811906796894607352386794361002981591309738409900125729354798763378475991085018528222537094354695108978000619205611882724562444089621427520775189314637630571664679752589369566894388972509460947456408984791252338554874184800418642711754909004734111502140784713115879226350950522932340216435074481470945031312343948534517828529632008790717981731193886688591703653457101537070774247460777217058950563724942091165494031199361760430899957836471472242742378979645951198612060495065472003226696227022024946046092001979666345765576663673257603689020851360158055008492967759437085604385277883745984331764499863380987698212363076670985059794343931159325507657016586234833669745283886690440894921144318171698356861024375748329307021188512257636885275496464230166604732864711435996142870190329171516042952148317765879727806947393290794649235255307957240901264016369658924430401585685301453363317612266481475694089216129523692913837906321798210483942812104478029594522615736933638115116583302892446864729151656718605553058589517563031049186469170139987077345478786402708727189625606265921947358000820473185440395353373577431001065690236736123934187253975747408769457962805967120067717248725369104705390432884140385375117637484191452204803240099083404839654498387378539667338407441966562195278260938118347956469007138250352922120379534924283273356146638616993331883496659280571117890561174278289570272159804265550779257723960751740821401060875571701385316057855579761426068636874535831792178192686340172295052034221560796415674755569042486699489082982153079202416848981608530054852993332539962522830087186562106804765612366305052365448020145163583221812888663315731393097198228584447376602895761945767620568446373029274608673205870377775130094999012094452716722298479573650490445860434908073415339130510067160655016466245183014455982722381569985939776526036242974560773670662326212247558272814158935093379546272453522040510330340133690743864608146696228835919326307046752353322744478286913213255461980033192896879417507181888873530619817821693864551795231800681603476226758993397034097880909064553836309642781554769284796351510889474814059826366608180597386080504039736283792259667859814226625087101376396271987934350429229007797481742247803676398931896764951303215097767995720806999142631420547556964454968638365658101420830482026893006592556902051273685583188056833966675524254755226130442453433881668841490331881165629049449011860867278992186228615905491611599540053278628990758433686936945323859156506863974431617512470510840000819217713716534778210196046788734606853193120724122888061459996887738809336053044459451614351186976043273216350297655688278950694478691929192033468061082660123409843393637895446704007265905450265049103688471116593659639217739236398316729376281307514626847276527157078523553131720135522561331123683902258572247833410501335629270169527854441690714133816858688609718174129828193796915103312138768757850711644448064629507877905109429967417711806614754151013540732946442235463927625189993445906755671764736287444933785298933050974677774906613314055578964153204232888492356582991210948845318940429641789075021960876415250214135400916820612389863228739524833868500742184937090628052506423364506812052599778375702024535516455122970438687286270386857800411160773055152368790207404922537527209281605734492434170212275745452322482790488171063375616436374224006516818936523257931331022127863349234547796886163285546931477331080024863953962996101501415491100119684947651350532898662008789778322830638733511845378116283396775365285209372090043481373419762574376844743660304296172750236115928609437549070245326317115467196529335144554985279351095840382682685802328855146368251967555257215578988113347136285171105446314870416618908164201178252720582612279727211248803274248114284398927855611934002609540100395590614770103097609950283911978075536473935571888760751044538608066397258353179315806971474335817061904044185497865641395909898090453983063283323297923527070301994037376349853056011573637180247053113385189678383389660640006958940935759884663169142990455560113559169519465146165646614556485219393176462928712645635148789545660647689172526823112566289318056011245939360322607219798460873424231950949154312359053762698430627604919938894822905313513357432127058401792567068667111930236590618275642475601491863180753457875988992320135487476542613170382744685519566498642378516416567780626617090143912025712238024278402873882081614933254867787278138022407480714901083059775984254176647626579197857883962301483720057551299752379251563641648761087721374932753239256576788536734229181035232625558211059210984481752513854140752164431884699231706440353801364214387614626207417714236420171572815839616831251726792735233080138913876850995339587417254078923591645988149764294522706020017978925843401549091115322974271011748179509399250918207958324556375414872852286373411071680016769235343805065304079185847986858930373127274537439399490102612294086554222934041294576355679671928444835138883899501700986317185419576071675053080715341822466189592314973202123718952494804189749470245821690925082094569402101935593667246651057249849807459802805546360534304880685460839379026619339175089966396292947560832144394223413609841585877849384064675219155765288769685947256872545455821345249330255883651582063463098677820252792030405549727554110564444936534460247982310592945993025706398288548807837184110507310672931135559240775237621968779056919977922253716897668408951081524996852319619109130481379190329073971877901802252012475863179040974044791973192656143342828376245765539308162826695828330684803176103556695934518964089419470923630270387094296384234140511840870411702335758513875967646139463276446666626031485337743406731809675386019679716556441316482173116129986218385906547041221670352766216160938206963026321700629748869059006320397404144577221249469579024873400281506563686065773013673761962238966257665276761136088856022776768026930476959692511028543904583698246585117127607744565211987882339691187931964018932438777119443323174053113961921820259187803296074924168271012398202913472737083216477601456000896791729680150427424861637156008586810813197799075877898325360374786288905360291778772945240616521345656918139631683085245760105074351386363513771459310808631354397784060281162245554679408897001806441571362569976147566818329075589833851375574843776662629448723844230642338336515576264968205024916036454153922702028911441460336079723438773013771619946859877553581056695441845427579297028498055771334531458342266427294757135051817767316919426988499943729600073868030269519746399376147150680575066144594613667430716361428489219505712378613571508548660003605532447031008162573532095128236526697884978338472614428336375031143205973833741702745777188195507961645308319998610037572668411336278182983484656153803199891083804511048269412506794659398244183480979441228703938325482818264684033693756909962082479585845114548940773362444721703096749831138775516443475914936593949845733240892906245382886373412584062508617683538259563882997859126560316381423154711004189772724232733521412977877056724672409350724824318559142681028002696463409316157919682701928508743121262050546503888930187337329672349989658482014940938004155943915796791702716019757132009615800566813036576741962217448542997473032569560558657597991772956773587188692551954625998200135263214106112994778875084221658238127644658335582097074740501608378245898281324029311018573091052753803531436740485742347592540082346019098863935795416447078308736834971559480877687007033412389232592564328164784032731340412627324119199480038816547021479329611688168638389249178664685904626148378046691898175092720630223211304102966115180261805148557488535130969229438609545825242158090293551475717383176757165908987923647683398546962072230702999260659405062215023889656043629769229238402250249777561933375802562582171149661540813063459055478681539382914835465177504516554623136657624867227130967995959832972239894557273032318314173048793364845233071039308359317044846571071602770919254175583810220023230976592322203852866805187630001164334008838566917455239819123072004839081516304364669379671877341352917160428047531769650055346725104898859893040348199231876098445502995301648019366616397554106190949155664206328739076750065667617063731071027910467653212667648351839635220113505420322990614730943320308730161152183766174293332934456152232458296169097258250779163822424250882570008544968467938291278319245635220867699736931494393582988290654181543783837246257858477019606114285707657963445856487022718428366848088671058921686135315410094881844112813245584772262315932373190626186373597130779152479003081781489432831634265191502857476067112771497262056712522583091650338858138537149183095922295568082784512337908850180184767779872755133283948910919731704253869052802171567073413152017542668579026744548424355032213318873748544084181007379753509996228925680917928824348469240489034889911757922071094052864633171279909094169214035241918125429821918454844131681304539019194205842618632288828745037473006411665934093419016189894724005423680820811724959084380256199061398920222616228292441994798855976622987800683685754230075015919205781974717159776573229172132010676598675490338036374576281548376005198482493009813075399763671187625357796213903441623258361467160056785488350769171681390471853255031693620919979124514579905942707538189197620286396494036259804069620344909109057438364820355175520373287370803196299176420118700761013052773190148295320856431750809777476357401278526655951852654936325109749482797069048894623580472040550137205495770765004389189883765351502640201940569812995865497990253273348365316352065391511666977275964794509828060393638181667089480733228207070536122874563217914857381097034230887600094010415579415153824592528102388824724624454368611733413562590198492491361213593279721261167194501501367281507032283766376909964725371841450742330019311617511595024237563459449318169290002764008333200049320302143008907453381379440423826529636195643294337013922981439455504718340748301155337624848237447037173194533580971605744513154369109568582966376893835330527895203853386199229584275846263013611093197332123401145125969464246361142594995851229558434221462925581368413336330537864392577878287957738266589439189148781593825377852480818178338812239246378312760885785270278035053171600956425194034733583810586952845517161911060880250532738962750272224249465757541326218524470835863317524545241182261677390053729517796321021009942716105526661330725883719619858671342436410103483048798509422361765156491116766709508254218615937137911061104558472851490641593822696976700706006735862298463106295624305736089851286350664200134683059697280538429847197395926380920467161875522550019119244832843249196785767666069578832378511505179274344539335750463757177404849807460553099216015472081770646949825882942030771995618390427076492477448745729187706865982210100042505498104983988899479342754587277783125359474565647850768782035914840676539077126776877501683922800483821684945412688583850820215831983432672262962268659597720899751073781078524361289967938525932263450199589641422420855265788614942010753099995644321319857399436907776359720819655072027104891501840712184010037795225079005925720435815451988521432991862617293232600408976966338921866584406475956102846764716090928987354830571309601723755152931261770814405896967412266864771221146735703483295554557986499999122725700146376689917222511158159410715958861879465798999043181125558200229371862702292656544649207285634983069784297766786734365920060527437213989521666241400508702976508545902207004277308421785898133301745985195896503023107286704147671888627273789260304785105908379423621078721843573720805915689801835538329871352457484620513621964932528294740725831772453221394083781339212094438076226572340515804964594090909085866071817249878987789385983150061062699385600452003932529150749388499757979490828316151923156537511543724971280007729476637207868178203687718592647800817405156685733777875121607602517118157532043561710907147641150725278075187907922657638154337914542031873858084212008669254665827745967480195211208428687888124873538869507182044912120279110872343294235319295538425855959604157603803721189853968462296329021680836175118747236787738685598157479206200540391277576141196669956872543648182671128242901417144610600164491211977976012669611493656193497532700488909171590908066398103873179888816693879822655614708503604593664768570421065477474821606232868862482147883623166795423456332615518974526968366797319307960737587049806875290864828460095008710706604529026818408531881819580689745872264353209938069915601904724369710236089236070240177590660674923927373256721766482778493501739492526870033832029560588032974762734933463072615607546196430068031131963110544391988453351591745175471874200085112108950968852578688974916124767415417476348184053882171850253430798903509195852507958979134268014369913965941165913602225666566990745900572377299122337470033005514974970071393068538246986418023957358311596104014097746418266733562816185029593362702463521415916269837391279548471309163944220780598855049558466253496380279755851259342153596891512934176393896018582765713899552736150750839036133415564339633042686932251116212796305853051270695560648852808881039290529968861033685170479959096797999941009512868938605039156504619951787629352699052435492001153963505923674476922918332396970577030024729726066203072939841940055867453868011459926800489667980582804595560658802633879915475872680861388404637680726554006408827119654248874918672722875314892779998644627155616191978601977557337305037274434027979580142003091281691393782924546237902872025561133896094919779855601069204919861590181388906856017498334781893594681379229963395993319198797064090059255880223905069875183260662892889845855270107883473082088578143895568783493486602064042415428615178884285128424433955290316284092987486863942013050975866704874008554719899943451306225073415669811442063802445038763752945613813659526967736602269610288758724301478729920725913963547696964307741203465681124343629556567182236430506709953585198983703710096393748754057691710377808554247166306741687155587246041301626008963787987199876261023293058955312025827361579967208188785350989752734859121447352437669034682497418797546081629203631633036539631990465139578455957259308582838361528468737251481932963185337359315489908013581554778508695053504426600924751085022130996036552810410253880054524254626434516532273790657076029449167347851483758276159191393602272703434992584769653201456123162759208869346540307841031321579180216914271975103002031267483987515547584807526439537102745908111983856514902552982897130356328349794441233826978065587307294663598326401102417901359773299840672889014064622456926659573673974517288197780496154504381350184685071263697037689239969373307189465187833428701875189435287728484046189139900741733242301653328770368264385347906714906373928367393283012444134268404476564320460391125451202930156002285509139557535422899624920212852160016365778815683636387858875452855045761543022455034485323134511405935527275008833273342146413751525760064130716308868611670341399991629708569171754746055005967033560863360139791524075473150487746706554041437152421928928842008599191989329703923250683892744539677338446676327567530846403736225493470199512312291466437813393315558467362784114670313935216471991664827835526788542367539291097669662882391559981813073969755640582517246033582254468384269012063842872149011812711054644806801168082089595876170477720220159164842304016824295662833303011735642376856258368546680442461794972159171414835394529793667298602482699237812226275855383631334552466030524098979806358835663951202709522462873921087070747377172525509010207953115243513171361855574050563448452974226119979011605260876500579062157360443236839755897531192902601376634853823949263852377295457199544645463591999328720300589453083422977339081352987630208168366155108079512419872906229832291400830904730891901104340705121941398025678005403482131163162991290378142988858507288023136211927919571932499489497032043023621935700915009316305199807357597445848540488126926041028840953141477649805546394275573311029376670109878332067798843241058607526657318131868944781163192319551233801576440992723239693901006620879819774645966091644573112073417674557541696187356968270029368446462934886019826177652001712808401640265114848369960555369540998411840663837833880412593834029616163838888036125005698710373886381066350599174936281040793167206368406479541565181340115576838760869655153163466760302611933565929793411983857488895165416813601102180549379541772589887200118646685424853617913808024970673461018433500985339036381530526159746703538900293699446632895148130371803796277388687813932817592378852499965308390874331377012476529720263071280867273331886099164763017525764580076614798831041602212364450781686509531164115897167970322027666638717494904039101742610882634143070219162038682952824195321620471359465664313065942326701829430000314972944179167559524476469230998960875524489098625580722777132715683024673951266656768215205066211353415183067485379041654990091084719606467744307204579811540953110401870142547602615720209023783639369909682186410480723730091620266263299023952307019392885415280803183156748382556417312206194624736838128400495754331514767196222254333737685695178578410515765949652893547738630201198533089801653206153739894731808781096365701191132842168151086111368061322028846214512092723085605949084648409456888468483023055076956584751415234250551095860344534734022052454140042414549035929545005070042763556592385916266268756673363262392455740435980492356879652002752203850805051091394293815430079711021497580827080403550609535788977924113839962181493625273621912322726062620870033437922489464639902677641485818600937590536565753965019203567999288317705591080784691935371541925169622039844394970652633058697365588682692258095952065956464721773586146835555122230175033033519039993281353360754009559321619799427735648127787177773405653036115380169918459378930456976020143387637364031673324333178713241392850120584558937879280563726220887517149059936331297264603381788539642859300583884367094504501378737987410749350861164034830927137189162550186606051902446138713530496300802415169514603152944113768959731294349706531645200556662824069779891898953090372306776708119754936563208695873860623290231938726776741057505697737618852414988303214364543260825582088303540338473448854475393222204521250106658683986689639635087187567388629409650593406247672833840895854027278612962060835968841010862591594407211854359388162864044699928480513235147707138607583924703557327895226229528777915843852885403981168126793648714705731819537213032822862777233477482174025422111687754247527959485819102516775690208851504151586464750550074680905371318232470495691587711388195631657875588632794470516143988046167503886412580658337166741208134637045038220656306306674602226795287576843590756448063377267088484605984640068766243485832738344225073144209951100171151285967883534577805441788020874728557945392580597109004803595700686389742408124149060420786481437906287084835172613994916302461715141758041575701576719630666232223872208754101415798122184104625096930697276795276441579686460793883625748936971164223021777970702506204100689039494172380030090262779564163549814793735948398721769711127230708161095949073231509391570133450515564643084028787231476992516030283171393378611875218902003524958559272406175592794162362491282865131441384853991792932653580351427005843832486198904565122636203158371609656684810506450538140422830914899581551985877625599291419716549902063268021122007141444309426866281675764549165006976415851893797727162142727451189590692776738307732946940401210990186392590881057269789692309219316854681397781268574452336945163479171210052587138717110537475843254495181770673783925852068373054939583792966419624854609351547807734883949922203952537547868729923126216203038589699983551897064602296778245392884344047996020437866942242030351799701392465964266197346654384862598480435615999340958466519620009850161002528088509633761409621137976999680309532867674503445213063923038658117926753140539450685178996838986478736869054526535063956515981966347003779596231232068193068936285438284436422593680337950752601256618119830148883978171287667847668530872173947328934068078940236179243235657867634678273661691521653423043730720198135365851294554286257255922070890313703631193180234094360224512505934393724400881978293357431339549716017828664363059433743831420425728658753559802161973627523280582131837091626185553704647691153021297879260657705501116731392527739571613312904567589241768729875408744777869385019262048381565443026319779478301014112106661930430293407666810100254498492596372187252079349382011479876891092956815787972414282848278920525536200861395955361753155320506190925402376305577454575087896806292152680234227619367277754507452675017564729508393107771055815500589764353494180604393406151371755109748355540703111093434326290956365101033474928222165970392909960062848532009980651292109696746193918368259148882711495836694714547496232614530152862324948564937407807161338652804289330540395167998872539624530345496133246769805518796250904896873801893965709393183642045047951824297404842901508981826911237601037555416488379585213013763098933183100567183301525453081070524233014829935255262518881721052595994529767141954403244891712080263711547808679809337331387700681665880196947478722061411311524253904613143353811027103479730206631954909064966795297210184026102210558543077390546262434475173653330425949110390971064627364404137230249005280214510816552780851937322905756405211058352092293094300228284478197969278336908886078624221056645390750219309029056605257728530982195936868136116390693926864624999726766811154592832020407570075035046848823700183202312127090162164808464737708141249429475950878534553407497311374813439659924107000704434979744097496717285141086486787485387860646677055230030137545888236217029606448610515978230954313758928616694359705831302310261867847591629646677857451043522492536801473372646324596126135265436900207350117534152650931037942012202239579082576990343243244453711934256445584002445910658658741768098369111732559896309780120093762460612513626013600490806237085547932015209506954991334637712625997260757236454588629535459434777186364768014848160974278006466110588297222043685771015495994939524869047641919619923614774087095156512803522273944966129159382705859682290303686483414630766197457452414055025171615323071422208270316082764627188158243059682428783839656699709404932260291564454629576661361062323654419272824118752924233420761161233980434327842234544274939674459967081256526589767834278837693946305725630591315093936159937119319835954129211863418146602208563294537565710878149807158439929781532925584830980213435942553373145340131374628195526027742504530914678064099134228928593922684514444054884845593152440476308769167476507760686050221941437537677860049953425146897345836213472674229436241157670602842370677631813410677455481944614413380682122394478110255703356556335824939958743163568566202965944701256799508137617687164089900552710024695407408989930500676406916972962379742969712423986761596958968968961066600128368294191394030477189316787867533827663458833129602452538246790141033086701938244724901592503345304097570416946225310997734635559685383606989075875876750543352376347146990621805891952950466669694676279997865493115420627762152848203519871621651147387648341980527563118514981168356223894180751128291298942884009594911062278586528188844125874975375970832172469668618566795261728984029838821783829917195092419943093773215253273627115790855310854617775032270550204073284086519441847312055390106653649728003731731926278450304361571267050318903015369326471602690408513922402017049783331379588104314228304234823217304600976647324528539790938611310053821475161895892305171562755576285529213030179311790826412812149873060957742559938321836113223034449447297894733222549629414529437674393053035444256376563521965512231781226258087266467793313957536401041384050613125388930803457677174122028852357758807941827881089732091215096511233652251888005697525785892972659392951754711643204477609329954890384611777060557459245180934930330923690771677361556434374599435800246905829991707458037323013575456659006597204784288307993705325614975371476987004436862696856337240714960981850844854880129385897591433918829398963837936098750670178316900834827146921826193470771380911065153725228663451214194565701463197280349519617643995617756329902842010338444884877611336011712499048779676608349431682674403087960482075874519198393596049732614492145795948939199195794683739567084358617608181463153930348130646165207998729607164236277101113439842784085731403749655320841250791349047654306454271809806251076886292025903438087845327547851737768497454900912551337842120142126643541703674407089394436157231109585978726917120254904549603307109815598738690719188625293660899546056723126166640238263829957678849754620906789558243429993682998268556457683646335465967599744932723392887009094499659017831918520868808806303406116203641385615087341866716746769295070741399225195185315738443404490216175074379082895427578801711498272616592801958757220542627429199274625293649295411906939161191487131107973686873387247343252340595291854391091789602895538760469138378324730301111324491498763706496577361798525472405037540018133949334609486804132715025213665736874967438415497559841603929636673959111200914711103913713677592265251758445361364034076132789364211617175835629861497297839354011114403182339109496610340141313701423989040961242068331973249313166872379349598074961541748417870525784182939321453762733349025091019723691842387065171856106212597258990415020333391668883838310018883780540251135850291022223227022325772193581287918278035204597204357585991976272009515643177752162643491562100432510786532866811046262381658373643582783739741295648036338080212518747571876244295779480232872477390286407116832369549210910056799488018109462292804068378611995468582627459814938461936133960967048182756239129182047754486547605866028152641981127879055532418418051757708657364474010474346145397839480481399921019220400096336025452919312821256568190025115507418557139879328905326476173029185229434492280317468413005553193524816323937683187911436131254911434040695051540407035483829795658892529893527521038772308121759665238809684825391168260204050150209994816736607638188705232740372407685009733993771481523614550249828437598027489438681488622496743450342482574639880645361429339077313513141652890284992932135791580187063353701878025555172261211671709820148789700817668050464828430291975137738349014138746517472348998551005090504270241800630679036736508053805444512498661153998300669383439812908397757100268090944981762767654775832448545354930696212986901327304144328591593459191325204357980681388617452942019632293499754894716024612541900487345927321823402512680788498038171787587277673749687362264442318130623093568359164209743542061481005161418851677260284986287263126406753471671883719152967844807945165134911538279822054225861965949934266846279442545039865036441860381916856195681252208100594955351601954209207430912401485092699114172084660662194490487268410809502131462216620346306573146658225323982419811400352429470516984427017824327282580052094339213107313843806625421188192171239553136863260115418821383777399931959459276980329128641692880470445029227536579640062774545032455807492811626062236397635798577734603749842862156116154836007626245298479842704199967955433045276023885869612339447225112075682588773430089320791374228772211037673010029720784324173695247673478644662379894840545653840332727249819172797582983500198813124384539003741870937562326953013300457676211281694802729568941678951335088460038245910530418112918353026605771908383276094651264169309608844311809693731445778838792985926226950554309753849037974267097271786541355547760243579964619441560915411213376329560627048659266280243310937380518259529105155863010406254993862627803783857920965127655035169917616903529560764496853070428516766613601749229370163671155627753303858931746141501048654014430657431004226642082387052766993009195394035488627481721272219400760975539597784977436366117755301595119866849527222379906712887877702892393283475932218877747322298262371074753067800006632933125571182409079482675626401965656044939808326892249170384719729450757220558449231167556772413893389410312529724932128614806793757793524698510835086519279508682099677402559227817873738942276403656632877475927401019964699093690201819846456691995313471939923136100376309618177962931466213308585626675862452349740509729082010581812835851842844871214091231303984169164743178728402136668977067651852990667783154978394584712599567352020114062229936962045697184593401337504448677327907788280405628458026098032578473189429182820190072403021579603614787204188544177385247862669593619562321439733218972261258108038179766990804435517982288609363386546785673720445723281548873384207539302995993380588043252756642583341498012867231084131499350383994243456474846041226504851216044714004742338030799444630437546309152914168068406932823611176304175177919707857086464809965790890930802657724367442175000865724235039843440706005628762713014250590197029782715958567218993842332824338336356899081814590783537593174481043360170194373148639828941810849332110387458316678312741145209326438518638860836436977084609078525357911648978203518600038591718069231721705468846012153998173346307092766460815977497253470327066273244804985525172721395353352225127423466898519838349370474825280493681495575634471305054542364079065896034299089836630911170471463475440849806448236022103858472622905093559090393247864577467508294627760128450921299752166501392186369676176110246149416409964779400114319124556685214636148619881869674415418308380365873720654537906951410793067990948454782295758898330269027533922242251672346947944920615238028094157841435111304662770014059131484478804154305250493795995989068610725483260967046454148439098384507867057503486982498933720990753027783621114432734491353843633622455534569618800628443794222413353067574448152297490987077647633967636660817090033281163409070060660819233968750470937448297997500144137266486643598750296414914800086499887391994590298804703527335261560647317940953090971311021660211265898296929352999404212839872500261831373482398550508162893629312708774629563849959271949149509438174395842115133318586781447245189493554656428975728071552506268493283646240182634857771219566395125026706481888950288429168676350370200908480037664455091267248008906690494861181605087095026236260552626033990143904100466757959551012057936349308534585404848841418532272523648216963625870220705334814761066662155383318518453972251236093411244425829402356901062370008790700254192532099489168733604452082667728961641539477334590791776724790402682667809808910789600632852554195451778770999545334892266935208953292107786796141499976722813920885665318424575247870481855846378793456511417599682276120942850064741523481395380236728407854138484146591216175385115827266766169436531709110991745609756781404216791259315320529229897261510316809375404551996792894309307423536627205587263346508856220726946808316348174079547215564840146949719698418984315213236712088897699622949352300873952175070093396987656235307398213894520373163237846709124276804999179406130024638321254811733689381769613453354147746657300610508067398039381996520467052480545140177859098795539831832708030305545752082876822062544668574035693202623597200585363778649346140362808645412403339038465709086222103590380783195555516123104763801792182584148481613705871421106660653884069273791722513452694115757789561050208745976581916117114999607411282340182752124799561362606824599585703786537260747611410610913648106730908549398892102126780762137660859985242783932477746562937685754567684186432461077810393091201763031985107888089322211838312719255122962906282779514522705205250334690247140266943891859904378031849893553374846816161605159069283366065777468487726314517670277272498791369812719129391023517536138437528336695341507700782681521311049940312399265079051611830918843818768429032650745597595789609446577531549167032622349996915874234168656097507056609846726765168634243614729655786858090262032526683691992184764091365065760568691257947796244482787802328318443493095367774839739867177184640435250877349164650973057413231250301217503225623442966972900116753958516520289221162725947797871164979226969547649276658456123792897171974562013079170185946981641827590354752172961825176901631720545351389573331735002938916655736182725426638980141716642324554160914702296522916278413299324850585716459697332327471145533267905475668796130637807468004813258957128679022066340923238914604315098397177834105475521632717639909176976901242421440619340651864403430469016222605334574948269705448024858953496492882376141047726050579826339350982779673470726201779578344622730232003106431377687339107786446150821001737491358432420417702175719441347698372494053869335181485883066571680303302896115293615266443954359328727867998206472713154303589370792212259101507458482141281289428071113111666308335515569913656711133521676706128639546414425606812256073719576760815805421110558407104647339924625489854873803077884564974779503330432265245708853942434730422794725494759803887796520064624823985347076230631893666964280277745110258424644710533664214304343705646134327314158238550599592005471770915209376713853812516788969671238439961842572621853110473965190331944496321813728209947259888514256021172512373441437900391727173198744489103904843412780957621893555816752872789234992780821918456900596281634021121473313489265221300725664033812931785006414508634589770669576255572532893182616171674279648583171273132073821381450460422624904299358955033628542348736048212551006819835107946743051543920816718688725886247024482518231807160527940625035555140393304876230062455856596314209379745414615509343493477701335177986927993964106542896434746099528107227162223126291641832263411240476127558471490231332628441649084202902957926621362666646550201616957479447482401617580723721110015374126405856683206112269981373810533926640463473248404375557049367166023543890792993878522466051284202972875613088270813469258193647037600015013776548073915282456624782593229772547893948191935898924736505871935850337153952392482158774417241862633241275263151242840611969761088661819497198736398215228399448546178666294851554265767198650096982857934144848318014636178359638244841730033703231847475488556671084108120527750492319134874908764092765489911665847627724396475449949503474490935838661484862855628222412271093811209835593354512307384136959683903625603495980884351416822168140061935806010799469815112995335787935381838731073839969589006410145596887481862312018238426775606925071492477729176267624125468519082948635212765707317334837994908737416083986011809577178728707496729783253367489375596239263553641483257376431880604577089236052720497872554317186205189732441940195832625077875132928814216491496588606810534691625149577850186252467068738730332528695187746468909278698463359554331686404466474355222609669977587845879730195558595624699554041992753262144175595205938054531994787996188334646181607924371463910381130991919432507104140868830332995427849882908446144997726028471035475947311947585291110045833275929112871118238530445248999870773401570102047636654763790300756530775268888201627690912723492106456193692769852546487128013122641305588223970783288383220204107817570562025943568224656451879644685237476846960316990163218640255875784858145380743266635970316956668153330424976831657019545747819564010714450291131989696947809883055037472828972085477253122798523419275635070127687302615465333671066836003837898107066102719461832968931440255988095991991284483328867328569313162065988707942306845598859785807213394672663514047476347544457277943185712452087643967919039414788898435760409121423654552280040153250446775421787623663973192355392813042760891152224249666691204710645593823833284674455606183197070673692593555915675658189948777424136595579229705187546235629006292472092818852762465934467509403522171664120557746700699509648675619891900101003042396420939831929795920069905107727568217262412931709558026707999279406174174835155876416735077437468935319485000340794440527887208358151718678467077017415852300693270010245635800173449254698364774997097653727110488280857924222553961140845114706112253051063358187709619950105477326601076692145498805599641027070178166072975995635599644211619412378377673485734067802145902464049548635213372417470200630578064345345653610843379326194653410352039356443566220907450154114214851036821797200047688939208670100731984971532129108565506136857682860025522523704053612157555675741820177365583499593996776587460628423200856880037385482087086928103674164657695870315982975353459586118983699871742566677632195634586994603229061244658785302050341222773658451817241473296806437705477733234647855385421349542225543669951704502272232746963778140360080580810788263166993304332013402894013196901975840508459204879445937052178002632715009274951359712277362350296833985315007978953810661021898254595013463389651758829172544756247324089379173139640575571520241871375805038170962710593490041170522452169257069906765524628955625910671761546190951609137360756605764467030395668037665936614390767885331623152909580784573621066276980894650590909713983538000183582804587113843980624715835542147192482963719863852245720093045365328306662881050255189971895808780532253350363110349627917559608577895593373673043087680166680685145732835986580795110322714072469886123238869584686661081189790268049187084916112901749077822887085661359304968907049217835389228188195274226165880997495815825441556707598409104781563936632895151646788268910317287904695302687526073826932877990217324898138266161407338196404828278336034839040150121167323623864348062810511174332371826996922857512412669468380582761445667142710641131633790914890010496183426335671686909351827655150911495525603448519504219470889428631200728999719244524793121640485579089403505380532236601030083772627785724922649437452858510348027866326766995266112125780969660535540187582923094795725536281995444527152959562869644334179220334605428770297771118054537295712472663810325558667026639378730574983476689972043734347265582810686680438878014706844142690546285927070280805018638761340217106686521159364570811947484435505278707482341768950005666739240822151871689528942751611121269695221074977283197472109849162542601489262956822559381484592000592715499415717496007831944970166526702438051765287043134407834297575423355396330873728911884197077394229975507070338376325207775872333686064206064540131662048582951399896844704997689974875815320262177503571861971517712405245499908937911040980493860945782830011329082566896289590363278929057775911705852080034015931066008295380904551620426499267774902424152783995205370859461438503503842608541365795932558495514689612564962715131639058958578120709155128588453458036807930080961389046897824117003919389595646629074214844582701729652926218555302735591071383278096791123681271029153200237253147621158918454701450612098877418025728275382033245872536974547326543253194301602104279291381470997576914108678300321529682367562479231889031754786657232254093802164055278387967542742148160629953833679434408703805544726904415181800603596582790303117701871868132299361051661945218040261918812939670951152844849634649850511851405861927724823715644286213050216191138005723934759063967271807741530902318634564407028723137243992842003129903473931877117241112913794209785172940280700524724529235252474778842258694852927021463818901815119648333632131739051207226620867074034528553525098595992873753899714553775514194399207404540043071508353940189366767054215280801368876734030323975281281114034450770911451164213565945320152882580480576573308121873768103387368540475025149179407058089996506773156638890696864258720727478310056746426735661119818309402376696662517205751480351332904923847847016212453168247762495809855076535923539267629980797296806553011960240242036241753373322664684696308458491557357692880613788986584518660011644600504853541786160652639432720380287214809574804434730030230675975020804049024551220307846853545613442679937584571185948691234447197340508414783627851294409257097655618186919328533560447526211439264875169094201093509779856134532939107257144054350861645083488057713366402446740362109644441899731914732195994402081456184600165062744747901496000379400749600623167655434000280044132699530030495623423575455473722918158319767524801783593429601435081778274889189832222647987798681407908281352060713881969146878056798909576406410021709557636702252848998216266577102241354644022968548121276061944375173171304456233302746816255406453219910385961262458510780207307234675830962375976153956277281217624894073825822796128832877028180244219880852569300834811607003164475629738856425678254612194410796450685146085523801684685089984761259834825783890690165828086507742015536061164632295684991113012862288319955505980730519984868007929628739819206595162055945508752595310734861107837674516201461088656755001761307566256446390141443052447983346965274482668899131631768525846676273670690429099747171710927313816284027294694897171730711088935724837272542843683949233007425167658883125553479247103566635771012659675829795380343926721530808623672401990101629278993339761103105529620740415735888206835666967841125256287996476233865113493576694997955891350647546770556101411539268731701569458475444065949098256135952526907184011852675814506798904704269302881149004402167005621606339527975354274109207199978087690011736087152965720566085269877797305498774053382237629986779223027884193558939836931285262048399581927698542550154785248498663692533490626610249705567669837686596044647086340584843691020161847369145329667402164220915991629998417167249247367885780469386025577720962240839317082576166921409710354987010347657401372685683630308368927904773205429222836939205373711081314653758158054949915125832300055647293844928149031279581366501998477055842231901155290907928583335533934734002239787880868468868139109339978671745342750601115901861028590783083462164184397730589698706496887802854886004493242547872745333955447409695816097154572906215482840145964708783102691740857098587071720827130112244652679399284348847125093395058659944819040436812461083580372891737708592237820375559267976704416243375818479241172439298379346572828265766615802770430205863447115503610506400371583521193629651323274975236383238401527807326437091650016256835930401093730598426900648486342246749280771933701259098743836609082907546263474357963615624199721566038284826873886171007497519516367234885694902760245961437334222330731037074592417438529309711906493311739965530763381480725158322064630393654750374272132809733899264677063617235460551787276942686473736923961184694277683579347210648371367106150441370757402147888519094620252943863773673337666658447076587367177401602895761781888839600093394303062203744909352905956345657481240063711305417857787815558989458605561413735390588565023657034736484102904964253663713256123004114853908854872614155691670863099778639071651124074034951015733178725793738646068814704613247460585036313002934855204635782620302418292883684465200652799715992605139037243163845647087182301763496269726108480246591840414287659658852141908086070788936910758443386551248197218598949019161287766192338423587209660503698883701587445296169532443344557686212965557156230652466828237963785392861285562270004662557120451318149139580407042456188308668879802795184769927152789395571179665919343251869027377476190313401583395395833342757168367829413541931681083729270005185309616736336953631136483256261457677372625552774864310213542454724521452041297679536759910408003245853899918877453528737452423566592374849818342802366632907215977113036882657378716620178490473335380628207912570958345591449922782838780298486427426047663411637837704312102085911061893810093866319362074006463220881816483105584267540821431392638621892838479048365806689140554879248410586238391809760920480240101635839833977041582765445926900136013020949975748040040333175246625986148833369691850695774803734554233726824391824098739225683769374587920420306847134482051882819419971104943095801677647528867372160070497608181573227037683342306151285290099920514185886000582320555396571838183048077467332084706822521632770777170290150618373407218757144103160703425295410414783941843008213240572223003655816112641299978195249435635170483782226976544373220426150383458907389696611085594508306113907043240790154495868446549773328340561039966151394188786142388715452213828224798339891801885631371972182544359111425760608007632912672656225795261789373399012777140460225185517411744018834993656598678430047752582069033406618728307760376734763005553121805817096789957104164760561663573486099068106611373555690642871603589084690649213130604827823056643155611021208967887599527271760928543420733256572150518164844594532776674730105059054443128718604462915432875555396020548747614458936914423892937435720417818479860165095895639627812226030832298863780288005389010421127747547478827943176336433009968171303090785208434981353473415633969356781756691068946874738365901757549017084975002493460789079506213171371732640300590491684471545452649599778359638562350738149424104562358341082759965595394247507972391326850388886772832574562580768044134655903410304823024001573480981233205040559279140897110934520647094122352519909930538502175046910858717121205931126834260741442996211118952381804048737451960016032925463969016334671768743535717215510748044650447805997069906250535806034423062236659882454762194924438109553745839463773069912566472383727422141677428107741962934363708713025953547471159734869256875212004461739250981147125262968643009209313467413592851548830476542125110518646414984696545023913673897653125544709438114321715605180583566455557530906239798100753553386937794504017519500195833657927683220697202092590316626661428996766425076724156132865195334614737996080239380399440609492541774243335794990384833744667482427434640265779103707838517559093446629701305494552634082276754399871053805457241978174771488479471384509700610263661730037542247994630060419831889123588366331899629627154051969421859555076788359459585651309757247529185096876978518335337037913035980428298032688458257860870553374006394237134440723033415393937852717051153608466739673111607164521472867170370576398659832976749093787935065610601356131394472269789144306060562484881073334381377465595296681689558158125861740843283147709417923382470139559724668905105653112975653073748838090967040487249425421154762303703924739465163315904964907635851403852611042123554548549694007411491433806825716248386280619969894704702650924465950175271159762233310742434998131683430557240584474217393319298220751111803223142003179538963120098331459466820320758931254911541161844299909026132592751262586388514178219137425421523208824279476110775299756659252973865874723948967856051222221048386578898363429906606667867789905734104272228026288041005971331276224446637288396839835506630325695128939366580732740513410510394669524849578640795581559303800826013065780122440519807993059329107940064202020159874573531846137403812898607197024975255307244870653621944380111948541635796693228539333336722979896213439319941558188971563996034973672601849864445581688720038750132255357859558715739905493125132874530143236125607182170214001028706323531198872849582701211612237671293734916439633235507316879553821764602744312595082229853588617299757618827523079942482164572846504885926508512001062679719331415929643998674120455624453133725003370150915482044905365947231832646727702193549504749718372430633909917215427721887118432315029085812476983258008686077616586695493466614902618234084944156696353719507607956096215221332780828629840053989584971612161516100965457730367259798821034082113430638226605395985298711587478654581214778759988932460783388673746784159860373836484255638891208660518206559317265456411322991206422255780271241381107417163835578824759119557825598823982970144779701616744275030488677352823932930126823875382013809464159064594634111886168172442834135758001111024598838079141798485330365342800998542951783724213039319169750733907064420394923716704989361189412283609953890803043230967130652316106217253791039624016529706911600638881175470358273320842962897346086276154937342261933866637985950222907343115449597412566487296732000326814205294626097601493223244959507737503339918231159968691061893998252364265932506387471317735146733396463048028553587352154033043617622678223474337974048959468534713622962213498787044298331889315211184597850937770566586937616401044117117838912174005354185742068846457085518961382708244510896934183304869922133350850242337631373851772969877650670973248630209598543669060005779045136267257457411990172317895345498034835173006850929817549100629213254714288250364615295094098690685343679156798473613778112084771236531708518073391066742030212864877609416351980847457473976798504035824017912058876584112312597299557701494272954251710597053944312496061940695920001598084117116917815581197720507244253605149393631406121675814111178233622931708891234184687033720380534962082073474557521902742302223835046414298482125422112602042373813984923673611253364204538431983307706652600331199040780423089890007406023594211230833379332187311054848920261874729765175373600543522957905412997613211209641710774124815666442090338652350146854586427705656179161330357420767278103007862008272663042796654018480210871262438272478294505910026000277848854694844067086151069875505379318823038834682590327206996685660546898790956772826648653878458346978675011964122231798339494240198287897557435835692566658150409817414324466917815712145735688104366772669103316496919481085514766495492785772469849489418211254404796672169444548933300871979226167281858531306143670631766100397550651367608937842073437670763206196523678807140909368291681825901786725699055572817668561341395664099953594381762870947215588369490644062939355550001302355723547005608602677350679340851658148176944616849040773905519486692280086985685788005297445755552949832904820359151597986474983614568298405724312192517760459876470289194570674753048791192849856672299799149664302677616296153294335474422610070625033759855220707455386116802369158173819256685133734251913064879451885927203591357526253512762798169261346408797066889283441435480459605529695893318502246700220407568916455375980919609004909964926081683532024737871046743263172845328983259184558346857242409941311828670240537200721745111141665718636537990693095123286369671595659361755650272034775829548714840175374579069959260818283169675579464591860970171906124562708125597543374616046934788238744220056357133285789683154980334289493116970827337181896369832929950480178955535646814405861536025690478381255510275929312392792497850559123801479255878167188504173375812265089634241390435560854674952959745060389513014974034021649902854524831164823220056650641419616985466462319354094697484690378891680743259895972115505199451291687152486200559507058951142057274018897440970872734871987153114884011355237811312647298952634317813930598592428283457859207460747240762977880587261749367385354055084761667371721041820223859104571713162577382961791159953007043837649884516527155784986909181608838803379621236963903915933154909877736754187598587176589023004819797419758239029571897243360122158786437399931174304953505362767116266740046753253682962009603057317946279942693446488174857294680177969960528117642679229718206523478722305366339440080248851752199525764845277616354142060045461022180064728436049816544824442077079115051418526529559567442598057134792308651653757794547702901874817194045888733552250235987509021417981222307534835286287159369365333984118141181151066803597115784196454472504113613140463288684105766295801935598464059803582586069396274986092842300704809662573949146651748894412831105463695827895946080873744121413717251866133329506541533865194050277571680399291609742879593338153630090781347735796610423505627503518967648516019402760820473388220602184044409672282744987004861125643790248223653561801445020440633031402530888341059485112368162586225561530893259670959158680895071836883380571726800165224004273465050952543829709580846944781813203072109014990468967983738294418712017588353105174464072615827814375192765635362478118011272448418087075035108856989217652395791812671130166116268873159488327774490030374009079339824431282602073981534719500402164279138375723978792037123345913899592940589016992820759910783221538910150067718742677494205806372896634777994541177915065308255852115176534762370399981657699805153230427774724621986749578158203580761015233752004928903156034299695655658982614551162739467974241843665929638601098551120830606895233534737581173899958296116479383891282518538916813898661058663333641034451424739550069131686681210502482934298972286781386381048342618707865862780260821469858987045455632334679934737006783131633940800202587177292423448475358031427948320884004873180974870908896620598732956062418444737157732825304011006007267472609584691998799805695629090836407209407224929730663904453503641285238336887736378610213696043749145796775417068063715995364510539649110431462026122522505435078178049561108276220064484899173430545895037417902461411967492127718288690051365457877978971903067204334596395476918134043052698388479100226573680890627247710868778723411792961470826385842180337116925501628771539878468983705155916848341645881023407947214712356776580573381606437385007894966738503005897411738843479731639018379107015162831336874430395868334680036498538860079084356087945097930942343552660664290298261839510185122120020239333547780302210178698576694523154139788920999609991358407736191099807567249101863852322858839045030699316374418209665549103706841780179216123774994217197879444776790250574839003838191268308380637774062698199561330130735284306436873820523328488309665228173068635307333865274839367386906632691193481982312129797160506537566645523254018520587618925075307588789532880859953673037007247664230294308370983360045150490741490065567766971520751880638033388440546633246891306836685732392401343239566684311425426719687113294465159130689477736377459832218810884119616754781540210776875712578249703959976325693757020435061765779042324726689874900896553687160550453986707619223127017002705856798630314369555108613088427960104543421142489208964759518440508281685801347317125139402374126768681183169512396170340476020001743227415648959115432957530319432059968473749751678723712153438090655693540024398453285506757581301447101390629196928788713187397732893192131902699279888477430951310412864343196856389812976482559577619686847128428795403418282068721990724000258742815197206958872102324776732006576261825929042905401483958208333192848370762555186488675805041786148451415945537885822895582007648107110783903725478387116343202993496574752790332551601834557960193980516663918166906297360652001010880165993732550280032127769608151060434507292148978703973346069035590683251148787486199592094302564709792283527634741643872218852352372902812992376189122329818836108341237637631485395529754702931308306151708177689090265229761809168742638636976568233451382345365189861711680585946515395591047128489941837980356648219526375571871719952554745273008701394067283029145975616332516104001415717144494458938269576658778123028272644061621224117867041007947070939420472613717780949319610786071333695792957706999190678795110620765363957807805864872794845290712726075582583690165313430622861885156607791591093288390568698602223602805237869761585539539599490659138751355283694051514945646195666463071492091873580371491728555137919473583001022605788096883726321057732024196053268418126769136870532088998428167075373254481462463820101095803732243056225995713501596043011943889161235029862981575898190976986195323997051747276336271876164378520555504522795203230947012579420586266282941759939782694317706679375037216622281333052197201506236210697847820049992766549815401652656616271533436682229049142440999328860143665375138093796797922063398711101812339942725470257539140149962341369761796172251535263011947698253695269964968258421777993269682494258533190373360577309851500430017494994143134048501247290985587688881344505383160650436356866317064960455116391529073618397264257318759009395978327544420997185840659027793855734054552639978341551120228259410485425803117319004410988243727026592245570040756540541988847446971822266448749839453238643443820852439422064268431075720900512872833718409396918773335086551206413866503166868137456328847775132243227893352179100417879550968585034693764334034103591305697481051871816112863896188787333159212025248361911047758127216213474547443243969817586020737026893773664223804231626768324663557981798513602688128261335944400420008364723983389492065563581127724221197281211550536553034717033500977277139252780669747321553277634701724431685095066710837838573050016376881636526141841890268922569115435176383074554537336043567102631776544314141198330206419261675776310866749539236503744791006634768333104539228761159513346725481968072934709474463703743714627490376710065895777091565204606696437548274294220664721535115126437699753936127671693841269369895430809425859864703753028357033935188679779696202582743395246342560876691835391208820453735901537231733677494374286728920381881403003033341228639739188115969728988691534724762747229079714378312302997390439364003351717796773966333745570809280344357946740973551810764284129072992587234067137734707296806768291824495945481094941470910703225034238836836735912362977721632594586295747079244375640705928016593689669174240284903376805054514039731057297300294471917348299377763444653822329335014312146771185849486626994035554857349142663782971285224360828186644893935608998183345572551815299245589726484012741970449240216542174268394553950617676105712685025545215995379920036721097125225504096192545483476132634184491614939476771947231637851885765972294940531656099161798566920298473132972547198850209866877513548263069613002383690650276049829637967168601656108378808512066839855317424469849608609094778374573473195397465205423660013083270351995861187745649033080532926156829296964089549935002083181226727395994900150047724452629934154687086270346941658763619077383746858435878056077822090679171755755127523697481915780638727426327182432837932992936388090106029265700695068851405336747123067810316498468424418877239192352435405298415375231265893759577343591733287985474252312155501344587367392618272063854991882424712191963389562855264942990533803605727078224677439533047868880018413404698293170960620457588410107245500989203512213415788125215453613241878823721635809387445518651432838771142473852622559369703353387978670073601555673322996649196587309576265714730462255165923384478913577150712997879846803329600536993251443276117930284763124890439659137445726425279180398023795566787556900165446714650510583656172622535369810831330890367958896101168064132710678312750003587875828577920627663917543173349100630967460484183087853046513590147994004367553524426000937637268090994914382049604518289829264265575096998493607858092649561889062288519552093653291390980715345938516639123485020832045813135727160634310208851468282018247810668357157773612010536859137076654992939968757158212220309652961226811537659547141337539002675243681686424429066035570143738569247424884902352137329056481736137664384576562255032989615212985911062697116978985597084204639426054591408906039232397526367164557419825543228062557015720873486804994170212869506511779209281967327738313849809281036057522253066559724041415474768203433791806132199183546274047315832751372740601997369209301256204201804028229608262445447277236021127171711929035323311377170402370625806806819699827803235595082079317781157439265882012119117769061966677573045608355659772365244504786998154718533992212698735488949556609929328514951953457390819530733353525168348820707673531634797843248511789289764362903957366453970911905840480808514502813317330021341599552328916293807595192519480073432594381537496094641394103418501579583948585472589334616439503685840777654721360189487257857956420386401482753603704883324425595532239293216970353379971967268660266390405508498522406591244560476650199203324786523056075526717268954758934804565288492894408158486738161518435741828479449882099660923402688334644428317863818075932299543853432241460471279525638271242573004712587329781916004695567621810539309639855025579513520951579495048468871166644864534141375918070171550387251699778511249171317904462338556815724112201434890050730675240858484051477346671938398851129927370766822465111577386639932297900599930816462238764897516751070976165873946679801945986445369571558433194514874529097638179429996169765635716224304413884542484318846272380978314272068522138876830043928902799899821991947263091216033620558294512050230731763044203293247176406991935548708722497540391526230215592008282798372451788587638257897761140385896752888949926953842676725306647806531652249929520491528927420201948728520881308380719939767496179346014496547708779822967529188960115500046981778663182240712719412815109383777266853821685646220297682881203130650241786329183812756036717177239406391750615034371251331700852410599564389632049713539704784838343621938261638069628076391207333582102172181762722325187474569143221687626948173733115076516999725914896953226667432999645021656334200187456037634220576290744028072437195948161062752580422433296323096463398880184266757919174487286396283979902560799185124566871541710945304682644855861938080910662288600661432325283021420261036718196657708853049034742640990672656545165312790367444427714555109844633785084760259127649943339451795795578247269049148799419427697755644056853188973217331963946502080245082345541942754013351093010023084010058598392551476821647012935925584714659274106533046791860925164914104991786428698388330513200535678683682831808673270535757491299139518173001399633979992648424531245465492953415224722762956704377454758155017811484137362602251395274447056327661491405532239792437311858215463980094745350772057983932151755114905955774603974804136760339177179574030664533683840661266177734058895016145088794538868597453914067769253106614179043917356759268821050274431417057392546336189070289314078916315335525014421134091269346164653457817025797075544697846201853462748892514417841835136071266163673426911593885767773558279879446581417433174624974821333392541775747584372814767185017101910798974745165499883118431783946800159429919111089598334361863062323518013652149758837972219209522476866462507514936522520082429186381813834248773415669367685285950911601791525804783649197980870602328486576835739643782008036831029065643307269547870923836129604285790287965151975261822832197802438114928744581805162531575636175637378304943256568595975415987981243990690037699342035350176626867922712555774209159223081255996524604092509075532920702357680951005666146333560611127929089118410781747855705198070863953748940465849048354573372843070711530954424575515991868693543696026860107807166315604345223144500608256183201834453588427799820102816898393380428967347045489821851193905951300522181852282218348623292526214533908415844180163944803111293359399196003272476641706823770654827988637764263874146552875700104819874352410865703076447677774835657836769190885760367729848802973205290190275727320213463374306371140247649055391643774585669428338797323530059940433543850883223942561523676125419786021890149524023539515009423584327382267733145229351036128911767923427447216624951242724519759823083045172794341892642450017776025278514905585287219322119779541247002877076777507062758597708299120839961040014826919385558347124302049004794814697395534878802589091666554734257490938770268055851940737778851732064801286498389496465188977176327898209429667023072829988929090994997645605450405555960388554198102716741891568006600920470430451753176399979148874123719118616394409608205142939031505089201261917147660813094527167432668521038699538921635840183305725911583414563544079315407197431361657114223186962011879459261337328808243325826786874398021679111215616402184248419874641239039897554952463234134315104904646472678365096330931075706967093044297884182210604930184655811562254493046288941242932381410684845767971103671885948719507783058250792178282040817704671012069364021366439476827319960506829765688954817214392978469276504820436088327495247329742288000627406806232949039457205253380949051089522008432207755929864709773638064227788105406623121172746124715718961247860897870798792774261200960937197405304220496432952113164584340072270253306819698555917465751884945420683746795851656943356118655122486630637254752563135859814795901122023830572284293185952373684880140702675833661394083675803275790912223362550851824850263544259581746223843983120752648740685504222928749700453648462807434261083209979877831957001137308855448811298262466259463071294248725931982994624921679205057599656829031509537226527926404981123310833167452300164326474094290874904502314908056628832111597707049227176603623332986281846671266935080675828528111966790815499813854086827872584104960853052295292289818281815241544702748349486395442937503799700285758074146551275504232652186539409367234446113472358298988338206858701661680291996998374011310848011328829138069411016765403789967869960679213485406851380587125887156609707778767160408280320608803246005508087485563306767590325002611899067917641429509297888940262407016748777767655060157502566058712459128063995433861052313837052887471761811881378456914826634620372439683224366545428801895751813549696407636221825400924327159181837722863518160129412732242500037288708142196342711536704185315390772853177977260256472063299965021945635863517310483993055453916065380424279021198611775316200498775963785851980288302079876887401265604616722676133175126480747284814872267406348017499428557423197898597096450013361756232767675596080363553819839271403184375149733983013656536805976599289483413667086203335662342129446102571106060666224557964872801596350319892022213242766411989451447000908159637378896721846508162519186275095981688595474898607834132137794506122693393296115051326358029776381964115188426846535152468268228309085423837526433120798659236153106123860248529622632519497813451597354371560673168247212419020029534524420566878017020610565810400159214388744669813469256960644539031138803967296868089232884568223161357871920904904640265683958302604586507136859775263669397540026389728370850057084298396626224800504303025932284120355691986890984478296559486687643821935663668700804101333471604184476393716303036331616162422671944372013214282155186193463604062609457262296400145815080870786438320262062425962729488572938846334345295615799351970951220291675177406248115122723402760672546532287444526067131776301291667169314349171450741804558187101769946052491466224819412071494617693102466948351972055247398721743881680781581993411224806053557419668415125685618130640229777971100774095054182920701976168766391334160189625753557076069542954879735696845179877981985524516884658070424469201350126701453823899551303275404845991384566391700092432104975136910139115174615850018880810072477270705060174151300449610898334642522973475875974816739861124572556786371639278900597461357832153327597746080330481052795794753919074725426263075709422266444207600893203629552016902297546653546675300820440549567308047156974573604572168953107130632741703854375862209938715090454549956700974951871443301794980909875017272842674582916697102188208832377940190927834463200022300452844565782017496266662686125766566707432442644300401473448729239608586589447621463875757044501607219754004115882326721268873912558400507552109421107195298610361520917757713339153813830486820515955132854317593609805058735749434495551565752687772601223377744143331770245347073337087707780158338691025423730509004720064466020235719690179887341277806319496078419826446052192774655520981996699558629743955375147217894354972119842783931629915050826698451599113730572019826206471469332395718241209671749084782000060801938059875960662156216160243935975206083303933632530665823777197598295914724237506059815134645568842732343798951309168903765119617307125114607814513518802607703021842872252462857006620229309874501677278979366341346903711115564520193138681970741022268190904937076403273481648055225082593373234927385943206184040638593569173548942364181942990543236774033891129445110913939018955241150093685089862517905404988493868187304520303254908420805057937305751478174203783920137585232993815926247853788252680447372899360897441913877407881240225411570072127817074348668522493286748657005633119452212407088623360841521364305557846328335587021316069510907915122141473169648885757199558791469530145998255372313078021797828189720852494864616113284980006316728992085091753160337001049059977332933389631629065152732974258856773269675989131050634173407925064964330810668968192212514852129931903628162856614679013632067370457234160553151442454817688328712590508912359870985200549359885750579723216229258473216712958429404857835671317907752831047243492554029128805731658142609373827840185123655521213740748649536269020926654566518017823059214673542312546101793638764684093828228119476876263026678208310411265739406578028004848666672604624818941375449389808786327290785343571981340347483963977936382428783477347958954268354341287739452568115001538034621717429008831072559745257068678904623038786371882915930033300265546657388312466384880219844015997368448410075806654656589404987426089204614156343911543416727238528716577767932672364256003862216278501979382689463665794942084940251491138514044435053303507425443857531944577766998932209425408419887903774632034481393609807390723877991543510244069067972370399365452410259715368566422089400426195232724427055103656855780261350334513241867589525766325546526183657650740821267216915662820697027710734899654267060097792962383637569611935042834175111333445170002547161727387547766974682467231150547575296152666852583046074044812538674462251549246027675815505740638376158326917739271391145464312597575053535349321025372174611276965512023946714007755732882444085398168519038492611820043199557359477344237418296546162301021389607298555423338098681679930128824204140967711482409754384691195706623304974243547407238910097334647799037294034120241829679658970527236306151362945606301197097916492260146005901539245712362193355664025076631322535789436459271568978907761979988418452479554517767864210753107501301392094172397712376902610640275951860873283840759737563381212349352673409442104068283697285016855201207135270587036743485827424924015138896435347336794861462234629097321116931225524715361782525050863098152056485359494102258683366338991655599667345157235575865632883008486048132553651175483060039227948871644204818717214714128220195436397626369213796762030900219033023283331903581575795411233846094221892608136926455762995297792775481013032265675705594461057043726491483153728361340064060272775863214034332946570011834903615013454292656092677863110027538197602956857750119643708680751439266906654618220220805772713618626127234420449129660335594468742220273773116369030178710148369689181018277799252310627850589822571429306097598259856469044428548495756951813690308496044840998562047599130287384570789854267654994233897280420166300873124401836732392668299743380134175626835220218591709344171943982197790655398362528652698228184777784752611070933079513393068370059969502194562329235579153391148650091145859148970238417317017233882025568699975292690232735720110457876667156876101561723154116556595508032785046137648691882399910994870567685029545051167399896653443213562416527485713464080240730894753747389703323274522836163832360543306028708567118679874188017821085140882029987882557067292757125356738858373613741931005848626787090084221796991097486625840793987627143877820561939568499537291498058594845643566260266284684902027697808261810515612461430802713328381515011247206611895295861592860445445204248548430518491058398332752781011878812817619498282767514901955234656673510448478877507673347027990260882800135061865884090289558042524633175390140055399600268115734144306888729446685735060163119264833000683407783362498598688363687524673994269917022369379175029453849839230781631670934365984123908069035457525778827961732598351390941601305181993377237621769300252160568407271905719580649389092663553908286509417513611112711000307199575386561547879493021981635196574049853083674077253085505897298600082229902718858578062276824010798516218724457354607183863973433093565751615534493890397958684645060432013057548292445409455465645097155911816134055617908741852198641060294748306325311926474971386805514704572226698542766488736316474041894965922592902352230022608991961727926523377851095936371815854467421382082088086326613212515131348095700332659808126032415410867892813109433409960678611590093539467643832005781569985262339140729630246851153590768657237086265590105610147230728844350837196416682363022404631515457412970277392596878392289320069734908665187728176107839416945031588840968843772901172132919981987482197767865747547643405827851182807461455716696626218270183305446202295634059791282718502740407452811161383687503478216343912055872974668407860328285948703751662367867844519462795299698274022111688831249679826985500616477977315890138413492329986273612837267081510024928634514537246821123163986512217333988379851189960660918320574587203362543785731168752007106976381020219196433491390669226843021591012049222933050776997844018323227604705097490812125263493018077609321518348157871838032954682861842982850893330404389178817042912671413671685311141463988643622527621493916379234075102203390146774566856263567153163768732578390214826316047777132246782822040394186806688539752519882019615255477399098927774554439147572334323213985724709401540390541357222561776227694302454620590378455589839965359425325523383804738073921463505520243820824112893804504326217632243322491169093060784009804959952038044161784060152849345262184479635611326202562085657214600781195575363757927603893147757133491363038277595466315266436745745978960368724790422122412294248812683355121379735769387273843673530998663282268127557250715408406274871180630828532499514454999564122309782976887324845714120602959066698657423635449595108604558759400132325148789318258275915253592447241519179227546973902870754265288839403570505780076242527443916978616671916931600777327220476931051918864113825455951094781853079978874065188494810048612824033560034310769168892359052007661533887142383476674650105143176531971484447021600428767250602584704929660176436795464982723058991820399968446888688703577388305769330675407551675154853715980632403221184265569897187457925603238416829575645387214457625385609359618542273306716787960978003827237609124470938565553311546166705147329288820189784773026693622965424867904950059134210015971877867437226630024842773169257350259298548145377430068729966048376913701305847738719333119096480275313707028187012516057195123081920837276849783417041210499153925543869247409049461689338148018139921115311239493987499192220220715646271892668889971220529063038784823341734919213625682443197965812907520575933160497410944289486002333391411172297302820652614331585448208529748123188016367565572257551265332057071814335272483497249321915908270093662831648542055198109210308458961925335616691840076443123558688824646170266578471600938535597277847195771064014822786774905000017505845372986030392647676156765150940358590213396472551130689631245732997922658230612790142374770893148308162961536666159331564554711662110689766723672330272689265944736823592900155783661214499293403705658038614295523500065344754312339626089368898884422199445738267664105948276349143670233207263556337168943704408977380510372864202330499001783604212737620491601016875042587423636368822411675408094313465912564329679998690538900349669777011424553277010004242059136267540725638314657160354763037905498249920429876863500057895253135602460864337171514088501500188508716439709824765973866820927067670248848662404012242890394388707006140566487696070884392519109609174722973459924428791246977031745585183471433129093491690196240382272481837920988521015327928049592265653841815925932261016715500786096665935074683868903554172233212324163551810498447751444418516898604512306839332123162839465881047938750111366223512836717179308843807045370044656805581066614396589005989757949762734918601516789941681805151132286482718728990511796698941115683358030917775958935005669403998016779851961541351505185102278891372342137686925437464952162435186909134790963826538793849231613390383812441234168881201484572558017324274649462856811025883099233555346321920217297235527213871090313063488297025390602956736928241894468139046245701270311477393038557973104307777678966687297340000761368243000361374270707427347698499864872643199891935013858461965676806785483582595343144307218215281666492771332627452935268293871598629806227044886788580463211249998719070988757604458290350569231737587070381095213708186832081029535435810371508590956876403319463383816165783865835786167580339966840123583611540760810077682544721138872532149036579589567282005493847566037939591269915208154473750882582451272125134639171698725043359819550432542342311040230302727483504668455226991932954138585049603109390418400434280458479556915583526089099534922265422817137451248146786614199702775372993922954180637807529040627972476928369187586808497572641265846635031746264815403577424331937419991396948758885330023011429047014198111110717413832293121025473833146929179850426352753143463952177009010538702142680628504888944714616312031999821474508774500406790133758210749807028157046945944926724891233708906699763807234808217837532426521644494007815422531229216291549026181884581661438491397716789489596566799410880894356363063499969223175371267191862318413672904371114402743360467803282197316481966950704835911039887804959369143548620697208531242777368684963507272560334495542296429997741560382005005573281245445777497514711073637237211383247591743109433593939348909659326464590684358817592262470107726779735386923464908789274901472482019820607407203769623378537184628162758859587021617679737151680415486649196032761993135292044700419754051381211216063001331889783848772870841877398023458639129454498817278909063370248344136642162461136523842006645420515730500603212545377929313633872655839656343071331424672626796582943258672214872389802293210583329411875886297012763791874432100546390091627353366528631166326686907045302413370655455498242736431303735760852264434539973129549311098929732370533843034016736569404249176018467844230783162725537348138330899333450589279907831017667378226781453557325121587117159251171126045030122181933854407290987869042445265114950416281936688277859920917534265194703155420883122476779947875508263917870388504374896526418278857775912154912145575720053248604034972242113094693497413566241616838466440888080933835015820319947805034296891551871339511442321398556281613261842914101452470090542844672011554904789355599181961911016221872213241403798460906479255893532575395876726089038943438449265336455480218598400151262010465399612250426879856943110627233994600794291080559947681700549228295470131469870430554236013622793352489747791894904008260719240084934736824592638238541146310027934392202804155684093367885263423355807306043920852540990199737965312576436959019713478833227323276547656767577699165680434965208774702340776182061494158877291347847593117152015976109596139165445322699854648148143155574931980371353749093481962818140452572003836500883304933321158578449452938628884609844683406291666895397961520372458405784792629435262021136525517144542221849532593244451956787975033702959307686018025521188365781569546767589574720063079323449332220572016781552501573560305406177351184976788793634784155632716925969659313058806295103871374654310391944585229625334491575325890349311302437508637132627410700702258436445725377402489034901847094235400543829055828824046609351370224442597129938959183174151724294316885976932187791723420713305574208650892308595954941914541617014897940617287774676450729679607586257257885392752143383354711541164099534450989960047891533027988433794749537237597191551055202412348764817825518531548660825608218403623347052507178933206196709495780973154637668631760968898564148802645088467831445698464200923251720763727123428114388526568696209385474709124982255229605293916931334235672316745154289037894593314502788421932072164394710036187898545875995613423845874012655859140092461233471424287049097282591018637575048168334527948640044269929275163975137356769634754532085939586508152410015047564998756837489174402756344540130524684011212514655522174293802579386624238382842236161538766218217177733331571607628053669398107802849493185085140584456694357446566196696391958551205881901011029171772301692370538574969036070161351340769071564885320954780572624708424859149588534830169068118121995623294034578268601185007324601441860732361645511844696273164505266759353551847390928611233955577176158214101585292589166755326090116138520235329691941458855150989436609446196828092225946342122005762710705126357828727242044016986663518111225856109125527967509177070077220054222969822995668747900236321026460014157387750310900819443286775231167434231665654431101315257765207728198456011302634820025657493292278653593349422762948616650246043616272364052420350879293826557881666404612905343891305087793578629189134974800143829752589463337974883306532897468081256392342273925800726627702567581634704255218341006088145210428529241481394317506405372783252600957416748941188484021063862589366159924866739380658740479931338439964247189198473027966665447316245478304846643538201496414396645416280184478163991938748598073233812748107582276600612674994351137157894821985996682304911025429560887438212136292435625343808920735422559761991263157989774238265337961857552887653817899958056879431921103458110450072111367923855389734891026117300903688175975026530225479593177554300628389945862595797257626066239729573565058608509479969936144889968871089909661495980778949261628841628963711279522957084260797865699440904098424304799846278268665492886502612662074552884835125898913539018056050536711672342234658176437725120722327191075937122808500326907502000693601787148247820942696782678999350658761256804028129404479262492805510430407852806815469593067247243973272046414691979462626985831837811378770716924065339415349171187273954919855865214205437339135685009736104486363803349704612390528829502162861755181533993272612653453521625983433967004013836185763977508795878215048634956234664287459945474547163852983733904666564305681043262140951284675508725107950453067340664666718051705287979016618803634584965164637949272502579941075078997841570441418226591827010404183772039064335489943741827127716026006208037032371922994409375103924482842726179676852034174503006354112660797760631836244691289424068783141158061833467856631550820687391418604002107148348544686614650777813844851395480495009664439428080349374628274032178537594277447772693465597521950969591655789423349533818372417407978183846878713267429474593965808308298857058311095218616473730664578827754140917271731659789707120381570957861582799909766777245383087340513912150264787357703157915308600230760600924107365209008316039313614857474743182149301662215109282415823609498628637013945696455528798798868356645594207070967932090443904402630767860233931246417201497843212113416390353716193856762037955972602476186939539178292022657305935658764762487594499871864899834129810614813514064065446535390345082902801759604999807080798856463320324815306292365548337108597217023332788589705266092810892009579162467107334985352188320445884315274655150900459858283418661598885739862492965768736608622855317498246177294892055001772357926250502618968522767960929461900382309311069265944302944229194268327098693425815977157292213420520379581773776315417383979991249549406188974188449161191225763781579845846063311043397618721247561115472744962929574770275727046119359369920437521111502568377067409794927844749810003299564640262140425193776293727260008666583506674026716305056061326138827984095712312454129957921463825786741145216398935874127848053705871820072096558269601480990620403486343469347894199388622788091670775103543505925823587260613983570066327203088838481523768137930354056792105456645684678253026674540845712462873150649786060933620280026081976159316744159630163961135138642105059713100152342366831675581657452974882302761272510553315611500592128543533613423535786029847739916276572339201130158585864564620079526628119880533408086281442651572670374538151675387574139517232310560888023187827910349884351489421897901379718941335880031441295809602009716311043536705261934271447850978126330665127374813565196562170386618498817918984543394779556912911699040356422476861964392181343588962678207352922596274475747133819414638773220310424313104912092707224220339676868150996991813884044715631271800704998347600178282394030975907331975552390177303890268704876180244502325562444882907677881472745422357688214003249346434486999488193920129730321382165211949176624480582789273590114066338536325059214286841073232310661472700761451974069895813902265108665291132630223827146413250865052917997163480264651124315627000122780467611550771754444830792285649013942746629568796401370901021926645267914531379568894162213316702426576463114061363278090327846917551740758039457231217283884564564762361813421425564611250225045641927645063273736097884169547234532592511140773275354433484320402980147214029013163064310778848582059701088272659521137013345258814578382694393529052101184645300537116310807291865152109851129355303180037114159022081913184849386757318750039256316360627589197349966802484853961417241250760290438188916140290125351415788034889801432924340393733169621735114445185473501089034354400651084523934894642775002962709881909986583726129743695913176661627280888415154366060060094040271234664436961661609682784456388072825963604720468583629344864707362611793708038550465214052413514435475606837362847393222740804907282167897518677074833910570937515124953026548352489555525127090513479223819782990862276105583748988448145305071860612779721349703719515370182085323719679456573030185590738640615668465800220564706998320170202938948453569472302668748823013545225585063768418344658853938421365216721433526337911657926254110872152453618222170480197836131521271950011390132090282742276033922696740760492723222341349515079065879497521926701050258877438996446468128554266059177515780840799897265124965331973742025876009153307341763528580263591125323195275450555243238184734278533595004388555074996013617057856381981897809316317235941017477090326863757321395862070542065378131314422466033747045273960430867956125598728533210766968405361631643210689384715039990707089455122221515772908985711322569159679882696253437731384127236632346483644990463075447111488355092806948552649523948832721201166000156676390336087827590595829200298483514453627415239759143836530779915558084216107502666677431902418723163474420016848759745089174685267447842398462887654154302937184107382788975731844844686885833802428403322893893925068122589050303735717457801177728281564459866795915746093484085626695212516791511303507089539931662937293744545614664532501947219128695560357788033233723597092847725059241510778204619564503840851364532780445330251843127257321385243677695571284315251795335354622654755789718968578382081171131713922286787509265379954757913892761723111995682593663294189055050963904269696306953395063636365925270105042232512119875093158665819862934502204447285549487393406631120329531055804113999463397341692367161230072807133220378324652387305327605891346979465095752343542339865297537739849284717268610145503852561624655388193829126689597823437974193212536943199401296603652556187786902858687413771502021292105348308925395239761200262725895396122253501595103183701804726833069650912021009154648957486299310356201020847238979580262637992555826591291236643660536363440437768274174812726765107330194072496993912013665187700633267527394587269613958291353126321630657540825636073104305246474344986474918351534980988156047597475601118082412642515575731693938324207712914168386512899520671630661511626268221401719075859442709246001940568834920028691664036341917245641197157400002179058132857370161887718759046944866854000683392361691004057962848293972272245282063627669593814013795462079479765959699252988412625658686737606672987400403024004498766171486119341689597686178377802664648438406499979894950984079170663017127681695874040362136433050604453915442455973864971904033467326712944095462570708197665088358257509251265753531390131666197373642650784990296669754626547824759023767606569657447895352572248121664116383579853804789121613028022880425347061796965592013961095460905832580555155504593335482142254707361718630062528621639660347064497706933895834275945652039074847810907561194019372631042423691238120819239394500604466814331645214023530650329045624647013691385298731276933066597517907134759890111558743593353082320977809743705867800143582546505731708310420226272603780234226954616414902635451217602441310101042462314485838001349305623904003466487976094531165123014984734656812514887068985167456168217764780328793347883557705950180353160926644974543151036556025751333231819311398200122694236315827628334940502145711244369353172025204423323412949695766357818416721631031779408320865533206709351763785460270295757622265755149166866104038490313348616879639796707643264244747031879439958171674670220099561917202211213138746736628537841493443353306528950869604177919425138121912438079632104949129875486732283949354792651568742316488743359907853375156333349142892897306997166027017297750870176643773889303718250343796617809151522480939493942481920614127657092877641507669897052891401730205206410812191724514344182863193093453491480954972202614523444943603813078007706259565541969591260598883919011753995133066654246719583669348934770553722848181468302213838894490963006298421677714645572715143362821857112304671180980528301511799716307231709352812460828916126953267413695852265964178857720533844659355008872091633508964357241190340829537473258756956149389112488548168213953968657598529491346501886011312027318588634671115720259638834019806836871795943335298537450368056306266322420622714351622418658604862030532032797979477262896823237725791290378018455474180365774958102615231745501150318682582753549293273855069281141468366245086479787470569038784112637678235490002135464802000857904737476966222696674456809301710957575758796346575173958403637441831705714147346939143160817817042871465784288814379124754657785703899593481706886143654218213101942098670954459263035860327524017060988800681901918052538393575717431783965244660083905122327591538654129630286206152573049235244461406759108442992838048940497798742777330836621777337975771609956276911268540836455759691101673019105294121558306462210373310552147516923275534936934157397429825895728686388852150603569940916790267801244104479698283504390982169211209693318093060814073381526811737428496537363940984638058334010306093245069687047265870427530307712680555397504877544720298888248894470159784089385670722746613913072654159568103916150674613063444233018734272005795007604610605120342762049772303249417099599170074392934575580969274755630122891309480052592213711990449661797689937868785322529262926408467140972642946487997623346913582027647652023788554624865093599662838397007456047084789986695413086302747447446785681689584077266109089463127573654582723633021884352972520272177815634231477735622722476746359520002650604966450392207629052432208732384088516427867873182714892531490829574381753664288748547802227406649113290510185663038521593865423601262032337883004267554758370589906265737572099912117310747010763837056351954050463659847080143503598536528180861177101083624999584740946401468265190392050868837520207067268875513165309992619009006700317227394004930282862661366063546982091234879002458728874308285688313276808441936801288306823293153979146390123894167362282496864701335971115489007886140686443613731202179780971650683660858551223742595583008753449817497308817114787779312118986342758885577850548625613861966968536747551706136777989007905826347954516164832660004295014221286007021561743762870122718597875563317307193914178608156133763756181361324404672939050895035853324883379715363174518231682688733028081233888394567634045839029990823577411093376109875672715566099027456537831212985017760364795227961391828984550299731208549604607409321986501425636302647904738657589641727946716714712438212502310015214214239178122883436199472501444982383753931936090586751917212088075744480202535242282346428377079622066804411617851778636973590276076446429218302284523474313759068115562499682775792762603790078119648072486636365691305746574092548412865520320009520410211323292954351649486513952237860446251719921072616109968844883716548927870161917202857381732012455977004255921742765044709079460060946902118099488944105979371847790661550883696493424849480284540625811012908960766619033186253319141393888488691644624535363493592960379261570756013341251699456684958212213670189673120528468323502689804296849932289289860381537012257068674139854271435902769136526699996745467396268394081858951269395470934474245111338491537315084564086168824699052116290135427869935160060949503783850528989534048248251946738276388231488990353659598565928807912766027582525910302259592604603738690318515999977363792069132181963995108047014732385201645762852236674251030466352741513454961861577890480725644995791209609896503434507701425788839861029199643472210331313126195870084851219604305874109245109564764881322653995978785506155230703457524313675779064847833544914768444400113460982836067597913238736068744335502097537671518418664608197155143768500009104544194551530880671365242629536378334362668869826390035633053423319227946224961972217368213056652826769549220336027329592204713871826230400479722034900465154559076312386702506639838360098781136541811922026536879533333019615458766661930725003324321901816259210694685702743538372077758224422722441850837427601247067348505834077512978461518767889360743714542073304552763091258101308860629157851879360634072913381322859729106311053330303605203881423186859375237993844629160399616562723742204402885792148461468988320851841780612889481983005589725727712043506491655787239734584280990604035448624117201168927542237025460242642271274791059144194229119574340876967283739583106263001976401419479279659102653882607079705741864722160075925922065637560767092973012179524815755583469512881307406702742014388688886032017854582918232146949817645743010729057392655489390115155349181762705238782438457757354616346333674672042381392095784831550263827517636398486721054746106039414765002071384915512376704464755236798250268333563847515144277058318082834152357833271031723012092412949103255749307387065164048865169844259916260075926749254434562383435275955098147605227660995272994109124253040778284921786730230367106835434459891472127643369633256472573529822912473259609348422574329912668390227751716931351638147321746411581075189032494805742363532759977989086826071084317842791666490325281191771567078626153978698587466320456363832723256891821412048487929287982185121448408110539171554394857761999687091208439582981750582495705196221091755514318110981219053451280720378540188187256656074416330322874256099154745550247063717124821685584869805159365381979880423661385166979703330936406783716023264521159626996006840277543638252220577373532965917628662721353870164342996173165806431707955306373328987387014306746297328194361127117841050842973768707904720556298054014782533403639295391820009940816721425449338460136417557900718085847345825144229225624920606743081718258682875386713471048722490972480712386053420439251357880465538871896387066640886118116315882606430688514044738362407229069602623846896612494503493130355387671647120914661528636943618117020919427174011274998790924577049342682159986622026192107626248769721117375823444499921231947508134218689426300109492830499569790199800283527200811735225104002981273475793907761470654961262017943942653129747718608239080702906284504399742205489854265664414755966817690560478905037976613232112216214278197602705007907179303995470972380468992251418349068636153393410127045618390875837713398821092359338649977031413575530967106654926100874537768629947525720699398158997935313206442699908787098319368587321422692865367357131462321315854988675288541314375142674900285632819720024233312482690464782263616160096884261280984928595113542166472541358406883954784536572925257336875061090136152753862046998092279834796373311593348810646837037444517745670289349556481109256644777953604776363723510083355158771268268797457090201112378964346024302676456336333710689197786270597855247798402708611271996876069867780349847604171449035082225054959853542594381718093663555365506915182491531009559554691941487248073729420933884119748406040770488862111344959140239408756665799854387085264136306347703685674542013515471948406406262964643852292330802113077411124968414135078004971750663047224608668405219898766696775281777978413416795768419121127892018084622611703914578816180554633482686328511700784794216314047846737868790302187975045247878810337251177066586622856052364680673406364554201236107098591123969601396374673080324069176228583204130719876030117375974872941290219683918802950460338373192592834267429167150547166780786726131400666230047435161623610883724154224613611207874270932664293630223885398979980483641448670322680478878642476535635143528000502148757581488566213381779997308183088328943456033754880458608622021118548189118316508827846898956332274737194477973472875914590085887423093424586315532773748949408171905334383578888190949668976731329636954476557848705249837156999706024276334885602290938124206242804673939334012313774282576273832596422652033625947979071877375128497876027575835205432755841456595412780406402793444058978342592250010701119877087455386631178237307210795047382237514115869703556999929274418176013002121951635464081088941004322895671160030243287004272771121474394297174632714236487555428726999835819628134888309225984834336075605382143592178175905093278369804324486540379975649257695028189707973143259039388968805706902087537256133680129027349952094664427797575859800445019708497784043812373668739940270513387555553044379415039066675103327102309457116913654693254506871161771084951132450690944021151124388883028791941111144593767101235476101076767595932279216717220218404219821478269063259204559530572391813274555970197677125794543064696992859545553071375131192571595391200140275788332650281541705081575050900156217997460916475415179721878636219308745254796521986874761239505917348519122056169213948454721857016745762346393947313456495587508889248636092027665930048826467856571646535208790704237691805595373409403532354686512820017118783384196597148389445851894106233682131633014684554878623763503508574804349105627922696598693082811901132324817243976264422715414513051992954231678776922633829964646600440769283446651305427473114011072905849599006636064574160246417426114572907577846026009288057943064340380351411377684176044745559460219575865091535036136270322400454593987487745483478976959751005184249561944302255747748327379262183454274826271286490555915659107062742965882591210478071029066467260925329755424320333010553289160722775602251707698889301067140576690338620526099287530599371056287643717297327867493940803916778263846429637000012055297166500755039704085091008526629271614511854061912404691003080318268807684405274676428252341149677058956294488237915588059581097295389499057734715025255913543617977822240089812085271057159318412674157261162630136531746382445786007212291651439699006677266391412994223230424811921320698438064236344075501136152602490848836110832502816903974610257676290975975822137889701833226250203453745116220647820686477741289678916460426216287904273466195185410041727909038162666112706685155774310506001669087787352215152790077895630745142814157931573651860724839545742087828033819409326560930521448416015178818720280490866231223637014658432601750384604779003192053224573949899884378112822873625729985356852188563766029762152539740322743968216980269290290092924575482388004963077616284437174026971601134312272118345667646582700548762647335890135464048155731034889678654068907546169001334205219792900145977251375281078601573776446975081673307193223381034802228274355313082806492977493829041897032231573257673609456980736186515607292370945076650206348120098401988855346401049990268706622323769736640476856784667495344093135619143543060001116858295308275024122336283682333500883385522973883188768741438187514581826261389245830132545380143881569221933678221427013104690395988357733619249697505477503528781383272914880459003346225557776103596477300774774812221161703387676490712378903985494228997826375957123281347526900087702704611287966030503328641046818379237007983203191458534221330535407475703834798455981214025634841624676264304944094806756284194403877700336962197413051332927600804452830707859243631393779568016983234667256395754077138147904887132749608258642872794396904910131697383283470353532771249691476065175119182724916777115743279923162304375071576710552851334301015998039087965697021293723736318409940409702695899121559806725675945975721043930349054405708263385011108565064429153250287231580572910576419629145042800586111116289551470301194461330049708968954144081003449961547333454528187847166026738352953656505116717512217464170316743503785042832808803593390688517054776702203314767489879971485293094854092156522475430678525697399205134292538310623214552376597242762613047877317721625468727840236438611561696071807604464786201097669328791736071867487344199369820933823775289565584065729276412490125464039799375258874840645515130344766725685184366409205185544301586461414009220400991052427147696175852019139090238888997841699964455911990532048842667701043659131939547292262539229668326559182239290546867683212949568966822595750763680922744749998289940643717547730706443497534595143985926642205381390802503196404201926570051922683150356992542321521437868166040365829307404935331424944860737010754358601144727473973905580271165070804715602433663630093184388828810113021684319032446051336402407795582962392913190713197069354632388593331842910335943300941905074946988635423528745792342965279157423422981016508551792176048008741920654143230538232390136121355476159285409190178162329195725373559852310344046170148704680940817094154192566231957910096769296340562811586594211627844956770410651951558328702695697746364853351323353237226337441211794810317065251749083503992518015749862256875692542053030632443507809964372102319627167134924433983041225642923163282923149059430222946374168592448469980578000155675733996607585499875116930103649483980884205325307033324456759063077560585162114746325819696155870949119607693744047651064444925643295742765155107703362113373309553572260231605197425003856385742777436545475018306646362685156425983839951607564948885485741866285517698410070983504025126038020809296606971203019528212038636023849994079525411132746084082045511471631556173172231824080663156570798258639893844439220402331450285044513169125638494664242994561349716863855106230363495292527711062671609612676865341676881750673290674144737879822861212554057810886016785253436951998383905000015664598883121882749274230216518623830696521762830232251164903567028991107181734039138950838019726770767180147631577513338906763858018559950098612539465876560121069543170114885863437360887588658026701823300690837067365960120294742610425811252900264148801564595392626073520642964275981760524546907891505692244080452676933494997855530756233098854212008745506278456081590403784698405472430199389858766363844196952088042631904286005041549877658068984397540897569341313968828899957046930880973370979737486322000768583608362010447748274880734455087097816457771152786379353689428441049657080445319116110116078387081320579392782141628835713768957713129935910111111449990075881446906723515352485243003660806729453985452067140056989729493949234537875294152238144551565752804647178340540646263212647012071602005972090140096402613977875386980247648363805046791381807599869751104712138759397530328794190629111055063963425498276663956209594708812218422586720168156747900376567268404459104333656842462548843493374889253559447006776018412403150929750891516867988978286647119816691743950098026540307911196293285736844695448610198938127551286085250434335389695482903363984713034436825577983972224873017655740608583812367170144269636986988211236639882291426585445969728654844034590598322365704403643019195889687388554073944174685231713861474994515800691749321925582986142527506939169465815513668721387506385287291523581748476094435126764892812325179151518769980752845626497635053237703589187473059588535983016005775789768872244522268281793162979643254454571256496945154421396951521075209137684650010569092721002949765099470083546337114995705728792706163486331813235738865967722814769247777668217962153493953102712494791200825167561038914612983934616739358592102773215741994009360940954937514729048909082912413486287315636235411896514842814569634905520525175703812708577831547818542556767559614632705646234388712146007606203099668145897198206585953320679660060475038990050771724974293954704681741057287575044717176098979973791953825819316440513120246369225767437512837479245926367419705774194252611057707655290314505167587895524514963138089362904947302771306188355006554315524282817780981201961396146345979120344273723199656352093303863333799153226744634278896883153147885483416803586219743545957786055506504312244514019222496758972423363672991265137680749305512778658251646600765544739819706688289452737984464265381833370666418961264970492254543758636172455357752046535899921231503092920259306541126432487010904709601729060819364072918220361348795973748129233840245099408375670081866796706621843413637286651650700298420691825044737025580370098942090685113738545408926162539242034755181237786701773754178451935000015531569981137097888978045380319584583676799433348843730142123374161499663911941557372123515057488058430734850692238622709982698220945375957609408251276188106600043538738768855267316563181647300459518883366665415876072194365296944825469680802827562400370712416270863349545798346810424858887497255272854813171111478031494691404248318246747152763480694186881547173923673474714774168718827638019394131621328220800680350396239598205491745279184074957475983504372547393846082674755774697103397156308502314755231152537306071810108839555644024485042035679363676960737638684749833603875614688229055368193865737262345239770977279981210852254915985868793548674867082593131470723676437120971475977040391713028310078571394254815100555535812679230215907935698606885345039128613496612864023188613017857507314236293632504461396762390397540482236037717616542499820322762787169868987901625241275934566364243417019479442760601848177166961673216117744369257213127485738946427137137990936511848338234768410815728958476055783818308866829232755376502962777842831788217365042946056682116477738630307048110530745560529603964669023503225053088721591330139956301661739961709154879850835937640354005467680650862314440626729042593705870494199513114975246924653923593360094311010925585870602058072634791188889343179183603549297589248020928832815789504758646390055603781855249123940790265076158744175860536108018055605319110365019467394488267656017460333537528445344304397323465044334039325669139551824100749715502934190033197420669049602676873578679809907523592406997516553602755315644780441879288881600658598467117128706613728861772356391481956918331557320983953511689224056317563693202695074213027251597560080363892757703158985511855931139447867353198330841364325692472788581829262402798489367954902039145740926402558815975454367365884109705613916889733847233021557712666063498223106961758762551577430026581063273895034285978425964379437196450194036850166977740863468546662292235268095308701614180822817538450252695308270879918583396374897769555032567866647272286814942086458933593776801681049334777643671180619316994522083874865139058599715007653923729755120529852718554661409550723091241020624617323846513429559919792253892680017672318870291188494711080156189093679540606449047054256825143066563448313438662674983964549188684530524096702535490287111735323146493546635695173914217528795901626138883964908543777587523780191498299573855913124794122209439182630645755697385626270856071275015542072645346838673296625948087689317497355115180561786771509649987251712882780843421384798756008837230191313176266494808488404748236235904200625708095394447485846509388697038993236035695769663034778726747996605036250913136645888738360157525047104294501066349562134009118911795804669562720831876976338953960787198289452360421970650195226219842827989376924655801417107242473499995058220292908820386979616712408062428425158231206867714958830070961316180155053923178295269019706368659003788645924946417519975729288129155602113323164302366757107358608500638137232435233834629189645069425860553304625752704460126933949948822717437755478343585109699583108666538902695360045940359661277310720201112118891030319790267719180967683105728425025451957149301241823654276471028417033566715715623363054457577007579341994482374241935550263812968522905267181250209522758895309767998336414246819335049997549501916038366662865534096446935715232214394884513855971816875793932374688120804714219579687468256821777235133846922760601786321775611774489851565998297268420896132424678898127795252894018908947051110125279751260109024336190534887265299311522306795668231751948608575932227486727503874288509804111506039131089748325489572136540209825178775446297406322754571336186811247590104355607671011066933855982191547116807960479240706687812800739927240028104316580372393036601823959186663258837925714150046300343880902612308095333399971464458953098516301070078616894326740553794453369841320704874996299333314710593002593722160189911077815804786494804705137104221335331830233541082092434082320863309637094718672626472943761584369790567988040432494278413973550621078009383529814360562884633289265901424526668672984461551222276803888957427745170739714267436187799524564249046969061141360648582264202618228455044410579507888068299916641577810933150387640962033431774108481763286379984612992872116771097410123376028583827264631819547420416588248373800606880088786222232631197918240305825322437664769868070389027887980648845564000226708709846132919785579137483447300015133801089975715822577605986938281436499443118819481626605029252959353529873583367485903730963095969180535680040456805245324455449862518818231771934733631706112530039572531025484967894293697144121636146532382934324062901839716585145745731437568894486577430672179756353330424226217753799869548575599219132517568591081547826356514929473474547412870023283529049946374125136789567848714718748113920351669828245435926253785336531496777009004754354254507516080561081417474451440574150630717940453651116946388718040741324040080165637183065637134849599377367521338158100758884609913450097907373033267259390461841858798645975979677757887635550690343616100410678866594394918477258615442475103071862218635110406531084496074042755217210088085785821140864455033278314955811476745652262407198073558169777061345021042174025124369841655769342616955776065095159439667747007554538315390920000760818448720446362186733648602143373033179566849823043165455325708054579079189667370220135954348707682931420863599537866607987382471004091457742132723361534602803610990442383235085255362352038247993108242462709525725908588988392400589525004941933268756940230011453151047682524459970865472088373450837722678356796911290935863217476859492399989198207586812278023640388153505465863131785095787882777947806915741916020817965511531365820232310649221293715462339968151877065683370070349879726035056656896851881220280672392276906255542851644095039632272731304005102594133168809877698062855252157759430567151228946566857667940720332378226310079035164108788273207205885747815276341181400992536711265728203123329328176302758835440773242068264790673955045849284654123767104962281486550554299674030887595116446695223597081854290249514341284861349768024819168579208744194469750832390710736137198511429364850119530038129108388994008246037333721608681651680449177694929619025814953877773103922341791663321107730723725435840532376917328246236873654973858956631006317718865653154861948794426924961241464874356087464523624711950433115290648781172012504720222879516552652956613981087314036806025945288696617471396558740218315243187031096202457320299752656928444334827756307682447973373512474349619839483566227956567515443305505769659194791863462199660102765998678905052048368367591086291422982183481915285651340697296492411429230131220436784889925694653674257058302524834009608035636890145568782820226015340453745983206134320887184263391981742614613708901666031377565242674367370612490362508225280479429376384999177195621029573978024484982245726460970429922166566613437255551823011947358712593586560201501299337754252910342117718303922235614181972955981090190713260788023310826988507829298692894191967079095627169771245133702646774835274175078585234286725379325212736067577377901760033849250204320404774421254229699489996551121192641653845836189487102765855400463752275187861039216672372151445920067242601066969294827248645699347573094962246348613964391384233297794049210877725857052019670252294540149180038030746745575337453437186720706190655401668747693546901351464298577585666464477352830429604349632326745506598221435471734748153496557004627061700243187564860819036783535657715856656705208926612981611607826047193560744349913313549362811943603449785182701527853041602375970629050397073682181192230863307467265446272459905940939796727144219036708244769396839276993531243507762846057942475776590517815259261871504290477426591579548062441189523258359914544405093893999614746554507681665330569507750972770720975055963378072026514494746818153777589677824395766047020805067546331822825291394673115134492805671706009828652615106260004278574013027477711589227239904302432779492846989318108580230193758898074127558223824184936179581081365730853894691513574281214305431204433804818341885295635561257789527298525917911892960666817941936656281047603377807520043092659517403047138217821401760197225190208570172515144999054018117625205514410021619223857117405029010367975172584186500353521091993805586271695358156518983864626086152063580062427796573087898058943686501512895360841016698557533399400432728735343204364698577495457784261196085846818299046582301157959323778507272172412823822448848337462650950929185639433475771186614157726608759052714145026803391932796088397393489754005525576706902756419982443753190807739371643236020334632351664799268219036423242964102827853686149641680542719485410518943892819586240951751027662796501656517227582822313384446896489007185354765994604913128970652970185346376516644835213139495773320449787214310056421258478737279491114734132548229578958357713847554133566831831718206430376404234734381263647900763522275891949502466316126953495573981122478646212456036758021008081212102760223038294277749832318466003825171209816638429559604187231155351670150004175591723015563723835967946135031968672306705211601564792506017086386225161606789698705795016947328767424616146130550855902354347363441352083412872592437385548130766339112224818653536820534036267162944121575524141400782930429414476361744393796972800239665419075513120838768520628986194194743648835118659034170304382458081742682215724251082311217986955267457950845288968108264806597044959408459317423163863772949107811693126349972692676331471985809652812910406908205495213578399609533331454474433566495517248126297220739318836933758630222293288628147552889420808185137937564495226789425176789867826041321267081298637919764085073746011852787147366101341277366238104103086080465439079858675133908828544653714633732968845083514051404465076947008960612226562966568002816166663771219695484065193230550296591047431570298815145098252132581536712121286723378330737116193758805130012085077813825586303905071029434295063084121031086691936732387012301491790222113760090613062571434554456737533816879486449317236502471227220008087680856793218720605349501017025956458224058833950728152680187747599470648352372094172366748602850522894340249841791479620974895344019097907240316685790079326498002485357879100967254730628345015472007327120519325042346572224504548482877431230634415221858657657621044423425208081137150293152378265877315830931165116750453235052723406307333110449326270025276625772595271033063292715611895896482818814524060337147207566079832272870053548594959706906969333033783113711469251788591064145950635702316794178639015335558387446525677336121491336475135760952467665416359145806216895602212960095877003431382795313276039369090051391583093131759772165238815531244611785699890614135460846978012489390479278480659582482154945569684723678862406609202074111537176397055102844878885857620433904549527625657597544852239463393818261789938734210106459170030720029306339832499038779615554606675387115191316022378752683159454301069824357573657803129798381805200473428626600453397988368616155532917380056358176647780119640137715931786707843341792022798039249395137856753193011835002539735151963134699123558633539916184482922928432118231842880616963396337164442756676346488743142417305489130003332047150799593225367177225193956937293801568736462627047723442974863928187334137972235828650676988071754413739357052659370260209146084458615516853821740794391178786510112786622918532181816635631502632844832119229961164338494704665329421297497206071859793085206971089077155283636772064185924525126605338329222762240136282869871822042409180859765038896092780828883090152667088438367899659553733383842875312311899842480890732188839303650779367472710623806163521466016868373418026560926526194328575154037848598371174387479883396296696183516607038513721222452965027731093531158593547525545819148408039428275770379242680966764711162306252502875795300401150703174957748512739871342304351317903599606197128347656902452619143215186063463138714019349181530446165382037621573896524574845857358786825795514689879615302305366401026055993688510112135087575466357610302435960311884959392946594289294966356132992125785042887856664643748426439268098454354777217184589490728031190691652109942975031309983703509442277252984436043563012562746826154208255408143699717964750806818450899864922393322065546155369443767758035182755334114154611613892541018528111412109601683730589555640597194304124425439819797688665623047777357494738280921889877175719523862899273759788265295404254781169106279777348140249774114394326053853629059896027649931510703622352730139984296716898601206029364030959395465152690510786305347360162914629281567542579081999783933597121429881972616626728562000337204102906007745007004045374973025878396435499563392776081431913112236913215524474313924690737760562494739758502507337785686474106980529701615760925992212994647687878566756201424895629601444796815624210336985042850732676811876944500378934826427349376050679459761886445008625995869988403160293664925345454827097298924367089821258080409422469361150104777380153825160035761646982261309284460119591193994707593954523899727077384879800606894974397885425563765858011050190796998605469939444517964336210199102623564015851746890068246136972007921443292795384007616154874719955055698336606067649403677214504420343864705754766630086749481316337120629795261966732741275472334748460302056616729055716094155564906656420280647239292838392828589008321873134970467336600682403069250946701354670503569760810931681219188405005615107630797865342335880784057847653461938095997495178042718977050068691671418950677922522889292116029271431923309947707180508414067554148384666856538243909885671781284495405861000329652845956513011274304232684558075076517704001559663967561725945759157283715224346736570622097182460645496598834356683119879978322200169532125175545452489081641793703730666981958857632176413051185789553224136403414188721566805307032066008664700395983922835323111457582536173032543786549475020486832588378706660096556631365041911384640589026239285348830119586073603757942191766972286187581604963971013562568110610577447257219401964733572893570177960446250036638256686487124906924310439691838709348883187749937957825773590001171958270193768508013898767338553988042132744551527766201829439453095568285385962017870501140424874081554889309652463090662781192716892526251121064260197184567690102127833566666478666201646358625827355639711457466262973522251173471368430804645604530984782011769266313751018691079975668953959426902861768774703551042134079728568745979328645587713661360819590878174927038804693176143231883850541169347389123184116065769790001450403510194043620970200354922696268507869367048720982893137670336329538510493803921235845265700878419810298857744848264057204053475597070114610737047317445228683219208406516277390742149815787305070250186169603533132040877699868130173258664176135250534702210650438073259813611848964441223837135492192284480510957854646305630835499595819533298963250720241299690161642855920333924854265566593498892972366033320229380939546234349966113190839461303134772562483040306943601122628114737090020663184354031236864284411125651564527175258838378881398735310793284908583834199414379424804347334585307155640404974212642497077880074207936097049911757558472983826692527113758704882120382774813545166821088791692662399998970231870756383160647376455858438664695486311718203059233506027915972905911649741742433318294131852739107522921395885655358891904663568500715674928757430036844722548329364124301668419553609290373461337359615177889976096548782195112592823601045451349639770185441920725815057481498618298456612980889017334606950406339753103874487837996295584109117551764268948257426710929736272246761614458296589805001762297500339634761155674280770404755242510289634485895872374685695140916310360405911817474255992017125957335935338271960598510408065618352934630524499386435577712202184232281439341157369839801442472466336414478774719827963402756787666967330525696345504987065433407419759726026875833054655281684292058283694289597383475870668845345326960703019888572240895669358292633560022593626238632183930688765007257281329174804178089633545507941705640717296352847552475441386087580869228101951910056418175454555635463101962123550323866293466160836732570050604404299085422790972628134295654937789479578190892234800077643193548878884926331660883879943214808789306902695688914746496291941123835157659087029691313761615572576207437024341400307359516427324115423382973149990048451265847573584991420536929501654463712232200429489358151966946347972109449366099256702336117380567602682016496429065818207753404650301618280452057915213476287635359457164718541354217559135171383959941227944982660903939054321926565700540707663778262995204952823168919811073780172061453073062802189164024795606955588337665478260876160799295777529498061477576721004576426669823586228188463871453573503869938543515129116651548945178831421610106487417022654630968653637182193076743529033368369788137045748098908407881726445876223726492218725429533690802614003114636762889111322189775082024843175675684251258482352377336366643147951952038468364706831631335503880016265904763989430508626129386361024575888633527286694072828357056793430167069467569678580064526210023713389961791268337131843437443026229652667821926134201157621664021745950503482334262350417953152875815637511668278107782109483801956322025662122836540326248843741174565826713630252674220378006565576738099870197490523887612482266109733657205207408253576715927181253741774518301912804134138900092428676397843830318949366577433674140822066762949732227500110625998114042964029610787279466559718246271193310668275950033918739245021965258738014762997180815578533114806851689272953297226879557744446017552501343463024659788859272124983622275970419674560840363165235977909311660572079544433499081147298643753694361327500076812917015742747317482569135738399958173939837068997929766669361044606034008624385106611370083808416856569726656625047970993871991438691975444325903037670317377874523387069850840167489785995728251848143146371623160500547027132661104981444751471996187529778391638809953066259462849054160343855563789050826949793571501529251352078244184357401899971181722376057213673926730956578202376026422635148279729429305175055589007683432774804757163429980031671324530090072828881003028556749668840258947328248439624698115573176379046574400294557260328992836233855202875461057924687636025008761152531822653410107285101952739107131868934920618026908979790225038633195134517831433015052404285178051554347102720451598792114408641235848045109460686932977845991721939679802810981385715490763572060127720307315723516462058973630799310363800825402900854549958514159645333089035550599999618035928930058800977951263004558486700306038790224487981570350467847686938409043213862676805143364383022017530607173203956260845406829705727642735204784530052718138741289289943433290544378687504643547635263439189406988397486302088096679223498738316953376586238776040932269319746067635762796473111818948403065938026418421319057392753252402863847653844398042931800767332685368125241166217060517901087685586430666942104747502300067450571912240169254339093504196735770930412004189171506559122924458826819589460721494724576358547318161251064155681142236594156261102736862909191869692641508726371883757005870901343552327820019448996935376713210709042132629458559751696937335774662866096251455869580452852852743914487125958887142871310238322878795754758819585460091647822290715302352783810708848739412390594274704721699263222350840202344282795724652721423931824264532036760910295911326382970960177543084275666087599903828476137721832261359123762033160985321803716459056706895726809082659358980072898066888602164796555202051302880593517825344431917345933600390057378037791090717353773220124168987412929388035179374591236863007676869605596087384213268230957805397043180788969586548654981863852682916179210858018082155323940236013804292597210197873006170321068951309998371524644454894193322747726069814429019212922006967617398031382299249167620105747821272123514812913697801850570673139805505579743447450152303966060151417195256364041118260679472104439723517652148821407538818926051111849002169136448346300122623327254194712568511234009173869298742653363092987516235396890383381424149345931184408183565067955817736639699937704868813452828957438109424759389764595353017002606751435606763048141411570070680217352569008520153440454489909444681987620667648388156284259773715498708117515912631670811407712570367367369738508642362988354009453249778689924072740403563891680413456313554487103047632446471968141656473257559594250842776011785694729791243489253972463386492286136928536161690816041247019745422167034241873423088090127619550471701273617416060278273333551324143763060837116913955535469452286038076736419111311351224737516733881157836563189212476642177236142578936859811062051238703061411323945895536145132467761225756478037373738552829043993199094777080467914804908811277053229457030842732511279160474163261106276452633872691148163117975827781422636761644062658766423012596004323711524614460324911273364258799424609423227637603093720702024435546219568428731076320922299420692954128745288457907308217345077035857524102324752741248370823315511150981319000283811213292249394219754534718466161320334136181391907538523224907816802095006229125291741773736549267049522634307249695368587417828006769968244408505241518170145009391870078552369401837666501737225736894062495059822595521504749577862285573778056631856570938567962432131540742238526325624168245334517667196925462792959822944007546318745718208989836534764327388567278877830221622383517934655571876467421996296346531520166376296292812027998727285745390013042469964003945283160554972178155786541110915805044576231953543387726356308090218726233673678087999499217680093057864516403781720047892868166105715066339274046589683727743451494044979101719720395447127338974218844729945454997434421214652525308360986050599795447694063255044528988969288851504297187313975638638943271609289607376195225190411531958446329502508122079231030847927076204558787405678449114599190604969911729085528655916705395690168968799412517373503423444338832206288644387701965337378921775261653961530366092478491271737718683416204634377057295521684757207524709755856020649727066263000870365591833613758437801270144701864724647572634192951803475235836103745898094214447563908312857102580131807810205641382747098741168236238198364060293493575658886639679762774265039462927014527384181427781597157247341350810989797213951248657655871296083509432816245862137842067870813541813495934399295582001548544952802007890444308848195366038112316119801269964364325073008521337131011746556395920039572288669865340613679687819745340035010194249602248612630248757069051987915589578514053035075187538574770166525099806693298993052276972852789954555576572720008738042558677403840769967581487437126704177735878340270552023717333548956577636016434214128242742281028235131745567495224665454161738682107116220461300613729484638613665806788455720160583694122848085795637400768263093665879881344997230254421739097800457371040485184177017410133895446248649502049477923901063401852766496315743640632160970404956904789005714842543357507618131960278516853829152707964376604034282742494428045922074300770300569944843425005200581843624846133055306717472537611938216187433535490363902807139439456337859704618735823048399702579919082752109735408677545276330149438864656643443236522109989931062946862043692531900354907826138291025171346684520102835778820953549384900863041776730826234376412448547182338958136610566841929923811540793719273920017701119254016581756907689964041555248186228702027915028022923756429237729560966511788361233074501301911908842449582627366719433072619874635215706642382584716016806536645736976066713787254016577635434334422745218743035166613279840765105400694869820904280873372256038282104446916694955176625925393512552175544826037746591417106292865001279981383070140456931239740062588777183907042803077809845709454821078570406736405472512438163789902167577250929999800631429454660323011560111627353837863701717102139605087447096480967987260575557652206498987164911825026728096839595507013345004193974962212060356694994212899038662553400828955043318848532380321944763874609497582525459795096600874045086818910923751567054490315185305566521786141100169525527446264390369264208234482245714604378267271914754573220361912621482207249271083656603938647576024565203261278837718293014858154653055024394257958104215935046739237491457324798099264756989699279564806538528699345553589227156922854338818674355100906783560589178888609799450679795317482326819193828976401348081839419984619740308322210910014792610380008138392690055073816433676431880864535969950945368759045184669138879996907079667268976662758538077059208134957935455558354907663541392640657631424821481117945123858171262345130267252275514886303740375187209826192834518606920608533103004071931563811571690000384536479868274089330243124312490618822704525267133015356332033446712062866538745523398076711352815933542090073353052536569242692108178419043635858898475219364378927527504879159722852468652476472530471767288188057055072309978085079964246829217693712742443839283138706940261178298250676088916559322802055745581635547551371299763875702030941182667941211897890081724935070377865397477941969656724453059551165716607980261946562654404794674999591139251604442977634902991311273994837079973918672021528477195405007468952531046070618916070336361378485658906874728097565644588286735564262131056265435507789863958736543209539290246282078493295576557346746578327808968885498139539779078378312492147077525796635560348224145772566458330304960569074471071254931755306036503752500356569060617715406760293556309074525849478565557526795590485313615588170836832422913661990483063895325962551667604690043381166248678955987431737213798583641389195771842603701657395495180958347659444718813902607644673528037565582672089930396649723279668547687520211111855530515043555810140227773489959129140419211534358259967362783249267455531226420168169618398359000964596707910110406394799213745128981502570389714411170947587302870658728925487765304667636854397246742691571553123334147870631760380923342497507884578835374696855275929087780895560224136430381498652882360418675208219880929350671335259816320692050397651944570248792678703794061452294208646061258775131614404921760219378977070294449544565974813374866652173481716497927875473109068919784151219741646227098062279121349952080599329730161843835776779810648411548437215056712690349434295628960820943199391315143336445344880703818711352783293154737863844437312756386770835279929620075061065186842164896724202098462502147182610072796179573427367230440450755232835564088162844559716739339094075057631798013277515676011731050707804737029286578425188465095928815224921109965266975111644836560166583296542085700333582293627036435112147070723799210288886775710763392622792566131832154026926924673990642301714851442683376645114506612752156417338235799618027411031982173615804275928056325042973677201235246132957018147349739076924470304755840928355076122705363685772093305734395065378954806783967730738061196135823902433030963004148810041899396702247192260952181634106071040815032157085960997209665180149065539776809295499235711766068901200130172525548022856845025489189023748381969987860368107027588416176335101079258177766961711800438512880949005163435253403416924818173041351602420036736429033193358567216862329100683191064525714747258164776839533470455332246972849720071575634476153730273963120767191842466085661829548774148842374685943971320898855575319474980948350649463565369811415482376685968430803051543988555130329466705830961757750830517439404497055915221233191669386666192865121531587159862128875494051712328264220917577941851594697259940271705327224460887353516057565004183009530179659058861517735909021419895868236020925653120632294768918099547380751132061312509967768135270953049828076175035156488161403881023021137084420202997340422832596404119373056665149088608649644088482151588449369059300155238655877562220025380323247119134983054630474835458430315354956995412819809825671190464926196553749453362516703101057511616899786079229933538667188917500908902195708109940764807222366156740208775913055426360308878476583121135634298398614548050943965815483839875435341909450953348787834161279111614010096324708862313460764874750428868104879708833299549707003704217707604116883736240587096700201619533514889958296010555173450648182500869499687092705860801863716039294017644171501378564534430006920452700326234354097630451640404075865050627127970820769056793592069180724070259387352602204464199536534249261255203122717604318750801010147405599649796621006734959883841642661312356332072857724438328907280748381392555746270115086803630371689948919854122559327060736185122778199313968619864757535908704383029884420342078522983652254506622078582906288085919357143259891408798504219501317442573317678912952026115085892183033355012489141910449388210111024387369332850977344726669576267023894676678552938799249084022017557748281526235543192487895953857774627427298578298511682327589066025590751419832047403519039510606742988293464222433735315142273865739441716221392208963996440746201431287180077406645792500268632288498068972969229638633293700255896291911260359020946865685370680002268217400214328968540317620111869970141962865975798352362011998315667866633391731466869373112589992393007569662831876485788980236188189805423021377592023077215380483857734033302667495030965786782669650089811389607649470994663551713211424482537121021237803751969050697504900331600608139481862691242349326408935961124148547955294565899596338956833794160673341874741957767804925480079977806244071987743061499526412295036439323987864558793716409085691808327667605985405528066740411801281404452278945663599594173628828923812078955036287225131422386542565116000720673713593914497281147759434036116547975612720205263296224015181286152683946774311039448433975448779042350499118891001747880998203992946678525270476967131246565665031134073627063584867153880944594553086504193214594240999092388587220807924641116991208007879469373184265413069865017520630492968739051618377233682014410671021842252267876211205910482725259916895549997573152419428693692317196642369265670452827164668635377940398418910614530879634656387838724748809743163587641672308486535091765605861043037706851326200285809214695094576010231761449044231855309528179460182890893491882716531321044171367872666339867906935680543210778878623763333005667597657412630062962436889858961826551643999763290599438099553974169845109876620303239385548741819753766840768577905605716772493177015590603787188255292173529244462517079937595772059076660202357179654822793687819025376314717977860286926429411395194323083262156738623537215516807472003496417508966805993064318506779818606288974195883749491720855977065570660330287583768118693241658275711840570240120229630733039852614905163163802678881276555160789236054684889820035955323943477891165325032145217196029400289071720736436697633290178128537687840224223035157720502182334003585159449906159762706642981301997260143955517373191138077172618859575641105555983499632383465070773877769376274823768552728151161845486815651076567596256112880330389811474970840856584957069471847225903721069993630521112298902384310050686862661934826916846651965204215267921418086946543039792984004952219430124913355303682985275297660504581012719310207036423044932521776736796032028307886914871791970970972613404775025020871287385366993730633097410721792991621762262385984276946436571980503435202409896683777301469581832522325622114124138030894575554498786267085072009638769690188373386424711321997363897029561546516943866618445328804333237177094737612437812228248096877168944091379653541479462853471857659652222546074385919706654016753358656153958853169466559332612971127689097006647967696819914837351287675272298415478952359802619731716230525273655045328206618527171786443824952731658785897899009446261378497186159220244750068139149305859571469983972852463883951104057461239285108302402952659824774010226612427627863148599763550132317903058417657486716022173779638558758864280998904266666740647367734618856894146844903193640632244607402001421974342052492897792825838165978747773526270745559444340166910352330763139114327208723059854329026181718864948737332411496898395220120909178893818388232701623566786669694203269553234430402167109229055256747291810099271315904833005595616273002328559624637832413407705646792386414721541006365905087327577391342328325670933944553250668314814692903147045801403174910728486623959241973558089986052345831069104633650031848423467981451341499924240141334142305238138565477716413134156662045496966178974909012949723000781195781201778002944350192089343475110925946404897465082379117405802763087326861639646500454880800181393257611572055885657913440277553354571444248376585771112922482339287185206156543686921682231707976760984818944238560726581764001430683272718775912832321187053090673456764527026985395124291504434498153610904560360758286810198820514491351553708321125531022873642254018149284606332945382085466921620151061367388068191814782280436760391475569043760612341502760935333934046509924431129066568593858862319858422011512191675312444338050797210527905514495055754459478032569782014506380532022029382085431141402112307089434050861523601526448185321471709224631722548990398157766764183429327580179623490625853780109333873829351461855173254323141327337131357987049630840901113686329950135081643471244486116804283644110467743739746648890919180637900184093963739660910514578697211602023094318538564030021663003700665604630111619075479231848795539262931868742263697674441998656643183776072480849251677280953078275749030919943365360757088332822362124282954456203708550727094954119561901392075691882009519246619696957120992199872387187808174975680081769189477748285834072104632098036307319176031395801748710063654766132607642321709557621942227966788398190286810960674591574776852846372667331557968094377518724695814203351327213605415345705187516216116213588499817013237118661056388080660250935933317127490787406394897344425792212051507868395279061369007820740465789831885727894025880934466230455770244959902274210803535179375051136241837693465265962954044777789579991524120650170524564026868781448432963499029357442156195610070041128626695375330095416172671063019746399968147805173431586343858927823468764286475681739960188572084333389040048002573253584407177005317786064968453590604382847384215112928253571890646959412624647440262588483063873321208238701573236696374995453612906373219595957903256753283805583731576243721657064100805269491772896190495400790033009572627456565754723941087733574712477324911270457699120315099305849010206763847211011073113915491746905124535860603515483885359653337953368011199947981496973637889551048554810485905666120359501159023600078798111335475412221294653962366582652165427794957424722670571421359597837412055786444968982401021477392413234897401325773072335077444782332850737055547607538571320223792876960181247390489421203650382848937668970563974227177920461022471218704868554808680039399519242073790665937070508579419643119962790591987403191167570549272347570358683441699536031810993379847595095095407588628580530766335300905714158740612023641160332376550872317089200079069466510672651953092719425750772066392722850261210228649975672737751869719314480353736537311212131989345383111394686397629310692111826942661945617483349262089625294647615090273638225212702725441757557327428617849268983532908324652672079954281316153471861273786851582459673872139520109029842401256806285138997865223734949793158849596233910676179332214681648626285126856956715595353336530131459409774085629850449900926081637280823266263369634732856765891494040232888161050478635782348445834541665154633705599214393861865989104944630734566591910295634749884919492703615283651388160734615248410275317856230673042381577668067989444586387238460381069742196544699118448872202379642239393305372064563502128793789444658534052684357299860228149223309719229736793408747281445026834184620010025459623784040094391862412991572528934934520534974179290918711147176215966694549598212688989243888568340921673134899182038643331199536324853965504848508351561724251958187875497019005109217429352354280819085398194210260496189815939479535036904287406619648988721153289991025600682390730180139274528102642580474291364973928245730339168784370803292226639428000535543158885791809175485827681868204654103754898851834404932378315769126933758671934194659229393155832414304795174466471179273860273252056302257305383506643768122096886417190295295719337920823282213433736037907675543289789515618971552388488245859851727561913115063180094000612641481307049828600065361733272876700132317669892787429094534769769430357913968719593779705230676629582145723186946915697277598129478933896143758136576923794394010450422463056594479817493196450896921470481082063338696764848173499659179010098045015269506263303122210609117048999264993846983662671213145341047873079332356217749914233363037169950370436692685476881818111038615638551229361430523619685801121382234052951949861018502382713518879509343034884065574898561248276926405400387001202110194534254352572517621419888054551240514485081949076368677699550220265590084096300163387275194071139956066729903999100155811269836410515065223292888957679563611260388077374163779391741232848443072534864598402846658188823703693550270452957129847873061000714568800966391499193889527317760543363271347348960720330658623215653796862987753244411844925433835032799466606893082436402738318592324279501041859475075361272194003346205897740602903900517934853586759860698351088880460951060877972908546298720731125005519661063439192298322028358650677228203379199669055340786307459559389429469788520284849987702309354698881553827246174524081538431247779783966962336259317901004151265018008011197180745811843527838448396202937870547918840359899943208000893058798251524349900079948994612953842874007658449296148006009652937926880001199147666779362767652245974515725530135861009181528346674760304197233666115192119133238097637342251090679671264341571255827697083344209651477834378439934214258072519729629170190485789292138207876927848824154119094635788400287759982916111160372939858949021324271719178836923060232372459323731395439289317974987620662919941232872637135688825347172960183647718201166371218180378708603662854524953232954291552332791897616102483195219626783472316155513262234577029137532959042569443204827673740779818879787933509329131887400671400086247848761383337381599677348282197123929863921736894915686653803480513097025059018714136968318763097439225953647776577210396026395441874687659196873760611095261982607175991322133257541850385555656058545264942847440409936889346545013795461641818456638765546845608482950660960826845911740313306505452341287901752891538582286710429716893956758893976598570995129564609229493867035917562088673295149683646851755416506891906797272789748652980177632903725687995863512762460453242776012397554324792926606645135339386765723230656886111271522991009454132854128932894487558056171531971015349733751793163270390850344332023036375697888745812712333139098315724790586515779416401016134042243444500276160291326252047780931322228072269231956898430733643023227235532976865565880322158015584068455659657240266335937161977964837068491304247247670816241309514912432407277488566763225016726955670340192071916421586594136370099711420126459006268462136099492337867973728564597636076628124440498761552881779646952716195342132490933196054001667190912785482081805795243932979592813491176767304997430828422506893514769090404179756847039598899029343765327914768846736746490901939114256301009367518790858772776459034349393431449035109324429227355826443140880843901483578373706379036988287647271100970061462710708368255187458713078761628661033722832530653377276928869257903554719792502642508002431972046064109482033296303075620820430386671129270361507549803488184268716986555909417407937145863398931810688273162721114278818088209488388930967729011688907311785766642602164198300373801911441100112142107731420019604656204810509965272125480392086179535472406404965648307722085373641454744986836716718423267397941559631100158501130813355989643145909791408891653353057564766018404998366288626108502904128031306942972873971269153384833599357359934196189758090977768871728950863759465479463254969500761635959123698849189774790355215810311148896312465992975133510702191303791468285533230089071739940114295618229527725997740572674539653923825672575228297021870035363907035213999387278044002454293884919048318835346297934107219698841170026955099382726470623750099497838402163824644030000347469257373189100112321133106012958239562211107730385652843351142765554912329566739305993758208722432042770998344912034665142245082396666709934566240357397832523769733621125850331216127440726671920888383778881273011181818972121936900990132050668412007838264683005023760439968727079202013295152875829142548342679423673214883114463448695304731114399290642833000037766852003971591926435416860093216754719668452756453216515939076514978055815921198953447529514730769178101056064859292397922966317192404600693079114134276946190131634926662560687363323177852446783734767926914372240643214914641599040520377422251899572368982769763550686424765188996985020580014776104705596477555341443889882624170174083006054563081894161018761693932261545187122627471041757430456493324020627161110614668296470417536518503088126953990800118847242158207022977098831843213000615503287302629340932909364459333021849606194741171987463656204770628125255891833955756058604988498813603786087099237330900793180942693434627872996930646794309726543465563094489433760054806034658778979432028832940613917284575822902007520216148477085512701417082901973024173562975969106586387720544994691140145364761690060498044473025476536760353996762109092945422289779980640198640027281304179253187299804318294306973301170287083252822245184201061173446103955542461621236102082147442710239629530766849781128952490408134702678221044761487446160445578639054811328251511959888696617585903145562035930867423501043693497347265776772729939338453482101900627501051155951135431462176939521814751843237596652180050800277097554004023145398400204783131571848213992521291029045789325531363511145500696485130419209466731007121956194589854163602865140055368803834000316396276702317643451636698230841783364226386150249833941828309919237858914341492951547638118896605740769544330540159336726083426960099871073621788753034521176969701070974966687838715134174529209179700032284041712730203686316195502643681924103454444424862197036861863337191615092495395132586567188106396963599815895699562095491603863469088261696771794701548545819479207793484861977828801165727286562268515611765341461271396977955052944557576962121246119695331233177415204554517366026532707983267745730644963627728557700709142857338372884229719604373857971840330112584386300344195966440210586595740984226518633369835178800848134601827719692191122361742807095575526917852154451470728359017059874186731522122170802018836541489707621276396403994443239687804131762479735299532167503991162693823195613610740298303810858291139441528088805188842353167991257903819259276220959109769310962863447524204982037847175532739404018801417173066713150654811585191214424374897977974471633186018937137256189363872291496149351708905220231869965817013982694741229358633119991865492452816837890454976659977609565241351074092874063667192181907836343961857095058278437909990712659482858068350689446561077676235672236139897639085596233466064235049690204275788620983755627624139885731120963554912385107732711366250371597192013208628497160482294700023252699570320945861003250943512069777586933794653568643839016386193515804278654407441139230352921049288518570615371667366708318710110025075460152566865691748726450864927375636569289507624853469743599191199856454403572739061011407328084083748644260885668795713413881814852109448457062419268316753102503125868418855019985253587260365945850767582213174145877788327279910319363050096258381787943250338206952698292563954611633549704060074733858293511433613902439455772286788087120134561731398757497461559376098847215335040623997737039191753463531519869665246802690158126040696922140688177930275796734187708550502872559949916606756311548212489481369906776808264764811888525396172990930968505883319425444175217291950108795302112215405124459516557883363214242324632623077950372557680586172525309717337453663921269979970278155727815297598203799503490973281650727607901601235611992849574563446000098271101535494310447664625812853760319989827822889172443838292362819176421004068306565786769219493726350611727654474537720793130793090251648597008166582861045210533625486172948761296737745642890263920848427277906551705526758230592393800064955332359226932632347519598688245006973756280161968333801312705797722415865332970575358907442164174373884783347147949887658128422189709313701311521553401218559025966678003411502697610662507628322478991945979160283493893802845852208725179271486180340682095559344710902388434448965785127292542781741751605177104785576760770714520186588246239116493243033835033374345363203528803397979540226828741398839679923127228150037682706112044870072263633596897011621166806229685068542257343367587276977012806568191437936122205304675537073566669457199005289351397237183970682868151933929115138441102643031785121851053855944884671107923582547438174488766411464748659109705721180041071148906905948261288093372224500359925436047842262912372539992921661537313878932578586639415766271817091537504320581966277185564161968142159256804070992906393988755663948673095386931329585809179314383470488217386317913623417127569600789210748456807874358604365517687529493560150812509560349413867693880404416275218036064928693376364556095642860757917318230808255325504374880613540617193546048963501583745672111383063039419382875812264746134621895345238984205203517128886379989729144717623203483712051391792172489772551871887504153494185429863088102403438845055331665550354881298560070079430748639893176233186164808493172587465277491179798212697039031702328812552082378168556191471432037720135303581279860002036641527509713171991292333128453231761020642412141251241114167925217282554225867180699463468946893754185069578104339506568458767158061190634819584508197331145178622248452984155288663988940691062309854918545020033757559319236731151201030673409035888116614827569027416824644991445196453134525662878098959166122859204703425047234193381218428811717703183370835613942937525366103613048443292256165023582828248865038829835511185419785599904835590121146354294685001254001993751803216867454580591564729319666978238831327796488500716583454444719505092690675472186863261119729252493724057766163325473714634240483384695045734981997570113376863430793369333493521594744528521000110012618421302034483543270938575293191526055545117813672486922473086147368064303551836566976980087429472992724529343154825521898552346462071581311021121257955087022339630473516781963042700211274146727058799986544398648473751659135669028565798881739096639211124500705302740606233720005534346803570016207961117508141022306186589540307238217709689831340566702304594210521580924726420836012517023493647251177141683520573265528235753064696727017680364416358514757554878977172898858026646325514823203669314476191749470138213864375235060647142480408363074086085729740738208957821717202896691479254919735288801643089353714098829566597043382373384784017527376981424094663737609630313772236507694233867584468592778519382187727274268963981660798707714768991673034890727043808590696169057840774508841255274441703626805217727143705203000460473336450988198109173224325587539141360964085446806300223919472628740172123952085628427907306252709223275119705534720998773187316328470866110467337494456685838182922342566308543008633277365094628953653345646332471617299169306208085349144149122747013263944969187472026374907864004743510698166698847531494928079405762801464903456677142948074812773182582868128371873509332721110311670956480324757959641742588468059176213566449211718010140411017735924555378956020439244746045761087826251451872244511623514523952678434451592945708886607345201270405526205331140709175085841418677275255550835646579492794572677618656283045631765021166891381121548862637691501396308965791249749412667081502453477370738518242829651491189484583928723092343963926250595272809272336645769256580022911797009905127839833779265405404453382111832147201466019242017697209592785862843560469426695029808571346778731211348405226104067435631994386474144421265010765778701978675989327238904296775007300738996095133839669966418515417557118753424895926017703367937506207707055024582101509490030823657188061012729908542687785128537649320066377605839359928702101837780157622162717739003009909690461330688973975554465547606046970170436017466536542749337495972722151629010560721067434177915133124824576133026931468799721085189071733964151088633010445138151200403141076774997856997385409105858675648300361244342410343563067034834791946910985996216155049756611107090349304303039339619019106329560201467385857578503233246499590379819420530445700950242628487936042299669327548673866381194789509100435364598963025867106248487496342586790144438495509334591945962726020551208278528252977985384015129291584766424959613638250855001427602143319206870805181111868032295878231547380964878215239516803326916448590553598291835796786282859855541336141965400487474135971066032601430975083419182006743629250541722704904112377831625387476943523872854072983413232841989611862243812619967520043535019255456603135651361453441687681472912357319722481646190027450612764659242835967820599209835930064850757133489913538855684329415008964699110577334756744400653265646406300965641331163429293927253512009144090694250673730338788545168424961161713865717501570130430428176804804462929621429346459489133223743762977244727122200784733260811801791152525743025334900471593381428927114084230961694814109868539016320194694754616650583784729759609082793430581705807572164039909322459780515322339250288092398965362718498909315912193292151997733894084020932520184304330015184712416304429780310386695365865459749897439162217392210261131751137601868008915002420947159459099196942420129856149560128783968591207996626509758431756796489880369909670765012982795562616579179760175204901105039103644482693412228799334438199573550198487577597694982980925963930846499174263391709166183096544996792018502221720878602598216597035032575372832144792880947362578493062443049759380708463265656236088266924049878767774275101154474734088501924914001807792997398210087885298174084544712423884080573740404383680856195958207390348738191774769375295565938983990052083254403963104827262451384183026808157279080772278443541541815428560765654770808882518847364914250849852874606942856884784638435261693901234003216976477993129761925661449027165876668446867396008428371502476706350551777944928131592487192679029511826297088116865358508042866380025472206726054786106100019277642651924366501958058906341620810454216634828208689152522167056840748852138991449077135839863337252522887507755607469064393759398984636075451367579338030487763781338170729413182575008385462769316241136263978899401871025829321243483221815040692288856728213948203962112864268251182805960523010186765623704282335620247987980766740353251301628446012223196803810081400570844985370645140354844015727469917920434300723433315677707425912876499494804668737766807773083152554132372558047030369731403775556532769860642210298595694836483656206567471922053449701364646759018366148995893700964795117970640182113892495154231037523710651712701121204127859679807452384283333167633539133905777756920703658517482944359910067514650614487902399363821122476743170912167478517862019502130132745606048417034421551257215698886952562350895852754006115574690652035533974677749096443493040407886017252493443322578352961092262819120521765374006933292123465416193814475128976247854910173603966230841587553526917998587142939970907966185947078436556061085725454542843398873826577724675564584555130075258630560606168545940170294190492836252479939807429325586874462573432755976801818079753124682220449442234460506482139544830851715098116406187354303030188911113031266185951009214342828325897695649812599507293027716610789640193623532186415674889690774478603228983542514874813634722083088322827862645722151712172055389763780895341858765031624451039642907498560385027652473580293283220620825607168952404970626630953599072725530501921150097694189232331912562720694672501883352825274013718559100840719481611296729103933429155757777414423323277054563061480569425588985592929799713634715302621289453297777166580151746269440441009708082197750934923481174895637374474240623199624855225733853389100655580410487547765012149440110911450061556259071202192924159948875368294745723568762761725662692878338824260800672154013038367112471326911344062599049791599345579050649964032450515064928920000308600678673321132928213015287075384880921663743214459098569755549515497106211672134908611882149705175962000915647761336518990089384076949800965590394532809443073503935222496182052986084529158539338336146720401103978828543359590497086376853147716604723448774148350919109852244072102437433468083501274136869176563268353927824769872196776159367017707872897755873944949493862115766114815750226853746790655977656841188538215941188230669152700037990344845703883509712775457558882390293951297809785999438948112042551171996729717672539668306874275641824249868795234505447905520705027415104952828314659049425012993351801953030447495721939940543023410002570366152349502491744055179616932577252081484391127695571220591107779817504931999554819613136192664482485579966682252658105166327793604567669983522876425161848252008822862707637396958639750622600843521195297955348273224490686026102386310330650762202214871677066785852009402730856214716224924258384227077194382594273386110249413996981849370150302002883083911527328016656648248239725579043315895039411852835241909369789169421790424301253539518475772196831460196480605888592046710176874618431393304275039887794550981968753146313854352762438207908676436038336255629086073287086168910634808410824555430544706196499760406374084514817148298815000201465619779546360660725984760982337532584164866672123665970455356155382781292322124037278938616851298792415662523741223362997696787826290572784924401424905060431608867964362286747118751301362557973861557681033303073032189824668771863503527652954598702537608850756708629354221027841738651789699046761600322477951282692636387359053990580174962468447967469872215088532072209007628900722264451926454441770719623034156592026713381235080894726015484046547896229777892286683729793099158308313322089032553057060241675008299272147384412332602551307221150398797009008604244244321043952624083980951541082681849134813860644437058896500608636846055991185578918663787133220360012747372249525103311379239742910291097611477059193738748761979889599981058637125784910686797952005308669349881788990753563685862505881071709933463459638939380213605532354788402764142127736274795962328428424159699772898679725468377982090531608371000326998067096228401600356417319892303201255016630439848381433783481845428063308725150906294589684207658546034338713459073289252078780946952981075251785274918536121621383540674127473088367884647287764996688841484371331502516096715814685413283294635151010146545671405283293702622822673769657874996774469701620359903531641471849944214770266032780452427632243235918301973113489419458380994445711478799986144891877048113764941799910990933497845130895802036659732000119821240859089238934450995539517041310110070639749300989803765644015361408114823497841195148365344105871858114051367418475599107859666765346871018913734623452542110583534751891110631706823474013751086084485632663349066611572458713945508396190318171923308501002825146079877074452191837682440251750640304974209554658623501441535719681861723354269694096066394908891447404351809228464625284140085843367965791851008759473340493075634428715252452371540893461135641932498523045501189394727484373739309227522657594787683196725432078428508216297200544823554022930290722194153989386032810260794775254642327684918851170944560965461645176395870379011928936514136763935968347085396211131155575902092303529143106562143032746492156650733786711575598884327218833935333897239653248836431796632918075923109569483122928863469379837519292155685443765037991879071262096553477955572190430641489259874876192628778159297702091746154351539212729122665673469661324730085387523015604383044003402728543342405442053691395972581985000536278954615802159325174006594992739818797553497689740048335213583068452981610032894348423513906024084335804249421332146796798720025039258014990143816727284551069221551109668002377527993551431866963155551819802363646250907223129537739701034575456506428684739163526096312988009954549166811305837049039272043461349480953277638852865001716354041756653803604657374366970961231559428462925458939204137914468134272735579418654787577391108626557047902182879280121214130277561579486094586934025642264109014021251586080656646588583088236610944202069283270200621898765998005866656759133557023699663778673038498761329084117638581978327210820937249740704013500903853122612297905489292110946608385888744045142930442151022167471072758698122216700034203260513663080262692471055452133853906980097512639137314897154109948289092761297888166157499177292954060713929008700899815326728017353266294692776485632350620482944397328289622666004632962038347531781727144258669284142473533703297920376079099514043313667152921089172215439387767265858466499531399143933811039628482722082159368917805035579649837749714454523243194622687165576372230521616084198440355066264188182250919213504208033830387156904816823143917278024049117042393846279109883188275456869747477731316679108574903166798644108838584162911681737074163663387481873587191576151041932957353953859073810425736677398031823241872674097801262101129254144267181601850832453364358818276840810449833404275832771963551560785192752474790358100713996705404392498269231895743017385235028822581652904858564235701028938779756848382899714018153051119669918682028664046706077395591991480679253746846749188104276281384497712364620396646921097668718062122438514609599268034846574589140305959755331926693497032391840366008733684224262334572678110051260908386478062290912232589450443963673975154024701133116854549577596039713651430724781316145582274490131284538186731510260644630168128725778412515889551582921693066627115600065237273909085406843472861841798776313736001796244483554065441407830546656724080194347338586235837102044852668396570853250067055654831826838628829407752765853644919280535447925561443653072316081710555884154271657385086482333471440804288929519056379530422095240795485519799495461158691113414875867899219780585311357780589954529197189514339069637372028354973166750977655781147252189569437754817629645104454514595781629964065087947636691130734197277512431299618382641140129301746891191005686106845579580523272169479732171330023410924175928757825627328502596470555237826500351804654120970646589341932306143888735162740047440721683467361633642403437704918531595507970659211800701825266799763093021843339755986308838095985718395154593428773748323707098276969853750032550279220186008428272727772152879326783322813700564796584183476860540346640430658807144882776944974063016179947165898352735316411958687596229447229457857915217039493931663553426460470264475186083742291760916806256632381502896811005900102114412617872318199605136674869852447714090220192624755375555397014806043380562841936532306037932304056552433732162278691387409234225927947919356237747309109807596657057596771383405918391438256063017692902455933939140006789024765231959442703207040640906477969864521606363105499045698374380406249963755653334733955050949236438742822230604942504179846700221824538163877729169740930327812047993045738073722376151663635845457983805698282131291848426955940669417902326731055751445045668522436390045343303180758722562894167446455064192656476207177441453486918786432914757589455551926588024458653043919250001658391557252966973271828773142826573368306144964884784200042534059664855813196863141943314872841902063481294724747632961511842649500628530146257542959077743546726999928623540604353713644964625214683535493990176731302293084037086417521045736980356285449908626990878941302405138752026438026381796823325770090537167603586635714419245510287017741018104047372037227175910046750619241640653959303275072453962570984773747434687705481059745343578420634447300903973885174155017861484336183059051071602923477828659269296092809868110459267982120765603941292990993421874453008889530634812776527092238841188148220969496348691170116842029030204930016726300124674698966689401638354143860819512192832761386207085943151448610755749248256581813262779734552529872146530493223312880139438086432471150120074241405118882749599101308536289462930743421702280150582499095022946242152858799769721495836174117571760853955495562605002160717448258663144998179570688236218166149618422716281645919214832459590301324029141878992257542810499178356029149140547265334503321990241743862676176606842362116170441975195783106635881910209725292051199861286750278832532823028097510429099018701786757034320764289657954120697481377987602828855509451891064051811206917884658889414238718136326934497952004239494438090030903882231421021444754480518502322749053114776115050423099466840544401377801440848565646069709046596774093508445937890676742751926969777624419517023663449128323841918986051018281123856089457818036968830776826673610671603237664328009970614808536401916599987142662007880058890099995367899242649611154751478082536516606654087103469222212689361454112250822130022250795061457095344727056536790037048988613350997187744462623075491695636116856037228860195492151863217268268996768659926288952474788432706924769005227342944888531348894805800007345432226614942538232988406512559242017248862793354278763338154073811022158569096919102144344643278612291099103535730254998859465134918010231035638808694255475183770903304914062132497282043794936111540775088225905099953058741022186440583121487574615750131697829213824678783245059931235904829045922938324719951199376583723927161722408124447177240200027547222213967787678516623767243510659568850821952174428047349925117661119613017050841636127015119830775959174851380852959862704833753192658008751408465592916784836021679889682213464673571059790696459482376102054717510596565941842071458466120009868897445428301565274510906610136068631394967430952023635981000676831959178872897089994158521481411003930963089752750082930378872520605781043508798776464695989716569819200008752904920899165276385025611918755991941616881914604966763158793865487156235377548787805081080961160089716414307592378659276061705037135275665025292607615682015354471858744018050283367836347167821828931764700359330226150414342504928122144107873260109266054772136731150634637463787846206486082453408192234639742181645780959556954184443504453452834545231119882914913188229225218094045924300216514438623406540854365713307334716083135721899892091814452693398884016617909112987059650890747549541882710139313154549880969710647089462121560295532364844759784562788423026499582758094948159960345281851394714869376566721733790604914585503774709164489457927852585678604923173546605570664001996148082313062650775186582806882334830647549674946725463012986815578814694843058875354179993257601934431278489253789291172336866112381695150947361552094512789926422211238124309795497837839249118431070168157489544926747653332571016404654068994875752024726833454185364865431691346780932944246337059843423523970815471876673010636376401427221827994318810962950183840331644251525133104944918521045244827792459574161002600662448079743621150092689332364882751910449536835019198743525604310395255545985175424213138823366071375103285092456080405349294246825724053274660472371881767879722961792474180182310017571412481993641371939300813260759491541283626614914583366601854901422552217599625690865582111455725633597777141157449878854426264591507197042452483711789806752386572858637861201422402956496718803163278981073579516817671983295362961887030314471446154313678459008035674487192829153007570834980549307579200348039633391634448480416285922885085444232169282237102093456723338397373874868233293140247799882031382249395118067943536180502677408791677359561881521848239292158678326572874329780815310516036231612267354298352757262775336169061381002351750480488551217500154652516733994652149498499310720385857586446925705535339250373466149615090833025528913292359250821130714713553362349899671806905260757085341914152156765899359875791320897296571187373957701902567700175344134209950027172846076445378832086732624685348316915392359523346529346602525890023964617768227610988293801194786549165829553146826060163529909630670569278794222875389177604100090784445878503359170950847473479797104510008363266485746889669117378261518322368234561620674318268716551940169174903428773810428045165921957131286593275290337436277372563465236780095614468139957551618479923926883489608853207197698934065322476142460063475260847161491468904792867033802870014950314325870208665957308689808170937328132510301959311637630245065877588979455473130970214319514157737034636799269859491107275467050920786247557940686252138012979654026492089973111167271433773552275328931829518448524572663632532489138981464509340162938429989932661180994048048958707906980377959644208192898692683514767796295227903173013235529414611340195661813989976915883907154148530562553493096951125447253310223101632074541490653845335339255183630784094788265385005198222714187577881604238841539143818982895327521424344094934790772281561338247660899415952669965035702845000117878410795347905004998644282668707377201902804865191915708647289123390333040861416369260271713911721181700426935115860213821317309760092174756185077057587763323342312028758014646857724445644392816721138824747149208728961183178804847065795197140410784379141881764005979826201910837105915470368249143136429869914632098805423832242655382716549105329431869909345899476972565423025042307040894545670607402580716521548953279927934846435379377376100325063025760737586162068805437062189595227758099260864625749596766174129083300039982430334001156209642241227605738956991500974610048648545226887750919632168857971093582133637417012446014678622872167088410293628767489427172618712370355818414172911479827464185549067957182784744598522410623811690199750827976456215416454211561182423923764851187259911756323019861724698348360245899011250822401536636025090549569095096859745491299360650500048119039141502742522193563491579388831521360338570383979027591438952152201128392150317785789326449876219416792313333563444240283080895539092942350349842964180230038183280293030435008619370767771846971642378422912055143386146041451803142695733967644699272199473576778828203404206857889994684256782616091785103839978720558357573441546089279684351890627983647070542179328561390697483615828225401056566235497978090028024179216830855595124289073802004361931109693827894919061283297920388423364739491085883531126817631216910409357425520210703728103912783031645430154686192634737900305886185729450058347625083712028716557653496583006928224995539911833569093809987159053835054524901095135295035185831088186488813927728511687349209314530501296009237676338752629010034391626059030639580140799306244873381644650839547967394128343417032753918992778300198479427847490579144907375602302690183819207748160069829498170017367139072189321014419936295212197936090042019856531790961590345468416658967546864289277884169150836378692710718534549972682363441926049174231523623656670154918233321210588843033501481754389151452290736976241497341348733932387893413569830056711377782460238842061018845484114601226041831449052329264325852943597979641473755088730052890991669179648753975840509926504941850881505787042751105916481198124508124082757444005004707832662793463196323702300360625805597538512663026262466533052481013675151893593101066984207734463838170823826769893795753881713906337586447404239427867080542140773976997127491377385235788012234646095048209018698009077458382489758382710409497479289319531681835226819607759306945795835849581457685065839312516223053646013769440074817625400250615770413223310385913501989413177938030489394101766940068708007810556448772283350621811616541676530225674699625393744675974700012308721446479416169957575607870889914832399327218355678892629041549363924868461311116326304253129942133003489499632633995159560297456691695769751589268247889777894451378136338031265551553058158207762436670679608241340505547453973946380190210846317611678951539970973184875481304512267551351607104572007796778697498527592237633178414402545783467036318016057556953876084293941966757826312232486667477099081051406322123348031580830776654672184553885824219483629199082136964041330501368432458444969760982615808181345274628672457656526162340964764228956480754700537772968402306789534796832582687881739941321901670405109788212732215257521627934884527983945432989264080551003123171436115406685700232201982139050168765326219502189006935286044219423944906244954444799425205601595298677570216730688444143205124369494151078040055342175801429013312256597267241985430601526463551305726335644007027620459759604469408325311356616377140889732258925587270067207695097358801193182866414326991617337663718595253402540963046432002201892372368655312106911410445355881266361346833799914353943433518364028390014060328516370386510954966982861216618416769314701029002945117955460065847688348279456843735678837617917039094668669033568742540291747966068572431958245173789134048667361188331118683767388177918829901140222807512751650131613152639964681306012528132047407820295957588615844459217559331924205739560391869812550135913743326303984961295435418158132082630719595237603593196118907014230634522976042833613028845270545050058687052969535518891084854010636374625714352590116335617922870243531592985357938935232042136701987686412600237524358180948197817398990229061624104578312268281389328893829642545295777718570057496154194420182520640290205396372616488014922865120411691358328340379351909954978113349615111753364494503344955948934972450944038997701455724400983511825174729759316489521776131265968299451146211399443964315851034329596794003464405138511978968949351361170238120208288742490170946132688974070495671028975851711716985531143684544619997677319266948920886324430635557035985242872353185580028026640518650361409161467896165946295632789060162147291936527625523102035379627968136168326319063979744803172438120532109462047722407041486153569149527569021250994967418662272823912851566932955837458814485576932086765136480970085137742253947743095472798109162417481147053306874344105246923557154085844178253941890008212317941718697884826847666752621276403891923987742610970917582910197185307569918550301353516732719890888968240617679010654272394372312160724325340668634743902917997536344692574920624464334830859798143417451994136607223434262668539281922231923825747906421025128347733740966454718570589151369480016251700707927193730027623668131009596704344464656766855996319888490679298195821100495024632522507381401839683357280341431189599620736814180945585571141825498316954125525990078539760026501497589137160216764033350091738884075304201405236635745332172973184928338040858953280512219153184340858904494538949978317658791953485788360193277751512879746453398053864129091872500895960485364288224939834621066514946927364941508910338975475432074854971432506091690669410759275613096188909910389752270707678042777695684668346170498645084637573599370419460765023302167200738098678233828615415754355390177168494326912361053166359713032178736415804949081322430468509020596239638585973297313368100256681008517082648154268991389171002785589971102793098544868080975305542512974422662943269328646232284117042507625012878076423678043810319806188277920658724850395279554901414193220377291883180460034874259255378629502092658398162554569115221573869940957812021263112106797778703202077137881657288196429790221736693281564712520126586502750792784447002197768474158400705144217291653646368901944089616546719345752539502643481011387774106581093523261188562097531133697320285659576288732640947311937271368925862047324849733598478460522441667962085079125776796296497251624193749731508016574187352104490711258049798901815161349100432710492622159523986014920990992596396082971246939560641464661097195396802121508428243889011406991297076074484091453864573180133694311233977821318116948623669784578854441937240618747404713995251357074276303265695888023764854872298720111343609865727453010008787959510713993316428300460865776719669124924317922075016190919125153841815936636868215341180087497774300060525457541802255175126442328423601563782656659691158635888731633933761230820053332843781333097321170920047244103618545580862036040966316831841262677742401121122167069668819173952025048898741643841452649136789203514835121734993956765409219898724921066961364218069963673331843019960149374091384167360578156641128407260174451084897383691646258180409404220925494493545395651496696624766991486253714173135753884285074368324190735811746732172459807862945996060856223933523159360873805106953919272949281762527668674195188157179524569222194804890479827789490988713649726227984555749873561338672728503113653875865665726255356166113094640039962777215227635098592344577220181710356383534338215406590497119159815785478301205040690080313546300185472798541450814284269302809735365207946286275789126967077096662888961642825713183944694588695362951579264603178832183776273796889235256839260303545592881471534336047237445826835052612017537772554122360467126669279415258398976289476095576169122741418039145545762286288201081276980216776822020958702073613775939469590216820856699208691136744177526753169796409035989795554075631125948875949526169162901296544409842573490458636482378309029868995476649906569636685411422025541570019190893153179656760846854077507394473908322351085482206377550458965136759918367936754593488434771787781162480203865814022633918571800631425158036096424374062816014771198293464401936763641327256641938161960429061004366330328689076122102446957775948831281633927735949688529646933488363652716629806474955245018391764950382191614561729993147060496360277211822628484392242347263255824223124806514082830492140118993368401947597958056961377911715157801022605057672070257031573843645512309867713231130103531399233431081553759829048884296911252445535271954517235287505684817324752807563080268001735346385000877247236912521875599535594926156688025897643460574398536935172973292107955479704673500071197076141638370232288741085162476672602633635522215491204541043278905458022905943462402783739937617657189960386796919843217983862455941769248945126774400765494368735752460694544046898922595480102080817375758294138095581980065247523901630184854317035250810792540023766505145046976941996699610277314980828723132412609939903901358244897957191122013868695226698617670739506620968950186214363760696137983579652720883998927817846088923865661724682351104514448423403709322513708853186131699461911250009687878786855050242300575571855435468791343675023828196659301890559921544987167197282995938528594972606762111321436946334171183056058383351519508440631473760393371331015691878155098940710275334740655935221138094591874809833566932759718934271775527488256097112723394858989832596010166617979855934661269698285977302006218787083836148955358586173755656342073341576816546553457883981318416766941670140826995704000234144104831577657301402133458447461557844295533529074385444217590890598893593517462026172253774083316913125621866968005694338623638548359583033640967831730733945263697899320148082892019300995595288715059218605801387029246173155264845140265212263344697882324842121525430533308452584069292370571316762713036473017030799598749460897823582831984191296794345747833618514064655395487013268982850467336874875667053981361268791575212089082735920832719534707058876968666067160718279575269732911511843578888898267884784270846585377563195613588862277898469490323552646691724209753803475775816255282219911936986629735308472746813208558760109562801402400173309721528681740850294255783386198227774082662684684689003806873614010366496357509771617059126366102169420785590069878497912595391751360751652771486108207256004767352639674721811279273013382692080014791821922142371522209539665131853946941488289894073936244859035544840412371306980412875511091616524801904562052324400390627586346117433450654309360279699237556696280102805361230804566984331699565565953755959226327893403068710544341032495978013183263718546464565960102212962063100656022210048282067271314189256006866456433963100013673193016935595323256331216002587164652986991367053710828721326941367663157581189407830467803549494153745445082976221921121152629337694488654144414327634536543524401992697618305477829462549098460528310036303342759786379004817173979186124663905547661170790245934435574793339208259285873017350687824102561544960361818788391231673987548642941325399036187524147540251074840318676627944393979373573082583720057837968385359849833382715168525618499635312860713290556934273549767449443841339244489471770069249580449128393032709457226345875584435958758522304621891419022377355801062792217684215499792855030509733800486609254165489183795802278722787370924907137866096797320290653465191916794544520330671185104159855179700290495355320441644664316805676271233604194556950398544273532033573958253652892471093400305734398243537804807151286389599429051040451950674847437808473750002161507870092562103038934879657009589230357227260409795176596999465348269450055805897046282746411588496055814731431214271204573063119512585974380371548784729924026013583834018288293776164818873086930933659572087921807302684617036184686333782948177746880261001542337510818142594735218137365519719357788534093107408204098685597285372197065284393687930204028857265378396951912978628655626414037766464763021058319572108038179198186417763012442822062982919976686983560321512909371582451453725906417514957599081201561583516314696020111754937691211043595270051722743500558277301628928945267535801663743787699604821294559524960256921914555411984158572842300034119574238891185296703876292835419423655049832963312958069229546831979221240168413762690886524388672631088415094012282800482698508426689517004261432837548083135034210777712483332798553491406488109503327866440266529569903412168912925996181581508414080113958341183778357195395854865725214178257477854865735436354581266007141095628950822810812272384183029237339309029027486698882673487681835842482988817431344858651455095399218981093104289739859529991366736704830529210307924474609687039899291439553418073417128623228587392872241260185140221472155008604523522745469768423568746711457190436030897650480308045141304724954437948508395534057835080916129220290692117906831528800312884565853978304160558645470224063620222640764382846622871331243437824853477905055987530604930838090659025951989916653225759476738867892901530581760013277290715165329193060959535021006958512341009522239514625260220511617831201062479582445314887713997950250600701402793155982009898469735064019957360534152222611580433774896690433850571599327637859253098427712156981819993651257911404469418694760010681726024849141740143667549868197394668599233864262697923125394807218288142874739138377532494247739591242903864019479153652816848237130446369168358332442258982302894189367365266896997858596109727023076179918662266970986734570110856581446072137615348100137857454496154740182144602098571318197651487227351729977964206376829843976520309172340008438657114970934453732961444371309375770330358871703344529647647221109253705873987821716447379046251995838635996820132070262446531296038902590872006226481234011152684306344511808196798318566767156216920192482161184240140311701570406628842499594536738826846086719555605099455988785110402711987112015140552207659678248862709573257996771220727669189412817917069201120704707509639322005370768214127184317375845901143039454139639061561366537401274399872188427595326608668788702949283496437536668432310324636182682732447239449139913278733036124208750268314845446295376832824545554213442474654724363165430943507212550663935495693379783028050743969481168699539686056437938905895424444203271332151519552387029518794483754007784987569063462490160277350576351227411016467520174654542728387557135511038429500812289573258579132480080078306351894775479393968518655954741644164221651884889569644621929145500786110807262918213420661068180549106909600832440471510451201345130556070815253685171951101872676800964458670632154485577188135315312135788386697537741500797517676578337860923968867993438508223489732803006718207553124982300194191131465552672178988823851818199406191513082684567000162830229294010838130812230215573335779705001287843784516634430453712052497411216155092170528912854753231594464703731644930612185615580205934758353633329827613632801969770522655311736850338661857298693741967697337021827176634039254084486605470456100958825074873873597886873019692788306103078161298378518093348637576485239121295355133255570782696053027057809203386514231258181250800809284363949868069938061302715417046222263418227172005048820866157691181342029907545812216098795186800632724123825212097641910817740662345885244208489636261179332574111875605622247221780318069711059999450061692618459849420131546191078738528861781935456665387653035115812508949934446569999425492761829729909614423886895809065012131692684792771659806641666993844310771514387011647578442486079758108461478252784607526073890368370060963810127052331551154352367116063848213989938575226859804974103440098165997942366085932802527742829757735585404287965776067019850943940579601441048670694378300619334862387925237635318251551034584832769484611191729308750267888437545304677684948100431396392370904395238162885511151019708126790455820628197309702545843085859230936582657560648263017142630229837081604924170217386981300488535719750777431462287616743407600287722189936526001067217480988892795224958648730483497798210515715304471384641664445250262226311317739289311376005660756684917015249430336837223657183110343067891108200654069785072433956775562238962073899302673640878877923477196984375997080612943386317784987071069032210267295076656192970714246671279126901963327754155850234150585848125357016957964667439573697800140554732212396023577501725088560470727267930936583412256602668485151603149221420373276690225635530712905387126948668786046804192104420294341364306399805480224085354224867508716952777467878168212423730429795442457049922201900696941542535254443300674631290795546093677922150367048087159655807216822300365116036790865609360551648140023931662654939795930283418802015339126483887432032780349160299950090626005070146677175204632288836365715258360637620895165796464609504011579014281900094919786474444317239887137789405532515215739367556288032263546075460363559529747784518925849480206032843641097665470836341586812459382031416198173037078929087328706481097006112216920508943609093176054433400746549113677832407900593407056129167337192064371395796720430561950662927467887772818006134060338520411304956887339897346698934631575244156912767510014882305429126785101794676748720992308364944413582474567024237673529429091350987768390226993574034314192815935612191370735863733359610279238774300464826496364217778971404998734977714482148491227190790397099754375055619015750228084279413074085166157841429621778923558119298117650245378549462847778525593657959162487196607821501585321565455323626428041228261303014134303723617173559769022863197825781318107280227201075211256066022975567423621958522105894253394785154623005531449264294696928057522395249892269323396354294232480918757678499531037761670070315651680058995026035103047210533921182782552894542728962807192814252737258028106247334669421709770548158824489266388981619192405100370251692801864122903593599555715866057656103504757103425618956413005915638359767882438893356261352115797088414410878063456156837854862103941707193650757802724480388814203408199881755709614578074017025417801134385560063179015196092367822572107163448363779079107571723393240382047255488741002689956655035285761020878833423440189715661949603706848483615622387810675108371991148652749858424602952931378068990636842168076291421396128419884510269664523028732373406697623010337440704708444499643053086265339627397496887606504812311323324807429122695842227047910814266497081399835909049922754595958326980637995480365403807332647015879829536667797004271413161720952846583481132407179774105931168994259618713218204391939594721246910951648558234251363985162242017910018307795453315044307277535577721395926981708543264205295309238375797122937001882392959317670500990711038617616072557229228730835256617749435819829720614600513205858964205516713967359363384929971272727877146874689768278677810268051917606784647909509161401871125656187638523931484149912374917843056662363750367777926370993429401235643784139047033077940418302733325848067387318648391576998653596403923505900806074611729843013462030114854027864295157489685064412671869273892346002576835301216207664994908242796047069782712427223998028914143898493788907200610594705334855928014848179986794647940944911185719592371431590716608580322622902149568580846284229904119069308025772511994606445271727223220017461052251670326295268468943156442611904142329691956597986464421871227825700836055782503494275875747731297650634727638235868654571209383820547879823415710706069827834125535278097360153429715199054280562817147552135475516125362669510602384709191807407901248202002853505994556370732518087085482458931971884821273824869878222852090537740402797141796830261505263383894710555856663092147826207348385382082484989655563453944172899019056819354143100725188563369038999523840809138081355232996874650207700094605494989521913716138515192157562882876930083882707960863251062954207366412109863141717726697515534638550935862858802899434094463924624580818046811767609617908324098051203337950348516199040899899800625583921129612013178670708472277480530317585566053405957609207242459932202229770956952819286992162993745678005869192414092799055056782335117410632098835995008186541054470561209184640056449060510232332185388958921620593365270440151255965825234810838011588157579986339069480570555973125167433283163576286865178962778567298099278938035934781593121721864394740748782834141208881592635886801129032835532693281792644138920084130368994997915706279638400965235820922850557759605539092801147519952567086255069352738493200173121516812355790831879958677444450821212200363195157707415462747800924876590034047274025584653686150996846814861136013816957122833615874595554650594699948493957888965867314931701633064376066770106064577588221864940523137798343418999613641274602930922712033718441068265096662227593091814164401396447772464014104921662009533417032760435133435266173846061308241536819480769106898098898903740784063999233249506813529742555494106754828852588843894266805115048340416248816047582145852703107199634108200407313321099354819415663096212899295823331382241532896465444367788407379039001274381983640227727126343649890537747321969220291047501373442273062938844422524688416680905527623153289864571045879619657972262767216486092833451482559312094878846061372008856908420351813503413071022942609145385241591524891357868942895693724779998624197818670453366145416515347810379533709354895747936424534899026029893139213422221165513513444821794292993517362175468468594929429058348359351294652103822739696110917102025632520382696128669679150841982084008415073953496200018622594054315311571761327897117779351011826202358328468733576662066543944158585649819790352534549767325463357500504076870623370057627963705115214156251964817272596740592658075155761081319489531389538721189882015958338784427986569048341854259304430751700989723395485926077584631360428257972551273275985778191914985986956738798718329879492561564396301294823148389784487634087186755261369233363068053704570729035008123567869662752374650875710849292867866115203482207650629320431034565267691430457938141570686469039184179152372925370721744676782516484158709712940673337386181888181624025694302565801168865947537589101196649150985347841221568401935547912639739886488947635425565434594733171588066928512989241485768902548851356253254636086873318453119435752516227334023677453210504381468814492159635488803380184581240585148466801656971485398725556581282917830948586295560474793686493266179037761598227333172503040771423591172091491758859514999081368675703306121538446035229589942322495258281865981602831584201019159097720439472007398867408561503231558552720080238960835991568647180581116921182178612260927461606538094656944830367070015701424350591926950508726614069168893668098148349334496032679161186418022324746574586353950038472264114749446235916550918053047122773752429179697668474426970278985477991199377974607705994203217989287646273763754102725151782415671532675171321977995935370756930297649229735565733877861135225020145917208359593714136760124695818973325229929253315406756430716094887997115558246600079333990139052609126562671360180560368275853671479623067344404461436853651627794981024480304221110217092273559863686934820641051301620229668996266929959970884146148514137720455638768503518721079857285883596702619430178489499304249858080596535638503335836862043876741510172268319871567510351386414442545156934962899383443062680407741835117207494147458887937450318892972908100369717780120340520635845281177593255847353872129365458481444191829929013447395713359180102723506687954770845997950589279791268368997351095725272042677275773706489090053198598693815194616139878950081076020669395736687513788448674211085701877208016482921270364247429891612656441339310183607002119236944791468552087053604213768919451375062809787376711290176657117684114637234369713788298687734471361864370389553710537725912561438376349201548847567351322579125133341277546248876562794809970561966190508669754321017311079638754889522883133617182156718330771773005671542250797439390947199676676368239670417417803905432967531300451401984846534550727373863788517534748299278411781936193160262179878087459520171044062494360078836335333937944087070915432505808244579460996725817284513263718275357921671468668791509540730825863999797252316556385117292661737761007419020226126539291704367854408049082591937947684878392359835626876110193819500050125077010174898390662624960609636953442244126563799016436352573542688653440644225889829551498254181968176893348633296076314026903808902396662302127545623972990834601925970763546584434374629548967200551340107833103175964613656449068881264750237069327612857394868188155570789783634365828630569795157120489850546089547891531701382457349943252908741644505352592310076731874071439125817494584882700430295329777178955045738112736667063338943462440235204354585520269707274833091317074519700070601641752469602317504894853965608250162215050605533608002784403468371813288653500155109622276664528798141686915341088211293755932310786958139604402085091103086871726430319885533158770205359461483492612628057553858200093477995022373421791263691509713583818408882795486651423238155829852432934846757191211920115498621634720279344984282519514797905920606112534225675366678659453730346286354162133712721789766508606871834576989357702567538316725185749091577758396721888756634906978093843568535256871208650421177977389233736701472486194608413471360541407007491637229260449476786522897285380152274505229194281904644668587709419099313613323343157112498753158285872619566047037118372558657568403038662346762310627628171518170879315345429179980558424672734262346403539618748538998854677667429459956329990651229620575446250040824206378737013509517503037335898167545367752358382373650227032550758588855713089244494051531975624650304750602854556703254501547679831354600297307476910209237889158361975638549829677805751454706456057383009831666549532905552309237868351898249133869076763420656338928257760866968027360327851605206023153187562863535212848585740938911974625792787958196656995258798564050248541498179586867193128395962448469689970942432476053806846717732726145584990734900628978279017216719245308054093050304085707993700598562659330020896306908769816150188758960105397457280624259068637413772443245783432753367922913366174503268670092093019892428360143456640429221131248557954347471868225345002005824599675527002711927758326774278721567396537894786436154960513576001722241903986400613775919849096823315797857938716660774018844667655102027174058898473357437542482647871896403359491576294178744162402064106536925161050807299139013369592968094273970440228382659703538056646831504628825091864636181151578985113872538445527193613174441026533819812473459539792990370436950443149966886889635361218341494673819172711281657410682901010166848270636242776534777110646632734105577036283483902485046331914752214354980814643045082579798306431128770039006414049668832260424485102233429530407386771419136768286106927705040143492130900503134021280435618938435203513661144595226928363650731930440121949046486144568045485412480605010409014117607720617318899097932393304317506488127579194604718517507025212566767179052421533126767350494746233385156368045368782019009184134018851380062846381009505433211597501084426753744065526462879902278812222146649034311705189677178432727744759429422041745811607219784302768349336241898435836789502978220506171356139149642376057260586675301655928577930300108969038048418892601815868491846303677635183772737892388552759878730053682343410647173856319116372812338877581326170310801928759673542513065276262779991902721573234615714634172769848515711183523758389232788167801246427043848325894580457655877544427431956225431829262935065661165645188508524612357950081335014264218215852916010114547876565437624685020683209178730577886605854127554165084578980080285910894580075853405722738509472200901585290658330960927708367044665377970738242981465109651368782763090580494601693012271292256095527015892945501162787950019823269418851300306108439078248910273415983762704267362371519616814970549121733045193000045136299191083794603202476018448695842948156987238476665319249863786682871544567789993164495177835304425745198752740223394117833239001549368760554777729228591538174565686813234678985277542167218794074962009129737374402334887461675905430018967393702405766344055840766869033854451371836628377909966624488315443952309285639957564806300298883311753583929925714046261484056404144933867383253076041951975510411143159999541837240029090540440730711663126408981784708160346603315405787487806886339595554450564999005694640640906907025858348295549626483122634212721026470536334568527754447336916030429834517167291839790498394652624541513494609595768918063901168981862941091965260536330551962448319922963614245832412302577281745847896371213985219947169529628333043874668466707314242381572393272063679903589373818445493783748807615980851560311937196402005341107446023028121114448855438902264147318406983917258130058540276897736725758370395310598012773618972843368585220661380650191945694838070935780252982181020389242251398442112838074225300647341959113469551540298886508216043538665555541803641789852677429857893393613445183783856151696599164069135270543892499302573059359419934600513667361635844395007193999264770008260626518654292727064017734179234661822687049667453072024242932974409808024248916871697272193753265363949736267239263768086304662107486641029169412540320681600527896372801238121414322970350476556175448809977704409109939588023836204864951530682923970601447204615789476724538409335070201343833003626343957187547815817339295301025252170993487638595358196864906410495663686978489862845131848102236940150967725078949134211200818171952859077422473987512264762984672733551834374881016780597074943179541045619892902190245584022657516287537718537410241116492670934329178498112651550168016967531768927441017612613338498331698519873649210174930456371005201193509517035514192895486191528602073407963994212254182366302254559483782895620099483434309497150226104593757257618257911654654282428690994869627862099132032308761629594482785395350276278614477024858909846282541451453966650968532778617447164079746661380731543513546414460585038424639990244390131984351310918645767459907200049315067157902598085323672897823717823635238113179961620089870948725991245436230944197404039547618567389560832967886979516509019564310679138425173141193151612012872029004108368293225896829616150885037208196928953768459593419945974153857378517706613971307742212953950446724386953045538440860371529800521105513104873241043845264879731493497149751466401007213646176325521212779124336224982581247687145241195339027216279481843765898818406658468863357842217653010261160190395982868302932751977711182190458289920245257532884892368893097079002219151782514077780682328418945567968587464027071395921760776035598421068202313043116944242323382851821738293516699655942472626080385149485039019564192215254489519541877489978816801580930022725876218817371229221503772424510961909916852663647615680736963366294382862101637386888684467366529951053700922873421007149779902082269022463626230829109400979484689736505863377739874345812743809339979985736872954552927668822340345863828131946435835888400590798609240108135244142223928719193649211150725947106637612243840798290670783530855354264045428167478152279906623696694117242637947048761679832139961637554480687663324714805219983541133222973463731759556635304794640863190629018847248825561653835855042942629995281517973639966345146471010960521108261437154843314224554839259209027247777410794228450061451012214572433561320071801465940043626689204730198566918230673375167804641794763137351011319302726771277138121931906497167680349025911502544059842271093756053963849239793494662478209860056709614760903374738945879789336345189880911129334379955596334174415592867329799983134789941955894838502938430429641978863894896150030657665223666899529714777198701781006391001650470719514436289754565872152633930559048399422493279093586736049393285662345492855453872267592094461820981345267310289818135780129681709636615893252603650268077643935576824392452634426246559041856392587011946158873726844369562394559212182940996232408067599462393987654455840550510916787491374108402656178183461079873757980821090504531801249656136334250735442573952792713572035577742518530404390611824948735003499458322519892103430515506722673463774403051490359714866128179988296258860738044055442057664651116825337533168618430907869493035872669435145244366821493401433301575632867910365695092395034806984636438318698454289769521086578755607595727783245107633368444152245439345478785628469219761355622202025883859360903606944086077421459613947924430842768201160010107519890110417545421456367096146688488263230767886153865980203993093849415825562984282976245901209662960099342792092516924878219539990109040422558045167251924838725575383981624734226344191772985966099666269205570199242215006904018948950686220215753452671207511132616709685702527505952798476544301231384860298333246379055135048953102798315312406532352997021740428943079860948360264561233391363970959732966043973141513794919658839351057299622607579183440174239973413798906007103821976682208876364924016831248078788106713860834794934353748356647589748953064248565120072691409901011617570497352865726770466702407073675664539873390499412040795281998064362761902697162386288222188114386826934014371128435726136342870976304766164509044252228448871264307483824625522867139168981708065213391699305543931936214286954467871974152244313166189765701884244612871171621146927263926469472258811024989001122990367187957141748936876564116684270163048559418977850750463718486321193510489856948707478243200947475219899011938674978518960885609391025334947144659388475411115590433294297044618293194977038604438576906371489961675500210002570480874532356700070945904468673484586347537031361539323391098709017088875107318797271561251904937692864033255835669964014512744308873679875989267038506965434306208169739908206697739244536019420988642206588936778477544451014741051804547056311457472947497261337102150372791658269357902189526909093569873437867703654858542601845515758187327432681526142167706929998779746405017767867675172424320553046951968111412257843507773572446464539171731996566830638652588271345061950876470690171244593594500688680254160177615593582449833835220323249951116206224313436198321958613850578830052541464562097082006136783413758695245942709132148554883621316060104908982699920118475159490249869745488463362834730565305604114114354779177409625254244306984345849201780708421999791285210765346781477810511199309070044317437387158392271398266189649223859224312054095095498158760846838832799273302903286566307411916318108405271498204362074948852094006914100002491064606245707122844113863467816693206966936919411288257422261969156368701614220423155033992751278694325605371628842951024427200163754402254458498608817587429099182854101130373444209233794214126081908227462168521851388458796439602911377109314398935831856799230617309374290445537186593447710221228507028587037304279712075523463302320929435115014325912792073807967222388492200169908480174985001616329171892644822728731024100492750279503288604355477243860556062383737276905275887807070689266077319819339229978708661760268114622154283661606244111818512471940066977280844030478703529115172324010430732861865911550667469300860987871866408779745110847929582212188194256033596280755729620148122961486285529088143489371861667480926324587886803215027305214148291097290629939050037341259366065472721564028659585889523989202493912757584476796410038006411383799428097233527185641633335169696683190855040477523446473663381984148714645729360197613118825701206988502719210033477620206877991554238805618818654483088755394922957724802312091648016810015851534432733972822108221921095587666089345560046229467502970499433584826558445548985203334387231010536838230708029861994810401395643154496593838581588172886869679823108613224512649435830343120870058914281026487259086444146690178747839620688948446723140249280966153068063740214959216357620406965866003582687731301777392442575724550433848968664909034908183781166262384539573933395607001728860651878946784247575445644204994722522906520420802328468862509091067722316227788075391822884121071314072969686905225583398882827705372030085238557503901376641984321662755833987378986022144114278903812465327678263559280235858845242704942470517450423924871011681905244039099839758956535922618885334731364592970167944060869389736126519617506970294605816715769792132954314851052767579039414093992028886998218610147404057072245674142096664607135610655868581953883951424219754893372940940144368324295857486573814954036204921404004238826768488202115422658210779246418305795160003857188980201756657852067339765119174113643787077951749217536378456443564425372607476235493325590224511743608232210485313225398299222881085956197228189441095866442537201170940426035089640090974304671541520207814727588361770189838960260811009472028073871286412704719964250541830242206769075308017967767202376642968879434791416547172846312142403709959087644616478340713172743807199028260156395575647649875011350718453087200217754198076500399527703653053008114774251568373916885256593976118540979343434704679744197774634345576493129311880896116265892612030319576037253267909868855121735424622293805595894003103848890518759486799390847444084314479485341007693265281151739951044253714263475310178382537164825650964202832622325124992558885636897205763120339211149297850783308343038681130224169625975988527757856929622275825500652283145747050955706010934739426009228109072939085498168652936817501401150945257847855313226263388243153409406646130575909395863805346980108780175949219528970191165483644910316174295796333179382046676480439587951011381166135661139584758091932276238815133968498956362602953792555901962970509635838635239135351273963870587754034104209749723759772170682749949142630057783379964748359911694106008630647147499332238241695366391433221766767907619087508503170006745505538848316758502232880255535048351947598191269641695712266281032626465213333425479815528906394895779035895399745092540378809371295649520761057007759596028347861934235260169082345859283095726397055985909441964798187683894750281417721830096175229736618497335259558561532834328713567897371444201220681530809079455319081586524201997175641682956152039728591024756149027802760277621630315059967701839793991396326989339775160315095315591226836949505428091216791299494286171938987307157433091429061896986412621032284841375110744986244051810463795458776837243225264523356434569828351549898949658537306188388924491455565811916555925179512565174609285587774039736604153858975253785392509942272996067948025846733765783264388638375073550392336255925581951733021497407043273843085932944287406933216242252143316342622015000506903626096699828943800339434057804092246553476240203381800531864846366824481785647454803457032824899983880676651366166423410072573302117387845274171205346594304314789753417738141584372772244301316670520252080094320549820230036004780233063879845483949915676287321676739942050818409192432008885136078834926783240162317728107649946768069694666620879899047167083275099099752778511130078216264380693866896789752976498763501245473775161714481506658698861661633042993589351969478012429083789124797546346781590118320774793571733354879753507078098340797166646942874242605397954006948550064876758361637493438125467225385586169538614925261999510156085225648368434394473160565203603547573683628135509400934278603849309332927451240233213663512590704141373345964706734632264785394902844035747363778836634372223613547515546498762285071559254038117847531078564359234579270536807795518341185181279955761758281317095698438208924024184067349270609838574393951405380618592967797513009012205625951981826479180825747393332305568545860024130212552071611984628268842240336707808046273122976611166498285411115234804499226702502540309389126442667527090320963950167692287074708167894593039921036787345269565329111792427494716772707779846447894596548775266251716549200411731001485442409479879206477958546784735078090298392538701345704683461660836776729240829967164597079657475689414341222183671094208509396799262683282622601958705693845328021873268654656177506785385125555293227453495257697372944361917151404500633573714878462513448185572352692704060812452011221049724484939808972109891588606789330943788551586056199713503976333822604638506685016516849209114762056358033240179660716866734621007493872124825084339987674944656917943094656735229340087404844581885343828335231019756702735784993114997274126054403106040233744318659406908682194531269649068775742297606580309000091525226848310711201537703528646474105481130737920152434337121310605456787348443013771290319025442962388684672377004605680269213668812519968665562847239284269222748258350878980167830345816261093202916136402178220662416380796693914933654294020759224340869584672686780469498546743022342079967454755288021395155835092624136379906620452927610725770765361928133178724870237113662103603585070385274203517994015980999977791321838126587279143566564756364545418297028196408168390333123792201680358484730861960952883448729160710915620507455057025733427675669841177314779369713363392208250533624704000892178132523800236140776332939959529388991058433408154205571860979070283824867502076870565304033511137925376998839978122750712089249269289750646222654891907392333994152735797436520800088290105226996249712095038293364565519102473431274261138723480668990973843117454656605849381391848115572047957408651496632334656623165778382982504507185245257742700594236971508569227786491054044297983103490001202245136989730713820023561766995805106721906214212149924667073486358504312515023698833898274332548946008741849048637089463543835878974613893020700018354511187843936399506422930478826446354172428748797889178182864014467021930780901710685304850241489283422809680316398905529984405450593049083276988187824644328800896868343195586183745908573247698070537239981161524839677879277494675080394256108483533560732872772171211488836517448754242407894563411889865900008737879842671235042470536988546838301236990905648300438083252707951638069642714738499427738816077498398221774130573013568607342375189482626705686639851079243347418717191568938676294728205596028162054454474317922743359960635115353896823337023443232780360173784133182127579376004839619060477013619496596918778545240806256328738174210871242489226662882174222875337440133946021342609156200520249871920280457865359054017870791422434407019528085493759524666156645120768662746465774338769434692385394625898999988103795704640433259125851850086077989532356233363681972929945080729588260300743055951670652955579233040124497641070025897234794444809690131618609870694320971145762487591419062940666374172945240761465002477084661223652628627232696782508005985000513039403389119130414883236256707866258670614763218003521778244087588685428295088051094997066529996545484232632388554361270251559379308423785953437245659724256988406679565358563061464504262872223785542599549193379815511692662141889925939271070841998539418648044904502741905158274641389839003863733127616798551399247090689640393372472502222120326147593546947727170083896429710672487600210990017491143321009483817483142254632840264163089181520825427180043147219740278937851740037490066548780817459277482238501258577740098306901401070847323017400859022670058748013575601166069117250606145309821233618163284044625476427640547730693551018599459838945401594180444290309841471643821689394567797551068343391994586042297055401594130566891307667407826874634838167656854829962172984923233869247191559916748884887328291841686623445240031221108965459179341003450384546882307099178622099033604643139522255754930064655966581108066523970036543264533516476800926591866746607240699920619292352705811098726468234114340997318275719878825793673365949823618121352638698473114306881683600804617213033150947068378050840845437620092630630179210578630413934066503086805437312038675004813167447087943820729384176384421550501111205674104295169212791392265707246086699892793478035602800216698370387304250151427162296913486514403965374951795750469742873059936832165447433625574394860169726851002558604745046973547460944038282253258249516577268556596772200303852871527515215346270087995626235107573666764250780989955087296159744980275400853064361171922996320434272827576916231309761915105935904318560097522585523654271178881773353022967272770608600337049265160532729502247079556663641610810845952365327353989747265293638113078191158561579129023873164689980094951671080010486392441648949439796056351426492163311697318639904906195898524138140573439239065105995853486867334479857513673873993766031904712545916354435834723288126892354476784764586398699430036245798123598379424319841020893778444764031041917490070806258776519815648358587463216269654007482253598967677193159857626465797558782809495704371262340600535903494727619258196939899377797382016080390190268166289018085994764698770718658002799442105489884920141178388695114222518916476789341847315790067009167284729071925044336370786354231868892613635420761852448502299231192314373623611726818871329265257557685125451652042457217574770284209909230989188851889427218687692961712256041153930173733350109661317606411222417797698843502019377187815393080871022728710776165464373580115594183675450606168560386462366354429237201190867974292182400538986073783486889298323115176184640792284738154081054380971144161275939866476704126984139260831060715483758760733203002553264347646640764520018577396977415319157807995503142572013514732672748554072069843063759700372562778402384440134693612673419015863966389903873780276209906835131097571119113988415823558802270158993799090096147853533686658238934206144475007528494918479593895445495133033278621998342090479586631851138097746882099870273587417377083432950044413012649206906275868736917245355615277625727891618827639372965244183040921527847902456178687602422343110459164274193531585383723525125627752573591340713441373088227717791943879748964862546076191323806262917986323991978793233341747800307910638626076710924352553165644603672802928931822159892426805723263370550962556727373334147331092285679847599334813711388588034417114317080690737009090334787258601519021879804364071130356523992323443372419605181156732835544222042198802790222879431848179483939888681667634454700491162859174509107073209691198938016715372649490563820344983290170407339806924967374174836829108592284330574117787970866295616214868572558966231701389280122491228754066842682805330048801697072365905257412171542195189075422369915603184419007773616726864247226191897325839538436373491709460919993629244040690839628073711792569677648241776478224616368551194045618625186649562578929019518144280749018372543809786630056915770458309037197335763869894862517351033714959538449967721130931101018879974926144596477810579966465104450107442218759353239329265418263328228561237297054206287916452305060531659836224622075390604579406069117786240635665594583021917720465960898719581776700632306053074084029720177684254662241237457502733005873353359856651460949325692910295238145750885706567178637797161952845641854543750176655581794911350490390183683127814029574513468180334677105136552355913217759408060535299999779444361545959510528158428949320213040445587249585770890679809146695209738319145414758299985215720402819998543301288386754450289011579631522946058758778728257651503572315875407153120641507518104491494199607877880676070907900056240268186878125188430190260415216130016711669985653058929147643470389291413308444015934651169151401915195147243244773612390036187996810831475395721711899126651899615685488782795137933638129907404331193161677686669657844359893145601941435018450678172514393181690323091418039150314728683726401267928506927153005972277304619961549893340969286731329809989147111429347424151345831732341487323888005019792101302918129820517510594508467438173758287394249229752462329379447620534836535118761876295585580257977566160928221787742684896167877573791923888269822590091455447854820587657857300094437112644585559415975016248184028754960300336516486767443242466317009862709891956036643549739304692176939010010613130801706281039992593353223829802464346631156241125203974857018135153390564502336097311316948391488161760985573895680264067042588936351033401909185867372684798938861517030236776231833724990876970000159737457875196077460421727478274963330861047751309318545394917492019051993940445046307768821540900627130443857422902372283236727442607436303469843518130513867302187929387469742627420109029166679127916974285551397393127850014961975680140578468765919630666527094834155488013400425367834422426542948016794828602705799310298617675143874816108927011010335489657415210751433043647917479744004078137855552931091716189706406421419596384165068582859366041139183520081190089126438390436324702900622021793328437954077865897927740530280374458360099560390509063506166631256748539508588207974027781098401077821706956914202582953929803671668050971765358203031074092301717613779707482819184363817460583412846722638776197011858120500945161900294728377416334400209768711962090115200527757313397051559373273156809473310732954323178745847149060107129283519534748906130627942904135892679218027355476694330781439728572178193467758511780595343016321636661208186415280986152454783736224674478457550202377155743301916697032950112123165410685172894472377161568374606069628469455078252284964791004128832837954567846161086049699316854436567938801830133582841935811521656728722280980390600907066537684705798854570853802794650487940588800192320165525266838334048688720372963303837999022410263829735856663954207209252635601499425135771529307737622871577861710488406486279892843727628868555037514070145770965999267163043773567344038265146524277143646182566400943962701042915892403738730953651052477469105512181241838363206722212774404690982506017103360027731724477659282683625180088887606413518997847327252159761354188731591413962625909165977495313526106735770110997755200108839416812763959110218419154181689345371994462102150615669562785855361074753373746782446618734974115645804581527846394474683410221073776045832788828378675135787379472868275851872722497542563519830733952193583171873762501436678973426150348157866284240988761349969103624725802415453332264296448610602693918769960752719601071299577897866535188321332853857876480184082599694095521150195941058996315576357369453611114173896744789134270638299409058976946675832115656831017424251432701944530178513278605305608099089504180767128280945134692361829867087418263780235118877948046580462439086946235478598820455695197063291570110817297874288745212594001582910775146675469923002269915308232541532858218969716572549095769859167659726413968961114697412207261223938764739418744349502055111857821042567153852591661631202853496717512208288094950235854629957481741920833644685296275011162087283231974358627406979530744844101474832973007353102219949530765527485594959292216111083456258596833744553092300322474047756913695059465891229843820165470208003808212460868739484197164405636212605478184986227450057876528040759245899155120467990771006630527347437823260181390023773384488701445109303455240185512605148033436916566163061337538867128920672317184809601177750138967663888873060216889619311062318594441968760299694801082386507358909693383295296960611020096742934073198275702721846693902007301477488413765084712071022280059576083059246550937373587631651597028177514847716566454732312705329727236747107036585229519412040834058893474170037423691772266014671743019532673714944834553549840746009253483294826064925244636838788857255007653604776945451204305940614616305330671385671188619940749169167867906698102600422501565063476261914454039859257312129295264578522272482860712628216643651153098220502574677350418349038635365018582136257258256429116264338968205703322250672392108705959685739292759887853414980651014331181556381705462099736706707991981796289337492522588372948108982527710015366385415003537334048274167028130075071520419729058899561976384148747259211544358226184103823865853579974446610690981566814387660216753301032352698319708023478391410943987698692063612285312416611392610121342580183416629785823608378489404998564879934584104178435540052274414420519321829254582017252854356611120093123554162749693908437845579869997844391715853541577895710810985943328653238888094957101748429676765584483181048452163441009648299463311574401870611885886938999369384596793896739726812518288462251820761186293372501149031625002994869319696653311841499278852853068631410073768168725594742823881982411858983639737601541443210871330486103940240055209480798423171243113088769942288819020742523339179813849297818479701997382291293009076115666736353289815534861366143781740619097699931650117216547306704107539922414200205105461245077473117887375890167964588042267517595427677508668236325300314950594405695337787177503841785563941340477623816868183781649762893465272246151793291026107565537635186176411951990646837268878607590767304789054594506638035529217124909878094904355607386243136262135129161884940136597354287047310705095037397241861237466760807303691634066564084011388330447314360257470584090791956338853357239048292903568312896876987642486988076217639734338896000770625376162794533857365120920259756084222104528047690571711348455710433080570824020446004256368507187047148535022524112115271617247157470672510486524343002158715844140014858200317089871970456406706284105973738815147046198677671718438441745092464677164359123201414915403260906545476435838432405336034597765018857377411360776535381560941031685340304468881863604638550262273989927406432887081517881351276656889848003070660111580240271178241675406690901994068669519607814322113250290676836117083340439581284404241840913140303887000971147602601472319639823947190625312976441957130655307099562146512120625322617610839116088748234232578329384207995847539617117666072055186618096129685174918135023760203185893759917992978846395258759003544030738459452599142075549085556163238241041733021608669992455522310170772569364533565077672673828365220671612444241341902616268026823061481480245360717826358573044977186497869561831027133646330355447572026698029867203571076235599249763319662086411898332749903349663162476097809891174658269856886730426213262642132515056226917114719880998993217395990173979731892388904854878511264600183788049880795463525993744908562563324428052090957982527947614257532100307521803313190666447559007120485832610654250190398931560716923969056426565913509413845109108347578446707427257707593331694851641291775910101607618563467630059380715346603057407414644392162356215602358451267748355171987396033458205029413764636674887218595610557270849812740174040993311021004021912896373245070156154192061363573613620960722320647731863805864994021471897473900606014759469146765685457570952274189480352829955603304253619959069633978661181014149700072311241714630452105321239223107390778524031520754587479364709079986181010956599736692666497245279078049389971592703634630890013793149614120818882973137061466863334134667794588778667913386077141628972014330948072324868001465220658195810613033802151819299726664418991450390682605763423236372116601225769129228020632568983909130626364384315364051621217388799450056795112502253148006844729903099259456151962310586139488194836738446432019509194375333213892738219069260309914280287705231607026271928371381789637394102302316942393541646079342713285410357428470005530461311485278154718952291586623747942599046602599360858554943289744789819537046548083278442017269057166080329786872931733873880135959327931309834079807615515030307871116464173342892813575159588599838499787744541812916529648596380935236289338414325975408449637005065862205169196221677793672590363260683164946402200751949361865803553408906958636614622819751179813888365802318416343718140843080498769376168731262545266298763139869648460470385058644547186994579417049683299921289319422135936866645692257218927582275133886053158968471943675747290897636528500955233391109146324844329700476181095813172299633919556566342808146236622294113634435694134856290002448690280791454504786325741953343607389407903730193504324552736797254154740503100915282086387437332408017318342834167625912944081569688131433910739302296745656459383230037113768932026604895226658427807801300983974866428122737536752417673392851695129210787024298287205498983920582673402132467819228022535882774338736822116757732318249109032180012342831523443268505253425420162968407691832370531848092991982771159615931795714514061493048099064131369255881045512369168947311648735171524639927419594241733482232061905701697508869866443065617602190118347371792297122043693541558151882665681047125421675567622859186461113834524772006667273189305459827475341277682556940466592332572457088739460809110084125031768322732150884593179519126994339926945958039827331294818645989264442093457235354748099935014991802380399535315132953526618867407613074552596285157759004448642168551598241970202656858179781387774645988760629044514241526623633601369477605609231376688944585050052765549741701635360300474846984551342211553553761622633861750676941491508957424831921189158644630184335924835997486357902928556598625863252201051323796875788266899422722044772197549877828790080307838317659729407281429368514352276193924373925293896605065601820549231751119536324167573411137863022541660305097136187863897101823057708550444101685836870488584364658552104002817156941806159323455462808830094711538397105727682038168989331567395289531714314779096857975600692795571605137931575228330965072928379634827173774936964535646949709990283402577267210956016939481719004085090988420697249600344544292756876223995655475374381633671822657544925703749437312937014640533833343789180813199593982016083067610223949923689658155973088338356159365005972729992624056807636247094880399582226012169230764038391042808850069369432502144822942247572914939383288663232894268952787400034319361312774672595054652456698856523341899985624255972416106854481201727796113001567301368583912967504104747538450041652645370868269623628465758944331256304858347846969647074672800081924414254694320575162907246993474694144907771165552073473127615746638196383728631797096916092863526702915345912983960184975639754493835826996293178032205045252544474922409665770114130672212786234162574771309718171772812971146086870123253831801285092256940549670935942913007674250705634393402952649275576868397634547741041502505197615168743138280680357176417406757583670164553629345703265039621526370432769399536513388133437120898559979800155463818807366860449730096914595409821148713746519630884874175827150039161926193469411759889170852180327435453147558182594934420536218631553690790365005132486560214227031063911195765098354826347193183594517408130639474477976333750596570425582051891405100142260713408673370894692186597548100980378424567210773633201166876284320669669504611731708370723373428179373723722256605837912630559685146124369587104716365004745246818803358342606377879133519876771046281667287478032750852023661135268395928811963982329645106513152180085179285703116739465451261357608127051592294131094911156800696191113868406606029828155631738211496638253113947032421789069846475249684568255467664961820121446336996513595076545319297266762209081875471446926270090709035355814089618244846028483344106655543519024887934467054711195982043795585557252494333146005449600076088625152254908140923189768746582872500269145508813994012291371457044098879468981582324255784073451572079106992381494042501246668437534116943807288130977915105055235839864262662122059993960196978862242313837353983844517075680800096686151883883787036214473185737472090349374991063986135534426007138306551342612133708729176091052264959883618024751651508851182905643637815938016248084112846142490477662728580067093536329776840248858177556527189402120355481840445996764769038155771204654715741016777017631539397325533791567680242128743290150596616067543999823098627855328014352512399362800011763141245962078467302374309732991487852248903367174673124149907163156573092437512723724249365528804055810733617003016612790307119509532824301298299953371131341579218548119795251579431442054708711514976788001077417248533040306875738848690446376083511908244324526177800043028188310350223480589434896780922086731457682852905226297245931145681577619567105678792052269302257218568336294231820890005325711017408654338540732111036041194261610063134600609999689216635373049215603046751302173045218447800904939776304070651915259824122742338625973924248936772819778562005587109361477896553444882118967962186917966431671488997208720639152996724778165939637427718323243615657700601612632733983070486084433695825864481640177493711319803952739288386401080911312834160099981059133346034058603967168084878416316504263157287841482097682088651287856556290259938671208196250625072461667305424438759245447568738694960438727364393679369214848151875470847467712611067903206504059876838301906060603930563750520433964619104261337658182352797706815994372256252470075493874554220864720054917428924254355572925906395826750155414554950567971288806668120800197551634513317344503589647697922059690590993741151425118678976467955355194921526520288261434773630196136124661517559658648475458015365705646532395936682218514101212624197158949736924166245270684271067480161686520701996628486537936325365042295283411792013226014330262408896938177111346871323276011438483319340271989996778120152185029794022126108616506851504003500299106460431229275760134323397668938639500699614269162313127765309196448467735450574000844314953063539509791269016928709654091153983155547340508610372290010538990783678347835156492944019153304872013306853241618356118642218637885191361004535528736321460589216923415023709196565351072825768749618355233262744438019758784107999161269688783582365956894537618379884009058741937597790617663043736793465059576526186724416213889758410610016861174358520805735631716982921378847482476663436482230940910668454611332579736833213361784106951463407240946109641236221620103701076752476113287830249550344550488313499074646387144593985554406813398895295404759858342585321633261396878852053427144717242471160171454662969591999327543879508346623949050745969570209207507945357412960827161189811596259292320102119286951387867050415738145329643715598391724920081806421766991970410960956348167503400521052916048395021939062495441647264814971653892301618927254239864043310490565754682488747088596027838231327961219567812505575685856799351828689193404265122626114485673685703180050407834651017468172105808889819549607248063025612939148865236005245372223990386422007928901104340788930691424043871623677316761427121482956022918581865626237656956168465793254868503208803657613635703314059166581786173430425118015129050629123886106445533526570250092390381765249105606109939618759996192231621645461432212149483740425078150546000752224877164444385213814456137154780700103769102162805103032674574138200258873550270485061658395261663538925465082523781720897195428164566658331988955080916375124782640514010640156317799228605193381705574078384806618337517185024490400158583946461334838274471358860332012636893244442385029631950673058549611357349884596567757460882947500596115041445540583387940597079785140094334414326500161060951342753085863915990603919821691979065723429895427154732671584582974907662837429104174954281986921847663721394549318909083375812914405515947332311426522745287143973460500585331807684007453544255718700859192136356819455495781788433082459614916209581536640817064483718755251660579235904602289572451316573180114350705547829173682515903289920281328948257318955583781541217820519548188517377971785337914742568979464125568997384821216880509893849388795145521939714896324753497236628570751859945076662194569819574042038021268263861422483107215116790500794515610659769188140584411537102513708360273487668038253011827448086761749946636666647926440496861012979351675548661714807320244060639363185068019145348228926128861459446817876359684266213254166577861277129207556893145153728839265121215939830865795509977500983218023691876712705307839037515480437313718899882871901791789695479382400935621422700832479843994633612989901097820789529746146319968620031433163166342067974692255665573366271060173410498560113999068054604964419307215560820540757137426710852305441261669946422688271784012495066643830272789920021471386998918880067263260831659067553974448405070823936954943741944864846750037145577103427478663017104492709711511025870936137377192668086603362700311455405822070525867375457845875254044134942458403971352540492392324857352819417784480075445675573220936327659050098904192955486388950622407881480790240613785630339877445318466072300987235702700104616685962291690492997908334611717345312745391239046114105579295263567844410193276397969129434013103120716292086810249390355469671995034048065312036639958453488539435175375253993770030388375938454767181782425187164148414812834334359035194532710121339132426570521906075515727837832266635840437745088801113984006351942949847857515362064295686171753351764576242244295886297221117665894538240902796002989665558801942572186565572499939486195838676759495177646035686487557897257474423404394709490921623871127116495121074076427279067427800439773728362420250105013649100251434987398741378236935276835974458623390983316885772883437331917241766858733159837974557198779632646975737107113005202307822932358691882576799945470216016718914566205040614995122056420417836698218895293673204210559852373068780872661664949594151749677944112092408902010875490759362699911988678705101918218895520001585221974675867728736549897128436964068438141293711299324326462583807058571031286919156295390549711562207820741748547637909516254039185940745814262208139177956624543406377552982242306136432550973859373848369834474187833837134147374230310248297500422459297847365277908909580142425704259846914506946414648705173540889000206075031105211027274658443567440798944415244756187701731349265957427984919104013709392737585396814468167313939678432829957462554050787006311582012383260599104443963178632213096271824159104977322388648066361027482040846706758605578557007992207236416781749367558924416359506018550523434935699042402210265279834500556960831305290335671435981109320493093241396614103665795817676911598028740563854676140784351680296622891727854946485815268749478026058984782733374213183979413192617188669637146128570034706108527704457565593246395070206330014761478265266695280827596314957802620048063086968760466368794663928075286643624492198104467928384440341002379751600848615243217515524647573286201288593357217802420322135681846907337022580200408003424412201728059169600444427125923926352350730233171555059378157283691180816329992853906971713303320722333105023882916145459431684102682352123563557435746327180759315811620883083153458362297525942110346641981574556392879720274820608470563863747599639622674827481993183603072269365206956107073090814415357339520878892067046125581872772327841705960257995770227078011998532208342318211679182852355146668178491845478781406624404934175445298148994185406190498682134630869175067040231719733931453030167999908302631558790903742072054219932021859262510394161399741482529213323809786636299271056552369714841430501583614676815727381310259355553509227450480232257083173269685978522270934058604508209481991311336242814915006124693173832729067922663886393773098743172153459565170299085121327922465614627383487411089250031208972829727460453899868312477470149778527481774886839668584203766271164449503098981320841771554907211228167590386042185483924521077192306700881970021768309797133013053691126700608617826374199847478470169826789593686145007183251300936788023645769869441311337801972533784189309060679836093485642355114284900238406596471332831122268217819141246428687369043208696739543049171250083619985090688800982745916272983205038409179325100075189029758319363702097972936285560536247122014152294312257266585771289663551610630503807299939059679027532450466084195013808735596324665413883090968004726418090290705820447683156683518461120106234580007917926007207148393767084730227775907816648716925135002897630795820545294974275907436591737287681682533395513217622986315172411086145990501070584410341770674142937919357315670197054504790361050993023247050441989760995376153305786268583456604676562031182478926792342249714663083799129608228144399922296227618569235642134524353300151940583565477092150292439754410651475160680347313520260468481887659538405973810781365233610903687152346021454193713725427424995108183783322628884529750150801454925870138923130141584257233720754713212429838820537912612274011005583475270440896841830830257390530745347270977963321682805385928142354342961030539063657274159079493619193533592083162023491149986478036686192559815787671161540757987597159875483165494872345702998456484115553691111135075471678483483807513891410237220680475229107176534599950740886098877451506935177848623720550765373955839110917714853358404991984437297879312081411393400925320287001226517491164671011565060234760138882039936618187204545311304534364428732150757568003053379376460971718990788591129123000937596067756774560007540104526400551851958484362846420288148492215384984054716770442458731851450891111096060617524305211421994247242455391279593731327018293920362803882747118880999094496904072710443627141815797365093814335761313210815432642682952742334527749075476958268928070015369047760286713296618935150259990423391374339489682359379466519202848932612601599531423907974371229755715540473981188440147302447973884254696703425992084955794817766743455101084819276025823156608581012216879587359496699189686083219432464070427549007339210979257360163264157687178109323857189237416317751093118986051322273863244425288008583869389599571202054047281307310107006334710598587733093341887414820780493003730811737719201010429316981855925575925045385966928868491086241060519249157949810486020098709319956561697164015655750706672033960117132908304961259560273291535126128755442419436851123582946466318018515508005382583108088551239607225818660839880705155289230395478282642741326958013827370682592246368122634926443437756201812396839854149674541611340360518886804104014060539492860819025056996819329789841631069484185797032576388487004282041416067805102956464810729319621277083289033066294295653540602599531410482900347485805811869996471626100858554458174199297610556739700814438489515166585535864846000389145732407714151592635303735818696996811252297173515004912099044482243904762372632104718087197070553339399444284924469845445956455171179741540512034221068629531164572425408055663751498445857784801551820845686916192106661851089713191404822173004919365900962829983196626166835656263386854226971419477186167229861920391429258483137434602406556165928298883344009768982284716876456909854579994436909354467238419578954280955224328540394296046021107241074087573057828541423485855288683620459940952249145792536719275120028754006813066809234433679516349670487168672730149151087663169395083705658014233765355212684349581627010637838852428121625217922306819064769184805453112250916426170219404190071409467321447517291964348851979372061746662761700278142158079442424058710722342895479016233368790120413783781686095531502971998351530925910936430563686455625473453580844738388031518801141604257204835549757050404480520996386915535966637951551061388851698177267261174817551611507329845546041697586605747747941631585322279281707415970310216683185584687828930154503676510660518491421546698820896905868401563024858735599263327392972468259364611480749732682796489308733045106846911887723591337784108417859326348920713427656784078333961514225046770973607833848190929728258072525934681916437690836167331691346212378980573232216767640386687821040449947713042134271926031394265129170431598442261637687690525520955071626772838779613158396816622979687817644128133819716332993025724820129759531766837858658314577456205073526677792204708140170361338063202759870872216246595862334685903021406734867173711558288371044064227263054169996757675327660747299097376902407095089105065240279410499353812078560418129491261731605452889782140299586042356811867113748263657092118823397383290448076965367465387840366870987496848793024994035661900551832494576974793010589903768464961232668201279795920167951018458695192860505777604720931446872110626600606038940312948752183520450719835992873099263507804347907108506298393470838115421125767877185717338606220634314162789749398102259013203464037609090880338112898019847933815146593420476878676916446466317687703265749114487794213525376451047210318801769237851490734921784225271098339908812244207374691808008035083959220174671609833740067763520252377132996538753982901228447173458356378301721929208706565332497212871757416043855427522420443634435000813206051188829000112642066325201079898214421084664113341366156611336891557292286824174036790020410897721351269067028836219688235190261461800199397399049405155673865982350621518326549372826004593792996979940230405562695067861792418845068274622743113119600640581722033499575512504484943769177143581163341855092290517883665206921196329505346683870456782013810760691233898399132838138681796741751447177268273398492290994480708978228210573176223337186498005423708363426544265887646527892171386969083233800465426100810706258274789200495037790436730815610363815442400192823064463910156850077352782171098911303708614410950766125958068564499365461426595667725927103840562389581258239089423488047251730796942987023863817293610238794380188652241409172549261171656994830590567457649541331917434101977714689789873024317258878167570728249514059683724461055851517450552282896153601814263357851805276687529908277783985185976266037085537496188667270987161243768605805724731463141615607258011239409934563739669922678372762140881451456962870952328255538453124438784062547565430327566896343607559458797401327842676379406609171556795318476223049391970658419474255252281156812826605969427927648979435794860674479508153328400748656424423393641325772696890260826948378459786312657140099901749890314835681213103707904680920494999825349846850475722567740389893623300417022009857251595444978099484945437047872105359753831386895425494585960132091120914395633674524585914514355346686549807171512036190036396184285734341273818329998390896354129929245613140269462094176593535997867634879561590541750580075247658146114473370420215351866051093409362239851066067438379005346121540238553501168384699822344098870040482279864291343094650703793804854539037430163443132623427289999297095148028814053780984302652705236273673252751164376899366140647296721371203627442481455162986999783062580243653072428478985802130369963654216296286176222188790445858133635291696167199024304940303751373234739999293556272792201685076331582915001435253760656164593849456344376253071404755924546562796050911286357164974883201992854585366707519317194677232278868813897303214683128205031799183399877055810980853451503710877104971852746589518947580437793290525895058885801508629844469055116203367854703344275322860666564579778498492787216729426456764623227975248372195207215192904219604249050038169852730719777773260669423902534946848039547141926249042844160658548174400744178822251515261602910319947825281822357116277994404068593365814436419788636854976846791864285813301073990190277782038036061236717595451818908475938928443104071105392737686689088234403930352599615316190891637676233355552768317622417191288043647253907046366189130347206913726592377913807675992624244023157021919098467572441537736187784833025225185798650192528756442532822687066985810314442245897705682516722663883654969520304043291999885770247425327042701223364253637325050078222477468553289385842125041575995700011958154159121522311409436777557699307297603545830849430886577363927605598273537279644585572422678122095435095359256381261103151093841804344527014842089912906779102850554490270504774454442176630169049278064867215722857416194505817862073496165099127044009737507803971220867451345905391685002942442629699490054457802814411094577494294359483926632541069417825335411693553395879030716366952887903641140690410544656210334479510664642724709833792410244236783273647185400657134682162478651459265809551741302716831172747563969186278161804406393516885002782813382454620372855493497020166954906216264086621860322964175188545567897266723954014701602044627020888268982318911304064394511230034057906237598024928501660243907735583170955312773814384477998786110437881004353161151833035916874457643790642676954602095359587505562686866752035166481434676125875180888959410315197880399627917815145817106555188088054338640021821463551062412379995574904290537361945005813835811417328220738609983351337849285609126529897400887721565423182968291989905741514151619389098628061298534267324299861895563812365940429270591680164557400925575151765467255888347926572662129445571546845418894940100856388044801983080303231002388798980658632440311455144004180816270238836471627841827743425679381046052891179607026343109784768796015958689568147189689427926261588475903205763258193462538717299421370837123143700761453496397114243395327618046590158389340660569302131577568061660489773020944766302882071265994552808100882696699067135781813922047330396188641158034357913626583187667400170234655045201944854349384276131664524464233637116554169840801432684648101638225489200493254060747572607966412885585046726244774790178793704431513793733146567824833022560270732453537556729742572096155121275034669823079712004811443596292572774032346914698686509039585535371104035245831298769280027642273270724165779491561283433754835527717352257013920501846458366270706903614001703871909835302541624505476183896051746442041982535650946097387901882252192930458976189151623361859288279632659507714152973078827286653474259289669849673878658493830799434886968057725430784935021029119333586085843240501658998812690703270565152624241915148865131091863750791623140563018319059471414047086012626832016746854627740150357417539831160122925199077549356909737983139038830046509939123091535418344171774659067734326726666944765609445828926975970485492590886514973657128662940461603818814415899662332919069721035776443161499218040322177727911503865581206287722495889473834473928534148856041937208119680765448204913177707369081828760644095555365804781314052823117393380085614952275582864313464875521687835220678730318281770839536724788351669970716347268083899553052759651426279219340031941389761423948011304328588901180025775400753020054281813702888036831981686960699778683296389703715474251942417402486384865215198380189191579029488048116554530061617549201603426709766888041044233931555747806318957736838925082663296833824850908302001841247919242096488452329910523759127864647321096192642633572075829971603886117302091109126802978151207412226760488703775130079049225068545905106262026539031299604089085425946893518046672404779926291081450387982312767641373800178568055553085532110609335572240771679990935078866940505645906510133646273707870312780509707731100045784214467288983614838722968219219205736685668970959245531223736180833812884833494028637104053881969386542446521982076129084310379420372085139978917520756734996809932856140091392300278024357443604211712792771101791676182424637651535620948972223702748224740838240745174389186409583440550918183661727627129849890798168873778192840682053719775431200735152992993042285699140487628567387341715158775938288553640069751201191146402415780961124796094780311123172552108964238051220396116697635565381864744764424284927868222031046798497386032138889070417955818979896383545973115534377735889919847348858871214715995123777661296732723962670302973195028543786171066596745376302388835989648125599516813749649307225902413414164027418581832072888299747156149706545863322530630048169667061762442248961704756028491912270499120185370282543289586896191981124686887155473795314041305300756178164234538468864504225679205866241814225824181268472199305859269012834536575345277894667214545523950488508446600917790938693183011208495419535789664429502136374196005822233048820375518979344738735851830000795550069197599090763016490982883746502319039301421197691840096424917457053337998406602836978199909754090180076322846303700523183016384412853314879434782158222985834192700075338480362665904515575777789305671536455190781700107419760769414463242660035447475171681218994867017741361661203289629440477402357350921009646370927063251521999414730684788628792515648513603047314804513037802183274451453263210196923717981843145375213882801753736939388513447334936788275477369731978265778454754374264657542117088583685856719860436872188924703870889437160210941272718201916120993007683324110755604399307800724913311328179515885334310939458788161345935445660033736241667587284282347807512191841459016118600182354490604975715431688092001013907573758646260807451922953671799645792433041725271113483162252750331269612900411262802902361612789304397034712896880861115751535444973292712556796068162645884076548047220923143708596829676442004086136029762562885422921999418725752422985474873342334124737460189850196968611392656826589903913270723870534541293253094350224474557281135653223761082704128392925845595804588882188719814532477334794819995503557484277165972992249482999815564962866715102051612132264125187498379811939589826998711121940336985384104826998617255739747430132891933697631828344763015700075460476405641984505355311290835950154285243393667173367063988007609746131470863378204788576894022342270309272716693165197439152824665975770820769346987114756003469004614438313697760096371473176605785005397449617420064922376429720032897204382016155909520961995334705114821659922304231419476245689641912407677303669609185308715186777915638332070028524139055468132645642565767498175206963165719390294977312068050073774761086222653742396423793453755882767663929091961403362399901012108404922672992781810426929830375205284847803711907645736141155436826814790738853136350079847633056602475099058852497171601853093144144721186409423095088837631254780014884716096936195129662885386372605791087289258005567941840318530002882712775940310561729259244443228406798093297588610886518103351484297526186318252644477623455771656346554682514660797413392898453562192066224740603097720059066965513737531452407327849578737873145258132231766301093019465034138435720353046673115230327929043871550885923217837468468345820499538380225914511472214935429993814089642035023772448662122519791153170166639584152521518711154051548808694415475422667682364351243157111421363704392859538069833731778541369990046901467665011067127801513693253528651710966445899810106545132980002960966416818214013421727682879336700304091379087559591541828916742407585526414268413042402880773138696991758717301103928766387715807679890211820586977129852805116760466144766474293808466614295130888116894892115379516987839001714985465959042774459392212246492841682690636540826706271774602305799374974026571126457363555579317785072047302553333826814417253206843715702708946579336542826946607014682684797671931247888055850915682549062570188735488510235147112468813282331600804291713555102171902689690458831280256821808280581407610623085803797152037274582893613669358690385935194898034881054103159416390989835993072325928825061696923882188095221880887428981848148970111564122506570735205410767204064116962616677876770936248330727448311592916752878723339887204789176330701998184789799162364927679538531847560964318131555146538737694910549058789198975241019917577141591672639390164289140575366199507852216883607839702216424021837267766976934923444857042660977214784023357131294530902396955391129714632312606294004009315045165414195118828293906957192983095239285358856970923624939749774496801120804908597690704606120350444117226915343621243986916457921708841212735175713627650402231441827677146504687487734392614186553048087749310613401535816110699375524181752597418717786951977378003256714064504175283569445849878087480049581116983170577709917416506707789780888643267980454651744372883546758847529306765544237350626048670128149133824458391488266088254577491965415771579480615951896911415630378513556445736771797753007198066030561723752024482579179963960585372547783289207174284432026889664789330967296280134163801778146074786265238618311745266031463166532295500513251596104704173816697529326089685664571625857656639553646756762501047896571235289549470700575643418915073799955724096770065562850534722167903884739097575572713483426779517135685130911391126121019138834593560554864242118829082415861771603104105133922418981044283194586596474975242588982649014956736621019736636246684212997312520632250735764926131750863490531821519540520370065921757996255949096635498671977729303039307337709792865941263838973164397347559462606752489898750034918837023614399325551987033605667253913041277094255903480101476166870595573213689389876227285860233291916134697217886857791524933322397147276742187847125483966214765942070725901186592516686116786161400406048291789931274614932987579329432426736687017564413886870299852110480383633616709135012810469468747194671896499876370861460038430001652692950485047593114891875115039497787525961384482975361908893857133091466351171387869811342365307291853195318786031993746480534512384638539931166299568033109574167723410802654220308905510170305846927613746269187226462271685103601442329936528161909512535797114420073103743588588321694788401746710616362300013659478282758350175533670807292027969874965229017213489148126123499955969435712121080788397132218122324895441229864684784870466865195115861896496257035031323850291596285843987597638433354493084973460001851417288752525921905011002516131636952852436469483268602225903210790678702531236182368611825443527774134529214623251296475762301919974284401660692472164415767517106506890126264424336435768104241318844249477241299650013948316230111172439755881833805863618241449895619485221741890144277775843340463504580564564959468338395945340691392542967576537080648478999817171554066300036906988952532742003888418489771923677680473968416496536666738981021586597747845066412459403463198969296332253613806559573797491028681977763896467485094411947790819540878117939503851593236962522431417563411550167916405910786163898505003433907560084642400564415696317036671143093119277231211119685113369803614132028508622172031034131516012762624054401120252502333206956347311612448689164500551679493540261394203240175072599794954495370251708073050787725624432298088956072731151908289723076269435334270358476450512087563370352448625019913342332177787545805923397371913519423028112640002800530435956146230445788234663621036434789937300317192792599442959844644017387139979156951967086900329965320647081896440980943642181411606598691874628461352505917516413309606306981848678862429370585468002724595799636852581234717131609112359106440922086279839645775283708298930435043175067441165453844128561464150480177537377646560652407993850483373588969349695731675183789020022373497406364143231992583485143785290036870553636419567814246118982240799998110516619142877412233986632558033852658209247421697624231400262722334705922123118737572853322240750531780750932673456822914020182880581393687909200356808392245148303295205005979911300890375596877768741194094675186899316138271911093098030580436827755875684910472155464695277857765670319080370566990169086409753450754167667325013434764055687794613976176057669050654019633067543328909349122099702914334475373963322549326627158220765182598445995775782220506663074172137937581716777334777522734549575369516076896372680712162015503087725204898513210152085167401661336074598795208717856648164663334213066189759483010215767172435114462974694051692702316642056531420484797134007963475957565440496287592814231665076378193364226111654132380755711319742995402602330193801037024077516899639934321369379331936107386232886065973157312312421768092082654635382328825111703408556786946331217948760805167576642675427152627935424586090658837439380684706709913813641819730245579292339159405592984672235231552312206470066842413329371864985775301386214347679969959698525784420299957576829338365171963426594804387530503044886017240712529236354438487932111162956784088386119816071908168572232935561020950234618734386365088871260475701956505992435101084133275602012927646751562311784814433736604291730527111263988010040609690916640246004645468543958606938298903630202327040000711832064429615441473463443275417217651960633245181168654975936782159965234784275766508955471367262669769241965690068403649494373721948874704849795908334126892537542486504830111728793267105921390248795613495454817957207888074983180834729783738226325010398123576008475895926562510688709871624311535251004281057774815084108706085011039077279335065750394331975641391554484519430405310429550976597939777097183958672283459032799786612142298682592801441257654748451540025501977826676127132456420553427903440156159519857692276285697111801293749133569956843765680088549207906721561720310863285100842419736887134133150111909608600757971417764837486815774841681256861347240414250130733226425997454073326836404836431371518307246182181832128804395026956956967062009010915370181540427235382646927322214509020123645421562462909061829383291523528137233287523255801534650253867164602428569369849368185880343474533303415265649303225988394541088285601553902250644763664134858268269925230450790168568878360471296961399025866320631596398758234031128224838556784047906651433759450487785022250212954508829325725057058885583557381178831035510957721332084314140373588796625101844432721612924466178218105225580421448534470841642781790132033348361108418933753057469654967384147637811479987444466830783419277417894644072484417677025886756993999895316118853095439044740223376053695711240543732534749205047441455344743006283985842316694748739903513798476360748276887289601505352922500949810781200899074817765273586955105109710186289361487839949365130273822972357847256173717852925818201702237930262266828576060630706619249041363222834215870430167438227317685849721032760078085886284037989420545757380846637567991428238363638003364813734447305310981621758352592366007089408541538442380544017310952979195822951246667999157719589591267357656667789151081233203570884479826535001223125102567825154738338642339808843483685024694533437495264377919237703453053869968434674410940640690819221935371338234375062931587838391574033067741571862515814737127907545452415388052683856410325062772580660819075686999341877074504791539657343674790648131571454647360064016302387481619283357024465339289063410097913678211425333537395767720851208103161983286856461995393449451724030133963709755976572213281525361276626949084283662438364087109708341402285644513161662972968580266172391946066926758284550556694182932677542708316689956060684558368538540081000757106888422449753114871527506815179826710282852607957656705640470763393197522615731998491824983375865239395084471560938875664629194823466563856028142853215292613038137457461353776482311762159765905360545275151988341456141532908740863660435604296468701701332646351280108432192301004040014665566016490976039130508777715786523033442879141273370159008848789014992549250885012523803044431376757695726041699482966478383363873696524806388584653704115119141759173712253267161893824859512606216176309956590368240319318974729306249225480191524617495208940167097362201851429852617337197073582562909848507456137591595453222140564072145848942409067541310350799425236531522659814946305563743709247425850922937109309806254662952822352089584697109522997557430055173916161072760800242380493898005816230730498508784429517868887405437386675617653243810913153282571734101333578835189298663352822254061778685888635750132927627389333336774422337357745574559338731977563705277496334726429556818711955992188540386694880792915162749878055946004968344757869956629729065174457567137954584798535375874899172002715271124092923421126948947769553037339769408856474245303605204672701488705024050164894060824126391466361529684198412220690577139187870032006922914467107250365764403974323103901683237300335039974001091271415034106930192685893345628437349068632475047091991809469827877702630448640965479829137797876225571838075301546935720510940781584355292846292869338844767658326444315117474003237710317529692776949706342581056501782063691027337301447199609761337571668196793336763179938491844931755249652145024105271847118846360254890131524603770081025973243837851083484373538042990806885652672864355856384518114033151725192866163132760827618955587205714823093882018374764616998408376332683403436391040256654342292556323431326426065922363775358399911611062003907696558103862167292206020225678008750802837944455602649490739455561319443049619122272323584022065325183159112239536691304803752543973174298259521276461008272263727948096177849390474114543418730782971983036424282366678412121498151132518575437392300416673779643685053901985528900344457060140836538512729454117477910993153235074432097854863691217951964765145689637034151729538851069671947793845405504898331064600791693433438630319090457474874166389556293304351908302418504811751774114471307425485395174675642248333569368046478515336264325904670687554225690462659801199296467733050865885315155572650987627578019532135307291947449273662355245781105354552337430970261633446061196339854230337519687633000988719025995561608630983234551111744830185253665740743359677286381481371920256138994661607999406554460033633450144251702259099978433804081187305080955416650192571894636634023598125186401189264930892385754560869906180197530589242124193961168795217055883447289293837655236975453367542282755461126032124965006227070804321370079934461819468942454240427594203963704913524078515787828362924356162629328209084296416659962087533777621531117046810276165738885786585357248480881519198401059267136242322553210773802847852055069167293069217579700887866673747247340386430450404997232208538856689781037747828422168819841107439278537928630944589296975208221286284454367198314881843612498912303670118268457978297779830714181254291013276042555920185275370114866183914225813517855679478331395350178492923582607782474966952849066109230972844676156931164091036797426379128115118708058702551860739782152823628218806443222785551439831003082105455524109536568415074200865696944016606130847745793459315719020244436231842921517268841600264793948695565194253792733494493726739820230911933507651043114021383530580406592226348683375769588103941916776785662720558160604424355366913027571539242885707111171254551629886297409506145773505143363342232068659991148163775917096518578450346029335679749255303752180672262516943106104758073062742659943765543206106667726422428775940942627580510534220003955635167024035292502811209269224711467281999511895541366147354967297849798057185373894024681388844923540597830939981837968663262177884868588340172980328066630987802358332225414796031258430432213049420545104560702621425909839201929528164838643496893161608684574649856580511790904455042451962896468900382015302055260727220214110830587838889293024964062931078606605780551971110429119758503160485297202256230327140051734526388726781858704713035043172962199332360358130581075825650274015262696373542786765643938144727723862478976859182397353937764392550406377264751272599550763898800463568396696490033318235564096061739807157403980775250176926941596418289752836671975149564128927927868023950998476800938935508356927420832261789674754452667175877564246760708142480943615018847572326436518098685873160517542153036272916142452541772607414150073619451190647371592449791292065763935516801033543356973082121318576217029431614104929976107439913886369704234786886158039439699954933932396200582104641298874614462217537116982952356681007901993457435556060926064312069391225612012203993290977647755845894910618526813833518988735721234207162820466832276035518741535959984226315835219574922029746477265349105939016978278307852174524854084274647714475743128693601963194241759656556377689102207560326056155492713759020761414714647747485144860436201410372907105993423689626976550879314286177169793096987850608386516774956220503862936700216558498043271431464363283336305188055143270019048505949969004619233766819728056269770767678207378263758387029803770411444079911910478009690965198398108509204494188240531674634608679451812715539256865707582498364773648464374646572711113314187319719481662790781450154300299165824921813121104979214481216301518732447461967538274948391342137290481520031930901485406582221091488954507336183134356863220228986383415914843532583333070676806600346552926046338685690990391097599765845874560982360826642137802394529924091134614904451164330114567092380867919478987552095291615067036213178524150408802947867448693007433537214580575321880833223357146555798327704879180193193080282856921458459172683780059925423856049998277848985012503879040975464000268647722341484850948303869487100919704597929559987717468104487386970922195891535678289868046889225549367628689179060143427578762078633645803968143197375604312119302713636080837874081219709888440403083221194251739102438606492679121239127599790230733144926586220317356163665329433636137672145100027844438902856035427014677766642106700849530906759784559630920163117171182313623014548723167107323012636941974152447890248751995398155436313545903064164467655835435409306169375792029497722705981435111878885379005145353666830572562140259124345792258165253419716916414041998036660614736693886731628590236320988443632973227463143990932520340265958435845302582078817600099690982404806055450910745613685519037189900271689852000841294877486482987185101229970265659120139964104268835233123444399140611380166560715477082914654643033909077726353755212930031320417310017681141218033571227981181481050750379890161323705165625910924828328843800018623721132296636439489222473601365262912267465429858641837532880251496901335471615379602806560965471426300215238295394011352451006367052377246287121312395093701269946978309586227947831996655416823001886469522347634026810556511442309055128718715103457358521280567765515893153747555880933743809512390764482620398639700951534692138002878888489108729333352342158051410230403961066373337919076420439487104546883315554884061950350647072231424436530869235092826919513532313763612837750880594860354997988310205257186074303266432853590532700025766811483394456201098980055718002599944246924799622610422775377048868390871469170973937958792903491912021807507499282834189897061621114936405948220637732966905882011540138240210623187830235628132002501145673331827186149311257149762783151711775675328067118025022896884969662844380221687335545613207063629609849422347123183103545183116999181774442459336709551180091590698220722487247545201070859994107614618462855923607664878859502114386004372486101598396896611707492214529273361010376800745150723771412947796568830674106548934138948518990062643442991422614004192400314782029230172058798967825207037230361569341447740442852576220588872407273932352209632685285057888646369284020211854703477095703106796665106816940629463965823059132965568737503029813137958569836930200891968101700257983503389462414475723128941549242790690362932060338523715975040332558042986178210604456082803917632633293254230284884903124170700000206674393581845030925756653976208397693603987709295344366329364115050942687436740699865607823239489922385486537266510403580056050932119232767539487346497197714359226617299006075367931784023437216949434646843830784092573507715188856744545119517008039390452790317353633753368864400493741001172172663043419159190640688129543546661646316572760614224165263162963889300219055541830637602149871657980777778371526665614435604885227587898760751334024950409591660132086214648882067361267887124091926626309974019068409561379893196780400145576508772662488204668544319808673496651071070487618048958457056717074000224504180707889748691401816258878827012673179792351069041148437791933671968415172156031713444711703361636170474905721419307343309847051809032128195291195932163627305506838179494719272919571013268842753330928420138104663218558497133666181925870788872354830629624134265012381175746163423469956160644741772454854629368552114391541054975208187414218650465946609966904467333792294937050422935155367785672554964643121850918331385377186077959372859009407817991660367002706435605238700544506044646182817055256620251232496921262084747141271956352871122882332828912921762189620980947564347751257129594133936832992004585092665869445694091348933197959000343417193805534055806322062999389442898747131962937339901472287100725679686140225957412329564247924987966597254528445897813552452973261516057904808896420272834125749789923745220408333634250555719038572909837089293126704760044727905494924318435523344681742606294765062198125822823717381137428573659727424634784226566922527065601067993437060984491121621004501036369398901560793413763150520368796075062240124727136130049518371181341483378113156452873177644025374859765254400409293919884766160347901342810254996545844801691227684328173948723283080977492279678602068958404411420807869954283538311318826180604291738935558321937472281500084516257267499425403704675153589758545446284662388560009662472418922758052482719448891487184786192014995817138520559598495232380349547447607945153287801428335904858379074296474840877526205457720040144104118197392108012392754658782149822621929269742845303206841337887918743618141168057205941682433027566541789431797728680942794514306134573150486355209503499079251174202677437025843836302258074236366531137237536191124433753228775465099469038386478368742932656851610410084851735909561060686719032981743892018406092686081452951911171592224068262641878207424221913714110818660063731590452221093213581039098838822408427746106037658697509657373545934142516007430094988847311366620017468567258856753487564353982181332189189571102629029860505919639125007555932717521405930853774676818667566850013527727332348290771355447323129605155855271631693142676194291290329626926117310687534032642871293489267321227521336223070839921631122880353608887063278301782573015954106419742989910292071797218905663826326300090647181174457093201402541871584585085846159468203987932085636375991138441106641693320306749970993670543841127980520661886443213573915673842780998126835312916614469242685547166494804723040618583683157015809189462137935305256378365429459526917149334282405467192637742472018530224800925174836108300025320625131227828437351989715042057604175651786081333232104807109001172571696983550863768617957679675491732740129695421861181596289969222231440672899089480533054234108723668033897121821325369897815258604012761595442765283634226942005066130370381359212626406659181928353152501853008962352618049562642771453734172100006531135332574064568228514840879380650391485702172824167760450695536129470695532659476816008085040850324417640523858449284631561414461515478723305712478456519930410301316405322272495356344507620884339634748396649884128490877062868727682264813428756844696063414920178882887568116467321619891995866404696870003241308585389603009718882934908253445272193492123547383450840611108944385801741828590742376198521794669539207312589066233644375389199827676815310137511358449484870486907548923939764169087374301600153283370280985857208199799645954681263697298371421045613289785092431783849490306499473892468177841896551750095788654836536824527341898052284223112300415385449489987898402691968933181869426046140479897861745589938275037398625429606285567646071835684760821008954655312159972037061374446361481200848328999395067177430936960781801124924586588146931393739757918650009708459666099726356639000820062403899878576640921069032390323872753113648051078105118900030681972927139357689076027065798172163537591613950462183637824701862524333635940510014882000094284879581818087804636893297273440926130911867915930326848776954639246203299185305154219245777871093264664607369129619936142317395157362227884320810089538288447875043212901074382392605121687012201710371756170596804693317500689377333218702000928487622834673070706185806359306740075355866126870371412964024299451278304683090497770610296711536374833752184452934658558901696556708180215732269774669797793088829503463796826140360913777885557923145418773444656042083424604503019883259015722700932481483328344141472726889848276291851769224856481812842559766353195455630168639055617583174611035982368485812434093289511587422235135863490467952964545637185156480523217022333880336463680686017835020128914365774568589822251269885066927457449785713345502280010429055882985740736709647483256670492967560493332948084455486748992517639896564654501218612786902870205737825476899204726687332773478890288978790286357874329940102545561623829552023774418404324501051016259236606478039506137919783011367666861022457299658106176160798294069163635114151882008069353208526005330119559889885712277574978454851006376105484016101452110652992303256447308714111192676536169557210903633442197278890684954623233415189422068006031919650921222161492540769244658997402563028673731345029529045215313879777715045010077713177454817497451727279854567017297082194083507169762265551609292697337296604697980826549217121501976798963077347619415330204955570271858658719584078821179789406519820932697112554670505589622487472527771015696818504193182172249613036349521598293888996260355076870444046855933171167658132688053440708303434687659886533229901991392226662325513790122729571046189850787622359429290365924260066966579082196444823376841126509918495162195574356908721998306021328950792037068355643052054065209229700762649805738156964979350589798960864478319273666329038641224035251960770137217515064002837092966880266779816940377123606531033281065089754969002636997349259123789568745012493085879278248308936748995078046693682642041216511986711083938232270484848112501096625612485858812161037291428924075296710659393785273581396671402685997337513122216401313447169361606009775738453971429185065247869105792782145622370770711859559297926493614239818833983776035101660773423711470188071501017421564245345986895636032454349989060414334930009899814922671393460213353718761791441420259893179401071985984119795725844416680191020526417481583023219005249035742254693308278956041588913489262511125020212022091525080035306108331683356647862588588365016646191543299582679173245072667614738691185800340311654063135065524530928483456588000717796419583192306351036399177440317438798012646090966709076689574929019759193329517840860180990702970157400293082713895096624288798566509923613773124222323107618414574067016943064540322705859971352584776308425865096940759331819425820567712303258010236821055110842807118319944269367226580141108366438320016835597160661584387708823317913170144190838907410105154481238148626591496728268229023304676500913246155239303662562262129188850297328082781775670459849160311140451462637746096349591525946402571250306084927126620322009528817337843589217127731905960175744341372728383308807767325878267908767952437350191285026767112243293907537067631456072155075344519243856468250387189636406768779265562040445800238450424201313939536590851863368194247891428532077058048465639048084268962299150844126097690879416516196904617937692634576788029559922948506378085335904160970633816911797329865895889487251989236464614004407904605733695627699176339867492831892429982277086083363751698438591514569196821743631082734346979369438144732817291215579938981427811912621649936376443069784720165861361841347360203018661600112428272301758319798650228803667716814430346092695927593910012596507577989410518927694741604978727742049553077914519236098476183858707891994694642911420232913756767041462505990476444220439815668430632500047198813957035426303862462373377368198124447925266282435458235952517882794773247143287067306937908802830836610902474689835169646109661017225940346820606069935710171253222084216524097725321635877819156158366717404181392190908827002737303776681285209220530445755183450996878340509886332378244104648683811963556099340826941025565517482448122883252959875524862351094170699660459319323484432195996893121540649579477750984808613411573202733426677024344611478012365270145087768862227713948510878040469633661815817716325640787165769902924460087216549252237033792834765669947923697766656528086266103248296314858840187853951106507047949293249943757066933861256344756381236533148434428167953593805772197954258015854908386534151951882529886883503655020116066357469460353266081340663279217866734844869677151938281486506687514408375274939079932045309796250336872911942351467615689253373762355367483838909386701101868430196316567268012463247230824906033813096727056030386829795010810497783634936594482885382873207683504567589504814396680132352519372927577266918821542412315040782299531419791740440968932362626570452539862981524234301344472504874970331051056061498391312836653805990690205850958108800476646893643922933704250788821470618833193425729426918852447499148237331579924243026189065037378461154522041821823136000230046762068910546863902820628245829186356703764566011812684682663273302923710712480639335106416138624432852290200441823752956827501613065572362843518453635126610250113942995107397743109332924096700471643428096842851660963262519418974396881584710376425421674614647241747618736063874605106041415546407273220142835186313735011071911256497192950901835216109112927095206910498394239105597669554730912685113836778227203161398265456845320622219437228477700157764659321395536896212426556447151768125366219410416984384974182109212882719153096293831885742238028398783521169349025294732511739322009328033363625287749311172767836672812040913726901818039232553306581993090462296079532443540192774703753845041531385624950686006564379060724832524286710681896935524496030302633196845155098545577399135495486816039453874676706323804741520662486963139056067068888174218183030558479912556242345248009450300687542471196006597305164122208548729433670336950448016254405468615943926548802279893824456126949926461671793070956415783485109232026740349574769698654449118383092506100180309821096740977473119362363619162459935208866905477473535371165468775158020004912521261869135925006558069046548704164517298624128894897819089651535751693879497715695089662803136856378923900411735922383142432707159517816233362564930776942560173732493144994814763326213268014012883124892687966029034391983723901283769899796374728277609095058409238603794264846061856879534646484834130840160549220977974999850825581727973476841658046630185287805945652517263689040859917638016174485307713741911325857921275071660022752762558403491823852164673172175942260237310224445084554263569330518529037782859906548241459180487934392594127526873340413703867166315076045776692049317339872222279128270858964250230705925918148034921132498865399062750721127289978773148892441008865969899208551286336567950306109078309464903321609923039643607465910256332405682232750296065641763297416920283673649747887646490387493165809134512371524499901565846902909754094625132185735304036040824054498585886539636549109177179873271206489833335569959520712679113145066893240812015070748902317409563339345192833872622069586196969210929426648768352680654133174778770973921877775392640487648212385518603128802070261577802123969609536751144167546547988530526597532875527506090785114692535192545305358099236729803757162459149576648271040568379978395687860105285644715739445912834839463289060550297226997681827108605018990444753647921160296803988590172458620382188049260816849323125676783248994524615989054275411965574230102783797537891863153609883272951083048137711581490360576851367314763214164156376909697906986207161153610806194089483153353888277279019988595729531321557678615761155610346505146741790473969897601203867795404184463903619070279195512530276492128206590646528162456369284922208120840090832935244947549934430548160547058489478798326766728827059554533278731198301790641741692506663245915660218208197588890109703119348451792028133936185127181719262822316036816064170184804298900997726979935026455326779846186474503124244030964758577642449333399394095928247579061091626542521526851813915392282967289232392269872631895557296745165090847765675987950207098198259225314922051348358531442940114272112434048995695602141838065017455729592152008230379205205290869217150145429315165686557772694805683948619890845920472404938140418809081193613544718125573264691392158481207591817373638117934022511360314599615433711784183070102093855225033638851619807870498318117048788046496472122231252223321901403115800610237696343342828879963709733283112359724400303921342920027959167319277078067048685405898172211761395390140883607585557201070541561828647629738872877433124792778896852082000028125246210045504868525435009939379908637159576405074893804570993755603143993515094485499284296550186864274966454699076804089962896508333650625983055840597652308430472346303496177225159443390797792753525429305267134491129138799720353035324885116745234787887267145409979457064232381871543531823949896269992689518349982711961971246635723807783499633858055758047749634309439272305078645353879171250899762997542734271737782821978134708467875345094347998273533472797819159508872922139449166311021141573535340016232457850796079644894566752128650935109032729237235329605641690536222516426183700869771170183849480790885862737498450145749276520031270823659862487546564607965892038281176291281053794708181663232083644593917973174421852293328740316670511322731230214129972541899927246402170439939116015528099260198892022418397708259542993022370123008416683251959439150645177558610100501901552252085541854496518601494316092064273397587899172334410352785082667454387305442261394961839979504271934840541270224223163059572234486415376599355753432966918440227221130194565487163814129635484907826317824229614472844836526956902280918452641321488498612587744819532538931814727757385516186216751279155073227561322209746989689127657583219517827889612675530801873583525444416999743270456928308804995866405775849050370289124164994185082428043905297338735008968942459666998109429766192022083046538152362264335161165275335007269174155664134358106820043521491014646911083799321835952712789437220853001102401988929464229565563772292205614328079242849316732559283055155420126938925691410168495750777501507500308018937809789821548967249574504842998971482829558428365563711359721693385250170316839694963044350321398237712523519158440032392309843863722951261919673738512764179287659718093404281831535638722109318969648847560627991350032234668838003883256877780067348651208840271662061518328739722800720581865380029300789434932676130074847767010735792085760480915786054317245136901171369117570292788321005541345399748421635126386962028665841479047375930021790961799967764071191175395258868072069778538269495059002888498509370961867972743566169148070083989581377002264176718906027378038156364728324331546227811422590860782687526857669190913175483718602660363512783097719095835867799431493721957128887569696544754606942410853499212971100052775534712056010476116673925889906529467154271903040383198160821213822856096605426205822371590566877137755722830776124488502154540094856298459608959396641463436080959017948474983354252627313111000210636934476748272099495645528917272516236570273578431452794813683824255039098482415059407234960703501470719827151580222666674185212302075279977123444191175584243939016756974923578072155290754891531468484128805912246739159678325744871870731903033650870680556649969710415057696720523488509174749570741660669980262934151906648249296163165596044524432181398195368088180942096943115736871448420029574094755444341479995503258819750202892058889090319794588475600102429167687690598013683560347006072612081573421594552799761484840327735428500298961496670258660888509218191553526498052164815142888768085967694538845117218207048559262530421200366814436976367883398770974724864085142709769350320637570768513567163984953502517692873241714873246590409516483681910879815174415278586495325391990899879866588140611897218317875857523192295936038332473999928302912902742703204440905898147586292614139952134002928076202799576104984646281812927838961721812855246534384922977336703925646959771140811213945284610704380260441587541775968799560280502458304140363577619797817427115663622152156542825452832464794927222829426258066312184944356889086567745826066639424290100869603639576748962725597138812018065545600875942270240819479229179631245225051524125705115246278231887785880510708374074688500310654915618597496003800152380014221470189875082601955409023371902019900476555632818389723763510273328772800636729416632353814530492023956312097568016865747630158862035354932634863376835198531789133160864024777851432079405148188890177738601550937579293685564928155138877632764309255294353176990346707413498173806960742467490275864327401160020887247792534821025562772274092556045956160061500734626099121124172611485500505467505325693100959469897903150942693854166993117223243818866147690144428257805719355444254068946372766412704601896860081283609441978524764037878530012696912692753646944653958984307848731081240370614867315089067397742476780388903110611037867741086741930226223438734134868365301313750137611334501078400050605694374829444528573016354154483353754948402954184865565293180054337929470193815680557433690680433835313707264921586488692424603581426770121008438434789907111315750615619710185310031916967966521973709918097756098068108915783339432178222480531824467454106510812101148621634250412988783487995841544117495348444331569458077185402716370985672811152151393368831916952460116218970358243314786596347236044017512069202462299485932377138967966617359312291981917032907654430297695780599515607250607145416774884434729426022169379931954222735074179716044995814435906319303998895005499411345451222005203528926389671929744340639561513194134231520030329377243843097234713707279830794078552973093788140571509477268926883004565387508065854100865322583665778175757543151700416681177124241973325939040074034291794809795743387112045713157312775199904160352772906849076060576018072270436572671494844349372055121603546879979372826232755546054762506321506228248820038799753258060230649911555202235718453279167214342323606273353650117854592985628078461863987597368364804831355155665746671649424573415412842590325599696827836103163268510739376936177062962662348787274275735276753148850832119910739923781060647740775191293433187515411676764199002664930730622029384331618399471367322488086762475090333176091927639657567709396822718263198974738430278339018679042914902931622334625283695742451772009468335572176852168474241318076315048097694541440242816903308009353937002197512605921442906877043355678749185704062737773710702343026686537372157181555555366091095012706601277583698107451048939722555701374879304924863757018133077183595152816333571033763844873120906190083104653874643634008951467435537807948231472522513092284264521216422805569206585759225441938639091168171538421787220502470076785910720668241313403569868405692760370487459067610209903392088431663601585366181348500519831641969033559782955881225896746930786946059157323191037343080345067382813164043433146486812916346651099149954702374907564573003851735135322663181615302764798467680646534089650967471878697166201673053956228224612328403129300808557593583438819765325048983981260610762802383279141846733013801550724077673723861571237635094820449721458928913330913604251130925334936211054970123406643771596682738006769243554150339331377489948917714450081996513487760721647550326273041658265115120392273248995178861684273936719215619613407786944611463254378866097801232752796190471090048069203832440757356257254625455713633383700296518852209189883021810617976202678023176594531551681334121137257404586230865728788059637771851072811153006691759806777133527932404765260398045391182449209081807699781263619283690216680426713536662231228398532848365097138672610691014182796202392540052025366883989483880705622088367387535324996713558310193900259088233059441931286431130033438782052383600384191140987779366960301736926600916094340355737224408922610420728755932832915619609055357163941468009291580908819388966349863583613455484827229315451286584352582062868460552277164482598217507490279859260868600813411243190574309893436365978843514947867774894880563547435834228790108991039645423534065760735323702280969075434467918703500390295267788967342468833905583369108468079572415471620097752906527294632919628900248118454316528553369265330839172831073055678579633717176951677801664604594608891207102896351893385818598245977918557746917776376386879210057963761584104644450151868809861136412182390450996242331483757293198928845354880449212461183298313641911073167922728520460888780254749577517309470379089948102401843219998590014151864646344475873805795532712161370462003308428489898054593568824634561388489509328320976863162136551719537929586527146810471885885383214631477961487690203585471605403494711093051220135352602322157448414454815572698669421932968484087930164709983898763655084783373773878473049750708519331581107475479758572231627524103722521216468164757067105196341166192412206470698324355337171848340220758694628307561449474398533841539765922118019188950119418594366994764351980435561765580268809157712350497559453969116765931744975146088123983978020437328409631367815846956229532433586068128725502698596237692957878189017017312229407594905941596328557087695402586756149714842890405734889414294668298541075977791777928706812811063972205118463320314748581580847179469625270562071541876590431305991682927077631653219943091776282981965404986225985719868871943715993025174116938162538222127915818365844344399498601197121947862498730247929159411543903196921961321249697630251204186329598347112499091758792655644201273463162841187660062799694623102114023210123847062409123779618360253780361551678287831680276516702294217526734265470191141987189795032750834362590412603429202263368696578272891769388914080295841922667647181242683982186241655695884520172001721580037540082609847162775575730787230840419477834262494668645739681154581187647681014220276608781343387025756076904131975286167865155827066088179769317226846173105538600101822191989834204329412927828881190018016755181646788058230167985702027648977875403187927733569449763062266563503540972670801801055509923868860458714173464875297896492389867045266321425468731935817911695546529737532653815286925164653220192372621820408541894685333384492692576600894358643437103447950121593806480725553476850630511661983852730497418696720077400370359478540047393853071758771408027534961816776521297126047462942799994516851894902219015403120835462823741847400949330981576760035994983583107991970830318904940346328778169616364550386053526903693340913920607136422377580296865197989959254682593885940025842339231533025322200946670901874128859935583382127212835072943195562778875846518205823627468505291533025822638935442457586963583494701595323198620579662703722210987596906362923259529374101445292731521781998646172070457718013170153376177654717530190354464864827210612125419881878197709921854009511807001344607461913714007230881941254270341930709517026841812449386642917210245137205571290902972269396525029318959684830131094244922448505205191516749385875226134375678461436422733980299711394636968235492214169851740948425583819452241961433993438283978201941717986367229589279786754735642177814918376124711128898510688867259546122210828167134636725376658280235484050800649262070662765293598715151304314725544535442033677984419880704875996169647493057151009998979241412014910958277641987995185353478820733247910318094040969241687207026329261350041819187684823988015556472409501378536475820335213681322368088990347575079373408240020286705073940766216680238560873921387825010560727816073302475521578126118085921755137956762066835923933238755002057631725477821976571475632787108933898435250430415350329101297091792951309517777808401598841843505814459534772801518596528164545252343941085335526311097281335497495844952807214143987881383026465914328070413038234385191647121738218319223694433559854371096645265088957038185493190108511207793774136418131478241201567827781261782197099629395494464528776788976627029300998586202404769886001267380318402411372559710278797748975195173684112594643164318126375429056456744120325291237425797683916940247177407854315870863215347587395728464121725721581875700751080761674703799930571355453433781781756305214187726352570523789986982520785487752728711538621245690205852163760657135338083719908048320524220754339624092966435124457763006309454816182070193266546613487573336746376975144706685072274675720667190503749016524025955033041395628846620105569322249574222421141772612816186270411719633949044741377505729747211746627692304508188413697648877460864715189709948206476306706084809582186778775143930764757946083237381124312329788935316625230862378820219670569930708567378777372747534522951182335133323502097820124118359848294259620743457555581877818026634438416754616566948100893594740702933164371757635507441016629485052099841209410921785650199520645144130602004536514290200056531471159453974683019083189608334281248408612073263518430011705153070965258773040686478540451692012412846508338145158584798005722401711569974629344736275329873432747192748030223409974556179508484303480106443450320993537194782747470572005274864695931003458103049467946636811021867171116277908673730585768996762378276377171371862166073757402490933328710831342729266868393819971209976858477080023771714156525924844657500127132028697958664707182418484805250213430581948289430493356912257633390207626099215758423383209137377212791867653268532386289095164613107596598247331027193173873689957191996490625840841181096322023200690618982264706913700064812300223827882490890556338515403426326944550647024968649707028198411703346306728493571629363629689136745911508439309416476832407939085955126976217755841826141604850095726178615549239126642863375710841377252481989629530754314875817501756828107749265817189212245767537779772164053788651974839130744594234467693572229288863791952932122985328326555876560353195388121835116822332246406589916055507712303894156525743318669411732491541030052352383108350283813936242717644800775534661139348480525983550912701075475645333692458971460374100737682634625084020119286295991970706145578935532996812091421268617796395419457182196887336442122963613733141377003166218663221937695251369587548378485470455407114315145792746460748263160878479680683466925579702494325438206679920204566894342499109780547553212907351143621994997861928879810161275050406358063837308838122766693437962500316027536302758366273790507413854397310500009347971318530524624102480572681378094196519368133023403148162561447061075827721252685616369570751550522240407027099732249751568031182065530913691485010504053512767485306717541612663221397448238096198991700589453304138151286255181168119089289496781559386931158691631519917908298671686668485951388447247461707478986527869953031197120364431852994082236775608877493368797930058733432803331028982716338256078827341634681795456960986300439294694321991602150113142814568827223424662608505735985897312744647616936893894579880161424603248045567197547757697194191896352057499850294713389275227656618876739710093469841579665891173538458216106422408279276250091070579810672958875676062221004853811450626728594523886754544441268193871332546546238288585064330964276277855435110801069251697134535191297567002340698555494237012159443141586012192221479533824891409713168412792735894916792866888535748743237067424247299646883700255894992928280292511040523424812111218477546569873504477739660562057653792759591740353115436051994091519158619185436713003503135194973801152923072388629749882382503707245911945046658925046654761765465245475695938771823247783858467184329737457220973655990234441846272595362211535697654902762098501481404143766952676365969808696410570504577365095546014276511581157176875469005629353991477569930650543949499810707705493641631934786302415183379369819100942501742754398231576490972075047905885896259899946314806615754722577716377405457938667990184248918226143492166026204646052953518695469392385074760389207183586720762457956332766765268657348431622221235754632274257512203440753371949571267098751637372951755145675617522283749228421191629764467674473903721837188605230884425868658964815564376293502864181406979978001472069461695243947702073974788224498807125251427862671841349559844625467036619938994287991201178546000037172297737040932337890228599901741399592607499398998089168362674389472028232000815387364914603696815293055016456048298511133532855015646944744946625883690830904759702542678406645489645170450288530038744007686443224411097450704616674084388572448094252834617146773245873197038192730342691502366252673096739105576700834308692619659378106042464743143715349342303321729917876933555939453251041465690817494045219157501449039509805902068592314654113974729745525130624405570622474572454091451693268717334741884802911946072421671862933699421377797421516968428732628474514411422852062860811026793436463393935098038591975101524850628903602918893380660614378637754663095131918895363492381261973874591158141476111448647014551751852521496919603172219855619588079922294927137988094161290050237349977406474960765586353456925164168568775788406645817039373838478367817397514904677362566836457396623910771295111753729401054410753594138870417083071273838461095502397368870385511733866012402230278039384966441964004044828889039059370164626444789910747211166525965590329588177008386434347641223386361441042695510878670796686398872608840767992181771694880856053995817996450692992860517931735596460511736776224318145159215943524306955296522709290810269305228282435134622422727089598256149462016225597125254031975932756768203639501783477826300158933613669959410103239641217669355974497111398859851990164912968501637670558862139370942329535195735616095785140009000435797981779650480509816534736515277605016084889881823434948937973314237334830489578071549678001099087609378811876922361024007048891625588623526275783331584289289490266682392926141268505010055371909593809423957677177451293889381011553867129400489150305993237179295383360381164245360496802078551654489964521575599084633237800816854603186798723074335643181059784765070319687114840723131264798877150538727501657744861311033815176974714252579773264324821111601151301980800191409537244558499104279602150376520794953082818383547185050323707421875385035595566277139876683471309349805894586081865224939116017092321520748714714128232415961512034863934173804204539762059938262772469918367637456539711353241352150436434616336130565617114605265632607624903812267173038889250652019773751609721097600302017331306045487650223516673140707663220564714461901501095953342725359871888012130737733570356779647073062376188444253248906567983419672364910424935265149766174589236491642829424881009244370535373414222649293259024319092742488746036074463106767588481819916596877260340116699791927581302314690973893690569287484899634178009932388921256084431377795766818707999950325282539650980626867961790437930240176630166144986011081511462429929753547239589226052906609298020478742457560978355127270853002850028939492248353549215951364143094224685628366218207823919054186973160560327092082263369709553132403056462600577856887155953382367034050844017071187744433236087696288457626049785014675229548193374958292137273926947668527231607151235642924436073077921956995246610695277339024694637085869305849109124613067334055518473453754008801338413936272263208969737659221419037431185160567325857160721438616955444130833984770720405525724494132598098019113485808528852537557694184896097274517188111377997771779168066439856728151955750423773114977797878507673202070588142673479060788612920172224840791616257537927466523456135730196224632975904370902834035695342264069526393856028779851157754663531467624474142079434494089971562230801420794680779701580893920777514690966662446741254119780490310819192666044019905562995645142055071118926620213526018263951288345522779039398433087016683825250350346063811554026292953470992771022428710640231619384248132037586342306942135774694414288950458440523411443040179024530998011827687650524110958039531535181330114502517007651513183569645925857409960729319853122795432029102053916141423167793014688968270993297338547566811726254673757844916659294734151455432888365415722535952640170824477859528212981110566741175100429262464682186743545936857084958824705380908080146775948254569123974534674382975064549594146413388243241804191216121059929360962318872916366308150289030545816897716286235097186695670176393972221144073281916147294460140898832270209672218949987907057222794001300633436147262033376906560131647963947659825947165152492038441221644135870054359930630023361511672608094779926287161594232666082317422514449033913661643020612623149466036248168424989068458901102296046609865516940668993642515806383366846346343496878722108660403554443397639765846996557825025072331010465689532960868918441587165657826355689491762956717630107381582820175963749777272133445629173829848935833549944339885335447381961171724684207106556215429726162211408100916962123518355130838076782363784979471355475609123265984052820396810808562849612510571163067945833395590811815942131400632030024220294795492805299677099577891576550016183376437954023233974543467558253371051565841322020260643897888997922126642893005736602903182894595827010983940661730216382057111885151190562139593648962565353320977254927688968240350191046476497479718522400600208983821160235387011179138398323165320264614847144455347617024779676286981368281397293970526343338281739169389871110984036510227981542607523723978186310733565460794168231235459381527175318390001647771250283210520641692588087938380201538785879558455472884829466883635533548348896328610834823967996582526996044224722333631686915686307838059325577554341603579315769257994876773176089885438978461662849961490701603209619819901359350053795654487638329714271936592170499473227367217736011433168137911270621309346384446759667141667487767655944601110839437889121553256552962514150769386706902995029473168145198243338878984174227733305443672549829969746833491664121473738958639382216590466954861209346437898336295936814604595036417404949326118013796680980322889972190890975189609330512002497315843088772702378198425985317566882304314660125213244208905029884569140409179266526886968602829197563912791973942737837514383361142616488893143680895099183281210033062813196704389438243987258783840266987561863804085418330591650842823054467118561926934157151807711795770135920039982604260211342040529667376245284230423955013182730075111871147929508038590740438910428323028971424026695524181490495177753215239045061415905827208269199995567843214812074041151240856056567842382266020071372703406267161853585214023467997115906145994819156646753300465568358490439045763349738973099096160746264052304393661062562342385093281256818391834923865748822296644915515405529648661012970443560382008767236110117702007601306137987960116536392504527452535612473724574231133609441534340676943278579051463534083010003517034129009798598504079441740696372450166852559633637177572440484294567082958125183404444581911461556573599997353824365590373977979214442522092690526633209208305794875607907611578661710328067294847935696656767045223270679834045349400468002101315608154445793898881111767703732442082767217424066919010966788311785998426592848747649656883196868854707842817259279630143155892399810594815560428132626606593315144306286433671024452466660785742324817697223287002089105599407928093377828602629183016616624045925670722313930876706533063889464817456546745288880955243246627133294749582109006878319525368153512916106198084775938939205654636724917030382639921981315461995515246304213186740507609896457117324115065543322706283619410741662092644913049158846404797891821206367375774852810876518404221110529767546230927755518875574951058130958755139586975143833368533276683685058184813733031741715237923317416522220076538105867953112392123833860557695060846188839440029972715982051376740969384816396369518221350445538319645209929187817474978118860206339981560121526100407958920947705263839118786564600547082311506012677654938153382795639513959300221405902850833007685729222467993936145859301530786078287051572330203961723699260501916260354351720236487357941422083368479977685185498734752001009118971401692170433958490346296077379857139602899283000095330140610036993022665931021749506983865210190079266665208299940647484479093330536783312182805918782439838418187877728003496409872485410040600023627626833308514320175994807252282131115305162020771115474980458026702433568973666339287871617397217854463843127385912246119394880751206188979595400881610059083704152412849772096576389097797098851998223778113583080801639366662343551985322991467806342624103471783662925617521620981279824717042150642429087584690532785521746456996144823229643859670816071489278573635632694705326051448817272835828323660620872245131034952177237044620957573196720711491145612937197817172082318445357686816776836006862307712107206905481961375399537570754981664542076429889197045594148294684818580868534979638053919160582727973809891771246774804125042446540704801681458824744904932281036016673800692948235966885982675313227073229717072590680862552212191380195229698771628285169922325209795156068640311638303060900770098133698930638484497890307465159425309426984260848693550250821180343702132272201302745615664281891727914953483525842471038739236756586090693282675100526773162507925816989734204812827876920816419403902694772945172953371693229880264823877813214369490723969846760132739147102896964538715315405381775500024184736002270568290672583274287632139529859380827862678272115883374807522649737382479791949051431307339893952497865270782706042121345043527961831988160864325731487610721776428720989485126011503757165421864547897187632069696317487657808207777022102470354970409125243470576852372842233443128753104292468764375312455586463160307673400308663521649412148284060398005401317290865342737000425194066522158481072499894043316713774206934216638658620022019407933079166940891139927561819489322152261559574367971345225044839953592176148470170942685462970216806987526050346002266351070546933854479848426258702654633150229989832814011587996066496035632594187198534509946999988563017729224522886087919689215892034682647464884473201362124227188500433316005450556195131808616788480928471076222932144727136977878640807190729132962443097981859055580151685584161680577532085466018367379978008785250235272151132249213061731645333412559064769799885128253687331602239934933924289563177427351124033018153833834656954254234149539728806709255884838664804417205257770462449548048880433978415888636892169012703749021176053023836710467164528516984946519078419302460306287459914138246897698743797557461691875778358323653993586149588835826616976933201324450244465953658560715574252404673962325878016368982812918419591347390288793100424328120382845527843351261183957472525062095273420675046817499236328132971322959241717970592402661705998625051293141981518519624917031080620395785639882630565873473053486285640892001965633621632402367833666904064255508089818581941054452578976906730510175685571309257015388806404703213453382383217752518428676336799367333026731785897331005140873722674923740751499082889345021439123792548549337637518870798664785828432417204146657308251880366293687651432989358154166910166000981139249965980677248528547133115293826235821616237494052104533774531202429902349447472025085876841420289218563618505672023622970321649804821232277521590794990766351180356835029201130519888679564367622528958655597415726612786309340663716311877753753434811257060576350882955415791153136898881386783307187606160858799836070474156074102051825762160193133633740969514799593130115186313560999632969932967309422736825014842115176160622094391960037605365202831396452127093707831124539310376151665733146235332361745644728615001210171199360878354355869787103817249032480470815998394101679660850258898377746076198113286595953777682328784583906184468634744891664514434267697563890191405592351037844796691130242254711791598262746351951227089711570508045898584747006052958020121106669462228867849091362983882290302208498192861072361311422744106896048230707570459119017203910931498815271625252242362905255007613074113855809713390613707418526010923364809737835405461297457364795619568623467297223227235199130904792391752671986253212812392704777001254890365495676358911868524485371220483246847614995308709746750575217933364906356849897374539880061542328698270020880866955703457712054107904178670412022714397973060697097467339282860565636545819597605410690155505169349913365634449158885428730069816592499896085352631868746438765532435187323131796287433483291038612958016690961429292525628266307615056775949768503311156169165453239627384090360162523075571344545530166986653948911974451523902230326126400482370934651577554396758753415039874685684466245611453938251657088330630451933551376268299336499571959237470840556680577098907856942645271538962390689445248097484979377530513531778438422004959092117852041495081701932224950557007888015929136524415866667362196746061429437292959542408476688832423358904528583599183146031104600035987536237645274693835560294362562826665417507119868863315622089440504147631654045080486649587420849124476438056455801453504445747716735216636098001384013590808009115790826539157813903934948976766819066420863273534931610778000647925291071633045431438338224925472395682375731052899664347441725489823372230828633110167419660027993382313260303646722465122741150967844422398011955326500491910891385842607133217019453731397214041785992712893399041794534739800037512645519708452789009116272207131541719250966445968328612317133489526678165885497463671157242786397131448381981209157800676731759427201561123499325910713221870230208642619247298411231246879916178770344812700526441088782070187054648511851452073997703042348802726025050958277051296006817143782597729591662923967892261237778423932868263858979147940391638015135414212984313782633121167297218407314273438466520388593991404827080186873214955839967428116417066811842473564988989770218815531951590440076920939901420188199483075794851752080366863149158742675919408521725918529550766779351543834440351300806451472634522899404362811437374318116557190159971723212991643978637161155586438879527072531214405389109699174568077852441024226100509193851762778535978119790426839976491932946292081364477494034444689345611112771816789518543825916428039368644518937432549110526656794975399696851407516903158954853263148648214513231396583300227187199735312726783254585202236642986837219138147223686281565177128461754951435366260558549169957481612095297576641490370851621445298013972438677138697422133576056636708286084167293598353889727171582401459416527148044386194096034469045455448955971439832420500251156253061164492231358198292056388261486821811884314864514680963453833914320892230958787199814939077825363690568570460081723933653911977119645426708466495684247288005230057563132741299427274669024022452451248177389382060474392633110401703115594948161300510920115887130984902199770701560926642758841086220503330866131624280083135203416700651510068622643020505919071729459657468237560514680287155510739140441222394910843492753027822863272107654747795032848261644774160263721009469774235455047345184847169570925642560401932977321528199082552814747114246460806309094112199197994165198913585037297584604136177247016126869520933690448991920941183335149410629442775043398860788690763737780421997990977301662022808188998996059749653392068325794239173882221955949788717961465871371578962389939964231189941405213487914822080334866579235019534916472690383299471215250705455893057750501993585079894226298202966367394671870029769341989518284062446714665437483279224257473038997819607985524526942782945698265416452668730031361179853332623933091952596189123031018848002120674219406019221919712697689870157609950231324565393958947022386329048775669995639683724151106954980598580271574353794227415371072655879865852204283928028448148745340729299418367398269008461600422627033016845659535269916756230156054267212348004092393257694109046975423703656367688215342837452682653723974867268391689171091345750179892540969468349569991449813647450447597282084142659338970039060778557026572427388069939963032229287932414364914619490388304616110000789780916268595093641349741792661252676336291378204275099076473886844729436963319602113327515688786055927919318514216432461347804727074459767620149474952351533177923988951941228905205862213077192577396768428062035528628229238381230954610206959943596755784240017588953844134194237498253981826396925640993047899689647384119011689621480613132029885962571611138323191324228352782234444920333299193289823742570093964003016557089767775358668912309344861561713912144594362012776736235685103262151318453383910127041679822484807546572479171052762538117645948532831944963194640752747160654381540556703263814355994678025933597532510221223893452852362557177483264891290791227651736617652548566458574297593728509750333159527294451543997260195703626610973140608633195876614003856440506197121672960616478851217198333190545951375020397102526338545353848533007338827166419192789468109439283139752808835076629595580422106881328512023900383391481544751699754018969006042635862205167945768604815733552903000343985663033201958499559394263243515937491699356631072655731200264007284185882316180793523956056404922886872412169358852277046084792869526028602350891807065801119233088508280328997450805405468898501758626740265389422264022997000853828270208193943714457557706094767147932172026171509745780211939709467915675874930813818157600090825321796464227474899385096169269711514321766414562884228579847523077219914704224697429108438441736487626025819688649955240485175589229504071458190562292571066368140929694127626122872979425724754007019937769898371652008292869912922933258686904505389127006581319731847736985812544735802637773901624630441423857355099904311468535406296538260727834371358644071542180983331332078100730722118950566433562925834736442131299737285373377843271871020516262592840980866207761720816771000108386225509066316329332367881594964811523042133809359373356705717366511415048527763874189502015282163011487897536940333545655407868023286268764304286486791263134416245378969576522169605983136174951086145091356260751722430232262025849486183507201187486525739671156231670343614313753156765527954229245151229703960587040648756261070654786777861170046598011959728494197149726889972128607318643507641940838879781483182851561882624253325993946710989262592424635746465485934844393319999114211359580335821803784796525901724347980694989071141668474336165518093050237179719597561431413998639333723317209261129352036320189540857995944727169728337927354648400573914247873720480326253431388697923474397854930528268605683501194089609483626636281724681923573487255128507077764139507799549077734232256203187687266950204494220788140594528395875243646453140681007159728101838462839439090901295873005527825969991425957025663241922251745217023021078412556478696604361806675129432357022860624680212566274917675012355877924255875226208300126778213284551858127835613970672699497914102432861685727367332854265484588675010791204125955873177562184398173063865155773400792733094565841299956330655745481696041236875526935492143268306326783575657071339792068352247380554530327467739097117073930227984202541099899302966842928606604417429823850734086055064864092301100941530112647418413960930607571943077130675522342020393696850007345751546850928995013024204800670706116956556333015205651051437432784473548643590560453859200828872408046067487203001947371458907060955901237429151647817434591266731310985152936087367228484214026722585694263952743239684795914797460095134761527667221087837748129374590835675008041307670295322219803884327955851963663453052228365390006558828326389539494887740106148149426036535612065994415524227597963837311317603135566568181658220491552932204765839475834010515156448788847851376899188810414018173355598081015979362081392644522881653295627361316907821552669036027246417138439994940204335449777289197085050111037987541763892115010139289312209118065906892321457932437960197126210400265695501945350131511449415764562878929710600333382689632596944372334637682835526364780802421212102563428976875777604277389761242398103725033701348036588741357667840405007288301265760538613841935778079308900176188613372342128170370594454334929400545943946057602103334637409466142502368286867875558078087278377465632664110242213808250114936967303207141654658082637104391858009640343968501374794476221837901194661197128661488067476550120358101392751197367395154172391994898374873298475047206580832359344134268580501535128327318473837481733649637578044867567337586916047383515251667397525276433651510754842658203577698765641506196378377217068113538394859833991299449670853986793561330085774901206246130167346946286395832654398165966803985410252088659924560597227402882216850658188247428745032023911116718380236200061900501959490083473056757846289353154887594038066842903119123512694494577978948722099432556893153987020502435437952843239762853505673520522784974476268027798300907405205834845585627074665332473535532506202427143123875919825539430466320263065872432634358213934632714174181145486033267782614580507062807122433110730756278773560488090512241930061785384895865391030108723565214095676556402257837707774132947208157063252168177175268675341011241804175152520480895641683704187905456845852141049927703544155450923105602990755535067893796805940373471840486597493055618500641920200502137066445393467212411453313060471002713884929029704263736495481190246060506271472731554915330598867283434840689330043288005712261618574621974128974368382187607738905372587104719052051104333462046026839668015331644072752486930272961439165945620890623608325182418839195745084352153174254499326678797746057466468356938660643230481519842634579355010901866331258520511781961808311470260696822356011390422547210801966710089569280059958912563492612873027505300049978840679643036027102496278435941254160437592025656262306522646273393617124782009686518011306697818516130348427751926427808191449127616871334607075902437197807307774369628986543052907069146277468536188719953619116700529939588126403077623174864125435086353470428198315889253538364868198533049388711628921624655570697510725268664778882711301767036200334095748882064778120793212180264441670782140653063314093991443576474499029029838282611976907159084741890288965965512963509271036642952513552330638044185455062131645023112812960136712281467301065616370483681969086856470935060246904790330538911764546942827698866866731341383484132044380476067190198314956433168740238470704228090556469594838298079781205200611019651060136020245266193565743646623379371553320363115613713509906056924109434971766231046440051527014550044316625900126902297192690112261922689737675827760740044857528967321112423058060852795789032463549294863002170451197416274177156261588501519269558194777773066956509012718737332856300630229755185893288389085625243546173103930919854003529343299045982909916820514234609957668652821553907923797922226974543599507596473392082384915735304610687402673987293963273697850878197892868363502135121678064804725483493256478567624076403147355070712541462584619703443305947003971560852678192900367545231266883552104612497342711725907062512754588639441377776674678780154005525476024249512746356902620068821713057523367899628551526284888561291420329932903526859954860048120506400090401263153077770385841395465072717514382078437856537696517917371812184550551586896478124244735938729838474343781548236424266687352135049829356488201065623368988611853424648032117165042788792755930537940133094603650149199722513898524673659312215176304513978935629472900888935409176578963543075857931602392553644079606855251150261237538779332232066885681457831796472073289160210725979675764432411931883661321243565879613699919495357553150464779404894447850837342097939904180218097013807218632005254728133910527561413849763564404236023832450170511741761804860221098909053776229290288487307408138023439751252453364636946358845224352646280160110920417497683957856943953936657699540437073613894143628512516950743746858153484477345735245993289883030060989707767041762325146066214990695653386814054581619430670610192830528488739341115330725196305486492126219779311604753941207707155329036225220378363374506384000204225093763635952599901901869354080389947642435376234931885897750363040435022230395885506711824714079096242121420240961767182960109797905688445775387355594184630519229214917807223925492218201785645032749039811405840287116259066648925814425752931702606373009269337048141368108425806479807224986190690500584301920136933602926881413110571889555774563867558329709515311434387120950868150913072322699390990192878533773289536804845961504082722492367200544304125400310608095815027717738076271981055029670845136947136641237029317927041941398720401326887456938243084036389024372140774134261407482778702879970520724626884150163425691730010240447388231451296257145864060649547522473093159438031725968860415669538078758617182615999488398351655366979549738528371721379389965070364619536613629870785434183791179244921596640586803076699569986680046401170793083518687794797800855322941225468047574767395730372456268862213120287339615406460478477639735138532979214794641503682902749281095412956238653815422880275101493261140854573436502682340146693967120237214235349631974418218207256643202087337558221444097797013053757201862962048820864448186197808335078277020251011512829619017490143020855463068757867552992759784872991203176962696209944053444612650793040996593545746731283667683714721260295289655903354833336429801597733927674180845146370016600931398823726863244196520662316965956867164687083279602551727654455648303615414770754660089441998068079967902705852088970562340785577939369355907922205957427129438363091851916967005908041581066122494668961689977351986054159426470254845964802985753581447606259181469359563232044258950181177825462747851722648571303677592250220324218511821897145220871884214911863491202729697970421904097119467701426819711822133971526784776731146958248554480517621293035572173480535640668674233133620139447365676196792584094375523307403958007804832156636742589189086351854493880549294037911680683557034606886316818849726109717252889016286842836098302391392424301399302103832724969939616397473724936252317736428251482843192965112401837537218754949958241248401084840783929659732169269913567981399844902825334298095480494499581152914271222265521239579515670412463964255415073992085749018202062312068028427243018611519156919432103190295526883490860203782110359948115193309104627799671177446920257420726824505594341005272528632887979340927926656683797910643905573626515433364603143661901231084496207829928240137475212973502712485913717242450159852667799105101904278381235509370411684809426525270171934386071244270939675324066740133488484413961110966106842847368625825074361749418290556921963966671766231253066760156287482599469820167485786172664474383971295399448601829353782260545979727907173889212379478430287893354105916050073220944757419994735191006251525148858165745906546907053348560085709106734206594985087041616164183884377701513672739939769465203843186407490146365467222743469425412564929205642440793093582082864597261529519884813974678104026943544762913977554976803933167898183789414311674020377618251409688040221447079952885514761914074118659350442294658996876281939333391233745601720961783408005574811815232156484922110444211944492233150557989066311649751686608532071267788952244605675907815990310887068822201024895262229823882652756518810257514144309695679382675891915062199019143071566459967420345758275179672318075467393995034798223599263053273735657710191728552150758735644268408403658780323274222830082680240645049641102238031879552569933719972501444546982329670335501090924371336596281624957149953230315898108234932796853678335413177217502055644326721051402710779170556806311766319590028110141508888230193756045249667206639296317076772232146597029880594684321083348768712958783959397228996829473305620384896615302425214378709025891418375605919208343329055342545293537673628256475209376151555526549921766760486897631339741175215427919192705880266793012520902410083225906958937630091532485494879205923345450069925706862425408590033895027536214015712581486586783873665536583114164883999697236029388672751975561592434764534813457634163676262804311001781609162402707105225382712849353795088784756534754531075182008389707026147749277909332910071325397469967740055123495940105729214304331685020583911011608507763056650695595462085918994228897518490322619566889270230855679659609657559556079584180140035199126672829678597858479848462793023651619857636074216560238235303366939103611828596349425458150074697521505835382609669502756769904397662021673935164906145528512772434296831953889361507964474555010808386678555960346732444607963589284646916351545834630401396430887566505294405103109919470790258247451255351253650564586099409897089548077589102137780786215243489798860850730359473985069057339959798815494018562349006504463223455737173421542700838718843234326388145989889646991512467428760735979698687370091685008359550218479587959567888178173363883105615508466112683892798639872178030081709069596252752165190189213754534915363798059036108694594264280129145737698915033797267309905591295411341133744914926688744626111288026699679317738061029940537782273733632106562971404588111637191922667270129578227728756988004365181178636397268289021554648081547194943326108028262749495233365942983297299605378184812781225357357448437534142806540765336192611908162611911683965997550641808047013359337319019231184790715918483695722237725238522295522950227459272996865283344984725746543260415874548617553240005334933960512016248526595680790536958076926466882712628570260345629225913499922253566787731567500152192215178472261005088253768146959535456142616742035039529004006107681288058735105470053981688478526077837951832464066785614095978032614582445998698433372989949874495758363963576797921107958673234836253594734093322038215959980547796019926256596607650326424726773393887087225607505199244560938727839523782533488168094373772457120625036516637351591752360643044130116393336270421205761901837646001468777514366146869327097415383976001994602625896488423201690729884187204303964728432468572876188775175629989114427693191756882001302508980247988188101817457768851740343478669819932552550988218582278197036854429354940030219921661525502450159465756690084724688846739021983800304219457886337935341662225945632278312599267725553181441013831205254184227751320313211861118676651858295220957829174114505141200857708298860105327268825127388284519458482423866018390102802733061630236298906681913560096986575460411516481643699246843626319057135006863718881014927537317106067726296204903151242308078006965930595285110163663194411476387070317949989312617082327652386896651823775843423546915626988631837779760013262150715435467503116064447587092093430292485830495308674344998383216453269044334972950522169852748032440026638429068375064519794398470549344795632163278955858776871555992264347583674953177603753931756855045535570799185897365579280586853771453060517155788166175796746927680162515888144224918709743484262404478583424255508380541490478738273526644991089298900540940295287174927333393350396911490799651227653358606127244976823285838256159239010488915966579169503808639021835951567657717514384900814928128909874669185386051766215781847775126972944128168401160736022045904555347572117350427257613566890853752748543972895120366683656497595705636814853675641651907128597875185341675073869156502421194437218867490122775758152765234130888950760687283244544293266391944505864299438481192402827592017876147837216223063389573561812219913119299739166388596067705996763298246941477725680499633012017961020251939658221514300232214712480001861714176683137544278543166602243924431532904111582968242651847430524898338239531960433260642602994906208771337527574005723475929806330450252430056071874029040095781877618900349729728348496127936235555603503609560172440430593312318904606027210501478456369553203310709866508024972271240431625245626205983701077643925255884768714208313871934926148447577261801631766933008555836473012595322690001121029141003803019075907299614853887685277585895774833157841851953525316636373976654490467537734391531567401459933768536817484589321318060900399660525651865793780132486179961746559745234816734817336238684940802989764612358583727774195914670345995680053738508032696869780257317674202841977577544931416627810595650997458520771654804714754266823171791490117755810076176052312135461358939774720058638937077409286240468708078499660140036231728816868064278840069877527936577084820720730592097145640086082974171971917055260418667616414429539295987505405427899099928085707029618144149755022908613372803188764629673645034114195371729763867097781906104396468343101951185905669326941547098154728005477498484443855127338634075974551114216003752487159143937804534360917730625716461038089671751165254259027969807175757442528651653102532984095179900943067350794536494495742159069343497038718416660567268502087362245655524917342606070780287587956873117089666370366762891810196379941417688761870096648156940103498726989804089326050797517554966792842740406447955331430770405598624343229309303373155901212606252921373339281660613600967012636914273230245385178846924671012430703322453528510831762048273884830213921755509462579574960307914936702802239626666291182788268409543077226658221345261092769149072091871286695965623636537489786514093932330407765986877339795489172375368026717339515489081032567021299628692283796660254226015114642626759777773812490309746467327208274690353424706463063173970449410729800946441870275452571083404285938560352972980574246536336500198563703922425435627145000330221214536469618277563273966849329050778655534499842563558323594750657728906033512079511000354415156887812560299966230338617387540283356161545010531839665918744930357297244061052232368612944134059023233339252387522774262006232569011597141322778767715517536103027034028347664601155036170304494425968635689929273676320763060253951221656373800256190800091529621628000785475979691792604355337480598828903587432409036042755996309337403311528421942000790183613779009546800735623030511203032281721516104488342535326168196628746060986932406996983500598933491722835294647321647464705117334299152551031045394782053817123356415440212881983103033546214241211288936123642587980199879179184384591558175853020161119410829362714119474209253646759526090995422454678206465460592043194017913814829233287022269058880236052156801821149718747053762666697950467607595510801907545320266363077407250466531201713953867700179110570317795260771792236799712106030900449138286766054321022777852468795023349731721962573819031867887525317158425272469038590927562234924901320207393349528767248998836390181009663788081811401443080699850310960284536333942247446661482166690567094943139458051625233664479172290354660876939150302660939697525171889251214705287869992608984225595910746759163660457390174270112093270299357248975950484448553155999202893259931789398391282183731898819767818895424326129380109105363125443447644414415859941993275276996729602604204368727704700588667668252398468158562164156387579656822538116827985597809660816918408803850436412752919737693423472047366205302031943351324741514570675171780837937678466316771285315280221395404295888060236087057619928521947281148602646289711033146666852599146266651371185510864669307730301666086471299995705500286417051092841175702019414926022928434124753629298386949595694017530619780291886908519952093657616900028795703237626856305511153669916417217430355856445087127929798107239145520764706961623948507636219428304870571083373568018902950650112738360170759758661234415810335906876648356567456418617310188965472262614423179923419888035965190946708614855943900480490283641055049004073169281382923838790047832675857597077912257722336849773324697604498388768147906446743770565662582261714363516630932165341574285633602381797649853250209417579656261179607433297777708741754564813856285287619816606759996867295710924915860061841278927318219885945261218108695479800006397764835127623568472318748946411337648117604805881584411390723826778457293396971461084304630571218386010268565133713126497073187487323725422936712124374749862987548266671055587407859435121251620486418934676394826953429314379311834727797685165584895122158961154685481433067204264078757523974167249115428693215385878477838837048867375977353478161417506327698478862788014838108787875555101181881239175222843078041873236446743911123004323297932416659625875133667373433794759899500284683832523267194377883112028813302156942729887699731598169824319436963105119862558905119376657324450055631125576772186444400723707367628659717798932482798178597820550535264813880932015739221018472148563064120027601765755887380244589660100578971302271707454838012717078302944234939724549228548420387629777570716282190070721580835649647077881210120874049537759040454556963643388278807735649623536092205842255408670409116738647060957595043878507096667921491916445332385450660176969126791438720328169066439818482300317076572256010048038310109494513035534456854524173489577763100596600633985292569655043582841285568596807265966573033449772451959417853264322665504292317633908360568874502462152417414263169037527289403132031363589852558883164777309810355286530497374939433080696398502953460364554784304010689182143483178330795168252134189536794855683222423245507287846211269134815133374322784720208585593753728943185765889981922623257117250459647608071777624462472130692380242928333061265827344316017870067474590544616945097568221979213161342722752382339820526019988941284730984819755583703129049262085048116235036616011666605809877171021336878792771285738621080578323981510948040724968309261622470599823844985478250945166411621189956424527874429565965011823014801546213191837463555328943727189594097957817329693334720473816208397331095913712848010582827749253588309055282084151956105308060934673329902283109701918143300948133080333927394452493805039696296808588720752611918409850626186167588805409103062517031527571352072607147114479055807118540020164109057528264591449446380608397674861350555254595926246876425368002589281039401141048100253707175891360884375576266605474328228823654748080900965892599929293525711195639703974314302354936969589423561238711193330079653860525789595311171123761552559332217033699963592230718856755602437270494336505247184236517304804067655378363171611239394491968684437057064122417404795668208156630200390813761220628218931619986975510565058210092220073113688772438961194101590585586199443499714986661524607303601168973905229251395639177813898265145517744905157816296641349195961320102163779297839224288929482036382556809631642701357113749058352634316163948777801325517141945056615895947709757662055496200221088598389424565202286802680839685957868990326149415117983913074900106102605363468171716381400832310522709610852782966903110426573189147354344585867038506343968454014693625340286956861459643498683522443955335717672790052699868161016981919536384225349184690927184233329234767028800150536261168795384094015516882489988821532738608941696366968454432648501396928835340696425133791632294731100701724704930549930126269684800741783187869437829743182481526284486485401276133459859000685057033568522893232572158358935931276220912837636193224893883889616037582643484360259577989867596474823603654118018094235007609753669208593705912846141996613236545684392611305636987000956837427481590027446895932880006768963646714086733817465008497421445062824635241088871292925883392407585540030751766600242205436463233310441570073654285299236019892886779238454857414271489892551337883428892977990119119008439848858949422968880628359352959758464233291324610524207868283447138778373594060538197186857558116919453560088188794115552450616608757775048028879709810537996394389656823604737687092043318412933508651794556999506702118407237792757862280840401086375960464383947000888775535898632993060892621395881738975623635688320325989576805759224231997120045771628375249760225685243702819257297982241375758197491323422049505129188647678027583791948020867130370614452218162421207607406493761717814568884848560220704272706087953924389961502101637379870527787347644096731510218080939287870157487296477754144079459670762603201230832834208055637039545587623019982944167436399152178157897883863804715468523745121087600983399160814784776075503918500758895293990659009276638014990607742991123716450370400666458313484515957102259910053729770148214347288924947787024800784823408274588833018184224628069390711764773057246039260063717699961189352983644151568625275872384070165358235502652839024507046956696325048837283701999061908602930564471219251794187674302388842563850894744185622468811328747986810097003056895515691229100572372143478890024630321371778508215244206645639410065358401616686562192115256822415384667492476839611405804802378239329911246158371672715350192977285209677831370265087389877890456937459727590638235508878152149986155412639142668545127122589661369950121977695193954738865623721104991129679026483992387863314660288284421354921921138289089777500904565370649396498601196193343589427952791501907502907428315672815349173270876484543270851934468549242382645837612603324926658134511359614112618667449873524157523493866328217869761179245103800280802687604420233679310059576799836168527586471032166126587029556043330894776151102072138066083441181796921286472087600626085919804253502617691701712721099498984991643534163374090697000597316677706465138389572615863631902474873549233355172092469118238629200449940297539304470510087660803965325171525502443890892919045519933368281057459715399132896819246650788887287361592502208119122461856485714197329398271876642413457226668279026317339547195729875407132932205607083068715740984083600469301080670418682535064251907028569357862964028207181938408767498997912173703927612040658293457406372666176333688842974802835621042841359367688788765136973313382857400661488609956166052211334405245203560587183951026222468974121781945940706639648012558301727653173811949525251537746703378602083740648361208346292007559710971728716652593850469807682436566140415690773025491180436618349873085625778480317051394943866908188198753862272913588366161223789711095601073075511611904885654543195906387901843277333173369560664548457366688356822511670343957282040469403718337411075680638358080493096620765123102052302219761816593183471016323962375809806634386946630063649468936017714205020546034699220581443433521547835454236993655091918234055578272414596929274594573802034217118971415643823099753315890326790594355948293177055537890222736716880051352415905490148439581207011228296357125070206068265839654908564987818908498001980580630634710271357442061751496884717386831537992934524416966420482893941642582116310655169037363409247275388879196323839786890830524103757518438258894128391034380691694318867914432693910656714965970860994092972799926107788735540433227370563862873287567545709243998725867359142670156586660925724294574395338681547451553841877626445982296477438661840712276021730506648346560419468159430347429960901380185104539352428798124618193334737824500928126250591044502072172433099770441111175355956086593151167572642126856430199743785308811821416900972154603577833505079882220321232526318697351047892419497215613155067646134616692027660919231057330699814673604389953970736315427523100035064262892854555859802847499535799907782368203912740918705131680763531759854623472062587213150773731930196241415389199923715473063190417998263741094388974939797780916858309386190617887219082391067393590200536114039148211473094011981345911607136384838320345635282567027513697726057185784767785316740763192385703307465497700235360332222214312513105413462960789545320745591825928303918388335189519814094615155341023107906893359582710652185165838254102746200199615344641008085669057468157666395829416588878442311845462852536604330037008818134999224492153479211761878481308372086145223767825602024671338310549253902890816033547746632551118351407328686590762722043912190145630876286897696817563616652224972905776649078343563595064305982639796064896190824091356078173969350946795105483069277399806988345879368282997357899511937496235484319648959235606398121782774838035843115618159121800701971903799405634508799618968328787963584694903268894269762016991671503743829739338072291042263853061839639770502752074149070135875613028252705200304883232807906843052753552322552647282142492917315966392027146860929414617923299771702595975833826273747096551149805026796113448197235430298243150422635894505630662901476478817109094584329282007315390708848555644077617980903893344088178853519833848478562932048257407749307750195704233921197914241692756359422488988377724724508476103069659356925883444691053782886914835094375783376732614253692687122500271738054129936380067139697067248792376832562722656604834019396809704132258632712054189049231640217506531621276717164105906793193552921975358477873883059136736418708482522225864779078227836402668784411971566140479000163658918076499296189663366040903929813832084693814719689996646153509815353874456591522096883567607941538081996112827707848378853712536021349197057735482472995576143794130922038678929883079362571200087514416006249537014670281916409111226182500254359191614107968662867782793283144569040063027697300202912821906119133950117428472444920798797445437430794234813030239987259224018914485104790472944750741207302032985123888960890960706165805601149581434346689784812457825141633018314506755517961885477611065742698881192680057724209499327177903977027900529506526981610712574644540273781176629115496569467190856013026404700610814069210360278840938652529212268683034382251117790537542389222790017127788955873335939345236228370331351578452230176974296073179172623196977930253320598122974543163905908214409368112078837608953127300161589192020164072633805620449004853374376425284010224784951561933813836235575315098859524076406688931865911965363441697424837307422138566331654812699889520163704106612970546599145531009857117633167680903547027156615550281984173182580901545496748944704910659346239068036739564239010434501590342184013004454612313969997491113017183687909342690857794281059858658931120432233163156324466861821472493234910211760883538276982446473228434281884651658515612460251380863209261800825109411600269583650181230177333380911630857310736023114810732668926999824458952589993201683015458513899101105804203788857829242403915467768592845231237662681093003778509338940516791778861074887012173702022581037041074225544807316554211576374729625737982223771340753390675217347803642078787350956219504589739081808747797449694978157864596545623021595777454343973552920294071092476136650058592848007732408175617506807453609938397830749607308711047875021957329409049501528853213708284950078575753139210320182632962099775195901171326933266315713773835760434359149904023966925331127932792630239223433414656907034131702302776098071735257867011599273885572916875654131557145358893490773221077381956329520197973118689812054699268198014353969724663771640432861535572672953898964746649485852364647109707032121582760425773739189790836372972577321461503099868653051731839867097705058899892299524462729404472229416914202535949079988724186848937021940169031608585426138656456887566232808198237546623757665915074220428946981761888014209416018328331869600731699717291491195398935919891622657959676760267966986335846761739606637947602794735475049123483322927282140902843261690462326362435085050026714762469476338758340230127879842140324961022267768500526600502611158482793892174980819652078448408189969972168963975612424073988330471443570665356409397636256395196092002505819486795399530740138793552276887814842732416966204949522903159734136141794016887142512252891802120135764366528548793035883599072657293887759356691140568245489345503932631464781570618418406911590101008665496956154215862876791137016735365461878551033816162293174689280557088519350224254604963424882686498635467317913549868914559440278614784555143951351593277017707461205515351771693724050976198353366844868334684843188950866538607413867196264773325404840047845362221762913167556051820158714370590520260205411679489779521429760569415786661885354700542201838838998069523435039574516743361938391919287865143384803780084572515809117513802834821278932509770756803402366492482694330773307274032532752032583362961868040947887281153622277317928020015696770199620019710442547181191693221987287569386689448126427470923924573641257038046830469649924467482534621594211298977864169294305044780455963861212374885345899143373743674149901421591906562798015176284343323784602318869108104571487545162336740894257819386857698936719316613583940357106983771652968701407474176179339395528332571213898842304085890161212191631968309159043760217580565980916520082439926031113346103738686199689143711761982689525890885620562447477172354255602870397977081887667792542043967967268777226183182940655751107662288628828487272403449075336138421834692160898542332201669269085950165949959708981615359228818680794893214104264278614858358096391344851742196607491411337824756236864612527353870348335528111035868826604075621926757032213739891675182995901154666612681857325932324691210753882174842957633035000497192707394596712935412204221810894172115368664652673085709728280417557700911978317387961153797683137174059739025612402325792732831313289062381605014436861792693026452048848690054100788817891914206116704414625389568204622589852992638441235415567535438481268022279056916572686014237351481090485995714589005455692866819543827906608974489578331493812066824053874915071800284755901342459289753744536416344615332309685575582840511833014660692479011771225738132771557547198659086517193914403921234146514567077806134353309737153072598017168306409834279128140097571225014894936186028473243563297718398169823755116771590410742880456558311985863292379935485955384877928667874382104692001640264935379516184248598649861679383905559781073103052358991540519330102106164460247436668161772106388169755663363787605532647556742456131900130603130043401422091249078254439868529872016897056207394873727451170031296134351462125067064345814289927665041164824245620611003323271430286480304016162046648306443442662590319003082975807406410936163360473585686334000296917242560464283712993316291880989344653937206444604027421586177060816388376448467392845826139255963402631736415612503839607424693186192439736845983959160313846770758500694921832553709958674436135102712768317685407938149007520462746920001032110367629824755172900692583202913156135007419564935843421988676170743049787811801414917983358143426684328544257508114146856869959941952098103211025092737090683575741203399033381846520649145242698963508720616818944933612226125432535904704167087821995495282889464158293058463016208911051382446792688342895633107729238169816435772225491675444438785571356624841624505721936221259515327349629485714966869313101095667551615193573028155416084112133842429478052694903456573877009589658546911078601631891971057961005118305719809135610300690069093683449582327917605578774937092043585929000464136998423645872046095396578355935297764451028096647644432081164941658119750498915137482811959779855003884617582914159700874681113809563730006932818104489920793899883480439787038566540785028787533481246697341409415296246190068775769256039663647495333881744928139162044965974918392747670141206473242249957650791959898924169173919782626183627659289691956439348662243614753336206745900564993222328280571770070468533654779367830168925251149462621164855928536300280309425912216396853916547379270611197814685291405374440597063081963359982306366814834235314886776272539033732335855503714711453008103260550562888823991943710102963411699151408455158052073098655712511830812115261310519710189919506556928694710997621043670909626327636885518225586405913726633973619745337833236094068098035640247416833180529231551982893891472369079252767328631627262533909826028694665262314165091437285217293139987346945308612657144209213668316816078528851517554540815468568960240453339373200743300255154989326509975308919554002505216502233508298349022497449840326557883669037491397586651458241757738093374082060460286250724010664332850231201255698637416491579627182554379138789548055870374101731144093704628968014858680985239500383007979469599773892124027241960813250144414770417018997281852127382017971534297357869134786034168296766886397706765648394983572056827467559012067456941901917440007927519827064966702849238252593110622237290163235330627863977584248281924579693807478669361232628707516030456485572552007572604287116208596764415484595709079240177847482842989250946565396659189206904180814006622810473055345258528205155656595473540649654902618441503501637522969129592838865169311069226255775321095867236523774475676258636070234575212023545946368533236603713991461355318713501683048200787401456549840012191607231670045049099366611791336365849624906425755449363547925089626244224011833206936506319450650175247807148915213145857329368977977931659349334656286472032182442743748061022136702359428746029761909876589066391949136761523637433233348337835162973495526991417411991430753494138195272284323028449863909076271675639560634329486147290236540640212328334694555228461823731589022192913054443439113784330140668037873134760188865840669846893923001755803468623328642900692049964278312621850807699615188220226843775372932599049743128952803800977941756110903730657603795495203767524949880385929801473594424103357669446994466883660069231196025343884956212659655148913242391379016237555570012710079024545866188992570075109754423875303468601749944454155161296959578830096005667505361959304294097147228763491915800674700691438723599752240315284926331765894455535235228095756206947547871611795027548792476220700535998974777149316259373236009768661390943012441987013355932559985100778419220863049610996107500321530007259758731574225628084399993420809928554441021050710848578063993768527406294184499131848210709403446919459725128219706449418980875221689661736882551954715591049948230506250999031589302142934238186410671484484332364991598283492085930416815237320569712610239546321336917730052892978433738535165128075475245531441720708319572239449383242884468176903032555795027710990767408781002375796680055305862810696460958697812712064359184445218535863572065668615578312972861808696185061255700129705601843530350544695383472938027954377698019167967165734233160203924647519781388187722665041137270236424788275056069955897920155895198942785353232792479271531530086425713384251888794700125589298562366320509135904603057235878113118451463816123839310040738306280661765772176695423090174853997903396219955522369473888907701936548933219320200916859006590150385884695363965824473687260604100399838687216119914742776372689761679157036750633926400426150463003806317616176250986212605412922094018379931509581916727159205070710889205563066252588795569088818790716884871164764486831944546505210806743242365063404389184697388961211776191077565591602980275284446898220463262241726945053297252381131899321903634837320215265235528225061733142907795371342984487245256275172519913589881037090075232920025061775179771796998134125277635952453092571150541410739715733492169138388400881087418485640248618191878519326135385434738836041715408306365578975403670410705651371406140763239318024371002342641119092479694384294553250136345578907014489722571242750005816832507431933084486177732271252349129025299550500275305825985311183358753154835332913829158466540167850351942421680267012071069571724110494055569137909804005205693951446313282979883791561642624098434964912677665103151046478117889835105772857772759371743668900630599625303054085814304019370123850896064367502346085260534542656412188074143111513025572246349371443896139185455182074843260971401534923001260575856846004439509012035361456303219629115912466264604039852393665539018016786584078133185309686025235458680734692256151760066746699684335600561195054500046666159572003282244133824479871580724642906119456579252620269129693403663530660628408456243217101130124823306802126821370011958146393862014118908721957692169355251311071682254918993417291742032333660051845749998212935672204821459788718153070635893553625619203078759790167265907210311158179441188513163169552371946290423084674380800163257995069835163371801311475748712978451533917732839078830444948144646190094950148810003598559862967305696545095022586168832149007125638700061150072615162061890226049291619474230400934454406445937146396886219858005654497476689439182816093811223518186269422744428275402547064742274723338163905457194429318695341423220727768106912591078362302077814651767118218733941677139642849266114519555841838299756864043819680442027188927855242377430428684903695149300760573569486134589344349381442071671083780522159812793064666028740998398759480045441513289986253413780366603303108281318089874699048629139291075777105099186427268539832579228341764741569712980278557726205660237097185522261904924797053297725230316562199916501623187946923429948199517510488536460379167147720639200984024347138859485682757501186034271739374277652602372517168740102208545722902077317627556174271892336112292237165360089595517126441008844816299338804169460382217615024572602496710792126194369022985255561994688876169441441339934585904424931083125750118996533008401901523888210724478595158069954573608703208560071526731775434140813915845865447572763174719525595923760397633786855428473050612486280962541863043921737237705982009820928547099946669865480428333699081016228972748135473619883198959710507853140667223431193189534905168115420520134799392437772860388687799685797001548008353182068560731668329098103212322234314859461781099493840865877485396878715256227658736837446531415485154462050158151565498820854445332442100698302322351926110795848490357859305614803193324115681251090103840230312892329658191409767928573179441326354999044189799236764876574838741221249199870127122293906075707551878817447828203246450581730061142402464989569899991033574647219898887213595016058169557017975665934134369046554462458221033284771713896878790029882481180334539877746519979050837263964979012836663219328320899232173539313609183730404072737823708317160535342264518230653148759172832259462297440294641053850587341333713430097782216496541237283685877663551782889193107032446686475926509169433506313329238455616070971234546359537709616418191248926053127142844123886246939744652854142646415231500378146766177663510558335495326921001237115666349637772239180503882715869778920481220306217417482437504375410132487652693031500379126423260834490994162917519930810081965889786843993547758417157474641711278050654677829298154405984745396389096726053082091744539352478357678841435930648864737050762011463689478684597796634425296276969725716806733542279855986080983876444374223390657162974110679318110123638933704261616617630117722337318583333009827062291418518505284573663309855756503282027494865618347211315425619908973380933579473235985177321519890659903035369324350705209584469742145567057138894976434146339323924901710048430033892498326515612218172320099179460881335478424360757089881402579848238716338735179948507109041327063910931486528447221731452079437363379404379374779096066860131881734240227329951214763364415481624038812972613103582405444800267772253232332030435018552507403060628787853301778691004581203828785915993462239249084222003511813149481258079373219393112214840967626218893088431798380161683312918842841016052633605554944277271509003336755389442832017154133895823075492827406743537892725461626379245343220419435344000476896167653351150084678645300990828439914314522029068310451643187471556528677626164303206262990125882597464343555540315305082418442323685631117371387694933391588103925374727994375448012730571447407018992212219802391164877446666273587970757803875862094005562204893554739621695817042658969163751723173099805424795182580229390254143168983332559792887997789849336590706332545418323652353150727690999053162585524627042000785370013252179900649283553850796910916307893395091673307868657645303406603462621665400731265481476520464066957642274137149590521435552306553661258318678117320303352488712642051384027207418283248065518016454974454877373857205924191926296435386743741501388546966762734447456641583438386411294200236680785873532475995405951125363329314605187273988211235255447692639077525609962324813147117802899190849343175233459529529907585460482491087349030764679664481464733525070820248475887218332834717850101305839683134741046852509652519175465198915138603568919092723042132710263592513452506913755378855914925842145449635463122737630002324884025416860590016585703910468301990960488996931704814608416624776489249922237496961349645969736497955499249519472178489039981182359113728298791496927844393606777496151945591485884580568050633497397070456137641789091361422529819568715775732700903245689806860424528749528490030745713494584969807759678371964131282894761441340937098179406666840430457965929178907893806869186466605080994884561439794295793518361640169979416598227117429136632954399094563143884043111868266859724918828675634712634476888964648191175242678319339836141849840361252586608019436271206397440071460446817513314433094123367028668429525777316191530769715090564233679158852093942289433394002734174118102509257224279824288050610491666120473802300064280297030605879133225871807325234246891189979376074008024323128181461539328060994440477052935168575421726036660556739302353594968380906621574370346168602688440944482269347367714709493281490546061647518905460071056485249144659354508365540024378399054605898902357777781812484490138120608529100155381965203175953736093754116893274787892401506647580331864202765456062676255915479573003191593372098555815995305161328601486849115621756917436401118886488039723195857087423361724041520428008809346552131560659209132314853325366730392419192121504991204946131468346462160504854850914801603862358200351898398911263323332286262473832509635253222113035037567779786997900246062609723666381432070913767918393639576457481687720223292104695683368185501995370623212998195546905819314790995178113883418396217388197737545185682613947247095802847717466338012342588888407528658293677873936961803516236414734311130766125693786896124389272388713649032409521157127474855186593428046967813644753303363250946454337262441304419681084742582426317178168667644200790222039553880143607644313789973626308755004937063162026045925740555831536087916653608976138452639620419950494028808162344460367415532923020583767334312231861508210876885735779738126612721808340641875994055820783593710683970091567953500407096531359357209122586517407552496339910075304900112078663224767061672335546758449903512786216105430041616931484799906988513750730327644813845875268586137635342524150915726819895555794141750939756572491881463592241490272102416685784827281540112820462637124197897975530152692424945946800775335667083215608485943409451896529680142111900653573196201161111712899020150571487976362950548491652132124530575219589390681574387651833311301702410339945257701156412626362245812190856805002563691662955958450385276531250713873328833624414872079010151433256376006169526865716359559305086521464340885811474051394451665916543197532506075387016908254933767861754878502473846382010199913240418085873908138631817487695299313449773447744744845774632718499504185682274380835433675168773326649763602130418550820714479405141786031397366573802657521895408269272056110762636750830619584131680776487657604306691588354194663404403297826263566838765615013412243426284060514835925250654569333770120412353781354053792400492604516056959385240661453508229304562111397440595352513464346764216774698850971255769701298399526800831559991103448175827595915805615218569666760238530200021157813507092397008605198986855591664600006350209694820042600518674629345084380775924081074196517535517991615327316091868638818449149455852141364537689594851324721655289762632616012419362193683691679794829828212393221265741904645195253693810737169027726287356625421474851496767431179076632182257828962188226639062221092098942462259918951331495398208904808095433889829960793030649026749465464951669316424995636945995844178104600991008457386568816125869711235862185575256854992338027997737341790359769515001380951832084328715021070239510024647761389766982485201844011845158473383012450518175973769162984248838483327115309360142323578950826708963991786624373389412979178121083252386910768826353196826423979320899562365356538489125157773570529048644583671550463858605022096455763408137262210190318666608046950006096911145281551050238150695529334730796616567832783537552193278424067185281051123431850893937985646931118615570663779921604803482920743404558594027245437996712502127005937767907789453583124693823536335613298369115293254794786133880333558265761937550713647475767911878637175766884069468009258861167236676106930813045177810115899952411955849904199305249913736641925190414200607438075606456427383901085449907711342221839655250037148476713475753066016151360024732293142863277288054903454566314010995769296047581001261247794082512956686497114983066187091152424254741572735859887931992786606385669435502708836860040049528567268911270754992392620733297882795254851157420099647812508819839891097814425397376025794763225187385279227436591682675652874589830849428671861006118945167131712766696999294865857285979430686823342894105480316345086893269173013878732732895025271626303773786151616529732525874349166173106969897976611566079148223792296255383307168535945503055371958831591491753233141204428664539726782363612184549409429739275127939680385763852653602275077312121430367928406621201276096504926210135976952366882350527914840940507489736114173880944995890801199284413406545969261228470918497722086540764447760347510788123883892173898635654859189771681511704089599779123911640412598495410411643055792527935976797180115260462889599833391348677422728574170618161724252757547294642750664461027262532336050711777922869150035157496751853491589701036772953726243338604217318167151011737665173688073239517985368629794264711292497575514730106211183648699139344700752476146057365266789758142351822540042862114166745730735113398017231010554638686502626310322003639284511947864301373476860486309573008236684652965067645215068009194788357124788843250390551964742959825965151231720509661958446526992245572123868742206864427307363434940544162096326175528185595265551611510664978284332506989021914283832292697257023565064164345767864814925353310961587388317051172103479543253066216552285254650074251422764739340204454947317260251246083166658462454190229352557615931052859924431090910768997682023154574930263758642851938128132607741144889868821228692231904029539909046660538583664286920105218307193840318320812789293692772175839449960669456992511055713749062872393043715922071366007346578148579194882180642694480213981126597285129475264835104627291437454974616171253185746837831746234044259792397916950937281471092607599511215583203868924280281434228420061383463162025627489237043996359138561791133453579673317897663266975341277902586753743809035966302738038262538236600874833483101470972294182566745650754516207995735097289236709781408889066019351018115821353393665086330200268219713415100420416729373863194331936664950059975851408064584462000089216442394071118860566368500852766794173206840854604534440401399807889877943301127674306057394001934881374132969131177902411475992999068564701071840462290397331523022580067465735554304024310077939031281653443788267863970386073125331707150945813214158418923201190817401647112856846086356306012787126017073725369322380502180594028168009846564125208727693674498011435327093236936827075601271610531085727278133121632104349374799240273601299097099069198014243201073380819351758651500046071276720451704663516238650271871728259352398581818076726699631951278142613631589023124914652488280095757022513115587191582021504379508465068179358870341418040510602351033290171153964646426911411056604554562530100677061234354769965293667144268232342349715927557171697859488327940651821228588663927563462643998898232188661240582766958801800961989898588024544237640622062854583338973313422648623049075798136763301648535162076485417095222625744114532292807929936090789726963246103827064410282703907160284577825018529352818387448341802373749018555213918941452154786515387590387069887024697590590009565117762888643212161583780915931727937869788815721605147378173163008696626833139319726216850796878862636790369337146097442256417003533953647137883220388040106348165647644408798519025834803088423649077528409594443913538170359650250759977652608675123923797440267922877546865275357874617186583443550813213701965271392365432486738771060582233706283125124509374504831165446956790373108251569583975071999493289559481718438942535233921568284444294322208526952971026535751298534676683243518455166030102132768876561622917285338757848605952368358805327139907709797946107687328461312503807814674692192556042583126228060432360145542969027049732956847751366768711350513382608895439905914086392358886395006436007027313104221905850129503161307909807235031598517507200905474333740556796210701565632191179684926280848685473604672320919234342562052861214366482344959979337477408048573250501073753859356783988586034946419969259472785848177027121941269336277276772388816050412073654473417484650119788731050426535153053611466477648489425205812873791285033361443606986843978554315531511328650519847057480248760942270463884468165285574674994616229757269221977228321870150361264696410802862545650935109951246613697777070583687649900756144827519863959251182578641569166173078388310182887471847358836582388400783060269564313042956346142653196490878793824934802649270116474374233456852805030437361333340438864051136354647739277069291755333717450719896994658146450027841199482705673458492815600404661702423653375908965971730246822362212265584401013508741111185156367016553261026305346876619654779770696968367197095464999475527698163349632269169260320063187981491587749035132630583501092542892910600621174326946027946504239286771380216944155807291630188987837878861248716096823906654496839215251754919598924724872163075938195959965750182639713733932992805299604900925944371012533490931468479749529139733152198739555798471334172268059799130618591232844805987553889254841269542009289929675804804047499789438359876463181081207860438741812371033603600870467153042854382419960814192793012734691627701096979957997867753657935101439776457131531355568650865404786841195151715967232564734531949342457785521035787235566430167712483404523756131064136342625076290815022910136053220469212783318837284873575319830212816790967065397815825378646671432356043496688882087166624974623483133206106523588680634654430994982300376076337611273588390007586206093585860485797443326731709506750736873718266407772214389789186628910811093106761401641995323200276732853621011075585157128067986377448798209635470558607385089231032846372371411128731148507523120388106809824455981941690208719009726256075127443941063336773327364720579763868209792024055974852891544631836520126251784764795472820380794536504410899243754543965411103163841997956278533921174037114814015355405529057109090396983631859814091688227829019205053505269228370659896282878127162345333757510390944477363881477188644202130286560243034539492674684575843372247385513648996361448972863027380786037712379059562860554006346412115091463420295811628239314918106593988639487005104730163434546288867060812824309419577278576433145809051077301659316235876654699691217836899179694823973953194217562167558225491282378419218374967809658009237775685981196100630863271854684243256889073536060747826369497730535743860189985260971757251488648497556692872986398828783580887429231849950771844389340518750463074541903911028813726007240220111281663046743521632854350532596775321249667476380965826478991271893743613803813984709962026437277723751973166136824197062016233291394934658650979397446772343185550714464990517972507571130581183326759593954192110073835230775812084462024194138661995143839619726843427610582851634163571878720690892464547458444286008936456071964397062163520571670049042381854209381999335790575159987990410548174688786832410913379995577928991234669514588715482295834430994212187144618028381132184656885623675769126356919311485204889921514956218426878995720077379736858622631600600810193589375063686796547227957313164893654112465333897034509489012543652442648769138547361295616004691138344468241055693487145235765255786162397394807610186574088510426467739079227960992510558269472410348578125401449765662396423170508241752612978598399429211782590861420433815929539214958086753019829796737920129722740102847253269095380328967973448734074022129641099301665387490002253016651103002191476608849837872977756168606228241928582204368735075982871191420540346426286553653256780198002183554317958366300504822772706894124499415862259218030641286917508238074827506042796865832915411841046102489123469279365426835995682675102116469206371527072165579780252510735586861874763690538512711175275118411692224920257459618893739574352980512834216080902867326205410412465140852648439014962471059092587685297823574977020027882724467273057264997652447327729895969620572282328848324849545722672247049086359216629659442693322990850751477298367614549018331362566924062718118664483688698338345753501086114236232477157471768345601660697555807559809183192961483152408641386428805775222423304971105476980680776206666770374906983698112421481946159174138845096040227616433582430387562761245270114266728980574124914343902574152211832236442425639138256482726851691845846848430294845024184225536627961618455457431010048338214325382550474361209863428954540561172791552153216691546846130079563437094906387698551942215894368433179024441020179948472711882989124618277574011317024765212098822139504085870888009879161089467037375450150368809934904833664003537877582684595246022684753096981658674377137391219630837349029393622622057234352863788682449474065850951844411554585406150156430626472307429949930182826759195650756890468103565533080002209215765463819550524767433005946773848681563748478738632689168867100691467046888272783505003290496949199529322184749174300834041381386970623556897069814558649942655294676890264548238206159504880559469900384835623254074222147266966160772579349893249861868478518886246330928220710518931697575941616663861992125763384110712756416419422658664963969584486190176930845437718014157921959501467877843844746687565780577795140455968285613893396117103528002351418030724875281613456624218419323403787943549855056378168766220069892339329991587440032071604114915157081243693815553420189331978490895127384464002831745482653741131771307237725317653775142583971393492678073504186020805813480514763495951194168746164434599619703455242203888024690120204462057591799763471409692054832183115923108669702780379681680832917547621774648480992976250902497311525085479084539648516184322449637061957528460417416793276815505455485463941744452219756063463346672449024226518347567820885606636031524697340548645765750268314748830895823375555603732808078405331566653408551343596541603511309443722636537641460570096983799577761440540580007917555266682779749430996944874427369311081081584325353595811857168766446101708764440164533614520397124081804628506974768440378834109672112399838226105985157265113403059107440411357224354919773478442173529180163918979343501637354942356164817187878240551859458547764636776716138732432213261186099315412507908847454079952396501716175861975655073308085553519287267692155341263651244305172280772669254690040131892258399915837549449866504827360875029916160520004830938654288318313378413523618093055978121732441714064647080767043469892396345338753018831812355547268599909140627306105050838775862739355590178933057612086707120397001140217491840331395436493649597693309225512732620434725912994389380871661142579485464397177900304041734839707231401195983452267829572948180929072624600358156340498018246670434521378598356394111417720801236992888674522786452032994322615330568499954268371530671062161973324529163922534181568213511727233679757837480525472773112826715935010103011549509604050362084284608576401156738481342068465448243390005646752366461354720484854564526233547856043221930303136137456657523326778447832984282928629292714207272460010184434655439332437638275750479897879548677364620587779561445069689869488852308621188825850484575743514580951807347544216242588043685577496338816013219032452591394292507780574285706333284466363154991235788884183767807974901176473250135311290344286245370384747835259053827052610148597796658142130959885501664185915527688527671898198334669572831381100006711131195889225002363442454120294780551475365368339886627536195911622734780056915238545313150219241909837391572893628150404385369235735197241613621824969015980374100176211817671225838217894699493732895195572639562494408582978810469896507616761974760440415850205364719399899762154637595185640539130191324269850196290758936810971190113203642173771827095833599874926287668864066020050669931750493020862622970152242072118764896284444144961222473105060198860174334982423106973434644393711266052900063639525016387404320418264814850669809561486152551812933738210275154057622100273095409932732225934731527546313514424631338506257339049474215443860579654210796672531471558591340294901231840859983107545179868740315736001122724640228215932127502685579056070568331196215956944458149628536317535425221344672685163524066011646756812886495458198498798404190590433030945185566973394275219938798737848792847777774598008627197576692142622954539901664493598904777667784344920359481546813955262118659434950963896451044059328637897588247314780469683515925846343840891753462317333246228713981232169748290034303219601495319101941775178153596736315136381852129953143797255305973283577081099281399169626714736644708029972345164644155207392184813562086208664376410853723268410540844360447896198933721945315785294486852159731969419595571982172484258308872958678997070633315785881645418165140994427573734811729137539800543533266069685502968040491357021283368987705579184486902254532450806609646393571524746475040908269858625855047724076869035953017569228857521886890405648594759016508151181081338650408868354347849609621645585622487208413283590493762536959852447601478000034817785719467302621226561775246876934783700511189160416100410979263021353286980539668381515841415286873653662453510537151162445091068239632851742434537306399565164628356678858918647926968500295498456164578638535772287018966333708757197839562025747540719572260256134662074984311544961065116078436095427810807563430657444301786751746260498271030930553198472517701651059633269634201792966716499166171988214922315438217433768815627300966259023876028483270996292671569128856861249968727689865194068105406942479823847448184974608054539999946793997414655756858480791422393778350470535028626220199217780490697560721132530044883306231378944691834085569179147486912865583957860634125849262554086088929717884948373045548169386092772272308744134174112221743243173285301807369953950941518169642372919071728554072693800231083549992297430465500241994593674740946300421266954083859893010697844112154034888310002349129769967892492371453443335684712629833419717965809377470632553819940835728156610252559632484368957885178340815357149079640077650295782092449547978077123107533982307821369625933265543860846343091203884554159624394059172261856616185316847297033041073433829760680927859446218124640189683669516715248758715230892780369851860175114752853616329385321805835955362278822488054836598223447487341750756018555442701257170584432735461571374593020973770423014765493631417224850366831874356439202650014677670083347422312719871465235328539575898835487418513036587289066508441524201776374335255291383461847711578785213872839628704894178934659000520241813214092975856357154685259561754888398726540608182696989882779968465097757247159339746273958693010407913622064583808440198880071987965838442183575042520362774748328462733641222001479277476753145208583436488565731066159191250403246378704187930388131120048510907748643481470727138053691436769799998378419524027053884469657737344831777482440728745710743829635038081773307858063999797303851854642772807707238155305919070995705007634801289048578591634510187671071816637368435529353706273310937220022461787837354635032729526418267185432864589583021388072204169015862939524349311583181749406408903195675945411148716417863776719303154225787872453437749954388406785218383996136538091799901506884605062611326347167121018120563802948452981236879677795663930323094950906112022316473093911358408129639492804175128437997889307567092344817700150084089457672137436536244106587681403009631053953094200513089816201209788979310106225098715193363969269039207215943996905033213631114435995970968864428022467573453965002117713121706812809005521776548222993137759713463209980551927534164625895970688809385908358577223921491803378152171219278961759610062748885128565671835344261553183296044588311537639190992809385329404161123146140883313820653943672978907995775186789025585763977050654741387886948948780525515144883755554299656042810400010696802126041914217514920941857493456321379379358162118604582494804429376168900865203545183201510232521684031934098424763202466604558937388814516281501223040089106460130360867195268030364597129814225226747363742031115366163824713404537033054895315000184775609751335788018886837832367195254653263724784057436144328331286892868905425554872852746216633471784145317430943471840976908038963150009197009894618380294442137520807448466248465301281491307774768528308883988839396280427418167907903719199327525387684230350034891898453281998419218743289021565576757232365613012008377297635336003633477330534896484111499438520722790871087617341221488850898689408199346326460595171738678613023277742600461541690308720899947756788109429365146665160657961342057590185049826798763339093787258929572355871649912323181345146181311876536874445949138076666325209812706868876076167753446212607180953655653477525076825375606344862092857977177724283353062214721502656992898672467409673096558800100218105964101253546291183600552494518196071810595202871384996023469581550776114547742744631206131965507994996795426743827713095173618912912891850430285143073196282153213701699588532732679163860509021042370114489489448842892871518073402366407638597393771114156817024154670173244005779430973246746343828183343541860898830161379299757482934794797508381545664958273560207772069596953786201457757619909407099749822545534226053525507433875997425854981082258402548874880260890005366713899694436578161075970366421007968610218894964553603558693608436496477648385710281128896261440036716561106284176873470774141916096186459608767544699698609817720650607061212337942108144307329012003272979449011813298279559259521568138060760548024353935624324539160106169248893764971818938279822995997938671238655700348756499781507662247660527780014567785891809261383541524627028343476667839988864280542771703285414706381195289288070990089478381459900891999457056569038509491402613026460683325838989271974925042195522992678562913193938275050178367408648698999222199612735016863418900330472958847346434139034925658020822121861404866760688184876711366936415907252496365516082642769804714698230591109487766119564144904716547316716305475009448260046997017543278639458305717386480711093302232964426402484871148689238168371527971303259972656110142828970693726879133964048987333686600892847657670059072194094756221151796940173299070304966719402689523891719737210412486180528569722711012538978257020949304017121972724323853234104844683414956308676966878451887924615189593706962549994972069724796202641713311812034924535537871406860038048165626777804297035540512495077969080036570815702181435677562363369683902067265131919169523704454469899392581497495644904985301175023583192526771289633470351186958322437091756197660483011660538846977604478707643037039428447527015086390365645025597113058938335218558350731077251502388669588192106140764126722060125152512649302315897671952738422210266924796493691947578170941520438890822699789119448229905533504655563917171806223091246480768696761452889323004283905424903200670172088842932408438578077472201850865564700522964493551160796817361672392101416903423627485376462036125799595958988799295898131960497362081269002377301421607759867276175983637793466690843717114247005327159567351241907452394900209160406089834651422404223827538921375217326236471576882429777830159573159659785071039511409301745412835129779247288133816047462614445136662509518561038104660131183795723131190705954287003888917559629580148702165619275250799470350453290691660802168103307653576569503224296690845057092400631592303359542172045540767924948276324843929796562218985249118669974262401696406693918299760345581572682022417089384859437031656851173604924767673918886626956833346324732220025336738928357965958660402772440333668375179876612041726009350360181658869920374946652295871787360417869200603965495484683763451745780213815551492925135730778918017013653322195219146607195254254952577642075303937817439521419737774928321881031939405572841959785845927388813252524630559500643729610985957927311382844064842336001285972713390496736122146863994509608409240284270305383051086332103853892028705319218091327200672223403263641683084416420634099240537061124471591321663526494801640337009624068169602262467548715710031726630658409834739820371353094378724075520317829624563754305695991012004123402178928106881686264560007141333592381204641924138758982080415561770231982195246015410746098525452836939098102301633292710622661942579639072384558499126620509938251261210338955246923328797444593448701139703136327169865413219798351412788825180627809762712371018117164934805175264104375147539392495081261286862504525164261393975743685843794764889392555782490342073323278865373810256185630748277849969814005838364199012162109075462292482981303030422194802645546111100452108137720952447424454669135295628039299893759232487705452109548987355576614423968350000163184661794919823396604679197696114301111512151303711797250922923829919162287295107767382581387922880529794437048466388319358863672219491254254275647967476484158909038531824776625135965231308961894160902120000023267034972699806326648511920932392275143275014589705882603381103146090908065261511281265790642107768961885628999810592999363187808901079023957518307733315241562714402520017146621892010286272839530748731546772885954525647646934395277756631049685560051269900338031899940745081286606572544463866438005872971482195084085834247369987550447571748954133100220948439170055384592129217976598210335561568037304976123546675112411009853301553454495148053487810686914801986354194513930852726886671370322538567085311551640355261955243830448961187480864126398249029716542237703893405692472689169891313600000287096342644800485257724630114390260349815055309715598784192412011919941341614705232940336298956114063626543669449498818578099032569863520083897626499197467764687524854043418254071359363891368204908425080939662823835088235421339422235371161007609835410485475480355457419810842132360347164128868984668647523681073147898809647274027531009254250658998763965508545147151639155994592128081244718616270630732916148623915055602295479720108150002884757987271088987512031676522715062961518397034604014144511604844851286893643205197606709944262346675496221793233458879254145742340184606950098629580566424008183717946633648084761256864588659271011708121557194618302977316735496192650666521284037220696521192553292409742050204932092632893263121208483815408047307567297512056914139223216605788764219887752796660362762167200763848493260724936878744364332478426733799884704454431202631111961085053387334228887898546697572137006320203869086638333155320229369294085538408109543606709600255429534230971156086819813990231127381983505918102856852365704339737968181567389565198121901709680722330822454983167438459246873432838013570149456078202009930079165797712588957110085543778298729745251583190526420641461876847036808098027289966959416807634676281872419731507639436353962541726425028894090284788034461707707943378963545260635537806034548036209889681116321706087259115128416516031022860864102597618919145498122086879637609290752998376545765627609323926273384263624354031345660970679662705465048746765332241012662861671077777499200699697391708931218627690027726287335880773054961883975537588671191878624360984103089944808172585887330331740369295039698999130539940160349485251055265170118697960166123353495827418131429551018468321804758828681788329533521820817186238011527427792341138286200447610964028247065449398394371702473969021611338769957289646674013776733841721267458947772305127310656189792551922659197511591808252463107516291633907621864102932130839433079551828304580943880602390534863823154297278593519244142776962788860371420763323147424816981000492769572278333687454382318316685909219862771393257003351583599861577408443704844590771232994458162740594416684525446835619047108347333008944791124001945891300805480505973262388948102619648936314860893939175830735291445917693033057052095375553871359465216333597538333827029167177192094586378007097832731075359392341510211440337507042924143368766352708671184400453119761633059953721590523396755556078986772558869793917707635630969437171190212964777753949172419198220358639186204233304890216037039997584726935724957695955841376557265347785652304419312630059733801011580575346506257808386282721193597564896732330735926741014677781074008162125275542839010580538197258239721973585203066315111331421078872002382138737262018971339798936469348941305985265191916882235064265659605771279859330934407724691309320804314480208908818663736005722853232836908586168262858435986385501043143367137347266966659351572363648769057746410122185923371353029139504131693213032567739293671221506703091100537847907028548219897607913047198471155481336898999753970428070466259072861482409279806482916761456456397882552459132015478784266540689498381194509674874029413203649499112741274276813616183717424588665945029129946022089263778159365496598865587402100922451324655811131849606827006738607407034165411847765556469888083645819555995968998043409864635520757676831442662736927699452230630747072635460045580959721393624520348547696867023982942088622450294446901560610202116544017198075494065848552836840416625101751871511134735350775480746750067120974225517652172948901937528347086938328187139085969104299525678119740272316530734082628824159829825954174439915186868715869547357531449827263730736165719429673797018356442201555922412798046494579981574395787111145307321102652908824897900364078400904753159211169747684500228056473322304396659422772104238729257654647041913390976307746595785049925547044358580167438679093037522913804660148670044014470300439413306645923802800751834922635632304930514232812689418096306037444233789967279728037987594661789318443643453511112908742458498119639687591421941692504696570839234705970164573383454842662063381219382261068744345325405152097576270992706927992594676706833590254394110420104954020847719304885608464353768509955069433598473973383050410512550836368292955440220657003771560928443844563229171250505607824316571422711540723393304332640742858265606863610174875903449821868961485848017662552637297765687497413805010945855936019273760201093326832034978616003745887948873027202054641699978849782997118754081929127501673894337304950280669682575644329247154491624714648051245367637623498103059484412122518641308178713102762180492504663042895450453830150701884928482804297452912051833604878568333137575205296350958914735603032110281063894601658274856537151727064292134429864288725510503577483507862496072217115620450477979820956024619721452803690957233064965072158303225333031537016401803109888549830535057443391314476770039972738503412015947638270700172346293452253378682315459206042481085374885791019583399577549691279435654552018816255683350456287579373144631616100758790513944414299332351749558356299723246246329870938694103773350730786415401969840411774132531417074874666788362439405097171420034661862583417375509744036375932649610126785667535215006845289888530327608846310806950756369861578853119043331045022643272204165980563193428232053620979123102209923966619824008648902597752705746622064102944314885023306210030792189764420961696137709420655142823397382878875108928413751574516534943586719541124188395948243157744654512267620247451554632742210100751079240816366125391880142953791848139254569050681368807943972119818106620262617166950713872658358884795071802798640118387279498087482301784141352999463131449887541158056266588994102162206980435372824214079813053139568280962915972520576903720779862979369397869413835825446168621965115969774325002801963584047187959077136084367328339132310871388249871732012465698666474922255531543336711660800328482253475928540971048769167592276409957314407476885175421322759412294944397562873597683502624849979990067133828679099946243587010931751601058072299218683937196521513235382955986957039059946899176997653571205665131163373982545224078366021485176706820025988123205442600097257261759458632842909938015893679984029553969995371905490562326543921186884619728017359788031440469134340783322200129274511730441695958556429855242170580415703964915620196145088016842013204708984853512304377692306093348204007637676285314081795630634941539851654386575737363380343061354506812457711110524879206058237283083078992913326133698751395986449654820728881828763010428122246838151562325064287871704076110737867562721218038628873719011502718241004367841466549683296263121867886878330276102692500108644914242400569341951773106247195256577526339647595750877083601672046169639816730623338678341085921464666778915054136482631319608523206727842215954962533800200041008155000224545050492748867711333097804510054687364925425950395479787954415755415528341146461376174377608947135033757305988824436630817006085342180583937798164420849635043072688793446271190617797822289782597787374233931955150819426215366133488603505983628718604584695476812128780043810610376758586932124536517235774011695092291096178565913448795069639560511866874565540190182399244090364562311536421298044703236191512346310548169716549464869437899770775808158609683911523758410093622041643574961303858999472522809747652616805325869912860703615296825565959873320392939726674744260683208619682096668100149699824516281641833372309389307771374716856245623294909080732346395403271128963397501170502732263467004365588939191220972317661178628210651762570097228335816346487047654005931480332734594066718343062521523203882249428871389663392482979209214485386169841283622207399922311205705317662704560053369965965750765103170637015725351331938113089879618318889412550837318531341514498015146377988475169631954484781149107171101619192053524166692934473661435632792664225306343186562580286325618428354095173312671445328358812093666233414106320263484750100119048671142673450826580099274318196524711976361950355734624493389312875531809731225150433272066262078709123457545157208774731354336280161068568971703994233623365120617361660238082533945456018310887255987546053889569654536637649739958226939920680704640519371717617431957271914974718993770546120769865873694616042919259514070071617808538368722600341805239137737243920193665222914506170152635728363495028463911911330548779250162970590550325510203384151697224951712334466855008853141626097466790031454055385924666999681107202489067369530771008280170434552486749696532436503557579239462914780840919309291660152187378949637995336852730702649456159871531992180880156158858075851487986727564370720946139374415183534678210070750547562857527019603189101180403790841848869463238054921612245746627353310236012464227798888341743938513501776157223307972950151560117394047587203211494843471117248790229124153690892658854058362568015433241962019426784166561294362236630581800048130301576338637245632939177668239567476189246226779561457250300009005231027799954014924419926069544838115247949367364938719300414259530958838760440138201427010359793457163121248289196560920897188740754709823303598722797426137261891760773413650945858310932927526444180554327983537254358806362157578870047512974614122076205196667345891313418964133285035713195281525564881476897700040829432055621264371189168777035601914507298621408294287140114137074990121507976639672670932385622139469590434065670431265756542526943973505019949833489195622767195619004615088428895520549359522731486577595798492352771213069723951661605882320155790179189194962482569985671086790188071374328290828145839839311531363374379553187241532980916153024448863881938791986523340518541566201426073187502635001921845197674178902605188676507501621479011363813325531530818836568167783196271566913684922887457398575347689937464881739364266434598505366717537876612773370423913792993240631206932788986844300119703527436575158722600901219933513482036656942589056684040891402190079995877351820021429110792198369981941932738296224274240585030023060217978272047146892273721899869577705742290298230761658110958074033344349303451627339439772213851888813482511177067457674459400929683552919405826966264958885573614722207745514839538898199643776010740002955233807239360255794052684195041034386634531479065294784035194581714530636481407621056409216429135631831060131325234295489089419773557708746719415622430421455177958057459717910120981669993679955467935504651105598482459687944884881695776641351741750130528235441792551878751579138576175711719881778724004505634504521372110698495710427453514685970825681495520852764157751613408400863993356059843857675965058118262118085890513959682942950561248686917854063918880160347098913226730586143508493089817649238989469473382586680493536974674873768906480253685396784588681551041043145741598799383319274850520040362874432257188897565768561690647506310597925340904062631180279037848414515910049905284196865184170616409522068184686838067998347532708066411732666147863110933139066785992259773184544314790361541964952808877541091600162612614108718249728866334267463947756523008298835871636656115572526931252882591085232831138745266322418856826541576690776618180917520848372337964168398057536970354989562931896259685348006987300685950298558031112042303479947695582628908856735754248292175992456846099296129318300171825025211605599547805044304765566418563624065850233217572231068758047896213167610627727564473520023689818566733281972264656681051014236101389842020141266029031326652762870054912022598555298363717785666422209227117314136994329493743195155579565613859023467884853223218457160705430551254454990352916683414379542253035263725966331584717183853228390810289830305239760346995061532514282381274434370701156336719181437162216326191373017676472348718397170201676657940777797691193689748145707797840332884256013527070108550688826671903623618230264695299733748034629939590294279867407737599801078885825473422616867099025334002087503867992318816717118747149102830039041533501226941198377520788350189320944242060569850618812784099542307684239830080392105348964928348314108428160900461427077854674328421558994558178770642385914595870707352578815275965881154575161622666739417174934236331246239554177857199141304934902001869572619721511531646557348248748597583808292334236413182087297645338273996520622753692234068826643885174216859108343885478748699835727041009919173017753967076643182586343535692406372512359713858610056521056357655452072414234837424253647005386829397891400770372784665544253833871940948618812700091990285790214318566591534856195193795759231638082901315140637679291751174631929353334084261442203122586156296265130114352049006093274520941607488764798582332991226232079874966513551702794619614783228749814187002185972048103636135352361619828820573870664288558047224355257076161109344631279867163503067400174112697888659296131112141029309597847286121381459183713335421975683358012061351236933836405287248078649008741765929799544321357627643538852586108252233816581241237755831688122161352602911697246375971963771777047330257847411825591557241465903778362897699604238607288055910259373640785196111599056202855514740148108236151387155210465374974058115745293937937729996856695727716319397612408224966945342849347854272695434736479810396402285110525621350708264115126456571291155304946991857915301748014890945795138506509329395459053049657999616249695368980466711950898465722459336146916180678948752410945156608773017194475505112795951712111929869854183982034671426719833581590346150063564097895709575645326857834384736884983709675481686590227178856105538750837706276271352084952951925015756168828661705545774192657904767048035510406605559118251101233682542171533694952720137051159431375915542916094660777618565632341605665529703842857984984608425563076001806958864074303801404873611632234407275779526811294786861768083392519495637596078956663713351655139544672617594011046005793862908874123263883838149269328157853265964380575787455030638685804576622249596012054784052244550594733637643590445684919347887487987494974394994270865769088511289652807861030155079210158668044362498731715965728090812241835434948402953532844790896904024723951381826633159475004288828724955402546912980965536579550753931180861092800061241308913905629216589167151596730268140236338569435529261322065331847356313911376162538689839778319104704339542424318814731652722077056852888834185448743195066195169944201743597459569116082437184860826855525732614494158632568928221614038075944863032493428592726996210727294872781340156830776140329223646316414503227984389514426111376367510101345562410031637247427763387213975702242700543032061838594222390252827450216341440400877740249743570774265869557091526429390699271710574510797516189678556797325811253323550563524652791240676426245305105951788138100364739528336383062847008513310122886694391623039307040770598517414540147203593197323351925337546982843802513099079977995290867068120414695235318821731502829951387359614155631676286741766905679160987144363977820904066748104616582952479597681876999954360481508743492270966098601876572710028670418094997490420321048325283506450734708887586666393766754208523576447990517245954056504241545526354759002592502588587413087468710700596930859727513833597485103346538643929268950206257335774359071800718388978850116547612623620663049165000002938111436764164431660873090876318012715742261922431546113831741559274407548916118881870273026043904108443691974515892046616697480946869895381636943829711609366623274198686914336955802131155750618703401739716330704868071347647345575102675587354000553497131486202947754652842070346428463749936150515362479553262277938549569961391794661379662661213032401651389358874429829545363992518158184915021791074302581432076212256146489707208441104292121640408899046266689830967729745121974273475901938387322278492688708956461090701651533540983543717197154705790011325125239654449761667848861271601146319607014768892401573715779037611088579038333902966678170755441163400949780228854236822240987004095828612564917014131970020093417876869066625159985431204795810629148743465415178798520896895734196069622975938816857319629027604972520769880416375239999935035133382120081695569462251014570429372131130917747155673374289898528719351757191796740076905291801951027324278315920888022357418764745538693685551704985863515977538124485848970454234681797555977313739415486026352877297656032263953078243902002278423126871298708087087072318695383769199962586857458306525717845859029967670127358401267557229230524186923958757725669791098401491650515575911455574589529019912942908139175569813103857382334300263323500202151332137201398458929202427408117627582878945354126894873362409372092620441138070511381844696556701057435764531908057944682039040415919702838428614293520956258122317756711198961412198094671901312470562049208389592077090481234942130506660916626268379509081466972722831872357319994819140391742370604950951758578113045732215520539578316790477672561653563475694165050213179085998280318321179448696027014694353272635072057149478408692975651350716329750823006422169991590213831644280721195087290097618170814500668828548995526394660278285820495625623887541517894975259764565587379327505768411688814749917961422256826192581977916660499063542998336177536720400249139590264341167533590173239606813783603229755494484608803456606844339048871746140090997609128317121574282724357797901063132967785729751572583202204305384190358482926176670110760397966336408733410970085322552310957077093791167127395204060259977245401104272734595490646571919167863797597359044453394426706432664759330820979467232904230375626557028296419123068596542450514220560722230290774434575317588257780726595519940656085058903164803618011877021185665699352509585940010386736998648220109907040002755115596291127204265594421334697335768053370624542087437618487543136887179989066646063992592602939423833162213213336704061748242530314529074749264297771405075620513973964767058196969998304616697020723523510751691604872386731007250593140346999617074010724476359199383889750673942735624487331108086201295437446511326541040385407040143557378180023992948087076011494684261169600963134690188032734573589853517485936346052052651366809898875216746790518082746567617877682542891954245450709724454112954144849764841831671196719913757230031759552886154073554297500955321785179427760414431365283411777873079932374732858978120468444678486157443863975828324736687555667925175581963297197345966586356365411910059290455938616812173869664370423478898924954500532047109845531253206137225630051245427317855604757506274281304601049090569074687597675028132684813923195534824416005629400906090966486924086707286531056032571481932732416442553768127689580952182427004005253933390050553046903092868644360945063999274862990200375022183715616320344472690605853467164631269219314588212983934727093483363549762631443401556660654475654524491286829519643672019317551188077449164647694333691793967984987152717113507559437717140189385877900314581190590414857165865583632329214813221080462913724095493367029468059484531578186066546865799860548819983631267049475976275519166548991927840968930380752221441964969314750783192211686389227489370995253711829518806375691922015203025510874087574411767646296881974233515575991331512211335419905335998452255217728131100383915173696138456055204500502874800904436323958872605940577037975448543391746677647962682924427409629375047806291847553776089020700400248055124023780135240098278766653033310554160132274971573318174863867156332988088905461168063482280067070616757812523905764550625581858024063114766664561241049957668591805193235921089403705649827468907918074100457192002850679968499923512542193321283243009299670365382551414439620033599017492825972223168548290909152776907351886696818829962785054142221410923666263137445458998878242437916922246945457336438922008301581372826928051025183471678036717842972136411136543375355820720921713388188724222034297925563690644030794825079664722493823218785035195748271931637401830343531206494548960035586611621995726590884290770767470611163804421304097562118069359116451086010912134756913270602238419620834625006155840009187797089268424441878908953951127859818113227649309510152579758624995388062310693569285752136818459107686278404503613328155194803278114213333484548086529644255125989340128004166616023049637426696027787818335650234308567715943839738005245375112304369158641065988077449695319199252182310992109704194403631129132205285738287393258933911364868381687593817786305732948403290599276028234576487745111538810119684121486190059700283484466449528086187104069100065798255917714474366134151969847616513851019314003507954907003304896462302371028869660857777612490805541873183963299599694158257004647464101960932949296578578125770750977079948461655127854958038111070412663345956863347759892567906029827277383497589447541917160485820878360630488538166220152666593005033340745912717465241546794575459279292194204208927364057853925347669593777853562463500644897697693620159067616479683867882473393009667133995656724172420984643588413060062199716740892433872171400924469642081726771383232510572888413966712600593710078597581228436810649373955418888819473340208028726627223586162479186630515832375767526237298991245537445400504641908555775021099417661726119977284277519300772283556327625490755517470156868342431355353744287865959010776809512778922216774731255481391101412271530816995181054313437760474817864973611258823320942632489099011836134078576815244549722708338144524183643775863012935285939310861790445604555384153855114402392560458097093709369075622396944745522694031263316053291617715682422484333519983698016567837027533073700242244997142593071724340069324681115033116899562139207222539659354457871552248305442883677187253028706139608302750956686548433215303235141491199099270187284263817383594398775793422200761816344335956043261262870036703377120174947284633686905950805147231180271796453368922211548346842894425429682962348832164960733702885970934508000767726185010931127980694512594464146075861900598433297936611261015320294936538459299947606174869110033647062321812230566747569795094543004465905080649287804216240226261381563140662338113829571490658481599955697005111197316155472358101571389180234373552825362211064134243217276152375367474933622228126343625650517570499076597864102273437731295519225313259811488752107787054119180094045402254421753888085807838153119569837388668823969026431342424339334737983638855185483181154614350023041452113536864712049723956734928985734636750717191031645537223037398228920538741684580582049686305098295280285628238196299121456065410437380474828668768235402486405010506918291602946167157183192654764217071881031501526756765672105500515905013000479635035529746705137047442076446186675860988697957713557833012981070341334591353599600179521725126178821104714909469572088981536892887762119573395804156818740359343015877862366245968728641869390260575645933158283539553908555376171746457745983252341206459417556765264029303556766185747576955340882891523874333363081647906639801206134521913407043297878423192557485478572928861063863622639644047372012512095590525520913647594127317616817634928210148199570322860249401428273110147598619240053917619879595227918247333199423679212807456962670415511919346901310194372743864913731268035069324112170515787744338385158262164411582793922931550199269226151084331458416069575310338371295821103891145709876915868074688933656926068658250370830154172192048500341152694621072808856950309477725091827884533082328038029873536445588648080516902171757352305185373961431013364089916889210967600896254096498263510496548428506716188089505473461331782301867010057701367754534449463952380132600810729838576706720130387979195153274527840995465136629818362662900010197777807716036754487026153190912278937352728826938030442026133093293410645168926823372013769535233215016501689034269120846256792147999151167263087289414463570425785517830152366305743854403340471661962806031206418088201755962627012044684396517581983458487173762470088517200539779202868364084064543871157779242936308465191416021105585830047150854161174314870784897498283023696707784312751353576091478748970329385460379297280267239214691465981685952041252751516352162251754838073100019470654448402999719432792279297966928342888777072866564551003339767727029071830925737186372489017087173935230461729673909325801769236981007466283326824464108577825039106906133184115066253605767468805727238952551536837085190819366193902984733630723170163560414726261863049396265703017896984869130679138323644211537195783787814381465702558204583786452359839970923725398003523562720104086461906692994960989260559628952769047086693592183758992874717433878762049615396314401256843176720007062449952574753387471171955427389482619034441730874781307326061194928837634922560340746601132615460956827006011159464581363531466918484797597095933651235544925913210560859162677280618410535293412195867680502440098099763866311772619604209488203482783552901594368425012935432568483599118495090900869400034699939067104529492042711208925505019326767691024954563293832302255389798584174516376743751363268044398147732655798955066620257007322134044930928675747500586306246049644004164044672096523573828504547120239940809849978519865586326749124960654135462150488687838866911375275987644416090947386397901676446777462013923465665881685748046242848378565783363668766787465833827768401159882441099286324482719110913008266585269811457108888498891436730838211402020659229476747474656868961677302585282968612053979751699471236690215352315097231073099130659874764031196094008621864485407804964375396441910489268799609992526761023500398583387429936259013544412049965201911473972730862418611582747929436211840597188335636271868538935278347864225941967149600164657482468941970554994346460307897877668563943560527222923029387202434899087589041024824117753158989598762399518553213610689143710666575820568415664487062653399882584934686042815424393209412919985457534677433981631345679237067125255409659570872149743882436280706893813407669119647003400858861515825217630850423611949881380044214449952761502536082138087489518418767145577771916594434304497802061403188890748016142515444568244416414440373573777432751460146550253135059061323146365829534377296543430880648257209130385866701116452502224279873591759964899297448239417325455708242574127362831130874508900687515748374594813702370446148653713541361969358588689905985817789486502966046167658813306316815924434522694997210691119943474903550910390045651833674240074428103042434722011865597068340431187300168249901217569824626364868080127349389905547258079402398987297901857309387159357135193418070582080829639855223776821692711753234600903307108265581192934176707655876182871355152369545625989812710133513612974019617908149541403951626336442935548466844766348138985970450332871164373879732956740012691619342389335390460035633191182182142857318601219333814106474172266208160676326013283805478449944372060243361346048746021225782497918926192114009785093629396779146055776762470411032414514193107279697874095308113231340834720963059872271480323733710096004385702329641639989102618931051413110446963203922445213571424586612717221264729439562495656131109301178654817488945764721763919568230876096858465764781898010747195610714759095791314082939780252734719298536001610858089686357400416788843084367503690534211728459239954504336787612902796722441397738316557496298510830248939080697764098490931614794617490943624925309242466832447518673612006516721035011616792466549970422161953721858051327096782052838627519269527544180655894636797894246843139411024823396333575078573939245559494084815577424975496499994951564954080996074674900244321957316516707051641695792783471751392297257614977256980271990184894666488384890566509004493649120323070835469794190766661632256605230889396459930468377159409886685871839763449545950244164266707586582114387734020490951797349034988877830071418414048631724123774947831189393724435040041833052390867165662465993705826910486152965615246051049014323331619914106345677620712667661867848772573838714270196222053633550055149795714308300689954740125889502430399845310106433082842484756711567003923538769806642409903021258321324635453704519315181555070698544467626709696838961819613391424752706535946854806767743148785869423025680477742043338881500095809858730480257213004588537908350900655558531665327898687333517861105737311778711737577024258746384835870467385215723930429924196191418260859698564605785615488315859108947860648844245274305417461757256789516853363338819161448259608034056171129965614537558808759907731598633448661582856210075295457387665740284535520112847736555286908084650903378276717167330996099587192781769018513267488331817626278385035933560011545903407146994780887359094067754850354981671970851987153752639370681985684633640696810439288518968355129507394579044057014610161585830978605374818096114824636640335681790188400701352237242601477214710821698230820283189426472985684204561289868555899177425481607317262133781832372727675596374590589639014228390225532805720891397189749182279397093199710308217163694650638476526054592350611437827101068649400715324311984521582447107153806251871303267617801393268934529533705476122432225914153397459492438142259800324237552801040826292734890506838837149536893206048259926736555131086293527048709585821804363864452600603788544897971378657817744582556146952858116933020998541388328966173430265882370797796405698842092540074330009851049753755173275634103512352232101248600565259293905396798741655867912559746425578017769939770976982650370176778227522210277357817725433150711512225160486817549058743596173966845064884567461164183504652321222070274254839240618902935843356700815995858112937900547013873281031399599902961365314133746138964590186925884053110463284169860046651609987603194701017736067576386246921531013478966644307283362498232290254859401221524864973186678703375286661358830322354723950062684605177143211968079292200946904626918276789223924945527969885422153989491125845044188089600535336914369700511222171826505263594167473503590631901639941654775079153912209359390396685232064674117042046206249219836310076281974915780997220962414052773998309727054267727640716340184680647575177345835400289146884466756379483727878308726879444663409232245299603983311322336454893757599442621713424571586080198683368269267274776298838724783362660168227464947444143040869111824311538190868555460952247711285067155540733635738945190365533063366776625719394677777939134914437732873446868953694637112558942044080939749111955508248336901140490248514987375888217063743948168860472914962235111030494119534559491985151964287789558343567726555359084079526452694641318815296944628720911759264447403984490621034772302432781319308968414855624712739270475183944078383839927185890702393127932462985382098762919804864183536478005840497322238111997279918525923571016744728392534496137295292716129694452445439998939886930036400912141263921927388274712729132639850814827687565491942089057269540554438538857313944957373533317037661461503503422405531739756333435391747376139160752542772386504737023565939195627156701829022676275629368649261320691528456842314405779687109751148272954210570876812329916076658076040893167712376720535030126952242535315321897058956006556741364275978234065136380096657989338928019664067837182408113945049454958021475327493879554823466072732939106015789968874571902057952092624194448044144133598000833168690768485106774901456940541192033911513865539460371752269185761903287370778626967136226599093359024207725886828508838419510079143224956980296345744344460607091094313960939362964241532888112716100399836526997461419755380124921218768360704648466501574777547707312338616600417943553842248494495532385710759550281541980617939573561391554913677352790590768785105290045397492632693671969354888115201294733314258009476550995589657833102907173088114767346742813114023206607391604879799760443288253063314360906799421397645958347538204402817706648498527980572122799187344284132470810618570879234169707813893497550387252380342722375050493762767082823425717146070489199661492510269935495644158130994527326907628395120631540982548690244489264206995363080803641314711621048449499310875235517249939460412785325397963260862032299176113754895698874532749004092167213280311119340447506730200979645978569553205509426726309848499804266626656724617574903339586022003191670893363064898746043198514709885954568927593039253030827646274090781980741389257499474995189247842866073230357933487141761668279070606212236581624259491505756506103986216836770522327691343723688197328819421179394836204847180913465479267385896473112478208309599122033394890499988719965120081547655683944509656149299345879701047989271573012837025253648183496335013635485042598028942436075692120064636957277323694219815494611470374306282724888858863068253482003074862550809177419175735298703263940028298427988313475571132532977731410827444750472554402969452371647277814319439595014736586150853285546000528791974272315375808668415901656206653297325541634543440294615733570856048239458035517037099685930538796472488368518707899598762220569925498982649628650178029052842380779859883424100270218898264013193725143395540595460163390836984778652236308233115662456442493130378567310068608946214939858717308698492415585491301777134437337925619716826216560198344496411619742703708625285873955894725074066442414378994629161251805064350553008556140712264209623327545860410740403198786882904319059825223804608323143889471010670411556029804913876735269763120327910146762528504411595189571643876432849271738651418018037039086771811118375661236089551759472888367558655041738610081371115208447285323244514616345682397084176643624200797256078589450816111494349291904928753519355632708585746738725001627549568441678326743072169185202203816819523042660394746815455286220507764261753125096490646606731093496037432595854357283438725797626852845557497404919386178181911105211843005289647446805629313947347977903228617823428983243553483584405281866099440893773339362106149446773824303699929079249890007933057414033107750230263220495776925019995874725734192418938113613665314424666866452715847675731610301700532843010531850324428012629532758748109311316246197397780898355290056564709577692791854965189133380974125807662190175385352226783390937592212977318353575596281419572380718397953131447556708436791168435874763352040821548086364487823534184327079696843871911010271378757811129830008245197807642129936150856193494259730103501745533326716859465121544824814839692580526456901540546672502464750629640365722006960866029295940620103685610684523359910421171611871023391844145131770056238137705016570868437465645055473852647888072327661900901158607383473391126891923216384914485567080328864751811869135712974930377334087323048610875325704259960133955838796125511713858164745581170807874485724019534048202947644865214154175553332953417414739135284128099553195143519865141948914925051447508691661361682906649472387132873555698994592201154591221168934383280333640207492645061729608652524502959755307138297013272199266861597050801776041960821641648853174943271475037324030632354764831279652485250530561068322901090038275321832740899331178721672219162721024076249233589552270441232089213555696679428449400313162991786139486895770224654182120483546476248625188713961216688070105457726915067376563925156873578479544184361177168277745595821376319766240206044412998841575584287122898592058849488741211902619254030321839290156131290389274368441357828365886111279768250242257640512135709204596598850710962107210979987340073441698861946163822379079440093921097974820425092858111987308106836922270533016937785777213201970735389532410475012470144394095141284148914636514312333590014753794354868485348844023056184418663768845541423665905473659545506250301439750415841688526776166088417829409260201515234516022103528746222777846632629052532567887877265113930873140357582488648241069738138238199348957841364708948903234068659690909191000492057925120593931095084453664290750680266635958889096334246041132064201377025173387731275511029983548151620299661174565344031668615150529868457599619503065841280275551620819043170653845651763086643952343929617790794929950555269785170496305028686964775822646926850415149163833675227792202028696891779746887348811790998328657414163017878002745757049707677990571250667241361470647727128818895078300565147611928208912993620595853404535723411625873115780506261674454859759098172151877811015217842680723865500488073126650088236701096051237149237533444100380274134691937905443507031593875531246941287128689841449132222957996356364764693360469228296015144120460678903328813696848245417026483942936823620856574918763051676733995159181221657978939452880860029662207333740962902817575821446873264363887823889402472222613303251502130269137066334691715126362399881184590885305938050999138597487736562854714553431601620539008951724773228630771306962025676665900470073556273490505320194300138486219376857593245024382749700388545573799190915682384676910175024297321726144298322418359470759753650638411785705703888337603458908724466101951844822881680846523697978539730673773091180158428795900116233020706352073617645055610649485235911168458465546945037936916697581396362313151806684421384617794683216994972772120450027165117970231434757846340672940359325339423381568350427080299517800125485173853177361447848343527406079512079416217504528574454218507323974131424912218412702670372406077776879735963474142606483368100349977765238766172410878104847703652962498206274670483503301641896707272982246037577111713247711791972386517924795335938529977390890367996395337073576918262813516802859542953940431986669765509810142604710387165867765419587834804743154149573148900368250690362081154827763469451348216263227222559522769916673655344605883229125347763341658873308571543239317424037423332207010400760271615408311405899588858289380125187467446061933937362852475092784783723763303367416403483604294690941296009696729853784505410948512421718575239807388853170226388823088369417929523586308874374592634312107524983467034565504813184629579373702105281721478138404588567688374100861079907271737187575099077257775298952466232179278796521930845137343889009794551657364168136295710953025811069892807887658276600451183775124560747645527870404130822036801160057755277681726724098875894160742119842501918898768265973058558117452240026437884020728332493919077484143428958749492373746117225315088322126588975673125168520305825540561484128988521445957162389445221255791423602790966351636043778576360554680864777765793570424445492907378816696140612355184234790822581937145381613939862712854301972523959802904283318344896118978665999228061285936429983212894106211073121831677578138077296577866578801880121731768201989724017121224333291651182138906560988868847900966046286643257909861984019149944710379650771676156924928533151830862528801614873393403428932437727185324020466921810061660989126777551042984583081200052575012185996838133819937805093165809730781373969082635268023784673936551802407725156793537234623132249741479560971688239506280128426103469865190802491301627095292639721038918885970763000791715199708342785864283979112957924759112711909341519558903438451077305210437223822169123211091885237323123364162454970061973454141477366252623850485047699135419588743397422188014766592158069978446756034198450048556115200272399265142871097684855040093197391371453034345979712209843934251952259850028405675122716624240906318863028618488416547364170795962239712712682953014919369243597091974933528595621426244753286751629191064989338906339721178439467549751739332876090405978881712624650014453916142163056109821630396472661261452391641703610086898863995353626045115376813549443728429211606987414466021740789421942258352761553329621193586384361788851963371019298719263797868448020929411283663493291556877125264342502509044948625118195039519923643275007392300674524078372293404437250045358281818439951445213499471408668200500726655567653544827252423871630232767351901052203191448798622058523383334154715018128963207561708481833084976990930901495764409972861219575230355603286934521382937730959285182535971956709908156941532967202006548715927218265377858660385836404203426552588386975970827184801226499833072794583782614390090863332530592630739094795920360885152133837956498449134664861907278279723820654599580639376383098078609546652260800312605113444985915034051111540516607086955219484780425373777846049698722689758471107881553907620954969279119844127024485128961622027106922054574277667100571053608133661111332950080836265297060332806121747403557630581012643076202910481019004806659629277247088254262976470757520087944477056206820698795202439447146582905062246877906492110405753681520613384557501824075367345450815766278294480984843532886389003342007518986650935471704421428149893636992330836394654784467272614403210486366672970557720182228359113182727686462821013420550817817124344059709165029734614744089303759253848327830155413326516753242379875195123116850645961953869750261205279302461549916802479944114571014474169837553169864059087230487851577964355595665992252239401914169373447643055055814482446591827943044711162536671303476347207301149387061828653331167240136019264046654900594885145552337600750434644735653006349418289890683708820909312828436642738277098707978589393430877451534263293515492721377907094999198710230028354650172344941626394236647344253987565868693336371634482057078437145106660625025669883592693458960659284766067465924915960703600999739639486462160947370324233370877542897470990027950986168091358069067483177889913853262325377452471213292434072970698942639083886771055271826572755440046347963964946529164271673590376495095760762582734828603810849324507368399237073001813848339913081787065254787211693420100947969139348822338592243883306612178435463174081365628364533406392486531245026590242041571983179444327245130084221684006426099752628099327065009939406601340589535869662824945262766113336031169405315133706306768332577731681622393868312229977066738186544276361919482369898893736591255739383014060068597524824616648630528901241768510607510290132065247297001639224680934033115478606578231607687190205158892117863700321467604198709840331327470912156216111749191467589189589166198309333402036504388931328857529872778244622695046439937936555198171350681679772147598625275917944862530113386468901877631181886994466012958519096913597786790242342225726204902458067900770488033132759194160892335801535241320583799823585917722512386851632359316155269086171536126227155180124332237969078441943806249159258331805820449830905133626102444371919905586239132063791779404611232671780128264554540657368683794587789005625437237779695750108835110376101163635674545102896797278740312689426872803673769579990971664289921876524361010459158855610759361493238337647847573655510148901044693887277486332258129754129546434272657668970811584267099475589664220112506134842585628938530103533128578592742515505691919563576583803715108050779294066517780398104016211314557165023065265031292168303086144174621980581556400007192997301013292739663968605976619306014589372499938290252774004072541421741745364791976366246456642609981002139455743896772070340256038833622075556192940811408527106134803542789814592982339042476603163644346935858705844635917097676769603061654096598527621619665583615150817635270874282233734561893598700354338645591878971971347635737636286264736968226772722288350284263187839410592110217488907232498454705612902075166263885096364087260131790249630132809554361146263473126459421786185522351962815646952634000458014563703848428328698151188764895832090085735621268747550009139736629773300692416036348286901677034772240194335854238864696937060496370568572586131979042288946589882804542515014841785259615298005725729345417883424864601425259212573096284797548814251460706638786977847246962783418254621226840292411624143951403935166763567113723898823269758467637916608276706429831511835553135453830714063294898976713316798587228722817152718561006810138605825566275488226057491302591504290496080130889112635906385363610992318495727794379645313231327032971363566534496794230260551685090429308172176577224787821982572460042930171071772097380778205298514053837092116693208521794810336293140259754082551921816124578634689425414985823994804283602342270197619234364629294589738817803358143023130149062419584365268605557211883034484345119257028526449102161413959886993531726427272785114496446385975810199344604594828629198631302721320581304620015388787206667659070585681555180037139364815198947081814319806090529069267484742679440503964049262541328437395993923269761278069842731232180265784416963318195832197793199795757629798631374131817799431325107249713268630138370230553357436581289401562447861916696992924165786493289416390107002862247862086586373418880054135127722904340136248229563040670609602888153423461567738871375821123422035662677572429515818584600314898168076019077326328577916761308264897382089274096151818536897452051615507931991379803042106322653303969899350409226609187564840876146837970268071920103813949235158234663898277730633681064304009558957286088479376763633620900630378879265207191125129942014831713604671505720100247165141136261947385862780552732139987707978174888048911129118660106402377455916091119871540365505804813419622946246011496477908487836326523373551138605450485548262284189652561394411704137487746628566301247731939666529811637813111518859215887416691198897793452863726619261764555240628697537707969998453601629543190314312753441518996715353289511360823650432552035061436807088856623129500216724721428537916064877410766833409131773565076095083602551136912523596728529271131073508574558657781371710805053258827732708253991339899636263456430227763324261200704681545645931471711106591079557481561809228023919825646881046816112418009868841146121043700308612625016142685023379847953801503836293812916527032785848350438839230035237146334607136502373396098725682762495054669034160000739028079840090551236724467065161927377265019627209344765135444007973455931964254108047586157250712111018909563247429416953134861102012312514119822680195487572481922577692607269798629591520647219201616005663723683719956111240879565051444842940985062023974070352239564172770371138464912446290046658258202011317827137573326990246046027749032653418552096725945510534443074059325327946484604529453668131468512689034650222693531976643377863773285586624552093482242449314392820005127966406386092813155131543253423903671103128766857129803721281086244722170507272536705828690915048882475397310879951416001537997712509415723315878518683005257441043378372733324716961678506740479999353941618058120419728789357981045798226962162847139661460770890979713056535156762303212778760354736821027781436956687445004617655394666130020243688420104076758708333501395826611154681521283511714116616581456817701092643969783959551344684367564521246514617681412034863522378476709160814674209526153397873171885229052279425293762038025547747363498368947574546836061464346880041929555527859609528573111453871057529513353382764171486951928432702216780495701181778865332680206789294659035973760346304923825070525051222998350618638330671164423599159840587648108964848545777749382300080666366001238071128442769821832688534021420774957234424687515261482480556643304237911779722639659875213651907115343146786271314079524228895630065917492516204926020156786792798651555656471087475246197810219376231258828332677926616101074634552734482008463401578223746647523731595248507217465718299679007181726317957649041353978573918900864432663649693295484213794809623860946901766664160037910787980926793542566772520376318624872159875348655669165052707309882494699037635088630562510645071360991367848497344483939707493623376970730947961250437074353611020564573537682324822943754602151717431486075300509114719093050268001067585785398254553823188963159366229190173787926153852635548210681299628501357680800090146115188075937474969230478462517822022283140114088068518871181602968387396552526719420188521546325237830030109702478390981782462376999263582290567378061063477777149563894200041603995047036836374625739818481211482430072035141322691238482189190563031250477007646800554224841705303372190228215132664531062290690977796056718016388826121458041693840580672447406458223608511405454059651303186599672642233889799114695857486603088856630028169761725990889039658060500501154212793223278667994656812001321192451591185457103101681761921559321961288317088986686232798826617407724921415171843135998969235393635548174852532532671601271639062470383433484081148499276977924901802984298814132245570088411089631763550167370244547846708889604225889695863998847052660303879884174966060323944750865314231744648161489214010774545309006818235740336599558740349002930487068971519405267817880131373944392272798071424067882874138223999097867014677625709636926934243966650647702156122158982520687058852064531950807317398320569179501536108962373842053036759428126985733328412373572073194071029066048388752053816460771010308972299841783978398460021608156101185120021280616799237788773736524046599041688324609707986234061390064079695179665298654675960837677087137814127683212762918331400557640176831494706059099055611532723515957987365545587879884428778178320985851589941138835292297574454257705397059106236556346846803463767171604298121508918554989913471140976099633472618531663264607876081351275684327659040588721391807113224019699887065003973756048668846356828764535997221236282306987161640074292428740816242091867715314637091273696897626912265072029638188952717913882027773752706158938940558761300786366411418272795762755351589091900338389024990575164784737789166269691710526547633672350804783657884334437567752420235539952291472407030388848189947854095991585610714755161507104155927355119775713406661318233953438583113428350647814100754218120643643417044331313476942223734570863288826701915179312142000664813269544225029868089349624488072762848874202134940207966580792520780783137262273649158354004757688850670549369339981848031853352463335940554771532649296841340707490703031362205410235114182673918012723818522806649964831477962858575729587328124956891850121532305072373658147801323205487645431161320477484657869740813584254814399723236671270051150290314902733232759120105183159558905037823901893921486432422654494341880488168667995673043239013753646642086310337026784155646845055025059597765530715341331909428034637585828018881231308042680824423505692871658289541275845940882501474355980628830357256370291405178158055091095179081099934414669859629710556755188692501251195712783626150325066654476609664256294358823683811760405422539362478832017735314536051826075116418908109393922841548062717564283291767674289206795799715703940374469807396299964426465399664214395328070958819420788701501270007944904511893927519732752624544413050037336150185179079024240856931216956575041513679799848117977853933978831330891517347500932223551775711800469925788934331604704406399109349580021217608400947256037177736385871653311665620307420481249638990860350171526178353898113115442484268543951782963148478956353067511055763334831207570431002324708238420667575627880958180894135914581214203182934728507762564530316103220288053821819519769972508524600580834372619197486855542427612380972308464180028532932048796445681531300327613854473874054965062991365792276702578968014223797253907875617365705870541822894037556951250456140907791758433352926373303013615295226497932085557722327002396535758392047988536292949985860852979459876063788742976367104772787540717806199929986590404945679872579050532038243619436796284184147346842118350798597426881929530985193253673293903840643112600676415582850522447988206870113746425441693243367106496005306588838770264004436538075190639821417224478542526442526339300390484954954751488924873316245671569254023279393066692836913083502187477344426054496631317309492618084454150056823026877253193929433827081186864677678030301739798258917495882805562856063668888393936074250779457516394404535889788775618309987164449544756498233412865757748695626626676342721382554499651995018297901642111066213891665005896234463448038452986438006736706944465118152390930428938625068900050776597500836980404895861289646807055969442626553165836815474071602441293599655525008080301122644125805890965459443669825923628129892821313484632894715321472786630595438007976331146382145089271939307066430174153119275616507206386839918917336528187841866476007121513796311631672806217413446076544216354789155982948507244247687979267848867636212908240212021028754825374623226220040997497281035074785115479816908627896972050707687496147159632240295589168265385557023008962758170545996811050474118629964992004391263424804657773722945665123037594489478536480474185910115727288766351769320529291444126117372555775194183868943699804627753448682883724785932383840388706903273812293840287316567902592328588249522435433026443245330359347328733342800261068426781946327334260809287303470595538052847753248191009705994024325384541608309861690819149241459932619152190517355469815308158296989103676663774695801727462702365161804729290220425551312923810366540726100797727449464711489003675894775635078046071138171242172964562342717452313820833574363876996154215576965230757622576744841860191267288646836167056236536724674092366359118058364458752954527303401533013440853777675058214285771481080155033849221828617678099488961657447844389909052172059846039129603605438307896322375507613809864170688279150432928347717707126280505115695270927973158577293714250387101372385178460247856890087561709159087768174243315441477153027224704389422881503755421086442201269628683437262766184581246778371686395121230769875960155712697222545335208508739511282795450528596880133055021373695885149613867123688393491036029983065759332864341198365702826394315107578276279957580369125156675159929644474331682912280676707015534279810824413637664465044746738044603672802681445037911867381157545010512774730890628343697299467725976942667458874309195000364511831469437636281930346288969044939319072609262483722551553317382661125540148069730592757072984271320329446179835475218965073332519910257926897567903209079012954406932868671431122399736220209603766691062399106312793417848199102364187864306914129076162097878354848276608925138839596199498848218284485964875019757010591342910224001770486293458768350107168673461328666775422245868708009528016402504498991352052776298166042290265973228145637703458001898863269774722778014347214704721748574683241357319250504597852350407963815583459173541187931066605584989242597789028792848189466898779422167685162583120174266096219905652634191671754805467868223269759945748729989127533877991456925416565853265260034724287951748974315324471946008337154373205434229878218612282872560929321459250996173131630795218942134654825006095475685099323445153470498945787863886991658022976347958118621651962628447080887148638108968913339901955037517418493460185514165505709259187440718469594954109048229714013593466160892885984512650087099389680769799392418560481138318047798436985235438513570890418340566538751603831557484587010479418995367083591427139307186149196895421305390537615791733112567980365019060497874628360568703484087388966894296484388281664635683029968711627118488068073399361949579562727923164707085659365697810205636040292071810143037167772594878702603277348553796098381075561373347951237994418962976171812673975132232003966158968988667000885089993847408474206274368887392117981040913594276873098170823350767076781571107130728667158005458355111414372453873227850223236704231282500985478451110375633588359878387393887759197861195606765977977672789765949901902615483308727066587126703378217738624928682129395647111916167937656778573949333164460156939643455898389685626233415475637184703819370978712169906435244427709127155167190242856197779024412663121134640947380023569840089134847746347809337706115083752314644807879015779770224092227409144760104282918667587561404384606797769074585888590358136036364235498921756922957619445499693607313365592946413813381996816886056840685004135834596984260315836459795018034319625895738890221596384505648480074918499616524540217613320072501007508557279228171495036349031931428818250401631176925608979622593732664258310809363596009245181414178017254386717232054400147773670576686961599612682892248987310564770988350913359107594874626671101164652284400384536453298687581478535448546638309475852820175926111670837072400060863567589005613448698227185247125889446886751460618289517700012786072475548914655023340721001383064690913769160089955940480926424039388527077916067799164640409956436320503653069298969752069683665668649617727419915162419472575945110279110200616034432973479591509794462687010572304184434950192649633825356137560502142843512680280913243809135427732218994461866253312197123288902369005284050140466554738139424852387922975602448121537608370483431591483948065158018560803155164279712339826926514170540307461992854822185398583962363119961974255950376711474139938826156130531393601457373801709898006813180723601294074320232685591618026835257330084270770168471453370417613494045609320109680093073731648055224069207820299269234115348939344129274590353308497275211349967059482191971798098088265273196828586102128520726090610704441197984859761112212266369231778999309787626469667997131557089072866041992884122608273634845187753094402187405603370170574541570587966624760512279877810807725140754298033502006343904154909886228802287372013935346705354208400266340758426343985046669332904894750807098672110943169958944837955136435107674202298648606295737039883015904913167955043651132285885082839163225125830446126253666347652169499208331077609961177106232238648785038532719587060647641508961553106961168843822767601963590484565037295948457861181043569451078995541374233025586845571264900381078609267235720062334638130607512614940335696152030522841708486119584161804822845499487029843388971984896813463048647754792990543363640932007054589296582303420836042832395218900562721996711213419892166507972696929434626503733467364020051543472842389056489819520960243400641151199803372814685191076465826303728394202903844116737774364546835004070382823859490082683447403447393786047431423487932991742287369332353662810414514108511434885624804517679926362007510878987018872891861993349884202919105129982991436905608951586376600325799860455757997634933042427854955365499208805670201302675379297340346025427823714861422164029469143295612611863968417179068267872578529962497950508491884350627494874707636296994633104758917447753210841204357323428594174609809444647030286954734910448240423382207847072933569103199183915141086899652242248649327091327001067893825882404383595129041276765798908093622204053441339974192308387302422525890295002464047129042107238596961853237985351024878338365664224416768286181544562209061066271906420301274807866239990664395882176139869600625265055096352508424124556215224558819752588439156374697549705804960094917018294030576443487877480728833785101065647261174749708143689897485297038350272385112118764942401333264070701314224999121439992113075890310142300185175477468811765252807179894633620031275577847801422844448650038625857103288599825136443042601056604693501434704261651821359199900493245769414303426733256243790444173926902273447230028232886517251509993323795769666218754017673416558436209457859223577004156180555485966495379666299413280820191315204280338308989278250387617530375204262022013800009683499881964974409205864952212582121123003454094721546721593287763852279136453157223766700079011986457041779428493830277786384298683782883242892419844347197707427671613484173785919625158299746169127231010749405286165227333358865120202770352797140252486270577055789218684310920094659467830761152386105489579383663481040028141926958373172851707121472188580556852080831196328671458797230543730734821101170110188553963220582898811408817380844065062516526977840339594533006924362299819839576304745146467976658027479843688605302490007958324363118469510830000154312620923803002576766571440223491290331280599269670724076593370127471222027831715491361774614841046441793638606875418639080363557672726995906419341405324728816543537329679813398535027146944240647871168783107617705160265917115051290109195518957099811110417576997048383774485178499170673664596024823189337735976442624237527019228016704813022441630235658375233633249487092307894259781322482970973336178416864701909650713381322215832082007002845649727140496061224896086374847519230548004855094871039750828247218864977368786232706311707324998220090662523126378755914891887318214481225866361693561102681311026711897800832465175894405501548745393943321911551658773561395962665724853765358279824824372892898476710776554265265012324957174735189222759444618279317663290204955369074654461104378070757363546321803153413885422673916873409275961341364390844780830799859771910674140314642604583184539385508948218201161724368149306356829277747652483349714114776591043458738049533580483382393672783512831951431946704014238063542968681119843572636702773423622356720854198800152250390931239754804004825293175155313652898446361630630789688495818433269975339885190914326050975781778929689490264216789701589449292504348218349113152132582527963908857416720709977143579713659993856644756744617605720467037078428265295767403337182304649236492580315487741250710367757501636360746590524175662995180613029200202836499173355900292533861535209642652171647430180281423050145838801185245346987369887070749359188068589048085951225458973705594681516214498658642165220841826609127998926712345225969180377333379237679381463184939939391090445231150646209864680312467941625120133460768170740411188228818056733796836651591107051357790819237853679138991686568606884545574416737731371552885711054277389464916273142054585155190655429385832363232860051297693891768684510272601554497605886446590748281849233783190960199102779483988665847293349986923864136639698914207905363288125860029342513121286811447850382684977704471044150822868357731251494540452519018088261928949161646500490130145566146426911796754391380392122425605808252130925403615860269387941241170819604635775915855867605010332081476841154902253504959430645752317574445103657156006595488770352759682557945069119576198278660128296178239828854188660766784162453615074245324733843874997342884162603535240678385510212925880587657756064488018406716758518203599525872506497360160361651039879450057604091745286713069444905611741411250188207866074082858452298566412313714504134835462035934392773230026698942186614206880052860365224292273512734386703269232388241060566733758488399979568591010490825241002170803086543690006707188643904225817522448032366927913530323286443201548656634456263621302567272365591066411640937495222898597938683139995556492610344155728456610371054720911460116041039590201172911690251658366686089924401987057246335921736400892611732994655181768476581144640919978220778313245245042744590735278080725891668372037847928258796652019463144161552039007360158704550969490064376720447926660793439898796803908685744875676117406660113030694443483900550717805279821790452276924636139330841149233689504047998900693750280568145585066440323085676936330121064755273803005461081277153704526231897968596193650712878559742680706639918577440545262224529496345370438611145423746690784351677666994927489867835862619613668299263550632196957052907967256365480347543290307327712815751514905793086713012419912126041110137724053233708898595456060311814513427961552839689073307557950500665567044792441209244585372257747617230812874839967484586477263281643103841630643226641458823070504958079841505076046227732491580044288614790730333567023998631209114201455199905502448522887693871041162827734204123994254140085449523516790329169087098831662054551023155941893893229273594151695528295674468534455888852633880913290246172532751719302078273101747273250831778578770849556836481126435162896136982547179682321847857055462824295855541384074731242965593512166720309036860542178342145546537780438531009983720814761553669351705602206194677349645349751986279841387342764559278892935815421004723195043059334579719864081120856391461929452914555227458262360597262737119252977303630302798111988455606726281388623348124812240418741314470142094662296625710860094987623928096687962302230867901819551782469723422003791662859658198390116831549995814966501460601506681834985370501173774346950802030056824586667823073076055329475085468904726801512742464781708226817497958330572491468789147690731846552330627474048207122109717011431823782685178385316462156578594478450277619917304906450041405569414930044798727835072681208012947118859619430240174878719974086760466934627227773653246176370476762299053634723568939781131592215437857757214503874422900273859939780787891487877581932390225195905206736618756030583189527338918011483063266005698938080969899591912861279264737475118829078743870168814397487754559817394398930353319256692614535982128238024039818224340346391969734689708500521475724180033383466915052404935903692856126056963436047255394312560889736151617525734731834140758491343995358262666488194303479266759408236544303403069080653129712131317094782576713177729776283021969618589370507587237412615463947288509271476836727794453653484390695492390423586685633237494684100853670751615250619872339952500431435977854503190712486652508003062980847807720507757390902528968062466266191301839961131997791087889925123204220060836812840023060162973194237876751082053378843368420226500577103904776046336405857217438162026265027088705569944875916058593427195041279190765359581624957340796044439887763386009904482901597738945473167595196642201831802449712129556640265792021954399244198754532488315935586063845857309553529044231662272866781257060395168129230651897124142625690097078411522085760031929242606530286175989565700525336031994936519732019443121890182954248029636237141996262829137571354818754452699642570534572879012194790879445123180060138083325286751033970854426750464574260688803282290601290100293162732232557066633423590214191927615620063781003118050958330213950434395293913395096439984514975188839164595290700597436010758995465966297963347920234138919745344009757127785375313984959921053227385062040065405329833127466429902596001053197180017599407070287103587137823033864090285397746820507429169408547844354063430960583921488205869547583033433511714660545014071690477447321718139412985514008707146840564571123314023323915201025735642696539546874936034762000981609634285741680390412799350599540523141696349888271680764875567487803976963382724701076431770314422525304947658695456414175527199009294532073954112005961129242548254574452634895974108201062217855932140600972385020022200176417490273046795087531802076476204670585906211074845435593076568705182763613267795253302280029178732636845970415488039428233857003977996472075683061846093414423407756979328299964444528897439717135802735370364116854788487827266598122207169652122939842346420361713325334421238678483109262540758256120055048913647069687680903167539321492284385706541266995252183646280079692358019516297374527687921854700195239102777700744915128080298161123330254531442335887607038294754519012387620774372111835236373647062357357784759864389346081762718528451411916061645307467458852316165278271539068406664199333843416678745009842915818608372998935045575501639170610400955174977027739527314214893564713467276054838899966126755706959225344313879600012170447238892112795899054899841999598179843455861042696401017532008109916157822318194496735659274535242837838759404630765912494479695918946998679216984918580344054453979791689361183620396172760683052401993608184195332917918171313042627145541470182918826433146009903818640592478178855035831575894569395355934830137705126189838538651058100022498895931486111340031024783635918639188166675527029847966311209536026870276913940849275452394953216404706889260794064408122648859825138632220103484617324433634252684729990345593541456921670311502377633262495219911422349311145449458466743061155673965752541422366008182160978656373678439586153637249995669733918536906599339777337956426445560185522099781341827254892680510806080763065645754223494041141999882801789451811031951915506256733582466515182498247735186275171276509024635593466652281359819896498604940522593910599142202683036811301808865421500301710511197454024671771562847975165954587313363367179531726215261734581776861309429355278058349206927922326929081146088963668953317201393135693722006546758493560917615847774313735710369156928190556866582912764082720911459578808830877377217047859949854529613295403774901207803762874586256919446546720876775455596612774555036431510960585574136378220444880686282700009300982359098688822998882312562980751293765396185257487861906517048507380553671780248445557557994376437701442199092082859684492789639899420448958801512832957530428672811254926865386689534422968837939456152205808589783437945283412634271024754613326964569581493953017600659195126428272411678844161249469407929244423912158611788935002172678997902112253206803468809241667594221587206352992112908896257510319967734232804343795391244264833177874422025638407151245331519683796270671481573962040894574822611929333749448863308004529888659731090113727507101970068536145027526082781585255214467133179910929772689579675859041076375354857304411075231969662595882874006656700835285013069684106248880818502575693292872677964508142279587289657345297207845520913090748848474604799565583432336637280123717312032490618262055420122762974840281172288020274080822721049422833365816249207500654992224683646606794424997126242691910461005238172359846510162254977816948753582192692414928457174334335116516929152598786936044818783089172050716381886520496762752919170134597540856662818566153690388119930556384208607425352488983646276116865337489460461051837385169682889585683807949993012204135252037282815840570206783301166864466633984522397645568841806241357086737912512304720743699550850102366746548143467521784072968041059414228987482822519248324002984895055420414116964206333236968019415060997199850624492971235365146838985546067416688973896030756696930075762152662956132511432473143266352674019767939711674444034673209761272205352130809736733900686084395235513419101947194130368514660484698500568649509007685105202730905045665909445639127596043490552130402415689951437086805666500353802523213819700286349605302186583151319628328936699034255016921466269506990634618910842789942018662140606093262120363876298214004126895434017225054455964056932709793600058313986453488294612265465600821528245028611271142297870755393795766348339306427803490123684993582473209242909902781304917526853117748653565383491386843204795615114557622227569199239836839831902160116276066453749380673621456334254665515848236595654247047262251390079639756451926703980337235867547112356882332200472772723874577448317865493949415823140883714541432887879882922841456433369937144817375052889104394328219391193581934195498139177646089958881949179395721298715415142597896968127690702475621824357487412623290053400996735771968389158155910417001845199492794684923228330281158499144063511661418067746385191991169425386432709402278995842269549583924666493494587717535442421769872336887535239480112405065104885453672695799138427045160094392934278565122312482510366030587812642429293735152703417682652809473341011081574052886907080210918673386239782965915470410129156002444218074888156563426113680755490500606861420318102544997972338704563649345383767787600090281582952074195546706624192011979839927888664008496224859049556920744816599556859995108992292767639152020922671712168857626315147468688680559520648847593427992479559504404523174160091269818125193675774285525752770826792345759620753171047319261530779688809290621721157741682283886345308058039983185549010085227474774408326527609964639598969828456824995950905165502564672035243676959062404477213343313604421112702990351163621919549367590710224424035179668915643804323854111980658808311822549689552489597575006424480321550819792961540710145875232719144814795971921470870073393514250277151404042135371320186565401815283998976457554086710942934365593046734005560058653608245025355073460470695704816658543073752352548124987836341755548912910045353730123478014086179114197192802659905184845965419631335578276375801262010790376468353667918720333458527432298740144712135204636021515888754378182342679015365828392287414753577285683497384562540565657993265948339319263669243077003411442396512620839319144367965343517898516609134864563809823925757130359168133806190139579153877624043879094108789993667011081069903301498313503751759174057320962871484032576056331306683094307667177102218455395956385823868680783818603444932933539525722218862498513163053391159926254377188938252805901459854525179321586248150983899874261715238300864130692802974344820991059601623612501477245419422689989078359084335848836310165199050078001443809913505385192631682397278664736972600895163377886143845656790169682792382644851985374010607045816612657572429858138997062627656097034998430717276845844809198258959114524848523936902894653724603800527584557394786796073249075174777500171241386637321259827572287435335203807164781720227684754297121586399492798764415128737339588762196098648251659619947010616351514438040192831180663783574379760854427469433338565041638569870339532277762573351493782824118867691455435427806263897309354963367329674013110208501770443221179925248481896964063588577438631507818889520514541602347482609017584233451517731752515469984786147052158112053960502494188505688847687460238998162964069551883675391209117085050654762050592938198936030644023376252441078075763082989437635691869621856022865871619871569952724740651782673842981796872904179509652925072842840684394153026387383912527787106868912598352532888393413393895270060938634632120698999522998854579947988921583361230714794695388067995478759649569717523870996558561383727285369898316919143094608082072591861600824275570907198413017273466456647366792858371790297233558696644715858132470501187853124433745692195711076326403613337213323480945590985339745597730638152887547645405598390579798603340382206857883819728988668116458224740948916798973308406860667571182679806192512842942635930353103751287923013882774391562638227728783753082198779153402943080853388222475894521117323159723633097643957994798819659329171897679284848282094741573067890538113071849846914514555695486110873825848647096122155981129856674588387604070403761179150857333960640950647030611182704389765528731933526521447128621451693418109043043061968089729016728938933777093174723430840685999329129334025158716008989279207166271385741750742558519663275218989118180405650647961168282791655149943168374696993933573000700810001743098116166869303245310227426727188790339600543228529969924235275549640769955370980087438415244424411987796054103711369669524419634125526193954342022834550998829961113184165235179732944147443043713912945938513761680261633783364177384481773149837345214755504500870655272140320918154362961296563299076551120634674477281653002863150037651228534900987103364656992135655028252486277245615313690629253651178007926272783957289022742119643141066510876914444792393318349363303934874180974199972004434056212298091736282676279900830340121051099735585500105955412943837919929932150965599336559890570763304272113701124482498572539646481528510986389863732368549397386024537670686095135577391669868043116776589499998046288632034535875640526071500976601908389231721429702697238311278831435769138901833223882323051098489544694492089609738393601162844408702749944380911268437293821341513811320149991249995805472638184979900755699528348995271928036539835511026124482402373911568089258805051825472085963998585675621153437257545895520508547489404791895546840901792471624910655475143264269123900249579667754123851767596055110062044864663430738317247343908005713302978625303341127046809940932531543454844639616033809642981414400622680217482101885132976187597088460997903538661907447122609536843488147043527248134151839945191001715003106418451027350525617314757014703992120360898784253611689031243549847698586266639297916523633008672660933777258752891778424169447549708089857894493816220511632251970860660305474130636743413120556819056502093632476152673542712043317074677873014624489052393213509652889296323680457854097488960065797801991493226411048402248136399876213918190224278309899329462694292415892037686424295267784317329854433582391457372331215612473731858782108429519841953756958980789856868042954013978225617155835634737012646191338463579248326757435917593102347371209891443166513309105198202244125749465799745780300947720370070727982446649990475137721074383284501505885736431395381160188071894299183757169196333964298754712976256827143190733993204583041268708309554643765699020055569943848435825682517155767238923058003959101863302776566884066892493469471146692438584729464172609821447299201809179355255183871400080932226612391756293598849386467720311051947777645276810523074297009918790928871664246462441614106284858153824432763631856745492024580024372384869734953210661748657795209775187425211272828000109939724943853358963470911393530303588966918834897148714975406989186864312172585992892209706432404343126133055715436542325060585059494332788445467684262155948780150451695611336612623559356847627758150807125417554771082893964605079684467581954186224202202630101261272681696600520919429158242017917558185015139893450453098315532323643023347863648068225555349458018581558960003754576268463876964171187654925658021046730573578825655770215414954555148476243466898158748688293301632103070600981511759418892810718985985243820331601597227592474057503705943282318709147696108053247392296481537146822605370491100315243774646253675129856358353258854454078699578009856613636124428459562050558902416569568832537324976018465518730393860333361048512165673865034498312040521746166400848541612344278837460880691894010365214049799107590894361980344571311006339346691957535273856495925159077775336409229961001741555552965164918565080130960813740183900561438507670059582602027083946116748405633570201761558736863347329452942203837221060240450536526535074885077821251637622161690627289803608955840928282234914287174175048289033718979028932490973514022257166592473194108741866135960185757493783181825559116841092116031505822651915630411359396505155668799463452718604166184406575540693389706919712932869891507037974831686403827993805360372084311781205826102317135932380304575399437004731452863304208533275298398065970055106160224729973799703797068453608304243133813609951359990661484935972932432030072844151767200318467725123938383216733886362509847809278011609665011424568985505813060414588663095588912437666298351843226471545748141499654271346376581463133251639179416932040505962285297401049027856994252611903350213147544749004574196244298079508627038803774370535795313627945939351083911461670540474222892990245098552113214450073242088868643046478143607360228323443863257551103934226221230762591552983786817230797922872222264579091870378409737735329651482876253972849511734730692512435019367082298871301722616790999858483488492069004322937771952147559384117066520412601864810171012539197209852662444724408668214473351251750550643552290955286811539107601145527696958612822394079951011360021747081388572788132466561028100594088207489377193638999834148807619587450885633808489622136850739042435100805270120490743600213861241648061172144763957898125176796839856290193349264068718771163167808221857130588592685294825286391091718635531055255872791070801778255181897481484712209409120802357091173947061174940423843547670615299315635294064347754197794946542718147242501261217200418560729547517036944689256266172961194199988330926866601007258312325707677377168570934370310734228382183788174815365176115693941290593647930568189255718797657048239575591303991112070098648939126544918801658103424229765032279463917404439863396968032100982026004795297044094342820794166647652635901328401992193258162694639147247846981430039390705410400588542594229051102123110631248776332735361872373773040514040068784965013578834419866675985694616352948804463415431152908647326098241272004362596995950279195423528769467947833393109483240183448351666662645764402881733174901549543341407168766378469518704254046373185141289491933160589936563483018673075364073156770000233223787187100837858100480741987195747841261929523010568586220640710524049748059568549565801753110665719937495279491246934774481571487431821309309119765159543567486955583512733449464193875585235678900592713097768848437412749615490240838266503167622725801501334589375253406490767462140149224318935234890798753164847419903083719022996734682629435549121923561584632616052232898725585584206745327520058889442069814813728002855320341548117286546912985648442530843377496499134213852591679225631162403487711413328222501686030594982633610373143619329181288530705990713354247780358530543901184633005996224389639248927246238326041321752032807718609495020692646396310622337943329423695757447140899401289087928665026184839887137326263111096039833093409176682679032191755114008590218745802664746233262813130960341770538629515561701971347082275877725708397247318840043356506721524794164820602238560440691299436703751559114745856284058795980812228954468345954948538447404369864780286144456395944735415172537299397025350913924430539962867448388738173542754189843702767346612568717602267622396336670270710908075504662364535402763519014468819832074549553442550070591251951094971889173784032539940346179948523381455185518415018391937068683037476632461389947416332418494360026201993714391864825254658182491864226205295163625422718521125067195601071927135644948552462672910883800106628001331986477559647543300834297501147645240669728630449053651255598935625724407026942440268532351884475977906086944417105829769162296018678656642801668203134503316356306071124728894437436571855990852703318235824357828883057381034271293656992284813626651486313694004557842858824945939934594869774441566716081466653753444987013759970808062187171092739183413527242350887628153879067924259258075003921663127523039181201136001086781384309745816680373149862641351176509550260206723387110624238674752472906148816463499494117391701198795277128649388841445426341925708501832806663773379698372112367783288459037451991721520685314361694628257554472870857177194564973023322227466282676166662484371306731669606644683792607202640821349336656157297670736843902845362977315767972501850886035636977053062276277327540653823250339635513010258607411911918557585697539603656475738352650246810490785448588819075024764326805586584679877445991964385795791125871052936742514633844066012330854289241076054415893088664745244298092636168648322792710201066376029892541390384568428502343499386122381358968503917594677372682746238746350426198961422420320393987314513253703999381776811632003728401308774161937002139856053872358316496410835093400994968806006781870732306072662381112162928616541190556041257392941074592342265407844719657829198276686046727803301122154597965121514746699702949022471168108886147977771652622048002971085009983606492859793418871701960985449213522705456698220419301964165714971869137372385360136581665895958365552521054703480245813107856883784466280647660453937766510193285724920144022281637201238801868578745445899798603054636821561456361704727552692358983176575562615415825251467088928528101005039103982747260744129173868812025316155346422095503157332351862078402027235440379372128015400570214545669675782901865005136323351403850115040193214137603407351063851177390936324770386617663453369420945929382481705081460464548286168767876114658575152359433883515464644960095013566954846094070145544163957351057085120341063308766250535836126169875613260826328887072903911649917474870726981016884059728984524625148399525909621853783573859124904081443403374324762975855171340000915832346886753478144753588998705830254843844884252861480265478438347927270105495701155006806650236719332952639587672546507633491074664620521448663323759615229156577743557338228667921984433098756544395379774783781444526539348068140337743783493463955382463766291777194823905956059421237249380995369766467395880597902460046918619815197841690076610465068064431175998549251774327331102332846738357664312199041036260493609188714710060618027632728364329915673052145123202188534559195376339985429309880936818311924655261770992680223990316588860765636943643235919829504329144264726573408545474303482172555105970980283228976339790199388283724718212417514222635163172384349257765014345665110259562056349048022513880400232991991093926496836572446213677575006824099270380906437583032263175216060461891048091648730064325960436128094657934173521445956539112967280762879307436651981936861923805683198901040245689430826261773387531818253542022592322377194604837577824987441047582424137748642296311066948422923163801056132203361726198320828881383602391493967299486920019724577058116882620154062202765979606418151493720728758770847945464236221205982594407836396506132943007240502545945010544251728121200515580827043820458360401421345809568322574844931312795307987172873531543161355247628492114636456547267191667449042970236486374297727414601275889433692727378187541110853738334579359279665874974647236605812320579500325279401142620794459054052808125830829537837339651588543324436421174112123526150551827188027241568380466546738119254243713632453781598089270993929454112793970556343908148817440145459220913529973805809585169195144033166703783092232675287533744049399488360542986303997697421214219135162505264042145037064095211540258480189712509377527579047973757972000180772928051096266200322331650850616384825510873253556632007010653100944259957486642351352901424748272935664977794821214777280750445312864613598942801328932256962616362543141104200382082243958768555081429712302385687698706678292189882340418827022614795145268631580330236988872771792588778951538474271814324894268202569773578248298177263011522792417731505493685314373867701917629401700081377635683272498034284859709929479450701553717324693967065370699607216385880787931408642560299923463540412588978275478767317402043609943883055250381949544862367393881630759442362453055356357001827550287676935458320145206210537662892013926191264398703945318323874040199878180624518573272598740760931481303757699017860191942965994227667051703781866247294207144643872179474291594237858616397566924677302071630316175208718011092582424428605261708572012093292043798602176647970136969710905170978468949030576873326999934110169122617126036705829333637288924316490482480509638124966342307500036047059468867861739167006934262474814369386456660674775611655060688460227485147321818112697294392430920075599020081389905419593134213848687864170915750095481940980254528403600600892194148644017231469173969273753124833394422223009257969285577696010282375557389695410751053983596628273036147837600463876396856711530827046567367252992131237724254676238796244639712943161915276743639143512346540009766285438397985558612150531874948333567983398682826453481102387260759146788300497114912787816581134616628318531795004151409975052001859357786352447052383397200333860562665502753833865350707307698631587954084238473753180199396938564494220944754832500100812386213198787994341760977280585909776965361788632364438970048836891261890466833598297104781006236364853096415264240690466881997478965325908905255530639573538277467077565822646459793042833817767081106828169715738006528676029719083310470342649299838044663608463687994262758023632840263481637322878809417509732759911459745821661480080690004669882263077953975673510159223248437515758294527035194677291589168734152503783106348566414480330485115242274382647414061494241608089364692416028032579789673324871529612514376720038557200547043062451086301883500231563746156100488066007963509685733319693926467230650610298025353112052450360275225033921657339405589830387458530188237187274763086554898728124731414456690356559696431600994526581979751937762218993650158093790101109801218195596302185136783773704730088783942525492739117947928317120013413090449005311797936148587955430876429473473174647008097204940474297155400937709337890876029284941309108065459035612536465632055321465329600751836674852327043184377645990415972690816158692211384794557021314792172478584219886655303632383611085463242656109402975751836169225142192465708223309950122458585773898452637996607585842129817902242926773193333954230196433917320270458707195132566797286177443682795596497421468846739547660842505698640836123181423542406197657132776365602384112410579088716971105257504419823640307472511376898441553037826009178263110057082269982769023370542747537903315848059210170769196502140746361685051403416543402375344323642139044606461637915343789917246441298841587793475879372867156939758229005359446562875839428850247473482614522497678056885174234682928096801543571601762090991772221524015800993158925609232634351732714792566000979437793318469334560356270123866338271266188594149806582399841746819185848024373035103416113534135272775784956648109588035399248879716695715933559468502591222248684501344454126340067584795110066367288700581189832834690034979250092745906054357053564862302710457303571431349248651917988265950290608221895846294160066321836726771175272559070492916943615179703794324872961104665666017502047458100614088660981743291922802506415109266125307673623032221038277616388972212889730703014432536577666149388469175388018858829742905829360672919262501286489099408565135172689323606949124379184872216974720483325680368823418522756336522145198212215124631251405682531617630789774529522000663286081038248028076206662599111743499898024331055357985623018470201251935734746299825418134364430478512674925902235408105321059527383828135801183071169758067742769989069913632985831351323060964322081988371427200353145913345307614436812288190044209231587648986456177196766783467026111857113088965884937549267684814519647781558751213588287542210520892112570693512309212300036720746901772620770056951923374208530279692934890610529367244162082456972621166077418869111757100538777746677335985194278309319142465010985707819596157500932739454131580291078325704983549692222358432405556356585395447822172974259762575474719225902051624770826990114103518906925423013462357494096822655764448283704459556302320730537516484066039849131347632308425428692531577415637538111500126310771570174464999483852813020967710807800383316502754321355408270377605631332241045078962061605646494681929992860552113497339254974459430745409077504951028590818707872313344690091693977786314335520640700704778800037702303626870248382123866824786196270982992420652153862646419987456314251349321899200920834368525940134891961572984925140252797751655402712505741561437769567685973615167083489588758246095635082990244039073122054577064119254743734843947822469833730183792744735803629638557829755028447820258313389077310409898014146316120540906258080773394652861429447024501874654921608959046548269051294328738283511572645500202416224510116834533834220069815974805241068707231778824511419224415702369565939190500019632435396873918157629669248267195662811195672425652178198866211656611175097179488137815965635996490385461762039733691756806355509054310903641878466268726558836684751059187142940920699584668027365702991734695299177002842091370057655758625857280530004838232982444357556074615595125926170588190571127838842910895031549835415022115716713811278884024268673687118445880755652965924086317525552147250267294416535602765935147176895022910707513798348512351994588743822546759355616903656515121715616942678262552781203448416741523482478435042919447109326003280988445627726129195876811225071583032149669271020209043076492595382024132504163024521295292212350526384968353893189003604878530376560418166622419049947428052146183525570953359383578973560698008079141226085967458725028338346670766182933603860129962807930816526599333439926355475085117029774053249237808192285482304760427300999054782830208941842482338427576193328489229430252788421588489698124007265943669562547143681367529315773950939463871331513811021044576927529496469373121156260673340184050505450704681382483899469023254282093856423269639676735160699663619603575693000328045145229389283529014380526651911963601782587148460226987122876539080522782461214557595520074475959699606123080438471859153692931747011562673970559364201894855518548763909614766099132840268994745927625371302053700659832283267837862091928744333342873835302985060606150184501356192727207344699272510912212654490084275667898510719739460453087225856595798162196149783689588759856867207189913384413508320891595043557767680550254903991179223904981599118892907269115121422791725585434867797938697612287677531548008974603394832536646349158633290299504438094443353825424865843762556748507085397087297734830725577259716413158652457617171200436922262295097399877860411587050829805714970530537205528057499378431545972104565754437051624212284992781588105259396652789716027947348028199005914330405274914508246409483539782829969258263960468356699638280180617669675715458348622239216464524267526308224628856722907279292125768156983854289940510351988884838006948566759876406897273465510315443874765364542392374380734874434529235978359393604695235879269924221427813936223124713212938666708066536947603508653531761023239050027385132768104835494318299994156042971006960126485434773031543949525408683673752686894483344516518496901059928058241523432919260698344701017662395678413979020908528948245996387303885485866777905557737027588274641551395429287412341266993734688879384012672178039159839756613254888067763886459359063076128047635487788527746748116885344785128817145444625043898944400145017919969719878620262101284559783621905436461719575261949955801485591858294455122515348506845282564191546935575863157317414619035021688885951177589274039835960664638598589097447614716354534400379647112539744480736259333498253663196719540086961650898762338225524713348401194346559021317833276049337959245901002159322822241820289627922819131267561327869865059834947571564762673862756401122634537665361694733465121943034058671071643173784882679676006788171498136547913028509417960578313052617859705799672899028705592103193497063610279679060225759223246668286572903419703726053561923458408057266478940521459197179841852075991426245567196431246865513286273720812465334392128021450593246983912567607889324600385740441851259035091526517491725958545299396290551811586186240833468639564913820246808575279588695735457308638152996185375543493262378992781743842697755470738598026795414054598246173549207796457077029064719663700719318497241615963137158250237126939357826263081486102543414009519760177262194761151979141914838710188165560154054174370115625886859030866635514538225387942787311955694555689720698286710475381911984157947743106158267554586492533457159059849526037749134523672213245749261987415655329043626049733802587667720125703421323365869101365738837489655667608327881734228937426837499938257974838248532991112809698865589929583450462871932106370780875746280191064311032721032476096557568218902555187110812712930769851260316935785827700605982806700957991751452930960039982752974471890807803664395660753691899166785171724549113780336438437986261706098230731195633109801895769918871014830140354558313196361993073915046967120535313473442822777475418294895516879634897955137916977787482649709674480633313357878025004545757330687298739075578306313738164045005360742024216797602293852656040756144445811839435063552973185377831376222282093354122134124748439334886330745392166844754874651637670432674445205303292884743649366002191469748684152149711183352436380702252827442268491990036983740928572018358247241806731250186825416820865890775099727026246625278005386341360058232738855103461240206134650129125526594230029384752844952031367223573581434437295234736759882474922434144054824084986085363442679514006256477403919105752069136647933557367125903846866207837235041102163383282312169694569557982483861869811715177688104684265503631705217878314989866268516836587249954226730478197112941851753795947652503427037819651987526204111548357225897378673326435963534071174237597076822522698469301565455996014062446192256831389420239621657130736477290543788403273636482972925964948068402412886344970123320206348954580429184731810124266256778884670219827771895830200596618740203786874401508593749806228428026880158003646483818588358791262381393618668690734052774048778957444748795684631421525176264120874446849051261209380256484188005696972215576439123082142939794312499226843296227151742770485595588829107794922195933123399200535494792878895650743137462871214870653005674370901819027610468826354900662287809838997237248491488738396868193221042617490778812934107754893674947172550178900073502548507254551777716300750113829200796256097399291622357271972372891576769958634625344097796008837886584525425891834366301544409666438317741056291645200525394546177418184443088422059607634002436602631921433140580643777643553285684743534150477858952096400388978981967039941355328793547853942747637279346852233654880579971416700744709666596252374723044226006634487332222941788460919206130513416932893315918487692998257255742264465635293281474395466901344875263698626144206506352696861018417712856421203009831589374077421051243030390694008559783850360104481421717157270816683040223797738731931962241944324281515983121132523459979441654718627280059372269189622067669222151588049523907304336361663461387297275789385524029690236185651311820289842999172020405868506101633974044537143905681965210262264042311725346883747391404997049292994843216477572320508924533970136082859696373230249622121319127042681547676412432795883299878280582353046942408133861588251817525728999258078668136472514342058865630491150269162005735200251648232631241362463636119599672602703399791543292129065952705824970221706618392991139068170330453351493852586996088682107955505672152911427735760341145637470375603455141360083518295680542080021745757334776790663255331532308344430424776600512613950942059628051711892096777891954909755874523406742671516518935203444770595607947281030881716383543334794546486636823998446278344252493677122850942704304087237781534860555680519057379707232361991339199673658320457317559998806267463485907236515216731450108078938465902935111639316778340229215750803928591535739919140765858982613311874303459095886039465722533272458784073267738311368352218395936546658286762718544498617056367148737028488559928788798075883717009255973348273607704349950403368367587544923063900873009919688956696602386529947769961002099895837342642258604832483292970076445618647607001398048523521535954087001801185115613612944550675085580562372192798513431207543793484951157730465739707579125823115806784146629166783076852052181240515269286233060506164446995661252133967638601172469870837945371918639351987307964575493582209916029230447559129018950821561941156123771373835336626652711201745849155971296647576650811004850531313705159998822737169110602420559758758715824685954604124067497566548717400536093489982353156034637790978202932326244583757658784508063708715489737773083345356810758070595179928825379100248594447267927604166204383343345610653466515996607671821139564031555092520255075005107729137144624531184500639089102185279403286767377402851406408750246820509531249152932825372275552108951303431613312285643317331754589935146705995985901283745000565039160876139565370079070188961257384723488442321186913176113057239592436077309437668983878973519097685918893889102890251168451429580199544119977369001136401837990669773705631456100652045408072558071650372558888306415978183535218419103617434449285009719295078573468013416406198479205255324299062644611202019419202202865149884826972586545320342658363423788892387566693559324549923167823065516343288067689441458149305935516186366545154866837769252197769825227379491165655139301830534327929737677939022147482045520335183249535288172027883588060666307963541278586843597274315453404031448316617003801142697542943019473752177324097733896383509230426432797182685660869754388294154904991531560789824067644459680610294732060994483564267912395278801733734601406141746911657295933093951082509099132595544632344720239469188555681941550730461891538996093264693853490339054070578097828672048068037418521948632822448379448149142179962288132632366610545697629915414450891335279847898565177073441420462118448187001061751675947333116417272052141652328474843448563284046579767154832771917484220630358088710165688139340106173338075284728396752756972129280695849093549112255683378927702824005105017527715010353036703521990093937282756929842386195377690333301753541083823680225615878137186928876419319603360937408582440930090958267495203907658874464938243006282468061767372090358095308225917593608889485742433754863200149519241435575846841264188472695138590414138065812785156216197357196158120865357675906076405513417467928318581574388036450150848999845917695336807035434890895066825213394793075157115354120991870722738326752046474184087045981415543320224829278075982507308715245932012782726662842967901839883330511655904726976849743528692864377053555334991907019661406815367312588066943429068083501772223571809390424601880737948552874799605890156380300457389189373137769411281939805133383266476827701363398095614105480592973141648802649008256311793960903671689632701063030866631169124442919545785976373414378691322711983110892030926001113381288749085737611846016482415229418870194969847632205033384705977589205595550636564830052175999403836691600071692456576998762110678591754734095779832155844009762032160087642023071273274407229487316521762756561490483036915401917601868943822154634332470631358087597948089338611458517893254547918992771290168007065172081817170306075062102405171883503872594707746854958219644807743904876556904940415921941638047275314426355815599525871245353874284424857731075617373914597887129185892074724459725925722653562744551841945914369500259562314896097637686116082948564953336409778796839036270812280215667621140708798216641715543784243605462152276233290845872243021582321712453059331328150961370903949030236904121553240245759539122131900661997187644072219388891212014747337735406867073216356921211119526109028902549999035313920719569278365056967524549085802954857639757505820860030463350118621503299810043960031878137723440694609307430613079909446618107740311879074493329875566197676604369408138823294204627544299204668418507512779562569867491500045510706876373555425567770305041555666184649686669879803684362994233267029610393844857044795665569721479863980094115949948858551364742652947022479937334809053411967830963960082906201858804196870049170913522995985797262018947113078200145780319829136380194664123507924287311818790659916175301633752110441030819708582663051569017490661180900302336729240305040806762303061971327655414365271593173411491428732282916225348860651318621988908297036409219966475614208168371094080730296965512238737101239147385469999189330782212947231834467192497226044183076277903893016163315616020748956008107105296426959123198791127868178030657133396784052166581440887245463916875009318162106963828436054499197635606887350667275854950149576780280928115681517322457224776055063984845127179937656178161411737971753626741943095579450476264191560165516178416498253477334717252495232325990955707510677192652886146912767929682896957332259679006971827923774301023365524153510949761387059183353555659828738215618220040601337884015541964707916048250551297732493317781957208858183518548989539833839059950286743538081609585025904070894131429996022763175576253876637863739349946141926744872515195892296919550714604047438517236735219684041886267299567981889566063562749717366078140001346685322555014616136117325087123049202701930618971804456714340388840263480999676148354302120698671299432554138644604933311320286235073489350522263845549038642881808881216062908110496645457488984727520517848890875519445825862711264308077151049663347841894690098365676351788633822250194860438457781721212413639100904965006056506828599005833844864589648513712478033528666785596463424158004878810378072230158870466127355425949349748270278977124960446905676023040936532214843411033847443056858098707841631942901749622466025460732151384232377710749662345712802099638508585141516905201893977798437497966426656628541920112810457891597580245224243946324296595358008623309965764366686952735075163550922138556713245945201904590463452688359355406571833130224137981855832969527604224938179247819502836820176675455122477931954375550616381330075261712333655092377800534195390417292870822431708879321032080581882966237264526846673869360543463365162126524759724584635792684121189514102659775363811278804144287816866876400868406140813971551276310355283588802651682535652928307896839683610516633129859311661139001762933793295568557663620165712658745692803859881398036169399718410379648927436223016444334926984267159744537844102609614564966960316450156237302843411248584958710106592421123917334136510271100342093614371864177132622987611185394621509831106564215710046028845873105434797067277034158677904170104607173445553411978185460611413709790891576914575140212428791105046834639987639469040869004390334296303473572149352643384907706080745113155230362981883067802443405866779875971753892869352497970560443384873163318842770036305773753671230894771708705293549334618299029548508852019357165884072124089413736368079934553264864281212308718892134859916851106004846971195613939208215247728735950939596892154706239676026801936825391663189565017463348976557750245683434845636629740230291258077809578113100416757595222283257555495217147116953864707844879460494398980805095459612988075947605508019682328742005159340129272574698361665254178309657299343232582878431173611505155155846474427678737104898099199194251608256018956478098770969687255127567674866950747208560149764168389557446755672740803554801877223573473007401819945974111567849368551505560616656240503105752777144619434746880566750717019356177912257636381829637570422754292894371037556591070527197293104635121589362384512523318985953979739606985585769796012160218661785393975340970435434246512200066656989096111222350696260004759522570844258980840644902312432495623694735852496572805809617049267756778285332730889458013781147967226014007158884900119651140402691070282273771485745558261968472953109873001087762895326374666273031949365453846155767351844195768088461176965867124144824591388519819621906962928475628809812674438123685155471259509635629941381145022787333514646232754216756830697159982566398433088822259632022791692533510645995126763443489910045173220609509608231997652163616671586456451891356134346843493211277723687971900039951977682168073313894211255819839299742189335184988954812000205879494231385189692049942677663050606544700782076152448576701895015155244909571980102009637374106131046310659988709214755249057391542863135603556361440039552760914303548707582957262611348112929525945533155383950714128077683333037146777947346521858102998902334519688283915245279237636049947055454050871734508232151074003850253961556165895086450272329484318022550689566089913974207807621675219952238168034819712709085580187146570812508300038492985724150471011546940388941552447289195120900540222557583707587515261703870551606102258358815710119302054438898425054234443350015561329246908552036007452327483951792270214800686662777613303253047011611314024610423160626779906079480195898442295620596163249178004442630375213671318378171846014553695843281976592635127651104261531241442214056365902433235889414367919591005767720017266795709186506988582855251040825190222557760054495649658718893998576684718166705106789647089690567062594146434078599377260368835539727610571365591964469302296214249627986340358063042383219609288673837879305569353900165814194721411336043520280277568033445565443291476056331949641237309422865055182140519406289066999284113349911310372915971134612292540028278775561659035963001977954609363275923849150134658626315948887173775139286233785828120851792023469215081600842799497017654504386265257930866266873420392266133631257201419208958946087885405211440989155114432627673629180330967226425717561858674629653153136369492537648764124895279619700131599809531947400729552691756264112573825786591450602326019759606022052247106691804302895799610194126776213848187959308276687870345929948671172416502261773351695999850009867428618086625149331903134643642045363846617007895587808421874692775369336291634786195947985752632555242476784149885839525920306971411807337884485826493651617739688230946899642867286190628323937655097972432229168001652786261264084302958303122193303729194136191932724982562672589586017493992003258522424020147712881576269831120370840900477220414964291236640941321470992682437056897878876160881719509250762233478524813778697222974920005777214621418552058747590511854684117693094230806823324615741803085793216869360593470535018213863158623645138891504299390414937192096764499989107294521901011931738344842390548480173505599638760127599410536899741355334146383379889059205988152746140670192155445944764357521967281874538186823993640048392998707017001448954119396682753212544270208295744952561697526569305266125519452417208516250952461288159937196756984783532178866326770348983230550734751804826542784830236443016875955588892507522231899559386717587641777460117351647107788103340015181661915063312147446236840654167416518230406587318808189579660568976108716267091234375617519945808877522380960571445546593729193724102510373576414751239310238706604068974405846696545566990964522637315736447275849343013879621529357597589814671562991080275047771357979425850027823016588465265684640713699578471679965404986680763064258984414993217488448193576486248707233028690030989808448801319256295845497885274162131163066298118382925028372003034484999615308294909394284198319105409744257918084648995002080642390425646274379967303327547002478105179245237918671522987085979794246555833576621803541450827390140015304989991368788573029227808979210796584530404231252843572007746623778010824991242038009463228061229616314973492001975598170287297565977998993834731360883839114371666163125643541954136974583292168058918775509086028170382203982530665799928767460036940998121922173937711375267787055968041406127911473429845877442179402210307320224478695116795106120151534847039897083230986840878809485882097169514585503275851837124368573272266914145883129503163076786421686483596570930371910112833806211396413973980538987161103826285885565555267704267556640642117433050009522714831456404799830547728543921320111326493798316525800050567981985092348235849620375088467789484905551609072412798276475452828858921104037288946388011667931997195634935491523559932744254753833916325700763297842201613700987645482318552811623511739237252392750174555425639529770730388057434110185410678718520528771625150308592725271010220367228051695446994429202284545463066223625389296065257817413176671785000280805046247517949853953231306266208469454173645385838218486019556634092873415779776392533648366047883693118500849436958440726298726420252303406302789463835172793257412740713204460875353097728303263749362660882531364898124414678517359554880948953682164929411937550491259536741427157430759815186474830121333974915910939509870372399334500582918647028879552200193469954199707953777129776246590114753062563592126825257432779515497087807744864755823663672418849491572376510470780101328346103504821462532016765097031353172085981540649389763623381123821001838875456528439791085789444546707848494200713357289608220535555511722836773064349615315257176133447906809194714431634816841570309039797256146234536948726783441622461334942259986738514337700069639220566647871371962008183937045061227674703591552004960029743559130416945136932907288838150170165693912501075873738638152672949427981460924015869988946197910340821505544525847193676747149659249409565758985223057062301962305890333485428772824542513759794629909940291051351012236208963459407775050949408817919214811028012082159407257077064731787035139437786304100602982182042980100014544633612662994607577946117712268649229300495943165864465955159306415353501586252084441279629891386191629224222740150819853870192877658308608142610993913380989997254925282005714193633979238141736586879070224483202276543399697672024186631181436414469389116252649077726197750198376730950086379557898842604704927332583175769347561305037299851712205562070475033641050621104946438042022812880691342275452955548259442094844545403939900378279182705824871792476526784387313717023170132233486843442010876478946387315794171370154306199518684347234548964685456351732856147106483060763652392810594178208388288346027861960075074153750076507802183873073801802914636313102285213697442527391954338189197948147367781962464777356865703571477770725402373062423990297295648220404678997577287958435799617631478021035052765165955028600589353767083028659103760369293379424519292702213834736902551962143626188876820797664019391469888068648665769004099948248426968642726346236476280733448005294377611855835870310769651322063662625434456300400770243906623779737797551517532568419874603994574832158789404075417123527655981381832582175260223451587621643419885907679676059102785883351467651291174742259019304641205718303835608763142933024868500116033688787699626028868123275971369704569775862813845788333194530520421487246276799986795404697209397251400636068090327782782122981152005476087307842631667006931565534190340555227209353603304691567077509359412180389397041800083880080731566709340879254385546239224522734603347746313200888662479516687220891644151740225428259537963579380863719802662832239168911328554345981928295466687059870145933009386556507638871554225046204822322543425149265753868242917138071088915942515029779939031477886942861970159883537673159490569487749674804104338489031023698375133244357621580802606194605166152916534746584892519521268983254692236484778353015297766512047037508401067157719727266265901217898370363695120121687954525763627576600066627031889270966340810718379269085534489083684038617955795114392901329075426545238676186727313552960983965379595157595233674450377508283772698273481480902987720330623635367403729164286724564321926794599111091009877600590489037944594419469490103178183753973480152796732254476587616101735718402678579742658283284168766483375863395297180333158537863349396128485072211911058519797852072936744610282571776806502922939950301669225788581540536967456888821630284564299628127726675099776008167010905449648272898367665716767625454318155803732621033493258820380453559601702479602596838078688101091864055589482352442666468196636356823899022598365210912114039070671690849213252989937072560819088130062525809911508534398902595408242905150325864418606846629888937674096441094122153493426028186190078207046324889010882516926133116285786906822924605670082589184318903502532289850890749473030961087238080854423097407483552661100510473058589822347571970477587302389601603555888916948645198461727297090173061471427380943447707423278941687476993406367809959834253993878005686476960120780684914678052735083911809038541878554902919618517504382562289948804526511711297506075537043874156940862710735109938709116641843116606440151516913346102817619262636596936178166065760208588604341559185045434903627428784381233728550618019779250497270301028300951723611032125173697641918106625520309017053554803588986709104726834696575843983463254230894689559637431802886350829131489964786554399630805746485519434854265889240269817146789546709546612216198619935478735703748661649518286659037592454900517325087148979293807180073779026474546583404460150423436189845307276321184823208906065035957565860292632811105968094572599914501977172833340276524514977467534244041563454485905079811277578420430769968099491967095553695503220099955606524313501833260090140606233331855333253166097864319372900410617720048611948613675556653536025187323784579291532957344808493516552594929458248480265598511297771074596054754256094011394876793067064424251736452750801468072368414363569173440000059482741903447288940257707659022226522598422910963801867477197485639333411545019726705700926330925824683084846658258640113464732705630190210478723779601713574870951469819901256151284931182419090271724138934319311002372409758649228298905910266913457634816852265286588241039762653239868978743433106611695567331945152498240755131795625848089741538793628822974930348698161963845129741602652322490237407076856982492425409436862098931870117056220939177077512959511201238789849094457442691440865534569428797298993023532542917624830269246724108172003188358683658990606743510351953279991759590040507622265402713418414307847417901618568012034936937253870842309684705121145833307684905389128305771784180429575714980459809396927962333503905240819717149626083031968250177605959120669657807980163965893372946975156597668484532645853980646642392240294901808540171128577139784827312072652263259492288860619336160805633700762324307438782789753363549075220855585509599261743885922284832225056511022099023942210672406650228156618197269670777199440772290493999731867397115711948913200068082248773550763118479825299855361032859969627340158728040345132923413153461210213446263346612259676446198330919592414207143043082597513835113338028281144356796516807787456047191663869145590236247614475614175524862247791949858521703111064247056195068551643656477557736575022347632139080771742583720252469804252766283021688609047196072791934524705970952257226667490364733808268073656079873334943191331551480425930405897996560192542834276146962481665915943311258531391047532681139221593527710360557944109005410151597125249883189664028997307998447478044527262880870112717284804390745336493786920653208907722719102796117846880235386376819553727177559178807959245632730140649741259544003334523109798107987168742378552016430262731000127101198673193206606139172939814951036841554462698791081616699581283963211940811563487741083802111732862346743105760583577951492253399539200634096884046851230832066230316893086547921466063968142477916166214091811066308366022044345580597768396100126976389352709061104560849354940114004703347444182468831682504171631043075013906766370216239937046758761299320095763819120794118547989907295152441183911860039576142911841424710034826230385778798805434821352741053341050824476248158641133151373860658867727416375608860512220489177490158330632072016425612547035479325913636210703004995583774726649849590216485789277630536076493854748114703672939013825324250681476073177647367757018996212901318516984329227333176656619310736760035956247049466079237257049156626136576714865405193288452019383036998933665822226384853766583394241719163101697522167684844947953757089186077014866268158601931843657283762173853826715727906621032099997817785948907834081877765587712454556676834828527512837217381566777846167063246630027787960759297694873130308610067145736911956776912990694591479531828229791695172442582268314408896579914469251328748290315637429087397895892012413999656552737929874317592778069098257763037224891270812011777070653451800528625858984764856970677916499237799730102935325119079363621025634299463607762237391691371694037082136052474675023383935357049750264646398231400110977673531539861759527249294330150995579838383677789168254513214087121335439733687266261395112659055309207750071374155464661859888023260513003390618899092868717092489774168163094475192626468335196421728287020649000323866685029196392780326587024922689473501213638647496923456495792634820200824447588345244658057745606308471051527729529608751894952395387354630068078120109414653520788465452509779698475255462809731039057594105971132381470174570739668173934843595621984948065400354157574737243156242000024898873341994892157516240891200861258890743074796683898702154552931879454663407777402370785668876875662810015240084119217837050515460035005420569544064595378233600349097660570283608528666019032862860976299062891997705453656875065125008042446219804484770055629412102740358723758368816977710568065114881286981984361689641760072088209532157680177800311882508105781041149385422425062965818274696963642583484622122505968635149533169968946765724632904805666503575945769855534022057657230064204891643099971146114527338212480553120353996508671473457449541168240663267290234387253087538968949309571705075573521466436997603039898497133434066516562014536054399167540527226071418804320412595111779966228329343570701654594954011955007218001989393057126681966453755395041688817097689985220701904520640005350278316230256965605992788124600029772327483897607471498863521684962147237025409554329480372858867518522649652549898923745671157643196046822837869164330893345417702857608609898710914372757708780227465764444595253819409193850119731042428219298544021225168085324672586771508577658869325273934108196759785869326993379284598645928300245209267340164096418207316522288387032492502101662903866488605955460116096815167565464246702261617050567197791064371769614170970407464154867707125986493097954269888694508742286169123107941039864026084244213175353225932145027347026832771639098531258127230950524268397188496836048508949241836062797262147037364072206070920942565614616109786180093229336311733841370131416583750116430236441462183846134607937612283771734870819129394314538062906436094891786260336615230589919451979928722526955718712075840922277210069339298171989491106687941212487016585802378239285355436721530686884958326653742931768646075848110503621451400734229807577387732139442081901779219218676440856519187642152872840665986499632368757310520281181037699351672372875188223672509845726877913326814494691006391546599571903441004361120974734565048877691056572077748638966756849547606772317283097386698503067765155049512725576668017979342778435130304654113103075687488057848463470332181641920917722108729514891352497520599658504880662000477274445242761832549714178860850852802455104009375763580648401203143742259943587160858217041891927343781061880609810816374231663358192570927821961991430529164353673366968002028301711530178041813635517882522289317798618427524299104483020950047838753233000572787676605183989385151490792210951519490103523082825460611744990048617032770805833958585986267091969468949502225241533611584917022083323561373317080773406741123955647226747000376915454502906823942874441350239888833897869414438952898420933023007224519445893530647987271726673014569587402119781087685483695683566016056568522260625574977771219834253978336574710070225253250751032908823568409387213105923269306850380363277575136011947929466231037452589566984561269958568485312627431219495543385887752373019193544138784801356216531100211006323804988857980700823345564184538487518678448880863422111451974909763185705200844058122090007272815932164710709336755434948553453656245046080710730285186327730206753894872587775814277239052593989490597938412027934548545101610239805838773946482510492538001191204142821974955302429589165101061377807416407617333532741576386045766328365293966535572976662789395158036745343074690742410050706673408570566501003416358643847723015669837031944467404516999184710157867982333942661006470884954529164284168940656310992130725436262482195341425037664469692332933519509414808033291601049707806450083412498357088920482343532383063908236465760657269809796162760906791198784416672352093573963500112682231642353629686225047126619321129645492712090690216880708722677713922058163285052374338347020785367731968523104838402153631764813068921287645955400326395283720152557125696751049770963123493129690427057687839560037174847608807294956384304795294536238399820240472199020425322033334467279606655138535727183194647348174892454952237006009664816664969056552098294523816715260576151963481397842824357134107316687575867806840002476042490956816850733193554344455042855730169866741032549782406912573866331816527440110880671086939043847778383992589846793542858187523992882219516055204930300943825981600421075719362880647809362474167534572404531424984604252310019744281710903000685894380771668439517931770035573804166740466082637481266954732332705458951104850079597408882708137394601743165326221488773079353013474091634500914974234025881938421989270705733036649445630339702274482388482923321583788551433787182081256937910551038762702891955984074123939725708058425355770700628827155392044023466984936788810792760081098072726542565329080383372156133378837039280925567089937115110538607002516678714093778512789766872317553167318903621809766080317986379416662098154903273373651822683864455705217042721967695982979485533039036886482547564444028963304899083610935645248618461695291853691392238376856668320480016566495711444614777410891333662554969580006086019035332570128567854108606621772544087423455299558889817533747399989069097739138754001165818969973823451081219203224397147988214230204839271406791295861652445691126661627026245693085401238139325037659457051516688955748009722543206233333780228634458572286761433018418425082297932680294968408679526707062927275001960691414274075111664856813015787325178888469946111882833311087493093147019278773650984679132535657937798327723149840171575268594073355806037840020865595601201065084488525543095186454193986580978224519911447452015006259656173659616701337146903152907586007374813450127682063871068385312574641872797495064331309217702739774344576373224972125139046979546498758508907790249177115531735305753306958717949539728373310459332660560804240452215081484277262691930326890180403110174444823995666272500885407007641588919142858415050399402236345284318586756598950916660599927714580956651290701441558108192797578330315479353040102566695290324352880622840362825602930352816997706982995289124823023541228900194253182499892476208347945074396736829752649633716897910804706684592523346059133232727031816831439917403505040261479664870151604453232880280095237131506580629170890038966410056805979482497100789109959962670875219850002088108255891922834019115522207553379599910694826437715616224123958775475824281611097486227604284386610394796297124154091243395631764741472408804869117761548276158451005072981664221137474813960150899885593194695930901395231717583475914019019839264394952998129975779125092809109550595320992876663321745889697952236610081949612432219392989454122864115165123927589040294549329130370319797969553016533568246785040196063052462754294672639955075518393114153014598475659493227130400610091233227304775650965225992943319572403436553502874274880170424128510404812093036985833032900662055422257551607414251131404767417523876251753658992810783350250876420408461491703122016589530331307021549572812348886790773631942454554946460458308913983766941363843616503606944443594155189267015875570726313424864332374630121009833763939328986992203794718547613757819694932515722452112496032395307904907128535088823527105898132027903915889349994481750504340908395855482693294418258596395065422226220485550957404179523496300747139657517697578579119325737157169171735040745839665053492522142257933287971398393727690014649417417035625634546572216027063954009448901058240097859375180600365892207433631461887828050274869640003400454530734971471483113726677099121017481263478179827311495690123595838637927035030373256720386600498923175280998608738461039236459778991871690886629568194336566843760276421218397119793912789823195136659818266051872897596496300312373075162442290336472302399896375064334280536073073294063932656488929078258076401250550695122645666500831024041882917925138162987627428579057931386143272047438247420742533215455718256187698436263985907380159949589526320240838022173955564461261313976043348766627587094285916186099269020660459570375454747249751538832451651051622119885537544552991973537442250113973239186865520726519404344764008885036758292516703705135281414170131212020184950243277106847579292417798817703062302786018350295757897540525360373754947013961522400633163661779816541564568721579308819381231330191554171130984581332358839979928523765465508041632189828959225382390118997654696135913935836681265854861301729871875996979028807488875797837534377747256693640232171746760813262896860843011607513720656795033333047430304556169013339251630507969374641794861223625741437942825747995764619176121214279283602610607365153292787252744939796756524790135936623943514844792577556969573064578747670078022150504782290058707004908575986794414776331671257808361596391044903518758278870178310360736459790843892749558074572524901975224616538952283238986016717723692928068005818598505544880555068022013946451499735043267176203300344152317984488993518170484339443465569945115414172274373879851187515082660311081288757053688482775150645375049611266432981015669599618846632719300813454053018305559284851380192764561549491591404527635331406116911223115758876171342656130644089248674780302405503334975911397880838613333519634303350733636486578227025052034516878098582912975133352015952876249436337721219929592509288358650166219907037531750499849834267571920606980403617138729168841459058638481597012881397820061576563062650521584630295390604661640878519295988859340123148850724031079307274378295904080158121941622524244043351982896283466216028750864655571058163993720587193179049429689612604583230553939249124269099211777282129734110730065278373132147348228342921810131025870674679993618425469431281104551537102043637362125309758033721062264447354350066467384380179493715953491177923543520489577046211074489780999098077070986522783684877532553928898239180411631567946146225322661600195926629689186342650179881267597946307403042492106312122220143502351406147238744356241170156871494614520816213039777896444676226444935747430528467489804440863030125827510755229349143157604671416379870397949648764555924399465547914244632031287021880284753183625184477121704881801611716397359407266876936533367922882934301082437972035212997076052271583538423637985841375978211226395744506842042504518885311865418349877624477857576189168601997498746427031500850976118290484339223775270672899415019026418540882765083158039441831651431966746698161541420305959192785526232793825073105519842454467112003444991005139759130304568152091926791228420455885712383775052837918897339125270803046282979615121756611460348458151319034371105964244252977020983877297267183711067489173435796808030186604395844007308115557845156430995626820968039807814321206435982938374308868690766345894328317087811518696194920556377993740275513201623619974625261948315351348897979897990163948665407389109872090268340399600391633289044733116998250314897284403527941410417676002063284929223213488857326645163434699310162591039532306725834919175649468751535609073660553844247381980649821777582232035702310780392082638557099896352918465188353079344126546643140657065278456719959587357243332192586375249918304270795333541331146735510152208431424865304526996517260418982337901345865331022433900399750285176076724561627185634147741230247567046689053064141174328480268035595806296680437884811544147983005573640665588843053083365625906963441939410709452620897783347335872722347098635521137862341798217654636833364820536786074286894658017628035397837700830115416160833876145956538496085671602492997960295836787976753929784586540990287532065043021636431691032087567286945405431502835200940508014165369379895501518815014343067859425765783187383726299021543615329414210384117636257523585229596934987601613547692902683683447034117858304013902059074568609225278773716440400434793988543363891242663770687731186312128600755046866672943080620142180815284877321006736693237471731426882352072274809878611956266491800389528553732116643152704012615995042406721186856512181234543568082034396572901354788217935173665275491465121697374876776241060570636548666600741785841228111276962229909782704415275002644805010399616369381863426263730831444391753605463868725649584402166407067639771910203840843595047811291774325444373062310922414502720425597351999943211196256700443593542358848501823655365186488889322852489624621577874542813737874461081957787918653045110387121403182089848550212394069307257239796091019630603755244855811813956939709068701036965561988649932240029960127398100406600593024814683940250734021457560920813974723026231814326014963349179497741280752669043855300988548445257553276937306294819588306730975843452585484744851285830637084916280463270138955980728875782961126768165584081154733142696279430089510192046893102299454875067011626037270947310967834110851042115791965787116251569650818937642708693446672279904615718334462502198506537240980567188779333086831722378989823269327167027654235709981406076735515815441059023545198083196528453089145049748497174625231216942814562094931109281966111146203954810993878115075981960584414282743248380076887847568659168779997719000688343573062155276776447689819093282133070837581291268195185519216045222815432059563813279513135099997148838685792862983243495700351503378560320523989143559207982586874595212097052685046700670244352677301610835450384233243661132203865559081412256793671691300780556873881870690839125741709802265943463498323111530296883518648929991221554179812673556429052060879020769798861091435127892404793979047377538083027501501901843836288193485478758932255268967943626899345742438127367553916876841728919382832479835224674036100103970067832002904239785802336064421787685232079672663681636583365082819136563107514176396051831999872161735735584225848285186851678968612769443490988083514289398325461344394181786076532094389857861695931561623250954686249692758833229729411131010617155852346563266781911958634683343901736513755017736431934010781930883359697029585540864078639503013454109802503555149853873111781728118215445239349462330226487541409191804944523534405632177853238978408735983098927533090404199776676828329432183440335812705758639104738816783219750419291410985418019244219225976172526909908978771834868675035280898744902203808138792211421340978378465776667650224169173436307690224893726663811667751922936191688393389828479815697843134099194805492398706350005667240045337250243393343553702489914529261847646206910428698676329452552867190951579835851420317739818363151407007455767957005612950557658533447084207536134866175833085898556680339722716046448830757181879972941492992337381615183203644775124623503855636521388327378894328191394048786877123488376028455295768605953186339115875759934369092766001891748245806605662693654128692482041484352532862431771890449814261123876187685974190909734025293347987767009382642938623564137055303755978944302537680930130370047707436126079296134194550081769414199410674083818474082999481042877630522491521154266929379537459360786461444018741420984943145767614882746107604285755733785597638927065711059147385711893346158329195439129990248071003965594724160800439934218406596884924319850743480388958011099271926267433718796447221834064053880340482748423272817299420007166331131075116512839884969880141870025180384773576198593485648201739739829245194847829458526342491378925083678879148618736968508151258877489477025885417084614976364399781995023787264763565754105621353681965433456658767902806930791344142063872975510693518994089996594625704542850590793915086833242274585153242928696617724274854101464788606489501863390704263516446549032366884417996820926861282885680594075799817786024776660179787521644099404319567437917891023850353459489032939759617033680368739581690379957741198202040709806788970323230464793223804053943966573220044627327222968084570064434184880908832194652152395800036015822967140635810577042879989468034774856666556898346649303412574931899266741051524311466931113984490550199411769750981251880039292001111575859008463701710545739138668444320310858440699122690867788015741062691125992698844451602799235663919373836695540704205984865724885429117347617045882846788042892209008728592241270243745888873109365106720432030945946256821154716797135199083506999168124870905392459913343105284153777197454109065414815861778316143322711132443495486751268780241707689580588648014837824774636232317511992164481815540066708638983361675497159565079877237471295339269829091142472751784824274206534634243371382757227764886537820962470099150256347855952256482451333756701332359062828058309712752250574517222603775612654282778313219028950076116180758739874581133457929265629327904890625229829453324514760157053830585067989786151218345869382264077718409911485513975128297408282172531899583888078787274100545951167619732452313042394950616221902591597405365105101070596462311700961340813917229304854947694390132007191915390310128060670196555180628313220535477913810644238606563389143453513717851581719650552713698553970530067618198451374229083674557522854296446118707256457498630132781369991631376775366824170865595344576918192194334755976179853026441577087517567232163724318237058399763886706852083895927997892648105581350678877395936708283731305324433334958329461111945257616628067118338482455147938452983057998102598342743508931275299503413141098969170181573250319347311383754349040147760991944994551866457448715900943161824551171733212994402933904727754039040833223501338744080209902124302527941500466484495735354088959530193749993117540611095916277608089518976948734433455945747128234763676664962396403165304645729144573628868011323803829009615908085900023113012235070979720539806753736798248451954871946485691387298413159729308309572784975151761623570788495731603581674580552993233037823953142380314596545124171242347144445426243149430289775017959020411398586496208733689320635030146774412658219704224324329795943261416055174882192476565451126663331075363262177101838638216387087813224230349651877333688897532466665340552526417139785061932886103300854459630810229939231465685231877823893873130567004532964218832524042533276561014044552221508315148630156370123545372328221189045694581319748408550808774510447372501326137277491682259481694364940349086893344406210021167509102592596688612040169234722659308238652399130244705945924798511576770260535403009158015798911501524440747564299177590681136890793286550482287223660133434733623371389495421832377449265352432496823550613429591212093829411947509179187787831995113975240647483524535060955049230197816950306542975025739718467804386559625403019896674748855115295578346960840737865349926425667937992353709972280743166531321720553708151850428649989522696675368069571132623652458684070308093749743017361863602191138233180387823792668157320996092984560392944306240290314652407183238291363335372572052184963225280552711532132445475423759918119285168743590543378009123516011437321758820492640853839134972244747582579367866084669437294636496842746030201683437014995506512112109010151520929505587281975087810433855621316877526856303351806952803115142279705342714456296010614955354353516267935832941241420570297469889522754945329526131045182580717040755507356539056548120488152117252608555917716100960068579835381986346343181019920741217845393857405867385587262780557542573846374494275951203152730464954333056670522001436733471946184092441413238023288271269669409106198927340303060685681987624117168184603486764398113662450795360136802393226225901111033933475933142648624583432773045313504882132896901646566862953307712679704918954443504824551611808607963844660125804345500641315776633333743438596123584734467696868181425127823382711405009408101432168427046662328909585933723066981085044956562699423702198074609905216578308306810490823221885839555626692365328858417158706151173451569168143541254538159938025175385948958338447346110547087623870294817727863472647138819673497898914041158820864494495610995599087885509829031373140084258346044962828670376231970626780853759373328056107215073175073260592642955708577985763684854906298803471373543036252127761750165550406555307462506465547237019940030339119730197801524901379844157606753773039800238521249914007640859891799492614225618858470043169306718652379117545807842132168047199745496264268841646873414884831696823110273120592099183952354095825484411349474561941612424899555584500600423686658455890085022791607559174533172885203039474963609618516998045944979180313876662352683642762331693729423755395425992136205184646170766261293847536841667449694805038318355546978450941550134493583365347196410029324022451345058596889588831519432307634394268539121629877755715621431251343804602412017380020097492894097828850359018679921503290818314090355869126691915770391645585894265612555125407860788587964180788040990037738879699413868092694102852001199058680914744988707062221623481030967503342975362704387548461289886077471998588654692127958818494900257998279470109471937577708163327706733051680722203261727112313535876412378867116143415635026639478142609204973848408775491957420852534618788669509344285174248726240308823550826337854084528894060003010593359093676200775067460294370019900941029418204666036236813901378211781562474436538471422176890367095336595913952985761668648678141826108658872982002189877189989596424570206884762676266739772113149257475215544018759120780031472480848882261528553896194359463295782932080914240319764499848567261556563714363368810014363312461182454099384573848234202408640423034524742307997830000881771653175584050493471418104081985098032019673039713845702351391744859636146715449229220023860503608944751102420624117393036513857650258049334218240350614545866287941315204308484239550763166880193042097744426289321859214853571853787749295221055579221124013939180140861722238287582502319579812077234815125923581714537500544815372661034972636898388053429352757384940275821121079131870934412034714188243253782630579578165203758539587142491656078508138318360202569683453977287900014462214850029583797138231824610139400940772913724121809240431559682112603311620749373275894536798306467405251652397878598861799202702913376683978635197700621867970110073011524720550051315505132531167574275509567174607483472314066497627594355630557261025916367315527527367359677978127113223849776289777456043448265430421538892285288551544077394512675340927113049560751403602010058236866795430332964759025825958423001151418646510012408738076803593444628851983872147161962727188415811601516037422977744849287891287340035332168025918346239416008722175348217554163863302321283130158754156004331331299761532268782714278101763885556298110982771131561164410375675394264868709386468231894787510226933303557168639494565339558046431792263205517737845082676209779430706726871852293468046108885651680668589284318624807008835851939294647868094843306563664222212956720049595538172577353361831948150973738971153737753635387413877581863164949390312347860750138767635512982627230303367802073809551982433479343040808488818083079133638555585184813358085367780846584185175723871845223646086880959553753908487959880673278574747082486711251314670895287963924623993891699028186544840330011486600109834940710689493146814164022225507933101487321717474546763659470504024876577208816869820072601504865415778743551260454345877220086477449280609556491888712957897925769897613456895222000740106632015080877385978573915440106708585802766699669930215847532926683677439803819057968956619183508008731299231106908018561231397762210874871043393390985804241367733025682939368258887822193350024884056423203095465369513502518261293006688898202721238661735366991402495625810625840555685300530746025525335491785875342619302267991088598451796991861065930932156607445261299758419064730051154100445342689609638759340825659340856422772054186084152289016547360156627134620218350912534582060557706980733590032708977382053453487913362486972264819705185288444916260518525950502897029883876429819149650343165464144068397876380008855061732695759583481466726976653019339278547821367287551940706066610420526699196470065559615263550210764770667706738021770903293075151392427640670934486816243431574337505706625374202584681471250794993858122451022642262207580758710716132174886186091131344740669816698123146120493195007873434208024192325554736943642092126461647772214834455390594179846487868211269313350592109466952640072073783485537472080764829619126754940325242490906865770621863454065900724591583826935222972983490910008928813045340568419401193660995357165804061393831818007438126492787887370523877929101362696227945259036079841752790731991775995689086433396628316704978865415343191124735993960711590378340812733453163439381849731486545168074460454891166402980482141672965730226263375366754552935287676750646363763820639871625320925078176100614053880867918761043393633209373257814543913805901957838424489715653535815403810265487724195221701260000812001645434287148092644071899012592495215310366572109048828596225864338148533303268569332463762546431718989477337629979299450256729954508990933808258777852690844922661317493155243924765656207104647194308484333861886677351834775123392517308434524426090550867431022746573282735069661975836882750946831598591715125547896555712816607066599101961993503555064506396988697269640554192623571944876797775772199348673392538350739794759998509219535887894423224123383028294381544179874332923621396152894472604853090998224118074052645176628016149565629020345484798226558960525907763423846059912289468432889405286896241188064860987934835806656872809398276930792288465092826260264215386618358598217910292472314444978682508670246520588862818230245525467112175780782900813359163653721684358202013340502407019645912483604951831482612424579351610188704823630630943854880762158883362820459203405703905022765826762485714540970747257970545062720911139109654554652612968934246883893700474792331869747302477955753039438784283031421174418585209224612449818518520865874487513100827349880503598689436050239030437154365636350805626840410087725310484691958046186705731057044637045600821952995043394675943190216503630734210164091446792246728756539795147828683971767508260486639694020826752539147030251083238668451266257949729590755273468441290429426000737228542937963290756292675963394403017210766505236428550830802569459245037018187324761880489424348001051989762043916288980564377774953747101224991194580847438309638211342053289659594477263866760294907583618635958569754717949391164165799457781627492693245220454430024401694393062052102217915134317476184490833142606809401892337507780325932417064306354268588388186958194894005344865934486943026674328189251585327098717863300897548686279318591225569719065310042513329158452859122541768863374580154542246159283500162664680121236544438406085215961270821720935718699039259940107015473778758980288187548055121394803016492547201751024664153873194308078179909780089953587475105914769977470865319099699830421205581582296406761876975644063556346398876084248526186814991398506923000146784955173667550012675516994287228628921934383604343744899693067642014346084288026769226637099918056608767867290232841963494576755764112511023572753319182267198505449226542221717933846863534607382291300975101196124570551571819949664504173206029812640277219378338969038471970107039363723399189867864540439723351513952188416727621734985626155680772091609568001251779112814232084196446744293545119694219152343371876216002572169497297400807084712680576229758059322962555377215939176970924850159177546809982864921261793830027666303313035717401765942567997008686558855416925775439714142479485225628177017933848577947121851448107040984787790517839968205479248188841049503368699553391246436670051232244905609180451281003178724323812076357529679763772230637559995538383548925899948200080260525351833046203321085298952351558953839283607556364219034056550592663973722915967590499104060801049993943455671501676601591330613790126442724300759330144159251443693402025950964669082142002499772230607766636822861632659722805918751157565214959864463601286377970341270200731719690769206693100186735545401404967906012465584192141675031629758539694387334217854875974597518237618711193011380571801143094087606672275556723582164682439864705430623160390059402824586363996144595893134241141822426040023722990473856299570224579480905663103518460621803641617194148201586808359002810693592223867620572432342186724039943906452352423078550146785419212108847203509832346623044763706242983455385784454634802101174229138524934404004709113932552635951130673785892373032146183437777927355982942797427952254742379722555767624628287868377154678728275150940790780995000845791770632263891444051962626204820411523095627965424609423339434614619145507760682266433433664464687521032988850376641728875202469543536474824156779249310887149213393832538914486402474791392120792095542661093661535680125383981550376539221544114864777357957210918108864092140701516895205272797571431136514758510505672896737712580544472952970520778609189270631538545329423377476647434385104339120659243364210509423170927988265266975134975442894356486856041759165272815464174379592282721286175326213577776542303732736610175794575674953922882167160618232397382714275276298252581414714658460187317143068992255698922995930470231905321254199666598897938027514754577612280799807156952061497575491087518087292874678533020831918845861816702603018820106556822396496523570221717353688317735337782853697416805816578529494132849938610986541614347901621235700817250610526736734530788816205531298000422708251143079556696350873875166124989840654761779735681546512907347522760665603476757300327024362383701736587488098570050189324118858936879156315586297666292982103434816672335410028566928885326036214297341398457928002705208794102801558872443056564920725904040442123368048122291360789797089175045840946742551830789869198158993251612623034266680879285686257431875256859862613007215903136610289624112004625686890434981529586123628298094322316041500673323726063992995518934979747683090217547494123052269896976223294571925288989988126896844626934770375232666368553039891044913987642940447093591131825813373958174358061343323887243607220278005128600123051334482777797353916501884080671749477868129019848781430019644820120908639088969327711851517814095767486988987323409426080758296091624907851970072162876297699755124232365736842161269547702228216479329490274473028271798638825492635137255646182712117880458293748729903739334505023546532327052533391342537280894602729659578016960365056134848895580017123629373650391023885380307631012840226167215533028668522235594213322939289498062684533428759832103663866142504273066736537386063020017708234703779503453979225455672277590636384173825927261832679258085241563524855531317720765627734081862404747200451555236865577152204668124314606249343791063173472054467276653707996978830219855374248728988566326767780150412505010978461329899853427587491937078679838847052245519964218359474470362128630664171812214582768435640915778661390196986316505011881432004520732807742696693899525599485024957346817052927393729829200055566845793941855771860501127563186873598822369302405628972539585440818121475012740160064127747920867841362681279470176130290497425771129628322026069189742328889173551242075825742005416415400386727027183480785730316835138465968230522167709504143617107117046162961142002282513521945285558652080513721767457167160400705539851793248754365524124491888658540746945622912019189083065403203499246887113317758210117690478613914739158222536021908701226054066110367208208746214238461541442630946190730809025882083068496245932192574161098489713216592846824658638296694590275785078273493238963935956116200798721820023826957014163294226808141415069049957477450558442196675854418859035163429761237442784801021527928410248359234933949036195442174347553668229978659515855952692331995013593879432569271338497577381981835662449825996487664407192076290796339440791786287527444983566745295352154509585817463410869374979459026317787664409178463383675682831848016230248473467251847276726433879770143762298086006512906851221237602037143061663544765724777909885663413487314949443859052886135108408679887015055919168630494430121299633139008714102921188576441208350150726768910671390060995917733689591197969024293077765928962732009817035996747833002558611934557723979579166372224022187874552327982518921486143629451705019271949066533512314083569238560337128616538823349155925649776236712927834787355880688734650211579746211596349347312421019964214079205918775794955720973116283018979489851160869447212370283956032964607493088032044504685939693241216788011064446035398894737951473562296291054774929580817964867903887064334827208595480277529595895520649602809256239979852628139096206456341588459988130557537873596654023168433251564060824490260835762522223083023942766366839862611565693334541770186817010223250148515677122024196059216115399931180538267380574219826470067594998468724180430991286134999503319487954381095090286883521046503351991392923488294589512758295325033232012620261062183099909486181352689366108096019743488228947949295902270478178355307973957782216971247892918963008522786300204739582752797222665154014278835102472239424766436888973250597595764081243006869646978633574113887481374541318385966444932947650656152606507567874561025168551534345379167002691636124611816130972404240325515106018560924297945234178289871764062317524626409540373093578637278389618375406933646118369943893325135126763117351782911555199382343704291878490729649488016192569123066595841515538323482867403188196325161400972613441528962421119042943043368212869674171663156866678116544117644553948815023744340438923436520810541624168913443857885342762754608898318897200976641342827614531356178362877669042028950868230044345828859254703139544424741530446497086300965554180640722328194529001451243323832608232910667795812432271317989779022127991333900667152974992388320857618353938344971257574738223430929146647674311692859224619688303439547921887059745834434768794169325764329475385553293187150239772043852673412331087524047432520251871045409275915617742096491844959043391090093996795895137371155657267952369274280314911809057600890628608430053485089910521389582225368540817096603007867998679526242408886131879923889147899220532436748994750210326348226317221927471652038985021847103435811931524421613244536253138648806663518192907496356771757205808445430687335664697240981797384591446404137780238799616798073715296960401933134936039291963325560440259896087509255566243379661118897543702329567996190344702771302993668720147963285398134568276788189892567049884220425821719490056635832536452208289936442618841349763922610773521047654426695032163107789955948956267471425724039047337603013996046735000222329928377397717307797671055432322150936900029922046662720339413568260955379321209683739380654545550019016327203537063776822567752829321750744660475388714583016013115641168388783063803503235395645173615931476001554249530149393028546550513166143010125079651974274248230596188234279363633574881372946528383437035140804694490375480241273392913730544414281978145271239804541020594942399035127271006768260520945448977314923416429178357231822010816926953144207415737432778097980234453736943923544312262659976742735977229266447329489112879697741555300780365648695264828138982832063596880496578634396269715741207635796749033915653269680070846129979802913618256580192298601746648266174710483374562463894278943871321231116507931527701552195768402885628922696105570559993760840194190103303850764328186350939804017778156788266316852841612424083545562971913601798522829173358896415264433482270189196505219019126200801290276866073925737131859931770476241932892464738746112718058420138065707420356262045392194073319417974539318458035533403334296988300903135938718424499537430342009579404026921096228934300563994250058141210780419770313839415218395443973173214661135919092848335755804956180419160609885830834652310170350706515048864222541048888466996858281263160607816643770760693518478707374108068068766468171774724462660590192139388138168986332358546811832336705506901951788835614498869030988417198975664501253572312261124210035756383704494340535265532357552748552677905393808038239038003343767581789438465648222805187533449650234399018628865119712792454462719746497462457934686542147513366011319554173761871099240570119093428462743304362490964596944185248169524568244120719719656772904043981779796423026893583130245497524449658916133440105756070240735874018268680952740386076819549007650650928636591604786034928827761575913368586195939943201354218696236305938578150282215880179261867424886210917128193140991547544485745903810766326235507451005676924868172948576719779177789630285453098694325382875552884719807557010320735677618336102325958719295914118717969667720114766533720463910709069188324155161160932067387467132797146891695502858416780741152210717933997711994603656278914521235876541139047073107776643134816539717377786946869537731532438426407400556488170122314433429174370842094788293867231712256580884834207929988603103661843084170385231371529057753730786164428763523847171913759841390520837952553586380808237717803552910164592244257807396701772617398323006301524610798954417934684699055555522217543932414458168953169526274184233935910626529470395859179267741910063673746961601149676451542056921001651820909860058023979336172088251334876429916294455796460728463178062656132603194292028046691747731939318820549355386268315205400427133487008368366349458373512887737965010028514754475952797046924354631163250797975245818903552365587484810477514218598416088114786745548674293751337155940560939500228691482374839774087959079021622399481586805849346336375111278043924169380590920742474040091982618883693154477487745388477663027489621399132083824618752232735189200936763686581536394394620078923555866092897318760078208343514449807985816520899824809041988679818860116277175728277133292875763222424088650129706312516639571475005976070916361270119540811854020135510649171886924595324257135396266882804424454297562457588060137190422074266647435778537160370218509393232289532700272863975921926640815748027967291155299781788489341128615575077920416319757106564965106740391632124897247115598689261190110354774225028955732479952550006081048198788729517750777012741567023239407149750830969314741195228706271144322049911949634873753441722497043853032769561850474833669363061418230859031071932921492087968026636604836253894626743020227576829396868033237132788035782998178561568087959156382785869515942466834536950974390160048748066081134107738773684973601993216524147080453615765425297258625533867134012022228279087184605215802813077266714096625928476918113353956472997853637064458144775303397328898310876628094165593919009688982476652066326314539036085138981505082346647132441789976666732756815760040610060860261261386879926460807553928804376303493028457040835935052546313962963689321436671778966687170829068868912095503158980101757080188280789627251644576204843931071135608177569724738145917067313142896186721606883395530685945129591456411858574179368896138597713947940509521178725853818670131020710426147041356167367442478384676961821096819535792091004038292207750925648775084856619683063899795819676412647342351346797653025360974269330050908576479520704629943607545665428075411680101711425774324958497994385198806392604829659084841151069205767476788539118241505729992910253245280151098441919126953160755649788582993380119363541216611921264236785163462184264070256405675537715928430467557113816179760228762095499631045885729683405366004557922342313891110731924562096836073915382862647388288602661946011598290699580201922910015728878985623395083357128395467803264087151569717693644858013160194142745947275394524437459852281799718674902441541449868347642479180921714813699694591671682185975558051222325812029004188612630141115493926702329897467781014145476128193368329876804608384540843761178777645526801759206750804019404260288649321464109867483072944958799648680225589555084201946407870767512997739400741512870008668641161280291259171966024710563385704252176917809414583763846554197987888934515908155251167073292623085249388384402300845340807876887157777158742236697591625998580465597620755147148176978424200970460901308934440767037462434351571130827327452989622407826706661704188446116552132683889185995234609654883944945676036572806682571905973154111371051828234571063506201924703105661123404646201891200543968765178964501932034420586960698633786875776492339747568332745546711466785748504359579807109736712825450436316030786748690461553307473498917801654051738261526051703035880111155207268481027539815915846209441052234245352300996322022620072972516302669203165503138469541454558074296033935953719591672153120149813850373729008104919485161140390259094997898331291339656587386495779375411958814024784355568980036478427862836672964639211177516553451662954633219205507362103847514183396588633967696591412478924647479971019975204069361662179042106148365480023213057307989523797747199002232519804590024293447639642559183810992781290689087962242112425882769781858562432860284081339156608935573474815804713723861647884320567917975007360037964453061912284614762891258524290785551399151042499850901398725806047381885228886755288412847852419595557885900889901193125833572608271875340134684345591517620074868322516777869751502067967876947584206422952153949272702364125762804972775844202109317198586581271465818464387130663832320661521030855247278106408536506310842324774263918068213484792382588358259486255128515669422853175264910709214681912512055666016916581171166498985723795030010440291422337097986141709890409020890923759129313613614366159686530233969560241473526304473270185312754012952047095726417757845907269004690094174395172885033819331696250541535262662843816305208821970120260115612364387899627143086465521942223659082089838835386767122742308991891453688231104117060402734610428598418071455548730724305260789245326321519344444107419643721929166164629946554729344106301817238034517391193787111465573591744581056291497803205905842166486802022039033290751532344137867373281978225389802548355839693745836442929866864635558602020217004259213573525476652390375338231906001527886040476596811763423229988482241252009401855281924809845502579954373246757045103217659940003495413515916822082761424983373443443846615582462459185105682023369294681470350131870568296446982964109142956731905044441630108153020147966497048343735284177956297240975176284632640141840885495236563396580604065411317363764428101255748455337222914088329935442262114063679829705287609410627823918037842882668434185133999637420576084963173137047784344759572547008484496474959514914257411921398095869244795350412045995766158562698215049539849100273116400928477921678439579682661918473433623340783767475548981192452941942695711889363228303660703237378032908510168742630394356367854405263880246875880137164915926375331402675105352122714914321888446785630000827589158145649136828843258000924096484235801689113986857081631106408950226555395340084538422566011851292839732379619818799762445437542260435731631381363121892140803525894181692746399732523237847666054106560823082604843579053945509891651127838506861662612963476685508636795130524776860232936630134624704849676420138940076444550941257951909979367136467448769504245562404285551276874777279971611637070283027444345774755008888019541710860701349612061272332080147442673798647168257617711480305585426396324272200531819432188008948002702069893734656791908843052052798677615600131381036253266759638121301215682775350316207570360157229656103538922505238361637159983039684233261184397535194519305233191387847566985738949538141481786999901860708536436366150314667326687634765729423525336234826044171004400671611059310646814626086629473526344902801246339603113769141644025295194275288541282221053707576703752754194478432599492629957409349602659490341267524673980540557788318382160432480509995375976127934924755023974872586425971070797271025932398046547790806515767974044677890472769014527329981953970466482844580072526706862511596164098428120625929529098069696408932154257887018260123939463960606087698855854092059711149189492741628428177676300552138454840006615100686992475749025081645783518754797578563226652824987170735989456515283360797474868296325464697283957860957238299246084724511948007313060543538264545026496288265373946256200846763948302335188501144984183442244075915878686637601582598953270585121795062394533425159211845573673028358741443840074173335932068340495633401077610065812823633129298041218152564867857077883100537496167287462521237315694685313569675249931885015198942156204757604637755250230618497940014371735797454720695498294215150171207433468168003713315943021232091777934081337150807953600823140780533291328039710347547527550487401083964171737588562948548061213859332459365844268926445033722393589689506939351939913777808928655941054976439225543542314993738070934325083227467615505577018623237058923783883471568094850175690202330579534848134809944627171415758768619962487095452370407399260103285540409204091101670318894992054988706979527696927948601155280385903279996295814268752249749041546151431017230009899671328977082599525568573952133897268280993888272738143777369790370080520502508822405529841391398494254067110176377112493354743159874138852796055858963522784918387778940997542375655915151198669332850756081840829900754257781838565909439160973248017401566193230564039190430138385089584869571656969179126121962540939068765775417816515967899340065008447838513960654432595293692705264982858068952755080739193264841879822065842048716280761689563190110208640287250680898738609929222510453341473443608951269521283353303295210380142903419147684010678325692309989847484363936624747625418307874401807479748925580557109943676508787414278390071400004437714285648736023925510969454240707379416466928816198197018174173906712285205554644490437467270175062492619720316381187668279203625589029355202346176754779715556758850476037356167824067613842193335301979423967523940809143186622129566772681443602420484406757969030601491020002256207669859988243568477685787241240365839196828302178877864908995850314450265864028784094615272557338328646336423052586770470159364252185111518732234229936508882085127857436224129412185781026049919618681332478449156919591258659234504514208303220123725493637908657868172560014941356761244371782682670799222792588061555928137774206574100524527812444293653820744138941533223787304942789910979648084990791941138700317929046542189851725689369342718204827579381645687845495179107984622178755554755080569977489597319375383887198190163286600597055642740970240209716447291836333293177501820308839621060678380594530138883026929175467016530619200284600820500801767012991801461810700116354253937387989033318056939593545200421199404100983886360595726038659079617305295166761079912349691307005034032710984001831550361552603691171753221057208778031206015471314225615060356336433668181377579245913224648510983569989384204723544306693531779432034156184849828473699186356642134387326898206796832911399056047792877696751163624921435319142606740169182355903344971473051587840580157842920688087472483115735936579777796462440247071440453083684420567917136157791465524687738849472477020240671960325616807646234420867637129490617661741678348196445514796300411020925869275327516487235446452198366265153081199508344289563770894664566048872564002260085200053070398158949811122172580837553359495633439693768030083011254505829435245041522972825748037768040464574844162035953726396684985033914720318966155953991295283346414569307782302783616263318321148173020651912419151634990724253185173459727020282125701313412950816828488424324174821168120018716719895919991464665695340151866369046783880030872921119398098254144312179559982978882378793175721012382226325950402571697025146231344874010774389030506573893267743165221402109295097051120933311280133005455791586832044650119084718585004787462717688389066943690727603673473765285798048134743994748832838139179419846032366021098727914689554383577102456054255728164579671929424087454692248520812846200306186313073073572062173833438353582449702355769560240124475271429613191249325303324686306014949312378634703854232812425913181873025311119932466038912625811477674825798863445705516255968308880747363239698547964929428596880263767520228408028741706857402085989869148588774328402929188528304301490548370804637243574427280785842435978979067879838452464328065233434558653912807616577556741508144309352858533439689795546080291552075710478566530903784937554292531580813211161783763088714246055702495092968788610351773191856178126507081840883088183511934672010243053929114790703413350911169387929375592003364862749043440377421214718703505999742440935317982669229585702610791487761449682308470851247834498671541871575427679223832118323895474394001095531602968963679275531824479181511633371990908409099623224922742687382278690206976134018342223423330459048123491544574828294769992698020482904645023567831676930362402086181632718531935622537668665334080938764501485924524632239748270847161596384018712047410188689302972603261502684073464454493796755598752139768632874822713834012077736499971715268823068905721646726804784273796741025410772515450637540101510331186567287426512986097758921857442596135688494336485141442168212353707149373058020693607083627345063635703646743241241272400658083902347818929347141978840018406477724603651235904519965847812825266239764800212771839950913223018805888253883431962028079454541371788502119903804708597029225723310935369468036724032785987397395448081353736205041704788727925569116098878465777975884572052520447974266960662398183088072124838844609955735787989998377307511138555839112004426104725766796055239725530732457693639985938851949980774343774822337657752349808948372844480670911475115463765049916963420687910636094891472938099502948222605661721641091751977600395811155280226303360316829572291761894068066771584333807099465810890306473243808880599598465715623817409271269540504454576952689168047918110485620089148117472077600536963669856604003026880432037670951819068992380683521171028685983732109587257335249259633082027657722979134450068866118549507768472428833469448306442187637344888565284704287817641635070151149968032694030033702314834557800633320772563315932458088272653074220845197889274712338318140626723410782606604308903362371062089768931617293888922137690853824984758681497474053641772707589467467335921708044088265801002861541807562818103129366951615067138045905143103010296012679775336679193274020970822862773330141223780683878962954707615749262452964383904997620843837730516109602408229266566579105539866200006149413067045235525358353502235163854265549635539603655454514898465612627856436388635065627998018645216452993669949518723475285408267432919124628467453890626030574945358850837232706065282561394058337990940400268817174953892387041651768706585858323896828282373206189621911448649054888885735866815029320514191072234141542035168762618567243069784047276386028349982864422788458844393610974240609368395554408319429879368717040393592128849816259412584053469018891128741293955774720004189232670693646881743339933092004641614226029220075141967977953403483729652784733831844123442800205417650918886932715942160497407438594668723432117916542383508422918307832113206911872964262024100934658122960977633140086528182033020216277386668882378192797667092261094418513785304891873472257781086016191028004732755282141809955193509417725849541719066378743035143906862742802708232343230902673980316967234249672068889232537143610673244188359119039394023893331415036525389187179188267267750985218947683735553121103418544480719159132474200722703940732835504327851010741961525709768688940112154794720375730614068749799353643424104659690596434943842586659414885437146522099368295201212716528565331800637607028071571517853647357442617861635635898987895747737391874248436773128260118531615278274248056333893047702592819155597125547783037253598089182820448564569285087174519499702417371583285862729623727247869069418844478306509370700130098244337076405211910589288455510080812865721506272779440259968317454415838151973988000873498931551712436495623647133468362972644032171450656409693387443591189104478446949112055217093427383727198869189613704003993439155362922231841156826080367305529569305408502306904261798881704885308250357874695743615955625553545868542749846059874018417357996645638149830281308346679395624907100089692388358943931607701243434613790766977583897674719795215927666582015906109676662878629000102035767842947340425840080802596296597267026466358125755223373183174559053171787286463484208494608207647141142549212955798622869918071778966313574165384999225639421246132005249221353836797925390559922084561634620700008621504227388973879608682955727836829157382612557083528398777139391585307029495354719689279067767170031882397486935727622282896667150976116743845834501986376495765674254193066931453252400335310897775401551646422903786583659100376784215529782061425787198543914218895930788443650719633533903197935714763222633776480788569092678978950775951733152287018192544490271092794711610553785384632903868361671693286931238474818460032569579022015210155472977637538671792987302781527970790554149658087891459104048554634631031870143670071038840791028498168737331084845873923194562701945763283706158992912679263749841259104519483151147879289308550178458597579378143894213640793787503385399297056064366490788671601399161540872581774383359475444862285630790170158593183905971362599828756134869002515951856866303688575531929533254607722801070439373579726214076552113347346278114984505827810054814774272561955835609133313334306343215492182114364870204522546630625904909404656960803483983831448684884776444409818096592313771818862282794430898748445210380103849463630432973901760680139932710849182466781647119716640427497195777883648847284960475589367545674744742964922143982795482464873231177815778860697720781461352876504522739205772490865469359336435801350697345161986279808363040153708192064319782081854980698533392591723668026323529165607302537825689647306913872626705194243032344475400073296322915748091665213430226580351505572646389069012386404160881754756706310822982102015202569192263657728991543454067444513566789545941310433908852643721848944152888872650229670925027707797076241594615747131636411604615838817387885936939956020357437221195589996391595843637095164896536648598051489693233949317423483046686355647939185098686424354926009789118811886797408051584145393685384831906008441269596855675573856905219391155861340585170764139432404596728373278514097788536527431628152727868586558468178107183212582654971723758312217674642318673986407505429783825906747134792493094972729423638435105343017449925575310231188800406024193250309756292430421231725236946046112152720512779502104545654769352406466288060313873373568282438941448629577805657907607951982549965775845026054440965258103224435040633228401776965939801838816811982762090058153578589866499216957981512472483577680286158451116972533403287346629672214061016062541750659764338571532500387382913348931807094906436710666336556331584406038017985245801747637352226726575489618576983581032037822605936481183743558358527131693370173882274612750407491646175406584064825115105957933123242538104214225521404497916543959762667229306217651492860359380077791387463376051108908734299767978140486315736513384491277198831851796890167085618453839058431481087486617064691503076465023995696422443306191152607503874687597076357075691673701817304474154800069736735770056414362419625520497553173663241796694573836944221076814871709215552692250101477762632482550885310975766002607133513255587870993407241802252802927118695169775420847402429224556661255271373873177635367159776184762043938547760130651104465855966053814290631537624366402760098673606118020419969436239626274693724140156400599731740182276545895894467029056076990055908988775189536926830028843139002988588301646661829650979616691954779907078169200026154430150928847451611927606893954334167282157994087391871015064975461278197424656813978841417492830494608831478325984030377080507353611738248573392097826877805587628531328488800347613059763679641327001763225688850258266901772472591156983106281740145929555129200239511896764897344551604358025435016186186743481982649307221725893190235593241847140711560270318835211502398584709011291260468871091107285444610252615960009322277774459284568489152748231169980701890110960921901008860979637921053696810896271730698509562700999710491364479893246366079573210390908465781059251210393124651077818271254203051048195085812311449381880366585187271441677598317712851877686920046152625875162471381113329156153597094144960620936021761710968392499734271877882843310252592981481248356089832027054357595947204823516611038808310849743166859230911471012561910224481686943431251218729427189289247534044655794638813680019587398890347823695588675723497386432991986454450997387076351848117350329739264394067422317019193419218144723239077019820736157622013853063521272529445547176602094738726958656537252111193708766663327909193425063675547617912859422585274133123607659242047890583414486182527042029844812146475933292300137691762053282172685279362529736902424329640821508484337491577755960976625407280569229269433530032358741585123446445761216458919225114927636957894862828199468590842167813139920638087729027960617274922712763692413013039629692383722872958998797979442256705183536791235085970084370534597042436710167822676361494907647260533546203517571277038735473591347005443236554447298931730018369731949204945705574125412124296290233645497743210543733244017444600589669012159477095395017054439625858461001647003984172988295470300923641793476958761347774388224201432725116569095253448650779055731619776786238911669165697861170974091749330070934202462090701693428437535064278317740255597850119172776448489786990291015788152433188038926654227149450302318422955260608909860131472730677189524284230467436939686602344369297102987719342134944875004056192853901285022660460733240243506312743565403874495430609265020429087126476431502618254203795245425098953904883451563394660022728365425835696835054152908911417770377085824221165930024704587250520976435913038012103299463716312857357671701779160126615759642931504331394669264955185237545799054016285975616838775731121264608009243984671086748151241577758806683869785748408955362364123025686923451096114340793640755493361430380278930421810097286062126069512403329553688974875597899844218088437053381531140066709711324276853338977682434341236711432257167077248362047718426097370567145434195988157480024561348064548547697231946092961144936110626621765382228597119227188518779899946741372430411352379787168498438040016299084856419765422298166411732405233860803036095232509480921472166591499623763769851307086972417455595636851723433593561276139910430628131891843596329740073215740373817470897000195583710975732765739416714470080187763754716590651512055759615832072348494581441911629728705314133685146207392977570599441007652933621772520918575897829001392878377944911306334571978050219997252071745701549566144993029466596941388813369178854287577498005765699108103352459281621353442550128061061256099214141818720579268452825556675508441582742299047277537083168146787087094292725862563776651494392151003442581479156902777397041782234419406406208802578713706382997280823009558842820687693430577281229701978322589326888713492751715144369591719392338642283326228925502492474686918289228145287445737455114713040920718465078040931238066977690574104158625499255588976207170743559247434397497053309600759216899765867106393721604751179390752808401415533226617506608123648968235209364350525932669957643881161871143516354584424141752056594583557830001689883850203859146393534649849189063901618380423211137775008060375979754364481319360156840676904464953248818863987865882924803965949244089042627753580096226623563161387430031896962019866593122680876202327652841040922418077020750025034805571707854810168358979494237480356323131932572566075807014730649945296568377294825879303824581265783809155377682194907919274519220438956507455081172171459770484447355501357837282746171607634883285684456826300732718188712704945491949044674317104310868459801320589210758057323920257215514636565142008196473288678542946833672011472826393105718565380041642089560349358107692140611619905819994918178526412189047767359303339633343969603165716770667187796838338489270402039578702651945589189066438607774785150446710405008995172409108814709622788095782399630431654646341614587426928126576074227508176256960733320902153624484611197934503445031851449878482351133645808543409874914103733545392021856931618724115611067842830514630162860933782043655015672343863638517873433491008864275884494399068957093162998370002914738498026284699008915876401642672167365928398768068956968755260934363656741448075361936672564774954162685639504339581667552222996958305294512485522602626609360011896541129347309454081307293219381735528298092553615487835905184766771895606176602406032180581814312794303152977727091902438088279757695846721447297408604903025650872381090817534208329455906680811468869375992543094198637569123232939095772321883039291242875839170841156947808602821123265786132678770220245944095174289593750349908682499516981154612667384272718352212465645569713743221514507072424940031096338130003272874055147196946042542938263246859394159364763729849799564611987831336872982200025613372820387447235029622969076801897971014582402674423195203279323998017262318456320910875936345359595037377591857213684389234736868454495909439315832199004705664367776111225053424466104820799994290883922696523664645595372659737875008623167630986081953594313833836169584639442519513633553151584194105639665769343009273181389585178574691363364390271980934817280300303229878293031432679273033565317410831938041905967807454622633933735751811289949439876775673157795544280635562587171814927260344903454265747949113722293842833172166389856533952800586033901315995283173410866062052630877206846493211288705295880455620540024493357574571965222667003762153770796351902516447929486968480667149449458178486768326531997086216419061644705346773977878007009869268709574556969544232988637520478387458302133218828884645853160876542715516411534003064775868508388506968669082845654591575656224289944698005227418872338591228815146906782420742165970434780380672803530771531449871508273448958234068744899769963702188589961259195434607675773112014101611984047015047718132102748645569972052125196056106987902639973314163508368593140857505194555284294254825860702400583908401914930977788142288203621167840970413077029429978181587957823585332225794510331595376523269752543577712191348395264512585884873430163517617866828222279860592545506259770615710931978004249666634695206524742828863353240752333722598654200180698659930416354405370296866187824599124810016486371674176193159800650467855263769051999141491132764442722864094786074296346057596718678280698974995184140519703845207472637028864771572652377980187639138487058903933562826707711161096491232437508897216043943072007402687472193853446811103432108826435093543453352301933040692561120727367312980144300791178009266122436269730219921286491495776283830030723669709654267534345130695555221964876310305815674696828445825908887846081165505978334961895860775204065877193624020502252661407822780100223643745003432601314580022885021649651143156046197860507168100811700895936716282736924955808825005587968465677488185749209444737826957537840779110812587821270774296753319078885851502705876330370729481298826606129891007769582291046481538488502439141685803124063054912677048317654598803483875676203068710837812471842307519707271775929972137459350479998798487801019870028856151466657143124352374204291705657074213956249040201172660397435658584397636893496664437021372221211806015261322042305684530383410051457777922427112746603903946856203798724657028713176410866900027884520941771059305925472166364236314796284073563654799888760544061582006387501241592789564173155702333906570278672226582357469865092802047063909170818138255366227370782387065617107994209781029495979378712681203698207642803419697142594319833936405581198696659894296023278361128724484769896097287364340504078933511829034129153971612003493028210437537807347232798102172090811428187863366614466309223574047264617462722357425265932990051764236966373061569417367050013079266458404658336475322424917816425614717203641427939296277745230008399101305784297851478948259515456951007692057473828168661099374363065265134863804166383244223837926931659559798686229588971975412829303582560892102532982142630336035410591047474125109012857900160875794957210824909273477043717811915972391115633987740549326307304175676386380840131730554562775419703521270497221142569235537926658699045728712903470008056279773595399826549915715736995783493084123278105996437828939414652764285628171732744749036332652741566264026378530677814628757704799036982435751846506567055362086637470228743442748789700181871701026985846017741148526644319991077737033049123665655951145703913962341145919011477946030838600268016437781896256284818972824661868851568850509208858793924920392725222399128522241359802711577318660906270846282671894323627063380298671026164370186703784651597529903778661402251903185571830015877828994682355003658518138446444665667379174743681354156200614155278303080492412204766857974461136726029924265775391744486875900559250395936422086396610393992320392888867356458792077246047541319331704465980031028503597112627992528476114248893318687659598179587423400524538545602883431917374370788754753503414985014513630565936554944519025656453173881365964815657987720401965700958933935919779013170134576639373114987519216994589652356653721266698161088259283220601127424542136624204128636801005801420558223611476050294070960925432468073088309029611392048286361920883711437497173681690931618047208668650330888371520583182762958216260707526518356947305119341567136968087575517263646177648470620500340286050262230556505380470631334624171982028745761311578019587756627982426255323362556249102796300602318341664395171796686163590985271637381668717080987491133390435249123568278200953663732089988064450217130380787952208884220087177783161535571877515938349323424390276406111275876937193014358279989301520797958674933070587272880240375712714676897928207135650817482569868349812637594102478019677334383582843059921002047355138300387204564606783969894432964741483092345210788389742316693788338733326340065692563447374766011993630067859323364977168001696657980356834823678404070201519498108529655976194820111053596538600728202367014155405318974942575753361663127880693665758102471847526151755286518091665038507141316211801912215216900494163198032605106271613258358498663360707680063199746537256458432389442110322924814159325222043923377162608838189524078715068660593190763080950184829814514007955119586103835420538454240301558858207373246369922800961516218851951989964606225765794092971681435738412100170622886343334811325060496545418494238917065322965537960251635958445864881826864092153719824973711790330986111320093525238032449095206276449286809268079601406058122862341722487105217470168569169190077274249689020633068699376044899801139559168819827428942042532178672221714920809083714705074715480893387335900295728816889091410717876186185242916080048090581386656548947457545746712640194365684025745121220866741773170734385395084060825538023242859556377530702912920818850979602712514834284283506396681586512034869269183588351785156062595725068723753430859704359209926342238125166354988261180435393396187959143072241835096667154224973882844784080398933694944216619700869124339870818683269882074766056469090604727792815040948035131374373302426498892894144407345330086769697233774903659567037104300564394064346114067325367440759470737013049033492978810400490501510865400909304374860459508026694369053681397336715527524536803851194235154609384949342891134119863508228565235302370935127640378230215023508791092217715074207771541737196673772219077075782682847796585262294315199540154358354080416199993718075734953710790117505526641752343087404200181697489647181550248591052421391328979626828188036561794208565941219445163797330771823541565867859369126276547924633661189068359335602497148246369298066152777054370980382826027292387768242119887412979238379476311031502327100339141544082532815794348121352540393518623805103809561818995687838732955938019555612995678367465755503867865959554559778091731030548157882042023253025193738798357961169793694850151393471579166046088805978337922406546269517462320741812813817180325729832152197994026705557554803331616089245722209028307820801108443494225538088649895461249269773864451583423824067844315238384981934017695256558954365828786753555256323207507790456747681795275192384579770036161396868683062836848614589557700590343902976894621395114295499173336290586215344561665018701544560389047773861912035905586027504090627602990240303411802446229353399336270480919217090537962555643611509906082369830691792525389897388025753058691521276605227754715385936777799639980280565899205393124826101809317705751995363557221624210772528582693925249979222591396785712057961830128066852571689421678540832819568335233105426224803459599416764044688005498727335536027477592186156980016697425961521741984425397392209299699801276932659408422856916701696703453464167354986229775412036263776611373315446901860238161178776260450553785197028412731990151891501508163799042197167637786891811137564300706944806957943850583793962150823031495556118384577391870623622542508910841900947798920885903321989523931378464369023771225455791492357655749572777122416592924834850940855819235223640757560271299622024053376446148447729112156722897485799421343345802406866414219829336983700194270750093165142639269684111332156385863865701828639733780964012040392766270848216702310271487461559806675165872996686568319755660333532417452700251002709496987470880248733106300928045948958794434048685118442693268343680324392394702666057244126172545739660300927819369155697241477167897756561289313993992188944883834024891956458725953321457838134851645933153965677182134087134393855808987795006733548242095677641179476736366839196583493189785931851004730530706732970589438414540239822585522800943923114743945165026962533105514399818015373501721009420099296303270254953863095907638710983657983549734767058664569230910022597336129161213110171392855782338165289129030954566306083512193045787565171782832463937196046961817763499617047552882686948333242218401359002939795928858065061517121008781511113488124636276571357054509653249341823677784603011394683349827868530978536617734493787425124172335358958695103744451942541637733616239263002726649032223742949052450647619778521414668867056023260016409356246144489733163032204890739247236554076105911618042822497096505928137667260678658821475590787793147814000179770497511116898861264251457289574903519048784854606186045634261819566912514906091385893480720857815663699435831020668916375995833316385344487357174523713003902787582256680482209401781217319390946171304937275137988979708648117231930687847291405319198703990542374226234494767783618707881568886340196381654089798382518571811194665007597678167186785229906044497444460466252939081782892247462715049774059041043715260517668436787924815112965181276773001651700761642971924835527280465291821316627071934915271622189798760501850567885919282518665937611435447948873487732082470564917915289936580180667162607193658516106407245370943966961334471397057555956249192544602622676007747052913487513151008097272155778246044106603252916445994105849828154331036481085004207469006544364922606113027567869492295826451846458662128366385284466134379888293949746054338238486019269028220047963273393631357945719184180317570913359035259613648119832154478422593507806214129440519402592714078959024968842552164461539814340254268634821419720072367966988456424508087162154935418466994131591694737343482250069565371006635497699832733314689129337186438470346638623254386917140567218169451460216662608226692633370702624704671251505251014703715626856615423822079567414367874891232629913723705438064683037221715651685275191116935856609733442842393833862715133265729368040950269374365356488562360013802400281637934310844972326291956861338682297023954822728010297984348544273525228853507085252043595637525612891691326585305215935350602129734135800735590088831704999426261792577298144694663291183416645053388712861764182539708728780049883844511343470722044315565999839001404265882475378467221021350191624754535566151221913706283610743105063366849281968037533492319675307970548490121696081827503197776371173312938883022007366754446503678781285708244446763824632714585492346439666624555462580240348973284178895444248557295632750848681723465347331900139135904711848215020481548246145538846081370211914937472582359028128371068923215724039497321668614180350388671803726075480816267187536464816613055314534938785519279734696027235237650443578282992864310384579853341283103391217783357655222369640279437246845871077125806189056422976102947831389284601576557742095875366214292563992877533279815617015304250519844645987861109800728815058082081818925172948981201163403866316862476255732307063342292851733915066813375059074132171866341225624182757731585858176960386965321676279897413827729228290943772977373894814999665797666047983215797562044165961971283682991353711769648180447995449585333205959721630358031531137904744865421028617151416865944663744804036294389805204765542334925504026274859050441020295494506165745640056613838137679597599555988434377627020497028164304082879867607105038460188805391544824845925244935380395974291863483080072230229544616612428150196219243734570501734826656987326411559117984956523714239596218136798187065517171716123753343708250836287529676026858734284645152226063512290755497982103523891802705010392867791542378525741326596674153909998118557613491243977320440024814193431755587758790524069245897475685612409328524930590568075243760433256051768587238687916682979497202065068058793243157447788265597781010075968082972268029189688443564263107889003753892627580316787582956174189320217104091347581332053697644524860590474164492416317507011474274400739708822306491945624310906869865534087885611654075707785229268785205316153207549785341627929306685003900426594452656278741017126685947606190939894828090369494707748058484860654269717555215045010122660959120324448732737537641786301946267932196870782511772714241419667425018072183608531233719726273267395697191582294640325068583586637445675711415286795023223816747988572604160314415580687932148885930459866123764840957456496060542222123513476946104741567366481734429569051735698527874153092621722134419496289334804580224784882818259528859005832216171607939578857569952739614016823138952302090038278423498857292524150609950682913812860208185749960354950559510174512612061305850902154011154793254848016995878432149806409769604075560260200092837770462338073593041662415912661232224419471242804515867348834594077700174051274574570993306303065254621903455322907022990219113488087338761234551404235904163519009892538023718377724565947463687588583549809355628844686005795549243509726311202958256397925354216027072238758929394883364973725878851312899684670846718616045244946507813510053137367387173549257686282368827157156856438884155919525420829512217686431512208805914901189303643130502550475774565711228852844520634161489233035185595416848574186783514880434918002025769111260409514329192864056918296393251468036138497517299799148955737765080790858212407733980065407488677811054604970413598322621022062267912133620010446276086974181484861883917534390333900452897783282080963358554311172653483835163863831877279206006388547174912276234467302838560390250774104505542587026318839906250483543296153660758742709909194627252232389622971396994136538422325347184456990272776225254135974870540958274090074943987694761354726985155375545466364825390105544159351902224723234400913740192933620962504323821369174021025278881248248353309624361968976447414112679812591975121011943050773729540290316043262137237668981605220456656266126085916641466270177198704704596614006940306699672053091741524491950732817179033292844877607761405013042323727745051325301035815478444381089157925716548441561776126682799183374575516926583098642977014163466348797203425152388440422818286564606132879508065858197328950908484935409773653882454847461234744464809109546701172512938948513576695604383605372544010778870174941730493365110576223644810364990302846960811664006643457719449189203115304719417504028096612638536120333138986069115224456093900853248792215094191389817606846759425024767864127542531199210344718099634082712494748415039667957167968757899056703024412473398144872525163166804782207371168870208829567425797447193021747150874159067362199266085939394072855388916328786371330878144371970636637336841882602666992349091424482001031842711924710758290955800100998952075722098098740179166640254348030498943620897518618736750925368694084989489423425079850856157288160265036411642954557779489143310489980579700553728737897235429994653687972044948091037042654103730073082034057637252369231861885961494640655025762112536424653387753384844959391507313873234528734549772502838714303140992432942882405754201215515740539978853471064346370919168101920112020021316380942655617117222938681680472003144208097479814371085630359757674172254841865409911119187064951522375039289393333168430395674142222691651747998752174544558883693211661514374887867433340894686655893404551083999141774487659504322905327801053976883593936846361609303410321536953380597180301206373532102321578978278708223457461536365671558634879218197374960609350144837085692137744160015850934451480041592478566708458151374355982984230412386254797283872966990106916790038714460857412732087424201493023231251357847271729010188814861568190855406347631125014791022114976136583974050271162833217451806473585001470179184480331696815422881134147852901791095206008401294638393762701956960805350350364766692164080602390283254560166261042433593330148518877465325929612827282331635899842738780338784163944162490799543016406947506687010661111398116146748166777544468880188864760953911884334798966651891470663025078559387940283339798365985031114320123607696726796102804426948067550666925514552449536633561866844668070182332593124297378192651687640824764802766604358438183986081168580871703273952625425781922657767304857361365694270983201156788826840028318467419692626341558114933923842532672755326162380869706812380196321599347825642579501709126388813003180298815942730864219778361650462907768632286603975845045937760591298971617616765705801581306436182290419269815203645637780393909061838756137854372651513520613808030614526708307703938966811216599347202898439716293164201657511094885170396618602654311630905160426379452450414315484229270202412527280184368159807323474714061673015386437800514261361856243261363118145185382751004656344287980866598574781057614119737065143210763788772553619675061755985323571743711990867066751620155442039097543943774436218411545782505253476669222524334576813650650957250888037672083770438372474325494974200638169480132587296985438295470488526683849954067008701434440442583388383995424785806697111031595192242322470729943445703895137789019965097300620653279402421028016007737613724277103844569614526238501238241365305721183896201619160275418957351100042576103241117253752973633213613174296963591151694653410976975078897375922002411456728608875343100482496916020747181941358872199462682424249664766773627301324391108618310759134391587383081187984106216050443287516884853916363268537449971062942749453785903917055618825733300681070442244697898814240678925051701266440818298142437373452146150261349431708907745732226151630910432671742295396131971491642422191060330985757211402328306950121569158093262186274634932180255412166765709682418032142346134346361027291576256896578524401800707175744407657919106796375266079890961055563829125680795119793723003593888525020092538354386956696577628242830049133969082462186604978379416845058075383492404824330203461337819325844142731329083982944828319137645871420877782101355297041642772770680932606399615401203106465624835378207909526240331336236255797506419642679963906793478724763081236049683488109981757688365864875948904111249185019910240436943922240024193564224743035190335507788842422213718327230427707453042465828615861323510612573604858667054927733885387286788958396917883483381946308303791160256522029272213796908593096217208318092982570829956763867825331387526034008608262296546427303959717640684817422606438376961315137634587552915562199671155684119038419771185454456220696777879968126383384616624835766682088181378661470663861852028953024826092467763162097704618314938943606102306968122658037516640658906826117350662964639389619297626204976376229552672694787715809465973235861290744790151923804729133341525404180694113791357556706589099458170091262678208373386076338365235744230180156031880704558771556565282973396276645007704596749579349169400623960699051700870279086213707825819964466888047374972043690032345253283532053767320990573285603995030172977378693619262338082001956164736873961765883315795818498486805302606940772312336010986879148893075460802692734225287465751485986717044768111579653375322092872658034305635595641543571168718024113499454834385018732775233999157179177091590009839343673545162422675175369733830088462083418446238035240331629930823392650243130981624648293269448657764135387568001298065710895928343598092289955527517824536204734469531390422967800419169192267646101742283344712559939033676409960741985196314163746735422119924048857314398134730891270224974631387460889957303391350940400071317748531592872168426821584115677244892523331963210641933678376165745680481253337733637605156766034731995311539426014931358325014980675009756694136924175251636357516600745482900037185494342301692780814760533530151561431751501628116550356464681209140144730776985927461296925649820634012076458559134922432342536881139944405741973825162080147002153209114478174998086047529212164554108801978103507919533465803615774219049314081875775913060424840087525991413878437464380121460745059742053115606862825761014698430084317229457690639274371837258360301164368355881052664796401734945158998983023497777598158994070413159921293232713312500586944053378394232191216881929662957555248891665374863521419461020463914322814272496838246418724884800982475024693174051427410166922224606731749584289180040096641598226523111191671343734213197137339875927534040318669930775986007921891901476914572753792264452486467351649083517041633588150543901259474259797697870859079082045630721883769078760016319961377930431698951746939088769797633856900953996500295952044841065103146119666504816482401142191775001949212605696568630851313308594072746309916129199704336322878876520151587519117043502839008662709232544300982051488552351429469809042948128160649319429667543181110696908928290661200339296816084574932998057269571838135373040813617514891205081376100134966478200238829601402697122176527846223320660237049440401493001478176099578090031126673303267531590351131839689146948306112479378773238687394838379196464972022153353480002421804329164665216869850784027147578101766475408418482558925081086110938076382382447163076586326002241599245415463695285583794504269155420025961720851887435374352914069204896914325457005185729818374398768080860267985195434576908912736456460937725059614760031503242351538765360171556558722502888271692423083700560978615306146134785850625093427975194708491001028555172015733975643127123878137888971076978070223940876073148235860838501570079994058896772565949296746248374226949461640428309497607755713347497816765913336791270416015971771258114434896452590229543480120737163345785871506372688411782022038652550832366431037782208039035952555177990767717747197321119296198518829713639715389667214535076684302477656462474135741847515221374713656876120998981725360995715649865020396499622351791676490262318343699198746686607020000917821264624274905089876704752832049207701440594294344749606727847505769904552211370531127361712760754869449427728966063680099367132721287992373465205938442300681890574727845918138255127732099352154335166350963808463208906462945934810980684365127851191268076127705788384650742472916020678809612814858009530908751073240083567710995643209405818219737260430736126425918632018623895718059066192446952245268343919516442200193400899099514185706542427469648900720082867932621375641318493473272991929704730888485054436399237155079382010544706965718185202804900562311583330158732536000263090895550732894431322717464337998025205489962036918073409654637339293191898794013183941547637411806671619082227901387409791608775930789827688289675607135522107349082750676347763144002153155276755843512501933688738647464833542832279472293419993286673660236102094350400267302472953855281054966462015668413886701955647112819306937308933935570605956154946436537647304958568158832038832150095903657082033924822047855960799867872568685357505587691501501334786709197861009270120912690533238441970055150057453998303735067298823210810215876784728991478081399604076532027519688371279287457449927648610199417150906092227965231109011869396398077024049636665244912603228931759258837196623579284337729574128155748079374956735323888853387487840362301566659654794886589690006749809323629409290470823071789302576317436954684317701097005197501858015890694434662612102128757347360750437648709580860262333770625968599461438493952494741234347495744606405967383698270455957907545866886902807533515701267390228764310776623958651714623246712139474721828542527492302953008827623923091214023466352762912700864376648153182667688819943249928930570006465450508175888052549334837281401078231781605205605082842014861799201793198910337319369977513611968953942168556882656272008687739262520195898572274492633310746468136363032491158379828774673339141146313713147032343532165108806997889861751343404027550663091300421865428293420735239481572841535298248262393542783974827071143798832214999141730542427851299465241551628919805855162029229373407158495717027952909781674181287900245290107718425971659280043289894230914127266542920249224091876420419778892191621050589448954454284846720641350055306305414477825011325640067178406159336755774419840939890998573835998957330517584291751117262855515629014938067516870362793519786201230941702065842751308437964820795075081488885334354673336942219801819455886264916852046689258562296433819851809734818730298397221838165196306427685902373220481103960211387108034906230153293094461013294747312552716256816650844814957514479004281699009677109170059997001452308064969792872282878263049626139736719854432630462361242841808869009619804503124042293666291286131169244851796419770472301608822238049087692691936012460077457214252818931112001250586342412226472302441448443492078589892431338441463221885761110992602120842402171529426847165377454514946117779348808394633543904356834838776880448251317589395890408293984736921064865120901395579065182957921280342405755890422969951346192191716095471256848275901669166601851324123494632991495982413338656019695598664396201198871875058452739074070957304724669631178136242450374155585204258647523428602371499796547958366040154779635627263445296229908410871339388700994760459564985135020061250133572236204807115358423446686684370681106137203274195931201404258443725088447159145844568284750362508350955232201414149242657850555047070519294360193213262104987467339832175996498625092955229143599749673238839008307934380520877354414931387972086372531832432229731222917130485579994607851090108817599115409722573569847986944067736926642015301595152342309043696852952804706566112914237175488541068716945994056592991140468529708355653971464056665060253325142609276052302539454869987282865671622843136266690465615534463794724911250987739187418563554078007705286327799147882310319381938837410976535607219618423521305731791390858125443453402197309568234618817326604140109872216639339062384287585041113732799241866238831298962513536668261509173833372491479519873764067991343703753619959469560954265858461389138938187819123916389238990059817401987188457549753925852303710732119180070229919360663285192956907224071689644891736415846151469168492863963386965091783312215015445603085580237553830015534517872341348776432811129381650200047112162919889556236997370589924459896822979785774418180474414076514009111770193271639739378695847345490570063340916875567763236437571126332920913505964398436808340726805989330630971243051163914849594631756027977873978896617494277755583200125619530922629246075450792817235398623383008049692897450626900892405101757201836928741617203160702767622524905626960655569903307998546428371503064676542264199973469189328541176020443031673772094069708492723494529173999077678409462576045501170030307716494805746155027229538224566317508783090364310590578638512732706419230082898980845184664494875863936569981998498742102455930800267810182609098261916091026656503093905264419836064120319501405214416715360803657647766947199974874738581618618956209862111739345577167707742830116838311397201407042370557520738675856583108557519203547190799781416104282298260503174189528507588108095498584061585938769984093452334234626376688007556361513973920203587280669970546532045769754122561602796884073754678606640376237179966474332722017232986922592953304942519079631865761870707633273908662159197893147967820001833081708342613917868061353527615912555284625494095197451113426535225669734016793892382245500395318536653570792475525740701580948328984653160710976336162610122736392737253337230946545180429272816173358715462996669360428854202187941658616221928093776930480337264683119728392027054149587311245187078911936017766027326561659527364681928269967163476195717285754000611049353360343712780879745340530899982349666995557236477816065262807369734087937025178886858712509689688140601911071341438511764408146380446301260476891127029726452508801891547360349856090229346197936185217938059411907862022967824426637034655111571736908425461588583310752059176009443404949902699209220282133744925036051389901278213229154974669082842250412079646300307795777822776459525663863280779175883478654534720102784918466968979061056990036729421313567133141065223875329334565710706319862228504331631634127217341500740453495125948946891623941034761056784130895822332197732262394556165037215295381290268416077622339284946255355146699156870072670972424119309752484542980203542226174497147690369310492398519168625406019758471743716080056294636609247800668051078009147589756169817010767512664240233538621946228948943094486861713781517353545229528915859809145359401115592485396704248669727502179316435625466715814273347886561697023833468130405683132008431425226350924462599597554847106679846141606709770635729950606953906608260484784006942696391793604056408396338508449100012167870498182754624760140528301403331678739275648583381162854207997982503615144784002808148871341524818197170592694006264047622908457544028531334374470802817103364343232163328597662182174927876382958390411430331302090243844617633078516845119752880639992500751107905347189315869728814114844897935167921208375292612767021634348870815227388287486931095447222121319379206444914652834934629637126864435805043704092345923352162212487636351529810434920351678229020705892762209060138836109886064401782527565333620130435964702624871789696072004064501910841273978485626936571527200842605690196013395259864334297481770920365154234185808135925171172107618370284741661666523291987248129942463961194100244264184832670383329353718909540357701426329579365082413152134979895246903689344239059485515477291589046192953978033340898746523165685283120070389920270952059002521883374742200885344574971143247128199119224029705515594360413461710429556422121250997859262567387510608300035242250833539951699717876969542038839876655987633026834391018268649275407217537986257493288957876062513873012888599643441643851368499984418168622250971282601469695948155359363425818236589005525256448729829339256203119279735608531539565230162895438786719109563243920124937067753891078184472377710509608648984599840491978441529257580555496232523705825020165412464077082291690873134529661519770570154870054552675005025445375277288058634313558630641549389343205501971105821311285312323393090059507037315192031542472510738572591043927133798681180725152674808240793198861211976790245617423325715631500821939839119958824381428600666850170605487470962107141545080072910852318425585093024909997765375071666018248560056188304887116887971951469335431666087423512344260866015136476536452617441024300490331460028876916239079664318669851006884912623337950511555367969492833130375097381204985228424499230334656832871596040934512517117439329416441038039757007842300649921028407155228149705352291827156674565740920173020081640441730568241903127542274938905958405337761170643093071246424829057583910136772475985685531027608905761562923557089135213580025222909243778979999185237971870556806132681395939007411488500830546975931326795011731391320123016803316987065568746637556753723178422754605452989670038573444005863837134951609710775605017657895707762456602576716111942102788895401078686882080824491217685886038660349490956308884057126777090497929962419534113470319577731921615280116282192087028525681039987543074025072385994150070882128633983785672241920342593123777389693175040780366927269700881903075971443786949521059784178534040145555476202604562885694350803407751171005855367938006654326768261252302172768599261355385217653157742634515960935209762823467762364628407645601926620764882953715995435954865893175894651551504220917981834048432096289343296150260889950989523106086973923171974941684720510616410615924863552512163471151092949484356779158546231150839101940620848837486614815304083357050844324256845659053450259121780624855818609885725037718803111400230933945316351360429874665009495378847837983360605477302307267294858238513894191883121031018444573333586401456872508778866295830667395963803815038172505819286783259219390595956666681589304002053224689440618351314802091842605441055218293649706551210908732849236203799378956473135525879170117299261373844259536283105808420315415538970191263908670564334350434543946562157410330641463517406344725754523133661918789926548683600715835273367624273026463345183468704865785136849119364849412099191217000455394878257373929076477134274727781405564972864294832199382585663441096151194825332472152136988779040968647606900851932075978182126184933733615465483357930715598531896554939066278907868018285740645108475402239139331159560743527366066953208751310483886190461998173666107873356044972479082038275540185774611935156179198028339531366952027055390358520600810636093359574043595996595316073929499484999455668460717815642156329991148770800280954163369534174418936165007954171966702486110707896744414679158758642739627834312659514084499678033555448052882014608520048370778874113614071871952245654864377959595150184919708822507583729627615497126762192797558609525852192677611760865014805553576172175214310764909653810985270265062000305678624398531575359612445080450027605725573123715173941723482916060246608913889176735068839864149732597735176980661439822911221428534303694786428161491187144441008159870573586245730217290405239658575510938461786628631898713380967862699004938521734332936889686355282999491427139995391974149894976379310753354756309763071155928005783089732071192810458778696152957387824456297703642677037034238460399455350240541428886672819824000175622446333352375529141260616103189111899885787333860890285378882518950252711767205479795776700879463871595849049756952546681290523407722066118597751020758434000137366487816845336939378908278688252377361541486182881644448768706717330669198146298915302534422233726378044850617495155228083678503896579424194354808488146259857903633766182010186885245347233265927962431249298268613253229254987859865643591531924439042589913359555842873931032597159255856789163943938676447583547346565254942621264793949217468039194266397745843949828569490832350286733691813497456653236958769907720366820061875626683700158476311310382833786832475849971960148793299772195689001279660848962907700112036598957930177174905169426792144422719279808059980162896415595992927208649317208526757966011215775743068736972375360557496164754256773673570573831871904093589924103443046346994018722279176624963916918037548731079191764045235517819682620577447968091229412241939030306410418549419582808655896207424445671175988297714513793120822818377266419817168938535621192380145882937531743268147608789959467223613675147585451781077366708100449297297404506276831583406367115871892469580121645294525626405818555980016548364007466415012800737180714096776339815858775320545732866313401680172932613100534058610009934027727162263375152707182221648175942058056607961300457039191622596698809808929162830455936435556684477717614375143613545694194776680791525002270388633103535085444110391858639237727402937741999295351807712175505087736410683393382633013310914686206316483458541438403640679319776913973335214739658636560507931059874217469425519504551344059651224326292376365275201081075423127078549063392448382509835480731850725777308217600599432747966866341115334479773148982667382373635650718990534106257068331076349163824180050940304578065078089356946265575937415778015601290464272305840391619662185515582595724597061351303600588628264541685385032509890543418283134845226951119740590230300641747884529310280511968412732649610757156279239565715756329403807571339978915624030829594455695340092805427501826590761487019015867756702335474207883289694798959023983059124633155031103943932241661561123977134209208669162144285069592227477500479962524074996820958649515575415661399153893923994313444688679238557052213250973190320589324937453256756488335621792011976946836801069955674983762890028196737064500099540801039864167603730789042005644632252951329185065672875076734523076696644304231019856931086596326736216907200217656808933811895446498485810261360463673316243982142016471127581628963705314047873257942937812995304720259238972843719532186426293480682200776592742288057971356262925820948222616822251742422795916610835385335660754102497864410400991953792715198663549361241602863156012003020021522890805503393980813031086364611481106092025128700626208106798330624084628282218760743607530516781697715094230661851757295227843964810000454856787304268317336626262934523637088038445480627815488509436342274019186911623373951111213247667815455581311720670876308129508708194556927330424289300679528357785917737612902149507126455599727010076652143655095408023528409011622417706028032924008608700228145298774930303765848622102261662087207344196648436378251598862788224102390509745012513847556289609328661740074992181879120355766725119941023092932912682155885667614427872993495234212493234927144114665582277937967842727722380311979286227118538698031437374722650677612743431627691866634657487559149234168633758062437937524148291326438179816153525702094022857999015361408531465642385457095666994518722841455463276674998431953286771203314812996490892266414390521707014903629604259515550054832133147394368586270362189028780796243697703948654324848150015843073357065470974740773440560660570969040309634789497785654921398756471568260604489879139525738470191162669172760830133316928843130384540444910155916715228294135680623513521908347473564886458481646961395951981027477620414540724292316524223597229694758695210918495967404565982282020661849992039560132686975229652683452052173772275349497412988404181690597393249514549195023062414842099411742434012459543890631657515897034613896267978004583617496139100221007801789855862468142122914763475171150859697814237987627138052284121097428500381694288737190335942420452820173813064673039608695121967074824692176203025043072869268802567650884673009548940581570964482322131657970723249032838463661912830205651961906468488215611065543282706199213499452131093492787817949400436216980973144533678500279963603048508070477313944303521168331089523759501520013433843205109645257699282493239173893579969544464700413780626202539657066117926109642621158783710318942174115142948241878911561765645211301374056059496606849478904563035689460497319322724740631557590395806993537854320025535446128796812377890857436253874984975441295538781800364657638468388999790932926124016166557449042581990548988452542445460922798090294647996076405517602802534882306433722842731767889468262361383117014548184746853937381034051589651492730534480193422459148568277000362339132254563469473249109872216272830667270324014467865409715628532456227458421688899118278124057829216379755346549867300567661543079634180469671732149461933835879172130804508282207700562889008061954323739000736789306960767222818192538232554440385693675088864712608388919001177196794095225690170044921131062185884848597292750950315898035093125336292475506742789348407240701764747142090886701169982156870734620064809216921438261718461829476053240944498640067301609553692537662344923418605636073115518461617157271625766085902573235459002244888893472115604460868803166269065941769435967650772686838773176494372775730095517656038147506755358173585167473305087472719888822018048011278807912362990752449994592614452074497452602334369042095109091055564100950291871835836211053401902708145994584203986052278760724837310342317550419692933154049004096328559370802305191265205832464104411088597488661143460894557358057819423284559924188095177382408633546876162088785767859765479263578220404944163963107239154203949819784558430601363620043624691294028477030627092214515965045774765625474726014937853619863022573340604347163121567348612374283064322299492372522183452236943098890279337559405094900529248827479067244103663591208873207042793123054112531862515337270697243574021820659120813232105275881478814419407668407147440628735278968599389423287939969113148420516282867857985365968398669280432419470142028268995053941891950684627324729540812567127849745535828129759726434159935512173291237346060660607114199842788448431311096882660973549038829121243006134728999414381460511320629874793832763552236471279846838036363792632963347997991717800878048095425857709188222448634808284448226977701494589344778363427540924344302427416607322916051406724632922323177433574813516337840670709562091409836514803111957256307049570007716231475028723528591970845410039973840502273767259035959501679495437058047196144114663072806417037130838070943206550134535868195198068565161201973614804341710380734330256301628293892172932104740151599969582774615265927612650753127620660134453088129501664921623730391662498750072958798376898592753314267613428457913375917309955844571713922029104750070051491402111059239252972378550081836673397344004954743112861795472080363825457018628516216072146770071107608496017535373253465725048119179448296899238475227305311373170865531155121099323229386939584223066619938971352726816490342602692087262804004456184720960943209902186404573560801885352686352087933444335245782948839693413286907795597579787505909074181865295011353741559063146329757945549457709791117301216977805677290898366829478381500975803143365516012627562302670473206527384445502264802325691128583657982321570300491856303828577053595639338941075730410046502041063518346337017206180085778777100765343059841859699771050597674665187851752642328961984147322438225223558402248628033845507953761451523111976469885707132528261875763419609239134691323676387346417644036722527838986117542440875879136318341743767226800531327312382901842884025302036685454166478274950438962792370931591810315643685931632645522761734649076140433912257993691490988832712819832802571860963331855096045436085181190558575266029736077041124335330955731052816483366782915421317879605681986648047217316129256454406553071608584912704269904242296185547699159607968842844641827595094812459135225514538095757552342716013057241722114520067133799230568370069321193598377363287816551262476444271288609560115420153007537345878140287434448086770417996173468180629979324516165512358670196009855128570748146291885909219904637707036378104816238109399215027198434941585877099777435522029193431749053402643332025829515514235542048364497244816481114544297448256583378848949547004384419959711459093994986096879972167900623659763604520518091995596496148021711269203393058937120708477715848753617851482779647342486121395528889777361390890706130305732924096442863240839998910859645718485174106441315795845863321985007825096263312562373624803439569542416242100834288635423284066749400587584653358459771298126858174085970019579113047612814921084923861781617082891538099612696123862865809787896602337831082001411478997788413144705102945275967817603349022243715119436725454082984200008744905798434627452936624046473539958163970092462633531574813378248391990101756863829449104616291257980394922278348104776196647272007120662328931939052252828721364061226233495168191268732088167562822885873218342502966011453764506080719930031076451515786436117509711906181529999315022548368804181935642277836819878167617265654207538526255341997478661024608098952368427550284122866488288945775081378578110012566910551702716901556255021177119967578655236857643540698585572515733332646603941759947218993423134577450190570383617606150134127410158865102269731752850622223919759413194820152034996743941816419582870112492693256017424883058600278188568262115028879324466914671671610346383498704591345899141973761074915964625041234773508327279552848208850690954059772677094652128806028478292518393731655301863391613369366140615433119980062191146787124330414748797698891606132432352608775636454058593895120435402656186876964682225757803854855449230927362290736142666989292350478340581803197181304104837924191808514371257704249382933878146238213497924334433508599897984250471307900951908265664989126758552761537715442675044101867668323043721225991301226764712631694701803887320943967013751605535816352962496464074571249489506007783617641826701392106857754744992954755760410982336631092623549568472896966375180649782713170585691619231747017468324722252059437184458016896514956408366236621067642087071103691572594882191021202520506171682706151365077568740375469333433907316545028046731336187419517350753677096174371553430634926599547000044271578261884944298548437805378108759732307501804582440443401850678240089114076806555830231459940237605023941974521754147599305269883630915390221733311168601124788527530531255681903085650368306214827004528203432443018625859561270058382359176124854360083204999946259556490881483423805256178196702106974756519525480241570842428732222381683018944050272575915141220199404466584023194156869089687980956700436531548846215556839081986936162737768789513344295341757365744494479076605848435747075240816124319967123376598478490972026623110676620158992936211594704546397463485249758478938026077747207422721680179102245748476099716881357630370765120878775414732345812618151740847994196956101850642507716049373968333130704205328124823465384034150122837033228779380657171798922722385549669582518698906926302692952373203161117256221576706685711167480771284515676546244464932166084650795236553639265027222633069520329562176501746670312799097118587094874259627089543933515972640436510173137156236608087880751730873087113972860817801740147419944704282410346628394254596590862836873187557494749041968717461660195721420926375392991421129156369144334563385193453783970120833721875588032951927496859292623033237984882713808479711069456531283138891809331349658588192832264092674356280340599873879741216845172874148592345077825212225649453753937895745852579889961175417842153541810013513707732168555740103677773111212923672298049128487785925178062843894700847316924253729950762239117746897839685898466157950033294007750000652960639230807929577781963876330107286375953257278570718541661139869044214366499089141994439540231409213468016865656596509239662092646424155465726420446266502080067371394429118839249991813752284495369828307942885286312451644770018377802813781875575086164933356281036619926656585792391119257809354156440225196835868357875634316741907166385143289478508984405463842000229805654316165888985622525086653026140555224460969885590594535682592595078860001494026433551451226810554650012866725069099273699697183437900587524367064705864310084051982887777044034488866677701198390258241404553127282826859382720025776662876353499402115972316043552240731359081865022454511588258832704385453262835525890238964942771858106015688811826344936257773854625956276838753628644453346179320979128662530698944861488496558145255438304215748989420345945397722360630824774564196022776080600796432570745472630899144745540802840740532315065277323328909405660372273178547874246334818846006719260681613024257188201722580090935101780821801939023257353735599662666783290710060593178198641462839745835367334091749238551495135478993246743799871587585820933866829055779690976957164908875023761825886551284264036476200525811632524163496967458981477532772978416827778779230047212186948427819248915793539248883016759892850579125023768056812002044399092587035514658223242813404879621665271924619126935515237373807955719424850073922878490445965887397437230952424065116423116143209409221291681001528999596475311558363628178952173366127492173764185158676181158778319862336832958766627749082281650174552532647281633451914673498919639368148863885848181631134760671838807547210920413320178435358706180140133207342497985875622325450155357227019239417450628219085413791882609895777919864510800803873839030681454699612711027249372179398757395149353371427008433991919033520108989783193481096845291035216072101926890148251310478384355701492767983310470716998444724651878017805567535937230309395012599488222290381497710937145127628179093439189702060653752285025391265593745559565806085258344971240503416556916282610214277224712655911129585823969584364684429042676665537084675115363294594664840713206089405352134430416797502371431915238029120635501585594215438397638757737825107019408937235139291540347930810797096156447970020047053443777324472212539832519465445420392342529668591630029317540191484139313375602981446696325967557704233320427573200385435230400228195304985658121417836795885281051204412022368534139963020313382314833858688162204354402415255874287094264169291141337113017716873740009052275281707097433482474621245584604315053946141282814936717010112847665590851518217633670884201287340149962959115665061843603224658948017750209235651386803375513962145379560891121632104259246591764814575017156759445526292889205635724189551032290459918727850556871477867614337912736780577520422586244634124202917531300605264883701598963944162593881885879853019406783185161286442212035197284219582887414042535257667221486675101696265756597910106861040721275264478897633752332854300936259676142090145691130027261903127232721408018233373681831678976124538571899485521012460510335567177666163822289773278155574751654482126679396326759701286962531744704525544658204806511358668688046989287775916405367034743288565111108247535658333656009635254013183882824928892064332372483048730398657876333918706666411890091732854960027795303334344098129218442224910447039358149155553816459855836689147002653230393936154891269983349982617596089847726533186101945996578242904765801777527332422281328064393054570647692160779445449917056400931797800894328018594290206868992538368879973314750965582747216693272881351984339609542851476292403581341605701573886767168496063289710856898758697597024241205872312892737430581651573021587296261872094528399254289047360012899254294805137213756443848743624958098743063884598270402257817201863928825128090493363775947711782405123641144264989172780678514196224745664278150917822318421143903377728325233164687011946223074468226645008465036178539266191159791056635643419407033111644247066300076759676198803604086760467975811127123933436722160480471974406381272161792313908620531260169840709101093756364789704282421175607403444216520451464075570708642035378006270003274676606529985465820481226050522685047307119237176756739092018582489485462957894995725254210946732217675819050400833032670019445388193195008741683528092649685099960866147990634500814458141431085954005027121968672304522503704991765740955416975552143433039284585216790608236402578996691247470898033238909850601499638334447194911790680322980878408482399901466783762627947394210924560759169811274225147127095116681242784834615720009253143890503471997806330903223964905627337889225270270705087925047231034801332199035147539466403554329309375944164048722580047605113695169962492251260534401033358699523515772489940905796567086174865130395652527687123638980721202878340541610125063068528797232055698980828118179241163996939842432598445834129169425865176078032532622309794063130088238288400503342222471294342960683572322733441319397961118439779378583043511792724078313651151352360986470128016557237106739605128775796163941067807425822811796080762449467977003566824264021394540761731299793710977088694321231348488552302844758644942006098350656733441267856648492934348631865138530952557146906362934604769846411250918434425443358163202014705380928429451690001289363933474619009829582518584977067863000382972077878271339251437142538465617532690178984645902156209770470600667047037555989075027200253233282705706930631643810648900464726347034950711851260064202334885931072575948623469767724039019673244454736112757345950656005742587270746370044816176772060186827699331074163981193304479907298246776309426905548082970220146422832203824888673979636491916310121767328400825325191729201360411058908426633560833173600297070419309971220064845267746763642699884506224038195369443764742664544789668299389720331361175011802515425429457225956666481021945727413159807544509577685036322410840266967298864987065155359463524103266180307736883202789195818612570720556585581373138895421903124660100626677315753648812777685805397836521749921286582978256200877646735671058203862466944844183280982701793234029098324800224055793948201680254680283486757610962119684113946662831934815731026140011592222856588245455250417175357488155219138267386471120682629873015477488912265322929618513136928597863114249254331783690410364720349633445456284318624094748879353365556375285271658764205737904321221560903975075103796855095125634392630402309501921973571525608327388453293449304172829808440728192289595941517714594067601098289734091229133343560473615261636560100807217882922454774857249669870471710199105181184758904367128903891012518894841514869353230376539625614357059929324722833713891049951453266923876704730198286690234328915874397522263205849668430368351436352267369060124772321131949984875392866964209848141447453908127954080193276810448663810366462258724435327754717760315615226775571363038903718065969281399120732312952819582978969773277094503243219759500992893659884295962012952508053237251498912074520444360740246640967156556151402002855288031329197926761398950366971177343684561366866853441709592741819093836365588576305965673336915264271360342230370797986473104766529718793269637691852422157836933999827058899416385859625377036385031073018701193756962424071912028794335028633270731422632877488558842389691101124548329106759590293576585756841966051002119261080854348014287016572605028404809939642491091785140049200208308320688303637049013964536456774563274002237296376881290480994519205584571216806560748004705591560369786278229022260773467099913079543215703194434649931440099024868070399546974687697545200455644071893125120754693675286972610888796738247924416653498553381484319958617382001385593388337378501230842483476661217485934667360867097348131049588790529297613382929090782711841453560154910259643451368192072709919716132875294759498095513053085634526037811403832527980063101760749031336863265267076207551752749655600593473102045355897615399965516236631517812082017622001153905705510043386365158867340547691122098717085132990795551829610176379386460942519744788414140466193283980093525960764289149501035069175449139216976428655948085421998414148938933923511091404158768072361320350086752255392404425621018316026920436310473087404168514398600662161426286164815099951084966460195687673532214233830821210835491556148461906518742512065012515454965327338296272555012153318555492397738176541473769504440909822577777070207995373750453925740646154933342148927036841478073482516708187820127242083733820284406586742520922616868220515889114818986786330118700312611193325908949192241601859109284982074978960556718826039010943174991273650443689251663984229151995594514852920403533525793934639541996119549612149808429420188313257579501278396637754772034656930407600218645454794382226302800805196311590872234952426056328740511182752035139398180448420586831395919441386594786102410644867597540940227855358962534334421918635570525935854751783914805651362834729264244094148634668857594567822818117396464189040908875589526528733499868129884007995811484692002511767445215896645102571376946325573711924416198656278344879183637934870898006958516403846796626843291768224073537974271998736822327864463343711957269789966629913584973549468190930172097443467518522287132316360341621279122329248227426010234168358494830913585297034082421688997864363680979982373550291152360892226054187260253191642650638580646291273380250783620050479273389361229855864017295799107388653645604637817349852778860132380035722098503812959892797573218143850172540287541954638903468378643887162930524464124471957677912615106152410193259183979462767588602797807263212084955534207798593186716926322835102399573691505133889603835820082399547759838778626872442322754668013234187625733060524126627159414469126806690779840813501482199370294735239566423419182273776439831764354672787690070449835127867229266612170500727090005805085785737437910697086981383354196623340255128866133750243048706525990412645350105006678910276796595002619800390779529006671318907092363724682255945922453400815938560087531144998606569213587850042488208750749142278076981438651898579261285140409385293191006135753855625125681708871813908225458235468581159158828889747255942378600759330577057128583994048543649788441010690150456141600147207181106301296322058003098950347878653294085876005565247675865375658070507026251408292286837612074147497892406170341545127358685049536748796240409791479853758512819977639355570702276481485410699216332073181627035887620589496648901428313798333708845350193781092955948232037379607992824826502806460040780655857487988320342666974756832497368588376675224095902542040907506750548432561869728744687524349079361296080987188947165759253539148217305156762004049367894988969863545600998068612069111875824210095678185623816926594283259948615641592408081751003931008971092718436067235457652537542927552223335321042133766557167679401547261869349280159420669476279840908122039645717064546636905020215285168434202382790656746037302907770167801852863028079974336866255925960344551562232192545270252469666070343046670251647490468723804098112534476408263390082967484598622827502908207592901591494143310707831339993837441322950683192319559914292926435152557395896764942238596795827435542330566305787083648313685350492509596391040479094893579716412960929025847713687815759964507862725249686015545780977242105320319994319655104046933420655640603544941963622695165385852017199351977954205060607861008324892116461738014714143390680575241934074306248184173722009580481016444582413521481465383385959312728203262350974400134129402831370248975552732503099490687474508740930032764228377296956176377742433344304416363258974379500881938714239607084382960283788683030417406392698925124847945364141925622955655441410671324282028545525535263867161854860914040122751405763535611868043637507168441992862340175156826274678611381171985187635584942651546857190052234296491118131083633208691012563479811093797489101182596461172012746922212190621766055137151483196551945172345723790432837588010670080538725421522651589873325875425417722242895933230086981422468202853720221479754154571695682700194682171359933806716106688017354127807510690353088615816677992409798644866072214785427817369848689657070383809113942109487400437079553040153139886775813519109550599457295759428795928917996449987563444063337666278036786654255509493751382416924082374864653597134382135987598905605856897519483505205017540874573178483161956557268965352015945929531652967847554967460404135371731065397485029548004013264969007389411038294354006629047925233600582392464487423865443071279003271229473624348590368142328610357723176414325198068378076181022029210536493140182066289365423768711763855039596051937264772447546959180690309377667002501687824917126819577831121038437133817984102248475833654332692436972368091378826882027833305148004443723260838753004648596488538905679630128547822264662009428084904376898763684682093490780802577213822748465753270171974608197177950484767959063668468757061321010037164280618588840586486992630726684408669184219440667299550402388572939094886177017771252857481032910709524194173613874246789165084508853108047222007071287114930126401248310995116921695694774849125650764485842179607464701494453365971289981216834574349201096474970714164185942170790186755567885361255795011893640387078258261359011421983334905654316843722562700121636934951521380898323364819937599302073721309368126819829276022137037286929694965599735370386410576953988884204929644511024074236899203945003898244375007628990288462923611033845677786913563886162069690186773697297150063058354349377015263023990144893581226657908401893685898964443169896372829395714355529922091111167345075044486993990432043570899234596152415445290924554063097931206667240360832162548820743402432815010387944016937604112936722236706746262813736228252838002686813326150378071254593938343812923551432473585923520745455696669313803201177350191962876567444132394652359701234662839777248653036374014999885933158209502666669709582649965317017532603386472048238078529611527177620218733964770831507560081788956799124438520993051209197207791321136289516464107543852717418443873153206280212305344468118507682732098242999656627356168942423149620969273561956216917703193679332520217061130488064923976806026893449461958767774946523316171862424536808883947243326022071869150453866736883660702161339501233929334226874496479791263874307025857513095251043978300595653088716396531527763288327396856465259343169448777111669799119188912715540048063700186882951085713687520811866072971420881401556501678961810699813206663019711376678469101958062352087268991105210204157709850861781151197077895819058188933442536363198191102630636597969125880449917960069989225987849279296641149496967274125905681684011840727347949332769532598236508388097163465392587311300810040733141411926601991112963387210087104885927002048838020026697500586826018624336949360793099857157216683334687635415283026915161466381167469626485731200873326882286346073840292691433152172233181312727097020802045973649072455249099666352795625816450820766440127494280816162008244910601929618560343172546919606397319077438245359243009121333882402654386012894859369113782882598711483390348176330109612362777284348081970485110889337632168736350748352209125581554534705275856839794321915509564717150554012711583505430847565888182878151407318761158098872967588477891651645394447599690811580281243369781323153854078757732837727793275484148787005301367100355622408409354781329198747908419226618091661072018391265065415460251941318478915055289296927160108100446307360265209698697667406535181056718387926673848355518908032854678638772250936245353944271638382976655386132891662862739445223660231587666821829091931158796926975955623085522101547222369078951604718308058522133638878063220716483638734403190826635459562812107740739255421720739481363377838111475643812210903637162275310094173287844122473592817200593959614452395202245514096401243837318660809103193653556244901825803772463392102834006014791648443778461920784172507669795784418842775804223520073439925087490834028797571820675897110855891304542047920494437399477464325463464857763308037932882382677288620503122855688450180328487004471822788644751963948578589998055750268529428316040062481785347078176992562733932834425295068002398516354782363074290443244984743040954816996090684911648211782169563220085608875062180453634180509033680223053775667806707764301268201096259069646162850169761941475924807540502400742377676166868495086460380896636180814530713454873264311321624730677617854949370553847136844245242058658125238728601785116743809574836491719424649526004507646153455292411830542981339238945784871639364214107310087953769787602294592064793781783832948158270511554692565725272392628068776180434989239734333023540169486640109810342389753404295315440811403753013780486841353355999111401307565476799408720112615498626129437596485117113522699093545228026121699068050494286752529003179474174047617793184815990993380645690787089246950389539159429357398883331644631547473675671852664353257375044786620064266132610082337644930549756356856862413827340235774551098376010452640568243940485021164470466827798039393812486271801284258081439411151310001690896244565743943543326604747392989916641276910830620889051023924223330532226905007044776134317073365286691761243330306303273067326889523938843570004072401586212869391040273283058513003398343497538808659703752505355863234752481313214321571822231562713017291849546785801665220881079239705618475477421990696862495413736285053604756426959770336444993833295502288386573956268925883408971701480412310858477519984975662948003235496483974610945395503509790985538358721238668325814101360862009892475210644768723187347319665434756844177707705696865741341189010531354071080705659975317203392250581171480145299971481190742006270025683923536385432732361815933270001128298764822029459447096753647163062503981480749184828402719911155513781845357802260444334700409883365742699292792609129804210575918045285996047557164604613849786684037229745203416755322200545126742401822160337348404770768569950271837451715876229063105107903321259134120984730615840558823326351198506050985327160581096975368122665124667302522993672654097644964693399741751955697372455538744837225006121639928199085812680630516419692909095182355286538702642273712241339814767797336622648617492058952402045168841534655226936133067535669925824331644946673739050830202955974701764350780977786242360843209271047991431763259767079650215084315460012066759730267199556734150640311572737154372719957361863173071207514959525054824818087859538034208015775422364212241765705900972084365058598553035621507678629713247910301915270853785798343793872698625227751858240384486088151480938787086018795461174272703269922199013921811519091897564848955593125085575992201789766028192327401096680113875599268675578672036175450166465706329272614995102839995977500963386015165493496074842209829225786447779541135952823844063313034768594151637412652650132531065465980294286764585899212087120221783111813470662395286878584814640321125934340150716353883271473421287682791291026421047720139466346913615818482177772967805296294669032708264175770302523406005257565633705628341653369341299313639998342075481766159449885046847260361114847821185889194603646674011251163771396873642437514617650485934704975302971184593996055030843052495315225183932158291493405138841627795241149183521467312518737345131331374627287516841060495483904285737510098771720115739049972899463622013197229551826141842670674203696117812979170049477393576583954291735452288256728393323923553176853312490465209029633636336597589489592961443657893697339628515038433129852360436040057031154146277215456387277072215682472905067372455918272124148538066571428748054939800219217755240710909529603274886438176344837018267449593705477162516955024455275325649375151523110367072713816477208055216252326612391193201659188536859878518084602923928800538689939349950012245801765352267547615544362020140755941243996742088234178184703943726428389251623773013185451314644942211948373474451976830559636851026792748437829111003225091612087519656447428008826047036483718098914080782628500152348807928543131569707976067447737586275936138562312773763197372933986877132349579070038248066373069625074274959353163476589303416096754896292561137450952225495599094105976863877189369841608188768538833087915740710587602762586739637317947672092920620479548364166659445064000439574694099847649880198750668740247344990450820297239198649672485905942995712965440060745710772250250560381804377022485969851573935226833706247834190120421550599954139776536391936866349298228745601058048332257058602543618687199209606417029968418917065868683324916645263108224479717623912750051734354338313578554945731597884651047854118623367937830719251224223099046819136946648356907610198470132499478894024488608478877406496923165816881436313890855352208615627963946955280612995175481950540202198898566952006343425457807724930021560728875392250341911919892876209556679508686301016689642686507047002995787531229761548876310695435764028932531701546217918466572218428234925368343032084120532890450866827042461439025439971529095225037854748041775598629763856815200978889039909831795389053310090482317018039763164457455680474220363584057940332428582964476811537112078826113136596207299688698405408585923294693630837419289863701954181035794333840861969949803469219124296149283407100040188552899957975985678727942748545142808223688839155012677472996008980342299008612502263650051723485809636906215619492599392403314172214603791699748483014231003647000014209193213632279952338506100056653391003084747593931632513599409206543140862222522955102973537163105072219871546798598527109246479770339603893586334919749248515193077128503906846015746814537000827747057615034218115621532468985027444937085217549338578828681962514488610716693271920658447735614304569420834440720080045411908424310845639631925973269843926116174909484082578461354350510698412582597552402635412119768700185390578307803436661898225199576486479522062870736848290132573930050867370826138031684788495109384259653710963074348302319376167326920240736079219072434156772614180615123154066692328124073701769281369520186834224440541721971491288805478622626050476018499339436134563498289817789366128094095262524175369706580202074678433160858122341795255440928768652236689504073013216418332923364875757028002843865320107148315543147145464008559403942293456782887979878543068804663996401444893177805112917125165866771770317585838675026367419807005248686778717484425664455024259304781816998263895635200230106275932309211949104284333154967166724054958702609515487244837832685045914509817146651384931170666632942219137907958440722336531825657568855990839927715799422732477512822794271703633155136342021271938614001054703466372549321757655686026562092109909771895394947945062412987604995861326933271976988030337017665243775412673479017132548542301966948935977971514929426949448266769089892548481857623484009351308077950448362410740061827035661428099825105862667089841311668007527205427459590845494515483976633906047023379566020054921987197909841173537605378529015775838423784538020115894846199471739036401288760981631473021988694760849380092456089261597142933082008674867244910435901386225143258140468175602585739052209632067959887797630774833428728207363729943300942927893137001208437848102596325408489545548241828059767969087976658234309574118548588938368901594169325843759794286151579557406927972780664195886494433322736811074628674295522981279445247281110606757809878340147553023867294125548536072518775650885711280472026650856152175798708714749101451957847443400192458811394193336259981988928443127778222626596350955336788231008235056598061698488332741611374056352801516717074046707995312081968474774371212270652557849717561506854188511513684290291920053505798914125883658172987137853226463727902034749693508292331841347669562275463117435041907616377709263187804677397078066764484156742466458969026738360040681615499859300723601621935637074069851536532734850794038935066361753289865350416815521199054406827166952117252935967218094224952357788840410613947298327234013930965192371396779566857971965917355191817065368338250535347709318342713296331858712387294584628761970567188333040155789283274601498007994760057271391815014923945377113580910191349993672858127418816439450248365646544837574933623236591196715887341879547293202023683552206297137771408342549722977944546592702286259179982551815163250492175563533501600240839614019392380391981082927624366772535699765856514773570492013943052118164281755818766478811737361475374486938112071520059317186623560779855015182196198963858904282429980096355555113842751151757478674624536232845952784106936186571760156165811258514719640380918539048003717477364220906730276235771768843298831518551901287805323565081314026926574176207656595980135690584031894718079870691564002971732103077596961664189163721960413155190808847956224343763884147738797273497604063864016491167807311233640243260455184219727543924824272143052936850095266918297454883058474360230068969466564455826979015984073820159905107681651406229907721399186359302196438235272185895678728863342237073944927688246453661421632022579204687238881696419693153683426734594454788967042904362255595545941525450383669018393991654357538985341416902859707964229264858366618977516936136439377153056719539669709041777519484057340883921696496168180281408824647545125763184031113899037622671231738658692862044089104291921248478370333473912308505551370063389400199287395304606307284614678098133872989484002179393286877683284429829882659109299629666706005262258558674011038038805256161344151918991259257007634145071687565772761109778181792151724173197791640072682816384307493945993070483184750148411348859882521319357907181763659316242064127656691987802981780376142057150612693809656838270441152584845336644148388048496444860288359533119961681007627306465470884677903152488188793291920519753879094819395333031511564558271588181055344992434067978001648773702852822383964390640596661100668219558459831927977981219824056516283620055489435080503102441634844346004582766364234496614154234219631912904098775556854063705453807153430996778305757447728283720841308793586251257293668027288947121564012717534857901366309802972439061017296740141008639577920186426559212794836210977677007890674792802226469000727237220755976066482854032056345553256901399781551221087299288488404775629525487284191606710075425355117831849908109685876675337727292722443634736433350692521543778392123272742949028354701173254056226794197366625378708999695874608911804955552478257472944601074254455176580952668375843360262585379895312559431846503159616187103723895366342418579872927531305815705847096462964157494815606372503656355866034441156076862792610110023403801831127197523813836140319184141981589839361140391378395487757681190165582154762184013601067449584447545067385688780959379072544748866141581842236707433248839173555695617568042375460248782426687264965558859731601869797420519085055925706163940776359298047088980989361008708487265301491371814523469226084021067585693986066131634824828802168627975171055200566359691599843796717513379974293948559361271909786562525224411107464898392913873837356846322881569500904172926105248727190511993760573942263598701879639444368884407899773985648613431647753671808890026525438153655337437431457026562308540940568384909897462271133028753801962808746749583952641961756084338363107827373794092028872170160894537013474207637213026074644404275932002025469416858623411081578644964043362375820295874278947869439906227725438797056399122665496844306662568397410730365769902457847056222455839678351961487897260388846600294719137212896240803401728029036242831719792034178885617138664865039762681436144117248575167136382108788975711969342293723587573216344566942618202654865148942310837825873066556129942135188444227951479194427676910552674068399790605506967501305563969670751005005465180168643670315624128394036623643791917757953847601033289946023474918471591087479435289524346043913845135566028455676483824727689318010125204369770361482378085770146570981990629173169546102819748696629210697665730557065680751528727167552271766562960322396148654536880329746079384526345778102735378774541484719130165561656013220745471112668054899777184148724395937570194507681101190018448051952237996335836969928711503000778296362242036402339566752158532520494467153980298223608218184332986474667281010340879737619220232954958645608117137161712375091498515200375673650557831212183798829155953642618782255435379045000935342685524961883647622853201196860643038474932897779983879272880235397505546670642772523835888571478841983085143810278273388306395045519240981490219279168440391710709329376899865554294174969252881995452019939215730454736553976504716373908895803097204782426461260012199165756409407594667448827807777319799241901972908389332888613303912831304515111125882733220431219419869317349430847170661219345929797708755462702987754476029555729694753705978473324901748712574067588650854973866827987508268779532150069801338659472038132062211444660692271789103420100382679941325265432215487409947733888168636433558632401927787922703270551282389922219261677901849669302908861956938848545531546587767615315029253366369573997565342827034320696122613697418861439925329471981954414372082793541609107920589815243497662321347512968987727575694127696136182328354046466493033767371080731671079136711264510087877326965075871160879618591879530742410306665924504270199987912692552706292453875590564895248244833179887137076884349987034589152324191280668716111077948182936814965321971183122159535327845173613432660744919550065352240748227145378030035735318838939288404192915918437800301298485265662400331878312098762289776238470376641956743516309187196269100053613838175256240416370472755365830284612854934088973757941088741651208433842486134907959421137125181710593457540267231573477253207700771569365570557964140274122608720371842761977261717188738203244079502892682651828892393528471223368635941107825907005552324748196637678489064741788821418281104995157926076425392132988951322257783125335599334840205343644995824595770520058190074747704081806286335497414691244671722810222600006891111314857047289001172271803857068811287814047732302719220970446553005169219463469651253642092740253321356129222701141345620293933651379775159277957167143553901376305463064843812228487875120598315540551682956455502916684802667929452995586977039012849572568578605478950166237598976737626468640358067030965820696807768847796883188459920898468896528456255257411979039306260709105826790912231442755673838913985281145159163245417143205209629255249753202559482748392239916268856045029492615351918383041424378555918145594397405688767719608266359081706290319069409479660532393878527449750247846821223190647232819793035736674971556242352504679013699402170687086359609655956048098097625243328124447743854123202010969151926330089245354186665785101613180091429898641121977202131183249110154308532427975324764850093150154152069341983182210927501485352815896636127133672679883107747566912217961420859560211467180341394017992124588952252764933303162481293741036912123431612063743107253450985633230797402679688955542103347205366323789649148419518500303425535685978210494352698475108667383599987920356778959106055705787257133330587222975352974414786653071101966728001618676430576970292359975651295627533606175962009600651321752882809388629114603752478260011368838470189618342466480810780966892968121565083783174114954442479794676369102704858368857607334091813866765531818717501622273341849379258156134188867310992072693875423021438953554071730665780362720102638178567513357342540136878574555562665292721174243835581827516528083372388598423440051731141083101221750518301552543798610628799674111551739349943260657150929679452642266648650602859153706715349687601614212522453350778404609434387319688836900553042848565790516446021084135211155474076588844109938381488634309078682197475915212702541278035131667579346844267395612229028514067750442312370497752509492440830516592601915693460407819930416251274948400971687997668310283266402829202799313571975270121953397878934927302279172617326702882218898114538599428068423383563393508989836949356091596297702991233950102071282586106442720531543779451535331812011340224665027837344842578264221913325653907978195352663813414041743336880662437281821307647559514040113762074685845757387042062905310947615700725282025955583009256542259854199299487571764889412471903233118851253920160031070034494237916800926629012905802419118413628628237190311012708517603720216518967060886780991867647001805230962061041630121120733577586309179198699592538610695454049446031354931705134619899586485888501435567412414201445255634545364039886243853438363521824635669400876500767474175816056239963368985732087007460262627266888485568975314142178805764056764926674882209957384511488875445250910914321349540397597016021484498312695102339952331598368001839120751052403810807767150972010803033313893869874760902225272557050744917544632973208231646483678851455494117571706232069808464952289062107451026754410648725672511997097015813329014936103196485946346794799556638416909634669254976749344722782124928684668451520498157403375063363675851541516861885645329886563816687195917857031216621506260252663385724979765814764483009816007703172095076774215924659115921926625380528986147430492737736618187067145707933429446270765958211761029495436564662180171502129931096567176482336022988213502331782392059733372881019170131733015500220436243958851646502858997433908612106176449413359951964768156245776049165691752599274557635944244521298216872789481383786480392718290726174592075385677135792151883602985927554227444165761138393055616045567533054593822633121322991336777830111342357466906083885238273836117165612047416846675030981331222113267899749218697661702018157503195580517904559242710982625804465918655092348002814521172692387762913008417273492832891259019566289828378134006084239946894590772745663569921614123150726107598860292647406376703752500594707430761928904014726526689713995861325150367370722814387082218368688984645337634023951027385092025269280758864557756042993058983202702500712772338435956794485308553587429118423908340024742063878431350152300500893359220023191739096518062756389345314348793564445283592752104819677727579130987508556570141694359094294094530653827317980088401485352725314388980904803867751899826789353539843627512031384949131468604005894362204373739762620947743582602455213848662941222148384920470895095403313140135388007460236729392225339565405068300405123285199067113719901305679284554699741608330635996480304523828942475398433611375030369837977460334171424716978234039411890382205617495390972374548566677135133131652306718625130852477530711640028391280747565574466946526430442668524702038028320350081024696212170112704294914372351723744562170632029715973853526846862486363502262985916409144819868703273544061178093793988531628469913385770826827747323018127039740450277174157046484530006365770568591209982217115819672082263580165075715454932345319248103631725848989068968870581053501977335124455571431366417002160211113054883143481480521022121438692550205033509508403560314271322371322055588193923019673732162922629788459775869593421169732182443859214129385063185124442117053670397054734918084595060737155818083633811523538233472979364783397671884818011176904804369480673744358216196904023407715632384333813477717269975193305442805420993103211538811647579694858451452001675275948802564110766443022249136284943660950424002276043565828814518240115576521101114409331189328681945812504989365819461393695059179277915129295982096964032716239331753986558000563013928841227120724038339846142742838564404592251494557829042557087520591123955956781446626257260749379343223599088107744096776113189800765051413508259898276192007586014768190033798687057849517263640613126112536068727920271470631394963074997052223841196328129177149681905590931024153250519864275182816189589706157507998174545487010038576884142021980050778432353105361379585771424652428943060987638152260622426207162828596228963216791863931078109738405834515897204708668861579866968561527266439201288520877705249996853472197318168603259386635143406891828448754164503542331308025813593929658169242334167624728869980327415820727207364338861362727090267119761439339689951808564448092108981237172777890069456977991075751541656333982018197991452548306221377540312405122181408480695077616276359844845049181617231018844098104652101012921721332527774560602147236186372720313273542324004427484986589796124991457957979884012108776681909708444909950966870020065101510467150937816245908817757001927961796223050801143720138424800755217004232441434495868180781655907346906777640650444514546585912981346141444561342625540480997399235382212373689924828326081527215734066181748799393612487149844052348309123390497321199129556983792488362116812656186457290983536177944810963050997770864731909439624858196770055328772876580239990780655764979999590649006630610922374385561828452590660135182432225522286875950810594965841089746535732516772046061883082711003156407670595030006189389541569578403914658689078853529208416576544813656308634431642810326382018197619639739763118384869596712792638471244690416708870604237332859765803912517711345494893494685957181801894619705898222397762696177477823520116879561345184458046198983059815278700669523600994540471024290709390289398442198479972154954647740386001167494662036398997806364837404216885149434924358447538378168320329267510916286887030514083331092592340018244077019932539432576075494344193121498329265589607993207510880005092394443386908385684724085331745885587678571914543563282831347071408583598263318021138083571748666729146879350402724248858760764276648628592221694303275564085096572654790724748912485627319917357379937659656525409183645295260001229395052776664210178785634597529931162985304151841554778902531792503229035300474350478317438132854785023127899147142281052337210657139467356755046354487036900721546056996123779095008554182465376864722085889808746650751157288929854656516464586240760342231148027665560891704078798521686962262325549161267604505064510830015141860377526039796074294963702157636433740016903872594205891149047410013284892946319706620576020518575274807144282809097466240437708826499955564769339183058638683145800121721646566149778897660680895307187867195244707017964102614803752538615572488828158137022230958346682832956199221563594331590598188145077418767665227472641721126621903476846076931597615727553811545436277812195925003555803285998516965309940229754477078265769260820956008829757098917595050111084942134616893716921952606656789106211736165285146626208853259291170283083544538719960465679109810947824644009892619962405834027716406018344556845509690074889537519060658182840932670631403088983953694943506888904332582624898837731347152482892791797078684048830380736261350733095306590609392421847619752693347243422727415631025169898166962928468338011560915845115467499273118890188564565383801487066060490271827046198520792350236055544093948335028344151536876930277882609728941528496863452827973680656888770452774204022054390029482467088760941466326444003236954269590558063554699384422090207112176964737781669522769519617671235731673579753502274296595180385907630530299611155874628673826158706315552622108735077508694202109448445222022181406725625981502666909232200025233751538578216076890301000441523687584945236314183782427998701014367780080228606146773159229486281065283378516736132815200257517442026172475974455502934977060282526813007241420857990056359499833899421617927855311028204979998222859867802146804499890072375461353808746515684851194004270019722798421901324580631174070672637849181318362795574212820073329009249417158825656540967998609407666448427722552845660982365240973429272343597848923278472393000833995742776028086019850911598575304958128828927962375510205903147602332336579362727965468916460639510747631983808333218491897277626028598287948342689176364323655574385461736555476916130782236883006129322526678172931070277822253165473055014666732455240787693663697747311637815137469205726437859149674379926032013091590337323559138725648699307050735878883177872447275398108928131244758034139911769865685353716572284425990600638430104879117306404351226511440369804364533513974491142377200394733837147547086656305580685843353752534579022479838011855446674208053225909889740500097064507571538427550675480148148293000654397109956828955070810628017709547728190874904715514875807868040673956408804040520967261534502215412794021830524598807633378413599819476320991429278196793023006209559351114095319743531764677125857239118798005015997401010398727222072245314017569825082737291827779368950354732649437768732045727533652915389148483908134600950738423073270540164863179116193848468993497142049254482351146637462357439511333917861307103362885443499645515941688707103775923142517654926930363495158685258509142737364054536084185223611648567578418996869076364016611611728211049442215280089205391326396375228405348421361130721985308443685194787733128611618201365231688412661056397872702208136021729089695984542726063933463524218698460170996695211461759953323179512173923822760214767351612321260820884522342366291770336514196477833293515968674088784735216173759791363882628106718583178755337622420179332395278645782033965139128510019561724661674282603903660957154530005723991104603975722360102540977605138450129330878591008324471390783462883145618554623502339090376839492094073459854904551865938230702077150409287558319383514349650183595842449150062456860503067051163520800552742415371232951001780538713019652039950029598938996751560587221156402358755358824518790913667019679054912828811765960472393370489493098102363102283820546886995369805906719351365005304403896966880532706477128945043835049101518336706509435525795658835177069210957837907525845285540665204083926330847374756831059751472901702915645485907041173038315538650440153502802400859537607396087718682320690818187779006972373032727512213159342837110070314459723832187995138409722644636656480848550434896037494082457365232564836032817396890604522263311339757880261735154289921180195355234825167060589206476047420188690670309313036964719971272964315270418051260574837532468158042191873089746897810221996737912067244648806885853287299605124902146754646181847346848691064577010198474414848703420845061679201026284193413134379957938216863581637560450097175523697242940802524813812124995509570059403825497122826795026967687061929868306173095483697180290472302565640951451095734725881847837745136854549925798914692563793149460191201717999333915335725752270763329000413443841966176615622222925969088525831768445904222919138148115956944278753577201501264159270934153560237171110047580209177823148474552365257937771631347205777913734637819017665028802982888486990487536326622645048221832080318405054663522887035625325775071950283598389831378794583085023304039164047490774774612240835890417398615043221824912145348999371865324830705223242410116162517726772582875882526217192184836308546719697438099455531939394646641034985322276041322626498907178766532558890480193396052385050370428081027188255134425980954790790214597178844853556948190423723171332350984620590475676786617677073929919073541928477886254465881777220924888042457112153152463768296502143816280848748216159924899582589369252006380765048261420919105871391635992189582175102612669663197432884869292615643618349499026952409520700466828403167097696274984818848289828255260275166107847096144057953708269766099336005269892430574401203754185609799416206646828742277868438583135801403816549505772667664353150009777035416659437149107277154356819356733716126438970575634082467732329311929566352249150603790339943516797591334198140955477893951043735988316596457355757292941741607781163808841197988332386977652269155207056492691327020457096669917373341164323522108508998400234820316238744431352801094560006098057654281034849683104461272061096599300585327204626098140197042191584695072044868762190440996342727196617303214637073386852676080485049613960063898125073460983903034350480696093501445474020336754790746313616521894058563033353346399804538533599453753035613106400040848966495692781020953197062331781946973562542533911975800725680227862300056533468806325093134644046087695909806947941206219181366410966826872903933162361158132978863661426385035119535106929911263634578461642414700696350676532674285165881425763371889567283176132319300301026726711482868201476648142876533892610756678370993280576223592727901465379280728737521478272328370728061834364264662744706454372607458531347816315562487494046180068654240564551379290804995351005260439190927352273122567855881769808857828571029773978050664273660147096457555463779607987204042832869812868632449216144583703651015694230177154434200256158933410568867184520799846075741818060881212355599212513442086111806017811968195503046680886769671106870360204647237585890926830292968815413676747354968317036038621375380004134670064476929600210068147666152048818128941298066295434222645397408216769856658375809453713531712369365746463587469903926998027747819827921220022752431644894274225897969149281206077322536224091219960162437112216023515499875182398408289451404977073526564515073854251584565516405916221346038105381918014702052450055703651135629572124442181735012162203720512639642692210935005782632253153015984820866754550401818346440751492770267480305743030085985565306226367788249202376482062706515312696083291479488885051045207381027747028436465985581262545849899424361830763399547630693720874801315545205636147339577293101464623808139355554096896392786968783776757601990285336473406930108263965883287465927334228736329952769443865018117344845251934529316511271484944181488878729767191686678249027203001842525593297294754536410380073452736034781904761953151194332974652032588010364395570226284734457148542204260295864681281862438953251829490872896180928722929018374480887420788621991900808330458482806519877211756352659763298206598866431213543041764389841594020714187859310053617558349641719149064104892345647258742615807386734322539699943329604410714033621056091169505121851623110752320601073809918272985892296630291723644271129060909157323860797702863983112167843217550552930489055426354237387260710880565623492380197120962507817092287285619440115133750110488083287513741723425838508668363152645348188238666845843678258331951319641841984878079607403603045770918601219651681590627901910037016561692046381834721517466596536332786888640609937928868785928305682572262478752074563315119264531382391716077330008893774150014022399336587625446100360258489137944836365275617288673896461601693186645528975710446348537256569559243249383290235791065162537864085408232358121037219667918829125072470611312397769289292517397214802453608024736704068411885413151375355450049565829056501875269278134079699105449959651995957636009868895882640995011937048920568213883784127766422037275157176753547304903883419363627024861368553023307724097727057637800083217026582191038793382073827109101817538196028638930890151269090405527598680523190175260476653342137556391011199966251985709528428840622813562381782806484989234252715623643670527806191256908123903666574947842043796664161445200186839359496361834248626089994843920092147295537090330050449295751705091967946523555988967154006927557995754224749653384027005317148912521369315585854404680610289417246200415249294219150462338784868082716799642709355601130010607375514918338373732988223577994513474608097146281286257286272014241858134164239312684144956224437107298926036873316796568133827452981783160211638226759995662249582225150439570824300340169768016996384516471194871620554326708670973113475965536210415617609489263265896663950521549106676435526228726452103591180345700749418947771958950049908976604769845236828126735387542413986522315561925641260687589892543420008427394739371998620669037717390161397059640724566311530603832308096437232425249825322336547375015959982636021067139968707019391141071203690882363765883447429977679906373685969086661660199452134567809689742950772374734051819844256933712581049047281306830917882277707789292843016077857286453742705437261014959881557939305752998805226525423584983242542182358185176279530195004426554650300142112486308609007404489302765982845240819824561203441762195098704787870262770343296874988397356237921791704020198882491208556447280739768618191852858750654121352597693140407949022660164103785090801551608889409804635593423535069616796680907692440428003453631326441096003692182142044076825887414859823250043798799618449071492862215127707341093915652442487976283004318605012327577193702269793469475423952519726649272349442004309925246040557783920091458593830027333819864120840515864634945316974572071074435594223000013902962045465311569344872244231885835149392750982702510127454135373615573758579276230146309632752702088596702943246659834706292322459890751788880473831595972904292512343080643664028278082098420355171431546177765120003866492918009384329856896349890405921855429343458254893743647149154241342885178374577534276470943138132918505950060155880354443778891986225854175601189834294827314813386509583087427597192491492608424212997136199022242041177714015352944978025264976550098364547276624390603696290325303880165358113915592022140672831656653111357322159974632616231918395099347059090292192277001348417636809347535932095808285203825092999578370837630411017281537836759436200580515035117116087583815089212435239145235755990456004644005258196969404234989157333532150332876914168478777418341348917331754898688596500072838137663586923166782835870455459018568783507447851399023785622595854847995626893485293064447582949959520803099400930341139281125289576621344458937266476890764917594646518962560787598517652177929601179773927704444887377555673802498234006082468199902754902235514345838123345568857140643547563490186901242608668306220191881384137098563005146840984468576703871011782011078666487390064030370677355301490375208147252249628618023371268099947799902022044155248247789457396486663758531320661570368140982028144741870543371810797915453405543467276317202149660046370271101360929864602678198146292411492570539889972342671616828782095974029313306752050188665189311091014625543741295522240433220777810960445357892585938150370949713184284081367519390330109804863479417539304541746823888212493786556731230471390048325749096335677013539752499530794313429589327591189675487497021881967034371216442398802255090377914873267847758062350853245016968612157920623478732067301309235690156811179229685885104008757993317302172114794446594500984298608756060795216008147682616469226870538506997888713307561085351952258978973974650499748714717673931527776805132080209766421600128808744146260403958719704247261390265948171767238742918313877775249103401131844507343655396673691250581454530383724725935124504478727524923651515993762050738105846091590335428138627197807257112111218108141257075385945326695239326306497191913387187126901859770880775278505410889233389513200913708666068178711502959694822888578058451218190509930495235289690607651662939003648481566800207957783762428878386922826464165109561710034341432685133706442024016056320720613818943159361435466838723454181606852948671177488866438309690926383012301880359037804169872779027745630486962367734405940692305894545715031738559543821460397055607737576064140247227957102072341527597176061172697843812651106752261557404777417704690595354418658884724336327294788403638445521671842110527498787286844589135724763106625188468473224936650102736923673931033693829707809084579069085572194230771672976421787120290889738378804438472762359916898990595546225528529460020795952564218374738978207717635842653601904629773894227601066580961734613224855074736633358986932805000793335506666577244745609982813887653060857338734021783876320660032146937254919415097342356107673087510611475640096833237608354653376917795869912277061352538823923326362164443064888214331322112206037460703019081877643505375402920478496560900833785518559255252965896471874277071548750859087893302862571135733624725752817540209117307162058927767187518155578093335239126580993644172530471202544045731644420684040408571778682012413987502429915063568962690095186020570122657863747853085059050632538473018062329672763091215589278657916143356416967581244732720753554606175767516421059611518894475783919601676004710535520400655201169910344630467172333857230239832582521866946282577589288454466401727959074014141233756667112676383802628111938541184310255259044524457106833772556989092122613298402801851105137994711620449496631485867450154741536504351526090403496754473774280335353418342723074138789584603400802699681300284400912569728614849945785180648725205912614647549493212409327699747107620262927520931721750405232935732117593925029696827534330140306485590116257545344157225123527804478671697558799283749634967650204467491937752261939413524562087878270459707026900276633347688190573880545812798538151294649047496376350514421609924502277351225479960338346501339617222578397533918582681746660875889812721329377497544904821441532920631784900276636206298226552586045039817223518432640243063360645156537399787810537406549978189215569711506141214179423462580368367809109910958400703092262201339307239979302303847919680849229255353797943923990495880812311239200319967874139615986927314715901140098007944566375222972094365636466686793771133178456875693290189593560258160837064983523190940662357022846557051878775600065849681646131386389952278823285348723309449744564284361438569180725525872614266802985832158059307099076366316661120857132541982813998702281701396381463723735188972524039210111587748915366275562393873883124722101225608260084168411161834575992227685214034458634285484597638846920259641121922536432277940001360429099654976846134630480405685073223104964687262361447085062845556267226216615043387496308271534880483489035571872382319847885964608931827612732192969895762261822826905702011728055988082166024767889028623283929642922359131908912759844418084228015013169131020452362398346759851688154451340717592874283540153827391749193202010944762854919406141719138405072186533825162401501599209444716831464242302259293455357212059979284776626132791309906640430681750170386525463619063925088720197744525960810352012249767750988021211618631207065058280854334175485451112817433810495731880169326235458114656935103610725038568795208440462226930073666234241985491468705235308968419545677643668826347960357736660911231996295651858961118126514789840097864970060353430251266944085188888708804096563424946968204111219238791717506238205703322058188842244609764025315403060935749584451096201067901981513607643035410105748713395744758446990409602344123135314555270585706139114694852781137866574567799628680086208311769173433608831169393514137789868498642013208362805001599988977218884548476073996365846008477570909022379055972558011352424782645162885671001277893431760168929032078415736371655224716900737593576705628832319077920274117655921987815184532844885959581908488296841869614616922158812329327668375315252493929174332302025920601115461817630436288916760785161291846743635184778627100078537904717377635135168136186150174961812062588754550952440885804076431170651625743370950269858013659643465558552255514103643186893569773195774727035629466573492607192145497646250641908763207697757272564609315218678338897339558427730012957071832404565892706131338993266265407539828544929540038722244207705949045089460519896984225101293512303185641833348514833519954899924348548044334736480469896791729440978673674310337375914162866668169182415426481705011616931698198925362207304002929264491829809553689251490344771952058134275956582747604926190788262616672407152222968624835695318279237088044057157199171719115212094781837073087553493117415902133212845540599121827937417965755657372548112182506825293941339147036933073720495204736794195298020482481339053562487424548315148345072085585055307431656629506308987549947338761596889534585674901772847835343050221106548602749458520792239196885272255107169024795834769242727506700583950126753571909001867573918019339080361838669140591367698991770543087339420024155876952671350670046626879545995028343794297628803390382348469923883631012842689855744754166022401325720878635030611780549303122438929742190390347389711687565821855149422404677042717846139663089454897268432270431163665295817942083824490828502258758815903432747716896735944235642129866579092036867759747899882985004079150386972423188403040564223717148019644068366865822359507957045396915344741837278551084651903592753282750957662385580049578548994899942579640949589407581339797849877530025528288988324449688641084178450919031843068410106865628953791197886389476335225815331840859128195840252865578306967096772849950760432216808631645430024803600152938863270507016059778132020342280411367228036439810674792627023498574744858217764259990185194127502263335339551029310237051077573739447056147243614682240104083959392190593759337427292623380331713848381268188361046039315889278590937465382512377445047292599003377741907050677123017061444604578539672721722441337796517548268578113333963492248940539057435031615633379115132473554421914732305305792573368394122774885502128213151024013509332060326151894219829438423238547172731607668318607289675396510891644374410350302713654308211183406760088867074601751521098133284816203466773332841859606792366323265264278375172209060561818236930695200713521328639664626874811479155500906643573548502900538235893787937224180019090967646885674056021877242902756194271202296292243369920098658829509577668460841428129977287752922961868568752984733085972833541170619989394364521771741404321420396807340849289739679707628175853674697321419632491343133139291553886883383149795149062204717300876895142629498822983980552894687235698693314784789754189621030119039689203103463869053922509053073836733473030368903914188663982383678824147069917674105042275698394073293725842329052401563637138517651988286601783108764733012911124602508318207279463328921538625688266709651102674621302655806054277844570754317645628339679728651508565646442097364912135202862674391828119725690696042789403472821877959566066511165502048186310573605933328585643332369748860051248014379074613938862334345696728097270464615772369972140497676577116236123211959016844147601635962209111280780594265046582261361700672367119356230318514572335480500200595774275496797694683399799471316208373596915707018625717728459787825637817236279547580994426761360124310754854948159402770891591733931766515132257352357488761175716961968641707202469434748733454013743815016540839314127302436579540782526338406411873797171505875407541469318267989316869526377230273331579841966506477850284647248330190483585720473807682078296311437050317287107225267010263873493678571200285548834317317895893684968286226999279439723287012686282236528094955252442944859266550922803217364415548868695486313838710245760730451982519474416170537064385467135903880936419558518363423272479651847885160508558767384108300173623089224304290720711810462027240130290155694990594150642584360910010992869020699434659458740119563812982920269429153820950662721185274450469356308522002996547964493935060688534864011635469950984833535735916455145509041536394627357316773096989634261007003906566439968263048698039297507687330846344898266671718259532788062974926913897565553932829783097617521197512260952063831741631699925740456173604957315042423504627508422459121426079665224623061258006111885290157230116527189608039762474454157081296906881447244064016477059197232860593802376932203243131119506507232285681177432537482172344093074692689399434869412389545453754136883639129173325303910381763485500895847226171394499208750540011955541240846394701316075538816208799146039073163833937603261270107537224278646069331222148062544919224435185790216307750963841100141772762255607031176893035273203079971019344775931410490532591664013143136793930424666301149472893502323005684988716796042244596902177458080440900120322647732277682091191170049049083991992942157888784240779126730751558459535191065253707357695875828765862400439228728210362548684877272679937580749047334176464587171814155475896177006256686592940500275125171579804508093601320055624728882793904104813727461627996842362642465645638594769845047656293916571513043929080365781684928360479416039712900370524571953521420578870069371234263312786232768454609623236910489509430433903519522741887246174310057451029560063982990588442095792940549235934312921527386059939406126864368219872246786811539959400142887743774454858491450860179016366588516656102657583863087929270596464095641618929317712392901728032595616311179542957203376386129505202703237140459677934195886751728797888125928010812120288208792104990062933939384198531821635532436584304328887233122341441646081568904779070477062269712121908444151078295416233835657691071997652822217329866440874880182471067196110870709588262632482824250403029113398578103057045462524901152025027799390169738221639712319715412255408727350980181719248743616321620011117574734408188065756151166475424048230152622900992403070487053716374208859552452191532347120376663084729968751065450842530213673608467578144994212529385738497866594447511959560576657485100176467325581645799560124876347993898732836984392612197610397472422570963416735842721976977663911116790994239131032098865894334634549042994466477581976415534523559550774897366280476333327834839420728876265059382361738642398988513466036660080103904360651145326507123368500840870550516468579003529709430155050230808153473419247071214817750029384647197610127370202009457316563849295521711906229356162343875352653612020104571452218827454992270090498468065422310921200850698570941421958141381704859407219331217147893454884792442501877892631106148993323336041122616200161532790588483599901997805753370252843364215899857916148658090629568553705647385135028100726888326128877532844010293595248378440021454927858623860899314462514282994073155242701796888818288831206653960558696131952411008893663983761583895398954357694517541142979575880635850344678727932114966923467723890311825299447262527515687957341563266923568341803337674234578713409816391460137925320776781457156351219222284022144796257077225063206802037359075071969641203487066135050466689034065162754194438092617113786009682210090865036403170143929620455592408093451463649256334036556175375696484704535835964452226267811526590048108833826303643270260379635711986283982396333487372658383413341205038235771075831762187561081540461870704466774472868135364826882566457790534370565376116351789520881397668638964161970332715757770851466115523916513527510259772019309569564065722545747568016473477843648531277489672288781784602896559600179181257820014260340912902201502465070520034389756625942409369168156788428887752421690575875954415102904742742113223210176435918341092447715005232820910221892195709456247479200819632229705304024177158886189814828234921181411443658296904113548504749703295802652144053635729696727742203319532112875823859384958718162443035429785229732168983414903063069263648656807837485317724028099323837836737278528045337523737629839215013597840857595053580826651032485058720664212397023002131199410486536710581681538376193978333825410442392204977145114257278898769733031546328979237796248363079468965462021011029947101515361190893331784931673556398377469583684518058318516916142613767283493300215824452306704579261229400693034032041433799354399023800006477811418455388288539619462599852937783235951513776542950865987474806190453085528529437099658343045322933660167392164243862573763015067775570939496188046399010369461975196305276408480956045732743870464678258496370056454373224669180637249745437329445680242242390824286722138592773166366455752786600023588087578377983570939456203153100566641137781992201445330478109863051016799799717911949893503108954090352619259309859900035091648612436400713420888648691356526972762335174243134702134555736636426378402280446970585131612097111437481656652510153585818968686376440567361385020951079642872092855239183414975389558600784176995133480852653546134250959385816022762306918710767087258450380338403871831303303729792364898693451161716893059041906313106481959654384515581874783399756286481665982937514985488637318213052816219712562826293498362631564555080488298692938833288363696588258614595863948019211306737257115100125471170899351780552013544430090321192900096860841218602726197723429908465808719855403845925873501143795998083356720757088936610248598626608138230666384696855244419062933292430590975482548638549288201966881694817549939625934726493022760707018268566667932396606361949018865564521923224095604021523810307144862228266756909356690622278278245118764205123621263523849787181375285198548071668305271296570858837266519586650629979988037202719777467503209316317633689826994109149387194652758586325565555282936590249628108461083814444715546131590473423213523583500580979537948899742872739569573154165863741472715484680153033671816114376714401873791443421717565019669367377772968428930552098161347395969774963955858945932633942510441324769944888598452329580380328635145011752520151966547724274320627942216246321036630620430829322832181961427735133709413096644260586906633803458357797615496229323884350556221675164062580540238927567637066500354747430264215280659581412339938277472564080950471075840762617236848082597998875058714182241425344904248521929152814187952974425570903349145681424655136697321615182280146520643212181378108136482607064111567082307870701077174883697187036324175508891764779019492075373822061595205280800265905312702676190167211112363986566626533490733638719446089622223549884253183978461796903965950525291819857556203431140636252170095500407373703002614789003090946486228916616172821242116641386606816496177978672827749924645805377889682452857835626558324516212463147071682170168625296835435615923093424258010762037082161938921833298777143300041752116940261465487006183674737996045866449924499391095450885073979430256456566619490727575393122614840815409521377252049498043336310151570187742557323947567205008420515012838296552351747487102130639600332088027971402061461816462785421725360069153298001951453018009663354766324737897045446085668960660960656710947031765577766278046823555313542979486308674927268571080543082579549336257779902670091460975889591382025265966418602193319642404233122901778313372783595359436427042637560497681292125567078888554497165505797997851672202631495851837036754069720808062346827326139733175832634230885216570915269983229226257501711653863922010959328467936563290619025737163571830012336407943821147379160652097221632443582507098147815090666184972702138247863072784692168730952489091941387169560823180920240568946478698875005914187553941148150421661339466682334071218206507540857284739842460941706455013283846658875469939947169287552483503366404344718563659908080796193413327851008625003290642310785811624595733095305873509232240914896849881492256099411147910676255366626942140298947535286745173993708812691062828142018325969733025631761923234369281373617636193983577871911183386556768159205762740941182352709775024636003805443190257838174495646323451082522671228382234454220710808424284553756536897282827347690402298001276979711971023088263421912173987258421123836718701947427752579974731140921280606248452930866527458170437846954562188859412560474340553195489363314697187500315359182937375106243649596361670198747633499813878655433008914477092996463944807808009754347368954132064300412224746015657000284777799057266624884210428958902107128599604963073719874332230303941836364536361290935274051264967805387573939335457376665735296512211005286864571792877093937426978127979942373357067235699047527584157150256898351729838107606636963319891544970921421547498770850711481068546629569332087301364317815473774184153063595863747224701605722741147914689902196529604932778288252610376448593075830154586285411707490935801685554474069487557949676910444038848007802186846300947680340577538375176881460641106226638324566221934736539699532686240375145071751838544986200514532537383600865621754900889507007689177018158042465000901386135349632617279769718935654043339367819950815901512007735680097855578468535096792511090809075569035712168791490971000021107327973559489565431583467827362965679838113409459835496439012546054362737556902226026193433081015410698989935492352882099437371419185831168094886402863325157728904769879968258757662984962419312302044370749233170302387352792584170371086160035310787926639040960389290055076692282704309588625124096408189344285069619996969921388478162344687244951625931180713331654694383894049958201722765234179443153151024338572786744261371985530435923542375087431289397150923181425428939081938381715516524914126733354431860405190102335174334805027286853212844976436260802093544782046112105182800197991993311642900989276490388069120524707154788654723709381323455958441517193378580494421689507876407541319271891484300844332675572623246958223730300424267178578531314964112525302979455390140111934768799816807117625829251475544707368616627804623225792006669362850884244106391759064318272144434966086859634412865372862646562159326792335150613895501410698563676902291618312803120048326486277468998582152911255223436440910152651386563158723464921364904809738027069381987618100014288106174609670745956531971549836685930432210406582149838824235953830464292635515660590280990842386311738597355378345024846010469428857578674406620867726471548350565824277278578330948792815906122402969947109488658231939276770738593652219857517054750307259578687875809508643453849042658953674961546398847684116796519984680894557596393505751922971800711552151227917921976391684871041715610630495775843540747434823127252593400044570889086206592411759779341049949908656137821060363080134847661760339469503660690733118017311139021284252630026694398781897181799638484722754241770111662018341227391987706983591412498886990592413522661969367275639986843155987508762179037925302354513482013818112242448459267968028054509511146722265367599140121525455718635364194681538255231035010783815139518458877697034862284863539489210968211418463032364348673429605085953421996045517612203657691051405029876448916447974081709577541940793676775401675144529949709449699184672491257277583272335706801850757643017593549091795540993848271494401640335396719245690118532182156284085447664753045247205328367939835222314373173007556139255614287314625971750813995856762860647951493642320700622985693133173955874700944182452940119722999728675774759885276151832410394999965802939655182836244893583006706621904822495327754520223283159432920685762020539110136756496836151809935951022405452375276137327317057058782655149146991341209031299861643278987495057665712229654764485925722161718599190267838903575785727699066510549414174228833429216959514096603900112308414294798199840699806410698090357134323825488865307348595163717625017641855456135835441157080515065536348832388009460314439651099176378014874355530361744441616781012586872352583037774913956291112809892209527093817424211365981350796276826228035995312280390248603363535379814389238585493528358156073074804440958912016711594103149357288723348660970657769157311464251951753800239805673990313754635349875471425924867534197717029560399395209404491470354174776173638923157035810790662053463903295698477563582675011906705344299603956119579124246485639045435328038855418352268071288487609662915357646509565151764446554589797763535646525863894393263494466253506600565496946415256045187843564369698224259778463909046073125146576312973241587695434087631303811128546423135979864771460945413835513721288099727844751761669675309208039915876505814566483369310623917564418874546531454883979623834713927617986905236798772333623506836008753993541773279894483825883505401787790078500609715768464510486628209779953552970524586178753247979930002355124666745131587669230325529902307194482590642405492990295202361794086046640362760677845849157931710213632073789356162708492523049133506798824730274069506030074018986032639868336590264107477453126867021077590240241981294853532108024007145896564086960883546058170802520026181687852304529684099566433135468681405419732371443117146891355046940509515629475887410371818033913006828509279937582830878013223293190608630074304046356356200141778171925522078306940100319455227579814046107252559008433307855313917555622786301535764931318818587003094320001383430368433164927086874329102737166049079701283202757938341371071158312623267614573158407235375546627714283997236444510150105721584171837041771949048882982492387672202145705476528373454659909333670493666886798496306838600341720201039589641741105073111069437541122556932842853624195452507514698288691271134664634283881881645902213005743738768961204742911722683200108314945448577123193175380528958913924378119079331981512504398689559595064417642332960841206384907231270947727413404783858555170309200288550151728854271508011770553948318485612247308268946633926347140470104493799606153427280253807969596758600343723217937337052384159708704699722411445422414041277079914800037280648642812001627046265360525466328917688389601670914589447887494306353754739658901628105024537137629019971945477387794625479076642198525181389564364857191916375849134932621507489972741682280213424266732435276851009684321920561068095232980892925044086661708467454682650912737775030434897532939118915539304477988287664463891952407215592865328827785680331751953520515776835113510841127688780579468990473733713201676384634881281618455546830562700950819188138025345919653930393924279197695151298074428589243338922970476511395066773157577736043749704339036606837395057990860761973153867488494330374002004734548489061095024747903906360700310984513282142015486216617257913644180618672940371671975460662114784536135033086600729699586866238095367645997106852346053301358805930160471516050251248953618964866716916121440009714455175399928454266893037496539768016238670431684547374780206486035303310463361999935421910165156398018512601911655045339866059002351651071813008527003409097544449214840460255644279150298767419616309356602493409376846660650966114438357457200282657188793450411801917767270293089221879154319998012578348973795173286991645174089121121084377597258878773103303350266132001838548618706591132521569409517666307862671153571469200202392957646152209737797455039264015034691102878986194919954451676938663237036176940442994580626064485106814113928358110229433263204677031410386953442001993059455256591338350385296290288776837013602562889874892296119233789104869703566296282506641765436559425022210319377149274789308157250553548951608568981156338783242811109929087292297384285169642185346934746432230044445107313875413088976281383687670943005322635292810621757824094655593017598396233054017305080547192310438522397539864362799522667567998616109496487723993983113000945871951195150514774469037075398875964073091296801677742276284486029357691602162520720605941665892768288647251996480973865900583618544537212104026200160631002043880462825459341041286284345110219196042884834715357826338509520428957437756517807351849724232557788835781562503396245851837879998508603487676854655145464827027888048724183476481537942997698217766382570584446326901902296634669783772597808224056742587969959915800217831068288021580315157583082780509583059043374247416910403543503942181406576585485281268814151037777443438784275629465372389502764301046357569868148694793013920077574706635534890482320884556267819518821327200069472607960537687560257362128137727823594010269747107511072662728018601595054916651995615060578366190915036330161471926751615525356422175659738649475447699019256372383090963381125891612129152760596489927012630846306557288717850912142571242406541343047266055699018800653004274040629675415150305053447891816707769692288234069851390270485446561823528938568454731749635067207312559915221792189325356768373971007080787960647152006218772812021730812808576465386689690984543787077486140731215081786145401462265141131485454441145055117579119160311776962237106269399525626486420715710893354786118170482734015492123221373953793530852882046912977637071072327519360522594771679002154266874913934944033939360424624415284481496575381144601178325246096973820092959131598419800017937723015556776961098650643550815395696342896836493112331681681649514466109195082951056779305273289994781364020678079830622107577155734706913853502700812904468213775593930868192612686565189258665237950579731695496472079055346191583040892301975116212725879616271138131342873077273808471095138308944005388153725019428911279935868705810190997413954516025284787228926923890375589249573129890072572502576397550289414140097872902452995637329833695655153316275754010366745568562888605798836292279957439996324797644245629572948048443353200593208210170972650532064377460017288678585959940614093028866402616653207125580195883057514487609678098022380712508506419720108882240201584475535416785891676747910583926912088460848944560885375538816389572615340178891388535752941589552578254827824349357087527109075209871326938197459498586151634010244745854306963114365530595261863520667154986213546636417863956356364806441540658837029791449616864235474625353567643468577672772822791822829033554114138090535833494493793526171597745579792113010974936895865269927044975343854250852873142729883979474504512666106046647325728288892382883780036859041150921903022993598156072678525020028057341799471107521048540428772928024685709673822603110618029596662727760176823487512216393042963749608946903905728995091216088095584464636677691417048811273480409999052759510090814075260959300318416837604874084305746465447105011173537162874010978522288561030095669322325678614428323442702155268715728340752418138956239787710045565232516288543031301206666211066579145069670439820264769883991496592113168442671000025215454814686594111945305948793077202631966705235301081976404611234824088887132621587455144525793620925720771637154882187874991417859792319589262036623321189536633178280867589326522995337224813642745769508784145109581305634945516646287898268060100458231902936010730967071442398990152757632132380564221950598716258711102249804981601947029716835408748701837019934237530850876693273290031338571300432513607244615463230578041639107640351510899577227493637461478276620725061603854400065183200471414415765013578498694142338362376212152451481797920495282765982501860203053873747869490244336955761476000728242163171641332448572241894767574764500292558567594730222998559610848235502783546585982357287909658779858430879029428452432492997063619203339618263885608862647887816199212745802680791647139642317143723677710773382007273098238408112786243649020410635784157900017520564724228082376295631414845000783170154583813324743020133100401790188212358254500435926977178907404729805807589525491720715035356613442787971317117262925397914494197138567937526824808391645026501410804479134915787121902066977317877112720153869748395102086600929742877384206582716408048639104002025764006444263463360234990900311261674635437709838731353755784282892131010973500969770151407995527768419610342450059245217592194615090201197422728448951833699068639555273240089169114177400038571272670380756073192124858504488249176354471596722636983135781456699288231865003620197237051375488755374970646239667943078208000845488055884067085057567950823239800616295109566960538084133593506009808921803690855939201001952412883993504115988801032878074532740500939012645086008121762877272470909842645145785792247692086296657612129716568001346134742439323750451456609540607482511265819068420736575303967789437200696880903139884039220385711187343494545768555522882823283778488383893930774851884811509412089996628455380763395162013743312057255664565998443494870539648477595768343706362164826066488040428888569516867874531847756605414029141014367448486766665422544093524072134094540203642936265119274110462400634959403596423347158615378719429930442749958028716199661212230872456044072478573155067026722053305831041050999291476538090284483692538599572526248995366916178203566134567811575147171894113206181985801140791524588598001977824710613985747777010208625055971349188227884635109063595011323229300681041650029639946665687927977359119422960997382353219162850393404505427781109060437933545616106784367025103575770649617938563742049051947915802701117460663664773732200825899821515830902131403335128544730049940356639410269582777113336179511939262752094110670361982590487607641761266958179564757551773741887509084770934322677523499473537886810424912756451023565943710392074203065485760959487777664377343680911114487818987861880500621629926068268888019333076247163006622214868855152133207886187770260969112837513036709651384114448027371478265069297941809191866961693735272741831135302670737626593664369817471564281330897315754701545932664219823318253102987669208210212003179765267966986409506141673825992201931244108222579741356329427265688998721731184738271767352031266110764827499494248190886783049723777244777654748463906019538772368311624672952642921763436263802281068999900500685711639094370966520508399107319469699166668220452864934753140291994147152841933975216991101615763343480106575328339387235226380907763253699419963165302868782446127531270608715298351060372402992081871107584163030832996524248922302096684778068917227273683872085725314608635952153614127242439692514847357348606356264289287311810709638554043593492186677216152603549969872332408329852725098133295517966546782516950361176555075141807415274008250411319942625163283504739656149847367931968797036051842975634599144581478886168941322202744011074524392954465154462611359775784158264477639248941619778891964904108753342105146330594909731150317972682459748264760965815321747389930227086784588907896200260901610088759038299280378838550926808761865549646020646656081559605636459279194493249875309447180235668034671847048848511237280565240538223165670993616672603980366810860348756632167530206112482776022246573280002578935249660808567402548892165808689020922724951758705797855569947565129354839266232414312718333247638788408625827043053278780644392272059682557662574306308541033752946314060344990665685919350474507207469192493887329828340536642256285559320145269781466855114850953737420170151543888160803664424441413438869034644460611557390958225677539383516940057161431661401049071069780295437098882754148827973160923589171032969925208285634950391612445258282372027558918740455042282098415408885297567727043275621758880954070661298522384369418679121813914166194378997418762706172594998441219204030049014481383854882399999536681367935375480645401484114120748538751790753162665926700068006784687321309808268761075053650205413126797588849687909382604356090353602150726148041503872532599080158138608422127631608418934582539516691452049254913149474368900984843447456697381700014976384676020719630674047127870088164428999826228245624932333078171391896485396084212742744453341362520023736048447844916088244477634671022131484437658245968476128455201604347864351361820474465417800601862713591520214879588593162868204456081612438759384190139673255099803294864795342087445886031063469003689287746247727412810906048494640640839121503925242563821335976613307275431744920034633208666358729690023768994286060762421422341066115337121825414848329509530828989537353173606412582107841552324137828411117789283664934634657330084900824699159754713739617896531976843432195823903283662222474933092590005063524238410248307079363908694650368117792401034850758368927155216344264067998775909147299368791367677960194948303619572409106187709711160374426886672653154025515717816732956748040608479947415144731629365256681926827136876763392924515659064250455250160932234091217571942295522827865191538554905580157062767589055091064631399256434544020359242953561264895864309046802209966884429979852204401144807316719298760056638980895941082150258252476921309842661866964234359876097071324969941187238644467961050270526731090871169177958585651014843171967946947555954599001894243221180153550159706666004064859875929106482725608401877410191173352158257816994534802575756914371807317257678314027443563361486381642061840352089214081570781567565134721160042874685568724047533986584894080352298051895997923229183185812231621857833213422694012909485955167831595057361512175844832410680842418213243793471048898594399941412155646149121064902724754767152374458284303692287920320362781523037970831330013578955739749348149204167023033018683437049376323786916443769550960030908289886203492122192510832234982342957205253728472507712781202078903849541503020313764706961715781709010208439592143964549305963282806633944145252688694243989295338944718956211168564669446296510855920811680001404864608307448706321598192293828845984017074004774815917722973803309309168446153739649827636344546966762177522392074100906399700336301495694750932318612961558899180832964001415295696112745140478436504260452780424088481805424721040046032908816684345885446450266976746541207977402338646788372248985776384376661336956647890188874055053664440457289530456147000773909225903941455801152648776299802231999995724029479013015561055880006484883225588924951807421067242335786404223196532208352059797224173414062789944588045317338261005737336343101386566805733163722967322753192230492600250291287192315339140861180927964998771230397962375535263510339166724151140146757652271332784348431299376275218636459460754183061643119664252065475750305039652399203076603150032287540006920943307983894587248840846542687875968672308695416178006665081642055548659114131439831625907372825550293803540760717119549723651069149163693239976164769669055415019819985302829569872849846457159462260960930399696341067148743319675018673155502637328152217696875323395761496316859614609666495194804597505587390784472182995061639093917290027217905926140177356562293905377059107475462633518621316678246173670523848767751251357797634598000221177872574179202863877580719551914652916992100970057909916670657518084692200244745738871273608602558537692595705442158230820022838486747513656859473684445956958849232247955983213419864369430565182908809715220383354907034625787028160940145891676944192526296881636568706534897265829471551919961534296625592793071206203363933165944943225179640954667600916928635898176565113247151151400569070749770190574614467011799688649186406642379792859605790646448332891404351395505026499254671868815088614103930760379939540500290977880514900324647016068872829107887032685213534689592530144374751858065142299416016845520224585255281259147078545555850953853510789082783895906658971486546529837898699956572543175246720825471588496377796355670623102927828611023413733564553586895035463346662678526764151716673908650895412147907855095250451876053790780612344618681874341693543715297831559304865842049657561601588807166906740511147382259444235341941978793657508884811475145693111417753927559214228254521979698241412376434786280705995944857128610753718263265503368098218191172934936127746536209184435084415485672532810322075765153853210740518250238581535814774485612663775842563689510681758758557767237230201557336174527160705072904224289110189708666121763412236695004305227098707709631582613569886863984389215392143223965479690441761836764512446922511211570220058740716277071953153606429104689773551488260621167867391840214265109589968775375171152924477116563728524756675399231293205217039639008465262636995075054311534433329098791362799417608391480285443169822186489057632300920863370831301538731869126716126143564656776216217243467142160596855568820787115228916158894891035618442308736981016330427432599740238288818822556232728082395435330469758110715147892924102280144091648919905621646063947583740300800016814610451578808686935877666082030783001841657998569979295034626091037568039466875838359079863024146019951016518689295960889991588767617747683755601197819187629103107414801207408955570498349749042369347880648125680598272742286867018915840859435346749737882160839242300590339112029971125144964382751755275368409305591076024089358198653182582803978860242655114869212835167358498723230961371180113562750426133085361307483607629586833379408823124042954256130186594679007206582265944951171787746879917436932366268251778957020871848967605853482247433830033038223107276049012447565586844041117790066858273991451992747122343162851139000965201138689245959336971801066170201617600262937753856784940412807425984525164961866372026260219984696524217547778865024139955158409641970195333791273818887533758779365829578424457293509057992118754600285170334933147403998297840574163130023844081288483132180192372487030683211121259821277909223853822435176657183514130395431350751718874687114376041201017141521422065115032193137200179874698948233686757524167868389063426406286057750769613143497769932426555188974447374645300698575028384353071854653539806923512081011208478485572307857002687786120150767094397408158787115542586189004299586076790818226496800832252100617542282744932390605657344807250857738517813693775034803809743259545143248290112372189334068293672709960409375212177397106818642717666733606183075936432469613067996702352362989105242532925319126598670663181347896146934669672592010454505423207132505448276102322167364902907234593251000401183395187004935810780171944306425838985733731938703431116751007609368113695271026303727401549627283675225189175167254918077166146494463751784029022666027868535533531621290945940155182270624251973806534891895222454531233611133187986024805140113168200612219188332297608067612370601064739941734405277386427591616425857068542772743057564458637494012463204906178245709917667109797059536576857936556073500346561429672275752843672913919978381365490455221308452127224940304087083719038423552174451033702721501490555343735285020122137605040405795555823531273127523744824187219238986727326323360295893291922813993532394351097367292812551712721492573298492313172548313575191738779387805320432266762331537039756522405517176583910129283955990950501904608618329639697526274763983688463074666214018633706980701408173911600105233356605899894886652452869347807761262191328129701629627281664347472904830720322000757391931268587022574824499119744588762678157657960147160597476086027110809857611731028746401667658591015146982580846865114224998439111374544099874523334207387304463796185578628545145402532419477867303922208557373097408967199236173885180778258668708744312723482961711277911300725384291113964839414378609264138276666061203900779226698801626415457937480314537432558937267626750003367140278734109568423609304535494703363106170577707666985858389927371790322129581350074080283249058037369039310683053875332690008778993041780854550744882586362755109492621533776636415626415887541706483369651912323232789904234715053439349711412153378117182794648360167669589462128052271523816411313315199993609565292787969519426401382184151794096380379363513042293660444397139891584508234495184152806580983245427784893360324351777776444357958550863178471896947799977514167493724230973728150816982445570095525706274243609747554612304059887185300815216342760934000235177331485225474761353203132360499413231114865230177878422013044383457227724105137504836741766468649297925499310685564456227360692758332785605956692886511408233819001153440924502165231802840380242716253753820705361062501224761639131564264626615902398309162892527129405888957140446530461112276995343954516823476510664552195934241508566815276039106254236855429405916301912034225405307830935950294783806748156167316746108859024248182324603538553585991211842416644220731798566247535767102294349574589335346173165445599006229338825401096257336525745607846459901519865467491180345671125262712522537413522849892824517112770320558873158339892250560961667926000890282831081505330287499089584856118569330741367932756655288761614753860515641550895351064240695544886752466653180249281323375618395995953206041968054912239902665730131409509833514246715567682993850158418782606323511705354628273664976737292226017317172165696251262892007098376451670724131825101253792207253033183001852780180878938935758905807205921837371215339512371462917407432149185325871287514716645467545061725645236712676321220177725487590179338240475146357717789579769991076270621704409341863586855744506569468511371227841478178434041599493256957729806454587336913025334122059579588109631734969287763836535968592754087595921212288469485580367795958893472804366322353967788181321194680156979554405639139152763330596852120581401750572039308201195417395466086589864508217311140176034015296764947938819777197324329021890032527553838263002028502232078707433974488836679184324215151971203287643377683370733971478428881963383563257505132113766712402818063824405568598737686585535288526410746424304807475736788177051370665698769201529393390880606107309848134009813336531460974617759058827325498145336496854175420739188922340512620456153041815046330744405367334990298017897481815768164706109506853273272875688495362524010839597972595872025964746151322139013167672403387735251094383004942991245033810636018869054452516527222886925253554815796718308988372069183492761619618340078791260148625728456485824779652804878990017200811751701838905545759596099179657990608912756959621925919713662625914924048229849997462625169557424040928030415132025664189281108285193339074964883172505470742239068316592745341383214518622516199309201182176129567348290967707180880777137478413239001379712618651632029899210814387783468577345545607180667579306564940314825513077132554308730712344438725371470465328557661265839933597923042823525254553225256481131994447316600050946156969014503685896074780338027412280259328740863792123013414379289817285529226109506127027688775685476878237769158195654673877334743169898584016528933152388668143040360045730067938300974531468951190805711115692897105152775099972615010471997570110767658293556014655512749728379633511274354020543216659766755590053748289210379766737943126835919226083739491956055667370287728165599087059507883242397490064648658099588110597074145909205926264945383486838349757552481000672072888752171180802442719233343418378701782603826690311683787003955505265543018771099720795682749722108565669270078961729106307426069474732057529061192503799344154282486797149149148018418889679657819946140282190077072164256934340095209497660006616405694599317020353965974289066445694717234000773226062483532883433078776814852704749576593480802383627773235584829256876710456615331022829023050736751730728586667247207707105064108501059466521775233855526696769944218415669658678459532823110977173827306191957283856481117520740233538961650586227399879536802257553093457787714138103735219033905054634082844133722211243466430431252422034183764204415599683405876681541905057042039375562839714117611023766621000613821918457529638758362646891007618625778099722774059965803570845518007931448974313972902891162463574036806347689295598394588377954144868427453076650764616543849109478949336199272450299458303962010442113919220150004062611450138706510451967032425088623919613697543910771681650093675486929677803853382498367922846385670992199367219168041385003385989133420721175448431374606092838768390111343991558103372457031050479894602317444712735399071897376784614132245268485170822656668383727880088762936136029269878368928747662202196737045518184411635544849387827034372734490954268731800687483518827622578680000097965194692527499487732773955577717342285483029196548941071148864259135565208848079318760990379555301681577226017544981205811088736566226384212228688188663895515344939023401861004316160788429315251824216931714723930094726690364376996170493776737711354015605354010410407849421682625094910668285586760623700579818531499784501554074470817846084674981247147214482300652441276805172365186013102571366326098469447227096029753777428539196480758374089387607471335359707090391784289327286149833350938347806919595368605226598423492404493091546371226765714848456638277750937554543571500483700333738673534949518922396920318943432860512562806404671862095196778588888514475728115838833910693860615752014211471825035217141851409621175976827560964085806626542240273303661484729719678102696983129621291766775328935154504910471460860613102539503949915124611610450118439221573777793428601610964635455439860567569420917718431349111818218474144985510851357231340734800094709848604986328760267641175553167038142201930055804972704240051159660709720430347986892863031329969390096684728091532615190850694966266701367851940439749684145715730796288396635296282490689521924041924756956414139255107612712752990596139640250141676847889187193724187612137405507285364290100910830699938959464672535545169456571154794720720894521679546205995909068520395936823878168055923786199233275449313990082035027095746673683110438345325450589877321501709788854133547865722363650350201524295573218155412121244839986698786918755402801896893724948438716242733892094261556717335220083269165774577745716170206011572035391999689916815436765081828201075759615343132648568196926321776655419441163573225909792183348589692512665170254632693220986256158557743391221664965029893538550660873367863375259898521522823662393196759542230258534794115915357404231573073032326770198861449698711558727149798985302945023183907712038811894949077508203137241033948808173412691441297640553962162211882748169695511393585123349631159145465067055022630176227681572715433006532325086360434242710945302467075992467040926060636525352439329939093023392929238203479480548980613152486171834784350953612901908315548219406459701315448217809481938444231539584298802568106159515206097210246440570131651315510574442185022071748397329468156614224454948460292044329059214792501800467411911538352101291788758642455088173964058357765868099712440717341451465528023924377692701519223442698199192359595102360301437550789757882667424533013429238532030381149336699366962399341549464558836154810012645557395896840369501284749358950786201080171145077946748626324088436538455578117070587521473052846257186057620768939941860761270892738662467365749997611489642572669921070273136962385985868884279195157056566940276871819800125578405259006101478797658257730694790382961106199891176190558810281413369652970864205947488746366209005693096897789168458883867954529107580398991437287623027894234175439351846006388784957231484315357596823929622281171770093025654750504910223549814035917960597523747132416871530916434857626776959578489821767399061084717691972137482795873071096579480248761790536556350671779893058184423954190987334293783601912557730133736213551361828292289266860010336059130016723268900154934487884350717654355696554237988604315400585592153699421061267458397184367846651795302787377572327662914076880348458611790938817092726439198740764323819809693349296449254407301086007078640735455514837988040002340281270876351521315345087901277192300217016044936402164470325321666665980047023678986668116612776979168053432618462786847568423700144140704042239485201628263480418151257841965367046346902462668649573355647144084658167940954709002818537820181490944975494948175576685696354164126216411432345602458555766242644056409102003430457756089133124565398106342115138002100516497284767458375671768264808496846717954575381280400181694976837377296945510543868921828473570897371505768925333611924363167218573055132548508741481406689543503701883026699382999359043866711038004297825536072652044168335166964904499690616305151123896998241950650708742212073194991231232817594166385100074831713354734216955386049942576046143048643257723386558549513489770258262432970522152904256799415898923220541966051761459431150664080637974336785428879924732748481318343564060980909453272745446819865066343255317217487513603448586620041039279214069539148375144972190080292219561581771588935500572378017459372175127448976801291518127852929230147403093413407410481101357613266183802834312120447153705400336096789424380271619275159017890320545145203173202787545255697308645315149524461390202720861202844438231844349701881464299335968999849124337720984188965314238698910986249949848582477529073253824365571637413095537359423550291806263220851062622642606518628075800900096096876032445129777368705530381165421656179542164781469787940659268752307034653874344705898019998161484318766970984121174865998241432888492436978037652281045201938712167474062424527944174771922965622351090627579716039373722486633240900300328410745174282844438286040050971001240054140304148178103721415504811402374545266522357598298811669564576932234956119433213085306921731467991163647979069293025417482420062197260992883558303412221348503111469526863856806462032594665841393405715626388026773094979699106425162380135523079548947984270982863841386635994919186742502149609084006191568893099086772280011472515898305362085155800677256018548113348576591018656610912071556047739891965302516683412213518237177169571089746712492567944207458434354253147615332197672076859301823306564452124240099984900633913686238245951797277552887537079377542386244471090386425390891791175488616640748515425751439595584169277937494087617217237039810237928739215154420124596204181743224410123074904207198560270855881843269764216435090669468962135145627400620446124281174645501254721923880373317108053527085780849823800538911006833822312151714995674821801926504145416055179725262656089327968071747324271964730521250625058763466036034950438773044970974801997274428225904374390917705804354187944986740316842740694829016593391409277788284342289713066718784382817588043011024488226377820842815431825451867886441136375988995304058628127055569872407721425419135711038033706852229465844514082855157307017049826099110077044998592627629667967873461056512275424902695275067788017032752760026788388948260988222433844309406626615154049060755095636720101281121130331938832987319099316976060932591671774761263084381160853857698920477933125615678493114613984659793878320316358623266608145476362924845123664956414989456238193267630467006527408275456793608434784463961302544893455288577430477309588621186081881390772831775355975599241251892532718221482446296493133374723407190826171439388840754484670760046743623296383233278075028385648334505590516589022966011634290158958341771857987554569233279288871217127756921470337622929174010581115784051601592508741845247373036373212828170149408922856616802204042786188166281344117609895616311957848720400150576998637866028524860829425329807928454373479862378206814379712969881228569843697025393728231747312622160159756099095783749510897982191450700347206381060092846399793594087690093895726173783216423146163244858544807767612784898952976501249016705126576106960540515163012547651914218707512381485146006397277362117621752437041919862672210511509181115640493823831483278063587874501787164170478775547167952000811612120871582069427795263355706879875870136268210215214775717032565338218131069091562726247151441526577087890927358902109043460963379959631778200018927852737960528197648188502832094225454585546148576025043538857503454199707493356712131772593967744628474292078500641321470464926858390131505566392246989363184842823317015083916110657339746586487072230184653589412574370988426725512405385193807154777951594353266052831106890277046094205021372797774541541299927835133959294481389682016258094126510640740746519067995892551824520385048493916813730592059259806455770808190394697225075908552669045531378576356523150747819795337633176504331762166760072820310992097950791108680768122189203168684976585978580308046696171983280483606312211850000251161261385198459709550595423692632635178001453946263663361659630049002869275466241351148430335688457332852991760303385080207809254032853363541187314119726031390698340009597167882324762696207258990443989020922774644630126709818760468826464163483124906685584009321525198796205896916221574058794332373505009839335961694951548517876437821856650005332406999566368523877612949432692685382352782972381929257418690107784552783715547869165518505925559310017926265866937565411850842045635285133686359136334516013108267228543144078997325787043802416702057419443630948195634508082975323647429091747959566078427823126407474998349237255714998552640456313069184934619208282995632185646684429704106467971828681512822807800927068987856776307637527274202652036580103600763019755399271977109949223191035050432439503969531022200930209455156157251735015389003378616625261813210383030149507274701028571060086864899878093373556252973465289476848755377989538958930776387440807589823364921419996452355800232231324543069844800523709204274482497999378048157078038564613880632696128795947260440642387987113208300202994746926232554030772296015089799528412989279395679059734534895685100069825443771207795620823550214731168006053124225888618593044955630577190233704542916051684871867810273696013834149335637178557107458772314060802872298693734068624374426369925101292864663550938426080898550286170071294942048807183868563866249975989584794047288449327412708482345818333108731924624127221511241775856852668159011196779542023320292282993889226024122533120274294294978625548903104736477258545316534751675410425971142045826887399327864537601780533856947546137536226873325475378661175777891350124163581214502937986874132349491164232070723566043562120401465830564447681796288733695149665151120496392219104581512119362419926836988862843933555957192645473292689391521417002569349195937097331431454095173943311833362032404394794311450479075609136626289725567849956291469557849972054618126541942403134787626901593591678610232685804138941475386517465293539195907746812901647475449322583006588136895173771381288184271679495440795282194597591434651035288838567822024173323326348974787625005819897488088157777524192889124353115496882089053516568746467635380133066891123141224931618198236690122615882183566728538763588074754097761458590755863787115637339781336851972744782548199669304597633707042081851254139438314570269394256202637999992936640909082689028896855329258550331720012573059877228425775627130889003763574489706138233242100081494865553178710989132151879397361103030762774053191918478304074294449679884698721154403319345890854436099334823306329628773381872915115036600731711686526120356100849675579581680548477829257398352997673026425235362093595877650205675014521793823126086975083106951995269915122260320997447732096402106521651312616468739079628396612997094005073071532729836276523379403558188889473226525392221551619300520082885076914562470663190057611200473826412321436713832615396960015505459372840586057776805672140839429874717562155198849926827636585059262750243041832939613062927379928965919866865222703200790065711573265230394277601188513425629546715593740445488123700004969789666671525279570098812685472250993622697363958997813508973384037626145518281224766719526937779173116999882877349377228178590082790502973023694035372993065030049455857015585963210337013043617834239345846813767604214906170453077788572610704913789563807691924893660753364161620450230823277418601342909757936430879847050758788649503665302346770694310699296948029111357026360454833343644033230228145553679158633337699450448657889633882933663602721185566522107570592633121811334263359141163622781431222332193593141796573061396216249795050602038839027726267646406770010271415647168523874519655255430906429140997614668067593227560518207930374433107435532616086007508116178739462144833881192491418711297008904411765541723171496344198639536930988719568736062075758810481467059045959630067126320325257852883560193382769301119815853131246437424829656050138012697612087235360529624734086133265956192076587587019265829753195368433113957736043896879748457453815374178277647870147417691840726888212707765780723064033175948583464467316555288149609644485036366707331107716030004636946602469076551797420757719501389507855160998730753369574877246378742318116750087345989124586654887619844849577990577952101933276214444467569482247192835705156801609133138458425007336272533601226809018178911518764011572526768576218329157393743524971060048834806837927851302154314389282988868775011559387351973336312071641666984938595051784633965766937032938117626302813093313513057874792999352770434357654689385731073130451274560409170826205634489441218568165684315871669033359421064826686511017690532903710388102948491764656964967531924287757773706625075071829814465583411631797397359766418510661814999470026771385563668948548871717535624480391115840911995018787586397779735877538610318242670601020531302114536714055680062010827096999247038761730314190607819559612064360877648303802599178780107915839749547553609903429671376912225765913725499905673714758363934560421474993388313208897857457818937637646201719514280097024126304846229715720276021544740865837078514409950498722192490607291681211127957201849871007694868747974985725909486393974158824576848363526148026576990108919481000646894648737839069818901020241801470074943916437986026147177819548198593089177062290665362951168218607732812189016428435492857397684798074255331414194107255991415042902812894410499907531090530751927001761332407421811088978193460850960185467698751527008356190625359911234293545250132523202581758243929085031008784499805026172789914043328862087468726371077632213938847341480995121597337194600544018669162025407449805356690694502503389897990423134342607840743544139654755498887827256786692558650184276182652411862230007044422462102967294248108259245590292074390451974343912236451616669751775258161567490042238081513952473189187979404461765817941784757854929599566765547147154051850395220616189138511158748563694369356694135646752172408908138959862226205209730990360894623674961442815545797711901447181020892055195051888028666346869263789600223873215277705280862374995551456372987690753904125770829979637999276805267616713330075277298915721356136820855358241182922317258683090534395238495551166927214324137310584001324442524111009141372214065078825599977763639295529301473729810172153052672523192571998785278503200417119039562524256040696150643359204826330724621103408198861697728415678705308790505514267017950057929371423306026564984128599033970166218908833245574700551305319476201428686001791576700690985990017501361411011499807470011201581902555526691841292052168256270123973595501362790330945369911050619051862020779788074144875725777286514371001106267458319494503512937139991560642251951247189711196115399695248603245457448909580522836859342652145855897596799683687941573847437092512171974808546144621546590022344264349111451790397922207934605276149075722611592862279610831407927231267230883578240199702239024104864987604039483360961658978906155225048006498186002602044639376331564499754150770466136448796517840705881389658705365888235085376008078429839379636151458986914784307743185307568672916823382289834988977521792535644232545061253986532060686188957024956227896764513777568561159539486030015042607720967803360771875714996921169854934481389821965515215953847654934284993909942372901104769340706789377306870346905725178060532608782595897485154629915789895557284014389181453887542194808614629295792217904284723251086460579339275644034536563809723504263733437594299540178822173096727329722337554601736074965795711294587679561212899175152094447044614644229348646499238116827442804945068183794221712137829131496071481868555625966954802574111912306043405389615863973916836498505537453380599708131962735941329803934128997898224878705779383031668318100139054186486986824533352989881119201732406167487869439373726622480228861068323486511715932318990299095501012682840037172164019368326374266419242944351717272168996744983143267209362069270485017440849156173685067147525992160428530739007448099315054756698514178090267843430499239904242882554062168236272645951695944128637227556860815038169645178767384452966339988460345100996706630964478994923151025548676171781584177073859567078984566999356567762571729348807186509034025096375422405947575910647713055495544314798727339148273807235730018821083815604445703566457023052220149051395516004076901859242773757870058809460911684924022238614792678610437582254908987350815167255000268230253246933134476758662650067064800995551510390384886046992355852494816956620297293000228213211489212949413907370248806946641547745686899232902437888926925423708684096980579791532262907051630452946387114877927656482788275976651788368978389798410518924043030351646776697393549468077351222488001668530383654926664805177105191097644315699684592291168955831142667687499621450937327370896841031055692101244839632374920455390324271190080187884173900396078657445513491934430564633249907060903320315487937553924309340130294101393948236072840368345561725840354665424336300466627860910059262703795879381000269158539991897459111514922936532608404331208109651794600196507944711144760010351933717789531218999059412922762821002572854908710126128650495246813409616831079515102409240194806520178509622681205718486388441123731573146984469646104401044124919363050948787059206024405887797973925444796809189344133861453348722625619841205939880534742160467293630870545005826822986248616961685747566665572985988773785489737802390000633728371232345499376800488277630795899157233688675130749630512092451285090408715782984437729946885860859569197622415307151194635033005965996943273707991682330429200789901794230856885298691462922769468202857727686545047644795860304268430344891110229288506692499023951943914706248934117490656274999104328235144004846130628231865675620364213096070844511034970592570365414045615950015839078022868016182199672220507645007790965292913968100998598104201880960302046367493233299283967083735518504552887540419621640268532505612270341456879035182522721886833062286186430899874746135336186786696176157781163238849198144603501809107304162412939428310329366809729584220397279778257113948192608877002539061613324791683417572142586800089585822124463810159539874273787365869340464097656312828955171211792991302649176978476038634504455259063949686155378202843013993302228948094284676895935670727933385164366285631747400801700178276328778083038018768509228886585097308844383877044821992068813128171689873932947907984859275946477595306041331245519283709157105598125654629027092083302089198771530611840799231457745197508446672205371321107897208144571688518602452251725668362896310962939946714494653012403915685441369803304872972437395542342222384364431915578038008628555762602582044556067094233650340992191516446459967089917099767347644118502093800385552002592595235862049614983822947754667370093689726468365688591124769117154615212968056115747118632862891727651332177158482369648800529843314339974997562088970352421431697624204077251666258206773007064253736948690583324015917197869917564100115356291803368800047537805419119640306559411580968689215994550248626239136947983712954103465678514044058534339189543691732812303145144844392796985328632982876518907648686900683265369304153095785850374223537052058676106589534159206121240031684845098450518302611192955348193667676089572877548074296276812688208807902162118598585739854963335125136829136767584842681567777310777612066042326349987561091364426233713028870287983962358416553345878958114435835065425424033859770130180454211317496762200308163872243365783502099219076989981395467553608840659477634518280378667926849635255413243051258857052936779189371607508108370979683670396340843457739450891548032782705993229637850247907891250707330406882159256521522496366781312066437000659921778489361317421928763908093260894666531634785345870286005037087220056462426538639743451833317733260590924753057929279674202730299075588299184888854274960418599630927380817417762058508012341609169860878370538287027813457878334410986089256119400226375186099548071552441912407139854756980328197602251002167035408593573203041786131351092351387978215895528797451521379409049437331706242604751303570576898972423199228084410655545451375617671434997851775042381677902272196588493460845021562497745344068924569941630006215169500401355673663826871514427618362069100899743191843793625981441695137234434915934937792399055506485342258163817988204859418737556890743423430993114171188433395768776619757632650717977564249666644281837477046849180645080738326861759559549344559330702225906576776728702123705860705912297592162824969029647742913411004275888113953160339027451504083391902416133233296513727282385128602557870747795839936343318013459261347943191501945139647105221770318527201668905313912134088600575997832927681326098335353624637962823470718095238800486466023724280790283435848927044617024337918419277665329577620793057172429584884262979903939237176970058725455816831694480023031190271756336404703114876349194685007528513995003227623617440442038699795790359509658983009749434496956394655835690043201798718892869929699548339454321917621211464836133289643805663676165614090823894720678565767854577610806667459426301114089111403032653028979471575157098222751735897020881660484026937617162399394662453807752305039439021907926666389306972016811286224624274832992163584574447046408358022293788244106014801261985173406938675592171373682561441270926828356293503185834974552803066331342887999744819495667760453592476005832182366878360740173832354782040515493051561218618591852318002159521364994492826651787507377937428121924319470723748628423730046502209044482389866816776263233173046503618407853244592963196214599644490758807389336448667180427934502962054523389682260447654302635407262448327170833506393948064502196187313783340889218571681293984534292013664816775292562642576840928324434094825519643708880381091686681580507136451945517133632973234505105179786688454349787660703507508137329261551617350233133972731700086616871118114406170714519937428920244420542056150207481106432220280709340134323635526269345223823506114154477158892809584038367708149544946705023492352191342553529133255544370942501850705385316164205108621022346825884295755584279506721248777142636066892049614049649899037882152970558129525467740106291088737849701716112006755538021471239113081277786607069124324055920631212459132006337789028214900001453589195575382485471707828554894212884765118655601990494214084090825938551601385688512213220706670296605648117656511515848076066433840743786376934930358301887607241345376798971667398047934142243365316304317947194076482123461664762025168148828522733852852263196267973935690265506794326527683649785431653727079896096260501973664144547556619488735079035049006915460372936769604988038162457990462061613286547317230017886216992291700788269164085144101881259358799526971942017992219249752925908156394573203349473317436463912162387543374133411012734581575413628068508621213948231511444468244303961719359668866105245798865723472619549850377362779689470811835552971367586391883853515093224458017988915551388706408346085415697800337677093111683047035362913150536126093020358435578991218323506538246223709714870610111644064349054464952451526442437239509183646328160602497321847567294008923447513087413139820295806511841326251268300532924963254139384037730313077492050851336346143747830826702829315929385877069307241484030253697172845642128016132516882691845333920760496185751970610227410313435599307178556144884079899535079529268192379023668167008659912109617278136120447594100626389016180026468683472308439343736290433475590577249318566403875118448645581853122278429577246091705725837407901227861546068251218621073821388688259303776831526917577047731401710366689838530804131742100862411308811496335532135028660003486105179147497356291050511799165489251733890825249617217442157206332402888825942925397191750123295526808664664108700863732460366806993386033260273741166824422924411945575725454426214436637938771545333740868329477622402804579320921198002633671191987029704012328604411306738252949829282808571737987511356917086650054250830415070487593303746977554543038246312668088857653181546057342009546478769549094635279116668135823033630249580998926718841233392075645106377466687438795439998363774886967766935560781093996151288194299029401359277934570846919763996356580999944887363393917204312495602504285583490683379144172810501472226096906822455975912635699500710757742317104646466976121469013843639908048331355151922465704810717263886029263038037711982847261809646671193924627264363101331038474774344913062050112791924748310043304880853834279826915133995063924866315877680969519360126923505845646298464617465394196761600514156351644766252751352173327175148620321261243734687647234068019591532428365209253657989440449047880198360341224219553205722636795941023660357455579559497217731817592532790384921655324414475453369723210730699788123172834698560833457778514073431823081623678323865842156607581124975477646699121309218195059801492094965737439667081358566858928974536468446646398259667471565549354369474144892936533591948361776500377253290112775613979687261460605138732910588525165238975464059085148949244173534731403280929080198028338093792613271419487648626479968846005436710565247175183655839355984006543865422764599805811232221874433593936115909104871197750822039635386620517678065126341657720726147076804427904550065958692541861787114434334220223169911730411307185348717048258406495916961890561460052416717594478413422964794038958933519740184868528270085794657767701419278907450677398551627163007742679960765914175574324723100864840582275818948114689363839258111445772989121751296320250710420114794574248796418321145400923608020024030773718991967937403635744292333007857150239116451034757511311977596849960467371149426536254803111785483564612399067352114889165117516376765479208527016053000613343822791598411683448331698804147747194507041064703068392924446050130117105326749912842971531536808335598223576037642007171724097403297796660246894614352333751009529415985976642366270858539476101596618200540437448929446447423839509495690602721709305289708157089035169280374548087908373230719205012437724996523739880725004621047630703327528871774047140387179055406300330619901352250929285496208213938056873684022526767365389747015364030865339118210962182089157629116150691307490401868357523047058217622090493532491093088878920085413611178410685764691868909138542995135808443892109898437149967836407619249654014830293642429163276827050131159165009720964194479180577301047137697191776660244830078560361189341515172250689860949028875349611064487384428171638105603166349138487203722439968941676880272701967803762990136642572217771274724909346434481127908357300075658136848213741301610564341172799605869032720059527290605393776689116413638989613991830263259979926388485620806549185070310981053878342526973518134111601412995239144025074751839559286402425979511703948187242395409508958289823878327317896956098522757353700878715735082447321967715411699537382326619285124536310361309817925823931409470302124368363080416047300602342050022150798806190167017978382012199934363536703929756477227307569953703517935876080916258360558125036201492305035753301393490688724258502339556502667951963970688173208153910455676884427267916864168733131794491389747159843528505986802890127720916747694835912903945047254497636722161929979505597112332094334906220731841715890539225586099149989697904403866821618078762622783732424171689382425770939556686164606410990155244486765654847112241680752860576065180204279736201566726049884803855519943469858636432028005658750501411160176130172251600618090336434196990894717180711876794384491415853850911906277149451118956945963216960199588663377585810157267719278809263249348503542814416218519919859031744886590484192600358982095061810943395677024806223625343656646146609382739354557354055838274213138337359381862835579364435190889705226341220701910597402142634041731370050368398576065447830933601890581768698628380787534717425509614105340971110747142306737501141593823273212205303799049526581898051596822763586988197663963750350275500173682274039445358702577302781091969497269514527602663977615814324521547299258718799368254974498225437796084510528653928036653532505226614053479796894279801262765377751792404232309328516869678114582352558183647342196377540782069365576449793351194303138012982573266439456634062119163719139980204640995438712247341107372523672970658570205267847506767777380936649998834530685093496587759041602728536203832119698301033994206005707406519620965557437887591123264676891535895936060183187138662805474913651552969888142342998337869308222394919080939092472800805970157095553193434560291750071665128503545601685941733026079244290666809151818400830103444058721691969684482432900905218414046944142882560766109630469989994288570202766325444094987294355125863705094294616263200506389129148625693683424642769422870699357027532478019801869292111386770188992533334905510010532499975506952972937492102609413127840596879980898270800983705467380803245973694388990544245133347363264461071579144993284871151036093676139751054384553420942165294364982426646373094478927065244116977890539602499702580225105578304228468297821219680790660708870378601051461990480618282225650303360161518943105762438520132981790864191955349802963919424238541207543967589463528572863275569068718477908444225636444183028968495653285465580253846566260105502565016953570233358463239843236940031000846457550194716063680221215360562520711415533143374916120689697582447184534190625737785108165197182451195739857267089680522313039041996027118982413066423071345065038418345776856334091512144080034771759230107973767194787512471870906892388790633018360318999379473096568178647151046303012838564486229179067022481109392739813664849701871108286021806336432505969527035863769763171522029112778735370966239785357652368726661452055717078130848179876590237378204449411943475512263968588821182044585572667275172819139477656862543669752263364044425074725753008071908904539464228114448834389664494150684274606692926083326328698355559774551982780550690935788707685439484742061283396478143199097609985839517782564214069399361243251339093558364597327726808128716399970534727044856786102979292302428008384089845347274693146186518188464986555062954101896025605179509214763359690745935519323609951503381476588622818423856016444538320280207904113254134516525441753491751197891743750876444804533898373901167457056510150722120396193695695173897321374700964125576503268735560397701213244346226572855257841907901838816797518754330565491178322516432461945771492357583082948969842826042934560786399558863371162595657002686414031710535359772996016469307934076160319380467356779811945810692735720962655068363824181732633388823563754184793213036277488199428711785773771245040645023625498285347402293627857608409532045249743933745464639220371142729361782946356085731451113464130035829069229207573644305577350739613325707937072069535097792049444403053409237379066256930600630186474308193389356185441619921421291175255952119919466589157384827617840172529000457885699583120559332653975686529250180027366189254649466575886900637547597535555531869853612935688615555573183631565190461276664072197963795660525967580976897049896060001779682463712617465840128955498493083159330362616382839174490785107115437374216216805680100209808475241229822047262551037763715977622325770128100772341885311769085202038502775511035231408938424912739951844967607617826338427010455391244629163847919577855245568226468071630095425162480462636338412068230484706254725218496868744550888816946549998118464365192034443916619248203615444280463917916246388714671527554312870050743419801290894484193257525380035885911699207706979167343029282522917494606649820225019268791040162321223371640502140592903703333610080194752482184438982287709275246027234510114783618776204376972054439157155665851798535298741832457965346230582760180838786377082527132281519904817935395952711682676539147513101705965258905077493313271090140142998935161472234229297297444918253224713838572286497413614740059495206847115537915493254589157368734503200142059562011137059964526596830327271348164748391981151447704276959067166952152334717594089052283071147007786439278201118202084359893621899943684657259495889771108101844860764487021028643614049457202580078089624793732612041568841132798849332804502943193779626461768654307692493239838593676789202382902852826978000936963752153314185177068241904610372585708523205956661505169852681831479648477242807737953815713776710309063432222823009995804879714196845646226457970458041991857370746306102729248032944423295424810628916648121949323498469879802908344320848507049463219886392076935274691444814810198280823809029043597168790968066429584757941996943631082053014938153323347461276087233892987935145565585777789693122940827676875683676418808613323222253856671463391053921082904701823346413260068444023139005678377750420137158199770334403484622216778796834514354452800492123397677351560522693070575217510436923484122203731414508570001606001877360324541748142100654932363892574381468209242722623752984502940149999990597194038837563031228437454491172181403605372813998863758381645387835252216514692000867577304489949737502402091726196962817156870655133184343577524257586915491162842559713627848441395802444658170789705900816583299117873948780959603406133875084977178264633737896005730103283012855528051527515200047475496810486117737712613453384577173701968652487499418272559483885312839385075096044133918840857666402709692237974962314925303032377598393740225026130698615714053404863696076618382666462436790194781730196290790834122065062845906649066469259900485797693831241426850522741001081788971021438494031868398138597204743956289781625633277832722230156823136878226886105352599695404455880822419721937146498002690702725872962129787386056038537277153695463041613769550241489194256240519572051420685978062113315852115720542513358262658744584790687529948965336737070532862095855747426768103645638604846840000536672765765586206076751178232778770247188422614020402408625822673126484849642500167157291778550503571631443388220907818960122462044051963657574739745966508100244690716203762637047848809314537583323222377908368364222191456136293417298603104111905557979749438451422601671229148667374148454284423549515672403224966001045505557660357672325911665911605987479300472011046601653334747353668658435306772548430380336805850135497993193987887605164869268268050113302580597732724988690342158434798151049229608678997960384641034238998487085946419690104136367588145098890044133033089091575815624774175465035559362520749050054961256001495398591484700455962468125348432712100091190961689896699234528692088299456094718824909229377321825787179544496801942497590283723089976039809918957402446258096121356848298379622650144853922693785142959306395469166470626840789533149553840798417987735474035533646280739887760493196714565432817182730266686653371093301573633977484809997672518909409874241170179621559793558146347407127162705499560916841113331507544792881287802035413795466464066482481731021557016434183456873110151978126573204253191593283194528088824702946291172540285218253131304284580777519924192426602654181324803133000298904818466526767066371311251883963603532751637426147027756991516301515788874296703470652907551267331540011926529429168850814452975213606426632980972361991359773353455854709367208365338926116784678714760722236322873398355625700519977726767815746932872539821093177158905606051653618713671315645530018487691930688136844218468676904118987388870135403753718935495419417958440771565435944286260834683844017648675975186320762360390816561231315480004668164458453473197095945466161024846947254696517749505946696414341780186050846356768479612445501991923794657649511774535534031559176070204361026425209793950468269593883526033867846414410534182839412437185424246870868968779607975195526033646317251264364947736807489303101737993465530463616112132216733754142830584936321579097228842648716539598447629762556987138115070576202329332780618094413227980868375673091389934419297554291182361001115399221244133910791139336486279393905139112090217135568482085612569533847435430207400898981906844726345180481691397125203406223888950877482780489987164069331725726524503606540433371467124081653358306244760251803667312558451344679715492326203334227216871510530990654518387675944478699406142989469261591105653601547164811546333995108852135788136891056426751225688565605975342790910074675805087145840200497733036892933339857949236594948962123475377723711828772317289646208670756377954443645929791548408878856798193982103549247066849910266268202322301566326427507783098389634076511936883235757176607859102961229696327774730144377460556268439622537476162330990580407361085177687394885848254407216475173804818605661174478525199867300862040912301398622071028454978758535250657058889147936297335875650479108787105796675624747593468157809648875764483861387574587863524942826954572759744269360681110221097789338723638628618413300088495278786500963581099836029894595845005282222314750786185228009613092095339345815650570455819326950640501141860310489870572885760056035148308813291504639064591045957624890456218802398622953994073996984021343670668241879727875491518895758529902793481434177698598241527239227276044489210459563232974367882942385177816848634549422728695662734526143157970080665817661356798991338070365456095694309791632201260197934126472298959444975536572875780507952359223152143423556836553981454374374795471624354101190504442463153015043082631000724026206643678164490151757616040736688287909246085458561790569237374463714697655987317640230060881739717480453869771796293765766329891933315727559984497934559033952325920006078667299974553601702509155651548020219590337691423798732235015760796011991000671300930725309520021242649159099856676024468996756144829171738659430384817376580466264881515743627182678065230069196041762995478099353680785022576007619618104408931026664997922288034617545892931993529770854319871207359632771755148030435616344342331012179210606244005703591258605874059473149462794887450158469651107664471094695961898198981480865553244134709483238664424680110435958185829588488369200801270869461961506736193214985411611882508818978731261574755606036605327289819858204480019358400623248939326728260360359543899118009030730773866030381051714710860699751096845010914715420307077264324811507529169094598428977057598355492339808237414726145980528321782456831836933119344095046960828590654192316911512804259278045462645105230322171003749999757741668003088424231726564098722871627900565079398159911417059642278084530223589381004505224692849502114667507555284408859943432934518909290030326083718266250683210676786705151058977173272238598928211032374879650092566008090206571334833189120206906396324735767189128505700735856639384790748215799941276370896833945762791650050483293551100227856221675609074385946003696162996856984198784894415203806363793348105253957602794866087529091799497496687918308591904829487960659293358403354200517562212819770967689669424244291559969717248079231489014340752757997334760475360983444095645009460831755805691228313044729810129265228922903679722811319595992539667392076489490283451952647611780555514285269940033307143714109503430173084568118392273447631422100861977660157398737015293648478942157792261487691077465949015342691493723297725082938194407372782712725840828397583972585437804228820778797043138041744296426220402172972943860893886159691183078171826434304333038982206377764900815866910650898584392681770760023145899607307210949154591047667947008428707747296484412818376429695801131419290277507533383960399185082659922624414667719170262588966568107511883121819674369179665729516591269128979627462755167187227192035908125923334176201011005478275282881325467984909404416184797626107727199933916395246514487861143925153823933096104158420063433716936289135827194885788623281680035034660075268039020341908168848410351774496062242835423200534362754003179187928875396347875571638303535020291027863065986530717696790817852980114305424280459898889148555751785435455163543233373356610775643262287026553306020142085647403690390695903418782150386498249637560261991233834419787679588239034234330168861632529313254438935520650721547359899801742230660694837328692994256935882396713577939946801024960428665273205104797632491848720324157845579844430939188897206674292567678598044209518119340204507128933266224612415158520689981842820284143413496171276841331363841291027977445163480631035213561642103515401886009925257426618736479287684328065587470500979672263352165914289439496384997123798704539227122890290047110917871032018582171784504050021826478024921213967884605310665702278954083216042131215768982542811405510809914150067186232263092828821021173051089835353088938468989368060416247328650798108015133075846332664161101315267984130123606090290269934541947907943393443140407465776142766382240651513774270137018351887603744164161613697007612730550159942106421533901670956271372632159393220807846645014332307850120224417877762685760901585445257881481411667275308246714996798053455471023373536056035843787214019336279867692860685786906809503285776115598514322073563106477606614866475649579828918815570337060787393006922119770046343167664656174953919467813639470371681293691441196081176322829550043694789051962346565944638953223341317180039109318955027286211605966556532872900478608109303702419314178000687102074046692116421696005600638137164677938807766854295875121195859283207416728008143118800442772206702079270568013727340291303430093193549027254508509389229102431502079404423725767584567273855447793012569002775816380161927560575207058342882985160995702328241823702446859425413101907050459970031677934070416321888470950384553424030472168262713739548114281009719042411847339087576999938049030070120281471362820960002273591634794337105014673933947983723901340265572658604782437513514471206841019054911204668334042041957793236204822323367495838099880749850292818500980363001402276239652961109000356764502822884213762235364823372451796564633109017036905432991085675707862782646688011739894896184700986558961788605959260545653276142101680658526034621949586378342417619986170643767208927336499928011819865315345538582714786251898477496178607159252362169155220418548990337208301974869609599277170538186499648674130750726590284972603158710816298844581232257735522893224595378007872329377482009950321074355775357471716489560731362443475458256481553614442052499570994707463544449619604446214086126981883640316294816561104382983290314502042781496263409368918074601456200498661034348022618074682034449064577919637900892256713552719906018786038183400340390025020064170015220896193214024838132765598662812997740574969872425540811857163581601546453693876385274297991262127848035724532436344451165778557095873170264153549783369439500091150225942217380665508767392892857809686207155306725426417846827665263210906952593567870204322114668129663018211984728393974482656663356438023826819809555151166077224021568953402462328511136640542744593964844592590251157092229857808112155554873915173534450295707240800706719307125905336045554989343367665872377308765148450720451570999173624530496592622376192092758618382668692497001553980182169400188617621327290548306341452171400651105709347813741089521173063839552637860105696140496868231949234241845187802834904115744197048379301157460120569260615911644162800134858354475305571820982825058699977382105001340548809397329533018129401922833030467827199890104533088820988918800546492719778724864533982251059945521182591276944835508526981989221935671512652443703990453764449373785188326461172272503131311938521385883686817885701781907227706912369101931823463711580012767905815771568853254119899302896847207502122732365202389541028289734555213008820360383732145952134272166293271649720863046045098256696374111158611164053742010172771320596046962051105767204771278658575211357287410749009272241483179280444605271267582574586834583037892218430416413771930306516044477855293293992334574240040884696460336197139923209845613379652314566703237455055907944973379001896287809635103731003011367270778201677567413016515080087834423067423382941080500794320468224910049132033375217232937644627130486824526886904287031739554508364095313103207572311419145043377866146678690122517632708321229916644799636186458114511840729853299651966030737806635786997247913582952050472851624060392042707708647027930947871149289186111610071986654856275764084301434029238313347593557335057431824886636055759908019342531114077996231364464547650164866384375416294570159847507911291500561774424905554375460399612824756185635840120534284945137383365334587108895391527439272948280805062136427989013223948083455641534315573361958627679304179310361717357710395988041392921738525622586249324406689423267531498652850006254167295864752596790789030088034560755634631005554881376702665801444773784943354481816459806557133326943496094540233670504418780356631021005145411459518232592750916194915818581469072709928585054872493731847517740962080444175317922814725285430161114977239967905109013256926136590572244735076525865680119424136935318292765130786334174694165724882581060578127829093903782111508920240974013229204921642848426134209508653375284363547092753366544182061199206876907240113661201232004224941097330647738392823736002769855662446848673290272469038511308454248706011294085127581372728655767441657217372955057931148805133127683525172463543709051396410704348224261083961941568195766835535939544612041219915790758656240038902323093354412791023885290398129892103934177663984260816656606076357834846288597615188806617171877952501364280045120260903474358463375863433271406562301001658850637678212982295218378871671543614733193582941605097040416562202564156299871512486121679196390700020822636493949261387762633568878790094522449732762442246569911509590116803357809070701332625234381795065804652694465357459624478540983395926762387460500483686526417797323701829378236175173869148290740596546237008041613295054764083407540023327278441919809000649014170059162555526022003241010876469202997364971412166497250846396268933408271920466934914995140123969920315778020080377668865019359705925421419914655519159525565051020711541970440743309672943467063185224928277800172635524029329642264392928376399796552691461440026951964949173619434570617432755334511777935013646428120587235602896922374685127045892708040567289999217799380965071604823130014080683712816976544860309299829941911947771006979145788639725729216282033093140312974039124970032511468546507240127899257691144330955594604951483216231432550257080530447005960742567088810569885658970212503211799866008174102778611695583388518973237123583234167463356519367115241062363751754867758280657757363966241581918544257575172458035299681871147625807491291348920999074703156526000248878728447762454959931277536323369659970961779490243355586389926342245446822252098895187016968136052132237561455972556931237099843009003581091130623883040484380778626330270117407104278602237341167200559552651118217076751209128325978808578053344817257378954542091006310666548820417551519550395204692736555096290031271787757605018473290933851915013225789296306819034540481167070717741410106615989419088445187749155973024901597223645115877968630177330255815998369154943295765319329055149444072734718402500617336645786500844105966073406555318576296909822314278075152731768252117787896642008828968950864393730977068795344324370736330620151718518947363359356297797686508654338867500502780250844856533426619099034119891745265378368058967763431145196608420677228151991694498918996552664674690117986538344116291508720719308320136542126084595935744206457668925381057495532488294173411133301488949447701547542396099880828101609478410658390482707222221153885421367045518048851218359291562232530019834596183297507256365295939948359611494172122526480142752078938362648207205786148867346815788420518657492492927259389508918461091647476873274898859988339126924979878845624122710079167778995991285811927902292685069677035756622365787819288651723586561676429547651554232542294396995214612269268788769507710118678455384041387029022218971501791797415021568030911807242055477454228068555091375339512674737330660845523597476926199823553514290657606964850342859989065042273273282344459445095688674303553760480738822938712604933304937896172734502383954184887437225942518897062289357721220638496879564021951287657792627910769242681197757553102628813169714174328087378278065403274701801837000311850326682826946519728718897908533432696026134095732515554356198262068417875362631291662327428491906665545321061818837941940338155613660893956971381420453979788466999245219012270767174013339691005300577254082417939577327507243341092219435556204876498144531467458509239572552890594544607905948858067701283321189849255577963542167007861738290075833271068095127213424594105272593257286407578915351393148279681945178988569681786142142689125007144511738417160997420999438320586952319371477361568237366846121640083930244069195288222499653450519093213653717853094232965880744518903022949146661896708135703492026906783898297144462562573723925063262715931457523728885576589375545532037932044752887092007454618299073555680646853508337673560042713114877616745598254458058254736929541245080318349476319664501807040360236361241742441987434150214550442231096890944005302984619223537717489407382186058401941214571329219618887076088682708046429847436859964206727156294634815136925917428100247236063277267984399116715910972027732281180212231946234618254571151184974454663399940968944880117476535366647215311915656669055358221954223954844647835847290209257799478413160644182542374091844409678757947754805071229429044720451757252720684244720057498444391027793675251568820294338099419494518248596203332076246802597491863475272234558824483263491812332833339918534033347746842791242319193567957485642995753876704267930887570960397466914665459776562203957911305409809611007598347875849718527410381360496590740392029617355272324730332921205160925672178850872116620410767360350885168954121647520851047022523573274094185811927976528554977588900469931682348108627178501360252585216790033162623567234878626465377646330504345428916958053952234933870939512693199591832114944198707927587631053205371374858077374873947009630959730183977414346951109471981502744132591643544409172082925601975143577663177381826102011502238366233808833248366202799151012787049028398177957566161213584234486271211470719486761310820259727238051228569457148614581018981335291450475319515383783382832038996538349895384038220354993685463138666159630235800066028091380359279700305169379172187835079820435788657401104042420841839941804374047723360781138700474933375950689356888568686310385482913958036612903252099679720417953519303733521437363649461190379375345242734194618262118863207380924118875285956564068424526966658274012316325037685804893520076381763036107171609118218008602159564364321390544528212179926347582715827342911943917122511196788085094339398886489195280806346812821518111660515479583683082654855591110763734660546470717091242717427657358035938220888539075155511391082726149113226952398342648894649014395179421578290915230912018315591473676065466344235643088156892493236172630990683125717989822358605449395698698293262022352861330025058727234559970158423085474232405910984021932677925692548762627617175522461186305837559661540107771606774652116357885353180615806876030446598188669084313837231035879271033037075127258264288316874965163682825480373443090483596870560851161054451971960357678082396987115177446254010973678999674281134576825507386529048325826304996123690647522967388456574874386317755557053186703880083049667644234872133869443140203845362321584753570131468663876286105784139115032077542197878538231744382255630794616237851600090474278733219673123543000351786432673545263056405760108667318344341236549473229362226016554530677131265275415371675313397094648695917700774065496689799761281573573132269348582521226941344987145648400495912514022026521899712189377056256347958706495476284133035780973793484136812028621617919801700887034698763300007356582294546598370447306388752810559265866672733190232714913386817614683251658792527579498197156146386597909785303966527682519236112470401395302285948710903109102408974422167532518223193614506767325328340034414793531521993240588514876694376194062594413238728929901348270473590410589000645031429779029226769192061058326102404755518281685520085434023824377888667978332491238729728569714552982932984180163244441313368561555697956011687181350702557434663152082699291095090538009403131285105440644382194613723769982749018784808599694107674267067263522795946725572113455697325111743707465650164631089946085496417302051929196682820832393893960684728447673055131552689252383286409929117003117481034581847020173730621367305578053247401452222288446139482135562831481778477666398290929436418656252444114091595983076424814671105118535963322875590396396074158740917229573221745238343518931816213396564681021298636407290363468451754327464819624364785398587741525075307452655931993226186086461081968717799430582541097572916154468180717393648467164581427917544559901137734480986309400186602072375244347802075851683626481080217436762543716412510936722251415197266846938488477216933600396639207630139793162313777569163549234023883335881692878916065848080369717129572221691078347106346311015305129991426220517097520582721017509814801616520265256249170435217975131939811273743881492270816790663714802536977848115993797922506671054807327734458775485005193825040324465690410933370758989828327761022700459450349870822289083174376102666723253551688226946244014993274314925485629479070080272127426034590568780891444761475275928111016980669101967839224853906725311063564415981062760461868905580184069282315916959172239823582206496460124757105057147741675670399609036205169232567254783802346902141061137509991285400549429836087556517141082693576199287068317713535801853334555474175664260468639999284934628789104577239534661018034614113323792638450672566001711004884326846555779892982436762874856850914059146870658402902278876019006523727178319280532150779883391261772975875604404354569205136927633076167209688645953551293298474998661652892477305568327266204010577398435557577181651954248347399148533974400585586627549107282943378180501145432695615883459841953684035197220038652668586642890451327776813859573363074140261589870812362243991101094199608121770515194841460911112992079101787878454275524953212812688511137766613223524030337900096686313397428812143681101518999595998459939751671857595266959717504587795349795015343764511981061963569727042970341382791177539654961854652479200080320784558544880560154058019674058876262008536980461923856904859707636904285903921586941614081176651118091101314157196038077441700115078854518840942435269311441907513101690967650109466606470467460038090162343108388232262707257406939156571067696701039841144571938505433253319877872467310449079239599233445356578884051445154515381806971734666354598111540972967817694881874761382425073922804580310968139834586204523581048931933974971505037288535144413146482057567716075884979887189745561085585413452700867093835563311340379424046518655376596857317256639632853329813854650637747275360116504675595538352525321778864505498327249622216853698847359778318183327968116511621028205368226520287059037736331538981807234038735957365902324252948042713185645243372744551363051486896329229587382302852208120192439713282908768017039331650035862338116158045962473237420832816479020391957366747642927810038934949034567335036287707813838611180234832694356007870239547703236673087547495354391170405345830081003459221128629970530417885352446022098303738148450618346242310892878333448807072014098656772431953399432856554148402892061165241738770358582987987429149017973768446300492950070415272407195268802542758929503978372769298259233864391954028935670386169222443680195094787391162284072519463885849278765790748326533533065766991965295078425109070851262735158295275248744497770756247602194408873596729879998381574407486522884972792124933560814030931041777551689868522106639695970996628038224200127995866047781607715860308566271007071736779794212631023958557096213233272382863613321314897173572062579526124170475130995269798610045767193522869613920886182740419879711003412902394165587371800820229880216183923240423481587410466828350757007790190537067374143585608946449374177962670026607646623798092955240689205496495596669536937240469481642261084962049157699234597429382834451058269956142275547267671531194736871154174320801901965141966307021355609579909151430359845327082419181785750640223853076624308649145704833107694862486646305463639909022253605514883059359969529162391625099713942946774026732957546254903139453941768371202261436169591976747185792901977468304154062421038764538596101721237624405169727293502983830839077529776356550757441053251395932631199332521555087164898340642031454648559333050605922231108769296114134303220593786836376542640331478824670586079572395282915008605265676383296600859191650227628372814891623323914914816847425396757696068203317865436893675604310555435511327926720965813469798950053406533093536871589964790343163429187426457187238468065142016475101299999908029814014377199373582133188255579415635278163531654353336895541024495374164548136276860074350356460076396941445723953002165485481169486623835969661440061971260183348575013725770667592715724239312160905712602184239605878684210664371411889676017373878519500112406346388016152544384202623077227851132636243218673592027273021937847865268776262565977605107270943453259032438210902049315697502133867106418420804613872502485832312485052846611269074749564512971285594357259412954987668420842189076432588304507727996531693636981024761263860372163901810787589248036165213386790137718711116707278524384252192462140680393891896972813335760962018079797488380762863190681683355865613962291016666267447524572755383244546982438067080130082669612309692241917490302596127309594310803223329194212305147658631270296988628235733104264115536385552557236691694063917570604059701273643485798040977756535534277285740612917618231551067137909042927846703976720975552866571453610018943693530040061046750778709355015285378867192326155033593614446774044339199506934865314549412613141341869047725909864707256399036743326637790068982282429534671778593425767477277733283579549283221059733575849622701757563451347592499603140774860261520941770400312170128019413069189198604808508416862168904144303147999462069977060303165969789141909948857430512960317238553401668320941830622306047068339031821321050591434695865744087261709795712299063193790269261984387490601066617482582296005973765626225974372331227815354939075026385141218368130275528474623364915830726219524513321073810921826464506519242458832177108580932694445964121628303040223960960636936028338538265132107266080884540597723671365439200140268028644953713370033590682066720372889116043207592588863656850831761342809010980819631649572491577120863259837891767453729368674714899904790504750832683355932606745376780783494085377791313649678894537071104335331851575598769970341590369969445715581004324747698924479470384718562146957655286145266687932754475456705651635854260969709127829059092319922423155984448942149138106352778545019273218983518545132591648129517251283030803829592056926801267136609908187271330882046263730683340806320015515914194501427927157761914469847033906783758202614374615426263672735364090470518216841246567102857492160963052114334063363630737233146834873268053365050049421313106688005937186031141002870088169990093947865798925963766774433541037601700882236433923194408070752033376405524742764376510747155101324407744843199050189434532867758696362651412808257477422281282103177008556019007410553752735096522460131642469658910427075705717789667451572731622611645919878692064222458684503994357953262993754051518795349699678610729007685171835077664463900773227977132300699828085303375278119687167544109980416041411780211411589033984824014356150839560025611826267859322608053844523683327549289981947598405383288289413916539299559328178626205294442346833014041427586135019059476155778664313301086422304388427178815046338520429375600739181686346621000804762146336647433368872478302614867955798630224689420931645046051002100363896072948556485139931089262613611692521016627164609142661112329476970349916777154101225862819585484756195967132193298611814590078905087455092208279551354919337379631164844128281296435411561031577419487432184761349655840406345931907496884344842277577890426139569489045991295258322713975713735761602702224668297627402525252623084769360498274031759580031606900196129983155897188546691139668530776437828743617862002788374170320059446029699442778221670499135779016877903708946931142344000845379798571384342111411163911854349706855919110980402749085566927796155871689102175268740650644843952572310717892770324884266156311107852151646633665694280516041242403948840132296635097596042304185243408841360177986828382958949870516302646156884243202222357951134454557859424776019901574489793726109420498426440680400054083664233312356825106553131707757915619652063460031153621559088880322926201229413052595085661246148316875390172599587404121976832405556179418060130759926469116290154653573878054844468925896739926425553126102285430290105023256488733661529662227592707656651632401669882155058557981717645820074848942583631992488930877134132985337656699553903218585593979880212229511765801876763472751736686833678364598344686402053447320128540756738453028870021762509186049430498783803504086708376720555647190993950118271909377210821858227879788468901362061520452414025608744243540656756291820499225485052074660363722176068934426727501503860000993018758089671271117309014791625559566092947668512377887864347435755651440417964153841595295033116772739417725333027939778598281511303434421241676296020064975280653531645282388886465433225291198497094433242040252336992521448184555512406344684802756334125605821313054343529547655693985343238853042551431623464277338620886195121201820706591835885803071893692688558748926342691109595305248089815970491477643976020803667959928748187664346856817526260970166308159122480036108403600063863041890204435019187888802827570464609961595855997020026969695936110174190429393625258681982988061993441616005540259612072512127794766553395650912200870750154207894133819789278169507629042601640610243359941964201856734840486431203139038697512896725582971968335334977624099847245247671130264455957481175568974504633388389828021694014458335683742853018574216174170622431615635737173261892039333199174779340967643735949196436388137912446240592243256165169800902230658178056789315118657746965251446273521543292681412666484774800589110730700423134865851943792131787271272377142980143346490688609352824578908401867190344663604882493414231911895714405102831272765908909109283246719294538389187310529194825760742678630483810967313986055046120616886714101169318215851624010004072802039878052936033165711605038325288129083146985819972313744183427185101330465632735773362778213479797744506143640724025528781161278167803421291776296805012496906831487250966342555739289904009350101522427949196719239805377243066628052064104453340887714705455160839854797813527569868684937111335991489250315048331221342897905792695275908263781899869367900687572424921477036310639665513292495971930810018926355546798014478810996849035453502152566247439461769341494581299870590069803938891241242584453801283529599899142978375972972138794199700578635657457055517224886337108425177578462200175303813772710002599217927650119705887778695191265398783644581174265687581534388626727723924390402566258110723142375587781171497051268644453185480562895941372317999550656006701172103216131061725818606389389130932408273451004890519351346065704449247675682267370563885751691299437761558009425044457825429586554289648325042739292375388557641575343836477412677812510342279708283380399630952914684968797731236915838305445516968305184875560141947152917360255747088752842733110453617860221258464540212367121889716692038890955786907270127396277905449902566530781098803680632336475628374202746773575302126777730009760264513431260111509298245050948621393380763713749526264424198738837242236284247469481679671841556632199952318387527613225311447889333765794658332658266157483077103076612432458559466854107258076210361096647446179868739212397975122616500087154485047678287751886044933274203773179523162143425079563952143834843015378410603181337661464313636640390566908277154125308670901107044084331411255941077978482375524444883150570697322050539522002434905202600596727496594960438847708260273290126385270651845857980664821274889143768972556444213121797473624875282241178237238440405014805973972751271335503161413473278430814218029252331298029031607244606949300990520257242702970109261773410529985044109723683248182342833574726785181947494965527206717282247263957258034538496974873051571674955648573491439320558694627503975821657256005473093521890771966795028617599644566526497850432614094816235551480926556364345541203264063332957899954113660639512373762601337307779530743652570844154817756743184826728468902240016846475182472113657314906566014359624153909874520315764817862942993592412646448070238742063014515842350424058849218113331886049199987391677910575575806132180360636535016415470914813929698058589811279244364365043052700478310455233164933018680021551772506351339408559523485487368585311804830827721821214197583428690384177632856116237749546848829192270833683497601869643771891471272023993933624613780774671526315937758451144201558598283114567376072379370519262110315091203083880223954250476005292589748073640744390808780170900190021946126133280216793438929842928318691934065712556321468537851628134356363966993973217354280846141136333378669981496511742606096954896643091035997808209535387705953346267027332030192477414039693007786724775096354143201662795424987769950106330235794389654499282316576581510717360546520986505755965006505872075567648953549924790011086753842947177425969362079766991120716079475229777379048147447334579887810951884852669415156728067914672634142496601409075177289621552735833911780625494472363508480420956800950287119021884726237313153773203012087090104878074080773388675509790345550723573503942123048140907225601045527714011591094421750669419378216900221371526104984611232365515789734082799387828866254761729355272023131086284756041965206565062668026055144367258161797587708154030927076509268043607463683436638811330493478938336319567254683447929345187765386968264250008297850923905049444833438270621280398170803639840807401854338637497322434120124684506417608243874892870975595036947593084157691320252318481285645381199426860521586108108500537296562213754781287870300801636161147039642759021052111028630277688390415091235177493149068917223842799239943958176346146275127875937990121881084604885400479863199744294553313212234258797552194973259923310455182667236705347437414729278620562310589755210837198836180511034548142846842042654728143599700007816981879767440991635287157179318744226476370097256674090451487387472556829153125509140885235887026682525566578376133575204588007054276487180636354418042995221373318519300726873021031508220925661222172550364148312898344727033156291969565086678486886853607053624312985868761142592669405822514763093987297645225805434245246668764483028207550354672642517419542242157397576791683634821516120476999910995382363921539464758093253663720307224124809850244384010933012744577299696732314504338011751855383839861269119739970614762211342079755813153961085569801909787185412781671005497387855079663038438990867285084018236195605292374655060882365256366640519606486738537390588266461660139657881739835348458137922702422839487643541848752915816805590522357333761041678484947813354637407107653766097454503195560119561639804429135950218079332946138156073075403617534082935089629679268990354791740725317371911775170883503599357558844592499568604128942811887402192725120866695710554691545129217929539650700750303247549277456040981262604625475333904116516295266937126772573064831952006220704838684367001096630838679245656329849526005808613424391919055199433357493462558444297855141494932234927902065544462843951049825721025023304332115843257280593665811940041964192360980461186643815615713804042068788307905556859551621890865979251593963449693564188887746467086892723911552085992374808406293197712370452840697053792051990176615010393681735752120362111130087437189363177333133345255815068283718450729617318856657860668882145258526658362798986799525734775975462138091496946008695312928153658496722984858676930754714166451250453599157035016812054920505434853439913450298327146995567364550771292594835529266310751025199525635995356203509742737797070845578452830780800652810261220717956359430200801256895239020426928866996310927907779757875646741396868346026686676262612821049344102461980237430763908560388825218051346405442953627956272764427191387495143525815135588706547442880789325410542261907712723564357187079816727163060476044819487449569345405449335319183348257666611007235499505555123824398184187838892555853950947013156423088637160133554402908803326594370639347672439310231158681645132491277605503507319955730527888365322285721658437335718124388569601083183116472934067872708448728867607839337955348448960703242293008311666144350024169257086289474938116827700502811284691516590776492044962755357153859778500716524992365605195411415933619965111071020555801555576162253740910234842373943836704348837065414867699584177213161918594117856335555654036573402886998905831085150393464929058331297908579006759704204189668245749424537877960407101606813674282716902991400411880542781345368642644582853108837285383165111033611719495404194829988938800614447883994574349127522881040676317955938718066301856206915317873564739620352260427463648091012221301709968591368134927972879856560346228802840504556949240959335711302982806576497266386841809632630317007844052274775829244802513289514795909582427376785021444069630310943587844639446274266693055973493809588764992639586637752464788604210171637505411235579344855469717099905388272957313802796100122018884054399565028523646667936186335455291846816741724358619206621305864039721107555995951323260590826402999289166949043227708186652549326976296930327661056247738852521035092279019229783936753472680491286084325007527055351022799222099400092712155716096576922032358224845861127806720742341145043201317210485619133902468468021294356228934470635009635182208531237940893413217180946147818820064582406777473757481812919759582610233055678571524032005816438790724387339298570195511710851498030083775201374966504400770728036916537361428583355429623441458569179545719494791221835465478517375823144262246409224635389711903936389554699238294230260497645169106339748233555879039662571648287355856789421564312637177707662288640397899883371252381158234141309885201107956654804647559705317475876367174047884894577594883850386781809892837493320797328260579197273815564130965889138632889685716980241537874646123163889849244007150466469796913276430225347188941104555124326542305937212048865990300296055900118211204057525298210627444347539761393590423232402494430065808840512135933491581721136854836449911476883400855007311622628887702610627928344202490823142219687927478686204418519043936111577873711975229761129743589558600867615420891989342385894479946999961819350039713402882842433995791039157563823088801127716987741635041717914550113809526694574685614992728276968345272795293305307738037398790321286492063988314053658761085987733689398611817298493676330682910637361391649416773215424558968674451459505412210539335214567569832422650499133719822638825165211757648291015867691673260758598583752032432575857734443611399091487004828502558062859206782277951778952701146264571452539043072693840018248335035926825977023404636709264252801886366307257030833293535464165283919922909317381551596305899319528584134604578159913089088196143181028967130154563624657749626963887089736668469343389590766577080683577663032828629755226395390843545322912256155770175654051901252782368911130278112922343639501787513150766645257120709395798345126565089015481298970047965723807364446918076316339286845723972020242883194238753260748553853875229961258536521565155147110507437183339167395000197613228050172065454372232638511704175784230973489086775927625780724771541777420286088609403378407304783726210318363590277080265675759275396915467932889041404345512404834044164886319057033159577031747332371760556748878512645568054797856698290616148215168484974467832522939561011920086379266298149546390560137252265364755288887937930491650267701346380949145705903380307978445181099262487587549457615755586517148322782402000075515409829300221980384282847508796755261296712167589134119479096812985402492575806805520390386381365916542469825445349080937220553575762286631528325824673601854350149923557876756490359865410226410555022285163518733839518261022526934766511953724704175071224375065985565698307495564877823387712727871937879315883199931563211847823880929119831467200905645773080439209591122572570239986863695005020583430840710566013219282486558771622273815630806385261453643534924395336888402518889496744669822092520470287536819916103854074705631415960976863054400530250652206740969872238036268526092718451667659378913503193441562466521634837671362689182495642062523381746847326016781857854995352339519070622051231537141226353972437944236867042719437279039726586922248592734781874016034032177985140777122896307608939085677458664028431746180153473897363641560097715925233209406173140421879478804220911600253116159044418372195845111235390150047972744398677923302467131450953043679081624551622378702511009655329099503563921710478455747538877217866804580530552564604163708356257284312140254412415372982235263469673078700851916026999861854243210864708255451320430928205851100272112542997101285606688575722891539731663141184758086618482471285235474189994598926759068630013849491334525452207359409644033457711476272472958192602576667714819955644746981350408092143967685190354028720802559802598517191643741687091938887330488166195825014950395885799890180150019142522371790039604638868419331161017745761786151586774763050255100719410437415034987031663163480716380368008115008601039194579290094916339600387541243091322938265617486639296410318541204829789434215407294338590720640708431226309278926761282924357266339442569899324074431670081042398933756442548680364416283106141593024558121051631957022695255045801981487753569679728582963781050185371405629933157970209575499500370804969744657524239788761111578026802501180557855165880587148781104209385919402624840498976370218854013593792238370509254534315898369599851548540829928433607596706238578505887394298495412406366224387163795546783222696610832299869298999556713668628122237755226678273614961209848553324927579208726919213176647121522358271185023546551576253876981100002000471262932380277363039387859021048306332989279874752427554452405676866283861358563634306629426439622916454438232750812212278375083674514276648154443687393939554076518016555610512707537750690582103778127031033732899718049167003043929907356635364887284814575432410835661064262311810647333884985591291178119639296917594162507373222343862244942747838600474725507739116628033497562223303140851789403827107994716972226668832538878483950576986485057353025022511868315040213386930735816174572257816228034472485058972719442756391131245568305620072967010002839542420760393374339854895258629676465921645797262784684713975689267351919215078456778112187231576373545907978053844410851971680621060678421057609446814941884834179888411497270796665413730718777409781826016144763907664164957239115232816065967172993292581376391150822877788978177199717283053643540887755842362214905114898866422508885805162143019583633512177855402565048631571806769626374315824745568782578843183630261684595149074950052963127083857920882337714263053892360228517629565860186692047539532582198404199332757841507617766518269609789394594565702948673993259393051765873720695503970413986696111517432757199982738763068150936139371158465513359972803396488074519866392132902584849648456971795317681597328898527403851756305937538798173706684942827578009748763876719484927641356363270332222881582500208631050809656766287604847312380338346975513735936760431969574086173143752311326822690067154878803099239741322909622502218818385562997856146130364865000604839887733365083259564409177139295442182027175508687167607977043470951843407553125205917413878917616569412530388034025864940768097069005728094893118059201263056487016944535162585914035654800146473457473471505792701515521011768424418399579142083825588423835772232749437588454898638273766302420787725304330891178127351933990417686599702229468618921528254863989094857010320260725766739245389604288730624536584574735389052366529002386958549106964687770669577250237710864945232355049266406787984196865254141208189332244059222721792450756645278771805944100278543091987387366950491948545929123204715742640637676277058847872132835537926213477237563461923974172355121627144869820376529457349750356342433276023324643520076356460758753974576011121270313495480293297291716891528833481069177185250115068474495155583660597430950328275407073514844952750815338329579985151268377147786181459982396240080631392106578926995493657859766947990551303370895897835259963474297576212907452953155068500278334588180818456594060909565025013331233647079017797846314576928949550106130624966790974043829456569219594802111700839964014236497023550210713991958041294908688103691725358107131797552647750350206159272019377439553725467995339791541986062372967561861538158417282095463925521448980364935614212260155997904649490022695715964956003829446170863134724903677834348579445971458541218148982997170918655564132726908348245477974308105669140983807612479000319485372336928227127181594286488416514152893226830091435182012180446726584787743567318634312739537744608672304641069896402427400114211241209872081816076281311355692023430816658185124733054853986786077902631647800761574547325851993960282027463681819096267982286571670052871622223785032384440620396411356433760963719381976960239269804911610915581833746355684535590558826893441334314198287047091018405529429431264567857265004040894423516822076757035770699487108752338067830712153335976561926755727026756444627188192226893896406504996092494835679832853098794482376332993655661253691119724975768979690491514584239840877124939864191761390496731166059817198784101114126055777058122940105058862556476087340645670739151636145544390069507852716539763606780505407039414349727093612977437347342060048110524163833453657605461968283613666786286076039475110876111234877753228163647159697351770454284449074858824040329908700934980599976126457633542079498576338783399155065379514716689770483901442314889984533330361066600200653832885598674215205821049181470161559201117546856376110752774345229880013865456003659807038294171573830241487016940559507399604784014821797107864481322771546811245977812162031179003164901714731884244382516596145974677297476436463505918100174872432932826181712863477180721046004283302294308248059857837712316112938106527281239943095771058196957881115939198203779345857737635755316464644661906189634370384055547319380164868041860354848892483988395993435349490639215337619290617894084540983251449392076975543688400333167215824827810708940932133455656645310724426046660957465901301708789712203885910098641360125103195433939697778984770033806457673424879514327798924044967386346726868494329050631166346105521594525281126078078689839300298854823779298286473745079511671917609610059155133999503701878954342490179049348073985092270442579695975093612108997365033617632284193994302329201589721980831028831301980250379906078932934759435312553589314192700205049472255853846238151083859760231807561338060039532062162015286984610476894384141022371225138888821880905570808349819860290785630918979885392056222120068200082207368096718321603216483927295299772225608619495944036189698266868724997612931919128890166278865568666952074860235349996236321788285484561532189686477097979422206577144527479918603259194148606714853897275323068987241050298632939131697351877432948615838211531106748200652516399798674546214268102399476669649130612524386697820098164836284716269819040638089383930642091647960461126552754183547794246771659057895969091440662417387337004521944574685482494139438519689420458848060908078750470028286135913451603704960480381199830631052246022384396712634887620627060191968822264277860808662581673844675713334064403066311894798376381698428005117437996611951919947237086362779757349783210061001970590655185296984205529625019277373146714449177387017051351990806117041303683973915180299850518614420568768237411116747693513241360228541877581305256768277565626461309845452478464702615049734832501366829067545322541359337082460307160698683364741273998578341361886452515620347097616197554059347172685605341202999284075627035991303534946964499034088769028389784611370649930723021214188871156359704838712000224637971710557344336053408257448351934919163722764619406980000160924619711500886131506953991470050772695392779236203413749326553066230260911772347860951093228791866802980869454733882529674486046008097060271203266433593445380744722664461368115282150198009196394024878122131792036862258874246870799954917156291284302660489662607305968927712114895899810810175732689217632138971441839220696057022329248935385019976525344979110383129016746273339302269498552433366631250409249364957538447634754091865583300949836379641779239190811311076299521606707521731959767420893783328976342658194570319044213215419024217782802841111029538316243452728473911925805294079436461913521078100527465608876677440606955920768609119949332456613223968043226244260578847150995273998192921077727649205439248211170679878566558685054582673695694840691085742643882946740889260315412446995575719960637614212081844960780443822457139350350921608472150067202785041510217653975794775910257001452732321210098632699559450690657422930981646262942070118836025369726482005497657215596562966326286688984619555230557216089303078580925816493356030874209862238924695674634431510672406443943509727744069626067416747713100186185902199823380488611234311513494742825157683202648068989217298140647405870664858961882562511943991792325494345351798947145962859921885625176045503665054943507977169065225932515321309685392280036448631070701991772191805832625124410646058580888768833184916012952306146624442303740525785750844575974837601609919956733790594653694157254743102205821127215451689683194395957166485999036461168114437833981860800020292637461046562278485812782109226648508946265313221290601531068288608349836603587420648072503804678952097532602020428474184420913049057933269197435154977317427617784551069874278254205164489872405826428091641726889221366831495123997518970626972772513485031198698532972559727150984311241357765708071977829695035265573088988827515098429606462069171305966837507295927899889778303537235223332178850649133834560773034213056547018535372433916066985065861225434169840199236251739885352166718830431648260004281649423004167559417778296861926043827196138581613666936469127654738746771785860234759296368014859611393836555284687299919457880678270040434917485139259301081568548630532871841219968753678010494832662975459995656560518243674942359601867855944609091240156957660701458684081202713591926988125796055563644017790883994176902744866024195985397084792048155391128417253237734688941239259287285611807315557711806715220725549640983323501594688785830144603103659012527747135745652460333502152895993803439622466365055247404756993021184533117961755374794912161891460187021245767883138199899525712090421763111741436752391392186694374039982313547811863200522660237724529221833350254538227939442594564048784774794449020198672073068309530096231003528180105156747108560726950522009984498016176993172556683607252389159580771212247185553584277716770631665362533013457714011222753446458904016719907946545569613090440883918080641000046374085764230293828327708583626658355175834969720846080170442097130266833024086295294922863261610587997806437917359561420444103590220635977323935045010740669182679869925863975683289566783425747066736787549437421561973077707377066576780377263343796483013405415371847758884005666357913944410180911674820109129715032623285063628039315380368813878087498887084706107324159196775347073162960347254524589411093978576990222256397654688673554369118223274745236283704464894270268559497763453425453493809092570343096272577156211978789741149552220348987546474220094078448312628339364988973402993524332797782847802169313009294120496420211847808037838430531814354910262357857191542987245492295420020871192206479324905483458400118295132318569326021991635909527240978147198103376722330082336871107119801496432683229923713947330992972765307294013206057644831894383676174317350005333857166106389843970138283626651583247221472568938546075372403653952185880605790157334452219354481339995216098428621257147970865450874373149562972088630854591719261822374262424340554664850504416211106120009581927361037225913391772125734836667239751272775598837771802567086696397530091262882940258459055774941186149422162818224408147666294965203492236166849390394115999542279934647149553705832466548467589746178326592899683977405098640806576889737815444031602316548399482142938796418837193453448558360238319063000919791346925401476870716010209414077811143121806538536251726517238261957079743880724082345114450980971182305980804116798340643894445716242611313955263611967354659708462883285087012194476895060742199521867651913316682727834620684449418508191007245981218637622645529195530581204704818593860117316405941419467072344781044461714207601046580800057618713188146954405996089461204440549786744878592588817154126045955424870171424292351096404677192345797225056263901435884627304233592917373202727176970104241222066298969794016249938609094007206361164096951947666539125058925080068505872622529165654651696335482039537822899797870452674289876440627818937089553307703115451907143532348691493855731876058525361964096581412746243004454020245142603199356711441063653067074645059684782282837522367147053276702226149891599127298511515179052929741975922772065417023785393228266116290007083531091894624517420001986307267057048881204229686305650875427780487248342717212516487224793060744117159291373005408669130893844722847579306855366959190347281086540244253732303629088227910495049925616511494012458965272899030388670984938382840998721968059422742500790133489803937440108645518834650969365583546967757118174498534215129445701508389614645902867853206994305179315197204686126062365032863359145787333681687517751065593069579222446311137596925284350994798148628438047408056906176338618024720266246972834426319803273272657336805100319791611854633001184671781559756279944217255293344470797937331700879328497466459976053233415613977952324538547184609409449530761111824528388700993581346560425703135463342627438402052679173933563551342664058373819279571756745168327514745591119798565140735300220539405519406992283629460612580634642347267017290455223487123864328269267984331570412121797762342170136586512054133249051120080628842642887368646233519486874417867984144356424303810460113292166664104225952315497851535329104232377653535010291684815754999146060993063285624045032860571990894587881470656755886909103945768425299073187355773295787136088118395931823742801147168240609439598220231412294457637746623907096159596049230746937846737972268542109789440304629785651903122357400896457629992148286389591943133169565475081285336197991105251589125505020527045223378353890436681474577887623511771071265151592823280668837362535661585714269071104252739300675034744330677831430278390985579652485021258943737309947745865100997634850964207500975519569475856590597144076385625871278016417923607228416029364844713128623509975785261324442848648960113602645840467061795225834458168822647743968844437491062332309064130513515991520693452641967410183828891736919906072188851909294521905299900413247746874698030048260772205815966217659386657043197076766156260269153737253825286905494268847608064229049930986098898268775078133213300239929466778209446106512151419518478882064524780395724462018897113826424237383972087026210537373706352381765570716202742943599823991090042949118784265090053403202367830674399222426288885275899519647099780524408321388388630966772684903295681507339170653951397792888766747107621105827130729187643680774474121489476895047643642328310920347720857133917156681821228783253230747393232900143230637636655676340347293479602460526731171069656178243122093015335600573869768287012635210171966972922588345994871195418315328923223074423734152349323561562648505313162583473415579402907027494173145558800451710925441836226823700344233726620893195286000883204212766458262532297239855314027229798847856794070324139321052545831073703196641746303374054782744434054239581111090701600109552370029134276718171535033340137309028357909504052088200243180496110142065758802695737002517943451727540336850218908753084866772813141720679918805437754759275648844634872578496594780434077540453364408579711795112673949900748161260709196265326705076332621263248162235486976196891142880834630707610392207134383334286125623085950502538128077071050249395433850109290215188356008968689613657415235138851107460965548125308685644281770993857003956353188220718031676176746288790666407653700530078434437387904581862971362353974297259426973467555122375814478011346861541893394208207038216263144879297071552808843268274321705023423036597253154242940548399325235490192044565089108377665505265738063249175920833338393237313413829407247241977285714863739091196950048721036304541204876864039978918403649817170449743478773339900945527625775254304819007512843347810475598545241925715395062203016229900233876828632990346852750057716917946445510910318600581870185278214883053542710498464343652869652990077176612911906187167828521212532099266700165849576269042236837250956658752946673400325069704288060605350493471950771559790116320778821730954767519605745084839482526520098058833501511231246827377043947751994956936597280092894586049007049508487986380582572041477726010428847430622153660560128915549222259653220225362188958983987764292219606180226001520605201006622113719922985521873133314647006488828789118230138717690796061746160732560324099419810982091708694977819219787266651124084450157229102157546308420329442907826314984522510546501143270054984133130862752094249190437124310285015393201543523656115750944581132952404358543972412868639833923279036283876502274976667276666594140745066563300986193930611818502355975018435968222135845131078000483203830282466837248741856088608603982677602746418377099416669133990819604765892339935976799501961578783466139165857731215247432802190414380560524027772435472888824481712356904515124485157838570705491929960188616893475987113292954325480855127276724109660296498214062656472354650364561403547623009602899134605613668519049936766055614097235671621834242841087256720107880739362931470341854171976750558999217549771389969233288757802929035710663714270090322860346097568222757271494425466159521812716436611902579286038005520548581477907336444374254916524804422055082218769230225194039441474847909261676785571194873741438998966656919519221123539465734170549015444946397081836868865286680336810224639575357893886239935938436596761654166741398254292476636590490591718483074833505028095100227458799656497519415814255966562461704423451325591092530321815632904812381063639791309147390001209663167020500931264641145118302230826701260790586883741146172506699819166874502853707084578378238668813767818751537632929048418627135959181604304648577423676243412182783857819489619013858653449300361855046955262357560372950697500714264671787788582113544734675423914166467495531900678237093277454052635494436230294953658708582976918771070020291184125681176867373020180800838433482352305742350059200994136717339201693120555194383608126771050531518144093486115513639469426660268512190631000547534789084178612045185798108856291823039794550450874780732997326984345386228019663399943470224425463341639955052443728161340193706301730298753040906153075624260597024334028364857530324472407886223529740668797098238248688087799303629838493671746764443877042755360802312577541659811240647032332273345766132868033636862436375836365954281611767440847225857092497441407757693813362435258532936615182116228277056296839633935319551181796174859170419804795346396830766083874154550373722961242319105972601716943351845020605310450308277889055460297621885510751799579322319950581633092047115664419334042596157664873173996751987593186950262598625523168893634463248763211059507036491849539480493090018716760265217282216229882184140743790768878971456378231113559120924699475917356505962921153723905273229136526095495273687127212251930927168603291351506427956653754454193023661822369117363105745250391088411802181064435015752208423411045356617183405466101912658530023366107309039123654073624344764344517398106281506644283934359336283536076462118340334363500267631409350597030439052269830137586216059379506380209765335955120482653331617864101987967342737921867481282135317429789876805592738953882885241645726359557573314274115586104819561636639687859837020498546627209130353504086119713523272309301271659296545962005164250244183121318110013337215721708558134930932384521684819051534764186297630644845579769219950512576063392381805255488944850798570798800589666019934244855918573178318635038710897809448283334463988739157979262511931765701555373077384158225331162514499464298052305841587765042802951857785720231689158276183267274936891979577265488253138713895092107574313225655188563486098679040748266286212468972983949257664192508836560404384507779799999030748682443212149511656081980254875893694912154743529709889326376755165550952868065097249680734206377482263473474640155600632491243899702879186491230285093094896023206701051411751082338617902913022248970148093314535733331175945757276174954058134837835730040713789352283059187767620878506356471345358151984512223540137463253292701443852250667802366888275182867830239787306663977430196355886054120307591675195674046534652695077717854247048602396289984735677987612347881659580028219617420422635712298303070510225395794990426202402173850628722647650724170199974890552182169219954378023657011950034406145676542431715833882470485031953915235203405910653649910437920197305151865619742448721814075995196489991291326705183742141810367786034510571839834691053410901941115852821681977691456677750493676983989627580710227354047956814622933857535486979520403130874634211820484496622188444564514431463802618632927845581086447989241612154644515656351527750446143180445719433034423783867063281696466166233763543786885809816659258254720140066370090077479322518005467212089549076563316092426925682397390618134160769601289647674959319024181406191915679202447128268925720031804784799413510543572088686725244942820788828626307603792029553672512041259303457105695987283622616790170384837100550657841343455730595495337615445651638115761871329627002046681407024579686010614209323934143602623359642223072462277794634454235095278838712344368311043469151425043796650835291602228758206059350005651054998805668163000525010661072301781811719805907438050403586586268103427148765778750875239768160640565681564084345146926118696264466091212501125564531368910057592644018321802948182769476483300981451929223454356106097073678261440621408852282267270432199741517434656492408818270591852727268106601088492305622447543330162082825511197910737266071439302277785491954339910230581627129090987789354690893922521369464439989089205536113872895533881529002026694204704927642592837930789462466346656823920462600294177959975897496449893459142554154641479810005038027992044725322857551737060569081516180787434558447620380810172432268923910951971320782168647212248372034664778264060436256877139689230692761042186421710287219434261662819137665371198267567590410560511081628675250787815701722949936233112621913785830505792002030662145045617152306746567366433057099891503555964396018868275796808356332821803664107941799398492598543894587955940558865293839675332235249967185474052359034347540924097171295011505755425100140333541278446742356092455709163148972272317246298010334951224723056179683754686939290753554503629623088658203734116342270723476031762640219541081619117699044175122450521270846760426918037195654577848314440960135447418951761029307120498855457859749411600582869667488788299780489211704673423058057309762525576717172011471955552064306389110261930379217816416301304491258461090392871453767407552744847607389329497750578550284491347932753208160496212593932971458274612848790888494542134109479732532294343959707716617930591362623887143065089086745359101963673809804722812147021400272387318445186611972560948658547601252615416823901534336009777504168014940928463500022766106268777649027170852526806213456555934738216266755836590251161378353716044059290515800099529265747968208191626928802324508240463168779553954149393296924666652044411244191139538249968297339994730227413612397508984203899603397795010595450200786874669374504949385249472457928487314595654797777722448729112792103808059079217992814414065989488578354529326805472485767295336582103576720782160168054562145105016851362472477510827225275992287642322224663318462336971545839249510763635668530392855461305745467956632572938328022369268980758117705433749449830171886226701523283231074241306999506864833098484625426378278383738736225865534408189404826929451722491383023910524603776624582398132909861204742225827597711848825549673109997734643273973323119407153538162395461255377533887683999773497974509959692507845874297255175802583407165734823034378836444762085200425035714107137436421362776026718926100389587257517915588760428600786463210178975779191231701193998808245990748669200702667093657210053090630257387224211813345712430915743162221866699502051152072497754987876140184538741946515982752613868021702711756516365488033819638075291242188600918204066898328323151334458254821835302799085760253864511471213175933834661136975774385286638326755231579290801458199600734818931456636147384092470643268108118837044515010716700287621024510793162509439491851038826088032332597031209474866046725050157000436424420655522208293503889121142991417242162052614728298151508620519636627271542414185422648449502353257078889017944615053298133565295048627708952420437219063720105892415273227354909577295008243013895741212857919917984340326038845478320879477791139315838662820735540993296535157176825156776360927211779445687378889772672679663314342530940918804092576574105434187361615073258113852599160275392228581908276692208805465830191662241547342545378949749514827675430609113607405773469017757957322885455115056882046859127477573966322609092864570398072552886391180197834372939880196108423384218125445918010755646364002999400017465968830587283811542224887259956280063831678094136827373876950895875757140298477652256919053324941610995569138567804192861585552543686015521429811110777884526336216737256918251786115131008163733333215541893929925453382967444517614052635181274513596955800005868566331053707890625337413554552814991436779280415939337476206415197748695931359206502463899562404332694026402262709980786897894913077918118653757558637128238703073794284183788400573903592242607452484906700063565428229175492103312516719743017277924512187013489187056872766334061541797263326970789273386244375549374008489489761402018977274183383390626591835938650454560991325713686929883707579931678483182949884397252705840829553103121306744194721693177316360365959633847673014230775988416690433131100012532201748933332475077543980144936448919000085049772997356785440305662300551222977185705061923236799016210365556508099428798529782411455093682157316297440645097884069263898622833650677941792397935021435728971703253067127093658269368829876227689475966512468772839604861818547211962897774174118190343003021053589244313817312290096811498390232055162757040888156021989125111481237474153857923502632202844312758843709683434353929273425753767551951975128623978688672223483998546488113968957782031993334844144011872988211299773328816852020182004047046635073424626733557971559950249796505750105043490352741802666279595249609555942296966313203373582312779481066689157107086214158075467034464748240885754461398087208202558649049218717611973168116801460750040715263686353946583665346155016507243723084723260367848709067621967702393435907600964610755507762455621009427035563818490417338552917836336727934662332825575489515326359896554630488840771953671826386263809526513861248275723769439589609227042887447752754657298101631995371676311839254116697006902317075794087360821865640832491920654343666853853815954681344543514095423063095131269412718906062700903803120150974078816430844358909512141357050042279250658524554898046447438072751404220453948474625202382175733550505529913282476311307467282642715181957528923398025271607477601135582388154372067534047512039102941959507916375066078164700752038372675671870176693793835390456129307188163228902053708394182938297419482883217368370168260907111921475382906680705488271668438333099456737154823667134507246928029078732558526222599696635211697272473049345941850054884401176970172020800271205312620812805869399824525729885633400268710492435429460625893156833972134286473705745523972683799233763135875032713230068803027219308365355214194501468921767661039366391134507848035026657137287737732135081023288209382509660587277276970069736230244358754241801284742102959257632118064828131727220587352826563693626067573099368861117425029586893751397739373917796066039327352020931487891128111455636121493457152376226170546725697396030915954826426860037996124417067342711067312316655318915906133321535749515957165814212808658394110181107205192421057885025735921425884275168064835901831310571857599348309625431311504305436334571829710946439952446690454772984540169316870779459265396404835747681736014286366534799941045095960421381604764183615930659702411521761294808310161677009632044886215398486835417313867532188695873934099289734966022872313023626195363232569662718216564591446093340481666698694511879262572311253491826777119419658304276071491353835003273448194898002158976114019352062971588999378092864043539587556869182026055997883613403069730727566958135873403307270209411815195173464405658376051337750543108633805870696792892899260832700483438625647913397016944847615059730405213532055705339037639173614371183732785589401712523054664576918731754108907532038716682196390970690628036351016225155908990174237932254621585940243867238970596529853601366891172980926393279348646421280374297919281608727227274123967961716525607253707322744261388456726848685663070367793937557217656642864461427575446245720385149761616290944957684237736804973993161892318953163964148148941767343987855703668779731667501132752929616886284727089814214117063745708716447516539724691967441274833954764367554258166269357597450955550585230945998199049991483531306999508921007770850822716262813222089483842922776246619160745117417491105299648342319804288445023075368400445036411933250708995041784016138406927352615647852507046314621961570589502525261870270075661087401409970601135180807312412862680891337345312801732190370103982956303333596903586218997497056524050920303352670153375467235865413465346456974481846609933594946398805452862374191816782510729536149990630817855032551740130638466286351890254869691479152116741073316911476867489505924998919386258484298581171952478668060989214796420188089958974636143866177054934159029969213884640184057194378739412912553597059597321411726863543575959974390768105635945777725487665807457025947133375901412226220560917478339310490091292027656469712412848348729188732793020000513165138014285821293146467731542916462882648369274546141077603860139498480153810674123338413557501404009990059273486650664436264868751117337982358652904024741601564460692749908540352394541954831246739436740510419987650857110175084177383748378531489212060282062042358429825458794988819473009014795577062352534274923300184666998838802063951659176759675672704839315844734533974698974505533914173310932629177853834658073456368820847314095809057898872989741898236127252078453650615406242525097147482613958864440193689429444938553216517801060068562102866891465975297581004690108955673712155810311900737863625074955831901508495943963022978778308763276306894997198689307002210570290304231489726014895047753135956335216590408681720456601989626708722070841793821938344805829187073369209343720065933574238221613902490476559462576026506012859824159540855287133578420900640381504404609807767095947681465036686491260544703814206558801468037442537497218232297101190426746800866498720357912025844895466527262616468800127961100127790897231743136111953263594338795697224552505906572356370418854779187055639607443408030601204614455001715840811415361554955170178834004875996585691116265478853671198434559800963498168619015885157330470915428529853632894037238929490000711910213886304848042320024079571158416735334603733976843160093803605049819881577867659638189889803627817155719315530451161293526129851828118974623114001599288447592709711207706089670530907251774644852941941402622841459018735182880769161383047483857779120333547666783730934869798064566257943444365856202461551813084152266813956057777944930594240987730121832330019111445982000210796809559511735500635731330044456726807748029786511915868015171749317557717294638294357882355249354065238654777904691645476425498605295996193611637017151070680945920160949515704958554451446647469023429548320828064178424399981318759972514347408930844607301076886795929892234027716308979515886373003247096134692436157033910788018332200066687004905721682369161104010129748682426425052740337064961211343762718642647772164249198669833717967307597734965697903689860656089505712720121670908625602948222541121145576501925195351172686636971671808630567827867571182368662522943379300756319463740108731090323248303086611098893521446775232742489771398954093191838557466392387456941607553972342662776311082066743353720607922071788708823471290318870628539647926141243618321104449310232869879663706304881900357251790848676770328857088835242801333678879972688268374752189026855126155031745978438493955772321200307216346270022187057988977926946087390753886056233221853536509988550164816404941475901131933287322297931254963078822573962732135985117034675412840473802309171017555652178121662641917172046062918973149911320624461014298512719631971711662285145979102155964739510769188542266587768528607885594098644420512008986765070523093974940225791040045230306201775097656230036663517209137340464306183050236574947024556568540137474508880954664117171170595180486483126600996200078774966684958735586852278135000085621720848697240077870870368891361546885415703289164532564793545987303949777966017519660452306603649901671134875998080566020823231666500488254191278726705192990861920904176013049044116205022495715978869586651975844174934193433861493077920637769316853431810377586068543877875421797216090731054801622198445535604285375961938151121862423277999929792117236123436900053995241362202120202033631859729592591769877389139675996601139440040679989808941352187005502666110974321914133740855814184939418714859918392644718213549482298319419896348348618319902253889765061061105700919022586771215795488671270148924238324947573599829487221728026549847843459692763374857880012958947603356716190631999469786849157911756372116640394729423002919311778472700584105188375932345278074049714717232355812075502626573632123558709982559292352523121780310777027189299104521112051493577256864962807964281837684881779423133291868266067865663763022173961451738459483721598659976580656339382723177620023457081258713851311347202073648613046468640003933105397437799822566028325653111965143430342382669534080252062735156430201829465439539011712927191999827145749518914245140057377627413055645856852331679307498449207425762818393611138465790549995857652026615975601151410298935028060428076910663803241100554212702388767868895011675306665386662461548675800559348490302457236455485713574241935028553976988580896441076562229343384005188478468261871632888735457878414280733162207425124306955543475801123101589814401408458048690610112908542401600509998351398527319095791643717215126949771287933017378433199314889517514633485651225373101426777995255203535408242785525691126450118394896233357799197467514267767197815185066066953012791766668177638672415218407173375887587186838588329465588381823696002304791614653410969359258915792240058553658008697102029688450974440688332378198776105701507732542201005055306908872033850301519091828885337758405345182674069054377737775966941444632059812643817055861671663245886043710430043347302835176403252683534075827988267892310367176143521368340645082569515984120317073910739593012326233298967696817826131889747904309952753458072876066196244426313986295268101965432379431839156978181694102799444499836028723394200958255571065399890899583412732324213431210362220240805827802457580618963529544520715123651526365113372781854610695198136409204115470624022692484959071098544263588459565890471838225446307103748704425262111300685815256843056194475019725736076742872023394445349698061038377195946949242706581333047997073613277803952361141169286888863449718319957754077064262900917763253138165521607474520730063282637414579457677560956620381707845001759085367613599865098120768066585216566879395889758226346397650413213486730666121262071930473809146968948089772283003442769560757444895140920448246250415302553881655413280074666156725752484674460257545735095144444435494708280227406945176738587699096507937150717206644164788308573570347490609858386800096502071998540303172023147332756092747027271270485518505496835311290810186077713834259622689307493287203415732031525097121484059960145656325350359399975967798004877025585908820626889361610725641597561999759363917404114971159724102012233328320137100274014935734757439218442976750457915090732698815190707047180340329703229246956905397281795798750363349104907872887190406719828702069909320106170904500052737732351731446888390332521114766968623432901743869404410423841347266805732440804089562767860755451830713471581334623212188623439643929627153167662295876423288532871380711387764710358354057597936328156969255594044131204376011090860800099592396310403631928108260286425718051098193675470130435964703441680628669645112213344755378009261287342490049936149781931751025179792498925917742306734794704427502165175069305723935732756266598096231400468765975438784516734919385774588133096637466709080609307970872615224821932187798354164800556022555911812796454072584545892659652729519706057552710568331244834729604624483994872804262169851747870126129117087436078326100279150862422167794570942800462565048168491166753786428768681186834159553523791309015653153424918760296884116758579652695739682609877741129256323621245579980299834724365607240518835948873875947424761710274627016469815927048972019546659024243496330324085547019832644457964017989056453059438040187172907968591842017762328736484400658282098788199159350019039712580623400422148363918978818796413912964858873669201471821635495089480500984758232496442694730534164518233386037320999577578396732067379726240130446659625406993133474247789337728979365556238511808503437924804804517658937449598153213639344018240397646880993741055149162860701600602963521729924240460405431162498513910950310465492116860950037548245663514553057460099146456014366951972654939623864890594656670518678302226990685574916664702975970536930653339200330863643317404861656415117470254496622551619008487801532983316614414760168429343566105411590710348814211894247770776451331181376329282677169791275130815818427689662715747856935382848293083360341871940462493563177889404739529496727209104820339581258890941791077019499120783318007835932864456161132052832370860929704181197879387498779203487373631963980345835111861762814627764258984733940302297437983312591469450687337864477855498516544497354611578127744430116059608332314661504491759109485128679232853738929740326246097635184570580074984197454205698935453445067469038834524147107213110790790044204127982291988010935684058675644801774371819481815709094804042973778681116341921360274606101232319080926850528790100960139453705543593049714994450056171483390030182171324892151197826107703629194541507485216017484797989252899801265599707609576391801071276664345535072036725186702769916099572678475067673107782214330457717268307758512221021195261489534747878212525554405276899850160624760784864024254890914203920454356536229389925028344814903602679269438553149805961368957654028528213153749412850268014209863436546752663483301238301923517136850182864438718184841802716093966126269598982640387219459584081343331056651979073750786292975892562015600180538283002923617250108703374452950857201531677663896514354984379885403408853061055419369841975733737391326378222240806182556501592865517647025157977360680669217124083675822236033521542361362095091667584946545439176173569356550676001601709413958249914162276996931596422578400280947561402332492433356291120733928319454580338125203335240046478214338122010971600353004292056355597299247995946449123575986833173946752927505850952763811933426739184922570444249531729209376743971998119660435491831130125124957393279775919658290579169108868297668541520462737461908348105266151405084484094754793026916916667725941943914604757544371352246420889811719221301964837460318763879092889474484170009366286871655407262225166858509795047892756933234523935983729846582633833334553332191594774797600043162205795070886400674669901968911196157658276627099234614006460577114573556194709272389344520588130333194615346087229047982036486491092013819226159582358593612382940087768287410193542408178511642849713177196235647324082767196228989175657629820594134250650347410337660017402210062182758172871195245725124176042646575235180780994345632300827206468333328417695136398048890916074531466623938383180690379344362623884950826516440992371614928854114329259494107144704777512668297107066681109703252260018174995303452461698187935656790903947162191910729852406685043522755155864484259783770077129092867874107754952692535840000921599381417505489006355019625015599192522264650489051055155527640663589749822753909063225395530727590768803455606390633754878593503722378511410763995426077233507430799090393459938507367182677749026639525787680141055839619438361604833884167248540325541822348694236578139238395713498411905031226085290855412844021434061414948839600559371654017398658277153194658562099333886696169332926160776160282823352086099882821334325814844518601639116190320288973985771987758794539759204934194930933166074323821224484898451886173605908782511593268547824436772215368981036902760497298456044838155009748342503521182867866874803864470450918091573366310040098296451934739473274884522318774376969275692612079108055842072219783704480552577900491947933489068909320832078444865833949709836241219047339309676267356375755611821700617796577716811176524225126855225877080617907648496395142729497037216911191556589171838802366991475596855272030515159523258276072801839298928456429304217416524329257819758683569987619023181533933446306738238587484812090906890160416937926710866081366971134243630130485785966208123876473038276519273492575879400174503663387495732618034510314722759272155987681499269674377282917909478691039469669839445760755888056399526597324468979883638479977619304164525870553649899625950222918070153199036850414545305050856263516021453795144633322890815675915620194413909753125999804848696578352189925243796130546069857856968455855560634875696925897965500347529903297866583685584501865486305543540996646837464690046629817826939870605502826233044187262470535130182088797948156960783652588356839857489555246908349058111297307424980073027822908810276932558421292291996920010782964076633095623015169819837071780824308555537642905422948845583256820577685027003139644044817971479712805727131775766888588711370073963221542097949815335783262244084035752796981070937064941760689749880686060272556324392634985925832430754764889164001546152998551433178736577003813229142119936072497369040695773885960677202454525619844754550120095865074708933960611088535371038417315649511889389533197666705325497500428526542491953799441113079588184625108503237339171258744003015740575907682494914551587777708411215053945701482112634448230670375304547665305291235238567065844773863098699855003278009790370342054054302968871154446373822956445541910947803664098674024808212270479784257172549562984429366257678433789800645673543574955755090759765434252875106606505659429535557303829679792280143362841535299696848333990148565886174662526436171905260298790908431900856788403024165688462366931202002626357375500576877957020795951804724159758765171566977487308985696051055060250736233144719651834125821109676438050533003486306371532252004114568489197904129216712593798438194983903712352581487801249291608347778333532798628207947140198856778816893617034028193714163912316108698987196348725502410053568579029151095832836672854156948237053773800433710132204890839606521746150139057997502027541587434333655469802796859031193638871277238725980354760967159579598789152784052959846824452323324184046367155880051939332849720316413820985920563090239047813667232148995997626758460044673174848803773929918530294933813359103762926698527631917381225340504390035550635102919510602151224955744654950313087456371656662716703264254870884606587801483483199516432097148045977910240102640940826995337568338905078539178970595761729767145637412947625244779685960855467055828926271679587362145448886242261394593221865594615890572312513219955386223036944626786229468376111679973549187777321881701569710307869377815436289420018809273199745530031956854388962480965984497439144454385617307596137546538732013325442351337838781154546481236068820183024937457829956631858546699938482184226680675195472208292414314958347674024511124026171253265702355957572939609769834404271493975603467659490971093501601092169832964623350491133243121519712458745667864073595914039796049152362636689644544231535335604159227767177267974287232003101171248654523994103742252441715109203609031980521444955628437177795921469289313532187303851841441197360124734856772496103359297777610009057778928741091945630741349379651555355398751912261535529333028065856390596159001267697228639098973043146719515238043705630359769589183127081175585987926718895041294360978962378275850741291248494778132180206402284399505038298679760999468078650444850121978206556103637433569186278724688810136407544954344692533109457389287500270350226635990763715112353989985430162577233301063465270239259092954479968321315205331307925088698655761954020533986706241158515864261166352334716324025758282259658438104500345829774427408685608742074950038054459331285386622850912238032420134566771501712052464313693354303557786020299292191211870102182983932702671950702814394709070584194079215407681158601170599346573205382826828496905612874925450434452267503276807545530419908013433520577925412153257598886939781994697406960367737246152311429472605879538830102961312670018750459439998886954404167596672805832658964456845405586320955660812243733012482564210176049953639444345431571278941455195043986539978979408861478614778729814834324327777256807540544919696491844348453872480412223939743715454819320365607986701365718821115309050545479613731086834918310706922149901318371503466678577748541550861569163439504213946414017763686027395951903820720441426048620795387367660376285407627960156657905864809298909489401564513018625593614766896728480145293921823965528457283463720342464323514484079879771800122696145485542911447163663217907836208002093040555054207667791230435036504497615476659309782860849438515886935600865174153145443732566324514931290261792694673404769813880080313189628409825076894794001261747487265835519558301797613095791884762403073121032998008690157967204993894694476824924445870871603338515441391315946947061824667786707249422733248089181522334846388508872972192715257660589656545959025104219738298742482976411370695205837043576649123242066687926277862679840554180441624432175051150272284871583860703622350254111485386923098629100133279964498532810701804259499046242570412868508889732738314153276615896814502446631652467971022148117519528808399487518219214837706886095781871700962926489653874226545601989387257974696584033630300472510661518810302497330367282737050966190155180753255403979051939279502440907260772984806053844807277471736348378334953730398813635175028452169179352541652498653287973146824862407428328009156158051194398265211112229660312448497745006118622766654862442356261802120960978698077624648975689245286990682870102643224258672196566654738778645488203893115233317641641206972610030505528624760555594835552516692592771447245172489033517337193252492641038141650647266825328584143498313979540340035266680897847144401198481271111227954444106788444787580092427255393655061551693696911700335321460627115945564061950819058610045258909458984350543136099995337703227522282918965282743566565710363030711343892420601298854136074254509043931343804164284573258377884719733507940825416819851043411729621478953275424649255043562944719324410229663041365070118878169358152865580572708195424457410646833293565796288995058403039811916956165127661542548561801051999143686683416524031005283368250054281677825968372617471158544274632923279228088393157819243801998263238778551577478061110968164911824954277153586562166167304227639158682775363124247867258512041140596027207914567520309250025084182318145262834672513176068394923975350091434157177398532298753977179349049262960741667556638464711066954255728357619701066929921039955366950347862124644131131852584728922774469355133405478149913749051315608510086795913272667042825796027548930689280525023115895564266839832123638905216766693437189212823567195567055771429948558375653634879224736540018405969824664614490101803651411412638569679748693892435462469787774987058182423409480088386393690888064104717830206043085086442125551720531178183338894397054046587108207479241661015128949268133855175896908915402625714950535528397453997064337958313177975518565001714788888807027956319986559439286744575486659078709483874704534470705764432879977833430883081061367672244644015505992619174397739116638420988101491700080770080257736767568510155074627507202002430598946418141325387321035409415497649598756509965568021518735702132534587358624773454438916796021081304878244701741771375995237001837047145817039880254090822746600873385863807144477168328361885956855664145929124498944457599089675966971144515436858342951882900955029257697642639336268168078645662224532504919096352502078524100024833765178431334059868290456185627353816437166973528212589559921412016807251199681255623673880908396202623452901947843750535777002018066095802891228130366679020567782553032038905073069757925316530034923524221040039333267567205990819660037380848268079355385513045011899828018747172602267649120496063649997433512540380237534086124534730886567593615705468890085194726732154320392801187671796791208324970625072411701251766705775965182635895708435574298647559255239772089761241866774244078200269915178800682051273961109352648527194556294002967358797803999040721205700933576123551791941525875237865403530571925207271690339138489882551218203207626909141805959955236266691017138204676207732299601253200416172216537095268036324859718286603147352507549053403792765314540240627186256033415073453889390166007991222676440885225337668498584025936352429214489711851539240879559932077799320298042904568325072624259950995356857400345790188713777190615538352135336128395162493057915737428949498393449961027024666733669877594578392665723356304276190415297277687888969898169726749059179569622891889414204603530008022283433855348935966239653069187495247326683191811107203142672256535292288032969862600203329951007233367388950169703943656023975145097600180568818633833271931692609396933188231729847244789761213231338603227483053535003136824602554534486847232870836048321322215922794020063311206644133303080693274380390961592672685999775495150924685081277283615876260477951601455342606661299747689372186312440420743313172986820158708200601326709294253408193120994766371843000324876962437641024200502525949772920339497775142598591758627659317319527612209835959042911140723911100300309601235664359624264677805224764142160141139255502258562450601653668433350377285701442203326709193104713159081163243381544708963406360671828352450859772580290180107003152310985302513612736478755505609811318703291572480139553603916794766874293520823785033229304944819971895759257503969355077914029192393104807995062936721453386205662158414472177032267724085450426690146717619100389918597922040204733111368191154663662500967586223040918866395066103732531327309238653628073731128828112113053541370424055143701411078956328575291886105619220842245146542648235994705056227666347020230414227069917421176535173145536915501011137458209817628002367515936787597500448230005235766377598573292232559296310544909484890993260181447150580223785330326073095932639326565786672530979172638735479959487034643277438253800794788876257817586349583166556826736419385860099218190432506853297360068415470530145853246621570781835341162284477599595051719583803236687953478047704204042769531720497733432501472145538791000125834380046434476642803231250274811716211073661225012698506520158550792657855100995418448572371585078503683813916261336395018580743610070764018873565124529118755962371484640722571139716218913810908922772773922453717446721255772332901944129327270602175029817309915791849022730786964085456733418528164143757446546464679359118511909154590798167686086764965667949994445099073413622172557039839573650471479530102653514834846758546051870684065014751925194756867876494048475231506382217861839070661068029954579868198426299854222950708991704419615161983779987461674339508196059013112066728369772257930044343931382137758566976294438473709423937112005576111643308517981108787870346270351942293365848350059784477325716548500337931929629189832436231037997586416236689579613857368926173608018411539594931179846917834196180338217512125361842400764639311608707291558107172087648720432565192085070381531202024001243743904347887670857690416170742194386661684130892782433935462600691990913780937740011618638686780622178014915906798235924896370906970069427135159465762324741581974689376276995145029933203216515881173669441914807234537193346671317190183394926466432900756282054555325939542130865292815413432594767470245793135888611442715884881322035216908651056209582559253058055805735307612151543887435396908879496958300399770069805217821442711747621618081096634475192994580574913282410499831937845466033211239986217548960409513739917070776791344641558490207480543252444449924942983090340012737761623252750802588948229666649821113676512358296535463338997949219857219560016694213253705664771559271937285046073798441211385892448119332930224662968731365731592290121694944661841963071307284319433414933885829796134995829563370263627786801172659405248651592955349940021215799400313882641142941955235807419333197781719997418651401218886664705301224147660456671011020293187916662161006829157402020814440705835584029222732615290783097165245367628752289772829102641881208778694690910580676834190995878342846595089311352568092749706937884940222592667218843122997715551284432683909883823041478924171515484797795072043820174666694033188631984143552620008131900140192263730046790023539967396061640686285724536753193840361196576965658552484372746661302330563163409599177790130122513985692725896317388582901429382507653802032283685757558142218870772970806962312816960625342337595199058079408789104459622400474024910909689184085285418889272555475570337475335069517611612124244322062033626064939880686925864330044564405291967434073597703890429095416724437815082342684640775432701695074356573687474198629396176282274367288513823039265310311365324496628033941259702392808178853664745510324240076175372191191124219376253984117523859436241920162342520999534535418859034114907206252201292407668083230892967586245668918048377298770270791961104918329135742044638881928008418873734653585030767575790092358884879573685637888969871179784555509904725349524222012852967392910369464026352348328616505723843401754363181132008449028433948457238291583235189273160179330510398316207835347860733815310646127229410978602262780647351890009183863196187514584726495153993245216084107144413540076269044207816558675446862123050969670995729405314888887667209563724943573265886762582513071317828288334529100993967487045775094274250721437786091289330951629493633261195254834518147126524901414947514663329622012477255412052985473013270796684410264925184045146478880964347415935628478273317527046982000702557781802961159134827870268785500874097404404324162110116472659960938504369360723634395619046263598032453803105310027061011513489015948279492484328046475235208046425249321389426154877579825864247133631499073556617621205296665757497203024913258918801744126941358086351395978183661072514659868951486198349233713707119670190123996078006732927517577373608875037426886489817426801199006435661531506711704910956040014196874471648727254400554214939311497533903859332178428413237217258084570825984462902126736701122364064026748420915823830675807939532743853430190865392796614746026070228879135445099982601306114694718055965239458131610701565588894376138506100242136004946015788810896486530789373139409239462436812388434434203506502829500841788318396592424002018915392694688281503753721172080904502584654316567189941099311587673479810481344791859906205768039572487449770566691490793914902497818304777085517285730465487983702135896079525158339090513630895943157187255861475058017835822232572119307339088882500512746798949918643968995174742938599455280468008712166602866321230226092251366712263406038362726003520568371069015165007778799451338222228154666398781633294869933985012305813646340123664463252121984749348728165435917519874902366216992611807466390764499594424163535097736113863611471662023626626894773651973342597523831898132513015650109345336327997057613684240295623270632957403723751885607476623999438410601490632403535675877678587729793880472575576672481759444231042238988933468132187182586641000450414679951777166409855464201174446678953705373873598217670580809279606567440004400449875338190033590217094609239608586608123186411939129957393771725786836645588880862140110926478206033810182223541485298521669896067235110714073276352144587229826150588938767236386151443048421815062739172982880940954479734304736375183625747258073047303492309050652677636557596121910308223231755307764408487235723051690993975636525893094114989230679661012308340861185038166266640558621046085818246209046164407649640115895981212442682900022698708732084404858792161060759223246742050689282122534569051336406671196542229966522575463446141577161801618307511164128736832034412227206439438675496987240534517340289303407925883163539712685087355288537791484810854902940598318233265296370136837176439316855924248644855413651865449314799569988756619323771394672989895261636825954480310407959477192378968282179549000875934455656344640226097852235397360449972462369802160206081288987222231229643131653708051562917733732226719206603481787250690925440985894961529780409214593613400725435751045062187134246410187922208667451687030487461352733920694130347463910037479389210281131776106893345408761929904555755564416135172753221977177457633256521700652051586279706935949010151684510642897933868462922360181449451489453914945077821223082501217502754225128253811883862107168114857603669767730328230815472575514420693619215098740600820980482350282299939279585822430896522108554118916045977254443401075174607928623468617993531373615531438935941854476664745782359544682163382281295990054256317868162299677663672376395167372931728259673959410568486217673523816196949936234030888468717649509148506692415230645577249403875569961556410512426014690366737511279073119161702561829189206283595779180073466122309532175385697809795553008093463646693443276687020567625544151129277549728674926692589841505640844762402706872244068749928896886131038646833088476271013951730500838994381995332035865541338992473720970425819757520725945508088481443495269111761497894143657340603998197031559294005054276284609747304235708320437675779045066678012409367601026652720967152735973149056554926561323851241235546264204101398622228627467766986303493304437216525415060204353057160512811185721892198472408100005268657901956193024799248549996755106517005095822244799734478254812342535677428975593077963398846143696016066157083866500485401542108243185228020052582515083220882432393885788369032535063277561004083856817944082230007532007037795311228220155826555595183866860484294680057040658465698484737276992481194717076953296183615031684932748760518829995484196635071347164172574544110349375545663308600845529394348116777483126406154172767960178085404495373314591756198703973937088303150724587851126055259134206836904811183081082743590277071587409524172215992043496986061971935431514185624706255607217841271872415969798311718532714303435436030381479584763907669133394924812103807825151724075001913637227344912605847302902751839620197453086443537517035271801020423872743383660639378443238675531389029831897416826066237817735314140158753909749944484309336804428943110142564285324293675772170486668935889793351151088630806132332916230046878342399951397678363391019021099739632227697714434455535633879241558001107756521025085201252942205995072418979171802420035806878735384576026731752097000871827904835176046698637282091830716354002040411713599688610869961338052155007970821537633419867502046970251179270424547553133474744459957452044003575646285516660185523966240738944119001456244444002331284796581714570968168500680787518787439348450625380680366270866593283927860412025157529033487460087183782201790986752048659357071029183509553554478816167839834943629952355380289230969235689214638913968773601119756964763527912926032065688462377283615342776927975982394055308906662542976295489405317168246402429720673609602960527943976529112313812713263800933190973872533796488696336638019866319464191260417735132852233626851961659522027657785716449448190842968521989975166831285643012929818695581368927219041077125934301754035711184502796755868509911790034889836498761736090039343621479334417470982483883168196264558726196299287717437649719512511784550438301993658877994595055323735187202461271062655415388293807073982715416958662782725070024751775816191895370036960276390004018382345944381617603742932679709055526752934142100263567079823978409127849469269534753087805968626851604336174927269960866633473893584122171999125062406249447913937495210298560802605607941686555869954400144051293852125491610764304592873643964629116750919622037685724971874523689352882886514726997033242137792949277431579787548210332989627950307173374921704475892838171679000404308043241025314894844296124267634190849466222364809588786195949089083034554666827013611082420659367992940479260463119495630351678295157914436123877709411136423566019464272524553923999376243210949999896211671927700579107813531313550553997243742956910774942246179952517202200926249662739497380222681548554001088136663307463036212580396144243840968255695620599997754386333297825950204362508227051767330077154715357991610405242174056525939550709703401748775293829515348839215980030449956119792519263002794555738132459530606162171674547500637612049783703614644204664697764074922998883464052021452108487318791615644817175937085020035073640981730756535742285609034009042135294527911042841970684913711659445283755891533626303495587914237590078747071162248194823154340786196881648268742730486965155597292900415101484222172894428883163781505171788920536218255875333098726809589299980463473619786188709565620212027649808742358852369566756818769950062618233429208817025709946493009972212245368326287937371729090137764627964369985087791117596600450924186906636092224013782008125569714253089675159781505052973069137929932057123855525549646334125350875220534115733980265356370257479845867426901284612991259720725401459207012722391065042852725653512034299427755251564766443367317310107396682777938527455753940669812639239620988461060229692984888996551557957948813451448573075439472574481433459729101281647588078504235476879144793915191390912100327546022978438271030354793739997523795833884255997276302300215024887918868192040235663884756712651856790725846909812273211700018726471644086376405563900340335737018418661203295048749835253648632145723808362199851632141771054120392917383034525984190489290907865759020799524973086880462544739934295627482389928204852156922283061740841087331615255714146860309124427269016390953346587654830858157412303915720476507920929769820905700112703360738283328074211878265382945138223581373327489191733002429775149838512699567154112866065922079380509403471307189988943435631019032410646818993204715498323323591610654508892389512822701130863656974939659719432877886192724700811985062724799744837878959296471643090769530186038116013899607876281702908419805334790157767403667646161879935064396759381136644141943824323782491611174797673828870307817195123633947052860039760149170213943719398408187277216987250078026088085193583305905991915581727279409223270612237957455417150494994981069738676903205992269655156019996062572647241491059420033570571662047573405236100320646280126713346413299218022104832383605033522518946386032518086441873368252530262518292107790067082823492843447909587274685352978046377119038567870938482243021643897562413330125093061121191683172416382655320409743932559565378685013637077715102954227533523338185969103369171448654211297224010191519634651896124953112487826310430599699083892477060570841108075417835198379099767536479524773614280547909003542652439729950868697580280128312059745340705153584049114412513759211107075925194831935164223835833591311897833948382078029172704484314487440662473884253398084531360000376326166305551655776977988778763210224108547929264647804557346333452648975907910452210693367728002192438094369890925815881365146845840770160888640901825787227078153169585873944467492236370897958161039517041074334198339806201175305958455088341252419941366306319993039124751467729569735866305200794889167669554338598624177893892840139980209787176774693481115805454699012808765705083388367593702180105504145823007133289469123491531703837049141211424648401559749425898850762446676761564560329400937600280475214584368989737087395771431301268905735963323814678968736405646393411445156751283056887430951851137500239628307507563003910775075988383857308713075370188687904644503915107300973215414664043133729676780408117789727539675600024380868844943173453753594971451883578985375162370107953800021290941952057381152717391762263233532406883337460552073760756058505910250296634620872115567338144677581811220578185288594326018887028583239049023699324582682572421170322194387922461061951708329680415475848485573334557991454672619038244625544958839425959541986794220919679716987462909817467805427067729054187111522301752437804935737114759998252198188486515783234882744647822157682506641193757385214470521113333224578570654713904928400669599080543045472969559201517545815166595868087238963148848519520347934610502261410198021971699165255861068398770789948782338521265222472947424035605236641115523086725968597378110770030840325873281623183185222155367342746206676696080248248739938710461568058929668801648161335584276565460991327717252198063217930533116665886364044343477624129770851243682063100357080092726717759759776724023011850071611288683473266036609587794617944111531234109431958056928305059216197607019867963684494800554430154078569899587362620885071052129844601043643109873561195769184667198036727865113066677062370360531748677577705536514823944437478575685891389997018722824832663708962827848185783052968164771880267008752682776420620245781964073930252672618958070694349477521497776451103934631903962542939124286159959397302061695082418957751184700897384403041732268871628542237590082559273760964968343615495152365655677702853385714878038925038846763967644501976725109842355902359563769122371042616647866330951981747406118655802119942847750367725683366450295762613961211355710204932799819498975216960606616655842117167576433825475459276468598570263862381216407152690254208546783135518002094213604905777389273955404062358054498151154818130727667708275961220641727630340834327387325826880387181580821952770631965110704925108030165615797438290613767897173906636081445144465686523232510614531132356246272312473602594182278327398672254898386462152054234837935620660823592923571592435991925331981906907391355947214233110252141705541461649378201751546597331853293915027370473828431617249154719427195750830359550182241528203885265964235066252722474650535227763167921741713738110893080685126625615167689750438623361434230837001754935467700723163888305017909687200254623263989964760597688813687173578342489774799296732204989100847035997177540017669663746005329261757744764777831876873424985764003545227852506873903719197476414252177573397380477354230706817479019071610870417984848301694233724143305595693401242620301478772381861164486741593324796098029457373189012026164164239129079649434414100748014764763155144757023316925186896539363596680297937219016561097296153928133983998532027863469774908804338690309602568108238553360601041397656436097663887185059277880269057052925672542039195850172889688020537673069700946283433387678167563681614746987508288318522130746312250552230228086900860402384218753761077321942536838392346578601206678577326891155388240548081899567456238062681588127043257310539659721611150943747731224714826006178708939844756410154402986267453405930253759008297930980360005524022601820339098122365694002576629091503623545291531638791394743438612260796403273270540759943702826091765999885613659914607182148080296550804563945512963990106714648213597867382757530192070899673602629605364030283513472006417259132266305847253192720517991892508005366386684929861819496663310834104258959443630781413489331082287277549800371400419073861326345999470305888432520018233205508174667233549216142591592425368823531667902506744987241392663475425438051534894635441994877937079237929194816369799088210884631277447775551350111964549030067171488658866787690039551225365458777937760901996370186031325714768381723922423791283621591433788682601639299151915667892912121476391977864214864497660697777900145742914367089511910324633089474710942202519312982565287205798362703086828065059231338311532140299028679502977662106214752932975577097181800083666900220372678034152963564984527340544434142227831407497289638242818196920218104131881840432068232659242243557046814845113006376692442647312395412354506537491763923849706827751918715057223472793300975198786187930881022023017259691927352775071536053884319226784341392459553944960820353030056165661670088128388672645595630197662437748220129950183043899364247677530441334066684342198157355551330189932019031779698190236097443926396291178809384946919955589443203803388599130605415689720224113770112937717617315581510065620240744989597583336557695500091149985433337790070042692836161821121526143714218735369670152246576426581916817490921495108718407856358424376525303708219026479045146721633585883736946743415245912585680420317708334880177935650916549776069207512525148219756170275742910057141438442466045444613242447386539644109427734225947412637419768795148171101156656764366908919849534848804317613923038814548417938964870925367769758897592285385074188025903398632394432177946846580954681559974404426297071635335112635571718454126860669760841365587214352153606925604157719745212110843440867767796129368330114429123057480740931740987780534745345208593937637194305574885006528533977971149043919355715397646517994865245395967305815043566733387240988106758386959208420117217150522496799104762802559410539230506411997827918853574877920336056378663161732037346081653457847335322004496576804990496498647161538102109697105471531937998715900303948531463879235526212425256739948047785152375405361498549312589754208640370459451522968520243484065780657135468196335820388077967848358755951802846263863100041318672203842532209196421419757723044174336165608294148121893764923286759098671036694968380358434529071121440183918887652919838231859449211163429434970403602483579181282178030745438219166233701288504024656391971407610373937758661857520715264221819922895648013659637605376619005964912666346836977600230118273410823503352272181715861865579710647189244498795171408353593746984538307949414598925605096986866439732617605511819140512833524210963698457151852761370907979087019325605167308945034491641361659566915632257768129043256753173153973533839119639969186327726564614193738774956546919861818873333569720014607385205045103817941426749662662574119405974116584496509682819319524206561929466270253850509156823426858278586914892493110034887015098455395698068824437024881569507801708267891993588789472641710681967546723554952104383313894169828274326238170841871759354726973476193407929277051982221171843585943533528602895106602690864961319136557760157935593221340826485062963492047185745120022003450612292229411171266412613213431775109545516903908678342666324025829558731929216385685880981820120142722599590371778353733636930498165039874915112954836484334701536320382921576662458570971424659108650325965227126061625129534524756529425837186399868520667434790679163441173816275963977520553818246165804771524249275210492861212688973023687287249095208931477022484860079991944100438464751266579388465929994253891498345598332091529822723435130565915692459754209444906138106020635469418216312015756388113694567693443775981877559629533439669369356087633790041868536890370484196155628569160916270683277824110553976964947483556447934410259695754233158638456466745692333281993741161249078873581184143014556244138817555120378074388168703280245135047849925586779635354249627673340493744775886833337323263337766204239009608910085861059156222869749700821023305165077204928670087956579136260298668319570833789111904666055357280296247925711024996661458600842646046032216479834635852620216523351867514258214592495146413431211320416543286825831050433884532835100882582499176825122785841938118926703969978238408373608173834299855563404525964780196270761348488828526663409816182996562685014644287186484579772286491419799246036404823739309671334102069699321067677729644063150850837293137574535081194010751158394216869809943994626957924842135741004235307232045597706890523113879218200127158901535271412433800855299328716386161733691087349373309562594117054686211274192557656324585682338267134565438626425621234102270676468415188104135241472687779612260522209042461822800686653354441398950785733096471343918565729763367482906738065804845793604211804599652237310050017491455532340698740533914669063180814023530457357197382271268155676573116841833510284587610142497436238235958659353088241251251342814918098395630432308243171840149734356013898324493477623484364781777345480855452194141264170516323335444848714729283249326105574820211946261722294406359362519631801326412916874820159738024703390049696821398216315448114920864215567956118925841781328195788646962242794307419868588030675125329964729490439130339541413200227517190168374417757106888704755830755832581314486133210765287823868187089054949880810881734072228224422632608158244494319197538922632242153659762508104277010005482901452926329540763006147420097092923428187923309794734597043014423389562354507786762513910785719173005332952664909855827422139388919518798124809807590234406284835303141619377206505839789364433493383180164356258638998340211884020257203587171370551314896393059281382073552945455288021588292132217856368417615673647552591651483200629250637674496130184511198020853156388897081375003592520593916006236583406190849886032355860271667528848270570017822663026513664817216023001838131297659303591863959258927255592725666437303857035049046404197584501173115693614859841296082524822541982806615030826295573336574965241942876020144152467765594653661637835195916898982176986148304540121191877511698672767279778918352655194451048219927157696214337270071405389820972376105215726937641823036099035660063624923636608113348420484955098508182604815953848518954435679710580749368962615107579659957849903030531650730929456578745648199641077511690763873497228444280511079305447332679933447391131916950633736660594630851829860050714569532886869201589780694181383794306490838485418395346845443817963768530883055635674723291319274121252482671983709564722396824203281147509289113535635214973653723032564847384892208202914554624783238063312305396477477152924357860460257145051704217155668320381125049691610119498156989921394315732098523095626905569133285881293392678443621844257647157288819193684497911939565154843906650809496768778173493041568623442321079414943533496222720325596278331715108277667833143923651962462406672050705602617425802907049388042286900465461157324986769441782517892212388076520765147861588542697820618171358716682101229449527789393219940906346503369835098937707059085617571903387172874387119845315500139222354252365944476444740665130325483454393185203935631013477312250706232284767920570352568941165088985580849399287952760871235502010616882191842692401784306172402503863078628310815060933582058333363866715094277862844660898450727159931577417031727955782347810695603969090377831178621651065498162001403860705308797174336532089466324087689975096179602507092583774866764555200066981599684553392496696560731002321816966869202789282132286275984787744218129883339059140549282431491122175082918161792430796178374235467293189247737245380851322616866551701804457915377897369470601389607069604709478068140840794837187005170358599259033435064518371573197234702354824179654818232997708521995635149414339577208811466226655559882398969851772868260398953489328411084292935113947111856174652188759581280761574461639909101796279331321434532988874797434212977385114001849993613733066020520699669044803394445111429355203245083966378335576907968592571513698726337660906844418627385888918420970142045481122422147380340022284644219549670473644656915396888520576307591436239706256965407144150930790153927598681629898718918455727866637635881327488836483176745205247270166256057189319779014063910678876766103008809251211166029257740051499435506850247420693249028048868134256218850316945699521175289384378093647414684245891873370227716218043971020302233929222186898527904749883963784088313326653117581689746265134094598245007979316092490441029392681723120337007030688158359090775407264458858375712352155549690665185736013186438938634936277687959488014117854748778773734610438227146910861746538183784289980784911401040306065792441442527628303780569524007578052932854904329405475244569537552686627915894217853655255718033953830324701433543603377227480036381047653876294212131085589166444665558751020593556082398390585797856791325303605320140466068614074504350865135379061802915425540953866805781987381597479984220461880958277502144207625806331747724763736852191995024262916060087787416207890517078322647769802308712609314834560705331387012436751927837766333785792289279741038951726139078845465130290313981955098738809660041170955102324072921987805545390213869047968474767341236212590285990623917552251838453234246023213692353579072967238205830900184577605465351196551023946704974553755507600005677383169223377897754868299432017793998334319359053665884903343099227222125287990370023125707996220009996228918685685799234468227161773913140726431112480630706934218490931299454007070974884674564675286682935687206298873486768345161906280778421859022329283259808455160363418956767440279946266698705165914143889056559645053580266650931607415459295424790203930168833932343507285871403045425214680071887008360301289323628013434217201121101529703291571215237946254878172131148740492113322877010872003138761124039032662744816905871500159405111443422151209861502711771758804203552835960567242747255530192174461502458269108827877643442816419304575169056121174275409813141440560198840808135903338862020823988711198703194218343339293481208749067902786770648327069768391884734612049369869536527986730184740829176983792901971964633422764740503602806387858595347058903051618893569049662532340263040957863528279274749059227427547438183014468682054811608694324508085986249727302661958426825548070749592161870076277585641518700687539464190784325756063224153362830013383351243256909942258060375436872673545510068900254694150639966619773488456900866837847091956212801914434467765266463153684457635211800494250735381447590187726413971662662557170749834819427290725305946375305765025388486303097515937600738063991573612176520140787243411441481774113956988086668728090973499033020895262884851245974243366288945991006327419180460008106514618865166454534903068065085896270889063289065501318102603992839192886795856091611151503794734548191097048058897805315833583478000063996189513575264222857206796519858724269916933145723761294918230837369823776285298530254903702349682578228622861241843977375063784701937891665201170578903131737569874276726676168139633536033219139976059561006356988681543668305617259254192985645898681142230615068201247878751862763788351209407108658125652663422073422959659802088585266777842119478660793322901240800062981732268629779460908974559826250803086905138426024790895630455601789068384073282797327919538193673346188287847411389276255276272744724040015507834498021516836643036351037728404589758513041072872238431975004143872735856110861448765773964860417789161902353515002792729401678587820680702082190747913643390265434192858403320945382106868205574494684805795411597967054635525734338004082045094120048553237367883178599108023808413196802078271584070444394985579041166777606023263369584139598799709956411489747333800810354505532330397249997260235156558237430962719241099441634354283409239927721352730839290137120087262747910560533435847119365389707191038977946116160169834867041780149419475116973311564387994480753278936681597413088163991613404034944810320642470188291449037725795710179632670057293204995120540409226921228131819832322997938129815029632428830083649207913196609809512879586978103772856503452742908697237060947990589241259151590465846517778743923016435185362399944381539531551014553255942354583300417856491050576495974419672057514331015643928582928009129545613991231492439975142084546416798692368784694412670663948823431270390390842214643066061126297280577798664000772021434529470872504951880922189377502220230496013379376040745122872763480626102405387799428481827322574911539962379428599198063486548961132954818009405114734968558302318110633330535433504400124122704807301311813446448111108424688322700977745109598286239964691664386268571007402464072317027309264112996052771287407349390805620601641030915010532216761293587823606460123687283109359257543184432610740351906322485363095785119337407872124863351113431219231914916930687111334612429647109339440951274864310804309596313922314746533365478832944069736382892167675049087791952356827666590105831646480390057897358200582784432858893242208553664565763478082443309354136325276158637078178853417267437175407055203625443198275393265548782181626256580346433521922128660084209154114923018826799324108133653268207273165854575466017897275158448740449526141735721597247545035887237572004494527851660826024220944456231279174273643134770897130439549820370399625723277519178203626865385594570880777730981172109199162560323313610959868616379688380385994224451558616811795729566221294374138430128359490639330543551657856894129216606497595383954779388192840369790338727689182240332246643610796513921518510302931732579124566839646994623058594016236528276404566382458719569743578845866724057889574951556853302556004580902447899376487761019512601403846504625676104847497446021645419718422668671764315225978355682618464439642662001305249834228987323346163977088546679419590135552811269482167944698460604608336265628929275074968800218931070020345538362540524433154919632572355364591293354894748770439587407887650583984577401232569170149564833875034009088001089888869828930983520805656297692468692622206479321873945707799281978802199468158342714888278627650119325392326916180360035378533435749271358111804846110911218202000746008657362446280131957068029293419440764696756113432999689548904917115360881470158596409015786608454703081659155158867481168290022396144913599599432093243177827414173049600265895758469043596204971401466078082225912991335469549083944476764119242970452161560964825464400486079734932479982278730443612357145665007463610188893759674012214274752415878427718531476196089487527571836881524479303006958719310635392841877409466306428008896749795143595367726225846752462397667247702279065202360493651696412688048633882545183318691349313701492584130903031146838681023001074352852004017745285450355858505773305149552033953337924267338035976691942713961230059362782305883163915372072792864153662448902955579459543411629255663906998693217351846791693744490131073211005091091621913715108802432421393175511530652754342917030410876518194371581119957325859045474406496522901342906995798970091440350003410146589075319193991113983235639582232793644850962044252021309793143516043913405050510643227876402545182016210833687788737454183377651333231133531706284807665870328738188326134510543724317754121912355300039507888998186688923312848174064053924884313840961701872107966895854014851942169112848480696103117421811873764953543562849500209239827303573933096920926671358933907109338247243006918305294590792586612391824018558343717720292900343688156817950128304488690799122991610947173334166961840991868644394501537307950406094813513839423399783150920160366811755602278370368560964896461251910290294406061722750111111821519111744337984343717822943843963530795590629303073303759037150068786640397410523445730178046585949692811007846309076378641214043229555664113791045833379358112036573024335159661456867538753713633311727528700104352236803330512867974690616759310831688010757533496620836052518803645581186582492147298151841282677734407692258156110669334238647780823828907287441626882922685667624422849214934696673981214123216059783484177206953638218177935264118279350581819317389583623366805340535377597623684518771732157248620546975210302052566422952330926730074074498317366491855231843367637185875776279840367280944758363856574118684966486697993765016551606107237283456620992159442269869871119848024655073069949663212341384818675273312778902739804639678366584771013921819073780870460071353232648650675605572743369291596945168892878784845104185910940483909726614094836649308636132085691308722916107466240229242351959200187561543046866057249454878409114196995524353102399507530142031124793659492780614182673959850667108239439591065818010021536059135038746413302200514126496355975253392579400540064028216186403256143446389805453730526643747092884672613012408442219231897642400184357233975453414688251022040502576979407310553163785784896559626411901685314510327849301701188585902692312205238875398374493550037825911839737553493120080187621141158205147929455066911818750039610337538599397539533299128666779097310378730101491427662460494303419839536107839221075344999508646527239953843289738662365658450130129004814518777570331283669994366643541443685852454882237056408682778791028422884624756652482817484278515623781893538298224325177136382679874244957162549868908086860291265588100327883616843130521403724461892576388777117096446623673739198759715361898286149222343743556864801367421789561607941643559776387250034507769165615221245871982843268157969698249824805473556166639746179899195037938553997277289004782950025692572927368997147255644004392255592103440043982149410635850675044427946698521039561766729768183739610397354480684079942914130407915481822690890633607584978619695026454203658404080632704465019231896661506414178631678543337698263179262295286441247087311589489075511447610737006733305404561596737471764719802735365331632483854346228570133294491638869552358281664940320610927483905703268401909020400101125073843621953478431082162578480124898738240082296574065333013654424702682434601833464323498248400550362350231872528112227163682035165936574638304172534859741137950462691372472820122620473154617503943838108073909467041964886101610511697241140196187459397657205826683186024085033689655534708484769411771194677578951543411473119502053123798741456171527362117493736410525545941224575322104970543713347568154083992208734592730487397715247584162572810800325297909748333326302025335812395303623232340143654084146358699580091267537050391743045191788178975565533428876119971110647731305701572227774786261248784810786769999448677600697994523570146712139333210971190158629669326479015098910372777439313104726471347324504123606362152500919631356437797999085209479159706146875446083609561792667290624377900671554068651827437807522349138705528453717364181018505246515286202624131766359609529955181943998597861100959378070243275142243265813838083803348656949582085770745204461631993712154551931715882249611401621109695627947324680440826696653777418522073567378996294055175829170204016710586187257819303458567447728623695283671805873930797318322490667712872504587265308971281921404853384792822276778677693897667957359396275802254506624341394692715486399363502630131716264588180351884898178728353240030619072305896258421748062318927513963378542236617292105059917488214154842501152157726026590751385027324141760086684783263807838234882534580260628014879293807535486364887791735585209954359323879826177547238417881566802023068349695068525205119513848970930531444582098011622929937745254503180596309227712868544220318086450305353846600257281422142808792213694726202844274337220308526400561521235650018304584939875104409928664539703742837640819651184717911169277541990664555642553120532247186659557373323237699272092106844389513955580042827808962709570376851059161287608743587011257571752945915757761407897076036426160238109601282016800163056120572306643761381174307493563846493697883487514193585281652144306679541435294155671569391791669169036653091109338485157766822868603952252486118751605509556244845572950283664752493112767257420492468203344753450601113420077204198914459061820945574606234416932681781147796199803413203692142663570658940759183923046486533746615797545332062833322514408993399726526760901598399690752316958707655122816446207995804495905636048660980643449393761606617025060221672057445787713119242176021657546231945231228260876428328337343790754905621338299817895551893231271561330501492504168829097164580220330358923495129711719582704286947606374625656093851630844157506861951900033097965311136733018227298306670760920582388186737314384434655972538524317606166160816613954464045238383458233033312225355613493738919729775266259010177941900470488425996962718973968455421680280580687924808217772011273141621196816041546610113304691496287866811933172347749016905770358895272592679689344912662220486513463316622240672486113884217453467091325909601416310124500543110870756473949761166704543457721752656535212194657466112088077998334782068508229130619168038196974663978679125337203095931091188781611047832606985905855698377353801553673696257986174143652267368500923546351138281397680584447216814048206078529468805895469185812599627073763505008835894851945297519131124503151479062001666439890204408262770157401192046150479626925440621330901966337562465082275410231928937210573716409282793672375844878294736772760950589322408913091559061608919527844834625125710153390423394985837902135995926158876246720259088604351613881776788224021615487312843676842767231240875526025079396745271918957887198555267354667398409821628584810216116840863835231286394571172138808326713321893202930192328337632341670504556092498291165237450354643612295169419242050021021654774988595516815169393849485231756086462302602139752479645541634785394884839434046093711765522901718185524359561229467823060566825252345582400258968007568174050838740908350436867215401962211051147498917009962990261407497131776494748264878404251760366905382056656954118887772604551379484160640625317870563419433440461427077129039114245373366496174066013491045971876607451171419700859624522290421322021284115416572447921359504834772778269843940740429939043494087052669757082178998222736505894745650645096961176023314509358298302715703722690398456214551185019062836414412783143645885059386449960269574982660227151847234569115184657579459494986243070024547547515973276647835619489708445381123526315252269215539545782754063003120710113368956109008982787737182286038879074323321900452850354871294092591100201010504444871568395691383346742873888041375223009181896055974120780723670843427195819832460968224367621490742068443297029522590602422171641860673633284253194457747093549214374024099213599013065240032511372923034727039371214738692646835585549738635696806237300809112662748781455416370732047453148710910909089375177811189219313918700234615843012271599754381174700648938063238842454605701090479602038468978391205712323586003170855780570968737154408317642668791829684201291590284779472898235178428533535538418766951591611602079766902043665797937771227784453986805860734973471199787038664671009719187214938108160923403104475602273125875462117527658571444180211704556710583017894082902585648565165176000390929822986995803530987170997141422409720279109669861290716240646310539973035804101589783817054521517377643676059917184246230209963072493082545337710827615496590485944420128245987699939950302893779845841515415332119670513223596004007617241273911442938756955886979195012107262982495149436571423722396827802035263378669910794670611806336636341811027202313327329755164511799644163713961823719579924629032639879599857322889598234032804210704049179153771401451227664215131318700404950022307301171756798599367552085031950665148452045875888813346750563569289020864368919708916280967312970371398738044123419749726861556975381719292858937192540578894659815271453963011357628402127135527071823530461867868232778848803655888371873779813987191074559510962887718623740828066024378125023686756085109071899464676041513101939107800518509324509261438140521141917436965723981906891392642500560532924225964830238652787960890013853404886321678469000447026692496952191402126335519458520324979471129079390873684690779140313779807443350312702394812783259278583436852677004623350108164203515286133891320086338367894105616586563168898203453351879835123221578643545719107637647728404925423829482959617797984763789122320595541727029031435983660657033391265972272909373180615104222728708416964847107197938347769057494556660671441715003383883685697948099340312895746055779819417407971414891279252475266527795677059802226715602286535507605048759761149970878784433136293494398156381777705712710697289137287895627743607738149341219932446601721979724010626579621619466810661183560868153817851762798595342573780057558490176868112970789411323900078128886797236050097580350572826204179652036971228007065981943076269568475712682558949254776162842052937121131149526971384076720117412625904125430599093945666804676741748090801727771523140857862183211669102078709823383497309214750828574148713443471055093625878559077941455918406745573999825018867537048856144405246631792505041375593687685571970772275900161212361062821839188165489188852288669018087519782969669759695874335462824759343872692959181716291517142834885049574720926303004462380464786038128471165993569260779008480188058144300663272770653486366102349425643830095044124129928142789495451010620943512414017624161101442243648273869204949111313857336593181321202729219820814944312758961378511036053426545457322859255962148525700835940625085431735402595200624228567509204680767619879406693210974508983575610709306448052967272777154742645707721648665326811306109001852586763413694428738398304484580177267120476965315827078734848413146206734959212646015191736985526003765936054339223741854786038502507149339150887158971011678851843387520606040076787111425434225454039176161372354926056864751120461999473706055763982021974196901326816924019032353229823305602907891418388693323179615757776938551362738135286338147036165701968628972866928492002614012655156943299752505074791140304379203102819133889763729441085686995135934843671808484626294740549014597237337433693722547394473029150137393952156462439879847861450934055303609256193700854643289040552612912131983383507966091252536423894341442281751660912626721195848767345561934772903968584284959663481544900028061121608455731770837306027596176839575543757873153117016662998512352305471269703498477538508853021666197908371174843689187317713004476662251948157056619610745684857577950091889917340072012413526700361210845361384688951286833961553711756822783366803867457512475744693745393888232068958633496996151347926358160340173377849736596137292411307005365052334872555000901960886308963403101152253781207626341223349320549050429278384986213712041739291705750057078321668916808514278292162961047764591675383765123447226680649122016167998975077711432391294801163421459121326778641942665893270287857451040438573960716828283592316886343774949089746663059398730032679273916551328327989437987506806689903419730189373764394363564527794728957011640078041679819783890338322196505257092297528924756953353951716143368543016888709861341939662858905823707521763230815901713803771033335537387147806732061243818180244253590202092509231818950195582744085693808042100788415983264668963973667098338459470505644716296164534151044521072996392958062538390268809768248732706687731926407418946100742893774318743561386408709265368764019543105053744011145035954201230361639265627127743706421659502957713374816990897614702916813996764086951438513806035671462179708031020801925415529137203730383921118085208091715934922291338794034410719606609630176442373989516064029945830847176250615157473617134161266475070449207701389513928268413285361626709467101593382700775581466390941325291523331919244393301514509773867964688661747732190845407536135541930827540185997328167184649855685732775461553910603642887000402278493762657248299378882315573073246147176281738075060611392470942957301110545023018647050156363474117366242992156592708996255470021471482272679859405331646915251320321267400990157231867813572908225053730411610199300858887381481507029033674812868669066100058661830107970055136271403563513723289168092527991995359251920835365192504747036983301300670835475966509173030945230629799391267595997144017247417348469985551920979686917428747927328069229561579014573086743883322676681068825513059782484463131993990214354648445083443273595228110104647825487592627692717034178880977556430202498689354127612405476058981622800728447871476647093512847198016849463963236678666195444215316610547726866672305778923344095670962435364828870953787621607783539251197579350329026386197219243887230520489865034581832564514131096521889527275611810264161283053334446245836140117108271757239692425474646306754809490450263009273397151644612328335027048911649897195504606549511908143553995552908570307856679980435332361040397347420877482172511098210286034220664055628200668625422581744644349440912664610416991219431291216397533863549188780236103445028582868066516536178959723298285359429163891243230360999190852524353471311509272448268487631364295364967716293439921211324942993037154974831256871592559700745845174182837399512737836037020996173257854746207810736589372350566035144097454612396066703348019845692274263604732637172128718078196258980767152329637360378209284090920027709989510830325418975472079818177957829049910338723555288495650701172483919247103407703202358115083574756001880884923833606662616758015465044913619121625722617889690069839706122590751946840552561610635286486530636938932760646117884876058870472165769249312854684323559307743704466985790162621943260790420555510361050500321895404200862700924233526375323598661223449852728655018640424437622217533627103213944206086233292621411841471368674864401208331368000542679827676672250102053223717584901069756865336370996924582120380210783889980579666612225403538092180455771729957486640861806116727423466241716126397908072756236985603823288289152610886038882422627087495944603582929528534811885172817176922412241009601324544276385845143708950598453506974074792547769937122209914065810347853605993066366343793503710742340501937686802345742812375082390422790655745937528901711603051419906742363026376353608984036482323000893073920317772342131839895692459279389412596156617749355663658017026923951838257373265884737476530092129637622095777057672645295540025313769428824070926709766088860698148047016711735906865057255594332645855432062666031068259836636800901152127856984641834083171959515637124538423499175054053480375334012997165051269542814130514811886662932267047372180778058800324308705424933476091961703417051743059284352322430208626190228477323073024518890060832504042327293336910798283246933287845314930987491354946887702288571344418386350139973890585236698345468793481500748723435672756623309119938495802150000106203568782951006337665606651938811417887184542030367461405317305969249013615568409076447790421988753594247845590074785411024493784119084431544194757300875349065130978098887758162776041515880868395904433125958829544232472953350595377592300272638564857494600186399989887700944818771774580052880571995516158607346754464002961074504244363192610367493571413844185283882305751884313233467043404635119250009225737090340692300384210385892075335310386016059754765938964153808480036533095800580080585796600137069703514469412536300790667986165060373025614139445169042553259788265069864845660823377659809367354861717488297463077190026347860256510085145403401988597148155874376798889646663081668433578573565199871751869063756539444141293334429297813974522485143592998892322112970312545973641760311840289723711978520248640787120345114276637185098429132684807535846092517036877879861807053025927016342533278924414549914643788839119572619401923770277111817718381684522431963126115610131339855930173259439261344990316962622061263575788562565721356299250021997640453139475234519389260736083037044001930807352818779292265075962230485561067811471954201084829194895213031503349245861037525066361279728727823141001123407636254668818012625665136780568670501148287640779511029321167635342767568154043038208616467746494582520541377988837600371112785192701686934992918247656358419294735747957791349819560621432261200917561257335607229599349009596191520010355084005470376095183352723609614231714568266867338000685513224495140704693892727417884561493529749891086268262237270595249633120741474862735238202250785752422237579025003296156989077254887872262957298715602448261111444359145008387376118818033367081774137376692614358570312034457117941617007130697647780600543542445864579310346846021061807721784767452946292613930756073294019223968521429747657222759470188903862053950868564150680379026681115491787055624091236764688163879513796719385882201351047359450683528667410243070699101300985439761631612666638386948874577961026135279492796137402213468530579883378355899743908774779302465745993327791212763249217788161513263062098264531889690854204265220271937722157303930210240434688434850392934524488003750057303307184252252162082186390741563491324095441609847543305708533158879270031815942381832026007536184280753390075408488254205981688003439233281954357657099439181802257298601802965696762281580516253426391610777025013339393874918932635326237487119424890367000046004664285122485239715417417085722239116880600689937705683310772461614360054420015241509887965216504140293812484191992548790054057409127129668245993988443668204380197516374053801757437806752908308315881024320596025430377812408764083353349141469578408371124978238722574902534403884678610367422398201825119673911719663036595345072492080418579765355502964681637953390201216185369999604432723615359870103618714661204168021824230655668777949194975790612180553776188507326087891706483050855761904326326554340887211787986343179044377367946146247660416620557622629034475135660798291885836301796534882469779493784772854605091806024846139836583602724706707013952140085719211404088617206861379873833299164391019557142461690184475417637082763401734480091810108129618646328246258431242264738696420559014764209388011794935487333641635496505883259686521026839176590430587586635231695882427739524728537008758503806892135503718395766848768177950142691358515280234993690912266694298316431992960766775648142578539750072392092534044391945726999630177216834256368400522511142613611179433641588869146826306723202674022849976911849753912815369055578881911962979861830212946490487478749235675776877433231446919788517521931199531107035430162823560194848300667812530650378708360850890694807352439167997200099015846650254741556709034120129040165839756531480789713586749895588501446964482675286371948631108718296724815376230963161506535538609839609006599710182228932253795195168036899866940792937861217896266893901967312035719740234816556124189446848029272269377569896209993460153266325281894192037117214545093080848667460754351623977058456144233782896385361140766660129756791713262337105068489971524860098768035439595827483003878400147934900179918274206089882784658649945723552303728324941525387866643486280772518914648817066972818068584535314651728494377393488145841698201835503399462615323856495900577006297708472986890028899369047226982853180176132906832316454846946661388647161599202442224159004093916087903266625665079858014850977172468927244902263172597447979759950042946431540475341411607880583811715418999668914579596781701891891987897139204620454101598384261178299385476570702678841752358331311035227347437263804232398811906287722591321522673229748952086765816368370108602185454428052750438792907835386622437731198174159767800237690284108184099447671924706172353155203559414423906511653105424640652750178177115176943231043091642199724513583656437686854866167340496588624692222431807622946695683307335887074576694233885308768977736247185834978378859108274818177040082607101498855462404705355422139741241129558735276316437745056366808393731801272466077075756411424944736662739445610102908702608302760459135302382748159253844013912203097045832733348478352814445543842263153292783191253017817782173618777040850634978628553536225737578142148988055163516778566237868970690079476068646449257318871026584099293937499004464732946280990084735397277685646284834442986166580747652413445025023980494877040083878906653650386921021066698188890250776449201257226145515783842172307346877255634488924539456756014129831045371698234684243391482622991002253183316670783440005415969087320185619607085817045504480774753156711254898820887255571384551838479585797383517761912487657885164841975352415901011782317600235484885889687435160084551021140183428509845234104658238845517489160931745086944246316819536801292869439632793640461230435535918951695883987538028255526844663912950121937148414198907854219499571544921280012527357624996861158069226279000620202515835623366263551359773630882573590229400929196218068849932072057671757716478245093000781972728451113635997084638564725883811195321937057194097846137855388344002999554506375266520068344358072155271834266586142233410222140861389886843447459567350959907052043787930349941441964325292029121177000183272849360619394838385897310841036023584544864220256955667688442597316586700295815624467939305881005923782838996381489275026209720130345698621495772697700648535733565763571642032211171822041600359629920386461396471093029017608642412810828803056611795685294213392959949700362486783300667623123492100666167658724986272956451314489423138263552824488791304762893064281446636265381942180331889684254699144328860062124407017659776788907773093709953164226062294644114094195214257442264597640853568775445984415117235223785600871544049083688271668848650829336906419366811649080148032608919836583996904303118496126215691681565838869699907993726855378580569011097543459113581428934173817099421356514163064469415248789603171255800174591359378171570399723214719277860798236966689921019242556917537646892497766889200352737940259642064295262195375437402217701071966735036881653323412075122624936049428875132519135820079198821327210910286640803282217069550813449483004733345354793051635621599910117861960526758910918313804695995632711999113088949901995753907135485013947764623098376249770501087042574671970963777984247215160982434770313444191034297929651114696180563094041533579831435906944848956971592203621841145902709400794123673131876236245782907225995813640230254671858134731770869030927474902194241754444859729092771671995833291530516223298106888910493660514332990502767795785003304796626710433882002951046721066062270295262246661362283179924571692144285012570692979258672501767439187552071209299650283155246049523929750558728687475642924733722343617723893389157928430784145377483951502090920851362441560627369101592070730566135633435656463564052668051059953610673775061018495910417817984868100485268380671789885877633009631507311659438619368940764703818217212906513044435595711220988168653754539929222648447795048447815544033748931221254054576463265523173253024084703177573238485273553374006854742420392026945637940496857420455629661009480058296307255470306908302550869259315083541536970884081142817314560917144951958490504073060110095419130991201000612386252407615651072624437999612173644316152730770525241849911480489719406867691770682800619068062947789521074586651627222768339727684097099881706533881870686553623832026109223317037712212751105102771640426212994333833126152084567728492187963265072737763663468696164275218111964315877129304317239679479514092982940897410274067560244454945498841779622855914959522102658133157047558747860054140218400364802284450920624943839707586473731822747539427010222700117483609767361340033384907973998046745734201646914654267367396424711845019634710952161222236254835693803633122871628596853881818727899307403095214644387886533959292841456434057736650955093788157509934544190719210462760703594980653754690436389298671912016468188426725959938313395250516183603491102241704329482211515856255858759606954857421114394417816756435225383657549252221614285740000668229270184062439899006971196966544370349427178721632911802019173707278813465461950214038729935047500438192144717284243552379198139492752145176414336339448386790205698662730732594619748447199140553476048727171710828276835637259337253784266025637792790085774935215785185706938185836089438348367188781375139799139958946383178500827644238675326259738174154799769007619289076992628469496990163766611931199447320491098758942231315459073676190504261252700051326905253792486700912431061149745711605172521761793508861635210294718559430900448967483767908656070213240400895401209853108771057151093825245585239143748438783348197880563570268658714438667590044169229752213567316746385525574340491384401195649692298460941902080184809782998336732373944238652210945448936655379208612824321096470221542605922980359918334937834109078921142757481317556499290603571720327449492648824732914462451809086917903437968688172673853895790606141945113674744404643697086252108380982967472010604675219231019130653394726947008640567815059940949635070635258910369722601364791130698484880819627514327022291301381074811490283163972912695576677976074172362344492196409570060039333544778158894765899757449514675736832244448971281939790727817443411994568537862210517760546846999327161516414010263528175140287732068522665220554678158936692732776961084563532069091791951019883801212201264463054517335197457253834823154050386718401046689437103149982391310151164506672005890122915623232864772523414134861763682368924062668098307416609847609138644232570775342965829851069606092216525761853740454812905441772483739130625147813996551765558631319650706397153166596062801352094898451923704682778947509987771573384469229129952672937914205105056608048407857100871394374778819424655998405544166737402507815867401593345391533528122583536386476654836720269414112419082729084923322726317003730791765674777473772253756816937997031701637728167772650231335525636132748125069872814336716065002341698713133156949659515148156784165131543586915940556234518505134135518465186609450879868270540459911058293273456012195098035710867691893558650385440528117453283597165203544277435746924942037943690594884118271838401110167458028834350499919262365644949108829243814596749916008032266160187097729396002210997659890916167512175117576373244697115091294429639962963008591390133278655071770664568242270324005584209202528290527470646445041507163921318052079985740381942636596691404121095464119136821589888408980169968270563744505072858596952924546509741051806780706956939262712991568677585688352037593763651215799570562539629505881851031720679993022861429891687647676433159451434697796911970903762249733811770770063993289677400511962769918944066579076186106446371371526285794846240551527239293582192541596218691958772919391327194370545587422937262632725195666959751499557709756017522938470662563554031600824581555123764442568834214155313772056031926224816302159188589018674699990515662630132304602202950933958864790871500876141443892436496010203287556430889621653456405039815393351078401423540506339999125292360909212458318082955982625044964665457519676665018917438344774470828696484813158711050376598454808709776452163222055697909250327537349842738603618915495805659788872793076180170655995845842350584515323891225772033378922897024342579420572058245344009643218636616168925997247789809188449744203430701944406221697382345281984140599206548312820764133626289506194201511144647525216689557319401091637651929440774927660582574962398110176929756749841037326374141962150717492723016444304482510687770663927006497367087238575175935511013766496793174338608595674829243921178071269828870087911383661822909732621797683371685024803501817622328281051629584187865852772306255690828773631810873141081491244749592910445729438146767227812129166001016154692073860111771072914031863422814743436433071071820719009363709888267178718563504169286018668840561667625918397228998676770695623054013259259408577015974546082367863156470615446875202876095310795683716739730657491597100189380706667270699178041614320130068280689720006013207271554911749744462155705599080810907047050309685614422004887175331664365805649612946433936393381092346858411845073850983182724762925601360489849980656150947667049466415542477137055690432724949674005132338823976608262300912150113647400335551727406042456119529032098828520125832949201412086202736969452762645050543634636192068849583831796914886309863900903187184430143372523318960319178686289335407121990399004289920939758399697109951850613933297523324268098719017381429844488964392145616488421617338973194765052757088255637136743857603462035521813166436770815265590196304213972116257865337263265214563529831182519335779005839449800385173817008910312799302400321073313568651390995720791914355217130851310299604366209012307924942853047059714888962264376123937206445926343521021389405249089150312867526112534842679709988998730960608982481575475350880254349599999031122445650726731984996292174749535826066927866152129160010997206487976434526854840252813835238989541898550041760307598818177696137913365802065133045368517822870131758277061778451437131786878454293615341128680744111279068646840680835043716064506467848024098263644435888424818949283354953699865359105665218861576779610119410573801654703737278885684122820547188936953794140246930603326894172395534383444614239925036025841615414926513178706000785332238515193310502846217785147111930428948792652781848287575357287250754746742008924827770209125737146642112657892640335997862043299806574131250010705071166323420699389873645539598037304693823807937925445630867690913221406192695660281831712584246585784668521710140214599597560631670063866139976085671173362046339435179492945651791431774389090940337198850740655613209158398338621066560615568490670001528676472856014634453096064856010175345692599182844528839188085197692787869798539461954004730090274264410985429329303980787812367357430419228199164341363429215233300459693127292776337568358475075358923508709837007610742098852505500961189607751087855430667229520778075649390289233205301763490811665952457232354985001181508948714813018962043216355565064856323923072682051752063309459819576426081431864399361066671983716989836336417787265865148178261193135612716706783590033954228035616702524783870990118735952917157238251283333640448293735709504197018014901313007689685840742258761309474810175063160228949742915729344319851384639260519496500878222836395817104708838511378139350181865019685888869765884654696265023859759464577988716635186197889562296111770307786791879641840506420973338159187844994770422970831500676358142732047492399284664350747556628392882930141976821829882066191258200948223170424070768950055621200460723743429790778663461942863467940960457197457018765062793349701820693244373464668152119547839418826958786418805592012056724452959487831180928464631465851003803515142600525945737333595960042257483806644851907740483690751946628203228964409969123107656000267783897840403889846236647202796098854216395969011087208002324331866344327411149013481884007526694051258787718939001279875595503450793881409532880221059482236807449762326641610423083879354316285499289573883963625602050670842959264684918951582257522152853986029208976280852399473191245602670357614792943294570442426909569903534982291782018370971854127195881917590800362663540710357662843190390518345806462294321448026758124767876793080471662596062727729632964840754189185138432816514635727571571149791169752281347647606968223749107544333994620331014999667479938365068906553566479478573337464743167691391362288974658338163249641205721154675174911343301354482489627352751362335743546256202566073266290572314265264139066787640935242970548650088223920272484023485337086551816276137098298080351038814262294156019074739329902493873568641966889847652101242010398416612726400840655664550319108498547474688599862839239445167181360210245247691605874842154718128116665252037561949851489187711270645353172971466627465563520517395025442545776535064112559915524973716881032535266627931978869072578744901052267354717452200475476470625075753175284985359367783633760640346575411986145961990860899109758737588597207876618105443828305187572490875490722656834590293417481359519300011664108484449339138062815911778878663362301328532267764550789591163130236902575871634467745473890995775360806268858925399763148409202958938631319541743765639068094608360927926081122215567426943500054503193113549879322020569788688422662132836420956897837449308380557983984776740297924192755606376265288171122293163305316228525292840031811290416749582302618023699229291057716827778142404192494129266241594887626013176276798947198958154087166871136504921324467057946537400250884275362241958187403681531320246511511563887631770144081886888708032960443195780333819642099361206342045031774758909945568850963686163486795494264724721636857954241597173813337274648018231856914720912210051697208069718614733056989395852561364907755475861029649337618990945032161782334712296766651828108669325396938710023419379530958544103867501627453587451150190506956779887387739295189734018313872839633094032102119214546679640198329053359232624482380507881620306024091918675526786468385096278175211858091520772088787160930452899901533430343735366603259914187876484433043690376517811319886422244411085168116372895466438659357830148860584568903906751452028500153387280817639112065905796608758268504315160737824257374290152225865287557127430070425701691131060972774249271227227003359020029345492205553789822256295464530264248413504427672918027293766063194748670827033370334260813726559479995382960818448185032697487806232166332931512986121813681341068892524355600193197357869057403390542342130093525033650883270081498654420971825032206936870353454623370890626416069902712109563187859972073263302224475841007131353389486315767862422195894737566227968266970038250356420224570981649486973849745464606458795048767917191419156801182057223689664680854198794179160622240347125148239027782540618251616394650540286394718786114832711964004587851176509669719315122083563994099667373642611044922779216069254034132204644361868476781211311284118860875332561423667732267873509247388852279645188353347633151189507578517168122335208156954049985049106659097437983948941818768384751688780466969439603656682415785612979909395402826036966317831049981981718290657490840982782308969326098547911098502338366915159151931485160877780552385790351082167499965748133034547506022502846567108660568059492230160160742115402306514632425250445893269952712673374425193594249720128144091752498483899248257362678028840783052940550570521222972397494283623437557039240416768553179447080135983643535588414588574282371039430157876872050454509100748681078219444872895657800969582731743557558423405504790501628645862974447547238932411856786159655578376467990203831035576149247423256232880094424466397209543405588942492998252437346610093139511071199791843714447629992439181357443257202834361576534529322366755948990412760940400562764864735664685597641561117738359172953331981959271655579313147739044225222980697166285327510625417644832412369327138147895271470054210915171285132249785165106855633123550311562633478153432238436597505664325879092168420818999709205724478640359087076894080551652727577014400776329617450032830747832966647595367658923213821310975940201591644127072364549529673438072497926914776517499042053986364671976133007960835047085872980739748847667696450511250392300000949707123185648805059633450867682423227899044918693063026618922978197454552559726371391653508479692541026198107840929368441576391305434218304660972421258826999273021792388342328312994705811431703224547965423217442747389064276674294698179963462315470428160851883830304520770215034298299866308445572735640245145825097427713157052030083386404003581559933555415008662273276038333575476753934816039140719625151425999509253739468751456804438252515097206826463923184309578807991194865029843705090472681643688676979330764582732874185604584142402717066370999762023409302614418665501846361474912718429196711243757049033458695072484995813899987568338627986445606397672565332876558922224007836416087421732542565258852155299857914481735729911970877031606913009023341294656394586305465488844043769444629856693650749199609705791717009191464135606440780305175341097375587430174322783460281348121240330583371611763084455112953666554203305627606849493410252535608380176402562340321215765144140374313523617182390468040093284670590002205137498766475397843183531314702303955041062885611081356905832753967478686158287266607530963462857147272487840024159586027633150780405377540598229462734064511586836740974978009690662734786240926669350679633116870873367599864466553661754678327305105100088446207269200865271008380453830452517848327551860910216504046028504257060714378975484294222997620083142115039007167339739090945184746806791250602513187774384884351233022895475407383332188852842074579283472212088086812830397083863791445987967749555665928854958875238853719409379401029537499846184836077980150404015327770499114856766255427116959156417633343265663673570035232280989218123483868623838774064965488821417899496459034057906757386746269683182078470244181041355818358668138208479178103852938020701231900205534230842098827704763865256801881353333994288687921952241853929166858002263465807256750435897738498854328565908951581008556869648797207993968348254057903188935844170918686410655052074612952777130861078669402400314495546554669797111683644841949983096122454558995881191990826576809283825937926142917008454648951336359396104243407275311177964868437472910755977712503889752284472694688588884092997087432090226670444388486516481491532299855586999476454033431336914617165653721511477687203450255629722541622923009731576387517555197456668286225297336046089519007702742703407112990273495168570092499239586088195250720273108756169292863504959673122404741618143489105188098862434033092251469947426212222472815312566017597894356459098289160841803663206095548755110823556757201381574801806123108044925912422030565568234095769472854372858158378996546316924834227312779614846257414635503965695818917607351697951155192461046617205938201899985943166312099852433072945668686264937014887780144571070853273860511154157165973069370368377707049209615237523235813182021264000520918956487291032541308438674324453710580715976332849023510583842666756336786250027963082075847198411385252120223677783559018214771631812610077474515042781161997967210651627637438974435217464253938134414593907996420190899160820556629757937879358771457147797778500240041642744240804110764686759716594273945329976900883062948026778350750969237550257437061763816774455152485619299227803007253892581259300331398675856088073494409367224208701913315531733098489605868968839441225400219643402450003808885952040101886683081917795794174312607051385795812415236513922140245312801941696651983541016310235934199772047614752355468054857284925988618122158259761406372227581425812803052395279803692907870174929261348789984194572171795216395807560439779114356221640403787616783441870115066580234413667678314877048109930246739729523211718400445920391017262426573158302147277347837756939012355306369274826401571201017709252528632815058130603743216089388082428772351253996508245873160934197950665477336305404805232826011506739017076192952227198863026723474798565742242516860523151415330467720590247128114084617515461749268494553427610571818748761950276483941134746948595880865277857747269870493369916116130682797862002176688460199898120243312706774087631019706240386353557314745803603615662654213997507441746693388897892924943713346044687161214985830334941713016186698564318635767488879284929897286998123635234228319290374921394628557998733846326185982741226454964790998392061325939991673501333823273287557910440551760881025373217649686294428387440957549407009969612397418962079275201316886291015207879485258887689885238621373540717837708183555399435849295552112458593364289888255382972888506275111923232353776700725772463986623526869090051824555349360101020666052873060060011442358874290966219236798596107668154591562083094054890256424300535834302632943193048223087065576146884167217635855587184643979207314524950793071573938262930511062553950219539167498543029965380796752365306304657356647501556205663936861556147028921454267595849000087662506475542664538200120897602287989593503515860072836631593435971977095336469396768863000815623485218687537646173194314816803439642370337826517907397875518504042547215003136827987560806270223571331391271401662822377331530582545723249153308211227394703198542088281971456122362654866874404098722960794322552199880101226132512090517729885262739849472867025432488459702898484592744026509481930535221831903346946320104988146029383690826408236027898553709875851211393022927061485581500673429614782464618695448756256761152123539602483942747305172921023209841919205162804749470218628683979595707934609451742633616305271992395459412147293804301025208148854483160727730063253126488730700576023514491340863485905316215511179028750719258444786815520093903775788024343757084699049769356749847358137696641452914558358501439759738649537054871930707385428166757430325290977139495553986753481388227724670166257141097276733795162361290425932329618583979261676641434201779586976075232252942166941728418023266395768229095523279507143242080097979345421759511477661480977000266032341084844375347775412662323911443592210525059545986190999804622571705838781237391409075224850143502573945091636084394378574564709249935844279295064502485122754704903028864495875821434889741759758941488522527334283194884796106389242729131036600387808488302409202680456696944089758719984476611477548615102334000613478400289166854920703876387510303203412972265343039702532496253424036074183635636247273524525880684635788477284303548774343341857254293595660570715828920846015692987837358840341577104082534813669082951855371287233914649738345497966410505438690705682484572531106065861737393016070847775855713094556581252796161047725411442831824795063565374461396899573628590036729746525727401829188679786800858245149095187839428832283655555269263001131619365227699067902855801265602180751098087516697716406524673231220345831202111072356659229023283401464790826957953013583288629281999528838656654447669329735078864652256629879448683269511159453016365609281136748675112101586275822293258907258272999336426327037997391401821114244213621334023097796819399996209384527101433401773107070898764059577978049004947606487345240296348603921022043094297110376412167289321994057702293860418818818958170225618206153878951696829621327706968855445098221276344106785864092600825328922397140982986418889337315986149862926410729260711964060118014892588920806700653647488213510420383075433161259788078313681721015807191534930840340499925737819574740414697519034577935489649894613570966548325819482650291985791437970350783133226737888835439171781114662916907932926857042666767362978188834596030176881121655257317341092027201486778254743278921446917656932480171933312300861987431654417387735428099033319649272621333932789998483332891135307040857377993220639898447325223561746518960018119814397090606181994974210700711666990200749489691126876275641065226183446231731714994035066950231929477495541685032986786729744221430225463484716988701519646733090754065961515862448736869345501962804687231740397254928214128930913925287601571702338241056621100807183768348397339624347713840275419896528377231549741934192862456271435879200447863961095463441411426568896673176980086843951024149062398373293974964007215442400687432292523232840376572675601073695749608091435717107368391862349621604330808513176808821421205221832006204769642649525208584190530949003192359364202585281899117488277550054294686307998781972140179759685891816269099838876502237640166906365821857575928637381739778654004376237828894364380272163488138824395080242568560334854819943670511702811895990995068083644862177170303678857798684161125265810642358524531759818994787157712882415492044611995002903224225903734914989456582095695883535498844095680239902351870014667061167981445901234782529165476612491152089537207914222391033939809862188222709443240093844611982154749378385988371238210414476344647247426970697903279152622953590338696421609223914287885994520915599898884132463419807194449159672658750777736390110457547502536391161036155866403453170974627195077629683219142306519845405866446447791681736099722633468424578996896299852202891225829802597040798853331143153585169234417386646201990859518522861977547477219859258229274333349876151380391379378411475178319190513687251809344607213061880782900917191674921975076745411716657853170157049967770632590410355090431405040780054190980325889894593458907271508342954329822626348143023118319407147898710442357054848739491005568117052523838278781571226603861136965634305261375563028282128595539448005020230126938979031304331560743913926725643349854723376633725400574809131411206606645641340010583731803146131743346313298957227475265769893042712009958743716389226772723263147563385188759807984609889287254691387781845060259105973449107658212047541696740384143684302495697510996777300896599578747175295355595871571732817787113146770987515417182590526307686213786952886937242558286522643177286651427209479632069349494620651850524113081832284530447517636013046125348246767605043589390759133996362737404600917838251153712968594564976277735494078763885715214248338815842198836416686102875627920627997571608656881413627900419060125153879252300038811792171827183444828902737934637365832665104603221946200053418713913938918812148955793567691006793730695229168233538395804211754190832993864142888898403275119335654440331892895853581531117074973408612883629847932721642140674382150136330222299732579213688761444681656463438404864205158135133872748096501057538462241145105542150732720148598987200539657858234549742485247791743306255592749410441322145616376851039896123067580108683568096085214255125979245892207214532569151499887563759174296865082463810214490458088863775772359883513353025778328968935287114733494546524310341644712316586286539603652521597817060326111489499191319759308614796069917876779888188232274446048635689669311879013153622165814268371163141316541900652507420627529326493019581924790379689497213763092781043180885650151293878090794078212367818260165357430776094508446072506204722333900797084744683882921425277972839854340467866955129338255001467401402595278133593608796837012168416351413292333508016060700957540014955679303992083257876276919550825547095426208758899379146063312434083769531055980211867757862881635470025912457334894301115143567127342327725682545188173278481595130674949222933914254631414411274959662357118682793869205237057232201907287287287568664005145190611707220977796630695619608879914283086711627741343479920305556350404522899338852448381540414550329856454335558143775386895253730052734752087948744751594089719454192519099048197493450649646161820592719231716605532238855333884186110281390359742270035459308805057618133113552392546483752604450756251386907713066436224739658591313854645197443325379385141010163362546955678233151815326358598505489783885855472016155228853267800632299760457623876132212566157716281729170886820870655831244700782092588753055988178825602898926028283915602279081848950344749870077710438045510406784894459232094113863239497657996535753883379945502055916822803937474213753147726081718745270039260656929381946224212279012650188621051773992123152313190535422503883513177796878280219868972559971898107170765261536760252202220459363575944724366940643664932294756338958727746205256291139739471966285675673128446115327297144537213517569062214325580666631466331606800624010822053769419172412956674244467894610957501986788371463028134814106860785837080028327097319884264772468186611013561956890169352811707095578565671029519155372934446846928639857103035977421484561436474812015122456694376884388027601678091733153959555893484018533449122255224436524002452788970172262554402602198012036730796188841211464141150616838659265135214763047554928247691456551583221278291279502732024032232594895408610893447399417023696613433580642989376784421369798557747865538450848519181827282638752397641569196223046517208170270717719532223441499727808963999364495870896430605607151026463231532213611813326232265744270227148218351733043924514708882989933194303814601047725269718431669154657005457660231759675845993528966972107379906194602265278395978792859744975049850496064569992454359130983960920640973429431707408674416441690550828838481206500917530797359922875645298767595808958310522188786921907439129311096987214094846011570553961405779615679647649733769760983091917384031232908569519210194399682674139248400173700213850989429280370999519310399667610300124587216590843266084558427684786256126786280570313535642805970800367295432857295508176001758080478973896415718917165486696490179378712831459041962840276142470307735301873715882877099778367261474146163750525898081526066380322779981771676710907412728010234535054794451045947061416914466285074479796301405777626208885764899273386730184405812583521657403862238258814639479092007328180004902049080938976092255619218196834842873360881830062580852881454427525227664869503500852759839572368017626354069057075815390528496932947599197580424557490446134542503359459857699315782441529277842024997363237315156352113509925270502165244404147273387677746628441808133747724617863720651610846179120987146958864147240234000292715762640048323187478383907489257775151293358913873315803251051006307554590097311425103324304003169490473062625394628346615724175214317592537379049045678432809658622752146958556099092745959391668398233454557967500601111253979510103251538475111176727224469178316834255485238369573947541766374651103375953744867030521815575667749050061598565695144006918663061979063147683075118489786017310559395929384040158421347157153922514348011150031609641979652227954976476386704037436769998860334659097778850038936828594698714214238224220963992532644277964124327534387430479041857674411274150599319879768934970512760267834972034403649715071350939232275304995332512054380953823136953338570258414201094212646487727989571341850953801046376840841428647871028303119666519854714894318017813675050698562877247745718223562318662716103513148011687713402372051341868010433668928115424700476660350908279243808192468821949604520866274702970078868325004945638369709917094960576576952180594633751306337394074619354164749827658157086775161785533601211981969911305797324695749601317873462861664188548049461338803906222887024379076710837811003261881603861069214718387283938164735359479966962869111457624890297149472591562649561458959215686567709916738199403551454633644470152930285751434332830862741363162249296546831555016300065451221809483187123723966627715308028084081768293343445004365847152575594061643295233358231746449530619663637588753480844736157114033681067606684860414385812875615271532922426775429169903155401514950687955834427242035917466474877007114342070590184000360169040873073544724851401704045572065219292698408834283785666328839580754171593722419415350366833066446793606173797359331493524314792478899375004569672792152131826040166017300226990710413117887249473499509306457414466039170138029628798585649181686349620814666149325321075215204725868456462862177629086072709030816030822330808085473938445998057002514050522013199633502691522270419108332109864875731491966893306225896863638849827170013780033586746814454193314823547728025641669031755830337509676441120189709159749227683709982546054986061292190625068490373725532980537779478486993843136137106481601531150754255988364594267630988533711178194616033650002291824177513127431796839916819757340572294640068261598849096624622615557872958865968399688520361152100739596415041737241086517087895919582357814752745503421230767472910132720893796512212386208664492873981282142173132546736890085411372127168786852006978406416710368550684461383905794662925483407620036226843975848626616568658712806989899381017413890194957044803897115503048117426091013865883647740507503223533651220014314733015699925412406435707227842558603220657332645859960110463289598975370544709659469405365906984891762434206054352345234939521711920307382032473446798288387064037480300834835453336253627507709512865138013758505739546037132369899568704677917395914310766620764631697735377343200047194379066852570324816996452869707602115475783930312420354391369414247783341214865069089749726304299994594398618917279974624261348676526657375577290790194274077213335350186821062449934394769877144479775841819295266687816752464334842864347421525207234626420028476685034539483002229464551619545151122549026891759447924014746542455322432532109245592369280718938532589458981947195162936624706674514986118982104209527547214029665584368059233287648097029279545682124283368749373382605210193895237034864271566414446513685329231887373008906627974697894027378702681567190409749618506548386965243553065260036043919698531574037181577816718417228531133056328020989667515684261419680927568994823471163785927825598176167482953837892830426601473324193395512139032606933220512392822586334115984716746011107931905689572309600823935061091882467664401184724785636218623177746034244752362480043025132917547409459385197433167436021953034680372433353016673704497162429893419360750435991590350665878475582461731297994925103576003672745250070747248966982596074848071312737053573827239727202661970258420785315939558472662142916515225917104530701580756786777863287396948487443464401738661419840852015365214792571574431184272420151056973470972640257226831560853637632359450262859604612920086525229014284278761243419846388051111474682521557864062551200177274996873349942542251544868068425124374471613645930306258606543096663911454721005897988615640969907159816185738456352226229510058689747060215095950204842206406838421052789387550268717843708158685469833419302310017425915553091977054438651584923919857914285226617317805552434557952188051466564087056714059387858565483825215219921818446538290799278417764508856274269491007339059475890555337806652226465834693681172639237802142441161876868152804990156900956158177292672534158185622441426592089568319420159086799305131054867423302754205346054303980928727088081379419831796628730797385361327646654151018983153382678207754176843707817727898561465133134964442019339235676920039931635665145123574762298648513892250639810410583452159446942718429789580963568233467103993443626754649688182930636834933940091244291923891892844730089205059400954224039678935341180740650557750073715592667264910209766572235542391950002480957144613250732119758248569140618010345564031597852198301876785704715970847668662328557634796400007539580774399171346382892364897657985877656035407300337616118604507820284915823072737543228628075647911945715320823067043932810342041100695116936667230154832481937759973419951583010628643489759165040151708608963360672065388860856061686788190892994961632758574686065580373614025478504996002090950424099770724633948640332107415167801325546139332306634675015582605404849991818468524843460732036601557696154153598089296524158907313088024575106058904579902037685708438810446632454803140460620823821366784691053089294549419041135681928578792857762380300624698330195247532815423493100460099780782003860077602130100818740922386951585618992606771778009898240131128942371536910721656147007655268073649473947454744597132870447728173413274810181402272906726555616322293724209189294879887185551103755008634112312199605085277743529568177368636456929294065414469415365332611231600379521256780004081351795476284806417658473544529693310724879124196503979324475032523368534020118913294320422818448171973986457477676948917069622457684792882165398540327285643286458287826293447086902538033299721127269232892153261328784246167854449518258930513490461465573371154119073669048086216144269064792524836498226013551632529713110401138841432256346632999060810027189315494474888001573379940372455468876307099093835986454499376616814860868773641243034784433948784799497539083711122410109742420806052207676862020517845294718641844173804165871518123476439546099394288906402584183645460647399635654312170066687188435977392120842451140320988542425720074702883267203021657415361377060010204547498999813970265249721369768792199090479579273926979550592867892005846000591867016185043632380265280069407105021425733280894017606975040847066020276316104018361588443373261512077699685894824207328562210820829447775110723514134904605475064613542459326488753717636429742150741586452681172732612714590391327744598226471559585470031234060019187939239018252299089217175205069282750724432329547075773874516755222107312703035657005328642835950182087541237176570713142542666819141237854774444828549121246598948819885204585800609994732092043795247896799465374737661071125796801233988067387786029610943693585183256207099974710878356085404236350375153009675969361896438829357898050142998224131486891214897081095472896012509866576244037406806312827019463995375771381813517104295336163758050253042734296556537649097123017687840623716713146146852047244887490563118236010283306583705543682582105280623279984566668456396526265025192563918285095491788718687549813249050002934480325627984804548279646858774131011395315498430046203160575126180314128149567626711006857638255744088637626069066675398131352022796285088773938777362539305768190335966875993183426714088187970595211021141361886012863337628521654787075427401269545302914774309054337550861063835859509698245630858295407346667206613302472441394345728040625905519579291111914873110752551634464970943814220142107446139866106652596243946229233796679954701946129994801477257684556850164480305348215658373199578783392659003521330694149762322957848204389662218281709825178944295910562592427522620151887040750654269231363358922138879285142030189391043215476677392372514194978192166493363598763210175104435546816583863688716229731294187235717885321784263833781653388118483975451201173515128092135528479646146218465992701993030315042723706918928533718775533203452485252660218903614056926833613903648712235118284166437137233430504533734249907031493228780769761513404464809353294439470956476338772226289931247025388815848436964892644270052933361842825181411750893448194822327425873327206088554269945923627856054997177720536164764499701887669001845524739488172246857322882418121329708984861673003525980048412980065413700789504679158015247571414141394244917336759790999441020154553606413711853522471816531099262759369817676847927277200502461999011726592944245826160394877420181169546092945464912235902404649826561603054994141774700536263751595044139035138958581918573604063472354424022255830199371035075995669409307276157978631614674566791701170890909474867326863499888167340851791239336932278311932082157490977794594409006442785186111394834230145793232677702383472603842753661535402289607900501836330193752934044834476889347129130813343687060846388359830978171575960973460077081064570796950462550765031666228087049043979441625445342638682528273302705861662134845446606468796360489628706074282712376334188274078317137576538542270964705692414824734057718874867676771639440889608906834641837242699188496377662979024547427596936075994540665014007275516203728132716314694483610919013604610452282377532199863585020168831210870658580953101149649156091748295361548137368704168492145907910674851362436336935570492292003379373333869614571861570558721789154392364460682630769116961677704106358544116668270547909930361433200356685203705538827326713835682940042408498337689186816868697469263447841592546787190197178074488180160801554537674931989145871481934969938202710668287190594588355822222565297711186322643203828389600090663230293957662204850675305071301425266381406267347264729987214154038257305248992447897708553818713071159195647441348172703320468458817147909739637142145103218730072977795174916325269640349053644966126701345541515238917870292400875371153774085003768224010699844532217723518160956058534154512743366562238153768017769503008733874253343260518779125421865932564406167199690822446615857056030393425461860437402883315856614026939190964064956571015165297364731169489884223517570319638061733302398802579006000058550702759050086505812251849008250945098010231683098705995363569924507564286811235341312116972611842990964931765570197883433629229125830506204400606479721603214577997596817933041763311572216243463043567569967219460540352591320354173802203170023215288020221729339349162585394299307547533358287640475248331294336212280615790303686310255311991150036038985517759908020884750302552450212642188710805514556695108551631820941246774063724002184779601559442806923132119744385324059909193920289784487115861200243545434848380548660078312197654435258923785743199914030120042499509085667885679888162498148607863457864574492894640431431701289750988313175039619088662039736566625450880402951955131491419310936323277035934885445461323115122916185409798333782457230213008069706399688600031556422024171650815782541081208516668129226782992579120128730655786719679203420579183539398731619024399472703012601313021104954745605554206118539950411702245701775648490927942630114151861940972234260715020942549054109616916351927161125753229463985843413469387637723241773336912663299042381458967072148248298686845627306388352519799119283117134414330320170820494141850964378207311652941378127520073641456370611433089416748346160648684147977797079635938559934552455053419131190813658928164910852846485809664243118620383209111934437598540994072063171844205708390408182456901887934070786301778371672717918790934390027455391954676594492763591867597805321295430008368927448000847853959942899058225074115187598223660354218391996910560294075560734472816867999837768520301810397045222862520682328091982474528778685388299668563592584074668025732783856079187820339110630426865378443076689908703784648016181110824417612593741543085156528708943172935584705277415153478395893249454871982735620417971780681825357633529268497071100972606916807223561750606554803708220075731675287807247984007376347281936103675990206395259145869904935435021968695433468443634370964125766238193796013339286300981610432293115511468497599490900232927342291952297142141554979684012758682177535523581897802534347636730836762207849728836049626248776475484399937338788790389419775390473307626199306706464099649904443448995386819978421559383297829598759150486802397876609998314053657828835386943072908709169353875603196740368340429135798450926176846937889188790151383486865403396197595544918105895338830156878768100775497349060179535495708603998043335852427821908032745379928991418897497987495280541636598343870837098016164323704227217693490545743183559176217916404714364230258743745864289083801435773592238514311988783500085891520801783060841519708105483594186669959488287455254707712705104328384628539173542972307260888133385672848968861587428689012085504588165015100899987421364722129400818337556938308468306304791175815647676823736321172123543582681840546706018514077505081651634609079877812850988341139089310382879674040235987317700313158630055718682864588498066174885516677442030261388982618052710935504467334178728263896929725804581163022705336218360695396014688548192625319727898249574126939150247689908816284449706000684509907215816844577931570029563294069566562464674056976755722986855161646984122910932817823987869368345850734479884652063656704311911476192350103196963223094895703263411981347225550460290114941816121215024717872675036272550738371419625693185973099521692647675626852355833141852678010332663814463845771869575869219132976887630151220707515843970307763720894434323157273081691135436196885406729823988007287761715531915264111533505760692549092855292844510951650164967551217753546759505540847591730423721306246795173496384282921757612225015937808445303805884708732230841753834156335526316210418015146634093844477301973406833742632905444577503770646472951664693327215312950026718639709205505089268974262725072382818707893341429767766840490643101182674110574861924344787291500296470067632357877540419491213412087388464285847943229933978344665111510882331405810337959587523033282311624285181817397354713948154539109106312636672041022074470691006721110144633767730718326677463640883887333187084415918770778658975277512985425995016359142199107323807927685055633925874110220769141954796281389169879340531129387723242590781589944499604956651074918959676043461384567477756352023411131755120250540858773391782348291877665318019975668078762581897070688570311157495300981675128732366033220765443136173085405781767380053280392702637349582478655926934473862667784356538346108422978256337915006449062813572698637708362144064873699240796730664204840265133831182356409074049588579771422879202415421380815769589599371222713343009071311620319949027381112273078978980663922500794063083019105609125807052932045941330082413176177739053366102773933997581681906713227506486379867751673582549861909594613169222846027328500695068959995850814687462632783323777835416873215946049424786411914461931337894429012674575153247226171995989555077578441080927813122854791355494487574517244407746002807825391427268965817265243374818675273610991346743209944470007718141389062366860538057766763210469865052074255161717544642251152427485123380205325510372165521173554864153385113004138131035627329070318423994346587456104633917868209949516160407061676615375729239036450146633338435605705465046875469839349558495613437440546889031612119527884105358775536164238642434736736696200255532688218312279050814082280307580408856657128639608020670140187359224983941221652432913990086390543212408433198051212186645219841011412572466607896683515844370986070158957639087892849275959044806830219035131260159891808056671044775969377473383920296055039184290059971651260138383616507007652974624558812442002302390223454486179224603364891617007363215184435160419722400340844029217820542075664782728338592681615704672430660228352321844289522442375809692625223070255896700169296539785458199374425721775630140623224118933580706195201172952519647623029356557033490191416683145277303410133955537286955898505824877144711484831397460478105279531610536155844255505888060576719585889860689563299006269635226474318937555007045035539291686034762051755696466708976538866679206868024282522212271269799935425135362059961920665274709238583500797689803893924592986299114956892509576520683331017689168098964727702576178210233915643744540908738437958037881422233415798509169930632653545149419668163296962837850175252945096850956102639672511157080708103021635199448758408732965944499984535520826771835490853150375002572117971991697867418803009601084819772243901316237767803652131526349315421460628807104906856077429834469306698484243914573933689533330601153511662031624645858081150097749283973725953390515166893513101634888623936849145493845487675679236914564211793648527807700835757893263866743759338517808265652910825711280722118300917850967576794692796722084774327484457926669735684178409498445013180001449712239626678780063120680333483005140127080523941139718540461239837617037388571409084449860313469708436025139538700047318752945552634962328411250406086921234411006337620264248718800268078152628453754640018355577326956661308716878136281272532691045234063643004061301628307657198724712452656045027773131421934728467784536238382866178990851202971704207359871938727661180668062536006512943373043519622161316121423222666047402234388326411288520368970098718657379148888427812949622568565960824725373124718811505217143661393786698921860734978951394637212296524231170611261847939338183777993162128692195356277260711937966720601570232363034278434227844176981642746772827185783733408584498993472949016090692029304705289425567033307121509286035885652837386385892245601656116351777317001167898220216617178953759281857891603008215246715387355135057364667930693665843700818274367224331792490136451343516610758769434843629282910339854715632586702570341176601051785802036215966624501912725910610280759243676032140042755923706986154573240552314354899894358263209360167419240277196523548235566735524554189049085349655229665586112123071569064964080586661098487207636197077195060659275459344216960254919501476994077467955385684673812314444399803491232332591212714465366658025634721800515129807670919099865053217315208423359804530912063212232217257065267204295287871366765370950511665083931942725158697290203468427771011116867444341142470928746887077102673680423440131215738795250453241789437924225286325531735571341459587614705925078763779836238476651916894362992602748938013280563027653853253835326323269444024668886952444004127723859733884663013905144203885133598277623974461980261946256572137703598356613646377991725419558913655303909294510925699616136712592786906067047949697178489830894996933633924173950241970896621997809151396041859052377141053978886523916774643250681647959597389102470978507399260372495582512231369883804937757068964529111139941474011668707745669231250035083408986952537171428549655874053926924488797232785211062764930031802474856226044478950171752474651264010391462788246967497489389050008076469753986915742999437095124701729381357142697755077413995719858801151853635712348400155820849895811133438672440974725689524151863512714096355594445021316289140887143888751304130434904655467689581791719926024227849534647914514787552795979936789706746057646742653259935583127439002887282058047977222758656066908182248546234905667507666594361060316382866485518097475164233821269919198414826821933764941376644350378639680365294132668210661980049568454250386379262402295637634747190992960819796432183399637780455616886518368832522932444066675875316948797457016409922231264117348527638436034227628678788206779421719309106334978659596637267674229242831753056856052368267302662990457769468567695601662963389089443564497804513254336257489276443820683172800436110753672146544197362977364349135223706235819908667612054269535702236323962644990088207520803305651288266179769956456003668840360396352615555189428185545501800154702342526598133720524553541595566571238586700278098807792077065000355435887997014193406032990891151479987137545783223114848840242688649675737352577863630133296862515002035800786688166396917260147380660105857724994703132330768899811269929497289027093041701267226682239108142522626063987319867325887773587005789445728834918651449833414741420149836929383873460254437660528648904547145962085837565133068996339049684652299865108735409236445341973774986591049561933428215111811295086147142317893075162747937986695332956997384390766645189021582638231410359956427695381307276707036904268482662024664368607056818744264690593626484405009749031977807739995012458560514047009415555706237945512736355872208398656966978785365412833113001415798323481804249257241873893492754107042675498822117377448207479380874669749520301611204295070711489097977498443750092148321930854113327470133080645430002106947916675620880039281214911755343618894753239603800887162658420947737998079615299706173625815815370604927291654572902910422824214107387663824998568455628300333918843170390997479876987851661694455228973436869906897165746131642879921426336412180318487298576790569293675217745916537420095846287375127360224676917830679304966890831838205821425958809702675993841072631092640793530700417704568043864116838192322171072680057310673954670521422466070376854548001688003562470080681595517534981851527194253807393985477818176333025863079689178081379504315214947392727962807920889700820684901386626035179391923078891837301030837601409763881438591168690177969896356965238449312651508860979104592161705891929993718874330391813518502042435375485478560123088210301426860594286918141652566741291705978991115010770892084393134136934733055302849980661790718194281241433996368399480221224055820928295788872074030488273240161817328057418227743629475721714417058033779675481130651285555508682897125502043832219498510180088248226647538845794294761671312265342936869189264009982876433490139924490836498886850357621226746151283702116206925227980113076925943371010762401920492876357066918610528288769092791467828081123451754207016520224982428809658897189536578075353465441848897632813227302438388177401127217103118848174908680873793760220173424416758979930863115751720360792641393466097922704194230574150785571419336616659025854787960814191928950386926355907824202681595288668226595635424928140344779770322304525583858976546867474932299645958686590079745750457142180895286492683169481301378130592765184973186559432618424275592566428131649161285442003318267605011224377465893384525945692717671126335604711430456635694251076989968885810343446256541714532967825027709145262761917072132428678948643239147173047626064334772350103676422047293292161406785888198823101262812175242457222370508306347018564206815515206780086133235477209486083799472400804957874294582449726637604286729422827886100739921625738160000505691026897761462234647844660084522750299372762188855188118394316754053972716046266716206808659407722305887351550706499147630176725221978336028162282182556533209519520450352540972175071852838377336056200933297668590751238060473334951567488566456385114995765708211545975655755550797522190236630960540849519499930932979764725484231179850187094504363451505279867971447778461483217418218944272015198280004858323513896249230525488974162517562130567323403331053612427383223269011309198964420168567152944238972351942896442668255004638705247056838226042396996673386274424437700086609183300292774945516769957408717349759949095539649330603716369581020587041119826044887721480502027145197885147189161469468691504293723619104923156291921042384713769887814187538450403689867024860640836321349949253939528083817929728461168007505898400696284950279713955564457622772535423734260636584556830327353682310226439748594973952150655373123854307214699603018845023903479683026553935525148932624972058042712893011819058864103078259590268339973482841285221574095937643983419429635468396418352264261872947684026011543352600348675732200763987790093513557431861670326609855446656942473112919948161623938968778910231309727517162472043130468365043921242730214908118435086250597791584119136701911874616275632198043631307444391719409276080173775071914981191110775657809305280189963574625310884128615679042877071385168813821427857691175378647493043865787607256616109195801635803464749284486949417337415918167983315577492002698976263479781595320933741660211877951908759762599071180544776300253833748590215391395827362699487526396475109072269573415866812335067978559906275077099834082558545786017785195681528748554475697694806325529890191899962469863645504389985538692292339627466409488665844414949296496786220956140139298257963275245078159049623514668898225158068120187714411701179990391257047394594481725141739967997054146709829828402338280906976987928922963568249785889374128436518268137758607191467604356997537374116732248184927256618126116333602731949093436537980015804462553311644384871411891743089410800371017799424793354913176080564407559715188443476742438802305882091498139073475969977831119680888823282019130665336753235358115146727195995010247531477483013814317791436740163579924383238754010759857844935493300298004280470270006965061776416096237309123621066554606744175314249103175647568657132715027763480770995916586354197088608988247083058800057139561878290758603257746087163172047560291276440122490398083566510726653289086919359777178358579751648120525905627203974267901551867282773742612508505705034567806283911261507931048925397611262356103074639054085585056506461304765515029324535772691529654105813283411502926211193634295574497019879578581362813663504873569199007507347491133445593475811412085611723386063714854634787476319887905883360437807939498658422034294452424265475865026691238708991656264342959947785681687975226718044357890192209268537024113296066498000395191906636960785069385076422687304490579277258913755589596290103375444101353946259812180236079373056461566785896704722413537089748323100910924499319738834097239137306449536398006537635240020556453811742078010188208422092691617082195498732806812809424949701997985551192870016075253662001075267794791091907139098999776731762251268422252422952433337540037407711707198403970579390538603160139141192946172695399554541630154843236640725600332885928075297808326155862871371337877514728306386326526433074741020005924492156267352020728782192664091262498351385171266524260407695989533040460620613750973849443194534641460002825436151895935817788865676816374789845057325767048518839157283331661380717015350854081991375579457636066472809528427694855128438358859480078073494809416038228478056391272645083793859154673110203434667269018446392495584756775174289286601653807382120741868626583877202252188166338326355928037032292628029148527202678247085810670559544126505801001032025487782605912197050361226715703830274363898962117494845418351412670071017290016936615280010425767741075344899558063913998935665656962952364188195466944705294342496642789527958388812808304836328918285181602031193213929396377660946000818336658734533301876905316989417478428218122294162941573613652323830471627678611942005138814831973325550559247957675030412975919751606134929064222288945930881757954460376645651467891776812065184156230807307127159533771780351176322026667115204091422097579752982488170578482481060830797483355998866160182986327284964168399785341098711081624061292796404409328251495578344484365669417413368459332356005831634322375007233315306873083981365151589224154780772266404321360712184287657061111306924917771321055282905680722321653323506709168974308032876127673714377353000498448180816347546365411152707870820196939137789118948934717626440766399229886277162071921675087046784644686441638612340840221330645795768264361146161467688825500353402858844702364280682355678546045344746757133685104293830955053094023914888597009764782767906085845473903018355190215082453045203729037615995043299752119933513372206563883246622385136785563720758658154077514604942528589828530663875261884650998867529910252356069122799135825158330684502449135619894399448848530695311936781596268495267027314016088614603968671626317558454830574754370168665678547578529878640306833678789086264507488876006477314812796350761631310154708646134807747985780743017425511617315054664226100003313671715680971102288952637932188673741042784895641536493820898986585929946286164319150703346274399128272902889193876635572336854113330128759278581114136205443050136256398077722851309818582112973818665989134468397602962727965273746102191040229990750242134536985170072400432287192670792680186997953060221069081390493905131256767010909067559723374210918777595623122582523000841192663268048443408941141901894476333387057759349039863264289907048377924183861768946811801870086585502069075382100460078090416057162826074698849498150049209039221334288855841497456952802690597726312737558236690771707435037819189224860047240785348692742841018246610239551644425126793151039420343802891079089136698995096599222780203299792183066342544454344974242959861777821874043267728612137954718579409043228134421242964382574161357452018674598292380293520936902878809569296058698386438879289004116478276304243504804000447276662239665854900273414812486147858690252688777232504990844324413514494814618359689658262650450052769944620971539299073417399022105340918540583193058830200917343813429298105341364506182749141301563666660392233587333400802708794281744930586346798210360050727931766287635415633611621688432913065655931157300137036966782691478199740076613676824978591230962573575346093016430819915137508139547806953899774066278808891698168710967612845320200355308072226518392594897143440884050679771928856116670611127216352209305334091057884068912247227235920057893447728771757753378034688781783036773493316957180269818098039716617866964738483223789383856658658320885925084339063896376895338087515776720813889083258215798259597772330661344499151451379169617549511031281414325952034946672630087849243712887957425484353756749969159178936908661026326540743035957668171067168561728884076221687488257806192886799993324416231765961196884662000038423101267763389963849677649792699427987674896782812107501083473323202219364745422466835842641881590438194782066068041311163469525202126935637455141105069172201322628447745815803367024313930796845245035633560775866437245684597538269794642343403090406878316835649649542542239811669238537255163651167185532040980583888906940703249503611667309526952768417189780376115088489519723735667393916928767297665712423343579334439239167108609439549060299968521539601678374257345002516480800523248958370141964521606692089536810463701464060223164046096527982838554263862984158638259361695655924022977501305916172881910203670446815873759301068324085345930028607635552065554885500520843515397705558440517304217075766609176839532986063956232112606622056195007716415377563503146525297248446934976964759650673757915177396369140585991360992893683989461508562114109436680252829604736549834455649454404052942817776838214675780005900901424851576569989994636750538022089217495171774206796538130468535259250213964314464127297344469875894589322002623945052699196375945251998452888443166623657703910685927023691111651566026063205578117651806862422996708407603826461287069955738749365193026047975881728647394716784991566763204051327304083743219230892502643640262997737335931167589041371946623432054619109438668737328087287825438758683014356880881324356081267557528405807685117161904529234617648625641082345731338186675367575788818693261950605704777315577843282686710775330643093936247903138772348827098954000833854729472758641195353872365544408369867804917910697215451192376013127534888778000513822061836018865933748542547091396896327780269413780945318975284369123747132792250413540018556002854728396637671739163365851796124673291850144735812764338807200845094176656863924371659818061584000211321522980015726750793000521645635010609060316850086279247074829131567916437277610188624587056874718839321394612257159163909224379154883922929004491987511949094004255470072239581484790056497180969018271324586114877552506953869879997362549548064266532964038306520087932299362780001868817003465621736012435011545290099929712211536263996578767081071950013621160525328556340085103176916384547441855235875392889528545013221461466987779376074098274068059817306718733738163405957472918323765987134894080170177820492202877124996707286118564688372756511138548590669423639211161875627924730550587619324397778436083329303973961458063439280330181702604486025951749464639334757921788055824966473758898782199148914225438217631972531962951012644029117341550388460864671891745304478718009124862035359945874346911864342459515007614048006646948572332109236190562040988951174587775355515772679303055262872011604839549129423769739655212828455088039736435782046110783807848994632075370663774405816470300451185639489320663577535306161269882498883132974202051626848606576371230646318410183010312798836711385778525786303884732800496240751421428078297163414713487624988752197221719919768884337758430181991330414045657007743592276853012707354677477192880356637489684930100812163640752291600958735929958217916942339954667855530052339361049687633659586244280447934188999813219468422018520984301380234496337624443600487862169727104973658118963737864004121223953908238550836562497351614234252675499848966645216278340930917113719461195378580556494895466038094939059691161892102383108000848447599934506569923111462627471977481590611612331815726169525257660580547335707365769876481593403384020423178262533361784756064297655368166010470916414415417454399726940582492919780254736872642637690846530982625767717427331228154839403000719196442151813025642899373828391604220744365792446657286149271174346069855500154863231392191822772213094110369000701789031071877102224006816656889137627749292935913650743264157707547772627691116566554412520449053828292633537835692398404652329206548589226457917810646893900291666793681553621611820917091226805214897754081065168303799344787897390465328421146183040650049272906287113926031818599736313457336321644958892972765246940612566414002632543405940984266842119047706095223322853155319641764373197366080559236671466835285992102780275409352953994681184939909586112664206483359756556203437590768357373871891394106825334719003332647023791767334643436019455438408532774603851909351245119788996432085655270060946838917680122202803228662156780349304661402726609615185632180212371225716799901179127898379547935175991503495137807906871407686235956887884450115825858065886255924957439046441113189056449088489481545567400751607147057449752899932743372960538532222066581373569881188690945828080823973099323547875461250094322952725469671729524961153027616182564057933429279337662487834323274981901679072434495125405369505192236164981066574141311964211364331821242751032881615539952380157579840399229129599516421388930577911014788535647239958048174210004199144658556809363277364690882720758763309614955351458863404458650733370827627243890539956124050711645679856030421447562600998093825062639964395805776862454290003874531994701699862510194017838861092518506803266021232146233998937411114838580462087623179369256080813660692642093179594918817821916454047790999244901622179881438159762229054294296810726196319608399057868536498972485707574859021841914827418820774903893105001460704828716396610232990792687790838061160759196801959092034641185626188991432725911680709138279489503333349551708015026435099114767129503719248011894502117918707080133551764665010811209191759614139402866378708818987369532532603359686349949860463423384132132915696847889774869623582344585497253551638101034601794626041698930230432004197167148624504252498988156802012243435450412805848630890516758680321710069137476650484564832724752882295295420358022576141625062937439604321211923217138875487110588684557903359632676810713142153305836592619558996025867509055448492025660840302239987538444725851022183350536503708669550770125080704496127823072676154881332098358349561390328597520167034179026427942501623978779412593625602994874329249740184162564808135146781909598166813899075805082411859159445097178347304326048857626890627598171425882004413203053420127695260977588551344797220594815972588846663318012359966198064147761716163338383102232372695974340434249807418069091851358553487399812241388237307417804751818675424685719158218701649681977055603343695894118493193732821734788903023998213176178825006684525095111260283877132116619731384163164386036473905856371105910445213050493472868407671680290777706561683536986329287484592202804935826104321602062582476113445682216367797121265312180771551116600802351004713506869136780515889870917414633027564125418135524877539134900411925941394369124441835190961177902809817495992238779208933810570537181900231052330081617945379375764464729439906685471064050691739610622525826221592157278257040433646610403129300423745595305757052895453034137053189456858159420668690137516481805361069060688155028987235496965239378254652758983893235389808745555279918749074374153537187248546115525777231137991155676359772033155119291048876820192181189404629460734242236415610553626109508966217791279246317608902771713475541674040308066969212061520151814127708964125230981289689016022804070859286708142480611258717533919263859898625328736526697993648962264786099830172182490880081746463290835032012723504124399400141491084572333919823756163225631876656126271862854612112648912440545468415527816075586790154953095741234087986027605066058387578967193673853837274197131277209872549455483549061912461682787773101207371590922019618476642785379979661407797619142076261782420287335110136542019363818802313647122941013015695723208784506824694611292199584198676903126662432463208049581031557605337592889765865788305383050046320812356064730664038769955711868453194601518060828249001300275586614535889849865266440112396214802516899074816761153670158923211311099870304560552701538613051561987186562864104473140062369467688483026291767972217739706430739748180492257158538070938760445152118239548790376166607730396674654921528379834701033336105159826002488585940933474082625346422667871963358871806414227865114242389851049710816929831690466763913411169154681903698574774326972389231385240252844066036018349542204479514769785675427308748001935788086361069204757919678282392698009188539527148845756322192036854082426900521462140569586843886405676284525436037666375056726574047086559366767714449012800561155019857726650102960421532528922322462600597635886301103165825438586408179703541957742455270408131719253439878138012036875532864091448589619139987718431610953306216284789557276801842479889444059807735772033641343283135816754299894445272487934321130675392900671851052233429787374278154193029537729177304162378808395363731517784107779349704770450087378286584325847233132112486208994700523986630702976897112349894305019888433368035935833102761457413899867748978801775175535772487192986324565837697640872330308572531773869372352312365361013261212779276639324836434309637447928975590592103163409888168209384352451324836617924407692492159861212402723311609189173534429902352547103866878132182667603695134899412170962913084331262266523338547346946451504506172629681271688531769302974330323481463856269903835858217306788999881679462881788287344919902111573885692580263452823451951243455192955936495070462359743804808213476435214656974271407815125553449719424638896014572311388435221615644971863981029853528490520507445537639214646182823830676553919055465702796560112589984321886821417079367111710358399448015563661911659368746460865592498122937584460178330293929271995751645359650339384162127910761888909007476926920582305826276886830957925029920078625610585746345137721266425001197123341811785419820380225185024932793407404114887816130372238444030970720833589617675108801509568899052049176673397855285081308461054364366178361279474938051547618984912280294008711217253345997831792661291728211391437157397107511232616800659889022926667102596927497558910976085564385595577766269205612462141668095673966142323988369988170923757161211395979205220109770497017312747233087459320293685768208781983561566686268859678749268126167040515366590362346105623890933429894040448249353945596024958139969575227111271358778373510907159680292240288030378850739679750956653653296910186583844023920602423224127447667742201467615526644062831263394555845590287586373216447309593966168529120054068215540338695800613311238311949358887540594730465707549135827829253090404035944019277690135602557333378631479296907614669812145504306865067827883868351123226268009303252772397177884572771830724093843686923595252895647532019166682600124228398783441048109826617521213961905180486731585080816512917653460287104988081287590731498187746189257462298543623055828385097797448005382092423817079323903442494476860452964294570944319593111580968842010239114866167529063959461873747655063333749547115058415037717731296748306361061196231539342074072037689275907635490376547394064979514222474562461525090994148617771851182839397452782488496951726202609711964365933118402384789099384081571284864908065554126740442263549107891909878988864886960552972536019582395897374238076230228046940353323763391312435894837795185199221206550847221580857560463112104223906997997943853966365986892802330056780704050314021031809780622649509663353912009644279502298326191712019413133319944874218355014839069798002368641586058091399932761693898970437692445248842095212704463151713062640976498877391737759318686785588765090488451792423936731945368639865300239366904919375555748366447776845463335309114351338996075136579943556080681788950711071145605194138507049878590076382090091958457001519948918991190891815627567525727348392746557260263061519666645253760082548422707683079418892970262596579139366184208100640685159532641502480089250442877119370652504513583736789613002209642350951413266430302260289287161938320329143437629932883204936988005616160632047385748505807184933634340486089202328137308209868252174509948821925103816267402861946194170202396554492636901450008886719411107552233941582345485948252407124638438849876010321977757623052408883147255382639562779201108833444004299977416634685346083953460030166883005692690420599862351683259006749036794544404996004725411577495231917280145423608577587266424885893612856239048857368026223521224333196473182103043827556066990752458229773245137082051886751383373932562066303917603228120851770532259564917098795902707978362591453763532206623880501072198962639386511016436736720285930856535211132479989012214311313386004757511801329039997290567690391162130120987607595297758096535845827493436816616779960927472508155326369881808429539825915138212737362940705423155680563898172663030584239646925836432047036174576890812688921201704595809586585041008430482659304370130294514231434961810300003631334681333950162304319705444951206540113982835401062975601011899555498403652433349404260204644816688132616616616508507310999177324914146459070153483706002155908316050008392789698966278980569275691788958426329562733122454926278364215752276674651385105590763074404919635999100407252677763605553325058037670611520064853146360457225601844831759784104106565626095382153145409251038017472807891855984273816719791057299567728859161288865636868761494950075126957351967357001754791289358758896843598826927557074163399856025345231796232048149743224731342178499950204241813945984118990973670391109842237072917231044796030983925091962419102251495973356943419042579530938523658002817707703961769294385240916019349219319514983311595720257948399897395875829975289160817633631831619427593221471799371191251308922682968676284060064139438336113519846101352059669893840863910899988378665229743597984430648757560596776593959718344471332863722487964912375507083347302936594348773436131259738369331981697792762376627953102298351045578193833286387749757680019611466674186406516869785047040423860046589481056406189986911229386536314995084785607185798307804611981093795169710198646459122685309135007002065982894174286563362703339972672871376694692798858611794790844823142633690057723946554210354579679699933691648647932270880654185650274658168544611258408046189931254643716354447989510834334149613422699883160650900915044587306034526929012882156906797024727920759420915146773621337086557233842627998285098884338836577479497597378199413494870231529823499773831890496440944112449397794950260980818391730902334154830673357740278066798853356917962938828130296583584978962701303826099283073371466416703740765180568260675726672655475943843419471773279648827866221684891916850959277975348617880716176762855162454508524269186472012952815811099008577453413553263262904582079472895554991136785694111275821180002926564911622331286165233520072300742827094152795912047885154136320008897487463569785048100115959198323588994111667797280373450491697695846576444559175648840052249603796692660697908192442980384942038781947962163864146877763124119712726453448444979546108465568810109309240349635365565744515804374308332318345423651448334647210261292493107454081152185880535384055951265813272190730144577883541281319051867526434694491206323059451627030583456954786585481340666555269777006881843920446288024615675361505002424118804154861846209099978509153044893791282365234138869722462516805187014478422922065462430266013510586274753004619010383437840443377324197906520608388328765261357250718032947634444972618480579516014049986691290200624820408719266856852281414979368702397639511986647208696612108804089595994313823758988844005992119503453017448911861964163797389683170883389097074943282674459674815854414878029400194963080906177624361939757108856767317278207042014933705814600092167770973135290734024636340796970316868917210018884828076144917711156217824285434126084764638162949300330110720677973806410102813250605075969042038257989077209251556231167094494803074807838474817056926284037110029557629848112719272009632547506439116249448515184458029567156217472297425275741216227722382659439304899247348182227138375261507244341903849159335024890147304046106277296013883730552946218288228134942281203995198428556150554996005638600308459938251030521243695053310108456234847819333257486131720438081209803253152470770512607161901897510528385868434170528773581456358634480874401775619569939600918543499998986751206414679714933266868895245753872388988072680554213079965176785437038712170211922118386269044441794900301024622669171399957924698637707433378924094065041801398843509483949397160663140435595638329381286257407741256818779226788885845093446045595455817995366475018524149115492705903765077331299856617906492095950753144945961386346928368799315421756876914989495309300698567226593027406161174729515134661131989227184366428389737337541322449975020175130099177487434686361513885910883503497037614360433751236098118195790718986466921470372742176322852666423526564512472105593983447337393830082470767958841631229997165008015499580999005281149649165082128060976189234327570561146919206019365120756922814813523966325582303028481130078938114320302102325448313241150975934067955944085179899674991350681320001866226978676736607891695409658917627330855818265361714027990817699017565796791820820665943816463714981842970749914512506591873420535605866097335683872375527156780286910928732679107732935881078246085771086750241021412270210162573716204735858282320278345987627170950350632753365630464435722940310561456335098725164216450643941705571876808396914381920729771041995247783066029354390597302900827930908663256612312827763207811295739968265539822665790047240539214529568741436203290132199435316278250970689718207725651983285916626599061496811286627264788382363036795961276795256678488926399406409567916277195923736413594750143507471970489236962000842778103835316160954781756163436539866890660491251111235589185051516188016528715226884959459154204354066401935371665074879953596981581425955253855186651253757047643717407052596233394620962343031974571548035248987132466801106415825521841671380251408352054693884907487248136491233104867618652240383839857762475492255898174558851258087758377167052050303730333916870045520006090592873224209140444380364783563397756286656012746291628756925447839147224529324076970661932550320771399787201575224645753446419414411853946567397537003028270663593119284106331807256883494407243463800247630469587060413867494366822158337795256324169432696439807710834423684152358641368885102800061668228159459315112712886021952143180887945688120314240168218146230777972111833306114458500403691553779723688057157488787989522752283543691771428267061751525769878070922254977919753944019978520760610322836605818911811754895936667636364485402094008202326191447291487054669511743954532236654885262309704557158783694598845111070060181142407885805471706623352915605302175343875029171156419292953879902580001666243419957302839563691280113449987892904080705583610206315088568727784606978182096098431366373620763902400210097067153361013145901900232570021365048673300328002589887759896857618544667240579565420011852924510312584253184454832495292514658326464897828877352750758814028170029853965585363729734356337682070304796695897698701698300889237557636472994911265511562312532535906116150239140883506595338360789182906584805606652844668882748388194340123110449702959504035867847009208594546379261137478937911076191539854077126920119188846606978221362230735976942577783382803010166765364183037387865765877968143384533898674986778846046785718134208557573946690670464982918955076812991807269104451363886528783132291006974785662362221426179333657741546413679025001647757443749112428724045712688514365337619812350614409698881731760399893613545108367138620784007692494381047795409049528905445508475826493086044659354635907918823101992318438464935673761933353763736897058698351811491424003342111215468397221240265731188209229131785639540637976396583320261488234691541425636916814871095685527579039747178786389437054215164121449661960829952822583728470759595800469820925772772657049621826000691748206374903410629824788889961849323786232975401489345732263754572010034973491236851217162767008954006032111941528237759493154736733821150848070805394629570130337049136292373563499134147045012667526876582707786676691477846658236886330263314480789473170535201769922690917792031689664126230183352230119403757883910036494379541450903692991022350195882448590347409160474693376305923618598009597540497083002582991792463302278680592850007592749808137823405863835338526984935216209156724419172900589774133902050698833050904010059798108070814143124238473645523177225883116568835369958614339187914586251417100625425869842946249280181857827806300790586762070440475163646547276062935298020245282065355578002787564023443918367876004002990491534340346947816035784943131099109262668077149939913919331830587137943572129578564245238757362008768665226152664474533276713132351816551601370871219849546285872366059065524761150524035407362345725218898678946512331187103344431173283518944158975763100964347587713657344271933609110552415065139484302241751176994892818886397941119851633848681087248841595281791983345218261874372493327478116848653131911924306417427612272957994476086522303804351983922437795303245593908688763959223495951393790534868431698166797623225428194869562510119163559251810795182264929002930230508546643528040625357088531319240787666319719078334736048314771776118288770807190999152816076830303677867316739595271233578938522341032340120527866729314027172256245503474353067996515784226960320073901526639773769430305298965558601696031307988267538384844531551765752793007356346643499522525547278451183181370980706964007851898062613353713188896038578053330734693238614635335635504222554254810772951266328812701808603895059967729642476907385800923024340865054617510730952378246762025632573884591828742968183415957434515662740620242498006028979580047283401232378018594799967922947284145571401500603431584775762355959988560320914633536488257691062159282914808543709895268882349305550706210406351070216518621662872864728479536741129710623603666387366240449956329904839316799375470112021129425639663661415709691221775074807984644860351644113512873795653573951658526093102953241853386551104487004407845616331905436363394654968795634675514644195939911990419667657220206400741576456020706205428588144160805796110530121727083942755642858294566568747437659933410147816669464625169740629733006580611189908346526410731428820604994663768691980582288375963590181984171153618648234584718776052883531035869920610987581801879671221112546525730492061767649550935008808287851417308052779053341326739865948811276191202856794420679637531575396237151190823192842887487177756682497162922400856309905611084249008932464804625833979803114915025458655687926401479753992212936720473333430408421723707673277541820584539494361355721709094245843196650188551924146673826946987227205191281107384685930799703758932157132405251395008920278132941751009886201869505059256095857716843307265163310305931287231681672358773656659485769030143778735744921180407851879439239253993485186611430974354823412614209105864505883503792605829330704225141937380834931814874281748337532832230264071518446688551458236433072111201874821038105965410492899047663865753992523631351327915818604700400948782783865816426519883526515642987150184790985098792509513498942583527942843555989896970267348574865298519673124106975035191969077747298400706132694037815853121913809974441008191953212434803851818651014745372626167936086847596474661773353343392455882287164388695423817561343548110751902940894289792840247178499031159977487557387316518483330896969389926830315841392390759718271172416466020394293280017533015331196832257466386326221773462830710668522045268874680451091730306413646154164523326751488568327540879555203884471952365841704767137654673887230799597420708828233184200617848572068718724339917659686737227434862718419630609896891991155356176900911599117471661926302280168196705434162354249749012077139099548549127456158863311502995571766955075811040124946964115752945569138544163721286020339464988898934512155982085798185557704807345802824495191272542197106857009561393098352871752124478084787286812205642572889119241005093209399609719313237186272701375594959360889443554163513767077878320393056312055267032545918211145766333577810039860055668949246384592468486770509856736690403938563698790325698727956455748614296451098801491141487226650942551738850105441763977049118599031672652839097599393195099587983903606793732922460870882464955631586148873813134161685293597588144305687158846197228376269323493651586327396828921400673964846482483999197704309393099004814046586844628843145625618289847184987022724911651802397166553135783839597009168725001520588169533080877220941045854463952904536746132592653802404939650591893170394366439198498941349932760171958744943059135185631984550422425885104616208638768530905566743012123161485061668886882013607236649777472087335867817189356198500950530957654301015130248566137242270010553541073931173445442136798191253690000993827783183967802596992690693835040208364238576583013605568295517382508342920913278349111650968247899512657171106171681715338229630207461547480644270127257033218065496928702849602140874204015017802315718660110835822105290751870690014872344445915797013871519394981232704142225116268544615439634522261485338481895793368654510878427705823505097919817841040773032723084725153589768778515346998940239273120789734242178161432198629211680487877650765784726537245859663442547684814518667697529404198224693064214609029799589170229165418705660604452426677394868845927112667232990837917909753292135267855993237254760872783940223485849489599685430290954660005358547240540859650497416551007162143317873737401844158423555594031079186634516085967109571975212748550177276412345772218028807784323061559877836286977184254333258285785717498105023551582174748355178648390296416350217750954032912679187818347332928349717453069582108152019891821729710455476764271722833879317719957468447767750404970706838397042966362985489483860201413585016632605822585455077924764874396852364142608475608522861123560395839849230055449165589925145423303361671692257001464606966722020465195736477455477240009443774797867544037701521698516185511893647131178469258286114710070146813708586821780966228580550186540171723836785669525716804019549586448707514513878610091882480663858232422958435780271951022253648399861631308989808328025353603513771796697733058001749836265077005770581349706974918113372087399527983313243435255104256282098144963162855862398008176710072937643861248393555526200405399411409576809941674799245033337764949591255017735479578562066940191189599238582879078695224539358142053976138465764528274786974436146072314591345665450100210418931281243520671634478553493288982268113498970493399465742815474488545362371048332011106384161306297505169707190818744966576177963132218824721325022597551455178900725543001664339438900267533234103640877170982546080609600607221193460181285650961677074382442319702086015084633453730384396481855294093231462439842313125821506260595571822066389159897341847641818389873494605513336195384825695495833590279716849159833345877053192892116518688459652872217225026450572010487631813533690740796469418898477158586253905425222400992414482823055752389098549294857204630447243954270118890847860163753448195761375162548651234450628680450921313104816398117893723530341787039716287768301382191710140865858534206804120450716717888103190113888227384319892382304011791790726399353251414476905364840065967931697961664216224068562330642978472253103481189969931078618865553464045162836442955798004099504497781179301737767673596370851679835745867431280598984705144781497462783979853656987890033450074945948717691905740295667264461199740234647211726486488190972263442855299064049938815661276024878892828776140096684330011603415256601153679507490347085079562691903018181740054958624757770098061197245846581406398726478434209146143372578234626516345509830193689641019079254640025915350413344368218232503007152344947731959900495138026975502790340497031018646191663579045617854455205210256845960080281146775568971846306092426405813827792707507228563780033326361347545382243105849795239154058350959005921663134509700462752811404171808551772642822639898516169922361897600631807542457713441693400728012635296870032528642336799724628695653615569000816265298746795364256427184685781470327956507760122479626403940560548218945656630675413777220791186223189301423043768316483636031365274352027757626459892282883169965125890970562671146888104705370984014512226045227077661450679635677684034434858766636177153278229798909381724153596238566181927143021544012042790687271657147465880633277553395965628897465342680321726082075566531402742465393016404748085986414421440097529672960610813557856178861158598563175978821758053584960782062061743602122226743049457082574856415170991392359233097812079337088997638894432539144900345934305959813470020321353654863654970116522810571608936722439566063003791987033438448825988188833534104279005544700132731135516293481777108545627545805460077981489301986585864500228253652977419310921525538338456463769834564275393149303541501700321036431620076710380335158968788694606517544187835280199817190665755211407969911576493832339027365812815910107302295139472643627702300850509298636857734932183455603526717797469572042918426672878669735408186216873160332721720596679237230415430463047263200784243291997262231627237740276058330666485402324038403679858059326315032518361395511145353415134846715194781859234981804984955836157311048437057770053024185867626615622176564326704436015901276916481241252914070548862841227920355334913884248162924142590463342646750421885853939258313000139389414439664749016579801213500478823769076037340169982703862749993688804152008353990438627189668295603287432244216148247128087178581119382172053276531488425700838213657821204058954367078149558884828668465595595828111099900730247580211796870730477472061206808173518925478106349226928694170296328977193657397542037692233792248082906543170228406087733683018887144130548624866704508993321047589817099603253808051152821883128007442420687002459584981288510562475005241281138429356610195643417707439269128336968884948763382480015697241759876827227429240842833821230685235402582029461134908869156171618304267864813285426015272777683339764775455031606851433427830837753264906021898577836723058368974136126934973802490485263124713488928199129370427831230793307105359318846752483174515496250285210892402231247706222110930969523296536183338786012452284702566609499336793150683341832705236639719228459166131147083550688691265670734051468895045751158564730143783046180882462661220896033944318124299948530804981816785031316682390967338639657353021165954516353814422540315791996226161939231356113174491527524730840229865562948625257979493602971722452359066410260090381209559772702661235213539816324797475775880804554240754234383698495284369729335079266441426352006331669192597332027448553681229959379095990995382169168761374165147128007022718654328270545570581460923781354796747890069196817138759810744248470432135665460300756280132802856403925242007232418288729929537926978421966416827112040001276925950038190413466279179270964426888166897751892422936280056669535917121715714724795390090668840220782404149499963209932550148607094223761445006192071586890030600196846463445376591345743297359006226295232916509682628801028943926319521990785478615611409838349843083225104086154547161968399667825787404938153456341151792704474731921401350221153888027127724029614638851349160418958763223634389469129467958925030608312454041687587165592582332472156837726477002989512753717430944141403077676563267641961219222902919575511204774744287512310289513686113551325709714823938348046514810305303436803878872656050957913789523389308282913711579497825417078895998550894890084220559057431572804272500177177749337654743264359303262781946890371686992182622891720895598477062989905299022067788265455023363192798348654087682971543485193532803038433657906768113004703266678724129950882056788205955255286222911256074729297763919976760100035320925291135178075485764622571610437907598146335433979919559189222122536095331305976333589707903611877267663636455542156039227599575821082228481094941756542537040313974633140471221637406659700394252356155473417686797282114322354917495462938852027195103717478981159833124839160250520739381558747323201258833391912820339011132724884839745832538259449184264577225384596135097769127116209187020122980432050625770248752810776970632586353604625757515889308024449617134778929156843710345047983077670269649629156449219332276501327844541820344138131647695606267806185242289239406596825063227532736802601986704850111535890651056187687109481432079225185346837804033899251424390105510875594468744894620154920330370386277787892474013333587540480389993569085108428019939443242803390106871741561102734312027995469126147625417176758856302005847747165906564401746956279369840946982998775097753591098029846634418574818805984470438712948032768658896989106719088573657022958143936034008227043786096320620168204371813905434035302682750866671741092537576165753032250783624519936776350563096229472377536575834659218315715349007586917852801173948307802691988249134337861963723971672833765888306380278825203443838804976000248685091557105452998478042237526296349431435314590034202617389642977214902849244691338114396351807590565888391320829742323206569897427204360880470860985823818526846349630766526379014005480586310309209081516918195519909304102817556166169532774053801250246709592387329218130136246160121449805129293537022815696854448451570524100435558599139337504928490729777456384031555168734781896903477379277380037259948993336999991480914377000950868701968568636510404130285370684197445259939283756816966622728483924244803443362240436835289659144679859413022474462593887808725117729322013775053486418075544986028986460854541565281519834582163433573533899109937711846428684744913040123521999809218816024458257119131536925428983883573926542674589603046036680203299704781100110347422001503561918874408596997554590988671916852839411226330983859696510286278123761477329823672698322417354102168145374399863304616634461265421212557505132204048524111185381656982365169021163820142276892822333975813140259149202666770120270966012356699986461951162061564921144738059378271304222090007264701223704518532573415109801175384072820339985891990342897573954494292869799585046122874567616370414427409956537170736884957642138590677258853137996385885798591496357612682397553718768755681502874523942027911636145309306645584420796985412735021896686013264233022396855880655641666381020527279009282879311866232766429126623415721200946211405129293767486080779988904371495778716390548434270102660129883357993406468105653176183826989839577656445603333497922125541607216570172997637479667160201016540442398460999822654688228560688945489556219006319541744287401208235588059476903334183637127914216438814740094914886377727341555559227897741183793772811127098054906094625944117650709247980921988173620168660565280961902907944911753425769715336734853560183102480866378948469859595931664118478832585631485670239751393292709511156319091131164674865969572755647610995251079793650030192374382867658384464401683839635806291110055837419778098852289108988572561519277481696109430588257696688533196194752083617662588272211224537853242798110000773595804742788239219346543329803515359936982486814440934356366559854752121549370357061793947163383993382617448308546827158069607829734593669930980269721557327630478244586367308897113034397633791724348892060085764121494824368774113011115231993720543418820039020763591330014404688437737108476294548873318678783005497626113000252131102384064953995307203672474360321663741488283970398400772078371773724034872381103340797319378802371844378468124664424193993251652163674082188896436635996017890345630458996079864835781317749407053929411722026922492164083818848352520232635851667011026160409130862502668600863068688392175823513992026042241879887362012545545907430671537711115554569912710257438313521093308725200338037417065000993606137177277260936070598480626551996854238614755467096562345884025172841030328065046801115656215299732423613340039945429194856183134465349943716171283019237026734365218395693232623869834619106845200466063333076809421840049713668334550903954707373377580467186730211848120569287781828913011301186772628863648923312570753004066297521067913806545917396925816578627354382100067043419308784198157855131174441042182729308159006232762500249423207475454224694873068982664313189770608868355912592174748674163248580731554957125006582502921039027216951925324061018137612024057336443605020526209115380311800676688431370310632698949278462194497659690117507881186157588704281787344039143856543014188147488983767827636790880810479477090670734215017428442261107259001291570439676326060097899429395928654299412656129706710345253960702648148723927475962329740777499977302991090483117548417942705453276439430434135825098061104522572987502244663797236873738461878323320651918380656830861892024544128568811779879145200054038884173047096142493787975169758501056776087722978214212006339369528426240216784748180138714880100726691123355228159971478007335598370373387877185488931212553179780321104167941212675502587749696278130227963076659005894329012590263060792463632716747943543092124251194942647522790298442307588266091165972057282206485581256732447712242968685245428261041383936887029068740796505176558158075653507824328190621876892866042009655122849844006616434310776595387053735855610987157248840983448881396636838826924224741901576380409447650493681765765081799723704316110579537591892220681304264505943393023526280782074100184255917848611562101058934185927504108624330068112601717688744700854322919909500927961530039345884749875270923944996716295359500055903223385206962447367464952586798031808149021581070294197836291968815078318706304679211765037727912622173380961421834142403414808381674705373980597570983675436596073284054448763904247700228309052628500618563593455516539168152593422578714857177606627240020026362994774133356812195720947267831400319601316641805519970497419151789594768002319939303066250389089804119515335589778751807166153536617326694954092070555317436790603839246095780054095702187503108496289373688369935817608287029094847396399015502690372877075165939640779508906823798780185460272793624683633545319085955053031238289412487931168221873905298506944338659906936729049610614404262019007472449456797758098527965998638802245211097605783325329954443455984959268309683128250262293322772376895717618402118558306389625346115516842237706389838538561548651529578396635470236212655411821901985655851999048985446643800021355397425852959864300179705633399401751818617790223246132939289356265896261447470291667564275936749016948716772140407825893136995456186974054673141949689138774976480518380282834461756587395568283021852931549615064475167925331408615850124023345623587304237563698728894276505247293872987968612146028194940060998066147835153319725620744988021924759148001225153596580323347917151089941196653925453077343134188513612782338731511217471831299370399472087645397308801538694769070217551521361077293616778012512146860805825674094469670409821214166759531654819815113236408874132692290906370532493494307625922913762683281705295853647088303586016973732618953076334366057789652487185740120558876139104500510744909515339143227670288289185056810945071017621730519565712841698854722916442286332211923793279728620072608106427237708922508484751979545901640107197993357756527325185076594316387702819931103776052755942087098496309485881773944933592705553952166164714055316800565658566982884315921412917131988532504121084256928259891141280726352672083519227466141176305481267392645693490187476611462799904472220050570427182448822776459167818466414875680935302059147146925834800149427460804442046204907349850761834865845266288416290522486634221276212693883050512197835299618677130159193738708728125494780049089854985754531752807601603315582818802436652099734521058339169859259267362655078427541067265837076544487730240708089846045680311239972272651445942349136440356472107360774746231329805789423052276157161298965143491427156061742477818584356984556912386411442948800058164599136692664857079801096542675438859839265597768771172243281791751597916126833092306443310107294452974256471144306638114952986084311908206301756215509352167697130749794869591926310012295737191784636603012289702056605510647080654859790666872235374467333636634066903557617259621859641354335841466411549652451138775228583937422486541621777841100565363320515701020242429367285768905568721999587549952266378637475565011766068168731523316153930730921749364248364983515039392984226226283820652216730291481140771568651370806781320148174374436682732725302391311348571326547145705131287928405279488914090310464218697276744197985624923484336361409045926638816628149552834029378136624274776412055288148403725219432051915600273777829125642830159509590629361182486618363187675083201128312992939241714406886748122886177085945712003671561028319664792800099463177293861805540990961105339418029421637405161391451477735317624944657877441121724911088574195129049394507472554597848180491198586029095969355448665924994777743140686901083675434073895723081355969038622185492029528911650636007121980724065434070217758976488593279850840679330351781776760127763446585090006411199875495121908648592861197600898496107255282599578905364860044426767137826470958168419422525849006333137807832201968826718763443903422881397595288146719097153005816834475159005039882362752418856754231276327703139483259081685084338889477391264472605228412595112175839508467254834479592088476336340651764643874815876580707800737387502840135415226548191705251567693676476696872448451285725110860035940468277956703843366314283435861996861296983623629744857508025323747016170587015042310205160945339108428869431614758057699666363088005630955017721696386332202521942723851154582151258394872027805419738226743444922696781593554477203462214061478872847380594877005978491495863870244663775995480165610861926688648704032592699560502527082040319027379728581547065567073827672260245243461597533356005362541942319322160201114477247900960407942590227330124375838282617872612545830784487144888428653048916838118271331196190010110425183201728311366568243239443374365904875002924412475888711495570038022758856202001756780880008787163176138700932260856709298577748645812869407321775144601970246553645081249249993295465352388679674131485719293444364988941257247687280935693930839067419742634416645418311655956046738295550971086386616134281860693931454095582179686236838846547341076868192725965144249443861732340269779231895928548611862356681332805419494756006335497816873062520690278287550578805799871251227424917220850856152529991163633770628860323058407191620324922450281366612980503896638290323972813268392673700585492823257857608985269006395006555260533901913907729316461470302851663292682441756158080064427287744474196567136090368755067676609907920666828381720035279747305461434375860126698157672354004359458669470722877838920353706388900485947644097869622641863488903649075233185715203604490571956465213756545315617166713645382049998110180455214603227152156438442969089760162256577537119126053565207066033216776263132025101833164536286201123953055161536828947284623646609765853644014810732257072835791585813139704163954509651125929338047261850827896456501587033485206474742854606434691506377517348454641515688400470730871223743322708634448057335375360321692769919664654476597084546732478113005669365098250093753347553975867213545371796607095585372027994355889691547554157985780379101302627415487691669424302262241707168871274953621331290492513536433986537620639159501480714658476756977508996767110039159592074634006923205193990414176346903749704431650628179383866848538607002868768633204283005206900124760877666843684619143009101209098339785766544146167434629094625995743027947633058488361000448271117601095039850230604232887290409018082767194107558332002751564170354770053658403081106278402109622182223072517284812562370821018025542260172398073663002361722567493568054325791127245030544395391539959304067217712445056901873762956086236170023997983766981868596505074762616377323574939937372012791163603140657761329039896841737545127185377063068434609470455403180243599487630240756832857947992153320339320007105212988889353929149205320351450797692607405918323125984012302104179847219623383304021321768510622416511108998866110693131162243133850219930681619125563237547146185060913039837700652458319257193177586777008802569635393446660903052570090146321019522552538023381288992885037262362031571962600067647489144882214097141471560258454228161725306758454387084839458176782968077031007535591903678953581995967182563275778485515343497313056279253781219088845184612800360890153655738236802287971505598734165083678462646632651744793516027213224323803415604135735021681258667679639076144282677522415209083985650471006813778209366990351225441737426783688650750132279195199965388436018562184650195469964151411228395751532264299138948463229802742267219768408077205455145218782954553244241024634397448360541288997715636176349218841510637609440011325436767783377311708665956036923906191613868919869872992346369289800721783237928263353463519884927257696150187465436280703458792366145705121077048186656820673447568545613382258056445458811619645446922675178512484804441274715857243096733253318413897786036051484824822191055367820727274577574818448055521372627003535027338504466179362598349764077791622262687303648800004533711972904622267505227022295530522993829312114932063419264763639263118431678086804618205815595091990581739192163614485670227149635556968814648175021322135697759094719527781366439149436445131865987916738433995917452058150109818011120536680046860535106652288356011734748075179439900173553351606720028445134125158852541588236225112484990792476864730342647526687035764720650233768892316827680360842592563536158803441184509382580687796799452034957998706115958785311167261325004415423286122960813138125786375201506111981771644969492637620405992042302454952051777043039247672981420751272024183799153233315334150697798146045900310867265615705992159592657195086943562164512147242075549607456244886724140933044925269700507102484006161667129533748045187235062175283864251428411951678513699221247066733990383734980720543484508436741925076022839881365832262778067009167941842782380984047286730372205917541778170437206322247098789080428024595272689473867029623863883132005598136723335938826364129570684244211810252577098948845489922864872538536072494306404289302966613272154910205336859389900115160358367226437341092255300744980004452842677687369740029469529488240694792549206167481365752499031106867585663480443365433120755558419856465505382486177154856646696235929669684430935336437042075462318956216266506174406162977895222102182867169891470296017648325284238167025093951480753265539857797994796957672220380991851107147923686044292270906630492972427599462652859065650236951486034659054889650525575928907628091088059379091928391429390997053023742336527065558739092712577556562505902741651840074378241775468459292042354575349070365719433717082986660500795346846079107095853605258816194425917134541202107595701865771207415589561443171464310244220247878911331231783222804154847380086087334280297364091376475650408404127840415367824095953658964254700649915892825671060894799874189840261851274904248755147614379089798569665611039200541917406970619345607898300810319751125749372099400688884482683161188652131911122638926661272714134383939372013112946436055379705141946685444331308850784671297813590220650342559954632045896395611549403977818941495353743937558158044652149329924530887919440415324469134438196900031882851156295503787065515103583098050435541550257838924988372408966627219499404874135425227342972414829409349594824133601612276826936517583979223917193313462577784943349455824503337670559252883177792754224327318765854509714323671971569992291885320023970031918726591970875026267484109375867437126268804319828590908556576698653103611033128041415944409895975647572962317088842336548334010547857518224744818534555405614823720622180687513719751013118027222120294387280989836722868501702119855628582262410372441033134646732647517929370460639445745693220338134417900582663494439775568492298911567966759829609577889388274440490282121127294122671517799681649163197590938067973382882519451986696223978773825896017037314864775346473697207303450072222581931007649817248439596236902163362504821575478662276802719688649215887643366255007160321682678015805403453158533562478889063886958992867298297626065446348918360369157470758534403230397200142998428655265268400657542941221969566624619975643525553638790245890527120749141112135281365746330325641240579788942232475530948766967996473854282295514754224655917336199709381045045751202733359761728830011519074042567666010021362412301317057498249957019531649478781850462481957719294556650952909566574068806211418685326509155322508449645868482309067085842684236208826359495770307545857098643939818386403885951017741737812257606101499357848023607148308866669202570800075149332656821398736180326208584020757241619803513129978094124394804928550551963941521892905197177645888397693135666260987564598401049348846034388160135763466590004692181443600591320365427124777117100548419880087648950704108870961309149407446598495322342820419431812535745471727373042109876743092473050486268764349527513573090761372474267675432145121221166055727585009949985717528998627261577623344840600086506056702424155335244300292119709950136118358884134459391289462627926886734336594966620532339042766015215424340136152577138166063508301085835891760378932376682231257938165635425409499744117128037948341368002647458152500400994393062702762881876415441629082528216351075496271449112598993607829234051260401229013892751500296108918971007235460524389781692287241203064532452662239893914281302087367174799870740751024225118598310290983845092144197605840094030097732676888440483393846941354109322898899315864967360056280514198448352295895124729443092339033787886718257544181869020110284721976511512171006550385712248446922461855279383899925131885753649995896510456096864658433027142231491110904575863074178504387543758768745647203754798932797246062629158368561647406014617218168310140298737481734075571790924126002718843675541693435509764868771105444101769814405849595647119119919798852187881267833428812179027334991003166813733554143742285028292823750202102108727967895661225765226868687260738360295226712238592506799230488217948716737350065527942578778177729578809372713374648880888879596556623011457685761287746576919470736275957500193902366135827475181261209869498783826433347060982406644327778642110269490412009707790319412224775037903876914838081255368346182690992226424704116751563146155268314332581734466764451716440164354837897293207841718211825339047153264277114164937688508500169997707901306613983475216691193493337621505287499583659441683658986921724678514373926547679404068215857518311337050980897318294466730829053486561971282105595466772695850281729455157514665709815079764535363159513465857443958944201966062534581350443134557983737924983628881066077068179429748411020060252202987700607457642972985800842970845771827725832318722256813877525630509741651848421674839778213804762643227975026316325853674618516960043305158903704622282586170215903768142348150340881573929787185474964889396457952889781613345562095978241934090511559668971241351581620558834836737772394617007525848299342062019930930919092842203875428828595313773686195882005743985117327153013659433325778017933711589224951245798159077060717521442171959095197085907739524065097059738885082671877744936178037860589869167989437935414935655100471193501444715831575742616257646290025793980983474052175691362792532947086235273594626498049159513974342475467912108241235018791957471720810033508907114536892304216915921491340167435491188665782951529862794386677478815325664082771576251857488565205937484359017737550516822343095449492189343747608941627083755622229912608119807329497447771244957570656980997126886491569043606597634763434321622580147407860940830317460746975097649173925471073462720432863257868875211785927641136500418068712132523123226291327758463467953180288542980375962822114642275994367645855541671490989786782201959685684813196342909938757939387880655160502684705128500811155989448346153269911931247579954840304210644271797246329583242559944878044685654110070411616469292519626826896691498070893572633058269659425264256774862509427761955222341581317527202706312614489979603859542521963198808060217748872331256726459102841289453946229401591983215779272819033645630470918647584528801377265143585837608184206464895692973021764366799918909366948613635453959406438403251944087527133754032783202201018791825874425922683257742609669765258849289550497180022394047823335340338963224936890750910688739032248817652635483261831924622380704602657071345424260497283263521518805098303786135830193048253058404340392742963819710030298742704671585477326985888596998066421596631488034707200572173331360037006425544830210639471359310979092065379407464795488339011907495604805568488878428846949229768741480591153956413172461896148197649864888405734473546603158265040691738445396620597370920508725137874666858051721163331042421537904871825744849607477715860943072900340521576907916856999086601419245146072643345031297087175212094080557554804627366248848391688024570181068672588934282714797384548936603550166419001433280761999125462089176136190536621003492426282204213710103973903443261712335963386455407374403815845943134552537965512883035387209417474684258985754939929234968727631883108523601253130510380211721382917253607164809622526289530095970367969070155718593902882377998386512372409444591374131156727333482861408869326083001923196609734577258083444891397761965274316300905867596386973210554562022351290546909330490571104968869944850711490260904731880895028721668010623133936917567542806540980533202817954299607788181727185061428418210581632938131677359082661985438233249646452903838137324134315563254256039792909450468505921636601381929523434976907882427055010482711889553674534405838607044985192126727916993874824638862884186898417891327030916993180907195550365902568035837162734972165932017575411555196073072163537310772522031672277969527182895808419148142059131751687700588042580969237190279935912491836968875140421337981744010386594477684799292158296101370174303578457587334851086928954187319587187168932594923276535946599611074352118401110133003919563093386737277038336109369833906741006213761156025662585792613499995091940896525184533177053671786701615570237628498089507791764974817640211743469322966752935238273947875135104955653149781552961453597023650982583424312103070073454020977895701594911445939070907154520382055710863387753813559976507454406274934597007289488534419587361342687653503686507791502558173429351868226369891045164737247339296387770098039913235956000839905035312264936468599875476247024837663480627278178764651679966314252497152400044917690648212039901086850604856636920471810678128914075608310521210116578171075090237242249817073363863281563061732246542852222936467617407966339882137481354435024285845558263821839748060221637238024426853032892139602995786118054364880923832759040708298322166497686417924340361228754360307539059456051470744261314917177314726323540643619431246367147918675949941708726496266320196229763663080783650463613297961069963598411380049642178063804423255644843035472301851417232343498618550135898293550617780838197635673257986077506981817885365020802461118759375153706851890966503755741354603184592580387407958229965775791016454922389414526842364609997636473130710800057710653076476097472739170070342592115993990554725934178613514950290537513767271380181621433545959138150026328927810143597286552407485511069330514171588900889480033200437763126236124094901934217265624195466928790430586580875511315515609667480788297733021512094575026314723852979961628306638779039839999589924440223677459809905774306045334333269542627794352767917652296733446663817414080726996054154817874820827671209238593931571092949639271586270753514833431481254148653424985162666296167250939655363737867654616625848466680889974271882072054372196151290644731559278873922867886100195729309458594991700130730371267497391116291278836239545016469071161771484383293685577578159569707784202041766713369468069699886168449227992737622557360166760835411815195128795677686111445085939893696576577176745022558175360001589037971999260699609034736394684189913853256061962142681069262357859289106835095253970073166587917606948005733027049863561279447532858465829910071423024931086137903705544693517321389754738938241692320905654720881285904497496056491958023313235760142494999214022868840812510416499683727037719715260009615620107243227843395781354500896698032692557072656193042287507993495565015722470669393530976613562132742851062719512940827787400134385976650653921787397200422690373844551425321772679624860050233094077417734621564503299955566307888891187676764949331634276075906473842350716734112542048332694762362441792046844785999498677384622382986090257294803728930697219994848515310905460197034561235375353399685125769789798908795399160441409853846481796205772268046561375611593088796926366376825659033365523420414961327118082471444292404092779329533857647964328739404658750384682150289560294909336292112445670680158770352693787941778760569063106395789963999988739226210295795057481715827406833296294883716964613130395348355900736559059533966510258825359932589422948547910892537051375097627850780340756784194963396670932966209957946845580604077315153552533098549439422136333986882570217486698326084553297165482668222911082071788884091928008330742449480874582931531962115094663192008255031143782037876848779515449478646718745323642156919745932489136815536104675450862580781007290227819308720467153238509196168652864981606999665011265810450507477096305552962023735764270046288669802272542285405102483810038526902760323944156021633023685957608593105594123306013468078853910435665962254995016490837654777352585215843732585556136067683229332854610168003415661010378256347178395167602127063914358784418364125578230543092736778300636618188180384496369378326578667343335531589228428790904578544501457799313134438360207083828547481259187243024308818842568755258556350531751894469779449310241544260589635390446341008647440937744599337671382383174372695770538033247716436486814487589486265772758415326581007616990642975377026394766346108089594291949529198751234183708601633226747691848479427463576921881981320125699804792648215548299474254890913966191525965484255132877285429430997168033906130652660150846289170887577118698914836276460753696278212069258813749990379233155574466104797513176658002835677077871984492918429644477071719994008350853993210082853242307583395731641021908014618041998986940769498509496133183694785123209832218484422529644761787130749367993289265392644020952918288831562176770499557099781601757900941220851323156219670626149301411735828326075092474290183728412443205783513772834691838913712039831155030279024816502949810233760100363121467126347541167046533188092847352376877628398666025976298309028108559954233066412342062087219956723482869061036871360775501176115961842429379406038726396093479537374406319129867456825007254884015883916637640617834603283783421710089571295497794215263043716340514619986784335870590859098673435873526949757727840187208985600720610040076569528251911673431181937608003798256737952159326353815030264731114794580083667113836001846091895275481794535034086947713329514022314562948578321601302007560507068797686274117515570005900254935178322347162774923679224307419184289393804278112328836648123417193206008672220382439511270356208630687888999041613477257838226088836796330467850094782316796866930522114615661980174992066641818790523043871195090713953918906625733188190357903143805869179049447443061572413484185579554205614304669189271364374298296113503380821118967127090379965639600722742723230482215929062250179701195671697010074495779071054921478631148382339773598463206086531576437297477390876703925162131010092106630048028529979623429881963765858349952768661120722248615090266577932774922213145035691750350034729276071495595663022484814213069055644011617319907689162603968967657551061890112095452716568064724651807984323363861261900075095948856678026626230822862956142921008633880498050688182061726567830690844609293605740467031789625556932802992642990466642786406507051119995590968671695151358417553765138761362239531474966404061958424744409920041085712047297730481125651046062477291522555806086280970773757837687376261963580649804971160739076927685934356392375427499870602742687642706423201230836498316614146493712541037794161458403983200957582696905637835337165280434861143869374217796145542017558863225737096957881530759555279971661517183280654285370732227591573634302910415524902143708478096879802690335706211415833541835373875739475505935416498329229900343454843543856004576165558578560656832442557813822555901967627981050104672374211030061390806720716503798012933881561937078875252239908423263924404916137915331545826529911786942507568562108347400538949765124752423469350291960635833844615409853975206254098121725817181768235992795651692899404221444430275739969815470158852274013185987793748681491221920077308117196552444351351596224568980688613902952376346293579355823253273774704917094730996634193594801535048912826754506184925903304104365224423964590162034998985802130549842568070704240227817369775536270977794514631104612358369207375869373340641171052029222465498230892604646867056507509854429273928898544948503619843168544794539721409130332513630477158850032354830076310979334186791056834562003862775901844265489107799907318003916714531863448300421379876984138684448044908956733332686625923757748871406333511240491354350191008373481923778518957866508007317009108379764257688302139910399271245977396224015406601689988575332204597061885807014899218095956814271188353863886137007523923615511456269641515305323482385303145956311670351086707581905511890110666977670951065015779396926403009592891674037513714506761957503753163395495989384913686228848086529519066338785133814162996287487444877617810984093364683317354934539980044066577551739890523433210218432717771453927144458033322416286318730154202136393514218466693506116412847497278788905710903566195073806935691908551381282452151716682360168017874037565459820907054666447275997983671682897962023355748614312922622636108720843935157551606330684686589284383434265722326104305584607451959453429731179582954666509427295447329401437558258431325018772852641342478745731994112682894747575774229418862302852409181332876632400995246184278713942810492304600842790537061605420128035190979610172360991357924868233108972818774114817165318081496956235805411499931991540410209483700469777269300003115627704799852566494613145446755755595729305109731391648805007222469215119612128465255133560728903915032691540731629734629277215220315038061418998982120592947775254024721849868718263275742093783378429889945149246364460841210981236903430583824714647794750695242504282579944772851139067409254989223115507738281963608296207897257350672876410414950610068288941845363929153868893261926793147670891026870120840467816081887163503080680016734454972078635653213136435178429600627838279084416469927312401234031485310114084119345207667767630776070037324251134316328211767014354130023243111664842601103826867695184093640130178156628850573437995032745166930162209098324003652030551385082925429379934107455385134711229103204707069711537508650759677709847190522896080090529533814889892116197982870348330362330921403814898974441998030283267668255246243058979616153191699308481896957115757700542967737820679954367437480084243947577675717587877984837543835235003592574930249648439555864237088704296097602683307154981344749729138154566235340442680491916530276220581037307864913086488207719469878745853264443518576122011854177689727495631971459936236596248074638179039578953611577494767970816415115250200376785239151781385611866433388413275791971772138123024173447023666170483034726164497917762181830932388451116097759795983449004477461067734238323641990349623444979974759468772517957722661686475959932466129414148136341680529575346220587545265236667880537162765927816014813421905125841544726314867883060226119192153970235420290695428081791029653361796779436697254096822158663649542606226757549549576416584817292733406929668682089845420714969657349198431750644713801226300681002381059028296076902444607588844198326274277847488547401702564918783402113643515706488357615254015138182785713438046614034731293865667466410054356573726304923060980262018049516205596670369176429742761238504078655081784148645064313492350476508757103552010067085415042386715301659158861194037024886739199604514177206494412429734095943780597350840557475702628724910628417980637397439300843277549571335205534587505641379301405216850934647237725631213359330633613717196173839366764478501175994105736885317208453070199325937584522751353050444155103365137559824916311896838626446416360681454065356683093134897595785910967563333238635528338210656874491387572910894244983324634492929623519547607910148120213177367486638315120296630105406122311980046958053200211212954317789726491928751076425406870705327142436256823070065278833279546723344406376733316862650155185173448655079185931774413381016624662471259470961893840344744113269297070605616334454463984339752785822219239187553131458993289122345712352057561394901279675032509675218613599005770450960936725558016911456572825916661176486748282318109073410716612649728631206237614507288931849770483015147922520674996493950612417369555003358165047583978632867757129423008207158475965459674174541350203982969124303065611308151582384824112854056101723599876097987953714154391225673504414185973042054566968767563226907179435890434552323780967692044234313236440656052299590832988837762866903454220622059574906572463263639465588573637679546212531474632289955539812186744707950378929435430464035863963915280662193436422280314054472754469888069205101437763592464263388701685400762087177781578216558396574109350498084622126777712764515419717274793837193899235920348935414760466954732371993844479686365256563656338169008039391010406869810296474256699263838616218612171780834599230527607854881270979851787246148200146772427777541356395660493886782833366998962159777281343407202812528425594446640185342963303419403161246275274175962138730783697697285180266069741820290394550639660319004238058024820815096994702078172180037684648383662885160331628974950199198927282876823437601059931820851135110604458762740620182416757967416763957794175204632145051783980537097714658335175428625966393704328140486606726684513676758575287911390497327388007678677143621050737016460985528367851658263593743052574110013329950420354243855583704188559060438364198300919141831020163293843125466365435612684765261807261075380886529809398969551659918980729090351079758093919596069602391536187452318187551013185700712069088136959973308207123899292318001775589468672939903704865614392601903531913083324924639238877907100317184068677147266146556716504244294078282102221822689520762403930691244935253645917380377288786106605928454362166153083053315964666214737385611188589455063951975759256826212998054350404600157194895934737275498483992015855557937916429524378399224769247556727253503317100574738530156053897521397947922435503765633688415912351511813794800834981538640891018414469378707172216485263758844313499710961190269551916766442138795739405318339062704927216981092560379794969115051494483174398367749825720101869658135175502109435189338611825557368114090739122677585578529120792777610568347526909580943929916283735661767810873986101446555819424795267647575089395504609319714100448488548465691325111094618049605201623015288741417689861232199030203462345298828340798609377876756210453339468576560980617886508335488531888702225542702765447642786869572121746067219836644400159695529821577908493706672694370440571703318424052381392731257374419977070904353132275672174356588711126729092922880988286601358395469029587759744873449543556996798245908401187022797293828806436469429471262362855181794621739283898537911679142825852569901485446763591559988592626131002407259933302218675684245636256286390907417252351272264163877260215859945609378436495375307366257496386205598479137572704032453606709040073901308076583605553225237410229096455683671348079491871476566792500552145221108127119945887760939961681661104949532063139425634560505377381217424815148445683190200528378602538268137854477920647782650884851303709894034619966450812938821031819335789267966494088653833798384298482486879670838162541134514065075888400060449758881855559074072341894305600972829276550666034320129808623581793509998162037798621760049338420624302392224483019937160749290858070694307060089814804631132194167357976383623911289565936486058845073363298363040097411944650671066512708427917420962965386792340288432552367021161687834678282677519940713299376365458792872412040765829010818170247791996115369253402544908906925185935808776523712668428113462522585560205632633546506942425317288215174455846408318036850667760813692041886179711803250873082692065281359454607662903218789488362202124809574554180630285461386645742198627768204284795347079915329185968381565041494157610708591354795155779548260115212888643527912441607987552900842186790090454778869064732762540720123131692904577677080747736993568266299451678041759150387470598672155399674540450617679154365152769569289049781042669704882024238492918979201229413514897894432520189558824025597769998288431408338088545566230588224848963311388939060055644929474994582457550283041954374212991781950174447592940842818302011439531610051939817753931091680772927219911558933170339016220099082398347414693858464518820509097411094849838421649014558266957219061692245898697656048331315585748602837456026205640548383318297347174560458264400098426262501340695629313137368558315095060444528913643669117311763982092251683595080322520775972261007206096721793300951887057489041261389216516036498272603777723363185186082123312058274739250893482750015007385261862144259371016296993909408712142507127444523712835065755307034194555814855318716457895820902428899817895499954224695731214528145058892557731327249267473833994512093005174998839480335678785465233349936958482216188479482557374439299870521012482671811311714968160863102806801329726805187326418831892295196524829821784442341097669610864501477970931381832041879740212957633862062574049175995361260860489380649352504720875822793119873268330648325525261142973400472479095991975003147888565195942653043893923269325239172313454741634598103765088354292750335891015822804878727284836226477613797721460044916597533888847573821534048783863882280904552491197282033605534878269808783436334053388337073074721265680796163810965344370192077684649111520960224671787116417751077040174667041479831534414993782126136757915227948274666007526686563911950948883851246154390625941777105919120617859225298607758132040523053009388324414848539397909101064917637962382122055462216198074936069882229772453837004166947309267911583786254876811001695564629721145855944541035561591449581341632021618949736785830731170412259405772961653341121546120305844367622849275907176832173419723354905940740046008164051125903233202718673699840327014186877576087483692018084706579088298401969283346030324283170954551489796994498018206050773220647640928523771808002333854636680453429691186201944195880470711780481770670360159780527975420466514150723003556416493832439768533138251487669040502767456908447668137759505257969599042846039944719056113805596095475683612444133945469679913473507647703309987488476694751978047495984618452148160460264593386794238669317705444336282645192194905973235573835727118490337027780657506895241958566378110229653167555949070278708547400607870371988720845930853364262651624627940323279354479340574208998860381711533653318343714097262698268084136981479818333997680079896155498130815618358906952795959286057690347408512426093911369401861817018449191117693350531018863498531954853598637247169072730445976848690571561534023322497531861470696007371932780276848989649056042797926361131603492591552295151589477501401639996349369670115842892380358905594737563382027103031202260333334933517309692047570341429719537005379174121241693567652122545152608823301221736058713338540005197551722646536670000784593078643614986096911276270147231457524883044343557083374492921821297181382586907680706575443600431575569067452839704027857419765258804362062233581146508663088195630433746532761186512475472093655901077152115383827740330771845398569131550527925794989335759545410998765834159625582406474669293903682929812116771014891435358113509606517985411640409021727724382541482032231698129193831438463626310097594177748240100040882026019851594337654041530036556865151929375797799497464288050129333698723037214480176689355326412191669242295409383338859617464480229936026431309145487986782126615256176976636176029053524606847918675443651939014860453745322607141222362117420940827014267614492931652777833581426858712465119451792879616272550197925378995335254361597902051722832353168326723073479308544637745216039569953841594247843265506567617619291491628242695682023968693288113533188152219984469628738135164379238310482677042116274011656030754995678912795322120912783566335612691817973736185474891505543041248188803456944726529697146769405995264222148058518463293524885098093661897171601713145949746475839342296872552209189812297021232475622624025608302213639807476758257583993292481187883766932168519944873749702665540735776730701208604127187659061838632000466488551335020487253698063627671881866698974654832384010408915574807788079280207562172372139096145747451474334007724343420119483791838510113058473533862319196587116196970233808557470741739738452601250557934528894552474180582070744210544378674701407171782756064917867552091754612589553649789275474705227744997143006447212002293946350737204542651169038720844615237527886349304780746433103209972554351291106322531520093416466665815360997908543161898112686587405087181251350262614524323353183598182529234488771080749890345814914510628524215196897496600294695949746015351039640878049060386538179954259919529270401062644348476949199920123340332659176097842931245627135103926633330933329589254744781148423336304689794230703737921267710994283460281544471975721744876600258925960240584886288943972432318231711359418134536545738997514755640863702363578101137288957156192947860516475635346140948593651660518505748788660322067342807320214473742397366244488536449953178845905370366845436676371829946756292085576878863574355810187632473648077862076328423174804100337847966081238785667269161061143673206700819218496077900548166876497905348389786735545639595292894549063089608881681495291974743567861488166016598340120681315345897507929263817949696955920240813357347943180504706341976998003070778101733931414303946356527824267346924883257946964948347498531775323756766555933197255732581549639365523525238772521183224998225876692268602984852853672197910347893103759735499121155879750107929503484491408294791222983779286352543489978795370124088816490980055626209388756156114939236000183892368043258240755079926641891574649908262977744306334888026200456076757233615132104742414889639166774179245238524500898606620859931267684121019028184590173563190230764696138860552118594491052990509108737379370695818950709647203012400918115181996033884348084420907949741108927062678126100375711373224985186289349758054898010560931317938505497695135706344049697939266374537763489672732405179763796171258823495388928996925158740415737686332384424314033809790393354471018075707543901466205394548719407646998029925546879133168022436118822863019118531979613270553529288708966207641027285580898510874927261225480985312372518351732446186577833949533466225011492319620486103281840191478112109876527061640781395051011590330720219760071096101517403695064356522401416890663959590978907094826186689931704008890095808655763390159796072748571164672585733784452855117723016548575283512477856568084187244722701679955243060573946962749483708463605641167921511057008643782019642255108966612621317596392946316145797031630626237991353794196513385093989402267121504649710120552158660463629444281891298689259114851080658366568464934460906541972818430653471346069449662530455751658507643452832512847768104329117973934980482371601456251002959074952395670908536079771739580857707043724849605968609228433509976718996459175544521267682569091919116260912714093103887313942497449758719262167359040477365726720313314695552458717981038588784733681009409026722725803648058171706601698641231331323462076670764750675121422615904224930836891226085164161736201481593321700932717558559546947262859884193861476732901614112639449124617951436114245743663049364283248636959599633439937893131080813361247436546793324650759756201566444636630768382436147885066796477149000745837709121043227830240960125154939139206604574802861664050197377371897215157556648014558703940752597216546287344948415787943540001406622387535598856330625713746348587019917937903690383815101921187504225277567358190795065133835775318906757581327857338451749794586038802747341670872094523187160137001229840843852535157593308124983412528070107579096196095315066888044320488085149525219724032014538822037612997193121963937774787688316519780617899509358581903424632477694037604889959853348623531835685060385373619026015206151654847979906326578992207152010651196346748717680803856861471856060235071525557369593505113152990959043851756749972940279707749918151144751946718002470673054674485113367836668571566673022972262823164201367358200981162642556970612205815229991031461584766619195802248824811359426277293316112037981943858079453570706039920948676327618930913061940074190130156914866891755667933595124684438054481056171740448704960226690647460003589183318474687256182307577485855354328267292125267050798269785783155677890970568606440361063905518697127139427896146860346777307917708333752275923109878040966212564904967098642519276595202493731116424226330674075695675662838157840884157518259426944719294691549537321978814195844017839740701937383325998007790454050266393406931280830571425890070180282844990073663734315318798804994573083268052513675282020176779199683057901287204412923624645958668553599529994578734414076352496080997616046868950866124810948461022012010637703274155949994859334437574992188182449480273724598676935232866814367793373957443115396361907981044021794578772752355375203156127106409881584789177435717714966629565319303243156788360062402662641564812349237553519952020688477506656563917730522234695067117031061863468090655671397650512428175982637884160456609166409448958189232886180325030540585442191681809638851031956863769880096372465161031513829905670657275274111800796819186569177212558327088016531151414723222712304976520452032348170592915758241218270607283011892930131356366861917360795522760286519584039952916138232358213621490393218761654930767724142690697761041744225149160440465549640576134943701720260857806182921986887617966307460469113169211669888819602061362705362669959523229008855557174865099661694895308569740085781290898442322955044520550569786633956679162703483648026017245610422584571640908313749960713944830361340350661837488958201775780981474504045957720630310551233867662852651889562967020330495011091970661602332648682023458211941061552663238735991126463622212890323430945563855908813978845994919420389787269702941943196508324923868646213797213705435246193476853016682611930585970972214150833419330640840864415866014365709767570385305552886241308822202521396864747269651297305200396119106182263168257448072454478841346519697950991545510604321362819404459609112337061289480524058759453874078539500610318990319968822146103901452146590180465975161439182800257247546642268817282867462355032747147660197708377680858928673556540624490112714447965052982192123584313979883708858975353246446018449526855819932586104866976970812781032437041853215886729001914830327421116224105284548318367649037322040066700043287981982162336907652193065569358043288191097019137884688972643027606886500639519482949018554407207813861273593459135436751473239559214908404362708272731726857327185886291732178127048812806791196936678325517608388906701795775166817654899411514743550136484352880542244646573795442666269125361319392426413998467275971119382866305582620471319644374628169400711230828639171796836658324111887921628286414316397308617340294697451528592840017269737016471271638302664848106836780452009227163665870897676012409359652232034632711357012240718307956932071701186020694898809785110060810486176671307926702622480690866347699641345715901217604564469314290419814509983449589982371458961755124144277783823446110424036626859884264126117421734415635068434294174449514803886779729258267498166374513645659492062204747968088489917801420924497116504479096827731668432164115413727978190095829313926444650168387205242401314813287054927080594246390227007234532944098435910851839455246125040128786057032634615888599146637308688935157821937397428661465205580359708376417778151491994969853379956176778342241550629971104145352157748648994380059944718245291896202160140839854044706907548534646080956757152957363413628447093568660817170332282241433722265511601432832257467492768677536101808960442585791979084450866095609119125561708135683547141199094041182583962566402719496531762329781063813800848435961656142058208636993833598236076537832469521994924992973023088579602410807436642014645420870932512561009640668716565585470943722579587743748815415024447923983606242548571278539925539426258931499483095156999184437855407780853057577477618521749308734608790407490007750789230961265972094171792739392148872180071803759792364003879447512216299234789334980422368520715932850449171044838778383886664576113283750808181416812441495174990429576496674897543715146961522635992443234686726206418098409812870233640437807086196285524663519104609138936354786102716227768644907451922197367800484431446265049712672252446008474688912195773743940805204772387814207769966807177241822127184001859824668387584587601827339948104473579313452366926760089364843607077269133052957603612754363565589859953352717015938851981569407510619806668433282909446054439318778820289654752032614169131860897567164875551640500165738428084406660561907869711900266401940245823232523742894568622293751052609512405410456402304261617210928477929434933880361821438314188413524671650941320472523950222991917117986607942945477790456748995965146394083875159000549316734049041266056123879348968458773182571846051827316673034693714760461682557420944790835236932843931368767850019067909823157647541757729434526673055375943362053817777231014766722404062759277036998084838002267745798856026993515560445051377739718014330138633723019735788273939868672858859455939784519089880290219321451676653008671848489218500731586685401517070639881748888897003710355417825460110671258621073456619308819977722803399050764811088414892284205757222810052847624907839727929918312210307769400245903680191745274601807610556955154194677940193784449457313638858414399286556152537447214184466637360482777904013493852659097322817554010646378074340261247452084497476114378351708771636937498650056186910393646808030815865944940896103121990769752574359469208463836062012882479215547003950327659936516658358109964989024408193419729437377660049334612754633639460909367125212623279105999182563226619380442805408610189378581120720424093614404819096156515201436998653374579653502587306978644842232705504978959904217057765204109936755689995810851110439051724010185459196803291317657315950270940037563309128404490188328526390791695162681875682583465991579022412712738423325224807145314245850584205345015599380045444935182630430034894763717022800482613130580244858604573670010256642567277903314806941055650841262786600069193742534715568544238962671491832731671195037401500226014475190646812859647129441951075158535174836410958975948064317148933838204758005341159347055632622394480311838155904988504026962148290624623297627181594530306721922297818851742248022446976015600737964653768315146069204518200392330560772676726267662609779128760687731374103495793296753016996188243860007773910017032875148349853710965451805080023173571616262810272462266486307863542216150520065600857267881717232896376619494689561290376588607884991321285748055027497574753570640466603613902078735064220619487867119663315063503487297787367544039092197842468894266672384852704939326921601751780062233742082210959936688785319842148164391938457487949302155357632635887214241911261293140075398409767849921542323951293834532982103258300192284499573443237393147964376589409507631625389183287396519293864823989050573202562120883461021873360330903577304017324292908948952682315254695595414762256938169266100297458111356112559077577591150983205399410126596531751593471866157018830126731326886557905722337606410159809533099841824826275045616586954973705780912396912223358740724602464023610060701571198660802731240614754526258485283699478284711735418478956422830992891948004415179200120513971091714959876409087176292495582228342439819178535071591208985729524290296715509456009102329962494901350805059696165502093747921621717653594993128700593148506621529367897707059420270770796802754911776641157035969937723848446101507429728371137115548271611467583293136321658335204143190375376490156749778613387069373008268115933188610908549177736578297812570948332354632632607645065497586999222051587961538762144114809494398111416661828415686705942468631769965780629068974109825740023553076643505205772370902310414522959200359234959994824935898008711054639798130604965393079775659940060503060167389281371719690187114394153467651798653131724447096651385126968052636488800349692827135429565873921046991729351650947885876376953495205387682483081889714316870942355987797336826699104888320251766462964256240420225825093143325900430318022686631259668378699005180100135799408016012696506585130558744990590914848880241897807895830362007589340649740927938819171269767924883625571147515990317545811010449291051360843943470826995034220065304404479067682192488095269889542359173433884405563951442792927718874213364820440807358244388051878484851996535858117831911627527555139494428122809991527470792004103500012781387691542185641539159519009976941682058830795620383190372316859793172586714455870160720618974245191185622751556432410163583362345800240784207646283221094361301585530394620396313139918519199444635742731003259205353479452599048528907828770956845817989738932793438590740189613920305352164150903379539860381855403664786834392347822168627058466587183084339387305889531519558240429926567625465589601770907189776956045749483244015327395428495305544752593017657678143924686703559498890182162288919042075669433638987492710072517213090153823004995530229159036832954799925121453919365602975083430868485890379035616160701617275549048757049560942734412106382361584162428929948398009479501209725820771061191596767506842406125202070880036360757322381247979120868460322690729142076122320954535192694421106161131255158700129636137927397525635444738776817571112331765911325856623129694496606301283599555386206126565615275257146117963651168632973493895961429026334522405887853223148309230773233238323678335090337302273330093036746556352591529932488432537494529668541748988882726763498561039652757227913577508373522703909555036782500663805983227209348877047437823435194269654725320447585579211923899522397786315292793232945016009586716048803370238379218478542850735659363939371527078120239311555310570891722374302826792205664206448053587437481069851042396141735890407820607483973952488036740613214587157239819574566782723748510899951963596535596732869543367328073003444516720879207738266654998671973599027452845207142251134438056243117653275086788035208825596050653416531675349697252920945175214413816247233605853629013045134392542547256086303962332869396266480858344310501292743016960963041658074711584649062367998115844431382718690181317582605837467406707297709469856526609518906270498698524963205767482952160950532958216747032445500827987402919255116984233269635290157942211767802122450426721843844393541641941779149995301909899328753095890278990780651700053745789491829228410243468371806008280394250246485384287501205433179540132878705308003989997078485360511631195183697141378612537591069138879762734566518939016897683051913858046402176850243344989320851002779240912103181205200535798924467540651755724120446999380172183781774284368718863858200438021011481188218477895467840331800178277724790866005217504745570247545338885294222825946459347569627800121357808973914179829637170234558787144081391526938111897327091907224354451992156364853217253041065420216756870293723294531258002339520734972375409151051442440269496066685654017332839673554242879680457524764447615422875523782254456622236177579991717801140750806794615018417180964124280501403009247766294154703089196925590528571975296678087250554739363752087624839641072676848882077792859103592366999521334221316317433854809186512337366677411458685250317370397608549373618249366004329744078017514037424640044797714232257016931839513245750105160079933324271343505252760103936207994887632724161920096187438260381910342145513543970384832959544663769892902188291475128499526863788145716812603032490817979260408296471707516893297738112683214282772103951794075944572071910154509589407307891135981666442433409105206561495179086289490980823143759378241571106988357068843575448300022978445324094754460673726091091652460161475760521644439215067772476493145656839372078115934071845974121243690601363238071683437875820064822517786897098364329363223434103888657546360626938547097018936993705127472695706293723420869182383689333525396795528702147320629381462281138064963123907040729448969192221970827184137098490869460393509158595247599713116792506256210353018283051544210752870242195464841304099703500057881582177456723715217011010471957417920413824593775789363421318046532801443436653638720297375977232664087509573530878804284777025084515413835447344878188344083313035899827125657399257237874113442664254399549707242155551501139080720913211454424423205379332153983587781876170727399166472137389208659650856240815851189981830920200491176700493381365163329173452312429417020629462289331083478841419982274573475821658829340510370762606413821022834910748150177655486834645509524453051802449090883868714709715613261602882109830968471086799233073355952635684961746172156452675740678407378922543604307013357040628695931322844082210040655597710877497623562061507147295149374393468834715583870087611144320603438493782868785770947665930185820096471500251332237184251863889923029780667969385762104720557108572488267112407784278552959204180752617792480188888221184928908438294636642065903042251766702151550719810302042892825506285642008453923480797073894394667785508485415578875877101737141408269418386194145663465488400925339547467436568559722196925795700057601330279849958179863569245374943326964094328522302860033865763917104657435717705069407237128663130979912152256265165354109726665219433533633588876531718645381365435834045725702157613169654660185781323975450313808353485933523384307307349592246794478427198438172031220780613462456649260328797777129707131919076080692661031771640567188172116687291351254483034343559029999320239216515539626832055251961811521760076765705687054492922700469220705107609329380228817895713969890847242525093877728376586201003666766868468939000773656597442463314414975310109499440869384784934927450185296042047201359276184936722403773182291658268933571253241514642978301814225214062428487519771144708910250474575432421601965129441249374404586015407864266132733499395655323035711555387288012093202029097340949154767494610888526212627270797755798515348022336622444031819923050965002017260140836138469085146499035886737452077464869890925320296137628671640029401452403320721540069573593337567089607009877452208668847368262587987860000054436109129087653376721314274454093502182298063079270431250248795410479796215534019384841956509469579796228837132166223744279862675859331292876351803347263478289679141541165134320490432120945576904355844725105921036377405390219426322554266899643750107906409378034453388720453123766436853819212306153851110102541800761317725773226145711202945139689567008314800463556465395239134173483378223192423032107646683531623336081593803107369222574626180200026553702998330111185235248570368643304123750834326016291136707430481007841901793098118896448722077652523177346594137263224734488716068234585364738218697399964181575780959739626538691662074798436559180905030340369646239369957143831569182814212377525830247451312885067466449555203155042371674296744452762619138860370569973319991185522263910144057908082226725066363121795594663538082177373530467684619752536431809736453377321554710192533771481913032893585547745962633872940608980774436963726128423296375069870422280783642542257518879188317634172870203506376871433543834994784766510171727756845733725984443763174887870761347624742395707544607816125159366219472178310848047730367767317573860290381211214574435747557681086712486043221698331603118249009374077037480497023583989236165147352960513488206496315712397034774874261866018341383124503933942537206340864901542621163106398336105822514903814563208169046945933077520104500512002057160615802321420624812346339578963783018357488607305781273523193775190003707499953408201452258698689640963859281523831203689247128960241693191000171963541906958898244880951294318536305822678249106064513358865136201269980242276374442568091764247227365855905036850127369188117038798767973291448971910150111332132557408173236445765629235302560798477237029369481219951447460692376087157341732932604357214323705480944217992961294150948022425040980586129812341315389591539891560423080941069133452792934552728409219951524124467764231401335459463968637636840672949926352044802121778896100648270320636754237826997882860975554183603491563386739600356825142785037401272824432863953816696286308505679049227035481565455997153053958103885929989010619878451626391308063611272628427573733621315275812550387881229093922776814990628814042691442239215558164307954422579507925171528089392340562793416952744926526797269077845094818578790985894316701659838062316424229717456218198668474212007103372410146982374339789288219329030455154522218702138975768063655938398201933490595626667385015562396037336421664952097735235901493851762109839960788505426962542035006205222781070005169601945705634375917834745828925667170585991648151480600296686926014663498243425999378490995983592329004412918047582266750569895764118463576050000934112853938491144167540687537469334719475094400930442859816995369461748017591677477941702884355926708758969308988710821711084380361134752603947399339549058071821576131447160835417125749200404904133473444143892649419168227945656579586187609370702941637998314675787890009074521913532503934827567504868830564260978537090992250894429413547332314928619621414555453003592056286357682770359147274907650510927383667344638385851170922828521110415278359875929495467486226638092303564543209106812532680950775086514020489014580636675640448222525767698224170940190523113522274274739447905772003503664405613277883104313834832450163856707671890504739673650751986324711310705623808598962635399872527566197338476278723154804669086947226937115377713772315700257654598515214702390131532772522221279921914583093606172108091405355516144846576454285635209781055016326695594555166044073796453666849973615801988618336870091181052247819597211804677046417243434016335403262680429410110625393059756728340067805350313677107423996639416779113359061439861849265037322228372804010726965686497367155911269586171984558935287737507830330872879873850937165796276908454920805428536195483145006209860441182843310804000056515373120805410220144343359474315333556230386202782789772316436114664064665672850710458660444741881541509443338507550600408657080815208212517974394784465921285602074168816874698911212678940974302879727454125902383793235100525621063080422211856129774429069798344380148119821844489868104376618890409099840929695516513624189258542226691346178520666312483395666113787722852898306673958173714120990676561555260359356709807516236627668955602209361879281151154772330901757110275852996905610153286855779407228817766511002630692218994808384812853782906433081840211965471599844966543646939978228341808565893634557106123291181639412250157318699625989413719319598152064609156681390589527391244881808878673349477357005182904173141434445772874680662207932328230233251973403775987764791563788090966709002420951977702385669259947155524344426526617425668962023071514728888311575591190299406258363144950233437133112560604926694796542866661020511669269743219993668800274294117354450423990268945476234659727364552390624443472626661492572167606906257054009444633488600670500352143172819703636371949504426566472597433196207190839417826017871686248337848962301053405272904869472414943893513563039737599753210699199213609113608646172552583709856806100651153806809539079449606977758418875353485161624346146295662740926258530792731500509331743251027694947909267561018635032885860094935642642843544876134978495746204983633215267576325051970921098476087708062456749753397809233048619613337755788166639760597495112500696873873637780782960809762371092000872728569953659454384208256167046141308531285114252295978631425610495490145914812331861903088450853992157959495570897320886239331031698995930058272885888725832899490366588005504897468620896885597877745216872485159526351783075542229239982315243477309041453688292321130167872224078023374866816459235060434648771033568366948798897936408826501774589854107952137982506235048568897469274400951848876774769591654435297673107735695045692542420689580479379444437045140805597024981052671307721650701178514292042537981640192894610696394195408710937835982424371115202957621517960886970787567341938761642714663712498578175602663889064285333380765181346487421135995882985438764825273046335302235084476366138064772496083800914204783180597930963786945286896545772246017308577624735125293911002613602437387758044082779342296525355126244878794766575585345834056113173314473168579994143940101032117517406280520546026563331867937137213605589117891858527757403404621596257579439898202016679194390111295552165828950780759721684360270249423712399664147402819577388731666972390429498523691352613690893881764280751725935838687798251961729519599249139056787519066847473591077430854051391399186112433798812632108590005852809471371944605689171028302626950105173827449627239852820978832508388769300204913037098782456644460365495426707230533189317090649070821284985855481366929663268841219374848517819587253781329707781276244817956415665883660456559478683990624137432801011248911632679290188161998203686783957916677694365362437654558578274648997418212018166980416213399046751238795632229946841638635801316664643134163261598110191181400672399961087445990794568329477454472201520520324188392287372013724533792798175478016374584454609632706198471852163242750000497445028009943327327865870290142260556919841226835946039676273439011097558304355230868034766765609046425543222122026524092721063564114457360992283733741354447448654426344369963165563272925264333605258015626983504953161899923268366997446536555864542165569668971525695446800284338590288331101842055612332315367612625403773546962943533378422842530491158805954542717322869992721250330566369458819237291173648996335039920314696044895116887999465053556408174116713942707485082852093054344441249174759562150156940015419138501621938859247067729475727997548321502878986906872991287107600136018192428139844559910296762445462229150555781302434415078106603104125765966666910319859233731539704409815371945589901400985037508143603082938093072808827738681779793724050339712771498993552932211087874322712384247618093461603281223775236914196911659438182328568910791938885092524165061020675683313986510683274595998981186865222875280408449444243892889074650125138056213588912218397322564126293402029828856284223360828072008582643372098489170466048984836044758273995367605699482242491661298608442734883500260141207543157479271994508799413889210005504816806766672511767543401176117159070975784504932915120548250558319112460538860556663312232556234197141215925859161131821359211426079711709697660290193256525002524189887547896987539882268122909433982368559322334405033896801423688167637697223644543740554802845708564496699669647328069044106402841706828440182273855994919794865065077831255950871460893650349410832647237135931158303576665100163653652401693851593785297363141940852905133212728871607810877367996151564249234612037769654239992027995057603074670501794005171150638784077663255304365382685766851229777705354566061678713856823047650191883128249201352447735760789224577461276832432699702441458281637041139193454886694070281596617270026689773444656554959956015611118239973164044755940883981526451028787504368920729600734142070854497529194869149198152421575058128825910257896448523972110919867191195558796196568967895381570002196185317397480805605171310890585739174857920211739994081565513185464482219300128010363102502381596766259904055575144854367866417328381578286266942710992347205916343101857772128433209974108269673742785742326100578769809781500136991743310670662387640378515954816051411632688934527697033503487584713591689438047896117768891811672532120607122008633038607156966596333909310880589370964936516560265039030461147329295447047634377124762018857215312908364776396300605735648980358651837977255244373872111015411542749706697514841251381469293512414749525201145126308861741188548982208775788056599004577577644766431410790952648205120648424206013658157433585226864028404938233022001708290713010839136410606050356581438712673635342351881988602434286922032039289643274494289558211388885560270445484661818036236690833782534073573504825690051889670661237969796535395933686867807980072675924786627009315822162310232272532809156826354904632479693564293008966166375590384742491776140117763384084840237404907417246067960662485807438289659284756089090882392837471976383800028098094847517245478517185149897084637595476198533683800595532699528661795501216738561877617867927810383777378972962542029039196995215192334542234142689460250148871786686719055704604076324005683082176457044931811934540402964712140028085437473468870112499550560393160812827009925010682697735639505651800219814570818957668363564400394273123445622436307707495291237051552603964401163431709720376886661655109677960261169501505289235179895068952170857236714927027127865013266904708515994612101101949135543675491384029544361239815326703018505076411026869616454669676852123785224889728678897247055003511210924637717131973535343204480537742884729228837473837248062930384872360738267749932644646542086718552178398145325211202318012203406693573826301143066719665022180247408693367944601359503850769069322262851241555474006258943849288888026904572043167053851324147474804552536694824347931176952186797400338534598972014642966303510686208343662866233604257294065389620228090173445458055238379343926708654464626357319023633372470344738610576527262054768736427465601625311229126332596486817681787030647561783918373372760318336908957215277022785204031244146585789231685866875674031467236371947199100373781979646088326529268071771685661808789041423168288651117481384755234208651521638773151970061219691979488630905450905288553215136362901985968634239294454740770240970977287365630288189977951360594136213639802286004244450627827400759904508004461282162329903061125924623482573503754783200118746429161173370669899973717379067053063660792674291241390627408520422014427257790590359295102109673660963325341028966756362221968757948494710565688172874863684685443730035310220799570053691531043910136083974832210521357984560969448043394373612544156092994121583618810725484434386632832139247931990909962713876545898108979493081317832936025640950086121998418320989808829930622235442289693667392315175793900780728800232580678606030041777080657321408942539598870755542134733417681069491985719339057629106350202992815586317621376845586041382846797526464572959878439713292044034485423293055371654425374621050846822681378333687720708849867515648053449150038293681847077164008339142465647063707056740383444758709921343107461678967387105798911684130257140043453092099859977191358464125316109718826107902192408881244114906507363316594301226464792487125473256944915513145240868139841075857201444362978215444178438528009259999995071315568429827085694998435993539508091461505118303060001693345471095155940645559479559575612295351636040417054166131419032452157148491949062469739432026742927019877925837008650642702748755159821531333716495360268020144615599221671596744921802588775294703954536287416411976031220463030010627725498439269529542482482358450462161086700248067498301673314587454525744847174938127301285227905010434099154091997797503470971074649809202064759223446395678627748338137770311906047363759084056589876538712410353956940813073091902914159938131155272898967508332189285100213633348667019474322010459545594885020813491788516792697987982812770463508670467986927889212142019491183021271015734196264835813345742477453919558473694119678461694557226988344311435548993473454646493459590902089072279507829992913513055761259948762525302160913383104476235876440737183168767271651284540619604975634818675397302338516201498593061180960901171791680923669277438204016828398358280786662807499262963465436387273573425161793314772910407947741348979299761830462703344214785080329456101917425444472770183850534626006179292506128332848765046137470194647504126247713187167146459496097231509368216092538477610862308937202056313655841350549169367369868719695303812941589036366135641268890739561943474944753243623983034354830137180448130810975635096410709915170561814717948577609681344002701606296119816247062449875001437248974002642500019258232861596561520009116775426920820963866528986054499881443854923305941865415109024191481640832301295160705241660952466819536939460633128107988682397238877650541983408461227176622912390927664620802816886360298928712811454038246300463958379730117640398131133963548365067222078949322771679934691075200288180696172310985777156720352105324579352715552552840668722918627015590645434040857068007461806243014116363727646172336310467944637652519581182743468171687461231994923165257843137496792807063650559275917185716445928934133427900281358504884002579968760680902975914932215332031080292073890708668115788723007795748499321268153807340198968946989831130044753935079951795571897336058914791057587170629322799445157137693552191280235849627811672528652441800448658860706189943476533094604989242233550852223628458513872552793833428111330459695768321084833763360710566014029145608573718952113056462458234486458578044761060506220052047224292901671554957920629918482894604823037241065351744621046247084293306630264002695146350521654678105953486568107793566200892891085329226679227951950641476338648128307064698057491443622448051792833344891640779489521533867959483776345357270243130469765596847845064372118936188606895925283679647040524363359393163851381497168037230261681398791794398840677533173788851459566292096252079393728765730185990817797805048530218030649889582106394929186634191145728293370655141861150245887066172244581860900099130831730631853904755298783477510662713925544228351602362787788836123295537551164974227996203046649379723743686725035396948065120213241671807544743637409325232002371476308369838710823885866253404737227807820371129648234094897940020408407975112201984123097150837284083166154927437254838663580203727033789147566697757840696382289085985032636337977459068521834673996754057666986642749412661973421742849419050192939319636637378602612384018635160866027606178212627141010039591420790335690833531344066632213259422819534095495548746719917507533092909383117027819839469704998220498014581719763303184299273844890712647411874076713457219787258963302914342482923519146573056502910780789748883654086430314644576352227977482898767095101584479157002997196077689705611710692408156510700710690140501245354398437948371465655827702066150821905935829130206744236048075837697102533500127217034846855741488583387547274360166696061406423379123684804273124416560180863633947271077778883264468470179008577735835926665995226409395089346461173865565113254673677177938335651244555609113975475879046416567437781453109728882727376544265918274409658115623556592013317596207328786002464368710059482890836059726048774186893416761458109034253762230757686476185972985844380201072084510617789751079592603844595929858341898119058754811468148884093752906171108443812129727411919788973897720276428104397989828641788550557063030047694114591796976093308334415717043553277081588725485433627443913074519133561668605224971279028759669141010100450971651032672798779549317181315132587455662194038464736028815822738137797938306827958802178629326347086707792918478629374106387643868969823603413605825623638508209163722563435284596301037303170672400400403400150336660494115850445430098919429222513123277761542555082461764831938802130597043600067251991107514941939611966880863493327710387989793745811471299079163137541964947689802585857441981757861264715055000896156314770163926542737728050862217899368450419900105169524161033441617522941588847515581117684470290007320527514841512088560339421660723664733738116070061904900208460147060619056918524103104675301964378361539726994533557639148610761912564570339555983034176656368808159132367710102212465125664099648124418486998026359601883666320876855319253861789163128377150235382062035148290483658169346982523495078587770399639739308251365073326353282050393745597972848935246497625005161976028349500999427359117639805830578084964013404955311591837713050446231394799607820984402304078561137059553573394524046504674918739125990120848086811412682463879176016086666178601426630249884319555685681596824902354668144463128902107779422818804291954247121320264915153764926577941291401913326810411648715259798291438527504374038713239977189123454500879333787781276305362865735136024044404973873771572067639216582777712950093989864069791396744400376306602163675471728582083986362577474738276444402099604826259986218106511985179566832574226406427717658694647606458332713062176522567829250145557552876278215910809632895784244119537799419676513868324376276764161541561417799824369871096991516419762532262487093177306221956406508269322452658245629100048949501411026988424765924740408039062849054548947585664556932377390950955586824269106873540666124819536559360426562022150129644953074319837185859100683253227317167042486188720950915378936922275431465879546238346173150169082441690692472371041693901409028751423154417947723043772876934965116092863936969765571005751847511190065428125619774668795117907685886586732663902681575436708222409303805802285626030079256980657373684195509536770896666373340668170444715808016272915763374273871277316648005532977550277927526196246662382600928222462097048488680528900135068712373793146403487494906019360248275242898479833964446255163720392935108689491723848774948350482639985351624834488921613247364667848217432011162046968022991349187706881867051241274894043036996232192811351193766340849220197126246091624374394640483414656801544628428472811279614719776996611065418472286174897690186755352012934228231979005425686790510374143123692087453543832309028256407050817385046661676219259621723704591632771552040394730668198741133861830758761441488711348943775529383146588111186910157529151187351877165990494550437327376539420857432698089589286854708276984939418418079990857430334942133152762870492992764061436953012564309996468898609376829527130654087856047343024753191004200160739378104867629346495039279271450623493734505600771790752928926178312450846685124332447780933764222780046845210287256392936536862976393244483332822651447346477500763351918006293553241377061408265215039694432730377108371606446320135691460711292570162845704147629689644101989427115029881601522343180249827214876740455210839074239647350535772766844782454453391706961101120953790684788817662498522237105912944718633386477663563184998711404962099965879195539381290402808758829136017085116173493764244969315750902053744478216068686692776570921001102666148716206931538273419491459861773887846051101223080235233443139479189405865352722670927347472298987632838671260781437372270364017098321399915822364427319618673525036596556753145448556174092586086298415825467793613035816173079690051482234428012280713405284389024052613395354119507866485105402387195564727131252319309173115948563825498240992599556026884347607595758730886401524043253192816165339926991244975494443509357017074214555159162989581853623144934121163075493085739935938400617885934994690869863772107856372126661007726138325405940703001021075303070044876648339806447917714348996657458503442331564786636159890175725846148640696072827445193774909970302041218790185543348196406056427635329729061800432674339788099464811571724401370930587930113788282698503556859431205415145191343408017561054328942923726835337783104642548257513064364680204706818275569274430842221296306370247268291472418538849376286297829906384396237217300602244304689550139822081346087749858485278451086311580976038935284616607236039974370122566466859727104732553338221352730988564415937884314706193650912313607284202099848349879092630311562231607899077067075303719063821305120330337685112298771694932995133284367568292932149827774025638417748210696738651879289867470334752918143371789633482366384592604438045645419686449655130711292890605107707222662220158766438037414452625638391427329341555713294338984215334646401648314927605705527939848365672462439962930506080364154754973343151740064743832199227010214296939372753034428416050999919448722903661867745899136154173448171459154940244096646472031898201194392882706240011262294119946017587387998151039583622777455885908656195126408825715658342333358233692448468366959149904094001395007814467860528098139928283941009018238894706796399709092994395901066357350167971023674023704236015835148443438033961271790376753613004290069701905616480063522057865823941382723687059200072255354549494070825021434514416507961759454111682127821179546053733747608519851164351912724798415218915063261847296247562685384692139777027116742169467713022309218709974719133610378112256102909108725687954617073196151093422534970013792793629819346594325455156234035800908383930256498755314570056090860019584899757620911703910791038629757065052457134268912380562528425193180922587805605199307663086402152325071855984275932833313223773041829295575795782433727881257922247498518794759992083776292685436730243778254072914155827194082230321362349537745063655320995214227774673791306935445368535377989260927545267369956001052110447172181034479316354180544917574052927671131942294331380661652149560328732082791083922540061976500171574305019667846153040825975040970206058033830907233029960682063690600272391981687960199424833848651681079073027914849242269170088840272660191432667206570778529223475077009404686426518642510093795880860523360959406708931345969168461923962388761057360029494470212010665075260139870215313310061540826603675538061073048197282449704525390977551588633720480440808950781050440407350403439361740815460454016917012890352476404685524960354354646878194234958985391299568391167596547273139816455683982994626008305963828107239865525220894025211705856065323488051899327161327510368346208885612432010154979571044851944205685249697389181097083192995389629518068276681953580505171605772642103497358991995315264142051831207217599669462914696913380347106290457871020551747492476037960941985633739767612158353192217071232173736021316323860332557398402054623338982955728515498061265853997541889511503656406793633267494977406113594288923330372078674702933063293222570393390343977134038897718191977071011277309745272723331436956707580678424518217325969902837211687508596449558314821530519819798723713731896298759526867923257789825094966684225940655770374811283923070860684573466548345404606748053666946287080555859206225185163014468537278860801496239433526994652460224062985602606397677975391910336904697416501336777701366357749904148001644418350112037960885684449346151488617388715863928307934345836230547294947309847064645420984837815568967273599374432555113641706107744443380535471750556661302944801417587876925649076730617205064498612178950584901144972616484321879878177680810914494167299217534687855758888313687949114922635350674726993382916627512233012842476023453843711085187066930790855489221561242964361804312641303292330007372384522214694591493026330106853379980822562295650679751611325497704398933505202462043058270006808846760661557202049831076684301559048038940923569227640097023639718959459173454898219666080355832900143096649425588741581208680316791271367691234603923828870881304287965495614366894990309372203917032729898089110182203567443303082897223008947245714876128428070888489207626111246700998523837965176706752916551358712513975121203050187286301125238763423384236007574090198320723450858433433263011107386450799821337488957228352452621840750922724040315856505679939394663515088162247724465817451240746890143427067824221741374179604040336214685432504920829632607244373577372485702649974936466376913924794591050526119154308769497630638275650588963705810512757003399583691496026263860035102324551847745649067518159079017318265747850129626538240862606169401440428797801823611537497028939379719711788392812785470686371843045889921615932155895162622045857220312196820359736557876716917239514920585795936974308778447938726885613620136928866909234953829759493024489861032469064053243794693272568282739660652970949609473949760234599555410584277693663709050869194908862284027714158026303153408285650934105332520229661063760584397882578584911564329823797436482662302889450026005366008684075558459417229807228052661110345161195674470869229693537387666771769730755918189166624239978312549836541446515467479177553169289744680494330254870785397825702444895863193658723044537319965518730562619308661268532484029670824662117986484573745968787347960881368821098195870928652555419107866329127736625647332362720721089379631641389860954096812291679253573623125518915015952189093465789753407025625523734178403167632792242396345790341048517718214735764715119565888349665429663427922276887707848541207838003317453060845365311410544345151583527252972478330916824098088043846656176551092609388727571966254125956241236053383729517386168372866618286936486599678027178275764123872726411767379897009563156392302520770737233617256029376372623815262253666363497315369492994688885637769510838962003738378749550878349483380513139631967613064312426014693542823745675601293744623603361706330524431435258410878915964541954230799350719137489471951190690501228517074391111211761719358821602598598863245080528382731684956201750726218832827152539992017510563474236225451681523431838326455564717989252126113036886666738971805225619462373742071568640179872691974919979497861053981332149484492733991953125364469992684261674914851418995550125671930048330564017195850003408525670777069766034509362729791962946470042104449974408968707087837007985013895883452274902452838444897146680471806210481718772866100825271989931811212008598311681835474067705559309999405525558955255651350844215093283277494468066563028054191279825728089244343295636708678578132410301180462495687671388998124471312926207455042992762056259815649384097191923820409561925284899037344703868560229462100617490082129609692275226750563350301140881745952512064840626962092924612466512763978421502505877417443984254003989366612712455350670295687437692497097135213464190974895389629965608953050289435287644293170581491360271721849070625117724826213883674269197307430513317876869924185286900980171882540153196950660583773717572258226102643774515407293864483272613532045881402965382881893599731223176569042746955453708144344182118290754896239472835502191116141244285053275100614474435850503327258346527318642404420613160685060648838553748506788600554104476517326670181061452823208737048458925750908164182690352366206531425544296164457115112616967795557435128196835478650938210844041358091398382494254032819711978128600322353500965268651052080171294714463040654112087131141791808834354657569730880816962288471604214405487086978594481514332076162809862385721665455015352880561748065434856976469459121258399608664234801520698063786456386038069742886569147192282019740410040375610491282681186353841433720969842084319736763422714829523664485900796442858398541806429845640480398196539818323585307040318978107883957951537271077035516929801008471513868374596565467004302522601561681417102427667185275515067856186494023281036636599480146785133019406696666234442229883354966551579790329895824727356763780231495297770524622643558394798381573779762733684766071457661544520010163199569494656888793544412365760926205746253132396620790201873001847214760588638974314548178950242774016484150570884959426082324896568511590496318959124872867233755696183471627109794978576444187444312226700967511649173405283740663765530580513561894886661851228443439276204384232315385041020950738076571211265348653310897385185291213334103664235527254924438391033004616853188093084961828964485326178325968797984880947411543173102948898989804076144701276402028294783022922905757325898396115737518912335049979963826398590916755691039402698352668348036001265121284836152153426487859919157875697081066743270030893700168834115759450492235612148655513782989280842560415156502141892104843835248296506265726478112298563093637738736259621283910313839025520825612603173544879790348105040683181918102457074795318918515876746469204247645175739580226278998409628336290008245170310264200891789106204951407183024981875381279336507465152859275007701462046573020974473325714964355871452053890909260128691430440878334006117636198831997130936276822131042075786823335851355731919116011678899627298191117972827041145939817440284350117674360017022424751446518472167738588722824252412041026536656063500857959844739820765739340622157307925288157435517729884215883045274504996186535694638356482286493256908725136668697958314327687773593251422807418040674148790529454867719252715111602583960665289354128182494216420297483862664630502900727128583278047902143793176129739547741625251446267568546157355165628547405834117732897176499765158305197240495961926746919810209041498753719399663168638790974963620574503637464760894642890570570189529410531466183161880811899741201034439933514870567579697293107587775460429468729379731993190082522712718647975371171833694146858351278054356183671356995342452984658374041943932472518237779977387915495062730871449091646571241264289571526960850832668795686292066816255016889749733961097548836781141272449201041732533727870676357818880484222757822229878961725845509249565008723962351058136484932764223055043454216192992680526664555705027420559682925851986393443826310780226003246714469553701597685610045228766680640579679143319377050142957989918249567317799101139067420480158404942466724699373681297288473044628935435473168146424168549321267230972368260383682630653026099195720871940737222456883483403002935720597104829551205122224217180961493241726687017089447145485901400521413314722832135504766104419213823828489257130570825221133255634999291097501408036049628657421633507849902681819900409414831513737287721430866153767936613462831932568263060168214755875307158740528494588553538249638556691529091517316037889073407722325299911398620728165555034535139909469006692255328830487006121191029292722478516586257919521117639677169244869445122042344546055146768314127271404355220728486929638593708602039367178161001742454787170975882167860361224668584034461910306541970985116942064133741351475116948878584920171818196724798338112263022196462161454757565024307266985684972394076348398008420272077328790898465615882626681880470793647386860336473758025961619671951968288448492849319371030076187958367176192261805363648521452689423797749892159290943416808939940291954992038112759036365135566619129795392223437083369968568721284059608008868949937300353917642912513947937092209194729868217308483411719469043618771287513817496621281192285586009940168529155697512410957386766885859751799467220726593895278773390919134042738728338719417412246558742823155032773206521197528687334252321724755522301741063034058055854571093472077418818604548043662214084150501064870063588381646997606572536465902968462940168199629506404865102127441867436638786099896675992351087988358781868200865576314925908651137917069386418136513491552449498181056760564648095573429222060581859326569498201659226733695888304572862038716505389671970786959262898908914542463167824311881745129266400847779653469107372301247122594953553554494428526790285863634805131130694020786773235008555933418571206083212145976378034824751007863380917756290494542221100385558071584609262640022062191068335974645764944831097086011886197849021602699849520033899222300456433058468354884239695057323395209326226965648231840094477935353390192763033193295681276662036617904191883807010788617764957412662474483831585324240333403929481717482955612083703162346115853000754894450125380744353720168356014241025889221611708547998623314046090623772671851644809308241492013495345696444624447816166174920016844832484614095286209401967109838951378150219690791172584623670459410178837375206568664687860766989463125081876682285384224877492098781347357758276126823855825893811201821924250880498954080301964988763894659692868438908145612546245588808643908231348680551503504368693541065687366695214324704486834658276871995968588220063844484200775880080227315855264540714876498058088276978374852561663754614772998777595381912872118568937090731784596574117558547607110820596730586788451520932326449370732458105885264514907712407237816745008509934969232462419667438549239266900811539683461196298673763228918238832549468019235479299645984863955283086176220160584293831485761180624845119260922615256898611384917300637550508095006352166164235764248212470115832646271936427668528473123875610320749298031048124693795293143712558102307524255658751304918293037759562249187143709404409949947375159932745795407574510772379361706472997278520493103186864547670967210941409570708827746420700719600015150014977835882017557158525060926364201776797998136983274966776422347461712603690730336426249055227413401314682908239060001422228732170614384215860820153017010898091893244625243211963680320885796181839864342324230804680723514567232924555435415945651328829616313225068272624494991945211373338061268702524546438001602950155394122687333903321443635863422233257229633553445743087126434754167398324535615214846040600254010872057685632145217634833747399940083071118623463359759743016821353486924466374972449796004877240259788589276230708393648549126794959682693402760757544646069484532738136257911566681994360008018388322876535720042034957086943023459250537927591668677149399338086617024021426206717210949433545113598330237192312558759400527111322587161856970954965523027593562419517255391783987539982178591672425118720081306869461692779636433013901468777207941085596605284720873949080173935930636465629335574521829889114320639705195326439978710847048920013123649548551138842427951173022218014828658011995501673878834306461950671114755157492200386107984421032110571224402168937807167322970823998438553785477332316651170733295317503687182464013772031831190727338316986598046826442343793700518815073000260173776405342010295127315964708703962285866241623168169891098011598105781940053657158986094384734536652822063307008010201844642608271067717822621659201719951604061429935632626957799462886994939005533116869556572137925093860427330269735805371479988521187049430507786158897656608330491565976979021220916776021049724642044898855238916376044678894819143560641935071605899271007927606210387908691809436694364448433999791315973759187948896398577659160613720859252952319108993205082818964817956411579434518036035964381038643123700879729869027208525989295732221349870601307356114378601514011098024026385530624135089887574097738592570447156153152901776046298835673695202459769157073566269244931624440355426808382196242143198407614119043708473617360172501821849189462463064093863357181541167701386164178934842592989931246746083900828690864729546965914401905818656987401216134546631577182863073193982127422321037147778324647513456635632601841442688542326783287835263203975380819977182990581864135664563747927909679973891944403695071410992721350934395957320644773011048242682462754381900996649510095414880953525612947386648431919612503503068384665416157540951355332258721479469421857214667558756300729712798590377046054238541386664842247335607382367848826120610836842141850448926595066395075181976086048165637856263625695866045561847135507663935701634355102246362304924569048522449635086074427210029073698591269878041018440142534078691141071458466797441336643661032446008352750448647251397244595857782508668774519868964247551816936092386407281523044353166393697426195250466271553496924948155871523365645230434792307992652754013771629779406881765515381416846662560734799716116411230665298869072411502365620924974084339747148263784043538106121880059106166324281794531073901969309269485552768041936493518702659029444649637129039718414321894220196258241673195326444464300161204957101857250564209002393652086404394750926457468631700337438371910207036085656401931400265234625610868793455411219737124755725215777257184671678236431322953266777122770744363974646469739791907090292730505317691969951464851070887115768686108656557454249513059202846358771200302362118154605320288132881300305915342085011762554476792063056184576421046948132268584469659755625221400748638589400213016116378697853571935500534369952241705051944326359455091277057112772272267762540931194726016665850111814775200153360447512514408884469178585610711829285938661356356370151129787066005973789061323385945181578575140800061240064551300317797424143478159290155923016146769223324196006703984386485301847769223772180967274213607665162710281543343787783199419475444264728247680909718673117489333992121969875864753948263081234056487218674429078106433676041890057471093584457388496213354399311714181323115438556312850528529104232170436311830877910008341432273560269294890258018086900876486287953431839800932255285072416403461615232968854445740509895891855399456714805306525920741249966168008880613459597563826061828817990339213890346337871238749170323682895872158139857544013336021230112053678106801616822580827367560071418121292710104656444570498686087128016447592514522030159863419045439834865117780263704385838834906548651288608467315536303582161273547103562047360947717453929995323504092718200226320038917719083382760528617595044953834996128390344381448400498302147144066200528944231600227912415218572079550379356005481379535501304696785273758354079450243510235681037427696558701857916256476864118307963983240557519738392244300540415107318212714812285292207691889903994774745126907289395934362016454156488478207985415886574732519163869438732645476026158696979335014033739905261778615635200504961874627076420671249075871148668072159020171397353806111134377114300740655747674417000002848458192848528728513965431919565079738778841253168514755604604801285882934342530076234237852058289308671443648616635881810988834704248813498321548629999843677931284791975269226965061334156872940480845526117486862053547030088508598680784625770312124923137668541015959828307957746422907729604460260120739609075013402347120549064928797428588245891434445851341816446123331988631128937297679092914050995306657713331968050939142820756527546868577551162900459440257365900711374482005398359796987570451926719568238748062878436941150309631768633130887501128129322118723257347994256412565468155596944684745197085602370932912625093576992952727248034454175558376126280178731962173681447383945496189295529559562905127296722392566490569213957882102275463026137665276923582284018133201596779269935736503997905925559177063339939458050083021679255890366303526522577004633784807463509136559832155790972504483851826965754632429969207673872142359056800557278737143077501512358096262451470630315843564847213803518123551732268812045686558912992383525407233051783523365080345725654264861061928136587051379584476333012050095520180106669257031537279031313641337820874364736104989704489801424835325877593573448924155551115823704319516325288289639651884029019975998874851804122261452150052370809236408273896531733564481900548206092186496261623050687909385998383107050067134133942114532067987108087023553045028008798764847862628566284073159025707503100599711450768604330023701644787578357021836999849620510262011777878630704708020556489160789078993690401256913628391522076965606574968664093315902746390378783310174201379880766759056603986756809985584963582555221968555005844606907249174422175521665529029603950980249413668765248883398470559460198407794555122529793936416896667243716409611303857812031817702324054293990566763497676441309095311805960217197737843796095602599041315301559178086739678499967680035281064557955126727919891959539160463753303139635988236751311110542192537428355281983159036414665421509639553396393967587001751374749495750078513956093759296434587168446913731257306001840452463916677026932003038174434053954080893600132642799183024457725779879649088133965706704420672798966714039477818819334485097793893351853077939028676256008264925921706132183515811985151962373461382919366973106173717488849280717998736719068728173080332992718819431706923299436834752451348312340256640141318786898844836766544885584162289890488200811703437625739735500900186921164281286786404770024037985421697533301605396031701923152688331318034439883394622304265601499312182892870555360931905262120468904582568310943317698924227494480538391103044547229836306636710609088378748514359399097577138042706323140460680741155849624191267442814040837025647743223513362452847851060152579571552658264757100810000391661976096159627456401248409168374204843968861215443948713374625807200391423970030792648723077259474573151222934137579620480511652313630946852864178767369772735801977415647123088465834989454620614407673019305830405866321316582303142904034386191036590296172045398629997738863187981370926131434624863452670451950963003475795393027896790414061473806121260630764141319390124059728869015226821564629051498216794535906268208599379701791805305175420700408826997781149744178499738809942795034753821971917785582512509808571108515797707215440194036749180806696990772352955858183614830764871677271100446595397448337636461443842169881680525278210456008386819364750986425627842513206609308119623869611626462323013763119330789059851984983419829033518535231396918986748158437851856123244907533541667212208633909939367960684904446942239046011490877723120801785745891292315441453896788230357423507595194773151767579694427675262497053610450570619411493651909251083391451449823396255235676552047037108215752038798153595076806266960181622369642173780837375566391190730015025924839394166805213659410087505183825917448108158847985910145225223172905417125549286049673868628403497592336582255202960720340254826810242200033517295738617227623558307657250169471416535716001467544899341373941792202122906252144868681728181468974847203388445702646163420278904261539134144049075905481989213424228950285208541972775059061444510761046235279393067447126350714750972497334804300412209486238153115133441721397236140468710871235312640694078168167883609927255034355732996721092676569685924332102308139082635466828630761907391932101629347310749904755865884094149634450471632422483473979266314454040070229040753234462128354096236540841365725410505936516557925059531308570446631004728559233818167019643911662510300095946375413653776476063567917537665152607949206746813067596172113401789555639129393879855582070131311632607677365258853835861910186300446587805030321904139253805474812992935666960712432423783989043114800191491372940899636842107082107511936589964897076701024563499813835439560212663604680174432609579253752022021258323091805226337129265602348594377909401414870131458137105140174653567776303298899426659094490268358655523336597247622339102549264562019532827009930398347752313414752030112865454603813791900097089846980849290588387809168604969889131504157017336735309593956188471318877812667027201666621589837983395982706450775815257806863969740590932453037021966217756359891179837123597350024999133682243283721044479027630263656906973970356515935673532924680956874572753077891374594854180783367313575140418354320202245667348560816146237167621294384013320814814991849616707264406693879356881159058455160359014738801281354061168207076908987862581775759851802366436844208761878911916619184383591218542607194577059902471295168405300674579490324435272477929472182883741715654770993376586867523955236177817621806059321515013644061653981811469001636911397308679241687948189953739223083967994076858645686686491561402568598168535140851459566642745411703603454702070039963615497233725136557230913530444540884440548266688711368080357392216676706440423412516549330393384496238783703323099555766147325807331395517428981898875450504862749442391337505506407141166577087083608922933258070918642609876931233650263949795081657397376924082232861618551037925990974126482570940098567557216947375527787282832070202085089953801698960644990811895800660592158049500946323132275060265895739137034561101420359761375857830523323341014129138677286954516012952198958238257430502534001409634294893380940909757129073951247523787194296882159834787326808014023558770393218385476790755732520450631473087250596969207252243197567560183818232217341856689178292823802137275094721633293463371473846183833025730162785718189005861104352310309594640560440322904888465236806307491318946382063818946260854737912759149082815258031534102043525475588270811454998398502800292019143527889501934957459651975252063913562178875563518578053867890344248564012066237150470770893739692197010647945925726148433550434164280609928735104174772321626186083964459115178460358539360246559129122224474975386918691870767475415237351353168158425064374925761843754075754956035263309169284590768236626485368538478488650820970127316822753452959466315698886374256222372939116377631993249509205901522985334398962375501247018585161442170679459229248794269729435799208551866134175081407426532934501130041118150025378454076584245874931895189535172666266552820907246939727776898111385343911271666729422574341326225329850916736025770585513537537767588281069150859794161664776346815830006067526880492580149325078330034452517014558886146115221959108780110884794764505096654916119775820121544046466084744529184177955714614598131360987519039809093181434514870566954311548282276882375883644201857046665478529634911068322298338117596215949246906234127623728312987476190486199857265240073303096788692520041031340934889343353340085974574815942075883868159770543319116087212061080859476581955035822229320609746222977995627511654275871110128526883778631459652901290715753825100335440218317955186151977171226154101224909627738159171530539506226052403675879438406949734842333638185918119090330955954567815802425747127673006927564083383199094127268312808142856795454404396199340850013052639373322317796025820613888321466310043216478441786723291173912890582656732313688288118415847397162143954007361819593830914152983582638636555428059242250370349273276251199594769189285737791692943115994881639343689487129850560337177247930724747588126337181861708036233474077113058999251273866754803669123957243412233747260019085028462839978966465942426778376727228384603155599331155836535173663650079191107627106878823926891642424145366887986262328363612483419421770503599575631535325580740564703706240941938078175855361323537577516962853790583254130113035448019623659922399298677852229675104713493951387755109505157197554511531412121742182974464389863814154846360430066158223224558971913812251159418918837262986510869153448321856127085909498980234848911488156887853798230162645901223511707018758097458901604111416479224771415277580411076819705151980416567468751008024578045307852756359369668503986258018861460352933135360019966305579162703777059933025092002364061634500995470341387668920586846120379046408592143881068682329371637395556483518555124449877086142297023703207131069939489294889782521920709844264508700475051445521121987553763977613081303144715285492919547443992015591735191201810185914897419061142807764143334873513116782815288550330826050041617408355813331001094284053238524681613607463952085680985274923585395258435991076156930766454034103910881535150963958304346783220047961634645832573762591587280749022359122306421407690603448668687015279818705261400366131583334381756065538383424773169015400955503760200574032867169212383157736618841423834694694729908296246850377334990062530399203340993650919280528464941603122709796492262605731228117846375930010703878635461721641057990091938703715200901200652650609569735056242057283171521895851641281878653281326987504415495092941939807698054469354748346023402501019153665748927238313362557901089005842194028795900686999852737350300530124691503542362717885387939779525178470190436656421777476786841502073155590938260251036716287381047880945231803148210070683569502682963904507328912049761180971483888265471146046203632259024174447182466183273407350852143934267723681688964236428859655683525389413378096650638304813718642559737873469784829192674485235835791121676243734629497068644161881764436895009687421972229202832817128549827829012039118451446016197444423875025111423723455847158247286319923729969935313557706964458224327117682279333045009092186586383501402856223301174097663132156485593893248542583881111247847879380794034132686204701452147648753493950822185671758139692639699687654819381965169362723092145059030813716466895534709911384174077248647453471786239798562329560697418220692507452749443326296755439508111051070017878596596885300134867912408828592044786432363650130427416726509647021326971587463580841061120660339242887064748515042317063393229817999639723256552003262539883227461647702734975178563935859139963554975570970628224296871128971710674728650790365523728973466157239491134155358576763842249067343250373956397594711693046020956959547286938738456584145503745953182651589660752892302292170780342015267619324284982367716904931225766266540245762032723317380991102962051582182073061214032923746270319838460896042244522171379797313043851491899650256076386117539762477923188973230191779673813306018060180977638383764502837268819824630301486878328234892862873622688050773799637349405000196599748180986917353405712200279367768594942098164796052890360501572238704942359620204505682843935615261141065832019350224076003324744534815577811959586932690745929655267924748446141734572738264417000176639655348143373802450410870132341477738274831227481347045516032270029721770567130275715475272233637129310215392791034399821739771491969068093394913362023839933149459348042060291870542778651533052213734088656750871702130922692149125104967863068160414463029816473575714106632375719938529945028398929728629471959130945998425846700931959550762110370033223611999887651313438221906907913439121674463464361772552295775237860178274836574324759024047379348626925989307375800769213844503334520826089645585096587664523330270950004929025863162394720870522648065770735808957823450193132219493803860659541310229852980875952961047159997283578054535271589687642996737219388067838709299171932847046369457956872595465018454911291728627624272140321355555460851759704450153855133642749695480738128770326461313656546241555966310359961110598108498603564105925001940466064823382473691570472059624258357659508127386684294045408651082682143374490801671596684939508306865630792295785796922557058468598190606268498621394529213029830803549726728409406557620067694899299320543547465755740427108780388250279260037946337341687468937984478357971675991284198325053974113093485187636483342671992373002645060761054089343354974996172216314452099988032889699571111989076526180152540523329531389083835800231202310648507832372431498432107207861724548243685659426298869225924543422297151576244118894216212122519383895762447731490564814625731307636347342971420462139345427181735743759929279147093423639770345765985958135688961662914640650868310904066747102430983370851153259648983589226643934455709089953900404382324342815984710662337825963347528717631862888239248442170610159476384429891319636399208012796270438937770734072863602539149450120646883447230143573755893130409447245591414176214029318751387005241681584563525454462186655239972796384766563817868719771764976487264589707634334063161950112799925297475834949688821420771160237809402447379813098837607249743628780508994612611516876104780484001203262611777303943590430563492464720905807234013245445216164692948694571677131302619199547749743476891236212777661702462433906935588803596752090075917610889546327985771738344341773065280306905921349297719224994359581135405448847510609468326889974516660721188869280950650833309415602199090077543163164922424276489776976033061077399492650665282611175731301484281995703577738998437782606502633213047830769214681939927606274088199696437677158885179203825081764385603424972240433187437329328096845214830652520495612861407550370223264045910924610547753622819363754882515307841710825837102637456730323130131846731606925161954219958662163025332214495165702050048127751108462298242754189462316968825728831753578302443418404301972932807824128265265386653592073877449434861367871155233640281867873734751120655993532886916574771858753401597044492558537900874355425985824606831753139016800271328220850180273353486373823103006485506389486098415590501920598451979466991996337030700989312369630678713173681272069247126587188775972911034051813501276623826535417653026680465145461054909967086656133582048918985875940322394967191141508875930253481330471459473905336744527776812726735607877293101027593201760202419363597705521219028423267192363163572991789207573265542535464097713541486216451603929415091878479403013088727144132385183404253411180685072339270216633602899462995983474491635929352428172452479832978732010996740670887963720791197873979824520040089106561061287676270740320346154653812899811379349813404560013960810653108825527062225056291571745136222157435213914639307436984110319017633666653166271280128408562644563474329361480529845747890848179830908002441658310871258464229865052852555813510995845403410784279620138675891935756935207629089869506361086032954518554434232828229232531518674240093284983731685548966114647725218102467013362435972222179295779112541491000583999298364167264188135527887599572695452147963852429069768603563795330833348633061642433213066499876990884787151044167580593957061284943141308264470658877354029054665897015012297681980668294641455168637198421859092361034233733569168839703016829216787112947919949363008931547195368107206828893616185113904234480210462032075705005462292657388230768553175524717365849808999396947081005820867252464905882444452330797786921280813087332433997005824660977580057465082456725844352928477119365013716573921598383366615775388765948932373420911258309351831965049818707205795455881510834497895386061196453846256187030587833311346024795482477879127241805974883153129619681644127848135457533166470172893766757893955756362817162972880664189747625002571435024598820454385976227553329705541264836993089731228419207826685806602763557401484128518977997504640488031261979209538400769292726869340871106979685252566782948567062221244462693786482134089209107048089581547731268986213614499489885575979131106234036142462206539176681497855500084608301450046322457641514826382834542050317016718466671249443609217254999015880063525012885200101265765349650502725488669534113082806601356689509477885825404858686935200018911214361447401327316112430699832912243482353000280465564841537755894455034101195604673330743304316181154189159175748662589899032204952902062541139184340254471513740330034472790747516802566032373210665691839783773885306698513487558700346472861224710948306467460555846372370891857392725688630490466597140709757733120117064802763631691299551130913165102576099274980306946667332754976635706267000907812023525272586202012453916033429520782911824929788423626591787411609856157383406576791325588624020257472245512145386261121173758928389540992434792657456421272424977790001782681079061371432128358336113292080402682256474105659036648350953320841530078054861531061289307626417993658708576554313482099278138546356704300979242144673303342975621225012086771346123511493524626453422892886226633611044220054444434252318771292888862589921348124845857170825386444896941815114936601592016057980392641342832069098599616283096339016249980920934747831795826638862537103804596910169409383750101395174232961967400092911030046361302435632276044191689924970404524627487728540826543198033155301949424698494772093665019352690897173396809047293128993456257819608556422469881451037979810740326649917506225625931835672526583216131377357214352987252348253102703933950208321420013998377297355746212539697551863738896014730653378563470125353926095783860604349633890517394814570819626113208519099232842351584609305735686461801659694733497045079954528820338542121300653422693422577501046793396901054654467563439440766090891282614719484941686966094923392854471906862343724697940171173140789236163155565142578200214224939521037829617351569714639016054642423269189061661868913578008280546927669552354271245652595325911755610507716926216606454387146368792677976639277797879945078266992171355799727985290647516027841214229513676110965514248188175350819205057400212901180908993386584680431988089549830161893669263590698462565521271993370110333152950990298102025026241988051682952018299010768081818878729963269120607042182222843157940835528273710712495940519260527743848369317111805826845801672522423884073884480215805475670282515263815412267277802689207360352866638301253957387008144142457730200650853975782476780627642523533067123566981634394057443150674998370960323336535277762075718753939035500366380227192514496457715491435837405593707093079792460092106090996888150518849668275818838448548564386932656937987895880025940028884827345865470148986266928185977338200018683889083316293072461243234540372225205550047719970884688269691814238621156563748273320103784048735204685018031776957137726749929956590905499429612623071683884690783294821559059303958834401385640062693430271132842418423338326152728268678601771671022553195808549945356319652989706631373492215123237894746918903011590860254847140506408623269242422910641576480497646258701757261324189134374564706396126755533361265974860975663532788106589816835984020196922664801745660740460740149817495058685303017935794875103897043740833443049326819812064900022428057854103306748272177315793645758144602299000393307189339588650159452370176914660588843235966405973423773985920037774094693404783056361739346905954382921319944927698621108223825195707095967715685101049945885453982431905810579397360111050406264871758093730402406439947519084619749553547277286358145549461766134655378054132848277930931796704310081505233205296669130151132228446627441893151689205426526505497742328627091499427434798606690047746831612196504509375271970047632507735101203038942212492286181871648773557468555423403899456382715573075314005534309090496999038860015851572729901750174832830092748403281591737325502140916518404990845653784098302519148276648221995444706481552228665596083669855583480851557445534766300579594472514186564502117027007013004966755234409092610202717939667795541205362164914810700063217345130558859920432274549242797494829305260547125113586176288870113123345142207447828340155640323605823714596846338500142840411709199170739370462383750021522759422951930753966771281829385456048673935970183453260291926065008181189533245080909277601744607272209380053113302105695082059351781448728881576014511802368771223310827252727001094605719120363870167387067418276239161987590464121710413184074881478658690927637609589473031490112685430765869049902931526898272550498783348507724967071506217457234959303867079827207630602836193657702704031678859265334503490894977852447470536143599296854466495994068368711651536324984875327614051636554959550186065225056053235524436305398707521849688451821977035825328482378593124645375693677191767367989618435984963624462332368800420330876874302732203148304696784218811729153677504725469894340708755303379525916781229750104718781340503783825918476816282217531200924171296919369285212905000611497579672585201370333242992350672484815950813860362378621852623456106957747987090012935132990367942001685942691258461427579198488542226826242085106562109976240397829247965665842927256207261145283564943835946888926586554242717381687550714466072975746460147809744081488122526346333404557661016184324268170604995517058647017825157279954596257363132110695051595601888870341854798822283467773222059378438480637726848246740606127383910637936110211607787219942767858492398316089997561508233275597861022110668681436905367102532916034276970218084500388919450505910442402441482034045536604289545235442610974534617442064562655533495347102231828114050047751539791651873025731475985856746452693271930777603637458375702752635977998219392754779726340210241564480951305466380643806891440320404548577853019243662866094152443157134023852464397502956343549547439646413917186870593554986571605472837951172131636587030787313415329039467546624557156578894792004664534187862591604382252762955875090542861865184719910512677584814261788553330719850500630366638633344334023361939125373343157238737269537005054270161573372543902688247861277665451962593389664694043394999607047340710889358174464716958659983806630651691330193970241577177863298313756809371227565854994435965676735790674695293966237502321943189433231254289644050564855379008558302394258606154301889003869755403522606136938585109629263598950291478661295624990170833348116772397958794053439409325671782206115796232372479255215996354073900280003803732235882199092893447900744189059093417528974396926019292295439857575844944147048915359063254508842902255379802655522492522104764267295758457782423821663986987857695275798908451170527184074145531130065896258789606623929093900476603417597628296787715944894880857636158774483014626745495613971144622206076662104586413551632353973845560958727481933606920482587948229380929838795365342244446047834939405991485512795966405068117798611109777322259770336050582095557657773551356829383678300544405614648364189449246204517473810184924975923222369936948081917088935685384201516434666665316577523367138179873851569818622476181406025624931750035404977785347648977134164958092163005097068245704842770893542225661205661668567794214603331199248022040991867698382718205505108298987685279591587979452465303984889140351083751404615638989482346649877170672207702413402811722031144198714888717195173888004116558465787452798851788654490280277749894211800735399880171775019498603987018372110926466550596583684056890253115424525817905983979732273480538525527012741413374600238279095167776664502648985793945592976452878341323439685752229779706823747049211888648383472811665694291243256375620772901032439016947468935881686090705274945440661934570953318363395696201085516901859219670167812477835395337760506071369397887641726257132470995393415489333353336078918472461711148894167785171815185489522670649855739034565749886907590689593444131575767065798038627794918648427546929396777787912712825527891941238835036195850583338785872376506060360375811147410454868363537112159702909422606488474892673183839514486840217428143183961395838657400512740070884950072811529431593533518159956119105546517598735532225038253589085058338752319537803064018074073064604634538921541081185578270860392440512778463791124202813298759156048044094606786612757525949289592157849661498516891385257594727334793182354180062300755786819741923345186241634778385730965317651104165108854256767201237415049119652021071018548066482848362922655233449591888529119232486621530598616803005693783528093809095318717622215336169123077057560593183222572043108537468721682720129034360029463354059449089365567166923330989012926684961662113459008269146359824500065641252357630579896148972634485073101742963992024015142232684333867553717641088473608110019669792047443953323659509772069820046108827589317563198563083852159844306985548722009906252211221726123255704201579054420444229663430673578535847427619804847729824746817431453714546747193957852220908698593312943833229914768224304975740561093868368293587311992693895136914368519787702661426941056052314266367612425680450088230817081528391653038510702976674137875580173440777997493868555148933475568366320542564517502015146940086368490579013848331560046593820350914519072485792991456547912220488334117238470026830374865871218060855459833511753042436113705896372801085939226571620557567057664610141426201750353710575418319196533326242550701803403522891495619842986724289456273694968964122756097608011592448809237113398021571321863374592867384346595736510602470981492308894737962366182293910431578863220372265790987767434164926194694172943642751991581126297071329634332588601017189889486719826791346142640309359761759142963045452352615855914916652453415914380832192491172284024285690368560273796758753533251035909867940209999767209001695536925419204148635881120055634821479934441015919198605710307770058246205050540111698042436152641210621455675964720426960181865326314362590878320141361634309263320673860660760221758810361511021058495676126973156320136989427235160535567217651748404101449678073513585947718465843520533772049474227663134434651072282730640570122623545882875995206910587612279039263357025215748033228177307192982447813533485152903816855690447873961276097743605278677690653555225554604139492736613942657806494299047705031689104010700430409094940448976050828430661231811862022262556068934050890716837562554662769898054145678245737957735387149497739968648891924567245844033929771650406305275856252779924850854726918929390320330919819945822480413462428450188311142421049691549680142282702249806539025537448226832957737151252165753797020169583517810169022154007040975075017830990678906557242174568488229286269513877104597104598766916356120293286310235679005422017785294101295520382751752357343272056894472697848980371949800627462349497165754863337440995260628988857281733748402895258571374562989520540595273905916934722352612124025227066360385299280360073407130467511014374127972342405166181229340899311175234088611762843143640117904144599257782510506083776952150366025894193126088814714305554660010852373539783026032964762168710853655260999148977958300149564355968950729379257730117263924077394406626494410750685807648562359515188830596411126887510896071530620948435412851700903779907961602251491257716812289879832628503352219470815589645937131879354838939739460783294254036935405388033230878973023624426288284919651710911028293568477997861352070252024634429060144498343116736406819767550281952428028583769377149653107684136586521122230657062469800137465849640829895084599790536185910091132267494294957299624221896662657692175783398390459707935875708648247765793028596197112231811962687018984810232561197048641624576304664939009600434358461099253660763258231444227742188737603541821476129159992536892874261666126496392377370653812664827817882760290208681076439593236283232810173071066151603647223700982047281315221535794092040159207953754365886797435955458845920285423460176477429209432271707876484009430915172764234300511400736731578747816153956703092376486426697651831161206400710999842541624864717684464870605699985012399637933775367945415648027182689051559356754402535250094169273876296049676564835224187808394180487836931786024152839749564245928685916606497695436141418602548061433764229961870306687067063987501275284929373285694216152139722635153878078756720185240433009958582161999118176171072615558703679223053701690430736102315370966810154979442579657912589030500010707542551302184034996375794799550418104422389277276220783984453467925482328692922543339603512986739261837212094933959233946601027843028416083337960038413243618894025576438752782375239124253213550707179935856560124829561581855193337662822678247116337801854764529136220487654743352664176549414048579297927603678364017541044667877452492183222050365398288043918236141240502831544990359523891772775576477686474465198498526678496845175425916532272805895649206110865443315615318208999768869715563887376782535217567695134932904591866721196963117313660306136391729544081067728494156056685832060881288776276851261973802098544434129219653133530940998945823223057303055586811858091661115298032774910691943678748155127427084543723012022356256287205810763122931534832048375763919251889539444771287349788730399586227551558394487366339966381829154317829177889487225114485767569471236790287697991376376625899569238756082916361927490072095767127365662291287562015253194958128442538027972774199584413040919102409606277032709385315304226464055320449984879858552948334040237027930218866390190914485558276043683767057579325508924465709245952935652655601954481080550361798123964454533599832047008714536156283478617673546614268688872841707766230375452699705518350406080411557820182006673791510153890538540258863384012445980400230043704774092591547803633441578494033989461870138333893518722992785315306047889757001996175214562832715639243012483854948822040025451187537459887162909299536879172032423424894091708690831725784405069830149159808846859648761101910148471645633135596480711546994316418464006447353709062122884972837427054445115522662475155276943245310950330350787302316972366046320502564674962207986451725336339679374959699062579139929944667564108817750798318984155731812913761807131738503722610272977455874722914344034179682934906043084961715645893723580717595766465966453451805773663119058516676356052598696084038020454080106076398491262498947925074615746129776339544517854533828978635134764598786841653955233969691990052057920730080820203803943451354247531608268014379431921603450090610884981242468404415286308552067114503462683967399667369514986103769456663791930787223653182794249673162062343157260877524293304921959157821878091482750456566354969939716868639029195256531083242812634866063293492615359788655086554625056037879025999449328821403050715143982031698421562762432685129169781997086589018418342309744740956164836102659047686041287830673408064128634600162326233073348101268239179408076391638562021001982820572989603528179516867382516319683171263996314608708056248187401710015780233780595803689089423733483493326879007405705668613919291529892981837119695215870320171452827438617876164354025846467463676160379885630193913509513168792661700831553201756251556378117636060732286765166954870731936710779191873299316416089994760704126558046576620914875429109918369241223578772603365512396952900290200879044546397144354344799788840661978138578857077013810853567045517733440523814253457989998485865128644020220346537198038883289568456367397797552349777223186119647515636364131861251245978124498183166516031058699472912859317089587100759756601537974218044444733745425947958104367173735656117892698657168967033052468355470506916332971343796247987697360751124312015054433866668804617187318170778647324009136299632500139226336794961001771749213122828330811700670779625614973749915167385890821390823900583955260671061481079056008309982402816307311042878880929591960490538992878132288464472563776115368257564420471461632120202462810851519286354076925871502763202884588535612092700617670848055948511265938921988752968782819875843900692303292628155309919740751027798822790166496414225494470411246699875917678734540686005529543839345370050365821415523711190324254188245539288020885622034867766907117324378047184989443146221011926089366241463174055247095462969584957258573517629159067938289188896328508409660383204376855697772410863097123621497455339654763328916460793657544463112898426592894148325882455754133305794936328150211920228903050869878596073743836582509700607506586135822709205207078598204340871309669514457029677802774362282886732383353263394161760910372118714906611928041673968117544882195045147600360395961700884840240708366404957749737271533810337691206540978030845074041502924663793969185510959018349454948243062294927260765239051916347749826374687429571899795784034401839558049359452781002448450353481294004249141540547095018283805059945922371132166613165058639534307118894716262763288820593301575725280800077655680071627047417939244344371896267313762544731729798486591123912863785673320721519152224308459903770702937115983739897185126665562752077451320382611457006825389360928864623712920698264577749756849453146944771619218947171670495543413431591996213087580985552180186514223722825286126282878660897488093519981147562466513317001594777620669286223039421857697626827331602400752973999419246873420888942855399808613705912398628656588535896876518794766469880398070358562950888859618289690928376797911976412351978785871401978639821870859458409070874344323507005593794231360252816140825929624809080114874857266324161647046346280572818002503697363665817885911674454220255027486818397619905029852455340081510401246279194660943240666690349113229056688441685220399173856394782513399303737475979796109870162417148531572880157450385275065970208593281300821166920081719483334541743898204677188355118543748948327851946301393847021422361192941643181704162264480876062851431935393452456468353450792618883794210342199730072306736622026205760041315014743716881655327276425870782937388266053871296379346262164937231395816506470741376525201523313162268770170440347915179491440035017834656746109667021520049472908228379100199363657501014136576529373523336771131344819205267016001554444959702920141422799920688696490690330173208293274117991817919792718173119981654486309677495211396891074204439883348567682514533099008976840356538139093417454558474936161584334347444705573085219352676104548772046171279802949774942174417608933295838607649211831161720119690608332334566556414817756440894817917317037539547719829615278858710637192454404903742949387309806345377822773001047830074204017958761394232448881582398160755326893763435842077583186366099796027581424261215206645452581023019145911094365711302995160057304422960369337328452165247572795730740910064243324723704175572385411933795624505887529453860169809930920485901568762695696247256104661401385150091183676871871168800641537384527171247866977421491867734889738665164867377994684729832335462798066511405468970245877051767533569113941975356506562855887547767832318619787142014413830523184344789323127616958464526571269812690056043077842660626805014380338673958499003333333016799788746901252530326050991203407186873408736323369701139158948768859689667007607170022890695957525107500950831718899574423585124631429623642915719584316992425568433978998241961225121092023302286539506726309022626445459954047735609179668865584799508676490638123759039080316457671476082973352381840015352329055099688571731964143602332698397901090964930420133549024360376139198126403223976924656158946850087302023886469919629358606544715120098849934897588648107425042213532982091105564539294625793845284313433562399705921004653000587289675023084586158781984898453048278602789587130295100379016582732198467282250372577575138838239195447259762619273097970609265693622115517276959087959241859449366319778460241471754062223647637673056681997597004358958055396413604390544300012614552279619808162945165743259680741484960557120021260201531151257802533147148397297640834757214013794157022624487345201062921901947967572559625228382786365001701657479946988241321410599462257653678250704100405150277288721987524027028781408420803491268710248710295729924190221124105250306102434799689240797965914005121629166698450941420648828284217992470508002815614418017647234217135784033225577324253841156677549545572260810481614697594986642523348410268177749956211423413381168777709403510984769532332740028544981614403686284784992683024494757991323470024555887186123222377641128417299905601986442210016655215382935333611994570907127327919447946785892733375175237173289286288771368772293996911850176216051014850786158915965621389117500206518600441804296887340933160274619237849107979873099321054168794255274311612953806764638834080632589223083100954344303851968960575617241473852783811451413829454934383070007837622823332544774035380104327345733135338179526164008751077946147104307619463848992923905253362717108454851829215529605985525183731342154256902651251649954976049006500423739402193169937160823350213875092539853679549268228449749053472350422211406844053860251511487406299553995522917730926287080277621340920494550457050999834846667256138268840479410967856505250548405519690217389658524971356695910508594042111891376817499081138531284007958546892544784391100372994838844603339628465931327490718708934696423033264221133591063490812876155821761808446412583591516513934748741309085742857176096435078566824829488795782175218381849239056544686449601915946445782898043163208589357568530388752298919692030557990203359831431893347393881080012726607095638834987596140922395373190179309863155479360468995320195733311595794828325603673208063519088511986710008914688145449349374727730559803406458533609082435707972896051909138769490144565158396238687950507840147000168027472231598297349208214303214777908593049261207141442834109478174250416608038487877861600797818170616010859570568337054222419077597459680851557170837331710896672572580406126170850981421405562799000463812745620342795980910870112002151943372880949089226175998482247274794477047682007881008442643685954062906104842425579529649071809751285044606599414443494417643175310179403041613990787105220267105710724445788102495403467936418211488248784642966313848723132747123606697222195798337460446418079778529033564191713382484370915759181627690715033362593788703462862837800745200964725203124283874458502361415376255546876653287015372472787983243190958593424666702027357545984526703021313999978158333857946330103810303239952480835758234621223644382856926440608861966775975490591320554016439048246366635965808907630577722680566952321922578491759632087095894120436655030336037018548562973650932455626889909583168764151087450408265975226558965340671719787509150640304744123230940457590320099149598812586986963580769308581776553069926113927947091476692592131221063009509351794959027154052452270751881308464003189251310934771710728378113626751453815537326250285459237937234026658013430889815564877341325033419467291498936512966788197757697958216852713050349847549148644821705300693218446667403584556161918812724180403827512669387610128990993701590892400587664756795216063480037754451689808419554978538219775736639459088882362870011712495113050440114422979477142809739835714303972818384808387223542004215049752353331944512958098151870071811507444522499402823958285872745869671562696116601924126006711607050975738499124968031421247111624396544926276360005608409745990457948542885803887969070812234770054900419298427031108360092625666016425066485910939877930476476757720061936416964937484137057068152665942715070826936504237920219761369489754656658979711224246106531306107242282007588534617805322533695724359315895971490026830048061208457453031246890985889901669804430532154218149444140357625021617172140817117000280865193750513205879839442428544060919678502750188670967255658760332650451028806808305573646956750077184143291700884500253579186506765444119386006814955428294731423993443460290137915629296820976000554817781953859059790398485591189552338230301767644681486836127948579614958681647000840362424261097459776490191750975832753843473872855515415146263413270444601410593085387867550485315841248682635172489504043585137871051238090843019291548431939312863155003897886306735162598009918905289850884966941074790585273947322302602182986886664284845205603332737704823278960550519747723949798699756583869859382988532738819324143178059268683637813452086444280315411597934786486844717385073540321887496636102889380275503587897536405788880392009430765368077077648641397082890186420477125862968188844873091987863413921672012429844838314408101665000014631361235895733970323202242736611223950346480411058322597913662676407171349012169052072096034853211407455494472900520947215482614357485645294477531587414428971378431071774247027960886129270224141049696403607449714562967620602526661177604964460491268993405252498037337265994558225781445589237372206667701409923258744686444984277959716707384113305037027806473375737913863102554445992966213824580893623455532510940262999106339380964721016886246206654038933932005550457851381531898283927004598865187105506214793821353173552950254457941334984750678037696649465726311413961871815360037763320199170962390883680150923990711823861431945411137202423389680172135741356702464161472586392189593768242316823505515102652710962882018485523777371949581528532284733358611913578248752590144785620828856758011979463274121450146042274276021666785469719640810029379804652887996074677443643888631794501149164428120852527959632663801320974677291198438902067774615778713049852509191297705485710798772621251971231831678166035006911069028127633215512099272285077859130201792648398606869223537538821458272423356044722983869016404354271078375781605913630299723489546575906361405273921589822439964620162530888042349314505924956813750471922776296424439707973095387922370559080545327845250372606046201691142805015627076152052061667985819863919622145936323328228232823215990234013104728814833049273129606227881510385513085447912725511150555119556432316255326977825890865553654361728810806033835848140728467642537152016887313921803044673526482348840478068782988618343693830167809948178188873793829557114577985819143151764624122151713522487365301804268570168757387143822245244372681814327427178807352972386449852200981376124111845094378795357599073338861305133080439485207114333151192609414441913392497623988233766010073155338847966555911287326015988964692023548603385892779785690793237134911117374969458516491843581163153763947625531492861855439298950150383068415961825833927114086529432052505986033552240264427961000245854438237164239853971531854208063714015544065850664775714876331522212290285592922478125511198979256048256691232524571122295011123937614128333267269720696604158089900028068497936261382672438910828695408388814834527152989620977583353715823243544160638387414423491698547988309324333830947239559383602138741293727006708412071900175734916708431047537776460641039894236625370980649155678565616549275595180241308469531828366222652426396988469506524267282900936773635503778069998825540487694847887597337286006383780788667845286022133776870423318916529870101951724977680717150554794529879953435449990884947457457220898236367793045059469382730701785016238647917169653347826144733643120861364642545627843021874060633917860359390921071131422830307300814596287507854542695235570996175439768527311006732626510797413871916052463305868510302090015460852873813121862501782665791029881716088552255212174466010952861298762035886114105015076092840796221298406988100035203179725212011605840447463727968535065896400310020329387520533714144996305366515498594752191173759658774288334202548983889019489927728601091645732813254621801294619601790151372522023491070279541066032267802528157157344679475231638337599937437604637090826202000167768103323466414762940094790027245157891733589611828613833205896268316342363968277802999340441033576130189904476253805926959285160073318870867502576408288961454141568508694389002935827778332955112717992632678140187402079029840709577431596449557486031799117505222664205912412677266038902202716295970475076194396457121639791421335886518741924512679330903118669530013657642903669351276874773449737876322131548388713729800174913957014761830553839713148083568613805791119746704703563386307246984167134192656049843201180775985730698549182251923321506547411796136687492643567068094162758175448445443946481050685118994199821571624205716883710131802829658004228854587473029169104703876170928500153344206920443954612417233846394552478189146684842877240727324758104604306159659380665887599789314015694935622508347096301961954713885685237409490115633535228792642421405745754497781851324273621564877730723046197228846406397419241162066427919456448214412232958024803144737302537633305651908141146848645860886319147801728411282753384457236792380551506688172100588821919804099530645443841731736179304470256291176933441880595406419130309686651601186076095943176279242296999538168507071621104965976311235897220617127949763406891675034106931278877233083013497659403949269359152356297327257895362754191267989036401871476437915568743194550517451924192317385814881655393439674399992413384492480244876167366280971156206963307949512248572885918233020085140045015827988854652557040091586650811244923084343090849457582750586426093596471207302899999734958539131460005017685908200166726843957725343822936617578750641495668937535221102420925277757900036564222003259855066843787709730392337230376859281686811300789085757669151620184883299760294456297857593484847264458057715871108225430057865271719666878457750942246249448263601895237832886995981439444251731367606365896375001639181409724070740078002514312460048875286606003485453552659308746884700888361495580073886645879418296189891410841547779118899989866797524978189904026743728422454219313111412989517750792311836472817945163689527838361370246329612084136881314934362380989075383458650963587731087697538379550920478172932879123799313711143682142140916958173161332871184554101421374151370323590099085443481297979066659440526198685822991415722254361378759753500508016505903062572548094548033005296749618569073130934714743187348095946914920270869197175704476652953754444679023311612900704946571522424092532475548197964050768262220964081693847688697280037336083986428267399015649100379896943981846353479742155853299346133125757351104124343165989254366161460577764494282239771512994478573188270058989919978310905531289019939624065444406121919561351438811639349191788224193718013974495017066629759617808216047124111489044670322548346283550515496952361094071106635174115180658438237760250374917732703165663239588209085496754584257019912159307293663035711746514189115366408843298972580585025729588446375276389100512573490481271139792700746619065215137684174398852134287522624753426305661487577957380078644208462282346148835642824488060488580185399913729753211855692222590251289164690072310287079544759947581596152692599058698270212815064839085619220761269184741420417463394098924013773723675343777459489399968791358778874005875043538197324954001234846396092772200093163630649684618576813893616028853089873337939256596476630458873533779483786707327191020758040897086568480436525128251906792430888263318913114909454502897780108108810157280451184451699093310872055099611622812304913038608150520328493460305278103891675807864528244576427407809446659715106634788916185186386490801809435329046676365329204122031167156871360889536022057537760275115909056056539419687963488822752066502164999748373160652024304567847148162948727245693542151158141330068212980015114831441093997093341801643677279264276834499910424919384789247874458559147226139830406669070892808298855444940697408820658921931518948868112089595888639902339267951476008445953142805903653420231528423865530100104775916330541707686183433713671252352179440776996430925005794736132026109374988731150214804909693104316768539351083788504517046459797208770024583343947414930965442939738418106117144991133428293612809855850930696322966993410157432603960537196688359579280934597233358658383409296197133047424733850387492196695973551831789521995355300311914791746045149818632808411605757637301658501513401009756544716650364783604723811516962712347953271718722536309172539536616154717787659403728220451124439451115010536113694015253550045215168982968481828033506801656952485363539805118983705062836715718284922906323242710651418821794467051054623450895224205124586234396406022096389006307429759097548726652577570507976085770020142586821935276453546312126195156936060088880173837110475511525786466462635420463244061896760917543014298369801459045496505237082247822277591657340157787715300661924234547239751422038657512961623597354602963325798523446179246647480085895199821209329440446237676763597805474613000628141525985996438267486990825529778525051393624307791067662516899329090436272398620659486336682300540113410967105929200807457017963294322319168291341392426635023910108423448535949178884345542265488387693903390481603083450422859043459754687930354264645125432561002490564289971374675050980354658857258767846718877135035524136103292335463824088438650075543747110521611068474291369685438335266403072311703581625681870825690363962053207793720165433319887726996670055632307521505938130603898251360566828161110503361520390803005006408296358388738592669103162805783607370860692620551733336487919017462978274777210930391401815736930870351094829230530369752054768427159603247139490461823774952461736081125090832563037370324810163921124660805684369420216312037011411409728788156625169936674133571471143408915630376092712947209132575372923661410598725918871580255109593442156942352194586741237649450530534876083755542436330072027232578874447347752999434182378127959150495952970168245289592962513388764558534718349721961447648486411209924610843566896330965637639905923079256331684849803753567902386707447050031241492526716934660103020363577815770861481199182145146196810657177935544274743061885390083560878868564609081568956540417891175484267216340127371268792127352784770211828884451331640351354731247369539592741971723087061109499927404915157403823277066235145645120561983177582775296137517327450967033911582902724135055775826831201648006877946964472214788825509803002424892484948918933807902020781565058466999475562269361148543942620804253825154693096440599730566725276092511126914096022930335474359909752305571702121468287248085737749855008910561230226584154045969245141620245030747586895062978783376533166708487996727917452131480169194681007143570898708872191290278913401615354677001783005038347440192890591257062798432602579519185187441758966843432160516421494746556132420012834130891335160820554371816540270192948415355906561618598500754686791179600667442371049179238640887443679929087188764051521535196877561393770846784263909601675875687415024216058877544137476308858583874784642984557448233956085680167545258911264386909714901254971664415417598433620275165675951518397603383093507121054687037844778052426812699283136594875512920949084106804763350305142237076679578342885797208777673002751318303346259620480355204940327778627947670669913364277677953988631178478834633785505400101391934070393978205418541594233666829901919007272082234453427500142068512485076318440711037153397229199535931675279007762328518175427326247127034104456637644076147547146366461600317536024309828526116244872710558114103188284067731402306379218955743797945979081289146814637719561051117630479507907259772169429038439180786046627687988995830120593330159175616687851123074302394329286855728327586305951978796684158968141695628335030249453962395967175226060092221306654782838245597929372269685678959410553537685705703186694399617464773895750271197420670627967243253131634851486544314033704193774675869260377955230959504923289669505821170490290548819402133374218465147925290276810115672205307914727034963950864565311560978165381331687853404163350136363139279289207944620674079448559205940263310535896866096012949760639511207291893213672046341235173729536427732818195696327791363503006396858733639400092587327114625704942283557623878411159232754206568338199687601285413333987839823649526548712197682699048571366878517734780278214528793417901752427220324853222753774503188595308953777240487359339621255514644148445048520208403498145863077014250589980830314065805200863681434735130957263744334439090232531471723291020101977467603834319282138585893236931932243413874612602636453971216674906242468078211997522484522898866090031044905034905403618078544926044983240206397174353743389060666713770602284204570630324117522067014012396480338061028534955970384205984717706684063238395171591192607836038071903228940626663212031209137569073307659126101553765291328739695889779914320418352553026629168591169513620758427090129752126729483598715707604569212250754018944804787310758106064299764733236760948301156162860250264124744667578331816752032362753584675353804427244715644352461652582963875154337192779088421931046201999969918525695928379058405533973379685230971784633441974249743104141994239696020187267548089580988501711910342712308420380006882181809393548126463810085278565206999910777791303370428929990147382126853109527601389042330721682106407996156276884979598252754245164666434038217916902324569691956129920060911448429435876600426427648872841707890303999385531098833628387895681848402937294367573829139417698826260581308041602864296825882356467983024122673720326144330292118202203955795118828199803699966221429772014664395322563210835942874599443640632903231524222367387173229118880190921100423296706271801851215446801588300403851696499623433206688894477799651954467343175245826248227462812373934591503292927285040830746055763593687797993731377758563039146841113722840873570279952405995764689815317419481698547175148144784432607153315519308781318904236096967398498596540465369545834059272042726805676983477039234999652689169212113444899094664300222291617135448379862787789965921524902719310844722517129368385090890697499012608997566548797948496335938886922576649981679155559958815057254000350341721379848602631100404691505159940647564483925233494310159346144183016409008648736660666660989935312464514433628618725127914277365363763055929897569183625313817535857847500970223299889444596637576792904436421081059304599100236491089773390500074250759659165419955929502935310114535787959576392325579086277141510052226425169319751890733487982917150266396205168664441241602685291177621226028192073684824737605302236162580533769351005484111421277100657586166898480630504622874111864433221186611227630313482156931515795028133562136622841560233068247711248109224554344317333301136248773808799210968384859709088457815869342030019180816807951429092909813281102802374812761028832418711781940865595292319862018008084725629333544810733574995093124590240231625595600793347983347021535108038043511648528746400971743078939861654730562425603728298664345594544579072081011818614479025972180728548376140146168958922438545246912637344043742197851773862499949911814313848849540580346647334641418600748791426166576889934002475077892160592900308406704030311026946734735767575516345560663176582177766450664011086457113130390423771072541192040410194884520057242406883367840895256825263115437864980061471473289622946990567252665887807459935867966910595474699096725505797406066898531364905329104728827756137259856013415178116665835828547614069637054571923999342040037348294773724248740279167034022222150951455463707055341673869574657325337280293796359242593735134378527356884225461181848293247743779874830528989011868224408271198004897946895073117669040889491965358663402508615025004790128919192394260109662822259364640456656896376271348606377762108309667636778549889605246665173753441974243411031185513424666693103337525652686081306297964899117671620313592758826140261003505521471814711037262154243618281828881354896329729031630539945323096564362191364615770463248424787943591386883064760560764876115151329859340744616151468109003733624973128309248799120152280943554513349993312097891670415090414272988498911779577013294668634038674638670496907414300858328765032083126954730620988211930790063710485579649580357939721592695600050164071552657326413373552250571647130194075473464147135411213331909756326447961416875544034042894408021116683179730505119728862819482906380577544659613549680522780852759484458422931726116126240433695102158134710177726667159273642893283914183250506452065297991599008049608695861453048049454145232523818555958955990685330240503309873126130183446756069414612238872655679054220093783002222885513277025238434503050716691602368455723593503786932233427231458825296222323932323489349344552195228182271028951395232681322445533485212198628854419530027173989138870063434296306202945381364455810348528878748026054563135762198245204944985010283028534170330507999080692029509779541775745551945756473016768578952003158824776045800099093055168003448770677130110036714413578388837845705081490090598491545664623717436568400106436669072636267778123173338774219186201108192958863376403276957276006038628440858891910167734395186881593984513678055612249394513490336371771908001062252542485013477564941237316328519630549338189657588793864903022297598257049414776411197885490287559800373270153904265031795243527176640591151911868890596770654007499902486509366051779178906074641403383460312339822394121515728602848830077482675656295757672607540168816627458056440743690449163963231342450559654877291101023326528347438309460072879517865009822958960247568351545447662096401938017854049827724440708318385671989997159069724467536764540471931973603597601282649934326756345125419252010473348741008955841801564291626626126033598334015943810722402129896585605176198390520918882910900032882900382614479850835695476446793867475929479980884109325376458607324807351237564474180648399757400561900767309925385563374720547145402081271338264037259523133875459724067820507602943249124471176910668075912019838035198623178803890686395908242922971116246840892943443280962016844730685734300978818685602406083846267951392861037838679273497225383388161062143143206461813162696050616350563268633495851033181145419611351351063860527668175597289288168715732520241371609761468751738049199628617557676115613625117629228303605718510000619948185250819662291341220807809309243626825412244755062554375768135772387032126628208695574593484495858032161962316256179540112159093744968043888477351343271071772155487729422547756859404214895226271323297245096047847263222536045141964323516353858504671649564075614639804588132431027899032017435030802621858474190461713016682704580122535618446819479761568530337341089336696448450161282452405237283425125232975115434314950833949880097614108389390738349921753223923482616404713934927559727683553984469698736387765465377444344993737479453199179137890129129273909044791901647465848765642162708718202156564254210751619903220292004235749954332719432670907465153817689707246707644805316360724431331586813334502201954991886225045972675851884640904315960724096933303010328083597138659206896271062853454097432720812525587624760722419688981453384605760453122275699354274891651139236841236300697642241897827096672462118726831460164830383989076868969881510651252411862873885225603833467774064638476114018544062793631393160591296105795046873410972105251875848995728811777822786327300504644219643908583630530820046477505889875257297214503806453357381511658874911084485493565642928959447441129221028092808877150099905905777931741189170019052656774410273481019260698452732140990616444427386890953103447799822966472675260790714201726878529943887117857302470901693117636345503015275486435485653751728552296828866079340134616966588240853670472170612492427937351641793157664621023211115449858618870443739675920216090733786189771428778311563493477026608759454399948048870820979452770690856891116020042771387889205804938442724007690922071791241884961027585171054493026380078377910453033018481325513005027082841973192950380911670541807905915935523405234423239111090553197047546929089823338893301480977337295628433178560788547959404220506796395076140753603499967526711013424758883588925031570831944359009289496040758398252416220206811896991762983133068572488850702750335914363743685348782397814775232685148448914590519854552797542765342747044678552517831291891129333591966031253825737769947064338862259829757174177958547399631001711027914547868967798033446651493114114449689740100275993380011114919861571821256484708395245005329355372397225078790868840166360409758618898159965693618532812621761479779683933203056301044388284431679993634993858508766268288992976957609321944165875534520913980097986373816556821434028142284521863599967916340082945649816137469089049063944684972394126040831974651769787270400945561822954127638078251269924824884408806855968533656045401112460970008998125880461284915269404211472532668136154621509142677571903139662111242072916672217077893512363312943806284686022249381782681828813440464268361327906633512956438188304373478024244319812454323674837909412142589653121230606528534352639620354034380117554342757300846376670390483254390966155043400306621598330237756572748273659686408265259483475387131720365590201109089927078798515190973949268217260274297628594053276045093219663190109566551233383250784612727213455759801466752647027582886374806213863167913018038726554865309013170012146168699929572866428750957008377297717248760497222837651681375153985258822514312991701900113599659212064112540988733417976443439515395805467288952704360157427083137524194872253549020513990249318309201932970366722020640910212315126825795450752012576814567335772112842536244825978024718672848074418619305456702481095494850281671664518064981885171488191931045599692953125810417802566360322877876683455891160449637757849173226044317883141131060122764741610549516261260168108207129966017441998036697223817004092472841854064891458616178961908565261907344157012083059627344871878491623428947662089840082940177665570383194993335298498751351340064468418199423093294495231399330809710290731295162442836280616462600370021422747059704751056499493971040868664426129027400263896412035652207885258747977897864303362276663684834567727513740812437333572679991461185835014075380419437640569169104458147616435392214736167505483379161027015281765823350066708678366074278548256108129105460929814880520621960123132103676594641649380267183055527659810145354152687316301015944404986311241854448634488807843870698383396159384193285494069681137050496716866052722435461640774506310683986066825048604050697401319721666761833643138195548006187629471326274747697715533808168506812009041053743302636897233906912273456319709358796032381825578380147521919130613125241679405473069658742793453710268032656266581121997140296027573141155338924323330199499317079549779188746285334274815867831693558025848017438553927451611814736612997710240901899258989679942755829914673226670220762311222093574463032275762838746813454094547759887935360083938948185559533487841325304496084003230615104401357689748256297178961363097273060330062150366612464803938905825509656078395581152925972752496200263012539545111703665669782491068695064189164133883176335614853253435582798869982497430510304081384792585832519471042080512277375627807429314508147900985667405877343042568441048242489289978182888374386304265693743547184933916471725781953443440566080324764199902521153046514145047337394007103710343631446689734780046976495343558368159178210356492559860811787553901014675779856841267750447270272908709122240164066869734713359905471500290719608182359054400717005026339256087645882436705123492751752862928272428192172229339887997013742828304041880634866202279799540819598256626778292574875217902682415256206371625222064670891054111813737560533928372179527571583432289407374189115777631493475314329123155358275863590513620324813929562504416158966349387168531270330999101481980541665782767885940035377807434873163282348861455723292614667384151043453431439445852469222562723020246044294550927951256766539262899228066369223904347071889886482675580605427776703120564067580578237751645344495711354964699325106762102043946537023403856507822260619869712894151133004816944717491315970185637698315645661075426253953933752873602753816847497291466573904042640336760047725591714537259350374773905395481932212751918856604463517730940245586416142677176835168872775455283238237632592267230311036504082000360531899549288985249412535708031155305125087880965760947781632333072575359503040579061188731762202772025941991499148088157734145601519390736443372605535282466608406906629454989500627009124230375937902000780120494895365014544285220214115582841023215319516016853591405821466644478897322570321232339515897086805513105451117033192553072535209416211151600711621792800047616598556937175098104560581098393839044282179899331893258756967689165358941451512317462483240341353788845736115015808869175573775112159117665590082843700676774279948865618074415951710399261022354380455282514206124419403565536461446068275012107018936748876180367012414146988706934584135353555920038105349609694710118344819747008917256833458061510222713922329107515325082900302315940021386964968923643512437277555524683010909615319308654636527566153974496575300000948942900214163487045580630543530538139322852617324829614913181116150288505452359224867494909577317719169545780906758637929933220444419741977482224166326616820473689050737449180652539632636422744946805464935491258183400995878374609518727017160211421188877421717155585189068302572679193354936443043146810131468474531610322644510237394818533399323136247429134034071798272726787063549630595131970362884113159399081878679239393282016274306330139309439935117680965436426023497097602587286168025850922668150927761940317436731650643497285267777112183225969419823666592531918194533452363965171451584316816098785978217603642875858138482574519872719672249785043540288173284527921376083464872138903029844478729077384664347300045422127082513288041927544575566242935173233834045131617296341957635031900257301652146700762880886764944320221268923349379829801397061513755889952142789407970691412205709084345542792703155676145476862409896477021414059423330564173702702041472665975526335369445937594171667475925800141019309229676202975025424345301404485216663753990417497475828152158639138825886159255820404865702294334927895498716739346506587065845494075602767991523282210013570144440865323384351340207892713957453560931302121429438995591440565023993077253710913540345915128274850685595559504369463818807408455027428063798420006903183782035828011606986008236990077043440192770710119929234067271583378307663634318944349292081348241158917847583821403093616101108277675174208141543322311824153928691274681986726353719073687644924970932456628608097169061335621835965637237540283694117935711984496282066098844642925989618137285825953529242630027534196854839981722195509808514529971393055562850522907327890570430735732935798247969316101222746430089548689413975947831446776503555477498161857881428219420066406541520636095524508540618929537144647954746699712247815150561729675495466193853002928462027988454943516195942910163548140317033806373028099969459880576939591296249327625924830699983247756534455069961265523364111244990681485932484690627808024600122315467971460938428352454942267441647406721042908936410422596638676703912960052230820136933384011793836965009441552542413456606217577374222275976280597502771369461935184903292830919545715062053295219234339401354074461185739780797789171480155032377473541080520132718523046192807168974948412866722362128265348480019366509597745207000958769226814278776192928818685407687068960111101149226221674885867155965932193107578357168836855111963815125331626226885102742622963295070278322077988607541698460338441329873579316292925863979138274751912518878892651998121102905159436541567838025954760274724507185053733367172918061513158583710764502309304665074221652950269161512287880036107692465889934075217877030385178591411297681580191683672547837448855650680307885270245931116205199584385052455322301914722418156538645030522532999027570113701506854875088020704401175329751215131704979423953876683152147729504717669010103237602321026399583330438178045710532747839910901216301576194638537472215267615397734722292274683116057914055808378596768458091718628042747514603749451053723024449398794979583388190886237241960940002140700417183848745140054548242766590285988864608827882074555565942487414985714046344655473297911783403884080194502001981156846738055366569001784628424671322844111220336069364621346354885456288711635722503454182995470985661899970473717675854790679926482103779829763803407070339432203094497973719533692168214125108526309002639869081413357536975649937683970439313862641724045782163605555189121062629820005946672381872714547895699544188324411181559264267698313085540701238777534863675939138825215874504702697077367236894467541593077145454757299225220971359536079588233271248772485271675158969874382585934845088331987962122733970307690330170574036484452608440753744224368640111345632141195444167426140086983260983158577019383763226052201705051100463064567416377324247009633313588857157610908436412787453265597710392428301852149046759031659350367130030262892061809258723710139892152536226421369079354441770423206459262825612712042049984262173374315677706773712018367489094397520583754070497816806697511997811269032959526002730294150496257673324309365119149138422516269640444768091815386648451212902536118340935516333675840372410259671911485975521938953789851184027623765431085781934758433133300153005354999597828275665421095146817603137106009227394957471649622244166527721093727306866104672110144035938675651817904765604076047832120144549910024194055474918964132059313245217953198597863936367269532307379893958938102842671392629917264868730574249834496501844596660355248016972753032658144902879201831516656876118553884058027202306101095126674387609481855191494694402787851187079358283893042420161614418217910953909024259117773677306369468552417207884387017698805813756086078500260448025250621092856145083876376894672273502015661268054012164971208524097702075113078164208792212462239833680025800705251962646701058877323894698172252838694156222637019606798175668201749476925919904122923764269273030568766765545339856009279861726532539226411984005212999110421507518004940008591937741987984767851603019538452001417010630868438730706274240967776890710144833016721540775255744433678750510609920166747234710239929540613157126011654046518970566402867806926080539876020944710190489031321272103537335061233468984357373680399184422707477688667303015566911653561592195534902673254281436389519653599068954537933608373471525551227337485984559580757649543808781433658450310216188209998493708154936450413397877557496291834683478718386425358957476281353910117364498851489388946044886399174640642828822265736921782391626329875468241564605216378536346769589197804904163377968965896022100094368181061428170193176087031181948456135833936970389746919985484451182402413891350814076168245704254314880934578182802874760305307646981514818113679742084193677418738202940216961293767147533272432634377790235896302284313850772813105198302872285000697314173626510030300733897981453528849693412858804326112295588590125396879816044804945124898582271352551514837718949641651043201734046124657283605326014309049493367579506426348006392256324112716640472806846705390111309527890713013109515285118400921151732794864979651899210625485354878552699713718239335648752486253426629764192249459399853221927790308956000566435989515763220255352446784946413727820663766392359876437525961307724009022354654343499626712696484237946173973095669146692110339642204061178990996986623600180720419636228927605263419817552794069511110270378132571150752696003577011694713586089659143078235783184381003482762740630333569180848753561417087530532551138541371634914321096368199694208702879489437622502297181107896432585059215224448528176290612644672603040519369743712306170524951762325956289786672655268173321109505811915923577750422563408201185875907688548293773095027109751635720837715314802056716674694199499675253267321147941848878149190818692236623430740461428097778050216273819152499347810486793678957872888422472886622628278033768262527052743058994382099312910115003945097267564176995318122832359483266944350113282715048718833848985132548866520923350761328435863663392250128538580396494826059327957771864487918634933412874163961044770606506173347669743997283654719461402713099684548889231535236588165713632673656855691455613248802397091102246141002659489983569624509971751468243744154724987354665858963574772705533878955318794367777398661841014939088916680872171464319137379538573119362280593597094691137530952295472995850725078641142199346461147450379926346099626477546919168790599068791124975316228348199660411931206321011683359612597645777446609031051589953025891293798499851456350173138507322817991920953739078411077915893893696426068916242417229561264442873961197398061731659978649404035542438391696200702261328391512306661507845996960652419375640570717583316618877757029581463830407704715443810727987782302051203856460437117216958056164474938398139320662688540986127026050662551828851415065954280506774450327283219193350976952125852538974456033398498903964775714087133383989018271056157536936054958454092674248407966114329682817011738846837905432759467999102140441506530547110928780150905073538911901316758373363963643173890071247453289115190013166502985265233949751253049810081409885834432592996819362380947785901084113579264425067434921321971432441646597913752535274846764345792235837064464474601540055017248131786480622552119461568598004914402324101452264603654147979055506937386481659305887286665927607043596995496082459955328705004667206755919063002641872965393849926369457349371844539352077831305367658408346285614281131636936259610389344022940599735008483512968631620448764344399319453753170902890729888817126670744783208769941715195110293036478109391471221152727299668871810667344592467898466456349194538552612767958587473833052910470387679782667605312354707096308501605958970070103237588310004374538561837580670139992906457888064692815544094366621007132126184396111290058482116595553551850390351627968240732244209113329412463221486729152878277188105956565212936211030747248209524258601346675428053923260814279778019732534397451698815514438332544605412085633461497649012845396486546664549138723611281156044549542343235724933560552930897191696274136354710726848329302261313227379417892037881172414547654290491605236697848494134557345183666769417438474316213927655300342954855006196367377637965019960261059631083483482272681367022248653964041431251490195443235611117396113113084640010521979290206858563108425161440610428209389393059464231533006592916163415329633676118666065346167590965029551591130985055890277528540123171553290868980035561036524187246664729608686679864793866523409018962488922446682383830415038871135081398609145725665701642520324297156776028381625742897083942268753948212843766129532253963728450797835559550238213890057038456497791069284645414721591686650369174948720263910847492434640515185885184771877160356528786964898749225500868108615580395848022634297204683901209216868311061528352425124586894855796701469605861355004595437415400032545370742062314447988822266560885689884106677958420146531165640820397577120276579990832408586619011434027101252651723661639430768183690797261488452796878919360862133293883109043822877423571821271264228812584755814361593817630752652740659278263409460776765856775284381142466967113978912158216431822783817423138854339064328405713455409092478726949920328517544670633091928534036701906682346560104562953622259311375330567280914650819284855099040794281568584100219273950085445008415054763347222966961973892774836833519354432175958034421197607244196949753726041603310926818517430240220840659113905314868302956009553584002401815698599156850308093797917575004815243048598281460674410663544972613019746727362400320450119379677519657909879160797461321664763204254626345829530864653189518659887449545116201008470497735166379222266669975335198880408224322179889000831643644826235582959865686070395369378745021545944201392702704715959616411887763308751773468719510630029237591278115584354479450565402645527248932084285332781484032706637548821048941205188740159425647563983600885366739860183981008229372138861852959838314818729579696291110686882184418827732286565552242805539106883668492905271987094512507345213559789055072732631577413600348470762733580792141539813315020544785947716529351427225836717786066027082309135511736376295880850432978107434260954450287958961940834253097919532476859388885940363895691134194459513085804537378245772731548239639683616136508567188078030017717647253351377649842330681464034268520295078324719427659971946389488911370761926548087539149172305347148726010939415501465511964296898229658465924057832834682933683227526111563895903125638512244996916121008623223443313472167416740342460130357723751814290550281820175236835293943956068736451498494778516902102500692902848306852740668381912282845331600855317112201457435682963424163837333209084849003952914319344021190111197336362243133784451255961753765490330152384066813432305908956923272924149210123324157233487904773299459152952587730451688427006199789557927685675079327707534154890645595718123725287798027595280390604771995698433934746623847878670869827465317635305521582860946931841904972013299270520559346375463071386007725431586710908356945230503289958385310669380377677795046412459146651947152085758473662325742909101337758628143640490582696426166703542443477883372533908346535642817491596404665624150785301878462031343612445610871716037637007665970095570406206021155854589253645490076339858809761891035818278734630310992976036388938878893498447305350169950723079213517856540675431067678738285917536296576356875903594397949103244749859528565589486006628692347205325732671324910618750119414784381290943183923395506552795587611383317705418705751836916227085746872759211363542896380757007605329957040933115776067955203113977463195920679477340118348081697399747405453437718186334029875698343913415524779533900860168631071775143121528717343722193113512806136240341599348656400701415828132329941384761020812375531627499395866512230980093207013234327949601300699094819471337622452447757520295495906520720834817351743295133317045408193763756240013482989737550092046513374799882827492339162352555798704502231501010657507727964987811541554710548553565632159409011565593908103797588960734995780364705338518368901140176151114949019776699824658476218093145584451078615251801910515008875450923007572610082800929157206912814043650423560467733441099432420151375864401340693964726347453941040640670707960781009076263533139157274799195393009910646505488992935815110225603628433507863681946533279219658393842453465099099708393007235818119071015928819422669673954622757181974843586636745194008791124544801935473459113019755441153513516407757762611227766579496478805426422860192019903258245022833337537691794385404379620145480298718809443494871398635643361904764561475545598183538700806597101473725293242846275694884733129156881939552173040769450311406376382164477907577529678683072951887481004842073049704638225613346124543947832765800677690265045640518495356396432534003481850665465825801974431783384949140057399425571140189766566889152297018937023569349523884180062352973083894599629358158153375708163915321282491856818045553648233217681010036921838526724953850188783311216612240648433665477445816695856696299956951834560838817055465128198486814767421855648714675255968771876232889240874783394075169581654739328943295097519835579763797396663072917502657808838353390871668547506566100288281332630756305184554178823285511041089172864025361613605115773808728202066343263996083462818452582301565441891112629670557967022179508891067809912805524576493203718369990541661082853869633293860936465923943261848857868672218121507464596944577640402784810368961001669356086571912510790800460089476940394468181423856954547884747221117016394084572112625305637210059194050460875182870518486851522372645004489786764735871364362702012390295700076133882163041720642319122462102845190660014408517250019776729004365531913666159868313837359074890888368077056026283909898891742951576551162763679148335750136149169013632344103529451009882473622706535445328610960783299022154539983196802151628628292302743790490739506930968242000483378258451094657562393494835646359483134827913704123962196863564446967724522483822890649949011873573694781551023008278809941657898923789996547618487949552340959290408733029437782409105976184562709360308795682658154064205139380282253454138717838898165970159933702459964575355064190953451243675941159052708924068790837290161591137505489829217948211143876157431986925590074588360835680083397964084252137107170459460496048755548760157081463949668533783667311600935526635843124802585845808522114868910335088407449349757610325474456418357348370485512292915271032600488963845331079817663561849218639236493494328018781674717122913605933266143814754462682496578161634638541954735441688031078683836789772278945537011346581561918186281416552494999704446367294566097664579098631177102088228308335022702226213208096980825368143482253233336230089303899895106617496759663948445163226800345186756571328000395290252491785645887323568742747561200588067737823823998879667238953026904464704066916944140257125980158852436288276653135258531296520869551978505775569632648267148323917465499446160049386998254602342454319861217549847729443928499223097598427309810327608144680377495545074141528841383987847804882337736977096946728446795266187490551569205825867138639640814683553217922356539635778492700248216636836934603729834637260372926796903648002050556164030082226613877962985831494366397709983503000704904281255423387251015379806762190669243107781438375306863856937411439302916406118374517580521208893487622159922911618248934729138141673206533222294753005856980236855455670895144332260811546014983613856427563305006065881733575791710873666041960555578553969013553491240629369509334011219980805054962634464968976525191392996971504524961082342738085567029858010422740495783475076719030112849291141188693679239544641868063058520918584314149570802293045372516313064371970740508788247345328834764573426723394401946718478786543009121061776570050559744100124923231524463610643150901547632362942819113607901249418990086255825857091809493994478859364195032082225359717538460326014143460750819215817719867407696139576393216705570814666871668810323724693208706208665670900550246586179799531621567786680962644254503131426866776081702817463143111375631102036818815293343045231305098228422874112179638017039720235277695843348083156976484373589334455072522248703556822457921390342212066035461265016021790125474492109736496893955410363904098545527365751516419831981303832557612439072708562148299384752532783782436877490562423466849201603266404650509291362416675704222085296490021627654504332599228809489961033500581543578984921082433249446824468035465430441672891085581717214747589809820945993246438092026650098354002311094862592269571572811810205952637000754909892163441648370348827275660485173269723554252171648198803415217121851000395352154933677961864905251369390104385867317928134454416702172698763768496298745766584407690422812872080282220062723548365791368342030913332584508945025938047243380574007397589553270527335124388078592883859922086457490575588748506636371863072707721895141408617669970031628515947661872456555152270618703490043778458259603266608487487337718291800957878048377107237895253332410883193248258103260555810646252002442436246133656251432584863119479851511949631069946239098983573007447595706764456144639102654033927297236040255645296877537925131115103443857032476570931110151957948139697930121702248475036610543349951050351809972363369588453878582395528485103475980157113067096564817479571211718431273422837081651217395015522935018814506360662300527965623815189227705222834550426608237859253351867014156500228143855310189695995245518444002145949456961547963910329106048250947598386415672871087487816537297812692466712809125613239683207360006705338581080395314970742337715261416693955551796153655551493582700230449006447188977906825353822063606219402570723278836659546997606287742423774575932387813959553496521156278860649783773312954963626055920601926368525531019745398347293527262465356605063498234247771521106636352619045216634181599286367963569910142199557747752635963199497481269061123520462580049530168443426185355018730458945124771136560066622604933276140547421704573714410680246126008780226166767785753646545203744960966258374264068766510908899088667173279202856926197845199807338658140657301925145162876177958249150018836554640821046092747669560708841048709670781939333541553562431491457132855354691915028635717383051401856586773800203549672444303084022193240282736511124298151232068675397779273028135557867705892175314972821598880336051135082135684808511028797872644997911992130548278404703589669089986176269857125884165644455593742677106103257788486600177313070449978878039345225381400738799991137831499413223505951629867595122690153848591787749170993782141666079416294074824746447100703848041347057600043686712230761411853734087645655915008297153319014202034991006861651290287158277817714215457185224277592935149735917799364100857102565869764960463979857542917270952651441979531463960457252773002190879531299003557364326159208848923334520582643312479254853754023769541074800229162024851046035041159861327096745289671053767532759631190279048443970785042647509806184313146945026350347905823116066354643488049905731407196293542435400229289906560155929663020770886459295839043702487980142994205407756977352439863651633534787178874239450835298526116867066003507977833726559083383882448903325665522154567699212299707411412338212944317511756384284668564848788710379329656630400672670998673918979612657083271713604396652622042493297995014740060729694897047952435667120420901760163928516360316951366550235553676785575044753147295480380100793290359130013621385651864542662042697516488795116573593028481808111072922384095876316608373895329154866115467369147034649204891840953043510867292197888579612856344013129326825890382836741120269421950505809373310682419237650375631609874025898425497723719900030380746676831218917972444006263053294998431911685175730003858451819456260857364915233531905715744849960885547794321465415379317451239033735831758126713488025837742681925504776682470124861192018389048483006252894749516112671240728212103928890070471683857014555654206011164868595157273214761649623095494244570780474600071379897447554402213260924223550020397852471629381319800819890027142708605986510299935657026123537566867824759835872853402696069723350809380701905062088538389593199783174029538500122863239238127866586604306851919003457419422067411394144778367864204190295852656740997828853467175124251342562444631862559434729141746271080871897020917239527917208181650595794777625425900144432444720202318882654621884932437924674925277389024551847350603520759486340650393312908487598467453940625508649718508929589772519360716623805962458964441445380687259771106576841048970395376140642031546371793172508246796985667981533161261639406226758234471720023990808105116117242890769166146485185081648966043662491388811915990867525991455451936834841619759425415486165665170434979971683730958382628573461353849180577440030238017090012699954832054519246572636589063168414829824566466157190841876236424214617938787012849022594463099006232257985970727199906839588655519139789695205843581615649115664075625308565592635935658281390376426725234732653552872962520702199955843002656284129991996477610960221394820125467309182716294061161961991850420658397911820930666300918069438189943175654251481021354793455525384638104741234264115066683876925823027645041154932642523231391099770336195623516095021322652146405950469278205628284903679476619554163337592419953002747282397755030687023447778548045425873483877560309798559256918517043748913690343150305954359610537378609410248877625609785821880194395097780902000133131079393519724415591863905278363173483678180436876724562563675190760300013582534084272841551461196229703902955745680128725255389563448637627182566982262213362296107012460069280471351612031281624379268183539474151222002810267492594386025854023448408108285051638921731959826332505063929671537963963951933896792694280588708944533610377064277469525569157747812112236983381260032741664637504031177482006582371535948524512574736629447188331416792441188419017071346049073672410903486918240107568878559433170216240822840907042687235992966733443678678872323409648985962906797543344608503768510217875029220724051754853529635929104384519049126704580983128046976281618716275360837186736885229234977991344780188184093088023162855213356663526181346631247295196557394577093968779680739720382330703852332438204615128445487652541621460189923097255317072964168190546463815780693672172421020698737104361349457192504716970506326254360142475497077635880350621624760179087786274419932420398549136210861191635086490444083127980381170526277636853279896434366961383775092692973904600452754417131640423983981060903986333209088506726127569248448255463313988095763093213100119099602232178492438632154319136266539716957125978322631455431914933158013951894015030660376340682173413299120962257527767513910967701275525647683367971775997687587239437848703733538509125947791692206889182996221033122413969783248966544058450359025967717058020926905127529527109337401720893495190441170271261250718594790344792644548711428575721749361407039706901684259218326112275143347999886802334223208615702018634026876598543014754480155835259661131504852190768241836647659933002252934044805647293947456382785262652034142812076976319191030906573139304669796440655355688801163359810466613615442867947184306337133754667039026596278977962401042474297833038106420408114476807847932347050086167176581112013687035071729117332489791537727696452398294203794030434154698441413861460856335924239180665145385950461630432304168752258527116157130080063709452404591548212251505050938697725146999756073409710708903054393557927508986353445848423197994771878340980523645062771627110793207473513428321187044361864489249449055181006597782290837276929017537784604788984081593583120131360323671746614672938085583094358903289795364617276120584146813761595928896941278986328873709762214459803288136598003810881735136860765531850258568129599183474783570856714956808094466433918697480890686112222635200572103874702082958758234673663757200133039315349233639477895723560515530226075578228042751733245540466931271558216081692403765985001676273204240045282059483776733072771008198240608143504334601971695196402101743743220279776558376407797121429953352503331779586508386364380655415071304085959834935672464795638134525079867191422975365206536446782476100837656827456737022430253151921697692124133896998167897365801472077399428406852155818021677038709797995164748983405714473060576123852293585096386693155618624748497339900294772569867922456002417687838962220942716304584169737596761091353763543946697317440334511008011220838179855367127507947896643617235012762298520594227747266595903750550420410664329442471102385901367415953827920478247952798228321337133140916692024796430878934251723216636276654137321309353744591950777292922968509772683451646556709200927737919779046012225380737389317486419332741050721905927078401599705569024763591296339581834002967748338178013574784446882879751567347721505352737283553710218575634686338058792346226504601601197739150107136322823189482281855098384621050358612419525279046071233828110639297638687101457946414983387117870985145342781789610084865354375108322770312176880961710260619696536786219593843458376124675130805950948317377798984925093433712557371197000612005376729505108971890062563913986154187113497930059090490333355237604369327302123116370663378936866340657123962048980679688991621000424296019031399570821062504269701237947043986820632686352925233187764609103233061278660768819471325182547319186769772040160130912298754611133784185951927378717758300240440819572255806934585439296923201265701537413468018482702264445359709419483432942093400056024176463415648657978599650048370734523667726428678760526849516280557101207201178772831767767206931100106312070988765123977253541713321305963530668978354405724605942716571621797705475119563035336691755017485256270608352200472581398868289633553317592510069718921445207205358033256214974338650512992985082961718460191671724665587373717019095832498466654691436588243171518076398526244532524022546494314462788695608195248045097536804901661450499270245809825379989900324559346902175498045479833475060323011659228381361218097526053481221667922778383219528525749957472395981417465642495057385827915908133858607950640585198504953071622960967356222130911876243383351448820075475792955328786734267910276756980692734727873111671056263044779067247598195714421172772291711653073338073970444668343075173716503489743505125710656270270599232493432286936003009948223749057200793460340059890392044000415580284380692911237924405702925336470310046215902477780357600108604911868806390629768080062330754361732713079385823530797725314640840048122896592088610364493496143417503814032283925836487668519431574992074335804319590597412274825015064758225931742536301566898987690984152163189610937776354585284152601254620286916505568002955303215313468339100822248645219978854071426089319898257412550965202684663020304177040379473879247210980944625833983592009242091311418847427324000901538286035089674976935285277452215783832632618983902508219643665035981442693774954406281238052578853897407658853134631028992313816815385707393100186843830763652095733379414012098895006144367996880883103000824734832556936397934289993568103812854260195725467752960498929397925112903552184104080712460846322172133018540521995670648824852313038533404693307774627444277732209966659826712163503846765796019115780436318441382856741140911301459378893526915751349672770166512135946440579900534652180697472390367062343043030844035329200803475730329743603304019839390005252049907973887762771568322558222447915110543846960250937102382745515152316008193963172129725083624649471934524835310124771333530280036837338429596670651994975989701545973728177863494874689168693161056450342239710208700095328059817751182727820394739784022090362368080162218447811741621065999956352919559144385286413873558433893809652157524513731874278443503895633674537565509600445801611520898738447680323051751665665254960650983621844577681072526202607676526228807103035376450652377923582043958785291617342427070270356470188240035894706865943951118637468949694206516024431894367595755863911791632143412485127492595023658274295120811223736383435408345611047166853218596733848751431399672194891959231952238090118393463512184637669078988808070687669758746473091632383738565449564096703381062344718376110226413452584253550124046165119425553560723114126486109477281393614058888391709763033246861929140631195965228363297034477019556684922895322639262760349907522502130056299294543600525241187570000939223240732531829263897387206914278172818606905469163448068566010583488932946356925940583228350104505526019274488608148821795336530574031265028364937974399927487160267464124509090809766502275709209479070009795582588966746086130130501781640906429852058468068786788750246295734271416737714009588575228138550414003059204238350751999729118301869939896547124286395337187231120945236202165956061221940842366774313850013136671561491581781918311359891820335067459787732038478851203756339471438097021818112895465984511030026086729232777997751794817890589291330298812579761187388257001671667169898087995747605285392718154311440473382916415702297483797943496171973273948854585746992805320524866561624920746849697834030035479123950608074443085561073839649774259351014133163543709980477122069288948598334300544909728173749904142653886118811492680882649099825658665641561040822401170124741279835489106035491079356669966389737408906198958851767677999798765837482625424804614676031077084910881136518083622071190109790625901961854030558177066857754427329514584745553369485221338529237622438245809217707096666811600901164366126569537182308659762512441208211343421049664812449705455723193138997084567585058109917596142751920246719111330549351621816193661820529231414952183989579121891599050773786504939418545673535657864764388155608624932615214276034975478919246709113913451352837745921791200583225374346496722887588124916610222571165844253474356190607276812683986996843975550204652598902120703252339379908678852937024524047384845382748900239362127656015668148624956220192588745544390642666682681539242615987469327337768356286586521474122881264603185876744741745462899269296349386234466447469376822474120899498879507057392384528163848667981276225276966385889540116748714319940709449047174013560392499016802236415256967039010614437833919099438399222177716001189459541597785780643435521356734217787508510120990118265994169988976088481266597381470070716353637230515760054259817853312068163134651099361768696794924512116117609198472697649038173064998344613110059887852014205697452130803395979255924991581465214599778016894463224006094370584446844273329222593043377000530860027450589462780618987179010756208261819530256269575486793522141064952229405289145611394030618897714895506129111302613756496448810672331923362318726537842532319614003631230272799110654223080530786340254519038036567648046746367692068114065808912901055164436123624562455047368927360664814051265689600650345665998116227092018116563279446627571397591078415424371311915376478397917147499182957990749758440218694838864383712690850498619271998341564914705115583125775271958205512020846032193779444503244267657562719524341075263923994028755913403273037505413384262200475477483039818969221740816750188879161247972797630636359895766681526698331890992362930350462423182230596239255224087289896607487500027550745236789224439386973255703349529768603765609733162886248022140737196875567586343853042150746527896578345214503637162288946523400426221075864966360703278382212758656401086700310371717476387917613159449468612401072261000653878934401830891965849838360049256018139306171531231638858336925555351719508307778397508265859989822990393319990884344992190667246787485942801738339125037123866772746661852999826860100415191768210080310819374130483951030034227336394031565981266425979268890602125898011582197669339973312993144638775079847216004110061761705341096893959057958699912106218448478687540567394628469345071980172209782082499441611315778595112061871759080002958575669872335023788219947506636102341693074029134886936908346536593050095768650821837741954201903491549737486986239891675926111345248764640618833785991914887829685352521824446521528377663152662282769514702356577102237197887020114635819410040461076235368360675250424873104611719480397052932970218549226958098505766262606118461144558820899260667329913162572353583016115396559498400884228346052415159361637185170739263700187284268467343220905872284153677384829021494553633545623716786709564526891584961975760245548125394417830341767589630514019939998649796150464690139783863278881441859046243654572837168796337847927284559446990636254697845350225046350368684370911901888004040158851249313264354342785981124001867759182928313378666476399188678230601887760764276064002420547866707582777128587556657368250368468409155768029733548613755616294345908049887014373628492827747627671838694982138720612387310962047601649259949722634328065044882327225397117943005003099691560943631753533609030091300353678861317562289177879389491577698356753949540139586545040449885318262013421430033948599169479585208865141868308909552778946805581072130769917602626727661197867261145488228304381856433498609573077089070935611337133305015273345427582243070906186537126623952049230228507868547580257495141821011245531949803940623926190017352964558885933794537144606415545578954834798446401038224673542842312477481660066129717005998468865988692218198354602340420230134518426781574754074553794830404747583213991072681509209998563661637052204980906363561729247211776992052320411784517022576983084644854289749022131388557391271072925690681448726677271279133330785623720521950039582779609030590198201718116929300047753113665788507285606032852503221460936250261718847321618962016348280589324461336314307457112300867836884032273388631868292648832397976242329124146123847230687306124672370000000024965922944847542964580404664059993160881706638755536086279194098595247874845406159443377370151050441073469524997639197266314260815342189416139394774548002238872403201883021648018917315407961786850865270282801813257882371733346339794002394832858715482984837332520081072998048429279093953038449331001111110079529984972146358269354650307099303490419016006751490742687382569002687326565558409818011257632239612564889117490547954418788413638163392609677391266114099951091434391030605191301764297696107041495781265096964689463707305173017058018900930212397318768239359812404175108506423439317829021022780095276464634662142580660339730994857375819200757705037299609129917386702095612769365244060616442418302109838505195604966093236776106475971680239357723534367658756746815841500837343337162491088048171461357916665720477360500655076841238657393183086118788989643237182456333926064464180360823922312758892545807727100267306992061925737094310742587696827757007435486008743938852424333610894821370657409640126866676061198826901598651225615693912857883827633031594237056955500512877284210655763260908972234161831079420453965530325044488276428939268246953192176959255157186963616890067308903542413511454193269091513130920023288000530597833680421606108422648887549698904757076677932850235608062284254157891872768507253126337305601233247955781973862178923431016365970669807595867062468454864799225558388148027435588588653973978394905424323809073855470183216325499800253966205791651405886754823434329523734476682288436497570843621788256326912331001246594646869585392864944565614472487934763494736844042412528322004094955304995787291450159936362503798268510225084115895882486687601493516379241471046657384534809415225026981416699770172612536918405516000137421191775623132544897598544138604852743586102773062286246769215694374157739812263108001681141738192868714037267994811687992873904164054341613304569010912701565507229084668206392426029348096868751530591527308139760879135503517364421295586493208755134779542465112829824701687852478241987796500947765572379023260252922484847713551893279751739532294216282506522016733836505154942217356596481197020829959553002600510013141933236224958571248269540174873691016201714072564968576286579315814090123515378532301833624320174929120494529171850425780843112795352517733665961710482854145524710936519360754853383530617631665533638713398337219826219970891853975141719970615037437886147436465913199217721143063385625354711052873411317253613837908488430313665117926077898650076662171381222908298333939704087170608530579638192526145144047338439783586337908277036270032163669955817071453466997036851783499493348549878106672239885763905138276470158393220877693081841913919531506357840568559620393859386298136350184449244598718956772033833720662412157740422393826846022419154656647574912526541496334891731933108442214842492721766110042370855619381787237516765397353014182641798306977228359799607529856649005565537053659257964144686488426251437716824738313929390057631743152690131654614832807000336503732072593093617002783119357594140389852819062626739400954224289763070927071267307713870127702422816836020165943279846868390309663704500389815103508860770258401532090502982073787915738264953932095421694302576389929015790916403122281714786899153031578178771060306606078461532885218120864614834518371563415284399729526572509824713275555975534113579152377543424172116487889680803309999147782074484048719307396396331195895915870264352408347129799848900567306271123239413817650860671830473255456118175138131673815908604274984886674409699923293214864958492938977960272763917292276750870544406447194136519229832454327142104460856869907865856384566247264818198760846103722856898784848607940796417675245174967666788185085301186846930591200121806096382403629240325357796244980366537416527382909165099972389762263805797852359534004211761514535102903815938897080802537919804102956429455532705636525740583322690309125001240065575856526068342436765104891194249044816814934777460748261487541253980665463989115226447042546502940005237663267588989266619142728944742663845587427576946108474779347291256979102931155868619998260119510563446026437527227416321733939281841992297290222788892085727634018722784608466525959491113677574654250785144822790723267362768098837402632180968759615828737833827585375418980145691663504950628848510791887142865804621103348050882822296842740066481084910984925950281315793482437736662384401283634592972947794059608875890843650741736249555982091859582858447761692551049360183445844673243638594280323233842996481650306071511253928665357061802168949303866695944312301692973555889630388314341341869615335153314204563310672640013451782086758195190789114242672733517216471567628850321378644621893846917952843814821228966782395568608089726992827177903240515363675601031135888288900118988129405771032493475060953924288320819599729883265138195617078784552640342150896242931669005537004342035617933721371654966689733813930862406523542038448123102559949883922195556471857187259482083296849706387840182753379448173538864537643840546304217480336054089252035552900677143780359048862581290340060427521566580863068152678614409300485099603731973670278082146550144794556878202114373762045901764867495718268843939736001481321820832974250314205077154183138327508982236894435220390233961713673530027504025026952901025115709206624814762979670697972548369752161896435053669127251819310916175957427949136391564992706744926358508139454191694189691903369102380421660357807103570787869739418980046937600873881187389608119988298574367639959586099882829255436537009272859929900671266995644134126624918356006990540920299433570390451214039165284293757680888736170553416415475513311449857892411308486879747085504712976279173637167883449362901105806188657653430300627303044182114332119921076460327225817430402929115150130979693927806106293481658855664783551976939912412328635438402888569597216291976545200566525274294809669945238949607941817847257686100479174382499353588851955538555597069528275352723175229680057760948689065096102919223316286859369939953817087082467969442567743260712499190310857197158706267314124641336321711072700599155804207843146772353054723160885382986868571623542102827172509699143665999217460123277828762166315518563338676238022771629671523190290041130551000839094562534931840534869783170754080915764074688378078142669928911749949550790933460769095227264500831109796782315307188039777626997405244033360353122136879074993930067271327465832108553699961729761954204125897784096053471800028919630692001914265373159020715301565530949848774063109259648666977711570677965176018230894911509367238951499171117988089893625296009108744962606701126102858987083944945846907596747472363863865910947093607081476640670248343853348348736320766624050503472198538173494161379832244295470820707009188424704544052340179481058131484916906665996611819646410483217186919456007438354397044069152944582942741196309412333691631273307622234442752575265618080007251695541448572238564232429137471778823772175606622668999909208221105074556804075025382038641260894065222474426890594189382535915764374140131953288738606788322490302169574606582508892178857816630907064819178275109333843677606423220153016518971108467747627725581197790809866112414793168770385209174983661964801742748072560262376038566046086205645695205597602683766067262671889107815019630493703261487963181964858770818734706923905825013112370458613022902196825845217117612019417451334966740340239300183758135950440733682977715098888140939485048051431327904130392984486661439537471674628117455638674230747731949933964856841758418535739369849117427117167409928144311375351909208930213854856674410129247146283493521759922793640996162693307270751474842842315385610123558669566638255673824540686686862502920975443339364668379020099944209180706904726792025153041670545575060138879116488366215589785573826804683916063871926165007541156627523062013632791062409489298720460694402677794770870955947657271347803919096204727636071222911758792588191434045459796664118402336452325058485018877442675063082826917784634647544051161944487132975248855969639838869097819078323365464251083769754296185045867157108648194917974783035182053765876248170710323442164143106310131035099875505065072194212238146457069270958901878205541977925943573697705386902325189038404557045364758635109215299440308825234579353368608437086562331473841598012715463060678085948326062653623770054119064216614544021080526481512906876362132412012875926627194157761069079099820141994030599156140260868501688925675375301446750967268662847034627508464297637294370918533529243817176850328228787025051296103506674662945439946600072938742251599524156240829515005048275951010187748009990894391454549463074415769749671526391724529015515080250345396231127217408129665310995849984529633450982338749055247603081252872879577962148617659146757393799294703378481532532459036256667469525037621380985595342364237958014301774331673994042025681592316288393610223845245671234757835876906366587264719236414511640543765511919499262660826522306774242008693263501392973051761158063450618612933234572310439985220287819766070206269105562630730584798812009331992066724897562684248656370850767300394972402298677455960329377050037791007867742870292194844350107228565817335678824206593208065218487106366104340271259069550469028811490868695466138404758093358307918796434537242084421991498277445107390905661278213548708318517415583972077625695169563473025947650585103813966727740243257490447549401250510974964353620640016965898301173421368627657370672122815059961317119890086520891346272517506156732577946692975293195849342634952972181961016956104522516147366437709990074900987157921434349050359018575770226834530997686196406630585950759157791834642358247155209032310205878117136170594992145320992591626819075635892703123762378873723256685518368604083963383043302474888729015502909460611520018488687953762864590891559951451061880598226258865040852962989348244825939571768190994297586794675059603982029276810692772810477495645408016747598167540430332499898767194002120686591250468786305347873179026831612819679010809597497962525923491002083583619978088429002903916832687451788971487112476564057767632149852656639573374282803469279355150307139752096049679949929435622894197468476942234091793900490527680353008281935399654020496985593890182928877732757055804697541108977400038854593546833302718989360182894630114614869104055825048130503754537414083973456373814474395662283009229143553949616799491265417517754955420654319625031845302441541513498737218092886904265677949483797099975902330511064204945761386650283394062937642666263727255445635150889571433698477863276090672582346831682257877926567078081912350369290941676995419548300719811510423404048210977394852712178847576585817142844214711441565730677639962804466752214309988270201867531813353204493717373102346133662788686034319850198062749791496474890950637814093758142680539227425717028148997558064830991131259370491880563119088159972644723928088359416776124070146737044393363410327558511538669587254034326623535209558530101574082111992393296950897124368406564708359413472990257858351265171679476189388215137987448952655629079938091614696730753183905686034105119969611159438091171807284968511253233075451071850813455045114589987474960790792672386934567965073702478344566684976648274313194054298026473627214872613598780661123983381271519192274260834392612462144592667232754368287422898183385841980625145099606069147056932884099096406237460641661029287183655971232705845939204596159350121540440327182586660457801654455634005844153670721480586559760876428883486636023096267153812116850392371592589868683665895161290572336391776817744249342132378169637060177965476486677241554915128892774079929885632182841365967753050296502133749487512806107890086363914183201327224957368200745092348113378987980882386462175559312828345587744508822732442133462734706066229700260066894682517352165278693428401358774111763079297853496748510758151640380258070914151242423291254518914241463565399162602342300491924924821179564132891076648906822040325766676585032367385977216591654680759215270781133075058534183575476537219319564842328648731181069423289411529900783122162672171043390565813430446756435921776547385959534952580892308320657480571306021168659147154179762709343510722890718252271095199912336247645990907559025518012853193034282297799263006846836172893971364239287544243963001926465772987134666673460042134536716618557144941155815969962229554436422056921428170078703877276747377468322366246105054639428889841692313762866444912794586795810928415710620400656089727603208418459354664572813671406334787713184858739705685448516248461431464046067219080800835201960947470023035697991958793851076733936413006517064191245180152294052183048695985228097208864428057237227658539481905917762738190080899450902408194729815356735600289558012877008117526385828902566763823608400019797636922268390033106372088161949854621924158966026071340815868726237585720600665459881365119326011040220197861552667463484416110234078345149724157974012127979082827667920204172243331371135196643587270590533395722342169617673473397308949842017808010788751007105984015215456457133266919974693557890769019646154551547818603632243580213384486296868245794816271520337936339735131554697454391852021081558616986033848238602944795125392363719476958690145667168096864930484484637711924197144998886392834588161274593266697863509309040709678868585779614499396502352266035529136887920414807178876672204574052319497305160306776827235816064112833370446582322887464879497248231211690323814103982093376632045463429633108743215479853042562103628206098201065592958402894962031037185457825429275871053613148460801042736924970134963240400147518337295110693940717031975517076356864808674291776177462059177382230767669328446428222312554811082412011625741283331114867777396141174790026159934818950695230432225662943697902247493669342200803672835909255777260357233443428198186025083636430646708177450427688762028513474478143563370530064475221713077280577483345161179638376145211620692912979226415129132838245674620748422498536191056587286826501956007713911412313760631716837201819940631779798588313450931236591552673460275733925236583805021965422898829239871013154754294354005076579878708332891395075038903391552805242156987318659736996721839807281809114557761372365145229554300013327865320573624850445925238091504884367262652324650432864773350476077510816739209590173146098541144068476636214376455780442783187547310773401747645236176867253573396597722916378133279582146227203500513119988521522369568974868138455654474591121345957775438764804908844928859594892975310779693730149337865551077101519432399219649011811748123022852442151583531466826387476759500310446888128288311451283999512056970996512471302139338014077834299045726004257850044921082970213850359823478768317966701175507331822360618227840936232638200805610792437367651830116442709255186965392369171712073323568274915362353417416674301746066187329974304484210332059048984411720690812710220226996407904148679051207732020122582707903960466105596732144323149318950685428311866567525166867414640380425947709822275289501978497713324435506024641000879554959719243704405913510740912647268522722838414203203320758690206559191815926947381693608490654559328588122466546354231722973935896219882180994901861036024298450607367387110963770836350458070830208398683353553812929865268339330356898115173044461395103561557589381289689512945674189197707495140128764092723683260862186353719029366863959694496470797525140444923695453342534630663170270605981963532176483506840428668383441044722776438550901452534200488505843970217429563045309406384687120770930382524142244371611510743246684684464215549811662564598891918354939657121096131945221012222146482687683260878040511181033041013371741173003409869373318292386658533867219626478975809538113540406130115337453700172317560108129243219029215697366853819666576198443728554898769730427820185376317527183038092748362891256683471933352667269731828176169550988550394891343771016362843935969767356440577483251596593330922190389063966530615945995790353680231738038247005437781039839598812343964063238430150032728566764528423386533249874442950866701792418768583304599922799443237353534560704646278093519320074306821702254289272108525411338637275977049657256151239042634295591196509077203504111986242203456841498820554840328443306079773193386288725225205706548283033303336662698922030293922367724729816362210959033318985071185416927090990421304084501005746291268584575383879463834102286565415806277358306086776470280788070061341177662917593538751793981819677416599857386859939376218845896228490053990285165148169220994386419785387033635255949880334205939709279764458422841861149678496465016322173711593215380091470672226641489063437831790907010398076664366443126405458775328531758135539382476047413200838515338335299436257297702783261293093064059761990477330980921035681199119501113045386585258760707291077683216846767862091105993017690421124614225917402579043415713058851389064550743160754449989059890814573875085364975419674919451514115515583497133970135579768400680978320376347256465692758066328626568765852821946809349991053342862174976671448925655856180038176759439599366378622601126600798706665224322339227891179396220002843676305224628574363802796322271651927445749536758400101636817169761746134018270586072121600263209481926664523537262082104977658206792246827205933766309687133576789947258362867617004645585030036307733301968546243344512326356346347777454167539474245527698404125191205175064150732366413297200991411835987152388083510064836265658594566226098718311895102481772513328676080608126232769840815526518900393278790981162219806673101257759283192101896800847598975039780875355722113053845187250665215161994700910882838742904714517770829103258959448433088159348539089375417562810626740585860413847525012764141310389449106597804044654036452302186313234834697252399763396721403162031208266710199490327788639549978232708897414669304237281493793561159933135609155677027670894114395426290218646420936304153085089470955835623360751283663454824220741368341058492405445919600825494355894215380393147515468270328255312563515019446567260751830422761098140876773193191494504688750360661306962726573261265503270241102742888006328429665957790710044417729540521682557078539384195461639304978590061728435122095006851300589591790226243729880255810634815112184850657242664450575301465794293998683247516437795408090145215413452247252858443913158919689077244723468078444950014385268461719094160067540090325613421836859169393245110614157847525461227359949089891136700933295441791350536641052624151303781076797251529712522212339041660115943254928509127115227158690158954760216931737694947751336198908786208846497063342661470804207619733875553740068732274211741498648073304515783365047794453465580897687310905105577076367184563007768627105285983907767604271890809821448259728581324086898035567136537846069462467481347922212768606306764497753783615552681348663762153481214176405608237800630098652081146569307443382096973557053829442746569829658172571673544128638669712137907589389639261040615625465671622386290907961907538585934818486728719851408372663480414303068095746899802696777247712009069124286080052765261088018066287175487530930559521994250617919039298008359059801850915314655858081916227954662807744921781489788285260630415148366143061385074199248235474663640697149793026868434455330066465870895436363520061263223684056494427613169778076684886845014243403032146532598574426024428316950969833972608339493117285286703991895741871703608947951461657096283591594892869616105079927119863366417974998567624824957006243219230710306058721407543060021857489298329740767681717572616072014194483094513817971527345249476228564780851475902729996112495678119491486193125205682962561956727565929683205020025942757224676886008204153629447450242736274933735184654223496610270744364482128956755424664468196177675869832578837086336736203695508809420864855814776098627306991179994344649104738791254981775679378515233355532022249247551775098403960792299755144975480731783074945337126295259684567576664788045406295289116922299975933015511069746756936897572454889699331365684702390180209217658336938389063539823046648970251866199082798910817258297105968604872758670990960137151424995385452306756045756110986580205535354225516803328750916699759928341551046502901688486311985184342265134661287402009870674603314104923091054151227256344281022664066485093944805609981970508253539925234046715524101254814305829147398810274902718405994710665999572884047899265512943529908785290303411179295815046457123058834755808949158776202378559052652361932234723160496266561778046787192256530341387409298910294772977281978125049053400131750583221906544587785234319035253822416614412320119117274183570787133220485850857546641019369391768282897045807765323293020817794020268961447571708195992743610092079583504691093402117380968298707007953857259638436938892497603290400511178651347345373412395600621881653731608366204114077689387020359180644653365686968035949095977707777252294632585676749011939104178721276035111153406182808648142007054916844105955169490125800020186811674679398305848691769768226093563481958840182820348078907999040497643658614232706288508270964521937024038000855081788605044853978129228861985483503595610107303766637600409792259399117533107945690166509703648381522344888337448571782251477642548001499746839565399418378163285527039714815934800556624232312135704207850740180376939694257092534790964396212646670508817625385164801477696418998075545274569390203193963837546855379734106101947168084263458946685873146509944498262897081548880347542192941708514481809917499555006127563959295626711292477766504482552473052486080004407691719355121173090799212389122030756122153497363664711520604625939844324588469841915653195109121128861479585564150033887952517250888274692587991453448465375676278999084308464278829579357123760601277203521697567770899993412625403864040338874319473901330267090648693227138589609266696119632433744913919477005472280521538317674300569958145340545269574034098486344796490228090620931680032698165489769512953331922019132021897243164801094354752841833374949830225114813854107896112304665218288270920790230948995180319839614591802957355175277947160616843310917305957263877069604838340426630369580481593738102170001368314803800695990955000922568812499108916325363964084485289291337699238549275404023830451470372667238357478588599818157505433621392121046436821923543759713899321632881072507409462473801489557915951075991693540224495551318169879781291527430195580717526757989592993970405331816555912898433863280502849265739068730592576735350341296186790670801865241439734940511352850285770674845796104818277976132996086766835480868277447578382043205910180737258165801205104100690334333104897341770777871136864667587811986159025610313355909712744249099772994349972250528850456110578776658708686226551509034364611611030023162563898902840446161076487332002929664119439151076135585386029012407315715180849857998084159441531215260813688148503050413045159583110891951060433631888317284686773589122066052767744110920662575880321451658564904437164388800685864498108851355050931964969537838732923201851834644065351712572793888296653093317396851814368655705464227021828855464204371969136141234391938632434877689228070179782493312839090662470942679609412465964412083625635541273472338176041218766076801552195629230373865031258895393799169471040247676005316781436918813883715752902582820648741833805396167735398002408594372349786439780586148547369379083555961655094620540419274119687152934072440712577104485197271321570326033339859626990299026036137899313731185142935499507875329257609568307924354892739085202378480102892080859651675873824655696815081222481688298760365843924048358317149453454253671528452385630310134328980075887887962072049247855042419585264481831976458270355616608864551636507398392914254173339799756263257968491556879571530394501992391884287844648080094795861597056871297139350457045245464813819000785481792910119581756425545382136116579260400895236132000607237802439694988502064338737165240447557465508103847063267251975799921261528028618916860177910253057878468320251535813687051878769676136761537841762216535558503510787733940567258873391335431923153620833703180834341361311278371220577421906911991414741986890867601607918296277331539623855234889464137596316208480442052237439458656385137824394707965134885820588610580326047027919675427633537455323611087705004435191700243218134836132440322648892516277828261929127352859163584927249594368718138090671420858313937864779504587013695582163117549013545115971219151900558705149429182419947918981498088053571874073906833209268864422825719946864705482418267501679829996593636276468592037941659587731221917567097758188896537564717053871667371858192466408780241838913527846147754706696998670441422483523377650185957821062979585610753107090478520529429840807694522123358605654665295701121037418047515013184798924118545927425729581443967605077333014770148213715345431262269723522588106154229343369792446012729820655803843603570308308682209894595178278912962210025597359017570776496993768011303088415134329968710081913222205916487655783651047076500574988758808732338762083141775251015867142082024509934339082520733947592745516177622073398303237225618159922279577852592317273765216331725291862821375749934876639499603901425313762474617369338314698104177174101053536040715407086508479826222394295864726636922030372098589352102643232613313583695081855950667813659600836040058702040418213640228723788309814685556851696943886944404893457582435842642698255230792250528790141804786501602980709559397584075723121874452717641089872569543663563753711291315140569753724070887389180191731967871404985136545957960266357342440988195302464579672466701222890586302358127718891307705513832422708804351182002509440958480202502098034837856310495117151370919078201320351361246031920827549292515234545496468735065014679037150645285626933025034372454978234085870531456415058593790525601777615465289175323623138933210423199905418938265878974341826240382566525064984554709493827927899417845327471852228098410706253133687637659146488516535857865152054520778893095914998079820088782104899629084126240286652399330876749085174044220967567275091707557475236199510868949732742881450015654772833280050750297437253980644738243805798552483445401249921411535208024220934204292258975255065934829143094313288911830373391353856165786798111082877592820751348587825501455537050729929257922626413317161525291086191308521315185659913622057714401375629094517774047982293935193203796840730889487606592708826423229700893085714850830858998519987953797672899959464288418996130321644175410281757764318301691316059187865362531068676199739601339269312526024967651821579969276216218636848282507306755624662821903788776870044805927334145595274077201325799854944699326162173999298048040401161182077312297364492926273506883942246544761839165632811849346549860808280894779094679578300139231363810281682008378130968440118800424163439620090303253000451702212861769907490970753707514784436224046120240632768725635555047046049510339947210044977254494891323818163877200466983286877106993272002971437535635141655578857161214819959027502200083377445561890297656392679354982272476211136548531786089154058532557854148997136819880033910236204465678006552944060570005542528714351546548639128032413698662763717010226958219824698306709755779535035091148867864455439922637791593505750069230633164031411288654722909078075462561844851798604482790843495818887741865170850703791934917160776246645919447009993064776951290137811573538293721323062254108620858759289801675614899995054151446289353606482033571188420350942800295451845058821678680181609416294584315798096541898608690577715161653420706728944738631989728005200502475555304315978537867408839052548411873754995439300325459455411621929018108088021384156589474361722587293611865742131288780980048527726756782743388806555985696706662743350632109009217946378190082900321667137199177796455080336123943385211822225158747209852325689471117548686623473674929252715713317723022589757794385168714359131062174475374852279829137169463443965516560099667692215239872762046934287174578376222509562141352949786956734627021059946324993357094236129762130095495240979927451583993970258770023255233238733803158158311388065956693820491965423423289944870070524109237671913260224965684917102783187246723754913446078307627021767312542163988354325995755720147831339886657546357027968315273954646813077155924306897769390926918556613610009472200936633727289401917344401048825794484855541192759320339133638330338394306882926459547082137146874605768540663798885063313435760374418689198400042949714459431915916349280625319478182127662677237792003511460841281897602163314725672848800187115934796160942431861221946369355659968764420116591308575335539975245454501684916790455044698188861283003633450279390816055231922505163772738273198424758073130140742391139926827631637664206228278844556073444370145067372270073783304815037686206674960488059898664249391942536149771138671100747384216967972412275390380249310992964142607715657090312636263815018897979413509700184796447634943100620410154727823731097437563774176231246953565521232215591777227913828402706510012627644507075094731433366057048292758024356547248294526113758747037391880470804461915543889524095986555864413626777915263972175139843477236703787879593036418678010363495303591657728265543283284665474764779607573139539987955952027440891451195014695347987373352127652078273398875904624562728757360176723362421025026125694475922596956493397927855145484043332023935986623997295232117177450165140249429754048213180150432748607818554123294317345851258515006215828496526733268564978250548972045027485786400013276055779869989025470003871012753190500205265273753171170268168259866709695318739430815000252660691335629769019197718337440047427681614247519277906563112599328970097476390808349301097753089217287173660572252207294793775891180229649211522860971604461002545637246677599559250067736084237734072112957924151304655049571037810787834043556678844325592615242125623584160203636298283636703076308835048533795906025234691035412455397948524873830350513157248757322026147387198495241678899317574703614022482304718029322996963631599355650961329047202134362150799964332702662281539101333779719359165092211788533632859689577312307782640964216386589597667333011194228058866221842580903991641268705004591935416429310629674704152182128546590140159195332305379417401346981200957588403864395331591359668025581872311899383772592372939114235614060865667233680331814251703640750553285575980199241286775287971507845094475926724438676967496119414550055670853903041285588752759218987443197004292971767416942868777696859151606356110425620816241672776883471080480264532276339035524502130993360751370580133444268485956722710296139242630108115735393099324975689648393809947337295709120487217276833038429063835561277596394259737299739442405371933150577798482985028860026583088323331202630549358123086242973249668994920350406775503440095818850778216896249342275689778659312210945503948602331830951072942966274217580514641480565398312598248178449811258001288807875340064424172868162108754869261148489662992725166571566144887975231305439874926985842872780261143374534071759582054753895620785122700138780728028799583659199677860835251245590872432351591690593884036532150166566702104373923718447887228176425582842170268732997835424597051555378615748524833154833975880680705247040446033477674317982821706549815211739888964099019926478506760754408518994193226697090967055609464500586640528194634656725603947196373465020445180792847187153158327625639457637854391903582910890930357865255760505812367248857343561659632892767475074417698991672072163210801842328386920436453607587073129692832152234920352634339993659756899901583256188765974191959137610130908675274214744840235460376208269830196581968112404522748780958748537211192212037523802522660308669765114777258463693117488224982361236760926529557330644930626749873012492491599514108173266706785841680037540563836069946453739184227447991214261883984267588622494899131519207472070227555458620177314881073267074319128494544103429060747779040146133861708869803532007914083279044585519464232599053900683150162117917758616010830650341214648387681731250735083146878663009234754156349803146198264830621759873037559441324982541761680406064034149217797397534315991786630801352408588133905570218084241946066053718509773020496470751500897387500950578090040491802820922668328010875334248834715017539038086282952419766178691098327734907547158140641151972807322985017449245532745311993460087837625084255144835888466551024586078785213435038771567901995843405018457647211088569679372314446645093898774508472599480203724062522524791852901197274428822637538295314677656134314193633545531427057147714105046278425056020879348504518035374305757205127072031140338608439920523639971894850238309896808574310864709160393411701621156346655364650555555623343703169963586934412513932847512247208294861133261704892662902281463886430394759823571260052595116395559129807873413249934643036611715634369798160281266688004699970120625097430019663804019916103643033246420977593971253083775887039434809057706888971252792454917775550229558102065442100903144268926545291810774252337796082448912792664588768471628257811962209101316838759026732022612381841904896779492611538143145361133553615369582553429132005921571336244970895480729380539040766898892845136368834948546553608336695095033161161948622114412356366072331260474295106719302205409324076589555777551277337567300468352537698905456297925215294139729380842489973061240341389913161311026630337284429784154766513827149112171264049769011170837757488772697297694284255264756741821950689364853997541822776559916024974487883474263129332123555867818286078242048470587003969492560045240621927467962082531628735122669466246390941231557740322098330501954240044707412798064495435998823597280108786896804243943958638631594891609342178571117772196876276946790073831490053995091960994492127687289429263333163505698376335840401603278729551482613741258203636380282302171696751369966841655088073940183156918681397923771613903771942037986896105386710019038159925672483578340147704992514786249702688109249863152539209112603619692910116896069113469024339975493020149960265210245001236963232148829935052356765172551604458039667200957143977170494390643773454607339058081724877428800660647128672609983857396886104889379821785899929551801568488830971152265820834526235382863075008630616385403578082451502434941067381947537305548334379234531858464127691508757129009715978456068102159321866933910855317200879577641559133012745135318779747006306359486440970155363757793805040097649528709372543971190678930336727865288816811835480893798159442933207986165989535386766256688003390248947927833168530824985402499254539803598444541219771813010833735808477572647915969138215188472966241724122246781528153749394050539968630088237131967721393495455546365009359351624308022145077987729043458764375995778739327605820334331578567950232800114904512145213999846217274960291047916865852619639386117006752713471125250648261981924122870720973859039949692116747533876937873058494004290158614143044580185702160335368488771146611106305975791375236427136781175156038853620152494442174454722503482480692593445554846505365243040810518932273147992405030645973258888933723967295961683063371844800455919502062740193992403082869491387544241724136467838795079046548699891861659810081263903555908381267928302039267574342100146443038345136587979023383715753026290026680303588511679537695890311592060590026439065554887113254915330321682256959970115469739361824189912728105247797508943935766093434074113964931140927939936232772921995421296048580465126253037820607353396882874622111194696866685957855722194510709245971706624741014999777099354908827732142089262005235816852058100983389124609432600928329302392540187724970080182411364471841203810759099184401869067853927062500631606793926443567830970523796446149688899314975218513156564543966282947300395036082754236676031166120011740754530637808351414664578597886847385716616653338182750368486814550986608043408258158902652166461576993487721081815665596078733688485268597592976620644535905611653696363099768669165960465324157355444041188656111226142150062972451024343693806840138114229265282365715549032800619487266852459710947686577724267104388728367809556766942963850943584226826913536241296210417728159265297926401827839955297290209015597564807601897218868460677430280361272724791672551449518543104706693526473708740520014573430361824190253264578520262413628521233907054144529639755327797294642797300133793020183123595706484840129913086657179442448472060430877190116948339638411512176997557715089133633924287866255229390147993177824420548173343904471830621468924296228185335659201234894191190715070856090872321537633953275034163596205895749294798208295116539335083311483230180589826744103647537035319944725921532763014840049394507877607539307977913672549677511539265244607282644378697789248110903075757375669585487724833051833038105363335863749106608638476129761425087513765109745666396017899183996998348328436916214953295723693750419067857542587685281923026445426941570087889600380058241350149759634835799583200863078583753587671388596941646220862310681805192235756627529619541174865207095895638284852863155591516919395683779146080111915539748414933851860096636557498668416174538379260052902123509653044458878392182423950854250816234288760451392464125830409036622193325580957166009100200787198475676306851946875702056659397407905642356751653667251914366972109967538470814694659003493266729539102385722951746286185641893482390130583152272509483917188790088043093430112577873742753497851987434937910395278611990032280902020268544956618133765746580109627012635210247111867913663118648240486459785990479517766193561687874562751810375841792907522886553849996510678992574194801714100993367880149733278131699556040277890463087453130398150385692996192043080709477075131985527155534059438252368315367045650369707175815687605752250221790315016704691665385501588738337141258228618963382458925453604580469319242560824932316821967787389080080231756353219736125859446892293155572450489761227954428774288395383238166087468630719595821869451189712000738176267230751477695551566048072233786100407440855100168945113324174394512469087285929306818606383851755076433581224901717265757095444402702936078155413577431186511310797646867266691658629148187222559414470156067074587189869306116334070854177628300654069439156991735594450276773589605091104572255237070992613172398071091935187499372185332503211609893112302829039928181431123444035248325255255371156808648772595945077220926632706139804313480878255755620583833396408026028146487496174896390563828514169098140209693442909665757232095230213748243965428923711410670226049985930218506352500576820858555661655940757368117741408799586611588851230481026386918019363392826715771840194760126037523589910813032593753963830827303160932921878644952854743120778201776209649294074066541928513725038573057411276333955860409104353240714715761349424646739968489000844987193554307891299324663824335692211120923495277611512680271008463054950298787443125566831522311993133037376361777165663780183994296189155111324919336170592112998892595861487903297529414947291230357281432802600762162331474512324889319100124146159183991228235531771394348885231772441880199496567610784636619361202282732816893992587183056330222815819297117277535840443680088564723426054052296228562883899522337726211792183027111224875345264103519716102639493378890753981823461064085377302391356468855122357326665118035488876815030730670054042407049176426080888233375264434149623112577440860371521605085051997991119583670846410505641959029223190881635499876756993465860483791646271836356932694934219362348850982077673816207306957081899007137837104901557961568671882369644004831914784708921309484607379515707247729086719237218554220844422251253891233975535041611429207604575237077543291907098595326107771061153153234748184021174105570803049776254337302732773863164614416682366482748163146467978037545989939601129607022397386045613347339016701034443067213310696168786594476624505359040512370295614687718762268511146123375932249233615083631160078762837834742601780459578996496189319642690876239024711434903436996741660536354139142329954476197521279437247857468265632069615825256973592368046588806426082021646751742785948118642403211780416887686534458104842125027402467423384866465402810369604824153265316494925191419740108077123171594647797948783227747746204081371247959977998259138296865458645257846841306099065022038899197401617129825853759530898779253269286054220513538711620475462433344124383483828733315245915908879936704806400470266574056842857246837326022532726051333518460501413515040299304078015371771482734415781248701630072046565291164706117215038825277592145575995082090880109979584854046283933912563758039748889314307961027258434482234259538431689997791143909752454751474353875276133270627404372276398444152461701320358590649355158152706436568850534966238099914250047843580667209365438577436222709410912320392643596546697699182887323596121458661401975505932454395078714895370979780188085023742860540815798879267342452984175967688237321801165183035530946529944940346183622339107385205287237177227622020355679386507855774563378615092295496453596427745895049901317523797572484978199055488620865045544461523407744323772634271125794920163368779945525450713561767806578836760977511944128367436837203752664585323083727180679317599698427672471320044903836424672676308645270559857791578161909614879085534790317140884439901133352783541120952002854793467950647441874589251112798062091087754228608944674332347159780550560240598771755055510841330287214455955713726350535838088111454642544262448406243234560760081584090045791609861038051917372876682960362088535600104136892197087198871116121911780615028555517813653083071020844067317530274376855263668855127298348374530782711657802591898858383313027152681935936937576667104277918966388187001814272764460151984803257610686538058523463149645027410502738492765464759155174035798285022143840054830154705052365860137011074196516779060569376720068986750216605274983700136901847600048248376474985408104008857707308913590128844515505849370431869173297257455991763374680746489653378576833399203784912904611827899756208198456878215117272919072782038704760420931832548780455345108362532269730053562950771910053668310738813238930692554274226917389011227016713408020689462690712689315611148460698953401110571373694240288511749251624148358405623855269817707639977117254064867712672734209305426892698038573284196556425863198524180056538751629663437836176665876543304276790166503883630226815342465905372289246888404472003153038897470857466737430790063104911218348210433138762659693962661536202743270623778351359491914169592285562196388237572002173621914951592839411070991127540620380736825051569233412605918529455728080882916148778675379237925001495878919142638796567892009540043372286241287017661805701303161925944444362506265231692576629078388517237200370825869139077634664941302027412885812272228872056872438799603113034503992794991336421273932925442243611090593516301554153340169847130965435773501530049211222340859340872279873592858274549670010737073892969569546338279226149284383298303561021679182792870655673726655935470272901583756432196164444059867935574171598988872260448228576505891535874589211990069839451966729051347989937209592975270121892000659295563732046247191868135978160140979637982043007925719999174387430481090917390036814521334524973784158577130987684517606199782760414236628174747794038296101323341224464480986985083778263109780427092480674964431081368246189178957956353199178513562024282820900229305823112743017483172415318919468781266165676062543799164534874853789304594020437836238678606611765637280901884356208231656941843075365420043694210730309673588166230917186363934849670229431959668491172396992652949523031239535100844761848474821642578798601109693989678566910211062036793967351318623761365056850196948593389727261465843239239415859848631504625353408776015366154379557606366486688330669077356168745745092050090978604483627479360329129319185489779364177770786258876040277988764964559936379292012181871491713037154952596659768807348140076548115646765760092690531669977085917014389813360261085040079915220439138616583939071358046915961107219163916541663825732531342617842558140094748201481131666873855013898252502526091553107441057857125993729155230249355255901914408533428198006557220869593637226414322592135167609555310857358882848081835120086495535115011244572674446814045375662235469803323900519972839258237318211449974962116040194878797076514617189760702778462750142588771938590761749461451227764835131404432202210773283208556114768124184256046764488220892271060592583997863269133271386647614411092730030353126436003023845488580853831293608589850525653768334672497080834515876887025474319112314895974313354344160460195599585126026927118706555933403075488789145314703187825129169545652073267775788105444805089520999770118571148922372011968358095626805491831783114628891023602110607517164139455127188822320518033192082513078403843597589924528145761237621071134087728235243688453818062965643413624029690639686939386250289333322563460575092189062476293136619277655793610542246670964260204604242779215642900959354116247184672578765955427536418148338595840758902453704162441943389027085256520137084672751279638197667504002178684945589202449354636841609090837045172442588512022524673167509713254649724046357045966164828709269642054073807789139746507401355033559118594605656129226455225827984905647180271002735395408402318572153456355986647417708007663940867012297505541160785950940602162946029239076674318470012448398025189540415059044666825797412850002399108172439283540705151385076765529794613302243712806427705033195637151847329407477389482480776506640796424434495478689790502842345697743645797248785630177780931763235146812696584455663595846815240797376329908958120470095778039447788238948111321126329897623433300947777508608736124778454373265681308920118111960852331963311842132807787165279140638256985914151098485565042695014455678071529501935345242945982486188185448447540216121497852651479684899152357414707466392026209931100188885177121638147403989392964307627722458122703853500121130809617651397030179447381867197147513636705021677159398621444422346633870875311020196109240360814174876474349602949937570527189040479598423736382699522649358127415442556136109343348934151542245396292357602887954050650962280227319591647600966354073935605508532652159126785231596078533344478548087470234212165213891078675790369647503686408499989982400751317971810438786552707694592183148371424321621231283592003382190180162341175947450343357081655755847541005785513130643407761392759715991833346915313588057942276375008545349382085827301740876121381090591623849428478318385766778527469148680574254396733904748262324518225880727550407772408776734397206190069517871816697658325767404446620196729097292748827914548024773712694355551268256539290837983016563681552975784636062596180909889171905705987200148938138157195547773310250118592721652067117129648662593262926571348335451891802371800822003158808095408744790636909497875762454840353391367674656765915088066689049766886221924831217132592798482669568433513144476087008094952299183158595862576974321462401378087210088730642373097756751554377929593177971168716641520216720186544805554003127917740767762365919047519950921772569842553175496400957422179215816379057314994530261486718877021793561063788476403123862644976293476413758829030421593363956976312483605839875580784336632108666982275709185204730863709548152824943045617680295009895907785129424703600573695226806704868157615795837302018369105785023675814991820298525909437011505802644193048163095806819635673217054187022473720778114228905986477820431232327620984110236291222484638306391569293386061393418295839455536422690715903040257923127532804090890555670229056402989941772788635579076089663780645764804659418822610870495954604599775537708452599234776518254129643944677597287329907264451453859771946069416255801237948494509847670987524904979520991869499129014711089192747911646793027339156824451197698143934206711069138040514776462822245018525151434353443448155872144327371158382474333300698360407850081896426652902169012289105000191060276022644699288736174557848052236934413259764719144860197548850727549380750587401971216297544952042099356864417768431444951985563039523623931130247451215497864754683738762305965350428395900408657207225809555741900901163560714002136142397629200426234222837318138503177531620235613402179065027133414711229316050230424960395401064907973275531499335428831507530640435689009574811303220898791928588367625845091524579611303946954926579157603343280495747840368116764726270836219439701607674846286007206434856607962937597257977274609223289663235625927277091989593753532912227986998090870860441542292496581703893743296208188823506785097302780718826496015283802284942040648266750160754911918202833488834840214690411359478536945676478565188381494002196730862941347098626143990333604942427097192715677162480889610293052488032631291507080848419388119341140828641376507797565704436765905497518771656265572519033092103267372753817726999093275746422744054758762970861220892931905445367032610318344901111968768904539491950639100063025692630546337539898394560757318027402018693822873517895684327357178276168110176866674733672223000276123686732781825631492699870891173928066739363336011974413561962256236978674743785634651692004642606078894137945948504317187541536441434111393532163542368172661245020240822452831372758209121854360270989355936652509145707312963204155637857266136378411200112386417174225565070840533033491564053257854743875688009660350380584120206698927891479604253361588955377657603557971302038430612269930049936642425267531305995486150870763610198317106495266647557481124719898419941143985564821209802542938470634562217710926599985918745364597138115035694703455408129905316254658440896031199086026235271232464807506766361111767149007685327135263001672993169678980078417938810582233834175662509312763109209235407984768563102581499970923849765309258526814668219265887351550730577887946244702401895606053804430531274083908149014722456530940721976508868364646843037450325536576900866614271856124889238541781042035646846035363517034343364845447403920461472768701553691127872105828583556890519367460379408805604870735977958217735277272349086708299436305222494887208686769156355972668322957567083939209661067350195294452232200738399760235478139580954528110944154299258576227955051532494046419655542473855610901201013080240626531353369834432465189489743652584493880219831116644465684816094940843786812006530346012527194684467968442842138953598146217743509498319966161822786981869047690032547533552256236438952946834521847571258161765090453214184897455552697355160175932773964485927344032677973299910263731422840051717331338568596661173531987864919878201073879920478483134722969304624924330336848581869560736004111076741719367517510084460598396708843596884254869481057259550351701500306430836063954848066648887411865018231629167849149107833617427333730050523949776251677673990464611799375119015892464121091961184509523538661906294543281687216689393984190372844157975755781647664489971758245014534734596856229249693885994776242056881825167643313760559651310225478212803460413509089596829321450268261552631187783350123967888070147723194331614857360816266245971035971012448175597867442192429692483296294784190050476170539465231288305540422868532536780977303642875155257958390242429325792777779744228319871925934277364261743979612370370159655344186934627656289259011995155388879594498038933728477810998867214370778019087390106370041939735154572848846528049817481601571371192560229730648911859554421135484097845951240901831077338270198312541454124715085037344509099398411640506452350679184001297022724077401812254289846220349227050476274570764740166527766904396466693797918849168086928118855890177696876406021055302626911166063524090082568255153164650761605436366234173314054941714393067542362680690698121181802927843351345636612948343806286029151946887767291271069354191113867638280869916271519712972514668885549540380225829710133340039843397774322487477106453896169197938654351007463405756827466503544868921037209266142597802154376013299101396539654983659569289200882139679009941391937006268227455754184852674488826468518506177419447036349870851333674283473551742978579301030593528285444748756617916876763923165483460378254550102013875661559571368903853122722534909626722459344551928923770751254861751121375169811042485875159657300850773998690755882386495618686793979341569596341268741070082811588590423025354318553028180466795674591298620367109858197890539430234355149572920740593216701095270721217144939378798249912433975367223037930049638264771399983607553905810641573949434986258423163037512306186236879410346484006396717370159873746376893713770834117869485145608708896273081262472909721432373995751215757528824182203633701141202275133511091895689808002771854597303954714596747328632904456368973816064392006971078988360693083322675752046690399058098126929539064532895395674135354957937294206665777765066107383661100070080363335101444841374763139978492023697322186505244487504242142100294127596651716426360984630178657872040283761444467632332446517082973679838717370782910617915927177032880529805490043377934059545286236127248584022557820304033699495533344689973743426293186673464211301598713327605415849556457481896851634319079640422676739700084853761809191489089004797761413854199288900009911211946464719739829164634404004341430920346189342712437449486722771412574935453841025815476294087644928777629131528955086928603222486311498122651050418052028163843135521727397276721310766273054434629651875605622383040763805718555253852878157021353916356071868150119938338365609606220899202740408052818647252589791857186434623361046044201656384860140794955994828282120555361266934082859637686775567072020577854987969998960700394227539222657006790645366452653729365484694859784060801328918041768715071085450960848048675503294030136007182495565223442139607884435058557460016266832638733502801563062225697824772915056260510752159303077500271810378481819089308414916567394351202228273298014601379789428936581848577135819175570149507245386154050469155164165907782046057253693958363438121447861227791074228882268870710095373286524391399058647098376443642067746251347714012035061611588927994916464776516078401679909952073182374045615433149588497133030197683091177671679964242455067710886714035824386748059309128562305389193252408993737299434037411745547546211648210550070574991565574722546439688726654318117954943457940889306663002374259966870326937695692079038250105958565067684030417097170519977363031049480704744320168571949683595747291970354076964804430311019049269662963471555989430575324164900769876669383779451944268674438739522657464604073519816885360730019562541134452702975534094372719052422714264092656823043416980668800877383587295536454590755868539942391586213295761832815666553777425207575505281596623684308402024900435498467840827623157124515855522949454051532521945878975941644790394641976650017693088550583755053884088180325236752832460049985950349302298929134829622879560805275958744824140611266441137841425175399686721469508708269487905971989200992740188519374715117616854818874722332492015323296218680275067312963229054186402366469536117039887686135841610158424311759141026457660554303807019293620598658406818095444042368424151206333887139068514901953587158152717957068395729828547175784144777101366789188789698852681621587154187825214112003829347205031804663607199937093978553856704884711612680941249151644093777824182016412975550436126280553784539292648279971525634212442145262224084891741705797379529303838488727219645900947962275082925723567483941603073565932313369997576958610174592786081747169825081443263912509683391765396480693995376665259454356851980691752018902171822676559755855756746808165601349681614118579253138848530981168084956656408715830714200327887059878034991287343296245664039102863383395542533425825234805174525690094780398903258652233235675360891560923412974228593108695203852865552318807093780208966842566488745380925042715682569181891383681517589963993413439415609387380340452741163702283270421143322153537754781425298714008243982984524880603929848974919007988356484523789831821938894357993072138654951962468284347160946093305696294616856412278527802719573482468386440812703546042136365756395694852344672391600659065837681635984086366283126536015845579429406904961404246519846299894477982832018589033426102120451909188447399919256069345869796193723759109743720568253704733472606990371618591260915450133357948983411553213050379226254256151617298360966730269984280539290732055930531712758117014133143295753220206963079417396957116596614647396328872791273962814997936814442622835706978573469673304367162910949138718881235655551950578952674077855292741588210839306138374029094084319739011270747153450911194431393534022457590658338955490167120313905237621582450178512375488269723025850616074795171626074769177916847124359747068013500414137863872688780030559161375347277112532285895168027165038437096388938066763526612251104387811357594390448737619399872869288539586096526200021027994127523591164115226009363534161037127543215802353704388406865906873171500967028587272699218983032194337138753845498831309703492980333922759436105103675176661685725811400998145600127584692436262347254345044917553251765917780224716707411277569629456996656548798863884679608485971136296227163474081754998552255670468010433040820469490827315661406305326566131622920689866033809365654525634405703161814500635775740938278215230512233880208318667931580072828084396437508231064482537143837440174496470815101463154438314114759517798912591341546581679554055744280431156627954474299828080154377414544641218039516772841364349626163541035373714104231458655473661402616445124786618390007291011402914559530101569816094514874818588397227039375036381125901085383641058913431246127789241578399000699000655245633480850368939962925947360348604850011236920408858344496492849257564941411402657501566773075523573748813411647665908416656911572538686536232226673179545863069337551124709474049437883680762637688060781808356474518372252920973988598834779628850079262075706673997467222874163008265362093686584394981890983631795442019282951080497923252021060588735273880792801058769210818035050264209240612452844596360095436759324572040708972287550315545478984364861117565382099432179004317708444802392640454103759703915359582387491863237800623821354616536064956121935183997401608184661949037539273185774155942046055199777708311052171223387859557812748716754435516839397206681294023944904662609752289094176875776826425942943532373402870340311745835551022538315850287717662891522091081462467878390163318868214915707826487622106652065824995849207422264327769473620857281176980529023187641767457848959257803739032497214299869200284598300886506415434801280720564387532529454458333703265729874943300037069418592458429617632637956225878111558586031444003085136586732789013955233858904068660008872349079888285262736261777875364838592859448541932425234418554153401188346447895438547132009983119643027292261836502210498995274028621263526976870826994313558394325404988633938265914429050274433347159464404199872577333919434373958594098049086784902887133229450534102394580579918491305361019425737337344460571192560055583060565741394289114351914610041094094303275261863015023296991304988485852341783883914096130237177511245535084539115901373593555083926053394362529735559676757531318332592890133364165921547080441229893003194737622498803915998512037466488835166127257697781982468862997077068471593211699937032424848736022236306479574469300265695636393808081258829924164206448603927893225585938789288838188476624320809687931704600682324647796963709600096988211576277464222843000342013232425063318872543362130292397897529014437094948138944284224955251734538129769374429723691765528693167167271329492331900049858168611924136756708833067707458763352362996258228949873405691302481478717174351556936192839966684373632000937590412173556533523390335367150300408973462386104954077921791165297239562409950226680934359898468727172175903890108001539633861940390694649755249358628170188173006460414020594759422005034360041383173573125393171871401378839320728291455045848158622535841935872768370375707760953277300164915115620538283329199845040605064684351571511619477902996893996879260929100641318475458911793136203750725802497411526710387563277779342280847052204050615108331670079193825045413883293043630990245714299229865169020755873130876589988868906349181947347117858483820268294056583338395556922807029168087293884186000217045843363382000824542679303008182234515512612000717711637369332236076360543639920609826843552923903136336957491266115300516003574990283676303752118233021301203998064914756285614603633949755704907799158216012173229165242109994358670085157588375402753094249205058622920465690188656043003235576198979375794761669567170994581124860418638602214458667480625253189628396716478255003159587544943515823170307500907149599958492950319093458026047067685243958903160351897536712950885943682549272261624424414898019952071089792693669447162207983602000590345647209980362986079251555753340136981506421685302842789930445468433743693226709553278897408645351062475470192286410052208918440894791242701686674776782362498201259531708150297200435987922615413077822726691009099567603194125251845935445462820371031174556347953127296239788432210293456065357689708406928669908128801444120376515557263432792360025110562899981667110074554059932294402109816270547042444130464936059414397357208570247217005561401082760966370763074715298322266757599412505970207137040560195858011661144671633076006306714746047950776406871117640663776086279002110922972272018325978911097801995787636851230200081028490059663774109365428630507891109653688269708823228023335538421748722275258112259896528106876548913430876712070438312848430318859226351269457041765340162067813888119198203258960229693767400505461294796871265664879345688685455512149943993183192581340002318065096154089747606318167139856992783106859721584604869546320388859909603323942381993256853744859047325833869430165219718985794190445562991582469006102000029410074922855207363168303395724185908156139783474980796895698875029412058707156530838113983102062264138047114049402716748939234451158713975866209592993452273891074018693019243638778613092165918826376525324637052016482742789919012258744767361491503075034921033220627794798348304454387554179753401879187629938097616212340909819999764985116225078474931327109783176952834373391339918283468912933844534944401195341590109053252952007029621064371380025012221908281944655209249649196097623745156011507936952306591782062738210645121746278135839444146734511262623893752895818056947364162755924621607634044836458058868248744710487273799095490807728966439774755838300823180908710233379588519144209155562155587125185738940476323581348438693505013700027518396265308464222441089450165164075941663474266562732770008723576705141440457695625596590750605627509306953497823916625703374115227012037951676232572954940710665947768311060475954653963048601593555605939564715190041978390677149629711833086668086791403889226355824507537553476233077257407032782960834312162488702969372226951014843758465688186691706981507252848360358041163436903577018513437568302833799475897220111954622241204888690522674532795346257078680703159203392759769613987991216156267622085167581526359056355363798840875238000582401355420365463403305067578598825906821527065734583407511974368006802920201374727557364639761229142439915129467942784632839129031207481311796693730739091249170999063626217326310684684723408660253535814768741273947013856008772281103066210835628206984501109418062444218546206815365337181043093660513827792849510438558115456621327284423751142783140831951348491535045200784539050817948943219162278932227675390685744527071587048888909424873565209666916088358143589394402649439743988796875705849177377583460167969298208765068507161045304363845246854425145739774918006791704141193877021520968230353812057122223519340849995704309884801590887737239113346935523368169249129452782559099755852194751703950071249658493160752932271200574979431047171025860461101173465952357701662144096924320717651377558040834230953915078457597287323406032528517925499819979853075032702885268713916127856291633164517653223138469006927634776403990085848503949521824460330012528547963180935930435747514060595355932925093260881858122897370848715082714151236449539596611508516398322743180188865775341087199249686604292871492830784469322059186289214214289376324488168193137728278473701545727510840253785524161851539317698268458368804838451562413908141474118636346973613619590770404183502862412133325453023935776804909836119540447566987802667008037470799383832117904212531260542714402411142553203355151603573410860397841336095771023337707535783538718192185977054153408657521538678637775541723364814385279511611328361883343202107450903801880830711041869438109706148109899479936007146988301511860529889519054277818583226734350668643813268709090305737360076923992511335130666743924861491631485175836505667620473559691802180075244908847620400191573377027020790261998053274735554001981371518008769900112003530750901594333051891819410307059450997659057202446761105791449050758442673184019676063504574679929307877991495252879230982354320588696091252463676068477347231888791755747691166893593980295875005949958414596518385186966693607998794826909274278955272238210290220862624644541758432148967304717990060407178220878320107608657693879097799460654858258536615143747602916271471152684525814008266923086096267096185877891899431046958368149184652928711701908666046817439979088468036022471255754691167612312674362642046538289574682026756067147615432497213319444936795724778535578715228599396728853735855824164108946508315761510989479804811017497953688509117290486786576403906690943681480621475192525747623497172380692123453669721222693198826487617492455860963718126136307120978262859969539145793787154422836758847508599872175142761366228045210514683281491136681582226346778726888734472414490482335306727859683625060142024240593263382320705556004791171588440369098537701161509570310913506373705883022350389893397633772164672948207802738486136687952290493822855760745083979083500183637863432592112990302119660756609547478034153065556046334278834914762008685829627681016796769151385890875470250520862654181881236458760309566008342719229207026610418353406401222954094862603178644783543217377863535779056464130823256925207391526068514265134115246582760346396857244377321823364499880778408945929005674200133873676576312950064456762277925288477801214687915233182018941881763901768726687218405312221588743260824620491873629593524891491937878101642416730038588715645766633014055222656525367984436141707092604429765094803267564371329425034183884121324852802467912990778358461739348980302874924498175766514178469726402539200419532327751019180641279970142473590251964334221064210776005252578904194309376223514206583875118058133077838745918592650575163179543824567794878032591688449686654875630450587206699418528531007745603798866511331509162408687853876049900696482266347033170271102275515461014832623378509573844240026170863034253220118524150042766539383851858286588920832101858911610322973482253394419594578970033809120161498841788565800788580138484033924954859969199348347413497822080686707541291644441992546888600856195192296381624847362916333493955120199377388693140274541564223236257076185233995829296869206932643217947535013553435442948388219658232645753729668057534444315916508034430650306785905276818741035958018341480630059795698108727725449713347577611547093489519999227981408607867546015325449940099442419795389187190234456950085554985389945871922582375334351796086060562868311454496399626852821270422038112643161020337775017598047221187563232147543252262267151941830473517106356326407214383506230000118705391475793272252768654254577924819931032733823673481339158166850660427111834212567715794352976011345968217743029684512024762456948185454890227584955825603585804696130075720665428141555421846246342649544972745151902220704368157308607503716386126340599228688799459447490959858740350843002697915194769608653020964088215195650701403573053665496281700145631355470496147774175405739219754119610324405340961372838232934093466913459209964687426341889519905214254640124463793021427951066475455228875697289182973776346626694567597608243967184224208093704284779193771755644394606715192696094742357899028937929867506989644528982048346426371660110640600663617608468257930521836701409078643164414640855483268752518024658153901227818573685882677776975755971278722617566658933223257806205363652137578477473121369593772801361279632491910613665465986143753013957176909991721687264296159622339585723512252276213901640085137932324278969220773875918868309382473846624625655769952828350183018542814814150644057524400317245149981294248274706391543625594142777062861580627241251896130149490855668293072529033678533011896000749932046857231666154285377432102477560476314700954877564138400506332305391116168661978474833561362219525223802669747970091464994373932978759143878703987907354815892983909854237831078743082678397589758624215182786459343321662393400255252631728018734513905160257778544933482959649583544415297194197014296671290981348020631767477287912621170111754520211434428987199856225507206297493224606527232654254609881862591345669006563325810285712202589399338744997833308343677769473616914238813407329268383281937255790920050940298335041612909766052426615090222415998286056737196558895974300579277897026345215745653299956178520182942184644562010205905591729737265252244407504119236425558324374529198379653423286141961791629674859409045501252224106860929650375184604812272359183287733502914073974950781629988718004273011840354266183312342501020700226674268999730412570722080788702998538630676006223501244441831751490321411328404441411841192025574701261310526902404720751295327072196117174664542992513008402250615964052528311800425023382828700341530892190682608043246532796289504366067364923950468251539100580572782633458096728240904638009776136753002076471959315950656536553883321723007086233260574628668581325845137642948819485982600285809029209915631240636963729679459588609080538133300917673666170720969644628117637164713865097984798218849006759867242298351237519124566505890662233278347795790689340101698575739686818373271514887044727159567964810413048170410483258943788899623492260214547710602904823074521616927706416974269669842626613628813634200061565383385493792208489350286915494664302484743979868012401840737814428822069753035780428751782177347902529083784060886310570397321937584045795664140890500169794091622813204349988723213013941247162663152368701775378097756479646025598554070773601868510527441418222212735389026750047993411021440770028958293897365425543631943874189887041474232800360512460191187348987469360195590330140230996449030180112144153167993116469573141171517958339037355507998515340700953417606457942632521409079914310993313293237386102917147346732968531655440143298688541172677905505094465090152778852898603258955135767630677354429981124295109637207475826553141906462717689151208793226307986047868203800117699736449658545483212581176021089649237713981571687160802326866082503357943283926391505213461705993979772992766309801201686884110300465159783036266329286041910501576118368684886327185958793600173820656453843960741522884664883967099769275602152976505764377337783121845719484616230912711683030918433228904342803554892042146009414125088718466644591178760880901455833471147742829930761886194488451589741457492848568720406766745049068631094353894267455503109110606103871761357835355605072001287695934651555611475167570344255425136755652540414795903305764977585568617401189378717567065183437741691600936065383068497530017822704102311891786707553132618682305928655334766490177623653195081633866775592412113942183532340137876268127165752795372005287053218781074892548377307798384333895510531210595823009445154535630956761677093327683993549450526856649080099736705557681943704722327709253087810775418826151104216736924712775774887968954216334713230872921351669741097560777849774619408621678638409008803591885718537419394179248458210692307231190683183963976640224761655407905144166177165068923202067066399083398027795258651535217601030975904243026374480297324446491126267372683950016060740892187903187608426652771897931660450514110370022329713804459149242551534956761717617208317554359271145419186266135875877023481458506312663752585494602079485129722960100072444652959239644369349781324615243214746667301713453689574706833789315901533392108107496915072438903203689268717335210902490072234432513594073369164477631324111493251308354511094743264091944261465057480224686800570149823323185889531795042260146095008784824151632057974128647739718877887676885363095606761941036268213710618649479318232115716099936908869137215119810299188625748202031577855505097332613945899890827457570867804334342502303249434943590351305495949183504359216513132257210784794785942042284994208518502501359823467241318899548228485000528318444212053542810563584520122188315481572691085743212719963695078840122757515438687542593976995468758847704453396973098348477999484695487154690436040623372944668749132760681128545994534421201687867592483872244804562745410743971146798434619048168899061845811743797560692059704305599909953536925306979641249372590731399647601929814747327982345666098061773058951841373492709599090830731202393556157031470930070256437428899888108743242608740055909792357749699921515088370556629599845345801683671952767192225073307596327503072495220148643235414211160772808624953755774619555661062679691901612421076417540810205184570486234119118007597479694829550768633948992556126230265771742166412977173352288428516765189909137738346981502602386463963934503627009373646920881927165255266329218096168362744572634712404526184990033207271573841232354246723092159690533442745553130295184812392202832959126259242238970651519170846679114446285572513944307818629046264210691654390485122997277686348005588944550862107788190533608597349727752915171874018358021363814523159751697329187237453869534575579518904551487865079851903049832520903027254395524908320952801094317606057796345916233439105138873027789639140877367010139284363115600549080993889446543154263501875350944058876172408500426140527920468060796457203783156917135904024916117743418072286441399826260610120392834283608801723393732952354739399133872119686828879315877514447931240062014194664119776146332364402760280592949126744079733759756415785627842211057997562992711671536493172959284968946657278861131147146236796174763528609882061159793529575417703562711068476019034682737380357755138407347399642103584868254521797551589191310851963249727964124801309403238131752499673680280048319234589718215092813078457462554681124661189132611885333776683847802973971477810925081887461261609406902384043747808580660626364170415942792179129987093197175702497109464232313700607270121128154127055841741186487045738070406438325297674861054645693259196608304212254797385092696676553549196817516704452469580900458851632992559942354844333706786123107392465813515127040784836575039149300497327456049575064956758402777330744346952137664514745934990394039849056839495088859098725319038371375860393056790406867183922627624719913439199113486419760518544233485120877700025533425937596451111974762274775688571514731829191477267209758632178650799097352436568443129559836321278068500665002946070136275363540688564630932870803370220141046314917238260705863406953114975491801446701481358412214158430656969357905681285349913390087809541592212743684914378140992111260821188434697482968836206821170520956473794997405719960239328392296083392989175965889968959479736112674425905248837504612163056356244012294732758165137041255971416885693985508971112836973458060843898758243117337757118308392411052087459509524179670207596364128921338656368266679452609685402928860074725501229171275863617444746774924885038654650740052670331352838955645656880077584745817242691168979690192924019897771326223509638730230718334524420339945424073190253486998047260378957900952629292175774791389226290453406804763961039325371552982736417547362800043997706298886769779426292434921992657599602086739465215835008402253016384869756253173784669664615740331097580346133727561896817319071080140213897632006867954390965584602568028929818982265088034397049544813994418649943127389090596572041680921872649758797399562529843134986290911207448721604204649109135442694030645856480844649128492565744199453565669691774714593901434517291390071624593130290376200718470997379829754340011839795706421557856370306091153955238766892978205411255877829370241927700071608174328090635038820935918708165096914118647266624938813928189696471733722585941186510530234123315189082113836800659202981661007440931260970334375111318496334338867587984502589490731051618994437336460538457900914254052407048980320242029347124037497152440086320017037500885654904152842509112997850722774660508869001769576063478691753013344693325232928872091827362142227504302955102519824953617152207081741277440570273894173706071185221469591921907821980921026270336996060151719287412219668819200061842996943989084185345476683320686576342749003799399985678246331460951622056530748396900121302995371268330240340133820414346336296938988366932576752014646313422946451806218075328703437441839046247802977318136131195054125329404565093329229895597752405417061468990478967546560348099711554559806425811306122852910945660034849989019271258940439095921139573031228543845565974795953989264946642485488249557184423169186938168316186980279316079167643904868866664109409764616770165778489410466084150794078727839262039858893660095793267102159735436589391176604515986549107233759760920538388059505947849963469880092138841360316960370404889553839521922918114078449647593541810805665815107781575998195880531684748960540863642628478245554221875650314293353757251015853083778564192657679951080167721728329603090235885408833821547868840861855812511619068895919621302190502880311740865643677770721454095112320944896378289869758713999308190174955618030454283697185727360424332542760785756647067271072217029486862547700279065859843673585582544502370563518070136860367651731839266413807270492337015407829730637410914863601704729354521914618613846166281204573661106202002524104667588645466743376743060950933229547561503524343561059825321227836087230528774122646674620153840071524388263239191296100147593213845136312343003051034940786299211883661516456683898235455363568604878533389537802288130490333071075197203692962350045155420891967949203963544149688327313214890942323615776791551129716943576686395251288273069362582040331458072054309798466392019386697185199205827526197773042530021504840627260243487094520663257544600214782307855284733185530349622996749275637600006570594320165740545973568040649964857507165421816043238850204966057737097868219572873526906345412968295102150680870517709026054361137343592524152942302928021223474543303887769383500553642556084351171959705782685387789540408277936667507730645527517351954132510241680596385125315418466360593774396411586569124328404615747312676517014219269932720103092720357711581138597595918854092975884684693200019721529228677284542924485517586045083194194054258334847326596001812086283977559996771696720855336698544631279244443690619507890659652511577984763667624646377598861935738080946801358150257595188485283606480091931502369264271075328613033148434000099581642518214998635971326509992738937651833189647958349089973304926817906525734049698216697332408374360660738070268691729684107448045774414847487957086768432564993036780960526612298274888915719762360000099202587966279730431094739830121419168758650284823523074874947086576137157987817537860412938922792077913589233130139941812363488877095908315451612544791805295914400562092823371242577361086837459014914696231183846485939485854947009778288063244331780849308273810839562146797235889989702347516900939346875062488973845648721119346626867091381176650004741371780508650187886258695944053167916716378214560788076879359778520248066371777938729656864014965524453018413897853481854521648555058605845005339125646499511018222533106815212916521717939876390718637784072220785807313063500065260528011307302094732572906465238842263696813386147631395426619322900864710508942037044185279941642592961366035265353177347473918166358326580807759569355261726725554946035935193785238102769326141770613429208375567775748961669757873674545505093515960612199068751144030749412534691809180259071314750927444719933679618937731941064880995421424092539975885379170600587735003932827107731940857057071813841851715341128272546409949054435845258635178969797722963588610747479498828756476349663620633026927961240481707037935840962089652211932952139458388861304414819794562857059168591733025049909675922134394322676966899131381629615579912753243529935005618680568398243144428699682996560268572379170253998123904149708824037497851325575694586756262316148251194599618159996742229378892759597401746071779296502466437308814710747012486704125007515987180266147976135265458987334458786899431607913957678691624220003059889293372977052104887835734201976606221375526109435182834244804935866781833443329925763415294237137953770142847593429529867086521035261913459142636189948509622832047404797641370345645128794846535600990005214268939037892137629683081835164083135150895132950927442739128263378006993597988136191839355324002700591164836307909749355734670425811456334347947647848718217160099827257975076919402369545625495373838121606394926856777047246112388606731225157373536134817151586752445030427822465802281388490767862960978783948811324798144064102491324885488165693183953133173014954652153369128489127709764672207809080501934699085917637098901569764398386010465976963902045999157165401135976153169554446533590484838866260898687844117726727540273803339042106438929482636209504606727555167334934017059984814723827449815588813512458883055875288592078575738580347905389438978372931714373020690165650029732177861502433832201634077339852770400355855199019066734020204307627552682673170820759642359817356816782504136848727318420993605809975957562044177607492244991288913065891878278575836233196481387396215985912267029316490191303332836351629800171268170645431667816281716332507124156919114849570825540168926566679845267377195341250597802351951192354546547580086303012089679053535971153407505517010930331895887512431535041309370370763937521131286554739483733371597163946175798173648581550449585544503615490399497710694631722819757039839082945986346356413552360605249434940260073587331332405110719278964069505613028366113993982687743347455591207180711272981599240300113060430782336699689262974593297250088880954972423268293729315044303826862278492184139045009421144771375590605907546775721396105453697409232037848241786237043132261112733992295570024246364711693266330607920743568458148010749706419443791441832395922978843115069301053634187339953967133379542119376514425080929781833690433144716852970411844469661256424085855714655841828396514302445739057481436966448910097452756918518994938080027040326551833843438015403562637406836153301262107345150697897097860570166498661930053270714168296926102958778678402130169059915073874982772900511188899582693836313227856999278671473107978634804085136017064245005540040493387515063843970841592173222550885379868967170709986593863202641523820252832185154360734145461382491474305924346516188074508697219488476300391177431507735667269036105185389783989928950585181193653623149590081392573748927614363400311050146126257574433775536482532685918758505946439842727397161190547246748645110139682898762960563932870950229570217100849211699942216916534229897920359328557461068444529244690127651425497131588272448621097442497064054065622026809311496968895732954936452996574447578581004256321575538816674547151547166450729980748856683584044626415023173453154703871875060154762083988111125884723795831578406240304225194723613209330403987162970100056375408665331600718828152487830228652076147863760749867159116618030544915875745048908269570074473408319159345727973224687758451364870514992806744853597717859079983135705769814712664325252098934890339708590648597701494475060724003022432660107644748890649875458851756518893505786187857988675106074806804774781283680980500821259089707291401238934742045000850078547676417791075417380542882584726633407735303795878967838404215388238933624392373382853047404687039483000746990992163965480063408138798972743555255029097213613007689802847113742138751431527775026714158402885651803762060587189136122678542422126368454086798858622216331908275159365680251356014635347084912806801669774484936181326089151875842152172906418231780530220509579180978517957229578838009479909460418823765000138597899285951178525779856541103725296209033599111134918290469078101061730712335858480790110115181958120141496766549501894864168709027567154523221449158238358523785821255289187773589824861363197754273465977680324429844013559405515329035117458025265199815046615426413771667333709789829222452129869811255797193781695797998055853643657536918990481005701280944562884123419956589328704510518110422597970014806720454828607066818303704701820183192691023183927629778724294879391638452173993070053439927651947403093216964687991938906557280806748603690027488608457987453427395120365357219443728575229483256399408876179925018396399515371877166552297499417448826432627317653144386695525515303470178085124398191376556299926092180677109681567807141206862676790479434718689726893228085346045175242577876841826699770329788693740478432185290279531287113684688756258432084641887518409253153029483666506200365521445288750004894383382938200547584755166721745652914268561000769625495040328733578786657826622843270169617378852525638543608038309822743495430071468088427185141784499768817600779767117557136763294023971204220670260090137297376242834491404482348372691058429053612237086330995160869620317743751242232961378150672814483215377893034424961888796167789084866230593722557114126817514657287955675549557130406973090032395534246166394373145486157181499481764262074009002889943491307707972833173424120971381489341275842462574297063852881706243777326628178218078975696150771813668866126083623416411416972105124461143449078971785917958313503383546774396524260587453426535078554705596489075873409299303285698292067553096773358039137247677188107040787790807979591961595461773561485128070385930883644662520155214536723361024194197725097313782302101866695716754767979065733390456923886681163777974795686396012997950896868148040501957476444733115953246986450944980335447730696883989703048784485721069160520112232308506442292000716859007132637349442859320945835610300936933768517785065777208666013202163034755426934229569514650558554968529881987774002163339614848367817494399027821556662358527115483907902339660935160019139480159509884319635741308348733841618136933169547148624571809443776786236422675661011862718614479208915049274346108834431934082604700179255359059530361364302956477197138675286702467563760248966698224406156151668381309627685014093333379736563010384098722683187291844202335995477596480312999072951085341659029216594134417813557379702359035464281587514115681958004108041596205146462059264140277197111396590106725630913155122731185161042364651907319591606306892429928164639257289489405915803372451950588611904167972666257304703623614020671965265260681817872224575295687993273191927714992183862265007947318309243475702892374402375626614677412059408989483939110372728155519156431055191358583939435572109225814963401380412677759031481241094883573810616439794864187640744390901037591425970233645187240212987396788024975911356289828799810022588485549364660875263568959853651942129787284112619253700482137963621088939379551920606288788665972698119552070713504335663661226898105989457125442003679829293416371156056160069195153374573029819193806098148076772383622101612636755288157734915083295847427862441857454990284138031621732444657578760986550472791898269084909085075886428612562972173591626555010367670078793064470488145595847331758864202672052887903375064835101054709743927362128589459034841822720362070896997892137996770035564540804823269274252933648618839216621051600477632091706757702421288809038663102625694007394624891521418530005428596444496232265619045505786928070454103325224788059841259849068807207438077242771961295388103370989252905692173799486195897743743413866615132664586323233646340699793248619986731233601044535266810896272132760459249684986949757311314989793632589893107550682914021279470317159565241895478760770675300829588469198079186503918779732729810552764653934495069542185174796584000359038765366341346556775865177700631456276452399681750356860070711101509876083484871949384454730829428272146514094657828883514196063340482024599542199539468160353297584950037009984028060418920915588900147713559301852937785129732170010364686694111755322939837267971344213242508288353332365572639981012427988643616098174467745786983507231551648399888606420098941447474670965237985567865535100717565093119558038220088057025018489651550414752123132657781372037389396028113769178917440416058855861087624671673221749103606509572634883073857892224937712106205346884570959296087568568357930861205934008514816839745509282063564601309055526339231118364212150573969684129666988016740967570671847262496075069433110272496878224528063394506539602392961934478989061658159587496012487610903739966046616735822894506869326362747519600153188129991904880368492000804660261610548272119009839589544207181373771272666740972435618495207824852267171274343039696529692330489110065246676641560105833960364166363260212228139616849378712207818502757500538915156555288618428956824535398727471039965689818207678521255049152440988723907309947461073735072538161334202061481154623485563575156600459773858845095435211706354236927164581930112265446809655392006431672567362171643145147173489781887264058269014444275960217806993784409022454322377599298631209772812073565938037316915922238279391768478391042343672910372144560895801237079981435142467762267251529135935334062478867180428548293997137442722525307308304735616529040762493071951020862666266667157146105967364492474446298701563714851007997754356222727388344240943480625180232867769480244189886399914900962447940168158202090477646895831049684013529911563070087926057187093870168442812353107065786698751645380787043441227541030214701502423281821442235081446345788284440385459333859157788976780734168993041151152355731478231828228230460188953489135493431715275317973862954540313608226546299918548548039226564195383520269052315914117798870760746962255847140039998874544092936603648088165632289353753404110780524679979540845306292006956422238525233450966604715212458258516297816005412183802157197550737029655032394693315621507950045605042293224870986886536872029195248156774166193786255304132470985114817089246237941037005045245376259968601268337456191413631869098796015723782631735971450318511211810253879387630257006903881696897599976779745675564729070884671968026584237607685167315162118455930821867377686158953794192079252983061129218343605188466918043070803019635542391021144543104859598761687546057980956413416785975571315120410088466081479843126011217505813564613047600592616057944856520057173406154635302794150180205265709215171035468161071995924077225452871505252861373065773702334591879393008154779988654605754848123385590718793679734462471893226078523635731219971782944617675263065426643519699171052238331128944970523841246475014066960291949490999077900011324073581673379023177106872060939306923845574596490393471060766225299853964121985080774157214325865580100123346644867845481914044995256335985511085287888449955821798492322272000399281252000215956927486169931976123045081736232313350249222992090727703287345361696989038767997855723897117861552348372843264327003976610935342018925845571058080400855186527879163994062132059925846929634436149218279192511013266416627153310738253228037165047401218233624252470526197927405979029170284969314796848659876179404449370630202027248287424019778957287002319209953571520250665202721606564800533777319097738935017331523962567382664940336432762424448168234880594945311395660629147342460367989684836301062453532619142297000670095477148408329475673358505510035313408021649725313239008098416522536993423697955150747358473289291097111898591825593525652544532895784372677219687505089411693941112056852644473369005245480605236995963368400591684656719858417652468927334100408013838189757552653279294645874786577349905632410313087030048164136485995591111287932908459259552679584521520041063483373471466548631775063313349520219787515029953463630753826988811270153197897579205215393248453827377125941585042174649639812759585218931916916605006732952835939001332331769646609966394304082995187707712056352870909005203320767581300455047556258720456953394273552759293150595634027054064126075910925782013148831270757149832821208797144479176501625374459983741942486371501108490227619732181737489832052942222130739241726377667941104585013895992334055121091983275844284002644584686551323617006230818008573226996834702967994614475009646181066241646999904353039184307015836616389647601970324877910437218920578743114608913359665281499487605668346998949899150585869466774574595711589269476886894961666649333089927195616414368911921232531544067748435843988829699317043568339577024843375653275076998430233134970635117288228708878333372291255493799157183431103317364552340754900819160789834366967600090425433550504107747845956129729577666921359041351044191176067527217513431485826695085562490784978262597208571056307116128090541500955787135251164580980538960418314046010098286974491745607936609068611610691143257650215251651782166865882410077007742498857866583039695334885946450187031494119679410932893360796595230645190473629179084467884074848034999843657058258981275154342853749679157653333445147704687132293463975840243940737974782671708805853165895658531594634789374399225884812048727115043292837245349117992115368984260705904111473288942265455570646599715332706224276175952804470442442528529856577077196826789494849621201122161356454462942420460657934620876408837386437092892038509247232334416540147144399195086585432269447078491086057978179390294984071940460056857226403772663558734643963473184485983945787987979701381176078331285228426479924027454990144711229527328722897007562102044339356588609528642552052918399557917162472692755766994617808160639187575516988399698767471318530745028191427681731216854380010045979992249944987153486794428480322763772535898473319870784556507520827203033322759847255246214391099807346625804947423314234384192089745229335799864481849460625765724040279290579052866025273224149557994772670788297477009116151303793722199406003424507015412809506520022441243249099583868732843203079744227719833428222229264172032075600001104528445069310733304299308631985181219104001937397460899253105641725595123051976649619760765807711212386456747405656212782035779917655593967571296614202186890242054110807162742953460081577674765764259231929201485254831915707853722918986029710665858953236029965583934656687764074732647541156771063491441893613713875020868994544703043157334844497125602032459591123057944338778858367876018696869942740295033674045511390037258233630153919500738335870050433929282587561093766365844428038603816815266451998767903886062580909553972010547151521965689819758828273293852043681216534026150261465428058992358719342165410090476844458842990797534131107030056840570500651095677537685484579293636344618672566085998565531427855459300570892887061318199020220458790354021834509733112673695491013921749304041725251732720161226496118565499472165050564630707017407180106926911957320301829314662970203503234728389020526626175640157058620982935943514407971445158544439854534088762804243152692761200510526723950211301829400123628300049021823005331402389756091401248619880674101166509403269843778673153021753166345954837581501669537003162802056968390890137326558421979326924129155813278443794522635338944981582396405777914204533162781700714912470919697592552635876254630578892907832139549868103279820966148310564042006047623920778281836743765543408966800103011158015762488457272401283113051539353823300306058093011074713116932214589718440274474879558439963434625289407677082385265777845751396365453484819216513620878383118227438020724548332076035076159844166247033092725416068103106064521717150160276029000426612508600333936204156586017025049957364147225035122055553580811826530586328526754367958352683312476540286144670266773643692984084312154751291424341495911427729085628369060471537618096634094372255251794718569009561407314703571807705699618494212706380071135363596637638161762278234828307010990911568555509495969688486771180376948587312887298875909142785105765400004352065131595883419889343543684726123855477335003666962234625024103133371807707797915377960580525680277094326560305913792773154759759344496748683652157313613702602718088958140945262733901147939380377203688023597578065957199681822757335890124574947282120679394239401449613930716165154808904203714058538830441690678228613819374581915185414793929068438614637916387134334406801849523238567269738512605383895034870509959532525450049344372631168141838724392767625099059144965240795004433849137835235062280796281857628668550039917486941472457228269928770842460853532328336699356732097591633510295629263959223741141643576492086972828926366696673484828013296866442279505650247408956505488844773903040821979438346530095698379599937504580098126775992278191333093764772289168482201577399004682667676175115228932234806405723855678851710047449414949879359009059240686122134634263127071041830455937634101457714663832746982682942988235773182613338207139826146381274022533374363466534391412244129084006801862254447049502925921270441018502503657233049177770655865925420687141034581904547264458020103401097481183603121890782349017798970118528274054661811329891148119119328618305412332768594722404682792607254520094601073035855299801216314407331918763834148354091026349441290407062025192906021072179856952423477875225940523402225639728753729188541615996203772054831035532260465474549186543306853721697628325088819987898558181605481993250380226067049430387870730930778945451053142086865129593800777599411062689011616158328447183061009943076011112449195143283214580185655105147057557797420120561545407040301993293036223125947048506016626561013043647675019494729507873959731897608569187288866661918617747347783457259863023198938171205769224438848314816677752444535094872049190293168668718262571229964595937470839107264115232587596802801044099067217091043097441002851609401065798010755979044980971659627107533564217675435592435696480318526626970596924825980772204207324828553486922638982097138647178460821978293838114943757841191813352275719619664699832576941255294680766549675446178723302953633560136026101368519702369032751282419083113703752815244163142958611394817536456967392082782562928204112529481509975446405621101329921922029184877061635708581824942481436457269191305249904571903467666666580942630089524876580384010370982220621984242165651762260558259589643993601022908787815533478722552823932386771280036079320717023098567197246741393584892026334190917855215707619254504539181714085335162303522134910487814533379044821034547589618432520184251977394740006598927259866530066813264557079922546335294214848138858466737671541022781243893695734280397472547410065343430444000436197613151755377873840702618883978725614749957642183930881845312286054116060734957111796017913200995386050446294692094528059562251039244547646474892034762089056490742548260705986973712777042334370743247534033329111007443575912514760936324558450239630424867353281481656156851004461617868249734549719153419560196518431677932794082588256962985642477118876666989660014527524172389080670336267945401932795255842679082486515158025573709654354637662649963032098590440317163638536580326023956982513640290111796429585718551111940399156104690197973909534026365650440672348266478438545207112106543265610106914625025775971503920308649924713547901317125128081305825705657363817181538534033384913787675804502262562195302452625713162402533256117090869690895914357417945802409877629142498881696468776534141845463392454771436020676785719892720116471779944437315263219707322875421100944037148034584741927856989526484880132497718002681657345065266225595148153623947712374492390379894553576211290944350478051591925351323583368281695535311470329981664662553072933801244419903773331590616485444460999442368499890650100132361148781107805775190123704003490408422020770010876103219427568290556095543878231551136890406739262440029849861116396797021622610853154884246012767789963698594113568733049537417563357786980259375452961564274411556540186470387263970367959047265296031865079489632970335525402777710633130816690039769354201107932318844899536993196984637528415171852097584190829631964696876736157178810736661334097697149218417948107721367129738372065684354632060898934025062113271899382035359193768262860224859656446237461364570502148277153708741879002561666233605312850501185481807230521704444553155528815536501365769020007275032135607308840898704669061269854153338908852667609092009375519434465794673057044845691538341290790301894299198442888650108837339846162553202851842398205682537804330680783383241110625614396475987606332495924814165390898170804344608822617987070094718792637599122975335056751465363427590308916082993039295602334738290490812894300943282855498696717855849656580502999754854784519933303421308200164914862603734321371201321164927785033093933970511215195964303398458560912821058876240384600384095333129367068714307623052185804514917476840433142725733943733418874633759434569900855732101511477110119226159315489667227723001959891043943224196902391075580153266370024554558621088462992209510387615722582286746197104910780750178249974516559407552852251634758119310465681115544433996868597637595172033395251419803458857192711972916836519927147114062595017100901455191274273322987960529105391143878302295746827746697361109857194922640411857124343055735153246581406963699218106619771741693106835682648866268898529988748778702679622746495666250248562091562478463000151465508362599551919243278350425512250326249716459323557297569708916192456284128728044082234292943696446853914713425364220507093117123565986994499522288075516519457143670428804794945295314488257669407439207555701781157470114816028259976269328639878137324317734119524041209664396898335804435120657834223953270641966907221292315281403290314768121270918972172599867975192148452180579234394411148279184951193355378827550400421829289095953167020933308776648018291282165753546898830496518418015093706784890311762161086148544584707672250902104301160223993412140305220840083634414549806926566800881286899133653634095948793490592741226725376915351991942852289846452909737590915078423885823992226985468563219759597879837135715889153167178134953487482015080654741236033434701768300574671691949557610878865228942846386097802485134102641119625528122573716261379230528602786305856866355598681830644324809280935939387150655661231710068905661150744680239895231939548867318152543300833629713181646277966910283377399879773687435728570433878829603707299515404170143324816370025894479583843145367974908975580453417173001339224607106861763808220890959066730386715507146393890685098750873554192764947169999360230071481816126020703733609336179287218003990737486974622486812872544751682071805434997209926468891053777504616240527477138284490551875096638179357764008700266392554454095088864039378596987479677119954662475359802854849584215567296368302263017489611077717548574655939483633299619532953918586945764632547743365003665760777930228465199390614808837741183721188508067691051015426481561640860865653100509291232684439237705707636025400713278508800790286007129679592619253868859721904746475657176598668598926968176631678859479857000449636131784838300184770542551290833908287528769419186081018440318020274067957639214310384034736464723880791539632509127967132597352814410381037745473311908772249059927900834355730543682493528717381241167750912008516746049152598188480382117520393593810289839259725005718660515343944746159794746359820882700696755965250182883467836904282735700133948918089128764425633166080877759973595240746331416276040465987172648096911521103313763512641071368434046991675247152043766784832097365763245871293294274060779747523716280383533451394321966351519579571816264806834913250695570434022883549415392028481580319163676775966935872670035568561483489150333032426387722111715576087637672836903635887489749996729509589888254278289784723688056717780065264167543506319663318312400301221647731004389462904701728238578054783804386392744638712114243397052556388445496711053817456066075542935295690529525588257121648967475434421092126004173607872625042010925644845093177282387312882962979232265281956163691770705403890133847672440227599302091179188640659610653240355386965917994169081491313879351778121874489728853707131527432837608190165428351500282020763602902287571179418497765094865039166023787847156782285318055393774038820505598480283699156636382598838941761205600493435213477171662462818228267962971548268642358986238948930160787842187116481117620960321166532841712635915875179378360174995043341881225821304707629937225548692504567246601469773427656471409577731655410453560913103791295953178437132379975077197817858602961243979516463373374413782989336746661507254160643904452806877457945092531645119984833742865586362783877868948192898789823929754874278110450370760985013208764480882257286029214452660748429573779908867862051976436404559702202299801123944183790467616520078652708238994246692252903531122281471100984257661929911900588154365306580281287585800179061385862185474310047562058291135057028398814646832230323760813392506215535951731782919861325489503169355034871882840123377101806392997756659518973167636126559932000992087177807203669563164288510877227836426256572794979400782603784439995175047047170252624447243662128311919609731796804765843914216009594880373904394137183220784314085116001544701434883773393247324499308444370672716853818995972269067108667765493587008661719157745352859424314792309576006616812633271322838631639763106427506572939698783939930467609450542843382904367964083182087073291067526132775699600610043035641149403399774706213714297170924653239898871500133273144996162910632060071418089108261103331500732946645986301405728032692209018573023616303811614913500136374004771863840785136617038690942963638331126159774567743342883044419063305385805980419884999709872182502529894923828429013489655141399866175889242724164822297381376815301396434169667354766220888223781142393466308246001465716184542773519581197532958358392188178215603072630393295603639473109521457492276931664376676981822978252699941240898363994467516603117614235330379756268784945296780214443943469131707681901324154148778570557545256745450863596758831851000681795838367257448217140058140819270037140912514767876891525681894752984979690340486797635301450382252058562970844501622416908927895739900355271556024747352961219327867646066577179197257506478390889834207510938406152648135478134475804198372349747278482283175412218708716791561050853273397472399218292768385720666118209630006777409751665728384223306646884969105209330226427733527907152394429479765397006366529603422095741168934895261673421887570594182005480633577097231591858843027941869561571698324544643926251455775455535173010693856295133422702539122423924887577843431900107288932342082146945312487769691400100743358827082904890072918584179398115288871305539317865620014856456510004099725962345083867085429784932464328309035199978390552810835346859260914004427090292631479859172021868252415271005395879493993927275381058489174008787531728397392515799593124514631257765096984200459479655633460446314124301376005475587565784901860887569044204847907242923911080025928971060109302886127418276206501242411759881796273444740790712303149153728644674954442930367901356734443029618499979346154545697645766220464069620301715098063283961079658469360181708498311976459078850316565598574501055183184531515584128066197465505713391121366676612011258778288284865059732138976608334185472572549331451247808813217133527052843948503270124150617271141958986291816233105035680822838535003894245199653058034198796598116659660475481786821523374413610018321441353973482831705107642222080860662067054312321243255993298792661319758890424142399128316721920744443385495979904306088737694017417168227985993871759937926066871880545237860821304753153370680405726662867825413942275294929444865292457091486382435332148918242970806025939957025114834259624266501017644511853748564347234040223256276087578410050583903153034436014058225361747568160926096465631842739918694169903438972694053462157628273101505524637390474747145470239492099289629404495052698020440471640107426173826947772992884273178430880582730176002961292137370156434730540604204605360360852178286447431795316378518950472100276100543166237798055127477189800781160198896780638698908637116487008970227793111466991271140098445987140570532871725643768007229935659778906347425276221708275063842343922097461533228506504492191721877056228482041712605061918762374525733439775711249522092014089251934301068594762387513515425099747655223712521053057080889216939254446633356012120234167360685853378779020466047623794705394380123618727918084168789005211860179569959467481474490560665721177604436773750823889706073197793236444761278463966954693791005337213667906836610240674467199491600689221327932368369855671977690887413782956194487164377652923071635386327182041882761288617432445590874961828500744267702501230767086386816282190654174475131776574567428977333361575536532667408975470126789248064098360551153915955742343380054715386237589221499602648105498440798940643994553448733197999429919878267373327647324746002173172802814541813480459620340934788040621423508572506740832328158928664120865972028527524152606918970439380772656174256692905403367447220658281771370910483465274740886992643779052234531984395386218677393301896657180880437559526470708049138064078691831373661408636360409573494334042330795473655862615256133691513660429962083117116492602102606058139492039249835837031890895100021445345243267491877343623773111319467588286877462626406452445360367963848859030108785188444454431528233789933242740441569493425494651920628827005040122628568935560186593479341532010931457728318130535843606423426428215596294879072636090817075980587622908082381137942441509303401265821446931024767133367616744828179989231092436934197472333581865098859297103202758385898920923189858541221978183612280426375374510805451918700165546307710725628332216796170493554945141141876033067528197625147834636652143626624412973379691371632801681702397659141922939018838422497312620447106046129939058983704644484071346452791264310359784938964778690230684732992539677042954664064664149565677771926975028361039456767827860069318938992985544531557488643756229696151004233085273669050913501372322297264134220511567262102319630333159866660360750765728195910085283533650038077416419871183761581214566806164413402637269299939009021529023454920835149362082347539831570414143492687701031813270142328230000325495872339741796608883703956931145275336330323656327242759328370195529619228378766289324924061346365564105386007702705772207794120264291734676545232287125240762582204423772594617178492661005327370809950501338884280779901052039701634330712183438262308709989432923000416132310303086749652636439797059284881021422479840013942618108113273315096720967827327285253657734813300166288039191888863565747897852920151302640259820764127841092906232441286047969115375714825193340949827156961556384039370807697438302240444119367751154584560461644420529524329502360491020190406703293332670861309150565400249434918935159351237202484423698104328484723606372445804834716362856467535303150272567171075459974855133644055098955910239903627259636170991298092390736783970707302119050837120284810205698763121400554004752007048662666119074865587408700630004846173279026570587055898040429554600072459470633017227803419705009163105924745985650844752642545054857577067769907470216342298544245368403279618472355529834848259343803257613452010239672079607549032011520452362159274067711833353375687222792919411111406084929241115240750705841851515242399895228849576806025990461671535552092475162927168865154294067048811307888250165674753272869175076398642685040862065235732619196088937906729724274522825128215720539979627413405397366544134116042119245865833098329107172896725758461592934177497673026927621514528714032006103728455766575959718503691182977298954574711466036053495796614070988732112467102168066813101295927014185356565532465797365649974845438500576131098994817669327689992217306079101789266725589842835487698715391097059880875149232271258892519345554181013784065532701869471128243496124714745158977880959845977816512430186161862653545300316848844026321634661256809304803323482078070931040963722387069790864205109737859360075348480387089564470446870121341263350872063500187796008545841827617191037324926058694765118624820749121561835638590064527108051342394087893588490937392461306988168950486328802558684835055098228727893593147169249538875721362539181552355029740305504719371357710050656552334785566862174176146341155011140665904783828976140274452111069098790074431274450425326847883265461443384656418657996403245147710186751009884852122380892387863661333731782963942978731722702453229085741848413022782882036628991567165317732708077177903560969427114098995719861860652431797692665321996954163035757609671196056405024448382236528778869643197037559956469321413304718384213271070031230653782917287634701823661128454139635082733089929097755778431863376087881226538572087632021717562173119614106956696831737920759080647565422051985487052907409220309539254042312539670576576821451215814158943961759083119041070284123086554740587672677870952319441136509220264231690370462386604355321072917193952703477285947556612079834726409710237240822551281373123951464714800287363280189828736949439558047699128660014287447635095063816252253749281772926246140346877766355161295124330487313734771292009568524426865322680101430163502331525444509068864534178044565467252867933839448644319862986214921469103811280113162000587620150462226043831838600134143075839892669139869444939907435443963196081432228811567718315335964265386791942420135444232300046656474078220292627202913678340518046990138886874560597421985660258167021992049890726503223562070272465549292122419567640471444497288913913187727627188716573596675831797862013819951114530642229904334170025017999270143793951168397361145858314067777087333301194805748944322939651988217883699560056610051745075772171396031152029120564454003757884363579657954864154417199452794865965431877742957582512485647307273126869486958311375060573257366964332860194973242011254059000039220258989895260437982776692680893331499242672914070021739814242198153273986488443179992746530581389007531928552580526026379330662027367792787084118823242753858113376319082113086211801953495827834688656995618387930255751344360344723795179805743374409564920095011937175239260622806758322952852359299255544466272095802657069802782852072046912205873839934946694657905581392023394571260192936303251293125920318854670280206541330249890626832166467551019577496883827939343342826178367701074524655752982714078547815081754141803062609430067831843502872842103958074226754752842998678008898791788334704394693635972282053824591831959369531993699937792519937649478116690982941886339101399613293020186480020745382813509129927506404159972021986469928045520334394349681753639481831603740140727129804277039999562779868147652180446838559869787763504226864417304863771189861678095231391608075330536819130676667905919219334365364783140602609975570811218926429903452408662884610278126454909161311817389700998017858360936467049279589963391033281884906609326437078908746850666772048925007974398579936474230801643474280025889543534319750103704814908878490495718533678098637977792833921792434795188987450350229055404852676168808402177765169042407579213804140392060071035670530001289236539828362647401448577543610489884450465026624744541555331840674874786703681619617403866188433073818113819687369268481750691966533056998758377109527383326737800385214526347830166500069312334931296414154878445915850978169344259333440115895183748758331362771495181224202463855312238490095513854585386832069536276594475144655950859405582560053841624076505797664001094817981187774298129209698651638753160323313003804256902604668059098854695412634992779102121534394734175506198652349141455360467613254884274766991905656593666899297850453406955267176523632233261186954472903331461183954107981442105184509001471750196202233901026275152939361381737225124881668762037581549393631768674611154383783604085665140189305579367746351065357559871113168659946938343503730364546176771773565117365313508306300088751575799979971521949914427929993238682062588632276266840806271069017327373513270507838887801359584618870048799379770470182601020030544078535810667585817194017363663427104773271803925146794861912658625150240950858173452784334643986285067718763150295921559846897503945842146871531961323342585957556948270150003119424136251428668752769919057299523328906233026858889014215848883317461313353920145368394584541590525919058064817578576106058887362699910574581338325970344066613654651187552364650435927492401437279557278210456078774311290876809211748331983165280720823599035859200536961504093429000403324710353409460525040197469574793752344725105694403711895033059715604801434115273195586484398413166448788631964086223955557654599149536134461169558829133287367221920955939169006071199156253421402068589365512477419225622594710849901949720326413696317821663907407390636163419345439235434945846265957834602813713994242371415224900406989235179096153027372504229636897284492947712014970007395610329653567133481164823285323007072058810710809366819905493084713640936421309038425909201991455365036938812496263820182432139592958478223545457423374239784280248942229039056919736340408790162339183859106336680927674586349659060603194316760758316860246847172366226371946722502018627097440701260983351011240188229408601555453975039623690349144329316924088160150200551292657910389170559401496984138345696784405977792773844159699484409071698942488122233025933832658601085804944697409725505395192769926813571653474722304494000400031660588623681245817739875627375914794447224302014841654769585502260849206928471895481845662320709967084234358596524381007372635329843265923482728873463995193660410013393289298548897901622700837184329051882003249445864837936869979009355068247011218545946356240076083981183364770471317839504917272386779236783934040778029745877436531908982533465435306766430493597130221955404407150369047989036275159827356868455030783750924208655332658701146691248185306895912720358835269660083913367218872137667257194560351446348905797776661787008702913373582670642287560708545255279768154686244965084148088446589741785104237734801717349119152400220060512481219824653273423391893511708751901348828725541528896041118094442391469904243201518783464246438692480495836986673338348904171273957004073538631858762770403559974180519499576784403689620977345089336121430768344941281909775274519949838790430757825281012605648089228255493125374433187106784501715253841501084643815355287566347946124689311194428961631432886840552474501195179283221198950529293557556186730544697167708612780585632112793211301772945883888713289142484107576118443481938401761083447203045791406447876489517816351340612381658088413281942090695426428224592840744224733604304732025999339661484748769496175790669847716797081417902943674086978968457525017343276844845427402019028557864027140619145320750961432186177576245693441604141736416294562999683512904468196065714509013132045663880672264625556974500100094807632173891358578246820558382676306263852687814331706084879650931167068658413859789775813108696182302170910407405456439371067426443853213561802595069616734197877428227889598210776178357137962133081505054675270737143219110132487118134393808434133961397041204067418270777340396842093698710035309130884270997009707098503649829616288894715341892595185563101188252751848789519350720986886639588605428958151367123415877735583000896969458849422375442641879525638473401521312701860677651767179890265995242931904680503802593068854445175608300408968953102956131010281560381561929288733246747305080195344292018507060261104686352442590548963874022200351748759755819428633665516053141655888277035992694099151715346676913854802038234806988791469490848399355073728949790085326559769659202655488713751057676028994594573901131533415320773530683788110695519236220279806238768500207662705145703052469429530732561664208078063188785335930023712475280282813376037362870567422389331151472318355168112949727706707441688858047538348018236004105798954159353773218820605628172940792875738360424327360627831941673694829056772771933883043503008686846096193411943929463179244594762629065740156758230007055871050615263276994029211264428623754442966056492458567424291317225940534669632444389787985617788697949109587211877368982101082121282907851820542680562934938973849534801297030925316157686490775311550327790862043322168304515613934237515858239343278712405648279026420495990838036837451983796056529929235515184878124159103680228482529572340412599659649692279395378520142048092115050727687958129093390185462656332903564515649383740929470129301350856071416800692868875315706656813466638495281345879261899536615459730964743905817054226287568442235571796134379825226252087736404705912655904254605034482913942099526362324734057745304513567884715672642195088523949412818404728834178619942329622787251473602154019851416033538880297243709093997769358099032596089561221620661622197789102219178399012316701133775968512796513499930606609055907147775355466691392028090152723258672641630058553745339167179643229189957643225833282980329656528305883111001905345306275473158908944860052549287282930386903696938561211692612622202996989837685584573010005869101298201021571532160593482704123344760437753005337449957429016241928722113637932208443390253451303280728216142502650399080360765731288949958917164768672143955901960570504257609499109446554769220969059938568806024050239638406887447452615305844243252373548750903778772319907278250915652982680389551356187508401399096221570444238682779645702479883803446741629190773022211883411270211597090062247564421559564766516480865140788395108968380642514200010369248730559941777895558397565872921033556918434280020251858651758783475828513463056438250991194353713857849269712583690206838527416164297206847278234671550591731459149295917512697436428815886144472370499922630308582702691186485701806284816785220760991416185256089564454822377541068840749855584365454763461494797994203152615692782657165445307029029460631950484272661913388912637179884963767888336885807425350259047007951337101958554722547100535533549673124012134871894455286630831013704580500796672219850149574886742212425622266753261014741841602089091768790460516217124702661648806019089688378257800687839857888732699969127457854074010650289190252978867732147067039090836949861408156309371200732953963681935886069037212010076331829576629673498013302234717685443719112337291386304968716629971095554893956336353281512970916525872474134568503630567536797943015044824468452170013701879574965411560918532871630539491771108779142890278205805282352658586272686993334135000827650185525268022510955835150193950532822893969859671684017874407440003221222562471334693366534414777153807312170262742572408524704633753402149990011746332540641411817799189310240646875521707663697824256236217555767709471279281142375947397777018674372627622598426910911381255324227954957444418244329546341325628760937499576350904531229182939374073489091145637069432099830412952485218433153022565716442050125441767495173408441779754935546554901910273435576384810034677531650717726893155530727557810763993652406954281933347010856233531057526093606805961870696716819394870911285605378499877636890696232710728596881280704587231263123950760833788475821573905026305242183986147734912030906370634433455255974691956066617155158952657649442781315408422612863886548056581151362258636678120161075310022869606617368710747243572955052129972299249077128916477498471899066549497262509121950743206173898259857894676529591462520144201579988699301317106347067608242170581025093185285602936628565061872136008389930171160356095316178457425558931343488504529572809636235101733927438412041108935385719084945021324367015957620070235008550985096081485856871416600376851739896294648203983964768233006136464774536330844161210493581136946859199383172874003281091294607685168446423615997241750696990523062582260281621726786803652426331261208944300175553212226397061801746032944767926965404336200857152452179826802217652877197899987157534567327169133976955033884570019219496297335819570211422071220996521516163764116612537640353658969791275654887802812586070241237936126164024798711391675206397822698951670590872150687881485432924323413641310006743078211255165068035092520924183451398812666718248152406464466626792176090361887021023756598988056419971442092561592579582775716681168791290190468447326269970970704120859069640011246285782982893309351927968783922694024639887348723471319300482298685559575946843726315266749989216094416496574495790603182853522442021092444855092702889919833585295922155174054797516868397096250310366640575531395541116961018245146922659961303554689009989949658483507665709518578461918016456553248550032187025158396138223833172014311094429452170739454819381418135207969246568435577057365998141222091465175035973465573379687029687055855208042733327560303275108253724333736578364655731768331149612376323947600297555674233325056741368269515516597871035261601572682791659460765229055415749375302640149270994039321636209455152894084473335265029838205882813467797191535839203059697254579007039337920792660225915406060307998552704697296868273510466607851995404817655622547402737212348875479372356057574323667640426461586436360716819297762042377493132005080847060328119898514398025322157212944643799595431976966099439939406541546486017883107156899628021172932756533462856087820819029728907639521491506490968591803466017695584164930365551135482472702000184882240650392249857044940063533605496647531032822118766365329226181957338756345979427306846583653784795612620911584206185492676907196092723061891578002673537293845185747388410332843791373551550838105732426525696279411100188883015140730372936511014300288958212703698127705255212239082980118511171252093951109316297436263279388015646579967565105821192888441361416157671133700036346864900208698836388521826884312735204124460239767775628999488771278631145282353215814132987241309394824245134765621832370203019780012157805304608674600345594531370135232478374656349106440625888728510971147846112097629729657015718698843798837088177733607029154711060906904789600044244251182544377606905995130389542546281642887753848603510517298287777693554408455373935125918090795763326092493692442596822636217090583541306354762799945137494791281787316333233058448913909727962233623184807146857014397866558364206350862540675650794035366967636769466317254835872407838168603644881309776349659408128489785888109432762949544424636817511494822979183849561548994954697282532246938411435852035855468722560248679759485136300064417641572213280326423146255314522045402141091243503195254084795776643232000393139874473218420222733638799729189462904261319221358922942596929315231164418020585469444633211112533336177297123850556030350176769670095978218894580619487466255547639599671245145212951570286333057757705727716723186139457534157781022133884182466248163719866634630017285246629818453156486487828689927144561067167488688728860083815858837259102226129227265258643579469706131490107196250910162357632927171928228468077618195414769628348933188585151861083141990007324813187727066953432212679926473956498893666208929736769909240820888195336293966056461383916042037643618511738835802976616361541644962763954988857845329252055398915764730134206505871130059248787480854770241434798821588151221847010947397529251400499733624987687789117436924626377818320364687202404700195719539972684074801047882058745772654825375345220410115143523223715367847546931834965459321965741024085356818098656854332870656083185907300636569698067362132420718490363242816651803129405620382865400227482919463162765761010963276055471949567989359332232297152790802204304270089446339597027099736098767670326212976098078022611713018338320765503448151111114646626228274997931928306546273656257263503439866957166221978253141812612975124699550682308832197260381110464158572533145316941379538669714511129399957190572293483828061739418573671122515437578275380318588101915388344491222027997471824822117297981613942655813010982988321366830394186585971090114557800640582870557966873158560209924019284827297656332088703460566127209621243518696916921332515942468107054440516108596615520012971022589476075677395038953751052190889318694156591833482910628625874340153434941667616129151618553129148692311663579835744558863736563027470818407799942126742773393705397016702966824207315717114849181499374142862235623230082394858260580310263016471164917495555473413531199514614363591007426172266388502158694409310583235055172948326838838788559842505037165433816401998551363208839094915953050740670294016063522632147255254876691627132605823240527780527288552558634915510719637814187925210340573268846860591351884860652471663918897162137250675528379952276195373599700916719035892277637355777164906197905061625104747645660335390287830065982121468195637233176016448050278414173153545736690362557336139593678318177931784476726603480020069885459656875832421521169824337005556983295078142799449681048872569078954725025733431191237741464125341302267705452266303650727352018383449865269352981979643202213116067505713732982548751895818337098145426039761247927777067814136992751318976350323902473205169148486939601183784785730006084553224358372739854535279871293911339059466791704178169238131898248467167485717945488378095922059167937189093287120223361477612379869735685104907207086142902411034186800625962442548726963822179428438918553892146798186537242541236231553011362275106760988301924968294906399769870353748749081373152306715155238182123852483038862944465564642849513571596338251439019326419669314999236645190709739607847271024347062317045934820869281967592947448528872622602235140891837110510268561827585709271119766048389538544742016736298762731164055402590996942609730548748438432689906514985004646372846150580216599368339076235879662704029330090171911380219182215594185529068341960918324488606888409541116680921316240306779499069426784768286335224893253198719930197895351242585586316372912405830967779615120097925495990748703979617885507463942228023754575259271318463034370542140666275079028817777892454363402843856584289265532677334974063418893249381829833387473987233373158628683843907708595274954032092965205773596829740312918646711671395307194505437466896579682299307382113354770840872948081134149094959236784297249110427890661104205875188293257562512449033840770257697252299872703453519605378713579911265688328252577132509351894270312040079250295892628469559808173412630732723463640828744278078459657589107254046824500407945989301068396238759395969884482756879027367089708960218086316056136644635210959470288033134515639516339702761683002702097506016204571747962398997807229077483701758864917192012441878691310068878411572989255218510030703821058869772533763621975058302177737113284318638569966031201828901442035438391614189085046047599348941489464575270025392420733816633151954770640063797982019880849358218691472221829678868739137787940030939246667438685352862563339331742312295513272913604853421639227909436761754213255739788733235523261534295209490559805753264051742020986552138434060536146910789155113088328139368044543958196525301590531131026573526737181372161283341847273780290120488520605797790778789285015465793112362208972533948178269094149787281621263037331168629113033265801725044948063969952761961355016830387079546267041044934197491463353637176782299530761392447525730704237398715539771022997483000436488594382490804255633867288481296469286545872593232202890606249103075254779170220810163715318995986379869203733762144032574207693670212628850688457339319557463664858402345244388920256124379024874772200083430098004816330859838433283219113195265504281116654130577287599326868693934505782889072700981108387972456585030643050666223973040055196062785239849928376932417362158185674498022655578173912313786011110700438309907891434978861850567136694300542542551552028408559483876204736793083840208563607476655109494401088960160972709439424090382679666109682525314028021803334091903310780204491682391385146059357841924118058024385922818647577073827032208504602183980386676708635230666387172632941032516512204297431152035484094527878636870740923258317015675899081375470977762342169716628260328180040317078123045170297454642357624316214732140139801566089842842149490792058961202708842907742780717233062338496074030273846676759682639800783834118296960124040866114790628620712596459009398702889786159475542634702538900477573880371930716024288757535869650517920337318271193276825488004946795136731724781168640854937055362021949811906963667553088044219063101499499441666499950509245635028392680166150686888966881607216752347769151333063922732083441631128952363061690562025935792406652367351966001037852464005722345296532752495225892643910176391200715070518131107504407151125323839148471549142122302941105700460180735892368771956003027922339959607712921738367413205985426336224889486724835309136450459687915950327255554454007120381501659643712780216934691374516315177460275270739779231936572157385470007156624050192486410156967131413549836901019854108813097145571593996155574992799706950125306037630601793214222072357412790743170998784201382579082200960844773663132341312828286531297109039291465970110665375742768527830244210570882301150061925399740994276525525554936443764017359179982269626946171451148699376632174122582036592874709454778047079242482278679502368057427767920947931085344047352420794708408055551167647376297218897685326391982763092769275752974455412339760126076564439045784910465356676217638803381798325862107607171589050758048637799965322017607255249907438643820305145786512054483063751878360938179459132888273781558526510674113145704073335768611791668938200312985451900729708454361599601439508540341482964985394860200377898451057695014317181461519504200158219612963193854085162595013382399738822791943817985685735938561269940311160806758864521226464883629845034814080747748629433950459894169426084142910513143080466730830527515839961186263158090864586046712158899770919149189167921949393573572942029937827866706917551167171078244558918017516178368876626600785956947178152469108213812378624026391778746437448595479729564755244769454640022349601936073044723944727841041595429477343242329540752177569188676458411145490005296490036396673360868641925357149010092597232245248614645429042949159086611720885207381623943549805545213713411030275379514459670377699787898978198068908725256435328119498732098407328580187082448092546214223922559234742694290723478858888108974491947247216866429025792969299292325761054202289193061301419836717131342045926812389331069555161593841358341515326805410098160325902866059517330326714555663438704463338156143860594999384029902156696856301576685901466546285451553980046356122149382906660058659898545428571049880501090352081933766973119768566218255782411561795156588976225552355607624740667681397946245799649502214004123417696484049926413444692064135689805294617175876821656954409039187268546295748703758388712925762770129506168690670213880999334749115678124396841102946796862007606703004895402426138211125529754178861996709811161620787193677651370735699853848265442608993126415931009505134992979426149156660176269458517337268545523280886199555179746822310428436808486103870164754739783210642379107997421324396527589760224128202634064816149649992095497929936989948017273712315600637127726451770472393294384772900640828401718151209073535744174450838075843256579978716733647719350434031017014364241321087196914930959154830973000775526558624989153425244832941122959024746426386117656702387701074817037312097969733118967861602851407467943631193793877885183976896867765881015272712622767521248133879281042253619870508107393507515251816675959729893373354741368747501430108908087119716073437719199394219184267838315527440656733500784969579352092878688889713288526745927387425479257733939955379289961964135743851147242713781373779306829124039053934577663870312578828889499730239725011246801575658934678160725106463907174547167003468343488413376788856866765325840465168541880247787771541859024311306388977721340558830646839653740869997262285121332627997721162595987102705219669760387351778940066500410080058380764491671712395603889201894951063556287175778703578494290724157250620675183440549691087515687746028615170208417054047309644912122895409946354719349821667481623185352111574014991548481246883881863973621835682788365279997144770016693910234245478876002713249177732097398957707915667314369980817208713035715103568244834582318431927705649193481166534603563738299600493969070343870925397949641758101217092244508070034315488249749926810609703745640903539293518631357973299458910588481372734834479151760344609284085229177897738567579283861599391553707208450495099911720325906147386172446506221228511449593255335420400247599137948713062932566189632842534969460364902181589634613553857379463759914330833173414958220311026178345406531982857625975846467310805165968689614658199985486756675616583142129854754311360079072346109806628011160066809039616267044173319639297338746529199995428311377985652126388982164702950786988481523114266507869892970912678737434936634747277408309990539683165016045626789694515563672909660108005022502685194530356424112385338702089177734857582403486793444105027380746161492433695530442522874262610780377704959398725621748308274553750855070118973759084188862993682640928553912812543082380341130185769173424277383502512646633180842096490745994391729768654312874125299701226123806901550864841404417534333206481825191546507963157146248436377073349340157650614704154821450588649111696796774348193688184217020990466450306630500082225460760017598892397252050323103023972019086427856782318896634574478745373771246008996565038376819352158505817382952826680231273734724665974575634285250049374362983441460568174766753828707354502392543065465269165800116678697761575586688941934686506885170300099140708517322168788161121451684204596433281362159552532761493434670368138148434301775556080820395075387451400640570879954276836430064408744651159647897481166599209004025529670370907974206909413585761525684094767527519693587775559594661901807099880376226722087633394217138438423879228068468373062417869060240433957116027682689368729736265503613655696864587879569636625327726029840784959572351569451602419441184336717480470517089926628877992487917962512471968338885517152504070282281754417545225568124622341881586726654733274844120329184702060123104076739218810949150802574266783356760887382715744511358105882720657132746639414567007425243753385342438353681076073059544658603085509501321450542915162378242086611225276347681684598176564038503237783982580480615660594048022643873447820699154334170469322882337731498561979411405743449052771469092094079066278327230560193761467591916067223790220759771363060740393090451306445028788947878386243584702868332639963019734629055177698911719416757222540285813889118673953812220808833604710537534838660877758051016501170566466212844303491227146170369100661051794272011727738457641614250802322529532078211065818036196871472829026689783913660004342617720154793703039492831934191211885335828150034594058957374108130138298051445894945651040362413854012411827582748739269020936468167496236364787042049901010821967220970173423937324447980044489492150462965909680384868204774776393140457426623972928180490422249952080776267055680729359634664514220713548765793434886201435910697159163436316095340965668260652806018448242668824404550669482179306456427007626253287495528340550939762993873099925644779508130646593601204129509724650214434961157627428395402512509483403319588476420527967701660492014500579678933625751539549213863255193245059203835665123522951134477755667469699738716842985579624603088913576119430627299646272081812673578597303622389037108273830798074244515528799819836695335899517898044678824274358836583249939689056651168207658801473247357660672675121746645848925377505429571034137953539220431888341094884881181316571011541701469925789256592006359068525968127472342999437938155020658058310594184205165724948146484522825784956677427331554391949475953847333814369384374268490251853581556705470918932694161042090266763026967116796709959594047696028490862933446146665506680571151827546772938642789216334999390218856433790756085933373066688925516543020180873402729207609649642056233748152169183604141708114024763257307434746125691460058655099621073012954661436708561556095032719475844567724115420298323857817510406139313211686873994187409534465016193093682240763751450159805852780814368366852135194247174401178312452874788077989063829758329206819637113645040721198145539085666660910248379710972649861333686049875933573215518952112419056421094375840937403149136939210958188194373115147526326233252753225364178457382216971400265637023497005299779809383731356148122877706447807171914989117510746727297824614408582651139601865904733612858431379568707255102510439901051820310057089082088945919807862921451078099163164295637660865528550031733374318242876155082394027113120864419058980354884962760528717714708705016642295249596285064286842490094300890378343625857829442121312850902259961822698737443361359858083885871631518218998949165133583283472711181542435352527524370561206604541744799516042234353411767529237515494358416148713717403487319188800109086141874001296333377024423694416078481926079542825735698152244204741561435184346491222457162125426931312101894117969264715573819482737133524271855051612014763985598717131283915133580619479572577446329873647901872469978077417729044412204273097572968568652503347396998761173994430912142715472478342934728671243225369432845113104024681779059241495235928522699568700112454625261697382847054744411979914577243138461268168229966883516278952115007080772745519014916398598035072885334038635784315387217142767206826513880275101559964392938461329884052581133456598552267275625628113977756160207845301937848005523510840979991988386639556007111255189410302588837333191991793006677920107625949627728207594040704075979789789011662141421737696355047888599848267746473218305306874464856288029263360997267079028573097110642896761148351266534576710298000905588413221507856359914802069459958504649209539471446201582887906790121514674261385236958080148213925356707869353249821094194018261321326746414244475896437825364129404561465083564584906788407578854862687595165432547545885690254723471915306739929923077003218370599079118821358297230508703103291612539401644073888452112773109000391585229317403255259978629698079367911520212810770593030133878332148122657513606348296861648740567811383433521222916247449750688287003244566588366721548036280681319834695708847584454565169644895026813198499141046641060314743006310861956787670638452347218833243429568952238585115423368673944410459031722654462401550234685344055810775564905749001827882419353526514880107940024960934384330106470636682413735732424343067033907810866217556457948406104557313491835773819971446691909796911638097774038164814654650245683220986906867976659648613261195572996578248964291000474418922919420462370944757023148827478194968289565977784592619668685576804432441426227160271591918173022776788296853638543386500873309278969683166178800622394874728956783890389334941233822527917686574176911531939925837748828280379123386928927729199688623374613889204987599212440178080031148826744892029463025663413650922759125312204683330628867651991042040681495221130399925349408503532540336563774577458872422056416036250669293083461924686740063809662461713088126438091176510344255829177585372339816566489138238641232016480165324250594527739030091538951031181799012381332110291020858761918176564794676438154369325298327035826270011306579845438873582449625070069451235787534460427800810999290001191006501147659302675611103750119958404229295687540031471254538834322265417322781787277132609635001876776311787210604740313098597274117697978634329088404441742083583745565837781642652331658561957480551313397634730040886544351163682425852490355116915808201926990344755941690211910890483440354238803202081822063939664504601862309612694140836805281735415196214649300426288414631438496309390400720626090582146060487306053927825246008014434201764582078522079896553556609252685252747520964682624541869570439148411131751212201862599300269363049574701178503213982679992939822865779588134840270646462444005475936111637722881251463031937768328486736292480734737280497063248377435740472756327530018590768174596288865855165886263067956037863292977808417841826612208538911281662546780394270312852352496039783203903131197280110248629109282315392895369179530553986943139043536149636578764367609430845415710709308746648490126811722060451772732304633767043249115961342180738017051803130803952578743312169439596442441787709962500719000942504275296908786704200586867968936730254857829192233108014170531533295880273877637919131670600715970992521765499077005507087001042415590703522403966112584334719313237795070782767905701120135099829324660317374580455819620767783162586972129733543304709237794933740064617894610153596986993417118181756035440322755400488736255916483441215821795017114725386198783787420083022073998648600183771782007007808614412535006247181241067737198948651873942218737813098062291284521272062286972039883144935522422659708273437949323669568209116429022193982127526842249317285119214310434520146627586505404311915281177155679767663175899314073127907631619874427941405578631362520530265961596466416120914771187251656929931403554462141299722389065080539694917438088916373078003000645251444765638797218889476657171390624046910783525967781639832249025931284556827904919156293065241783133402239767253253674744401430404160221803606113697537950779293959131368469222214130550701694689183306755726478264628530768642868963302244933356166018871923060334386444213103112984398311975347173262110836986299237758774917325013688365469641161036419588296086384279673986783979590469684825859499725545509396607058484911903637508893195398451788777401000167773084549566832524861151291621284387248900151468424145808068398645803289750041862412223318547083685137255246236885144108205873055929538004701065681486483004044758872398281924550739308997763875217014092856477489907032185776840955750461866998234551293806840822276009939132329571678829136512243316023717131783099480638049224799951109919763506935063568215518187961460128305973403462448059480053764667556941638388516520853880105879030719510689136066181436417454849652446357657179090422673211757040276843480389948593335821885366492882139380176468459792670187915555231687968998548697828085590676562397694219437703219924569924929174072975638809393832744595126358349611886265429644591928534950129380824110687786076120842188533489291982264610369088801891961215582997401584971725123208875927528675164800746479030178097409118043172941942195016482248709236973054532255728726878643464700024845205076155766634698231160921686184834351087589550512924773719173466894070197180832853340708916555683586899015752001009180059831225394095664926536785443389033252760193063745773690267672449436218956650057264226597375676814982132551211322995259042948244587303075239992503652877973835267369790643809861746632413120238286344269584899922359442563895472015770627147868000252879917508427474728436510592639848142578789689175562468379318705182270651818011841822700891668020117766234690977828500789260396717122813878307005275084777960333228042830619256528635495217181787751397996233228367308526787168126829028587787119456723253807670809489045487690677052709029478828739084318706121790822309799043469483183971191613408981047220818915398135537345763554702713571951112427670213991847661351873949895592172270341755923994006280733428847953592452616054877130606141700584123182109397390335574913513487025886818848303302052413528121167287741453536180552552156692325311784299369453885894465122672550280419851434511890902755031367807911195429830837033109117348441070903745719262049695899374540749599159865963964748893490127078488071076603113962433985751157692451376624475764411331104695163270962756419648706816597316485183325104915507345715485531161629331525319642877434366840698242009222549323991958659980582254031334442382350751443588966128144317825060014985505743920472361021571914571515490893497871030832704063678859949882075801866398110805954726951627462805676965396904245946556989099255707225357360562050090113263724681063921392684932758650021180221375073339794058501278288645653871112011416854171608622807307473409201834562206939047655943329031150854024968700443188135560489372588060655694452043387251597144385004991204516440425099330277920896926909738285949596590000162311648467690979343225346755313606304365540260238624250903310592280674879799533720257505628904359724482884647101536382909995413050448743373085119641892326560374005999060341193014904997915718510618969097776893279559921436300342984061577026927902507652443044487447481320841006721643620821537104443922968435090432957665336401654556245038204781906908319148967785721674779320980912635800973116404417337301729871694433993665659874471404049803751516578699698763671032364359372150296578531010055429342102099775006130951950337463691268928448698556245943011705750625651067087703252947570625390500662001245665362512786607037877272260600823243365435621515582517672883167432325213837453734466144647965778009790447699914842342123134408828324311871797841281041008740409557345145179949843452421260203268001425350200296972087227528087587489021635727260600321248273347079577493060826911275808823677901147085105722294565896529982576028939944299058039197152042183899099619027092874664825015947261822277444714893832503232270423488643281469871496000472008691003273070331629754561921086523980134207809449813815795255060702833859594274111613186258375403722555587431894175061260862579271129686896893800305871632091917430676107083642947619230208836047195017867799342654439776885939205139933607916403376449215379854272017815151878790026066557153859667742968925912211764604254161977639295549236987540420510444114746549145305100006531670000582494869636275857875018426964174957968492503098890434902520558440498797857444403160484738458993148235869585194241597589883984413371707966116566563729370858197313765082806380648926612956402542386483484363399799012333408644267084184048426713897204648663566459603705154268633331125707804266700132239555793695108250181084617308082890396338323287238038571115115553612593441239328627582997765839330641618645784847972790671831798051585519736697569096255529797474875874332033963167653122000884700221611057074204555939599796376143732326958450090882515986956533300118789224302200840945851781559314452656348479312498963133106468535079290661657237394171870749275421027745206629241467844539349473912020547454467441298353574002440445449473824164651070868508223697370941765194463101780813405754142610476666001470620054976825271823398232522119640725209337703363714816688715267169266499947483097336880441570276283203435938712496101555220209476299763965671735287413007370969389706632216419945351002979840054787754173562267194943774110189032407257304231027463834012730624214111864879211149969087103201163569818384978291796773674574159333689362068802647636357913884522971146176139788074262019470830964738675390406479318218428469372145709135960294243371221387226365201683345975068333061512405051341062341647240065744013473043674610572032374732169197121349650711330175237262954748461083081681057705227919918543874902069266994767760573521290645916866777446249170958566847240400442224256720461748556947402723732501185852510826696172947072212838425063383771743141878801689888139391402135972820444390171233652169697312729445709591577889498500283431370511198535567883284459123928883514599613820116359788462713759956512590869645663510963477160739483527899568615381665929038977648539470060064586771594501421998036484467144446748284645695917278308598677264166462632949231582634253406616753735248316577403555770869703970334833098235321950157451561180566999233744941348909549960619084903611245110587739949429052874525519989163649231951379179578888197513484779013602011981566096830210975664417922366855678152920480599264775856232523685452514997048281672403213824119528742026712221619166291288114717307886827153557750527650466295402354942395187106933811028657585407615445215364555723456304204940666677620022482994124328432421565789636423629516794741478641253333779652821273410179754307969855084258547151345656037446520012254643488240646577140542562925251096997858872552848836461470585957274510213521963456448055274192563477665135308071311618240851574434237936366635359066123368258868005800132950649090414882562176052496275765417279259527967667623622280170919944346547504784341519167295327412925862479855482157281338037498149415804713255497254652190377695815671476789991505543558708998817416712844048081502745319896442230292076691800729396086058972557786256688282273321655460328826106741525543121210511345481901991963388760036354087094589819742451128186258164221491667622299487683189407020717869607958532853421170784361629325656933275647537883166219617197763102721200323441364659515840591174147873415457281412737909134886844081547370207834192528022756350568580793686223479432571902744914854931511360606826553706879829587281834328253885108000986315176922545647473604155858071817906395863963719048940963830089642504684773456731188075830701515052534780261798835950476231399409807369144839666732332002694423171814366588366891684577117348045384485835955784008194060786944740705095345305530439486494617231531820527255215068541259343521039751015284484253219139100409281166642015350007368828899726171221395972388080319705893139991950201820487677808649187759041971221890542494102026241279876887177641468196987169780250035338057271019628542577779528374086433604316425030787584039924558628105891932180907071399844891093372870359918752684471177950305638954199114846246562333870586887770671639784447539575184579874411369795400717064278188018166110938811362738866238203732012054426206920539109570507244900756218263388366404369886214350457325458809188834859649984348161964979589481959431425113354350416560642606220386653680793697744843104557105341445608874799115090015651433211502143410277179648411161425217444300163300262778363140891993288067748239891410364398142372498990333828315762698957792176335087016415411713434944990657887312723812712434587685425742012299638172318795774359086235962062064962381252403400990842061209366697628592738100215925520598906596193668610895030378086080287379806063375018614486518410246813285615222947524589926372295201629389364700205721617519568084389339570101654454578140534520616794490142153085702935705560091673707264532039732796745568871814826397277481377620334997847496052512888545490942958488441956025569586486747555343341344813181473273126134918365789580945997149598600481353594038139102803526643047952497820059908648148776604382199471982666974152985532761089076439892507634191075923820220195047461409353840681517972457727954817482216754122113740230644317354958236549575998379544046956631324205470116583902047991234884226706037197414252159544546182556843045135618709989805594073799851229795716552312823409782895836035774907194368931951145680549055385306720864673968165822292784697758007015046056514804783771077870299616496361943235082683537048209670645978537518143432282196118454113605092960143488595283857825813608142533388577787675765613817426509010613616392103077537808891492939660585209328696716248824922645564410044779619389779392129654108300998752020627376415276749459588373816598206972208391943454836288201526915047608768402236797926511698251922564493384603560936326666021750621379054739759122802374503100480840267977200681669834389761978474054434548984861903592448095008445542717471058161641377616275132259452694409212942316910661871338197596273846828481970041480724164339824806819886779129733969419553315492966055004042439627433739126468619972837919540567411059086881200310528587254766049041326078786835329425680927319070356181318591138764708688562541899500494327470321825707059693279929923747515633839270979431577427350920396775843446115594280799899329859487924470602985799552642550472318746768313618943525264390781178383439860941134908393750004771818998442929494591156602275809486728116888968223178768842854670629019262400696804864294097594324748541798597510277941114362696429366143065700835642724169038466943672484931339523261911507151315310886158158060787888626075260712977619781138445531379482649955258696737016693497957073550144109682205952351719059939744490571814924918787854431717572178683280164308356628370327715530496373986645771023677924010309619371931893325853839336267988610063119703403797070927664281673724557165904878040022905140951485487249501591772237609169833170469109342560642648759053649689082054758214614011750958392648870922306820564228806928186184164923659670390044215132606680345566895528021933970568270169373898681303810445114461507067589970492122450040717917682504994581640471007863354369436870719729990778238271527210343819752124902554508825957848975854196462524865623103946744140737548368792990928654547518955369821807056485353643871483988553494597106807049804821888443354167864515438136738456312474802045826823764381676966584694762487514577398192589542983786595500864686350021782303558686168368674330912813762817202937342463476515232454700416188744026557837043624162914948740188350758712118256113994771838578928747795446424854549736484859407898773624693155293850537660618815074636760224354040945478282323230517133461993655448531915166893222120193321504262804133644895608461541664607699406098689248257940303289567328956320315714196395610755254294266065896437392940751305437701403810179968099728275517499988648954473486621642226817576499353605309266447697572595483681918845529832801790611503775232384725984197412016908138160066197079653052716894003921023983068926768568265649256832246760802019348385541387356321777827721137843162961651454585313286090277062724571838797972317965198838219965415086879930726862716478407601144522575869179092780639927995776879700643936364939414558232000946045116592534652900397775450888644438402859690107042718282269055261711853179651877904972322216746641025006303646921100197476784052585794258706771513874793396930599376220084362829801419704974658555426451957843998522265455403069829240056417694888689707467092319736494723390084013631092442285308757660261379716356563392159379863893179108468219413990956009250833197295820741085745523114125289834355271527113197605405851793107671699305102533381804062574183395468603570391798534802609095511707124445190397926472142972762545718655825925329400040796814483680798116515742726737725019860543383000465948404905779446130235095928145688124835608945948621661438582981684353523955871692354141824721589763393690071684471065127846493979341599706837545816146752100545478067916897233129970028739049093289730799086932603060132272733328629056427220998054203918207389807477664035456158709839076248123087527450139382561520772068938499794393790264142104471242086421768669608263986844033578602970734008384913120047612592040536130483181820413576123747138494490315208002555769526909419176864471607546541839271178038258489111646496634964202522558947591040560145821770641340156230281158019545489799156390374845408293552795065525935896417339374395656520218603330509809678320306733286428988116039217445871240069510893811315620253754959278555406600464624203893640242074168814601665287157093754107459156640616513779417638686308745693062905291148056348641167959069549510276427495714130123499381705303067325163555665705431671929728922140523341929551037994541344538241932976608140044525113048633153418751923000224189126772959481091081030039731360590072993963774936222592212152469392354651468896528399564209560035619318130689661793392995620691085883353941904053173935555565434745627194979484416516610547721763879908243789028755103032960717159322923096644421343982179784914206223590458783425320181194092454997451756750386794700234181017990734243619573098297690345670398929958062774122441036158910274405740224945241325812277157041480743331443379245851189483890199836159290311361730908341792148876135552198319858610866019178146546399489906203453568402702218361797900635424489772357643956434889094985199248350585737026481498768953630517428057786229290396008512938077417703765814785135546225879682054367013461690199340316039742441474697687970762721974648424823152700436420873422551951984232668976132650844051857824099688645263336626656178093662086390402833140530476901073015080125946087341138990869742511493263046437509978936604934172704129654651989471359439496522001415659147022037351019179558959632436260382982480656025371357231711191646587341358504417034477122859621707494952306386634894094030411246226895878717603479996572946112783166453870665469877860316787620732873035218940334847745025134027572302485656106799934378320699866290826250829989786817115791974540984494738496150806092021465750739600805564283182327177843146031239929273319567926363753645002349715627410135814448953703103286208991169660539823417494572550938634776798703263283878538777585255084267187376413211409764062009887769369612703414715850077458633977315107675481726310451572884331340424604569300106172750008013404116596634006159316792547464572692669261197315068065623542393702321694041412469197235558865190646326761581911985404696835714699067068486058800032516580778176263185147497768390954732231668389935655792119297277182879965481292259627254277208113971310868464460444854745778319695820638051227337830587144923875182079620154434459161843268767914884783534973773452576160127295733498461206921615371789615521573506384114728789795625301011382304487377841348003995826947173694814564659325474231044998945704408504691188454854221978204509914597866186273837336490163996662631182088759943049425221804241909092617152348460827260039285502191077838289630877762784557198380661838311641888896137136830393831843376138284305175345217332637649350201750054018227502197036533955323236992706285185299831616276229581977309865444952799142777301897831444706180723165301069943505230636478764984765069140976177683755670111511704877353073671234182794139360757819806634656953836480141719462206266831569528589021681481263774365058051207352120358050619153001585915583481353229337856703919875836319619877241938292239814642937055936112090353655809259296368334943028948323683803462339082409860453555553324720978302362717989361877090843953250457760664660311506831513448592440913171242175406668563575855982672972294588148502222616572249745514394749492736207754894722147541109299889436855730179705029636840537220039722618455744670839184616996307427020117272391913095725193367057969067621068347232385265070151676875291471073075330168611391483445511403852337360769847431219417881881850434653903245146999476505752204965495621770318025276820673579243114130658983422784554367468533420297051076903208951655438610749548200756553947858848654667815103127500901560159570439427030910704407846872532755912527317678394893785302945858047912891586923683049991123184021326276321411141627013476218488905853063970880601103768459929546352606889072231576659059212541693115850776713283054100286602353759493730279441216954373541523346467714361092273684856689834348801565381806223286659857507896787389337958392966942156242654650584861410776099655804776553979925820476512960088978576187685278169831049415661218941257033138709997062240858894414200393861727616926198013352433356409688867744472323578919258651447178669965311699787162945609958564820532826210279345304718027058442206739218716052286396770875350910858871957588945200788695501914584605297053002877015843778147470471302322343877812744895983197773194910748196012669393846062284274516667320188480480719925293095531152678739485408962586897400843804177956310414661595345593604051133846099539919411555125970139306655210534104923154590432372643238074800227993827264016742769279027399382985635124947993361666767584067717123197086432818273464907918177599089115269584724857312843548937216035750513964939776940977633185467006525258953588933139002590640385020158479870427846107240650886681078136481661487383723279240483468473965284376078912197535945759596086316273830015545347821867805529171405502746039177405402318234783935359036085153609788929394368291298829144181926415123243812204979557074513368827501170985374866087113819690184998222884730097084308895370290436331059656986670251413457435952803053428409448697538434813726738951172405872022170928109498165951838822437544646184525037147878893709788348766100936905976127534406031224902314998368347904537616252613492617120088152739682401066102601514088990803981609996461783325973312782112100805292375053762325274310870744322095721122079905431135865862925399751255756775354186027244472843388687577466486072122486907683856473353619509783232894945343837084811453627546421679571727750585307656312548949643732117942943767736468052563093614576611489685615603029976485350598497322175722037734579592155829962246616261473562876525583571225549517583663851393454294468862128047349344753256755632570368841237372282686437892210686733550453490320899998464716445453468913262714239531534059732971043961911807785227291879849544699078635760781961975470651062564686153578177375123701660917160186766947170061560073742644009065435058621091352014033798640269259216613269935134716347190971586742194148628689488519779853057810536358090782352794553287141179127718182571193531935486721417811256275804854712960253110977626618471288941058392917760972804074708106844986919989335443965975601400847468119952970649232933415669904794451707034884717995557554716304580681787851825649963000818352959532823995457696895382551796184344781068629169082796760666547811093148147989804605095919341583756851104858494436626935623867710505403180000495522759324134840176234454070475315138065091749502033712461257809244849034082045315431411368621140133667555812608485708919273581176383820224767932553122082645531307835180092159741361900753282548355071727368135856699597121322244363812250747633826420163490366196500617219483350314349062812348285414283585856421345423203932841481441106179264252400765986125311416233189806176448315492342417686867975826340957198372209235376042677861166453076836339652121869691168279413529492372362496612926227436634354081582124186430546597374540680426714634018082486173317455816441165400568043106880567244617921925879187561090029545163981705616282427310978131944183892083546102191504747892194690979429614961169838931766947144437519375336885044852902408625614526191261313998966286426850216599232598742519322355983184079106521667713150167746104294465308153706810777267292934857584781696045139485299648979366060763982851996254007902166934344651993815075648843764276634705710757386060135768705218890230374184205836852785999678887493934507786121361893630218983585267095192217421384326240299280537350281230266399865848519786105250474391469293879464567307107279188939228854440339489713395443550182509369122727248257380462670639117836149418035130124025119178701661028237834062260866367980148551492382258772241046392846881613521878455941910958327253252099619923804962539050809807453422024561941937661287757420486506173424617334440462398761554006422038556744716785312173814942749853188695437543688481550259864439427802039084307552508870970047573958285672646093314424397400491608710941351246127693872112931693671597434098498205311114295110601942237992897473613230895628398281832546675584756297706720832218053994222091107018415742633211301498969612997973347049670466281567541705111330036735743394814048813277249361046018495938435432423654586996758455053038941782013934387591541604554885966119165994981649186449130955060550945740114956501995007870547048555776732625461875569461337130210815145255232990920352369497779198605208178847005484960439937627276408326203236998350674609751961168424923013857100097854500685884651276118847532099606442853837718867413415498339606592114289743694618356947969266588865370189933475419374877597966614769688722799495512655151529560096247058002161309621818445348003520706765969361976291674857551362386295614890215649320717867813443539744848942731794362954645386560516185967442252806034407832853029518886881805390354190854841108140991623452674947555977147200420245426317672384827178150876033223478084118625355084492124737003782658727494492922218006354855677342814510023128060306798534402069785316317169476456166580814099692608989870583529842532897950913429249980768087893309387553826758765982547733603919219486231174785996570873986432419940199318517668239624479086849990321757421635665673769680194918667048052510963365035984422839023467763709702188089719793792877737244562327159964420984051362618234381568938561918654689876187581011492310904926011652000262539186372219004099093535337253028884930800450019907644926233632790262239051968491526263591333828153892954784133440468646740860980781497921826018205888582422234280241774025335042761962874796667667975514441101294073294583819931530886340056728949884468284512944951740538953557700789346837455773882775866028350389064589681364259522170227247797576338350301700920063621731645135389543228076596154861668523835441772421681415295323324553384049083418391218604361861046502293056465060205793863133908826627118397689664972186211049765916271732714426491022130547701671427523541616687632319528943725748436009614730538362122020864460635811162336915388858118034988364929666471536481176740878795586746765035316102304367696407287676112257781527333241100673826465774229040412262776977591825729112569679061417184284540210896905582365673550373355259934075671455845853826493216211183847370627665499641393113385008612162929610084085608837914190252677355817611770884260340711714335277858668841837621104980827153518848886238654359187722813297597024687066251478582860612490090295065990852374485845768969561033353708340926433311779908290577033153847188007424136467992727726440731604328718230086478886158871867900954882344619205321659874308619215268391107971394853749966255442800608322618883436163691137164498948920678433275313985532793782534059987801460142282884132093526326499892805335798222318075256168629603294512464970534971106446796815303085570373143454991302450360318531417903871099100673021635838876272519559628617465935757722331286459539841529717991175781323904622240692851824794624073273859630682459962377246941177483168904423067147179523706943640077971238301656302539812694920572562436856583730373790935783660100794570414721200526000501730479505198590456564811769949650051733866648668552387421040603499230977814265369065655696119963487681942563099859952870707890961758747677817371258806166300914874941627898931731801873499734700433183912948096637353056730561514070821160558058936926916076897608902658007949300446781325048625822908306113032937806057206866298851286971904139380991849968270070369171480643100016045809461798737304874866574747115440059525144700608178556942586391900880243432614502106739258432999237746402492151637939404847055558078846805432413924510871299770628828968229436661250768626986985468849723017022018430080402974307866871776326145060139455773619448918874722680924121868370102843332809323830030252582857067734834361240272629301942727580084159473417462059265369074498420495186616690062556837922500536498996193956516102074772509591016122239451193669419806425574724592195817498125477843511904132668174058392872824555487883087333586343318248698937689650206665991415165634662128266939767152240437793338048547734418715224709954722485928464905400003875998056058992312533307376880787350507484046379967073170872679560119122162888000333341334088655071286888676099029755284625967355593426843421454584208337140989612247221733530496176178937018436584613161448003376944142902016379167298357044727594017324770738288021949771581007299765416749444756911381726847605819615067231230975539920082351430442010516171521553929448500249243153546641724592174394826887157953144329786560557795237982348791342268730809367743796327997442771021100237914702901074052082105736127288612157399355732902021408449661975617221004917101532401883892265624565974406271171961878967468303952686707986064187197924047206216541311763776622145471821190467583471809853940197077032376294924099257512058149919721831276047749815855843057236605265961950679943785774116812987423033306996435691380428982030756263445468985473582606098769104550544591032743758444924995559358347376220785698309072548710013336097795643090052499879974219557129847410348775678126573978801983611348537847968143674071080516779635287191919646147549613829811828856074299772295133371990985395283988067590322868805085256532543616426518222136514623258264653169245865707973269727595665992283299013894658459485706150964070803384326010251446010494012379629430615389319778496502466817670542068696856753431031880695756829382711283548015219345664659061843633672622763410821609429717589472064342120726827819675054433416382113027514469437840932808763969007952394912906026462770623346144963460239436548588189413251937337683876392707631263844076054780351560836921636839574672909070505566502441971884951374594972847977508565268801428982578989347281661225938375789290738774874104011647760028274396664160934660330796708233238884525031659069125716095667751088674208494667754333109832043488055441424246844679346708048664565304515056887567960936621094199364128036681110535609939714366749604165768218176255276261753359861238913712012798518521017309717576938165466075357033413436738935448930732601675040067497454076563756762266870487360621947333223479593332220320732480452303786034672438000234793682809392221172344072141743120361864372183093055790640394542561905483763593505082194046844305007575585874310276587388174320695461302018263997438199913548774074188795905409487542931222568144919488967609924338463603498867296501852000208084790777860650111732586595189677253366702683189914585013829254540774479987026432585052029013668217002437953093882319673535560009730337496407880273998888009518544629200744051878830326670141389226204645398626586370476908311495651124999175204938535379594167398578850681152760946493574555815144161650028357601812992316916085753058994217618958086571983279250645633239070814072195708371563532289899597387883101536876881136896879645808020001069907816067750729885411836485848289440971672326800561772472012117164482732635604801338279139538760481424837996870990657084100148502915959967080488292976925431155927681472979419531925862097409338116056352783398990130429091131494267232135596036430497392286842421682444878408051506402065757906862171650370382310698870714941387359521633667417133223458474456636289189570049683194733470753452874868618588298393103358725314467815795167689750139589550228119471427994475135485193505738839614973723124044286462586644431219844240839445935603642682917997911074737724736106807159890342730510459258057260889281992516379591636318665137577520469861443091440732025271865838630926827365845781557215639662762479503914561300106329220570718501275587855173167727226097351805105279272016088908103219394185615241103949858575465937910737151517996866050814707328369431006546665218398864887215449156535491364326123258499338153778498579165667399200967010480830449531124432471051659089011468630212081913373164485172374921809002330429465404981704458671446150028923671724524527131584202479485983811179496108322777737546767922771697818314074699867670344523282489622497906949248652836665095259908515868934426281560213258338767943676998507680610017074109707414719777897487152708919122338119214622712409125293802504907506568256844709496373914680078813374585311169167553241530855692116060880576425439771699770807122178571893712506965864331456203831430416547557096350707679718184846882429366889955988171746627359451179302424662579082390358158563438015157329093721977868238136226474135143468024753446314007672740940084797730517720795939280254342492481582191849508612246311168110362745951516590355136696944545353793346951968374685435229909299793516406222375934417861923736785370775693149662357452099213037016298139992627304354601020483390733956894541963181607444171097057258389665242794420161397978380441317722066420170544394221301872000940110696245137609253363452994140948066111006600374250436835052869929229118840511629768694715870651955651840133706879638320176302153083793992687493637714489916952491845968691290058268912008360672705609535222303211607830600101454485932886341430775144585722065785791450940440621963996467773251592659382094810546968213081406314276543676229421630614626513429560838993249489092304696282960481803694432085207592031880531366842512136732121732749858953678436740165125279766499778040505197324153092477173458265827510133744452112350624709142818791890035069192286951080956690218917984863376028291717360128902359621176919795902619494427766683289909263773897584677174067668950929722949106799320286428671005541591641514207316016055412245698936891704117290838943702237798264396596446657518201837118777022476732961413649030073103236399421780413516638586757254327555368679122426156144545867859240880485366830189498338037818182388166266326846009317834141251117198215127447294229610188636594555344358806283841334064850237909082939379832941995723633754090198630893241468061985639867692887972486884630813328831031825504032439256393405141844539907689485926854834413287485970472728351133181265848774055238314044046979534851150401639198086484282716580956643624572502504941430061122241561588882986290373431980276459137986866074060964142561239804802751065978321437539368835261335611323800560994620974143208221980560758968924012881725621350477955153527913373713593188049592175963516957040217942557444406075951127188744963945065108879743350754588610253652320368049685406975899256618553389395852328758643573202344551554640320593112861289168980095564807729112989150216495715126622425520633371458144791844515053591224517664625678237757034170791555138486211516115518451785160815533735616988958255078106643757453942511432240368754454928533650936379315235184894345210118211372148023564720860355031285828509653012688752940967906091864647251851653552780509091150829139331946324802977284287910055804421127706177841075665291427270589318838240574035523031021367451490014770769770776932294583582552800249640266669338087920935412465647822417922300626774234601007831534338752142851110631651466421928329046369500031618197041573394253677010397047927102294678904968469104969049903691264128312640715859570929544511309054878846025481215547755851214032644613191887796931538635263633670447187865900413527717837820360260597489184402470127295274289291672229406009253755519205992235873939197106766983986633583386314145433822471608580619672470994951943043135070189538711094120946783479036476933243267378648105243672918844212841917355467040484055360658976260614422591478989070441887577476344197211347304810161196172227580829948516871950548032186449337522526773242150347279260453727046857226025985226761960983091178050957706884796256763373025583177655662053123316604199929137369727831219552290907429112979193150731230641214962237967305915283267619267210579540826485233407231677926293718146512617923804164749790592187494627312270540585954894415803677035168904085300659421226206239203348617757029540261442655087057812062769300172241586999419124887425899898930377099507933401485452934621060271264773371001898721337900467573285675203852668706644897189635678020327568482819932836193738655864106689862835026512357399495584012965459947341929764851037720892220166958613810224251024327072159207553580549842615894212173812637363603687045802943972718696781501439010697929552898778278146643825559143455731643226223690676311461555025556689320835322456906994303099617335176316370843799657026473442959151810696080532236924510365619385237445376287184092224770556097810995633467357678309994566691375361566300877020396607527932023762893938115930995915373148109880912125040922768768064822834909469120685748513608934473818904997600360517381330815792891954380808914869030697840273018055544854152356813731092252682543197331777072964815972280611350934079495367487344007159715912652710539451568251119406218645061104636247223838805448134629496338862325094923293046874202088280595594996373337033504577468031646132749142364078826293685388786002868580797169338180642786052244169407510611146899366161740750720460367354496418562620363200926260858034676333757026255476021974190341361590831650674903170523639662080428611779208909946725352026459739935280364932132611225633373297602465199065036785956972242600239598660790825600739173245113563272987530393723893099848255032743715325215706348412224894462067035478875311508598994943239255043453743725451341441541746391904409343414342545335056222976886158134186874831264534560311764135388718686401787841663395620158411439626099214250775827937826561064328312480120178691729643223750160986181174362576212717088025105368825123798129437615867517149124936553365085087070850537864507368633976123628543827291750531433760047301603144480220645307329220966105865733585437846721278796646577373873140786200737907583742947284838776017542152166854757918318298878933724046750695943337479627290748428209508381647788645721820005970588386981183579454171066086744499392239778678267378701308732379179022935289832192341505500852579665899773682692344242996852777598916337519920336153031818398523367316504361464210676458458874002792227323952386147520580589683306103412147766792729115926713979755325391961183491501640606490606705837288279621894123390788202415973613320214758208542313866113711562612823388540194321077967598806973114200573053892546312497817140585245542653534480225749424200953215470410128167200931811056970234425822717648762045021919880360001871515400720287067378270118469270899808260537082943224112863275369682962518817111732206963955105193009603884042000456493163188090917158066977002208480728595970897577872790218391248801969306862607352657445206047750580185064270512815119361642863011621106516815974476188750553012351303999820142367847675770783011271075370648920967832507705711208704476403560749887473101053640330564627565235426501382836551181979876746518629217828121886453888855229004550766009782297754807128851019123596426849405571543965351097698149455567358531737776073941251933592135116788651782018123004341431983909538554155044126723440276152467143014955964671526488588354392466433415234736788793480408879812802270825037199042423694668725900266260781356048581706041089879430096828840584560423642979495136707010366755618463162485083122737501814813749048639079210396175555416024201836877847775791910127722752371223109770430289628310642781390092739246645964238161354721644692473409745714809284914389522345785121381765165766290702622673326176159761903635420695945410492863687107427860551645961481904495153335564757559339723899734926964326063548877445114126113685603889613670587465151196566743390002237397508093102929109307359762783525647568053936335600281224156347837074203752505244145967443758514453350279540189667559613320579822116212808737623474639628612793647000017830654930102278966090881163965665036946858106574886228263989373695769318445747128606061569957799785382540113632566998570005587935697134600469165419949542741788097457458813054415452420635249128936504777142620816479774509117584767782103043234837173183328789594611201229800494636118477016534392062283246955161405889302173916497479037531839272160382359532735884353814829894097828319015414065922387003380371087748769564573346198240252494141567492810048199212202371323772563489184098224580777619471815608166526697759629683301812230163132083450364472839751276722157023673784426882080932793697256146081758817321157109439616287401100048727889377476336637066475478498264233809162333728852790443022096201665098999759269242842070880944155275818499242972531232729043637931665176481578406465630256287891925995362149852284009291096369061797248528903568914310772349282839851704326422188500217003466888873667890355957027183633728829888937861811172224017144280585430384818878987011800840500138859378922889952560661727001731016492534559865011408772704368128383886328164703876117376990332094608099809474753458688834660921215167787308526863706276392099086310033704600578598302198509757817371961235326884158897100913077286846246673249923055630940481632085758040017140799938834178652950136796531974371072814494282815487298478032794248540588401796640806250642774735143957052490959699292625460845864073963068561356228979834187062770982638418087877112104254339567588474046211786008819784649040311724790622545338821791784884903487275462108619318121700911908842447026449238748180666512999948433907982675716509168339541611575218076054522915886323872774815189644914647319349675116536600543491311920022195611075947618684473127795228714710730357372697273044292683687692756876938078846362418326551159755197053387244679005400003241803058178720861037840987089584742618863576332561332319670933378406162967694226863722068514266410693095871707608250946263664932550436265144564901807258969420775605376205231870524276034599451031163340433464201321231690844824601439096832447177035746447665854504548597215563614610500789392227364767484285459807694547654730825434698863050432440760741539345371468047145463047589048807116395847049231777332296771484161550271015413275515581930015542913364691270402275322837390577352475627132359075074225259125167978765546496572121697734384895896818280112968729050918141613472420972712994544182488747873831593475515196379878333933620433569172713903430809919752424113726705213190038637187888533814983716801462693105735180017069691213298024532081516183676830155196764290444718735879409570742239293418218597306871341903641009964625528012074002237874306898666869312234832909035357158763868258420581886492970640425122551867225247901419479410850796038814222910589511765923794077087760413517381717191778184605232437765024149182321107250953342087587122804496645194455240982867371171729631829007428604200387150602051916430969000761396227280271299120289217960485071286896017398154761363473814105142323740290144882324111324123046125745240945292312328470396465936434110375660195228994800904258734034796791437755658485660269042348454066690495617648347498856426277479334721102769912149180596459721129248620813618039954554939361967236674090521219907729393127467785861128628046010355600335266104420857850374816433748949728367337165597598772368722009169925796476368344921550390539245568013913094495351441571156956891988275035987155224539020789629430023919108055210656321504116730977154885601210230305670970683098680077459962642553422665585197661675392605758871773062548772053323094701254563327992250742675616568457059234461231149363273759657511754947494539783953594777739283689599273802018517007432357562234758055817774843760094486081763932761321237934290097616760333062130764305421029827299917631337099727221978958295248178127882342854123871024728643961625056072327509115202739037690390379736492313698673133843816041349625011960063255815163070591287694283975907641329416670560974000870915838948342904833839790485681449231975696275919514532914253107860347258209748004729163727253059565690678577286413839422936421872517060156508942990494529211055041504423812704991688457669460436133489427934450213785572597441271032902166832402384002050122176011294242330950820535754763154009596078015556491266855053116188501682231817376153115984196264198278039547127113681277583772408806946731973792378008640513709556685113858846456156412428391566011809536200184537635889516375783661497346429200618664814522271926424352603713070314324340695856661957755266838816884830317481823848729698507685743168733028451153061023945836665429505853055217080625703447565051658304370021135787196964231014563767556240786305426412791580544116146660184125826452042299895444057138992815094429604416621936233639309421974715465696888834684028072375200493605059034346927154126935140451917284000957376309087864021980220189370053805588410167303465561580470522957813837588077083877985357142018273628647545920988080580733384132425404337298442809002614233392893604774345201012888144384586521705501442764336399192730742545744407828002209552978345166392325032527312090081774326122117478229961133760345192958978094592797794953840873142112360394014579512225775430772493089639072939299498487788965886008851440339120271232489283154906534540102880774634868586883369608921941942455620605878399855808351477401801340949902902963096988528919806964992100197149044038209706064186206631539649208737284109576414173152794525755165864073264091208981291133414892322622590444815646069685398041009566462051464837818783998094438833705703587663058344392156312778550598040700276410491365202052125270329431293896474245799115387622144120920382615637926287609182446446251908648894594977523045345881105760679986682917355935514570119434117612939384226796017432261417926210005150266571978875375002424927382052360062897384580803685496053749218766243364800212773419947487149406431629379434226966789999681333880278729991110072687760662523565421020409270776198146224889898808693350812523145331021143765493058100929520653862940812740040797459386843620273757400169983636784905279218599773763002737100829989051112204912581276695637406102334305237029741534826571630516838006250903054069833441996610369147173967657150166281877363937166467577648676911402720630335737564201092613307295671248992134136369547073564950742403057884552083255231576685173227556718664750047428913233055994326202942008205298772815516628999678713268820195966086069433860809297200421524360954685411791124184717337216107110391381248375140967752429888248540774316253334864499890722375834565647814647891336323455301576017361045255170924259210739789850998712831118817619058259541434709208394083921951114673384086873417124063469458917615624268007844084445330888428536512934633968198664742436461861101636350297555903253950133060472786150282509900135713523812610760177897405198996118711138070595215650752044016700502625373814386996497180775877805521651535077353349084064845290407366838264659684970760765806561891539505465191082828668456104776846185905068798627047144377529697015535192521397094849448073845935989638997241915633906793642073405104285130924441340330636449416185761017914379947926740541793776459624243600486973841413118959772258774228759649155692963894266513389004874033157691473018446842917612691081401639672520837866449451515398002411086520967511705200205756445397428819323762243979891169946627876462815194536418715052298085848558776756549672474028633395773098253061269239692313833927010536429633592725745749624179160232900400243782815335837764537882056031983486936073726025597341968259103828253644150138959855747414466613377741352075989605209835123344020046797573021904215179425084439614403151635355258315452000450201626572962191404670104114295575350979684116141000478210141063349022486658609619939060240482383391851483226969083366992714291648151679257871258391679951290342084477531478630304260274628367229489698814905936780799030040164283399629490152852447276607951493400716439020301511137982199834136509684933571853981900200300773406301775767058696101958093469461414633162602747207707225008579640842302229045839103675666182836962418851405804849593310541729479297849941413561043289007451480018044178607168392484617027558575187190729649785758963279474097473853147975118912250794542166206483876261209793531606897737674236517001374543714709575790226418806434731802934830449708843100021407858368672156012132496448260844023880627849014903029837797647829970239860340899454078908371948036350260018083752361573021785061394402152521002918713930930815175381688780540391918421163822873393007120944993860635202111421185408000067346129940660729320549667116347963361627022771021900003054518018491350881604745956100853899666358983071960956581709120742944979552888578385287433347046798687607593624497170285888753065361870652469982668587248333003688350930398365933691862230471359804819422291545607810203776910876035753843128536475634169295878718978115847681252808592083854303705614507114787121027884967116325308356286584459999000087902033221808327551358135701439731243681753322738081900113341314578427363245257045743800021178328537853869357230978418185106926866977580866115419034706133745101941917766903663238067685406719856455492478425450594692821911299746983673142048058290245658825742256490300055787852683182852095997293924479835745755515850519103977580225006666791920917526178311839631084376240644287546706327077834424618519617665128502389161552628420356358097384043024337307666163109252647058583599944979867005598160609912505259433481531643315109670066308574106272804067128548741075386529603351874850316003300904412826028635179035772987854081182783886102562506055703044463326396940289098563695622204483368073235331477741946335075096014930956219792467727318321277933129915788228992424165765774460772988299214144533133173698865639235987633102829827724188494081211560737044899097580868595520562873608057412107250602993955018591075303593602745265667532281036173128068145744917319624342607431216521117495890236934357572156385783224266675323827052635208386018899524886780312846666427798919706740273016791386164718911349887773772746177079488013787150981247944275562282673218151958541220537273132772756787418425487688742390448576552506833123361897536717904538066362155872795253732389389432729984871479952584883719996846964850709281607218466669345001909915597661163601567206379296493618433468486657055968806956494779107412708952225844095445531018368894727616923786379387992958886925022567668410504988770884487472071358870960139204065081280382278833897038214717364099411621252408418166116047850576034305178669673707023461491484943164882901822353168411124796823175138221664395987733908059010024961515851592659104484451725688579151804523791788950665992102027220736108729486271171030282993112890799168196621732937946794739707091788932678078535401446940599866643220000501572683474637968978362847575774682539793493850952423114298684946881504145784027610089619979778922594232843239877769044813510389532683422266904039884851911402399306362681872326209494937239160098889107675688283912059093805279973947452385894282912144129257688847338080569725482614297684268366210753790798645083112301312266011999440491877849887051985188315147759803284010379944771120875306359102798627700867127847113338214923727635975392155786037100688778084685290547942784917276225175800191216719273299198399307501936137535172944722841187702256674931801051161147704670847084270675175781289469347554994249245294054254340018740817749425853187660516062205230375017793218111547425698452165685424073977566289047955155688508340041410031164716292696959600937276138940874950658497837028606255698022066507228253726569740888988219914455164391336648733431395622253278185688471151432094377631144829937462682582091927787053852178913002209875124660309425871435184266524512504965360088658437012065316913457661592925895509253780877053055077188041679473274446466768304906829777318304790269370754199405401699175907865006604293040519635011250233561026414368101363655219428812152690653777817638689308857498006055707440077306213320341095636836621236692255685986442438130117663339923695244260081345565039526940489774634179163369445391127561745781525668880046396226743163728193481183153309500398859048899893184284750480459732581117740128918161851728586639552078975412493552729273170751502385834764486842443081498252143419685756763018978384274650593783258486934288489549816730196024603001283865140236867049669088013662355245270933468504326163273860124363220458997551924332853653060649561595118359623360705130306762974508648329800548730671349573646300080232858176308261659858512874382065383452219565135893571300522521751330076669623161701351948796593431046495001721745542915374469657179075537402161806340639613780101460015627221812747310296666659180039829455437364754252643809677665031001472999978683828298934869445980454436200927375083450803056698782060697931243508114450166586564194932696922245340350146534805334398009059312597523266435810936925692019509383957907572473625781080918031657567888699553890882747132001418419327549243222162572180752641708047223276767890932284628606621476765984055497953192138229328363587661441593604316184635830168431209758092436654878602461147762920084078324712714383423066341824872487196384063813769761382449025589697311655285587513074101880206189019324009209883366351520914048277593931846190986518029485536422473562525972181665515899882578544802971009882048626833384021615441880694621231749220366152034083870754534518052881345854313934952010332264973292859127420591487965731646959421471268443558294648275389049763346216072290798358545390660657533553299828199594587539170726583761133142610169857756896038188146582181779895504785431555927006102192443506158484658348054124080563490801648275882633974475440957085517077942786983185203058913016501240085150249578193502547776781749481474748596426614449977851355657285441207587884307358637031101429534978901557866077159775113225457432411634477020520676987368263473060205235975929114177389759249877028359156750996365253119644565567039578911345853702909740681181249515381936500357169982006866452415354904516089631303547885997913217697602245738426943943567064521350295379561253408367159586307571327115597101704255296560052616575538111118173512676470451504545182355681330129072280109993658486122455233541147414321859686016773442269137482639521944501303451615833188581132078353463460090766535266189078530012016831680482844407806550539051991310577713621815636340935211924706550814159435178815757532238911498204612788474859016705583730682894506359682462326672692408260801584297047875944036874082005678403908996812230669722206719843973309508415411789404667125911153768614910078735282963945034637172720949191846794590715112740364072311935068370128484994298820885425759252042983159368206806960148916519605002505446716374486982209505746955669774977896484970103031857636954126172146169143391021227343516867407153531597876382714931670131001050073145880346075221092586988473710050242356056906680499974884742939625157826495130671682300673291275542377156054135775636575053120250451276567822111405114826914687648875319509285780843541839218240043015308051049042970292560578331473738910588497909344392942862455951854786600699087095944539268430253596741261088251310871555515180546205804835045931038564676221940716393860502122897091685790323081293544214210012203980037738021986862584749617153784435139567500709088656602657007248199029348144645640093837168078637823365749743343277495656278434092157217040909043127327501581575839587459050555336521650416640881166422846036685695332544219794123739887495214609514418753862174620051001435657126977211979324418711357608772926307360457939745740072808029553412542583185916464847944558431161581835575841623099816193611191246421718513052322696416558721680159888725424996374111541508017735703302855095817833815797524450361561782438362872071572532294259816510338729335655357795125636339427554205278262890200608999042898206834299758561886849105073741094649317502211309716967486855609241504610188176598963618939835187029817062493093884904916929508622283510270023313348006661201642360867383317901008349587427616455690918139937546418239089179392651905343727020727657874019296873736950815673872812819270155153161097600419705206911325488760437016812340353277206395259038561535184429237951245498521149850721758898970830303245615166951152553565843896237049046664886996303888429230813022056552925287974411161303128149236064990256793850312005952014263578425758712692807605806191187301519097237672065157420092596375152627408194277280364336392255166665569582286461799315872121616373275714168343871800226969801247644873026909378262205542161544204093680079153009518244316210684206053686321833362722420421474362014450082159834041377467468027377817161185906520676030041077044907957697633651446830530321510606058576267744008479808949409028742962938848256815925315589036008415755505157500582877265035006110248668987847020764225043658497664935850445176020834468416327191151189623825760770181219696683432308822552869382990062032514864073089299646609782876483282776107935488762859445991253778848122991336955494034497091513090665291186601997442348566966790302934000458892773932451667087311717611190487504959000327403787666767348733818394087104858674507915023426457423966975724564478320050085735261851565312801115123467527283187609100541679343264496109754047194502952313358590116375166173454341633248679155949967128051357519289571011856199575156560640190205741394597582575887118675961144367578716374151457257236489242784683376669232193781382825834960387071306780976324982608703721415052597023892300863755392539362930589487608119946996696090944146528415640348872404770156743474544569558793210402589843605623539226823760430401059568003960743637617167059864589490013825274689887216827034255340229368327354131596503642721985464160618619976851907881421670102125936627963190715573939188225379603538023096018526661752351565032896467048549887887408137106587520786361942573732486368789893542915923642811209921967476145601911482914929074858951756468939473889445047025292070970834890583991395378936121137668821915323778511118516464699108447653752079829452894015231415532977820642442311300462742675558130767879785410480622042145259731705310374657734566078518718407164820008063156560373297434565771437171574859506125941734887074827940200507977793918785015552368828354495225688612494204627188927635048090763828207100344470938045926169634110390452983513466555946646286567518833511927240071299132141704950508447668378373924871521958551675830562412536371142320932522191029106003837550685828423426953836395317290494624215250048966341444810561007060894645547916750131244113050654629574336376535783731334169097035367182699873061803040124846555054624546043292869509662991399865913759516432402914353386948110087224936127242408883012660614494035180584048259773584613571614320963128310895813848106115378309820119512612808398486572213979026620350334379187179383700711860192659440651954829061594014355216080594344925126123745212093995946985395797607146616411928113061861793050738118207982145891097257816753116528957591242676040387546721052223182299131173105222937427746024413414670540666227334994322249432150417880778943979379548172765713100700352909466350582385156176181412924300958125869669714379559687557272528992891941713369499345654702450904159987742455189523008169333215397471492558827922414864354152413989759653562874185763382470597842418003569177649050872388197032800565636784188596018178780789773220511841821518529414760622676821216868410240473826575798425189686720228674209189759347995905076997131220175742363590643400620623691918138167402428186116020758504368625291932235885816905761611156961892848921380849504268162467858603054430989009341203754548794867247028926686012315498265766548635794509103020266723667111255809985412251802875611242872404900520951989062066061393595082116124260716626400010616892736327730597461043488728121207713996941392140920684036338680362462642200020973807085456355752284966050920711829114607386617971152970097052992476209314225946836009474774784019340666989664587807745180055112447557909250566074063885509486439028707264309956314985396780052535841546911566152259961616033946920930770819087748998750319598949125337034070975235078384251709847736442498435970273493389497882859840000944330973766782909007310099598831918469092277100577166067298338540018007467446251314610939262992725002807109378982855822021292521668462289476971564521347659191632021553592410878856298915339020152477478801863649370119637596333851710311533505422656740084287515103723890257395163593594986491506287090637306239214444065591033286547189360584507461837634349960242586265183424629047537059719482763821890862595271386644534998077024263436195003165082596245645717390108864975734854495262756516285086580818860721061987315532751694730346915000730019115113012403266833963866763714355662409754462019878068096385040433942028492634389814812792896521446998305334815150940055637286776177419375953859827830766940733361291248672532968031616802007140631089559278522807727052996086353557416567129048843981103056435510030881837097672165735585351935195536448157455128024392140493403466460169347092186015030055445567846328501643982689993732087394921735743317985031602115400092446326603955627759126219436519310426482291789936779076840215491332420163761500589918267666591763455687014952122468314946329760008804351182668163578835329117092378813452892411757521340798657344070003209868318145803913601448839298347230728008912512229597802715866476824573238237064846027572949430194773337196192295244515375528330445261745115152338915151502934888099165625745757672112377330857856987119954007148388707718866196513530561168618711506375919633948655889381658989997226461920520903905797180911140940325171302392912878462863804866244251915866541938637427780714691042676657042730001910401013692087247801455647177020450512204082133205630911051202486363468262450819689923304149094161512956760989331907992744336514408617813519037471705830387113984747924247190830100537236384943514209188896165793394306268142928282581230139949212642236132236546257534861210084074991828963562279105151106940538726910655091895563171511240883223079942579148881781001819345348441804315980395710151917720386254189885848277130547877780564649304504954672586453416396975451822320674130533176237229076691096294026252874952451683513762850440268532396109553091484848499737496055903391343499453139229356024421847105367573784180714775874375750777615225533989353292458434399876384045997106041521114181212084233178414264699693873567534577369555536209089791491312234366751413999421463170712406249400867798743656793496059367954934992158962303794049042296126758261403410075734577125150701622199933970194061327242951341650714706636768708955350136029404322986459070392575278633974968051147979088326695951771698298444413615131501249431456548561132462180379987125098553823089599838704234627182653582309823616872381713535546448141442280371812996626808279702966401101464446220942332700617679926286360435735733548436936334205166111529746076186478561895145775378836343071495177668435081870485914988719672193131099856260777309450578598822912829519999410701461052078044611356637050419670852633703023863471334325501883510050054501768591646562285965179098820619786398351862130298034550127780717319643120923849620126854727880805982854680058186979759561391107961442546238062561257218650344466823511227988142369949165252468993720245631184881360984159042268985050142854627072779338268667610571360545358736137500664824638018413009378163306347537775935727696605629635969121238627334797187081926062056711363638380582328186642423783802217383249401995396028632377889694779554067735696207174248741663899026469182799283710371043358125234070155574558045269793600439598839607075367370741017644782463419091238465373545523976031963350072483702763615363244758269942919196168146914106269092276032786627540875991918343388070706468559230706661381010735470598641189485044155231515558327538773618694629884670992993376730463843891249685454324567737733209103539330805449028162090144718947466024980891381829047453533310237274604048659965618373701004678860964632696900694862009622668845353645983840026430299956016840507577427901463468356065990895509854768010463061057526354314297850839714926850354044475612085885119107615913463781726848296667961971712842682639705869820455405562811256448265776807083943224690785118344768810305316339195791080308054685006359591091726605256799030861341415708863832945909777292592492721559556145562666903580260548091181985814381870646033527101709387111086148042458144083166152202680938075459578774442342003322834031246264866056767825780122003633762946710134724481499657199224417024143593297874835988629560814893454643618808034903245676849851654032512111828820641042459909518229348345386828608720867550783674542055337153708460339320395028236052788655650423771306030988074244896066681984816273612333645240948695913422644719640083914982272418979905514745018357231154809907983808993678229342748449309813313957257167534416784776162374604685926669363205101962830315870417403800690462655726165218384003209541162440238356955379653536010482282869404040872559083019650514772678359142235411978579241629829465555804125128139797145078871499653058135618755938733610082078950945690075390098067969274270570134470575186738374338196633940436696315271912229420907359944634473515524645212001046165605204592752789792941645983723105039825472766739074577961373636525459395202133359301568785306740944724687205930452870598185533487284495513919046681099949929800573324624190530129238851836688258477080866844946239288894199857325151040086357559844148686545104191770653258574943474292224635588215496683551480291734178616241045652682649058830464779787762672794595656330653652324813405715488901930823878571384606980199283094766823133301389196974694245525265299991439231482732928903032019501986367796878086252301373239381957892121768589465062714920845028053555637611798737543664271304215181804250767366421849486418236834454545450827426334626878524716015046312295778341130756960076736614802977533499087354728070847129550741843605103739779906385396704781930708446672504688274571209069162141435264707256065833650670549718929486096000339465065776242661467189436946699319705876369769556095739272080286668446013470912918095249551603858281516752880784758545420029235259278450696930078335638525290514500188808225707052103178762820989676599856376854359952824775805902686005725375478318156980012114866054394362919429145542072491574825264762805594252464147298008009000527458389750832245268113265771464532319327871563780031830830051330521334257423166517142638352550215994091940142098391015669164254163592829561371834048797317324723318212592521119873435504638462815648039624314631981718203504032406414978037091928839054160074797714831288517306082354120628483716265322928024246730255412936083071073923749929048267616263931101520122918502003428881007963760796708517276177218029676251379823074719935280251505577702014592792225938771385579641912045307987516895333754559222019694312669044794707889269136629175120446005107791868855183148979412548660443756094361704364192746974010079962641714852994064566629431658199989355090056860016141489046542909093179891308122085454488512149978344738654707561867843817628799722390593561190643475897001116787407974847195812343408009713329734526863751421758390917809692914926461919662177738846509020189518551031800406214712346294492337367903452840004654287077180146237980135500954631820399238184848984756623514783516958878677634740353197898739081087969440650781021082037076956476791584289808766901927883299744172827196296352454671374534236162823817692273530904697071951094622147506601838693876498030804817231960079975269714548802812708412160061480586988096392540658638867548511547800772361053105299210570965591579552316685731543235637960454019445019744320652221542402917122989530985563430418848165449890209981852577368585057104689338070695358502211439628742262297038934988831817860708575432845616773473071765333854112487755611236171212516271252189490854467975982054695142467103359145009587370728565819463719481489977495941871071981648082748229068557373502425357389237217229464909910207550928941167657216734440252009687570141750808715975492255060189879736787161299355348058669482646072987069843850466260370984304629283421284285715794358027237674335498934925811785098799377935364356883826771070911513050794202880731774678323505851362480195737424569307671126419306829828948046537664880003509516036345185520165341477101444248532977277370949221289015099503019972746128706938190010292412372603939172030414095422735106859882420060526977152624358912080437899004323203214657561260933344037660059575809165368420280128435614100106935372200924649031347260397746134211123236940612617992923743549176540706297070245454133267942319896907481605790700052639952879106082224062460546109484061290762446523794770788532657791837529972493111603133721185779674245262003499497561352323668005113659113003173547774902779835566691806818106765014321870345690131000641710068098845165572667128401063322981931325970424966778746339881207535101374983788588471981702419054445114987125734152106489287268044900446757822379323480486438946865198544334205545779618190739271935731558001841468224865114706019391917165664124787213751272283974123707661451194220538148969562093283247354789853456509110874049873522939307688117536313719800836623293082254597116876819090732839350047636894761720677013394189002552205503046845852085202375227365131900035049538772937332583477095201604357325258295966352454565698177453674810632006207909114426981980588598157088427253191585506868860869322205633130925725428096837046432366359069196129255968573441216846651765196942664136734275408998677287216896273330391097610832470464328135444425373148878588591375292662504124404739037513762879540681011849634460279150070935747484388029413252796865859567870631127905278229863946705421789964222268727522630008578811233878422615006001234357174718515212032869640077137001027486894667487108588259897054649978869425141880840500656119217671139748858498744534388884393674287727310219006437080557938307777566764392071813808009909187540896275015523660454904887160702841319226136423770138805673557272436235815963794469532881820584561781934848656740806364796718181054918917839747912260316409491458297583306881349591207657744917485903262321019139234102643040771358258089162114463144797982338172802631464918451587625104797046795688779685473403814332650479979731045615090823459509934444577697427181922324082555455085663913825095612278434417078605169205986103976143494207302083097965076515093254006833915825055262187463959029154535380250907484174403686008033634668830127171727747237153673448581351351302180360847903094428257869972124424041245463968936943883849550855017665970947179645162689698398264330162901783831135074305909682818992932938119345073800324453937824552740772097141823243710840665753295880750732396723854262301797653082418545808692246417584466081525466278523715925030164993904478019834746379385977290982626250563067072099616169693786104400920731271770897037668433213680404352303250700607044351107206494936574675464117024256724304067006389729530326373061815852614449143846739036513040633219775026299706447005870463076547553460623637624587554723358287337199320063965428235611121355930718371472058583793723250646136777850155115577889020324869973342244429381224177100142346858280381112644702479643291337959778853732741924110672102020361577934360002112426096088696221151882216360939890100863590440918843956611163945329512791736765568295132269519283543682383375934306296962337071997904049842117009214309550142123569910590142073780737873473462895096150842484895134294176926729737772039944769957490326813605626919794162497190818741017095255940620341928159436824930353978722068197525436223202517041115844284605539366609584755613040441232925118771934995571076844554881521417299523212033656115738858569976908979824738578040813248242366410164476662290786946346001171278767921503920502416521316293207034885356528518011607334142043249242634210821352123744156142378105056089306778508482198682958021186659396681251488642252026820055189010205344398911976889908487986065461629101663308305441245543173065531213742791175407663105441243836679716569075427208510287963392158370728535887589816969521164242737820980598889976702073118986822215030380717739613749238778727219032834071765564223554085147638687685625839475380631006882876279100124366067111535548022138442623577352528035224076528641928016814540183972293391924958555997636797901727449240874847669011588716785389476913705846603637592564590662324850628177066452961909216360696112868269943945919656650786499899734097212739748809770123530311704191933866765189208596965513247257620631714606305137153539631131275212131846296483552295440010662665362306606263047760439670469868464036990707109889098565432056178345579116946462143063235861582246784108837205448439971933376010351854417109717673343081257989480654041193070047559833369254812726463339716619661333146889372980823901852895839737026333311544043335056929542302957533479376400258364566455120589235742536470645595173900403075202401962702018581496071430384514904756757799263419536225400258912870286764903299847433635159950272102726770272497516267339686264741330068325858934718675809954432422631746354073190770588452683180973086207389995769322475345736375474421410047758989278008486319782200196597107466381387750534748852575411521389974964782554294056085369454121720466015983286830825546567441499643247154167732806604135664024273927080589658732163220894244374475058039090668617172148235596995604375827457813645358778140892357355688811508664184265437669556299794889753223110131016004228792282504049281335256063445245414483543703151147099682360070534918905055448014366668668777658075451673241862335637818104745624398492659415529582905304596016122991868631973662142167994012585071768133876928940026133034318004656816637044620290095095517221895896291362170757372505869407430315371227637093776095293912488971556123501099008245387529851898885044832142490840496047554627308406636660240156231713576271320920703959974111933374772325743036290310532780970911757844859570378934706019608270707674868294772562266796003306745686725857189344256261371321005703191732105265679207042039309014247555067356629071186173454333325096690565258323617214577768287879120066750390276266819357149676848616521445413631616309215671971429633886637482414794421249499471411540859717762444826740618784718812635335108184462596707459764004689943991329842917706959922239397788872041294766342535184063754286281649022791500255125405770266802461262772225422044444168817442574109896120791275930004510308295160224538769447262816729679588841359823870964139901668530400674223198390800498511331114611497131160371610365602553471806707251314988209458856328455711474168946346063264054584777275916974728637518056264750362007655203899476832054063769374298484676612284927858892961607814524796914935619086204509634545813302057676554396904216846809890598194640069655566216936722249815621433000792629177404638586666933056920603807071903494720564007216297870407084986424123240478576365168182716325070101205706949367205661428732624644316287359734448333350872304357662035188091453183547734147749735420207280666795093575940344501464533473841290362396383845880825497146630931178992860577944305149825831314972987440401104040671827770055325581902161976566080975701476646578665689247365549176208907960475217389749583021801414412020771945234443739719747846214401662066111809627901758035667211336341925470493270460962098405407414320993395889250148062933304031893419587509256604440778251957917305119107307322550552525007601439787170777497476571124083920439471376189286074296336419791292055518878696776674474121737035267730450222102358901804680811715532276636044613883027130946789181634321074364516103540351849721598691302790866221860977075652216771371285010772450759596947679521728996727716346130367092760693999281748842288022684477199294355541190208404321747018799303317869140937492815530088497710987089156380226354065776354311167660651162590306141198924411314357438752841623365120079853663201462534484304272124849369139813288098776283016447179630395016906517351563275166383633977095445570177747618366729309913377750949739970518071517776129806646896012008019748914734794763311700782751726413694231772644143940222539978019138468738005630565815003881924454572669314895952630544240335633417027492641586172823921529762272844980002951247194295289335909306428897735867883131817020858282156611311266477258023287579523032988015389537309131224324835110818061699957263751309694562212664668867921806486300626940082376934555274165117212118727876928848039025403933107512642866588812804494736475172090909651633919438890930770620735223861308407321592935340191380713745870902678602324628369231095322933489152179763025950586195538929176265841785064389231779093111584158482956613068622960660371750465762665284697947695637734017012368796210476656582515448959788835398577685664251228391664172860021800448888284473774604827128366805976627406704676303914987921156351298704193048130125745784590026231396285998316726079808012095799116861154921826091711113976631090139178196950791083690969192382131421997670530949097484774790894173743334865715571639193479989088120738026509567742524449299027853984402278695643974803531491005011246521541853426409407809355373323489437295687905814470945177860529119595163734704685541590172541093530209635492814262785772849332955829244386088944189915346997676703432535101110887620945027100973060424794357155252011973895452310160597820127651413315782286684059950102518743598625758029679050193206016898828049577607739590789546600949353525740540981601271805171077064644590157355381130878366502021972265502647179626672715830138100173206766912663370808542000625756982851348141661118551549288162303227139121595933586709196797287890586279858644961124523792312246034342420489307409691620982099524586849804270890565782309490816701357588292116298920998711704998266692888213349226167246539894244930677026008381986079683988483099785630182728853305519866715058921474188769409476967294392210649347677258947421544973462855966168180186529938360643583105101385449507478639962432407623185249190812677519466573466082843173472437993308314815287687851978750750802196574355523717673367547547162006034115563842918022859159890357889439129627549670328835701773908552229755830990358939965654476769929962333974051597343304827172538845533017138478595214506611868788069183824009212860315657808942620045009007106987720145199147276102230304015378683011793142203773930676152325671522628436878612316425567815507434337788756281404582122441053401771257009439208865980003496601970891674337229757404179493183717782854471832894127331821809545863764823622282522880935382608877347392636739545998701208891476142493879911395747362961900421309486556549900201445758131003285156504026241271895513363024313675307706875611875002960921751249206366085155431109798166969200061438858810255179268124165574994531338039525743134002841589794286266395586001254753517539819982385764691548350077283297618615201834441371619890901433255708979405392941958248595363214285949527797192674552995425734939091706667202802275109492617826163360972397286435365068899943506848484403025453991666838701959153808645953870827997455116377459555309537349792032625551825064880294047813032773793983063209256725501880432261177729967273270156156889707389621870292397130442965811529567006211142076965855711574490822368427456211075487584143845131207492196888431993250862939390619052357141310360174819665617420017919427718651515640289842369955172095058456861581404001579559867755951541565074308548792958927194785622101913712445964919007874083252660216169872977112625100045636336008055027713075216384410276553410347084480506086233967247823120735890618935155804630331867930754721511441493803355655973337889314307282019404688917023836036643888832348691228417847569375089398403372696996166399659533509798377802524154254543426381800909934969038734728569108596623463073420546012726005703924133572517304653978862447447394904854008422385286712109983271819437480562644939297211446855996519107332980891962391860960553389572480172509277226914088127528209127493948338027759235058810044264974881184748959337399618100844098502135169616717769822585233870451824382571400512735344274624591579499873051110840117855735749312646768523984361337985004395241208237440345032035318313761767680454942437757291027223977905035862255805345232914940681373199609022108688570632170499792937733527796829783993828412596052744496049031446480745209640175273324097861673698550587915377606949188814293419390594827443789107386222006945683319153269927487758079750142497240477529882696587312087842985353463019035411315937110399546604189716521594052422877740553426151598176939879377354223440646335401563098724439960462582850478581772712990272958354365017837021532088933512053646030165518638087211339309491422909484646732851776486401739440173828372789575925543484043025965715818387049407043696145291034015237251405203595411488301581802840194276081531877889304438237064847847884976681306417275090897072555691422750741086799295794396964526722066160591149061237219861813652285039563867393520280355321998140851626682289344405531404289888947044510540001512891144670373720571997971660727974740729084915783756424520483289633162389006535115596713922555245335450736938981826855588429007114287626551528412249126201999913634459879807434305664462021206785369398683182424388226118197272192319969510646257501262950595399332179157575268540672942178513284178516153887678451768400803028458644155897925538022128155351113056164566628457074828510748329444919166643010546667790055258001774292274439873121347264319096788602376073311263936618172730839415203412456790475645566016837661555006895826067482633816880018957498202005026606730295469700931703406183101036763126957548406576793298214763029697385013486922294961826165659960460124960998821855114817742127751346328706908302165547980768644324314204521987777634670131455856911938383620118505830263416140067020202023048596657406104864342359280525076544617651599378535904467877574656727153608560034909308542764337068655187737270526585365452236279424047612871686511161807008369243940853792327417876999489394521951410575526773227279765485799560729228952818157373864304746300406110285293048156024979313809072513557877747417742271898967552487860291949973185770802808869185040839915328191668435802479400961996449445946868491845538936215499124911300195266290483143392633447897741546114842523173773596084015895802628204716377123733345613586651754750967263946163362205856726642402774864279269722679429021613243798627181249968750096656705941226042363037568777317513566723282650387823773503078765065699676480590043061514776624893360554561735946288130182013600581961815663767773664021291250378518515980283217328675276034679964406571217723076270787685115393519121537371952061180911537664437670590086783401178375509123833848062382211666769534213921546504222361784096100462211843674975461655417301780085162109197889766081018687298960979559087031919916915149580733283685084446396269728291278357494688456435250139978775748069811667746531807366573382824736061557812940907248182696235155851700568061187539438102250038427712924003812753167627843489287622464657179960255422726359770876103808971077065437839508288229267683290430608025542658758449782286720523331812679522882376737089132955884045645853080387214539999564037370942866484479418517354130141755848224018608570767133041227331269054451640601991245315813819616377332732200837221942823844999924461631536739989991338503926786913799897567764565565788677038529278195571742215875839362314938594666591299030700451653074571904149170843809335187204111301677974824142769185520169896305077134194893495607008966167005497909729697283474733541650901949804723428957486625371401398766582476925202915747543464735607944723820862211766512331424349027759549524981135330895257091126316428874219171552045664656666181869604780771076574906088483809401125855138600201497453443345759461786043876012724680667872111545996878733247365260869885510016729479239031375289223391093356455476121044731589698070852813668738812098090196138831422388811917623160557213954634711678364072272251560066646750014173956863184998037041164828974369740073776369123644724763441863875237116555507037847878336584830561263688609095521508363401198160461802982541749322498788432247400602895867937092157653164088225955269546624169393677178263793949287964874347943083453237653920898724389208641710891919399595010553663868052237782611488644824451636420268952873168439893730078813487196300405501064394943799869277368867548346646118285605182546508424406463725437068566118650726824368977163703942596903510460251050888661486479903470927818165861760533686203728910922938190584532945903856806738253029301361979946729888735252815226695473043678020997981525405973071240018282257415933859201146150926763722004251400665571058788447268095560527464539368872232707573894832325773817094580656166211919418638463092498696198113552477876075459727263468196983464981461915906641315150948082792749404353476228053181369974038329080933725475928124608370324479168082176947492346701867101270081455059275385732211298954512006995389073087981662895304268797312255771426939430945109266267469805796446244191496484318276024167775835806066086799542197867878822824758828185081320177143165787995849870118606913456079150851683487451304501895911972658639251706403747472220943258249702671990146879706628792449667808778635394457926893350930672155763255749214518899410346422177806302013276813171490591380631406198662492725400953946346246722098316789732835523816318379476489392547963731870036051585866012186320020713036527147213328641416315845973370366037491320005915579097985960338585940945310499029245424380496298722551426820810614150598345738528180617488166754358560399807280108891906183921613715252473653678102559300965311020761364323805745079907982456257481468056512116384723216114547700020879166439717343318507920229602735221304770336946337819745349159990542689036317213460253536655142834361423703750179778672486063634119243954794515344084450037019824166463263898072269535662373785441940460784210961776478629951596186662927805683717352355608349901371999959003943934659117014292125152779381092861138648849766273581361896601399343351253249305904045371569341448543024786626162366941935093988653098174548766474602498412245893016154425449709332421521182710614645946962738136045445374139879567771133902445197815262930704133611396383388655882713114777738619684455670591470246498543062898957881439996941560025980055205854471439384372088116821568668046411858114807050292876420607626648936229400090965302959121249406782474169878173743937634548822375988127170232687534245821584969262892647459829740938006453193794916366964047186084158335344383713179131583696428616764914466176019205980415743609971352124566617203046062558699038691555113783313103386984834162829053499839723019045957325804275750977431887079690426191949093272636944215606991311116275641471928931164968772697573946518084797605341569759940419500224060184025197841754452373267958739336593768312587797136605074179226191634486529219596235521088618341984987175389484157944599910799195352836658140237990955089022597872636812048544640602632597187792496489834388722096172398329303436962258854367083420922670413878067584635474320240357041417470668550471152909293478222964175310608099422219477577665757038075883093248406525067000148728061240432931924632746782796117239412146566961368754821932065658869642171037815627914693398056989691740650477895468720082559165943872503949517607398674429815262713179984322015440898983317614882448190193967530997639075365663857726845926861365994171173041295377106350617107937360720162672346678953091046072077589502489917723794505724929004770937335657267961317071321737279047799130087314188424345946489757272558999121986577405670013472319663986083973075129596577000205042001310590304767579325275043494482333945075824769520915646116625874318758682877933571569630849879249265704650894825703453302111347957415146119428428541933735601014759410305232636799144252280223760208948317800522657554430313861836522531982699002872265780509871025161948333998629143441173627926997832762785606463461426870893732251979028422320861612463339236055312563735122196353331878784186967765112098796200809544107573446903659632404613211722227173051524499217741441238650518343381340882409770968751994632882205548413878551093131342156838003505741873544710215346982908584813299719437369832196331889735143823138799020759104335909810581569352040453515490619236302189678782839133369839516005527739866382586933828361518637475513303577146815751210104728871544590748727713612687814312388820907665578833738855442819597970662751632087797504641538975607723180581978411630683610062632233103155702431155546191880292082595694264193371164464449617072113418149939610886363443496502488272032748201984222003658598094555434691587686623923319641478565910184889816557024208982923575299524581364562867328620047638630888267676811302605505950398462777046744950904565689035698874550851923565210478187467432964648772681615009353509871734572644424084221259088197734212294937035595722237990452087693931730391010703515624635515808677532346316578770783380784623515231556371646991557009483990005034903651522572408007692241601931011423878167134789339100742707382420384423254859176829643458238940604049776430151670094537689794964901595564137129958059026436008813220795916196391853039860096100077888653173666756424665758496781837999463134939868254382454786536588205644562726716605026952715830964979849924537030301552342267471490575093603012251471064720907852591476633364345930162869989414489002891107347796022370345508172637394206782634268818557541580392877499486530358891379072537229896714133960800244437364704871614692186871330982888656496403546918900584070025079291966127898544556244115063373434938988081742246296368714232994373671188682173504589512365266871814344922908383891317215525072003554264581574130665846436851130543775164721086788480475855753418708829758321047291528697349128750625422660706067699929085223614730323836585866201974155551838992453479469134779619931842323841459367640978869611391613130026670332435349029317375983366000625328135579831880077305739177211399408431639837356419016874917250181227333507091679023460636733966428580088983743847318432327190964238396529885303201554027299782033446806575028060499390522875921286139993367772014105054027259100070695708373219393865322373847225831524216837657430846697265469950518871501902828216542378963016140568828228937026477980742968802851942697424084315501235356794696159855523498095923825359050417780980151369168211079979829775658233258003666526168377546512609075888195820895395888378887195663280362496385491539606059827601798386746212295616631307838509814693536897297138623639208118169941531508792416341936007034176701675238197611390056698911067462368519223635729576487204882135661861480927408148686147145382303045416294188381745922343760560538135589410458109293933749424525494423778321374522689575443352082586307159988301258165288483699294427777477085792386324484322815866891091533058489032135500790237835990987115663770697752936390653366498180414313283691507012010407382958626083527391814306178797976186188578664785964124812287979107170943614466001174635381980681813742307581762689700545077068130332973819911117859896939660903044796935042046135497328237692446463875171844004425717876405474706229062774477302662629730354499920506223508528421410508036381847399190925967185314614627313158920435371508848878690211029794025465387871143985207078223845318085108114152959051329875079023141154594433646926820712279348221021313268489813682005327288014842730115038843752698200025375916648030040193811173273007451554204125153853894252828981210129628268783905977216110354632552000017127127714238309399824307088808295405996300592349074292118405587452805390681169995529468808447636055054804744646091960909173875485032680558744837809769024150331231178853266403902063564877489722509846475886942263967665687888506212498634037552562088656509083817204842445411259545761683547207047050972413423415757106604513621507469563991817221482386703562729359179775460668585109291281425822820556168427463339943351397174733544803130274503204472599654093327957809313998864352385883161675943880292689639778649690563563884527443308733259668520444515433203230066180806693138132197810013130077113924007383160633660782530251850684195906485171093257937269860991775782919857043071819490786226464769119057554755966634630819371654114404211655232792574539171593988379584651215955411070832736483375207248064263562220080001060433251293515869915378154214933764891113554967273226134917914044990539777306483161658030884198550069434946942089711165504323761845536767884793893966712908876241652146782375001327407885448699359853039240484909526778545493013901993292077451811527452745514526741146636045808256930115855309041751883865499327036212419214778622348943520289363690867264451107847053658216261215331849151218556593201753723067089284843397950089257312067390484784140259434633042514068059449664542013003217837474831527862819320447799619833957217962729328621000222535954297403789151148637467270249933758982109077789408363246400454661795213349027268059356729812988199138955032251347944069332233303062339381813642253000969528898093620476555009060508319564880957685281297945192672808380532885564925436473137726352504540298079062838354869932395813873604233964739781398470966259955920703729563079268215517100852234128815928919325845317294121230236591676492927127244587789390111764610640976216256530727371462788522011487181392240035528133492057483961693799590934762788023379435441985220621306380257677650719534080166074299667251904220581058536019035482322526565912157205151516966114685742125006201717697535823440739823117064028840071304627658690467557990821515100352471465579107586624598475874830470253822639728522905642488277106215832293188211744858008850591137770115732065867247405132705255273721952397701631283137840251805345579578515916534382491921200724525058130228047001865022275625045315268709264489351121345502936032453480719426475328159573094085955680855594190255258358528622901658537220348483782108597982354544948596271958945318209268162572028291981465602287239324936041949136363492697339727854870656370232886509518094676127600314809056977238407693520702514844569026047787885227819487518498583842595738822242663519709779287666080369241248556708793214612241688521572034593810892551269811641972027191649090788288008083119975665856830358361719562019122939287670890703038696194824458701337646701722864194661592832758421448535235567973207974259035029275296849040466929880997503817548728660061845235880714279467527530315651849075856273060647756290315996786583806049361334041387242142376758203511704508567069842920897567496057065258869358735529786791769901144049195880136690228263034591394604744543037871730998779392673530358803403923150158387803363753922603279566305555437991276771728818198037457430035237029669349672641929247159798830873970226380061255009410675420292699414952462120147051250942595104877396258055195546875046818102142978990570588404976432975515547498987093988348769615828018629443060191236585546769952840905708098565569804135888539920908352181680145736178271369194186437773228292270539482095960188576727297227632365894575510008000332012454650614991764828252508919279613681447199405028259724682973773791266246384929811043474493726055067834792853965684505996335354796096163183300181220885365011742879317864208194016614957547597818824937203644194367112333613630181247012334598158277213310570507445432541602190665833562528051474872260067058954421268703251069785662901052355367110401059253910066577379159639922994205133253770035352426866235898015157470770034824993663482153108249018578251741235230151726936650363755735418640752397311724359216544122345213660239749560004709703371665677617234125373536754121006743070534977401781099478939888548350350663578964066908400288536886810992455368274219096621630187441228965881790904409598961785759288720907583472556472279066651487279945222744468346444446702518977106604257242489511868954454248280988867074257888738741298312420192751056580706813465693110146845028051442184190358082753631279863171748730146613006305756445467328141925954295427399427874311548226160179723021454429134277272361636426792291658948235645781082275329450521444307918110046420130043357307969119279885564895991175043464699867939361735244482547898429649617861781921501431792957546046860929694490000781757512203398079223929565332380773239482585422451182091071986677502961010085565092794115259597818428957551620625172279202211355057159165914905623824468871294894452869766240878910454468175938582955233426250747578591262366944409537784596208927651392205014498589390968435805872400832098529117994707104297191440704325602041026424565436112423502476404074189616430457844757520090287915336060086315493539661970843712754028842496323099544180543986654863856289433212216195961031160861928699587833599871336373042034689230930189805662030937766173660903416013894761565070168175573149561291144516460095642543683265098023389191144067198186826850616706193222637949701617105656966415635536661501111214319756385502797413882222780116686902896379695474789526020845389046158353136792477727422669662761133704419373667892907086857345931171489020447892191356077170005719399920136713637308707573749904726003528671868476166636131027591567126138979527878639093131656471577408503033363328167315470709777139104904250772856835027581516364999015479354720882345378134947752723647935632198255124330214070321936670168533891043742544763797809057244172318687297561115504000713385654758379271641747227499688464624347512090962807367333711689472573595424384338822447443570453108122591613955793134227807365644752014940721100964282494898807592911155408910496522233560986874274668576669245487987902467366126735142554621883886842047664313101774347897669939107029491527779128370294077244517670432010510297569219056285073355316587272496797514507406031165074040765631824580161939742315077883547925139878500459425940128193846078440057021861981032926341053626004240338337167234771466414058210944722618950385688190914512040536262140988226404381250563382372480484180779571258371643153948557695513478275007157942673276767440413172981561380249535012451342568789083097823917031593070615515948546058517217496040291758217879633925651072778994811530622150235400012871217009321887720908671043990064546261797778401672061562030216348723656862991311811582314928553870960139306932477337189421788113003344389105354398181956127344925467783474103063001191475982101365950001156471729399887630776547658391041834436163010686585759973960519160285938347682435133367537665238471125229352152923810519886430126137480771580788851269172572417341275555223178642813765496861326916460152756861849387350633904870759696450972817014662445653858749052983519212441460266675644401603995655780969614208902862171862346282105246501616960513916042776163665188260855299668153132377979558535680540952145445144106528752300320025849075681588459845919430610820782791084294261016386712642077401961033594632148555460559991063120193227756870424453374335691614846527744230967461686621967713092131653443272519871716771304951661170810587376295540497658612985684813013889798826455418667692475419859121948227976211988579125669212101574360985035173684345666532350911381844679949802755613675223146644907978230856670301599084354298723045107015442623179102031566501852038173718480381578067888702764009077736411923400661772324371912350037503059489843602950906644738186442120037383841025726413306151738717070525297053846490839972047669674910422233353353656467959038478653447860654351393674365442095033243686888108545123308843452178634144443325700213249181522041889047789637522730964717896245755231528629565331156337292953214189855628376962312183391612069889591315234772937025058539061257190892270629998691303228187482593942915928427097741905049031112051172882651087532839951682524629678522741440487264791542106456813803915348814524470122372175386504993020393092187910515080332635186264264289326333690266410496170414616861340809482295212993300359854857812165375637121025394878419825152680606169418915308084056971368124088583782479315677440663301175986333369315930988327731947122687332914581447026978426102852724048185882316435846040888999071155480077020106448734507489153865396923528375001034631758877120963304732923584614121561865251775108162860687182594414608634235748581583429204189868011757049087799698534925620098627804119860808941140557315316124370905207907631669919228695013633703485462910720597528954455175330041897978864972375223169489275663883875787096249190168955361202943904319428273057227301158009810808590790599201180478865263965297598445371939111853145952743683639376529265992469428450963258626210587514480245306922661189076635987107200606077356843621412345767201580620037798178223034537873019006130576489502878904984461618241702836846703869936652813958444662920383002105798565254983935290736282828364301212683009539491605426911198505315772026777894367763931448896488429366330971583097127541517632993054171537190465259138153285407685642593118660390273206630193661991226937539512625526928099848461151012503931087549634958195815449010888336458253247985842207888775709820880771699476436793947141991421909996218979354121242112026110482682451343516563456919650118316013776679067378806341527162560832718115346004175037728054287916213928088062175697134652919267510322029751330458410424935348302132454765721407871383707050606084712531877459833360454239956658362809035324900813981858154898768206052545856578221730164091601154813658296663830205598219156306659453631760624669458373888908801890165344730211624088497477836635932027602528706025033908994943410741431113367201008864010039248888887747749316159228929245100084588725351095620499818907696705638807295117238845120617699980492969888748899927079024736935869131786661974251567557258593907702945966828169769380673574905244688989641392278231311518159939876291923871514714533038150516334351106992088973877287838790494537930402984731453480847270194030121765455161833814592255174594308349335359383312850487988476022699774847918941191697575069818718591605148139465419074168204229080790409685142550012647163245167200085643986639914896266983149782239449085225871544757396302692432562765604141668122372872967074718948906477595535484243020551015919011833219809373044233081172988351634676270371732296781865180963023350988210388370150943488885676185028899698610713791739790462405429883200415186305243757139382862017954016271452505615007794190416298799981410401900532771035717644108469357747267728513004393568334302291128482883532843211220199004764928580962638748090948859126633920626558764210482069426495225490463419642035114809652570963416044143285917481178022325219603500008260642482155249388544526486628855177318195503860117550583933117894010160222568733593910330416263625253464446091334457905298928077653610505231453285504004552461025124929965851258565037557163869185892450940101668918331580384318336976307212885001334800001647301514409013211780622692073055465681584245188493284621594500898441169817477113616816560715702056943868337650488603399217243380197171721946093644143143707271599856024986212880474067133811278050295936779945789416111304357873303601768635303797098006905216484871579250185015067018465788423375768928900174242815844870442337081605080193398171765378900443880391556320218960147513020879385181423575195172236623682640965452928174781371701108562477974128682631302555064259205396404891592339064036074102740484276140523483975805656316082552407117741803928050124813217827312407266798116778041240064822081870069054268903237825722589418505522430726038866312586724191110942839911408629615156871371340447231451060612310719913419043435438267876544580924915040235154988660338050630222267925872208138360649540008870891945001376640069958931524286577676954056326881508572384301917966024832764942271485922084735393913357615305806455541445290404083518475767343238050797871070055546462255572825368678430507893371582968077904975583742410122707200264416171865526386699305618921013480518261937922881093617510206296107337167489686626938827724753141220250791968711682143585003301716335115702912437037709314293781859534198337855677698035188596250671508103562927237915932400618208818436913633921335047862734425389261387801247931038569045786387214780894402526446755754857660670082596026602544434896073868459716006871801486202731186351299979741836730984755965472786566445090044519574426931002405090668991510381931392273753976111934133188241547830066999984807883677966871205254513525117187402963636322690207053716534345495917274308562135595781634358231525187716689379652811222842739835817379082640509725221726380364950351374756122882706278018861488482263484013170393353936056254550833801636838824225996032735602852415045529190663439206153700441027637023356749985467626622682806239116368530945324917720416310141746674869054799708357172623284584254077022030780923342133771553386485897576638023805145519627254452448465812312428384939437352002332813344643220469998372889692446561802751720010367717878498558667755392434453945506149781245526064258013484556592376552983379309511511725822417862529019801190369372909651421244628766132849944477718506858860936361281373720682175487262853865024523245807688762375397585223659458901095463258296538105554556190117415304362375298374457380696299406871482567291082223377124777071105867109855532430555086254423204266451236070026673373195861795788135419486583980005415750114756765036205781097124825686006241282704900188288337731971341888125459472958771225223537529192147459471646469007614238840681771873831409684700706854488666468437420676020079421257835031203163361867430881679447807556938438239444649642511878998875601174032316231932625432788805239071828443542069433548904450873164281324202144980120699996760569613935722084910475317213017434547152028062603048012773947289996568118260556526483863672048913512794771296499286745440114208710388004439568521019598653737500735414649432072354021069171442648384490998161669029476929573811971200923692867673013863887197731184709789176541387922020553832586697439758020372443185577974958550184029014188875957277334532724608405296420245855598787928935191165498207969018800663837048674763304688741021239623697945386794570006901769546165250077006017018617557626110805913219216865391145529241684625968819681337923052929746990094271556449142634097502464767366507974418121558572739031243256239015565192271500280892962238882452139674630602479373877698808046018739905424314162753967841389918119903107163755247583473356155714026723657889843022203314714959106952952209764165314753127218806500061696993233991584487915811798737699856779427121250546137431611078662041777981123180421442531717850832043947968751340837549945056144563799279657408717405164263632146560404275416702455868109794200344537648853422616447527580595515874888034418465760580070634941718272439841118395660016705159559842409286344201933116711316261300507844206272923342021698350059716480861329929112178431613793751596359303651013155906612113413480731559086077809162179971999232338949424132092032586999608702877993637701921733869519849033891274409948457188858798910171274595050371111088149014594524821612898387850199615331734738141071664163527327687058553770653851663416167757282530573610797423584473062041321165477043063717217057420479671519501690519038536927367162273452309754456735178331000269306516481421306980457132594779884689004189483530035991992205109275907166818130394165991362120867006393632213123159456052386277243822882449019713538122119457567998421200202090642657854241253784452259154544353219413242186372194120823803682635105864040549993834823031949992471711824297526994883974598481803513001368380868772881032682826771157314114274868583285841581428101189092941590130405388723114234878704471923574575092478857274239123923482336224360544931113807856291525327136429726065968550866681927698203293121657820816511537655276232131255817800537723368011102605516413415588024814371329987847212788386295405169327620771180188848957196493383026086124858305082962950339725608892475021804782908548433919725106612099976131942793249152658106282649917583652753150019205406565292817656889644552223106806467425891626513258112401025603243213385477513260104368024160113517604745015489702319409758847964440059552367831506898301555104664985020463640256238056723458950538845513250522866967179226026035019844345037526663868488863535539221930895379330252181448284471356484468522597447444432596336868027161758491385392235967838627777342181812376894683673564500711556200986797967322258864180928732552576475028745062077363542098774229343528678754307444084723647103169880552213686049395873101889629188920375492629967387031980823479802845845479137168225083828629817276420802931727697528546973551673476678221575213659497349853286162744673284504145396381112662282880761261181903112486526161502403973512433018975760316629108951154460452479499928488995725650178590970090413728045660291513670540984663018748633533147709025982839604270046575600499442120626272412010051073011954329677646004481507437199332382991228176295872430247356605669400791545810186604359101970272270571512189257919432917212869431789015620434760634964556813491553032937208637970877151424894940414692961747093524049192717505161379429751111044229832724433684663391313200989668579143332941666885565698196255651613092108312603553945285168202332964887595564500378539443287144856776695839614822337350602071419983313773864261730276585162547146281612895355984707846655879475607402073814208279610804775596902678619253898206576959400182473929661460391337818361660075489463391444457121404413540543856367936168965242387786343495401452623169587156501081083147497655318908972103226424648631476540405140380613287173700801407492614317533237432217537169957093026815658256410767219745823864072985338395200379064487931512331327848663961007756233527138821097034428607299087276676059732930897802210808142521970360412034444366785756510575428446543426569521721825262508426651496708758792437391389884097525043683570624447582599997910863983484821766580496143248162550009925603617555789477912292061865423190184073229815018146951633697732115330023838926056868523125613577735486223522965124892257024751580134547836586926068672495793307240628632209306297379058052557827020794199552341813463495713983453794777751864447847859462074287400169888984675569471487821478695885574537391987623592842229444792408290369015323894637998744399731162822410415411561290126646948315185864308342985493184745556852386353719892032238616216310435555571566970632376955785865252934990074196906112475055276328999492434886439117951803933199913756016523008169492728575539466252669634436138858672740730758153551789071797606580965623091717986929907551108773494710085629171200771866871478722194694666332082940470633765221409757586123247035286791588957297898819928694526879240821002224074586051275086686761115584348136258927489360929197387766459002209537062714565078782713866267634066318931479011717296635123237363919151627761884723830561053821065022628787451639856485203475406404814380595478885555714002954966096529623734577407777073824432808767008854428647355517661819844872743149041016863475813698570245303314358914793100733259961612490094973759785034013693159828012523629737248165389763036297861290544455641642922409130324832375681272910780527539399584779410325044351344400354416331867777795868683755731601286167095328040165608913115170683746849483653314286954966217417875680079914001953492503686384967917979873500547319095577507658737607196635496437843683092290262521160235479537993753660324578604025871629440716247573938157402653215996060004497055750180705337467079345592652891552189341008549119287578679755974877476235583674324182616494358726174675739814383729052894872664236236704336968614536685399893176946868109763342274334464863585450125889638157191952556349561673722547950729857620789436195942651099519760958766815749506725162296997462914043854946397140723541945828517129734730971670547988117112803572660911196596313449697904557105581774068487866427882747420993327020833269201396173274152644359434389404843686154246561740056488043381829918939245681245143569438873115344179485272849965877729204245980376439816438620590186140172006347429352794529033570597471943910688623579229984661899638190118117811139075238020019258237603896146614938749951678885302831207416571090306353728092903152778615475703616615279913862036102748827396668782590502968172717150275217824086197933026555972446162485260323876570670475937307199075700699716880205016371580277716491298504963760983477252073271434085703664913581987699341099721998919406763395909044659068022601538112615319770833511081500150296549999922085313693562391239719200422171610090419306880155750039225477901900955216030152987457361024501540472597927515921014577943766376644887187514215192080071161547429586601374754599287496455013218140897016960848707181034329548912916179627662862065277052901116327837778922558518836413493975038810098274880376540935657164194147520363999225319690315366643428925524388226110933497577478602681925275913687583897352884404165091256509883992708038622952257763929371539265782586796747405730209404228667423802327900374762242633526624136336613456095908771099958673959405054270213578498804488673265211409571550870435408172192154066667896072362445310223427665808052741998119690514759955918441965526937399046618871054964358864022414829250285076292172166390851381138404432348211452854228632175705003117279677755712248673698490488548879125221971536156106036772408133997982549089320487643983297417699078060491120827358697411409245177958981860876465432523952263137933175082390734313172599356101884156641697548025417245081496979871145926785235130194332128494632160643795425171223200847994046948402966448564572921723403029308345691858298176832901762760910746226704956322583833288619255023157029064553398228787164038031765419155806442505413711723637507160744901718069753462307037666937911814528415083191623035565490451691309336728694536906086282155890330654270566285706735219162178867850977357630955815009935165603851092146363504929190802435921043313075198008219637936199661199910409745937064985379089479060327532300844965573073674076646060956742629490629202741390464953259578171947598197934460976855974628253865514903203915834165639088279380693144349412998613219550964115509521468965986010578575242271181222182769196578011484008183190512226525193370325069295769214458495256722833598512990491341333970063595456998429699753063569082471021293497209975116526322910757387707276108873094886696014821459339597406584312716837832776017475137906862460122908903532194094127123704451633205184563888750143509159017360822236564124527141846323615721687246418091617065919605299123831854507596438845418025542006437156147145262735048812674190034025828814293340815177322664361038887539808994627796385765303878420581634002085635299635416110144282447741543260781083038622361745955585370848367771349558508589331030474489250082184302471142837400955995888711201913680743330681726771588007437953388015464305220364949048619687818125799871646909418365356475170596990242406715362815988417728929852452662424334265675662518989846659067389030975014929379756907182925269443328566012289362635897232775294833134276067455675362643986837336310427886821422422650835551844550913923652752889975521025949147594325260378503865813367244494126802703676985699763376665512622530891081406229829903236450140515818078369645179024674228613183135479279668622257766536898264099754665734434951659881617384583911915869764106740954003202729537992936328330031680966495710072827782961951391741374779115089754514055777057484834904619176865524423274788680474648310145778379725032044590854662175581063665555804081951784211998695564966225046011700193680969886189985014441859765225862104689129903691570440524192096803063666544420746608161472985029285119275627859454173368764508244482970020290805240183829944156877415795929715570893269522579904401208556908647006985786403831966628865932997331590358742274058114485772533827836627227532820579867995189772912469287337659164525194040153490690922727358600528527330604781612575730346767390155548855152925741499209854621129039623652040693762559315756415114755888570979130728294705632491426536942534336211693249710269609711658986468843862285230067973549476945877230064516226314473026740496687747198131402170175476146235819779808928433224952058383870830934211895256669743923656479458791760598195828863791497361450942338569079517731724987147518321534546814160454214988168892200825631006817385685054384460665973580828947026322337565079068077180450636519532133493633836838010254773103216011616370142361533166620798510729637513642709501247965897065971093305851628171691781883455548956058563992733851042309619271507234573069760604312274405471738773559598812217512621716136532523204002401437331565060531040399920757694820925420642469618442446746330756476277471427462095578666185727611399812512515864341111938799977012523730755027570450180829614845655553819645172800809686957197631427247757714381058796483124953930032723560029259774972886393545680804218653995571981436386755737498799311608919421997269247138685763412382830716967620578685016483097904260322716930429109810684099007830172527391448816450989985388405110241565096556533801341639353071786668835995175258845322990111803039468811391408076848495518769755414732019102528039049122096652096206728758877302854001310342437957369425872615446971722106963424992345956129722103747005119298263259210489243408251206275618504739609355072622136571170886129885394475031518479509375880414200097650818798901520327761589214072363797853967105647133850388437853897628141258217707173010870254062894911172868135003354460481279093354232837825385621476697753520906886831575729169048130842493805809591114110146011360967438169574222881869482697309835706613708366464150033827168395066580150321042800624785122928149612082720106381225984097373668384023797075655422306720943596908218056646803309908559414379873535259507898084576471514916458351759106041857808444284796925023605733021032356403362536891758413270188925439201348640034829892355009844805333535808655815842848205256027113980390461499872481166547334381754391184883052892935665708726141514377518574519163435441659830191831783113120311052685097976989394750472781569017408533016788647612935234343538240571688258813910413709195971063887737532050452531473987841159293546402139078741119652870481085606417016971549243822300132588628139083167976969190300313607940127968089127094951670362824336096381601929998692051609301862752330013197124134107054419539640127791306903220381106955893314488865255641254515104126798338610962898505580625984431671627340914579923039440343503608948272727885725704377164991469719715804428086573143930030611432660241954288674844543102486860025093850808630253729453731795133869413374641939837806386899000130527663382333402350947770170477667145172714950524088155073728049909134853476259607635917228923201986389084533707870397375495063233358393807451866552475291147714410232072286220461043663999888033264649774523837780484336500849037425498506403751360876635690353304475150614712596901741934490186383946115746106651992541423378602025798063013582974836310797402445125602301494997870047922315489036352544333687360772615044600392131825011676581148426976111325131626877972950784942897405316765935874710369801576604512824909022362363424005597398991276944569045638114860041127614305350027540132906802377564348373107865712188991710004295514460688717454527994150903015709627902889535253905116563515762229824195922293330545733751571079536199924307334736970784429904349492730897171475784299500354151486527731024735766462967620891597303131498378133552957704155314278359575982990319679767509291424314597832844415386590510829464111410159393520466815224159941714940903997748449098115178680048292946727312919272077628586081498680757138165745676181572406916648604992696983445570686398757325327388644670973904263114798466652653835860348953006297797846674998953395297297890717963397980900688079954939777006426497593827345072123613845495859884874066457892774481697164740229930382646725772560503572803562201038826117447006961909102782852604799204185817566698322104248028124296273248008848144951733947061671373419081674881929988377862820986081850701594239599136854664123166020385478012460123407007291617832926414590357415952406049948686645525673807857232051922982307861096719486061751511918057334529375740905027673891229794455638242011027945271976253703004793278871832311028929313758538347873847520180742661758682538970267118389680304184503824960142823478588230272701483323963886026000783638059722534213200106864653325806963227123385929566333155247627967807778038522298630580548153508460908550193016643305649613895127421150727112961994104982295337482925199555126128241796179907921396253111843476252562487525099903544651552870030022702968917519936842030031600053324091123336819594291503707468140314772266525430007243394350592023733746024452182524451457567953851018584112919520353604048700805998492007855281990087449456119350028700318346736341022592236991822507925248256666814547545887368130117204098420672856388159329810768101538877739438013686695503727334778357134681719469885666770614543504349608044264464170805438566854865782757581609518153020084681612278390654759836029256551866311409040959885061770524316302960572691749442934377569513655632414429038941161067093011706331079459490303083168185478245598344066795296601341450576230155320820676754349019315798492266725069047549690926626023495692343828079538900725382800041358135638853255840046022745494498584712852938669852996749201869545906180141799931683837981906577698791110880614192366986643281276093651268209241025111410223142108153550352936890258368558628990338816599809016703585439150518755932816256787537056414429213427703214788034617962519769912030409807265978425702937318297235688542236129718828318344996195647940579949943245172203617813383279060286451144259001298720180944694004412485438624209398978401808618117805968313108063222695784447189356781609207793923427509731492989255600715132061627338372900043598665465617233059529557583355138243179129581660559163832809369947731111866392007326301996418665280650986081111992685640566922433364393251742267102794239076660095010031797110172072220541461695599777520578685261057461373170893779045547522088294690768034898961961505551341512744330624606245467353963887400113407531604506071905565903966010585174068121956360000111908195571900961229922624026419289064454599582274574565861346749862978188798106926018676119011220537554953751793696778744937232383240227100260243633843181766595825646164768884367620996835670025307641467400540031179715775861444598066893208904599740823375748667270230175240140229385315834169961926562705433440484637005642419175414579792605774502095201493325250268098601251520878744438994441027292563702205662547066771999790847872859166686210223661390683565091327285611866117988570626238029354571618244821877785896900633138636714283688963995410883970638225383675628969741163075292544069978537664158589742046125658671645337352507070709726028370883543568701218385470742064328118214998006916786604749393595612934075412806989928971812117396559009152405877858136777471212669857903948143227867327616566512853643965297127967660372583130413170608631250550003518676934979050261384532870059016474575085114319006486522832295012523453669654843745157689239953596297016241554699918139606243906666692030023079111358492992817460775581145872536275943637738388524304992562337183831629390729799125684564668083288776921276213353630557761154355179587166510150684416863717456004168401252657013607524609955143641223969649442757575978157854738069520852149517450903169279925488594033252546568763086041444796272939798153941331847487577839522608196806869939064206556930858280898406117270791423063428331266138927500866426916658416072569471742125704355615005207215901757875654633519123129153478225590334910595824270399388769651512029664066442262022235774040570128335058274226911665777341384177353670546461021695117874553585422619114862546420789549677129650200138785889939840424472942847608674701453509382980691631493632167057141949201940586633955211050319620830002621642778051781331605283605045338320543148932318700729137498425199633617363268428361313172768431453365588567036905169337653399413688365643338267727416351977231251721049721763189982503614494916217330186299923219812291786822401147489830541643614879625343046574142620436887925438716225108049548712214685669510920386443714985720482285770741334822342949279892509499752030834496699231162094686782773036249881889165410739565567202870346196489356454875801958709299601503662164415436252412246435975237224886370486821362881729222117516873906252075497331091472858732151125070057117871512194664229857221578985978527445845539216708583631547948731142997947238189536166121659739617301507980769896802619046768033464593073759168108882787991478979014222047149561152680464995460287494125072693451124363469168235700416495993281176950149079770830222845911306090262327354216146314562747807775390448606436166775116470159298171555415400530156604988420060383412769082097815687733069022994243680018361527232720616447427581895439924198818981803840234470250947495352360957383908081639345397112008236504903153023607447994759260404123174667773875109678850875861468580633305143320421219751189435297006874960503855168032169430565234911612201016101943129791271952958900532499105455221127488377738656782646675615492533639708157680618471418017846841891608823604220286227194220468319408919678540789709568303762437989983347463446078966374270583020581570958090559145481894228989929263206960282916996053450132677648098552618323473200038755066560257221271343882144028322822894432283720526212680304043137515316636382395100298252483423623346837041416920092273813254674200360661283588901899039559076251759109792143198690259752801356208515059136859960200894725645807981617327902691051500076464091544791224612987945115305703418652224673713851809615367861201304001655119788657366647974851439124600276538953257466999729673922820887719556349894729789432011596186069136722922938776736789134216722232349067547966582748959826831425436852307996500293282676877630911630667776359591786467894429613661672881291411726259272745701585180233246429146082024243170345847128412957545165957622709622959689290766696652056234459902731625020743062270578038549995304470456222329898263635648826797128086950215443379853551514964932607412211060305263661646558528060822811148544598916430784042447619120647839953431029120029536644960673431296781820339920150208339176911981950785994890749069194699537803074970208881126256124378947851459852468693341588817307858796451756194406946757730951804109173135621058806747602788099197688920290036671345992028001605721682633449027466486191999607763915068672578888917920302485282989553678631478448077480204955539518337896485147065394677601792698856635236929392641272066923426669327531088561115927624135257460367077771548193372456957924686397026867885204768803464630899810593382510508104580865734560661073686339929816361941013602650015487100247477221806598860116336234758389437959349384965724950143363066331442837549450606121097076784437675664275338147939331977168897055721344100278454243985849921092590145604745167977940240307085397115634884599129725472252965621874549960153979063543501416179330322486630038022494970309881113753420348722214056201994685653987096831436865817711474376021087732096561845935405273905607694429406236812856738610362264957429026020153837947959428703085531845449519255312635426217015128337338857768413606458985789540541378226124194539512707135200240418178046927765546261772170308301087981718626528331144347909674401026257376410456855641042705334293509421819045517896584741368449170127537759245458946539174927672249870195141353070889058145930712420605470223398396615571129292603834966333695529179351747132564530863097484958192977765255434663677389960364404558392992278355817822299565862744400445849158895049012712270913565522585116310764372281496985293309205501509621241315384638350432809322521090550033527229244152476069696724849613189944233497864308262637125676181694526676209221008236619865442949071884770473573123946671758290829143001409162216488148014496876786456892483087721973215409956670187995347847080243742931665143621981688355292425203045393101631708708725893606921172049742805970150834117395457626605792682785011690764149782007609982277299703270834920611888649692191270383557354280488922744606081951385314222042340667816709575492274545147473611391230689726403532212762307217709351282110182737028540983356360354757145441435037870461007134184061907083223318944937197331941314078290574629069290306083144136311561773835675891976890609921959653503501727197149509008609821280473132373264490900801985789438034625263383528859423290922213372317167062854803004046510023679001821402731308111868024596791598651321097326319936856492561910133128115748562417637861942650122947147018420177098447813886271493649716475222317355045194974701039573434706163559731842193306263600899650397433600751835991908611042395005527106904209000711961258101603641091209901619581929132048248093825318899134087621143494142183242020267628642702059800458875523664112685773254902455925516133402377999998337015063679381840688321999905350532946546847672437683032945348761844585785239810584920902889991847274468962456223899757530854284191663161225394394002460586216625624872182422275386159698283346033142356189620254954478852204056782891165937133797690088025835611955634103615772412342768327720688676677039011416232951277633854976431016633062322219980574540133896820399960674837885687239892362002773700632374058931674728642990581911138176796715456803266363090970880924147791543732069432076288493529055805635644059495094695903304835957356552900340716881972916015625412635497716488655690210569392176240606163332018208988264736713092007330857015731958920247320534067765772492318934776086833501723501189939904539494391203375882757611841587784479446127327578604057378000816222858733969537215161135328791400620747987730933479026500402635808735541675278655436189629456833858012408424667684342278371365528354262663085222513159140653940300841142201679888493360786241528304963589148806473742613502422441360118392109110373584944156804731192392770802085478965557308576953529138560836351822521215270102455983750093379260377990461919151880477627887427221177917317282519541140464542532766950673924713727546035603279708307324749767608603417562635564114853071955080009543707116053479965073190461643494273176789477102875548110202627063800558760800412508172194228776547313029647282641821256333927947214161689600456915179531825195894851840535249124958671513234288607608058912414869591979465427238036561167064903516834355841662410761597911539713907408784007817559967247033116131572770671515436847160056853265704970121923383678974117016807147526745306683214545426851759903316491430601515475690619050126064440659189017155786829161417538955006183929191924635769634717831537927185508987500754783395305244140333538734026594507425680235287632583251934956918428229668463521547793510569116385583343183381163660038852504865803855874221867056573264374964650314141732215656250714128138846331726259755387315278112780822565628741219579908840544990058496726768883426835674947039321170322549364721177846646340245923607618928059786138450649908944748229816530934015916784275122030140397134234581615424022861381466404938975042576182096167362131937719845052731478077022994174052600474429475988114634577280626517017440139733734751099744845028727163317084162119278294176162981362835386903640900468502883367212084194793798159739421515514685981627038556183950694715701392051722622778529526161243809749517976559751168073650257154339205463150957331071849600878267817832423796771936668885376034975541636883418924824902737488585770266840033912790301442336500061919927234422226510361428995166186345864705104611308525627728776601948136367186572831850572630706211881413874978483466071790001537291703222131377954829526253674344441683558407676226660688263583366260684930803924479519830154560302693260737077922546449355234094721031522038439742290378651582736955412436489201735300051852058342528995190113340021197994237547584030960114973944482239761038990207189379667668756415870727251187916838911715039159574792309951710376065198949032097493699664405523577811100832403776267002915479667086762961921485529483844733757813377771352283054824438173107430881755548370904664341007666174778187937027370427808313167741925857975407632759650744742672419255727374859927897890301070853736886294742975778802148855122507866229275220908238007810654579181824201997813941736691505361179130866808818353551390837689836764312085398867651867539885901308023363049640793941160090453883420049016278593488690515228286211345623075244043230121908820545194261845528459154277264024665237622827219293553091677864459420462845190613921178754566207749551243595925557634801181132496037358361281084337856742712567426244813619425356122782917359435344761760937885825058840093612222274618780900310948743556262930162300094559301917314255732294729993289363373077176613625750530046054534395561894237279760591589155098184180089763903106431083448534937461047149043347873636676931170818031126787583637433179633829279758437754980767314418127859905796785423652037624216141920133357958981893014979763068224132934229947453245427225075761889561160743593963469606598145240271891125807765131506132836712395191463007736081422496798868122738786507470124021066705541590880778764898498484274807358875160523036245248774951352345442150856116021372447189104657691484461994482272687909350222733029038420045262842675189342862801891869703474734626264376439591342508426044708888137711945179990307708149952755527299642208059129269986127971277893960072480609130499532463091692952232951484400814233199520958970898736165289915608537500487461274829954072167360178044522696440274337475749840868328231865702165136698143705722664825306090112574212275314090529822455962462752088120131554765720429276410195940661048854606914700366963504921866181502637158112208527094863708548431719496706494114650108278588357321467095450206651490025168917068539917676693661762104357345422410104865867835055751739493917779689240449280251859939244263881685606972420061324508452621843493341162242750802311069122360989558123377943084109101944649193471121041680977815365731627687009869616991525656730814941144591551964839157898611822442746507994844708861087114332615929568507456811264002507159599131191034921720590873627304940502603934079872600475653732531946284211519769260305070387113217003201919098570056959270672262854454515803765873340289470581391473717645002053230898978727595705205263844944803515459975382451217756183721076613709770475408907322238586014598455222528277755126633421239073460908824269690387872799833129441613289036560153099429534851569567284345020024776081162654015231339661279415878602025761001736145494657023271454045231740696878894947826714043587798180802413588173571260743794693799219292228642572204767188563867273990549985852843120327568260655427626748988944669192480350900562647155909131657125458087084476807098086941193234650561156079440384519906541455622838781253344997873446130197503309022803175471988751999639195283905497389434274182434366149283805985144587306199092363217599135315695043051601658787071018508597585009476469402310316690323914132385418527436281769834247788950668620087610752075865436913523913087786629142641137570648609491780260184628481849187004244341640247700190846128384470608630557874844573420668894590638257454385831829560945710506211795647501176965141152460663831175262930829222773756578807286461158721067631723442513596517457322777875858501004408661924265997696115839168734189460668296479206233469047846491649763719229837605008639771411739200202760899271825346626395694073728945259781372153541075743197957536877746903264484071770833930361202927728213557849881782557118437618537318560677909746100158984152116502570856315183113882973749191758582520467850788003826199957442138980682730131689749782187746601851125318215482316599708291260255062841812410449464213754811671683726229538364674390456383519961831485113787651953054884067868942715672764284230968082316983876737188881551219650398805852127758771222034272462694121659597181325128490654109045452926930569062274858315500027560787636936291758232276790956554653442841779087318897710977684862365130278386535378402427037958032837742967925955593709534943220626872059248335338189132971875744066764712138353867706453095690457854247304426270316026199314679132439134278986990846469370767819628202008057275065844880637669310695981684489410307587776418201751667141434619476891209844940676195455933328333680768006059602889194430444777376375177309591940790736238570792526597240607484983212285700253375294501356122458139465148586190151158208901849887585181013438817645586451585368401503581031735488855396337627230712617582836499700764927168912655336533071246712206602559410901489417669626209140087661615301342298606084755052554358051639527623137037160226385694843740817637855422380560968738519363105201669816848151256041815575256243466663886577887515488408770508505818650347597586411840600514108283042745626319016854229052064123060363284515402902924588781273866180129867659583806439443381755683622839226884458700318774966805626378147895507417290023452089160815518797032701989662966727489161869246842918298246030712809948813603607222636431447070963262672381079726875467446205732098459077501060150098510260853953262928613226241112661533715918335522536946954159348086483662572644693247036575878679006782414511488318516580967324786539359444022770984980677785629807972931559210518441882801155292562207613712013026111735008231473524470607761006164935716325583416037446566849597366111599605250914216733403000225569313382100178998607405941312426957679071809374055633601203029314943744893128325627933712934863403915035332541415078935607947541489793188174514428211538411928704690200955051671719559676239465212440106740921531661216218213819356847894553745951957516494077895345019270313948656191890496068566675118008020223104761024007472586459435899838005084757364370773208352722227982653471286796673734359358859594742781629197136029065308027407731277967581606316860951335939261151803056728538746241761763102972298440989030793057706709218307923650696521048686185199076413284123531416714236733265107542611273767271206580156988381132106902575881281176187269862186554200744312195212680200440130769668854449338560086082603072649184874458926676617449987634310269339223842120573942697619815242540261072406813929166284991478179885856194421110423671264526756563381874677170069656827542441277899128880141082995402619230165731970259558248871410125680457138649465648345749949186724423327774759691506256500689676698515102520391191895097081707048504179254401808082121489968361944408669976059998924670324304752412199830846429555594627756097006453619635636248186456492791756008087307809360607266569178252375705317598922205811696300229125497178882514873524281021942675026447352834106725139204290626750503993347374876318357015712231126878093614233615989422973842896650006836540118852597691219430679106703453831255905302807685280632692047350311022737869593322387634633576626872012870782312414140784096695411359751986282232767862573864827114160524876144199371227750057658824441326852572564016663515205176665051866819435347836527049394502210689895917840511740765938625388465818748030337408336540485900680088147720353610719598670315531271949507999497882479985872732479277249835478144108740416914313727133744541293172207006781684270808866290147275652595859433411332542604895935796665984862278113485260005288288575327985264822965981211327567301805004474542961770285895699550817836182711497594121218255710535542140030982208410884971374821566312673081122327918132735000244147216657306049510815166663797114857628237076495869355484742779830157674742138889957580727748850075396623242254674325228104209052479777564724136124791382964102299315123809607710996861787347962737020202354393434552789844748048147483680097800196493601553278824979530365465877212491681391692978042402990820101747846257989330204978857642677212425549488896546402097275406664443880760599915646416300670916654348857741816257316782821109070243662012972406996170736422084445279191212951240161644525188309258294895135447240292065179731828969225354667013880511795819156703952455971764360994933698613565191634819271790391798186936350944354978709184524424900195395592724635954581009383389224591468117201902854522905370858877268117212007693887839651978435745974514666551717423071589508262926079437888491412647909301827097648031040426112678036839989509172124422413812588795948169515148648154654224989385823774391933420936886410337538070804731080998049487893928782501113905834456829308931791795435282257828128788869254399783199881611021004628270514421380757351774177113774134307349782324524901548814427489624309329410287842216332428232253627956485415805688059370790023404038283336969374869625769178829240860274642040627398988615192161167718148564341811981070124954672012043822250610795063889728192847741915304876590338557361744034170877358303427572975185006727076176905932886268405327029687681436459133345616480686083886633956361444937298796003246427655162058674413260774010589110554034408598895581720530864984718483692317181654848433614633500365465481045221037637523839920355895453189702599517194177065843129556122256776937095386115371479741021341090611507848883827591790631120255873450092904333666095003980192871501458330841555563255484218931961124455606058669457116703464251432902890444670639953756539231169999151855613402586665254910275107253982348733819466711330353754935033610708341977806327312355938389922486313537742588152954993711829873367200867065876197370548215996143652220031586357365928873471122610671475043543009197930952933542818736951010340776027312622610712116368117182955465902687551169991477511978069613985068430864158620770181917062763903649895581282763112321966411812725558071451982650256957348501080616991261913961288666461525783151162975923105418321467708211698550725686273043865276946541706366638299904885393987268514322237556052112282617833160112580746875482079801188617081740784399039250836594244357069970325563050828415574784427732362859552928309987233243661000618958698818422020103996051782515368821687395698099857147720749711927712147583201885399228187401095170423392844199339475546991836677746915577891720369786322176696772211869130439553773336869604293938164277992047164924979624255280792785723206271917559839149854429721152296647062304399853665293682697251558253401970789832903849456805266230058217834288299364604664957777694966755828624914923678550505192520843698503863257902653118006692761409656363719185393383653803215963725287509161356488504407139583726415335870231170191192290195267730392364524126867547380977844022573789407623037566595156715104019930308915444882742707836902318124587301748120564562481387110191081277572666637781015850711436843682807695860492891972635937991568274542106886947248556677458694557530230671825699740977951647716607552569935490870823655994194025076726600237187241099148884952457410588991589961159507103070273350737724947304253856863950425583596818891865472780207075248304946983349465373715443097127284677337226820226771414581672604069607287006905761393143528701958555894023184199221712281346252015574598840806274943583340340311888568305283323472556434630571414569338937668907577467392224706055786965793994530550292555907536672059319783444870540593527008994142358345973765562873287314633332328451194960492956662833539998665170209303062259667518807006651426499623359463395503437941675849641293544450390361631103833477818627152944326672769723895434955440028722859913708641086090750555626392557095824084177691948491025305651724075728491850117681634383771357394239129176952816108949171114314724796146775911362807220423324471290228286700683304842921331422628582403495108423647883971718516892158216604024592083392857211322301195517759998859072269497538056470696057985416614846425220446915772224998426156863250846053606632478560208859232736592325060824014735965406227343194919563327794080538819101402220576945104073410876779742081455493482277891832282615753862549917558276588091300794935819133260320822057279350706437694419532784872050178012619060975498375958490366641040120299716800813273112572801669287353694020979776275037017084801331959833623694938040105643171855449773522163802481472996720827517857757910972667398458733203440996768871058090122013641465685619256090910951908400913764776680822839169335825948383271609409814446820821803203878123863596040629949442539286731848594815502605470394779118767779169388432976150528800495952030526185633486748995791913447327754655199901041657810586021121927966721697263677266199997440053362900693360146911032459394435472315775712588139205194460231432424507848748231559127980731799039375675943932031711457059112913132096128341519149048190905828376736784253922190820691552359161419028279063933722686943037477296682204710346368190262147604288940081292111864973722456688700211444035366479047149398862353121703141344585076194629455962883409422957870653520037962899360443706724156832234682033783998235257224052311278147124578476162529255663279689245142863334497616685476480187111085626557624348148190972801501434016021909704582555688910076624665401412459756071619816138388369085757373741215880386996228137732372082768354104130954685770361981263207265650327381037935746530012175574768545762851822783973852285662092890559954311657871325655143279771648700275198844743823476151085578285645285918941158407074518179346844048779183575634839834500960863263302466294245171326383511461330602986750690234819228423465038407562527190188475236675619322409671913081323504824566648637271007270396662052588304448928343525153367604911663094763648773375850631913161334877417374398665385686447527295250993452407234545402280883924210028538734073667578093429350093421727287643299292527126564510504814682398024995400927999065549817041936153023364285267881731263448517224628724989864709317066051937222227350743282437325139687859385973127128905484321599389577664298796429968520577407013341928184098257083435067190886906976817183205518793004570729833850823150160851133565703770704159805398017087057991252826399418247763402735853801227518020135873532086587716115472019239077071524728893080108136411733160024400056075760461565278060785186081060729396466720616762728812605607972091858028804692362045215061823585684368089152392250757176575652537838835676718380138427514744121802778684500037307328929810430274955787037672600760824985813495835219504020124871729700884272243780601350637833554338488395241011383145286534614833868931707203350922528123898155816188792300123004416060407516228197745128242066687328682059170267891025073232086263072381402602728222535724828157913674213629753833706444131784723414861600518280702558292581881420848604487304938130082691167341038021244589138643497460130594823396097902278741481740029047774543907374750150601454101222493987808699467254132251815969983101915927471202718244477236588485223869223550322071433941028398753833340476786875716014598241838645392361360874942925118938616177880125729015624077058557601133413698024077182863812507053640240458741035667189262560928012350870643707487007442431662584737683919453818768445209960752885687156571300484924975291541357911280124426408049350920499907959197759989588777391065039398690458999046989480136921195535505987363438385632114406862666434330720558715256198696023412863862882639849276494726811942151155095790139091035467838136265839271624564355308671602733165446008354461855821197312700971618645960082712043983045522593029906227489089502658512648677644530966636514466539588546878976806546354293773568976550382803019447933091386665188766957941195854076725149706538719159113265139211838971604101621634076053633210607497697996923215307330675845825495124348043038427567774245633999495822954827308002379113361919762822814392087472285981371259595365216606932127198001092290292369059400654805170752599455431059852214834646156128508749632233133871963780258846593028623848593661508548363973336393095018232757642226853673598954235919659957475831449179544601801477279236419084938092204238940814215558802242135859401933173733876654474312007865006905683586909409764057252171237885357039845580767792652935124584398639991497610082697972645916818661602956725881535635404157831562208258878065634514249859118019295760503435562624364156946278884021266427773858982953188777651184929647346367936678942327716303307300939971898541533670488980835305855547012639393016261322391057793823816892854482973872611608347864770304118979735583198306955110222886380875941246914773732944263697555827213774759593903221091791668461274760039351836905144024091129222854227025338996451422830209350102400489869670116691836196638148573255307457817481103442055591857700403046335743654110902748049808757011481125818030519144094017737084865677555103519831607623226737030389995375224018942069150593986168358025888019417081746541302355104178358621097474683895826958131233327202904754202473426254042154309319247168947187967354183192297620405340153490138971166507546766737079305965556177270583035680286387249607315558358255886022011112299970348332382513727681579088919609869310953113522335153104013370549577962975520581066969175538235632715513453139131641439440068962725634912292684892163033519883809355226671161970732409851093411900565972735114712458819150678885345712316372617534805698577080715550022474764932211991924754590343440670889935810002159169584382352009576910114959644708742669745405483599448005616120857560897353703914496694706682918584173052656484230492131982498993881322838952003169894952485874933228956555774531647774614974465126299191007274450690707580931417734490157227407173514256360635136228083429089234868161477444784587609825405144604145216922616190074208331101924666630626488132001999596286186253252348189714185824627373330675897407687843928090559196054030045586771637738205824574906714357068293970411873577128331307950642737154622231733253571345849418050369022432501103212531675544714804526028566396716907523747379735769131430308109888192221433510426984450344803589898332998177331056211517644199742865037727681267359649910827297573234144443847281185196684124897301358119776219737005343001819679711088838850206847153408483197253621282482878377354220729241314263485346904857763029689584407856790792266911178896416981499361887058042359599997320196602122251013131579698200173230699029932254860019351024311409693558935233877494150938839838171864190833308288488707002207577958370424361313616600423796764070684562059114788984207273525169882351344046455036158081823518048041092414339395052737006288363994041709997928329598483321240276998113604483979323343485051592474997286669469923872634542863007578279739164779215804943617933446442996436830039821713578596228205213560576193212747453774249238822223306358443443961720511099305804663251684520051448762935314518576633802092967845862751818204090762992310247962697012502477376583324155389362403560939718726258370526685188191708027759290659542345245160651231000297849463430376551653974887468347903483081364366830998454206129827510438712966563090415944043800046688808731089902707258799129939762664404674522251267797863008698358369095140345188228383569777845384902692882128115882330865212025983923622040984083143540892474877485338409626863583815624292817317207387492563958801168791215842810744974002968691661192453328600082572241916205974131673739803443916298447002446471515551087290580734292137651554090459240394599514264103038942489001153108666702052222774809104634908723864104513639089751540723607338192542342067455714470746282255241584217923096890360810597513269745896419258147990214554819378151295510127829387962057334557465276841826946297509394067280132497824252218652258349673441176616076849352201046720474831127898196081222087501589527394068667034422973924669713527774411326793488780860609752052206952818856352011655643280331493212424661480070805886618057410206250708799420542607234010035462916881696480498377358561064668927667398880511619866663568343764437222319170985988429038157190708293095829151384470831451791342476450872190409125348062691565246791495257801574130956010494769992821193116013717978388787928773183748343765222225399376480281643356386762048005203560483632869361113131416073759216267676955699807776453414286294331892565898251647938020159498181452587878184230380810355369717483761247569274297394588463100770208690234117424503805491427923481841439927703822419294800200709224309414852276633248749059070317693381608142621284199832025626219773511112394441255278850940933655658906607481490419571862888931447000117115042308304603658913783708969911963235529437591660245363578547769389974020886866424307060090175341680974929418240945099945971474264307490112198810714489468216481362058288830588055831883644648387943040080046930259708246262228835558995403771196392369439069819069553596814329648761097785372042841895955014059940576196332979789148612349059077743092829667739367309489737628634080362526993542974640029223083197610584960853130633998112725516715851818691684998098894377766281059402254251534606927654107009530093151924920219637714509671561261455413272980549518835707875911732184848399930816932352262551490604241579744299127475924277748622775383867565846958859814297979346166107733842943648537076715263332069865529784334075354947451281387245530021994020870521029154587782049962780603534301953582475577151604280372605832705334646695283056397629991341755035318286165727654916869055075315225893279963872693029064332587108497476861037221715976022409335231276873316351943492968324129160485026362211749668078773860534330159809759986566858351866785553953374214188990463010956545676999314180687582599279379101151164762136894094809062587630346569431693300617663731816466510525302528751092203680445306840201560751691632122388167084105328866309492039327417614335029063328978167074039130085144683380673834804761450991595715189700799383207459054977909181841276998262341245396665395471433139338483752271003818551371659809400975261248416277249037379660094288524892854013211069789329006662161676313206800371815949451787457213156630831293375178086190452554023106929438868895720451951987302706431450629681633490954447495009242904906952727381898800938204112133292879871066344040238173716838109245152874394880555140145417336437326355478605832916874830059050284819578883172938907614545666098521742626709003335860413817161863309223978781326553827244103147899443059683533088469827550784240441698701514370489117321619931454968484185045541508564346612755586046993951370911474757978850051844949075003659947479853452525984187837822205140789315788045474184322604255045432270732038348204303660082612021747871329356413058599015236345283830018400955010894777717624263856268143430248819942435896850055651832171893824066231347819973248054259918843073568583848249876234292690017626665523055957142732289567198341949655208645720097221946805718700613920838457275507622453393034629998379797560062414031462011869114938758132496060647564779612542950514967775877971232921407732732538013160534331159861755559611114603867693278626273043318601079374188380222977770219322248134696617697054420483987902703933880078786120852322716497858590073513139740521652095024600181244848572540155570082554505203484345953905965482332128638483082754831251518079041184872928728498984051095463463748615273204581394835654199035481267010295086469593279396876686309969284036631438567410830011569455688866550366790953201531815240594880035151148706216133422252947525621973916927004031092587842647326167394830552701223970326293621788741236158359419490809527116487729343467098406130093463552270870259541577906195427243320266692273510894810714527897738327794312079842384776291987693826050172567157916768569816457085312186339136672802893465536496161349078765765110634533165109649077906760192394649639947701479882097083668898992409751951999248021799563234673230946829674458480775732718724987522539711571737510667178729528629823962920280808756598416920991883891054317932086289542051522822930613831629790790535964752416992285791625701303074412154890357449513580184115285854205989131376730205732164919371613171370042309969015174529821910747276279505136612728526963102429442057171908301583369925625788724031119958464765894316278694187496407051401230844881767794483867184679755940814696630114476019054247851175470973049141037474181200592401582388655384578393549748843693516697459863321818607329230974537262261046216847774636776989542712709985757634293634960892825254476540658526172093094132767471707471523178859520806643154803823067783462233367854311584520681609439319104370043274397173415413868518991245936138728480673269123690573152340796737926857140317497446446448566780670819914099520178194101751657748383946907086983100572718345891831567952718734496410200510893269271819064520724168148105272012435945138200971929288219140177409462706198591163940674746719405925492339558446348052819186680445469104166406097921391500687377090738062502314316196535522311532705281079109773079881340234753563799866494146842834524348185721324546601467661589555116389392036098492122388324964543507457599588124758442211264904087824208587257329224876232166755927929396565292105058649467925424766947520627064432201743332960975105022084676024188048603502686423115939791655520335150951763115083599757549816782426947472117069400843015206447136521859249549530771447518306764281902236400751765275143471460566161908393425462232433680108794001853048180252698548883541296114702434226022106850128863900504859477776601817097454853257913937011141819992539847114482647405871322198838082685977203565979264662733259020841856631574551274557459603940703135315427655778510924897937476705284185681373350539066148315044786550047308881670535929038805275217611703973536771500086313460712650684274679730712058695995924498749652166637411456703239473288075588413464482484108152308742083776088917683200261823681440904929585259759453722304451855754610038091795262410101080466645953999048521532908944354208708659907378560246518738181856826352836545554929085334378030527905883653143764358754068669469724555862332145638238270062195053631108743667700590805086124618880274873174735881755636636110289596741209739071243825498996588779861487759493561105121195487113064827660815959970918903475817494730349907771240164715810755210829911890833196769270351769754979265281287895055967141334388825284834424487014108121914797134628765337115355860398539349237125094430669089169151331640091791389698633605962446556039812236762141533042360341979457539045908048773846280921179383773657164465695135240933569154831287875171043475276972386312480387505583001777538012018772181263076157391136064544095472830163927865079643242624370167040578004277909125993945800626604557707515097757985626472619034494474394565837639526201600278695940657616008194134580139914164102549243838154590063112335985851651409726531964873746284352344350085801467270557129625053674349350094853316019587813800879228097908993432804657409825953406211794317078082109064637010463912146166036501536598217641430441558346273965281939820360879902891553685652413755094437354207689924564478519804238548265999419770890429564936753700225614898398160593235853830734947478313262812983798653987617567139071243591326674748189310035609419886845034433844675889288218335670568758375007791880651573059305930040149586924732582341700104844381281318668283608992230848943005783747276994609816841954480690882287093752728167558578651635179048127389327915993034329172491801444664982535362132921145590574678673036358871277569396711401208217257830616465825390448387086119352309966869634547239295111704579272347731500650757354142782054123779541009830021950974063566637720881370734001417525820779947614508804870837579084071825676542470475477978954555138996676005524153261279359657872076599900093176579998689958075211047771852638153146739602277835703191583874892141166904822634558944602201399055681551374361912843580439766776133938847139261623014149626185375841506848258498828920284123643075551921359792699643181791808267504722301417859696515717483026905921240199484516670584126439237427383771602726099430405934035289676967952088742363806889467882106388635570690371289590934887731245939214294283678240511311780056201888264862251063879067589080671290858115740028792675679886570863851507778668963696482672940964524660813961346195780922246044607025774790902046634957261901667743510521171476652394194122905758281862228318003690617542488796684051224961421418447072314116766919163576463742248227829719857992290006304355622614425180239049417439027164469506356029129855864691091250290304256833078790141310669183874925209755261427566786844784559634735852049375363271297016864250243101503393112446723486757881426763321401922202518820324956174343543273059984277092982016461333163722215553100087842725191077078766555668333075246518837614059560999516717992448157948537112442152425886363648584011078608010700948669778259418565075989723040367497062569509548384451488396882731110900785510742288078349622234035263389139497937917371650453741995495935115533797314093567717454950486335171195618891539802096241865789647140374904428425179114540219509874151421445102736247516206574528194130369132264719460776362460129326529808472555676956947304394809234613627265782341099595146674592415900262396757563573787360333691818736660605459410271446264518637615920206337846148454127971931177523402832991839245040065763772590315572520324674553737920585460244033578452652186022468742266939749575190204997563883260883772587203293582921273508853625267181986134563921096892089595328743152468653562958665525486503696285331117374950037106049506110834329977195368127689323151003805054590721945337256274484967562922790376858475791085347049178030523664140022724987436264899921381731154710903615678863711154514746165587530658463725526740807059908279552471438936648500764418284237580129982094933100573845490715456158171458740569094836192584818969515011198642937806278091261288581435000484601834423243260702879269829908798455832308609821702077501032163790331334098255192774378952469508264272364601457735392260260715363768645258358056421069891762897859792870695236302078187798531250830470641179097215183700841713001477030335482672816345011986584923136903976358051161127271170658490235976652270216744108130411274510966526369641058831795381809723283805435491885168756998736477502421258679173794317928246715187756663039065977620792763541589303378220607265228300841191253474585659100249141123066106952765744964597377901826980018137753882909863950408974656888002395252539924026274620349851333789815330775670208833850598268452494485594902000065640538691017441030647479920372151842193218421849862057312634001384474298237912065189432684367181380679796200818911341366702908122291991668622666037110863556911573211448963443857718159670470487197210589920399698347586136317614597736919502422880852450039128730415546711280488051811295306181132840115073407639831627081603339528229912456013062823480424021336364547376836240746402400820280256192297682377983296192123247700722429553037489126874253312200796659392746842946796796814842951438424465450772359819481882088839679430828071842369052723541649730298556640752626947451107650508004421929409733898196526967695732394963827523225370444853629931898629289747806176711593573511116314675954833698930824005097396608380343948117362803771540146175247091899593919083932173987400783534947495046821603944744708153618531143848562279040507499336907977866495421674530698383764920938967198721257831882279003244347666039913584409023601716956523756518170427803011731567824405562602528876965283848705046736916978306431729147114662387410945668095965134432938223618465167337869072925459364877428780962805472791674735725038742523603745473317764230272417884202192771379542833134244398768762499768534962173332610382555821422020258099336816435758132307880917708797322962663472324196628894261486138124081767544491452902340267635181017344103096574806392570553908066565690576527226665440434289891976139015507932110606759890981035149031461844110327495005955872305051738243171207675031270283609910766917230276939256197091722993846954895436480125540965714919990331967667348881833484240453372605326646597769780501363874722148917375813682176640987175995223520654666354397184934312541981370945187063590795015004871988197981574262284444234235987568174819998611842127991151742134421099813746222086334831563250512715892367339926284341068787171253313212853863930699602684891035692590491827424569810688478351557343428122872032957931287820479426758697678777357212043265140366191059619491320133165796663003835670746758997730088066838436761067191725592510543083037174620820720239615304384309733459840185661233544307572403835013063429449642845470155390019738542478363482767027272009955902281966702353965901645767203322605703516550742113754841455860297613632180331660999071327997218318070654751262995542013179848148796914243249124431281180779202070393354543608269096699926268547981176297628379175599487477949643799601332339088930143205884014411554900859452824949828948490951679532795941712287209783127074484198368839615082252599157211179515986026111350568827036809746729786831517237235737590318555103741910377195745748647057444784620106070930625612889364200072177656328927416326322698025135065808456623384495205610779936200641263989381910557950323875926758483887535500656182203339135894597524730056865977898042183850145552601658735344854863475404476307394150292430149510640225234675843645725568755975004022240725580797862799361985731460114023790513698886318610425789759950538066864943525275666139794979360240995021556259462697082761400705976146145680155527650428008903803466842137192486739955079048547161791681262812237074312617022954080830697961392767571775499972670506203052623750648432036628118997045749529011232169848418956148576911661765614806905773332375740724392718636449520969589167799634772631280237226434637992844108323048046233149888043296398214967283540301582984077197287440030558310492245509152273068233748584913907125039968368273517306698793236951956507546686241290847674721302681031094523328177288548845859113261644080028771407916221681972261856668068663884329522940373377061573502519441610457805716879752855974502094110642774204120115310324829630540550420346839038988232436955557468762295539276535316157039470087508234390527711744458406367235137760426778799034084548507481907246490826287979715302913021521979660615664981404878994528367698891014945169781959008169749122544726972612909373743124729961421074758934904184968327891842123436616975024330696394414506996529897236090752869510349733818127718551438679657139984916417558974906469445412266729871169209841841723094568843814818314694688593835322828165765324000534503960987189170659320117772755760361411225818137994371093431587593147619328676447516821575612955146876267680346642241168870488281998469515553627714183436211175331309787748563892308869097795694144599235540587170095711148836608469583374168526932737789023181438260458791907994116038021529598196086009381914209987837513471800171968449849695189331136145510249466269040279596019943966832502215351928551370889786386518668239150025717531473984954957018479741446280131020327627653326831266628510706470390120818482875599241820466123648767099375466205205433902347478555517322987468949868693664692810243937903726698274068561641249910573577495548079694767956472613474183869127684806733866710737156301774292299884604432661549858340253051047714696356429998523839747058403436663916320355091439387173288135038588301047937937173123232509810695185716310641670884310323891042222377962903985590523247772775830527818276051892538965467001690846250280649912195916940823726022789804557722482236520091395969529760730073974053169536929883586968131880072498967951441166009911271836735114509324673045199319362463498912820826570152609522666877473201757457782309377289427175278288634304843663907106719370993938647561983334555049026430533002509277953228707348371591970511234010819178081111662686231659134577679583822171744719734465315545077182963525081066920387472593899397357037262366545300768266799297572692530324654567104975815894529545514343496698076699578572519428581031320585615529914738415103352391267698123251602864130791911703120472117826434623674250483111020570254399896727509795251671199257475701929494058763587379139422708367158868121535357633370719441020700281935877386506437838567862828456383618424612472390727036479963158882700665627961743625923743087480600085142349332495869072236401854046226961362578262665613320564221832076935219734217675069484300023229646515277737439414316590694532378446199907220186169604928101152694374487678618813691473842274020479326509866246547813179631499140538718465414954808037922599877648634898480493107314806029646600037741432332424849377701324006326104135133934737045715606591255078813451809566533623736345768451847375020168466342203530310098908201863913443349998491399744892596268804378689924180606429108328128494752622694317776557324921811805047043320835606084114748433843937264645731921909539768213055655240669309722502273334935370607015719813120254736953681625939492220030431040343299318137493919874238298715569720347272890962221994089670292649425760169153429857611837811591748162419263903427823578343843780641504217320672310943308721297886529235604026226198465221597330237964514424032874198247245421793199349571336336780829076293001523081609803384714580338778388436549517479360239702237551732745294123524806751679696533423965381520857710100067543194293066897686135666316477987844152132097795729231578095905024236595974369117394054370841606280308925831542307296357342392830507936524278472107902715321573887383568245425304157797761982268340446791779637734667294773842936068258482311647405361503727944213611593399756934968604745696138864190547948740717320101626389160364663305033641068586135512915781252902018196744020062677857383826998460241286792437108587180202126270207024735175460000739416341057370064218149891099540234777227907033117169997421378546577123188604956049158551214625054138249222647726224656004194377952719837894810007773548438355221309275296963489356391862382576468628614573013228623417762960052313522965890141027496620932929986990972138692916358323586612836780224885541447244763799788541035521107352742016208177826920511188866696315057559982174091574289489849301648203274706857877016218116185702854575454768549279115784618824549862873526681343686378881882433105587373365374949342779259015161025799216517801962161749163476626847276169764544615326149822502129330823263720902606403430364544955049816493117847507944533793887977068213738446207256690166503877550043116959316522772933492048810856003356957087875976310920776765103945297014810239226825323813433132027764139545498026544228630726581311362599454135839123816620501946175068785188573818002185608045376887234498186856552891507712218702964056610102181038164072180858257809361153234573331336262580956455081817136333458190158945439285971354957247909833078023268834167592705531903798763044877637493469640373679678564244235165561011778630094226860611608879934249540665635328507487930419777736324557847194888588574193089742951295039576198191940849135909665138124484167968152931609012736357857280632508013183112496102371594876011108406318578467431165542530511334316243858846724922069854543422063035363138065954819969776531690010994379342988336412745292776349678055893705608077881531513458091190217685293879521616607413732145066729276545848579097986402350723578199341502227659397306463751628986007613367713511401450016755191125474259401899792695087965451363379764537989759329315717151178308831898408868106397616844543330411059818226705052773090392471665403389137936441098545175516766408112706766533270158181046659467795487449970345331983799647729272732826728190131449892589292624653836536342726374263976438467546816069813974632075192777891338221577996207774186922564776629462099977864031808158812188510950697385582859951924480817592202097327112916448232415199464755542436159407072695920720117442499180573508410722810431472960967136087619724026786297053834419766375086675947704171432836776465494153852758519992305796725850654807987351705502250313664413970813740496571280221477543048571996269334680626912578191559775211667975559151220102703271977490228102614366698758992847663099545996793590971119468453684908771694349136394008768114413271156500113079681490077212619843586260150558916497941702163649598414713097661218180338731463514786836672288601924074171758967731290413161389380315440326261069182994933435176740159053862456293119976570384653696327558570872290140518955233738276763492442336389357564885470725872576377764810550505473567863487591377434862701164317030017356688119531269157138933234142320528448475719147338044628302212505221948094693117683762752352363879978398155915745887796857670899508352753736930113894251766231985720007424457715175978182395820770852147706725348113635978979915403457490126569317929555398428273165777883012591729799398196052072836546284583356428116864677481640167035587267269796055369109695229241483910563129889545213262249055465491120268671095094101476363719742465365258641225735662621864205563616494924833082217134649663964484787073369042705146345537341488669697518696682990493289466010887513872174306109945827360902099437088293941737056579934265015355828167423457814817173905947709640171573609966076075065238956019277520320180003744842541387055143997590953873522472760581489507566673874855250056974244450200879738440735337338501462865037305321007196403159434347109785852520011511330443029949395945410209710907311126858660147046949942647017765636441693322059577724972155836521006303955740893121381744868881494357242477070275436083525817460815177952856385871457252575564167654765836432402652923543141641220374127067379722388422946661428996657476656374403040202405198924914271356828275324232658500178511518942672051868769069598281743985321348054766260812246585839232159859642937327977472107314771249941395074068682454904281988992402894312959587298026014690917958429749995436892250872814017557241894726777622453728130866124158241523313881752816993004916033768792038738446101864258920229418046291641924359198779702466545464004747202832147386773153276772060226077669145497692785416135302469415741212084998653986100513469511454108803371947676581735124537862804986801418173665140728527606254960679007120851672053765951452351685180026038815992430204051553336207014197875457177658637546380311074716303572705504815721197502830775756753364176299756960948566516794742381204986401802854509777030409371505363882819407068215449843894291234203636485594918135193363281145705103441135315079512060176704215163200602972133098808069112903832115558848947279550101040577233103877946448283089354918587544849866618590433257363039087213057678706561966269428200364552448499901952090222520917564971680533925378186751075317840705907455974970337917804449954283320591907317317880743371885891408471592030861365795655262945567053119283323561806426093427870571955041650991272372968162050258066893949181777810826572029408325886551672530985914162100683227946596178563096759505523493635772278932209838130509498289267694480349793513701046221674989643570834714440711269824144316706821926220188250868371623859043910271768383125026172602161455653123642111549706111130714084410132691551883133953607165605370901975945942027238566174813649636074113923104285095853646892891225566927881372644198173337352265737003845979335248247656941755406755088616600496451158237266815049328463743230267914707952892817186427292759368653692086077378713420391851283662835963464814979894086817854961531008497121042644947562044419294679005810198739824800335703936930595865335361496354381852036362020317011702315649844079705712366939336216620242555143121155721928195160498758999097054399832023043376113733469290471441803526820058710237259025109642309853160497219949092063976136269247021718374980712641580756271481030217462245089064950458676572430570834519695234383541516305578071321211638652953634430400960642282792359397447008699855594604836879190688655683664008125347318783109877635904185674985430833464706520279871845816703913616657713578986188504788573108359001421167622937308046088780065075929773517999778542968960464666054828652493228218186169923421684464067102488148928092045301547165068569902474245099070392012704293631481981106800725652129124180994789837524142194863666793968660358963474039864116593449046558899032090109504321634183488820112265028474390225971515616045729440053767420107149588621935237137545770093811207693258657347465943659285200081766152186066122418191747685913032147894980659992458593919757344789970758388352827014504978667461084889673849271189406776995891908673483276515037132218089862187164644818243684074476415550168975623934873860029199504613271002206034898335107224792041744338246416237665050797327866457846189140009603869545370594276576861065298869180629331082887164638379403308627269993137495741769669550954012924678601819594980046579427967642562175891265257192265383851061216647900470034892711658696297349279121254359062735630201465805929292270412085685431913757481851163183668795923058071222506396789377810258450616984127043017035482600749385569052327539128201282465757877915703340254556339103248622062515903874468861891966756799358635779423983159741845684671439260020432197487745488389497268903563302435507321185889194790679626567140161654600718110478212248957131448131406487033900736494471934775525034638041453870418894570703067824140360495547692745995212008173609621115547222655068817079402590104721866422763118594922176432910954548253923145311596639718801896039838363833301961363585980741394189351003035389999158726612863866806920182517958728404084036917362649086989065112672919540370030335116938590346618214440361021292551203843497816019591748716064147965228691941641200640668949082042847727908537241715703516288505498378254873300520128205790115362217879651055121898587455676427381500290938334473539577151660777893638986299465375956109401835410459644755346172695636202777132922889126969442600722647190955877172770433961997912558692357344390797056692656203567226664228694139352479457586939527888565911973208870589072957683187266390526867459058669360680202748351877070624150136246258827060097862537285396299787048200035635343097015472155729995286297985976558571339061693377439108052393888750675640567691208760191736320107031936114141388853494652482123128789386383995445049693287651431101182230516335197030798401433322813733895718348679107604878998024725707899623339060485489837340629340407539887679273651830567729440917491254082077211189895814024087421878165394100764650734338961565616335732031495830758656789247544339432349548138687790928886161194184298232644919682913715689873003029044951432507376635722799888318414843950838035249701405729723719492184638786321279046461219442099566779563596479854764208980733654300742997334608092329005645804587294870026127598241988905616619859443326102535703619971704606617799409948357773048714808857889776200246823931479534019528616272931451402233419548180108096584043083604080997931736877133447544198367429906998422838998911117907126992183971826034142532882012632444099159062775418066960017541931602992897337182403796601989505529303445569484432447773612957454955321264420339649566365225941478771667650146382228844153072051176907208514610571947745544372960329425834427128405848738691278939009073719290884283341361641712949364986444408775852943986895368482932196009330040835131392051209034942699630801931863269591250441093208383095723756636900680988358866226713719517630640323776875378812197292817999703123357287921970590229523226539964458441104499257015848190631090297238829889698831670449131385182276003233910496006064456671060404328285331655188655145575634494572393158438007878628053799315643399605894090942295890456716725492233864578342900115053790851975796204730494986665356874863803841876725788152847994124087019094049170252238411023314666673329631155177148900083748722710785956077646625417643103971802201808979419793519672611858156212215002390699538466205783019369658139945280586754752621962930117600138445393939783060706952562349427155560464523110174123556401844732372233385620813302436954653148879556141168146780166111815979250060081979143695818859475048651410153730238752083474385576270957374464179956613126251261544989957772965711930338692736442666860869770687528475757818186744561277693986128055644390193605031846210081230792073777478777052105575294880515667202519204723352948072301891574714867761478680534489158111244547435736037814245969321472395566011347824956737862076681081786028666742138818396174965518719470874435894903081343481412325262513643560046552662883114415783209809641839723300062114654217739784524072516839207560193023783492354996266499691756247842324413545719164880045657445996678974098550545731112452244634112852917115533470856233814164989340505623997977751472173552124774580684324349283607789416612336945617008715033604774204612236206985224417528932092683514911433441335516543130594033954659762035889377633761206707061102735674303615494403308476070267892543564923537300788142915303669548265633346776539430187369489208469069896553933358001193611809431747751828496545239330164145226891126120740014222352081827097589143003783316609174347733760482541358501312104592164018202686836961227044980474527066054735265326279710670544286411556584283909028638453143545296680940823858697598437511141567972591333830957339047618886558166487953846896172807351488508984425084331207043760391010298465592958110795271979715217115977704650793192622452318244043769902310646927977029763678205861092184994152415306256125397432441878981084237778018861809087672682167579937235735800790875845013790488995058013594525640134030207592377594831981592289704911054994252285005353291357659703903290006328940993443788407865639776078833375093050563801189248697846671335172700852826947579512194168073103577176229883916070157694442463432043282105310052433420412573768410134114275903673340338593572893603300396120337854382173293699651263780134267198431721166302029661497249800995401409100257466055739767302703092465529973925520928167028280625665591991768248345337794366294124750621481753158584373006232087279215915157024181217072041802500779847874092144103380494014956771065739167269960673022510408787497567912951472224495092439476374998646119715172289091665603180850772468983274143793147436295451237078035754293654465583147260929253272484228492306100157203372213159268509464666282430397649429918883266113070662183422383527406412548857193227572901243807337879266310312023956073434297393122361305779288926037796433977280684740695740150858335266353478810584704514496623158305919628206644007722167504404420885208240487010002902812389681681749796684711664472123425663043330977569077050902461110568963555754413378760978584548103437853492144329580099019812431009839691215070956412510052306296290732353037437962644322829262717003629196662769741902999724751926427470837929504622804648284687807251708794612081051200335234434393212362745900895755320226006422548320536540073441144324662433170567306485585483427305124444936642914966064168578705873203500705100507011428542646326704594181984063682023817843045314089829962203455705915765327617667305089699182383812848110871992376445323008405298675596376598259817327102646272958110941158106917711307157255001859438708698531567547302810928289267089308012280578221629443508327056122149905734669759850478995537078711170921222479524115393589540056521317678933433380800976023260032639722792197593418938210593166530941824966636484071835875478132480161139277848385669090012937414098213166160085118351454708747457537448835162088279947241023967735771352362194826964351168690723480896772542356868148666293416581209572485886513870422750044271949255171006545300221708247844632268985975708735454071879862324811432267240362987447862289147832416452901704934461108005914395570296102384375993287263268939921010567025766173882161586320198027609744314089544309468891683361656741954322334378215609395162980369234184150366893812453248263029496012481992436804998896573867673688236120372398798559118894341773925199120049504895791036624791565231428335519230959594199032683517375227891412105690730160901415804682769346065054060424637038997427640007152212427839022485163019322816229127349450827726665491731783278948157674054072018921233434538234792200983933180072712129837167115441740374124868657686976979995013468147147464468515793777714057385503503662854375673758152938257283634031429402354873285563936665317906499232111752895128210563906792897728431829110219183627215295036781704904746864740514274620081661382797553100080063655987193061729436328474798302951294520598131137778438468436161693709069578849296925744018896480117897647345450533571609515462824022290254993199424415312166833529052153498849731451810527338768441972920985430394762330587770127082852481424883060516118564531095439006840163939067376853051126786014104185760671242276089849600896836274288338275766854781749762695524146633288419919354196360646566343797703993645717041505478373689386909004624857154439711450174114722177483327836138927330771366317709845296652735000157380023466998162664679662528688548292690478401224662465239711722885748483945458995923226819722624776518005643543752770857985827736446467795015667520798118805625626226199548481165241697891314194774563008414022820954422061711122851102785169234979652508371982168204672587503441266605402786819358156222885246774111465707848029953071035384766287493118156147476621611780381247438963503842210333063024660697191078383358674338352122247563117551673926957906557548123775132066231729126990289758866968922749028635397074245776885330193157633942134117372958045384072967376808185122582449688431248601011200198859644528408708824010146612606059257909817923125303796352285044438142550669804859433753346014386176370499692757344912722984198585491070471362411455522149587937038214753029749654584153271399804327276124142018984543379344204185267998762943791351965621507078463797941742572635340884835224237448553996893706593033147467008868347086468216052423384739344365791429869946963127897371130987725951228846419154454202323281082801138448714688239036650828352661525323180972007861205825207276082170212562936016680422516241723458430745485486302693271430094938639529111365839161240768040356392326986102903320939740324948004384815466810979521585585182544023940247348395551273396759688980450640361706026487167021127131499793776830964562790085467512125366282725444582081093687117228277529496911012312495701072505124527065899584797875616209945691946025585335494749312019783421785174209437165102646063886468081025958609578412347686358903706215965873362422704739345234452182253909442015684222346621317551132536252328300339126419686667621388117806524448812046892340061730331128097441101618436255865493351144021874389559261893727210084350132989009644369965360946470391764085502313360662787842277054548662243485919875190975584457880876310819078717915098715580542668624373420282257870697090073464422669776378347811450586901522122900691158874082050948511863512202368152636641132732399986183445791357545332517554781411327381915863886988273896712627575908686495524274871005889425835164084759246205531982425016795627489663646932146056234087914609383484866185408242753112147415781468691663123413291707468669927505454980652866234470556033963463174584676297864866144438956299882506530127582928637655252629088547353858696389222139062859155091450847390288020156763294280427738857408579778093723765018184259112962619187085930833402210970729124500489618070116140470471629067407871392938262450965908391403362687173109295467815986164580593607640533658549068058385074673704541336927274542658940086962564102974581289110526395118659312337839891905038155756336057506106691265803013732334649227181868286325875795749342198839997658959678019191943282704087700397577202183117391188529572635359481455124799396609117562817453400687373917315053345023193831258970626565343393092866703268008281983190794803915121615234773967212725508479939086561103633416300902315672770264982677072492657620056472293129559769925003996602738928552722834384236759435822970347536540335722439890060160872645100455368574645078409948326990625344954542110161349983731110622072137466621124091315225789976261816153209187842697732876456818271839326024484441636631847041508159634444828049967467313572443627733232904138521233197726267546542454112651427000049477188941550847771788035307994964849009025855914784722227806671155015209747224112848383706116812734491033661516927267306879170658057995943414781646777256452810445951764287729923830521652585766699257428337426941922761439360236085035719437305298141268776709102708193537339465138358213873196442189807458955588756534951908520859500476153297943263702795606631765491502475929670719097602636118171925461792181294115695684533754756918176988570131305174136405614771293909088412044941102644701742422385448870224187818651789999875802810323241757741040030271863384615993240369638873772062840085073534849178185581082677731192033033584860370383809541982733303189728116588494980012439851333951661486595762520835724501854138297071894327943651536283935562272651234579018411296762705729375871227332863164605091865181861551735877664125704957987773721121090164017884374799977620551333411225194266306286202695187589285266843971767100102440789575241890210198115965152411902718255192769232021640802568878562937396594075395644618259660956825770334737746967543007421812458271296717104419440706700034210958021730766953261482893885409479786104603495934183483716715760772810770697990012058137938959037307185061262333261795987044314503610815082318775794909895900743620811828340931648406902120928536247199640282828310129634402673239634246465558696485359352779224020957842628126673888818676291892481512972666413616797202885251577258409718568858097841850827162910775978390339438172928720859434237872473956498284221093431780310563955952957607739060742003074900696422321835615026756259301723795220540893772768388370736969461018534942139886752687068150569880935696432978738281062091797212706501607013214276934441824887107873690845726921785369703688318146115928896404958829669840935036146839160235076704148607334709463773957066513016914105633613663547514045613101993388656977693088680402400552615016064116868813368285230891915722453464439736728819305108699757653860828150837206160578856505115360161535316435717998642521825286128721240892777212696109614286431694586220123507486856609826557037188613822269521032952054229985123418609791855492265829019406173810568884675704030746589729813947712612557991962297855643802684710967174401688698795414530691285847372881733224606167032456889922598674291751675524292937648248363936804193041863680084119778682960009356786192677502677190937178241261910114985397324237977899561441154379340850858223391189539122752888251227180457731652707966828593154108501792856446851600873701576912975312331647239583808551561997651161536166517603151540516866141272672028756676049497053846134167172305453686544377574690862085814503821079292173221286851417900848269085275287101948741959068124752075600960484046912079417783430292998888876058047220948052002356667897996965960800844247201193876368365777927587155366615892485275093682230872461139243633911816973235116031024016888327465500297424169619779101493490516685036373916928508989200581456738362240321548552491096864764628138207726966221793860130011460847425470352752924152646250332375511283292712872754367615543154357397336054230273875294469206896275523246418295362376322585249419231899011390273510516543148540660813001856656292368127388991637840816038803049635311126262756052889468448599652301666699059769520446292366835859622231958270993175642000385289653540424605776802692171847187261321976114422356961156859163770243802727277996433980942746297897581043036253574418257203922711506453286949369892530342426178856754532135606140499103734679825461578923571835774591609434815628907123426445501883293938013188070283031259264590734354378598572342388066744979170507136087823116754581788413111983683112167698391252662069365154966985551556989542239468004921867465348981151302204868701160842184597251903200530369333215715299825758665714472723838953264467210097688735797592556103553182998254372224235470581643494874514986200822973851507106409401086281660911846451597255292589083338395068218444020450900227698823569828480750923251128587925667287020594263220584640286392078317812717220075004863978951205295222354394952544541848350989568461573852357625046171347226394314853690758305914254942706514389616188746509042982760229270440374350134466807001042363560590312436630905132230545890062847296719637024147931435930331055504293157087841161029497104740165341821649763347386330739131560620032431278352016324369932449357805013429218608069044688867965120761304827585237480020540897656043611990354764069737644036504835406817377919106303621983711736100128718599984504689699396253135924877344952965442409662253595140346981870338414960481844192718508650706219433884969693892354371381528823737235016676919717113834078291067941749017470315935098445967601117686505960110233060239286626806803158514228197299452705450164237199207231766905091632238018603187230968131015825029215162756874354281001363519299267172079670600681420096356580976348551919180712222937890350247671409899276814695028058074342356302159018158960498473136394068502186028069830256673377558270180002706449834190257826624133714804811182955877964986173142059644376670763284023020336390793222680810441114399693544897584446517950298875162169632857752769738021699701135549720310862494394776644667071224321939090960157045986338558781819860046585585523833841972929483752888918749464033289859068164807899873438058639947080354446246933377827620486655065338778793328626228215162754766647921922193973284617265506543687153381299704257185450409405773298492812056738246287181872268852070944168356859761096259101800049040344069967357933255574809220512058369060882161484912005473124844921649920051453272224854346140560113239938955329749746525402005238266340071121566854934807963679638184898366540277805591684261652743169179943124270360737605025992316586822441290927025940129991568438739841277807608839247766350930469079174384488630146005042180787421304983234790744197955859277224492039472805550930465551410648006639337466452781328116936742212869105749466973340028997602597530286631604002249882707478813613768270252935398651197249232600294322705842528714825175171374194372742632104823452145526537625967982809654044769847247884268345727356192327294508009803596064608971550030961596984036607811664641145035880952387510819294113303048412031875625558984790544680313745625150847903274599538663484171070641922689206806071095612764806078302588458820666758527052485995326190430178784205712267611427252643262364557275760180667008704098086003043109815238693528703833126716109861525251620819377770221560797709305732629742271049751940360571118136240693820002746145764552093816596556980280145399901744244342513670516862782841148653407921003788577383545258226834193139993799021461684059469954535736188234615424343003269543831151036208452441914093876060818309136472868574548944853832573110697803580119538636897827978975512366489311398801183689230047841991946303633517427422621957472417512377334795170674542085059550571518533752255681560032991467584264522719888120413000191520535337724374435534833677224507135336021701108644728610989463866626461842789880510510000022481474716122858788182468316166777421019561925107284968809137933400945096394317733279675921408975338071173622442417724059086687355883375601599961643842950684855855017371414274763421097139334996394387086207169952053824936522978039853384460151966685732480501493738740957743908595526622917842277155272922031609401401114718930547841428189887715411339683433371547700197869686858432501203540417869665271026362736522448097040939407109300981864500885118940390159566691454997444990978321003340071506942556403073833615066284979408514007071822556611126988943907964528908943227396187442478657449805447621301004011542276758294336428991639712514805886207264652035745176110838523470375764196245737470457579489765616420065723028918555105963745267970408400991487024598896060428428319691806943152128075301747819040944824176417157498550616762296440479318330180813803388639232446425881980336681722913715662346012725343895468104785219814271125407130584623688931011309113411244601742628410355811267761216144257891586292614470505733793244955044383697504116216894713071404381781723910155298748084436720993691255951152550950923253841668579535001896909212392379257852016354128578855520422771777008490809392325390320775611559711921422267842176515702462148974354587970490436646686507126390325799402449939348519387892360088723628765368033877601663170409748450948559137711559635612427768414984655642494133686545607756156185487338865297267573315099541721350208084424027141365527939224333746051396299333648930181875546823514914824314306494306243876349767931571769065841869939891754150661012925085734861107285226803336918392866806580612880904208794084520403095157252521331507350213276720379176273819529015866409677865232897424809199737937358670343671759515794636776285849570656110415617119496852896330819426776164743054571861126948705340641299823118019022287307906006970842980450787334365557281668694098594818310473154273487224220322631906194432501912379828536249061574445992645708732216695297000099480354048570479464198296209193752861460744709506539493160282232226563406962880298461775221485385025116426621492670670371034117311511329331215621623880967280631837628653319710106678853402628781946629891968700749808771513336056435260902542220879755059772594528796703599957395190710620077624900107086175528372773983948523748032828132275158828375566108764311635920214958042234803507155028586352475832669864050631782078899301616519454062317828999132584150189546534517815993303998916597701822286844866402349238730805133710711311404800362195994276935371378410107131499230530379333989380302917916995676063154890788717345675432219950471992389616682218098438584558707152107673811533758245155408053222280715127490557194757148945587966334649697759135391572620405350477403147416240246792576632094893903651750499814901817547828502139926274911550261675358708123177555196782050591577509435665865206103676713424070806490657047598249328726799753046786185582398355376487201888297725879382529845442342766623594000797303632907612974877545033267173951603255084562701593957521601262329230286552057024417062985624257214384762170701852438908739044547856891228483208949128130516292620990028892536971126392688475945639854879049373923736210568018887454633680093475114070466401244203125487205053914112473381687399541849539334546247220709561068713155078716716721842993773538547036316649936712149416378769344623824488747143647903237668076083265218872112659791344639500130744419316509909042382562297306535154574907931756650398445565265147993348893997569351112019206383883917349109432430661839946147475229263895162040132332655234705320701977542301858219716439844677702454118409073078581335853937940548967369111685703593095443931565505291303099835114015714915735391418797696018707813535727478561472413037036982119990207664283052016861661747622724019950359855447951709538394555898778556765497345494753606402929243252744978374944256193840156966799298490622562644505701011950052707473051725488992630929003471096074657212943456323682177454318248415430749619734064476122023199393550802038851158810003821898553494205079958539770319916338395218828390005861778736204109865935480590991498560391500701956460494081892631112517975004800849078030758270714914602817531283307816313711234673457371380143127706463808517999638065936671217116256817818539896448355669166797582338709195704327386561855286902347746681148382540252013921034452706605986942300802232559656532268109472201768612187604888128686958180255557681970468263223351899372409842738924617635860297204095393565033220568585076107696426251317142702427654266957284936156023397161159782443857337877313556259401675563650714536618902668534426782580854427972902778870794502734057591359690037585152649264654916893422901020686828861636476721568656221640688008562226721613833580358443983530298289342535603015333755365735928482811911238349624139811609449710073410391574364140308613102486517267016768686311136198990469779270514253081401342182435935668758059626395784911368091578097982841536438207615008824376898875654813875762975670945327401020345190701465381981598551006927854130112045526044409224221132805687491361656399966374357315106665314697129352884801276911236706272384471713268481675052623190106477975395293987245267148364484310041720500202007954607882976300056705544062412183464340084017762071743473903237262518055292159299488311264726663240198196649291985436593810305577801639816260533598327896022687251329287593495687577836858059019911940362065316391023877736661256416217613373851397086468337123508932000321596198093971938223269809674449071686196934020753992361438425195900978338626319898978289821526838393685938745384174647348087709227712172061462060636072050383405324360288426274946725952469917520951008798144806694281685245682024538451801694318243252963160410471418357196738491025889750286516387475624121890705413741219656738357420664874006974797736176454903827324478950974703310538401646765275437392580137065737314461595561127240945071076426820847231064849213241390677091893850073707754549498080362430276608637917340247490344487796391477517541948238686090588043718103944129005581631925412217764415300149068510817358713708732115086176932556346556306074915843557730751891239946865998267855212086899909434773659848456520394956185124375081837672257370854629847652935021286669632284507910483502507275069649198134725560977114626323446819193734357875122455406375308851456199950783735251188752619669453750659599946114767127676526121289628530531289525612591099086554612987457338687807803439789405333117268330370289098881696064909136161668407183226152116009317200684905069795386047063661005874672173090091989369631904624535783014320692258300747480768783090282265391861227131976187057066696852229648740687341012620353376429141438175829273029809061768574921280494218660473389832112868069118087288731373889408168020762881534631581092127338313928629132620212471517453040676168591352378929757863307229730717839777671631756001074762927556604580729085471448669705566128975361199743703110488464407487378181810116309464254867178890544894633472576507031265456623575650460958742506874791017583613159017681712321728023912951961555781751751867117553496094426714432383553097061626335937934866494695094842905901978474179809686171011278903136872376574261181054323622023646789081898247126513640361505499362153449504338185906878933099461014310813613724297722721059579527770385419923653989046274211598856607069472758580733201574237583651919115086352755927683097850632567806089502467084076334329866180482678148206492187495997474171518961071262915276599169488866527008652354876785093666406254562298329977083543542640405698272365614555811933120900730686113672348013340524335222528268751177294001744714139583629552619452759147756221749667258720932545093423941402811929145325028825114460104818719190889309562980626571214660823541947940274378303838906853887589060922524240267827950596816354239084211904051446405105211697470072576255122569953195870167286065580301541048890324075158560249458234665267957738039413622404539959891661888440618858886807231976307379410260780246083534202577727764264526426637595194644095932605189472569069599460888152401746573439249957760022271496095889165515432466027827668255177209037406979137087175583904806525348553822594568089144438100931909744380978800620264631627803519300658764524167455952665824260151749336618438781126561817298015031603600433535503408799554731055256914701658022402108346391643089858915663758972113078274761204078431467576846408717806098272495076645393323801302153510833187206865488440065049355802457608076654475495073835080452961804888901537337529903033687413730218390162610639359093088639570545200103493759391452382280688721935456905769274834353945041750979052530902686293661841148009581973573221723104948305898430197874208772577503191595386466981486737977999632501754579943810288395441237138119058199809979232230597795231173334816285777065006355412775535658573439269451457957183182531105804672961323658965544242705157260018367074689112150924178946989603094218005385310105031783099067239183043107319534962653435830409572311747501669853070179521333464885622788748019924732130422962245329041453651566391139450367600749797190989997858676518542956466816639467968212927692735784843629348776219207789991969531808744058378375096123726666373518561783004721011604378973915165810781975502560397855254380404577645012572057921656694348272465711793952363479802854563805824074759457067021507276484812768643156798428270224068752267639489315749280946819823695532033125314127692258139513538509143453193311508805606889542823892854545024527439773181007233453877803143366990004396864611383881711147045191612001989770990541217021328015515879246415856788856766297982891848858178441576209980652386550572118824661231503272365117887277835354658024441887439727628252986702207198526108366956420713748564465080344561147006698015787119989698369143224581011272105018408317169046932807787856485255637474644120695293973660377573406146651684140822504301878227867327954929679909896329184246553795256220711247645831983154848188690907218661689158105487296160728245601234939651114129019874940787364768508785506445041835828731560771567446352807279408377582894061300702964011889776744227915742984321910200168764486419364134391523295116812482562963139378413121322158783847070956668691482776781652419866464908131572667380836257028866099249105635895617101472440874527996219606053659212261773931957752890135051066103273821616246627208436702909335560314389784546501643093360435001681182307460425362058471634840555019413472499250692536005450562389852991257297623355736078748052675657957202573973569393729853640475456957068953299163678740038923737977182196101707412678555269685006735457145078333221889669188445466321857638564905800667851812850269937736141292972636155954129022339361433795750296888971067696540685454532159625106201364638938834988328576134221358690550317202701631032876220999196319485512963236628811737867133181525808154065730587697408332027321955380552636262089029906250021565631941130104119064985210568707239635327254426944725869429223243015599181615989446544387277122367905430875186776092513096799023542770270509405548014651348702116259506968745892912247146360285364147058198133166667481433014273210892155506537780503131256195896411165628581399189863615457114989179955052163587346085045292854737261591055747562945338783249175551110305597265851930140480413925741099440379860484577982858189681279270192313489209759677820147051599875746416182886603075152097267352414462082637092377747474740968976888511166834091488014639350362779589062696056524868521950017330448186620148450683669786944742604563844179598862867821773888123654493165154548027934624006101921600285707555924208170412395784880078530730375693553889569515850191778286104885479865360102825035058431456145292884700363229011375610976125098633959217219047131647118173552648947581285847469852402459835915837332924306772322105465465517563920326054074154342771600784487461639463110870060699542134708925129035981102327411273663517889187534860329633730756217634913631383972898765364833018588473114171329456033424783107026463038395179552968341943022387589980297267877978874968872575516606504901903585749706404698840258141016893703015784749024275266100086752765227944244593404320952846857106900215939899979849806551883745453539419585006755188968019881945780976352404907006934224027741580589100548283735183600391049584828182079944593464924591068583466221765718120127983742719001887860123266655055363803432132212590192963866243670709686978001166754152862913240947228763568631607901020435607525486063925720591311449060664842698444870994875797679443156550806027478498694209548321439324675252351127978339312678231335422594042036897095475391234361879439969879319470448380519348128432811949096227391982088416152801052051096654535684722256829440976488689814480586343111728362710105891640863141901088160048988595793789885193063889417464677605477077637394531457167063501344529595989630611063042494554713701464080784438144913807334707844931837084975176040646185940121058521297425801063884108118351488910034534198238165826207957496848717245292089372786789882877875750795704811043133938095094604019265976646589296572725540756061107415002634049469960837684422917315609643648962989420322696453416599813771054455365522303297475966175587950526587006415690734259370752752117729674769426491305133462087907145865123183992967251661940013171418998805050815524882521071365987334593867257302487190610221988429944542498313474843870971058254599601164830178595080448507491917783427321846655487557445717428125617225489507414812806019135485677430715233292903840639789782415507936556439948427380679215354217749584624771781238648131907398812434558230698183538482111776417520404656975222275676650393770164369582588594562535260328258546098925925181558859865726352732019530222405082991355675086865007779150824449003838175456218875555172510032390590351334442154072468847698256496622061638297037454986467278523198135276754349663225227308848138938727032077873529395999114736023828912072860899441207898336607809293393141647075578320861679193014484866616434800459431274022511636352612846001168560411624187247659248503460764551780087553463625738784904051172284337628520633612607755563269897605982084092963023642291517350650577878302382363185796997477666746958172773148498249743464309674856000884925830415342046563735532962245466476347953693313532011126685631277855533338895883888471794318758878148819547788763152593351415977791954312656774098621856622082615045037933756601530059705911089365386118332351089594746916589535396428661236419689049502368539438102838131387684873762552186488573667586197790859166104962079971004174588228928975635203055981849981793537566990700848114469363442203995283111904392649973243190272726747436256896445665000921273929392251494005242807536858419765453812823394326123880654583386796408550950082476471898786836602137104121584553744590600009587190871935835703361830273707891337662836922824823493689684734859439355062468488931481156318317585407208947052337396258512077308902242315357872756246764459741525759174437139752460548775294129235381852041299686012908121185981644809215896995902713046381233154862637914389831789383212430762366981787815399417107170879654588252435196499350429025127608162213105388898633763992728344809010476973958164545597092808513133264214842040325660809225871115035825097471548800934178664891311936658303290826963066294764126156617302327700725839157261949891353982243390271745922427911824175686973547033564491161100546392822144927711204941316726706329616047193373202725226538018168442172598421219824015493817780898406873852879249138923807975690078925940929382847555767115947227344949029009992004385525934579225486582691435229131214625366612456892914031276145903013895005097169338564494487630125504260993342231098787807224894768626378971722279678120720728183955724588852723596207884169597239820263177579023924200241916228136276387215065789918048727153119906767579105152795611767777914310295675850990267452882588574668129728200491134745964940534902094256590745615021443777943173281231366370759231544575213292460952318254924387378638407654033851843072621917394137344988814629815067324504042814092394054969748343643821354305298698820085769481801766338576587648323443988557184000962277405033539885522498924040810169622989260604318379629795610525636275011575424909272472066383091652913860040590598229218080082616763442539035122651083454955067196332109110921254118560141418169548592720267351991144430669153437564695812593125440059635384823762573283121173535389748386163309047187776103891595788356505306004766624910091241080270800418621839440974100660644036390887098756318258423352651263080596967038748426593693679895193044969212205098760021384621689476711684177789821657542722439977738251422917796733092685573057320858197527689977211514361415299798361596490592552759610041880938358416151237857737629088131699118557141264668029221908627936854343090486406543449625223183647321460720138334844310387657903392240249547407020489243167467562370712242345840123286137052822757037440037814941020356605344163833596327871912756684488068427701114030324966296190376275143933449294488454023709065208107805780071712842407165380421717996026580718802882170705208936890151966136793147933314459946461776539655965148606458884022484240685915058691484082614753785537648136535575498562700809839870250642559025187521780925335278482357908872474068059575269593327591807978281108110475155401510370385807377764421013376476226884106218590090228345652010975373301079696557983989459730132462843984279344351155519748501647072276799978465088292458222110892503636863137246727437840061275275293510731272789117760100367968062505214157064815718015312910542631113239500748936446864851714353987891813381646521185869014858091725094471697303435877978637438369651916308955831984108077541768096207956550148307570107744173090241360878790120512852360193223382840727102615658004287059349762326895843409288502899162607517537585297348244270864317836105026487739551709012477657077697624809926270111597193418653783176578143752975815009216155925834025632329886691458513900357781766817772234246198568639748846557248899205461510934587554235992741725970416044836152169640950657693599592482746876260097713231191321894961869216635992998621462020820733337226095699314684789429228802354967365808922083986478659537586745381364794881990088848650731394147892636311963829252322038846318407902799419865504745085691192913619704486868152413260973675523811306047064715362719869326157061216258768480785794741929244294057138038122211142720980438759474652331436109259297097912417363004233697297995135542277200270373926650046374016794010691199667036480988304098874687665853200694061678728729447899447878128980384158587097974789901522362794908348194186270560985084082814406641835039473858177945420656350481206846540582588777168974543099586424722740794255123688345203388057949622853079464628860698183672223589519334729749857312942634853765163573971619945285092699092370647024419194508029369024498409774081792780610014559119597733537973829837203169901364418279315893113662903527641017202895555498486828605481398037096970155272980583836677968267908946015857849005380809456589221813658061175121663041040508665465564155124605652495007791389705950348500284360934766874831990912447658720570848329593809321246633572999612440194889162572424637797708573666594866140581057149576691602833636956574765959954140434608205487080935233731395420641028988064369964962144303802134304679779466267289536048969101437998286693256381491277991833367917844240141201067444395486564737808830009848039025001565489315175666040215961509000204689206658200002389046082300108535495190388621530467629370841849910257806546311137713697151465652944312597195763680740570627292978704018680958224654165363843291807305357118347296590307726811793524433778581360961760094891379368300962681294977607591514980037059891165572185008458903023313215813235867531258549778388815874195159644629032455729799453040372857627121233471350936814695345930894500820139328480083079343144880098785921238241192221194830501877327722393797381736520516244932988048928768461528760174442733698362132323733649587036914196432637816299381540081313541803532227456841878519291054011113159522011403252321464174979460429787598894375926832074704112523032808543767379448634237149539544581883182272636778987435626697180290255250744218568977698240144048244827660600629636076425249194082719641390007491477210967146848481872550362227546954698362973513953295549608054274792597366402976776479112425376359712894310172358256254700969410826218919283405138292644597603525432187698664313100535983140450627021600430171217823487548085825192066628447442293125788593863861440707910963968672765781740443697967761731497460489103756507716997612685142286090929062530323539058921210397527109594325004745449370841551991181456433844341826473627664281551883572483094209922238010816687054752084155085998805147880755167944001856168572298809408510522176482093266933404843210210155803729793586679079650463251031409014857770242986028395997951947060193605650559104760998487239594990743653053863912117464163622264242332840750937942763280463445386184320921547449528935255894672889528208254407221629969610927119269103704690330424406040409148881023152662131954216091363048402571856163298951530088127640898683716215488158927580846054670164273593201167685403788841718553455927807092198269998385198243126150335859614728112333712295791574182299486332612590942228900401615327387536851147510832180419489695491980518629445386444496208118291791607213105803131873221808176908223128220283768684854899192806836746315989652109491643442167292630452574906362891881379977742417263515877797017831062103758552686004812955222556605010035081674291379652114069378589848433942586621861961137742066012677246805895011979771070779065056058485218300102549607975676779065904624235209581882940758384286334280579893228279764862824913440713073945267705860157527922828148470344509854470785278034832554863380228635632910795324240271421464348574150738090270881242756731311260975390008660885076049185533054785476535037855632025427435846638763695902107369134573115937904658449349006957512422047737980228001665382051212251166873602616332567001612310362353321712317716891959538396793595198901785948551924173625057273792726841523831454610777103451541356273441630953051516792827819758589069874743436746668951807778196588699826500858025359762582158612012681281740634208244820622674482891475571164942450129872282335524441004924601878677045074373099930920270577157676614006346692063303169105661054721099949412045694921438027729469661870400726749285703552062047257377840142168181509279816062458171064705171364007448653785373355872758678810045690674784767523083726679695832871049255280822719778254460148233069545202408610308145390576948849255531791019156588028222596176811131807910316738988955332266823604473137011666107528773479825194771987273036254863384087905776698876017303019208535589978526794514100213889683077075577132646808652164306505004497915978750849497091630737399641418314085366243944068416720962616108478126189487822696991134174027540033643676201606257569559353966800006639674562115869532578084148268663199225532629500210603649794205788788889745637759788012333703661945358002563190807019051449897689790192104334543833529874363826213795779636157338673411611619986623393763635690281999495162661674599691657781779227649926675776315355619126515313030223280381629657530547128250844960159609054677354228572095480672364436676351962283098882945481562307779121058866096139171218394512554573850865841563573700669901007966654493239985117619496478031381715951419482251960274822736634805216613998818900562455218803060215749513347994216771831092857016813950015890790524676683092896428254697579986705203452278911177534035664265420260688955747933136118191457484084161343332776975663955708568851101996693370203118424734908008964433606635805469409488411943069412062122544845056535689857969784763331049689394972437284733330665899870690527317265439640872497510932992155842713140195397973407117244854410419035626196160700335958640372070584027179160808721069888138522384971722630017217192127805981002186434464899318700000786461035684347471733442286948648928377496732480661213223283020913165085666145485343308868733475660091296707515212312461839669555967998902174415061248273259551702596887965283759646329979773254257626838224278002533979917945493650276086253368870328329727035936077682257366962572528892311862816545613471730036328522391865617678828139635966665794074845539698435941718039091294950016250986379668783698059891553748340939748929746968810764582769460070470106020653369081438043137892147687833700144871017641171342962071825998215794994282448786535656117830136207798787295045476191188271284819423833237836839231038025652796340376358857230889698737323017899321383979095520219761005356248352061574325507066092595602807245911808494697846423149649959837533273667697197826447834925507469036333295585831496981677641893411014208031079800816117845432161646202997695848001879175261460281574253270600139135414991343186923526482358447959916758465800470471395869114597355444118972327085031029834217067428206639916581708159435047373950160101419620403789950287675340272275705866567828603063499789249027594398658322050667489278899525444815285443155257332355398444689889302155692573062914899086343190337606744242989733101934017055362890073185496758346069249070248954977571087542723260996026772416581774630995613953207166005934117877950471615062897359135123313186868275347730562976747293820880265586974207712713005170548904716452738180272536435673422395077838935324284216345111482429416267362715664163401447062041886841493247521204364024405586253260464353717330146071488838745271029926374690138951181355349123213184955080414124417025298685855229483059950916058333700832413814606915817113379325038532239649570747548957802975759897469385615744824999415378915256242707639356882384150362179838711950538124745517051707026184040035829434997160744243325611686931608902216607452819510899294131855162739265291119983160152679161150449835856254118641543756810559877200523162859337104610752475790160399160832363823696849749429062393306564049623067483431525288779384306042692433421794120485118061841076478076481490369760416253869991755250245514585508158982771017776509807930724901439797167276475745193118387039657334537488518041839254414938609199283860332981488089671706156910822561645889324068777644807561788190665382565239420888023014161678230764094995828797058277098275083595574862887373602756610279827755877460249832406767260913301947598396771061764390796375895002446551260102249775373723666229754841493756434125638567727427399653687470286526444816206626375018264991567290395715290910980658080799391795787448952818776415060408992722762862321716286353686330871650912440629018390065971856395865455961755769801869389871984390240067194425715101665076993806962156862491956419272099938752546226836978165744777823724047471520533898794933418068344790815497358017840766162382440338516577702173174029480442457297098853185864839867375800732142059675445564681622108243596136807010404248515273384008678271671803326594085648088300792424795919940526181844000290727145458193820138355714972034475639265897464735480933901009548235555745705314032251847601792345299954675389744939048539309037497381691478262959834213296536660068679839436912113636601632456070161634058256369695117141120591637599159041725358111417687047260990276576087012411389715796332258801358486471199149088216171541098083406616287278173223180270337707232632920486621282256379907234953750214959764636991321154536290260126022294361494765598501959311986240921650725587608107674227468779641701021023644695645563282775063451411411357300573714776495482539538234968998805658716860246079545159175150634654285544216261404218346607688087963779890326316621117773648635725288067279013468121648880348586576907486478129431006735843132513527760353248450839126155634940546076152032905109514709686386915056488454246679453865398801299352860362632978093397583827421118905697993542864804425790170025928226127068253958842581445560124994591319714648958113246777652416974603173918517396595122607074699961823646442086629752726915928408167068449249119072788980432211622815349281108314748945486556134505325721843157724266744395633155719486456433148622436855069287165380988711469879054023356839489082602168548231374093603294967391807320396554489918226281586511675110562802732553800029260975203347235548284682099765959130111411654994332994218758254572766056131267180372056236080774875232409376743178013450830082828807682635690981118355428588232809991540758532156412675099126674743938817944961352294235820490166334187741000867894530866635172668515882489852595347258344402457444391078688189935338257374748473266954481241316210235229795739324556286681687229300943967677300425461760555468535296599552162340680949053335786947773659745031418655085297890039880423307073792880276221998337926884476346706566236775793450106252998768469709766761502058162069463511246167500498003273539133804863936982051120725078242171102873095952627547442023865432535656922616124869794057305813446586929050529694661600630488255536800780674432787179099531831594618390559328187002539106267530299934611218757116807822098429716458296168412081039595192881849677925250370113462938923101093722444234609704191081210118472052851748605415377773922240483764832251348912873578316298964753278854596483183475403889597205655397075846797638457123741458041830074274983706971450624058846000279823275752108846795648954960897823410069061271553391397101014847525636744798271166218959421848934186528199634105404260419856241910697811002025126599763918015633349109691304235460611215680001137911477985853716314599820448935447340089420970997700305386600880806261031922591904373776777703302982047823638545455828391896330145626045931850717473567472448761734367866465546046161836647347106245143483445671550465948171213484557876164770175511031719994146919846950643274009298911251800748903492259228338958607539395909212927339272660439252528350963604412148784482278010881240978014213784340500790891878801811207339158535752039358698478385643304891422947988689852276567367386024744723009152364908248986917272729732983550137446627728408183707930135775264566124276244712847072347871152456139497495969976769853076681756397296396678585316728837333116855856025841311209104329066074145277147612187794191756375240723893013087471815738107797594249366957388236082822061396537916490407351416942079464143335197384944220306565655173516228440292078490761600536119932826792023376738507858698802679935195394959687942147291453655002327786096910421246662646481516136511610806281910974714969190204586593963999121539080595373472304274562808654332991175652042487815816292376472939002689476191561639762183571931460787177846083471531820457231153615713229123623993773990427976615022486228012885156746889200510995327724650613187538839121766067956009359647588495430072111073777168472188360926124749432271909512041222383637205362035221960158329583218684327871003284273219607202327671695052405058195898120671851019388564047871883526441851653659187823363813969770948024049586208895809367973627557307558034528486035173778480086467339415893637360591454970354925725860219760009644016656559292521474777566897670439215548951497007356949753872793900632599114709444029461148155222960669680207078520980993235675666314721256277505212671207529484812215708595409411718203481683096675611436830983269124019901002686413576547960439282698814490665270053650057756477269852347298105698770348890558618801067493901633983069946561588036091458627686775573481884896641130117440893300230408106369816241504413648619181889595426773572335035659842409665971671876198565503530954714344010910824968404470763026640845378926073155675301218407982468719669967145819146899212806429519936667247488120708625815384520403507349686469151807816123701678138375594401577317067637215476163406152855118376789095271292072497304463917245364498278193049058028966942687549085699982757025119966399000673542496356123952688598590324223166697083938422305950345163259513696806804196195310537822982352334938687001355467363773603270508216286533594042282863651114952632335807626681184476303107801989673816308813100493392491637687593189855294847110176446981308074645211970178847662307015473417150767440884890258581588672815202786598943037492093890510953898736010458946048004238952742101323031471645843413037398364485243008316844551737789449968186528579164411514378493102551934839707029788433123576588113566774793116343643344712335455570152796346886729362608859896321488861548200196210547580867142155365970135988411247260385548427889517288619891359283993880136822520661451226804973303604079206176925528792312356864985401609185085138044898870029038087774599318535619884713162853892018786077402472848262140802702170413504429961681397901050760027931461200245408979849992388533344998550778348240818233927318716808408823345058553737686934230960857371179646034294101729868551281729194474944180210011140401038139536823761073376261187572692149026140375384095750435996676597450664507745674819049929548772844405866329674561163569852022645195060751936112476979841404766737091020768393662790763432918284764405966799741809343977541267925590618751811893403532993741868461145448184617764368701402973399170168990385048034417530549514723104188554391194283560286351488857346001199945405722291213822356058212018402665370841332763291187836739719707888151196114781152399155168393116930446254101597371842640816200735182555444069666682777189006362624066329921725404335645389071928276536041389010428700097000071284482776876100604095081629048643087777998534305111545698089785255027421240371889330008021052000319797930943575983361850643601912392268127245933286308952066978728645630353155161164419572926733786472322241008344533732977215141302291107398184349874663590570957569353418004914727948834102907175631171218657549063430030951342095693644138888203143737548001856998260111206305648783598222679541155003553476864420905502504453385483630375711832859979073786657550257223608080042316186361316558465166014063640369654269501967344391831618611071171179758555116655931804001456631683019480782970386565833641634575433265383905076665094070269787758648344202548615955627390191414189699444769781093359413943607118471348344066123257103847493080567928663797787486339433168819679131375758440892715159705197466158750527654081092082335666258490161267843677948970683453635569649874231169250946567646629381539231817782406226382312022901592703367747787221735100459063097327464295202003543440807681182604561737152838496340082599182563910738711219475777289119557952104510103275452174328654509407225058800756009014175143952749880849231490902664106667576597159223538159777796741244503537810452147692302495584249274136654143524770172913836860894703273037313104701502728660355647752350500905444308557479159218311874592372492031734406609098785846472941447879842180772068322098122496127682044834332439193461358593657167336529710178640446593095155790435808381321799670406850431256291560141605242734700444320014285222702248622501716417542281244072612563433263528930019804835370224870878033696572979553207225171068203586124347184616852223959653342879150056844458153334458379315964570608797399546316447634721770204214280219888187195934861611058730720769746126593365729232110513341292879348747617912591011512375998808153531811340875557913345749002195992491019881227204804760641940218159550780879191659512962855156135039111752102802485156743582338702238629700695642125381686884538683976339038482034579957083407132833609672997492961088298037225117131325860498625144606338522938546330477175702988134278059320595969658200265798437480472053961553653701230365310294878630490716071777432983712873294111675556146885294376869908045397291413094353983838162869120056175246965451324721787226336099043709701177316462148459099928178924786493281157993587664641186428428297091038758055066280857512515414177286924602090505071473199943516929532748361453326801878254541183588027059963248804609131840417970115951867762209839647893414182688640534205044524032758929872461122734587693818537527046210197131387027393633746630494775756600301838490012686900212720409667365923356772404812935084306033401914989396032751859210891513991485521025721690927699628253474545316213220573270292304795944099146483406738212449265767489019571137751107076006390142298378334310842268626428581650376294674992399741241303395562032097712030538206299739391044000746295236235133684886636046126251047971606569495417156923494844579649588601272389130358434594334345366636057133630680290008568833066744983731524952818427295211993491803577489389618860361666571816165995995392989411341989020567882682056307952689361985131250508251508332056648537465200052528054263214369207567887494828504948904162264418629278228057046412539285662553213530134655597514546436764717321513329469079296924042381110422736631326787030831214810090486862315368144552775249175509156891912255445321102582943816239622658681807948938430303826995603733807823635507112835005844612869379826543105140383245953314668536647095974405013873633473532417950178831973084467629690749633166437651013495727867738117451011715166483957726281901625913719426920249442841518683571417497386821776214411090194033505806375667079820394087534400695414168031913130622929432071505231515460878308419495160576387600915220136460227528019769171362438371792773003857355595745267069621754497349299119805548922133390692984197102866031181585462438645936154390312295167826213926027182273425567389733373132672509040474454202871791351357352156367686043374580124523917604319652354452871041727334422403327292160298264955485483336260510767983711600573605185390379299136250702696735223086886747774499913130371744196820699823835383956875923282086975362904119323118266254456288393055718945944753398781315638748181727132353325277163571071011990359874286294890469685179693277796226661010644639673669961277109868418190412178784161360347461893451516554785348953716058279576128648769992197782353495233461789589101801173783594771347562771992106848924975581094491392313100896217639069845323874548779810339504654167638266259134295361445113930661128652119632648858221445917035728108187630822090362715146083506748085913358701784448966407897080253900510544862010782655602780725085244378241520055031795530492190128343061574558360969219829952970263700728360995829451697882646238165038834570629893883716006573368256668154849439476697982382408766539059081834143194036412108127009375705397870984271970938214346205432161751124853425839828445905123247038858841924319331682420822118190663807716011603350894506423962469100095468447478200434358107941626389477356209521838650474255827761117242544152043578207554443643465125897889341803071539916274573708094824146500850089986918794125528193074857598133714800586266202172274303669863701838495318848880095458463315599969195517546340135210165497981453114100922754164263952141042890712471920317771203389685887891456731219905318978790012423066004624078429450045376446120113792266867806386785130280852076930072867910348263910363083467702460266411788927264658434682976163776786460037925168423798795521712766835240020959618445730393295884412550965725503400373768160061373036102386105534280266574142749539840127411274267435790450571320671081053440795619159234043070405706798032726729730744948086681056822789522366262003925287052138408670567529347173854113563571944422746582529555268669517827078004520695045732312328687254574972628133482604004207492881748304103283847585844202662821012441098852001588278533453010964548806518918663386715687717508580506401163829701258386852131475699678387431185430662604953378931102572721566284893049858171834583178572492821082015068645738444114834416206096984540201847840528808026433265411482441873560137487041462799685252804439119971992284208219782154990239598748853938845205095436367157041486848653850935826038995722269214470166720707970637377796950634561836282237958872822953402795852227820110100859476474532801965843965044836151962209779473895370905993943193276008112204932443846807343748188771197475792215830964638530166085027865434136314461045292562150964371147882739636394794824115438403380657729349254468627734956408750335922409989351717012046830746645952818849340439364206300663222169283675300093695050295643724016803096088014601316899138783833528786323407460190529689867154913084058870967408799704360337962390311505898964761482934341155628445394764958857029213036709298720137368529753254638517541033057978648223244689390865781502617239018228852877989886610124534460661004496815829920399065939932266545468038745744024355621070773341386748286934872547046106010561301257749882585403852822047416969574473428196949135638885174246885860526734411246826300833761546612898844977116038183767918143098392446040525863017916998254308744945928674893911747660679902311882119393686745031843207714622203654215381989803905924021479147114178549324990527516389812128844785762554501815544995202741390643954796164465347714147421521188485958871980193834516658008713037094947476610243016648560516730927884149009191252881210820524104352071823400749917123719455473092324731699290183357140154814499874222203988396688187866911661475657417457007516136616012731626539990380831641233969398992855232920905187390559321423600487539670325553687377244436388130389006582598732182956539595926541069167879846787153395069019635432354880650869353839992846949157928643256662184587660444626258487846466538963968209962209140482056975623849051208639424266600977407496071204051925944712564508658517303232936309087592996223460597210314711808432612509250832958649854131523371827486579294154986589186171553837852960212605816504676237831286994359844213001888589505626009930791137333791188443617479596857707831670978605649207785708643328631216877496159924192446133360399543946944214669001230090806651546107845186485155743303602895962824864820639916454166369071206250167775299266571120355836731833773207686966093533421888218236650331603829583192697975710771499488405491495292077224234437602903542547411247141742909083382660548124855014016432534883624588670564845576014858206909171867621789487627502303516708584042573119931394081534943432042094839621797570084674126622020390757484619045889227181706007227006872488867745703398365131956363555833830985383851174769287703920537693479438203899775218566432167019928495104969118809371877277397175129048627330721417142911127063597698532534989411149440807891986876977221432216503762325241168389976113905422476886447861914467015534768757228536741891386560597816453552457950407494962144803290118551736898877988030140071452470127093651605989559943919937735607905941987568472401866173007658221295500574508062547601275560887914851514852030340688264677263722735187443547081990114154320251531547621228305340426582740200042401918860054244091560335209480281481198925980008323615337933347753691410722172002613669874422482598376951023220461513549997651807340610387998910857997942555948841035479010877379748396631347641397043393902212484804523190646714745513281174148086467476613238334170357000786889886746416298272219345406119466960313105592016664794054969017355527528200694081490068856805058638567427757889695065727719323088899054366523606750191093881309663625198542547854942208677388796707265363684468585724321213661590451413371668378975651057450548520337532411378896184316979387052905451284209269617670427173059322344952782447701545698144350969904632247529742666780776521467683667385643007502458784553558725140065787121999750977866006876417378337539388806476160700198491846302411040381625439288938025352960655850632336350355098071669825439601857825043904748299631792108712812018655664628397162305956653930465289187924543816957415173165381978351720199945610974012999413516956686972330857697800374719739327140212634776911417537683471367267419363019327402358085900399048339983028890657517266810374889481873443361252226189135999959809150214443743756398896989088010961789320825857243888030602742126329192091246572186384437085656047066794372473305903660205686173418025448657692746496552720835977105398053564067905759686815909545123762150909248974176547047585594763032854187803546754605084703727985125233894081954886670642663396536576249318832377990019319490386447919267714652420530560809532724577558431020635251135378764405226466107983570808957153523208112744265359341242151766638472212451074015643964234914086763691031557358404240669149987228317172016963550583775905058078065228509276239522650085266959957568158004834468302843663951085186180141274073050727813426644550342669891056499240642193224175740744399337938183167912311967770137391485647081690732854631177845716379237763030366718385762921515566592547653414285024463659240756567784748415558540052275416905723629602941805468842883155460714114347043088500092685959210275367961275927370696808708304769908847406716129776073995172253227296823192980037125279386650777435077356727464249224358987884636440529547304830800284332063025279236626328209453487948118570537066830957204823748439900492642477465552439312940964956442050828278727952469292981303661626529008086850117349100339998779624779771777141289279176047552852766978237411995929530720154812705785002252042583908818359432096670575870503470871404866528234145021316839836883977690549716146459142108761012073704757218340961640051356752844262922550935759270500652297148250238932833977904914393421915427440294259563471331505690146599719251748910797933107005387258895342737158240813539795693760795472768116166880026734268515587918075239299408333217843876816353975173778601286342284384755977598283596611223273368394869902021836719114072666707373925079645553571996101602738346628972581204669242355977038650133484104606679125185543162879419072798829834423792604622458774750831311512622197471702650455467331286440192094307127315781239744783571610457498917014478192436623440807560031417752135590150661805174690839156158202500806467046983145978174691288365092692142978297354972854254017112019273397046532833001686486259972409544176840840311899952393170239574777141090560806744346863380144218656484466209628510250583748836892033448482490215456488437343401885236231152906422122460981601220324654906391961452588772267899011024892522621047405376911356301018135879575373237341942011898777550880387091471698837640242941211278792675806064442071890896454373221979456238196503395444069702125043335877775813196428143559374321573399022595479903705493414043034267993610481706203116775476300411725391700411444103610468557051358345394287722166977595520505381351520997919943560822919415151644263828665730358120772093250695042084954737502298205690926991262947969998159515486386837800062512898303036055383198649405075545316822926681865488882294950095767294916576227573936540867549670992911538896871476393748092805294218921958053897034000225608679973505499613797565317041890723170588970092883114425625049111419155783305331095107832105779308781868496249819178767380521627367662278071896302652832556660114535432022229500824127071488174498876989260017439410419043995950321256306839143920572072093414263453287385227499767996272824872239341810631470549595994219073077871356402314300183534140928709529306828839235237319772273640892712949685374150967519896752896580319473105029174502140170507769982670447825105952279060443052150899102469636749408227314913095804110094392451457868069048366512921050570648255032196887600965645299792680745278418494370021321587454154940338871282865598264976798582136909841900187245268670447206420776242921880107515931079600136612919147074242666612337965134675589750888939967177810012807389047389020021989781735016993852475806695267750020749993181133375939757175116621485862147373664815189265908620245508088990997381984549251210929591338271632222924796097538969776917268359381729920900248042884937428319177783535910581194347532806706146384881700837703034027475765384165628589705681026651328037292667102932395282191530157111597463493267367097484053989665134661489309915595765520844043129901242091716955026845446314937927710711348079423780932662489965961124896881616290952262768216295323893119161211763912476451418089871951454796805330634334564571501130769941703626478402850167374362948332114290846963474735762652531056559281842909444577432130013876282115190670302708018303480656395085328706133775939331275886756349749206310723570718009056837038044325510809231840730274625704449200793832240563135679173358142008739484683611737212236171894092533164350900300221770944639921004437452090703975494378472606692997304157831784403781460598575771381023481240635179120653933840644988833242784284478674598386976669289895955596465449535469906019504091961985949398305536312190266930093776466369975384932419369440420647092176429286341793555055050423677763267293576093290703125101987984411937710717583478349051363844060744480815999506100845453768173427084784759556049945936671868212096701550662847940072995497706756816808250769380141659359240982355634895717576025318955101141386554158578562383587531063853935234528778908186366367858730984262321990396600493701401011313211667549899095213409216743787314586224712470865982469051616304984096971592314510348536223692894496547810486631533492207162035194543625764451503105286364652087109989753123836964386819333298089264813922996352578150494298672740437847349432865238578926612881218236626576953933232224199529482341642485226106426564579128457416493456901703914539830515609728214535136851280142796305111166569786500088734648186642863110242207347252764452722569991808466352545895066900236820863694748310742139165055360708716109911171404685846250686552197112174144782447030391127950473726928547430030172725120979628944607255641740652043006504016426581086121764772105953720376048770551433095758882916907802690723463297104710292805576943571458038703386063680897071520200892197025651012892835416037219529027632846803757590329510686045688536984284022095322595209339856751071734265147722207988161747919679727949426015642698474340836818155284955007506687771571925604203921070518170853029681269965356089875062386094914518131100991670730098908980758854844021112571375098543856909024506049925128137149271999352944609619807529843505800006943885623184502486373690445521955684728664636069379059653726465246291792417600985154903432466455049523237586475923109072493636335590092674133498999704134097123692576452922615761590424632656419482669943315891234594727882497455622781389289640644761820174745544251045002225865896687841709763409400356451836439428745099627108862238394711140000818954968061875901315004195569325474807994033895822103698211788907047809359411435289348792550142603255277590798917159235392158149298014352852403028195445945324548427602113798748163710251119090487634176523866250253004451198252995990313942264226742711643665965110555129084685157229119535966081846608697510180969403654096456242476211646047616939717480157334363365007473825982547947710018316849251435919598177475294367628959493774383381998785512330912222333359561059571109713843812217637734395532632700293564459997588709065166103234773103209122510224793014253951692636350829053623644191077214212974369788081832987433117500103263062519045559068715463937682400605257397664759806310269725888543337592418992197676024210638660500645100684598510085381816138022530637619960855789419806913979481121020074436532177189992752292509301291390990975088776298474324207192068630016295979532645382450476020511568717423148693200707024693375468121042284600207302288995203751491860830960986640598203664553473474055234961322916808643034301528599027320764343238954589366852034738757154519085723659197066633822563238825114330499351130537264871230488249963673171102389229517218487412048592160074599850098134150919066720823378359233726180072883642554655989280107941157352343870328591068469739070699347722990352583693593440363180766379185509834518471298454603849106749056069032672218467541257040372978409438171760118985018090865395463262794394152959326818840647065679013279747982556986637233850718360983093308349400460225865562282589080060240020190962846208893947122561308763198926819630747105830308294297906796705350161276262755120348111863536291638513462442278519253850915529690354811843051250876006602819084037532099207374244064227118348748016580475887505856588122383827255284389164829962192590672719053192094290378331232863119426728841963220484709858410057767364237014459788615465308004878141832609899626489271599497637787577955547419406024159328033568671013632367561247682515192560257081998107170061868440960085363415755194147143801888404806176925137670206928540818678494138205041163443822448427854310518271841697044152391759513772863802308791872272765027377203061061996363787739737681125708997753048603734503702452360606150849121650903052254489314039845103180771569510792102731128370510001875733039767509839208945364447725041753327024160160885193744364637377431366509301615071039142075697975530618232709958849869846988818892749649703038162930402631445699701374407097808376069583153712121432700158067250803703427939818497581367052334166333759205371717284923541066724508144611168635749287557386470564166426333684483808615373112944258609961615384861811412689472985700193609474020022859739885891193195419027328641900989864239932386905431369142557097330050786731609783724839073900412914774610791970631134058759429406426191156284949561980458428009233066909814569232174078489513653658143926308918175000668008199038703017902386999473632031718550416429416434677127803636818689680297719350008589209545037529468256805189300127209397069763044705686381124996689172212996595727800322929963743808054198524453223672274501544594537817807166972383445303633308981317453541920852964462577926141304597452199156891584517624753838449438345831950372636919691313472341027952065398685725001418126963166397349435019546006684988355794689947508758541133517751547983650396478607102796236842640703731020953110830745503959479530982441572890897806441617551075907679120357107515532211577957211540370417562678898780996568924077394272538219747371803344508228425403317987552022485181400675980259800037341104893124615565258662315117854900897774218517456624442619892615228547815035861442205217920075965322695013562109092524328444973379435305730955891239834222963982595557503969375753032072247025459516659720108820259389540969086384639433425424382377119330115342292837487778200914082358727010419072199290945846790119779001173861603903101673881162291546547235328368187206823891293624478208558213351301231950680914397806742933802514797933253716320324440121174325788036966887133596947272310629313795052915556478423443528471460073733380208258299727535928858636310054228103797189316369410655272078524331911119620576029123688746837531005170034388617396189161916032580838139848754537381549962481863520258917745773111066419983080901228100730011707942900353270055905832308499711084506019001747181756587217062086536587875223724874606961268087217924442135378939805479765857806874259499299118495129115336605565735192254692832449520251038908419073333004980136531657153831160152356452928579172374756837321015835098019822967008624304953926876960836712184289528319936819242198608115420158405573087778798339673451692911757588528495005578435163325419778449943425607524578371045587974574733047900189673518247748376033290343932563039280878636956034567246798249302095550208399349303213340828488631167282909564825525658237857346229981643483214095872785738046889488237631151078323036596875081729614390853104478493482223820909389911020490814074360533330581051420798081610424884278077219895871173640890098025817948544052276162010329924689620115472534825913867681871854444563498106188813322710402531411012061995630696676150924151839232634556352894744693998685010215205041972458382452335233559024754770982327206704307269053716562668575084355291428809953301235917459924257134700189483324813419253315884063459610659010543474404250467214250425533522079754410532714948846267061415632811702090292040105192522020786851268410424655172322008955724777683397492820273235265554828827925904374191810429620810077778329974039088019095519578651860679589365062928158609927310015171347033422567595368800569287659093238229360066592203140229909495036111282445108813791878186741642529934318309375438725596321161481692042018319848074490798089891564276172186591547877425417226701296388217233903529087363180444912694825713741779746967880937254546599024784030168658138334981822962370025653998422628351590132861429203966324444838769611787513090231923253058974798682538024860043844794814682249627747579053496166131562764758055925731943539498563020620350790735515808680442903315964141587920125191799094648365393195323718014356764492158539677600096552028678809633588844282807708913191948987900391732728668751216605883253451014258002707385176403327746754584869365683284760666345156770939215278804783156391638389060504492571914927825767245120873861845160436739867179170513225552633964254014711436508350052963782724352807542793981222016259447136968800611646965547428012401242234812044247790603183344019101207785965764047214107892282061533923819211645103408941016671386320267372239377393507864122071603932198876531128040839934707761309983860525919977813073138763018729804179837059904425950836953327202847914727190828351242246399051996466212169939102478749758328854060952995546720065588400933335368509057025923658646028934929316455595944049200544694612208825552187750508663903663304907926341572686936114391871945331975335948089470519623794424503212142655684134719923574373399109876734798087490497698130781671450120660268696088832835201787390088774890073330321312239399820496842232874161146989892602387577094828349646279209123876635905522604260335516439786947835699523491147175441212639088449153754848851458092183906227274398543888235373066806336964644074461607665399215607329528798671161913570342747792952855912313034982023383702673469324363529265840771856496730320949030672177225614071945995834135318865592212486084676937393880556645497764599548169282273680435153189074748073856394978591976884566009393513619674284080000103319551921928201794412355038038450194300194591007315634852821453061531629211060172861005246554566356260909293167083267465062848069899297753799384988681142287300075489560700416857191309413869881281064214935787676246724559122953974577898343585393143382627237908434697521714394714741822609863809760344032140238373739036812372699064196314816398330074935428648186714986774312650501848181434678409517281686454938674196571969317740534252310774645301465734962471416436868613264560590388471355968105039725185063307141131765712315668923406235689385981633264905902321902752707120397685500640883567102108959914636296663247108935724533469358039383243882982795442433753398447595433578027551452876261123081066015404749455647922551247478065767914956913283773822459933513139128855445393574598438356020192082736533498954962641825373955753953795553571550290996004428548510170638034113874197180508264188075445984462369171892652929964200250202713740451013344910618106994823086220327022310129168395586872077234277854928331064809233494099232091456594678902790055977749442840393067990023008807517192930461747313794853256186090420620579645208067591627206806557285317502232018894527760147228564133193518156839329860845849821249349976595544651036797157454103407906378600256713005511432224142539469217927392671903270356430918092736543364417254607671191076691936755835992821058430234126910607619313451971985650510065310340617272513605461679015476279616187910332824803584022608495367499125036226734995961800208349121953104117938549005766360508008615356263726890097189358411532198929285748992318139038471386183191439790846698798748107810753728937927740899907752826086609951842648117845041418442080598532372264354413650076411252255531811877303396521079922403613766630548724320120376484607921306862748115466055421823205584391294106100525710156362282930312202500508918571935738486333355747251519172615112454001148487673705656204523434963596754766875209140050787280516543087137396543483808570263503091447757300184592209874596279093242397462707421123423180417641200938158026886941611104509593457519548024613643232574146725033759650839518016982012216795905033349071030415496078327930851567914493281181501496384525903809722312196277155813948534244095971134823396667234412186975404396663212247710515331976257146239630228767209340242585646026525729757293896408403429871151444996088812165610312046212358304400452296155217550738533180908898951687771083390802448645588497931469831767913652038499755897389987425156873177170082452673657784109483443856583537681351036597531055002984541659100318377677921073988167615238472543593830377454288557838933720091458468548748790128829122066093591464486750053795144997288085954132949118930114110423654327137811053240518922205696126531745426388284133722804579754572313614653361274043320288837364724347179045640513172476117765589462280839856178409696720215444887437703506557188706705744516115070275853124867641030994943333912431546890018886233213255280919776527646112546806671669481707708260540016139191070313232076662010130108706905564783563657575957879198952854556160928879377607755650486908979009889218290545987804785330783732692345318614193544817587218455174352300609881900577631303282006256562364287578878597415732607999032077756116674183323567489620557964971374208388857236262122536100222403209533396925629428064639846486545616047694089190762183328320866320747749697418863725166906137297140300808932620886055179362019568152727806353907035704229513405717590815076833560176233634433041938124227905487501985652130777398294239883338839815987644898025906220982641601838453409532701480670191159672569146859407913608874227413601925784315567208564898641279562363546874842583694893646056318890843989908322862558341493892400558663611285289248124266848538942622554542610116757877546805162863351675229789269082182529150571655414236693179287998007587045877991244577278391240113103506999329748447361582293595911425999356834466284261300693455389459589388874486491750309698725963786942797674520347388810269827377043440877380954062196458386687925317054088260541231577493580561785542393826168884216766975362294397430913533240939411114978811252422640909342875342297408327625626226857195241476577091713492447430134294905239823815565558840839390802011178091798205691527488797543029269683987901615778017797884693095562449933184273198849016980337625931323049875752490726666631025415876609098290540885499187866463977411443025164540017322540788147332676016314242740697904364040312596377318681322960367084464379598229865873243299935787531949206794843630438044987759632575201151654399139616813903953984873039382186806678854686169052528795650598047650902089653290423521655138914945073876927646475460752933469374538365160094759059462155410444025823660587181359873881971095033405242893325085784306300207755882339036124392851105375097659896797980630419697215697629787716625247562196088774367352305819985482161435415235877553409141965161572848596356939203360401186825404451772656727980993654856630681279222452379351775067056426909410398178443299297668373860301713899654635253155774923846909707797319723811760032647181200701593352476054912169245622579330378010513048776638702062115856179940447404691906564330367680737306038799311530728398423932215839911113549223019912450875009220841736264213730035359248975826581004741717264777004382171114171007668133735643511323497459081344566541446986657523987846132693679411571974032201993127035123792516407403095504107147878961955844793241565842618404008982426710758520840262026040361372714118057973552864439816646745725474712316993019933468876801586956067599695498464375922044943503195804744073901414624965441910311104726777711177749718933688832341180616583795227647446946011769207543135275938629360224042241426255147379728605819200951685613127617883726105729559032251808188244266813508207726446810887776974411087784828933099775704103127002567522470134134729138615240889517616115097078448809617588515229701768093099502461684171983365427941942369469685917132200621574445704439269835276045212890114054301424196152937368709677260447668239372425432818978629488912360769123274229592648632094109823643159477870317693816759879315473686994630041614970938337771983365067957042880020429024561814548001795464282367306811964805626820629453957948770975480248066168382483381961788841479913889601327296073873468015305491151336128463625893717846062277340777182663381775252335828846318013987519061642122524318595675879312530107182980100574125844861424515328536534970121600416701502229962107406415725432817217449720989678716518027827526904921067156723729537129801855751602779860981891871736421908371777276448493683355308149752535482813528701254810295322326357917860064866294654708761589858152781088419673887010557320165324731020718377842067204643091691122300645760693311623896023977097704337726356591273260239534043381052741015786580953751683044852249635710380662524964346308970687619951835522254400906986700034612803157339820255858055156935239085025342433748191603883398120735379866554559933400009172630670782393202047931967730963865985772030716285720489683712665029457259654930524324855836914327060059901315174977143479251003475665092059787267851322239723770497863857591613443739725032681359478022313036244880403818738634431902758662859788548697422894907095636497133740923400174256405889333373067447201184199163310522203877623996581985055044223098111876350431113903875288713763556280315627395512044682454607475607072017241251286443198872759392139345241613438001866013214110172333381912110338483805793706531055136794221612400055128143818715525634436687536463217574142260399857525768121846612149713618988530715410364507581552786813444623975349185165051006937182238271948217267240077634800707909770847312711119381260799527935368829687567761108742847553347325582050997137600905160591677315337135268461145651477281154112445357547454025390927238641745980645646172905165439550901825054513707552017728370750290548841422872618172314867428674678265715962295596756409923098934821782065064667259229074979855602915864055268944874819111693167345770109807302526865556564650690087817432338848989351907520242710776932617231832347595357439474852008532360470835179835442884034276521786358186140450557106687910622836531779206096512281822183860811960694083763994198291072817293364736358428359287240707172309503991386202556821014071247594536832498901690044600762218176443429613199184511163938662704883019824850959500757153837017433886752246195344310326518244851610469583578794936344716071124069950535195869447280823904020014488624212707362431240500983241494671298358207200422282112601549672779292671035672074939144542542849952903614021001411137432311081533264255864665790252400022447556300023653485374469876669986932715696424429172504500411466685339615581976217322857425368076789161462176594002555242734674997356307080781305658203189873710548665324579989196027853313310751997722816352315107807815663575144070147313524629697001796931716987075642423943657293239942350041417115818670167613223837651138590646133488234634598550964604596590872327314101465977144108712538449080864967182757722924558941296268737188805794010733353612924166486269263724666328916920599116475207664255147010800170314128261476367140987813110484215359823674483875081081533505959539591290790853086247112151635621869811907747291599816307800291529937609582600827250317152654257418693525731227397647660992249987537267940438057248655284411114156869166378257105680266067501237549070470486225299957420993796344057645101200143686342420854486307787109121992701651268928227664237718942449977231169303040888266372508675439379829270001268130305815745924974962628151126510435662602442387632025110856953474495233252720943680116188292344571682648673854568150176317988759814633765099340034025372496183423610243625611390745580870082121615562030419337352749107677035974938828538174742699611410355116527612879186908268378702756368495787652256057847207694895961630574317908601381804865135614161126977269565592864782470102798347826110280586352752059100022976527438628261709457611368079990121610908171456839315664919066325481740257892881210738575371133426737973791042464664802100784384691677317299507880521058190202488554170130379267463810673897619002313826231902942279359724912644431809702476912800730420711176731070144112190329145508465601129288451825102822629004303289125689119810755513279770232433730529369034012101234710429867976430740468777776434064285616137647558847652129404191106410815749374918334512441257929439496711651146770306871046590134481457186662173009851936133588451396503843699100516105799967421370805900401914457383490578242152564775774083471491965977597062953973443490679417384249450826875190335951438575614438939687393728513408769961126135737057423487306656594384239200721959992365833370334777534659807806365890093772297617635490883404366049740354501349400391279604541385914867921653331845832513397487251013213220830180049208602502402342136266253280522283738231033845100012884679275289441451739723830762566337724516242242478790265403492407434618542279024014139387253753705633409690934098252958508691616254833328662571341667473886675885534773777719818414826359324133591565479698062913696677111682201775253709647529949564967233151066801101067696800814907607941098145524497866415469657294948180261957310848178437418026528077065262022052448033039893544774793462192408980667561298487756547685220073653412395038494841917610458977467624102281175337469578068102487933273850967571095062087006397017700015243670246631450129896707556672531064713757836594425268356410293683779951307015310525678762730447843013572901011093694148918170483776304733946137111413492942435464136511308952126106788737431735344282397069469278631808711030729496737074895315861810885872710819783764520291040529947339348579548875348649689543640899826527871413145129551531692756643018712581322485816156044656527071777582436802920482300888172210781601673487918992615120317433066717245597625210420485630054592135516857982288205070415111761647209873664638331045423065394434113389256786936195193644209584948681915610684748543937466413972861549378697122615805235549892358288021172221569638117866780836827896142902886917085434965999566186738642208588140165280576055975260860028116643890946198604951259285024980114539863684353104856050048236418168589962134103971598113619015942952165723302628693298097934297867716091612916841911499721629032077864792202682692357600724419693819521415234234994377432856677700599757548763374687927589812389517777887709911661733800106515161987572019157517028571223884608136416872432123913751051288803562603062434682074294312746433833478279404398894518374468214855700689038543518607310880306302315095201425167597588870562136131209798496438256699483732414391896475645238315168444268274421340533984205081624658825067923650807393779741981780567464604216727351588879601241192455037530860514231280202989442419175103271349797027243625497367182129063086724051734436403178205562471104926253837387666405168663803859355978879359673105922864546335013778504168437281547482476802375981520276332071650778584174945274046512002337217135073309791222875241710991559690519469940174009250454169052956112130834634387422661669653145081693588979001134500818493174057866985732738165774292269466442530964861948619902898462305181974344613736500184677345406911109538526051529266826475512010822387617318462104432924726248386413266263650650916755167099860557722902649703546430060795183001412200346834463036204127296161619157812307996724208866100701571141891638789918538597214087480513282494885866172223169494579136161676173894552169259022964276042901058082217074800510909641309208881961387583557241451137299494697754425090309588410628128990585764606640341161345774237631655829940049422367324945834578565415844556676746652702666467860449620664301994933803186811477455913510775720549885517321397733507224834689137844726454372498477954991255839558723197132324832535240492514945261783142071746260805228987498923748679028026279542754993706934713357042380970826927483727240047150599355931800602802621497803277275178786990929505102062400697503515115512297030898963413445007790539124556965479147749461773393770062970554429781952583505660028428184890218219618040167507379412904108074085617705750777250222221266317701904089004087952625775734716237774048824819345684365266524646190788684595625653639145117990076614779572844487136735043533468900369574630228130691176049094383740238722910543316304221733524706820802186169564646128733151018642041729070364873728571534925325347994398951735030834319517622085356695293733734308938008431162645691568315776418416067015580668537910659310062622632808898718744936477972960370973057546675046705379555331437647160482051370402971028269191459507290160955279971671401186808568977704592744885906328285800200242650560733527752142072752061554646767217982728945772116526927073303583466825354479638052531005199303073296451131245465049061295016032841959607647017663234878061274138194482814687863904517216881395070640590754728166565413469496433461631503502831704003713248690188670067712312808710175009306135192059395743358399164674376605746347243571292912349206972221016772501105761713127715012553908180058847874171525025819138012906796480621625809628557338731790134193339298237163439461910932430941693573032134479583484002144071724284131973599863290749633015950343812544730863968257804378778999922713865836314153727237480373428474814066764449959892000585525997729403202148736045960891285157439517367811460854321957521727620369649083431484776854353805375460322282038993897905231015765071889210432404415552940143037618752320559188799303220417131719424561317177026316830613306362403169504235975711610915408052569328796558977597805165643294281859398186697108124840389032241133300727031084315939770327992839852736178462989646998324992767470586520682026525394076313634498520764696822049035778738909120920524584046739868620854418748404984136919285307916044149214627556913463840470388977080799154377598581648398452267263064928730700615850813264876078140890495861241296113694805898530147153649919276358303605215526708009114899188145606759419183341212336470811776719023690831747051111489166184668282876509218964427588728730515531794730977442388260842625971491478793799901047867147782499883166004366550902779708049092326373816735309588769166120171855625360038738728854398446963585546377814983852562961923774144415866665996378880780147710870540024309987642250196701416076427331909307390019443961518077305617522827450621506230065091416417931880600864302366492161104376377319284821140029574461310366509913903749267317100211673245580081569334303644347486850749166021391378768410141717478134342053952829719050000840485295124917343458114162459200940364003413842556999357629838132428659184450730658897321536292824987682272334414559174908789120086735787964874699336822690451318371112894950411866154887206184977085945027822320327762075023835806418349108252501622762632547339335488024362166219266868045783322652177639886571926482797085973500988808735611865247875438927849117798701692448918544339461856913527027062892242772084728783280284323163805481847855937063314606142706316683854057541045044445647129886368572272189727720635259296337455439450403144423208195884738798723387073443858887144505608108025732593912016811282589261314114547496524399514144509826150843496422505967891038666408358866195639876671486084312029844177318220457101839130881991013261610533295000497815064546412720485342121516082282675005869881295915226584649758177085231786480324763664639730060289693043019111809471680712526610607371606645451346580946788657888347562297399336619163925163810136818304264486672590845873844572148764005269662277756244176653327093490491194795044784436730026914583828115179478791807275757210204538664955447303332470427331349014345830883416332671009522621644509053353113910761551889355605143427882268064072226251900044695569261672002664197679168565098729716203511908607746060786523457044461128823793158940602079667836501279361027782060023884900955459812017526788909451315104173167411089630293119485231081853480158124417614737135613048783072438850219440766047003529606380567698254569050814872074119505288475160330738045367370720249650254474879956942263710923388690785516316516494434527129803020253738639647361537118031213921207629354454430956367001126345696284777998595725290548085089602751356330475882744360924041229368116014223613549035307436411045445287050477540160300154577991882603664516237334956636106850944279602209589065115589860472167785327803832333096038860773387929517779870746115521271307614654359012276750088873308529012007978074626632663617896487928096106239205954237058350276428056106996451224071862769697880780590473029654191882895385893541657800074893329277459623474793458144951752912010788178537713865999120717083576841862760448281839683520153070652238060943590910960198647951101561728459342878688045646754223543322941720906517900739793514344292790600351332066916777720861053523472523843258740062951575476722817778322182511529655445469322098310150759320854336160715925886377288972714495222378714025471003038808158570431010915593672119472122338769302031695128234309066674730228621893990750685800033764156343340125995537602314128749820528338653826374454489857296302012245286956019301760100435675166843031206888704527168492528145753740369410606686401253097227852268432207450752522250025907462660992325997338399942532663397762098002194102943773602696698458799483349313942342839794508433858034698940763078827810028969022072177226213834324504342221863933633121396487875452157782989457516584416983676397742739660018011035193491422130103409725882076267038261354915539211595035877613125992514251836923609527215081454935072377188367851794289398516090336785148841447581987759939218779919832128481857137120064604830659280782244865176463646065198903341580216846127370384871517708709537485686178428145956399558256016297789905563258220629449855980038546854001409687175365121937845957936836603247493522755883623088943217569220197694103663397977495427160650541053268335002224812826208368888732372588397968630088510467701983976456266651192226608320935485583224667354468882501939581029171236984009635204797255723920641046150971368385345730336993434912367919242074959363430775639922715579989143790255360278719135353626775352669957253987713572643438515406597569981725054942560237535718843013487241655076472885641981086779836858914011130280260162290592214065202699467704716021121987843655959645906628959677447974233038260860359001932163936442492172007617694976892122651396295885436593599010083986180956762658866985843031277215174295621432556958840591502353030372769077872651025994183812683994739520245379321563405100792582807896461928586545378963614492966592619555003112990724822837388352545672944410596486600105755990010526405160043927771614140367043759337508410812822987791551791374377274180611282505097688569462174811087961898097957126520497249041509151327384837566147971248417182572446213710974683845207548080631955511273048239962595319588357771634968880248999283289419329799303041826899959217559085857509502328344918975602775632075202172125193089041352071618667564165565555443136268884251578657341719815450797592431595379467842522969847332690005763876598169361548977169324254238832138814402092705588443827552548634142846629099010938619379449237655500061283507533372833901608737101379626925752844048331820018168759864551374597539377406478272884183746716168547382858844195523408197270405613438500914405100667789613132667090432019180230853622973714445388884548455823878824963012898486617610666188947840304029001664903868218707703405153121897079866242532784253260013204372698328304832760860981594317831891896818231453841389269584065615560219975882867593439267981244109727145689547753533996202308180387903821617270662461542101682793960223230289728547924816832118343119211199440125415786772125403054059986912592471600049288895928324519629023289568543895538620430712023437274616835824003805437553151439214119946091598477044487459195191493772550915959586787084589106177605417646975206923661626617382444735090269856066650614181698839412185914355452424447885904960800279463019352165048284938194592164687562090158127160703060571896971799559467734913813350226667920971239597488431073835743748075566905834325304892014620160849970414971092395368910961766782812617001509979585216144028659958488203408825424253662373592819736732371393184746001034058237769288491620548834277320010060932513785332735069581401820245207600925220739433164845956136799802232398174533940236073305028512790755174342509395519813696524670708344938000207775533121449412152176556042911959439316844159706243561028546989596115147860768718485716611103182302577306423604556808469331482628522838561128508260869051947664559707003993775811240329958458447687000547622806450303645443882802439270653907700450688619373998091812836723766238188329847635032763649127006527131899162852952950139804066559398288255000075355900600741392422542094931928535793130283419268872482081469680601779176748669242892385038774410276028830865196630381396219908003747904204472203958927262847176111124333851091533178340637065690520652490748908244088925277258164921272050224330768568847808889897439460706654945364030860554937345155748532465611558431990690797579628449479187310996806479684834184240074789322461665933549136792788686742411360121368269694859620764434748044539732684905535055548034158471989517813749701512793683096392548413175032002460006905340734420505567987752888271254743403407853857513191161578087268482573136182401101877686743977533688516533608270266571894922061328511117088272337106560353742940702152021252915096384248320711919744453242082675237663085402914703226389369299642214650260205116663853766493566150308309911453270712664868784154203934693645972298713973105662090161050027194679229314350053204742531508952743247611532692252005403114489033515762693552917144458825631063505314542794176701317894168598121252607649987980063028540593302245417644917930334343580193457285573522336234290943709157047661903616704639146535635257377382033910327342677004124245800083395214782102580820861335300497140674572299024128413886869131223398933795313732864426646266184970515260875343953849374588791893830709136540582658908079783549382410035465166810266659923575848125433562929617930633287852874502648420991923994277368012988398834261288347677473872122385655800323379913359207770204614168427130950691924324610609003485845998548637965087060352751659208718473550547237529287645866585117932084312674613978137109614677586328271927732564864311946802606290680467088948278127935535310677274412786935039103354081297150270240019666383996626784311562193994605564670642631893227151133134068397995613582710517099146695334568552359904797043096506221537444938036870331167007799539051094664961584441284946939865312918323166795678009328978096371303415297036826342181812352294536473004008634842462632016427403626113145850487234625419416362977307239794369537112995759342046806316627514581495544943470090095105971280545440690681707646587634236338155247815454559692919497854150948365628653790112865184567686166808324114789610487220172144834356705354679297652487860199035687859103444015376644819503513940764293020066623066079584632762745107258915164463708453202817232964963793898255781215927407063952379837860709158339307039697620181401962709197776867907558352546630936768585927390582671470441006091626748060185552057445217534322633646425772630618649414714321818401395845811981079176154355494195492858116963864850153116116035793574425354897596478156704816331272611142086148833967013741190466262840527578238576241379160714600132626829699786689468853797312030006686641585952047553721461223299807550615992495347625037557513993562649797460993275345330246125985683965475701749930331344309211292175054846240796392830636762604218802056558584656357389344480720335745476909991176753457717880873218351806008571132930859927392318288665079749482907028992922910583447893364738556495506548630294028505100085734881487626707626065180747267902348777534127178677358253483403041862932355709759294349868405773201446518203896163193042288893590810823995048210674379992513651856536881081519435595124325848528624301666137856338895793859116050045648796314605108892636393388237492952130793857445977779507027018420347167457989498422015869241545594468829835517727199444650448277263661430944410413787331970102243225957376655931175710017208671638055701185634011417402540243513990776507182743052047149514608902084992202389140198420729176512666933234919718955171671333723237362151749396920342671668755323858404439902679184179157705344830898669391556545090137114763973290715607605969708231554966919907147817396497733078171813151381713810665795276100080683568079500547053418138810041530337339586574498903753675342402690332275082031460547767000053411508787598329945161331287619932155933761583567129525780331884224839050197756314879863730955245468106118884192625527466008400169235688967981841463921278326662355884884777207166031143448383015504622829544344598471023603370536174453761081040885690504389731415701275617694430275194070661108682037460174346231898276155674807767768748447391157133521217658274900291003750139369007563922197224201483867283987630526760911347160047101289429958914601001738237641782728623783881946300160024415230193667666970584084354584818018976403734577584024246980200563275954682001131714608183853827527390162877679922592253749161761228598212561806306212593621072966390945494242217071033152781879355626259787598339037225125732285210204245270310147575009378318223524377956658077126868797346293520722908294656461947434379779780802861072749063000323528156150189714687224434202885721090594478212261966152895871653386563910690095644138552642342234951322030735673648071122669622438462611114863925945259167627353527547988238801456169182890986273736457955592781137764843203196870540229216292355439418328300068552150664536222061343058853662175444425344642284534372487911123109182608370980333165830042543305840684513290618861704297702385555216791879445580224477208917648981590955448263300343087424878658302074298646347396622994846246601221884465485964274460610372364162379138906846086274555668945183884549377688991734274169127058867196775943832519785524880876743649396103487024858447884428304686757284110973658814651096129468027525146188809189704493849995099924966081363396919059916492914821134231100235732644824175799739335968593838271271872849553333347017616617809651644123825042270170306427091450641254562056697362440418635614237870688415954893712347634566241013477385851195136414696081927888572309379096835868173711857856609648298314873948954891526690918814916828862515008764391312414710368271940714948600004326682139771264326912811419739954432352493530772255108387961268829387663766022700781866968758157956788524929358703461190669400802609443478065675128164940849878112229431482671935512641450911690609249552970132186418610462379222353932399124610309493559064521777518376284174173248826554569119170929708254813354101943155075749731705674894287420811181361532710730174378219134724896509144980170996882046688050458866835315457010644155642230471022741317004843672002141073151053719645338532112714702778259806191374364289103198345026696479973056855199692872787080079283417465448246481578483575169984629324661007849277211470684803916499574688071066347669350015672943482262726228595734533534657196904974406184600356899700352117456686532487760766532249928647142349494094629444965515985599216435808570096581841523557502368480607126866467368976598300614923264224957903022039717305027901166057383210982722887919915603921052408075180057403434999879601778410496751559933219558560390923171601911171859428981812910313054476769508552747410572673641890591154081038705560193337867054336522108675715982576398045027880109520243486149410215029791541198094374942260365039128689866717737956364902748606436103307311867732310441824703481586499262130419674207279466632215768466471091712203738587632095276969431565997187644196891852397367353401231870329957518354593503916545125714320169879138815593347280402811160718592343681894932915303076212009645535157554756825850580828707982246327118531259281818394955988120791685282944480678902317036300707450579092959865538632866709462532135395726175867418633255465299221958598854075805425524873682011191354673911816408540127182486667176541323349574610109734710709383738885858370101028962362488295357135614510533212189198258297835545445609159034652189847217746313718861656722546810811954221015467511822272557610925810217449469878233842697779410154944819748669861297752180812274043563086441957752640588507389239063645557998169961918260638683946113600404450917187096191387131186032111075368551494951294999073397235373430235113028109852271164179797863916382303490012628039771896932667370519986290531117504421568260306962695246913000548782445398845545500447085181317650978282175146248804719078985438511493439584621746112988635447379014298650169698256865445999918993424130455466734454772785505679651028969092676678887801404502833850278633049363999788295579074178930122962438144311448310298232563341262338221977024940237319614646298348490531645883116449403899577220617902600781068466695646063494911900713893493071597727540969729395257481459177805703904118360366037961234976115368303753727117257510208471375644440200730955464244529176859770948621329623128047425128721301848116137934541208342906197952760649719326493075137170936898100630420209276572017863266894479897541280618647414476555079018996209274804688398610309631883023374978272616631271386068176223811324358879610528815765676475779624175982733998306095333610982184346830520609423027195015300509960514394641149295913940998078683223201557509547476155316490725357199112214580745122563486277684502212411748468826414668081062360844195244380833390471791209458127809002572558781983057692368009947015567859630164454460326118300960727280403545711095192726932532936889685318590761701200347341940844117527153101558357815461010139652614661255423452099878854051512529992471559189530489435534563714061929429153032138167153291479554350147834504242727709422176020358406682816520974955528641339811709933967956405700650131446463014022995394409593013046087383482626736844099502338466608201535185065568964626745856715122655520120977745090470216864285286885210902083158134638084727825835498372947441873770981113007323524225586373568159554518499271009358173405733056136204590108763467252998660451801252124286708892895436244666253713289129920166014048190541376976175650013035769470507961877921726096510530444815727160274879227229682884627970638708430890320224306829267175504542487069968088634457873291363712742386713901889036947769089223506076214434252742019679073754810916661088941190707069845695037163228647814955379371465257377663820005337378434256876010834123086168009106177069676359248383936271469009078817528962466250483768652252407352875576209767166844857687547008857571024747784204742045371708538790338822219667972085214566935559423748289029772338788515726816689307791129978185387567267086619247673286178067966175055967384531873581546502858226724406548656448174304324726211974484774888646222325752048207085974176770437242621511089244146859815877914653491370303973399582419318744942941729445774482909710054030763608307470733145521467879858470411925284238115598074864344133834707051400876108973458358552859813376885025411151447362069644359580391121640846294201063168476048259001424144142897435637412737620604651905052933640286499900068162305315345876615318359706018704518440825045595359299595028619358534812157049406268900912264295172402797757734514172882773873137798703589623760203762798332634620880013739470594167002517978996686862833552349240741473112789084143174457815565964387327954146343511505178184659960201906153334715487038805513222173006488980675433878770962374989898210804296569555259506740698245101197452033761945109108265857408974073026624901826666090563121558743122056495653509368982989741563434690007714284614935305451760217388478355582794053996101966958220087986910998562879489679188801996635343403469074907348615025700342437183366598651116361515026914156728833923033440298896852085881817249838940431443592264700727368248038594422669967685754495704866346137721266456123576160101282440732011168771803660553983764201615229005966339950868884019857657035088843232555040865124031903071486815714736591219006686773260752674129091316798117634525206009839354502870871145555139703316761095550972750402760795056016819027142837218901763820789807272424570817800640230099986310076719324006025953686297824228289948430967643347043514133366197240070865156190560353144630090318623351150414010646170758718237330180269447054099768876849564038633544211045232061778806270456792242136915419418454002698292362459493082979482823559034043840354892170060299447685458504642438436131384625418272281986485678033992381300016051811063601231052020206086272973834360460170722449858588896207255557308129711333871754119272023842986933766527796330781270125489362955915951889733988264230558878891129402846143694389050608979227660353506030747825230994844357141686968843658694540573983622075008038777373110129223170182379015496455312004728961144353872594862471211328269054016196689744675026118255900117961853404364714204341872598664199726342002485175910635013390034902381262678053704571099677633788806525722204755740380871661224104144009032598404013313703933252022077035106048846572551071758209509103850672962722969875099162452947278829695515660455617744908353665754977350819080160285554342495380867262550238169379071518834707448967814445974439274147613029800323605950592055087272109867534127546490553873852454635802129071010286538071992226829613197754356868832692604844613066364073282669430225195396478038337465201473408115869028767763217758673568680040962871701018922837157937395411723843581808061643309844646075803229110676115086794932975263220244461815362827112673235990418423665054421203547623248512061418200135314338069785961531648054224305206064295409144765767389370826035787826299709674368971387207593341196059516196659030360554652589935710844679996244702055601230642381804254682939969514841387500313549197555465315850604174610563502070049303847571096126829000662135886738967083528161931189987475087937919091055724895657216088687336279469055245460332781003198696186748848944137965121054252834682251964063091304630359761797320432437546075884735937067881175263455374363655501494504317900711123145508169678088031332561856690575745764793918620275867403190263477383807391048125493131569016312352677078484680790880937534667929277975788465583417721514222585847544157743056827056118987526293800494982693352058479516049524156519844385067952072585510708305597597560202435423867431268404326182472265239429418975495852075797110297441904406548824835849707870371312666246280040169826775540094200075991518396841544217612065511900054261662367933217137443042753918216859612939866123211528271325954602071183386153954188170771674482890153786699079972085321006025869748912651433071026229007454331868477050091901094902831242567518779763909960665133600018766759812610315203004654398228045250726616218607447747284820406203314087753787266761364880305838820810289530345912755362871704862916213645071533746335512699931990390136975442153337071735546874931883131054322469399695881600517804518266475779983282566699983334022815132602480877512056655276097492136680688518936343727417908633573396548881948444912037568523245815365769393639906590368325651658882573262794680813696556910089325807531765090163232605095675736976953223666189414022354965887982561815386431258892366664679160417909991842996791887593669687154850198581538409455915433863678860565302092098356505400370864438972669655452307132726786454882638905216993503878869385617816598061265334634329683330549145201461804049519080353595282164761392060963138479551426568066787333677935013639317433901674555574468383613337805221470667535403924582773504216253154844641778441968631324782288096366000519372521104527715181822896386955238255852989690490241631305153760223008418824001114750664778895463624148108611969780391545878797827988701673943492758357212110690515895389872589804052821666455885886733260538717666591625827164146776383078182794339617305153455701646424603749989098450471683372864050083422491258699536434713588498615685066849889097723545922805656490984843649399574678616107522341106533561428770594437151949703216742342801523116925371780325233734000115805373289428293467433538051148694097163295127243859685417846447559885505854888460694353789938359459141294612758711913362915311268183944439892191424871589913588787393998535093190185162568348718507216797931768599051865614814532208026301840074848947306169583480351286527907372819309510104833030245718045575989623592771579874291858355559147706524696019526641339713001086134826314452373795457854138081868727221276063843275307452699274042516367633185591422852367466082281460470222423790252962949054402314023342916883831738472968912859946383488259770586305676959203952608461338441262546017641081013780110732964553225128991829481520594459521173242936514788871135428181634378829319399286617226966683920217353916240103172772063672086057563278674517223656020165159728218724284157602725688168232972199203750267756201808388243893822676808606372049698779366682097416426385041016541095525301899785647890192441246535352584020767000962713192192902369299769028724950891950246736422977530472971375471599883016385714116362087145572945579885648496218875354843450336907092108179375606940589973499442109330539251853111990133993231457792352416822929066146366762600189509214855813326894973177870687734520481045682831903164565510447500373987344835219419778222996744352057857412168897410485111728687895685242755311271777981883953738624242841041746684080063015131470105961551137723005221151924155191286121092225520279774298936214894018537412904468610918875360991643789320896096374848251658058069031494102191841663628915790845683040445062253576083878121002680916661208248399782129780633187295357400230000481818188354073588926126104968795881769158930987568789189127141054058775973832477682038871195005965622471784253932777542350982028544463797513268636124089943705405542080141286006710561795968710874894293214519514840761467246382137299376568093677198582386848440021891087901873162682290917463235470278191032627299621284176186003010628093876342049590400089819420262927266250020974474056560920315894147118416837772865266198877115149528220645439659040873311370798689614581458009133540347565320928576402954107046774597824341155251328667972961757843754292160500507174135729656315162691204646437672522140444966571783868638059617858398425689884907719681127972253606039966525186474511137240023321580183173987335765842006442579748728277994554731854655373715792394898075474942212157842523737761232955241884875042263831423329567406585890251860063156288771111430107878220536868060734246501624962503804631926401304117913325538199188838623579234613757623176086333003559129418223303171212293965826170722498346391815841221450572373833899004820091314839212028543369080601543383777078209906884036467251166069489493907283131189893302071084272599663958302687241468679397936504602383785243991082529064656988709595942023587059314969630316321005044545489893590276404099318470965196447521117708408046143520513538674100748415575714918449690545161237881545444624363531337683468271109862456899162969817355987310630201941804329872130862241070673770090652161803749551677705805685058686104299403998017667293593474648812379326940021219435402094003963539380517172146026743188876985519973793159924619361184188768354340444188733427328385538075701073889132260595677664193342003604782634481073655163343639918432796430543892531018399739178184021190506949722586204917069340947419194976810742463476571696778714829298564429112380856477679820396197947650489412654086456504637171410163147571868787668049761272096258163374699070707004282576388919205421828645368690769776158611011492907223455165399381665444205675354272591985162463077214268885966620184451692036577707735255871047030816130111664309906202395199984863680667565659923160394961403847779778658906786815235595240805348121535934399452092607778889881969776382020185583799844392662142531165499673495034581588580781044540579356520359981949223886001683264273239771583035205543184742700412414217002262580760769310577182888318550308440265972366762716196267391558390274617687998883821809751261408270223876335502977649510813581985094471502477615869734400097427827114224517278333691371980023686902354179411350248091739639268713746695121667188176709537326888112538844098706046724361468726235919645903781912867492301062390777445380370474370384135596372104644246969404556271556678761341928069098429829116905036744263851051694105767786437472365024763111964203549922561825979036063065076790967637137071538942368850120409164391569776346598823939712279949496611802921339479725499263638204115485370440654395362937262695448172676066173080143958119251632234711410459989159219580043814655189059005605564875005914116137215501747596595059180977946655811847319373480235706320416193747551277719328139076016748634566921399936766351779579591969039982137901186129089809283896026184774321510085548051666986929621802549960508522287171226319764763425909639504986423078906314814945012306948737492167213467519477966093238626797114822254290285126382342150705223644671533574860019593919784878450455099610698397608990820664956667541191638014304836082549786636781342866339853298663000057667807537661223020580947034722198497085825796437154870376917025292823507768123543762341481478637309718959367214611898052422337199978003408009475380747542853880884362182966955453305906440139940042418845543026350626219676466954296512203134874339172338253399424489224599075727281044237079319971386222373836455253564091194200707496519776184892497772272271464362025679420766965604927068067866816207544000513276649599598909111009832947439940480960200224208030455971396969247743496100576199021124189305945518642115833480363671256791952599302710821466588081663502587428411618015740080307010193207965107744315879860702775283590596824189131078483545267729863730379095911871682817620253564259737468258681138575285312612224139544339557745710652156450309577861198414807368787578865715717914494407251162660025018908022264946197512545211479003579289179849706463345422035114878606359493387625510317502060909260721319069386333646081151494672957260160775051963062728384131305540664951651432849952122717794887375793085709522620314671881446912451624949967213390761190009664095806122458787817969399191792865393032976473362880075381879283201464577583365739889075824985491719553974245243653554119653081404716220417167820324703874353967548433055849182586214192248921947191077574118390807967981343555620424118465557647382039721934304793991672205392467503318196229828423964707770656645162523616803605240240404526680397864704063682813791886324308409826830269478228749726398148757553407229852858852171803610451565937102650070436005209285360792738764223400556038908075402825877249879148289063900203832773917748942071871881584347988957971599478768607579594591414660911543435646791270311890920317854016614313106501131734457464092588412595851306044482169714743773433022371426132690509044677980838868095039231907344264759936365919033875850358818678910006166692552120760636424929884330733016815839878388402538461451400636889900667558517009764010925908466993614034167909955596691833343265075163815197753465233645535103263906155469843289985103478117505320233773261370504513747649980763136097215936842404980701741409981183380559642441056482976344947679437568233934430000010936031643197531249150988458860911013453375809887186883432251401944991669305314063570105322255843105594193971904545525399356254469430342632657033436937388506366529195011134465131215051181453141328845161299181401986188539107362056057616661727484126018209450944270171948544503509698765701601262423105178487338835211164262657735533485257828381658367098642497568392725070324755780332744233073077940624056038117396346483335264314638074456213442351608323527981379148422338886825916456523442771578744610364541860232601333306541598094200907722135584398703142205988124038711612322679354322165990939682825236732845567699820104443901539455072177142511036419365313879644133934321908157657492396399325375563878560768923175887304619621859544632953897484208429328023488512874485566718971904233940692962760285289906218550062321817875902854633173703905984266646597979834141325310935506637265873561479074729784469302808923250693335549512926550165873742440033529055264353143710361253732555411447282371884776572659094654300778739709528940715967773113729987737268371057146015014083053469480490456304212057503346838342983914214841383008356410259163233330548836810303413073311994138858974570615426312069091747059831216845708612993687868717026347799585781046657200904538117139366385936939456913793540455537790974990525260156378765683487248466296788854796950955432447147579887908999590490745130764482015519831595130036552741706537226740279815705861992597032854497213304471100056310158636517320114983319326891232632908598377306972265984937041029133202915917618731345690421304868784966733858039712343908185231675432351249282934175077848495784123666383764429575820191741487355523270154937395587765627342133634685568731595556913350430570328434597030234564718120830025585689060435728412993491532583007494838890677673752709239229569093309364002421565477780613115334081194833115360699616967057946361569675513544204484406891394503495553106471134465444913545923330222434237976223338614061687190288599330221852837405474144985470907162860453426156212395932014901116181195071770819708437246596497281087701744343875385231401926852008230709597144282280347851183876107397416722061514583290159121778201920755006391608400466292995331945036709383195975582206249755236165444561122927946806742578012254465112599578923010927276813685684833981179082423904175433545252993522772781028997702456355891880678578803621197977706356029155258452388930137592218755708939135115382198259054614614948454648651500721745031236926126054509738932638688285251192520267423346057495397073850003046467436846662476619026822744071386492199781392214981771165152498732507078720655509683053615957668893884576140201833875939158227118261306015275505955632611524772960106171936869445773716203451202897484531558411163179411430717582448383304757056017251625819213920214211245750748460836776689713342700824709427773093166302228140344741427611979713823580201348356971784135011687627680271453850582076501656587918733742404037180052476646201989343366399803764051517170075896685657420302378146719352545640313997352133219707647239255155269233031461570476519560336122324149694104745957467542190197507702487425024774971815644375592301064241765701552084952530865886314043177812119938859968927586588671937318852597347856097177851657868397340798955584963734696110433017889253279641179373337486458437405384810039060731691919967172820546698618501720830506895580436701887776273360196167315782268045689116112275049634676813694942553538818656812422801906213537155837944678355035368295615122733814158264784923283154846539006758605759195937211076673077353904779924340642800649027550233931741424884908785322156848397892452338562504862687565194513640020684364979480426352095813263259073331465644225076973959256003253472507113647798729127780652128559259138175269979974874449590310493854407223426166764827811200518570154933009441457329423029439183321748199833544531939708576453669476186406714623263199279463785528190113619913964889889615308532532829323551456026486782076210878314439017325166442862128150810596972320665506628520071025604209957510233168006014814575182925467331666156903714209404931669551023905610937497583937957161482681898805071656266779317181950822836042973026380536109694327709476001766994505391043425053499895797020393831294947329340357425517981288793266491874970391896838045643561853441335623032552127123940263213806938298705757357264813348542599398579312846472958436976920872456603743752080087626923425272393576886734975901449096906694687255503063906921489144838492323148736647969733094679720685253971322159959768199406840156452296446697389688230576876050052502925675276656338567965066307691207354989442507551440292981463473655693955586202672932463097195313227538652371538424494955449098889670164284398153574878880428811014192689713790135422400542238735759937363205039547482950915765708212360784537542517944138274378098451544823437708830466280822582258423935254652841583608741607894472614448844003258821871602250804596848521036468768580521681494312648275324143076855815103685949488843004845175398519457708928657076249695515302569754037499243206731186241555841675099157678648982166884012017194391004343480188337386377177960652443337982370570803947360365410097925892177299208405693030320626803918303845180014436833592525757350226066356452985963479888614675596836226811629022687895086026782438133244013466071616548236712897197807334757234273435891587283121803013238616181083913465428729428895928504983956073391108368871219520693203903111047519023017199852590741303823509731117971026395992792736469205425049831230191638883028997433836709891854876273641204060989849647050445264815179955259106086348822247388879701889609751318318177118818310768870372348779130193868402868622687353778358583213669636208083816122205155470792613026811154500777415287181385628243487040539659561761217661294489230216671223601295574939192709695835393156324267716425243170301280926293233130163570406792799414748853536315379611298155207263820531575932122360647548519010161864732039067198696458030441312712554561947867259689215131562713285678749752979710175895446666028985789031893817176526945684200152723553066655046646822749973090265543360815083580554298628498373545865497211287007268950871731171258543685964280225108498265161048822816846869477308418872620206877822789298341136843116786647044623847254407939616846642484608694760366611869080234558824309905252789621749675549888263913273914984066834271923721354044873506146402813903059587377707675270053300730164598206085549828953681282652004528161803675570962251171691646406240348847952732453365638159122443533094790767708197025994166246179674712753626338033400700634992501208002595958003743923430573236821809464634376692174282487785603921142082859963461483587769692857281711967915989848593240756998394952128561076885857743824089090123337925968262934603383305077295387701748415046348308427516404866852920217246168077678845936407842365783424525519441416006963355568090904000994873442198021792679849135752619947734870108369704165030579876126857758869595899091175645036708510173569276345060306112646276731115268493709403256864900300195120296657514954668717511666950013452105701420674410140244659423517873135021210958000554185512137099793843283857616298917015536067263339624166083004036981479195653269996234640940971983197580331842940531282551570847883915820301265018285292733296458744477735895233613698285186565751327336949172337521183342231153936113417849247420303105816717658802076553277302589056435050531580580294027390994821413055721111522700792471392332702422527635689473446665368306401056080109192247302362387614327879969438953098663337678330445156954426100021762895496566516388704150590639335080113305396709341013889508079643736132728657858291087668750910458930364977150295279347515997090074635811537341969984966080502416973406187795404421386559889025986460393900530973048824610555510899733367331672051892407264971242155438018973143598414895559733097592589691086729313958184736216916795377115028892917805146096876672185929603039303689872422763103286785293957079700886507586002593234168132964222538088618541336475274570819635363575100344164849587422312329482660924031964860065877636534940563182586154316380601464216229528303103339774456510849940790351414888403494735132061640164373702047888234419888715480980494109531401642510317574186027505061572505528153838140784281946363457698004882099965963580577588013246438550772666456823437333947641680950625018188688880833507503599512218850942090608574129719852791953214856143027072727743033249504674350225897598194359841464547135179710508064611485917056905510525127793057029351269082126989620949138535980965087387849771553918335937168693190962462251681845803332698242227526504105854308183436314847898820979404231313906862148373043864228560652114935471869814250011434052685263354091385729871132716379673803008147638709911767529027699410524519378893499915393135501559191783181264934069805733820410986016112084478702340138049221388248233527353233728646710238712205395680609852879978495865808963538017065281114593582006964877037779613902096529507955933366045891534633417512746941022365350826483622061732584225355555884412311436463469192053294938056663342991444231032535091221036141377595625949464627388080216421170189229098153565867376136407143634903017112000903857783532853294563228873701006044054721848941546839528938842616174475266591560813665863077567440361211218042397770834965051567802414122352308079772182050447225507539016277904605068872704081609867709543934620761042684892741003154570441708723882869887139985479798791760402154414292940842036526183406373375127217592311020277152847613114811071508180866447242602387669401357716963322011606218101144383738869770553026992119909479049404526857326541901096555087729915184371975683850516986053916632305208103112931902016022554428580421896722496805217480692999870242833024426430618925458234865684438508532339277147379103752093942192273113295941063554865984393138268707240583454723781756495091172973873743203063231236464303785500307298483295710343823319987606360292393143901750141829536833127291804798999962809531307571276774250417466280983617882962593648167056325003556843062757438096834299095718964523015225984647741833464544517273996725634603581201496825063906352169522517377000193425264748200005490345565387490113052375624974331162203273796832545716666960729921266188290589621542334827742123248523618644689489282192185707623573531350024385423420703519546969378469056430532745746108818518556507290401253169062432577047022913407022374723263626443296886673764952725078921380928255664797886602328979886614899669873793852936723036117687552926254038676446192803946000002813715014103407525950074752638906482419398289509728434098175876876841874942833873037450914202054265955679412462150256279099154301109168358453488731920363640423413252786538218864939541351121196803481282444300908455410580603071223354729473080045751175836214046647794428711689432678297934462592452018776697922692517943928034870306602983855481052712924881557564801650316893557516447867804220749642512801249170562535702818424423804167377821472300651854482161231117319709703027422670603017152587550659237323013241951271830354053759713918998814093249460718933872046606770451014207720703003518032834982087123687185779659611407763504954968961479662885946028214671080360137988451973714111796265316091068244654910928495059882099486182745574667894299814026490043466007910817302866098535387237046043064677626538811405855421717460971600185846467842238631555828367912277328992702368582265288938114056031473003392484602488610060608161402069897783506631104246386318068476099191259056882483429829368596062638618069107736882237861169132408438264648228957977630301575226514706722214681337630665897137838167084840987816761360291914635211482181430721568505009087063233969388188997184834038417638832688109021201130525130702414913207684841668963585303766129293957629298723140090040380395238037476640275145875589883954146526098496675507705751047926886461207205855023802217041696078742985827981604229225220569011141855220707586898577749449415654077411422712299686140315223225841443376989167920755129266869718224298412900836811513016958221942767725511749611166892337489247481003796605971503266287358981394308249062866729403672452643037858600615616109095786226498645116154206056445440869533294342357266662624945873985374575362390859077253995238601049694252363899811822016319625968976707089444213082139063083812125818592043683298351349048399485053124451135358857323225201886899990326945913631494678197658170459015688909916159244368276185446562671801670661582894974787981291753991210351756777995194389923109328191190889619396131142852843839347161472150463268470498560923318602704647370252027066249561875544287742812386998420643251423224759159049944962875869840877217882346626298712560983747576671971474282393456444943935680353666693672352251697441524469037333998782171406709712221848673144955702228421358889806986464068983889922024486356559018782594383726194632588108546714434171524593349423171526009568927301410241631450731065829351386535090878078290202111082035233874067409390491677088603887919099332413897100291055536754304752235961077443329146300510978408192818814850473165794792633091446499276559020505320134958284913526727375308421377779086731853891969869857834118005936339375279650688996594218187784346338113854953923090665234183062562084285088285737025913114782223969938691785200507920451376331807394790078431835993032007645299887133749501535946112991161059692080123033713148348062727944936652318761920104325555595766045573750030260751526566166295885833765788423233530993060921942757114609819811437240815601656265507437363267111102126058811862251923740922470224209191209870979698123378624937882801573159726261362484441169325540945052493423505032586843396201923923832513597141395684123209979874361151681445508360440011286951943926963495642639308466542014542950589877278000889469134259032286376133583492018187175243473317000882912731804729137514839851332573897575927973866322103906344475114174163430013666869824081142054973875197378865218033022601376474623249678645698802833844550790469628647296315361415396754304282143246822862103409617998752392106488733415779828837409497103709106138342180526941411877959869991086508984847495835805364569723289774107583609580172769909758101552794410257471243571733416189472134170628224385498404546880779982403401922403552009245873792570831483595992671384086510022735857209226775539036280570169026246652316189724552294158664218363662923232026167387145198711767463788803029417620137092889893051459530948289387125501099313905696057168886682906032425713070923896772469442891823838190815484268703663697206481546872768315174053850337034259234969588188642037171896471431273815168469839030191753808874128905226196217139367016236615760210763589367835301666551397345850948322450438049595472982572715468371016479471246448303820384114450257263233427204492297427041243064999279562295514832933488464509228850999196936310862360156184763250029803738509520124795783989034444230600114560562392181225433184887711089138576168559301360407214108174895538320711862938845827665287658911418849554506940130013549800722613935073084884675114648683161074519425357446129209998488980905131808077455102116792709831246339291500139401404342942899770348853734965205018966886440657204660573274830941515615239964462756659104672479661022625985384566299530562867279644664399074618656523285430574121480042984555953298385302364871416754854017107146100973510782153949508314399003424063917952241149682139007143714448132430918711578958964100800241078111325478849521986952166770564751080635534563697274668387552456880899621807131489546629868789020203963855783861087604006541611108523641109037903478267639671940351622490244436003818641209230030945878583702832323838931472485012023501812994368748189209074672269029591449055477797235343150630972473451099659824255843666241734294730287173201870946247630210817874517118491759736428271949315645797649868589715814520226622422933508068386180938693964938014657419860682602373884606475166658955030233632490803354845294280747522993381478096093105562972490097109077986293751003615001528702018104962846765359732560094076012088022441334871151653558017312611609128989521188908123391386383080297832911916155562154059719616050236166827554211800074742158549622248416851016685237868200728007974754683510273706648700504452198601810183867080016515958916694046182216348648939358679243556315191505839436499862434144559538984892627286473066654022489966639806122004578558687465977898437108293922465613939500215038897445442464583106433077195664223112720720999563837163843169616872396414172740607859141010047857823638299349812050392160861338117941742462526091395628963699386389009200218816534026321751814167315649569552985193989637699473014095558925866295795608315714042454094512210287252587324171806438698329414618213427621428590836562075538115104672222251909488186376313514777608614945331239181647005155672940451705915657010420388909779095697162468227013849983368905169319784217453893995969230282519308400791546492604481103686957752720850084418597672229498065378060529452957579860026486116187552575406664819795772221368854043850491056094574811008427850532994693302099905338926499857185583566008176267464374611588143211431614691375996353323549717873733540437286603702128779607024736761411004380393176890379589976787842683850720960051668629689048446800409001666783174551833775315308429513149425750195121171286112798658494492289262847698111806833786750612477602488460983313670905733446043979921947774734459528803119317336464416278706010781908093269113521370305702238933443877116021216387231794940261404847336649525844157557590385660375300584463615643179454666821155122159122061573821313027737861945424492104592984114658241999563372884420563014940350627223835543277101049258048774783196707433828962314949057309699663644650851472307833391052655797698034083650539569440801748297395401947606506448916092929625225073638690304677215215123916583175869160561408437537845056438176873700115289082286313101275214990667351496396041708842244296158596612408070701823198421278099911001754751324922682542839053212897370092292818874177882536223102621964051480773108887601975969847106340183313570615900144951871033772657699956153665627008357774483541364250428296775226040114323178468629001913025483041300677479509511450277150319345697818543496918958221114222001853738933931691883137302930668479353916784954382881696818289520503993195838890981628255289434238034929646346104196751480012111041595038281725164800430051831619692915683465859558750209714865237641791282149425386017739454222046057887819688246190468976855174256089888286211860281419531376199239873235315276743036967759393110750263343924438691106792660237465286367759189604261871908422298994502891502348665143194727498184617159757532233226509208156190740689110797020345440653588325925225481003474551759633569034043893154039844350930077316748165313201420618345165795889198068948844552872283417166033856205797434251976056957732232138482799435761402153531860464717635695988646545439506774718313695050847592076438408378255889556598157396400901969793568820728255601601491113192019057571145131950996884838229845198249009437952261433879176260030999877778244171600475169044589503563237739151947530742880200990788273292773180517253157178137344553843495315559230855391511019708781789209758757423687064051003750058926813530975979602936692262695263593496374308028618207103259061619027592981223252064355075723098392056133673896693110071296476079699857925574448500191204477274956904792478168593380041809109234983548547161929625647842916960100261578940916214656817475274312733844949068519740707847491645712077573356212722797843032839019259057243308993685884599641224348770667452550345506046925343131811006594316689191331701073705662253427803568537652123030360531330951509754126286224195592333828400677090532977318503109518310999137940408523736481458182909949075694747259783018075996558877941383343705140229761962350402432747580770294902050135493853791328026338139330229318894246961911386368576261312623190809912489259278870242682572664163517955416906983584934429121802679484965790532465092723157308608079171825349604407539277877850854388048871496718203316417989827315567878563086491373497216276224059548613668104197283126200055360201991728789262075238918900248282739300992725171309454455667938956173012344912634687411584434967928343046951974118529974701018803774982503789196455895759954966293776520721471537641479730155260046068291165176117688247874778516879846897851954815629804125142440552636212982601293705875787289210080018905235449930382765363640115374893370888414009473905669388546334348874178713802281536522721846745059775316477612192971082233755846944947722282248737015517287672425598473026252432883371576630313919577653517994724030755100389064255600580264429222253620692292981075903661911367171770065496903022405500559618445001790185854044240709253659116823773516971050751077232429066800856605082650142136905186744022341094250480420199051159538701328980195028108536409288885184968975534147257614519945470695556352789217165807339104007426779025137559626410868210087616386501046257687709043405452877495250855453766506675768609731042330104218000634497569874810457401272968438635447945402881204077311327663535709387787426505176662223142133558809001720625991806295180422409647843521413535875040155406553226294837353656708251342525915994007728851239066908240490201038536144514369578895326354895937509251133304581921721671396611071058804553195411385964883871175442070088471586931472923091608469336845656669637020601662339334544288468596660571859713982431960581369884247531508335577071085588025931651543926139025195121479061529539896349325487304050087178513106774745206736903184246207677461843654078121507408560190540490262841967809976196218109430142662536065277188123294634248625883850448304824947174646055800870159560465231837420033870170851804083320148480995664172782546991492310553413745570594581423559035562756680476704023386550859605951326955257043288444034951678837446232024702650606376216216621890535096692773591980845217218896324637556824945946502397949565618934983405810814657685499529981566876840634004530886139303394538431242023562490444612874818994645462186888327134131088282259713278605983559916110980891505936217233497803172005508052154693448828130581137510970496352744181973660822044970442566511710971690742635166803456183396536525158470922176453020298370232837117493213699694733275686143866498702818705220405713910701868022064506752735563238183221454373892386124193757219964781564352029766525001666799007934543533419471948173562959723685178842945408318402738281377067059369355086120805773730286482762794402457150286991005432461450950455279313102986674933933123386104683665740846905557732038221479953578503034111417642327007515659833059051251545996486482114393570761696343480452351492028708929549361990273634663069406495653666780058826925686444929163898480189963194593896663285441338682377643143806539380461848450234713905077763784281291316257608440970503600808895376031950499158521494901380721025980661800154191969627465907449698134428196986579114848016426687592716582664882592241999234878414765716586133495688063037990441244769627690212291716146990672920575452311130719016713268339731426293513834177344327496505594187868772619138064163364195877762851386968567547393182116444591904334242217457175233947322145381560200207097437287329568710852772572119209550622503769844265812206982090400980058408669368462129706039877569954788956507143973871960482690063244967020270823119476420039882272055442814466065852763606824705666315763325117543332706313432154916189949223614139234549879475720806262252774370919567130428561798369126928109537706232352814214986275543435239441168732549335936557147292036464646361990047035659530518923364814775933512686104052672240621301405242416271355436711366769044601690849038837608011703495494277500925391239030927766523293530083148475894742988719192729799837057360251283429087021253677716547771252305082023929659441860361623025538980283598431117522194241118574611253743968815399008100589483313808585371940727529419093414194317897130291670011159531047018093244922256193096445966880746290996248795815030697783373074819175803416117146218427810753951236665709707963877173904802307275000081544444239085625728974392538242567082964972476374108354537696776714082329872107804354168776919055898724356454870152436274945839047208657658726546352307559705047282080434650639727601760812877674438652577874082546381448498997977920702906972469315672722180419376144327283292844836819280986457430286857662751109740347326643246165298499246669144853241340054115436425858700743085570909828498461636692901699451617587097306032430326672384360288060012989284754993406874662971834895222706042639286232081179096329318370268841690604697076353465003415282945155127597270788215101106621242164487699941319656119658852432901141935115369706273193152510030013688083872947357388224952399074049335360269121225084888044174160191868824849062452831791199002026115877873671344397739123260446902816024166673994702818242129070448023726564360002264402378380030216130326092842239648149914520235058115089260845635534534924303359772143980744629504137422495244137065597189336052219818110901333288475471557521055833825514597607111545599749566456026103728061618038666357094148752011096233306716660759410476334602296660890809724650713759080499249474736136451715769526903202067619899959023181150950532247917564551813566419962770509163976448684682718180140470815621600927658237243142445664047667170150704368179533818969016444150185825887261892737358137385049372216530209581474530789798431452492802084103229490185673431812039959368255346390750469564180546033835898051257266471139515976866796679430369945830727408837665045257127735652293999492701486474990790647720977468960932359997887964080279823987729588343375742289933103469091189708837379408246705642771247381604466518629011452056926546705517663052403617406492455760685996343720155604499265752061898313365867756764532884604111762226331394335315899959813428307754359820949470266513264211922486752192720554917472765564251071898951338609249917463966458213050424547395201675102305775603572278487789062749524699106162987033199266007576198521507698921144636348464585333427303385658953735991308182999269012817950013637776850935646502569276627481597068107554190965572493361689450469937659122778071102040069027210550407652187263233134567358228942331866576091610673147900371187840798035499850182797653325443784724863771560862069064250886631198785744703893066252517990804905540335126329022307790194296716996156704933911097008340597198535345016666970933677597190632811407935003249462057980710713213424079989587715864616636187066056777129053203235407864316238069819166380270438476527261069234170687491823985084881989316029957256573620135395608020408963078674678790928076643308675947311158027589447563834049491923185142059007276514959489619723006242850861201944952872100084164945497730917246025599459949804159226910873290843219215375823355562851782117007934357330669455891138137227540244901542577823066971242058652888311234596954173657853483013026027340400313262893089197512385321031929548255717278086305756829940351318442255800012037081788466335507770588158956111386094791572319678874303961056505260349325196500441063583461199732140431116524930571165221189226595792980266459016017334729120138887787319228930970318859453415644427882648932307350946435381148147354246151851160114855746737147008701527829586263363924846384883118640501213612838198007834197957160908836732373451420572245891816097828417042358719366077916156734844357451126764026991602223956589319823950424231477306974362752633028779286372066927577144735789466733886677861626318880656569569807888722954786238829446666079686753055334501920290799424465140337293985815602672053791286549771829874392542189476113201073251107039040517298078077188398171500749063958103699751365585074649542714862437377511753275367356275367794713964990525582702589610029010096479000224289060142634865422273664608678313311158632660167306292626595781389526293817133335121638767884629109404095431200296625743539109234067135234685873213696737139824067851493398220859198853177893473589252558857762145117515459557357161700422420966089803196540752600829066306841219836747090135688905061722707351906087445319131412990819398593678724718004135681880460008742315919395727066829328386751388864280867613600629399738031900266305190494836133923572877140597301343055436983196579944087029631906822872181508251571507285598415097725900338842873566829822843917485436146214628186734371074009111256774530487289034488479132895159375733403606712439310704773151635353180548422994658714795312232496277196995957816094218912885929142550862640013259383980619511482215187013178078001530559759099826998178673114573757491200467235720147382433758802575463591012674184589710820051476409107282281878197541389170992842636894666591267023058262610305155245704338162597022891476064874798574648479774581472267065878566568261015207136973370094870822338246128531730134303556126162156989295267578121237955209164725881578295526125982802955261943978081639091324358820678184922449190611895216305397484508470993056558823990983404266636590474398928912087513507671550979762789218064234398142403020470169842345748075045658465986967303235749750176874643653473808658227684729435964848396420657497445757214548270311564021884239746482722179762394192028467447174681552572643606974173067578338497494721073524594667602329692012418961832968031000357079081119466838124244670872873174946584253385101012616013722242810072118642432305318701619137009117128857041763085544242588981419866357016897509925531581622225186814395514454594059101644692014650568423783639362111301973949532939101306864282893041721000557163004430564988034747809488453219342435585924337736223719179437734325889342434216386055155632049632293686491551547891629880219942265781226524865839589027077807060979104735999242143506773602509861448900165024717079241746789064432522017940560545897038638212232253214076121941507634378442651799114917515447578739735951786660040961403215906447381414817120098005896158924808431075060955539165706206174615332203298132726181191734107662883105238312862927986569174410089338786774883701974066773403255994589929491459778651847054281340351756736160020657596788840706376112229795852531385162093283308756736387774497658620019578710876349836110278536819957696982375746245762467563890467716733261984202289366898582330051329168070552179156750137304770916209645481672731487094747432919336930706093466995654720704757639781200219855301136609120972283060815186691834677921140031135987666534916660344683147546874183558751759132235540866320551238586432716799367268183089478512403415213440503998752615542788937441807283435065246958395045440001634423868777843391928053699201820700218886803889086509027228330773216159102110591401209040294486447090907709788740883218493140984218765773576378898197134447251198197140234798912002327656505763949235056685000650141002769328089937176176986327177432648641260775724363860226205545081335604433104481377835856704735908219509942832647829977886361939763550087825766202962695381835953707101587733347698492755589281709044027263144084774945323150100770582484198297539336166567026027520060667530546351397042445433418573507692498497744520970953829416095470221724836735401984190077376224760718660871053066026068201575433307741286718538039228522533114333652981419953319582852866163929045448047140303599845086794264926174387015590203917894598969346923530471169284570182083750400145027498006108753401690113145699348031220888504025306626643061876202268753474495401332524160696929198449190678347780642054624934921703514641265614234079503446823886132544183363592330251810178109427227794446971791070246318327384066338349578867175871822749098976523388690227947841587180740816356201878640418932372657706425757543446674233453095688389055766039223836509996450408225498329148707638914831025436309506787123283773375276007196548489186363399705776633108599362649720258383459709613732624342789878823524305116826330251169332982680981468123128371893565151706033118939332058225707793873334367935491467529061170699187842060165660528538076289511881822356648430280205457666389727459505320221352504415224817398412892515618383570076639601195101272774154574949973105693667386481792823229919077765467233061054768747277052702502999328767566011089207073642054385223208617414906667221054843052560107176411545492610490077665948425287789941923687665328757882322761731801868760633199204970244534823433901413497088511392552074627146782088649451155983976366234186059362163459051296704402664318872589485296097138887378075803321228673683486516849125668063410020323294745418490454123695637166447727753992236079532550692079557467891144912129646073063180058249793310507070599057465239036071221963806694078513422174785980273795216661294494023953851970578951791043978591056430526692688569028676179693191540686174807669969937670527019531739855310716066999365505517478521739783970559906271353036918408247866798150040325326738304135342055721404475032256646461639304070435245452130082962948141414175366567202003458506029677838305513959092610254872532876161822795628421113846967493978793430551510533463365015878677727373861396407861688478823698985621204495159408834437174955603338914446286298001774630727969656362891146383648036074103903636314766537725068771621259021241088457264427465973515469573561274192973497973222953992317408927503685945349128870001332803435342457507162851224408537818174290970737429449147423022949542464562814510081678006521241452870991768847309483076114708614200649299614469633707704678268143932951107954277948434067373254827879265560405986692735492611437221538672794932127342489801254869294173217937033796906939276138826015239032864132741775715379444269170694659956289127288820308878847857358622530695690384291956047872427385136905603908431488676357098131920612296679948715459368462575242510518275343877353205256309216976936768479149066544280187593354845683029398545035270953753296974470061618223300608833147737160861612961226536435858012663150021555387895901402602278525287766549168865615774098183058526711131958438086797546954740954186493232608440580916844317897673811488764289758155437922132707152377234296843535507266863454807670971106314708797332807777735584477515618683930952930925463845209378965824368165458086800467682452203478556296169441896473516019476355273735496560269933072250583368132979673085741977149358795227520028153113536256958418810830025929050976813224786585901947901340397423320625440075312201902286787296134969416693695701713368463843860002996442885227164997566079734922932192342543710863699859070072016350434430040464485388954350355678610595025120999462411846736448117591057049163052079524380946560923351715207459776036376132647775431823327256930189607117344450946527146508914243013624854607517921618177645889816055225214938559907150441167241731930018224951551628916776820002106538699250213862070631356977811715176488078346916443478093260128578166969360436003258934445731154173709616206932527872339560752865578335656770592939137358270902943794059076163529089130554120301039951015909890819846466350365965020589590910058246822219955956384851713664024269009884544086307913271833947665041090605632088263712322899145634588479206671601991402059824035063531274702615894083079941762941174200737517705665106589127119400501443576548432145385453657059719065410035661089266536260570039907807700049142915550644196078359502881182254191100080831879516495131603173856553418844579474707365153492010017091395991222518450214184871774195595389851905239340377300701417289447548681640556840003320268746209734177762190849479033250078455866641418651871345009484194253540824972979784024519746086958727348894493087093725277963349177689983756644130123748243930092496656309859564235212318524126369840885010725771168901938344538337027493422414058561372974845008542090525901339467561938347735058127481269072966933944813117602773624346633949245492231307624087426062854824249229946928867713818623331391666804304006408112018779135044872902606326236374325009384236873771599535778194135629522299158082489608196743509800101232243579420362817563729625097501821463064265610923712816369109246151101610429679217462759124675917894626625505848862209636451239570838550828685649789541882034401844887995426659194134056230952301630956296687063024108133891219361427830461260099492236808875835310271919761492789868337814527440626780418221993101185157765375087187761208100179729754245185770323198237894136799635952639828295535821604757779483099476713456698606859061630919695717665988921248729741360182835576964622163851546932916875138622967386410530755531006273837302082502343805633511579004229334512252452849379058455763798175177914189724826199059307469230494272368756697149442875885797552355033086432670213195439112431937987562050271901659110841898326659372211132397224803448169975175213539473850983843564054939026157322020898473264573548623524743699008053138122867651002802130460964471561683966089147882793370060007226200970536011023946918901179828445048130446435423820192872945872992720627471048305083988485692403491192718057890321534130282054135036940092417774814859792363243807969591241307980990492011977879552879035880983421497227893371207562005617236544935386650992679197104715807203170362320584529276471337154815256769755106529046467812605085083196061576010871797152644851910104475374823909220233627678048825680195847385538156331035629159600911763705148795727939497248795357530162374322301465011017984761739085514527702910123012748051643006378714281312496130301645761329197887250178270065836646335797253645492161528402253127087041045891140230410715197585570886149409195380663423380828365946015403832310191794953991301373370024432290905270543673473676214136536564229820413828767780449895498329672696026070198417060381470667442361236849861759682659789545169584347763262056811259183030414691988391845535660923819587186415135378534640083045924089797582622122083060040560058407739767883419265817495016784078276708795819366799906950968039024645202394275026567150605991252149670120301391076948724043882838933246428070721916005631783430128542331390018051173863441113576538371677744338386891676251483456998660376747411752574871936641470549320427533431933110768367371334387244366366820021050352092829231483348379154815953346085455205405805890904048186608707249834322531377974193812935585415430275794271600768940580493588572524076309115695942670696727778674424330652915587608355761891666031884111876274733778853657132595339559262858645455804291689438696393334819445868014643217994138916869894001617504750880878957782174430349270079866438537225543122280847530409754238247204366717389582910565916497040366275085466001594532870106208261511876604235319426904447439056799959214985327249621942442480207406938441223157133386231108838124392314945442549587356534842080345896664005464158620197940001446141645370471656221467225954078035625488508896935842613890729330254730794766556181006991889714019500550698889306091543986730766418418625901660121162772056345588752787004525972261639882734776078245007483702884856490616186988137630858418333451120500745836774124854892006433740121436042370655297851910074913769163349075982293971202256361718900962406153610326060254174768861192142573981567331192663933849401615251931936880547646851604437392392077433745612811125421128907606074739916782429920017565117077102950572203382258616469333897110916797514419205380077597463742337771132560475494263328160140511016669362440076365279536896949025089720792472408682699101337486749610870426686077859479834472488702118236981290405539217567602687106017107014476080576238677894477522148539562082194723358753773720640072031514918610584989613787906104161402748927003318765006427748892612070170693718039121820806311926230942760955304630720244363867039073276513388749554169220864644187501659878770506001374240834519159555618059882671844717493547814007262165031443410725043247659004101462840562096110716155088548002594659222834594546746232954296883898436560444359745404062413740279650547850875739726066637549732636981453809421725611102565188742828666849786274467188006284055020541354248295910311612013222580118281906753355564718594008519197321665596695814072340850784962229562448001806785256734589962821853463108447426582258348497917220603125716669871120428288246231897962367143560707102745552583280334275993641311625656821550203068355130670009964489770612791492055567530500454339564532309552437925545285474467989426230761591282892926009325525662966994544939497523191260606889711385370516679475128787315149166582839369177151628142953946829879794711575864630285608123533114911145195460500010965307480212712424053020995979302044063434868238014450633839966654395499655005297827894545082071348797104238653739402157290170418779821678668340019236362691926009391848568907582483678150217379111399226491910094401834647098040820411273695131859900089166961534823467307478077663889079070232282110384052947822880125507232398821990633438179275950054506662140810220242281684233577130356045247670546395188911166270101023016442901761224575559170231224147111656988930690886895363770974896065012870635437090470342624878118364718477025050293192309538680501364919458208289182142659605305455526386767493643390318564442531874001776755802164957135737815206809413921890890926024198884726047641990351471720722765902308801792522342398166753489259780149925922952225368899911684630664062784736434260708213336724286190722308287281972995869806619520497441776623021359668797787799251637862150371388803003250086317764205711483671105339948184481301169209083024754390074589005850106327260435433315960275322804858483755548932897302406892907046515170071110455642301790826408127600335054047393179443262809219048470551763170804282330500486235969704157422685500114663380678377794429658001264128505384926427716917735227792843181685870257382598255852074204374426807615922427759468860784026029823312929267322164718313126004032889920234850320363762331426703094132508853025342022026922539791667150425760390956590158214123401393983272914321774488390344219444372293905092098145494997617458667494911843212280433829692944857461699357603831643977302240245923900312830780529467239902251802949746222125098464149692506590815652671771629938497877832643236077195474061522225031518513845658688123379591734323623068115533299357799178252109197323890489500185493925211902513165780087749948223583383944843651133225901800877663615617041602247293065348870387589693000356001457884467268516096661037249235663899065107144793375211223253261576889109645024930192831071019073022610216416004485290798320652199112112184148742361161608451232939718763636535364605363778449109953245115016312441162164812144905809816970092445891864038449909686608107644669412580985328835178111679098871069326630054578361873427262111144116527897589076320926275717367620361643086300681152688986908439418266048204503516492097058647721675004184594817879983320218717442690404423613135300217594200788100622356668053703435429070904296443663381716474166463026971646929861882970847325384985606482810153040539415013483517237217373771605769061675911017363445668011482957495839023821716879925372393700481965633587002321762989394713351462180960217890624022357159731132913510172267503288219922740071389160980282549598917807650477188976839245869315943086700893705884597052966977048569365501202639562912933334093803205989633589160549409061005853957251985763345868340406519626254860779152061622199917685236800024941615712680766683930920799358407932140833147385138635456186902703772000757065689923764010806201754274046899090371285380407890682256316488445841093776912800324275429970287214843707688371591605971671128716772464618792054454095454832244136060436121617763966342546529450956968900796817997191168863281067414748567900829856425754719841256525968070115459441472368781346820191386590672878623644259808455209216836623714283622621531184348327693739550899892638099772695982043037930982886651677444768319630361986568248671017515644943862159892372607743217904249946208260453082976863567341951898585701833357196819707758637477692470298804900864460075806456553915118208108204018662661077873849962607259818010315142373493679593180110373506749776544213419217549084107918124796174730860366559705379847290277450075655889349354023341362175613268278015073460334042173521455215074824867154744450567938745419723983351528788533816796268297260494032046270332942975527258524830425790441369985763139109680954591253601969156648460775012989713705311423888892000323207465313299016501368218159278564712713989468290115717638629926591652137792198983269229847744199303621035022495691080329595039251566667561122849967681474133845746935686345459508032595993902253793018386007473020376144038375678814094441445716036691894294004693956537273733388097032935861702540751049605271502744757870190530630505305194634468696908811208500513403043597147959457641970103841348414217484027298871266348484966454277461129179559181736189511324101004238207079284794365744030204778697329412263723985013564737116842305891321983385433388958886193499099440448015556356285548277002034620108003187333293091268140201204189099930070700713183815186851758628938896636934054978396089175502310981547789082080245425977347178151861843347945099460613876573751895482618503684740070293020186055833008205367284866147879117607691630049084816943986754226884009713646226179359956036254824635223791892609123256569325603713912336432849596553718523582501064887662514270708081023032565187603184034615180911921651137259708864873837117019456933392703760928107512018994845953051407653682747556811642257343232639819021390855855678309951376709731994136313080793447891312340741289943121559044030109824606892554477075150181067066372325405403134474128223352909944976298401151912942358526787327061513898272713307902855599616816105501079468991600210523420019853669128224300954941061499448614467899914526934722345424423526036545041770966503119404848889891317877918171357226365478903898684029367330745033121079765044402991000952361977027806069566496655134717360267956637685519095348395982479311310609907546345709661186811738231862764565826360515182892768957392876330164055971516141778591590766519933362219348650131966509827963190652752781051882137737047599220231777756162134099610091205055555230737798735792891270537087303164105156238005306839529584646993619193117618128940738714238778065642635956824866700566115752658803200228007733659953685918425116611432282152302707825461764152535308091835166629556823006044545368801418288045192046130112898453060400213467168408571603186079848119744642926186886034949470975559101161723595825111161277802506409387523900893482652214499238353832588390588428084064794300125206202364393706558358285705099369268402969478740932332562125119634222504005595731583360366886529391301804624633768304687535479447982082743612488274412673952019496725391963626748061844577264703093119734405415122147066500666595505998198588672290108824681425965603077369588340595730024080839643077350779312187169823812893830694301020016939250500583708987575273498059202448160998193129640295377334182105230919840713187311083742243288429554438764818785087791143535526889360653169903394867020317736472894791387281854848292750122392513536545325406967973475877971772338862550206613548806074654629754900682881813348294827502891050881516286534825601396576662223388380488645828778437451306903812429085323677724661323723183863223136940237904864678123614871661925698084487900179280163987052220899863029001041140558581465354835881517958328213201754364317068961201413594114107652059098233117096560629099682920683824652285346737159643935069027246045936070700530475502530860070324158372521610137825464915056090811474469959729186481178284424878963467555721086803588351174601131433551946149882503409841053585124631749237188339987181369478619929730406696086619736139689164086179452169674674521040797286124898973996407535236878214975832706063434227178594999026737665383231120664120499164260330583978555852610343939643746125881908935855488994273893708098739556191891560525550021690684306586996918786710975023735759879672183068413038337538248831352154026927032098438599627869436473619146418799433340058601126065360780101383071401716269010257584577915617733457919954919122209877304530987778300538010659577729963502762518675575294068851417475876170458142149868945360324243635748695773108413627442662678358054287059628409371432780991820903375819489636551824082285110850246782258268557374161872472549889074172176635538360585267450167104162447559320051550202356273563964021779816672888226079133533838673160426070321019678637318853762175958914758828594125426241231738445351622643077506658355552541404358682345580157430345544950823277820922126813007630307735149390814102693327599075614872823102950074480956901750724455739057797747285523484040600396338996200126803372262774831714910563702757139920327989115592503623675518499557166051625033754880656520025591724966897012763637345608716367767339801831025471140701417754669290257732637169439331006577931755844782364166632130937529656106203011937702916450457581629699088827941031162966638797149129940920205812601430007428713902850336027053259744587133611852558707468088956350579796116357663684487805409730009999594044381366604137897449664545871831786054284129695146987507143133743233248097203173986295063125275966608022781398734163734158691008589880275216048897400948845153075576439946433212310514930438928647159877823287077929611667966524506493994753483432287838555810114483121658777432558097413767094127860428372776146339454142301187413031292369727681446142436339149965913273148466461588048382012975286461021726884708598866967340727529946847634644937847255165274424760715549480695183261445925785850447415040129132916726617848259734313959137428310547535549588806169666609268003588793140042010016887398156551789905294344357123556434939922995081506789154228170538379630803192953171514461756357545288792886842684577662147865935024272026689883534299232272646491310740427484288417497283550455382294637483182003923751094795364229765083346739043748229114253874443045614117508735344824538267745292289267580510272117909735001149295544841277490834389591088336363051036843827900479407497154768970895165597885330758631055733610727973056560422644599979777596377177923416490127032672790171786781951180828365378170365591372389852794234721103392444917170418658064466942552815081972903706934761734169646252419515862354827220654948650260323358093408950505923092690472749966474201512208985470691295924923062656405010111676872322708470265733644105920988036100181646075849576415254901440548427110398895622917707055877377238632636459847823846637424462563856130101907177071008487460978191786945847326658324951242383107665569685266530458526666971887495398074708629156412516487872016139871103520009533170490122208157978546605511926237830136367826405552221694984450032222898306592631440162383484152635124404333392836067742851862727701258999590218311258028092567530295638739414257721221866651837476259263940464659394431663837472998470515472442933200352768741643226288263934638397140354799204477156439145598327697914497150546681739702187437877430467141152772197797151759107648304152313766309612177407673542226484423800292359446419936033753960501241298428955309232584567585247585020300153839386719385518959678558616413827373530937443467680809462026080085661734101228841521427563776788081438320904163482949401238655457937361549374392226083149446888597888020240745491161235915910964858835874955833640032661271634474156452909569639305226535416138223748302828837986894853660835027236106570550750102221589370593347048312051868989226189859410907385525344323455228510013712456971394168855198130940423225038297287726630912574389141601931443960012609914126567537818295431846075628404165275735675567918818244442781045725074706759111793857805027170897491984173148193601274890576104098617309930079439580051208189142282374065517994542515537528517763832198137565775648513099373962123370034272023403466351238239425807260540179470601609941669833809748508920061410176065085204552038408224077697378743939658396591088527859644773921648511245202020365293861049964566208665616183526230607320050577178248204427679657245501908912942933902100825237078060401791530654661116112212332972757779633499339607994540981937015607838175781838875992855340645837107531087830290320384977708636489701335868200475455774075092306224011892197068344162756770901750635436171485406281869572921267281407843824037405077364756030806023347371637079025029706501226653473688107943810748667548488087388952085368194375114629043561305679355976014321167630174626081269449989555284988853957776055315814939784179426660973149448803249871218475059783161546517916368516471529230076915153466660068862290934916472682164272208926764212272494563101599580930195466568479445927643454132825516611015139086967045055146402668872443969597571675039516747478418590827210271794317413195503686792871933799064121491127790764738333309232552173769288797020878636600306378058227661569104915250596927780618307723978829690499998267594863703126267367285525208813841943068317440778682200533929986742566748176152783276310310322271385788388357149367842088106066932221896828200548826234752286958675464375124680053136929635995297188568903839826997775639491701721901228179640002198579435250244556777786319780608716756619096887724677417666982317115584109413169794661991650605347647967000420863655510021862226559243917159726143002884365101565800494486299803126228007938781302610932214625753790171150003224505417559706913267927788166846869558081183218383111674980798376191512734773604224996919072542631379862888369602783606995704035180863942302871900152513274282498267714805957663083012750545896435227765068175881958984145915891228688145870694879148463453747825418226062661861388081537972293937427014578525550636999222186338626359494366219602314253598876486988863061317409523163655930995564963555633660070238838159209902443630925949707690662704515595377003582445170155279962996066818163808666807320362023655933435719577775882268660962003566793769246435876452233731129799128455285841004379276343898829924830700060926626300811100295391424957352949680548591016207080322576312417758315887011503704090663685774440241100423237812737753748293360355948822466648630513582173033027295139616827755120071546425075091157966987063524743607174383265970920634538225045954078264670190283650378933683999911078526864087012783373582906283053574138516262389566695512595764985939974810804300115661657808142647285661699854818602149261250913296494457580159263590255953933852773473695640238756457582744523312734709729420168820115730982861991811155650366174882036803743223286859765365382985421211021033280281402610024459300896313434913960743645457280765538723184956389202768064669748463467549751405955440321602916353468827101697074377227480392670320693576275272575437814003762828686259395969656052226264511597961308874964391948800685895004874497499062494601901686182874196514302738102386331287771924424887502304387973746003098478035108802478198140760146283394234659240384073454095030382006994037203368139878735041798016608815690245518552960741585142012878745242005478327242293348431849297751261674792375558858935532566748986898795898841166931096825781059027347803248883367378433313992229170281949725552343503189876472013182772592064915411628550594065431401842290398175323284453688752359524444092380411711512084233932225849280944886808693479819279118935746070966554621398572844126171242064889858624001255118507765555487573340059523846351724859143095950263441619523422608086586621625729088085019449467549485968258255284207169972782079199257753270257415599644893066280457628024421107946589738274999689810296949185531505964276727980947781602721553200658156751987140268947087883353458246593647731004777125023020637405816174121214568522604938655671394976592808999825560613498351176520072143837808210274103358118763291944786522697740130774188867162656005183721677556526463564896170868365870649111282994720144341210535086782646102577206588193074766129381657631125702220799404233840030752224214087108285231917672897461752657188617281173124212530924183531433710022236087031470688646843704208216839009349782463870759697315944495118189995719757107192026275280850912988138159390722545995711117388321623427126771564819863136040163600404215225741357977923073947127481249088275170684415357972886194165233932604144643954055152955150240456084218152838947430376581423631731621599695847294617661788182401628825378550433156997743168707128032100415091032282023778855868405477445745361680188834482006019519418300288662434178179250950088895465262527508546248768844729845013442505104897269261821481340823636849865747080274749513315850408582210754999148119207974876097211350400077240471584791057638669471830605922512809817492168817514660315514623211697434573048376235964157231634502857785432663541485053169012057406879122525010176782331311186863256162269219281849009394076177709550120248964637098897698414862581521894819164790441452897423554858775749646252621582248617727428299297204907779238770139604082462208359593745139896033722583725319687834806435721302400107034636170273122398610536354738961775471529850553339916690718020212324000097265695656959688675824688132486756691026854493292111824823616372560689109092589048469256666803391175812765829197668897090914301448700376876507822172988864839516941237421362184509327706662642950013166846746408647175253309314857171682579859956363100433930587634669503566480006085007097479650002566630376960554174709893972285547783465989317964750490083257071921250748072948360160354588745999904745968093200930757020971490165027637834498294923489864571703497689376642729098488690344114464022279708852497084431955104759866707872719163966614575331062433343918169242980251023344514649554599225748564483903929453268457902868263824030746725984295776946128545278233309462183915690543521644145213453441999676536879055165998931242320981267846519880703772793436843475708402619150771065775643331024018806681899779952750018829401732045785799404642784191807997286599396491967228303271942386211000956020727575912775703819822022459071098760468950744806781231365675581376728901210872839672579678716889190295218265099679044776417568467246045968357130777543997750999058664572295404269073264270604709180514237395295345827276933644958517073187168009336411031633482625190714760420723264390047269904520049741242700506303778027159932441371839690129113893246024469301714753128393036380615805367040717789787835614147657197827050711280048142136445770909639895517465343818315167579621683301537386801025797343732343035443315922686901639387913891555704897262876911067785105053587971301457467147821559740395933777777210858712309843603907330774657970786496861227376773497624548446769444229565166661926025757528545079881823805446061871065341396074998432331564588255379695315803609650561460274728738242374286254779557176124872110884154854036623955195716885029437088725228649565441356547503892693486545332603141284551887278290996623103853952728866305482433697900412702889006252315965645333316084341659304006303103058306818708400102342204623793067392505197668842555406483018590636986138549839546749217650631420680580477128118709962503847906528011661267075993110591075661097185534690411585186551275384148134815313772238128699749402565256142973683547795822754861535854249876883293569014494645091172551816601460022331311823770209166662098431770522154145148245840524597091410783127918783415455645705709706087632982299689524746472579293233410748535867927989848873912002896859087279372821024100580327159471217574425685495225410799932670787964169647790304991097930458532178436183218792011768747104609269458772741439870045799058385738579978781591060990174325572284594729342405092265236692538626434410999132816630531813938752162924081108764948151727438416409133031439573581872089692232763446535468446207394070671839419642764626505549960395035822444788526371353506350230356386673151435176021542206576299340330913584363803162506826465669244034595169802480567801429512756109420362730807137109311041312639999090281891928813560502326719621655362880804103259769773498086031074999486994158133612498535957620238207924272324683657835982274818850318602241458247012619429574640746747089265862895544546420802954863828859187070372346074797909800365445668257783718235120797529745985133469190731022729440576533550053976928845254208833573876018010263615594426176435803417756066227018068572765458180857047069439611655428560428275555408098319178810689508074582991633300470997583679249814410417214419285346141696571302570311462518741265684943932149936054282491825005523729562709293891023174439428032311508448571997245618365095885391447723243247590067630288843856603951057897459466217186190609295081054790667633236494499589197000301398006793986004915133300321091600415896702575093642800815230302940464678447792561326530983887100560766340479430466292557289348421227011392660536017542116959220313040824160150452218041467197930421884370930187314546411312218943429947487981380712690739676386786351448605506274640185172723165784733466655448000431647906975654668129510085156799569973780046387297682257592433464386304591894377930018793029377382986977713329490943806067816962612246337836424756810461891403476973022176540957836983384033996062270774570935858259546067290224660996076683021625476904242511780137119377791372246385391041760803352583278261645380802442327807558936365851168965935211221282041897280028312869719083443182326907013456676497082147113953534078775147894458967612193188021176893743980559092036908458006949211700661360656923304860739776728877996055434726482131118638371166203071487849924498708673258603624987028187725407802747710145575298507461907822535554170998569277434240514015233955002663532510369592146229590298637513375805974919785687756448648030998355202714416810327124250203682395717952686503285589650261724471782438195082084901734628357230641257263468124107923094256169316164589729353417989677430826530288848801761836533342339582331362704347584945427128457562385452502412252903167410130165035621958016546620948731226658228783268839594124995429057792813916691866422474116178368841617863666407990475023999509023476856380496228918228322616503054822374912281385469042349898510084848538159553990058359700799682564545317771946935901335649929925362526188289786709938241802127483214035327016633690195025174571250998583991336214484574228928402333432324043116459530739254403476699926271403891625758886736421377945612179491928871487635155206987978058915954297302995262141346557681170785678741220461639173057352242699915116275057283488921090695450299235913476461005058747222621480205931580185674025096162642377474571945272011731775077142998789085184866318033495231452047658174844616342328880855117310604261169517633518812500515549050178545304442558942605048557911554925636674185198843495084598316400760624113844292716603336222610259749442864278663372781011168987296998219786275028985990727207974702528430344739519773004503454584426237256714676618226181896861580865366331675918720914411575756533229690891491488137168521382149261966310423425243160510914395559893885965272806438272112782688087291509802970289815506101533318255956309740525166074289804589122294483037232785682800718620422331695328581986591816141919208469106578053066845764040787156953778197453158532718277798964297192726762546332486294049340497642863889401200248389613276349474991507800425638428497868223335856862544019434234841260643474683170448275068336624349905067610814291815526320264077001462660734975888214219680507881347417495237174443622064999402619611213908035298908496476473606538757579094592185575711929987611399354594683492323990148416063909383535129082852624644940225189479600326090413219060093924760488215439522057479672724130409145722589751437695511901766889011461282585453263361931926250557082925438463286786459852949133254533583007842119447675780506616135515659307466728340229788773002051332888523552481056363061652992002798546522814998216116781037699826111845159408394793197841001872993392252927514635325942408068440495816879883331714303330453162670594569646642199949038965102809918104152245658665360338056957373455173539613585722750197065898138936628500267639008015567577496179730528245229383683229447698755254611689934073478471238769228585903781960778754356859599073846823180031063874105496426770303602841524002809174152507296029871102461292807766939073033473927826498192350785740535379804093992268230643658332097903648825533711428855602547936508240319554754220541206039252373446205495247580146177462592723583521904663671563290823199893161704334231595539337103125308116949817768800316223578400559824176142223295908213116883909669018962389365237340490725428325759939657716885525051765766406586078529638612815675533740969913517992115562834124711401752336483957653327404876771410628696121440218474668626813201062719179104943759643088010129958164063098707911580991869231670639963485839634871812740791930003823331739111586471830137569296555361627373450404662580355393969274070054810665396125276515954738959510434725712636397212333814156841460565518797250691880046996570273856624409249967638867125830592821235375357194596001526054197336722351008411039096390575532362000491234491937624285641430527650828503232620464338916528115539391652720764288145954542663433130477908054210221983486861096620165085334263810417114012839640315947517214216633809307100194462315268133508764225776476699499675211722791440745065072335163461099116303126639593186829662781307191766707075101119888792594843453010531052149486390072611595027221739788257943352693630038109592064262470968523104451785927811971351460612534221692272368713056706376254062502283997788618309990250154044468235809137162120551126481864610169988269630780263047660137380617270666348834483193222038054623215562293688760367808447180420349502969658572446803797241723961260865391932995910875274551814104690058739637425554360189619410356798670160177873366820861783286338655230721606693515362143388436710737858277141279314994970597606021755501988591096385769718877806225687199442072049324617287600947977937653115262103674131746948627279081573022395467743344443772845819008033856954108619040422649617948735774198559408422351058117346599101585256104371693581395174211347711793929717179358349148370058415833550817140336208070582128128750067689547670226594588579554457976564969294285351760392257720463886790543106732187036506105943269379357879461376285970144825427640033962139582301452151956688797576277247700089793713129492937685216541320696930821338170035452223337397169746823849934385702579076725662811397551531116751473307090826549958988378779569665681548144561547998589013774751717851670334279880887008742588352156910671797612249281151704164164913003947779191601768299652609375055963264868296671919623322873937975709734643120300504447466627656508782107777461580667166121994571678728224376114863033048633734525169664707044035020919653473153666226320842528698900831999341017766750037555942009295809338508629779743506958583734974984662934649110283809833170606915836745176883864055049933542992560423371053657841501725348886100287636545848126871272832342940767888154270833361439398054015721874012350643566375445349505044678646086624523861627696891252021874775993179766332987240342354192407608874662340554962105046355916488432303761761518032720589512489284519146229633067411332468916079640165678559098709627316065885741606325574587269202566677647380938038060649534118920287289859432551754628641389135627195542982525461224184597030124612626812621819571922234659833713960538397059892990619439947336466952111721095202308076900521363577420589381493743383075868982077211213611207838894301200585860856778757652551843709666906117565331994090328318780210978587394919184729546710743003432021910089863692604873858849079690354000787338953227849786932562359179779229275564843698090247124388158296127046669323479803692843629397329523129463423583833826630058806525199810247806079005118126246201991904059199709709570347403484686201540122702407140432483595371462379463027054646576176296682754311145044267355091887444453283378128739805110444951696186752671341055829220133241694138529882027995125562678760831084005170101105278575910054595746759210179396264207475210039411920058761930911254473261055522726932641847213310445754388325258872990133750284647460055013068086165057053890126163168209127594316725672914222731213393576339311264793218959297344415857683237853944472291652926593070425670831816534971889660831707637716501327987463844631786606680648690059061164035830554820781855461944364212653018787409416276222030687439876100059132453071450436508157616392990140300347582827366751153754505831548301572720748072855943130581090675811700093806225756582242433617284155941055632530880701555277226796160025403540298316061888744314807506361882929855576296109907464946386947202726277270562406992961640296194279522142646068621980938267064452248676027117505393803674420013168825728373226929741634677014052028834388291578882852865982049521834339326825152120203977325737735212030789910010279189363067952487241738014249109436113430121776757506081814665523180302075233434920142138618444775036888426139074655614034331134504015965429812399649706418387790623438747205361472533799916372822782055185165984728468711358475577130478430795336879826750736160118243953246798956955736367449528080698405238248394774513631646099668183046039960587723998197929636991874815851018633514092190088066101684757715207793067788120538928601980337929769796990695280435726967839237619632772603531025030591709644162770215226294439796138449162035080018713194873918730427842046272085193602136657173021194168570973494372523482261131148689530678151233251981097694677432393879686028493395175861235812589925239446102446726573770872739575211632550061343457937140777519277706206875285503224269608511907901335834457624379045604976826305535440166571185455387702627299456394257290044217223717531225080346358267376095835503409004595705292220726059162879057658847651163263114446202928068441624527034798770242889111954767886410534326578396570105052483533878832925479521517169371206733385238296220795919851697164105120211592588199878430725502923374721327357796815894599637290178907981511435032511704592838953812320553766030221634865885813181201799653684487411789177617771073296932284983482556756664967734122036314613640413768187204787072491991078460285787466451725610598506287877970216686642365413789765826368057627153355967769024182682996012826892719800097532152883176447052822103416146705860490425438255162719181811308904475909381489018435987804874733234945224308440734189876285273188906882795660392355124906897111712290130655778376948980992024521515947763507816657158514180389926804703536553531960013072312798786363495289182484521575817784179478009255063377587537698552627073223951451945557510712345964598797928956122038897583900027498309258052800777247731659809999616236398953489771223343141710650611517279318450059138799642058539343588640947645688937279144532322540115027569459260532966200582560589643323365425941636689006610583032231562580152135725387371738676139847890895801787917711197798542759179512005198053788689133321480807308643625834810949742342019672394531108932213460472428133679512474288713288063132922645115823568600535140361398844553133099096048273412623106024447420093262938896129757455179609531571806819490409135177575040731070075939842565078172225042850159371062638801117481467113471107576497704794571341666566120570343955204160584035158253904777495714642054606400331407774560225794404452174229674622021481788269175944948226705511533435177556080199208235081012871406425298223521780631174176886725247334844727031907993181539240403176004194182836810097696223751931336958670129301416282859686682898117279490929490033836121559153124384789374725372081666331843426086569663903131587145949431084054355278010859214383215152252241539168639396502345852353242833617241720429718717762325311667215432619375424538479421852105377433021274571359509980992658892581529340452477928299915802058311148785583099953656608086803547354330765868562170272176204562433455922554502654916128434447328721258318027475378918702410397934255666806851738784681952928071374659494908180119714354925418828227534298013817887800920850078511225475305373929652408613627813535679975597000685378338507965660150280004561614594241837167620961188771651872909234940844244456841301225035591551587770468651249934407033023604250789256599675485155272718992427216779931175784096491626962762288962636849732944220151046598961866357855961940130848194207925953992674281518801603045737761199297045539269748516351990060706181036896210515459929973531063275328137281599790957763719036193036734706598664006792255729883245737487991279599124880795641924159671899229189403731950832248510191094247774439544325519726181416043118309888588262722643844798947976742054937057470983418620950101445454238041320339364228968077003459719808547046643812935805123896398206745760380700226506439180045488186445573050558939459320360888051336278904174956084765524685268367466157601805022361315738506175022606992927713739834280301475113308567442991202523711279556047725138041665978257998106289976662129037002701873280219205620276338584715796007858758936391273584493076453656961604390606273718910830125334948499020155312655599239271116870408890102226734211180643642681783890060518888045852527969235983769093859288567057169933871093717380658936386206158134289430221036757460376909692560580956047889616784435590873192271240346569833056212649181025215524443713714205467530514840406884986350863550061467378374925865838874813002878037720492996263623159109188152286295430053620945267127362902753114127210065921030442289415002701639085884524257863418725561296540568518929283269844964358732957511417801024728592691224619244089052629824913871193049202506643392869888486709296854027462150997361780382099909518160942605453131745546095207203485422201010173703312757992746563903959917199079598253157232333711362070513894273277406818128291250231389921512094329325644288781877371749437106008238955225593962103016959179730461783182961735058811723514130125251928420192914513136913860623086383087801069991583710212122916367375049896772776364071172831434699327862057633604214427126476215330590180634773355529275847574688044472181841062547226324962878533700119928093769006916131486225402719523465430556921098939381125759708995480714618584432285125692755347182811605795341883094664337079778667298030535846073046357138173528698847056407173229636466647755763634467530375343618732586864174252375457506518579454240814330498726172306821942108310856331666738744601961150861080168298515632345282925733684271118745962437422178313696213411521532124924046000693450466546127478325966351152314569913759648984745035451489146594707961835587424560654041651030015880076897834413957964691020453018204537705106552237747566709626447313680686568209009100240818656284977207495692212690230695491171070819489194252369537930508185371293179928757800845252069634998632712483824562447543186572545608055639574510356077711449047261393854421427238683000321144385223402595587794182016077801523996444286133685168480356568025596515819652179874193867505158924425364546461881899327447640251404389209269490634918609512004537430550908585982542900758167803820559536193494183421534408814699004574736790652619605772089768634397590865098001335658724823044985385131340978939301200053462641503941260114376186678658100698044420209134779612721467086369358739484620191110800702143940011847081314181631744548402914209493959580397819065253270485637287778071451604584312864303757269011815009820048957900198022186236156787280048015756806212634879468271920456359054875797816921697264122365804811979461131751393706069403854649991638682500927503100482345772575511619829917362989208935007586725492899128782435123782711514292236349420309648471053560203240936089216384231266596920602056289789753080942500681514273959445765340981065239329515779930829861528733943840701656686987360341870934955348922873530802908191959414244372252392111592601966635963505635541064807254813736195748574321200801331574737210472315874039735749081908011525248636777899535841626972832763990363841390769771782053403194643941667341221142216997833963329771634038317296567255782812003925749666193835298672712294555001962288384638667205826384731549673290355511443486115624302387031095897517358744482506950874375891929936234525938719320345144676635509534441994272559822479480661150085777421191673841325373645289512335712994109321567037341365174021635244254275456432905452795567077428856428556879900196828548043827884870268042277077165242975909806027322237861834264205417487727979222228816168307008471223389628589012071438062847407719881717471770321449763859051112841749360605429642334979796015543411445339611069162227426212924896740744619403427400915555874133964835148729509754037785826090731128824174184182924405395467502654031038448062799807181937032953317729951460863293626313213860582819110013966425272595305092164017419249501405294050902131247163002783626327967502594754674015562965959949743480288127322583503377231855321189209297717214536590562248457160039918452452315236105435904000242334158387423911971176354861803673049641395574638774693608515300145469599926749699460367856313699338225791677291484180765478247836265947451229509874692364204327223923761817677453716355424855098670005108013421347667481324426564079879257375133181899746196836651074810726466646011520354231568318812926138015536149886993562521655060296873643630389770166488740044462689267401747864239329446490738584753628968938587134210096554665511095038382496441820547267914090977792322108598424321990602126394684859006843535775872479992294134327905459694870166159222688907885953292796139741096000238943670509212015446180325990031358977533672273367024468086356818301967123508902983030795720265131623831453445242589733032342007996835682411755150875313523223630646599939792322937603561209754423740316269718365353591810898523901270134817540944555359982554355012708180819161863381959247347700388689591689378540001287008840854420061833064566366954029239051819993409074419105706959580727849694760399044237803827318655468549397271834935059210004803558518484380711133174736977305679153867013654053077668540585744056233602716166601523553315730803637767086291229129220899770008933574077012700312347710367491367193321827526651914079220132801730784086390054226016833558205635418911064255168056971773141241282146520317471290047717524776511155583245500208164580101909681899552400608528639344888171616921147063999746266647565811285256947007625065225032608794504973829468259394446097171276641625266082515956337658381950406570290437221932777941189283451833629247188320814255966618114688043255520868958804607415991846520253928881435438559802291774211133382546092537100020651954628137965467333650746044191078285932753399899152908543915467013096160514693453984687074574643020113738865865719256140398158137483408637166959853060083669236268378405944174785933592198504386472170565202854077042851377639377827035440528902858638865425031623179165129431152953537330418298560329102520179224970807506629556845288003748170685657710454037064610877318502414465801350459857320638820648649475302633903969858616265985461660115811729914704350056704574238787651444541347506369443992836891899082869481397372079218703165392723706680925280680928173783559542505007823225953156900353326869203447797654775845114735122048805509025464671100932329650681558336256720139514227283362598685386138203497640855304525803292185214820109162328595590192013349927330601142498293955021196504791288420689793545696599382839505224868168264743522143870412223537496120954413964866738693165510723825863490604849726683835879501118060248044971556802780194199692853966364351507704492612737283463336530056283889221094668876765456342331132046473325250774269733713489366311469734559075219185966401267924050786476238936371108421493101208054364804117216301640735880258268650993990401959522176010185231308407885868328125815574792918524754559721627050492158795763168798312910277460858396846695360064030121342045420602021112041586118780239923435900794394248884202650516642573639312440313931152287073016198227148640332479240578069646171252482572825664912188849243047088776552272244521960019444771036629404769688047006962113334732265756826694733037797800031581133818363448626171202278405081299710300008080043240413667811253077402856297092667397186088425914326120355324347989298080005805485874724026461499505982211585438174173257358241917931315565762996922136058325975643590367104307772087875263738537110969955561575073523984484898976030557095178851424466689266803402274221004512579420114994284813442690730227227098290945372041919762583742164028207021542153717122066113443278307890226503317997617495449865945396811641603290011663643780095347579916918510394053400299558758190913072731643381902631009024443770241013882011196383777554660042771620326678867069819769848165141562463760671936325478811014916485224949123486267266358449317105403929827993037488738982016741150380452517328038324476330987963752865736442136098597499727283628280950977544212299648557410068840177097204367284469245070738774287825008303061089217717481506342892058405524603510679628001228285694539332439147764635018162189853940303661055380715978500133405012514509878633325392776070235036301321380801897520179106326711321493342148808429562189957904530345637197121171121198541682361187982782346486649396689068652473062963275747899012509106297027565416646047211005784500443723660782462830708745224959193442271088590206543338895239894193534194404169189445471228359593283659025307640192461213714632718120440174174648121939702488581459738521229348538348412251148519554073219846064744607307864898745563653371912025143406396392526324702237310384081657856986258924129438641579607356127844895438762546540213518432577672310066674913612516103397073577921137114702275306724834537631787521437216044367876438064236805682028760857328000814912495708562520558656936629223067440537501055588581035997422499200481949275246347247535972626236151609353645959829166231294588308233690492365701775150113782348813821537896720506853182219261690127974307193023056586813945934736330063654741661955002685140832085842966364266557264372050599984997095006996193721733620840825710072227191338181473489463598605864054114610521993891844236428755174445048778015266393968180601622382814444677766848987296447068589996771535339488396736041916973934383768627345546927492615371005665618934694896158740598791411728326641260766804490048869533494197799408650666794827169784995426901888202234904896273884807318933806313025169908126738228901579927676769477800170605880248617480363024504911726448020786118369180749387160591248040490718439734733892642613728319211604442138640930140528624958289486846881421846852837317127419882324850035871900068718304483439090194312161603949691384851177982375676125789103991937247843743394458480773074631566512815795670514912631850231236746114294126874912277191925936173847737926093316291116883221642649527710885272490695278977433676027997823763930255997394975695372367839857464294447629931406119777513316731518631446625314315542171034645934004177387857793933387861967883827275632135357026103190779925212519077846438785242945836371663769017340620553555909021815848314539131411386345558795693944634468881939033306293130338567053772659141942241338787789750863004784010807597260232095066127555295139457957013158533034784794511300115492092266130324447515023334113806112059058935925764993797503544082560433652712210713352888490485615367789048086998362708541715192744699000641591374822503185935249898772624829445555371373064082525617668472458284272887031142076306746369911965208601085722754781439561123670166162756466298479229928963302410666055800134323625459946857423537409963449493778938448280016030792018192461725053735689772051388765610948372766694270227983062217512167820374396519185285449649218590586856514452610517699346028229426877674352605574482099428396692421295865475546396791734481926804740154292792996030829157760475973227532321951345902373405842078262003529691764763837977516505522768934212451344323208695561939339493705751990190937510540119446182781992079616096746907338477718680575380827396655160456000118416272952590979206233264085051668922666745101395273758993940816738980466321796318782630253438497779335503412317966501727789626422297552000286020372790837558196057776540949140523920999534903854960448995428214343146279015070920865612567027253549259461235901921841626440857321262660236836784295906722144354243805239726789122137885476077929840798743008570242487235354255151209496694169472975797406740037260325892105660402354583444673772028694700927417008846782330413551063055018733694817188548138361816217650727700643807004229845253293276105790578973647753486652881824387888434820624244503395650842565839381288414283619977990774782816428078449414940048441537220166207377781206905344762605581681690307206798244904358732680843942558989638561596036509860029612023636112485004931867004734872228900869311287767116461032184535396908562806353469812026982442977952573965476277799237488478572912479958297062898417475757989150665805160192211106921354447602987355838441625187795560240776001723328823584924957051196679990818589419190858908622683898465645470262483798244805521559926883468037144451709971618456628973455332424747007422693296353319691568313519418472838593043445797275803757523894046336776810601065766174778994433415773806517367234558057735835226090513293869047701306886990141153994616941142170420846660564036742760719628875675541872833203920104740632496841321167020499964874115829074368924362392021976278077949506770580485910902117996193346514073536335678926570412519556390027521989227642749585838888055694716000510219906793037004865389250532715951302492139526565867277355480561827423820291765914817811964153883371838684732791645168983252663301291909533522167830908335327325878884726150604697159576140604903375763989717915045286699207953644054572908051511485101558383961012035502714471990615785588616735730741974242234270551461919045028289572893387350565555616492788108875397735182708567152288150605297333822065712838669690333145898004510598480352862345544696158748209934345883610590071178279813152383559514832082531828165934658367963163554537836670793567211033269592345303663726745739569054674244987839602881152190895446426064564140622273569661190234353089142675264111935319599951957964896040939101738438810031194241873887519874160967800662328824449744245822051904593440167464259353730402880903262585698262616426019073986530809892508733311257825742135430437657221889519556111318095979104678894101050271204714764185909439830085462188249134519940389474067459213561037695556052350951445363572666659127318249033488267669969339407265364603607277832700969489247308055284151539183804787988195930202081480286735480738632082416806462380177682606154045321426941937297220367200184556060875445272722474780808403105388268485263727916632746998561483956928763375495461585807362858580203516971035954808141405684268522389494541320273524225606789043171339046963497082767782063738306043964137295908193161872493867874876239724216844450362898377945247663938987368028120785483768892397237680760092517203556484667533925532728357030683891554682573523100993320750218581270471490122812906052989242592572904162013760576571719400318354482152493069793778530027735358437698700071034678485640815690086098654767048174660582160733888260798042760902735851152451448786514502697076050954950400906149121572793947544542119071570224657569260468820080505321012177787861110660579471434549040323993384929721947523233696138309401193565046861236291838987878086358118447723961694140585624421712594754770215840727476911900093570845549153010343880284561072684765707532085120385914726578259712407560516347227853173412777030131269557718528667451841631673628568492122118463815529674358698558059114445234276516045599679718191902897889291037853810962406713053362254950065295722423217539401067538345005083163118494885451724570428790976583086964343410413070098696016704149238866482945748388701241829782734442151380465467666963051007539618017569431947072974669545358250888813697051785507882958160416069675152249958470787224674327253079293537493924501146631268052894233134934719964975782115933889390865803247745201018282995092185415521861939336608273870443960163219288179350869089083821298743812349401483220944193280358327144922492549287098854460359518720653797890621155884651845655336247303786847128572321447559185445879807538192214015283726546745966390954074445430384293540163672853178707866400667598665867803941292396035379896002788470133980777879540774302284789330739260247476425206781126073239566069164019033681684744349047793146359737904614174691451210086118429779151880764768142148658210225257316128310067596870284007781907945841889800392558961749599850595472903243993831239980494312434951417756196078937091553201463047992314202106303707578761237890671347941721813846368776603492877357860351869704006002800518962713681423204316953645884908819370356766362618564218876431882525277842451140452021929624601454008268410743957458647166883760951026596418624994297071121475640049983390546898244288208339255828269037218915737105561963680405701686161624430259922176266306419644406090538367474844178782330532341071524881134879460170666033374152982522563227320613376721163723988254160771655299956207762661708452589314428171444194966000606570442465380656143227295060017095498588917469533643973703329446769329866458147442955523421498585523388419200641788758171563276165017119326908872958772194271926659184881275133786046798851074850635219491106350775632979670209095705142393879142892213004637650546693351212912836181332197145833906470822894381821824331438516761550575766778467872067918978653125692903407657069895839793766015555000426125065824433423431754700429644931086337436680747617953362412177402770696689632872884060056935791318730385846422587708954656638350223727453307141241758696401998586040972760505443371383933896768720185675294011881482223635984148348396111686814924809142052574929616221999111370549630085210690570790702864353167965091787635787344744627982486501386541438171718654909945998095112919887082991451720151608515192481946628508749978356803947158393033818019184140883527947353039490439917438306571499730953894594488183394401824391710644539729433180255122363109372929711918889323468288119593617098042837147199825088402373838003495484559118174878361070791335833453845325772675280002831313383222091610868022243694438007561530312870329865255588275311634407096707608826776549801582477024732840395923560580152908325329131820080880086600069041748265175992087290812330881684264529802715148537065561588344382076902689733375153810932608751064140851743786632249199569343623470251434119567283047917940039802265064022893678541705977318970229841141925653807363770213411081840941089911106842298940825544605268257514673612011615647306659680458915851174941104402005243660365649339745075419696852642540039172632321478786380014861251644282322193323855565609483222080641534010162161896494665526973510709231327295159101699259283200112920728428207036674922625918334308511239788287694650518816451519833967536422954940514386192602077659913546707552941844490923385009196608008915695958515213666670775640859424273969089017026972234746210979469741698567939099314687652426127563958408999925145137693974892304448069980137597346915339272657770034184812794063400853672404451250396145161108141101615433009090505638053568155127484328494686394745655291296881960749966662534005822710665574143266731490562897654552456052017939655357277722395911580107746859474575438009800953165903479119969845799478663300327826291241421591595037144718931789391637370924337229727938881456268695243936128904043173305616741354247367233729493686654810655473871195035360661978014501541829009558549254990453758338965668827535449144301907018405832173995857427918629245683910961156607719294564436181087068553932842566253472043976832804517075924707749984799842950818934799170522352405916520482543326360204262855630077427929813816255842374397595615111943441890533441207578892304968822773351963136068119442445271588666630529304106472721967903806497625664177521375608657995138512229923683317038461656661774520877812175020660291413121897700226379390413659064444150135373963050961298834781838343910985708036684270332545073063410560767184370636320388896355961801163278235387606811139827116634371325041540144071030411186773086663597360746651709636744786931194718730837578667586163754739377716546652427434399755293339762776103301011298258268265476150918427857077018400250180066871219153397071337142314589810230213285507334302334676805725296263680213792428299204750601521384807032813330233747774973589009787459136008866153194703431513008715536483564914690969827102825655873704529218492598371493511748722480076567892663985129293760379054723969592235401955941387837472842566390940060872924798539249139570386248045614158446109347560164409938860560129547558166257809777442513699911297972486990608120921533810421776344250033754465302265576538786319788832242199472633837736109992685981612306720932384223605464599237541797745262312544906578517266665331744654999965987122777429222030485076690530603794774914569282638697787542286024923535335725483185918570720395895805989278259636039305763598805178514555305803607948917746334350525594749019372154714335887175077710488535423284510203391416449113327760399610773473715733860767328008213625990656084817928351780079687770789742161230731721092617181635276374500567200018373382874566990034212999485526537375072031044414781342745989548955242874462826313496727412404664738131636372208321059507337374215415451776463758331397862005580065568426341058812225589078345034888725559913442197996839541756900647085350103001810174172763483126941100176772581348185643935034036215094253200838312778003833478724391602592323380338598158303415115443849733534765123881289939196221947300713024976866872329189075519842637707897521665529286462821506474878167414036935859501963539884075752567224569739252965153489405612463095721682788522451054453906893084093288216846712807311694380666220229593944946715216717912593077996785545448786515319866876502449705831441129543217190207341423754165364621601686195766631010610733221574745281319774872949115084845231343796629034463669959733475558829429006902543888219058850544196875150695963739797817445973442496827634549660422503207932086197130533144472977792526231956906682307897892750754748334919087063463960527160058615199432213763461898322891200886574821285652994099225102077655028761125838864490246587945355236015486904484716606691088756559092500566821629769411367766644807208688197542796044107478035195701791381699158630495326845128958010770908106656691757738086819686957653091528352034667346253891091476958212785788749479558128203162052872525352597189946691927056506861547292433662163707920132017232421866347058333378512577089851857922543689296455777923032164076154004783907979790207751182960041418982728358766962860833851645516578389968248563792951978823416253627883793104830578826951566714405396791032672997546847531164332090647845892550302656393892477806600624700557163977909423085185507958872809082306456950584825820665252648317997234146223456905587010474571079964308440920451295270228027707490266471543436874346225491159727870680615340558949820953103922009511795519874542109927465673589734529885091483741961311352376632094490761415157656786255461070446819085583529707927477123359648913123831000080681259242468583679529595707916840772561498421602145171326641008490964714211406659329819132333313402486711431444211241412396401779277157616381084085915689378123073497436585525622326079751529078964014118434839303958165517134688481010399810592703511826535741553287930310132648318325733444581462684359014740448260590724872717726082337946575871461791786380843520279286310567579336381032493170339911688389878321460072708547091022896581435943163045476575881917171866650411772702704411154101157432325840231121833826073051055901694448646034369759702251352206790432774826021973675180229480018545087772800140243116092731188016993756655229338486956701050537555534776528331432813131719339909422698574443202580080165298472227604084826218778697036476684212323946325938013491321393260237196505410526838911130478802590592523514160326213581812457555799204076361785408748896494733463018378561045328271007860822640192869200312134260551332950626243032401741117900010006546034601454681860390903600677410474328912823641387782752719699258131479807934447064824229849236189087688912502265242355165407454317322561647249641461538917739626414643030524293063940663972768254780435327210503390598874959462180003101570742933390783611907399273684257321834473058438315138322631941991819912426908357420073735796304259378645478195677011471133443345325090244172496693390203222026174613288630336010855852576144142003533765417262979979175233393879113643570836830033934918271541299984290332253265893557808547094491356672582403609879033113421605962198067642574915067771880160737417560286893829746604085807162388467974918194243294063446470079168077540943213351488006681669507790380581399720907549250298271793681192366258794190194551672796645482555960974204293494363109675104565942706020907260581653703179298255081365237295051256089832594442653142331872174328540962166550087970934803239330668790137440469305861077577771834627083558861407462722274245915105402262701022208321304913842144028879907985700032071170793413538294278501699735595915583756509055860087849470383820558303571496675502097898321167132998365716208156932402369560698215163398938452933915321905168837642961475635252768466301144069880366519600423032219212127278691465317131428962927027034729812593975112084517410042524480858030434207874103626999738270904064532606213448153091197698005733563827338786453686863078460652374006767707165759091753092007842473925785504760699534984799632003322676964859977447040677821913191810410272624736337224253162977084825885151266271667173309332481867487480569235731597849826757392014960768091983969346057784506777856760187563855448114192095805699965822445943070187473206315962904178458323934572875230075330152456413733316196404065297937900942322124826146544088695784943432766636411749341745989076029394885832452511959406869097634699962315200581002563544625006158727060481710083835512468038215083391399615362675373590495134422144786087071253218395204376054422773074892107184526483517711880832674943582619086352395104654517798804114197776738523128407124307028983600081952528213299080477929828757116424627777458556589759246878019530545330817641593065216643594841185174281684981421499263179460083578231552478061853890237053700528897440744817972564937093628983438179030359676331428849521180351840899156024672118187106302766901049108406355721706329984061140101463344237918400173856738035755214460563710056343172917108969289393511460519614657005395198077457354071860271439762834341597751711967108632909315380805300610276291121459043283646032158995943928603717746223333102326307174676513496759149014852709871622377421507353982494548568948060214410014540454614162460124954791606467882692562460178071243759988283413433526290606295806388238736777778769491150136922905911121286396934390413658248062577762468284136567194018945807782310855635129618135594739146937285453265345444676924357326535024375102764005773838635290842375844153913925956883925144325192624887512338332813451456517064648062875244035885054140063134282853121925800825545221220072147858684400353058144643451683798503184606714705868859283708829345550615171798064663262357861273874286868241984685518128366552365832460026202828465088538872621458755398613984104028166422589212035317340936166727626110521183938934089388574508718548742905237861650214092082983910284409275269101941381457226885115277278901012743006126012748968874090290846922848681685282526752679865346799580405732919295764974582216829183231701921362569305769245740232568036976444615086193246753219709464982951116410821954819368063346691142525089103491233969689545686096921407864950457964618532835848518120738089727426447688780298048454422228281026902933615996127516099554859856194019236769065201671410003320923622017542430305602219915645760147204456966331723122879251333990734841981069071622763251001290090306099697622215015990417468180703319123111951420112994031964192004903908849974340758762277321637274421293064383725403374939085152277768069197901537938172491651890148659293454278357956376408174500113944304356881517057216339310797236657858448879379634427285414121486076116646952048523959775899739876229796985633628867614721091713762548980602534922644811501518823643473848480678347460785947000617362352082151298927757694464235020222133470576131520550570334221487325145483203275911391873339286845144835001516220926663529324087778954469509769563911909723685853435445625518498136425812005615588835206928292195896201005120895165227807590286939555692625411580103988067717055965501250931214596893784886432179671822797258055704235608224498373771006776387036998637660806004521661455771390612612281786546285074374609044194108593450373837057093874510555738948654636109137317848233512296641515082144029088148026138113636666365243200266337539675980719724853248348466547294874004928601917671842763295027320460164817535113466250461067346378769229242700946683334889624428790000101601778171544630688314994225798852980890435489280824240305674199895724890474944773386287299518032531400317497391435585567860304033386294496275360585474688227186352403775324907006042762601534049214184709014225510959884526707433570911055020847647617350598410962459996822804852899308790664199051523410117172251388577137609722609796548409771044984545737746311047807460633383728252674955300037586447020655604319365085227616471011775764295268820603299658645161283901211737842052855323111760862473528962246617815653191645722929180796619918032995826753649140872566994001656632040626666584881541523425784783927323762957610393461603329497992215470355534400434457691509374525112974313579495693398342705186129653622248382513122341468361727661533133387700007869135725294732986490981912011369024822852068413325000810340922198034989046083241760913342234951141945132669323658823700047680868624671766969164291493227045517957922278690267018130951368628892921405939523290003597592906837659063358911537974100806561562675691519071015044729725720326545552236483372121629872203472518719915467027660503199787294714550492708396058443916134188243464143934075785431906968836940046438972955390792406415125780359612909841862024057946053604004889817296066203303073542306487106998757211846459815781074585514851811677023508652264181345661970840920332483124679053216114792736510809545974172888870976879376662924921825510590330085189376490871194650217982866614308916764730478364487347209820695166310828134842233998033049882825051049000273552925454117614596515286154131430163269572859601159157022278677094344487538514450811043107982199101764913385471265981768973594720607124123844334031968962350143057392674353294491260880013987128593596824365578906033065523914213325161847358937322498352806727999563662214149173699319957891895946298098968084728001693700530786437105004148379379015038912948473530593284693042376461077815031488465649672138158054780879503328867276713915828508016533880713720582599027754333729924457438092965133779190919772037268332645804444491587161752940596619734043103825640812295945802719244792172967875026868691239325731687247013545066615639664245207913814089733251836526580277277322283626579291297382198131219180298699037602590840471454132811438623008371922456960160700216516034160973495070900401972183087074486618218079413950170289538785473052474667820948831623711397237842222583463999043266039386829008844291324679918133815976611035405067790685221813344565297791587052031752149475519779294068740971889341595509985039641218106389667121851105590388622101149197666671948798007476979003300259094831049267999708957259722986106961676833221445894949397829008868889697882000059493284522319203462728242175380797313306828065065022398195755786461545121793469618016332938717948017753919882685251014251898135184054524406642476478817888986395145386429604222487755188258039418101309344560390949026916289833362878936873468066477148478960983722485532058787019040702253413098065147367214979274670026585517488654527494797601541006063459517394719884065666855571257849857164432196459320427992256924493684896663735220419108961907139182554484379015685887247128135647350384353439584555844506866149215595506275737839895276610554756007006568169584557819636373351188420315680986355365055982462039906940374430509619354333316660132382847591483305163181277236513726204300220704332250211741589868077962909667237543735118670389008164938047879600019559474495789060834877940435494813511316085667645537020714772417460646208997248513794910215828209020089965861951290781279011069908110579555803598133392266882525414338271284657447245747714278198231089652971049396947933298394577480959817132773181445239044393859521238393624834711487017893650744522624955025963700622144079970378959305591186182194666528855521550233572488675605000431575247662713573057156491150320146311804240039194746150089764297681547741980194502098180219222012919483850181891458259208924559090133995954888117495986473727350199686713414342375770733806402914394299074989739002890897037983074647641130281334378314673552711970036068218108256741227961370071093498068948749147180772723143194375605059540217240863317685352746208615817083990118274138678416785348587923854185651903098710558734433238249268893337504564349573536881181281939523569190854618298583754102848056644812726481305596739833654055445894373093600401928165000048141014363164388804866434591273140187371598536269515161591911028127225215161661683494238210754909338558535999511265450649877190868908037237563329456604083303124582966584252326744030005419012860827350497240218607114670764751960682301215755162163106634464019953852598350678475566617272971428543891330031168959017290279663978464294752260154620871490949871395604335481418026318420235564477668425150242386810048696385913475966828974852569842991876821116103455384441573845268106547891101026891984792404748132234364315680653148219525705871530726046964155614401244458142343147706502868555675244786795627007285839372620791701635317447053533731810566383756349650094696024761704599211322443846529755851587636733319490723727989266613303901443242440556331394812943168219994786382077120307533051974145009990010408407850579061500781813962327855787340725167749389943984700692113822326868032431428011296701969020568630906946754380948768792127472638329077891950770848944480279376186902729813004948716704599832778985994966042293453989796532758669359697536651097164959239691048958520816014268347924439636613456082362018101291746382547716089784603590138541383593129436064124646964244507171400977080784648421227534537731011625385515425134032406231993492881902913021256642139191829939701797829334693311407455929094068852229898852450534180374302352585006284285269765534994876818694912044551247118347864141364029771268306792873187400397364217754552148845139382046992813123194575169200237194312137691658191838164068762167953358216633926241812879300782321784603764304809180087974684595614645798884976497303346296753562038069009391656148063079181011820579403158612123896384382763995237024449837352278996927851719035484322535057980978957959019778489158153140049155508152159481007463155716925870889893207731701658651858584547606945591029580677775461784569068178570871140755298153492940845418248448691128763096418284601958192838876722129306273446148124876727224570640800520463198383045358435554793742263666501257210377188864515226939210096993697648511936773144464926144529676885881600560758019471507696849127390025768069978964787203094116267254381162809062958804759639299122835503502604216353465033764290385989115053472271456732744933175929010559508618119278372352873917293697889971888297081460570597509605489963445207314225981581297407795505057826518932561483544680948466948326827399980854277397718540258319456599927915631312368703611423403126044529176055272039161553888146853703256830455297400556250904911569116903466757650867917390541796415096114207232034052227353495130176807320357603539416293971089149033632188553820521329065350079116660670799668264034351670013900648981013773362858933962128817815828897459487167568718719569458760643825571780274387799690609912182469438932692883370562148159319806773053549880582874252312002373823687608697760649964235705137195682447405865033788499146815711125925575999530922066456496758961885386241216440719628298127243810567564814487564945698224516753682629191833510573628451179245379744377390526380889845095108292638961822061842132360314524359638539679197604325890346446577860152734201330442711967341615658220423967315360185548469634657765469339053721317183812579962791577056342792590525809052290050535066368678020974190062363707535448647427420933073569238558593063371095519508075310691231918037774440775256549206069503999612306845982765237478336904360457112638726457410806926145249599492577052752308883786653453517137078459910018917786599438033740178351351530746819608915617381984383578307910618532517503935776156368622690262197655820951568197062667741997033612188667809216068012556971526096762756408398263057832283675634980550812033355094834779780495525830893870590840067206971044256667890868942330471700636741826892374706375659422558975515562631614187157255033729639384158979286692532152647217685943957948858975845140369339126594946291697084568031069630703944829699918771354288937211106299949647583735891462785315913469427654589658589819504637968668794169991414497916886788158115901754046207719765694003361754389409438736238736264911387672114656504513495814676096324675248691514340426012970043043130669619046755650785994575928347712242996581718755221687829705235123120246939070440953024400723061707305512947933110258162176623585095240793854723501212177583319595229115709937103379466388719911279518233942218886957310086951367431401146725830293203286256955912690059250061087229873496927270026703598797540513827726209044460660443085502065796320023882694033434883840185308649394724603045236923135478105946043073341997704656860342856915198655362908621976727378250617487444841492648861519083005818483420852100567207281724176534173922764452474613785830790656564174955214516809242846913856353312969989610787748886663567481206304545779241632730265586132127640122303324386762933161581417916132925112519018820043610439971945948100056668768172427445514381575371062448432802950550936828854856615431580070950037424905890006063498381973314051171958670216727038970082112444988620681143111199547830283885408160217539305670696686696175881894348534366894002821847391313194283392821789867484287708145604507220504869425879523148651505799831402560158111496034594867285755910395440812132725310277569949281618219717637446257863770409706689383032897346911547960225557090864021456780361187399990033124879432599913231133903100599463629427149893101806943084327426834576031557992705431725883708871300176775802581705010968855105528953631267094129960666291431687618567702142501186067721279138547101460804980723242101434069163837654799042590997199130846070341499448501667080167436170806141686818261720459598830562390651002758308594403505937162246512490590118387341007845516590514367526320328848842724816733805672802266182245379235057604199631655389896731028148786339788620227919315357544662869645817947528243572913018536056513803522150674269022909968838628897366463512392623346315735635494076110220331414278983526097074663547583832014356312671967073889624210373514873854860566786151437720439143453337726355052026230642314277342147503326166248552573593913207771952470422075529221180649260221030073599936284704526115114914762716207530467424951017151523680436045432498023426139497857519739076325162987010580541629017225740363294208508450801299013390379364493313444548757106545975823595129003473685877421353376075959232740523268299084866004580559886075548507603589552665195154821617330988722927760961603797582387101635752266677338328415668293040980907291560368257381438707774528139662426845397612720531386866007938764554179288946808842993141668147001477763033494077140523226063852057446790446403353632014382602831604120996074273163208420934707311093048135029914171798641774755520257260908593373333874763608997195669524171828031244467192998117524918251549976489138041794127617092896766909868105467825791743925648735198939040526001605265588174980124415743843865078416794401291402530052353297376544134973634456731820069909467681295823245092237595997129599171081051113547516140632406166284901328721996640733748277139994874037982083469623810817790216740487670900774789829878190484053103721493677480373817101002171114000639933133818123756100269078668717439910623401360127372316080530593101636866612184784429840110805700806514250367892556686407002697355429097420058153678253845731225306526797784589313435121768210435437896644104876008422974974606460351379678856784779231538607243649610421843338634080009324220440030909394188946930460398049747934900705934117658455663429742307270363610240504055328350809769306893970613406411912820930154047580910370020809630108441240178561951878703396635826866587578278710119230054719223894912058333591501228897127609241604240318618272234356159698149956776711860498774995321998327944428208866534629747755012405450417644997095104540145668589568404874392733234701378440272705125224506817072576773596368073730356830532653095593671559652078997216616539560929098019090656678963631800080278842511295346114870324144162242753426289879354351592456774867457108085824716692353639991479646740773633332103298998937548188047023704854279938823746076612959870899605811876115687420171920844581896954915004120366363549980475545239535990734741480438359097091816179754749873292504505340082833908619759443946274828286809940818067743489869456411055733412013675405454712364256901919371508584567335380762598509246363450396258562248680330010025469414777250521506242179570477722987487132808814857609588578111309341691773128298550703901563502611799541570867226484584847049914762443803203069106982985102237101043821764946447178199935896688581400418612520125511735435832212466349318211092768663495385179577911008609019658795335193127984399640668981979373942358893332153332474502128878007054375671354218211114133376731215590640690279440397930651560379384297996414498065990216339401995180980636668988001463483219351175474245334292270377876466020555345258414950740436962993966530902566060683032886672770233621844644704249236570811235552841457579675043328229200054288280503809314250838408083021194182381076392397040617459132277656415519932416484281199027020212741537255741164675541387756518874743488422329829505824017375258347991189298323964189613625698332762039059650848000008825164525266825118399329563816736301944696932992838122337079491798480520341929920368756206149498531757518463779941749158423996061671494578471114907626509432844250449705689674065240692572012763334448587488094672436443758945904552510208665316590957449969665533703582030100460023037781813809738605864495928483188058354256983426766274092439656187179496659582840338312375778430582399499367676712094059109512183926332331538398955626705449237108745475636240923706899222042815570832065563263746750704062837651009034228516187809468771926901814753299593505088163144985397712866760973427706377439903156854091794649919791643315669232003685597367156650378146484087664907917048319806894390146807796673507505174496776200512914888790367823775294345735249758311186758515550657145605208320750043278579750949976102576677535426189665655562126976564785962988906355887568336185912712430163072239174530744728830578036495924298908226080076889471690071117296171272254358981201926509615302186892631399998442727021054858869910623004043014710599342085599650755378933325482517046200673082899506351670748684856561927242614189236711585726502823228107633087913846140534528733464729263276206889343731773305527811406855065833029808320435084447566997382836310226834101005031868323671241923449494826798935743704629367286720544956541044085399697555848853253505250543967071350169043054534285258249117218736273225073248939069781230048236203521765470432546551737318270425125744574961300901070003565579995420755109228994730866149851506550839073914853755058775334550601982791072891385520803916510405426705076394407881330097057998010664075164416508838096311295496490125198230928344610622516134057626134326156010598477695440412136985040156126155647419334949982846118286632775265296157470917951470271598122446546250592877817783332014134269674038462454773904109831225779391050597364705799860745450157610781643284827402393533380508774316651318805732405428937513126499752010547451763299664642114712228830887057666046127836024377486561878979030859483109801901068155807732364646637120482176390974318209724253778373358220094355604319558774199526057758539935620548740661159581181667341383261488075518411353793887813525054951778446038479651240474481604398578739555656571176452524394683144230982198342567491329630107046375929715184203251518168958354198679667200696267249340580518286262490339408853214567746773849227064535219447800712150500471153887055870002592273566602244136678395722764247443513988024764652305270058869791366816012431158711699850659950193383267608143693501569179020885968743546143541220063554618577696247313946475398414945971976256676360475860580123823930956598594334051399769819426932138088961087235660584977223125514487764936119861437880568558992879330258543746570637439689076730274586059498570707214312269573191978354899575510955908348485991824621936594058259910236508933063682011318780074564812543097685730517432417254501328126263328529286125790990704773327659022435838266440718361891986786656031134520644009599730273215259213828526412075784437691141968117699234865802655677068361425888964471973405401204516152717129870878777407261286364799254481124052622460287467479881013865967546908468701570983515642097276880356746976963979616210026162603949346375057871521870373878454134353987026337958936979156953751567158991199671310196789815848125822826866822655135698211424705687666721048190435194896120909261446256395968937226082150570671149136753116180763625930750189706652477894522976331878903190726660260841188106430616197986868737961200569335940720874945241588971431227172966475352512103926323211017805531693481113519194914900543304379277091282685679855933267539683624507459082748269544060049352642029495720588008056365544816489870356534433102616362343828224689851726321952589999669545539704837196647900612482456442916408400889111901155280875907800042169945472000761818801930654523620496385302074505608129037942412999595621254179451232080899016535182829935113480009287427979674719310303940140688469213535547159167201669436319791050318645193127458447954246889027446920167514660511042279856281764658649848319470183980492239733038488485137582635125264833109580192120589533868286065151211175215604288848558440853055856584710967624823266197397234289057200376246026786581279920832847441488647847271967434316710455412631615949882580057794438581933142548211843033355671610976676107958137016512355049517302034023243020041233027151038250698010631943411504605640977105885795947486605258476836088146422526145757868151581490192151138041941191543745067654380646663254411438593096167387679456125923134293622615271100068765198981787003803866817771546115968209214548501280464933459134860104158759259741987123018427599716023244994941618540629971748637946394785345572491937620614541225188546301542812914378909476642240196791249104774954634905129230132292026432195390127320932078075659213382673330422230567821259385866915755234721424275455588833521111479862793354810372725628825246866869382827080047932160162396981886134656331858301781901215646399770859414594317691292479877698140007790816705020963461380771918318751825673795357652351485485442845938903145541933505871490947563121064086147188972131179348413652448001565991384648134854446897798582530810477975832271124112176554006513906519636043476209938436759215065215016438582771292989146803592096287439456692354175249456242177969938271925672760622038293604086975294318788826149839763565104178113341596048799648601429966917293799818473018121871352819521760830580805395915743660437655548254480733595117693944169082812283612513813903927198300407115269475775479466849490763361532365946785076399329703650707879199167081975259429683465139800008790713883922425063750548971867514945973381236149281699823994127621611547352695258480443127494718138704572199526918519373581967460260508901172318148818123211832308459033972188860280077252415330869438520082442385633108057159473357076194372431347952163777487827664488566409512008010278383479355883468486622701836919156135821294905474147415561583838737294829302919108086837606804433364085870394618921273701711288190303187619712479717402717814640847857916426525436616401933153076200002340531159166308862695944747298225908331771977051875637663940047475470373866982028154405890988027073365700454822035491617863337694679337014825935901311391960413997545100410205673938323413226416139620148572449157239295811573663138829428097387069891819112025179275086590854743080850910399347506161562917172039412180924549096767212961189490406985566581249350449531336057221449029516555499431711953232944860068616068016076941356884270777253465220182531392441249294990469172503038615590659374184198642205421775398471429455428826509673114069912816259727539637911957876534081148867007207824579286359817558082997628303386195335911162662507237941737696495607391752293005499627617783289037677326167306091529097741266432380604833932643851505030233403232150114778356706292095383538115733295870309946840978695391364875541031976468690552188646343898593118719523143127704467088230914155567438090115630962397849887351175174193750832228500123278432326492672745395506629179365733393713156040985363393516734573081516145591605450067823274777028814596192828919318172330250351560961480872015302882206295533723922769294802265544288714024685694595039401059647365147670972466166612820950916151635552012671666688665699500575221560676223534158842408447587861411607467110623484252868609751124626825295269929223158869361326487187770846600223469717749069530202972650615080174999871313323162721962116203832032565100621702927841608733134463652667977230382122845280119751464282454194746383378160726498240493797545116969568145524933707252094281259913390250764020264277059655500670642967468293133165494404898192265700203476551955907211607839671912949062289676772423020106343534418182839146227076206892772088323034779223550062003490865566192552713022679620022899034963053046623527596671140455042661332319559584886089478157117872139620087930181421717994623695452306002596839738934341914057985734903574924686065129266759741070863110127445479774542972256362342990184323695092713461940531255470415753715442745769970542704550186301102514867358387661111036560666792240890274255206073012144840811406268587105819559998250007080565563610859740658337950032644724431243653168189682627503270568003948269577965053655279316398732916328266344147206678707858042163250724361670532742313184754950963781941658446371996903098560711030708242203680105621035505139156696858867596487133009721685382428500516196717389893106322916687789690468271726215076940249808344954604539730112080286719374917513011146489844972211557561927026855865432362155998806171677215039910009221680850378144518167790314455226578005227611909585094126404186273965982179919826313143115396244713933331489400614404573507051573398889018456657126211978345545101248848837926733202479218656982322299561765081412674368433104583492078515831151425052892331700538766169664020083284055942195723186653882535061198831787973740627474751063048576117119113463683571098035168976782795721978408131242302601654214483829300378063774249873242265200186150030530565002985799255533973097615110753916271590494761607351642679044304736608344414744732805625708340838534345376934381451567539809013981738806619108582789671957037920437548724457076656321700386420934649850223092695793845872459043723128582486500159613601310583222087549063426965182881891377800500246142978252891309703542808764502254517621734310409947863740562617027147669224235025125416785240585643401605128467363520806272765561087113898256669362894436713762220837992315146411001735114317290633832428525515636141718368668842652421267066511830034697380726854683796727788480394360436931511364781408717166886264282788108603640397282652258218756957296703205405591946117667627708817330023546662288131101895317915601413066803045473666163538321509077470964328732666960648143121282339187639749608758239274543659912809012259238879009994088597827445466003333296102630761119222576716125437618771653189792266367163158363322215073543296360751200065028884540322095599986790022780213731057761311046203756598184637859520975605845972768061576259270591108532807622703240656678758519587752260837591660203988340800559278908853936263356724455144909613400644040724905975394904546077327232590768092350943628543457266026592206587553826106062883002358141244610583956560440553144454827031812078025727285640413363915378324090182201119612374502963736177996048128628497917086731132485475388149239280607436945530300665914816564837615606676273540524217112328107684664420187496114475773996942737045865216717399728506659438311966376716590611279609988955313329496099425070287829151022856835561826845933928015526999859866295295226518101025251753723158842640806169982794073570166318765609360515195940932728297162680211823880977802076112305230304670396191788905070485214447157273548109755184418574371561506076954461054792713899312264062257405974900698289588272518779911555734922050437989797213867847056806171780587483207453104498382909005207851317520571807285574647218925386782580603903071189699940034519792433550086003281103039849443191899643050811642387802591683199275687852700271782170765608385163138902139982998394859664349684065878777443786971755351294091318220658184791517319667814567954462356023413319358836583775441721409928287947299192273009606497211819257000869207897184558655761015389707132794951098947382628488301521373051280354610306292787208408412076724799477823729821059758092679935002780891940313053354218929500097881656137345701645256880007482242214779712400467546026486815580974972695248602265830529997079961118598383088978127336695767510202576038733847881813459297671880295089780585219388993310346672467735097051846685057147438485387303214662908865927676207953920704293416309661886395224754552467433505274184855409064718077902636863467700149907981925398809090565677654532610477974923292603091760875842593482054244352862738874036602848496364667312807137961083700347041319621536095015692249653937856372667015017703322957570795626751411024571027841596003567069144989885117876062239766999291849714340984516006298089062317137529765873921428032729293770196337958356583913549466097064516140247440192789573444545846422154565309969558754505899544682091930004763859774866366060056193174266290361616191003023140484261202581157334262767159800098619316216542948012466244521547142267634701669778548302452257734083658196223493816105762655161380522374219028495993880640440812716533166753338903596590149897379137774440694431281395632534878289391026293439367103809564904667956498098276985928598215354189173651294477108612252230916396526459229381847902436477753489841573656265523188422583226546770593024527168553214182722911713283542793427912092730628848868423640906287035264390650773236239232815772371906470096020106412072685222908729315903048032736193584565850575622855439044046809929651625922496421864467662851573788204507996420321388365781472126497961901760013205346760823728752844640069818714890034976632139080112280925527183227055675178356818217444667605020464036103957622173308818587212492732297853268923914160757081854402831056883734309318190397400846425133614563383231390716448614828113083816770674817298443370025490325180749684460447206828113115735318761864598670883073057838970025342627271300966183812594923375848835797943078876650107614105986359179493473662081511647504780727215625082219411856841823488434560166426299184170106695665094523155282493469419634192147793085630619872125418431180157749480666888507687747229332155884467797828347423228903703339629071852751847962097412871052253243409510377808444652530646559986151967324354085531376128272060350719915730074604466524449245729615330351899778198659355628421129183755474862450579965557323978125061427146421429209523022984368488161968367104618645069523310000960869437020491347460241819897364750767128457406946283576240492226420802428405314550467228009804763053152708580879458105269014819048488497761799212587502483086025830883714625216277049308763505544132260838096492518004767394435802823810150174003832925098346923365449547629172836747900756153774805559326010162615362418282884212577912580913983223634972842169986736900552844386880117550881291584101900735923364224234426949434123820397555567689857271745865080220153439376312488145674063590277010937399365455747424275360936561745489619003169865720528447618339889781658238096449250379966468044602745559075544081468857829350697403527420281296693998504163207727758942558679670994595821332408445540807193072742335336485791634779609074923717465684040872660855946584556585165400491809968982883623138439692739968781712134781370870538323615692283267192667246919556716569259308080897972556125578419778565808538804849045491088844874260426227747328648728786563266669288760262794869133353065482594777179581299145551415860325710328814280827515355420213927113435414561233930720340307079883728145439726830203841616516768100586073259533401253034887053092130240516390987827525289985148489526199904213070022129498191956203362204698240843843293483433003177241067476320081873089972744079125183266958567505771839875760894313515095236291965296102241201649863168647622758078123013055307076505722918806758563706535370613000489285389626276774949713432983581946884542611245994341425238915857390770181607819503352259281862443012792405764455672479748388387704510302415087360501472776141824904485719380223534607934073784255902536340593384876635336520899319213634005811296612295287484428965451315678302205666463932274374380717624883622982079635690744652867804923764567387447516383507353678500749334989413048891801346565326153847933332795995135879469974837539566115507460920823760502581916195200410521646273395419563821744632216073017187384019446632080042911171843833125371665654779257662075138752482484392935413111617856701617916781347824284050540319502692289141317200227059751733683174521534527990827949204302835775738209835019455548755573924681052014123337390081038471727632126548006417550726552484820319976408255253258607810231082600225582445803191279968853813331801046269624708079876841152850987734692473214786797773914188887002160427652590929814159099225019895540277189491157497129546679377953326280218847024181463062340921221146152670650910459817832669873441301838362292360925410012045017421387081820564916561992254168794949564078376245609125586878041175199600926019902952655451709392070640881017844688642001045078868373022457499810221839381318274355748337545295392624031852345541145743342791518953256731360904963266382279354113900994028957259413768131789123897319750725157092263430572628069894897130805465454905443000514042424007707606600025020519832064321675640191648061065749832336030450277704095488932182197104014219215141402034206313256678928206786158863105780808075535489379640652596814374175474836846525498885938232748865368533966731924165101928556101255725269987943770924180444175762591684364805356434154755368035174215049089268166480397288620138485728980947104449725713522848833173840301875053888619276520302637049739429226901036065308476864534766116742244044613512840590081999079676453948736125120626451133658557014121394733838845620620107293701565187832520821402044629104866384161881073022871653323395284232724241029786765499186586804620896391714933609794422987368221304199788084471693468522424130344743809522581065523933244610108028879313176525706361940840185371883166181118839149782275949040337743376814380748697630949747429039617630385565084840869079429885005150960338452071434263813610290303253397958630181061851369028323898617569394213457987812203900554054506182929165597240754055028256697209146088243923289145389851348457249619304652233685943033663767747628529378673970462585657205336611562652549908577902025809142701095422733297492278677587928363281977350005886130133845435030773859027095021120060076294109317261171288240674677202836448932721359758722707945352862624392228209433367953939522181475825253488077675843692780147138969027634112715153745744610975086669936692431028089423797744555910090488563155999687881533409676774887906026074993426728824059967793685645617002397229002069907453806237849172228417096101519419534810561101246316308721145672422293280324749456436636184966302237766055869437327552250706005797190684420452353388832706325905178561181341921181914157421050815800439496997090560698551063604711556639057831468657635771141954593352078367414915117471408458427446725787708260728621751202573951682075271582028796700853535321551620880227985538950126703105904492853819798406752230919095039646495383109053624104693970597128660571376702186632045187547322435177495371858561145583603307011568074556209330375850431264344423234071652661499571568455058356987792656084180647966882903029518813270654870837841457622876549035312353452661177374852282401221848662502918074494214672923346240719675857828413601677702569136713423230777458175690548644606890025178534839765444077622527243975961520491978905705265924775594415631699957086340264754240068561871646273427481539345224050385107186466095221484270718762198663749440699229057215032393090060227211660319000693402195953814777048917469346494995805139795481111140081847535928848173632015082750446348131289675456583514050388049725100323740963743725163474529498854291268715438197607065412497993607099128353310617174293541770973974159084624085301226582020637108230913212900754019040526615706062933717282264158945136364107526755840561026158594470539841334702857870197118246965588689382567313600453080804254657981032065374311132517689295948972600096589923670906764695139952786895472544407673774545047805165372413132197208683984368283327036375214962890578989331917249114921288169809250405225492320142130391479435768782322964030195996142753965769225305824495866464219895904773532664725740816912470341688912863476028450309837061583431128483442988093405990093321196740587101872724521022279503255759337679890283468196585918253425181923983029886480526030586353054287470450914627919572465423845998994403725528815353289925238437295291131721864210831949836806140766022019301552970757668650156349023192706380335035761426143944004224036525080254260704433766131331318170100359390308761454772046846529545188364526261806381621150575236742003879299413925145821350612176633409672724826939176375767466538940578068290994457582769878639488855226043026450358220908613720102624425943251981434415946620619146743820556445873638561328181631602599934265843103575019485165617992462181969195168211089256014547866822478655009993981944932792157958433024983963499944342975621440526454101979924186824990451059654972479404994064650652166638429720231682466138719275797846174068836623388399231945762299538487066830602818307088431918566154957725483780201722336065392175933759999327460712123260350018718697614653836436218768451085250103074056386252061348302090049664008627735428939653830828112979103328374350128886149463444806143281936942317167539406454000326506582841360271761971862898082702599112337883880452490464810339507219286123793535261090014957935711891823291280246838693548668441343647802689542479221990382703288543414017831982995432055894720507944088706111024329346164774858184494704432186157377968789548949545200820260959212257371431209969638254943548547306734779260306359324042237433272595101700086299711099083559059259266504845092920295968841368995340183655321337663020329145482901238785564982266615733661723311910047081979112485568699458006399655645431949967748849316554836645951814958213975671403476176475004473106750797411628358378841746564982056164611757033769719174643327246636142457036890290079999504868978205702358590363885367669848259432946868978089941902125105576178779387310662943229436232606146938154291627039380922730631788590295222356261018874712452032198116876340456089765590456795947997133114274459322739221163134808579929610097152861126239077308294256356520042175028616663892898301780323547541826642368119860148807418850860571739865835455713488701661180629239353880671028592466884852538028078353385898230542372782265950436037866336719743812218444927430837975767857414240711652967108019219793625143088179516846249167583744348470848324470283706714725722241049991822430745515530484783829010561268317498136428120751662425277135937731098757237474480122752606458396360821268131595313983665346457535969060047464098747100268887875918483575389180898762692846646002564672110661126494405941880974969509460324098461924203589766292233766748051091267857528936233501532306398550577079455087686931382310800472671728534461788605753046072310995755426909211007013721585242228927230692922042003810662857691454035156854318702443469592384215052116583592339186654785153438203465890701397634181127969513712857115832890172493961906064646994724164435530138536312500546139871832613558021435141711203793608456986923146268964081158856502093140280844176685260481461927456984661323264637358776331427200560656576766078990205568926320241280289775017660938930347047955690898113325719199298371198819524807231026514612333817073074786560899849627470141876819744849177120921126619934091670545806453273564857116879918033135594303480944816831225745169916629665478241231216720501856833328214754659439701043587008014657817404222743774509573919123225744052248885372320941360433575619388768808692239095480141632610716655768465870649428079920606683632812833269725253322483045796806362834209608724327702139920415140589841726661339158700699298866214428334097725987499482082999203197055022082847774524156292982019331850154524260996994313284119103611000539350533510999992165605760892423846351164357576969917353598503571544607200033992840704542300154803733690112984998018760318400643963939007492788427533449391122668721634430570777884443097181863804188670477870493463346140703737883401990587621468153262708149027754066640787136017839874858554979702348721285886703475016091834832498794236382348666907025174091832547229322885314523570838390815641143238210822499281150301927787153970402470978353278110070598197075970909821592484342434466209414332645422627333783364567173549359371991895188607126887044104004140425800512697656759489844657675343985135627884538613922706029119649219542830425541115991251922053060368052420920408180114052232814444369857863511393580884450342898374507821233035603327963816221457495858846788563221106068351522762521650510326721101703239171921448885066372447119798887477289110965749554531737197478165669822176347870803041305070044570236931144016308949944417307980994665332595169460249781665426476508031037847609461462664652440626000883209855897628287962284093251755904039990217095630228903905326301641136604140163833629974512488241720437288528362974786905231351641440445840966336092695926695037894490384315723454486576086573271230930627418903699416472326342380405699080621690364715443117376469478374679228477639881825723116453384894912088799001065579090023854327160159918578040195531784393539279938567546086021773897631997511651303984918927985149225482566052258779581396109698140346407631419268964747353787467922998231881548434750192470119451659352862358426812832308041804938487242131780263044849311535505931419968511242082872067862608186778834182545217841103244304724542967762510140042852661354676141180625413333723812703539374469191078653698796713337785012939759124176395157859598055829120383388659855665162211233656807207786388607574076802116195312334949478786030949933086824352105783753779107343705675148242164366967001402653584076351752609615340408570079122962771523862526831491770168793465857930206915647611864013260394419325295350938508864442376071262511792258436230739982878116461184402432189115055638481247861355805458236654201533158195555006949909620160287108129613583571055238676992002422591329992900165605085466054471276551963508665530835824025859179355977470137083894192254125443761285654634796009568518337012173982537360366131091856244533999924254906664388426876690181755875635693333501962759160112946597026428723271316496633183104445120400940208117985139969138918876370604020342208601172225093844692484713291676982301937630452061879641089426578898921893450392270595128337371219840638627618917894244409734672456571587870140048661628973946324760268411531288715886154013295243562791483980518281967501199138551668136692706815170175319162733193536679135729343360757582871719631471123070918390786562890297324468302174266443480446539373687196529251195418465184178024415366987270339490182056535762123097028283665642007664555727882156733862556065403212357873574392474670646258147861850567842445844192745437233139844969249095164884747775722894776203784738753817643612353358548569801112558593390248001734697521391976188521198795782167211778594560113936029401743424916863769570422713058805100782666228309156216955957322782290185499480517663129752855320576360475248218313534520807517498339798327525554381870615659618111243154220838975012512011457955649027260369850011818817554804035773273993069572255896640270172758017829188217625078212246067474342126123194559095949390171086890128622709186908727380952227243897097603718149704966220644945670679864637706655258309030403908166141161501011239775357800219347510389678825717595862342668118667609804534506336232015592099691074973750946033508392358601770750172644057756715318644034779118577455000260951553653731254601653251622390912574126868505072033891716564392743525216858060832610552538172132995468433444230561306756131415012123057625065104773953769374731190508524080501679915321225464353156925481199049753555196872271261406117532795132036003727726379485739104752869559290462317260013699899962827963686649869750635143388019844285786419631939631533736859315079324677366456611776317004551076158262408450771075799969525201153772936635045340811725724994804747335563478908200231220700625710211597364755507993503876298099757296931571674235537808245954255146379276435707569449068866062188792688458971936273645136712627290983353059423861501060398255993114112614551513488164406482104765005816759480613540877390072423786596557451674144460034239338329442359581578870932247054413311214588722078053631253803394011181223867879465425974303354163980279692489789125735661379410912746864678166942934624944905920510040554423213654516076468727681525674668249805623162045049517782888368891041707211308133586769430840108897541135877412134732394619052170616844176762851631609534912347012607503499133025283095944999406477392096392526986951613317802493993185460076650544653053736118154847970969620036113004551543731353090989733187943655989795589612622098454168622202237302423484187119306464510529361856668129418181414694748017193857041659284938038850834126705308305985628039673922759655433563542664874516249048830448186759561120605199372913740454706625966607827053144267709470818159014191764881532231796512237319236684001209481545064732907107917558147963805130947731431256281341232117463472886034187163403890039288577994108475310550723747300524527800550228231845654741081615053740427782092002963823510191253290132876374815424991279982069533470666637104054887634715187072290668659313597474684439483848508443373438252573302256584635752717780050556232468976385596432202695940768313795715237568887317986570049779269278717736455937607982660475149617614662401570623120865814539990892849477587273477368245891744310376196688623674446590334997701352657932690980924646908457430863575218955501881496382524753922605708981340577656148461283573417337719870824315271544433911833585884563591514743575496045418200652349171944275342692623310497344925486315561341086563025185250743620662289520942765950450143305744748438218441954623985347791051833403719334150284945658967402140545524669201718685038351881826171032232683510849364941484438071396011556039318317326203017031703809676724204561431022624863616240947433426966293505885531437594206986437832703401943996676214902832755607117057233554225706399758102706413347631938685412893263806254312455654209786144347116398137278509655423737717097910078649699403602370894733220017694881753493154792403128628805540883465589847011045098047152961684501236328022412820170421623902394408245517066322194050837822147833147115927313428614872980940252194946422172699375717786962332373667821474829900596603380887600712766802041811881991036487616841207874055536940979195087483633770254489810643704648389090863519403644579014202016294495465102386495814654309631943529076967200019754740848877483099479675157400912458327651978159333653348178597620000495017363791725128197207283713678265915798543396988034240334846955403312334425381093923380026709779078310814296453408786293657662468804195216879105258640936096133963504992175957086598680231504314003473341722524866177280215403808015170858440801316233204834989606431913244623858552302230706630624818118884652147274643654680486292765279233651383686807198264492430219880559075187538837721068740739231555961758535051553198893852146634953762252752081711299297004008898404065591496421346722971168699616957617409187105058717394662130593620862091510093928870555114331333597041272611670468705301448714543124024952370735684764513465060664458350015087230613577070881619954453882406012278261569895943368867225226437083309711931799247704855734780121687918622204177287225402108358618833968459833439914343682579090735864955011398773857017715452574954257058267491517798260668162490217808163466034291909270623762959503940398302941331723323332516921105594680862983789322869519991347646898449265416056371557166036891465262141005122337055513611351351082985873265283417150284714610753229768938122550984945973897474681073832159186865590842908168721405723018205163851304933230973715263300905565196069985600957149487727640716667749100243544818516280505824925996221896713499319906953327993268927413028905886449985162817941598046314981921243438207919144778525311995424137606197293181112534887023249709534652368710030686166151461584266303336987048218515379486314829746683078571380678576656423024567648887205030527968489292617478705223275770300749922201618075819283327603589153842101878158801387318969311321282433220042178591886658849434357967688459319536758619527211203366235354668030922922099287933862201666825463688187153486794142962331473517810262501046175778849415000220107852330685628833473078549310914923114973098427003849079348723676837496915169130020284203676990306618408928917820764594017713104885910600421057012301587783299866972177817240170342769259756966302750864554205091936741060422993416306081798877978451311989479159465767592991922960259398568700107511756838459723747648123873396645104174717837389940905234471557811243635613144182547526018455193801219329013319661438162303164495558736717029691638756782538630823767764752654961767692390457050134991373891149726521139160301322857486656711924937595525779561678246743270695807614627830470446502998881177284360832661883340747641663916204268477427365987203858440925546721515484080738548206556431000582814625869389165457738357183953645458288032179074273552193705723282412939222900576584519377420610381717263508774962817467030350770105853569662969758801787765291203916486672389734330446267173419509592536125372768054374221576314010348230613380429016878904380121070169137038623701193491460519135485674690539263011448272441780331287648673671082452508063096275596470046107903532573672610516119031037245081162975400328080803581379041401587629842612879970629204143439323933002177848504932469934042589450440205639989323691052541415534826894847805365168367745728684969676335538248990531761397287885455669163773003168583249830931089188372830445635805620070993211736237318235682222436759924552784879230052226328390805786194613239181489828057709439652210921800762617839580211993289865118165217843861343972521706791361869056750061026647764446853919623164803837473552510468292387434301649706557566439399232677599595107877998382305202960238816286062414087467523781589201991664274436723898815587911019579324468918869070427483589138430439830951778961577623343996960896889604873644559796997343432000881772760118467239567119371125668126353339238900815066728720006809858331605583330212326144659071753212054378732920101807154805390137600558717368347902312684454961620129418348604801038986374734297741421848598228445090923689833150174827435559341264645728929228677839393184713185643400480296843358484177616811558378382145255935581726706697887714609912505937266269393410144079601344469108644701211370747464671529671141528645898841423126399529704004266821909654649320023409849681209848669375385120289977557432013694161635983181694249307431435787382230817047887236382869337636804771540964403954949755687315789918940651113406752558493716197762638853106672902300833837802416356395810704002341278182766569308795257870979401485269306013929341886558433248017463265520878755027627906720421695358178739750542002916228206468935018154322243437892012594321946446033062586085477535303888799080814596149203132468358579240185450621483294880742047867563307199120894260378092528171961131485741611376186624034755228760075092297205434231347648908007910957380644024293429365488635050138761640220726437705162611870086348743710292932758112420028954498414802060431090211239484580637343225471321339850103785933893106517994509003300506920674906320495770739118558991844209303927989838797442398696310655592619435321873905025242699515090426188816400343544640062311072127560875952784634493180403096719139596014973911586077946008362126756535341029187824249556651407727564430077395741265776174869841943968776497497867731068461971050086113783514652545409543568825354576439622634676187949931643766996033733873728012921606346944840701933506612751333268279155282478139311471803858409062810531339945701713021445943949704067387952607291279630690843503358753711131391253723327703637043817768042372513655759485466009094673832284361747950307058349470690146588965499132084467246196171445779688213876541608285682448586275438417976296869335972706388591167036652221595911052994409222299568831682447090468610289106617197016632000161854740108370547311842484534106702749555893709538653115642553987994829491100240115232166614863934554005741572100553203648623525785915534639692463641672374167766055170990063377224627199231885950914953747883774928701902376767777068035499308456706238276535482435269853137415229807821571378048634733919956004953733082554483609284770320634088793765455224982308211956869389045119994842533471288838164445925971873435070700131668016792394691213635214691819129134182838811418637254232594624298720619310894232285393820316025669815739305030966712032602294604033925121718843840348572612361213088902562644101758047299649401022723452208706303720519171104143732156741542424247401942013838404364639204580927183586111645081731619664185797826464624544802816743071365001896303533447581122086957030659822106572280963181296401263684235616150916437076514287905867769938629816333936565300767544908760033678701132668914556925913814312915516622118977621329406994615109052701466290954619092408977565501797702952618597989359328798575701256376613027292679529997462372064494631279502385282165526870339324111960113221269962074998302161518980880890775996671941116492778402337099723693142537782314384811868317835285163189509455376373580690401844920178647606540343380636878599788728725343608323462975137846524951200085037777740326767002141659503647887996957789520605701815450933836930954351610900629740320066808499963704729297232181762567436099944206339608584524986553147183495691805659088965872647888337453144550667398320666183620598036085144617333031026737056221236946637648194047873534226310951871539851376159934946402300879379578242583543475004590176426575346218854909411859936390236506419848398233316062991033825764126471379246970825874537397839362593102346031481387851494012186193659960072789102309345543979105191165229560527580740706428204857719565901211303982188854264548510641029961626817580168559857783298150459252415237215980314101856007584199294256461028763735770638744779040026088597553280607217767471364146255118254711146355811884940293598238177145874202903311376337754738440615307866949782706953708416512395807924226521647010159031018390963903306105910283869843988621810052063496722886871621516819163498413005025055588731716798959964709869618331080244219077278714032846942188907376330231248266854198236564927513065526494477850151382089141630576028473585990821079749404415203686043088703615733889879147612680675619490895346722801608909925232684699540889817389140324399665919016911380465159858072139638415729219158004689262390101033833868262148352446819038272458205707502752907164357225971988535723402817440749214038633216799520447205811480113022547299532821911572091260930844941382348695312014745798911961142914610594739958438773717208036159454794419112103879046047891210692396408374997287907947043941821444084596500770622406527920052974827708977596327373794595037534787988540260837991128687392702145414047939129258098252493930636316097957534587972923073716858146666180602111312600090144348690524112782178920263793825733445194594930485856198513669114141623468983168543960535245635819131871173935783633163690854885250891662886273603218821224684713060719875135128237835267463053832741985020166635953023438461173638582970024993852958345532619750920594629342137374851848911203233222549651923913341164374948733678521277640014420455672172806821820455533280073807348114477144194871632419904970937904351991495902485464454813306410248396647035856875181381229581073199528797198445206913849061413020468226109507611949978264952223453102335040640313845888059713641851855340634759109358615777115694388617183697400029269803115636628866951516352396355313177287847343635614465035038989640426928816144971456334781470663641228531906593782108786571526018149918922927469495560068268556823334417192785375688363748602132373869181483190933256370506576238904724315038388429464755539438961269421219694929308967602436432378578670434798457760641617851925531759299796859993748957853855582656520916414749791868623654061023398539370681911963433041231356394996184979095920513723186787011114906360971100484103406479322391039002778436125528378505237101903906215197052392578546864300265371360009931598324732644790529297427634044280040828281830312495854863903721670390153296084895198323694871560661081198492977156602576426214032047551948068957597704829586390500155847832465971273119634893250711635902011780488836639214829687508806862052873909654123328704364371462784354911791915380182510638584052653923494901797613883647120960521922385900637287021866817521898986319465247451522704644154306463739943708646383901893474144233242373187548479874645055409780093160024062767997289443867697336807718432030296819701931486912458828468601115962980321376391903547304320055614469786259510979415229852829373696676574994389779432781272980270455628286377838302103891013327562579438832572436579827906486586951849523687471134305312243417060531283236033413399616682679747676932348209810776682190152723652347826870035586247788284351935458566019460681085692004024385307151078919920820932375600118484417679687414958733841494894013475911561199009000801439794205410433223879957088093583315478765263448081331489285772986478735365981755708662478708805298506591786901696303635275788498385643068399378862724959853253168727720872549863538047011108847636967661256067051548981090880359515526082388065051291586007518394969148554923548233342507205228738267253839285857049081891493246088073711274288512578750541996426963216125587589064706321165263096136312821149024535681638919464348065006571591828369861706543798166286699065467351713965848161396142840767903625062870437354830540052341641843858744181016255599055427812296766107395378021885087056728353139353158835832505619198426310513338350509827164580977225741797290182571100731148516828756866905459565808724609750636339661513326949266980699460560551972278930818755991421218045596000220108611523169772282760045944029390122873709896913274894105632037858111793577694785358100802535062049483179021881585542873860096170197444343346860697619650577550646124388894138234104012807461702751889007307300200647065699280474206167629167214942106581382630888591355795998823301672894241005289742268969881237163297974059511475500141368897757699340775687380351022074804440854161906745388541909769591298895358019760604394034296337890360335784840182479167330040251356506614320671591903979030394444046626742946599799428945553336259618416735349758597039981305488462648468042307290207495156784997014209467241993742272602604833864287329151286604027877705260091090157041373527649856794416408402704964601115961962066484140282373436379260349784543331927146916388168494792463525729284529438767408062238479307323496106422907229943674291127976299095935550956963329665713535340232867305200022991253354042316231901405423249501608942930595022518547292014053015018433278905261472066461728205374651685406521296379815240128263419152138845981451103609159019520592436837919388378178836477880212664796924414185189923350441705084287221377293402161751115840110929026961905364112961988507339285441045498489086621084737621199749600585940850646688024945124997744763434034137921994915470469221925040984356760659269124612441132562882542827854480685082278628088748045213498097179670534958745225022110574392652561829879662070765778621566613839987344140924250271863784849588756185798478158760464910345762943544298448003353174191197475582335816359384404503429448354271544437392667932631165509097661726205171036920325249695185747473952442076718228373299240274756519748707900642655893125848499563661749856651542566925237618253942067431581322564037826268212783620469056848997975788824305220707010734309509665737142357186502733280413153924837293806487683128748840824431551537332896956865593402440531082787379326805262148308457306248360573730224971897713248992332952667040878978721840010122686880377947809250613385095422885081849684419028763492295643355167648131016294601488791248555803490477273889473349866213138694519060428610694492891500710707494572291209688248405309920703026957634904693982208680436224086219863116630210417064264964223663430429199862488197763812099860182405947931861275421941483296350579651263545907675789184217244836307872509153410634514865197268580946245380508554909731253738562041327250729625254505849423739112901960079822314387315692295900930660432600882622033439237253598663863370849446359220532590999899117526019826113460701174145196973708023150889810704881105816140367658572251456318758509637441036132934265236864453243916188263779584085612624553330087461857650639242954011416320524288043451366005338607712281486630960807961955806020891098678008404296232794778618586879003215608965316964413176257601346389483553812034021992838550833234064620658723666933324103503688623744127275739486816651180761215745812877636367486281812710296565281998543237104191955523501847945388533018295579448379681066447378519848495127118999641197370850229078544206304048585240932819809730786240734843480857570438164116264651459063970365064738557325410191839511564822395487448391768784511948196146373748326168845553772465760429544042541131760737587240889136751213767782997245589450885649445707412940826841337562875984311062768643272803817066417027738796052421999366511142006341972907931597636974348963070338423228611381986082594383788069862130524981379791735276537587677573554836574804611956558764864580898761257376892826951577820967867986462926632656593130420856965337243833822406234777244572712460106550275769907893407843754041969218815562017037503184624138421339735646844762029949608588254154527141640365146468510007404045720486368177690067209496147067002027906419137713163590825524891872272636920165733861321425562407666003377163119052817894007524804616659089631744399567161505139479853138986602895524247603100282082009051853371401140336561852696793137155748612864053322752647830738937007534902738665635754179401775066370122560507330498713430229362004383927336559993349409297992453664478577552340413509209664624811231886442208184978760677767431427350895378875474464035661683040577282552636379243855576014792616115142916562246122833321506155873213559253523695276455607888006954106210952436464869600915818549263782007407020308420057825897552497518482608381915072342815101644597037729403030527086739075509608791520621005911326767159495415408454706184836370794030510590691088983066686171214474426731584072992162675754017268515706771538939061988904753787162744475996657993325928150733198993232566764061975538866755227438651394928374089519733390264329499435725908361074412097657370213676756613434255381989202503383488061902568373084368207425007927843559658274937992948287588998464174073265418462028805118536283628848544449138358085479605704692676759638363668813798866085761007295507099389520658007153911742687105300194749519670969480587461908308049171680582449984934653358463738949317885575972996719618266596410883432078333704911390514270911968672498449859568388560568825396122630693279556595172790452571463840746002574704760600193361967056403010099355834089606083581382066873945299487172633898763862101776193476238209997156857236927747334457056561684015865414196748092249804981060472237002189756929537311151086513034445315056412590183785376617289078692125433974494909342054446989864176161622172845393992337071735683430685604935988904639197399591509241034601412885478181307842107562627133206340489213803075248372488800259717044698766503585283647603813346190350875613604297646731231074837407571848563119362364222849475483270623756524826788195466402596676365124207180448595229999136897237115454967008751092997660892595073542134810251810131713115381697842891295853610382529293431002285583383288520492348367826679471072329837979966266460605571712289056343094459083479364672753747721873442436311826827110315331812029710766846682894740541495230314950340854823695902181888095119478218162382001964231056541369702348254608262493064410805785272575747427997247577615850063900091540241017239841968230633135399097866655335352385135190139476610422659412101733610833283845287356675469617152111442971459411949452196595142103812131358155682790620802803473370393543030912342341149418404179588219170697105036021686718475472267730686189997006392496160730650979491553657700786192748672114486450319844891564445228502039000089777406421380289141149506612164640780882947841637989721422968350735829547283827154088966702138720594982848627545221947561653204960031102690198410357856544587168333323310936908018222324934287329336799264125910898452063709393782840972506144212963233524293320362509913705520168335876691742329338850100723377022729488631095575926923797899617749651092024526736242991699358791151067209332708721506099457632145774383133810838126022961309701417418082391219197457493594081521705120418549685785606238147092772420200019730273038143080180546564647472906106573332974446248971716350601410468584910255998701010669647110031896537492170165711611564510386721237002605494815755033389008547474572128030123888071902005831350935747674124120985430844879824200936621154732013376523727769930544797039336261044676623429142634996809264271510284770306055615635628346524978419228492245146199706678660613118280215908075573156480013900687217278526490346666022378038587899893266795180519026611553675828470476329614481461630658249224517758973275242589481334002271705988450771607561221851643231026936402007132308253968917111637424486712249725277520772616805818166532580280775694101675684089721712344464397939606030243507996809090126279776156233252838087190952949389004409030113385497766702135713869688626826120384512185828698461342647437995619473239827978183563237983695154738163344167857073326484335087133702988100121059897302261395724430160429416070857711043576792482072470030135803187648662766363301300811807608303439332861910468237512656348874531808452680316506314531856102942620666152897304202050086556178340095030933083432878810738840769520984542017812520363851107671692394013263873318797807492623620341563131543986748131664961178602589037112938680557169727198616402987848318279018418824446516687741404336655355369527091395593223540801358669120015886479555628726342472746019488506773325355474709941267672323495597242798916935470980690320073613624878086485819822746515428322130610206027824419329195947939765490659431639977551309067829147117427858441706008986892698800679720379614376677416646020647781256860824151920337000532027308227391264935007730094484571460058943165508742392867427257313237294271264072327540203551425333328722459686887777998164347202672931615813414948785836556036689048879852518509540880899096234866533086468475713587789185734529155830166184412041823143040031754704409143115084756744012062932613707303005313497368334283673209546636091111938334422156986366778709769731303725197242144235769637332997167290065100994235877163037701561514571148429817313792401641770443999198333272699231261587929484487624071029763398232872495719376503877791349737665369388488318722580108484406385175098257306396649065873969944312214303552779186304445249904401221433456858762460203730041553803800017113312352127748675091811909264520682883775873046562834357580171500584710433390351704251086907609133249901293665502233694008600360140179956024890053428224186469970707878787325058065614823344580372167560689937818579741610051975549183577250639319105150620632195127199698074867294783104558503863955643445899890039649061205505042820800109063352800032232548747287529197065769893453877099462009845739448170154528328898307648847245384133848193184972167933293640515822235767337418440612402553353612680150285887774788617421273307061095637138655611195125387572112686203257191448635620687714295342837960034530740717579015722887698990836631219882053942513984591873847084530696152850921239767031441892859158359334093941230324353911018439154541901633660375282005061358342581219958986156391249180966048700539167401630396082128157646293820440958889288419308803645483589022317861843865031644105319118178371226219297222080619886130351011888380467670512630662264432285168002687404837946174902985799921237309245126560986750486287982424319495554325475425634115770767989752031879434782793524930710909401458471972177333199321777548121568382004132887811978268746966263815602600391792505371351595434250543939862236955144672370599830980911023425872817209811765570671832395114341189755147019981509086461411884067228017845743360124443022459687642749379690692889781116905512397501580978437495210230384325107254186868713233433094275180946931894384054232045228884269842485950096478866333788130318404634039965661677096892210043177672416647454025987093822784643078823348612853795114484275916837484336184182697127683471018497618412728303010370316174170061968506501951911530334750739262576363826903606463634313239770747410873690515936053809825767791936995254758724921278717303006515463577084757837854500774526651139395437723150273226696432564288843367246560713705543934350565346285004947297579300396370363979060020583597399770358813100874028757046364085039280104140218433594023965605872268477745179663490600972975766139238525376567301986208568720029158010092566380146905999458036209907737448412138789050554669385411692018950654249208062144540132125283456739400260714599485029948297215615764427885016346419992470213140073200997332376542690874735975439974968178318982081669593880341819988011427329142016714587384890067742046897035686731800463321024378259878370856011764730478033300230762221226483831480801651319570472936731021721336287252959852042098598474117234012131543967660713751530793195214524085556430998084999555528816410776809849805794144603607474179004461961451587550401901464082522238472992819016799647228475283911966050581833195970288564629359918967757598832905910863114159684848326298087155866842294646400213906434615897966274372406315416013484555426773732574378093576631007493653164272567614704690587782167188352388327748268390700171334094004767993341595160697546552271057208108146112166785211464646297337599859778497491093839710357659310499874415039548669860182998747150310911373021448014867904790651889262975233150397122184377881935805965419815720847075809069223210078101034401500441100904723500645034734006806230062639868117953624057217713110063115957679849778031242810882815209645930107955424091297918067788186126425105380820604138152944697340406672467617397865659503302504301634249864914124112424221833874729849925846540926198102631365040998686152055033912096133092267868621132904640120036944850935611337944604266558985358489768063011115157878524867105831622389895745234143780539565710894162402005416420349744021900102190506369594379551017556507172276525971816288466324476362429655599851885219782592222024270605284498061284721215166136816719562263419008465943233064763678629418641448275278147348727067973076989112571884107265437683251984088118467570202009177913007331459971120801253754359725971637853773755230119680884155714428552956718235065008906860125895294012062742822157143718911294590481551289613327337783175683700044395712146324447464745225637121978803178933374009782351469519880552183020191502886871158701936002986459503864090563505153086310908220247389457036458311235907874795102865669157324199268519945124252343892561539959974851257941537804296379069335437883754896830259179392424303403551690153476347021218812581860857977784936479102394415754725006191446026972077397939376146787089542813180317275555593550438058502348690027039893016955752511709446058766454285290063579292790145557444077452381552641329765450401315026133733288516933816228299837874767125552153894418061272377284773397539904899741098727439823190014512222063293253764295515779056195567167109605203528056502045228816298433331588392703448811914250060760705953350552943807373298933733672010332807573061297185281801877829433815021577483951780205871414113246827548877040378377894986986670537642055899628472520221684293547417539387069461403933577159357594066972592496310506037252577728433253137661311174317179802294126095753349532188605928162610015161014530099041009279133018339007436210857305575951854489524888947107554260664563689768758989511386285102691473554063823705911746188673808132761879463110898692990478661213685970835854906457721241197344862048215565184897492221935369317133575360566796866595334540550914927513228051010237725545097310726957209329147220028577400294882566732384290802847058660733852187396727843420859093260318734052275753342098181700072654831488197234735073083081120384724545411347959910808638796618431380705862715833643928066129095673114151133649420079732905081556683427534970381260893380121529330764453384844656783641275856820500451979368388932190315925283988827940414689304940746929028727582316289677126162990048901184847226761109423951210851714228176805272615476772855702935255787703499158182013297866948286212468988636218611278178710564903376534739221958100728384709263985862517872442829224376941770701563606264614765111678897646794815148603205215209006108086592151296260281718741316297763720869589469199921987131894459409301219738528325141463302961589978153575805946535562895494254372097626615646175113753082458475270292147921244889786970979846053303524441830564235433167190668579145326189988528123456494222909323805133114564147991305006581547485638470817208193263506591449592563939767340377334193827173863159848991002706826644986224793379536833270874555986631227556538301989021167521923848941346108194633461944647815435521288153612364842036058863601506592680285299904206566646558498940822002123374146509250201869876504541146478909661914767269878693248609362817627496982601300346773262383295476783485013983874457572778846111723907782149279603819004113442246849669960393590205991171459458080312194640206204353293902969180942988258105465509008091592909430290130820562481536373227524529189353231964295989171696502594810589976359230288458485639365668705667634435104852783654136479087798339943306508346368565914582917694931494679525022657909797150014822679332033616493677659482146652504055717915628086630644556350211960974873327696068676104001059940301085488180352397855776549154778979676832661089530620988820718440798280030281122222191856389835739054455808331698419848705518873926865008062320144394895910698122062492575129688955398729794329542440352863346227741615216952254221807564080170646262809791829167604810580817351627983337287185032773158520534819482960166199317236112642352274341252873097754815700871555064320393873694451663491574412144352312870344857265301497531818161472697789202163925986959334098672536701981773666523665901335773333212034247651867181087165813386604352982201267269283590435764125351920746811908607278159261184319044960961662514244185675117398643108477515828969267457877884274534508624854480751075581973849375642693044126919520530953034317174751916816628064479667445487262111015472184635846245666638457185608604741549507493613829062061083641222082535838591100963628048240544976551094181306099115250700431653959324104069200359276547741086069221384904453950552919053916225788533377089648383599830181667421902391999652362343405918443167286717116341497120814323451249820246339917415211010272372459173426737283829192074790677449245761535398359954774937586838810352183173096040511019445344702047629135955392706174486918072875281290765600110310209330104141960168581983920502301766922908015710202564570331202107899524485588407859472140045183740746345441034876334630157399050745160901583483213090726985618412511627442834172559524656039803222142702661812785547952227554367093735779211691578435488132299174044609898906846306887931218011492363516673422751378923546453276736690682842293946332826517410538677960355590871417857660785611191958765742333286944459952389789063153523214149285569728161593818435085426010272735054065215548873341795549989713229663374862623855696901519736857284590506776998635143250950787950138270707886465268785788352098093399543900245933715754540467931840901790070275373112811123040732654509745447612680272406168658421844241929423749049793487607681801912605578775681995200942417310973345726167808409938333691726458756322632086458692544990117602079494882144235849727073580125872932661077216423582618685052422310016804094432639577363762555217512140294145647755814244885892616894269206521756951074080297332125905097526773851650515041298068354684011668565983918066266963951820686406861827360845897199272437937325763408110519469892131334990797946932811433545225517917091575895690914788044197435992709569331424851800393263531567570421386825155395970494780196105343760979325354804987584415397077781739135457047484970882392800899853490097291269290938907569149734045538884384916919036155592584542683376424490841719313077578109322183063994917224751140258804912411999282845244369512199289852107606003967053453116256766668214356569876849870823890816150619017594607790482006449413886448380346832862273285429838941214854699824464802064713597019391561867434857305403055659426441053303690785036586689024115178269190025662659855819865840080976981242287355765484962868754300193992367338113331360654333825929381398381947445971125145859306244811168522617887038545265286792655675792165316733672694982987719362566603383698421220766804039647719389877545371014721798337112570558551625314940070416769537610372643656664616470856325664191642561063857710055532231166467209770928704755059975270846360970442997147805450778414093007728540432002711282477938349811395120270325846490020432452797835417982957322664328846651846709019535411829402015706703748322724798808238166032317875621925336105091303333668641951941755182582277320871065099674497564359957732796296867212642403396901746751092489419791448875755728671730448614290476152845322746110972229148840700767958842288298170616083036143530934456250776605223197350097231170042742967764387195493491144139460437466053578150808684802483584372773432799816768067908790610754484432838047839916830996961565993573639954433099815114699161006968214570278720816687034898137099340763122351457611422390735198163031453989821527987282275945609147838191507563674532797763559208412914135610444324868125674278555665494472510305490143398890722267890646632785711423553667128946182827619288387331806961216233954545572258859633749022959257248677949552022668700917165803452910612170081209210214314593826579430995438909419372007840668966742864267595735483758941051939599150488208825766666833767087114865738369767999958876186145155905513784043698841618862276584211971203760581606157523944020994935627346567473369072361920484253541018595336090010111767745412156837636283455464778069087472935775859559643504764090352865733289545512691106445783515120160590967059644953155802455185457906482054575920893566980772421853985356955639134076435321270490100780885099926076614433945320979494520216793235842835722464473307562017482121922601955285342648050413943275938531022099427904466350105443303599880769010701582011612989885219166435644350719274195123151588817956266812355812523925601069926311186462171725523694983151909486160275771232151379743613038186909885059398940450657195690227010035043260903583310598188362623478738262552786883552642894618933615808487991846193989515467154869628725197751106561824271752369229030404518419019283721817069872364661471021776914023748821931466847693720173507824331121630525969328290356434809823436692564547848540636998674084637738973537244681484799359086012782467027462856604784805522095135757044099867508675759068555254726807204445261870326911779884557999296611622937464610207548189501875151949183145581888911831580030617018537359081210083487577151004698222174384394808534087215309631492223362946794210880354767329684634095230767537546917152794363705558203284841996421770400986098634624297133537640322098448168922117475231170523333407106841625268695398080901335730443373050692636667482131635678030058851478914293703688929668874457484522129932768131759390645460034476399553311305660025745998196989600430556408426218022073197652196548661741824695839135373979950133642347018284985767269433337784731647119024752444262125367478984228535966014962314281084060998735633791473672541124556081540103369121383538270116561678763652503541545738876352171396665431776262215665214958709319663231640463036997223862747114112327436852973251404846496488897483218042608046455728289237730081113934577874134269081921494611560432031464895438404536267704119043142634439138088403707779188659412152773299039139119880302790240358366332213849892146393024885027918068712757365936192250185908953300855099340733188468766858628564688157517380897473337086662651715498539989520822797957859801701528108496205702711166388574970846774141754371717439928908500779890938886548080040350897362713924274396602854911381206848399199279217868670233999094181457179643015252432896895511369871489423773587354691961672192765141656811634540688249047388866191216753124219499652676156085091337113457582032501269017088306485764641130332042902197051441285684478937570470150584319850539765570198315683835037886509034675763162795510795011789861960910469690092427702082112413241959520044157756931951671169291704231590037169313553297385193408450726740609163395340586544111924509628652593888558427029477019399999370149281501684791607992446834729730695543101300667673139795810157721768962545177965924581950025711424727784555528789726920999716878193042906882800092913935219258840406173605876403050332127357677004105407733975066130636335685867172545376905983945844129128907583378556826686650464019487324213540876121883638527056897013626496422859524772449228905853222556296547619094682114302508232841573148896941691589363203133496977687978020412399556795258057383949353406227639047431746202354878794919098242868614690399100962779953874553458699602834498915354302910096376612730390013811720113369597279374028848395685308157432861270097119302863492168670737552683152271503360410639330486116040646900107952315559912456140757308650129877291949340037703100388256603113765388946301902308229931271336671944944659647718832285976063356026451352594825337199040546638981874195976032596268552057772472616745884866788709621401313954969243959667131261480400356409744518679581257311094799791422104992528776897981298429408675638965674216962037013462597997075221134822225473798992339644337135186833301534831738414277970999428631366696341346389544353348860867895760843805472942274367120024917614357311159503728725011312797571094631497588955383976257309992850437465747802806428779738490774317006843412887369596041967671710182694223605897569470571561875024347095703796386679152252793917364596165728878070272899581287014697556921393536048911928373686617030794068416103269023507254830802662010475204669567748270894604611567034787052263355387022081142141071357385372234343171523914908193615597719239306145549662391817053085640374512081853759359387134062292318013859744669847045504579548555568729791877781787437347829616165287541887512334502268187215133527780311946689941039756785607725462668031775953548958947996707837949765722930002195598356205646430592110981864605065094316030705972817436270727559015815532337399350660961711318282095624693718784953969357711220451533111101975319336288148789799366107111401768326535225085931588127856865405583087138512751275169668428458874225040534389358589410604266870365698677133782889265888183069714462473133570314323150951083267734573813002541339225664249487348836719762166445771429874976771472310770173145467538476793674299406754401560422157715615630062055621519990521181112367386015672759851146032721406009151194990961718820140524327262719488900353027404397053294192080268131098410161631744763787209304108959476661047337757862855777919443107797383356790755614294864719165527992150927566351195103430394503701496555822198945807110965599408995892679183496825761747960464974229876645911895102922488342917172741142771680199296234661731707734367501720996972762340620000039089905078902861427789106052179976847070658439551709815085632886007717771982488150659725841713906771330923455184842418768346297313699150602066777527904673892029906592611831603924572733449653908230640111682933430593860544119549093580465137987537998294837474399235007091533916874820118374872157672120426796226248757851291786530206889474841286609251007022889993742503961727168424270405943252651828895939245723840683624628720665223099346062165481046177099323192007316511073814799554128470840162087619819151701081798141938686053579544151661753094480239563416022695676424827241405891917398320266962390475801858293759860107491646497178499302132007161593875850108476798261294122780754500770053641742862191180852063607883778218636371156901249051935225481434331966813819152790904661829671930847481532020191985569669430623673027952782139227438769067710774931895349388863207829750389346208117112685802959604111026979333281833159625966890613388199787012598030413643735440095006817249032982651661338110942263863397361168087524233874314859073066421516948533082391455496196056341429063660195924438694019278842647427548863741337381330534153197550569116107104496328301304806108538699431191611937512748105258064213223951208900770646025654897869251165650584265773011165430488315690503537395754602191278651348575118700855310369953388485733480475618519556196804578941109936289341720736444797113222231094078304774333327088682028763820814809919228160595756180880240564997258115000136900660617051511175540513788947458014736275801669993315007031878077054552977066857883116307756743065797009807312396719705624221928827092522770027286222588201983376147419615787257894900182008133204753255299545316396000957024146087448950525142246300317868447698928458549215814424900671334251701285881226581690280882033761326830587695859445718068673661707708438335775318858279004104056307112532156532671617587989546295835311667537461734340012384994253792427559153667322563671829422487423932575920381204268759803159817214829205271112789698325764117256252575582902320775679043857526812398539667339392202386966772591069305022211556491821736967361532276182954974406523920287947755339031252755893345408325598241892967064850814854852777529272891959793339474268963676767622027639672377680776993766702007374519923603855593111011127659756809666393749120051871768771702684407896710104455607809537183846821370412451312973932553821263008381599689916341833058340123417370126738196250761146182081015649285399820994103024907353446861697831483568754584461922219145465640744711041044563343769857180440394759636401823358118332408417107262280165741579063426155219199271876927392209013559957155993430907152400580241397792472677412955027235592635028284454971451229596517165432018986427106079333329182381607160210980168243509026397890103294619687013411346171511584828513209985215108604684409912417240983608222139391276023497238354230415880794837703403120851978717852268126619365135931189802884164885775817972517904214799139409537960417967035212120070346275568935275623764293560281114379501216701828585190920632559691873046398614388106397706054757991279332373037138555598613972434867761922017871934241942391447530398077229835626968796686590785014036920705765200988312991825340279902281141472683177238111768593851750557070405108542419992901246867308960456592002493471750360930581861047813303004476787504831317840495078684238842663847468799297106009534735726926240986922256727632989543432669743552033607125934528600006767204425104625434067082907453841778044496984174045608544831412032000751327561351204350389971010513378090250617972793075285095139454159601434731452406516248960014049936143748959482129585146407406850153172486197309601317838997795873266835108110768809521531338588650446938259559990718706611166556985317843746450905608568227889059952589165300421553568733405562403955258574620738055115165050364555037138987868355564372988897328374920602617845617584090327103400406536265401352535204483469304342607188376172534167215178159099658386673522134984560061074890488149330006135356265097734165119890657596622361057325856667912520644665935273854182955884725733779327894142543338434897071360903261105618213535570363183808018066126230331837498674369502600724768194728371872358771244775726936168727751714671504290049470311301187510492454590828181687025376044955700480081990848747195186731576334000111807221732243233376716447513136406614599809374665987231509197310352402500159455412067188043198807267111747973888202074930299925662196134192759452803674083000591732195951809032166574144294953033964893730242438400709460588908147536718274636155437301030326538860568679087786572825583010797940786814872098370341216611390913141359430720828689281567157832196009594864517323208495515093688820274479609983543256084494966917437604783485971996545447819931492654269901739339864459380745845761047996163375830664645754139247714480060342996079421624274943973859501139337314756288122694627195810134927853619179209705584823644823674389362533692848711813527792422350193647000668429841988911204406755039699249571182566242404421313861614439858075888168216958331951622400624933913232166359780375685648811616777792988280582325704438566346504733575896651323452648450319606435840795598376237863858127206756024704930622666888209390279906364528255829400964797796621042423400839213072804008699389759373470346922780723101577038853092604922587291142729625336489502244428810797330811580976938294732242624962600344730704100056043962297630485310271199589550521685699370540430195664205419189712736126879189925731150894696777933378514303088872597870863241968630036539466879673787630439787837600348408149762997908089731095477852193607512603988700010648733127802955606056809539332036215318407920981640925451233496146972369170778731228795267017252030190143772181842076161218919553329509692668120773464017519105447351083015089524095918942469976171062073297390111666930303405319889069455210966162520314374460036308425880056661548679645493670771185919143552189496350555167996681254224717890324850118575472528834309098009257055624707722908500685932150185373516089512497897854648367978198357333262660852069406170151027471226733032700489368782548154241490024387881179009735011306441090771361703877513156567378698483905279962151430144840773092192791361044511603716554196691428363628453961761750661864435763435657964942781211355202453743490132693647214850759544247764596949015623415669355375429066333394169355529277193085130973744345670672905896032204383848585037221749901356323751025519800890691382683668050544280577964853447921608307616219752374691265251139963384846492709855146551560379377623940916601484435965614329860191549924351936580404958813463216610934676959075588584474126067111872528779540580184392255130853321440479287238384968817849082603294337624693619935041737867648823698113714839030799693104305404083450450578753684198656734918059608628059270514551961725758650102016738497454048242148739801687972237809501063981227743906299086354755346367213297969749294997607588034397070480363604195394039208213125944881557543638014390606104338041867234227468990034708729963794250520859172383487188298432527874227596749090927624121760976700713679494582277404454479798358538924972653920644520714770443447206660324154289858615630097260356233566105254026347603588495612671141643135541335730323521050138064382284066946508426603078863462091262500644961942115459619404964512011566997234028951965351929510478052030856390186897517981735898368921189872204485392232103518843302035884826665018807271200014129288412006933367674637449970557435930875943103622433575581007124073913322107458522117765081307982431895355353801414845743015795495129249939304128928029928913237442378885810280880714675115970659183148575897528651864468930007102071087827581259184759293712702708305566754200093250684963450581678942552810511478734170422892075228697353495234534594609739436507700240205831105570865976904948456902611784354989670513564636079208628343104006127408943145104071968862236804923182318307536015721092939796350132699115818641111364689075520620052174056753962781189785217009192479381361807667974736286615802523805627977422373248092149458835571453120966217346378542206337700017958117058630966089603282761634511163805025034195749205856644510024664991207296131037930984716450152205588755970047133853784479016905573940494060830692649400537692389856281217518700756347283026258970942091765309058572432778190165063022145598145026926962732744986194962764622308218149363382190952259203958226672139593627992171753841349235713530336603142600182224799943129026366896333228526808384738423349438036684688450163719562550934666483471377822118317341415932212047230926682051327492711475540537959201571215535160765439311649083397961861070445513628346294135373230630210826436977238717204786752327126053073403788619873121971081197427696881641893614173802201332835538351243883574492679418801141824683312203371731408258884294231360859839626770452719521633996027286964743012990620350724953699740246053882501217800285816269886937126200200737963912397666504246695565755828961184168567499806421522711767112998979499203992003205983801196993437682390499519361932973930540194276629542953324004734099533693826398765693715043997649842926198605146877134897000607939937464703827156895757966629083877708097959305668136923376822733694640404292799226661870678547650677078316435978156712104630600854821263846862085724652589630919955715580998821653479409550845578000863773765432196582105766426105740837758234833900391297120183125666444782184544083141060877758997142553572712297233971740015423830650979448248895067966337216437510384909023267019367625698908387820891639792551712573312316217267792596105152890251908911727469177272020107675423275400537758155881810307087881401238646185116443659625196098878936833838038772887983270355978762804259021375636294305975910398533672993165112785940114912162018730387189539326930866429740880524325499596009322993475886680072766444579266314482650847889384854369258622366451456110872058803963733952973205455315200141154078770672924854810250460989634551435074480476909354878531829002267364568048941309641583357148061735204525934085063888083580759012317735196394352138846361281549726784352458920221082333398313464136612040223974784618364853743989737581939982224081913460808609225935786984712827825108157906935008022605573629981763215279643242097396142662547350509687101684009859217428223871807587340436246731729805953857370644258691444659005696258357751505824514840408662449048255993189785270350241619067606184134328706140054418536592174321100528669576107391290296731122758492344032287816526787050412122698363423172933952684457036258207500209515518652649537505643580849760644316108841538189092769356938608110332554129205489782940079810966338247444030936923631629841421523738437151926083814582793038993392686996428944623637142596153598927438339263987791053711637462737319614672781389090226669384719594905334913261477809563541328850973085942807948243035013222505646059023128956888886107915466232520365247505466116868882239500881415651266636421787046783346460551011384786966838092657894397920120568920089800827360719455790614429100151517563201728126724639937298804559311517813995521148255950755932833740344167613433316628934096059785619309714930825976624805113061194020812164834928312819902110458074119489638152945848262105798965792206690964679644329635901776266468342457884932565710168221272601781612844092505001162841835374098631994177993921289662272770691672935582554256098995138335934844862444836679006121489208096722465755516031228349613431701136095310217938927873837966822553762162651854195188621642448554826404621192770673269215833976201408482103329107159310979137024297143147440864128309912232112047518917500998122786689406665723475518165333504242175061816045570700086759620400253598997070018135077441433265660520314441865618566029180696416709422634549095266879476739810844968036497208453977945417763328033312502982869334347597688377372861023241873462155992530999043110725793585741190159173672310643816021445271157015256142478073954951895459064802778390597998369829544402544870620083502276561077585088983723229727416637978946170560090907509795637594918190028135678743022265564644194089633347780265231736610386302641405700034004733457700188513665761489963959513179832789189158407242765288346708129861599288766088750436315984990091279361335452548787119347647659616864548012318145400574238249648095185898784495525584999341359028790101096468417107104787853532881825653187357924537679628245000396921010990657337613893672886480631055564069247241589070513614495513306741895749817997570854883861038370146439120216612444603720452142814055324708451071345253431518291263958767837324485842189820733776224943476359696334743935531607215867651924498655193022049699847548006732308950192249272991426675026157426046574581051926063992803440708314956475761234269145573289147637319886645644746299371962173457594736364841568504475822712872432925845403570610254215869678655009965708635066385736703442633773922787607943691323144350695571571841321441947082863208926764240756248925542888408023994415511794862049102778396052376206818332387698732064670035885695772476097945307991417584015095843552657405999588629095627943195941473580176015004105554715062513441924092505969700542012235397249631438326062973145333754974771332472515556630206442462317776201499256846773559180292140548011423343922326421641339828004227056968120485502889689095152504258481381628104923859634444417430806406835390617081128365504162234675780182092732240343778510710281397969667503975789667958965757232450424749544230750820807669579227712919720456472978446827260476346953371300860532974316056775775229765515541836389643844523851130546740689755689388402727973245300557052411782973861786015031384485908813735095010085664137559422735389692982559938315777040988830469415840119513463416907084772643937007171504255868634603897315643960421305971611014752788403445959470956625690443532861115334102738496325568776855168525691040598297853847826247067010385810598684233769166072692644372775149845678115276935669632051100562805852405579611289767094801991269180994020892635941187768115544135951466119110525151289089668444485197447592099394262326256316564925367628070571083248862525934052272835937172314639105733352765392340868392718226214355645652814523663680899004778835020587757443217817060973175516913133646326679466021605408314322372182040449059575365321436432331733225594468405453517432149955484735129045883799585170486144860879398793567584361243471201028120721942493431507937063746870923295983669560211542149982267510806254907359966042499693110847332285068674765368056135673705354113826728770531494864635693161119150875478350629277185452946169373640362206048420238966392262435165998785107732432168759923220143965823068704908735369973665243971410796359909383403910580789848993706498516826472737013482402885606393424319429092799464279232206078616625412082204456666429756915321713505654459323583372641249726302692572783380611648732747249103224545137330871783664623888619687741315432858244415041396529211052923215453986141738098703293082885939318065136561487016155695791055037943560872055159880075374962577394277021142972421523802185438731677466108042126156221534594614042894922212332599480633971180697807929300432646819767508555738801747478532951113080648806279194406473174286927515014403557116469218037449241361032287338325738873701752129975301594134654802957961629929036108602477677233096755170807050297622840599638440906816410297458594782956753986819349761341717021133311210695727031314632300297670060820767233636876578583329344174132672002753963745477019325081530329906200719654121097432242216415402775033500221857843281494627306681656503854222723926535650394894634413549626067863072387183867190974848258317315574547757405962779466033697623669459167870592445054181645663623099002964281306766814339925816897501001632742940504610114266438817606081815535681402430380867176771991973188047733971484075979545216377208209896709399891141140647709986941633650703323952801403803182732182796554871532613421767521084074072884499963889336058720877830392050732278532664300275374478657838272613045550783531126814622721312686659981822912935964088456753969621157883441777016647118096920213888604766813619945350619863247031566231100273602009974148258432410936706455489985602576392830494159224389818339325160285676568203970021958362719683845987441189220062957232005201080754478581392385448473268555002586479688415807041127769222273269233402014182566299573650818568242167450162660922029161292203176236188696557860901422874911949623225171122687279426259697069100628599744130036206572743697480739057588434570762537332285968387798630828961738786427081972822523686183274564702242076444669357967700456229980100909864090403715805504116850414057122111108141034039875257746690414711227969159830630769405868501929606353800684624212599166958764070689693518409442988911545838034909798989324398968676058193778622695554536153962526579548723520757446510747659082518756106349382255762435590799522218636093049201084694514169523308220310741568520557142604142015841206741770947824977262180067657671918817018543001541721282886141590957318581726061718135226414296962128026104737613015391248000328822362464325619799650403686642508606743846419196209378524697385975239305077106381863244145947007050799039475546366204848420536868967586285085794526284927334649550447301138531402062170418266615085471453079168841816510715483472405421773103118566764042122951622969314497843521235117381635354176696220450511292279806080101918996099814927306961725081686347464091025278886829745882407032646332327781869531493640477952620208829642085314177244367565531598371975780607348367143663547277332612509917870546078471914224309129835450405056442083193802457472005009876304951959849193208724952142041170578614688445567549265354600452103654756223831029688236708936016879358045467472366899912109245382280483769003695814342838645012771811790934861400113558529953260578278903635006982487625784011942832346714177246386428176348749565239030962399189326794201701507278474077349038125146230601334675854984699953068449558722970174127288642314119252678310334487691980389533517356749325351492408065559776539164275661330503677247953232351570402052986194221617458367906458878139950777690489894773087518955092915820118470424056105268363290993968838120871335370380543270980018082080815182929765956947805931885716711812545956536415305953554372412166475024402802495328487094984547658578676761639313333690217256624127971980088178220013794380178510441318151497866304683927292012634551110454906045276010628386630484818500536777366622532821325867697248403606183804637351239454157304155926749139971007065014892014796749888023882013570164265970607540627362988872054653053442353801684323941500146613999738043007559548192614168522412349821711018154630012391286200346624296666224006134050157050215670290042399642402334424330244002609774789656697658628378630013892296019679125502362585368030583424764922855107083481811627280829495873500497729633544894595912311366746240377773205327074878400298767123431951386985996885163970771848501507821452669287936159434781154196521067865999829013742165342655884287488721424925278228251262858586001361153745517110896323249476602291008355573795307357042388347260195009422766922847793280397924328453620737280631771166511480034356109807146776477657812539366276140614313534920551642518657787740104614067378768679422552208717018804981800877315817302528325898562608242347668680342300534748664336134288002606477653475946625961087583629176450734197580277836362627180907041506715189078580427172483263091776112917087851371489730858960438134943129403232527510791243631834511502045154375027136116129245617175102593494998203124592122463386817331179865009623136515160516166085798896282242653944863080535358351671151157112818311399858897509379688304008658880377501410944928816652787948011119607353715708921942037656943541275683055494745138980152569985586179313824983742060416719747986710350685977589813557136042084394977076754616299096712279118333279774294137560892724786774563485163921978352848052288456291583578372152584442385329438338322621914784864382481892438409353617016957767269812137075750159333809207754532151127872518477344717185485465786506971970105346984777820673430974138334738632969050336534039788978915681754016633316320011715072969355023558535020027109139571666827618615080399684391918064366806607031142454018762409820531444206759401062723371927299612861522642772190962660182334858542175645327475857160862700733504899927434211881708271340439505339715281278817150224998269811946762401982765116315915271524019055528382439144929394516595260115868326201747160696174155845534400779580744382292930539665204606314061794956438129730798023889752315399601810654257899766780349403283925775279864575275629206845610643504089788334229868763321525490811097052561452621936399217143457766702777516494980097511592902932143907069579258573878549086248172419254674368795704001779525826636079753649750110404468112866519513997384760519677887202271275215142771554831080119319620593439242926178428119659404647064961581496947567168161757847448745719883973241408397467101608920913547912600177219140980492486427474614768347992310065348342373651457111102416233852202814098782269793587520118420540659951890067943924645740186888548441316033690437998335335267683362425414920452460893232010699353466538323093518869696963413096734527304995964614479629858872735935200663375138830644970725713210841054937454098671343490501579712521696735382031925933077365435564458466663788196017346965435187699013658412414225020329153006960083571082965093976968576582528208866982936112752083451398487620526458978472508963898830695428012764838475850628551206908736182366238641623527503929790509611307885877654951535747197236967814340037030126247325882429381294831305036901869798407499326116820827077590745076144334107684620810780111877228914126193929108889923648517982153822431146749553352494252398194273413710212237183795692751824530875175579626663171888537300942380597998870720643512526869875665400747877310582217981488944112807393101388570334273621862793309934956966427454629045401696299987922023906758552240580207221113863185011107063726419057000480403678449787598091202628554490560445782395799128272643844692205368606594588666768488719962159605788244342211718529286937116106385998590670325219343310717833666154031476506844746960013709918693829847276520148351630846085406730240075454284726698158116780734293827881979129261667364462727965201533156771094646779091746345867412493124134068310476612401284512906855339781831645358026876522497094912410887047199047866205674636716244008536137714557330667401464045174935800702807343334872818464914088240576754827100775091852792815320294384298749091922026900899345985740622718279334865936599504676193330998560893986098353836521152087363145725966421459506629327944132378081560431865138192017927161968386740538235149886080187743174814803039574852705571893694898485011628066957654775975866629567102880600446334912176601668215819009700598859880770351039090590292591762954559304974281675881018624479543105728444310260599830254528241080686425944362114402218453828599073466091169581293248364849615521834190224856204266336442159912326768159101098860528755877736532620010212996867156782846664723651405629501239214426436320391300103180033060313997250366500749753787413779203955369185764606107108518919598380757891774555658797520163189999436292845508266519287713437470717746712092845495389416284482630596083027483184176851777645677219773655031519665643962510787929380823135354633723224593508093840441099856149103827178690166031043906253002664293153126080726911404283462387671081231813835302806990686081165970396346324528109088176733429305625832224206659186475779680872189405293787287660539350564964427744448615475491656208979373331704211245838019651020431596766095855069241333078628474315301181166970327981937482199570890181703453982472660616746393011950231511733069811225633759061093343761371593867633565594461247113927098117625488340227176423040527634000595759638136286843524241121197166834821559455426930482269539955720201686953990174772683457230927330401806061252312529135540222759163685723659329288672566596536109460502628325452717502753212929373926574326175902195407729395721808562284291181989551687525255213428305526390982477952756504846866557452523000545955705660160193167821099357839010372432245266102923456680289397119702364037635324016247716279574295874550662577396066369645508530539071187824315403898704347565781530027449457270270558862799442232462699223093105332348797405945495947423638667591658943963702957247247622725226247955389066891899363028333093928066435328404285854613592326336211641707351725094653652690863433050088547312744364968559776480849346185875528108366567770456768800472900315098245105749867994870050871629122843655704230467563799510456980635646006677933871719552333108072417338670704865202710312738436417977557035903176570741698031744649986402777130754634903577368809796880686464609219669544477866276965051995855781564759696446687423831303437743741170667110483855469761023483712894530241877423341482807668680716413879191067957159386182748832902650986393564698596731000556872792264602863341504085730278548618892518218594706123648381666504324973130392133788046223635541647368961047395580172793506721587748415527213699816877853565423110414977538233214039239121270071311307807518999279198337313991947477906716422644213671739575435928490013794756405940737737528783838700848468040132870936265197437113873513647239824115748042370226632860894366707485136605788840216600738299016271695394253548769459563425313121612929191768884319261192766380111653094437037162316036027464441554922866268714656802549259051419170247571112267738089220626603303692655153861525209603648491803727603902983880972827420568627545996490737047941532376832901960900217024279623431123822359218512233789212648563972746392395470266061603012940233679511391061132408570307588286628109069079991096174799668066616476018045047007120184146628137541963110512291499825448658517546665724327375700470850769405551832616026956447193590277730818211597409249030735059086861712702245434777532219415514520365115051191322850333360098041793292001834787223165373250861698384825130997681383623527572820710479706519605200947262720999389094907382179422798392712882881493722988542191122852583972555534716761592046935683876500988065446678728292991816090008420642272183795335572349591327592371450912967514547364198361313378263068682085517821189967507143425870143435880397262507306616790520650517192595594357450303928615657920190428365644616220728245725407430072903313200927310010646309909122416458791444728774028560102030937762504194610542853345602911626896007137015466259834639329659538355528948822333578758041472438903957992185145955128609538086897881244802584211401501943779153919448356217256932085335106989525440093218003691640124879971433881182130037686548070792234088428093357893881200258996570986786000157842495031065398877896397449660643635210060850490228331856480452240275571438169146909395608715075577523218739967143053142168360054108855465870308661261509421469672518102982853784080331329128804896808628911268309296928721222543612493100458626644260588352675319506062593844746538586802726272024263609777046284784013500580160902532450330163659995631161087828360216182206832937476678147481447476667057276389652726353244300222003785065634219530369292400311664680146257492335998974765532515941115120448315934054957258014277985178405399421778484977316301930720144477954071805988169156617348412819207649931020062951382139108077266041481663229192783664816560427262484575503418364755855622241128401965994729995394651005579500618787596273194674784550046449942679892326962884537469223739947531250210941256853728389130984455075635261104487239975871178121070923651514022647731143007200988291675458987505715474543941417606511266938274994987617327285033874061724121109990536119439097909101566603901766482246798518326337811958476739824577377501871724580450760918134004473186864773489688766261000345089827665154315654894715969024474991281092432347353046551446714166841136763987280625738894198479987440234506518808099011253617898633703569098843401067204127550894000298076809464522483264570133002180674298976616517478810853967684911671984848495405166804747295869222108882395510407749173727573743476724884544068317338538735133312167345155164954783575778194350084634750000001097129062288585805024739109012100807239014394423759896153644971699526888389700060040530824920001712636997898901206381034728439398261349592942623017644223484989839334652585460037128575843325457633743146459112855986672188307628104283171224552780783487757711129899777383791309686651091366495971395108121258255571000456522535151593794347797683503682178678840275054609568656762838239342057152532978410611591574002647555943687071043009677635376567236969656594507143880967282878083629724567516102021624934655636135007559886665149433166709854504682858461252567462562121158294580632952888258243395379135946313449236170617403338763803388200887655185391963127426595950467395490181734723843547746354204301979121021079056064473701675852180380009282434925406395196410892478424850556468680362164222762839321727604510227566283817154829357767263104401452890710070566015690580110443000516177543283957195148821396199057111760222641982101507832519685734498127443697367230946232933629406599049094625621559994369501579657022959588020790672383328570874984788371553856834985413029788464435581847377144503073385150599497590166031445082683692288098549678729209886951299259522251720305059431270481992639394401995426806074155801662379800991405897481871598181589369847049596245597051378545573393515821449717008898240840435667099966359263070762836496770260194850401148389439332301188811281355425884349282086809452972923206864879067788713935107944020517523141566273163945384513821892829351456453850332388551360637718179355833639949509496004524542035309306761705397981167499220965663407095364659309323688621432079750512609698843169962563003896941977265789812966701312783547917612326711314301329966662288926940815772538236536033480236740562062755940261027896435249575964973005763816468946060951665750047670690876425182399195514747627754333827974075042420642499564567015355461972404543049983291372013491818996231378348073029186507586967936403266947720108000231332852737794077419953573787001292315766452042153850970261141745079490692457351226547723999161248428371834156204830234520293052740732299710060813303408922323239641663094818903502921850276800005017712646705470137413160810345599889843819477664367532856989651165242023818196658335517381459132850186673911076367054750685700998875196976651853392290170192850729584469095930060061230834170941342033277873526542388371156534448549222438592972264204027470027229382002986797315867405292597900646744794826691960566154877499386430852509207711603312306581848062010317071155798654677377903871126675954558085293626337695146568260611536540789622791586045154363776069409212082855524939406748882812893484908404654764239704439367087686463434492608076080926968708195453441539660476032540470822230884399222163367449063215039888195248526331941130568616596542182041767806426273234885028996025052693156299825449734915188702078769854515280348813366789690306935756009547740474470709598586577238155026271138964087885486793550578466487746186955112287163011723728532698865047913692962780361890639133093900208219627454890006642871968330504505951649262196539008696021995640867095343317402803637218958396942086100499162472576149189910748496470466805515407508508511417869091647365232951166420864707046700956293225491238837784170890622052452426572090075536064322731461219670452114811503416513751588334385380033573739181040386759320494196836099949679443291039462535341291928806029599350934061583179333431050271891515085863271876732905001142034203852871596157267681060644484772404509479036775245107934555693639187208351493121900215029992652232988081552066647066591021942033172583527312783421466655999649972659650033965330488042767052000234250844947115930031453902948409491017193520710067570225494836581123475391704222600860047510368731085452663524946959130231236140871356631002693872871317622777336775288902306290366275782197241835246052613343909333534767915072597956866600309385546459283933909711270687081252780628996749252843228008776586713233094326192436773147906793004867908502644898732362164220377171490927899285867128892659159741413175684450776041400187688873329485547279714535522199770225019330061486280615603318203906688767420533296759090236296881398589697834641815185601340354706079104692193739627262296375751697825509987081392366397416942297732998862123164671371687536819604416355002105598165376775413177873321642794455852136477319934362499521938583767376101321277422062421949750007663329054305738756136721304334228230899288905140124613744600983785644583612812112236893036590805957876272459898599630400385100098726132689033786274906422513169879377036279060236655095065557380986772907595697662901291475867834602644749374978346989223844688263105703898070445190960733570717573602992930515093414099042783401187600815814695025047774768029252330759855951988220702898174520700494838864752529117104362806867679158156603400753968964325072492346721988260600477707082431315235694643013661152695564044054686241400618367198275464161287081445446290894034925492304081271717173558473500376206202313452243358702927578887836824984880345403369519519196113573776956164294258456715701319122699355194236584363497056438440233201029102221741546046374951812796445938528770899749116179713510858454860608933765792052335562058961863575091668520781676611727811403694661133924627036506976199749371716645483621729255155481277156462609864141381973561950200176346532726715392903241154128922256078639259968307648197513122429510630450051975610324946119806098309754553376558872433602273593740777403769013676575307374558139796466942400146096630908484897852444671990202842840780191976523222436588313736385415650821543185629493522523903585416098118124930893015770110005434314962416324572809191711224759658828836189584253418735548749057452895646377539769490325289331296763377695360176438946793671826125880454385468049167512510960744087267305541885399608607169547498515531378458334508288018950422295591465359069051575395807350315460867565253478854576818980272128306754518785415078350265317115971133452331211366152185890776839282253410339898271565969479057299015119168658823664951940280867030481431512059323357045589075756406095668996090177937728766684152317116648598732293026855208529214564992515576547979213177262772338299820630209355723900343499911598482903078177707052705106777606486131762772493899441261921597785677696576452473522743104667624423281360244016463164257350897774801824143251768583307384251855319130437209231412533446606304524199274287652039021407374983376234166181769439819977100597730075393739785447479960256523178432083764322504524682602101699316802098726878883345067829742198956466113449061093834889138341998552511992757214765956206598793667630664545878073255223510894048719523073798686620242758747092720138673812532285651360828720736470053615908496770406442683547601920846768569189777604348245260544481087744061688476244091094105325001887728093800460477222928898159192429748174296375747461207552522871818456042060346709587501065906160208116444421486649439443419617888987882001615338473676661657140839079101490548851659822630878787990046914080924238157939314947212771024821286266973502052280017698010333472301170268727158458657619488871781899292350968944115130915198883651143682064938224279710161165429521279006446537260509527716699602859272999669559446520750601390318393519121386154329970380055697703530327973427425490563432351521280840582087130173710960460810231872505192472171788377970339692004936784984677927715813682019456605203643219137366333723783896179778058601028247999892372250657107531926643840292602278004601019535742470128999386208647315522337763496022218807798631120324771307220679721719195578718651541595617291894454366652914615452685735787296890138791219549844453322984857706016213711365023873996729957038255734233007283058479043888549815694569449646842668320578317611424977726915405698916175207255179404703624087421520089217960117069973655290627564945357917336522181332316167244040545670795214744496415436352399414138601196330627339900765143689606868224681666351464596221036005518117996258476955387628236186024087521313018695359248190251917025897096628765959082267841845744802410564989221299052743080507034952466387837235904117800252787895591985325783911780456384868598184310550133856455863143727274632488804244411008150759889013140064609833991397106900457494041305785419731112678179209736996661761664712877530473961407613189244470314981407350439440820765249981946314175680073549310639606646417432708268726604582770484492838411801439053015954806116126581120889108355676539741786115845481302703037402640910370405481686671041701283834058917201554126190082429323983331110846451433585528609246510021342212980306352838091329196657698428312329638189388631782372779798009891577776452264680871501297517345209954926160390889515966554092075266062781360153120696553664438264746337869269789954473669105304305666079664942477406342322567490470115147866464392761252449113801776851035208893273380582739117506818348230687970487662301032487778423489677845485190904225308718939679474970182483280112715099916403230996984036042629941934431021696205913910329813063646975902365453962494794399205494022297146018825961273625428825334408108439976764725469482371884411089233008318074386084945430410266179609046000714861452862148597670724605167701680821919459565902552110796003188024644818790828894923391766075848852922271356498530663664749803847663695219751715251047090420441181767091985023343881960098092022140077082185751946265050981357355441295042247506518388421746985309695129500355497973849160268528842801482944898683377016843128721515110125253832313225453019964765197939769806867310567745678974889193496583942130151475440795491224148144436071089417370191648323140816341025041671976375632912369997774029953152539241296708151757016680331856576525102557479340750194973008498175772842219698247155476013560258355093666070224804032974103563722899366166289181782270463057282276672424253746785076499445691220246328989349138042928178263003560358711615682065431025840046143796521554124868449320896018917801579474096390629170672061892348402520385412978021847669013765122760396706300023142187107301537678519192579386965909438267457267227067281072418787310734153464794808853540899862682456202309650220998668541491056695405297447889070991248790648443653753195186880428056731081337974433262710656846387732188348560913178533618044915892830153928628000498161382735523887934270432634534119754000549579852151042359347665435456408573567097687320266368199710043704283593751295174178649515369744131735947847657252619473393194006278273660286871662479878261302230386423072037080443393727204937054674303417277490623847884738889332599116270214164193949411241066469195444110528117890275661088153896851518118511357581193580156532279481381458412010308070094585794729600794088956007975153867892836283011551761084519144317642290530769379033023665753774673605944077345454706926037682884295938282465664459932201470293678443947750829986230902120327246587107530148983253950370818629858815284241540747902472271112164793774316218228770427173103116449612088705588811698208366417874662012364346546990086511122141818512793896549152838406119344985399317537071233876222293392405143753028044613058751593548796781546342795521625007598256734137915023817784629468460403816320137811838824950726209148521407127021954865080164863401559357959677951292233037266783308463198672478855111376107548787626874362813949858234996136554595781130076034147608736196681533412428918289127562672367565412166312510764008902614748258802875194099221858176592195385645511441007574597192559861388970809326796446813766496897929202136877741783022003272503080542478499745871335904084752011792513918581467249005500972941566703810526210602723169810426302583107400494694968591199833429592372897471518056829597845985822971604762219807157129091124355462730736026911539847979376902829285645625439819369675192705444851915120590845502172406917753257751733737509183022044270371297260912031924833795258781237703269484136287243561599943029552263734067176739841450594059161095481363405558177290902780069775135011717315198827992443467575925605569696700551126830836691403600484108342166991555316974006452455480152707882568250895642610807844144901346805507239676290310990299238066344183180448864427180067138001226695970436004379318351442600143796053821408993916123272995463067165972962339107346067002321890506257537457219602601456608120135925862565204987842576826269613905785700556406969261667828078108742585870260992199086389652536165011941712247946692417325142515170540636658486752777888557240498495707542419151778827778089994628819840058240987706630854653421791065388651463959525291728035491297368222153268954570067630561239969620731722130947817116771253352274249262063819178744362508000789357893197937082781756856174190345888017993628251457764626609883060473404468912069361005043915698822838010482226066816536503564451648415523717180740694439596630615665005562516323284964041995979087506083383709748380710799366083604028845714841913669028018355326189522264022106020171381776908090193923546665112309297844360399718619982518842570963051558779874630750064980436137331448951026515963658174120622847602427080610947464115307597322635833341253292096301317313344666011465760319349516075943750445209139928884723855509484801008582663626443439910659034506525216245340109803650761833508863501412972163972736295914202794580907620118935434252761328532200653889746760157353497401230197984403216686128153644347369459236199252515310775491521112962495086787230738218114186561757780563632234844859573158796160273773146590822478308309252709771906336864556634940387725979421653251511117964208433717994824104405331726882232986339944089688427858852559747068315477682922204628647444878579658157036063586041975838913607359262102519065933844483671952288742906833914569401816654970774432129480456740305274439636829722700627482301702922342583055864552320088736205428215679482466867527433677423707391182069289008827488588251102255875332550242378380316402644992401621473012691061902627147151569359985656126616067507795770847628192498487766753486321640888249779110024757974199819098840175548448767700059744446304202302849783507843443849215997997415228397061938437547477827132658076056855226767472566016247121151362216605795448207330610419020164951402312255119465605800524745574384945129240989083149232807583669548966178308670287202301099178750006248361377973191914231224902625593992812812651121084476947466338419664000697315483951691166240766825307507845159273755505199920818242450552775231563586107571737477154791409047583123554876361355075693053929177692531361224787010507294752898777218566792534889243559130252337624840480623583979853482493440332601015157462738549634982533745997381760781202344515276800803815601908719454556396716722959281370717519014410282089353079209620446165201453788436230347587970482387154999493957559658449015657984236122302784690951378458330650185444968235099094910775306980699899896398350826393882682097565180685467402040421223242210961931625315892043853870311502380355017549412406610372997854711262630045978269610783607604546680511272389980054580584618443046542806185613539142248847989816070238579326039859392833099905404323810156849786226152478289166787032279607970379320296599086351330913140148821065440833306644566343398476712405098975328468959821042567104595374251606773618799985579828049979716967280922030058306241481684288837010294722022906178274886873784493370167795557552952412208248755622466848889209565223709249453391981521717682927042555200173636205956294738370401428475411513378577566354962114739995215865246919547907421603400714079149000205004823988093218444417166102312277178426930046275261647102965793199548631231326343892723475856114821440843114824333249893577295320538602895933875036894931183265688666989096652039461090599587316781254848697518983209285741768820363731759173308204596474688443571493825277115901129702405246074745224101189094005378957544365446295382505989076112448568932545910468130208336281378873816408066346556457544093750513179698675144304521975793613331630495645928090367350083480901867297853606552022157006693722599595483998089645472649861210937938758893086318408406533994268109133119294412507450936996499111159316952551567962827540337631980000830110536768714643914523274920734041803783907492528500675702259741006847728692559295740021329677342461727959983097269915993722706532504605611208680006299676790383292748948879619184209185825556255229030555976276984001961689120062537145879816634906494775403065870721734105465268793268154626253993683423809900807277103990401429977898021637694260478292820004533106393596303174544133843554337713589628769476674443477090478602530016402340682372376070922029666996279357681892673257632050687262846295543034132273003058166272506343300302158656161038922676972200249668446768115701233296715108084525542130122181785749871612320126213444814798284147862926478050824238625471665275547978346567906442203902578223983745057910481912853955015312811402934143541218406010779947565900378226300327836329172612674889570174879843032490425590337411674431878844110540135732177510355995421476600622276586052036125564717530479114254964598811673716623036513012045486672056119032590364067657799393072979450275416795577684520709713005607012523566605625290365419650991410212776233176383969383002898705515044468545283632677017299035402637815611770860123937264225505845448973459112381723637482047489667622217563115770958579485229422876796268008214738216189742872349984046231983383365415589062657793348593899098078361724895172467546795098422301398266120539466294493794842320198511550567257711527766030825876751088128751662649053199893230767907310325597290909378350354256872278958359803500552249068308408934028453394001794837149747124890090180121403230465948606908413391384572356708419410605706850529331865899658909781181207090797440668695055011073429157882244009300414449050358539853573843871064996223634990534506019725286563592342529285953878067424751845309192456502388062061843494696912801045970400356790889010037037505433320082993302701519478838980139084161145709437035768963021377695939060813424316538267913052566169898318980914274058943983596064598069372988938323774072763001923410525124227073043348697473624339978777585182934989936873933474480546089669231397916725059424656864038839783955569433285892042322016681524817175751037995673304112190226911671938170981882891021867783528951382293253412750508505086860599778688418920938012921950748914706233118324383496668735066204509313626985277396365782893289974274805678056998136123616816682273703803261215934681372320297895850746079404787244045735699561988975865776150000474148056672076321424613367459719372306246904225874059173047285685745086390720832990114771727413843404395788101056286543117642331223018155724873602132507298630957026313791097798481239196661693998493805950949461168365400600906535279866484819852998833886813197646734679588174323083640571316199884704073141650206948692130681923174274993773383434362988041790382600228683905478434037418988404400940683033863349347750792995537358766718700163256232903287298774226386945473919363614493454781129540716336744720647879110174961558710368273615211899228635083034469482225057251800424698022025685974988783468753694802706498399299944172942671945512522728536213590442629012500141784723413486188516235975920956281415162092046096069595998234498676439738071556838982427869107537050335634953018987540219801207815554243296584834703325276797261504795974575512476672504158322106105688005831070471721611659364577544659517433031973117403820013722780649187918602017272289593737049619780618818569910387321310371004131912899461462450642543280104258156168286123681997284100073298552771286077237823191991521148740528555561989100100588944933351253895672465711129768827864068518819472487934209859475175713955356859896337464029775464793549166223555496642311055112113308541254217027776948558957019030807418698095907901105044829748201075384756520438605037828268586859885213031352418344845034607508372125264035798542042551535873013887652334031178889473701781839748270590624985750770393320781886283730074402866915081367525467650892680623412913479338722449245204222321051579537886351305273356202878125917838653876379067732115033432614397041947644199433325224783325801346592241375013612728961182635908401494970989579428394667877788985465067566361950648027228956343516878039694362053492327869970953338883751283881223196228617445874713012008189610976815432899634370840519842614639521679007594419599268649592506809981241566207542690705873089636503899548176156427098644381245692058187446182248505655380114730587758974841233583457390038514552246357338005814140776954499083966814699028653107933272092840676496125549574777187183231914809158933762774064482479145307086253682298567653334064195090555057497633097935184708539248770591434029870571286093973596219900847018041357780372082735514332951873003683878233277631615152575083568534102243892154852989653777483075683967368032996554448856437512825755222322516763117772191785475890762344906715567090756510195608381704932942848602705309144476825090429510951515471536827533229134834196149317730699727437466782356490555932301044437121661893622910356465416811345562647229514680547240871866547299185752455068188291794802504941279330978807646426934601558306387720399222562589853843141910226626009661274309971631667897383431847065580528723298488294686065917243057486585236399283985666243642443715060793308811193640132946922739982687470664797894262529780725963730591317201598120492298002275598825153341093862720955046197483212123574572374609487313578317185098225418514074306028113436797187969614947692226244836787383214704665459309763373375331255676276628325510871900679107402773844594671719627255034912611356272036271983429812998984720113683080652972884758670322195119207199710093426487579959220441138993898954943657600554597527599385347164654306047340688645184180657838191438773657782607870352993335654377920632980716183201702858333813525159948974682379957207986550883275179756545384684880808070557134983478368655109606520245268512261701059515441357412822433403268973023051870689261128341722613503245059520938165781905861056643258011787705443000584522290320007549635952720307424871960723434246527184437522381447447891886313512236552102360824732607219119295523206628126364077584699739678901217388082708287774515424016214807197247089734020251835851913269369876121216113480772981455763629952029452689109631851856003051544486201680602937343314223118293238048840280634004757429364450355136947465666146971533327040959295530232266616516771573366685020005970257196606243189214164453381083810449691282202208903242059989307993127940157327646295983390672889883035372383698895561435220247719679335362017456434585719243426463355599941127873984598667721588662585258828132999080272592313458249110761054083813802219293548141397419115249805679326489804557546172162736236676724792747564726924034106492516963669860372999185795867241357144862517540685673323251575872831447954117462178662278217537119083618159151602537448195544945110211847794542080449030170617816924855781139074625247476132715995637474808598603096976874378389030044636649227557412724582651846903341942225643644882292513794947197802292172334720752207132484161433356278676966852223766473168564893137943359086882640490968584462130761485530916529795380554823820422367487124142695850730394425979701609563550312967919317249212956201048856968749133714053891048321481147682335367628409391694977004119661292010726545495133699547688425982288975694719295416696310517396150697822743286978673779596864008375983698122749564852767664562145059027997160298709883734444319247923697582261610129958745305696954981187026593574984272971988042242837344288920136832713388649778926466258002052441704744942127388590478501325931884122026906232933995303732896908517441842117043624186615115430366746851580837298315297678780238186943995883271625819463265698242268533571439466288137117924673527432737757060636008236224401118796762077696729371339284116975155397909063842827651817837005503890749301312001414645561582942544403538319894383735112032665873434189300670484804312930737577397667159862609791290038536285709164684210950550985028213097212657974635629420364424537555718511621258596529939380396387861575696999119779604703799253297441042634179438419775870717217067033003617231349760768543626148616772128787478102604916147404030917253132260997673042836713605073318477995983563305855903696305679509661902352537154529839531872516743093706319764015703748850072100698527140063834241869759295431791162736379128668567284550726556302428293604317290524466086115738693309144358708522721171726349443463150437577372071627969218732090286159499418140401546994587322292906511751072403934568573269573786648118472959631283937299976890029807538392474473076322167627053213949682399095118418028875766799122340631946704860131355419051647993353904740480760339412403646966236003774255872846604561997160875823867098855183472754451368566879698177373941575699976321783859380417345317028928218800999543439529435155362413880446892997508338630864896848476569903072901031743089023629855360821202063842202557516578673483040098035164873671686206114653621396980842179286979533921480996313811032018832937218374926117965117308588544615291239131818883623973322645548614090923798854136160151696324720857390913385425040995291449274681087692648253024164771169944128710944059578066325399399111730325044092257734606814533532462379289888422141723950240942388618395968883116930169728201249729457735262246366857700457924241177701584569721591409854377210869318983195678983847894370249759151277901722222317067994619682859749151748772568925673708021547335076481609962667073487446991491645840359503823933470798925928168546779001696354871791696287413363991831701326953648239912830406969065651003395538433088971500661812552658150100866792180001824716448850252884533663935788924343385425976674057782436341843609570207859040331194883005421417507040469968389234904138391866575939760187015387816324396853859658171914458307970360278002310738781631422181199013860321114565533060296209342605488309502636691029748843764970974589879040255630716803596587567304769471065096338401459267196697618908774106101916364027446732349913010051478775197402232018848761494413089926786282668945591983286771699618862203073412563665110241278347251599694900648440368250960793264207039722734404874614277475013508711367995066764455407212080453684038748178945465691833713030200369005991935009750298402570512939868464638532931368821385684401960239612833140354026354837224653020968111266005858368194809489952039186720174835141925424390718832976584144359144352226015250705593900205122424767315908713677979917508845367186870754845635436332054221671028342445348304260277643922627449154391782874449110052829572054632669635669719322140921807799761115907379905605122958042444740246605224437084537765092505125676659139338562939639749224790475617469100362621879021001731642927543211273898097955393716033917770786317157996848046131186309849562955390293358610755977414588848849609871891660130038180135014638135574147166058252528440701143193830440310842500649752499435942912251134129544385219737363080379362337185199150072449176926490295227693307390447337680251828420663359315667702437219505323678647951355815034199411985312696077878357212951051968267699597573068552232567325761019958772479980866408355911022766310078518773762827988762405873251323134435490773934273367233218619461098240731901588320246856443417585996546661912297824060180625069374794270977587401917728548764717485045946590807990787259343593314280482458860289233310481230051265185331207189369779184032438451119998540813308732701929072852406836080581409904569340863897948916698873364356437123161689117131383032918186000396059777159837644556998276234415105972718952991825084143449086357421238573880105950001300628551974639732776641526526346957926937865650870442657657100531936271400436292354473294247333938111478681577854233222773723161966840008935330370900367140084700304487943365833018208855791396562754787458488790607904849297426540926324043911176573867021392818910984339798881795236867473241754008314890602087156347552302261923366000339591785340567685256792982881193314166711932866478084963591651532753583970197720581838304047815895422142295523258224836206520012819896542901591387071940183261771760900438024560766145224070169958047266990699692809654818691813634913888325221668835436597046868507930126679759924373354386177015803394296140542205364659209244431587699506058560258675231809619079297167469810115385177424200699259111524114287881201865302518891701900675766107507611653424782956123159651405329882336825930333922597085459690620374945008117689948905543408124011796796674091089160540332545044742457046597396996889053386736573544189047139903352475874315138226295275756813592307903055311020584252718580638414713143264501316727546584167155235262776439446508569183740077940658588162607714238685636715985002841663775619559378716424229376214220353016760484034596852302412257657114789114879499362341242443574807954736574506306448734576115044138637591345648523184095857045266835237055788078022939809433245555101319249938897134616359177878431467630521556693591147079907364182882454918905341228140925200654104014006164112851862995051092821663265329805859422904261427032956445772400784916222091037853278441041966862470731817941979609504921885364282818808374744109792449054753149103184562384171387217961033877163537486319100851112617273208658127617601421191404352146680938073366704764984510962002629597702553649482407927579874369969557051799303227878898305813307196583680756284147020399389188729992480769666780996080384126176197865373789094513672646232216730828598919449363427679408521985781224738717562278852726952799510658644697704525902876890963994725209693800919480503891772459562356397944690604931447401088740567526254057750336686579142958453036760948580823935300240810302771586069635206385605066881540241669083453539436837551293224812556029376866939071039322582142390644668278860751459707352815697139836955664424325413591088052792487242967757257691574982654200854973057352537037064018518987422037415447096404009029113489780777108013448903255795583518923345872850355483173653162473745350719342901149513893643374554015203847483077340398494703173775486504363291825790148233048092530296877509007514421069701613183254378528702266726200642767770357110354082825955950488648883597778557278998493426512775328469230749251991826814223845944483375276502207020276367011419760225023075709159553531468127059585589675069887491684861888657563771666523041240111241355470834435011841300131750693688802140223423190236155576351311342154566048541957436960212501270899780183566834053838519581138085354408021445386583404155796805684235659131761609815715151771953526057688071864141130868716290164483168138923503250284773403675776642940754260353534137876695683401887064834092189807666769464551950420753617755080700143083505424596855770870061859696615273577894605529305862741606928442012219760342583415851193995875723641790084067063196412025402865914593215278752864651680620994185081966304878856602266409868329508631923771117317990619020510718085101744030065658308692341615714628901336325530003025288726785129835403460373181916155244957807813666359436308831907381035392928408357171890110486134811553022476011682625518761904212646080567957899981285275289946909920090230724507768938354933865619537783514432374440566373460914238241082654482282684780998602689045479433473203908433583697890953507957682504775732759141704600670786378455635775049831000031361117512740400775458623171092119801637055229496809701076104223116938044866811197133031480509140147247366973443266432933508501034682580341136991051941906111229025882211039000539427003337697457457701174568674586601611845830213659150934423709830495189890846940190911039216618714498885088816685264686718615495958704211682825379247594659574410198110616242476648865180582135943664901005501821046530208086582766628855927820178224994696857207981592798732526731941960504363522772029097711433329954545486320613870377625178414367705510821949457423824160818200766740696455399380207831781544253518559126426416656782202273742289299962287460205315028258169299356299766325368975935042011756842232369831685319962752903214564406299947066408650419318473553414379073020137477735942582812753930385871327291896215611022831096188597943126334253351207593162440314855164816741742470352508931934786166311387708633039474115239261495429661118568041308257050908211239120060710982847560040884669636014149710033004781238225007859804999850379114660326903923242082231641483375671251726010495238929420986805934167392737020251753070102162364607325805572573971164687074765264907850186251032854655092683342111165550132587406943608373717644613519262212401366913502706265396476596941306457148917088340218532550099363243586881387271603493888545239290070755595103344122059061510876705206705311403933304485372327578066332203136321616965015417420396164733549135791777058337249646897896134527172942161317531267263260941184428947564424020896167414503059528778541280126598892880577517457385581760814188208580553687707511585130586738459075158962174014590322186334107437746839929114933070491587863499743449967479031400431638290301982923086263227638850881773355623049835933199649324799566910874838728366154264859136854564658990514744518576275870604796041581868140379950452397809430460189104522999811272909025713487048666978945167268908253182738899569772659574110652645817307109787002049563931736310846418464768936633684712561437136544071651676599331426525202279409236611747369748874586667373768670248167802497686849386010710100872011811349821534606107574744339765116215826393287177602068075600956077085232504257273462631007785809032485993553843665942806811648923079766081325049508626720653540361174294223842896760285887207406124147384669357416477349605383624497891507172849734955290976321334250538302486071037713312633406654996457250397121591975910039001977847131394556423153939598770666476241492177689838993550325317260473262423868772111397804771461775374541469818668626374495209406642390402427426742375097169732102921585177794690321948326865311718403458550421496405323589868064930002651580764404713239029590595235609420487653037006199123166679492203965201882063333671492016164811984671114703988254037486411840079457082201241351297037701465198304888849372931371619321612909626259092992658109153627806236891483033852317707636508061231799259100257900970786641209448389468949655154559727207826900057831822848991998542388865872997458302840841088726596188829602409445707888493428828949311812599917065507995084631022920013643391318016717177361661006262870146109848350583635157893426011604362753577536967299640932810518058368820216850330324194053561651051960314323951656214978364502296325611464954622294210163079848692003552563102928598791351886790849583125770697481007646171210414961422315168252338983869911217808560489893996941354980320942154421316843870667374896793056301183408543392428516145597233680527925346586987744417578410330586469054226479958053298468963166296016045525149217148342952312789190425611286529815633882569845374760956732133628443396301291171034479816439527168781833744477024062166332744502565434340792178254091000880605734575516310636500701928486671975509988513647457078983601544945681585279269223055890028155601553468910178384143430783067651427096429484349546947626508248069369377615925392402542474825701421364788157114292958179355627500855221866015967921959522720044645657938520768779979637736134713044130822413636540951081053426174963836325404714675706952423271052714455344615713062480901400367674076342523593995628380702179267047097706752531609580318563060928237960263693854496360036062003586335771414626029117335695510705693742617310901453783813909571251228200653014779507208606356730154432120243258616630011822487200599253292387851043844734064735430880193394491336769389944855301911006013464246668809757909957309878106721971587351874811220958316329440562019141859311629600838590397970715426547986848994427355746762753490002788444699247278900229426421342119440353833068811299099746909093808597225691118306799131827346659871081869336329132049722509747973640982930621410697145714657375145894055098611730683019698879995941735094361996086523704885650280940123343117706283952354642429229560381073966142021341532669758974743478546641435416137050464674003922065700755042362477455193995036299119340954637682846708736036747174712358887397121359787895466333659512352812935760132830796696278344057065754855578655422440361436328293570887128032491620363751347950427141062254095608503396832405839814151295901120252157403818338398050862323115460451845923021243839898320591509508927456629391752416725633897415585709536822546819677006334601910680654172828512832574232934418027344052253141774287117769637208077179843466367998641525775205530071020292874758866761747412413048532538459211482603215837727521453902907488008561264165912613233376437794724327674478728655344174949738147014505029990991830392824061316246402228894855119432347866134427229304008771003973963385174307310421310751360581690779475500458299921098969842137115351845627349852855671525558466361073075446220794367304884244878940125511020012706505391896712799473291075090753135473862241920475216082364308941051288462047050221635880120566415675721454991705702020084264944782343917740736630352830917373542626386332349120894767174232384211337410838005950879269637016099707012227288448294775652439135460286840275799633285776977729756594018778316817751402918896014467285012464500578146578877423741814475909828897272638908747688993065299006386047335207259649743599420188433958735477007732461998636282231429032279915619791389807240443287736884640097003776298399444752140414021379513501178626095734140403391753947136106000669195776755352049509964265401048515419609232303557076426296888966456622940810946790302921570279127084929980179460779562826495865508604620604671160849781220428569241068410598065657511980917995910920548968490255176543969152565119473312524684977505655380830394613093793225849893035671598390019724820977178016245894197083943687807674428794677663558827200090316330311624847740064446353379951415202517218959236013574358986768094165579836286288364614480898451623375809617106151375608470477650437239926416394580472771473617068009501235830050159439323077698446190350832088236579166915860517256809674759899849362625232632085012772620985810613066473966995109041505543070067666367917611877924371570603511066960471736990187473833814812084055770358431417968254992044105199012128682433904484557912107651604481449030431771890907643355604193950496820935682535763049946327672364260825015377786508973989173289133214023878233732182852843075948034525682581976126863748472191391515078269576988457056961644462429616573648949023744314599815236249590525102331722514488106798933975652516491176574367382732368747585910286118879063711674244235522887215173954096549235594255502466349970154317601158211336693173377638406976533451653497039209519268502869303936644344525673000004948906089976575386032112246435272592784823878445812942380676577552678884554799034830741432291226611646132685446641362707446174253817870775086382247388576802591661879995552302785909510369964201019772263719061237573158964557293251157891979173420344114405024376594805927412723632921135868071971609678215412164794054675202653341140448159862318337778814689438981572919212229281496530416986521475089701919802910791012475788678777755004091485481293309549963101952252284092812191811634168345134201813306785701650130627138434044151136187576455085198957746290124968426711392962312304845992915320749489154934384578614756101480998699729529245063991133411243443399318538322487362801331877008489049478779649441261712760756420824995635615835846137229001731588454647326027722544660106047927913985590671862115521973007645862296542291736816817614185485397308449155968823975434107245707053521157946594917078251265811743805786683991955121139674173508969597593511172191699165370266338423206858410384297517692762191244304821328117568854622119034030358802483046064727440012536345828124382695002556212752513932195557156519446367393998273558729534177650765214492376236418472999122159879550255774349905791677251605822486900851602641438809765958510533742946889836083147351346998482647114105200489031940213679263396782617438716423295343952173110971278460087691021111051004686831877094134121303223035507240397910456667986726802016666327570121535217019128431488134050057733518944951614748607641432782117803066423025373735641534015278190746507807175749456199655717196327694938548551114816528320070247859857562386052039287968091982173127027270869702441657238283372571590514676652898856862187185181964468528764088505656558044406128033226039627429343995155353714233410164759592500415271079056911468598473666977436184542114308444603721282431685151711193680774260894183331139177920522309089839892971515221238449421315625072707954527702423222583831099585592544728043845027153349061480480037512916511612363684396336001411619053693524889144564250821296488967249338724187424291464864893252651373106026716333001220779313054760182656368585934128771731082141467203261681095759988783549823864675738866797856002281952529146521842425788233291450270992061445404523489157235461989918236560900759663242566262319910122983625587755421136683203048918923643400976401796092123356457566384090497997935607234999109262244240997155576682319982756418098858029407327643751647930569195434948730388712647486344063668147243358318189629160221619567861788420725385763284149208586196286416552404844970132221724110233986044528472048431018670656662590927365308052888535759108802544978586029665661206185495267956722279247918157509340629148731545519897872616781624629859478521156788151754104631315723746368044783807079995635321650924050583252630056227137283073454983619105993471266489957618104396558814143273365776650854979076182225679088118017554571178379813262012841606525001242964168224167993888508323488301800625638631035085201105358730630817900929843556542933510516363871797872612380041526777116917069728925400453360036988545859802832138346853767967524591124113897358615773190342272466831299134489494511527738436839873119330499190624944119812843334361267427331323453045954695478280297212992076949805065958033833678823153601338420246716304303203018369588515254753477564827185561955234527654163270391527622320536728057241349347081794296344924650953026642643929374344794683862133412367083931640381465259648633599496710375232250514211729376860074842213204911801350943684091574750289232776217127999081257696805992158326438687518155070894057199038033514869066130938220017312996679396299687355730500201593350531900010566013826369430997357872657834937429631402625512758852560925022174026513854147427852815661685789255577390867093607129797776797829665918208574797639619147368110758188584772742657059914201396314521678164412305611074713786292141870101295816577916785412319806761398156759756172973361887589304359032436562901280258603994671445821959541143501972050392612117178560918097296809737363704700347205115273037451478318426901858602480851032236621109509751778298656821287098513094322765117770810978653512711593282756556945776701844878532960237466538794308720938494915691466879273726911791324515509155892947470227652350363563721246208081734666945483334855669881926921614339110061245215149596895078608773569805949840391107358798002137162240049964678705568500963587633395616054884785684331126946689627457007632641712244506271458217065390328429529147108493001014703886966069340617361342639799888731371551283900662866806829746512835724034812529659438302704667758766714888250850186372684250015833474474534468016895617550363188214014933254544665613920816694251113578939365275328292366207075914725301211546996565803294116700688476646378472928282709652884259587305258921697332241523326072505722828568597315302371634030502605371972776499522099101901919284134595789683229282646688704880209449667826265962506856205423999297201967727548783343192816241330903888420171750040424797453947965646113621328706083802339356243969718026015976034099343947491630050342503084325151092808995400781429357935221892768343053184348608273463970910388550259562467511989375439539903669650103039698778278197809321512583951748045094625231909879092192187555266237333980924824375176169793289724487437498391752854281025322273169014818115965793239321741939568427186466968803955456048101245108500545702538830240450923071817021045986675310639349193456743026662058261020473037475954957917175951289048000812070727315029425506932489202504771334954216542704721308532998472447815002993848474767300442375241620161472952374460752690124488682796543830001515707910796377261835174051978178139052517542258470355496845608005843751319122570114203710123198544637163510397749936198503780240473382786983515939653498606570718501625702242387526290424536839115401346259427313830143730756045493047174214952774825887355664094030835008790420608791957385277535587170338480443477786636980235297585457247616571522920217265313225790296781776664920725701410015029362900514320955713531809659002982993537358969208004715129800079641688212518743145329672836901973777371793689616600130263847027976032750042872089899475667380640127518350881446790133775777067081102397049086343488746093814805366138103765916054541981689174662243810039409528254206191985975697811047479643387260423058527402270737315529628961115310039067405323776039303635557040883381517619156758325924405165272118866868503407031827158184350171629479763696158379457655243818330667391535937069340971610617676481137191451102341897368550585253635217986209736946290659396582431450221446837765877740329920058156258654748413021808489261582515192896892589397712320244665880982879222001880510101520727117270446414992560778528256783563831665008794616942139641290921354782007942499585211380196303288954275239272752142214935038017227043333918582204256755903233835891103526911943265029100262832785627114351004891802154274418285494480731262897806336142105391649743089369285617161097712070248820275761646754769904596801879776402475672470407727167580117143946291055558757931152884530644514696454500121027999918131666032093754917440476594284755803369052692004577069423956389317162553420413023726157026055384593311632741446212584801022664098296932733768848420067479089905816836576913627794327802834227620772087972292142763598427066309261486861636631580647125911364209915274220036728389416981687902970057088659286865845198028571156079471865089959432612192335808490326313007620872852734671880486010403000855531786088795080159447875886559081091220231042605185225016642093445496175042096032579137207104790345720920692315336472259477581676342894755476545342307489787360508775846646413787792844399698979109404157979352326738683759239703817252138522048238140052163224262555010191999408464733974212178243132433636128590491675771291789661612425386434849953642869651234778956270359312377995787006990837009418071992140639201863555653138278228874114873996736461290903765344245254261792159394038545892542036546333442841380972465003216756963826326397507259577576191049472338954751358253385415624526645861626244488790318786169205939886521872175367317848877895787742925959683051970860667335911235268659261146169137165323260980996422760494843801478685353182860526414035278656985929924592860088709873625769954595012198642137660195973020678783816087207234988960481240000687234489719625312468134664561195385963514340759916040836020631917937005979043313556114492389943803502681826319415874018797680949815887424001560405320423058709393952234790555304758202304547442703243667618265975030025173411260685600793356026978003864931847033556458847565857932627160893435230339676239991576974001827368273382873360604301580883169183920025424326766217015460798074985700550347841607592894247936825280761256489019120117437460887640126182255922577951812510037376650631577935684743286817104967161136407714887895413117390991692300193901613004068276312792531707983977167526026310038729451255882929540761838286161079046038370732377412949503176294807335013515951655985633722055997498850157605268225881814891720291502931464793239624343352139284949506076243281770075881281991572298280520380187087305922559595297111816196105586076401065954678463438378062302088487422528184568484916107583721339133431786587892029199960316606577905763294799318168839419956629469325022368459903826039849399872524015552168858391095386129709932038272552940835288650247886093525048103308404564025514285038594814811234164190180628029622751489022846133413931213774726102650296941139631348145258171270434154810727316654032812914365572611009985092824725271573264555294327948632726128910447714684763631220877702249755497508851424451255642559185982004139296270560600350460438977450767268358224255823123188151270754426629224160003796073176817788799860951240482840662734592572411838629058255597683463959382570127464054921059604699650351397663906020295210519240120895171414432534019320236036093841335300921057591610597880901594853028775666550049029783751734676414695205284630083038021320055475036584507900763744394911870877956985881884560788804836192958919747325651329265618625633738014179752044730609194108765409362143252028220959325420620457951211671779500631387084352298678786202721099805836392159686385583931457457698984347295865544482492784214235773227448253671652684742084447840833684000952259690713728445454550335767053998280356347495525774994317610634765861138416289513533132635122406745997613227460122932932318175886359888238686116338436275779199252845621845897054709096161859816758228452873425616899966411785668406659986011312155072185426377473716210400209689767728645288790674597741774780349003374432024645770344662566820637700823011857799527484540764331520266777094317734726796218218884884354434694543401184929164637997882733242626773051873541640463528585468559937901801733843986687781807201665090654622072817429904052320897117629755597029959781614550452323157180040077596055049342594035961458205477337104466663407684308558016266268829536021344438833051418729858549707710120243383842987345224482168343700648126978508665441495796145152353990337322553044835428702127895876398935579525655980137135437420993175916766117137365113697301216626716968408432270322988211878812952790301759897365858129756797952204383847981045505294449968285713350789546425669159025370577010732437723473985354354586240511975039689966588790121639337754907992362084043078216794247669949753318221139572720134730205936057868872225348394547251187197834011337987563252147717953054004764946408516663753002532212519069810883922055001102661872209690902047616732851130280979835336318703534281143332775668201671583011644637586476833760340122225818782603919448823489792064452513605406962863797428583417193700621771821005181473062374883973512296524627449496140830364441965787527665926502522694560469364375727065630716037802762453720845693525954617100262338896975432606286156969784658553127504225452318981323643237084606067142039204710631213178468062642894980008311091339045128608411319056270023008081731319435553302435613949675855064126388003435751757760447153203827451128799253174953095403047217050750604380352242878680580189055761408146701989836429254683293558739448630164948284980510351130491256397209966260235541363655493843576537283540965449883935992903905957886637673591219595923138813306144476616132232236865336142184153559942021290118195738389786073945341136606477062223030146463898491720155561442502397604350179849695885516875233176318939774931478392565315426738618402266945341071218656640124648560739388260322491562463441318070996952057174459176058051935742762699728311642725878258977974921904279745211415315841681293011623759193014678077214204360860337014603089240586733518507220890872901513817239680801902665415001456998262972311203799712724843830642959172605185651650306074045795182111056176476830823811548218864517754388682006896067270574170859561389014183533675252542943921358172929884426260064108356210723709580327135303030831485513099310785147102094412572750319627461866062017920950621986629357761600358760072984229298194688718473630624856679314103709917214762572510381182214212629021598613848288527129903533374425389610127466264207219354946507834716875488312246660421300505718728105538361453381479899465933823833131521049260261389379909667999531610946089538986483771894136912098823379480751442536786693907075671749187603359224619684687093770342299403235800843047578727569995561383870507096591595804839109581988705150951356881845758024919402168312912101815356874242645093243959890238451393399414499072919580914675313810749467920614093781370541335579476715946785329077268342409452832896457534449195328704875850491103603666468724828555632379930705707065421159053815955652490908361095768935069051110284437918938349895266663082499122500782506430724019535933649942811176080923735856786234283130406339041227214116405984586479276579755564074207844994346143014675419426716466939076116871635964869248653441256852942834726546585940860003797904446784030048374930944997078455226939412796912329887962238351133737261413447768834901406759461875477565300114749564501005742903440395758319388254720385451601880443666472046516831762940711245244990852468229104368923813244638304107852993670467636322135814984199743302819756142620026846544214414603706308152784636787328503672563247085303932741895658337227994800257456150616942942282383835983065293721473780317225662349015571386144622630623084274909418289261720957912167967168279195936750506646417056174031417688001460808872095912190100524342873979316955661510392056563140630132513365826217102226388879879974148645411673089572438386504959888238035495948122730972350863728378387484610217881319087729883227247623795870401189744417156362528984212825862679442214876302329835256110206566706766700567191018273849146526646956801868836569169783623386867680620291084744180488355520864474356278398002480779239030350042965163109244759508763548320752052801663257288420557078864365600192648361518697538501827921376385256142693106503313582719353527219358673095932695137209849066305981366704263308162093342221875295048679106660363393934457424015496506080752723207642055392674017009374157503142581680736403294273052079382635136077721309676557934042385779141345210199866644607142290407631543074356006732853303472602992507817799810384014236882174785854762091732230060783422519655935983609610333147126134863328261034029354522234327996761420189186918407735155077816114346833512989287828087330870895936450806521218174707218393369355069849632822908445904022845391906614728219268592487230022148647248297552658698807160999525310833620736422168602589759113480894588950881176257225579191596868136465554122093857898751795797688072984237036145414771177213469983717844026990611111249007817207771420542385347356064016322530210116728931438036539312957847406840554004534474850510693039605948213833697870044764758561434482210057712066071398071484272912007388271350646299365877414496870518991213465270965471385909779188779131560914964020560140987832616739682455498366884611652399988028862476516974427131225589366490927325500399438395058076683009213163822295197516399434823109122331396927111235036518289052272745248180485664605629963843461772607694551234558046382728925101323907046985721781358782345866190124974830730215954490348068764922534687628985713971220701263569876823571750218371628454955856669879447242366217709409067616689735000661816154399771672022180378106828125208187806977808489271058459336585362991393929333988235971971323989711956224241245327324622313307460512537017102053120638022961349454618503234281099282801016177243688916152997056421578044854917473024112248252413670443227957162614603818483703796488268521584279381337508206381373134877459242842374127012800074548275244186147853554697596337632548660267671048793832277574065506395781468975791603914471435140437946818210669157041589497914299158630755510419806692243703643598242194019180560645697734009277422759714619055232736912099681208157190903279529467894351857603054995627049073125039646396461695151973247235040234680153233238527170198615987168900904534561170928764821846500136287842585550700810763811666320412218993710002027261369980839362248508451773167842958957738167176074941165093060211397576465410663506198893729990822103966195020182905033164186978269594451281829281338086823034197577609219913887858987446889113096526225510138949091376662830419670456064948325938975974659344347765345179231016272910060387471677736973148162991367010392897027665399695035687246607022146273805368325855359474746963917747331016238515338618034369650821153820853385795904164441637881983377508507582816372094652234482456158898071354033590290960185623355581787650664568505568567305644669499214830869276684027932601003517500450136376055691190356695384762041465976457808656886753970155534076555021726942873458838786412718875027385779073660031516869055349214978379304000068515440098468409181210093895858682056515207004602737690222436272572937607243188092908336798867270727124036989522189393604666934713818273446074868073422599470562724297667272956706588640280186467741975613793941586101223795377972157352604742199399112500008771584722052437223322480164035038253257355832945365922601405664193890055640136901244923425765109646120470941276761914361762437578313834711858546959538950610044941786449266784493729415897613489929538619037570212120339639302252813294637436034559164055020997752307781859912467301710117495268864173825513506848424235396391115774226248940334326545520908554091640258158895294694324966029035579268583441720564591616545488666476317994387215225189402164892488649407315917988594861252898552295018652445154207580696069200302502401979103773086500674717846351287638072734689193648384974840069012170577669989539193346829971619530971316992730749728728050695569888084775865725639324791225544458972180482136422588211873530927421471369471959411317602243111890710547689970597034791296864801496107187509965448519714784585400115238397206093889914011255671751818840401545865873710514398291037755376115320360388716839289625955563884919233013083776766515982576323957034018916369058958288668697245099678334745816480931797666851871534787241312807109889478695021389153678563947954787884104291538131700671409389357030796818648225643249260215619564701276802276769326073981989124727113140454912628116892798740331827044640521401471236877000097842324306617159359404158124031217344029397728364919963591387604900989440733002478667712599756670102578021174917755877363960745969254334117203074302142241160374972505269088879621873768929219133026338174836614030387939386273064024331166958064223430481849652984270172617960268550284599872714578340125794199569481135669595925540924006937203082290472892850721109950905195863155122617955148878618510566917026516373853185802369226794158484735667955257141158670237287062043009558988730069716082613534934303554336213946867237805784351876082229812459178606588302265095725260589326596121766486854723538108271112197024672426196424035101416787162030874639345997214746084707126620131475243837665900582744356420297408334380029945155486339320498684531321424495411891546010935342950490725221295691804830778601325679429261927975349681838104875473802283804249839294628164250362038385687860569551591923703985621533990360672944476700624840659679364082496055353732041214976552362547863911363371449504468708298095361581705875424309024794819028611810185298179020409931086697799799855869356789255145378272104199030004655872574626494094236753184158886308666330933054714796451308648865606886446030399475240776943455192188134882830582984586423654571087197638232517256342834017780306910894974503315460194607951592369932163582240436312547612661666958942716959292130513253549026674593400864608358367305021090558236789253227995264905778018924515384505159354673361553394022638435664755375498134459686927415505638208703769427149657203943854513628534258734390147947367062559610005148361147737849310679199781127777999684538894627590630359524113315842789774756554117495417100781789389465476441911431207548042837802277409493261121261391021924795591437745148075076419166435176734952553746252591609193595131828883754392744125495682168945195060216677207748324555426899812743164866326603534230755487210691417700535503215516999441127401210434302775835816735880707756703750237317057427891394104474868165643427966494260541801837738036771663182710580540567520823822437923067891539822966080887081049920777692738780303302726644255850795479993324229764831183453901130725206132606481197636323265028114297487037609677345749447840601737511439728057344161770383908503472286361468250186433581084979571862569010495039142421259599621093365777847346867470659563386964509677745075179239408104673326049904453279426212118525598783746310270874559300238601268550113157842465648083441913063273444855665244650022748115870396606700536469322143359428394470549421218267914915262834616377597316876034673551656427635214180298344939393515067369084233568131031887819530184069454999631122572893103828449692749918613224734751364691580001054350546071854387216294133160139557939070074564136991315558614781642074291758335466386643454830950070231508124891475472190388283933401019842721257585531003186301913106078517402918029275320596139092126194756793995917353563901697811400276478395226496843449788435978430899649532794046769311583476202368360033930984556670141860048642885688428559005574174387857163338247961705024043836550820399347261497183559991752632531377570739647745485645677455517316913550805171522579950630361345130269090303336353976589189912116588665649772515387711598554529813828844785324008231647703456260503348035882945139630686076611703187602542207692028642344088573697550514831880632921259230589156248285207069649554165821958377465362139162883686923571516995527987236162225971513023804535410201230136821563783422060945050053118399062369398351490711956966580904118218591537891119041283820947208565700107310298651244080406032757443012613525732230430415030095562124390803151259964128903454868432253008618407119826944837494372955512601836215077728432060460984433450404411104813575286879963007725064164958920351866375446090430110647650209156267544838836717384675342431581429455279870671582692743607799625164612320209401250946836360680790659643044094813070162766039387515423336682205129809689116556349141327141125604872173689934637162638416499317148767481073915708847490271521730905576596230627651603682090126403245745026338879999086719516779237032337290958031084220011483861569489600625422585279596914351927169552192632966899792051317836536274533203805830823947449325490661244203456034335715876776945018041268750749160511854586855095282135712601063275695989180847226312893517137372769150893790989430951286182310731991512547903838541316666775381003008722262783953413951732826269568355292506949834420554329501776474133897753535969558760204194413043113229078531593742434255804715355439410190257529789056305931909590814591505689922707648415918705073792186349400786122034641792353660946714509984388433036614517301347100118604651520377603831504924794704507513709051563521099296394792906132587368753131833098735892171500150751267255976606351896441282115588866427730954489181071449835179962457972211079333326284811651485656100670426361671910497512769320079909445182526733681803083825099412236850038518119449742248751427695989991385670583992280955315000251029947808463722570970936337499200057591682340273718171322173709144839680909199422678686742077788746750409162418426169471274854427598935997733619943502923473377265476709142558369129609431787145173265209158168112035980769074428081837003390130047310204428591539111472488361857368888919677501790728882451181851746055305347869155421515574572833340700695735426465765424936804834075038962881734550572591774735125311036113050791402417544165488998861708211032007708363807921061118465278515056568488608604036587686332891861068014847829439893036588172067701320205876547370479831859551890335538372975860978887051436225087600692341830909894473053833704863726770571989933277985334172566216737101782008184750600690599383089701942323457220226791537456009860264835475802791563693304043783716009198668297623484616453560597890879618480672783298818560010187954444720498547225162310356239663752102405779857015666349361995219943680358074436503616905546561338530514436368286099721518382655785609742172311467518439095449221045486846380184747297184786307947487636030839040229261993694256745252386627771790861219052144293195429037101731599893607447513041867280040809909890610955585059061835313908056762168011250221427808604317630370714564768575192193794866153743566068711293667398225790379651570353368105889923103517008759759727724330382764989516665991287454189235377518523608104121408892393361314322829537562925985473924493586743161819149022304498387020547577065472759509273489804136375574299559595109519036057778736183881622342872864108416846301111125264648734783811530505135963845853910329417291494575542058729526776696153922303378006331094734395121227444820468860872068864100973884395521007761951613684411597627163367482596338928097487904207183357527517702708812467439060394801191550822541354111710196418531431599086987060454108663715277426682995809884095905372654924844557181869725368292824962136613993851257577575848326286537464716838132144389803112111978823648693332372070208491793063292843226083193739093798024932666901645822417209990020403242650418732879888004378942267121260572537652362970600654697139495357071271711451358501205956405980998414600142104699732203745810635366672660510903494490906240847764240927571135158035694486599023964932865909960655774938806875677119657094358653631725326961243743238683804945054434742605954997661390400914437388850236441474531784565079454422651867276986692274149251961046805851467633645860409554315790138183522298642310184753208475841771183069597397065982379502044574354875697046501438424891060941574461813501161315487858835269153383641289467702051239729802600498974525250203291346217351265039959392584455740886230448325818304892500231101120233824717763924154752554462066645181149543424367462834344114717876025687579873525067731537134506832099767856041949033921902675284783472735026861563879319237813552824893501475624396533347696077649749187763748874201151859031964253528725011884108681706778442464428632315915992065112146101201307305173665687627660692814121020507891421010865743985572698869495382540560179576062689769578960145617860585428500724940003887847951516548782791070264682368104057223411435541139534170774668408349243506610165502261499061545872239035999675206230231268787151185829997215263361162985382858400655217328689081062529026418972992548256222342491745888532107026547673210066089923756377542951553448425032236765723682827959554806112774227824483914855601493512471381128573956830040900678705876212085682025853740021255961201419137434698431390745851117566545202477172290395971062879189465506446412531274714798979957358220748935242868250151102184622405960265670392841222484719227805830099486880001193740601008626192168908574522379307305832437399071949220767395101073115433713254179790345742020171293751855748792003151926281220074076258077643693717518011642125519502934632406249527224646995891641530246358124700075670739294570511624626418287342920840057316115595771099646515360558942294673395424897689914301110962227191758623505059619550127889069237074306216115834239012243493880385353856233827641674396994561930646225659468783055256920803322532606609553424726427374837699989941353175407471881242607827782707030653475526422279901942695273148271237371670844088605244414584689310815013705114901127171702365699038614934269499139438298904653566071606149987888996955693223690812793812394656311166311211665319589408577126615137315338731205944912018009200658681170330703921515179360012124372839731221170044370933494376655182345461618542646094808525775601499261472253898453278383475705442693212820455959209116016913228485818427551128695299277495589295447226207726524679604496871156131424445319367374089125933011690513913919485287429193315587741506940922059400555427822774597962053248700600559038057146382153802784141311813972686241572629338413333828082395955799630153016515262948127353043182081448616283608967906407849639827075191814687158350111194312171062056377618928094452072339873055913809170673094365679671438296722539246643501653878369303699984032716015069993785913494890411446066087839336368616269085210544906692592800704482258048123151736087967059305278554104920236979890309192088009261455738403606572678150452505458062434201452704496732587781364656297008904105765470385648961112615469201130352333299147564531315912949573834005013872727001766549316606513049659070095765536030560421250784594869067104145322992529746657749747188776103618026908433657343947861713944196547904873784754276369285111585152545117486543608575616384522585929155453259773928608333172343841439624586688522858068380685092731524504000115460775648824218336853199186064567781099239496483271654077539567049597832353857601166371658133692212649741818461219453964930143102371825242240470717821661901541385529712696059220473027758562673372688930645039808908968799258133306465457883013327760947177493926027886664694420100787692821895127231729633470364946961145771776820940569690357750201699211160811870542760663693423085162617584625126980960370276938089237061440575506053248200985788603628014423744602137747324171037712784647794867670449732453326073100818753401266824044786563041278784073372380567214410822811411233631579497999904914683862457157996583073204842879775542109224186938995438496122514438526637708587272484076604877922554306239008231289539937287894994246618432188801864538590971298584779296614409638649119128125747644666943184727329237195524342940291448763071378111111698282778058769501130572618077935514895827183638728982573215314429457352742952881127027496109621003507238355825229029452746500246083108255315580723008326061263814335554855965561253345899229456959490793366169798616333333097085409569575455138793412171823066850211259178612900926743651932199945221513293100469028213857322074286098392357191696296986945456675096841642323873593820198383714680654883155619263392555105296389275324876024438368765450168893689381924694088502478422894244938464812311006882120128815655237900321401824576479806702000044584529863457791054840597542826021120335630667692863147932322944449924771925279371609422879532390154366059811944925494762742096778626685144682686626967118067425283087254303958679971577778638119195338099416207642661012826745868453511011439532570847435846557255053328439154492239771680868402372079125051211816791111030572730769973678877508686992773939970613858808034921642319564727535405314152173174484074518259796835139175577137060090834623470334927421662297155661842559460123389302935490781527513937533985128244723217569842584726965640198718794703322152086623086981687787588853307898901676604293755361789076405201209812071635040467628535620003638747421977336792715951223485046911694086582467062353526330964258531938049419409660318672263715211903530595323452488215718321436813223480879355970917570138938041017079994059989709209766763469378023622360287980203678759140207193570772184674067874231117008329613440279550632519961999494968229690039270724916168922943671194283649330602639271119104583442470891511487719951891708639613209898228853127533760090537136962000986011386206651520228348238341735450807129306889966152939233860973210883870209230218812676581311019183182777632794481120004334055332400963037949651174933518295581605819320466896559705435758481785975162591478369933109712553209214211097234836191647846007983231986795396895381925551734558403877088250415308539029168527079354686233201726566317629033797005684100358555117892049540908013892902194984427993147671021824430335366968056176959559455302340610230848346866320063079693582185149241614343025819396950104160473720175605117350425849956014545089819719619549569193757861669606524923269121311308268509874567314180625676393642959282043561905318107076223581202992441044878253026786650302260223118391228143877596342800697267499346135418218417516230721105984875851078069523899790769010302352429861405100057348886259710615991105392778410063233606327945781498102938543750697084693192911260955024745723229479600055339259303185740894476396798517378585915810191468336643923888226457694433736216168368779619242082830758512697570865054826229971160641209612165084067424601482735034605190922330730938159728737257006202086131809648358469385761940044971077851536501099424188768918127666251512121787752676518359805740435265618682496963619811115242715482351098640159911441078973876366587398891324535972974647130934769835889731056500080264714948110795640291685274309047259098715007487915350553064154401398023446692987759860713784375149675318274803943438467722417871781191361706169828402016063827332632759835901257225603462553133146337411530409693421094071952703928097560928695936068002032006918178258479693250281734302461971102594155684928042782193016341415906086800341720399790894975737984613931064877934788572957900884118110270432806855319425733303936343843126495061376327852880090388495969412580430207663853358417600289218998961273736785400516687297318886269343233775199314099863612387110015818666424989983412220534546377890932224226540707419135437984463077870888997579397924415234566790234710114494899452016158454395776226757094789274593195445668136906983437188826836048070172839230306126631094648464716251699091112726801525973124480648420473874068153994240373308880230920157889507177281237247316004362769710357643772471635581461323860959227386385469292336725353810153772171301290050126145317223542131327061993510600031985600863177161086457856998615820769129078750330113458550489094062940200990262573753419981486141014961102608539362260263895535945222842413052134619864645720531337122311003218130105418200838316442015316278795600421088211802509292986533904075242832494303023122123293993602104669702994723924185938179114147272402742301253305983276033331559095946222269185136871281500935461645784570141780235667833596981985579690448873099250256304759044022119936014268558989597655540062142298365028492730254630746165326568937950993981408102407281092613545472912118790809394717483071658432189119923216650754162688362157274251217073422337934695215027269369450271882879409568198382049621634654988331049837561182369597576144293193981677384959597307434801395125633055503946355866176273537626973972773390587798156646233522045257137105887378111403518759666469147930134121890024172934204659772360138664233557391240017510055325141034364536323994570009844592823051398773395979208760487872805992129011664626546617381796746504795241187933683721973863096927472204418936885888014163369773856549702837699426200057641389649916928244388647325767995656301484062300183382293596957486478543611762133249712712467752512564652985713777655365896094886392813728038368823786926343062412324693214440408477838926807875538807932823458683754992629411533717575933338752215743704364367892518612862207638713053611360028585259152628171777288892096909361103568329500621045250419131460919929688448049186796002716232374701729854678332050250522239293970637355093692279410024886616046998867429357192428053522939373955638348158394717667345533710833697460572019852524148300916250115825441874996475496336567495258876179032353417441648999438944792779582770921343447882452660486572866239126509881627651696828022113720916719927700692286378254769017277674176912480178597120767149623255815409587210731858572857002331757399950173200698585551667713262349411029664444169806029941077778987764751639122471423931651117624098804127242164417470180799750391783140108863481061873908392838329657843954228316126147209916025838206709970397050423673911691553860208392504906076275407272186815045567313330728781702939579311993608985952067875410573798625088723603862361736336386500275933493747802093648281356884669940984156165298284602052673587593398855369061370583865914122933371546929924119582912693305321952968254240634507960672946276129192432656659159727313860908401493184056633396870098604633593032005565152024978200538195968808238825862866660985707117993978743082094931621669983820648719837193283007601499064839526563398713524252666322566033287193494746333764840000092359967966730150431101716511845177216365754456821927327434103417823147465034295941966874338062255905377705405550961177353961330161859774929148382995746372639480647076908641696734588103239024186626026337185712108986376228144512218528884756755707946186645794232539336701547592114302577172790351153491082728821825346444538429872535388157188485085114875921476993376881110378912302373592587626664274492793833491535404335881348917878569829607557372800683949216815904044156080315818020261277074550043317805831443006826574347163522749693397194100557949247751316638185568760190272046682633958286218041663031117243413096445907401634605668870440992999808258371463897389721312398911078308145133478560893980379089858365916196519847524899653442131623068305966794404169653051001774751003139336564088127831084902711973565250255380653116736051536229600387311075136460983792959841134640079922670907236212442207074944028431870734760999719700912810901694250425436723771478689407628493355157557811969876687662004163002351015208910825096343905401809701621277537475570243147904568899377141253854647271076218016306664543114835818279964680635463776271698076425798835659606099898038588259163754140835090690193358500146524783200905016490677900569970407786813052950672751894777722605945854746731106768762493165814706364289453187819150522131650874530573169910388314373556820458630368587182639298834909688741086096069068067453997117160148872152955922423549238968204699821086231445121829320439390804263532484579447312232402288063390366423059611188991473118647973400322681799351789259643978330682327768582844416396957030248107840530716818630376413201108586146851931946349421871260057425365755931605020750821214208240169357198548279781122814658304255253679982452066867871576390611592471785030515503291033219112597468724582845748531235766440084702783496169014273867218063440346615504181991131396628518039159123752783317744227238023337842079660665973258837716328000519323744062417367924217946650406291386381286457198554368279838067879748139904621460135778881644163986698733140163153162601175516803558218746504072825517789371907275420306541155324320788818220691140732771937415793948544516706118966889073683335246119584818961306066632220502220218178796400624309884490861712689138142964777032975906182307345852651522108797032145459577243495792312257447192652680048677320603091644906231467504978220096925617891518890326541460322358321435435184330525492510069268962473419931511274872303873456832900429076442423709554460411904711185206685278755161477723246370737899162064377236597922904509237595720604482292561387400459021660309917681469074430169708360581954654172342967395502230164707078618836516660296562567355561891794586072877103471854556338273633154286993606360712878020102577244493535758341691749352038165919701888413126819291622636365731222082409350287103210405445125435835939696031433464625597155067008610987984223498455536717284209387984793588995531121877754306810013168136766912502521230118695438324931965212444582515197153889200861337801266317087116136033629861148380551377528272564369842700227084931253479836453323827045147280319459126985826759026451519641422366602787913732506090762735060402659454455951026416634605089141824571718142736273206834559417575034048917588905783253406901313871391466539666055539903434493700319020973087688081122613208258336032562347562515804335509322182607092536904609472893150708801912617592577313635363633024083812297666540695594037263480868089614024152213638204433493853927999388420131625148933393874817101854258965586853867641092460447237825710966976629203114276546140940019874280156865825941608607683221514483866351724840808643400829538790478397460031654242047051567903905346629020825245498568038410435615415673152335981897957519107243220947252687514381290649077640463280251854327805386009887174921159001893106845626423357620594991631401671080853362043408055363997193549529242783130421956652203814222917760369423569910463187659394008980366588841142661313168542641493287419773818627542555811498616974240496285973964286625591554846757120217978055555615019484986952081492970751982670581005189590940261241126734927566398962632818542682469554617551321459772843351410064993519611738781518751935291107609038786208270037569812907548079250983684174857980249538789935278390434560170760087265739980622490883326584037616194712556818387341774303688037497270339189895508648090260236686477802299626204585302836207549610659176837539913501467094002461711523037468330220624125383417885459077203042965202125432378466975178974743687889464930968844019346117673761886553158639703390206319339149594839975828087809950521929776320009205306716243727041371546402086513006279793784518013043962091896453038262515161306904584024035838958911549886213132538383173566492714439787471724078638572773905958212369931215096049653290003493682896045961230714660199116418389683622697912573724074493454522129411145812147265147660405362889658437868721035250475681989072623565960452543960891112211890009128358705218707032219907958628984783239132896067358974661072764231292729608890136300976340280419169330482511608667366611109161696904248995755151633804428621423002862348133724124031649136240479361566800675931932224394246306618227847830238880992612243230886135231889264445631693269095204582061028347150633063449514236390895238574536492504201363327230737366928253695351667551629836677350319482462112945915224985024548013983808580794229289667103513585570780279079254758220082256010528251997714603095480006974816798035533807388688970294691493129614589602339376247150011320611619677686979107447727602373527741009106257993420627404722914900466507279769403030166316410901430046690159045056433437214629401546660732510954385509714770404703699470632274161211785070561573993398293939804767820494751108975846747936274740106742036992556038518597701194478197406960622247649278905775876512650430229013321251915028981104978732671335606752860343061382531133659293759197931907272634499243807500376836000248970997814458212915134762582007301083246125224698643026509890369766019325718118059001338674171143201182274673893615950094833305767884623463460343656814202168033451494099121533827460009216057844492578073089937298984304428244646907123005416108648630856760045609671141789459573103458306786233559096015278321482558527799545458608060848156907653641953742651518743476242043288313233418581900106183638545026431529171058562220954152520268613610013038635741441292734482082187036514441897272532918320738132236243318672738943090677604112058690774562226774891293412662956956038988442817527958202023779868259893799507852182434249888815652079932779500252888397379115425353856067938978996311382813159410778640312964297211317463120796848364078884132166509195657062696675559435727111031661347288946644203355622925314101916885449010822672003221931732885253710121585227662708783341249226117683238414353330122785067209036327644312626155553506090624253728575891818529062589960333010363581678478817653044417140845003125709926216218812782372454663611442992150773807055000995498440477826222969144624468443535654402331850151927905353780878206299041194395018409208858489043700171937680916644812332252475897436297341252923961879586421699684441707332000263694639879061116198638731308003089264577347815104906520888207813444655464189150024866298874239790963034325945516020782130144844785973421789480841128854997984681865629147710095914729087539982193366841850159067818750860129128497368119621341242581789115938238304873997593674995750467743357514603267955255252715743802756984035294854832791276197609319645874570079831969300102275201387827541449621017609843017137153068588908114902358189070585463871279768813952521771840626388402245918249130519828132722053808291639425958215824645366464874854061004088491238067834114012228806742334963291520632492744954912575350528246743308938741933605395104585963040488130880517449479490092185261519532230598805044483310491682830355706273830606594733125822551602439465132205373423951584788524196672848146134457688449775089779275953151185417488896784672407364281953395149791102485438135250641730452261911295019794115580324042171692561747368307461876281557368264932028831448603890591657302353627792219780713442042677386007742924897363334623620107209517779019352741255394401759167972061701187596944777214629430855709418890711615930202927423258138925142010131287996008241645120247643582386288596589680735356202275826019235801624621108360165296651472702378814374662787807742502237781202775935243052621701093906431649393722844053031431125586152878053294805314239854984258558027317213057079658236665250752425253821433504000366219786391532343980884658350657185343117875215848098674065563255037849608029721919504223908870530016215209593010939195535525329340188942399565722392057515836858772308791587580166099477632297853331638620754648506945650023975521634921697880826141675809010340717841040747527792304963976492033275893984867022153436747037993174290899339489049083649126831850222323145042457241078465824206130590798378938036415345718701669494510818329733787024304885801699273827166382473830526314218787651144721201915878975861429874474922717410507555630778759509584729423537215957112793747243392895675203592058783151322271356882590058177853612473248576417876618899889213185338926798482619893451370820495777040432557254294318766652255549524649169938543906426350175850315329293513292075883803327197609101383294211065012316867374887297313263121922068728017299240277511453862579393130923722779961483331294001519620727938777434317360904248362435251039644988482455540429143927875034606500714777349037952742301380200047467495562747074714053691922251937301831478169946845774610968393585484948991796748990835822764871486364562925492886152273797414086723338579212855182828021955601220007861385393025311018856673367456108610562170531207570039637064879394439316036223375939400699547004051981080896184108826938696878334349051764005511942364688356209617160299566023197430089656482628096670769683379849989478133289820782862703356561358508424725372468188096924328316468031122767676842947491219058488601688490675261776823210836270032607739850663696340342989379563530553852760933787305707548401079756364339209850904608659801259937277293380036245553081092044461443377099152328419161614084482298466551112069089761211115758454936723536746263150671729821395616831370119786684993725959411039145955575759946831285611837377468288969779905961403559676330594639351433290994326944939251787092381355735961120556508096639762295337972192400228892382407859718339673790510395151920706909306852538475253255464257732075793337623449687321706939333596393414564904478542121821106127887072809049877332487925790285272420044257593674420359691942938759098691197951278821513151956753540163129641478092797809533714043306747417472340765711957653430939818394956049023088618241912842964609305955488105299732659080479147032972639387240304649100694223194279738970779611670292915501368086838299044988052948057255950739916290247393387590857529581784041921063100040865479289444027695385316143825292152062923962106366164479304713126842859193786664496674076690812939650840043936015756876773821678547240088363125407330685857510104259152834969609800913859295875612453046950845003861699309034372899161920424780647765648451857752662948797301696760729253842599753522090864766969720304709217365272391257357822494640315208355921408173078725936806768727554069689583674897424925332987841209239107322790542123517065437442207206400565910406745651925175686749102770607931858152348760627774110738341582116768158568368665162148985370960327581865336739915482587017513677652621355528835852955621737945544336192500923438629126059680370661145746367580323586944405941639067072148506424219780146387416256283081639998434485458279137326678111961497281395958045811908457968803951284671624508906646164423638807870324269967505760503263562045250636525144233466265620406539274668212866688163210711881777790568793273346000610423415325857672676323463443039247989195897831634433033201272830776307674318833249767042755692582218734426064542423268393512853806272863291911705248440901430855475030109159734616194822401124030049125322783383865398870462575525467462961085130394681620807727346521757899185904447250033360513762926897003219474550516153723809868897118446998511882099310592250217433324752166366211872494494782976725386381834682527365936368975584872613892008033474636305668710646253190716082063828467106744910699115889624167095807282929822602739612364147761777162218590104408940546344430981038696561492251524551468908473524840499957354572117602713343587979089235087269657549630740454032074357208266906861223029936567932008008168649580018592019731311492735646069192799651545769238385396409462671486342939888357339508564201205342177527729673877998487038528066377679926452559307567357070425846533244473538633986335008009002319274639297609644225599241156392075829981432601114403198630657792674867317982712830125074803865077222816513835566132160949214676484090495107523427956736181353219606754285019413265620009145546215959506015808241886954889131176489800586703087814547167215941360527796213705402460052237119910472420845515582538305665079562632106746500400948241987824153394228109196689358119805709004011486803941641942615547707915628587686900801732809626512117625851551991873698408374937408981590782490211722026219193522656845942018563224239625459241477070272289039864423593389605530876802788816014320129608896139382612132670212501202950973722143071413707272840602456112146314091595782366970901947046496431570290713179430022500947863543092725259997784982214371219940079568293137972770852019164002647711302713799918584821207198413520431884779642268531261949109261769107563903992681832298427288829744916392857148283828516986177592001784718950133851729570758796176088505875508995327465488584573988880405525731159820523391234624152443589040767595815397504039445710062943112716900610599158305596245058288302727655211056266816937940993198665172718688300304775113909645995677796130685470775072871565887397411118771269123429489737385088152735648673671532270960867334098951434994638660157692346346677853934770106631153571588739236014305748130909374131976526219661472849889175577068943831716850247394767127465590792019354446350060396376752265945920997430346677606907967453415700967606180048298267354025319418669101277183747198699630646591084716418633665212918303237378600775063072018666174247572080987066501358231996699144215244884175623001305341081988587723689307855827762568336767163814576506901824913519560388137908411419214470984988448395422719399136274008658192001805539062609501969692086605523276725628088196678385618545459316688042353987913483016119258341192865280267074255228769860153365009756986940483223136467460994795411402238621276592485407637572873799121440739323728628355749005793754398676058524547517334213626755068052974284853520485862005192986632643142140105644138742731233440976328093088330498941557769534187339496722950082280719296211190194221729922496186069453675423453531799275797959284250623797994544325228449561871786703372528065077537820856940048937402168122712226417533810565977599804493561653827269345125963697170597368065319594549220020673799452402224615235667191975208527929432072722360547537240183060197602990126025017451096370563669033817643508579083672682634918215263418433842362958685903519846769112564756588700073621997226795013847817732025835635874914549624368276805973294488827963912714729443737998490860555618080571669931140600084428718443071710453430642571013599835581157311610868732088641823274550759583480550665100578919371987368129747902195385630461572123730357765265262328143174543543589205118152721564398080292847033392953304956855168830397000663244847001748041618453255975457206775929898816526808710613876916012170238895853873626263864678023632679871299963880296116721095721805966985985995000848713736928518986437115556859597201685715499891633574695959969844204052952467441224902577287574709091259805162041162016153541037531422303585498505719523433241906377089264528402269936435342833562207427636706490438904782716709979030699662324364146283008647882165115031744834928749704130881186639599997315482556381699706115180671192429797518045719973239590004993573990237709983924408737259803134629212778475100754275498898156090075086974783462653168759255939018397280612495378418081930409870958013840626434130083376342633673136801322003434279917092270890346449987666800197461850735589645917455153493285646914725238607756277728259003771125692825742679498761335299668969812568456704803236309949326465740183236916950829078707499768099155232381596302137895979027162760878714792299671682868877465210148247303350052761334950528328879970067965149158799093269034970721858947512282525211224805611481232660259751856909804326564063687198893618441638755548110610632348603121129213502120846888910921369572632396997495778269758788759940267234842937939024122137780065932255529984727232807201094251679070101315490395771000796039450386942379778656507834558709162037080606542914024168996452986933512462457742470693391090737208153073626087811724116872690550566104862078509530422606562295600179318457080787198452574489242373887563624134239722717881551352377438277224209648134198491195077315764790576541023009116825062261469375016964584945834576146582421615648130827040569754629043443438551340400390100758743334476292566790674986252734009645037131205244881265536103864454482513116562836651698152305254275606666334096546605649956993179737666580082201797149964396613107891865040409182692669404202251532004912152492163726770161775906450860106638788513662728079793655624449813008146847899975096658678766833186592526262901373896814864439080835533225603079052440551778269815556059846715861062691236839941877096539853795661886014455825991007247721607961307182219348916599949830387283538699791023558989931369506459087596514174918174064046288937586089712435294545506698844334220829319933618987558497128775641869263589306854445596578487446029379250088641281201212315376470721931117078506037437773837769320028161910306641167275903024527774190359253558928497590796512479503148172753210061970784261564915444390908232861091136411337655648638865146443753284275607704992356184695186109674336572363610177998897589430444026969612876098403611466293847863349792517902903602808674851153505194518532022190755871134633656352875669097492249341652710627814459945331094821449608498292582451737506293520762413858377079319743123244613359079173402715338261368876934806727763222131852509638346091683192899138205028412865524378269030710732579865013039321759593899944621375413284842471430119623670978746686353737839806955724019965039130733632509661099393240225716850315028085878184844537867885546312168691608643961800751263541698154983727417507074640263656371353809586838933954836063376027965253876479009147408854452727494988605250776042868862368080612151233464453085777933170229767733530177768794484226374194159025499443253394660669644480334767640915020183518654376622025401409067102063018848286635182416006400093785329716388984776069656668628324917777759198557972155531865184870480750495668074321852054520558006896690660129513669647960002451678978113055787382719596027809230374103572325487366459698714598814305701535763510207743464049394939614642326644216543151317103798889609105287411556957906953611224793369132745823694649990909581355177731417408084196321935856526277783373281143088285259092319955415960951243869537629636369258506295483873568984002960397742496270662948267079529583565259801147459666430770521806535908044875493873961921294664230627520541742452589571374164969208991408813912622854570146306189296543120327309132762370897984822764287457112010542487265498741447787274293416480983332523110938952318767932927607335590706604922182906717996474351864903343680970096959774997674852906643001956158003087045233172254055775117143042323247209064287897278465474170406696756380588056681244957973698720413164967587155458320333147175811720927754285868604773085087556877565616259365694054677195321529339989073189989038043524247450905484330336096064121632442660595914092762043748036131468385928726582894065253337285552170639317990670973169488924847703689769755232136964178726539608414448922966997880736254639808375670380646830452623714523192448543855862081058866654190945555969388665975715215108283180149787998690755124624044968146220964400232537299240092493553801624264951308506372443783917223040385743776226804238541484133344267541671224547412319414885087654725437282636663409133046187767777766917854890035000311749342861687114899188045268799092571777926804632132949462383002851813117734506367822816331059954814182681424929025295182190359987446435152195979574840381610078564316909753056340807082447664487858091461488056550017947906554275037963090953416030458922839927083667699404421460317739396345471756312198543086191974754014264675354439340533580438360185686205799704313008562747603959259604462100808797331458564100457974509920697313756779136580940443429019201427703770016520092499029272443777741562280863173475224248159352988913881083062303619161850414352449411498834836172566001864828984742700919913311346304283110791716717455422538243828807404274720254869625867087244419669330080248345677220647367921361170929735235106623902962229643122356706532087257870371920750558823807731056781916128271901193088603520655431363688758858592904050309731798850585600112586477490398842063939758808151636310597990644536104295036337789724640520120672256682407114503830163892541888558700108602518381997765406802660654113878015038012177760569084470282265924676383351602953159065779139202259648174962421027854905258683924051656768430862756995218777369183027119323634604524900895156305379165204782608019190674595452057581782674924367995956151724286606246720472273653618737196381358293116742786216456529274123290832340786590356866350479445658428077629865820279052040764890277151682987279384867590493748421420607852953793512375521649369291744157022715368015133504233143028384888372991632875711080415270852913851858256878616939559142602823652889156267284434933414676314568099782198750797024605079574450808487071270975845769931853509185470395352958780471086331179234748230000088570230993991841429080029950724928918489179535316840048572154023794877202564621081670557114212910084778481234092474640555866475465451302567735930245874489293641216858227133135899517354161694509385496176444954545537279155779144525364273439329313614810766384240531043159043448236904602376037072374922986946230590810332624873006227046709373257712542368423837285240769847887430838542747012097245645084984980934772566386308764410639326685333500114632487962726690450665149864088160967438166131239776828664705551777783279299183979324025641325632144668793267421837904253456296122775184562836920239184109986777678916353735463555871019677723618965887823123044402110824866032066617553331735369593272464651982587753419444031186582860391339105654986214250520464507082837901236311169772635381528248684086014152834189755964971864340442739798772023494358112139597445633880898096366715520783860198473505762380417611394441805985732118424616608078074295858418059012886548204123554527978588180720797958263940589410380764607184683413399075087948526439252893757912665087499290996544264824244113299289236133103699870183549910327548313467925510982885057015609537088909951017234871471312791996206773106901972414228163872137668714923728703297997299806833969382176957719555622377436844372385934436196718497839689920044222139619063064845491869162220802880576637361200134428906099382496660736781227697486025531170174348331444443681917177179418822682981284487328605912847104981134708101515552218122488348241011013896115750523038826034564516480102779297456562090661899876537934035291809706877488727787587225067758867629934571287055802480071153652656395862130781734596281589033549788101768665595635350621504444443848018120458270878628765386531763268633234911548191202808961884783117547644196540579068529753296334741263648771757275708388056909593161405060765057696184386977723429991983425292133716868059266181074913221688153527330250465826317510021236504250125534695859941587014665078160635307900075618117438736768673365389696805506980457006469893429307749562174738795943540417529729802529774443794363076910557141349922357921834575848147676166491222421868613674089596412210417571832789000303702906681374877464457940323046241851153992794552677934428126575763925310047246453336482438158333205796388037717421720446115306828030479487766167447651539193193542073307475711111507273217567011885656731927890065365735952090171457144432158731931684738580775011540552523538081515616751437427212723331723907816596877566701351191580490792451341111481211719166344976879979708401177688861185789572611954213202121574051215404461322926959967149612394820444851683413548211519914423558070754295124077769749513308467146243654682535314960719419377310027159914788910246611929019730220248759421122422941502244232010841512100190073487632668931129151383097538663581375664098776453011484122298872748528499215863804757194598865260215688774930129094316023677331528924026643740330972111731841119481585112518075270891190671266894625379378288978347627580956854945291233063837855985558102341354078499704823587752875019083247492429541913465415595059799508457550401168149715615095444232249348866230005020662239741897127627160177163807880652167556534594469279839570419027379445079304402998980323882123790257809795258188189183082266188072820886637203256914807189865020370293150985819085315027990673983271284435705389192940204957982862165944198785954961929947268735454404249550979258685074880196633293491680586280223060534969157401784761606824813289131535304110513727686316320716606860522911255238747768305907753942234331504614148815050388600447969655651850608085793947891816865874247793768116804530179825890651100991225359671410783572228304323711212750570025938621511543714944930037343509111016817707508282423509577826721596695219134993450679189002938216829332396872835549332866812231634294071804842169130167716519137157215237356680875358421484439291688173937726180280776585826639380620182274355944346911029487611790908798916487023699118641118848432457470097630118059797094220158022803150422734604285147557234181821794759855494529378419973338528629505324247081072990871204059719259761432006705868229323459935585307407166924953811317866816793289349620684294842765718054612444434658207068518746327373977226445129352695911458040707664690030350001972983988533122700092239036876515083657360527230189946388985641014389217975822535664539412611878945186212235414321458151118137434133720765061442439941513847606658408587060167731152578118687630707049117807368285412534219962279366085107231103162473249085726306029967290644589337530172596363512844381725884008449431058551836645654958906311723739863684548294094756103731064110337610438102592462259198239770787685031269926290063881639344627062147662417578553793998064055170611553309126159066638870782521998871249638381883199576367631735000222426087338850621808588008203640992204904634049800788427901513557882669460399751750320242933010337228280601062394033996934989476676527881198346305640221206924535073694911175507723036356940336933910133538963415704959007527835387777097225967589614746999685731964735676607376284859672216015117869126989791829719509330037806970551012383940806082246217331669034534015140018720997022500242040999803484962924474394283056089411640998176036903567203349121736267235401482677927183943605910102727221753736093304636249299491660502917718023458577969292716509053646258796882644663680398619913163962481100988977766870870176512720776078020743130597358839553506822924427872211891368940422494703095679581959699265883039821002879762107375457891783325661229269270736155329967856556651718845038250368908927007353040715685013741095725233605203856842805084039023381107592765432277531232956569996628949345200816576612095295475044648369330034601536219719121470369594529956216759611024868590251547387528292411034523164726379514578500133881867511686178576257826754584923157195492811936010339446668974290425535834024189925141315293292545928325030116155189241596197553755716531557484611964158725661262409027495815708336661431208359907592615459850505525524307065740768124967375882007911430816815215529356853248529213413300491095489996788103049412007989361966627516559973255862638175046228980736354729173049891882301465799510748248759708304496424238724323295946350347014784540872919275708329570663608862869551043416636644858882686954465715316850582115927767823348034819223803742513401915779097138680233347759309685283056212709287636684349378074488375265055514010638174992305801769678434767523162000199634247893347456951226959931228125848779251848034862752250424812825013838288542434235799730081943382717804176731207597972750958839362419446303117622538546479760670075798674329626440608694917706141640507339167446167683884300705107290424541975334267418374532967155178974120303955465612403185894654527014658958818127269224246948416856870697883601563370051275475683735625254743412655914251191925325963164282892527826814499755854184316225167168630954860872986053838745247063711353014026895247701385349237953507920727228087213202280849609124558077290933147741694072966841690724706491322339606483089523495824935124793473426731049725026546747750645345978994554537953130286588889462684539674276777569518723828210044906948087159331034397757254651983990434022704732573404484334902583527286849990987727385031006677449365517786197725068216219796598914072589160661251588927883559761779357618210922340404567599845494447401750852955608673893624042192979167575382693842077968535820672762947027117802493004283143221530814404536228051839814151189279141007404542399888377444217707589071133018927309181125323941936403378450243010048793810649829568984393916574676117319881324526242382029002544580541489808205321839261016239497416277203021985866715159426821689143193573484498661125857033771724994263267185518208903288328801023649700960700608961632318518862272025260357067583858883282901900459086390004489383568691924507661173252099631242788549504100278709119801849752984860892939582878628203195434991753439893153324685453367568204038546936792435342813721197955491864165576842253105098433989730495890121659554974966777771623037729530315273029503817541325080836866848994836480506001852015979408036668474461491632762783436181419865618121587218111352039814689546113618341439250992894086715835143051785767853280035282903077424118130128108427282276161865667767672762276454719624541698453135478562153031305990228334701979724085604568585242364042828486289403872335909869720166008803732604951486438214234698404246368870954224870149191508403564841291066280943277265196212522260381028563609714311897258119405940829926884502088908040223153867828681315779258902862039832271287441429283427296978391050554206497278941061715900622433812513003962722360008772567180816753394496024869189854563817125251238578633520868358385467627539321529952548277281045832190209905418689181125672710002666566440084280681067991781258450900581845083223046806555522266052668477639624935971144061338825314902717252790526607170602632718650812733973875738914168530927804750122796762805070891654436868610756422451208779404307213814660617901222655682100106514523527133076096578012020089671349961964614492455529715916406628865173382988491006716582518143592142113396593068382069924797179928712983279845127859214846943083620591076788046495028034140149761553871804178307884878016618846843635553442575792474884823616395147500224617755566398858577236271464607645508945329934477526979209476705195589892515408125413882236267405503250489865542239616190150801616748317973702596465332830931139156121715781856295426857926431410116983832286357088170190324758629619182479948279872111112252527653704862004665923721285714699452201507411584094200460041865808728164193448086978307068881887285265156650862195717705352467135992280990923320969378981784034304985354262781474964309417632943169246129189323898601750938796966227661867434032258090197111090173908884187929649885293236838632781865525928147940135595186418958826294987595006894281060668588376870458321459358024664950711859403354501298591421678158453325301257254853987455249052250628450068461739389287728982723443311137236450365352026042329948136660409458487703896118687797070543523871855907256829974914642305166698248515127623288516070941458671614428814012961466583696083720500939805135481189878349263395477402437566628013732974640057680911000852479657034859489231210634725896080742513254052477083553689597941526947140406073063659867844966527909780258237629916678676603131537898443327337878414612716480176643904591776752015323612228729450577428564031892275297354458547424086773961303338213506120357344636171497289667956135863755045026461362818796482748578763056187215461696601988568556113004198429191767748202953513049062128912590870884846193609920440889075588650421149204259109055523641618727337890875751549340063358238298471411348317794421333030663109580402589629560463844437895324556825990783083308319907645757997576088739000976187627877193586452139241246430049006052883634174006926564537003388769651824871608763251107859958230776307625445741942017476715359166716665161180934802063799195849512395709193910437903228734829029517890124176521668300155924883643456013535217912108022110835148782409185509045355652723080891764694353111651527967513114661114994338023419608157882172478089229251042308402129219317355591978915087888300938381510419714124972846882331238490946164627336070135369650388542076867431323732150437824255730160629347318298572718717126824682823085498809251481598202928130043426524721169473913752863927424497790798336491704494248861675952266569378301093005890060584615625073932351795963272439923241207831249040480440875926808711510432332126791374371060433616190939768874801902008301697857703884111893339313488716915210582231371879007540991793622923394435553170886341090766087827916980270767679056315115552581496092257593255023542167348535984991523307792851830628560263165698230808204791487517158454979462317716364112144875902005707095572478777468288737145286995865144798180370702393967526624972294028203818409198946365572614042671886506164666393891567329639974183722774096453695375142999298734470997010987885200472325224187747467190978456544240110963630597514841543057840202933741670994091603110325458680135438544971564740459631009852180514959368897765277513852810500483045867168623346523071478492956846326573489236932793436528887180224008618781365387333168981304650999623877208617612910051776483312717151495254149311934558541341976469997529483763165590168241957357324190850806567428858482081050473039234588479316782541703496143038147388836908531013070194850899633419831534396207689549955106882484590774455008860581210073703897285874607972792892201938843559194030603419848164411115155115071854380571450467614219009540925327645432577917160280219444646416060415223358360253616438164117924449234205150924742038409404986040187947146616296894574625888973238168202828543389729949347564793718424330236178837184836319494516444066492119594426437355790867968436830895504531927216530734613767588545698246101944885468974702942810628848136699435036695903856287254414067192168948788126373178779716881531364427140463614931112504051432580932601722103278169429018688394477510187526734998650024172580488483996991645124265334741575987780418363510038837727379792913226659571957462600693449792574622166542416302547666649658438390257876363490967338341654939507778896697111909514531027020319702494568576675412548493056662452990136214866350455749315786346731064977148909176924068011819834623057550399521011146994646237873899473519727290803865436915852193560164894287565457445437503140517761903702599062454414318352112455883709786168610375244111339741525141223315206611471110016751611895690460251560586964667131178140166428770828517413486552637394468444771017089110987276799835125849169802888403596827819305702873984147382870739291329211597223540970718821735020982528949734009512940453615330273085906735685449589997473630492725200388277303544379907051142286488004860604631364360674316568302858493427845316311910016057411212368065845126906583847181488462005416119429459117622182216958774871719504720021474762681644245259822836969207114226094550581499546603074831284211564636589325714959213263978801858957210147828675942936317094602431452770100321559131407440335857361461228423912206882525524930666267159037046107568934466680425560237907268690767629733609055614435217899148955088184628191108953380724435982978607158574684973370025307778752238898672299553157632997492399215819254399896528767006757608845601809025124224428869745111811815268086786391393706101197934815635671900594934911320114492250091112619619447018431802845578192555512231292155268075048557385702051661635156440917277425258192817147156428746878009541859086268686743416078136113606454188925224054078072255650960584276302658188920234547268732504841297585340110051523896200648359971469552183015003111315948397997407413979748113681350446116658609973883932251286252254462452726236342334960072613544526840238121867680416141364106200287597401493728010147671411817606649966042669507758689836274741637149909301577786499335245276548910903944313576585683021170567274797031387770821397501188541731915628964941215041744457516371356742873044318025347489620989596384018727312683651437481795260574248467755629259245880964589597421743345197017356436872199510522673347819045645127344569961579067410821106267505125593065564240246949858621056435998131076895935427459514817816454916840383501703572134366603303681567973246832656463161149022422777419823548953173839802853920837257673213356891118404301989364277579213722713411263918113159067854573081307220392298083356424988111748582483185637328864589912610274439598954967863356301236969357382117821000824645678678519573638087918515630947623136131592754199349033669979720976178392516316025331900883051654496376384249275834866607684562007296420597685367465619936096705788216273975006908379392140785261750926197719900970615390666699909522759669003934919047747070390424449685109029994686264176853275449945351949991870813457238840387422393299349339840256209146242111948274399180581425524810112960868580341055110215639806871434862755031443509487480190442423845304744616347986651510952409040884621605938216785796062168813159279427972242129673047967590262436071483767578012839372295306290484777834330339993655182055131322061594693235558673421205309330620601062237367899606104287428575820763085153048927082052970941266580677091281649464150302183595866742515748551569202187637626209745115072684204197343199085320048781502461587381816809616018465059890034311790557140278018248184110007446809143161654815303067570481238486980061374807685053820792851811030185160124834024417723808400812525177252603933655280171853747773068905423569538454825609708020021165651278892150760506848681712890127489893744231794949313158714624403695228606286395895642140320849472461965077697036661436731138016135196863488863362159984349157989546534298399428372416440829474024531939117366940343869087497989699087528411967936272631355466339978944852596359911291772984872383524240646408922660052500037974321089677392134861514751359139580246123813109721748683389903558220382157488141568394909996784062329598132465504468088003017507246661242192787407123846102326646096714993145090874468035207383840411809761572177945503806604465466584623539878790099798780579778745004804348880283341886726125632833380532730287398723510820919432448086953302344598205340614387284590439562375561458460325831614038911006471907645648502791943410908396573487342789976796642646891508903924282953945071867181703972224063073877791341610775687179099261817480075412072721957604346247686792379386524554651411380396626117756269052665588197551004265471033303648176358827961709966557861950601464547402597752730450632484765313583207528063102731486574411821627036524277284291725083445768508815951268769277157391882797796526575867682569217140918532134173559008684137741657772108986645663415552335730300894687418727760586024329341703849850171796634783788215753855652985578259232159513829282427322563437304398244412975237691528133643722856315045875483581754273132007858673951058633931214320182795043351253802061898673380844405218132111263063098559495821984972552692487336662927953845428195502717429729329778602193481096893760473247652675216080860165376360897225108793880979897768976288658330810284143419990439986410549761470996158963551282394495935897133340302461776532002738216638613050373446925252513233824136728461100265260480552020746938385695056794309920990440976146220953338128080878849701827508525603757449985483250863242027543001465649334243530122605307630243163073208312514902742535552083587876502181542547768271914541244222900578997202384501240351878730797625485252003965596084673488966581972961597815974337759123479187192153173655237690588524573308190976868778684431145805685743548472871345972313223491531206511854884602657251438323588140930710704187099079935573711185484721904312300046682680536994219075623977304004627551110897006187816546006281026937202208180045158066088847738622375780423703777152991848851483223663069307728908617732577697429087787527499091418726539937326435204456376009704611212910911375696894264447641784986377852942824923367061298190761565374453988675799837617928855494616320799143601656211972678479722574346265653562304414986972880610988725274242045698321634565818490858830278292198188070727779090799910301224952681818019762984461053480561245293069319940666991946446144069205174749781363690422176842690800765455105082294484686051030463335076851607430401244868199327832298671908912711524811882429338711102880639857904209055572968771757651770286504716500468748012308160215871309317106527759697202896026342677598033344850891872766823704170118465666723168956527948621434521332615217647744302211840568554697022241071699235829307458251257592386146744745456922957366242557418824314488813225850013705097684958315673111388279841747761538696843033012480005070913239106237906562112431593219889182179535100501439329146140160466753207584342784530690515418583681909077689182500499527488463623692745740922782772183114661044342128368046657914043668237079285875062158268990053255721517646512409380433354918972882961322225025268414120243614446449049781846074632988449719737510557932660977616867652048479414630424945845780347643447732211444924113790943329653699502139692426942898927211412042847706905603081195834083354630608223007240526639760721119398994770586449810938320427300688071110685028194970637986729238946806781828574807279111367494648575837890817223748179089390550583462859252688667728834694312743556716542624627291842293250732161748410639532552972992133135915817731184677810355079520080269408605081504622827812031252146389870827477155002031068771096327629247122725809464305414684538566205279568398889146876020699390415300971273977807009337522240580437376542151159657170538165129865028890511209000991862679919052745690247332534950362076768364619962574394681789849266622092762077694640179560755906021681001168230798058702249191664281703974225033744281542583759364856081196011687724306314784637407647637464384444025854578827261228746709268608157791013140167918544637135089397780293498769695041011551674624710474680557092711064346560499692754031018399572299575605787004088038139300923537373694901420420612896077671937171117657687533670199815169389350302552442491541823219840738010073932484638359025951223261796934329556013617711221927717452059446043678803658166610506563761846169012485987494954867495919862802659899540650544885755035435849105028987101066793479391717917869309967445394733228372160073009533881721374772504964343485554265336887636412751076953040813686948723003997081040746248396519940267433345691551836181097205685969575627768531158307287936273572997316077402549163858462620241657554071663381632202500805429397639908355045457253828599594538229752902838769353251629856627440338291222965136837966391099322391307197645132259370374644197811678257571995958520398846068920861490240466123173094357857926980992358151814821751415935064630988000504035701273169198654766567194294958786471632945722465073429268434882893949324702623994701935379462209641123388500089777841978380233803749050461278799332184097806922721386868591205675080053851858393768531089238868743487863749862283189865502388723617878641840943942698741470581540406546543856649125077644406545072776482067156954707084557311197814464772045281164598229351400133043930493451698378506476992064887759145683724561173021533150322209910736679540640903963308254594362392994127720545471727426352636654317400631580374876931045089988451567295388661043138129352330215936017162392953273677068874210115242577631915611268056790218703303973135783643858895794221355451120667190020970922932190397421667324741300603429038027588170047875969707387847907432800029621804090035895258138710160505187994783447739545727772601537688176972812574224887895977060042516985596233234998542576190652428813380449955863948770643509284482683043016587816698884644648251194903747742906710801677369920549424490537360154851221572862082876122759296444609525276031043284655429127739122916303406861407906662900249317300912954608941042645564081641266784382702906487095801534413044757671397364734422112314122207457222801056538594035977957575212788761368054006419487084432690192200977369536753292726228836012291749425392320874813496955254869346663564608780329930893977955657962235413576415700264299261511567453056281511835423146992373308628356369763730996156536016498584042078101837196937111732247973143089430149397022975417675777509280865541114141408822271674999409943264508241091159086731794455399657868723131749592595861013074162850122810016709603512131867759988430577360150658138038077342968973114441147283840222469671693491794468764911246446198539288483827663483336151313375495937881485763853156053585724484736153471865988261739662906969797055117238258058147014010183310590815404637997462098692931444118808795243056155683054408475127557077065918903221863665498860857112543354892214002077690473601324419085473360787864836345113775478917466327844898054830167697932760244339181469463500444971774512388239179466035944748206805354443345649807748557376161570184348885349485700759163535741368446072814269436138245465034742653155703295400600603996156188589334292483877322849164674521448707560143320927934957536605853389527066869049344968105483825475449749128382010768079991897854263811322692978955019902045072236262206724862908318577893075437972041754308960364517815865952345483410991373080315556570907587500011774809009667372892805927721536005692624203062985394479060118417680387176274525479041025342105470309336204808215150153884836162384430480717245567442237301808742219890874416591679727635139584512939826149547356391681164610716077526336105972392624675988750708094079026412079524221456940173284168199533200243606210437846767369524179745288454151564326950726131642367505098838220545844198622567812617136479867832301930849331179497755837139001072652595380496570877577981001847351295172535169597305313825910859450638703051449672153923135496689598273862463538710380067092062326589308818730141119099561284218704979151224276871838759648285320950906429458774055464886447164617889178314600071813794637304913339173669025988209230388854605287896785810525651576546138323418075546746148752761882774657478396178134548173939341430411996435325444007229016631260378909085171125998585810096245557311533204767880922192234359143645641342923856423272155919242614737741813640536880553155357365527823644639328457229940907950283271054484536503126726029005029349044063569959292554497983278799438785320610394173061300027566605252783836986206870242681600584380551582699222301191744113102037158174228246176503343481940913629870446931510333579693059327563237314668301529589119844908170506649874322648169436135185337395809218743609436908197444429974860336083310709705769984803059011861662747561815133661635531307989910758474620095082097550773355606034123360249637902942368554909981854406082314575771272488260882041134228904171130124302798543636977430882174808661258455515210248824101108170653268994553610599972900000116780083773045865397275584543722398649222673074434241574648004286888228173487056167176576944857108484693626565354053146047751388605643168943517133298194079780016905301646081639160247323561308848907784133318076584413192785418577030853394103328837469236724215665460267340452420234124199677830033216720150054123299317546431796779025697231726105986671489629343422553330117839480600306141066599377666694719789687629065179201493712316704782622849402520579760512033220676071599544283693722877018270799987273964697432357264033694616561301734176383856456466858513370067892111401930019711529629287343873171847996861477551774489852375361857221761418407068122738532099421533983461165355598403116919373304960254261402768746835131183840354329906288755248690585035173285879632121572206937012142868405779885688960548465558723379563838709594090708119912947626607768929539836904408086826429273100835221554483331431760836866306386875330638226116091171537897479363400070260071047704162035580816776124349116002515734871167770193055738581293570605186395662895347873137179964844360427991331735707604581675869900729564935240058666816777651466649878887065150811818023937094476961926247868048250243658795806784334966847671141803055257682394303161330172397292407799520018546232273805414202741052688859387897417750528969348068084880433880704274739154312966398755831846792334119790601638269131015615340400226122216199865141318195207322961652785447976258276423882379804545160029059644597139638377412314588600552475830290884413760892242622661449917470865967341265569035110164446297782378150938859717302665590470117654149835796325317099826900554790631323939159421598767202927993369999516765186376384294223775537083909450816063419542557047921110991628235282794303586000990821600227425160697453495395189218670799109243482116758722138945275101075778977964073547902695759887583145700436179641102646092146109363157265585055992967286043604990605346114169437531514315097764198052855135140652151461587996546187996763727824436178188463630254403252402716571912362247977092951617310468374121765412051247493124554543624284886365979426256259555094521497790281066636364715902977296607603920524466037826086256129202487914104288485324735596082731244540246597377565977192356303511347882762921958153699764657865906753217668653413360820475594103280748205175078493651898848690937902539448749505190167390481278932819771061064832537073354778612985759782879526484038512220716196675438042305329227925527118548435801126659249385561833912468020547204189483370363027878182716446934619152029894055108742138921665097987755051061315220039248019832836787702066813030263205088059819301787678867763184337954721846845718969012443738428299439099646349372367888971551737041314347583776741306220356749097483949827189937164536708216851886189024779344513259947142048522100742191143791475061768802211898281297895995549526153049870705657510644743488456829920329646040524659228989578670232123138684196193823539943826132138992519630965785858450737753446942800032927134675127076620318593722568640735094749514336843868967666150119569209133962181815456840172406644606685475809632457706605134876807718538576001768804303318811941996624529922453214757367808111173397242504931611911739014376349362000390016202117197863807497552395299751176105706497637155698905745260236027134225887052763980335723453503562589335611216462484347390548819821411856055819783952041046338824019414719096633202562087592365286658449892287543116319025185317410677565832054192484464983041806120995454904369683883038723240765219645352655360357024674673691185414278431157620994644514093890205103176330326022066002510955739558707922561260090521624716051745854647441496000140589242373697718270596862343512025168514102786369135059590963858657251068437580715310828449717059418264226315666761775867254102980593302872449459533894874530241541018860284897716930967204935672049891754010679615709930686821912855146545339805053555401936396748863502885632040008803833072198871887318761894423159464660575480577245610601119327672261418251620700468210180265200987755905291872821899603507185989118519312216087499298678648296149998302530143850668907433549118367460801893305895130519897276992735745651066697957238550130927587135912924868601776712874701820890109249465857335254883818434978511100585197675571593824401175601971189442344417639390977964241491869434832830825771539319661606313742464116767350931700470020477961577444184689821583463911304916287823171036636000627595005652144467076574015247483301399739508049264583822007226742596555499460653548661269801816000992089283472015917367859959554860007682564168881587945836955795965043505851455821921640897977920097122868173631718535672635216077750314120965147919248691654529180080450464227805365650398143446407615412043355339036651267512358814886165038258054681859619004964683677275019234306027182876430698983825851327007793389548373038842570559938646365330364101965470963166581143665585371091260920585423329315756786277016628951815185270313458678378980302926778732251920103771789484116209448474315119002548173644942676807678342517065714877245650337013928877867165379046647719724352726688112975277407092195130383750841341962488879854651098438720972826748549453481503301822275472225804213063246579074682457628012727430620601065049515933936862992923609974013533448162827309270845510546517901800451976289205304152874441715682051078067395579730340752557154069125697480813980332605225355558079482582793361348608259916826255857464528762609303729387313180203781170124835761990319123953425493266012722467413794499093454486590641016477925211290158650537982639068872862219901302603312608027583002901305909091779923401527226038684048841583369539163586412954448257194046691745702235543150221687196830577366634126376074743514711557609563158896405324154646495883141682687293308649101287668677825686462747252993331236535985550155392268618186804232460095338683072969015313415347476701378794158005175269993042575700269698665717655223923801739302077189858414815179348899119516165618516904369702678912515246042301905643215187111239825610514611229630716821376267943735324968995168457308198063273178392929114504107635180110505027267531489656976820546094143106335461152407103419774908076578260401007022531824884111704567466187663396673293201421787336081393617705752039994490579212457588284742325339821383809919438565035152520956967514816988214585561668194330841130986753847286694955193872701491278898983112915348828738461801704215942233440535557955005243139827200931224901325704103873863408272433495860659110921778507305784818159506258269020985850715314575016393042564740492281074199754408848439599729299921144955831831193555196127150760977568580965437369653820109180614243324268337828403914833440587828646293063353900627767095271939790267265269854445690154412339005162525989993897956019684404002122970190991013561559400430426847559205942903637736509079422780153377446293030881053578177188981533278683952843149983420094049648931824826902928136456465582214539687868746230336347868879667493495817156333401337173258356816205024628435758715514959735406115485254129560370935695442483786866688395246398701287680037394724763107409910102522188807378454710110322503810566845408744669103944204786568860255537688329518289282862205837407450931223228284803036380354840330651071116953089006474752637860735443104760394572141664128145062761219276647188988551522276231773081949733381535839784433309596289022351932398137812534210570081904805889682863923838544706042979028217746482019246516119452948867048635729773838632515377684117586745199427284460923527089185186582343000144508970862829800958471709280636215792788841160675938557472378771980995756829869360918794619837620785539123150398121471184228083740906356265462767615623049911565734991659966273886180179035317968344044621340413054051449359719773389792476764741277010838210182603133708057482974377654136194883141561669186229698595768507120681701796611084053647702346926006283301756686661179109580472091537928647800808340101294969403822563306998964038772347016268008522777829702496533354964781024476313268035872969509138135067213668210922411754527433750247009733148512616856766392261464409805540894696666460031749683326752293458841634942271306802738292877478943357919502279509761458404363116635795190512545124220650227495086518805727760045005250417189542507955136533416190252795318981168559672085347176360824470862362923815688357193296002487993456401457441828640298279328256315512374500278428157623604543307429922787562646107462086759565948806951796706316278448809030809414203196572344054216047734677249630310040002098851356743669393589689942915181524182759968017014383409067324455894047485038824269296229647279690931695396568183351435800176100781784322689063343192143468113207452312239394975670566228985928707560232228190774850593324237422479822773165244002270428062720229178527412020163035413970663677940698764409418174013328299395830678314033746729407303983693953461983382967598670864376439075636754207540668362388684397191986928334139490007479780983890125127476327286345948337641511219955447289899638763034094260470448544663011880883306625118354538859684441521024864892326819211981559688257035564111343433718132870486648595894377697715188998535916246921622792701558000135255876721773917034051071366050570224174548987107825022975491954816775447785080491068823838521272008662095854201359947536347195601761181349232211664908825523490389377764011229378135600551794091703860895050068327227840793280842189689961306377898942609045213969472420311350413055160121575087424616983569428424637522149332141436076000009456523509357404237585549023574316040504277514749923864713486929844138887435592778211875863115935059722304225375831782747883022591461125290373552067445715409933263121804272865985328508937825756904455374625863127952637652935899423354097187721932985901202459814042795968183891456838188401034538648082589523539199047360719077169941412760834170508230953220332114456449378276452841073723272298996731735008692481057556810352857231317034499006413231237059929117559329810515784310647939732702417965156427464748276473273535167958943005671810009487131876452953470001310857925541755159620943646765044424689893660548983942355641478699271984196725937304240253693131973584135843479975279148739709252049167068315991505284808640017802230758172954145406276687026920335614410310445960563931243792622644962973319113071887015349166557841133880739091666682953094446979182664140473922410745832615833732856976258958691451437774770098203997847247922069417195454376102452640612614435518515582716217677127962159819293839198788130872212202352290263441365948235271565444954019381793878624090712697652043709952519472987635049284174968579866669517566280955353742573928793007023171115144738236252875596054878435451318205109894780448692822039681494598529910148499708151212865841668065624464487965923930941281640308948591931259465648080256050970373474972483354739341717707746023662957809608380335801650188390745103587869923947650959443506240984241582604787636792314486827410218362335405065705018160388136619581235561271994533417646346031752031969644845562061701084617138254354577848522921988812734319739118234739190207663787420588780797280853466929328236467001715279830876426019321620399926749269895605873861058752201294431590138559876912350705345340010005410566593931327066956004568006837773433241854558453131003924568176348755115380931709198228561070119037898691526902479758210826546518923154515263925187553466835843897430800524208065009405924322738819041815975985873201228062351454063494379235591822917065303763166050027422055767627581003542451489900176124039743275584664003843945824198195720663787272738300427112560152754035206183992184588397711032439222439536722469457528973099543780522755604417930763155586599529733259281361045706046798931276216923538640909343917502251288590433068101745708366542828966696338126698738680445691524099042119976850287939951024609910035726959001514281035395751467418486376154569168444086559176916753411129140553270355040168248410419815248729417641282126490475592851153337558041549349989604466939585784625155975998741014389193618678791179427887775610614880348075991411310412611337249765485916880891340059964864204548469872707759418078011237202162753947213232771757634800160667594661404694462390582648833427134025751347350529823952747201425987217429519044039982241900508651680358730350090611039073239308421452947301388511849025654095760876595842389850711562676471948526739276068848361937755461264299645361600029834807560871272391103161415662927999090640204290410851356657639381643584086118149399709157112201728270158023377457315499423613350945613908217790215926238741246173853100779330488479821431400912989457332651039032847452411935982951331834642145629462034606211696294630451275617450210830760398811209804729908706752719242980849175054614063460152694424534372300028130917040620452242500551104851578425069939452517219011629834510160197570729504819561467483609640484115597928901612542257604273844323731809549809052712339639727962638575454232206343759864073520652291969768076656870137235327958236593427112774451704301436357215724433588149881107212860474415636070274154381986776982864640646884084544228298592258636751617407857814994514366608205978487633568388717677864824781771903085850724647488802404912306850610948394239322710961941996511012803285265567273411828726254868474426165212280891084682464372062938455469750890175206354771574597460019290093794493180308550044281422980395289965758572352152737029889291561595510094641900135873078228780072663397338625193148653082496033144873255139680821847011223286733831354796875211049888785966140184633650687080129926026073705956633358748872256353312430957047797381234715827241360621780142905126613545356417911403255724356843888356371240980993361144887141487786185499992048763396184760638840976496390286812143330724265152876172504739638473327281107855053139117181809072576118318744650805563366436677825155184714338248379359742570457726632712122855281321155372366499709442657781039448508979805636458975695852885688032469715574432600100545338913359284947276275357183809845674336017231142475647231759925377855334838593459993096968905971050988910706210488416805242659424930132778916212611099992974526109656435478330611675271216030606685875123331765073240266315566838681422129750372923711130114446836006720145735511346798932286765618746292770569369826077278805133884219064972585042119440579008098264704764301062969050516269602620689004269405445656594436283902859431215167161249607914904222484037268402178195172056402959118696508954093311645642753669200700059663364016229431855681538017757192315858004234611128115743106294664099688674134382304340884894686172467290367217176805217734745481091004783453940379497032648940389385189202988951428512346180273933303359328925048410001986749035683255037971273330891628600447859039259531916900910151512389627009171737789012589633408782263523645476975433647265524006794028115568250122380320884765774892516579658895620424679874849635611854574922462774748086769694706050993498051469945198095415617403713292581070236360260739425347781563970129114880291770315024253230361573588459156923472456094744144512803286939441109915798921069554159757405879328044846218574000825958799840531156687096719405769860208503973993001928321710948124957071812248864359897031249112057253378485541223727044594300657368049970271019927425247615239219707797468466645934222803974776684687813940070168446447913282854733812084144763466574835099683443443354523193840046819988019463294236787037193661006828154985084135754513295623962486726422017239975430641686452289825174531197764126541607072069802456757424560645360358649890334182200530167133819548660872988474369209815858018545504109719277076733116475370867176419196560489380747360788710879514955961577346340409967052938351711733308466813549205648183858058505904485511474568887241640075164775845125616154056061334252289606473237019061705861004230715493078102358798003602683689141914063364383802039355932586499522360218417905083979128692651222820471507482992230737356752527957509392376136770683654914190781168279236139323021018606792847058920176819263511306596047238107312475151925872545534771479173897787427133698562900208003511425544006818057155435501810985157481762000468999141720360017081115483162206831195072514610531633276336070506730075392246867184179587250867518132555170412531635202974850683100329995787960278321899253976409622714518103796398944871316531604989304476132731782912602002294155561023220230464400481444513382375192907181582571298611724366191644750877133150175523703456124312444123073886748090657396077825425770936925332401067990229971377618324024803835614109528633857058481611870316707778615099901843561039370650177301934835910509853965752645062908840682463222721764762961005329356445868144017412885608683247025423162631347595724698606816272404156822181883366236546524212893830030349343788076888886776437555720555315452758121933587377641594099991426492324414489253482713742165738420509245877353490105914617010104549790269264257516933922853006483738878607089426576637831116079312201139283642414297491988692933555253919750703786402089456016812252043630566016367997853574419874434022669363439215862658539854539365826038290878507156579371809788154879274955441990973378476779558379429982234960335764652328000152106515159238369613219130238921058032161455890235461716784832033847659547536081027942146057621575855978364384881060413244672765527196650917755104335813938194763669729777572446832127019995097042969695265320876090979693414960960417876974208772485967742275037814109468252398361642120509085762646575036298866388776856131867305230999964790113703701044048972264203646984698345636653769391638177821196527042819719438036022957391511857491782090257534071189312407088145485426263708942616952148223528070162404660359069743399192712473024053405609736262009509289242034878922128515133287984899045308468331194119920931547710964702841693954603080410394169343523672979637194633792888513608438516913379919219645545591339444933798841861371147434360047866767919114244243216368627518675900127459632673117587501666182700723210947616302895324690167605056982102007669390908580706334194553145993699682897101697253389640226714613034280239319359721704873071357922182147195341673480562323893643831111125191763674172275122588759543918092978099740341418916041217359159569112118623212090928969171574739202246871605106891534436801438761541680185652242944126517123002819295115379040949587991940414676518493691709889961251942913033315521685505576573669676676934389452666504946850044150986344821762698013101242354777142421585243867789897854678133899220773195806945798373829207415915371915407446678171023674536290148583306690956052007319912458541020941590805010044186678266638294961934903637432799705403473981257257568923073831874434075433732398031161044113425225346208856860608007644738928687361709842420404295423880722590225349380715693633197978836410646861111034419573675986916772307220926906941216058234400315519663922392715995721881281664730721174749969539975472201540808117533792627780774735595162478215141743284849880688605596371434000420292172483816105141436929150402911547975510076717511070429331302747099562440098127004189404093865978109081497683610690540074224068276945975386382794744263551505201400880632823607541365220323438567969517914204556987420068375552487493210312734831050455528510204590069250422134749644771946039364798647604770090023682679830908910081484681566391291070271768237286820352507923672099443320192976552698209298194661607862801449702716396873986362988714541271289872780513940258719257594369989063882670481273907761585304806581050942949527572719701268897888839206241825458655694325771457423434888313470859971876046296300798133867846066366271842943248540193405749914874115976896544857394233986591753035123816801962811226772762840699001163775254082524579862626620116325671180277523699284670719240318977456115690062102985623358087189692579503386805510905988499448245785112955117901857208965055817111881235955363669935780323088436091207452861615684392576190916987616593457844728675838729819286720788070811362630497544876970277199678131862976403273622230624073432247195805239290095878431646677977513401385939262699660701685205038029594376240955334448511935172655687951391193307264588430784802854079904394133008144243524056121431493906775033668090092056632139099563252756732737525269011820780557891087286943307736993424513966951304569484980079700140597541327828505594197670809029249902773292232969759564146043651349064507648830913313337320126053741929695887564053842413840951384170041361585758903333774815066300469088389831618403054881684198765218673895743866899282280611573417296537149037093670142014122337583606162429410855628783330507369959868426447777059331001989931277905776566521825802892130467242044816230954335822656371734226423074087575518729702629698384090255483725964433811511201762734003892479532786584233314670172081255883019754704954739638118107979620342223339540312812001007396953284330164368587094375767997363166895461109755093966817103224688598146023597460927660935972193929241693164720565315150223039187280361914098355083240504361739227065193711568181586513716573185015111989693076728683157936590379404675021557395343057149472566710557851128273571265369196658033171984350895055541537922921758298081726256612700962721230098666588088127846103279490421582766938256056934371643098231023099720618831316139399538718163959671069776418641115930048331826960924240262037532997139999661065504510753654981173895965292139881393681631702767985067912790273521664938152485602609980318210586885602980641589201189856923279572256943383193912879723103751906799590919957882940423830163230241937438764091705877385779843669048494640395179072694572439079839682066761787133038456109358492803837905520917572056861182831967392843614499244233644128848112620075156796094983514306768096262788609837571209550042527143364300891949660051505272551519142706605385666607233781164876234920766096405495135273882824986150304929869844697359099490817739138519381744470248854681129861147858033853562619633708339191838494294454062818081932145941789602623346252276408883004583871438378816685284489263450773847152747874002423973298470618676775569690218497653234711892884344632160876157183824340522961863661468998414804220901192379513799491677856667230210169682911982993900827401061632185943334896022161426742323507926850113401729362154828523176545796960717894725330684575566453633311212596332236296742504578215299196675599029467498675383568610814012570991291786578119155343825309033766772830751954551095722718491783992874051864331104544990830750455897744029547853070191481249161463274577493507797600818035488075434664794575653788232947092920142044694437918075992298303279706575928170272153039434562875987411895974869870102772890293003245910816149038049487396976999601542241544960387282086306071553092245237157025718787582803219152440968571983988147511144008484140272233964512830553719706888178787769915180842877950712983019580215137188394280065054116299278225639993317232241343740765019449841040278462438883606160375708798435662563775854678163898652206519996467051120004579015236635688821325274284737137031496124683163686238656169318159947649563134502910016226387599234661054235693191729518064723099554205250434086594515913936856354612813256668667338405076841094299694283288656574338041263830446577996076940520726845246032453284105416447117076083835552940213770598694537068154404358786074235534782829362245696853384360677799713022073790924422019626330567063534137897304426537116662094356098134023981087254009120565958426342222591440440650066625231183524801213323083089260433236099210258532936553152753722608037843077373446148886653378513664146837193567967397012510485116920560372207972620518999903806561787032503069197758324853885623854488015430406677387433285458539707565450759386612682125400366827875387766295863939659722230111149311367188647804588167735259545471523830449619511340067616884693936862164774894996536973874543947729576470513074673140286589926063733690060752698046904196212065416696211051574738298926273989265151694946610134841500984269043120287556009899823729754736807100987712917305190750477194415794402427329244134694856530146249638548502298607176083380124064586717488650882498338330027447359535451655755117763617547333075958330382150763525067723505786125219164958186201890385133402412958255045807838417152398993447844450070817524526010578677374245930665497361121880534704811436508580934309465143306845190897640676023844521615729911432134434259001691190294142265157700483226375886649931044143389278489586891380699891633103720547580294074819269444619817817374071898953702780952456477254965865899834755951237778803265882959555388193639319349151335485752593104980194887163942368198766631594281977233065764230109978034455022413681272088309262523314613966001066910295803813448836196856452884126980646132952792321724390271154171483815054863041010262816377100836468258043862297313824475796970203009419953386080203912826257348174877241087930048540583608513971805245387784761578518368870629173301338323759566975460834869722353994957934310759344381725210631213475463399911902524380513155704847510140133818286206243953854359205889447831562671469119065017793021573660364124099977890878454940215482158260666188812058505988708182981266004153656424251255007747172469729248675831197335810075529580353383795683425871864585619988597523643449613231852488491177372734039027122853721445081395698223426489938850238043896535513024836913869738153939210577203016424322991664105933977930114704584672307565711459531312706910616225526365129163544708477687557902731676739002924776590677306122904254617601530566774780764402171507417893745756746037051599645880955287203260343885742501336298911793536615489368521638598909053663428879481415449133259906492160860160305909730890619750869058466099320247907030029997433317029809536048804154623823678310095662718626737802227376915375790317013306407718628848415680199899172440185743503348830192866531399020380321155324481622704206301346195447005652031959086473948264591629490713805813756048708374880194938628317851251136854935713890022242204262364615326419078462863993679919625185311822935760707402265873391729469893297203689072711691928078383242563201280580003069758429501974228402997708774276684726777288541055892674970998084792332081583071999566821061916703867498038592698924601403773395174378913045418307734845370404967884219949777203848458136456216771498539919887692351270612178560699717833415009900150545336568285065300866417911171819978374637254406267279786276052443804848992317882427596990957706969892721171338930436743563431270547630811196504960899820531006777284605494499161980061438804342580146254509447933768129640738078224059600919341105421035897632495491672631184834619684715971814625725720901363063028555371683325677916450027252963566389108904127227085606863030636470194478203218405928893517772383006566305072848767325653372198348560798067789782899542980640771470390403738789679489906103944376273362394731412902005654930785875836684192290943633690879762127799654138624932277639837930856137252078588165185779497864001527198817566087361160385389725812317675985562037652101186391580958652578221173451497221734325958427351381555738239326883964274103210018613843610774822674007678924852991260858673413892003570841349684080805301527461850130241788104719277848366555904691221197752755519334483279448075264915259953273741664135044223533073385764337555033384963056805254226467224509743726597574940700891168621771635242344986807109032513276562877683164291113191051284491855265101717083382875646048431103291428175430630301381111593568432841664060226163808053152789287682963228383926665468399588203941791166609132057296071129473241205057486705148512599677548760570307106709580082559152544669769380874408951664872233369165028035768469411411739409218015502797601029087052316663910791634117749208959723345048574948950744704470099839080994140839181268900513237137703877412989587305348994565922492313869712272811982947305825837508278987828822790207238156702099013503639168314751535836257721992407232892084651147009502160305135282632567963523879621223766740028145859534225184278811832649728638509953061590513077992967429587418578062252795564045551056636151368158727511959895778804328147839146803930639932231186529859218811230735176199352806232062872774332794186053337907822799694725446079553525682700672049513490840611364249000555641841249004658706914573442504047878563605428351402437792697908086818024764113255189280270331204268438498981323464114122715078373184896289140172421239529222700123755737392169406912631012178572944199309805802861545973956126727276979633582946641351791436441882826219699592671644340282594882524460240220501150990135396142129451392308676204819580910539906695643394479861096502673595065777383176790142422220663962687538841692618189139881168918918466743555048992357843732890977536550097345124753838644921743821094480948335092709803921036741454302220210643166535193808164305431496953580927544067652820753597926713214522967286091878490092087123825067571308748372338668455010244445450927544490631048838324503835919073741570333859923826417498336762051878935157527397210596160559706120483287882900750955804019350568240370885013269117372649368033928882113430993316331923811356102893351735203262795224870400694761597875263870329404484460541402806843702748751198406557274932979198008645723209808258833352574652035851774773579410939806426515276340979910662607766064367458729632029087402028172732099895240662849935475328179524093798577302543620255157022565464061787556311271432683027039174519201013452883493555662525145004895961880287527429640914345267083506011839633312906159137316860297350390588899375592832512263036848836894998684006662202667771942762624993833731994006170828150711031476371693368421583379844561238848197997388406630878109934963292658051469771440360612081987756289322138084876881782128220339282719012996689812205007144100227865968586514304818404558429673944490430386314680944312596604652467560152770099931106064672571115554923341104846718552575304908260386944876842562725582929615761538825854247290313386672514036884126250714060419760935272283992643355721491188066526589081540681516012052434669295113561670843145853245129432893098719758270559966705745804830058762239476291317004374796223385160305720302723520530098991702717030425782404604791323366961281333535425967204752868923860195283516766602412211328483948849712638545261253604530747930219518608151349837108493047697336004931182532137789401274604329762038812525404047533991885317267842133357722307118678871396519254610291130571164649423568829155680577326691830864015971037074145640492983601753607303844164813542144820213778986615946012791752526890235907080459468284987212694188836821931341510871977892861728924570246246211266558361298546291479275686571089133472034689610174392292709498598627865673749437577292730583175453125155770583190077231000932501468633873459152852225020025962703224890820648981299072684610958210890402456943145515664836719775851648653864489068406162032930644973960285135454561891693571954493739936170218770483928174679338626651714760108234573122279122926603677259255628333879708442582647603479012163945526870421214174846291195624568351971916659267876630543153054448921478982470628776494636777161792305251628032378243483138417856214589018751536722671290245445758939917561874187048186666235792653120716223228266936203427739424445098345805496761747011046270415705244422124884421124637078840824114392707109591995646010754056544238009329358000694474979801370453130920914689749234381884099172175015093513406371802414287265097123166122210451343398007350955286715630265223202944721076207628034431336448547833821482343023677304287899425059125677471880137755950322971468085353950306148128689516798105966145762395250508104430584384808364144916118221800663209140839631376136846789961576696697326840828872873200693365588606091380984696793221666316894302123437435730344399634423759193095907630623559407270163508840167731161894457528939962271110763017566216098905574739690319110416831455557531415827065597079039890507795130164162116545745513208395281476816936932690582182627018069569889886062644097770533955367514340966599243325370142932715040181480898834753744774839048310747293190415369955618947559491556575393457985518584281330244383941068457978495050176316709075532414923881194688991825242995856026848144588639910643760274898426126268117344600082551721448655588862994975170431040225555039000177292423395865100700944034356809534165869112835966472582349688503883781384815309992864902913747865104120922368272694640706139920105789468915133938069299433196527440149165369955575532403828575542621219280031727741795198227602105803731023790878601631907570658605461908970546064473337692039041773845847643675623720492511003426700604908378811175543461016768082969621719897890161213545865287832838166397957982585147998836940640858224194417919100086507898179357629150315724802805462603388117278930795703971883620969254103686914654456632638842588661266208088609997795083104422258434666797380761625629070242644775062303102374622419726051434303486494282444796213873025285190323472429359008558139266128700505490999158162220337924566591552272354473818426097033506322548511210222038720928429272241910658767974130517025673163742268100915254848844832878490591991236652835658611877823161795774498041628210886308680949050982284495423944307509406163933856447631071871005815847199547722870591670668068326459293408495288259148927538971592939487418514521523719318390948462321756529436023871916956898397352871788705988169667303460990229139911690076392568635916530703387449774335714565750510562890110044660983861544008920817036002257297198960690440519642938105482172041308701193374120177533455799448709426135423667844328347518860454748837488233537510778757783375683353147449309091464205744130303137594022419537909400378114083703659333478061337194000726949681271651772361387725997794666892346570550710404429833513540980065415065327921423022361760551884779861787316003825713445759312902342948342605401697270850412392728553467889648567512727714893833579034892263415700344083386948786945068778720504095108529084593308720527651736375650506503511267683559245245641008222952920242083207696707029223968798106398115799320255243082705898211830992873688579199355040444565468604340825134195395023220243232155517216247005376422973573327355414605798948328641942023545895931896615963416364814047960186736123129944401500027068391455571901042472449895909454209400493284847547443896098977478869694537658676594182090206584054197876408471442678137960824488358484847486104090327827888453873959077408030464827424795446302828550413752645779649382970098949565644416712209572282675413527531175004687937035462847565139541870916405899564713007095466856131266763047535874441427524332547278897599355685472610158803127433194664264808159296860019720580869043851788124093092737400081388555030319469330623898366788742366666601596782649295888982965568194682153881667311746284061402331445157280649246727386098554042733063517840505337155186675559626727005780002342689808395161385780460931199127742801619190164276231177267314763567670119298065701408518163695571513004275886458673647355217789000079029515079088860504844860028294251638389555593092061132107343832539336932887331540833108678534927471906614956159498315004510328547535199297507810065510300453327078960057418439525853335406406478860653706769622254591045468374719765025625388440608413463069301985046798159139393331434051702900220931603832681598773704607642177106057110465094313902775028037313993987933221228768334789564708650894056196383625124920767082712928469004760236055659391768337867972700829453251688524374429771957344735230882249435326776186492427058368804371120070146825625635480160225442215152002184305998151748049598296832998321303465767792980123973809772913461366088393837213985393609257167612910233814681083578399218350234976307084737056297584048134861132535284415149941127705789295886767965287460443993553363373636106229012461570705411746280098025702745895244500977082748255298625457594830342921706870908114000528659722431448809197671127255157667350826794203058636089320736947797667421646100991277197526519382495779662585964161027653781018184971603888857839633749425562835639849774659932216957576949252921504394080440397761225138208052861507583460638421899220568775022113992528387841576288290810625846997734680624476284991328011965806243827909243554271252272816633271944786516633452148225308574189982005337577634434368987310691195252999843623535229720397458356333941355825575725423688488668649094112716270615340952604563639416730421600324168251869239107023264412081302413385943247118860439485681507651399909775031495833046913625185096057721327456561429619919095334306975664919907803778808276234379841061816198384470074861255441448961828809828276511796705810542726724809724772535283777970830538767814372191469856151148948102676091858163544722196619989273735981000617652737587918245694575894036432222323647980125962282233734746179757305208860268606276025804130281853239193059640426848047701097541642790123047483986331070363105471288078556491344831864759890210487807803051417361392131528358803065961079611156150514885574473919895233211422480041424280611291281428069240435423512981983109472379008812833476772567333241422378651650329296312282054155051245427874649424903174573439695513601394561993301607254198667684991036702109375336868435577740307702094660116189026659338816390942651492004493024810846396449931516754989734014106947077852701504689517556013025699738009678526172003148047344481515846103012967782219196307966485756288682495325033113886427538218822781947856692692096323660085703280503281029118221081635459345468443225045815824779216032193877038696848617451078302939513854942546883210192880941703242292713557717547748962098754533189043005109824178043809659257278245659052752703915214920842915063073543260025248383124496211976294573557624195684759585001314696133684978950403408560760292013974284474205168818452876393572711680232784905826941472027163397787281809010952310017957607350652843859110174550063585498437951766265142270355880510406088326828780777282178594957324965119704373277989525899491423433573037493222153938853888670171659742818174539902125396366690511116918735127834656217742991983276275487945063504033671186800168770469120201926414144233613048704347804789803261030596070322886249292120601439745363551490943309900691703356282696719821196581239281989959577317943733215529188225659291461069118923737117967130914465503774979933581705043155342844691523873437287152185410631858370408141223790671791835078357241811279087252374871593268176345722450761409933057445073342511045449169559462030915159750399058691869318729458635080763695344728658220648217465637787701526716800181355638881873348658344027421369735129153860303583556778483537495894341184609985141909581585024718764120668132630209331617742053830043532798803931382359454163581397729358383779789973800851879070331280692865649870318318745463615143576676051444142763018542108076859020298682502619462225383680071915646426735258874559431449429980806480982867322723391846551204316961243916311541539283902272194798287016470548121129698163702320146837638227130363129833272490432631147865906698582883898137372582581184249440564810053943416298776632929551396437305107896398580973968810919707619989827675391891588772528662126920345808385207974331155512709060008627894610836261516751877955147546072057244247882380618703411336621979884057505510956906434630321482642530379908774205987245558832721339004093736292659290976542914430752116346339531662663804011818516737071397257347577619572081633660324362586150611211561687535934306546656838368535979046068511784306796937016171037486816509197710093585573701410949131654507915660681238667533176403865512962596310951550451894972362496307300004587601116335780474701895382515919115995176147949391571693992799765089631763627747552288856358080344141748728619939782659797538275108897370731848080906928404358160022492053344288502022927023724185044111688106908467901656397647784111558566201071285876763895477958494081575928433882861326805590906717965379649267912193166748964255702118230139855078470649531387349501902644452922469166896870542887929397485177303311005414212612665986645956379885278970435341857362878662024706025796057506225907000095245276440396683785473511085711242136270946705974323506528756446168832549672981228769686304087789548458176825917106164871179923773558949101911374128021817066951407151137438544983889464137936668443070534654111749932271079505433828711168789804370994291684976366949349394331167561090283328523794352914013007107347921061528397917435338981828579752489618707920467470320823021465498371326506959757072891908880507501066295341169339747419786301796475122053778116543326111716467431232559004336593075370408076141285124415679956027445517210789154130604360080914058631642315749581536336489119607278617585203707061681982344434162144266024535406805324392195615665103061041589569173066997630015453308206427759517054022037479213065824594947370428751254276764972139155214175533167355877749844331147058706421106203852170492699512167637943546284975461084714206995753003093116465413770490163691251182526886054671908141300615098852659593227235268216298376938459964677929997765733911736613687048354945352324439722178672739676115850785542982567994718716479569722119654258349899251486447666749612773270937417864796231075785708130790723199759782500732502736003624998561767928942549784765200802882232599258002578658216049070995049326760199453702775236551574891588057008151502789761283847370633619613000767149089408310237511671899772482796449174847175945923682714543322660025697359283885105609774118896681626302001407939155164337509861894204932555648555653066507158263819455692183732451580586755749342714926450992454831720254325011148648444408085393844243931462132290735414345432246310549705994170751975109627065718523746112659653303794363187094581796741162112337739844665513895638244224067683182653423142786991113766080928356025768798783110623838930792484437641001843185522182819909888871508318122073659573867619913733545685436451401007764971922037645003132318829063437730599486131637372740830244408295064843605776766743005185896742260491358022571183513627740906531204497191479730805567415994001184221366636928525038977521821384513336640055802003086669672435312609140814731473079865114074465598488390744162515453092348128813566313107371512547892263758033877512465620483831604299634658157786740419804243522921252599149545755020001527512452799031347451653565657871410431849418212218669123774428711371849400560745317424470704962840103513117240838641087008834857870303768336150759877725358719739132662102276361343097207686439512857981889121830055753504428548537263439858552797422141720330019672629520172256194432658269301244682435544080653346516821653044534932214376738564057527347686106535556947812710284366695436210819341268580535730533047559460787647392752896915022803019873120694915802471148506373597722956341148641806684748941883292526982485853019088127748003428577630261849104821542750949288866232267576750748483610293277946426310876135817511007027415297637378850109144134594440147133354904679526797567471353850222518802183117775943334639243128304759269376034772020288380544910063620121227425259511987926645350981663584015720561086453599150273247933940372016520846051885774932320725041627482072172699621471963125436151791387732653769242447194183270621661901970573676175134271178166744229864720620739315143634161937579975119409955149266795168153132718550647262016145008800534589435251532808782079312735070374357446403828497966676669884911601451737970570946664725998329841706564636509381700113865109949986420366273234254393947115115012131456801039831242229787551475766253817181684659273392054222883224847757078469825784634257579768196231774273109713888357274760233240747453316275695189591910679506106229332102367097096875911382393125945806371483037854707045997995113925381278958624300899619766522544890978314595295030580222367095216639239337807068581869900064272598461240205248863143922280129293736855458645762519769877850002532144916096748959780341055229527367657305756863942951411536298487233709670061555335683945634955988366585617124218788470758983996339240554814194502632906793000212977527180052614406783136788144726086308492896359730253547157260062189736359924565102323035376440348166734972702552249498065831442914323323473903864711902045060056587457292693105251943461815285159208872813228472793335958777623472254607428852938987040227283321236188069330669475375947320022822925506405360993874501018260725476060163883659903929939276013153163179445685789156114374024089817765873093529146937694647582101316175801230905645738218974374255608362200893966694362920317393513954701955735905113313904113769277635198980978082404191191871208879217703604680126653218655964014182625868389053856876782288033547351932556171246062319825983070523179181372238615323937948061764513481219529591580601500440070071148721559353576374307313327768132640791582491374579140676355510266839099742870904725387495572824898404420405892527175232745007843867740775010655208649812334267401447628814959415419713033387179606532128215031593285636102283967020475153495510109498788239271637950867662113511982577750802701510593485115532407309520165669278658301027952825762597409239131646849005144061123861485740558427197687755112383236573407464403020412719176114684068504419442118154864433743300886129789184470854864763576491229271775217412175466581557893526873218394285212746602841942845369124975439002964608148094848114607731370318355972126435374941890297327077322683096313258816217601803894169957158134233849297972996008896769733265324582377100601915635665469267393207739537936836853661005007612747980427449206534410236963054927552500431974842581301099191858493753973792655865309595145412442943172204417554205356617845901898281076033569354651034487191425730003817983377196897298324528099729557124593664705651580454546814673750957479126258032552718142805745296921332186135907042075803052558323459229816764144490298448743070072527304491096505038853883838606726523788772238389038681700889286621273256324477085047757539187336689371652823469642959183359728934720816806880709771452129502148483684478160467665626409823700464606082324262182091501862048039772107396390080323176280414528430284655976194230100270069751896482558305947122069511366090581387802489291288973133933501334082186602928157489279750166792638673429097169817720379096587344806830869898587617724671707758830282869194780607577143967232613729150050074637796573478399746207295370681923762094865945045921252333657475421362992679474613317977898901106011954923725662695332459341402940972240312765786109035852716960672637528437276552631209099062068674354349669732108372165123034918782438285002567438945229036760363548802138040251417134026095632006171825297663740277406948897942311237472838816548026509335124458141174357231730507034947419415733971528403229650882332800823659755633906844001482615296835533573919696112229567366524710173158296142679967574604702269654010244157207135932517182580178977083093814829709691334553581608626963481449974181758094248288809865659105085815661776663122374715513416905710092545601762653242118562835597446885543769524341791579951584906250430852914063620858852902336313767429653909406330065247391662475309050180771318875758531912241618438787701278271787789102175282670465167187377827610888110020799817357694588198447880978948335444011778299922717202970224761603843063244407225102663016200114992765055625167097127254541801402619607085507632430571280651738669744853631142823242618790123602975312649784467072684307021661855956624995377845706518457263292057629095936436937153005720214892412016938061626278466844712531916112562654895644779260963585807145404817866851636071603413140845231664025917519795799783465131274507228523106811003296968784917326517023994488881440396980573792320595065396830710703143914445808007464793810031262147213060562475266235139474292057036604813462887119888916736561270812777924274373427492512880033897188573390030830483103195938109536592892370797521441155493438691745343514347928009411820809296020830308290401081685209849106273494150396013878456026308883467472976794093861660677965428845391823265887376600965156720627604579865988343229527821828511618993428325888722287507966760396833974436399501173726085467831087755721831554190681833551884713707134694066911359215689977045207706939162677242787123321888586401145564964029549720041358264746830524140696824477396120206640984972042936416908235698120408277851854585663916803157691468063830566224716436448148520553677733192913316455730250092842824514173019090456863863716980655784824726930042137229156426790479454063274257281276963731818019751978700174997981631264014277398696687499021130027264509005032663994631828570083132752804556678428728772304769595878084514393933935987887412073160747083584139615517910250880439307497081750139276955730180248194402418791508885406400365884908732113221466349697127512160371225619040636762367614887872904994711022771970573937772998571092394966802815357955789233735270842156217248513340717833214700032087175311038887838281350868967085813294097240181116802497589276895639664061238212880693461078001543595967446718946905835721342909451804289825171015756174834172697410029588036670102637260032001206419578309253065717502869437001425825441238682503668661654857217665953788834414959204302938661715305230342797002264571101646511444165768444666807094531566546458948973810077814982245322239383588602830266056660339067608087906088280934367149283268332335206805648851349154724825180787918099510049993611968136105516177840590904526863823239776378169253332835753366722868004599484963082246947877212111519856112809466923401560633470311288225496797092739511516057439325990479570745342151489276775135445082430885283399878156252089457519466155619381489491865895611212484129553894615165242912238563037215967066202486108256640191756258190475792012153590277240522343857657443825515236965178211942848320726948949224993534091530075600209458038427620433538095312328807700841815497720540043377345495924073697442093246581369126184628015053127786266050473464458296298748360030610367239046200462753143881867335557861116292466125747390256926950671710889262084689021635209177434025826191067742703782584062787013975248843747389120676010421401336788982009020324690803016116967310728348270551436698885361722559656142134513041080463835441199356288501135050607314372695506067932599103920970515332944549543928192370256640687649933962737453798646463801899378070155384385425326248070622287792880365519635793434732694449779458179628940736123338553561903975029265080538178669604937614614620996613877321765554207211692952247901702847673751854620616569354303356853539315046163850153621641243135497244322840611596248085665147774530252377778994993323966040420322982189726338699639737077498206756968057131615147803125411369876090263899840209186759981607451012715408862700294497783298469410402729253743630028290454635947282440841623519771001108479759602033036028599685097809479487648071817820009704195617745312679534137266108270541124173561838505629462234609850888553881237446773642486155710798543988756034438789902988422242098624351923195102871170580788743571453078346201205674958437574529737054119808679122363930029751873078801437333652339313511681985431572986821252133051221501389981213732869811452862116112222133117210128097255091730572509568130508847662287209968467315884326600893384092232994376511276754579510483379439195597057317316408270441925281408198103747493887255919572728216861969080757081008460193788654355046164575714929932000315385591487059872036245956162222605737570923778463487008122310607565075548903014206818331469577404360063251193002183995411219095221011238233913948827187745177163726075392888016594765791143312879163168196390541470603405725103380083620017364748316390237559809908671515778896114972296206790928759849111901538673602347984981385720308047840071929189912880330106373166976353952643050641840992164365092253548411366997134461174863926429599396236690520755614084436676821027478892040250845658100303567610078854113354476554917154300118635711981548447661834167490517548570101123426160714508619872882676034478559110865105068058160266889528240365130498658108905068246290742986219732018280225491210569300447738904179718720702139282329745391389588975366507983270665055411038761981128187435200355250638078096858077128898778838572439309589302817821132295007808298890302540800394623316835208685862689592631310899769461946631933315295115613877751536027353785898386406578051595086018635855516384611102925916985169998710957604275233098860216899163179185292463322924405141789129378762724165047090183910451765773749716662957494879569962781107811522866631755919397847636616898677037609353386951760181119865511660353216084315860004012819616627058630273338901875932254669932571225262347001688992010974876147585181899001116056849308413293741545062605880522918891534554288962640292309297673984763242110570046646407479139418374407657727305966325276190321399268226330180617153431786296988463320963441139522026162840869322633144990662614240766447606691119051072808550275368584459024725036675818133253137378046464287493583140980466269734230427637410707609290302945795349515351509412270853596619887449523018939911257682080185140958417425849935351817671564000611137582356257538301478890484066897888800166002374500684028533544558491496008868787794302757713900445545029932470338328067621771506171678438679990527068509259806862580304052729929147454250962730502560829018286153640658098037871570662189150527422318234966049972663927190326515947463383706125221693647849756549386327639057344521241019476619335636219374107934599032492062436393187333230824623763621730736326396912567178280891947027227843372366625144855926053163353760861347004465153821157209667282885819436258788420673577406442560831509991796648604287087200231501983603790741065020290436494207603502826052795396968096472859866462197770422108754157892638167887988892172195778622553932846167460323808333693861608600109966751841737597973433242453978518002842592476424896827812193521943694893215782787509501474470174362936352609005597890715406604034649961296181278050041763168003183516986902849106039780644908941947983987939191062485140358576052678620769908317227770099754556871911239582859919454627082814801849483479615424932528771764497135181507494732272824700136801649188234137540949219268393792385900426268721732450346617521041485137839108869214171076546796135600026676082101984646369191683174267809498715638893877560857425608701294947385954368292220334218036717139909437926545246125885918540821363412501741811405176624536727071913845727506500102606663072931644295637788477327465975673369799507438990413480154891084605031921243050383583192860183726055719979711093862777759101845065231401669955269239756846035299044158113029102207396402960366353159865757075886763947132954397423099725494373152769855962274578158277217106843451899605925386117095062533701659122515644692153354201799254888495098614823510575582558397736656950928976928767077830077519351624997644039931992528903065992731237102657960710869444665288779609021397029846759037510629546102656621985858409395050501309123540699223950580150770973513476406245079407014010355931803821143369464708903610889993735762655806355956510216905923567118980815958190234355827671099349222552933604450292708859750138355544324801487556184866474600505052041891115670769487672071739097390558943650772072997323309090476916781337314395169015587268702108036396719133222845362073407967311782728782602679314554221341237090082173832538439726838035055434297082261799218889768725701100598281294842595080266092177195853902463088791519401712163192229331874183597099565709246992382274050340768538237057114820624132220564760028271590428668905404170859107710000113328004158430996716763006074795757028315187349853454491064535866685945389174297522433004771886266396318816669595957970205129543320002206081220627614722880934224258566532992189703330126521918038125249823647891346636265617617216326995195377382421625660850815074551247020105481871514504496616212871800115242438559338652883649124180215270211142205671725333762643690365148503623762574170158855369374001816396224675725276235858899715117035755830181977478135753484498130854391730033473757621960755217452496197515977346719729682472033542818068585274621359954117530567153976974854457169904365641744961762767396609518359772655588188342590219302546916777346614082304441561958855293401015082645298947387748706835206985998704516643058897976548072777243769127913545953001305574641756866856797782099960711546827547662951607645110500788413998356237895884507805144030527720349723023122698023374535331641962532749782237500178430583908467802077304462162758361853737131648233023859925621391553806522071218899112434402152428423646746948113796752384966746881293669524953547018712473121002293365583544943301867831708571555046800851822497841861810092484518852916064169264455229510492903860870148064258001487714039146715506420354221507838677751676514424410825660534737985167119729093394300088889643687778910378389591536192550353923810408974209087603227741025054463531147992127519562283810896520110306830042849988366018688058672232655052847306939924709163162448696857557316981856769289223909261244518429913917224743244513278013356152065103872179180756932328258795435317017957619696235115099937222128853827252413305902123206080470370639228713179501418749680125951487364336356619367693381593088025724586178271773034371245990673144130711039045779861558993131485065038101998535200087384330096243974161382917342283683282947598060209139773143953608728710029445381113127396249271205585586144823990166878490840342628912830534595871502715702655130181703476073779257839759887258190197228609943940910896107287072123125413877995941699235298233196203182209016803463114855085367803320445903946114425789575311293566752978124469601525900261098889927212472525667036685919601332940693243152363462754304453563397861309427063589882170427911306552184477879095863817894947000165397613841144410743092750126542050135216952614132613068254180036259367514068328746162848863188557861445568807351894278292900955446297493582767655872936690279427118617070457577512361512998913487525431460558020303799311748520268440125343838111579609180632643770112905704890927012016870079899521352721250873611919325218861743653236169168008335409948662307703169612326369852404718571529776100683257605791790308393549734102648697313413389917628971411207753208928853296856877661157552746258929455327435408945793149533852714899824908469180728999879088273714940343256801403188224911741322391451000460005387440603621100589882825197975566963406328962866921291825805646809022721873220181905495505498947703101896917594292197551052125960966642047050040779968345016805575595734789792594914859650402744390929975829396989892001789702479689368597841141135753143250156565942905281427208942195697466537333346924995351088692219318561558692813397880960163704240211751803722692756472243363376111849686205981995673465274239992231162089182611781718976315532025180403729156359744792476640882201361468365266248715336493271497562067576641706546119409134141698358281168123529841754942929487609080148033793410389407137772274700697561190995751246589236184935158259484697981854440356973491040612686008222111661450060836999262167350692197559163718839529680786877408979306645245058856131696325130523963524537592233573827779331528803989427875095442888555390014739204372549213053885238299523824453471677633833087699960749159138109164011698420995291846855499246364388102277193011324984406848515496664406670801512901967682427201756321320067424486561233931792652655817955159786323392691194954678105433842485259736950364217110972362334434020308713741129994018278890445252394143788168388309295284703549601638138770202120883565472159409384156097317422474137705995361848418431687912586570609936851804151998217188643221865190012001107537312976305700172450355412749208648943420687805334240372189005829543001274267040839581270417656955913877727217019480300837344037282805192227251669889397980815274386718403969691091301477691999222561684330391016679704317858089155758181366661493737526410333373578942163628511831048927603129668410274380484334408562222673018733955756122466661395967623581525681174676531037865996598089808170061464064081893109950745191335912667424291010472429764041109495768545630581499919346717284619990233159923520696018538104213349351624932089676604233063109497718968703506581540947660956678994488352769460455889683832542585192336918051886988351869448098543420752506701027527962846274036651100100455388039675499078829856592877482610022329642867849737287213767053878195061390790906629200331142245059259291346828012427435305585374130453510130527535676801311594647871390903531517807704746631180553605687355850071650860239048276687253463908853533638034557220212007600326390005999108963179238570192921226107599624276250528566318712055030604719976572169363923926642729159424040642914263936201248839083449279753062534471657831027327866063131246367088733001134093756788476625208255670520318956035227491553369936352866224980510228113496239540337690284610865591180281307241115310071772990861230810484335774852782352378666837130901297367912946903590732677809906822659136160582045838801071005091478169223155140548910144805610185055694772099984453492336170467706544757280703709554842706265486164538135589519334592897214230850538620376271491793875149777365721636882444979932676560977006196487583096489696092312750669153509608798776455415373379129791836089649330182259030772581460113341772490844562894852642190957988591765596564240352895275201220087175694871299038932780910060500519117675961598155574531907459928837242117347262477718404857148671830053888723860984313163597350434460674627695053217842350932345301286215098950634811177506196625574978804808612445892531844367986620978276829757386291651109195735171370755614744045418601759385520197528242919082313897274636132248655670376943954589591250744524620272821527382861517107459860329239933909722746473274914102746574208384601197387212610736742134995287562831588882920498363670757525749373079461307151700826572134758920613430198790919151813346077471780644133733983775190505099307028855645446250571175509778036992621266709700849751795406421861790356220231892186318508268678932489227466724805171856728417001661141024147270608361886829256871538154962868359359408474547847121262330975892393629482789573206891242659514483095315194371380526790946461285002944194074121616860123526684195219371725888457149506995861997958713302012339840464432505922997619430066875233061058374742886137216001123912055110762008708454450338906093354161034575514487833711067774078846870975314042366255560383822992020057671469655948449856027793122401980319655114276227186304000629638186057154384174863477406258679796207547166270936394146573779162229092771664198858899015650882912166820587298617668614309071929483880490459755087021911597096036476720744777410893051949230424322332774653149840079633114968070995366770215371127453964157161601027651022695826720180804013721770403999127246611928427695976139964264506532589147380828129691464541807855870033776961349688414896921068933494539349058275612848232315812003505309723542617749657480923228034832744305076122161946606174081244153022520826477450236144537105349425326596022868706738312008724642990241430658574777666614713310614601947723700594692005068686542906074911565935775057117415280039323018773400037144623672680926298293754955884858317038921901684403565712584391131986410204608906725802131579236444253545586550992727646264894279313524030441829219010780785105275051520792579673334339687543063819871449331892018958098913010683582972452785052111444292130842851345332170671651772968703617673260331338022161553204774130876964223777385696458937371229752828778417639579471037815956643488029235534209163005373738302795073570025758013562276494871107311526394700739149326943682167863294338065005258717389191765700762783671837883937599381809261293443066858233326231000606128733856888655501999336645042802488496603220840581327425188221026156039427156865873231722690425713407808644815326832831250123679715504261575687147151283556250529423319345602356360819452812607776591587447310751052414181036006133417608371199442400904370187708695293640461234187056495637826143133354117061647771784675273331389417975057693622233316558333769865083604377514390665039019881057628788897715210567931279664252599663458476090714738166526197108718695443288183347284693239224753020947951028314594880682105146112175334098782098778772137654262697757946564206260961394682651394213944758013683460693054245525521484051987484519769945247486273940827565554562774921562882787460534852441516125746766739943212675381370036278918235384240139459123157475246085758286023058610165855662341897332537558909476270494994412587549201003622407396885537512550661667402019070281385690386445517860395303453696303128597731964110451418518342272163277282727979551118771365887009838980367014346558363983801895992313058905248299634347106861381033578673975308054876231998797679950049989131918221366544730410462907081234082323655607917494636813013624089432560299238049669292881127656308955879658835771468123332889886890139384523964261496035881267092553618697906600561309084313871260508779562196903573320567656658488431563745316783951311066190313045301831632804514583418741605468479649887947053761883064004232747030052075231209121561413467770525820873462160905333647618686818034073356117319145952988879499975011219371242208875487633534106896285113354934875710741157507381909479371954165639711962246250135901835726514784626109297997128376750994263646510934282232469321833014668118446190143595872447656651191009929776812313156113058516082887340289764951816879261852689100500327450071694127629661910758201909747797652888461155076134220765232587985259935789838482573164285660290626154042100802258607420272313641476594227922825318741950249624742951973558907015530191804625620073967135196575864776462206484172565356254770840578559806691612473072161013488685598782150488425811824798045176150306040694785248846390476920875156221880749308242139839742782298099882178919273515357220294550866741996133686619098040816017690725926212831549240466534233779420858923827892689877892805307355593767151425614453987909819310854732330234752314962870581823586092405738971034125623053101635782337083583476112981987306618658625115367938060964559637806894133575930599597366216756343054402389287380470855347348972795231270924063499832656775397451204079674672565334354464088822652686865858232110923542517216302225019274708787134557866481925787418230959256199883818533204547102208539012558404362042008653575294908646478714131028081159973363441419828060333449468957277194252053845864958018476933951148435225478604024909121491936574361324399560852667245768122852548735373524842149785794235984756398730034632879258713110040771338041459769658686916167716412263747096594639204938781529068501489068465574865069586971676927414986555675956057414604904954801193092044335526659556444413409005811423497324730970154296963211347106747035743470581575790713422817787880117588539162076366343689923483766453452704077566031027371823344033504841121070925590097146897844871939393488863270539711056878495695280909053253292087784095598276094774175957840303207051859799689063792393177181303056629863570911174115346830675237901564164171845078443762886065734579835411908442495374918407086096024738386764920520483549985912194782176046024631392854556311648272249556281353095845138265423299264893221538062358857430890676235232480787048635004329746332900292144105520646848908304450515463085030044267289463434135850515969025275847789033638058539535346904316790110273976240152190385220354877052675860649241060213299889937439815184312084152895685020284153830043264365609712611416910094011685913040124224448802996299807079043243005153813800791584492209914449657906335345060442720174473532669717672798613716993022297579823857822461205127911851610168450476057275313019530657982143446769805218868383014912466218945719541071227407128573324925778253881833050994904340911400094161809256908153383929937251879556088060917131973558462348457341044722015591996144152025351108906779186051251989782446857180454718290830542980324057739288753775129534279381826219762392431873018052978606017714129257058875691561070294274894896789721755346482563848491208976850497206583665238315463751118198029257425817042526816769566333357346462799069341164957656963138032141670511735374273167498724631320817180894786153539023366648181121558486145042429092740016269739916773596842753743078543570997183569212476319867271785792960074861581094441484371467791487602052704515899214277836079463393586101815136554098482135220248400295784094055491734318202993939636410476644330094127424286829644856844245986210581961807756299870658410722555255991336311346690650148312112632643789082761855283950104703898345699469880507771456847474753276349460971983876021062316685695014569248975509726566334237331891880660604337847341726459891882538471119739559029745954728732106917071874916923549501209414941327103959397167102897169093331175528092182282060794605970581113054839978046428845157651629286320059348182093762362238319739551254983058344125276615434069206826205217200552345220411235039678586170804831765038053105482751143008825157417569938025082757549869957224637219881323621419512418136874532938156569797939814530443391249602831383353246521820924213130322646552831842375938528074590304847425621621445521525525558342296134850458119530357454929391916588542075252177407848325591478870093065949709249193486520251629804045117325548371691194279217700620367856822880462341058175102599125564176743351878541922366745321755603404932393659117386748294203176348827738118405937858345061368728231631032779250179163283175617774917943055950778274417797980489634908924926339966300841958102717027726125980256489794450986348893436392096752625694102454714870131322630823050093255172950730439425112187555153058528937643774118685405580616176455696881119319507797413731324859564433811358438858561207524917504102662408811066165672830352778594934737828686869830350215258240067151785588394387485433924058820807846383370153997964137784298785004653423324762519982998006922292997724057087222370578367200928592630118153186760774680913366162218285839193971365138829262002294465504333037811599532711335154295214671087206091196914166011416946978827471038704244839619448685130970655822881730672137161753262463550335289863861252381486286818614250076039659836576538484356651549523059254069795076565509603796991425135356119674746989909241131891354339307605218208470371867449869475638183482429079568815143294827655751462544356883981136419751490430939635312131944823679566566579893380933360800463882594772821436066055388000938594009477520187432771145799343097425983721564744627673384007798080979282602875606799506551544558623614398719521624408783485289888171150026354993113059266732250226052039907134145091845544778154917297735689864700539365360276824774290006977657590091557561828886913389068652842679517810889173923339588352893031180029553502183491756042978156403868726257418579787702013756633939806474981659919021735313284024953841475589480132403500299543669776465446379785357156941285778260113238408950147560970835470664465229104139936260393214442399411992499767912212785965041722102448790992022674923729560107840810964087214215740766235180641072855142957586440953369446054760320900941973611952639294732180965910047364375792906365997282061481704544739472532843197310180377544293751214039909618090346192801242382512180895440079635447344781734304034651336915256462680444299332758895318195951760676292487635773652763535671846395722100121765553197755310459509495070642472190283351533876023338627647667620257024343631560884989088797757598423381640773084019229586536968352144115603925436938558632457010514879100008074569644265010488570300352448547422985110603493015817124532160931262248834888424858686784507527134005244532857369425110546857149989669905897844651492063687077135469218123969578400797198614208911309009930851354022087700359942834090087353709926908723449121232340570796683470239809152676658204560759146154580771493043937161879426727180523198049602064205150544988529992353577500512996596509576902637745209237209330867109532777433748669908025465441995267938834651564725434918377019137625055634774053044797634738839562839421567337078368900830817318875723787844452858115216298343710059450313050856921328051083452947400747766369415142306849518317051221275483026517205773714518521729341352592925051026718543414885596085948903809359942521475769562293142441158373716177070977899817205463694952704963103244694496611093610592240077462293827582289170082507102853064001525739022229401196064505265742398323817437370640148877584324736045398057544147418182588333122549119832136617949694328078099820925924405361690894643526225332109665253491848961157790434363167292251161215501035731440850090903005805269904428272578982321700213600456804134188226276093230338346269898053620048590056427070796459155122949255984006415916584296968740939781536830451379965274263234563642677393381530660925118086305700253567015123289965057301536104877486645294798469619065441992052404042743385068516006528731807334632741491281138551882402325752673336102255877422463042864888876205804014918329387681828865994327426406674838282862586410571676556714252319670372237362061747226597716108468945532758483805452194659474152230968249744107487707924377490293581643964300805707486814722946707649810071956011145528213195229303007012227716434230406281547303437355515656365421387563881029526869009807399913476209152550787344699728154147514716486466124275597726950294952435947908801399115248010962684879984616366944577254655875124301277280964187535171804309934278323251039767184404231960461729400486406197898022158884171300859121494870379763192536668749887111403119502804538481369177972187991562500236514318465011346218463758499793925596110454970695789267762090673635326236201195952603131651477187639316266731728888608513373277263613636771312651107087456805610836916819295559663854130904031416532115002211148581036904913290718593525318003341960436002405831597826248887851096883701431794645542719664139219169099536122384970317001584541487772547176729872097275928271852174801584834723747049746511856571745266105676225280439034747587168619742196206592627633984514749332361490777339451779825624005927475385343503464225377485919130377845391120472869695818123967482017678274180288898709007894046628818775789765989904342480277292302042611420161489179068739607132700538303629911059729496966775476156121303210631255370349132880423073736655476367459256195787428587409271127050096731317486954228448703704137800097268534789430741313988503014011611539228055472812552000017434539232077016056633519450515792088510103967025306221648571773072771323115534315530914893435993555219800360654355893651220562812335554382771566169270914400433395013493406353826180962930137465578138736620108841819028442084831367241102725858860889952480540736447243015179946955328328287161030933140509197180204721481196874163538363608496425150218459280646376840964519893844816971394851971236016148879316624312771299365698923461415028913322347332584679402618999678183950879089150503107700150002392255028455183399997816047560954241088651395923197489718571193280402166718300058960276275940567993261306608912940815321364536412652455421112059896846196703521266157102928791377241296579560488330059471926224114992073577340925571060186583038931081700705218856042561794472470578772336623680445325934618193169494445646498457389752058149291182734563549857605253629211277198849772966369343515270936705769576990603371580796574692269493796532349026516462834131499351700214778591712299516286134378745708235098480350462115138794421920875138101970370464901473205708390272957998991679303136889419680324044268596291508044285159507003635412788102611523946280283047506502191156521949866795781481494291036776497875982329423239937650090672477485513338216644133641855073583275560909277779493445652640612282881733975104778370170336340259288026068575707007544353558540939809130070085538941306656851005588929504506886839450011884074038728180595230149974482038121017957799852770675374626120976156162955430488364156171646166391153087585882497673152487768097874401929273839289527440004976201975187539179113420550561140820317640730807130998928132472065230884197813081643449320736093548643872591722914817475155781076148100735346673198911079485395245098901269831126513914565133496892754323146090430854071626649423083540212844579345583873626506508201860081240917108808647424794211203174876134710823092522975799231438513012246360127325892498234554602552712933799816273911531317988464358349158527007731837757070531149108989011310832817000099576813865656752965251424970207583644407472289061285457149644166164285574373435421818000876254305102374300339444235518975495994132596457643970271425974000908803445906925707547739046276830349359903800597768680737665999827889184115925283581562921798843814083597984397018689473912271974248409528165754648626647484072903582450098037622491393167399278811222945009274173916799930552961493832245334682178829463032163932750922537065422213827498003446487916000868434104247668368245129286636256286434974880572182127357247440928926415897361299619476953772219641616954495354801791467898048176653341506706627474796414858623753495379317786596810056087309850120344240909257059064163879923429175145993207321177720269068258068638657995341279500215279745229883882767650703484838422252544921254267580477117436773236865277560090310491710816667379314645057027196655639340101595790645111387078542947646522278083887783835180893965193022891067892983414780148386497926759302483245259617032523034219555011561056968738385327494047266001801103450143109446588766659028689354423635122692435850641333243446436988204047671590069658116992190772010098324661057625204605193101874002727431435400512201183354963260482755015253500605449959591102343787584418679718956299795424251626778188013913011002560963583142389867627969554140145425392066641897268076495995383275850564348093034639012793925140912392724888425262220299319143435594058930700920757290019139452886893647518659779460654010567445518429946885368989593118889904390460734098444950108129570349093561238487288771221902567092131580029318955111477776520065570344923302917125220897699797730896695700657989649838108973903493669355487986920807162269893511925749229959641289667200561400371468465119267917013149903220353065220856647385598496033767460252472693455500608013147724224876836781649416968242612972643366662684891393644950879958498856150540985736586820464075301744229700574196480943226293807171304933678679450479500296477172253436182491964335888731754233026092632722812330982132666866930835314457771331512862763199645749907097943540227107323336881968479585872299083724779388808085488569546926171929306940463058946305081923289050329175699931796314395929224042930637970156125925309538749738908631788214287731907308619815617477757798908306577064072953983732599432200876651585541323924860212523963444417429228473069158976918896660073880441517903866663226871567515427484742995346371668921215554421862787127200174992531110558379451342518478007242804147958663910501832450719000075693836512036648673135545963906169610677233079776200019806515454792427307171571766228725182889661154510136191394854591087796872217053588842777712961803325717094187549474323842256179106398053350056222490400629474797518135000190734086598305202273401210250231528963543735792402342857679751760749332511585627308197460446521965353902768096337770312509494404119280516026988459957469840798194319449817951962526882557752548534582211372631074661531077631215744554375574265731831730727933010293073129465776201674250841408200608727073726518572581733061028697749486938212577495934793249286956395792574736098274696901456293959720993409680767526139164679543017737124898345667929491794562823827547740545615992872018181019080748096576210974046152698616725196359931469684154872542415308083225227532823359173613277577236639003700366330628678797066877763135939751682922096390043111327248039614126216847446441948786981537509504016772158838788706633194926229797583321664086441137740759022240343344965203343257716273023220620263712373299969002118201475399552470454897720848114642160446117197293277007834969053653336271307397585600189060194281994997998154540903766106230358179488387789236055023893916833843931922963642409558280642729542957796234945244052706345255266463358599546813693650963898524722537316593283172228844148840978371161024793255515460409502554061758447633138620772255802919347933414785553005482555384979620972322001211684420924908866718928344569698866086908446611837299234209965322216687120289590800682678769376877535527086502897172619153252851985923193458094830247647090785411624431661847021357954796668629339420313549626555965679845158965109264825378603872047045184377801042586023763952163272569069141363684752129153096892888689989478772546519342067773596591616443190890333496939471604774474664833086696171978506838851024817486217468948482045176924833532806316612778682153682182769385494638799325454402787531000903532840762036374147847002127990561011712383190605932572067058166696300825964888468497391477231006796298228078405810129529318211035851048840693284925638958181455888245851977429193168472799148246198408011584418553218039272153606791319240880261391911102611770801574419962899187809802931149672570214914225532095122821995645146619326572366309812739210432859023772835358116332414906882138159953989067907642920384266951579149202424075254844489947977659868245960751826963829506672231500928804026109946912875150660812785719523412948003174380565674352677484118651076877000017668368017868510851944370052336801316398981533305954066972573489959610815366682160993735466244958899339272205746937848385579610094248283210013651691062931064300083379970091235159165968333491267870242427889323984911764748572871799282504916448166919240882793748946167498600099718675982417317969953742932530444533694867204332291214045644254217601548614222059462333036364598573958280489536465231495408919898464570016465492568152620165806735944917720880436172062543205724141397268953299883010463149690905302091386596272642064451233295615343499739819377882079241802121617718391681052124887894323357120913122463189571040093643385542501495068525530648455752582356519260202910279701807761537822849175413848881990402523473567006176026281931116332784760945081803698211220107015558136598055418406529719272473274826578184423286976071301556984684662139924799724600781440394095628145809877970288811921641849467703091923878129695145007196823480916257830170826395858992189782158035528894130632231907853782837120397678797198735888981790012394896673865379059830121822670135901514376672144580964236799023973948625662372628996687309710077997725819894495280731615712245166646804077235806532383599760461348181849096589126080816858748909622606387169375504854747798159338018454934816564962958332618024605750620563534730907813297267557077951808090905758499823884138083492495512690222283047153196004642316407800741146463899084002879775288106965478797046093440978319927727975651196869191785695126840905378999630207571944865827966237857737787749714743783623603674657266129421832945390202105836101040046661212112662515708429526244017655701494633439474098904887344207889819814195225373147564449211867148605714345926794573752812480708931113525886596142135253382613894014348591955462619384262855428036637535252042146382646289938758889703749845189298251479516971488729149048617374532249286696023558533301142137896163779064731105946210532251484720128834114261213242190018678519438218837246545161952996633730882825870350974872275340132004440173694149628912352325711757969566575242933604361905379555055257030227178236185500080665661163556482937880990925005196505427766850237544074095507990074656512749582165864113806349476158900552226578606263615002729370042969435881955898365953468788701709804259849353403035705089032822086138392594838133171519202267189753813450308417925747704646887398532723139862477856774909595490750905546522642870706882052522623606825575243017843022577877159862670070647177594958029628109796627708999438642914465236760021851985791578052308794092006766479863101025953535965066823365423074880859374321631105938658097724010482908628284697228459251067415838985514428110618208912225426245790122895839648907559775560891922062318076498673664650689079643845250372988891769530103691347195504900547706190093772163386984661536376330459809808008528324310233572773952588866492114969124920494768051844924823048851940809517170186352538535597531815834721944852284156712806257480216482889030835741715610288465391745042547466446966491364911661598871803922229203979864028642764049778169562349250288968222292852462662064813368377155953757742482219641629400884865106474020811899445444722993649035533325813722743399851097455382432801206145725995705139554302192160178090179621610670321583413746449015074284000689290158483977924869284432552733717295906819810534162790099673550991171524222027870790338784744739910933474645037131217097062491887286992923219339952240399722773707258337003046388838011012003866959728801890561786195824726389411318535501086133108851694977870800624788513830236399605421563741499627231170621511446442349539752704773435001727549105731043973152367374070628623127678499647245848614836368774827158786196163292621857884841690821722695283755216122311048143682650288109020229510402283697154874297781168717977017325308690427237923037503630858841376029119260651066450288448288431144556445431016681333305917280526542745670607013598245882870678753130867858351466501407533313477454693148366765452410435276130714235013770129381024229780887439330173195274038738959629318075989015791832341652667171052679362390458150529578432276648764052540756707250960536913837342161070388573759966531713209024914447497762167641244801119548787150808453021491309337901326863232125305838988096236830000931554596207109450589837766964395650187614304569002754705432759391990161272861404338087669677385088081125072949393056028155026684779705690258320970020491590286638381620768636590247805787932123919691991975525029627293812607135614562068442139956214636030267167895369999308496529857103456097248450828628035406931690849583066730313516007693459943318324455877904291006436717328467919222490621663794160464888595452964993811256088946900376891968758594066443185528334217927395223728202392437045378335228086656177536720407984007173548260478624574557505970199598782243115619701455994884204453419874521564149579462040822143464103526249129586252267344874875222939891767219818489172106064123593770431742946629598850509577464799290931154432804678404148680523384884095554125905379529188007835262060093241774083703257923588577010527431948270262082300000080586079411868235864669496115449428031744503000425261251217060808240174197845375269255313686415064647615098816828124800291965001228590699644403106303959488969373910568200182116023268031765835736968133305315064667688723506160185182467416664087046429492418489309528618886743338186573048013455330516367646964121862707800057068118583727048437951801530754950678055118753516212054841014128814665224988224612374005890694585848354235334658648995912601080170610006084968403046078877085538794140245953141372448943830248725480908878798791132742986039627729386873719489725735724122786768404962139748563059726729331272735093928517547684158932400062811938689943682949333196319443481358410683567349703206178264613580592599910831612473300345014645264354234672811188717825371925026759409473784768598516206137662197807058830465565259743445951276411758914112547874306411414743845179575101480676709461642014011437349239624304494593956766659191854021679395558130728595823508840161701124968086325265345810402542979127535681095255108676324979636997220697472138562061194127723249904948597764648435401363507201299219435256690640863678650129680115524720808441906467800770079346632000679796146913459429105263829061313664106978809303017628275150828070794984479215356228455369286331779233990900995393014077847111913756770201715267404499897824781482448205515396423201953846606808987689393103366893050276907136464165689167445280459916941721518221035482757595857781675803136371929693019932993933699220255874244390350140258186959644552846952722265570703983534270626328757286804546883848077579907469746642180588692541507895675827410687387364976555286161693979791813846423666931112296376498118145390006820462984605855159131942014223497585712708179674895739335162561538664200017598088576493702299776617616458771891967465056785839926403819588719596059215398367153809141340060284910168971029609107667391167471725431589562341156444175262847795035205759788127985317563232758357206481572741016674394897732382737218576323949191600541129088322089084211956290777683029228010183785484092300631833112595005192539300280955951302257335624238215105136768111790854047891120880028185960583347147752171247373977403484128259632556322234005546869044815715077679221077223682983350175862929710650599088955251759241179036419004391457669808043819255157350265723912657168691752149954929649461835976973014350573274464609064107978465102412837726629597775038228982319289850917714305331830126348080806653157760256749585536253276554830281907516466514057794785842407353430372976021481164045557907641489238822240890792917644981983786340229128053003913404559968215518346547769263566729463889859400273920177784707490295002283726830253213218427921514751513435070708090760284726583929186820995496445996908129701876117417434708861607171435700895659744717972324066224957510625194830001824043554169783058099401320373418626429648841381313954099266453606349391119818000625813821480037719473134818260655472556147025907132199010741141709953355929536228527330854798391276506178787079251269895556551846825979590422931690969272980790901141172552518213348816812733657637062878420871021455385535985158645397712323816791672103585432872916938516186910447568433148450052834231841750318566304346269053176128052434675211783936038011955720785246630839165105097909113300820223297164926964907875319636246387842391102227494183899538732774904958902940189170076552591333038658198999853328433353916210386758387406152453916542497610207475457810767433205872788740121972867145311917804928185029889951679689865646642276603047281098665801448998589322561234584040729210972116748180602786739048171415883607518390988885265217599607747500626389720548222408316134731497742607790053081915305167925236640533848717675291064184956096754298476514610281364428581523007738924483306732639226191322727449909759950750079640174198499023765559723759447578804473297327596812774853119256625906410082090706726353092277240842376219653965265998737401157490057886406683852751493895613072583324059794280896420162378677634397117303929023320730829200765781125597688388986680042896207524973310181408929653823773917598420465717116100578647150507749718927189308323417277203972226438038657164117093900204153817575127935151806616745584432546452177398582427208408015017343845562429263847854764275362951331453943619780674889209490261753462069287140517560717669895876467592677908395995661525837178069561889702810565159507528785813909531499076517963302388916552581314766871244249856235726250068998224862675563264817008002650903604761758171101879219615829703321796981890089987206707218698237803787888946111674318753919318424301431468850316996446240858822519768703796616703015353921249653917035168604492715162754217148821515664327928492883900359143102637349902905788574811101288476659917816345699805603094495535081579668975712049501635794242456569197872399455108686759098229499006188253450961625938737778774801919302777719023315983865447953996446742723390038791308041597899581766510935346759029486927779742776367190478250081344473892441994058352130315911523417117592074098978437166497165961153007388733272181724531337811821437740375801975996959447130929062856020206373905806625534212940710099940477797794823094856789082772880646670731585420804760471382767102880300066091987091266783897210994789014810219876377906816596360968253638543088295109462030581319355329021448443298647768162039464948606386420691308597032436625569442848729891098877651572497235560169651381610079758845323692587994277613089914664660704479336584054423596349029284762233368291356120173651770769659758340106541573213927939765234283331394964670359260157391674766683324955689107990776462765561268194159641276433943233287685091311440126878814682641222155209791142956203066788787536542819909863785164869908169828813113453082026503603433129398313271488418716373990378960665041335696746382502890725022330456364452020737339202162729509971123410801806169618190560524236087339166352726244031981077307318187902189111904622204838280205899787242494136559627883449967386748057949992886904719010756451832559421153348042096955757564919176948805064893500682940074257356075978420640021689599434137785127629164048598651464803726255694744614612697616229990589162685473795015132629887391326920492409873314454917357880158545835100292568107058457502860854324936853898078484622123337884907692046013087121483575589636561708575192577188608535694214566448952889224402423299605159727955041403132555252386208469076001495695333940351429197838910592234398541288487336008000838529327739209992092190145939089845040636358836928695074358468318731714950599490397598542813886115525256772139384480142307672518679577558518898139965834117633802486811258116416854026160580526602611737308484405476630035769535983029612793476225963500169798048667251013169775753098517494813024755468022371117264846025996494896712347425565282363499196203348183017510876337023596481856117302873588351325120606670953157011465235622850926762065266410100786253446128399703808584491086933028634065687955098434320265287805292706288188609558992648828864796291204338038176995788506303986946220834666272469309339869156992660440136265040482485810787663766028052737985513373427287377880367018685151509026767407833604533080682787467819443699357501909062746499552456222350127164833175956221479185550352898826483264923482107803430913235402662875204728590557459049553356137985579152574785023484758193496180329303189681017019533474869140917701480541279746115585231161993531406184654163767047821024325248104775965471607284781852073339954955912665912030733272715177527303526613118671936621663087033359775686011038734954774866122054760456818791690501108307534529699514819833342995265071082130583597760086126226620885657928347684294162211145098299367619416215101557634316906414305195594842105848777935148631462537287902330803354042832187580411316345131070423128079097372554429935914064810492530516474339828376485623992911941990422020919603707584644226486844239894704085557156714311562602139144695309472754050845974520751553826779672279335490518683564480288058591855979445508476499945260586932214413912121482859712391342771843509346005035855260918873249692942288903579033505568490116916122869755534558262167005044547855316744294304789965201161680041280981389158012111807462149040992565873332308332491756111324869309521552800376528394921040430669281854819460390402658956308898588872664476770209017912409404244438899099521798375904048303578004357117707727134706052108275020648309171690087864496781410560742894271495141545999897936893099332526771314076550480908085570071771912503123896512221958903085573946251554954392188725479240869288760928390363525705753593171362816668599994425067037172390036448344626396689921290393641447239498965511074918737295894288342515372467638751323850716529570096703082247393699447329429038235714821767628761707628239319743519981444402125565202753911448309565286503587604914890730981380730681290132877961479482405525610166416513402233496459493358207211986519307409442035262010056341204375795576497870968031420161203392566396934345517920209561514488425630842121884013958361266761593674249339359480959311750765399712353472980011438609702955030838872262306817440278987791952059751102255715166239266679971250059906567186711318151527086606735995218722891706389971870869529957706525770369877704237798242570359542615797747698275830784126138141347045171268770354572544770782756681194493817562739717845390694618952068077511647730618809345685859806710961787968615140412644006423515193037634352691435833572832775223952627747745946272107798043303658260938825922340642313725308882544318564371616329882852776883325196671794619563666000026487002586876242458915446416717275917649199699929015717144817163117999915441025489068532637931449918516901389240102958682701091689138749450856702792525685565455708078058118030898851349801926181453912624863700140996306981694118137304151492671719164075734108830690416046450153977933339091040072054564774851408879713983078668266116574961177250745935372648608888912793807032980798235675803882850754947828030380743929967676409338272522861948784461554188234528331942981957013194230002687235277940341536036105245743540231685562496103740616742743043426187275828995512314857915007092026912166347625205417396061354495651855760176489459624350295292399968425704174579076964786562858460927865843414561376139878084514142401100152897227094757686088057057535112192199315889535389302428700960623357404924674134608673009728540615253279692326734307843223438019989939987102246099482221653015875385681575034109547549678408147837776614956595543635722858399847757081963630291096563378486386008656212711855439116909877422815399802999687606256659191975246889696964592106217307999946413393408973132614531793110193706606678553238613852204917115614353036098547594070282992582079470179980394866176175901739014788472647043184851216754331472242341908415762905488795391251348744562929730205505359203813583179837790692198741613024714961097577438608457227923129492410499080537455372349218182096346458558792345065242066030594868104352106533380400073284882220942403275722195778073428561459390774441509808047128334932177391775462777689564126088758405859071036936728069805771846102381778600951132821969020424471629635543116627756353031842425674952949853121810805604092492170680000853690255146325426977605313594320821742759445889496298632659439853596278941022550289457716231774475461452655488589233023574208679705610285712320557963609260696850246664521202487931617230079728149911427370588755946950367570793823695966910427320136501779358443473543684536370951725059658276797923069941233907048033176100537369213765816955144577093239580467171085499131091031177861809665708310072848072416567111824111301485216964351368255050472771584839921137897419949028750045533585888720998936267134811804074521358185643746681166350218515527462846612760387410160559393097341948356883636470918624728777101194510757257167237932963759593511320593739127295432754472848956345304859246380458601489706025235826669818470126330873595459883905613521122477680552932567378204881216733042496428797773390698400604446655930924463260039705854237649179460117865293941553361885720633373104691649495803355895750565130261768297688449413327962879617524523276665418285340078888193014926170940888881536840193716353896231927739193683515420084866398689020641357901075247821120516456940833895090727257692627053135793124582556512523489839572579227203837790694275764463037940217657130195984624174981245385337854017570380340275439260799345109756400048673882786652927949875298549990026752907926187908764274086171109508958145038420920908130589306608557264758272218684624920168591399114225010225473438540891896603470920697082672852245589485258233282919795437908768621380575134159564753081295695491677338668111074827994134212911914603022554938747554228783406874106523574708681285438028576699034644116149413354392356628717759198521108134059478308151453798979121065929828132651590438923007033129673556016213174057252057217490136986544394337795155963835369837656921842044058317369563195738888880957729542253184475995573260522957856680857595071917421341596252152138563301719310563270601028431027568355835757210863294511183310963753706055366917091599109994118775063718813167486029248501117917469051377773413295973032171448779054230253577038169521988681398376529021080166463936518576146696036511891116274655086113620491541328110713819918266511800736280397929519189836240800441421350199464512795053833706596790869499482077150061445540045900140662455605790124504580121135587151003561505840601709280648266404888043444119930255842475721333017161871929893663753673804294319205079429548639233268141152683258183110176979533244706486043405432539110367372733552775771348230936445780001467710147352678606146936647903809323585523269147594161088006904680809494188809620265909511671220736803490310090405787058224930185689843694465258688215252053251123661915258314807989768081930827559587359478580454075216620682176726024912240974509223860092095789694100800418234656194884728359621027250727302826589574810932941938492328730740182378515325181669775581669392747303180178041788628484767341410332151091663594473923116691775297234091391684292272891151605053274182380344430655148530980798265422123467032898495027202402832328268912327658963263527995252085898043515654266922904316253885939979084190277773469852886573760105185577824386171104259837706734824245123391330953865312486982303928316313320413760811424966635740395538119086620585015174556455446472027442515772532327128013116598303126068999980698889533527627948545323705293006168347458824558730346544034776150848996244510670262026904186616277515099610325038860875522937352030828148869762731250230848743928122207815545763064444824870527929703083099160276699002667724577092071556572392691617610879404807804119096284805616573261672296444803721460284443994687448603020896516955569651400127962957226159659760091092968952652342897161402511632013889888605257979067944969435262308415255757468733555012361105473793551139474743483566114945187147197382689309577063243749831822617044480797670262764533047005273147083592450119355449873731708816700469009748793391984266021906851945360964282790799647120739717102607748781738788570531664814427223950406680113006962042727757647437213079106856392272357125632853252444238096099423221293649324704359283810176299496532320086730066541711765287331418574061842858401735970283429819408229107129228776189515741600908488710170202976342470135537041537471710595220368824520098691560813893622213814130584955307895812032417593644069652277808656171861396082230384191541655894004035797259162377383228118510366537369879833184011051629632667662630482688085352591603864111409963698032274040727192934618498139794031429819787672991941685409787286131704637444625090293278156737319151135217142087434552683151836362490333911782924907530104840324961839917083800062630247163363019266667769017619704824890253529042087899447638543727166277443771154780397673913806807269292552797002330074191963807164700118712376921647618744981780204687192237763905808767672452583289003638493995445565263992440572613844797553729466421299542738207099197000815654747868420221970756853487874955181464082037847576646797198359013764895514001337824442719255176151461585829322884127847755494365277351724540990836843540512352910566229080856192926383965983103551430684009565495987883480774019515751156416476982561294818446903740818421683158641622982346162192824721036474924547724316949078289350040461271474839799229054473980143649338078784683886669560157079494327364317989561708974659414884796640498916283660605902557025244579925778914318671287780153750474744694726056556937185038282400243685293175886576530442419495309218444120289960602679041612570601702702464987368620325924411429558359315722460573283121599123271282758414529365328940495741358418202429116334578636781272251364274209370231494637043058765054049856192779783125103327891374620418863402278115656517480609558053165496710726879583134691815053158000424306527701929973340217146508605502231983816476194412055150726330831598373794817607292497166477286002842470178137927263906816060774711614116013107118551518932734529665680176082912951729746131669352618867511166970927517630291324974633396557482516254372286837162335488442701358100790437834538189145452425747611627015371344844536435421846493688141553041605784294941226700604209858940522552711987056014209855478452135302236315771353862984770331413823098763634094762665390489139307165422520845992399367436806466615883581002391567071467603341874621180529135286514495460517586293447730245960593143418026156062849612861262438336076503593214354475390012238104644409072413858088231384783320438951812281537859756486977970923398666467837288554175122641224917122536789843675666407616681732300316925139710501861791803571468845547027546252738718395772552532604718283249175595255675730366148225594810913238739268459845470093645903093740345853268416081483379971531151464988288012810075605734429681971152239464457748735023777880165574778858966251374671586139023987815798617024627190396458505854036780637070731406806698260351914352685965868417461377657743555649451568768715507729306155653136746483063935775824355803084095382774545272738090006098188147896575074728291157072902245066064062086542854815211834649361467318675615541998043272922997707167927383671845497298068874464034891548390395977737918020681665791649795676230425772861455299381178367589522871670349269542758495273782073758197941399867355343930217152012816246687797887282792844998640973074480044654484055821326576095409696710847026420574214422750222037687257022313664084657610849400034551888191058791103055764577458708588629640740207674561263350386551856992296137359216748146946000554123170975609220227737634040177785821197587264051885446624554788092337193635862240674211025756359189202013766264103027849439926966384558298751761203886343277659205563364442256611391509190416662539156333321547451196291577544128611709237419884196198676441723695029197898049687986150440152768723984262315211257524323693797608778949256138711607857100364437688617445830133564602677562759713042085848817250433459827894359830804967410526446756067964595189946908560875155772598106794926852591907816862081936602805099498623176461995158071044851583096621359357826893411414402563571478753679871802393491537782418673048710118360958906311729581548772897922299626662911738308651068460338731347230747252150201455297707024446977636762063198463596321855703269266803878833233631337303572960759440676370170447899050735845492056796646577810366932758898940919513532820893709405926038517617481533632765165641352859146378031587107078823985755102754519702803068215026214345020984421098876460175125628330217472914376639198565957987343246452558535740900143201248586118554709008802402168366572385953291094955289911038993018471596256944669795451179582470041544083291870654955218666283735829142679346748337675867331976114557036493148748758155378740249641101311446458346241975324195442864670015559308630608413184940209920519705735680763460522024816872596861622725724953041282873898088073025634342301962953813942804507626986557840839580655947574318251521892319805729930310210121622233516024413959744325073149515355864826168740196268035599465865643019753752043985316424216803119287661769020024925515692492678311588835803177464294599438465475850324486709165292393937406990764415738335039788821071644690692002756577700443923745648182930454030699203845976529078412847479755756253046333266805076449884693508498258141077631976436546668877884801633747576410677353783517348150142964785403822875322728965878832172041006834004025825602242904131641284111825949879031891022100665250033476805641900233947642406337811982278865867314981344503144077526640091893811135536070808662015842701430987817556844036977966399589246667269680785743110235380446349313865861308383388391118472380644421822756406698926469688968943743071939434360322495586983904014023244830523770330804328634652589075970136063974126735589492458951825226658123194385775126500871623094732144871973392023800637384187472523260111763668987742653408422968856014791413051982574045144699883260983376264761666223757857175084381454529518344672900779030127694910514517966735138585066908891373313944266815274655949341460687420443802646744170987068329888509088545997202018732565274050638606991124094589446751785454992817129057267610522529883366365797505130809732974610506278089503358562220996819140311502642647834831454064135242326375033374927303105245081841516038881632494718423188135509466967832273167826309958600851404327868439102759859176157444722341698238115519170429090478216880281991581223200487134731074943465405511631241886806636587140222309163913024432424690874450059181766225613306883415872659035560584514506988619753390617182481667804949889085925840828389305538219811682229040506669668060460486970311400183447359648522022519358454048585444557919572829107387613292689624407180195825910932722357736964615433744977277029159554436751233504327816872614331612852954534038802284780548253305600504155429323752913303160664194124320858666041974397948376092662363593390456617591507511268600251696681456805320877339089889271470928750808245362067915716509555366253470596580074352416919330209065046091356489158029153516203005914810555968698594210713996879242411719999198238764576394810782390796388837208937612761918015139009570759294629391120211702437373689982796580006486401508988639910565231756461102789985954759496514012104407214562952776642900303566468486619104710370794099323396459989100761251744598097342545167500631648311489114509436962197948282642630068054327603775868500740687574221046311745468537944609951991835799973403569077520173248024801401073663506935027981730593121880442440998365167700680227016862144915238527382913823866288373213674663373218108503487113482793375919778750951605498142324955650264374700380872213942409504517112161983234123458766004237654270290436809105378525791464588682666654848938213071708878593777389778853029668389788450635743411153347132099761205819185329335709744299720636228502130364144977889868739256847534197157619787858184484417120021584554876557751313070755615902520001540906856957853593538728465419850584044414865196780359854934988218037616521819828194954633476547234168197255606210613849208327306109911697206718709920676787600098382757329610473343242638691789937220098951273848561846467161475686059644559840933326077571600901766706794439830816830377114701572436230154873428045888684924395750442418265970538288922341263953724976086407049512133682773183586457188900754667911650416436590117013909525696455332996199656585124976431605445150182887981212220125284877402658344823516559918713241528813532301839627828038185662732689578753240449932202328384485333481938737409094269661701628843885256060195620183652925582715042213053768447115131122772278851897526976485172900912264244475293351218382874561815363507794454060613017532060621016226837981268256079552508008587788116553256090265619132774874953042051532418680912671246159816374456122331596144954029191352427582375210131754087358254527564255409690179236833444192741900798922534395970588670548000883490244196258657410351305565621591746175346433532905254008615863694601687974166731448259546963100902596583214146125825791934605033817433377722736984914056592947212538964794333130118648611148139610635078953831418746024223101001692776960070085255624197937703536428680983857632005638075250013616982248767084880153790210859729807366073333686062496012373678581089213382567616365299335902454154537037529484517738971662541411330171266011045467459181552350802880824386473636137523476865485325894790843607303784348502646578862915500222436739308272757693939470282772160837000195197413176564085238413215568334272348851097907868642868237744978467059682211437026850762227522087853443591443597536955210906745969528415843485994469077614197821082106437107447939784280829426894263538080401438079570488479355991221104470697351339238921658772220543676220117519586233505440916877676213171418237191096352782771531372921889882791797889911334283990326200881602949889013004164803919735193943930914404118558790227536224423659199794897991088020675143177270619152963335194437257525981069184869399248936199121626250199807028520033064667691445549344046012191414567229311704153550111050393552192827483962380955590812874369403763541635200254585843170835637922042052201859373276114088204120725886841332389306119022994069218720367189629484603028633395164978509562440402124109764196912519166231187384877851209624302502437026193491730858829807999571827835682235176118963676300243014864575791588371164579090098051127896248570804389105193536498959207410859797731091156736572599095994380120783981658470464411288718371076332354556895731344264668520436653145239806209490574372957134616226291946121157016500060613306950589903119369705177140442251518973593126531991694253690480020924310217052900242351525265822768055269831538330666565830022414694804046780304964778901641087996363971183128514346192808432447329919166025792715813242184362828738605976006907916669279196585385595517022585550810140970650325051857776805105692633509743894770068404973647057135384789545922170839226952441768268743207597187592068610906875468246610492853375985941821841060249241378960926015004563599634983346550826670869786385850834882085022683728319033262290756329631073972249336626582327089915305882520228854471743902733796419308478144950682052358339407608346741570078870054373471936699120484490736665042186198219356965243779781658448690475237117745692150093364873235659327644205250622858324949754697102776762075303713626692880010599962034475649664943417277864182776689869787282197335929732386382857512349185810241422986725746301296853750403708816728643050050868509121447590213236606563531970559582357693772895082931586382941725708195935256673744418697726875265102190077607776490487913015860212248144625701327388503225091852205140765925913305426135510803604839419613623103407409045380501601139025865440928197777069354198471262121749122513114146131623809866801783127776742308607906933516630651028331262685369636037436635647905901917117523892919757304223626510294794097773737559612900419046345238357140193267821622698008223772709628624802754232160451551256542966750371033447152613632630879649780645047398059977572494412209172445113940091016279245450390048754116116095792406470975253476449434745494372143392107457987815641474878894036040062090717032883204774412509597632262761966694519261928178886000963897770603838542690912594258141923994195425944030910623044852768773716909491991940099232494846627743075545154099183088013970822964464333899653160891322938478361270575541089774047372660289737367241494155247688911352938413095171678940254806874459414354357922869447981430557686957889442349824948141694432183544644333908829945422683221707970590043155034428147036562520996513490813868325584726575201813402952137461146955940794938017219710140406531349381453048933730806914415964342864003584650117443545779647494203865832181635730045550808263532560828839697164779002434476400828002690985004535450349413326029796847492495420482842163717465286850599824885435614757697262043273473630998469009722911017450660634000871393558943179957375472572048215965713914539210577788417813139256081636522669317399255312707660934458915383684144166272328135759307511311987094764517002683875170145439002553907284110937347375487834847970391818012005686586088993220314284254306172785197399020599053714612728003656807402762763443803538891643503126000874404298048970893276008314768918753184015265425097601457303201448869766137413087336340760470331011838324271259527853176536538113905374492294625744661508392639355226639442050892864248312450350956734691063039307043215919534791187592373317755980340492657952708949168655788425229296193683603016605355625377798971756791092298510615373248981352949584502908102318151897273562381924188747058624979691383491907919931985863299322828294354449661837001081932125727419851018995621988723097746217802033728002981365036816142220938114556153878220587148163935570435025276289198361177900646553698877044676325828202932072475990624113573560079684506175332434781044113053777590740059470889348472503035556027054169748283565912556269843484683616423899563730440291918766794583292382632237450512304790986759701856401056636482443922800225488078466327699934272110693236460400256236677184365715078293899893870379617835477468732829320780096605026512192195856668645024278170855896891304441581404099596212097546830556515629479649014584340361746864872782097843131098896323291883201873062996547221082300110086072765281612368440465643492818972511037016766223583487086200189113184674251580285037286670894664440643257817911010392587480030899278136686403808594056236090732797053722011580915935865883145056289778638169091334984598508418588575154657906435579388217167842853377796169066183446185832010979994420838150820282616909939323792916921135606216126709198229838538109193536024178093322654188432355610752140540361207438047308831735037720223894816815786185558256300246444465469157701713203211694068087726228888193691537557092712794487538130720723508544734077447776289677970206897368374401629651102250296706138928124357051609413030094290388454317523651749221701830179805829498744143700771268635655749479044925097595894683274761262022071804571233997726604127518126187233503683929425720637583657494574895704085522577404133198713731066982334132434028540984800736640517981902152031196437681739532252995766918503685052611793018076289817696673554606956655106441506235679615234934196506911038219283466753362197940045987006628096373083239568974481196011508595569056026263318751094206148721151042863166652001781105967080648408928886085617943275434648302116657234535497338017380854335501599304265263175289507039188457368801655716343800129967945250549667310031831489849247449399945062845884893200435866637285391058563249902846831853601035725041379274644039180926475815932923693269767671689809236006275644042014743372755217958237997794799502830926202119223693155939537022551052874695885875054454087913939611469857635082930751751385792403011977641115851588635403338221133740465145985459733910706056552533573439333697044031007833772328342179054414229321702867772794187009519692177616527657170467127417625298216068059282708475197525174516126120370992246925105807562116827443967118249743793083018225049860582663447627709133866704857635905339102067483829151451804805151174924903744915112439372093447075700251097049536051458478042273011961518356417977843924845036251918147062916708879093616388967513293411719442717363738078971175139694658425463668323342500449748513503910124402280309323663643477553768745244384414773769517979450600573839481154299816015858773320751141761276851295288839288198875965551298697390929641252381460265285753728744061116652053369576641416490400088483463895363780801299576571853950730092842740967580906183401090508439625788465330057141906898460405182057737260932470300519996212170268999204791886233068428138922347430434345890128842490857392669328315988765632086197882222218560688008223762154314646183775600388774333812521980434455349684739459154215039402743853134880697484594836905311165432083695372292355799121308151387579981887466745421879944447277036516401225909738997294007782721638151072174778797936380278663445578010483013991507463628646212289506582451246470340666756845381819637518851165773779168862406399840338007552979777422693229748128594462343958089908866533968491401654779247687107317125042360682785966435725497732400723284127196985688485899038271132699163291518537826068427455099477288388832940041610226584380373035427307915073229873159463906563512254721997972836547395714262207145039059472676541352524653417280851999666136606525717111116652685041901634044384739936336057935764833924515446363402546240492809250461357064079114570136141607275799918208860122606728239369077647595604431091275957471212561845468337240251476684014635850983664816062797160032085702175994420561225169933930907768162704516373938453696365568904512655518681907386296911839140110232510256051451904990210930119114351280860003781769282208818425628671537698715050545029772964691954524377337929323955994857575434810297025376209050654930255593330629898435167934261648749660123360860885752410274183847339877848654271260383859739254658421684729844708735373412605085211038109881854528195312685669198877383637515949954766733667116643854947070876254799483274359118151733563884142482268275456170586534034289823458210748258268209566860175794098810881792597187123670813497552539935381852172311404286507511583292517306760064094712250672986065808783590097992730181729793300790961773717849480035192554104189173505352308846238925432499998017109681055193979781850311665499740495113788112413600635072089168500359298799997985063842645073986429868979117056937175467782798764892832177494367552993841834837904888162968897356814415612821579687149067862479435929180974170752247241945468530161662628439759908143466064193261379382069873828470599044640774774876892173381471360149976232262434231425675481297725365684625192628337636792742497667990047604611743112737031198148110211411838230808075541055594824521396830676089563709540355879093692700637574550037620019543671246680120789839627976798595014793592580913262466028113412085173828607262059431652430474610487815602909691444473959951801505857073518265857649003246751653625045647106449722064510853073517244229026376934401625059839451187622580597523695643503426544079129923291547752478554325406701847496470370900862178986773011292696454943792331898500232682365180349653131562113171397075169092491630029995378473995019885766408474981281707288539464297407355406677321840107399377251493626912432153164546892010373809464878037377292552490802837630063951274395081172639341468493236866564178283341232255651753664567910274673674479620930826352137432525070244490034240300771814976099667016960206225163789586202162279551005902573273706881745652524947607668269139881115171197312379019027722123239278272639382568628569906457027828834465849311689916249012309316037581311366448256707900052816699191287627162852903136241751253460590237440373266254095380719740512178499939418747838630806365247065980669104820246444399131066432942574914133681524234602473990642797600319948036569134048953978401373632328831448597026429962936961339541321779098254650585854498448800008820324714079482006529873580558722153170623491590594822373064132531164820380100841344548650276734200346631776405056863152255017948794411048646072827731601331092076220418392649209270305594899638533654552385035382572032571666658841847513157609349045415724781462111414875989046678355139535137597008261008729469865995521711641456722059641344449035003633361700809657006905256723362230577284712679675775487653453553226345223445044787095912957439882250452881735373973464585251590987606773697302270214317560639263468528658360582804678781267086049579375157785148016867032567318678548416719562455904824820558914314884946107867017517978940711970659780287603790180243196179087085330888154805074222442667342707417375714650150310889647782069081744337769342567694833364888610353538514631876652993728463330586439035595484293247813823878772655128247034361403253981648926319388789537337210880676883999623353491831586423198309463378498698218542574781412344774725312574062253205247070587453762198705689582728134562518441871224783895416555655241599581045378109280529115302210189206117238479659569666480871413899288789870031707468515648033666572408764465300695086005100116105371415760271135378509440267193370635870511993673099259653844905217421652716308331288600737023000890447129638476779210814576569978730302051910561895255895071047131728742432533244116798410697949805687636243882719802108524827012124388509677692342129261022861989240304906099271689627576323845965163701550294226498951596895969599469915931556526817261727512179219486744012880610028237030766154030777625764039631745659218561265766063646040457340715360682866213749260389016527633028608183388127626533766944550956347561706719872997326550875092352169260199598762474895491833183874969660388044877926685370600453397056694907110597506199762571614009468563803450802858895156795064294947749216359614839814950779254063907517065979874583999807992537603034215543079521082599419644617303031512704074287238377734969716693094932700008789002335720322439853971637291101112532415364726864546468841570767708348888977121558052291941633735429794216803006781536270021298853719587494290967926728734033045650163024115242407306600711007861247020285973588153863007990338126242298904011086503676519785566098682288737754927746123680521915394819338914657039954261343497594652127130927816253058138661019384235192351325763355220852377487777211799622228798948164711269523225530419001135382846461836170152588446371319747655422412643006297317415702058659661206050392013236406789155573135278192417571393843049823447013097940171482071085406056956694817685902966382987022073687027322698520151582083290517422801836862383913295902051081442978091005967491544255667019576465203574888888953353547553717499834009285127727971958806039224757844356880187116872028081236973469985524897046461049079844480624351357745143893734312002938497195568150846893743340539781073951428706864022074678120215956058083758065018763961215426368575751106224187899233998214218725985278402019941209033320363193230628912836810186507670584253338591903060198640145639223783278451770240016657381629949053122179532804913944044820085735955718446739952498159732022092848282603938657530204692243043659436011260491282809750928326115351108421154023990928326097270044725393454702363377392206578608311862446058910403948603784970959677217128981167040869375661555337023164631345248147525058935335962778490758582959489446937425555096387203535106022273168732092589567725188258162527376733604876175534444616560634153852256830353424653346558994149835652608635479978923760649523429668761329286746452752163181433764904481863439760950167919123403259323357555619018442555263231596261640476483483336301482679429631724141548758603133345079257143201360637395746960576128193023633114772470364292782385902067679910616592557853551267331853004741559635362160865957808571594146385829052528794655448380066592104055619166610478620388201863412743285263356070780563541166879178619556859517623906420258485565188513937468860415787495874018503482796632634094719010627860655039899949397089386318589507222957952009380010473064702648205749313929873702038549957555335513253342961697595377512514813201688969044688293809859198406817490518794341519695338153069345587147136826577018696761120670698016013877225842509424920049213258352620370173017126562231967871758709369268135040620703128800920366244728793575690807809513583979593533058198818346314789415487499593367474984702548880788558168742484885248585386155155444778580413165849393109622269987052198818243931881520584540679151393916051385880806074285337033165803754426471332236082022748176836437633943689860149608259149466132186606612927652195035681304588577227233597397451277427551423049809333588370936360969487207999478534308684818950828544753950213507199740974024366606459442960055790736561153667795863154249855353386143466979440787534169534961183019371576212843953056033812525284052904824542437339541842910088157304003807964942887550476249973192091987361331428155857159819216863743979363533459065783759735650550456458514701249889444547477185538849988548220338736793152998349023987712825217881653067549004555302544445428813744366518922710148357932063695879976822620506553999362927300507220438160933607584629951758660725987246512271618837540026924807277205864097362647753736096072186705227308639853743926565406239640414288028976230638723280035068869653453985093140364164760804888948161850646080840635684803391236755054375513165285260085780356499124932599530878342155016259685031610643003406661397548260093763931248570171515987989130348699442016648250354391366037424067300945208552362129718038180141109229179896031753450047396636461738365671242257115270965788848475541429996022730410064096616410395469444360819558924457876706133194500902455214727532415255411509618881516880381032291229171756385291769789273764542849767220043524307778283464089384478242545087977284724182762974205114516094135554379672356895306022804845439576901209924413391836457221838232560892513008781878361267035117780182961816352909599001597203799959782798004178004232670374284112979937928562189981713140840363286550849119020493082623380498687758574725803087224133275600325547588751056914813610676170226289918603411608255486792021986493093833233360193397056331558042190489830769887309194331073254641970409234471724294335206681761785384087248725204317546170479087482127626125786811486169028429163215214262182765791162226057227259335479061206320262739001962443895911454380896161810921759237830976092228327778002954394386230773669197448690344206549636999872798467259376910685656052823315267850231684457662069401530208168592030969666066311426293055954295446388244933027381506118572759091307715570087253228411892521309439258611244050039899168848516306519178976707631981260790428587849276450284877342175696339467925286644218693097904675376371998332438187089823616909029356360767853176332343310472310796489329206944375414783183152242499512357276691077379277341996369876602687402234770487516779917106227774035660328606650970369729272216900990198493765366024762172117685721256072600499493462915642600173012273844215032699543120267708096034400869740872129739217398352147311487334736972331773920841920967802869408689722380517664007424590258987876363638372230084458073013657171072682136709512154001922780952492970025783554532916081873377946972287776618846698040960706066288422912790353290211144992540172513502403313077188168328734531936404898233238231859586559377594003447040403976586978312984720994040617675205099970620276084250426559720269209143068163904677304521940939950371955148498250513137765232262652808073852550870973375197204389421647173993419711282399812570627450531644817350314821605334989754444620766997059648344198401203878710354022222782226019710645472064588076131852624991958469672706269275643946631051909089367665133577783603950031268532185033481593914370005605445810726517886957438528732741488190149077591887345219514837532156838884023272473628570363996642155357623353608986567932240184686520760225711409438924080056330277644981972414969974391610587521017042244624016311653103671868792238876026361121729808548877320799143173912927966157540294967324496328892682331238842170261792759365746174373355467988806886728187039817037689432132016009614337456691962798360360627154884706502071492437654605353695868369251223883593054651298650451851720608150216636499973518726936366288168411625535689545021530616850431789397120780174230991053208202342343215879803039247333671380620327854011447738105121396619233970042967647746380836502366176126336984363822910638049635953297589325725933852798763786158724809819063937777092171403574236686945418283416713377253480369089448949668246037041826965218257723318998332098432385028043457842284818640596666082195072658861277119916124226073534691429086756643023024189300199545509629471990562006123529607143688125073010303728879144452042469704528163516772850720725877232021399745143764699638186884508800108650564545155834630838605496844574817910455193228827616120246756488402970358512929696957962191956168219480018825728271132308772014092735335983906405904602412947473652890418165563220751081949591432695410685295487473788805457328461924157134141656775452695513184483203836580985983483539766043419341797755009777613978486079695970754874895866634043471137102545709655591403562607650289124943014831142280485071690093748320061322512392341961871993842752719049326430101534987688356485934830084601419108955758451759366495318041187934765924109772055855187000428448719166847302020721003116722872272861563366764667417005427269263526006108116295683271177353855358125459118045175904244328385168935322124860392270930124646709736127221594896290606147940293128248787174214783507473831434654002568550085570628026643362163287001293767591769480074966070723912206351229863735392043359784953798561064750806974974407934604092230077009309412304971587102405631327382069296629287589538763507877134126084232990646905889908714754391446542616842264550055110965927946659476704911943778500116040948055376544409979889187712592759401667182588137212638257040720002089218307906073118837492501950551996561604353440326833696790476426967656327407187391431684483269628750995693713643112254549445981102313996075351111921534364758705064040858326494529670093761548635889345629805370235167027076541153468525206817610978326175214466346396220791594499711713282924227319793933531631830307722680014551336703165897669748676270916769443424935941267647268091316702799208463838561642582714633785629244778384963282824347064671399936686661522993566898719704664871758999251597267651752355449427813922043730843343069312894843069794934610404662102643485976236787176356600937921513923758392019608524950298171281842696092300162663568508710494884612031459869623307625464289975296206689974938555161547090331990240120208946866318442451784167055153071427290056883489168061815823429307314544397072296220327989678385907539022978473972760955049784770309163366290810186067983601382288281058007722288610270047943188237357598714206340343534233527629147811507449283598870961090172117493610163205893249602523449865211352435097842466861789219246992662650714626207577619832903817681971485037279273074301452572341650010263805983864184566463959906389714005290371794852066819947181729190939363580209432125926262212851740173236810464128574233797370346218024346306942769627255892577830165230540426486537765873920025420658346177221633123218155827492062128572807361441791463264848860972406726980366536096483834145873821285354146208168269278401129288113286816061293804475387243717607625352977606096069161107618591054410717969325312082320674805968829950794011457566557462060312316997828607028887945699294198797304869399075912835001371444768635997011797480032306408652437214940856929994232396185545468714670775779532329165356334182470818780093571875675293962307765460578951400022670678196887389726272430769525508952742484025860785974602510073869068213366339354796081304583696077472190768516352882253458606949942348089578236566026814988129518317896665157370357643297457801640050806541969311456013684888310687751027817299537450410378414108329418640176592142631392837632849237319618564730291326218761312495603617885283268267965158760857582898043032578551976494622895321942741539777836005740472533262396220746957567269046718668251826739437496376114918495060943472760774229732123893056668118650871353565028429398619276269165612878241846329380382779149999724633543556662327291551285078098137104006717038359034331375955287578459053862840210704020352436260485101658469293430570847965888318931132033313953943392031764944939384178521239021378259726617374884500903405153639879991038484785631171837000607873647650800455606517319057063225192845759677099362254434956063186281161342401999634601457336052139079338876255750746066380504804617580136216420102486377732203301202516321771171094480869423264651501900930711519348732958661191251022366095821520988098855848274485077944656805386022067232200784857906876463904439796021129102564211506755798402687350293823293060042993866933497131688952420156248773845148369746800128159701163915480577014953437895735380816355066452373646738260098363962052591372142795697630740054081614965868857775230467669648881313920476739178555310282524134555560331983658615877407783224386410248704639221779228346718733545968606179878576786913396949108306543004226158333463069889569351669523563099131157779334088990903519164711016428463169749931213987307958554791638229468740674818491804886321109100130302966929411232560906730578008137995766448186859229095027099991020026157165365715344176134269864047088331309621777748329374345793088325165738309235241589643317149563032786296839781316590953581844834429590976461412316851884008796517836939558682015736474045330667794284001605618532857808050952210704730426680124730417559428827098562263515305246844330222741927801015405189208505463979394565984746294863212392716812339789779549573511782812235985212939280376095210061029237667187767412531206244267048350856499807112367561151942614666820437682938098309242414269921797894164426903022173706947992711375434485078937337733528281105470285733315923053665261293358002580265663472400466887622407963353009196147066353190903079870195666704039624579261420318641431223297220004867403872626567585881134246838936287951275799945387126113553019188887209272677481109089734489985981333623332075201098189844408424917495617912832183495201059774201484496634424753382814275790536054257881461697254826535987405920271236402546138914120971098768628898748592392929951043850856154916861178700514959050035343159766279014860669809681558340139334013076908894360921611299737820000361589104991734055880623554484580026138557136752978261712899625927320968023332054795975567802206052511850202984952965076562618688816351218680413576795941672865466154664451977598085744717303992790520496120463797374869678122279301916706042877983798112269992097457680721806796623240618787599134187443109323153515998939854513153008616461084177113385081534616336571490958383251623082179758493830520805447029831128471937614527661976654586306046781856703622146498512211909679526138673972005096415617160904109760673901606511135823702842405876492006739599645037338774532603562058014513570193559209750872362340014982028515171395088506995898721715814946848418135368463148408548910227917188498346582423758902438199826870826989347410579769787741583047376359023795215980009667320272141754442376641596539289385524396519446711899191464723007626004690303506151296875055046719714202045943288682514619919894819061002389419494007005653532242150007499154276272044892036065230277672599471451384744416888053155584272874299626242041945865408508512997320230717479634928308494638916716319826577217296666817135733302783877300713309109306548953598028687297502828533524385341660276523409107983319221121009672788941454431259842338611872511692807267150195082518281165475506408386296244597469228805440714539692969308949529949989314891514043675182016284263636916110453331917831607507554443145830714268733491501498755304758659174107109848299187837633839274065323584677211239858188124774792556504610444292191954534939512266233177487575044189875317563008921160686303092190464154255613914788621896572388050018193044376576635215457697094911203528207558180823302512007406759388507795619166952039218628903793086623133780535127863185596930116772589623968014448909347162296367982445334857671161457720598850821381545287741078843949170697107532948597865118295139615846321525344562014001263485347409484111071282251383479194755005443101060788323370463785705791314916995814099423186670459867473803781223007563607780528304985380966256411835481829976441570790206270528587658265511101143329635299817364260436519378336043158070460389211931343906437862000670525033083858231519873272773937142066485945400299093688207033859092846260220240062032587109244571253370407969394789766738390790161882550022283149624045685174029130942739281445128517853024806585282788530402263263776216697538260287315335972620643055536142039519601702096332287767349224530404502037340600087331266353847313307538077578737299000067168381726113229557277091923268341155744535684484881783691731579447435461929281760543354035407588321091992887993994921282430437494850417423963717509183339023429233069813090900129430599667108283196838802243877541799400175658208539431855593386661591522417481407608416570764607756023877822188734160727980618049168614236290235667465357201406428354248812483016346067055719058494549694982576617269795957099879854210170340909258697038412054632533280717855679213247551286297003656691147155788363572458048903955602321618142971600672347858673647089218499164119550227340856733724157797219005045927129471629496188506171620241065287974668919131476716571064998443604134626765267055756316795319174417580532264600428264352482113975250538827062808975480293649088134653830959430948121985205864532932707349199488030433782254267994976342967543824375127808371628914104846660429987293439881589596360705080394372757714207847553427506202276488166199687077522337451434532765135481873623241386220717767753217336806963614560730956895578723405931628821928190435596557843219681226668068423156340926598004182575037361433741555761512481455806953910127178312832837616327086180153970106302002462170018340430551911743926212895318063782448468578796237803588889817636059583569648674606021055438402495886417246090664030919476787944954728946610990893004605673963264071825813372928623994169891961529067846419117553138178305236697359327851660091837319276653356697822168241404272467147825060229027892483151341218455684773258267849660032123843292749482486507181851945235225292443842886424579674390958324128694685850232390094747077386724815067420858040987696439983650919005892557324064875338434959789981635560027868713475338500876211807467063558731259720209265984872676297851019631516673394208360772618733221613918214282202069095487832221749001613245454821158322869276308294190068626965284037383470996003000754636612083020020434841974181232460888050209597265254039801934490159803859474550223028774507350564995128172181108503177208362473832038027828176683842829434051114850285090411419529680446745198192055237492844067123883689654048564367537481532864635117409983484019799931793662295913810108499414420258396481080741809986817249503941393881404623293326990433199014125144309963940876019539660965401850313582485235824889834478350726863513325561725132035743432511792466622161306888208664416586442288243067832376620131040942182434020817789119198040638377540679501766445222647063523322661569120669006266358119646056747724229323378144695572713417845696861256085494591040344995051715954616308738195140862010473134963210732941282604026889784825708843859185853392406740515711742944265400772294463046317303417167138240243964505036794522201602539201461826338414044630908195933803997639667027660908218803965059795108411854735135853792555553135532548455644041511728401785975297054405817399301978730447394231586296143686891185406300953777871224321899428274410324865084876579881239873736544140615336048308504562423924100493774899263576457480995734428855597818427258412022143574831185003704494478952469494024551817859313360174769575601627089578994549821526733933836553621034086800314595983044000837876753877759028776279681757762494606891561993955907831434782549070150070742182477203705226454945515744862491029131715090208114146541596199587792724415289356773095719666286371472871753893013171183891867455296044069896345458297439160464122252628166703017357166422165317281965442173505753208547595601145333986686390516250090145678804193805480793707282711815446976247202659539316178348098174008322552079114558213998955153006728199000651179944802111201863333060821458891741099842255081878721186736743640955182938890755548918327821360694431296885987529405925859589248161214993120142121458214210439125325122467602445244301901176248847621109274689585548973775642454687953944104178737303100619833672828545779750809917459975389358134222202635127289576355929947948204078905471961397281040827045173829621374983151154531548486305879645237885316282272310892086143677766276801783637687320885968593977446010608800404754510470857649188928332670376461697693009444378402571671621785827209394791195833004143782170652584175148293791455897156118359060657057821472010143246108588312893828170438513919319585870967402732387282572147307982544240184882521324912055450332612967163288238369287901428982589338022590956962097136941671316202108984350410062660241124343199006679867417637733137733608189249817095342990497761588807207211620603848745471737899217187656456483414643023884044640919131689129958729927470015330899172844340557889081590058574723351360757316088728729363318935255778930755163457704016340201550335316449402740121453335183886644561725347287554207890296435988574939726418561288941681383693471116949819224936856630608555915593611027919450521363752963236601061143087579406842520944571462144211761930305928707360410650501159830792980578254458407138171756068376342371703593467192565027820374123855817338373466795929844596617519104975218736021533680604019929740993762375265198940146652406353312937542166875954836577610265754601561611403506808190970249220786158164215289301236862880305848741580061897640907912171575793643341672597758850383330526136319120316979999162677884886643885488858622186420758449638896796377515878323649038039857732191929905068693353209449009243148952175327443742966355573832467406553463113290453219915318516429487595265680191343316727057795331974577116913468647518332590397659850648104727170529317000855761002708806499085354612795557074484051796458330086812900440330597992646993225586896477121060687897997888116604020124741659894446365850584652808364769256492080159095111705009655928815648379901699233530923828653318211855806763123091776999103727078801986192522996830442469081114094526874742470283588067823452288723828996654317946313006236854388859484960787784779624304373489660171462077788267761484354797624682676756359730763928593454278627772683979173108822460563021044633517996723642139836643156488889854137872379053628432006222080113005276208109934036982273076443218363194958937827305419173681232383360039995935455994002916996684971205941076143142301843698541216606848981368060148967932273743373122486258345545400807829061842886198242668586615169316261769722128301944152531015722451553618778981127121302018742908398938640329028833133346021133176930056004283959217213713846443055329283803428764743173207415578769255750329310942510915690084255821653218844152664638033694190210676495851297925334051082661709704234645699357997384331088249521592184265836115102979859983013955843881866397477908443649183121383984052370819529331640639239430409639136187002878673044037152765132571721462522786616898165235484301763089270540801720233813828622514315134470452673475671785593677432207904878321932040483949855803736614519207316877653652830659878846375499103783892123920872648096786896854683040985576211511905738551118479031117601580799971344716979712105004998159839523842074351820672270696297865197906363704841817744593226550500880060905032433196281264311919931057439581591116772868271594839497468482100526568060930626657512250568033851019165453485939076475579135641923327595382021490826039808105837483506734621660562880349586667069491399924221812268555981940538562462110064101098549118593993194571630584778344975885560994597022072640160101997991323116403188377007415686668261188136369980342116751588790403223522383614830028041462503193255988102521018823585299937653847271372168186160129224958662108968757341649823625983967890353092458586717845569345939834634300264013232835642799004206032889487302010802911628202681618667445015720287785505429763328020507372316855333391326187205931033755802372727979635971584004907662012849260383312904660671910410795176837160671129673058683826507868313421765390803310842541297557611794497250509939811873193438972403810511191624846376487642642695423908048610174895038508833440924067893917370045488253467776253667281323739660890288105437197694255541984476388856852845466752889456206387219160212111446355331966046017164195994896933635457658166520736670392948325382425053335226633157052757803659984062144059451097085109639267247584783240144122905387195284787707877031211996336393181649092301208897089498738152030537945732050884550940094560640338609273777855481856868943167268771827838494440325667577317986645734982174118248215742096047400935947805353672770810378419840225659517764541403922716697112363868974604422231293845249118865483282596440370844706186976862374358692214224005360670626732111947623827562767946653684038433676982925948751242340279114849028697702020347271352265017891536111725915019723244173249704565709330623540063698697917502187792526260252861914842370782226205545710240422008762101834248221124449752929576671662860458966096490112659811896103131580083784165914341706479848832176309252479888364895193208194308172902805632379218513114515492491679967533729247105580635295218991553258605534852052546454391105290375501317173786522444311919733562088222467723315591084377763630527079340250589675395174584603151878616969750047406534391365978620395555735086352900203882301441979988288403082398227935857672570099751746949951606221864922443573313269070663194523745350598867494750863861962148259401487888301855264745472683091268711015881118285603765728054939381194893629630802722162324602636832464702385653206500662159871800110519928065427320480191736872964669685360412420624468893023316844975122118568853796565580067808421165385254902705847287041584216658559936388689006234541642868444439687006862558137733448196879525565332096339813994930495517622604560326671997263452570815046486317822485042847067986943880603387685709978752530102664650363254865683332573023505878397899460972256713408335309179037327826000563374358054081971638999459512172063505943654092590324569542946764190702054162003140469843064495524604500697534124985891037773077031016910492178374940519519016865388438343555788417629679279270206012893421903853542031296414760833248686564872377732194466788680364429990428970205233183949933297074737512609179914612210648730273020378346485934164882292721100059811259217539062038796871085138130681841945107126040436922684246535846546639493386411337910101360265305523520752382840684266548415083063665182430921091115135876779381598598564900936120188821770677842804062394179458867118167960206378133697813803011110686725309733159149391744530105371070845652336577962912220713762938319017604809438434856204318926386110570631919933476445510740255785688591061307764707323094178782188192937125788308110949970622382817798599344061740739013844239009571643312333881699598521916303035594796362250856080411114791696728925798287693478902178788071462687956507773451613649687018335110448339242979507175170205677766495691375490660779278056237860490302070295357766764081081553393603405740158830594034531870264575763018257649943710753539074701690446717529407085715656531502180089563127390930222340642208193059488394023610748009265900117058607059078405267065524797200930963091386078375050974953990413498809508472105399440306500023833347443438247439066739594111597289922381076838142004773543768224670084497459391288354026339925824756492201809808674098490643094863452488713340916599455721584010396096135438200711491212068793476459426022574756115652487519605655554999117367338300407027423611379828707139796720394954422141983585801693387048894802255543583997640938305072998572670346018322840207704791123860128619857596317136810478638391869036641183124180550140452576330369796740254268134054188482718086799125494442945764296396725872860117123336146177508270417709235237677563507296986534650323275659629230002276032016908751827129956522118404958975115537427578381124531213897219954482615001234649900138085672358738892766667867416748527886792024663766796798414722400908400185484473046007766442695203990355011683945970415068388960515799235522547884127696481692238978119324411524881288214100569411473908167795265536626405144014747685092347771626130132386229327886083607496549521015720390566697741322213837174213185969974640618832732918612436797953718097605737522544553210618106881492362844510320095438736102377507517396720242553486965643196777393438046574656188713400221045037791638097775163632497884129515142133001593594609432358463799658137910222890325091643013216381800961515432245031410721042920089866795252647957517118488403486919468520636781983691217223943296324917398554091816095699225025712879011922421060920635660151136209851286781873473615698078358404967770824909450353314425283416207022019506950476577157464278686037709227396999380785329334547003326864104138377707922582683670283022306412205623241826576074548787744882385127251047582667052950055511646782851749948012947376202174628522864388890363390922050908324310339937696566827873227174150539640047139362813826067862502783496460857580725738991744187799898175910510154689325886938256605868534090966694205946251887841252150192083186350241874067068636036635705579945148932992109562256163924018447659897281961459691878207687530298826734623302278034687538270028295861882507370120085998015865940941526084797595486172150746095752726975355554512193544422523448428553493232597875509163949556411293884731322055385380877157248722460369581636667668356759254666729268163042453770696478272098685332773561687907866078388179814439133105894284963466596169963715874723026199258308587513034319407640318406952087660807146139372453393869681689853979620988194192922745688508689035208034458379139737472804739367230446648494957703090894782184621311743131027254322977734263125628274000991842130582393134589489744233903169978426027491678408184355394931525551104622342921248010562328717214728590206862778469367737463934154083213318165424365304161247562529345867341974964778666368174669678153833062528437186172633692088718347301349956037727602334948779757914931353300816440056576876509049732013903209293261461427858095088576416055031946113401842293462696071973524057463888088889428809433205201343599167205846706024761444760714228010618160221023829475172102288094769696414970859900279738225889392697272545956156410800731762792430596410415735246137713592595625544064128096545921606908018661992262573826611937239888573136940583465285585109493987442035639249628838812469330285299043467545343670373032024776848528087650341857974442006577470701326840062689590106290640259813116746779880333326791875684320867917640376128841682508651833293085380255769432785704190175579305639695287697703592911458857024239164683776406625849192994306733135377776616525000476184006172295708052373105280660347273626009442303730385878603525942956511093608066351499184780000211404200760496181360393567496434191452356213684158611182449510443352539393618116212907215631420094605705633673208090305069847928064994903676530925693285924204115178296050771611767454036973453059863717613046430761881769449573332457018274805477759752039534981252825124002096311389742709574722033732850042031784263970700412213401596782723024835378758301714675885508958247010164105812991056268426549127041363128593237821297565635989476231961561311134943667590606091888805989125615685334557091359059202916162585779325910459611257126512755936971247565861572638502447254976952506893475252966735046293280024223551259900260438626413217751856688696359785650616899533375731358205551029894729330907962461487547795105221471297762408192372157946785807916057903280631329919263827364077777732452134534673367952814161749330793829483941068463031458703933310465959632814234299738796468052398002955250433255156844995284897340534663805420004708441390676983830334954840456998447460890696060781719578416201220824564028673310131991607195694841579885650866328818641488043801035697396654881520743693840774794231187315419107652304411947937567376394124299349061702701505571193873133083986899699114075595574397532089548495308027158829737553063745149582223720978022557618404982336617465752649973206775850987938502038517901443542413571323131444273632401825596149400569031810586533556503407999803516524809993726473054690535249616042763527591301809613100190644575556813842069608757192416159373214121809906679981885408305202250697546926126775988111631908986196341961248165716577106089472178616553198431189871107682460503465584090925809359489956025743887698315237272637826463891661394963364146599102600533276736645976485391678615668679891378475173551666459714086097863081924782794460292004101045437553350504803180557597788803434189085666382020202789156898671243386664660206594411476814678961523435851182007090177405371813795474849561282284733793552483254210391596932688727979552592235405223854212043950102441109701752833439512196530712464129210669759629798241847816518451895753136893984956549986544557015019317577462756672783832960059378233359776231906325066104842266764057521791195874756541110293629901826945067800824615287384874151361734412151629192829428152049609064364678538652932529904872942946756651869578216085954278682075971903779267392749825818235246352669607396514069099728965849576142168727790971317487599230807588748573869600907324117464647383783599719171895992801959691462891331739017662011791845775554259174857524638552923260715116980830095754743055238295912025287210901120317237121926046284705884506475813282667819624439460674224710854622013180341469968434853370327043905946107156558963967836999878270146134056516510909459979245993030970519043271930256282016527819272233012862618429322261658197279668201075128075850620079907766189646533345232207924808492594042553556727417408725302079316378822455121068511758569723730930971617301922910634111839048112069033538279907008026476091350448770349790190721975111827352114067660536523050560225034961810733329879449243273820597621845984000434904157885958356732074644548576825531741944885034167217400604020192553378223798783315558562856670752269411398145462104492715749875088236538122455213346668905447718813673280639470920580006139109246598392906187240167143313159692513181868007744947534168124461728918087498456003493014184989277320600042776666594230207088006012641061790465703486084034761286308481345312221786010609357385536522022543874341529145525420220602459919769491356461762694693672410970623438124711992161384689223906619370961626618769648950678221382485063415751701636895839130585671045397005360205350308980810785846014885775437503496222760875714475776653887885519348323934021797374498287449019222679005934497389745743289862248106168889950862500257959752415489096839611732533188117665314167469896849031384761871829230403124479694482715018765757593852056303818308047524895246090812040427071095600689974576533909333280780027359755291697865511273757623834250030995146454859743399016231921409646037190768631840093645145518796161159650057329287028114287637298542874931700163891295451630128927068927561931000395909756335244345618440492990868523916121160238463990109834002142086181352792816390076275490081034733521996057952251109620679146974538169188548480369462167910938300667689353272056534893534493601273825891025405747337261046722482825332535176629021991687258320277879902822856792710185184825088969272224140580054911553702860298647727940444479028477769774552173478694624436393938393592915844044926880706936024386283780437604985407979212340618383048326063903244362309267414695011114919502892152210214059334818113410494336217847819779038209836131338568711674260054756708229724829500484717447881145527074788531555121565999281455308116577988791718923964795519182482585069357375941226217438519939998261101707540096855580232272470752824330417336129413315803735636741150980549177064484355456011482440999305380684771792793185961170035033951612257121241769947380619183776123745567186394055766320677852523539679235563052783186355004067250689020266164829428965908540638020465228994127876068428847695621008549132677610931352937479600603339084486838226472360094662697868311605196586217730765793005800818225871421860869636523403100197617376003208697129639840018323392764114473460335329237159974630216018808695710990866322833010088835977244931827937812824433278920650754499452786296060502961059897265692345501364111986276942598754770585270923113147123598719557028391729129502818650595843265327937391484704711811900588678418367846959576544738634324240822345313009066516254777634115055292056194155519743906678313729898695598220564808805718716273343024695457009239684533474102673544445668068140329272359071691305840546041024183222348584324050832049106578770395900637590493394332777772656413973816490203299432149499020302243240485791502927087982749512374159608367962036061683287594576319570369105049582013398551176447956174345886642177140355401813381584900368326780527363348347249494521743534858905462162528219237774161144454186665439672857036530718221516608417605522461375574151180621904746378372493921986813799236268476303047251765398624068541367368522630181517948849162033285822806583607630624657642300614808140523387301890590979862642182842180102813703494442526163972776756501702671156804443959140058163511589088671789672566191569171644297811807216035243958487923443985509462771710186834612322278321770505241648283923680852969697972152486363109633655048483346309341092180848825736609075905632130836463455333807208094496289059324788687335472058235940204253092588610287162926113245694957134842839930061512819916102799919476521017663524693372319071635935539001659746519502961382784456683036120326978875663602614416199089705252158342329180008783799021963036239829180269733262085933213332751801097839331820337218217112320359692437160905183984195918702214882681244839881354591690706270035748376168678262886290995492541581717763372501107669628744571240330355554865999529688162243182216430094596951084919131806833528617584187902067198416413128260363506909308853314318050024580212152477580610948312673811409930582652365373712281124881635320735471949440292277054028856279759426023744648126983747873043237203510036967012741237967776999476774508267669988550519055385456167573810446703795525717845983767843536257160731261647252456878169621350913416278328753582887083166203290457693364823465062861625416149065960234040900714375793857296261068257152508262916991062627739451416635294450775551373717840452493621200677063386977709243541745154422519296956278490785587216357711887384840364168410879566830321499730799858977506165033125164786260841956993420160358640309561821822685190947418126152246514029974636410185450916171731383056075448772619682970453048583026094302609409682924682240539515708694165771701127667252730540888901657329936898630663409143930583336953298071884527773528797997953234496141781147185067001109378261283775512142499902573906049664385853722831130025379683703632672649978878385387413582622908520860664638992375669331957705884006744851617991852508361121013518338301215736246138359727455475548527633036708958352501456648188596981057882636868490440012930378495627146097881082471227274030446464181546128964849310850551781940807997083137511089512683542436197960427274058704401630459698079398849139130416658230628365410380797520029691754882663770181315902549648313531066284535412710628149674933602095110417999777457456736507383165403509878863965491389602860959042533620029865592119550165183740212273286142731011336759123060371538398702930083183992050414571917221314740864784666149974321778159082239783344972981653595138327672009317919590945737551648751597228078727424676900170701194059854411241133324114591524875637477055031485288646800220194074644847410772178392381800300739455547563698963397298469177347443500913383809379693342368677278654913788631343789749632547685381307615109862659580334712221979418402224209963546268292516168945350691906436045308559477301049909640851183412466424636907683050430320595140199553023554942204841736414501403185429635393350190742646071878068349478229726000779914934940675223081710970401177523030579368097280274688292078681784168917228322832613758321624137398316727648347430739887200788163704821425964357755186936871398086666179251757609618294217948760893877087288438904371841902619752635830725302723840522521837356654520776160529257818964876331973001709653021977474484031232874130856356503488786680023161868703118804952237603766238165886870409002668628541148408397936095887535970140159788590441686985952295008370031774985160895942140467279466204583703251510296158768743223144522169173694408468740574240821569820115062295154287164194714353840913739961917344984916651816989186073860552471300942566651375419845909352752403207712164829125737602022614297151453099606429025795003498594246136078575987562195159363101016677084270826376570719888939307929164356425567772902168730506703652717799558236206680866121786038343805392293230493671868931830792284640772490323539638537586576985809437397174431782807947929703513432786909345338697382201907534338414556825878678540911912114368037343226984254977386715347905074786608113434780112478925785221685272425666749602725611146275942866312800251470617571992202868402261079794825416730101936803822548895095491314057446688340557578430262496324807584150258188454176549854589566635209571402223963882290954744192863211006008649376586408422658383640694855530419238463591607072856697166011524358998954373850388617688661927268813162263424134508973675972733453706012750836645131806835029857611241496409673829864921669524847455425011024189300682947816645734154944138045479069058636191006924181300597922533085853250915388564300657096099590973932091154972038802571835685324365044181174101809752164074947650950019575022458240405865714987097830863136492241867745522304633297627418570641226411260207243444020673594324075685641069095782367214479273940215741011758812017116134207863398931061637033332247271860307033958526768249353702873533013341933572423761937512315711886953703154886485946207538712895916086493175458076801639213850161221209696305190312674782247732217649926612106665094210971919697015573765655927887359242196668497660347094721177386201723159422509624739470152025924649780523723970275467134294979285550632204502335875624650864291918268322447322930179012793602570871864870437560444412249174663363852158692601697727618207237510210592054571942506952540661157368678547841798414111191001026961195328058345314507888328490050804692046699221395707181975759789772790499803158252368703078438401562000943332513007642359159494624467524117458354164183372356471182528413616107225860159571294385544775507983749074930201717694958097720650717411633324353351563328650846093833437176932800463465191180127459151007411018583842163938806089513084551519165560696208883650226385108497419300098483451441775650831707939727748324324312291319402591090334381992182116272400477966375305975324702060872355398642686769390057571052601663682887916002528538568478613414668665198084710780678797206008094714798246183473652465622744916295138895784758876868844885616184535409030307828466207909552651428675183911804761369652957472702348461083170256065288453985075112300162423096423361126586096086949221332183924227502135607949571270384152050441008444900368309222553811069172282455533558656036855193761104581772694054706109137464599850352205206197060048965991996795521468874435030851799069280137963492130842190012397126698119148313343880928044968587782377123929065697049437817912414166335924750746894528987623440830196548346059610607340225511590651773096831836198052950380224432675303526922836428689937789641908711103001120555448289642047899096090225685583150902622083891350685862309600898543873651754061426435480925031963727862951145413999595091040218527634386768166349939786827937321540433251104145784591216397489611815600980650864111631404870655815003220154990608309786091962759359668095107149217626054041277317666818176129286888032846412934090424648115748620719526565754914028463353858015818979341304959184478462859940258584416636643282543336953319450087926481033965542992680569557716927454743475976082067213623155897768002049877979812678361490109067990786342117450479261401908400247004267658836421596186810150851052535069857880315352643542320099031703945820652382856973616613114878187032779397139924368094062992369580038000935766158886438009174177391458827207977974618043826649829742294647362675385131349441445936617871486095986119580060780483586351997921623432482989740760384184585400029995203677894452314279526149798895909958377678065370294563249159398823335946550051930641543357227101315110554783605481298595006959615659133361980117419769800447994854884304295395797656673584463273994794047688617188152974323305695291174360979293795757666515365168818718814660085908292464267395744170390352150371319873012097694028944141262090242707992043971503439384489399813996413912235099679878740820334267779643349988986431128115122716419411639705102049566492392578208515283533786568490169560653409498109906330377840955174373212896324132659469284898521737632664666721736962209409008632662391761423829273750603032285482277703705629277805190212345901850865315515050294956624690752917320387664987431796795241969859400223654646556403470812945100019386655910838085747964903945445173919813944938840228604115403913666128118402080468897407047170928203774636528550621748320369211788461058069688934408578105211770166413615207891839259824522337685229118379739965105546223736789853523287837281477565440639762140404251900482775998872149913466929064278580507840529162742047265919767622897592087648154045053060345051831486343271188083644958951854776079687675398551314437199437679357217262250352426695833919505200319569304057269715327327168077400371533695505867624402691437894956792068934175211822758058652923886916187996824353135020577630740414454539664181601359227606802664501478030459200933849194183602106739475717644756267818409307200480532497868455122724857599822491621071326848649713022171348345286726336036388755451021347711022116292320939499820719244312705097385784807781453761192799187581887064203108695867612090676802069070520065213371415476624494477636843273992607174959651501702321703123477677584785538370002217992905264987545962912800100346892616299362347175759004901208144364103548713879809786340199442431047954193683805416757805764263437308776764340948595900103346429442584693974252903866202878022004192531978596360253474135938913621160781929361079326055558855128777104388018341867933196810064641002155501785393467437630521917390390841297428363195140262805526888743079969940554760743649232905811327614073237835635112245884791926545839407532709520563607298767740176846335660048257508096695292443902587019343495229058604670987152426429521832188633237173962697727464584168018896856519440670391112001177543020321633282551205412898438871067652446757907485131215860910279494909031333409445791881183509859599822137193752582749566047978373942291196541887296590220614977958543743229280049312024039090612543962542251137059700745439131898152905562515155837766489566986496158809372749440783621079176431144243886285026256204210911338492855409920012771559187071774184035364492083035793180345320386079748050012104537774891989833639370450905668047009812971914462140484488237268366605705853257048179369264313856811192474794675564263960005100240455642855140913001359907548872217014243480741083751995668108174090200780749360358557921064436366557539094434721433264352036996951693488474802660783913005266064352624560768775117903067241036180119916425381963988214978510708198046638787425971060271740192071672561071000983179892843172468165825182029558955707394951137228155027892119186944685262681313235692361796577001709232145476582121448039116987623461162319671619417927726214261578340299738354473819706516693715450945800881733661419703037774119655622088814429697840820281243801187263824216607847607550103794120684287451702566047302701886175433932392195392132184117702687545717123064646364797710524292002968974255060707669591706045066769939753946288624175427617369143955440126998244101401397762222636064191529170802642994276788830150050327261439193296790910132250325929484950410684956197887574414677603876925436632015581997512920032912651975828024183394906901476272219244684677153639707130727820273778559546024796840672255301263357274621667933809051090824452797528011538003021896582971513605802355732390983444103214011644622382785820931299857776335659333038385922932952092836819604064155506322060496653715073677351790256944033193470770068981300318649905369574635885461027740744948119868134116278334435759068488415958105332919724311072520515694075470300189020349400547024226334459271377390751395922928970754970719026434491574278335058020575922475355966079824087748384825239148427812641201870444558004662930535604511267030384066346294719824938423733770890190959103615808567375447198902105249168119969015044801667261719181179686458125441417299353668189921255728275345472554108340397225154855650510447846542945583201611572354223104148932926943409942155805698551755145717779712549901063124470040118922148732029842619815272606629796423261641503323858439047794146942030417143976683022532138451654596590213389319112385798843226256344395527567806718177374870677264416368137352390895713201185509466922822254709444158337942102270006255340505746853244972138824744936290565402700724164250138203816119104678308899217700840754031871738118781629253123297399434111867010573780458906076754257162004317759937283084070244880383816626204350306999513087763605483472434762549111813983162078280051634622325899710227342364810592775858512118607894893191240230025787943510924252922694551074952260696195485981672209342388423643900199657339031898367253716060254134971572920743374054722367664531979169696465573508177490408867932130500349914447209433744977967682941859234281402732986907500702045071364348783117267339725019472554650527295248435088235240262384535913899207213841236928131812978819278193502510957601403473623363692171951283990282437910630374661785998141410063825327825403803518960591005551364093829576217366974882284119402142466072593305978664119058667175141829623454907288124983195433305243067527276779860264828875391326214224011592198963751434656896602736289167321240010575911544352656842615596877306064054613845338912742693190338934008444479821777212673454543439174424571364370634295231704412613392368019457341845084806728301991593366290929840249318248041480319823108800061000422477475616278258269203360817225323226295171480634264224344996971262481542504280410479084580274793870235215529407390190978426379664372213324957163511154197535934232858496064556422619147502474033112016887548587463431905079583262264332006441792238242690058470701777932480060123324228878819852856505804909576053169102821664572727437421770444838183457965197397894077220509159057703721322951229082036926381123869438990508108570899022791734978709017115940130197144566497856708414139484286996909217603266926765184427852603047920381950998203971208112209272957804637600114288959938325936407894785221360281717644944730578239566471087488572112920029812715236007686971510236138297846769184704422161077088864750576163816168950119639797021389614006631614234488923710501054027992182780672170845477623667559174439881172796602842505892616873313781082718006437645296008450695515880395108632058402314780593619773146769714082285578014944585810389617080846958584798150823117801331338793318590900356127101357108251531459621379567500309987146878665941461297334926089433067763498739925697051345907317635554890574745973370107667829883093178938031316740004305965838231105207149867841644785477283172224747107687033112387712571104603474146935626879677106542795195011362295104209801939929420466703334409704686482406173417600890802112982796000512077815456452434137944972357207746663159783922613985727296848877215046002535563511847595973407730385214042261173295473154451511144508575041490962107834666812532851968324405836106454884618485964227816619517138299592466327903211487100243228056686278500679214779678860649035238910551560977121342613821986871064321525510947141946989240012135740377322020465652692391057970129904100232040048479532687626861307362926439955290878281544338546621254806198807089717705149491222277125865148622159527455647263804710058702528610520735086573619409373319727794935620164555305770887316165549325171765262957729146110835663529412778007668626650763655742720001988898479457526004238899304719902674644522758962772914463983157593930295589939589416410588341679407215110410050848533395085946194999802280554909690181703800784013563435336950277024421836415699698150067228695321968897389895159659587522169171539461097773779486461884223079629269258826308254305744054407378413940611092995688965237395411997577250491474162557395441683553084911690921014335159942161088695534108334092095549424267845202731622944840089793774117356505639837420069330861356252416091744546147978051555408468012357737386460946031825912360919317329962144594287000126923939971971492856185804882572665198550951949709330962384846744209300165628906114981778548322661495757587253260699894801826194435005357478648152060297092443735765427405842432797388752342242595404641952394111255534216377575840211481501319839460398905878211373125224611900704340766074960449500733844091332681451286747554786309043337380668039769355053520110889374860000026089289540124526850835523035696166946955327330839494977339328697118413565453192091082507430520881794917616052530143463330330649355812676342948928109615908581193059115825418766452403989702567769753077862373683094569462467336586143659400632252674954488815154667231244275353055603024490919616534020091158425875267215358307728153603349996987786088317275112742200335495337049696908436630376799399069339305704733992497204065052937961745999499637996685965575252197694123283969361833731636294697071220087273546631971916192186558107193303264430590590043002025753014142515999038986701576899285819960748386152658046158534918434390651149587548804413611597866282164388529099590490950038562045328210532871187609424900800792032578080689842655828699095912300091236969947642888449942288896809612605285457195744466846418869222418094048208419983058891109151849383441526938858544119337068868885916175982734720103697666411319153203238174383222904569980606328717974176987080645890808406161649719145602186365615006125208790580422819383996239263619805961972637995613456625892336475694700750723677253138959544688956358810688491684790956234425522172795648262569162639608811590037447355338611192946400239466944453902221433676929899599926844416834826132240147566167126116962857452276655573360926271429940736529686095512316264304500814113848847258299956382829042527175232763252563741275501182242896200365495490289479055323757860407786282943365049269362609835718244880887230294627740252715829261663050983303198056491259914983436883028561552852925700835709657377476462788659127280360285781265569897672637512793653041807231940041715076122078586991213206177909887520008951181270272270915913628992489116071787785812337052151774644441534608112491485505824193888002313410498502905391190034127892485893568998911835100340731423825274154580920953774820982305471213466056768031065804682426213131267115891089084454221325237640883664952389694411289638099439801937244483685517443014516896510418523243158134539095757694493167388711851000769575703264879996225619116236695936683898351113113972105276891583366781440581245619447020771798054285306446581059492890009829547533871022151842007679084881231746511444224998372618015192872558411722542938266625721341705653842311883941226901884162755024091003164192236802791664175714197446453631550472068920577827669058137412179211051119551280000549559755196726757820204271343337863264426538881690253350706013957080504274451208437085306084715766087370060619698669549712738550740827744896062187774459179145061738685415034297216854314617049124347505963147034767492489552560367102994496251899964222551080018455553984653381294493652076842514170000555251774008024219916273745717731372645638736484787559184887859016522839817693604257677315719851679441756997323738030315164507087802456747183687972504164885481003096774004232444099714978006411785934026621661406870470492142234210170256746711673959955473149418841758971359951583755298275286224928950280474746958126105494277748128822599902763383360319514445388053833176411833411470110702951682859126036918307661913274014509659885150567494438597699790607179487415924248054829280726310325234067708994811774481508073919295594360022375342282519294431051464113903540094612450781999038766228637620756505807827806324620279812638124072042388201591737557525304403573919262895924754585712397031682849136305181741925625134146316192367378395046763000688484816870015009649701767627321811012905793292146780787242012745119295135191507459286986815411142098825448033462872083433342787260765684234055673047203281021722377616864610352874226714487023844132620251787598668848354269224803775856675806072171858042042007790085796370369454929495421092990396553281691997044752537718376125387773893078336124818578501808671308310771794403816519673228270625149775000455232328765290189225351251494038479615744234788114735763677134313974508499487845629720274333225871931037895029434820302152325850213791026113549357329730019785021592403495233744973581262827773351784754748878916057967550690292178171133900881083475584139521896931190648444978655357023494409780798504421026323522557417067059186157070471301912626938134009663944167424747232505318498460816440647659032242450190024088036042944806288903257187850220305515898046375402255382006213861515334843247912199861432834731794966728123065203066279164921257346561145368012435215388596636903710139367637423479377346598451320497636893541440903377863607215275413805124891459687433507253640926930444640594270090849254848381735855627438469180225406127725985169931993353011859372383858084967945485730425439804405172482662795497645248043940309765821002896636758495436083510152017819159684946718263086056962034835346079892764222267671626990933834837194632705399758049385039004136225219805562434653060849102453041334183924045959019175209052445249144964188529692936301356057317241188485820879304843822339260373082248912167773151635473189446638526853769130944353539033573017671662941921083453235750627957500317115038322409528178649482564770856216898514184006152362559230225837065621912496105055728473573486869420512514910375381747681588351953132642304100842398783152975483740883647063646728629715854258033623245908008689843322947572411420736361626768678792818775649235926495071389155177883208184703959951768128340460915863859970179651112504831918679833200620442639335193413793646877908408110669817939053262957483882646242516940417222370360443786675287147437831822662259337958774028013580232514719902772272422700476840175317905674539982005307682359733196764264179575918814602504642554884316381989703739997383826808046981277101915279950728600622945344970708635178383811003691925403891821651154993075102113385015030117897680146258250925340867326664564906005375366447643170602056168341852718600453794409248335334856274365715684701444055470260760138490923254433756914086309049637746282721657394521755582161457201007605935912636453881246591686062090445000402286737208333211833529811820968148580340881551765466320650238375737216083511762040128634363904095124030600583372914453662859144074167810047667997673432466756017319273602199229872715354835608968955357162065392976074257670081983589757948272216399214913022783695175150467869075119544694048267268698208124745744526308428103606155261945692317880945337229180800197558309622115520677366910127317506723839714664960467434181526277600884323784843497510652645128844109896294150790825541729218431092165345879257534173603910026994348572101251462383097690037414840421132599068231922417029171613304597299583058561504276961350210401095490705651619828252923382706253951481603917578578160080559354572502373510410669097309224632349578151853323165596442257025896791981555521554052876715848295066582040205170836914449199621785468512312699569096851744381651057478111769407981428434985547684150476982958987921047657309959695312844342065753318412785924276601821950563107729914212368156697518309467234943653122242715832556673895755293392724302645243889968913260551955552320230726296628504924315835795844000882318546306556918099587571948619824072329991360762536638424018259424340342441160762402450059215260256930381589173081933840008217820381368369143141172545989658781484480666404457203862859657316688946578753112169755950966748232397395360695954582676940152404822026577448182884234137447313019881258383327650841193871413669004286842810874668860378711132539266776318823691973699805940862325629146654705772674936354697804259057656325747987317772840137347104342275833117315934319800869394276430154510679366607694747398545436078226962180079222099076420123906010017918613669148150337354486071800642771516829934416869380701770987214119813338672388445578586798313644957013509052453199165874008259794126732144114668277270898019617758301158179599944851114906600869751920755064334620608813674841725660112645816444665480509468250560335393499491466356596922792247385466903414745922448356103917301185339768326672064709509391829590266231365972684980529016101180647539330995358772155586938142708251655753398290974880448502677508466352820824426511762019084784297867214098245065204520781617873059155962341496723286529629223521069416017128151960695855020719147819180844142091117100702967287915038422487535797653792005092549485835028601546560235123476239500213962737488623866856644448147601153805274600635286217132577593935222454872165695103558001249795221040647886094980932291955124992501264243454404061823619340125343646574673366701855094968323667248889458304878859624593084565032296863302203800561021636205183044198220427298549218278853308300623035193248925166631266536029192979362662285841627705810530939229694655031688899721983549025591027415347956373657470299462933158267028128238262673404482258962430436809945575635202219253632573319569101005250889044250065518265602101066250186956815402373817277180139647401494781423018389991120424510803021866399958697391828816720678952462928877664039081289768906243210071350316776683189493638716970344862641522661005004102753976358428121703107641622672709085383820216076617848372365704502966624524602039848226901401617156812099541829592325225008979026182360640995081005402590946571605868613774468497301703620112411980501667912249415633460064178033595781089536970379535407187416736376307241219780028714996925956738875924052422641417378744438375892611008691414801141102580048453212273229496328984941555826729414924342960332706077472319794013307185463141088033841699090667085033578704970559989190190799921538012064255614775978234558150311620161056608062118380858052489159931097217552458324154829039998752920291901565462169429963940874384929920981971311141275809556466511103612867846414172732270301374727238126671174946440885160210792569089667832682160228964976108242912314111344708796582940920357052664471713229845733662790492142749738098125631022030680126630322654108126811864302905033718615847062416713354907701952355979616350319123569608464538159637027458318526856701240110899959382801007684321739670716898599196937783256785867188130286744447118244152693937236149051942314858456501749376176344694758997290516842139652280050827818779128676536678035691479958682259752216851447414825673489410296203113207020408328896066339515939226020536874255251889990143285155272311506984073970788811030562459961459900414452020958963518255232542148000189672480910488206902202830907603845917754700597964158448529027627721274811400042342837935351247992047423136739018074446381700276330422070763012469337490064123208688248636510543170487553615141190641615346024315100162186633286206566722705621163506047869699271793149201644062622168564872823625025094020961237904607895312961978679055382722006800295447467758841245647822614838582851801346426361805153212515143229419521828466946919834127294597908024819519641925621396857935702147975686389962237397100441784281779996648813288424252183408521548226027197958880026968807057250743040714502061731983353725563329672401875329065755076780723348899848467961685291937422006855733064904243864887338427370183624875257398525218225949812545290923373818552865560572159045417865382881341697591793291902813856174412060243992770335065432913542383900815180526120174901512898047583327395199900923459427749240190069736195098262174458546183177023783032978639602296968736196402302523552761472623450555049387030778078123391945271843412305854011210427472375190942236515738521471375237069967411557115916140033795262259542309039548550178971164264943602809220454606034893543648378203577192103335245463688984592377270768102313156013779774533288582553302503979990751631238461886064128906118043290909905084710132061803739525838490573666548218479482001840554152368468780402123513074167597395139766131644260789024535081316108930046996616524343294956770605993147909622008972449015631367093718735626647663274012160573517927025238993657244911155996137605030003199470214856779335027726715811693515139218567524108671044959743918618710583710771298018740290567319458872704836825554612102462014684319312780611839612398058494981911833236351364521764401320019918776486240055327540722310590652881853346452481136357750533806210670483311769171002036890382346731526564407776453253681704656941085659108504562305366267652837360148722764627939881457930079526996585448460334041988634566979884951644407570302470509684052673291741510981417665909225238665877069638190231163082951292058224787748538406259442940752001646228016367806876432963587870014393936451485668972275451472470270096650156707976244901536908475226778122675011303781185935696839351393395502179070047842842265345130715736805507068599656343513928790922636725874657913798410645725597061604006285509606482411731282489387786466166392751215996020960370532058318545653469153399939839892071343557398696763901189560314215421236729796273242409003805692563009002378842483925912262345935837731892358896529567011849001434712041079075321165632610979348550116126878832349123440654950806850591930939210446954104690322570696744279317149189706287949189361296950804020945646381400978073658468802516357620692262637375412394224077730441257818583078998300651616054314234633516484827490578475162903389878812002014495935340891135857595373896961058173587882864122613987696752719838300820836719568100812745812120680080840813866083166642228658184255843984793043209834702841108738199658408803272038212579963116732607107372793298547851529385282774365896889957523865507123595801700196627706425620714259440790807212612589060405380448458466345029687663119103401142489940796456298720779034810813427284874237350359844815411512782718550044006614712190113810417063924183520758647055797298449691249338364857072655679556971598448607747205747589010004630636273829717899411101362958578993397988023941197235349038300130993023042898726755512346239422228823895081041215333987735896849968615774337051932893143474907846428240716561012620050100225202110547885536507189312536237426350952663867293729003802509507421717906672212412935396295733267781403331702157940776736934252919270605321647063475096837625272774443847715339743212683990013532446039911719721262582484358875792518991536830171401424902658695438701931865249509051633430451752364511638055024603738690764554385091884556505295452864447697909286682914230433624098896882158041252474062417882297612423979976363393628979699811662280678472001423154260406827599295602377699430517000878371739599905240156745704893782485946323071248771340938235171614639665104343927684926347271105631402632071442247084752009443249906823320498723050653085455177001747068892622663503134280556591314353314157840358247601563501207629359754504989131406592796459881087890707717524460980614928338393257498056004377644109866451721313063205579870886950745481639809042017692276815436037492404294534089568062106372684546281728020001440220514159050335848114446943121831379545255019379013260387765085985029894755308330365021298407314164436942331905532986551561547142570329131121295499609762385058977119045487569318444825282678915023193852923244020550130053810480219804656234416805424084690280545474744545944005207092419645730079962730922672847987351129954185303586567001660693215755515429600712371355432760395567184177747177144420731139540236171440386136875820681885941597318641102236587820398576816651177404185305478497016970145142604927989342728817685758638134311982679040636795901151967588204222484245430154950065099510945367379413344451190901898435164217143061715895280834730165993990785905824145030445675382322521838305135209930128389322331477804380868491818475915030889751392987122583739528563362499104584548783041891796870680996664193454896528218409191965506886513333123486145587300559272837901532622235362128072653915615483991009628751494071386061883358894759600503196079355931169966006403775300938181420250150955465034236721148814901670586655167310019890836538293132914621951876605421112532804149298280047705485685244030237019613747613083339349349291795337112891105140714487186608702220039598972141781593570909950972819021176490311067380059842997102765504464148094198214743981137943653231327863003598496066849913249534272736124627001728810911875435090075379323459160848873543743574518644056684345369240516140406146350681494130461079382635704507217747327784437776195254532067775730131518226003618563243928740006051555150118860137847955361519152416547583169482173449622522364492461671036775805366290959508736194465746971220134173767143870708438681958936423839523654971331027601374471129567423072521296125610520875296090640140523303112958245790173762609945528712741202225064809251047761548023900279835520623431750861943434699584101720283220910820906754935493750282574986564479720974704223280323631966730056140099544283978798341677758018173094813754175402378978165451802796309590353680000020573856909700328835928911560401505645503739651312163235194362494283029654623010022602335790436204566236552618932840892532722254806690216678726145508612194539947406795764510822415025545072943902304222020975996375691698057062967343360348956906531799764249603325321443411995832696650653897066028082558818969362898742172355018445704457547382775839966433019598586950717487733387762029430324782522878818536946785338799503284977863653601523380126652567067341917643141576870560874222631613759497072779060231829446957085471618171756264456328329790398005493921659985549100060367492688757535330949886892213021975496257037596647476857425563238851777592361563612498111434687919698493073047643626240898890874841489443354589676385306608313029703924040597091454818175268869041268380824083398991945687519383002273831514896404397776461389806425430844831224595080300199370359192484479404648344097452777150274152679941549144760278819926243453349180651747543207184772456968214043843470814197747653743520718502950107301587433118900263010075540076031030097728721664326895054500083564298929547764709472084850892006837688979502666504135325405322894451580516716608269832991272096006917082164244275070760433125359564219764863225464169533672616233929619086674499868300670823895045051089831394852912621269753983064841628050742947750679497633213038447070538067524580033070729027898655230242718658270950463163593421079525620462115331003669880164101618712455198240891575984056718903915846757284903791401418667763357082275479937317274983856472131974988846546787925165354041139210156647946981955467981760612889832410289375684949130310212367377510084503293354424483784869037788100809218030653684312569414808705968693258349707096361905710055171224361024738057367112001991787827523883442682711230849766994194245502836480487938798372636810748445752514064204499220989804907602414100345467901593512986052861070974421876433153935990566406920054836411147551714445153350852454973734840724635756850672194370714347144989235166613150096961151197087203827084610184584959878418559574019122764472632017682592437267125963106399004268216138117648766054154437991724443540355882143725940247060716518572289538037901525989879219180425319692579493432942045770083608715608171095586227856220200303596387760326195981564573581559170470393235348479571284919265245902935299936503576360730800950661297855464573478421857015891684899190435378673642963917964137287874763494177047723398839351369346066838991259818331496505125630104646601271547852449766225856775617413806081065818901475551367611705856695886249106135736134202609305361612052026889498945727351237131958681423462627939398930460444250017762956487880511969864993608760277670143039084724011828019286830238139065253619459534019278984228443737146619879346341165254633408135179148660999566898692124450081114393298525155655514201791541054961362168336235009997077261767274776603107137404435940474978265372781410737550684555319941415353579937528938250882352602500440697804220075458763994281241460993223367461224383123600331072254471506753679941349419145542552358781432934922805232340122886244302317509948293693088282040839518635341361056164733624075059147550228623878543409563627027984064145097921665754561871880355427795991620249613484266375708241029908174330569974322879723203423433526940023477901206916227641551635318904691747701094552817765011229083940539700034057265220379744531747729781125003975420251549847471680167363034947019427654923363871022043002679991718676415446480724716772379845823898104817250765739451474288500687160699325315234465152835599891805972953250689529662497738213881756425947162553025728887781397186390024769349686833043429104088213654500635870891678900322381559801612288678191834299186032668510135848649042469137224225905675980847978831099936138862238129753327935419523358632085031290451620277265315728412198036384369763324934325778106039237249380699891649615409032839044097466952690904538833350699296413221289339272476882459720344707220923908793793355648268380231849147389336487493435263743265164624521662297591765070302101870167679462036592904068493039761227942468202243221325308145322631944004034689703511384001132332993110399648487254973230024496471641066260712989784176457014659394105650991856921211020762202142727308102848455687183847474182830082691013889888751571806990025384111700452394137366750442652173810950122928236872879096333220217954185204261050568340590767452077883550670029018831618405134296401873569774423689502714773916866071003284842170103759897777032564048291165171759689476606425494398565875035143641933543709301214508200843219762454608402213811892581109227824717071614450962751117468084520511200303738908218137814020157724885363871844998716206290502328291327303511943728193918339229282399456221532541329371402773491695358454743718206116154733713278482634398064377896958825126111406114259194820952672054359422581274933708371900495952149539714987608372658817741296398568284083011414111471879173387063632503442980889273614873676298324753452935180847482127714895086575081456733589827690247724298941917010307788766800886447128526170772809545707466106146775687637647708674189216730894760198551854956140531554804376706656623733102684497356284463662438754651357900107358397196367387229022486043200109061139626955726512449940855731642710358964967267943263337272541020122434387719677831217867592607982954389155537238266281774711673916282298188161709065821722543589908180639228507203599639000325484718528113373005538975172740641612720867201137541102315260518778855667786021133795033565073772894912632639307550393354628876596531700426449150303414213847576538597426316350322709607194545087682857680654583657800327446264719032260261619899973433219442639856491679379710240420899312160792387944567642661489431591741754464904429746293677363832929083369713270005923745553308338949042839980816892220464288284121826295369930148121799081610223525308311497586289067568480406086224662921457796107388100351229152539814993625726987698117256544179802678580371863523544582946610046030091829606635290022630810678761466060956848743695461485134647847286447379310439982767728613522145839400957285946291436670659918582283023352021409349059074267408290831256233101807431264076583089359081055737602614742550365611482401979917182195167533414109692601414403219381945577800229513626994773388978486182926461249318239574772323623151708502968122995091633539153905587395929508457070872063607773063607998841809253154780313588713440462000294416340702600421847847034800303795872216666716873970110190881529201805472351912616075986970969061556704751404353474789102189007856503135715433719478799340110344314602198425657704954157518982151038485280348460511744949576585454061835658866663474147254128381775738011185211500045978495892718767187156818323161534800102880994080756716166280420758985176977155923441042945902377133261800817755082992524008308668910244000167610020286781991073942647112787860801383033366384740203723209477470038361507671787219318764477209606609583679444648974209244028764685386093494326715037467295069903316986665585867352457144839912416020940196735792650767416280552049978133775242082462748838818289137111828958475572906666720283384517268138494524160504583893226412648257010443205659576615194088811196060175865654230278353795746933715395224061029361294959626520420185013409637415405939854202281174627961048458220156656445903705790975439946955414655799385251557760114847641883865817149482739222913400299325721610944011286949674773319849357499484057359635883930785064727344928269914299866336144369588335246436469814727131645166801203968672612573049629020600407689362859592373129046331344109681602372856536903329456508172248097154086819999612912491980431813251440308633966555597343695649682447655176461142677504386473096662185663875151271074981990210850380921024995119214988315501625799447617005114871100393802455730134991460535838278685592015543819488126956379575173432184782458834857401540859191578540602624613003938662620130808758929004187414708210013288085666018660113795339188781240411645033369771396842795044954690591979054865166271209560187373893876925778505577999673005320390972614734663223278505342999195415822809223700127941342446242951941748928494983983125405720231844772950316963001592092390001609509950593889084231804340289333234617643609129496144932002741850771933456238166391504066217159001963314937050867088305076206336285729262944919073128490114478357228826790353509799519384650143244966011702144993390509635280198676470512976487700928133723881185565436813726341145551201782099712626914209129966483057144413551000473069196445160684090870623080396657019545857491189559583753242320802469912764411423895700972900665792996363358660773353965686908112540424678042139782333596087032918073405291546872902554723141475920316483980232163366123735031272111326983945185121782594456727924846769103712894546044744549315099237922883164678198089746604068995168037062509520194056064891086414479977323657604319967025576557832243415333554582156771966028087843854809609644710301969111458967743837725510582443876922749445175392550121997232819509145975932556437895190296709286269427712818010307284712360096753036365659941754160735239727032537751797785349905571212479651671475998299429425973246020960944634905414455176269894292690916589283501134808946856995104943671094456801297267093927676765848507183962693340282256324493423885926858859885213938999107290636277267766252693207533653447482347290400864820819879407396059654501596714071213848561909723731945363260645463394601354548146853340445998942851917671210170681471875734329642409576153886116450338360881957712322634348909338210973657012841571146642926997025598356393826655795684670685830230260749848441372169737371418216133728823790040051397328375644670406483311172642653375861454636962918672119072248668245920481710011764697110545707933431804481612946551037697442782154282903564923754202460760183248361567772132350583272378108594254039237447677480296892466473661482469962451001024598199932661417903973938892507016469872421091851523983563127409339881260587324339060877409633260140904938995135808885955960785230191102226277320453810862964655385697644076920970101459700952283236965344570005917133709538763484706733574554661663042333596162687863799460132663500591960456283798238465885733143392747046304127723296841449229352500301681168050681645302625246416180269528292528162656847119966326347974260017716250443507556298775277516655622793808619800878681574107985693509034453533611505562854337070613700771931789393766810170737974917677861259475166180786861815308288978609362738248174090680772473621414000045579699095617338964956486491753837780809422260019531663260936108484636355751913859600486153087376514937558206393819408046239325403239664921107855641900654187520566992386355286309861209975926175249410650033373057462953084311447900558398150848413922937314803135849893275506079792166569525612718176197044473876413316538025597970456056691816121570611366315634865927096099971409620211783813340916637127139328014350279446424032327922928242908002238978259301029470228289813216536587575062261344638610334598839293530974521144201125459124974425171261451690664840662623518112021005999783997813952719443968327086389892432981295612892471115933662641579506647832323985060967346559496219284651539320953499244460102341862775524342206483116568990864300270527617754209363903537224305474871798630611784519783738489047143050426708186982529338404049065076653518036722844785713146485835025024859443846436763467667827956531099818997417405600411922149418679113469705607795591742703558845282533748237831105174366704704165714545456899090534600076038879430404894012772036348284765275110419752541294563545544576607111163250024364733461229381054299517711614552739478555327377654962478222208464831452753382672248370616913811351854633812190088432044201293070531030562305994429857662838845056344467242901237284865628582299080203397654111629626022072638061304729092395818069928715817978672102459830651671869916769389879180357833859589137606334943477891546821959775317253454553233493287081735512767561363814257274308248470162689689387202498430717249977773162156621022538829375297602180303842579408429555375390649178940305614607352265123401492993434396089557553783966382884557258269852320828778329712260010988710382998526313844380953107465307118314855424070028845147615998190359947895153867965544735672007959879945253143459612695516139083082059785150692384518854698733465384291250009939720810739504801966664109497912284432523044499028914007160129708766886142649219159600849974440124172716026430359220588987211768285884998819618449842548097692278981044124846399978406631599337942709819992264061758922096986663751948011948343623714695800529476476254234457617881609197668035365229577204097487303305115944815527254690545689574812513319286032553251872398989718777010738301380628804157087821518850660880500025313735186804633724566104228509484226904574218461100708811846501370787914656634060260567750678929531674022108056648502555617982821251870694492823675976147307103817332064909643536192504899331645513860314706113968529147284394273889372928127826800450037147994479415440658077283870395429234720326625208387606877838914273222479569416016518370783533252310497749633718659922944380414667995140801843158526747507005446782140520961158919864227512192624270130889568400434522622914522974797187615116305504551582204316186309945423279297218729838153775769685070861199137530292023850576885854970083398603360281720549270428882211236121269410233148728030103927251342249998462777764709424710613966357281140391305401463530156368731722882477991013196333429688766328531442057920056918718612233179415287903491294780362279776994839044675476559795154528840204007387773811619778097144273648305445095476351092558958495439416787477550911710432869617422722341758042025930176093442251589416818585130287998002180615082928264833210934876545008273706096302648633513296837866044492797442223730471361346945380381060807477898341959847624075813649629066642782996063135721208239267505857785619980724089646857664797091354115147481636162159414462979448337986318779997522090686368240564112465549545407119350628505434460583056760611090504466983907428476399728841521519709132576881918342643167768180637082981423876347396952612148714909456172384806718372567016201489894872464782294654594143879357781611718926042099729459080273639626154607679387688234723711256641511150509137864645176324318036043221664414758423989385410079482149273458744930515635336776510437496874571660708176814928551680409193926699476396971681876051313355988720314904007408696036466537950428849851290101693220611827455240147872004538936073491346263882494119387891657206726352995376303311514333728260519887066108889143339614716600085548461686834327381802496611521057569854756642020695764278402009432257528739995442941476674262127563693991170114809360617507720912877481644560908007469317394110986963457837848361807516594153706016307862062613440326414368797634021998175873218296030859206336220303254292779701848063526357271345174593780305540393358881128417261054333682754211237256700469321923531331926224247381360049787763234398486317095091065293299477870649612993211741465704861287854695619886125642522082104310114730227046356598372707054926080146392117467581274675099526025096394047397680267998425941127814409942716838032357904203790463985968155698853791475117698301407614011218632533007810579009919549841785130023137496342185276406824298101437953909792629907765513598117288641375239681330083951423793955064460372737644307785900245144408757830797952952675392515535966375928270999772994008382605595890571326774326886975659310825837227378956951483182543320051075543435777894356039132514373083428269467970345281792066327693553729965762630483534011381355727495299122937448017342724211806005007151329093155873539184081901861495342759794915494916445981815242686969878505665440560485095334779293933939964333293993972321014642990772145612875964725516263053171112096198455441920230628540628329077178097038216994147928294216714500163899433435321703797175258043037896574265840632991541898596313162171720053736988862037386050436361684130396784603696829113709960770354391151299848348070164533499945495413504760347960497328147094268722118286658074600954780271029034489687642440812435584825311262800765799285558397471040422482744033404779091258156201931951020540382186051066898798817792717154702959407482391919958365736976858895601625748161821492375185367204222944409150356150653990193038518935785809273630725581144465549483269705284726540185113057987974566519436927696568774406025024351675079078705394736982041436020400947941912274831612115318762645747844723518106650504099472348291071339673154763252171886007446880475426713687815984414597390037118950497334708614124528948263094659065298637531913778445243328906759976872774344144905939469740084302812278635038069520644608817874001921952810663546944874116602481450138862474600622106966239247044285653426986754774193668375851048542270350899705126887024856147233899076745050245072327671755621541367095338566951470320229746620776165255554148354390806386551112483205381044079718599219221272592007347622297137792402545219102270025875640546645951765613447918827354471857116385357244265459038858405720004198139426253326824569613750565939382900877146561103665582772403022136782251127286088131284429382973706775561560535282846405012208738866059265128157127863684304530921051571983423518328758396865059291200034417970446126927925933960339266285841979528364143880769626606982244412334568512445229336582176609569442440821297732326463940434233163640681735209831718835591043061157856515004578060548342428392835516148552730772468064990452689810943265585281473610066015777934223471884503310994862037652991681182540391049433963958559217046033471628927045649221003878423459694959088921214061400017252286597626973530108543128002089340598329214239478579393464163875231369585097448601420814516237824587044362203065980763979097178800699169584478394618228151663970172392753490563589325309154670680242199271560409331229206856715928573442139187324678213264773775790626523903279665102882805585473287218069425063076911364446130308962930019696959282320009841743426715076834995041417314783444896679510067779965064078642579960207639613768165338179557592955350825672298067713239413120977929314253735616559474265622021474325383652136908997720898691120781011058885406310622124058426043555030446711356823240486601634370064486414227721444437560861809428533369043998316000234077825528449063751947306307163483078117613699202941991800780213996545065140870046711960535792377653562986094977043787815796936288056966369677784751193229468384990242184025488336867957848476295870301741853527072649343166662571355401473541992451394560370815555017849194873368658108608992457520644229397590550908067720485331776329984149229084113418853732308793536836706067643976716977867885868842397600953950459624629408798188124970892411007482975517878497803215529577749938890428552895480725233600729459529296288780039568546736734374204051424054362534809147761951253204699942188571134420303942872748156849171271761538109052522449204016140603034701139954199003447631236200828269459532205276462085046886801709675736854237211296194965475340279956169987498252018061116176414298895803066556792007784912132162961210584543865564586843377141132969209664126380710660887092953435931621938285737622001908333798661724830172282500990639204835070085368966800807686863191668682231452122925896498822799039351175815742088812341317122629826537055058831924363214033232038733845257459066481280117597566881029080858854615331661505919301406059647771776740599025609050661702386877804649452749224366559074054345477741707370279795781921663202462589356655211767665013592993936963173496299565266343269869711897862418871593057082715837967932680359245050668442136751058713091967246626801112905737331884392015096803992572308404258284443861131424998792034448851527687648552070682695439052463385422167176306877133551312438200316481598584226062967152408015412319459214395268949400492743670658550618333376682355425554506198644717018124007150594459391087751447251622238526854460622364990285039938834964782553386531674154216102166574230403693889901331668338037507698521278527978696415166028007075181786326238052061335967596598114418587330771251077000342904581436227819347006375790150027086920549015534926682795765322977712634631607031097129566884768421206641782893168259002846796754624122253475059856683889574180989422207359002975316120605861755901891199648855297756140903664653374851487085997433925791827647416163868343081411644144375765185648626846440869418728865026495415876805930560240585276834369408693796070263044321514512455813522427045300621074040696862587431864362623802649387349553008050764858074859437462798894810569809969169140104922503474334858934671260805962989020881338680877091616900626747860910104422998461867257394005099606519367120079508907049461137666943133525907602523371328783518963425645601517457640656352835742476033931806000150648457443831940432213387282455895003327264919815477576673976933836668668529878728325247629975506970562311029095694446673962054488237535029369601200674037839788534952113719994008361654853843979902012914223339900621958800260491997394328538788610833885125928304311579229019834183963136416703620881399492723431537892871194365770830118502905237493446885230126553183207517249759804984155989198237866610098991052065439774625346640684229040532786185558851243288911095120782165003318564886413075366423756149537836662263681384556790112384254260652630616083192722630623112722891925128153604295817270098245806498534625869576716617298574099089525968500495452043324136966400745037445766763528796727493559329714589778850974826169565938443263771476706402526708845447046944541627382253382217602103945321417922400882284224300308782741128017222954472005207990404899165458358484569862572091234457182324240510035828184217469775017664938498347819924477292106277230054090276651833893296177818206915363695454290028377604303960909858280552272144353961795476544477351075884227299646874409610201471382658065243821005759107691812497038763591679575207880119914593503663887595577955704803187512563132831688891651559582640142394316882466421174979766440801871822781469946096516249950245331875120061577024518200246956747951426450801264184912915497145662317008097932121973041516662847597331302427488322587317114447124035047105813729139809421211456949890341943707975848560071837273861440498424160116420889951882356758605830807412260092173634653685348761778332447213625825510403380831648569355935805392991004239058884891466586110834294316345306023394036329816127765775203477346174829436910298044049086364482394969549878309080472375200459536972638590259099271075868424026234946733445015911150073209066523207085630093822411233714934767669381646375355376526751297584318849691094956628307155923033388814002048453911685311133289696829216381029402337917547145224354713404106194984128972154048303771535861684689641376003590213345951220343957140654773604554724775092274740164866373168330365675067089764050816682739823296277253769302110169562654693264402682131641864461881170280571183638523865109874878246966827868631411326264795064292533462752516866828260649093526002842162034607853649065317745956862942969412131013370039306749399778108328077796413524743839710015486953763734712739366942259990550919119552164789923752496305548923246860636474487564482224304046644387887146095289960739853694539613611614017496616804662041383818110694722157309289959120600602275762519491312971481910611840073297413615322811390616579537387342477446310296839001890179671558904363791872039129058570192280651996457293085737162806350822268958826941154412580647730633204807775771495877003286845934925152578990892414062814842025509873359373836145802536600648240086090707259944224611460386727086958137419457655672439747302018297296161023269276306399286600093075430958592573989001528213542354845041494250331086381553915189804359599763947264248862995988248005565337700248516556178647579262592354238575073611825671391694072210593663565102304290879960829024987374415096093906099817378930730177800151409621009824745565583427410719596059550301499763478812863293530886470634189369187570784279125936180939652414889298242991212474055178487349749226377512261239694293416215550834827432158945559613382080379801614411748370256734561014276460624547175897992006956563022150936594962205983488074387991242867464505403889091169100341878743803866949055722210749931032420322793536172679475215173183796642730257060664014616951432655077864986292433741423226293348516047711513237030638291940814718039880663802032399531308379576114031602759910270737136689041780267106559819836127417728294280509433703288489380405856829045056969976422946030807439073357558782046395873109251352442152131852253099811212134452119341377231346710329014464659976269581279498623669177010863567420735179870367926272003547340093317686989583150383014330749070766484924120666343829167959756127753677467657866175528253774398808623570025152142772164390520805534474470184647746316800449345428495282900912268325538528740926258297601702493407023016005686574556200397217354619446415800164857370363651129520681996531148252991978564470559856578365379711205122685794135239083021893362105953155565665573645823025135171144802087651265708328601488978105417000272620347648418304073635331327748331835037910365283860740157304467731260274806144046072321601946849698826040261420849080881073589856712778023475731610029843282854181324828675492795996129851346991013822547438512973187910769538818664676878053113884580137498181158263410559726171223524786902316637248090510454728647094742367910916366508630766791312860791311676233921020988004668541199388327107523059289461979911425283048056669275189404979845171024481749882807812327338961513394642861979232152209093823135474570449033070326626667082636227893099179838453827026624497352722850675746093984943357284485710926677169046729605424376733756654706778342195782524830332953515542787286941221547142665790961655010708279514665426879277505204521582994068960208766688884381137190399202789600981875361047358649547717698950380683423999015313026762994255430348481010016917414937999858972620065214071348432728406925631265542730288440023476248720530155560531307708565366378395797581674354188051106142383652171494345890558455875445124999896873645771473189686350237459531597117135961404413401883530484303871717838476520571775402635162558526214328639335809078683423742135564787336473958765651500803313274517909349410126051620653151664239328034391884748903943960222399968928477541375547761886942046141568808902454716345003355896989536993887054438215686381447304441149380031471554721225639442339587811904059139777674373410222919381995202455894964669389924782810894769140446385673977029156822146953289887673097165141798758770434472464164820785402280249776403538313609914002946265675474524551980317893833301197467752637556679039060954972604117628392305721013277937545174053871136156881910163216647636168788102618156663392630470941025989687465308891895929098699377452756874429589102484709269957619945841614717085457405415015850385685994202494622443319777882951163717217558808251982868151943141926554341223312473337992251175752466796443398728392294531511266628253083677511310115279088041088073560589238332713152008303652219425236363755851746354421306862416301375846123335381595119886529215306210079761488883199703748315637291845808488348461214493003799095297959724629556000211412691710763092703083043718038191795008103075399871811535641125809826561541463405626269612869722879558284401842868374184059713639743344345492155475345122032665640678927521533001558279417892489535599481229209425022680103327929754790755878834322776550630789476853150382197115010253816257175529971221176174064325675306362066601427084323447963053995294979628159384302893041311269928222995173371946328276986618434683235521665711225732960642711925807878065473420601776218104113579095863015744321447387825743625360590391974674643141813274648888156925931681694688523464875561974930967406530875191120120604997287646828459376345023728105063411477012346691803852489080711541132161770521957170975071371104419831635560596912909871075612822390145546832630557954751835290383327076305507962871519675017538288021054620926514244434745249443218752126634313903525152437796778898335345429224191420518734447213469315480595792426789874047958250947741590428520321605660497630526268341607965500288275366731359167429268526791875258826711945122617849598991688139672254507996715506925955871756827949995978478180377795456269947086395920690281708924091628962933706120187280916871233638962239527176743132236807806896147091146122418073511235718838316114109730931558490919437409391778569193686043519591387370531064451253899945436475755618665313950148806972822844235198157596960395163653486311270848191468407484965338799331800974553224175144623531530822060761136741206331975277309275296688203665749173802872611466392888564707679603941505010454135304885116959840496030132161770562016507459636824942727221329313436087839096693950502268035063599139209572108038044101279168547847628992582131585013259441578392773137406048639758915129047743060308552964078776066568982052540488082623935584391406633037417900978932508865571360053404485506730728447517993381118204414044186672988836037390861980610057455725805425654531151539293056126011278935087577479484137299543464641284434163468444292468604601250274590413640754250164204509547631764912682853379255122138593358482868736262812329240157546984844122474312330058506331442243987171263700537085313267401798121229668975924503858411620273596710147100144795995941655203546153955463667844920337090182235330211530657801566484240833281863681286479199844876083935556912493028300524535031566632168613057828821836155122287203937855515272011498795258405233707862219859516281395793114554527409439465295656637767329236824084317886690714186961808324656778300454950738419252671767675218361312433497154924352278952106779350958587122053083580005421349812400527598379124343318110692780683439541385987414630058295075548659172445936828914406445272264422662691768587084485722323297339848933603736482063641840578897719331233317654866839015463020057190238354996408167589719051009108580440934159542529302603607162190207982988473594694307046947606002827776212663239141363552559854178597611164103353133316775995172073649740504111903890808644606203882863613759075162508681516556517282856224754438661914737014696038297996072192558275739623398946787214579680360463339239366211087301879742005928955619837939724641766402994161566622928899798374623625929057946418566906010557653609421753040060942519265696106287578707100242329831758349282362294360980064198137029325828538152142179104433772115159403333309644418308298886483617776829096815429115826725764923000995762048286794207627427684906034598267883611288513744692093771389007070324059117846530818992543690070725534697281905730336014150353212242093136058681379191157633834476041846525147853328750963518573133147011096533758075501982935695859068743654449516291281824504651516405098666315640402876581138858394154719420461287838315236869882357930369411330872648299014871268166791711675356118687660596621117269983667672145627405260647085899344818357625788778271566209110005803881692055082082713310295099697278585118255825202869385691401682915361299910995159559921060090044232281427796116935940367986342700790258190533343515846867884041274243426389779612715860792942683488599379698206301132158632704098503852718648195849400171405505455314514937363133984063494159862078836652095355033120909221363631721610886032007326997160530850458892864417760581632721558749048092404120670700929628429511953461014573904529780621925337629741039594732433437416468874210804353042795547396635459136566611396288044222989843492103489761339169416158655627338203905262011231710073497881934707545756672484577568429007339377154698190056101298844041458511165920594426552620914208271998076708772875878967071516100989529896795991684362332726526085834323273484690332911237557377470050521882409764253916074273891472039242562035512980956542445178192107826449396499333938929686248316490559996064586907943339637082522327053199175417904572670892140860398980426076912358242039219781683140025039491865011216563423499806299054700781184801875005129063739410160417006427008675072956323492518127034659804028183350446275695809742152999946855093550332233758227280928348323022864319337355227164174504778380028210331239325541941635866624661469904682091998593272452294405623296721822548391996404462222797069779580083825185203214406281840500776481792065942321358233895077389334583961855049648727942567599974153084498567366193808049946003238898895478147408187019724850739634890158266119771177408860816055221445155800973611502958571335776369064556110092567435741474301738854401284568451876232053693793884686714924784956431699870243331599328938800130532530321375395462363423743624124059194696928051430263530729259615417511470134751045412845390146799908310400276850105099650819800357031238893636200695602915235713772149650074477299718891528883918588712501024165198823328851709543990985759040815961514090002275205550279776121512628964652563910749914268638922741241548635949403833205994127297991513127032018098844848422744950428706293134274823674292603675572863217512139021768410033491645517594997289346263195969996743177293055135596271572608425752930494223078538401659099072648176836499561567666355323036426043404518790168284722471810528440248930508301575317782767905583621415672170425426152117411822188973121164071581391029237399346215965689990934588229667911182132427979477340833315441641605120929486495555954268496169200750142180301618260769886465585627427694231425428028118583747660884806876366551321673415181805471018985983797675376489990427971220265048085705742671600546696178289751038991849162320753235511578512214378375224420846957931381505721079466803744676011304257017857581946857742018241310392628215011851561623409222573424628870706760106913744060071555947795717174163577425799504815874610947456679857608541222233422933626405583582293220645726934920782079558137689436683264356083616252169626169523318254262861785182174504663797731419613463703730397026208609477563728730484289314130908973550228083487836502449516672855917975486240655167209693054230188410718969149845759171217478326700179396769528467604771144962576372829709965355832917139970863097226251289718102086138671672256107645222797745538743909622596702394547818777529730449305552121904781754869092760411717246953163739340072801011866599955342934314096159938278764072230595197204596811169017119086010101930170434464994594613243365792947290150686292581221006263360478502434800085436727949936602585189970046181339947046025359967023069596650190406351968619145763968322806156195606371190293373879899681929422303378504031375261248324057886903565854700730295035710563489675175565498236269143080886144505944242974436216257094890121177443010196881123459175584915047730202270287970399743500767413900241669019869157786463608902443519072529448104833706007071847888909136112086690313620746546248969160434441205044245664615740692783021639123537362340068675622876346067818837928110514223238619053942092446652632023377935644048306026715930410212032997805273676740403519599999983810043188957766423159756881521044062775029237679761978799844915700081360240474808062632647507908974994873280332723121697959893009143255257228461007360101466670075890501331185544892720669449028268251745626087107065370025160231624214996824140769164588966115065768822773180212919043486058736147621800054662660939303996618166639652738145397012333914620214010888493599123859045003849472773911034135380497024958146715963219076955203298702062387844864053615773115090446312149574080420622170261878214984540906031482456937723500183762325952215919408496105489337087063268607555912901182980219471061481416929473213584058160380608489184753087210676751658248690998269312821746269561836379916862527551272557139786716853229115547121039467083916680799679310186742226690690506816708803428581105758339353732987911945107502647082816817437729165872317928852945121153138125487166812827855182018936496414258455171359287937076292953264001158338829389225549296696264967307893231604715120135469475616600815722733800775167205924917936029998049803145614313068983603290474678903637217426415002192035357695810777915319136579166166911375359066752512160685457480851390824847076514789962576930394797665347175115908221039176239002540133717579792348390866245447595820284966475907973568900454567341877520098042965585095918598424448205442078968223665439762647694929305815043223841258569969306737777813503352763513362561963279949907111426886703728027783254898982711627327349749336726089309460576776708879381938824775337305595302051465093175571164482035307947121097312422501519465615542933565292835021054208613935957316726337401493054301970281836249613802461944598877414129767737987503965743791039071758763617597223109199251927417972497292832722887355667753287392403573254305145315540679496077850583296836135452291224367541034431780745623496363998926236960255186943833950005549963997400631164732039005295897812933162141967720707859516517488893219119533147317065199414040078095851375505905168681530320712537285092374393401746853110251430873207870376124665091469764977469583693981193848808920444785446611780996978019788490179571455711084385913261990839059064654703132270275240769806914167835818813988317310759928270899696031757186247435563569080258640051814202206909108149114705546017357452254121348448892953024326369330598740571644717423447382568053823288449751726460781885953014640572278524203476947957798753148738378097608552143119280183268979564819904131635620304074745554787725572972237149332366030428043272234064230926686292119357237974330538809291570257146776888955698134597772624868838451179586753413882904838595013967085467513157712246263189489723747654462770411286651365945631721018883008518558617983890404425201556347677227905573863921170306615326871830798153168814527353028653828841359081901377343456336206450805421893149420468241710967106926067129370727209057883341506704329761940985508998203940935983870376629586504026396473524063876370845759226929384104381790887047519137460644914748605432231670205685361017972659817044905663013802633935250113705747365373839666274050316373152751777098036704762033860774170545756038749784372896971281548763979440056057935011193554759864722421101298429608309730260629425558836143540669776971170384329394693961402149542399800038045878451896823349084352157465055144425031830411408600182484342605149413258206069457335505115692487161096270186514312286179749614491718201238494472035827525595921787089500010270267990556575996136242583758739191026778450876729739525390057721303115998218272955289546564695858908309692528924565628285759949072728798608534661119062474675663199126403545825248539430963484866332413245552900120234409573645634532286539222383245561759920545789825584536178862606332230810122385935567721250508461794074383297880798131399505391633953212618832288042351073636014861133623737120551595606200107045298145503043462926010111416782516301153836579084758411136537246432209955855551416994546600470317896042800004399530018061225178559397699530165664602396963197278255110029324774650965746804497121113106620095942573891960174643214570110745983291906837992212377935655207927608507826360507091571055012620682828037991545644700837773226109304944477480208331224477685638895152187019382454822070449813355311027753829896054091973775250374167176962913679708483769296571235195355894383901120749290839090208229032740563367085633616668218549722402880223075356782133975642616436966797395550313076140264804045443225752062477484657611251845871478896124966926395967421076679716984617212686768358028432502331620770446906335674691458269306600778352946819095370734418781991103872537714878379818218814135460467193072306573538280529954017342444868123384239913859377392402350010326179442474206922005366750167588397369157080608213261266118702919830064737717514252368305546528811336110082986453559390480801904122422858268099187543798487344829278351321337724180953743161272256219531566942570088333404044387661979241886363194605808983372790712305881070399590942634269097857616984520972604888959203105474476150223822546174909018669860371931743738726022670692430240203102136718001593459797094576825711765569016690156327247341497364290102049962777479934554753485380507945579197135257105065246539714363265131827519191641764186274291548222307475694292187264061585414726971683527882184607863664368996797574824933941265965769324615379220441596826123559649976467526024461124444852717275068185607176908718011067232510726653950076019893631677659648320490229525474483880487386997269900906655866952014801445768792837921518126558073915288368652657885306861738120654193721684336223483596596665072291116916211860727667105687322396394107919190806913257422508873893849138100296718883056744145409430035643437487019663096343377014059689815013200627271722921607038398894486923560658835818679846370456932225582651003752091932278900233414894628723484087792458992236814274788683209137811987762043725123269586036869245250302521577781831335965795340726765636685407458086006221611272019996610311240193428473691593223291870774508837378482654761810920499845716997211732440900038731989597853452293160989309945746921810823070767283061012511469211902577397428206557051034983165830983238607608900441702061781138574262278840216177965616053152345853364122514674003761313993022056029419777105082326591446081279170675736836197077728834094332044252619593641041600139315768890992526833343802609995853306367219664546843574375056923715641213978092999631513048293287242833172979369322224531498279418788210724872768177043912214103594308736555024172501721467791381242641194704118891165272894404642969144379606372647932321044103387567917047142206143517526027162593567905695391935154781471477650267351683110385162758133407672446290530006236887243301844344126302545323236513854738633129835857098640917104370141039545443286098015701481863510049763764244037720061691073797570065379501307945628638420214781842867988583248563308574693079956109115948652408599789850913037055874704606967141404622999968542923175585765607781048971372658618183726212604664856420104470599399278854761433246979521209096224708627205692992753847703887261741861471990107419782445068586260880490407111393015638314647858465420141905682078845190407317180727422690706223429346168189925241509070924007385293548804752522606534220364247380871834673458417659153250540632505074754625418465512067682395492907528348264883894608075108523426362067454910155138795943320421859572838580717972505042789124499685054191044314193182388208472310035106161630614019060577241792816137430915115872319479564510073471019864842095903858959914025618592380498180251272002676781486723953974545808635707925638129907684032324797406037483415846397746297453097924481529575800585694245646506707798441433094232957369538874902184380221809806256323925992534188543881428519064853306348230847822046939478809498587250221328917424618769579160288560178316124928924114139643645654518858791537874807451236306618768753350295340141562990347444957794142869094494191140655220675773952494015542192284955585817985096156534924903128118804991924580756781808567278388483928764977641699987751810071303435112227191007128872610256184409378535471529922158239620409122796206792972559593610022342843111275216883703281861888019545183605412979988439987502210866320352591065048683069659076712215534831663502659246590518874184312287143564587215016471769320258924866830925137004771326013336789167805348616670037168286361891576722514796137496346696589425198282958217949979123233985273475229575129755172442184221783077055211890786423778336793099871491603156052280631036134862997728175126361356240897229175394719947843612011765890423736632959609672479430375378257162680597337150358357644147347156295456091011084415082396150588766670038899590086783472815236947218338210819122001959033323201683868552770618476954979670614280155116273086877589530760767561915503830289348659706055910273626275156217467673734718748021561445453985068257785718273675280597701150692197857527465683885848440380536017657580869474223451367552292607003279619644080171427085499596479496975195596092259764971351177589523277990072845823771017763229349267482549454636338048837931750487632758400654086964648636672441045128058553559027842744132711623294091932457561985738121573001356728089543030744014928284539517514471700403191889131226683304735817312400911854964692588268594423304440852066464444063231698964921856570621134942567687560168411802520875615755762707406821000758396254595265890169684668641275975460155428418293383447669732952574662948492534646559380856532736954608829253735159547827599603929862456171873916621726302810147439915186351964130609434042265263413876062866588719114775854042262295029795352031575928393082352292001057197434305301069504358985722271736719455488242661677525340093620607200780988563968999044865987972458629095243763347946400511649733061234184836214625047740208276805452023222956467655220643936519647847962535043244690426657271192629590736909562176880879895468534342959853675963241808137428655061979143545776730916593852840866496170188774892321356764331335534643970592492198578953944468933373345037606316277944766464359539530999606100768535840551142311568585879372625519197642567034192648092546723468642130693871761726521230230892005977450505494451903177282658484958337858923306213657217541289934798486555234799145472452065930929659294084322474135840002303810051924669586309802481292542101010517705494241567265040987601483657943462869328137876023214541698181426847705899126263715125014426364688647384242006073939654763605459184733129583084067649873439238593223367636458504403938776930739684126710885884723378965709227088095291523633417879660026611017207980455079148729524364299172074558782019240308762688064884536381366889571096150150611856347680945474685604185770118366411165251136875818231032874817308806890247610547379742459314550406910805757117389906454590254772692302542809337532789042714308914994067277099750184307039890366262038162254204899942099664670679220798041837729841728372671965106525974869930664673505583487653593395909795770397012333065273698036562427292405661023418386459284769488932764555179389412067645414318611891567629460596056152340695332229148877405111535556493243562650191116119478307743380488447452484394432269984110350526973065976091673501446226556441996638114963608403641638294854831185031590725485633011967870955472175386816972363066478183847167350302633330276059841361926211280213544577919267280582279504577245426730966946000023900125899640439463089087622853547397666092290987545624907298378229577768260716595338099737993877273610196269819888221844631270121568572659423492442240654518043169687632623787517591096900315023252544336435200546746930221327370666529351329524553747110854569232523200723484948397020785121788938632145284236830430216974258179635838204371849905507558707244306012154992266971533390872794993466277267970148158144490574646459199265507005900919822312813867140072574847079939896132436121640251246265154406082407375245139226762071205430497973244358467807591739538094248045897150143935866742883185278931020592198865899715487322107008634739697892982748858046679920921807666881373154708394379369722953680207496724257949821861216452245707109860928922323025414506068238605976488329053974024929683322318320821164724680085107939940078499377950265457268164725144945816902912945498081474321704677333191714868075136729641073007024744352602295209436503411591184459641462213314436786638595290233924248894200540582523937268378683477306780065360949720179288698188313509925714293783112213609195577151699261674869072759787871990100836086679612947907821024511929320410364431629565094402570047117348384620998944801948362375601034296540162006316031356389616280334146541202967646424897263358171690074468242397666192997486511642289295280981314019055767956519987301229914122501877744103672539124948742490992271452048072792767703955161822063402143123150236956859389006196310801212673948794127801932371672564502430946158382603648107903870248234178721097162936806771089007388651837470758133346949068177272807461202270216320940678060718384026283761244358745781086469607324984194954899174497763668131484369278084795389250774392089705920162491615423985971038172440667313058222309819838909543507807299789163047698420759082025107132118284446086870958262980913218675999207991497650512928190340651537012798617293751590244089798293566117751844289940789149732250561810739363265605365066126093502750761651618148974525179916016660170495627065364365547398375793403552841243740818040247876991170839581751957326253723483000829123252632923604126163629414049939690095049776975516074973966641141818222182392498265606279624696678391792266872973855178191405217826959261109012123360142081097858269547437296662230615725493507653918822724002788654526545327942668313516095507258584592131174574667419186558907268216700006898900445216475553014660651419434106692464486721525642174982771475336107642366092223245602199622755603513218517123535745149299891927028653903432071065276822490142376827982931074123020673463123761177796557286439617875504764766707756637485217325313661477382287059954841553473524480492668060977785057909455387786432089381447104323612989727388556423403313539753505816867739704179341015333584321287747491046510442731813268428765447497995342539031737855460721559903376421466930846038287027552086555588575906570529737254874363820224893700387844075093439219577875054078648490959757679255768098649825962866467863706201105271207712308817458663353173782627966233924501558066911832126619320726071345197683194102150989751651104759088379065623823737162058863517059248823527644023992274559325949624622164346891056702869410954766853207003214908101433063806647848891857531634700980798153297467579947369019307046650826316510356119739250630167796276500580439692938366344637578141391587067380360777809329083459228323814503053334461199770854450791470160512516303621208825620775524482366239976514170818041112418146663493991033441224128959119532231733545171346566011622672316564578798322163679284172575299125629845805946459278857317262431027371520638500680901677581110963937426338580935780349116131750971274934311067310772941746234600058637613579024451152389883853435207160313294824771459090526351996861239355601657463383580584843155361038342637094678242611057490033974777901869356938611213642305877860206736996409232095240217545596759416533910043989401206036738297881657806344526481064675063242373984222008505238766491672352841983894802166808296534995221665208863322907644030420049076104983987588728629901951889446722306823328516079867337127027491429362688800275096279133594667954639842934070463984464673056039263277264163469657778719035771732027854353231563793060380486596673004366877909215952969258409266074675762910014865129979211349141373914371768370252462584858897414731310299865888401691565108514013199956513973056160299026687230956406072209626432652757536039418860299740992445462368816529996717776033371015470047903117609208064971295309668682491922290617200998546124133816402017851276728514350615808445261665012954510975406960352543097383747119415657497518390271526603307177027307023870585849928308246491092280057603233593667187835272169888469046104643531991890904358084724149485410862258123701696828858097950826682858834094843477489600238442053176042868653026789349998187428810828164624569305629755224683408433975714995588928190148340818506829181551594931754160428838613609471793108321284677891470830911882042442344975590486969091698379043867975572990433331527101516603191862806813085650234617367250624371633929602656947591599003301171017968968857215104295793561083152323213681554674187620815404985674938048138416810595438492859560807376432361990767320048299697709471998933153202646697371156489363450512288922892598653357895927569251896046207784549889322799817923089307567557805414754940051545920550440286693126100930908702077653280340928526991156077503888963912061823722669380110638891877448946817928620725739673060650539194386323394534442874041007599281685181509432864214997130658865731449194073855107327332312730243135326767693619768941913841119789579662761464338745217665198240027968511387969404443965946931979639438809829595822071591372714971226598109782016836048547539365958316135204019235244652388521409488639510521741008711350332676759576134336058538407729284890891690353301863312086054365001010135786460597521476019102980009725554874801823434444462473951415133289020395073734930882350178876748667890545472048460667623483684783791622825592982295141096758804333876475851938150037892456927552570478661712539209994464232834139326134586796083534083803028050425577865271227632346518413070706149357954651464020699855544395193852652437830439674761746508400027808624509711860180340277334272926570474791379700309224025670122612343874653346672510431739470382085180079300489690668725581696103996952771501432288913321210241435741569225312995576892418962096913584552977942509862769495235865120829143218380409507993891293142951024106652797782625920462674795948371867742042614008200702590194790556072300290222279534056777446669657987511602742230872545224781973603350283786542389788868253128604511160029209840875547570983452293624952167404683790307266206968989824424386841547189578997894850611809141431370442540495438635038978567841442843873519889656225947790919398139092835028810941736702132175602211692896245080569256932779860361064224417326421564195332269107402801208323068801367742079596622491117633976183143366589543935135757424205042952318300228693477838811371485911152879322083570208147010740649838678557918735285239062992317402257028245331450565951480004416016281209866585975777484536853633808239328355996419743763040927406446680171558944072799932660825083869950004169442004970168783218781761717045970998815596240745139683402850331657416722996384615005295957745795835710088135830028887222791200811568363426988569981805242540519247960586283382169214534844366291066784386130504402228069110602421169700708827449278786410630766342645360629459530030375378766216700499208187722963203800500936095860028050043652355116023703836605579782366476912760559022235950987096161364160546025352706215093394253121019813409330365685383698464589916860357487722846772098761169726553845020081441486670960441783332641604632119004640722760385722280680755894405940618623791879377033718376793143165286786145851418507338184467269844007817134343688220666804592022174132204942840947740072874037687757688520670897214636758891576908852735551493717814906321480113920098828459908370016321697380752021237773645400298105039978002184121803631200929182023839401169128320782499000361564537111286657665310621029802384843860119927933707998829377740243081182995265015731621202547696900168556640465699987366929318320643957418368571491906585894751468135644761664800024310902694441143418796311279082051054155821236141438562462042796983994735832651083747141674299259433244439022412239391470280668392317449650308577328525547591241364908887342323048070125905723663223433714831558079010794776617330171114503587325051769348996197252534129014045679269209011814955433031655469694428152598056951232425310114918658073753906044123844271442633820373114461435320144609806377864746257848459300367133327777806450919350060094137975833645444654308355336080662484105181243901301795075773310815215206510612399205615427809944770995428898235265359416499560321184171498003550313467172662771098466095327837996806723129279954271056072547347637703619782586355933709255963073292302702364667552562308356704766982678420418834061164124017774646955490046634724286990951990085867119541284001621667520402810560986551615622658731006814660063220763971907311192628798740196736574167179819072444390397946773582950329269300641797999908474932980907503465412510595327141992874250520962806452049979004708707783666682316927695153258471131825713460160162128652700627181560098425921164172746691198247833603310464033558930168722606176938161971182145410825320403564844872335843488489557428185443791909884586968540225745647834028971013026644574656754785173691152615901292438556454935880964431680850956953009384042804219799550129773653433964765594211488199696955748688234315460563879159940898006444533809806095462339586973721464729966896917634230674636125517609073846357640050849440263378664088846089358853504758116133950465064671164724921017311315447247189216937814148629600733399753048739251471774892775100162050376523382189441927271889000729746645819006790751965351233086824463214939912434760350122652655443167984348114800126519156454500884057770604913538907747525756684287890091239500563843866629200611665039663313496824973020281050898433616759385035361198315135738830747407778559775913555793392256172542061647040162419932180437136585679601496061472341095544042438133725594552128309982924181967100861242342695521421864434984902650792700254166945107707986417635190149107164863428687467990839597962818301177583173866483730258293447364257559278354587565402127509441929951184865593467819373832101087698275506707222194922372363240724373104505918184307244043907583706185538029774296522811541160908642233368149818177313273332401286595537090217887961772977454162940080358929612814840126031431004013218103666012005513632109978154007723369559976248569369109063307473166504368654053871398775985359336044437633148070269241941279297837104833727926139514923225546463974418184394201440670649544507124024887810398961666626775093226922300229281322372251828714175833083290221872798116702571113703187408089049202803299720000096402035956710861812938688135271319739163977161503720293453114784149184447177060655589808244402888060682491742718522644411769147477969334489110206804308683282659748935831489283891799000229460875028834447508281593312983950747430250592950065298224487691380529757232577307579739267474585661954140755749688512027558278668404705694191938544647523510752380268775993664674527591226583536102207533333655215503742678732605754410516013346778702071710217368531989653959949458614518702971205074600022610038144048177785984453064659592265975320683272824138674849513745779620579472616076745263901509682587826932767119264119430033187660545158261103391298168330956216601965369951330760826923071405536214989641789143234959410304424077037436952401635571397488317502932182932201703271925980004719590175550328340528302108128921482625108088021919621421578447861026909535428896376456661991628764998801749992635683512298575235361005852134631799622087949547696194610132578973165421125391581641622950829057984556180507642503813788934820691371059601113200235797641599854132377549390510845068881329784882474327624573403743579270352408767244839787720530087517568805093513977144477066917579638827722842973948200744546757753311688118687884566569257704153924879127009146712755106514298571308217378762962616338184816392003146675263882109830886616160883925525113086853486627143495782525872662318356561866919908683523562078876026993985538313561996022661915753640704527037188563361623867572836740660239629909117063224570283020188619750618844317881131164564655458124273987410062289679757902188562984458085487700356237199478413067291813455709508182779944864592141320624242159005893518311965922077436637012166853797747014601526747281910506595616272775373385471410754333414823134142290900357670665147432315955667266055795424329784673522464862248866016530934110375793134072467905324410653449856398587340943637543339527416922426595017567866429338382688859155399101610108820186028765059191817981554135632447454487877257585894180164585273150830392729807325290967331809820269389946976176688756706473477266217852766195682090963277431833909337709055799826393246124970890150652094066037165298045827864256968806345905069170653665566086367699089706120971457676770314400526556310295821496742019999437796514876058853884525705370699819798169987979211801683657982294232138404321840031477812388818229075694632386886431180677412737211087473891741462458806455790396317854224803447273758024245542314796232350647790178570199538559320077150919004344722951413096463786983142490770298788070752181159624388254293664625178582429056993018975461098828626647397467972427037073236212442915529320476798878751015688591316407635052854174842179491997853862978550147513452080077162245739087667169449370993244070271229258920146229639539639310064497245899915300071153642852147364755757945371249494724616693402577720254196456640171390611266086617061313813348270119504617357908740557363268665403036317131039937245432498413232167860156344304208497976926346305675814504389335935079077833222200297400021333110227800971286848435298009746248938235716254187404631440626981607736119635110370414356400296995167048943380229726099876475873056650527650529882147122474641682338269030118685447211370856171606551823266539595244380318777067597163660753695544171543043975478947030493512536346425672943664878288034122663198199092073277725342701950428730190021257170221530913044000461016388560882220381367163472862084163906244382569385742387183496476315023289233970213933074973266706495314160491313262099062179602702777431807035917925114099520556776077406158606321401555683399773705363285765723210247161369493969645741191577571788729555433338061267231484567316758752805721354022133037631842463851931420415091535646598502449605855693461145644831657531122120085899289961880096824993755324716821726418108825436754191495876051009553516255428961214513885594034815467496508803041625142031776933379725886749142313880674952180328806972004816246819503837516820210770922713605509423320803405291570413452674647629039051397155689440642709607950774870463836533319858476049540057096637487766366469124049979283057243854281088073096257136185556368290817383913077504152600833851290039742756797871080417583960952724961025385895941990000865213594246107056386763638857307002332592361240174758938553006486906889981871887594251190134593491309101179962316146276502309659144726643254302080023454144456543829136684171100270100330084534556874927818780173883928381336980655077695690862713050526822159677780568927200848800606440997014341534638498269776129713696586603484041932100887273763276090842793890686664963742883603345095546795494868112597772603995795887947804675483100205009548123538936406103761235920611702521489524980068132965095542204046402570239516222285407083904384092542093880247076372278804186309718492056629516425458114736378821750165784315842807664619788314039244580659741172244079243582991983025999573230674977868223033493429288079468788714577655493976077216535507122574030949875359867673812322884163414684903811732924923979919340656545070994410749892098706206128264914925055133821658792036833933119326130684780945649848533627127865399011473748673258678357809247078063561984815545463750238072200344503431365532525433664318178967517553200228174720739066426157874261406829497998270054653958558388528018935614201513034973138593168260104638095386865378606663566306332569111671977031952202406159475827153476722767840643933615082817767346611022479103066868879332099683435420821909521014746505589433438819637419211751713886072343665460237627073794556204845355970960027684137081878316813401788488571172809152711000637886374151022761943224181881321341086513617096890653493319002116894326758574431114800030016644511942168968994567713434955150705469628596882289287532623793992569685922201595023824555023849438838039606015119290725039098836199663091457547353966774953029715165159885239569086659866660473679290647147670681419730822729696089569701325857475760174919292974791831528184466163403620621371150123691867735617983073547657916020814936001843618579047386845032801286588516789516161206127411672401873117896324490182539454703062347302979638649656548477843805303470508844347462913994268016814539117680399250858781806589366374916379446931153821285832195507667880853313968330524004703708996126918025664262660624632050603780416788401917225336882140400745313315878854171482814790907355534172393176821711639007808336636440291935725670556903285302145269615251908211130370137986301265798502104246190745136798804427580536701703171723987115275394538859333056072534807921519705635490097129365887240912516471449295636434949317236911190866926408090612866656422771914303830287352826315679817737726694047699431659382917158637004317233948961881645467107497482519509905902532389786326559801148973588558320624217497088470543408407001530376921829577425879451414747442707057267100863480686286188225887517544288818176405579697781195420414306678095857871082217193822281477612259434516083750151555144126133230869868153113439537275873875675195259698640138783726537347955603525679758817651384686730824989172695120685668354643921116020919744919643828708578684500572803747308911903136294170172581514137686025804324649777317634765640886246876256488568912556636798764444343486289271071825108320266836538929324416765149339733820609685414847890406774266570489660434546051662419936742103751057515002142270450305716057218148389362093969017586432621178616662794750933102403756195945884906343733685758599722736156045898346108412145237786023014251942900654009029616945205658126875920750069202394346875195210378688770262017367887960092018685744789186844370503523002909080473055293116010386260202377664811962806010378662066585776989898523836453334974082521585375400912745468537534092575402102878805746057950672932846448955602526848222738445567874143120667283547369225510068798752770438248726132759567099612197648728970378725141125657401526322829299062118554512161759884762682420046131447105110261981009092610289820280385139452543579552032883727261756087762667155628070394274034636733100151092356850763816370299552141333981160483532053035922367230636846125390920074675437833101014567734811105356374220384817086013096158204398152979972644657764018356989010368664718524437309887419689195890466895872095162820223036873657958764090660026714367020873218411062407099967163291071223926443570716331585851727137377052819272723304057359274607682600627708891134575854496709166865519430342605890699065023013035936600847664341438581508901288869418021899495701870391109427305645895162457646678786949160415204714194181218884152401942577625297825923395480147884627973041749279881490292814181074019201961561974179363715491953757693135062983333995673812310901542525363864149832586663522918798633868080587828379488966663126180677184564118931774854988492091864376081332037909228579372979759075266163476672956071664300839780921812069005741814780961681064513131424660256816795655843657866738992548513143572206475709726891382241974549143188668029175343541472261414326169818803876918599608138006821887537467745321959322602703732796729934897111779559893055555599794944944767114126301440278508320035685282564262057952266234259925049832710915736934936149559644214851766793890683750283485510188943167871221300993229099064290374844559724776195350358342661094472611034874224124462131357223562105712391874731517400022721174544758256844451847114709688103087457359027559348786436904988228038441522742323736477984879221948336738874495843080783546331762237481004848504453820063697124221241888329884746700906924451332305457704297025923957889660417281982888974658091199616993486306707955552916964846312560955422490138252270100629007598223304625224980073612182142809609023662576745366823949751390455270576455699746874348857209373099991971157350676950912709218610861963175289135634481238532831902535180868026664627916914748772872396800043802166753055552648754088126083784367296432284938576003319954535281962977499524820920387369117627253932402539186182657824311641448387305623969099085455095150548786469379281150179711573470287753638530849599759743480234747024819874503846051728192956151566387489689192301707868339967954432944227966272816747068335479951639571825954218756876785548363016425926546963554882605950558263453401923117457985478870979770327283518074879314319310531177011206711564625368525842699709509349234073621608524303543500025172382306637785735013357789471084267170461589682437167086040503556370787609660159875245397085838573909932351259636466085397789222052304509079168879541070849609618717152603810581066969979401001644044406148990069918607543420849964703908746257741339308143372420608883123878228165171910759324713476179884198343437258040618954682751488842589499513380411457853310395255818298083216669630618172045210572267122529180371386494856117336361861655687592498491984259564009064157376694364233959364895692765578141949255929352661312231203763155848208398133924284322475347106829671579120937234297107624515257761073111229805087213492331175176695221748253707795534093991022829601843891845483068709929415506883956947420011766676742230019580955870589058262007542865287554048256097977644240184651990313049120097099404945637770258298421588676124935173843524401696320086120903995213829758508270128257980595026118105095685844170877249671114298390445564011248494653182741800287845340706907000582155764336186926676767928730358791763045665622499453671573642589575349841643514717957167408612237105343871566133112848949946536010481246711612658004322003722864231078664456699401415249358963893492275803035228752629138998522821517853716194392509637535212907703345391840579705945959670168366878846116224418510760233985966012384883848789403949723929027813530503811226095970526060686611372959254920127994609987801720243791331408719901820179193762027276887985688103731811116766774999216462601199011967744225754670773477305771357715274285402830539253236814445226750002641865754212745577742460307312316660055048686146103274227102021081329809633254485369129553207049404373770136755991689505929655406860440289030816583143659276291781823925907567769641208711336006046606540585949157443915949484753272531184925339297675130474676742729422581480574947235784835125367363235872317308908119749946356226142177143384061206563445287997909144057744541962229076115462979664076147758342887124687162344705845719720838179438650899022655887156326803945836130193328696448393422194783041086721655625639213556729234354539662328868832280702729502134664336648435597758303517418322536678764644324111809235934004964026412671677332380933528117648059859166867672214937148620766317760766184770988085361732550510808743213028323562163282856324495495885931093520809776611005225539057952747484805773223726369538174557389669856059976534746966441174113352131458065613910295662002587838678876640222065735223349825711142402743288250078147513350255532836446224541532243121852586942652370501530783545794885809609993392502125858177673015657300943874690095889801757624302404107476496012630383652916386566728119070593702779965378863980253703830186590867446497437938859801905368553195784243637616872455235014543310987839713176488733216988158698155420992772112961607888179295891752098858885097768671609558937562497720906087021484686284107727244803274586507891770113004891127383545431231856623408023424886794083689757597612747755785852265529635702236699717569416930920157009638656360791595523460737019128362597642104122450559762563128585185771624753994375436973431679298950711339701895533551870979733254639842766623974019935378483842526846098741261758954081484417480451279002973883895831296559508947944115012630971646528855220818776460680996891650935191458119873175013500453840571143846480646181515197305386698561171518079464366965118728539904214950067360492468738765227398814948887363907909375914981370469318161436250852363717354162093036579390172836988197456639840263499271496320779316105415106245826447697562684533384915655562325482324880383009848712946969996863889901093379407312301914346631855228583685126300591944678704090911845228862574633517298279456280378085590800723745123312211185350216515671427673536073517064721677923038783637975399476141319600076376707781631084510773808146914105047131048104814376724735422376939344445700905223695928090208513590397692740221269396576638004620177811260098488990630282015413019575262509527963344352899657709487884137021902791329971225502083876485407382056254800634609695293757373493311956379325630299471046985615118261462067138325390904708544372020979228806810135424033624120645001990197688259170177004434902802790947926383266809471296650354990636874718507539677844751681270277565004752870720302089685322662465835645232638003430618604578080943976129254616827568072848202554765770038201214865844483663720948174555963932645334264757852039462501321090062292341475125171044045931113986232323356261530226945985172712404208191477199977160213666167251484328249886834406288420223751438315172871448239671050643775082370235720772638383085352530283804679448244490669894375071743420878993271976180854706966235376654194710293399462951620378509137678152020175768857986998143975829077142063048874242015378165322023024221588164361664149397857235258887185307787266455191053628931313288335307538281309791714530826690851284142300163199087288236802712294215061453108508076334944218925319687880396121383040645290525998858018206286794384161500107686385936967740151412141912651882911729713643024903314414923709749350039589578102097125347266182759401789785808985411331761297806327221506101163378048146769394426204434887657952389423436060744348483403102518313549886155551237828194617461225157382116981336685921123314530931637874491288304899132147948474627918380956375852616869956751693432904652046357935114394596986051701331729224737956567819066516891356178250830447498903977004131269777435658600962347055173744540634420261417572858634613849908330226989494454448233366338455934636102724230187277221554403231181510188778990678180453145834940080330857338991152399190060074743713588973190298516294378084966985272165728449928424329143756162729293875552790274339827934840007503863596680359172023024754996711402446236567674750271334965496248734842375715738672340981678675310402691255377889131946996556847244265709251944310343903520522219050310748606980557480761072536725633865732962951655549454843402940204952726807794000661265766358260435598603086477807223213411331014369562548672321914894025293617861632902798199095350896617891613518726349986892635322565803726772979938740726343778925908609599459497238078831291872514133633466340408811408377218840978918204888726248150419512195986856792686714462254149275541055374750057870348665862293349592002873335565950685690693172238057963900534329643160594476554195612186369015991048131677587182304495570267590494225771645603274027820444667042936243369038903811751072454660356630619308723606584637988318606307958411403937635757852951887101338563373906239263763763976303094846940984441659108091816278525660906004431829044462495482702803979842513578030511233349092703216895286766472096756227471559676772185599979355218117361693072875537424995895499887155328328930533197187857119985429651131416847410568771357322324125253894410785435750260973877491703957751939704308998046335639564456280873913032568881774533284191328702750041544469878527352810211230390508200965872842447436874042715734390540653170449127658650170144459178687051148316948613700994785680525725585481404449163905454673505206037721077585995224893199535672547602725578639718388952420294950131158112532015237452707865412081021030076479112458533550603978295478766460602416968306204469332035186725700285379223700981256212106213320637521465174149980474539311637191374026232149870783713123601110955551395981293783635865194312859734423286713037322084116770450745376309025409289777525436118934545598953118704284664130409490998123924387584896065486750367777907287866280800589548543491622233058813527705399957298254401715556937254398036105014180649258328571955925128718940128977447580557481079423983325629067717545307936426324334941506055379892920171403957684168921377969030258049384248683977447807915537082256332240622765014765515765639933476698149142657758569228694042432568875061315988971524400697361367879275573655464377592154982493971354734550318261670807968737239547065543700595540549701580212490648296824072791905762751349182064863491762049087430430219834375568961178965418321639250765145869767829368804541427365449465883556001512425852565249323428297208018096385085311866552876066980227411731053203131658165186457865595225850513680688894030947752544158921132138856109827640311225837223194325804441556039741422620621673866069824164706383852230768789684820810471864249378556437945043769465113325901033116813264890642412056814174357854189896896777128491015592651157365818550908079147043506735738194708736159360498467967526560917790585844488023156875511927588456846212806164981610372683041613183271100129876616374305986336880687764638792372830557879869101491315819664728147950912668970180580057302586055606583527921155578049141606048141683501618601463633638726051715542693274611315185774731282940931242622098811451917615500256473440897551611051450852835284494797657500643187887846335643603923849545333201700904018272622273959003408447233268225301936006313170864445445487573561781270473557519675764531482938317055838937609132270766558166285712852410071725239450780891567885283436717706118254486431299282318970831202532748652968018510081807097791770090549252635971544791740418656928712336947391982296952422065411422676408467783428968693885780568293243147468880768024544766876718822144516659397573004796682873516451330101463698509160341426642970215644129267394608854719859189753389569468531211168963224374857159175915916557738474636095939076013712036389768420038051183261907347290547691094975963004121575141872930054690245144238668905786696784098955463922918578064322317991196007269779059446181729874873026398506476885533069618446688510252171763540981470837592460809692290233924372140850147555650614817794878520984141018416176134714387592572146509326085562235472770726445385430602391172270621229841714178362268100673069251856197356650826559211111062784852532278682821091590863376774821911604919950047363576414222521993593481501862708126060851215214046190652280145323252152392191764426006926405729070549846412959970859007874848150329773465408185878377764777125896626904700968302170195481728815651711337841554919802163092121145926217455324000828169711294498111698437776284244333377111583676470936052088603828061011658333152452154484746910961062355027194981921839147590241048956159119392806577897332689437902232995621531750287565316048202840577083051252193858521573106068050852919331542455068746784651192976100595259818047806245108074358366364770819314636769621086752336594756626701842027211443991150157659368017892194277786314022239751426010009451684037647781084178212347341662382185508758888699869162643124994429865564975022647821923898321415867743943867372679110191134874858403079037260820965286485761953327414255181221634618283733297235451760720984723815978237998999921500112117646733100225414470911628258718792462573282570549420513797318514840726628905056090712746713730004896108781067310246561694112607793019962986555227163888939732774774789972865904810331814268715690913644069916573661753427332885352855422396430372356588630202585622703829690619204567272841217779588024187734733121971408005146740415052626345193530381251579539050503641808624880016719733512467407192202356568979727751647565385180874425895116452498282058514226301929635946355595861638713328103710682269943219006470290291372716033430030782886058502778137141161903457202990809401773696522839368829487311239235305033248045505373813984401806873574098258711694533691630819546898178391343580987285343993533578923191432595207169691338924553879374130231562341905654090126087520709988779263526402385713389707824047772989007320602150678947191374528297318893982055701192770693330972138222363355984637156340317984298657372823651395523761294005627313586327713488704245468691158398368295552632622645687190652330506311386116598037986373571754634891426333242942968923023735855466174607387155117854414612418973713118197959149932574155730853532263658944506324754988368235385912038990643702592272209350023377640894965514903178488269512447139951396211613355713270458463795039087362644311104228095209743476190217122904038316414864127852434002803903059179111924493564251577221618547126569493377259333951857582081849112509270983214370405039413812310765799993613077398172147398771939257104882827666077731643948929544281241253594151566678453944324904373608904556078130581151752143898837701948133695533578754848672074995432318692906807448520070328200320877141964585394796512893681232096110561699071063012304255950115780171810708032346437328085785481091651188529669515500646250549741754462516549901652628557733881470283413564615118040512440390437291795051622884315559230869811360175904658980688549641654742154402322260013069778634641553016385699290904941232906775802034661199782607779741594139943123657873471037469230597239278015063460152345960666859962607595530584955438910498600727255416274281242914558443872863877149744496227090296161069627083764429008894587462193370284022511807726699860671735985737199662536628745536744132136677019392917375084944759459536710368765442013368714747333574590270533865503730765016644607384727137804547751174412491904049282485102848082355851677311160906988676162608117252578973780640662745241724133114875913103824446129414294301342355890650359446579892930826755386725038227590928550760061094631152370805177408566839315431826560319900548275589705128111425470919413783561160149535609150560212984434999358009916429393302294492995230068589523066638880650545969121341539339501225209497769906448797045198255935076279044292439335771493910738766525747679032952545058476629188965134689033035279885237087344939813089994177282641375156293635635040527938322976748376706559821295041787280323573300186986036635004662764330921962542506307324061208438376291275376917484871132115999478963937999244614772340406531018354533557882808910196613427928203575993019828454200836225347007706740827097438471608756313298888796018640949378263236948985899465408817308158172383947394137437391273107467879435907375813568678670027170894075996038692712547760097295900267946718009354436009308754906042972824993985021048967260457908992210275374567096216875438395677134707357572331082371397917760366222413309083710250568671624272856789487992100034262643861213006082319100395336632753726689955986202730868966055168741926653950347462230257436709891272477301205442929376627827978696439452686740305097307217460036557763251706671307531299074664057991319349620665947404653715102803268699914252994084392254258322666177837688961987734744847447538419768808502563787579788312170850391392526168447810438621023385739459590256759484230407766231147129400386230471360086706779074902560989302210068778157322353337532064816692314623887670242084164463085959951131788742627086333295045985643045978773479653772929318967724687630865826126706556040962277346353330542646927774546572493970653805212195346205174506999067375245993208528221088561257601055046889202513159203973412775714643981440438569243261189630286581571472059330419600298095111451707591548620471492590260345818496780644281653680907619424561369948072922714798356251091940657095423322748323048494316873707474841268793064904380991797604451578203126619250178494885743079468122736540690645984882309638981919058363356757569536538677071072855682116695111709363044048667504202893135441205978963822970577017426871167151404136690838611837248191645513607256287752588716878571466427366216494922289185041935795263198189873605942436547483274198914528843919130800695075791061414845781632514616715456302578040855450957959637338123572591907202318919677479439847476932238495761308535221053631537698896837512747811958379588267157645888383107734326495864598828538826373384743892154677480687093389293003875310539128928982740675000825255736261720733947151301006194534149641118420061170345529985658243864246315130107383934356020739198973742311589935175090314428009868962911076206472255041801780560722315950713180215930299783495253260274845052040286331725170253069096053646253986694452137410600650414500242990926255002276509412430060469768749923866775463053712836068296840449617933926161763311245839010523356339664804323350847368986216123568846665813400694010523046846570078105917172573294432492618540133555331966126864185426442914636759769380459372084072121238113655484211587646828581613190693737307970083122650427613697527427460857661201203537965659543245325016031408598771464865907946598190533511742685861103659051236766141006988704180872859207714040860066762383471858390692055113771511854914920503622129617641019683489908560890345960513692001700429864014434768853738990724417987723781015790240968715686287300067548212165964863619565275063270583868731033662815828205234444771563773051025152056854193681886793978677136256852227988338612307340689532281007418996471811570249218458018806976130167736400591269984939988402921689113596127414066324901976091559128912931920847562095118720371562914089342373215612092859623441465746774609199133416678935456834398595880712400656799413630291074532249815679616943179298378718938446287225374425092006706968929701893802487165412849016809881662161008770214567107434611089630599983333966040419749481742876721169611827993611279673356303757206943827306703261345033116705666611406650466204867943207404476056685127860103058140939152905960758650013774073016670014689880658808809566103155776694354834190775103665892319959262845488528757276153901296520840153386626811031267782715530742196069344073866834201951350059678316242332455734620140282373347040998382873001782609087608404103800453914966891727000171092233717285542386028946504762505575356623955561207448375081889511682915329222605041565761761061258097525491731472696266477133147005888415855130621115745328924150778654706100282854765202658044529855663065945505345903923868427010515132764403407383113479493860209116637672257166053920321117756466393847137344237824329384429930488227587808573639248859335349447240445651362203258548526333007704186290668249896103302667794205481941627632194086948218224917661494419089316387115266707509440207628152747183552304203513387222749744046622262512768001522906152196247671458483993986182395490497424002073962323631949127992254018276947489600386962715386012949353752592809734196367189695112933789096969458659472205923235434748165779961334280641834725876390368611077969492241494579782856771834337384065384246539354157741450996777761230931552814803799479140745147542791474821399578049589629583133913342247449196163296296740289463224927487069236951798100983626073521440760440339670042587712062433628722870694476159271227151364533980884765002215900363718387785924947803052267105342510160941978620878586063007380367263319573720437882560272946587839174198299374291812376300619096991789448342537366004664477220317260181842374418788199111455399009790253979654998047909110215176353779399332987438780238571285832604912671391629011092998414084394694042570657699654493765433022396722287794168255639577403438006097529046786658271295154806646930856466723514539498577343260353010959349724873631786392269763598105777859431186186132391761234579798966344600807316082869011589491643411890669946532351749950280006787763782350788261525571340409064235804175677386236511397014213518858672337816633367031393209919098712619612971719165515550786514904596748888018057792737288709450490633650215628154265587916858162704245041623281924840522749203148221937660290919005551893244090982746823707676079496041611750591430450658866377864549621249079394152858858798144568159014240460145139218532370791279146447730894515265545315293647880614062728128550951683911914240572125698332762703925492593470462022691935327138911574181418289705453224205725901394075426335674332128543369849992165946358848225926232394501629214287856282278417668243219642388693343307708729000016042093808300845994796854574000662391230144026014706561286706910045595604998947422613381853581337371594113639984222218626981101829397322090104084661733605586965230732788117235486000307820804790173282612065505903824238956767771906392327810685797470354844818382737662016482728213046934283056631027023589633533209155326790936558504208907826575306982823331687488271944300307212987315938503404758599663410690838454788785198377413817683271017492779205177412107236383926736087905856834032028231930518947095566881346829449503967889702411845042689398082151406848019268392399991221994055281008071702723001022895986111646084178580583496523777206856527717185801511512050471772438312784978428299536815969678057999747721192534354601872215855175496480427496151715535762272764012677532913118141739303883114085668832996006947025911821642625884847920935860184469910212462015519393164496893922642082883384539562032714407487952398367931990766059205589402103398255106963993771983726012612262713745395289188418640784732728520083031907734409647915226308758303778713423660136566652651840159117929413070246967863489439884601851198244184237149527816935492743760856249855107538841616956757310539662140404058461681640725250213354139697228804159889522744743212413858958447332119576828391298296613115201874774895624517313737739851252882273495390489532270780509154108918811153833828155997990239778382934850299720064250177595685916862451716382599910827697691066158428025518339015438889263110290326282759609773433512896976547410058949434312802471510211115783570755610701872391079514203645024759056315674918261618160125683165043418667454334729709474704870392192811110538699615592576434753083252018900811139592101772759013903940648262850451760555254670016524163500569356315282181538542469708423519721357381087804759969202573718021695292041156545533201637573643501853591485680025854148757825454619584425997875110745208065615175494098452285258119555885809945403577583887302997133442100435379739032141074325648740870007603314093268998322566442174503003997947245580500246727488003613712914275844839990861299985801348456095079852980384994274396528203859578955611403318119106707819011088925737946132503422834555882011619071277144808742856106745524784961202671664529430209791453387111449228603026968943741340810562510965067039350681777718621073080923584711928198482201890187788592549658492310757695651253318383390066103854761644657434616030220726241792539246017611741092352759217039082111729584520133912656110602825713161782619764258138452345829056670637952226559157390849955007548025635779464744707879506431392328100831740718544915423407967536874589465572373504627119288854980289538862705222869906184073204274821976774673301880501270185953365582462030673024389010890271689690436619015103461239556829227110971774617908681067143932290774505058332601927850623805212898412757189718759125125698585940110451057965752943994812581496193825926849788241447669574604301272705615379033895867156464172960551747114455873753895930573141023560076960559644610531830968195849674788936846942905641384156565118867610270956525455497956210728291853634585194403137226718740244565096022325692340902249659699090131965207802444288892273426783037380305205617357132077299248715640957267387783408434477231299560717349202013570287918831017460035305737885075746629328104624420585433196112731487606170657766605821737933871347731511925637951973482258269094949481770676847981726592848454397857145013783779097803051865020357095598487579381694471295380245179418719710589792238998309413959822852360035509973037011399033828812714698067005860487771236071277598200100672172569085119450607477944009670291055700593274077716831027174751883217406681401510174402232757895698647071441309434688840225404171508285267257062123774918805287348974091223970884029701557327033897981667240285141393963696046264546640629225807552835844344836266626320614256564115277625609554605044859179920562202555773693569093534471227240226321270957275910719643972639213216637976531111029252310926618781857816844798717941897665410184531171893714353486036148589552457599015099804846454408822548374205758920147596917079341519840255869236067670634749539765795729784071081709782480075949105579355032633360453700919009531118936502281145221407613370112868743161733480686531529697779745533116322210235524693141302717030294591400665385272575635755282216487254405166978615713962947693448090972184177203099603401162271126510817070304448098313979066509019648527868789276118435870196208966304505985224660857245559302436720299793359246230438070097673527108709835862880020513975567942722787650793923210633507481598664184282292319396065648483598135273875343990508353364373934076373437287925332588598844415378746387591260735021437391840084373808096559107921828806246356250045296953856725319670523795327027995132077336560686573415992957301474094311305890696192619964762815886965513442797370116920855700687378505392775465586272303222973967079730697686498134851729817798055565907737489555666357988718537128334153475718579283265009625030186944158560394219034599073658969521420140222861411419995226940499988271799419965839897492323596862771294987975750966208303040540111991298535799828260113916764966438201825905011131056119063726028616777016785959803886207982328282682249083674028414817311841601993769522860033405579534303745492351938218615173670872409340295765768696985991955406731186292575042089718595669027790272288217155324639314227689168243184280608871648389271230800980206474900430331222570728724837872527893056888308222362758245514614748566267875193126720599728569720470751121767850772243312010909070828934877234581121969932097248820309792449330738330695218952789215205843285961205196304946867207918715157425645495508998439751884781669739238500262662994846470599484131599443050423101468594305443029442917015568831042110996418680585406845024982669887485900208541470802790610076613399782019895392025949716890157458191874378190130303388557833475150249387304799960885016944182791857766928790184111868564302244984642902605323079514731029423037326281655158325549012486540794462070530094659852107578196525829355677431651687455792525865385976968526262466444408325103201909423109744051808344439307910919055850938874191045612049874387752638503285202487007569740671102789341120067434853635465884241033439599656827269034330146957535489436204689512896006131641309563849974625913482070675159527273288409281373537377376933603746909201740541723890984893794696884122131724916412304826006021983135558171618647714836198939730885856354479224974520697166879625456611686602508924806337562096264522966636671377232428864347152535354621843282194675536757241848263391255093970745015237810494138220564749990650453117096433723942496634661108667901973543711710606426092196148500981711406819039568430928717945902041366411569027666965506185382565210057194673959778185285768293298075388896185206476667422968380222631106235088311038309527861096191417726362658812874721809661331313399564080591801183720380899818362126036132322292629708549840603381677220406655046450062534282716186138891805154422156937614858634956432765572332172210462940465944821473776804229447250314935811493992300912208415821119618200941822124319537702743534464089081219370414608351364063283269513211812122514268310746153297503310950626987322293311065271151171437928243732545763863068561920558780065094556812079615902533149642822141020719411151361870480522324887821551590645164931338126290913861020532729229601916611145968463642697223641460152453881638409141748065897827491155382360071228256244272832694369918379082711783621296961905058238352219232282666806460177428654813530586334966022586163189244741246342576197026369492264325927678577822466271827127872177145691108517534492171169766019165781163331267250129439934623994948707793347172585511604857259604132918426549269881725050885077848009403435549043736782879044172195745470962520457507410840915643387835560684526548771109787425755207752146628114867144959113989988057513492019680190218750009237604077220752697316659030714659224830425721358372910577694027732238844942500358561577414989150065677835762953825072984276565655698562452004457492670393731947736730408417973837457145787527857400285330130910335559478466184414727787097136675873977063013802205240150926333410110373571074462887167064128193572892779051291854301972029089121708242291688926646887407734576898890437386560697360345515650852051016966081874480684943086223904632688819087389788544992389677107793284554751760400853696761827563852309624460510558929416569075693450493318938824435078305483760611741336429990743904868840015425772007702126869488023791420579320152268073651958390735719126776232461714460458840810861820454227607408340798315067812631246080959731394054818139433509016853637325399392281592862182571186644695775318122775959758848336977740707326108657244532415908980885906780093789211564139312052017027667022355292642382827777371580431410154485979892414758980492914294722998616783338660318952416563270751020791775290921488879420837260126875613488817099063976357674640268003871336885083938936253408660587262632897198742582406596474830600090509959119062500458219810690106742031473841390219823282698895794562012304824815210231093543982127994905493552037000863873278870882282183409387781388889878563848208000617269286190299610338970647652573436957816470648252506132354889516224922990434590679815303584186776677872346515644544735514953009234221182793032283039978510165708845623281348461150638741017095858854384330683747996410036584709946909972594220330027278587794512988410454742393213819755671048484234035721857013360665674910843881744617287143225850089106028096993127137736696144905317415025262155939828179595615216713195429066349227958627458807082539308263806568080533133567123109229774767512064999816211075742061353794377402708358997755056225934399388734835061567347722523530380547149745809453863722515698977530078801990303394799801794567740947396579017891900754411696425154753167955206300363359992239178852232895790042743281434416594076866318153793734210325628295127258651789142926775664097211183771466188266026212046948521556649536434081990099410275484651114124876451402324233632559360390692994638182511737324945905692906859854942297106917699410325719045760268074611964485792148338794110444015457908712880437277088316852170549708563510628500264588179349402272622703269136825875986378391861933401659023765616921449660140641021040500582702087143476229272451504081763635764730918975437809096366382214817012443773513395126553119588832209628334482582449862528501097607816594947625151296372139468028351618171182695458199865173794676113808803759959987594472749894772999806111711997049116827857654112407725664247884973040452490657355646077787422887312592725434448755154835507850715700964562965980296457597958038185833249952327274290351988159358643200185134667115404631460980846652135813583836189377563219274013910471949802980186099752899514126937782886434085478997937852336048098842800362300934614818528454157861062337564326117918035493203994405449591006011288174645299512807904329639681723985327319597809089405934839952537459938252860406858959645662274233041366099326514374400161003554257681611556130202031470801595699766453741937939197760620601309513226625501562152397054144097814067933574420514679961065367235862801270353509472545262857995926920402199064456581134169884779698951011376997143211563797268914408033643644085052065269550515784842230173591931955947756516221451517151227061468062595480844818639743189632809652624805311773515449355976361797710576093542117592531285340196883413034239263692910547388495071649639667827377360085788568726274280444913717576160752846231936947792624755471524820980426935172409347434824602242317887368457082807063898612736995554968315030003571983679702585085767323287944267124940184797926564363491967259921531223639125825118977356916783330986604790662880127310041457952242986427409286283150508965002906780295701017854747217647440173487819163831941351287845599004781021208771531996110213163873546350826419079686970708324303385604177934169225593124256263753007133850123856418278169619370152325502211112210155165174747870360489199106279249578451474415474714515822198449282329262595435134096278261569514482956014874256981388579263033866343882855961852848053720467361380197449995758969810858461165647150622830500848799672616435307831579824874430990181116738740899574183611144574199973600379553947782468089071071773377893650038300496184391294710630032762498013309407037802204173202921763189748518324338510174704473013437774033668761839178274240731769936461861679036562711598130063981179739893065923734806993236421836571527935514862414740471381343469425236387193515227627103616537040158239600487386230050190057455934503066963005206071524127552617145314970032606081376594815810250515657816571970230601812431689541147646064114004795892311704221692025180691300248842528975913160255130082821621032390521379807431068691665972255801197826950167086956749059282266432067170318069712961259484349688276050290230684226547069132535480196565704810927874574350998860113397906408719103125960027442781102600410688637866618073913376172639090389654709599159367533463079646788133524079054946725693286257612532665419877803684785718036114280024072891219824052379953770102229284800246166071051000254872334565736041964770425011940069376203099127050609323854821131554785847771795253392386700009391637108528750103190236410306203871082435938355051347200068778576578960315572204491464051743887563881368553171706529239185812420058019014277914776296567724830695606980274902498534099680707039737348588306540067954227749680557629753529592966771185917411260929093602610062581631143430022350472724163887012979259348837656818263403640887011580699665781477711709110836240000042702656641921166422883706754573148745356270505956203210601519466722639805062211977541684755355620829938989111878289646053838033203925014574031865196114904504519036212199374555814070657187465672333159438001851165084547492299520416933147024033456962585509233696602791139483476091196426036343406908670112274095994636815433075585653412005450350131673722662789386741368511309336632968596230585922706790696830724072381612800625317612895677034675635234126596782299633394149098396255630217743642258440863843034835978213843698849820061065233185205343627933008834281555684806982968512751946825045388916311603799266703104698670872147012498036494410484869781259055336565839013618904061671080306952285662128844459596865431500053139025683706718809046157339630552238565877493101752634300161344596169409873047172186320085760300979221972325445524187114239949586798555389518292223990945627972953662142221348380016954232709339832308548372281147344685719979891918022554207172058217500964919312036214753900135247744772935832107961953180905645999334832024557549877800915726810110711535015083349775080644173229626345833861237642876493636982403112998684629333842780737742004597896904277539636998084832654226841431659800932153243860602428903527428957711862222779434317564716485739758596221222591248742119548416355126290548330519907471003780542067440288701835737240949383335373529449496696582768832440317721551919623312630912894990525467959803473504812531932978349972341023449983707154264938779454938935068381427814969315254449133982862015398885133130210523622129028356211549013551743318074943303982973209652776235837366966219267859037888652363061622166521927464590723462134686200658937076243626229259057538520363620396974189448251415697754488012932052744175004177406012123632846744022495712777507476222043979880863750437134767140795407363907247562613341700250228964952418366503907480078440304227145758855366967625895245387385464767714181997045338814281730359161449888304191374401060054913509388754616914604543927709749534100982127879020691407570675423028007897936523566673461093571463972428356871151885183960110998971502305016045688784448599691538380780540559611405527776904224343097752657875056985779861057025635469096361790220235853165589792341557698342871724143792211171448401959071328746395909661289888881522576933099701662560453660807368415743955196918784024970838333514465271487763807937325861231228831609731595448462804770761968373332633941143723540311627842785829867855919459121928160690127958763643099987723099237929874174431866791434253596422724996629781796456332372630776418299359858936965726136250879380893573401981452670195454747715876459503807799172891270515491692968504070419172624317794761955879064039700109104215165019332898017948197315761517370466214462729070303864621277454358920874139124665636557926559933117730812676812578218204833968285651939835516169136963705174505306378506975728867543120375102980929561933771941737706513925653949535867582421606511951507785036830211137936177692362009494507736409415374477706257504120406663858810778444077216916622895036248295342442448117706191760869439995445694042581476067003692731223071837812560216071618947286677983811877830020070183520119503322677761344341502518933840107625343224923371409284681612255726118139720795521183812094167889102532750318459492503220512812864621437451011444315523440176912462589065133899796231717142014103763255785804958360496381934134324525644114708075434422671295185509964051899097445596477637569784813477640499530074724654781732512783871497284331949710934386497172389817279725849451922263431102474168181449900922726301280169540563395191471246537741165108979699050334223931109302047323533859318867643978483773179223626643012934152766257636730047728530812687646159297382985370838576473156606916647116272393307302320533992024072706875405695554514950348857920221262838627409762450991023543964436853769772032755778209841315271516573555675556433055239870563474997251430624553434931941936122410989941892088667019954714186830871342126924299362122180008664855256627370800251185898418402951772825055096368015172849002976006438902868506967409637035999081176590096828975853229135095469629876822688887270107602321413705340313719804510752781102445220247140579297059801722460066938992013947742915584987629863461431622620216904193047453417288693901203779544750994250474722405489672357927614229603430645900853531092179105618141750482038062314204210535110636749351353722866124442569181992101082891288521617802574560283274711421305468132216531731233604809285630005353762203422266848918996022728572991812915198833091914656722076242759245135165562416978533744641447919244511654541009238630350492692597082076297951659897466010905682756832138258486931129317749256472512757654313463938730677158283776490331161142047422198360063699407027271869135203334298637438996932019487327153618424448645303611688869416073182953523841943361120678441975329321733175522717236597093137879680703359800906728403308108650966119405044080693962993844256291063856381114703076895851862209199585438251881774507569866778080834670614134859775474994491793009405375172585462572040054961198587958429570048015475931946547544179782524163664216331826496546884183086788397307428805243934061155562767603192134602207183141326511224530281150458460681024980843749286074716645445545225405585598913767958080744524771332942178815376659354978211932375633448979452547384030221866955526045123794074425073540246451885637572088673407786633374508549425543302312873734189925835830084942435596961053922385644128838730320820577849931605356336445145899619216195095870818400676562591140320626980519767020235707320154913171948379987411163463094326641540898518969692873319255911013539085043102302629637515469735971855211117821411344360825628741473978972526843805330915271716806380249410217854615074555693887438585185879647383877749590985422479028416890615072109084680255956103571663058615718375118666550868619514258102512831190002629044526558350886256055367344701934358191866390968916429641400341901156664566111990902891534136666222246756817006352514732575265606678816837470784621849853541674524696463882850307182534016973447024824442763226528458551387460312559216106488735311460205429718351027428049874423033280005920844423685939568523867951768646066010422355723699558629370366446670008957829628995139605998709306863222816812645620779674792764110610072938852367255245298160293328873574333271713848574821902119015929109254559881710880153045407562548270990941179856529425382407552236234087495637684395018017179532274036381963605414127990185072677925150116772456187690702260227053248916679905125151276208987441994608912771605859241713333307441214842431141168648433105017274553858977309846654439218046820495065328670492219887013790347215085960954021593247101318009144868132733794872508694048453761562216802012227346917135067184265441738644591755650411683478199344926349165878771325792962885761333940453369483054402543415955205196754120522918523289849056404385213074024516226079956583353116345085601840375903236531712716505523777967750986270528961395047095181197834507788284704393964504282311619313685111455056774909859341933998889658079610331871582608552148650096307141289707936897716363437512132149552722651776203451800888694687124298654588415483538710618007127715163553869374665785047234457094953286914347510518587971675091287572923066948593784567811169316410882992051973656190556313461998962137386180949499429573574409812136301097611999145920045991739959422693028079821623172949774556745906021734918007030276930536487393965286605021513820039949303298450340199623634237269587813832569643318166583192150737773630556534857513282930771587070944652620878743628796961719838835638109122575686066441339419276420021433337513928159466030153573547498154080133759805706433380186740713189236248070208034697930637246713210650572263448272585755484495836310688950525407583364384151937289904564130907640069184503816581977601264015650825022205458584875218460225265695166856601767756297686691805728498267530724585840618012794575940197608470823564288293277791564296813831965237517770917358223213229932389658141194931271006958387721728727603508766678399106546190402943031156710853990423677304665385940136832040964054050218725425032020546577114940730969970072169921466281136062097624754106789231359155800673914634148700746477330994913993291636743311650514870040581621560752602513458152375753740959289048484973402012534084267002575773653802900309750467579360983925509814810162944489943143570596066956840112271901142681242614229742505859959541530544742161964206678240950709695287319329481754705515052685865804512617698184241284834236630296473022978983462762190434921878846666391664721955799799539145389970625226583200954802794700627890561864677115144110174946464043829569789268577720424840786096666140922760670132211084305773492516620231365470698591650198214509721616767952312182240576475887299646003408207850223776117186264063002673012929339503037299862696166705703180833130461773590659510952422644894942473047487367349705980231304211054373316640827999791906833140925997048917958709802203545047359912203557141799907511135785995312547086371135842959612296634856987222175041305284633233455962009016014686807081515820339423328742735034707926396266606807659928386507526733451088323760598299563095913390407337047791514059347254435059791808661512452167202450586952420683209544708025208738362470938918399431846790096748927694089234652566236743351338516346449674910569256952802433071694393873554023110402181523007296299897975494262999375909004279907878507798928552149835176819020596845348109657002103485039263354946212238605835710967221083811812927635404077772334664803295192453174193831491033392451672419739026362870026503158001597252787520617614888401357179032679039065970934307882023446744248885858585756294783230550982038232268445428136089135988616254847057528546721513237949003487079661467219301525940154309077019883636277416786050915713838819149144371881603867404570351599128622597926287082366907994727803051305033963359232105999600613763523027599306111005526614803101760254833922387971533340842801530801621288106273924936916942826421150981322838198166740137140957984385085565082580060819779049385219542687595922915004999838277412541020344259655000901458863148588668009860354443540991735385230232314760327529616732584334159099516291269218312876043061212743225011504045592128385999059076237501994934789177181149244884311465061946764994174439054262121591346223511438228824324826644108629757859936901265033672667950865191396083668314187175673454990954472189231734417275899705998482429778977547139929523693929519363135341038983892275096174218220513885282327954209082507982290620651428636802963590425677405178969961867171259347076162650117973220991396006995791105043016087576269459744555855610556074631216199908936766701712926214064663223489946159767780141441499776631142070276612393930207755857290785492065588906185535799655042987493690337194026753979755778434862699803109278885100294110456220997556015470951746627821072121940939092926148342491695035384838674138227426579065365371828190660820118115161199011708501499978775779523692190816397081184364371901765695863342602884743126971072953261042997654006266490643325326500798193135006134486119362168279242278852386308374441321536785710201882213253069653109482095470177837606975988366111418512986546295865158395208934376924694022059388063604626857468090150146407879554779753576747606301826006398496160365897016131872296159455332489887940153423214545374886502666585514643251312392896180102239586051373758360629795780198854794311468809612567030679390534856824595933020711882220243694149703510268630858094748313098140494220293127613741404369803782141876730287090339047673993791100249523406467328097533313768362274073597683871652000335846634420850813212596267430917977954674947426144698949128532405046328085374406777987723403115736263869619298762173636456705091889563224400404770697332353844545928408250177032516193245499476930181004658798411356540281932419430386058281617908512177756134852935769289057920373988944879070456320354804450677906801266074927163418949304956659590141683762340921369519289339792962993700842121211097036779151246394443727229880980371728881090964826092353124116229026203187946279207335630643466607730949737817420045224755151973886027922405310773952811822962612337560575921851219559778231837691208630025328855995666654035429309587610061967129907047427280458982300287833708985028738230832232210920684651043396659260340411156698245977550576228284968327851842094447026172992931661572344472523276488262823623495400229820718965437032708681083568838740020163120053647575909259081944404948436892066498943553227661292052420074930203828172282970887622365489910374275045327815348296822562670182907735562864359239251753494422219237369458345174650333538303283437348364314539063704115548551902173908569796473723146691977823134234880002014002004852011095399044672056507874420735261470626817481948587695718097383904095970739320531964417300071656903630336386521635842717516671202523224493113931736415501469367402908204956871786094215548307590399975722843702026423743207904284664795889640276033789377788569721910733216741229146195698309659361089933102761927867619779285078820286943120269082440864257689783277530221536407063538426794225363091161725836778214405011125462565669917919224468020929637667826464929745211004212358849970150332552986155215694489981386125139164656196919159727367393027501538795372321385248688919582098226091021001946255070563878313871113860378230578182585274936587701294412691951322428165093190408208185844748812845872539761436194880702898758220471522982828070459977268040667675023778901864456472182071146327863822470041263005913988312867111648237417395705813120516903087734266494211658455264780839419663377057485689168295696627219098480168870680733062595894149527528583269245392397019031107577321103001960006609852238530516180755929155308468333822120656368716319150584995032082224274300348768998616608273010169314765893660216734872392101623523200621185937028249725235965113884327875370821985974623226238049012744935693749344684561314067266711869633892919105170995311045428203873662200160220180978977077292094304159729287486841436035178164784173454054536759614240043485027878668420474805651266050986381753650297129974390544072048293112331873326431936506130714601761072798512807625607699812890757245796334498081244803940434556760083913537861150612585265172497904321816762232078231919155102228452698847891678267745372684064045564250408423396085519374155561605941544732969752352086244191390224478654952933960243412100017578071007571923343579833458117235348389934045164184999395502302201283882312959592064826655263712421490684344553819891449363811309639718213284899594023370247655683731424292842113157913895125948510023643937330918862518354701697041437271775613560015705891213761418402150193885332352297675117700141161786529628630891271758047359339277166980757076768685002790807402074147947889063649176110330171365851639544387876558078791914365505114604035576262585713684799029938954511986709522947949237005025313015470030955017690965874659371687143282698843772096981322204620911221399703082435370420466203551777465335018957398302312268633145241669581555270477899894611379610328481248340320640966972452383149600419542901511992312759088611924396451205366838118701362824837333359181413388121273437250447444376135551845065063141815437112791107157548882311011596863908967653527539884208667250272285935928934048074331258677194991267371748058934844566953764554526788765913487053739702981638345272903185437355556388832694155403500313249340583428335305541401961953424689688630044783834350939339674936743409038503770392386835302325689545645902337465152794511320487034352003127807703926062473816305509851528654345434831175681011536493473748535589706731010441191461094263090360043607566338663078855557498364756061162814555174409554989827302344015117539436016244718603250692466577575172472350343864750638318150862030981124276255467112182261798792773746587422020054151168565874744504000208361486170173328570664974133764827789094492805194476431914705883364948719075978932434228445814136684123420425589155363301009480993871841025357448239669224389875263334891360203722745407390451564843036821299483504942937077301347462869597969051902916532684417165883255059293701896600744707330622816364895101635410894467078581367269886079125691231524889161345903879197355196309576241739103467943070714869479544389992055635029115007798005419387161664283659035294153867474515121030431212306729674286481076648676376865854036306188189147341015356692834698147079874367506703764594539768692457136034211963448935419731689462204131080283745139708521356377883347813726717620673693705060351446315424331245838154805166618691037150004171402420900567724880827475307427936826912181767799872948893188827267210284269961582731846746346444959784088443323234007389684040837091610184629231772555086675261010063132269268095719625670450466779443078700172453973258745442555571941861876675538431178669707377107947827705428016575861659170357881491659898591076905520949996751461711573215263174571113949088118976688699465105859010491427998819341809952139571975232036232299214147265271265822766096333295753487227009747995626687844076152848092367681662176855983173490919209019611045990935772362760667445539227542381855948573957794995550206411649315472281422722239491925649765535378382389465793602066437273902122528444119876917847206292149594678915660552955170951261149117533830862075565594548379418499803283649450065557670537432536167919665938010283129862078365356540592638772753520587715532277769862547694801290427508208719695236190650338363916451860253509580946919511842803504707720085149524853145336560412879175629565199510126169041898946764830617220912659728004213889189228542210123927303977952737582826620243189656837712047074244921776269433652461573745255077377701652850796455950255274093461986062344169746141435509888854809021351113168058302840865788637287880789323308070912637492628834514236458906123234799177155241146785257173707732423559225210525946339478562701367431808461949065461271809773966035393295195381866965048605799169393131427008311670253229426599391176363720452037198694831329302325031651356328970472960050775895446281852550145535890590698166605698382490177339624988630726418852857100125178686181689070181575928880998017040157318590014367060143162242863470779927875588438797587276800343064024074067896525470913177719503074244210777247419318253514776966023871393453201957709550460096532610877614901579203971865118252872773302474562313853210951182721579762104057958073726879821130501821693072656802528994001171481256274852475405803292348642193200018257288453639477979291944382644188477687579143401798622616527628811421410521739911449485367072846167575202136305788057563884201065987090463748579980384220592566258199872201272552256945494037242974836994502031119668535209057679591212575963308148424090661102152667239754073377510965126180569856189893008914774688242638505414928782372971038121886107314692764713056543929777589067889859529483718401084836829076930690043464051223017672803426874993464216272303456641546613358919742427560847170796631930230760697952553870984623622176150084833264965095535476472121298030064647854204334170132379674334542245181229815903429144459701927392433912848423456784718740653673275792205567222775144771382151448385123326991995181192247446927163296377597857254933373810635950478175771709683188182088978216806680965714931233084543309515044481956505116904281162129189835575731908173216490091680953410912947988772372689913291625015776894522762007537426461276775221875545334597118318629201612530834229891523511602194161179675489633865614086015219549359239001212684118033380308212052545751605850507558579277995578592814425075988674078441661962962286558732578384101149021174406425385959571217183006831977161845551049929560817352351854779651355247703749503231807558954318086268861104192724712245640639156747038071478303556577819889847675381653595452767720243666337154070298147652915431061351612257557639032411549939166599538464708775089150094083636560111001653562263098294203349276553925118850208046964871879560294958611160977426241076851167450614170071930104626713765527734883862756531260289344418167798228844191193466326340256399535694390220742916472838236606099987201968417844188014212490804600285234553761200894200270009782453615242175601482052160843722601768948628429679369159150780264938906748366245506102379284018168079449639161367110489715072607952278148962509388039913958128760447716179706505479644360256450983880279217934879723067449725773377850151086265481295653441445665641967155758477580293891362700479535535010583826146698328042610853507351401171628794277480216111150642290413453325508765128747614045676533348642079043205064721870931530141780932899843849725823443088334428693525670064531548200017145744357365720214052651300498549904735682802525413713149980203148744753760615027047780853295582121170396385821760459186225092231782820738621472764176247675758723346207204822367668676578750429340727653085121983748832016897743907518023427522217673885578257530946346657369697868058107511251424357682906999893303089658725125522474542012624468854782861686577349573069657839381234340152574869549619996886309638132756363907486982243646480583739235617091611255330769659860179129411295545147832990711288168756311927513069066097952812957364494268597106983708938464896579345380090221002551977980113620183458185594464976492836903375782812366601396604095566367557963283489077186801813016990255479464555921641478507232099968607802115511327465682690328369093408294948332336653112327771299731773311762634693368095999936719307120944923969877351253300633897499436324558718552440689641910821454761706699537660232769819641654798820427061836295151787925848684009743597395584229102848288299209178459123413967315311567387769053009206588152054690590118928441602193170124267115790662627683272647980504141734206143285157113218575097459253836526189963578947715837986048797255235974357425661530275187428514432532144234284054004139383686172037347325114348456916493260778639047266384840699176456200919011414540247331743325505821256440345554780181082908432611830635292748527464766021199443936437992134151885668700754060605006986647232753910944297249778694481079236130697009184885349567249053157084727371097700860110950224313074504055474059157844022992403866992196745429131336604120041510993026120208188172983212644576162070286085024222059752037795305925983953375654277275032166387027451909629105813256667927211454137863921838658901966339266686731343353152557387791881564777437035470179336966104961438187413979214736882261094871838825469176838679396650724515942604599525361341221253293054284105511436697858423058327363436028328599757150733831300108023238989621526884048589562087166657933840516383389373444338337259450591759791281176516356272968659418779279440433397418963791063646838754857095604940901156476132738293759111526126729492569471687205727736286869111398814187944545594425695760775955848055021484664541479772812528840604305215234581914214919865431628242245981906198079667734820889491679583606054059266345547726434306767572917600124977187259087948222113417800494828793967636909763548175910807158373626345642306917089926314324136279582909462679906728461864069253920800440207853551375928159991728212260798640417273562712450919971687141648234509480137718305304795500605282342343541160208215133438360258694424716756268938237271890316997530226310530333569637082905897583514911837339698053948588801969966068898330577944351792101313490322412863021601339568849197715428043206033991367075482804491680689250243365102228884634307236637128778098900534044828942377336176527731907111438341917520764586227706253649137258849145793365842783523652923238861429707733411856673402348356316729821445255570080193579553865746985304280291222828715933526613133842030514444999186957118428331307920496467187768573866825510584959313501168871190399010850238152871625922271936072000961808730894652527014991444558708934382998610315520890570296445482445955154040803406318810672015104363699778797870276730036618831249849259541029022819367622982471748154131006216090090394739348427910833923429800909831330116671781055686155627058744842545345899295153101689180594038105089384791637729505053487513306467851388249976729439604008826198854260848942712208510721710295487589407791369030310114041146093528123904617609126523101819956117795568052502445323953958107733360416433282499248927883081613135848643785017356379766685138357241544339888709189324245063074743163412537827168682037404224537262312923517836016428025142033728235177744349928048098049157315077169379390321668328616061017372580847484138268908197099214350344181642334037786274321948483276080949560089038887151903117967905776952313496605418571470206427091393858601786584575763607566986610484025513044891375208097834749554477194775739774180825748428304436532624803449338303256476983257738657615346942705932869573292518015558130783180584977069786259557466826129517022416656024472047821856411025212689087481723555608512275216850867881477193504130593888461395642665637438068677215529321075587171495533416017861252629803477238386919952784581691626180433198373457037510578543331326416483568396238433776511449346775449916810276163399316926047363450434774451674412837712468600841170966464835468607883701203342421878714419338320191756274463048827804913705159178665727208053564970126237029646594829527078481260880604911259494262741400791584118195145972826905818149650805819335951339349626176001445667353240994698118339144043254626665026369667218467914040738672372709674606425067707907775035982628256507627582541107447997812767754055299459879117080311399080822331204631723232168324574806503609430955981114961207384607071321740700169139708126344658742211244122383960643882099597346874649589089040248454930679678003290085916501231396350835131484091051705988655227907938619972422968145973684160818199154350434732353616516117121367923698568945298043889034501383108896672624960575366929408048929834814547924011628386380535209627980963819591491115477843516320457893348733241668378348061949407047081359736372305820814478875842312651077092799106538243484145265348086441771571970953913734522335588454640934701885536234472268913598103003059115846680134719700825927785605277179371693729605050727832966313304290476392175226811502938352199916606947121893411584733361488836840181513040234944999453236646530100934095780692711263120158897785021503399076395928748848187302381622857852907634515472540401190515959432183513412502261612096186034148225688379992745132698510882184031622652972619265608112339267251245355602655744586850627168906342428519867103512043512722472779843512409905072442207768909562392013084802754884671368172350654352119851392765879204013638619696264584146937800839532520150396422646438771944711688286348071836186971327256160915121462241835423131619167574210851180743175419424777448197716074811000309716316496711218308864710410324072450402826839225588822649998477874540348814377945226639834907818644532898154579345105387056951097236812061392631359823156961802204769535260153157574005443926850342838411702522398024411654065564053479700648723569418560157563883149268512092167594796549039207003301337619677400017097474303425594413406682669723912381474090500415887458904339967528746937453019367011534143016913253497490936853957465763057729885977275762547671286007672314869720787885119192461125621423049957241984489991987857390821623271232200535032235557241421660679325634395336551794597495088582970584342500383171833165864255014021314398016634842703817059213087115678114608772758487213964989880601066563065015150398249044664351939490133616691846084953782399248071741453344392464940221056024737332641030258649235162647711846758468504743319315036519526769436811674314186410490325319046638994150187110524800447941340288164136680408763355783230698424054802221269283734388197926823311390003931012138383078829576904778369631059527896225816298482237192231462411090857191632110370834824718311309706127626062523223956832819146284722382484780186842354134630958426436037372958230717890106553910640288962027920207946268578417552869949269666290558187875490750397225546384528654946672125694072654818842633821022630014575408384259534671200395132688950617218634811230220565885813736124509013982135712039907289049708987739961366975175939546443047175282682110809694393720297276877413107295053377861741989807500057063077366456600694475719768766990248940891126475174499862880970100449489292556755617611874249386807140700339230529364871027892818763894913125759243410251533821698934513018515398258593233238813681756249035524267934857193723540985060051358092942985908319015076002835590898480574002134522255723770769449263248288299008247722362748065380439545675888421677325839630248315735900156499171385261979210435142760805640615818255961565996351629340858864482737599721770306535240960587589274700646489771098183050326313965516202893650367751477615286185193364599018779847082308477656924127282403451305478939704632120586319442581179432573460131088607020148412667644611658414067755803737747187433432494826348540447919659555112649763075923884601802970529901645437465765189954707901511282954711127206693367232152124445060568191123685387371132646240693478189633176186171215346992372506747416315375155014681548248863031553072456764768569084191578984332646588300094221873256591253239748388793568618961475409885602308585244645008582681694911371914127247540774023495436798113486461790905103181173406817430212342859829646656849780232420613825260548843288971159827472098488884337589772777772923813473529797336389163510608928491245861016185419294273542288595530116318203160797278744446476019980211317564679741258185707433653175709201809399374664605396746285321734330407678142168842474075694992443656939591332262578247077682742984340006057286107521837492507601207293255630331768147413763999649995600914541436554619865205151780946858903933751842989595996000257486283106969402932528525882525441995352880830280062834522509904252041844716284952427465174692923444530858855927440714102671784345454047133010712991454511845980725128742700543113224009260473847383754186829383576206064760404586481631025527621588900964551370551965809303121700234304073443953613350252455094218680165964324914785812821854036408444217171810581278706420342437778903826397918724833856648747156807691042515811017983202745256582473624106360459457295750536547596265884404382819532252218908283621657340864348675516210147061427428227121985722708370974375780460534212544169332998351513882879745181535234515422442163472932188366173799537551247286789529333682954815007150012279003426811931312310869502526404547062441355358638794931093929291319309467854563225430565391531748679388320152827772189138546372252137265200494727445236858210200062243800636711127313790858153805236921862460458920167664862120535698505729051539348952220911449378931788558950923263653720047528484319867865099521711230208191730295554762046633890555298144268477293779658444969005538376167360910016390958405278335687678352277304038172566133577548255958019518163105078299694534389698787122152683253191007328078175028808341886173329342398204014157111232634084234017196639173352977822456134491877929548294623092115372068578932840468314451746493188933534967716706686825110756666057445170417758572473531529549144931940985121645457518819589862269288685219798736952335369165340105400981504976676137081168413069932854003752370913585205066734095575641389322284072500731027605022227417635813143830680954270833531015969440542086356307882315290208424524509033094679243674574507617147089030940409871085590023911955634797311906230651280764507560229977625978272870238396992004212086314793253420287728045182662461854511948331969375473569667398461264581382095766109037062544003553068910494909203278587417586011121167442923637888486145153897886042575537553543254354546818819807017748859983524338516804988783794044956855724352537709255841744992219762298446934066652821024926467616819160995179796732638210882362414420034460874054058270877511315734442452036328062083092913014752557128409709952382670050250902849773637995098585736111283515993063402834816806205701107718119895247782921261278493449733089811659732755378985053756661575816991820330723059330216058979963868883982514888597148583068725579039332088483520820751795844489320632932597246675715163636266413960275003296249619941502551346408269774379939568793024019301904456364283184822374292028638846848738323572294077571398721789778006962457871122557564580907594269893126821145363351398290723234079762530261042787531907828227978172007741052767001641227238755932801840496203738546785316401082639775214818586239990506014449011100834916394443508926546134366141867322312124790175715202674709389046455375919531384802524103524158461073244120470467688523169569127644510729650734658862922896754966351930427112954263794966126098830596453106928773110143330837560424849053425877187787487572778513324774863712670175177701134896742163975687275985369964183575009229116162397576016329582416120737627938675167789055355922384565574425371238144199518650396828969438616618077751472664096749450327765650733654479086150550699646121841722114079964887467899521044345840221633228280693302592177431054265418400917985678328584067469985223479557820567432458595199627755001088456344666559883835002945010582165464511396323217553729571081121960731426252201264526318717033413996985061890458179410775523047537669263024765821244679765964432508019289673912548668234738899524922216112751026463415166715191726092424688576951958795193367812147043870357908624496651963899740932409713240674437268163961229101600756881772032462546930394326527391588396014316049106835783474092950182827449759028910793066243943308944643655341973627553854443416051372684708200423938363845288015643047623432558104827103512939428666462817049793828397410678562559113412236853670338417846628815103926833259619402104693067878298491496247941138555028987969742554568838207415142975089005018443890971153407252840286752351706591127658004894554226340188661909010691327723444723776694842914934856342314224790930552224399624540757417023557718154159956906036198928667345416079117418077990748606877968598616940078525848400598253351658457075505690508426673664858795192010018363900598921479798239545077935905524954146709578579900411602448879459566207605860610684518422004746357122402609592554180748623531510274715202128772490772026364581891224766718857611453097946332678388589528791143595363811932754241751441714455323932096371214615337281196663548752558676757974286125060093541961661435046558158780607983507522105852253372266894782269861640869659545168080025724402271782449193987704330330457818851359527189909748147536462805479350879650777678425214904405779921650439519457858256193676145638515987247279851084405883791528181503161114575654688315996720771475800429155709057323228128131779427818897727685046990457400598374684598910654982973568931305887197144125356110015363299366396856931167418838114983288465765551057430167700868023028851240054982255384697716885080317601652216345129379442233476963319818211196691958074622094367439499445460095061319827046645680911859611326509045928453015530007197074707132305545276230793491336196996122971612680183096858043257643824684711386373921313502371801170300057210790829808910486878806163096482719335507830436758740276208990167847741163756354678060423557735454906605594216033705627917940620192134570518105881658720261326584643852417757538120516143325512757386891508455197001300822723006876460285522475510577449944975539209804631194540142594087671491005614504443592877061617011216162879177134523493314448278064847211462973839086699677105044328664269978977992631663371618715573959291492083122264181051147683643659361429333643708420084170438639881729973032322929464000074096240302698071534050374309985853828146172296526060393307008176577266295804131933865409327953574711110016127292163190544809146663268180118356299774025176228918218347495380293259813210674717493095825439283822712108124874476576941882740574246464244326296959338762042249823307185970323348490104030289703395724637515176706139123187810499764914824646477561223114992608431617113882240391229888672981681951148079579963921186847249139335602086422787676435670122915078872686354807671695665825570833305337874202787003721973165941422949222603390347654567201732562285044547302762164356953148986319344868059122580973833324992157946384776382794691609541500164335044192819416180092834321918055534862759037385676068345307350736429641397465235259515706914093021716968174961314606478200794399041172734743384066203828414069462104670596453207648263508060093509391566446303967764318707093740663689956564211090601553853836540739753848032761428156838343220569489853040864532431572610340691436315421961308804731390486087604303302402075349230177731842760440499116551473194071291307542886812294328122236756282215149202432155318751277491186410017050182898133411640566535533467352651186818955298107922317933395341757873644916158894308001643355989117866226075056396094612655741567918004910350321374135370023767872048664677188298267642115536711181404744951061304327978213842751939130042172337139713213927495722672986167682187457732790714745511521981412662668460774376477916601636815899635019122176937877858606108947064456944095801370673309235289645688570014653147807859634335255357569639754127928367397065426544859689714590034761578456569401641110875222984960829838615635402628871232801099297892481818587074056796376090101788318117328952149384390481282184158983844353505865765326984912249011659295094082691215959449916185034623129013204295361971485250108211760145077324337085265826687329231491531926935448920991922731771514235182386932630234249475929033978667892046906647163032669533009460043234232630484741160123553369989754400745228191621367521326634522875522459162171497198137476811429765611575598158870186451267933569831431686487721231301453305652245357872893577709463136740239795254133944772981541732917220292720059001124883569709956419555706077409035483464072270216778956894845041021079634801711282326699078682292644600928688806171295377834788235627134146474623500632868186248218822920586422589889351441143627736884115639239258722261119532846693028957161327346107574173733162904156689514315122857619024843832546763355033578536793375876369426007118690086279935983957557183856932651588540322768312704418533382728709836658864767164118448585253380303620992950418229840564261689321089806433129070888973629066880373853074958091717220638587826107407887864462069935549211476403758318113796728961149381695874306600203413363327511070487184263637974675413821993755652664064259529880191457570785573955418241477549983712966293997772387282099062636555473543940834274944225281994318233663212691024034078185316784170661813450677908599446922267197449388489527189355377599283989894500060136303789387911622273849105126456785103529287266359677812660233141732168052069744538766450918180922150007645382826050230174884638234114216681897906417127068907049329874669529768194489110147718846447364187428179476180714249640276466296289005147174529954455757258243423047841562013542511292171507142759511019009548949068588518332736001323119526616450650269485696907805759379900064015914973189209510686461795690922369422111671094211191002417744261235377480841112677250122098373106688942168164680984138475514994833366358961537577063908356490608949393874691093750520143413237390226434982895967304201992774417340427710279222373654329792835598445503193336786729350641494174495663325817382840495626867116235904562120189888229122906908354337511431925527753702694562033777437519234350398860859955843099112790548427660017563605753163661633636600375518399118599664365130901842058319857585466730990140888388134994369849861246796404069678698342690453179465138651463779042924985319471994157513469771706614899501914562084875353401073820665821350698187839222641313703185854559110305097154737100526961111654280415161234311567611264076833269351765797908954820039014145613824930851507055400430567686230911497900652984782517352674039328161729005527483595919327264953332317973868593363025810890998717166212296532351579326361439563943587157091829621239500468124620745793350813275073920025189958388495979474501655047000313741975027667803176309126111376369871341377575763661570203782636298660467554743122750370299887371273479501190595285553496709629725879381498659167230706414145876297892415683484352625088584178368863741676940441256321081636642361823502179355747577866383300584382278782760400324133908726421256020805768041615423206994131816659611983703976976303146252622577468134889116871439267604649437487534905003416951120900353754227525277193606653858735861914600592018139125129933199457338864775717021347135573851657348678463126687723918008937519751741970539388155203494406680924881612112926259149896475172791247353651361212295537196359323792945548033151649885386471859727163151651858652027661720148869839224459264849571002364180291077574346737323454506045221096237659926047920276509438599521175814938328185237695864459590358247342038742678113390450003969608566831317273610643514037035464088034782606802237608108765351570106695555909503542811271234189125666941567765555429163822913797315238309407409308691162195291617203593192553772611886495530828667809512335974544722335462929614474192203886409996665096431663058809767551702766631616352665846973914620135082483929678173446653268202631722100687751305819947158854579055254285440860839123594256101396115338824039586438567479032814194725216078105448156782403818484064237448045272870860043985136082457935113370855046693491073392884234593632006668265694401682944025549406129776459946382557384535197153962607171424127129328155900231260751464330413652461920495076119368773878553316734509503166531100176016353941452397139891341476795493376227453697945775446688002731132185100713297263299036505111098540494276071528008882227920674736166095007949916949544366131961575258234844668149094598050885759565758484461208593688746752118556326445499101060440120295467535052746437466693124690481426048822811849023526771879973800533053329525870957470975467912351772282016253855921952576722472275331416969544902416163707258863090869824418056937361598476718014261662896260412403457576199729414135036945456758245253754183847528150046296004691033731365678956434474022329961800640635266652519114315442340212367699143784613104249973084840843892386940471570219740295716598381974681531552523851298265867274970524112586871588558736851055751361092077773639740096650234969956058230944430762474769039281490805622184424240200431862736277057151662428477106642622880706424600642569002945756653873814022566242667058768261649602061877540704802905298067128812089629315277007412439270688156388193144298019949231415169569763208710838791861142739938672303135716293757428208481718130633412367279796526652558014103323627734509723826976980819860477539638470915076793079550961332059995288002841137390970445018733909085831720650269241877982710683972830523603866377046692974105701582958412563505608757854701064564456466219974331034620376160457759712943263972875500799964606208538839297193598948422820215800453852920804762231471667069656962327414207219131844862499944643444174727624542373685689170980803741718150246166728830430703078868836219768594882060413435765336391358057243741496397754245885708178745515717455280224637035064508003510944494273928812755368422994493077665806192986945147144959544082711487758704429839516195674252903817394485153054146927107743059161846455481518544171495101452858012968254365055858543964715116744226394007523372493801909718356179017982620701761224563579207326987351959064993552554482518314133061173386657350697682927099386652936879029615832705872939877752904731317866938024696151562588436794613924543827936072269724736220235169419261701836870492060143637202266578609023512717621397572547749338274069576323844725471936188548486391552586756946639675335472860005476753317974648244100357405270921536529836138004711908156461413504246579821973865592433088815037852891700185570381201967465455090947621735085988685899198331569131023608772959146100246453579663643140308763549685151945525493705616381441160908729570897747586056384271718190124420465898895266824752121328284337731852899552246367663441234000865283456279997545996777327215082358062095745107021258374973293283498734971798903847961419848134758280990878407117937409393469486205341156773205843523699968487910175190140281071899018508971595635115310982707022908651742663781386755136456380721036221121051304838367849756378930047410536462004792011331764992214623061882111131800112044927895884859514046203471163548321565923041351308390048707909586437059304595143334446417015618657121766423652081942324123865716747493241891709562146518971832191357845178700467666719377892230975526817559020750668529799116046218279604453040626543877995512708231472406044486628402755321752098265001632922817802565000442860162680059607869675969943203550440371801686027966454620321664611810705921460340517551485700173259359973206002428046113074405485213887904155695375152636458245747107605786372708675827535236919109325849796729979558082162122250342368237982071314420324204883692769755698889057491805505071958435476994906758895427575255454486487816873309955241894378059361986479725655249421916869004507482177394749051519119065885021356104081615255572742936100967262353398246932339591302433834374066716153213069729330802444604915000356410613289069897211248100338803772547247315871525190937385009547017855689732549770069171500219820535451320651139562296455907583445442477869349946765927604955819779057836981107292976365841710096130892186510630165543051445593851706957848962704485991028466474235944562764828838945445010422792529426873734430965890554521982518877463968878842375593048444965613220328733797568655360722797987919321498787237570421720653618638404974834563177597321299724382449095113863947346195621446684791379174864664005094794308462953871671361306978970843794097373470126817082018534236531728050035306372168407326275780607198384335780805889634857267295516060537888157686327950478696599365462975706282574904243628904082064216092504249655738068148267875245288352033323535449542539013956066731252079011934631544963690307924248540462064919476282288235239391375473968741389729825013055893333355843020768886634682054870426073678091564656891983693568552048781915573332242332813999262765616934220751754067157451500917944080852492841817273712101538592235235316078864503808787405350345665866887329094808008369488006139231696538226670325854622601494641934332434068404411628905566655208429743681136519706508458282678005252765878758649381632827031081529989262927802973199138939966846077815027668200760098196610752059015344226946162212093172812346241109424582215214778465785477604708171810636870322716838167352862048512693552462618854825606598916372355767941192962557251210151828680349548191251130867562321922189779107170191828424002502672177839238815658185221340959695395484974376974495177674240307194390555106322052540940850340420356152495087906055738569325811528210893242812269851990045231763943075825018690809061065569338214977558048361074018852245998278500751822798741238763144127303487818361745320611540819541327589558244605644126239932357932318086814268795379851168098564962289156982704850707177634533977400541719532193315459280821829818730462469436261820014115291938963645194020020284428719904865206539923361683888701685302298739925939141128577414779395290695630951617717610723094780515028925176088657162545719700195915000232732921377145048295701834817732628919400586494703148212258627570476952950170328692577139737519324995062571434601896041351747213814161963476684194681873350650055158505149309997352299555387960575256504756494550941034773306159107345293768647217842224907322345508208002849926824675891404022368096712810565400995232679510949582600681043598945095067356839762112063578377752209161377141713763783009930657029822587872586591526485729460960938528531197441253256841376185821070498721589441209191384717010210164241890087539530036389552100934290415645024010230997275005614608359301227714291887306814254189818316773118624320528830605488299437265564994722886618058108540836862468844317631711415136811778797965534487779643398418213305392286299069402550922092022833196079879667846898797729145510255898538053628682254159362046321849284846022544261602394860146951549442901458154887407790466345821132846403466576981752963124133804591514383103907929924376175896000133279542220090139940021235641648600814762994216427435241913505503146751612489218560198439840509309301163990079000723591149087116576317405526463596318956033211460694087128244490185376267290670541651842612235987056334986768388817053284009745593333149793003490652630569127227674971133832316545991627869022925951284820664478198410012798959572266077118587225605352548216281744351129981710651899353808618701040008638308462626667230477992777913559887780274860140866874574788179853964735205071873270308489415565854912886919713283924231743619143593394198004147615444627716394768312009329698884751072129530092414572578354766232561486131382680714847376490532197672923174636643070769238977992674089480445760393216199466222087373341034280485191589684276399844014616374116727842932060369594005898540906036456672384673257639395738752290440599087246170878988547174305346733804741594817291330684683456649910005540844774202134303439957444390886218864398751978865931604978613004799259960597764179026716661548694344819163799482695841152670137867620468557213287287576861320545607980140061030147215830573716989944363947993097442235509366215223165972685036455532409981123104976666355034061144646986440807947259471412937634085097117566766296499282508745521402559896139775965689632129400860295802577859523213482307026534792767244787298944389742934232470677332712527951272637425598860484046160619351981566790493510582476911052859002987687132043924926450300871593697227887252784082101857747998955617012399820852580503045122571266128081616052060657584442633321827158364852069463531409621401036800324226818252956822091861674826138587429240547498672702804340158104900407305622480118346879977165350114511773418516115152285249326593272490483176025028421223099341616051499945742759113829648321385518844252047631045143829831363396982895512989574145504349190220300038804441958462553844387154394768269040600930309989383779799267909571544998747407984693587638290344085500814191047545139813786886557898088388472432863484007347701154402948147159403264463895758731437079538178574782094317700425894797728025968012842178466328921948325095244601412517031961745775465179230367514292082740299776502774917826259614743393355989676849596607307528744821871347905313315620079687686568984166532961269205728693469553563069317186011794130021682628419500935315792659112541577353859693490101418240418481357270185072412460243466209148237982601453598795806911348196125272060926701928767423206088245597389103023440555121837725301757571151435788827115204346554468955170269366797267393320712890553256597121267407186204534999968579094367095313167038418144345709897796770234414620309951515830956710061974233597527679748346889132388856238469219211011287648664167786405622493071631213482029863730804727835752976017308024261330639879734778329501320653636563187949342539475658449665994843967324021507434306887510930894635848973767348568079480809509273062476449653701777143953073398465431555607572054834307814063446238057802340708176285722239905244736390141906592807814295632088169953613184414464452585706593734693603350141473756011961331269657649047955657469871680973075960748985598594152611661684043555689144785108047961579674064042860984432033074046722727856267805083797018005971759036350890841234977417210780505294072663717207028038596673014251899848132261059754518189680126189939128267023360737442350691342490756521249664139371762206244324321177542181935631118416672046005052490374651319228030385281542459594640810642135894751747702470259658148717912871223275992619591899926408728753827663335619486632471687420307232250362438451980376322937244862295958724239134735273601471437018923331836053764614394583157928022449012856790949397304515713451866986098088458270556057393072104738736919732897716558062376336134313388587238205996153837262909678528170160394333408000732417664296772002690246206405890664495571227776282608949411285423759475076929379974036578822646332042719038131746694267664223562213722809777932979415156181963540625199260471803634393473072409420600926077577534705042430089482706686698644739465478505201984201072073472889352234862093350118968142575559945746492450849090015672392191176611272541049189226981821433336988976648429747468762821852189710836586820431501674091141247070961224566832309993865973979890922786402803360851379374432735624015770725348907869729414449664024659543712432199315208611335327020576017865668308735740986067338947565400435336037347009069582455330448141651445612649583151965618338091258359572557619186213480244817334062078230796645313920846630878965939488292259434058249644356642283460769908144187047356654447824053624715318624064398020989671359108012407705615641495821951304150958774141121408833381529496652349782817676034520700707004161242132737002815050924717782304924980529324181614600560933164677559353466573104907202108216476985245870049188875549051204584686894513444508280847261547652208166557197293253851926014989481313125251283954884059982624618913568072124756361386191931362208167631990435508025184469848507318018645787362605282438988870577801070333522020201409446514874894375271642099896606555131193415810317611044162681051297183083286867267835174110078835985581208857198215145609660635772633494433606621017284035365775040846903912411652549121484127113448905262873296025222978142567117660434246542914242694428241139323787858822243478137220424307988536474849999525908706575220358822948097766563517840182385955798811003273990208807331086877293719418359387972972275593185401267610615863323600016243550781449202547845205029539998674471495555974209855002237215339351632373710843727544332054622471197741891310791215433481328660375697214081377681344147344132834859056822929233199856352699533218530741789672933645287193341932511901071640290857936590394989122576432743549244135439893471502966180245236011157406705077445377374318029369195165528906805508623222574146598182291439920520705572184720740937951073458904599451427519522203104152003081124086334990938577500209093929710512835319958821419281506479464740796245381170090051135942449621493113478454527220475570954192719796636059905801977447522723645298775852387408784819512637990521962730816427344650364717849735263845979232561179435093718242604962070967935805265405844680852019388447412811262898671967340845449469509117165084053246515864267687065237032655447645315676434145328403297662330363450459338619495491437100371074971696158359505031197947791109577579320759984703428689746487724874991110851769709881967894433482860582357850346666861941566784780084677549702726049442462842766091522252450817043910342171278827456287991765193668655147569342261021015080920813645123195276029394405491374243701158171948986275139279594935733749357344680208106918351508492722505916707039174357426326938042620634165714709311856154652983806094804534082434522118165330991370591913668979832316930229584727653603277000477009165899441205475443478818066632420695586328991407350401447614650978079901764390450521643319595301333655580732811452569283624064944664784723137448657611116695329522399281871476911017704442306066398469498431262802559065583237133505416106821705299153365547688236596185749659356160711774690210102698053239335298371841183634693720686499529791368689150667316206500963726948601302845511898443022612665190407260511069615718946155669965826000437485034188705554910757783637706430651171973576721845190753605308374534744013038359035070972004168521372112507073614748075051994051517672344817716179414658187110944376003178638691602897732924762126025511763641198092746869290722513905762891063348558053562778939008362458658484914275822107279913560575799143415005510212322911559361343713258316745964722729795572594565197830871870262258814142124992896174377553879139453088464632731796566751521452475877711872210489851111057024447197678472915497872932592018537560214541672573709197933515842564678015992220930691606507093976920935325418620955898956514854457305974350247356640571046588118947143114830718174103419829226357000877109214354278075088232508680067850619108323021365791001029640235315723994148040360264523779246389935101664616964311108020110872494256966272616924450104178319793532970451305886638318559535526318036867213855446010439357211917225407901060006164358090299107224493305433680848686584877673195667779646680164383793121389624208664456973843652818075931701075840033291887482663699855114324057249563806266956770495015930325406567896598186334929602653064110253118976311249556597690286817658364955147421531536941018641616003221964500303072084012897941567973687030423616130936538768247409152951408901090527955029987310219250252892884023941611285052367368885752390452348154293796994613862833676697028488622948367965025168343736397294125050081581517617623790273640294779686900228788578220797834045417710221970833029116088707656627740463113414510850994707251386631011198804352906663180649233232037709639196686843111162925884114706845682476959991378272142231848665268700504970241328390490702322600689368702515067407768975660431899884332110334298517898029226576189122287919883379233059900525053023358620476311261582687180471488064288068989106160115855609768653510444385253689183761782801370505880109157296488737828432393055423892033519807869963556247181907845651155161657746766551106770175119370305589998199086893363745744966725519794189860068970659880842839933851850537009511838478175448578096761020671746402639614242840990093817247594682835983270950756561384894732759113051489296286795726561008148731297756500950107827836552157599321406401614806720321309893157719727781852046438969271664033320139518501309282451901273639084953951868320046332246578973103718782682274871236722253273030978093641204437323869180042878608429878312093933535523299823278834057914013360958224227976239867328354558896204029462636188120125996166245892308227369441634096272381432054279314524818580130430018394691524137026564962401416782839157948247404164185599457793257778820310604040841002957569740655387631099280994654849013620462730582914824350164688881235662490528932822778732836058458242511681141439233044524796178236806716680987243892543906225530275773917599344263522750162997098555029578345189366399872425318658460485711378664900898843481386542030737275911522786132932163561152083467862327712004107687649383829338051668510607476890150219682248790656139961448298789386887788959525185142017560549900946196234823518677374591840215125823357266046257473546091391338232573522985829603248321192084977603417372821481478982127422462327833537306039958099731893328723796309713012465477813616370218313705903176147224221221669740686849094273916168720706751267605853718189207329643375812320282619764952385209281991877403702702964508100986746066864627899012701810085939999082480082157049746708917024106792084625417790129129024405929784477692295887420210557143856461215699459783209843347765458786971863685094786253198518364736887193980214573985953722920674072684746293804809697739968958867197170208525969208844060972080122884088798953609746598112132889643159883970535586606485479767800898908401002371816503262721810765301913507700562339585098161997675120559113249906660534898877300461866085992145231970000226091809774331684715327930714077501194509683795185269265961834406380541759263713986231098842841577162768667090199843758390942779645107925790051384026417965136115640920306268516802882951589556709374069356732838403547546988546518664010214672802088848015239376914511945165730108435315232465449394931950796382670470146324086831428484772452221847862157325332488384297948678230569614277812389953785443275126771870746392880765064427150030571309825957963340126103327406671318441077822038416549290882051545519102788587363517277356539314820223690446536508046644377334168508672870421437547643622070233836435749164936235258039995182116829169916921788082567045551727806670664274951912253231450522458152700529985301770950017278283263312630413490840730888662210818822655291380548298793446966074112364675677964370435853812065381082636468374751004874220776527320812633184469189558253570108792948941677172157292982650021821545400796941095609767023157390902145770744939793653759765598945577921660562008604580319139789337739906857815955505801637314717949833786835042128376448286407645340921407702633635885183567831798421266364267742698464115574279914937110293578688923361477065644431235320088193501538838592824545946814641248537600537644989594009270049701548789877369288651961615313818081811608772808784153689771246113656512151842421039960355385294741965469778913653698480658506681476115549160309514577650413680136655129303133321028372654781340045295367888323605651778646494557621129020279237468313841475147576073759866662978557863686399706528649845578796620921531025708134002145357726571085476330393412512482219669888066068246281604370372320361928189292736046413408123075773325318887589986245917965941185503285512494694609103421951651806413390185873090179799890215395669079891091158059846836747582219114700330402454700951125810663423857824386384616546549035550857175977659585060085130838600292417061581698328062968034350233127960260891658858415223491096336193364155184972958622561188858272849646537116271480619235905454097358321230768738464393758966744572886980325892086020330720691733579539998510541127613208732144890323956735703537237429459094650672525903053866505974665214272190429163301676683233045777874581690668958358576087988289104116362290954644682768041028242331342884098995970857205973663377926128127419124778744614416260201573968331335148532615828320426394742726249145086628041251268926465605366434135724725587952941983499465645511532403435956471275850341262949468189323947769495071745308373908430548514189413474105514560913958282033902574082899911215994766721969823522730783597035062626719136773663530739519666087963103734004137048379031004984381632095495519058337241838504491274674234358352456417382766829358308800275633531489516397662372822058682693309894713840862083340872527353397353398993982165959749039039867883583123702113785037909592267434506056392981541490260996849915643904710386973104620621041904200831793588928002929643611699106516313615588706650170884323252721137471642624240557233378488059379041298766879072444703880253685405781366229698425700545979932109049717012562499455221664883654602922829169242690245347412104046217843041265055602417746490710525913384940517140366316210648316835680800331629877856086755044885894243715931584910009493072157925129580920698875798797803708948689693294922225734770534703253871939325175685131310833515132147379149085520214524542277672066562238895929730012081483098989881853712381493803834373026361553369825390891922172283144807760999603403038900637636653775302421051421160530939695659183278818464334584601180908188749622871907247963632088063325268637877556594213262219680941600851647006952009360559132376975160960996259354772048859988103512551942848806436472066772228240217712749315490276454604545062065910509999959726391050063978766256667665305489718882550090330055135009555339469506615069401654303353316223808390696769819652728924805127201543283707081618344847418972895684975217545359304327091957800245273152874560684352223252343716730785702541620453041801609517640960853535787715884092381497242608033625363747867776588004089539305717544761763759962199134083195667728532890866818631903720950525464669919979725567248681843779094240116436843940083647131069588346342867777132302304717645932230877750145192278348272636806496643859808257812975573417735864707569527695793488551362204722602479138597685693156936642242977623513327692711987568271661597692728337190738895233354118433536373603713839876864983897754613073835344519752169479614462554506535878432089412117567853674483037616336896708750524479039958493867666099310323969825706646327409484927925798724255973066202178243993829332402995858285416900937866414843780128126120069763032651367633758432860264541584369346555819365266451044614572742941785920843629279591264836340906843065909749761352702875728747144790014463811005601246449334990637595076438390765137514835131910663258627777912323262149364033491688447680338288210407244408915935647791882346906900755157116631052256033990310729618791836253326413901255968267888685935396955252909584090500242930523820374280716028545883565839043312222829666087586044853793994018783574862114638137345644490933161645417399795772336089389351800502851732309304270947481274387825544603994579694433493509593820884348115398746266236991278354642622141099490573779638360825164689151411340697328020390570252489551088776034323251419882344180785363192267320458986269427384464527278464009633419804484060446044795655594879831880303822218850079961227954689821811181674984412424743372601667859353118572482035941553032340213393124764650265700323616307104428094029482875821975221620805655741187343312690276416849915057055769741015255784578950472409204153293623874948993354435982326369734053410570638770909653518392811790887869743821423238508450154627141151860274969902620126054757437843346364382706192705812154687150427162466397700520329217600485007859061487839175801350842685567702597713848342205879382652505678446548325001193584336279883204578137986981288795997759622243878641224048772548435310379516768901325313223079145764741490527422096088531804718759013843766014460572499263649283573303946955827258211291058061880219519753248911557656282886961996289881823283368213626561070872029761729095563445723645753007500046122928537601665719044534522571337235912565794853871889581091787505649958843079389851114883207031621857399080988041982324723790511186567983803865789544329402333014967750880400664129314696313362434975326121207863477633113289886556603772811981644699462344440136852831035649629076681160880704448442424458926839961327907950644213711833337038388224328496453692735459628859819260528922759366685317260061267543978757527259994937341619552926978507349582016333391791052691993779093500004498888417108524873274658808276714950971393583147493095777406618167210644979474500033157472422924351111551583114863722944561146202803263647233851363311193271581990314836078291139707553548111870194980028179718447534225654517429635723261278237088220180275858559307984251116946233266576306478884905627428140775211407380774071521944618688280766122975840766038010098826481620570220904312190630052475504028359758109560448498603142543188266572200638085304389611176129081318888612914398560621567137446592892832994468154405902399887930196636560251487119476011574451118615832902629970680045710859489436769493650867453640579742164476462354694488407978526555474656608072054558725669095876250692867010942905567090707147559276792840000740859732035572802460314283595119580529496604944658578029374370154777622783737130277674428724740250305198408804807991006638564179662466397709164798284198620315788303543618351699793875432001336189541596132743647400210792059370677273710050791225044614286169249486362437386369762097731051959558768350700738705185774600280182634528047193097474484066572483832181625015433544392108508960006300813266852330069358161204905289451700409570140433220230574630011874231270542486723022083520998532790914123803685614294405484367796882236300284445877513149918783905874369924594921101572759022307319588839042164291553951497668908395451587305405705405366670889665709325255438889058063325325363529199919078246586993370083737345804528887086066988910543502139628220386417353427267506568585181619336728833642572620359444806008772256947945036810617216253655825177158309566041246181441503752132095998441492142982533272675976300708092989129037143478224282185326108005915701933059942279185992815808342915705685009784435174334798630666320671593858987005697613107607947244658872379337397539645706473379622572289116536614444974898429252902151469018488200503933390376890235045411973342920951862250616017056511260412564804820910028763079079203992456129615905111117415215219434632282262491614932460568179188117631541698174945257509577152675178201766692346619737349955332354249167097568722706175117204303433142779786297370817891093698672920240776951375512798750401240559320420920883816786213311056023436917148617905984240131135806981070263371199337954001830633957773511743518625946352550354258641928603633643604816895463639673563547041625428470978234148727831236696950161472767549079194092978107180155876518655279024598552375324069800805690604702580083791359765749481186466249833608845355303778772197868684309869148847788193631281812061830553526843543059575906912035943426729805373172851224061225586619493898575993047428134592335896790055509100087513823702674957573111665635544739739151483041078230257652565137612125407161104636001863541411012222389062429279191948595215991983822254992817574103008600259429352460727302611568424007553596395044697731311233109626150261359025365572332677198169076790354881934049059123427738844564492957753968018528507093798853670592099255611404718991539378424931968910389088619307817403480516406857453545891689273682383541212778566344287427184638024588391964520756393273733105765677625028595794467209211936978650446940621588611271822384538382339640617717990000679149766459825987992378876478566584000342609098063748800177866574394391076329427581676800289588575576463035733244705134872147113361581701692918363370126466703702913531775148772198851714243967113124963076497179983423662830224097738092201130072399403941538388911929408299055486530388716495370311304301218576481756665322536492637182162665803068233038422627043194651842635375122368361490199632375924155572672245151353487057599276535361301794052923300649786043174141010224308612420556619888524470894170202956635934231635227708534696634986427778883460332781918230685800750395602416494622664979366764751038897886127175355000545159583752928363458818120198367998044547314299979631897888194830389163088163476379267433654859388780577108582482641385537448074641326128392117448964083442359118801574249682198782381829447623461004286690847458362329005591147034609761648070104687985665095050553385903613960204453153770628633542587435366900393839582452496847327060455932073858076204266784023782700884505855264802135395822003136032856515474870413933697665296991317129610120419146346762941209528809669419502011093368022973518814577239427538744609760846433633178312839020274042383437449361899888884365804400825613243852043524250179633748989331897318898743129118158210998519654608226339762923140191987353643589157231049720382879949357242628407455490161543622658248557158170891964612655906222217668887069435498101025376426822590630040369771073785628062961077200223151398396718094834035668022337902126398130701321504309980361741187106291134921363680389162182647838436328648224716427239396303641530758786903471316816806423464057310135552073427266469619276802755978861574822104470387671096117134783367205057172904362022312489596727801313473691538163317845621580640833045374840841629855043963088269373439722793557147228609854739912619091103720431552387867534473912385180947859469793895712609076423489850088331935283190747352658074088450388397371099844506048584202774701054313139461483414161061710808494711397519883954346748077760970870493946959137452664928652024871891875561732002017362136905667562815803488828093488666465848293982807519774227530782234257724808990035912665925042535005856496270209107281740522844177446371470532613246012620414182491939604216433803607858010551125368628354712738212711295849715363049665553389292349666884745386574763943025490882864126320807757951633104554755952158878488487184644783442214433687455339765781977655632380618054899980458007340121061060047472395566675013310854942925189943858747124530982473809676054445182114166315355076883851811710958157069464746474667635599761092576860671040504796809855001723635797103781141863442733502187317672367024629249997548742776814280332349103230560524572816874034089863531083147303829269520317140289571687145194405675175536665528720752039230499809761074907532700182335803615741275171028237947139749588707527285842325572073525029601031848073436790561294001927096836658404717936189715604262512146447804440462786833978230581667766044988190160397756988971014423611220744331831748768049915473892004235043852188974585567485319085204259164232749096121368926780766885242524853353896526228436527669387921980848465754612134382461354995196524373436935794000898049941370298882884248148333968203164201238088800468144195265468509254241159726883996089941493536048775111066350564035626047486783791418805912097497772683420335107038349140256076139508023453662225279322890733220387024262507536448578916519070531723503786885573200847648738358537320998252936393308529999933848276040668368004277200254981644043779419155967109686788324739553263693707098754976819214619561116186975773486884850743119421048728463110296415133326742654062323233886543072743426501507923813846823455845200758771545415258858800168256435535179188044664703496908775469178498080332598850308353388572952134129772345747241600071211365354902233173508072509470802149491845149888162659699326597175119710611841228080550202776230264910015516790198450132705918833154244851924906793918500696516380510560556864464127566188434554073874435741577160061857335154184165811521909965101412191232656922453574692585871985765917069209317831817055806982138664247791149691262885939085485311499004863246325910429588362648360542764729570884389602027811919387134649677091511062671650731924629707403426681122679228945949669197512770078165113425200577451370014870575330150547349085852271436281889054203529050349210605551838955902485739807639929502604647320889952157116532692309911974494708312808199370375575808296356334630524224779916442787753007872208705708244833628649852051651211181907387845663560843191573635722123023601718783551371278350208711219843997456139760868332632300880625960275862857443012647176720899823415803260440599379883079237007236894087715822158811177569792397967475174053961180970012745046961030286376649824148198486671317364664025280935115882603157821702358614271276880287688276633966241654987512524464427624246525399112412031773620511474698025958850408582183103927077670968066091374996603065751035708889556331997857289878907043911740985052229714315491343564206063558485068386533899508372112084615893520383189668189592167435234703998465379730284912296398394962251797448467392503441521212327956616244899354698768281826118622176500538473730306408114925527536964644011263918937290946711982074359324733091035657180137471853736968524779184293649723396071274600916564789477415878106843338118593540064245512177291156188314970605766442446634947011774016937465087409199908778035046377995637761976727844231672217642276646014994369024417695739871565500107332731240709864649929721756579802543187129101021229415072330086478073800620445263796500181293801947697115492527007028281569623148545927877832181547299233096057003299078050873279129660175525999082815935121338956192954454095758305938511606089649947137364263171848232880639642121116579893490555047659604037661828229329195000130323914661083559076131068304228085452601348836704834126054324087710400876034001539258412452428585044061910089058318161321267615097189742888866596112003531321148591128627312164425597556489604977818525301615895866547997539250610140132120058200945971300987166379846018564437235656073131317613034276132595453424895574411802671777012446398453170009122821752682878710171978591539368438697276523734800642315135136026959651785678843326878146203973617062890950614051764981920727284003797806330201780181046210118122826781878998435171804084617992023686438961857459324236626215029306901245479734780474333105018926895242507387843902465752035335492801637950456159990849699379506407511761917335453659477413840423850107571036370329168604128100378409137477166137354648212811069084043078718180927996326326065640010505161814916424143990629182106638498898193190108588884284667295209413426839180583912770587088600711222017060109737855280359146717668520195369919110508971871239731576560559443368768102182611476077671343352329516365196084515328034905729847803145596434508641638436740374977504175830385587582905003753615932043237941359576743517617801943809191595247479503806150095840838376142053588142048293015388838289720842768795981820535103977738730537599293893106657067544601925020013294838673820623637407505801815509854565691712358888100122843945945991168223127402762165166520491080617620488072687124761748718634122023721965699730209007827007082053633924639714008602431380245037489026199554529427239087227181713471681382265698361029782767491139883309469473025586733435254589213782077197254955700377468704637974277657388418685865368531752147099706062488966035822655335825722513847247064804062443424515743880961118391164842935158204394019509010155811526498381868700272223958488382361179135891410047600728648767556704640780048306702513364411240504767212254600135816597458984147794339475194484499510696360948981037250072457155505720242890143948894725969865794644082336694573314690523164776444505506687249775619364862036745394142061414102367236028085350286971099479723201463997744370950012273947323718547661312658936438363991096592334307640603706689377967896449535043807106708393927539648892853417344496423385435236241145017427616816139406991253631490615101857253950886876891012522706037798195835938171145033851317256603780674629671268288442520035402665901220306170432452974131924178252258151628142710272108861045860340403120917093537479596598210388604786575831238069189931992288263525016886825219433971858159506527821995918416630601696223653114242569006254993711808597032574863707918639796796718665543595705425421386345859269713731975975787163540818627344400663336147826669314103543725323223096960630759892647252559365241106076544292701902576652391863030436817000359931135622584014172075298014969982127580435302398696895964194921407292747914390673707551177370854322206202397269741285078151935139920989592262683230621445182954936300388870216406325943550766925340305446686664777438582748788475573179769511233932513922748909164998026983360565451005865528200275868768800439889752668428904403579380792863631517810778669668890069472313319855145160722942337163965801448261094234813177626402289060919034255507886997400753944150695537234316038989955478759005312343590055778582844666878509789962519550980488017790352886671856551313813342253591731544086679288314788243329554768802271458693563506574331039235794133307297848093443512317746986671393021437403703007369755931390864023326907246305887461440796389187959697801149360529401003116922214930655423576282619495615488635294819291714849319230153716246982839637720780232422403031413300881515556686752095113362942465613293860513620254739689018937964776694613570429440341321789399394273778512066743760062480224186921974077728503498047296437412975723289084557673839833622972356045586583728188949133548721587281961903424152574400998942970182090865219876836712111695867507080704340234280908895128952328626369498859956944848969177983932232524236337455528666696937496024821971192005481905012418799444168605973062216188752197344704211866038561800306545734227549694614940244580051277489430461697796684358386077784266694002428078252181560240685212685337149089663671668741751690588479787568264070662052268789229120410721194551150116541573661998583629683372168831402339214821688556988163446852259868602524862228707284384562360093252076113395956955226460903002646744973830621590794146243825300894995233539781273469358930644092662670407933128481684777855000322692280275522877449727937361321140916836507244899873759791102798716985785049870435045671806965513703440405822309497856336273057496968799048607111420559681943402651345807466961939106167972497838177016399232942648369486287027969254142129807840546910565258020211489703229763439009624492332754142117967430490913523839866457313298825677847426679742741639112884290622196713776526313776115368007728137358334097055911543651983886857586099685254040008882235265918060960047977418886404463683271120724820867352695128105660808817303828735350981281254250375464925932410794738965158830879782229661263069853195039747645777899682369863091043340219448595001731152646506166641794076397046182704730179411687674956567638729817375181285844371633226884364640931665459598908436837216173643797550103893078725385537109313825080691256154184220380502581732132717463255322644713829360524140518101844219627533394493077669515408814420593588783824942628208903522944775217529456544473050671038186881000199530861818358429196082734657824165296705090008250886816664140809787038209591785504183029991524634514939916743115771747901987019238150534971122729884142205563942086226587441801970907906733353691533541369985803251669338913944111852008295468803139662960097960627809984646589445108045974793680411870968970274991916678129453633945929245274313936674548323489296956796980494946411608318671581998927668668592273279646293279929834514457181516905085970746248026273345215923377610012237526576908499009234116673251402779274980038886463995076623042684636905854529957502964048640338974865929547790110871295302222971658282766401076212218487764265021575449164972403444085080329260657576980422630656849066029825399189313503755296412441321663075293339220469850133904903289451455405142085508927456224572518605170914260073266630652704262205663877176187588395391755557391310118347056316477861520875350385625121314210278972943105066820987656630391774273039501205864454294449352652977617214462047617261950812687936747635297314858381325978551370925650772381853351468144856910730837346217780299371840020416943020806686389785242485456115123457148671640118753626302905533328975940946428841887194694457981427672524860515202978700872759373585214218054465084476859518762259213823219839683020945733483725067976125085298868174130676919986051619139959252452284787581250127754697417349822643432203380637379393952084944889180508419649616282523495265515412024165583964536543878778008989162936224017198299095190657273206671497379427287538121498175385759246778458849557236468868561887177182876668083278865210107946211250500283992474857525821910556021817144625905650402716720674568402703400658835298694627011558963479886149353354609595421676976792549683244974198342999589398863491067655433927923238690140916845081617099916048666532153217752560871208128973076576375333780447844756400081484742076471298484942260311473997436135613072957158382947356237675145729095378056506932021485319090739326238514029946680251196096221769068250878887898850282690504089244407339499045344801519410014880073641584499697637138409599014675244401217380300216220597096928644976863005950949243714057946211374187889265578391444108488692537552989781733716600265108710982891949590241388746847707101360549108206372979971939166507953436121462122628860321355727236137481893478989656853425480464655329557554912180735593611703512006013201048878630058957412505941342560625166501574471222909608621268096337145610341468469151498403457770730132440261565781366327308800601387673836856957157239433293960861017775446638174288921408515456865895023557508664766882923732470148062368448333499500348412071499713301937437382866667584273883874608602616916979609553511674999249143444996751888010778259082757032499235286102088190704096387001064572542392632835446681316819477103869667793337964130280620283899008405435247670264228656926627210617115718052250178827306884955673886337992221711431179582728065274794499528434368248827802095840316804206539725445624015435952384753633409700830508664869033819906936378671250546424326575129987914364363728046239698595751879362867571229317118091372014542372808914763789280148836439009589033829833706007628912965313211345019452637093472131545650201616369758565022254609735106582906744100591541113900912756445674756458591832717624751576368886761600504337287830156602073555742542426854906256297346387102989725133347688090649143171671584498957204541875373944073742057597900911708763509840146722906282586380492580100056020455408934751605946877616174956968837435264025724507995392768673965511293499805005248398586114640343595077973711815276084309036187588930018738974183790693573438229608756648912508223886817099571253613187897765311909126160816572779601215186571497974375672958943189223609350394216807499933180199636012907150850137087739352035802475669943835443135229768667006208169146330434853638592327248840928135014386114714618458929783849659806746437338533329010286305525861773449388262853583872885285527875313414478899942650204602978895691182080035770108715005885983701017788888397766418477497550301032544272678015315885889827385366916801812953362632899031206656502940360300472630187221162903810772855616159726701070072976138548413153894684964801887941676676238674463879488895336357755276362688073900243060176519027731679628996759269619527545677149402906505599648235232481718092089223713486501440613138828261760568799022808230383595696295017276530721875082870758470670934665932968105983186238749207810731720746711114643790288889702431162291876079991168448339941099539808037833461487158338913311756995431851021595815417770729876269823631256686054391871162767963791698784800288656746480804706208640273171566985251255533028477461678704960639166879806187940280592977912675793709313708188177919961794262871392160336898543035201377469540243171329043289478087859197793440753057614688275697806330268130272967483253223404952072281787554279042375174153278384864854139547831348270551844318305529363123332926314848614147132146333596382255750314493549500569300412126038771587075568398538915392812582547104190026656775425351634597693682648034370365986355064972220454994055189024060768659694283112791880947666521644889316566848137024294735928013559947529231611066277052515122052572872831000202931082687320378787547215488703331686837863194437428625945870317022967261535531777881708275186830789078124542678911831780144274230451951025918857347247697859338121127922680217581895119220435277481292147350321296591178686122853068157656983259531742814842948345633401068746904180310398353191949808510804821046572300774798948391059143040459933389230690587585859103400298153434754342268529636526383096935141063269913060925063123587058100325838072356219433729968689982213209192061968885448577340990561776133630453397520683195305341887351109114668769375016029400993573018387628103824428122173458020792930288188493579543781230759432233965692309101647268832418196805557064935917821499604410007721873601126794010573298708573493387515535852886773534239308817158942370821645478787339874000599547924267170064374327867171580337536945574634084667652560916066191974042209263905901220951493144587448426880634474890688606967859878922664998548072973512286000817150139709119219530873995449283096939318244706153975593705030386759434240709073566337571856569846272114697373268993309128349635797378712140904263052859249793032644863576543461306331247819050470382807525423095143230072961561474655689929296176469330906502649176422399940777775258841346692859283518528175451163575393026161173379052151073607853949330357649771639027514374703492627414347989970486194959344852911485313126768887075757668004531827798141769857824249317732252892286297235882486595774782004741987134510310650786171393092042451337576800377365844551594655874944168767561626666819784909440312817104402808152769700159738602892150561092065297654466147406481563234827521949319197064235515043959646146763963533439091432133402842916249716124305655927306833691466104457397358451562361323714639122606965982283572457433964459596321801218500310484763857326408545848607825992781842733485135464810282286747056312307887791331566829951579409284641521374199218787084660575881868963905689929044987912583135522363691254695961930662108106421520096064127360160245839024513815439148439363831945441536903484870456352146272732682626471414794454656126015193884296177533633962859177758835374797602858485470661214272119370173259732107252888374883430326410883131681379759180705479377597482473147753815197196914260975539616371118572406654525523726332562413716687248707349217813650652148993295777877756848211015684752668989334148132172716756678892535043170738091594276399763134317762882536759592302011866784525299831794414427087902646076707371239663679739947718379202282154134969495367102612714326560605191892046225182463786219399673922728893560285426810951205916781678365379678525670946021892183441069889984789411518955921525164965619876840907271281878400895859626103311677109606951674186984236821058900448499544288965661117169290678312852532967912301890273840706608309651616199916209172049331733707069833584924122130010535234752486611489201840593888205898896043887080354082366640085494495979768193140730884526731919362466192902365914398511711055161293965630849555668415409342009267894673532690047081306943921677024584486731560097756144064293983243729738079214137243415328239184278827012360752304318923895339044970235395943770368318701558362185304273051256726231952697558087595896862802416791360663302720554174919411955845459185766072495597853383461950339941188603563487987442657641843529031263966910024773869847363409219934991659699298267046792189155817878078037900368419688623773718266024414042872295352377635101007670987734415873758379422667665075113106800921519544824626097955057706916033083798099570475608535873666525178625301572763346649525327330329017440845774994866290893616657949583381474074617909462625648317554920143534449453404249854121504161582683987437016801777527071467428619613372755180367019988233753465842424306519896471564407753711290185954103000414962954434102650136115962293652430690709662921754287745181055607679514519673804595032401527260159523665104606068600674657211862121783410151986642682322794444798069588460054033656635184328887981803017127751606799586501096054707648623493035758556399827376436814144084750033620844169194502931503737953614297199965179973846949178433966848686644048215217455340514703375893129219655123427580896279957193260397878436117346082350422715942288792482482049053818766511630679730173027230061162077645194149608338407933070009884019348479383179060381173078539625266224318006245652004117707617879260392254035797778867170251002443612992457857249409983368613355826766348948769874512254121041306493295905063130288548519857453340044952072463070184929818513431793857686478201057498126194589290014910354834037579029698313494628098881795859263467511917810914006539703809999707294924693708279683979931031686244868787391337647414958353806525647558296958684455290481423981289508158329468467795510747068430546505727363026604989857113230547964465625515435774179415864906703647537843142536310226747730985779467473899371708448608658767873614576013218573743070656613201036625528140255270095910238214112152372405076603730623517105543575725113961113297540809814476382047165261253376708659337239656976989310271845372928218896396552734754144657903387968644133664875456781043625829023947505344174869011041449863957555120207821886781034680479596982317910248766677759735246857860162966313766522275784920671663128308184145335152525720526347208430836664690513004923692248504162088448725872596224021809323984952960881107449156832575598525206629755968861155845907754714211696357060953321889871195053739923554141186607392797835536967984269682148416579343277667291281497183925804104698359747191350805520436102381605328342232422162124186668968052968946209048051976417138774351951075072190614998365172665359551847882916061934757908966756924206451876039893313490516765335965291919105346372845225230841869026872783191191914814233372870972086175331023228179360629714950043025500120133991373547455783944058041136849247444144174263354735461437143951603326633029201723820015398963131622830176267009337775839834285850557196347006972045077149210682475917851477799872440692214130069120739938560747775114224766638060264706676844857221234819250263606950290612703028672825878700162612673103029581352591468675437142291499653075497092594057902783819892170514142480526043321447476131282484330623921366668425237409453716490994949379172477620742218056771088344934703842507325114265217911639105311999794470104548981519685040133735685344061300002619456315131603188667536950608875445857409906029909890620511178074034796551179853729985971530968292081899257148925636446700572662360069210466991627286274494999463226032986198000541922192513979987007629843075129123223606190192326315293816217471007413828400139009505843427072812374007955365109828097506472834220877769239112212432707070838583954897756679193764451571621597661455728741479762676485299445399379036468766283489400558018818094532957999408301538095779511508859011526836751906219142266717497917460276534089656788974633063086573281794754990748087868216809484217200609760946474770943689608715462352733218413018945041051209831224976397625660191192634722623709595381404638137711468465126480987295441498586046679701060075621477761619854878718310785608977874645657751809095336554555969857873547400251206535667702254126574665407145998051918140167316091044189848280925486320960603476363121791827468545468870651580228838832981294153645792307449731345802366239050308986200248853140903173664248325891806344078221838811762022573791492052223899608093647031777083700887195383974335691744387950378534063274325699931110090532519181838705004595907183303132560355713569993374709894261180252890452994751953120368923694349312908908795921034385567978360734485412081450037201917319947466448411635127704835785602643125900899324692321372568313865429346033823656272609894671447595037509563255851059804176849320121218506317162162081793774154072887401499522922685640184796161054060106519105389654640409204556594425077846669668093696783451306522727631000305373368335176497339369348151837583525837314409977128154922085403975792956230810015720380758817034910769690991419424533116966194665120599099581713153465496690548494247267912324183115084451888422922100120508937597657551989651511248977286617364164132473442235955622978366733198056811556418823297156028569610797147470889477362306346995807353069229017617581164813269051604148655130877763329400189181107693000411952181075778471263747031999308332022574520666567652325925901547563100655597293821965325153225967546473694607468683916816264313504527443317306260075662505711196639641364749394252221156494737856983958061056471659218406324643102832224140737236072456777762613373582281760940242797666169244622854267993834673877055613748853497499560434367807139686178437256259742621652953991614344435262107599043300077728486713863693695276597653656739211515640993431541604528549205313742442825735373209503762584589926611783686627277097011732997647922967396559274514688497947119377144236555662161444003584573284124627114204019724125199903617445316509128652450290826451553821136754389254599111914351831339655709554842929206539401961699250497133403153271939354278983285721091933734092732414303110820504967041945114513474587024771436846587954537955979876709971369682780338063970873831368086906723267068589432225810957146573240505946084190911663167061139141297461460819920654529236000714250899557529191052744261176554571365588681373137577444787714071407544628004843841984136356492350550802761451692444316425742376288000550763537607342062827404595696971067939291580917651449348030326836685183426436354827571826882627330506546966140718637636669494189490115025987753748126377956870810431274056704090377383829513761625253845252076896524240603711258683522013455515957397113542984968661424757461689717089221939841279395468815430528859426065637665599921790242397210020124252480242211911990971112874415864147897572768162536559647853487764235800653048559233713091599688274679854004879431065626870616318966237599532791358435550314776565632037346162381980681037262767879831974276260819197298585033499953584373090461729016400718677074488664387224002710824795571012970646588680309831523285138887964862658757628210041090976805331779666644877384245658613079657062981616255564664176498396249746035901073655842315636593067646568360103714880349325182393723850435150215517416403859274682547756477513379893473817759635250021942590426874498146294526128870318558164905028676272158751882397677998870572643588634345014171284497246733126321747995309318524211903957409076814395244509003782349722331359938607878308737311411549844821464369711833885732542160026052269669773261450489486712152607336840462627486077929269177330076717671944554282193279444872855852294351334339235304461006575512895040215225700247731341403350036769173597517037931914928710741109615990167600845708420297527293338679124515319510842770224723293551851181215016024509535345272700335847332739764901802803294679061572461161046040897614302173084685189512127075285430610442497525520432857977715725309945489856954816430173677490757820674344857784694936412068679993498511694810362056716762716882136656888349860871706169402620423940324693251990899575224372287987165234647234186378220870459738663426610749051142782502801681381757294911026743908697138308673116925232261954138282392653101060832237292944716319242580783806118430147673213439705206499843583522265214318857639526888826492308396314446797656368729448233232223479674439116229131595924798499151726892036650511388295927350292525760497994580653909762349942523799351678989479823823564924969559137244968197616034631004802988924837385465777456063355283968780521959918034109373940327712823024053982295481431063937823196380714845517424617656337600061010559470448411874391734994809382580044294706512902730178620555019497400347755293454698766523757432348899209165672420692579417477430074450935883120640357966714623891016215520208200351146397203828491619438144279786657377924890191099149930812853985071407062531201942980773357999986261889969003605212090999611135700283018780341402591216843870999469219110673605625364424626758897775449562904145131143719853102497993740111897936781370898523903246203127380225619748653385261772624253066192591520141189529729338333186870769429253766718621142373506107226975618565055658476876285095993837474797665376706053254760384161430697710884502686130385262150204301984069784268712825097889868908492635474951693749571218052575677656897277250467984616620240108073088910310826214494623088662751943311075362450413770190767234643094290630640397654351268866592938541339559428202682007629359677840253281550986911610567289939635661853885629949559740844883138554295081046942125298059925087610780379544371367654978528436758430059900809315035044699835963618261025327225327296039881198745616580346642577919306019256430144511880208474229401844945601830743993404639265140332445776063303937173379926749123160837456976118917323658200338875207727149660375796846573244657227472762477209986802229762111865970553222013401932497833564149621133571407413604894665599675838182414857598216141809245426899259445076842757033579088645691715784185276531995911371482982321667098996326315652806927820553435318312333813688150812779480475492254256243279006773667132845684398584291332587836860202801233608048313799368205881392342269030845940233248940989945041848747960210310025368784407227394183601042777867497370916540744667253675878989948527906487451198786126625020587457347250125560161388734259506277267737700082874832718110448043271689477581130129403180542609537905244619887560199341356008748880073421850196458883999437632506644895981265483105358427707492883783357862740121007251485020609442296783665102768073542967285508191023486594887870959644985227313811000214235836383834861343816915206842604159002751220793855805976146604143846368279278128236182343342373892777182729243494288388094759619779532205980093794138361844206582412680596909495761041727411593270632318337407729359716564574777461872520890010980314541467824428056913881253306524516635903162141775730901418841378393621277081546183126983736032361952253981034126753432945124572078890933991209399699020149514403692536281833978376293329854620461010226798845387938032667168324812320592417245135555658551488978134545462295709418430895537146029748008575021351406172986341354604038820090349990501728920208272242323482134117745782901664807900149483574809622365557168527006100510539811670512765907312023383401593604608635356397818018663135423938646404388073307818888578056230190476343252784292589844257129583346143969224516286782078783321875937388674663531656934291501573253223344500030984682418365501076066093946056346192210680895523481392533944484083045552973480633565549146010258814811405697368263888438972294471995438691486652909987835498405945352011103723287772276200735796594452678046278739342535253365649611489677708316183230246821998953061448969363394207459637349004766028587449113375529184014511965060254094895737855014778277653451181557130274258758250143163001548698287618075099751994250389939566809627704249903967511402983245450240381444673505194284567309412247383406239947934343412810411371203040700566090653466040547307326953538724770703770858107316400105138361941150125462039439656170759799113274522856701071363919223784432282380360351268725528875682611767074777917439532995715254032894808094204917723617882366442666709887512637836039493764116518399340909991431908921193107967670383471786214614223516816186644299364487777105994257861854610263357616845577555630124889079072200381926259289214418263514654140099969503710454005142039039611532125305578364872464508893356792038253404781091889394994075374887170300584911984289830499551422186393586935944960849235736040916564514075334329048367016837341020882030925615695010899266317711027117580930683163257858804125668360728336046386080997749985147358270968526022861557177561145392637647032276609501187696934128329429196916914155372655400622550002330420894374876533230182697752535254916906292687072414828897809548098397383225707371781270203133685846794882964749629806090985621618995035850364755294368391219823573808292557087078895512598989537571240804458645797161152276514516918225654386052328832596048826181549949955106429501682915288805571742573597827553319232617861255506034862830478600950489972931314835282638625060780753945997539313609445329103557266722689451703465467350154407907737494604828813812452109800002653045530990166959046772784603518269376499906094245552612884439341182756878709458182853527658353023493526753526889333480348983617882526698655346619738372186669952337060759895844241421402885048572504311956276025316414935411150364931767412570176406843994093761566789633076064815338463529630708370152603538745481706895061252334967673728688979697675370337304992951440473169518510052392210133517008704065516685555036404140024809201972574335849832056602766443068952441937208417122370666319145607701802915848090761332290371845490772829780043299985557015851321430993315315759001859634119159706741850502722826174235058570769891902014822062866630011968597675844451310812214924635185106917505885286601991027967202770392818362155487414900544482926679356993030489119686367665739382185528150475086876286263789248630605030732588283679938125151690368451954296307916206102916371978216675291837076586910371561244337021378995593764500388813616105295428098501964382829185188601416242764295047804475363372859992330261667440189010006232907213712585950180129297722936731884866772184457298251156874562318813709466028078198263951711347475674630277408540543595597790729031178326769618275498493545912801110010604151089547787427638165656809526968257426922232641794799345439813727992996260566392779499040865349268357032579288874375154307131348516965213915566827869381282145347746586249882161246811663751199418062066432839284505717650388167854030293550023688940640565134196661577129969205100070369800367605341474142108985464563144332282166187742106735020626471738665264985612638426760245343533667431445980093431805015990555145590967654318827050265110982867344779240451986799821930799430838371409448210428514719388948886225992649958339990305350568352742693579927459338582168377205680541936010360053788030274598045933998717439214189473861948096873796453091158783355063141276171153455112196399777233779036361506186302082162752882490044597146525991209445415260656267078720070489796302415779255331872809352076033853508691120176226518677277706425106292492768458934148251396754151536586305435378189341034974410401792573665234862629485146958093518529519033337880211174777351673205250472030135613243890319109365944933029814146237328006157120491473509058676099133004916198801826572940168468303833881627442090756436421794777129408462953792133186336048107993141190087060564993868509034223077792800732045470890978782283802456503901775175236499844813208941687991467542017227944747895168372845269114970637046495228511758198532443685468747760163124827495206890527961169857419418140597552292599691057094386481530381512478396420407628215271404341211626709281842534325335552664413940538659342151040703315732071676177575009054724475063552044053019841477099720097268110191332733790795831981755342204485909105456569032594202002372856640632841620683413558454440962646619568862280089830076834966709770839203462940668104694293138012665596269633551048573430006468412320392349421676388721966848114966184683716118676544000093918331414516939083277708370602018737929904308746734176908502129871087736527745974687416770341333181609663510298087202259387208256628766696484450043074675342206277036528780759667603198379858117332646537893150448489841493273272604363634057228495825140589053614512181427107299712746614768119348817522654252187595253652728025750080757242268185700623851180481127712959947933156246238744634370079245932807612752115278360814950028186312361375866649801684409434802163998654561218942285415371257567270334073434076543012802938748852492096388010151108479970994219150756416346505420034655504298757787572060894779521688329042928537505633130243132657851905294025448720104831306610697177027411864064129496880747774000787596741528900637088319004516079608291432641540588718518266632724283759233003907859074100508454142390236415312816201223939051701452977099916251343366543089172904807835442436107645809802609795134057575226861343618693525191001297285343334301371921048950389706876423506494417922703965562109514097540997644986559667350749678534213814259167018338370078098550376235378635748296675981066240762282273337449386942429134175456196577281178964593053974201550358032159936206998340668768391029257524438539341842223406387359769648199846080246408216356657732316802998782949577305722789675301620932263887369014901024719664791393184733901977113585739202488881539356126060951603889837204551400773613280820703700118979757895987653968407288969647836237156123860061841482340951672388882769499448462047987630794409042754859303235761754476373915924539181971204876781654664512540345823269347289564287288864969016501115540359931968570393072447890301841188929932904798169530794899004498298584745922122685530826554848757944297675142343018389703071792186164550733252813159079929940357018981528957883752353693052258071720875192169036515444684752576768630387743928541490765478762408859144949054767907010879767022229472708986148755238471117552821945783121104396314549230149418616929897136085260008637970296415603760930446406327040947499726957920532705255590063546971247819122596831387376694146623078789118051503992418724281860086641460787897699351158934194005104012766964078662793325251526532956399733627160253919829004915405566619552104218789072878569770922465038110750635128734033214071489955204148202357411396606211323880384110960979735607227149309195717628669315189030789845888336705606178061423657368078649706528035260463960330468041939987819413833771981807055145189515385767292260006281100001414243185549572351372463923215401268598476144839325666555215066353151677638519042268593336997810849462637847770561537952067754008932757398186342516329478472657234766202460586079216728390726786132675315906349590977832666040164351748788166855469338796978062200213366235599478466015874381980306796071765896440105397616622756330643446932357759693878630840459375376860936632806304795351138488088923319974407449296820976686092183542753423102741068838516047923596934659782537406380840886134667063161855050296865093774535917310027522156894627306476841788170011868574383297213311743319949919484967808515729429873380516623714051175624159963831058676832061784174091967336055551931960681170259010442924086073325431200413658404949956064273174130014541879552378334643035382293823102140943088787728041033219211706918697707755867198024462132581304425517794770391248234079793895074575801587820115975761483734566545740607566506693333850445306412819755932654251311493405592326878730419861195489825598414806685432981483162867361759851031172087854945974717356942420201246507320973065170352765262559698074280493006742255740946144371435757281503250105105908815726827239830841457188769407275578605888651452408176798646458340222168169988028620881609314704793390568653689464005952427931378131873961712292249377780893072826631480537123815198912421407082521838963341676634557013512070738972587305670790023911773097133282417481929607832407804272816788313742394560638543548192533946059954262037192253848703558208437343121497945235548516987882506626959081826183097715200275395297894676042255233893779304475105615610172804380968420238975326592841637309208203320389346518399351834498127384092728312643936040667550287090022212687877707923860410231693722679679646330826989351380713265396018619239293780659266610610129812754286555079347740262643099005107368458435826022954309890555695205035822075022871945769593265194080161830509162889139803411976174069170333694967410599629427901547327371505157946595462268574314708080440024063527819712278103704462947782194087448191316567757046060867885813723662047001827745574087429025889885262960145335718972200688043768883681435945076463117518311317760254681408955669797427329880857053995585445795332924256723851154423657675490818742380644971817186598488658651277606094470644611866843453821675213101984279642341250597388589287445489570497470415750578502780693240151354397752531322543314604579402144514691474986463844926803255921691369603753684700032839286222633183051505273470678515171940997700708195045268239198887864070343988805045288216133686027650562704277505545197465367985481305756741654757381031033815650088602196018681429705172328863892909579750331590305443609869524940692194917154280056033424690039631617677754887879585373329243059242338742015439321317093125153192230242985478239419925441329851072473423180509622638513209105159885981582077506034296121204664211942782344074499517235203128498045444465302461698934558393506240915038982502563861092545860152294942683821356683340343600436262394264681924685952943038851201469714827982318027923635447843011413270819494287823528854829934347082134958135625725025399381451179251309872566053965523662449554359262908505076001313945587644104762319923323622295947924802322767845016843692962914337842454746510251883516633943597803271898790110212089557579104912372563959520160167219685091990478270532555321475790932508536943550115120449056944480528694408082941835743432182374370254102266806256077031637772067538874826296104308885623603972842891175525616330875507343733337216188844924571936556765480424897961696019316602559267313936037831566507904083038038339645621268177827953682748906534144601868560562359693736360377920160888924197729062415792089339331452293224282915765024046982548942895425941682561225357916482124300306887355703307891533240163302059508380839139554830702364336440982478122175176134100469833038580056352259905187382947008366583173486128242310192567950278368591649915834131001004914590426264457297518790237625593996035115236188432150131299044774881788964254873889400974615160492212733566049519328039302176542228028156548718586860474769655177390687803663416306875393066413132186614136165868767478292624306081411198538125153144871881672184937563880043685760505607691405647910857961949670952480050387857061972471335999593971935093389646725957675041674127689102572685477392894548560224856870387625628668976161523605360395701836355529693779287760358258597333229914703219413659481318772882390309625027461348264018068100075516505008156313692498556640369018934539535868939289477608973613464113039182304267253830043226711206704848164582116294066434438442828992373715907816426979491300872976891150895421074857530694613510787946554410104194713050691691512724323156691213466595202024174982680530948723313300640448937875808026370659019874580900749111828643359198863741529178173401842803893161181298065536343922326080483264961453172226290033796860899798052169285812408793574087983843508088864981709642823223470421251486065681106540600290620975827150479763981339539967292209946672881620798350324711787606909061623628882691304297908826288862765833883496853624707709405113796813456372142424799090456325195636510541454374839780572849940973451843890092650921133448996401185352346216205030347589784652656513832324579642256020007629779493516282251331061088360886944270317065389793202692938431055972221811544937160797043344160811943636092703694896370077961155464377297750012161129208695556563814507485074811562565539465309296908711975926264007623319402333511665266436530857972997529500518651947705133218767827093107459169929194422853895565100737787420415615434084607707985862255903926397818492610460238445344757375750921623680564619688788208368342111031588633917713129163894741324598113289567625829464604065228386996599617882954187679179508507306753508012365037689048305817941578729970518942639764664451528959293098795662719701819766969516474437310797201970095972082591008064556841588505347927422231463066517394232564686666221214353420242773048822253741746391732339745804979058319218577127899055853809538451674716094278650234728397059817651580749245568950143382740757855439150800919262978173569452667449008660766980260471556995804832918837028285898429429581757243284723001238349662723877715885605398026840479309673557467273570053230927745447915246876872411269535064600004474365544421678741996507596732913846461349313213471759456355148364955483617523329939638194565834169745063513704368351507869044002992816289680111631831277208908151129869612385259135023503890346015125193853837391560541266228444506488518553705164413130876669389828803072566327835711298600494999619851437007208857685359158513936448694863873454631424304297789595315227996119459142437165710085434002308196086682749678492919688006337529091484770218251841849088021730295905442178399057110257925153272206470973673484399574391919954417243912415101510030792375653920224322964475274470602962115043732139617104341381796514030021445478618090361907973983514622812746831422549079196256527627204033279225953197261331513752018278663957094821494214371193239375709540726997786068589446433445248771827511583489564111936766416217976215516603472141874175376724256525504657428138217987620220847302369087985399012406227515620316071308604432762705951827613638226963396918786527131373375314538315539925793307053155529929065532498041652670872909679051736277054824495880542219344190448620396753339381746364308646316055061391029640625070429707513656367371450218426193510416978048120060264856779241133258885184425991913566949534571146370533133602073098834926169088423819791265549683494550102024255590864583217236327943406349516250079689186245093321009404652222850457006855874754286969063546515186231187914669193311909287018572989368480674403149885992387376684917869743827652202205483131291665104940371431817502661310790082901827147578035015522833012263466518126377091264508111517703103893057462267552163788673569174332654844117340809774873152234046031662713843120257629039011851131582213800356829592754347680514426491159614446722257461015127705789850592869762360590235672869889987573447601288854448016003169071153721606033049199784095193923847935105771314136193305678529942655169013414347371739695493053231254891499364026640426125148877173196870331580821308208467431318906102554012555506625101725220197308249455510862328682159632374003555041081540542377469157384789052712461376980549555114148074271219894000392114133472355678768018685348399185385495110483030207111776730956877806734984350222580680942353422228657855770562113362018166857237419773585270301531612566842318828610983181227220870279072593284136205415746605632567706113288043424523039066879924978858605620350853710217132941594935802600141985858267135122139053215752906844309431188492650177535848348249245238791081114594883135941945947881375086473713932878095091423660962311367065780180190435895423667094885965500537749384288638765998382186613157548129034396539584839245977661914443560180620194709261216487988690312167460060263679970602871061629677835070710916732542596432792718781806121834587066788743354216751427098943119802300988143636930347603634998550066988413922756494096940499768517626696256622638884622391805853991044992413220132037774486919040048277786870882841940589832702172746429638039101473139053306445710329914456203152377560598490592202838045190301534044576460354615875482934058560469592288882757928554541472352110276405295771950411638585798889293597772322487095264983875473248898199828209010889595438556028494616012134153641017965313945933259970082888763326195194587954274779801953671993972199911299859974684747787937410971393827924772115163044524587758995135161747122271383910666110408221301553724070862238925833530800649740275864694558760469574268109168862687786968565471135247482725517684994901127926110950183370540531693520457074636991932176005866339422188594974520262998784641557886740804229233475407999531312999490926271148900649488003436242732080172274265556354525635901580702453211352976122246094916534770820548844332861913485574899955451370683563335933685741720310392688170746046756879877769465569859103064323505290319444142728224881059081408656962367131839209649875804898917113740717303566157470401384711340695720665375547846500794592002845181910184107190743488843621228513022959284190066251167680742903457705008673323893799302674151102859110693274431895286828447557040367364502144965202974063169084612768444903937967487208223869506477139506877131034933645471311925971823268624158385868518519397490371912463964078682913295951710683999646990925056528327709575542743464871609015042929493019920003924148847057742804909078840478365558270750829635539786358888877413711564490450059594066115873686536453375135056489209049175647734562361581824882374898460731786230534802973751376427022178700411079839135508271965691430407596350996418847934987494555262921362731607726283578071761499588428352946397454377523073555149883350129996839703709637832736182731805931621400641866977328758541204620465504422304202077101397697523193742621934016144912405007188347447453016726504436187242529849048877504874790399678683769724806269644077099978694282235504349087316350336335946141024790352506708504261538587505479448566604227884973200896642619931195206835444004376720412839098045968249385655358665157668196749654165169648720057132980314394381262971408560806806939751798565479264024999333523734544273970170401160423481465705251835627775456958112976962595173346800387704635322099425849281355241843552926820532839357586639992895008427779052271106006037257256584445342254449746637369995153520455141987092049628737905444520428728854195405452509552124248113227926489011848584680038398448551201335460459391988980037262247171274901699773662016947769609297292450286989330692844929951159333197353059415522998662603275083734406584931716184493604748360696789654314484161511977281768894295190904868324825004815947413949693435817779339277976594916533696907769405791419753635715546965504479117065215895772693248606403617014627463710741521445019857147091239102151131747751511727455570251676219422248469587416983024080493738121195285082606263833807437342878222222594798741848806981597215075295129450252165064379929246191624816818749714040840270329674028147762361781419545654433016415049964551828890659440805217520458231258116812077958208688042400253380978213676085827682012447626026104688164962992641185119099111897870012382965947473685308083838740360902763090856218874822075448274662381126880373028485878758412847351832856376104409746852382048719984236724951087708738456727675700291921295011045581560764460364432430455553333057763979296383800890977421352923754629302696986461554104795648869740461003798184359938865799116307973425222415286522809592195441613804295490282599404795037445563232616281480756931733112364583754729214176814850680855453069142991326313933417399976948059529942546228859016651668451299765058330528742698656395347594642436167746386042687395415502588064780123753809233934044613992466632522431409542478752581010311483024379705902712968617795639999997455754791341253399750817613121917501946968280926082583524277919338290793761372756076348503280776896696946945273330646933767489554468677922547310789702806065800104232602849289480435556371304799446487983514439498935472532998522142360676526030456166957471586487517902424105687043786773005411432793071398393909029946670430614040185724015192833000622396405181174832478476122490357358027652239876753126511455555998077837690827698259841963227091879236164932813136150842355480426829199963803974183925063063828118348695542464805118959782455508496350837365008471972376193130173207129175839372699766121893446239138591721562252724081579280548965386176014410122994930728668439434488246276644697291436727814379832449575275004655624928147207611211761004637807794327976104836465708404970641583550497801944456295666713763241582063231532436924223881788184958484206536486892859873371701213323123177789778695098877496883001614846128395868607392621603382415598727925368352647848347704171791219879748442918587679680618190212639120648074167633696228645835920011752510474755938804080515354649727522551156046121733088981237614548286446971197361996430519936177938187935538949295438637725699526423505671418575976889354730543506925163789031873816354930108348255514838818075043531252495821200101510315035559647637177477223126088022091463771346545731320043357835006623135416190701781882934462510470938681659057847746902732833782903826039630607151145484217802204391440084740728684227209857336854599772480931774763311988283357740005727562987047155245393769774013092361814093340832048171345810216468616941453650416048136244683964617013452358692511648761740584445026274138363764135022668366344388608356213305495427807893485278688917783266022285036285530987019084611339698122096937069177686092929005809526015020734130922060257536438565213660902626976915422963871619709395820908996215710359280004266646936082234677867074420173842569244895984141164022289062310416247270977582796101630686362028602482719953365720778785738857734498951341514538925343537457179446459690983194094910747944637558062269648978142529010170023154890638544986986487958057041612345931863510600411333076000994067369080183356888367079252470469100577892285943996116371611820042787139993636109637497207381797917394191683756714928961883059561773438792581321749679451928478136318144764155763880862856761478395530051393140919528855062478073967087235906938552226155771879934173822705318810638851520644091348602908539214337978536264005503451593919869950973943647582382672040993037915291993889308960337031839442491786871558200456347556031882846657913254614636455245341301214794404513427103113207645140157053576233883263913284616835482365203815750933050845602277979321286486385159145247373958898259908368990699358777697445955636045465876352932461152510506093387810260319680875314360967623551474149942412915923235887299044331824757196200563489977098492307701962250403364004932589636746218468405698409092712720522089350709775635191282582909894331452628979351004274441759208550855025502848652895936397281439174010877059483981644079890537559288242273517135099465945054022861228682323593090546900650429654304745730305311693730893402965640333886566619790859037046044625358735212988037313321815320844780101410638791715475723235675744429394009846970905004104071827406360498435152050710219105689231781640281002275243335414469830662203095459586333257636107215161771858309304496140149214004560875255154746159172635116668216152259384118103967601640406416446565201399642558150627894290338723732462166077158232842525230275341348398008907719036094288020127837229124741319757152036162452119236320773622144543142751136821943968302164473145791845076746917087954421449944746732912129094201252051087500607606306466666155128870961114902419861682222342360496485301336025240739771530800426717161477159367776214311686397377751874460385477874073201134094386770798081335862978392214494519507447403468722860309891917657098088739959928745165682101344223924616320110669391095297884446737394812090994456237139403325123169433172099579654197055574343533936429762001477937745246125561884767350652340275778178681676725454441174284830380489197265281695433443824668546430171817059788138295955425145744616446910716212989196379381801165544496747700422899518195241392283477556445852312048106382112973139013077556724073162196977218204433964572713976210460157133135370403120844707234507743124719662383180482649782658090308502611691185356141689077609312515033902326757988627686973646511284642354489835267040209981656069620470292469755947927681271767926318454054086163535412882455449505079213452925233026435911340834334178453120721100753817979081170949229857926185126383131023437206512671517670873238874796014142716095388645842326916376628136187162908536714043833734484653747516314368490275381073978026232100714829196289912560931520894199242202231748397672806429225544289081558589816929579646283279441249170379278793967759866436564662391416642884071432244800425559187570832502501420062469158182135021454499649641789492253929317982469319690866746284069878978006605532234912328811256569344933293383997355673390300447805284019873525119296146453531678810244209679592166906697432947435555495315170055949717437440827255357847242933944314002137271186653161980095600461890861587249678614200380527663649621396027174730706033835510550409675231846461000995372042525185709995083408463396776544782324580219344715943880299777707324608973461137239148266282933993936326588195967620684190465176548930814610012562485610387150216111804400679784951508279716145672585036211623461732513798889916247268988620740414498351063791114693153603510465267071580500273582556760946688261659714289195588552175834613621184303330515896670913704469686170764602273274587906226823590375460877654709444534530561854505802267125163615902080243495668004042365863360769587475349882825690005778263052119964352117763200976377168682256050347130269766456411050879646788646374167795308722719161395246684126266106629470182982032179959443365461954510270383068179416079317803523574450976981858493155594396928269631431701587660894174477290163699150496086460978728488369198365433469577115695720091698261931108970928684128900464640256406512340267350265265845407531498395221757978711089437875286029376155124946372370116370913893401896921228430534283635710242280203554947593977157269445812073042565608257828222304421868034396279840055554267840346476654063320258695914804224539515545328745710130269002873985943104495782743272681134712916066150627763478185736104002998022238302954370789105934156463894096973356592237827436033742650906518547339011676293260766253740474032925327983230161133595919869348716051356126108391934491133108440549895920478152376587708656106757249673575336747912419463680671711125629654757678144308732869766161451894625873718490336565899953867808248977239703745971912826994777378483981465181345434118905045681935444552400233430208247433226329050586872738396696847914511264734934077825034805019713395609516636412956445015519725739249490909876476389367099420839657731356980898707756891122747198958078606296787655393422356041390671447092522852262318522034224150517735694709574277359861589722921523108925062388090262787446276219670792651955728138890573541754037307659433245337458043037271639589000787811211382671106275640834198801724121836407018419577690351175044427560367973061758670549399131702830626681760880333746007796698762822245959726253716485143354717564239857780947216491163349707926878205143686186547124536695298891778647094011183445893325246896207855106857431052152836442234010991134125704183006251244455534072715384389814413558913539300569917369130204129313449111085967625059551867455717918853464586352358463327140285767852963888051319848842344976544001035032042699037861849136133494029765866436134724395793139532371513542043200319497581783852039943979976073366250272541204315062359817679027449206032445008663481869303418430824529481426260598154318360993094842553257236107457117821762514305630099542021985288849830514624029410202609207571982973337967019450640985730492890779126547165437292475662622033040198131712952154271548449441368909102774910190135390040444551834784332416726398491660846937668481986096546859959453137036056833257231272157166183952177268212609361213655722755425935577345270397005485906482445117506196983047922327159311964554006078038608303735126048300258333502254992293064570618843833833727901766427028364868848431424095506533325497012282818066767985869011949037756994562501055609966799602683664429185498268901300957484024012601755252862252140742330168253202219482538789201552955109264198747207972800809071866437291406675125473220313515689943922369711624438986690862814077187325660919140577750424419645406783794422820859708760141664050974039467121945479871711802274824575349819024210093978217788577836854853413112193677428995862579759244968887050230329470736634338746157145266923718736225563573958163535058494430992087525203470322552143903680187703744086162637806808525305753146182227581986125379675560388372280339358737273198427127695748502789138312620037872760250854958840475430552934778072184202215322875534469869794154618942190903346254995442371442581267824934333661973243659246274780287697307576654156926238940476572672376081715715877402585330895822772284798023161172470930469252614198706898077597229746255900069594266196941980868584209671029866324482855416764008860602322329253825043503003149409911913473363442237636499872374783044960542439747653683022164472105262291502494367987138577873498556487577572067306235829007966963069445900728685531163432477261340010805760159150953124264749844984477329690704746176003479688913877398965890675365426762535312896043811341844848325122585098001629958411136354728855010291293768098650720884339158049020162592756987458782370970381591600471600400085177907684819084945744653203170099627055828640850822955052804358257792114665803518323822000458073984468305333798256894016727006782931776359526026554848815626641849424111951641129009243627026966628949258598194565276319213934099126105653494493273269827830047506987769257424083096124106733412757614508761044589666621456592683820435948668036253050223200039063878345314348220565231688058974922749044235775014138451912311900702170583203146084109309412660911132958735433251036576701157745599880243635885784398533776043023172782877501907600443669997229043932939922816770590982515552946293589041908650285995395662669740208676022122148524307334522126174401838733374425507753821106603631859001626047844181757533620215333467735574225196695533431571100873833107997579394980089823987051252246149733843743660351537214917043775002633877158997590619307582227667570260504651340293619334820404730136152397001709664355662141071816316695001774547869626027327306419625174069339403459526839721052481843536016332465970876844293778244693259448932993502571600182270554531810959622287396560149075896827342457385087744269536616160459078529062443241427649638295469771666287444671341231456070604506197747260887729374581611124357353609415900349835825165919185714028110811646175208175345343435792083163869922504849771541167753017792432649690079174990953215745946171576758100021928335059158076683508477454967897202455194799649335220326974076316787654346792367975013312724753909271812072180555136567155146295302319106814041420579409531136700471561729738508008299951567362286930231588490836273062445278941749703673397793485174425184101431481363182876646419783764503420562999426797976664855687407137948916291174181276739241353139663462814828156363234694676063273673443217317818002868963654150602437822994438364418293316055890063552589037492272811395866458163633988126327685207725066168843826266598510504590500850101924558261017223328537642262394251426566466065259754575451428756849747760894607974078401281325625147175565662562661170602147020138632179649493075525899155749275780690990294181798967659084937517804737202039833311786461336147545788777346699767821481597213868410212210564615111586152916964460752269783397552805873531929138245235736233221640378656988333097731437983517005577590632178024109331678434491468930804372132786039016146551522153520197378671366995692225910260039346211894475832246659108183201878013170755501398099628424543893079388678171082480121921825073806987029862833074602242434956198720207944363531830437645229848698524971123856795767857018916405733867583184277184613080081584268857502868417944813643447968563004146292328613538436646275280432159180897512700965078560673507425132349371750048499321456379749613202470787515108327139763520319670842815281412690244141927584962976828343998362918008766836937864277830070274816195813924940303154759987921969643321848703949519377207290673796015415314061460727186261336772251236189425018334278951070824137136644320364010845843754813758382158750463093364237044940439101626283966391072717422374425535782365736668473060591414536854822535717145338293527060356142968531325702410261241466088289798062272511287843029464914362253724597747629536503206252314988900600694149708407662579174343891736940055231192414051679579367362401266797410212433737194662987440912319995232182773844375002800556986586436229706774251556692663896564646381375146074921935714948423386840197679776072272926143066786943962532949504500441987200047288419234743589013126971851691937104996093957559828400310334427609445932139263508038900066513454467189762514172675212822770965622954213751116787400663469946841689049009410163283990771004755476163055425850481470234096768563940334038618970918022628633738760677971120324258118503410824408798455475669688723637953604000635661051047771544606183870064867522265741605317976188779004533707033511889664202343033199625654368244508298417288623108763212840363254803660573832121553677316200920840937607391615740704725317004610697940139910856284101697709635636934523945953923012313637310839623988873064270278355021779551947713377261171127382789852182924729232338404594964026024536143050765857781125782512891559017590533712211606641493827735872793786025525219136004575070844386964593799165653184580210435741202148439930204547323613295209546128293483273039442312355097477480197139342435610264416017187893773649420877993180087927859055130724476302259083428302176569966661583777704824799129210434802262358208732204728598968249725594919450729260805618669794950856952596838408839892541838623541709137024463314245043294748591520884357606513885775458091879742784758857265339134446619165150790387825533438130888136987512559517764061401984547047106284462146484618269167552017613130118082230350948104785397221037576239383372628301343901050065346203314298275979883246928234511165557074182179997658965459742404082991868319203433925448381678517679342433440495525051350699863437173032935606434395705925156894049308926213453055345926588721621049779676690649493547547412840875963135932844644565741176443775624789299703843150037734239482185983462776087321080410650037078067896750019879850971335355742273471288522257583527388182258552140135076919387474527799980855381970314770091546897382259567393856421093229293314459499299204965451890531844136920932844334358151610549840481907409351901054687405771344186976892055951958952866210798604685274581556591706269835215599499204740118855908644101365004461817340752706414373585107427485318041213693211174671039317872670223141037416018504972893025335039032616691740410599817911153055125104279473278665765424994242287198984241698952385492426941188136915813881904172876866046129612031257609143870353471697430400368586328513727710706540399600723025951969018224718031404295753562255933299432871893574068248396523887827620903670757368227415846295485086049151997864717074059671842382990861149429606722774854520173220367410530137282100265904613276111808638642422809028080932140874539877373896811150116211163585994861800539277368660313160360642407115434505761697828251212962141878648724350839985531343996812152307367771852932236658869819193328261230405732754462492976147034659029540501472193933435584892709874575321186355896421438899611050236332780038851266315920949212674832788757738603851101008108794803735194805181858905903645852573556759728499640771454995304270666873369094465750707581217496575319903932200344428194981830385018603669684811191386164192285446374273046505864053116697961101385126524935021310602157675672299571647878593353199490942224338812233721388188078045367662107051948155370249709345839539593680832033324523339232378999346338013105152816392702472629678485502595911676505863282915259333296917153157339121845442067759202579975999624737064030671192113924833912698211717845684261536104363057549100582840687648278713768633466112728497460797995394792702546313083662821538258658298579516228978250664054384448503311289880954473728993659548608710379334183848777967791068849142826407965600167234620427559351411923063415002445461763742271143873751430646422667651529966418136535489701377087908074557336918616394716293071350763029030541189684227865972105662057888349969774857892032740699016376368843429296775701575603847324697775982990781023918648979663222352839566299843963415877183458257439717350887133121490351661650197919015025659493707371667528939052637933538590074605063884325964545711199538816399680819811983627691911280659375092754563783038291319645553111485100481083929847664155870928428617691982445202939751684622932160902771614201799293671167372076997935184396380897872627615590828480249629298432145458395032401582761983038082372864470888974799634466911244045476026087267312982850737033885288118791353311332264850802002139425500969571502065788733597000013496091740463429415163471989190082219814038028301304251860130182687148200250808032946938557272572756459564913774994920921845635374617866278493741794046175551599630374470357427561711915972023812170499146425975600733805495333827244635380199535668288204460467362409134253516483031645777031331313291582296757505076786879675101606684050034256501762892998051156031584284896294076671396917656587235468589807987980366770481518890527821430877116193695174126066105658841094880094903926932833872265849011504745515065968667937462170861597773963259103056502777872306865401855224614652823546544344395476044718588491594742463122276156096926107761392732753399107268683783120241762467659109657807181493357312805412794159353542605760065723871356413499468586995485346232820833226865256313785335130846721185697905474927210565472235856563732659745958947194463701504595111968887220350435991622791938856753150326610335574429349483559074497314449021565084577931094375427050181840644782143689636145263825875208581895009847284214091849631203325251500979623409472744992158632699693894939007651705057880122042084765191536036552304040602522238469545740519456741076446328534531178837007799795711784704921488913253217912655831473270639980068631631366565074577717575590834574217950453444654137037660844102789033986311418926100934691478823646754743412209311970200189329337181634380599023285679536158824797428453153768385060935669278385434281465761682349485487696054718782592123109499053532292310684502952066139090225761452863885669579653794184615128472366272915853361706446576196766837175766586807008499765984320535220779101070084369412389846503998803581263875489903306176321424079919453522412327123772247279374812759616843880533250656353323916333721010256644588318189054729462111684232599022248770718401865654076198274389465385671955410971925735793866037146841097801487760333842307636275554210696865354849723949141573623527558884816670799905595479407733167056927277669275243279732918759759945729738992461436175793447109340527234501742324899112640711705057883638490657271288768694502070081573516036402843508456852935158684921620632197233901343078357712337432035732641586455745000113663527807633465512758549848921039765995846979367437706080666389919060401393241296006905347158237033618956657190444543968570898789799426301342457473214680521357353166808350467892662688082443214498137000629977162669706650553347856971675851204244746291155646287443042098725455372209065582697575328319062297645151465308704716113346090727665343013614535965990136994340550777949044514644102526618024708940179109665421043770248205812657276811239458808744081989689420864056069122456449830847532692331114870915403700081443000925682684428995642665479138421140306839206005899133851188348194486734665950176635969300561972974118784513833222081659921902390354009260372561973678572643999874801095988089303404457588907928237053418542093519979485282336531677031776005745347041705410111119987666487959148869769722240454533701310235491761518708743448817901353527328389024011658335546167070146807179262077586006532443822611368481562386337423701227658174196354303550755289077656204694099891069188085281443842357172885935945743410773713701717897177237717135118349460360232480450021806023256630829094791618251328481064079258819572287923409170832228636870477977539502625956181136204442656281346557440481367070231992256361820209825478308483630190718654348820312860751114693763859519030544844694091844691634286729407720003326699147171506420726484750076212455910135034499885989694954294732886961907657319980594180947843079378432582395735608372903487019079971917722568675127779177109880227121972032585900065803055720891383901858569198338225181941642927989947650652763159230929418997831065676455590327443827342506330711466733326188017702408873029039705902656556567977474875384431840292355660731282871084565987970753106835150581965622493252974684950073577990740292876077617631258386413340168837913438990650336993400091084658646315001755156935545836874771714806207220009354199582203343933263945751297974654987659289053234809122290687965075253222083914814506661275813094823551988349730445760896966835815846939239478137945657013413162470280233105687814021900292795369886592797851711142669823128884938763331997094369751572321548087867471745870743053522106247350032867446702632153238985746391647447888432153354831884417134031009615585769971726793969920156367189088721955566360758002812396548444872071912322993082464672207486731855850778016829876773023400085962043603838904072084897030513014830107904916547777814585850345667923843747637555558203820031562705069793487525056985264743070922369053250599963959379796602384919937900277144633500297133276242373055173527152634611416418325251640591656734485193129329848526474223688123187006657951834958557942696288205742122574094588560698662709014646375918388034776392076409212426721226377388443909709892049323386786456227313816486204902563826678450959411508804028391938687958168083039076188060851459494784180910086232918983730590861016238078471591043569165333640121413106914724355513550196671887371435804603247817032281486095751113749187909828471839163960924365804877568179934143710109334200295335612392943766604317801055840364829045786731311976699247523133069790780766240634651700362445407425047067983333324931478160389034152891857130995571475565203650293790838212893649887232634161827075845834723485584293310995710931292177940748803604498601296841353131915281471528019078560319559272178851451650687016450672516365516684481964652806490771694111100170979738555733429708228679977276618528009948468700590766959523143135270144984876354964327703782700424749663313118150791559513945917060467577891090099723184984261279939548041199289948946494177828707401010766468271982087338925545283320842249992454506380578291151485934135131272705049555453153839556550127021769899800387612177595574058273267452609688290249693889576953507961778831428188660096948752695929928171234405720603789457836080491269650057897808327824551683581957473069764674783809605427723557265424947669763777235113332845631221690967243526878701826475467126260924269075408820808058050495529777950800520947337520168736994506730627687606013674305453425628612191016578680254098285916199165847916617386755765432081041565297866967944114544677079839607317319477696421564193232258168611742980934152437614172562493979547791675514698842283648769147650324248640527473369283767351584203503953962884622871703509229400290432901585447364486719079866255556521240279205662846507897314242290180417968237419211182717518979949116700032910282656721626455487979194053196300129186638404176949199477532877723907540170138831364314008382251226859922372531316879878657193816993130298728284446733567204589316322597469963281221105741736465805760348011392145944481450764030543254144134934670670006327150323670271601201656453788244287411967459327256719315321468589136730613463452175762939147124194420985708212668690359747878023096252037236641944901307412447115891316451063306545774705694276689123604031967282641471010860779623461956870875882383122909129404298601270552945250628348967971609277986589228617057210521759447715548292368902769588215481130340050479542805605119374558854744820774529489791184354586951715801896730546536043130395067163926060622590903106231290990187373553050647513080021588123958931192911693020092425235287985309738778249316367279095023993473704892096442471123967940957656016718783695674468885176273749343827243188585941677833467335486002844118705927706666608349962919303516138595235303746236207047441434158729105747708902324028502202635339536622487827085155698914773607688728852927670042319228756027382553454532677245141464375349812934509045763726952623816289054223957541297276354983762586535676171295641437531580046897794385832268913443929436883421408347220438087500641753257450935096333185368440974367301805332650145643287526376423073633311339361667157744433649145397097840462761317972819996476302380980172565945413863520563875842433142818967763539639709836693216220144858861363721011323102718003799080121863600261574191903233589653749681436955141845051561767716728237515550576175408213432287561141979494169768077759440320957405050381911480520284192313234203082720392159196804021277578676168253807555913758703255321221809050384829913790880269693158532503673905526744919362691843419981356580221193755155763764612339502634508828475511925857786847328356792873244597009684741300904923972772624525982020226619600182600841881579792996574373038940209696066074776336197685953745215855286711459037073621428492966850333592112020494246037027712960421294273464181673950899940988671769926569083180042343385543190317746890948850363944578541835321676371738138082555218792007452526961552181999915901514535198241654544653666546081483527501623862836178204950257035432787615139957904026546801475434097018000547254699522116932581444582623873371889532461771243258143987139941085728795957384537608381929394601800818918186530329378261534296230944971694634959839378733684708595033640725741427805598207386099568245027032351231799467480758856340186631748313452904296389805406011653641700458076422693350444602043661403510487869575346758385458053258868659875446489063802632672510294952065546988674614171073523282518055516252555549615631038418081656881196166402236831464083833489882593359794422327487137810831182379999863999532921238239285777443195860151720833937545037044984668348389907128342370015711650973310756331645494288112495204249482063217249777184682199993190455504301704407326958411843613641805048071435003427206569574582024766202650592854290090265632345223331556529558796536343787637360077909884321334467483275163167193147618194605687664576447271898666790859200111047927111163905717166634332175007111580452853982308162841417270280496567418864849368481278171119763863214171232520398475195962689665253257769291924403780998009526975690898620344764750543117775707937093302691367972322138627160422730151724819530277157360345115321112267349398795615904625362018775702637507602539236369492004899414295781825104738263921542502598809432500977055645627606815327799478936551163892543284206486537167312840556074409726449067690215224646437589821891038123390451915971453973633329494024647637118555462246434501753866651410159193289548316365454279112497000238965139364509135284954033250901540880731436666884708924985549567200896831279877048922717692899078654490139037230499120975282096977118272446713114627189489290602001974016386354849876987580061729134729895902736350554277266540771088260304012041609333796343424467193800657849485896342146930663185275887999729511382358035951090442853217449461338192751795442259876171235182313056365514209655535631929960432941937380945604418715696967467519381180803823138522752834745386804949532750447535068583692766878125473712211948541305940951986793396346357276026891725815072289249986906332737345021957238658206232456077307027997903392084759977846248908576354300500529656852522351127915727051171390886235010443144156992910524099770737927662176820277794591354541756444737398061900391262240218669504347309568410306953873196025584339090052619021598253962845211048339410813977854818803123767071887590095660509139569702767823452524794672904994910759114268390961865894877068025025190589040621121864972707997727935794600410443570998228015090507605644006168051216006747139103654737265505114265306627213184710813021323081513105372434752977956753489033275105153583066773738299904510767726764676229613710382384932249438924191969960472467430997487403447778987132648508381956489277895005604899744720390351094730813830512808975886492962967889991922355229467643657068980800798122314198966935338802644680659887898034527714413855167114379673136565637974099244466227793186862209543973611403229543893500440958785467123758172343553117474577362397026405183937353451214121523542556669542514385213311136080972263824434454749847740484110858902232702283074362225000335139870484113931517894044292240293555690552865013393707633778755487692667545928671535923073406677866277975765926143611550691558615561808159778353767012263681334144123814010432239864589319075685002480224768611763564003905865988961638880772688239434801499902496294620812754972750483365042065450425018941099618336423770681852312871933917657164898011705054858362799309392972718765371604430849809104457442823636747211104223287189339585318349011169803436056813798777388927995273228173779305101369248120407576499632437332979208066868901707410588221697295524066326140264259056760476984856078180831154624713532917451642631805274672101962586434840130902112977192841635623420881659293334693664251745159908673862728090910623594969839449336536821905689887985864653276969005085969432987951331066692200281848363822297880084467794326084783476154162774476380043934527157970406224243149896032352533144293566698673764561400400459481385115238890007730185039035328450670208540076178136651579103030842813148786381143611140603564854113901312776026222789550179642454645628859322012378884079321788260825561242939876792497938202990689238955660066986916410005580652359282260089061647006002462745012347600630635764641248814686401203880675412294347586069436780933123515313529068288282051239160644987656484441634686386916710382122916923684748722955420069644843613392369990504709823754188325823350361754546255166157130433419430822827231944656459977910558016700230003526003372741283056995960480080502708646131785848662918530325984707028288240838174804066765253797463429780123972194234351624463871482694460807927823408264524479146373876873723314097960257216862179642564444358054220797855467147239288503926410794569872752495078023841405933819296387039561051086404588058257723105609239793302309781281487144055926595891079320285222359121106363624878885725329704251363515868161837413577758579754330175208875790036844567474865809066553317758150324160417480310559092557986641263994193676806015838571782242423544328310390758308991885446199884084557425371646548519061221979533457023044188132545556499667035766521783978823802461057725067733296279803231189511510464623225453512492141034830678005366775399138377151046315772036554733036670207510238466983930650448900695049233643801161685396470487850818345354557515995282402314506023950760164964028037510033196467041816689321755936949989237036245327311459336026591781292697919351613328340999629297951268512646898964771774302627781730313327763421477884703659206001824908578998778356820934715549557868351547386242821873466469442903037655091780253054697017917945382364346753776409376729960772646593381779480048299180203394735461061572144982232107355120968355477869718463234735942224829871312492801507761480667591609593005876760205360554948623090990649681118358386788450818824277822568596458454997555996401047334606220910551620962379107673543655850510744049915768173348085231084453407070794408585330260103170911154321927941064808750483788017342255327209464442158997791525822142338841771221000827444861758503353947544445415077187858674657447256021971270558728838600056024623745153821202470452634847451979758163595852052789813061793892058795789363210139930827381515343731848868907432720691896020074133145448522654680277878572758516450933609664023745325751010218021334330152566216124969043472501202570883587000298889093548634662392012218902064815542467074685593494182041443995034450669134180942328764975080120953078339442921055245089892595857888888547318492845145844827303487293719955870716350134793038266789279046486226892415848583037267880864408559843009367922534702045813672507158622190143697690531571432519446285502235552325369363144994794118437773494803238388095617221379647138544885136616836244390508316875093132249569652956522726656741226367907530186475094060820004192578652405220454472739130763553120404944051922540438022995833055791599405685333997050016612709628906140379224188280654706720127696164196778539961574785970965195076930280790985396108419234767871090630791965353232345664474802386280187461621155099225962154260316560391366766636865075492536880293943623160333115412881683203368889499147662604728515634171290925899782612694754760503614235192680280766860189528440432070283167458848931372727420192434741576423194483194202276302192082424459218289316454882061549803551468862215209949925011312347620274071010238942916193199475832378028122044282936942547067390432362904084370174799378273520327701052655032633017818982948794842154208917740356409437119648687824887139627485684652623517305133892730915845678732150046193264738669213444341522577789310579393184500789436873593737913420359801117753407251878365363902789338753299951840600003478303747106371057875107062032860128090998764104513037792739432550759452837206570100062112040901800265127260705569383639367757292403189714687565279483893670773355811244300477022700414844179032580768752594957167134185445040687607071752095262034929957456183144257141033001135991022276852646963364582575023476453328081905677366135932891847290700051052841533745547471148047705186239872550313935282614846079908566997994194131279086681303947903093709874794951029053393767778463841736550133936395964526871446476128515471847679533277527752121214653028360518149560617854120140695167663714828021034178732177076971828813591508250051142413611947014938068931107449388203501928756165202222157483512268323832016591759904691966095377942338249875180737705057934012365282895535318149730399387397775676902380855542322549189838101297818932554587401822096116219901393755656490824595485867728198008347885794195548415487164131141081602761497123702058192097742438344682579299423845600494080401899656169120586068614351517112361736888291493761984843207638092254713582345102716123308883850872647827440596310101606180695157781057693999556442983358377547527107304076453186362297717559400347807305253088950213941983770968809836256276999404717683461438962735523698778297877588663922668656208137433137004951306802609855789892524977965432337384531794858579505213847956982381158593817167527377028862131218757492334142982092629654547654829458605359542485250781715655974940763618982394660586452535327767498747709681975981056402184418295791947282677572410096111366878342083380140772752855522173869334885945307138137010973791424102605304926353122861822309566525547607851406394545654738032352345666214595135851429859848590248249275161427489149819770728891309919899253712841494949843346615501312025278460289525547810638503702860431325657077234352540851045548960878969971397014026659868948469268715513878245652411459792196684439133396329135725507361150518708235383508938619151130963845529130642432482913225753716315883446726812237158276753499814378468705298809660446212816235487819153580273003256711232856433665510855304268649436597000362504974197067708448868955574460393217920596133109525966270030348719125869098422736473662307407158800402648614036918951875987191774947390323854279983422248789110365776285546374398966045122386186667385256300765266614249894757128719607320830899080781223020970019877909257561285766405410294688179845603547411989686095942321227287330204392738992235192386960858726200608470826986616880127262926745666009253991360039156742103253425402621969162671754274887298450521707559772380878513097441979190669525939682427713391084564627764890419086259627972371717653272053116627261189462210837757349852141237359423450728912981342356905313717059763533443771832278851625220057166157173405662127911452495822780402520344098056210807913382897216046992445890243280956962001046236389529016999625908996229324908974938216524161549417675620085270961900721666091403710281821230510136759681048371984824798545277533457154494237677984274217756633637637239856280581920576386465329191309214009563439509677088893469996808334510512363954220415076918022034538482659461962919976025906407148869559348236429143393458570402248119269280089380767088458991325895722887803550239244640726778934821377211994733215533198096833363166355959977749465692285038581979442825866048806077649077259024134517598289128683914806412219864161744494264882514154476292974997284589290543526341787455388198971027179397071693155324601946236485385843167696204203417070521925848640045905872750658475759651785095016023634662448330568332504243883351522381736780413086532682239267169254566685943791713556717096804552132941284987556373408250070898817229278020002138424885515366574946058917126732482874818703752249465346120749899688217753407565138670744119720904437053873735266208711393728296500879719853497240777254974120317185867132410936838592046149399206746472158497049908627116294008694042325101308596714372710069246845478750475121937725327944195782473479086867381504141145401477061090359434471366448686619824904721312860322663795554669856341216764335977739908228699847108498950587360110636709541120774104795514353567707378108364888743918768816086151397980422065422021731913708005762488432747695485368814543939609354054238033920675338069721847293813188249785592227773720677036823908828146160616747987784838725767091489869466591283038013793620594559747712726544581062755638794396724027922609173278057133181850670576840236442703389182416278493019848513261071575541803080045336321839656055077070199366667909238900420642842108400935690466453807449286181851743281416068045251989062232562483720641067225177569333828073630252736362267050841826011693438451587881895494927284032179496897546222645893577837236136526336678405709487981511827897005744577151607814413540444624263979725790665915304657635433870555162285198565010697553753939669203564767742852221534442075624925116169612946874270404994845431097273262490579968271594451018048590662319717050744689334039045806284129239690752082896540296727591899365469537363828051702091537252907688598058845693802660203840471769984090828107957417488051175451654071366474590597364311631276450812245915397883534865995482851104246141329456061333868985627501658458965927060091834681465571118819436119775347964860355565020916798943779541200682305749281372272150426700189041779077245422222891066392232634755049883797322849461580728332849341138666539517986209507828295819867572640875198197251109284158599824904450114866040987522185199388977348182316511884722127855858229107844677639457953880913803878776608063367785878053020178652468589772678903625070553402274378925357440948315290244110845711417139401997020926655392117265570186714190673163992380041813125150737947815526319865979846402455851576505511661488660580031072217437377236541350899581987490809370476678990730147848378327290418734446778319545732757238507866523693923127134836651478892874081754487874890643951260954199250134869509675312617288399304871788156127510103406809142647260410400884608667262033476487686035354600781720399799219165718608764595841476429318445034702257274306974466661824892548242828031370631901227124020279559826534085392444056830658883685809255796913836668854147633836030119680539886454223425655282306056489385266382139978231589895965283217936391930300173883468422242669244219620049145634121284790150491929270406687234606602026219223495690528091069118874537535842845256514329852118968338898860668586259484540889671928777569981360658664201597702084899191842648187602103431022868847629763761335997421013863249262103755987861907960655727665175128638842151880935197465328312380461671832941302339810642342636602276425870104241321548389061379612205908824727998764328664589004031792668399236364818149638356682474361951339453898678927425193226603582274648911531932763004821722763594047473984183344940620564509378919679867682319329703492852635648222445524314878459130548709578698417325401251465741051714850425271386809197226904157460732299249404419516022921323542433281726330101432496384240000238017693217587176897137115748877872592388552326352782878827430629902683545929215418836591647020716646511819696755082641216568877902875474568870457324553387390128875020833924619063088132052977739195519340698307662147659514019398073470847183889040022803363125150998512643530744472993896349913121452022563506048846014150724839896998955874843032223125619307726129883120116788412580059917265709793885574321793717880346321828910176441355600310675864595802007563610745296068392120820570448887686334780799678732538332684114208799081562032353194177423185621308793079096830211887233785481569621356496579073982865347993330199470147104580030302864994435309273080375389535459802294806874650652668729484321012473821558804950929430014706045438330957427445747156501891502697054442954048950038514422093141290221252803913446163345139996873310020630897507839126409256340971988766134855344030034297607132341840788136440424825846443048770521279974136020625674047689308867345057777209025470172663829987159540259893646461681261762097281554605666077520281816431528908115529118609747636245980801075601422355515735719695922494280784639313545382472984807443857555504079313078388065482322673593630015551283150331248292612484210619626256186753629293808540624729566786782875564570280399921064809335862242230030439884882390150847549264595523600190477113519946130320877651961581355534685619163754025405145552883123129085900222165032491758331301093146325205981903820547296555679469374100711881384593525277746768124649225039949867996751487308560421866888148407126575276828003705151643988121133635417754884200013120109541279337173852562436842739599644390340212050364270844927800088330877556124602240288736242547733530986107932753371498559070367303289833890452466936916118244410276579027931174893647325627287750625530833674279529715266694429913726724280582965210319450756884420960704835041361069970465524630463155010686564505790259084413692173018473642063975793945261282292555455960342107088884156479219300129271836788069016093060103944106173234651950989209069867899446103350397229265676986319219985245373806182445280293517634622049598201402891624238382285850489763218285973960571806083981743882304665262739246963414389732189797158520214170894629808375387499212719588345805948897616361194561511117521036479202280394207393736203789951983397155077548201998935873948601728160451971420478417637895580053208428491282797983594725994015143965883046739191119943935142693458045584887330164776510685095415663603577716966942866865613465777254844367353425284873527786360176805077344144649955605594771259286132121143613689651869249714899397928277193396444549223790127420379307606102457966768833352755509335983187115457786571867661261017486882948850648390111669829594537153135195749624306423277227500471440644759311917107324003978059120767083838154578089298790687020423031812598498823674031806336594930603103586895511062438931748587037026825033382288343376763996855062242445016183835368460107030620506755643891141655656266673052485770547498968950333278262149485907011181773966943220434540365633832879587835355574367495238317787454028885861383209718642701431782943404813331560485255959797473063732511753539213114695487860803755459605748101625131587276315889357905985545982608187800593627299442087771924731780529378282964886843852806515423014267794806329759110033159536004356052417953478460588697156450015029562108300878263839522685761056214603757602146897033333158073418771139238416958124065867686275486100225675568078330046868435259644013403615812538641385799942455675352472615802954702021385397170700662759916798547847603953488704428878985030850859182724694076103691501156262796107843975269657805990845691730793665839343309197516602524611551699990711961631695812141283655060141519613459182190150058497214594619017460429981526508305240299568261512717561798194975593817402971922416096286042660620377265420927063899542839694750760752127082145437808809416804673238414416691525774343023571762766828401962078613120264979065734509113688990328010931274133063474131869849164325554282905105198147139585564706110175255931388850893009538451845839287214950522481489203585967912054354466671889883181958589369403062096952864863369030633288413921117885924996533393472611722968627408381673348493625066317068787617544775208630161035004982974354050818335864006273137553967976244374563892186790427883794530829644099311146984894631842391986545011859283082453316497986494215489279970757244390559394931832691481786544613701389636681456502041679897755263209090030672254579500793439250369284893688989864965565672732047216665233573657043177345171709108356767213133088291082712948324502241554687217941852048100338845132189766723994817497054206097155151493632598556258623062755785440854048902474958311950359498329503132159017015829494693402590489391126909895431392130439552140722779883834333306449807634838829117340407107794891974005535684216179111909740505630275422400894874581755195719605606707717169340842799449785103516559396448039600227307487591904301482371461693862006503829397121540129635981460516420421003912034870372401424102361020391870923851605498310272578486014881034911712808671940547314500323914378641987371625592431815285970964746038304121356256505693075839461499894845180951285551825984861401118765822875709493719571606377943408946053455229987090566480054192580739859061413711547930292615952079605719296387033193438548322512451838875073707051808019079410415212862428343165589902893212147926653873273713620050616500196749341103057829726175341344241196528358517628646767752207481062730248494299487249489515569971321476636705950074218201938893329093218894717216133700909648628482530153745434664451336414421326523121028823003903181314521592301814192899004808163139181770998871434960959029331445247821873289112903218998824559984338022591659026186925941630580867104586716024933352503710166816746382634394594242462614704368674107848231653117096808934748308178675321335407340152713349200878690172628658696480638582134816803016200227870564193163894879587126453725064304609936233158595387389104919161873117053877931438751318294470759294977158054998844871506408131636498881811442272025021104765136612210763090686788922273290148110923755387387119042456816874561607180029386303156678025828313282543462870850862967150026210360400757154954367486073002553470060700612520111798810709488316929877237909587356013523318676584834752081401560627561417499989354173804568855782966157532292748916154671136403212351516506315267459274171444361798479156388628268101651172271277699795177953355040753896270940752179807563928375732577141423340322721687066405077512364188445365192893825921014662230724446861171877397194099689228634399867098475228733105588786717003823986426365628148982615950175590477465684558354045356447048261854790035484353909037928620825623787583993405253781160735948726874350281522592404387836856128899468116241567592059418359827860608823983131109641568098743293991533854741133269066233263297352969545378345607748586365374380265991598372363371441809978388959966870937667009586068014977423571847450677777029985266653575644182603936165703088178676187143876921580723502387177904810564367275773807459709778282687834976603046890414732798712200772234023592641124370672239939800224945865020513922323898978207395507901578307960470381210646653959568974160608848044878596013866864894184079341965685403357426023181001176656086306801466976711966306375069360187162983514251047126282472461141912424446965407747026865078412641861549377684886867226717037895282637698975661734089534807956905888531100572977196024338339574075771480563435538307417964756311714652244385954489423506707472224362921373988577010039513892557722837927757806746957011311715633031423450438182613152561903682267940181665231397320779172508948405137485280918610562763118714830480884642215013320909636869548288453521691360003821206632560999570365051713790916297311640057573185878288294891781138419081252991719353031778505919495101726137846372428029582053434211670806556043319109268878863106289053178232995602189703704390731247404509585324437969272757787696588609999704001171374576409283283007724164419268532036080264963650529675685327706926042411208954455951168126933577252207560298020120020414041219124906564410766684820219660568686869166453184275249786874252530091839696287902937848905316681569388609877087566869839944700498952413913120795770134634036297566184306044061121833227098375240111219177345219975266723412735063937794689132202441171489543133048554535281556596260459790335861745290961082591323569980799676942062391685746986439423075132195235360978711816657053167720194106438391484951214263472568099711780970734602708565245169097863776756333298379857388268461483179757520750674356591270212121627861199531997591340655543723094768036828022251408330951017188782675567544564148241438633579686447141616065096223604217160831267370715048303540607427585336120186308415221057619586622098767657670746538350262455002621707078881227567840186528272295147519439806465876088593906960175469321619194001050744892023485769171378012513202066449620196495049708065297001689460637843314171945695418408670612492684619565147629431989933138539841397744138138952792702379750318882711286697939163044434212752093113756117544898958827082244983056246279186740433897033168967440035756759453683254041966198510210629999112631885682526749672633075067130712941460163455627302241405770684175273753358344702554209000170828737205220415315854523630962969058355502520863096017422504358243519981871422787401043944647056835760680429522217569499205871520686291712465373117857783002045846755722014601364169538421344136232582924397965429907927335685033823635280509524423371533159855337689344477350914073171782595096075133633116751355542328437716146782415998038645792018599193787158342836655398675726560306471831993888961509958472918632676546673209971829443953469453506276142099074127440607584220826558580512622204737376702624355657877289267231951316104247403595609521488455443429585403159981281780105243453323859864435630441074911058275696275770089949893181531241567649437046995593752482167650776836109933369744504417016413941440903826169061372492182122034666070414376984696438882078263923898808369797553994888208545144774214368343193275645152190613535175440467889067746268650853099162796450868105324511334617070978149289373876795132049085550866278894279336384768960370664135022231122084047534030747685393014932690006862365540770493824065483257726106954565197392945642351528200790773572149092761199426907177706889772749838048297035448736944523569115968813860250207848677483321597885706854501875500251598276608025135164560758390537828633345729154851011038904293779068853793310257040275296942483865323689656142258720887805060249151253303301596366435805196407070381329120772166548673196149383812469786240109418618340903364649396882341152228606841304660941648150119605718268370627940375108693531469018719551490952870847890539800775407382172981253614263440148259642891099220331239234045316589320459098794870604466177553616432077313023578064758833218163284692811566468144873321770263761199846359115679214983405083063956875217684445508455673508786108840526362073971419901943329454328198413922526950948385190127542850429643997038924976912797070766182636903555753454959398149185853052426096221970066374303691304261124952096765559186105285177104620906150166412143444566211409960662940418285733551483189262698532227331795204969657657525864758079494206514728799425560129629582164450184993218431243020906531538975503788569949491792847173028683803329611753234898373359660060478311718306769810677881870788488032430093883879949882608133844787684448393584075360643778280669407334768728396545060789620619008419192438456680454260171865772480497361803331939164251143172276003817551660222854862322780004469417783112493276255167458589279551292172708323236461369235306749079361741231041812908916061293416710593559884963739120370031834245509639754939549327440634917178077946876561023144487350176400015463061790745094808209851584184599178419006869147849161754601215737981156792074750085651517847297555890905960729631741014010828083991098363228824056939367531372833509635726986073974430555374672506854401921049240911650928771632927639742841025188789781205845108535710245505301247901564279144854592790022803711862870754893222597653396204159552992643580367202767246641771879593095048308149333957876402770108299832609451399438792066033062715664980176973062418191662843636248479183837102516205206409624403479733066754243641632173146494264488837599129512668704170710282901078197141197844205033923112966348451917437249967438185626891060403520125760673128605003706901004363596593905640983654803608601962859898087937798440247924464480575022616065763147667897153747472834150106115002140161771110555630533193263141452261402105230365703859317922333855896961066812591979593361880693239819500775532806880751481589427508975184980029584840079334103878330788100900895751362130072149798807148188558138867592169370476940260475230431288594614731639201082337704864516560863309827041454261904680924008788190216677914467434397654538609395744340563209940598787728381920382063637965030006978637370561043546076369156630961671233067888193789435176421081657053017655140105696108600801154471395062777309512869101659761970788231998479608923704033971246954625182042730600908711890041858381541117748631159959637787660661280778184834415516030345303876468463099125088743783432773090855440418932231269493428125995274346355808024313001726048246579714731815000492510843238116379137541464119392410340326039764042276409589058328451614210437265948102904189717629367611640173798405655165200742997945087477943441222028691076763998148095984320871686020098953341078189237888565903713845815528877902292565236390969986198324732923534355984318150529302426069684629476116816594751908446066975934964611485752374375257642367419162769707655433207515622739520089960229274006378316850121844279439330181365023941314231166588534244015431794244347319658746163803756954152452906418372684046984787232110951705476914521959969750865046824011104221236495666696068468088377828121696180220447752792038307229630734508049523334934194940895628887993317151875078043864175346742721716829839666095698720540706514299947806884266164864447480267020563682101634079255032322273898500468351052624390696037992487313312718148012070108665990123985447691460514788955588210561095693784117400869046361549898483767403239426087075439971674350451580179297547781441724653644165453252771975085320223950227516919660878020001665477342201551703953565839683449237742343861884575001418269642452031366634006930513484913488616529086061382668575437946001777169992976314805690273165176803897826832309010703400020428291075460815802341785426408512039566566510586861803161215407512066836851040185984759172897647555731784643061337065465343289207372118528054762103014983578153511422225566164277572924799367494716276200353310008210284861965818495822613103573258720087472663065968713655387183980469088322640746507526348958786627867077005985572729253527692826832285410805892694471662967943027256883715136780620222665085615127558767203976067088399146057814573076746777456860293080069415500697794294246361876110425811934207735685023177627395840825863285125095641254530303665382309345723181755588321306611827843711772347197602970790731940395195071002309472346522331100776702600908060146499170077823295088292230469501862396429893150459425847024217550662452681723732032003069762403053787877624765090857547477607341915959905161691289083293440425366104540453974627969472390063403866248854741009389392604284462973828762218013703872367663379182399335552472513658600702610042766072195853554413489029487230933472143562114646719862345856475780517670928546458252300238591046319877259496065069137852440209784499185538482811694507737707109720243126815376155983026256801096434416963573843427293090946896018404288169230429439198836511894945587638453161851308905935890763532838310425799414374195217995980605573305381138559686255702892698943335547514335643763813202538009435977244358619053383511375220197771322430682755776175776896626113335697583388499191852604025996809672623750586007558337141917236449819513768577667714717124078353915660249843865383303430568411493254544323419149364258751541883247063070241426919201733494290266870323628798694688139586657272067056558148165266385796200579912605775124460827416347084711946417949390366349023362615716322013218163314872802856574052281832350019467218592984204462731925869841776327299719981796226335202429690447198873581829443073601412996168427351902925410196774169229769874564278593735801896744966588208712796195495658595083514806752795506193594362442089914315132282853283095973647644230397332819685655350023718896147974607847729490522712588024584827710722066499365619897964314083873468030418708323610834781054802297614864492107585804515053481961110190580347821154707628718585045148322832808525700352470947120043056399393914114936891107255258560815611525862678476508780202890517580319636412504885882962519884571094703581188200698827971802934896980102613109769184765948104275961775657684207310825421289633977354469413803617634261892360925558139889779034590677828945982743566382688979568973851683827913313077362659390721941075474812440339523809121237783269112372701885803784898952686996289656399407028344103240818237405485779117221538428769457127867036931354172897898952001065532869894278679161293375620158156606194757160148799244290932300806334074608364935037894725244198092653043670424470567853452320697289654885448977177771610768694166005505172966790272508781043393657540811162016340856560891726033406544184923139415417024960592232543309698550949655564342481618519660098845595001556078625930825676426095295815343596583160923368829043283742159931511248642147349529429636192101963565545724387898172772043258963561545824424243660901000422009232100416329298913446933934471751199818343116953922028575812953181832220271298789532647283552643497615078774571051762874928042260224480412051408721310297598213635562726229714486692000265288085593496699902229877892858959447513859529933707105877439467536137668859914328371795411137998642879052596900126327282448861808632322395917553585379085898098048359133767065236257704081525085807084407458018690645228127771325308687052902308827367832352191353840329271911829458766072855767705604898341427149161991682588333506392987615434695294553343295693947440383477346881555310444723987628680751060924075383521887737419650996439845696687574862912914437376811903958097463971141912499248808739573710039021247287313481365407347780641081820433777376893364748987951459214902440252163500423439055964953811735100783097590107147176888967355613248503450896706344756827220783014092752815558061766537634583711014520001397389258865224891406152175518116262524595290711134675453325740450907293117480160638214595059511912429638089898712421009942136873411854697945447963105524819307727725086679434019632390337039644513449921626357327686216184358490864953567099285134584260604688297973848298251290174127195613230118825049228761313180348576408815225738229103364439510611037786010907263094424994207557601328099823380026929884644479820975638019673414642515144753334560014333716367599424303251175792119069213852207302189075795302625771308209439555650451037475797206482093250947016094851059748614495400638473011000064697783654013890558093198234784924451835322319552635483581726466215891409323658685754836714160672818920451919881658434049376925221511878909889257485760239609437496009264084225963444412550127906945680297877306256480689681233856286399591476443197701423631838023737105202463264908133648520535806181596127304601332302215722356512034443447037316490496783539587724010213715769902230064211329039943154531717203783712838643926917073083413149910549185704450834371086970620511532503506352539074855987486884904581689758440292823721179620048534833201603335775701649597461114196697555628351929137791869292581482706405959517833781815510803486554363304890966300859151602532324167394558228688379669577976380238350785221824851810488570164063368007653581310410023902804514435606009983607220082402600217985499187539029978352532583808824375521970584595078934786270477165370583232581010843805431111937484866188838655163463823858886452187137541122084640425489136396768896315638070807369047087482405642902105694524004978754050749956944728841914879754931126437093951771700997713247794377621896951518268629170564554208222186312793628864870374044300118993126933391089563399149911355666966440058784104664531795517709559333742749129529203159096072640906675794208659927965465884789248684314607174472606594564700797431171559622037361559589174840269634652302766321891054508398641576618961787955898219729987975098697218636937000354278211271021661229116983633476821898125778618705713713764106892369338014191148913846551322496216099397698131689591782586374469579107844815370303407391637635193724151988722538544029689561162727158771300313640516982932563911425781614305778032256316664687294876223755902858818855977223411105319813673608812900216020543920341188921660491548556006286076556033058554315164668591226179666545471637825699504607983384433288257953408133029561025023381765357997683177298032994872166375787532636193374766502884657968013347110496376609918203829056858126257116207959325878050355283545067826150775293242805319253775655505885211763508839926044008024625362754595653047654748073115789811826738864810886754612563554185028565717635051784392998202320545624300310957062950732269162286703069728452383612822612368150742522002062312021239162829667417294663836831597336156503203886849983716068628578412021000841030134351808521903602249302033448557414569855208681246080885189600398690326464478179464166409082279601300382427625793578300473467995697433169427541668720596333386340224784581910318916660089769431471163289433438493428588020188853750975452793670607195340984408616481099061947283885481469233052381885154093387135639083944398092978272388130684791573900203584527978121938459691814784244941853961041754275923689854875829061874481888041466509318084074241591742562373885472146311115408023879478469921319032280846582512253039465768932079067390355648266017413499483360332353583886788327268341320245619944933858196220801930295999435910912085003876767887135832835987248386899913718954332383503344851213054850039429488544959902292858264539884825757515604351955372170461644803321921467695568295511585893564326272881243976989284686848621951486363630606136529548262172547503333300799189683784925576230248637352031570604685475167557624345524526187901021122271309143326449136098205938294276831114428473550971159980538992435224156902608860341089497210899292410413882468163213513206967166108629000857762356036422514747079488028880893684564341736581412463031529017447717098817630424512658886117567997498594572898210480760364196587946236721049440225129716807829379291454303539314779995841224189881778404774597403692954286891881384464459109323212101495688081707098492123886358842697966930809993166648825311568029257461540456891727730361271878270657577885406310266686761507231961878385329724539879085305347515694938809242800522080630933221849549820930698155439888497051364435668430867022780581843458780961096567489851899173527031125490325967781037420448056748584514384498976390126539709359742961584646858877564560518546299646577320831712387665672253810790463563616775301901261305591674095624580458689699208863769182532898313102145014012214944604882873278377329421545060939908827280491946240337211310416741717602409065335146458494988392434623876522762802412312458532123872494281582596007355858935635637571257703447094069355038070504625683162066623455367924097303391464524061449304100575645962982746499905946690656211206279488285670083966417866919363244954650819897754826355160815488269137165656282529483526816333568947991553561853902030646333741301164008566939408809632891124719646524475517222281956176736631435829120722225619637627346549995521452321235073313200930523570121672728080812891301298889087700070509412780959492063835342772088835396860389218154381061189353388985198155724784756812059907360144954960617985156796445247282023802842264198296829916791934011832716913930429360910128679037811854587383408753114684459274615047388673623887930277651988092354430823703393022958843782257513040453607234104051813836371657358419333745032169540146519392994302932112106347348785829073720519601320350733404046402823789338738385786663718325766567943676503304850664972390676154365648086436252023558218418578473932120262109479588773372821944707446901893826129348612045981795886067015983399542314962189913349859257702894616649044478020268357268581609097503198868855539194157540626272461591738003165177197057380473857352355499988412452016907507197862336804527600919615405875908770054510302309563407903103111484359301537945327674321255090208551806205968036309459700598280822423089951636750871949203208859974647342166254117161565303089409380113124349893842286749224773600225966007753403635761318464379349109120214661022965929854435331471916568808130921760877826510343951199209496439257737970603783909188164100421040255451159411279858850211780020187854078254661315987075344703595663844197436251878438909210251472993756383724796583949148570546994460639614634959243922398909190690161093978662386574699016531757944464605019463235354463554078120551928638844749063128313865404812423346278088893702831646772195074092230022189138811759090537853759136694325508439472597163608693672638170031811180590864822747733449448059715457957727947777178492028190177688177047871318332496621771991093880047599954891799630769932531709599473676501038466309055605939574816937851542539993217661783266286999542807599237747026815598931542703477844880534045199950986004949284058768603681499991483758702916724930965103394329733415093121640284259790147282579283676531097707698520993249589653646968363647223489609353501828388329924843955910365212960814423885045902538199464079397419734042433487997649552192663601303288867187996581252327261852341472513262350329589696134034123121248832472359512238481459116493953088575995227433647561674250685978345750698616716207175942848618763696871073458967114956760659446746692790394451554801050483108772557188673667263643629773033051877029315358860640940258375680741102055688511672986136537040262769753635211380684766145013478190233605967103152820261529170389375199151305946449203720433119317454985024521805458406063772999298380609409287683104698968687616325561190797210954830676149300418316317331516294119005721513649122905852113471891184771661694893884783499597204450686783326177622897168600498380624841537777291447355762059805915850484003788084130397397794636308287006171315124316751437594200183946671810937612708673069765752448669638226753507485389093780345486433680885022467319820049427798429392187192186114822977410414387264335429960749453165738674731466825174902872179036998484200425780451452410027814901285740077262681839433956709339966031963840997224724763821506564681478952962211296285584257951302730445449964600904628372342337106334974466128482764550275673513164280722422435040398724569817597946551949401822992244005024142653042273627792618487514890638896171643077274397674790127090523921426616041113114345583957303319240989039844906462027426753978066278520133640492133837869661156047345734068492865673341629829177542369093551497596343737131461147594081930255516354954621375755908089354427231306409177782659389784178738265976526822563688482903133674457127438587653547666977645171695432356877680232326937893982963914819509912027356381173710434418819106756713765621888395310144210606295237308660727961109807830329534215719967556468321022935761251500040019534950264031161072760014269725469800065504372573834875359013472143508964213306605013733403515564715384048676730401522600085605611558901759949301073058442911161904678790212635892515487217760179969764611948469550331332653697927997792129809065479680152849314015318076772870392714754897624846888688217865193244577192088556519662447291931390672306496092440451613826978551557104274539502869727255148176536139025941307782073266658586426747012733595649909686017098938716989407866669937473465865062530583824223171458559929062911860227630178409683865892336962399840343614804281547752916956349534961489801018261352816076799747569807003327943521451553186510290104678859242008232445324993562935823015752137741348529813044456932251517695412031059960896858891568003626429934163266120535955464692213186972069382555741854950983187462849364177081707078367207908412478608081844689802155112525199256731199059730282778660253539895090504000249228812760191685758431137744203652837569869574478074819970545896289802150411497728068335364030602616739222214608196251906152788642423710658614333396510270288570348412951847233492996807881322489821991363642022803866131697782339483299447286716870472156754972387605747465158858282807334416187091881203727300548489130144319737163691773638215388896373569070790992366469382606108914351952182856805088307751169634570646977918957911490217412381301046860023401538061362856327773860276570412330704261614397609745941076670376618500575067481174942097114369936075203960156016797070419667467737904243427614277185778653257243625709671077746419637593035689813382496994130374707213399993756449455170134778863827141484049670117922490457671975798896404599851806689846498970873263198201328283823780059457281861158152032779777039069763638799351469196210995284596865137847831050165499187612921000196194354997012157556444467588662004561211682121435201917055331469685126589022001820749776551511216833080310275130161994905410718036381378756490496122329745289556653598577523833269339987371337328996489471285246016261638245537588369843560022422343219923377646192677804485714676509769908947935637173061506541725785221267381487320670022487935126419215888867226110111341974585883153808397159612024118220604132547491060323114273497549776565464431613466368422107984985449580721274172334242018469234623476400324998638613196787716244367563395923528624786435220670457390660882343079118392504767740324039887837920737265307743322841635777559347909271103075990010465461928524692190560591335083612599521509958361777842706497836179484633640666596371570824559688483404099320537006715707961250657826728405178053160019591819837451944025252162214461784779469458786949156157993437481385080795878185144116389760901229354114778327007023447457901319114544592671416029633338537780767845478894338996094339759445957973600695596557290223467853883570834921051609018412900924580059213653000034745875665325353856013912136710618440995248080509431032415957268898451404318231906243303000650908563325738722722229594737704512938409590848112153095530587736258622806288388123892961179104019817119968079452484568253533777662205892513796562500576327518618622101526628354109109626936230093069272609205201993670023160341841093736425741871904398422227760379691278297018765425024244699300426600366873343080691115627161610485164603558646290755106052656132585082774593270181209114508904659305686096315885357713185744507447891252333442284247680291737564584718590819927921829288857478814012796526084486867032059185556766217406491415796240273127119031282413215811412873517604240089574236009314495864735294951956276350631538997197910851492108213194689315652558049127112621916802635025234856950198133727617413384277532541670639073916822450908093369474328369005944175901232029509179071519498856910402079297345018793024679664023484051043768478721593241755257557787128485796261090412368555611946590161106621643901739437450623002130005674677561974663944478354512315044722598981219369569426291686910792925212504717386651946745527164794580887375359275416126038683111000645869563111417141112098155814667607800988949698736016972432941434091344088104883004856346691777232045560074305130217855970600466611359563229851365641838893465385636056725200747348393898287869654376860311952685871507103802463737115920525160400088804793696621348706503669409891733705109275974354288935879459534665576217440364420297967337090583669164893314356316410220662967977707080816508430242963180453082896353143928101539075171468937424912435073660727679290151320993774265635170562894940830541892658739107939350939855891384328381775446991845685302232354351106617178212607158284193519481498525103553839575955654217966466902628434137175287394331303092611610100031960207747940978107678665442398845822144978203603358933661004323958762864485167850159848629820926194236470118408832360434147460577612369807071230777615038529654148664460297812619287369574122494519495553311102335864885237887862618883051348136690804507955552322037015058290752763517778069523292695711864162008342454000133674012942215396137537437018973045143772521013878152979130416561021007235536137229917172157772992207134692013496172785133680556895660236279677009973358317433308725399930874950683254604510354544497709084519329853915059069835264272868548188976178345518959791819761690836463196730444131498259980657521863763787276941277293981950586207416623604737702456530552170229912661620926495472083252093956563175052512143343432714791104897865918423518536853775832337579422083192489771367705705925105722082577965508937383307420772222289290128049673425266908446394533597302614999369595322105308281920045502168622366676526945343246428894924250439228515388684899220679759211638833459999459502523351416420767615862420916484891715023869474912854156287417635623181229197678048676399687540564319800204580833277572248015031103644274583589817715758236769267699466133404513877639228476648224186549406617832781107189018874542093985703971664574176871107813705446685441983978446330132926199846915939946818543697633546404919253271304235176766812386279015125427178448158112977044140708227680139047617412076310851119365526269834772470333593060100124626769550962252871993640768062385188205639588826287158909527593154409890861872052789868580974581537058420755152141501257998523924047848310124169208885826840644908448630242202639976203317766877353279366363557606532096147315796275575373901012000957099210201421740154609042080859519419293643116704393794524382488537939603208306476144873929442712797976288810828556657406965976799419705883972574965560906190188472873448183227382191196460327134911496725848605814324172788808659560680942664508545201901786040688865626941944944629322936119583495483085637147820213153559190028558432155479187636071059969947862600669319906089425541407639264051658083114372060441735975180643351540180082183238569796505081968721486715470052815874712727665752178114064148780768468810279435190169375664893783955624241694927598290807983005089149612704469991949334105467829496051825416028632983843089051721818780164053463570242686502904277910371806629821174384181311488672562617894267517015926598479627500079380530875046685358770047117130562410591101056225014512462907375378779197504764306146319388945869112228279838924832594361889617890443355764167866874484196143591125953583587353985899193104608497120337905894741333630361792051122927041972595445729938649685766560441798471011201603989727054188060454952373203290429100321109753527162691590922891855754127858702641680099014497673507619995375345400633529827069950501496584896145707006639921622378128259860283399213097658268669127523696941309688294381608883176383418660112842089015041487923150395165180650105762144178719701453645774808878165972437091324042388159274249339923816583715961391294445691516710575604600819813920768471276833962331681978510895196403210354848255013715391931850073670331982751532687141261458243877935529427569228918843004339811361515537891497777420746775512572078190005356955863744922667630324094754767056208268585556274305974534842506928624456563386499903139061784047001893206308893784566017772826433471496246659237993328100739539072231814793215127207018895387695074036009352720683647717060435396794236840838639063199629538175978396824182072991927161938845515090888343173373040530790915887896615234639063618744029626986137404151327266903686536816980722365469916264062851236662335518091239677150550709221138452577592740947236502630928113017148196086549957502877124412006546499164232666408627969089425587911710568767808507409963854650394567154064334111170955891258465983247205224318923951361800991347129761470707593072332443918348962812762307823836522426062726489901962853956725975040508858687247134283154892942831496956747391146658185477649977214926307970635323193741654515053502625355580954134490910806124601108503458344421144387560411407984890574679727517282497075120981306024782949706008832476026810133960761128437266627881643250575789519643332033686670056297698615170785207894773715986746478304464816244219876652073390857347701511643619719438440040832861928997126924529677967236284506382348077068516951310189744684450712311998388892547655257421394997897038317938756358775459941458908873148354876565548889528623265126389850845670320484139991094891656292018237239871319637191117341985649652833818776987683047651195415251398559152925762874808880559457948771098949187238058377241839395749674093275823671639898190539793640855932661698181380873080926824471334882485343031933103209507790499984243909941511478559586544396549921145176561566584319404362406974278800768134446844716057585548308597156504764308767941966598839731049453980086459833135946411737158539749656165330251984976907981483412774333879679402146554428333071173547664827256812962064919222967927931582402658009435945916003748823189502350021534857821216102481241802715026255047537396513430911837636460737885543069646176785200073765620621538427219155476634631152087265748403381476256002836756705329726054747273236491150868188979230234404815446132228400251578487578466154156632347427968851120393366271771214664830149302589106259845429364553350110054487909708619073530680303540748335793892253652610233240935953587613150082984700048621989384360205579795541360624941045527795949882125030640244370608646489743311216691251406610660078081824911229920429702367461878380465766486876076073918400212145732098793781162762310841856653663174459954845734679825731024999276686978372929034481715009862999056387907848358318071603592864590682655378031885885564329116604739582983653355673413090710258790660235535611768736124530915044870518913364391820338580093929303549411937935595497345549366637702249783244953121528889560828498222627053732861754383453191651518762724405742594181413105958030310459133700856543774608874814453556553060782625295248798903618833479739099817463287019386988102101659443789417402814066808524544850675042564094374784863889561390323150382460793052262493344905950813936775565335297068666845202647939855413521076261459007565247942488322691095572280376169182582429588453931561965891080838252598902544400584945418555291043218929394294715756325919184455214642174141499076509152832629498654510575689120324684327195215204680496314644804834810514779232762787010409305042972589440206929601719364991633338785148786102730758118390597570825813995151370068825475649725405329059742942546585616799089486229876186327499385748701936709828439638494179515424680132353329670089861397944952690885844434340144820375613344807205374641626794135381608678046532151215671489757743963211114522473631151743423224939940271099038103264724186594834075713834586738521791694882293224536476922496607480463216271718956248521472445954852982361243502506140373008542014950154363677738057951442914165490401301676317262062542153977494143781137928355081746446368204554900016517327560580297705333140203304818568956333834316698247711341350228955174884856989373212572972744925338691512617791126105895977126415356081703161086607888924042483070740338008027836044179198871979162760921772498003349793554912104778780875729141208984025321260455291733318074095842324036321852277325841716529558958143516932966351491377198719453359576596607384853143043020750797186384522791511760839320317235984893780286018330692738973802331522501358633735790874505234202980980544460132166726490203572729943279799635395202631611384322720906560617749472903937833710798697580596565566729494983280124825994809122499113628159640979461688149936178878532977119818130910945291969439787884846928527485644386205635933951604901203716232656999195122125707378550509014716877903463483710881064422901335330499856346179214448330564513620965543751875729911176818719100151895223654494708007604652517377423471014792242137554387835711952162849071237195926001333415330399310274440939239680680165891542927345271006612808039252764319188591215759771592594601611904918643556828940522302826308498655534212200699099921601113067267647721186615726451385916502020589669923493344517989931260112941326840079169380283166561687946456027890920494944685361185118951637049103710697209043944435579261610439506805306312984597537472770919617435892190550328878801104787923437988750671859343790568871075210229736855832286403571373564855871385577498303094140432998827098960614650306135305183579719312191968311393259913135074668283396049080803423441787683451216440153197757831729410668839338993709817682669748035947656277014800796888092007244559066427470471351874638434395024885378990096985614437800260669761239547505400643182967180447641369882420375551534894872936581991893596848252409653808591387644427639630862344804487911505986615892549682677043854367748201970698950771329416501234685025718777947017082743801608387706312068803002953755085088394056547774364031941731292005356958956262193092071336065819767300582158814517722409626123594009523899604884914058582335098418615776919841188542452758318203967860990199178867888384769010400241486626917562315254490617214926482542678555610537583546176125107115713572138859775498365758098229219304777531804424886897182895266967280508111603965266551943564938503698127799594479851286351379829826091788533230435830203725491888475080478141548672651121062453007703894548094996042435933275470583518854861137530611181440732938385287932824252454002235860119643195960933347219466464190437967286069405600118747216157692510967704042901802690290455647560388345799143934483735306139895736238665020982944429179574700325380257968740030849813454730390568044589753096920938095638294128998957278376479575081565976023954947668983155006900379749098234572192169043084122623089532951815538804994103424624637658073222926719257684391552164981873589181943980867181103925779897570182272153877692794960472463264565071318767554169997187701939644972676501845806848195374659036479607399348475899574992516284874780348460492359857347523160527828299336020779937656078685631666786347921224981756904760105925303443003707271701197048535802330304164182529551183878526727077822104409575775171483036567930284424059047347568628578675964102571946128650673737867183130722118496367053961438271490693507814805730268862514495680919226563971035074871337983239279988492562139645082724256665930040958269370144244673929296409688565668272574288086777287818890980711922188388114477814137063562272294658869421394923601026934832641485224335846518464957647168634290197946604774803998578906063645393890521595696220651331843737015252882075852502614508826457500048847594644565210576463285669409922063847499404154927936150791945062188471961208225397170457606263509644716848629588159531841121875517184682350015950164128677402781549597708126656284921245936096193534622407416283728979663688168093837825238044030142381740156730617324567104517840743030886203940884485791888719934095293135836341258929096837120463769892807948894153658937346524545286266856261829231625440846017357848550731117933368387023173652557832137886260027673227375313853011032394867239903992628036215853698925781169666070259302723860852453370707492439782629137173389990771339415827488141272047775930209964228591536514532044095505308974688735385142795389915172128696178566139677113731325607093065815672432618976786346621734778225060962083512562357979649591412622754527398411850713223161273275350280100327512516688974905433737791793441399996633067122496382477595320984767166916703970136434311771652550791872791352682715204677292767176105612737638544878318194782728376112575924154268621414228406564981139448420750358107250761325232116470013439791292528173379468400078218269046140163551028358772998626172877393493803472320814190129998328027856055816905260320015276482040638677498733500770986635571160134067603570663822843222331802342405071009703457471235624648902588596234564810010380080104051791115216416057869039650264415114530024438955866627800924727163552173934685674798761198285483066947413393698691263011142867617070340132534870705316351873014838986344184192530190655800971469047602172470112947498645743459564374048803659081271439381715195162043370788185579976051848082884368668270247783341364154408598935399342458037698145959613153926068012783094305398089798872366227544453898520969046028020505717483257919247662448325754934243140478369303516785805059731362733995997290220132573709478630387277851564486990310105761060666512447115178823225034469293341817159245202792358983302888813263884213830150776525421054572862378020311868537798499044620612950407625655982758183066349036146165486848178473615611873275071926910747061607912311118561861633278053262332452136527382405172367344859042406871549457679209211911401830326833109160887921399254457624251710069348252843805670282214212895226429432355273953719730678353683603492855496099071100156125314362696137435715410068743272749099126043075927214608172844692603685420771213120700937939117323914051352860098634881175150513747054153260869268256798336177491962932194704773291139769469671836110868339093567917926108876011977429008961444259721946073817313733650625932074516571697150287078170885929786432680113052211184998763286044586716490869825211175960482509939431693168324014699298324953031132812064960082188870112170913270930878101673820359694643617814323223387140101424882081157859205602778794466619357861428413423813505455608367774487023109824976113858343646452806464183852686010606810769173372581892530472962007811009029310629607092745518975832680054906079435178140403920309846227027801228522692145478929813023610221443537367318547458619999837587189776389534599937977081292545507804794844605396971801153816885526971966966490489077609436440676931559301692309335677081951748465110164547239538593773894308676069578765604149241708318665456388188498715714743281096334660505270358079345477519267377027152399517632636594709476742273747041200926820678247533436803862634707701638112923358354618897162846782015006622128309905233611641122231267972354263540169613654468873750380205528110484416162378267759577159264586092985991671870309458211481249323577023467119378863882716210468255343901936049027830977407524175090293394236479548988953749262324786689820966656653765679781313282042967169616483088093082343407615105693947080789220774002451457065081731228364444080750568311729363281987911830192059476873212716387716199409103901939987593335817962588415315764501813743738481012786034059159406450616980168021859886685048263192338163501200174270447903499025880876792942326876948248053498635857696834795765094484071673992754571094554063971512382892885422864791753131858686461157782483431423252638105753948958309058423649374405521874230872996301719960502509044933595074293291240639297631277690781603229645127397064577283259823878257069842876032913045463643653343295416182374509143292319511786455681900895995818082920643883720346368640807457402518163940095871608783120956380427705159907069952656668338370193549440685850275433987724559284993413071473861603700295167245680664596951340017419288798802485954263332925703228020927663218710211687742337104405498379870370250774770403149544766801142780700521676633311145642686686008715754253312308428006469609680317244060007132799951009162929907379270775778788794203567897253650200375717765610310456439938264394383207033944781786408639578468456520507307221915810973061410248538217359614212966521583953237616456542798895533382544353652904114381943922265667830433131269386037857361297008265993491261291135561055404881281266031928433769902556129754185211946148892873975234812193096124745559617007529299257798746230774413260261540456828291449412572837444044744064973282998887215576452828916920031369852122388692412837044039379077981998381907699195102326620526595128734637722493150756913711525154787479607841957848182700565541956479142444106696679240386354487502412988367689536009587775699283684624045506255147751816945145992169305768204621352402828402025637745868539214809024455946087603625767051482982155744379410953228795697352892135199930512670598419274571034737689506767567301988166481254063156226787878257199517899879744529093836290098986370533841305074401217101146209666333794711616682751908253226534353983020332376726564939209136386029343057503030317109527032809257343662196121969673694314366880092428534841410943461877914541329077962700296058282443998134131937750335827867630232885770587674134823830113063599000466703841709691642509868548951887445986853094709854110676876121568864915250516618462593490465297596608625415839562757414026757493276756943859425379297894488762170278289224053307653861125134261464024726091176301097487013864596705734239755531706140029268008641574981623931528156836075937449511086518167434874218182231374558254747744791355028552219597420014110962925065903151459401868026896034581055704400596285564310439890111206106222885255481208092999816569705043607678639741375096249756430291259492109300055664379696737718080326833208495116607218565414989350637629448790975141306714891487894268114902222462372851707684656024661503638680385966312500012119757071486159642368467274007375820400191002264333506502024583844361458527753189637332184823207592397886832078764329393921479938026065841862907402869423576122099556141899946116272810964057154668115710664037355302993522667533193415397931277674081879210629729076980324192242886799213345969181663119422913760941179758324349857019417933681997656159163605096073776863694095259162127072943834300807701984917042576999018287759181816214120294316540558358824753905493126616697410263447251796857615428830484940169596783933980265397118304861841767306729948521031767382690578780626739626400173383060031642725127213300723850118005393479581685414205418858146538254989135326970939013948544371473741443499615333329326438468559481786283740387346305151254818074332797479445213737219047976665854127639753007177040802993583116697550837751134599007754714282794672138899495864796620540589422947504219791270719493442631027189831533972742056381995435394370343948086070077285157681816744231317332806476090838952737272290694226584888924679007818188023400715164431309561618470011074557300693274112424850566664444342633440133412954529527001369276299692911474704375909597485321910913039650792602684952123632667363230981818305210169559006291264721298291197686091516773464859862194595449029602105168910465035299031133176426909123795455776247026340644194202545885273403058466706117359284720507164733606879483094757165957688187019473001110949808642024876626512779754828378488435378281771731946562942049462844991135807693410995320711418035355757128841628285974574207758606422586678225641420496513556248648095622675085690304170383114310870249360767888301917189503716509760435836809748643137515069549436412218803649519110588686012251461520517784356852812379093514061216045541065577619495895802583568691070250979486320417885560988611196136766534102093451831168397676647740481256712568794820405774688498260571703922191263064486558120610810418933319786584683707264904906176528773168233030577577307951498835700505582325139945728592405554909834248233117765945966559177722257596477933939853281887073579972547001610990304669079414080829320209395538294751369290613851636113855219706228975072335529291045495035080142776839055474644332444210105555222487410483426943323161788964645789484105436403963552537146498750339602383505251246596628309060872119431973590995140008192318119788008882735744525553948394313625703190528675902115380057049502234379912319959762766482056458801415417909394033519901990793310137387675155958766648987027687301619668077382921633724880662693104996141358935232372853568863435299925328196675119929333496962941225832390689253138247918000189199803832458573689399707946546814622350099493241528284399169662624381946604632284810625400056761018992517612522637292624983268186735893726058216015767170457460534695694728311388226260442136812637444385576112719308693632048597079414434767317516257515665859611279303744842340570329137904888135489487074117169285597660587357993643913708536048476500225315640221973487458312230916315284681475445492071814372791235996021470294586371023853813868402921897220592917069211742001044840321949937514574964573155451472040505567815002044104321631372759147432738299358288846162949782276334020682305108752455655578980864964255040466857382386011604280016344574361261847411341940324336083769880718821560694562692769614498587311663416533461944330749372797352605924333245550539849175869992876352890484594038061443997571606322150877965645425757835487851007686807905811351109887754551208656084925251353345417866598362077323846100412588989355363260237862176056478648137028059982896037125262586461711576635656790543470413204642310498159589153614975622935045882074199533468270754569126836291130294796244873133449323441014007119678497554399535406061411569786072573471918420159749762684102769196568479116157839022193402239511599961114457027456878544407450652191031038362885578306978356310414544836268161702265998534680029720369518991102496743566448000950287965509575795991295443711418773439789507613750440487325377211033935412934946254743259213531321350329062357150097635032954074349575755461677634902230408586781695733966206094650640649180919655471056739128416703410014932448736394185974508860030741182488305196791906852844882917678161372130032335433965736304127154543475186190527751644243362771067524193887600608821745025480617948868073029892485300363846216611218885377158701337587040301485300057194783438521037859362661737383507712260817597321731526158483057578851810807068558637643113552979643052515273906795516452391069840399806603855517477431011327644971627766297791949592958912127548973960050511103587618549770789120943806819345929287065708958592527092335462926402737750524286856444884424406974474389913722545250069658119791132749676494554878506868665543779479001323603726040254679694637065539583938410189306509123270364502168900122625756616200546992671577406500250125895979224622907723560167764867672848403129356552899860901197333754940027953813394165305847610447835504942176674596763530043678164742811695794783372094926216994977813880829690384826542027869210976036524207282584833997118071576603705370417491211174577187415380920368372288881747940874036574870096522970249605373448307963883787718994084984716136525631451501169029321498900106012278188275450516662974745813449144721965914119427811263662799189488875529009352286297643539014460158639538933027992561336766530639721908818296509528715022155271596466440209043781548369186337217400706285141219496231760256051426331514204314615889264024371873821541060201778886764779411244161328085107619540917818631570856845115831301533484183219898877379087649701577758611705565995415834514237217745905913892570495780128548139877540016642466682430005107125194172438428827925322090472012269955011318549784959123675820775149658758390276184537953869157814637887753685564583823795817252826863697242235416370127470942368875426403778638444049904278306055642663554373295190090333561989528026483458679344745873728110998022900512904521804967658522981950517838196469456390221468540119478602181346164167652424235260574294119096937513195659255544362700254624335969497395738570178784288174672512179986028905774662054538853014161869908497491002197520311331494567633308283289302119708293224438225220810258809714627930713104129447356460571407010739307664176335174898932626741268080447009342523608434042873159888481598813802931413995484408323321584158656180078895801833372636206994007866001970020066930634847432287656220613906736711127068496709672089140721411467975708165020354422875446233210341631144626928321020748222500528755935764560791210693133069056477379882844110279421035684524141432561047433008324020283582799708257410497625316958329239426963087307385877625291429588118148717343692114904927116498674174212025342862179060993142512549440610033597355260880381181007660496843454040913761404861700961660707479671231876944728519778200478391728818444975132851481478180997370532125388251602885967026380290216209082427871857877964632837235603308271851858192073476303107380633203506339625567640500971148526910659205249983099332917817488067355474093656191345514016265400215533660305602665602033495474647358933036947380836025135848922536911911836491560803709118825486146720690432210408870797541397413707963274102870949194003285667414001775666972998630396389006506784380671734841221946563456915789551355492236198485943305096058461693099656280172343970128138124615347064280118669186964868218079464323949008426099498380614429952896895602665948842402847251470621509380122190228282462307405926635268583862845208364731064872586895245896618179885267670828159438181875558164861388952961809127728159052129860623431353296466033474665509715403896668361158982841834460661082894829155505358269991928923488419894368621139032418774684256196725160027414901414990979260859667025473848997338820140277167148247597499508522601653095318889120992745929978048319799143663462578718544797424763696758465272500000114755814071541520479210659755773069988113486348296095834546856575610150516523374878759403773402861728281471380300512441600894798079702079824147194818872946377859388541149777148166910519779395764772189285332618405012899091734487624746589313979600962058907167249871700764745850393529935179147754206851429486052496429921860272261259473551701719196226849541347872613355179503975198409499826842398120740694025709346743068077236490984355520371501876217931047094582120102636201752615459721915331947062316602206686974515958167126058074972329753127805892464699334948341658003488925702694292741208364441527429687640520611556910614737229363072882461056211189639757402088489007476141310357040600618024863736839630748485936553518480902114696947549514156159408565373452269769961324230325350632709974560535221269188341721485527453657323719160763259751326247069651060576379000096929640410299942226637593852264578571453302792276768217018272772946425315834065744342098155436518632473012158035107108596616994826634068684529721278567778999383625844784306522650237717348840383470300322430779177359207518352242938281499727335929967928497095156716204733950594225386413219320330083828957286436553041425808850302480090545710506796624794571626386730860532656503030375075573937222208531256376984708649170479682796672970847924874575911923898844786651204637040216153254482877746510596219409048013084507967061533061547377749768273781627210979126923952432834908475930097880380950816193064341933628339246213655123562319258237768419484024891651284969549440589684269139433069501424990922816233127198455337768574814759046598377875145252818720540686084750273528574386625897337894973692504156508240606844914546139600699049870937412780569392588857296723483623662938299772863744322741719966185593992350037026271876811716999397176546332565641139842940459423737327558116672681451202822172675859068977919254145117725985281865356570296087979119565118611339359584837741966686101064819746128262668472428655258558893057473926476895004761980448744652573273984704162647893496494544576733140289916236605272448267064058025384912638148225781557899056592149650424727349514860319478991641407968186560177632306348823314969845103746961577017038658397509927917418114315595586961790650975141805012380365981949417274943365925657066764238811143936007168285670985675377334257684343769793251968711863646917129914706874536662606031233216992744870819195237213615625429551029640151301365862187302123303535383283984389851682888335160915939007361783386976399549440758339180260452779361188507869850032663272088619804959700430618101659974645604677801038059536466535874383758733703380184335846454331337623662315205894184046668264453568264461475149571595047897475083960913237094214749353398667087040505896226979298932761203550871926534071913451545235044874753346691568597750593846000969213049072458067174827839182934665997320830816186352116899747773870845078710602831072632753666959542513461437271960747415566543381851324872979879774090502360687560389876624920631720349575634936289165377326218766920430222426123797632016030486384362603247254215716384537995380032831020600332999988864102681112824391658525480351798629856025874592859359965289454712721633151430752756998324469457134726130391548158310683905165252287292600726884555500649647093360851466856158748387420640848890676541268510175790656140951840944152551844239456581121254130965613220760552929666022603192510752596603369315505252965946538927341167300784388080502577484109219620609544129769650589494774836188218025957326709695047887683735438213376985227093520409680821381264142490730271454388888207773913405041623338503036647998380448915693669649609110148186333523974394694760060676213911021862453593227416725401228436634724586695508871619923273270798341049527783434838113311232583095409654151381369022112142565146370425763291892604993934622213687359964964504879540524488752964112720298461362264423217725002594353074767000713381563986473714411583585460999814868516313402838977131030166129520683004789508824813631821651154663566186480769521532604416215447682665302350673826224964025881342769241375370774113614333015217748238901391877829862844326961100529207583244918894012441260378522125933600507088637653474255347753472511449967834131250875435376832865891494919117329235488546028779628442089091013919622490100138458459862829272843867656743938909969847272518158189797677358702813544471076825041275010838526833658772691802711569934314118381280449187550806303091560655804683204382339479245486454453713528503823109448015687332320932846559768714374574372998717229113507078369279146425593805204927353138862078053712806056072827936097132139186727280939618024520717981569165572754509132905598871340609869558157926305630344362135706654585013718153407266707134427148601768256838119452807757569466291761664793488783305933627230061651213307020633540535828723396676450190238791642427926803580802935125245021651573384549595783437329249548204604592879087669383800332488621544785314856495431536193757913083021493172042416135169916617201693508900882086125777677699522959655958904091818972576943598999832501625964284307597160790634666367557766573262706830833568734389901034969275971354815528424021690470053248963200930061068850518433864973112178398718175849086250275219550623432154300996699182535147718857425414679178620959700233778101827370769178958546815526931776696635143476777973156355576813015464926619078267939687430937798883392341117014354997281340527605701040823090448858031376494513484284476192493604678516379819791824338711298367647251665387558140502465539661983002934335754390142648372502215735206448971199183881365879875962485245567787693766356415396187073163143450117489260919721788915264590987060384094964293149737626424652388237754170527917481128644804048424520270455863015506025207982693346526194977243811309343542526374966568500364786122753446026416242883073972335634495181438425022311961808911997333719450536127928352861847686073348126104245147989224955612699055505630461086077760579797367016042056720172246190854402368283877252965756712577226994236318555375886792362097786866733127593050260434324359651915807314303324916265004113851051032813603752363400368252720652927825105052814636532729144636383108451112939679283148627945832285546396056859454858266691098103832270101829826940722396192981233870223358615180975087342717661336996802511624971675767371823952577355487629351416970668090548219813624209152515397244548164921997448330042648662391558648169610270896818131579688000402025276419447435603339152220387385158312832239251244245034956683118325983658632321972723839704576462039004186185678505608895614657454010381889386940638549300609014456985074481661641531328357907695366374455625838941813459441229072198981011174112369697047486288397478400237329903797722706014824796321790152532854812084861235923876538864893134972365282679575608138184496664920437731607309291182362784010565432854365541257429904651571498064679810526449609549156080165130588248577826626141337027085309564025109357250505925949105700103791072159879853336625813683749479411276670724790007877135756194692709043189504108343669426315243047081159593852528976672278220309355007774232702284550573345245361314714271944910810964684342381496079292433865008438042184161111576901163945349167866878904697247891312084389275734945898728801022923853956681146039243509531641162416084898258974479306597106650192078145794449891483503247025162842176678104174139757011368862586184744406180092273829580620052262797217906089844809828294673607044558253149933577489134962301661091224210122337203198413779459996231333344916819339334956993394791506042659737300650768575426338941214445568396534915244540236394365201613256744183209730321293426555289680595998178311245209524538418334075328176322699790090666703164111554832163293617163642016507874651545879725474170034791390484757529917023405371344439857280209515353461732292822277524913575523543026968722060265948021407333083912459558763034756844611085689179129102687440387849454078270238251511225050200707328486084608102913193823126194421598073106429548941935501009026213958809690682743874008706753739130646380751583819141397575831890420074964206767231884665488797365429276336773531840343673507130970173148015004353833662167949908026614373610959780312874987277283385126172022730365632277486731506638221703461096111556782045276688645683799532088618229449344043562194281700479665822248052718857497022059031214974156724713825372434198664751668682903841596964399897416038032502881919023446337218087744375854863005562176281525755271999216972334610741187609348197546330200354133451767788075486675051450513836958436537238650645874471683263016925230379814119845582211057324974098478520179940353994923718238592714858025520903673281514693530201741889989803925832479402674889181744033816400214463797331509846010828949307948969450258726582499445495960394283500299288765106864162377371708946106663730446926037703487876883035863324324478607807390580025749748654937064740633445484483510028117909951646065222785734414553336872955997476722085569234869059687179428062464677708010506674115792345557999740725970629892701528386779239284508694006460606302351305494683552233049389604762084784692308360699639090335129794053850717546518587719787887598462413624984614319270114005215381565075278963465064647261305826833996555059806437411150646987118582841400401056395556543103317081754885701658794998348988959531012125925619713724892945790503219466666136811428116450612939295788190879477150320131046597575573418302929869264098325605146585231163850862002425160273396727732500664226906073711450991444208970671838192102893629439509159943856727432726454093328480018071359035649241998602929543925968522233991969632594915151096205277516892358770337870456085789631763432446089053840480623899392065200047992850690346252309621664405871927322898479160376581280630586511328541111443306251156374395673399864109156745177516775071788833227398391679199906166883964719517014732097736641815177037701254542380026478734544741393769687200541130933989537413392665811779726784908084566363802797900375003741721037691155929226603011853442172714691651317485728727053065029874843031070655947604297036890706524247687634197536315458160150218472918715772765444400063487375267176303580800666391749363475137195517224988998314164421987505493794823765739762811121489899226713959848605634966545446475075027796625009679223147861376438968427592556450089518281746278808318202366143320143743385232845033638631155397247251217456225995286397931199052685828655626411635890577363062355935847173972070349275123304640322836426615574764481212636791068338722422127514505821133221584478772911559342564796162515462312147197265259003321654231758477199567837959761131651621288827195208755886868027549462444805252694334701327510635193492680684449074089675230149258113271498824946407490533910076908204716073742710229673229751650941960684144389861310852565183407144800263565572882155144240498052442893587511973001557422091976590701599246576815254537486346358428917392643603703350990454859719820586820112102576728291407136197570699692296812099757624947306367702441713311089127260799488734182715313893424691902971207014350317631267782415755117803773460309065220684218164259928877765917513312456050706254914080104510873865473332869298002876836402255432258534393575324236366371031482937492959692451547337184632945454146128855397088458849611271025294802262825533378735905912998867525323788772117620733829332315319575785130379190419607572615372073405841096505768560065408412669781613285174723457342436292939507632369268415375571783122951751286362917007821251126048543059014995855882737460569281620199727562185769011466219269074348962697149357001599171474960063020024953646535348274202470885568909875061368497498161886658825011537979277507501700403539176233084184990731330743438373892913598476105594027879201292662163070540770585896506375295590199278587725264812891991794835259045627498020038609172341509041722804195723891375795065448568041725309546987831948510338104142884631879503941761696116243212163254468379266256676195693919582660861003862027743523755954986063477087292712569091215566630818491585364226924901348146774475438965721025458057221625955752523873513103540752975658727937973312255110482084576580713893559894548315242892308987940583206199387688442984241707096457294650414947268896363830426006741262169644042010138971725096200889190838164992199315838758680294453687500729116229634300019589667467027112232148456511845041400233455951929247955295628208650771041651011225440997494594702978090857818138948133905657232740443520683204182420000324576853866587258634358898412874946506315701628962648014013244494376139130450169998853351201550661413984869208181052525532600176620223988483429826136472941118087285288108658914817286139671026389828219303242827996874925316816140420937962172804039789997138950573464184958792458505358991057378863239161626870910751052727929763365138520235603618826304023214969704065811100746152434511083654505360640311151409784135951695601230074541328564751995556871722179146860954227460755103590922994219621506302037095935785842794389752202982768056751554208086872220126409203510514745646646046259752941402549376129544106544307383221620923766207361967562175524158714712184522309522137008695893217487523508669046641890376413362714110073247350709196272101952929555741404657755276321900617280217389321862006336949865372069480949015665060572933629029787815867171852298347021389180732952963534686947974291907714964624453537777639942642774602046640936372068165610164950600216187390027289005575954165522870465563598002760478833813928452653846555879056497360477075808569100747480664966539421363423087109951195088805559955695135527107199547655058965003829953315715309260082991715870153957271438150758306004280479436146042378166893227425755220584127311483414622904112219489126845829583779553083863033470326701436054054497473251197440983792154661749944040705194525108090493134292548735902106168424350870295496973291380808362108055362390133815878421615012651668431382767801728217364224786052167133517891186550190274116350199643333937432553637665318954522425352114686511399365430007563004421797710415130042178658256758187240731018819627116116756384783495070702446360334477990513113290884149043923809910986490598987126429153604227183490319660091588594343492069110118469828866945334725079587476236053265577855296780878974553170513067867414242251636112558385158363668601936586521488174684709378053426924557726861152078814232761174442388398415197396562933103189790067103311105697822649302405268886096660189095106496973720638700842465233545062296780603869311763969687924429772033325584423821526178922643107859470333831367499085177434114368650721189554481563594902122708181606458486630649832311157885584071245670822589118779160509232021962494359898825613219030366427070453525349324530041345467481166500927522445602369181534377075374720898582519514703385583471193222917047451359576507810936003147762048599163600899927375525747509264237614954877669575253008504463769457115777694404247117434427247124925016389056584982817189468011450906583104158586173606703220414809116240168242335466172454422801384815598924354118831261725851314427962279451937467334512862128887304013991957771173568977104205631559333632788705327054483192837345134679740044779516405148073064718606602902496461792090072597219346387064932039710200303827873398344628122616416803780846202616097530932458779002600668506067765272648260937606569548898319848541951257735743254164640473477445954015701756905855105325321586557197435500145017111400243343027180328050156235037593429871497106260587747320037810979693355714724550235358706795098087132265174753838082382343804590235878780032945852525741800974860870388507087880070220483376822746545629250508170350904937952651939018821642343032153092916921330263305799734187073452766463289176650594299064522196502316131264772810938335297172120703335835595628110244362918314782000464704593048954716500814425922134120106233104819476520452040740371803047596872046447341496816137355385392444767238216837983951184301274740102554798501340044439227814599924952275826625886984502561376187698977785422009633621577592670644593648363254999508648187911707358960188363904376022314531896855217218538312238714255139062565592457487177562089187361274259938445549877159805571327669515741326137855291717513244665266550165662843339447966354502775242576766279248814345155228616784076312132907076433074884552537473765822083232492953438436367134227069513815896723889633309023717983153933033798749438189849698730905787973262689983621873749348932976458706432862410100600885565448509774926075645674770104717629944920861721607078680822696478495926779128976886472233942770165315090534290589095738153609265340435997228575427002046321293794091683925435473997180883332289143577977507917009658899365500561680621609138103279687865371993416443178473988750678320602488406011480376288934739620796556641851323864994434280708362832996358926831422818468740365259196765404566044329016463214243720391219876449782913587168871346730652276964693046323838652502669790901063701980513647143855983312372201099849622731076102962180331414352630434877398458699384917286321472329373457064147989445827389457949468357661035932459747745308180829813702724053827905979224014909433315039102019164855018669871820156767926526554415026957567119675104615800151963216381900096667689471598868976882297370945805725194627390873114616501934087447719813375433460284592438964673709109206143585958370772457078426692124567799705255897631338635093710808084490886421335156967483770965087937197710749263753835217755592050580420438346680857075640266800684707493595586092859033510724136606216806355880483891419232579112032840240556091061451652430133846955593787222976183871099995239364855939938132274337390709109219026760180851683240298492489847195606017998219431877214534673230565057420414503429630666661966151369179641236930755614113095237034530473463076628448791423170660018559734494411938970159285529756137635521136879963802296903276358874573351728621798041563897176560439701809686890541747027459245910163127454527404978138366569501940580299869724790145651871550364701741682108239904936960252216697166092056751601633081669197023565381538812360025043514934470372031300965985852589758615254400510758613855032962427140092470159224291411619862654051459172659718393927958058603597762819624074816554809356147023608501772688477561594624840949356827894265232167800606556805371978926229354550422493710301644005600760326729873500521419960369238076032255253998919665514553277592783373007536318578745991432784412608980059492434799362255646378029062232378796960251879714134269337811312949722514593240618173883343839371923751045607086680006648054994533168888159232117816472703616551019935781203948689929320973336647941514787227065482115055360211238921682098850543222956461237786175410187916302023755791566617054244295537158964033392525521495895048107816268328133530488277473742596644049081029885433765158340494796383508929289841279470369560066973986579852965279741298474993386361566887281644022354550658217273037985147395917177012495094983248865997908338374443018000195988000656571112623517119304412320693831604335305202668386620531976050995633924649737283609345690623007355517689522628931617535887988813787139436256804346143621902527427610141911738008917341270130855660057654587173562201720140908095019944865537033736327301283079980233852615496141748784144082353113949818796161972204852810331807927312655790812430265465212996446597533013088456761847298836318204126084227585967829855321790700446922959225677161396103130262877967946036280711931598421814751497994994914318267363045346894785539455673157287619091407954673128928260659777175546730366280063756684615300111484955392367230883888395308797498413690797888725390691735470713084420641690506187035932673260235426306389535822603947951742873518728244909963670996611444070240720977198795670915671762002129249039524945211243433321142275408320873162612701200023445418951643277692063676930162073830219571279498779548382793852678216478700342910904765120290933464785221250723224157419908632244104728121972053145063958883341974015344440321149939594662179928313663182100796443992528552074663431599744871399455274321179194600017777738611994865444994140467894067367171698521220101224217217397990832338952342745189105271539449532969661279510739235330664588981085665980877795356552711893188479436307148013490036149167183855822801761915381605194094484563419736494634813507241010658075569326880768421487000117480593101701548200191866775651279835093988033252632609219972830615467833640511388916404198994964614060565651534751783000635344201105651065752545870883341014651525799804060289404564581308306925410079052103393586010073688106788904041009311637445424329034407664111785519478843083890162488986042647408180447406784032564237778748858704022572585173338049386486892013633265036492783104413928539564630864922323600266394358639617671223213776105223482363438745318434355466975459963507046458209832066954414832577026332281051883498110318157585939564395454326058322721398731773491890297986101708885016233767277212804025343160212720771689844727986875797889416171332521492939211372565837557646620822315224973667760295196740150157550335491887598480001032253874445013973561718621991451618286324616260543387324783159553769492137838298052543204838224871741601905842016744326887684962832436781827228890083181252127812192887018838960877072618239157908820576650946314750632306590867141556221350822154298491521715184208876454341822379344295869075705076263476581976194430463134811662104473385878411778985497671989417325056160229641396391421208778681098309209839991529216659546042858459237626080432608686411096878359829480917210844835531916979901789788692688018641768234009923971961533731231181863943711717216370333559078233509687157942721434397808242399587490517366883043276400799145309381441206872977596922863447270585413572858343775127987840091669296267676830925840463454359957021275370752860182040036157261625900640246522792366570924052402207095084142211792397536620204816594725975782006035036530645708497690453941033219785468703298228713842921480757901739829843375342195202804307340851795127060495395165483546646554464042496750680213395454644001501671750411817413487615617441369019450623172814239309391127628796743449364641110275894223227309055060448013909335521758985235287967512148897690184169876352230906246145389710661265765593142020432060521259946658502251516420235678280574101919970496408184217026724968761314340256968920930920185357426691200631224373491440780007190649122573742247549575091886407463236058450297407903252599377789622994022828236600925125765250323368922425336433935816918728284650083909393151989425365203140385994356293109877798029168193732448081117249841997410552916730112359833055935133778688767291296076425613326540450560592377650491017213970089614406147831687321929217878211928921786030789474234986463672141755215818490338220375286809769697727520092228775248339586037002887907547355968511270611909750999762465981615572827258382422237000259821228759100257799907299911181231412854465784277223453629100155767943379344576589624373612897621822661903830110047745028431795183656913170630965148173743391618986411179775674248766592308730305813192199553150978633646961008065135986902395326925419858657211422757706803943320130007075351210510633618389428843448238679141804982545929690472111787614662830853717529951834376345554070903831335879317000623698052191994968330942223297196651674720908485518191198909288427038012774107617200901325846810824877612184893843251761463615080594603414404195228166179992614556015361977540643724929805783761306075757747542865701913969336424743831623201855221545314827637371836114695211807757442677799484973911732224250564245923548331130779930603621532402183860313668514867396201852000346746343609486412201736517765784276573692330507378625121368415449111858870950828240702191419012936979312141766588949337267279050355784541002561324397501141875176420795747318490016044599912178917907307281745631018883986571371484411215724961874884342272848731806270513777878473065595594073652848680218796061809484925591113990041360683200393422835494114681418454060615910722581854976615839359006108521154153553581464673299764935932367035209772497565558772245182744268669645904119903300361298720261028706479766005993647982815441681193425249980509731901824707453245638753430460311959747758603574802578415710342661116868823784994273683458597557008799131523322836084778002935841305228914708922482617260612295038577194364921216316571092525462732288749700341167230118158544681910184399794372411285785283489620339704978042946121481453428965039337388389464932669301056551086806505515720883926549274009572990673194011542948603251945075027006501979765082699723215503078217639475392261734827925720408979677746840621856801536214469064280046925931010200045633157110707189570206916666740427675402191016573018979566231610927025394070653981927425653269458887008934814168606990864957071132659629362407253812185191185550055997189515995902611241528746507328328953012282681018122193636961794354691629668660994037965071544000888945806381095542216584144142432801468216674504959879552013169643345325975122351404123462735537519006384066895763734261895710481319616564495050717762263135191852852864537188785055638832711285819873099322604024806989004232705445055278028452898102470849887678972434381766706404399302909668379488263293991856016947078918065643878326479627171836651766939158790347890938812404415665326004675758894519898403493134178522834720072203020960881883412942216117621835637920685696163489345750152553258007595098579552186394861380110689627119357880490430362089119616185444308575982964243734299814323071234097322447138754902829585260606657444827695335399050486698132049606408613805760468935780603980067256441013486602494358956831276977860495671830102206478227005331214008852262830890859908036289709730212360287229429377990146413015167117628719192596594432162843317390870794357253836682183040559371518407590595720881049295587803575645224462011765171345126491151597024184310619554560085580689570705181624825971422028343330404165792801471264794068603491992161455471661475277518405855725415449860803799560327082370526957102932117661650018043231071309675793091668379440536621558002369393767157189854611920473090373161979565478862724629055948210978580360973951351271359309792523403055413497459389846420839092037731616616540631824751650501491047573025411559542706922649602041741058665904034712837235307250990347653849093441657657673221725337713322943998206462807067518357628563250842455308166887444918019777001420821516305881692401473798289689535481774592437995917174707024680984802190550174785369221996152140234101988495544035489282212978697679459346310498192971486525368219121974794814341388438073786892386575432061390407203973040812292420530911987306683784423503866149672524827800608502110977716959383103031369343678223031461232059025820726711570761340142903817483014895067434129279996860299589338989887451655248225720976245107293258435862715359336745184118311253255716987862733719682401544256017883306862451585791535714319564305226368323354212144716398308012645222149302410853369127058117517278762153642271540160337389220477246630925277551379171459439000171938049948244746237467704896531315811391438324057646646354627859137509842782965586874580333065354978352744521498314741046391496291848597738578084019202207413394190899093027569378845505677476913100861755782730347663015594828620560589162238493486975058146565688214024232426850834374642933596796079875301026513976189499597346294814475523217307786350755898685698329600255793675461131837166029052530005536562996574962761605600283679725842905417635401397011909133462913896447192196688535126492722683749587864379539546942551116221802241988744400828825412025436508706156213246883413296373945716095239310212854009199673422731980215596303314180297067738521286875611174888876977564973553979438393415740860732206361038443046404731104952381835268456723623300162036783958772893193332955848838307999130606137418309496629380046292976120216312654199048583145596153308244186208397946465106441290062069709759082823827659623095226684670928990592663383292558883497124601246276949207021764524359883555069285104250016183614276678530493784918334821272248638425544883653737499050290445841064011717556829375656258967382297961539323357390382487966352660831035024905839048553496516630511109822443161840887462981325324203439152391106211259921271787271314415655121642348634781131936077980561032787584613491831840303513873009204742436575559038918313909739934271069513093187329298373213690248918412605042920579297897085660969216864625059391766254850157433402954582937488273206161663201774667583026444737179910474040272739290325605307869877306687345455898929139516714040213713851391939872468178635867705740530998835732126591751605445361483262952745948670242547831009766995688445707772389397298261254456523440985427665315806070308844054177884682223116301671435442479792414857714657745256460111703546205100011982536563124673502953814593082527644828830818698143569166563637862702909826067261789601115280865356542154678264863669464941881182690368258822998201959055222743533200094878762872806600083465475222191725099331835760631264181523363147534898032419050805541794918410102380705989687284045708278727304537861008783856164274143412504788206977112292562326527313106426081063285775267817423763411890972776307130432562205403476977007505889486505451993116571827023498214802943141454533855474879690835132062449649543834852033153167262829162340728499340033741008515533639037670832946528211003339418002375049889752310976725191649051076326182804104879320832359454425948606322439041819428751790041261675790283160719749454264003061784641281322752616435359712278305438744711974957848302527370368028291716277740126087779643364888711973206154885149449312282298770056948376029458585435659559356121301846248757993853309282749336378502453276455300929736960260583873824245923735991899787049539553827893369214865447168214063062488354144303768882233730051649833329241486615832072187587646762563141668632190216274540624006143389008664599841593575292828823420397900943765362451414140993902855700087691550879865716102180992508500322031747663212984693638330536593668063315874112589530202835338594740810121452223655657895919884183069755994529410103728546350501496563215322337257514867761181575672257379013468577125047492200286006296987858020094152345951546671501706390976477428972995569407310860523442043963258501321769230965237470750922441552911427245516060651034370493438502427926160132547581927019333710702537668464195388098225688502181973409108089638849383972214012692551727461029188710781293068133183388142980320400704445257077655896761582132907368850256831979191934966630473201722275735758090739814658210853530734388472925501926128408338175424192659319177457050615419369610285241088564500402482061508835699012553563069393347879762346950586995776843583800501097828584648165585131569884794499961742113312152813773625753795235758313327942758458809400064192534544996768247551717339845070505193479524615921432867290544591733132990645925017016766348959936363905985145038124948923444738048679039789830459603014946168672267800170602982055314702946572364920742351735743856956208425753015612852959104557307173627085001155256255189330550524394569566037030766793604118794937911079049919361929833658940804786629433604577011392798442202635376321368183983827129393588626263884422702960623496873037325763931018854775076482683559703202458299051504880678964364226780744658791279359864819901594687165643904306719738562191573534586458831322665234754937060902845198220806400967335896969849888234013418740407343015750182184635084837095745494178464946844813075904384674989362180992202598651395687902161768896433616378970904310404129145374657670715043955510366236315449232663467653262440042370568134610292101286870669162421648401146311511525573936323822627773676493635960946775586597876560724161667533800013372985273159264135178127765933351476489331474961490367943890181550304117318453016216029488297274918258088602441489130225576340219984170169939820734047196790414705138368793269456673717252483207788552785605465102305590840048878217530241517061103773615878585516632414080987983333763779115314270456613052696555857681011502599920520551764812565368516739427320928831782633799879180706937158293550835995183361847686740158511813980049422439350719242616874145926073060174370201875386664192923353925791888872575290061989674542467669826968279786026101558561400424723292896142837559822429426076142598856128093335054040677762919352456613796810691525516595269826537349846791553371629179109778455681484769320148136294326787957920674081184705587559581180717403370404548196047614125305352979989750743475894946495253305576525989845240014618286148466720031848502323783395450926464843013663209626694516421830225573369983088194041086923650746419462299317131341525415132607505587539465739324442804851315596825516603771592504213721906242536322725109580488310113341623387467976294327693640889664987406252812119707093609479216383684026728795320966960936993006467315774344832237395318948381291760331991898948422936341568391162898764475473844671050829708622151554165481101718036782192894583047482511984572303673442836448734221247486724354719368413893013784742008773095111781166967948703151551602455885035849678535817339199539099419494961766605211643127382970095365837671783285185114473741325060531823328008003527692074556723547385391085400332519557540715381529981282509049536926434638980725798899574367487077995351364620377623526656869848409439846867223912701665760935188023308422695811942484956456147261083667671019585260950550900509409199789481106102030757373347727761300903829429801162518302733528442628305248348665304142185565859427030045703909487151719922176942906901400747660059753704353006025508563591014710848359050701661076464255073926595166696567316604391129712572277376255611353130852606326724932525274191865423399088403892425169110568696428838119827982040162260466076612966952859027085582650190419277467218223556604448090606945329896168449675440404981634186024228554576951556771217937488075742119139774598229969449721683808319172916253279778141965759779344152987695494208517132110010824519969925842644731483441807422361204068659635853017865368085578116467232055860513338462067009517749035745386730134913617560914145350899129292658929370793400663840799268666568808787478191989988983894360996084465146674146745804246972642412765972711161029226460637567654586138633001107243628447714961406094614584437407251113492369443225394528388533428237877527827835001521517348456729386370190230558460357121762075236050699772095525547565260803479246613202875769389357636549089272329456800653103702669760649309941187564847715603664772393688979349719622065589571443453140741350027423901534263741324304430965178201417746842223337625384491145955963609326030398235330954638336999893309934898799398383656899504644150366169350523531010072296357042472023753996658186360250454259541733191499219044738831150287825132469143539923426754100968927499273418585818186211470723618954882297346964832771820652996012160214909324753513329151258238515886911060718502129533112285571025601077677650921175680323930490588278672898104793773850428445062629033007493287486817635176882332399769863646689023554444753025282968949738788802511378497294409599269709155349394359665922726691823727796046594405714861084740074116488207599969298721077369677823366132295719416166423898203775406487969995374888082867743475518565378376595791595864964433502025683486453533639861494207585681026125312632360244402146581716384601190756552582475846685238517687222024436942770880139525563971036813058850628967738073206277596619835652142421676403672400120151193182003546296614892925711684785628516294729242270417130740055330126880819066802045167663850686284834868111891381687803261398453460989809850353042531346296607220523368360878469410774118833543361413997423003242283650876889831554408211244529583943616761679890369896306440563157717310395430073557573188720003813415204675279409512413157711144572675982528164736903640784895827216273766058322369693997969312386657134540222881623630111674355403662165784842099707371316950358520885658647996951813589909903717551293424528678015306919988344443559895048132799744434768510884506336549556793011196848681467015593591212061536135531324926308384197099333479907798496628788399598928999617630789901052307747465257403714448091213654348481213338015556321764356237702046601424159266912813926227893329868244585498961997017014313573015353033881078266276630372902579423277184342311456751287339891381227463951495697084916159464250485494431078762601782903389098426872011224590069990504824646165874405431995382082507899661685589382294894656260678940740029080006194954763348004085728657268600224607622932894765049013726935010110676203138157213752688077736954534544639009278448460000553617106356112035873901351017771400740791359353009939563347987393067568543002354815806582298824489006701612954302107940828392948604763017942245594441083238355379024226173614495428283236975150255184962003407137420668632868713342460162768618183793986753957017515373293100070962511507520567308763392152501462857177095968684067784507674746861963232037982231847116595235023290067093655109846560697446025099734284359258824506234073144094094205658495946879432506053055544409384313413537968461499019695774824317943085994915361479282491559479025457018846491599133251387314119636372053678335511335108553874402528795469808156709689823877979673140656826595874105423397538281244316467136112224395074202972988551425915335885617068522670213598981487278471892926899344568448410181754296408454716798522636712282343041810223352450366554922531753154361922654403019471224915450646845455263328990920637836587583103172454943314607780990321924044137760597543844073127495331960906042295652116869498128619961309726898574007264405146801170627466163063214391356586288371528089544651727572269838324908792349874417572524293090370468791621955465526177791796183005260983371286556601174067607226180273886975877997141497918461357709740693471441917725275749517899519175228239356068746644364301824779534718455347385292722780990867900127028569389228778285171242430477022800871640964190857690112674320060350035231194375226252583708071000127597473302312110895583707329089307210342529756866743375243249977236833216972215509682494992605170706446645990555158109180418559395426604151452302357559908147010779828419722339364942225978494240960775746268645913737992236806225515282010020063338037885030718547339332679812852038209469722588223596611264646153614069421725854671771060086341323519235639121889725927378185163884602963843017508649754372515668688934887048264293000672917598109781565298729205959835334440429072983249675414181076793401187543602362474740313887900718072013026228417311138232281805507791741833899654437005001047708002378740177726169979663447125040439791939816204451392501508329216205117145507400358704104759493743352102730996913671239545776463466305001467800228520825898819680186066770070127888561230767459853466676773785838872950619667200565026609223836183531624566599431273101855060798215947724884919462505848225844714317815307138465713591005252181453564729941076645815949211926431872039318643249584499159354821435656821857796778757393620357843613124710472919442400991797983508418131627636722390937024340427016220696343005768233561117261173340814068791426948622848365696408107327720510075149738208334983341374911545191816373180934669543490042490223063212040081955889099711044855000497133719703031247415713877349823537386496359275920778349753936977953957223407970776924854619765002661232227331802833881907086860984505046346957120034797191752887219972403900417880087858125285839528671383278273677680117056713322040043307974468636475214841655292740671309677469034960956730255199440763657145806653559431046838999219640472840566025314531276722462530158531079625038429694321549519317022135881885368003247851537641632113914612288996299258322854609689242515231538124605595448190299331621483644402865947910869375821549784590757970695224885501329546286956289482194471970052906026337092773268555906812359780609067564596692539491928637718337323029574872906443972370342261025362139454228157325186266934584317381760755749946200387873956363936793378025158770020920426982652214879878833385085410848790708565333489341452423506844519033365136670470091361874120572845483455830187898266916638816618629822758844388524237744202970640444151784525197721315962585742257242936970998188539777868169820912693598479134494707173996967712510508597898516308380205016273653927854791716764243119898813659092944465978004030503675025229119506222095543169286356156039181106253308449896723187855654756505298332041306578473290157295694805909572627728469275473654224889783487160499784304054167618860331639193448048811938615960948189662746448786422201801171926065326887912219700284620836319748099397715214175204045966623647091226985758542477398650431322646441010597139926327019653390354691617738883012590128496567094242646705459613048618939861415214094398476268582786040294678839411923912042197111346546751750360285569872642910534823382511011543197612272846810391124754464408373825222085116170174150207776213814631145316868980978826845707473815159224035311746897395569428847519984212517382517479581393641290880542224267380265382405653647859142211554566326018886454311555743942602537080387516069805157094586360767181082515024044542843121674274274699070732578798476410009151500292825038202688844030094552791504251719289007974119105379601175183149229209747843857734556120452361963198665116038877821599571872077457722506197086404787054508112363294395141973701016223615649730407036435882775321210488826369378497457518741046677798861813264860775721241323557505205723284504345405758144393248215991089735492450151133090595758751207159856748987895339848875233784748315975961724205856562534443027242439831541727187448032012414270822399034044340294486285121445844162462340512110767638128843595792980236433990690822519004912944578027015905985985805291507121870421067539805444361324056923143112031439678297664058619340699554661177237156461667815252303794857347878666461289833682185703261308533505409731386799870512383187044522751983025767345654532736167347799904473568196035807249410262720682627562504248598402754206760001473601535741742952413177726228220959013948218723522169783994967559397072009224824359094144053907467981960751045154325204692277234024746775275419843406402480502756888944469131420647606091965233916292201044034091087656097186764316411414917863816033039441645712292411864569840875421041429846720019177533286794554687979517398406492344300491810548422168863165746470758015381627178143796194906091836608697576433704918927014329601804334807809257486877931391838888665253756903061168711157412322896207431222468294617427945333248683480921074889437404708555631632458318312107029512452506280081480351090657987254446845644810430440272447212082279682585902163181945639846880245258672782938547753989844605608486060847719981442453716337890418905659103760287838116742946391754874563835233539821152572241335271504746406726724442939579256087441164401174022439304701166549665189934992158074828210557191329002380222783707209265253926686627720108373007145432631724951758497097931458745269669090186187540209949459813149526822086615379164135457269139845192063678648995151835535109174230641969718696139724512685903809248964002265578518471201779827724278264992298217228754280043132508436056215231743642527976377607033272658284417703407571295860822849520664303375160641374807074665920816010466715399793995035045073913455386170493614035762357531902583007260458346202425983197994539139715051979697647629771586599827327455877542514593919036379454335261738395643628732158456109640865946453289427002378766323703204566243096578361184810043614164744752936872332292615442300811658335155884706223891731521767282843154782502750968478356397922787704670528672150064110250474849409889505362542623816655196302403232957984930530495287436983271145953735619693165430428287785943388723445129652953014564238042006142115821037384428437809567983787248022218468504559967536214802881470426853304815387846532001321641072023895439885620053985433705253687862963635031136915429972959148541284386537447025930043240773981418890504167113418501123560134560566522049137020867944364289032705809844463493675558113172750960347722830396395286564236803924905991130109354634471307466796542328844948454761969901838445292996079727816805960830473038140972697231797510884616151291424368719639082670433848873584953283149496208683237655977309875916546078940087323380756627130861321709749248428618827237608443157088406603264431864973179381040011278395150382614267686023078882240729686513705571615198976276212287507978225863345808377030974175174278839283642930901597034993363625895935804955683945479414554584859580730455599636158792692451102034989471586381014038851371468533657589658588676217360990232364521958933790607587260423298078271270306475949482603243750148157743539932675383613934506821660519602377736799663493574149901954761945166843903745701190442985829774959743670892772856652193236006330921158926721250578526022590718007596321544307012910783986110667656009948317750512139482528625233824615520593832576924320810717329504724962365082787482662048515343581042885048077078525129157034593743381333886411143087774852296129049077371554330632436453967350065355942310438541136096492180488362594970335583983691850894413808087940605883724519159546512422047072086484964698737692015037775711825023212030870103757659218427823913648130414464774381519580017616303265953248953737671364924400559680443764881631627108819785522024685463604107230468987474141186075227021916541835879735847893664211112506732199892169452657965409896956455988702258238567210460374017712307980180561022394975870168393072015698922603674759704386409282154026914979307523254914878347896531488089557574191260919278548431383679823610282540675893731421933847806219354527753580496872898991899927012078595754330570805723944536969157007718406612012423566262101334941983821908332913142149932055530403577613676627128542566422487476078097561990098444130067111249634790523423201349559499962948516115696991760704726553061463117330052178807428996550536148260739829079626405885129174257634955463064667152828757811943938521375260375534039912556634603461754018698303134768928996784171800480325283210879754491498373987956655237855974585734056585107114146203532025248038780931567798469438797541830464964384591143796143797627916964352752213859039652856356196273378048734806962766750976643330955884564872377842010244090471563876499703154098308237131616129365407377951318210724417678743643102827454888121311053141439979755426289403750409570979447432383248374997531930530509360228853880671313281017868384072312404950336812757425514522131972231844236092707721021701403025968054933203716612805335851683597270671524348843645722106756484896532501838345180057309748539914513178200468284356449635555707472156626446920379376369032672781842661914670652420620889660314154518792566260545517504789680911173991632613238127098436478598330726838921271112046852988633067382765073965995133323271979026826668445733182244398533436512319293768939148374791786984405212386273421428169647499505263403351678551225668581262190419565196651512956796139333615393675652858606669210667954623780848978724727539326200749893555852816915293371424569602175062390979243816671788622543996705656038995751049661323657473346277699271311320864877250282375715865593074159823835412917756035023805242251539143905858620873517476099035789357065615310045169144152511197125565950377899787921977562691288020789497483993814372746717426825596418567251523280415002764660307810719193873087108999129068338966105825513131836472191553739808749818307061900707331311046208690326887519446681346915219820454366118690741343530514395635880385673225569028331948592235976019391127679859886275535618073018548413005270394271587129540959490800857008051546583117845223688894561313201858141419698077290825861174633777635520199951207788278561183328871001021148644211715337153225487969181414843334455533275815207019497003904458228092660124040994443138048937619106765781457749025232438976888352654777262633692976879337749194694310210013416504040101019768121006682013769211127708518020075628140707167702768424349572089865619067536981734589549275976366635160755708268469541262033074512682322928333496787404248321692410849953414541341344550156143837485181768240780447898719075799153731872687557227227213956632871644782070142880995024609129709017928613891543871974969487946398386226685896671380916712047584057064929074682673888748392600714723855182394166257517258631438182722968790432983827877971879713247101369249612076578143742749932274673164592787081145872990067837142969515538305520953169448523769811384632941876456868409587261971053380053674564253041040717387402980861877541199178069589835881396500261423434556865633020163861237942225088603622862032148739511039463807024690327195117717510269836829485065692859074728979937368090091187075268076660737386433741657188109185470529749173439553698872446243158330115069535943764881826659960884892850323876500090768835716250896108762649826004595439348254069162641565174549543235542944420714437218406920931090987381847955596218291533997009808892275261222445981916620828143418090628230311037317122200305973875931771013221827908485791973782277170367166700622006531510634018663777820602212313081595121114497334863797884104411391280404748664913298631122899037481958044030167207417229757871942812078587631968329905666938303199326781230662494784438349065859607209966516179358910928923101483228072024012911930468912674715962516524363199407703351941669796993771746569467339073281243230329817243683968537266855669969621151083990117288226138810523221254657560530399138023867910023404606526647537211480095207332797498701317178448234553035231681108147819231507063848917603048607101673231793575607948897527368258396849239102564259754571309113871622319140788060687392907010582939377428774482762057510892357713357413955866385730066527485689728735295727532579856046308555773847764840289228462427475356776773065168728399421615604768519310442702046570300702056756036744022738102289171643565838430463514827890161928237250621335961463346802474495181545825726527764137831630467927075902962072194881240973235107759705020452170633514433780997876357757566684118319071042437257486246921804494931068783258636464819726976295735639745550032915132438218169124846118294568038592425553227586542048814347274120840657198428554850845228025459280955963221909997658110397430346355911808247233005521421499950540224644798501828877943360669147453514181348581337662235558409129315026476508067773763498349652942500775862565722724276328833869332352804467271825810703445977435530559118619031715442693862771377840071071409421502781813406705831827215399746423853973583793867192039615882191650988539755785499742762182786006034447290396840883694673143713840500314915868788836929704509817234678446873311031118158930929213990570872634395807111236130821863823473808072468048953724317159244240465506979566871600395288990882610971281658130904381070227314224447379421414488941271871746468123289013395729745039560174424379653382694802809877591034303292154011329099179229186664113914991403415234598614323638913858271491272606645958914012273419356904511008202706030071607410420971386344622872378555458593311702470329574141981878380284434275904054667846596291435084569283710109047030040792443355508118377770238939153043426403784458581330790157790872189925803168827025018586744809730222522588032792321126535036775806302338975273407672636794578466093683790343662536241245210956624343983582417721575715310613034587041441457876576736609704906351073938092040522864959101952446294404241199029319292004138851891561465293158519820745242342784375540992255075882916362083789144809847510968778067060402597737651639551592169860900528898312132887496093361871387734917968508659623042406705622313260100943208982790530759497929439309911389118323174490926693573466598574728974246053375894986678979674959081505563204014665887612657225088076029297662213530209255193810466576182679847959235785403301627936029707030414893568726805998797414265004107351338399353176123172609576463476284111602618272145289832204071760068824514253492613512575244186618061315092197851686777823244147208907543790425293809450139663772524808258846305367279453382400182784351282883356878838227678552742048770803402493861275644845418648373117917305223806529241674826960706803227795728163723546820114202084808217549318608009128906832469134578751196791766371815674809424158632973137735009191309732687759768342007563593111717987484477261820135274623211938381584812076096755113704715357264905676660975999872561157782834435155432155505180374019746191083194250502276892409243977248528201924370913609426162362979090197938245282350806341809977719031285375227813713635534413732641386445258969224916725509827353599660650414565507352729804913754661454331622528994317620210209933776444314956561582338473915272416973258668167982252924656092151084720582299996103805205402450826482979912546486918792278179686623257388610339654411154271554072984527090505032369731896340531630187944275031626635045808790882395177321345971031192977479955129045156453320426651861267237167463737446871154660567060658862218962924408172514350178030663312827027200282635781940545405814468224646158800692463756418463300159500454915623295266978553048257761595646981515108311073771719896575209528719459180013743675295474267622584317445311511641195892173194109341857420916255077967469865606687337602026971934770250007453592170041543181646938347840695117862297734770176520567223255769859512092783326696185882484505255013019872120183364453010063751223815102195892130168331841345102269151582878576937260367990927528001547698868097932201133037219182682670430924549858954335427483707068806582778556551799407752691019307998243101561193473446702401292254273927474840720186337616770062823951151604074018101649661686566366132100760258734630706283615266325360337355525164122938539560416230251993331048732963464088157952935194981907473492396137274547757160170684155953764014746264290586475597335049742150944100853234429715752667244658894512115676637768288821548461264364407226275433274579028039592584548771058918479208337903892031376213157760102939583178968730078181901360978411698908374951284131594812114336777321976488561336869204905899102662233494511010218946509338740677050268585239326942322446979747581644612736199715380845774414942569810705062047980668568032764349278015464930935125061922498487735805770254999774046306446916775238240701711079722701514260189485086248387876015518158524092483808671270026383464846573028897271071273620180814022613110485313264324457676532820398529868822919572453505384376882261736762824765693248560016955635452921544272599282871830350896051762640636812005701165200311929377916609342848295388870767996613218026601345254432460407686773775607809728722033128358640288180805219335450190634631815115228077583944412761024163280088052354290643942055808589067604033585370852466757588341930812335971015067389732604229644022404809977890567124655777082711001772491409323403011076039405947622987762319635166735300213808809216895389510808744547594874060013443026127357552081349757476834432180763965225613399524907320238760871600347711415055000522621576282093475811373509727322029448390177099367058862585338036785274631947808701250142578043533056571202425457964628614779844860110639185597037792269563159237131785089920149685738896061783005411306182245331719732918908107757546123668806192407913100042108781581182842984911307503368019736996080237856879849225345498909067678584526664470829875791304918987320730678380931157868497760930410302615985240110950916044745114948656126086664627552343550255544939551961502158214942740285021504165499238497994533394570403416543822520177960016724470625061931099483120928262867682928698047131507349878138128701421175217740581716389668169156160230335968719714817769419288375679317045429969374766203819725574018031857369698345123811638364444173597177346154156736779768721737661876768682820940401231536831468099566657269949787439749877169639648869609118837456834618051979479990803455048347394050818112553301851181982276479363598961599818309308471315954932356659433529796922594271035588660630804299311276552401387871839125813427625397861889328289862813707395032494312862334646255169634157092466365666270374915198796232057138679562517191633040159253866375057156386354600905913528670435024150686425391814558113017592105893279297537491952217560860126974373120483465799094627240187445113252079467189291027034781018198352958391988294909835752593154550099969158011045570431763077177602058488012171608765044210719754083054306820825716867290929499366050450449013515029409320288757967747344274747019964748496970294501363985174174361642719629189572177121937413433233634286435312776574973245893020174858895397041872079268024406048069189479146669388668494192710105413973151671132171797484513553827326257362111612758555251438127664496232124050812954330560266191271533836081615131030156281047979630891440019450599455316892404173081044876792656979104391609405477325614669542734190976564002131552390203903133785703368827191089188894515764119727525898500829430824607668572325632815622216969152958088226054468906661791883956426438618265959355127375638800702209196965739636580013527152282249032253009893529041878438458445210351313692051054612606658897994030509107344408726138728000081391122516517590926000533731520469476240341385306692649048076539448113776410779359663353241572681531598146669538978391930455745987602764948156691878809529136376125030747037892894317054327124636933665139442949976403354063589713435042338917524491798162799348865180912514583323540595609628315871263959760457511113965708099971361218589655668839046524497514508288682678020481141841514417734447816503885460630229791651198362279309906251593136511065812013708790116373304013807929540044470356599741050929913075261069708883795439542823357401982147900974789016430103333462711526175521021008865794462915018295872974960504141150065204120664633487682775765926481281628264042943719217540522184884184180954491364815673033315865842368654622260923917348649862594315704083624693278114333265888193365715154038034439638266501320818265615886001053825745397037117894343092174544444774700124741007199788713884185410569725002123921276189018863236101623359958127854277691759318213658264891822809856062121413544565318471974165150259081363396537924315798782091713577537802698352436436299689904275683964980032243561805627922933712158154829070526256925724066841260429069934337612384778915655847014314469331161960842609711080677908813846033914510126364134331273420031717079218519310765289376047668387363484215626504913166680767925300391349165248456024529351633987801606875623128437196013166833860901164358940169311822096306104227201095648319423801068706589536398114339322795607204978354742238115253976100499805363061283606972046097272332161199625198966491438448441140904708551633086702579516836039205204991625152628121516683430702726978615193760066107787885144331770640321812970879467194241597646382904947572443573545240813984144023779071451300468746127558293337301718326688148761177912703823234161426527182122055935806271657371043959493624939320970523585751217357898081874295362117768332996631475526872978042135743456226051514358808323120745071259806917816074809194536226707583943248925582511275254088437352718221971880701902842594980707804376451637627985225482201501662284427404794919239402968971178372225743077241787377901067276513741280164677284454513629496817834660321948370005014656815989706945022033966066394471371022612889323934043081974353230072128630245706017187835075320846053336025864781673022773173106126613134514866827639107640219262544886392909645343931576230875448170817302184579146839256862195147090719729928367552262254966263334732978819408681910037771572364717830188155296855567325234994025666060227464421554715374442060274919611627037001616276658834416709378603328695550436946711758180843680224085707514554346841304154743757867764100860915301104501628752436223409242978962189086944876938804590264188390200626809963708283114513094591913409456427279456988807079498556889690372224917254119786143906191781247318137255254069421482125786529914215403151120140952498554882102490327645498234738960407439133654264163711694612769830434920415262511301736525964260401658114427153066959705472503628722623254353920267717644343780531347996581662849508587452929430773036973695740638163293579855731893907652946760887822527172469972523469397916648543896297215979027696858444612899341185629910978684410921673975771635104792306257242469165881901773988752487329062306330867962235525801220514767026126758797411704347031612899543402323931116977375510958760602613420523975437973916758767240393516054382945584601169300019159256695629452962230084980621521051681315267067989802393796029676419564861557510264304868645841140256576286148308861892761988192318898114884402597459355540108058275450634819478602916745231436253683324361026475254115641938513935682541351479281403476795256138617284041249338166854330553658682473039387545426133212474662765576478863227582422743662984369417416780275909418186169803271399157000541773534160506599342378259976403378638152449744466539428657216444081665509505539962300955719953566063647292593832224382248322940335620773727856049001380303335593261026564515146684777044871831311619683451055441401368336253832516629232836295042426482943598394300300581927675579218837061995788412418126911778915487734079632831824264516010802344947637611506580179213814568654407303838172761001045477840450803959936987441680426219484775862844831509818057787518335312951861025076424530652095890496903208494589528038500930965121923380768759044609447582770756846263646302369430892305016845022567660236690155314129747127022292762661493473800933321844648199508213552281282956336560976502660792569320598861403136327316183090479695793025859707253061182279164104523451140020887374830734758535884708379230015826037265704743617903166493705664408849339539183329603553555352985411482191393777139853645116259317529191018584194331291337154191731446427799964167463128030971280111060419133924573949835801582854397787375090891518434827915433580495130762904785703006928174275626048131180383037166700425676629532107786523346200326213894520396345345681815082082112939034524480995715453467916183003283595453059049189364153135841546539144796867959509509212392193101589827131756893045180209025272461462782096235329115126039042449046975764031948878087478278344008018355406844860605527129467497500449853857108965795249310304505166432358269731963441019448191196440828623347861490264125770305685490440808057753356768367255033112358427258747780230483338262452254876469226321928219833574838059742922511015376811718535922824716876666823875621027894174621112753690551328548774320493066424071095699527679993158406569607389210579999633033911904474283297603383683033797021372166478587724455735864048860430892882140161297256988452901453023728986591424208239976208168382398539232250940005491432433819601010177489813112751755371713250379399482655515733415699031384468771993996232097895962630501810826730623819619846240681379585192108535737102123269183614817561884528825183247364607755026668907643789219213606316122941052523989537021264711718448565079403754940322707568169593806429513320759453697983295214760217983617313950696730130076300197228833962611579993334432361961827970709655242298035684219437320676324195233691982862403797022388374046616078946080281038342886762392154546221920464421838706722769987988107321282380940791111233801173769566066678332874471346920746086032799250257258845622025415088816880738969324482641879896508020367314707804789929866726395285789027882148857643759469280525469508408367943761492355757625035469057468181487791272952463895476056378312110206942494761126991568700796917052787991105909370727273836015273352411230592324417143676146593556517980014267614483958442330012281955556096103421850464967071027423161312349799248295180828688680595165336494358474869392271935849700176674773991097103998777627553538802417121024504496199029301585377940918680416558616425658017465715986449536426060536629822599123425827678874726281383064908315889543041698182101429670129824833762126935076254211592294918886970100573009080527690448554409545196194406514567335801682068116648553426561241088966307015940379533019543456503889983111185722986124647395254907621102260984979288523367504882655058855518020611733710429115447733281616728501509110066982272684961814007860220254741952324055762791158009884151296253896382521048844189727321581355946096107574177577405527909650112976333894964891865660886542975805552158886188401669959001295966505016609751165843491512218784374146843494928193937970038515037683085023464954033107644238926431602078739725513281654514323894792010082572714821212926507146040223982239485447168248595873123853518290019219654411491438475972841265152471876319767970498292697512076816836143632777583121048431370251672564994304616803099601021088748824693068573052414291907057251006109874176196704714033233324606129895832952556926183389947657112741487028654089968769204896267829917310822473758337065143515616941770605069651680812870644648226095131290972435373478594192100209298933097438639822169456763219774971452249212498649878659661781414801750050931489570397700577746689235871359094312412376157880083973735695941375272367513105729598848145860959381538642814618187273122266265687408432024749654314582576826822728070470452597674832863950022164504536126230845562172426558404498594746228901979864299169236432491266723620764473463444924862706597775810205913110354958175180681897612954858858760454774662313341579291539383547845460980260738167469857316871328739829438491214507854800601932785112710173940730030723091613768303714647513579880404306368122611483970891057405106991954615536344710109075494463599772190160693750815869105438915623163925294510220648259967923872481937448187975731938681126395079611642006696999289758270439978483612837843356270426251224636288529947831454549050053792350918386377952262093037237532468964091596732309489165999647866633728222376736688686905217266686594615797717076877300777564712491668106842135786111077557871753012100623406242937547043858513779932730673707827750049211207684321355892259163471257807892420035400289589344007248538784013757240056849056119342030978651455608294666749904074122246540976797957685820345328122206959202556846717165196811498908007099871653892903608904196958949640826808889753422987007136125114783090964398774724928078140906648366372435986917448514616370805898941055192301115903462513550566064038569093396481167632934072074210495244624184438903242837921920095416607992375684586285238931356350872565350114600656425445268468156547032130264904007959340977815934404507888943432561491883428158325830070868267073261129707449301204331469643064682527977085538930217740323532599020651985271248295437224757119153929371154859805587152740133385605252406466047853304458063562085520575506588629256565159336625988298211896275102929501858464134029106494834105652138063779639061544564030829592776016412824095222190904680782108522754699125966801018313226270595399597780874513966014019977536973634778335818220707628869856622049201795798420242528947708942472993421071105507335135159973063867070072649373357003071918712069481280572519209503678095450076374617599862209517066085693540519056234718127461372060108686802680184602291660160857569692291370219202687359990813519136918341149794920036917843195192076771884692541722646350041676713653618188331160864014279392869528624320852451726221474446416336107285320818296501319807247059026807714373108213387929180868717151800367288109181685256198289039545859320613478878356088083265377766864699316091023486197067933660877377091917022850083871616762305343716820992545813956604543329754795586698540413949528055394908981513499447641784924134859341863540551140068320948790500053927962568470809349433439180700715881515234681003281625166961324977150348818454766266738029765468601357748152366484181295887487775997379691407191997682425215222568681456749777735319589984719951175289699051103728400371561163908052944801234698053851528191984008055624826525043437406734532834598818439608731450546795859851256396649590449362232417668056560722417683146271149705382950604009573235140091018342054558800114498220971894064880566160838887405051673584149806893930072352791937103999098716427795852602088702370123665920961955992829465699054213686077710166263140679883330305394372202043628967811382906140468128974807952975780704979908144805948026617935710360263494778442126270015311699350878714884350339444731103023636186629995645596407508461810072561349430123849502177056385115945980838999574215285987224224574995752467531861741233041995955037852077582823090930064715801739547820511499003541054326009936629925233551500411072835738210193358073611710991397139682540106020031496111506250179999371465418188033522202045939713013163870740384052023689025487096877167326833063722292503261677127572418430695420466938822297198649811324312142323945244297444084142308679547520901043824129216939736400778601259704337236604870478099915952430146440619008925971655726139597117819652776424208934448280598754018108381109512981932864332796975715246393656261387909162248291248817570101467668601016049351588658210938704666288275306378562572549691052287437611908959340390544487727764969895025079755087826397434293105493814010114161724062515945367499020541449061966720079655656958825174744499327400178335350623931029178748212342962129496661294498416889260711210190945076730235477641025576335455443341672293237192080363744805973670857771283024760135902235786885851745672207793010709868048430664314227706654044361833647488164250884742207597007284082677012124370695166247675512498987741201294807872615424629626482440446318170664962486530991518192187511269733865416692601887949357978855794075470173521483205359038376732916114041518417782551296859159847195580742986746241170703526174337065676884785088645931955146372012211541056316489387933037454422091424539859521379013798321994296379123754481885780679145258072419189064961453057200264321568440799758960975513221904082388843157231142269241138559689395615993818224094776552609343009625888981261825558206710697094943367348473650470085974896308813446616479907406553578814348722246203430812727952558910696268539352577869223457703806084042047344192236043505626588153085363238862794678149787019769990517505174816420377398513994987812330165213183331693651492169429107809838333895618004319884818482573701245754801349906518018738424795581433153964876514547975354643782124319685708942033951981678860428847735165949675858265424144115141478801138981439514734128738418595279907545723994933189290177586876990019619676252490063237623545322526087060525584812582427780941093105050759213850497108460076791774772148430594700011599277396351774508625828746511546261563043930501299248354752305542429622677697993905334416747102865252087098158263143296945152197665958949676207152913900165989775369520132790765168565943744333562445091563956015896148894133516549238173526663805294196106701918199655267198354276650668550202660308666566806178278996511258341636488327393368052285033080037497483021568141660001822628527722532065553668521168485673520506021718666567787261326355220202644202287553255383834666221260306563629524917908717218530951976332092301399465792322620376087392221711390776363464924840406657241298261463299642975712667545123431415908521943639883279433811637785669805143554918788600369435265323151731503846229205746692729827433606549629842265191324858743229283082998138738170364921195517692234135052888637386195044886708362049464900980757404418556328173984574789326047619207294789727223843134010518384768986134009222344550989381467373181335573304876183950542791873172272381598181207942939225480164516671239865513207217732464721134059408145969239813224706554956519647490528223617770194020542644194675941023061309574702297737939654103148763585721253961111279722402820513365749910181193086883746411268631571486486710225199089501190059296209483357792061293428692390185501092920790482497868262016185432491203396470175774609614363942437445645562109687480258644726619409051247406937712140015327967571930558335809057023791995617641381302379607034438939635293526002748567109425343849806736966487595709196488402247560170485615068551358167365217117269336875451159507289844523299857495585125236177023813346816186018388320291597375311222727732333103980356862278773582063641582821572122285086063628101228345648243676702644052495217839460501122975177189516132360901295119519182753757841657490600769480064578199302133621227052296933007303077274925794092297819579581573512692324261640257651795955257575382342109119503601323141985938406288553700185887076420989338350841189978653651869098799433517951808753314706406175689261853957502286046190840140815105856467997259926391927865634840353755767054275879487717289861138046151258591679595281803797901439684449367418695703450680499988455742235605821306188338320196510204531181638586345282335938867908618287310875055983969530770451406696901488208243079112621076026917581028697568161441790084923706683492583625408278236742216797909417661960864471402864804896375622960603429030720789710498367849114388144797151422299593691321408847003909795131861250849869255320890442329838534387264457578442367210579732223443808242116461306469709652354542407977634747140924934896336398929207665726029524323999551550366996344502348819493385457239176547390537508366674140177136920655063461040900333341799981289881872594271578182273949987082807132937977660075188653548877054378071553393150276990303137613197645992972284559631615645874743400148435361272859179768758150394311747230608180441530590167744208801853865665270536568499939885830990022927607231870765148562896546038271795921831584470345476080172454051418922448741201138810025672302183975155227157688272962810863230644077274269094013248023836622987667084008605848173574127244745544807448792205860640018690339125989292109386223598865781165721223796832873140168993455155194932565032844480585040317814736772128315137657846838272571185405172709626809741035757686200422925585734976929852524951421016695392553643930014095925124631071865078503568001456124326515881011730030038076578568345509174115847541891193599824134582694977889519164389196608188755217812260445060769911686313633510347014355147885694014661679442305410791574877166817487157450115346988914523774960643485174028130270046418380265992262818185612461144392376536202161782160386277819793937855218006113324225084969965654062306065242792000852907583695051168335732083124651008331980908123822774143442531580879271336133387586095649328136407443624616046114122114753814878970315676897843668517754792162048014508209437136019760207848189878229573912659710224942038019250172245606166183495793078177382086058294287067693732532382247673934075256220635977883813974673915032672515381184106294614160622807718550143828197071684666701046589552574535768757222039471347780260382351193058194524038137803129064668163421655958405153193980576604232201461550103029978074920498346252677375226091769209219451338776401480814241186351765807005260989279801602217374520086030451699803275718725570159061116440263717057737719579849147251690786245212884817855217639903191039975888315548705660179994625114178167352888679548303850822140192921745435391141773708582195271290239545419250602320470503952448656378211190520782606496532196789426919181589715288175652790470909803728884274163143674169738708392496060533694917688525616215515042187587345644784246574396831931677834757750210438606163228092651243800794300879727629098541759051747512787288284936329197739484503124997386499766254686111484265875120288980408723177275289223170357919811450200755791707616779561876688334414652953153606141412033078946816438415304996263431056156979230111603151247763192270871395304905878654852755351142177277481663086505883206375954247531902231592652500981194055271322775042546081500228805708422278946855895733799328675426335576601522995453074115764094339338565408692731715427354889182016872069889077213083979339484782909818642725143915596049927847915878995950439196285034713940527149158278101258208578282115751780573644765993024851516309650708081718779985559225910910634054377163558516022350947267060939525135377318201638811250934329317169911120853506026298832539028638796184987666481631177377849019101501148921564652481005891551537444259188527689857760238628791683401131936137163146851936477297219768994033112921608362512335090553719758509688095454128394000208263720179703185305620246608220374408633191807080790710581126323296483886524882556065116870789940439891765063191475975303356831079592708799455526109983340187240287392133055325816191796401264345547864539983373283047362219779742582102879575451902768683534438399656108675098834091354474809041505411505869013309949139664973290187408431420378715180413064479098656223691691308360201597896868857662938210375191446624571716940611784548376987758777549136209631273446014435753146969758676106106129688702723211670796618203014163030785378499712836971840724952941073567363731937331559464385041343027323975321912363183789227962866621074098082900859753322147421341430757444232961302182823312425888833468483857885491689909488349796704385575269274520535286058499540587614576559889925911742416040021475979028853899617694710545294788162615883027194480973430123228041059307665561212547546221909345495051936471176807764013421909397302604312673069055398323666873799051682282170348285973685310184677744185430202635073984053903933868981867106900951846727307267985890699569911974396466087904698006857016330958769883383148574601283528697276752413629283714672251368627562496638647378037538693197700749816598769570265029958363033676671636239885442197595826661896416797864730770851761069947652715774045067829689727779452568357685462509944623107773301744930686635070071564813568206805505380561375914871779484602104361497323685031561801463146101235339085026482451390077028276321788473983998744085134300231308845901766480618127276542744588615064403892922258744709133725537535161746297496098803740826388995282492440172841236910912989743903674527377850944637642472735972201067200258266800947075075245484326700293771226881878036284330827800594338467601165089924059456853262729322649052266484946774520796425790268883651143399347001028165748413014466576557403218667184988933573386659695858220253110995210780752490096723189147246470876809612818854894711035938273849337997171803831617856018490083745977598956040698737615043051476117966759497288067735488517202180108202831079958322725891898983120824106605201729541174743393270556555654309837017252657153590375432413958288928090780145920410203129397381376466870313358167276323291624150629506922262953208799464470704494309099806702538470200445847889382164444909341881802679697836310515613090985376919693822446627610740956406946110299844327698928248454145915566421924536149647351845690172915593867382885633162077100770549814613156623313938194685532683901482071950376856120758143412167906301108971293632091743677813018996962456637336679646414994073491271269905483868356191113401539684648461960882611285024419933436589443071273464699673903855639168712611727225281693244699713344701322643634440340647251660917702631033514278743484783916968211895994691126515644684594326155374752146967024820925506760537892288216504960772214685460062178797331124048663905305093357785787727817183707187352581533758788886349431422540376298395679769469788795902441783085501470960504678314852067231609238128740888751309069429157227669260466308272741425688403971199931611334387020690394460645277061109186372697493735076525302731258873735319239513368998800026873868941129790310743378605870643138949566954436078141804856310079412483977284302133660687945582956682714189415427984163050336698902194693656641524942611673399417478596000396146474541238971166350413933413182852433801762672362233085135461823489884328613055525349481505592310241576548558436352910339895789170742303660606936827922950134064810511119564234689485146302567348809263706919684637140435219280642723893886479583147280984483999150699410848070369070193558100759513222005642251506892664214654943656957040904063636169787592988912859079162044382076997333155261283796622174044565898267206382358709415459379766984556905235776076264097959125724288742230982656618556399885439348781306620805728254171936832021241579080576807391728439779582048183096787507743545882641855727528975552958349749463741861635342243114896896427123819435583859186827549883676159240817055577746811536313501719908710034167298545335618364669531392402071530978085827777348156885752831654200607106970209002689572907566508334983056101846175327519586804002794401881368535511548279231950544749476965280225146046647146498895019340560780474574661252090995719146974474727700859236139294310703584655145669566947144042452027274896671031758623670144083436643308965438650218577012163025835433182790101356161448258049578736110582433490401039925075471810805461061555183871912369710130249020630438728754324065394066766639046829709863054476988170230892443116213015708184121869274578485277177191634091876417724167427710237837488773868993373708770468361684745192719606181029202099057061210588808325551978961045080056420149794853642044572026146573132860518805493295050128750259256344865587359631774531738699630731301374145746377342707771384916496570864067770922524625708477068003519591687904526593017429309646729479056910074922847776232539480578451959083358856965179715217496365334885165653296792734915836403622230437251275858150801181989746587642693379389104047904679563273935277406548439297693227516709275981292847069801576984366742243752563529692484443399391936190811297536078863058102531620168872456277010709095279480420747241116002885824351565082263923451276444408844220424366576701611287088727548330820402914471762000766432053467978481537493554959158070833174472712832524816931387239782154312092382146814240768613909695617643149290680120989392594651453825734574010256496833919816412565532280486797174779117078421300837592205388043748240119501185057120564699759252813340207027235264845806344437653752194091533734901600142654972094186591198728596275499609943362282914916755311643803966561892240927600061712186495715447196595644963897629319124326920166887622789581120702462282373107254551236705471273066383121819486477636097484816220829133703356793490757061393681550279174219615149537434798976765601564554804592726031172145139431027547139329715562488142687545445223812148236626620079087985508469052686698646744908964807932084770740673207540512834100788589325709055404881989051830107577439656018256404587499409851778353448793801792425382425399040446986798711580815425456346941191704606406795790107690712063248706196515027532916494491175743718586254706489405183548816990792031717114586206353064377010436445516419739173593280219860743659324540853129349794535409654805213880817982086303811830450409597994762451590294264086819119047203941218536461624195856710111075055025997169494092789011992924029063532158603088291931080395214636138069861882178963619325062685627790654547872070525225245381022549660764291018516156695942346759221782958770182078125134183537097263227061281489154960192357386561814077962516159640169743504809025678266888734240055261751586769141509283304956183201649931585498950519664548791938930878834446852580531496038879680658800103146885252004361549812535548480667716827338484695761358722942872797973122371552765443935743979291687716378960311890702230902841171897937713023794195148116189431308995619552711230670824337126135313395312906363019823168602508993146950592051316150716071598226441445721103995891850256646788529882816270419085291378867884324113870422094634602476152140076363984420363760848801212695977664858758087799889775049847631035467697896031850590175519976856616222806075916770730637041095814577207262011590387237022722913827382051399150326221851776816178366599630697832858897180444139043063850618833634607568884632905630700443794582186963651984194165859262923323710413959264832549393430036463969015077206263076054574781832433829560841740217026424610942786602110587820505118096321940321615205430004792772725795062980619462438841765565482473692919296563631716090604781107282340039368570016330130278552998431443826939044239298175850370000226717454878185867219274755818438435427339484955794906972462853084777458334397179112300804192263790515868568337651579926738648664432801430201522671406894425034340126032929896004672889553389347902718332740870270353387192023168787395415306562707735727566198907699346453672855368927321021639710082428468012880331866446060770629396501012715534195034712091967026572743822310763115179069278034512153176009515888619753617836434703722602371755602442047109450755598192057381075940941112752226896822645001422797716436865418553209270660235840576875602084960992777492157306813920978308840400222741165425899187515251513060703511570260535188933149469112072751107457807097168944907912416703362106961266359558939694402923399149309216998852143031899306916044358665177884153383475734656277497325506818621097491759142862671498432840519066939243475160213453337936645542555873966440125196534445257785696196444402238010533808955071570907025471442503611572421852427404173476668046003530818824028858280815405629124546875467514782633106024982516576717282196324876787972594693426776213290091280485601887130551003817976577155930635570064692467481952607671589903878718695664219435024822750357523941005569070392614862665407901351185584654661745948140122279952026043251160463811274634120114645998448109073056400224766870895575986502637168130834134630716056674625193190450174696545502443969446382137341675025314080663445983731832945944309708013552525311893524814679828434184534717569878108148756466836814294228606936647334574666696272681602601568511359494268709839718025492320651234336089712006483963745226529311715819604095793418494539552662272679307238739544765115926276624257321283197435706558013595614912130748657801295624449034735824472888719884732507422805023033149606803083417672651956080888929165049923413327905413951012395859388987808077404755383122910934184954852630534042755495478153220037404009855816800894990527139736665664678133461600368948376657150584798879866521344189531862757162727421942912003159468389453014367179820364038587682527818804283292565711554199777932713731950528020110432570779358732033525588237258129737952844243997300065550837544285514923447975698452827264554654476795461831295916277295136056113149483106240035331474098005162920418764688422757041378930568351280651166157791893467657142783355449540665712653927253097650810962187773298491016507282777862373344072769885522884169616776805702488550081186599460349554531937402945675766033700051128651963507461073042664613116020493511446339921151804219373600262983528958799675853825075761176920718155057872105937597358227685681650642404300469757869682264680111580629077144258854011715759961959004214115019701010027364470051913667037316417469867438507933997905224362699089426667948426920887745944990986771186502644634535963247472531906835538114475728776730528888721712940040019866097003330390052260621455102684195531671199304467542492811361631012966040539134307196750921641152154374445490301573180588640238651145559560995062154896829841580698702501159041728850998113498767633411172004682131736198611189130260194786940489157682686501017268148633320429255118895809737477118497556263054443489979829936750383215864979544411672966156532407103617606191070407840487231732660227220028130147713480557189247080195794332198590220078604361141995908939892175201535296932283168852244970206060625233262376255344776115704059678851315634323219150396527385132241338388137258918999427881481943599311434650258798732857544774022507832304544082636228691827213089697332497918704939630746515460272974210465937320216725824161869074659915113135210970511101680134039648775142843889281550328981889932448373909066870888828607151937464231029465406315524649124241051378243286092041611297275322693641950382007832703679423895853113747950851119034256969208223483197926735609857832497420734971801351575133707958707481988025556279422603363826367556336453735629423928355553876603642192106482539047946026716739914586227574416635299411214729228014743327555865068093352285791881612676521238155661967876277237190171664646338719266072890228271263207680706955166219776192433719914731779289167418798641385553716952456425685059962713444801543374130901717148320721023262186439001114287050411853087937246911614004966292694365047390205154989929436229001240372067082372373111672683746770844827038941609772035707455732661549055171659523558706154194280341070793390381342074097811075152153452901960227744060990561068386960512615848842321707277646251360838661598630690627408826754694160711430737112360696392199096921434669944482129398816121658443980860004169526870524344652454725900070551617475889463917764048132252309579090129945589118681212230301273509704493129530622043219011541436493477142427462668811717262873641127200016049687631152766995781986945816248840013768789222574998037182503397107209562806414327350632383585189574104573749354355759695632034841083450947569333687678424988337967778741971912050088379431369629238460514387351927066892937549013528399653953193586720797576815338070589054157200420170465766370345860943772260955348571046456571048814741590857212497781709712354081358770993356142183117818964763584370243234051405264254439733332039476732189491656926299070120223400463978808988274169857573228035396355792341867334688628800263752692727191433573129181938747664581721902010593038590362177731593936451725279713102401673506748348052196507393729886302029766821061882576607545254036451691155559920668089516114428606189128520114608792917723620071781269822268686360742474505073102375905687724257912582766259709817002628031024052766953801997767495633470714427573444075800350391907646719714914419685634333751114919390547334904480710936828034725968326032508926951842093464078946578202090292486948337981004819766168024689222217792223360257966942533819439432622656912661429752073091046870626950628674015246181380476159670514787054431936436722014752409266504436960285831123208528670519947830267807574888601430733802560656851197315463495657223799328501879144454958394792835663896430527263307312024965143610957621495296859825715840773726985669801244023191263704214297555501381804115734977653243904138296982544239919923424384162157685050520158326256644580507263696896908403855167813542898849117941006181112351597231918727175700390100231058048315940185270926909462655269735060399364213104413049475234657003956892744017730276162014749133694930884152964344398302789351313095255390922644375072583218466603261942974741671901784782195921460178227695579646302748638642296751899258287922755289309151334048095557065602536437724901476231560723019015093391596307271019026107528095857557871931388704046924772853213961274824838077951106042337293197982635201411028804680890591516099357716398305133306593615781604614818593480515362618388432218092374485027513087663994922134464226124845360860778547359347992076808024374689772813089941204928622452781482332338568577634974454365739670888655932373963692871579400007038660292467594557125537047377376960572403073703968895635497782127716915779684774896991508162659690581994954097433956968313138051201964700443670182399742136908061794173724482720582670049891993486060690246890323236860087641223091507094210462149221790645347523986319323373773692047871020898350336831311278716857585901442027887012749211382657138241525241673202609501650086679356085449196323699257705256301570513956622289977770388077658811065670223220882940371524721879500244979178838299284895648748678149926779100681698382318913521555903347851149852522465172495702126052038242088037785571673174635616296146489000505244001002529694905785673774556405284875522114992164824748562960949070265546737920379784204001014763284381928354639631029211838841361953313395012296458658218119074852134836252803677992164428247903065550047622882079518918767037494391640950055182485415171110195232055659611417683895400657703281773964012726445301016078247169114782314101605133878211912776366440565858696743212799406994843082715118715446010554474085212154593181370374915763616317730614238460401611813639642258028842523077881676569183984546711510977496488482487159036814625648074176944571899819983415004258954223812134459033418759062772118908899260134358171525996551191661393565561985954490595336304673051875270847759218538317760689368612022324080342462961622239401509989830716598943700051988951162668956977679071009362903874899476180516732856549119564557310641408599176011144448248237740651198504386064311121821761522853775435171869286686126682491337099481418539531187785769060495639692831035764007029277620680457830829340739282959638781854838945953904417795959133454981231434351581786759346617643541772561364754842344349162520813983729801276755195915974840583790388426031728658194033212195758505266721183303441254012739778923637893315266612879237776056200952211427804296321038132856758679728549436049049344066422318293110182394775206539959072056215684521605887749050885549102289466459982509802293371197758726117039008952116203425597785146926119411010932741930438294370951674738839508219676582656947924800559566240519536990128925132355306158202057664698455881114265905568336238757107113811506209551670781362117910201507269170468411255922379717821251562081399867217641868393799676282857675601793371124893816769466155104713454573396715919410668091382084218254454291916092514730220779597719557178817406053868724002608336701139478331126327874180740669792804262194444053310018322580268779465811916294698497178765706928784386479017872558448323738275062616098171288345904896594616960247971164921853696874149973521305973553730776429884420635902446174050774022939683653531101834324625075005416455596273791708500598273274340987616357467978677175271418627562447668463884693544233526746251622107412142146832907349327258683818659880592901558213894067727171209964206198295426035606650175360810977919342335436354326748634501593302093326160702738766467438946382285218696676209613361975651983144975178444045620330016435815717857632127813909479796863171502136017300205214139056166492571388328603519217313523486771581618852216237028124917925162839343456043010215656035709916790740146723896299691492037490269515638651933365528782907301065472060850341159487220156522499705844537141519714491598026914450928450590314338392320353345583894545219357180098662174172971619063366924965825325839920258553010537887843307411878585765626706521408750522274921101894627377293126118413190756152678411902756558179702110488918551064841644781043411508462202230361416824055900391183209243185405817273280324736125642720572699688397536147162675151989951020359069387822335434622859487114464745749877862121061353813151101035079681594288980218774392382306097796726743218296831413953279424510793297441709914101347569982651763130745834214674566559291625582712279677569716528680731827054183180943110858516264936068328548828239556375337990561469262748308495314930673284166257776047832679785616947513543926548938124857969955955600926506909130004551217851934636954231797175318523090602166208625152196933497010891602066818328835774775743478146897963458070568911572714991244498405337783982402469385820759147968834351492042243173458889095580319570017133077709876038551030585081549195737334525403352027991733967142725364804512861840805724417096953724714037435038753082877090621332848157007549061757599246346136476946667755126398669302346256151063625157327865477873905895888308704675951290627004954712507482625926692060632142669913843877947822262672665767385818918750893351308223560449978423379360559597735008584535699855903731868340840716967580120336875739415112606769708766720823726697928915475614752109616178203227155893473964866603314222323582853085660884324381842171241770792280229866123682165643949149020088049186391970854437508415773574448467393564823565549709764914779378922991497670519635056585881322316954388434309891435677238847331732865474137978770982304964361898807693773439538059374375903258361150949294241278076966002371480150357777044552281248376251174246143482951533331320655446483835801765553704672379766832921028014233237374222020284469072170062610448788972132665265686124169529782117198263464853260904879052330581527266039674019890860511005282854136539897328266594443031367133050369421248601527939970338484344181684043873151662009854095392683626408535776562481173865019865561061985550571924180038855334910137018397248268316613508300188105606542136689505623262988623495711199137426955592465488491077995629594389141147474380203022216108755074775654382321522620774280131602113161044247259336434198211261896362186603284361655803770292964990605664279783132262684726309818760326356951763637349989453535212018014801614078081065882445598461833748281989106196103683947487514215356078799381235727352534301270809632327244061615318388056451986056022587385395581125635148067710107640865350095635960113971729219446236982156966251159123573126082153545913669238427177839276544396691106697188948483566264642735122352053598849518899105474899064844834524413253096702215357886719763435087750130069626977561470940286343563240754345525444167804902022295452554181029003405811356473018191673759253251986361178500240206385231335483439355494164168108528579327972405787191259686384679985447812848706013950963920141632221871545239293448916322676996388145304998603704199862265754653456370561852541025380555373909325116334187398846739774594884168387319168922627042324486478751142388966377330683239560001233445566517151360130964476619204151648143809162150885080352115790539870212818146704067247488349291985419328556927667809268267049979939935410116460319536904038705468270920125537887268530808173216739552909919986302717436891141675177350711204061814510307210146988908150790826527937858461461441384573467449980769755387764502667554157982904056331468658587973438372402199427184841706305326172215601611459562315735447181551504019336703760108169591537628128716420894598699498105252471911964107246194105598196054936854527021500788590154099531733916784415988851798811674012197326977411669004610774226004600321980427248806504361568870951105676474870929772957708883987231059379782795349309464178447408850831352018654635953039512046715579414791945829757806681849889678322076977043055487124310796021492173477659354196025968546337309223755012308646882376147631010829845073172548624656100311093582852631240616209638275795454495581927371311249238879961365199206589262703513694049523976038554696998191744753630570815988090789054998785010906947721076475689897733688084338725337721552444049802207933450398634964510111977350910618275051000021599449077484946622010302112933452794459045198357868486342660769786528453580271106418270386907160739583278886790192723091971821223957653386561446215085143612539694302325622107516052712349064358506546637606307969311783019930803770686487012593430660084909748781142427623507446260387452180788982305731065948005233496233514673569284916088618325893499601629161416791589916045860306046365108163567806107442647574762581636262172493747882590164925846902511851997592484344475865496234483099916707192567317671091952546166946849208371908508161119379848159453924193670158937089928541522494336919459394478239972759856773203857205527705613809255519560197122994149448473740429060559558225450992396674159326827893747325600540406820548699505845412833281934614886340611688244401456050895541953166973674802687089066736663110984537860308654790630454788310309239589555745589439164766236129841721448477457043849958300528173358346438220450681092237103144288834179167908328419692812008533786790821162809506575405637088199678978887818109462938836391767861541869717921651515746060027489998200972399850193964685156426249529103766298927052641694072678262917854648078559029258348179566314388320120667939494651326778729341265523741126730059854978614573994394378599056649146822755875915500208568033855377653275126754712537850998810889534969092174816849623761015736412209465459357327499552709444641799051326099318911235103217321284687873632395611713016034945516692779971739373753322431973992188336900482364584079445158209819907607429623775947067312547664108871244175252129483486347465745055154684399163036750480181078617357084348704400063872761060406872628796614654398988137879898174623521072400601364469590614263493784899304304583882182167363425006526875270376594251227505101540375447459646573112604123812092490257771024798416106758870098659951878980935302634289579374056089784166062034859916021231254639835037980437371715410179854669982850868657108627792777675113220031023838518641368340619373995516998715322568803942821752076419318798723655839709229857895073654510953397926575895760384137760604181478809052350357067879719978348371390735847729139813228745967227230295372105472346875423312718055968468408203308797015147457338753881315931475426143524958655050861895351009682588234158395888259904530112946270406520509806949323880623325316340847312099505585087479330187481964078331808386215705447954044718651888368802843601025386138669734375663054554612702502753359427744942829242268549308882279912179165908785523197656318728798398363754724212189734486875486598941388450006373602480172259117430005982674914654952869532329140096013527461202592230561707217488138616053642692199666580286754234403978267823325842457927929162741802545129809581045216308810330485893050672584680999830344075198763585726783273886920487242504123088679412899976650781616602020995134101498937877393934830331631264898908959411040134507267949251540308588675418011316980812619534836941478042501411400841593448282252238835915120830749390591438171635615747662960798703008748975781262805553736228450781093509269754814693132412712351555234351363337237184864454053995617031741011333055451996744733348498243160410863967118890826252956503128996074962960507541793051871753289258967412545135900318060480614824914587796169259593982904681676821152466830495460785310172348943198386264702821663581227644331737511666647041284001297345631948784397669855167833563992021637462688816577179676932112887278179154692643980420426685705633350668158377382514442188363211211891483977391685726886503119809527534588739613791133658159713875662178197826835014073557236134223410108314812044775290757528425081232699861351241103645690361808980790326814134317849849238511225097054010755056977621024965297875536844348098825948889241034145007702262768786625057186364850714479180573739378794786625350785038144775900724825264030900404775917475952241697415254195736239140784493894535247505330732231271577195381826212769513787863878142082474784579454744415881884478369359194160907639289549502309010107596880491815339712670044536014670884795047853671464150536527487042531699826900996903295277182610292186352398901153724312717952630326416428492744989745120605799611319347791222915530724802389537204229203381964391153857528794393860845529130183071470019680206314912627011248266191656332399796784458889064564392680637978124582608007699242314703299305040245532671732421909779825149194308850977910718925006709026887247108428241799187665484558329740051693944286017060751735119106308440758923798757118458031455845089617443468066192158083833756451675950065689428545181138993807144246277324934707198468961816998900276843602028280074015631271881863553697244364108244791747675614426726293981159844690050524278378739460228047042342252550211595418383179372851528259856419346646054498223948064679820623259836044097195438544739791555576333051618933892076583206252321521894231008460932116248081914230475862580178514173480958307177522850228440125572138637532097379280484931698143706283768123254739707489437912854090290920546541147614386885994416133731850786235075627282808291852445672108745012705774671008210388065586091787992261284916572556435926529379192365392885573828977264072149817819790349890180369641992944061199084481654093319546404156940443837240001432011106338136517999967952141393687107157557531343653178833418137848747168576573897696389618930573619633027279808534297342241091955942311165801733627613501648387541531313374810593011915793897120540994441274613702936248661104624899975716015693455876493532870337515093946147615850449068154752396275804164395136216762955255624726117195807691946424588997744337445379356851511057784945930294992471993038494503474297329252699400300461634986917667678146500668028030919264296143802335343636876323323259525519434607720961238219282088100008846078155105121824111091174276497422414644255084693177975033303774493602622730112668919582508541865074503831447540016758244771790915503247299090351176078050588489449163653135655182678693829078549715337717138754905464948948777344972218972775440528880809675652263227048706585435349493249875057257521215421777829690907407330333917464184952364306135494713396505250528214100404725609096854453232946773036134233826981101131900664223262756944935310885292115962490259858138132757812989088270265995649922756886126685187214937386045206985803577123417785218323900469332398445026061046277491183457537717511297617208416905447404447441156818038397255459191578587067964119725218678654119444493489308559109653831301618550691984375688034843651209684812871448124966695045678030918900899130891639919941141062208129936383374574109396504829395260888836298260470271324101640058481769390069369839256187049216239971727899246278490386771810287396856382583834137651936531035723460636655946223482328318283767990642265025463086280049102038178500321871406436140611917899674590180067771660998032864689027884109935937344662997222283790129778445760158938438196929750000918991642970272351821005930661766113437811311553643887720586993927385621323111069161626206560494101552315000078195315998425424025186254500021413088504444152086654667202666708968196889403343996433419030212600882286617747913718703350246140932395373731520667267781565862705431203954613687359565885844602914931810313441671491400423760270680309091487189142780986102411661947275507921927062630163928315365523797017111681972793466596957557570659616411642888343345555503967030374807307459770148922130459699490789262502145355368097791298500751222038318839954811393300073730520067639476622603578505206357014424451492609476290463587123875815378648239274962114854624100857230823529683772504511163557424016487545140867276400723617009833517911111092997904906902445429156553600932437429040682750402612295273953475125400545212396007765011476653226762220356025778188874987339000251093122638063578007991726967010184740001081867369285215171072900684517790997334181799473786736269688957979017533652751675994595968674229746241412912606856481726713001059095286224476855959851839842173561340850739094578726009056876195542816029447930810471129694538988689734629244889111172473292748818651714105394310160872039105906372534050564584124545621227729639837562684323625565482774417039249774398615743231892012564900756284347098649036497591558822610171619662722670011678365535029404736421884245444030583740648208604198740710633009930740076212869784994144196365357290338757256962339206984961330110556852800748617050087714004915921467900718681229154042674446076327508358070925027331356991587756008978455319708946898680287538128948714734715231762903895377697099598180584316088693851980449003264371134477906576657129694156666333123793875697093693202567226242016944501015048809101331791660125418407345352519402572319644766409042815192236878388674886194302265365825977017380878517764802834683181999185255959942453113050855942155059447243072380109033686806574873847997520819735649893348416699574667487484941800123172879356391157507429708458489940578712288549337628986826635929642665451834098869098930664282681457353226838793501098704914571518584447737289579035339382910296903521356197201112442281614481673664876249740488591293155100198477196847389891508747891453489173960069246834981934259019070012194890783128025354473522868879611091356401311613468776591161617506950177263987660649790419896345710307228957752956924495720640680830386187835547182685801091879153536605389511314230315610885933453769994254193193249376323021141576667328015054888912726385608528209507794288549925452460099054100721650539153016896022860545358313543182140032753647541951675493577957062400188803473168304369538899591353834745998919226464852631087059346278153760986558221194716830008282032268640145743840540785877721998576000942998052519428409796667635447684399871320082922740345300387413641985945256368306543453918151325820737773500022180744329249602481360753082443649270739450230418187213613812698357116288042889248705815564880137278260858451964288295186532824105456084941943043935592971427364002508472984795469031433661559393532290348441421132767268615030253842830326297318959641896135069311004153348203556890009397956502279272897735992700480591332646073752720400261712792558223820957501802776708085495980514688426400645361108304951618003718232067489931144813912306406820486000458841008407080693822526285119324187572945725691665789578711234439865096181270205931273032630487457412181016262598644698986913575600272678071705370602963192797808734379439511069493455359931188800086129340382522891840173238749460449952613978753912775112826660233903981872967794552644655742875355439786437437106584612384352869633717802362358655002400785453986724318312599294569118244319997228213239811104197134759788130940702256044258350596981733776950250077260175490437778574864779238503091252805089283234192793459873473959791557423285313324116112769010740679581594290710268356255440045518075695999348977752398258357460429369691537478758987289488779367968432633744976472100248363316643522829701162392576912281557964822454473460006389017767871995081468319250434037736449983447394286831207465311708100741099373066028621398731243087662543610758146202818078617415823800418445534658149278403205478253067581509907166171956493630984346224390963038038758461320189964452452669292052647077461030886521123421513459471816636799703907895300018922373062258939332159990487516176561856941836917534542391164150714478087780376779505675284079023364706011359857969643344642657917416772027102657851280454229300038920179859894015105389192674724691574513659845740647931584882601236853223142368495833231940986906933476109901168235359901582102404576125185650091662501610870607806193288639642710489414425920424127997373006232386392009699553784463063772480881502407772078507702313582975251594166450166989063093887133453791406311067258862196380635658825987704342998478130050933553669161416012157263848765801211634496244109911472346368248738578320398793632512228277401136451938656085958254814313321220150717258922240327032334276067562884052629423467270280882224056919287213431074929231190906515210231232523168841132270486487862983146085390224524141668847429754943040326765688984142164462122287112105057477014835519715480935909067441718342433472705710122487355253680997662100204763396040425114075526552453997978639565401673462715710821079773781476783481469675970044434054103951847050513697050838835097441114434586910465683919808427585530631315701961523567671401965627335468998209704458889001639550904375301270753272038906911957858260524040755759696350891965486395175744372460574733135105870722512899444856770329396116909226208325239363487612084413985959834166430640632625601993064010459370425084637010544620648822618358888815072574254619104725264358580112330654158357493800329195959708567412515198616598727988776724349976869959000467600374964562867733923458015866141227819062763271105152876222299353181256708399898631732509565093191212687085114604413501097976327330293231739298068803660929654630865446894139363799334738067578695772028603893727975892551865912814672467526465265234125554368435165984888703043519906223852026574692503674327561331500461130084860299445159741410032645576822758359026223955804621606542112130210474032635605335721871486272656295733608239703516116097775910583407982929774874095497944522387940024947376937692631264638871303434703227792452250876128874545858056403718474506193469851157806855665453620592551535852248011696673200860035889828207203294558222102421366551418771871329672695187459289415031510352597673380649482464217796082985467598805894935556335536603656870879102234127957770242347132960588603859914795899116550030688541034000747732212357473367421663993427126336394604039559860864564927187151448443508803210688742948551573352440169705783954500868622856045012129911395523356994003775003293219185333330744524456930314107590738731963789290023687696363190802584450196946914613290954513347476321842253900394190966069309316050873444645277944491540290930152235703658191812721746353248623905960778868709487221739250164627830992831115486048832458905540799965107235259040445099082331840468633886517874684664724972258733885574954578410449168622014901096173789880629374568052913966742952465267020295320211948878477934602956329526424820181813863490993682774998354626175232447362875626892022701120728779495929969768089821030517256281004151148049038483024816044613340935047458512934389225923942150160865789101154211561838016943999636836417723316744359495469316275113863755507890226103363585566751097451926288782541502391538399771245434319552630516686499941683894715308953283999384655653950246477383202757837518325015483231220417257542657938378035488057315264398903076192433673419003955215810590864894327042131613078434399938514453552560042966751320709330780316268035105313420670681720028260761346635139978085970522340141046228590082965240978801178791903514904246722656978198478142758360093473264634014310132679623091889643100617879940943153979694343161590004953887387763128936484350727226715242118747301220754162341736218103344603773509446823510284049993197282599386236468930812264942483557496917021943842148007482298219004731489347068744103943257844612004728615933841068350515324406742037384637880376454873476514179809761765838489699728819095539713373848957642654324302549611617145499951941218803666964826059474271689279534171215403548299458081527053807626525245098450067207988082414146108373858036094153900671295930050389199590466102658450515722418729967077005545246673720559854438094815039410313900087035199399097851844926915728425261703996041455378182340774124333948442535048708143633300339958630762717468530448837365432683896039206431610012432697413818888762054564339551169668496252929912847493352693676186495818205072103934163192196283380630769927980123702144334329120245716836357018816552027758562940761747155410231700291019417205208744576731373616893666608415163628746171620171198666914163595320586302214528356108715012565627971368220439599019823646384812921212656711775064487821152031826857395961795900478042562812401067569880765001657578113047284261208761461591370711305587542266325217344446204749400005575658412489239867884164309799002643536960001182031455433021801586767321166787055052933304977023482252399965899666365115592788508740428765491837725753837864113456380718760386990250569046043048418303806333756820757280957091263618857870623588115026207438025418204817954205552585929888994085973669628080613162343090440679245501351905573224373125194705701668644336827045175646308571531433239015930813533658348608790018545899337603434310310755888191600188006707495357044206628272402992368473995626374423952454360488638035982815337075245468007953540473655479365624802160081372383529606909903353593708097573308907649109215241678451508038099428589178196529194815752209212866361722931439722932617569670970287083306786038704242717620807306841164960921949551744320133157212914416407563453835771502759893234530718728914242752103581243304020691891137668152271484032918830834132100194989856127368108156023876870330837139776299170706552208147491038154058676195329497338047669563417523221469116848524612239913028336437580990894255148783400810311528216961408503832772483398893983902532786505842829242579364893677900337840148857163789913369584431913096594052116520544005289602405575294971889052794521172364036832260816160805235032574499653440656244511695118994082242855728846095381271997595407457982580118066496146613770334226170054966758649859192918720639216439861302147849584502746932845292141585990847489300135260861302331053566004248520751962137379809668349060676692452515988456465867796854885840425544853960983599690641782624342614164956255070726167507714510594643741952000975430312055448084141491479632245543498312608745282148397889950704200714977033643931770242248435864489367414495838530109794740734568489172156139753930038884515484057081673152261880183759681143837770073027241330704270510941453673007900126448678343222610119267601415615987612472748068673705700824487836956101752016869370654764615189902933707765409824829505625536818485818589358432123826668341635307859449244325351837294124222916135428582254587819113685384950909676705443340966719272063131504225504160982663950104951508088393593205916305897732701855946704760540051877576862221182491652745815266978144739296933276062825513294115325953675481878311723341250454085138656416151988463900407494617758231179764060334316938863780409171731238897484933901027490817196881151821125486599543994032653208707597563766014685935109511337178915613371800221479783819482027634000007020899506859697787401246534971336449581008326430601825471431028876706806492445213290340684111086263791475064572308096764057496566326579517573014216113397446999390967871688273832976941870412789363427888319810033566479579510552272568974121846966984444928231917330258619492419197543109384492341564032469940996465354793241503344980834951338325414616762538852555531342572454323262627545779848253780917299032172212354788731411726967802218543283291972686166446921199625449101982798535379372955851070773576519929166771538404671255057211447186220225301493348206587069146685870685443086071041123970068048950840913462106946639539166972177947806721684477234941355076279618310363833286077601928171634994306165395344220645505700091399310185794112453754558682705027747952794203457946764253957119798539641145049959511963109913386413619455598786218629887278995770894955876465020296407906293181086122326670166495264590974170626691348951280025623197173575025090995983052403071348267426945896813705257938061609118041169176655426757265205420601181103847422121060723833075288309374517054801790525677441185423217742136522669106631925099860943107895527321594186001245566613465400599931075711241565925970907825873155547132690299315934930462293784609871328071561020189109308580062531675468189521598974073802684497301878772585521869007450606653054364803178059663238895808199598209200155309754500639489635728246410412440344585832189214868137062114572219214900463943959628169472616712608840393577553504120983337502342028343023435832931279237736762175463240935952291989430271061599024732006605260572060552639007178399626565374484537952503889636962709882287927603214921219901534844452366783708405548989888195253160743387522669134323226875763079997650724573524962422708939755995334490427284052157792066780917797122671242770902528287602695519177739343354139262559937267174543642538234440205115469045499756846486578775853610481038878289264252629150688049492258038498994607159914809425646411722908107626533343027356103700740686039188688255007160164697076285581499648670252895915283323154037833588101299446684290004904129935913673189730753109834408510141577689419666631817697400207983706108925583371512905349397288900237186262229184155617490062147015993781358316569129798517379361741492851037728622955063492468985022064245817577141468655380010939076873920202766295434699372938123513416645324953336898387016427044128519911441442009210713550021807769291536839891671299498012330741088932168615567220094307858336626664836227092613419437786112396319225180679965197913148181771308294919577219077488651777263503603241815991487081147217951482375661417618430985952868122580306700923026312111854140248049842827228067531866855222938029150711233440024349749263246844465219117660672892045143590649327966957204241314861213348792578564201741527254264297538100522769894121668142005724726376165349658782805766626154781189221798679876149237570689701075001316656033887606294641684893566573715321383507004826876186035873729384117176027808699144851113333413668641181354717191757614172857326678161586233737171313342611870633032407229184123704691150617009775209695358379289393557705529773013243296421645299304573598812386686979570107806790190766092030257331078518287249455016589205284174582834068450097692478958830342405996535838312889510835735372699375399508748310248050760479674539343990327046402509201629328065580641513736766086549931559005896082199039181039110350947907368283749547925386074546241921005603598219584337407954703680920000525793070038196353468856813830055328590997520896961529997474376658487578983366711958757558535617411852480962802789861367966427156826192285730001466795587376515353196073315729933995475793223643163660953756591129809975154511235821991737707399343320869488010004211409307874031331241337339289517149331399655443466605246353229842891725897866843228814299581885203884406635359636166025559596837048191599270569380794231713597213001626836067819972381402077056270862459517545014232365488352207537884844146754063596759071179786861211034184397886768352927589637000434037032730826808129428606606105844888772726153850433265719211542799291399431936269729390332264137525269874317180558353915399893546018947940390968756105029983943390457169543141518784642170291868353863009847977989268613617311074693780068119446901585772979202297675620476633830216513942162871712480556118852300737364138192360840747213964441611902505524204357363207994833837131750999721351387360168711295922713758394087975313655063169513174351723086356997093833773667483718750809719937920140047721049564268393291026548012762218500955625770447021931088932660720170600084415068867502993657848192621710784315232375435330924312480469076852397393395389330876688282572288976265018088710110181176165187596305129792653731223485503107034685449130002755848709794854359168807527640828804209991615410962338111835477804291439177029343985683829894054180061518899477328281883882298037640285482391277759033498108317020973815121699745359755066771476562990085323014744937310344515263995344487336146692527670462062796110901347379982921367592411376953929111233083754025371854626520566556046238911110520016050041290249050965070301138710638527434212807335785886773634383243466207905829300935809694829813406039677895977330950658145176494286602679096201157815368292319588401656756388985798809042492449373334085311520794670814064795608166618422102383056180557018744376687124535544201660350183363073363582516926984505216244692398870162199979459338076935414131288786675367483890944611277416265672733744515689914940154807526857415282583930760929630469205090704062288508825319857120105484396311229223883908757836838492756430547746661123391053839312750758169508212650755592567732029980102152736839792231324719147070449772529995035210156266697179760795671337411373942429136191177000943421859519491559794523456221888844505101885107827196883517946316894558615673357914931413063338009296323219445927529853970598689929347663054594266713866962975512963319364306649489752436709382374814448090128202903411988915873427710864101172105519355544938363190616550061469069995500004857566242634789135357555684434977570191882919381086114403976262958081750082187819974148001682280510540210571025978896936243649599829221537992700734391948238127670897963922938843217503469873324041556010230849293447460404615323547136092443592222915323681206683644440791381509395347812060972775114955338251274676601419149708606339738121597815060775954490589435977991820925345177818806096633426488834500322336687149097324957180820169292248949280181452615187365815499063005030381386312710792680403627517515010130616889415289657611261191306207876070442114943132893950544709031283860537988502132465973622233311747808670235139304364704806713179926797538261435226164082531283208808877202355853363998577015021450744755918763681811378696098408776947075756802193588521294504604635845163270853672314067567454388738409956136049594291780730531709796292788064525139872423983397873717825261940153725590192429404612269002255458212504284489397856274038061330502882729814251276683186448281955077574219170533911067588117921830756269820584369919419005099164361289872081564424785852686158631544194653478156938746096844163582394932118219470400527896355427631472745316092674751244253843080548907620561410686623746862763769585732481858796619788981340651975940625687537689236065311749162260064308208912892503890491683055644224897527414887714611407112066702896896697294367019887632724911333571623792075053373510556694717064270687301362060601476017351600392962747549567309346526962258289139160984583423262429351856142619307666557723618241060365290836761455028792129037268103444866008901931196464630654416437458885662889902972496147186087935559896404133655614737200777520001878347610527692853170860376118471784521816013162395570137204774537612341483773247146800787720707970867280206237977297205579998173645129146806730144830177521395677942193482089117825381866396038642418320802559030513771537555051352612425620744734018737336563823092246587027936190659804649235845522327997379678034926466906792687298894729971261265600382186020093957921474847440993704799702301404029375640282409071316094977538087308212649433472916163606390541833172116978682200988618665564309454924236969862158319186146166216012229625149262044372937689156830515780890456512643911336863761581508012835153775353605730421307328044053326505060726231812316833751099085844578054866041697435173230193306502734899909409904716991097614340241635389649840306855915750802438695336799816078878306094799076246473428864620798299580682555254659308429544985633115185180015703742318757597168201093497598363401847981718422232186146509916072955536350587359387137792801384479212460211178625259900009288090427391228789682323693365922410279677441992759962224171228077035553849382513626020549378661747736609243679315767112568145891089450638243791686931573831090913824278293028621326229771060606266956439031011138659527455382734647290686211699614077213019425681092145202469284038685063868262505451692913244340691315476962556626308828401961429310163272074812993318487976457743785264015572697649158605459883350157143987054880199360448130493628899513472646617211301951902016602188616241559390046075379159841420238936936474360886521746021769912512609652452449822051445155631198600526509012298086550008387107260475015561310116559919961921871879579396933764304868632945118754031499136381351798079526674409402320438189181651567797459396741211168683793722928378387577778409230640597564496318254179067698975060020749305646987793988771579322659762176511209618119727643292770592331813874352415967417453229358119261931143574353355765929225892985477311776598227884735177629944558963247483420189250338324631289732363981836368614840459745722003198493667945614362814658733152772462001892677645225297991054971960619468528310661008485253276780124940043200605749706890956864480217895513917101245011839797030143519679523815000964705810475250143618554597842888998776533194467234318535454608935139254360133263894575722429584306579954550242592317177021416320419944395276891732083864560491991699129497167949694510561257072788853454688849456757039080214264855335579246870776618779065083513060595668628059319629380031663859093704971768524018837849338238244819718099738837706887875470551231615015133084078128891667532140675160340617758355960969999856259471376921632187896093922017315479836894493780284215662584279645283860172575577837327430242048383201537484261250905447925792797022850771021732168674596360544829619968425323503844500886337668892072485199298483391004458075910536224311408284106533592143118484219871405193840444941735603451975764487550265637085880833837006029278713390778760263084581515309280336721680325452754389380546769638552487018401704881167190552493596669609198781510044466898321399741168620000079077628470696214377766556052602234366052599854971954299601156702916079556365724483754908292633103122631194627026957321395112635466045876216882374166717007359947932107679840842979641047513396766276722895903222885898486745644762966367866178809106021464476303599780580801208484066682881656494304131617440749914018727287992171219740151030886728051811470026093255797290613205723562901612087977784714230460909719706726148765631949573097292061094942646604653057417082248483490915032325419087690153275051676535400774792741348022788769579057509097250545915706157983636455788476869237052092583419212124072243746144743084091247034662407050719958587091870032190880983084899997614893198892474250212583053977036780600667759766273524816843486699276698690813766869805924794734326812077911652582593541962212841663364628584777661245233968924114077324542593151728133093524144774872619808755029819873679208056366816564726169411628761198196669755929017309963174650470285666495264186840174566564442816420050014788722003776170727435914902528148017069232699734040346908866460052429446295799315964106621516984835753738952829694743066526708162861579639685939709072077992274531212644255836122895735320458961990254878910755456038633178064386784761080186626598052793185719232144757812331033809669444125471246889950592522772368250894166754999797925022992525595341224161315674739595369218447030385886985982558169695768807027343469392234469865181070740061186123577747065413640051855448950183835451033754301255298374324812163154001188689098169664931891679913983905048917121943612689684105927269863149949888397481388936918648324158077352317579629200706593802245256961237183635301992451028577578169173752427969643458310937381045374527268168719016036008078046351480922412631250228559742933871693535061324820120915634972202986591498197422563998420043872821028578705786511517370584133360414796796406699974504682772701403734229367778351533426091573999959682143593287308998876778261172025993421001436946030828995759864377163730310268176301416755882090457356156742134795822926578113935566475641355362081444584264648144419947663874500136241877824404045209380006937288333588515871153227458994983239949512599170637148931345832724865794673704035046745802297108433367487619017230645767209430279882988851309522642179541319947093315951105331243627954307130208238486072342058841177586644927690816804719775125573520056660152844927685324037878401587407371134079436334312519107484848853481592517578882106391709268853334670903558602413419559936690940304699868359992169083954028518349775161376111589927410398206709699319049694640632216908648060335401157571595267570313142372690189079154654298250719445620417665637896502417786053233983068641532694061853031083277045589748279330192763575402630788316527957042916740912759442998249203373063290353407966608259406076869483222863069916950157049274060859643958328913295029049242948872051623368692845668319300144330643756602591620791324101001236289718367510415033177993516846747497419441768377690142597969895989992545894430386104542736695205663261302300262891382868475845880250360968689328011691845420301104697614522249779313791164010687613822015505410623768266728865703213865922600332087718029641418143897169922291776939308879458070448208995677239181397437535629485795603774820280807870664206726252079714420489552116372813958357012792612888368364909219661221955575711492275873890231852205138353354947300248065031882265105289528895394956478212775838296612943855247668775974407454605506171031321269415086609681291025557015543246285186044842121753788354452390057683798289904202591085684037077888273983236147323908253273938304742916044947506867347953922141783860163998253429200561808708353431012212913499274612068956609148930962701782107780683271115554818221386088671934048073124721037046638779208561947533200155367869874990808884153702032574279315980172272584848836041276481809475727295844116961580702183062953335094047694823146366341570493741557868011445064073452459922594948731212201640246490352009682889800126345143161402472837711801644250688479534882504022220651938570424503736977394453936644963182003603417688986238573117198380144351614010560382081578202147939774538158315649769479199476508096104287251235471152461762141970888713560589504077083286538343766568790024318311702391548598368215489773544737124615613117716079109103345231730545401127552563785098525079186251125909871620370726397134992288438213557332422754998656480774240844873328481562585117429463992650024241540636488253500796120920200402813150830283138745099055332877365386347017423682992849178951897507733928257026931891346415512183113359306550103507772824269816154349189975370419376494897821638190266345279022595331996525282376418134388406345237253655541179272815055180113981368078104344985941379909763574958588600558615013733636681518914635570706522535514894525931714939159275498641247595978624623411931472467417708308575644762627443905167843650993789321603055057904981876652554922128950796382992657565725436147161960846745589412963610631205672737304712240103524724474693637022247416682075038891265057371170186869234436055324930867647882598474034798587365981673977725788397693802718736531865890248802662332261695874327923349056709757667768171109167047969767204668811291514785399515360745543396990665353433762866853614391932567619582466251259208284029529604427018681195196247702437428000376682139699239284509419494255793967303591590733521787624658102666467571032071552331718593460805834097746349656191561083054496955781852868630707832903230831023550819216294405259354982310291096205993934981208849689289529135847098209091289523002920323873279349349365023949670209676917233873789340025821608289090578070939250451592265340934639139485000981744051073686446008358400649749131432545487345071224693706696138736240541295873647815809322640940761269514790537495415581572707311817414855984895358270300147969516942501099897609426897802157818572749494111790066200682315853965759241135166773687146957838475528074669438739291155918646891734701247345327134912200530784320063781460140707438737683222984421281177913442180888153267256813100247651723029642586588022001024520766897061004067540514267368974605222269634109442170906778664498710985545304106047780432727341398561132676879337872388461048824559320205115184456155408733753149463937842637629913555468267578174688190760142578678397555429116851460867578751196138407341736911068489522502619841369919667754546593655805671254403452519400474240086076466970374083053678250386752383144737818917901444420670985625775746139851839285547579830366269990783961924401782934551447566028163410008080433312508151017683094450088945347928363810826342231834417830518640819079303932464075253198948675654943531865452645676342974264894792560344764177119110979877616762233777385864729017732023401797066313991448783996954624271462717827262994930489763287288014728201129668494517523223562155425669221114431394251608080301613940926464005428152701287944713526892022770739882795298751420943311370113363270021498408997841473161674028641926341594047030931822700074628537355992605935556669155001861282189298478709670966106345937304322451637404440873478553680601516428822865768879158789314442363120868199941815716012735423173427655310136059961157750629754206902277039324528651553421267673498885527043296822617793582689408341263791476843385443576039076717507286872184091839479122221851371832331637047176385442970179447461350051324867387488481846827830359180705650664064511899533475521444502004158422723291628923424966953819915481561677320734194500775629607872825865857404950869259922897457091477461802718028767139124884818042465933982094710786426301249230628960132451953371534982375605967482006386670081660930272561498980984024088638133823814679817964646481689177004474466937187603091816879624340154981315135993819639728375406601899344341359417664503987216510380268875650923083869883987380421767019188202179973237244348956109935329336133111957345489780996113890331806737042060435697080703193405380609807740181864073212260434532318007160203679230085448220408512218561509547033836740862902538640969080128621086286595512221963527461169280210918274944305298450482557793478766073684990161227993800465024679640248575180730296228319213272074167761642385460699662439186946992423489539852156504815496963106548455568631118542078033528982780383239859097867897963073377980947325012082464884328078018149000336872165153920715589605370696619275961824945254145679062578959186744589917272690814616071324041703642567903991840524767561927241995482812176811387065850869997630752698649486999605003415572601820012513364396820755329382196486872104580879380969103205221699209732330143196637704637017817851774050157771022441119555781892590625002904306176895478822958511181170661183538046304815643078567146354064376420887453709123399472181164261102336338810933085048919060117750451700991991039444602333217852543725816786043603178604640097859621178334720536964119024855765070768702236935360462915542474704312427254838436895299873073470271636323981552288800513315277270402960197739897822703930410043252035410945831701296383811928718411305510287487484199364480003059318372796018405248494923192768514661954175376611386403599656351268535761480903010353399230102063317407643971406829547396504160431565887614926585835854861440820783049611013899540072225080936167802886570295550569486297088614702393709194699994225330030661046150680124435010976519084705858417623974876019561524917298969417821606567487053881769611023531442968856924386480659760278736854540930012758669968037995671758258736960216409534678551586702881870887982617206865050724960331826089554551329512262924745925394852941032200388459656432166779966630551871779716992176456856999257039876701149293498064743509701437377365768644487581351964879984756111790313260610578488224189635879988138099199136858616214882902224379148549838000880574908028637237637910630647804816222071519259781010646346484622952754549981575758681634398053047534864217718345995188220456149278736868919060045002857536115939937291090176438957182736281785445256510061721106506304369878196859262028341487104284904658190714719559511563796024610965621024161253609054636774763910108405649468545069307564247413515325170355859974667203282602546456683345374228964976507596555833964607029763560308301887078585005694755749412785026248296756816485632984182766832453076716131691609392008763028791171792420850362041140967805001248397736257386794334821266516857664751352367261464079228552208862275190171672739279196398764232372970457397779505262914550732675498399406014274736101984214586156790105651856312142089657314159269347083047597159379407154044085241248888211044018498775342056300634919541124878502000014445286388924454366695294914752271094136863834463027498911030305351789382395269442520430744693329108062254214486582126861004258234286518513010791755197828634113654097538970143764064931098418501882005848193635997678669087766821439673785420287716394261234770569816892804569503878885602725122863602741264251605013414404277608652868637436664877503053292897768410205121143433881696040191661963140654535652716475360060008971310763788355642877509386748373028429418635787063827327256752460505019220228395472163204931945886812699722687911786829079305729325642390918264196632961117009539227422363617609440635501656789969037499920239586355427653165984603848417218185500955498037576362129077495579393790393868415944643373463340532330650301909918817276363899177351776007479210243677386666445111030355607145665094737967615060577487840185465062923245330855196323877743034849884085587524623030739688207039702575005114374288397243141224663039598045856787480502029702542115003823923749383015981608833373921177720170814759652548710674009500046229682418710782349047109996566549652116602512158987736110820724755663549150417487266735529482246806346821967181743310459414287613911340844885405925190997018988884953193282102317301096147886048368526009319851423023723852033631897176399907838058849593322485808618318337857288735481351592213051775343645636393059404059792707903998751181045439223701421009857886576433616323315110617189425418775028388644861482132769399359130335716291612879032313330912236538018057503570959220368399079839785894676136003494614529237913257176877984693732392656344983844534769229964269617414706962052169394290689392383180734050383329893839671251330891594385468271707912978569587511237487346777328151541737470585169830478807247732442784996494814350508425670216232818612856963822313339384273474771461687963668200476828104704750629349082157128664269999783435307885962938339383482322397590530749476366886951325314544417760711379859348663631256959395582298452906143088347038479937580536881163663098531240044903054005705357027624295607933327158561191892595908851221266700204466756479968842212839399920387353974155277664294297874445046400878432387109676990106403424069223664565922118422634312044736279296445145725494914580295215128151577604545826069607638492598610201940612934425345349893094602660540934268044364333340642503567225551174288474134005121636745869332062796014984026686707216579950976452438923091293710836031728300054438567962089649032996581167428892765306799947378274662946556195712845646193596925076493181306675257839568572754356908584203550781757825138286102515209038033399444004194599991400284198481837619906658695758950554254115301659045202207928850117285134166560998994642002837659861727138513386138724088036142910732750687907823015431122463418760837990612162270038429194148630479538690073898087039177652636669853865395694075415062073822369386514790108969300516764333623723288513035270536543660552523308522224561738977708818255119846399186263487561418692074907696911152922220046453352632284347778363181608860766503467076737207930419269492746346578752069966179747392631511907830768519323574739593376525435592423251012935333226283577416707864021557773798936809680290337590738279417260038060350117896271230287788725277962621533708828429615881590367154878504572820144677987807384987613335337169592329501372657835234021297724912568153193513421825448798921378589208240434288209186792571657326096209013621474512388013770753608095637628993736885318336788817485240869553088476328158159421115755740080981700273313350859919633049942167377200006904482537667995692214024240916076702178927773564425886841200561764338491848407464390858477132766944654069850353345251753016521020369460965148208716409405317987796007713696008123380048209629513852976095007978599350948074129560766804288463993866258749326404616015500006330032507130223008579419964078730150282174565027740160800024904218893164149993346351035939001854096329138558289288054419810352243468105275876989866012342783165226425510340004434822515953082035107928387825022668978922904108737374388360337661648337165571173234665450315086183163133784436285034720374738583530765816057561269572066951667209643086580748984943985518391047291552324492201593278623080857360230829241036252328215980833105021916827486910016499084921910239874504010437197100574366140019915268613789148281666155169395327491691660078095622100088395559143834118588689997114410156843477073924937301243870994233212747688332049918571932894701727585623703516626813930539243597243012178164795322082120800105250513085779247185726648151767668561737527117853308418686310840824807504402455572287316046244255266201863848887924522133664477059177561221826439547717622084848277209611400468882892691798956871151214882725597878012692487962929520808499671734641236930431073960940422635941280644240162647239585212593777631746952111166044310035016289542323201998457762064827217500485890436630644680568689849315396401618407591371000898316948846296723449349453997111746856280570425294617517110608812061535840286004485326169515998559089597764387916496608363352722774432882935877920880780161725177291580717105459836824776277624182096999523900093130647082504218820156976717742362888625829592661974860271567084506508944048170348835736631651820160145793232429231081704699724065985647283196115321695378625090076763453677658497314648389760713569013826378480653372507121602475011733673682890972497149011454682667060139413369783379082992861812283250010252808451892122153409126536405085959825328263274585457017387692945267551089584767794181043953614397267953388393641460880469448331570624094250531892587312481322782190060885630295788421144533925458989502950810306010783275314226336480119187875817275173659172241262707870624700277887840836701989808386971778179839270807581763647473528847059632835622436314451668408209060502332946372032663191979893694371937719111824817128013556421601658832688305177705399494301944288553874972636405833494954401883922689428733124386215236338251924344833117088372134310960288360620133644379585096135457254662217675405972201843019164452977783019112595664380799737239832995886148265426512466880205907083916664065861342920406232362169689888850339271385208262134249908470200317890142269434755180314912563048566674276357541774209883308791221287994053393634164261458132546850385191691223012649931116845811961464194988436620455316476400116842796934185622110620962064473777798850224565807000283894988974916539115701827233711349941446596170856347601727448822928774092777209859308262576173229029956999853974951415069714275807480327494802390727707933381608268872692517790324763473128236943335074214977727783611222745188997451223015393949632699837716575222290490930876055612620668231481490750964709994342164454533830709507387398113053128246500898465140401199838603501403666586874925406232587656027871133752066803266387080260110929190086070957912890530366381350923477639832867561160324327227837575616880684464504301477144076857952157841505460338966505888562652575587115914482559849210076659106444420647436500766258069293152605691990240104844945799084732827865967755734456992155244394803276161363136721489389709960394096928216432251792542459658865675053988070323620639329096393812898278834158961720611324899156360770270318902854298094237554609005442489734198835084167335574973552657424018692990433795216190216615046261389476054010333640933689646444215179199158349756457591677172317380068309583831743200532920327926841710936354604937857284960096058957355375653764014577095612387692842938048453648200936510708898431740624924161388803256586633127323015690678861705733634265057109573599085925686811287093511313838128191697052466876890509411598869215887994801090984165007537025436780045017737159994012219896357856676241028607465320941487829517939291443906418456120749546726854123281320125789483638150710075559110488762487822710374697568793808751569624010877032880463724933913102330369432786844335865895839622442884176645511118409737458349101769530463581263085458619313057093744345188164306294392975165414620445553318215803999412341707778881753743450891594890303148895806561507500177016484010138372099316318008047409013227171050564591552323166605874721745363335209261459741486817064504319111426646899361824185526805926736463715200553045771469689156066837672194040445826208331830574950340029441535006490025604437433050105151740870895731961479548755626861406820889291959430039101485282692431940314197459850236592258292599839472277633791152026939388110845830676258896694125627559449802331434716932756532983559625901436168113314375655740089516983490031068997101721671379369655756370517084198073959593000853998034999229748937852888370770297767370408857632238004286692110628711167753241106509469291222874431035427093127348237684108772009209145791294818271091361284858708842639530204422261768979386943816682642817791034975594457021852806457474261529548004488944124897843402686085270192711656004829286767924568174684611907111508404632221057905762112690281798844312817834112253296236490275906865944868277558813675533488677643127936464131541446281839698889959479087954822688924632422361086726681327779370831596966823621296203560102211077134912688955809758959125910490669717101468703033152415197032148539951543967535680465038352201593936425733041053195108262299321452653151465067110352335641388612757565539467418887850424934424428038598549973931227523487186504150973793859078252040309871044202253325302007718751507439887574324144275926929039180904338427214322430915106432665266417765844583428781543656289635128729561251311714463038560835555149294069307729267453834399269571018327625927999359891892727702034486431268246490715103471656938019535325509393141999584569548476096657065432125420179305153965033848731365175360408878260535989904183167999379232692007341664127751254930192136135509833916401936950139461456615636017936654824777182292442856582079220943169665864987661940888268683475871027468116016129054475060140409909092704153336860204777429456260531831896262918825855289290110834422892002189827605443324613119747111666349228304135599304561974747342845163249692012399417506385468304975181246366519281017669525510015976281017140745124743427387751468519230552180429749989813439914989373654462360598503983648330435252661951547466215697698434789991339475244313685938133918379989672869510894988494961720239851228214343851776864029760468947464976169494409980865324799453054537591579063445556266068545074183421101080572469788805246494851862971890375951551646461097664820986476250891770110422684970481055798046771553165437579309101734744099250919514038909797965972154200576584560512584239195387477457219332898775474943029398068595142965114632453056746876876002833443755709234659483380885721847499338538963719295017395849960112409698102706688445930361031796114794316840053446006466945809329834133242081140088285900280870078920576129014880700538942615404410660226118782737416312760196608603329056466882197901637681661237277323256572436893506242821278571718747363120932234575835594448768560327616749150767755311165125359191104282135137560786414724555694246277691701156050212245296680262517068044185000208197123229733341376736686859574577254849263326478485242370172016598909328154330681043564290543609137403581678633069089350979533084144516345445986618188939011263333267036831633062269097691010559962696585435388941512406939298458875047079414690003753944409363743387819234035656384993097926419862594453353210918283934816687970489386354223034907317764340190553172195981502470257853482552162860906014555834056315450661476488383614238514528860542847196908443893275042914375937439920835439825204995021666489286525162026146920984890015362441343766846542646618735728139965825661553600412747641271128362670364059720752377352416865673714512852883501439068863368591619159629856351407952944942234446663842236725100430283257875975521621051616218717779588798405302772076872321649641023259315581026956180201244744675532348726910774383114878528329693142949337511752787563898076633408748823309955997318614690693222655063777961826404174869246671785288898570087073095401948374145198329772095544374084658243091629873690364358871629975133360212344659156277804638701223566626367859877126120115371341009054608821243323729154048782774710701527174971886348574187025844406022582941987059246928258534063991499367451814895866006852178830602420475027411982873173222754757465210277018243950274304305858638108366577090703735809613137916835200812501354639665044203129278803822258613367750411932673325849089336943517791470306513081200866799271590286827989456441194810542690695170282134325464190754177858984757463201001192494682045495273796182776842483954936897046359726433149620456608134346839383274868769312069946322144677655354061639089134769409614763416121302934193993448502347491411334077894705784897806707668273413321430706297406998769492039501340416586875676583725499424931787216955082179429907742969023272902456710029190304181118218959255988111814720844934197568541678631555149049010544656289939196860630834706824197782883685118344778801996855007981555755322488238179639828306456037824901907622398449745823562104599822069459913910352429657787317822865471264801630876234689744083400219693054913893343773439260695832925834066878110008492215961798380176852520990718395970390762595631365769286662884593991970695158611821722961811235714387897741354345653510573078442404285752768115019393723559857541204461090792265435012692625369221228246287022519685520461213899487550197440226918492806741136930837246733595305110309984055509351643473243159646116226713574514711549734441558581257913092327858400986294571996293879663675923668724381394966687246174845301069048872236431197954976832497765037148069195892740995652287187880686377080509266774878858565410692750559850550212326932546176690759718059602485529966541397930976025095048304998908772326474395803115300590859448416458979365793186309974555079390345207942452542099850089206458919389081077700200182812848582537321930477764785636194179665911419422344212031324784534774429139431905010262677940463234093511035845403098815123924089283495867586564406606582117535251468409415438560012256917826925540803763871737898761736761608597510951101291498415030993200072281098181472740194275238670825194361439750685824471812738689732996673122514796721977169137438566349872888249066161645654960848154331455926936600053066672975906410871884765360526560902732871713129307530827012320729126073448619634306681728475283887946710001409490913646278327013273315090539616480219645623190271423609167054744748889264825867176969193708107400880471219088239806127798707064142796166097293998774631445074321267527702392935725169087920627355864499667948032262510876909700373420819612910646198920205262028088796808977145533335823881844779817587833879349987852367778157496298055943094307562384256125515638056093511377985276514041566024501141082676063233271343779647363608096629618563877250503089172632378079025311633126694163532626453034764313156672783186774720061314372056987516371730406578728177602546847636157952725274822307892711507649127396916646350192635069126558372006236196926700507845662301363761910108321059150513708932944083925663301998899869278165480991830699686171072569017984757166712618453299751209885796133922790617493185744105940683542373593020677606847427599595946467126462445936193604439428329930930745284876800702115783828223493773088234399439838734327766784818190240532714314190138308813886044166351248185826336641117266478587445974013282083345802916772054008272871302862169133064485294767592973443420011214396055014653434470928601972718650281049128531326931024438682679717925111573829860004032674890359010127923145548036518726360061526257117834669050030175593084553428946059407348141048102065745799011061420698199691894578456286306010710787757867223330325960092026088806041538575548714293148546945315851425154538168727450609229513531787323050666293734248478165239569268063519116555968350451331018089040148995522290206076601219643135311047203857134153907622915961861311230753531830703216802716052752043382299653199958506137749459882895617436096139183168032812600315177841045222822612885008921614966306968789604426825792240263656299317166456884586333543342656651521057498540508685346639358749192630319351856998670354978080120914915159943051545414421155196076756952477330471291997766687444487284535223959260891472824273686209166301066212034635150127547366587582848805667753957531980454535729209965831535597034992900296017559289799452370918845922000858564374710911008561772942248848875057466354890389717134466685689027030691461212856370526557179941994849993652304347984810618416346549174250415669178375034159865627744980193191770769933707932302259170432017454049425881967473193565207193291842555411415292558708888515847095914764709905548910484861887415706785588637641039441219503530259740114862270090962566345517513035240900815017084090596306924405245551063206006729629511208029335826162722682001116856835358146665607489664778831968839328569557593860373549213605380277348133604939154777554103702378791705162208431371953800570379726944001605578958353767391136165740552144407236491645344470509379060917800576293062376106002513975310822265916868390551399122014002383158190683830458469817982291338547281437093267697682227852261078807776827887114664949877973528929370428639203871021254052594574997952618552465071797532271140217622572063414478830851601865758133194123346335171747668632397098384909083428685871405465362365275932844478938062890745306546244783471452244610136840876118986030494542069036972703671291083133460178275656899852195946609357137634644584686500726201271500060788070351316994740450742020973024329201229537661590147239864847070830059719642706458628913111187194215926640885193628240053454051633744590988864454942780325150701430396791458768387624940902034756367691794746265157762142048570215584552718765139304564316201728641093767909880669130771522893714580952635202943593124339776968745894438653890176824370243680123218880692738993134770397241949478043709657837880688857210380698926124496263316417228269875596547543819642086791640205486457531583975090994846288380170370965386120329578075326433766559558904760964628714288456566609400495563208175955239065538789046363899712477657597650904229921716919762540447435596319177070451046114338925806476423515016630818688222507714456340620109190837083732650469608208182268250995441780687798362487048938096456444844202256792714263781015229860776471907974228086918561862319434797881658868128914659582433309009376073162203165641915855413939106668905522611989858780292898127485380926703289754332396402777724153095663138544477795826813808479228831714406764071919794810430391709590495465664924942217213735323881941139163836341154637699925750493075927266207528719319454278017966131602577301477601364736970023122151070705185291141805280229414305055201053612354887420391646006039472798771529630620943605732440065612228552190436273366732823138609478326720672767855281771508229898323247363980265521057041886957441995894206227884779645072379002817130666492851200744311208781001295103149227614393785940763900333290052703360747354258228454418716584035294273786710593984971385994766799271357071633851205765197542479478627257655045450044997979984848583057202416804638631260345513294592701369609675361779963608844590874959187033534155468303174111065400497323548290835087232094001043388180799222842393036967643910974953718710748824679853861724374507124787745857429935762325062015913225315382115835802819915393259300729867712247264584241016518828071768837064892747461132132957746567264700824158202001928992050211304060560221251900938763405767708564178886505316892008653398833225301974629444107004258647284179266367403233323095482216999718754356224487276025646383640825610617023995526632509232133660127015682186450182129676426792328535334657704534065979869387903207276798677703612677706038476975825593076378096245268899627687550239012728202881144303040343004046150686530106899865675170880352107976395107027403153462533945528368850574175412023904518657877238340104128093921373427865743109655847265693226556652445971399126104345433416178422875324354684326222783622115459478549698858944909477344479513105471107461093950075142518158299176057755715275614860098061029637138782826654006337541053743169081587714909204331473264797419298770276261478536122204647421519504009846924067434809961713990315406368492060484845203630920199238144052413067413540808674753631821251391873193723531375330565440211005948396988033058411963649030985847796420239843306691028361218507419707995559637674732767386186187802311273597824653033385067547238638402863102159351500399056457640709236078181083156949602118457497372747812030259787100911492860481326581360937153477803535026698814233950180290586383606098550496862833095794640193591123627370098794843493150716355731997202646844126715582617855918673274559996163457938621498097248349292751265507722175618524716245292479451790095732040107976208577367853096063453150020361453556403515576447273328599149893446232011012135933385361126335190272956757812622645628496292838105876073861745310976671099893474053144750552956181074557163730114335110001669922226097317338960054195557593654471339039410285279521378096717026001866190837698132463172976034598365720785477059249247976139029561101626992018018643942089826350374510343529628068773477216507017241765693598036503347647125346294138439044732772570929337390463571919186644703140641760177816178231141454226456575250463908711813822860712868567456114209252664658640441407992020096065530550323220362008961314709774336757438142075621066984566028713960332550909910398284743400168958937223570494664227190319250677655414882002093766881509198630181176212667681451355194581518033432401971729517999496843938950187700208476707206639921932802365960829253270386283332529484352065332584243755841934431053955986101329141715155203918826957953998664815591634087139676953968551086258358506128114024273759732127002361054293333578582428024319684785609203699930406199736204094343063428596352814546038924180970420741196926792795046714953537012242976207291851579292502861953471461936701474274933343342153310599398992367992660622629857694556111858473883249879779716785374567815180761621541891122738839779093418490461776487899681764621035792271065528922910552657740290254237176375880212946435472444015041241222890188736082890788566328228177040886926250708898631754908207611707401822225561341294220723739813645395976754767567010291008641517071101637314205849671938470391401081309783519331906714037574950051667786138212529812432377499024574108918620867284277674832033517554046172506105195474024861051269241799424905448067902694946663764580090873943872715968816394724670634349219594906038247115753178559832989142964898436589708513371306022626727289231031078655728461964780348833973598903508774194909048701546133930446640751747253325546874114000726445683701886801334599347579439425845816608880757001446022875047564105381896920341229371406240843077382831918532776086461449518185143745356329490082133467197767881642255580949844856716808581854942928272071928549834166325356442996253548498720475244210273449470091470117706167820262084045823888977776817094812960246856990127906407523965428561826384565021983757890824812694893659377319704724784532835021623580180287854354445813736713038058124519855154490326117331581638969016222864276550499867106793401738333707200126843794313978865853931030967297975805937447912389822613688225840145592270404214187090654799849297591916313432019553679371085929267328872457164664736721485990441659251093923455551635122915658054084154170150353408226196173200882283736829827302035284359688109813403688893870205126002666885120778817829560602651255073614593340635038928989447016170493002455956760432434632951039116090750513703042341481815209210400639025315981994834150500279748359055771741150596214482179532923448644587990755395751701714176702815262305511106015447239404260068814082541012337723889372167017184113730364608234969859953702790540748341655711486204668573268398527328217953494105611852433922293435082009167077715040740211056918989470982560693881964069586089638608071135886290550248577841763500306082242713158261719604985732350471674377266627354372882031791944924905880443545496922421990388967620519057130170862659985039065806475684492765507555674919454419973931857486138228639234548069963530577478033625213468256630331473646592200513558558956312508460810596489731990795859001533779780024923572694188368053641871882878089947230806823218195573934730364901266447094433088699922576708104191181711732702127726949574220647143093477889813195585462762407126899102383697747565774311708774675298554973790655296859179366112069427908726326802915209387955725967447760518257103024303699401687371197291940304359306658271035656187739402769541281607669748616130369919307954465910785182996165268178167609207162659876312915975647583024498124765102293244915304875615765832052554545134975903477265894445901579958345364680309656050499756536179405515878797618362232966251183029281544214443517112103064816077099105040664231062084178345140655973844938927341081788427448109449623246961582560914699168464918555975235526420490259002320722678730063255479822405360110731715602354231720640823783984534013212362690913855522905805845572070520295670313600671007983681874613059246282491327373654601511065652446491419134366392972046029526870290158181624767770280858624115490507561801646074368919103456061817566547162611645374583946353884834736516337727011282732060387282691786495127234802666235846956844527338692215338789513219448030086799623007171969720361409683197663738643730338105697503978662911479106475730472156893878979690224153633088209968124680040690867038880550702490397036300164588913861010245016207146089739976795656385549918968086899073076203567132258734461556239997923331195927021001825987967117992646515348405449392553077540206436223172208298589705979498201403691420956526521473194040857863425322643585134089222058718902099231926952893830516033803891939653255562880974770817095872287640111505266088241082645604295924199185162033585674448190095131193822065368485265268200834376009081905539346067585754622099278211622140131094228376334150685779504251255309777704745098482192957256221042048360355005401226403446584201501415137886484613543031953322889396239236537669658570529759241142980724592685891581496574122821026086889301878071117059772072181279240884567035796805065516247301511617328546172983961581125707659843362585427552395922503403539435394807334891430845542125336479072838440670548748778872097219640938902066023605262891911956768657477416489596826151063177898583298818878215131368764649750995324205134823089293615708677721455081248277706613055721194237339467261998809200757476949443476430294406982077606624667826079105931970509052929215995537062983329986735133965349409567785091012431303886158898402627029821744994940319852513098307896323180482200104276751737012456165367952435099503730607765238240221363916084125566261304571717924065573858060087853478710385117437690940475742007932158040014617401308281188064662301944534854287540946344753527637199116978243593912959842798134481647643520785839566631533899017719353863323277763081233580700218383638898012953442566298532695482188337590527893180067072022270046251508238740235274658196966706617505448854800472981349195721070027004973222121365159543969029520654892441039944410778840639546946628827894682386663446372946199616859622617002155939912005113985071026027829906392526307636514917654919586598009535837461496376425478186342535278608169566135360049506058659240885665988886804297381430295799218582988326894934091341458164454939480097082695196049971181303714408928809620512332782359865461705381162742242383665538844039469763041691898384196188215796106817552810666178212782193834739525086041053911689229075315469605971375758066043985575402278147283465921687892763751671046993698081198898888179780844598692544860570657169937744429133572529239907498977535534456380287945181174259271395742765644042628977699853379516483000835874958700973677726496436077649367171325324986914593339511957777260775492988747424871824423269738114359151212494571066395860855760395013263624414269058945190272877379288669916753864309044274214434553446459150280247631097410749977934296973069086476815274076572869486936561919188597998391614515598909480129883602607612448411670847777925159530413355200756807179218973704490199706456209708029959815858903779734370894113120624804991314173398700376018587586600867458908483770399452764302299051459986193646845995112429888652668094699744702323067224992096122132310637963652711892428668295385166945439321438872341255794759390056359233042673660947966083698098445114957242333544264551201487105714846169035721973738454127833965094941012485319879070741566235466428628202320494523029994629723871475526080160286301645155572459783946823575963943057031495819640125338341439950920973226759561250988443488811125319681975450051087882922340862660165360994497594653133077263260792349796111742180275323490816038749584019671757210721076077103716426656088684067315918017034247211529279392285257028283711693674096661339531881748363242895323127451924692321614645649546654507369376484448209007196896708331243417167154048628669255183839692984529519791169775308568537480163798666678275205796900791659371838476672857865209856823804843541746177495957934361205012675996105596949202424628962941933619794047622241738500295067232505962933425241303903806594066761404569860682865313080672941445869650549988028333524984152747245421491485047609318154697084170589892610795703439370195304697451610348736345207180003728427955309163776563500891939929095395619510482061664631159017522617924443519675120429956876152531173375463071512974705005733713307952988494399493480677976617659420644888243322223488227795889645527556052733074678742423314761560317515321188306151788646960813627737570361277297029201005976577237403234015973013359392121124483705174371785777673929557661323245345179739435328717333186928615066965384059790953918917335882039669775782482361426363133686537390242260184906941583992872720417397984307058916550778449728060193447125895668068966101844283977717219832572370975374939504397942428243421919414427230554792881874973263369929939592440084666192269821517812160169280853503843965859644064235477835418875296786120744754790212308039806193432276077692330698538779489393324584761086626084034810072230382905020254311549172281115228998115948166023686034525687831505891190496886798718595464770725003341968423498733677119562817856333098647350121535158195648054488124600559280724118700214508895288465547908647806043227459374365669035343832915137078523275223367753734370108564216660515106401812575525891068300532047134619882487038738497500066272112272563011657667696257267389102171537416844613938856371044628400970752125987342166327858898031620102427295720552122327021360568168616150497094871876944598629339269606889951738299405661081262833541854493964152481858113504822269841182383840953909193111033082919956566881488024615411727954135340444562571163065311527455546412626092162573617137407351548086564482135523623031907969785190224595136253699534178196323768280056744927169034099746902373517095669013789484224784286385383271174710802710986409930955975113111667430346766912302478018605191351027367856627103689490219890071023038392222745987998885377558628038763924492207001890704617120047565737619561302352424562520497590626044715693678953307680339991768840606337577846639158484006002489524375233078451691662382067669661397352279016782384067021587578730140614755170915403368288351440145150536522198514050871299614761914178526872634998527457841138392338889201365320439563634336941213369875574324629459612982442912436360356697518837204762536409232053339076149506096855007220534416812661763818681807789306803878857529444792033922612018693922698073444614171485284172664463990597619332086132229139361804440815620326996000667285203849108976054492807730940917855262850486768786540697973868801667843672432074565205253499456901210850783885957221432512647529497025743344289544972254730182412832999029082718203404483226985965234241621010021991051368832903798094309266821659737825149988545190695388292802259208321452611909282067337286857854392816457070457065074862075255494143065184063798099049770990191293834487075152385434972652064596939049611483321608516552507461918455987559450284628792248989933481647301975472944452677596364361220557979845736817065445548609765821800977571323925332373433800515683849416588538973669774339439187438694098494965926315392951253675467545534415018810515468709206085732335638155426629595133998334531985453969812660874362248949333121469653262896167414252264819421773425675660114112361266400822106507083177890331368444334536826408631821496428494232437600132543038040544211378431339136587009977497917732343108398443610815976931045839267350780585020156701034263868825733041271912197825955367727056359014793897091266073873802029745684705997534013946464452528877315773476409942559852874614099598683891193615049687252126984800622556916814399072407224021320217091297408822026661293710822013866609380542374574897035243323229801838739243533444782048977328742074144616520885895451418522816124477117997614864100648043744384915312812849004248765057452003674736654232690303619018529460746717797440777701966288908797786457565330900976895921316080359429333247929028805971553957559671021505952764410489956781536726355565106673483050355032445577346141397409923840866549395487674659304067849862209170647411854209251965262358754261587363627908366174071052861149685383631313207328753382172563021718037932129454021365652043993437869733863381496066622203851943824325047747610073945887401243890821869510268663007463502851807147336737678939657958204552942268096525274012878671774312510133451118489139517536973926851996761338551743257463758895621581546251858483500134007440034669288290195672015334110030866516763322383275466425468278919878454774742926589851171223819771152537367753928127493230992761973460291334895394472480443262771137566029204017304626080183917624490121287522290574467220110306041600044243622768913449880656090605126229215758473467745515412286631191694098341449066355258739478615568805368871420545839928537704091779477397770481895340619938028595636336412514073276242715959027564115650799508187617963883608338860614410523500464205199085490426961072059144074737996576157052847326967592131785555106118417383750674183023495178013295320102288964544540354035368030097263605586636153829461580253213371656420616346628761597101097787297551586974467125903748526164995556261012288152197263919669771618839724281282539382960393641444378596296905651386758724705545476830172021866780879756660657311263149783178289424552886118558178121475139925052276382068271956957775462948367583804423529431847326290454994765732376868820346171650729246063861073613614257721671771327126926849481079965070454321299603615383942184874184524275492017407275930795857317291599060909384170855484152317023610286957576607032686779183637978793034758092539963793236498867228333481861956374537061604491189703483954781131088981765321469276474607386005216051608048904815262392166892969097869720000514178727442171526533026228852904387321035388149400675373853741304863945656801883331442038665780770496141951859657718674582592568420156083676729490435707884982837681723036791230860394729220942817906581043625469848881028101713933319704972279047130482332345014900807452082240064587295397754927087101221721331840752609777803467551862632081656414770582903985623973147466703924735152030734387547428311891141042207466651457012452610359757427681026425520534772872814507536260542699882896536810264004401788509918594368848867366572750147576966020329542443310056711419582703131345458971532521208685721325827031781085903450234126479432197906525712606836493351658707546915809805549375917476419476703186176877853431990138097922039208951660321846783289420301829638763391014399978270471067835677946784785551897626904350591154854318056732124823889362806886936368733647092867313688488082922839099975725586211787087319337064010134609431114684108085746462849742226046692523496486676789441461416791922473021282533525793377641762213758888346584349228397713713477477527886070077011904678588345166617310804803453460381699912828274523562468412465154475982198476679605055041052218818441560409949190165965176492407072195738931220148596467339276862195059581844481374475907109686612798439363982338021858653342363741809286107218700502365971167977253890716904413602364124041152508121055727660091082922829300484247749594158319406338642002951359972533724173519115297324673575722753481648371918406624340064899615202530100406333530338765929236682650370322978710238959972321825231190994529589185495666785228391899294709802545610119258839695777376479806883831154157738193712481975242517736812010131696800183420576559975742464723063900723504453195461644753491193403821423215071929290364905200821446468341218608534868072063140189196877333123146677033865366777671799235702882780907450597671999187435665512621202040229552046448481352344545496482773197098315084668657214825284443083574557920073556328590688241103327568280425737684530316042140471158608304907289771150305816541311952525886739522167590748812781466296358352408460970948139818939218088944658127980747635270116725044321012794687046441862112554069807060431984043336672986469531266419414744325764121971441814312132906299350928629271177931211169449770494340018966047121392149539037630323670931958803643577599502399284647420522730653262034385090114782545967399813475607742091640812267575475743755375001327761169379890312207598018119570454419934695769890256653842430560275193939788085395856359310989639546893951398892250141377626466378737311548360753677959067473745287020104060456188068603071196350989580821189844306498916113791115824644462964773124302433027023596392305274415672810794574594337560105192740116717494046348831346900632147878503439297040439909597994716015868609681338654823204146315099118680132153849287002278857047636855024654985563565931244910739433529141130799382840687072945698550782546813983455053935815744914689591949972085694664976516277011052699082109471758480069752875447880473299514143045115827694277048858581133894439998311335077511497495153437891399621477430291979645232791376186120682748520689321768117875749001251899165908039795362727342551626508128824812794467235015244450769142993306863585566855331961784101069567553956449502464702796100160932695818417227975658985086095409383763338906846444627174960602198885579140858165930580406395496429475581486710497684517001260704943806052911282389874474643770979259479914483210746772724856654179739344624888253900914289715928933294641273945892724982507767017005088536904189293907412744024625700511183811246795118650634066596448724460228803265012112723730232694834932064616693038566537062306454731963011216168795113397422998316992740350413116786968368719459739723866898804746472184210767079447617348236221268467637391428889486266432800401929343472479005383211819288043846060058057029092511033556413072632581800329430100864911100314482110134237528993806436739676249369498091869528967489997945232951425606468852363387498947882004002539581381118189098111591313692248608161818479798535281103591280925565200612491257604837591147081617986953753892442890348191647088051648214791219185771053883414482720331088527615981934354229576321381485734179042730410006372876109113053069696248061689169859712026260586835801592565568667358948604902718340969342687119703136728551798377169303272605889982916002863612791196797897856415060672019022508348524196936887650230564492278345542378276760639229402175705073064026226829704357579874501527936157500347333968819015900502122803841575329026995951314777311553765765140968617853654409676620996059990920650003795407860433391584797676886183463899045534264103247002213371613516211739346926112922689836464797137058904105737460233974641367059294996609563108082374085941651874931547902799536428957057002312428912789611307539270715943175519287025688498497060782944272007086768511925732547092324786226306700404023567411048075748131189104446942591726633778635744844477804436086950826951231067906446858836427706642228504443693161959132203745623503239269494700491201753299578861077633411058528404929328411674620214455244210685623072369915850124577673254621762987102581132098427708124306576492971172976992161383152958607924734503318504702740232219753283903754196405619986516576669570885294616911521986622394569943794153772881374633944712693519726521984705215560395681332672805454650112606714562143937906576231837710531774631134813155166284587537115969465285568132918186012845096871444528557050793891488015232099030459487390591108689581945965641657682273313577169155356249278315556277519413902869490035991594988172730622269498884772610293627720533692560251181040014189307601159913759361172797787530613513641849374320592908524813694671039184229148902608442000475935246026745999428157615927714879212723628650244032585017886351495827075615772062547388296602667252618908698735723158229437083103884703321999774569635699257205818678075238803450588270771044611633024823986053022998946967123841662876307687389784371385589547229452257300151974404952236484727216985246841500558747127413108945941766213505132923227095932842422477934437440317217314962095839451989382016128851469043632924584240578662666879654976439194857391864872346786156746163206688965227425700809993588393595903658329090224326974888654373184639428236996457781702459021564333841485536837432166934940148969116534023067911889833887666889996615886140411508814853571512726229591583050694096996769758724561769390189918096031934213964777916493430652466536920988434105265921285629224910246611323677278433842385199377198153944543905100572784662131606078577922472696579544008399732947275117952835204437798065680800101357704798835588451968362675183399006626704554526005502880492430314065509152282360924646568977284684274871385870262352358077843395233482154113456829375050007814881595664649221146342351565948644234605972813465738613542800355827615989236857182785470810084459195439095126138423293935931337862443618623092074840404601446273364578170850529379649328860354135920513282075682866597988029557194273131430488722605543331861279485778866073490913530711080372869872549327009015236845385640705724521175143445310415428134868373904808791958305871144017531641779886352442815811898506380182280381111405194360835415552393281057687847045168075934491445675759894150388404076443106548410936050640575957628126803484725959896062415639521581107041128359244309319157032780112071044851566903611165615560498409726627114691682105808920361015578252618514853378036499836349138151857908713746950646828577902050103919577971663743822719505588962771861002909156450373687704180772548424872667629568017884973622668357545828162377101631963354446595535083318371892154993942544650179250487414092643844013420573621099842336963632507112636320331818531141392300171628433196748931995842984211829137844439530701065453005119813071912910789373680828493969099646334709203631923101701164760058290224143300044154680310817394080754180897240969197860562188974462612384198903328277251986567596618825726958990818777997639707199144269429565759889930309945522693773933409023762243199536915887580575700150009131536958220172542917139664778644443338546694685372303262117282320218796398300519065868244512371647611760506605513851788042284774302608113648201643997356199140483974999920307847246544616069401490729866129222719392304919063371701769349685345726163443700545611094248212470864529493240278007692158014808673570140392500167300487283208128135579674818006262158849271747418570926182434280152325093954812728357692809323893975785207054654254370332754594786858895323188821976690988259620353678823438314881935235150007133533067488375605044164013527548037183701832090054986068688385656997293261874149160851040392018158714284927279711750741121213602656743181855215505000855011248477908956974253757765022827847417708246926060217830658397773107193062627899840105346397553311596455947332951294566026444504143008963609412760707771135597811529521286500704667620842095640467626115100667640803463869498231961091192805354035763742485565934083927840412202661201084896054978188329729702186929095941902100752042654841016981138250268270933119300532400018493538344612653793238704285934946769416886119212950632059626805259326063627992346420223203588093932530308067497636166228006794255881374069002317235902145788541359792408730192557851995538475229860821797728248085200253208421282379997800933066649385871394790091666480032930126887294173965640287436785246433115031345546577863776223679335337506963477949297935543473653762070308038390720249292550497336307575948740544870315636925869754855369484150770721905115304782090176895471015092652211020934338708251511838490902489238782456390100251625645863864081931483739415955955077810374825525742313682556759242785378069221051763243688214505959957522789361547082145869972478757202910789292203562215413080725961968371499246772718008285771130165610660166556536347534867143909561837440373886961810947042074657725443085529752031497979794237524964266798501444934910411153419454324420422673038866068071227544614766838055579996475350773727454405812807759830543855611412395035881460485799739146025755433559477406002045304754296125310678184085607035626891771726375388948698592921812430419991072334647180020094656186021950546994945205212511709421656277280260726307933191710695618853365972957462463972696119179604419852153768230993732129360725769015195767926719482066502416612446225726443740136069465237550632133658761174579457421472271274386785644962879180882224731338223260765925738956588910873990093380432498871068751952328934013774279314982040819553161295559107812577444919583393644604030897867614579443586850376988616288385703355758977457614707285245219582873805966650382347230441162876951322117186311180584238360693949182543240940555060010357109395509947208893565400344356328589186179492168310655213641367806634224203773455595522247547047777889586265708012353492351325940190689617585687562130324962282327888851817341390559255382067339360824316988372031624677645191873799556871971827815572341136319064146869922266791077112453605188387944523418276433462689362370971930089556625010092269695977782666562865346349044664534394318636008767752168454165715479143414538966561026904990521802341991815720794909315700775066134831082601204970137963217368195236300340595926722235782753040446593337879642538743687727357340539923158039991269773140395432374236410950349270055362096196872156743091969862687447294160200114602320603906314823324097265729997852053664159785632848643720987145014699963641770334508142492084419526207209564468146778167235043457600051814550523856662698876033806954282614993449145107749545923764060389600195336418783904711084951989609398327846037681835096136617806942205501289557564772202759065553008336800791274089796997121137544479477333526972781944315974718530141616090960603216937317059403381774381784529578719651695499467474778689110464627613538161177641748130152005451590604148253658416336549957068948144808740666974112087145550148570340598691027370125363590830637260826909632161910680184335825134881597289641825482652697415245380243439858320481079502618478701005218593812651498073170582210835887213722753077840202976475094670797930828631088236828928064734277821572779875895807270023467167236134835165021653574762933593340688941188840425629574506394943474574828536138426281103439081990954207686463987322041662767904396467608817437930511021915566408701235733059500848533538411684930494219365792240417652134286744480821036369242892623349726881554532440481989586176380221246554021302934719159708356624166936216309996521129412084705466740405164431397390073305611418704927571154538828512874735697462649471053011424756654643757564084407817973024701696436389735792492261445715960960350321473760262460722183939549148301129898779950428295468269503571650111830881588295033940182096984025267597916050880717942427558828434072000328756587153180600887252346469929630238793208807146802191636859915149308580432026161784568754899253686418617719544317498990344554211676518682225700171968596852975256152799769166358958878353906403294997266689219658301027327699609999026232800658331256769903850843574033420935387106308694551152334543183308281044804428696925822636211251456327338482214198627047897671323019715674795977439458913509592352644927260215741919308282853092734568545173012317834374425885948859339553054734354305151148075568146171544379861857441623339932403065695000266532452014328626283727524789895044131217243280827548220515838280737028747069304036988267909238745916148701409186297097168527197579751057152091217091880419527505228351096096380099708781411331552364560604129816552217924745712404742503004279373109065916211215820985030333162589808318969652369093513090888981830023906120520265118349786280993041458270662318419722798513352660856811603186610535748952549169592887663491149073683787651160393130847678183599380740442558574805671393115035982285500787349238073762623407706055975020561398378002888168136374639141427879531707834010479755411130081811487124287282940603811623858560028438638523473423581571917601357614043766302358240287049673104201220426196729227310835601564505140736152563010047865694909869622675322650751357531383438442413845097379636720657567340096252927578332810675201104066232673412296823460537882364241915212838166717796378251180439916632955821262207251804847106245619793053545739459880228409718428768326894971017836840993181181637679274608261767272855883855446482188901269237774288228353908821688636566398897632908002836472551900240399131235238112966611584394998364267445361587635646840658053583085781434880530748635866941742657311781104274129959059176433286976690952422465722792612270864887383343762181731248080164570763018036692305449613283646812172298148887724846851675031659207211280101674819460928604729259693918226448035794338515126012125668415926259721682413491277008488712735813505911692186397197190545432841447445431152144529130334646652404384550662081535860855178477121120921592376804163141303537139597964812567839898289332096665963553001053182565251854788477478975205766264540073096597263506228936055645956470688783871643059283202283932369723669932502447976722245500941194101355587848429910403229742373038488937228067983589713919801516814386342344064553409095411131362645612057300233153584512782125802320740792608740623882968565131182350101848557212559217306308565998566822603119692744015294448163872237730727986149170774383921121464382705870035887918292780659857699880592604728130241240537164234596277223974792188744886289631147054639384541394830986312668710757084908020003003284199565902539042813012540328615269636868122675323752895126198310317842390787687191926794004734160576502249489643516540229750918553754933753158489776257190452178681904501723623633325193628388085119502304552111645681719743163512445560773600646990741492532333910947112687989650818294684500575921644717535238922435572286543912006969945860397131437264302941810511967838741023976745159353231886814880152620844559386167525423439011940698892639967062402549011248140027127932789509193471077078286839384233576784302233458441769599595909307288649528694433662841622253446217052493386057951204402173443449086233053758188645276550978373760022145230565262418431789338904221937529761723618688455864240741542976984263611151324663067759281602573996609127565211607138268387423825079075408230192384397675931177798880723927666737758193536684862885170778895422542022860234043610160098652843578856506504156363569639332586609697632779827485738341347683891371972662007797550663386161207155792479920213386982303370998647402944716382602300292584936026099429441159088026658436754666799671505748265330390976169906396261318300595578700186519203259460013387264773851456481783265057228660746514123457956566425763348756515296676916589088493253179041846356838007138054897880450244717993218254103354319969919918108255105052399554172715036041840238209092401323440562226273945234726421144078947598342589951756395015783908330894445458217943049456657593202606190882668048368371977681329346678669528405491651412735510654884498960853885465636152176838390630281478874793734720399607889358659186298252371106213924739028636420603940978569710167718883313784708177883582804503393467307634038574391339666564436750928816093330989767386691637862934099531244806866847900535071177601617612605057272758029085233215709492607994387914049815583950467611061289447085416871830750100474282084452306491567842906709897312507172025890539804201702389003059550870293608926631217884400166715085101678389311583202676656846863521974124696911993250660278452796774219836389663074069377749325384616927126943611926206126127981395697092456215446052493840629977468359510232904143569338616468995698284385717158422856261862338584141028693690531271699437742209738486465013948065382532572458227675116032085352264018407933696220123552612321886702449130947560937417953948540978829049447831121782719777213319289893861234857302779489228742932966172118786486856790872284660697111591540117255651532568980640016256158410436127639755730581932856672444957035258789868663697119293180898203634422904787978946016884036614424145834367824991429122739081608642883038755957754531126908083902546649140662379425091267052838504809657035415168887756800562542992132136902545048438445809261408718237196516610890047777135059629551341454080341753478018864291033636818693849251320029098052559947971158556256494406590708399573887570632774492922047504288894359353836439847877853118890399960508391125516474433990614563303787321854003565172354599974441509875181132291593897600906917665313534297929128028062656379570931566101402944019790892232212043924522866890122255508713603443808145702509393469913146242617346620728031350783211093858376634384611281292162021974431419414428748470311148077673305881054675141440025151324195265770873399923491517728572386180802308445387257438308464561612531765008847180550980845876120922921569259929961324965175793691926830721690055852657328086514794594264035515676330514478850499193277327374512976152450568641140474850037925897984094662442690828478703005042470399181068963740307501899276290787694846524574067971878066444362001397088564252948018490579586399688737082545449880765534689088259201284609053611168311925016021354148850069871697980721834426839363654916328402742317365965874006076795223039724196012203722750332661519777366707064886097552706798691543048339825739351959588784421645989573078031616638056409571727989097522375063815289334473490105524661240499965917741579450255871091683700735719205019774477515409611389653165835166221252367489498079144851552758159645134041594125898324440581755889460587797023523471683398153918011560113561386596431592739109332830578808055697941678665619854934718012693784007644634819346420396336276781250201294568812578455648685725242609261636678863646155378582252245345017809144099077950682684003499490701671321641419071107346657016423352141580761790325351738352465079233197687388238763863074366776923159020895355709970081752507845993423321284065479765128448872738622265046864931403610808873995547193129552562019370764246143350429322847399109279843494281346489254115871566249662710560811304999009606216300384828826986253001167649163372666570691306007555129710267689755226388271836643444146223349252003953125629676534387101368727918338976344023597995769844518368206544334133594959362961210487149973830781315835096263759313192142768750301721226560885938714957412915792657586017029268791182535441015403815810421675631034002691283992426835532313999142589930571832226352185773384747067552736122432965720836959958813249604054069172179125001446453764773206142741760680264572473298836659054525351305386054927672869986322850885889526355777082686914608813585924884671842514653145737445425165128423362611284644187718071549801701426522239458000375347238043915788894279819932702535612978873261657484554017007488181626152129822174005111048498486647425553652461002468104628784227615819994724479972918313428160410069882262302682563028267168254502928789116469128226316342340034615122474256928457253906736567534799949846668026675139770256671932060346803915911434598040398991702429223905423470454775808671231419917622474712345251338220222822611678181953323168519404878633453985286709483182550288252914519954817762841760032826243919399036270272688082427943544008518645081462015268755344818770007652010319616534404134030823096186484182873533340330792717030166933432567995668605362627351004525823185770841071944074783597086402572178975738193368837419373675315509510857942240182500482485584711151893058649484359225553683910343638192798183890295713133949845789350705491912264431646177328105154648757994414389683416190150712212308984723809208559446768595401338784860937793998390822817749812383778304352939543812807966689857974001996264354515989225388254180551492272011161325296348394159579289321715433188412913679414543358963699294985524387373765890681634955472597375781571253402261368660679532083689386832681958034099088704379076439306314450633729548933557556796460864232088946228271831020480985625798924699776786797683987118872219448721202424976432819654674780978210095757815414220107415796882716604265108511500123032978441823925569902717174332853565493442170293016974271378053352041260429799166541866809587655971675733552743956454386902883471986423778643317270933247211549336910001117892587984689339954464092754206364051453295961589835456682850282069522168096295449453848897726578781565592058808867336135147319703996201418067688871730160711827951854869459411434976624157007121353395687698076144416507646751653527993888308296244581212380406435083597716431220758205619627969128787136717180204958437810636387782510896094936402048850704794376605727700688221789570107966154841911639783855073237678075665703273003074145869466438202427651216847558106369167342594654219570841513814582643256093182233191564089312868680775734237779224710053418558486819407497180449492022865318690993116253119006213808596015681498684793254410425262858984609560284573351235229715292246108245055601010939293037753071487533677504881847249495345489243368513571303278564318084723390073025571848282517403043023119660211588457035070531835258638297065325748157195097766818523122164741668280832289203832099718623094278962821976617109491354593213214393718449958962603006165012800356418884298312045259776194604530932674672580178025918263171638864717745193167714528120148190409219858723545227502770481597460221875678257985142361071421143093986602973921979561897779301699600463389649320256129166257186886396161592936822377662475974711249439162410164435945383127069316788706133207191689091700268299782870183925388618745176928664234353179083385436151953204936548949181017505354725774628130309660170789469867132348730501927269326465168754732116301789176227558531421125674492817547363964025033426549708032530670889278320886207225675892070836804136315686812462864785879321032236091633568820089628046677858504949676353787131879968804788622932397142866876985064799057620366381940814086621601650129142728276416447756010219111697417445986423318769749352568417669341988598806432965001665864120085881455707665281634962103232591905075849823897963225059186705291121703350414096828980648785110578581129646081129390984936863585580053785771072217484456203745425892551681583551273966514612698811025952803728330693254127490772068395567441283904377162419606551710410746260281916806840864765504250328453720890641161044987637346284851390836165960674363628507984135968141711504133307553365060618462449987959068222352544185134043755614587528643446942408626742116824793807867533990187247699554283294941188313313188031121083754909658824565975088459060927883306007569375793646826627358056341863012925234389166419655631814153797288543340069864186650853232390128157192434948381640874177199315661190795083652996070062058917788882113498942361921870167226296824304392014666423502932336697951962307379688169801200148678990094230093873119860366006506127379754975822193916483493065289380961128868917539363834083618132955104803254387272514759821851010624308148682748795200272145819313514224407373322163950255861412166341990832319826245445573548609954861545414492063902630006998188037917207282171454101994062128948091405217059790420956026785540143794910441975939386898059540856144034356136699459908244352279682173609763824657152831833128855491015902159421644125932250025350723288132133106028859175019920992669721963577436207375741506857490677010028193346603533023655711122120331754928027624927248506401040474141783693726013994596306028085757562266294143982463481658329564434646397924769635161428623505911440579790760797755410057071209807970351560356163504969721817454066745217715394551675423383495003250802970564030410293865559982967234982517439630183574482849159673669430880901996826521903400886707792432201640598237393484695427445721100891603979158192467178317125519048197997763653483765490597614669884971899067643850870543399379750591820048617061300861719248408776665396911244327629562620482198052635068534804937818811021434459863484013403664687644363309825661879914179611035579075408246632747348692577780744583791738383821048297639571114455659954416604264411309852895334160262491644683625590072189970740472541839479947032368717535593238403223526958684753699642785330264473174362297170353588267454273075877494790738709188613316937184862776317636655525013848708208976210566325549718696831202248998744161973734596247081159061205176781906045706586706702388465216038802142896642215958445667098089202611827540292778391805641989449534103301118207465421427049386617946077982222362264913001628769408537781859846854998289961863792465379961116260498724635590398354271614934293890204657579738456327253995324768418503380672640182601100848404652171987436022728764165144928230998655510970487794510753014193519745871880538155903162979994737451848399954929443187823032539023869788677973876886818531824428353958432862383361863825302389926334553662142700873408681984399443405897655375288640147918729831622241003916949226588578837441814636208240434725274697863161845618735175480019941840501267628981917539281058701609287449612738156908790691947447330295108271591499097441067245684236836896287662463034117821840996653249717441024493575166787373146847326933353965071695012386337174676041507943055017746624512330516541165833442133828209231719131577378273243383713854335061048323370363889779670806599825501901274165781157750367053108653338854279265861011824271128826573976164462543465992170070221081558286659594244592438741573964443753238552332230547650991251348828860848799319787060499333362942106733296372645586839640330833189663850077310184331822238725487756608732268821983213438733156528102472091508919624870093737161418522742368518304617816686399486860727604582850485181836844518254596138903769019223207380105219425189621107312569047599485311960478742972138390285717415780502701626590154505802790864417241484847767907737696833868553680571104833079045511853611487362333415179739343464600267432097798828699288117426560571563110642257570445155835402230919010845708684480514796502871406883964652927636782106230532548282464422497651071253551977211361876822773534271360314298251879394280162496620931086989297029038702724750177198259430863436394854258368219597511980463378173554749468317626951055267717675917353009243186751769430187841348489927759948159782546252427835210192307566222971232828839519315285657071017562111513876113518269599209227305339225377966209243082535795426960940431043410473253525424710193075879608861223650943727098094926348273447033085528136436652601075281937722716602251435958152080786696805202968590796290378520892692485846370434471532846818953456031662101735800619794113223625489515112195274806289645210875929606268852677100003895377470737063972822619624749323565007206381652124648955255385563864197878067142827110447093116700945479528272837732910488328984016451458499241633933278134370390439929534814160021984524054366530661021041824836172194458081107776398498597451416469435397061513706693101532575094210369526190844728129418619912114752065546347780287416060742057792137613356297726978885217682335621883160413555131561348316206143178673775826150616492824425769900320019975960774397913505321552744297031667479734699107672005776776711606348956725701359121557681793586052446799482011286815113825822286156148776155870607528562170698944898159254223150065479692084051611343826507790076111217585357457068755623056050192281147601170157020589205337262703129234859110037679572904543342201130219017481495316059351595313042168991776596542046155330736279308830543936717933581859341570215954296263336629047238129924214067062100285613895102185207615760796809314692223770728813075823959064101815900809488377790686902822319923287755246602691815926730992058099783101715192048375128318301026617232909456399869151149905527055058801829381207276512870503261983901513717427813391768218037627110101757296269680839491786976491508515215568981639703747405838363437074549195658461011111352952084907074424246355385309367982337397505022147373921290389685009585758199597774699233185100113254636757217746643681624732522394006092920660655774719385457856265107802822424679624663817209106569216547453537184764786060084585019133673796330330060981769060059815103377995800027137366328551539471615199613018478299549793864961558929435022935532830149363952883692706461410524742591852909809744742965393861639658005986887242097723913687059507066821246780379731914207911663928009085449364576924377469909829031890017375298080078512709570870550768578615333899874370760618168927423910762735463936021118331434811420855351036560200360865482551581427659235180308729118097225988641505674710932895610878807328513227125657674124755238913402159019142145685268440243391235627043854179693182508297296221132649538557751309271247960519915057438643171970804380854568935817235429921033999779877271131249595649012550284200360832571869297977554356178037443229014652176860175424708191671724480976815019398639099319258990630019799576288191945950948843181284023073879887746697265166894577698163954117190746340414592490643286534488452106811757278651199623654630190996193333601836000151386211181743346972701007898877741294731123522262554261916299707088240154405213789117708614829075321641701395163772170664007674667527440324103675805797265424433597191989021702518605501546374277190729679213466896138930591985056901652221837963116548388697659224402036242281752415494107615863839218009433623404291758731571207994658443041867492248412036548271334366462706367952489982572392042049595380733182003807070634637549525935646252250240685945063752724854341554159630088898542806091338149122495421378238224056230092887729728141842250768633921664048070641314783209944838854808192229393941993992283917399804908341159661403498075485659447818682116122645469787068177177962380237511082760150587929410322478999537456569955680977289772681860949752994699944979544574039784925709515523280520793611417669598917654994818440942273250636794095240782770247315240760924293352865631953527994737462460709109456060271359032408765155512293709148471490224047770744894229535420940032190016201183372122823044778189465508333157737054409227089226106243820620637817977870610895526975809690135159634816054390305985037768679716632446434723551034375758278016444697722541004363132222654642681891395456105228345209511087595419474943940709243793842624437522482066885149433250958986391890027886872449829362218514452644657446367333835650407875796743137667314920763050757160334971287139907794943054075868177607337065531221457368687394626168243567758433590524362005877307524180604473599886044552408381023169752300314710385060828731521477888115928064700842722950574568479197626642805610970473140036355131066181781541799735166868665083660621416282830743212301562206597144351549645186614171888334734246524332127755072434803077097214435374279828970403741989797029041288107993983385457459334633354769882107621438055588539667210301336188068091723705951820142318320184896892298376747244825540790647639910112832416258907703572567306841888544882037046772054425818239918117558628803164818026289563023555371379431775160852710699830020277535571491529653979689970813630417521032348894399969074056284036544639848783232983669765601719200276444169557112599586951742477906599081099295043110331011572912543094789531132235699133989683201741149299646503722277387592801427170816288511541747844019147428615898393067580263571961210329946333743106813401610295857619311903271909200366219186072496210947902940329183064103774159823661495250219873270127820961902351416431596928639482740464636929188715981037279017603300452726784713176414987067402425937455234557094496410154199450502890626554503012347559327982416811418993821309096440152719749718955658252187265041216591428177935192259303281690290268088744422961710386386445631572907124098964681053291340268687487305681175420756368689182934145238925137137875815782738026460782711873062936868349054454433152701425728425628332778710847304361593433585744078157662170938309097302180900529486485279737170330966045710226688538321255442546917450710858062291661198169655784407866689579812706508687894855797722094635653282031342107056353865742006801550406188088096409700753260698210878598320824796251862772576428518648607946840787341505656963056323617712347566217551623347787795173793349117784618579752336789867735559951614479259199382640122863609326491373661604395534557167921223527796697134123976476322611677043416594516346310488076297145559084138503367062182576951648510716112762107517416784480141093291011490134153941749212891085963759397491321562283852283148646652785982025718226661844969945178139849958149540970373505790565710499731473309203273532508532311651476718180873905414560480377630454163833539346795162797035040327175957656385799432979689103813908368791757835491290425414142630533148390219769171155152134548977231900382296391556684720070523519962767551310778836987730354861369454904882424031881636405396269347089127873594712342456465050413947581690182197865720764355795111037295053111543516152633765775009804150828518287240436126352604550688150734528187684190677719921193636285104457139593246535320618302482261650534450102945162837707185704742415763082781304546962497075000356739001557089366869659586582183572348292269576038321864786010725359385780045508815091800324740592646542564180360665241025589283220719524652623827942467296436595873639562093164459511071302051457804059130884700344839818273553117059830128957934176195961029051323373898957348415502085808276466798768660521446169527255370504913465650282916574022758707817136738133488856708956965045213571715028675022936810246721388517745510726347021158296750635118436608228577777046326347982835360348706489843203124526265179352984094584157161461559044098115367008223934090615005289926058325404017107550784221126462653811988643076349141741944362636065696880810471665792889805814693975877803324879430340449126659845277771554712576635470504779369764588672955460945113545328882981662879947626041681879775677596094581441928585168593612352023513260008871199828137798265458208344464632266912583826070747947919475634418645483444914346849232454467711928009355149872984623344588174666947475065030047370256536183516172114856837297133563879897048188799051549267434638291132457004257755365041719029863438734584185555991862047508866283153718536055445226024801631370040665231730857408652899234184660724149127269546315435994110021099392493000647716890582253256648294831508480620044826629668784346928516713244608327513017355340645808692413064367853999541380957879872480529512759687387093417351645696477905171069363069010437023639708579920910653671310261170755027786186820566535400032344802016682587765778063245504525907674167373712500622711181662757533885477227961822370086159064104809889681458325646205792591047638587474383656871812832930427104219708811529499174468870179171138166239550404830636968644256355902721089636571654881234023693272791368809598708868943871397910044549493045997510296266896919095649983378007679772321587136442236345751312274988840640246461385884205865104979632924051540606555763103888906546230911693902189888491974185020558012882147990281375203780261170955963320621830029286476034929247472190078466655536968121227066335562904879605333316001169556206088721634481739092983303333822881934421213191893938516332917196699903723610633960708736728451275481307235675929145328572645406000640755177422902891541504686213988451908370746090951698287670692477713346697265328990056214423104559885538038957315970142803038488983754431175584843012629890477747140610936644393796055727137421248866284490581325846469692086203930998802632919435779654988796137171156900083947416414632028894694815432591968019036887291507039880184409294479989597559084270242502321025919556560947036969129704388843452721612764314460245521567557991090457809085822278287044048810084458097724083661004068498462962222146707363044287001029850081670513498631544338237967014223707898518357576269548180611041198072990496168421871389621983643899959269219118767066184216356747394674128376467980684274110286118749402248796692642912299179678351875995921124254746209519493059064928991871412513764352185799993184252423729537687255469065743730636331660730688802662271146740134120483086494145090353560769244074212708532393229612598974138128263623618474096199633437001198524513117092605875201876125725140636005779786054233357072743143572831095407356043360828981020780044711218499303129854863361047152337171577083243240276125673004633367884475395865133147044512055211153124798244928332366487011717615358097693141557625921209300611171702412111221756351895860338287196125276633232652249760062778681969417346028765262666087084499321558527438995577345478834000553455852118161578038274242957866164721188523011475475741712275185367960300627994946240939019102199418613200338022515221706927288220111157626660815255878791740663031348648143023911457131938932936383410680774863647714199273205229528952912709385804923081623854342952867108757940957258823454534438975706697663242721802632058713100478773025293526690314272111470028219576529265769416698475561007313644628552240138526458439405221300909306515025438172734593056095020301476523359602483386618282193914318287517398444457345599662932300923888772699257361469481116811296223287521572997803508541645194934607570805257866446770945828997265469149300721848110032357762711696112581302580188617885199555129973941982514123597402424040241184679646197572238443653574168483457589466314878442598156244976631672604341084086371771460303005578770786848918058342386328143480060185841144503047541595631351025170025548831838065155416517908339508856697914945170307617612972872502125192749162428045590990420628673704928849212031938347204046403360947795297025829307390339942773201752081489570880462644984801527084220882648017603659367389257310439686823154815165510290683636472022989076387409891099134985448833987696380163725847506346673366511588967147841900204377898946738548048258285663905517796427754293866118871625266109995965256156236659244615661832337463766007443789650826430943324213377172565250193431608969805224239921566729574353649578214505630698508769580204385570724200177221589893507811590398141612181402773642376040243092480965448208607521535560817770710869193896479695670541876333774199991710171085731093661237045633317917120295398594184117778912572145698904217155681719973547421980117830904470006921324289626451733314145850841297268006749091143460406695386476707682897502016868049669580903379130751825478300292149884277557916035184438324728073218136253162323399285292788845475890685077624016663471988897668489818491835908489177805491860825129805383877065645085398620255585924318781207370551227649209435489479346776450377714282409211175888665025199187096958935598534369592182385794275587226269012596925106443656936103742652606567299182654556085336769801881259417294185158610395898112818948058849278504448124142978045831331043124324140248786198004461796077450255536241997219367044390801414018592749769521841464477134979748684863606896636998931144546100806646824494414156985958221028079751368400733777067732189540310582838153917533594862240859769900648115350847557951423317660268340601677272164979623200750849319891476735782996521395143855584519085404275237579546958993905979564046489486857619898948415553629146623000237665192049558362157297153933905906054457908909988845420262404393127030649345615999551718609698654310919663528955256195673676105885163907900032404013147775232967132555264927317841835019626543287151922070716690693275910694391181090960619796631043993827367973470485022976494725774219598556823513530406104176242424078383641054359987922449342989999624037088510087411860791013081025984557378275661800869532149968379208053030994334206478776305669432251155480291154467916225056790474086805778963588769687258854305116299787736989769434799153204573799395741385670810564088386793808385230021217600142628820077802358591628163361778357027928085722586253034438567881943149978500910733164976739203603446569936086889128661906141795096232159122955830434094229484038212350813466602592110877531044152845519828386003608351760259234354933074579798204119216123789708977987623031779508026175986820634839750590222200708368537198807749014809441107850551192898443607803367688953520941541578708238037676284525385343908175087678996076710658704125953712197652802259773975553329427504624551472295882593302072794066703829757051554345456671026108732499133694843487248531848730451620820762404667866114683361842541384499047536340605015984475693245528386830076785018088225305901229984422814059880821478168648398902900649698855167423963249185719071430895629418011155368599183376202296603633572263982805564228297148775760474195652199506997044234639372190110589012279008670957765358960415823700881675440991572573649980425494037466894355220203162124803642905831020662175996283580327445172278432169764515775360678613396756118359614528751063418245765566548396623417988933664399453779722802227532963654112371477337259695874665607605773544395555903934512320421131050660235176946378697403432699144610474072803413647457741352531605624149721974558648169704146590313747380811682759453797659001793480743479247822224397846456846250438755759751183798532950505950057764795388007792830403349504054073584792634628960262180875129203730078055942212831756196289254360946851339229216704258289252813203052720056746485939229042155752942907183928125094065305467149897838095867170294291056274874265309304677465164862946624328087396190562710962921486585581569228322490692572561402661055886420975147811732187429905775538102663611321973527188934349896217571524184713318313154647487193773398560440469591737607753495387674060170729621255435453991834054898069238571467922476016366360594710389814896821340437111873478715098927147147994629906978256042256917934436843791151123559562931254587985093030326462777728914256886458661950404932492153718662950540625824964689001115597719414662200812889056878491927098254464698599693747763521868738918380554433679288754927237716676481278310577590450577548523752400796288064462853038355685009634326087352534740543439238585827454192494946987642934075406343219708452768687219057369926705739270232164028669470374734868447340382221869658806230990821844591548427871163621638036511967431943890566631897334131153351461820861333020129707662832612278107914768440494178295120189015151050141710673463507107685041728155932233127683309994060168549580892474295965086496698723464296885115330302082108481624968966401987089927123031961779161905384732022194136410019160831673491926056941168413136648691095211184369128640553114473759372601420134703889933688641855959474817977517377457156767370215739767013062023079662476209954198735327582972539882226534087741785836795009990594911282253291754877093250607600414149561447560363344200888766087580136395053938107298627963481084432653036419287938042187400994434446750636861324345876051330959591964035928838831933290544733453310109265753532249798363207539916960003835079529071158379478814223991020362841125446925224058570547318298764730178832521917572921643393848986378839449140518449738800497831515964163133980054608882788707686478367964533545011674455823520212300248474633002871612316223613148453999226392355757518472602177971551088743187906601858330559165188437168086424109053099375866796772439064783067165553809354837055617734736198896402944365392396804170014477657942804027566994810866154645591969469387552409508216880120488830600899721473833583312948312297754516702873914410045374374120408259753894271902663998245345087856710163675806325515787021615489131750887209275322681964777270972470497253337148855909317058742028542745187740595759590345798481798741434967487211742731707059358480700320027246196697602324529703351012181809344318736757590242101647968914517631863461681081412702926382856370608978034581980551621616374722670962441679759689345567833388225713253503659534807621665126703760511499364340470257060839658850529625301715535157673066619603494597957596630569991600443641445075876074849145366241543166714775338775879746870986286760508900798297443262710685348156944786507606048354318124978891859671142906034414528837734419692288433801561285250289580119294271840118775954517412767829590744853522249902602612151136251098590604346688500743540658160311637078848226600603752241024410492272353583454218410463551117365822227663603382162132725389191658247485002993501512123922572464850945963318780678488903432511823181206646225201220686665869092133275957938547247460535024978885944024216456841365493582129120229408472959384151330689716585188031672292541806380127980868783047233418166303863281462040094579642233179395226341392000948801264318162645550931384442780632917015988629980987505399012721754560282532927102881235862311236388220567796048764786381339564043036027368307849036135567546322029545299993484164022543436915099945991793562734795114183280246144277978821881295920619611296026554997770551924424128546203753910586480072726323377286100775727257918715817823577894519558705143697677583692110935057878378601065540139007505893280561193354440151208263189435049021533817841519400145056154444754578813038405861411183687430827256778688919469633775043864954700266279369196548592435836479588066995655109884150438924789967072202694636048419378068389918280416178772177055761036547673709252470987665768229169530856504030980007305177676350425516315862723036538694774424394820997345438312097671001248490077184356167846290523619369093160668378810515693676586434992296618815142240898412049766842286085041494240219987805427578183522836327742051683976256878532849298152331981628134754449393062425930364011162696445275381414166707328892889386485879461127477124460128918317042310908374388608332427138235008918906796514451969297538561079871940241816692281078324684082557083751349992095175231224176282645950771200717064938271577357737427169551962692468205770441399611417765795155338450877723952400040669995452494855830006051574091808026613646065762069566861224742819835902791378503696852145777295683343799419368414031030810876286463559465375435866392327443368812966360579565932619324280485704757520029438773482843959861630509730046434097068103016747991382038060460292724797038180468847431483403044292788903073995968038403385527563928540986825260555307390936376725038816364723274057496538827476213314255307570621047697652021346619919937598785143954619126155020643912345634343316327699106376186147006397968752941945056183658354407800892909295368660166227919765530572669841391120722384717115589287515556665953759344102792965170158647803734608707914295423146619838953885109592171420043157244419862570894392072972196828429267006636613968641828593570696820519278713559608580542705037329817073574371263714796347907763388923454936773044072439653848066384124942999071057338033653029496862784599266540625694809635996091179968337013060647973270839614165680665207807476524867387341303567678092968485226594369546198267211972083491117770338076371948735970167603084396239167947744308278007708272608150513579629375628834060668244898141378974831913142356959294013502177400028176557236887031361841980550679118878141763021751157576119520354932047780128385661938884035852935279230171924752248800077030330854430614848082790115223799449516281995122418852756627030455652126726110267786604926611824492583988431517645343028138717087994938956357807196195335596692525648593394755946480287503427109488274232790796387555514893405276639814469858133820285816672577019222025666400214910169820400049133478395663431488497447742293958935830449946408611715345010428382079685200974355856140221935171443625756647670246847284691743337585311898336214361815771279944663131097085179210853756595996004509139115344401332005506074337573547415412384641410718627941582081915140526036565856932495682966695889086448300759496943744577369801484880841316275746318490629062775614250073277829604277039725595952585863303566078808818532122263634765467810298302231549361372775928199926085991963085774423762105683386489273273792954258061006897777964036006452463266742228789610121392542399090696022401123648482966577831346981344425553367318449638018530536109512277923532293707668190785424805784409086462776556321705272153473599859109864659751386634181160874884124631378464825352321397478817868331976184905253896931070776814859135347580196021017075892432019623572208611662073700174505795100395544183636810167646445363656779447203109190338877764321807570561825745904683498806477743390838925197057830766929624648602367768099865216253337243485938718572729047130000351261559806973905080710169730059305585147840498889011927113803739652228359287263229434750723406506443338318447898321758860107171820977876635606478576775013122414511806180880431382818770443213730437914780792862279664406291721862505133634660800641598872632095209642425895496399818971503187899715118734111209502734820060900772491739655635119116999737331460823443775564269351138641704493259151312807459567992328475769897376175044462372419856931962982645980603117930551173743681593915838514738440989533307412877840338733834117868439043305965287502527135078395160968001883736960400640182483818190647988985845145326182759985712112607819344149574194132107783915065476121896542148017923267197196121104033807905707880472393883638660248891444090272086494170094547868881074279386951667686209493909681771164805214323112438780753848487821613243296784247846986604046783728018789649521833064914766279050752748489461863012393645849281443325005031340585722286703010478269695797972763190292312031679827657228336507752009362574439013196047690103986467610962454802014461537078520592989779121450803633519493825250862767810309562189907643047118184974903925416128731409520223255236596112430684415631456763053048110310921632745655565227681521306106218107964307498359762983093371533987326470289341706919313341097413396739027455312944338489994904291497619990652867991716972370570925259403173828823645633008062662141002898294529750226924897390599936983452485231817997179426976347085018442809625879844255202663563578772346639966034603990677296084030580343145708823312881251552928255366536796002792898876012863501851868926914421042345305067235097723369317294801521451500137236365217353676447565664222036043891046578167366034428690652891293971872704275581255458379872595234595756863089285202363726921656392875026867591044384479746998005863872432313851609843216502100214351644503004701031419904454945119715537311941250073188290483737596168375736952457705137881987568727970637237165272633437845806713741378929927111727763359898215687690340995671867828352149353394134549813963794886390649414627376568265871121835167033157985162592689758062366260923474678665597985312225372883785006361976091757932480111211106426330211691218527272932969665809181959834032285984494391880857719173453540773608945478108624862256623588445009183754318248678011924375387682601669682624527773594973040201740814253846681292678975871996791797453007241901092775007757647624154936957983117697149426197900492964879563644069770157839220583719168009096596639606410877348357858951223321921940951248531353812661721813240749908095744980773673913220374472491584962628550924032158397584530959629827125342128135559546794090525915967484879044605657338793765255909488462003961289405411177262788270704745042955322027905754015458896804209250139052300793273556270323383503907759814480631115127617020002691504645946449288266157972768246643545375458433217750538362594642669588389985598969292968737599695335266732961244439062175547625401986110082423717642300792295368262383973476288768771527077266261983733025670397433798920244423274164193467417115515758015085187908719657665688049347719925314226411506982135356362744563452687538438587684628341672255365647065818468662962134111578911141281976584154458509287839613919884521274998374751179697916362582934085734954922624933848857340146597412171037222465163882284742068418161473325567187763389443506069418551305286438300718868204510171129926687732534358237229806705252194551364245071069354261378089376530553611259893544613658676583441589938305672224248527785795707718352374739050868068907923156310622022382326855818401637407907590310471000646702013473615844351463756052996040171457790205154220674422518178297797391257140700517472221874796112686239009777544528104731108546805757075488715435516398402103430879350972135891358616236073861814769358496019296169118960217472219392618010332594129548966556567702832230087529287406323387988820252100973929844746990234874241312098205176279233116945561178865728686939440690055210768518423681866385526472956760404394364446690951330044795144481040795418994608250249906817634141498866025180760468204419850890997834018168305391599868285217621023685870421978748381736883670245053630294708862987338121489026922505476253490208561054487306601982013966490980515327891087034761841598828482999497171293246997037656984623149867437751025396937921154487429480943634454771340013258438327613327532763380164779770429023677076962899700377254635935485123175512295576407793569093665614079022777640399736150515075051633012491117419329925069722037033641547295133329157908030261182824501754155913692659807678709718502587801048021028127781643996705515805717254487076520372634544418971894039401108129170855944258718458185409394828687374505912176258001050269536557349806191273451334357367606477243064772117325541680479728560880531700229031067514679157759541191039491998400206585909089356531977950968315591251045610637378873787376911272525808755518751866101865539184781761171809292995287131888420248836561121857625232317173521651233740727196561279880220863812371403277206141750311164479253131439156375808923247350428597256167542664217891159772057069710156740858984358524125586076840406088092421585934058068293398243398810961881322928682039995646586581761161210276451731062507581452094080451379287819298624979474289325930314514033848930519217030690543061564215041927277320516665126901123704197891242491491521044407462528824012130470942383312302337298445607701949216403720585197840027211291715307298405328599778436994634901545576203241646824610498558061326273001197806654642961201807647746786103110937407084841309211266169871357723629251892243128561016143429982016347893269040321542919645255660072215486098276350479206833606875136834772891568849549298625505408175914582011985350874587212903477641893658193096243954629326575381773613954894439180213906373935921114625293533756475699751482293531430937744084881416500158682708216480366597226677926441175419711698616112023480930642553573786828727394780398708494797187788011969722554608159048313129932862742043812885363321151294052141746385208528993934237678876190113578809133091255102024171894554004868492958627067207434150657076346789185286034906356010198432478685680690862404303708928012247797641476337755998935635653446405108580302933585200737621775981814753920888003346224576036440970585845132680176273109376240390068100236534373674058605734343176582152290241992654639639936735387553689546994064120734502621741013970267258360201616584048016736125150604938107074880256242715458832639816955450845292901218277404169434196457246981198719804352234103070443640465749070152102268340721240735134966412086910509504363187907079458496606807624631516130002590903975159175447690677157553384925124647524131172725927155361770610538224306839430878392358871225236230698634919805919675947156249036016699855619368884364159793871095548557474471850038750174242577633787935059099188025256860469537392068661838495922201657184132238428307908294170667998209743260239137583818774173199797521093625003651149250758679327218599323220361895207595310285344012726948034246220160024184536318444030508406650667335934671990935363990255636197120308121757009294217967266818139683430827828997796831673075917559149268963064963420510085843124258887329678786178255577562854368486850744988720682950748849319914471550526837178559712774306839639320036291969193274095098014760014818143471258049948187324117638565266959394078148802592162030043621734582824412487145285063775024671674632545088951286369487085250436422462672568461299257369009996797306027094469035902316345228452048809291628379043851120551862801558529255919004989943156338770152334107766086661098295633459050152564584573603014890399127431455999982299727370404476733146607560529314715343823323389750695137189838959891293404695383868774457113015720292342967233738083296957353944594101288847078511194238062928646259231501486521727644399382848771187313809247192345782084757429503539237247186143246715601789566310218629742323832976974407930722665268173977900428227535556502139402583440665257281033175760947651097803700674919923531676711283417817519787647490836198260543183720138941535392970531973461657918750565370241492208831552252342065205962497581669376636704773377041869584339114408162159360219958104162795283702666728436000028704815078948824028974219617289227691936648154066259209725459060066815638937431809451268463259212145989991602435781725449401745342159850898259889254164902836885710206990099541646571931577050860206706967700207080270466414734565256643176759603274436604513220783951095556533814748786195479163142193187897773855111085196784180621523393932008649380953297497419974212057239014572369186755651997427463301373002997262698152819863043336605442848247630812541595120942794591736013579985527496149333315144672595303409014903576217072930780866165303664330773377346296258479820317243805248940432053666278589275179952915007041403764670712294326573485722021922694167898738787249279094241744718279595281876094658970657623364343385131645867939170707865682640317895971466103298391510097821818474564883129393619487035177506172670149078363434789511400199188432474991045782937842520494473097591341559867115789857178790143429092975845464161239344236229690338697144856712142979251987324589349345699273617681257194429688911826638021055002657565608320962846296973013849275148862864419605955060421053903780517679335052851118380130010389335808453208498908899201493220318635730456744073021512821629196145951778839860093264908991013505511835550216053147591018766191600991839257318150261322692306507164697258810832073010833605138972597786847015306761495247928213101216282891176281119553225357889330228873191406955676477450170645184133472773879778284770682445538430932480880255212538060862811792810316905476891810650186532844562217387867949214266145385006010050741113603928139094660976421621756808433799422620397424209528827278410994553362368404184265101984535778605404912499917228656282264445694599538168522012415975666581154536113393756281625699649499338386551871772226267106251226431520911100706381543322421320265646692603086636295434858642251456544610414258709224861734173277894183362621520647180399710408732824944007652693184855485550369299863196727492753466070382520296870781039060299279691880207415491856751250841837994340765268059807342897333904906105462332057329719548435328947021237196287015522775685741999836231591619408306095166434450194571596035022673678553823349340918480957422680138215890201014295545775801765259252118182480823864800417089136849832611027957694471075461689991981898436553288631367542899651058057147477373763114263786669054612530553321233055061500697885867165113646058494896910364018227898754719779893311167949697141862892551382185023420359401437407703477781362016257467854867062051263028009062900446182846565434150902116647122082486117495203545424619020931790556195306530990807069399081501351706970932181840813471285307411682383194289240189001208673032651392727094072483480698336645917846495511140553913246799601465283986401545894816654906453799394904949341860687039263820302085808294410250475415068663495272319492770964064780384770737568343464854118209550460971484888541552682124087429556744329779019305825237373970039807457107752949658779260703534955626301328592771899852709240859813531688681415042759581780477661205509109851018017255549108258364939742004145646346470074880168974132249442109381049227739717405602497676152672961670321862405116520999665236133684443463627690151350730776689470027437350354346903159048680141720212905883336136513212452881778499490170287327546444439729120317793316412216398731832372319523576122393551161582831427466241814758042636110214225125576724125275232825005619610836628365808492474972965255332176742184129672457882173381391179126153057318241822052755660599665559899266731502685499984728894597897403874279333384283781254045100351438946940249638802529353917944012164646412021600036940579462180666935595532261998582560495527011223951139484712178100709585954888442053417627596011351286413422446380591100260265765654220570185781366828979242764794226817182321267260239281286819512122247891316621010627651344085718416943710065408717822305926778831639883586194899918598854371581602170037849822163266767011155358604614594141659200570541873244648104265260365908041771511328984018390938935961661611450803102214461592574803287916443997801185976718112394860516135823142781764682215623009857191529448910753663440178674430133127691440259442708876980627945463847824479437217515662821776059666383148096269803537121077716377313787360347289057141728549056895345282837913909115478526489894691032099194270220666594209142705843069141991028378264758095783339291017288874583281206640175491827568711894384089638907864784699184954158037249728706516550434504510067120531073530523280289481058864342957357269198004618617969997962137801812961489786876704815988497801576832616283870351314449552465403603596251596530809313551365289077732567041793003461811769194773190593165446462914497366678068138953391284457492338818749446849126390995029799038339019571279324963848831798795540364616386391471781048838454408198781195763671611320812658457121557101743601561622643281535051667683935293533807803142950767571235619872020495252540355438918563795466777315154628171669031146294681284804296323546835266405702246228810192909348411113662268922847874864416249568492323194662473940117735737226174977530271504223248340345895295084233490147017799488019248293561031371889618827717016631818072778451900906063801500533691257123723401011686243940462995883899048420700787562618636769687712851685708493774238042843195829805139398374544786137115785444497332102997359386839592590412341290906749925690046198392661258203680002069004787075640527552575085888512770175969139350022285366670072767003678053190559755664580480626593564809932228660231091153461558378807685113511455656782861618596808767859727698406579084252639048935225458983312360635080411500013518965120870719670860331393902834098305550120585397248651494835763157334180900263888274058752231840303076190074792787423178913226972382762730700319163837677924719831224827125215229067244006538132409673411629736037619588931693279237819430615674270659996277015292351196573290313183007679333380242060982054356691710775101016962164486043478526496853763275145467237494675904959068610301916382113106128070282121833343075028857845934526655503251711251886969528415045804858102800561193878935442048671419384031883264590067907410753144435241061619577925246689998244461919620038330667468930208316994304190285153984028428506726412456192096398841123017918701051114415906179226265682425621125369002766982725623236756680289906234140673571906294691589778469788628890565896742118481264547818476345492710008278919402043168941121779523082525102260973646020996982906370886560461040764685677948722953613509126899295230558594968201920612076101817409177548421126502151893110470430762555076618289471593094863970953596802035504923086150569325730455614227265292850207102561711292394560477413201941173752982271961891618445545408186177225225024868694580439789800867278091769454797480571929075360967475319905285993559366999160380493445650015993296383952761157337873403710639064216171967592745614084678425024983142366159841986648096988378087609375105260362146405327045601299440344410617472400600458729985722353838275629148302192744245401323759194953798740491673397194277492977972779634896398580805337473047166904209245197172537047971451475219012621446347087573891171204797098194003768957632988248652115970435030362509864193743196068735982783689137489875977324357771070107336771993006610593415136288231682319600486832223715828667054294817219049985616694877550656704274582547042475816744682040003418322508709645481289731635377493429430943671629419527892658133790821994336239968711427126629487898736142893348463970555388530728699513213222467792696068598526214647304645970816010710852392080019602076826814261065313001993794623231354400960615282107773024878882414191912817955996955924421627026595459874710094896792669198381608635168458781029645021496206949052688632144052976008895025636789472745696921401784616394456423769099206244282287442920868092254561404344235069907628036324400614088381150369141754428918060549681551368656174558742803620099451225372650858835993627953242901480441305331748807754267726020069746067729052268095000458671521945736405617187107802915410126319037246288464631625312395183366311134382477172505327812831421457975187208281177334075974381274171654043904926690796834754827121015718220029963801718127435909685090936314450424193138255199022256121009751638131620722103489098817874006713817822310818269738409304078749585800142314590865932675140655110433356545672997090027437833841803082217757403971292539223450904369781670231631366269615036552399368332508791136642675192553137117257307727639558752169208679297971530090878142843149403722613299471980095355962949221192184451725389544524436306783899232300004935677430885825283289669624775774304435385408116708925478867668338168223112549867271766930335369978095485968436399191390180943102722399362878962031265752766838370655278823068715715032183498198542158899509367098668605844272863727343003230308267497589983843833400905474663789672692121843346087030231697997697802325330788933364322073071373782310896662923720927813156241127584817912340932601736907894886311067317795676867926751134127548236677163882688514662528684367183179252001006860104614622610187788828910022722065680506990576197451344471054985848864933645438035877422224012661753718204682480591361399037188397777611975568752025274918068997314981322051818249161408647875818834682220414083271917926478072832664026719493939992466490257650538580300875140826626498136019953867982236516198995456355813053099656979893126809913880327668909035838034606154512910708760947674636487689396379655693691899041143779331913121700463891665004100629402543150584673332402897429363053772385036425968106759016841851120661369046239923596538632254002381529131974081207942486216711234801796882282700260088063158745742031658431264221921069176118270659238607946384435319582440385197448827936157429471065261314724194638640835546266556014690905022313810882309933196785722215259183045776584574181898042562245377782458838351810600984039079865855420743864912879449980059402586527358865182812765930022474239155917700453213530028007040859482513395763108119533240871000862873388801553255537647483519459097739241128912989186817795792509177770770652188730213982697944225839129709701740396050041740600045444844475879929804082026521160460588836197805431997301761296583574937509460594065704519424098623786369521293428500302386768145865485986643350312878319447195452021735607463474505605059910313169517659712927003553835397316317877706599343436345051356973944483981558046711592700308614345401800497740596211824850311128937249424793228790651534541743752237390553676981106331925289449131091860056661969996841253360295689762745783905054748187719190724070092298029287700054673283556476974599058285420741900830411412551252685984381213418409856607409579323641820370059452206027147480562197052433336720390857044940666876074904682092688450999064336175792320195753568687419088958852405298108588931368267730418031957336888737457709876575885858382359895958906106711831770394927657757173136552998145146206408095731032192830735784461715713638634912041147873913834070638739928001698348097042413726358738869791013536010201399594718511135302276249897925944447504734858079674806848172970887156542248026279876463014802685320480159757564910389155241817579429462356464175870028467327791683775232152896365756104920278312393153357752072653561616086712971774397075293129357307476654053084018735071090771437220196461468394207054857936692832493025837057679525301118062066766805412054767053257512134832578119702264967190130703807097409885055454207994675553692289158022479439537702107369276174308845504512083584939470651316844360050801276154553409260666717866069398231032642270912735863887211180073470754785625692030452603859149723359000826338170095564477295183348962026056519693899327215394210239180281248417702026424801832490037172217046057832026651805178770842201973071169130942989769709600940347231654424101059299989726800200955079882064014639630532111945685306311462559690723971188763641333790701369941048893592130937356357589289352174876125232964783963147778229670188985351218963959637135577722125725684832482259408907817321106144229063278112809328826783892394708357855674234938520384557902899816376542773147080453373813984712269147729410763091224125627114883142586604557116655219003372647511394660226278708721503884165624588799539853876736272435392666236293486775403978075565724340958765808197981851785389565398133557595240239026774165407610729902835122554585730755684865820129535567496003500721764509627179993521146280326121998644339205775957423014166115552260195888730111270412411687758343287478755028744714401847698483791694073025979450495875714241572263125813184389471368373031701884558841148012986443463593445896031047918038083810666769451020986960130837525776436370714205019307221616493844455160479080813425693064406703789856182450516478300346176408142034945866637965685821421777495803265310472750630600013846488618800311266924313792270484896155674581323873626263794470091386498143190639087374562921919559284796826387345387609284265453761726966276782130837640508542785099300469659784448160487247430113758546941411981481319974348149747605377930010620778451272501845882315654596422910301291602198647618682497374381869798187377780906055541920076376522476234252050293365379275939903038945713544598573731545721110244762496645640600498809554814419576102129008099381504034169753519981804118754753874884995402508630366553153127896217568199972644453843488633818500603504471239916919919157219359679552834471477392864632301996673207088903706991406005595075047515449531951743685327084641396069557993960583173263083537762223719112988821933552400466273033762733557311240520805863629503778949463489861473341116283616822439403429538397282947714697344312109211634327498632456662456739580143237258329398009822547468823561584671214089518724336484780682578043738783815689124342453696727666830461814304865310729648100924763906723823312001427071971646710044186935038871394070655117292119979042396783121431878332084873867682951338070355774623710332435216512706786553633257332058079774879355319255944095201258343225611907657744993097795614300168471395558294426132938353669026254883766520611615241936243341902746505319585936714475984531384023643835399469572984182554332154637059639055137290031201863948610489766436398569918030497332386829493351206764600725651910476332878286770805616759187859018442635160582626765501213013450844462078575646923961742038939451460897027194698574584875094405555806962842974878530278805003928393807335119908463515540171639126359458760548565776721335709802110202681431974297637535091459362959864767752487729210378582570702385279811664268696531845368965752436188003526155299629268253408943738939513611865836719250803845508810206483850832137516975074823381915350534871917194466351743078263513504287426733274793347172750658483866069002522852726028112924490170345478085797997408277412597390832973051596295911461102705392451471521089023498740251742465821961184499650142997312612248963870716309057929325859443148986774789981364061542219366450546827354008586586433383494089568116353514300038056128360539528546412023422393044204611403550349976519759095886864178188264644315211581692105033443779574148539725424809843315909206980975277690719810377645676146914386402329047590479283249323159206160207512091326251823298472449081166018804571990029933965224621405271613058922694805583727035425885877499812493329098071362438329220210290119520479476493974181752417009250727745598515258477814897738785498148202500254986633894396033263930031312408721349644590309236515126107006785537608125304114836365289249786790134368728208942289462204638927235832600386656699441199963499398343070977467019833330774467259496778227324160196708155039917318579224083302925103279489675874560194662723050902950740802804671673559095513211169629872572947208175457426365016478762939225887186179877322124603986326090404390087356363768188999688401861858234954227249125394432572425528881009859319362229412887695933993910144882030776770252494414431761719283224583873140711361497783813404983434021141785998125141975738723042392317031348069055874287637532882118866407133956132299278014428949099176415727398601254036524146068393423382484539394434693552678165279716923478406528761175415716830285614144492325856947013982062350286544542855646711242533644817590682833441768937771227415539111893664168293682719314037317740815666854793727004734837534818384207259486950133454665674531193153753010693301806677509844866549993032633449913686064375824057705349385679495188523120702637957747199558000406688374397789144973303880747111618487425797633370078147943152108301757458718940803710984741965936648901236956006368698658485647609295233699422962715588409629804196470228442811200333331357715746042992016324377499324093643502599746708265400089644515663783977541216047855681253099508196996379955274905652571154722534119323315831988900611924626455785285189385310878022288778992261606837965649405261128723760982672428473330685146078584675913681946141353363853462622429261712928899221464604504929676056955402745970980005992603475619374301282234333368544752158589173970247942321959401806705089004077509346539904393317889488379753271150958057016125812206495729114104026744850926942120449711695877626017616281471655053329083795515215587970495000787846860700323437631452876895135251874268323925439514951824608796597061618562821846660700551974054618759021139198266584318401421651520968053776646372324198385299198882877033001851674353541981386654135136324996621199975025673442511821997520625892894129885089203258671701991583003993064280561411282125270223355774029252434711748647838983625236823164798735923243712693843633951566825628302778842010765243466832044089516331906211325534888863032056369048134603915434190169626356679251919995347216817562613732242546722779276156677351276565819783102588172056821789926925101461135130329152632111460161758186457083073893888057338469136363894180256841720696121700286124537859469613262464039441509166239561652510870922662762372962362375427994638529591692925131879475973146359462639653344759689842466784775648481273013997733334410965326510190387377596292078621436160793803094819294727645087783034849222310178052300236674605671421412690982210152343667961366413604389864861367875281207118295654325255566696346418833536423783596412169844747765490016449310095935687412761640668274155804030830294271354294562830468816252712911820323450546585807790525718155073383613579730260547165547108812237474408343397175963878464736481212723618834842134392097017889195691669902815969578241342072787917241718425212072014582165267327798212321235876967307801679406793708072044301143522235457516704770854727815667750753587158991363040220283583105745390593938816603433474612138500529517171962820691746802492880661887791245106166101633442377075490908494000958088041837607575198791664648155167004587806062288468433332959134118223843850527679112321810465033305029802155943575470967810966925930882441098397749833010608134920205022492843354775700313255487372472699696981748787701732095026211535810093909798155523907660721434958086986505484769695459480527100162453681661442204312841973870639469874518476966007163513570704690621682010948171566479958369088698567918738642292299293223997524826519266656443282931203401282447378488608952862308180925165190134745995401024809018443358488181828786962283097379037414714082253280970511506115107417435700740323507884013859772844335772413558005195186886214792491777140001429079622346658676635938346097533762621205805787400717526827059105410357581565022541737469834269736796080789483866208080679406087662294099842148275246102715747974668193086145148235377311322945980353944311613758515691861097048345803137751280425096314993202525506566320696493993061433193734102346060079595338942387759675426825813146258014049562779255302717267463453528385396175822077317214516808562740254510119205682584661901401468099061238610321417881114593677037163853263109001977662496517844322691919450737078983884852419301233122332333671378010598738920724544510865620599231490400269765115539588239027935305712487714637117648164725925785184809701073561117934461855467256294215418266969728288413403445687851778473892991938655795215249562002168284569939440398176061155739637316977569794275032799358673163419949815676463310080246959391593545321553048693211568106498794974529008345227264601843114495023564248469734424729970316952554799647524108488086575851574954264269634074301189231135128548927608043878389534618601570265803540018698007260968509200577029184110818070292275799413241161894258710492133770067892279833548194019363050957211447035682031218672325277159689554712057457137334508069950113301426499886999507022368315732122048067237779060978838848854376152871789044532428277552751257340537309344018722824303829635068212503859741378701785327469765950827454154614350052325518065153632938980337622990475461050574597765372778619705641306288763134776889477681457255700128438489648883953272138909201954694064801228433485050111016944583353358669403035296342499029234192184212757703404578055157601199742734952006049322633447132578929639576528536735539681998734542881292197927800425842402363574502402269208106116584660442069183266056466813484249528093792342322907817301088419243037266260036673212483087480117853533899481293417858933227017952437481771881958989199573131457198397262593282742076486966745623145792190043164795180466742434321188084662553885846964700649869855816470929779151509764649816127488241211455747555189593264331597121135586797723812537533693053367491398691690072389165892658575659922493890385990405036460050983506319317271426243174262435033106977548442687067986349261946901490442691923404359120453352409971086617979589455565508694307759433631082099565158611324436838055583669218081135182899070859409427285888346224916159757635124318316082145287392951215772863796731770261476935249347728422499034311845058639475577928140341325439915285049181567333992303200568169462090024128164005902681453532815226526302793493759956262997155486001623371095944080486448621887514889155351303473003451562096870382017530963675698772803878940788957911507135452237962028738544578110001270879207974847402301299632156763692599582107510538686792084113234934595003853323963770171838853592345924879668857453029367764179961619583565880796875241044710392080477175133074263294932074932902583587791996636968042292379288275108882195299494752555485082251583127560244788784784132410662463896931814630112881110376465023913350892178426365735801531552541815805426298006182967851832812458301253025913699053740161811905905894829354550176934344242122502938553726322189290748747972426377728337515106877297576336521229181433089174341351201600776290089466742838604377439655376277161638519737665343476076444531192531669194259837342138999753911721821145295227431242691048755383543344959600560471141544582244896282487744351382101257676217808800888566405224981009061391349243067074597466061374128831287718712661731041728054715031060684281336405490377230510976169207120928484340679867567134322098214192806975428034062530982489972388296995525925705284076942851981922045803142886732321596209639619484849243098824376609823544337705187516035252276709628754116553326772517241615658806878014934751012997172886741381713939420435134130254534767087596157012695429008879383662826742918437084176799087409181514603319096725823068862225590617861167401419861728789032763434176814388919729269494475388683647792531052838340168617584791169395102524912207738489055719072439636036322206907259440609148112156272613647659492461647312734898455725421279030975176309693337620441439469161477674453325618409095485732537036664099396505368460842597257991213300788475450237062838891426379425440016150494531639951848457137442831673660476392019438426516179764148206867616623287256943319607559855317904923485765332132849686783539090648669758450814788699618965360445973475142699481403252621629856006248617598436419208380897061897311652931821698975736323426797582618218375558675145689711933756528559348718496610451291277562024891585085684759068822484978979153363216562709977928606950312601018571334408047281297250660518531080381311116656741492664205488786283927579764030486883008066144055181824874100815854706281032127865637467387198965102790654310592154173320315282484475533537130388092781320314243312617989843274369795378281738658687769458074116770194540812258249395132508895214224834931619779305973274430744255351365792794991981216746817654131331045464851754865745973767679371690549553241503798165610008207381620668834891685955056830559007373227775889384792518531010639615452450880585621193230161940967185033358886396005724870847890637201929641570849557646655724045015920480606934029528244802645022945350031645253616660182011749748532889793977781073237557881382725553430627401862252416253088971460039066368533346860057681688520172932570430937510177249533232503316245684162030211532200388983147368030364642434757511164063871766900853963558220022422386461092452000474578650513349723289046260250326071031763192454927872474386408463668505385247075530042535267380458693641633858716688344134699204097523444400727835836428467397719524288918746667795213543599101134546014501429695762709255833829479359797821981163038094429060975587207669346757326780152953692790771981407761946241381044310519337777635930170293889050105965516369817816338122894275970867645315820569746609118822112002080532055715188880555492227067695043759216485671191009325298391523634639592267483852019651704950532090612133312217289632262893936680902054763888781678789071003478086173353681976480396533466698345506854302116062060629684681382372419721400743681471712860008489887901211915243755224013765892505831129584841822004842443802958604024210740482158497706069298578527585234015407981840698944953667091774175731286341938158829069585321220634380111722409142229314297327486669856823801250151150874801013801238141444593983501709382228929024685513120327873025635787607769684424164686076522232185659515772654809267065665346871864806821885916787070532263798248288906685720705774010429594666202747976146668446251090500315993579284616562143251409254214163020495801257157394786117752848480165010799294626066311231949491816295192545228719735647306451639488210636531293175135914299287769178874670914286318130320393637519841542471915930876947515168540961349505271332097031901371791883133019988116083828858306968180695021412305005794015092919583091200106273721014362381981335919911978187499592179352534761427909944350494540667942748808006924323000317260382789495675115390943478948586561471153289723089946224833197950962730491785575162703751438450743132924886731648857711134497422837322761031673830269746895203113148181574962892495323678880892107653122305076929155599038530435048149646731231961259877395124250586314645070907621301881393249976984111523357136551281293870636477026438999157976287420056792980474007159675618028151601895013246345149962791205565643424162055393258117298603081966058542475318122698752447627841238127303026992765649696937811134328451390937878368692682066505008509958026671324761328393037069054961769696146003860895095853428523402153217547019024035349372843295710656846642493347108864570631630993879439479622924469635834597110027775698900518846921225163923046270672108990652377182245531412791008250894929110699629733286605457040187306498304013834917245295325798784753650066415463553549998958866990293193480930542285156829206935757846832498897271913483932289213523167901169186199031918598024080967796540097101627247029398258736626768262302721267364182454641621218905343291099960106450701466071249182517996942637307882119948076304579704612961999767526373970661054200831656153613747581199594624712032974178062402515867205282703032662413576901155550160767785534096241727212853577364316905772917264787225956414032063851559183241855829294410893780998640165078657067015973107967746167678116628967836314282042364218043320432107203166160857081013482790606189437057716097217102114001683822672321907532727857631858319543862467952929232863506377502968472482522203560379432098752459941001227067148698560464083474267163394779358410974416416825716470620821036426870309910778749012406034217045565873758743639317268968271681088233657138821958964649666317774282687388656710657032709656359555902395336423435899190950438176608726695754792595967862047888536724429823399256468792428863722922976088769504676887606060337662836208258853024850874968612759286129270695125366453474699320012180791381771047788004737238733270115925709607572410580174846922343046902228074017546471537878400615725762695394909164419611841925869919593070721902499338151615218696529766321757582032373071457238691230603546676332813906301182287529439713919666056537835585028170976428883351985789093591830993887520734256356752907977092528479514196617182145586045950446036549611710015293245085840430130200393923776679384472004452654740565559931677230823922266869508106008884136066216434998612988481636634989118237789552583965961714741748567194845270540855561627468057253344753788369863555873068674689323070596526742286965767584365571838114738856015327928661646784986665259927370275404389015149012640358366784998286986528456409842951985540744756378058864967527166915503862749916267396201849712880210978485491786748039527724513521068283417640752308282919143723316654270654228830359941665479338262800119787802774936956554754834007577998751643470877643487878428003742026566121638913062419398071865099432531399129261884857685667331100731131443909931951525986991748371045654272058181279398811024938041666170386379585200096587863109767363710604544382797840884362155111159048609395703395275891063104884513262994631162622392943136652155235288434728905214998264900062746215353726201407583859512795632565973726739396649757037261746241246869009101967712071393899533492126535900979841361879091943397724101901874542446471096780042435634571747093535861306459364911028374426058881904375844036077718745576213825274279187364171022112949194687826009744806564535950333707788466014196037833534274652843940378431673534668131276544803478351102041638397626453786810172957766005270442343492074752162284780522240153062794759724349324024264217885321770126121678664913794343968005009239037824027099928942352123322581748216719920413262483162901971053660348252303680796058067740676789965827524114821811788057868316109113298480092270549545246532986236997849201128510240617577311252644308980938516286625793337670724093415751742441935480083907287462867684819592051702770113278731679407323121333539284979030442483418315084987726996311578731070629808902629471847734483814005751977417132381931517879875375756525993999875923513029645894739772678616934444203085420422710908627864288021617685097026164095218589154665249807234995633395001772676072104895421491550814870742049734914984000684858738876368744613222286287605578070334973383313294616045472106485062456379304775524991523410539891002128543015983205500938784947216341922194830535487790111429040039585496419784313690209942025509193879416030873538623811835193757319947806259846969113280617545881442370469802863164007638913355379616063004938962546713469275366772882510993484615702461989776016421394707142210013235994219457212653349249406645817599651469651364483222474102733785140566408947830051577452645274738792472356652691511338753244839326791029401321549272333130347934386034688376480268262443214407119643292451924969217505586048975939693091170795801398705301986163730030214280774092475136788678104365653930999767876698322974823324218340951295907792658318237357960933407986134012686684422185659946141310727156333952066867093330874648063459264401665485222433807820148204718267366059211413979112356533414921009294281682203998318798944182299309819645153114510399758929998791094496468278295953449760195014771717859067193574344584889956969565863934859345172414059992681594571462267195842431451567820061255220857646130744620050344699663022192994242268303087416607068078956868063664176729513070843843493894514782367831699153274131478338553776961850583505001433963181136661561913799222387527818196256195039115098229229390253703550574069546707000911721078679285061032664345038812392776290796075576162121282103418095348480296109223752537687739169126014234869729011136814828752033815467768928712286212427846657936380440052413742344110835734943089652197585405732024966133384615536994541487907796655327097862134464401555928696748652815418423825842205652870797203862736192778781581033544295786654395636430473720700053365933061192950896137274669678193410988647977350694140794919039956233775083717455236905101035601462272293945874653034939961790218804258925200169346107140312492726831208719755838171214004587739606659697290510922416932924181684881341990122024942362434146370041190307040728523923895020305445126780042963387204589367082167936797404372358014511609619410365065104504648206813935052121363928526770802555938715706227323915039095468274270056469698287837667140570331962646284661071596094000622033304056669705573210717991467364027099101287619852382024068177998296174647861115346306929349894605805478833155104803510580936472202927953360993909585301521523627012634826182984028128481146994581771312559765039057202081905020518280162856641441168577841196109898207553805446053685362745738647573063354617015439369422486920650210512987925364933344223010869721747803823430594759193255848645600217594832910158119764939321493347186896305079301776910511360091655180994056019018339227653536772503858169632752070500113932528595499986870738090009621465275568356325882434967556017551912183495274113723932370536229255455213562507512492320406052296394073286666691692425028196482850991672714282636167421881651090017482889456263504253189442329955196115553746967471863789016972918060475141996753283160175982755540080976020203303733142855350005390761419885624129503990857108103300921432954641867254303740050512651613606347639909564051688084795731281822932549155973057829814572803682101363032728469971513484275280319602053251263292497700691128120434158667951234325629040417247516701137268442181617033103822515720171564282682496309916037472874347463089953280722048584810671804104859386751407077529225647615203154927864195760839277142317325293686704783995701005644749439776951979136695453177897128391476231786739578561311034416028098515999501908418804769135804253969290855475050444960154279642507247289693657583732184737181727130536425906999742743778998829863883253161084008173930755799851961212138845006747633857231924635773427669018161533634030495449270026544018101385039411455343787944896581927177606641586771992919992603649677788554312039305075214401085270688019263263606348489726544387961736734120480066300934011551086905076426031279277197967078975876711433575597286528190818913652621039401703513083565425485292823424817273979303859872650531254719603898412812061454923212640886809946927041161585683168185662744251364565302656609822825972704320980812858144652465989667744987266768496420427915065704059741309116441071642488707921027345740611846842069494802427841429080354391682974297904480431679290404963110683444028436071571077946579701566774640572799658070392245394114257587887001579443635146999343891743970941375986857611740837936996812244382674682167977345771396348631763596841486440908370506657316741727868174889083655304097557286721204173693648015322671201822806057131035442587070817290779679566234721962327393893270949519004793065022360657048487091038219136756029297685801426487599194294792188057940049372923292717074931305086636970307473209320395022100505182739738660426436372142490472593957644530620240289919636944386619368142059935472989153204834448937336123273216547282207219648283756711839462994605037590870613432137395401488640869386604956658873898102022952853880861833789818269546979495108227762576962323275329352873981057379605414902059296151383940921858579580386072368219572236127762119546939649448752601879816179250725365916035306693316673586789911624970235738312712730443329626144921166228405338674366922886800762221541781061983914733748508287929497511734280300483481097407816886641121161294480428754379145744331902942214189969321779492580074652813998210652552329441368120194794998264916633745221109483149524843765685460909825877339653136308653509462384362321094904751224103342517555819903698810861096387711958402863454736129163582746521578444832070540488425446921215460371546387323068379227323450616447234921550269210781313915165481969345145678697941895907615010340797147142399070188507233966909310109962739484777906203620647201672728894453918557377230700550609912308857962252613896247921142446990250864182048413308888825110110256294144279285855027090413428888314109407253042330022120503458029964537361290257758701746128795548207200933769235872520304099826844359404318061536131791109505103072275810305382532870609042715489786757170674749290255619035263112188814982554221507091622002701125575582827292306689318302419686737123159002584982856379962968656580726507482554816101776292124181290195310583836642211001039441828803164468100969217683600311777715552858821064239398705134183270682832830448895283936562007586535748348487130996451670405448655539729539412299174790373675346396165397519425726758586498425781277866801554403659257898093588322933156277835682579067839049099150893477450009191097050631505603172928270862089676160131432235173856204184039204598387123673761011339421579560725776093793563672006938766252857533498434978452235589673220875702457509041556885643762629681060224338932327999364056543412552676808311506604886278113645625532990265990194581940194256515258917373839345842578951625502774041350849424290858769050929593017352953262116958595913484491972015947025995539047660489616361670986327913965861631756397696375707011305266196259209074654097579069421963095409654947794662199179771804056725412322972495103539940422824376789956356921491195432320507725719559324404810225990028931357158376988071599409363523470101581540001337113270501905776438164460423425537296428565854511753580424238435697870883099621334989238424509695914830123762261131189796173992735197980263427616219798651126849725888621872389472113864159161485545257267159371791068699510049360760300929506161510736287174265946233308375909859185273483021514156839230455781224104936100641860631334187050621557938747125328446117686996848951264852934826470778168576050787766468342167794686812417266893724661300215007666670916816848769437385284267292474593981536924583516911871972228653128645272785598132732715182133466802495892602946684833728578095894030402387125597972805471937549975022902376966613345109789943419459772105632325007693292492839727531648584484181364472226364175156236376686341989772574633039359560364549848566296773616373049678022808676465967759767384517195157229222682991396259573923730322623806571738041304319426416444203679187171888687189303761922004113678512462194549135238229968777880072677499872120105567768163367905557616504103678402385356138274437249509744720644564045505154897879303123503391271185098936191344625167219684180711726723092223684900940466246975196290424463547608934994062467981565028038304449841021041297608269741980314375845346280944498155049291951722796057211806799783083621798491017028265668358649842610764779484299762096486843784171465294675105629883048194793837501285268740481459773085528552971453357293110707502984989049735817978498228644995291486336201334899870769914174749575646805248029293174029252766416200712632254471132738821839784398465660650808625793381373062859459755728065629072137017209051862544424004812591937589353766939041509334881523175088550645372311832241116675421281074079239916554139462519895800395666744701604111828806243791133893733180119671878426460817453789899964943721285868420774318418589789867796613330943826666671326103567714727166889923528215674218447599869956745076293565314705386238442490488858140257611048880000820887207276602730460910090727243994214727062645669228541217367374787107034399173519214153689821584433246386553740905991146023743438862408528971183713201720010992437308067328009270279691477811494006239392533066282627804415999241671255733874340805688643407558371858671123661346045050336798065689693983827930701311832978823478419998848490060621607608546930133766745127879260724259406841036586087949948229498328317862097080868842296035731952872930421087803213649026574758514714472015377027543097440645020156362490686512833775216037563442209295613059551730926526957080765888513290234637351222475197995691175125178167876964375272584633896294457708363535749306180291987626541922961877471911163903027896298492944577895851644879902079968114932875333702739650781311827359351693167235143829567756614921228082478919433943722505910471242936557757107305973739649476767005637967353773574089240735178236123422708105694621143262178370151589150631914902240891361027861941031919069257638009675110082644039461768501225710772013936754199766089098304145302875089365272065061979029430656834470849514707934607414954117430640610940706336388092599230045598586583780338604096149836007661718792873239510128421957387143914550718309894721902610968065559006316368236825022007227911874887040867283532743193336643440897365237299463623804130905471371698853367876360147413672163576602509357663878026319230739497387958955471956895134335854206312908348462691015745020200054187171613989449321740955775932272981420721831988216164949003503412270312747567009826493214543233500588604707488997010663675702888768060164895471478893172087147638277587898788670655906912565256519980625021330576731372145999001409814056044114081811516924981264906038273096433498140620967621003829045253506211504525224527372435143861894243349668470647130769082678212214277371448816566666248190463571971390265279459309732703618537173235407603794867293198008524937155911084531502902344570985285236482442570118589848337227533713786240701936979589660664849184271131473656838543580470094349776316166672102427715841704444012977363120947118394069439045363034933114828051726931120929260127284564457300771936891654267280106479886718463761007368485640806736695999604258256557160998950954331450696928582551693326876909230268487891632191556372318942063201395665602325215580068324179813483543188576567537541977150809431783408011911085485209639326279376495940122457135054889440602348069418406032884550070517981076275488024746651911862613438236666971354787153166287342960282668395969374741095466045483544556024968858905607273034265323201014229073632712649224757475418047579373523386923640688488218142862407978681838052696583355908663678482689014290838401592416976503142119310472608122856339769147537185503839475555928379306026834401316681457798756401198085178543350719495663041902816471463276658212018724565655518073634142111121250582879752744054383719141501092330734329713936292040040358128386127259170457906713070845660961353143315467453048435952765091283617461569222171761359197528825783487743052006393647539939689119065517341877898786814354038237044699668994379262058273423625250595809962425520591186382928511959101330889626632861692879232883409433821270747643751642285117343751469834434971803577507033799158193714888926736927664227393352277723276016732842306155448403161120494632952811942506651839641456447392844032048613177778505602723595809258735262286719755570475205040388998820906793230697429257330163497363962607864063886349333895000069680856332904456136707644521756084530291313647776974180434844302488528774923666074750936916077351132154756119344688298974977193577820979129747379936534306355890037889511468962533724389484613698993906896042749073800035589780109933511018490815973179972362197139744977302653043674049077000790527082419378781911574150142073536981362289595885260628615423659528706137891183740257240048193326922011634249906644133979674833433789748943293802724974534231632111041107312561704797232061796167488926071003328322149707651447336771384031225093372853368881527962158823562213868329511986341704064545217157252657576172967824743475506929089071897027012334828782742067514336968186411311648616354229504450555829336230587462862491912703720954372910989878174912959192364766165518525893914653422017265120377934354277913832021919517771376368542352199829846149957587492932882826022432277629173063325885724884059009110621354281718588483626847676932805286321076246540915562054142723714484806687672140419161802214284358047983699489941025276945490926653217516047875129779828182585779542104219220313172706751963466271497829282996592898871614222845682935447182472899290579794079246764204194672432395164269341821729473772795740032658738412291811152066013277687941902670708227784531743831229558962708624505539770388226546293870874612903310133934951075381128121944653759078304490370378727491755940962168088750972013822190372268725661562099891565551523462628810469363916359490644750260188104073133424979844874495015466560835222878326671083781280854150318746160506013963076819546902093538439546232789309812380733833806340401972942942442222801777397977873838274164688813023948612730226976288739808889833822258978452496968402003439131361019885187153862997288448062596826254554940832069845209153418932236516041346877814483209227005964866982626898352979206926252778629726868815756529046302358657744547673197108510664504288599508368697431165906495993795980244608527030072599535839893756089093678008297710323103334248695333132800006756188352308123802900758704428226444741934632405785226601430475532109922764246720950439107851191744335254214059201836256254219974474263665793760068297918118081538989516125461588098591418218898105334462516195776527738411425487006855123026742944506920139738455393847261988856911626440229227640389778638851285859191590735472295781979898513615697378713489287110119046425309689731804670484895344745928076941170865967912563339049393154824689993221728545316589475919437507332214369226636819818328995932334531895212873623700259720269843775127130679232554934219353613192151614429896423110641787827158074392484864450977481675177610409054546670968338601056698366283667816707181781978419194227435836961833015928384538149500887100069676626872925528060830278383404971435196000731362471832426896759936713557931128643805777315693310823889069043165190184280851104724494702520359183341879105301649841904851504834450258294715823139369198044039322322391342018417037410985763016568337925613628668575148455535391919899835889093363208314101182291177262883148011467900536963788271320796906751708561087407897098880566648719238904028052027641586911868756835050169488691204033274296913807184239882393731540142398506843779977510728819357314854798861750916266342417130757578358795641069208077477726417501900396427318222978972707801541917329820695136066333875301052643128380301443798970699719324791010241604716706200903383644204614009164405587296112071057988709115854645630779243253954180700864577774156629129872531467465885106569679716343069327716496090607248754854234327351362130999038132875678685623103351246281566428251735804247352361901771580735434202036219420092716680749728964835852616855637281594468650005245875440347601106625314702385074050714066885574233427249926598238227058968431447686812834271555888235565993841027845914068012018195245351766861929524347237488620713594751696100647436777588402930273380473643122561697526668352071699969198520585633792854678177647535741134910975508581289685916586593980766704593910729499652903936277679293251001830158204498193515801358337136503370946524974772648355060671567062582637874671789065290056607350068504954520530986408085449139383470774673493129760298809429834152569421876729432701059450060325086688286050695766524554877513076766227819958293867718263464741510555386653684654519453278284221309959303778617099054574917478342882874773774465565513445571718602532396658896618158318611469367778095370239462654822968585040373276423033057747262451561863660197587311842307387120511802568729829646149654602858076961609307874199490483478296692956429560577737402864172138749296376161538235905821641451843230576782395019478271998815473372588200531697005166517758533558107697295365004812282233794123055962593103607618781236253649347475407914160628580154347537109699704277387395426401994750122963983832796884828085352498755737580915880284451183796160328941070211123908843458555056234276173435010299652049765902359891774930943017438371682904712822211402351460288479856240625412155677724050625392190181861337693988359496486182271184202406551022306290733091425669978092234739181149098949912855864517282301649863008415858409182538925902439695253711022519570582176466334094178918429532726444774436216231982684812378097900994409907492376926613082715536106444030295655245767689217668686804919230199440895704809320794965993355906114370374270156475092118963607170099498795817659112664862456238969093830743060052353829683642147742053317832275260419756922600889690095852600170413987223372298917588130967448499912222484364045005421265102552670033678126480055166628551437089666543839991074736261277810369561983130785111686748015464366547916015900937123365067091050748716286982521310739718436455851325879741338390984758629422175957360263539555844564435139144794154937086465947998794886566297886230364483719538703809895157877180317276889695040432142844819756568460906390280895437097101453604531764525891982701984629326532131098750835594091859398684365303725011246677166171519634955239052449579965884873808001491411013960042321844694728964978324250411561714157665413738000682807204148844758028457999968840742499290248489141353528344307810352203590841050571839046105611329066730611292496475279289430620375354160735362294176411925079652648235049308337687739687999302252237444788158080364095023208999076264264550377272660259882360605705075603547827506316727617150469207919983244799069477463539317178300522300461245680811743588871727980434452413963565682270262508098558237275079762867175347812853389834677077362314962047263776924086729056080109525810429366392487631903852227166838672378244087616760328885216923705793575765870602269513001970152166920712556817519748655892512650903000744665390820703593267943022756413516672205589594812615993578803099710283441873823462587792773852191274681073391848578209642871147491501389855402549941015809168532077833853290315720018045657211532170267903115145676870119843887680893630851456772889325049746894635582173967942763323818802093575899088763362589668347087867407877587134829248819708163766574821446282873191075130646812978950030896067652289651465681092068805510429151925859414004719085083092042884531925078169371416709754136305974392966963826674514106786348326960004193379719640756302763373441077669641306862867190632321303769637844694005542377944542537715344533903280979561995341521555543508412278424354180694310319951008081092513833997026684478734131258013959180375039281750884573116549188493099732760646153392458112245467655366114601296361082083195956034939546842565128544251401960366266161760786519653287549844617249718158956564626259694896492939294805326721942937265426981976484506687146054983772481685624301339076426551162784873483789875123811570075346185073320409103542598139256992222907088907727273419050724291567313691561237714099761921015762879844767640578423841933694118088977815534541355635269543442299586999256134111623316484241634916775165899449793958709589482249578249470775222084555170582000547342639622950183939137297836374294573897246883962562605435956448078995280136448102771404356170578858347311043875746414664271160010938530319396568060462293873731133518899872324777633356568101594012249481049772606705468420510711891437612960732005811849698338136611660549115730308263470504650607464268175270393886301052185545700199549322363503638669189939009172408019734947436937235322396832587279361995608952981160643300110171154887707699712587800088987663601069022956695167222109216009269649831011844304530879254129768867333113989048655002337288937554228112105188366969599825980941636150850582848032580695820330756978672718575267242903234638032842655023449413456649026429686904928357678909622238170680923338071583043982006149740703549293626787046765821595775986944383299657667577158422319097411084287593753137644201332422423494345991298605375226893434294469828805419307701396029909862955678375473292189888631943569035746826536067255890636106123196449167605630100967592877549296147485850883776273610529448532833877953007721001284640726664244976920215363585057616964787396534082917895191287548255602709373086030920449372263910550898668866305573829557413454769905508936460735349482273384027444766409301974442873811585321203948454893716532966732530411607281876799005896210120512713570878543726189517949460475062039562875733677063555580774369120746920494451071469217809185899637130914044871408883298159560873981709683969233505999855258076139223338960153258414144589041538656993930498046940722163510621038017057769943981505135649321571838797247091380082220110145643157468795190417433640097358367969708400823289362968193398954015908525001926492856650637293985391794501865547231279040112076616790736148128323639716634115393515266769500950942637960755157336832442408607319706316450453884178809842815133375963336509407818029019567727571294246913905637805840712222779860093278199676294433425654018702251272112590782646823193612816982676202455451519561576792627080578864076846650219347318703337473856658904883450759437005038711694367241863362681654556286554415771335287350696294650512723616741605193861731288419978173747838174575313189816493244387307308169502195104022499662049414747983618864637687746658562253372832659441872868266122510732272177145447573599358843748595818588062786008664408642741516412084566715369658221212685487896543804333130391751184110979459268743380938518511703631973292297467915239288603858762486046712313517418097200540319903361067596465361188775138372466959902213435646636095620785508490174334436719515674859094380429060585979521501476894659250070719731529009202977092150772912342309835928120439891919788277748837470977420805007584245003469544433029997721073545256596476656221306716427852021147213393209787143542829162445968320226668076105177425038691633725346514137103263101245601821788197630254259053741882450067446902050278026705360905793291954575826795743905261659222913353583518821942885620117872673449947437624084052156440204494393487138498173814163122736532161927127541394560810541000244118975323673563949312841490783335726655428529178300225257688122474638664295162503810624231036373233553409254252787437521794469326009720496680841275499336238763035603321467492326396820505444122283253814338636198393230823150394727894647368810260415049685446446665657731594355794418087289436524864516888071414387053414820170183899685568880244463157027033070114269809472260022461680786812013756852209229914521701215571153764131860145508157954765232652589531788977347367321155856244336776242103192897505427909671654041567523462205259019569634165878908989849306536855911850205549856388243870533107666907844625842855447232491911244372401025178088777141405206427450023919778602936925665063276314714659352320953345073792668249484124007793572353138134344262572402783639602953761958852721061813978742504451676084843933375112785068386072259336959440400060075304917193766993281972034010075097648236371063753985468885656856674629124270550266358447619775112320198451136283626026452196528729097020126597531773703295787976111891714611157630929400674828450979840790031287833656911710932953804896731952839452948716404398997466818142545815396183970628572617276939630712868699025905443383799241145119723011451145450700397693595336957371164519965357005794018882054327455782622833754070740027459654596905919418491816411383215858377383407744546820569731836589885115203332029119610016246743976802905156223696889948713519125876723669340928884699628437257726340987015332133042531865049414519596288773701393842112365018210224319048201809303484206890882283578813800231702680493488108213345295240237764411705510548283119754270041386567662811974828272979768247559710987142915790504458567785596195555752070938581749051247666353835949922303893416175344249119884150671091086660563097483895717268027626370638661863076929361254262327164620432329064528258563404526822504369970879402102525785835207318996542052611327143201034616738680921949789011118614820460485109353242831803302655053078443576374464350693910522984381685112581803134979849238077688676819650640273689316763624957966492098923318113390808107429999393789712816291989021022440690978380444186746231865358209538018126446578222151086898110835965157222178794367658964032910534907485448442231607507027694848935253915979343705119990662422735393551648448589970538539841378416017629620294373980358344763904289769100561758831700672742400959979960825249945996099956921978595666433791919937021213704717209001219317016921502673596198984399364170884551481157303885399753374382319029506506435336819065846533266719234150473526477758402605392547106473972653968650096815944297484509125392171731096990114954239135392619904370295406373414552695071368857355489089967057290806712479721443639004531293443754156044787586626153631465314633223740648729859943374358671628501452720031366073050183773526963307111562822501145554377543278547452768546455390301688696884068534537180860462442509069487417650749986737759926666565938463906136548916243293157734629649848469536164496873918294368095322397217495074548529352655737697359680104524084842947437497253400092599857773555168165509616410625341141794451796612284541014181863591015480653869073085157974463653962396263196158326628590532064448693178092256442297095704360701577995375338666710911411664934727135368996377351305700774108071407271357712503153827303918587804983566265599630423486107173808806513583921793247996791632981176375033565301202179953840661468123035890055748926393597965373525069101820191819442898628711720382981561809378763664329561950564806584764668176485783532366028075602608784668663817319337049387842398219682664428089571180205890024970052638390020100381528045217395741598099210873211002004588667553101269078516129776824472585989437521747681990505459679538493145621885461606770966651243897854531644469408842570824939691867668174038647872622206558244602025523231862298768735842595956684917173477975939549622973326491312492456337763287385236269398829716797666904248473920805073464482593265570860561642227048076373150883459536747839479853161598178411656576499637247975289788407686744400651177877761739880661901003461000544680325659494963687063744508016097671028166854132895495779406739883549889155473171755400532083541489597844471306160717622359286201736885591581739452048291049203468230019714642678407839881165073599675410607684233483021718881251524744379232288607020249213615940786631212280564392824998896074130258317343009714710209246980447716863612557762529614154852752085337303394022068190257857308737609753715083512639438135620689407239471608998386198796432782144339924719694673449740058214857899492819028678827065120120571148853191037115859982826629912004255154657852859481282105382342741359744825939911945194706481059206067134069477312241649487520398018673495673995101798371231802188784138990116059211621503298442596895653181603943575173336706555086511028994216106601971857971047352211332424900569515763782589042822286180424365480135706311307841122939511722331923264341634838038250334118944985119541555324642889844127656432847873487521210126115251798456520680352258139474183520330673432688094745359588792497100113013101301115531041915007526889498751890245645853321996445683842431117195399823346006462323132670512343090074419000156218954487435991479011888492036915872995824623581870121505432566556605114338424139098387676841515869358580436546493858992990775912958841131327131244875014167356560779665490248425950918139174393603726715286520617355848468232008315908060797030635221028895876751937209930516998624214874673281243007264559845713690511366141663080023385306674047891039158179233358384027482552734524543718662265670691308976238924277466893672012537033483395604136086972179882983523783529624186042588491943591235430283750179326275683747305272176099286115975839852794272020142828814275326113247502783709064768173057970737324497631381676473031826784923634247106804972252287274557198821970553553326210980676445297677608625481475809558152306376704206412174065641645059275924779099917239891524893208084239690223848450630477319340753034221994213352608249255454043392816257535101909052283636566338006225847710830233425904753676905158949314456275916738274706209287625556301520180547782180508294872848478826482729926870971158757339538644308485456628771711754192567572551402448167013406379120415245519484638503299324302027097185061383925921504139660216662949874008538039983649740517747699587929071348957254447359253840633284450231655947502610216676853683317162411710004297897743481378028916667283780700394647066207592619599790331593989731512007112426452185929723429819576583580345162930161506602821352309285466368824395939147080165245997668707407959906287883180661719624767136060323760584446021603110429171435806224371439719373350860107485801669531555119513751857376345128413857411968547794578100906635685837306351037234711480669212813704144669451739196398304064292071192372490622294877586587093340381950557677151212567450975151272174468140400131201925291767610312644136920561151628717459268216667298485677157449417501702926264883564968966975572021997792911992928029163603458346030106751409100572639287497940117092200584510129945056836750299497825022088513876946902225343741594638410477679473114169135597289681327353094332826283226785919021887401077720097670393677952249042726900937284928466089844419548509710111583384516575580227338421509825063862217009356568557574859085016278522569279808171545471828942074969597018875261256848973657146392135428755941842242531009968736415534735977338235811540849827637298546305403933788928318859721775312893009486242951441107515994827862496858972287312761149886691404607267028608940836982387758472896904100067657038681741283301987235585719611050950554164357874308572465102583658118643134311939382285135130576725375052430412337998916403388245969264168137661123306909953317104978878621820231974244609382219455725676886032656396520060458364638723780442557652007572167915958661522408426056973105543828688580872846941460315742595253503991155033811448873573743079140434519438928436650399748541484222767700749663229162407401793081567331731156546223754699332194083456314670058341660385207999490972011898918510786831432176105817395775599984986120087176538532811201553065255442214474268404776382736643888310111642367804858444249828981653927237686989853184415852387541998994803987807480566246574624546092858242481754096765955376827851694215645638866947538077269555344461486094003561145589136500092293822665047841203434188228876694444940358881779201292028964410817862770717279090946223542254270846557520549545938783818298838912621070718706132360806472781726151956354809565162725734083359304507478490568773641102808476981378220078394751642470601092122119535498359569950828154192826997131928616497559240352281128084787683242896037230772615377116697438294165795343259507246785853097600299812777894577865630663296436810306114409636475666840177596117640184571544062328243145290014046866183151725554735935013994215910416351555244524544057436242284287658260155554709582093791809248524208602704206095105808945866664231266956928372613770138433714851176451545602742454343683495704256810654473223925784793411761471707043992954194752728691496641551786190550859144524670896410844860075762376200137861883810072198846362946029043002758252024403260657069788725792269385188602244639515339497194013597945546708289911736768078639065979380625754977405103230403611412275219494880330711480101627508482667643605867802759801860135192896071853384712481524494280485437597501493839816324652112527071575636303594344690014230556195488490347781441525075797970422838172649610610274412272252475030664668938329080209373797569180184354180106287439935533822484037439140712593969034424064132346366111113097274972951433852236791885896077217819731038012560879215920746491349981651555155273786057732303954926828559419677903942873549854697798237188908860415594281293599430313098896121541762221400624687425604630577809347490744753041437829649353737300770633416077923534858821490867646089805122641942153960599513217009119528960749739723790038787447402713229487015078219205485051101797465105436901123250112000652622775639546832299257546358114525393307639836733240977612231900426345825834976812979114502388558224079588202897828188104060876442334657090754935574114813512455293244104044305340276955340591522737188393926697982751275325269300724432443062389684373059363188656315655827374304716790017467087803246494953127621724976042747856797842558171595730222477469594051290276909454514685015126229969053617236084610838805097294934251339071806614643216190780752687481601876917940332369921877910657215198971853067432697485738110375890211229860002607937417697659961022592670637822588252747556367461223235820546038148620861941700538305930583414852704344459658640032523737888207085992238219071453583750988892220500333189082270368650837508719458253063394862526926781133146905360679177800354304669163350681732967089827239275554614990665313203953631000292946273638059370836793239046198710671208764198109848154462069867109207841952163963198822415842296203557959469390852430794912331539359121366841734082881211584957981505524265316941057345027288072675589894526263057842680996894899348313588280803345516207033900988672942386546704025944899593997449736087550721574254947275848247086457600055720704072103337324607106911308693847813907992711246189844396487644009627713658287068898012481698036583577541835881171897655702504308219241856072585076599281688174359318911356010042231749064621285700892703651733152365384863367847391525511737221969831673928861989904910757982075947941900755037757959292385984580834714864804865442880854411463632471208303119360038096866806303476072792609439401460180194546018794012760141804482973632722789829290674207968905284283635279941280260110551357998430657072420234153170925193246666112540816814007044145548629846867254721688542920216140658905946266694497953509566548534218569597948299692351106140479030553488616260710681712001641380882266336633567222799262774459334151498319352829667682390082258240380183537241589302600280999843316105461450321978321764992331778439991001840618997856262083099705603156276568014162928935997750074007742826053712522042575067538023586952550835836921181265417268281362231462738537622732801381481088576062193109718992027790453975995608021850646970662979185017111909744029278497032331421782444480931294349103016214880527024959029403591632302135675718398987291219702618177644307561993151020981134303614960378361151050637426944548030712225774028511428068049129717175483424908014360773385687816245464188543291363247980058881834953787732019919151224099101053338407967297040429402749707208077392940029320824799706221685789990448129772948289145251002911218388207886394119501240931396936451705858245789484793381538490234699601282825936918243298317902699177666838027892436820905265744726723311181422614528952026680332579941937276235885180463475234217601808271993440423668608349570675368500929999797279420863410017325271579054947827118144860509912910915008491300228549148869602749899949197374843211689801188289040273268896582634243573978201899915363570977018695133247771627921568221908153597266264354734178235062085837825481490528804912508463276405465776916528960476724573143008358724678384325898800059323898351694259406745144730815614989925970455646419875079133485509749623480641898815813874268414694286119472469273184845056705850944944069565682706506675211856150350245222854456950925151289292065918154126903733909965508688304171007158408264612916067929690821911785211901341119293017610874450270389463801197570774229452064345048475342477808303946646089601930856833588967778171044979897147750855198367071744971176363332329531773829683530078642043036723830497369930319198371562775966347171311933782244837651730641767925397125783781202481766173574817287516680825117902531944942850525794387669867220903851855227534081306623761945923186571290310358480216329086788787512102477601579034073092551526914311441140668406552582753714667413799815408877024947711208780124003126083070603684230989521398724493772556103921785283119966528477453008539300348727640470250875845538906952428244302313259719311910267504741899290367015393818609896684005640320068144849261404319643133026406835553282004807227957490825862189249273032767144869130683632480689117785239699801536426588699429374754585031671677485119211802311662547884553456050861295196496552468512735141851521530372874982466475541738492154984552401786655716395685300768963741651522413611131704719009156823642481847998046396256228065499042618638572233011494926047027591176228734096635258282146716190253302021347475262752180974103586028918848372671714126851737594738000209767356920103114667305477200674125646346007537212267854657358536784999267846526541397908981663547467753518019093682662078996573018278258949540364414405389371653664988255293068065352057857629443282672842464008484159893342641169370083004676668321078007629771713755245651618193012512225496855487925648141980472701623798586629698580816657416593155052932317671855324091339764653981187225377218177123106329441289394903781950406596659211550000385081867885030057269503875254444040141721279490279476676607245539903462780416273740872546500622527693462208664643009531284316423819006074177340770798378285076796555660637933998884618133363134386135260811695953439521310941628810563439965137210074569933419100012171906056669342438730419440776275659791109113655373585819585603313230647103946026882347466535518872033391290697273164775514192308038545211821923373648715214137339685937977813771175202559732032868059886890025559845921199829635173475126629117616069746596244536821076641721624084997715799552114932928968217725226163132453919951360621615127986277003935308780349701726873192316197816619172363325039104510564358355038131228851262599373303554272930022753953730947315766734243258440419824756256875275449115312493919176195863668098100331465009013203489480119775332872404415747127821863198134021743204121490388542370633768628081720151093959301016625124255241682556266703479674447476271619250663614148756459331480270473918670173100233460919655637434927407400713555442182883306772071931658354832749285894488720322348127421705317917116798298526671582694277026492564359469074254337876316315093689640416703592290333520596782381335655169960093593804529686074673697049687740878471851332720128893328464760639038122533812443541949352112674992308693241055890619073471028848237371423861493858332374479650754861710175799588696591728616936379344489265308787934829329134435904043108137740502004950855550461846081084147193598404616838072881622155673857550797200160209461625570788987137291942459552493556703451986263656075713457256696941361562705361797016994474096462367302045888373803268686918887157939125321693736895767227956622686510164059442909708753840849596043104406759202860024941347657274349104600841470322775139595462204604143370569306078301687355685337800945925879402427296950552512819778300843057366239606268896727737240356052887243848210995277492805096732795974747038096395150881024129348117330035747098613130146202127833813896521140337641298491050330281635482115921224486671664406049870685099358553042872160054182535518404519034882293841131609568424601153039266071569875111745864892002464319079851828920445950811247391871233594803326845142094874575797460298907006583856464211583273280825277936144709085850159765693846498467479121999310822546368340888135514795313718623481756386128666273310070361858236306095049514577653217713362457344290351801481450155808814355006822685008873970985044016423204738573884583645510473331908741154884997671278932656136231368012895108702233213483894842391325339563821994300701648640489212966890770808893105990483216282848315095519128724246343258832866738599334522624700090311471936382656663190996374678002177444314062052698137521630205592955710145704689678261515782793890636813938323036428307467192393032948614754574658360875494981204322276313412956311461261514351523260153622685537660861447789166444002680193710087550987136293415220830509114518246085305316691530160548095901415680826264734561248288946738469803671980006190257645222988379291868211466198391675349150587246965192523252702042153940306093934152449166854402246020950976959343967909040468808514730547282302326941265585901718328424667800890931331494653947723124774014638009001100949654003111593264338465673206268366469219823670335386213357057850960394188929327856612824193021955217357319540995204493892142096270431099881028917114806625334455076451416815983833347940402282064731387197107257768113355160630653396383383466130642425074044188377313510736743613940934313068812223403888026245843876126126320621838240197020708903058020132936063610755484122190188223428445963496733523462502031333675123253251151945631229059191217229117055878498299846263105246590953996516759723684867510032370980455819665125063966433077714271345505226353399251050733975975485449749028652389373903620441692952380324129047569671707309826672932413008848980018363329308357757311738553849240117686131386608029345717990476946051101273784258646434864531085540931252340063488307720186514203056940693225753294935604416838120223911697775090715349892426893485928039005094236733792469276607682409030634996298897580067326397577248271609178973158919494694898816652075083893551650764029546376394762935780655226330269549332312393472604825615970909297875559131520742166276496816302587431104665983759158096140233151731590545230173821184273082051353204762228293492767287232459820746397996117914107501991276713347843540467174295272778325122965655666988569339423603144277388959758746375831338787413979118890632831996241049190927850873812068230922680774012086826524064536366230990729291782612114282725705802466382178747419637564898105677852049382858956513870367002241921314330701625196126264066298219151883963991736545731479275122578915081094954112321417163368636965208211713688323992376388348108285408096976240398373738061879784949815305401143506309551732646493913435487782754140956252988222355628393833648663376592580741474332448085124722338826738667701109234133179479762572331128285954415360152807462160932150348440765227659573391955625895102784656116853365714908992368307708061267141638164992109166270195658206509310480494100912631972623486839144834396698914688458239105015078925809216638414927756527805138382850419478047506382395867859329822641305283154797777702512264654219763865599734844344818754394015814734085995034671757962449648578386797843758242552755304996303918050288012862513968461685452936574441445931868752328894154459397615309228342379129850284967461445847647820432506783310179239105218064675908148455825136068580433012468867349689794517658412364981975622179041433941620253718428189769594807950193562733549005534032662023891642562614433992094166763206941490756881952679966025571243814079917216888332777224123619427308537768779066861065003492667320689869807850730176222928829361080517501237027489058888723411275601730690070589278638708205421772710835644521572265599594428146837103772185780618125108847532382861224447406015906915891083553002302582867537741520743367673171930220238574206911296911044884187720899620431309719182465730605066635270379944367195975190576354791002213658916330948159004630216331835102414190860581298816213723233913091617315643165447905718136849986997827578684200584707587729201412902321489977162564334566782971239675956537529196915472858045356476140518385100152260426265229261349067017028099727848838422479495060103080331369982341462968190586931107592122816204131632424608121622988466056002878175817531480491282100849465719707466709456540338686012921679757803533744148218808346984893999553245644538146505580827800704913881883386617292732392274555107920022266865844063318047623233349804584220001525941460721521540839428747908136281636865616422526355192403466654788236645124713431285948515176832066767969826459732800449200732373498794324909760402696794590532789415101975839100136769015285919073565123504064162054913262417043109397413872656775822120102273123168754452455227808152015564252608647639701611619522693897547086278484343652254747801641714487284459378488876072575529176409165227502078595988568763594497700970998479152140857029920841691568859406997243884943327671095315312551689953742814126219096092918570437319050601530720723447325748009917457526511964634851163579891700398248966645277791202602503360461521102343474798690894732298236441850633668949782474412546592635550118152345930015540417571575569788581306619034767995221802267532576307524878550120618951406545614015992831413971891095159070518847584151361304391533935511040922962397021988050664398367144556521127150261124936411055636764207835983112378541962668316506217924680936841351277175106460433990345470504456084032019843287863995913055257625138567932033227660901578478340936157904095162041846584728905227484178166713757213421874748764678672863840752347542612614620953632922575285638132693414805837684850488342178135244026168010493671576825176200713970653440334562357030240350350406542291908083264030724931169833520772546269334219772276343278998962866978620916448206098657389716831488768911030620949902872449915541440044749912737390069321804548121441695734241824456142651712565070670630287506353960844545320518389198189842971258609395416375592189234731413968469419135982450826916101093614266013690323532719568049540156191564949516370158972000696960541521018283681001624168452560072524507969759718385067890895076835769724472633061334132989118822189762299687034900347409549341068969618576916199469852620711174556971785089783726032980892330604243927914067769598054193440043627380290305824885762740013274321520578049141765723157765520550657168286967979520001152784917071602616337854446829816238383132946390440334006994599417002131704504976975710508513928973041671486426748339560585115507507640534169530839888772237424854381749943855141616432551537949809321746066828423677234314095769326834461138639624586229465102591923045073985785667299154715223435758336813974601753319380280858296352926052701411865460430212392280978218951692185981958716587476545876887730444414708851885002504435039520323869090548641219868005605389684155498259755215144179728183259651960514359974910115015819116262927204942389569362590576161182831495902951188765740608885553113715471820139304869854105980164504031684568000529235199269231613936617737951350957401839127605915768502933535373525668361699863505678641645211858680495016516771054076453587524887682915433866513672501124144280246939354493879804200126507861962433750959506932620750164630588155765770103302936708844390994033627428846075956893455537015109991914235397329334837681592809111272222065136521985337820759860798448222510610688070824439939182830670198495352093098772407378351693514375745048343401342727792964908681125312122316271454055914085290513407745134797503517009816535350086868790019226266767753486292796125305816778414427234908104946201689179589161455006267759778304625856287861230947559314333550425053503561061042201668127540404281412026062961564240132006693339127695583759321270448422166449684167464128164098296881281372300210397075117482450187462715035183488288954344453307641518474433671044862323664689132836036940125977704901167833923301260723180044485464739383208701701023079609208596573598768999326266691939918373585584718323769228451918403921977258708004546989629017449868205327962275368221369032009265856363557967535529208743296964047823153258262536985688641592205736866502730362260029786291990935798642857506234857734782310377006362507215202329462228039888391523903751013013960518797283359253292024098203095877712623041573189056952895987517247914923264373100390473964149575545380065499594902905655752690673632321104425117163489205560981381660016771758102388061920242979201113654824764455086215966567324701583010110682272147527842518787869648106469971301179504977035133239152295655229978159833954325451862470342834798882780353014669708147017584281607634438134048813503469568683913602836759837776270393353724428386038759788696919192853947940125940272948031816150696287321770632506695832494353275571763831084733794505942411623693627686442240928136532559510112328214215747209103384012494356716073092520244285887018902035127730023975081304653666751033718192003016507430874592858319855237430705646723113036901225808013926049011222574943304643109690771832257743510411122240934453191913385970936268723101903579337693237992106664713583564207434843105213614306087275990746272760919490189257009490657276787743992459925635625208742751205516346884127181587964203842500795056009741472204375175767146563003796704864297664175526953297277598742780500257403619015392072324067985464934793506382035292939132376356627134240503623600492289202723378014879345374456105812319688136866052797023585901826152912427825136109998578166469338835921564121378200813228512018478282428825699456881370987197116807231179178718122894245247621313688619642246041725239626792707420180399495574528072391832520259231736473291184705005496738025071164875975904132380344444088007300479211976717891173557942781512174754902384468775316250418684497885134215369490966975503781663829669028668232100326414783097876572757560666894305649354309381195637174451207891398807136842699596472901280858858769703354265125370488137087099197619687102979008990793422615658485015472881886467497671775469417059522816296715558157378735082106846598382785999288828627754181009241479378176221685560520295761452178526516324154675546468151479529559917724821346877168137336992040842393067165737810807524348995039570644276016031863344093501218813561152470238711516667719500612947189993294451862935630043789616051565597256214393262446029602176570482279842946098222776681604511422428955021592917067154156160640596270443190172987236223007507726595527968795025424893862561064187157372857731799131015934335063825435449052722027521124004494485111018524543982788808564699133620493220332748309229812605754863482641711062847371925933154692978812232766308326663523715837093579065837310346897843925391333825016028647655459538498502061164321965750523771010655370297070617938024708569112827433466561865564339133182658868360739843049249380622399062290038841411827902382128317564777105609311732427736230760068719719336236014231350697810022285906494371753550905480349567435440018826248244900123013201352394005589382038493278531812620719397067705258281035452129356779802914357694926796476549516152232226838719977640886831975067468808523416593460024082977330630246116484068084431393571814195932090254703408193956447633095074858952629148104058222066407568975443749204477521798886363316567395398291713767159631261547533334737576972496048915912441529006151666717547594152668527596581418837594091321415022507907468589074713327135057379523185775158863097471912966087757177923978144876717573831101925386544349941112401188056694310976564750195791697784527457817148960943012104607446249418943075009014367010568258850045290220621712194351311907095091457104874210115459678679417346931814011241343175013739184572858916480431831141151887188773206515444208125803734025266875776538181372565952483552156418170098440891256567044236381739484409760917104519641120271321416187320351457641745656522757412398643584093785439704939372935742702850381689677382416108486290363273923545050078317941340265839903824334450427139385809219047625599767238259971519090675895971960032959189941087339205397698838032188354260890729425391415211063056119455380132300485783398793116457171616420810961176503912592094587007045901105510147347809751898553108625277352767332810367981385497994375906408012281576785457111529020758216788693926201420388179550910179641144279561011848727048789284339577531517488174135897445694224611350261427285383904129701745331706561099272272019783996427169204447208249391515053553880397187120217658852043498479774772813105295017971204949801893357978969660911139207869885216603323085139140051991327789170728677035987970589826873782756905888946062345744406793733355663949909129564862277652273193053518473045945815387455318588161139962720829044775301842587122544894184631027591398643901005308814809096175605272509285670886910659252637588343309171151266922237268117452392228920110655870141896203827007463451572621019633803464354318127017057337497984332905878839624775436980847653536438855372601144203557960869161283470839689513244564735421089278719052712599341177315190460095969709977608602780024953157077149275647918474493787331728793942707063111148139428383711604278754384081099387807789896574305385899904661335671093673946691043743939658862380235835431113603089097592694182042181809280516955105328082856335974261228080134137504057788351400774978851091805310198099138532938803123550837688869147094750530722618233483563353614818290636043790509869940473251069036349188964165117562097580477851973575585230015630809357089686270288814623893165279460163089589436676347836624971393004669922480748338567798716253500669879606774209002505868988702120311357664704639589051154339154301447643166406157504260790725180558049279883020718637266053579766803330601643797102064147101298429278603678444948357529723424462481441253915040832149749877949325302375858250958761531563196752605101519989828971806221234997743490666960608651685504280630480284426858289914520288399832126241496198641010215285431853427470451278388126193016918415838904265276114230251081225277506104801649673761776118929034846508181160178516305000512738594012079160325023205742624962600889447217361697019956405748637359415458650425034993412663655572828911677815445029388295977911872787768811860722635168993672197304351586612258501083103703653761838333614001197932023255299507144383462776928067127918748319780427323273663535238903321703490273613204627611840662416158595020261154026887544160516750183412388927104358685253776426086955256406064967800162019089231820269858900515096864786012477078632051247929203015518823805639795258399957838579430383745237232719900044153052427942360086108172493772874411221006966632972269630297928169365906055770595182447246671150825663393210252519337925673337431573407254380414529942706789730453615052771081017478031649829779067508351106691021980928008614763522522711504755465557931369843080561340960792082374885146342461974567013254528242498477992170155955173381829869063726766700537618473396909351083876949561627497575103437953295622257110068229419691397314489325224052154005472291277498998742693095944133203843222649385053727843664699728036268061568372449669927933393756734677693688235747843449727518650095027179076289733878153499303820525235597397903310892094018098764095194231761026867673230295925170706327447979404406567284141423547243694025182781567137434367577451956306730672869437913242751523296805062820517503757487841034366223976676795712674214844504759272273741392215514892404854680252052015377408702402412278696086009563011097980506116589650497904337754452785840496425802002194057571488340834583454074890076924608540097729652646639884512837583472144876117313397662405099716580636762225327780661661004969520459163908094340340487517026791781330479903086689043429345724944712530663341067985637133181828727975727183009814934714971033720426553558045240588055724631594002541113399501403563293505863374447620705306354460404495146109712276613613251708826491716153085120236755314009141321370124999914028419185411816774692823813347108073857311664567359670739145872947997540315077832255230774861433204219053739745924768835176609801986629271597119315310482587016731514408494690921933785970893073710889373845250935060606001869785288793767094460440996938313671795063674040316409448950475706799435859742067391756013908686097776889391240249932499879513945601320287920179245096958518008987995870658272739727023223137276094715766395752536607800272794615457306044966867381077851642100690482236907738229812954905384991838786105717379408443079918835172521540134635094160379933735076627297683820715750257025074084956609145454244026607443010531724310742852743867783493731760812549940248313081798330790387048945729656365710458334520196427790640525227045891786797319368101206226724996540568984672232856237340771843611441196828663250594773893218838586913017371703482767266962064629599217333805418464273546597058421678052268509028731506549994352683611534742109309090642067251232353398095041589706191730105639392245140907189216791237027738900608987208350733073582542710882696890617365363769030961032108843163572590753024416607947508727588864536722734282134168592132094435784798132987081394776752180609838681368307323871635300965218093258399388430684314197417420300546165800606800258994103291747722947371531341599065951356441945181618617988880210432281967826338525470766703774838990135778422103893659904372651268851091079168301031202655881420215941267755735111170003253775928002336680949052707306183804659215582845460332067996861434218464365016864185372999140756468128588052922657839931473599932609703567790365565293758060457094666666704855934352456019204798672463094388538595751739834748109463526028725921629674839686232765733910227212416789983119983353424797308419488318983486935780457383930194533430674758175078004752874463957136216195241118631588395690992758570494111086043553661474598876248145251342421042345556801352200862804723989433016068493102870509331729130948897911045471251945017011157575815990926503035677476715883402116779796575160119798860671746292692728014127424073333037187334476787214947954959933618318739295919179309583757179037154316988277786348818755346900999049194900267878418275830507132825417715600838123608482275213314427714367615231438017824836086971306414299258741796217432710366345074046156940737751638614870803368561316403984199733435113087794711344715065090629142418042250212395829222800443607437842505158827574376195690315517613902902630598177421396929512449127115368234037966867914575088066985314019153536954364699012848379491977120033893874662317448799778049489451946352108763039368258165091230318941647638522564230959205860014097779426821657594231745118882114347647886725332977588238412071242849335353278075733855576716875895678032275325290960982352940445513707337481317015724726716627606764595930260174197286043466664824469388350962257000989698648288246368670700490304527281951316209116625337411330972441647837540645338524737388885450861722430764944835796063491564263652551643132737087503020413678978149556816530359081441654073023452772451561137614818166414019241914655587542740051874148921503660827867211369275343187865875094373552521566401823553654196408809184130882404915891080516575177700361684133567388660440204027267602399608558812033201660954819849279910321486217205004517267887516053870774688514675755546013167811978953690720161384931851169191403044326060754813339877733187380171423700719824287712500310180102447528728750054740060638583663716434738424469446346877419393943891412474457681089493254820608404173889107831321494367337814588432533598412710004268524492523621826775830038954430242051534633536785377015211150609862959646117322982210638834385283088476440194284538490117334308466244938582469604272137235175552510035796541454150640766328913385819934150669760169526064597821657784700482817463518978072255000866134815899573585318213215983744850979840845906146394251258951000078136393592546083726677564646266895844284224507862235176769359446746791730894708072584805202501005784445848403112772063036888223707593323243192177357091751185811080516966385237425372247208015660708371091789800760866607195461903583036919433665644367208092602498785923473982392282206955254960487883199834185416256821680611009320153686479510954255923343916822333410006865653167873750645692123982520656499315705159990583359073543209712071948945836506074508687917354876472264190943966756638394819625413544529311157310886307407361291960290273520477723540237145757228873807684829656248284984243666679747101458481169145854049834610861700408665837490745188071603481223707498529407354282337426186176096180175904414612955730446055150346757558153609180287860564493946717842959701635930595637554384649340456567971563350700276220340743261500299941220478089830945020802311882915002336156800793004848363660180087022700508403271464565248008590288472088197586208533349874771535654256441264349651451277354540139128734308691079518371680970285773190082060031116629475953163078250316897944039453472250241073516034515194376121316036727447127021172607318756340822505216256157101799003253208459331591815805765081079584194975441083776510341949371352870857645841862216734444818965819035061389384710672134084811368198177778410795236835344983371043916391036240127132102376458008166251156918553787461505441062104858181063856563293647856306461393969605927343138777239843648400144549422723923847085507576410349685854098246632043908322488911005009116770187087424275019738861146591803300394713435053640587351054620369412963724218766813816668583331612076655550053895897345449656843007691969696203351252871905025732400860785529816689621606831632879294021645579454114833747454005798555592483680149454771171238255280403116760840056613235919555752434810321712115396753809201213653708557245871482564851751980835532001315211083348972635537291273123439575330223302279963696165503568538739594124691429556106197190890202226373394082005345976268780855461391021815983262611019035548861142197688669405875093070023807642074888885794135853798815655228178995218959308995873485455107540616324284385823385674252866415659853588066291091637074677220818500864739859681513828286313799681644234048049355192034700944424720854288739560905472124585759165133695573674133988873537238396908642624807371192219514475303597759880948523219974452977864623667365047516016488705957526286782119054004827377845291048136929251210922993015661703639843633117849482795279185221428480538230836989802232690581908468492525607926913066028774705092601908889610210264880641624578200147964519105055403924023653973191145816584709096883746793324890997250178527887185993824988322367165196683502257784819134161921206409748792881710408291620867270305271263708052158458653666465888868750570626358762576804361443402096668860355264880477426137209455060548203505508469448266979886599713731008634317492749873853759270774272646945609726641517604805647692984252723510944540978733016592839229627246908031817959486952483833405796928883299560738894555577791581639926056939302536878132582880262006900723927630466621751857803113493668757031217617566311284193487503346588449845447384321875195282551152641999034450696106686550626590015103896029312362162854490016480551986422347821298411257103864555920799033574957649945860237228666045760293441050533334790870271682359971484037103287316679824949496777673123432870899603020435129189212607281207895604926800047231653565069112571227777683711094703119766434814663327235889074610280122012793883355550421756283826803346925756023905684156353976603235403621726196247292046743587074690226900798452974067350595375796493468282028144138166619074337460593712441415322973750055401888278097941219079879215054205239643223618244462956787909704524564037739040846402601986276037460046333546762489195584244493890588957270760733028992769477459945531280106787243831099940691076865619370418799942759175661904054196227233201552319219123729419249539392456197273869818461460442539306326986955028475849168475663714975766607598224003247770883803797274466978238023337822883139413123439697368746257018624727233845841563925052757901350663296994183068690311515840731079169495038886208271230105388835798400195539374410099375848779438908713220900070534267294874066749537732837616326908828049428225394178687110825347405552874698172255165456144984702345157864177268211158158799825067793952148600869774608995163459771756790652645249486878046520272930942772702388849513167808405165711156582161445980114899474304192576178983144454853778349945236718530337197941388925800367723914948987431508616294646124599554494288119748984639837839866610971693046463085642673101509766018626497394663129792272294069857694886981387407474696162582231739058408521919604922356089698580123355917443832895027782994887480565439334295883052323427887606020632235286298347116519684952286236090059381626487910139106177271210389672281486812628323561449258504948177436672009193279212877185119676662408705859213186858888623316623979289542807831877539619822032928428562224188010854666605037627891899785925791400594318067432709747613410387163997333148054144085906876775836727855455748740371087158268433076728969393957717926691184934923727752869874737303916930809854842510147969559855989580214475344422562464244425425616921387522147967107749833086866111211119838103167101009056282421960171834232789258988075672449990742601447441529401174397347984234470655330919930003221572372129240963471435236106100417373273906384858704937699794030913339083538267489200951890190992093548932116684052527559378748532252559868636745689842406735059908519830050667880839305896496274914833340596902698544385144734847454964413022069442506639063596882249129694083972620619758666170417467331394895264567323574024278157302469614249480218384166408457164655010246091135263856893297250825355473419855932611003402265264926614389135377983711015146212529566282855775580256550748381827386705138811851149428527288461206501333563082772458075464684579991099915196842059829800591558903553882335301080234474636931197997764091974429487920446509076001366242656099144735052440927234109437817328809593580396925364601083276063341917830857521233266100947539345733190280605114893858896542601488521647987475841016314469838746201034432380701317714142914681403047882214008390496399783545994114973323977145223435770168090209953508661787755174656912774558184180496170626211491916504445630331026284769504913328294634664837781457448275739698504545726801837847418146408028716133794090464348787674670655119448408306313200107007465844865803781469410189998087334077472818006208742557321639954957001832351461204364092178374903310106880545836993383358489149501959422237949302958039565501165272880591839591483950257017268667246884752144461700574210266991503791823580124816712098723351789313396126431292566309349718774261999670002428294098523083735009520813437822229525920087986156531922713315286375600539808183033317570126930839011280676694939628493463901262413171255652575202272938366949707529790818459878986548867054775716140210393177170547378539604681359009025080372873119298504094525860186836444900214596467216710038675538544873947802766340978534019470567367936254841007350813563107830148321001363281659507628289618204999542719262631686763289270007446181451348056418146268104708114809254687698648906703436681112825360922643731696449407373847342810118173595846537495833273064388642610015925116964851450849159511328588208177660844514512296599557466272405216167505305430122371833161415453007239798701955273079810760579067238513911747270664644004819720833293583953205787085593492856888475798114669625975073485785932193910059211405137700395413665887927491642168023093448806573856924574409702915441331478151515638229569828429262148258638396545018661517844940537439146382165097801659954236236046189076235823704145860320415747951092234439181070297328313842476651220616139292427808011189405128897485566102147586737680861060832574045511298757954717367766110406242686330618212819670917168484767186810436000504528279644431460848195521803304100057011615676718963714424040465730210288073036733451375368307441710620803223070919519121243976832812310117597203129698904627856836695637347307564597905242932860812072846509513115541095989575994197156909580456039760551157672293405694171097367225938204218408814234356382724438995962163650688300047241648454517109102005410911760469698691152285756548774697468613136609388989849561828869382824766204495997136145354713871052838834264987000969992764248348105517658086786676836336355036072189310379174194388281710700949173176620404031060549870581412112152157835475045726605345066046774052905998920192689528423689265342750138560640833454282790898901097504996607377911680304212879161803670831913544023744891252149998255579400528717836877956920548887006879945094906401339461752338660003394454305593253271563396325082291725031636134098799549425383004585436843411352343372247013558455679759660850052433170246739499341627828174231887848180545267249088094634313872490666263822159324609666527841036390454954201737547168523521981905343556769463532574892219125767049896464960017331177766409035019873203778538779691878932078373417483221860702744338731002740762096732323521608808203512957953059333622859926780273470814353101562403774055228114578319399434310695182754934916763287889863894516174794101425247573720954099697173382952410939079386633426905607702949617087340316295956318660073552917297711988515120618883526987994455266394085931705902034678112184895311836187113982025398094471166069094922584103439206767626190310385275372953308758333461754976119848352254560736870520358647048823821452800410515633668196683860246154404673321175807682909009853051173087043349056933363252066614540968268581689440964652833840270935673721721980433625217949187324497465198443419324788013680296944113699982771055502312280853606879843152269736731029369134187906251637806556441905706252825522392780918155685269019474494988322126062414866776745725908517080613962844865438594473574523545107606055929666607834369130234171388463988806218369146332465390859725110698537934404136493379169878071620934012456363040607088971997545810175586460574888749731635308335683815325342252470440554997926639853230536236787374262244931237786665848189341521753516483298207013447068444144198160196196850046690307922751653661214983478833255112838013815825717549858037605616975164587388334284226559855447128673698253360717159951823951696649221480761745979183851644638115774580516206404003964513237563312129354942397703334323675534462885527781305142952268624956087966142457971786794220006032617884954997552016504348534276033231015718855523170481606471252835797811732210695019468363512367397593740374437175424292661831784346340523260692653117700481606340934071807499273123907435312842770007695996585222506568917075478511253706096786472644523056568633787861104674591264316645592528576416460586064951681162893054393435051699870983041115373352676105611433661483150431398096437574011717160425927595899543284414578689056891055202730016662688276770984109371238626359421731786429545530235208325721624007792019789515540293426953952557766137538950442854165321009996930646703343573353033270938592852988272386027444629980505215949899774139074140504000814210645764528343639214542363875592542212506337197709861633391423460654070866859699539979982558672675139082731966805846248725974494510161342915238479496241008669719956325465249012652787843721487894585526074239606393268202373532039791754257287667130171073852383530437235048905172995078507476317882034277579140553381859695932299597737047314548841468400848784878658831210489132100843033090538134805988006664385790841875650912210483574943489327547113894857996137275269185347737829162891741031952432109029900299370045800473237056957053717595240162717748878241707538029992390656017961239031117381350198273755761199694958904862299044313699338181967259270977229955578410432329528307710244887095311851331223371360808385207783685329625718195033921523287012318720059367882511200284009839748795421685338802246858187629672683878939627186417969541907911996354893166564177759490398556279434604980512183267412469746109421887749120751295562921666276013079068990643573943475914973052013470299047221705458638742349647679273861021367574837612023485343476362931743449110019206535986073357179585357233442071725208184720892259798518779803635562070722969490830652063380907294016182800751649945627903971468236125332668008242430341940475171605903401085519733349207277740177415816356087462346138899281563011274534582744441761180601064716433000195357146143060025429505486429339540900471794191709270964614980882015029098809971098201225690637723411902912220006613626785675022183016827571561652717154213418993089456888057922840784724241819290385982817158576523383509785193379007100236463068343195884366006572437321032484167600677402360027217108095431565816428627817060407532872130686572534549285582743834495071127611604341910354567210171345036196454934265554862941828308517227757635398605124911460429052677827310306703273909551773645408384011582298565831509389637846407170467967392354416209389690460665514628486930332361988011674024194158066175819472849994899119778383426304764592515111148233601042482346167247147319610764236951483260055199791881497635164390847196357783903133981858122319394553709318487408608345450447164125966807521428132354093966303683256769793982336733781402139658575483083403242026128799976250696774865460025744794038159952597412751840292610397945153393645944222203209598913506676279591380058396827507320793348376421455043902960778866430101578411464680511944536395673769004685710714271445087556998835079976617587657579321700406682802004607010382675884782114591094354254142393655272597584168862245782710734507685850765545640444344998405902556833169702534253859637122754289417208157922218335543271451410119852965422671624694738608239238517775596954822111561122774649823249463066709049911964691238039219550840437226679727802672044477704166277555061542665299437869573442564442248277796710895728917468178408444994610431251074831438037165753171091142847720997346465195839627556548155676751570116127175240949761066725854564074644825361359740106954670741575353333846314176307929774399397235839829797416427823341467752966156400633002288794666881702486187962246403361797284759462652985146995624781818905472587451171216119642603215589671266175198534467057637194821162426510575296931227889807548640965818528526145857513387355274597240681688826077083412232007023790927038809373492169853736159249487028726703939146688392130792456201563553875721166348834845392304977461601715452760691026578810470140915793315453494651716740761984988042112902991597889399001748943053626392423722692894455373476535712854187268595016691519586035756737378657272637954689829030284116801415967151307673046406653755560549478827065144187506213964492819718909933878476745918138872881440979002950183454606579902542413508831053115295955185899194843721629014666268357921851671973763723878135114118233952449698364470895394176813187441908818701994889827809484586717177997440461004861718554247064493563854021177122164282761420585545292685761586120040220592918953338654711666683731492406994117898362513913365958886550654316828729847514226428249224947528883496654637405741118551713952524090688987320778120154418048959372537057978649656373009137440698363546572276046909997004543000367901645530637232916946871240184938751049966181005749404132062132131267371717733618949344488728835117968200033235224750533808346932090328453666141455348319644592870602012920045079142416922947847974488802560258516008348119882157646140560872954862981382987560440793964648631192856073236586029752129482777460595562235210560877902942646638651569237406233328003679251650161117284864102733056211908756211115594543813350228343227581726006249877376900066999693218713192197945989787988154030149838343030465139052988404561803356544616402806949856347296355027514745672453540285228993054767760916653345270843467999081450623745694031521426189243190779881272814409984682767771597861815579893918159469245973468589535936293848165599581765337651980216694086596399765370304698473235960854484815826090364280610562584700049983058663383417511211409219944713428186985644270716077834505803689306386766982472447228264265033435602629999073307439240812340582841154270563652152622511136694199088666624644171286142523319803542787450170761455591856241713851055951171262805335286771983933103412695145832487663441601687394017884441396794986591504875101953790640247360478223503474406862394420898949786601856839748547477759438069211962181509428283484138902665883811606362538686541690259972859763944496190450221440566303960349917653931924082900027434208004710607628409152480552158461360551130795590235629915864596935409650861158635206481823124263219998732574395018646837993468481488037021575692205319531026431625599823947938729868057021776352505896095859955391964475139764344418352339424401494220489579356531903183875860076893992989989440151027200229059351061136629665970494060335004807544507988422001736320105542438682422876345675076772819251354023369295618222651178121474290819666818583833126233680943950631384305558909057400204818987851261261562767813111594837776843196758376805749709187048003993021223092400631845432944787057791656406687471965816637186061893226529484512636239221396201299776854598507368567249286716542043234740182747033231528589523268485522556960952828663380007974268782003552623444243335343572420614534887043409765820415719475099585829384437576058721554099081297285550378224507663891753980640772929434967034375868364764602842761963647065597772831365147215772788786928254277006163027947280775243231729844400353264112637418449512792495507739325066815964033303488459999220680425692788899444580189857415068434342147567603564152211595177131635963006957160576276445769003404821295162803524297305109122280449965117796261176533807782132306811776676601573418979234389576966500300612083547087282020908903184918563807272566254785598231593771405074152370302390778537475551425494847589950678445858872176501930547021162942960434154564820261013336862585225457698451848446118435702141736627892419520432004502566225642755318039263722280510237277392537980464084307337577702332540697606821196189329372599489054189679118816917567941384110226098470801883631726471961969475473867027349253786681765700670415321465412277371537747612562067360402369712268284190601738155970331489905048353682156554374002583516217812861518612183286094047422981795877311307303405297601709865575314581882222627827196273535930973073226649660904447040274544480568505395906133711051895654016141153377278168906653059226792369184920764433539664834068466547604984981887957848612097792355913273454538146834598772024638084551787703669692381638412336244818726063052228406909825024820940624041391187227794725348476631621941159184742239729796350368374243742786785019660196987723727334361533842254056536889090995203785899658170333928587347234718699657549770032881141499388462037101402947169760186929908790839401106472434120296088558441691478589026120107740694129508773574484753553535384188767619870245425075648298559187219325574245745833540780682894228779583248900045366450054250119383668312486984938186446067536392996909245123625721899203368486719398618771229160729179429599498916250352709095688268784760665054754239141153540890358555537416512305487314930128814068153861308999670465870666978042116799850644429995497571999164991188451265373524373372056540227742113981522099377737930876306540626677465645632135742506043120043656826893963286934748003188684545479354248663030346663448242787970470820410179685419524474207084958119833587319061776433825088804533821930706965045684132286039664017928372678371682810329648564350281667567049842402214842303102394478852694340693249898916296015872636463625787139419546594760386792430968539887035506449235375710307892811684718528772730447905680945918001726514290307711537417908778124670686495431347040114973059544725577173945736939270379020980660003954918027696770162842130811593059814743342448125482915565985143478266964859806361330945532588113674100007957825134288243707508564793398299027538947244237706151947054506932622304826091938926367170685106198285170186328545366316955756890309792993596239021005204759867551672068996714932854618760132416580294572953059507192559515919954101265453788920459632241207038855464948805235507075279279101091734702325682318033729709172525897548838542255732200970677204339577958077930684236035382518764881146468628198754416360662665658681099367628201878949397576191465846585513006627367558090748849313065995891648112486273732333955118975589443630134957496993370433650380296116811594054106017993836598973014807094175683330839876850735363824532390080059366103737552850205678691212742058678910274702414160740005060612664873994495311106169430987341242251465834140974265563441697734734809749893488017476133690929872705528023565534569468828433219110136289110664244980481398755009159348914056767807889742836016746978799824439233300629484418322104229819140069146628227746440312622029733073480186846417719921876112199488738660255443157262718939918096635306390732772425158541943554211478369758613852496418654340416337107386402268489511728306471343143787822557972124537664435402265222172611664198996840340804051773154013983512171884785255058370902098329000290916788401472730234631051121215326852319237583749133794714238989733364132447909365121222318113619764840415810494080281079141962049922962666879465393076979965516137487409027258453202751060970655687995758381850630329509266780674574900259537451902145543466254072421000229906803663208741492664960032388514752211915602724320929732242415183299252812886288122892346633462091543479529268918751199339215108757078283040530274910793365280084181312133236965755751109944439390133643623451626121468944786317040438401560191450994521727177502086931421284876958485254636470445449695612347686050150517065414856936105158685705562609211372870059009453751319849507463408331551908289760848903657213912244959346248705376472375921772811794880617510391425447675674128599057281427551802976492045017857871310066565312161471570938369581866148494450168580656904421888279586193792352069143543280014497488166348127134641698182650620057531896916596607338138156332090485702051748392238469701678587511746927371912666775538789403414665879134884405679326349061765964778162403567481041435814816468408305042154486533920829226203549459941894774131740327398924043843304142646750281432016037964542380270923324470981020237153757313946505365266400155699909713241828043762063747833758936818941057648935408696649626059340448151260179006756051907387460622237590630963222287164865532286426032156519208317892196332867530840466980065439420252869407996067111154956086860554735689706085380182796098034646005299338866971591188864985391292290288601345929815448666413452184730589221882493648753769874034915180158639845468155915301780810918845387903124978503597463347045274819561752405714929618908785318581555452023595749548347586445520838917998736030789295683484236793569873911391389716094366896352886655616348828376786626283452172705400980881347815933594188249887367961659871773671175599343958679624794818943949154327013521138599493204258917600527788448126559431682623477382998132142303752371573539001626285958150926481701273506327681196851879390603034302936171997886265579341881335483860760358710772620776036688873036780930023902114303601040111330310073785254431492757938615588436713196602826829238740491067744277304332033679245707145931296294960558297239742744800889864447544070217215689774394223994394968483251408915996805158917897809705299260985839909998575186868645678828195018309737048653639078690204456051075487420180693755356428791031474854796421560569204659038716805275315470545948772933867810730973216262312779965657993820962999928413141730247551724724222402368401251873568691087173787685583439348177946214388811871073453705219381405600140600021463852935194843025989434586500301737823736822224105120078031336386969823012569933879490788379782957643167440574720834839093283299659820014594859145306809349622376947151957091073871014828382301297526777826634702888867717942724366054048788027708550123930846883094049202425163795586687843602097958282087004289050248065098646178674378246430350016011357796820704855315478399809491133062523058668696124914960369676283363019024989786606241334914887083333352795813550242239352578526377861053766876284375967460375688567094016641661702721636799512751567623715054566955257845773337671687436663445946910106922222397358919336367416005420847902735959459887195468827608341330035070054670802482198132721850053169096898966348766789970421023269743414134447480380047972360314164398942634840728916252839207920642941364294944437662765604151521949485939636336387029557773163106929506772752779522330750595557965976590470939168564395302178680879726816839775605225824046430880577506610738849050685507406952688861474161388890757190624442211503715196737750274403606172065925186295608331308749504053629325760945512185349311505738076010016107241685841316767124635724448179194419263181929541154886393188981280669187349661556692933463540199373130820146160905973100178752227226767172486283906644628961424966353356658503415399634086835283401039922872221878919111707915353151223844857879733944736672789838127482359325262325398559597304300552294856935846128764514437607842389618280352097543637176568718074135067812860736443002247247965600351611803821405800551736110950563541692464217186735303435156962090474821595635249334349214418058372549069651163244142356651526735723686168564536358971173699390700880320340325918524679648375520176584999960155981065367408060453093025196225273926486852119983391076776958367180573131214588450792110370516027700968696803800005783504867341161586567948923710905793486604044729996136239259643603293609895498599354459788288422452760637598708876883999261365115743260846189713620975365240587346252474896033328928188427060587420158788388529097932144498272297099626237266403044348031826655951116905674635069865055019110660226804079613380947922272590250730462392049966419927831816654277673020227995898439693576392073179537050855226993039145762159072614107159853407486286681951653270288623098701181797532789414837091809860320630573330592887890940983598505214030474333379710873264391691409115838362997232522314579193327051978934075771985308059797997138337332651974579580985506443287399845107380325935893843970838756966690470192410267364432650598835558322989298506676375074012519766103643267411009987122870558782131995484255720146302524471034078632150361451700012552092122572604900658899405731197434922324248585713677795353914259306973012032671614187116296501235591574884991716727477230957884377610185341262647554490013052832646416102739171298157488171540312210270395581686544605261396522783844483826138987931472853254184618380657956409551366102622470748679872217772274654124517167502922591262639097930840777326470870989670695273685802764264559949187714008554609662896734261818107329177772534739418328112537826268838942937487093917475740616799744071260088668556340887041967864095876114364760235776187582102796102159892410471415843360338725108886984348200311711654589132499092494215682805146583754462621360650160871512974233851898389587702832983103221234854715424741275774034302820547873797137292680168313189697525571193963011904692531869465560585336999325583442814134518833059100669060807046958918739468482524843811148070630652904069243741132858974631763619533891042386160702891869526082191674972469544632606512689516495383628056987276820624507526334066084442758448445728932111965192451434621163154731080671980891297172716261390054205465071609597552302545729071054233908831212459643271273373906446179562307277216482179326360610685970035768530938704635635938374708263480904299886207939006732875123572106224494007625377614477079341874335500237562939125916877881616122812666517384437076001915470026304651646014517422573497485591479225122874150448035942088468797131600317257945099368787564009816109642824389953092962296816511953012427110897798170442076698181319787005969562585897220975491230335741295342256145566063503979039744420556180272447851639089926747149430603821172022553714193398808578846312238107262635994716071596263264547358336313040439709143465405013314194426560862776329530113248499281367367832158636062974907283781158699156348478324928947957850325548120958325380709188844098527082992431351808302951464881146243165093679900806338127445770396262593402918136524093394515741582808501600990660481149975871148270154259462954884718242779766194918387846652266590138862158733311630264611130738933494937327122154247481672829756133885960132395094081842326892665811061095974742453329582189137129641231844599571505382416168089875878138916235345768531568186521544931323234074513930968652175778860177474779287332121976841364911760129279298150418688055924941967300037999274900820474132153760865592312382103179116708151500576595770291317998188438639072046443249918680736518840979241338959552940566672787264311478871996275713863299251038637370049313605783600523925584249157965603732896400234195672878378354767399292405237586203436269463315501424115427596509820267647315703456719792302615471903662504878793773451226731892412664220657314438317655511863386533813561229266387658188860681715329864533675388564457058050637904842684963140331105828062303357999606252081630144406164811622838964690170275721879498573474583078831800260390211441984124466479201313632538088483531054053822819552267707889340862955947919751518803851476331019377664904156449809240786595008363475244942826802698889526478856412192874667151011957106600977233449398627454155160543400311614418648385458172241617109005890123953085699990556043069462299311119992491634667458018723257229269573533329708818510494845288828401512579942144238872252976693595467309128412953908856429352202966195589467532402734871474084859173576229181245443025142389297693400784221002407092147847857357065649927387949436283355642002580664731025353657692905621504383108752563984152748753067950108740413311202541183874760616959195611372477721633810872583191295118981025600805649393632541064031590934495966895250697907955318673350564548251045971160148613618622215046504249416776565569588592167489588064807843587938031412201507360170254431090145873958334513544979913362723563437093763422256280560195259970488980891296947245508344567141130912903740627421616220941771515710499018196380182186886096237134153781329819628236911584394260207319558261261963577502579778436985855965532847985291763850594404735156657968517983613468690951008792721527284771224676768660787408771792666362575736157410460923748727061024721978554195971858037953475310838858869580303425145886110495692315533830619614963568703685963681055042333043057177922599963868480967183834407078260558879957080728598156204253551094080869821140761155679559764692232126887806221328040795812228937017102918095869044287362609134123519509672338115181375823830094798760416495342641179749533618330608036856293206544977483330811386797214899817181715200053617980070982274992086093263479344513262546999653796380792431764479262981649906855982429788770937636919556000311643300065881771482315580748112912145807708475660328349781717546961358417238409167113571770288924350312460363764991542099008678971240821848585305359077149426500883067471488159840525101466454240926724974011298189938995513514029600646998045261528714114545216823825749784236299137021410866535408521663808934451894743090977728140494184612487236953349969725042091176854029775013869225791640138099248653919994484618255791505242667145435964104489492066729928585077002060851624399126534508955290098645373308564590785523873656153042847827557747359280712488882302091997155259917458886267066809213580561814768896599174944962292906693263712570639855917960731979961864906507493314142496498195436896221746198880720782559114065583764026162614609541377756256950545876742636280868404370318333950170580136485199810598313915700518298868682327142317998165163236287181059059490612753421053633887686923939281935947210928248226666740712321765621084565369045227845576139741822601742674581418536993648594253730588196789278582701427614723020951291136936186750514919787671645758159120536290157066546419791158059587294690082316999211934791773047071309075246818670390300108491710090176835326764317204595406827264831697040563606970438442373374529293491013618702614238165137293831184397556883573275300781579043733025698856313382751568408956839827372982093424655552716899537127393732040160047471015170271930191969115919508945359879510557739660561121876052765423440817379845448253246590581794109922567718199307717734962935849187554737603855370545761833039715196617217779303874854975744371787860062253913229275500825128512638405526117011073948955283112325178171392316186061564920644373095464683508316170161256783619084208938504115109669990791572867213608501605721907626626817717560954770430765618628034922836796983123473942380460128633004772092487189502434394363080298920914032686373385248921187119897357582701931658067157942293608697534338269368406112314971663410705407547391672504841285863452758763703483042937193045823559527149250627988867444812541293975917662212504090397482752217195696577509504336629158811065458751001914647874495258393468268031718441087213352184261648164141399390291535842389190904162743643698535597098992802038049990895155383725054364222508475554015349666501706060078809094517462817726936535543659374273797808832498664761104897695718132753385722069538087099267201154266630233002869454922569289259643637696101678611015749175021241526607279103487142630692104404768927268487999278657001324075364100556867106790266018576366053268058951637508040583209126375244810906721967012967065726312027047533223475937473938417958749207709382051309475522539669312479507148171200950712238326302877569601642747719146922737557530540299743887392180230312923440310337768756295786153092458740534644631843048535218258677766023146197423982190719245088144144159146039283903216467197299761854225265078858100929876984228535741172209844471072029944292588169072798385386369352241947803383437424923387929246557555790810813816098488158841435039641217598304015772136992193300283904232569419110087675330864376794521809947866787715130909308057109640565327932861529031273775969179683011490218902402864594091103532727171076595332887445891724291725552467241314710964539768973007951926061459207984112327502298663978777975998486360563636601836524786253502411977237559801581156600146940300781881567896429315147417110007805735293126316899817706312399747497642104463107557864098582785235268750986205440639737841778906707813400153360855798145984049892763148993083552223601985566081606189868506193474465229037385096998865888291978657216998156410906594933820588857645133020355529544102870264217609167457447157896378302202269561520215924295941183884440395945564544532249202630462303844663716949385226526082731856072414207067882785886106050469005024551564932333551868277188312589182379684408707781318961805544446517458877376864084815388343138309467779025837348357271077749652545256777090699507473937144553269883943496333107931942109001810952094311546012949846327553919728510518070126345458579683009828221440002288153689914641530821344657620536030907298907940044119856947823913374258797228559832181661441765062081964158155804343564105957695199899209218471592260165546382353424525351245971269380382416627051946595799350565976521499216740385328279492569353525420901496572439374746570651013211874838506937784384925110368800463838026738246214410067975926761524245564757009144693420241520229948877297300479876801944080031470479374667944240781269608908512379918746088048938849676726850724945260978272419779119388521305107028928890507526704902863293366750928008156232011233213030410375186865649203439805962191723940982706541738519758976406429884725362320994206970197406512798593312150620045178561463961050936160463102851570922913594601756477369630111200488676249689889453552539717990340156705315422577417153115124732711620140924556904799808726854498431704256779071720285430796109313015093071466357135690398827060104983743475609982301059023563358748654092872646432826293392113993205508173990034093326686928552479196397874757257518984268111123561296846037986830693214288233855011879032535402120021175912356431851005908962409662776821860354753519248046556247802385724158383972270617910438637698193148198408911944818398079251180398901314488021087731189896819638963340320185902209438508354397227994426457941934837834693265729856877382895116034345929668813097856280769050926842710134640428027887813207703955944825562804551999849055691491933509920792998327373115822920889939635925358013080256109795556902309550292045584260452529627844765631302386638701688992510725788695241733089507367088521995626478737798047412738552456263456310883885737909369244860084669023003190816640430766328608591870945858459346750528532568704172594658702381797488803436233475770321419975307594026472102770476251223487014519918279706909315475392708307160468236161444019356279444737426944222347544828192050572740764320638647243077360405659794423481607649150638972221192054991841191232790962756503549477951832584594293809716831620851473429610543628576642568289013450827245913847049383073001849333387913068298022579191425899279568105820190034443780977889752186881821541323092260727541985962855666721617505493887842337859041849905551097341777325453160460751315625000097752630195098609842025951529564002544124691605755558712098540302069047892980511160808617661501272865824342424171056608161994069519538701317736697693589027615334709394306827447908739228064692421518000420771054040397479205031546733214498229363762282388217788760099515349251563522470813411357734085775791561989764053559040151247053884090072941705381267002938344820113710078029830559717046592777745599741717645437342746455357031538283443677090861482212115472521792064215311496151861669645139363427064631776663724625437465788700845274918872746156028164458483373172094420560126696323302028845183080785181388681078378877110280387365002594269058146526507530626888018597020796570746120588419785618994794271351159463605221401561859906866914865147561872769797123872198038898479722458395926921821533678770973443402969857034447727011497467461680551476750813234853339994775578357447381362631883406418772004624163465443919899881175195887241546597195688501769786303697028256587593978040943844385340266768478671366587392035486510687977596246367101084898289492009610245943965398368791900886633844884183651954145529762119650275185865856567701920087374648674212424125911179408263129560351012644659538495603323508594936220493289716619100354663066037239548265547598515065106580204906274574639157233960529904255476279867465688733622023828373162524107327240070917256073882975311460067787549227511079030916036482911562151592689207875688527477670095417945745088193679601246109814156199702012872002803807616452241591965887650734331394708076343020036378728412217682271532661804101591330451004255467828575326585717861675787353376876085173040144021126583757139229567517969083752730784044246694741342937237391080063104718513760863283053645919965225861786718640689605191969319055148604496822546283049184100367188749931428750157171577704980560157810359335957090468807403943938875877985657425874194648586262211497416825815369202210130681099502543695675295916255047840511119044278785093776433260420150118018955453472409009092602257882628272025875848432621437017656760000127664981611198870477376637370291208795727867833706931896541969138013646060940807784264358849930509150067552419775135393686694545500624457682040012062641601206580853175585002035253166374953100567973723678677030610598525098233671160156526724986005811308118658654797014298451814573120258829070105816797896109374516682942458675912262486155354818487452559664389215782843236969940152986748867193768760864633135578893646297044360536850122967407421214101960077215972505507293172884108366642214753218300032128637597421349341941219805342119695863522107648569993954595755344263077976239478863127343811502055220228472584483290355442584386683657654307602931380556942096744153437401262821309904887468104742914583077707834175258060136292408027901903734351510640189094837970640248220139370004159028713941276469456347785702385456633295786816539299398743659688003512196396093993889153717287673431707872745082820742513777867833198501129500065221288011153526888086515357037416251412493718193386121889702651464759371529445522971740467385959227871329012825557379748143594220181732119274360767037746693466544446173202366251469150477364719663481993311308058070272265495615550632048652634330229871605991029044320913819401667108041337034447719185231316025657426763965833925494327278069949002629848672154104683169492343928784662572646117409450338647565029481251121042196800435734363225190201143986913352448008068940577627609168515885344686800320736685877706233328132606373638596270103411994531522136217628933585279255664488921147091462228336493399232683115243983959248450640076814596942955129265000430747115544326098914722824478398666603946414910633409480955297806061989181341907337029928533497251325850784835443486465454923921999202872033156690437901366909735472440325585261902947977909768365149286852879375451631022360857070315855112770160561501898144399178590804793244005654628912438150229194879496736759987114306646234911701992672700534830325739663156714113099580377469501433862180280607152727734704647838166925743199871572179717092097447741718852965285208389262988564427423451748933437910257289454303433505867690080110767153348220946043641400325692470521899938337883063838342953477276988499728064299457901985142534592712908015511382597814322925117117903871948953964920447141541339469206654469159647313788105294800451751810609612246503917477327083098932733252792397886258092949180589201016035313007315609037861072450211142492360932537750882951632777894665033849548264758044255077301890098135003224226094995364761798470425112522343847132332884213424417866900375708939427392730671700138835117795409557815141039501428444906137713584190449739562114428838975592867574537887099881022758797718278496562418084170075360833622915292475860077827212622111332362239813693773656675470123985741639245089602502889127440528218083321316766611272349279883983059441223467662932977078269216586404712220350974152208443500969153621574885485405784319358306521429842054724314812449640878850071289052983506805192326524643508037932977385451014979001718696239856284828106800304280035124418108551228797158938048480356788866841103998788857356901920099403476454927576679269657000351814067300350074983781115522217425410539779826740181259380400302698334045381981284407323303221376568163428482385569704521719640627551043888948622746114328129409795751656521091699826124250232321032692843935304967217391895334210743257187371549244594563968025385250657334436910116615409819920290632144512156426471103661905616966178309747206534182168215950343830407028794463509556579870811773035054405183142384353999791289622059755608785527705282699429674742386900691242296474448898573293496835689472436982812012604925761741899005507203474428528171076305184934364384894085298718341356572350985834753448857368630123276648373252019069063979584428956290659000892002302103595703545348128002332305805174644575340795833752786794259330218762723306403622125343135911871369814188924583674738913994674171753585525259866312606274930243915318847423390802733611994273922766861029745894583654570878513187187858769538331724115985589832520563963639523695169979097214483014798774003047749978168986096760081943616161344110586563230515808133159235031019206053778732179575952289509362146480678830032403632479930889980981078033522706538570858549652424177681004381117351502223139943530119338463940497491200576924746724530459390193104206050363784389333112615117717501382835383248051178714274659554085252568555006716787208584167316363592863445094542364637819492300125934264688490971942086035176870439361555479882518931114326516767753821166598043059514899086341894597661732631658907554824641050518250494167018835396169983146355460732626690971440219361580497878812399215615622382704110690874794123194690722030323092281385464240517713241438838219971267981779609675739994601260461285771447248278834850682701318967522215853344760921007528983912149270404544177084986859799467750181524911879233378245068200284086895896859323364337968079441666132858488785400696451752934479780899188681052838356803861662114921574660913065487359481615585543277555636494018038245211783183813533668505354461445697146853407863049225516522417511129149719190965317692961004434366430291855342338287130102374490991506830389472655821435952163394664617426800718085515588966169541357035626146845011477391295560049364221563463691783875908342868564686363863888153125436256457052947464181019051980103117062200614142499552776041358337183950733725656628504484467662618822312224993060721031061915882422093817887303886063738404113049007228316982424998300705764890684424385873238719993763116872816770588167949458942029567387148305658609662372679944021022189049404127681038481215732748667690818248005486316987507736398813938094255217915791760500205962599595112334022779626082052770187282805778732591998388520865866666424970186480655501831822819375139694538619760298724519527264452822242523149545970763320758914460603413225748572383918330367264195366143181454498279581278073130866757580321186362297382334324729561150685631832351165457261035851795005625572380621840647750869420988282249071185172650331873940196493608794255089408316895608411417236018544271605459283996870041106622031765863644171440538949155094792554778591131369514223903305147001328943574545285167475110308173684119324536698345830627517348385865134042565593965853862939730687558479921795843308505421377210647228867333557661730175992958093176418753712805301315204913655576218413319632916661536510780546269743008143464816913508147283270055257716666383589561096411436319968854662246045218196832839930695274753010716270866860276673152556036646955885209906993442170172846323229754882170305990822445134190972633326215428252445798733581435479684167496691117530945221306196452479333833059591530937286535651503742694390928119870431554190202555195613390317616743635148969596280870155576934099477662680672410844699912550433936423542109312817249198238344464536962092849781952795134534289257641254268263757271375296164679001307131149657878783284542517163447887330363160511283492172322288796185751359530992367986118010111663439853455889483889758124052140371838503205981244958116060387694953786445516405206900881471023563376756887031380895633315511825378413815903252431663686627081634093867338615644003109110723940084660275920458809221751868799134550419043935636331811605326948866704884820608065704951973657327926137286698416705130307122520925465458515049695367414964170840433992145960919232986953397053379452499898229601451616086494646244723020083452577766970024609299053536140381037928727840853592727275772160849378082097138429804488714100548135340038264672263961627098942192091836269558253747152313026521315216743718849002096111224991791463289374451926404647954506346238328345784659880716753899488818543786789917361102940779329079433760580146680396983646065567845254258195403884097146223728180786632551807301955737808456868649270153212911048163270466633423548350405278143614304772649278433296599876720099180936145134939887833726953558824737003376160715972705920878220194369520426465844885143075546080275129479476257055010960137572154903156863988572365897706813715680765827478848544663725698316216336599080398782246149649061312654625522100002143732145083346492423607945822355355873719729724069387194465070091847307506570767776550017219553504075686313014717086054051680206531466502306224433871715610864492167635800037791921315184551761071123850401171142880605713491723040620077774803138425483139590851318217940481614960773078461597690729332935805162739238053279604997260028403049918672551423671306652571134799996279187145086566168053423761326078771921903285345497100752808340725146451567627445596253040877769372958921575217960347240287222157654636558434461869026078158509360483273033407522035147825264043600896043453223343295529594005556946860356564119723586723828722278836223665838914644912417591827981232149755441039068019609086714369831655617109259732465000735760404336121557931048093260357954740481495523966177001031042469700952474733753206218061081314674475724640718289126656664660505335933538530849066820704019654355593147951694429540294257770654915048133162669066283307917418926359441298714348239836698791119392094585849732551113562696644402146453697205714517486079333229110997519788253941862105329250405769513901127038499391815397964962424523875519086296448608750798646259297856092128699979563954287605992882414615933413705424859690012652241426228171375154835805216771456984314648188099401543064281447935604449720271606177018267845667316893580869851152731739798006807645663162222748065166607314783061720021160249841941675822975639005837286299796165939437067883613228827947067770731657720153295614008092587567244786908030308169547915492324012932926720357242649422850371346866305425864733623333638878742240308253335591937487461906355863328444131425355488300926544565195481456743806374181796142357287259226186176729895106564471965040588937888962481110544053122420476295646479070299169845437568797217956723326195291949426395093880355733563369108890199923560885473712856206588703560202040405073191688381238451181626867391208561998577526446549689460529663528286667417103464506605462543315782862415626098818242046121314851559413777743970679985046378046366189685816293856955292764285631280301674729941194362822677360266234792133318326340485649231382224669356787530111715718208211767746179661426745869291790702731980355398432241255280389426830321071798758554211124418609575738016539566682122637574602010630250499202084160610051277205248023431676802996273312576117839567498148641450443529578635498851193124593335329796937443428428023030295957763560417756394349682896477739328954505981310014130565022716249910550290631990619940266539197915039089844038650498671378368223874533156485019057163425502187294592079075673032289938976119097062514967990965948841671058916356190721844414950338321836424152205165921485222611109882227656967239871866538921384072430189566405412696382744757901222338868962923853953578807469115693430066379485241740201868606576304901189881091935260486259200926564825203815001719829982190583611265132628925953571944876598942192919417947041205182512477730279825211583861797381436164757606660667388267687223778687824477880780692037566395382978284007441568102846777647535676407973933872166855037591349369153920457324183721021962972281742410913599159877850458660004784723392984460029475823817336536001432892039359794885153788618217468829830240186964792642876812225680055571526940667416327632368373263461475469035104936143851272347719232840272307613096980439679628502483591758836259386100510450983272986589837313340718252757686829568505926505861145454514910736279342009176692754869885519670808395402837939532989100629781213356199691765378988451615428883778887207753471280229503404720064833308603519722531859036802859977783316106983608665924884554487788123084759124790028225821744901953033880734057014551871180189568677710119140067235943186001484940667227673220636628887095571997389807428597750673752617843098345662651216646050638497145679011428875700076913832551305361271417589625432844379092208297478488449902011695183426685523005908879045718438198281724463161602946091349357454228055279436447972445514019419764184127792686292770710641198670887855303180357992988619728177478800817793894441656632819879927342378096994015402875605089004501083233843966690547961504547701102119967252516095057767473068319384840689142339559635140437039657025007795753144356490350908223916981976996967638868089149552822773088782649802924883120862667425140334208085362914062364862678305855366692740579854048526982419405815525988227221698049049691500589173251733371234356081618379208392014824514781866336202768118356283613987985260000679647036286665030143206930448205393868189608787648762208808400172582794574858456591335629956993523606949235377377776093285295334137350359396117526197846254889416852403934630807508291953742592723789928418090070012415004334702537751744778802530742268394669257669399971476001803244038994178884945629153713378980021623941809203393238251025320377754763813988970499652229218492099434374908496072560851249654093904680770963653617738756237657346298607845656857505853664594145752903212034955682510871353374104782555311692429212996688369226759059323559141317472244949704311009548313042627646467671495704876149323104075216743078167573040714380358664186042416662297339742502877747723440514113712677396902554723304190226890653053190288294848663674039346066055366259429915824887863550466230310998042141566428904213747515530778232399811458453324807859793126253355456994379431233610031813145887369526171615897377503281427964535593846621446340473405620139804636087517989791904739041547248243502603397823258824616891166003183511591625827633803857343640726698316354844705381505060787378965562777802269574177056470392089790518115549250432469982388199063763544337638002452935346164118009843199113451420544829958210603248402713454286502443936891496430620038594875413798768514566705300403846773511701730024672648338142444994112834913794686679055184697145217211037072774639680029000809243881953681345899167735196456103667493357236017798125705212298927088109539274072238368478233145078387465699800994058671065998141549982626920813298320828572284134391379013260374092856972627162332994838356200114502708267966394485147966457841274733328373804679439632173250267741130106204009126855300405915044164014362681911930280078768499324997173906168839654367069597309664543224706372490676050170688699933397518305377681725325183791250510345557225785878625515601716991442040001727589662131877149471743483575097726434070008037499485472051765788833698382747928263914375043065671136875180867601600964180632898864371144816001731287761584463942807584354704481384251805640299129611689527425742713731574143219786794431580621572405533040583645787700762629233590344768586479246631370390179892167244986300782391756322737181734603532669193791482975806252568424976150272048780557545657592683875742420246621762853715397503037727526481095059616698600488537850629747123669502644020578660559259569713665625979784614133390177452670912638708052060934921109928954604855913326452606751261924978353186070462886767741544427424648125572916625486054162492600046605387405810135799348436704255116398089882814905962963309601486791762844884032383548062937479407299781936765442932605751666836622110694345859067437329318579324859906328457950843530928495305767537163132566874756982192557113852030373568862471970068626026273280397475823896508412948034309847253384210494897398150435572455362724941091083672181532727280615083594667883033632726651835129723432452268231945155212943826977518542027206100693621348639383321494400878878630172101201059114167063487954492356988063706507179456913527310033593764667457209186569701370881869915177695270467185389781009033969269063391928443400345137754025038249356696058950064080367195686708908759619386112013443792092962835701292204300934500432898909165508242341299749462021964977442406176459995233738636002585166189977439181498844585598900197435568538203593858042393324290257639885317611345225908861443318929902871383486064880243566477974344653719008713863061205257567758610592557521469868591416578779217285247119327007095000709758160583397562186029093290246068832363177901376018780689271302516395510457704742753652158774718607695470990299612017194391055495694732168850561793974194594959362915462701987887843800594056490247535025657178989587560962269334112395170507996062689718432009912257052331572748037516692216067629203450699841025478288345569361680565159539082382866011071236615370582425743309177307807355962067365176598154345192477696247331753768675844441829123129011722471659747550622218771117082005770120731949657415115078300120617133397041231621905590209517678522437508451647379105808387636186223833560427990235091130927900033148357860793797450140236359014277480374816704503806889885723355175391125031263112624089023809010185745319339357842387530745631204128680726618604849628283998942536705251650978962952839770014676502729390158616069441401908988288748037221485751738909368789501745807747068136544645405367060239174249270477240139749176265898900225151268949923040713806843825755716845984275800704495674666437575997891432919962768458447712976862223605483043450638521691591256049930883265659870760539148660551447783618029598556673058318129326951848272460580111487087027489470657710821682265615040752331804483118133849327634855287380285109883763835345821939766164331191225392453823251392731467506761069052953831248354161061059814200863442707544971900694910016996753459919987372402735468171747612028044237491941524212569281555509122354965291108195507003479612447712171072229270998082124883692410724413096800616347134964594491402212916870760769984217000711392652220951500382645023027565697343261199960700496599671385538589734813407315757954945390859915832024823204784882989931709767067933020237979313858482460898731521416041279136956263989375762473235287730126667535202721311699952806133887007849051896594015936361263936569489625531735091401813745122538465175932326504914786870839923479597134002415669288138913310928379153473356725548485976068087667763917134231198916353962727424522944541734589747626906469469857602613473676553271381482227472886543544781655853115954443921206643725086579734042251478136280584039941235283950148601291551264611411544816741853749526694922290171225622406096435973840639660969821669509700071673020039879397184944208312949286891355681476640637019324941165612912530148163222081659382911990500220651159114330705710350260597418311741798533644316617617012624125681513574821712240949656660278909220777706603146555939961822712604044177779717124319234974101433232601776806451704889747667491706864542483328829342691435374628321302692850191952608285291585928940488759320739196783253464837425963872206442382806717260464899130000407479465825465441491414735832969162770035393213037785872721511752559751030952863410511281929494118482719787826984532590978002960453416211438788094780868071079569265987851159817601882814428211977042294554226677969151070681760509691703365416425417581450584802203338131646607960827465911602322983385308191077223754340867948760057883258484236060699007551025772353295893114338929620263454850792042859343720643728269795965267985381152038090260116859890854843179750807165710376013824145970800664858701105387524696588041774623181552860670671290108846516752351130312431023345303115723012061831845541012934231577756061733106339952352118084116404042762528474622091264495525403697673372989884591224610601319738776833830017778278699011073874408944123080896479324582068434653957004044765204059527881084028728616821583331306573152848444885571173779440649410490165947625315598944670248759218158626409551127011467326165064699663705994643523085841588290905285357634357812795469517703055841065166369022095723350886519803568873283892849706558904340149263812858682224689985064190508553208804731267212799986307498187435979691753219447156622820058215801413851698560388325737039691957674160226914760914441692162009464945322165401320831598119076872899448046029089492721801115000049177024173089458652606954266789237211545382891851641144966143456134943020610721232242889354693967270121470656532853137917383821387830240068647206322187248638200432580554269249657118986796546541183179183614020820125721739071015436102486668354845239741049671392239413406702596739670149446282074411506894597553272081290830869547406888782550965949728603943263194578475105386390437861339943875027283323168233461580054339263996894861576920115656593257257674779608276712092693128511977961497650231611582610801976062855518688879084934286709669281056148952303368664924544895589828630455711332149072343902011466067550553960211845571560467617505346961657404846002070349335449456278688630861911161520130039371167306108254440274779204160830047909750471688327318165489130651144291407139256897824743599550832800791736970222572177890177766525091767693812424750258123216055075546152355854517765245760909436682866887524366766828075778341232380177985270859220551017430762118660390876611546023012356677170062897353748941425435322536086301560620088151575672657974391108862893249869792802263716063128715613745538960508288591071177002780407386454739962952715710205032541270162300024877448673265578002271486239045025358250603755286841315602962533879338084996532138208719688452525312249602028244984036894772052499578248950016875851846407372618296584183121419164589574177425341619796919395072610386972792912913197963799484388861416684249394000823177545877927820546305721808660428929312695173133983562311387723941388205652883227143835187377839343655590710814381486453577570228699603587443108036622481395521892556953696594335953865521080803147546538792098000756213281839336075176751860001361540448492724574724211103100122175998218789925388227352583827358932691264263528175883701284524893416896129786454655044253623934281072005999102392542467288617375243728498144754127057983610616101386578854462934193436032304477644230634117894070642293740029817807666284091341505850764791189717530186551871606661837560043394171474770004510210870553954815223645168467563468285317389019783082236208012727168461856286060574595373096057687811180423429673677498068566038254408004687272940048031249262686684119744039652164729392723971779538673271408494282981042398138590224693176337615897527399583134339244815471878585487505312500304785020872525131152409935251593675389332263439842907888171737413291165193494664326413995849932511796934627558771416546947165607569452284326614425725148557737195169564319196048973520284836700382992294478133400148659855785572243020540188014534426521018399696392385584600637796758985116413270746120848824999529843035053765281926985357955863719580254146930020649900975591497338402692394005398270566168563534331540027409702886172279741730381017824011278750123142978096116441612614707844530611736153284725098418681948886700578149200322629144521382118022705119033823296087391160041944961154782946838804979743871759890757202429223576840795206254535483200617590496594375437585968479817251147712399845673807637579377240769131131929963066725068328574207263055986621026288888847530216369520200968450734873004079006263503902367964071438500969348044111216973508573073166495247214971531439286995071881954445390858161476919545736980834865489319830467374323054501553007062250232085536738926290939049861137019289124904400031051183023852893444315252773247580145218266929015030899581828713207732950361118409363656932058067108375291672712393474598487094346472434430965693698201131041188505149669197185676669576477888780448239703070927660418308356296765949602771757862166902383550864417809994773395279129814581102477873206397790763162377710122068244734325963702336944172733489042398322285757270358329879323141979017181816708585768318220526434681185392079940663195926973875637052307106810652117008745264806160757316357227880868048305278209338465686916746571172104341545998514009472456648800481363019113425227963392955066664591898171683606478897540216838481236209238172509836691487417684325696269973610490428302155850385656216297351963035179353711858699748976365590526214143263044960117320593782302143893796483295722577177151272727469397590158501831074018674573842437193036342502983808934298554346202036902933309603248530184928839072294029818826109883789694389914133497879112948698823086010419004603421875372647755892643033923283591603480296478150618986228935166507877566245901297953272905788144136568441659882230623126653945770200819391206672969609839596847502019468226580033657621244005771378202914336522846593540444873425240788160747082314614008999398050153046613455717293936995634418055885327948662720391085264152919174714289002330469793505815633452040877733973663558420986052850677714914790914352413982569103069076375150366080455104302673873822977833862621182002319256132304481948916833776270874841260319892060872037811680870102192147699436060859911745238292001320800922618432484187481488458863490044593487057958222185058854668435589734077728460301555760146922368387745069266985617663605816610377300490672173995380442094039802100570414085825378866435964508501332171225281745951609512499954313366123354721332199199024510537021631646021123985008805070558338122825714013513733558954103020016005023135327338740962426197841035815655615073208164085790208270190109311048485998177318907119305943387428493220756241307707420858238373236873682516562788000406976133088081234334163538535507044517103602817529194648219513175251949193369562588151774192996198921710129792517109344915661114163476444003239810931612437118266216862194359488840974371014486390037325468535471823586677425785132903707330978555616014934185638900642459039386849716326498025771526499133303122354042442471467397421116011157080386960449042953238009898012362252295267539632423881883645845737739376705320005524864194189721813687486651721418307344766064091753672735821695923816060167001927536378152448696608367519000471075480106793571012352432005793845736062835676458682941233126392646999234141646489675948716935848724133763023140670929109284446320066936104857560525774970646591640413199486224324828277579998382641851968475932616943636524672326381373893430356266422727195716020011886134866602720866577489272129477131516112165033165973894016359339009350132261605995978833129717329858402587099838686048390728971648566636532348714180766498890523840545784500583552991930353507861101074552627377110346502799037148627564876790650891043893692572354761370822345457929961306835284577148752259891073735379638776035335094856378073381491443558445836831003166405873918671561034416016259581468853145903284117789013245381678171086995242438747704787702210727571453407436606530370772458218812650500608730774557708803460046259913862107635537891946108263487052535052974434893664659595677144034988900651338380985997330789664062875582578952742446800080462773590996278488322661717016556061500382334975774735027098200076185570869498830127246401915762069171727511026868222077936341747262046381116526008305366564675939144358023645220149149325567768229927435426985163123251096588241711964034602441866628565906216263427000044750280167475409836673564639973958711790846229343595256455076240196757355275435292136133566058973094787024662713420474224564844062623054498059735293782578876184000597003650300796787058575386900039342114774307388554550862003333769026075852130455719268045634852833437141744978505206034109310217708205878900372560669370780345239520556829533149028098702477262211633988638574723695681223114401159201332765070966675574247434101735586148152592653601972568742105330272236857994980691128006053291037810796261951517801288337588955572781965722437060467633290071477060185766679724491734106847617987444693361125984188648959386312330296967182036341225127741669775500703418194890256358835045006399595447674746961643693861740076878582185488140010661647606706554296222524033328042061373414211382580053705503149315571166310716688576419094453924568358491917498781092557157572948164209330259787658289164786933321354015946142992309967198725240180598392075419411968116594628045892061790614765175286533353126008483941609952575364879360691507065455526533152950986463879890489988092685469483108612428239569833241137052693892218298672035562248564198948207081497016763545244738322643676534233230209660803672900515378376284460528415536745519700244843741255452210929234825341239744404374504710580875657273210837561533173638814105020734838442012552516390075680976279670845886023727935571274012013543714783532496617651107645394716803107397875676797976493626206767654429038504550598183455588029609433367145368263588746401734220040061756108189072748027483047357902452820143125206224678892889836145551589601273702695843423003985762744240924972306695937869600398406025180840012872902079827012649754597707933805945330344758539413944417187690188250918298835549665513366361638768250911513853802597410275364048531548824620401955561109350120542097854231764053662704661987697572853155923289341731822362046559736419480226589687129868424652444130775890724626552137140352918519572559576938581995620977967002854177879749580059953117728107208492036093514551454519481661368280219403297385458645147326819944975553762698440408992775988214689100923886849769821380461596592823715911580465635133825054747161352185035095363452548815406941547846950254044907797935541831256754354863464158114632083145523085488032607536483729830238830615535419801592948139100887232009422111100112925256809778698847762192265090543359655398518345104763810410676500591327479744877997941822533981884904761638264794183502281896150311182525977224239713922405362611489948277845361758444700728150401021097976615142564270576044370054480855915702279770452887870603479315214304940195493405891465986036261354488627087870310267681363348687090509345768958398630199063611619157067279839999018883704153662232336863891655176405658477211798399683754630898480369083281750942501418977814254681155541719881636911504024877814375411403011695523631401672814196531270874784802044345715110523228543183428010551773573279236264159472280048736258146886712110215332904426048090020871817258513688292666940625135625259308082856500275251179090244776928676009303091504117386577598303942390497659803068398814169872687919248683131352916447200351884451791758398733232307396352776964571755851865861182985416509436219360365171154235360147881240996645005907961788610772973989801837291429885803606734118620601288521073074886528791713744427420065744969624592338212523664621353877485512458796842975011688568084495723592757476008716333230430144357208784611374658035476631422543327639785984883271707246923063229061007107480511055825624416869193727853046708796422290343180543909682680870487026911601286396276237820930839555066974830855915394715679540220909959475842033511222563522307298568065131316772776394791138435277727148632013385610994426688925436009731718805606400387127657307468529791763911370624802885156748846928150705543742546699133562740946808748319940936739189785591724322610060735756492521139435103772252602825376795730965029022571746126099243339906960753885526178910415490118431975858665413497104567054563616757723372870790842759373741122231914890422459938041663398097665212822968120934207389039423984971508549170085280295200342871045225172803372428389670887054442466089520971901707168513257025615792111641675185794230222628749380334243847644983262592772727387762194208214238478649202837519345982092268696302324487418945971488779063938038432203610766948803579929599695589853021867428818364191693173517946029800731922438785696824186079984465705438359080744256805386774172993612532765269478306635718306063488122441363954146026466618411421815625818490380543013423730054621513724070991542282741722422274886506342117106942150661809063290398847865180664711195772767128684785563532082989443143093605026561734703723698674020608151261989713204110734203966769124986208540051521638612271703898685942064526715899921200095475735632974489528816772196235996119516971945482031689715019523041223921403748062873667810549620942493995514430027795410335695811367109857082536936319882357188414288881666179372281543336628997325911402766964596732842257693637365755632952468180071015949405013387168511781057348024478846674838983360694016768225001796257116031018098300286023941050924602670469467689126765656507280706046019674987076464420537532165828915174578624324275098184524832129716176728274173531125405988359973344141099905124716004472082218052950243266699267811606309583746430843031663243510144633549199209793946633370628484140997741521550991255303517263083937369827448278944800178559744237679160507226365086410504381992770300933850497738976449508297489544135088760927988798913501834858149078020056904797020783826351223317953952727554924151811931742840856999716121786084651560432637334315944206100507001274163962615876619766651211569160703383403328975538327213033776245096759843248934641243937057434352272202035970995445419540766552350438140886611800847044355838204190757111651729006059469432302646787679038136935672273382693033140383232392154689562288764237471846681840143020308306880853732801516621184560302289991942131745995638870577020714606138075250280832832850595703456635716324916311785595053346021952334268019518137365696999342548048810956108330415305466296673218336084020877879611356874416020384213802448537826396860708893973698919296165834733594504022090452945889314919365995532336160987796173236089250336364458764644956895129667365282180993366947457106996793984999289702407081644381000965394171105310559921258813714962935326154444857326554073151319562102730873337224719100603284359654507235082690081412962625344614874105896718670936525509121828114769719807487408245783670398893590764651470765271313617373237319373116211600138222613763672164268258051767502005048978483627147724659654815793447545509653897798835313817563814421057685679872039654853496844139282524122109351905010973041567412173541790313531226032804675670117674770246991206103049053469253887260584133947442287595938501842359626245810739330782020073648466472066512206323472862202010646362789654652036800356515142654135283815311314633315493420359208758039272569056414068257693069738807429435244125124752874853898664218641096545700313907688121500367631570235387385715162693573413845926516086176171728253383255147692318140968852170598293132484687527836542936897425839600209557080568177628900925945786165696797822806916381285887125644362279021038778704968331575323666984603142565864839119629313319891958853905364741124146992826535554723298484550376861458273926790271653886781783906902752433129519780697150575301490677082247198470937181833809822524812527135648807311985154723787227960324617350655015674462647067881609457377061093572944333107325139565454300611294132755155845780931207098706344346835157211564129050243439667803050552354453397514557866921881631214482010656137385682491864346195449418928485627824436150015465587450248967686981902201735612753720909888639785022559036187493087899737009446376472675171934313459817293148001862197055763620088397345409055616095874923433769225886297280938898386883019246415824862199926301068326186047190526319157150702717784117225737674787362703343792515503470458586438288753350086615650195462889052975976141195166776316173644029376646551368366607747933121009626986819602464836218878513635311121484373891967333941713742608326040549502345783691522005130467538252087051737594832764411212078092876456758084102085817173970122816038052886529390101002668901448538957653355277283735693688391068804488551392604599632594467377789201023280416799163752201564839968477035914982760917554265564138387473194448077793552754427824611920077903007597735744428484727866995999463406559289461714444320180941135956134552961218610293836812390376327169375249221987794642232167970864479837610193895008429845635597487371839751854664508263933112095749491623713609109388049546281192948247976900443438014463558602008708118853799750195132500503345450369923882453671258241022211301528822741238942689021191868105458229046877339248276001007143878624614325984617893252050868475915463036073361939299300879892021108176033809492496913210956854423237743585310632112766561112792414837119160325383083423749398521135521938388519623637323618476749735400124075276155773569441923677719878813099821182146760870525155865945839405359840957380751772793059933395392274585851782976779046536216367746644301277754167102968380091044183192176430462765605454978897516118957449099008648916230063746390442698346549051119244334329225521390592483872997544254531598395994899375212673951238260545673298928816042251980873739364211796899125970767737134650646749876521945988393100150235429650266827383428826964576730250411995890074336533468627013811735608377436744912673869518481856791939567900323356617586629822839654978410679402422500070776764925798402551949701385875703762270829496102337805192797565115765805305751408986307866486574297833986149075326405753163610620387088284372368976853540113498881382232905294698080489580836665838679077775947574423331455984467811019327927281210235326143716408730038330021578622811687410949053978075275262879895902449034266784502279151711088227963046729240214396110287515759127968375755862704270769372916933235240257893983897369203721826117522421379175052501099724679680363413382934952547939282305760863816536523019238783865676993253030863858973547370963995654245514880247080782323133892366125821298122455686836371522131217313819939729494391406024869619926563340008306873588449895991061184177314782208421824142501332889229430762429094485735204014863513746115977105005537926080338296651110000093745927125939661047095019346880465040750260147534342011994585004206294422352775941323650185533168519070015347974518232699510960949173650538009886342570526380589158664658561434388174853706643151476693854831382187569984791382158614348570296933803818270113133679753227613759166532377343237873597680633399488884040686532284991177590797645785741690805695456895010660001909678028469370422672560711575048047589079379067302153565953976838182257139122186596659702407850083216157235682929062800460613597546759569066038581533264985524228934225985539096744991526305511085853005881366819605376772356367197155015385581999829600021066796823531481717012645860358722961654688190473143361974420443898722995273674371870945069591102288551037872656735415499458562507229959426340436287809514097467130633496899576095095087907868565333562138115268670902262972541236966869050873141476884351873272375980271273459311889843322363789976746044888221880164777089524993161501799093059992665209393213322873845378784673464331224262483856810835820302877488854724030070075232099371204826886173476131891346163323351104847051249090595517327100824546079262344479290158629357893897970458462189352636461869337317067005271059750133479707833791106977728195098724139016117363933454850932667940812777681884537765104683538284348685575107141486544146936394222817291701065643715267877477942958717595311518008540558026197431012112363609131007859540330438391926089398326843296341102270529236539203254757190549406855190658386804321721171289908666998863126422837511417983971637046569310692740444268182365665607916056200072167164178769927264602972983890749559638042209159797778905253679125309806533095198731733191644567976564712080940290937649070735874311893877549959774093291601455574757824989076308185187852812390776490394588226367271962793086137444004088350432101111533051299002711898074892905281941156390073249294716357609158146530866982999593287635748720199309290146094803882065881009100903307921394535332470265179133687411790870168447297318639949085139421817999074419855373059717298494034345435201691858725738743154213360501058228507866364733351301186834761926146158257888720640060108897101052653021832965127364273023481746389968398430643700231270747730832574019899065258523668823048557715086613335426170786537502624670520232749933516824518447900734580402593543704689919411748874870915975220547054389930696688075889535243625720877928201011075819640706816966884156622843688449822709035356389478908417239051733875607320402345104732106722964976753095157920914410132110840453028605461791983057204588764188143759902388476369235861024425552798926010540882824662964088449026701303057886126940547256543967662301551361153862613132830293310365897526337777867445297896036328661704193109275337905615777343550992248465577041515291360867160967186083081311708241678574991658013419018594386092778459105457439097081252539304162408993098935806315072604989239534775782214025343769671636190459235594701494078851297834606005716193894611669537194077681962684428425727190229482374665395024183212635093456416716240952400226621603561532256869325966293645299593882968149847843422208571054531089027409431615866063779290951253216561788315411785452603156443829639054036307875652480406183785138864873413369990702782816640181261188341003073398281756626730596257669485887813993458501886061819512230202891046833102422453678306534721790347333600597234774244701275075312422759132854371624829647746720646226638067708297692831937267607654758803513769993129016193520420038905853272687560024251860990600358284608910743846355366317582302098011590804178379402554028575219528151890574997558980225628437359593410735019775015816889112419221366297233204535243274507516509173090258587857302518231741572046932210178297313053629658365550163464914304358722077662607740625261400581069773175773974923166072410418025523962853725046816610789493204281433407889102898653986999613996544192674332749028790433445550104491622408817992323867845755280532990105961540656288903203091489700911019306438994421836781174645649325113755987558447571211411375133615589346971155854238970596486655428143188035514329166842202636648826788793106023520014674784181939205573345064716160353720791931453804070988979560375073988757848962764405228884501095313915399663040678490820342557396591986617063065503938341743956165218875897960491966742013735630645911165639194327418268672081991055267243213003578530008125522644666168881599665616497354378012296694690901907452970356724865995525635758563415071038805876547180888285440364343012411922866360332995081037677569042335297511428861120491894497793879894197672493831876391050452831261679677603580462270866407476250443359576806587553967173574500610987335011771351305643850659869874800551582753137318918395954345980164260450885581824519733180201538169784412722372963329566212246081627867221033793110440421658897809369109885201887595340260117908955007067272754139765974254721678559059783454726220152289589522265253678823836728924428426531922278684657901627456697363941075376087427618543534599946088181916575636641385855479286869013259843095946117536600430495475698836631416198860329956847409500204123018470681091008258533772817720981613137240834105457121299334134523070857380391595205455745666903955709307199465749025192980158280228420940470530780740273453606629471838505401615596629298288766673930085261195185483087378060776086895334205596776862766625913977730591276601246899981927524297707098985599800598529051488557475899756017726977449729697064466283436781221834094727115097232569887337562348039116200167650529539020834503432493952002548523136907390509852642939444392883834130660739746850834570558645519259729355397939465118609513498534483238528544784157527121714032200612944195002911881283800898916579605527136883534960500888468785296994733955599613613391774002583189864753573268887993723735639686831451135684685998185323529147741074070115126744262035558147594681984696256883327692573515724035102213037992846580815181627345050193117951423023882067192784597168709261814140075370400408551506759397021910857699762962070553821100775805489419261689788854520857596053729989540056108340041146431564262996411755495072575876233310763070316891124370700779261534420078528550181857409352654342272657692898318188652845768096621653788168301556408600462818453080161115281300578066269126917944859171053451092698587475513433646053629573984997817660181464412597602432852685760005958140604865695732142956458566476268412206451215350058914061486814791992994185668547620782173459236527463139325500964170402705586356886707613471659716705163133198860909379798228261079899040042972374418109290112161496849669604270976459012304151475380801538101506392333253183529033971398833901338876851318575907504675945984700025839529460268751659177554004314753744743738905463641711191646374980906365478976322037767071972195213256797829476549217377214367243692175804399004077456220040407631059687400750469729084578324079608557074057731665635968618438610805565775775641839097046594835150700794283827211336253180968680064746358759304143546543575335828651082178353201394351276976959986330837768339139508203289876139318645135609620323814641988709580457183610050622681562637527826751618234703265373236408553033030472880118083571286324957544174020996145861699697484901783773152448036758226500634387943965169013419681711461801670486300715514781282825866887955963386281705478011879750205683723838822868045800086717387802614484146219751972712679365162632074017124467479721710047524681742341348753534829346695475219887479128660793044510046600058679376706997557500594239998239702561075052159178331930179217249254674581809707342927706220948869037280265526483874433268571822484948837243013816189677577764439078429610744080525270611941257991395110681662437122264027139484679065679782978989634866190752875275299203461507001883161370475862906695078288320989492184259523224914403516651233691375199156256720788628848891702447963148215587799487779236267213638421388295552526068870258085864206107194294287535615269351918567941628331055579718000296004525489596287743935904439614063127030517842263370885696450809494639723289259926846806803561628514010928305183795078243700643829269029478607796631998145369564788764725500775861899123795933310108356712048582895086852846281991739453829554515712478886615593210559694448670917058610062910452941286779782007691818237323571669277043522250763215788947603422491543946440235788583948410811252682675427736455163794153331397228716353431588723942556111899479884652584931988447338115235993095000200258902462546925580720883722147956906799217375564960220456969258494195692565343140792572029793749321394960075406955542603509903618958351852597971423149828417441208668969544047020781461131377903229682187667395227433860087126373646807502942952509771115573315160378218169262203485205625932315325532260105455506943081578251806208962044556076612594704129235873843373717586671139711600228994134524819834936905444508000503509076275733789917322191945169108976735519712155352819125435360995354028710608759339016780452120808924799317740266586837612512435747794392547699227161031587457638886945038842153151498683648874330247865540320912578118491082922902653715910587112481825122751783414146253937595228076114073633562112661318667996987970180984323094352525872279856240562044139100592626031288445178391965754636516703791109118254280272537357561596743784167547466600154700500424645098442184280755660713271393140167831197560082009408509457068287495583821996902654479434584979749887319121302468127313895415660950871965632595660738249414980156211229928615271471577541907282865474338567543371753203986141740769593649914584237025668804268753433552951293520230350277132844859078675527018671157333831538982864545141750347191351522134675858662499343983121009786431354515692350857778014399180883665240925849192415507705303616469379908639260280596655142118289063463561270912757197009268504686357556341559993922983766417149394844226566389465541736465701286451642719811122820036694417549978357955326103260387892239212701736120935966066307930161528320648938187371515682882464639468600921618217055335392713365453084911911364334771357198252814411598020691614290915988493722834539412572329822243857381193484584430850524827628342835103434126849162917650095532300456625889053419872820984269645589252805314666452167572200844388620943954728532370000088999136802782282009357570238616107908332078475062468114363436303802660742261326567401449220902947409743078891175928425138539700293775697787810282492078640205051121542444774079842062303507758414397768983171065126656172496686532798199618182810994529080840479849650919201434934259597749905772021848684946313566751518284095655655336917443829434741373706577158687638697772806532108220208702696989411392023708338530980774482255432542721100911312436553012241623151523911163324510774387704062797282556029363205362226798140577325157495655095327939537214801975697804041653042906331848760103626184710048406276595538233819934034344768011981803678436058582760273292020867122234945319278821602726300953525779998705847757526576475451345026654269463911425141711652272269975031245631891366441592551364074424238902147048727673501227421570064640846801594614779590179298969685866242633221420873682716900502818583254602457390700511368840780126136187340314653798560720923993370311974105101244014715066459347432731981500206818981065048956867981486131983681475575020615010414988750744309592049003107262923636993731612704725854804505457361514443372916354217523278148556364016807287918838098736432230893850106240616968545193446618223395070340837084195363658373059463669400269490152144421491381495631404876191949108908792268712494364941536025492533716796668355446300753640169756645341024641782073925981176545676947595280910937050818204259340416112653551633220900261747223854771827653259946608582706646061139840955356144085770430201938483119441380500064775074478837008485178805860077732281228789680727269942375687195999173987005847995755059762095881853240788704890968356149156574412394799565764051377106420993205859054665875885348565618097155957871782834934382122022708052391051949346964636777393578132898276463940757098785087147821859700675705116190725292534619505412414010707068942981145340649529115072217846186261598296550864525788168788596737132320005435868571533049096800485717265430295879570185683047664855255047451246687804813270817651276005225096005094212554789947931131757981184262558802135429603196500049058992222102177808239431088827568409660170928719644470259920758227373459263618465195177663810300603559764872483131787336705869016415748735881715763397987274606597617539880084636424896491811590026127135582406434078105907174035973207128114423952555129621536721303354124824809127422192280402992772789088032141114699393381962867175529892082608998775116515404439111591033746637120800009265398562013245234759249095513900116384422552358560659140410145899505511932397134067232172387124014837913823105700457944950564485928202025453845503570530841900149209520791847592303459870606091891774054928483691603759801171515573462979677354292011152780048658368145915602199652877088526070389251538093512663774208259711013766931406580668831589607575608229987784196038588905287284546132664298846002131117519154988377730750728173395213090480736988738711954802331570902655504436800232641269550271492700482066831273439845105662621056850442076328017542936355771334202604522012692952658940689736394388704301844351406679388466151954967674475628689626718434637061655301305349419750098430948723623750362224009138497157715865276591537702021152430355841598903951837705510526386895162263061482942534068331510251378916563103724173943201579205808756250600460000612077791813544590434403604640016347632869248878808811248906451703914732252551451620622510607547928994986562488297291280166485969912217767565168213374826416319869977836726914858670413141807258902028992892654980241985155293424578641488548219333254590486047452452484012373765899678062927102272909087657413676266513408610828889287389213616736153155278179817093154332858851457910452719170511489318907644885912235835792701717288216997107474951100247159615701451675869625853948216334391163582145411333229979348097705270082460157600850157037035990047134726860382445314826713661232425085075716962225161496148631467293864997239481195345432734720671305251505948842705735304096342579542950465251031786431073922566577732788459778861395615559976458043681973800501520864206661681550012951075634437646134870246931448789460249935868678228158058817109075770785016506050312894452867560381944726454187503939101721162098130723687439526340082239850550132035236896886490705513513168943310023715061918903784054264489424561518948201747050844419073377468246904578079635828066614864997335423666548128595222253423083882917370693248631103677212171985122148226532523075737834918512691906518714596284492142483830611133057690926137013395691088443672424450532362255847664280650596314090153448646580955626129802375148407601180194338272287971116862252725561642925425434968956976363008008594892553927601411278501819450658341134312850954812740228908192449823227164578242627636382252390990676097345801881000156720235628814057879147174751647652794467001245177663323507537663555400240114761381529375503594897988049300386390537699823106895586060716040603393294847685554852993019021176558953605051933883923799801636608877457050722761514877663212749560294515016241571615385334123940469072457910266819142753619006999365863501695071699184903396506675683619307777565523081550608068086974490130457434580340442722476473680448931598299101606843238008186367786993167519585347333161616035010859543985120469142084704896534748612533416551136650494684027825319686058610610780540796609007958823390511654475856227021023656649760323257369448857681451892585844176824835307283251709506541143954567394577935717594945644857147226307264730402194269423416188579089944466274880940648347159503144240410361666598010538601795408757637369816774799180506250001143974135643194611480377993792489082007805417589565267052615722990285015642085655528119307691502704169395787476969508654339276348838966937583066006275850768021814743326893505402792163935159715969112347106241119014744225465269845104015884133491750002389044055288498469207928927828925520377820887179834860531119431650127265737983222792341340357722594213075906619907938359086253157306496599071813261805305189837447828716272958384290049348494659656465141014692606939118157670234664666012416970233366917169278839548156667552927699382918951693799696238753259181742888944209733308793066413578550740210525589209261836531077962119838354350447549833067698088969222209613569857222697974743960106856145568086718183460877789186360143982424104833453619644695872372902028682022535183672355096790378683764064145278713021391717361342667146696535858548471264916845982559093345250240349422450209184522005369532823232249428683292414628665734552611505507029206230626491687810078759280753967201167014456719573660987905474626340456595711439401589360459538982560665828843651909692993255883610182362876819005584713630090860970233399911975378079704961594348395875869988178647466737112535710076633297552673945846978043018442130138766728742346433039618229355790581222007233821445363153636041481256434898852376281454179142221292662585253878530512512569643894738948233381904330119211670978085304259790431335122368010133432604826472088309314547652768367116165026968495447509708595738169886738193814387951692219746076781872254903236236165593875317685846571670754689586859091462531285935077957143780719260868177557376961072835831273817903176974649616496882452148010199653698670989519657621495989689672107915240116363170026988681367256331517324321974769292240271332759458816703704011997208167790689953089483011917239941139665966878087311531228891709316112342087097839538146964732020153379442572622467853580195065317713902646555892349390433523368341889521003516240683529835572632126481447024646181226491919848558214233279225163071092927537195320958069196162429497104386837643215587982597249481166228893151786761387870307822849374316706960238387069808326256962695967518284594599497572108018949620697759858268172385140700922691391301488979361235181781475435821382478025133269911639363197178226763983298547705128405910040638863314904001431253058055107619401095359241497304605647696957261177992827939532008458462949308487005445073481687990128876178405217578087179652870514150077448471432949417768288531360078104028832939067049134710831698257815442485726529509269895105471390996000573648674313857010404505276408641597525262636072725324500584209614348777580618261694148661876197274956976254126437402998744204488152167695127668553966137057315152584798756561250816090163591287313761414545456359328041932274503994021046507225982519357000422693946880568524528592454840117936896999117575729247036271622465691553862376849223792677104933785825809691633203805685676688307477997710993302698073909469826181069874288232519130191765393656284672100546663450421695486907538432435006956732406568950095214946154646505403542480862193030417160169293517745152954174189754507241824302720976584269750997385534347816740563273626859374461627171208703362082038463665095006578621820804975261806471316441227783719184270056017749404372129028301658972450284687134832745171824645745348728069499327149579168177807833240563033761245030856042707144916148946522678874564941678772381872963925518959633439803810760800628015608893239702525913753057931129963221509677300094706646582999311297844525480241805935266479662031359917854454652506859793787179097540652240949822758996308215743338830863468478160499760859915335603674636146177531719835422210301975536815045779447970434302434514098747272154958386119418741054619043753993075424621603623392321061898042365389256090049274230288651690699831988507257383164322212969971294960425398910204792547459428789317453804342266955246284135580600943331707723026573656600001903819024925306583583796281819965057807602544259152302397093119621838817777568680081870469925741604282615596941376490737710292027393295990600595348500801138269974870135165480101649019644884749014032997352312418145125774977246763477812960366292103086292996035602627265038402676103598354373594128297882016766927537275097441828643499996819583436568957526248837365288529701147984986421768714572218684802414248819693511064296638567722699173440246991254437881015358148901952423460824124508374783608385993620584308673710744594533700519760575614173081414945014746689385968365153624182966203321320706126006328343346362248042769673155540278902700925092694820263867559003860513272089370706038507963127097591265953820234702618739469211579995871090877268427122732780687255940338657832165955875715027294747204676063626082639472691469844249495030860837182985073601001315803552436959614011530118712235818288144699584572321214732190229152614608595881391341673238676810965070145447227643325854777106193028515550474419800814961210076430125787333886504350163983861123159910124490740472098691074028074498915340186921408491292332463198176908240763845882905852218471263009030787823466677617477940018261834248190214855137606970707934319171315920723435109907908074671614053823350512955341983906165717737487976755141924149063963043403712666585317782175495813905363686073200037207018596621168227239421591778878938546174120128636941285421488200645380529425112716460796381547127733150689364090562473213572537565858749029443093988780904190746163145237495040590409475367888412179286632687645606254299789035225671647304713910627062704935025367004102434394942534574471568468368603657472570301011331103760667837911815496222599500095747081387398814385958318830765917103373788616570669084149269027182076492965464365596753611604972329091530442531868050124759111846604570219643400771333263197097641966270136565629268639897527164769684613428632846196213984414113864013720096174435581940204181442034026536300795020953519112733941815024640144021960195823537562317155223122162936037559746071698349948589134320608445018610748927368705344064848732035548100462251698336969062078341541293790285382443463562666280056480236594920525663654531318901485848931468875918074443629038830936143454267658031418857217523220138646481034970735738415478574426276897495435777341217775456083733017558246115028349912160724813209324565802706717809484310453170922656015395549902698020911060822541172054098235293279845634746875996944947062989933437096057830144320366034446536507736829172024592382332597879551787188071406691870314704585146449702621930794248632213154106858408811550844203128445419563775060893969190499285716509368746008434449098078997032543868438810871201536016336891658731726813896992735240753619832764318415619090364087919803524717230559706928291342156441848211725449631810073666692370892437231475733601613653946604811318657688157709608537916044638236900429843732598813518128563643413329913205974493443190059032818421890211104101344215463002103598994370009288189617375618139621474408739125942627365213178503458063903315138110062467406465645618459692150244127995479898513399427908839866570245518771891996418695596916674479472552062896717371678876855245528071350407865249206440061353891000943979893473280780366132532507912883671260562413443237939327481119840412775641491071090408591959397612552857148018915406651869112534128575998092256566286343952808596719409340879080290737050554613468193133190464285173427876075252455031186708323059413635635059188848758438529160942784410628836186561218158947546538863187871463852366410968227877988446025123799709781524637879741867567541440061303760473553265613028827346699900669999233122291411875712734405298312545068127641547581116799300005861562692820525897256542407683620921300360567199991866972888373213277131432278470914164485178675184738991845260709249796874481271033318031471113391786276928760171795328577668288362244471935085860856022638560243992546334218340630395221976092862350226593782968833427731556848780787725024867039754810207202231355425866460643444648896474031799558950878740450993521388944344964252169603162487072907332537191267762727053022549015042156285400100087901487588836930450022520000074098047709981435206211257563360215271196085652483736557101372927552798525678814823326814677481811949519536583000732632384984624830171106776612222370263063643427200728896868777681449510059333600748747487252318568064933938244467951590907821527282518365748355981080876800395640682699366310445663440535001704148671898812730034067120748147062520050773147671760300470542952388548918710466742648879778762183587337988880790516024490593510726801381368270860947228438407508778781641746381518295409793786375079036053858453041510409684012687351087454552767572399485762007797050080296332242648483671792244239916280803244529827743908676989228861080059322352263633114369813906312769156564078903917078202281252945776428745333200303156304859612432328360608369103896910105229388782883135538555736257345633465927401557606464131536605845391033336429599575505179902946600804500938096183828967759574065732124405983760095234816158814409671229645082578568901497826926214042921143920097093829356358699030370294023885840178516406125542394124534179706144282848491081875680266314341393730038479254444718562614398081238700204699846101912930349143765107420692606446651753227882825714983644884734487469108472638535899401475120278980271658944495997696939238665641744373692019358158065930826888053851801520165019892416527683996030575035899944648882405951916696399797882868957265246563727098606851897734699867756233019359454309798027076692066864033895465419952740710584292506866969853207773661677708219188554630875967651419479686509655431998384012319685222553757409364875653949723552502667382660958141480382033205281467940490415157126088963811704109151556357008166803185914383824768198238265164923887051577689905260835326711763807308815443688569700325559751234782864954572433749941863759484855506804588400865309339004517978619459764634126324236959294421820753805357827765760923011719924458740824024554402529907561491147470929701488854705957652966796079110012449532937217530169100693934507713644493808148140347181221411211196501684718486367436080908472982673348930805445621425162320421933811317369323432488089161723582136403205174277618202972638030978514298281845502684400627661449007826038733044091342490596414617687960213700432286312243224839700432754072250006922362807109402245058375161828855618190835683491693682960354172910030973616036983545160440683455078876376627645088503103354309026677451975491043249018816495745006515690522557623714961152161539127493925330338444089533312462033357604658711768122184311687015257187318628839818478238640370598550945795877183522369187604246348051998350604488889091240660671812249319382564280608379227874943694764865203763763696811184964967957819608473155858948121794674301125617999227479592598948344771759202572563996068372167202421405161334831160673961362213262727641556242728101469307495006297565900964596200407268144181959508594969574097223259207178863645083143180527614644349305144850220881134978960566614114648682351414582407982679950199492934802230438135513877308030009379740930235393503846688571680341008698655476136774723685749195849620941466088900847650249744405869246665237693089130685398316614543759857338274215687871452384360454147946694950894633654671240790265628754719028341612565890219769374627107625876892587495081740496630569829454246562508207025681817414813584347594456434844040719729221541355119407422363097243592909375325627046903025990183232908622479371688577643327789707683789360597349998758779375998848277020848550605362726264089226351382174200958701645826494550005170806436873981321495866950812031374036258831870236964271727187240018042706121474678037229589905351749412459889170130782335311482587291168318561010150282838141304735420992878380540532106736231544997517025083651825244328538429260585900052480195261057352836892739614228401265368468839885321470756422925553149852932049400184656756479388849430468896195337335585191837306190507440401903944776855237047572350904573499728299500085654596494714315329346546654416316388434354918103496602145070290708882235264591566529440185581865497189325219751961807747115069655188066618784889092298637260547432782122188617798453998242359286310690153687351179609360328962979453786820573864686492641530343431497175896220279106303531985147234575940719538504250718977548104119467183345825469007887116683247305692389981532674968143896102829757071481622048081890585646474383077171244699128885483054521850877756195631571139893638603841338191243259719878138186772531821890991630566423099402596376943894100739127248830695101013531525376596833142808571081049495840291144344910260562661339895637346333315795197301422432622247081093202313534067573510467779926126630029964178669388610796302907658388996273767035224854063699317940190688300034599939485646369877702765365141104837768514452848211633258490122764876565044865702009093570176249990919143027895998889919644962414357847009880762504679429235483162568106600942015170210451614107365252645399191649573239054215111643771850280251603861245758663218228526202208348334038678460743989170321688021115309209448656060823997531587120425615775958601149523277348868896591391639064032121919671491743050792353770250898928071979001146061102423872779028115556078065495601630819545486022496269306293304529308822043827326302410805277599408040796351324254624311348395997766560036511722586134150250318082588128416003212454950610837482949447556391939786500066215545307579867737803454032749398810376180945679011997639744219958241632100770347654028101039735832866578922058582106173096978842805456459593594547431146677188538322329206958126324248213502410672583536483981041079753326776639359849749259649799723499531401208935535158899322874662990879041027927959310024438780775630812073027561284345862677659397283556024123533774196071000852111021936346438393753421100418316054161643781695277544108722394389149062819611929298628913257731152103794697579274272577132095287623435623224521946188540636885711022925612051569503740376632766811728891763589820632931261961647668978222908078753050539273923036451325565095547774848413632068899362416434230850094110163222838139585600440426637606095748575100978443277087132165987506796623520827200803976903043597414300802915724936919614325346292368893393727626320044310398510774350805653811189365286234745377703803225906128814701024243266214399030989059464890246050553682240502434823482724998962264526103036765810478649463355261631587838308251868679500382189890541646569255746731533643646711595480877543811657132778077028597986272086178308485929269262405811790229523684255648364117990068886159907475562011054153706729435962974421816494886920130982856774281141795676261613346840536675880081577948030740270266887472109310218088014595462458051947193455425688041884877912098960903836136967966271578131910568371460853209061025647483413193966852687411122552368167376270463425894692257859271954682321630322304180421147774635123164737197927223066507963348069487666178032303020591325390532973342388844195876202730482338525209793051330459547242623476735372318399468794343379774891310995046038808068083794055757350307123727522993403449115098108854252329588429204291106274178908915888794215481568865644573240396150943102572372323825402760240834834466256271439580254705396308649568138526443486239432829187401275207364584326350390611031795329901302988148576080655686122913589203467527110374202816431636026696858763753845169055756569941591557436508632672249186123003553326853472337395804823539397705057653348173943467884328902119221940842032208028633084695339496876866341048935041500644921623841251919467138345979667714756228075355838031681516445719504786978542475910681293761111133881616630536949503403019309991661317118304556376285325680297812127124263415996292250793727611799612224654148908715959140104503731559805100830808373006102562036234777687411777220128383603204076217567838669960874748748385605036197556807061095819645772612700466405076480336434484694663452100982321394640938586411320734627888683814881363854061635526873241611839067104796870277858499314730037939305469128099406644174917251701616842428034899403799345193971677292994789324005131860106790024603367173252308939964801435565923038777612034520289794496166847642111293319281845976060114307342247291755766909130039377811790487409722798136204055748024167249130257381942400831250427512544153640770874796102787919918070565246341122791679472892112569706848842113506865073058413549157246918156038944533629153189576341593124885766218726644411171601900150712741480318865943498534423575862708263278920096132153634199147212783528870363001661978836215971699844807025678107332355135427426930781186346960877616138783737685696861104679637382028056654288605942619648957312521471789504880770918206544961980998616002636111844755163805746691556878085832829955785379614540276758327857191103614242645424522217045338654421008508868427144220754329131580443725582123859942263672592782884299171313062788357137237982031907466292831627416777148265540445556461098738630206024126080943490385523287679698005343395771945504040924320032965192587281972797394503976895229064261368358129887947858979697171813232554992037718986977609175893236716821179479328923207022249274744608356277127471717316978450652838141750574871614087618582564150483644311128599671924543742680981319599195454343509368051154729937908081278924663702866475928076809369972388673515724749907622719340937480601013478963359818355060478944197698281619673662101311907491659489307930168491676470058998279389827130088351083749761774356450355471828033416186557011111557352583062161809028609230308802577314689505837749577592779254638350622599504611136543086676855385780858059231728566143081689801840478759738355333857551158420042452750927111374802483083500876765090860529311843213970268616784341010522728223487336931506485189134612415356512278163606517446811539130850150946176705459471733758258647433746290616270437683489892443318876775529330147006254877070576121538384984968098809456709156096289081109531434285865956894140086623134051956167477999595160577727637332087175766015629288095859320411565324988538531334272867271894352472649795264549683098861578324094095261983696548432954498058003685514554817612117346947339009112699909007417981513268030831472652618679344749647142364299890136263902095727742053087930372893790400982309070037120684394545170733712846554295246327739336564688935055987139764820725374110622245891589744997347861095348838577294761234438391401236497434642485360925496847379711695355971758468362252284446837018705906196583130964696626633743488216270551493763542139105882659680176587658670208169087940364350469745457962132840593140676084947257508404056109144430962580567388078302479542904636930896486717107930627879120977871538391056287030810567346942861176373251573260271764186916283065024540084695097333100855574968304529447433947684133656960663430443168627241182482887572443714044879852078315187250537273375718866741069366969603182660087896905988005340894536543942716297189956643304014980418139640158263619789471928709257213135803768893447206521160056758290132368904628615356326630839737385327660232109322725780669877470288739912898609100272149058035967707620115605980474803731659894576473899800029905828521364280625816435530957694320668758841376376132974741403053272848095787786473513055856032215200263537831830199885876885774263969508391981792313597812918834892125552451844981932737967505195047881077464856398276366907837261378518666517345732761251704529883804670128850933609616651277815202519781643528764543718713068497000892994056160094523169522685760678052549929644839440867641606826972017506540555321579375437822640018293646412968188971194381275133397976378400657923866820651585859310658481273282857058453055395564364440046448563574586484334732751505531225166125245338310496677098626278555132612440155562019380390137682149431668128081641050121082109340633962330422186964304001200393402167178263658987871552954265601859016996411077184314142823268386995605827165474330642603661988138216235895520800182394564352850222651183204791251383533982265840471215213718904689585379154172157473351344510615546609700254233937149256143251906119591761053701515028912678114424509074464429370889161801120027471006320504920737838422755396610602759472293151756751169022773420688868712432579275535830668918801824273260211207283343957082434423008881327923498383880588505268658079879009927976203144801606628254473440181399377846374156314921818341127180429810607360288847784672948075974959202653487181327065920399751025446436686905604991941409581359534218001548373314503793559575393643612930474332128649438581935923933001586436754703401187089433354770382688373540666991536318997366871327331015962614075741202221585974936071510271011542789100904562127095774408525140363906128028610185885051955372776692253926860368161369248170850650613725111187420038507731444837518486336188978248987856864491954321369902367250932214754328711967166645961607934410222645957761645930493379503448266402897015374258626123715616049126161653757447649863406904390774315217523707159992355412998439764242117350897487619300601157197120679327310734656312909372092174352998524588020555433894512003452730789985105982986222020744549947387518516590575046682889700210462517651202325868452821469620198705317900934513253443204907934442728016387547436365831863414586098876755754095259492177193448192503607394889330490559204875460739454532752299944661038003629623020736111042353143742481770043353321917801890099657039863288503796492454222628924593028804376305730043087102094022943782866881251365116429473527099405782637628575300000099978680258783303286470405515673753037789457213263612754147672716727319794196263277516012307048523133874553296384394642957701885798952923176365083013977466566550477475455199760278887045258244028332883220476664661831609281147615883812392397043634462478112983255407549664862273318632013496701108568907160578869638611743770006736192463091668838298507412123241760739077560830179379190663607394690965472035631876733833989764815887746862562374972122725667465566481899181761091775573178043368849708340757669588933655624550226838705950926991774455296020140335218477800408060422884335586421201904290033530882439232075560532440458959601513229282966060141431288813769852705610330942992634604450932903695802398038024593805689777488088987245450608858507609826860174074161110441825347129383357416998765823396551501792507970725514251485708158916401833800731247350836184501017230583017331385698099491630269125432235428073652191263521498666410830432983051418330498848844384237032100648064958543266937726494377154296190300505823797156575542890398633697668775797282662475057445930290310293214167168479195363755841151356163508741219349641437127260062895699060371698501733459439418279269858134213977839102007311949273629187473571250479815296169704566762511120012484285889266640899731049450980322763263998441044940596597027534804368708439150512618707134299018641363144479120788133744094509218928803924951442205585754341103580798763520010174556875531685013451561267772514261027661202819654744561024159115740999928667533204952960041154034278846164366768227238927354166772720225173846640644013853793344476110719436588085922092811405791829444355346315779082291143146937825324386261635043282445339483550475284667804785364821390556216065736219102694763783251996944989635966206528272352897074888185218351131421867112953656063420886891188818933541530488161221888773888970682000923636841409766000452149457403829534805824839428395248534010791669665446077007990266019833363245739122869361620224337855620238966184370718998234505458059763877508881569213477085730321072282328623924329491115728464327147942431502274899824846577789157239211866815397626211017223632954650055011915842485470291354318155810621726994510573305794213284651514815544604281520224187861217716456405274366452166047902928069082461898869616628551961384883276484315129925861307056168979158501397542198171421336702010087093254481207936534877314253474848753658333200611259696617268202806535200010051642168860389881501692370250507933666137932198460990371105872756731800369517246086850005512753275512168450922062430174339870612568873561422830345835756520845777124420872884693230369005078754126950318381997156998802816857306134446823203068847191834682817825925810733203083828950268956842794780563093400921370865839832127511422592199327844726034028254636326337204618844580373521614024631431002535335796847932399755513446537317979275099243275275516919669799545761439806739529930547508665913972113588796448926317258475319747228884133717948982781790344750768800619357357704641336132529088416412831897753540039715002736128628822078408166435394523188556055556461562196337280750468621903082710126793432072110839526037521151450378440245091355301441376777857444153208102922803966922903867371467297411568600385804907292424476374139040931726690994326052728738982655381181816637953262125880106514295597043274958686608838498245445996869783133931817678179852325693072778936136708918018412153501615122306328904694183647167133269684177221932316212760336537642129578052291902576068439185150627067206445843083582867946296197519956553473036123248619498013745403851807706128077827727883803326048111711426096297830171126534393515295955502620309999924833090243758006715963195649528087797289296467963903676272044773149682802131171467667608053918008303511934489081733155469858485339913313903795922196479903634420218779788975420738524210220424860459249956593937889871759960053087430268065278755258081240121481334403510181910289861369677165887932578246751912365631302314022195461848702219052731441962236675647859701455788128972717545900200139360976595861392800142844881192028941264461918740660112070739639538875077421721613665726514208198912319574736839213254750063442573200041432529548025706445373846488606642010568531332595774200918887203838130142858905442652272810669329022408881183598287806138122946778735043331114543248676339595651356991215899925185961698804211937860753853626560781714954345622275924256161707431723362513905819290715516104447568100274673127164545091804522873257269574075549348660394375023925284801388442790849126886753440205016400869905082201569744282764411774568560811270739349544127090831211679172750612569099962143073221832887323412660341201942414112613812922103951137752891614989131569133878350776434510116518461819702924541763814850688584840818199591570987879666097160716770760170991641955499048841535332743216654464166694363723168531062558886852711823208326805199200829753387701097768953621655215754471365820725914568764906443419345502306811448861911612945621875723984848699634970095284307955626139687837808180910631348708549279690698678311727895196715142790284064738943477586147487755794846594302510284906269416359061338845712670517079807636053240469460986114256900307859304775619378738767963218860897432396662249810089696182586854632543224807499425083409952345503444763712925703756149120868240387412184420451785504288954443101950224854537281769136912316112148875067957117439976766955716762870716899578027531116391573660422774496353744050084894957211304615040333776761643407693805530601868072243864680717249447692944779351630390790943412300130763701436120905846063983090559749507640762591769625768998056117252989284998949039156021630184742818426435401440359637914984061869330572887963945583021925125617871196028135688608717465772290242851494692427291390121077435877375386441985798114840558408640836662363767674157315325879376617072858632499335689084287823064150971686415720301216022610686200681825065328506742308474497266886309598684200043371754008904998564862394733207266034024675817733153458161093216007275959794231517594692228297614861302589198056544225973071066675401853630721314807699466859361882845038084437332868269978326124396498499828907752242118764947393895126050914737697228914013789592808499315362402690835812846140587809984511498106273268154174735939762091627912128291625047198605465586480817063778084639274381749966091552890201940905645266574660850164294975329477073165521612608601051255266571571162413462963942327151253188604187727230602066610354895629048540843792598896277983599253595350970638796476399413052939277122841776599577510828738733797446629997001115818613251152900848094364474118061826669292634061134005473757378599074129035146408006149550613170053968679190055949539837053458185753320267447265166184529285538010976340952239426731954608386160330320483972149138599017216592056073468559936263546946879256900252023490672417731356565615027021928429869788408498830061716056644461475004964421604853951703386532547708171760185214774758922951659031416254964261967622597957707805890300929835343406823173242962009972154771411465454159527795439085038551336357480262775810630634172688984046038983890553865987121837530609893031103556137549247886820605277037633408289381472009005316072941377522980158110306549649371973576211506165780826670179302649649903610362590996575206672552072297898348671332223212004102443839872648453262531602004866397378982136954767735934221672033341290687747040803432827604277457374355847847672736240311079770932688718756534224057172434925269566832629982040303665002079304259706307171016777955631257250254669967123546411007614847221799920717055291755688394092412044740922788144006488906306097509850734406994186729930493697048347759003889803123987981118186051581834227165628737020114128098127047949155786780124821083819139296720496311777670658288832163513783975157161644956887762298333521476226577031260554634839537146959855527502352969040872735157255272163961875306043980906110478367795981711351513993352581660603423320124064408793606028987838093398628556617803604034418318121808276974614753819700089173343137227912235247266443005395090024645116549262359103217289954169419837556106519996916194878990973797720944045304564076670127240828308971754127212320767882712253583888462647024206142828978880507036506228723924759446517408368112338338218553646576672173084542091802792300355227180856054514024211647636365567909857118427607074240978946747526321895244591264041996603235317931472948449832280649915255920035169064416137409292972252684904078441305253580919698919427451556332728355927781424358014037529983455958403053414072067688012397466311994868264500004849113724899700877924070050201589707260392124806161003017189027228296750607862308584582160125241719039146574265824876961015859120108732632950768177588708580991519778166191810992303433872284625204191578698483476109012593551492169553365322983036182044711108478780958676738030095316295563626728325200519642241579290328848721753711175235466974244368255259723086632379232012262993733769052838608760835800700235337081178989106559225538743211740307469715606403157699838673650383598561479282837876335937851146617789816121929754854897440417522201528814546401394768660561230712004257639926957253208008611719812613077178450858109749177250953872594504105195079396762098495020743744956973257072278380622039890086532131860488794583109486385487506600637652829398036685625982289805019464255511690275412522939194643497845831124100651373635082138685071437979720533936080682467879196432398591383166959663670729011656954748650772469266385797668607345140360496076336422397773902021495592935852933792697786531632323931742547197515507148443463725693291902196914243605152414952038367708854415984554228805611932711216267372413964867621418071972494486474202800804215361923415877397177164577196790331890405892663617875619483221337119705173065381768073614375457461899043525657487622748253899138982808381758126671493202634428624373181439798448827851653208896697667679837593561476177981406756572671389488209643431468570883452484777755745813645223114803473504766617999847886294006602221885300068436315168152516601565305489962589649654188930230131212392656871057154265248204818012264499149115230929765034507466791785581797055389192360836342087782199113320793259964976902256037312969424542826046867969054556180012657935587333488904964853894568149238921247606169705976585753490273019296046314215268692145661653495288486717333844918596572980151393823445668725335036912859144776195231277625367572738335932927592477582922815497621412890106012778031974786639000806751446717597628985058230335172654886618588098831150105167230006992450346293541801692448343971115757568538555145747290181969567422271259892487277546207111518576223474152848115109348401736669193650843288313506793203180045252823561161796365020442069541330720087274373011764317511451831255681141232203838342922844051454674636202168662963507531825445348907769096619792692644680391285260123230496411077575622189227514577122044628049437073855843248141425975439093962198975087261409533327927742611265024722866516675314494042253021014259447782704738356419506988546042073922116039702981688761643203324120550721984911239285023874438738266638819784748278235119593058932808522727960474777735359130938663562901633538465100126938841433674137548504172944538155156190446853210866781119061107275632548331679903055073672376728828103068737202067315738107823944713035502152450509366544149021766005733255129537764778688232310416703641875961735892356922700158531217141018275621518811444845083550232641768200509620302507409634046579182108462281773007063945639825091984430951489681156579143770657218957300900095286496403720759462076679208754776609711913154143878121869748344408426098709340504985578045955589483672195876345080832248206435512004167279545348246564763666192054605946276005866558688723991095690891216023281314461984359813123926718097382370922233132053460472022094244851814599419798807250185028280967755376487638896137342492743584714655526330851863113391269579352862583295663955582670790238879608575994891644570370068748887379385680445689365871385540847138779713477785607658045178467191144719776055128470987987593029906029709402749725093956732170519823647985234290677401904957937585212106295706628617800866799137629839077937454267968546753360428790877315808270951192806943373844283082209295401468313278508720697747380538520978660710157375297735369138509454767074297815007721114835209438750292747261764406082670911876174098422457426521277010821331906742797945123799925922841073261128510479492037536666266704320099889246862365588887783825360881245739683877566714605329477689185028596458683575347400249471120799558456718600430839948743474759023842870000645860022251748463373408380318064438235845405183491017498093521077896346723290321457723687788521327246304216314514762478597062498988311027336043748962555683399546619723037544237409581620562387246144497845363982803878866258506806493611945156203388974035431503547792982920015962060038221451436368362790499925526369131066722982565052696802730373221033257273365714120646989552211665559744650461704350850067648056176649372735603246739803853574914607070660771192800638437521889516805016661545979043875592887386243757740389986426363465064001164187869160338790236041349522209199785409660546188983804390423620598809173018478155024305651719117132055482178294970870560987866827642195077413109137437110623523091673604026589988051388153858360498107098821491174549188793691748358417640264212762437727952519965196072825801814997989650056552718362795696182215736232559260863575476283650714900664636164106531583385711251530742586332300311348911947793285494044781149887561069970114124721140759297638975010689403268165796145270349722090454211459553084777933702079726600806585907533067818585287913849964348985970435519567550030025975755360860161524286497511261282941193850295827294431940976295084032485088169166288587226956525412205414380118496462668263052389504436151900621382707755933512509646763986626235267752856771866722385161342363626662496056775792193596347292214618157384627797358585514958801505965548299636460833523416579152220305822546938300646030175007832609292276803634932496680533469944724635091407640676804037271491323411873079304795973122899863022045148649089125066810911659390693945682130341873663151361197484102092913007060216333843684874345780044467695846364331163788982187226832438110750817556156163983893122624430425676004644943125647331388085896361052769020680313375740314710543427883544730694700737175581080912928454935308131362509413947031297254497702017551289706329397441555216113299580545389208816760740505610946177973456929077347333008564002379380322328179615214221596839267381082042326966489509575973810848232043872358858256730578823898571776416963408432915386935832014407056287378407226324227456206053732630625026566344723385534427536401954272945064119612263125265429361233799965032535752675814612312946590947247007147982938024105796299590275020831227445845654246449660382941826140225026455086551668389694927254504562284471885138108043945072563982423394268567972495784949236152555276750153328014988680574696839648653032460419234267235461813637934626760219351418924433873157590007788331946702166177655083993003526852388497448106396887478131368263134028392138482684571548043557485080976325011119166383687340900884264440299079699045436713953685937415338551818324234656372332679489383553281469944818085597456657416906591442169235610502737709488731315963916124847735829134139842057556840942424371202723797860211092994060765461237347636161377150552992420679289940543151981526260174460641591166362927363736071937320903315319003857631580283662360958103243242383823227997814695206710336086342228242708355947293931820985083923395234883061627417338846873066960021429156703278074804960739951603261643255575259382592386820737745384735470948068753139246990512214812612569394913165703706934577777526964387987381449493964100185564944431524398519856758630937111231117867817061953374623090247134346300054325760617903077956849955017445920600509690648951179291716948066236596403256583848460425468055533487772164815880286527856973375943735752262604278212981709609823713304224895722983148766979070978588849615207814976862299322566743607692954159508122639232138799054659776617999536185353145433789021927749147197618604526928794678225743237918741495631910085263258894172708587976842515120060875523348254290523211230625059353151634435055303294036494015578419978681946613051159591464408113804680157445717907549853167553524277791067140499768582867862330093421600544800207459707531537980702360749517936661362700987528342005022938985013462015452741707597567266228835100807154127259979540580848973244100678984987377002804321000257516586800092205980861476870543778968751497631529909162678333841801064580901580826072197858382445832795891518066804996666921254580810440404921553978613152851082818320596576078722468496072098400629641001372125449625819391239711673326350432127669653562424559954461266555050410642259163943488053461965772340294068422799427109701710910582700965261606087753417398077920443102102097094040022007551899278810957194509127277989512654968989402446112615247518225403731179694073711808801729567379326634120444016633660731003446730737541817562253652548462213946076772619228077445479066145238522366742131928164711070998238666724825645029065612902373398089714134735808132354667813508458320571548540934859598844594061177955411513736449145089950298715040147972372700816991296356610945567763354998418095339024396803184345338535792266278941503737043882356532899473562912413984022782315424583783076805633054838823010581337815662276805136525407325980216916487269957608850100824990912286915989602772451776924087897867909672467442311778645254653011205554624077091893836945109082789321248132465548274054963544176878804591431688056479623409717107500449723106830034861605598993416453871717574283733355237378536248088836948708538088737118096614159244721358571105618388873814381843011401287010781016661330526218041364707591560157132111856012023751376334092121101303186938636958024247381523354448063206867710601180728146295680675809958853203430407401723728174929223121684350601033882292438204165211207142192397049367558829169650810466326715600604236968137280482779455589114818960914133726264684663616982778394665407711984244192125505270108038211120973481226626794437051897295118575799595882643634388615452200487177256912609440801635977054403017186382032046362560373989877014166747457956516609349944943534554088714603570944613680352718023103801673175373690379040409404391055653270721401064702016616868097647145515504277938462038516175607727850930223951741903747657723209691827855242411783615547946843575840593195131811879214494093204670663307401084396617561633271073729471948337077242748478076607284976065918028559965905558336559119569371013711342531754486107479356527760410981442577112648844747977784519630523632411481785271622558367165703559239695162714807243469608338768433574164295736217724843564326135504203562896686741208964404055992333358631531376864903017103114143384468178433736050362973818797266228652375656274382089074668064600486516224821631932900345257975128169883257193895530892196473712707264323186820020317204561237324221309439350158796885671146062965974988711798170704549721185173461146541311303954009370927160546767784467397617777162100055546504100490572499728965197229020788555578896897676184796558266363861726210304753316377617217474587089731939273483832246759733262771207379390787306512800154777025095493326673760720783644420679007946391072722429631836165029027112045387529150606758690673755061228789815874411621141441785037742075629970659641085359278234012533642283529256958092735331355833465340146064182174436079752608264631176276985891827504035058161474268865325017548206967841209690759350543530448887420304997068470448187966670933234536850404527454764933095034915189428919035738568982521955369206285220023237317271861646860627659646696961199631760160741267859229158869346415859917301438818684569455427071154952582186330541889326168851766635836746641082887923710612834674207249424576949516066061752154135619816901733526024928934561252327817052236478698274987407010204103103907986397914459188988509023642253997577706120833122888230177800779881815406415664520989472412106762915701035762265324282530180017590552334266366015244704407843506281488996044592285789332151410662176618151112398242615975995281773193114543728498323425966884188236485646647221606099125446568911975590122067323825338924966777929912909973619389170989291125504696724826376643895978450802965057359801538019591472435819670574841343781386219676390371899435566592889473999242515852538196640596719325877132762874048401744417841984730543527781040446543908117484632671323178580434551020096701427886230147186555237585667038612505398183470019998217057264368054632236503200577735853668515637130229970935198725544235208063862892262526136259445372730613472580215537766803905475672581887419711660774080838236526302749171783100789756873334433890759216801628458373212713998094495019155487249697221114147520655096347990780471411068141674458319006241103023625706541875259003679675924115195009483798610599628725243708756643950816604797509499621350110787298495620345587853666857913652402133277722553487154638239215736728485873668384068629709228627512204718743206817249351656213830589251999741075954008825516137196259799364984128620184988131889818621331072574939488939324705861018634784518491108889947501362462958863896628591239422962396860260807740910295829337142722786822214277710242790369148653561012819862292966230354427810563112019030877345950609928519685957509727109811756538133866725022456192697084294162006139738897504250914133703210970246891138152556634605291702472958359341251359510838401363471226217181523668755074361427438370193605839980736168989435838178092104755336100788816317644206251937547569859404923398943287140265306005375193907528611913138092436000093667229806750038432936991621654407503317795848772086102265230267916878359200989529316450151713737709360123196506966931085928964355800458785105814021437010450672954608796601481292131541971118823011238679884529534463028472885674380538720965441902319633339147210794622935322655441348222369562933694360090407372881480596580597370142727827286397395805427241122344271085386316957803750878216019718594736934923306292666787179293756305475043104312369499981487155782093918495589130738461237210803117239840364354669862746205665763321534078526454105312935182836327277999924001759441959997415430273234266485536448549621173901355830769900378796981359685517083367033837579719397793357394869722173578499201693952243876694548160713253529985667219394727191372494465452450267581628590139134334556107921018592159915003481962976922069782403755013633699732416244764077734977936557951729442993603947624977924663114907037018144815427325539376764697624852802299297807251418323098913164011565267078955305829574889909319556831091521071837686342452162683172292528024165695532545274682282659429465149948207138313517094910548319815714531065925938287214952287890230776011060207294262843650969337916170067494719206014779436300390373853692697989968216804017044615308377547436937693295999020155184429803075505883998895385909462603786361190085221450848343769031261450715606908748226692294427972282897001802783162833416069241420892650872139173424708912956977960193823251568616512189771469543911465897490371716739241976038041603506871115125374652443993121570556635292240200358562894888821403804199686789864632840254253720811451023369153371718953041482755857449513883980270205541011875604112009402793872476044179868436385383866552575885035167173471993279262608561256214728570293363781317270102991564403369446505555731344835927297141758244773065976070579055164667052650773745132497660079672134495572617738170287354455797460025473211046211731301283628298032133204685664671874164229530449231451847972846095761096974704596831545543491482599813793599238242708897540250199407281769321743349079084437455018159293713787458559052583019727615153662019004203930249272020538041682380031756460811379654938903598659009259747067988838134370094877495092293748818692871673014289705916280102270094015422127231711155146509070332942170260964710007409092213344936401271154775951610036051619178011738965302309861010581769702220958110246184248720102829320222655187497136175768452055893703615705825937922141561580851399753329244658320138681789696964911503568038418241202469986995142312219727698249120744384223575618942802072936894932960984705132832500626588824889591573808666893535633994385263035657702589507019936208200941351054947825666197070130352458637905900127105663780722787359113478997553632130102489522098791261670627534280355918418698061049013151305175971198637988721943452790248177427976451571923534531182391680292971365891921535119509089190698014916962245751803737181405920246695625772439518284028975344231081080196364338060025915313748513381321886132249448717958271677524957538645279235069443641514690462248194133555310999478097628550964579187651311962569783914397873159688029766203169450233038126054852240217185752273059129411193520856367193604387973523877072314866317482726320797275458083915096538812943744401598391056623932466217920097188832010994074742924487468194819189571643124065705490235266910040537978433370240849145515165190480391981429739288743442732295988681341870642838849915661921110841929962981796670342023626003500797907553205034586367634075104775577815370654265794373328528054061248771987242992255594348643912803754981772118535053764119736331780155235604775933540238613628955857188804082218288892555911773543968673178135933753959355488571119276519569912049522282293247808208526481569234915098999793714212217027257989153543085528904824993199715592664789803146811223197179720875730709526949890413751644299099018275230099715901801713338914882483636759093151166656048109855258493213979935600488184980525462013997681146863334025826215315235948928662734156149999254292133282341359828169159711802762929017562094507279057282193068684272453968064104004865136850327391663597446793961748084303670267039768651180044348080590758766005095211584939624853615906190926684389652525888128670894397192471456501462511907951417996128380836055181546279894725037395075465665921704250969427998966766958153532366366490403231934475482969506052457764246425975203665759088022522066599574415435407073826802192871364231134372633743041039492833984770201303172261208217554594895899208466397876337534609977154121531020517530669799174353804619963225335079980770492185072493525115579079621102104181859450897061647910280856575475759600779680953945249898743492955799908611793447822267297215032706690438430405781770005331938346660516502110478644225287910588507226630388129078440419531012220176239446975470273265372497792951928205298388197188483550597562845501310935891532810527977657600323330190574297913921418575536860728693682375389077101752412915493276464438268463626386312943285532429293756932529099891291122330621640259308230802883551469034232345295245928158356394727715649379174678409433911019142941874674357798001889690801693306448000557039731584915757528147274775160424274277264591494783887177861989653111188891098467237115766598266410391301177212919977801859745703076029380712985783462274730610235776890543885006302357853181984661974442321072747957829654072350418020634007560867792480084434416947515836814194240855644404138225983161028873970541986198631425349692622468229985531323081009939522032326780846508653511626110388172866634260006280308183847643006954900211501905460966064391702237340209111251916876215153946562061510010911767741379698075530200431007071441390308563485874985833938016203769991056523718687211745237512988461497638225539566735932464046166500447098771905962660512755882316382976513106626188975730067425280348690799714345393696238883768921944121985962459062056051579715805301889280138997948716376957196739147754253869562382281972202011595166898392267268268705472490596399351809970400741624205805597388758589541730516728807431924049108622901831372609741527266781442821782427195297887616388966421221031432565076213507503399660205750203167820018370744703465334958291228985255901044773430297693544588562839420485335825107723719892491679457301439813054568998324652620726444307608634881472715165909277528969796894583672471749249439683200927204396638493135275278179072441439887870509574983264205712935693488154044347149912616354102131683954011793412752144755895215917389593548283563990889950142442403999456005783319068622476053026073847932011930202653128705926623177100687389666030045779917670406997489158093593652962311764969565832294804650525839825207739585634105766883281613593502055345200538982327365154705699304762882249097910069992196506925721785222854614265216170359929055914847105523898012822416132480699746091988483664455424741789872215771088263526178099147520360476307671721482190826288895985693171680780343350883943797624423074188450606769618386721717545327577967337215785958871552603723725020597270785393224976951884817313558142964559169727202451799688753507292531882248420467438667715980149633435189407983280957204483418521314397828586768874798600495809318985481694658714391733696272960429056234576998815949906394934522532865985833268562514313299852225161618724779909261465299048624266746726335270225958415111042251607625868280354315031220465051090521940482605779520779577350506326054446467960770363850973874747169646320056350858679432237584175719883754737845683910425301849439986647896262171887812451422197548333113163231586105939222256729309861337363708859166926491770410264620927724380076607869097193445893898633706725396665512109178068777344000660606158525531636416504627505651441412646288359236064362886213937348946152608849187678138335576644530179774389978691228400954522992591660616162431775716621822189955988406683295044472596707630912161349606055906268517517551930600556204044818274817032986136067710201452231899227635125472593511844101896812613777545759126571024502241340416426514680681977218630847055256458652088858422979563567585289855115444270398392511540206388110283408670949697660323669705602789601048252465880443741638600754398309259091440739335347902427597464482923872969635201472532596553678579717833636375673813861980631984256941767773507776432781996754919544005403557333712879748237618408929895611742035811165533625398316339335354782478048545181956023369169900248453922529490160470105330793734239284210869087630360624416262563499054364520911770717554002876869574949054423225213715195895213448217383135867887151696575099174679865871549590972397744976678222932397536286718490250563945861971275063779552484304796626901765541023865321252028912823299128482056884900444977592011652691084250704158823653919166618428526261001494541005244414622418022729689008575768401260644531728014393830169848420283370574321299654267679272835065012143050270680707085903371937347276230912511891177793534190978219444871438206071061550363293648110116346524798001879929552598571798727783740138381455767217743695980678243408344661586960928342389300526177093013462480291469875146134482415383857642175179484944745167472794492792149457972571597604440927349579942733240664300994216970057844114839183205450107643992018755908604051782251873746050792094142751982722718029568313004915284517041032549883473880555780624591915046357616912424704403737288565394702619055067906813717304075371673404381746023205785999604248930845785304492310497719651454900771460199429272699636510725862279458426984098868403521005838448995826084781499158629555222223073920007923763212473416949611877800167720267001783392351087993442584262553543684790255409928991515894708953893284806231866090785190511829916784357601510158520631726603827128267798466002422231485901524699186878311225063893470384440538718328173677798791261475416858245421590758285234779370776426351622301101029328476388633720476897094478666182472082235849642142608266723285470434992046562878026383433903541284882973782887828821848514710119261414275925552444528724212319721924103696730189792659645730850633266409976564682492848637185495864900351327701734070562144322899258567619197079359179849447949653927846820551317587535435571146282053151262427855222910101835385943473649017451889926783624328979145078915252632593252687221911828290639101113484759822605166442698641997876528470718846796327754620265469079498399739046121426490905985535928932688352685078785550774698164978233089976394884743625057508739709629913632639140837286090156858507462252036350587788319657248076303448404080126593086643435575187884796400080352385860441803892678628944104996385486187771362449478677095416710760946044105849690059928927716737795749434802055728404009000384173241230958446932302514782437197344205671895297550763263464532750014573268112737403087474616232164082717323505879247054648340698853414566890005719232538891976925140007317358202713262938876343861787788396640923208008042845648454749815726969598594580672316660632232956855581553278362573433132987990973870583689195825979055416781189261649054184952104330243635261175278220520442472569409087399422739352222410746587458191128420879330789940539648839298436063495565390090181312654195021004776151140367345322597540705861268670649691894422925433590706008341294471840747389136645482959761136151020122723011404822116467321603416298750492159648239405132664412061102171460037103800670215555273904337372850118916081492654914021415029881266890546126940922783171004460064695414364557145273283046547606255757037451523145032360743772308753793294204136188106058105984347245114881836962199366145078166771706566672107948007746458498963898353596015015391450652562288704857013178438075499860052028603146557902375343956615002462041523146655478900462006011356690283326234975755765591144972912860263335850218407554539065390205322575556197277000382403191297895148999262989843420812095490957649639442713945782908605015810991376716939775065704528093485719360923384441763151195884866244445253078869439217792435654337052252205665861583805289828069023593446580379546753398487976190014127244776497741292801239888769748176631702114610105508908838569009370765469263636233685784647210041603595237832659384521151512811747946024490781338371693747865469356679037423462366526196717271854227362240606230133395174380559818595349905800368071390386026850257611731426763075007182691849448984424876337886856041928334470852890886630011272533361873030536251660865268316093022463567081465396618999496670595526862427597382690839074050551011247513375835634829573267760232153429357299929160337537157871268524889619660294487200245319198777292335459238661884935703023271100165101451880683218579443837943873477697849180584583074616750530463863583093369605083943141508686988256542790992971981872315321138142335709518239202836642620672922394193291451276040751632141922461890220959890497428855423338241687567987758872612790692762813363527818106818106497114724563303346853046231411237852621980267514029077979449914418573494556263113983199279223464795165933870049440294858150821679297421084584235535029644053260167469710017507388891471508591485316640437385655432186409325651803453419985122612039398272749103739431930450311399415280340314374934234450189808644820680185090647422728796541578597188508724445110332325953927125672501586337046869186052532654325463548615143729938406431140859078622305625983608553032966984484808542107475902665021614503758376372233147041886296690544513422428717191828807571525698981784587437396368854581687577924829847836205447531093352069149745287266076515571348612677427731601767938711404998696169021048451759907717748047609428433726640261020896830236105379768502299679335567130290310755229870050073554449509673527431964301040612671454677581856416158792928913669502305760544276415536075097247100679024105117586341708355798256040721684073380459164612819838051409681851720188185490835369904876233183650080237744957007739244555619818240753117779345278172643886552638873515942812151572466562921637851698228091310686195361612876541789422049933690072366667280192364886921728757717077339394915390911426172975359093397565673856091478923045298545613430600221282035870803985586408173318392125840851254629361686230740102103820424576327046615332376098068066364910145435392128449865706423735274941610214123069227624254377288142814670087377122068289527958816873695808290536547306699483456546593390954361678434852692542921645626753037622842738440209784157104901820642424377047641929670109275816532688408431082224476369132767478042976404222954899521329249489861843072767521707473778594860715259411960624421924189649561402134812425339485677749456820448282442164462076802792589439943586052048084744905769543967154437440980784584694641050496693935472813573590746133667276720458346117550669546935445563324713749337238637585940015149090338067217990869122305835540737181762694211978917115965560765186020968237777728023203467971359350065941540429208791937533491738403778305399602612898936673354027403643187868278191372053827322785741907100073639749073960316538831688780486136565577939356998159223747138731774419916466518484042096889015933278125385329684359908605679085364170697312044537501213539376907036355459515995369965809951996627730315885172933018478514296673259675425511605031792796699684126063884225038902810786578663975883154125453850536101151594822027802378233530268110428404188156239996065559004943271903453356364919187782707940638573787882374745118406793282762014452231873691062749267604853690114703254132726548007117011593965793022113883596302001027887038044544778903059108955321919229879835677369823528974289130680502016651269222056345762224120911782957535868091896350933487117167910865751773390205365454767338345791451339200009453941858691893293017019665891750688459016812761520430615933795102313398570363436575313980099857042944651418096301987370086537899814460389205636193811797325609795416609550868089382356064199142205025496496956387119959721368969739124528756900064039054514833074221315694973677297984151894013470208156323151229054895947752923862549291975098606939344693022827133239740899237306711894280701533287364340523358332695532773860220866125934218039925363011377123233885191110045599678804018589564256976143852227464638155701335582023919580751974605213482515702923328989157659594624823417251710692444333693576457712376678448394772868974457819174232572503262320506678223527070620382012012930011110436744010186945620479010502311959931627446630055720120058414089473565490193075195543381543645175640701603580227199329787618024618502830669189373210857643877217275249411040745828880495984787970974948301152277455265774890832681312389649305778187410747611457375322785783564355098769772477139953660920114130648378917315172649298971432653437741092479617642485322756892399647210330877672249294256903625556348347377517950098474383961956066603733484710136560030758579714039418763129830438409310832840731784913165230274654283400127032838085844147101421339093304629675209703294501191790141968016392201413673785484942667883084569289227622437093215027481528959877975509761071493999405985252317674318842639009559246549486311905879026062183709403819319151684742934406469439124439503560700076326472247411052363101026873761904509450700478301220372929796783886002095422971535641044707273091143937447632470457418605670435712439637709402063022054184575608706768690294552969776647413506167975047566629276262154884975403516418179484794152866269700244558979836684978150012645065333807611636420051669223437769856403302979589664996843580268724736700589002918310986695140309844551745082792433525133033729877762434374892345121661005015126690412581471285727576105831402428712044501365508455053966047363493165923337952987225119837446102964770083154572864904178718831266149344974621563384216893171207358413374758359432593246580563082460401814390043563502915674044075991213753145406858157934752339705529802336198378954947930827948164752584573120640188489372333470220305317204571523846254745664143251399405433481391524879116595788493205164461667283330293982826249937148810115079068192810024690156092683510433517903455107939262364764755044840422232450526678486231753852279454939772147188002810152771103898233276428009075451501233298028626250879273148054065905834790956082063788980625829388847541675881505903282984997293599283717619593046770409407148185472512953319798565712558511917005669820173226743016167852459194135528293565420134759253214632760560115273161116280607327711848890621915773767772832646406576566946125301459592221170450498430930707511956061397690262778178237352814023993565952712615330190085065756941113196272453610643769379394029868868220282543552823103770309538694715897865286596406113112966429711546700446327053130662209295511167036188823850492682655293847075654372220259358618339701185586965107089338408642005616820346870832477763926498172466576637340720216376429459224941129673743156040189310959717188836465661807021034860155387866331375962947863031255767735263542354554828244508777886370126192829575606327483366878977183246343400915798329643654924092379303201335267910912140431945091956891719492191004977008490592401610230717685427927114900891346224410544823903061539347017364432435874483212267590855289821767153364453563664511336086068875294181817795999500362262221386029611074970130185409645227047392111377215428239241788843168144241320509120739248192089809885110347356357989852601956966300012398881940902218250886462509570790858748816320630911468815338972090467057123789681004606531529500534255342334537446781057753481291865862265283790282015924008504583212300119383005459465396121242254447380334814126240560641189254962694300904903739760595460136797187397267498550197692370265059300844132720553925903853989666443475898053730669068570945970260702718260666955018765976481083491277204360290531701669398367939630632316188330025516539833640186014364444610061061075266067095967321792376272045902372761365177313842955819818361983885876145572496552217046629258292501715234264758798242658336126542119075412445502168099979204252962732322348102831405915151748766943253682249873844808423470022486491278602757243406806556297902260483538356154698319464011421352381951458146574697994728820803492468971571528691770137378976393672592326814256518199404672389160171797731139012838717670818371699024783711714022480611466781405592846427699846879639121188114976652097105980588829810062496744008205938889385468874335661018622592081818811758414491619470994191706540466790234086585375088311147663340223388619912815139447662716123231335317587248708109394748825894271494244503904040155541905769680413544975731749024928276120821775298504297370906097205233898017148472177983638446421098650874727901944137971766011887998347208408768035605317388200872446775781004930658183479522017262780771183585660059371432193990036825522583086844487927656517300089443431394599364854635213033970175907734516579605499154989368936749926821626029005124371637072995716966721192907086283851235345918848608721222432436125571301971062734544972701104517266775816249981906244351053101661092317038621785427699276507134427137701132784519386115401390710224414731223046097778075036847641692314763033839705058211548232030351567668068743470384878896377851726353086615879476445450820501157240705859837416050936782333226786170589808003813081724956948064523676042010447749958200111506358360176292111462728763657478824862989829671756216998171579844505920451517777413991770288009963745277826095454235758769959020660865628741569787345216293315908782184522820397134735062918603340527563089927782928869700887842037050310178208773146620460262863494951358050109630252942943299666146724286995488992720284094877989373918885091731118946585176841474716221620571839624538846694150356110387393742267518646688560081942092094129157768975083839107265019940121007766549143550525138468213842774988883265782948704017211989870416987195248092116288693196769151825007683662943889195324283597549287697732658611105837064130788554521811471948383097813921730333953055910459936511910845421509766733964783651215809960824545853254610799694996618623606944835104657539416449864771135744005732787811735902185357760938856205496379608958315312956489526190556397333591583737625438522886742646076820115803528338106807946630405365197407447851172612736586446496158202916451835823817419744411301078513149871934441629525100477449344148425530546174808990428541565077405540820499795587967944801112499385017421282203229416374764447706876888940992926848897731357960308626859786792198569546722712217017467244951284710861060294798256683037950848951758884537466552018700801541625671482159942575558064160077674512118378649216254379836801674114103342779073233995863139882185524565033100592738331789110735251055453037576437177292641677961579589206498605801569065395857264458896789396003418290287359217005544796215584094445247750810958633222690566912739930278179735668768467873107485105536461615923281328057644571806393498874325344626352533585837233431454497496833816293075911507319967880332052698560996194629257943593085294492180792594932361270694264709504165921693165359226314902474881481909768978343938152635896365937526996156065752334591298113709890015362045280635085447316192683371059780631123877876274798708928806660370267132592417164311408006990243405141638419566923921794216839200509778523875723056995225073002747167526047918533751554350442875053253806312221048242294078659830826740959532125345743445565535529517905252291018993015855498618044973120412360508361820006697097188407035260603601540316579011737439907423797978606730341624717864616274444242501503662249305517020326009324576090733288882209495488549196095934241006249509488757882123939457559517159491537848823022490519549151465592588646979018436106224722004548720072607101213590445152727102658752099434762775191046209541917552017939579416808739293175099720425537225012014099388477436554920109501924047815828401785982382551582022971777018467690100996604446171016022074595083697078320813415181339955795980037133935509425947955439267704193716150597389606318705577037632521977774473776095633968093537573302537926342727900209860972107879113630394702558020427819653880383743562446046182634842870010346628121289113121273653048290747772045609231594680258458063825341061919917904743411974590227343728978195415969030242440095445278716179525833369346406573517480636703294552823481666502624882813039923605236381733239708141244350497374703062136132343135124903961866884543039039401051261863766347353086286277549616292798967043372595515419043627737495497188226404478316793269917448318555558047757661634144647734743827404531656394113431006636206524498197788220811145897045857750666247932027989635279597576938658265292781993484232649217464739398877654156399545145253072626535904484432064103734758200805131329752664525013054184245785148037420266003363022241363576869863722925200355128042225448717228523871659523941112212161235617394864532083854115985530169863976911004391250577239172782327565359258493954072189437758909889685964872526898039937042563729747852071995670220673581929865406348376633245391980941684510887296745913132698176104593530597724900126088293774699586656171430847787899774425333839177416622154203468831653675554175246987798195580856351345095537145586683256348086750290084733002455150283777922145407825254000528437090182937152536909027494202182582874919321498084262073449929226798227829712184288560240770311426501255629118119595123987318354665903002672845528013084966847529098201201440990271258034299848717783928895760523702013945976912892041311202895866333824868052731738081193359014826788381662181134371711862563999179373875764898806061053203660095348537357556770514399062527849967716741075939727244528923228173572840297962498833018189252031379650031638496485828462969216236828974186858995009629215595178263724697671303231560477675740935063530065510461303222589972794269512469045752472576959497091476127138094302177459258449922941561441121515391561708288991940395737176733441445794975093227893843456779302032264712627956751709685503345208719570858674790254173768201121743697723345883596969677328293915534128150546850110893191137845046372129501058757067294315960388497964816448886033949216231785780112191788011281622833507487883308946841145728603726701730589496164366832359548064656075091640040027523439255368399189120055124326936520367177470581717599619250040622248954510410148887823863552980821121841298882908375723793220934577974930057168096801019097828228260807047183782293674405499118612314139261896262552146557656002804492159339054758848060585393447498446092399799585988010882193810496683651613301261841581156761036619206731450127237614809304663009311478014711568840740067668231917314833585960827225206274384012188307814336348001464503781176645626249207738049464939270508978837668563929319296680972274581223388301411304872995186752842784817348896899974595211412216931484547926699016394893306906761686281699924733383827259706513521055532416209373535947942972089468823006536824574461515156203039253144588765017066460546176803574145351585568492847412491237137875638580415220017498821795681492128235752804486062687401070803810101887880147488407975265261854432006899040042376487068992963432893342454410265515659656921001267652739676134401696633982489622356338183846304786006037375670490449580821526996427537401538635464489937556095990821767582082301392135307253769208627885002228400730491615303434021594257086484041576889215413899831429753810259536534535144591414625007720446401547911607150350336019745420850676967433279544288324212274751393677979284627081034251043299631069058372063536701586819373557920405348692303503940846718476931652937586074545911237453440103213891517245497949015320561309599864846049195315294530769784949223595094238566677949177836242906324265384144388049465600633467554546623856023322828470317169099106047989412522104471687883124469812133827528759797651477600557690483579597094871413189456029541497347830024186363412414881222219935145668590964955723014085691611742549939468410797641661464164967496465309904961252370996342788993178229712361638701066798407191647581729767547014885403704236423328353574840171963119118811335876303777761123630593521713091804827795124282696460222353845390178212498642943208860198628371624499053921308035960452832961341923659994904328538797925079221075651968455563217324809246557236302360686779669246491973981367176732013944622232426563885270394860916007172661267838052202056915636631066428902550906594796281322547222698030331919201980826811585025937947582205218631790162706194938226541281593473996795828154511671236669999073654754848571910828776245418145817330338793389182271014911772680209588239999388709360622745524318430483851765639537415610559665163503395809108082717268309483834879718287561758191127729360564512361598412378031270710747966749103348895101766326240589972790623638134592599633578820060872576606838278916300861645281870693043983869872465286695460744881909564899965231784573990556957593073635078853646168817941067552926293517359171553363981476315633232782845067887668152211113466789672691619093558361053323859900717286311805771633749420091799240253990474331596663999963395228073608501010779412620502238606768979273601182635277411108813012735752961019105562136976901305540986359491999981924738028583971305591891096872941153301860892269441421626156660240878713873529683416205898009144435185859283615745199665065289173581232478538322371773593516566432783511261879716065022048502537244593211279977723737237704855288821999161281278285049404231871164807234771236426925020821720010262566421909559604945559775688535044721512753885187965556324738275311421718589767519680177847762059433424042230390019014419151406481213708121700056082157498815596292404553210544770778545994577203678370857880007157097366932683770764039944207486214623217922949301875008334598257311046065987306475310968633852794766814853703451559672916077937957196811236546031048088928780722727327495222295466371055054451030295565097652677911742662928848066927466816176673701700921829442223617912099926792669744310914548444397425691476247573133070944222749469668836563480409841836055786962081891773763546960033725344330646380708032135440189312186559677036555391457989254067478084306022507161143167641090947508649077884250425974418205884360582550208932706730964843922180846611760721958104989330100772809580973237628055213965323100907142025560967617531957943440176413531426341322294157904628003719975146077822228200071668727535703395585073115753214922449905864674726012212329456145549993766590102055646834400769272362266925243377062002951366957181318094850187481745804342475212035291214416442463915027406694362246441891867833663837026648430515433669285495791152232078908575441389649976786094966552018752989019226328401678608614633129828340398464389677485655740205499944447989325105971130269140303793745998003310435224938931366040427497873786498205112644666128932870889612750304817192848134904373941367428129786228751845559628561984861266509240525156235383978578332001929621942248913960025042326504498521205425067572454666220334374993108759745362826826947923399482609789594267481371274895095842975323930759533920664436227826748125907491987825815604626092751532078692867499275855460966947745570630865678716178982414557160251684658297211557956487687985356624528886346960641121380439754047196752943060467722161546117133326276699950638258470086531465901581000108050417871057566723400481047818119024809095643444043928911152993729017550480036908577861333058472670447556863036125343147135417926238641834824952991650084097072186014852831932955079625506769238363134210560790302148408354557682985219465770504569522402412382917535766553806611552683397444983245681115438727778913658329586334899645203116001645302004692191464479511907232297583045182017308632825769087182430373382721592214679521016350538319651602146638360168104919027403591923635646627616874434356757393187515694408296463406551875916915708429222698165541895790794867319228507854950120339028049599522522289182555916015958751841847298166076806306710929951181562262021251828546529991800399024965418111898929348589402611306040986102472261179672880332893873592078301278631722672128962577884035083121381055118800672820530255223554281499611354187700322020675668314988472596451973107047512169645671375162159378059865827231599283397001567119511158499715001061450339221840282995659188505825575017839794624846830337475215050673035064877595009914232240167563466153053765552193963634326776682936138731715863647393859960185021661217678940855790884151488944487406678096942693720826753995116767442878132767093970101735684783675000380354397555945141379659560875009095986036769212881831846709464974201355290881715564079861042039094179596307355740141800344668995751818288638783629584828059085236219999111876051642817958201049180100646281967167055584630171787159698688449524698113390313463456356070875900733362770636530108374616935501878061889210071217978519990694965208697229139740813549034765951534659314245632465196122848458689670564655676872402623900765096708276901499976642065670465975560427955333386158824468378526950451830504945335549680047108576893683696189284907214111999244891620217479875628851218509212216513540256515331378896963706409745541051772902073785446701229175963703048649359995082073177037349540019988725238572319220682661432420469496087793764464635736758254586535772937236538313357414540699626557510452839828857459431839906761370676989877126437987718748796497754529304811017259076766758113475033171320711356253661861342257844579251569873244313358228500527760395634249927939227863618180628878265825864328323422759824396681888046587085984705645337670127620306403615205604397934460011388981109309997545472506597704994209447381206390269680975570095703794896073100898349269212271409672561093481357342381261857671989765199303576829105879837131636425192062984591852251257410664209076876590837188086816401539783292175540183466203675952640624169681919889231484243712147509175507107852368817048727925369483559420115183996064915107997889939522569903106833893370928600961301488511343139755341971084976790722708433386393970480942506903504485610288037614810515852814837633551729979906639335728638239545334330199643087465278537463383874524617391804768562842137895602938354024098977686244475507743957333102196422946138881876031726325016003966081154967439939040090641018557425017411132906096924918268801538442734179944155456434336143720770392487387278020233137108991529667834915475519786633915622519680729140464848038807910484504284871226961804425963069047489741518078073283393034573311202930768242920427173603399763777557872949571991094920576988736182990476407732597920705123771463590842252754553895102138407845868761494415271345266065904734194485963775046555767496263751287671882570438583580249453177980218485106769389844499113077915933436492320411130542775401717053282258613159467113724384727686266801247079891851345783722662390393612387245534216041829698807971597116306701315878640900804511117293521578012744055748575434861922145715295763528446480536928678658977120413749562595728312305628149746096589685997282979208784805509400870607827796503540341319976150100884556195290642929654898746634689491477534311220243602848640294741567594790661218077766394866988048716230829511467252495278027891852637485183963410545144807329176648240634060556082818335870648143685259592464467043819259972454451374880933755124769292312218726147978126668411986485631906582839009855010078309397176246960486392906626872670156461980301106592233675275683340269891906889017659019030756172345585642659517365248869907359455281175891560521622722021881016097524241868646867955029622044491149759233691490711918157098642988337824004399165007832159254125365904074667102447160763550918583813044769448591665365146451965385112105030125043468007986181119313315153770559753219023200164546093603165913924985716365962661059741881726705939351931252982017079536105078088054820489761165660018456290800999304370524037750477049352876159974502039531274293625100571905327886695959396213406039424660342462847351362654993859875303092938233155927277163954228554553566976066059508646627889309931369978851489198859453814225937586633085074584717036638755195071622411804488543948834782785668648645152592563522201903438151996520417430463079271233256187254372268689300589144225107031581456475139690470517340460000533936506451267854163709361200829196122108771912848334289114487697117629352439422827467259807203979264108869829304971657522065129999147062451841381822668335644571625703519654561660989432446441701987400812495668262917644314196160439256117950210401639830914993232242179899232355718881408451637982118556573136736332454109685955313656655204213008718063267197609384945338540476329331167462861605853114583259159240626452416385523713336884442628904081015626981070877027780560490935929298411139194702608750578114716717107799235820101687219375026958138003235872988198983805612729290809166415562141634269705710758650955350184224797175906312621739720141016128977750748798229571236385073723012597622139097853527886614751274278909747950072286678773828098169527084711404994583541256640334784316343242160044905382520703451933821653600666951495988286232902531205414055929960969486032476648433540712126681340516308416953252177987545303958135334236860236730781296776549243864705950601560437530792494622473007143539925495520298302938806089433040363783916417279830143701292360231991367550235364713324739873553177914879373610864096034621698292473027868819309415197321305054320554458883083107510707833517426861473095592919405879184539665388048961709864338647510661247503888538531096595601763006766093565466206009786930013427391319514183379655985927632565157486613539256892929655279022106783818018034852143691241946547049342833105402839351249535671223270357696356422763308638971369327488385435516015068492203477482966537558518591730975246665513061831494262370726826266669201151218584443372034869431429895138037769454459780034736115543897914365520821408495190871028155594478213663262499668951215726713879509355911532643302747962031602508770954194893320748647052039269453187371382203164018914702005928985213979836554767904266559202989856805878490592475642939975248264896951051007867250660152969703617437278913710600649139525816828104852288387256993494877967800849019634433186241582142922075659757089853599776552943894351176963309898272144269816370958681834704472437135611053396663704384504232295847454105066221220897318284386066154660704678060953952713716214662770778500508409712165379398714605280314925013979652045215149667240516276212167039669751318153941374893087211507509986654194560451938232042185993428112003058269696797132174911837621899498490171920175476815441827584938020959941170529452021684928248644922995740365849093649368864488819692534870315420015290469301589517721367571385940661082826573156835373979888567783557278244638212527423407594775619315335464626127935715480456787821930282010077981767458804503624052090576557503348986143750373007564957649598753590123594678105484468862324260723261020680890019670599728584567218698115318839052166540493234935096902579015557881833509615932574975248716538074465609264100192824789986549886284421134507714056967880203782294439701101576825551012787973790442161433960902681182551197680218106491647911327529314987237426088489150073737353877888661937259691082889810978158505797605444336312341846521526612731593024138611872306007635594668326880719382618018228684426822883874455707780216287868013913576200477987789152218761862795871489603213133215867459501493722346166208276194013576766580766358354370360242949444130808690960627860587827312627247339817110238564559584562514155404502840963323767218510621248518905437737506168175223030398551236910733815328873904856512043535964609660913123165514640588229279868285943714560665739687869129295718196692845538607916243516783518151223112670699750894103843106407990181826877471563784305838735826267349296202421675145196628882767284162261371485008223520718998740456172067688845882001577575410905079892845874601481312725156790565286305805688163165238197058818482531444114917962641565366115980580681151332029996910033873835663804713384181716828101853617404411103491862242762245543442535140460254660865406443735942655585301947061129041807743760326604471101937360195454097829200628480319522449079710798970106077268139909653122744322389445830487651930410287206503982329050476975016370555282021807591889695376128492682485629763325140641966554032139233580468106336691318891979516670399084110458127609417209883110160914686162787096379981635165303746034505456734928314412345526080267709463086964066236342282634868185231032346857291863872131136953585580522620884966937903594511490328817472575049355749353970316731706486732624068617545934468842171314342727223062875647018362431296691984691532570958690607138180265522399640662996103464127442638367128322018067765252447209724653788787956471610761345829709648928907184503133999838883122714449180368137253174172932435880232243920637783256561795506173395591287540957179944805937454909656224448460046100537071534174570774119846430576513436688416599818173491031092473298478754572769188387371727865839018848601848151341720424056242754814377754895658900004580531757748373053474075824897980555176844365647104686503927508834546319074110001835484638377428470626577270539428172658980602739297660229157826062112462394095747082821025948299250636017148375155914022354288593911294698819937373220513718809499641224194547608804068231751373265324884809756805109297816095081453585372995676909426964236567847302422751316348937280726892864725300695151371110165331043588205554512167220599476688328186718543159074204285892403222891777890367388812019756303267154104884013126246139915397633508012582016675997098574880408031350377711186522105317565591511106048553299242449036017308286294496098639305468889506785095165161944191369899249175092415477738037321511221620271406811959981257623118812815428280814101964031363499432988427349445059579481399832667804735112982444780010680664378737336320391661950797830839216513089689838231400531296940607761931882149965122187521966579991084895571377579529672784525159559165345517925949308987912950999985903066783404646926467786646729119681559647193929404039825637347056974699313827190330680543899799240591733721297004073127934904264716438444868419956668908495491039878340831081243827151306592104824424719515979052601299172100589213026665919738162639620291680545428386118190409236144657777164353846793218457540339166009240414449583283678170902609800739624516142652946339844307922416231199884109139843151986180991304730431969471472860144178989912458779308291198589672626044837471835147396651882141190518286869985440407734337829310595311312650594131243788626218189902496397717687554804762267550524275936047723236127775503327844999334716493096677601237671894465915680787815546299979520157168005336991630232594831531996248131587856396147175201283974513492947037011791922953525991243960161984835627204291838280853694622672593189996778120394966710469066160815810752385779409088082732576093150323749257589723589415717658499712350080942828781356151253018625471791411183385480898067485067065930817020947900937592518214866583522038327164978411711846145006688064432865276146174247158349272990724366111392691279541844684605913490086216552307427468804401557145467857027299557320490866795468365412365946593069899516021784183227741407706544974738762163189852213019738071703279713106607719050482280170964087041594139839012014859836481113962352448431928429173531607773366888412211014820659031856457463068994800819156563095305744822889245847786719843418511893890110119997212901577989489221762909968785388850027434110135670709157105379801870292358255171602608490486890093094470324347290461263207139880452558836661188909886852502129986600529572001788919316317088382609265103383194293593474980337776214479472097528815665035945912140255526258244444688598853878330776291175526681457792513916404794165862877970213692618801183555253407823920661331880121233714489473978888161309442499168096505623125322606072560654032965768146571921478620532538327975964288087622907233834740650736027901155007300692558955778339801852693539953055702797693793928923250575928627895135584968118116957017193927536592524418321076049155250988663508524388372763160065752768939024679686813881167622547186456819403553933977577878668099056227754859255031087108335199308838175786570394508479113912657634027931788636797787943526994826710672884730166588163778358838902369284658416846865863828508042545457492066011435556380045908788540126853205116070134316580441421155180067203782267395201862904112448314370076165482462009214637315844861923053221075003357738976445209781426870580586510802871677045620562449579486477687510209325749750707369188987295017226449300684733520979624895434685985404276577653205243235670748779117281395523494897571808681685399608272934720148625698804709369204536455699262293807321816618931625972690878836315989002414839864119008585708016644569806758425324205252064726143949865595141077693576739389410725343823685335634455062547339214842844036122830169939165397530010236933944477047824673449327141628206679205366939805615744788382028136679372411381133175974440199443784620550565010294788383936422853625402027509196178132652028122114302249326514369806021439608664854091036920395735436619052366177079847887996678661548090707680501537335568344480619066505772172945734153597800011460818928656420202959978344123501838742625381384614460952509369034520857090467078087257675810071294983330108411058639893012867759977517887397992741736368515112230820474440451514990068320591961327362115381069944268149789842499585666313885779641687379389408071635316312681787376498119475952668477035395528053818618298382487718631682914533724507828707358377957343884018953009970574489707358320225436740558468691407588950554600830758090106931848492095609576548093475993781210867338116835023884732776360002466991124070210312107578507196948961854089033376655883345954936222895673411255141613896262822123823094159616837372041022140720227652148344934941904906419095685685364799885125124804039144606505983343210192157998353741802342062775099383036559645474592686293984340290294943840095319019308938857854644183687689560319110799319646460373986916135040370189013193800706453554781473627100256478899735858991472162864253366997276424309785854028185373460815869820987133000677450312800495670874871448158713844155131609089491623106018114097658488724376294516951003114011675473226578800907413495308175713512233983918732098115387223701327946669121904591772902379454163352376652218994669550954286832130884408897853438180272970517601644225791452001305913913536412596768350550451694813219332527843982951175986152135616446236199245179593517283399003187575170063883382653066551440426398969513036559291914604919397822546816055222047406845389978770751560655388595406562464144703153346557964728705006228572339103242303932430040094684239101774248843197462525630444917591397430584933690067319602822271373640890850590194330467903431800448945274895247604185244935649682470069021316928441065501259789537072749382621906036513436470319952753353178308919846733847369019299607523781525834277354313206135484447298305529929521449607634379988536397388349973303660457394223249532332221456391941226377667371291074901962894202558109602518202186097216103838047144414546930914290301902491997477790315631067753785187497363432668031008984079960943046438721735568488570903381904225389732489972052220320382683607152584128917806862911044295960415024610435292167264589423841192624496977815816156149009057547756516522024296919257248714171649776164311926042285896397318115689323081350270991265089672250404223903773477053481232737712220721907112901640187922499989264430563786108778265488141710955512868935774118730981510233823041328530879487538726478164886929725657433792187523556159653865103342848975433398451603146394419268841315827372560364051357249378360158629483001373424486988398144441242633197145514777920256407814215818334859427626247562825575697955699291284324244430880916601945143455696855061450876959750138758417405002929973589428881157145386731994751336610168011462910186528099659127645439942058544714464293353360160079738137915089277637236474703093304530672045243131226022993280378881968778614841834491545329498128489170677126859614764110078996591406129267751524722066099378325123279996453271053058772866850424437310255030601313994093469571661066592765041286505784902977152415210753611127143189653875778797327252465646817940177409006615830587628962888270114164732546469365889556872713340707377637823191570006102445522517507104482780521385157675477902479877517743616392512357996556530185586268662537444988258711359465282502159490867829985881137303195938307675876649968617535954745944727336644197024949885924500358875535309480450289998579286681830985437070240685380992241217716735465548730610897437203511417347230651761319897593196935711801997548833223190929407400403276229463480834621582283912618406065421355579103592844434823258791319037331191890175260267888055283568570354215291878317864273089137623451302810374309818987223453278612978742088883707874105492034729812815157524567739914105455005092606622363056207193444107000330025713133917844234984282998880894924551634766583538415711914545898458023799371836585243943333489461076037837767388298985131979352650577363399098881422335657422420216116048212895691562289092862751982476259733992865898704976509592046446093048174420617931407538659590251396453728929514388302826084557776734822827822416058710062141150126502975523954649349108330875386780523549115904517886325021099140168809740502653141053111931892625155144558402941484001566046687715889384516838315474853182794460896978659693850308887448375853887739825688516107671095383778834961673094638574585192346624124514863661820473270763381274689256712584463606676712734702353804652860075918293748467945818891605311827321558761109592307293593205821034009211455839104103311031791907496128282584512185926166604529141063920756149414081599532997052011709693474124257577456937254085678626885417969224010522666337110135143916049463645481083961833892201432033345616859842777500986620462083032433141505432715689365627740546727915366266793474985043599781911385040672045749370304166948576892152265957647325667389781257028200585226877677834360971114238975177482139261993189973517070057349809967534272392047033868286930214454088523988791036760727859195136470361442628680123390041724979506442818576110902735241704794526947435579995153974740025556851682187913165433096875238738348411833588928929303073153565903118525854363338791994157362962174677825983414169145744811504888312399560275792121475615395944360004286873750951004403771145088718884398893034933834664714679641252805463654631773529777199474563725289025270444088382822740899835082995367369351250956635054208142744911895695236921677892115206003062319278055927835168671862000287890590069623654486997692284325130918443654579892243485794911097590565932710421421761381535831974448155816115683623909584531525489389034218602007008109267461937493639862894464957381365438320275825075861284353892797417478841753056626847270237511910847523311898963038286329858708667309839803952512989612572088300513776700651418375358187540865189256670182127447431901770599819244068060718776480094814140754999806303172573344498571278791493268447371094085532187216772237952899542020048774536954842605995629464635801768074777528945546936903483428806676062290744073840063756498651953147741199120591211485553490488504545746089982819344738007653670828514991388216338061686933189591546956488195441939594022368233551045441701196259311205691513587025273479372192219476113007687391703103087838184181111629802234831038981419018036621607069788084940211010086852793405972348505485094308246015231435061728063263129187278154761290604664726479390116853381668348931685748901810085802849652164536173680413346824545475387860763079201822590040770954566271373624298629943277702732307067016584282197009382239721122706391979753045301953203379535442576463295198626392636398238293659026596228866754144715325174672465320749716320253169543194384425181646641413541560199392358955975290799991277757494151401605977265340737287683958673563477218774784884570998018222741830512950884694750879124591607235391937449906833810971297715337422149530216482967460164430503799453260343227290783269799677606913091504089100774583386090383581995347757398371964258923982276604505059124724446913103962673564712307103396996034828324707807168169575857724191479161806846729474343016385570173761248023668099809563957735067099541594659256174179548222084177321515130636481817567511952341483971411094482006349604007839120815788421019156177102977044820799628920053418095059485849763515131588012573484532219833499243652640614309750258586292426320882075427334942062124728766547893070485662494285044362408821290247312007126530670689414737118175454781518979961401867416598575351513544823121251714503437598939947780537584176731062722797505321881062183715384579556172489645365025298736064092623042413517784750885802426700650168724273201754111407876568437496442979029257471853437371661108935422834874348329672392591398076374602871783078213208692071463550756848963075652564486196030143981824617886758297941502032521455440314690700759960823748187733134973547829226193931655315553069929430640234122882542131764488414868219973513110825531298498722666022031039400538301567712631894117383733790916549994837934720074592201839773724253198016279971216858721423789413480478311665536499715418988594152547802526956314696117884560464888103954260127711573119495016490647358193525140789745436106295463698391209944344290182112686887492574590311616833937238212525900827811075486353286320939392661495258712037361511045817111456533473981096548302507756804568660057833646179248000259256522131555177045118949034137303927175160637570512536251522793274968205831826383327729744577379723791880099355819588362157265708260596727261113863494826069938435010087698077521241331274731779367690286178947601086994089240965526932763580891734794940575466548645912316370111121063804593943427206004103945029948438177026783692215272318451039359127299488682956767947866993538217582569733217432211900089086403412860040555320784639931224678150815050957745822599332303649602715696308372990913468283481627355718270337050436855216545003507603238340205503512123419807359183741060433182766459706330996401810773101079206499925470892616136413621611741717288199732417144020156668926551971481883964089247452338005779047447554714178857401545296950524233114915710089759868148040679604963023255516298849601724611291854062163134155796055679565988550781095826152903992497556596916542637259041169244802626131076565144247731072706529206450730517504265881571184059208242141190414242028579685760689214687886344276708051352188164638606905675258933333599304308329491860847284929936929606754064766197221609357867493805296952152252299559561066329238918703283647512141155080672424888199822253437999583078727138375553974919999169712583487337286091012323097552751596295916071219508872157748852235059723406958900158506858550488638303830623741237133687661879219508838520617625016324070616035405005597101405054267601869827955721088362340920422380017229539750627368481221898460768827986387636189557740876395280207444749890188518552820493469078246233354311366698696272773893586768483374353186869944018481614585422276936479741737722676315685289331604696162353943192286995030183886798598208506509670769833360537432703935419798477285900513109730883955537691628082467369854092909378101112168974751213798295601002581789382582212313260204769557332800572928909349551546659797521560960023987539875602910257940154935069791086152282549560068126067793988742710352164094622344125425643695222219440076066349303400346222348561527335357637891393047013647107442971511772231868654832540312412215605134573361869472833984740975441661563014962781728846698213947976151923095697513093722158550366579876990603747885265821682270554357442143645379756451466963219851287876001128329698419569965941787394185753901589356961934779116675148132425114878104304639650531062161913133827632638908737603927786196673402442627332109430860452914013192595755070550458558813911026260857646413357200196646028049357588983286893437461073431240146140859013752863898884361654419134010789903095385459943336173154922869707832917107785628524742498451573178209156953680177788292943530022863199567122032056972452898101739162848662350228988483652176779114686361012726783146560382988714532937915255357797638700210160353666714227004883899839517349624235832045625688115182513424145636633657706614167687510100791449424921990336508292622156336354813070095759899312791350937070132789091111961058050162988196008186969844954158944943092547408875766560573695029352855876817725816104728371356690902413395576687444858181500821709045398479056343080684740924673341595268762292598345911346091195157096067894540408292933249046061988841956494567809516978598468547923488343949301265569564114877206872543310035628805912681683532437153290303697704912824363098395518933973558532857527392911744811680743617336986834693348621580029753270162994366638122893911540079171467410254735987817185871398558135110324976046052636920752260327130759851388171797118109192928404019980443734699142757645428782834400583263635154459086817111728904057586709357370678598714840270119893640962123697234155079757438912466595659874921803031909486914930593130728928856554073133497770558224648783747618474224009941388659595892042115128095356637101612751759283106299364717028283618592368069450780043202565747823461724315693391508014676699935725247835344870451567540686729532220178362433146902571308844959399215403235060735762407254771547982439998588224551510601068406897714942917680712725606682742623449067449013934572862837577449770622197602466852275778364166048306507709962623185699955537041685935857897241818802411107163144167962441893456604773889423308901351477371162922140792544378479981604174049613267641269025533546974541672131912381860617450655305514058740182016989437268772194590651163736512904268832046516941895509140894324685688450370052609476857711840321776026452165474887524595933449602664784281629424285252309419891789716325205030732188979139291435186178777101101059695993863825044139149885574036451649958495970565050813286659409066375275368300082668869781561701445804493743884759222034152544200074739884445703797376472212849842816389472520483618348618947939404229295293328675476826145241883135117264640317910598003939500760939930239994203582969365266557949582797222451465031708516352446943632085316258788506859603134384938580513668841262168843036488469774691877733423199452031613969364019304646060282800110954197839369059161035352227305243104929342346233344693376345060121971833870090015747529076085856133207661024249510241448488151955557110339895855848810343723516255021758064587166713184331831877931236619449411650058237607306229703967687318732038202954829336652848333522829720809132830253911404172676431641118866576182131552042702796028059007021795169076039644688175428980423071134357096079411987169781262174258231584096047443179433116458545199478651361331246508657977763146594552191512102048653502344811296743636671673857980729607356452881775223100942365957608453993363736011345743501193198886710927640096100804714470008213127637676330414441696158302413173557272278757582401529497502566082732008016425087881882777123358024939942748022507927477317296226202688400314788812171181837038056690685319513155528255177020352998520839064399329800630992703614256132850749930976345328198499251004886404892281919685833161006999258786720155763369469571222505277437547268756911380569549230910622097111088691444322098931063540957182251630380512878671101229590712319871255624375604134305854290212508351689097604478189549310375357582875812199008294709887973247992609910944435612578165677108171894253463791897243703741171697611001610654935015932771226228839852314308887200289292859195393565959367316363477570498490797468213851844526405422913322037310138198286204601658785631378328616707976327023106586020596331237602069339326102765913102044473243330188406049927256174875194679673933602268640943034607510667934742566079578238269156644809861613818981100269032804385861010921274899332907829196081267215290727081544067527777964996917721383831089189997220844100795976065441780258545601532794722792657490682042498345592621923645367199036785195219404308652616588392957913458828796615915542881115135312444904481957508758430791579701338280074511885563394748829065363765175888310846672243130043946090499709929614498669252237990246050610387443153681033359790412863324322995888068581043287882802141968796181729476099190984960025842728287726465211585492007187658649235096644219163073805928928867544266618712664316293680041033757921535664207004790385060906960444815567934034616454434888926699320740017624156744651957161069287161735121718370537237150496005065368180146665021974832016232343163035830805462976838164819341920419992272869023855060946547556566830075198593345795385826344855294528979425965303511862307544658196533805010032615874378895318763846344146884470748464564824780565487324571060896813154444492208992647564578379195476230206702307909036263225591726505350353336466086512198536187517687302691687570303121646763986244220854775109544098410422395563579658401171415332189753664762897853586983319892635251125717259300367950425752758732532919827544876248249951382324143353482980881311640613358961525877983441202723687031194273864265000541049906919590894469372779221233667207752735284197730119334479734389853793776444219681596170191494436591512840146520065675498165031348445761929208777049115756581089763275699862082847121339949722965520027164836299818242693281403422933386899734568879957747505157235417451051726403224699660795865345516371211841404198808419586882942799506318319479764839761270481267421307084809724313788806370456504446223794837738255238137019949982303155788966955805987335630874386688579009877519099659841918209747013097187361939683031958751041802572331186224681423451773003087346853558628442883959395294268117542919066975990460044327160869363406821708669977253786142187196303196625712110074460946847191282557263208171814971123291873946359549065631311115661775856859346021325712738998328296022743547537293660684865672792617306367267259346999315337685361365985414009774619998072457342427535418852762432820566465490243034995127677875447834010197704068905231525421110312218221898952285661605111892125714415861166282448231677587274427303489297351919528893100170398946525707014179544294722761242008137767475358796290426216236571853222551293728218522303888069680794265356709396283917430398669778050519715489415628657857065204893078578249418123865632085385254384901057593306431274384587571271265609980855499129802258902973003461997020219432199308063524486173124472508596199822488241314506364733010913432702768508765160112853038602379201126352002439715698829742025202079950688507683803815074592250067156854716018694426853525723220605615541111113150234234273553243406617464834503884225085751419851821664662449038358020576895804609143425866074179065099418866657676146589839717446300091830455600972046001865642439166970248838996723868908549033482245282604503584142894876799985001343172451763711655943999594903774851911849485277455398445833201363076036492678731079488857932359719985225752007220687725450183031944060642053578693640397200816398524025208627373157228443609455699419272006903330562134943554432461001449592492005075946087884032033951425060385704399009226138548731972659692549493938251184027545938641073575157350274293593713605859313997005536839969587219096968351157004912463805993093731551379745478397589956284317684748014322794057358916000097046905942547549294666065921553243252913993786256025058094778098200190429438378404564325822640651070033655719693096643670034941439863471908546488469822703329452526114401997790916749968845285175861724856880937107928323439390121896935464337580133955021175315087454719162865484257772120739593985188463582344355826339720931307562268167998102341437249745462325055176230279733658155181768775571956663967322720018928879513526872603403158965811942810584803851647679292039029018014021448881654433752293937119293350467442802858897562372164360620241278221817397527822669288943482863661918255829760720690845161270717354277898158594669701837739012760781702828937280338730201332727819487965005968508580309128724368197321681689338180102472437042205463744288460561685838943815869946076547576585064064642381199972378499124263139800258195360698846588980060090211990260487851330844732563934714825244959178730599921458229815407191642725935028680091476155975365177524233182206199599413775520998678773591163965793247729915447119314315804840594007231318753858748793910901019046867798869704648800600009133168484554673215240547543404183335972619965674088747893922811883095998196655798281456344414046175554853839577822847009859624739044687018940510973570250475577582564055781763999884115514126740275465056158729122982183728087000907160451033660292346530151260582882299089156104465879999287691388227771419718613088306470921409256462457097894188693971996506801111630210861664639255085293791628001829944938060863050720518863630776257572457750697210572383699170172683776866462069552747740172965846815551522037573321116796182293572220357724174205060258190723532365516763263007786669625610430386441984512620415175129654308846437394184974876123903154959808357042374567904525504739184856100085357358373170731114375648949980057111391095079603918132546303264155842633189141987804090559456473401907114167748564204628280680211209273781140587608910343086351206256722025215252897806099960212882571112278758370524132003530612021401864007289003059285658766245769552686763822580951780083954145868264534484790084707585608480631969871033727831589170356390153173803399986279124535747320034394463335992192483788798569363753620870269467152256656834607516922364948074999214927189365250830296573509550067310169177940584015551691248888273634621954173825333117627145690169489022267097308863762551460717997170574758809774007504742440077054822275664723914948536734262118767367695814798118523939650497796045570054493592981195019238570507229786293579987201173746447863533323178207848896936053965434634910589897311025659669868024561269435340570202368920077574260901239790609981518354801912007143629559998268381641621788451946690897518464989643300518629424894680153917379860204742854150327192133619191548140040190864907399884429669226991256787925049796418953385175659496669746394831047648438735340207180325835867561836857370110074777680429052319290785694431569121060355274718443304959214208548954303056897693992150964015231243284274509905301503659407083338378549867127932933145399503243062037054762270203749833136294784811084931632683126221935983768937243898725001426558839559914011179193309839879243054149757800750796366271492342618142680564944452348829851597644865752794648707175030560580231148964621368626687742484853378021269371647387587118432082126431081913639529889108065982724624715854404084154968961344193415509714956358686989674645663105055209271848064875654368371563148290397983508251375683329833874552102576880012386703458998625273684670644751531478765669548335285582191309459135288532019285628640083091787403075786159174926171134434990935723774407590330826912828929942820852212972006741256708239468458938527138965062843537404558521244787107375226721642361113138589421274220848605273978667714650117065577874577923188273235452649981987525198568200894049286500240331263672884501156715511495789840705301551424512071112951154266529968523372380517381731367873595829822472786341824898941860406908604616655116135395045871701922533323417859254325556633857051002523317710854327070535775381980925115826327135645698376699419566986616283273894701967079508775105698327785927434661754338902926379187969645670228917934388119737921685661218503820596232521462865315561089728319033341344594599451669481101049230974455908608997797568216682734447546414123492251489283600822846266414541955515270687503422122545244083600428912792483158464762566916672639420386816832898291546441437264798239573245923329419536083938523649840199482409324469758556858402232722942456769168509288185997935741112709587238116446846265613330422146891184239863838942835557478851799657579368429265891302131083063928485641442693897853340511994074531028088072784860746302606554316003846099529777843390265425568150571050522227421627202248945911110417168389539456852749158322844972414822707989995711604282198077183857641554874647781848516458185101980008334715192280933450167104760493747860473222749403062828795467129679039719164331675170296551174310064376272227731547360486331078537089423646935494486283625386162323080396492066016471996319450167188985211594939145699828553999219138404187111716590558264820171917513392124444690815516628500407079690816891834679961381066870346998475437319571616481862419731365485965926994586216318598759917953275011422146030938995638832370866460785797405573494569692858899383423136818331501490282660480661541324666883516623013521834827518024951157205837514115099691460169443896342228703232962190372287006111530043693241650884750408109772547777960394493942497201650844315862965627163999573292194106925929468932071778359716739054394631047074310009767412787677619107722534347016475926840845444140749635937220058240337533058650069494821960811954365444480759680811823087215710958285120889551584454967725536939425689996204391307406434998376362246321242217872481121877581437029247242549827583326112819000669517623087498803232165162073716831678400457516296459889333576028489196705019440417126039733115283456035057254883612852489987223971299038379958474431547821330418824666318170626508169664438699425198284493762099068480266282340441813702243967483886637563841659358319490100376115044338032738212866767656170753567521798742615220967159468293828026104973217567826807135283471818497454928108176475237469652738556139799103936021301077377395182424623379966159480345255002351424055631877152068624972805928366418551257528488833214963757117319518311059292907153084952503791677752344736203201619457545688296660503779234162523600831890304034190340843528725169012260924886403582103213551936201248267626790034013249847111002232184837895471411235272064423915705256617638415238795037831779643956057170612856484540544185179070168794977425785176659014711429417661625897290812973968728705622438851056840851870164253960458156538057049679818122016801363886360933419268180137521996316895516201221387455823174322653820965937953449636953329412294158274173209238267492889373401899222908081418961213341330121082586700112142670712744390626078494499775584910541010885847516859717453832849473700375095716353229297639270862629965292902293735311160956453344805345180203560152366887354959859113769603444816514211729018645360707747718908669344745254677234640515636287273096318972051182588452258781387864501160464320975059408924478045630549073317245949582312929572780291156158950280544929934136131901030666008792514863819910225612539762439373824544320209472127582010861091390629165936850228229940135217286612241985961009465359988209839942016530270038747807151923811428161811570986092517005246431755692911162763163900895111486839068279216215446686425338352274297842905461936152603576995026661938708353934369995092082805328650876694356208458938815200920828679056992315381628638703134357277465375751294621127914078102991615250792537106688730079460147286893345574910985796372213465896922653166016512115839800904378430378606005873984957164432008712602758479275769815485084161592656523090703967291364895559856198396844634482030696585302629737709005004606964328684181343913845935655488991750711139237069470396351016870657993518887802016250017374055574950525315539534704576280330385493485962125672870975680787759467449919785819964223362922949160662633361057834541930998761725960661716384548078038309606904901772139944936333611022080461820649305150793559952111126691591118726811195623116178366334678659635058306544867282125760017545462065394339920678899120649295028187187947972703419764642377707641994830976634485338944797531410863070225232981906993857547097372812298451825320276636518548298569946804218133045281601613426607233569748957870181809494867248793596093829596042123321442205104284446199449958433505163710069481178488889820944163625197460541445782224150925399290551638919833107869358288463112263213036828586342055364064430492340824510016343064283972905157413109786018155383975324035111265160925168717902928653690904570348739686417413002900743034453962979295884040418411663568360675322377764858707041155246940779374107249605775554834967167697013135470569661011560068803195572869874074205150792281898597860307140161690414660807875204340602589485178519056617487741069026863381098802909690321212519808338535853245054204663288773218885454673092349872906495287357216382251346531658314896704844718799814009164083268513470082428050590378409623866840764238546327560369966814227251568911206899808772798600379702851892955033952813840807946922458023155807920414275470877808639519976997940325454217130563979663069011816847934078180636376743493817183535035866194857791099630207390653353347448190800784022355855420283653381502655861829302487758387336064617827968943412045227198510490781859136827068671958280882211587204238941570607180484414260077466948733717436992223972048091037648856944005194476186063914485334823915144351412521807279329826646298792379878809532996093751085219077882953929105527300269175633485009531893007961402906920213627118689122075930968424717816921131786522479133198703940886927562945173363417223032877943911274959068829487345686047037379684702511152737508080866486499802832998702364215618703380071929960695558520870226892443398171857004985614418554140488272181383161439979356620946980907465030027387573642201990731342493597777901851936147435256211688990364802113318185506984535025446377450435968298292261582792697332845069354344542530115416024498652201252836387018161723631067488405556531103979446383330901560518607034615559762755118084662272752418909972735723969669156175248649843974950256528942022722234604292170048246501847961352973907368966223399256844865874576894708112441442604881042978860754297867280028773135644399096077679796122899055914228065434016280899142854026987701364194797864332439723654117876675035704572926568508485206826591026922180674758172175938154037337630394098129797198954943273356882348369726377779903696420582574865107063625057171623007258705395084513604238704523779855448936018151785530318295179930708949164326648722362808785615506240164471243861989091282063985073629310380448250474274364221987136054946452288920324421918365514713528529823652567049742484390472647573681581180674645873200955592432433263586964359634545646253464851562068162644835254296277698953324201133708249324488586385031904620709036565060710067286493366611852549219463084418138007880557834517724639864176896895677764134546445321042527635077040159101134463718829073513373745332208765277742390963224149745140734178683825626183064062762699053568959781089515824799531634380768182965993329224254705946034256308925210745080182879422507420262806641306630494015012506571164014282667635736368345939106787237082106098389537858643932946152954671213474094326927519320419459804456171488679343913934845460677114216949115576645372499639613740938494666109221939919000940980356786233477176305288492881066919060864104284729648581920829170477586454803279218350865237081566019438944477627326138687285997129282708682171490555374743545057829551412469040812191966893561950993245051963356668676474087721088134852845516401764176754197706565270366572842303604698011383368880412187877623399694305047724017966444612843194131992123979434233130155721361446907222891137698243898571596957714355986333075874221435721441633613477836893843928492295956416807781286775438268207450909011644370451605490886595748754793089003711576538842179081511428505686322969302566256348072946025582587922802355159221248963868792093814341004140980833904768005857502295299746552796731779139665817369049030286765719734502476163634733566850789753662623657395369197517009319958010872240733707501611943487491442508476282786628625686007704355161451754119918509087713483115333104251158998938440893192108318587656084752969514069482680635112533427970270625430920328366081482570799730926302568519408714661380831794751048061839075546717967295677147606448383157961991261908988030431369183225369770205032626782587576994473488263955465569584335532961079151934374828948633203045623877339616653016196946963350036783552759014832605465945422704707959275688015742751573220965309783721159094228840743952636302216739473149893443887525886044114860566421254976635344822497618863035185205007945148705822574007589080272384215983780115103767425179789651972324449700679042233822919101911783430245005744288989522720792384014491774315653309877506057026302756952028458426496997152497124951476646844063153996174958805915244125733823959523244985325364648375184704773561783134987646779514088397610088709088899554560410503476993520214192539075690081154788033927073303448775772420626659601650720562600955689712255595768148375807101754444158838254123124395237296322337102635456923002168153607321617189685457092009773434693998966663022349656483218803195418664892716055174942484462073974143998027917074310944772755017814136786191623060786783400395404497401867759422969611334405197887962594304635005116075307919319483982754436031140316362491193359311510213611092576157577740332455804010894366308876960390843425502359943402487906122113708838738592215740932000472840491290460196832819920393699934929456872098467381140043653707174946882873110999409936838554626077391215640625240634772456102960969403687133807579238442039629344541126681113323803931476174689728232699542149222562289266144326168087060002206867100901237618193484664018121059367862427273011623144245029765802362413105819910848797891623890249918371030708231561741000025672429992173300838620786176578953415156048751602023759092053416167190069710202735572524663967314960524584312186499028379581063204480968453310366377761653175591262633913803646268762540589666604005821344001014475056755350388680520334464692094976256602471175502656384377152577801279664434933900112600836730609667832396554555308848124038377520866195018201367823413045465678949677374105231107977848319991866581422317742933950370830335026006669711061617877281457460565153675985950370238929639558229330296960316807233034233007165165986642003004893958060799576538923248612808805044305318260607590594287013314454143787567435106520955317017921074858675262306767563601531920314846902344853627709377825591472973520755786879671073927779113689871069503009315444721527930879372826907574601240349292467896692059323708530080170773807313602068185576336546299145619618111924454845805518198449355733677548005227879700976227446580645843616874499593243667721608703050407468159850404478323386743367061331922808294515128609158831624028705143553469551186559953926591695886820967174531168941751542906712778731844264904084205529388745557715262192260827658678071790693590562084198523211513767599898678744404365488503126463125862802388488957591493223419557469843663430136494058612306962508525401809562407648256062701706394157528856363962122173333711094794547589911875335782068742324927614213599156899486538766055793929748349634815404126545764264634085643852161019439931535330866206399996057827099935507832343225069134354740880133605890962289695488973005948235495671891705951711375671517358510080155953269108446021419234844740133358640167104194288431356312928973564373601635650169491862223881432101279879260782343076708329057153628906940243738519133762625287924028594152070167403144923441656768592507824305402411853872435563733310534510626868105080836996075089443814284156356939098795297957550553740232144182163413738554079603382453288593977363092277345914610908013323460917963727319331016473785685967941836275905163723961405891361108519675082041195096436256203157018066896287987985488734200290340555376825787802797773652943126600095663660276860835508302441826946880259602132932356398269396908600148227020702853027428293038048867098873495092300702343368376772080640818679596981844648170598225194902863824734274815851226488723169102688515812355547174183823261253854938880104543943376284561003940214022104251324502822844335185652314538604083060594730064040160701308623717792858135951839912185586256891453050691197598908316477318715254501170481489016246454995459178218438465636167798604518540122704745978208618895421109270195914605443344541690952704063061640948272494715029562049398596420975687665442690113451686473764832064135676250499227059580457259947078950939086042405029988295018225863154653771994529250419138832224572757070159635997449340751094904660937494007943646271573020594572306068815955706954044267684494135028672103332224040673292044614967354612920116132547230535371898678434411977456587172219731805946889592267197027392726959441749097365709752338901323233687847988183219816588269376713128500312388420671698338334765588768876443965654513440253325892521096958191800940145467190965969836111905501053475229083998708734821249493800413132506973911221094235202222043278302085607900363499592446120367434435646505887279346083855104527162245311799042830381054425914910749219273886809108743934388492806213583434800660231642246940256690225937069375924927124476724745208514789087090807964694107639612840073054510974739184272937488184578187824658637637562871694328700607977523783130126347755004198017791395176885306606779254014368855845756379606068835029920902445873212919678392917526220621771903424156580983875311443112283500552254441843154474525172432789459034326474901866089424549225465024880500293109525517200812842915453707234835017750985590975797829152189689972038657828123079964231475802031934602680002276062853443263129479906993412305740502301031276050245712013163255720509937093893233079809750402786365129539934863012210883586079150237552269704247419639722791909427298338679682599058561021602332981569166829792947975050963521159394123152268195723556888539476124104753722166399362276302021583936681192568807351972432466693882597204251521351105143608809285336556171966822286643727196300662211707592634160117211184556512511503956829864976790950785894139274984701174823191730999392980124169668963840443580414551508575947042323009974191448743784947123825942772709681661485923495200952916916652261217068300617666403968766796931739073234321289834435891515933329377171851592628454786814977494670632305889886698283035785442630584336496819765122980602994631611629724747532272442090986129831325461049569588335484342763887423843363581581114144124811762393824787761560663019712807632839804335468687129935670702076043987605512956356766930075206082000379302696162912006879597658372713617140279973183520106215627259280995141086391001883909502717387768535916038667190831433697028597919587580877917522228848419505611473334811977715734658106829163570216807676873598812533218504922458142916780327816842868798963512086486176377252963815731541311229765341688900374208658206233219019564867346293581614746359989196426916493012175131273672606798021564088185342965926769197318218828202951859599197902979976664209449736438676701987864432244670859003849098967808324299104397628325718538578280829879151270087229609895908991435454039711605141913711849596467526026654046468653047613625549792679362884183996935728406085982540622637177828013364486878671900280469580678019033585312178243681261940321276258872715481442998025392407814492758300291841178319140000961171723416353296190723265542027201612148510922643185821499634968158530485465495755256643482126252642705145734151961874966614349659919915354239947084142094195310072984605595207217946161437579262551861605762291490998746277055938620752335073552774938651167789712381200442867370406498554952626182686200850851263175223292576015800876931299038591892797288673341465093389062449465578049785446550891287756558339409867604863524173601532198676653326639624035604022019359928117914233015100098890057357046054957861382543367098890108491707351504271862686694920830100069067990597298361443330006925244349063093485347055600631927762110726644820535054086528233873491183283903618746312868396578946422713047335263433032812736064994136597427510944543011906825671464327301225357763232352422215211299084513739126090900453146982409647027544858879033856301224943394339979625882393203838517621670748212504188525586269429365842807398990823325596637263191805119536833438327978737808659943055957026811330863861411445866240832042907254476338496478956599522022789715226987266826405128996292000189668808316958388315225106066746391052370247620369809133040024308930267152270874686626643294472816207456939334918073627606490767615397097787018526470717329182832768090639987471767876309592073519432922985261725851870006486664712093655705267760516001782924722089707819688830477256075651473256857090862694964060669819372016229033312480347387426402201882993112581633226393133091930024990674032369012969299692870892473501502881019901164397398654469458999540577720510131220185358028110402606570431595742183144586878090824151227033855871421879465692372180653886555458365515448664584719658011140224609153609123806895352905399180878182078191754334004865362679228501918922052428213640407867631359257587324566615219748813458402970129769012212777105962523724309309801497696339205954155585029661288486673674503408724842195730560140794145664949402468644814779174643053651142633389847819429567624916117961786275533157292432807219958431843124619879589499552391236047323474447211265612829642032074763119886278027447032210568670004022251158263923790735500559081786778092335107703634846306914832359209918198078809376466158168678606799111320598240920740666742428865649759968118159135347457161086196275840304519533938625372473414208552866204094366946100387329613882778395292955447189090650342584792869343925482645078072892328162479336308459109615394412837893045540616867101826215017781046840903292881897829126649210978286588033836966880429945214512997397523109416184561345994768864315617236738441054863750729963083585398118720174122525842851104457377163736034095177620800275898751421442596677588543638326559284554117140355599322162952355690062017512968188570358753385341725485787314683332893336702610746131778203534676862831274852561261883174370526016259224637572503256582046084134924205457951076226927536597032248515775854489477739855303951046390333011611209818255629433684807508306226334658825587549700157843036698444734464017928379773975909079745781471789356826928581785090592346159919678514605859164085136403682821509146561244721260903036902641986760249205129918924698080587790108750443327247334243230879713123220412787753909770736530333615773546118148631766379383253159518170180236705254484231785091089269326559024871920454026955116194164792094892083665481250948720140679376674114668558694386078777256245261568323526435284958567177687648604810728444529301846214180690220285794660008742129736158151336133447857906148995133729444755193343119670016559930837516292604056960522764262513539130973003017713544724763871959722250836107159217581007140856629714102092985702377219119692448408041023605076650188027718803165576860078273050044085596549605621581157925390566524416068441790229295140416415976820604204775449062355782972416649147329273896772712013257374402354926969845949737570799474549432808148057564615990859868000370975808133336749400114168412297238545046383735407972300930210073376493929512394080270141707798544700901593059489809234577123323579633543288965885208721693430027119820623067249467653041285089796018413018624215490476070481217770365688890621530679237919650915091592776457706435805119080262857375188891961735785824743476941148419799129637752013153869374151919574527627785255330635932493779277756493685766391933689577315544264315956356612136606262877527140620156576455553897363092208166362132327206410509322009772072776161876215817993922330831513935170290396870115973097896781259320357383800452028518568524185909244058492357972824705908216972705809427482105577030697031680264116407834016609414171232028585163781792672060598484623563894748405703547642414197383893750478692106816506054233228998609504461239320816138897878648424576828097828796313873887042959229279128009963214119504040379564060795607099421225902792966790993119087368091629359900725342212208539265034270591650253583999411993906228352687608493709329128353464991714922589871496706321549972362975265483991065374362872402138539601854863494714312942543333679761658473356984190635947146669680842691872290584076823167233993635515701805247950286893884719322496994220305349231850144103575401804406527768655979270974931228285277205812471034331563632471831064859455738129967279221376746856408802791156822438231716615213100003338905782787873816183710322196965972104808281651314152168498818452134584114889819827226019362501485776818042502607049680130513758641860797178829090235013461848523925682419347796316981725391898760007770770521996536832374086917198869147318916109205768117028604639942104617312733474307978907024363760761051705929492182598988364151588039484870416311123250595446707743654828162689626676241930342392207509064192645039211812629685288078299900970536062913126573830271033357672591301224458480043791818902459747687011468772436593011943717750870726915228857346952073016366665256911181224134733993326702199569364727055726777135909945782671692242344764196188461907590727026454155083875292779775085978079013539827585391665863827904486254456026583887727680604721411211780293062916320126561488706567823287102137463134056506083232934694181120960984495137420423823663753228294908833372120434285509450197111044684975986352451710343949607109861591025182472580130914024324321168653128171692789614020940175041304173846041311283131184631150434030987177905345481341596491101824369073540215122699442551640082943719047785038863466020735316965673218113679527004153179993248016522775489970589826435615557336163788916005455145584391832840264646076318658993244796772341508094898022869865139848823796937301017056010871489932589289724155082434179486984066702781975722143524890488801682551158565874062913152080566939519040499497124589649830643349658222875937106241886850581345268601325404942209133250909734568815934851282086308091235887734521157997921165224953083441852305184811314858571947095479079142422865669486590519061774666296620296685768152677118438343695810964558182542226929529856302893654486014095869698349963414429760589752065945764265968863700729701673283846222192002706426706700555710778271194760246687405586842243849657880234706336576720030226666277049523535676879992847753472676864825250014791199829232986545895023742478821255834356108173579056678923763951995235346448202995393626039808718904051781865969534152116370252302005070697139199455640532462831902997486435344686298379383915762679171215287118613349478518370050270917073160178361028306177325009621851923863432470363066328434775701935451859502216343477489654903482221451129842736356408603796286354863492903124335500762945819363885223436261852510338714556600755978319540541184374752476909510763748941753783617257383426161443992689105382138427420940607820122728293883886287112996276182983098943011304766051450557442100222857901704373388661006941306182762014023277452799959877202039197916921553840548619969723537850595315680750111259698066176463262406290725737392080266710816473869181473736834714247821964507722653318221391788215525741315544810181504822520821715379444677296500372267022662675058245964330613739418019248536559220281575881975992578657714122462101075714575641307257490980716022952378100509359149661196735385335704866808691293174136811984413151177313018451396760413603965318013920144168240692280727808478308623284047016131627429461310242637323004261747293453776179598469461996201143129198180227937175818347416732152225685381482499968765152809812370149809467885099389090816100367349086347074811833707790961224634009529359663795045343550242212595012525210755527176585922205382948918102494599538713657652676211081284219470730761675385132203590455355125757576845049051787790149825315220524050536304403029220693651323991238417997802715154038231026060985895719797064101107997113814215828644503403789844704844946813748432783760926507434544489709161966369098321376636505271755853072954862053693054277617475021128905445445292236125204021592261612205558285055369930608419933766586855606784728473772926004688478528603447544199746476308378841816317409501498460183709469813959210940941559427661406732044427003308484971763508479193164602290521870660261957248764733771357849420044632323420815349551481222407330262793122294174129094080371834725503594932890471215373526814092313373057363851804648226476815196448843382665508287127395738555753095718048975989471798267096585084971855897275462009491673474355509758647286677630805975256426607148627615274650309311016704098828188695823075549240075723962458803730065470295755566867060386571828000200071577964629585944192094223422759631272756203016620223454660776943288182238868508150869212934479775504732877068242220951745805307980943761555238367791857321952578460396976291200170834829939706559519597042150615006761475047949673957665193996759545218049760726965536763445226480572801276491612072328536444659959497059751227140612374658906518821192669483392583009518390556757633068742256711318937761847333782387170463223359841636909720435574608129962604975862435643583300685066242592308309487830722952595413248767300416796682625038910206030240574917950655787620145216062224496318575181697067437379820759195330086911644941262560379898403245430352557837603375077040584021663555135851102640917262536712564992368198126003417345493489453309971715952013700822653584493052941544514384626190196080197384978146358815173659589724682167101575556285482462075517133141008720293009030121176758930155126436590342659390015105098100092861737895406607208611632745486482010463952645181643924578206350934291605707419073400076931213827248403487299195901947677170828366821007390534647100749149276784090732726693237105917989318781182106067598936639732452434863528745618306509326561662575975717116656719496445111435671800335218001468975158663165985664608484137687849620393157579624288743042238789637117096970078355168669037683955548193451025912507890011601049238871846901219576699323176074120156073077804802237415246489112301396161248986942316738133828210789110260566818593452700804030246656749546414082609684059109614651250672295011063890216693427778771953189827331730531353785245684930950636167078475039007012836406571418583673881401127830559783174785959443981272386999857409343612480612065303754155107595045433091649206090482603377382596141962453688088603751686690334165531117099412910308199625416718737586718331428206828858328849654483226936443559006754117382413182037834228412501983425258284645575789018832965633579831715541356466731208806734483768164239486532217000134975322763926505949680292679436814767602101303759603919418329308802872268373099166089698627455256479033478838284291788969777260324768666174852255796577152579092715945279837052062401954129975248174425998256638562588723378463170285737169949209064423569602419606134271324643169967955680016745289963899725196643519203905314622583572607615964154090389278125748951594549140812973532611665228596932071890501812163495493607977991211097489786625096847813683970529261668863147758341901866261703402265832581658336590794202947135168888932954429391740696503086597524734156015783115681298334326212343266506664823775767911822080176853070363062902448304658586764716278859717644802718284210902751669876672493879152305835878219655575267525737691548294753758824066587576066588681113908027377538905089888337535438830781677780982735275440469714444362762009716442184482843729299849646369837239346199797927281454211249222772544391997742094220354191845873852909539874914201513742646351526966908788805839159316898606382645959440420410409599107606770755655407635348754415706849856214984367820385494385430659464123800537761476311241082602346031814848390749719751714570064874337514803067786114121819402991116772142575776178586190022450590380672569108623721647902139325439219919253324435975677879520709971419744306061679358462632561874535078532580395656038157852602719006674524197564731793922249661897369856632894858284795864276031863288103860392094430020194987897586569372709498208925503596211573390340702549637400882229725242950275287389718275263298740191128104037040609369948900698292417109072482510921499842479981299003177135345303038978345181296285237638537970876491666339648686826176030159334463331841590893485962391779197163498368368414752899062587165514942820903752845870526287804834728640761559265065782709845735906123862890224798454212674980524938315351097679908182477485848488763669721374228824277262222938289079117880645126617194588045556127860137215288845703961033953274466255314477397038156215649920743568331887253965739398165423082941947277668279722866053701013655273375733869226908973682449707409162593915457296991615728201081484765187439217465051932424776814450569345246823501459944808463396376510319159819341391537342471274423799194210021913493525602626112191496047270003355924431386444589773504187262850842006290972944272952798452350173110008782153312747754025214498782632947651823051180068811101647691439669911860840365479682458004468778128567563476983426628356824043366862489123988797669306005924639598945910804239937851631172322746048475874705404623470736960947103087017351965988250078746740113025966688700030730064986185287560544962286786212053781509770755394450106431282146797119000185848458752403385223375807016214237727445116940325855132804465760406929379741141392451440727591046539955879877862283148277911883699594214594458292201206479148446227714754479890696697859507432512020620848326653811504726761381733957339035152726247930053062075144234554118090986018319044400554367059687964752685834787226217420477146204001445517539690535936505282681478440680687571712769649939321682886109930012672781899757620341108717885110744187300923950225509113180872038774418426689741197876929961768925917096994023274305635525960535475561620666861859896312322646615573794236867046125825791914906677630927460667131130823683810605207471760967601882407943660150069018121558818510830980969503389266028440174774099399526021149532032268022388116364579298334370087043350435639840405424380739391905331005013244532054366398575926916252631671976267079037990607970263680282968967436278924545326149171010994188931663515720474692072097169178187984785118619693138338526062306748457280693453344892920839032864967257045338475075087843859611440739808688379365421372519457600832909894322564312794632535929050519411485066093585426818808609038308470408468309053032087825726481549970670015590189318321880285817343410374572518063743833307738313254063369746966694131586791166001039089040265157966391987849401374294722008528359537095987610045160925699190182506937517977274838925747896898661817756381097258524558070357734804053910556211084897732917182421519692419329528581391840269301753923176587315227777738615976482767452066629799011143511816068718178397921182687811271610219628064210065408179067810615458842227180368535078486133269855425820608750966610711907942742567168424386710894800831733558424199699263406106288722143787990416587674545234352791040316836587713335559460526438125380948524232954288497659598210264002054486547132680386448130471638834039251444126670013721433273172936973330329765016805148163803215983104672980438973997147265682695227032454881754612769506323187730174360810709317928577412262824496532849719196102806247160469968655062490970355346643721346500881927464181879665863689500897660499861503325399813586384407219560382591571713034924960719725005630257300264767885171204791877410283640953516112087514875798394770959317903964933246886204276551109069361365687900044939860793782511287017800747062289354653420014175110125263137232554876216465917463217793949528292626367501519150123961866853413058846650085167056822476469776196328800886811222142610425812927608248415552175547788518747635201609414759358989580619874298890605952769737108164657331131897603006055342583145471737722952619212705998482673259898502548855113967798800039432047311822514929170406442148021647401928171594556596943615907199736164716643965393589911472156455274195375122421228570380981638944362179931475317486995218974883616539507876225916335322690527724765354129401073635996263952087128837271585755064989539800032016391788963572685272960512840938175956391071215484142887757961308161736484561555340034896370844216633804070358461586377774459910020579848465969172856635631431335718047949848202143931670288997448228006849184966391475006560138494112733583660655375662799911399578210157342562459968921602936120793620151526399617333693588455694539115391426387711367972029440637748481853109519574099335508224028398740020472544254888770545963894015440032790142147547593430427121843059808644276520820205248385309139391153353029080790117950823406218412394558099500975874608963662652750097953293737142793572154152486732967174824130984122948653438868341672262158286468249972774640608604389218798078943310642507823720463657678923448769433828936622380197331627612665215589371364727364917035845776455986418331500961591101876584059214673673198302721475312881390941712060533086477587035907273850676966512813216147980131900208308290122930690946407659807960866136533188066696877014805619637878513795752929081697885863518217105125984779471255395838643594318847336025492832835910605825825608575961374120406120802516795286936149408000070832078379389363065268037299535116478304021403235102228878731472172540022424241477615659406084391385583712426019317468756681332847685245104009533350346650801770417695566475797444190731397142765855788423506583662083757360993626426016981683577363415228226757765466923549438677413558346381643702852379970187906500456953554763746544301832401278278673692983391900431691261891237082584681948747037301838619469984033999069460892039190280828821471216862476783985538419607036870347366006166893974776869362281150674560512097119848481120812356375685976302609796920094805451710677705517428207350874172353000757759640793990123691101665917223593013066205727670056552852176673953488506668569916639635956165631510645327479253189562712519126240823218666742125091099410024317580615598408892976789178413617468452643801457485516471265646621725754144196267732066641179063050252419853945815029092828938282834638056914921078614474518389918554748432506522458107886685445486159956412624651927009433778972884143271208998409842025551351009902406104916388579824337171318787164871958442879510935157464611278894660083923916237320362136004908476882547233410138335988435872076545441694424933025536792241057590927949424341222326340645390402691925822381728013048473994580431695824727693903457626566324601701343380513696753860102723286970845871458215457219689754334327647918189373932912747297993945286088132413632637348564363156036818087145572975529819736935557913801415264255840775333050818662222168764459172119041830303766140748543217088491687005451073088168917831657039494445241449377070897514854844320157246318428966422432879878992668462086749480197701365291475420928272545020889886054209199629137852759998387895583023929182169687215318718220263047232055469444128955556450561561985301925839670051053628148017530445599531971341018433857645694294536881444596221370673261222475772840344875422466544954992534066939249568353200548038466269852334973531897516340743894120182072140108568437287987848019556133976822331155690047633666407144025063232904769336078895359620349467505558112401846960782888489782254293032461736858590493073002530513389422428991196891065239693829396400706303440424939548571184590677457196353633376062952877655880995076964799382911113698796595495125656418131815279243476852271866782194598565929727683463413727333866555459097068440093367262770939272903878936733800902904558086115088149009686725953614853370196222481462508396210525652939694265571366187734368417717964057842308592450574281307320190765590764178600265077015682226052889163387816175929552810312770606258799161469799153270769467542670345358219106200124399274968749158033601842915300552491778347335184146936631283716704391740971067693376988517407101833803444026984542627536613701773197102848116251402753178924968049759849755953030848301518228415667749474935618335117712665864088625873917968098050213998377861525279303026754212724123453273941255284126348510436897343399561970744744823325971766192325557131609332743632621517792946155495287023496563376929120376754638228999088587024917214686288645817086858822553129694894401956499157806585307097440508558501897896119565296993496687518838898859518120992473305987169731466477384068996964499825362616283068813042771535297561232212702630674002239063848784128473562841146196371438857637821780485412620039143333613378852728041490160038890298673981589604277061517826577878387342415927718183301158530007736620522675471806746452415677967402656654067667241642642093870994237204537242097821735429422980004013251730023877259743715689892418488125393305962617945517678113493859533327575525591236663871257644094798379564759941980679204993243346934129666102565366081338562027371771624800134043391733911398854241941127805218018261700050683473085092003809535581809459379525937506910004489568788790864913790134353030427681862624859501295021887918733289773564720674021617469622222506938088867647232183833873704054238319829431860041667982169062430083599829571680360761742777659664994853795307135998293871988261200893064451404408866505720975589281109482129289373340919295678418421947089738452403077810517409180299507409279922852384836337040074206780408716001493829815694715980702436690511315847191088049272772780763327955223438642513908897066294529148796576746061228802816878723647143712987832843348174776850574753296461696620600272094129250027134424377600613116070356432038078232688098715543914394435675714740767541933458266176805516850388901566297586745980423385306001828658802697626018553218705543103689115379015448133365105946574967126820283049944586982784089473387064327123911331291199232531474664467542537310065397554585947438353848528137659310374661158829822289760629971552568440621894778240084820707621949175240028541268323984989889234360061770287035540145128368466526785818789912435728645325045120986302238782182719869071804074830037741472680079419174533150473466033161320935646149171325786448973572676278506965515726986502260373937190646089826433746239841115558811753937261881293834598203052001158709293044575602255094745608920198042105467477096323052725002680206163010748943331798478429724345961661937969113777757482697151679750651872832895886206036965533912186654943650150275958123393803637359888894310002937962488236597463450262594668602127953869379927634920815999667851347163138393080588797541314087270486515988103406178289590619948575654723552341215265297499290730158495361978747394940505267017904616513242048427102544517753368019889056671267034986432266414930080912160694854131499068062390085784637154641141309350160102060103603657994744376295855759167017929159530086064190440203136893814338368863329139541875172824630436740076616023269912604250526124198642646640215645226002239801513149010812405127273021224572950980261472975228282798772468989330667198800821941028440773313772601464787938643919532546886919131062356797615650678368261884111773713866938943378461200752097039464489845847601503758919992984965856923811156406165070458522066558873521488021583608801333975777208414593369180232725009666506110494386200147125587183599917925354046647156162487008993068585287043572456353381608578545757937094994655781909576092650967782443952203999320628862608504244580241672011995464845359334319260289186118573455550496017308600199423109663888365673976780667706356298609758545853095588416461295153206884595992712235738011916094800245460194983003333429977380841549527935669677325584012677957064517659330893920613617488051901220359145399717771602604395104106380242269660444214093995566865829127174313478638386780351923521547615582343506499006807106723029093458641242947870241820152228686004313407356094987729910494545182762902432489883820780262908809732784070124923013421363012842433022660758135841685337033145344403897084784728390003992706280148500303628538816436365869332468112593659668744817176490487691181337116050811736120030342895482801119441474696346328341347698402085861714381132890468305522022163351862224910371520347992451846383075537330881732713868249564787584658586146771416776417266331504306650706952483162915434146139855847852678005032179399652794600821476697963313806205856186713783646157759856138346623460855134220185216708603717777475552332351601758270053593434305917129052736282593795430675460801313773459074883306964508064052318074440337001274113721432977974571030840929512607239355544408514744905585175724294590812361577805471588291252580721715624600054804078120177973852814314293034703076339986877312715219386828700083512402614573339146024238149101862796446053632453228608190467701929087651412273686977077651063327203039053828716945446156173288360712144005041127659751523806821778661035228040180326461958873426879675519304624523438779899190533249725101237432593237896268437458199548682983331094956166444384679003849138636967576669145577378693475011205081941629571847026951495141049171944607547562331082676467780827692813482038270876146398878043789064676469906743866373718507423936251896879603831843078781403887478269591205483390732999171753703951989239015191041982199228248407739266795065303742569035705095073782653456703742269771338841781915075657189803803330818769820482374911706565426800527099943834664584637455175145530418394773032962398626401455137024304423945929854294285970518365336426748264557220494090497169973605005101062907670254514940802243778245651755224548460743181765373296852405114669007856867317284716626930560115310440629714682011845134908242825785054556626073281546530295694584947998096378638065889729254978175340854235571362426775383550888394528172463812663026200642355929287237321214501973919462893085989194476131143801319906267640294264982204902479210796259182028872263075155867971660324431331213970545759618713211389908959010532287800928776340258854534543263940591427670984229279007798077774646764903800987022634545377757421701223134957279023448445757444803080604724241137935232533804653735017712356439263240790953998049939575022170024774378525675356757467472030758380756992755443785301096746641216717868019586929575487649452596012279513533652873724954136272807816349828485552812688512440423052319527393267871027575678987861569023663217227917568906792001389090826271185026585819447936902446135114658213227265208919333663482405385114030201760317172471935019303292180946646787119303654441107464166074322380054522737126721162910752358309050065013373376831360447621662929627552180165407791717282395874840060401465109082723717173319150476816997854611517452597011192599605651236166671405671105073926483684045901415128772923183615160017146863354763731136523382387455714338691266023760427639945977721141864983219493780719353119199968520324919889874789272581285857171302930593412112274203021772369335163837942443771573447431223461421492327511388761346541583406391984996421623746933052102453857725398781780030737991970208586276396325626140733067085823227045012388113256243201713093893940254939705697547194669783605058584831445976115677108327928243518537790149069756722833977803553115709473945694612687280228369030359349762518317545245249075774142979524847173466803747791007579297088175652033591552222097973430215577582087357826902931595838548287553467104267299301292628716169648452316481050868177381759827162094994670134693973488232585119040501730206938404538124162927656224068609326148144782628407153905080407788551782964232090785039645897122779217601890651589624222026892373586309820822016751541304287277947132137900432631214636118225850597985083418654291882193679184514446977219241638656516668349607974237427197184976377488378815218363948231103950448261052132488431364677950289286238291342976430994574357738904580187024560156142376692608502403030605686381937389192497356285807816190817726598117453254272785141594109706935290876593971267688699744533405400486205510314122747461811183739332266933357848489868727902862641038131074713171083022649647518036861647851053721838689783252570333635258706064838602191190216061626717598074487625971662784192107200955729846753768623077581002735268473231101481982830057163230890951525336480329000873610517647232730452694579736617823540040534107748489157495850301812794888137121909403683811864195436159267221799627596648421178002135385304614472022279651877190894243044336486015200866787166030250308898524693883213439506041691155265269140534781302750839517251147357104974075095036151140988877487191049259618458589241154889519486284098066823825023457147744829810587486233323634101033478121855880362449168677138503250103593101970448685508726544089034599079179948063725720498093075228886778062019745437299794586187880622770767805951732138534802482816782151433489450349556850647035801676359385836514606034817364171886722004737158212845655194549505772386011896495217738303256515951146584970385533733726370754178020710673568626921425049013624526398219851903922721675804191982825198179617169557887569636231676063297872182275132930379308923523509040209085453091695178819550997856684288842150866648007417727508598261744035814476285235986409600596757466956801224864509743086233189622013276791056339259165091413802801585823742933528834683277590196958874209617087385674724402605279977796885272767158487586656317355183895669871907134210044944988762985422115234875900233539632992405288754410257115433907615142915190990662551312946172657234237453404451113130014140279688292179489568509731764181579019724927365339898214535969743385274575443488486863188655097276439979171758256166808611823799930524216898964628387077350628157196636787709387709257950513063097882759077451768964639423847898589197575203410433523339294862346746537712361314025959998718886659497747807316363618163403386016396157840218761084094942630649170299981275531400721250723303074328780016290136821114843259860670720643702879828131916733613912227816519999072310650600647336139676981064168046681794550119670557940084458053015555395365819769143199095908448250664910409612709099950387495626557722242275492885052930517222399913673534614585957691754409859829043650779186156231594712144676192395689567439041609141944725103120594066099421251514070631219344811263649558264818358682003987189183369155226667764179906242148226608005780795418459286720894728839827736028371088412054041006786039988272508422545644121567264219667273490750321515937699544611196530996557832899088437316145513026844262940821171506930849745446672366727167282595205180147516353547517758265085267200166013992148733083292012535311494510103573609214514631058059955669385425571101717253422080723556253702830414264196221283724984422978131682271894001959189395464211127658445589755946361942492276685970755707879155946115916518052772033455960282214457098466954776891889251360288057752105298360908934897022392730590742794095307670324597177636937073590299008818072851969913246409101740247446239047277268728340534548926012401094630443557239315850481143436374790015278230791632886391785191709565571605294780681357148096400358296321416986368061141970426805271459492548118212734797885631621261718311968243727471678423750038523417621338788550962634143523359894461529948159674035516725742849954009873307152258057994144740679593766639579866946752820671532562350930154833054685889190098047944642138226544434413908520119208035175017217327263703597368013038068339118945559852455163799455350663261021053594165922170033736546618109426120351848809503779688705918219831537224040456145073181213537929937875141226498286430776339480798469280487461348795963994799064752407753751020228916699714276081438229366540300901131136973173827862546049170460147500645363721961524908052505216427616687576409972669682694348923237388592369131906763672849999923967270211228738198215305160998035945120036693402334453420766537378854101014775355059910493100090240160435985135471178387697960135509105261369206175782378649648022914608007125364724685858204381821669514860382957988698899054845482854918723935456079214766892115243191404338021475666086217425546301316687938359353541254775818679440412010736049926086678094113782351959917593181302266737521285917655288423116879619834461518014049916255329224131805415141160553445285007110037060206803699735992493810501476697762645692723648896063226363970185321852411414865240346747285073279187774593043027792310852460070953489540165540476843917089626526622179506343351601663022983954620950345358316107158941325882441485524053420879076693300234980857958755257890958857884592621069159670139802616740531097630405610531018749260286446359970843330480468490805920259401207002793884331402224335363121792278750382472820962039616921473912400275474895620229988561812521539537999639232025522356094695380623196952424366500238723062891053131143179866727126021472007338264401640291043307790948246392320965360924025153641369418234675509818327242531431226925243929296616093127867692499096026376409447314548587099959797847849358649635034285434562227194854743412559251679697167153439420771219270866474866203853647861400242740599545588529362963689904179061004061328188882628862065359318152384733402397739294820312629060254919831771345850300070154047240458038443213660630041685907580909377343433461496682279807330646818157997418835568155287862362447212274251683803257491137601632919584441843648706587492097414041114116249824951581223837797400169823994489393901321048027216454959422401190960006359331750526894235499650408243807305863478480193003743439432281368850415266840366990972812997865666830563425192033723671044934814981333984607138720386870368451553146565957004778946898291694881896746582029116117489454901179604489404480009312970180818505993356226296690306042436366049478991638602488932418116970156227251530556064823128939642080114394617235367588742796793329335325752611757390449604841523532865775035919002729423730514328364331874480365012030477353170900002563064375235939157529516472479388496615392602661712742392288708020543943729770446751365583182027089670716778836298411130547900203858069418521352322639459295353910235780484625861073489561662499630570595030012015431984971700981311279940035847712109177229227502928231861498874985908801736474784607750539901593214183118149855783658246914204364268834983309144510705173350623526495663857893253388416198047092170938408060150535886427718413768503881533569485445866508804252543737641355251986927602141251880718813136059610106207920601379468235055022076392831473656383097977428964023428891501945001006661395751415733114630080412755950787647632216186626870369244166195797097353339007032608546117716823425185300150119660157287672072614261118540951117443754594923933353858642664401174757662647681785031058887186558796641164381550712824955272630148638692201116237610846484640108101765675423044567544050520523181402051866701990529183601818516367857765654272865749532351094410077005741471853873254731913478755180252643398494690741999822193800083274095726141558409467971792035402122140820743420748823794734727842293641466189118861355162332767835918123009445481644464814758293769747864703137314829626121539331082775970248320665814219942172166735814832993594103237495817851310439677959943280676289349097445935524133966515116383828175273465233238826382129245885666566934441976017940479298683675033058627541036987992319680953303983797941418901415575584171766099802651470099340750279022717598312180565845149983699885866609218177776255493429836196510980482994192502059953267200901839846751142788861820172219007484063333485632197226491177146178170222268100589256238958058810433142846338047459902925033562020997624643919944851228990269713896762228707740691089231653454594402320249864806853051388822467936745993546134379371851231009963763952470206316104168978133781036024910383026290974815904189226854946198206788886198520903426396577752994572642313017136494562521228627357937869903531692174788594741474413330501465938409443605598394886092884060784184126041868607497566909948422301318158035771385449022942091364745041925670636700943550848974779466067203269699180407768626021195049033591638606669530775138552437606079606310333051507298361672777753858205102543972780797400464776895797573299638414108106224485829323801117308228204645874943352974914443839312550457044867581856888272197833096683057191246746532734909908166381067704672632663366159669280311859688821251405090126463125806511988085911061278884671275880415824320681761164870513313063508376719444268471238878707704383502717003001564673447405502182427746213835638269271149916805366696769541503477130317808615225804808934968301661749124074460878921449639848429700515399652910146691170238129143654603953462548455548542039327785420388062966507234277647040516195744112607556761227002892398601335874132398692548812248216461268348605292425175977990731529137783708446366419680641467748983516189681495401533825472479523482267421074126912701519480778513045516479016670290371858329383509138909056919235181281298847237657980172615517972408068737711387981155963575106029871131679386341623251761021437293567364738027797388778846410480098408543673884712364395299014452033920869265796220538177275250595620081791004353486866269317951452326429593823375877756897530266545396762703924377718919814489857736605537546138475009994875715594909576782102975019510449455792531029860461590644055882501266104674181260890379267337767420921881728144692625825510500347170035194306895923960374487261718085929872482290421007033845018703194271270519583603733572883886786850046359509776704549665927558277021174601783851737569861088348739964743301810264364991954968990095280873517053259852484802662349444604903162896739594063077172107284571201360903547140149510104430426278646649926679235832881675961532400716687925007733122261550412930306487995045557797751222662771209138982554699290119788774342866024542192602935152188640510818150704132818896345108345211456102948492181352268454607915775822820482770788749469974737955565186055291306086040885173196791194757002648432985296936255855826601226148357564355646918267196559934975915202980086737867785574420553700744001693376105230118704915006344714722016205167893221516744434565690128319983194100384355183888893778945807660060438960743351788721907314693695151423991919837178516771050191982726815432582959156588798337248418116480586427868887196277685041411002391914017758197601407353187625843358839506512093260627637480048117344098390869476097311305746960125771875896759432468433185629817133512694766734237041851376299692416953878251982432977701858642744097523559620558139148718151463867646216490120327348479755224168691414113650309601711534303379614419308581997059545013997415100223855908253211552706972358943879673950881053643474066698924634316500797598651976761393765249410490667928344438258470100970526689870754734424466810813359703692980060834498291160047025795517575767470046755444367676950000577722689337971887340319261970421816848694890118951646538130264332912117023814022859597655780390869334055303945854295797339745584012613968226073829249443523005616944659462185836087663366588507515455570167781480821573671817535454576610348540840506129248832532374763454199750388722401200833064774973953468536083048662267433423979759983231777337788990700859516838046805971095052149286476869927236997568995936143092207950749745377744388189707883941413515791818712078772854892468796787255108566418730095133589596180498618683353893440858421526473367156764574776558041153997884958364717073323682161494477352773342793980855842038109892604921870088483837827954248769982461515977320666569226123935335622169454060410107589930471044060872498619715660670158521101548736060877906392767007049597886691944672989159714171487483773320182188974651712817834853514030049695367469444078043318211206665175977961153215815445603206029323649389975772081206872246930673371628755091309598214396051029212091780126081403931175106290251000747388110936190960304527833623296763153947094409522519504544324754348879260293984646146137928815821943546014992743124887534615685283315393161490618191342770740474380196607265377351829190351705576746064281878324803416059646413639591366110654788619606369092321124614356549864031977638973253771742599657442761167143140631558663403472160717708450308740735306224459706623379338732138985308625483103416888119504838326410856033253212330912362910023568122394065857002776380365963109235846122998268848697492973191627497455102086440282806105270312438250960217465828578739682500229386491284151962285157764484973248259368804292512066781025152019874754686487102085833973993370586059632058118972669691242067080274855680721739238659238045605409497694397355596879090990036629959317959614417084003725521184072523787668391023132115866769353958265598425239051444269507203421828177272368396837746332477633973850389583822768987005269994222599291178479628340215053522391352257405991452526996937217727652538054838069264638750280915148758620091012793684055993964417057657191879126570906455199610747270961077024939937063113701431452582328028981811391446866283290039833835771763797502784176583242346526293700790632526099359950664499802426611482454990349651842774399339375215743800085115136859373610373785846245458965808095927123451676491113272672850840429722726547873933218267695681028498360557826194249678530924395562110115473921404661471931812187835285849101730777706681962000230406610789843974813838640058147705010707646131092198566283342789990567876525919546242625279228469963976157365185932689685176537996203263403878721013756748075654070950946395235703594814236839734696229189853993066285541304406409621217367784269508175242435804909258649869398018756925353758187802056841116573170210058548235941804828951412038696958056110756430883842164830233738320389843364305652060834155972526144889732419171518504586504340561677887043525946184689312508420762646738977595079326190401627869944070618209342018705023995780916035263988790427905806932863320257075476218138675018130628638832659992928615595628638714073326915570066198675900159485495862272056007336402972329779940796628156273100962231911649431342282698470759214091772085829178687809172576701787643613723295015420600013954310222451223623920179046625016443456417563822529627125629140670306177490369998152083242684307059605647513491947751654314285274138531770684385514281044317853445389239150401734177678003357535737735260470539542426758968647586172201036397016841273607349500762051379828270194272130839706744139676169578603182717350068507749155798187099674576489253377544786137486407384860076902002916153911942153702136111322328304032364769823148662433675013640287839861020295041302050480372188126677653898536835223971928574001705531351889047304819844390047692556457291137229069591714596325321771099327676261786085631045028509217658271833735598827618483401945319205560938768802216591571987225909132257443899367100435971959050529117389463821120336039211784529404121163081622856308724800413790765195459095446086174606368821879904769989411734805748373081192899120927305685427437658628472982116554219157911850954980127347279886557913726060298497697098855581110502487996109351907551103489031848827676660744607247450362125176683882301327383545891732287339510614423078516752957844544236366674136060567906859278905029477017216259980191812590372767981707400477794166251269348018887827990641981117652725239513868241825963600081025231058677720259456561982323030021754949912764554497251178050539742245019731748076946809296469453015429931037736614567360411214622946182243842806142792487596187741016525011548239556319039614707325293632051026135817407505600645755234816336991144135922946796281956294778700202870581447965017554153868372731930149670877183062612349384833201672771960842954108252232225318492481647121653895692102210779003082932903402263050844997187731338861540081988809758866398357591342138573320526434326962267468318760698947383241511955832070197789681282273629774091585547732141582017359023335392469248525879837267798356248439016318568854131446436307791000033561966753758146522017718314880036887326838369371840552739901401068210876114703069901264268124149871430128822589253559540746248016471126076889612246610669216692416570731949151511199275211023739853367630835963118766460061563950298066882339475543998922413535536267812592035776178737254701131460053480083251135186509679919799107105462552119018449533114882270557507658701731597268918186455824863952005116077706026067734525343308972900048674755566924069506966220623661792878523167739830723329689450320582957955743164855428721087850583513953759091473331350741568391846180626080858354625542531657815564703326914380785709683655274805816231183899894661600089689360952122497674890110008947276311944246276943354511639100625158848666909073418793359215881467595286139366325099745484182575016268849906378452006783932418985636855890214894468257038025932080789758577490576009872117454626637072714153669322993263954458814176549443288405570867017626815407840076220611953956964088892930285618539872252560580003515765373402514888184983441338697860036504970376532267064399434530596926524796693624511859567297079827446415758088666993432691520397322445838007296807245106408618116666953733058781046984661520266290602208930128506361370834083745736393070191764983931537538552678179631715835114308296044344156895825242737435557216745422603450654450497398985035144892861097948722518734935804245350266661418563989822815680625121394585506420843572670456866413715597765319935775049380483586782529737550440423211505144067618776423812641920326623764280918923251932070326680854347426667311994849091661834623229666941498351396255032765390894470337480253388434835979979982927937744184799383405657685555327823505868954757410829640297495185891745372231335624930739202220197375128782920511545990324433535839021077166478747126697688148741603034959828509988541537899693918398092536711013329289985417425381080592534485236536974060696209707319265090497681665801940749866120459595364547214189750634911739343394871598011232376549554878075294576515962339985255320247154728955655162852059062136681777474867987291979857396744292424905463171520480868709833466407641690591747456487861155235559535037299527549857195348342234640279918776881102074289457359944397102643424391565321047925486495690092170447148457680907740690101982867590676990461335687359139776346748514117226161715673465257938301705261086402161077255912460102195233126024716844098907464705839643820359961901670343017740119762331866025900439893422770010977464169597201616570305079386380081245853392536766480344088649742421844395416417937330647274783068276959917198918666225636317053692190543012664102414165808863119009645494565477520847431622741072792497280864961410824814195250446951655322997978697459358610134579041485979330693431316346750816921580182334117072198291447663721364180812138971233006880019218880395193671637687216957991352106363410543867977972347740513640727324661628461411641791219588471341318491490916298795381051606378457704167137974372612614037758538255627514798410423313506800455337735754384257288062624222816434471152104697788731118351826512621479244266713250806699260186685297938836133215071810398653443753077513556691465899797480165125809093838591860620080017965856043872947071749006355586198286907115635795007681252967759161615778652875525509227463857994961843977976730539686309665445609851443129705912799045406297539361621206722021282026887254300985316101294324101079341492422262641346220910877944575519525646118398025795747145095242283490234671879533626846059215860181695622428430792990654328309167701702979926342733592037641369125977595354188524714386553065187852859300146208812236459449384288712539800707598387468508377682058047180693129292054914441512740342005014916737132819326280592192382641684512173226114650267668072864579380019997771131568634608432032211869979986516098918696613915846330342930066616485370487553684479929545277166096439534706861322600793898679832771456954159260389352815674789664718864212120593826151079036122292228331509883302481858902391383657250923803267146580973172440830319791931517849549506650857782731232667805641565785884965739007956243867601750720438655329512460618237759497534673148029745828944876622290508596073023033018718431832881872932713795216228065305077287497779886867259340079270781992995692194212115813279961030750556566185036687571803073628120011587046907720733574631350347050792003136884632266323515739403014223899445423213958054363794883791541492069660576160397739574034790946984326106868088842243781851573284652040475961124527727058830790349429296689673074753087217046099526878070205915122840568364989480365781357382692987965038672112360618302108263306386711273644752531576412667962361228644994218825080431678147263741980266202722529048396325090620476053810352540744452433908329288332346498010427993422086356615883669656345437373089921067586389251706836830126430199985476773306472844669389838252299945855188948600573762643090912056831337721158032645727873989449790726162909182337108124343544391899822189091260323376946879368514872932239309508034684652428584005485503740534950621375293262747086962541036962166315451122492917695405817953395339138755259860590946784253563950956912530831080154845292513932279119129860474123365724222801615226572404284276841124092362364491758035905756578053101960671545893889909491121105544504928157860579150000461514457034110208718459507129397354694018940367574378439372207474930623405144815240081655507228401689342367036027342918653064104995311168885516477998231259916591392710128427857553501885864457823414907582514995630477691542599463496616941109063225794839730927891018427283544470128822054810985250382792378603681806193807233714264614149325428731489178133256761082655071784370670369431050485113492372654058857929056153189339929977829791760784641421351511165077752141547495968650516807216592531398311608435367232185960188441231155666458072262399392709107739226374414231542442057786428850636816229988875814110164204800535533216288166139572996496806721713203962304055784719092014914730151919082682036805049588865845914044482392577990602293297507734007160800323252318663955334438001609503042445724158529465039514759987863483568573612444584787275107699082531871106536182956872021157008161582679134043974035314564360374857801846627583295132956394939460013417361613454017188216718749749329104658778017713721253027872768591899583498484614721642660773300652224343366687459164462178887080244749288552435130267131754771604590551225645503211661108476594290881769457129599986635823425490381420785326056925897855280746015492131248532465776634893406957358850603923863496747165959274188428479559460163863301659669913865565422539204781510043824043226919497280769149100647060023604477369166916395836205689573448546463650518027864356035386644185750982386690653895825484369505621442883502715211750826752496065505459156404259243761066481784803061512753069239992723902952494955326490467478898907546847748896533792651838800559238001331863161242903110893523040380020629875828232308338089389273991698767653530054075268541445733492225960820463091301415272014059026702699565229814841591803616732916751612515268239969204014168134572716808575849814780982066972779946145352584309302883200296655597573032835299068054263196919932849992508988361880707235749126610036026022900591273542673933149157742943572378605773098477672314512674405463045187785849272790089811393157422545280635108356352202743148577503716792847314966259934364154339804068995758614698182064177238675404909831740599478813848616047289966733431922431708748115204843072406294064795963569056747512649629059524555209462960549024115065785215708778008253179458184154569249741664970536143850026676156887110330820286326302613125445976361699979192587955207735564180210123512050883555695065020565869875924513134237182252446301853100182504540599418688210121077662951222583276286767498606159906480278412397035799311218415550592678486132087076082648418672279637400095601633214205085261147838609594201764068092781119494595191894425874262039180965361127523460680997307852416697691568923387459977166969894076079774975592260792103196778124152360934619739335900684447207875297352334729728558508759410329476818996701464774074979731895917859889743134998020404234335511120451372723954797901743460329790585292619221720800696563788319580828190757538270256515794970719027866216290899708907176286230388117670981509127383696213844412944226915569424100597004999650043700660759025930344817365599003626805955875312125345912418667218974926048904127842580595106633759820188697801792854238677243411490346123798816373124184740609285053694625063487156262733338370145793169094880555579565405857624866440896923256918881234486977148537100100845655271035248498089468794130593308956762248772450978424379899270639051378468154520837235856635492700821465050184899362956253128169324730053704211734828480338245974921732658079769211272309491738834525235754785862314802390127038966157862206248696612569767878203133364789204142119272670104855571235008620212048674512146911564263512930356872502932456857586423376561618790771990022376450090671105488886468203537164280231363993685888437927641992649150858934261201867205518944969765651094021923366453221093691577830606816641425318473420061486591415441368094090616890086825754203644055950462464123095945316069480027321588561404867784434942667413444187084815392802105508674597643005915462698046899423654363048554175933216253388685043767957612214919304635335257624491560573531120188504788137060973271116172556458728152537603474390786728444419922585121786906145230918665245094172959249794990874583745152122453997596934795052725336040748055259193285038575584965313376225047244452266233035997074291944327373267795744693928852041717148204504205681939060736056046552668816775180378405372426250984409108912146062929247304814850264371196200670986371654625608626564710588773196150231006510029914201599555302203595815574079175738889838673173161032314172938422024193681676313127845713436575611712581139247051941549695946976380250898467238888787808513977585193768951720776377811499778139731580932913094686948006606527099404613768962183898684887047781115933498289217672337991043563184745348725633982036526601962299087885290523590316817608644867792624131276168299196871095490087239175626545582151918235463289014141305077785230475310175623646966568880915505720429747817059235209158342416745354245550274799911119444093351410399468146891567905942858763934373210754010123101613687033707187803476715427383779962226923630988119333765586047353175587025298239210293545033759980378063657459587920430519691552137699302990139620538447573682246847262369434849946701506212560874007371313549181651546102890888268058986256711010615597989301617605123682776578142108017170200103637539248288986619947703447530847006773098801130962720279355846231608589126139163916765456437840848111372984426381923636645227152873709114816608251304634167682459689406554067454676282812282654537427537260431891039121697482094670717627494181909254662408952661455521188804481110002855850482519564856194334004420721831490056419274982707923441623273088582658667353040014159899449133597165056233936063461414842507334596494060641472692831933017032796716680373743499268145732961731925903687934083430875112194380393985290910989868075924153598263496257282438623529898186064806648228778926880891465807299115015543568666170365451634140054605552097380886323961123248500821302805052781958017756915414647480534865645722809489805977198396098683825993336698485383261807789793655016067957938632813245334113144407076640121262720486195644502769217840213446960378398879674617209422150273145818845553775771467150355409509896064805809903885974076135114839993073900578862487476261530461818699056941418172571514456066947938706294360941117307422020548622060522209650122942439538961935751270726330063530901938404789029063030067919952651011635831627094392649739209716765541092077388859387961212116048519616212096125954212039031880978233491222790263105606045321477229006813193379663219038537205971640784238024421078831225409823131254304451246713117709591276822166447391328034085670515069337339802055552039960910967712831173849176872039885690967623328664880814524469612514792925696495663144581299868003021538054377967482933844085444130178563216424865396801462628740080657295195446486820938649733722570501341710416807688285507048276278564301537457893168647328975796248955922955384522629002240210939002969353385907793012673729798636601705927123480677487262013305853411430621420573261823796477089205426492961840103482153097815842928835299549775914474669814173223878446048634636335538623295361988169644046271961647981194298665407020822330371720388556590640631528431960153906750998842308874487132444139253828864649405207743250573184991967801492098962600802985476484586297675914544034902812237536927576591451179134868511435585358325459063801586953857932726566083242291112425048754985304410962678268637977826234590917993965572743205335946135017103414646318562291233809725515727906397723998155995454150234648923113073256911886163092591612523183415860174124645733836757242716410010798783752877600972126110380433996477146399124142228217122588229357247038706032751727720316117971699605914519354512253200001738833479592783485469994884723646314079523058101878158353100062696496117850346358246421164999770344976068632305040725740822285001110067323077141434762230415585934021140571165000838067585615126132697154906042917101778364264778396175346524692737641536080016325398669428759047562581216704929674643490284690136150867734594930508887130411869108649954304856509829322534586772546431836461048826913529698513775410283065712558570444564158825451543348731014076675604319934633784357725951919226909367139189349654009948912764398181843035976951455628141469067117662705725669730196957029807255399795357626919700275236642071323487509094826891558446482198332399332233402638111525198349372741633712440023000049608008632795776682063989039924555735162987023158436584071073775155130642794857962441198692010842314353474670651020229818024576986049074828770007338147538722791458163644592430973690484626083628038164805001964402308638034268888771225082301891694485438126690057273242204613102259975201414024102487407305066113100013078692098086134215975010514474614546358121493668044841528734584444446747244429426023895170527615704107168608824321563884423406049652098619036707262616020101858649314083936615478398602114833993956186962695817591412559391762630034322191713108915845021884676830288672655057464105484786663435443507266329439462422856022623163323952908561311056289256823104493028936321439077791335481338264014665593564156355642783769703230716264040911444073647180786104796005586928081671865275165420064660173805937159833363743543420965051691963442007837408899480285972466748715201277145306719063030449283264826234888956655645106276810200592827035413059826763457239607421675066076641891646384930109699399515362834955919159076085177688962499368337899892281319266705050901813171413729953523024021775510061283065307836975380639855377589267222066307046103229518627916596506152812375150799340950467924310580447423560551267306712240110490878164039415872023439730504307306215872578625100221597204406598715622515289591311294211714129894290730900446453586795878783370154198973859989761674898537468462702839745942910920315334866685603183779993786764080238270039067413443585647057013730073032344946988661080316894196172310706250107797383213690372328661303190071820095335734735983331973938257248686228135812417856227928750613413242357171070314236558691260882944923044055717189325227466352734696873734258368662661991766192835068447114650172008156058025446137426981012117409133035394427795669639738940835342643982774287261290854784047732897306994053716443397970935720647848002420015817535210069742785836821434292775592233766851306490183537860029110558803019200231770235370793051103827397025490162931349750458122481160514391671296177470863203523370924164005222232256300978473676025688945352843206197600249344958994436968234386877848238320100582971950247163957835244176141291309595177544692675008674699706135203211705131254590457841637224239739280009110435348040153673227969980028043365886590768835554710489039316148299190123379449178117766967043199736170121657081048264290590995772864147445305844641355465318191677594893072417273648131583719138356729841996585020652804977945297757893314109601116150839393275613546969155574479801013702325733809741444179176698983402264803400112627263543756916845507974334519753710120199639739383968895753631770105135497909763280293561778293395306292374072864274718983369192049884493779998194224280375906513547858124686876126516645311386591465277828633408181182162884149956492361342851901193845576789883482695446792359278468236336644133871946091821279137837629751930291877033742921529687516264486970841859665666236309350431157012925718194407525620749868165219173721992079315814704263813950738146964861583665360537698463537041181716824239827545954127670369871775199810198751419009565710788887299655731843617712818541967170017582431036641015392423054727820959862957777485858331163404159253832622712321907328251020474372861482624565778855304004824498285783449425783514224683933576517142424293101853420275233383957591184033044494435183951612314517966958206978234326569688712364935976375256689105154844040316806683189678947101635493292382558007420036228692444838674018418701167002063686964166397522143285987342635916411971177194006509197123495697709198133172449749486766759927733173140424454346068645142279698222353931333137332040305220447316353090263854187991089379007720189379236235960582570445114943111636348885621233048079227074847739451292731526602384243681013290081614730053631575731521507008656270295040603218940607276543465726786523877468916363541363124367935098809823628091674130331106587587901302589806953244762068333132657550038759170000909244577764613556087889598497877453253790431775589124378403491838795107587728254708288828989442984613839004502348113087356032054274826792712982150071274454643688042749676890979239844354488508053671860762456473969039284573986229683962614683777927742096407129255439827882285507709125453075003298317326444858461333355967054402788732995104865129977918487969250871135832481371891745850692555901406898074081592863738730538628906844653722889502211125656312815434568186602416616146747920749128939562520361377013034892094018188819270199507448274390295908724970619475388570011596378695387714791439748587681827593082770425897699819497176061726428289908109990432094385999335170696864391275628829593868697106244787411689779494445261852559483785658317689062524087682222137299354267406741684581761956007007053458189468016331409180143967492851611577323622761096207716275495541733429200911415647252329682165731329556443361206331277140672494860472626949608216350967324739385329392427319862440075742349269520681092197067127331770460034559279656746130635037523645482128043562418300677039850522653558343657665994133124841111374946647205722365028302820724880565087572624669783916840968937012779937079036723742812379290860796743684668747086299754946939880354279694265226440448043274189813139356856596387396467547820584885897075705259061632810435870994914678032798773801850212472715552395915279487508772985442632669952854586955603386233570607977955670165493407565699503640256516533942655038282532802293953297536061107667734921546571278626405276580394415517860148826133087929482485732856929645048858058145356435777643327667162033727209941188550167643236018172176295139754534925342614980045077813152444138871372301429746494128383828112509858078247710198675692908444501202122968846898138627864576046949333731915836939878213909078319642374534189236836091749391522602563432087192891275149442941610700006451037053290313522241470383850927691930058139169371032967337950414415311216926515116948756496736401068438995064080980353134290575273193803918378211533395875316091937530065784981838787006472561435929033094253767169687045917756550024797359006837203334040988685271669393052194683396984882214333751266680372084160160302895898848095699745643080400848915275845752970577929705407745890522902450728171441538005320666177226639462323157244171921636288264409896247161017991292966767559348116155511863430342816280735204821035580974271806095450907868665391464114535527025838978377558325672034348163601799924160757377231075720836033038343637021743393346038464543595672487218403046098042293084322357297737868507096941381334670627592939442863553826907561361122350445520596416890634708918499458714622257709386687630064641512732736498697230160286591927649631984410797762765711476253432800947880084247605333767006010952414241686362426374870019118815275777188769269188352164677462444101441343754852461835796229638695886890443293259945179621835804788255685758012281718929073797851405346683233873727596858569752307276834646778986808347615973582595746484004153061896865275632100508098607324609537254389702689087565645260677904840950632498189035323281686358279118814728565366062726657327319651035810444237555812988023414920081861826676551276314720465973741923267325943069599275649839567600491379406084927103475230003896437791253147325830587198101512725067304789946337058599252778131785673522456657319917528655174982659782040346012901429213676172837123638005348655099568746690996268454711755106876267622406855971764305765652012167340578171072435613959413573435532295603958968034238681041598875333023666276223792531277698199222035779535074925968895811318126727100140213135480025545114483027661547746533480960447575116948331970131814670093770799829787386674425716088919022740481779433378447478531518304765178820637966976431807491037949227187505826149200572331045976717465727117782766448199439148760712248877718033652910591366162854063670082097538097034960117845706996363886211052390803903422549206219476060138796802665544915301335035682559463278098385240284055236990826289092939666490256649963673175597173338801026287111312704121377774615429349900430734596071741287195456298984114215580872344353252207313344154449176810224970731954039486976335167061415600799732505566771035613280796733898110162917727920328957901801735985493418992058846543825129988654958731451728904080503835275904530072954603114983554461800040083406273627224421901516876169370909013112816747624367362864107360933334924883910936868759065152851174381859445687442216002684121672168178437579627318434684644744687007075090745899890155680298010690738353148669435167402599227364664395747080545449847442109249251167312687715077048789792152545488169741560318037620861398016890002959168470092122666956013112387212861408823807624424537746289506262213742379050088127987080626309313875986656582273188425260945479599542221767140540294241807290030043080092270854746354621769135424157073097742288563012111738557022653785683881711736977708020326893039661472061840452535126612918254246951491008823366431215355221861768576317451320332976866491843356999067461877601607007956664633324247433588002306434507147816253662967288323173864083102377431101604901383990158109156014596425576450358545967764583190898549691800900555230758054145607781053302927781196995577043254791371568110087386719364195564469202171353459028697225567820020484457437007122693920965433564694466408781534351271233019936174819040580227826875315389678771969212586713732450242253886510162193146284686615814924850565149813698571913213596876557906389021124514309703104116073891601143749735047169886279618536597466450608044938565703808594109997697831033908228270166522683067794813844475122437414372782269407149312990892338103926502631120853953290422305600877815261715112734933684969858988457867882867719490157075337370824792796629274882613079373498765497427886202396729079531532113421858904037451875071799016664232545738914077389369893618895840999621949971906617153155128100670266866037010491158593210440323831977027808901174543917314132151324521002767499925646153808877340435851149286583579131851930486245232029654751013565957780568903650131524804728819650942445482381931353310795228668165871364872814996413210674494459703930247695872684231888122673746298788981085638729287344744468956121394365147569281861998049238301875288158374645869465691256047928472606820764546318342017261280232172386618777379609579559754488755662143829613951160074107328928857863337204881847544579689294617280773398808590551188985738700549187137431989873023801008471164953577897676921446857765255195305532590041562743419455637211621395442279530810920442618629006228912857009513999214083288325961468551310593747836322039925794694261028279383026786941877807068529159409910521363216037068258230155691485104555245714174961707378098230819568354707740793361481443311007202405337245711640701015527430308872390039825840544172743226745097574524699612130684851108466426440718599775942706178913921883772602618912435702627803527132323343488656878378167481118709267676840581961061887332926294572112109541131525884141103596315594543542866457853428089708053526912069847585096238832677190072209475539828256082439364653681567266536987380020090051015306772642998381181087240596037885149123574954962382429917072593410691818354219518509062781181568274311657547258296835917408138082454803190560186229408107052974304352311075115411904776461084472325209068392223388849510266740792368744610361088998020386899133479235401616040470558265268683853726480171842621420738585106368690293795885261320709179914652997216576717559239547249829468821730121857393280444119748959136675277375876700910455994949929500343837286383627955312398531363916588744701666330321329028375993125323840227912144563603090976350290162224916867911221544706101500739117282000907762559827290606801117318264419467812593278727267465187986131254468174799538434388332236977173141323914099795364369132635478663750690083979210961705393967325933203971714052752560028003559543579216261879795391962809529555977930674355055606058471172130622399186102784740864566375225881703195728638171433026866247453333667614952615137663779057887451707789377873145385186826548935928671709516702542215317323281732057380623192584457192061025372786832836873751368962540952848903473425644088138718075320427331334760144372653650543519829831767985253770551916528715449363218179644140059054667257421865051965985763624178154704023913210167851497778418348621968373344028924473589602654683876190066994895146761892411560878362998155028116408564997781633224357830080876897019643570142665072209073024753098218012697714515989728203042704482960744390018713880666292976272059750701358305497122487888380183493463808624676124530227592507898951149582801257005335050753688940803876064896807854028004759186914704658487204768439566124131654096594051636793939557013580177535436748594910885938840106313689538948744455825473623623264801648242912398074318666361184233829944596856559981725328590516808653295845579459104577838929028805688103371697625227607588826317159955413747211798853086111842738125183753347787199593944309142760148562345286148370068273754471740198711790358260046883037685058511419795006487615198145138467608238553669466027435823167270598619539264927515383568325252502156983740403557870040857300739367836769162704873857098755243971171038613066856218310541885044952818614863985080044644580354887312495633916297248570651346826577660472361657627873152778977630276486892420862709650269662730707382531688736043833479402809463628726527711048673948213186304481273239924787523656479372053022092901973595325982081637702106603859614803894992165109955967964360733334471595459136244741993977133553772832947536920099013251457453805101747527302086311185944745744556597865874558924537211071736681832235835236460885715722696131020098015699840402635376237846276549022873560822390070141193040880340462475276582625114709750072721634798936533751654483683135057846302429023779679044691630239202301445469186320560417095003209126803612232120877757565561495684373411788742794024928722902220724163700880685215685623300700738610043393485790803286623111009463130787627887492450950539126498796060905611959680319652877189281143854729193448490574112815706592988236978099493987806205248974899112195758431126352526583222549888950671457043849343512481391353660364667436322470261451322517364243078499707873501297470279319344955524960197238003099317033588028001310547379414445461120896719581624967037496984235509227554397810137739761498560338574240100353239048804882213851507479996993827716475317163113115580084260274317881379015923789988775776015639673594109308908603424597348115651212584983371976692127164158907151184711473585235539065710264167817973165072942357246342524451904267867080569468635391978550723583346818353675241121406982694596384502024013418051489476849610037436891590369787230219381371317665398195043809544075180821785094704082698367488956266546144992749476306436468821049926968108580715284176816251666942693891148920899401776106181816865304295667775400224527434426940119180164565784830085235477196529327641645396326156231854252182920473145661834374842747957570261658031148245313359031497633447777178606384197930911670541832842491881554981853840552393759487999716910989951177349862495081914405393717800232310741312290145836166109939093801333414179479412358719611337946735395124344605177380555053688400458274549752964142477735160879264103750064463767124736705474144648277916606528330219767390552437077850432700614857398251452289008742745615460132308087594900139519011779838759671532999177444766312122325612226534821975550203155661119205141376173937301696005021736208810422497478253813875498432633251249787937952584905701273639362862053843418992417961884133463156124979500615886849750567631643176221305007803042448353422503731215859707159146420719895513051543315025838077362758679743106094269919041924517575683860478016142272093910849299325365281501570315658012361727656033178621114434643320758664545206302351218257748862098025833855124546392001019334518539719675404135970674825546460721743723851043823392940709481472857222355565953543838288117910896315067303910457490948596710362174646161083513525072874867844372821525534170602614881067642204926524802774064886430547718919236294847510831690379246105193152341709179126323682029963577173644491424964092016728746167306393278565529486307874786886324893752297630157394265448471142761839988146898280348220622903156981881326598842518363636160411878779382786731334800641491181428765073574730179375767951662102516120486525353888998975234736091616228889278608575630385918598453563533146853486214955191170773522554118233320721486830404708615903457034746811112803053473803083611055236499315397612585863246441087013777739807797610837076745522077441875192024458485927480813859696408150685365021628349628925615530541893526558671890891012008498451310248946053453852266434553240328606532577064929259783195486282800362692805147230959775408263319358600878277482251838170382563772444797519029168582044773766982050281012413736250212708712332752725756244165477912842240884064993007660917846768939552327321901933496690840287770769218583191140173973372140790230562198836789990029603437041764968389191848897555196659230152288894658295119777051787332396725397054057330643243385603026997548984873177152345326746336427838967885620715964478105620816328124443818539921795154067293732379702990450096070852431362816352935505560460090329818864780795262849049092390966865851606446590908397665212096954101615804990472031409944005147160753142103916564891813346542875826703033731920168800962990894058456204197404241380140387437202770648161454601570547198369765927343091241966576408728446546534296741950636409237140720314303009543821201391027534220163895138355838115107875634946187198992809675212670385405288906680088432284427564294374492360076797580051989062919438426229367354930387324824619150754358410612944678484067179218699305985546394822498925303759358922824366651240862318775254356747499950670104462515017533542768518349870963149818000436178271374308226599170429031602466963040701819037298601162388667471482553461576250193095847558249948200967806079896434113363569221482268155612429518270139702819358518115823604898305178502005461885886683777539915331590143666502060661706592743351814041626509531574581299451766208595287108545846506191070459328719368507087669680343472178448059152782897511800014221628498791734173708135069351314994139262286242449125186746526991498914383539522709134115321663813914678123726906449433164445255792141928358251649954256041260911829140681904712469622334420000322147837466090434887501616838210174674854908469194657409236267904945251066870458383517374409535957169609812775586694839923577473585372832289591637474195621095674963044427078547396172633599742282971720636681220929570760323851281638985496773073971001708206528435943001276798063678691082853572436059219862332333707243165456123373353070621482493181413797217873677180479100918640040457165422102970728269665652953247970755663282266599542907458256991259687499250514851974011784967389307559605663943640932686705984889802471294799283579977561890445486026636449530767791279185195197453908453640247048888033483130512042235180311326130356571399874703361466660701403006962727269340312493513805877355000116621763932813125316045945226552786672704977396276904785859388335230650137303357320538203161636694247864054007622142689835907991551938149271962032396516303074200601493109131467352173602213216654474241764514020792679352198191946095568042855378549577053214530639841109961926420711071753658867080386901290498145274546471830124979521763416583003574725944488032107688996841682844414718910831501308298387339346216006398954360631250125249801440691619394676980421694923920025893628248195463583897421314566729198630853456529079566825203061405019843375831297918481627495828850633409773058612328452632731198583378666431586025632730246584408232331439889303923107458937376050711618518608617223098591747447744506378623324459520373009026617452457911061073515544087949911681993140928399604713140437327839548049844016469424888237021635255000332872242429109301290018135681680064424985720281105661804452221748122039880610042348623512287692044913628284943560199385318312547495547785427761785969212880402272766664972662598044936878951433264257588447104829207063094320793975777496864230635979077329723971024487157000029321579409969333111077605504642119887475069845229629120014190282324252608112306661344321846944142301806252102765222217736506208324495800736641163889173781245031606018633106817682225924332381565263717864567748676466375982288000916061586946931626058310114347707182462578114303082448963620510116869401822493014822386508890378371454498170878702674302648469289871248757075173012439283046392971575035001178293852956795222218142028971530475719794730349285953315270914264295567853443127067981588732702867244497560969371667079079753021873003393397372861845174092179527537740340446215093456634223271756180928285824250416841530267535928279474688984780466616885621086632306734920730898268216928953617448821740129602404431165715278724335323393123096867034477884886882853240229168700015742922634548104577632896262931855075750455456978416233984102618545211535298299130724488383787372315340229090075876302761978164802017670891258637140816668109403635295900052268004646172808345329298212939772125994009148529310880816668577005813940730395306575363271126298270033623426806466640044999233252393805755622505057504344081198809566621739644549804642728388865883845963587019777985873341998382175880946131106881268089998144403752062728061143045743130137437510915779941624555842668350632496524049607085120591128825630669810394259691044508948665317730121499796995311889070769863151884083007110834357910291138951587575526286543889691060061846068709825423713351102743311414766668490711580806109230470425817942335647578500927233092734802172892960441471203044121361523767253244057152211582849053651035878462865851104312773308134053514579978886085545432751205800658706606819543371580775201918673479947971417933156334789708417992709770385424454078580488249431857900156812818724916304412546876921220420308474118003684119935317735633781438954687119959972782550181523638613297093311719548199028133530801288535149516017379640198127432267847067798934171788055093483690921073215497313389022537951237736741682085488271715192884490151091686547855470079565913337115980107832660283610960875710745164850986380582353576227768257737527158184845196331456633304051921567425667769675189596967993262815993707156010174837013093743107009877777317867894815844979152097720259906372604131645318082187443168347692125413157429886910026242935884873885208340557826344859499231146373813310990160447141588185689411011793523526535052789666600611943456525618543071198376824551739532926112065288418082836395386693478650171004296072038090195629188586947688497910631236152102152157457537780663835215348802157116443626871960577593424484599410234895490446210417088698132957671944342328458758144445256408057116431601145305779370041251394465799378519646303645212099339126304218513719824623132305621114860021500664093181138792704500299079105355945198753869342342996247790378582120092193248574037952752159532210110733074737804876734735384255637192421951940259851232155559313816052703559097862753629349182435525277135574067211474044471009513309079706543864338054478553256256959849524528327741677691187961565749112681760517646649422505435690707819499658451395553172428113628977697458517170712147718759521966894293703186541162702129785846587756567229395478286267175241293517166563172422395762605967575249658792112909344612534214161986064732510403300908488178775544792502561542616018342242309767107414416497663329899506666700997965458928933089413250538097282943627104978525189299297374010785845560353343952106343366061125552557932216891609748711673150921367881849006174097113955286944656386015431653961846260094886056611057999180203583465569563047567416671094764786869028320531972813818954033042007754434620090470296327480730417721642873078035387348778430312845258639827300958897459667369156972402571353240771760805459250210737100837220038097110239324793335194458455776858453538090455880707555851466104387875713569036416750910325366360366380162676200113949454108793747925188471172647614018911808302993537754798454554732293420749593203472925009032895309747233578770193646114719720661272081246327926278020784609041204432397207190177990038548417149999701992268064720879572609879677966553649535278312491119933523673084808280518110555764643550431063859948649390833514033335394821380349876813231571233709838171595796446082705921967126051425872390894232687194282901676555255979164813462555691336073282071222612824106673086149865273689244181966403174549823801751304203751120176632576921215452941026230174108150676614352802714558988076092747677206143410900315966802407208692909437442408533839942421598282588906994371551935258499679897704002462524456031422246305969396055569686183492978222369602195628389849078638808580996167673140486174731018761549762215764192964893424633282522642146294454276650004946972181280589743328822172537557596687260174014803370899473150188969335788329258112563248849582308005000330378797598103095692205601576838154470992248762963672831561305833005326527236227063091004342606564363167576695036040101183378373133769747464970186608940189405807289851572631609697801307948000835624603950767933361343947503578079765907799034754900840602297245171778469445965225170015442663899941536449629160843769367500922702917816771800767680602602724316432819865567444375833541174416009122082860088918770134916725438108311232240304054771897475384552783210627207805730724750060858917763819699161352769876096089452205751884664295604186787671452813504692431951286391244913374868058158292733950668248970003323767174775016698865401167693699128795387053092035388456741180329049165793722299932264799121790494311832529937660361515921094459853465198345526565193192577493152638545217964439058217384090431694363077777033267523114257578050679841085746039728932729999249937765523330305316423097984984804347081016850914004439844029527642921254694826565734131703007478831102175351829586983358352566873944990352463088591812610084156351779898503445587658723509769909139001394182259141369324460523593394877158139263250142808955231283306331078283560516888734798273187682845326164098733243254417021406334897825918682836996351729481045439925870098830046052748393607627400446389672680878559988705696123346755715773154325832644761992274162107673683441663401762421697873340081882925192779560992736102775725625144660825377050648181533681057638550571510987406331915923478137929586686497606107645715990765607131930856931083876816068288992150439675153130990799324049257325176408008687114450303742263094964826056986550800468483905382623874857592472181690095856945931089814951660639871212378055873727463065114457052559861594274473767763869787048462989322136957867903511821460943711137485030903242534723149318081559260233510431675549229604521784260978921993405718347733854990469156280499383574256857026767656096592830367313868409455244655107025110163233738254592209215722587752006495907073763361680675617337765849780528012944257401194844927445530957188642111914772345315469003822196564265253067145879419308407779862337555961588027918869417493192572497386298246779681232810193286082083589888342150619213968533844117806565234996833259121403833827661012273453579693720105179408645295137681870102648879157900738625278037956058461182739998588219762323810390675464822036764057082713495397358447735398479734091531434538210394466133695826281322071842025677043364689380429318369498447698914636155308572489824978763058184541295797955717517271640149420345071404465412864651336901550686979683204848272181213657984061223054452050244584516119280121106156996291321696622632769421002421525732494324645072153815961781749951079453842781906274357389707253175144983401057922003800037502342500217909367822600476118029985248929468560046654501341131693942510105614598379805768620717485954723334989475045761015770401691826215254274649783329740143637589893667861612056353214502876674747274264416671403299975554962791087584540469602909258608080156796673649711796329197363689535981474019372862110444092661298642092766932736277355836899089580502979930397297913039203611874487334558889974965917966809329789716474068493814184959226988201754701979775940145093960072933238937062961195534309501463955140590594302936171264477014237108796190183813075220122795611458408061047851600211064701257235417562761342174174008270529795324127639596511903216141508919712005801292766686090101758061248668490722603515432066375403323850275986121627393343186177259760262442882199316144880052162993932481663546864889123490937915099348501221238486121500903819377549234138776033426867577952309623090221977215466897022548527763113550271716499669808076460194814798970249754677877755752877620175901047107683300767118570054040072343700459172089563959400652155940297221240940916733012920975567072251495224237061629032257855744285327369005574448997449785153236722730560194000300688147557763020389467291690299044842519086842317627453418365472243594342888858794195048302895639080070766946149226960809157930958290493010416092086161942189670910153348151840677603662220259957078053244072772530638085737904632284546669602651454851061465837900609637041915776629090233672613663181156511075947975079317207332632854181817321098816814908911393248700618004035512230402124445166671434908020884975390004771495913922864629278318009393404189625182297742205461883511657532127095535324519701421714070190399820946512178500046367731128626319021676845586206218527517911490838739457073204812983545004999326126737381871328282273274916007116415924321942714705690539031325616784073167341438912730673042913666491597878148894772412638333316902872702779684119363598219965334937743351554499784587224973276399516054365311772743177163123187509744814144398111422036695326009643033112199336635863494299161466764522889002344020107924020157823713687669793802263087912359066985855722712813587705729452963682466897432348455691426134372268849288924699422263013988640823546807047028052764039522871316209072629729361600413747124291439415322717771248257695034332716693161778413521769860753576379029620153679986090008197057094186348991905138669910425116291349680730055018104512462982439943712392859562706153652071849776677402588193804950404760059136059004096473678305719346171859281218845777235483514145560649674134933216637679860306524866521658382668551511479043383064505102159353506242248199068205514932688946530107858667298542453786816609764019842410277152729683045329337242042451023252108471667041163918369073949522737024717281429377055783494705157801634733456145538731289590073770404766379893104047303108048248139743135710623404348299411427954820483245085347526806349785251849864891493204726416351009041581772145444420016787348565170363486836886933809446207584492850182306823810680375367772311253974402783255591200203180900148599267721773484341851767789882239775048937498875440401867849545802454711246878788932091810911048475896193824994306476666026652257782208488783492897732457585599379731112387468720839873671174646492797170391138673193224682765200287134190315856845460605819033423160848653710331306752529680117698826422914204561865787288391783312260081143606705794895940824553232944034364885663279181002533155568697498569215696166345243153462356425982677516773396335461281239583896700472896490403768707066994788683119067156442161800094790337237171152709161280370255322018343426175370433840000811172322919324274022612295547391528936388624766540280505692159904668893778003310666704387856231978045361223843094632373126916146969900133125849107302037622879835899244313604009431325199865318428303227196283838065026177172096340035953189651953294317918430730314061521716143836792444219444186457783139669931086703536453609644428868359630783909950160225265090600798986733530195267763812905522663867972219199601667913900898395636987699536072047897502845455055771253389530869007730995529985276569470617299226600054244716875425219932781928663088973176056055114877940416325244265653693113843809945235651845744837926528964814489240187584535935023114608546663877458520407125851284108518181934630530608910695887193777380056858949059288423837635515222558637871997681142438554631429850953221606840150468555901787450748921664013982811044879976082573604262763973418357277120254705302168661837692881181410309599970335437186437590044051374455786458213383516633506169997366714375077257847353255180033810364678041514103473388507082250463900933729649183724549131475923634157418993686668959303572058764129095369119519117731512739152903405378555437101976822033023051619842324476887131306710775844429291306565818688864552630262744645587321780651251567670599656997217465014571203488511330022388700190317796395959318417737280734854266571632219666773767669392698955494707559317077672055130972286360257152624805585311897859686088427056814971173652949223338129046527452205719546470203120745485625567925887745283997813215575924705224863861613634269559882368513447772250628506910023466734954630091683129795482903820004848178155392494492532541992916425193781459522452765817981952345852511751964935966848033756654366175581710436179294763143517461021469667058029251770169710529264075342528491635421620972375316465163803789120298308174098159133208620988833874508612123810162924466479860142956785012021020230800365502334467597711608369920334224204109562068524165599769774804356774601682783485459334708620500301567126925128754178192954658603872620136711983912017441090828015945197654213134927613772788244627588948508536629918572702679842454827430038303742815878032485215081676611757227937508992220498718336720337221616766381792676774274315740889789001997242206025858081920331177927119742174445159600618395993049360110176029156217819691079230608349814762767092757961633117933323396927917530805132400575953470221521947415577903598474766914455004860994845330337381942205688823198950162870671401985898821500646158810788163386838975919699332946229727249508828394768709912944464035239072796144400805717924004999885617765460222811696828530554924870862943397726298818833034038116941540064836793143599638288579062037635890229355447977068907861436449900494403962809894571156940006224017808074638041013260604421183698318608876579683150292275809306276701339897971465162584581367916133078719538673550232736480979416289778941876869840882553981675692831614675209302728581385778210280060851588678018693161066015546901069747186309322572348704360350357813429302764455241730070460309324789083701252721422180085910125516744358427588268738917345918416039233863353729773570780999102876956985036088970579256064277727877457544884788380002192478813067241292017311398918917845060247798350864964297705552621304155311864489215552530396762614574068894510520503234056816194574930360814536626198798486888009139541996032471081493643265081068158240986508281345266450303019162031609919121551134174984963314239622100778232146495640625356987878548135720456511905705432668223311292711412169383545249746983487271554115854761815049655478995179859036446477578772469267368940196687053020995330996389020230976734372341637279985987214309763388644687994891594741377045843795473422447530714205010047848192239300837898582070794008063728156591648307152758630443484620141289310829334533163614623602187775129389909971526666577355836613778130860593145953560172457309723247881085945224918170214987464822079807528179054723979283302125506216858343369404767466791679875731292927082769199481974331528193128260570342868316481659307965986356009181176896987011934176283604983085314749233282118585883754557202475701529227455143781175789217707340095697650997259595511569151999558826061186663974048699281018524996806984801612797626825515756117778580282548668107876677631598839356766085567942089616851329713961881029238501449031437417469843094833049920608052118590540559183647711712819586789780421993829835179030763806491912146592637331096385937617868968215707234811650522071787678781487997476725379333901247451380345158740319502392524927402459616916601913853482655119411653260741265929779639366681603896415880076767904726719192232692371814875980115084924848065137928702796273175736328424824721205611055837893166584005752871325387668363254165114074593760346593679480399761872847188161833648875015525391630176619477512810110204340216875566008808114212859683798646751651245870726754845774856824995036070412038791063774326589403393696605465175169369057691418142569412617172504969614732562169368677161455544187131499207284366380081641796036541063474143776436859387722140398421814697690116954362712244518349182802917136399844824587568970881876917103225365604119530687210147565609732983299805838437788984518760837909092354821838302117332889760507876321771843774391087652500906819897657933726597525742107473828271140632030521025551790847705103050611415388749559329800888648841079808837674678768473682213103339233075990358703221775101304662059791209248307717563080998218672204500977660945917105530830982753241962159204948661147231614023252633813798839425272856360167218502158234659082093537272231873946024729905207820555332252993628598322479518525122049792462113953080937818834447641253946991157939541421119728690219277153990482677062901921266967869850031147242245000138327310859730878723751743021875001960035484979074250512877840813408725279678919017301879339395705371466976069029092250613195116678194428012829421589508186381800406217063239312803325927927495865709039635695919287284676643472187916258827760998301619893816331710449099001858465152411275138387617209965073543010871814174085182883474571956448844462515006578112162570840880820506970264653458243909849228436824483791370797843270223819406730495951371016863871508121499282933218234800299935282210245433314820105033399171563971269770641871734763242617330462657936262066194083358244503300414123263542337351177121388729395629696993775633821219441683695684962268796681914687132251030029872592621303829743878128028228294100856501996764744076512222853702225466267191398706787628413661486441514947138902655794665594791521536038234892701355095470490235704966603720596148870742290661941835992018557523623171741014144786664567041054953794723745161890000527075670160426802719458535116885317949101437147460836460548069905281174017673744703812494596441301021202335430002352922954392980934426471320958617070400804571712354678584194126170707084419102663341380143889816792961059786392873301631325718542342534758889809670513813855768198634331709103950147939546100001191782164086464815562414412485260411985090794273059904676292659517089459231530600288247057633152230427126857171195148250134907748410427816582645443907857006883869546108300132679505570893267812460243389400579647888610623856054251097613095125570572471591765078773702879720678241977992841276601407020255548522944135312297784711329892642519339407033836691476459744764821538120635176153416282068565815190795495106448018095226204948438648192268453586056975543281953096812047440801205457976021450216817300429521082703030867479355164689566971212664432602223200687249552899604102639172503126079804656119956228915146487161298703543750538847265669562657475532671540101197180659810148060651918642399030236075360860834974538845175226951699706595566258759800544646120019711811252377792361389712847985143511652079216550995371756319601577146915492465208707871978461813519904016637127472630985022096350368218890040653362773950811447349191472199177122701708881322482137442060183778244480429570751947465001544859200808942855193113703990766010576651287853455460921850440601889574760779607113211507803871100157921811283684144617218897878514023668342847866595981398343276378727461200424042920735422215758812682528081560422827057418321178686709448232184926847518102593125918593826105550281514219478879614377816110254759361752885438278054000034620827716354607386320713576412354855066911571850484054535502728822495239978554719523028904898048060621602330219205711772868629850513035352997367484942316771879392444459299281440059188089683949249211318000762517102187383360095186178538919106273371677275379273404138351901768044705016831929888858837376539354106627050762592917335184690160996882122182535822142766712875195356998802201773196710348940524515666277792774397612832598804946532910070630788991145260642877081068642572339869459613081872026788629487197816809396853903479705922929408254184369093943974408020332772485869037524041562177198536436360697908157322687521127710190351501478295637570668732953156539516916588541158724479495723252724564083118809078394509673694139849155436238615404037752823611753308718876785005176945459817102787068481383649961225677462215967909435054341971507738551228258759426284025891046784554800284818372361709882817016571013421026050122604000159952880265376993477851602186063756777749101111377607313784216977507804304395712307007449851074731226014817027078699868646512590995267654880861826045982685064708942052509102225524659223000271762623575932093200293522992662454523116830729392229112911685651142537891361626411451751214238029457483447270720482428283148173229323431014083518562212183726314022336303566929466764836343385351128187098140653399871341095298795063864780274037428759258336728658734640077954024011762312927771714442262509644353167890326217218325888691519938209950155056371975858726689593633784497790988422593580365898858218883683543854126068631241666449416637533957670178172134563637831711198912020893135779213521081033977426380136594914504290562979784767689987741955691583617329560060573471640777226634976642772440834897502722896699259863067757014176038200527772984935837429736042988030985045940232890815745737219421593036705088802782905919968009864598980025431629031577698298368797511201124426509601023002232014213572720010278569376272846840340563195649260637231560085157355307015039591140912023965890153953250039611602830275346793510610457962613020159209999786876031407866613901971684744278376588405242981118198537280376191111588259904742594466266013653227713714398198141129565902783900618213059680515420044079042066547729721775127182822880977996389050684505505268585990946789654144613127595739557850532878663783897584187403083731803666533631000482638781618993193905504954882672102618743984155250701378854094934630535930439752418293768031846927445530784820207759089868949669492641149874685901880499966698842533912330367120307588365604676955635745532764276988825993209803709910732559096233514339291577523301548788028783299617410338130571670005608536137747652938563401611643121507438892029051998119727998337082429835082118954374614536483441898503042564112725855777736349684048125769597744831375432784227186264316315357292367307587875372475661808765896052627184591279256062699762780931407936321780878307431201712559091563227637446407786343941680210162827059533554651089846728506485560596152649792114320668072656056683188219286572231044910766205939163557715519675681399323900841929375108713890271252924863512891947113160805266543494687582062848529507327913237221558313761198572250584006951803535524288199248423057033447690702557027175797721002060515789466237143406963210065479878066126357578026655295798781359674804937807955063817991069473248311366759259753623482707439591989783574197072583074840807888098696546065300914379960417369359807624427348848938429205015140509674348277549796853290083489572104733935397311071094521637083800889302162376032920058324385703034218893676429534874192310366890902770091044841062362866967871060632226558384807231008761695151430917969812496245276261470809514441755761342571671758883470654248649252543154100583405887160129942885555137696023074591604944105806759242979952503144969000545670486464912260123535473905041714411065497868191917719129295915831360759049195036182496807721224830266091469972422027523836300276528773328559546301709109982783864714382314809779303499751586793644090484205227998340051672825979511602388997150674772711750065914814183832577978654148891475260346585801137262514651284043552012932340183114494008927329188130239273279558675560521197780608448190137811673861558117134549816026654043035236305846849617880687563838360989127915557069157687237647148384744879622877522536749387004574047919313797030999393735663444526703446839848747422770101483397128276913030010722849634682972568791422785435005857926032477563497117863638756639122739021276902218338790368773207779548420856612338560645365574972894241504714065688923666701523430536044652909250515303577018016914083184486234341563488238689054798593947014750639527099976497681565886490682796556186698600309603881229174954043347483394949503602472171744015088537041173743869191580501062987634789391440819941872057757186044024718503703850469704027926810149783362469566776195301271768590489045288310967588608306129828915545570352780135845547190724060023020144364668971592231345035470397757881038884831719879782972250264172943449946857474135436230968283201069015702991210398477221988616566816376391598283205098190854876552974468727207262904362196299943862346293123676657598305862589396022040213411349275911878901976441714505746484171727183462036628374232958812857910904007800616090428014287049076749214945658830846988517470285422833313544836580605743089002463555868277857209139690158046090951847699461425572885930187363006869103054724062302072480510864141931377950656682003362660312828338146374092264274308358193572513614422109910513631642707627703516961596947538493014283650324241867346503471528252176980651319786070948015328920130454246131411583601163856725310370211135395888517678084524612147288580151287257583320132418901951447864221320858917704536179387796466908501394074360949097017411826590148519160747779071211268958584931562688348813364293656771594892799025852732392212923553223869418386388509142601262389553204661897201279161173721097465292502339665448869190101099974009651076212115055983549852762233113699349650358771934750616348960684089207208199415967791492777042119828709886228335691237251309311144734882340344938392725423202444043661201113065556595113561324573569781046838039212787316164773794486313419506974546919915160342283578326020833509907412150168352616392996829457772097103667823947946067821664487519566930726437184271015890989506980752468798420292461171287658562674211564376112914709627568083519106609488980127405769898573455730652259430428038013988505602566899439416624550604842125196582099915427111175460720968954432186227441213164808910044835207737450995781556127731887829267308283679255303304201858324690434970502164144693461981565535127901083762784520744870847992242813882021116749103180829970647619295140684186562765853213955064868754685200595371004327628760754720699530212859438098611421581609868683356537223250031639889787530118301574749485378161887433110719788234613401529303387221259055408454089099860150580687423885763152148564393114073156351656223469718711072894695261533871550572298964536627696630356820144822293707046350820686982948389189366966150997753697189399702546483702340643147382324300158188232924389266722399578442656079814404191694019114477697867591339172034003185035712277802161442803035300528402800159850526024141675764030657269501161503600713460593304374684522620563737893525087171510989724053724903492463654009738730439795191355661982883172922365148740658660264361748009188198548663463838452046538376321708525616159705030883772481846221310157914882005287032133157310064717926779413889060424042375413062838067139266743770098390031363939637555856529889846193921495421362968040939884793998346373428995044000291019770057884382057399303210079288572498129209373463006861376831265695862883141624941495387481851553944382855468062114312690046320886056688144954852076425548853980583743486745126919375795624534767196354185388015399019069923003862615913673196467742383255232608781820587939246509662840951542245482120475441560013617880462120488639573599812760844519495596968492950940252895884511418604879818585934263185674105702320009712799093140612716174807988998158449409273578684080941115769553947850074509139067508004501256818458911728575028123058604545015127066293681731981570207592299942275332867322609680351173279815775467018882595406415030491138080693705648741046348101580899518420322772338289285640047456831649531153471412284962225964148398979602144507031019212636798883595808146965005127790015437438199813217265365986639392718256414388082737935230532561905144345275013243232178758195507650436170487721708595115341872418896484980781855067280023307013223428470080694205905960260672830839089758800427011929495388690750708392332290011614670258161073319735422815201533137157270682885707906789408942294671917854414933785766930407439312509057095235916600601639034434136556716991549298563447246932658658782871594638146190862304897785484019545148234830865284891072570277805380925995443797522778271080370597016688365333033690519201081549012770030319290700866208363317935669118089594191992652907606161062028993161007941153277800152294087300975389288367361215884596468180976288400738836617484203324138932920922299481556228913944031450183944207387176011115418716420779686627092886922297895158633835293281242944747377897397145358968475400417724666124705491208210206941129921147545195409139608898228785520818544600963581682498433958089203258307885790577011993125826130542806573713650170653141893384260900722666180508255893348839708066001224502362269557052052576605878537412444967506719135726584896033860757291134342238151183504215143815113029508213568199701297147490497690679223301250617828149786889808195860274020516127298049568294080401102853364479676715632337918866692001487755643188937596319124104268531521145734654366472571634606878065350893281957994728927461265654137116455188879538594904869999680741277332632639677319367821065225738170309165175676607566951517340496137085686409299676257011245548610522710769710072860039679172163929951060341717569187484078273556686290753192499723522522812088751044293963221576054198651179510337987669057644817856402393840954743482516494672072483231656235988021591144974847421488562965062531300254075115264740677934966046502055592552415783251026795737249594700275065028454045109182445976836072281145613394764746944476784501509205766673166328343845463927437488540820250725967455697081639488654037549085821657981430632530433196451027137365207802011409427398567708789017530867954464125880684210767751114530390429362695563874278775708447997185688035188585585596484647069738377193314440608401616702778296490263245792315224616722392825007184425194446186050355057651947191545470520921160242203746202438354822335165018804999181836405128467715191816877673575715225226849794428782298804326053766490761411936327465178030957390151389080469698619902904519900952841190019045491282196457807198541130298141115177164783495201114672424801080482486215519950504854726238372336492374995308015642929707670877376719425442596417490261921179602962836729844067115955135376520849678756456014472197362446035501191594053232047220447356217602623195421533854521671954343112443674939051854613042940649609959453473906428658494766137944089016000722430130289926899052091343690499320263765835655361929559720502709040382508932855966935146832987811279511925684979747911593939218157924731125736541617059288227510838488709471613932759206356619007684543021260194161465412564022904891534187536991155632872853399026087268927902715217055645445669062403660613578679324069712040504410505618811057332416542798388962929716542292448237226651088405475447311947867323739526718633447308415116751988831954384491024124504616366210778330058783478549827892483788426067245617347280705110336614994415474798757641119431256908563524446792980679629710336070453065824177874632352838612123378101757248526962593046269478739728050296430657354518827065741400317028694152205970190743251236295997650817235694144156702097285564718830972454323882986922780507163641134527461758262855894744227084753433702614988811649307700818297868483469907996495108293801053907659315105360925503345717997823524940737030274886671731995013110396182126379771390694461607534402273358851377875535780985012281838850672398522402248942278774570343250641998953876180066129065966135161701194848327768138234302535531216875855417819676278668202858261715589841280982343050705468566511465055059201669765476726001850266546917885366137429902201573851322088379181176700926670630721229843404362996853793952377050654347415072985332509791377257717182712188348117960755925492679169888878123502997464547586456214919665617355039373467971906819070116985742030108294766043980509121572688893639337077470432136516019252402324817654681492154436444650915201806867230199254427746398091482139141017093197839489365754300235940012818234005456284236917177406441258664395024809496597782825368207317231436950449812662277665690910328407648201019234091779101953036116040975282952586564382909877148477654702232823630296510381226557537117837963606767942104529903113244091782894575497975286275075183036903019871231707519680727959910514695439943166638956187064267221918732384038905854306401816729940552713631194144937011315558559733623761572399410640729288777120623609275084275078017779002004916952710378103518032289622321158997828765911768891505288076391427614374265478158657890756084974124718725522618384689247107676849673006568067118696312207179857630966147741615807111877180122270145792432074186108333573206125992292875353114339155517270184122864654241932369339601624765431210279735080582913792755710510143009697594022949553923496693494507543960606007261174734665981556085154415683172685352274924107760789032294432510527195636148285221492851677334569942511178475478722110816124850957228548190581299558605769385858640657416190829755044083474808580598293630632079348613398021895758177852742820073703656501702563868968751864333648458764566234682397480846346250454795654878852145823087862926293099521735138134347121351677009399113271216619102230233411122527639338282188542198311819678374240822215559507868253835764838760481061236703146246033346450153268959030276283272925264212299943627457757628386092274275844287835317321860137798941813897606166221042562963810797895588033737504123868307810204582952880445385399339515051428552072924408309382577389693567479765319981401837046485125322477597207840149664450794293326890179566149669727045398514489432457455295839785847795832478551658262548115732747842669063784790372400287325672215879259467947025740136282200227321064795713720367480630918592824705836633580594723023046125307088893871329959995204779044099764712311985121315804120838291452485351061221239330705355323490058349876405654160111465926141038491905106969648298612794206503149878202428481777840175008667060833298728734432433945160835593508413998142987021895659732262010868492223289982401631320918348495753464882387077245462203895643220271013332914953794624720920775729074034931192257309198101159605912986087473490890592952743133612685995751320309878824124836732376963359575563996810207645180908120520764217246533672175872656527583479430377073764117956982411790023500185287175148002010654837889354139322687842541818817399892478064412908517981203906109423157730270758480346517963930167047614383545200403299698636832474781083787500996790830214660872298437875600198241248429279247062243186670028692407987021707552408571858998500628833746864392672746130593696510539342311287250684181671647881720344611041398350690599894946818887774718022598721529434774449126452403295426767135771033986533479139184886597103442910944128640816275536181526171340596346196908194499242840933677869944383330893170029413019092746403376242110565093802928844906882578449786289211937265188246413283936727700419680931845084675257983899011554254528332000924131061249373099521496053793755988339426837602686281673113591979327561429805697338820636634293887246774784077644209006270376151664208171128001243663828210199921129369879470409200801979191929024533631506123195460258578303142435605725050288796206786650933503510576014132349959014244731791734720147180299365264911624345456135990740140246787827469923257442887937881556051829901917224084320600345315252814968342288448079988288414463462056285683863271889727858925187621516769382364653289917274665236095790336884825946051873648700588813611971477023773371145945140180058269433595809554969185699658001028947520010593212313495804596981530465897227181508650009625714426917717542674832909950642422322188410692732055587977801436808119763021667401043832213524630572789515224012881910279421176404605640102750585534062553073429678462467003512755611882392376371472302243376035599661923213971939057090898815498412319382846019626051548725667051338974346100097470605004083795249732845625105180461029656635618157518208555556071675041694145877668737174135372689807806867349375036975153764111378567448101721100352872944776061493010996240761977335232472590074410656158147224699013844881449377586807789208728890199975335422955612895170212147045733603924225925726426885795581379098481492385283588642319494176311746643517437257438329803671501529912380352736552525818233093351004469404623495075407686718948330456334168367096893370140113048233438024912288980231872756806262511747833533366961188778470204000311809413914105055537145363858145146102504878404372179351548801580804115501282491590687988361565202700941225112411680352424934716107527104466365013375644101941180175038804391314202848006207491520585173683063788799604409337855999662023891686836350202756452986617550494958035448248774751121357074364982631270591380707307608570504928114872292431282943184354659746361348071162724349536665313207507357395603112914698242706523417431874166530336025737872873237054980286539196253362703438650825614918447637113566844558909297658498117423381037537036503357684250668109116972869903711792148342522021503753647635402903028739253400443252554098320864797401343141554520759313527758088267139144084603156714605555942391150961291477848641048221982447519510153259077224708139201295776663969265319239146488735399110176909767651955329257817120013348081197032606668499235459487553777856233824555247654500649175105060928723947293657172618278717773184740960810976671652809772969969824962294373957362607946049757238089822557863048537300787110709447212266963760415288055191375414420654534688607472568606647717577735204920521452288221824159885831852541928188312430343130340675620749093643952701271590639571218118698548789939522036923161021290293790514863957993605037039231956692956487389238936105239484635246887985498867560857355027478557648273716438713264761631508483473390799615513377679133677255461217654445490812533204174845185928410064884974702717160489877525206364744358834599819299185050349061427756268353472870323136548265966931902784634891323904286326675116318742304629209926857010410257451318804847840016951633387794024487701279454643748440382107903697792944382831362515762574118103776449466861218042581589854333113491174261381832479280333319136481067159476541956519532003519652484300211813717977230594351866439017046664018235682703779556024397988177011503159426222369869208952222707745128466387812526101980576343356038177556343414915884945117469118210260489893097077173045384974947258968438001585240933591953937399079267364553374984815821801068835351261265797445007440452964990898834530930088850035861037772422726201905834795996630144412566551315118555329955560931123971252992866878048161844028419687821308221093555659962281404194387835113599059681530032376961601997858426368219436479442281414117688393864521801450031343819869251817230142532087534910561966403541429340417721706332856708720411931536913564493619513341057334170653304126932472816202519929967910662391849815907880285991164485049428427798047279185260343723677144603747707975117168150150899418549186293314064841908341706138070361568238437682204208167735486818922701628076538093344284467877486525468356727070408269708038659794677181440459033238593020884586391187311021566466091921950824396845722944597891521066886015970971873801482678639259595153126314685781838433599153037363562434358695355861098380795260259426240827458379730043474531192443186267529292017556842835182803124631982105115155370964905540461988689008808398291653734004453036943773139057631689824049973506015100964633044675751043355338441660495688149973276571017390909989299989352712271566611414246453048761146378427268982720041704508781148802684567474027150535880776332489225307528278336574446090107475700276015568006527704195978819918398688678986234512524075760198544524092937222598580640462093217641024609256110294467188891976077329995275206149844674724416479048792823233537977124554635146096095804685606820360759136574724491820090474843262232632255203478260745156205966195199977024839085563021815693492912327688799607260321387658544452867394828859071875352060371744672418912888349332122916930218559779377137117349411066307607710820524082601988412296089496433743467697475577263548150005898942365003482900081088807247128073279311393862976236394149173838598931210574418407034476727751272377679231620828768953424418786118482114663947258035754076354909498089897982118066760549978183551597734518312905901814162629919071642995509020889713570731437509774489752565567881752116546300379428999797615180524627111042682303315111599819308808763762248067144243889369707320681743844528346734689473875577500971124430758706770204886755905072304154227050425220713604656281947214960529939528525069307649868150272426957515991627529719134708435993325243872868041690635330783227321965186288104925004562276377559813393603568691178381050143877646703078722010845544520774738795000138517779440829596362349601812792140507755109068678992716098044444591768190156011066989105030997407831041189791485611027422797943012253319067012018881258782498105203613376817787628202779843311451298477775013875972392434035898776147883710913040045863293875723699839589866950277357525717496192520867533999906961313909379032575025836301108865250852440910376873781355442763328504201705389901976161367518783402742976804522797650903777481479394921716992548169391450569023688758468212837055995891990074405197158460207981115225558061488078725255479807302620979379894958421113406805053458158736003905797297681788119472278453307804486384201896906854139939791062576468511277935722326277918126097176188180607490769125838167153287280835950790231480813094416882468683639974120394806812241988927103428978136052037109323282430826445874996166591450874840673530082764060913111571538983800218209804127228632927544327774356746788395725400762091056947883772410602816616285961215452336369024478251030950042924987861923757413405499319933666786973230973785957450885107791033192228102387029745846698501170057214573482739097325967553886150150286572559005497535683444032761074032720946501083074052716608762396423756747599607712145989050397165660640037793763814020184372726202726267095225833700438262420911717061617427111967426335228168251043055467774637078790585491753894744762465278701135211794250077581848373104146069252861500183657789243562936039439965173365282773432249711237749555327489000060899534832262879045947023422388934347263555234772760944359364801781274775787409655611361289790416327950208844689780674627865907161461248218743542314592000438099537006088697154047554300591601198185992747004975171742052979218652613896606196698096592216074623750635176692560407911803191742453030649687929266552764350700686648272541276943971488934533618449741987488713543134791108280713889329806545604549713943225502421317665047530069118562664840666065543016434748579621506062173029091229274327516964846326882439194121087119095694398134013846646432139065959224037832603404577547163542262795832655482000329600719358470484307181746552448611578834317889384070257357491208642999593267270998405132610929753687983962974580927630887425875555738497723857027569587287752800611308771532928068931146295080379786570528924061597183884279411283120776075459817450425459242680168812042334161927815748065134321297670954595652274139591584938798287226532680237419560507611751261442738115852524849566344742128535242547434757051491747670863403450351554985755046462712383539556463433101929998766380153690345730321581033764677196961256144875736403534541712549867652925825503563752596294214676343693692059311386513520336740508616036870796500411005196727905635541291835804430294923705203260066751650722549898560358588221739719002199110324959571367981832632753073992027484890836491786516092708299455906335913624035240031710048306780875306931234083778816250231630294435322550762987413269004636617816042471954107243253112030332040636747532003317129070322758828007120680660770924308130151686061008412065685421601581350455816061566139304634950109401248502364148022246112359250978164802277167074205866375920636651230214379584267055820335329741496375066366711357551127313518769149901771025446288471292766998577281782321461819503533442572979478243771236413612407016800307796140149072160189755457398879973365854453773879452961346777505089437817480427571166922964619550702811324509177965463530118481342431172324963196322963717389148270805870787460941630097138314681223270860627324967413646369106916057426140645051213303204166264414480447828617873501300035049925917223870764109311817132777163081276758590746199800093583174960570883776832681939888257457153051658097250326142497666017914646789600153008248013908300023242611055308750089800777268409576316310575941188476512398237563490105078876487410184849201514983123149857378741654771991025952118710013886198894702112063217689229387207855955797559283218941837652060210098885091376563262242482503373761277042432213016173776089332716109976001572678364982173246381765870995564213790297059448230011489143612416300372654892983647878138313357038096923875662833558096844631732302439562864614271249017317455571704208658586847598191783853504954467893451853542126681667898059207596661341635013857281749946801622231074018796203061835569714598367415933752880126373654075924159689076883620316640887309160625032655768915732718532185544724381933022331413746952011995570219158811490521170301486998673661687564643924752226791136794324085433131817325574582492504674977880735576444206141332379436520371730724712346658581264377729188398987934365612697444632901076820951037455311950382440355702760921373040756790562798203068684403079374118891172941419479055510751374349092107256921285399056614364781564306868960563354327639666351825017919013955178187355544335949327112272891688275175112424693517128728276238545882485575381350625924732830245427151519745985564369260398130687901935772906502779660256602866058216770364876722384070929605868166934653968045681117569921031408722988295484648498182368491639445978837153626310923156010084767229392536490951317909515483255933536459514438854685445033675380882312300776961622505116306128492979968619776541129846312256690764170495879697365235043943546568880530407191510044942163174243302889433550560496687907365425963272996313573430097848091182018923561061157882115877863001060185287252234250635196813993166823766866412879155442426900836665593284610244562718034456729046010200563916364322357760991028262682899924466673344852596249574518748038712994244682543686819111106726039791299022271398247869531710349012206706326751927412829479922892855724662162045442146208922388690328166811286377411446409845853960218373643556529122809194672026571832477067111601766861871101885831909283636761182527970615637167881489570309966974138759126945202453088466266391131373035410634157065956560053562697521902982900470193059749239335391557452979885069548975033247963899437386565719761880600327008396684745650877623729409992447455422637411638954754242748079762769649586340672225961568365489101250698115188712009263140002722641270721759448065479570145294733892943366909569578887862504585202410735702846292620093848616769011081731589933378931595395208803075422947167732896330561566806963917327241955179631348178882510502932179271592152692383511421798883220278928192108656251127671876109370657546604074866661510135767776471743248973345495096510891613141599763428642776767457446546573908065266710156005024760776791993285907178811760051394354072518138900540977876923015082665302028573019126245538837393235719053899050559379976630039976571027283068753477454573706123805032477121072862432477983290672671678582627319505969839676763917755332859939614046467358402664736008990251075600838512547395960464604847405534581958916550601560127270470735816367879339860278509904262579891873666339672939740960499604844141524348403781561963191866042345291419566907150073238395213874242829018432690820301803066889389775813792170296058492713717632870983008655108865462628875178046415470899050679243360782230826597632298240876945252006508094077261535838120247950574440593201979427412964492220784242850355722964643886198469779957768598235674297147066886084256408299493940483387430408011837375671535803892186314233320250234417479084282848046357839157495926387468542137060731127878390163984586034316088860558585449269453590953080415378087450994415145938590878628525983822552884305825304842373982621421782513473638921150690371365238376171199985598949783388376841775358744753607250225042482872813328292692023044248900038211404338361369226658956874321434442644532974768129063522015408079228615496230590282180405891390768658106580454825878425569880661383928504382458680934081244124869368628392060151168541101755358783619742660710948099844965222542934684179230621416140346928259532431086320000414851457452402457928931106328955185912484539157591352755801864217946079553315983336135912062966364497377880881110847182188399146259926659685918916965550509469094753285496631708042248483599412635800669637334811030259827140831844738109218681597500734019273669940558625618160137219476664687442818989531874456448139265394230597878667612581664143076341305754396781726764740912224421782930240691432709028180541889373068841270531242826951046173158424900623292305737695583225039681122855753735672270830467737449357228271853082867518272602464953991927749469520804813157782248537777568636369684466648415726808610731234506751591589445602936879763083729118572780020571551859897704940640488721673826505752225037517487386589319838079181914825552175160822435428488823727877720482850716155600529702120566013400480912476861274085188649193366336307478406078148438884339631123213304119173793392007448657370826957034724276395961685865226617979225470698673293553003871452260443628540516659494208374331567596162396393007843328485393552521726968876024996129885988032946117821825544043349625803800419144805296056620260856532660792626145474081905351570983353743229025145701086500241857131632961981323963854934491951735247652023134386274932573950753256250764211670861417557426595212363566077228159976887377312266495070171984029063887696069969072891581662270915975102660589338351719383465286458963354592887757920808289708165797465384998819793837628427986021215918783785520584506584266401826169252899796664247067820695159054881178752834400594112682269052220805863507086259854156161434875457207450136517138246380511965189768838663802092631838136490825366985569519813566616877442526124119775513888485256761810899137255361298687258790405042561937892293428901999197914473926536196401411526665214830291079188906901981897355714751423186356992956964159993211722510857524647596991723406681529225151565964101373169391446532959542723077074767677324873127802315831031153728230211281532510426559547605413551900797406982739053729334186935453518549162907223101525047002831872036670869449479892143677783818662630412108149358365061760407446276671140940259774153967844376981712818037005566047774554508910371937525294742404943754869162909738188884373803432546213864119115769265440195130284700101860539123881364577422474624390798979306691196991108410397459281533383385299018081197599612400873349969609173322706341008950432245711023537994089784247810215114528797704116988815877729591802023592162670400484249597748682421966514271772308858344899614761990555120499132795109966696618811763454365517812366713786236357089632659452691800301304691931577469507778167490846514974513782048063547676252777395636086261065368981947479798165579133945516873283285528044468466898320568918296934116711191356748248970273344116656089322267193794911452218875989052500690976872940737290657957553005214758635366200182630827255401204947820054862759712313062272322222218731782642899493412967756250458750781249709802045448366248397979534313349800752803335408823096732390834854164850454104728532591104614270621831655620651349888893814929439185778957393722111535014865869580880495266477023408655699046490716768814262494491787371442956398258409475329938908357396410774397418156621200862234556119936936529435990249764789626888649692746899384224799564760394087474492367030878970996172217021889797574786652318726710158292830911478382140972103254850582090169978986085232777099721236680452287443985195005239012237345039926291894631769565039755045107242761124461391131067530056962439581477104238388320829586046393484559360718223695072331597017792599481649817117729947630135805475665841414345949696012567656725034894912950813705527691387771977501827754141824497190137722249095918864196885813619351737865086578472883473043776941468457327052813481232515327898056685522598991830709571871899228498095544817912428945616946489656757225742172634568434741624890217219991736489767819091092368191919574799607037591222109086792110462836490809156118212581525971993822191327792975372404917860625259623500194110090266146473258020731018144154546877820379333245436097275959640036245238738363408260194153986300488377502256126368610152529130565340084106185987618526837768736867188731823538293999123666900420182743689711398978225133067748719200222914999214297541848668216665429602885821696290435041458519520548324184849914093762851119030772078996409127644774170502057881779241953379582414882449016421702004409607974508378185262900688548980959683150544476983725751507495588432143741107723024490191229501668536464147045238273329790493726315574626663829030130031766785436213959501675247537348896157183632284773239820723125826374418603352606351853587171603051462237621883464004026083060932034072889188451185048133260932618556746301051318238807546347012935364139162861595206225562656536419530406882544071104748276032010379068902078517659092671162603533312188747150688068620222390008405734765723352869038337705021464977120483556293913845485833751154206204735892677875516075015932930382092861000415292158245210675857354676717609988433037606468982264623295096325644464435086910960324462284891147377010415248032808389613568127314080716691339408515651962976338235919672089442483903652421335641665702164086985972936197364167382958992664360583971621772941565032568704322517123015445580387862738025528621100166339852231543873497892664009613516757579540288542171231184871146715825046162114218121756229410394802479915107019093210857221512793063331513134995992304946321593763468375782946464178601821122565236942070864434916807171676079022346687428145963518865178260543455028903660810067205739519508062640139724068759729045278309225253934353874325406331107590351005512986498055864550458216309616402599710906232736004089811514741208819539371014296423369646998674523843941179683624219579391296206973847532412882128550794171755394844016185025397411511225556867653541318461786939610261519543385391957669653226730737440042372438973463587444527345528697101862888241131653032296229761345873974376382632368773986625489223691545559847089300695693214962195845364420815872477471098613582417615227062116990057866375994230017532346392539779066521005652225610240795470920353459870556218942582748202904952063028286270977415463685481174006145740424938002048329313254879441718767664848609897099054533165511692824576505258277397183321833521731719055844050376967568801756793737463264473065413435354159948152906752311293784246095182568331967736091548479493099188938113185736108258716357997099670537811425809220559043016524913021568359891838280879472479108402424300928164968763854223416317743744334604148716400565339953321590546904964986727862798599800541638814124087787798821436876213604257336922256708458358739020640277300720191043189425614697147974516956157206453784084840288913568124884179689983324415224610555603431270216647922039264469318322507006381419737757604634633354895214944906761216292198419537223454283440726634541904380456746741208470523174703716244298691007651956922407576472927443800654055157961521028949097400683412232739760608816217091691281036396680455652036604572693485795024829934361975303466901322871257090216267335468996208027481139192913110437385088282953691871129322487195024471326066109865375685880523935561660458160868626461039211719262731566363357025669012812851845070221621449406377595882085856833080510182586596098581724524135916987195426121149443987084063113652389466250097479102435896379324904715011383560976044200628729818631916263386355819895600947542736253595216600357144513736405217156837587500770467199342495092263101468115673096858778135659178960853601978689019225220329851268854940702454698859474335388643825645739014128757791602787356316801905392481373302831178762476131355680019720001714998310935489797173034031061158655850100823376940252116979167613269406959468587927561119349105035781696639556178263227645240561325531556354418750204434593371405121332189133662368551018038260111938081319127939130336248958339147458192757756468276589408684366917731343296815722058288103504966409386670341054969841809512435282129661618967099198223286392343598876378219499238099341182528809060559528475323626829798412663475292215893190371854849913667691646731539710407986595673619375792747143731844053861264467245467568715271440979113264595592529997234213288741549824860785622269950558611870080875618134975084893165965963366012366614080882629360104494118324996919862772525969105979461288184381332769776290715943147271500429490011133009733451505740062441234198769990954028544812492491771288028407828679373269284373586902689848680867678352313150104724613539172264173225701266718860977608713757822638439869992277383953976727330068060133353053866948721022688182494341590369063812614761480326484895333583222527288540261906108082252791852943122345954007092460997936219298198457659761856070407469788412647028831154774787174370409637273243261680769226787822157463221608166655032175593235581926971751781633959351590195782747001845458587217839839819775441796579826416697703748946649626627569004585780123767320489936578431711393441840423160923113933434214862154794481327432868686191317860021712465557116060647648626226576289293573054382193724314247319174523266699564232303855860177095101052997982046487093981310664867939796736759884464055647464175735733532432819186191328781316556455807998481860208831603706212295001667876978200062482977372185705223227414316282235674977618687124475601477807081205284224810806562272727225541026267343231847366511922817336222133789190021619488181432127438253401477048138173319048890016533285352480124053467691836491160313844555815292190111095896904550729474807864391222235219320640532743283316021528751424334510528837793518713425910150391460962140085517140143920488703930954586162330194211943650026678186626227659823585581695314603081499974931125303833051285265297524038719811484190917842697798807998541482339070782555136032482027590452193207674188388421531902653207501936532772151951088467825471919005277572996770749512324615553011658127422758737401688237427493219645797636092035262330734616805352428915541884031708601808784676203780309060700889341744319660907115322045053763070733715099027582597779801635911155440700063947601893664048037135924125704941746200177531768999847747070840696542096058295936298239783020594207308823819385162232957274993814445624223096965958601758269516417619455096030822822300342179017790193209502952330639896126099594299923723492238193484207537024452328284501711782128868433109190969254710050528849182943701721262272507639161010890431528179054505379283209297659600380729559356119957370294102754017543502840704671737946864021394092730777256170149026186111837687809581257601823362775863081259320889203297670798953008173604156945820416682152423946996486426866132416482952810336713239418230003863001948740876832058685007865340369551001609679124290145197276876437497774085513388416461150092867352582881706385653758240592656896983338064404529643554505881218360960117803619167882661428767621223529629871050991479294616888515446315294774814772139840556252378638970787444081635208988448609350484232785957205283036594975734384349669558197977693436004860733875742662100627617060592399340549677916712595570169282525637279678260871354001277219643579446969712334660503800676547869015557304584073706494481390989966604722447580425107101655660875615642987685066954060629143199900358024983349717786790873485130174551614989393739652888697481467515178414153612740176915453680154356332419389366472992000169311760211692334629926651247460045654845759026911334540530901603976583927265406769091727051193111020458883206673980768487715071259905980847678426039944466549091531226735142321941174507214171070222317605067144366854279266030893462986170186544717636538121532006427136137475020223022493822063840389329870630309917399312026518630407947542256973505862927732029650408043016585751372939942590777458657671300622592551724475745765387938534264294245549818835800803751599732708341188449474008821731702276999492489348596673803574440259152926483176589317666108274544965448217598762665648582466669209256072970350150553483649673601064896911706180685567990836161382509587599679950336648631074946933017152610143431435746126749083820924284303472393011220776264624351843892994944819065441375285534170072883305417478488873730018461165395279845470192636184400795694126803965591631137310138487688541589240007407689376037259389158836320887468264661781301179882721597652610918174252359954470303672781447033323898688835050631749979722116576810528669887332189103410567602736234123096489393564722936017259004539986270666078371293887678959186569894879214229010251338791457550010559766109807182152400357000613696056249997385368714196150832973277932973498254678451955670025102678155448715248376605567743665229274461839471100995641908478864589520639076951682221532318659258651176351882986254151732246850308661371911477227580976894463651549312040656099055087946066521094243707996864246960660032683839574878060274602000936121007060709830398559497714397168971148215557829298707027988390810074015417871823001608008680194836542990049328270413828108186268968078757225005666957541009312927688185620707760188965476951066454838923499694948813598959622599043146550331650810889451318026010038923307298538670105702782994926303596185437859440031205430010025816839730769990723529775156108212588090822087994670438480607719590410625991624136998573835736630897454289285694412470502938754353427625029265386088423851498990087509814012993688295506308610847281090374556468306908684245784758384790398430241749324325992756305892189792020592484394663143428701191752293223325656829734885120914977242973742444103345334030035083758614039898942429349102019478622811011752151883977880373024004575519459573757897803156042959237429897510798985375122650610481602061211253452422705327795326649211646542589535386349247273799067700388747645616873447239076372558583107691113811653467442473046502530436732707898452598153245308868504683692012848385464444125054117269439797263570078043228604108766721200642185108276469081086155675661566654757874914170766534369226060167920317030933739933435648189917224060930865459015170748782077362872396743928456201998194964924397043136108421175224501366853314803360374863302003549968969402741995918030484687210758132294998532750659399489873208786726586129455965407960856853436739281140280618307160641679187209228610809678421928868986428177352931048043363254488493033730667451109584717492487697346209071268885341755776791061350443314853795122228167406106820262224744995506422183627470247101435100669006563122486244930094445088717736763002479300588271220233053976346372262912702285890728828763074576252713698560347009850410169846319575994564737440971756799301185181841837835140395081705679005149407843807448693236134477177521018142217325174976527801552386858475559267255045889035638486035900762139164504815108881011256790375308864867980126418100562364321478267580058735998448000370283105532326825787957935662778056143358682669000093218742305733411113164144447606985131195798310914196603693003419227184239864212502145652022805873474972860186268147792949179230631059323369962359251988021599227499014603110973326684812392951607794480722306357643892040388439509495761493900361704619709813292855790041989176917571949984482734574443397757770173676021188268190715826401602545907449782928941575131593844409351508699730914920341083906362180657562827858767830952756554109527288552040116413851317258457790821537868730048042653692941086468239169176063955390447555456744324448170241583694267201616669460795366840224561811510721650094531190313621928416055226159714154753406456693279754787369191664058210122927499727634436513484297552710087551655690903455568897320089939532839564319269178306259593090140070769818138323121050745748910215445812431403813176182202658148163455376649653083957115683111908780417084561801789946626789662452723816026093631029959629713122142704827798161903733709331069270280451222037373698771958254860403985297932223658327716838158272649785353191895819378968790216562296240338619733027990530727379902385728013808617951963266629944122863406722233217456984232187662367519814561873683886750949013283103340941323034892507095718885383272664886493701751511712044912849792416733060244423664928122028401402057786360785052231614541434215563762369186109876031243667344694940338943534504167828545631842263621840253197154154425513434901812250837207535870919976518973336856142985109903501447482381765270435829747096888628738275254549185969358619449350581904479864991720295548489936416935221059710005228173228629162226979710513794922328267771090045077668030948714039220089686034198810369603099556622673703285613474116463120166318710836560713899166275332637409915163103687680892538310003380042931110294358493379904534203700727229598815105162531613990470213841644745887613098941885379548859252854555883133335733013213101272505952301915244048434462452060312936293842237729417549714633500920814022053628184509518488970600570908021861489740387634934416779844353883216051123085394843885088975497641316863819647288404125397991288264070347889934404590037923343384156815304740221602042890443912440914868586368024045267745473936293648190370781451662051942019992853465026515011065493472530525227783126407241552929796964401443073526941627845971042266176558953842483136882472668534730246655122384657907993593123291457763114937628779227426485059112133175743993750404603328939701905445415997883866667820496711105803346172093428328003444721648296270737297856011958519994214715088590128993655253339986101626344915882337316021931345054117279049205751167937123422448183606873139084210770035229136837082756370895737809722160490453766844168498303845390581501555189673853822626763662302643236033750347474053130885326548391679521421217260402503812628911389783852139523946034548573596772316031085477050317382267209292584676494372646301845924765951237216489962368917674202958010477325932810744487597763400699078694988468387184015867293903350878946527463495280035445822692869776078620368318726616978148877157055982613335781687743773999471097943283596032016612522430690283150877725179579443585664463650818766154541600636621771612495659100493439621421447707539799022093984572094231407738844555245751495001335899289358859173033594794771411717413876472551993693123534875805480792217273477385230625056118981041313224845640296315218196616976223803212394709341918738775151672151672868063127253596545963607641107800445158647170874818159905117835664858337436687704542408757245352613049537500239087301771946719901283917124602133145909735865410376253459160335399891492127461016147967367813358779679401075382953946193478403850817700224515387354693881087767644402482219641311894882525221418396193246941413138947327035461369911792362747314055459563596974397117485890615463576675513238353888268612624816361329019117608611577209692641308793374146321958956821377244508029817263709637792846869218432129291507403756336883661585860708693056757981973739628374486828623209478051849218407970209808272350530785631674556825423004712829885965813483093485206582328183121055916056594017287359771160728941720147041317892830233449113390296315604370884918200379582881063029716689100459308747431955035044764075383676194557270820449878493332254887522832974358004380572890574282422017076829390613798880392188893999817637221710823524019218226332196326901172207413258341637280799069355097805022219077648604120564544105397346373976967665363965618335728499463548517954599984172913371575674563820135764741058975988146365600319444513452042027143089837207196420079263490737303643286110349862354517721959576389883925925863096960769553603991534479649734378185768651566245786844699148612103977151945384401743675859876642520761669116578437870617920287190656145717584904513969545505499905336105998103738331334645899587577568033584466397375111062231831746499434717812699540539497685687259554294405194965164634898316835699056493839961640026446489420041934567608516672199083143382081799404135637205762847463723368757399645165615003793944304859714768483896008078409483348931257656511860937362892524229176014953914375477130353781239038645201503232572371707783481704777184940725586231054128556020193853478147394325947161483857663558166398427301424440348492917985409302462833430035676288118748350273278758755264906634101283381950517269315498416791862869410823405829846419540632574330339729453262231000250787644536653245731267896580861889843483171384943228500505924052119717562049586024448066456336779972900608651223239556961386678309795018340083542191966555803220964646358936472297480347645828844863611351572921179535976217566110468399856176965781343045386196523127621138645510345245762462943967719091837245049703223491340748411233856085992088963301751128709063800904274112685655635972151242373686394068654399459356166156679589145256157220417039458570171499623859193583018852187816515032708652867517432447657942865870055770628188304296469694427433737417412231848480557776894087745214366883281359554181581819336197013084015853670365623436278046493310355153634333201196888314517858512696624371904700899631058110749180837505528791769216432022858435625384248743847498580334477988066532381450143115646756968257681506588619632360960662728677499122157363373355228840601712257704172788384200770857083090514423823938031838253465634238604815173778576985632638929260201504207845126315802937373190471316237123557723362384289021541363743223243590429750809442548369464800373039668051117998027167684264849705172108909502737614895399413491826845977325774825837914414824983651334429573003843743253005419559604582606663828614522879278501493020877725366286028993320209121275400000017179703871672108124200199908721738597778706704954185708588648457704116800117772148959515103428098919943502842382040351002686063199000021186511068595868209276025569997776591010696774908678857877953726186773091927354083892607442787607093433946336751945770257945404681891192365857403721259137925030977067487912436058960667754338011450459362756056121139374086884274910041887142575280469815935427116485199052464306051969263253050162007504943943494702906432468478544017846512729826978943773848714923661725451575767960118854070012879273015738139070878279867751674539264408528900141276630005486994742174011812068362872045732517214023932934060412028328580972022539272241675792490369026991327146689683617892898947019610517168245378852831818970719070265660890363225076091985304837672882100666479430978302295383886269678080600638667949048279258505140545941536065181669976043538816981786357697300615248669171063214644607947164771118810088054976984429357648727932317935585396721723602441714236241168584860681415702402821845616847714801652021758172384477703864750861122907800242678712793038360941624641221132105983033824990804508466169232451027558116908020963856957331355904705212287831154588231639978364384039236008652463526761306271974030798530642135743430036541889078182805637342423216543657016880861481529818132192634556405912876956396020874921909960749862507038252155693118637623357607537095952533240640526784349618184843556631194166913551977813658862080521492433769329123243285579281370833710121520635126085355112369113682340529396492590421773768528174607767216502285864981205605068066655420802452181108183062274680384119508781799693339271314122552940877673221175299130057204985043462985337005511741752466667586755674550007271613784857267589846236365932218764876506495850651237508750804093809118629210300499950423543782568482866075108448392900284930506536498125354142751190726075416891475745597169372757653032610864972431355012632727027833451685965290390296575168009899333558019886458728444425641251677166583476733545442503029972072414108510045764946322165274542562128914004076701576313450249196981630539641613608526396579607053923132717490815784760234907796851304733032541513647251504843857561601946882219562305003015459140478146986335007279780112672572502946071310642485700134410037152668933857631056253076995674321034702947811918159809739029334883702778509676087544411197594280154551222174987316866819901886530127467954400048811584402211056385088983784300257254492915362776267200118917523615117995384912646118833740738805317222684630079889659132793575217009278244710239535927094253113884918737827694586123979297977067979380663596370352856761260462278195733570149146033745606807932687810807584709921822403189322221924350326181030949515846834018474106555138781820337840223664388236606215109462383120203594449226889548547532417417823611342835300177691994702318599742332024165273265642340561270277463076014463482834137890931791477572895482125091522428047741712221480681853096941679483245685415684963391053604908479549736632919373991393341421838598663227719056476481006643186058127799157405597240761596327474531780804643423531967182302172085076210373378066020996323491280600030800597836598781322116651320151105738935685711491189344960563766569828744834789879147178906878059587708646527331983720706397562144358440223693965621213722306500968904766471667356664581696322375509489134880747294964455469839252188942514205911056893055902804732217475307151472803992366991578277053933199259391259222581488954023208806170453018879722003420171676450779707366782872632784267833697296341795734584020412008112773799061995870643683817713206951620901413617636951904454592471833511084194577524293289757364986202555237429591297268957502833953514599242194289196021030433432757336245549858038133331952556498673623210563521225300971864906841019877468930145103931593680741794198578655950398237130657061667706752317112234303995199979984283990364772238656232720060663542332377030290508361024266667285071249990142426352446488512441187509516430200718502744643224984997253896538914766756796920466930530022118340337069363141809562090618157326270196112533023937937471145259857130556302531707316699607772733113046506070436558895985557931904132694268354387807438512941678127615002873403342627632005017510632311888051038734734314810198410578635729917542074971617836282666718031661452541144848292137703650888269049686213393667207333917178750113752623412936517152232830157904088476845416740828193426177441458552559681905017191046361837011000160833573626780148939655736093463617708172081694554185771838397553134872716959113905648548003896271956524912637661833062193705429508220346495175164588878727740272985403600032305789903917036885037515047349932764286398461010607139171499016280352026065628989506849404172691825846154738422425614263039910534286368495820688341357617004804172080457177658556279326535304920677970990173062348973079094347740691252860467040589845793556906098469674245467494826899222601282455587100570107744444028945067497882623133291148383132966331354664285257907976666368264547990041497672196157172679561764889779223965357450054356488482761484499716605187827020813886213305132957869899695830031092764136180595369452214793247031162513890615632030864655172291736046425780320113677082122201559804525190647583513357085084640405734226782387213188175324510471209858891870952258625307055777487320762806798303541051114281380037586052655423912890308085395326527916347164006169376760352464460013402354150730026271937902217687446246028076943141795141898647090736016376334723554422904917957307163364624413853017486033503974752523213972631160427068764905809220099714449878742687930157728906999185286285043454745186023881031429217584619125537079897983174626732254931101414298696753815520379399160554039729402910429161004960926478333358043508767470542076224472353716448196371578456152822311242527620340845557387423664283617273956601254990788457368613869775796624859679506528888579496297670679374871301281678016532548688866925251991657597737551396979611651050929630322386977029801448980347152569923530249422439744587704024933741652467378115971098383570061822564769798803910915668732823406489020661395270706816131292907890372024016809791794163614820790761936333773958130794842212281560356983364134351176749744985815508852703082087863115052781543183977855041901518709339935962292853674763269018712043619342178397982328706138650405905591528468185763946244038015815914505071204596492688657763969693060612858357719723597480737094485480907216784832481733061472519243123448667828234316031963599959670029297200030891797077016587287459626255384209309934236256941592995018774447675081957029196813338537449265795434648602967929477792220725160096501949228366936843304974081924441419129839411899770525046175903412340403443806909753536208410464375662069491159553606558163518650774553368960056008036611897069436554365907948158861195874702409803038955511462127643623482818512703987469960661694934645461417495658712951082510754796218684904835873953302599476576173113359360509593600525695327954884296160109055149324453188462074455366136918528734679050186026597705596979487057004784249888296586909483056155770452886664424529437742584306803940458816367446814740584474631514560882740258262404730686257645994427645870653137707427734538457150514932418459214391626606715724878315052826552665787463920003171665223728401567659919884487196258241259429729083717448614924007219338983198976537765749758931872876376240915925921876070038434706006900955559374081538584129710109190121515458596042028712845431238628625311636435155886292366635655269209180187413907672984317124841877461894003858877270573292393826864810711313305219302009589073363273680723715243916424901943145127737270646298460954376780696828808456100820054704407375589901060318839920867736012660901988178306254493355919255681118511268441739712010628106890393167074577682270288021476747862073393420736311873265221441029865631444678300618424096252877459478987138365772254191926278190978697316221796190920230541309713490111035398379447969010532643332115243682559655894336559703021675808110087402369295399259532875012052996578408193598004735922090229482855602651784771807271966850585566519630667262741965249501605562731438267628078942617751925310018177376334034373867861548326908230035601467024314515330373195761908187398022368691650834115488074463952165003413891369015469392160622495509057826678056498360680478568641950970910950220891307040017246423232460007839516831813124605629935808312035462446346764561257167391713004932479933396265788369538881783292913010001605756483193455332187406192150260604985933981028150406447667318638311592319781570907484122099815746827722355062871633315534143244563483376640613759239333151428157909437445148334663565179240648795293244041074877732475233264049217546994742745012882501383125748908900519029363864831356924926125019479110332552353620387432240956207083760571459537771903876096030361192931105460837247093218827856455838917629477008340859114725757744571360196813276912933739560108261034034942170640850870790396089484715915406046855488635627491785727117014056699159955415436258267983446644604590167901540948667175765944343993504613131639339288387705881758764456461349048969440339738196721139747956517936876863145535916117600734816243380672501748263328427289930950421335813063257535957571132465309316304928285003204896745186221490707355272208045300471890073030160656339403387722922765962930207379287747240318559626265633779462811571977133881334499669782542471009911035935231123967175045650512460117235185594814408203144914608305802216199456949047921852742870903097377414074929933574392048188907453244590322474600888512794589020005649761043296403312704838188750177273752123144076262813395440241652884946513632634412574330884903595120913999823839503269692891276713373345707032990585125416745285775733403807298961897082783487324346402818251121718884405802871447448718382427105290295777768962626068817107743579127001013433206244631838646790819254050780940624706049941750973161169650690443062892104312118081958271901368236677350516869482843942021016092419180405130824204243523420676527892693586424800007339169159445756676095444819645745507662538266512819264026847288158500201616835966007258952144631543289994281936153543257760095053599285189974297903910177969002713856887745344077838267336303789771485198093250634267662768522384725574249251467181258478298434303355165250443527185574006357582243375781149389396345080710872551275126606317768260046743073984897829583066307902990960166679745475207971967499269781812006453949383842724942617827091013841108781226543498806027771079495755484028638046527791760974517702396683876745840188307925961490280650617011431221886068754791893344686422641470295114793186387877591773399494301661207558615891814137920330426164568146294901755982958058092796108744761967206460404342542592563588645079702946061775087276426660157436528601773211251332480095561255455271750040280416035581659964893990497948299274244852432396941493202685508791149374980818727624760119958105125228826599203692563539190606118027457063772838938400917744924196112751626222493641301331552302727610243956535164815846416838580449913241141839399812355426221635161731156158141593206573035112190099357963485048034653089576423460799428853928098435699826966193918783948434797822152630080465346047996727281178430422168437654557065780759257618002991747203136178978202848104681252691744754321547135130251167364920582875836041185483292637572928081972620799419342797300815533926452138105779593518536688497778186782754829500977577942765729717714213718029743293172803000611895510626678302079730173121523387248195558740121114562116734342560573671233772719038930477665880175832155217389373409908809524440670236627430034389797229570283241051772767491313788017505577616590942051165170125976827628107279660646040017987760498410879469903543065859724604390175337707129402680838159869167893920342735812602938964335767679500039485432464052450763995651786334728988477673565255958786579797969338448129942979695644036860205111355161487493436058252338020435903234957553251989959898401358816085125703197671875267634860681628434503354227129914096229766581809398049026242777700532542722431876674159946900775745861435985577206871320560714480934229420754752254210189167363969657035636809640660410354336910318626962757533081088136778247025598118687796026903588801094983765619701651416415676774642221296285250785038355109832042539336279504336397843200602947438957349053710955952595943187856248544438828268757846214083201662871732280800905545418435049312638038721768064695844799902412962050441246133258472236388584297835912747408088712339688094385604799987484672665310301656373723072893396349508508376304843159259480850641757484529251171573018353242426743053331771629775737725331137007955721513232019392444584045299088170082422138955636447714777286423149592470456965093591111013451231596058070921421360444138672405283941519421999914041717680591959584031660837213401485794345115779484907568216065410058369315645455219931607440331039642099706356370461190438968278129054998605187732476460539081053120469552158132626707500948569369045754727965742578850160812004105228805288284526822288038614195636111433349745657933616388687088785450365345093680865756890704825363646625839233240277606191867622941954449356764435875591466401580504755316609992963853922019940595534864080478805459523612222730321013399746564666729179824646019054213829280324414494191113420189948333003098191537634964442088190157643143945377791530056089671132979323305404279180349223297718496099842550050924774364964177168661686070421437328684191574546219434523084121793185545687934371755755258275972843954500132870930222275226885052296542974680467686516713617030835006930090967289319010293719614964820805845449768353942266174303919155644154619576518159605343847342939081760350715867380771687908176991768002598091093736668962696256447627407240170222295889592097272621719600235474388865365811674889034996502622060234400374143283429568179636490476822165261769656300257965175287557212527277908284615777901331945896879875697645529279032918566956144500620080771374952160402405420578794301754808731858766069055467614436602847724354248740919089646841716159453362324933957304240694737323121745040021316941037073208440250436465047849751815856736347891602586627372523141106882592803244244234777402610967490376015659824084944476060268415314834935204910213301309099460088912906821361408242573041739271766679473358411464528824086861666699525433599204196573885881534223146172923239716380209694046813359512618132798920825110330589769189134823243202033699353314030268864556230132666586288321443319596061074775266913075714505313125023431164630975244653795333370555294958439281681433177907573459179180034854174439228025948058976197927571853533051016147191151917270575848871172134047967066892990190691198306076137690014866807120552232250543303934364158923644540651612549697784002276038356004309404981790262291377139899099970851639847417993323739416672475229872081847739951803555256058883622839401560649156931732937902649433592139849658508118279334805275191421447234620919723411380026273060775192597885134235684007192678905554825292296008001705677462168440422952053599718584978884039288766358506406615198608829742579571951328083329344409418054695576695381619080412988469762168174123060238887214147575380378769764874199962613279050361232326937164955305483171102867277609306657958069857992616415474434006443204177124937797905761729844082437005631215591420282698797853255127457691357003300908302805850387837151349555118969464736255977864188030243859747831510485418250447761282472843459302332038126645166602871247669110085281638839169872546582489390919908088584524446794813337395620317685475570424077553648381755418267439758226367818990182580590993613355019714645413027385929224667399368630899826550496562381542103520340278316927271537440597873442377443590366022290203623159035504296055310807746093010303956700827118551077416143414184789966870050716018546091922960809702106506881990700873412666635258778901458570866389906015977852635518315813268705773980087723130100823958136173473864750392768857966965770858032525375428188976118167067085350312306084082539185541707680008379904567937835020064745252876635861906709382795787789361464148931449118553766519426320936714517509560657146243110359964662595384383759579186533127728435886027094953676967707580578000619808816430939543934779067506281451733141833806861966812055718138226582574509609458160582481548597815851197055796012717793939017146920814025156694120422298338053607316611534397853909757686122609987979991732246165478483330315460591151417082546782542494127932588491873534997904448807175325923099190040435722664025452912419556660063012075200635083195446868817843232508928363569090454619762915267281999385105605451870973885293005378950355181162080752655594386863436594461141188680938951240601967446422790810678382037759175694688247887997232251953315463157137528592374432543935794621353855933756764603445675079724276372642857903415417659801635426622052143157392318531988977075832592212542738222531304486590358268694290680562279503642992134964481459839054369949261191219855052821270510243424660647523015983857266181849014103996218795139761435325398815265863393107817487910994958107778011950596369988463696594551008010989912276485070243570760416530772683260955370319120566099595618944735666395899467131896762118086994877105875477513642709301043997845856234085539143717670885761071945007964443809243585154949342044432852431840801144458911122518924317783401529968630082753946799030601347164918247652240176301649988810543454922931781105725369598661562679380892233106738130379933344252105314779514422030417357206273178195747886445022025099651505956105891726855399779720726533524000196715283268947694498434632322758846005550745456554589512164044842163294631674643606317261503163353057899351057672679803819190491397163680309215503577213360898072076757103985747542758908575096735479988711916893985996958391910461306327757194822692560867147559585937041292487398012992481886155538315601730543764549051129888348249280510972952662767943264103814641048089594317691003653259413896654194198055586262360841925332283878790878145686642799983375006606412329367316205760567820859179349826159153785101243907028150747522918623170108604441550908702078312022702807463640328870800785962532208854337349108835681238148609848451299661301103738215443744650565198730799190040601947550255387445652072306505905380897379942761637491153291029466744181980914969550211636545841773799029742449393416587977531944783750188788281524379224110448963998309902868513191133812647754489053014020166187387714565688829947857505328456158302115340577464364123120641274840980221002948452239836266923521877312984569522665962199817218819271660431223963933962076638765847232809135215687647240948559298640940029439011358887555595859984551349641070712505557155150406741034754618880102209441502286499980363930973951670091585087716142324250448882317124324300104626468007344049865071857044220288582829872317756447994919648657302367439230602288557782365435324067005851110182934375125715175345280176842740993426854951190863199835584343270762873437642661352621664202328403141712775463347124839803322268891676614147222847336205012496557308235969110675773360357688879281895378415438336325499241189272147953174232276043367093961856176638789552775325125191551286193016812477675091588139170591914760771184604717267903281958800416201661944335639688609714021847721296059763546145061280987316340215385744202494373474457581574979883767457076560623266998370407024172752963898944864606108573267990071954307224495121191938316682494680804835310379065645503839603473110937426776759930539195792463878906771774653971416736442052415008853639967270135542823799461217870398414821472904535835850816632679986491793530498385326022602363713546375067251076782672607080468060849077128074889688341643357295541426297137158668408876803659502674101477538380153864260946364851740344788021631218837899396189070137960076472641539206074671179893414807026702400601198194201430402451493669688083553377185172552747039847982471438182238742147178641426664589562887969699537015532427968796256402423373057036730631184270116488447925558927968606758650282848224081950529853438276760295379725870031291618214049519457687211609673071275790415303768804321816995035670290505233483538872949216546958467265607531571149788467022694975643147203072855992032490442911791769761673628509255306832831696019497831870934620470378766941370195606062883314581429836110238783864007145976479790783062807503728787018408096119356873282780712640434401818100978332163354963042531999964339983080200630126091458998069477547064424885187602165016636258080745366918602142143540338653051366114058632434687754432322044611891836056214184704676108841411944677913282450429622163359291684056785775681454030552094696102128103658238947518851268400577594444778486816167454138608150311601939319054104635956848697234451611058960470068294365733946669136522211462713079649786677713744597175255260501497286454868139297700728083062284251578001589733722205463151851404661943558647848411494984046852556352049110931287978629550025813687003998142431809002104453193369140655213979702264327893412041047679804250758662063376468284141528134533986351169472102623702724500355862291231805211732246108513383128796565706227361871701369276072166931526166293231070111526534617803443847578254424978374388628942172229621109656732172972013942025582645848293033233749403462491107741940183973118849356934944188096533546204959434141333846775072967238577680890757808913335009964307317400066391637972173299485477249428243293159835990713180665163915870421136240648331839587303106484032055672233994096210476133516290362697753681577596400204269306831640108753972733861076539480470827939681852631776299308487364163589192471579730422378988563930163355303625951619061009494565874940290514066465779235312589914872008096225213120972951344168486057474845980776263668766856973242883112978849814384128696443798263432394033737882970796649758685182407220738703741166680709064523495156678724504815896281967068844422314703529493560633991198544321085804563896157409418461946977284928634309319418938018767829906086718450652589743440990415960552202232701224229966810840025770531969396400952110701610231715827569625181960278284208933253287739902713214879656302650001107511335936274458695663807334576101919039383053177717781707780054049717731128120798563847913743123459734331041680998840262756601911497570815261621445409897121095493815354025751684686483288945063420596012799771203219363373215417957638501673654844218837864158620460153222152079523578190479031936403881015058873599783922892633686831558481906996069022728134456117293330791951394962657015427018332624967728285636425249805778911888162399413876474500007258181733646026093495960984767211591770876834903844230272629243483715995771220810067486425318759273450816503228842376880650834847024070981647038973471831146404672703798270641417591700264785514271922115305769689596804341590148725791001930525822216396238205811775562047096815744221491758654077625022819219206255691534989841958240874781905821332114143293502347336260236791082620125759037007334149779214728634485724430850876133367018717429675356533190846867162928990589057950943487894696375258720164883282490645605544329787074948968002056554852477245728206662001706983229784506475160490218388839439853209277054490825161392671816649840304270245384506891089310067094534784182507637039685391914941332891380948123437162470990958560499738190375936458213076219607176661696192656616627427807259838141352678570983210487886047983007189468269510635500114041161294919569450673420872990273342968613975821586322666389085452206547608316585214333925636001348260256222890757034767252816744996502067900209382139747286088880188327857234865239151226956683392790045599930919446926644303744777061228550290413235925089992071483290827265390318235070801362770091582024909059802715662330765202449400459934691154498083203779781092063620582566898508795830498439435338395384719114191206824389785327556851384891220078729249548599019627849401612515786006395019035076255994438078315483991226527064828318167813193129411677243514958122781498803941790596681856393240344265077900005383546454882953932462516351425904587371477125303167732497663770437649527450857568219689842961246653105723340088945821148764205671591164632805741888246606027600320905372996912386473163743699159645337907492957995244323091639824559602706022584727708196281371050760184726896345828120334707170311537644896101704094836004028536928536176497882712899417711971237093467125211414883565131819347464981718390346173965643533422259702309835657184987800845840786055787405035571568857043560854641972209374895084057524555203647729683695797536001130420338944633766871857989882890230443556261562212751227284791755273949139854678820834764072464952660026508097639711204366128505342605755231853232550324476492677805645236502429302032717176782223109007071455007203209570846007776305078337135254041255444479156255037941461937674524299720456976439340630161809953451751771952377209298831934159382489739300404961515116122428771785322467751570944453422564099761872203435302428577789601461647232358630131775404158803187795945303462862146007305502992467483391262982638364168013532414036812547188300275187976122399893793922739092513336254869766430880737496187626747562466511514940579037725086915211021063529136772847853086710157462442184580740942030001513475747249770330981572402626693861377716896071925507100766052979062461523375743518934519472014434270602629639823057299649104079965162619302500354093366359831987930498904942450822012334738875050089886500227004291039762971486262784515938969404602514137875267191155155026490124246929194030876187131298950092705099372413128168583950488573729329388078495171057623997409341895070895910522677214725302001145436650898811787335344582938946734752699569641620461972786386341350132118524775516335362431328933561436283393324412298375101475350407338666685734581779032134113096040594080821305687732291203970640944741684476427623562517849152312546092769469148817654280576068092417689497481796806933905077763244068377539469876447201964576559729974576397433826529461545867837459292141699181873303445136720071220605803372976665346851856711704233278971796264985855057537072245937248130727894076491304530106832811587984821018874142832948594704508099830405075208358372568360723924264607664636248787009971395653847796093040139912886181774183156863261451917614859009553106061207663155171420074711825198427259398387213315182271398872668070159600185617905061030013244740421468796912706337720760443222978347569428359624505547364538132692975773944969119939124408245117429237069149099021892174966219894269449701600763329198265340500553697359234163217230121215417725418298250845249950346309860624939337844033744902935005491960194547390423280727264890046871363684551029396292766853782831547635063306893580232746789901390743384692213482622375951780041176408522844344878856787318949067003817382529269419488074392172835994426672922004210873041411358314967755658931933946587151363908549169364371010385252036639239226576455661369774875976743586623769297017799268611483037526533291367134292699482160359191051148610794431219954583015101750871564638480923908451346109750574371644824874918071082909402284609789886368703258916415834473703863248695957125417918968713515650354357856670822022924737607527391745441599889214505340140765853742082229012735006536249622939935176583150713584525491062946985161198964097644569002070763988507520021324286526972313189487305220247799226934362123719712638887685138446481538652145165921693685557065989303094654763047303792693578324221498922299738356415736532074977214326134642833943930792451763234353584784474680100792755614411591189883145426300592060501233149304855074458061164073925932416492968561356891512168875237204930712594734459223048658499349022201031065293337193927700210980467754276078443236805819114986832133090994859791697215965074880006368747901027492624145497751909173482059261128469399034197191106264376226695929905205201051767887697318099822444868047538295231612750255679581639340815503290992533673645668886986506347068334117765588158665969416799488458068016627234989341948122404848616087685367496960106501167956252600545772163419048916100822874795923893861448333341730042541508943563600681967075145340985202475520398578794844461676763638279446340960839837239953108081589761832832975721878848936704343308089949621781024612244290559580816675309116233052328723580327592567516595991535937461831242800824962212557162589451995982044357285465732208671133083726375629344666699496657521290563730430060488490262833372236738138494836123742242704399623326073723555457890012488897822126823335669606223338890548142899277232937769474736552090500887674978737271878695761354757885011375535947959428490229969305840365334756636935343834529489937780780587309278255698255251379722553266394317579956012826218936469163699510646264884688893014040774646867167292109451868264475341310858919271386180032080648426575650500248336201016988569447131389481592262022945100763472064079311221914480313006472125220332860365881787383783101275259218083733176328880779698902802722994539464328661436023114586995218165004614133342947425087009105708130175534318409189856262457071270603548126916375513744059926324579268656396870912385760454327071618215516503119358820573176555996561800575117500892979444272522391470762079454360754893660345997688307243483369271030487797146661497650145372507435647345260064714806668029271485927462254679341704620267977947834174459059573513518101876218135520910865378386237109467293860546262168802781542790622958525550790765959834437755621983644474772140950328950798345852146700615212773391536548680481877591753213414983960403498651617388321258938588035713795586760601146164866755713443084095580609823895696620753680281322368103821226351409332560234407542240799574041138537270378785321209741452936711485112438509411841982639329808767409143751221674010924032374214605913225141792019955429557753367138463265567985223595617812154536086190178792392972387060990465542512782868564804494194098679628904679127268249376277069268369838860495952750049338399461980797525159447308041843362044313920568467624123280815397237515222497114975187683468197872359768043904178634669780884403634717336329443428133275719910319907424917639831077988577716445190366314404843577571972028470879905020311790269079745953500848101787843577813600827469120419559964467423735931941798145562572899915609821426600583156207437330031944102082402726233929796281630867284803964465203967748017173155758545255908298602363786275887228068517426759270618744130387382707251343256537042008412624312111914578518881299496144952018898626141466420689729309386818673530715246197960810635044912290956839657600037021278046700400865218371964724328732737625135053252748860632033472560342858807339492349741252192990902079504315399115047652740625458283271473327797052240880633793384771796833391218748940424054940010445775899955157900165244523667379471588062093471879517476279649808849796637502800988290280028858384448100972592537553892510953981530821465699210562701790783965553331794996793846379594171288204378883843485190917553251624345104263958540067662826016601622694425217954407574692381837022215222524776084361409283782867011182279710989809983300271490763899619260671323587824262937630494396432783542251550913400486324983016488189671747742279143699313494538816342898737460896067729118536874497413769707395471660654480127008889110861261325182655065314952202934783113502400463191771633350124780333846723530333745491711537349506585460920525109209451068626395360950210751863481878075942099397012105691995831571842368433216182861436234887755702680788289847001950722074003516524212832241432156174318937280717600479277612627231627234358910356780357813573669508871869953425016753788639987526315326352615241722621780703822109971534888499749871638698641352444102074497462328622780089812436549985535562844744234462295144592109692722502509897410171279647132010259293329361998232714179668114603854206878010227000531668664710703535670612308613252284528405205932675504811528999573340609504166868779852098855846904036021630892834567511792991399070792096344475710099582069314257370303068355670423488605165380154042245918356432209515913564201742675447109769309740815422819790617462292442874297163305971874101553844688495455392188534622366920038583330433490087837269990476782621905746967716577072175273549048079222449515946757698921000864820666441319220569536053364485213069970143370995548640802239666052580296433039967505648865818977342100261798235632212949790720825422690765175634870608458422969750939995131121712698889264152000475804334165313438842619781519189827834404419607150822833464038205483445297770322705345377741519704273304471743662121835083917742088299272061518529199520028297454983152545435126379230573980041217470879580693123129276541534413057438681875542538657335453580334893326788314959017720488665594326683668131733956005326194703509797367462394136115188741308835084340055725112204937526740037884532657579438832006505979265009377876255807499177897841665042828378796135338946633226432154312389064703848838118398825564409597430636346323069197048821973326297800527550228573103763280278371261350575964109945319726680558900406823172104261605842515679165884001272572233694001969943159146833973155062904132302471495979651153881610444382220664597073657791334066207947349312956591882997244412479074735741875257073562758095299110230282723441054169769084811328146981725723517830619147883060398928700967049616754445698552978614896853556991487432789106666906685392616498937617418631457008112499490445094972996612110093922726686094046528140401117953030437093300712404324293934683335552883552455715090671102180662707889307804813226281648029368963390467413288996363187859571251972083441730130116331443550800942504460681026866503723467740235812138982934030043092188674807482724094997410743859836464281085821343359048103851636411833746012648637858887726420836243717319992345144004747435097621636516311229438188618526450519991194608772578074829057445348561470631593014300861067055332441959896702198389000404786878480242697641153784456265430301170131402905552197589292166682839187448867226648937317064146652046768046644568154798362213731083390559452328599336755010741547150809341235584304192786978313805977766955347914199021460820418179929262686719838677256176975605610563302782404120324523258524175023759651750657462854512103095020723239985632039641941968229423463190864459780194042003743064743109221541334877213114719911216238553034287210661205921798230363743316786063921862622881355208047755924620387543353469568777385318180263154522043318407018939673703951047285968716069459215994107042649886372859318673817398879870471665349979165112925987780058070979518208859296192592786742402180174363113303631607436070560057907280610293526957552268683481068207310187686874159315613066481387716981935663459683710054921358536150256539850849795842955840159227069448386061814229285266708352994392855454585198003095759696381074696526334157664539710967655504906143660464968127177526278804058776105112208768194846523457073603360903756209180912955147485653468570938210908193486031133909952150158424246667902157080075948774348132695609304735387118935206618888295713945305826220524586271075320222287714390736952463304602892127610015874249417234965115373479617263804979289950379714749812080377729243626499022332469127010447799707481375385299423216105813433864468172375472386848811624999154696713468706683125617980374792352006917798232603582118642502250542945000120443615382729755295660060694322623772547726743706212913971825469486836319082198054819233221322650434320492103830468148317276649809417778151986907445945521726985388620756307210048807732540390895394918142402758389563508314533006775957377240728931404315633842544912995371774320017680728128436502556510139441973421950544131864287809565785445356757001982020143522421350874019084546541839527008572846748863559939198574494562136927496397451494747150242046271776023694512506083077366742585636228876895899993407808977374650153827164870124834147334479184608679127356974115444798434596655103922158987871895272894582218845361325030711353922973797758688562319972882643208934591289424098027589524403038385738348008560661156672336117531007831672930433147438879284649981487728675855200771100036854968984555001448664042555130306139090838003360828822604404574804893311566033283788326848177636981039314257780432273211431321816966810015451611151451804817159709377445710442709608406254757107706801373943280243154021853847227572711773286426469850882462342478054920741955365655222578588492846576683296337650521358172380377721197918800500773727469573253013680940032437857481581323731115035744761222856560124164065794084681960762167832618898893918822019150722561470437523322893860279791060872323480229341592764032529508772664993320881501011578843707100465342969121271821389517914107191318380136585817936362441564980046509877998032500984584147729838453099104638983722529304237834018065983101575039801542066539348515258075111226257963479481928880682705446210273295796825772016889123573853520473119223468150207989845690423294333771112675635037409680310824175771637415602090599862782452628157927318914451604566645982819548383941087638102802008143245233354527003095212974405054112472644214323918872081647377104714016152570500854558883741391188206520790875728036990378053004569050229189000663106958112104823292427298040009611334044617658783525720959958252018703961102216012902435177369938270089500440172041911224363337255653505665287396540454848337970706349018234181440190547239311996636578079446101727157747071038774546923917666261639555239094001640034590727101265950316016078587085593559967688727801134491327737044524872299310355514657377428820286402169961393018516930741393902814915656272520601581082250113508075170622185934488091839732685457168151880862390014913812044353879913170508477487488829659183437213683826857965944137664763496544448587873817512267173458911764550098586778792871671747611417574953783495897708936889861835430471703069246360371812179065848164860009958594070494518696424501967158551031788851219805553259343769936393552652328732333741151493868507153591288639380587115610643710480115355259181453111883470957253932635440391006601722798783501899391090405116650522478841766074912296205977426644371709562258569337908731094323653105410551849264446274294172823547387538794022004058511670461071136611593211776649675348923770396896567747561090543253978817738674146281518201333794762061044293140938559565583443264097056508689506012791559549646872226999738098152788511744764029519316289463992860704695897797596002223778670033044199733386876483725790391161471369530802177132743428847544227989094218249472802153423799006890858258209060461912233334957171465157651720775012094389772099178234762775539597811126101245805663596185661982987204380583946143305614091458148649257279966410077465592613179114387169644236944393947291880426131585379659026370170762061692429121169591663259887147074682642107949774554831396020524416337078684022736306416573852707613015485273184308289539426909817319927727759586860761404393303610207156453984495910925827497956891940449402538355983246120428163984924255193655342368045539194166579949348466793105611452656855252193574051977560740549808432880355809043460226678027410640425749646277963964739140428249565439493736808291276477887231013752438179847803608086700083058320846710472193228658370383226664798863017395212876728521686371414745223896477959914105274108023902738620601711697916839350337649957787465917878301045804213135496104322303779342123780090049022293219866076441215960902569282010619824923714451961103901794903027198130292001957011260663049387636743558603870668566860673876179153517893222262490344044363643968066138921454985750214420229901979477792947595460648343369984874932166862825514104854771895973913116487770677220978329894711698116403460490508754273711632242955072922357781753153317865870830294443159214025167256481656035891395534612733411889927559791995072680372653321867630513617902252496668833462197197789790039197522235636469360173770374713474633457688212475966038264366569586304975456439682027554837319701518221092052888367361057148844958497641865646060608836179930700885793562290025627380872458603960387356211676757232604249736066034438321856662289407810424164418211093858136503217134397772109901529588653571889638981925871280951654386053654595388258086029825306739214718319930441405764865872926432123926572386249404897148997533325740361086435507851324952913369750436817710348661911923155251468409502671273948655195402801787421530804086922679935064930473862667848597248192956703569819519941977743105006037088210025254403224745245360863851269992595866020432614337690337380580043226053489256087921971464076171860546249313419422818654610104868562905681598973756418090726074435134292100485241059523744534875846018713556574313631107887810290341762238417893633165352233221474842298267021294138322442273645879467158303554211484729222155263282822978515758057745868699409250089993577430397215740514355573998027820318852744544545002473003938871406418754643045687780235961184733886338825655959975000243271775652733016230142949379632204524319381726760367198215162794747975697792345354799347030600152902686998244863074131209318767580142800455190175866137151513584470316279003242738773651216404470413486532966483026179955255628241925547109537432053289139743122185983126117418257056401157170651192108516821550236558834288984539231440779194262902722232403695079428755406884379058463025235236725570697122895392143066113672229654688959330766419007885370755013931538182480927404934529828800393991003358037050147176079316981824791092198369666263235777721370598760062537761917269168824343836703008894469979089420015509141508019226582322845203961784548268583739253859827866284001957669833493134704419461443379792862961517838601346887385196883177690307626448564464940127522596376731121591008083435685528181309075930297539697409316316941563494562005530703031930228041732291732422693586482845585249597849793449888278658046997945157169102502388704502426002555534255637774152194901544269643247405710016096647386949167414617469868707951206332452310067413504415089966936930355570345856108845412332047296488509779637898844371544573547462460184901879080301171663987415916470821016043645044122644231569708941403096088635397069655879644718326174371176110247800691100372670014243770189213276906437871821783658660757183495241425641578975416291533736153798922345722768279897597421447687230059273989255176044330732583455313102748157319438228838715420528200235406846676017834012920142484120144806589132234864936039585859624365124636497017716204376256355159945767250000908326573017365007239691900547762003449710046602927842395704090539039971422552564207643443750575796701395402117879483884097816490359832442132164333530547407471677574430919647973233654135815991357890294047506990280653426199480078725686945168404407219947912890558228365588317672961725458426878721448453596242537323389166811858153770035839055617666565151670819613210865242981484846154442380907519215222824512044174612430489957026284829906391581859206137973704626372686048429029041230989987025569754058912972352144593346234586560907321159838751608729863543930742360764311541979418936465810082778282764764700850724953928095517034841597433258705591890002850452523834826547251151040296770559451747770759336141244213400105294531985464871510485165901477356542210976285196138387955959881278092529890107711930567338132402651683961798056144710686360290033982783355152933239083078164872890174194951660586979361438778774048703679816136802576751724209822003584616270915806090373583414119721608574133557021559571765379400513520917854732102388380907298277526013230278239095842451376756672937284169576173376283883370280146562374254140647722073905129089711292271037011910988123354987881075024851835691914324439590996498518075775769560912120623387360579388188766193189199643315601594355758076369433298931961199819894019110830520958693495273745442881712280101980557858333945024502579021412390767483088701262652620016347402660033459889786579115578976775789999449980065258595845835071853045582017674536374763328460051844897262183962906025402373425184823402215236796218478019250817334399501726978633499930693671648381240140813905763512490187352037813463807047077701118155001245579509083205942249313328038682669693043231452521353508740923900283444675753034641903938207945546226519123629636625149216200183039784993677742754860082334359354450628736612854807157132628738339792650253983309802640152219520710758024889691504785693404235802460973000025508019282472208949189268461549175897463699273853277708750500217124052387552787300261754278098902014261552977533985116358556289683646060541085432054959711315756519256036428463032703519204858726669085599973750350648849114555571343122592326616164328629459018869270200720536552073680554458327838470298531530577496915712454180528052927749956695187680549339458619450215269945698834463255699855916607564493951594513056533763729602399827641547313943708244899271804414890965183944350906329811264620564549971327958367928845767482899644190461241572108694051794817480550614641981544868787427013857221822482869047845543881745275400415371440911892751596836317813074404494531943746276106253637258003719983952039721017257178295002619639040028405320166744796554350650315287525995188168364843990102583109851257526962296027029493125072578198439073332775304978747368235387846545108115440905027659086048395745782847241586408201178653963985689524814565319902319032247401447616108335708971920257259782915093323204152913719526361811923351873822922471478829567111087411096694106308056363855287651382722613891323589001313146138676561642952660983134062628645346875089708439168766603467786803187337011730840206792770461551826696196365151182192510657437309072099194104859418943298266442453566727216458995656513073011608056095013722435935118046309302778114220026210436933488876486254070140525237736948754983070937512661114622458053843242030914377893246220265708767929112884128985852360287827267146939215839275005920095548192980765924694340795187536531347409383010360332778607942462112162864310752170750307032833099667963754604641619137772378086234897059676262108549666803814425301391053272918132707276853088381846496731460993447613655934584271570108823127125244730449280619703088687657788048245693419942573370440742008432155429268992826257772828011917432925506266823262492974033485030693853677287290184660798183879790119042415588079514149656324803209667901519435914849118772358702162229523058745628575909864403900208661388362817422004826616644233803600768036667763627141737539230076424361599738220266165468760127714698384235464039674569818885134467311230349634123169544506000984812096575488990811021856296261137027724931844612185624346995942170163664946720054546484972581374741378754399584824281690440107315374716422826424191710108221087114823045987878639352104117038357253437745633697784439344616443569285049862991845143822389127593778267425219930675365994271338550629260228125626228354764801550004217338139798621677437766545347142504954770974681021131046002018647608329605929239011101241447890685057717148383099590069281967851195392564032318815843088748492562424828060705259804420382444578273502053743204848892714064632747520357937443953794228337010372599476335701673869793234432150531209446186412902371124882308452435385080384609267645637661850391982416428765262969415022788018759919249916707015819278954266874210748224000699872013110545786514328436134646813762828398673139359412113436978293303000416342015263903978245766814249838893940650146256365271648174855625774626422901876214244577024755630636770670063792563744132675537376793021418263590628676709031443983652205621263070953363921421916649715574962709930637645487409596616768019028141718006719243714813943484212454853363665096417031102447989823057813311388656528222880795614265513402015345496885483897991265548705396607388390422702022122359879602016020766487358018818894427928643077822990520733805825043178551838404152392902988210068809707729745779597265905262560110321525424601338709240154016197381778586309328847636151432828373410722524176218254337927834542270565820735866497250153764338966747624900577982833252505251960578324249917253653845490843819134830446598341331917272063378612909968450571092898433084854456592663054617483387371628687895410369876492395955953213251246640775609347039860003910698937504541115136974181613860850273412053310435423812652387072835256976447158016314793019198488548635823468170993287715372448502726982286128338165951282318377424537389371567772727930687318114554947001365244828041720178838670066878645365875463803479812952618533441435517450942029119947221123204706583416233913246090421962203335305634136104874762944115630331551380451862753801722986679856297360947236822986106486707761669302530361997629334467517984683223585963428260196875868504959598345336570912384404283591430147303565728393913127388465619469013422946061349818054386546087963940836563115959287928608125030146916056582883076958308959573446011141534642189421960186456432200998013684559665032880727852810031763910088964934414302846668651753522414254204703768988082892745544785030298221710037918646336158378360831039210246602141572896468375641201772172536759308422403785862490059041799791066105841050675314206067246246193324843181563445284403991372435210964729686115027773993351876214394444448347227606669098289433729625229875135455197493053262569547204565401551830552467059936085068477133957152816899437970491441025967695165320507486797220838454482138308842839689279716269074298509368355819440806617009186212629222426608845121746066526353528153603087210901145233038609589221361744042193611935008420857042116152900131256742128327102940501486519382262887541064963509270445244285282281775639046814115261349028518464024946324777819491429716136283304086839414223745506192437679276296308335451879098642413620804673822860502292137097951426460700137473383145224764740294935151575996139350617313604659341731811311048859124677835675031267859070332765725001760806535918301332138440863713038272170623601402743489444289310570300383378919289390059632903561145165132050093513825843206080559023253542839266638451600380531915564671515915634002220791185147767991204892923671446761273201270013745636986523138025113118491558947453441094520682035841365103310137557499436664471912947008252892681181887651406305311746714198291280529698943423209110290113885017078711818360045342853399645103704204257694569087659057626495714948680517712938162552463756955410023218560302519013192280223716681301293608315797173554703311379530333529617696438047426344488488568987408342776979829334320422701559703523226194030348220756051817506382840006761315081047491177656069142283147169168675250434326773922111387858927636483442535638503477280846649007053233162289434635357931730543312648895669754079628241652914506320759466763990610421489513613620177223414632871966963484217651773451356099474153029420674601634238681964844745344422493501704920492861825167391212977689591599957499967109591339787885139260635262099064072174296102493131854169890343449198050031597774627224018791791566298082231754343106941226857880132970064579171321604646121135406095122434388989512185655112969324720726030831722930786965085853134558620793008149510676361457963987168873804810942987753008419819312060173990973576600572219183483918032230181599619172864398733718149694688067215117813496517338976373848789421771702821753915156782565614881969751801294661793946500309229989727295776417464787164992912772624027168675952882653923551636864790769328076454817976596614103595833303600551229706058300373749774087437829327742969843380287280503496356547686568372287676834563852903181956259090772791242396178337981316788460742399810024353674242008103118614480278128985802839505061250253072527703744318321229005060977015633423647142600192370669499704563284816225909176815647460315518536609761191235188581003606145962829710914511443008674499114688693901508579117562815299807985061866948612123072152562520277612715618760444021460652055955641730756446339130579013315351911799175718206444762978681770451871956974664578897388714355753924140937747759485096349856982498085235251626179740392215067405094878166582231938254332785690826833106447707115425839138116894911134916692295522473013866067471335226709549416785297733372171894213544250361863907542088055315743090084030148965492301754475718750892293635199168818223096576139944119759670386745902869402853943896690927674812584702283534080546207116960763746882864526218385258257537583293271978562732568412063419865649479765970434793852050443926411941868466523879640148386247923249081443436216591283230771986243642021582686097386384948332773601027591065281879184918647641326867750326430426138619222844707823513938266411212546336631897059213607831544834225450170646900192408280905720372754558482367940088384087615294894998711558618156825255271885137478947721922044230282965298239332612269766530431082261686407090289359881970429838459283906938662311224861569030687694369543919734465346622602213161969908887399438093125480048680376324195435687082183428360934014561542793225780073312323519380168835713239694057259655330326346668636500025403855841874786911711122638397739932045041684124650527979388772783547498992410517975611636752505797115982605226424774108657001662506531539134067961181208860695011442541651574839947171311005642682463794140303787208054853748054426114628551569993649885970902799260754291859283474374561062189828817882980888235088300134847535758376477661562437870486570013175023318091810085612521466341397754893584911572601468960170495704999176934765716734226953798205144951678621465081355318208315237218467179289587633142539447393889696995200397468247989818940392343337478506890075733726123062333703592236849136422724520151589288035330153808280711226371868180029097271244373663328795360851504923476729838226545985491619077123730039966029512092936429010461477608078083493485896435027903904225921491617703543494914855474455184345657742628215635547914703476123579875138386084186169730167751224271989375374990636861769470981455126574435412362604291946297060852293643076472218083102328531433564933943698043499232337235655919955757311521143272941707495528794093859085996786292281701056550717246902796901301801218686530104179876988552871698364600152295837528348914819652347692631028673398277781580602735402353219717967495441906418100473213691128115479114438176432659717670606266309899781796920578781057825117251843519343169105792850188930421299495757370033861692894847362549192016408647416796805145884832944742925758642241856485926815951640911497289765984642648549680650460810410215654443336105761537337180536271081863921619503719444301853441788639840619115911047418861958796274728760595530141126846510384361682544780107534182760823723689428618168433476759157315857308981451535585437788865563775469642779277199345145026491324043099205827372463369062118426962407387739316518051616360564094833618150327915974252817621823033864637318232126442888396421420051548476983864057240447354365822853036331664062868028615804718695955863274582267843586169301127598974626691682251838128050359559111485254150576576958047124421974204582322330840019135893144621329179273385242871990131265622345263938298213009334898695022665431479636170974267875703535224545005784683300708250058215380241869236014121908231559471435399933471118935049362685299452960800810410242531179849775538344217004166826042497608498568762096052446379267270159390485777603458194670463799697212518689523157156918467587085223203389212283430271429201138646127585240835736255073424655196032966099214700463024286862166433825817544418443626237908310347154129198988608058968656749348948858811093379884179302876378313074731822902774711965095994095342821722847676570219454137202920811891431694169512691541319704667358890007716246428485285729128152280408861788365668284179962227264754096015713837119287507462611546713734066491003030470848163946507039492264362622859372523722900234483765999427638457299382909002237609887889345668189839095456487514947333065031989326654415664297229247689361278842005720843994001527899534755536663886753511413786393615134289191116818851227093663987564179671554078843404568745220465969077624045408763801145853701072122201630909023124065854920707239510277277837292079430907908956058148882414920243325481095085639747015789917970775960204958891888716838015826645934701928348725386234693099607945471639535692875931226702942796982658434116015799397027286162220185620023016545826704590035926570863942213107972194339968959417459588341120708254227059008051674235648367142274053511086474107903467044795912014160655206869190167840459037856191938283880437783987134490551249798167747297403960472099896672340618720499550406281777201377048635432428037254003480272964164160095561494445368114595537312463102233102103143116189458097474319112523702652514389842456710369369737487274191245100913218005504159178726637859087943556995892293133573281116958382230297655765137991970181995202772422873832021717997937785377236448101128834329156836095383992502942294384903695112939168712360202679997716257791314369838415873531841379636659144709863379458547919047765876004725789401849373788861875202036956345048781310996901562196378692655530413020983717205669277111850357281664320331290993451707712460494043830001175874173467608216663554513103948985348165444080361904851055781786449052890966677808228242139675527503417777099414002706841060485338043138196129462754496870564795733652155278111082254983943637929375006397735050966382711630437931363424436317864507941080553989056138492168215708824537382949695827865849154529403312723788197332388119915963688873296173858861702988359896888189371324404548053053273340006559117191591798901779684357182098884188962651981356714909726823325057202146605399647569528675451765872432707386406184500425611732010239673070629863191457954652120533839524701936591992305020282719945124949583952561625126556150940724854315158968422285419004052491993792694968317073307252855005014973515955166864934527066662269494212447887361298047539072485860962747158756547711910066726007446258560988231537408436347922228799834631184930832340893631654381658354426896089307385541826703356583816063407131350270365250313395830972563835099378381204342742377296607072381788944745026775310989400738439634899664450073035801661922347773334035860488527383127113109052814658157185402054929186686499608604285439164009343600713509082181068212026918908019533410942021264490572291856487697239043346405003452004354089178975344836465832343495006434003695119935988298674438844800930271615607224995264565295221542640914742551175912782952812716460992379528373104547281328506075449520986068393917571592178974100088873093865219068471045899968415162411106721684781893703095476217730556606949855796071840911636298556809479178254562654584596189110874871802880515761331550240893859545010144917890362482516702394838518485126773058256643804124662783476111530763049827190435745287703055746396803438990689388371209893958154642943815859813408576984570131222453318058177687579550719393112150045475761874906354106587638144250084243606674656634280424727107693634161036301482482835299903512072052527113256343332500099570094192238056673692691527539051663780381966694359919354388959495681076880895572385957501689613760394597758092748168305762268647728993366760019611538640917248420666169411510957226837867089692841754099441884357339939241300258395756974513479173767228492159548169808853877521918644620911383035431582552353271984305741721717433429921674849396594521617211247607132194472104162311145538581762279808711903673829099435775542069161616531316145748753741116610610920081267783579544410984702359914371246923705572550401669096108974686998263798529946477161140396551777740425875819696780444804999692016151159763954714943252111591151565892438775710509977537888361896435912345810791608109657142617251246948165737028377332612716947507856603859962399063444055395995999338142054661829452451978688654379188337286096299667165805315760873993304183462502731428464637649214306584792362289206934534690996152871690806887948407614307644727353042633587856066032559967367657387773861013014833343662193680574375737681959388991797976854673708445847529894816990630611912601822240754007379271339713131523550475516870990741036375821552901512261772136300613682726325295763570320449760636899116603284101367011943303708364200732572305674002673041860873190061730879854200111308050522257662109062813614229767737885612534644239693231606692720522383665495301975523480703076576168470281634581840835765087448784378768446811655799293953912287996834146566946570929419025928174124124816288342155813914570142762656225423749964248222280286531072772360023586522734989805965590270273827584535561762710735633620373288451301570119998873101022949591279432128137306890556643033262593010953862554574832842794939172546589193947524089658393765859105361513452204694020367184603455554457707367319571377371766286126830753032822003492172457807680242916174745065460315803149244270496488367171202750306000589993391615253332701574387663899963246149399545345581151831247947492663818369429915195888561372310586296342232736048626062220378085276466795244997577599260840277054855922787697605994776951567496860770146187833600136236174413861352956319510493821323328333582756862945777402392653835764708261832161621999914067608272808399372976230691841404134258208230429458252363004446466056307827678474509506349500239692772790481515780019450612218543458158664608689344894193542190688948621526656919451254760058639486063427890744391544340791404811248318191969903315609420360659010538106091301322162066908294158312400251591972137444789519926282877058490098590053529104297801917560725935517606784122695943168384308730390310582173712378188613157282193271164999231634084009515578641079453212268994751806870474352688532193981214921280477674757623780871879990289522792101308886218825599252424355480996228131926016690369392323243525827856923489597596317469828087470722165354223785284055262724022576864815671275940914809227241945255320284419526866734489592761683231385928888306984458640791997219036050635471221326509546755464882008878601379401127248972264404422878297774549625513616960104570531583329380831779081008926799528473286014821932424118930724946395511037355384529447315977610427383677991407131169590222079949292958825761197704736685078150684344644554406479880681560960615202172439880356068735878600798265007308275181269197820962195197602400081812392728785923402449927675066268899976155593530525655882207378270665853554080514328191538442847983469316698256901993415390648280070335446099139135484160590157082181773682266445091560500834623443038226682077445150887756433194685037175643387647413687130878973456599998228640186117454512441169438261816245107732708959571027954302592054528443017246248834400023513198219682478563267102401427768669132607096843607138647085018082593793040754824226819625826582815979836331233208612273630399427949854326713699326547528929481741773121725485086441312281994427848688522573122842092901851376377670888031408008701799094926387506639050902595592456412879900382300390973030231516011036722537089849968936620451574944638918564198539302639768552723562763466909111199955582968215247198568757410162275951367658242704875578421678091201092067306543450958563961391060283763349352653572054781916029471993945789322567993072766166975879438998926152681438980721849134533212912160064830649085675442072824298466131107410909383654586053866213079840700798434664825255854210873551075303032620031184657862611831402583160771085440568256586527748635307466481655288936726191707155563213281875472280295099612225222714017046448517334535966134333849609915045326185704023550916747129173103359995981178484179556824322527670769795577879090058524853959600320936515908777030076650770120806433961604540041612408996979020607599862400634436190473321699086353790007580697490509497202423990147163850587864689845692127912497021902656697648086499755724806994905454693028024055828361997957461376272674004813420325687138212177751499115295713925100858045339772281617989593141928332859519493985669847712144049545382574537316588984086879901107416700223531539801777433207196175443250311534790328342525036259607562724411355952553861390736435177693860206485037871058063257343729568597381720472620160989153164239268763096125234264819502048814785859629773861681187665656478170477922446760412982449049120560298743219454764672246671481418322123464613615943633561495897927554560106157575354335896166968183388152049991886636758147397579917416173281107369863883025810346766393817749902738084721874596892943523329356536184491147121652979457882220583026886847064748619725068885158885172660366060046768409331441490354922745189146958170744255905877900184284542900418230954185088402235800102688198823414412031607406534677156906686004178113879957364562104339313418021853153467717408057010166145523141237692779159499391259407862277228860705494752483803479480309184922122054949438712345795092434574269050654577756785135536692327425131748374642097667176671841602517333117703393694858529953721273473157039416986417887891790816890600225148996987222523079485110498303601384950561116150155087098309107765537011951600273271310287018053726618108707433489875757923372092099783790015576260777217845841067226596966316698704258297845714149277953423274752239267234775378394888446832686098588957075958001146113787515849945645177649383193179513644898774075981048073914092328496785503603389143077966037143842659624906174202346219298199244642810877093872999421973522855979215520551143352797079402167383613632717104205746792025256264995254038636768148550783359409581536395736619663691698925005063554821684622688939844433627247861982086956461431592753192190684606655714345109107236335787292777543705019435002417604171301848011036972620839198909034781985476498847530743560334435471837208488526309589106792571982062979209039916248949812625114583250994886654698904241322436154631681989499993594167390505566793003319682978029886147819151137800779952988439683191291924601366891743206750740928694091604342107620743850828489942187620358773274696572895301368238146589807735383065344485352472240271416915076522811961564024181329547157033968242326574505415826257404303360182362142616260364520528413482258608210982139271463649106751313192586051751824894086951503952753793782365065254862582599271164380432719652209648112124610043761444781022964612247237266904298193213509804014142002212157919127150326408224930903874021451569265976423018461571051108738544809308139536991789870938563214826983709377633055838937213616229477267084399646088170186461673041153691236878537188491896992840356828457158291423841776564885868243446917759743846926419136342195894832725580568489834442337048598695778332129134440670232640381645967477761958180451307747456151478748583391483252005809472221204922632007093119127152713526908574963763664002787108013990228018078470077537699291146483194075877798256906840737217853793298282318765918202677188756787353957632324851498975484158946176205243682326341068337588054883837972988418588895655365548927231256066980333053757743205591263072741593466727456761614293285358443481016773327530706946993291435354832543822592228427427474110455390429881187638372795343392286588765670787613460586803601260282339293700564417521082202269658827345331657475859572963858488832570455080907381239799211233014797867658828731662550582906599923480895129408775917647099585319421840418724154227446693000883821478036972744146842096550161345560942511951529820917625734149911999912293343966976116816447595610991724119307134429947935826555350858905262178462456047697582424160991722994638131378766619230637965533270107135023696682445916516491348693475932264094721477600032439071802369163342661788530048010285890257254691352619616566683725302980244277401445721794344138162849906206968599080970012217699734568760903356226465707936254577208130993117728686999492563673816883882233418530595455626092486454814229959203362505675951095976055059262167344101889226614062029154216863669247899123472172485099037025470240647638206602338653589236060352233740536881853903469917585013234981249669522123216360235579671627046705198093823035077940571966045134641030091153651235034104265672637401827055160168441332547626443722402712773807695041592064333642796302973352900726790497562058396230059146096398117355917246096690690015579095568489522736934984831920655885408136384654270141394637629117905879056579686696250668982380011334172592042121214200277090424331381476825123133859065200806374182168619000603139008030815671851438504270667748764762080952030754898236795977243877817201983625830060745561470995031702765911320550487652517763331134592962091218499411404738068234271062827641612895368825822733745742891192741917738834441411806917830529052559527706173257052444348547171304639326524889111100817617194905186513290491963642919870821321767264590275235355015902992834364071598863565761336854013350363071800477307303438365302430105347308751783084998096658035955085790297167552680912801335515916764961509518626322303963167339347433881632717270254435970725950296316363175211038523516011300593480174139045310897402346743819082482414479232786846180348373601869086658645590568382709829334548520043142796158062212550840632160005393711058346106978027665733745419010519422809746444277814862684449524662397293427639646168323593491685090583183828447103351686610313425416957798742729065360705168346488735318042461383288090198871583336427120745162209685233361847115033997871769083155351836964754739641440422927158945835347464078869154024682669159545159079894537451436402856403206644644809317234712347569751451650452613123448460047907894493097900850621792964168229202034098812548893835802475666633950435810150769096929128803746522712288187720473003561215677654684356560964062113358228946402702482968153517263854988551566147568195367223633072053400810908531637139869877215850964483812553947499356435333559545608409906269363134323873730667100783526825121939367199200822379113655687630441906761181811930946563125999806614639457328441442618724464088180664391753803871044316753116312537463792179682247116096152715450989789316947720786872082225965096948037798652100608049270048213917060645797197053799981377967595600454150765637135826419192465690095832876784095054944461381554224282637472703167273969164511131225743892650109488509589721352258921921576794449559425506182896615937226111984785218840450361859692351275543440822741713216742019156062361563042544768732809156139751085665071881557126701424024815027350415616596218898758806939928625878877676417161445481791947838049311781080387083017298329157399356553946975707681592478246717986339305031308410659941792281371251338401090422901728925529268207091077598754697816829842641973617870282062302788432017327705333243681191543054037877582865631772192740475683549660655193789663755388340609823266921067508462445004268963802008298957552453811026018862096157437306272753713070194167636852239639840805129064357214692511940527206196215444611797479009602793222839162859870580314663428099947951412945411568673516770393922214589494575400837484956788374092272285057140429989698277113820977916895265612088473964484346506437056719811618112159767476833063089667451308300586206508249010288025717521003586179566408328066086042634547631097986823731163462163341942016166401849546124608181452254377984299185765767606508751161075970731567452920243954914874753477116980345883895265681409333417568614124445714570937125055106521113299469343721337509335988466770509468022150685569805697493663331953556301445353186163949033366939414044765743325511709778287243660199167550194170394337726032919582307763800108353124028421955253317859420505315974259663577855245214818952225988926366182963860534546112291449871156761158933125460378935857640891708543049367160858281322982042126745470651429830954730662598491388285351717470496074479460743978766967618320292334043099907448552005692017493039671134420415465269389926598342018680246565818184723962047909553503792669588460013609273827825170473787474854198174009325403459158017293405288305225718882088921446319862159234627753641300792048498185302679019617111966112513970169852623116658031426568439714195293061337417252033324297753050809404789834600260483406944693595833163529751813959257333020349893890315153521167727628750334842277339298361263178099338071655044131865873326559364971916781701281333229449614639749525144275940344019682045587259352298803900387272655805001700679518180065295129585147110063137778678097016256863281669563939888974216848065038213689835950477770772882280116359163634309173851034460367095414222377937725115872308216790883833881320683659374081149705159661092804960933323876893665773094466919512428434275788698476591623528851984488918532142828214637435203383543332905131811984565081128174584861156380264116688783715078686207825836877419579802370404420705875183972537521190229442425047631298359924586294685916034205769866031032659385632560990802586239905776279173890797481203585655982152264397314130663262214201174049968790792992284460190190641638058659031020792898344241702882725485658797060352935492573668335289150235737007613701365970751448778316996496212945641032139458811674175399731059972732444698177132684133518790935934078516422195780101045863014445998570623082107905994388689374265202577847332056186994587337237690713426813366251717697928003487061360044172427799421295801715528913656695635513247478358751506922146256244685070809116963677235237254067340877137867544281295863203157661436621032167133133627841452913295646523513678514993289577345529819749229199505572165360886468065943392934933327866062120813014530859814939330832765544226168132158519681896613519673145929528987081920195874023469642006267732173864083752361416630570008156626963042886684650618678114876416239845994438521238861618168310564749839330356541662100225500183183371066070670416997345099524836419229267655372868862224545566779084447065091293490199565429413889068558026558040696821518231244535550895229994840717929461536930843640638061502410571854883819356786634486229437850863122960020345016683331468567651158283518449249001439535518160001630748745364525661751388495241713821822039170473358063496664563014129602646584881111643544476921851608751370443993729470005403015862655356774181486287881221243579315498468546114341747464186244636701176339434902026726725121941351705244343323906333424881357736537389538350666739105417591816214582108852119737381264744306451716945397049457471689425951825170969752681957973721322064599496916109222358365820667183302649025999232662258536128157788024784423113772794860288322630798419094214651881476780989841451719435782777319900333406905396338477750581208754867841274884254433018186782387554633852759004000309565097729353089281667366982198955602897542253618717839123089552654051211774933565330255746505311790285551783240155477632304351897396207656803624963212970627753259387468091542075204017067519361579962093694385582673665526914872638348734387317132697014045310924925094686898823695433083728762582707630827069561063162845647488516539059146020364822611823530119844426218643752159100270414953109309388505575870550477768905507815395952255011436893270586185648836567499575660190044640202062606098427397504335409786524983177534307858339092187078272198103027623626239187495528697711087114071937927046714703817417874942610194833432164082025833929748349184812941569220300870940186866128599970026557673026791882425448134244989535275561538553484083253039263329773767026253047481816706424379868919732467979527163154971057576065861607006295641745807694255827012507903386467204880114832615887533571165756397769175315927870029171986881899254603965803101330814659815550776099728652679128199371822010002691742453501449719744527778864133690994893876351895919030517222838866095512158914851212175927332770116855519794707110540290164407030920406348942907410815347509153579300008335985771289667031559942296253706992732518457496540130652421780212770418463508814487635573993968893193260795813331313553224685607639698062259874971707178137066236972465210063422744827391526753237489579005708949392788149234592566970514665581428469576748199300221585952370385406343129819958939185863779384721128258963642488980832048579152339088987189337822794419574955353021660987193526791303036483473915745409138316690755655640176486146352658666623358678827271408993497030327918263909607060654248912920417183223601525955797952111770663882003529322955199252187243408016997439005826134294805068657038771076363833476429122008021183160609678082277247846684070681675459949614379853623805554107097131559179420186497375537717676999870631478285551659622083708671533746616888888782547150909731135731978876646553072339468025455366278762023828083233378121146392996150298329282873801503525933298789030953435578471022432675054581435563413475779557900986674197943272094921644015350655422753896557802747503690491026432841038382650808292304156290994944210300861675202582602182630104958575400682510868764109564535734191091950560409365603700938000049735221120843417791421807722015521264638598883884160809654966501818152522534272588393664974600854576263370729923397678752324777683346305166761503931939433923921797973963192783735919500355605082390886710841273569745214898372627146537220832103190082371498664180446226714858671545147044790110890324900879458541453283567425518479871541498802458644094123177684114226634953541941947241220672577807222941617414537439396300655489240373993647090563085619100487168522404026361127061262367351806913638057150911950856258636757044090120322783376968760273901368464582297316457789258641855469565136680455420941663146943379726136301765293075411080274227673970797601197545602702982702412444125810200234929614399226402975316101628943097202863019154598789232695576420433227920398325193106190809934798957349764692990492386174081471925458601555526892981104975093485243183135564237254554476923672463048933094647613204947504061468965987779281879738210073331406730939498992644836210174593501755923143879648514608929326737348231519243620510826848012935347355726393630682902551415418777462737947355409430540275941067967766321654228873514027660291917770788734508510405569644876551754327158435368466105517154114252226023369140653158509424166596787217561516814565054057075170429659947703743872355893371780773676266859598998420438782389195824405234803120983964901002221194495558272081239049285113977206111909089595547051289243123198693013596461066136367310646651867416347320950278892590195021194662531138482223125769565909755524225034096513464383657350605094923317550196778794054559973917186566111878298758206961363416508449182177774763197997493749066005201326369299912019278151714610399250785189806847129839178467173856425973059095060769935729017450110451844113101166508658446856970603043515964763218892140648981353994576007903477545545026252258780793556093925284231692799099153646796199219553076969844763393905437751153240917850380886208393228544796662586644182031300950713181978857512294368289260152302946590592695979838158557753753059572648708448452394143146683563474634977152015851470328160972643386600518510810135834913932251253995682078524368190973468186691272809679234662893866866282518351115084111307381645750406346987696052175746455512466470455550530495339583050361283748288079395905298648743782573606488010327368991048370329344541157461867910867445159107637468232717408258211628310746782610662311857952681376514736909431392407068611270899392944159214987526700734181291394293008628635129567214599192923506533083020456933965427155941947871918003252195388671103195688056048396864651228029419748986917750911518967496071177827606564003117201734282185262050284509632977611029431643523272385634576616760662508001158202807459175747785752367880149454357595388412975036803535946301781791331588101389450663951083408171231620192968429141346323066646653217415733705984338315502471308046576258324275015015443841188883303687674633352254995082814670024024075463229288838776310342126999529027591381360718913416015049588805965001261025205998394412537615222415873656732176307559784356384241902466005478884754804513185909560048049686181665777623765467074995741739138892461515249155687022801195435576823688752803486055176233995565039367071520249966841853491256454161301329921884697235476778432763074966460596024336924695687785783995524382137008433237016814555410914479250463654324715223716622873826657892722239135010975301526204734837805359677765681552017179757969411483060866081204635169187406069030346392469082937476980543554356917485502071121890330383514420670984373804699275136102295400203233393537359527222718946019072386982872280878504971188708533061419753881747293741178012971048503388485225049760665396434325887147305343613791336335561631712169389917151987646907230767424255873239143045351144407306747655378445126571290099015110821224671274547276575594417820798139550357558175340110578905398954621623752123986453253026500444748615723905266879250061063159933945300988215008414427987374834856965278609539730620657638752775491511014150161426582696720058545257898485947896720444416099884145931046119065212314668118300133916682517285604577501171633090673608549269179001996560010593036075847307157325085648076072759285715202565701807424426143685063300518949148519004896287720914459357348831618787880593478442050690952005248117118516082083501287691700263520923602086682435886750297144581460863389468734275961601659003309912073820377580250321819061641971513130700925767734696697918616010308689428843633517615038382912734304158868144905537378660137633959858519690110598232943046594717718019087977172386383067467560200031978939434655684874573207729003674679738182171115594785586715565873329588543722497166598956944667022942413560627252429449483055615703807978050140066116206115770064575295682600087120770418459337270652289005399077983958111946187736197938680562276173869570829184781786169627716137089982338332219888276418591200483012921684044932010711161374959980577983492781654473589086382482250056935443049379993825264907562685423392742621740899378847896438285290592929023846196108343596751999676198812598561201320911323447984691017707840678543101980301279298161955304090705610013975142888546458794355937472845995624147366648798889436757918361904018214915755023672362197962792169691724801236902824240150087080555572635367766831816664865904576838734851182300151056688985880681512989613908713864616315350108281645341947511666715892335321988983235410539173832303898975469577156508901898805734356446283511530079540351541551434394250412050475192989312342005668482874868680352032498471026612450330216815564713270405060717134254954870021147952262365601289889920560014456931947892239738145829822242010537514896624388217274256841893983668837107479505662625455561759427541510471360664264497157583967910346329830555517693407745229236788692392419839403260201658892904774765684304160969491213252022865938456874337850630893800461838676100741600185369391562416205295616350021112338111897295454486873077585467809230569457500690380546883462471855821614381492731292976270204112926160391150887797725394371218177779915785622565981384503895423330161141678896598459657373267751134197875880805115335116857220890822614446402488784644103958271791337624748849903571911595095727227944178784677854991843838963728475692552884689508451059153296847819315680479467963199473132379582713513801980836026575273494690471655819206333970310346162216841777786296896342587122554574461906509749160578658430994356845690947815408119641796877969510917518818768855977686088576732867862100899398479565978959205746860255721985927446511162656104083831232196006373999622828170453651648947299044560991866972269899116097369851457111988465322116644405143453716103594569357385352290088665038731968707154077823960132391501509763045352027196200051231631933270383589459218297544515170474930008013307383689440752915724354784487982694133284111103565602055710259082459151552363868093541854875958578606437072400432880143541901855992998804981569835606435776662707784636549982426733064200233910741336415829793825527104598379859107765444848468235102301658985787530382717313628470331951867973000862981164781948385768732224159877912903838264744744665063554856047142182591605927265905151005132055614794655564444822764207676577194723581484838868064732791713298031017271201954750562176310087644107043825730462389070360715817564077012802429588589754059158259234216048294974314391157059831650859108373141415246475002159823584992759570024079456560689237504628655374798690192354341573017883563212942451361919381239244760039437087852417227842761193909238431688572305877878729935268516749322136061455593682754782217769530112568755058696547052383340365959104001767754064564057378051934718086210045763303277416630506398456038756417766237707450910803518722048977306633869435287788445177102564121452524033399211270445230211598667373726599179024845134689673093445407535424232152954015812137044406701040852279394081581866792257746275284840817990124943995010911718925597004074152201869698441050089080635564384054219193956232212705561881269313647890572316759265755193450967693017031016864810292580589003395066043009075204837837982440791493675113269023242514039676238418068611985664482509879942197484451835748083480191787987160452534761713598588293078097428537552198879613194695411429273346474712909947333315250112592798937371064949201113138383229282910935539284426884084378085989217708691860167867835111189276775071260907809269139555562601448131428218694470440385776171659098615769970782879513286274191087074334508182950746998192921904844897404244960863440937790582758526701265381441131916525388862528341203215350301938538817742828745034466329476229164423077345908257522086677746156289535698941894999854097799598799508895202661087140597842215436550734421053978987860023815830166697245379050673544293144644332004028355501370191020142727073242687829293999956276111232836135754588804397084171785782488106434512934765572324910233743739755234145473767806079242355575336480830575299796100660839299577953669228747589930032991634113526468502957206867118320832752078708139150272494445905301213913633764658636944084482704602096840581459578333263315845787795965833658563540277455106047899046140526168176384547898324649742016033210505742297808940720555885763886172513954121626785255331158363707869330074982013929751268649739086928049693170301764828678260545805757531190471770509777782712344387640720509352393697547638150142580695671416540383936639571323707966272843289147174572975203231032148602927381187608797003488199879979013251710361260322750154566888449092780108472458657784732062518019829885888258923729080808108626264145765667661413110081184425849239680892139315719884573526135950529296778021496979050535461308270254255849560932374888035916403700804002605722511783374333740316530408734384039710928339147745623571731949172157851304930607819709339324791266233400173309165272219278752572320486317823325579860052136051438223559878692809462631951127843159752387530744029948755270471596623112733520968064756751756508707612114058666011030942892107118332416800094192467392620972753025007179949359987367512174258841799854486738689467889562928064357656238847389661691518542912479090179997369166898325195851858619908146006003461866776994702001773519300410071090059557535890161413707593966276556882491190403256801121485844930957067362238652083360539660764447664426510734822065348647702082714003646697255268657481620650638689474949142844052280738066295130450836999718373622794836321545129698014265176274303266445056813930304251392009592421623943011203956607365158399766461597154704515161411477156815217941823695447629603519718952250080856965679990791577693820464717806906714895673118623777934517944604541099052805162215345688617977479139631281425778452593952225553288289805724140268836582106623065788452212212076959680843656229177589913248408701071128350705025334952675852677316663447836935481353185660276110143575156592056663297003802222741200533525509427372011209560171859497053800128091915938881871143421129836402412778380733048676619357846667423060088081452898671025035395936236633547837699880483549094352460452467578653039208171403538651721370250179723357180209771513236549033094643009543981982931522131780904869555440676481567507227206501241824659388995876900700046364897448427764361095327081618734728694042939203823264211551325955060657440013718178374867892267605932383875517928832562596733322841921161299752027860102322407342481547047364473126058415851597140533795602582676223158395411930057005110713181753204407142738591190897614450557183954847057603698775124840841753135241762942088635245007620986936108560969601302344175749044552413481769231986256169635663700321043647560088127472277892621584586890402303777891546130417090806076028858972245893876634344855622265743335822619038216053079684945475010856158989758246358134193565476523918049734720099986552182200994338762833457130453255784417079722509188933298695724496532978007234780440636206572807025377873765779916232100637875993554052208128723020009298864637458958133865684976878412956067981729077713225434181431148588055326634327602533684161645130282201964850265937927395119010448562978351181494909689100921619287527963369785039250904598647414976676665326296194377543004989256894428487211416839582575007283983191087354011750464384236490812509880159578656001741771585523583883115496952359572994561431806471016986398049176172427933458671698205752339283027585959794217056080628611254040867581954355702767707585001462124288641456947429029049609434233804233234529065289409480010506658445068201620812456393676275027474603578636566251743482122545860250802560584257576492592614656186504034947527832630633693847750118436743000206455965322661775745313933335383455845784216111977242654410412830953462666020346267188001925693176872756963080339524775207743639023792943822072439666468182788364718553079974909587641274888507763041962225756012952345929039030726947696607491786423404074814530092108591437703116431727547430388961842309219865555206403533135992355615409875392691831760591215674030690267603702260770684864336646850204286843982626688182634920733132569998476280556666643692336368447179346442893041986761699882987620464328935123156895174770628319040194116769470703078140162222947274911874238806500281628297915698514591943867654659919933040193429809789776311330331650948575274379414186471653990242553111421705881689744083176242199588649784569060074805503541545418911017326550848655877544573448657891184647734119390092859022099655651979763910846794300176812431735679573494726933181574364060760218466531878717236313117745777503072681895073712247031478001713080294205842418229692417822130269333805471809367488983227627834778982959943810282931935074424828667461015363642817872664966230542503772360015136799500949652929269675954756922135368977480267052663581266054967369917117381992972379603229351636391771505201395048409329570960333626169088990456113724189171424490689733694506219359962193208089343362566364275600372879980602998859921090014592007943533707907116589846113987702560967879295782014051019766027034556795524000044785176926336768234516203714224482571726207819074012676936082623636514917054556399300242166801001819383510438372241188355197676769408623309099539219009952972954721333014857088086482798380291568482863920715042410089600274664573684225566649197737639640690942089806072230453621967943556899562167142121081787986889309626536634412021969106364025322387696029300245337609609613784644076624116243198641604880573795269662610917998638504575812627081504544952138995971378679971318525054448560568870213375311609456735601775830954812032977934264034167523787751015835868775139778390134327440452712050983422540886220296990566051283511224114930128722768717037174845653687222098473795158372900723311947170823409172398816552938149139550501373571028355858029395425264242649559494535254540501005627288015117191971605555079223329276618692790887410079860168257215871535834351911555258119386326824116937788919414673787816778797560747563718736245358046452648687738262609222465210354074414360201926143801513306175840250470727031680221967742796186640771659625951993371237357893849427121337937684100540941199291355587803452494562359902764707749808056192056253127447371250841549412924562631449439559609813078812217266570946279492757452368241377298115233042199777718368330989174349314660098860870971113586866326422313576482287122359375335024491986370608837477355599601441570058778901216035825156954504576785108365850993191249056338844103699518972036447594371453515373449793084628205558215710223454006012472015040057333015353415872492234495050761230996765515496299266861067735941535881415000834737230437774412023240812693606960164938115452101431808527688921670357929999792148902411888544454342021465205445946158431222997704322547618649407323604516223466841061431138125115391698680993467488990294196644172193979813480127987976541605774747561916049479158787760310264780629728847859429087054293287825652329466435780014622153715058815824997727205670523631073549596804651052966269186861172520393471565678788404544796717856583941821587311261682041495095695571612745583086655447784490503419619288519943768837708293967380643841315664579607545272879019267217608933254074428973725288469332572710347638287002586681804088891214882561889258397885120148041636182178766480358726087459914227410733571961578540832017463866069870050318714068576361453891425725011495284997685536215291188977800069785863516638012940871443939397368757432985271344147532291818219980669901473807967404913856104971930222597580296538754017435863113438165526927462672672176634081123577672744077205340954963568843670066901758486243710505553765476707171427711074489532017613956519900641449136483818958731273229033976992313321977936511596008917663999195676041789573802153493172538296964347785001888346054013539341761297045191577877689871625841233839801134162114236402773879284773005200886115137838191757554568778756930057639292146612999371098321038161340272701160872329071128615360725053567222786636822716965014356866959802859428441145449714890832929817946981132578132028938986049159830893841679170029211209442458964734760114917208887673455367519514619701811306035288248119758926001924895948045431409202934379555074028943024560770519128069207232283351469279582061668795375526255714734237828617162376259117583352088646297903190706205813322290588893720839109169709792528357326373051938687338666996741208299897636406357073685417008389475780111448828159801419204020036230254649040979171937128895953798870229586994570230917645677083065627288915795199096991622117663126097701043358117554238617564060724598813675782184460009385189431918254221072278698386466691784864762387422642271796921762321943193862309935112855742682790277869629477933987472198683150381230460597961328910333877970603008901562912677787917380621067426618180193252675044070004307870945314290208825742521704983151715630421894106827729186313056858789003170598469299172200706729969549197556107806219224996954564185969189267562008459317646124427091387183700241656863680862132605945769125898014994394831193467606125595230291038081462442445464146327283578571210959145071755215573405215379730026634007868559121349214216410511972353164998317486437497322354772820115007441273612720306455634170141713109689734203320381994993912760455070429068951413507448145426269266063061297268859400694549114543932704576588850439966667586520267995861090365416456384883265411069716654641786019515005868891883359431568507441956986685890244490358389149835606298340778979866356738696609228402704085552071620791163998488063512490853370422948234343957553125142708748781759684009420933470112046034067307793623466178618650834440294694493760108326537098191820450879343470957016421030307184812123692750735968849216077129561276201108776141460753192509122933928871899235822723348147826081211204454766376547995486184165600927253940675086647754572342545260850136519241898411911561077080756568345011220831394762211289979923345116792761269759594665305321417588777950956821873677361657069426187813421571610588607188582546441676747796001608346478299194783218763261282675531127760876651916755372035131356894585542861152288275481407369776629698442703847436083848314456669510352113209903249111569697416725753129991277370752934356852659597201817527848210409107185855046247358151336526912610221303424684444714468955736728662910840727199459452584601382950111403001071579222754463746185980335334497276099826423164089673849356635878567448828746558245361698414930086944235238711489628819933940949223832538212769646210483798854469865423665883299786547556810487814097794093773145368020059162066957385057944598340625984743745615315100046689701440160589153159744305022299531092203958624648792595781289941295158961504808164549843039937225735519992286340329425060148505910579154619545497976095434085692303449882035220137513492814862452408920833339054542122518308262085439367781612100926663983610590020999064767014240358692799824476667165749537973770723222268670147660607116748746848797699156982526088594262730839180905524753157122688683389437597930835288627427071522904404529776734295932690293195698444095805648661119982069260467830417351326991495324308756975150994262946282845164066198580013714026378987433742845896401396543969073596495036138701350161770008488227546229132940593297782658523376453117098457307705597958314868437100054351132985779329553150815432466231247188075882512868688895677735973457432670014487935564336975488095648679368314786794399988252137920224472815227403466060164317621204401146879273557609099474865243653227454752505690998251649628189605745605981310059705091602283199330346204021411289168941580816497171570849244369413915149267581209945214609159395110292275567575379817255884824674177742593125755858761470382911540553161365494039917924860374401807922668133454445323829600607752964698872792404336634237391560832674383959629484532568116745364164437054181351004273118463532430451001104105098220288534689489005640103402068926225596415517958282254138900415259501277260934441766385618430476495638544364706133317068041034182514321608353000262053771096905597054153412588973285040081288539256133722605707292991278047302485194610180359858353523133980646838374921488085833432445626063759958303821878705497690578079211279159858032640023078189305299406710526148824712356713098964037479075094185483272753361397128380342271798630763445774541764202451642121948102638119289158949679315223120495440018280646122739393194521822945409590774740718585488243388818004378401072299644755927075178164424613071649576818018272535595893737363718195383573716194818539962951815240851476991109538781090350774965187230199059301925700982660189870947532699878490619160249496969340424423301552251042409105002337913613205944153179511726627435681864813615547221453283780993106934232452279429291940490854888370485305017844205805252414586357511813222934559669722302715026803932404678805877487422910930296324943280792915590478198656366351874006190945278684426574685814314385227568074216649909361493659296940777232461682777906759672725651440037922356088378377744665795481635946046863769482189259168757757801406018282616475085844295601068990385623018462955446145545028351793604149168153131709432171326629645076449889814012972667144305418448954332437665746306255393418494342770357925363325458195258914393566639043211275570419351367653685696638367843219636298841110665909815040640929386915018535116479931178552806985857024829911141748102867277851003811094869033964758333838112560414137464336452459678074115170070600947785042468499443187223568130666585113677380564867627330306003254549548042611737819418614767705242733160247412784123432927862786939092196480694380413487666790520058066218577835656634267411454277611231393654417351776105906069493198527853573334932151660072931626278814465617435811587801056391140997286630407943750011950830262280889771603166489937422325087078987100421669762026513770857704401888000696943229968529299716542528895721867959266141564907716305699479342912935851731618979356086121497572658047463684254543239835959506188471525719040529154886486613664721270588930715634464194924026961998810311941385152897699009505084643984262525666776083990239518499096657415962371307413238149297429335617362879662035928988627401262601309870372601917759121615095606975334327472022137648511617173876421320037019087911723938699357647427776356585531875585076491066677664286583002987958098619312460141061171190004092358612225909820343773125190145205480437730584537525574843076584402845244764506380071522685368911456083873255767048295139970507600236532362597074951495600157473365097740306199100124163361965884004724378059308962624183657502184199615245728611047818488489716791567076994241165138019799683613415587377728104228682649754551710800464025887584480229827061795972822982920505012994236179272694808806696211670951830887751458311200467530495840446661931158716707639717507048900267447130137305917825846505342471999277004782041313831641618118434222633258056781804213503560212860958590498492961757009628203902602480661444803891977253234453051514465397195527660605660729592166926240101905305777483955145946045031849503795560787676230433922185844526521684979309593931146950811938787853251485003096914522624371035515302632931619072480518714332996241513031774252782765675767900256425712769730297116623784665784093457533631689769309480833474069314316928807166716150101399230925216206577998587596702044827493228712687335999041411911203350450970536909495839815632820772590482326906171776410509227727531713428657046814870247112552062749479789906904817176968916885393558069977465271120370867052835597174882199117895657338172956092238977802267205597157425085940812728263038271114218477167502539354119058536195057762845597914835576718884424881898838056062827481598877844170259596317669350639182107370799412166807965283610350327672918464501325897469976391722611541296971009372230410864976313629986929440126778883859148625438142715510478449181168982315198852674550286252906923696495040531724161057970533687412395231045785666631362123732351250441925097536434535484346502980345686594473443977617842994856594299143826404067870176413734309800478128721661270021552469017537186627693487233710074669901639073743646769226382749342470926265219459399580598139024410710550871041914804601427762223785440245999832687130346631363153551119154101584275168381065278431646785173748434117195867108889391294061642695672743412497045769008889722949863495363890188396483707699180879829240472690925567249820453003484508501860651415103800730727159747261851803232563069519832174365337032825440259244392861228294958031371992297898560447478960971064187310741230946768333989224776126458610966309556569585427029214200339142910941039397498421670944211964577239914899705529504057088588618767625995881563204842731343460282560221694523202381959704680775278112199033098617460064008005534904364586195126981091643552501971912971654129108979690696948052023787248855656981445404606368969213359933435913587743394280226025705194535902101578204070937525644249213954311855926282921935201853767533718258291781827959889565477089084688428688655275708109250309696126042549000190186753647928528854808301372020621481248385838300511182242127145652990748258046389936333464031607596421174876819268467631280879951658481356031759528419815430353524244279052234781288963536091150847786126658943380877179701779184829528287070226300279966569737743624091102532986983943736837436185628042090800132965212402282980610900757540742502874222515204655564046755339748562927189109044930352948979648022000489599627555993562639226216043885720905557932610126477796138000274470433187265461898905568292773665801666564638198086974283320899352383956647610276615864705593800226874036023365506550611837068505769722049576925913855752354277174772895983778649393594831326739085314418126268644041062091203400232586859629261487738674196555292851382503039615651473814165039264418100997163582781354685090199968529787794813515993284450270991672010954984623787871288615872148519223232484341789551550255556004413178496826026077363295048304383369363182165316107184001391232989017045915895733143131178223530465749162756012932148655381563783919489071703558746601012990541813915368739652465301257767652334888784495479610570450265620104961163184230761949902075536918964509611232121795084913547914190180553382275757426078699452260659109037392875925211664111973571068255369334879442236456653307480888878321756281825305523151512050549691659411667547807976934758441634170184210884340821923309870547805748553324461591161441007615963776035595022146426658710030516856324198120419652606734445141584606745269872587648537978768096970258490309217602525552939710520241867384944516588617120619947760981993629003192539591118966116771825059291921132924599927442278040876486769191980534857179459811690869139590629838472493589386219826595235503357736450586225314977753626321789186022940246788299402414550674687402868140302633348697297232016467598096143214719096023636768739115768824974241969191701098650630247899865778471461498786801531438616638740015983916729182921133332375820008692350876423706347496828310170252745051780239585865950567861352518480674898956937156918186072238936172964528950554249619771906989149840796005571721261495033475547019802367798216899597271715825023437626470078873676121180374125259031510292946922564879479002252934186698289236943553516494757176879179594252860640219646981259134055667273737132527436531385279838019583716099941760929396672909784281829539624225018107081066100197849388261861208928033023118839185156441591018884819753636654484890004816125419257932443292932028488177152985448907409077015980066851039490044799924697460712864697287030879407358270317411015565843311874417036502003104281578966887904274172237829468142617422159342114360406733017641208161325715661451655081564372738234580422695916991010344271801029663719404168809938190940475302766541710289486453625386642057988524770093236147772276481335404640816532925059140061695687391060576469732537806027868563268301275158656808285742217844873620695905363093796637520368490610718198189773672835954429903614881731837315544414458608814834765510348953926113442439732472260333653410589915890193831078922156610350591675430581664340248251771639323925180084231156791982538910005152197330727936118150931734515794166029773742981078740013889170310117116110718648936843927578934672913153489606885193705734149774327397582553049374002676283224211483475833776653783109962470263556910978393593770592248547807338448655469831932026684395285857960226765372205273600693166279287867041391537998281479728200442641200760222952550799412182647991837384334328147136178476474671195736142238310379872564865314692025695259980466428484634342538714778026372729098776418578376476983059142886953585531046002959992854450160155803327629049207297057799678139911052956723584083959136249130303859196706338283870239370557868129013652609464166842690162769972259277039286858290060835537953876030312501536259521098488315849417408649887645754028371870361648863887012958977423224415011139993867579122432251961516891459815700548063896879998695340364377544858988383864443214382821092320614225934148386660685330711633414592175563736984532737039087182899001431271174888844816691222434330065872268434320934668164989783065298992170611967672944904310176791977290977167943685261870323766381112255873870921318672018750812601365547348303832539200125991837821980638394424858352277941606701744203423129300439279951805693766737540605051260072717311374448905055124438039348873145784428789969988148804565578228944994127666496235219858163420634268343511430593564178163783789455609113110500321885072539685683660618868800696918611226194616187346238612014203072905987194861246917499300976279566979690678173621679261690069671538073299371362625310933436718001611664787419494534643745578398891294783402131649186485437974879679527258147019010738986042688524184886589088285982351779210138618268897605756311686849076160969857126399755494182955694368975764195275607676342486527307795917767784892077234798749652605651128381641410362299365951067630638015563454027730324606340003537648944545550433407179618085745771774442894496982520691016376095574595919613475274365205725168977597278118710499555285059073993448872886946832799374421731482721234122009894566233871265192013042875025775066662771425582652299977015386165302596754354668352125771888218896701352552099093840764589233561591606462191626902710834987621066305176377939110844002021808807678078041392389104508025726858766162336712787266045317982595720648560020547577010220624344869026159521171677342364964640914191821525436834678576204699431677842505631198282584118530886959407282453433569665176359033027623265133969684470919130772113713462110808681621297435672172487597844317832985135830437692163509626612147258347423347682025230229004063650902383851068176378249313780528670917037396039959645023489080319254751286928316288179344817546258586588636707451502295986041070938660624908633056011599519171967004875524653297471974412767289051124161134967598516236809259445878883252535984411791540688720349384982856592339525971744775134966302418993941056428514384770641875201256547583730391699985570014471106218085171239526313149299476997041615333004969947478582884746139378842425333668830847603700829431391608132352534175119914557603440464122875856913740249809725546731509941038791796198803750739539264840174643239383197297902273103411477227971465896640477123068914807690129194882734740651767468443189814296903314239396336703969992962798616004082528206728655677222512040498838800392556590010613091879257980140655735621823369805334502045058786893201938927898053327923396136773238154943949028235824947773707349540995124869298806388501708538743577381168359214757188123042015053112714564202155356223474359908704286546349717147687735490304723511736791389245964598853993951330834269615496099538057651274913071633549544244934992444674134069832960028265406744985943315792532393155865770354369089329764386523737540247133434083509298621131336198147295715198374142632959447779462826995615962844802144464781192804338512860537618998740893865602020799775735926438267981730654072930493619106898243933306957500605048051480441695754499448723352082590291719700806278291172756123231109041324307720510378508234576903496760446289527261279942921599137025388089518410318855035164312742025328870124533177691173633747946656313161828966313090241801717892751073016926759032798437801764596035049235261005662824935232027685497409984273090900885251232185945947675477590069335760645721966522766817485066797838026245987384881785939907511164799771854221012734712200021949732275100572601542720096034890941492587253817168252456767871259271441679242065379541211971564199328332082931058680653803822428536090910763795236476818656899647337413570372314935856191580724318824315405796434875894223442549317748020916981097289030797943194141041421706413859925259039583852189693866821653010201778295786632772102950221835505459680373448701265921806403648483232807045608161518193937193769738920177408212081475607367653946979336805622093365710537006943285821605318210671560725476475735969965378347922278295519988194823582478940521483468086203666922631155425742891270119400205572173695169354651217837603425150979539440318611587182994846199822483975322812497781232188645103699699553760986342159111807033164263711903419547022861032932540096571827370857618172992916330477632453050652405538687732790379281791762541744361280493357058523176168674889376505278722638070035253501084854634793893692901713478482170663762145560659425703390309436985157623736738205234101689852137504199458329488320442349297018569368512967489475884538384199578495011026173310423988634014674641546082042950014137866398000215053335872978304922385012673015861664952346398067198856964640449753915927391032502680365456748172205690884268282657354690864835575630818562250906892819729248913570208383083651618255736903515417663089002814815280149690080639716221185953847276662047996091325817323732982219936383331904767549527084192604724460733006209661648255159797072586201401701206292428235771333824028508928200911428866065555014472652202890775957912597086096318597682272434195456657921556995571668059184329109569588518506921065423252864667178748508596671733450558472853955110294599362318359024034223647530439172154102973863327246545277176993240123299092362334830988605897670841159849775268406006317070479671415986812367156320651000299476930070574778317493098743904693492845624373805692585037369303025409992852254437211409468846853410008650999239163163732321259112885525130685921188708710571260412671436528892500904015431476167449067655045492509644868530969488579427266158550651899174385021416092143619335551146935034572764418794815101850339830844363041560446396202469953863430965790650369650525740714228312608723344161130133859641490742105098200823127982087559601419686197417475545361803644581640161530584820206209582828835270568487911557193224970913928965083726215124189424669764456691795327465930867530845445070368870794196669466563168670311111805520261391606760363163659043641607086173863690935333345277414554229283659425591698968681324423385466509428224245213348482139199828750331493674032368061575297050900024708500521771228057238361993339442541986820036209373627740590027749120664054601245990910893207836148922143057351690973586117267245121462162842498962963668428333228865797769846904229118726993814722659581441404702972799167391640415799484868307620810088885824945537943585087353603453216827937730932093642457979311609821907895421353246402696134670020151915138681141945031942529424099459699322728569428189547272234252601332358299241571885570355662130281920213548280549253734342949885926931158992040913694585168444840308730696938355420138603537035182412952360907765385120579253878096672627113162319181220055297886920183375249899469587380105634485350263421271917750612962633126404176034585040613495539929504710306136035955613664537757728591414724106695943055051220628230828623726040976048984574616052269126238968747098877378117869879477388802071590901743446264166124393870256002848152984772350240636659174014024490207922941789395293520832362904688084498222570868346114594537111728280661712859771918100502214199570173502117668945920337280219705563168192141086079263667010648932258950112885821468221815787019941630961971214422835051913581674243259940608617929601536257827443555222056908987850246930125065221680639336305278226797254732804963328998181858056898658380356509101519228200208420238298121195596184880669591183688497625087281772993678559811515618178039537513087905378871868987194312641532311938549321836999138257961596026480704148735132694024617106601515466912530386099435406648096459844393822957131805846204306138891693339866071662950997523386996323941611369672329528192418295843978478440931582471650441197928914141175460544507174487519095516607463889899147240709769914892723418631362313269393953213302297286740287807555158755774496112251302720793005912620133770824095635533374283085371994727596529901942804154720961960197981149579221903550339423655287078691566975307177709485552745092090986614805322675742059605073989423901164146607595810366382794259864433291117016951534162187833837051561979366273867313515277605787819011994887365653792977137900346789414088145177335507939097945686003546862388865178010655530903405431959213729538286004333075596794469568246865132798764257322834288576313394695942777879871198412223054263499755380029230172500768825382114976507057373055422348882938886959032057835098031257747208246460881268727390729301127602453278508651498390820631168183693642510082602431371162963398687354301653443802721219102069825353076813066100703807852179001041472678626194425228236363017869115576451021123198108790758695809179435614807428266376622234106616299169244006103685161090925221131304265867448848999384246230393798718743528666293409730103840811226261012246681354592391731668696058751161247119764498980972722157127613541171599508815554042416100595385387071140790533188783481120402607815484345907733583044838369191113395470303572187278711522764656418430359079619875044368746923255698125113868017396760721215105202352478866595665436363289510365262124158067136276751438038043554569794158144253091143260853873210892906694625287454977975084868977351130978675912865021958211831148621412875463798613954573090311781040711082371918434924474755517400234751663143287529983952221872093097147722286275858055687718122407799881472899766332464550129209838384088931179489147196455770776609492453003274524230020395998946711491359348896815898550188672766000255779357459396684557760851543728138998774425555425305308213088468204394370152659562905952362098501861709985338366252476988154487945891351546119266199337436362201518449569860642012161137903426089586886780196866332935855390257573092162179083745898194580771503941078161324586995676141043937576218078786167762021342996047220945013575168026346079245791907493180399507897689861692347473686247940174437411638587419595536590080320301142927933456935088314664492706467201170063401821334857110290325188894316594892518062488984068616168297636336256301504520611292990900723421009000887142362031833729804450040740062206551748660692083257934687278238050587415005603108677321208318345300127847688782141361150887814982630356988474907973697866188075843194752238464988820537746340959177085698648908827410162820727925900184901677426793698171902887685080113471556930610420947359438734357495630150644849247312106437767374308627401177592329402458399707501895627599127960425373064177517364184572680008144147002918980491932295839362200705402061643230167588350345073119824564849713585421594161953063258530171307893094647310061314981002426706518686967428540035779708883855774750411772169436230732559244115632007187479646323228428300205307996288306323831213474962970789348927391499450228860733015000066203672005431461334913523955297908336679586764426648008282652400299908749904339358279793061505317961662775082372494676493779543189739570068659216628024029008227136475606530959511294853212696431009934121264165786645461988261677414037137219258860978073843321415789426402738260029175246363341464754659580524920193938745954612426867333770611320147200561128467003229737033286917971053132324636685557970077444583421443331182668982087133195944446846932927831420951852325733507307937758068407930910346876773623608227687861320481318461077129494241175848871174765149459310773217516922461319761636817094225445999916446527053692215496792477768408168591059834854083147588298880921518523980628358893253783361724835561954681123024647971853015200167567306773415064387346185522493538611794456640728026560130152155257427883041675696980247054857128645494199081522010417195314574845398064960046723442723324062207347188599014418270775661599065934616059505763503362531919219107164932362477350707153536961425434156120032723921696158529785965793835957969252037700051599482438323863555589722724822628059950782740857354543826255442323371866603156686888791741123343616903777520258039551349250867679252508420133951675223261557800192674595189747407007806442791466533300131873741425700915411262624242378432795755598852959918389701067625268218741153124108934401644416008910097425957197549018270603211948495737938738112451636195192089983401832607080090020067090985697633015673454653281109948273449238044094713664378160367380137550597047182648783315949322015611317878203751495087099483843611802133548046734762206991351297503295968960421557710492834099608343799805885947529945891847712948905866420191655908945370577387052952570648548165141295159231045154353572302302684648290634799889622950304926734530607054087007001191475306434376010700921280786124424975404768994063435850126766848727712461511709095802572107801582484968151443851853842221249861432490017186114271105516133398538536916410387832486610982337806664910492304670478404707714465801192572824427989750909403033072859737589509525130039735746755084164085583085573574357933348547149185799931994970993662598313925300210595700018702736165037126239971766718019530593866059454884790066724054052016287980070703724597292691340036973422357904422215011617171446608060311151474942993173328627431262165625653434942844368958118930025875329327228880133297074356178755310243667597389373385010563636309292065155007736101180470031664570623757736044755880171718336412210173132253662401553112219897219750968196392567540561502359428415692996571819056153591902000027040727215835466333571643707242677315436040084303912788571080280583914457380457806554067478045675763514858401462604812670460556576747067222776500781106519035533296561036755872416406746048484235656639824885142157585280261518251848182819055938648294941194310416154612160321109954455581051616142184405807871069364990590094242085085524260800420182540872087213633860266230607062142853201173326869532276237963959104758550844238900968898817387026529758840329363711722877510454120145776093036495051061548560132736481411052703570907571544662293838721120276132797561149704554821306162521099657930541288115802013270096597599271907258792858190244770955239886172743824914413187035907532117233830521188595685552073580262575709009813173801608044018016418366647812056174201345179277483450824253762174627623402268724511882922676845834767219955758037291075097460621845947122357155658198308055689466774350632037539613873903715878313462586431975911165757341724132323043071111857739715108766898856192045989449714239768962993160924117918159450748399292191493080407029405955515424950707391642983869035564981788903364676757142717744432892924350859898896957286700982834256472156739423129524570602635673036879932277187374662707715978749407089371519365722410052404010218137466271617722897302523772368066254715520419026269551600945917333180465409170723771006202755707156477768730108997908089788673524593646751877675581667949951011828176861731040235795864832106291168948618499514684308453304806582463819466943813018443569657790985267830755799588615741443129430584458475046314554120636802657221864955765072222815398432860408164518677998234897071245045112298996407940518466933279984395832757280510896374355036913681197357319242012392505719913431996456366259439643713333942620650965869654308270042220973972537741701857488579788061113411099203500016873374355390755187337342250587510427026178476194185517102705439015128347788966415094047245464444937249009395049949108651892748509747860681649679188937011779813406087313858329105224342302526372720931147272532154134037363973216223793072151402317916447064019393562825769365239050799413028364143651487905293076606906672347253916433451197886193770608684102570198861897686172743081450532119412876865830171968943489494368015039899752084270607046574801406431839403190830542103340051836088803546530289559349655879033222617062226627673037999769585069524965256397399261603774583465638015162121967716445489039903297640022999089464651568534642650147498106979945693349050660911175415279562784268986938902087451590308969741967368307195896615825114051478019940625588567769222027759680747713468016908008004667780073701541859877036212552985455158493581171294797834857616360416768041171681181812778306233844584243772339764311272592987155858523770734954005555975794595718964560840172516175048708847412813603416549642360218609190236151235229876514249662950007727401598024815049471177067717963910617326995606419611989348603039697283405905868300819540041639857972026239789532099849945094488039950200076906193144389088487065187233804089116857726707147340963142996464398834295920633547997373112607023416890486094593486428709639577363607055974704183544793826022864422658567214027078583013305971067697737131019399131207768970991891211025380129948049942932953381363319889388200448852264416381895569953234093421548048084112963190303297201089145575242045151936927506549738216856168936209632876815696118964352280559206519885032001281092344275601018098507427825218843018951944296092283871898247256630098052722569371995898006395403724577659107700554489574466543398365896400013873502218257645120470062187277508123676579923176997112526490971441848842087061576796972851327574792650598699459078397673242142231115099215766748885233212032930103456736638609005261057388437490871469369201065028271920229989656334493696549284992542667402200266357469916189526127706189922881821792857757036741435340367978671611285015256044877369208143932483079231189740696364364927247643182636440142407076148303888146509456397918171798895925227624579747136883606698974005008365681920077380357594308758758837843507729447661082285912196646289382048161349454133860849572246463906476401425984379973403638460921981934126779268273132576864481473847162909621668406402292258997004097076857336988854869534637460509160057782504391468952137295609641686154534742081880407089198421167551439543547965256257484538961830972187791595763107446833352441374775731054887333448230926777196128035953068553136257683879818949929573232139179461019602866528875436970345891077101808988138368572243886918239145347380333252112327203546923695397110703053230786499306595771701025292883360113549036703196175397709510492888074383509908091666465981123048260797017689302077629624085130914955429748072674995990278025136502815486671930853100008440854060707219492440218766415567225776875324958502714856494156962731647871095591015216216260478140920957657205989040494894207473652953340887309912367575863071043726462321769504195293365830066614145461795242943963193653930894961384995867931804631872512136128888433745292301480407655012523155130480341013732343872389335889685108483940288568516915098579720610591558511567635682768613660264342217952301537190841858748120749998700280498863677926928244121658360107373192250665201068494386976848687996977424684402821214131162130020690105996642000052471563978040351771304172275473881904686712586422446228325869029398619456650957912320339721655594172612286518571670252673963469466074267019071100888844571404807648929994378815634399956516093227357260427198867578098417033641340250582062405904727291255118857085257488539004643344661726022652486210394667707522667598861718100858849134865003755471165904131102978798996344678684908677398781961305429908238511786240504435157133755195363510142421544853368289335719628571843909703115730106254223310080012884804193572150477088004807846969121439741316229264278318909099387977200602607061164183035729979798850828468318210299859138373267968813829866831640087309647925879443763185022742594877173211953109128005756167425171688393059453531744595413108185794404727088118807474822284850810295673283221710224520614155441706137530536315791993842587079822008399877597581148463818667710391419313629710240810453458133186170231061976577488426386550974631923176547636397328141616613888698427572597941643858070429493063705778460885111606682474574674056030169683310661054619160458590292366505962705304678061756666014569821711319870200852571718030417999196498707247312431898956482937235318077804673006913671615475870307871355501007225709881547205612270087897250742448778720752917413124185569422603947282406568525342514225097735043028635050814795364261407754645746074149565373241930335393889420926318747108942907108911164635885010846930201592662833090191434451511383983576088942846747615898120017325227163994209926071633909929051245778128846194058491146367741028827987122182464360601424171430921564682001344346890121367499052500016102657395960783755516972795043880712202909017298168195483849456490770645430628363970772294080393146816331408799116699994657728621611965646604163541705551068490393818821410765891016761774404917256115512372206852771560604356207952690329585742656828257484557918427929073709799588720072664257119819251109854251211098738941945097793788225351647699506356792235923423891573792436173796229048460592072500451380163618240165388166726625797936289011875731610518670223593572761695616897416902502522808208009549845654939176473755360260007641951435308631556151869522199619583611392754153949499937965257922085991858199910315530063853529835335836240617393515212231328317668179229314697813220188100437295746665871736285604552624781494442827303969268304361620258404173478089985472288159473194106099677111956583675151821275315592147441353585627087902242662604251747349787396324126402401699655845342268139767181766563999135476717336004595027313098435051031616441170713971570106323115393554449443929674635106643651065521835359157674638292968428807818022393075044332380821027570876489041149051641401374975361159508386861788747120253937038872629920655526178630995665208048855185535174501049967923117861842144785966425055333213830441353067058407353605845772848524562276018945259166590702805597973869347488279425544820449099608182070582075436595866213428061397497990360414605718947361598470253137461539301685692682587863046213981017615164907640527373687743320829637914418099214552549161332858859505325401327904255756496566065720048030404446872080295950473890267805970898217165091827847516524162229750282948057449275134035771084516214184082998173489979618899302833331472795966090663879760497248340385545162054021242562962648941515554228046459071912998888166702864428752614568689550002074302906460837958187056975607728403136602388292333505318727101313586347469545941226867186650876023144852075193851562291764746006543497684241871018817422138759363840896759937369724843418577638253463516018295706007356477068942720111858664567490351934851393196641808947007483338648468267554813616721161631583644896580737196774253115618116897502525929750184867979794435256125336479419288821806209527329161942063898554883411797745559331255646140337072320249541581660243473613076578366704454179706051753798401405364632124464038908759336430148666401262842343104590611289788861622581792132917739548842632664366688154063167590615100625074076607352957993360102513801851524439608233499169372554265340917121901493851584649627943839681036650307452912279491666979465476687578068416139652932428490000355480430300057231773097459919459085701048086329990396158511221159341633556428622411285220516318056474344449425274652800899528616174963650338453982484392170829957096858231049075088201932633850309490766900074165187689984081081980626887745818978729903506268488999770002366898449507401850889802004795105623448033774829944901391328885171401595586139607350350506559750145136977655700569328098891966260412456539589314607529659005903374740714214070289243894377764695001882498964390311241186162923285015733858527007487744634732804792175083211531760368543259867407268867032206462050136587203861559649484786645622525173746941800727999616230275951794546350614085767775257310265357553271606487050154190999615846423349447331502555738582589867186029761931258979814019774054565054498785844332523264348342784662873846449969575585503346877656164023451708514531169108193502635849973101930305197391728570749216759477137982601682655182968167943153214583720046738912455820869732200813733290639428912297047300620280797321716919976045606475543230387091494965482191925770772453230834205405442189990192789448546960150801560932973960946556830097345375239410089065372703267096311782171267733482064768228539077681690343871416955077034067633049304911971666481433638661365536740247045075201774470472098262653290638351886653459711382019426521806377180983158511071933758389934007678640595181332136390047556394206259516197318489234536568375013878569897128117856806698908552958841384266284080928029068912942063510451347977406519448445183351512937093460875105841095972763435534786162697157308539926956499754642644362569629521123856202209016644356289634945291473165879317611313566478861073037802062285242827346628382088470234601361266847242501304322888714298922259895750501821601448792645136792559943960313758302839372657387212615888965321529302976729955000579341312334751454801971582288282045683314424007760159180794666474505963100980279187076840154566232730926622009222507119046765914685546518306808032705852582744798195819421845372803515390726226245784156956062349390770442238719684430489504851297854715564681101110868534140571946192544257392114322045457191146352393980809370498715331677672480275366710436999112299124707603009121113345228269020474665051975800179523132457042665952986581968915432125798449474222345142294502570584552837555539443590352510366467471225212520254189850150146444006857813631252425319170734935821575333588986852276637223810104475278805838871498346369424746055521838183823374210933969113556683886813163544423046446070876254674027098608691430528196985720880365018024720931742005714001994514154229258922503684249531474472404659493661190198224929537106940805912880191383349383880647138220163236348725184621137884578287118459954931950458371631463521249732635150507776185423243308656558591735059524145853898345343322597549852538424326757843924235164831844808291964187364617858299883786593519616505706206146073701619101191033949708408908235768314735925232622906362142390495768852028065946545781185738313974883008997158953994822958108953586980046505041535176683482751147566843242895240703270775567569111421101389768605807345878185905905603073440472423342241993856928893145903006476350834654290402623304013988711373289189458172800900403688858686648996598571413868652369443433689963454578764534283466901360495447413084571354444057174971660046200639979651166649216963243428133394386982927981120787685970546654633465351569156299046329850345071064313405758503776373028788123996461052874943696404157956786486088135176241474261127054178629960622458357905673343711240390743096561999872346627772341586615746946656315015811318487500564194850838343867997537738760554342799627390519210758902608423098132108656277556039387052848223488679165078404046347408657665530019865754178490347491357557436892564165686498680719688066075524294583742257606890052689062676320134535422941094311811194208183745699281821831936022057904538847696569818608892068805414032813596802617445084550760624446761531621021468747972902610259084538660048448042229960297267274377262502537572706660954992331777213975848126476590345390190825088108773404489518501143495155191929322790283556060763891119947015467294025075804893370017382199308103163933171882362485755738760549715084784089086444183741915017424371115682152491886503771639097793229098237966350772123348253234121114148006398155070350943740130175601773713501578689405573460143699586694813578738085932677494847014077286022663905516500851730935931701221071474772874593332628472965921988473389102746373034388756751813764618797051671138636849451321524508614039753884476984291055011201748412599099584195032974719484795532849911116952530434079898975506824941501167978825358146683736944862444085606012661228501387353477933258512247870929918172753605248494841304623684399421603643970679927287557385984053939195166209291189753720304134625735054867958211667037920625930313639542852554851816343896354238930741482730537646786218783501671227550478770404343899614199516844916335253633320427028255572946233959086054313771325358564986750736319421482838070151278567523222351714021647279041245566874750257751349086855771980463321272417455420240782892022652999225543255639583406911603866525172499726662413041229328559925990754872814509402765468207492321092957320050264489650185221156920012216895819599947440304875787146261212891008792277609846014641476323866105090538137139820077636877941847690665123751456592918727885683571330705092808897048047192495630867697228042213032885757188969216550328767110953189298312630634400927131377355341451125255747628041751355654148260560965748205815586065821431918761280112728044095481158580570949665180690488799680786129284187296332887660837435499372267663390105708892343506224527971237540575408593074335616349351397108857032172881230728070093792398121698317571620387430637834426830055243136063026108116575738179647810287690412437742725782268201044127409124032122750455789800551319404389927483751984987501681250402795394144729947339653470737320253147703821096361790575273393760990438497033483463527126106302277083715779305458687731962522718549565634848360631795409268909740968583379557417645524526287586594562569844118532511773705137194177972798665238266284707466640029336742968350903058510308358014917068417177424910477311456104318723623789253914116632719073975732183079215933609824923774642679066027297595025190224540993904991871572784896870816307644773500685335502224266921964429577146950839944441684210474808933052710502265814271594209506450076388041239354820593659999156122714899972549469834246661121046111868149038646923159605027076532698297252801023700073868448180123396040786288910624959570846923406202502898352053589536227764496632297695691606796458415630245847550302567795702707191850864142990590332758395189879506729111487432215479585369601387161261823933901152842877983049621648150410113947931903364155018659049510282424691024360669059978643607757572541186987863810495744927939085716286661254910696752254039133143328934925854495004690202921420372985647103584657175857502226415560755088849149189305489666350644499845138780003640081016543152913186378483749650897178934374452054333801163786854601842559642017322093549580105461022171727542490059312313989027714256698095311740151925680454246258859095898334023040879010893643014704781595156216780083184920271906354917171261795194291369970757081262120835242916183460972618264194698154832925695366833423602024538762203524580647156531105125475164250056214005304722200253568576129999114777698734860129381605249560740372469901071879132932314906161971258846593571337792309547929455639563724550048695901698059987218696402510058421413386034066572988919720973307831224804295229152838838503845637555310644139333384187902846763274271121962529612945575276250102261422724051509433814615227185303933826452909226574344499856708658817788773830641980987929412148151436941178629734097597654999666830860642578970469749870386397155138106021754095138457695442107290878671030300459312837275006688819724970062294888058652527918638154750609095105699378065211594959574791007914208605876682419400444968767643481850093926049775825145253418973388141370066391144719994523200359150550301018558693293212923425633945942807622031625566054998475476389538219055562578897868150725923822672255239733871231856371392146427665793477926421576072039604165516758828119778234083514331717921058371233323603198914878887714871621707513247141256109054418171191677653883356771674549188900345329436488857730577562115135130518900965701988744115128779435150063718671119429381999824784432179908263234329667017418427658288706276051469506603059642156589969299971367601902536257444446608201878933880261832730926702842161381736867942335326531485261110684666244879027784261783545982131550277399127301370004854397191417971592343137180338656755821499013904428941843759026283956092267534901475622489689945675355227753445752340495220058808176984990044058713595115656162598488347906058201803274612956120133363935632256726539025185936209706962708055142190420164670638401094386956368156926969264275050896934593650362638137792399832326994083504365815629144549334863144192624878359868581273743270601699057846771593726093173753947501837771958623329864901912744421707402551206456463979846516676697793419380547843351971924553578409544904819796344594727305222821620592678678779632281627641293695221209016280562452594393019967279898268296498384278920203864210795384958775166563848884846401707690526702577870580348317333711710916081611709655551435903958100382632434682664801513065955876691344805922008213706767479159345347081992520938917409359212318142317043638493438191526893474603428181898643340165680251279176716852235434901131669797372064654635862800474506128112023362336676958056487731246460480429216359731051596318528251916894706236373340000345177639027636952697998336191937454283488750532911452245935420678961229211426479434319964234885610971076768101541761282131588710699345681366720311270805372579461385354751991889784326295336141926892687589954216663043797807284812460116028080465669585699243031639987886605145304969008752568134296193640280192364166377793208418322214726983842179420689612571968963364839210662029397247148675862092415627931149476974745951404881752099075371105004077106294381548797727960906279901894612150772076226816403406615131934135586204719147421003650066096182346296742081302089475618006362175893874129926292277216661636267506790356836787153239739659722251547186957342997232520506165972291140472972879336277598134873403186109125469081204849615047814419510360879889791980511116289635652309435655186416008760719289645680372409564969967433813216050059487760732690938887359872481193918997877207383720443218907314748963414937004503730073403571258292565594539685597359731760609441059694638537568143855461864948392597536963440956345469560372458724211368012546605731564540703847029765696013876438778422320456866032812538304726855268987664432805781750662952335849145304761408493329840728835551891864906435326904930604422006179194382082433980641817124400569641783300753314294126984978352623154162837013497408441837860796662103666524939381313548611662200701126651874407314293907472556406348056207931431491342220129382444027903428195499613017893012009637719216431567151806276585034546325755780112821506899389562223825334339228453285027382935838657521198207633188705529166455049255870768285544149759476058482260098342693463911637624334233278033843351817263119361751314706823356532051578301880568131091053100598691892536827196108912029056219820929478432432100267229110937990586516945650838891030285565548117906867446684513869650551387055634736797300587269542090146801842094446183977492498644807431918954141014152427064049123866382862474300805032179423638628081546555635980496423991812641703735048179654789000515203778318885760599057530582785161140321864709652106463160205573740824847941045320121434550857574790519417068536518742195253102427268001244457505956299945526945931226380365869503074896800534363511375403634514926024783017291085838364130021828115763566098183385772775414042230600342127321026420169988353946610738000656618913603449824239380839022932423013966008971631455288199098713950964538054791505370095419873590723776559132873768962948033180510884426390305085252014570603723666741416442686043358733437998201567772196089461162982323511459431338506781450803824228762745128988818279971371430855352577802828131998774353428384571966937926281765825054912267938393009591167954343696622294865260961848948302325855172198743465839983181406721120474422078134271400897719025597609570154597131976566312666232374168359400778806312544766283270482448642446281698536636132674642573569419992238619585597350820857573969019611166175558083571738111375817734627392600614886350733726530077735592749307218850291146499421606686417590063020941190060653937284504107146349087399925582854569330241029907262359879326044229454916728342551945893606074724750320893394363161401319554356542946800165908623686106016357751868560197024521154130127221334878991465060021534693664618642957257316573573710712046077884473888788481909607691994444803169876926517732447764622970483312765345079780206751274403449061958684462041200282535827998678296021738884911777657986817558153858432719626002980352866505529956340717239550203828028688654239940532654030321792390127149687450932095916480335931756878195380641516889435608281824314139804044518209129493857867201642665955789867380428447920984953334071967733304979854404128083418438069969007746332007627515182000692157754188248512907790374101288513618197877705032569284779528063829778124996164790935915056468296481500902478645664460645816217560132172796154372473702687478500054034282645163511209094045891880972173221608578075323010162073813162655178080997166985669613479363125323377594032743087400085618989532645868207204429678754837127553651406071001663161819137058937291701914881174645499366862256651194418404883040909885953696198778349672523980835185018391973790830669683886193145735733097605842831751085446946507937652475476427970620429682131478897824472162921825760712257446757072665931116075425077038539816622861717380979117582584670417418283620829392901419161518730592937458447365563982041040341985320044435492961168843737268657319924370079806721917337124842873877365720422763355518540158158482631893978842709290679037700428717137025559067167803374674100870499257767135079140278473891358586080284699598944525207714708581807173628360620439949348557019782750162282780197603327723307742619981929376581296714873039088348074209463922502139778011924434197539271275489035987338873297741551437665569689985232834825547058906445092745405247055210385067828671714813455638828504252669518374959881846644829601556360100815640440668642849207389871030264053526912404837766207662328225463590317223699810098868296870794081356475801991513893006462721279640353238950079874783871918087609855163907618833942961613012537010232999545201589899944481303461062561650108711747449382721584171972962204374179113932317554250602774715040001297189302154576524380319321516191484310946432245527670009907466933808297705748210879615833762766289160539269871533073373283945557657822490109933778944424926343041194305513191449590876776687916413589843576409085920035416700947778746522691352790816615527328203896583614461845458987720465293461007461493600886716553121067170755972405857682483589774169438224593207045302946288487280836898512221420839230108340642678168953088192818661399005093490945932826138676138091758124273443276312121793179319320347113849302456469532101450738627450087095375801068671239254481804657323331437913951439083494078994524608483026022366536706760208126789853630188267883799814076508849801008351642635220792383325658930644924790498954715596392505397028675239957364119576266496270551199238168338221775428095518120337770430340616772729808580890776254582125220585752442187659179704150055958658456487915650104150330896972482206317742818737653098107012942812313195682337741371590857670283877945269152779790773586334168462858283061633683011290796330281820997390804022800480643244406146912969077910785162443250086231087739769428533898127403727973743751980491197157301204893280403889835480088050372417411591484895149776449932603111622333705495867919200247325865660441276614352393396770793838364016032622260090881430779394825838639629642232829346664183561359056161998371379428942972327731263104751101855759064340819075391517616878297270935396095478823781029084789295615766490505877681536916543812851037786457850382528053288717569361849298658256660330731920824373937075983788336239308368678290050083229077063318805597998004261646316575936544961301228175282877288107163526730133247887805744034076115503531381238608194194145762066799714723780871226850435879216210403293783547287878518026317684705505234007479340897638186528046406524890430561792492926488584134694075089052408056252193877305130186111360859652900336624220429621957451549692650270134771280061483100413615052624845889571570099345409064095676933379686157690523816505670257894841293006078189472217354454874806694458540320401375205411991421741760734191422764123190863052744764963053220605013138061843419656575924998780403438796613551806060339902221160579634087084823954293691379670567374244576214840174972383259450501481591736624299944837273532125456219398482070487199386068625696377473151057138858179820484521610413671599847736120222628212912037235335457991645222190471627402129363230364836172996585428431198408994708285613324008130635991986849401876653730278301625046119194982260329902858214370596770509031189031669536319849656407703160662622626905756226473865549216137075053570420421739085425229368227384659933926765300011823901373770355054716241937779137795887232320692423461086133370041457846496768296262978861797285691349158795187924039776038126425158886819403014054713655545630926807921304400360824130845789814935833623817215311484400146731035173942578486008999472985029954238263426687488883350950138877577216049983658852249076343184750503471488122272838646811856368037424435320486936411456899524512033500442499403843775289131947608171822666784012512727855766190406931395982055862549112405933384434697772266741807736289377040786695361940801781391890191118843867352878706117187581071468172865399271472711660395150716090342328234103661599877641259874611606427576798732389938049456982841100430626423351636101032650778131547084206194584621201729239798858601307807016132305964461118226668554642562571017768602017961392740672723612635308497652717632393270251958253760794937740294877274436891349706155152412290672309106704407055777999088481966430177857835087978404988407771118531057869281316057500286298643581579984267079422504861158917804791745498883058515327280477354229878640199305138059374705791228662926608487131055152189910744449000933365176718405163467772713161561079877406445087889141679010502268345264940962946267479235123144872439419896592991764595802408482387666022187473678287178285503696104112033915595239967971874418115314277824940946715403686443971840238637137539452576993391054860545711681961423900853196852021997473458100001817764000292178558981091310624698940924895713160275366382979407402399510405157070430054159270081325908480023976385045709278281465177020749550757988875247460413728160377417555929738470013325567195059679276165129736272773485112084954977193801462945523472863885981860350966696438392650431631149860874243784904559923092912966801719361349895761673631565508904638169039854584516660491014078942346658956392662097460906158115288416082412724914439375381283511171535760394271846885382679328828500390668362859618218437522528724804786978205215402991619294397906056758148926208361694384534769056655616224733828716938867446776993778909897238340797426760834189594526788872471502483038046302076178267113589956382681089898566132769378956583612626838554233930504864954106841802757156671601913953212415309123294014535310831514125980916093117736007708191668401365904421518993790123049483355975621220957233630874861973599560636170918965464175765354360267372421547236357054429329293917966447675183380798481657728338838956020987930414974139832734507131056060753018052578006186595329065094093067156555550329887842292824550058719715426101365179157527689710994413456772056858855783872687821490474128259761067871895605665311454324766137788913912421503050652938682044346346991625132380216754913439966802535772401269423346121483356311150762461472943118001590984671096590451538757575147213618009917874639173638252436513410885037015597119718824350790292104871816993468518229746804302308709579341327292656137387006754382095996959570138288374124868001068942422231574503969339290984665883286860684046655568802686460335534037067217714403396630403257159808287611499316065431704847798303946228741838519136384133865602169654795850552223183288765171228167562760624435410629454921231016222512057894597304797705223514313955385557388512028962962849497166694645358094373407803883021822470805555031424625467081641620535705160687441467852653088245813617464950950554039646592821836437198521859173337744659589807216798797007723202809219484128504891713149154953380791089444268456803971163435886666213834220704781898882302476260305744295039846364866607933193112073908513954094384547745295196882272678440091353897085666211345837581804665492908280319706867611760228267761246443726142172544169138113699730679790767313309226805383514239471716441687790466484141733106958004849188236144703137388524726317097903684968404390779688339021780568292280884493646803762255283236916832251673971927578181920610862644674099095463334977477708921267482510165029243688661548985697141769908517647448116216135141774355755998534531692540861004404246402469752023319029771757160449509761478596030966670520065975805130129452061703263538861760407442648876238710168384118734046630882888310636906390012426291669345695857517182344800185343845612310879651165944391755635272033284588166097186944665113791070436331399862281812859647635524051029568579709211869956142485754794378241649041428612773142412147193908430921312794164790908793226323646363737743462215579748689177099129507477936114308060718077842453401714507295398254245004701272763288976607218199250753640650172293242323744879752937704992571073343882680280520745851189948931542549449367836465320571813189892877979088838585215616482120193581449423417371167147220842578189285029518090788733887469630184376528839529050344096894379311974556253513917733951256343550607735097782566105590861673860430190451676054964994782801383699490247757999077798224695635323039490525954844983407578389599115562579170377831348628867115641242208510401180932254161011439931153356594832967925512181670386088555289618640329476237459556176973436625990826453474569794353237981530532327772273635171443977089762081870564368079497613272594219447000015246495467228047869350552662848314979844022019260931760968377943949547567094597976221657696805367057255550009832733462091518918759900186366746046559867425084282017038650506850839482691817340824538560902783555831107422364803014636881149965998627756963314680400499708969465162551225758305328999350527974456657267998509240878560435214396825122339122684763331250074459562391207014805209685134054412507561017954026804505642866513648010573083042810270215378603995311942931341068120008991988673252990257768394060318065026325580501231514413894766914477334953374244488412761166951252829962274856425155986317400514059946252278641939145207193301081356467732712114854337586648223852522027232361716092286511332506966593750243761951763212262788317080330451487194377090724102584608538692475937613005953222083538485965470724596281993225103045772768600067384454889456599605066076290764865357401626895747892037058613513058579096588427046428944800453420035726279009156646327196047371013242417242847259285503099300976915455449101082788905733387156236160684866780029376389337357383365085292341449506323610178871926322818813257345523558313482127323928392779180215376400918107010420722856848911390291262200542802615714281426682622121271923227315758020307545192378279105436214488305382634063475904376068665208671947670625889218180357323729912546553717277184318234293753991971611749609287874474137028179578019079318668278405815008415873532919760109014418624938281638861867238265917945575730352575613467826242309949328363924679488922679495572761306492641110419033771188949038841447631801528201303501042763235347381421709092835719048262791852995514953938700748266515568257777972005002788007601125372963888411983602608655511609528572086168869305855906256453009045568326900352273548124643329678488037135744228849419406309534493549152376427607554985976142333507396120327478879403444596269364609668434227352090405184120424143600091213908739953790185773807911886091380869680737293462570485776028578021702252524368021649525315302839207313997517124248051311752303385136656061166613381844313155520668392236620763796960390275947305832219003460433264749167606870634982305358914403711770740083709296266923955280855499677725199081109635317325573225511336344668765936697486159020207618498222347080079798997346830489138511096758888243778483044804071191457341945744346481319491165832217519886559618743747239664588479539599815086676331058193356039451046515819909117853474720804079254584846026655335389509670861356729566571163227671503393748023991535603720005161942025616701447756332768449738642932424206723956365901268607103468904819933299275296698242007327129673480073789763251472712863500867824371768274526903197872471921869824379931884896333839455541766041790121370348489180079837854847866327454984993939569586525207965685296818177826991173946566506551055278142825481845534142233214860201949228342260422736547271819992099294992422330538332920107163119027001821479744546860712533048310885377814925431548716739732946774737659077850957217140793274091759447491260341798998173602483702958218139338829448794547014069829864677444145503452011391304029838287849382492535899567027557018747953551586227853308250922347035957276598734879714830733946079207606980153717970056101728105329816669091501031969402287142193272633141007803992424322158252089159561608605639191921352646713611777640729856743448113383618605443464863468815763177831991177139268099939074379747791475714949455311030838514735210658291104415463879312634432601309430657911104744313313876435893929460869852067610219389707100931520825060267381234194547933283119042784699258227842886203546372660415028536284047540204372108820025452061496146296022372363526745578982720324061940138650822887246060815538550630482348923025970671738216051947300142912041043849388699191794131426065941216491792360559180816484840462941440433312468507685526201309009821199898666805932300485892079934717471151039236889318175128746499481781251268604069566166163122777963500010493266721024321592394431405857560770655865474796572262785802381706465710221598530494659223946053493567282507914469512715497228324120527588230335435300761176612640981508525061910078823050950632952039388930036570191766964795361457351619099031585392569868232898930593524693648100066901398145322315242332168333147774127054553371424257583090643164776251157001710838210930994804512487289937445958225183304305982154389506991891068816444919560604062221828351417762562120107012437974146584543731731750198519662248033886592950852636972964272062015973779161983171382375063856603589232556598531123823860613399356703257806846598772843720909637377784656995464333201761688859414695870053498386881670353391250877137583831532888197090955657044497831223664958599360065867883021528653733878282385701835091601910674704325231826281796271965581221386769017584996997756202070357367929295019032119253545155789054342429338326021476507776171116508171344352925993648225762582480880692095562543210816372631383272813044259857284414378493066721510361531350186876734234904587233820605474722506959419433150247950166013163437061657222338167164148287649720118242903296000346967467985164889151474071322264886753716386906499202257812953496169834211864334105233597805269942715397166680148377439741004452347474439674778748288794817543118727898013425623705832303754789606721339176854748386168232333022572252923393342521529300155093657649888189474391536905400833351612618991278910656851321546895355737184851000984064913437145788175158999615194625996541232079869937819006952443897872414467530764421528880313515108606385380935562236986513587480325468523787529599340776833969339188490862583576088823737739386354817332466440514064205256309257942664646551895340446439244763081335954401306980790102643647722060037364147675071912461840937179064638823279780292505552568165341484284042196213689452242247228236154948392547382018103332260572873428356598004558244462981905690559880330730767731829155220119453691604638698783740227520402518435296061476303208777067534132156640665015599328207888992983086304691577572395129850761847025077388853622744460897781018632351439583935898134563235112692900798486524773188790156904041112931063712962918971287666777622432925365929028386845690851571742384082512019578000188722420368634232724173442736463806749337872126168142107681410979566650870191068956572426190114123079773221026443219086618897022152732955420216666009304142934332664009933881712373963290075880591610137614905410848888315140578151834184592736207844615154481130709774775506200427403043812546477361914147532276090096421807174102696164047291567044437375508217670426814209914478141862688938251787192990550464799644408358544188746385966378816931638507699294618196778920727767506484672321518338394472363634348548023829383075472945193178600506219773967989371983488042232416159250775980695372975777143536136428982607473117773326065863137724515702501513159058394960796319996583187789310324883601174615474604103252122851610880143346452752515350399051835654379756701403699006957986585069820237864339651283388546660754619994107208809255168820679701253857911491124670258938743604023049805093900505492915364621940347117093985348653490876046397724676168240678533812672794045425341248917184803862835703403550996881446981961052822133450543933151169124455179430298860091781508898046410869474887398134832243450417847152304873020442576484004679119624624346239052375136875851112318232336074912753382594019021323742536584472628504672347996893126377316196124623035056851627390655511337028169012618435382542734321973689245823282253840260599926357244693752035383492538360202085202342607222525202194948554195675129699143290402563077657803466135119890243354013687471708364396481858977839243764046507892576830918239289538906452140608808240152985105811835560523859600259113628462958985446386712497760261370723859471392403603728897310935915246288323369473607180235416504901571640909859922739165395990604473879097474596402738992973772647545650545141490863388602874908108713752497033150910297004333713222416283452070105624900858211014195626181050398732220740207680572857413198535914768527642531269095954836282493726344891647034272510050554001193866433645591579498692466000842617019574768477852891756439163925628545463848795703196714984235738029140295499683079547801125318731155710449249394873471891630933806498754533100039334666097957893776168273393776981488321464226210200151957154236128618548677734361677871919121490787148292677435760052975223196451757938963801379281678350679403649913993205871143497686413735343326690669913511394231690278065390233388315961293321142984192454200522224739384239555493268918434646482715372105504471952275488752218432978820046587542098356784386733616699669216882302939027466695787307887887034977022403442938618709968333435727677966406342278067837050769866423858129023145150618100721018253278920015892949702339931180567917306357912895484989250127876590525237032232533985603571801309630971866361073975436176560441089588574031270905075094952285866490199269186192882705377417321820323142999296986506820855116384808433796771608513447027460329623552065796586533616923537060871264629399778531838302699471381468827348746806917321768027580061931916859403051761317644313809238235069559018105758162697856212440968896677309508270774193291943897568370157021648791445307803792182067023103907117435877179635994765467323902763337377710895597190391374220234204816208082474009711875619730718080042658792741015667730679383950239337109559560941335182000612530996301171614186331342643941339570034170903640308431874331993371211564197546186042529645365132742913704045731053402721954059430465400519982558688717240181864558100476240948546005307452892320943773447578924880640548784392862732669178700836543795985716679650021059824236885997918323170152919040724637981890979888497639403009842284530589748669882311867051838198943773457907794419327822231922492260046114415536154379652202705544061870070010479272616086610681079984735812938447120891409920878409984359186348936136221397252576578219255507913878385667998048554876721892147695993259084011093957754919098793848229325862532772435618027130971679478151498600219476687857154816425138892379728439460765452986013103589070845797213199806004996900732533415277573324925274344665872336337788234314281514320986886720907030850833845633501661389035304934829437845823062941025638894352510512413175742109963676276275431341891972962693066852492799105091865073591411396788042518871737506760037685644259266686898056052747437627526074258636220814252210496165126263465838535088793496093100965068102395272645717707938864528581227408774474122196150259673790541485944209830431508476552303938310344328084385314148295731092058444994760824271827726902139447109877045911880132184439320692132654315384996440757997954888428690802659880525270075428855209514123898739734738892331867708514974493732974703428325724126792017253874928475982297821015584280022567835818411985548025801357224616083616524434611006616061863256209732195575188550372465324271118162184568306988392275657611415466343357597641401824138619236070552890266266507112407218920646768417105064989609953704286726914365701826172990068914679106826096008974833821787436886990843451407050565116408836145070572950060418422372667873260690929405154543133307443356046547018257030714373117795627391905187811901869865950440126082197122532270864241652731627130343370996232143023212921376748375628751810396238405467640706196149221725274172238212629480928771855056085517922389669639624422752448067171819201794491954848837126686970639500731906109284113973063805090297789331455866614066079615292393676300658044617891277173956584508286418196012345495197085733289022814069546338996613843055140704647674554112095041333129553361799925571857179010312658045899328178583170363361081828063599026302563639592630910265029557804073329785067296981517015913584061140016269180402541536334565699078496032187918199442786164271763514481909730115827872073166684732583908365613445772083948772970891458121859079072002649918746004942266538583741956322263339023101997320651122729854081505849393381105047251648200374359060085823716196864005948317828599882058120896922992705583262246269880416663444497142877790078747313771468795759688627676204283143460289134930255626605840311249115279745408925664146072013723200452963156072149472767692865529126264646730766865097436732354992713930780590941440348789828702087986924155988852395195001587688963395495056036076763288867222959079541147275627916102766037291037344609952463082562926529489726768243996039080990873527398678911462463144210933684860794670902944539534497814051218359962556265224937228103060369325843636161648599251598459292968905089559599912031345176435710311163343803806581139708784696579268074492904105752938043953233717746410924170781778286247638271104253257872094278891688674864411660882622458108747625997740948282917168062519301005416065388115170309986891919858443022902487355509709931590967546211677965938115550468344179167285132982237875001350545206529593203832471817931188944561525936236967573841877124155001872469540694241791739277814840067794831347276851536380368403445129716304418994344190523231088998191296085977202851533842059194418369129391913144302494780747007263367035794654613482779085530751081186183909194773256723978771328329839851593041176279516559808423758004475636687774425418388265257044629284359052198492130233515361495192155211211733110204550516575315857986110538379816672745493623068021415790989364748569096653632027455156644943410650157878263440675087998005414053727002884423882083916553260157297916451986449030460054983257520007047961671357658734388464593056662956492713153188290268244281963168005873927817736989558243379337672547325610018072132835387832405132264952985370536217229765527127830297882478263628955673287607801463948519179116071412880568814457093082079803021310990985758985518246006371114855675170369264381518022073071032699783918448995558600747505103716970967660708530616771744721840304321589908310015093321971743948477352732167276859074057485055998463238293722543793866590659163501814102007646422695668417324295015028045930474718449047631328406456316071525271421230616253639290454397967547815853534541316021424508286676438251137352444677501133333286522967027923156821155267262243389518999004727906198127805360339795157427242066539026852613848502573378407140547996055237743814216422911944777267608574120878182146762607286113827771783888117251888722760437422539079443280141708342597142252735058675445402190403724056427297590652151444736604927106648994973194951043075928030056127716205219889473581565871990303300811080127039745287281760789964219542055375940943535371873149752982883614550838495443481834378481534414230686514228927529635968907924433652242811591303956918485708308727599779633787387716336999142508080377692338665459482317652338063965855925748732106755839607045039382001889045950868332325547588109175677057143204553257721841798971741307265777010483290031934866023279377649985021787151272541131740399012607605539102398168326733458257049051930694081523069771792863864629816640193004514481675782572595535623884103757227159332980783869226950913652757950937117212772253258617692538659175043932820892363891286149020954440268443105729908562820277273887063426368673319121249527675422508999521363222748729271126871370011706506565961501257369866103256134839320579228198972658741376079236616837928268997547109530720627600444400524225778333889804562522754975698803985618792807848789792160285772119781693409720264577881876697108269962074594066495253707009455278336890597921112966578905455450262131286444097739927026771150707653138557581377835819307899322810518816068023700388040232562019269312674607564771982277293573920048796670526114368563398405662882184841567806547421045547597340827225353300096682692663431887514569118748708822469399412561247613782024844608410153875430011238614837579844947844388563136299700827047171746102673295560565439523833832164998087380591044424620694707383937706854079696936965712985493315766783784494405925726410345184762496702827427939444047357747264595491669728786176502278401611285191930038358701905699121501023841206074965025909399829924590442553887249601995834766872292552821776217481942092778729082240894218097580417723836212075078274203980821705914388302157842129785856177924779773698415718606926451291632322215856879261825055302100680443212725542731913969490131550679841587050887539647954942307477590028368308705383829112490761386119694415243320008353986197664229640979408905689276920981749756876551477197182706800106503611805085856342374865709916170011022297264794634608149415078353746925946410222548074136396894382857590569738441095851505266257353052494525385895064560469261050184117296314404926578405512638495075080377534944628335543688552200546798415884222043101688773351969407081164619968421722010322814189383495491596389215057594864168101906305770218765605797104431288909581433668317688237466446160195369228789453849965611559420033736622430837519446673359181671071440369518835345893589926833193747949347444803876988867424193412811828410247019062569230459432888995487847378043845643940724404727989332667250097562906039926114836683517343357311506822664171332003064544014433694189098391010350998680751676771629710951959080791276924574962856581799028454714882662322261019691207796907159383661258235800701705064881481604734210631229003017205343815036236681064799158726839840319317801056323046356066961311052557349134316776186352048668970403929920044795688973570442774370147643252874003315099287325877911620575784476223040744533947262291086194623561121674963372035469117718980278048654738090055118925682032709170876041745375502057395949563832582967376179085148933620237339735437718696888519337451930027201774012423149835834916469386906755493318445314778400873455003035782103148808952632750846364176563037495232469282952677167976102336419466303172644200948671718277031725606269834399586536463444352964434097643994662389328341417640355747621669554980030259731919797318263102843133141350831001853086552542061399741849019874829730705411165459915683741126491189858955176947120805899083451646296092285019993762642880743822747793625927045890317179604879561256459496791763533758397474933660916347563937114863321343843679170354430436028846459566144364470866825235244613589089863465714066693710040312451284926445946324206937241361788070734595877250406295890954005881087752069302316791908098876538359447364246443341993166175281805431539936573074209612317273507119718693494562470878080308233951958144857761437923493654296806213981158397057696365138351651988707426983440116132820111789493511048317472454563257693522445684438973085866982313621386596069322287325828999075213089014478765055276327244085781736401995121608349888413586542754492557958233305178239773028779244447360320299387664499302445863382847155173580568779170030361338565744775189034299963767541965274903377088233730665770434695386855753617258893443287222333187056730668500848787022268915423131710673095833814404484463629765951453007541228776193060491515351980007623192167283592671706588229049257541106467413269928301273934672616967002574836867546218303543374020348843165464274876251733791969390470958012713181289284743073618087216608180867374288624821816341595860659016726722656461513113576670055781246307581479586176385177056154799668540231205857092352579727386711895749576857589833674853388001692292579335510685279384703059528482660027909336014514644139053947515968337081415259679775552247803870080530547246771848216393064273972130719411285830000706700034034060337282519139940286219939020014585130027663885156126961236983880340461368927448069127557767137742577815416571848198235819465386090642412413940906781391774005962644131245826663832916272209345370875422310922255977595174597257130053571924712510577596929885570767537763729449690705667723963628133473771439401218657820636210624036133423461984786456974224234054789055452244528508496705728836153000850607343155739240712117861111340886536640241387383098377377350815104712975739345011332181124120195167693124770118695283309233206269447764256447949468623039221081612310135416769154052814057351993693277240246683946374113708457449555435220433343399920580975767263231131139123344125360469351542743971064735431635039859950109028145161024181580634523021654281375277979872777907985790098889446788128177729989583774399849599975691247626085040480981846266191815501338578355365365084598098361017924534788910633339336584138972030317003606845971708747016201804486866869287366062057291094728274885220809398653049629692109828280728690413349433819797802978640754009651524882788810263681664087577953554229825706286221382069010704927476812275369490242773466010698838523454177364129462150347206514752652038383790402326529161070756192374682214452810653357133000158697491247214290561045159588484739762899772955251112195698292447473118207934883331785371781511297384134792266011111196863533403879305092570890744745609780437893690294090807034301325421381419869534357346125526286304243983988484049736324866560346378348815798353672936837911428673389371220835399098063604491035936234949639961122642842616679355875105309024359033861530046437068105894513376327521400342636113926304870166827303009931220166250112348015775800324983427522869879714787398525782686341649546482791620527619341066822817658032259385243359942671177275688655917670851840065843340762248608167234834962832903746011762297630455000868185805627340444736909098495450658112503494055708976572050473678406468871936410271843858334515164360929957853515146612131587072650210640297990747378130719163741357140897141380905779065645817880910308357947899273689802127284169019459397538695157186580747830763451326224661846957123928572150390237306459220861218430844043099915564386483606858872451381647581398655851037318346372531965404729495041144761520700126702902135607464144733474803324740709942291498316191362254397792434939169899621643727946718076113004940594923023576629610383795906132738919414053903384842940881667193506394285724710466178152735894282763455384244698709858953167926136215427396387788846372192442942838983019159566063333513276115333805719624983976531664766783323553713804920223335351022989283251513916144681825659000056146703656488577678440210102497083654781480591849984322900931234228937923377665596932453367406338422424151362038478964464549860697332055775331024038599671804876017131307420523246168725514406350731156618100129310215895566190357616885455526684756096454414767424019905321848506545517655238103946119495514213959003310394450928562806935984466937125535146678978968467544047800862806843361220486727110582945756227169838455762914327258871939639026029816610090828779193578772663867814161407546948622642795757737257992259378677802508079038743569346048429042925490292615959812021144960824503306203793006559193756016459490181116197733052745117966448385630514593233545419640377824187701597007824804703924619805767908600540775468936814068744387440787053983841318178640183365353008044510882624177522144256616437968033638089874416582390302789635009005120534001398634888348535609124402377630598491247955932548480929650404823667538301109631336220592150650819003455169208339056661249941823570106094057555005809909489050428741723354912849099988364628074553481943620072518227060016712300738861093728219175240493422144431971102893050223767502107588757658971469064437182008287662870714386925824880117597847005511840956867926233802921471095850424747410519636342384032320807380951930544769774093860390670172371628675961382651396255489137069884910611201609785973281161450873904715129858780420171560298106991866720099253258996953615147354359436587616320070895307367583212266173849499091687739964617969926561585779768817459700176511964441177074585986997508544244437983266050174811720439226336925502415362690659540258271363108443500142268650025633626913269875276495108948991416108831741316440636394346544953639637982741485874696279486517058809986072807781080549177057168880753061934835669676760643387756067577935213616446524601530035870211218975712330640169491679164067641943133897492450838095439328684080496388196333313285852415882385021860007128439225581215079579007974174977739486084639232312451912567423777320794766715869439335230538661882952476470389889811532798769053364981034840734289052229353554535058110551630921676055715899636168721966376729223481659470758849887937855815863193283240439466298035904457632136042927319548245295642237212749580585352144736433683629938338360449682811444715832064834601933814149213186835011159971572377752111257793556704859971303184640919621078106487642814023764347710419180849371187600234752968912956859721755081429482110926435965863943541526062803801190831745527839763508921933118500514784318790805895126136694808607293621125261679371186992794630592922635530587534099045257370411291281187893734532883277528764354556705794950172208073269702017756056056299214609074471305458078516827973862864878556829121905038136855760994545360991103870263120142009216293080143969393594863832635964570493427279195135459781685593457952879515168324336564725708267602304407940700922412424724970443695723410650787598513361922777505194567732160830419287544248622328772913118670387140603330254006112008555581842599026694571628590433091727327197014017053464147904859033401599059481469028756005239964334043891586058195196170237286920295008312142846960974269266628353355898690480770998398450003948431073969682852654987150213371265238977164609095887982268468304956213718410804653415057092335368682132384538867984126337999118189101399688982542303805794449219475938003806108509905746764426554446347740946070787647326220091491136711893286169288457484439575211970016644158642044845964049244668117861197249652658329900708994356906922025331546960273098691873310254512332126194078278235945316517858240972577487743095566835369701714999571725124036137926351152148140093724195458150568715142273649885890829318945476778636636400524914972125274193578073904120677418016834866171964454377631720825620892599310220744674613415413051806148639037748833898997668198192587785853944601892437215052825917373189547525998080849027157113258847311654341314001641718569443964612643534990703232706379311123649184124669653783645050193338040318268955721563517511383929945975970903257988931811762706680517605672533740430173658171157761824383886552520165252288686221889716937605251063018109651267373565007687874689306458846137191682406193481432607779675597875372423868334992280161143049842557575971186546224310513170882180771165784749310222770635976703892271935148759158534157454096005755711332566261929925942009037747238429525490735849222340340528953855087700168830970945507572374122922423799730062721211201983334190585444191050841060972158961753833312527758891107391006455904607580551629549438497473328844172825854911559779973274753508726556358700315841154812241024076137986265811815028837654919774617053473678232561368427484676330203825984991315972263026955265566766996910100576034162632442548312122985984509773672287520753312807729491041713961879726758075223375470433498179780570257490491400353475022349798848412735353345835453838596127183932326196501926054771489229485906067867094223544529752595155669639371725603587107084463041236589537279246607621931594258125348003031253999959287330096410489569402436479373447755070980808427348963532016199028896453727909838189682575561999674313834206489789759991043477200175323536125925966139349030838684345493875714872984340205069170859827700562281756333208311842961988416737404592299612088331455539976140436909267114821012080012685158875701108388151800924215561396900200325266024523077408545886004767090761041508668455937233253939796127340863398121120886684177298061052496355764582835683466307566728295470097452351107483847726124406698502013105238053986934822376880415362626998823209610106288204929424953539528623250695760571173271409526986174886563147128455791168272957587172310460922978940122857705843315251704674695416000499049641578319381653791364828739504799780010837526141574768123101317752713838419463473646989423554901192716769991627576451113870770593894763258193822267680158493306182567602423958377867681292225982451552676857090637602785992081725561217448990838283881523127453439571701052345237697749268642014624842784906121437058916866409201217061015205532928596865507993948083575578133130781019682649592541035743909532672438975994811975861445245890017718484557724579743927242023704887683314799187475243522432086332419087106636428976559090674226416752590124379122263707523561112581177967332094118269936504706151793183199824874645791341957308840292171847632195180393594710244569935635227153548491473828803696361641035475001476230681155638899505226617576619382248365842829340011001782028118786679063868867270395135048761937104370786907431768097445575269975924109264177225858782733123532728795721001996489698598602746239004148361202613009818527238503206965904543860247932901706130158044159300431256234575424074584952690267074827964217771818408122956737957434411421235071346880118123802234792780937689262504089413041216780201641780697112107737258799045539692959389231801226377048389299619202335251591261754323359935906542983567346548985895181559597462335930052659273553948049458624150216524868010250417315277570265544466572241957413561200093261287715510283786562381003863393770766920443954615888071595718562393523709995543894689641491187458829009797226728070401151799072797184500770869059147800914802397837513454730035175744383987466411970922829427564202176038731552162394364044445954996457332661478349025574830649919612599731876471526323931793023044619456709944527472948129120942636574101538168491466264378548896697032550180951774161682714408978657251571793736436155020414443716970106727009792784837401756099845138131078670246486113403732373944598167311497650532306731678350756854002695590064272597500125589618052594888622787197330762323118544552460354638965571594837245848267332325354869181282158958099506263242143976463912456734138336312305912702540831819154102920116936488016625193880226059061843409754883699719365800772229515141592668808201375238993184719584156320295386647324449637186273939594855501597665932599617108963615373378107320670419183090338480095757510720794560391018163309089995450954288824825093525841779018763956861405895639142564425174975390050359438467640521435871773829804064381855173589905503506220060911744338452538113906760344568779095058607988578886518928269027184255783568925529174913026375092082100703443947156637476081359095075500224935192456402928729986689470630629470018626236881680786529603752155925403726622206776309055813058613187134038214176804640419899070367324397048997593348688505783423423989000396991593613082434500703028508409929759136239386722019313573675856637293199637770917934060559958846949016300250916321078483045709755400332221921878119017817790517678731175747198181100632331521335777582319364601317512032690438149222464124121496210511102673283612701796368317263828869157601234468375272625875794142609506691456424351068771114970080965716679251774851367696850076132060174615074324458490463596898861274184593002322445469680484732062539901660092140139232415567576567407275752747567463760071053217639983251582606700039128392069915849468789056630085745092301293315544291696352798365326740797318693518791953037342799405577921100578986468266494006596408018556904522853117127008414673583491591518546534722437253242946916867810455911284876804909964337481439171504823809243183490640027863929346903118598147381871367926049572687440790700911955600269222948390049392547302705200025810351671144917107091661646091727261559428105193138572383561745792186197675007270213599898526416838547915296514756892938423154698343751381531067765778335713689159866004358369117083796018923980123604501179701877736874536839025151194249545088006395341117368210052848847044220978098372344437605336232210182243744804081202744497827354565155180536869159603360416056629638866249794034923692002965487586427197586722549693155839927411660622720842659728218633951126623275978208890933856205736009566829658767013483634568783810225191275762800790991316595952749103316325058008623513863073293959106167597393899891598174829292761165153698614703482642794775800942082876158164565169697624125715943402941238132677104600323451628900551134162530272104186143742442286146320613821879735115598722415948943600443729948181076318952323845042930131786075768581722986886205091865839201629034727009960474201175407894738441429448493903549939510869427703817445861957806974417670015928511434170701516606387172719338484639226236286020252298161544154197574980369525771000345786067129393670024606620754885472027782097727248867240667126117541342282282991614973570880175167305246356322921537738274751901292636084441007929004614835082453220129637798567002615176212493874127635314577163188860619322449318649324642543195616446930048525644044184616406895921424850106130913682365475688377300093276483490156215905246644065743152151384768030477587578961039389410824291649229343003210819893090633743899140121056604406266276024575254937029253630230907870416517975573354718911355672299348088036149180755024322046553159167128343846601723600688408958651532173457504095533644786811698841313906515942206336036585426933168482514879933152003980046661447862487706686781553834944837200752124958793563105106741123128326230131025652839770897924013247974051528553449870457355258069234700661410163443718339318847198962508126677045349038507637330382189414333014601101504417210513895091147539882640726269638008835447080573015826422550345383652952287195788380170638531341748256997333641534549152658925435567019644595047737421392328528063822904287466186715690012886165152033627337334132510638384399317073018656349813103684219874478643524478956865510835703614836634269819798284616109916585846579408753182240741783561466615835202613353945924176359262003595546542779829931421972481930342789857041266573075309247779847668548828146708690333792844971343080763653516039175561603395645892181043718044390321805115386876282545644305527242724511057282321428931012639792768027175666091934270939341189846856854230645547002591196305499959618073423773069614936489111542033494869135304013265293727738989847956432526832220211343527546322228244558177595604110031932720452991083859991789531814821122074386086907011623193656675563358976934701647109760948777617983787752798452981117978946365524294265507582251160619419594455274958597997977315131240753301087090377995397992957830456041562126821864488762319453439980084402201976935408764279049042107074359651713933310668932503789109098139373214231282155790645226518362865888439669691820582884070885491120729719539336524397960829883093121373868900029403326231267952323670295233932608105092823087545484977421671391710679534329710602367387708704755512262506543746495123099508657137433027298407535712486007503202624854624435601204341919853142636166534631466393820472234823692680201506386366072554449668559921901445971795760089002854344976505465346670527652050260707428932796816372753485144389526921814973513178927069529827641385809888743624220949356994608115637970086798977049468905384378868823602054520589879536782699411170399664511910002186973381942648920929400130268807255440447573542383112959835616286536238479483114868220659485460623166169404350662612905000935725071265183262065710622846257065012344512708322588848766335763958626954433352478484759890374788432514644592938611047031103377231710335580991630216357675456831697948419201765605078065705895640807052824232781792331889507102030152708737337616054074896132601001243622459776763322644462284276430642787444148698612837379008482610583502351556774464659862829257012712593057874338205291042770308069365373058087309268713755075127187484481362846637461756182115940345511317744021358164823370944898653638041689410658493521581448884343281747011750718508999891955873804376641397790934302196103347379295628737273952678540626692332107343054889254721405092106113031460988055377042864235595549520822432168880999944531876597571251531683614847427005535786837850902186496952246872103430466973551891693443028648249422007181813912362603395331790676987395439493377648814209028720363930645372503038679946413734992762153850480268330238836789652773270234610271655790586581575424506704401071669119511481009733318404655235232425196027287058496115489971685055942630328277119781412044398806541057120410786644190535074847235786751798926352212994196677722214469747973633421754424402847842495251269643227922894160167023667122572761769041114260506072184274193434947287832143724015820581527145125352795584006843720060807755119376631113420229358638811107943480447540511672665278763983483188010989493673758115613793377703998696822690412360924422508746758310361156946994595978199849834438141616881108100165517681970827954125524239049532380938680552449587405648599516420878636254317040690603092694539616603929070498973145289812038549042397855235561769042572854166999371315681278372612567301959828233949827604444217865164834465934381086074469649021285166170963689929522715074942774210809900493075864624972920832613467545843989032334653310498008123077308376849179133372813133857664433448735999319220872675562369314688844546522335132459169854489311215012526478093875344566987322705678181814686325913353487359919047095217876946226474707231027588664477408169724276594583284714770394524678064145775439117422138668298734696349843683044883421422466595286809493628545707287320160628482402302224266497744887761293442373039824717116607761879867458407301825654520928167965572098613232055844630154592198217655188042525317028063697164963688272948094635373717472551624192117772700918366645625558879213098726156599969054871305582702358876045741339018227361213832026314921893909344127206710129516518179977231955646181433650364703851543131253940666417226766084603035990037529200156519365965209339085097503391354834672678288074720674784478064656964743853517896581548155757992820370743857578603356543551423979733500881704269690971510597855444353395373849777046812192063386936086685253750313454908798844816095569305216180226673869320622880053597613807105186592744930961697573270880196794390646848988264654295701326969515135379591963899138335608954212206226683341254189870022954550452707874144238881411763920822167926689492999136557290074644525090155372480120088194768329404595513169504711195953431704796217514055445628979424674601047354867075837938796442072040731624213903659237320078884458480788310015736254985280708202088798454104315156449176431293378520754293112761520053994851423998990406350767182568382688836685315580431673530302148947863599492498409647192045012271201363137449372598145701017526152026245304564976959585555383457609669091991315076147737611636812149769782800778480558014117466783612223460202945956411102788774725255606802001826023268506605205297440394326818788445108342437620044827171001560302752978584882208616835156531754101841228010725872850049407928437146541769106577800359409839263200462787544716184787815616079949623327957352283824289701673832555884375977277434119412479489602707808666774504069195871750200282408025849963296449468060625089581316971046934520322155407770535422485784774267459440087079608112971279382779966558509291796897300247115859754262456612978753678436507383954263849950801274724292646434851568870820033400688608265821761753090475390791369008082291511404070210825914095093532771567222550206614422009742996923253076497274345060957438506501621190049151585378332834774858618783110754058041533997880931668860409278256405975573653477432483458101078363666152192167338054195947640263043646576413389434762083148610100492983894422887393381753062932486423668606882131389402218839090448044683277166682592255612443762537149098066527858526265828023642122686082852761414074671290321063303789887526656014712371734915777431606202170573119959960612026122095134680661080696106342908479487446002447782429282395722456534391100416062474333610202769440578955195060756093642590995007730082948037125911452971358180906040464454878529481055263156135145755749492559340893451641289716777013812381749289736150517342099180749137825211216310758446897973350329573889542143379173195863207660905577629329337321013334154555725328389101614349518824330573326215376058653899903029940937331671264970825591706951648996029294171543539518088651353920450817337027814085002826627523286612850793941075237377098218202431760322325481466183932396000599659929088234861088362560750680284639005561395382641235854030959478548431983524345697855331453572933932090331201139577072538777461308429935704746994614622384248955651997038522853693313090215975094796064089443384362357080178226272964988602906981154364344332199385452511703449852139077776530036073703848922761259097806699738022482230532904178487554462282559706117141335008304149379825018469582060023361666667145499386522837489622557225858331756998969659849032450277549928638480256877280725291495243125922177405402053696389895638711195267155993042547812873413364522001648762457625672351545914703957365122489829437683188992910511008992755122757110764162508460922047021286075991108492085597778708110651167035601730755066809161290841716468949982634020589998666180134320503930463053034014201735574121990611841751068909005794527913950370748551305228733733130103210916444220477874463784073336020756064148243614265487313148127719881395168304444165944579890405084345900946610554320766608204234259097206292434977232147091649149282266564641421828713173278672169811579544307183555398197758839108211582011436959831651244302146243676026941554470377620305810076562794764464419860340472983518242389429451597388952454410448648430093154620508141166923748414542058541532282154871540911606087797749945675071471741941679012525550667034917447097114005644979631028140687270099995471918065777590521205349195284211948090715982145366245214637592867722727669718425747831647010268148373622845699204164527492914013051823902779356890031692302206166196170903971263691159464968616106700212149978509484389786122110548443248377896705192432331645259004933353571379433660873284488315231938288809135118714508969355624564331119908386541634919978422929275750614583814339374975914444240929831887906172355431073016691123817375739771061122449374569810645454083112470960830877694715443569517340792628059458175527125790927326661090392283511532865046717626825444749440584046148147933728565805704517242732634630705414296618125124272028993484986889229175593336114276101788723202609215046146162094431820346076486969206993062981774279818948573020297797381481321037069523411415612215905378074387252595661991664990486356510443163029669776830315816581447182361673135997525961230716077510978818444084261125259849144171213613282335002761227128401948853860885701817385587547268937455813725331188158339295747210423450053449866921442131012130569406542059367700519259781138060609409229082517390149957949228414700678493552070941100506006022408440495204592563673280793638537626405071571740110867493685079920353490336913592896730035650841529060021660542147720874035170754391342383986492654949746223577564455321173958525962411259720618608375369769772675757811282253633640070942656143384905946787497097162366779159233322671488953273006858425592899038218698141256173037283797099144036196740844821030613782992503700875764723113308638133663323693938380442318560739436163600603936002074399754076959879304514545045132509650964440923384847150547047866102851326337216720206639545050559903679513004958527839425250227231679995560467036769329398481559237927998911114094722639489036464153189532330772824855342122974247500835398955465031747257080324612271891152245757489628642264313041411314980585461610407062601592401658435645889657099423296479467485501990804431502671181033151430470298791833316569661570734159182425080384390221969427815108786237601196596634992622582970412615387866295701101249688666886675001006663881010713794305899325552021539699954400259689242917084373004018971604216908503283866084861927691554434103570912735546985729975479029448164291769710617166435559269651603321991652375696196360419708225519558358190285398858412467405903820074351366921008381399367964882958711749383073315523781199597650965209710618548758687498825527275632450005019468784170477696700220829118345158199288218503358039637546500748558283588062589633819497773514143258521186300174768499116621931884014187759458077518169909708780888027526966488492311684402515385299631528604236498427452236507233981432807997442518142721539508983664261020890882764529564916645632608002812119999772158304277537102549455406782241216762552044593340284169146993786574713688142701132474143644152176486129758301576907204364769124156465341754962999820664614049658371244664500912799542611415181669853990480712431460729113056274861972925279112224585928121481635615572514439582304513963840705256268703970063685788503981295879021521346456718578900557120852328841052944326096802424779135024531232894972057360363693527504894338652566662128920613911982179868541188208363896980074500530798827835731849523390315332173791151052280229747785577825867593922473072786190627885800408551412494637278656614549579216716025103048861525955389228800517030208724942060307412498966072783958996296649605022618164443323412069661308320181037269362982592023940803132066358726799729194419826173682899291127902402630590397787931792352802620272329298331093356691670083871438814489775763100463473506520065655104417777331682262364293071687550507634058155210269429883811810287605968956320554232739879894278403797832780206082589039689606390604617758585445736255406236619130765643028169399912274520482673907264153658931236860918069364556213957294566392448173032936220571100309547252806208409393980501606813173251022268314010099742716211117248462965018831335969772353702208180876371938023388205241804693201210481818858001210935663464108975084938524322447941888637808667244019728295484189176545805315902908322434297839700236745927031190555336253523453731685756696702961670617610156810281261958768879328906201566162593861149537403726975382816060747451548772913444376983331945647522741334311315795555587498994233400845145488183491076861943933251320832459677102945530870601969471082069637560360036337620288708287407076799564047632127778504503928393085268528223167195818752561197266658666775465763903344758618024140825470445927803604396092700058059541828009611022167270909809055591029110998361940145419201443490408456984257286678335703984368022158154033845669490203528573386341071200239839696537481475935213513310350867791279877812126200208935654105325690475649341835082973122662758941642602828624535304605407761393871597849735961490617524367285994890480829952525067736074008277844875012316657101313843665922673017426240735351192929283984518440916349181863219611285129177643965117289483795525880983651288686823100545554120494885406492047635022395872616467498135759238360417803594644393074437475267513157594698434702907991818351256593660520388917316046656251451618413714705588231387409167945410123949664678881408774083485419334918643595698080348397629311095301965175176691377551491122230036180666185733811712623303711099685352994048826839399268981587089550586040649746714017675140050516608885748699047827984207469828906017355424260139377267177106483284014663710925267218334563377562386668061304399337834089762747253193020481140982100966485824112218867561539441456634514233577025379806623151575961690829060531794318544007027380005947669010985727117904754799561011696636844015412570140102529600647282638974327217182014420370035900126247902290849028723522980571801267662441122287157143452020671504162148755936807581461462135506715054976908297999384755465689500797123555878769817860940722038774318357364807583039850998465707905385816056829136502713512764568117230432453306309740030265518842576063765383903139796457409379577632308486071866318328882115059810051732790724220864833953541556243593511186103277882020955247127038340009072063944411796587232044339352770829888591837110673990117976863599250787953285240736687935428085630022274665494316659108736709361345769044348954900865299261159683104933416126265175380803874059554225811122711820184627806676313622869151316648114698024685878491891541062949236727514564893636062941564835355993791897304065206947657749696323182661294116887822409750114079285288014489472649807000523692782740316903878131372373306156023553245866100855816797890105255137115628933130095875408752036038814766714018847633393125268037770280768707192518914007543549807208614639902718773002864321678431899631593756634508300126535121924596403337331667837509204638949471224493967614210764211854949595919864965859982023131587249353213213865913061739494229227292506185304448934416073492298180954886505198249248491833969760072168970269107899229000123186608434244076921346672863914012425212233044910428977847597990406376598481097073996631719927733699319658950747886590338524729938629900348832008514058579781708715133733629202101210203623672569844822728843094844376648057113040755929602749678107211266063725632661172388021207787005466823885004274340725399362713804706095526533422078207375083195361353122144736014889921282871799005875166786770192385720117757653945977554768242063231095377375383437953780690229538883761846503762996914903003273125449970807232888339132781803095646428098679366851649213143270798243033697352808566456778132959205736301953067412389330299928903302495449671616078972749045762912460767581110987332858109091836378114005688658859981966587980762000680562104168844440834528832448067363370395948197248125239104880384870249725535200912960752036709752031057956932526627370556880131936958023945815361048366736395805821275613039758038655823543307078834796289637883568169355270757860233241973862728044156530444117012848867894833596439349615742912522007804094701758635526770000288387909785097070935087385631302416256167187783732594070640602888361007651136304748361855970007853066672997216911794841288121864790908978316742063771560660879471183105317906357965992993744220008271158827006788396654793427447663067957930343101221898337898110953942907665059886770784981659171261630646302863286492331242929385716211458467377468423334706975133947437412313079820992631954280368507989922790984396048777687951982228849091154203883765111158475083290214856734292809857349345298669367596088307071253040114824910979694229618407488336670095003297505216815457907198665217822350693567195919458795622655738588620977804749336344417681965752116007148581207364898473638873231162982957038783129072146875900207560059082238787845354777647825693562173299134786248806551053648992940253633333350953711573165039277817933225139554951034026903605808988808360587313166673475344284688761125906491042775245232920660359635003955267277840474340304185300922288690291521741822452459630672060798655492723700405671108016107729477785250426579915676333995031745224003360589056975917215580872090892565591681235726809604387200137533738917151599092828299280052793508968905550095179998948703055727459781695554072838945683116564910906453942813926751832627379504821919485182224377168565579587508485360023783275015802557308099497423844967606947521569114946119194474640128140514115310791866334211621599980722579084172297341128259164305064371361113207347408420547833983884373552894027264828529616792348382837188137051429457081239353186206107903966958177353752906066984909161719363149672738711893392374049085299487202627838499108450364896342598237654467436750745210469655436187753652537961590939646337006682128031278301698503204599675981609422946230458112200678212255147688589132342956892536294667264943690306854973335119562765640852658770914076503669952873200801549712479336473347730849427896808062685726790880402969675149258830520886254492944882744204868188277056837029831905034447831061370574648388238688347884683360917145759103620490843668848173176653958159925919552117122563463706565720595347176208633260763489545283333922902174437930080175398221457918142924931197622372771521117619517743124811398731724771343206066974246515571561931116130397802835487209637930858202048471241868754857843795532437384115265857056569298230159736010746739765989076779085600987980697244879107017441684279871469678164311923247308889606770843204898175847307270291382105030572670691826817728975949362699620754018671920162315207692124540610227778393346879299469940599861794879962878370792039635404234553102609342396991336777240168150026515445345639075683447289076264210771495238484448430313952340425129796062797373790645784463233383077938123661689899043919585908794182766348291861890818860552368042340197847728943500844051817869628831534151260152971585260831504575842526045647349365478606475384523315430098102177157961054283624990499057028590625085217274527744433432502574842764747984838677177485755075913864447417276397846215069933758379050677974193360470464149589795277529383036202448909381851838093387613922075568987866429666715548741790881309189006286174085132594326074641602168640913438789853308479362937539597555928958851694690874600864455015769632292210811008443085002954819199884210039365276271134791131868100484287433434732343596637338706620641074819659680146295535201351785734518244667097453645536681962621661287290542416897141726427802620661364655646869636427096666933909815913555399167585116471939483023923584605380521505916235478188277098367621176741050254784178402316891230097405363926297396313970794073658282934323076340352637854925235532968576858905152897661549217473334243534151072198929422787198403204034588222803158630496338342845653661608181034047835999214211942755333349939311514855069340901406382557893674877365756184197105566164223770504721543659666139615799135021473928413901462631973505783407667593347696355684598811742792969152542002453493209237385015417330601033196004761026873475143858903917585635534012934795789265111081427196474316481423965233479345221406702204967310985716038087414727456938404413104036671970777489890867890540287921518435336410034754487395297691510804403439935804278967335270605105475864551900566544938977717811066528797272702473943541265757768808390812813658557802503235775368415711982811189691070791374091497258062936589433302149179428315851029805266357211090295058560200717581001929673907540746987987620282886868718571672339232996213407406939204979378321343759774266058756284860174513863228421254874613183044788247829244235008839594970921351835089030648748053162034492896860654844312663232331701435371952088529952247515319410223083383828587969832338296622832874260517812634435018419619399238824037102508607008329558388636315085855544650075122429333858405411728073187470723519354225368736990768641774577956848372643917049095809996041790982572907143647686614879375139620566434194426184385833968287094387128772609248670275638667680331165647708333538402558692399834262395658726496840445539876800971350111180374014556957202793767116788145408760589160469178008808943059582017687475007375670558672033474021444168329950726619911152413473615218057515666389960572861887582216945054964458016874281522277634696195230083441034424916599646158358223029187361078540577934648266196168734223958420901568462076723989334469404458171351782482950651612753854212893555525046887162266457061290324156612995596593147046760982170233214214098640160863501203881104551047105942669061354370009170576358944511843243882570016936048593292725136487566218797617145320696517210314847672137495432365107278685780406183818880846293452465141605380486684714746645572796212715109660258202549934271643750526598131868352770054210629690485175288412839748443903499454408127778412216559787680589244569933647152312483361489625753029188305999220439604276204961447068205364140100116879469696298665108894139390018284926398795999397171387311937639899249289003771678205597924345543067111903638102825919141268825518418678329415947529124172196318393496611062542327561515881129881688632488365502096919991375405465134059607527960134876920584233708899572772348670056061692689340785116943609195128735093872595237869087168364418103417212471090175725966113977748313240495164176939612063300390242868130705028565361801657655446861782814001641060785229010808837737505832288841978447004757319937227311650683452849326794905275279696887844973651238767678754804918830975481326498079214092972698587410557733365851599265753061099958944695501799225569664049128056580250263650226321353864250655346600364993495898803849425704097819174547000594199622042607653370961190153390500834263001929897010633074603516715633144335257334943767981204566418230575193700774888455825179017489347258591417872740763125683384510710007867341449160372229899176013194128697385422453935334326853304995958612826608118595856741261412018018580994856117810166844455134085298193241434261479633428159197709288760698769994566163677920302218902643002432057838742965716246676309011130343494128668856702539427007568550851705010227427950413731894818541065512942804863423796697489068079457582038874541362773040301951322683041657813115615045676501245754522998913883011754007434345416324664184064000661807792246902804184438223066756285337029293700749787250378641407860590447164888330274172981392200050395860997885242800997980307852193514297123967336011881471325771820191501031065156320339504943406616103488481320854178560588559628217520063132040134055205218920633576637957439772965384219848043669816353585670300539502012488065055978989955453373032033923878226410762382053016242564561404494552001113416221822085951115546879372078003813401306802665230298497440821043351798938082394008317579241819961608490323559673490941483245741051694683377863761430489837051032521026789484348614228628518266649297475544447682098340720164964353278229993566319887410130551648957344845536064283152427018207968317549103033702989709682569863365492324902438083657217017117781594017692482506692060380061777608676443236311466259927577538628238405112321637247229378621778526077689244858984895503883232392662480970707274137672048323724811026444391524907356438015318090471260851403444705981157764120444531954286304299775672442763333215732086255198612128619220273943132182491807712563692182397518996453907672178511245007799605958861103772964250625292317933960438320074034575257661151391348909828734953977970674308388211376418188270665873921395706965723470599385876065538550459928410127691479628409400122810972330637924475486290203215463263524946789803084779326926734142963142580624052571204989442126576508968352072453283921875745103609686128523040877720602261121741112613255831103618224319115776475866368743673475191580894416749176903482172864004606328097673018469718388225633724123453510083874600005998684186914093708004802263061141533738992355958177467894829970352278464187551827599653774545410232219670692050368791613159588406792551278739342475875327431872148762609424639662203272189503102835802400632570146172438013193287489320213272093430579643452278070104981373036645838479365318065213895612939867544161526985502920410184123394029223444390206618648523959787301213971609319792607382573787764488344008194344393347781336562531602441070041770530501981626871952155340143001963969819162485844021355404733124561316356212767283856208669061425321068469057040540812532943050057740556385479747612409565250217518052997588396925559819434269223702538079424859080205585117916712861649073714050515923651990181464275291518085759763105573344550730411557498001171777721670777865602653744553513877766112785241390648138631813339802533655875341255435370557636812435146588821860490404880991404423930857085009901011331942181228936309481010529336290477695116593147724549891829604309664242811290752005073422504327642058086448910659312248651829366319455570984765755451344798896869418370243572106168017262000101426702548329977533285967934963600453972580889171697815104870776638444935409668964262028695147976320205488967734431451259156214534060746687038627973660352301318901885951529293947556555773293151575034047016160973130179278060207802150665618317206038173941920425737459263540368603080675488252718373185301925038851594291093825495704731980909198246996117082049249132324358159588779661010120909830982918793737058364371100832858175970266470620372088294515529581817116100601469986216999394048676008079256653097422619644543786390769789253715539376864746216212829415255825970143613470657659276461620889414685591517989885364770912072296349960400560470728512079116680797001894641536833063100297441015187414728821951595187958205593701981013039662520211334272737124666486325163014674702490095682749401262730730989998507302957004688787204059194723792819772027495080439963346784959392941081779525827117470441936536886363121172233003544233161376589458739650684635256282503185307750501084072238664077825891703787990862988325781855518448200691437960815255666518650537439192797412793731617338306800781008203901728083995104988286183483753094201236216275326288339570706990525787725278796080724388282148004773375753602698661115254818965697011608500897330928335582262659658053795812829449145796684500272471485521501477717831414143227307904062380212238965105279884282975780561331589217196657055066633254960050204695803922669866193020520026212211303901083725461477671485216523880904866915368875499315501753028261152010072256062982679666821709801740435105780946569080103337983685566719562629323791644121125109614837822203719680980983653742162229628693009120673497767406293761068918164916261934393217172281392276522800126599809929464921059272446982814590517172967265967798113656301184461062177462183544826315434447548409530223983532305720629133769405026037885341294620246508444888983726185933357220292486290409035102911999290351887039367044871681796132558970400054346864037034373697222944920303598108383053682286015466973966389855397332595945420597561321019142484522212984727705701722627469021940193135595107006323478311811128506054068614311678273060913186413683076409558913913849925192684525804796099899811291168563261509184750527167833585346042568425713083621154116299000431554776248496955729213577027254471785502954824823067307777903938387949065260760094046435405777346337720078844633260577297472946839329214824223430670528430559748583954275459240463248563958167228153420593891663457833249247456717488179259971036902294641976814645666378026215194624313337515882751615346222073248091276661227074261867970043993138095046963408453816237872486725483973163919936913697631929492043282945138282740607495461225557337257102204263325734551582507552102434354156448711157517891569772719858471537139413208995353761997219462729698311446646359059237551969670355521060334676586014945051723733909805197622747604076137742055672406016896100218644890890474477414094246624246140079684199722987801563350605382634104475135256407990521976618154711728508797594001380438954828024944971022248458847296084226195254681917409852969246757855560700400759920968862125052131009219022121725718200596447592809569380498257214750347259273047682917125363020717717209170013731205243540680845546757042390685660977230168474360211887809176346750657077707797735614935346492210800826698123545911867839510928334874196469494428314429947856600751997035936864610787351171612429527946067904645603216477855088904535163009676211758008495404853943565807746637224396415003285727773671982247686336119364958298167325142667291042440382637712693551832217445611609001918975523784789022492091493366909418784376197730928012556647510908980252610230145554159415848181780553760764703189250597015090762915095172851415734896645327469235745936767181146782346934975627774306775670666665769113741945193678108959120211128577848972135081429743073817470321152553367459171788739661241879607260359544816036767697442997385937631566973328226902029808923473857005218106031212148411201865286005351825311105119270632901839189429906999922842723363285135646584020302734450149559979204644512292667415940465295651337446819165284308084321905211735848740265218373667537558062970551870881055770300178797899288255280001873161685182179456011601135891800829572695877295957286959749886284016741474617342102387119178193577156119681914180007048574432914239276348247481312429241832518585814790465162474114115780346614438226061769587877675276969813944557716511836834483710744225836131547903945864494671361205008877254348894535342658605245976310619490852068713206049021034454963141305284619927642407516119103233284463733759029602478808928254980977002606299368675096294112894734239873507669248999120409473605580959020966801111733093810059121495571281108484317630672239327575557054456718022261083007609488442896901756306863410173791524611326874030661029912978268524316406224617352380692504582892153938289102945252416207920515821347224051228742991341035188914202153570101068439212625039063130982978881483882241773835051838441862931632792204134951252190888973419474500604939919681296478523911394527596553621855905777752381531701970761838068046561725184890958918248484609468048053742017692299002403847136500583681534722530170992814816691859639808049313507434397791529244763256508313765943874279392740923870010387631190029418480928654361223939850649947163539594437294182681023707912374173689855201284924776457560478842918565356589825759863762230348326456998361238817737800423071421048985410615248079136745903225655702429048416712696566908394012459406122930443162359655330387541248486632999925604491772365557807051537015934368343226373858701905234446269129868110671607481540158512406141981389032036817457712748886160428191832045032197736197934229368936878095097876208384332134258278284038879522797476498541588444993004788933008052035964209113256021613319293242936409962292114037859064631824039881037834310046676086177472027377805847948815545264594947441276040878394355086755831576062984676088421860544085272187193115175984056800963372900884681832120503133296891933467309022277635618141783997179321979238113726049574964978655220849706150983332597064385330686495552316764313229843687840237340036183904497153474322738398780261096448427407976727547586865487207727373652172211787334926858306630688312698683465215267555917438912620586870575945805494340503523410362269594427669490294019056706613468212554250134282980446630319213029772902095987830038498085943561124546494372636909934372792818443880112783080066815174132279912279084734713569519117856642603378351732643768425003856177876289118436502709060646473809351351256025083031529921569562914560855210398062291794149399783014085822357200929589491781425763801756322718484263519912063593184399669785072638608307471973654567870172358914086397776714702208064224196416530539970064864041321847615577551481466843871499527577879210738942911301695364902636871361858534155413561952008449622136781739970856410265589551707578460861779842185536805248468454750029153350321406907164547711240577121523599007572098308124536221069245351905973649100792420032277371722512592549218705972300987758784179925981945288734112646588294932606502567014333851660640269210822024133892304115547222957736424313675597769119492394847351850062089424997017493225941973534158451182025554842295948201359492015255467570584045683461107079851219904648938455617932007812940547442075970614785301421329172191985044086570421387493625243239859160032004970801526655359451817955113654830890658130238358309337144219122043285229412569536761783934630902019764558373880954968989545503367187485839479515598119199200045372546134735728750171344767209711888147244948959359441294241190974260036555091473633084859950677393698421591452412179979335373707819177171181409212971707733125744427697769751217732122999290663872362831964429759568269691830399847626188183214636110230380979054161653435125205289013947075346821413985695308630842344812943875024074134307473979529482502125040400352521552207331809180819247958927899883095967080171904528415108247927517332811397438505961153425095373578792745814875997761543637193689260919777191347078037013098349128920900058097147257686901946766435171512593105488209306920743088081787173276549595080498468272867587275720571917607775090140832867303559823907532311027924712078920431668188294931522410336529237776773141474593924831823707112268683670312721016219464823892695492439392486029801618830168459916728121495035030564305830982784531865991979970909691017444776060583604357928607006425479451427347220233217625680126619704910646724354664814903284805614511893926834757979004086143512707354358759114695331936560380959093641903634235775853138308332792984882264211593660095035083203447845556210050031000109784081113800524382609572474382087329713053255486769772830196313871577666326132616983508146636121762097957319344236989682623875717695216427024204733330002007306625753187688470888176984001255417993480902929755463961655317858659542667840298356869432353821750133036251266165136139766779514064615046398965573104376586089833536897542562294884748330817439567725559251416754691002670183034794261450221145814667985106753875919096314189876372031837949478591403248855328603085241969036519878333768754010037304043353761115022182245548889106038461964919979180732380215391711215784592227262061134025463319061627923540429408304305092121176998083829167786059362727491645843895007390589731336638297896104840356947554067628879483763535827965346849979907520737159420498736562114400733172403055921272995592357682415341648757689601571529145006439536595616806403755504776447059818641419058036428688784768602864445665408409402282028674941675303310924363432884167994221872822613486016993470931891748653828869810127656893215810201081125336939890563843099472290392063561663854490740463402833699569202758532352736260474325519656855498783760211535555321849219059971933800632054848899650237876907972827224340433510422859040251303724410564447640659619170587128860663667587154122442729265187004479022522468657582969156952910209653722258980667264648109482381171838315189836946974264664870658331032165286307487266832935604804377321201873590441579060709751710198943903704817618839440178457560754592330932042943227418224897267493309548685851105933239285730115313959125637630495677672767141332304230955978019115885272930131118558939037206606497058699417250859465505708817868428884207573035792026902851444529939527465111308701871563271789559273734197004078203230954737324821151370780101373586185228932788587797706905193990369698666645875179744204569997413143043175435877942769961755714643807250419892993800124357578497419648448497247126970585445011994491942597097018596294066915617759738142068778817389439469784851321934873113264221177423872879478604633907677789849221487621380045948031900766970296525934073982951549351938550275733220914851048590704104408422166636892087482382530662655150633802791523271297359052386304812322728014904603090513840704986822172472650425144356158281887635612440869119562758529818865928145297672829462678163823118851651160385139358499598469284983508046452402248173942791139785663219926207778911855252183595224214932253486701869151243274400070617685716106617487065517132470192011933508413589424637765394098448747336860799974355530178258376384067511364980633404572582425056966169053665693091116655385626167436541350890126526700041257761248945128680299437197212799548436909592079103425235802949808852582764553075282910690855906563042680793682129669345871886883133354303558050736869126158113005698300883377706752092675633317137193296326043059182416729630053464782589220593419392689435612259394241329592636963152539579981911316024222051696441494693912398134724730306021185664822930236405865734997330149099071199594461975879700486914896715966400463197834674134579272892535613460496808487667217610754246114864050591702249328516520668532262061866666294997851384898105846347794935357434051130196599185141272949001797732524371752446218546937369597049281862994783608073208949996561524401774308760688864087971769076521942498324331480471812486860184432062217287002139034395661443995955553479004703592830625880233142555123448563468379398836612509666357703818533995754492913697371220039238386622809512428781330030435609405455524783405699125148991182883384356561265802340423386996113092127860231918543308088847966995541891954453539873261539224953425945307168364828664281884157998117432145871648664289850231451733037859611560283386807542764808553230112011891866472395167109496819518168169577591799125194935103866858657125114476042587176955762796546451643654927567364035610825580585833730826925046789468192713072148689933650942569995669773802984842246260894523698794708884764992910340182282213516406203477011218965391049012376694920171931584340855436953013957011334885200208679185681240000141123310096993467271572088910599450080298102015957590191466591676621250937886076799386016752997132557802372145970006451501584441725807982585222808513754730216449408616183888254144465813310533159297445158234907628650618485785109874027811965811974313774163072343923844879702827128881102289392506798613737206138797678509566285059995247613029634798925165641768986834577747990935906807800696576588577630623663093475421465380258252701639222711434326510010283305299750661482709993248528064633172513173600602603235072563864771494000785733221206170043439993352612515099976802123379152748164916553553415744715175564179709190452281018691869347024374407427805863279414242783460404652254106049082814253678022364048607556853930555287342122778051201093365892265477242411476175634463761955413103557323227621783702098709323338470963046252640660115496700356683637752773092878776621156378798161133703347051169822756916512580903031611132163284356105359311917113408786175756889788886876220532890044905582969157928917349331546767326606229524752589349451293755023083460482753290687330986192176824957726229028868663236577445356439008501089222652544431114478025265298763322899196463495302709814387612516013207766406140228707744342350323658106734447049672138057291404721654425875765589350695444354931082293561011381370689618519863950780017669195152793242422291764153114300704197619721018915872226147758156856487822706169424163316402721476313457320162233742316286909320070388632175280211908367524619045408911871379644191566705156652898554489154466062464906980065860122041665595443805279781733425287948387859165985477479184502360255920570261171170397083044703261902335330060730145141863748504689443659522832827900202997414227045195126480049746546954684855661227068143350010640170676782655467551935508923182066387250964172628609834434224854294903149880304408260257126261850280191852129117824739875831834249501316810388183110731992207411943295562767902218145090918941751953789153451164178048847218338587117026489694888737932981826291407878192568594351825949065534534465342053028002191003066814379847836617054186586433182022048195735873209058721219789416878253039529403941579463343343316252022370444226478255695615250364922621879303579136583430307576815620917582314449891706714778310826120336560517607048424556197867984486778251488840728887945215812989101822755014085687938761192444502459253125876415600507837376712228683491050442728755359648310018722775801522685903785932775917685210920506837584368243987045952639490340000211111888219799579921125979905134780679166533451324224445001803444204712694544875460482582013650806096353923406889359832759974963958722325576028482214418118635236207263925998115248848932631969862642790444802143181579102880230001299411809538834450492325675861977145802395616564168525955827625687405044034691492766849129177194849539492889153622539092058630133362652102284361868425376714883558008784651716399489552055720837254667393771288496481425083845843490487640787549051216969051034933115319618599415314948914163567212593457063756028213450559130370183093543043414531368388159693250980768318861120839121580729441390708273983020273379472316512189016997623091581071384028869687364276441607970903480904725706309143236438208571671563981106774628248763498743887650344967470624424906365095334993114897163894761081595318327547693374422469607657455191994154839103898896604404636798839870637673977169889859741086353302096920833853514881746483134413207851605803914860075692062101820590177424850200772589975093607114841557961654650290003237661426419670836038397636329513084733264057192333383496763657135583874679525160912211362876809296734827757289327227016868542998026122382977142722510552606935924079876257002079124809133848607955520521441730897361644119853931204718332446059846920596042886691162675078472920858433192615621492579751000170072959780212697128122618472832411817428318095187843330108301426470768689099792219392776401471856629586978833755382760733974018988413705063267978456969900029244446797141576733338119408760393967541281124495184763191469840627756946232419595284562501370291392663042446400015835298403820606959321852712808445346628933201785011354925522953479192233358063466639773909357251989303155645482698784627940855401154567340192444223672411152273486278176206432534231975424468656095681198155507249635603878905064445005188957939558723075241657576899887165571348335931159735534474292870533430338066139814807877084241447691208788361054403417664502222247933246214036032329005599873536439997706433726857283332151478981719567388606768389856274460311848213115464380819326644984529533078479486930277749460260003115719439881447410253540307934524627944034054679450767267717524280836748689497672573313928008675064868259569089387342922048279913669350494773067587966671194256077867959394275260909212493480709024548547021749670496617239852490768511369103541323424921988553954335302853224509808080981692265185519996796118833170574036627533331919571656453862231179905370417035846861117605988278254721095695691390657624642637482526953090636038267131168116004781931403435410019911810591106035873507566768909710708347690709608440553117091260877548327732342467788115630966982485415333007014637882412938519719862508113939026175052004702898460538649200660203811721908127992500881853471356859199133482620003537299512891592559513292455272860701628068628225741195200228814941466669588529141601456592882165858274415130244960029795429939511862661816519947454941868441871965813737548919649361176380157444431230033682970353038477978737315579652037322119683806037467589025801036263280908870497551563474575946187285118153543684540232583677691141839957802875907404121451083814380317279295059011989109687979561624887188005638620253315944116095758208084804822573453306457808946127014548368493811985602590199739765402132004428887691779312506144715746986542460233268868532825347969206044472955441678178056808369185362797373323476447614555608391011323606473502209886174756812892478348505934832276330778640073203504355546668048791404612777039951868998123721170682340210622983195833691296011024919559278544050935951034522818627096838809376192715790219511123210828799447744865199722336814481320295871686480423235472738757786062067281732129665549428296880550010490969088166592434927584705595991881718976534145976279003832655537023263538386070664292629409321277108852165853369707752675189160220162531302144508411685886334101610545849071150430844650431917466479866484004375732196855724616108118231567560657609570980068140627239921481699963047702325554312442996993470466420038990102163599019181502427042092355895739266189845695271467783110000486151415678717347600897263422733693001358318452494226259248440616983112978252791662297885102116801714717394186813615252657479654420266053097664699172081986721191560001341536407905146231335150122028501715300600065068437963174057692113093238507099546658885518834460509405489728318239983870851935419976833998614041164503487093947110892422917579055388350011563839047271825585626687318816481532279889638053433569325348220599854046756786364131126985030419978026394684571657972307561114245472268840133570453582002272745222389856890566374157298146791254402484835762259681831900997167228669981982528061754331862461523565861027979320005875009947433068571893359733965970357019135638662073833467971102909762455977819664425974261244939672173744256268017986647458202119265960879722458124530285014641852640111449377656708547386801010395205649285321210862516560191864998470177814352617174722337503215777351981229014133219914195687897092413492788900615024699024499919874093400103637839765210965116779849594845719311754891526110721074668215047326522019511786047226018127788678821497485215819977729287062060885552460885291255300643898268368565356520790525548271482721198383729881588180262828672945242866196238423127134349651597818623119260059238975786775065868349669012610127648663779373643442108219718117184994783477518510702882498019076425603219618781833509490439425852509717449556415818874138555995161514222600831459256007750247212538495919558926778752525529791629084764830750746944646648123491248358604231355855541143828143158364683662772920421317369316156535458441807626801262977688973334419100921451319601866249874127746254189638364404145814457105621046144651370746284087394499152808784378168303545903370643537448668232548218417490501645734856326953582467716634328307429781853276068009718176927049660141602136785862178379870198404355805463571683902985449529185153640727891365202734268044039952363964790033301949249662042599178961859907280055910951173125014393231594409167912826182254075206450357376057123715306684331836470507682511092900776260433222131734402987164740523686531111668540173740583580272026988391985906279856751547102158002470714660842439186290290335052571397360573304640036782284491829287850742510551081710480661046720292057205742094688874898578012771499494150034740560748376560112596555356442602513416643942312900327455543567517136087345982711798126240494333429453459869691906178933676640581176930051066375345812846859769179757328641259882069266305525519357690065447010720560223396325665768541105709162776497239902416168431127125652214958012631062890954902403637124857354939291499772285172480065502174228958864148907224330552865472886877337689856656423623505365235032500777769112046007763276938530406778921573206841006535917752392001624601128669803501112952103057390173615315674354101226318762359104717642584564647929009448890828738074286119220682488030533214882331108210582633752790115471296146354676833526651952296650352326913227817427608579300383889775202539188465053371161599091107577196846980024630623259462019999490132067749193266729493065186070834846363091835828717928225848906226143353982898420708758926256441988372256142428789658276848522356136137032647445005654489317770023562737330229750043027271174697607331313119987024864470799928005167657468380026977601001786269708142096469285277091769145177614588280617719250280690725745903686546649799095318906537238641018931120289066683762382137741313115148305019811852593504848589895929549195997235577125538251625460178875934983013438441652606502295289510179887949726855503529305791392295281044669652660422872331942746481513895073993369302389001499903146082761453454416313477246354354126897796189712356461408258777514884118100033317998748356447538795302858366062796520546261024880602717322757289310449942509919463926024609583347711814716515279896700750991857047286045859600615383890434960393423866014583839595204686705466841740035858117902875643158896492486707056386672920164358361511031204424047999116960246932197029270255396422007790789195067008271795205350081192434422531931137991724408839508393398157275697835833524101472046934473703592448617307178095013463234505195387442333688071803826212524286255144240127737211450668272220296212000973734717158638176922400020612597621106823203372945705582086671415203691975269424736188108009973869657377236472545149118723539197068196942565746567115200510709829400859378804253125327003781751497434060712929246263199936389530557488872111953275060091749090009818044353374265332432692560888697214697944623564668105407627030171600140982836051012912276875485883409287985454355956319394498642617693861495183140982534891215590105510692122562829919683177242622319700928788726728072060510274893860133917891010372285107918864300046426255146615537587839094702879343773639833078433113994944219616482058701804673513072787350957181690775470145096413265359862570385888037134591404511280171219922027109668237466311899529733445011797730161839864711190860065237495437904027158706589569062379728402202910353365989542446884739719447333453411244150147879095979341215730836641894603746009824115369411725505639102403319324085015746417208795873778584223061611597130499233626647509839484113698142307779373284519691697441727147695740599328470470959341734138631461974484100508971406459316469437420399411887523329129898102807335132636219562334414554132380066867697312146088230674372659786748780746913690753262718978083896405583722086381783306095349722162615401288450061378276845070012062706654428375408176176741393988747695925468737701350644140842077693022741339371332684360147080715714424677131624943209656562197974678035566946772254983601121984988498895914818063025526910936593034440709282026513710879615759945311328845127292706874561776370409801328012856397629644801916374385299346752547985336664286541639061067647421696319673703979412516969293130049417701953980431725915377170321981593222424362634680888175888636726761728875394972470788580712627580766111352266131720015310975047523726518641714882211484890603177944458867387620303207464261047916814685143954276832144362554554623960405920949856944179012918016836186816937756621352460218780947358511047190734741955319062967136179079061842826506400179606213249006784827478824431799577048559171112613344053443483626406147800623038099811804111728310258083894896848862068670799181174572917849638850619940360051815120651341239272568969975535301760487941072636421166939768626707338076765879751783474200751932756890695092761781959302205272761421614825708395778045561826799894267867920250094267764875825495668439005445827277864833418937420992916404813915185771841234609833131881768731256398882357795214241255361076174457721580155053111988153801694680234551156223962462098625310277136362618117432050375277418416449992662999885083533968821713471067342836145925057101802935531744592007796581987429141995117095040166964298486719373078807513178395458144701695185280670198025840407935289117415498739876749462337905605012355752000874890281802301691226819928050647092747260564860195023178916731689595260310134816392226857572450129738447549817149319137865960006198317415218707676574431353725724700599846446564170883868558154448415244837540148521744908291655644230006795111451836718697350799766386906546911448443845689658685827873092498889926093393106822007300682564155109825225444328096338888633808160274787405827750236842701142520161811052673949940826399656104989365659136710410218097217597098997715290460932167722516953958272401201924892855571380502319327232154110555843390285756220796750667883523806294840489790760634409892175397398425736591612851913232998497579040467157739531185555502437772480056341999941849417313140571013935513781044490431315888544628171657875261523084166428118714300209435592836213211175071330032397382168990276871259186122059471486519961705933953503474371956967870816745591423117366814416316091289509529866792518133082813990612665258738809154306641222107684188407786925716299978476686945618756535596760106826055676184025811928614121650729649057829848951216755987173795846411587826383291454786624410973962371912660706922446949482277324419599348141142319690339149190735980296810202050292304232536658605127754507431446122654205336557232535022303155589813796860035350613986184863006659972870491117705241977355455160174917724846374583367300806629959300924124363988026628304983787218130300571889408478344999243959755217026927766647373341122935107961650963735548186517635492714253955263064129401134409235647349547769696882239855540457316401590467956534308819907669739317239908050320010199697403890713261154808142768032287443592565535676622267318306388821616867370661349360109154536976477334523344448817227098655130195559412775481387091356416948473310235795235269267898819319441832417306404238988786888538584558021380572416373932413547059720298939210270933094632313769854647180606116839965612168288225722173028808478570030982607441898876288547154677604261765424591311766989245989366148640061706855542057521962761819801433633366495792500501794348956733092672749312116241419215113690688410719762413555451883910905035067252421467714561121721998840324293059969540508028273155924582645602704015738424903688833515320905705307292201323734442763129825216389712988245901258930383594437407218767215727869598306266292271397849857135613669554444527268409007179398706308596083947028549748764731185015702347261400477169244902930904527020651177617464499006252894093838127198344940855029351849165467933911915645023768448623913322381370534552401747420853877639169675926202547075625204463377041153455701997191545666952240438670690342723531194324708514950471318923090107536025111980793202386034043133298965108822836720942066709702390307933795611587458532043625324215240345048322315755588453546055441327054505719633840606863935931769882291634495565999457348967755069371683880074193392517429720016200772990863952871387899223536848488604950443980586963143188975232452477120887646958389625237449969994865658344402788360407311847424061874524397785774572865559679052935792574248370532268669303402650762114686526425157838581509023110589232280833668250118904137947367873170955327356336539580561398397495791976943835142062680695690870761287525985697254011771061772168488276259944937563366469602206340717394580776968878769310662198183149052565652437309402663335241029873991164750863639429110174529056437554759252278272661117543426592939016396805950810321655011122320782233283033967800782469195939938833234891259988611277740097571970554052832508690375761593516604813592504187455733771819244403205253670477235841451295387066016463004411092880433213021505126714955860607277569854580005138206326132361996209700750296875616444876684885575985175113416671899465190974297866309706616521496770111601678523205192969315442506141654850743296261882860294746505067673719818530547831494322298041029965844530767251881059850770746382818618202746614072980508666256958520305173376119231334508763908118099380774104084978589345622723044660527245944421882914759542036297046401132613821540791512866528888535084944479108769169181078889635837723655205406005403180527297126344958773975125087105973546732552259175472151311842070766179086357365572587799224194671413824510731780435891164474928041423380399791728891739893220207598195061308769640329221100877762234425181378200734725885551917941372422004356295264570066215627411463137467198237454271756889489564966377073409975498944195409425233437713748596214341411466298885140301662122252239206753723811070799651155682457367597741103749919554153738945018839192228485312295976541418748459476277352497660371237259226687057430511568713130538746131706059973288868870625850656713257459548531569062388466048281329288014126556424929123265076845765970084984882273075689670446427854635633231268917058321294037511304454291880451990291037053013521382663168021880335577951193439902168671266606196645653335049240399814609599245811277755681595702710213992021722894012453991438722782047799813770765999370333405440121591847838047882786981828362207658022982938904316800517627311981465844896254282454702376859491020765777374945003004471898937830253606086478286261926625205171778481174333459204577166530186823528511687842738767023523787110500886322659729213413752199189072294271315578060454138379035384818469692865193969422282692476738620972774761119156919221195121048227829933340567120042001020610173794701282918680289853439817676479835114244926382069148530390858553425325230663303474258907464320572189614881236136253730898562055532821930792839355526302468062777802995570321178880259043663233626612133244515465817687866694431885595663813476160705168069610505927239330620199522989983446354846280223544244612785048960016340614689711548739462226540374082950058249247640137503705764045404955042997937861110298613672841667941449069703129884552695367298913711923806078876426665257673542310030405949209249256038828792246392612972401564920660140774285543308579203898398650858595527952964496153814749512560171376543013971212380530650237568027162161189980075692564557391119619427847421377528474046886568259638355664745900614521830442826807292596373058397704748257214093972165782346527354714111958666786821786629235143518800595751927271084846186491895375669938248842889102971703423394939472998535356944167065575485579911564840770640125194049178129186624888057418468603358808633268508827689423228308781116614655048611641981055588830717306116016707045547540240170571467905209585679276167181521548839008010191604521177242703469622395820851523384226930082168967584135455980545343342857614329834982796896038387201250090107388812219178994005381073140998891912572264632193619719049435329966369062600389349078758050954311502808950608891123304720330873279487042388125008442304697575104993651670013677654348661822839790508632824252663972947442708763345546445538391496625283506708378239396118745881636261662150252312705179501927677006670614187905891450232133115312646340618021999466907818415677164040932434638867006660232001656347609799981123106544499379559515930087172470269249447379368961075025870867933334714114275644694580916363525083495157532847041788034585476314761481876449990584431318470539396389408125176484494743966706326810851503071493509256567866367484705771473431351410231097699308581739607789766439357121255008903092632448909524999519172249204784408213221341007874959338795106978747186055736904472156469389724168038940542389149952626194958069515127071443162819502820230741448425326928588775778762370674494091160291853276764229497535504349164624591246237569554465062433599492492818328933343200068383926543679140371902059239008452976048248985015463181781129818405799815079947062577695243691615291974959986813265215994001159959944577640514922535753718166119861427256234059200043214432309504182602535234290148952276747229865406885787084987356345381066690038701294024838008655782315308159703625224208811093821389848040779468215122894056006482614559009917421773595388661839498956300715999085970040800084476005528403279079373033760132061352881641522273012307469501711413478376349854268047400824070880666260384765097832119410286192696793439322343642382056300383787256032640652316414877647547862717199759048822966433782750048831010239367877653918740513329491137133754211987791658201653182010272111622635693696439547865926325525739745210343123816478286574486644913344522026989661732217660137234885833147160217301494975184493607566431659100737379496611039571385497290666149778387599135828047412819717152964692044065024318612056008169850543590187323702454151259773004973348378631788951942605322047193630971256829263104140384261615253206571158057360885695142425005682779299252424128611869745376805188971713436876065095715311079661087137137781267567395507484353735677088242282904756897997739126644473936896360914148396473829841653442256553193473787354650608526342167481190921829562174948388698941401339899498759625486835332707681659384941995380076790249722211911970987141285512655882245808000637714932603113666196875105391519321689957292068939549885336209767063249214872452115325614021677309141088484237298744864586616786923655436196444092428893572799217243632344474703233823478143455141614613709199726966297622360477557909050535552117821758138255670934511946941451676107980224528426475188028107817594087059666222043231803414605013334572575308669607172412070390417798739327852125246073495719067830856889970197713132606900828730094261486611226386895376770393809482413952159928850410026884028755053843812244346157346210988464814079294424766530719156596663303050738203720866510573205068565806598613794785863379462341403073341395393356285631789436944075886481522316417249192171755344289292125738651206778281136110987339406859904499082001751928201674852558055000149637059117607085126593467566189978379284889262190205660729178328699804385963274329107395227424923646573993791393163552264373361094707453923387539703886026420237604959311807122421101604128006179284024919282165876398822047066848270131967088474731453927599625777947743682827019747504705560010274528474583339451657932345961028090440313387045022416418780601036992396478605915043820775334516511976170141157719925329912200294841492060099515320018988355353767701793172425139615051010588211009892512743002104485488626206880871847637437422007346857817735077367577352051749764934606920123785058260357275702445076750253075494761411691659550469647681376095786005170133723289860213108373541014634186842316857479587981834994925607907696439351678698096700042363885320904537646603546682827602012307070515231461425681755248338512859531746343262993332764892032019687594076791110362803287396697266494477232083845681821513201567619918255109619673545141057853391005325955241274976004414113005392309005466710980501704202403798801773965518879511107688998386047916531779095015697842949211125564614563035381230569438379660420912752309946737053733609822630441132131856448328712153426697874484772862942043731240985971875761971938320701166567506591860732177488714569894068410232589578257545194702160791546349565657381924685331244219494682837254267258768653396791135878964568520772184839209037455868180830202785518648833952891993135757575550256456846025582152806313904034396031806446176556529861045991118373525708120098875907390414046684814476735533876113995409095043401950257700206864848427679825478333529091825977026158149345744722090582389640680606611953590921345401899289890696264726033717237109364268214272478635939411114581003177360009201741551307231482614538778064506263667858823132965614209761101369364692688746552324762898008370716048403549961326672559078866931146529735711871314195516222812544212668246056270563059833154306326410581502460956117557874616132471169036212331401735198179881193872440507732610496861247940000286754258156367271707429346432408188680575328500170587886766182221480186296596110179634145713152164589632959982297766209658532409972073795395329131235379201884062118896775327400868648900358596681175879484276062574254692888022519521093635281224936509731989181650142816876960400734462524586493862919244474412268521601061930270849912046325228472859640520353208536180954188651339377162456777810826126111104171616244102467599185717243983041319694175858107468140917395406261535879197083826789071118487922303293397066874582137145249557370222313201910007448575943840005828380808793105077419939748230400438266024088527978981946707469974186196063745166572267881205463245475732990512245842539193851296565480176679234268483355262586303135315532631012146878120908106720151525569290006680934338978206754869169978960572343981044731250597968525176000106362002399085794211209107813711866204233235325380318690873302032182697651226141816812500712048808174950073077912121419029883003414125177778986553569434387218223962531247258036954677314489780054059449358177750954631148622523605665010178991299157424562261287305796101733427250034085586393974255889350202241175970186664190812986808617012623345170161568260735695873275354971903081601890466547133253210980359507912444661793278444446849310743108167803180892301403047307881703523273213651117404935602714610928918223705978044898525156312043736782779287158547890083044942821457009983384086448181288349290007332843274860348437219347940133909310052159082445162038654547647934938925617136312806123472830745424531353606242972590072098678336199541039757826120181723776958334416160375754432988751806403501725239201764658534401561931029485819872352815227846310464281325299791489480721938120669417645446773472022743308947053662510806127634087410388831571592852237567784079408327066524396540708379581504745008379075028593075148869183495955802076153519490157615862822400698572444419244036030422526386811819850939371834106147521581805740739783195187438732285615248591118543189449882228003702166052598319189840397482490891169188208789869002292559678990780042738554975389604843930428549505656514986874289275611485592082505172636552742556240943150178459181851937769286574525685963609371736216401601631043538695505838162383038561967947129300896834185253210126611425366100048711803487267551157468952535901251743452442308180990074431798713756528603994489661273804378697732117101757650532635604525993041548026007075966727393559497825882449128380453949979205056421237753377750912131678124632393839839606781859591848780919189002816189809195551304629260591255473283625845642873730152233978383204878689300750204174715536122484385548659063664007156361138908320454755017740710187516407718714553011573072443154281760334753683463491731869488220854814422243703325196586428111007493120596528389774586261862213860751722772246284722174251325477478796337614803807461876599449172911105690595223796922421096189178583714034050286896480481859981454144984693181958749330685526333134065960074619131424146891387036679755756399364927535715289571695181150191700319192782299330884691818728177366107663536562933899234330004790022556264732801561236186495662796400122096453830126059048943475282619381855313656459715145556502901015600410043462065420717496023313704713281174921908120385905211203266582119604034317325282686799758585038353022798425100998214016241991317183768167063128340364642204721952539931851968471025301053365619800130246182696135793518247601948373604314974828836037131473571412326473240515618568891846023942313925971620581941334875869643940532618002577330281870144800747147726334622357065826565163534866458045537784168253778973773430530661219055370309704632609934438490203305987479851342079400566761905253567467284206259894882264268853023126028394457659835771718480483978361906738423898189312702365519881746076762636601845489544060137979607390554446264400759907630438218160893626449048153780506311133926697975604683552406115151401885827561539332719879099404275124437677043302860321344293870287542456199104298835965040867424378390967791634822002675989573255431916701987123762001017178681814266388659357229071892417108558905465523366409515287902068451652853463198004917955180018079863343631717504709768465335621251903161715759544543682511275675989288387193083261644950548001041171647441616009583835881599500136328532786916303594133546106996639080653880126128765748538240925726081242598660437356331939187763988288433212997313099875334947549835359058258043368002281437568655248099528590426822695537116451622299391781549618119946675804951249728993473128424415840816421406599442663633326273195876034653057216809129337961306855797113937413931250780228907778634635726615891128478354061144234896150813721168611282223585658741970149864247676402743970124690242914838458836306601646157144960124969691000901041830336662526365283335907185226570341768208600561766650597284032213012705349610968154772825334661643346284522834223373578378752030822937118020192671306351838502124607064449221412833817981807381052673437050690504235497762273593047898435362325278594659437193903587716068041378942394265560596565291501652868009798625221897541086595382513313424500165904386643673205507334901008996162618612394958952966779662160873728105946238745615709270744989116905760682217641521500084551465668412420823423214564092498824262962490250104832937440361929517528035592579939848813579132072286984174819605078504748550039336390163463213480451522549123320848122837763646426337419120891329110732114757798225736632512667921925816587490292463256164460550204264158550345581113868083849662723580350593212689306494292633218979494537904748523278968066563541212457590962238379549709132889493215984055363430477028339653897636339757497894016780666392074833310188373766111400968097659892170759773464119702801500981737701009573555770855708510934884821353980204017781974305906329528712500686480189725243155933400122001911225853453095674910051763950303478734073892156844531009928285644072935770390482717132150760449210230321653295216904265905390614410642558165134473794189174072112321682053119161354311123365459298809517686211045326411189663920173419579083039161057892975763996165649238895416313488480568093818067696504678893366111199295965031296529932390215308008942127607565204272637870011124286749108651533424628069137261523077278624837296789951090688509647895407181033924155567145968151298375146984871124787838571251137876289185126407970698710711218071144152456696425051816770345845664248901048948435158348443170330027851002088608470169250099829779512900337074009161616110691380468952391973055551538428223221785136454872139799470218698899547149116373781978218717395397216601597381292150228341835166605989462184183511136093824805680688072573524248492332214383330297104571906094326557714058528930062472950240417937860859774536126061119027653454381533404354971766053656778197895397940374700849534367700145216784814648174134732162346589675984913421661637870194449116352932759679793360191559093740877824136944871847140064733497023632514266974364729669872908448012834825059687979365246167225407883221213752765433398781711892933392166204719020556696057029520065397227156558381821639353749375161261642007407087284438148609201900110179586223027576342418214099481471447549928379676184401060120716913447269302533417353184920115988635070461025391829999134065305581767778973830104279691936343056142907517301161751556602961334540903558819563401162112331073659006484626966046628098733376371958318149413862161586806245399743435395496989863310039496802023809734287769544879091521517797031350552611847272073619195053029599578094913236059168980093398382645505268469393071461369564473698126317418589441739426880946385870225484902040987220424562104473623863926818681684139915036557909682771671635126707105025850378764243409407807917767011660002985597593974101610695914443802151993151608808007452028641424738072212245887076594143963906971637860866577431443891438089537392377350287701636258980294130494402069424415719562020099026343812140063316934383658304784583011320925147212016010139526397900071599747564330932161090130019569657659096448540622640155552837549709936825670090365154401324678860909451359368571501755651585180520530085946208426667869317482421253647046581120584229274764715586179974972751656061521949148676510770040865592402119347435507640501093116621344573723536530701854622392053346406921433815586478833116141505933622907880101229408389028785519332462826496187527550171845211862462189840592169173303272974473455279606632833417949069413926907342476116497976965209707709978931036391636393084426216467156698045689360021302251363436556395215853459697175698014673194200176923673318700810615532360858374836712446915658043803981028281680609663291859575274053407069093582906088143389521127194768024392701393667973921808700548096542499869840296443605854588524759592568320796635078565954153403100615090391922976587069180279989997823565601287968298518659462330054834367228275641138022491256396965031499851490873803026011798717132791980129651074146231307043765595504008269403628053826476986563053800741801655945184791352301681483807322761491354919223794281014023328717942389366443404657346654508283763107562424607338790870238026586146721896289639349747298737282336648633249348806638479773815506027217974111376079760838510991870901598697114155094319359928329333870161012934193053901419731476855488181487451359404717911087354056552885324080348202437263458048674241065336030864706322840550261863023940455085819731855551510222798306146229960544391146531715305909551487448702611494545510936722448109163054117879840996281207811506058735327021683196085164313057405925082181693692147202146114589074154136614277284126445778088834250999719968811201753161237190549374104563960335922442858882214529423591650077099462566338528167084051715016402253076319369546028766372187203813457389384188649000100480323072948949889506591481150581498983069204131477430692706711146029669456373888401352374308801525973369426436855019252222207062495114488947177727602505381096949907929655590843879118905405745197455955530168639936567936109171060379373379024037044374425307626344890961630448371665337970161021791061118292770461789730944833599359123453827839675649682564934973266255099789590991428895163684258498129606771163399150652322776166630005203832696661683733911261720589141821932389979360984577393027666277427013631028354246709778854642835760149755295007159956529021277029232036582225971088174649417137981639178822920287746171890946896383992791301089067667468158216000585235330406789034365445253433731700205019302827584666871621199959650302708202989843642495911322999764642109269331382501289698801774889577609861655120253908052895896647802073776659848740926080489709928353470467736201989544284280125538348588880574047990528061861500141653884682925812282891497137875897997336673604163881684444609824824279510277600234547759463886614742974683969875581298788976362803783995028823810747446291191078749275004584863069835589290478699026256281020488492944903193032116953380988191723972694836072816462477703384918274513740935580193442892270800223275064102186096558511962856166823408142881109086265566479626888221755120512931073177121649080944363297568417867392988267015505591936017810688649514810704478981975011783628208864788742642189688659719754185318988084362660805491341141726182280072363279566855017352094101640105959588361438457670029195529226331422455183950864260269873859461858449236151119454649493076159711064280063504085059480210817525126260480316212391532571591953396768434999260404944489689023188533096520191948857724392319861524507964747779501354343572949708923313690654877521626521066727122876028740660598615302503111013121734569545558981340204463702712186789532064271386525775964158792539200683154139169508527528769762768111244919113421286112183303980377524455069420449984365144567180429213243868378918316047776397598127589538620148520680502635906760288068418808578660949261231996413792938163300323315515255078030843704246400788082515490330592915840931563910907307555504541913064911804283392376639336788430021637181408692518565569921536400909980110265112760213790082877394658247902525907690923852099610981727885633317259572472857363756702291837297939351022332064143506578410757610209135067915131220924775348991297645856348898599092371301267030123216756477455270794479299571965549887697275887354223870581286984437398678925439310708573939807354591456292281903380321727330155635036107024023171604082008973605516424032494470483670057291838301607483537929546555478944942546515650582622111903851153858881228692411366528471160333019591844883735227443742566399288362282662056051456844731839089394381459347268654676960131698194587261157119555862289590877998874726328231942942125848686807412107064724137385415214948889181140342426477645086742242388077928119862020191661334264053611287006049952096796083128005271916835097884468371179409639646292979555788521957889190923126952793497571314372229674389875930094843527036286810511148802405787076015435826541833392655941427265257604553087809673774782974427117780709486055119481143013441773267036400352374748138907554043836115262734252399918712687550133286415025591978308218135850033865264647490380232439449584189220869266071518506081440173584211218281891791826258803389533357006885963411061517095781430021817709035881862428027957689866144996999996071287248225619858375887501280275154723670746207009524101812753329502962505846007219790431335135368578356810074192291300305070643424073341185346593163859787097743345253514877464720992202727676032653206562498298972785170606381274725093047686717820969492453942659502184142264935721327219292466703606552381737801017608141545656750271964572829976143883311979712872795883183102499231449545683332765659936712573663565109047614745150516442659682795651176180983399535808622753064269495439418983352923063844404780881633365031667898102113792801645682056481756147864224990427467659390233207844523100843817459885331670858509036134223024573890460590033117348303054312723029354351182617917629942827135793324482742401781566355866848861716683688945694629473684829271522495561234472221167976806205412478329618226394664604611638116853640319726230101792704135901373694114350366277768643703974233479424229846426739389503269934895495962107523386572733677459746780335765162154449880973039288831360368405125439933923998492048302047260408363284938834497576974202278016162776727863409833770127891651428186196613934468308432799805828141677390021035220413826308685425667097536561481383879261141101531206694781608131010733769239620325898453243099567419978136957300282448147998508932788122648279757989382499004393473508895352149379266333502571185572357944338486786013968293797896816096866537177313252060673733552947270993285005795876698589832928917340419130150973581098627985858335895926559057768849752912766123950185646174764662635476224132603957329935950433613508854310587608706495780946695953377918698805361016193775891729949066399803588204858655569770678402940823564191330638810404887599420449819302111868352213186504738425545160131479947422040543348497294090976900010562950447779678114033035715385863362966769710908403449118591715233186034861623263608519833750144884690414793699087071971375869910496599228812400584679478992682138449537142637234615734339142484478708199855129568188927123242872267730289338168834283871330511789076212942681991201474911171399243524663890027349298618037930683144239999419269925406920496429302055389634098393432550245675505458130636277475311507531811121257943145226541453707028955300244772096999971926597045783867387828516929300153706566953101997874052740925233353506408129378163411044221232017944368797434551225817189810917920008756580070509829577432222087011592599071272397608760535966240771579322969177386866376873713145357181077857629594200073932907205746682444534555615690774549210852075895484933785047684695517591401189307042611986862320015527234136632506364245380624956092340833519606377823512171436738444851688711073994184293101156343461892153422078343912403008411681215120781597529045741078276808859013517885095096012519973967861131018920772611542283671020099384655419481122054969172541737108786494695011000415694688950753775400124529024500039725993151353355283975550105108120841071913481474928302408621974354678950502089226760442981223339895126439641403950854627659098063156634933067928445110173304260445028148575461292084905473012204136398963926668804195304446297217885798097406129408998141119314402713985364960059607832372984713980688063880584295975143688077672497019198094698999326737190106188453351441095984383231868966678367253755350212560121112233802568968386167127054829725204127443896078103780764067864428304984171422052182058102972464242604648167042243101569754641097276026823624888968259869211915290497191471425803452395139010607787926097490357694245488634957306164408481930366480841783117896717145324087040396325756262616080120822190013196404337856559248486362664768091107422187200418729111290697834146353907853162889116012649373618902962470223591637347890718757880687196893297253345530143768467775653363910082433298999278817557355587885266006020653635685653496538355515613202733135513655890120162816604217511679120415566616315990429324737743752248575925181085446798448985680505404106525794368308531379061476337711024707435494998586822083564472861911181216335581321069300471730761862245413936270151439137886179335094936423297448858880411043496488643178975567747037866800149840156021962871953289397181106032437639764809281560294636098009828199218742915984764261071976111914703012261481295796814696964790900725958144189717789831364944268817959711496263731996833710150551402463558117490295062105132455866176254324658303166363859379983884086622062976289296228117904506677467447269942921709120903124499998111383532318495530820526427269692305537837386367092416069313116923847857259603779520800832187570420219204540144489111940511591312414358160724474072243480549974070422827811255923079385013854727075523466614543333406328371449075081692128706067077739982344611957017402497421851100583305279434139494276386075484842082988814184704258099216666408292359035186515650291392340614032011875885512827571714518042275819933437761783458999356005810512907407203265019049025643196748979415764212174305051183249253152585066569210697793880821332699994783183376996094628888052627988851411974815698005332263421543371811417891581411762385486733519731697192776026107507240750897674886709402185214920845435722036261499139903002317980605838885353302477116217655293270160112688274909084240890394403453319490158738028786828701280252904212043049171314121924352111550740473671679701809817913370660909614647488676811779651805020603076256268693576428833104271246563711242328551452426843778337294462503960760144863393273688185165206836601432081455775483475195220521933620992949557686990048287663159476588074989441949511321206783070895601412950229482820561051778389623866728400480584510396449830605684491911149924813063151007926622933077977657348983323255210644667356155448294882753126152298709151488858369615050968720150535949823455032976502936263070426785110847267682512716481153404612127172456421472884630540652537000057312433826637330287605005046267205485245495318076499001098591932124855070007971625533303249243336752931937015881062787364865477526584040210289095757544649583191895578538654892958998288666816101233186541877312171347017464735518292142018689396392005227606416795880911256674077517272032411155371311688381363830859302029151256337094714424132676469008666853461878847508201433518671785526833924659650008312480768129971793095761008311333806770233703953646628199422561190610261274358140735320760818653437276265670844572154138735230691387510163028814793850423755741739491399349698621966098444751508560919205808578197227182271626679395164831155115469880889464299828256722783175729976503991237897714255704448825146139417651054354062879069691187894853410915865040517128061311541245840481640974989063428461241186920075974634105487336503074044194350876796587591747057212423937174441818407618677168960879897379105040100369778912760348185806474168428670269715497600537839048038573010378437728393638663386403756598399773831669880267557925253619296237756673050688792601159588846589861432300131233657264366017128738809411718112243030576773940618752059163552528185391083272378129509123829575988720673445230276003884444318110916472319293917317959835994171507934720216320186909485217321932398150672848592364428348996958826901188173199272772683259532715116175620216281960301747772713388850901169288021403890773775624919140522119123218933154723053909738089009354964301484176741813672239594613234470844452861543774135247640454344856031396660190312966360342154214691603224997660186546933223347635791698871057303542272218740631774073263403998399357601091054264061019718894350678336208016853937661904706887986181819941319986230847103604033525933210072002107473603029304489528533186908569365322667398601323243334410829267571369647534576595953141554937226855987660459762202342806229115942794755887582499893590306049618782152642960364384141357790880829904144920106774520570461837029983460498798389625981644935047308575711927717916269160835212124355288273490915173712099942394080748985015779719366663423576971522714040045837957861752597175030550579343064570628920904180155065703951321184171000366003165838660200889360122630921655166994544830136660578967870588015144433350998693347477705406097980325978363123611626038430592669417228878866379008881251431755038994415633047390096074938190712586596004649884273473982748507277778672214424759567807169511368669502125372942635230861562298287187024864207042753718262473823775864942285551643041952867304021252866415530354992005930463377859804091743375223553835458006836196494026194595271170954418239444979033397749289751344860381105464398569299237547854673652588749426029943284539066657349653711163215748312434275094571824444649072660216089096058046245017851380352285150566035931214390789005900552566133071923622428174134448123665844946979610764917763401120357329590353457075342213362161881278981315393603171673876302666177140202806654835978179708063246031378652109265934434997478450578750750155688077247860747808923145114931901858682364345593847007544803447503311428709221691628746439057927032987298778676931776859517461343832348403652035437992451277422806026268865959189328472969273486718139609839204466054116180793086073164414374613996878344789943209354326228039987344275275840690821669924886955129668067055620380095830158911166959620438414494587077011491714130676571644361551304409368359434427732326572478167919576744623587390764724025815105266227289047682448194490362243205361902532930847422014634847495441645696738226479526552563021302703226099209937337704631399091184262316469834485464413631284234444070363475977947557556690045168125102999072183147803707271222992903483080455028797282229260676106541290520370939251862917591154926671791479105897913563664183450607524911659394519376664178429387167314866059466907870735709067023929202696278498536349934749814553723529037037355078680139737815632567349900495453217328613120917625406311802402069280395063315610968204071200605085415513450210044747179260512410731614055594210117347732707663800873151029572844049575939219582104424184277903091206817102341661962854785831369653341063737365952666966770586186173287671434317213227375925982323100941201786141050878056575037973901162702576617296631056297946035990353592545609218383793463157027100964686852342935393890817897526500531699780656376506277827968613643242814698744890243808731311918712652207819305468842938337093662313186650157347338048785927289963769828654852258087919256975103075483372207266783126185434458932011905306622953307837860263494183907935129350816496811283026736769699347349385836800160569088884926985120930133308872838897671233427308518289890263630473656376738815730154203761538784483170578547118093702377836249780592143330985358278546940904816781933188827633915608425240774948227240485844187204889478335921160412223682590907925852196344150353697916915762464095083504088438917798262804821918938799533054254123781434883451204883301271048105003825138203341559527945293347464660118648599027060281772171725629178297655410278551124671413897436119573714104389474739357831047987237878211728022345554787183697233434713052300425269155612232877845806684412872494313910092844400529389742767650025128310455090160795129126815857921315266173775630498104756463836234202886813446103296054907455912833804457394157276134948862397294532671169739019003758517282789189162708208218612423998977545794815368683372711221695633826566231521094518679593960120645647486169800233082764877588463205095976002923973174738732485074390062024048913912932446104350775791115799576983182087043589620252072861523362819291382131428785113110865895994037414300402378659408535480798722226476243760126308562805111342890001660310056947363513475953807190315972679658828681742068924955154784898199234605153819695322223721728754607497205553625726574139846283570833870918193586195683815841749070844523490003537810578877253650502710466307943815658767637409453256611548916154576298100438285464343666809380058224053656758653956091412634510460700555412581906839458719308557055131042109025990897471312423104208310747025260806170358525364128506845427231159388852483179669068995440263831243805918422774212853614887653453877653692216729814599398550985762888218259326487472017771202358983955789074630972413839262690194410330596002527828429036903418882116057073884991898659288501054323188908213316897853354557326544953482789267564053010279870896478122523139248568514688743145788243712511497883230341846185212491850298114344798197114530012167911903420856515010661277248478551358405754882420509093524178152413932436839402477059474074414355095103124907150738853711229580380610881126009392480250728767000324273242200733113200060493642547349231194337517298088116965199694261029353315970699508929423854354646912819310611333658711166993435076300370107547764326415611487573022386285135551220568520838286199409575952553031457896840403545548475883651228139176114811499397680207036308522225534865674991567614945930834721058256128372476678198002350867741333811623940271635929424960320261751481580885650481543046807331555056916803199925012395987551689346491120977278858509349469524304405965663719660606726018718157896207428511886828629438756189953986499702539132547085310860483248279343226782137141253804442513343711001697282867884972729946716706414113607478213401056777034304718999878726337170544824647647248949672702574705713827726654674511681268403905014081480499278192064508788389932469464951423022923470520562680335095521015599198180477020079840409663664183257918517719732072803711825505297502164805291311002559666977803896092695746796843415075524455833371960407423080739526381199437231692161178221057639921545896537184801065789221454531629035302853761037252967885297349401190785112088243496577856016012737636974635079528151715784798651144663720918866155782445257858276558862092050074994833572359138655989465650061383310408894499513179396424426497462845843914572265730650294814208346954504046845755928996427474900367546315091216516431648257776129683947696226752046425167174711876662439129311306947789297238200356885816067972806356414962881728480476948468157369807804338131906930798848702648873981314752875658131856201481932394293678058411194378651978962927057013052664222472437957926183149361226095173947988785684547800054412905183103619978299345152637464080175466750562364508615890883353030224641748365345058427038692266434779993160478841614262117848967228553139911374288348011828574772360822592420990358044350568589951440855329308991598692487495786093454436289323548383941215474508453403054673102364395252290456065775012243832290857509080516204960754737079086440598871197258118089871820158792189650977790340860832686346520336089846464470348135593669017421567718944422340614199130719588249755338440105872129966480481394192175042680624399737176878675486648611501307239798625459196837307645811349817067067474504977206444847188951266185248947996144429755383737144338782873870018384311083194889577590442033230368564680828733567258385691290599015461385150477195452312372745756203856114322601323582173345269548476082416187203585316419054750220154155620251170874666929314785697243557769362562455670146073582478641212087348623972336529084792960683723456677039196381257417090073141630022285415498166918420544575519460228723099420054480948900945513899759911089768640709223184962543430005391820927768133389529746375797762951784618315049950546775446836834501912482103692329397756950561726500717765110166795898996707284827864488183115253470331540184149167846587206962504850108687570483859529492655923996525281108931321948103858542095098956286927636059227089036292690891406465101806527472304907453077373071638257163591487180218999440218431636915956802370533614970883469904970479970563961577286511401097478457493122322070458573355720325517954555080439408798383853874999571907888958069738905222815437400478083237210480560739379512532440063141679953180720669881607303464062560639274618477149277951641405976386122214778287180277501088954935255633442879624689406621479259408430062863194140283005386772430978628116496142428849016894441646420470474212952308792769180894989747383535735876483867914606849099895512234819678915686366373269524929691666024336762385407240708872362317543523009897680777391376002523727905472774831729667655338609972542226574306705826649655871512077820412213287902012576194754899133222725688664508273093587292889490826821530056983327750704616498833607141180367327130930572880495755774789583868577123691845328563808337439745738287348980531566311126640817664034687429885774597201516862788205263528354354828306966008610631415765135673734450932062669847120329303885645084779454712177136400584485919047442356180025684534055236399301356091571891606737288091975317901825389486168478368623356736358436368579299701980785039892604544818415107990235797705799051345065686436055738853616987112893212780380215754386336614173579731481560326147947644616167954530391652242686301972722786101216321463126734696902197457277861575110281200373822542504689837053902840670843026132853444840466912638254013950151015461915276487125685837416557040112342294623539273811520690529681653595987146801709847932511911496041209723808240533992414216603318764536493399905624191553804507916008359702414540632743125973343039632705089842185390915423062518127039550829765876977169959010358426456635668152458875477668113713832627922590874774403021870773407027866055551544916340431031831724536933904189952773439709048824050305598864222876048371721984062101959229394389920335437253601338939948908284296328303668054289918843630251236792108616381793718495533192303112636429704694265246715780768072875412725635296733850908233743992681592234790700354515378037260743307494076524003821296584415151713144818969595250481745628137992883595916404286947750572207488499736809882518668182624909928133532306637999727518033101344123622332479818830556086083408719684553909017900544943537406395998363917876590809258043683404291482924920772951041014155916575343822900085960106376606481605960619690617877768863944685864075288546836894556705188169727196787817881984523303513477867980442422419928862574614416865137192498498965778519008042562886213956107274248123108202017376042389737250140462448488969586913735024853161913320496350246313885036245369625735962454078402480336318783473183265546734366540028623758608023454002666278878865088126946149561457951178632940309766282877355562062203707263435559496173276704201763230680729085449478117390354699084833823568530347376054733722195777051294722518586935910201531665239519007288877783454772046687032922892801740391028160477426777381055239153777886815272164254087834549758223857137894211763310242103165143241821323904484418212430358298935707873955834755695179643004078871390983519646938389070578307187541407058783264412976056744242244315985020970452523619203807731045467715141779178196776964820660626191884170928119842216376770916901453938798026800412893766977335718481936995909746268336024452117000839677572015881086468029444468253486148995207830193429804721584036726874762971526334115445612142508585564238768555650891639344818604924269416931146221617498815958680520665738626650001994020631051938287795985183294108348549479894347473171763344296554264950829920314395169462569145310335313134395902563043710146719655714169403165025756697018019874866599702890442787319814141868197573520682531124821320618066636500538131005755851798136219398975825995586671428031194007836176050989813435560230244045998351915944359307135869431272439740076461839536633621978924897453486694314261175369033000876823548176714933526720720095968455999084900721803751075052116190416905985077570357718631616028193321399228767111193650437602176559493729190094326743841345503160614946275586235396009094575907658264634118469922025733887609610815345167958298798222578546089037514475532617336122598933693919740897837977774014186674669206655108448922655096469916456038677451982474017178410642251672168745485100715167409616556859560392229901528916932274149558966253373858184003929595583171421381583370027334379758440930066130474201791752986627294121572620928548269149399080266772216771281821728693236316783055465688195251644098998870174461702485735002933624384877108740934476232381709297726148621794594544256355369291268720509932724869255953898301529922567541129087041543911630845157064533434930205693264657490085222575243992701119358435902513013559848889864818490429336331859289411582582631961949050725192343813248690522877868830137197900742486327945188566259230801677656926803295707410076675111989690348882860215282673150496640943532876491756050365101558619334818397909514453322359708435454729028478337304263813424208302540998612470533262419418327253489678419316122217636052372634016253196229915715578606241625864867832198737041191541428152991194044157611847087004692924124284797894420745910321236302111980031168027716037332028797385943007532937392606673670669965062144995446046694595306486709501239921014005068726721677311458040059952957750142774126745840324139181800262809718635323893595544269134138963080484410346087908037095612851211738808777633690719477052418721353031280444175192406136480434941879217440598441511647537777972187994369789292590686910389278486928485001417113553670772122643832652979484241829993887309394464026331681035946219462312323190808201099501269184727630895132023616751818965822886320395984883351234334824704431208950527330076507079082535247337075978219938201707330175869588879817385791091907217793144796922588908672215346309505414871176395664805808123765348342088448497855569981510515804212746433316218832740799053147972393581237028481778413998536616975442812559767360041456897189877840485987855221905259117000182791753599890742876960992455326012772070078377120242115930893236906647385976289716389571443452713350568545125125300501348747100183168181421572095997620183200645596594158335246749527451226037895933277844125631318248195541278676238895006727714561912281205616090056909599534498279699763201975593732994624025485362430408249856879330674399906975896113858730936559492209370530132968936835512406621512386167065369596335287446411756712495744667186427408040788059934326855976901677570430938880270116944047236426885081856809992871533195641320904437987611968590178695899323750744418911828993519716511017940325242168495919806649813738167245444835650060328220335853221983161054643249604680411772650690953933799912899830032469987657505115294480250949015074914020891075490868731554766138619541060958276836444557163591806402660250597621506259833907171075994998165002203009944804798459424920014868556677336352678792188250393457485954431297179459858897207627277225034576789978590866185207700276243121274304481742022548685608185276332388897685060371230799316106647948516287617734639491849313065387831131237118744971038018179300288241042462522699803615096156647646863660510099551205889416127250218379470226127924967306338028969041762002062763934667188809925681666517348967462191134012539301034523471194030728877585546867759590271197672631013640162376989931554931934881605679236385431562489544267902150572953067733362335651503446700005028702701282490028963040587257495207184373267747003888709139856854725782019451320778646940051778477395237072093053127776244874112753125632675897746940855888866573601398354565416513594244808038493069576665744769858870181879120774554787445733221288015436653452484159080644934391935304113950097867588652929124406897933717191395688805131033812013171819527005949569909817053210900620547385625605991056591441806804990319788373427695152096239147437573309737870175257945100606063199832115174737215991601827727766971584441929581410620708448718905313690202959690693457056525588895889336567030927773004200201477262389287659846431477333640333413127557322435872560039639046354827498395359212508019363607767288154689914727453137960127303068884116853010740863389659896874317732202033873654036023912237318627145455840755565538041998335796334496949977234851784838796210794080729811026491094850755973126411050036539378266402730377452343284536724445459501780533814259861832793720387234870529802271648989957003930819983429954323638652060743338525626760857237261260600963701659941596920630703102685466352170218027736152673241232529645067897582683740860154501838465170551043892668695667379646311586664209275122582650086426843619617567395117567543964037901934911344592860740516139573357596880848331182229442331460327192769698078183585579161628782083795948957597398729067667744557950568188893254682544514707060138476322721763477134832546012224112212222715109656236044913086371786324218863790678657056592974117660358986207521289766207617265707402113602347855060651640509898679868521223746047824300524564162086314025658795716224352630555532135570349777796025906621877812234036773215078165173692786324190374295209957218193312178143135695547478463703826103074533110875399546833519016967553692330104027698999250464563000653029040311371202258723782046846076973809808806090885504434045217034071760926503945434481095717061793045146203258016118089084266594492964399921910174511014543511692324132575414516692735923584185370528319798445674598374549551280584109435458378008429730947605528493434795966861877675772227900315106443074604421660593324911017574413657515038829561575833494887529361366119881226698226317232160863557978702476590974222263998517311999281614318225765507766139956244620643777748713013037214735214307850985744009483466782193434015184433930856490658530267835218274622073836600898487089341452336067026734508513927000881731698241075957429629171913073897395777874427611425117465720710349760198858661742972567940254966990407564579270633739169674022319316789609598308753072666676788144987903071282117572525209643466989648304145304523911781386286812539466271739001769185710893478439772152910052723569860871823468565832205227115926207550570568923710755425859601044939896257500487860306590337855727435015893804021263950638453030083683094678455524986153745924820299832820517370262121300859233068175428601025023498437472211153439372442709514664110602810485675301145077016053981742538118978505352826236072515589538903351024782811345356329424373345157963937454458587000037269974385955498290419429247475827172491588538105023691366359881852560675269365291934045010164328271111039377744985160699809704799101779485511787424641524937397250083601903842772869460070663795882990244240605637391004943136992746368309835712736344042670796461573356301959679536287713700026258854702217406402260716265078024162266013486011877189721594015059222011501983735394793093110029624060287457908936263743506627793389374289277446496042418646799359574695178984750961109951173995494421395192821803104404754604307556132781626669664684742776162362587545692266388313595279126853460384132561247831503681214746219995572914420090316087181310315114960766443481873734142650673265253229995088703904068798023173787579354977296778102048887366072755716750187159288335501072508121318918312551713068965332138842268089854510946642721723996876436888748655690443182776816233394544269322108990241787654319181076021762258929325193815815761012078679241804258334034815987173528346779096929385951515798871601415544586265519095283850770915465203090165424766103225644132810745021584434783955265657257154211761635284214214767021988483334687622899789190642878712932434039043690039985528332004384330560418029852810144184145435141738153205808940842926694665005454103393277204377043841998242502212677248504770885814747007180247429050989722709528159198008664736474949128154786395526834561948573275442350664059111813937938224123571853589047057148603180463322796358140742017621222952114262468788686817979168615103106342849057715391000974275589925165769099442509823877128074116994017290544115955331617249135009029581261209650942414669230597468128000985608206081315013610487137066552736086935343943781111896659665608159457138020644097213321468349282596379117670865426152814670711810330621324039734440269680222953210706786394132024202607953344344100134918088785378452893827995057162345542679941564556766283443633500428895338808440679762813377176849552109289714676773070081765609795053238943488955017930422563530830550378579879849695006069912965776940209917966021115109480301119433077850299359426310594047576411981315765486545095402220172111254466761801711609950514459393041171321198198364493452719098723686099221732842417023275324814956783791646131448471041137441225859343913960269515758288145065415360756623239547826018129554813474052468145032859672232954829127830256191868682180859425351411570768074593610244346154154533732789679492737658246061691754411581766844880215994156284006837346610583637328435218942111787727583647164779424565745149234146980603190508711140460087976515642346856896835746442507676745124244035270172572431079611617235200254584846209221025379572428222207917417271323875697934773638089748122861271000054762706253931406572155139874147084453481198458921922306363441402682779663985224510328540960787981304136846819184350747911725440117576541067927806862299082189543041549770510090580607948888615595040785854587599373596458149815477862951368292250340176134634855377967466699827400292048980423918236343766337136334984295083525812833951003181303837979946615134808853279047599762866198546625635838818530212147787952815306189574623624813680532573768009958202832161678170854325309296310567279826524627539467371966367916311257910869608293789688224540511779286818742431766239687008105435162117001698817258977908887575020444732661201023121820497530678702992270331381390491180471840052401759443403856861014433476817362877050657789548727605523735047116342385512453559667847825727489581718578145627272602772947778374822247420313410154317324514642170312388604349125582154394125683895010824877226161520763700763664383618479120800715396496824408437920735098921468861554879284254125394352457658089929685955085050272892380284101933723366581261862966856078779218748986847454265698346545748953279746530023161447567569469872797487384287722691914470820070882786368510200566990905506971641189260563006945385847474284845580685859313984595171334664033225326631338159008455332917531715667787093864454785977874047065506343882661067995519617527038079428323906933135873681415036873536636966340697997773223917781037104724765688328754606640058433931937872596825961280103117223239023038873580148344037894947314797356725571636837318144876385989252519363367542679175592746361880265499039190003063850858313321063171296469183604564452925508173254364831000512236509929358993411137770948610191964747585412951689152110154345691183461889632150632202063027776170866089463385040608308004381966516370364109235560033476509864156574979624760091865672769507790799441094737414227281960004914137411926368096803126906512614691840930809653502987276267858022479956440382774465687503765915581808545105039651484348983548682220109141348042759625525274117725455936898056202384180797876484319026904088955713203598857758929222957898916232340878020884652434371849562991381507353743305984507880532075610492674237440720055925260444306873901605516280130863813769931741985096561393814441307078943931127698831035213472288079828738551371651533469354133175512351256201568589874711734470294279677880364864987541322465331568327287097516868666091617037394812768503364565659016206383306265014321520936034020735824575012150944213407301448016392431018393031814569185445534982129110204672789779893432376424208843236829995247024855429009461935583827616751267599537405813527370039233844661920272176240057176519543747625691318942140924798088393074809412039471226077899657230166556279879368601551862348980038306087447542564667859549997863066161994636492659405777093628947147697411798347713343655674738024760450271718325657303734396975471026954687385417073715604541592930236850671834182598973458550196566503368649547017636844715993716970988215399033065095725801030517839408841874653029921493611801569798523664101014526197514650238134489588849733063749860133781160602992893326034439844720409840697334353145235447383735664344844344468723692955502947567213809225234295755421496335614439566372763911669598202383555670886146336156593166758330231675655723909757936244261240746861235404620387817035488680554947655622145679210535697626952021515182376131222647765163269104509812013193418218397314145827069345398774943951918043688354263692703401401873174553707958340408136409551821627638277224778476737425965283958524950571881189638729396185152193281334477293436093157657033464316947294045335427103378946342892398824209179973289792255959010632156993883723613179444811624032093497167191278724858414939718996307471855568918848753849790204343080237414129370878299307864241960462806079411438164119662999941794133225783537139496856911434322085987433254301421435450220385982701066816201734982112400345725766535772117166307925505378369722212155550475286793204968583585985877398070755218004340573592783570680613482336438265028113284043509251614133147530803613056792591559617039432146126147689760985682021095999682267749167308525627798071988153583475578729950116551709961634717023159873076444361798683214911312722031438357131613366178149171189727579513503432456161255782683907135542949019118936896111684348376007892218589595880851011849187071874144529174015869512858804638880646870820589211064847907490764638303855606871427779353998692039240905617650574219106407454536419813082088668778505242870064592563077031067806078072947874708081146774001194684807812495718681007379303011003836777380167978773683981834744984091655555016934525505714519437697978058401891718840590910082676221250994131693842559177521954370212512445136552965135732990612925133574788767655335873076091317302872931752563371393041503385640795706061587144521968648624270132643123878255224557038999280493838753829586053852213085205129839497754546207913001490028501663410852294190061431497712704971273764008213176301710414346339225521007654707648306949551370819771012699592718929564145427755664023365693697890115933431283818507417671885680719771774637581754520253702098520526928515371409320309817590408303263411215313286352071453047513172996801729250280393014591340311920770454744681937359873577335751926877655785855162704600695823489988793228460216768670568557281065881154959415047094323928982840262940049542490546728161324401235965813920279876362624660602178862594031963049396105212623283238741799734464004262050908550694081689108245635003045114934087392017388079586874720103725562687606938788431961011065155816893501960601600295157233544004707795512503741290913338437827825412632485879250082061526254367671834803092669832173629227915732776402756788442097810361740210956299916112162248506081245260744212633098307581618398333938786684181555024489379589375224141153061342032500224600244564959178945874743471158915308850749207008866417506807174980701190686678800390055062289101149194891447017907671894794492319260013719841370927304275781953847481021036374157795111628175152322244607813265017991760209706861950837277318784825236532045656909979126341199300463207501106676479080968081300437245103254147455266146388948927594611641753572422473604155979519441282737868933837001170640404602218060596287312298760372304603742085804497958902605534020468059352508428664427794037498812761643063998948032568643643377205677827243165531148067340842538303818680720640233323861595846289761553566406438891389567472886259435423117794079414980194422662881096625060530026976571345374805292113911587286891631770430019989636402322984825509154486592766004375952359228410393888447974882253598313843367064601786573476466921236838162254648169760256413171935453692229987182729129645962040984762954079895111659801647322669787326043722581529127353148569864707819597824318850390289224810127019176825402569335945021033750245569379383672747569299634408133727312989760984126219557315020928064722261120636664394154823426503051020165069721717955636338640146194044229104605471702616948001924086540327142971790839676954811985697173990327246962981385514278004957506015266119963260100846234268692625268923135087171589927291201586153043280538968105522267143920147019749798624262485887786404869649666611641048337956819542617810866123803131707476191083906852499514138975815163038947729653650513110716111129582939553241420805146978336196426044465361689309484378334349627045116721982504465034417859368469107903492425714334313142048454614771907240873376737182208364310259165021724511143457321088616071959335753735999118265997001730714265635543559346204745211837858267118287698038633350293705670551401961461201075997288252139958443676239067363997856320074857478136804578556979422884153766673967761469816591383141287448262878884320239458188756383187780612896393791275588560841019923424442449033569418766787705180937421253353878577223281369223792133449716074763478722232822694180328721688445560252537559918093570202752197242189622476759671173104096752353088993009998010610090688179183505371351721795094493544403862340360037547330278947095138854674714039289984780264414837314185385252485590370811899709291294104634175552291363090174617694294511023448563862454155007436226148101980237595344909448916775481238938675713516414032090018598686518287811889831689957687299901644744088229098247017677280645212802738045488151580491441590047939644397643026409867581678500547351074270254577713201806565379223761864510303223299373387408373533396435054345136273988131167090062945856730711895960445823025142122049844205774367230550461195128570148028787226621641791358846653441320019422267344784502126739173312330254173116657948921218331392662551361732788425989483573420411949232940754565207968351973703131546434584555885874467518679549622402364162897806531486449255314408606380593566347949805355157952842595655572749826526757218628575520712116963220141302939914671580203391584317490118575177771787563085784210594154714999966427491710518392686139017380209331495430433754659765578374459463236149434418255623654666917950705483229971729741445766846421054106502626714315990538875193795591163869291007357497131504304810825397605847864377159338306785017778641213010234125893773097308667044733675734091921452270791465018726368272758338230750728686198888729188074276697687604859201482368655042185347885271718804054503043802847467390896104708252150849419080144763016704987920508647337919974813523118407100638419440943298890049033962897808009757462059960312870326286026524418875175787141952066383760716848327795700438478232762320830797991353478878476249737946667700834184439025388267771482268426742081005432679146038394741339733766791973269358098223482611851369732478873794065301283681087314097931346149487027452590401716948230222925830600830241530816647370015688787558294102365016494802531842779368257773100734151401041981952122318960261526237358294226470126212707867280175836327447247761719160165489316493127981278279183387319901974905658435466296263542717121135064217478439298784150819331596075744274992795852922554514190822408038919985740802345668572035274825791567990304719931411661913675232738517121753494090528679552990516026754196169205475575081724798225777999789653098622962196659577234244931912555298334336179509087263134391636825103262974558110510916547251774185616121386336572377209576586329274600923133382144227929223771440651075397840592143024721000826412539040290535269455450390624931216172302109714109993164132653409904005782737639340282133065058486968448419185892066115508039695458187985830768976443539650461429864207983441842471262873749129150947855636610446814824214430301425560982634819808499133609663236033756344799163036145267566204909711199233464236860872513322381429027493362203841064870847720088197936648207392237659786378007983218603669441137605661344847155907515245309098581469371726266205830980496244843646949870973551051512266127113356399454864808217790879601420769249216835540984768692341839396422413532428998955798247082128534656033551542576304236288780643739433012095691752863633159186388176829311734076519291152319364749471818335034532229602019905824746757745167855828652567759302087202165850828804208076323901717787927034808145513951937917297673196360686687406984005732295362377998138905861470769817922595830499018576249805211702787746102490118546228173004810838440975109842421753645662714994927401793969269082442001846157592887493607260980696517406712351174841595121735240766439625488052714585227726798677162151502607404459198151591654338836390494166498201450472229351733535237794082044925890009439540342517208210816684567301062856667177406000598265528299611232855537027136660444678020934626286749212096163056804722041153240796710328886925351520402793057494064674286858728641666804221961536319596726643155765032486114835366168020029998702532657746267746635334782396420949100404816881511101245235792248769582480034844050033136668127679573540962984351522972871889757353568718519030209971273015889016360759656349142619023971409282696717353851483184304328610301306458627736955830352946505473932711394964189309580189065155784833749935117708610986966992583272525689743000144597720593315802263093305087624579909932135065828421697392798241674635937246431643954997171871469505635904872412718735869616588314080797540745086904957864992394543047713688586556211189804193224524736712183629869861717440459718568496752458608189487053860732547082970873010428700634813724376011660856461541380382079957300269589393939202227381611647039476855132888477211590554106280847933775338072701736675487601878487462360134436108115542276895787005598528001944798815366934397631105391885456023881284009581508451587398892948947239798413774088228339762897235300826986921200023234841075576184532462588029580161170350347743466355824642246597711442996383570401556132783216066704790868854849718346607152263045288431159224469718476928585268386578380410323034520492891923512393381616712419884520355525911314202022054890925891069955194190242555373907768876580974353910057758517423068499632656895273009752117625817403573294486197910967705661686619717353071997009980322184770104585516938506580955246408088222531654743065840666197037319159628313083331160813804910120264931642231359238657573695196729539553372096131556066465547180370039526133630415631599392395578722186386114875633766163891227827929246214170806159767152035413872052567455428325001699222387923059320819176863994059856451517142846649387189425670340941237259632641702584994489995257597685127504680886182432329370223470655252189136858009717879444531528801789398667075330163700214577553214354248851909169425780092940317456679331449698968952796320589981806142034415284717245950234714775416717254463572753491645786837455493093234346191003943492660406977285458668846299644424074593246356341234668859978355152438199252704301686073382426654644677793847280400513372784574978764196392428618437928413813852164066395682893071166081674047094903769421757853274094071937166827883069025365169032747785484106062309379887794590081876691319568708823022276593176143776213983553674854779919895181564815718129084675937517508034578696554025602776747537978893561670432854308333833156761295706198928487386268642370119975265725819580227657923276551950646266489261540939673136779165849692027354324264061456766212557003149998801590264440643795186434997340951061930067575906499595563464850775174587246396511929271036934015746435789021378852081856069243819147908497430909294928730337073319385420317674705069922159166710575107486924334799153818052991590661828330101749182057123709666067772756257357281034599976510022416651910241081278129720740891917568804503782617835921616640009657970901426484362552985738963365239909997480581411069155683755529529962659492249706687404921376290647764156853262909282997833671587880395346976011233773822994376781617760726478841185899478909943112803411767766751188698370474111183423221284775291946577538129807121775812757106225764306811211015897440459901117787965488648900544982088992343939940694114497156094833562252790651939342459730951914283742289139780215786886190849738305983742148853458331925738325076626816916340853396333382372237594126870488510822759312566110802598584376509986024706221554995142406983229390324993006713689547660546404513976222686929381966501048137259974147791351322047059946139539574210854657764423275979928441966361062637351263280835224093610344576191442084902508648043775934058693531614026483943463976414663902260573803814641711684193556834866307046830570807499567469709844843359989516776942195131323077568952972091709924847580118708089063571990842872070448867311934221652916815691531832514859807797404636250342314299189792362938965242710002433660195191830739875820785094596804463250056291109708147350846995822494275250124294283503536730097765684223038460460564995919292875654767285535100672847131310752958401037003337811618008402809184336613686947574694783491657458328472901652112961522743682418540800306372815025357836903516648985432700503052442356802853184547238615421093646539614466427932086566865696545493196260712264019510394155748576168885534229034830776144368868890127460659595281699289571496209490852196041657347165786178727526079867941965414979782539667841633334920838242131904975505959456822783194542691629123403167207532529696837923063136448930404088142216412852507140120877512205101613327463337314357954198585671232091134640648182409511134840170772087016039127150822221909662421769102386165991330372071148903504426391040700367630279931643948686361073073572281659402482676773629820505061678373031422596214423694335437804671351003558572150957257172525280681508832736823550436701754565633249292554405931361221684745601259044435643430639863793693587550496118209644131854483000026321168075203486550828783927256024614618927050252703106894928787845343308524408103368453366970732448179181131019674256067829495758482720056670232106422611333257444464599043859266328277247931890074641979633716480087891254670621151739004573297150260636143888868789748015511264529912081289390130997210785316966006862044727244034771432827539471688247310573578182370287868817627734686955510412928010424952931513593902542026192919470811214794516675572242849328525327512258159653197847374952849000068718512657950076311311936321540505562714445866954814342891173352507377821050472658738249329934072132717521233384770849519345876921813699413888981416498743585368743685312708596573948606758053590560612059055902371938196040047475563406079993912980849003674301506260951039160632282231798886557557826193548641988262439897359955932572710455254828834609300447630832959407015417367558255482842848183333866708079110664355022701025789748598083585134444659772708673761229141891435671489604727817659389329911976613071730085168124756689125601956766320252979566956296810028823682642190226969893214569091972583150581989337783344724737668731630705402566337701815395068172930453697314690329541179203291389334313597014266434399815633569873660703368640853587115628625113271398911819770795936531132252435573933906192268359958228853233048798011670948112460506067941321379483037036982131505853946990092796777611754804895673422049545568521170933861269323233714306842106826873045263082726689126536207370368216215690883139171964420192941624182653037279490277008630321638270084274758833841024068346139188576765661573054899972362539854371499400185591143765257404935674897705647110556587418473608988330574170567026784713272974188587096051034171664617079955754211618351441613037452973625188353672234025301035314243649859437688395708177899047965994476589323920152784996373853401851401867673765002346430700898109803640940950367900257916653647951600339399527738311387728573589659098192268348885615608040236814537148232388187921049689072974360104728730191365895434058473014459148969888274220097455466184368189416070985097804238658269248764380238631620554362001175896027642065703093906375857788291394648924532583114859633423308243651279395084605738860624280712864566183175686289767530971363522728752994616147078173860722160815974465243369271407796251417583484459921621014228844081611825322405697985874442793411966685413061988683508925727280615856116378669025410669406763048642673327445544667377213093294452879762481441212005377062735104167083679907592931767157451045418505416120780743984756132866272526522195612203444510832822663018526044325291442893465512944264844907668789003425215516115880539303576120822956839093443515113517048674867351215132742604425011733894435997761030700064359296024564911962588439299523299305853399913553557826514927157861174191688385510718364511306300406376000552366792203633961966069045126057744772235202624566126704485330693291984713473420336578830158004912750447019028761440273905977980123320520991425216636123460509575853608773214418816597395341581905304619022331074542478478443455793200011037653218891457448040579050261013818629668948607030184869021416112586010189910922318700602108597072651215110988600007069915265849220056682707399473105784652366241989590081769720384723378754884905953175265197059978153383041233459428488891932628270498119037277686461751923372408315649961151213211531862196810992429752927410662636144601390762378652623849292678316255718646414168271000065097516084450649608539148272282439017300696955685529420730868052221510031147261336499373943574263361940980155261610454549998294965554060813524105169199116768234443054437663580392044454854224635960460687615597829141751675616131998474364443890071969678476194408230504380395449518187266937899432720399460927757597856285543183600752941593330349891116313111967701529756630515592904241696838188423750369539313449935624471772675740836133577967314443275927331297844740230760881138616378001335331933298749951226237158473582903951363818830035874220699459077451596376248015855413317687985478940138185016538457662840886268312471050720265331121013906419175055391210866535070533173688951762965201981749482054854630745487943210251255258426555741182159803341375666529850344183851322640359238494984901038199393897892121947875459974802704401599708369814240911397016343355662052511198388019442068758075562093795052698852547355997232508755041483014879851958426082692169791684624293576226067558990189325150595306492793439599168689042708489546442685837719529103323200829112293296781144870713991264351834672750035210167690215448785135076887461868386285396813703172634397873394182727310828091192910096714873649862874594748742283003547540616868745816161182225277542188376247823216680008133447563438996012012840739191327442809449729115616920544232549850702171614863190080386142663258072740092855945798241756848080073276393910496334621814615453849041311867042888965724188232685557482661489940781794591515978670083134366066551031567523575587478283594543042066358474344070771691973889724290012990068835370268630398064182116504999929711178835259177928079570781030038790684135768740265133305331801135876400185673369621397221672076735828003190422692677781948538318282086433017867465254912826634944882072450563832837672403635289757000240032639323980902142240997546658304768971260442692426151914040907564927246002489012617683396041073836239596367052702623707729780176605728233397113618971354912415716619888700623486590027240277934544972542130843923606611117795351205892844510658672605798206805259104486595447443536079484429980934517439078394693560942692546063819326787161841843169161222762628403623001492478773477665656199911384763847264908799937154013364747936204141978821590588938712282715165712309673256741153704164746461579801451913620183190462583634135233263876403525565877594781089807738823034736822745338618464864371370532653592754414775491903402754409218464499366401439861682262497430247498746740901372452147838022861894461699081296098084870607935988780046808829541841749506887027049632614072292200704538449705424932963853287935998576192725419763482176466730206359576985311066003632162019573009358211607109670528458040391820257078683410899502113012174064608328528324899102870433245265664055852372014235094891342667802002099433486270819667508471817760656721777666025942448076305456483074444549703323493778159857016940680335747918630199655749592653927622176970199554497062599104126933523936317694098315141284622112068976551136642980748650242365972426476738470797911291144942180621345147780120357577467285784416978012567204372161724132462354403572763669505623870598141011631020113094317564448379271550726896957642921185367174928528197800121940815380429680933220824691480104881876675235314767452019329521055909098024993659585624934424417413981264062371597214476995595459480936325679634475320217360849062109029577529653421057217756970302997446453788469313592938518013636219022809028465781372771976655828147416553593596389899608345772298635250170520304228478440054797662533197220823016528226697769868173266611413229806272994719812487064522365724479935308693606238970181143522486282366943355680136558771840860744243004220767531638057392541382978515328173417780200221257107226695144415050749489615183200115592056322807640707701360585290772445777539382506131875824292022091983910639536525376146247111303932103008948017809467728159014242449588041273372875954599004433629642660001016758942876994652673934044739219380038969879039380594477903552114334501023467722683097040829834966918810490653714907707775849969022320484256886710704573706495005361236618225624118644578258388235073610523215995815522517152063712296680627882483249899997835419757200481755762052519211917342966022636320219981237626146999825149732081673233527587023909687475434238158148269222628888006443497762846969397146527117673168092681854471712717043778902041250471391546683204017735335195434253711836711356279920440190668866498716263416642269428967996106221522881903405665789102391836466888696179513764144134739497675315793783405101468811415204287745913233786586582662439936340197068089044013375041323880426248096027179153198891158328981581478642630351038621913989368231566551447891417359271358478752718846770891417231672945496001095232918820961436130606260614937625075426261559231391311851736077481488349830569674164891367619509451457869355432474628987549291941127857786169050529007170673557099347435631054800543523770125663151319262363699856546164883281921407501298150681576451646655708286597051789316776441962164063751227341182471192124688721516150040658647565254697299458314810557512482570825786340078223301219773284785277627691463351751004958938416373240160129688127567697371777997909478204427647339026640196027613150948233050286810465792195471777846760120958817453013800508133381660833962917747088518988055796210536828370882433327195253711652838741400848397596404336640041154445629733487945417977484212011760912538793287043349005175266062756997215762884429047971869838418825581910593673930265079362482783614925100592463972436161967146851554826826109432819954749356475743266850142485542870520798770033059739526470460382745347009627546029208235015999548022574501465073801080789344445168287254245236136798610400066163904211359197364190174692968263941478764997564479332755400447481340706530223750980527487910457719658223985102602642466414250230643862641045814590354881207438277016025798633903441376946693117745120543484470765860332648477421781948731871086286896773312157078529887575282481513038787652798702857992307815452939849419636748569640591638966843221754912006993995967140580118967496081570996591337032567019706806497755377647061292101996038040443271124286338536066507037575090748346768926502087142088952758585243283429716542245300571815564009478850694269888961790625854618852137337238265434573944245580491265171072685897028567479624531283882314817836571778099828486637807342778363125981803918354458508665028693705915409089698250030214661865477630692590489229281092971976261182461247270524317200200129029132847392322047250769217579694379582347526688867246363060351363797935711166703439334728132781135676705052710628432047064574579754700735121967417534852148045891742146291315435975852132470668806081840856426525982837316594489720222422149676751421937912611781627525067314945746329049374652871238167880064571288263650786362168543372980577259722651315400365337777971996879496394680137279187658263135150067190734687859563453096434351774248409752946653750943443485907288854028522500305704723331005815908320030589499730010703126367607634590576098415575185317797463015908526926238007332813239668325962329038346379981402187692513261975145063647984665950305612407918362443192880108632121823772059531492865987614478476367351865731422176597859662765325939692517990587022731052962047790461685858327323013155021002698325846540344822688067163493300898283924504686299019290700429237121368407222596080237265238303548951391054495915817894466377704359677639321872988061005454092085297917924523105869041640906648336833991805314733839183509496727298737012782469705398776506104390939189211937645769884763736674148968127388157814048789919355204601825322993728154117304896512251582385235399306538134199177062565009853221497120224768791350614060320581291674454885940169652718666580149636068913128412535725332753307133429283514708674574035400235006780647069458350392345533523319010905923024846020109502579071511363539412832312993748601985080501390991415600546832806609099953066256758409623596981834049875068757313745100790610809296417990472146759257673153092983096224866156011323246188244551964867130492880588355078654271224888666406160716632286116116920819423477159247580045667461692942048941400076578620444151243907405484909724404562548064657243361998321963886251172243896366433654938326512874833555494698627654771328566436102625473662644360012317095545166506669749984455970206857562169550820850525678734565614325165248810806311200097989025377739143067406257408957813389702441200446570827055862539230881451103828691419581873443085327063198252268446706545188902085784144290959884904334529706349902239416862061464662310448745248691421693840272719640494091727819933655269083182385162278747526118591047282119215565140754875225342866127448620475565709924327383415973587667187199356894597457011725998310208296115090071349011052225090351486369408968476435208283788096499034256341175781073414454596145676466085679069448594731086983130378154449765949015519536048217500284506625625789712713930180120554460575534574155077446322912426271787380304984954791362100339350278750350533265613090497695683356666790631034936049057040088463943038319761122430089441452073789151061906294852202883006589259582799339467106074862428740059984125514531799810441540803364184079816114270139244100034478264378687656937744163610193485971666123630683954097512463663361685370461363545732358403037241264618914206461199761112226293196655000088707430530695213101417514772236323371892114123758531800553372665241910914885084782182872592332197582569280936636284406187190846160757273986980550157100096303725061262167397260304981451550949802477575143206488351393356635878754274928861748319987422403021585939385943655978096815347180222650458190070354988180146218788173739134098945123425341567347855388873893493945026191684037057761134304020006565724680690479380494325035932177356762333829146284744932264294885370497955812404951334641531807409039621237585802494538683065164264441455737206177959181937382660853271924378052243064130296778225122892697124855824900443549000494545569765966962949012804208817420613899786429561949647412577821864972292169364966021868640634303868283531074265120273218612521373497561642864827900943169648874359139055560021556617161862384992110469452738610335021882228716407527350106501218976245891325740428918007255247400181326778723464252515147143574004920615673855089610248280250332658054981900804266975506235248426322228449719369571796753457826881760956622945469626111156285906246357298060163510319645118655439439924942977372119179109518047472800548268857519386034976511074946344796929634072581596488887607077889801808973442281091027888268479458342426909204127942275815761403441884737941900552321245834347822403976671783650870161026565589940524270741810043804635278224072619189323405405148729430340410222470561158817116186561976069060095995856116841969188026303910637736407547983784491049470896042599641425536390617690735263500736005341313916695565763788067402712386953029804492678158987670797299267734603230648229895573743925217024459693270132108592715162971050848270947417113970922131614451952192945901943728721520637826946356352038917017349339104634389224529225863365906403438771048571160055554958868584179824797918103370566564899589644094224916807457131922363718970364206891161258636451824458171521724463626833716084673629621787442377589110403249755187997233948392143626228406731503060871496623605367372955733308448997524501778951830088022146805059151977796484970152748547522951701744079800190182329403883359723682107718490444891478295299780788636339690448366590507870754477112256413330189717231452086988376193249666603781131838657012604931891284595270758089368765257509053855885841789256458524221565795028009284407878822450735093956736847802717977674594856201400198574608380243889760857846235038714225355399448437289352352662664659264762918179924047948357258410743121763439355407406376884223035517830002737935792406023000367245101822152658963682250663906966149921436284580844879703525831074635850512365831721421701998668617846491665001236161990153147096502382552468375965378369839081429345203582797908768509673876215663175496698618318123263273759452330072423648623064212753567453703303402872224306140546442972312362640564203393959334727111000991556451341681195102801649129641951001475492686433802532262777336627397371250458366359650648202952817148856769755444584221359874193701461724018123777477868687065007447601805751162053931733035782398760196598024757034883159622765674767084281959452924370213408655216487360247301380494608272443436632141640113155921021497387481655424352744253803126238116657851859291576637338780071318232603948399601229527200752023733481231500016739922225283652578945703617855871945488095123106463085898803462748790988692710177918211196190760353825421642004878538040903357346815703146167869795676461792728339099339354809374948634990742956116011851704728136669913684999976094440636015129545989023313365382720656169500669861197004450114037857387724643550286895936605035600653162972693650309106432129647031687764175075022571894176866697160923243693565786753148911336370257024479116310842002223954411509478159892593138393154820666118571241636838897006348718739959080399903861973232626046313925325666577850690480071784696251616123633276500140499432670389600033668342395044600385627097428623576453095081685271142530975245875646650641111281759539666039076582362670593189016263854180471107799841893015980422198301901042384104912663079992921133378202555191963721920944343424965249563007673157003809526597135715920528459973332665565846160262801501926688222933211500966989392910294078768051188788657265387182022611434974820666643751650804615959212687249328675517318910035145605790372917659003612787858349478220574984239142113694818018863759706748046249894396811961349488644491790440491574757920253545664982108955336904380476078236903631072318685247586565752694363436390681112379959728792905161553981625122848719675516971460246928546111384198834441937419476618939077364409814448795799112114842964958852806886311591557187811377963768630648199495869350730322259705158718857936580725908485382891536989634653809908508922129756473497688210780082408340756261251861107881763942235909171265793251851321403512288741202776692320067898096424201247351283821138590722790519923897974162923479616989697932505440103103344271113439337162727967103275939852174763962991398063932497256940940442703977359918196746678422239088893543697999440907124617185217366667620202766357329376345406965393422444530937942736230917512645496096842560838733695825141722426786801203541741523698323421572707155949507074676963636739981952588208079353244380163594998454639197068079426882199015317410175550782357677414711502685155494290495677283142185853463544423233676865142937596743314827446990414380900867759257524550730352250242984216521064956929118253015868966347706316356761913481649544559221980243812839321864700633560361097839461572961669919862345194715235199057706369017010421454752550607211928267818056932761290274129696283800182540510965389980330797918857495715820344873341551118002517692448636329515286752450112202806932873745649824563464194972113467604479449703302420537526243168283786592869979630306317683630984027713954496073641013882370338011253891491775512450774674608924396307393483236917393933792567012765561894854636593745385728258164286031899223253431069289849111977131440432586544300886738795785483194774593200944812003723968865097496123751718280033051051519830078766443863482176855918020049817789146902671024144149324162930717984287452809993898581331942796083343275667677356141033098382949272465442937685005691900043005975797395414582291683493136406050826560282853394117740791568315889106590489910869100268471823198821212386067514540011613367921465990529584034402039744946311714043740149004626892942865714727163049133705853916102698888400471922088883490533784860414379944504112919945284114355480044546556694125683540543891893337266126768577721674956978659697210249643513142378190093073520515740204229597520937373792202467568020627049043889041460762369464212560667540318308176596660954335236832445056447604991216508072845493983550011431146101679633345197090967790820145922198227332800849891742859817671066723366654606318495668611640302483257697995563641908847571645491732049245169190538165141302582228149869097035061477975065601702167861731768238173377307457464575261947429050482797289634524586453737885095510754488197243703994346002160606684428142973202798908400899316788699525455362997991717101220794480462004359920618020879328322055006195574622585235692392292059493293553561107413572994850658659425835672307146108421051246726400262216007780908025716618666628144223648234534157994195478835289210116305709673916811644086367735635999362364466134682023544874880058292144342253535627323202493691417787184067548073459115615999026993068115081824689650124839949987906967245339099321137735355909533924184228580406779623084158559544933336166011949076977334607471673797225448418956832582983762553753844597480652088278560301805965677499425223499263734504482572001763582235343801285153549312849221766753788414395594253480429868521331999012783974399626960758667609905597223854362406541113006761359240599388869153123610232664000225885066423335455040993369865965602042021423317766830116469768855951561520328976962701921006383734835531980376572907857391247851643406524861962377412444127034743053581005420153480858757809260910801289079893330755562457689155657704425016553129324932316558282583227697767284387204917509724010166654649323698044357889502080447723768547126664179657778905550856236239318080772760274468228690590776759706732051522457657793946865939861885784705879304819941564203003234735632623661301415826940627256259339774090417487549896644814797155144908070649949048741012802965357828819061886420225633148400395916460661468575292578989600726675351958693835197828362795377189015700569906302825785521260903360946071654852422167998690748806642786261884579961954211405534093068794595256340650171200380414672698462595576024483017114949370686750101382890288081150643832022308483524539182675922963410241678150728466723314929026607716069760997300896508719094811916382146290066907003211314766109909931495207784394446090235909429642518451495505944905914682377376242377512406931913852076147500165269695398673861604428162493880957367396251519923712851870263949121421116465528042200223685797631299422040029837002312230922765783802844204725820563098324393000331579602491733826782081086854276971846636994259193686277918023946552768062488300821961792194051702040206815576935305384398734683403777950939719532393517607889160068718933871986133527242743131593894425181703810684199787296108203496457692722823538936606177828407980842203689197329532932823737945278322183212576182263622090048400183672838991677710474710249239479824169251897951849711339085994315885590357359978245858591949938850563783873420995217654372118492918181292748015016170715837969086451004155225137705001447686075817782219744442318744231135846019071175591334851878500802827642410953735040924405857221106103418197702271931266119713491835807922438443773150135665943969259679222622740700290000982585189237951335269922902963003096513361094885001019341857751547607241051426747395509582811991357719978711308991448053005451658455608541292328507011370533317043713997332836415572159956091273533313707906076057966271594652877838333259739908282810916883181504877094301161309039556786620504670855950183527390235193135042366364578228945779363013426133395058274993091440932937380710136035750048926413127641186221851676535496290166715878324972204902202215307705186869943552544408945285508324941485642755697384144314153620228337399871812997563009909138561335617874070121988037154432583264590990231367904530205233303007800507637467341693229538916079275312743304687926958494129694305436659974933948280473590216429956040312353988646923673610036201441437176245017109675023588332814669964729721672752725797524507339252486674495942097429584506796824757792369239594182186407153467140549135311853303769756427001308294002418815176346765033422117144998302973180733589437505654576613777122110938394728424386178952887456410267685566607045920843327219424235810462882845496857166024708572447109145549817090293224065317726950868658135332221926019695195422433315615329359801284012671895623094726174870616642620306807698115230459948715566249631045635057270718440651497214009772771733356962506951491299594806741599678795614011482677267989137008325929789103366946161049770169702645742829135186729034596632934720514368187838136524247008359414211457423475412576431419998869407820472383980912884904643510612333011877542309711404827571582774250342041368470884583111165081972486792554426437663631945084175064127821530722486569736519904176487364497093324877962781147320996590316034814726860683154900133621401908379603983832573044297408676121035768334663447272196604588527975171004602702031757539617794722616705553974364351982200334470709092484807679902760570437344029234889507587558154508798288068333173382910004807915703544754524459049339718060095026431342943643733999278512011016332018106057047261788566957659894432117672571232181819667589058865283921811877719773459221371479200180343725139080080381975235532899544747315999413117103814529080764874673321493317771942794981974473362283296348595579192519521434698659261268882957210922414106381210091465768246066710145889336208998116036191196078363508901858519655109257307261088785972193663851338234015636797507732297443896863309186199339718313330697403308984442962434642544217713294741194168016822889181839925994203197058333773164349863608767288759189804063302578574051220013189215086278814549248272700419662394629055819431109090155792840307536498370193136121098463247760494934468816316889335035290626645697986710241707243680476477241435097166882324691816840806556912237625344535405441421046134795849975398327243731318918043453574736718392829106628633815556888894579952309103555281368202017788970586905421649787343744473956373097960123817375705457044552500385398144652998088271042973072389711682482635620140135942724792188801280925885081724479022227168195016359675332005603905098812479515991478786323417383002960871323266279165394228166980956036152001411453669461490367206729965185417039594663698602321129228188084102511457020137083748888817958824538809040263231445840913950310185504747655930826082860208940516681374944430811885552627373170035518491350463610585895400581689604482766505933835428397316361623573738760602595896699131662727379453945976731150680744706612012261983802452295218003416449113391564160660456963918936166689913357760911810111789072023546899289813045036095020820387385081301674808044879790263756445891850141793342863017343055570666036706938356075394744344252205780910617419527029520810470733992802141310708769236681020441076043343937132086646734834522609483917640228392928963607779506361624024664077174071796722365259370878965515276779577901231238956011974259522513077934716348429646650137352811407468103113102914718670208939775846169772239013273230801220879277962412233491563770665723886980216045245391092788055277119809297653827738183339808423360860338970260496676099815368340521724397568839215504689963105771340389383205007205375167697848462589741844455991478112398763528742097876870566765185340934049906315677053369259378258619355463947931609032456431906564013901254783206836298360566713445912444737349833453732353756960490492183386665076587317865306454101155301668578990545329220974278094607701215058420321155229807489404769027848792772707309039424477518890974387448148746912228924034951833110881810243312087448860771473042174712307940287672473546841992459022850981261554965043131265431922299786357506609779446078038695817571684135339520634406023222402594946048716571617334201769194244607255918838302637996839607602467398017312069159282236299572689721398574832868326302041421647309493107021429970244139970108319504980785480455299602056633532761677155095309414499838231274658477515893418197921822962699066207640055387674896912152058539147532123798962212748399632221344649917144917321787172394762867872124203934410875799212086066683534324948747203025557124968713779590907029548633119202809772812426420099272873649677162299721765324035164601532132155934678952317014677049966085468805818583689191601077294834742553073031368154585574544391867494208010267749762962392261854127511920768367572954281565212424319547739398466508280307030923988789216242614751981073926592684563387533121958294512555048614042451667515607486089307823093229501374311898903056102893301495484698236249681600700772758863795592543355411957798319007383029106448123950930353399559176497303848258713237389318404341992818578208527081736015590177899297756721644384404475436950825958110939893645623724265863248213135324574245798046152319127977001365473748101002399395298727071508082208541569168943470011429959896666606945884921886637900004272090205353419296278692232235486462367101656824173833813234917556561473476297162345244159095547018533697098864697351162088126192757437654134181088780768590557189335081574110828709509108619768967116105931923028057495457663064409260185595593697635697271537115986394804550193493812844001329991008309737832392095253515394087540618975097091538444337114393410047916428577589747566920383688089486319322136414137343998177129281548175618538029825375264933115666842107887256188286675352629728894051964264182782720343583547215811209120672220821473769902902947401033438018211426471789014980791885221478095694289621478258877819957974768705077833345700761955012293906165968159103136006556944602891406359265914235280025507889051506780471003965818043505814222381807054138777159343551840904563009686559398194701757733623730806158675126337771621007879947558646746515846863873819005771652239527527641059933375944438749487431065095026194716396557877229223131114801386444169544109651862270283297921716533258279282314799010010875157884430719163009140992468160668896848491526446671296829527433561952716743126626848898052595712606318778856351170389980031422072038172219946218942060714237291201905801566845813277898067426217727513312834488387533181206432042794025059849260064654637647934908589988626096116738910190479841515802211029343404193711667412472472675913576948881777192935093726068692334955465097924263169980042562522541325577697273965866302966935776427806909483667610446406999661453736679421151028394665299202229946786634831352311373656414578738341831165547783237722237103251275781494913435663898986140668585518395965399861703779478187435389023893870263855307537152752672937042796508213649375544408291143131219216021416336502081716019774985576385555917849021880423752667310977393309982403274884505069532186267409929991513520272640415109778494534403947379634901802649138825838510075264133831426031851378455798031093652368826585609759448080654082755388166145799412529470304869855500440159810878720541031081474733013368417771708234860139035015514148597017924384167504367705174711517122041321948117588480916023537224295806676122776199427484220353535311785230019234548354949444117452568568349122907404219213671804984009680422867135184478698756034703589234434492900293194213723685165639735445811652086876360737183957711307944068694499608442871877531823889141573990739065233891225993675153322455488767419745425351338198312776895843735166838019758641980839047273979420088345146637985018130770171044476544635418596526714948763227357558646221051207000810986867409034198888477074696621833099877579080926464492117166421779687302337112674300170070119511665906061612825816534460085992552220673123073668501575878337509163117560549515695900010154878318636786466630772907378230186731819410254047724718249432798812988875862532452595096292304047635605231974831036424292849850684394374819868761768881691200639929740455455631802029244043096447706512008018082362521320509867590787157930974463125739276004500310449514421388747295388162891369802499750020263021004193273660801024377814717496336825989901234207415621535373701848042877972387480352282894588087461877716779056742077560011238296034061437035455917593024560311019932095093073054557669482922124907031744894318380759834271705319306194371759189461695464382546714224147784277096823096071009635069429360531020317029704016320975336285032311665609785561809857933488922577789675711605501038420631988465792674316633487792746167434600555761015312293500063250477434681136159468767233457610886403741730212012034654036665180877786679728473830903925292469615026433013631397654756833372773487733759170009603706831886124223351030844990877007355435502779470316899670188243525103037483781577754577486779782071986941325281901658929024186214505726008179719528011916973239744727828902045096963488776903003389785737878615319225731462738439757872932272132642905509371606619233132613289026881810405686444456440724962986638993765672691833780347630932341402310441852297538465803877118787704498779829009795189404211458530424911209452694900556913373138102875135691034452142776912429051275450353093673914156426556010643290979969386464550263166978195854144316303776587314832900492842153290506050353599946593360466695872451518802105596526419787980248796744726102960487941142620496272382501738285355475036335487551269428298961836457185194763693361496869042679165141259059195431444160645257127878460029773460073697926777351493463400119286178995492175714487436899104343187485740968867267558839540190200585167737506416898320857516024456947324689286602852903297315132967712641427923664040763844771191930661785440208718770112583243517263250573549589479090402889244862871776490319134051799483283660077947128229574857880082446317780883929916033848336875531680710843981146881027671113750002963441346421946987923501899022948650972787951321486506751876638750684372902862828053928770080283643369891530379202449668577944103112724071387013676716948333774763930925202938765718105449080654896579514426730181020541477445419976260964077361070152279785414531409154168054804602640413616458767830187885269482324628244103042821952688252995075042748459329696699474628286943640525786829500676460922019076607622466360235023416041535852948567599234235908299602346620695727155348014617096854475234587482404809264646476580090956343254001288774139882368475688606841783717175860316235879282149051948780884946851834516755336039461005876942240103479863376570884181050384466096687579939781861433642243901774417270825618560509559799367843444481838271221596879301754850340446874035280501412165506594823140467949336881999045411462353825723301605126142148871180719883502759816548595044119541456700252444871920853709132910934241963207833454970545137758566157869190482880116817079149622007006789392927991853048889925015117967308749568781710655542417353822839182521159133846109870373328726377467807075272893879495218542370416337378162616961097201460007226084425977386434125970315351628076556565953001926362033561185341360185771211887227602289884389877418777112348365932547751422826146072948521666420356098231092546608125867366862798494456839368090647784715738427996497594761979332680097541075707681997272736998728351059125329010976224821272590944216753029543824695324837020534755659606074669247664870910518757750317617839285549809377293717050873515027114840423934964063289881454323018379458882532711412187349223026281060602754755463305424742265459712312567144525358085112968960809530849517035909361862542648681498870561385534992123190542332450871484955654110338615953923769309133064516493503834905674193832380284801512985771961039123632275935049091825888298475498869730614211193467086657020068473314381555939969658689512243206085559292060404159937002729451180986841909530031017125985509106043724516578078186126204205984238625521125884423868376343332318301074575340545778094885425707776239511369568420797741316971456079949584758803308669377676079933635712610658397474199053804845289595259505253931534181484070366233096651101784813275647566668727386683230030636290447369651239495271718850634650191201566902007541758256825275210663142521946052147298836348946012913011167025390644334329765467240441850858368127418987217949095558058943218895315276784109378064752920986727061058780997192820145440484593652834722842070834221777068677754550852876795213509890584351931299699837052131322101521574401443200417352791469680674977042479557616645651868121537336392585429843820952332031771018950212377972233979183684642891578062330183845604659358209965307650847467199886931065322046033090076713918536524031520286644274375039494092009683155680600563048077364558681280484471444303077684568430952878462695692827680834619767855090475323571279807937282974207601067458613307620050550067302046162806559484949063515111509606070867995786011841566158692849447184936589609039691397554272408412843242839627788520727313774444006542063779233042047886811379154012412179967921743978017560786435912348038228948426375949487208436715061476744718100446009253864856821646672739251073916771680714616302998549133291125297458975592538049642588566614861060048759883572888075394138401103220323590898802830648898738442540171214887022819498967665689673212490545551501263001026834705415482397145836466785809200154701001967478381973827784326064508878812336849575609934409925499175124635721275086139299649453319577525478576598397911452910955678810638458732050138031547739437560229928074507878327398989510382399746323197764502390259911791214841715757721222644600605687922319415736890073943479939423566596978458215402438124785893579955454981010876576791461214877718420269246731826569351597882854468657986687830684762336239385875176003026462309525200846915180522382049072933055936572508993974815994054005330830104788981315244168201545316123240476884313878451607267007066580325812260412645254580496612058920677576811714749980320587197125858941281995531981447348415521050845051725116597743998250023483598021287397961419938959971818404997727763644871047409284136378757041374827170900248683218426783938019540533473891828366986430766599038395558408737740128619148561177675274656570742826825780438502323905476266310101435178907954487643155313572609888829587852155346816543227267853995707015564567690999328134930726878486901938319038838806261532676231157732169373679830852358454380957589005316545609348986296740846967407593300989266819223295505044445141774158068366776120960091460246824359258567697562308535799020244507010857807900187409612195652538458316736597397242441017024075744100036589121368910880260764762748015549760401719502169146311123389161174058107256409865651124857722308461980004761179466468167121556774103724192417068946623967107604144065728356839799561369352686131587522132515638088762003280578951385273190910885576023767117005701529581962702770818380370747145355494402131001701982230859715999736030897994215983672776185638976570938089594710902431140793570427643893843555300170815270529851615439401415055015829089210305407371489286460499341023911642251378958916609241208594947777141986092160533551162670897215708955030335224670105002742658635873515021151348312844706244448183881035736346102529183944212558395931644080889304799114036790207721435814238115211989527182834403998612174493204830052379108197191073294049843234704755383169598803182187841496926272306675864608225669041775747101287246088867250229906354190697932279702375780794617260184350662229294767453359562902731913041415159325132382542148656214159064121457637031514630443990084633129410094585352681674889444084571454413195169224169594783377075831625434588419008182021969916201666869398347667580993147182660753135529006213837324608148036521264649733369575063724797688270260327189507598163416657607836386833044845907528682846939191737345160246342080232501290118347559008906007365070992864302430799187485268812089208760867310314102673266294864882731257929934174049379222488737118921380194088906105327285277575275777895257034592302261129669537312377477264813860402199686419219848484191577195727089864000826816623023359947664740026288506082533583159117476308283664865303791307367739829029457210147103431470254854339633085187690235337597739687771344312460290230875194628671641644250160653798895827558460027672841739949583572425150984228944441495271723592175199861024452072776971935919948699768025548222169993732796519028770700855539933679370884858089622451537271602709720377912153335455415932091340980168556252646396874100604520574624526375154695552815792439463919150191816854973061240641850488107839314258882964971118820356736816270285338694478550722117936021614779669110902441543168533764075048383611742240014048941985472332469240069909153850718179462162651809847135702953966412863774400733995861555216166810689217042217204388434824120079876797516580110279738585527437715810810612641643066618648285941806420426040879784703773402569152235489134970480643722324720901536819603790933607163370215556706883262648225371916203782253860024763981022538850962658790068192524399262115757359084436405103377336989072208163857418566722119523338917967433591676387323697492951004792807593278455007947054934965773865996637673774455468340906776456848165630812663600959085131770746341949002849508156249640265034824538004817606888070949650750491666730283611521226258453022907591930447090480639166511002482473815167100108971754626710370777911070654372132062673629245425032978224038421587182204712418888861639860132508636522719377076142604490115547545969407335358094635067926131934792828155647638331809564168156884446904379298334416500738916034234564335698712382448676751802772123387495066295784512506864178459348058600985370755218821765258469158725541255185540745632774379069780471359030213925789819050284041501788730802921212533068233886776917392223731121099973604129839530110200834282002730952572862445689012226548215503229635682605528615109473084612465831190910585267474897235391662615265108609526941240995114435539604293976064479605811884300500664046318506774756288307328109390456340165690953482162014337685054104036423278792124789727215461765117934599954166453172142581164060602011519116521661524653320741871029359658002557667473195416890273313498907188567893667229880755658851778847420714659371321884090698191363812526046789783736873008074061634004950135448069374524762472835417263525179293830375650547179482716347875072349786751482881299482080215714017849003514190571312852055624542703220873598501346775842278147009013457042622219563909707455429056217827181111595146530031379203615651451769480957320646066541854991631739015871233003552765646389925505290584470925084396390200877579240237941278455512061861603472753719711842071626440424982588261878062488234862239568011006111660347637892734648300221026147560362252376853855939887046316436409785744372209106784619728111168934830335094776054667664566430784337165618363899065245612635549700006365707425443105197651569957448854008444920414148921947684169130179074330076244170773652570283555361608562176524589408727706258399772237839640264489962510732026745937227366253552640128803438771198256351740203337671726053908069924251836404267594667800598897452172159867375841284915373573901852581784703110894361895637237975324721039359945901541954814570068922047334561639100572226882511724047036512136257506858893979588284620186458089641176376950371205184175934196672332927262699626211092579074830381717395480217707401043185671288518955096401516127654269597114691836901857590922849775018953227469654293714205470041418496878594343627722635291180601535910564109265053757779293786905636345403140864493151580203063311988429345107755595022706487356809776032389310358737501187464221462764358126892713872481319153457625694245094144209343700298970600679273752653043720903391646856608916677114691770058841105937216253123869475498003255588917361240413748822022248140413717293860476737069162399941593844042431426080620791061236333517757445522997659110350581233491289067957236598980795028411940325378305529910740929647350890071320762234953807753913035012691470904785181133688120953825709110975232100569860872381140537678453091972913754031472800310115335368864395029463550948378084167494566085178250530021661714095452095923881824953762237152657401306624102482625152363197379349081407106677543940534144607613188724624727064255142053007351052493425332805710029660854713070703819451543748295237877843427541882202020808090833332804444725718440020302719327533431632050751075610434984536355407306260968990870081326332162908309717467922212536999430434055073469091026154256801625690848155488493192823067573086412903501964426138414726777489682881940482621871370314441514588811509377041536645034336579990955559129914216638604713541450085055626950393078515682476317857071105670617511342380860141228856956014844290679354131063916485679240216810315061269419013241439082197636483272728172636948570296725468920230800310804782543067552435069937548387951613714783414275372035562144976814121618882986340762259156411847614873339448068930463490626381750066117233304187420936106201875780756283867523286722307928323492727407524536441581120164669025356222221754417319175320751181996886450801762912540964984096579605258952943937777548496781243284667562203383927680434418012066446420557971280118965902392175078245024804575495256310988957487741636162091669968419646795212073059439729321021719886892739129779254577417006125440532820363560924434935009343809957691201694343897361075159961134692237825780061036448305134404572707862451306657671130260324033092273828781723830415354738742246884670146295068802134051289850168047801225683601028330184887701173593265146149872613592545296566943626012579430973460911946335238401885003895635871125694713119418043871730303414481366710059577196502526462713796798439256805872524837536104408452145454686089570266265305394823711045599355006384906431102690133580932858623675234892775798188461966460854032612218855753486840271085174650500920034583451856781738855825941917732965090662489666030892874514049490923954648198275790478406404113627122472153583130169872941122167563131390100301166849623425829177359810255911251679538988125204992382562849029139587245369336393224644866277086515902530417596207127852778220705072647116309031609534360236589703716353680867743267074426613133396115724534815221844917640815525062020059430288217698158712528464488131205759958327959274519363706255248814782116223679565788912678519291655312204894905158128168921452442374544187645260527990574567528023884867948061500803277768710041918971576995345677912827803169192997447518191398966163647228173737745909083225524908601862146852510124297466402405558754356384459453439615573537891304161590885316312265169637995129882377448699383122678404204371383930671812674014949823263945770068503347863412721260567858763498578571528531501549476645790958060654084062002728158824483395519922374915168884632189095925707739361691999162126114695500920244848919185677306568576045414286291671798710885531385250848205190164266529771137070654881328499860309856269765129448300068110020608661496459139229387498975494823067260553986075503456600794686392635509498987777615800559747609666965245439974125313896249654927842910533702247226364673550057376052119819529137225270276603069832992238726908773075586081232893227136166088199057391733362930924948661940964782965680443302592509086277930873269382481729953433232551514744832990668598147676783892448350008140338517984950984490579332873795093797860554937239901523668591209848142089921978084883678400780944296852705809501682531682344393961787887203188823328571634304367779092817429139663719072662538126321279599473312533099548723950683420736848399965970409212304778031567629326259900005217888836726856083260232455489330098116622321248576236314466637250919789982100400867190177781346546475337095383196164085986624195070364821710165729701870508735833144745241700323287651488632752432149417528434673570664289091626055587962088844759287798537959175243847117082112467629628154917869371098482620598623923940860784604654928439127917514748994025657296313900951624484722733705515604092243699234759708611344986329063244664042017841372211499364578840866116695456944900937288741399630614116714464675155443246162935543648942594273723950379967909173934448158952130137198469518717857620018765258098242452883562988200584211003881182526124873906528864235763549089958718751624886212329013896245456875007191227656860091097516799386079888054588171178178132450160174477439013768046856433652111968585527892345309160140673864196339625877929447324054103753091031885127276784208577659970356713486775240684995360809570763750023354407341549413865839514698176330425440957755941992289690896510831893045893663001443533238647218104154912260325900497554382062877635905948376845393378107791116632718361543812846171198930424582584916268441977471312033047963145603914300226951134694202833592724632825233532616515501906861063246456547787091733033226140801842466011885662655010109461545565641886282986804987743504459282637531541990331260686945228026943776733403136463571583513924192836103641390889210059161101499769554015102194191895807106396501484408235874405192871317275988815517642772731823476270910471812858443715759266241226639677337380300342804097341145831050620330466947322443788854753659735085315245654149980724810539617957537443256671049466390437208770490181771411195235623807183515071157347508452868734109177357343119752600868884261247527931140531030089944389785191274322247947524658341382892584649766654867898848540863364547164892333706955357409324574554754856237891785569508635875861623660989256312666504305691924319943289505808832692573226004171371218008780476665465392867839158385226498473286282177439794516461174959507105673847658256718702504735127390494291264958456752579822889465328932718363150953070920403576416302749541888324408745460318185164132818399307875205419007955611253163369955509509190516858954311571238190829747409448695110453989605929364265690240676287326814791630465713869415720044353225694396735447893050786742791338709491210868764440813317622886271070318516464067840523106530186090263762677498205218851225867707529884003495275666376423778321492981053465703378679438235985164833013151523569873306234166359603225258017071350708002829818149706155302431914846607905821274717388112398725163197642411478165101045303572657494906006570240895720596986923799312931575308207457631488659328824108939489563129928160695749236174168302677220702592126333613011719495575750994603198580721357825638395350123245686773405953247233023753121624798790151702617720963986554526056716015539228582606553455371252210723962957859654184226465580404329642527797305047957208675920092891025131174710250725412015089728689455973819041999131187930286869941157182828536179157904757041388493316525937594547139847374965824726343208730169842919305778078340323729657683223791129947385210787082349061141769220982521471565258064651094966694123087386590626805243158965204587877585029674957791623227015376983228369738210936579346923413861698796913918232359761414790542189845129781176338765807641918969055248288395358520837512707996417388744528684140632655647289136640955186131403838409317748217763015145393809371314674905729497142742940879843437588327285114230525282653174480127797153227541880539477900963312136018391227392506964303825938930000157525151380401878160672999185994974215503651864388487623339946888873505569254766655251833165596323641232733152710573057193825520230250005202416790139560101811633380269931984194452995313808280736381305973482216242088313789623633491699040653751825583636976539219141701932365800916587911636168548503348089505899381154911935228016007501289083564377236039825011159697145459643098758251244520591301105129019414506010043132085034992745010384673713733102556485309113538557242855683602611854190306596492332275462562466762908097817977371806816720266432583888564769833544905057831031870981820628250283113129634816809760057454075718132272903757536322061258762195462407450595755966678264310994398215473103749797239133352469929769540175301564467412204376053607972978215901542674380414366556519164595109912971719178237263117544420198439395604476406611231651504433668500348465545975364235468722113563809899874268379580991530968206590093352774574702445719389554616394973969406945572538110272363845290077997837693354428788688153658877104510161874584925431377946314304569218035936894101937667105810336133140199568269226436474476135366334253973343129709525199408213122337571425146516516832006970977341513345716527439663976182325779794781760773135736557482731005391050656680670017737883548330371615645002088951955825405662834797027992320199134349186143632886573333073035979151863131273032598623300996961741211178689024434204198228150472463459324932458350082491777524783096503645849910377228717455211914957309435276489803802878178629804805368367094444718892020317781218232551961176667341144081404187300394329422388471253522475246538399124187991242035284704284544652336907954770776818873803895823793006318095802732611358045410297259568045392166642685710431499445913434559859872026077883526250713404926805167173626070380700005366413336476143911268007811457350010171746827450109610674498169905461643166788534446987547819640199492268219195084302911968648889398449965555086139187642148353644831060081639039420648475827862761701377502693053720471660083165807595373135337680979107342964066611700560219701090276636596516406762620565131440388981488746331776331792696320368614576967055533281533191882032795675651229811318912397370124979343370664056685437481667743822191935196340957748661877995727661492323200884649940854313447863108096848468863595589040256355817493745946647775616986726741392480291998065014530298715327053308716106607303195612278541216022946068237404299471733695199947838567197558529947488154994322014659331623322190320998775018228823966805793893968278919180089494284578523240356902950932258534320885495708270595970181538179343679299200712183422385188566019709285974602772102161464081017146368321370968135043801885649981364521912766227190820594410974654890833124800821412260551262865771787428752899301891668758393885908789831552102147735227813112244252603509795151572353457417903199824823218244215845248315830328982888280689049987491976678282781686006978059919439748246790637957275219804366877655598354274940541386317909997675008541561603207013864179745735298530455325190822029904445986853770303525840776588761148054844101723074823122821408821272768168418454417667535424140084152378967976355656506635199810694066592930197531881176669083503998147983932513625851076308449632376784067063309201093253956956421504183499934401567970301681363362570740991528287196531110984956554462964180166727919957959234159082414177996127767058585851522627544221244725361440693752704668673915779015403976218067008798717992234801081940700803549637678655166609056810058743318241433037870087559837946049997870900764705563845906122860280764263257291127664490317930730194360648180987358707351467707092642556512760895993813446965859453597080372215210410628572871631363113208146232599094036533893520800467460642072476201727699356304016290358928699737995146005542305703392726439955302120084939110031467461746660719091435071742222695965354544318497945436464245166473757699613962217854871506108685546770602414460704875149541511838441533855989577225715591589422342514643942233277804051383671666736616943550352016042047232444871243944999528206231773266151954818827663217398928947723708752418249148993293671553000136310756981317639353727806288318536184164640261171911030323996371154472235507902794399283708600328902510177645978869205079989133454392292928141859762660507892167260778244202673816401344826272362687661835739565419980775242381505841639126766986716690884722126351132337359991140436666083448308376494962657140075010042744984136110583297883701452014063018080937265620349350336071684273189074536964964533415781661209651533113346866647161628176929318101122184487421126488037337294477413393037169010810324922796514424980279182906965296309899408852886582549887346919316439546113126815386558500264451038755678407336188863955869247714493504800826902924975681296586813184605246630423958184271147656484380092333424340163996665713183128146318199919378177218905763830529421787259047606923780492865612955372983977456375269581640292317280853069450878430376720433777596494249839599478226692122984506184837621544471423977269355197615614260686352408230773614278650712478092528176671491251404728376144739383786252342713196437645647064775492558788406299925591364992739689647212006702101023055239316046594550307196431164863841428252792807152945266327432077767224462417409560708530008153544427514184061177463735466144061460947682498235169523219714404586160271837384961220283236309962880808924334776348566017939037023777007040179048987211688568605674674538883251602729055100465199883260374850361377493116004717423746142795501103404070816183694391877638836458944189966532222641730835625639694425229589376642134077508433308068204166283862283799579453901333035113399481959165030604365694065598556046242566091129778063349781718771129236098704706558639897213871372440866859752875572275722802450437572090149652232425981081538531506336091777419646086566366826931452245158050061724263480028148960801305070634762974274315025514687420865697518819829438372246527650824268409328357825619149181847638705680486745213810013739584324647062018048410894323256624240204755206020880711511759576748597137030865899737127450791544171910886589727543294152657095423774559177109378433129812061343693162628727169827991439388280121792155211443494438484900304913042285119909911743254461123269167418227113349316165350123466208865589902316265160126267376734028229895060112736839388100248608102614948155722929875687617430153070434283277496756567158820134430115237933564754293085209801397630044752980442058583984048545765705069533084040265175569996254626936397576679397185330793939554875402902344394213101782701935745735545321120248571771501483978564164903712548502063740694155308615049380441984362679261708415685812233718783025756198002007639682122824119918242283849355799744063256558105296952765349869169140195599500848944365599844366887366461989285738551674529535769416189490058977409055674825774168591829597153238388412725591321306735930860149030315833255860484330162075871470982799346873544633093854342094076882579354077761639988881796329856580171966391650498279144247878012178628539505904651325764756831515912719100727953185624716614587554581408156593837016505364921839648929679486716915069539025554083963760607531747007440563717170734456983987418480717245139202640166415224595904106099543597055357793267669285377214717667712329256979250900759362887845918888667547627890838500439620457831097968250192715238656047449178504091880670338980136291027436411084126971477296652635809980459751351539488630108509889955404980729752138262518962355298598887574564273714562546297632082938557639729249472564721731842168334407333139352324302682161289092101103792585642060431802974811336969313268304488630373183077309832361391033252481732735644257906736478254289242659719040666492054411999138549360460849298066299773911502284257629956149789666804795216162303133492050460842641354652760673220844436921326908294132149978910500875075915476230862833919250508778469912035576703025889310283908698575060576581811649686344411757694323923871485657200808924770663183613776086246212515601321733088327312715375928735253462011508198660446005425410504657841735362240306791548572417622624825763549155129072866497684133983782563600685781580212757036403719757968010148120101942950981079926154068816574490980616835035128551721915681880897205945442892334921136348573250376289407183784865815542995242154606150408966107250049189381657116139538378543518931840851379870565020701169541329652003973135716220937939222565067555109913301862786977457681103927506110225435518102973749057555635712923449687156689470224527253330990652179077079356765552164713317046319282956847281792533462186123462511973653890240023449592162813477911991869654948582016609990963344898791538174360134773312911860704145488979480987373314307196802535410339188463667503291300085399564078166554544628277031070614585924875827230543311122244808971446068792837251720526600322459710123022248526281849231583412451723281855109294191796685689639159870902863621341686888393431897216216050324402727138471410500328333505763670167886831701267342986129471962276742670510807410076734027019464099548785890108410674255560611621853740502163299031442679443220458439045343096942920091077509271871562107672865548217487395430760061528033740511275435984554809156108285105942254721777736744635528289302233300689463212833924438285988415552133796708309406868509165267498495673250416029767033430616962740285451454767383426275901048238199862689477914282525052513490867329277132690880387235612608240330359052734432338598214039284645769483823124771510450425896202745773285395477781771607253173553645726613136761136512947410205110501290237849819838668910237884935885786554432733106182116980180865323306486253498983337325619749232609671609735411098658595713034692426697433013842097172017415031074095752778320928337920533724154287139214303989815909012272752450570179711070773189769477539897764790389768836668043452122261300438980699264275491411670895136380608141769945552756765264656414416030014998310277975350739213374338389339695976201303467745821001924159217490060833341842753756484764318739210750511433872686916494725675181868294691059677105479662995203339695532558996012918868784284465353103408470753517376635574307667292097293140856116840811473103060781495057062920964883902384602209553052267829197645052295873166694710084984792807586696790053134766883620438211834855492066936963901069645081391841114793528560872751241301978285227039699147665064074491465846500656159763711423240354938945594385671737510662678586438510312979334478467625313017108192020980544842943812032169007800385409563214241228562643485545273348680066644769751151875389202101290012070855807844211978704486679092567988601376873071817477717129379211282471788217525321320883789850278404818731603822492197834889035880205182002468031286125564356406065975437089962136429593312659904426183153919452228415662689884889094840023947372460770404754527503897380042031959817850158595859968253342174379068928467088650485085833710972247668352322344408290968297754503126975488103758713588590800073983276600343984176046884873803546315857722237541555715905488044537452211482015139162078622774809996128826127575280839030645408549629312645871390647619741025399619995067409455661788780147883558263914030613345164225701452593598596641816259292169373813013951823274900163298452206985824376790491510411469009808769688223026256521950304428454919285943409223882612466489494466156325819115358141427963053725553919670456820038790993445543329515663992513361489204638963052746758329423013308332613372274298469077134232511340008790757522303710950173068255208150875698214002216501985455177657919111571254399234035866061383624783575401814591996062156717141006340673390583666620164200258642344433732730380534147938787346023210134015492906742420575653259207943321741075857935296765219605689421577188869675782068604894813589547134793106617585500633520105775282721020410880519335016511690154126521570762973004459880940379804230988391376134241355918855156770305068932141774873363482641804099130300657132986338050800261516432268855273835493632206838598996451686081625760525441868318172331776311978949957956588994116409282867913922743882682498505650811260867502083300878099824901414472989494206594453365382509395136587012822490743543504646957862289578838855427297249836172599139652997526449923839730520765772426841376382589251762678099476898545716124728558371563402467332112730914300690802108344001623401887522826847934703613439151568155402660732533413405906938189821192065193809611116109917404452859060131930314722263675917252983846332422075626525322317561815157791221679037008934920566949799990004176007851600815989782412918430001561409784016805381430927338306592321592328112747441655420327391804674891853822092483123090287694777472998539211757260692460169588350950242545075388711491798684124370579242436034908899444427474976920634749268396254334073092936289353646497277755794383614752340149568569453309731693839479701496763811558511191136398369470768627897941483015315389767251653217271430729112063867962077872604410161394205430975948723011207395992343955726668460453000282954810808327215863689823241745439830997496914403534700000951857178889725071872059036286385791402088875929283191003013632127033039447656092870782843737108616625146731763274946229400560868150490099118084314233917989961034509450141938209551186977599977123016228716391929758195958279752933953612665565572522728363219420622845929209846307382175759014078966875979986492779475966411617301582308602082429623116114451051323320345608253502146488405710032186410823181501313371302033537882436176049416707915876358836194793784100747755758433800381487036232841409622184760678109179383870460280392492337225074422117228487767795643793187864359298981114411969573342870644996155486677725862214571814423374634891278141060916954539790420810366890250249407680675958804334330413243997054593729495654431676872330446347967447359740240147110762177021920218490071973372408660405745909607288581876784952179441767381832092813362517901635546446253370016981819968350682239209890634828242118575379685296879730285149274395231711174788855785569160898954458246447669548125415887304429578305568218526355263842815407288611419972029381606315561291126547112080517433728221227959105018103066996978429561178340211725932226508008196139869144370834835655399695192823117450678608286202027847498142214201624398077058834702699646608809774547478949374557081625121084690464561179699035175478626890809476432258026834803004424334603502482812048273987158905575268368378777270265330665712216058592654055606975341246606553812201871473214250670994553722895662531661396895216185422699362976421265811849370607862247571376749103849745798880304415958984725700079759427125318470932210379204609948929473930444992598434835340067517106837550177923633943336708734857156095643804608848272487435106076014363180952164553784283890708188746152449330534993344620425330533436419589293197073332698373917353936488694634299489406681451330956058182098493992975260480882004841975908782831629200943845059150347967180454434693335264713780908323542754542022012715612448550628649309306899305393191032542835084571317462402871877016332619063535271883491514828840241370387060587695405504216625827177307262282998837613730430055775114929119625098190839748343406753239226339742043755136587563829282871552467182215148759275409739801896765907749478119394030713863420955426661872745902818213539179329157806742262927715355956841596334140048079998902994084951229644409358564434389656093767987466457064458333993779065042251979119373144779497458538902357237319913646535980537311228684016220169941886991265832390317240590080028367089066710569925100075083363310420224883859934721209300623231187236127455370488904830071072946703018922878662665232070022113293932613820337671661796615530669536328518314362734813975860476795638005939486215222429751029553837379060652795941330358839443764539356407723321542573072979373415187780398121813490252785901996460397962080826944786256650933089789030094803856621370809501839721739604978639791181184440272649048964175334585393692848555579155404492564217842308081244010997248947236207526348382746862023926667206519250781394210875302952437547917098101042991417014496883648257483573442450158677959766486711374356255937260778837571312178351001023432632478107000383290977468778230212169319849537767961705356143886875601448139756321840441392802650658975237411382499262458534333944972586412438200172893210073583281958572498156147826571166413207085030728267695965132392451847239750562332981916259306882714808157491211471700758760579492438339242058445889098304799360248069907134757198406830546504452407857073483570985656341883989749285365774404487863221428392419964152375295452612344106504543324732768288431774847793039063415088795870551651537988804256861211969154712196336187262977115478651042511958275055992476255883085566532754270806488423372851266480443167018201161651289626451821689126901687792287975727414677825745741264761690201967080681645241259988416927797443389176425504942066154585031880446118317551795509895820893760165638267697093065963408828186933361992695655201753131104196742670404703395907036004059083833903842113331264736645683280843219869738110975049438444640468904672273328009946194027694683596663631545148661212815605051526571131815213989372813538708010219481371678328950453264520735574051045444855461491469474810726855484885396570535817122813525659590616192555887007329759085194160242591522082586077985372446765576957786866560568797048673886168495539587458571196367203164097749159175156003786618849206433089298181744141519171525760023658759278105875880906315718964434961727210222101629442783132611719568429423433557908506347646089343580058977728078509808180809995037106317194362675467620171156093028804788107612341036856484776876839436666768762492980048001416207984543138208037200548202066537198537795087762133373759492093549683991969467390943824712066426002363827387036796452787189235111480345951390663246955647581155204563604067282043567043052762489638100576178527370922398042968293636509341944963018340512126387437460557326798662018578530244414507149670304764991771027688132036833907753181051897264858360504244574732575303241041861416086112815719043635909319020383993603891648178645159814270201127367216667748038384497679687297071132696020250298088449683299598148437954760367582158817287183167171752053929803852673399683235840336594126293858192984920164014674917738015829761678180636451012832888315519021241412445898470394755853968813415804739699322971777381220393519257562593239495967008565967590424642230736043101426926920463940654373346953573984359406091976840362290573421356831029244687514229379598851079578450859644148354311856063905028774835538231014703125703015801350072290887986538047197371488211307435612127127641765269162970097465755220616630538574704330127507306606964708623365580116331158033510941151643931101425488385759292103488687612246392641750434893923917130186726263518959650030178285037071785034169085341488992566934771261889261217580858788485816521708334100301417349311277318735078502123798904584402717670898451510429452268574857513818110104136368914619296095941910429504902966463062348733190044249759736096112640906889938712758720150881702336301095192514007513583758967884733246933250212042362876376443502964547201132361725266592285346511573573551539426705068795288121798935886197134731155966216330861773065585520379053934270665258932847672381478682658307825589766773863463432281198235407705400532856320374292758384653503271870449659775190186735130642500196305269332311987544030382784268446876390448659172226656602522689233441790572403577588675769383404468812532614069077377121980749248802327685636921530054043732266379684578439701583039203041833349691212737772004042325086660119760363944498452779558783591521362876817009036253584906523550088529811662917088302071992478153655934427966670411506265723244285582702471152137354272317380532815357245135049371420746156623481444135937765068570604237683420844660715560998392581632135766851707802713014163145680525250310567195119422864739228244024466584807615522077340652905234290320619582104577593286768593207541679077304721227150550316351362190516557863875052381031831023612689047557586647536459398477616825437929148480592705881638685838146913031992246005677381890330442716745321398931894605237092591079253539462808105354229093918756177109976590596438899562741352555670522634283285022641760196966545036163287227620289140344496075856044517396733760937860690165514962142982032435952978886021148173695695233868232144592585930214507616655260873797999207323513779793777155054199640330397279884248396240727131531486687607146344052425195371838106314735071980648471099282328528187084634583901591128093974478749969270893665456261091172540011664729274982316040206145295616271921408754536065526408181434444382410192031908758055869142193518802434946573819462487131688812397020992798123038746298924730922965881409241454382284855714938642666567490241724763169172088413621241283575579049557437174919591608273205319623243984203370040648193210206298603224216358114559730431623618668130331185315194242280073713108635791601329625575416148545221455121967691821935358447138705897538740569837516388623492585820619797809164328200553189261080824528512997015512656115987971156493580198153129686343137804160244378416255280668907995930356571715641727404352277513957615342714278631193485310074411772854912853570281510292560293920108763814109062418458390920107029014851968094996095081377145512572751772958296807239035784371372187823190928579727910330521298365390373623898988214043212354169161867325969074220856046771381354981571850429084345804838126261404042076521930826742954735565796906638677490193102448663450177266015287466159003538845862069471641193360951875205423385363916604701979634973915007620485383976814696162522514977018296383038776320827560128293646853113747882464361084440539884187281331508004096367721578770048091470133523024093276375234030646364611638229449867658055513331844585317710284872312388954082921319760254772699899742782473574152547071222341154117605735862398207097084513464604078255070974864790918920086463143569252078684125544299073316216515462137032874628975146622991123470787059585299161207223072929729351416425516026010776873161110213497068677822625980065294308994421448563045531860020916216485002792793213531332511758048887141071616669336045684032302618453647164029391116251078640500410983498070084846992070625658320167735132835830416841899509230160023245031644086436668298366342981191087618443993417239200571143466514446768431390826629210268463801435464225774898365929270802029162425991188898850857904049286156634801175783408470088643096150488946726286598897060691589615798586104459828599780428555999762619771047713259128403240375548110153027414717821900241695789178133189189655833164074560264600638541750781671290260538509030956465531332028992752571755427715951591625693796590398177019302060341873652602804188151896102752588410131425074770070619431056287118771809032917238846123149035910556612638084536628371505614707408401306886218800028237081284309986639977217749347422188358676602241971952914396929614836197984119935575539809396243002191819553968669768188032306600462526950845289015266584650711359350488048878089868000467394060791917620719869269255122881990668661818161362865409927361592094072305954064458696395250577790349302831044232421220617973315481269955323337816452271684088167171926766737952283882877556090833202650730944470290743590253452401042766161682554987165387743130259639164690888585935554854659743768539865299670167187077071272010705332964396342087435678454140921905950621098349338324994585196779722250277423091828002417471223514825191413671208427578141044659022926228685923702531885574634137080978600199018401723971837546818474338376673648812331213270376380144795144962702242729406752155975174386070198236784563848391698820981061346183877038254037286881072789810922797705555594740293224188966429841992450025202666506541331329924868218460388226129589693321983731736427907485142635251705204324954305048804135070779368708929270999550939818330719924114701139491494733748265420856724834512686314559936488363005053848677896091934718069877520176280515364480318435381003234527772254781016114856116849544107898341883974808772385081550252590964562870276099823608156767588036175954199001161818601743849860572342058852374029489730781978770661376933851276676302546330653618324378513235680213372153976837023145621561390102239917435404726500225316859046462352397913479574053847069803219835872914892826679478776434608027229817414601088088875211152903023918200206185424410748384455470491571796865778723870709238897838130354186860914539336372558915286102849206987014422094050059391164485144801180741849293884544645279030061371855831446799845569252421042863102502652106000022485198422622115344144864981203598386940208388405732723107956740521208193446593731642438863207994246224306190811759433998144196590547945402341217699393353579987719190750396156381993622518989063106560484420562964589029267694912243136983224112485258118043138510634823943646916059802565634490994798594913391422312636919253233003261315462971481752608771614298055675916568826006015047741093591469458867316274724459819425476515706655941697497437997725442720044039726655411595053493638470695989798835448203392604813354240253916319658581276608212453050191378426794917862319061665680472477322690570702727606386652483661968816555090438703041952975607118295789149652279040315578347457151728675296698345676761849330621068743022918401417774785357917211670866786847654489958766436065485116046425826107713389822333862921290659090552502703374904738215544274364999503895411497592370712263153525076322677237714694640134225559546988763000898899799822733546510627137898591085408115193758291609192570724490261508762151965685472788925603447001855694618990764349862604994988420568115932222880099813818056874281920860871422610833502531602778821837403695494294808212075417212022709770637810800763530438262479334453759640327940746012652634645923471473545844608528541990837729317177359260327864637668055331260822595155203409128339882017338237921165061733405318818995396423183776788015787695478674300385025687944910902419274720305175699647794266606679838590734457684115957199629075719226171396999612189925500238414269498423800971806708274757973617913332845536651413522695444817825394809980659058047633769481009362394460753221171191400396508843769473815657924318889579275366894072642435766504192744400034861434283676045509982800497933149910947964873869238262301999384093135186771322627291884173593559034429848131003219558015294847469294365853017370089886857600038315282266806684481182224879259931488344426722475472889679093729616270458243933183952624676625784603728403172734890858395959789802792481744826680724793808632325143247040273563546560572328124196641650637262528997022851858360417359507716757920150853156178138179609610251072043685969921724175632845222551493426294467751530631784102624150453619212651424304688348207969073622720602901875389866930423079575120450347184471163479974740146370648599878222110103191798285939975883825739836353605163950207597636489660109292873378021663213522440916209170312931607065251338374111333060900906443112308347988092661480017121732044985244678960354713119854681259716947278490380097926167644378346494451379099677302105306959334234790286366336919483349820744702837715162795244247076736434773344195408225958905671428651466551464783527791393038136921612505779222280776133119568551599795466581968568491853569920342908919547054396082468985146848640004109409957834210508273261186169833427191185176390583631449264912824984255816053262279260784772743845152591882255360122877161752067029646933058679980585702471754686637720319330640810515690928007956694736411069717926389826774582985149674422713349237955068658065690291248227613471287787708661934410357222748207525089453009619300713006810775226199095980634336975860256311650593984058330329168087150554707567557388335384128418322267106828858165542650820264277828369975362583725241415039540355982717281799125109878808965285882114756782377944416783502935082329150503010859308998439240359511106807187222634692983002288075105922154529591375866993146986106088109609213781912265854974736047546508641344505713997755871584044000640242401180314883015209927271918313411763230367442641542024225290147458453001962251657902512428317393885458745927516260641735835600310423123921267185121314237439461792447273827577200657675295338504386806244080654552388074887928750814806122869739191053657763051801147471299808381169758830347786763477110957403936031039606681549334678333089688801216415806024888279221602557151414194013266376558126222545071877869570273649496432877802511751946388574509701899333655088620464409955869284570615866584213259580197232317922483839509513342206379083352432155288444318349874080022429732751381001001472789035555148254894270621327732910201159679911317362416669234874544312209480373688266702266071301175743523655562390346695861708124620284964352229619316722694227830662628034460094087138971348466751309146889008793524957732105268466040382575283496926001287259902398168844448938292310694559379124087212472838817755151256600794434082607889243710503136415642187703077474804682124226474117449191308907472005717009873413005329040197182801156889811685375043873512113093791860052629049644222927303660663913655514018921400744264071339312375516694694432832413038777076869599899340665938924694915854873969595580729230778029356619150608214271728641447492195037145256915705806233090278013765746166292666878307237889028397229736199030755130252420536180149940208408526628375593011289535946719867298655821556798717893503975979367380707881770197359993200860644997487886680280868191503521499212357011460762282821803415084762968220970766769199028845738799963873851585979563884210806006825218169172541396684697216143261279089385152457304547244361515333373511485446309168130145573898388310213264055356079171446191856103610178549294841744914438328733466121090792634442894527401418109692333698743439167062676119246343690588069372673381121693640215525959432012497954391077911326185576426131037163802360053641317960972530355905783294010894994016217370284624469158939103930783576942109477169811438944201260539603305369466795121114120461133985863168583250868238889390449043117133675102045671807761326890831247734793575969147399254540778573866624730594710891076137964583807145588245258806660779686246609673249711557275400762779433882238564850774904442048695082167196865112923284772315234993662394376422159171983669598926793176669467738144808032632270985512865746447967984908288750049975943978481209509420163027402722558610491849402332700563479389181211677455177156716240422596160152569928310387472092503297740679074853897734017119944298740672652358079742881828400880485199213925165611115456017663509666948949514744955355234311063302740804887262235975176773059116050122771091741018747022629986268523004924827792389261901933800747495568379656454328145216445182537328547517300377728619494355124865161821275122975386815793889165494280462871213710968533605194756604536283424843015815147512202294988976763224504182980849991949392175031711570852292533127077403094389431044504852660714872436095658587853043730820952245654698736212585590140755181834425447123723287532509012634535801833610659466226633929110161239085475878454517479634100674668155305723600167797117643506594690910848274530107883283763871674099548976287192941135885997878083821811760062276956372837268511572132326763174260118682963876882187723968653655159886051981529290534350302334704010777874662357581667383735640538159307708015753906403949867469270474348691452714422917115035890209899042161407482451549185688369193013646876099497393327335866833515115512194502580585334772350143627864936058729735615608146186133410999041623392726978589717185295731712072627944267144685634020055766408328999732108399091955471880275300555782596835724545250529969866774746007235618639756397202746395085150386270273230623067952704694261128740731268647726310651911140383607598601931110972505670846041097189961300725999884294295998159803851864677543726251266750194030689595505249347851929882083662236524091664561532087519979762459910238136544484436222318429404605634608370895755149976896447522916400259177445710677651161376103107731921974666554843712047408267114537090685122236991661187993190341666424764570763762023532085417161537148417184779595968587643502656381438242194713408150317622791282373150957785480166466020666743985767227237996410958654058218836590493672281022153745374481229187388558607870534413972420467599592134104408949543975362413923659730325136278700320587709815749514202703981570159888930916032401218127405453530793971698079535631536079836889445520635891251968654124366844357345965895916348962506787861838916087347129858761965478508296369192656386141970786440360675990479279129047897631635630254744967866541003171518030727829955628979398635542543005817858646487544824795846969994654099882627615663614381798221065656402291804737340536327696154835386283863289486197126468082918681652846488567541723370896367123886789597492210939298668730210030968797091514965139727122151668389720322625891965033324373048771668659811276440956465100324310499860157991285629993570444559418171195618839037150845415774723987270463844702705842706336725535427611684331514635521812501592397527269213702937511302160449495071438234199718179064783292594999850475199240884384332644415117305982676906516405729235980044250503143631248951917963736416308224636811126370535382899412506925170533375656868076306951129828379732529514933603259611596250880415760889371319589475599889908935441408579029012941732858317715885771728289001032259354712569732681798944968484438024791544658255445140303780130241812760631671888209450873225954322868627931236743057339226842344707809960107304869681673893921114270060139560767696935691883589696952827696439799624426001136090737776663448335656986117564801050743065008550714182944348472173291382257575599517456639091848842686743713111372706524280799115099819325206222790654629008929516374025536077235940484882965358905999267593239594810200083801517432266765202892863514875775848189700989304958015904736338706051012200412247456188176713975520808677380900675099694708140838290587111326944633837382101362761976207949382588901493014461396182541979675203292010160175484940237708768618863880119404888505920865129432996765159307107345629618641238432870664356592644878121227573089688156752461100753872857277876477108582508978832008292764361714068686758244646268472098488304519740895018317247513316205187496881830709887098591720553494503376881735389619812924038866669927583270103145412952017101141916080323650892350476256625388528852907965441346390806577452212670800659666548146933109056271507699892252161552682751117630697188311720091319296090473631060988257780019780285099657297053124225568068729448364810738137411051560583461187328275160546932493564650013951449366975958446774441458068165686026374732063332479570379396477628256687899271352442224587424307532208222938851190736374121608231537643884298066923895783547749145602183592028760579033096192999886232284782659155354285376590243882244262884503723577776233129298974359589313973404617119666592151111013269232964041081304581669008847664493799900283319710506575701696000220706403356299145837563269012632463753161001744684849212850324629007291465134734835175703356850432335581959727260147933997720113660785672895145270695268483482958804727678808632585621175233247236516386729968681370728279236768061013257074698968285132689819467302079873997206914845143843050533736559414540880028168618415970166984135047930384769663216432613309547106460520763272508018474939581539324911563870354550655744497752281629529245747913813608259350556484616756310167358509812089890937087813076888815354025746785357199582474034855507428173840291223648047858502494222208158623909415957604552191118441233590978086398238291082854946511935501651948167785609089197715329197037603400185013987426634013123407144858555574123717993630511620730735638624154768078864579260998997020691790850972809004719218724748416723866907418740340470131799672245454412387310047321751919676488329674193635821581940017229668561501882558609134086004019882376606414613553330509591856176221256153047435964086009813852349117920664994551543489399975446166431043846954783523327980382260894743302196746610508918248478223528663881318162398088265325408095131988771946374404323672066934334876643508560273327296644131533016789097418329356498109986208614313023865282003326790396003886010758315374473350842387553468737955248546641062295082209996102569101364270386152696306396692522469873641328019356986774612720692486445275537365446825107958915488869429984477218433480234843422712973609906490208479965216700368638673998610787586764740372000716769525732895047390199208593831346792784177687231005538442785433576804159182888791971305148839929042054209036132873111464585079904621121812312662014911603820537836676994273380230602044691818167649564298561362964567593610231717349133443789656216629559586426213571943804149291010934116407631394861711386700026389316694052539138601395613167217923701731115796440489211393647519489407343395227278983692511343197367197156561928086974344474941559241699513174850221964960625572837192597823209941881827281662517004703631705089088716958429235866346636454679716806038443001318529756004228556328424284086303157986254781525307820185849366826021688001816381758742696008240989346728480315531318861369405392648664516798789578911623083925527169251893472966213231949768880838967542427421523856550057647497870311408318562675882211006920909364188652714841201582769201991148642413935950274799747221214432044693571585865415947967853894892431957171263558795505522577460267434119610031368741493720644841031587348893606625452361740292142469650563737286929660632358753057118707960066491026372878296583067812454038967550620518875164710732477187479155211703608352201327133774479627976985995304640280561479822405481323893433320959390235109301237583390052478222959641414231125914111813397023615642101417159201150213206091745171559538993893655089609137183772925475060278791344528562108949535675313969898638669646995727711818063421082974824423126077932626665938247486537764693052279496943983995486982835217286901872705949529471821917584217996314156852875761882593750570431352940413379598720410073905481776606034841790934062245084490886332032919321131490422653561937636124159058916902800745779261519950110575007320373979450641916569143060489915865851148392216363624828927231362461359586489455736487806489034462349456475664268908404115294497195477875129320602539298566091261260732209927296008358790424716547636716740094594542922518805617018746218297027708194279635647733713138417081883320054065105811783004751138261281028086414951070094309996887177762991335386040907972808633774325398169478465795169729675802214149999566901717781569121777629666830743561409010447998846323015162699999412560669626358160890633986739689957585266162201753468194678349029334402805577833801962849042293353465950748567304561773723586531669266601561395898941581675981287371993867615735756212610576309846623316505049819655164922926207723870553557363935917440942244257299861363480497117713064914875776604584097253924000087557191781066615847174040071427711912790289872977478878394275950743822572697170513493244919262085906260583859461916169725276142306012354716817825169488331838936509659745733095668828989798021943406087951517508803291641616630227940330652320318287378790844187371123519334319163510175305588993504728221750818823805634036489758665352912535770668750696732533599135160082721068965871357402163921274040150842490908464158283588232411986468428737130285475418528741214938974639653955333355918422700761611596220039993823240955684164308753230026649865112331991608964688896836613100021992171983630083141623953337164025490828360472937488205671793121375354193427925665722941493427282411936735781523450299439455341565177797193644392072025991756228488017747598892386543241556445839073696876629134274758748108837073808560247063100432683838530116249382770286538585345725123942245201715961964639261630094699809916892943440541590687284837440805049635625088520044342782723112330594549527664382512196482898785404553800136028337767201005628564846177994896639857358440052498808040695143973619198838043761336007804010106689708699270584236680945819396224418676183803427029950496180865444914716663415066991538237310310774066170199673186736714264834865488372956794330405347472996673406091846111908397511849970066023824366211098172459828596367137061517690572220748992849310289617106506213609181790063367983077956834526924831586547078200886750804451192757210473190349246748379130614691243644779902633859199801212197330493914964148743190501578149290993051496674115427220962567370776631293249850889755464318469982533279322466872649509046368519321319880061207807329353752326748942424440034926980651245291976783552805971543716934865088743792131366258595766514455180962853607178428230094769905397887072967527016360570660131225691772815404189293213218117688688356443652107854532313638513949927225684978182197893811327276710743956891872058172517839494166728171872368138621496811845338033260869866694198979619052504309997205024871661236265174132512615610941694964939698297758888050830307809528815066485651357499131618643027414103400993268179608469929335261490946561026653385348931041969708878521816798033315155758601803839034562290560917436532141026622551689355386713567135702838584442146478432086568865784560296924549784426365560528207008476687087564814857432951053373917339151093563672702329435163395937560775731449839793874843824957457113843382065562318053644820852817787722369426422916278219985920610326594486644894407600848285046076026724341342079962053426851067555126647850366477454002007033848203108899953278949687454188009941373644915165393942068151554192575435084073662126437823876955747752259728588142125213346416609813207146050333516826767263240582557184514908192567953730590412888754969766677860835631616419679414219525499750816360014938674865559901977794024673039213278195384771257736350087681760753064980234308048759703824969226641689787429382946296538498433095084674045884861132752590033775642281599211873845475125940112268767193954694310726045265392720762337214706626771810820033617473529105032415332922333597533510156045336364531135205653714564781156049871694725015926884110580963932802338871983141098107686048591792883974190237954451423790718856241591962784369625267266834347214389973098178998264220867922477517792335434870754042135166626394219493697057760993450961000363121386785322000857689347793018446751254165056785451899715134088290874134453043138221778055211253478346783398349910319722304048760943186893892971866353481032473595622262410922554517227723750385745708348336035783550897089628156288678120597756735638039686711153353976745619520235661426494070328545047452185450374741155112572231964552286432843562730086820573170762537463711399605171636336490074359170854632552465165571209320883189254511316363625683213483424527155941608484887467473985198369567026944423700135124631105672277035446474365948086080837759316147785352769436191783566992037103485679444513917970608900187744866369271378347422404585087304592217841122239241787073730175086758931367868580678943020085767679797448650466669571298247081553536619841895736619345148334156695960738518148002988174119210637798044178585597898537843882450841604500678101183462949128206668745960355423137751639360634035490877545218395869318415062690219072095886293214783276869972481822196340544342258449235695216529720102863440538473032454126397872806851780573147633522083501021394833851312975430416358499205637065225065030441112104565887818439706038653845179646630215194062684311709961437880769177784343555120202058325778925314840748638553856739215520310107159797753605668072858797217966800244636630138395270092279407431197701604822295420311440040588085502333116828706729572155362830512219779358065800128001208909034189966765943699981080276358119905819041869839279007457634696117548683321944726458783304536863404447824537991381612256724068334887248944791300242878471090415629954435190845081194297880342868913623107762125935926567159059591165177468893231809825405436011671340176216311462083188010205455564032886279822130185435350860790613635443332279978419269042117686025291575622710248403098659962134983250523677531719617883300866328599460275314238197947567884960231650200798736957733285301427655253521783493795845697093282484573620478553637358858013257208585717274698460781105266426078885386833867911903424704010856277023791270026581064548157944761714503086198727772711839931852394079410065337673878912828231783542285526658097672855648790121033532527557097164817732161313028614986168453080762989566125583632438941053425824282256746232202078965055199815064555432247568374645326079506502277402759307153189932715594790704380942340469839981488773011180381099292584876480373168213372946127438855331141558326851779912089054681010222973643816353339090383229588529730026962287812970319961807306405536270048540453188438324758040324177263015068323666205978766064932913510296346014174067506009869578294516443752336559141624542091825789283616441591006057807493347900775809463922007763582615824607780866268002139155740117946465234196017347238606661043442446504715161149623177050296087778516377686591370125686761247734132527406561281174146078113374385122124060153209381547084312485012911925917894018492271608601665474495361741112821578139426728787644362535020002305575880622015830823474396579033282147842329959379404569868350058308838582941283036674323093082835722865515097135397246656777347223613627023710577141386103935059287430909444891973112821664404364370564362076025615901413881867042634939759587439993383224676814515716511293289610907039556114731446897270294265257407879945357733541749281264568194281514449700014078157297629866858623750747077368177407326225539934603529828856816431670104732851469345100575731187324513825243463127894584025365489617421089445552227331203334209854503843909555048696926140121925791745497337093663427613127360155118035152703366126531208743721241038523386903203305052844628793534932720046482896641159302227437560299437912495792876424714602495173364903162484019711553832686881244168986344552305135768576244004706054473133541328327802501882919163924130609601142020099584858610860685860291244609981693910298905199583733605230919078732663835554555625816507849803897228710473040837609350681587370453429693841003077329072336061095411923631611866861704168792768145226853748596757332106963946010761244334004998364083752767523765658987289994833100324311564974356470205583225561596363272761061952716525843400653211673079077001805342269319051616449117823297185844405004177419074722657425587549257804551647717487054602211906442728882788515759534557797227477367860844548995977237922484524199458374832540338844627953559088116033495393529644497733135935167225512043857984479533605118672337361966988810693403745043897276414084112951415372417180368557766070697573459374388420493852557667827826545175527362512420691775952758116260524493108698803782835954372301686701970911039041745899895946845883794856401986373183626948839535476207470132345878989993757191830979348856197733612583481522299211809352237657681288931326771723426667600810474145211696476440435160103533410826498244710004402829479187884639670740822562460920926347582595484457982273721036534550557591736681933649960684485972711585606633349448592000215671774382731102568038739843356179328008007646512568118180341550592854405163834303699069040415872200143232986734783119433746146950990637439781121504773824757960219789927779416041545398305850292355001906877089851229080219549584039006908135360769435161624546817820710201929247347805848070835008114805786104592406803534451656457404878742038282523067424998635893447984781259968585702226075847407876268634982070068360461262155665284849362848955667940511406780215966575590721284695056431536229572247739105151439672982805925845221498815633243144021792794234407387297095487168093989645652739472936657864799750103994644492053965155979285453155046938499830146286634514762897404287434677992521527333767825584352538324532552150284368135287873647883730455296070547284370295471109430798485367615646983253408263120108512608712458949502723511939735255130337364217311892849061600763219612969447152400869141735656077875907262158358654726763723173814463923353646186094611709868930053879663616204445894974983981664545489202635054657529881298607239393128013459430758463793536845780172685231188891513689829409318919541341515979314025217404959210924302339695501278602160253911377524111729718214937759951105608907231325449219737753199161993344721904893132443085537982794044715308652646797593393286930936903882535208024785959736265761150160558754578443398106619638871104014883910346578846282017835764394621833371194732129846958676370092146155346883856515766258314838920457434341318028190107785439331639793953869481989505896180903336956605260145458527038516621274091619356299509846615479359475068806926760616712511571459760025890198216624562441803778606870153024210247492427673194949708404829399220625700701079747913034033084460848136303486351827926383060954426852118260750636780146771074404909880019936719397932456844597721300711833778654798368141275074453026779869105298303772856106878814305400600537308112965520290278021596645225932338457477923208919603591319822571259856931726863565945952702632910035820945789488756175958336615752479056073686035110802850842378065256221240749967310391096951010317690386507673468198590817043837950428874680443852094976749288512023919162868875970186221301100916900693387434739312133319474466278667212851699858115144194980737485285376810373243453433822013986496289051665759902804399873149766668533943485908290027278113526996584640871414292512283365905356427809048723335472675912235899476973777873342509091142397476622703077432074721754062621032588964841928889376538920417478512446718321916304540638198083825973349849523000126653187813066083538026432669602522964663652741294438593181803693482022833631772285747763070046914720450170087142991009842013727420797645737640246536299662116855539949313458385718868259575431801766019573553228425823951727301786139201537848733090253383424472888761832321626710649182049170175684384479170839662810028410373934350839085668739369183026345003369746308551438692155929027711492514697354362673560106314370797071017565497706618214457007647150347855641439121725147165246218183629718091943133903255935206797297334084746628418819053033473983544617802980873051364695807509436154790704633553167117576259540892170892174686705193788190851412788755061897486659983546827872601873000371142239007336610900777836752838518609198506394508692218384605811751127000863380112358387694187992148994115080277264054366031574162822457390231392378950257677807023838419939369349867914592402222123407464420789243564023789628230904681114021014411293914322651372744412259364344143647225733184519114594153662488612661641618914996111637222093488806905006185065222970729211629869178392028201801715056487588084195589223729215624316129565967025443318551090679054395839233650234429032657387326597302267020138063879546395181413518302433712856192365061269705680164113302908341199215654305602899408892551055739382628532415387305413622619706954353375957772194676809601061025683905403653883071754991838764502150309362610156013643912500669932922488480438714285671751927089834838204743905280248880255547156407188413983474818038060115054046270401240725087966832480223358162252462490255796584800744684009151063856589936228110868114179480211033008869710672288369960502164285922592783969090803010121427300829811397998642167849434363198961569026327520506092229275769770090327253553830483398125663332616571368724117398121644610310381917221500398722357037909421115556516884802111537651222409494901010825852125792633899501394964335322909568419725365246676219675984075951226069298018047161795885677940936693760897394149002533592852367322658466515743274725515209054167898999112663059975711138599574970325699774923785472521244912689708376926118055201496617626410361887201373544067902436087900436751677069574391087957064712848436946968901847971726193701865466644797153763819556596051697504756052452532523308468928887928298634512094558407969086504778162157866769733173290801109808713032091611470349779530135476556409911168314246322510777247557670754059737417435535361708898534406092225424965877523815198609282961598495333822581959660605011010408595620763525245570245019498078593313557681506166233958345321433583602744244748393401680899375115735643628396231333237420793574159402841128166642423502811102301733498759179217529362996886311628287921440200923642453161307247466928047677532552864936015383289303078817078289981603142523586833641225945443526429469624227258220185402541606330524044574423152542413892762253816192494945129571909721170455251575896002325735568643175782537048248064430257035646182340857429509294403619826166942571768849872456917371387054536351049938802746830374420790900944425161721913387544526232915900299777265048055240074119549863556036402597206038347192740300692051057353185935370491008855245003596314661144207290032699835034002411701018103517761658479469597842300283511962637905983637843154533166643952044438810536137962940100146853189298621770584656617460455447399019699425113816090504896925769394462013477091579646775385706025622280507572634495838420377216618882754636405822955391103160703754457434433471062532595848590509686482499208816523747791328278323304238507537201906376897032296628894931579563630462316814018272459267963706418271129705359377031681882616997155588478587893197319539188016554339402075358799902737800442237389573606548280753909540405801454364830338189787248628923852503425132400722079500705805841670654693484086881260041420600325681143439202004262317467827242816631847280314605795034419040439832200849928833667727976336700113787463527046440520158851769756223522957885756342751164590973307240068808633786890039854075954550938819051005263292558986299044809281043939112849388268604513835762021320352983045927651342658048911194469263346018914325730756597356610641461014009696326528250484861936994397292265298208399531963219145278739443227415824192635410710875622408710424548470751417369843556244357128613998599497399054937308557060272327245347485303548857941317372287888485555715100318804291075532636979103790150567748388422371508260539181528813723403712303832825857123933912848659376009401860319161655974603525753324334670346105923248414555519023200748962100140927664027470024597029951533045761606140901010880749916619146306851026254509180185242774508911228064360566584870968513247184176851816247032699906547379734855812262480579375645683285663867927055361912845466895686882784323182915055999355164074117207802041728288947331025036695780853958259208114496296576241560843546769124463542653898415542629608719108943669618975847695130021418836941352930036889550687410131660449393195802130319671849752219632162352776744228701243478765365743539049795004729298956986137301600826997854751039464872623772714852137172201090001188356759025816597269193302229948013716254543700479484344017237614589888098137886135136614782544181001555331520089976811769463649113218743632719873730321835996465907502919058250044790177219863835402884974940674348525189832708797629219671885123252941768719907107266158695039290371060002671379330940011862258880398148475240489848281517977270689711532577023453754489999616477432760583856262496883325845190824935846185856103390245613986541830299899146177962042404200583455920649750852209482289683835468298570761446497049644310207358173527168943717832963282594894100133643120498313451472353345291116164204843831257888705586396174351711792778889639156991056263170512225178204102105480378587089352180311034725514655035476538934462304116660855378096372594712627072524812651358102580737124271450513835927274064006059789213407377159496892435036731319352597444340302732811750159184069286806250543444466925148926823134045984534478949201778571020665010239335566205593736381243535210371430874884971890157504068502379715141790889646854447907364576165292065451940541408892962584622565147885409381091259090488352007524573597583408172968802467260126088297883380513811643438390068937597446147376396645019751813936555100079059904769567335290174424709514556365126325074835930367096601909736178179451443372042576308679090504150225651440798953792841958507063549213442682423428201040785442786592170750530019501220179968498080134703180736677367786220167238990829061453317748085104676757977130214066626199413447822298380895264550272374327472002858898121619713926964549870985572900366347786853081538973057264478750561492161212058259110558532143112143339930329792381983110206028000752815960341156344286787548372802964294333537368560137124880030741687595613879304809737963511851188185241253983885939497631527338975779139924442990160041714308251898068546687900376944895459959753755688180507825691632262688064902270010466006602715021729499003329015786508017792593316362338820388886423306022430653986202320048660053011539670545183195641066201680088172906440167804236210932963470799031265022090874854911141525976330873885843791785811533316910981259828224712003060064801292992358662451232101545337984063098281475732288551668107839109944078993966056131280434312115418550271905703239301726589984213646930003414102115037062515122001073996656684781941099133311569819116280337517827150344341453330540729940551487812785330906423824082866867646959920847396123488998466685282803084450527530428947420764364912891710362273539575903140370544667700729342485832026304662242792045235821696038781871994160946415151295015185454823655240159713376751225266497895179828264383103153133852232726331252723115411599955182778614944789771909746902200553803999409301237679129180605064357348502879384415290631292983972463332281270222418664933312280232677326234313692151430893525037696205660113992796372331865535209163494829330799034041924347342452087767149116150701652146710785360569384640180936388694832109519337406501858941654799977906182707370064641277981413981828601620964791089224354783381653791624959706170196724757427038465031940820029397746412944310335745408897594067292467499262843197307468535234295835885221267790391658451268810084544084182356662086031854594550298079091637180722577429282418516380329155505966942674123370364802501744050950291698480551701652396540457566507998209776612013282413247090828493320341305706703784232552079952255693112576560482528075416823292033684256394467733069503173084345921961100695910722349636788568646897666652733284597464503718681600441164312698824828375195859152967199314752646420191438390090241179281285199959305209520328148723123601231080264761073541618832251069884792697867562951629840025080892981853201201892144176524126630956979676822116287587858471138099568562037503934882361545237424944355199290076113866523328871855301399411409735413082707267534191917276790096801283002860054869910565402862517435811248261003674350989120642093067783326383883999009022537713473000282732150823892106360139500557871406866944569833186703958655774034349721064526197206386947014612706572402167719952671507916361004046388395821005131467438187974649711101611141505306966206582071516393929887686269393920733820714056631907128532122607689137652655442327162589024961751963878775145920309761621144820864707763340370044930986486557241564248140338698742387553205990136441783054926670105733927974526725673017206594041673171877144235816761519459195544770948045369403619142278520200354894843215661890934449657811853219768879195851124507221940878410159326947275502348167931632940568393124913454106334821626609905962913883951518335065398502185688721912481619396146792814877318499097360878358829629584965658319885102933423950311144025086158325064716156991726956445734081984888978839298237417670016382305137424607706461032702639476279295958225480099679217470928773463715440518151431343149440705559902811276108353655946378389726098039111506740267690514997934920769155988073693409168263273060698935770420446267493347448463712908510691269925485578534849038965665629545638270808211322665362960663682826107210592524326567708912756751812653306407322561096457544912429208009017576904824619632622668950141985032907000963957479737761441730311753943738064279638562453543207239764320985565384194168353840756739461666897740136032101139879360241564640235859632053163070950112215006622734354479854497244558264173410741472298509443683343647222420477301664746551195547801469043471172044356679406152003701156227405425360159537035247234997268749491597460052615786617758025870441740859727174555656513156238076506068386682490787963391894991966576061978215115519836894050412973829883307069937314003070717710616996847809416021109664847536963951962168718430877209712350259511036430221176239065385470522580659583439480316484654440083524445496252620803708603386270859925763177251569266548397956272415487841676583869721630761693388295273629494786115928913089470956273004375418417310127964630119499554520092512655337064049727426736600361416308765535079455561076363063231636804548468212888861402579007653634148230526897099322134486325458733578456268046643711935754431774209622303343547442920339903523699953947610379387261459879270616274809797372340233273147332351447828122550945015174327556442827761020242476688646244899225512976515532996629225013726521386855527365926014622039041435697551462849738488298329032750729114226659978850905862445476969885566931273546493843977264949512648902624025370278927621052258159195165256316249410949199143269040332255152852869349445476665482092518632110762212235923833588209353302820624371548906953195564459983511938182626190145391961960709642771912693866173196416443358929666919829721089724413605048688122164521849375329666232252931815168757279469977571462963224076827352318293898208267632246451363518386841544244250344254422615630270321514433578202369171732509159567923308340109582794176505124569108203010933481235587397376127121152066161239174093895498066437495948051521208166205111505344012106155171855208001636421863541535954739506572333022645056024359875929574364157553603185669797277856487452329259196676230487520428656705695855640435572573144040079555261109240129941783814139817337881965893833254564996321063718131892696069755281654250215690625531346339594739203150025395593044318316109145229130798994183415869526926723806997535264271162118582848056521021327831247837501931901196944078594582275885977441643025960868617521620495921293660676302050770692590772959799857476099296346686342845096279914516282955015925640347545052585668409022323283327603136030699114335146925907197440188293503643866024048717260976954480372804550312873795672136242848724552953010945079198627887697220447463073197279911430020090415512245860172632594127033208720142383846079517850326259971431984321344774040412102261429306880197156490035631257052186339779214525130259142525837155778847998720955005649820990918130519504091509663686926803402736681041718943911056727454157471661766055350277457665601109993458857868953576283750969650320380704260755398654817941501350674138382815750569596033398266470203559931268079549400074477672094776495164985127120492581789666074631256208510296205451369145279137819678103264682986368269850557382078480772904286651919481943423444167904519137998615521455507557242211256049999398747739208930715923096651325710987705801456560986043662074535596410678270145494919007570711835523985442842438242529007263253527463974361940584628284151586979552184389269953803133431232142473848776077650825209380501148382493286337532119083373452399546736250180474936974241526551250249582020911726549572203656972195481524124477532572181769097984492193754140343590124973283742019619675281475090622667673645151853474921981697447660836991471478367297407357900898459991730962010890448004043340264750008465006284490116909753706232912939572670369347939953423282327781196483691113443707417754485287543941671155439274470124662108582792037712883760674271295545478315066567673224621608191519610605514671468370769940920429125337940817008873582932306599234527485760527422346490016692635342967879273387469639177504263088471527890723489095336063950305900915975022193823153348718130982896133030549093495354778273858693280235266084003311622515381248196217728383245874872303151511366646749412870763417765218983902378030679887644504930430674528635484360751844008617225178156117691896495407141233572547928267350560784904012493039850217415985394407724103283145641732832899999783820268500343583518511174660907375157555153776559922826536826047415222398176865813842168523608911068119527830563413718391835504223059096663402964447584519983517193754853934376471007782483879648078654667011972892369532613286710048265228493724474008973805985603252284584716943897397428577476604995511603901504025104594845553789276375072942547954662020184792178053430635001179604958653809867561839545840556198442399121762375194892037446169432315059640997264458192813941103958684730499421617586957873174792819062925174315682746403155152952934300760962214762020477147495086681336206511806421972848286367992262400774299826937977589018711807585164047355194502740152693551756215499122145066795120948901169999616520356843746574274673037374203131013124164753305924318055869373283411991561975206912497460803657031211084328524358170053096400194292821277328419184629356821842153707528953376429994268171125171317929851321610374515238344541943302400285620497322130648546964239649227680178760174824577806683452932679258019039483237474874316551142904868150348281636365894899440292453337573116218629279330269646373115338943952231370569532669546611973890400509497430095269435539557584267890759075451781333891478627620410197154215162853829590379947217943012329041908863196180423400190903630613763428708047239115182551007136446180501161313087312745931949469087155535753226433551902346003334283728794891084366739996523471181184556306841022367755775352481601433199184432088471128724033176447074422781206575287874631622911180060037602336242769838345191460034202034958338259891445509170250398366538189587205024205778320090871768939234263791468684092572517884127391977071804339911085437696013826113149703574432326160396665976849169061028504220298443661901383071390642545650793735413158741005219881468308565708363156029633102394694102885894921016867519919630962158423314969203026255635119891950532033233393785465053739300240389819614940778801067930908042729200121763871037729727570723693611724749740392194961808368782413526902532931355803207662171548737289367929268173224599074099118000635588203303397299974872577885144188281676406825115641291218613981048797054461033861509544294679396219257542856259125619004474885152981087993291373078166127626172966175906062709210182135244068126531794557574322199931383109359529903893690739121039670485086078784059335118344084302849087922721835232767512818137428938455079956377843415349928015653214180009377663621591218132569566728924905293001185166294334709639261983903061213587731525220466701031207359816038406386664361801416577727651946221895643406727507854335013355246904678834818212855151160415949828634497257291881467505355791635574454363695814968144464684208987215301810065905361896375665565151091765424373110996691417189010136495618960716679189240164726472102225118020683063437099078421149814390088633641891382556907697355984452161353987550201546197226314682189277755298295011711258438604233464143583444384056674125649659577863265208918638978813346464252665156105744506767477100948652830551561417733411418362851343992506260216391503433658771111350779544883589659809260850323251872441013312837947969654170630362289702153220221129303014692668816338026812806577556580420231321357139503255282560671703535150122708145411269410392431163560479835183407352826858391017466560736038769778297649117369628436441350056532021567718332280073273718507469621284063532966249283751641840767042214109022102628686813150648875111470489710585592387635400229885896290886928684411531354866377492433823155893529891581824178440319079105945033788714195695480357358147130012992274997455866219222016903264204996152993343042660320958071443053879505014656926994359022814931618001978161581449219758119450366979967832516020052574517761971952067225638612764460395957842829360798448329326205109362230172802616958120168162145450730947039036643914794919585806854661207661291637124569265237542734809113364711266134805769301899994838618400053548993146977814604492138540028427591614772532626984052904645036069889350020759318849112834427701257590408091773370184119896790911493954107180126176016446919821451507172870955816905059663107820564770791504935297061162049413650343090503434026062051757265899339848420371626449129960008165660321883017351915900999069156041429711297461091329411081890527833514443728229996853462750011373273964133114531078833460154011782174154485772741290065465705782098616827881858616287373572300772873434935818489330752932459748852373242138957955118601177083657631742018429949578719032113882121187771934287481517859973472026943847365608213637064331366404924526592796406767639531515219711678964566678158487202579400059450369592728404249094778085433412663209852210708764422998142612307341656916723385498851771736669491370914880775889477872478361224287055420856029291508054859344382182444806558647794575911374392753180814847430024846122764799108713283699297778010030494559061893913976455136190467915426675419733199367075556843081177024452648868014133617991256814735154556828647935478279017153222653778377216172687590934749743432904927962621020947336448593010109484243255416601306214512309839995101987003539691214170294698023855434512818770263756321852483943931563471099046640383395958695156202458423110007953271858713031929151062663586502252674169844021920650808344456448013830041608529365372815559510259207813085751537829216603330560558613442188693246107085690199631961247193339498454732245603697106453425974833878889096655674768103649339390899941969903180226213386663969060000480791697208923757866436954507343341433527084125677830783439237486967745333805838668006132039171816640413324138230632689683049460385408871383119817333309541485483358685251925703777885296113524052708889916132829822439495174737431544799702995577408734124192786004584283678294806580151077788960662225521326818851852411712080848002217464260444929036282410901454793158879008154983703934469811335657918542920173950505383833686667998202761324702495190523733149825393363160159984501835834853532186914100046138217947557669037597819513456912526650181873208471741797432833875664163104554342325109495630652605400183744004401685823630820545645225221974567698808292578338850630815182469586616319140553228565951096691588049591640431207888885476146111304659664283552225406682280051380099115529666539370605399802689209176418394972607357318963340251882479397615059982488652435618015536085713783696122321423473985281815427784698240807340538685867106320177343690605706604117372893718999968597987603357062814861934749149374975153337709942881867537302801070397580311324917650705795138273903714290135284188538799449350898430929342020130426034079847008418124679637694940497494644029475762811434807909478839908525892591547019489163466379365524545101738137456989372914526744538719786023534008287023179564711303671389685639918058482288808713747479012100948788849100945607226343023583349140865454143558192023925465921590987170447050784220354951201725935263768871894018901995456012293619979127761140407270106508372420571383269176065516100345805071877614118727053069859781170497630006504954578789349705527612493178177437387889160580994413410068423117595094758629648912192241272803083728903355956933236636883685108724844710339324369445734061086400007425714362208026123276510391062811924551389438712625302490503199003091509726933962602187719609913246958935817051208872752160899766302920675499597668510271032171817092899504016793306714577017657505586914430848538886066016533636649829277233561412752339421114617132372536993318299913510402420363967166239657248721670956152266646704253465582315149538971150970079274126857786973615372540769308671979958962056374956741034490168544325678294984579625910374070576469539969235547510728071735814044323351641703484146099295362349151625719435840995912320464427843713936677615145847770763034236783450814210167779477052420865432021680366476871034141912077041261589931430941701670859115226134459791422769299623391157887188311017115834029493900223376184534030050419049353396756844157469136051987720604333592113915905320601206103882094523579229768694854498082365163227085336153615837543487795363145112221861427523698214621753713030277724987898473549450301406379426336506146537847940637306781968287025061108092336061872214886339580502932078903032514091363550475524640052378813041682954470479253247462742322160525302357570007976130910420625592394665698748665018125259913138969129672510737344094589906131375861875854458047235254732698709101308696799316633609499653164473644996445014588945852472540127495418648735760673054810403370990982631617357051781022147758881452325968694907832646139722580820252064452461955507666544900953255016102816762797361667902034600820306013839665246538205806002817736721594775727089978427820516567047399656780524356504223784207927295419032093633727809429632097192602784396307828834689060014399599918288405567035751148270177898356636169500278730153213269514102408491388922742801118095125998340290390062653032790250493537513491363135537543702130483015095633151361100242074633041849039023252706658855518615904312553679142604098070868004728431961540543506837909799135205878539654777813074184907739653445403747772000104986366894726719895050731564610951935264756721675870210278389676516796128146575475770459189212537337934500980317998954576725493440665848953183902757089710708446041266158972270280518464111436084682936397542299066254076415920375714495890580352369882728110934897338996493969839613113403116171929870246921703503113780478821197542223574088841772872633901581692061661474260889311662068512510358841596542634794226783026093592770619143342705420165365885831461674426219513955815799938197660019429571325281627560487755578888006470959550470478831164550192770933211681811400771639533387755649417139267611424312735820187492140528248183289793206956126682385382193171526105039090219595947546548801061631118238670859079872648886786516058066234130230425097596074196886228132412046899641590719891257574997465191641692797951871664875667938906479129558122015909823802105042453332033072830237885591262078788618853356347644917397834234549926568300035016891925439095941704398903617423354870616832465296912332156486370900519297444781369570417212709449832596947277294105432306122393917196208850172289773779025827700466265233035501630704501444334161841565757912071674558042385743267714963826684916233506688862928475045204282102564247691369344020702439211915008932595554736097569809311043758075388821365178080269613101015352857492260290623900890493115124201318997397245195134612400343064822224641842551237102336008912008559295747245255679970027912402609960764240550030277354954933052141459843676427778670694719491162288627872391180853731246520275909551136097004511362030964306596451145783578683482577290913518518402642180585429276852560468726712822241843192000120416589671538201292837478139867747753537705345975096509850668852240401833114019850628770053013313563482540280499453102028350619516008748520764915547557773252580247857719608540516937004599177875158801715992632727220786413904474924365024177349661066396526051001826205360367398410483137857742292266232497535333350291973519453720609737717564811632744208569852533557573184803716037304671503280250406988185849809422387017026072627345186685465078746610396853080461479614284499443903358969523058214082113034183173911674044564017561277980392871487704877895266762836749515752477332915235797049369847030709273615950385497504159226025955449660370296644283957004108740164430711140773504687980309220418281914411739202245096771558769272170832972107580000825647530595424160937595211530354622772597547515069869995986173997411316601991313223760223980608576483401690992854421011208628907596272744319211426559210714855156202530099620460096458359240130080072348269510848412267022872623793801887720609458514550810039494390068598888953616133410508253595000602517966608832739753845378629776514406147505139290722512087835026619354670744754745166177267257057442444671218270812979419973490705990518603913203476586482629787021331392557434620356495296311853875423300614629466680327837948957250615733015706733140473802481607062015996538117274368767989944067457468693644332328006950319497196618651591491063828443043007479113100857251862190639289039604694328212746960210272909144490747089692219820617655175132822928404080943715236737801445261111163188184615747226342298362645154274709277641010441818202544160998247232370515765754435112566308058107860311438047830538239402506314925165480924153410327178185141053963476325027002512394874192834824172456817263203902568290205540485814368657158689029503044609383585852994788869265942623719893484625227399636757187425446791694602887354531603460385525074320978064793767047324174320466012483370225933107082176038156395661081859521501687565532829269542381967847622305772021502729210682937528371861981198062500587523359193166918208400798378122169895970952997339940794074201630727995969264765979241596006713722801042240181020276234982230966217484161912606380128311919882049067018964863169374011758658395106856859641176259420563391278341771955134181526141169457432357939432473331869659993261733049760574690858512716902799610055745635976186879421404747612859830898565564198698847789095110210888730181805756718194439236324124205284574141141997594594953387432307333348306736981636900109883442059123342363420742704427899530724238639605234435919105044615832386204773554814922477575457800245399135071676378898123048072435039298925378694850974893307268746828159583748655556955038568654885920241464221589027514947573458437074892273804445005115561696479798554547267093433399093389545861335231241524225283839743625444596640991992680373231265332708234849719220425631337348262728485410213912824885628096923131739516956417723406072821128262751193381596415653473912117460709796589331006135052972144570401186307391595048433361438455685767693313478204040347510535656225695241511891543202287065519813915078578184805265405343956002262009313474034978455186602075469973258126613591960084069862382512734769292017607157970113050290225398500987318159145832120512632671683654748478710736826836811988951136969100671260653133217570723125298527272558793551462768751672825015950403431853152903792583001854696775670866597698734328002907728099721942809724573090834978689741856139744247736782348716809511890846465058054172327524395329318985606395679260004853708232307708480729478708507322861659728123462525673967692510729836562883106247994361419081512189158910771163560775939136675984231857118880456570005351764345673122942695790982031544909910993270129123635567755482097787105574281503168818547819285349403555855018066714401020527524539388803123133751597424590522945130043308780642331142565971019878557928304753243126345406805175319582824991258030586807060646860808088831618588679461527315261247576189252509360178847499476505010919695807981484822080445156743822041025496810347542824559939655787200004786875811523488773333510070366435979521962583229889250229544516463399631591977927277553078992758881511718786198725065929270545516028638306538473857267264048687865356276194702719904172792630733517896687655994159470590086949156101843537075065260892069083332253925192751319829163855634622376656303989306669527986308934206332012976513280698679283196978451381501529988935967506075021159860695798568208569695047708442922611720430937284730321003303134149428271171625585061016015563823912412139232122982479671514128117926327059529476485527359560867335239514336588443851972527356216936578309092323198448459401149034129738759079780862585775630401084976443392376015994866719147743164280758473857713828562220285318360762973157217950579632408951033214600604471404101323139199517228577361236040305683838506831452267205054754076850666655323936589976632341019898894464513064132418994104804596921441893529188748195165663863000564810329541276377707943614383965118616878289047381948334221712932822643583496642304841152179631181504024753728097569914262533821375071637241730143755228704938616950074880308986956266318257687698077005038806760416015042170818746161471289630041495470211256368829567772928555879844840508543769873024882811523843513951478723074507013835675888227343860597323168434312049123190452284456348302278176430830057707128430416938399687946151661337522489064665575746150533184190250027554344980450624874937729313639806141762531751871035879656414575101892501608851346497535045785667674907210508636173146278578823546543892640347193090973709203784170612350619014705642158077342634183620917450693322221585488609909534977541878152360336026066511070880876411187769667738522828087624600194378815196221452368554894515172634857932110863300565417475538343219127426805311068242124638476462261585487526070728946924521683538155698113570009204094769307482043274437900236900123963931666779610437928306280780071380757333487781531001121152965790656117266977954594834745122029083034333609050992106040746451860429690260717986569701951585227295667895527164010174863457402884702746400697469825707370700976380339665525536583811155208195987565166337150352617268822549491247610667285725806865670970075861353778304603365914491843032695769320435485531715011420570800890253926360994484057430991968207420368641599638151476819102040232290355436874946106130486950544039705842430327239383745501176835233347859499322545467399001793770780963473641767921538897032902467974991450289508444266548978987223223469276150920287943000861818340676118109015660028662717053212824363191188299645663615710874097841018493119379796966049569704350358495489487685284203605553291573549430297865313942065416993168036103681336541357902087278823591398096469787243084632540382135238116863407715592770205887354588972992710110796358113400174592507216206651837259477203899107103497140759545382123411126795196877755999060630122909653849274995925960854738988756240227406689760809250690061263744144343067169722967136576290541156217272872336281021058279214897420374446838858149826669401445891230477142147177868452090488625068984629272992495082843235944856277242757995982617041146834280368983104529682298283298496953803381248525916458697430089830450836886595266573969206662506455718773638730990355156149759810510010871496783105182191006764580061085951588253584221454364058322287254671276556375413628323375634035848695744269121454116315821141051324428915058082608086937700119461509585697394040424114809183027891015337060629630973669258846327335480806496612750250393868585970683622186537539900644719688153084713276836027354116277767102041780575169954157396776777701474337877990256769026231735362922207779653998957457176496547828689743417755460265273144218552928156601127193525126615714434442500021982458903963580595890759444163267106451850122500575623200420473572467206454854594453342280998701810307414944119973441840781224148895460127984949669287150510423084408750254227520186135458641336816456254370566721858795471935348654180200416864475780249194831373844022496140077427645621165967583830596414884408435324764066253981979874989926374940463930517426285342311424761390938101263430764020851161332623367233739123018040079091945807490226419111426373482825645824863614979630734046463726832186704442796467141486412161467533188517951529170869065511333278028127712465547166382356420478346427280214494011118174389386145807787650691474151201444012703280613811649710613396654969791237713305967927426998011830907593460796833003811557294839151901430700030334181138278780126049901467288548123253781071183621090901091751381333436183616695092473099188089674344136352767539721918125538658160642269582689302140962035062887207322979391555742632367247425536027188511054514671939367638635942046197678799296937553324768501546339301397418994111107632782832550770608270891769694669561613018336126032748267890522255628404594586133694379329133581359424841520705479644537914579582530291442671137533637948091874955032777281237978100446476760208853122524454850565453331788709940179977954290507288497861566539915705170493615540646964555979016156235445626819300046886574067241401425547660614451557918891452548547877896730578560576765306201985198588583002257035390009364673551038496678820032380550215803404410897643912392408564220172049132810725485464727492589961894332813336021063080279398436306869426560746533035953699327465210626722777177043330560110234570076333539239784768582055051265418972964536339489072451713337586679285384400544341778844569991215238101556860136934628475887480005597328448972361339758401489525290669573770614269818661734153412531395223989564495768627359451318436506022132595856232156420340594667795393802404343615212416154450763659498701621118521133751467561750870522023524731211034098148771819671496478638549985153359503162700629137670423793024756897286063905010076833136370079920165118069120871801068510287207564763854088272594396014286909494130782116367888135617101268075901349378254294759827982318333048201854567552970537401607297141899210182582929392920909274538705543771803194773639891703284895760551433170138194449300110047543667561764897243597196001239201637710064082985682401241343317440211396499858654226262749905782717860030950955207207189906491257000081722372093313942002664592470837266410087865294550056805502467076134342145406129335055543205825104981250827156026541984584396448717509553732932119801456508985306263463172978676965697582474891050691975095271166660001325311968131687887059345240894810831539869366646587615203412281067114691094156874324802405366296867425349940283365580931523442578174176961903146141989704464890878390057483251207047240523607595656334435709323395924313194177316568211584875080447346332449751054108394637363833914189456608538257564784974029725609206294281279177666363203643678532479806974260738604141600400797799798966752004240680278010594778847374290055932628068132414578258860817447171709559451565141745824817118387738440046321268927433621248369824261960054032307422655784193809236292766295156793731415195434722802005136598781190309734983711034569618680065655064485472971957966793472548772044780100144259469489174487663505782271784028395163811428148002669669990687048055756701648340033603592682800297545828398944312711789380309516096619341387548165950095229043037840473809426258432297864218604963058140479709253246106212719098126758354011348847873330668590855210640932068825168629428118492558135307286933514841903338465883877731050305481425743585523660834538450933728594164316658052845561035133207162390634045479729730571680574163347968728334280713213097335597931429775094929601708002933091478660702602577705987455135878872990406723511390522762829356119764220527582972680465202506122302019108939362277856533251923258982312118316167558310162445465070629878358797976241529800374265249605837893360813899452475210417388145407343844587714152995219575670569472716800764967962215082695666479315087052050135484121689497892717109746785566866859999425321396924009150665188033085599500742457897979999019865164804256591943117923516357471243828650040941348637446441953885940288588961825344373996195857603856741247764710321757499445067067514098694801409081743741095917119881368583286145850441169065868752717899179052991445485125352736682551337701581453651618678040785192283010262060393242582587991819042696642554645179621919934360875896681883180536511611122365045026824036102849581325094065772073993101469399403204737026433449392620546770760507199932635957864956831049686944647846500563762234616859184856116550819934154552109644802894165396866368136969383079443544781155631813685242349102545515130170176531192570479892216243465883954234053290008366244316326271931462587322434603031513982417861766690389217548220032515075210847356996406464033032138141347151401231454636993782359170006495502522509671509512005538032843524376413777036186980716220645131628505760958664821621449929344243428116102282015655691334043831937173067585377519256727911562966531788517782776572384184156358672498054094751686923817496563561244498782929589070078239150248182353936103327676070726516088337320207539600071164272765416362364105785461243045063211484394461493591750352427572524026433779192774436309784794700263191312493777071843196161423337255078660268929249461669467624648702869640123905937486656457418238021214267374795508406278224606425329465185832086125764422495756968592725495050455947598287408220290066835649134480311393025115567771750907390625902230740413955500544082972301469169644421354788319158729848577168785432468603332588882230893970737012625169156354100559122791726994970121151996899099010123032773679280042820165094591712172347609843389863778962303135607430283116975933736443213297920697141648412084717269817543763532258823135493711974601867035121417476499236823941738239554494192078757127278343486493931140984755370485067909756200597700693265610267184554845054678499254181061101543713473955764671654551424994471791343560356236146445824736637838829946180878691978919789404931981716223559316767746654546992742238215364660417074201461743066636065762285276239293213615376254369000029836779315191725529304340702463870288890654606260505700315302389337512813279823102226664264866028467859415346504885721576341244629417967879723291488984885062690364883092860905560964421022687143900782722865490456598798440103958892138604985784906409511961426668419650710642437849852596947046668989294846476388606481583306124489418567051771159012136044315569403604766747960778958971362235148324082974785067604620626261988010592758705514467531448778398448586269771316679530677342691784673943789521751475719261458248981320338507557938755988937165254286422025453455831409130040923495149924825300805615344728424017269876004594576918738061209429237501848648471452124570955437447639818795939077196978806919281294704664239385208472403453127012899865912125710253698149657732093346250177038076690829659234285606667872960843063306090055050131283749299996024764764033833007028485678133839262309336109867854047826068254159502226373445593766809004503762685515948453144097698830104655238337188926750445039200736628985756174715510382667385355190842481109449321542085917863307954926530121123526112784688485922026026410310201525930393301689683254494511824909438201212821855446718117600990178688503751060353475937564014653405599874213101789725291450547392846505353411898447182176085526547480284909246979516898421018020165042224626732186998903394126193227924761427626608543478101798157898767323849875464397309599326064485995244120640730049991488596063968706548246235612439688325136885186908034410579522510882666767104539570533862158467697868708690065243930677850689500784567660375613628532385444126085713900108358702372288454912622964793128971831150298533494438984741473504747591379276977814559256747615895464566103310976054255416316261705677137392708211363599702771725504098268185812997674539736804658758830423479714771894842584433042954362894847178414380600393216659183882823564261966889820900373597769937142839671890312274482331584970165661082118896498597837896120791093955823387489309286191684845866440097085572445649330197532667620148692519561560255246883730543045345447168803110898393797676097166801661018378499883225182573010544648877617392915844438254444830108750495758184585505501569780591523500542242961399373701940727421404856229735166465514028422230322134285973671463336386358018187006042888086672855650164428329857823017147461048672974318878364759451578116655043073969484359901313947240797284002717394858701976787473812008341602734158198691667307058602056554471731376602503065341930765850782879339464052817616161491381019434273181842636414354504015857522311703813476285681794149545113805696258872942554013448545239750550255657776606417572588517488134015552786739630675158598233677500768196289941271538850401162930746509575112595409997670081428409769177283619501666907981634106911479674965518368716962546000756840778196287211506061068157897582161127678957381139847120466905338066423710593353539749519212425622702832944596184156325044373737132234310709840786265864039472030453139187900121937713189612924536751295670573504846618738993593552925299910477740284533795411222470361931835623781793367302189901052722230365067567801608409800407263215224808467560906073072760141216329555037202496104739164890141786247300293449542575749079984060653360287348999490511696020613141677470020965041241982182372780289418142715380161769510210382060705286300029010592084101922526047837125249546350165631212533217681024549445766349824744988440907755600426765390295314215228284311527534512509156477435411491516596944715420909693966007768546314056537121761693218626939677087908508134262239462849773009718284267615850231936321182840524848422108712752911259431651049377590976437411065445540893050139900593662127586943902516843391111638764883759944599193963335645347983405349406096078079824237100855960960067257026992028250134816097390826357854309828811356838979576918010048845358527139672907160373773040265808928412775805215376571493918725874320311196397631231185285977172091638881798254785741751512660562609774447575740044787957345919130149621394734700077282064161328479723278381733989690636857734945230984775757387654585974876612775863496146692085432614954321395433331978365307729334847159282944738235480691181604093331198163689859665434842545593625999852453019585152100750180321520194637141815759483498658647844771570315730057595849625710043173304932533884511774338753522429401766129017987345424018934766388992170942647060317482081072670321719566386663458650710473767906017714761076475552876283452217374171443475867059394886563624449227589431009183714671621710193678527254557998315296107600681951666426869138970903746470830852190407109772228561549431170601233294847005964722646307495614294926757478361968505450583396608344111596452104836674047226558508560690918393402256224778538516206356625622292583461508275371613965038283261860282783087982345926862392916943967264138663566414469776719878161972642391989222599641688934752302943265080200172465963056889611300587564830752541832266816857790371140989366475122950463481716897220360594444655302914238625205302474664703639426929575495821221455450372809954416564401925061988901995916192048227185512775953479402422849408760400978230163941060137335791095511395801905258482227177271596271707160882634449854480093683255341984534216904712454649356312538216475611378465890887760173565557448170126079219382668825138016730988656857898901924250923250193300655477562093633195249923839047054464158878356255804713194373233987997146365392219504192382713531902622487706783788126264750249748251646131651603535218210853659562049789914100036406697275254841519847812885946901672429026349860133823465996506221086274063880630248912631128142776459053413598733030123998678819271006823085102607760208753133951931960180854209848897678254745811668474278598097690275979710688034543230627118246836903250343877635852977436234181769140963279773271695890019324805125559180935055789826500601774428161580769434114490966994450934660084913923792999520229207606226179834397575883541812401313834497498656082255233741314060738801731319371423294871443300985235127093398723566586158656453934449593658010477887387883220611954412358763885298335476502927274300538595797007010989772957954613948252009301911647490479143174104779298423196471501149883631378305252280796036238074467232469289656572378072747727920245349696509748644462366327572966723395518419489446036940762209648869591620308182404282542153525835336501909703990202646324183889897536037156746214969626781015265416652616576863680815131107135714376766309744458885791773177593347699667855069454806675912346776820045422944646496117227474702346977755913090914012017097857644608194203202462067978085446852697163744855088504400782248261170303070855739870270494048123735353546717750207161140397775702148844597032617376508412031783451936374697121305560482088451238336440212812497365038347493599233105210250469892204209577922237620785672317875836723429757473894912641014444267052678844132039536816212465174746368687302572424824054815547842536535595183884272229225945137285787731123049291209395532632520203355487616173436130888630036843650138877550237404121423930156945239251793154740464195679710655067411024360265507503004727079500790700454866005858641209514953850687082515562422628656081701553225279086453167367056215053992921325662316082785293450248934211536968857153415209925496549790494251815595292188065988743592398311165016445266347102779728592724198858096997534309531066458118975314392888510158179462119658674598945968576646487484443169494122527444787254889288592233574056015859184698073206304274577251808138821297709304423072595730474859754998665260628142529159301929974612826907038176285966734454348199616440948631294472137328178109809801015196533859835056886991091098571815249405499728584127481952529652647231172849272996757870127877920007779086168349914179568662882171225158672766587562742840484945857325226052622780081936542053806234263546888296969327259033975112943694566914686332126101135478910787019716759806226492041556198875389216394319046614735087116477755583170159485118367033177577763157333347748357466943534043021477631036931691129466100985137471680577550006494781799273897744420181622655899267717670864606271866947008033025444652221291775080861950219498303738691717860586829093771674652687779585201522150125459504119262963340717061944761709006011246300454045533983109895627566488315502994070580746850115185074040362332561825523978774864403051815177681715687201068802130686583948635514258331224546707463247285475718618835805237859237556499831130055108222801579042721614873080057905421334745251670164851723154421566575367407704777889040886995057522113461909030617811282281306973216202613853460850792956378206776426855380419419829714478331383813042087343602489253000194440550674424573883435077218245127689141664703304963823144381511747979627497349920024466321635083339361352599340550134401439341774624033059214154559683206961578607883396035588095955625635145009152699974200273948057185220928748033676303497144087258801740544453652907492513899595584265239123697814692269451185070831199777279870038091141615440883861189864715324136830682102464153587481884068396643904246499014698817863845910067329887373246644841942787375033157862298411770282351820941353646696873112730292896935596268352317831503416628694629463844928562784029390938542691074308355914647412485810741984396893290884405365390038455286020380831549641268408995829052709087982201499218966079276903264817919267779737824940114616850984381180958392307284032702915356970890324924302369538940718220742662672409083480251386603981357658751651450130173591325026078834966004505552330759398195218746278321988603019592912474780957035456679960212020287940603639982442618592593415215740040901527309296389223798960706899089279882715380263863309693457606460111495030210809128235208218915231742211781132037644103349134241054989922304364131413022299640424687398991438821188482108330103133176033296428087141882467433370049671350682636027728907514082742675296656182219317426911307203578816142983906462807944843074086169590646867035752958315092990589977573761696528792646101711499199059382833692176978128197262640204906756829432033738525118496806483488194474947099157636089035683380353850707224645346692735577254090743014349151028342205694686027971699018277685426321700594705723128218893479892657030489630836711819699846928223174158983392589897854101998021761659370341596954979131358871484329597370886207905441883195872869828586237003400010340505393166369711775061033200861255090186988177858522211401466730652019137525295280851519209084546800800258054081666602043533001777452970466642946339594919736836158273090292582842742448620528467149343242762348607370115196271650238602595633556680133560669634951228692847331181108964341027209013051781669860022696455575253715555124561514537327026659599333366560349911233064796478245186170402709586053856353611153675397573275041382005444886902639877627330110147387344866299205798237847061197106238240148325593221161663046430829351677449151539397915827344872747170311425976091275179087045946575445778773071546720280628985973459758246520923435791720106499261028425972519769946753120395654036913183079165019987044365911751303635428219341855366893913688867452385227151288959773559073818494511620344960120015197303727133145044612159295978746682704254072544352921068684465359984029345950731734045766800147924593633224936126042885311343796710219871651527849730715225289808366626410854082569299219600151023219100795656721662294178735940665150275796838115877392593482756036162831438795309010571928474427612783544678667975054779846805162564099316278437397507706787307147511294425400153214833611234723651039606434972814985569035566906776951878169135002044905905726226868491590520274101351345299198696597888485472032310684943439031210842789927564473814450337377988261522632648808880306320989767430691180556533774117859563171721089928884649805632248294886351993908845288735750408997746088696360922323866921127324445949098868367804841474474000523091725221453320706243065068503696608211095295344592573982745690717917534267560693316692187759234378543095151671881890884111585611322997298625646132211717088401946347171907658205376770693443916621872974329271729304499022738771775935300036345208954789132023308134532884519971008052838814279685336473856603272585815558428528648606250369502082577536723156712264136516228012694374049055643981792867663094370610434012529525475576538166882822566785334813391790886118002357094291911688946040367003595848422701740094535236370229768428976485398852096603226784308120649546138664920606818809561656692507085690667775816349532805757632879175284737615198014030002458111428298368858476978876782144944834332286754302188025277285468633263172035172458104805001612869487972961572804615228363759292194532768216678473827724793329158459501919633396760176973009138994414342284673009723678187243663287990639670562988003346441103702392718808532125882886690029547821682583557791602904902196976009614931323791648974361005866659991496847799656786426298801307291727402377938719648507819762702206687864515124535184960955501441147364419976880537297898747130785499900650703456499932794468187500590496873562991181123028531193407773232879834447063012868315607919030608671730403219525188768052063154700431058747128449850590573843840219905015306747408509334894790434350130730112756124585129788193206816167589757247138331974659460171294773103181678289830762672438570524515107132895197022861194794405168982265268464918981093721822688227344678138865455213490517294288434573108638489603380016327572456600311919397219625097246403180338015167494566150970820353535801852116301706367591761846451219851002990192902599588982498250052622488308690107399704906221767472587550848686597474254733928220087344208963059157580720915547568191839796001738234967956283276243704600390258782129394323741328572110545614835969929617967145310282682538412051913648132990568292634353997262803334325156832964674256907130409616407610403507574943347751835402626415446287045062615658589025480667509518117218850170010576837311108153680655570471790965194593212007250426769051732433516037240023911088495447239889841414058662700013849401637357788342390988379391611034404968245574938114505223856320444581639629730235646317568826911953995903973941803196508738866673756555270891958187637397244539390499574613592552168485118170106614748008184138422858593904064350986810949104676886392725349348197386743340993947785150965301083232188519568650953969825199088208170129976912323869039176539868845288654596264977643539952568117762134000286433998726591951896063623698538478560956904607187414664583585869222989563635241896451793117436316553597454377813742388694694761008643731890271823965105293830328969124507059512496155750043459927618892280321492091826937304304984962325250377355955375569100118562518532910728524853223256584699283807479847361969767727125296186138444420608932640819248866219417029622311152963379012417266553251806193230369819414716740666867361396430460786271309737788916460248638552428396272101797992334273636692934007888772823717812715164032472958004077566534060078771906702477559440750255705037563280317917625896095818449313688868624573041162343228146894734615862377592278799066012855975736625797586002620282150495435827030896197289687936133098376367352214124010620531879736944206796913605537399577918052472609745771319538638908436887787289808014807457023779941798945729135218236927770616209247527890347956473952483742165554894897096332251564429211401571678344339505968887283870298809689992886975259242340570748702911666512318289886934631543413397147123283251450839114750622259182662818816926262943030248478174751917094952502009648890053419804002666065436685567644548325619198199289791640374926188876592494818122534149943050820559280726972414471820951840996426660768627511458789904352703249448025798870067884560562520274828583440551369450498699219935020342333525674234272842688878040544328339009318133159780085479621139510438652499537176863300373857069559308479823544302002603164726086950338465061255127891310712913929793554623483119689427341791992552957567866641152244748887920839923656572790781474119504485964420344216773610779081297758702598249988081173168658855698688100527872583792067288283957273241845433748931820117391605226570136850386260099606472482706427633853871101123814330868176699736299055595677994283155900112525656524538170251616094058456257432209676039866943254901240854263408058507418789789992306613905379029268611128421978894442232896499135902135613049441145298231334859837598717629253203230937596950442402668846236253691927391314350539248941636785839377819092064140846620320194736070026271447277544121306519040869554472009496938540492668290898601291091114526714993033044427007171909608675837441476347875767048511464928688673106093635577216571067195345292129389744171555429016403413997009759312363305558763166846224755700552525603811642670727316213500189820259518570400536125542764711981642408426940806696094701345860247896050700802623673648431814151539431413852150810111936213966510296634459263069366587191957910361162836834442842893399375203186448481528275177435287418878079247764072532513187509352481499432266202820954308417759117850250643016439978666820986017476138584440299997935078173990150834268510735944270768006901886581317683934592544791791594176037664828754094953334791490314491786318149772771837228823653481009729125159309081816553234271259683924788516672554204728760237138709816433220762124352689149914178930339005679113230121616407297605866710003931920454361147491641069584350216609003298423076196351792923449334663090582056175491916623294729278147776765809884846118979179229008569164436507765157232155692981033442863286570672534659596042710626472174592454463422315903782813643929429328413475032715610830606757975569277351971553471239048782917309170341176502144646153836736268193516643311927592798067462149859851474461067851337697488091074386337752976706455374783951831854336381517970050547479103261854973573337629432870674960673184468839993159590127751974421639684846466705000857368540780807927094589412284585416529614529332939247280803816294457357498478358221867889135003419867080360779656980801245750310226498883238504199690386481229872107305131502790393661617111404066129616246974735885433058657305052216466535196214855909602887382581998541628736013253045250481470887656073415428867915930643172307819922533171160387994355999259827207873252409078837867578509510132165846439816640407808051430138315055143386642650631036724400138439182766284496165867618844916084194175491420274209975979741568926183931153960355031844406715624831985801221071169133603859941679276934834867255738457808401308448736081941396404440649682257406352868421397356677374941027855281060971074998542997203117885208265087161241306017595571497481838044449156890418105610791405052917639646327876308465950833793282608282632111628671408977604306229594420804520082625489614193006590056239020273165721365501181662748506305603850869836048965630454094675210646108903164673423420724687159687703717118012466836636924057328443855705837771237805442415263292012272360583639183896922311913053058839439557185842417683204719669201554486629299782691145440429759189976449133883365520396261359570084765239593334735503627921925763776645246793444197042180027702701101615347567915990269857762113582980208546097774818926007976141074822198679239025336848374053411961934515806880705366134458356154140272320902409937962566306324207722816160914030448335691061506021100563680892655710454268620773921267173570543119293037261000353328557199741434156141348578851251424135111412486368526908930317247606027952929544867973303737425340800874790207746660919391375137047641879298497429155474783044934808931491595247379279537453764256307336780504363044393183172015829762231298767964656046618751111317507802016174072713740564049635897737929203070008579364011760370819710989001145672364915286572699826981638986224817676081401319645158047909637824357533946953934857984264059132016853176699214185951755082559876003442355594984606317657679413112136617328020567198067166512335474148901010663869859965369388187635635206263398846196282610551042679569732111239190718228673849803010017162653378073504696968206415921555573691950876375659003976660624867530317520888201986520174615336068708736956045180248432526086383347457526779800556656659246331341704528841877847740590166074077538935983323539609223474597245188461729202526529377039078004696974224226703059670750381809015523463303955432318205495463635711376466151000064855813166047956310627137054008485505372931026752901039609722572382835762540706831507998350635793231083629256329745895965787030690553557037314859761519743064354033164176257434612339506846452833837492324797091999914788680446135387116022654460185113006792329932279963047012716100999149894427879965391074539340309120694574559437141961161888711196936921474519240413568261959778321958679526658022834232472061564945057192332901689061514465737678333296265358085665253297774987692026092531502498304361416063177142683184106885488743712324550714234109500562578102265668762342433399073882045660827058729303134230057322226546844455823348057102839407896687789000744013978039512486557503379434437042914280296111559024712658317765888088300354841521987462621939585902627188729861449515765687950021163967032913041933231852947050973758342652802762061133955219579590383599783668157561192157196800620728327902488858869855263551239153771297491914231383480455893888323229426054063222687940458325969693578818880506759813383524467463185261594628526187867043289048572127332684367224529777214896055499674107176127708960412691825665168400454995061528058432278206943945791903398163618013603488893371821127868988722880640482297706189351594230512079374028699255745033414956626218706670183470046405123614497515203765956413270291213455201498780181520812095200317932068086192885615849992334911551333512980319923139408392245916947962579480480144981981739981869376400353656940247343880647683342871967370297244940185833352371241465327311260470703464623390377137207219571437702582047747027786362378037558876189744018118516703059177470816462803150780734651628646222880172483629891842753747451400466394328235481553450292495444339276610990535397762296249580604767820370059723212773251528719532054634960332276216811620409765538006415268565538140961151396696759977362037523892574756025636902080509883573204847021873062883631052848260915964916674574315161264424471647621574754264162988384081139574214972328743660453496975426292484227153934292586083745567540311316899796337573923112034942834294972441031460579164855862910990639889000256802817474126733309983686675556232179163774859363981258648679016702255004543112014918935405171521341083674402789222119729052071748514323632198031387132803720901456670699880747646447693712992048016723762071049159998155411630727346075089913399486906891244246507919847242539577421618978267035779038537666632255410401633641256601285157461346699010319589223432328417130871269546318423729883136513359395218801975975211660389280286501140849792112476025142597390908946544738074220862878945972559101830757321852515368210775315161297185515319037226779309429914149166975344395837704610349844303686887960174627415750936496742335203532311221221046399191889732299670259776448586916270796492978679808329434527775490714332590905674751011625839367352388055791678628743493278461085888285679479477490937185118120785856942361529667326707174351475758025468699134663754471151583867536742299098251432779561324930677824619152024352557609390063952348660370543395245964371324838265590197464616324037889882007555435506263452948626094445259097906152412412814439630810862814648542634931153320685868030485314503900112363988482600075621570935053475298581107212144684286463519578465679472844875450628897495721378452434952857956018478456420508899683621902902717485030438827331197685470252795917708962206115489902723186775871789056690013813369399299010993890434643528206495486918007515751430656468610069326795825622403512360651287443651263582869090737394572396554205055257206988011654410030478967291594318632758698557339245210380259262991917370706031136328801970210385051776578335952390607261707027093669841641420947795936204741375431876716468314563697343234126538413844469051787116988658595036928041140137039790924435477430074018887085107783246393821238084477000965495450155865564023040133453819818216956558799408287816331648009075636694456786531656850631390042276517640440380701068473157457287921015556332375869652232530157539082475965248585269950100403509427227241075126411131843839399048928452694233984747257277705915847285704505633305803882826853545236571508514481568986631402266169316030736704190970429848964084924767867661791392698505617674983173889825099902333132078896129125194614111385633926008927834041547887299987342470018335023162161202747664782358913013643590384819240586898765502734474287277639512195353819654734962658402899482566384238914442103008326090339976436733150195703089548855760140607938990137031171610246702229486940388154052325567814366319501224269878771696899607689178955364383481915789263192332474524687897066190814845707016513420142761408106632719223669491296281160778078337947259665994493091175366373450818190002514604242256128622473723950209356397539139248613534737686950523405089460124750868951221080678739310912732968347110370758331442972599864968515322989617700381230750687865067459640840845607275852945085627834546147280054561133155020919708193629029716383795760001600156771753083417991545234847581075930352475134204645762071260631210485628106831976025023097151432919216601467823238159299764173358652315711004228060057168236299184587260869026312049913798658113123830527486753629807472622157566497650998419422104530816590289384318209841935129990977879845163899419996607229785728173707296820408310518173806134463021003590458476103018739857233131619109916165894687241676590511125997959607751815093236748499867913965152991667021667494570312646259911770384243406292792833965619282132601089319762497796001956884183120890126550832330352822569033231739389198226859466638174668652634825789753365973581908911885183015712461386928769095358094843841760596086117874845604690771190916418842470568158491444439231634523514022093671822797919782679019760754810461308220169531579787926966757792959238972038254955034364885291288792918011537986420725677242985344121084967355299224456862448687213962763125431876081592019911034982184933162575108180462414805241720395591580181539210818302389139679077059398670190784959052843294772335916767834141699566075139565022425817369024316320918837559790066766189802356894267702615130099828879495799663367341631201700426511260927302851192185716029633674125304767680691140555131897818903720158181301629557488162050271812351867740193886784477032424598043776081390627957571514267290830731208876283956371334510548028010167708172729421594787693984960607671136820351500867179360801018076735364318576788873349650240867465177619330897448644200437144866461858564484224618085603736072701772725776773405017362967947105358392047355322418693962792739196913951835975984550417960439778571872395907446653875806583198606133270497171987388617018023654522561502688388357465885322815687772203604848996367376838246342077108717459177776456853782386580736597136207347559139298449126122426945321318179970494447916745864262038393794796740389516970138233787735240989536775062988606049183435542683509503621199693769409100397514110287268368621545804937477157303198658045945255848131056464056072110736132765150056660552760978430981266575997508955457194034933611330825676784238737372590368171742599543872219246047509812809864503953268009778241116107148972552626554091741140289285851499962304986880382746345795305146585101849392112353508829550655735580288707079013346501713036205548487922428939448572274410354156047405912309642232953477762406901901458206991741796151000390289385495188494605104751010225021624139026024975156107612432937043702732366081319650805304737465509739167119136240089440459676202499833858566058094892174900530512030220451340843717908661865494919931492016357328175254469530165834777495023449198142853400096537743705551408331221733714263190643165813270099991508488649349712894019353938801387697238703319550679323924351888246324006278839300109263386468585420745201469525973155268836122912659859124062553835167766888821839072200609693215988036862236480263583304289235177691082913216682249467671927702568085863254015016752153162230705301369004550314488309846444285668415825285791021857806309017142173420407709462090526792288745487875503874033151743708763324788942198032964535396869837908058741829718520594487769864980560096068761121338453409200836524896711983152391079697277338301433174204555559886130312402454001447325439417684801083763836258370593977219205443773835561675895118801893312013000013481838834532231242783311414416765955680491612054959975066843513810469319049784693832430286840818085188948942550995774767050446343095390839217770472622898303525433441569484548765136890170807632023463484185087811628250190854711371699737645134202261368896177394441824686076581359817340346337367540430289985994391203456499397573119543142902181212887468453303152145390854849490678347842348534887139338385488373802487072432434177614792072170445842467526798176587309985545902144373921699338579593430983916984873016650822061673044985203083778043051694238206278345811178018464545778314124183168034160687830243370948205938696878619263595445399413003825111332236234231101732524562930509625095034345690948011619308282315854926289890968246578547893575072753425917400876447175459444208935308790049783681575039428572593364161550564733772353424197811427855771075321381331246170264477619842531961417059498678007587805262183531652264081544852176120725664334225259494730044762824717693644561036833756150730896075227854119022030922497439817461049469988428281365313325074164437892069423070444955750329164327358374260357055464339630501293528894792399753640646203730979885138395733362218299738805015378761131163397603906764389507638849685014031011341810105176076984250069369440885723447302700416478959694150747707282539143587203306379185436875969409607800814296464681347027296839365439554762256914146108735091950766851188192427752309906527629681175062258756592158112854730730312965394527245401104272315487640771053183532164487812374806252680153646633413577713515938896619750928663287358437547942588825211796065253912574711590446159385461234402800027463964190474680729968918999221951346478472397604913464441940601763367921188987039000459027465981003763589039364912418374877912326217730274644200638305910432418174316219732545959693764264221806526304926906621278602537168438462956008625310353865258516441297303443073029032526610990712648655206247771801240871347962084197826334809171743106927309718138130532932150393974358553759128134612635551660104962856252295998051095497139225472775404459637667071504017679442551076624347219401610789516043575399289757796410431560636780777717340635692387816133771361061854844562694137147407230285775136001380003402200126202013961427525860153244607097775276606151940658102928989329705775455043780081053230064396726202492573311581945395383351705194160905634650440779869767635368763318281064596637170833510923481969100437436160357222378847345808219147737930377460073726310401720909901443780561757057234691298737979562839396631620462857318602889190555625752879147296683810232830526387132153101264393689867741983455789946694510538922648934750732173244265098531393410973021870848027558249729258931996778994692725778210415337705589048608037775904682295658489996050666851390579035539810737977312711333461598045527786632220294589454781452992002443503446681727616682413439992239389850855168484122081304406564352317896368146528809783496857364418834262899840551395907234813472949805153117551126525148577071606966897948776457690061123754092378618423002649774765427472395731984974706562143551648701275415487020903857301406995287807307837318652250079447486809668449612886509369463083834615658034381995373733514494726294746750878994942572224054590025306053812269775230870933861025993143862292611324411442065672465443579727428302055052365664784498020522772830357349959454450301509240640385607013207814580988942712795731338765026271534827271756932618105923378391959179069921567736483316294759285072695686182170603467957982376853321990266624038458081212012043406322599381874941983572234792057179462995575438971053918573938749804416786034387242641088285655481471406842517653245839749443344799566224269881786832010825700293147334755272042724617381293734220383830703126988972571405564772903412350880009188416698338679416427113989718791822912801299535887283338433794074890328988855784253794777022030188559882076507653390619753223309173715524304337746610291420874550911468497645487239662133637193730942420425911084634040715488637424909492931569509579971414384110567521584254876239581025386154477391960991250690510691247307149733491743561747514485525297892246584055381780356488957494109589481892847427174654941331738537752469435013141155853322414410959043450283914472866233672095154412272260917329296467723040703192092849404766781452170826144769617819538543745950478698920964192779834810311658721276446054950920260638544578761873190367736703457819868233225560092745287966507378087771904046009738743342948865063905685792873922053474167844907676063404976920461909449262797719516221175208370967479739034168730316447621556784475835212731731791201228938909615699005567977193946218310993699620776862361185056331962949141348358301419813075669723056757101709177398602672819296191640666492402393809629006087069828738966074515718126780847073861297377267798820455542007944100648890804971586724332101200419409205004221349106253675845357347057665449411937180185293462855755152010722624713999618349460105801698705366428131708415540985323565694699645922608697874990212015373042286603522909793458961428595226578188568327542137386654739013607515405243967960275164656293729973424489160696701410416476730192081873731098365683192901062626698353382094400224709861752818179050864160620070936862999981266639797407569135141408842211751056850992502434558608289102474936388897583561985912198365903446781731656855830318661836703896837574031261300105196421166247566107796759224659935535944776250934710803402754673482124010615551771218994522574406646151363638160668293651738249485357244471742057939324170633343026359549650433838481369339698895083783822132373866454090673411956977994034513514820838814009829924692677596194690052857577834799714009044469625487035198476349983601592116923934425238759119756574524707091454081643779267880065249208868349094811544729687414915634337511074690184761963520691132557133223224475850902573375292279175940206725202129856344579558979865130863117592311719457383717638689796241567866526902126314374720291645553811692216149932205124718748811409789442610071194706663732325496402860332478044085839548795150885105331921543352338721943324368111077806947015387813282500839212035626468475179815873431695602567199375032588284078333412275641418136707339461365947784030727248037983828726594275471888284965215165395312555879706060363978341017511304615026279798476982488985366781564214122048571176858217440048090168097195863428017126266719107189291643039913083066954039001014079231710446834804925910687520136110581113235191829701745765013758359792530054524233708168648518336673549473167564487375318324150750655827509084117692961677854621956705559898461369239465740766155638755002138529649762646824861949072776743591444476936352367921060278552837504876948580466205597850134722407925450624492169533930236309052397503832318686288837719100595259340251139745838871661740751799438863207124619661620415097150813494918823364287407708273915011898714376444604683522383780189433843774182141122527933378755453043923864845758137273161329725491433927771912504940902563665495376511722167019121395513580299292389709250181270757756944251118385988995363457934999326380260007293842278598194172338218080238358236023490144613586865732600157825939215366858014371233348842759938082265465991513638119692588735792409619639077777286918171767300369889554900059582842577756014837555447457131198501682867347782273436757999450375780684152251781457505677627783131807561953755187023672960236807708069039767038975011456467983042418397980667964205142766015171344514106485343128187783266648478020663925085754460797522171176065857934089778531119378119503912309404233945413127240387653510824259393751354302894053678097525968663477725810484068065273516707710757910482662274476675805240364628767776439851259126144116861984266089860411603364674522282076331697836907042704603863159398077966117818879062632368020526357812649950650434229409371828404736637821480774023376960245127878204038854891268599199513729349145043989828409115094880823166322974545523846863633006692772082622530171203002306444920858914548824648855078865267651017295210860739434150422326720400828391626103837890163799866126035321081690337229535851742776516373135049401195173171548673024026956748215551635387378166106207348804691827368461227860312777370439263225260929039660421817872479377228375896443577886208107437790688603828746873168179914437840201565228958234701101363386546464485704385649466656871032426157784335371314076438904777677376933702618932727580699061116326413172865914995311150334416243963813899770972282248499503845873709972691536787700160247271980542844260193725405100024495780333979193685448150051900759031846911660177291097280452502575086320161917512014093743730324006066351297016159007587197936403186967832842088098971616186742156325986813443058618162415410924210289452419655286791364118274539815098371233850898548190579139915248562148894780536876380962342442780767943668847772365092551643019987549214070205100896647680101509234037231597640728133768092512809458004313160654885817325893797949001351874081021864748210241335056085060290296882210073414137430329807076093332797775666460512767388819058762951948275828490018500892115872368325745467500056714538690353206958438072285992666459449986299031478769600239214996557236867825205376602246518123280382913696866954045188284882329430931532442098115718239453413948563187619379311768712400434607896289826804746129188414904682962654342337393028810854226755026470765761255854034159124892419072842615325919614262551809067113143349178179412138249026945833973876613428792969654612641813759849703957144603805497976860577649241622929664191080051483910748015844062777735699528084925017429153803406690720329316417203585092126096328262858279233655363118865478750934648309951621385407659242570294988174762503559750707420166429370375569575598508045181545796298684970794070660449208881559608066385653417768609719759155471997005037707735164955907919562259087408113233903301627713536702315143754694408496334732759703538770646384501930718080764398688761021016702796896810737248827607536500077430103676150370244301432725222129575068015169211678186498581619061974338538079280139934274668666188936483920745879872201839676991715267580804642966082251362403151772005645633561242649592236955397708651829059410173043783735599694683054651050764207804872054661734539652675107433640495195216586249153558601670370679011059836944959630101887537471265598329448885742280549163910900536584090396127458391807787512307444704093328703109791828189089616406743839955836664703505722966892188397564423001744252366829555567800950530255123690262562812130633839121756345565763660638045641595407720528880766984731829920658716966092877596847105103637945842117928065482255455455008310434108810956147505179870959523370573450792445704400722281627169583348210636983903283678681234378882221406193997069559057783304242627895672883723701571548896454387663298428553982008291975232042615405985028599952779760566998620477316064286144581431350063895928519628830649926539450738384815837225452099339535983478870095948567233076014024568339273006066864776330608985378978237010855491763818564750072729281782415629745201636861874342310118884024396424636779537310785405894825861670706891513903058210520199787336473292169605853878422001693384166624890101667533494562399838570024234687659963337652319453734197544640369139669585520451015847418006369128591631813063502611271155990458558835444163455247924678338501847227895093812447063136541437852492501042058919402751067611450921357336892896735941297838588925208302065100186200570747778764556656310181649959725297159835973027524117791061842052584185490471357134484133585014911786009711089440734987096311021586827214054292770465194262689274025358024346500345484532170099635097993005495518958741535302316297615421750344501858988371614648233076467618129391224302916482127075067592529201780759817721857876409430162916907806674799580012653693591633436844081665161632195726269520479237016896817777468456299883149107028852816766200875747817075729541474092598949845188471658871725415798380539254079273427425650175117829771258542026521834948989461630763252215110103664720150281789778601235184890329183731794236310164008344634166949764590057219750836759428493408706532386942827591398908340357148693859509222559238508099107482576459048442415074663532178722760566629409014955603754475324842777721029081593441954743011174618989992788270426835226263648114034063092551812585830475171795654048112997027823977980037947530881016759066775969047319746128810256131290984304801319485777421218248660854313776993863041160088384241589764774322825772291179129770441635158115496051157932836324986557945853642351430694006035344111962015701180061664198846061445595669830537681408499432689498974409566265272882337649698352279435472398399763626441577530208581893818841027030727813220877834271607889798099506723363022497999282605608093841889514454604047242430058505533608471380906643900428236801770016078436020294532942910925734511268261341182505971092652819749900834246353171862873737096963861072462278053228005913527794838955647353190124083082118962721087450298048291341481978950542618026215995645291143699512338982891273016634767351961279140678445081993844419111933995072653167693005945562055904558075381921754912872687655260662015589484286505933107705183871055826376312066228524468572558702678122903900742927361773423255692693251718359825659744026887151665753227226655004801685540188240444027307869969756490017038258828238246434345945674628888159927906720339926363143466329171285339446448226083793815624821312123900466565601698979255788754018007393970038583169955258072002262007329982957611670212060449732678960422755329640362761887795469456456420403722272083125059281828324454427135407799521627297681876863820660022206696543170163722220802967848051628594071134107972318753448345811130029156558712535704189710060901766727940746789706404988789482790238643822503187929607607919810953378248280924004916083314304552794086669717675582858541623863411593872904157703671191384979428066588999497411806741092261491397598629797703083294259755565474461968074222223966656421452051074455782477937400482740785027794470108501471562879590214399847727616138772645349572353766937628377919697709801360060614739884960624541256949340088917207711350807164400809008090214513393168472242567635361624241996654752897887110287419418738667947947426579647428176993945530677142392134892347485529907321249027016752980077016886895544679480858523478722782238912311569328543461249639491878602860669808229177665770806258891655001119591107850669053358040600915661474497219236703165510053976248383983889247974125413494134492381480831735169298762743335872944466998956460202522125234095001012562066805711486314451957995293236626620642100444287585740494421742646639709885202114389358360127474728676402041379273154480296320900273085047249013582931240403737484338048178607319257503462570254299025864678043192679821079022015575536203431299454157026739394986167539557323839409345702506047885107067712377093092307877623799840965953278883369435131082952527385779749959920114848015326386281812797853826130866700346452572728609791031903569038216258381009460060552348617487564542237432308964093179392065770819469725899164028987148288161580606645885681316523239798458240927477739434576118528294566093579652477210260685624356317225499165752324114953595485740927010663824569686052602036865284460215936419368867419314139109571912599638534797150716950042775744228676013598034414834063637604950660225406187636283576922643806384625686388101433233520261890494547617457320406239338604114135141774599054757371697368823892169407122334786809214763174636007122185314696774816207362464358872719606463494308936905638115228425417170059684115274265888010570517191973200051721516558016433230276301635938181302346953161539161789605616572820867612416801247421248156656309801860670633212667280153947433621420651433834662998421162220086240987479274210009757926098419360732677563533618010196951254149989683236437195187518252765768873800892535392240053516110764635864571692022795215211684079983789372463937975323577357128505305118154000407006915194709873331643280387739127815330932187499577195118798709356928007388645186540377318885175070806680051469197221274487243854219034748342090810560614720533256629609356870508658673117113208513546569248213388584141602462419509837563614593903659513825129536302896630890027593973240383538563796179926362821816281345211099059673672997574748453832086554616286882378530973157181660793523823805086579548873327639987813934701583381460932867060084894580402378299542893118804514458424617354425506006420403039275670800434713512952754218587794183102445322462213281590248139647908981222123190039410521977819146083608984222897967106158061980863927897279076784505800359991785734953200700522078972383627948564667528887181312420540527224884129821221693041751597454428321662803774285192857948159159822720088617818773926043754553964903399328481782231099576348531848801559592300185653060483437228265218432369969404581253281651470068203297020602059881041017838703759243665364122036629179654093102500803990553317556520608594679719317626006894668914807515107911746191520792216398566108307541658516942795974522558749515115466517553544317234495435750872796253893781512783652892534725394164611580551279968134146224245943610721319109375472013318094581524194524162099267213969508722214225470197159882928115406231582086775281469172077498101173275952294184423587204857720949881824033292922777799697050688052236791193683064704157466875508195768895460843787263961162332189378343306519493074716475019920958964756488884085861069279363717678902068325434203349091234302762727429782731714428126113274613034962560179227614815916989793845342757664291268721955811240666983382758522689989080181839492344201774598030445070338179611622206202653748416275121519976341718610000415459244721928942237226218380984575714848655649825072153750323088498470135450460933217057854857418414338822673030836120986928443481028579065138504274704094609660284737349336402664974036234809352387947802400119524975627693769192453321482193295782900210937611147534162028772040620717249099049381811994149405663685576650210960114999627320517984202742712848530802313454494901620308352588304902087556120003210481077371260018469005249989932411415291473592141675085506175181360787574720966076762725199212497856442427474858335032089869354849278034318942740705100498258616045703124809650196169999620385842674962055728753211278426534379797802398697751366420821583557528069348374609271554839316708181948471231373889070217118365625229271738611307918270093966287955448871662223350290611760071494361086133227966569844760786340443222558447035118078623129186275132316141361139787753986216727065221071673257265896485778014742222681283033237005066463356568206940443178063687982862327666619801153756984885289316636286454774135686645185007301389165108431816745471937308003304610427352035898284202788985434405526578845045359560034262380771343416753124444527323360170214184312366994817607127143504756007527344389707424885645188609391558937408267108261899738437234813062703711730057433600558375009127105952207833646966599451293706097499474127991215489340200886392111765832549446641814737730067050265934121299180762868051661304173351227441313911260317361251679964299230802838487041795327471709347656005582846091458231418841141544297684255553884450387607149495452373257203399224969537920664224729722977315642225265632267222652410597114442238454677782648101909008388821880614214211225812423212942339471387005637327389102945243992256635318702992080873487498305868856870939740480619609266335201933604782525148141362689844369943130265679283368003160277061753282961953175920188767176575894264951650457430762348842287086532908710194012881581126980402036149460295737980288182370224672635948129524202968712762925924326871700008264201722542456515941825745765925722923468130717051793701888638806246252160334864502725368804031871128564606333638201520592470810200410097190866621150021838112554574384828095536354110674019985562779878339441520610314430854520753811275062999216465116274598524547765427676719709052964575611329098426689159212734112604149327184886411764244199414033912436972151568848896594629759659476023380358585625590171371856411343580376685745462372290274227214453994612694484030683565414345613884508617714639821632079630398549913244133909659078898208849409206085077753414147598522833441880786227228006559511962164981825008377186904767750738589345361765413783809087397236591860627498530247920563048362209379903403134824761001095951646162943821284930263947223339916977086762695803320070174371307766330244834908016229612537494392470668009177762683201122178473586454338787995126837393252217944178826000384088605068819123142440566077833018392630731059384354903082874469539995526869847993436834076137550389931538511030425248800388175665411571638389690044782627608937778269485760198536682784933004644289220307758887831643949501226023206110146976990283350246474670880116630236819253072724675301503762967948250515137971272771608818804539252881801038324767073054903738153587260103245074158698297608662884255147871757636322079870504088134721767429478425751737827288687848184263636964124450649003633893292815834287023485526082641209966171127897915003802342435150335037438767724760594330070726602806104578775607623478083518026129723764378451778936781458322976586847188780845714035635617171735081367871391296300998855583842330458548414353071433047983733668651097007490861449771027588779137762727174379556795543496204514959218575543776950971889226684206080907773728295271143819287502848168673399646700227279031968344002295928724146384578191189271225285373890486800149646546531418169282183685906535457196346426160053821616085640295182230670312476945879285641385686344386173696506582698274496207273536427213011786641130443133290597549521539312425461428502294634525103378363104735761713894143604692947181871514584871085937488536125757893741088360831274387167459734060885999799477150385675748125973160196018117674423231326817678800127028475743974343246890249848669317741396495877033975041320291361159165561706687074241111502767723108265103996830510281099309800320585044232058315618140900385042472935288404442531894433974280633222076187769183710355938944289055846339298315339085604964708892331736366101883973583683354124097371252574373707323174294452309307547305872887802107142494319527002266748856150035057691679529063580199620673045139832382166205475527284202591935743396036154178225953515762378237812894304241631837742280578011430946042214376710763880600207062852814166049271564006273932519469930449021060950469729847863711604514088224258224368454513091031485690673342396951858503730559100708076591485069639123428921074050474661002115524563269951641679253074238542601893994552770681571379929309032225645850009202357442249206379939924025458398805127288818148350515653044187067293274861152411397884703351405992353192574680665440680305950746724343305329471418466316051145614508325031704095902680445625444307095910708243528876550253642229648528275963246468204957371011713472883431533824975943234613971832110487057979907510650175212482114710855487032754283486951105741827775963064013299026630334255069126322316363969760370954315038452556483971643306267304847405383259795179283353993635485328350438669362090221010349438072740495245054196740376331986742389888817114848470791867643181847563100529663677129778969447180184827019605164431294350801509634129069083043264262410179382075687329202087128595274752755234564774611475577257474955007937338064248295196290031047568301423070957767820833920916552245174295573015074514977536034198533874646812577961643305902976833473723227144855474485098176545576946080133465457418000209341931813145816832878771497297949455706603673813502940426947609717530344618786036123878822897346830619448701170355022443865660551401008210941943438940672997698868837687909440724367425802157706897349275745078877189713292815955495545950341152888856730614569248005755196029310796959039437444328958127014890590542133745395703218253818555192633460207555592452050646397924144165427203580342221927229456688982174912207831261675516081704436338802201545444528369336417571508938252853620649186156672295359793609765381697644032379534143900782962023443378537081296758399172697134548271776520457048917326794730073417083371049310073406289041116308409641533509790896561411545163796112053680434446148075898493998276981058844966472714620343237765762986553298283179854795051526719877920117919595985344049838591952344552535135076937990223566178519176498352470336427607056942243943682248784513607442372534517708207005754242519355823037772741116076264176474472817941269587134144386978407877991536617771688658709139175166777108359763131255112969922222460325512245926057226515040436430712674305922215384666222530187430265931118755972282648427039127212478232307300285019596909739944406501291832778367339748591350765312201101710637986628664407554932370314758987218439435462506755949861675024887898214812323604936025904276927742843490557462073314615240382696784163947951241024411244921635816233929230540826001728462474750559386872288747012142641115560001209718586846748799670286365272354998685833419090554079634553424408755910163365908008918482094769257914643745864121989573972726192647516687743668569431399480207641944264368935396919797847013193062180996564039045700256574539692715194010029011642570930719491445829959365466757176071008791454531843833048192154628091224503040697849438732583082504576978000728811288836053150919098357745512504081385626760812575046723569235059931665477634404485931354362043799874378835925133801118552746220710652821101246314905710381998892611823925891454735553908644817708294434304703077261201797781890236481282841975468394353942446336037795026748895081996409383149895603686557662424078675682526271627563194636998803840082743602330540262404497043571210719438217401326849115974842412677375237175907538330390041482850466583615828927566490332413936932863699825410442165407705487490398092914723326975198101351666095316447631743739905521514768457309051856639610351254978516597150806034559550127176758069885424136111377307324820340280370986386532028075534608534270010830443820191403436466396123791578676828965641208723755692167244008513406057150874129602706335692783034978013873140067441704183732882418121342095194333482045890092344727681427713374092261537101104781906934387518240003058401522638355745123145450958835022369075829706739280674848044931315052696384949009077165390196113554715336310689025778009075468026511530793563516365261983005840326163578956847637193932904297193490363164002147905142187763827854469505480206080089237613974911808679645580895633462218602317940303348617552097935928503201413986662735063583714185191486020064848359596489566309034088292239931536215342844653311204758485213385661463227714814751779481576996307043621098879544294992080617167979863220862301753139690670015318445518885017462042087114496430260519371439415286912311372085730824691111690039453631677067516732471017827548904199821927533388738868929027617575417435662630493685075893921557201009151548091135881122976983562350090047762278943641077144587123263283020266145392968474474267068969250733670219730451820290421354743445776524470066439070584552408417420650588829158648219110777422733045519448455528848630206794476363670953007250661660724988171912481780269917060268568341345016407748358678610347059641700891646221083735284740401256753089578529650937279808683331317566561970041362357193289687207651411648785899576934210330860329226314430305256549130953880081351761946619077657395173116429954053302439601674147401956367016117261695518817030568546904284693585103819881256041988847169120710730235340312444255129131601644278893421486176328149223632080710203811159663490623343717504908074965404450476560939167110489656612933832851229891487442764258055175394766182374743553306316693380041306212625671086832226558044883088805350966865832216255257526073936679862321875305742403847325220261608631258610508932207279346898379671426622262858180130617308533133054346102536876403019703303226198170196158228962679988231735694652063799188026843160100212353052381878592348395883786538457359847139101735645615190168868196702783595456130338377749197834506086415983303756409729787334484025875784216385268268948726638023218528752992700712398621373699724242077323775887004656072376719549611755157537434524950447251885700434463582173525046153897570437388100628968061736242707441579643785417456858867807969868670100869134052988064839506471400577635684974177943638383055174567105686778986342214545202464442620638740627575325976143926516816386346035094623230957537346401251563934796697482792858554330585445532402471369412134762430692201167602374379499930238763984452123510294680403544874222020294820383115206611274600748405807809093658350804894729883933504565624295373006357543656454764832788652250684734612035203585936778109898810544193534070841312768262846518256418483019544218238387448776449380081460555625879431129561975272732536738804639513675053573811594523625328843994017769394449737021031536881744294693234675714230891658877350265029360861338628026146645839436556467579557309708993469582259593151779809644048840644361998047806208278306165799871138512071232899159432415210861144694760925959058402032473603702993042289363648400352018741992351626571976329899802905329329004821763755190026748389412158291897721561766189538669015932119806246837372939644306086109762836860627961990687200665227293601005730672614100283683659466732159838819249897249356275461346976800015467222403991620518690254848676888857544804279464304461212457576890556622529698075732949849337500403825452848361623404814343225758459301400587015081757995608694569425560517313853366017302624606019034842882654301360116528628571560240331212188395127071664290353458725432180146993137998467789735688362377031001287729924171489256856302381873815037658105636632908322240992735606495652404326324606703590856857101653785587718634308877756530023601432867092209708602123925501901689211202242169930526107540377956795299137699873168861092366502671373016332821044687392814312619532511831434298680380065022002567839612400981232306438289384371094879460013756475104720923948682974572398562611181785787571997391548361882629325873266205219151121746475996791392239108084047047711143587759433170984498576014217665311644020415621502643687340273498016748076789947368848929033664959165251330835247023398134607341244499890760241912157240554500584453688960980508362336466407245752558681728397803397883223550450351545048310557516479761178256112409386863018920203760120531005648315807043863466721413269951225222905732915308046903118854057742475127162300741402965929627895107581244572578707624593385910228100380106447411984293426442406561995068410751432710252730998226010409826184311292655502734299107315863403240115177701251226341196141855199563053512421810474146764679925148844652464761873784953494729713020861964728924852586727608501010821463762082464016377611226300652101767324566220963057445577991694779619609746462766452587613321941655670867951035474668116212311704090388928520934316380241326504317124357744361483462845639687967709057897737784949866338972273607417092602943603212626026235233508652181148469416461923565601960678058953665535213771177065960483307073449457727257748168714542764404173382956395658668127768683773376681143938794317577785656548006759607295142049312028701641745934041739792702593414183382570579341245905842907391355889552818869509695065225179495631963642966433595111176765313592129033021586793721038677118962073713468830698005302958616720597430067727294809399001886238683014883648025196923512749575447129352217139882674599547248887919319848037631473348030460609706332164470597714866351311919429539463610249879899679732464412020815339000003036749141799960299670783440019109377856542790282824413882087964122845682575257426620849976178008304190418842882866688742650208147266739520419654209321492218847313609125242508674422778708098599795033470138025436636989174848463004422462238965524459039632788736131321161677572894680231172281829274018099847863277809963157176539952032917618845332732646927633155752603151146953345677934836604981976814800889166129155466159733390439655131971277772262988928401707021897368757044654034949384174203997338190802531825966004949730034273589149111686578836077601049759405181836024243704215920561519854439651127661844996664761700113800469759274967968279686245768605934467882886918653188494766541355578416291376349618591945215870511969231738855230629363360467493000515666541117315292278650549053151576600789456584051361553838323167950043299508208364047699010523560150720892418690753706694628258311449889896837646484217438813082951910941301732909784198807901379189681649248118756732016770209488315833912709645857917739735229494130054813972002177195323862962888602398601962380033846789836557507338824770793075203574777900798727123608768586082940314535354339426562044397436527249602714933644332779954451449830681761015037293526586608998034878129691002719726482966980752071042534840692974129236336555065287921940975563094702025636317891473626356399997052075107389948140270044637036409106588002006426112640833451575286118227329369204475329487944091777074843369869560691678104920897336923216151934967190991052047002191139929803134825316068922019724754079330757996460741420497012678609954554056920505384940514138898377537977605619988718326923955314464953569700292485032189096470670484008343813315373919986552140254343885035718500505735848798588155620733056947371345219738931143974224056239536045267931729106544673130947658416251999588536842095629220633339764448020179099749120898030244480401869973571639959563136875540053649836202256725432111169064386493643861070227947389932825068612563587972328569321198744366899166914200536259686447770192315138489718026525184184143433758481538681341136695498037890774633421021951277412091459834322917707185860879581933827518501234485731791468768736375501900649243404876058933689239244102951091419897743219713376104637237435392869107575168081761827569236563618743635664193619455306524317594022001133607775421116634329930326322238176604428647341978053407569220475025399270859079489729830853809330854511348690070645650694608639355708138126234516767807368763106204268708277444272824714298053350626170960934669520303290762389714513796251304525316517063271021763173149014008212977178532933947661563421224334489554713657118249262947861713021577418874397221722538999266520151925564222532228765206149114504461644444554182634472043236125050120344424906763628310922299339590047265437566112533121485454201100440162283779846316502027141792253536295719870621238299884006668840691432720467318217551276034440709471219484252518467403766496000079184697940392746929962463041394380367525225371145026082884056026206969359900792165776452390004870334362195820566674512618890808309864736967811494399046552612662687953933476135564799022415985423421355210784946297226729011460027894453111465617490319279487942826266735152613479127153537643548949986625341337557849201251694845822318137898529586738142753549145930175434907531548913017272015807498403122403598802015471576585055153075929682541623326184161128483255626086406357786698783609120927187372843877184988991053142802113683946412220691780794163578940943738676450566142293610067199663114772193370679764079228402309444559595305569022446857572754202665873428422478239476199993208146802361446055983371863191053329653764296493377863427179877124503989695502863717194714998186560909241921206072055368641726766129047001236516735263240935971171595567477056463444760099978638642876094635031055967673459000653186375774954050540523412798715585862360602205413792939605419618808810404686072610510625826597756276250854538555629612420051814125645572089603885128207145232611002306758427895522314715997640466483841729691036771508118998155658019382208394349058574181577360942301064969543100226775059464485785352270806298709525396908012302112212258720172812659499221714772391359071638980189495212854282373549582951842540546081693462241816844995317763104435962522568684751799083001333669183462374084161996147719793837254323874057177503726587065764075218780467793139465573578789428446256763505403724981239864606909304300470692064270326305424420966164526346625999028206619300997561893404869710228619594915696450724048251631471899628039218946545762778780693259420486950730925711557934619082819430946239546764573642198626967625206611935785454742995099922494810437284342766576832354387332067775683177495803448676151007022432212261352151505682058323149312878017662799896381709065848529116431780286089321670622678528913430847537550112821858316015107818237282139688845521846106210548851187736451231550639664767443630763027170127002668367715014106273490036242962894967999494685529967252208624014624322917351704111060833789232332680257679891996301557808443905063316941655100788812018731884425456646612569551539281737462413324510131217435741725759567304646690534355655343425462706501329342665735205321736527058010303425557661355284753246648762441551110983603052408125009266388435870229910419109405241648243965331399470255510556341288736795731601763692167658738924959744412066730436436930167571410851159391921281683220954583356873218800162012496170092994603702064829289605141912026409714405048003295881465167170935444524108629329567026113752260575874484942121090024932018291872491872258978026360849502162743966196609371886455170594122610658885406358044435012562854389847334135472876333079635967565209817057451723498066996153671641660760173719536464117246628475697872240388601884110330591736950919811101884578257922331528344022420142686338404204577426428372589784538328049001803550300055639764004716580222299783535558265230903310555738802553037949298760800992681179481302104957807631831275551489973640930256893577555263243989286637037084799746120389559022894639917334482907376049999815152867960668033359772184973361764835901136159506412301569482751491320053918348887749712835546751768336095434822916117692662179878428474108657997451915345790350284557827812332914253202079325601786919573192858519467940905571770578603854860238999094425245668728048304448961259544921938240022413212223523167014342557445475448415528581100995669819852447759436203460921815342365489644811454653502865121429353910507726734832885591793577566906342065256281529734275974279946554748657572981037658278362158774515310166659997550480729731459526909821245716903161327682324281193432095131534207972527604234415083054600096032898991709320847206491688581090036583344022233639552872708667510771593838285915321742114931794167330030273507142625592150664384805997074617125814179553208301273122235880292643330526166539869755522490907474838116142029828900031855321366429225639961629117808970173798749985716144581210699801861472740945010090365358878619624891597260303192019188266462701241510874921115843623566884824571388301533832628709105648400377553164630965774084943514358455692452259700416891162036587618669396334992794694168565652334231106220658659328355814073432210323834980586893840599900726460876915923049417476184860206494911361352873736288924155073810211529510835976283298476420989271833899487183403842934654482051044709007926624706560620024047344305157779624339356705306439501065567559863190028352050000949339375546553218041330739383916424278980613210341445162427015480893011849888359374711140422901529916671402701704884650225040534626377706381702450962731621403136070874494425272949771510616220771428838956117996169405162088903254289194363754839773412573310243983931748643386608210343751137698728153392367146555005998619126482018874282800407111567662278963962551526160007136512572797616086735367325554853937407833341435333229006075897182557238478992739965516561596995268702987199591772504612649254643372899662547304245388609344927741778502905272610304062808519003316708217061986687056223736168145652005453094307497964333415658920601625652108655308181971095919398899340404513438011270297291541339150485587180727886002607204689567859338438040460897873923190025135548086463655352005880519129555261256960151456186539851842600140321134841798210324145878852949629175396208781752402815465384223426813604321870355861954170290818681099472418467269641195026781208127583987152085379744140732191923564306777149797112654315510572450849878565601510588455381290794632075963781446432942848171717984470108874806823224888194917067925365807550411462755852447866992938366837177767403589828359409696626045687350675073014875584200707615257550040764067939063595430397005004784252863524356959203131549872802448808238914726158167823161402815057961996482896528308052379195373472914759598377150475482617019668944932025411574208318426971681399173426537733453156063549443770122347259779986920589764534826323722445275845569489699782545066840946397549976363769243189872690758457378465209652967413437187392581332652251588754006474111847490193402818807229857436329047324882749060412430524177035642042655712504968417936950510271006208106087612011509541192985807747289177031460975599360926432049406842133607970975644882285473797443945912591997928172549499685535922447604703628560582365094083812887210769545494868633270896706251593738948798903856390901073685580332388123418561623034691779410290284707740920854162942043360246302320545065259281288298915816453297479596850589381993654614729478953797049842500247561542549595015432814282275282145093411444855294913200048084439023099139108969046267938345923169690119131999720817786252790478084561998385794914495097879164751031455777046594454929956849553664093721692351928986039798370818351663634794876015776718747257925232955759459240238330800697736730161412098256779941216410746236945896723435183279199760642676522928908715851901415424992522675192672357508231832866797323739922220486197270863266593288408336915578301911256612563426682761071930594511686811682427400672361544388790123848345543465641084555055068197475452908399995342510315979355593867642727319811857355762446892123817839169799648532401879936279931788067031416227062963155068816464265683470735054504689546671840962238564018965168215511373857293496998417962825916037705196557596297122531305388661225841061992925280378942988202818436739046346931388525068181052716161316825099986351162061018491066656876065034488700742000233285086041692203096819292444066858067908663187012645284832079759106327622006891160200701178896630044328846958014702370723864163324511503233395079799239327338291673836904686313539413124232065326603322130743299424917775992119849249774720293761115699504628511091295151313131384302001691876385422995270006658185182886638299913926610385931863783121594141602833951878124954874216120347064188067950099456032998387382472981749210518832596282987876507649297800740043198487955311399003363165254774803048931213376507573264176576989824768911007055835793295450531277379436647623991090812910431890696818724382541887061600718993915498979657821627692546006591466327339297869667327187782334142974473802099731553555556837323734667865973687400121723170016836315125558405374473812830771940594018677593022473091132298498822137903943951358234301000539890895273896915717501713530255047038735182621239286098982706746002087392856824251703986751123445964336298994540205836259452189651919085029946918004147719284594791270617371789247937754261556309999848891876246481624433553490633234193962430962871764613609684807860262891598268330823266784986490647032573054814513866636740132045279549489795049066968560464922854208212269791558874470328301263793603394164781627273012585606200001715243482265611491620977778095472294605696585855111753675855796105243066687130521570881181299527020251525651084194404728360207118717270944457255201053549744186045307780896353061542225801406966427894535721322015417292438109488792176141775653187975866183517879462085441776023687742152626073215572448439643241076895600935548576853685105666180360859156878206423290272279387779442473582023747970469638801729157352254542179669546867216169146977158188857940428793202441568179260889787472785597790479942808391181628920563781094545741497025264773026334995237143909981109911092562227638037218757183018351568033517439471154448271228052532467983134268012537176400999368614959053599812522495717308521786165434787733080926573751744111339297143146577296196915634920966600079207808063222165704775800289874422671263083935032424540513632767388025080312478693431936002667689614527389154642228368454168408736724059277924263757846281527821302859187583411280397189647529846338291694586081967576092861947318858452931176095852638512657659759072962181486973344637377616798683321322263691431460421031687380883850065834674625764428632624253417927915684235492403453461785916029989777156107648096956122825234963186108791082018831745728666962506442144368399758214561724963409979304548999380979382270180425630852501999489015575169434759186758030701889418483903776144945078793934185455519976759686876692493952367864473460028066263244944836974114630218205816722668706627053888257558757363681238483732213533552399554676377008348032563625836067218755713314227994736821302668913610393111695914476084270927411821332417770463415177232477837867393004340416166211589408358401440291054988992377444934004850880079076162535630458189291832869352291203263474333291289706979227610111680944044014578163183796042432934461682694831420408297923211309665985447561438987169882530023633259785137086429711300920406268506165141282533122977050369947966979867234332038261112944658880423071851655780137002331530812430898201840703434034139717880544644185281978243451142983311411347960689250656131274878445167734916570821814613741624498929467412169564934541810168591570783586344165227395679856910197604698571528703966880103620179800075659235039926660165339698701809741167920430760148824083660588385087545662889393930122732049773854678802664552870794313059734883167244812074365730151309331221464487303904360957088340338447252748737408789726764262655628859766579992939113586093456495800468235891155332615030689028956095351106593027135026881419461939815379971535641565390612671637622072570077799566666646918499190419035132983613297650263919739998813358184725637184389592040473340297005240136198239309002510861840377181476400309520425702989182444502848437545092428348274289346026618004945973396148955309580573037756226700645962269638336008576467428087556065670797190916237044704304836158372523579908553334029219110126238538490441360729718998177304134211065132949251053081665311808112234614535568721230077548701065268241524430425505269389752588742724149698620740066964694347832472899355771920903724393215688131070292086884159368892526548316269988037215956229548146024109006515178722834823649672814224579653321221114994475179862499640162190493143851980688304785832406208722483754361249013796341139808390226841188881921558546594455327962800784698468002543136164152715740721843770188141101364483235482613092849225862067098442371483815755514902962288222628548424625626352828788927650500948311107332559216960980994936548359787262734342632771881468939073883384989923769248783217486398611064649212051737129016853227216697571716215775108819951030950373859112980401699857967701930925321074317953141293473628370843216891970292358749138024861250762968003059319344446344935852088804154439976832024576640089799055414596898839965461798661804533497885392941519260932195512981498151031857775983718960018137353992798530196989569472579955566210574082672159676288085696005051579723533881825449397117092430812143765684452633803946110335122984187272923017757276458812596360111708216299247398313373161690674699648386765956053885068803287911811304801510110712460846393576605473584138206337453095224677603256004213821772492478247783232707308426001550148615172998764451480847377040208555368275956840205562237143550079089899346196264192649712557898593771987974235506656799211607179741802657334002859248999396034560903869678472544077521796407613011619384649867798592803092106529018778638441167100016070035674966089654083071108469799822704516128192767330336295656625689816450850959036374514606203346862724407228729801428477640429643532800087528967142141790964987292026775869311658689619322829242639688671753659892248599250055790368075428054007486902912811152358308308390952186399989873408970362891841803682029276684934725093476517641605485913719282960083691437743336281801357010434490422182938701666993638373135763124948877780700505141332327214225690852093513696574496124618646297311448890421379982698484442291853868403666753545061133709085152102582358173550747581245540993503538747516432393301203971069004726850925764457222321000644739956149987749939740980077164034285211828312567548058618108765644851747739525320784734385497227210652683097708904515133982463962988097262301240469900612426937164917268000189136103943949704923682512729216683401956906871865353100641963131694729749736167067811798088459613415107909596572676318425548184337931022034119984535385625738025813878721669238987398736631412412241885085642012506913253998202517570516048356225139125212489057359621967497026280530939915925278670129211734818654732361484603216828730998670329256789947319358097966176048222691546313153343014871025597260545098990200027151393727063687167732732338805113900802142330970433434214043837807420885180278607340237181773005652804304382945887662624233553420642969685621350336834699209078288142441997634651427572433890363850254702551464502700441315618912218735075484604868132884304690028830590106683597782997958324598810923710934144460139638629078568525397014664721662586522160805300202939893521828769944203451967300287116010911763917613635807790818202645965468396283261424218221874899067303652891057905258349326878351402823808891253342122613439321407186130118107303797089494195127435244902440159589312250484390495695491527424798977494393339723763248263145714097716236384745017998373267903006292572937465499486716034759120636577810765362949720143532416830897860332190896929373479507676188700237542684070928602583037909962742830353748355103719362068322264327801263541557491879525726613809314567403675258743283382655648660860360494621161528534042253633586286702385275614843249472473125065669123025732067318343947092215525365047594874971881678891952430303339285231058278443623768967139506002326306242744095651140769011749990183329081608309424934038068540658771735174904358053444354526867661647657134211782166449539281677590702333540244424635150887560594343853220058636375864293188687625695021919722082388864274783460094102515148894343633533099627974178781758699298255787548734919488989706517859753168135425523915567870536336284718388781081514710615956100647619029688654367239140106643983120959137208786456520148214155166869411179558380010766529448646605146760132726979952425482419694056461834197249944210211188821223104223019607634933264801672349977658670263407043524305238127816290056209821880597101721934592932036885504239804281102998405177410651058039180742371020974462288476635013919898655621705332840633348211344149218952604583113140168068686742368878319828004533799258553814566005694533834067170152910030009238799001158078979758370215589556046804774429182421722175244054384360840462924608862085637760730565199863162862321641756506869755705246774903475479607151152288681589510763135277108079293024700503349028578350216648463020879296962140962758593694178123282815123822829804622082957218251270199325174736419610023963630236615311657999560582840255040573289925253508280372492144643906505220922760003593048275492092831476104590125705909712287460009669033511249449723930844587431147603733796887796525190007478658637072048753370226652229898103658667138123832868531198197834869955747663694303453745092288553607693407532719453941882438279952227380273036118340781713989649739420476603510874999268405488698683828714757796465802807978594202265176053875358365184861962224442881960240679269548737757171768660094013532335438954795006895121479845405576048924436431313660265486562944415505672338447500635636315055299919967203070768080545077093736377684962467760734287592295238601706277260756744120084944439479362985932507008926638762943604018514863617704875976945710829813624825485322995721956658380884922394484033473011188990139589675480640114743252139567617172967376135519263172302406940224916328639277467140241684665075044242677242248046199855760113506184007382638698280642998232257656516329316157519974669822939182254190093058721540066990997445742572551471196432547092985639173873012715379838361185691229213679960034235536786436636204700268281107678198802512320678723378576376770747120205732244360065458757662667002733985186491345715037433057777599687328949036515766209463075122479856380066239714621971436952003949828760418869922013628076083030205852486177771118210763525745505851677530573761880791560437691772795214482474476391379970063108480059286002861256078999041537444840251130259851734097647212760459463997286726471222768138034654813031396610190820193367116266270160482447355300228714057868311998215516824811935502866123330970780353890191896606806899172820364204201115364150503004710825247214099886033886122337699855994427827317481012765923529099554723591274755805000522854627705130151128304627218968301817420939977543626261489606380633761741347107019041041899158632452924950455049147494524147961295974586617053183132967924587871890990784267331480067436152020178267990308745967221897660514080173385609035007433255336701746390898375563093152565520057145831358137233266970075131760235401179739090471958277683503816385091643271216658010472595359956653142995710215017286801340034134233870542631981917175139470401927729395163860469208649904745301497457046654673413889109787818309909416083884153805396514302559791798360248416086243922667476049095894771480132412995159109642666972772186594720539162970053626749337917894120293268202636214017871016857955150289586631004761416026251817485741813922893546426210768315216915140238149885091262796811724539164969926612482803471388876533743526320001616058914883514631967971007162077641485703101708483602122236929129683953232070726658364603618048832769169521646106484059912184225195020390362970805034868568313964744235726275047868139106115689103983247771392656383949298885688140925811147232390279347729535489994915674727195606178903068969251412923500453322044565947533544927013265532177190630668175580974143404621452477265022773539651538797435807479918384358753103180876845984622046698301202952997356511433221538303471566077265342971957725566377750191682078090725784624088994002166191963321709487451993274575451424607438170927645046859591076752228156272791400000443795014619846694131694196680373818565306032684999784454929615673099363327618963967037566107249113220860164872431210811936215537240021899308285895837569040793801251818455565074940409687329636910931970590511745679881439876499028192821035638727611042623937573541929323190142420836424099607762736940176578999174104068170511496351588639731405680413961389794711219668052463734025341305574282653252830832063656963843285097413424574955901476130899617601827527381252294365330690777730964408818927339668413368212866830828876624593490383093260802911383851016782255115665388748495169101155929104473933006523350232201764466682471961925496261424208548870428247908655999010439383107387580102274398390531656585095591900722006855366882144741307359161701449833943659393318133543542847316205988441580391290926564261076251935827758641822810739597456913318812096416826840838300997849651384585178901474630525008096398776714782411122461442250528983643885111540741591456411288482381051419119370703444001854612470448073633799976188041546912874834697746459859027826694924631673341167614010712319224080736481837651416181438127942347541875447921191168414524036934575328326210746438307368706270219955595101408516354880113546323555144342623921528812102047241577468063563234189226691889215032846713631906647512980154245873420584989225086771818976206361905029615447873895375162997063887296468257883472789629229629231679184735554013686625023858613135074247729619483628496153925757903855878155934467334447468116773119478865408836424486986662305808664281288440788742434333489008305811563572940783963034594478565281585981615793761238521422106208824892081614786544211807901324531524952393361527358140510515947780262126647749616200857539103730244562291212630909130110300999812971515562253699897710085259633009339134961760518473458378234366943687808782789951721249818140031451200043312289937493555547275777489354111625803104810496155923082011919757365500709756224617242789254090925604504459243423924556536871975115739872568179845278669684412524781586047921070977953968536026572212152911145169645626018542097173120206563987532253419435158921050866492433506777655654830344640180337702738130155581219860985843065168113697642497949718153028791367107408227080474688132229123492127851028218667249099637906185146617854070353866265050009087895553656073686257728947421901330928941756696188992310478961183313765595827698694229505747166095942818298947995774379829212075710067304441471920793012534900105463945656028690145659818212312759240110877943891398060995741117520630290220571923885361382180285857230191347828392315982454838865784591121381172204176338380330376442049153392668981020518621051257742797163984694498073172705178232166880945399221687986415114102475426722517163925078228406866896140985845854065473886656879675228586607297228611029755321643849232036165509264611322943635690969455638587166519589956766792182671734770368254239249447903585935522750758194552863272282801842487193606437978703689093401528973407726032745405613952328648505695079095219477230212533658034607521669188090919077016838470439681160166141485876433366955187520206968799386570037782492316456532916470120215800524470041721193014219023013767158306677264395759871736318444006498088337212794772982895933914341384949798958138695097331916838653470132823584399222547961260116414510873302014470066941215948354602272565100672288996944731452590821452548992140523624573018259579176104293002414673486586093748909366181032113047523495747687611697552145612155153159651384533446060168005551032374173039011040833855400128367809742967246419289607155659189171041150927817189250512664953601483376788343002166039547576560623370795993872848933894000190928130046638055568788565515255074323257038733616704255855750033945488586878539452659484318623940386319038870717519090787343713970709139428554757329006841297505231639277330635881333152783313508931196969803777708116231494692891239322883213534325959919384832891323425592250390729578522908096071828058525836503540677489004432030878686584283176426107611569175262257953172153610477559064665019686583065419030427304303851187270213962435091621847432350777812890498729426218983632685705813423443715630695126363782161832938456286600964683556654550983432683165076644540786270763581713575770210559939336557530654080936435999047183739451876154906334559693849107422705889189810269866144596873982509145195892801197869546376008427552364945587835441217975817715669191231312050430170800938973791477813767422138290359069591088438999076415970767258395331566887002664563261986139847452267387262649768633699127557463193727667978556467818513446642922243626162864843214103425978545649936705529612895588061917709620912645971344428634886086054764139509754767750573433512793670036414374092316285338250174955039358642349437926819843547867267407164299123215026253735086242155611655898509531459094698556283493785535734896534686862257530922439636692665415414226581229308222746495575815759051088083150267588029985604991040053341139662968583047084191982319742888063136532010965352999797852591375369090215296256100357087221182628100032967242938691127760882160144782086968955086373670548607419759146739809599220548633048398275100137437512502881291571999657171902529484593135071764032248925108134152461735975436684033576130164370478628207911372426265676452143590494020258603265271907883429599992565971161065839044784396553142173189813565793493621193351491966269347217237020287908828087850035362595939339360814556327438409408450822995388354037704728230724346482698028013118707914360238593624420475635006693222660738409062332591989604305717353120097172211242465567776775706639750234822033686180319179572439098385221753626371539276465022017335492473307927360756838675154167133674763463281842357964095300286258531920342116290989912533496312578040956740963378263061209832373143497203182990821233736127859740790426841803083455926300229072608804044364933549056029306567171196034540179667440956974003158782204775086976674884642509793984395812992034316608593951283451049420778377457168958447899517143397060974454688131104287652049165356820730557855929639163794027141723506309951809113925278627736447376161716074156431520084706732555301319430800941899791010048526309348619070456193891470870467163637335846212323038428727711388383763196458210299265594529541273034604366972782753291370807213385155540641409448407097162736866938265947283635175583066682981045878343646883118345819461404943020010303969224375509691668594212296041667539610277167795648184038059772952064351413013254504629799785506468857902801305403796677095801266734156509803794239065514704706165796278212067497243293696899745680200460857346198831644332037449023589834648778397907398944712156029330298346198477966279113125503744990033845920254300229238708937276756157438274139910406844938417822574705032209869645347473467129709910430662536342202333070903356342338331646632361428210232043035747153567088801805134494687011432547730578541416247477563543206182102112602482004000918696274290217846129902554525901758690148077725510354986568443552917364818253833543275606403646407101133570611151585019975798770920366955586833146664763643031793268828236626449063718546766265315936584154580437097468008823023338493572357157163756171095446570324798230136169959230491756437692457776654863584181159174157926884963190781509521569780639202958470030718691997910194813997926779437973045753364991060358864110410038897764531013306986043462791622798739755680434825037384395696873638616335245155956349270074999839986180906664273269261274842400465516910992722822880839578312773802535541985150738117179501206485109560743504394406395157568198838677274844594816054425145880918236466086196628559159619924700337332921224662364577524598602523303865877428001919925331967819660667439584443003430805731090193927221168804203147478929362491610229790082843366115361135077246926499128275327009072707882606251439928308153189857120376654314943315721887116412132010165850600219703595297028405629030659896307954422279599346967520941132125196552613479120231976381412839142964451426713482218950507029654497466710914149877052914609519840348539978281926164474968589679011477113865362056915137295398567544398542699179339933646060623101472431001478736217742264014676472248780589154420940662872006797102282764781871273952079960860846353834511125893340817365542751429741424173607290217631362160313594913758561601641410693796543335334654207040657745525529508845883674423735645975593603043793437504170878829893280104790772149606448188150168555684848149041143035801872295963183979230300889781705243731676744578608454397661544565365178590797341480434319332110152093035360280380374294848053836564713069360327719594527179757518163701172669861727550201136151989468406497149714371203591849138693649989374748942761396876592023107639674370193288972871812931412275024731724072488873986215387605598125274744462023225235046314924102266412626333987643466711082241152366394259489022880668976000194565355618553740872718471236277923912198075450790830494385254232665920556243403012822043292689801845901226792017392784413797714145474679317932325367334655520708377359140800119252552331860614866445992572599117288447644874347531858546384017362924651227012337168006742144637742685191567892834456743552919926645240350894617025454711307958955237474878001550665709005584964905134521919751876594370549024289829329568818796883872765468414092189189520515266237687987929560126833555571541093381322769899051167099963642593917861077829780144417840668692499750740210417209868667981938584057234271651330855587582159117914631108234491297816534742437997496960688484959081548479557172871210229727420561621169405189557189925307435737228438016182421617069129364051114943156359667630346148137383535667577669423709490248840462392144478584618364425835926839479996160718265908522317558335116932826157537080639632789019271977132550202535896059479510503275919239782265556328243965227696272007562547944759687771731867669011788384278108913813531208717130038333285416634470474302974197292505752712817217150121387700396293602734924539878519449841433556687967963628469514391692685321943442262585611141204858207606504956974337988974057316087351053014083758820036232755062398388035251497479999049635215409360221176733383158643927959784227952100075536917162243670440487562846116686143818105148757399465778126462365150000802065470910010923812607938325596976195615080594587499358273277515816980686217542387148229193967789886224893750168622153762527015041418575601746978360996909582283506253938339364240228800771527380808957949104059564183850646424238680993424922157039320729070091273063235130530880005176528514526185284403791700769914304484091713759188120126870442304606825126115757359381430452067186270243495357275020093851889235677884437407253418111323078232380047427602473328246827756637542020451571078812213089475366226663688791007412683752631562702864012727692346180801961612838164816502529920626373112191198573487467151641535992176649037917414237959878007286633583893553469870666271521097708934794731808906237913221256184567296106949791507475350835732188864872964252172355350546510139303360909141798637491947432357072869965995453778953551094721914270588801762222110781158131207952679721565726107599276442819457268554998419799027448147015929589376282949472125852513731260680784710506886168792509809347269297947649199345362404224503169899995842272577426090103266969300930327293142874993155914824572054559079331329196500159394258281746437720664145379772672090471054951305128237253823653981551780710160632219770074892960234936674237503437572124208720937206114637017409228016714030098205104971854056570986036119206545768831045606527553505935670695617454660207161397919055112653253475962829050550525387633683371309234416421842503117346882615164633526679908343465938426042774648281552811288096384993142001182082404261806920370998172808611241394083748638680127008596935227513806983546260641937623389095616484271128949174481664954522870421718296243129186320107202554430145443389458430844199231784672561327332796829215584124335126033698303831970099263559825236595866538558572243997632285687931614975535955551156505456264686427851722779730422622508392663853704283396417383585186036784156699591437284085084829596519955834804657127052039478693536770589776628960097627670756044069932084448472780508543431756591958581942132672209728572100996531613887117819770815651421289218867101341098656437297081863426567659355869432326087176019670483759269293890504141860452262996449415983476423021153034029390034207616465384714830312068075840806569844566771805422867031309033293102941015671181022967771963610637305078677495999052048660320515527153367386692654975929825427616744241829710682854303197240556788446261701230022814253433806695973854197242983944162693673017786117347005288676319396605882431341282779765469839392639454194111711253691440274565678771542457498773584613548920510628156006701681442503456793432421745386630366876722271962578689823644586295504740119537118358194768924046057757358124568527822715404754722229664957986448500475915883406910463187975671984472189471215243562803531858357305227421952242796045317929143635773160689181431753574010517693021899315158751655928049019315881871379917399573641664915005701447721602388120426587721646075840863974636617922089328024816045104065397605753271169782065917657584047335783925312379336681784850482214410804205086075453675437466517023431961850786281022878826894575142477863258871768910101202103974096288673352284392363075185828698146078347861201556849794689898676052474884743386750555277028151966206725689443004282664556262239141027942428554821576658269385671686560898767308085536408106557011301961237222381070123420590685393410961856513096560950390078269892639549335442847772031364087788115744119975970270410508488643741108418321601494523938488635228578713858784268397505429216599335096525921181607290531915817823036551706291413088454548453454738646107845184818661832513105052402656473472456876167837404714283220699936613085966705942104177986675139097060194763106520862302720383548137299684372445319508135892012699381158261091173185773965785575044195902336728694492555947638018203801969988641418245224720610772839649497205447146019351616500472969340321197333925272800506989134207834004095735247160992437131288845264006379083170390632180572654211698512730370772148741483915277232060312863996575882426152296815053151237114324180530045404615167353803181071031039409305848572581780103423794535536725382335400910988278491569450806930533194939298544200696588328243612682752990075656443035408591683092915190570131916028751292785972314119184492219000508250986133826042128600998729630120503685144629146326652679038550088943597076403715569235345928577400304798568718913837847949912325484377834802965279717605055964562226272388770975258737994536036364565256286589393658094936640996351774024575563168706787659791696986932151701370850245547947509423045230403413224999187304252623058021056558460789477824843476819184733946278135104589044309574591848714212045976886789305065852388173844849380683380956368805806226247514596364199973518343186722937917390191587484905385664247951157392361540677860535805620596525709841456978752134896902516754625468665158516087243565438898676098443426516215923061803696596642682029054310433568917689197352801929278084443808419762934300030832675586536635709554945353715891710717752909163149597824995280767887371464876246400961337873273193167695512574823682105400059650335545316048527150470834595449841263533282360541680946830114344921219647277682009656602779343907828477410273477878818107229716351124798925185223970876938954043130122579561393558713164317812359183253174994684923022745822539220659649104516244405779500147244319687709839002426452462823070187952690421340568308102181556895169359952708949280194166973184523415967298714392701862536198000746282875275105087457805122273667958051103930340668665755913395139052577503369296854534368392575707502082201859506211393505981265761882983452801048090198629543709646740026466273522338039574450425471001276375371871669604654976604446050919377820671281185382351868752252558691537264951949162424301716128213175130740868366052110184338692837912657409341819144416362175689294600599740875807514020950879726210047068295528552196814028478241692514600640514702274577521726573826311373806261725341323808449969773546568016740669378656117094814454337349665500477223346248038683353280708693118778222130845393763682712956407374760375545756896851900070363713257787866384232730689304846121829081005892489934529608150576562526429741675696515893842114751244912076078184547072415672948548398143264122131298526445183373561307770843670668175837745803453676559586076544732835760265560045256996182933652586439215233317428446403559712868605480367504053481242443795143185322978023096997741796685340599348977581350089261412115253687074127761769490357780049747478519265550559400177675569861792959697125078478530540437062867061528017169632400684987881267275644492562282342490854321757738372025299700460782335688427458623929920899750223795706347062501138969064764282591310912576816427501665623186606423839458626438764245116030856755758667524109546161407429351473999349676400164004739964543207338662217425308991526619456490418341857767807863804888422956514813842188208973765725280410327927668983781897567266517265994771522545592401303827569432147368148922681684187541889531690849588024798600941352254953835553698787235899405017869309223961870702355997687491170880312580250513616803720179893213301652079325361969449254987938805298252105788061388827741437824018888394699454712904658932068534239468972331497671062339247375900330465046595712297364990143498994790569003767547437733725850472744211978655383780919285270062930623860928404684340267802152685718468687232784937315580127678730188443201776894010294262685691188036557505728556560807959595239198221566147585422942800402507863568305754361289219898222150418645576705093596976192927807929953403008585190179415847442581423539911678885558311066669665933808640538930137651278490947823979767735590260072867636004754759086246787392314407057164230691835953991012053491475554180368493633939287790568984868404088367713688228786301695238761475211787048230871660192247356531545007258591473219991351375894820226917389482432524637996405971161989596644884485476443045783491329206951259192951220711797714605672248419850692884372871112765709970346866724135857900560329001282949905012067157879691729294545697327702883922809686532591071868920424680263348494033070780325626977627359719791619266167438953021219349985750594618207311704055143840522429488375595663343848174429061566128125213524490723660648399422320884794146275274232871690796277967015698009873044304502467692984472765285142804631499314200388962359602263402628949337425870522322588335128792729305176952545020784417862019458998266221031287854439303241438520505828817013517989712101667586002796725808372148679461102859553782623799206948547428661326639399120651299749485244956730820422171407469415535040400989803478995121953425063591666434207876643868833278610527638773413429591274397201932226858509741027757637219992254243670708360152935981847554497575233760843574446303041592773221093116890263650273501246637498370473905267307571766640556297278296130470753202013302916666800938607220302607684552406816247112153078999968217571872781994130239658669654510173367360159177639784110981743799621138871635567976882713489780721603698137866335845956936263292963203158743768379186635626885241931349122945937821670781360228734371317036181868960887508034130722291361623595380573917542438481170582803975671650466415498662932642110488251504740667128197571095465045512469296782142600418043426376640210729609971340309198013008980182587808903415822444875498352427152614993306830949749765254880717967867848488527968763317796400218569230174019121261308554319267266100277692097399555052895377839213242491995320957634273311781291630386284707599775763096110137000504865857050375136718209484925610162617191561521508468455958771040371264400613731863025552391335974109551707934990944241555153658733420496632488499266366370601518584974304504184897375813819255771745432819277510245572862003095271623126690530638331125797430322450126751622112937865860639888625449190794409426722940204864409413907752265148373141035442655687252913938742062455108220425799999752595140162790905531356223012334212322539478503915054210605435309277635755392324225454310168467582440222695619104438258497546249000521350388229074899481381740934300511532550567503339792410145803173039561244621018650486843010024703465172019497702383756273052261653167945735672229243623586781694932545615396160262052376170207668466709997054135674965772209523779127133766325399565626234041503508991529783145152676788934248667109232429465986936676240115127172262275658691550594675657322710953332437005491863794786179790730621031042925195184071544071170235017681838687420454008036418338150042991292116122594929459644239211552193211997673235322315888298220724129550904021028617908355076177530284406979165972099318468074293581935657412092544619135687600695658687001665955677647190178542216841835184303244586635270944005200534443652467887590350980786695343311565332594641760252986294783119073653229900777643749345679753434690449374046284970944167489369605851195284219811415994452541803634032329679483111602534131799784097506175540226812286754317512978733111724881086671435799240208230765328765538287326864929545424844421287619445918521489316391890758559605313765416791880218354200859778211601834703015467085102018146559443500944541640453200403615431399205235039277537663814278611166840286642819515203491770396539153349887282509399650889592170967931208855253315846358120874811406507921206479005436644384745576680622308981239805652717746557354173434877950282148596811185989076382512445264735483375396947907755812236723020661570810954902414282601056412342046709910474104172227849547938781624101397325930705633183107847876380338332995209548497341853962985148596438313241424068227163158496764818234945853297976258493768582389707304222478791766336307337675492374739139159427234774945616241917609508877019414765446072070055773856641744454526368104422684817881165021585326201887172452333647658536873844714438167219116410836799980430250441089690184760806127945989382066501019902529969215950692205033241916149744942356853291234013655527164382999478680675098683659380095364326680851143531250107638239888687409196711480670723401914297570981461629432195500576624216385173586266768644777332366784453327070893657352221037554038659697315958788300351059260096929749852738618381870022523897389284091382511183852917839943854592944011734572552420940797095542851555917894630463676419154724879931242028780292750198434954046625120002572660964352680405020121688690793739553953180794487249682763065574888400630289036977019156134871297321648491590851630429008063303301432914405534554725190366499785350293578478159919564419633798159239634075259129226423051677194335803368419813226454161959450203385084432388056462703392029805248359738471472886585654254399297323954429401176223565236788589648007004847780296217926127682880846880904824138855641341619152881695162693043006853142126178190790993393143175295947566430786510849424360257295885236208558373373032626901074789063837185689994062717580109414120417670889257631853653163649018984013559701338982400391939832066401784340484042198089453717266541976299421576402516170843403679896738135993190467431100377765689209630300696543614169206358888645977798335980714310309951877029918574371652348927520100260728785770574790450399585942542114490180162965177699749634426025381864278235777819679901844005941297009930439218058164600194851616112050610443238398469700145673958117226245109672558124424539374305545438339702290335227238580065037499466484392653356169753937581082537465410798178132893940871745258537635251743993642682894449264223785387030480865727592655753391513388687897057290198121345417293084923537094199630552820727398499242359635985653824817592856409039453930237875179866151312667523409343414427758213300702754868424777395919661628556082755991746123331623394200830616918732647174805275604843835666234441481574259352303325510553715199470905828818540768940426736576981848616945550698487976126387818966529821365231637476355177005523255156614914195189757214511489542355484569868570700641176275305261817642453115117927946706851856509544641425566813342384582044738366368109992616945116088733772000023873217878856767005235444073882985989257317311579146945098296886676231273491075591920371384940242038007521002399376534299878163716260821439608008864174232876892866247433386115902283848635415010230418369281665529246963437344693058244894654530725355432795588761245891612711810641447911099991537053476643599265785274854648043650196915643782238456807894804607646669731501550663880064398424469071712030548236104163377696528253378215848836283062700680697328886555836188308895388668010604899440081505844498148251521579101505809169806471282795719312800305411480885846014421655463541787395171098561862583310193576795106804558126627161522654382936309367293742397055533876654284631941461343505687631544181691918416351997533323554297803699576810376975866521730770833140226859565236718136368153244860235385835847793036942606485913358339927955485595094609610413960197536517260980422509710004335748526518727235294849679442794070783626033571577864692899440974820860741478308357162102457772162225419696383310644201980434412237908641249380094689092599863111161407861908557840485098503005852604544980754666271188075687607020689822663257914804811577655661128246886821223899925935057614154986152015918156598701208371914832388981361430601201653267679577752560184654917430915127163376617798572616949000015171009560433104659553733673304615136770952585430826961025810926693133898667300638634903024676207309277003467749539247421785150007754048012058918099981364276387480172623946470745429351533692399016557625780908750417363598877297632134737449146339355300007315785709319720019518523804580121547306882385874992661553637624409302375089435680459038500749405350394263890436127060434435073352445337129011166964363038351101805325221929715186552519053247099566869756496630624763360709712616493002572025067932752508459945814585878342744380809255932907440143798733495312022200103138444773595755579934828641665371867499119356031384290413035339748224977782345536111969402723250113246521481691969029810252791192814657386724160415647350236175031497581369189197657715917277627923768052453176870998498398260482494488988897448951265034260548642999486050497575260855661896537087999462012357931796953576492617469149859410741883860691685510803292863334381876613608644919411587159256690831799975438577786052450677066079350462014493342347805814446875922686776649766097884434834498346009518748679121808832247480374632865723536768007407340342216773092160945890461458402352295576666056864596622991187856383932269959721674576268069121282702899762120377901895762418567396419805321496256958308388236166535823054502247189752118103941316498253739099706475417358715735665452724248062349150395962033123105669386512144716479904244525827622301443174955832492288463659106908578268292658185041490717155865982356644753257240088827058063441827474984136621949614989803731368627302519869633474036748724821065071719392283808818015165625539858481954873031281878950553215219206167659291268303544713039683926131207773696831923441829630378433849536728703200776549021763789931627071202677010422425315957621323931412706591862961678008656315312142137177222499450851695068105988572038648472937542282432765806880551195199255894272763492175902319298795394613321289989595878362797560612242601805996750605642249536727001274906566165923978818876172795001548167319987039339709710951772454720254782418868968976815319491162983835664537148444063495718467610730068625300583400003223383215423824341639709115813056115949843118489972970186995342304198305114654063244014110367844677368286895240611625280358996868637897114465524679238773891374802241355173540763330185674653000949590088727677867286469390799453571045647003406017987285988785833352828187757523468353062357219146246927586010227101760959104104310972721425813923208855736447583523180333723527461286810373084966627952166527846746791453927466990940758825326060173880388907257975570853238686871978856510891438535574312106899420186564797546203172258260839462757822038003746632133784305324444923757330461553613312391929928611150396983675768782070871572278678072839430943421466064925640989501276796259406748260848300959670495578919020385313866317344510859699123961495851991067115399241717814286485771124786814709648873933513287164320239741658335480169348029087897863803556204119397504345591764953548980342648027793436350035192877527358524923355566017616874574497670836213021399892656627304440535969513319457683545818733476810603956420139333892675301766610900721705350963613183387337034708528480711367778005610381069665720637081500338753128493344956530929820920125878593723685012241175599609062406041461406771557423799202536601388281204928040947443019395249721594537520835602430063486815129469389194181954015118306014103876607099329940261200860973150590249182503847166765865192739815711634779209622091259316883403073658825117176884918381760137791785029953988978072746837462695624918758995680150685056496001244934650742348750190734925399878246639655694395686887207250905130942722538006866043807379097772309577852704689058538833160437572302006364270097754646501806068491141274371724385544148971180339088506572534161678400508312508704207943233518466557000316641767732808595269613172914164050340621151287144130372056970840652227816647440623350146642678001980525680372806192029591047191579899160443853350053772212195165787885927482136763965187344502431942851561392012927386675306051915300927819483499129990254913112465701123422702703990603949953110865604052844951333165008803204941303532472956451409555528050779697323890652869313461811655732896028889460824759734045923131933823806235458914061512452573596285056944209682891401576098947216304497311544680103211763608957389509780390177492811499424078524105941694871195158901850561733358274399917531329819627887688541253873618392684763446366333948805077978927076881187820974987736176289898887189424610727347234561432989681905193451516944369124576125180291747444711276062863051094511121583127728895125696834552113768874604885824795138067084592568328467463665094493799541921168926117370921473115935202380544628562739005826142251100648917429894236972230466518878704135064931262091331930410424867459641225704225705369609062542834915464943483547654031577955467104623167986967785890170478413401523754824605729052838741526049281168460172509218122024525358055656322216352707275061044078081508330809293761253146140986868993401284788473698314492400324652713508948421218358511843758855286644163892374749903896263953881451998213319230009189592403363151479614054618476329702233207351403370650732969469102679663977714138541741677870546827042828969684500438478831683002314259734502140454024720136395289561756538068838925845985277120529609235825587690821192883428409127377430337306193043564369452517536514068588766851791659699453106356240988782127192915861208957794342636082413138170356265280489847687113283441601529841341503887863856500399691952662088700131447180221235185274902878826410511084630119837487198238362923945268132384292577075393314804065811977288639829795527478270854358711680547554034769892375360400829146101111694494631395585628578293681398682980206281383538895199711930314602331459890583727599492722281222842563542972668115827829702937587339843959030244288140076763915436490656775076897692498295712681759052153336355244135114316775550819466045789682264453060063975921723843634296570440365801625337607018131499359301167139273283438857100271432475683503947866316142828236754426086896768860628396380677067131065292484334019295173642127469985679273734393927356494453681720363129816465568452559590121577662934977754265080226630477591262500092984523501972420859714458590675273966261457995383158600565856697205720841350460560625712549949194823282585291730659618048540603720838461515152115974069212693537848294246701885226692177236919193078848212571021947614625750119419469698723459725326248288838644328753358531455999085782665912268840564096443357484112096273741463368850355791323197857204360555005121138496105020618132867125315762301610280997838789995076487859541505713183085631374230051019019363129723199248030293889660354492676659620690821204118101075987594946950541827211488810607177039946658525506068398929636548220063415972327773013321629974338597851395442870417736932458700961965186125015522405870544492171953542869750153796420681113024717206593741661038586302673812775615075007123812745341709526333792060098289285303672898380526773571214102047144115825742246363288317823269183356899280681146466560030214424925572204920712139069965764634610539568762542393819042349098172091217300357952521453439824108179739031537903400691215814731801934100152407601390390009688409578742409620105045752175592956190894970448103916005943062531249091686696718778358022328569979773870441014586866738591420153960096318400905417170214167088569395601258111355140655411104684127043673896772924729205754638038688022317633990630864944086238923912316633189784212425109135781516438623746703264533496785833097774051396713043986464190173053823540706106869105665547106460138308273076311113226933110183881328987936058008152018727841859429708761781199128177127707789568452587859979564208514704664460988029754152458852768397545887887095641785432026388051626263578358370119495545974278263454421628951080138516995492464420456683492959494815899094994822652085224790101740309092801659892309093472821227852800023808125541348562308666734683766289155905126566079976197870473831461732354947648357019185258603706219410090133291988507198606977892687668200875531677872573888520782315590249957612074361630592729733203208377277019964556768985808436140726866779590370115522419410769749095981932307754026544920025368020586466334897448283259833195010295953533939188673426021399934581548058390427110616633755946715323681683774386585806637914569068288028243664564048412758019848474922564472196270618986851098219597204997592294141171046775640273479691427502691331604965654285502597564582230627864495826899549507870806154506743158991027579401285347633315448705154998615142310157816044074016284907810071350079376561705477528870579782891862107131685654627367801383213632601309415008939981203229780486289051235663686158193028746605384800289315271761522099805061476017811871494748376655526028841476833172239049490866754293315516055630532624071977417611706364043943714688772980883663459062446576711550480922292267359005200963901517327001350821777167025635975178869674409700837447854024835664394731705463888467869284591300753082983262895793515185416881538551937917536064827082152216299572388004511953557161291911605515889888374461635221087414847540897116553224942337592855953878798972521145427771065670480098381387707190736228273963682227925875071893026394874191483840942115240689480350157890607160807797931440302415562310452554623407815400889895164645910622060015894295115026428109500970616708773419514156713056430921775560994256327400312152627398486751225560217585891136709064647777901627445061432640513149786792339343286949884994773352478284652200758045636144897453181492285343266074733475349445380611150075455534114592594653031280752911954934090569891330947815169092689632646003838467294992637986933611139253076055956517439476193354004866203179060091741276933058042817592596638822868478744080774581743784828352271473537324315209583832569129228628651852924023808474203431535520615322393550856815300802047196865105396842754897466997242598102962002650616942059130724517835415164421979354296574311768502573270830740097790871418017477776934721146210977187933611297650918809091784133469780951798070274129533289392198382472050306333752823460176900092399034963853262975297067880538565562502530366460817366523956036951131929171391676617467309600691835481449325540948310635783995458564373348764302575031524062486338835743640602656214790523145386714815229860537452961287875786797264047670551402626145037437346722797581317657281139418080785047626876031879060934731916806186268101576776115817077218852479748307679902902799718229471084501439959245560082371589480150735193211050768123841266845968509282693450758380341192773148150592340381458326374658682230069609836459939941647430628486625178038537480404504452891655815898562092314360767321763958454425686983048138035071162848461254674473948992055598523351716885594713227770091182063651505390381179602528887936119383710380461587576913554776518030320340011835306352876262521165590915707813482154098349623797111404848744956785894444642226705927008447745025280136460121149422201779760122330259627909569137556252907908690574701856998863483290371929787551505596907053421033336429054124738818934754421241830025761023070198046772852750389582592384957154131813193832116881340989304723121404387639104565231766412585465009783574095291979875977088846082856606941979035732097967719409295453685174982180217825504452740877886311105341151314377142380128575289031085632705461492001441103721344664804714932073116105639087381096322945409995475751730061697879263961405447463204258091387161855455039441821585672327606211166709114022673501792222082404511988576936566594290106986319367205147856851323517452421478725395050320679010083445007232208567350942831447112402368114635400207174098253400400028503133908121969699953274091052658208575199133581960224848578264361485493868985833685920751771898722522652871948255946908901304819714869253379061770583093453604429671541780084696522440648738422031769686236032235284547227070787739642286343749617492740246110836203391245018238186832197822110863380005078171566035857963633128582540697108923547985016365426469345998540726531808228117473168823634814778765262540247326125886976974308889974635455930781880026713338506788169933818313661988183987120433413926037347561207153255625779166296377251004636312567163306243562068699522738697030143452728510798043042351754913598168919883408391700632315928464003866035411938324181250326398295387596892829669968389305202976380741569508942046996833284380134182424354395014970550275203809818030668518732223436017603719785803610786412809535946380027496252198513713078160767842300781726958240710953842041700455999703831227374977223515367864362798539881258840682784389460595475555664689292266740127818310684335356637576276192865717301623971335318478301578105384689847115988864348397978567515574937523353659107699591745364082405232616565845050016797873653335163477141641129795473239570280045536358551848834516921288618045597157813126668597592237324547280579253762335114797620730656401688322834442283488140859945747032730652190421588802640330582905681903293979707999082702662152623866323881483788894509655081089511136106351261821781503355299987774739499546164030137734116861644571416245233862096434601708339325136372348348159403409345288127228114817862134394171261573903076601196281681910851577444962765293743911988850856780048335947766725803923557119916737165677024154353332324806535431027946655148857300895589153382116488549811503778471684398333485928929415809006072310057130587158083777581953897493317341060426713187563084751760201504995176428252798603409053572087740515386592655320216603723651460457845443115667117933728523009318847117993267092259258154825461608592558701994820845222667790944336308541218262554384643569137620698250739348294436357593726374767299669514443681548938534747086218832018660699999645573462929647473684742864612392890290319611702460786425944260486986769925900523031254287226411609941953740638120060907800234540223963450013716357416050358215575290935634487599456875914543408046858987604353733663599359698807132248088403059229670609850871012105734129943746238525829837149075862976469651306976448102787794831161243603433043087539249265702431791853875732273532141145345729804178128801392522948353327146728897660258955938840830289140078093943984659677860421382571482238604378112941585672306127964786426650008473881232110741539870140620240548939832425964994652370779933549672861483573221468432745702710700980964761688801440692191473392149100025044219280936519589322178356789901785280367063435902029810762960308176419589331880327586311600667380344259102821043294792036573060136808601768548312700036393669383394828828016981862331734430909439211946834448986195728277712225666405991479493409249674996774257921311303180348672530884087325181025154781352103857406266086699465756571458924641341156638153258134580022908105389241195144983242310079645815147455775832167145029034144202167386591849211394170002633850399881197868500196289369717243618270839263432273335006526109423391546671560269131907827229387578658108681901784093882378041867292035927106522424237377423635853857373856689118230923292338513218467472858813792300770011322563229449074566618912979369144564668393758683125136247419451561241778743320152183773016195971167117381716376349082146512574834271517476211471711065787463297087148440271882886816071690811432657604868315193769322441975290706255180631258391987731564428937812674335242837655807637462425243287380861168015195709787884718205742482801415544759287451584056961798023129974112398237320971385922426918738952120666623263402372762541926620706016461864915519869084131504387110105396455026023841312641483188565971272926871339869097606137216235181472051496113502254368483202193781371259987993705502767466948345612669540565391681502929238840095923731807582290483332565865717914713764001112073047681124076657580970455012283659089327629135198844510752918979744477094047891713408101612202687825381717427570848145977372753661392159183934501483656402642597987546579821793728754936543245159347239843238091521992200028590435289623356408404172424725029183918799578606207839930372521588033576045223062194618562903612917868544571927081492341670243144992690831207800150883170028356615147378230184877113924667287802598008188616193071427568154744393366006281854341451376592960898261123681652196798265724685886447031844561436438786097367139006202572449564976024174376368718431492836779921520463583731302723022574756621161538922544491535370817156356709892201478580288550382182270942512594219660870381342187224287388285723032688262437140850765119540605277495953588577602113025806268834461450943587475024676240036433316744201875952809926309251232383559117180693546816527240358083999557299530744320715693968242844833360099245695786259810593589461226201639671964292006144969915009071539739285026994058195927589180268988901579071795898774414598856884757535406501074088023657917502237418637001103675266233345510418626585604286957399319995993103092383033992645336276800458773638837820165101721791598654368677510547016870713849971976938017639639877469645455776450844695456935026824947818424981182046790047566767985870689341739987058288484345742541405199209347361601824023089806703805380281714376954347981565703599722736845230478193947409815932299343010035310879557502478568641253164026730024017780483736828049269944230602110812966558284725649041849896546371504315863852428290569991718764476822415374274599132733785637904301659869909385324559282772665053204235086268351506444761622914464364969321227518570219698137074735383933561347232224993883614994347172230111969406267057426500049285083969809992164497605374566528811793675631046685905561967264462157955861933996865355145866068306603700858989418496040269519048473883442410414985655918830503945999697585422754696317620585802523079099687424041276557344478180805858278245111047887129704296286611278114352383609198557089795664556477544493096251309731027102813836454678299892775453393619076184817438783694818534245547310597854710101721769297519518750557640519973891090714155852666954683448999194902355564132935573919584841222299220711889997773996546167792432508088522837593579852340757744816282565939199566020105078728605957436068339793801697937816043099696519764855868151559349060110281144311361754540453663661294761140208116515258079223529257412289518703307745980408535394067602741741001676696758596120694167560746151124022782666929856745559503124242538316959154791584401787749179410130237549364897183978652785922181001068417722024313731730110814923536342888194145401452862029992569100075395919125651620175501920610130888104744081961578100029021400324418514464645624911818683786700011246236423003679549660840662220601973264869174828305794359025419848677665169946003978592871633814274951987195837009061918881276939873457400438951559735363478378080944804361531155827119616229535547171226660485203174634214640434838276247155805900084697265245212439297992052804798724149233713139526845946900572734292101527521916621123763492104511180132246155523093775448804130381678650198079945113846166320684988089227029269728040889797329674934709449592428954576236767210348699084716702784395718295951131063267365474828059475537473470238055799244850319027761527837276060400414137562275771940931188096036314651507394522316968141756264115458648998233360644373756131949002587344575545380382338939924407172688693223013749212616680696035154433444437216114463488055090520023657889044616618890981905303674622902806724634279992240637373985047582025571001525017430987715221082196483716174500392739123533971944778917619027338381842363709409051407732843513454684022386136427061194970191812517405404683033354461017018788955467954267996775991353185698283906084121146154677163985634800073091227922256548668607506883826906499927559543065086307719228433908310392152364899869722442072736401745213427710897756713840510758052802346933801049105650861828536185257247727746865359237984069728984452325445939819177754654852647904023444472591276170823514990316635458682403876188332910691232189879260696149205764762697999213442732609805452245253265330935334027153873054451804457136960832924378617050131740616648468438061452115008305544035968863505888757506967262386524525831056772018996478525134161337249440986734351023403467575674427245698596483448082615511640588226686382719153533994066567199138875726304720445092150789324136209396911759670415723408526615695127309712815639234546623437318974284589503504416174959536958697691570525110740996984499567873409448902647705459705441950531704343550123080772537429190870610643265962089244294344727993270471317900753808726341701574301335003784579212290138701265573515081601175292934649313347156952245369509296019602799589611959656129561319306642261497309327755373067007364901777601165113984160829111893348749373814757365699986255977383559616805204414810911604606947115157834267349909435504997545000467554796937498292070332006912246861845495580551796884145888576547362007622066850801745626656972745739344093602930615805301240190853167815659534263225060339953732688614804968169909429115878941493259865126208142621723694839128221882115256683143559010451380199065053222876778827831290132338377710172120096297142017464138507686311642138178561630669448378012573670902350819053209611494384504606545271558660163033031010248119229008934172726172481709400718805023704594671012508155153833752103175805926940246560404123860613172851636502135791372418468862186339240353810436141367009400027673411763331868402293792619039783296125645960656562979675884527042958475278895523717164549982316173232802097991694178041947306307582827434556774259373820765138422035704031195996664088907475568289453582607685570244647471854588759223462170799335299837674330622880119427933759502380978656488006472564244912031312404869207967199853669529592487621742629404254463996173376367033567116307437644478564784153371464789579302234838614142445215888704915986827633890684134388370188668107794643698638590142263348361104067799645139123094001876713638448928684069500936685445399061697809301487019096303134243433733161855806277102765029209514997879945761507179862639059564390064514529675517069407271631180429515807505189824752193126027443486688017478704644782522391621660916811472627269475820872537458099088617352135017624250757146871756471360912868701012967252351584842715113489133743160870580189181118584909222192940536631758431618661987638911315473835791399652164774670267429146586942478226654400642226868345204867655978077452084202386699478939033642539852774567088393832511702808725548574595368529470023494839990186880967417209770484778125766798376312905613275091070403227818017368495380934041378641839462970379883825077652530391551947629435503303446576891996846902226356014185633605894284656742311611668396178575342597074705593888754809539979471507654288183392085145364708503816326240545884013945848678553697102777218971253256994398175679595654851469206864835293000264173920527142483090240531061391650626300670875494469406816633787060797438662705878721656694084047797090807324431763690654257098939953758022211953177373275419444395259097197688599547084587373300007873262464541286479700806447209531468111779776285680899975581581935073802871060988169386224248712743379026411637458029417213518258272897919214344269041326920416244295546752442746375948250204629194195158963829060352640199565238154921724097746414641424335394801596071887474969603395171503222310576856855838672823424079762840823883856035413927910556827814681000862944081562062067513342524022043152755012750217174903308226912033846014768596330751234089998554575958595633218568040696175641275424181654473506191507991467254638644362840185794427975232434812963277484607865971757005685496582654555733509200825562807279741009923826050089662519198947947872858058952586607459137252043977564062778174145862918959271701665768428346155078152229344498414980942103600446993587384510275434060771726493151568426256144890461582940580725155123249266922387432720080087699746760998073220885389482094893892301245634385528431480986359930090021500440053127495229838065072366098038582555912756036253658437661417940291244625928467593984962567017731994092602575167208088506992746884563508678666633141377892101714762055639285208277651514977536502516142988141054877709424278750575296643441015292770654826312151952511127154173359163122460114077836533862477067502972240428545594955693587569658601397394761975264492232447159338064680190581142747137748903997928815411619237742743462714499057044799028425968547273191071118900365161143983451972429130521961373945585660564982500871043509173536084422778761988937955066233750250069432193595665794739567961560397325471142051247560335844139482603585982644397514042104691198796241509866345543825688442007023222651826516856426118224032347913262573148857920740996534563875425778466597309966358886959281832056843935362309159598348312740978647138524953514894167258579268342712452178778573801303756912978203080465074763137930909058095027365328484897709326166880600282081803270755132157573351209055227269011157046559015206162883141833115484263330467757241067377036726997016107259227943973225585973128909802472632392379942790874365103747756976630267217798312799111200008890108459625311886324818349734678936443776641815602796630358993431851486916920381244097046602182643548250740461025360012475975733377769819301187835601113225067262648783329732670280669517823206388892232988448753348879964604524041747113560577633067390482956314894329174052125872272336473000623229877421328387444904816909713961086967411208861268439082150376153365511486013619028563033646482240724863769556311922700760245995152109972330773875159171157856044427481386629296077296657568414190764596811290697161331715486271951018149034214663006655886912705577742627206543142623502999376358278668861726606701532555522558999891491272609167599103618881263128912723012302942297163020708921318789464149081783009251467929928526500973701969743981730878934864314187086209218301359099587501644906869419215993095516934726636768960259657095246035756302535535880272499858043391703096283231901240598910766348302899256748399408124173969539066423849805356569761663771439745221471172122271678949828464933262148719389234727562568674821739136755609203516737735861180469555609101700129847501116285165434657171164365140104714809773102797909038462825828718001425274392754828267895431597718957272205705645623271225371381432574563029723309991358467701313136190824528731513431608332962641645307036776597398669019036454820831312469414513651512554930443908839048633533341730574593804980965362634082642628168914665679574331645261609592948323412973558865810557834103669587938094025305415223301449771630816162799567072490593860008527318495470333577141135510972124390997755485221986549364394035263125163944832061027215861321063796924928708414733848446502478536324227296694535539646162289646960442685789144501026444125866376468487534840760190614511624616806931054244377443399566707572338589337280274443622087122351927479128060868435342791650081615520950523550255043259861584669050809179877852155852964706969141018181361598876536604732873770130206349628831946032785166227538398271596658882999822077306755400130593380825038790617004876455355693517227092721621265433429963251899811384522638284127790810731539454488030236168975715365348584613643687675602709499798438357040922357255744013740485696393113296432401974273000580407411098985572568640574047703844349866727819416377235004553259526224183271600610925211817320908582976018350854890230887298440735179004581058475481215407410086827309694176660216627661128110817394120225541437792691078918394157248683380602530946562891445213796669887066373468181446224786297334321249308088857466552554882644146146270031876351983038302412364959338653156289114870892312954094129470933543764886085235313119965743453986621773124056834685674859468626875886473021449683235582786836925134257960876942481880177375308020032962164301765475452681259176487878786453373349221580615410848635517185324417564217096717375552764970867783284825354801619548486896512252600081255371624371256420146746689665878871331045995561475796997513118521561259708743705379056446681705944340862933230313418962764651238698261962960520245182591265635589625863511405458309578045632314567702414829952226126030327571987590274119451681100429017169566358851691628815272882565680393061389325480503718387679805872150355934939469161697193554729710852068393580164808857956802510067937436572261131795354736903913988482386116862273442249300953858425421773453027349921258537226600793356730223635268296541562076903005310717124837240164197525233397675835903631574884643268343274618277110977582377042013685794772756244708834078460495587764363221752710004706644655514454979914143956621633466878193913492314756755744760627521632952651710731777449599534499351131771841357020534063389725777576776918654800993181234128432396705143989064665333834417925469664442010794783753968393986717470089065497910279593758928462029793551876269030929162389693376818637390329264344483017770403017409483053774383823201065273643467741406472852876035885783977606464174949446203765976215697652378057214420379417635534938738623284022366615459601928004392074218463966295376614904087407801979821495882294356986945215768315100239200240131777447435138048693045309807356910419554363055408974573011844386445727643858440170276174092017084763182278098697787767711386857033056622566550607723385700099828934721419113173621114697097574815482187364729230689218805143324538864353531867927005054271295762213326276888496942688749180752748063392676676429320962634936334491815760467843204226313853602442009740991803784677770535881872153647224756210106343359251770425851330413804690438394437566228062051354492125212275114073330489913061085630571231617664756324273359632480988231729425097879138805468812030251178811581645544498398511074372239073128317597440777781968646298503367663241812891322624644140505240934863876886200508005171915359819332111384987653670862928371087887296043113595670745216651531385576529640814721452726080993275000494437843464371982975961728136441315618445731671359092539685309433419958092552786939111728875386084547721907680152620595352171179652386041285425125581403168258967576240537731472381105792741362946816468906503284387373139350784735528910873933844750742849025528543733862430642580820547444496507188081368065083924681834242502046881966932087057156551321858134381541385787558244499110646489177425019516889639237638185446273007349057894566252584440364817712904525691760749456025416806624323375857865498401373495534973748842036456398413258917975531018160923009170001321022346622419730388402656958461130929761428458604220970638982579141302819967023959465646829712076209247733223416995001755432285077235567879828609629983809592138650253274471484838714606946551124251342226943178123641934227916320456354241879837583244562280549405860561141128473495243019886893053235168008106983124056891597607782481726096408843384465623547625113385577381675286255726222130203142475700368480054581676740041486158462714838051424435205921919156422530061491896200811146593239239734477295488640621786893801637646754201536934122499959028633618087374986251095290168063248449589475948010155986456792857427199768395606717739408018817042656064377142598134649041814306808457389700762832133188032407243464710935208891861654645239469402023476765099197434757987874252889506994252260124904176210128455310617584499329094458481554943967571877068831857584963612013025319098420194843667685723664884912001837904649993232853774081555103448284437342878338500271563710088214074926424012497784785948717619750066682258512706091968916015251727544431893752955460231550261585898110829341188706722571571661636938031054755456978175104565434157288758889241534488998217690815261642387968909464049448937861423491780418346220431602965688756714055886468668707278047464575599426723102903406762697580191399287886186073960636579992660069647943723979350982371906567079891090137524724655109720829924945789878873458537535303300150452578692535471493943070617834969506601672256289432252600866525145676932257695927469415665294393360928851804739692478880004279601868770410387825312837541894326226655596420425631505939673012178620305372904344340876548106589848527846418857012928935431946342499008749056920864102850878173150202554697384362951790423945412018648470839274340067917809284810260678851385608108005378737755067966972249201912828053500761417307059693710329392758880868763393142104671627084601391678735026257736556944397852835504844001887617966360737387036435298426690585898310715052910815150183583909087981978040384051502573055094313730516278344257806207928295825242672653335710863638138584671068261386784163114984162885085881987380172905160190989148749459028676370120665671015418439112282506821918774471646063257792920121085197230843670799724691037356842358643575945374820590782365880173061159735265407866918995508991065144915975566481661645198457437981406611676340365796531884466778158516655937113121986357513280927763620485036934973604443896471428251841314674226604109283725237533591412822999949804867875129258065317810964506128265262715729401998852857280545208660677923817284254798781219592016331636629174611949985528846594263247940264720832199623942298232357769448032373746506969516462068126490358241482715974728028777620894295604402959204566044696170305626639183784494113989582292995905993438483158503028052669212939263058777177852080562393019822750178670339237442542783614847560937652873792775579153513192166123991287608324866616595907934870701881685477818660894092419531301890058411713855633135025336413836353495819174733555738014637640995872303150226917464053550959619850763233109176500351725077983639060758325973991194584974315422267026261293106384154540654439986404353306977381983980374133435140231974482161072974062171083652119722923138341126669231063790924149858016375918070450822732952239239260171766323969213554399690396787480769256666155244817841902373468758279568731548731153194341565936799869626303896399783942156525632654195323139660684198681938976900365717409939125525911107003843833432711926902388462759224800688353722003069573990994785085863170560375882421840276580534181525981185040704508780179036854499638435962279958266709005497876005916623421600159406034490696663095512358228544007815951964666256505889480042331756401845127629545690979300513289351615189194864446477528749000849073209191781126344503622993561020275519204064893948128180846661213396142928652016123007140118313234210867650493888433374408165241545263032007763316207036258123878795706737622330001777079395869567548238251654772058826027988274274124927603241092061731314920273236601838059185801858976701266553591336037728933426423222855035411433564829406038394006733119862598400878638757484516040246024155770206067087558447588062994576957196139950305796613863790919595129498930439662730598304121875885971079303418936276888558384320368934101690374599296976931859033992094184123156222134605896285457980538765533582404195366912044825535634668622940005809574900483433403090629171035858180643577771713932044943792744969557825222470807146023492331529654481457756099669256047991143335198682952705855577387902704288433677218350777908682817146795666531220568401946337844918247542863250115616863753118236068734163729824780542545868923846880696186452515516870150599491795176533166640881975081309140692294412884763110641583026425227646062806615568943883459726677088110563663913546481308622626490056896605390047265182277859492495479952656370637969928207442362789344125287316318184995064932483164177263896820330559490478745732817286204889896712807010114357627234731027046166436596055997484873524857224599370682604406637270080732909431080413798047429887239357528486900548714728039322608022197516859215794956143290258211900982313264012841347996032998242520336649777917926717032390076574014039805213374460773281860060294768287800158352509730523881096854675032960140536041374562829200616550962725831897083470821936314748316311679863003565052899867285151857004456141850423399227084245098141378737770250997666518506592648264846349509288572186544834146419646945933964652971070560850042878962934084493191895889969013378236940278795211902409298749403606112973439131710247592013630674303493592651574250291509706090655798880541194520022474857958045650646947279527053543711231869267089324883792444498553487507180767356519343744239617336538316573406272746081268961901243097416007129493363011245917000692659395477827710364966726958286487933511646890893694303703723814052014286289393137225497627105953010205496848838550332197060811972551554504844200179170655854435021950532995692759694507907728974609057303698081964199211047363498411985446906425645196238626227671388029840752934770332520723043978563579555228197629925859525001987635084231212273983683971142703899949248304707397312891734462753219660837838778533801684959367191780370252785982534701547809561431275530748545743558876957636587472781480323218779653178748009441660304964214570052203979531925017697616532068789370649836756996340929502951820587527340450447548354171002616622813120522255954820105032928551486689981320996780701133340613149053358007857362726483066741546946324244535537463957885381613327780360310555843680732099679932460083819264686955525720081495016177342222976413150514068121412598940993388711943658870226570974533122755748919371042876814861262333582085542839961348486956716199142553842023329549647169264966509962476743341387295907776322037883740460946911622372959468222500403648571154613339574405806021820904235801791568491566035215475368895191003209130166841718645815620200139043616279502531859215585894998513047409078532690195468725157622354692904736268632972781416850756884003200984124857357694643235944614680328365446011708797689115951994831634162007814052835314586847925562610920615532687961270851758476410933369229408179125457600350609918474472148155723697930928875773194368665668863058740899010887774548568080614920183462133283950802793432543112446121424913197936813734388884343198252511642978765532113122677777828526316036609929484123144662504324674219293427209199063315673894554620704129832991698370403194405212053264597254074972483424567475331342707284025579928345773505838663284196677235593970212024629379844631017600431008255002686955216141147254162748323090870481988801156972765822426307488058084274465512042417286337728411684834352889898709988930927787336950735392882047194934118739207024968102049889327689755789888672050681614984328120309405281316854865031696623105625233750809415863834323000465284516980592306013790563938797811551755444210590259445024021830573152393277815685748325299694982955372250824357191060639084342603696680941196945903954182436269062537896915206682127343435015283119351259418071255539882031205679942593778482718194821832508637050909726513880985067912188169171260515668598913823345045055730812038829683791945506994370025133577843469077826537362265190710222483575969864626798434265458976672181564063789114835192552712066128358347315900950136110620743937863334593460389590271198247270631742444396101216305001272276524395264130725670189276968993514523840935670192471235065782168033886526858554082938388546698811067862661788649738433622416062913395083901179087658841634415683606652956277146476056390981783974627121177684186476540486135612593915095426394790383061423224139731345451342192849004165136434319174133702047979605053733554066789963264796768536760845270710324564323020393245676819414797670926813646159561413843077410454173379850511644491550766886028735847006254026829634780238682396506203847883682480877681880786653670186833053573954405383669439768700377629254480939693758342790119588002306900808537147930530538303599843424357274857046138173989332710946462794449958661436188150301742200814243773578332436606924536131105869460528145692702907620348911107313640363514086999000648690904009968952952586658384788333001910489041292468996223737908678434400596054904243399157000935192044407418483798911076279801733268160146735006570042443705627752309670566159156875391963422437341761076926965013772037226183938411695664309134555792283897873335908760647781798157022478568850731706507494161128539733950495544444244085393997261709926115791872870106501908364273838712030532670405646705478865583731433592314267587688122335328026320293839452156957384585543474343618935104663613504890836906733915104680895620840865828852584057242807751922090017131968286586051680303932657979295180404615326332710484650067624985163078193276010256777942904402643693204021600579166154042736769752365009219801502961371170619462972225848141991233670382833704691497013500510089199790933348936877983128716006467722537602078708970334517794948580322786275228660106043036459424385226960853381084693541891414354737622028108482861054844586038368283948560725493225299760288753366086953814497157057811572566018592353231278617700258997254669697905180050516668387082790047745426605835629196719132859573176149879165006499650645814635928827850354106187535573388737888966417153789672470885397064246719276610912196755367068414236254402241172049907159354552933868403108950605493878070647529311047298341596774848042106710406753974101880280083267999099429935177100087107009843241364120552000157075608651566737804574780627124072024084087735934090730739772090045765330668763501179976388455426890689869124743718724317490280475711151925697385028024001868797278766478324085497822950594102917890528516474741047098131158740191582823030679287455257101789101331885828157356990615885868590983549790933816313453450997882850596360415341921787407871812975993039787707433720020714887496010246751849279620339400598146817558221707902881000425811618450138195098349393078636365997454803378397337855153677925837151039523720236465552340094783924967656963338027184660934631236463490635863235836453499672346305854151271004221223598444492217425739410607098320592243592545991547849761281315217601354910848415550035272167200898861836362538645233985578255203675431053855846685221073235826611311571764027127638144710212040362242473268051963583096948513270159525150507970105868564136092821715523362426622062505539397025063386575789528834896539124150766104226330563422745230958397248102265007529926205630461137838171045203271602390847021095785636783545903240746151715451863555701969681666642649334810928318242617842187322026322469054370505027594384369615715617578703320167023392675460189771864947693569604452060890881351583746261531009938831188112917300342294278560079094392747312530038403118234503302667666284515478852279934412700843898904912562114093155532186650463765774716012388689901149908637684288543034774114083524104377078084783670723235551558891481516212295579119339201737900636840593612595701826820315947727875867456591519581471278559619450070896958223086326879877329702432133081937321802642449646670471427596585940306970943126800396260648630613903901709032067519426496550730795875782993957859364908744611501974446967938949164966317280738724749942341344596736770901588637777642112305048655381134182958449222402638637138952531708789549424201314218062472600699750226553231562961821370332150931453917608744008670798013835197138498620785786057133524342532484375809623351095027155639327402727185460901448471149539677314943356017480182140301029442196098630334703321781181254868360791776214905187012831987409476814520404542540306042574504696073253209743135080729921956973227124299542375579794326467104849812883240837467659192481536077336891171447514939935396335805800661667747392816343268521660756211574132238420706223180848400197388635662208201174600225713495556488276214441479071151530235513929036129996977907815713796411381453187738167988470250577213619945494006571281109563955855260543318530846371281878835491289288324601325969101769985408597761868841602686283797695186796112728474894566332840281159076632958820777776251377084441899125652333075429013873918183790490732230856489542343231152207076970939542678780914008295783616685246816137817010917836622336122921623737368213989505108969790846730949194335575234331878825512926324087974903902823370608925779025842881529484698931203798198992383254028351171540102391881800216401433402346032893005745527682077822126181438604377067873486959913212273489790833170806050626006038754064359266896788611065756375544079004557556349578477837881576060338412806420451671974191457547366677340384846939001869222041563390571218209903940113999155999941476868399888674968523712185522642857202617331976234596395935778716866126965632440910378357806583885962853679427972941531494287565475137603929465079306085311643391546927969892997487235749378487099232216457962009299566669402654698078450886764633263777693212140271424762688798458973784870870258825783666367077778570071858409942306925824681449225460297848868826338796914121155412056037829101515636040547780274777154416216353176474435016826828485454708665992399136964940558423494968320047979038913466717423755279194322918011282890296843177717339204099537673589997511995679627803833353953680891062449146568327195921927628062132969523284789096555810679518462360292752980879514615936031245745283548206327242000889561547297046199922153148513911996832813083157366666518604051575814215722150060500947186618528711826268905831998612631535376173499437966745643579410386513865131705940099786858407942904111259967864611494006298736693724686300472923188095896144462773335245241297290481952021906710041222314727946350615307717262094604642653040312778679514910480243856790738720768282633563453077747496678169960761522108748737152760535935528774170056151951899262353603098206819344106294155348908715287788572454332843201451507768318378302621503353863483649464977157016277633076496936194872768474581917179048456333742329802616747557152679752939907491642198862935917452677438522670986884977486375456631003218528750785218857308404195106511901210967389956324991373738028074043296877164248111863296952917853965401745430536277819157832831004129931239086339508731339296607405148640666780162811844556544583390158193676544391241185419204975055500526377862483234055405980543790995134191672214845068208166311935730447502560856457434949858014117602333604691620841957469098592321253839645417492864140963860284751777583465713850102833602787888795692538238117666529315674460588010930518426747869794580307662097974894019180425557070834814031765031706936213832493291873369861081072759517693499859730360818316995851626725963132144977874574325203136864852414204277089553031190341663945947357498496595736119482966182124066033699470999483899485582139559819713534875793953423049183466259234489324109259211527170314226857115322834995568601978855889150542945047703761003057940586787476795053904563776857977766054615784776382730942322938062434845798355829521337939921639747176758963576729868726079939488390361703467541607647899730539849717975894606804120993580122666396599670917139738885749398065497207256376042169585268795682348476174514443517356380823683263562022301951703329895515097956986975855615415464008495135864639807140614806075174448700484140431331024355516173487236135868198661527013967351171116494795187109499037469622379276699226711365981190392188626307691591503949654489685749911127163993193176328336720531039284262235716567808830194644340999375963673643271262709616935740076417381948566481960760477542257784162020960025869140480648030710885254714670658062457106957242965796760095331999996497844754091513660996887695427805187109635139154188142505548281764433284868575758701860328235825660424030850542390633009680232850698150772006283208619389199232778500353552351731617533021833806355985631009200304270379182598398036472327193207230312819241079398610044954791677334540809306991536908226316138724615792876577529131767519353739515464374650337270447128948908936650044617696235968440994141338688576615357499504255756521136997172876383808225647568612110130666815231199611640151326016417071832174428704313415426801490318025165170340290035708109552599459363294641571107094978035350022357160079327638015642025709762501171977468022498019062704544706899656784390505910217319340506495883873965729112870083477083096616830665642813586453425714234096750713010113493136272610653392589443344020939301608099702075281361744070020789278745452138009824864983792551383735076700530295683356575905877750694435805344833263827804617968349082874046661667257449108729254081397546373687479058678014525258005951459464493071993636949886065417640590815952600497255537001950146825765287826228709424413528618696012372698491716032039556709610496745906510651351296833085140922168898437931373782802811458326916565136175648092137368254456482449129992287985672842320170826630618320053297409289908081332752469174427692467272278223818724445671715704659880694644605894903314569258080995330893857510320979778431661527974560855653485557444333123057468073496455752400986441381697421457109921079081607176611394905231478130612242886726727810205550475603331581424903489737883880958072016566630829692108646223320542321606519565241146072269331382052320800001503839309139992019869103304001004546540279070595408558411960737523374930653854523356176037782865895223391628787662464506353037845205758979838609536968217956431735434544140258460313699235761255275811589820209611711304288248549362432907764300005659578822824494279090784276793493999251568065440038379579289528847047828037131224976015923114522153401222309575670233698051653755394786910497342812337004718559870068536253483165037760760668830707507691482456730173404397307187282813860024276285771540636389891738054920878822854418687226833000325782581781617788789591177255790863221264777075422905196923690184080618157459143544062393454150967472115430300094129618694819655929147455267796157639246402286702258201324085211768779700346476092865171416683664089053195740673389150304858712382860782958111257032986731974927291343628587356090147161333057114964073062399575313133759704367881388559414192860624953335318995978346663772108763070326690739351692229077933428733339642328532997271418330372995321466375058079265395776582199288852681218980362047807615779998041297042239463068220209731838891590869912677145211454825507287015323968477279655449854310783612554178961618920918857332078909487783274093278521103300169766161085892155593722535317021361398679455138615684541648433712496850988655325256213295810087804964641587559693465806927565210579081794938475691800922801426638675501143922968006474213651761728116702214614212962687689775492924074512325862551328527511787376601071761679285740373991220944363865820365794509364317478316736150149631857085612174301426708705914173171281490843651621576976624964326053881331306816685833031918556161901883296158706508431141904793561774670130050624374082571478403775373245132104856636530617224127942464487530485181375069632877449577898098753397122318794841545634078413009953387229309793962040960766632362565950114424285309929243444334223838523026092255477435150134783745048638613141833347500734182891288901068295990788562503952075109860173858721961912042810102155372141178602586165803256658634718368696306317415369515354435404795821417195725937942150861102179605528178755663356662864286905579818110620064499546762181979558837321640844397963230926738044964991315853364187954129092341413778870583553399678068691733658209324783336648972742762322464566309469213214662415861720031673418160800023773952205308974188629175714770237085902545815978682257318134989867496163698264534481859967408311491005692859343661527445968551351211500358666450716687941025342536861967003566937691581836795823764379788663759257750016089193607963889193555422510852652942157093028731352952123562658510992442248108711811164377374313577793958127633736612696187656856142884527845046645401198578058615157340332382424412562258767035805938010733787772232542917696508109261330824101256542749928031218771411372730397709944547317313429287889661888414628374899240385604013748655250794280931446335509701636875173521677793555859318654843463756678252511275471798535004918922084368426074216903538553265873997309866251205633268917991831160704009501297950789238727227092213774682016511169072045765089764148709665457767581489175496840042530095556727533460291545711286570909408240483824683301125356357182874335589772333384847149626136923704512362082759751765953994881196355342009272720227966003800943720750189349223477383314719095169979471569750274330703446745297251364876166923238393677396653517548557971355933888349804440597272156230218750922798582017507558686210051923821444323455314748345691244322707437166757386983665480744361834559449781721445123801432221068994994276958389159406873796325635961177446734742050078858021158628325139361966499574552513841814879352161288249684008471935431825609172814626897348901096493466657135524090488987841173975551519993764549178189944957809884569732240888787780687227234214419429120207634415769722547029082635978642093082463600586600513586152454564976983415154433325218501059374971623528790012435061170301268426737246056963980546052963275862800508070108163105202569133503223260853186499927865061684458042432971526168207176335724506408945917674877387895649396616287843571353576799188350726573755480530976096646823026625112707001983744593512565044625185450109965308063410473350829758147289793767615147497053676435226836799285063293378148213303139119067980608155593717800578349932693685261822716589610558441777210016560146606849740908232494450773701945661696068210418747049973857530682710132784127908735265793329295624675580067365799799818664909049119628218160616602001690246712753810905434772724830745213164580364930081273430583611677618342249641438345306485609167963052856979772235846278394466709612303546144762359961171454764636976132474093215575000420638444560391793401710771665696721714981138849654044137610323299262414441882618740061769419611180590238300240720945957192063406518047943325154653569379195505030486545010707144533727554262399258558721889500673276853653568174945191212403905802203304050660864918645613832302404828742615062495470650719645392340667597927862659749227366563516146077039848524631214111218133323086415276532401749306857014824525782696070767361225889317856201110920529332456907195649296574555155510462565506682890047568423372780585621970868023110132085379072201420217434043903933140035286134790391346649897215224558127328034563829145344328982453755971740790927263166265882889564632605680969776091006696767995496497648519837713680255309432611570751091493335239927163851513262547509910991114762511704497719308987573885262302717717315432260940281804800620970510343411274330694739886386940575230714487077439868331330542743031342885373122092922332671899335452643307262758183861119860344980681664139033052457039005137686307293479263804661370111455625124408955562815533023025502377707615861226746416120924013289736023066770953572787831842920381027924388342440185583789593592534742661825843673645049942636118437591448004507497370260367120758449934197685668284833436090389151417227263394192335230513847897242984349726874260199843966351846889835234270816372103008485811709115439697810763126061361805314154441482969480660907816043352060988704190478101951740309001126743791267619383367647919645276302420186563349562916584345037956658034151725618490210505205620545489698386535859141086160001617787899314545453677430900888647786627397498747238735047142404822435581847924111726949893274901012978525298902709419609865090594486643801701540969011194073292512943977248245350269091398461647009247898631494114423709025170975422137660172688907785264427609778121830451202636347496209632743082297888798881828894733442583332711205607046541182789603873090709916962895147748254136508540480452710907623194269758873139631082679188787157128332650134911308649288326502750143717137773595025204481724742968493330849923989453802600912094096949010250429279291273682926643660643284787686147353155536145900032708380275138049358605952437337838122246109877903292436918431917527384824469588947619550078399473962614204459438593321389883220090936722568344958208107233868827012620782155014150505813595673763897075672443864966638156182101554195950996356152527028277335379047857064749165002720105844559898239458473265602069364688280037345950540175430362037238563946760413481633753786912595722453562541831970742387322526748383291863320774592838501714812788955786963087867343760308267343087032374975279648830868162673582421439631294407074237103939895193750101614567175117056177140820938369039222517575919443659961778375872329050019524577336456840841655734629643425392502428794407846714272137209062838594187945428526095116092965144532551888636171233196875501550753771803904135460922857256212047770430530898019649736225773653351018621563690441050748697422390918990400502036352196883032748784469306584523619108000044144800750732872774813996715383774357964909206832114771615809920651421430769033130994579769830673474026539403940852346367073955004758033824360638459234021903665585586149113661025084474757314267025178480188701698814332578939457221117761673121347636409476754705820777220261002049660159830415061891575724836922802975718924706668370429812174299509805163049150674734484613053560809396603847746408839626081311719493147032970149048507931780202155298861287654022361203935419448878192897095209098643532933425063518122915038736416520408278386352889147768281707152492909838889287034286426191614029572319741305399579881407373925736660352572132385723673927048596055430343249981912568530230597124852994494911238454841750489448710492989611733687512041141662386236657229198993861290395340148829571182828204137422361100406745091426002807763509277121757715592727583709565371662594861124904742000317149465377229077344387468845771689167441114938380230115525101024140043121721882134682945307290203548140790869112954549230703286008833211060773467051510451125158614121532684561011947518171687798675854593849990281266119608207805861219368607004925516857704154786936135715243502975362466417449003448572725863966654028483913380438920184400034482344562546932844518014465118221222955115736364840122935381827283480654142137813997529385657333260371503731250080428341940346084605790622040175197735165858616015245107742865190080450031086639127655226177340648393008233588512233169623129733690682987373058134263595148545245120403059016403849224744292888446133067790153528476542623124146339716806334540387270183311463331796716838504079600950148469869068433790339384017279145552080092947823994819547860755159497928383273058510384514319584946579084466942203491063861052430058630246556790584025053356430258201951339262521592833769803721247486030599565262639584963660705549472405181841209360928857092485589005597284009215224039765208010531016640150881845066306270764733922549641274185188741016511059644150334164147828980632456670421388167690353648110440897454588138738863184864243218920320180648147360107605218477005907175849125043738048098199435598270482513158062421304457260076927072213738643868956375655962833671082128838046844861628484296375438425443823134089408922752907805488758050541986292007446986554402395908904229191051098553401161057184199515274120166097777935282680816446703382516360592149295894447021685375002915186775389335623429877106110351204491230081008369326961497492111489593525459882216393396102707150836139566403331351803446328065349826249171168497181998028370242574529558398751247122538332082835169048647913132128453601011762759164293780109870388557757361867418659508639957493868115570462165324753756981758461593561842500168623260136624876583651774938698051285167442763285634559646969234391590716824224732935880535583079513597597116271047854272248877207828383692550748733775377296705222557415725624506537915942076578174187515701936086115126093091986751229043894316996118678967562020589531092385341761182411583894429957223515842205428414066898996273896805956840144311345146035535250400891620860605320014601042660612459090100646915529916052183637466165429062868274609177130157541640729698639616127959791941356043282304099924276926672093919139817852174334384742617825080992542329465356187469565700733130312918681980279918580352840867575108266542160579734933679986744273614061284533493508617361163077424006475167429044338994122272935934900267987303956810775379880748090188531353866675907480056701570130385584495785418933537224043900286086541993983961948030956838938003633967377846055214752920663068777199435403607841534404083139320490525218890081194782363023274056764117126059899924854243888222189888954630346541475939800859477342614921298333159626602630265245308953440667749689416144186655175169599078356628128621162367331376272494804801935898114139719000568577469184722772079917713239279606154049826941492072757103586987471086484876027348712737678685199051926727967370276940607312994700519974827954502312301877204960092112294835817237364838359464673253973019529449164250585507523107186114998701131114875656348220122941499181437811046503817154872572944241696411345474677500730056215141854224110980043905669043597389805083452266970175879320317363118977708400175199834518023648017409906693118997629791712803357293386740741800019336108008680560778989808326566177247385146237019890501289052907786350924179646658348128259068562045054160633602506500799974014023682709615214072553627974379032885296769602965979955160886003633906474616642681598365923581775524472413690195739199468979326883524661494738820458892746579841626536147921052231235772280514978075453040838301633960367786447042273939133191099187179197441189423275788943363685881760697906036272698190323178338825202966585646236862364096482559137574276187002838266078178334652371651568696769491243441474693750142926197738460993007137543649579803975294575706426791009692817392994059845363516197868095605660239557615851814835248109307325130859615016923027407649443648976905120750188842172051733247099717948118310949273125074906157169306128374600591151316652777567062895109417297170822815390421466647439862163110863002392272355139870915523579533792944689707929735934457341505348416991353686177930515340266085010196084692870458140092440014106602070699271160626415366400986824569103781487590033600288041405402007780176794018187399354084043716907323146579741760680990866366962012856227228221516334044485916308074343658339048609750861103301715201830915322004241213816156103230460644911377982989931693545921568962738901153812816123377836116597896215257017818759633935821805969485178120702701392374036811225714235828842311764493171225841317808303015684519689429766617119210573543803600264015731925475776363869458135390386704402355786170588560919174238731760570038320983480650510651303513977297924644229173900208384020145895502907026582076283204372059908508131279170705639135860134157153661689497568684905002923477057438988568315299776238690584026406011037273686202950560807356256331387103998222268355713578923946894035486963302668978202671622470692825021497890065062725784494150503294316028872098974116946373272478159608919851545587891983437270040561125155798587280761058834631243088060452347158778297345987853057232354036834325614030435390350373429286522157041622186325794534073745001907954153745511990050934059744551263598424809625658460755998028196639337499002682608953082003999901655444000889214537906435374051656773144098296425990423420676613784348808326919990333383311015838193079677043626230341404296707960903806178679914379778469212099496307210441803789472820048218586856516587193399594902288644829800912071685936340093977023136595950588605848469572274220857066837091827542529322059985942807288831791146022808830695964071675737598884713967272469468209045554035670471913687904996203317600372675382152057750437846401954748969097296736017045523132785090923314132545702060029411497582736321244431858803038440473207030835081147700045804830960165809567679317121827137208360114331364725241288504036796418194555785678726243574767500346376110258132776802737179687961335405788993404799841888633754051694556158955378748029583421425701322137684099591610759074456951451504456590223595248400976876557610800804073183002298508800203695333964721626016700779704577655676439814856426321447380137743325741567352576110945700643943470699913750339354950852724904221746600283869646450635177640749968846117025505530797407216820890946284836094729913498345655288080801352599794577214770313247240076287749155061816385262476960348054607174389850362202018403762647802767640203007730063144619259190608134858856852302538850303071792977020574391086821502996058652421823609820947616561467065055722721975005449048358599045481662397523433809799577034497155269990172032349133206050748063203592267356003294090768161105655012786186514632682532335959461608659979197009650824912812425760791296861105490462415872292230884459666647485065162179139833557706760963023584251541766848249072486670804684935090926471536530604013244287721399576341696767913569797823898786915260155004496650852578078468872744782454005411344233574409132572772543016213472120905498641392200621172552202561012356252535417936474937630340943544727626305921562235737823957127567673763548748003255059016159655598366648815026218072721018309417870846995705506485548138326087901698669682107292895928463252230297708170925980454509392736336220596510835228764269417845721671849207223937755591486745027604479895732272632778304803994057770590188059648558633153938344144939401263468595635571033198337307754437879611255368476499238774791175626194019525634808591115430390633594464669918331732847452284950953451245689146524541346064751238754221373046845776529678802404522889496056501325638072281683612255577101365463421757957219984485459659421567738887332812875884841560627951481969209110508423935083369460662597041598653104964511021829424514538909515249879177927579208482318919856511398924038385400431175759118960509538803110376861155902306837951544980666633712933751375897792426736407970650865481486168576226126007414463864485366651199813258775640876382700848636027512538764781104264882406309026288788084118708941939568956884607943387484933045408722133642486702103346966448377632360743516938252173617735784978709794833007695850673361896906192622193816701985590020337069643130051264973648053099147604072919020538855554580792786144310314941259148930412885739073028163153359850881843402596400051343785811115414205478024666664894383318407885884905534797207373775596074932006837491921211933803982208525140891947232850023823656076186869218912867751506971643260383708343663413507716258055120915961728975430243040428046925563123902523077542365038604798764385515931736921125028133072941390672830301718860246879761525854532248001541089268305419173677677835783650110122018996388365415882102871081673568965405553568581718283561281872295273541337880020563837814229281465588615628458086390323510794592004974212908261187862065400689862113655524573347766516408375416745605530347316273584269313963093652621283386017400155950277487320332758136652914433282299218539546872319857324812403312809387425912277679726511835799923399119343029873670967416622926269215239082779644256266237774576027572562302516863271980485801383295424494946712622989318268708104068946594990451426463299058691330914524275006908619191494604360359094054107967697334780019569245604172864750132794829754672699097483877421539353039837711156994554438205277095333355452243200495612575935184189776024490514311627483803775119261240826452745559748220436247504566749309637623880004105547813001097583928767591230352049306571122462833685406557548593881477997757172460479348769179768942953917075870365256818229414016916820831261576045075644600265031872482035809506168335931758564954467452562192025541056987004704983628471377947203756890421101033735411915947259116268517207102553377734172810726181704648350493725438717441069135342049431651635999745701573746930475428002530846108349452069833948505096276082186770460347093304374476759988027170858023241276065478480494449923992689771272822452380843448133880598758309970584329404617902220716629884598274899735259343178065891918594283619829351409970159697488048004190956164676057140042925359000933412674275385733976454970027251755285138510223052566835752992542209857777520721070602685985799784121311370308892931904209618386427752768675400526101788873132492725386356505958013385573592825680488665014994516407325275848995836899730985089178908796168793252741835171974930631290290109269435053907157135272252577378463361494105456445474625353882395052428684016675866004266039305553709272223879035800933665594081378368073308175608445542716925483078308610658304034098497720162617444362900295048247710758536943938873997754652039982366026289102494920662243719532811796652299751604378145234338365771860034570315985479339224949122599730057470356894008753301570711638466944219729205231963180431740748724295819035311720803255008959332619379606092839093386055366926902710622817042968185119980555931907220229306967972699543922823133567976735623209239041077862863965089601282964011364408405845219844290411834920699072220882235526164446760958945474369808871752364904334839186548223056419529539685446538884291808933439534193944510413810902829664282646030981901227405547082761151955689234097758804373755596076241671378758730412682212276531845057597765052633614799603606815163190581037385813536897600571190756278192584460490683670073687580935305102510618726938518852818715044065695431226798713236225534124929242217494229907553369155459587459909627140644063381369891395305643697835512647042031098840743656001628374868393833333187136318367665721914325001621128468253376718356597340994223190873179549797538033603441104366423914920840748038225363785204457432562682592664827380987482284803628790112245409577846679128862304424470140923804648564616476412448849382001922637619775895129648964874358188068213827011525260879275260068010212139120128051753071078273114365903257116981797913479685650633639120455105075944332446276042591497777680273989160254817021655887480109405191993598163685208597882534450794625913554405855204381693765835653838526073327776090142229674593909941171612242572252625103116504619701938494579266763703277419246135753378164125147601798822294737658643823118719852059427943069133340628258067078221278860671885453089317054953497322517471856724059385763346511891793996449014327466166587533113022164583510270288177768486298886231187676273325321108063912571675157118019550397325646455644008536987067534203318364984209641976117098865632933624503761270394564209201638444459812682914211699379812205240936279031598739470742999221853141140223385209071796969900708387538022757307218319364410818127695125310202200262953675315515759206106273727431424741931315901379397141207894261706420685512212474639288160354371406795452765641567311466882767163747951060214939973555841960783172738935668291572684792435947999418340870227523847215527940562193608348910237463454415025604752580107853245052561991284789433642841229898826419107968585125436681885039052848043309108214839620940759998813863023740749853649828147330374362695820114232717162205243810211232768595560840843813686550924296938708187275897255693670244085050036540500362880198291781966360195760455834058149391395290739794713092746480077898298290631874787676186959426049953139822866474662402391420453716577286671616616362235060422446125988357675587418640870476063967776563601491420170250768996532897945811915672772507578567991319486261377308170103675981376652620247350126666403893977384794599664734543353275089871155758339509235005535081914915952209375591415551101271936559402770331912813164780712488695690490963640660101321126950926222833639807328838531882062710232503423130357103361084958546780472055276932457895877424857073015780722430439960809643892709986516604778826234347374026939335845007686859801959030052962213770532663977245315344961254657830373459514187823705989364113791649160837819285556770744109090267542731685901402105606599440158203348874468655148562209956258787135932066133379640940558443569332106157498464001045677674893292959692064022254207579063634484078660052059998662386606592875235770090009430821573915345755157721771413716642075762375092936401984518444354219776431150962845934715560594839896745502601259480998365579269654198418147934187492675718864789051416310947961323372637122670510829714823859614305270797696381994907979135008410421546184092597990546699626573412057551528404523244919603508124016181649392877850075154383523711388408996676481269511047140912956084983765246445829370212277862997246805548437132270463403696726577304429405151560639915507759649954654560654194269153227103600868111475326482991695879755702778812491178605499614647529481842176661117006920398428036288757817657531385653412384846719454230067580649670003834303103947265355057210822462515301584537683382497295965761301140651331308258515992946642601778423187126258508458251048150728784286329460602387761481276967716288000784957886408362527067018197262386369811358255511449531809808074330264494726216626068657858029167387815145927726831836610544033908806855662270351306707301359672323886123270359860667627093097486934818474796159308019673360254195284673904133431994938361969601244005813277018635627298480151432755646762378556144912037028751068462131494468197960383051781722607341764365892300778759157563771273961055608105398582718280044373414118126196794199449095922269657210362523934342935543952085147718848401543018508995466905467192785477349550301445202736724165902071338032743575295498879390988789325546210445362964559240618496743354031104312666730163564073663968036856490893722728645444576414304409161493113579220996137489383022688908147259912338137791800900932623958770335813849722689255081420070134628420995798478746806053268227824650412641067909572726704491938525396933240956265225200567806761246984869601090273718074307430549158954778366983587812295392744708316476896977399768493198449029426004021891266966998110228625977004055891275865052984452597486451269690665252553992057169789809519756280962726899302248269560551320314773323165152065634619546695028311251931727170759523667789699727793017508192370685241910091033456599840407003499982178848425045762976339585080572300937482509938826902309066651293824120510724665575900556627013568046980670782877660664610327271420138257887748216107259455675471132780257141895130991744056178709455210739370006375493562600773257524754789109840270507070968743995766248168437273983514035507314245228138484504515244870749774328816106359443283946723072823062253541174999912747057269708259229553007716962201302368718674698027076278657773013916482011264258797882477695399841178635731661444073280249157063741731201472227189393479365920538787805694410179187654293657126666261366014609519746719592104108284368637950398032814861307073074977670306966829310955702339337074401645218781443440116546709845274173030676136179313068254808146178984049741819939253174774830026488103139203568801438333899875334636110293051162859956783271872600958501257125156373364823384804480666442873986662067303058387313046371389365382952186410252705358599391732064080400121432465645428468089442544180229481473794271623302528347405434058166693718281817866214658924359532865393756935579644218125412503766232356484820591281577143270844454191063182276521435018808919816362077205687728352874369987508975797178071182088921147412205209600029375382159005425081335119010889153502646541593200468890826374751078995850627823129404741889616599214894175358527119707762546341482059021545713454766788180711413594317206104536698432367299036077838817202780834791357034842986756140097337496753849011382163327244900992764404303467795433325973760420909507027782062956324167020891862916851186960169437652354746294392221429885910999382148202033108965060155291946440166548119126673856371488012376108312937902353305359714895212712584965256372352530682708201816912091289967309133790894257879605053503209556803706312346575227454058436497940180392357274077130821684740019802677916231545000898027141135084503508548875375592670565762731647028347368255881476901875234263115965961403760762088470515171212939995504482100577190342851513697142007110607989639768318943142618619241816604380453047299776301632518653830560574438671841753522003637852916679027117823412632201604418844174792026687432771657963023138622265190891028428590975539587056762106765863182472202012198094566854545328281976648776912908638323087368969387763270057011136198212102557520830004572453450128994252587781515319177752162365004839518624609463541179162910996477370362840763842903747617576039309090993502547321480189633224045961216485897138831768687458266394669677373749678928576973600885054301766485947235747824870978705638723301586318184953643999081758759498568709430302302270764669209057059097427400272359138861918403054848994138672802098637185645008097220582219642730988939113477474063405070700098646495063874635701255938108821433081508597729631661052241396690589054776249538038370226296868541467775573261972402841308360274256076504362058308870053291178727523774228614718085385562829506765592000492730620874552908511047269182156721939764410770186928112890128275429480217854994861014296335840486089685686297436302755610157764028900944055516520424175260695748134933164904189036362918742887932551957498250550354335774447839848857408652776324301085302307825294757551688534046007590746195454824511664818172028941546793473666369725863776961302024278306782938537295120598022989019528865289351202387436931024372125802930012385444195736712147005611544480402023300068935174388364301841141229797979142343632427595678585111152364190010901919261740367586995058372685984295618000157134743066133428119368397264429853817080436441767046397650414524041218916970616363564581789095011704169928031242248091046846554110961599434351418285092337636191339176532686808931258768545376509694467560141785839158403669311564316498367442067557890828375747911999706038585013148428248903782876652964464459346132798285992518445152739356412972227520345380847636958223838561604689379612234325648129025131502248575884169413959628618442990749229981808540375613552186419444549087407024408237727222254396662402514623386800169350910698211481376108862328599924729148347048294104943597280069588796672285982560604274090856835889136201190641734414236228661867703941469794101559031444319581253837474547744643661335305245432405939873692186738183799057908410304927553181676188705475403569153973675553154834069645246392504046228130436666311844063224975428870454491298785573422827854317576209087525428114133738145160272354746124393605708050901598640545364729254576845377155720918844157543504672637437703336949980320507366667365953015872759194312407084869295045393109345665546893230906476645995441951497818435523319154152559968951449088887582586588422017376579982614332499489441263194355371563187202874623096287490197020372534289603016876907644659519302545361267148207363728801285119467133439860921621488556088413169445692336615550803842843149327374486210936362763276441886422442401294230688868066207968978314926885427101148439656310721646099602890775996328027233181999339993594895230575127035450373180657262798782275395045265266776658799751098685055388820995179231991968720670170704222534983198778247800299287667151862350525100031338246281467059570910677767907286547360808425105400765282566695039943377013714214713937095491436593551831672240916629383788982348216968702470542822305670636224278990814372455895727297810773247083187178967835318023691205388800185668733091600884059000399033223669251289175181874453177382284383852706325331861150108324045507937051324671761208875392972544422996411005337673252141704985288751155196872427970992530746965377314136577848314534302387593363547694257655518618465234379578949314908908803076910804680864104011686402850263939833385120696727775660725747159586600159786809213026339622253699553186258730717353699554413763104807875641786551518214634410938507942837103989490610301994639363124729224939026120841369028493647478286180467838643531928985791450440510024565167074781819342065755111907618506139071927636440303465300530997710945459958605351339972236679989358055935452935127555239852195387095421949653940415468912161098057790159573849693146920040783109795816490735107859895447016303355292039872427387005663180925126566691487861776999490811327832272554182018641566662936786859900746777859046570405988907186036018438060278884286067451512685853703213076567597102216259388623530493687375464744017175168089532694229177486235506847269106436327472245328583344334736355808508760786901161323398876883510375024147473386363581702293910210487076101770180420311313451628597405482812347966746214380659677342612384595952101346479371207894349982082739380435060843277914400600992676516809470293406105074618464076094498038279032337206821239465957517696668887859998843805694110099236473954346663850525044635118992061224332779480875547778858526286208521394051605604935852759857029794371749127261784688980925538042298484774799144660550014762210454531883899859049007206668348774275416153902721590343330046921699175229406408409702919606887714566553123375696454980772183506071741951116151682465381763762694733928556717267592852242727519908596657366789406555497464595899696399116545017314100110452586440744562154744063590157770940096237409953536236025543374833472090529745616768794875510114995241517057977868717409026968013411134596658703320075735826155804334609602692316219763225719573920359863927701800015496151932812689460343511488542111626689203803777223718571425421230505621324412817690361840702540115671858536207345752436841604299765702362932659692221954159143338018896780342779349748919930630829190799362965993703924164046705680433115180257532173950096665310510289557494824561086980009975919519821170827357354921463327771739047990313176989237919647586520368059184351393149399753830424010505330581889047221902486189218856908799296504537637757748222308458944746245532927186932525588682064743766189409901070752882493262168685327083221565995485146024668683281146624370532863296604365437974427659109487484762811586926249689680534779090007102643984784915750885473248414096496352477157205820200717370604331649028561615096022953691239020672898080148450906952906135029521177246073200350719551681930103141530953291621623996336915610084986902522423047366307913557981890793073294595278603719935669724163873126240216989507098851940434209623546360185151956595428332711652878488538919352933695390840489358286058571971032682145044537056343673794671548405388706638358804250690591755188270703202024708594459651387565959096250576055448501656271461040573668700560683461068181556050350490140013245513289329301785644996155649152257156566314052932247031470142491918514800527786295352338101270106045767988015233416685413592763451401912708897885757980623421378817563040965451222457746151973827877268216305327673757116462132843744153924890487008041234129706128440705353997191476368176374485144755335012774780396546155608370346419966923295262857313232344108180342848966504352955630474532997611361669498742249451876313184017646893760221049117166073520470667417482426019829956023317677181964382716749537466906803929458568390664431298243121390436565918529631493628747090785936025631447433558662561319813669544872833033583326642268607095694154279386235462771802722534390666485086958941187365364532627758571653471123809044317094664825516534749696096277261954900356423370823610787757442893398250345126520445586386393472690370069227241478733614429889203226009893164013701967717525814464294234611707036071901617719053063545264892133303784487677947186351142101522181057127711655844690960416977092197187229317692056219181885125664270453384502461512855837024818741190104732601643564897993084381301537534341541843201165573440720411074606413335888073715772896263742332956527304280390868660532973576214847619391650569283776185227256202175754367166538914923526648583203558964977111353825509643409749787195675250636346971630978022079638314132000168257273021266801259504410670656551247179925909952772177174802768563689405122948821924287431279152804665203075427573565137310838059409121963238279111794758103940904323054369675856763838052988170016454312410234134597703411103851409578029744318836201950010121714468597949504258364042239920506683945357710770215908230381950761086012487668437079081982491301785400373518141184039565145067421106552311950272182022597653177129505539912165405643891787583598960255417992688160909677526152598288017134977448690337454761612153462733817461073096776839279789460979878187396058511084382992535403865270811719189722768203275976872238217242458396069513733249206555449166000127756203049122156929683405856177360668648506142278348866554080853553683832976078892142640633174341533849189576425414262993171312900010982679014385736764817352665508434054528293992711664850381000713960455366181995886026186856637321682032213943856630036597610048585925188998084220893349999950021269259168953709724562108205578177927629487203624054222012709584483076036679489771796438528726605936707277954500145380708074980186788622607628220339567121944509804527217665623175255391159112846130583896905942178129048289603409565125432153150598052451114435616638922820200905529333562287117538357558689962151555583411740049939993219907737495761100128407118038519210072686730635339125409885903940005776935200192119995191068219976612005993408753824088699058393363232974271765331557721855270789465435439362161006812544866589177969509313204779675574438269852522189086531305622237165857385247562640498863789502697064090769044790918048992682383642467862351327225264641504625683097525481691125219903076739462950389710515765201218050390804814691640463548079030283647108015459706119090467509783277164029518680853581116992951403677425306628861526448274423004012964500044482218514541892133532660251109214012751717630102638930575383134122246446686597255406745900412232241569133755609288807351159854937804790019876911949494077956203200062616233888753088056904031701249305712075270479734383537003822106332774442009961457905581455953104252650939012816403274563630601970828746612298798561828867875799473488698212869782261596981501518625713873993921489478538506170426941779647454144935552329530502733913102222341043724640883198115700364470095123511968417033788736406662651383685115101794136920181358083940153169952754366464556458481309437034884101973019824059567860612788654089851420069178119280593303846636319638906434716950013423225921340751539273700123773847692129032976341016895274158471920449520862925396699621125555555584517591573552029341214651004577059864119445391933515091401891192714222210657134901529586908097194112739725541639275602032801711380590551676592270743715257480547592068817669206994841975076909759024068678688293056438550455224533971316540811232081721230958115735658763634237006947617369035001479051957099881511035420411323811363955840409460131038108940655044968689183625751863212619362208878025482237846965275110617517556024147139823072021359992857896504670596949901871788341003183682769087298955627175000018865002058643681338188194676769228351668304744980406818400948582935925787420895535715346404281549552940645448738002606524377979567807255044536883128535639528166678685255448798782295133181040716735021145434341186608639376737480394785332347039736255958297763228816278715919852880776984539619635292534691300003510970709247997777718872444834194627375536471169570711557037984842566643233956004619073907799592357423735327224472916297395646960516856562027974591261462027910405751136800084113011167533072870663033804367473205645356523794082689265661712378336856216028050231830331691450362898158166689686024960291778688254601362893380296634071985971711361167480170588848685907837436139583725422905396313585244668113836308120303441849396110041644905142651688163574302849240467859188721390632483575463266019171835665128207618686839186664378285873896256440696092924283574780063585931448745474576934184785847010868040135095633662519699149628563085785013280562682266113402469796963005759209703453352510832030431777312561626396961155266113026402679212092878579447851200764723531163933413968339616371927651593764026869643480613589746910076008862364801210945225632513101749322425174669969590235086983723647432955726576665147291519779462046859270376484800551839741336567754066437619417406519135010177142640619011805566362074077445501380736208655545979632260000257779300882337146150230271384158174084668126424450737251833798519575812235480939916990556302122989575598043634369910250710069695776503342366312529858159679111127934862869567084465425805333467350240234504932809021714077751715370959898579977732198265521107978634745432764116274226057640376588799350285926617236071807791215232848141130419863773255427503430050318808566374006846841562627950098102916999588972193131040757452753468315817780513740172637801677339960974061990581433935483613126749432530800109222346271677327691818326355307570273563531245148943200291460237060347418297479188566257418462908313163266011411580338762678738333724784646806889699430044687717643030331232772034952276963274429905145535181334818735932080597547265878566217492374680613930437052186163673464665036632186443161855115164001466946310168460140776357423442402748660109709692638022493301634105156581270648101317698685632142090136558342750693421619846788360474027012747138896317933700083116955539596975345170659515225426688690733102128391138384511209311924606198656185806643730636887678638999460951330902124050878690088664156020658329676137658970062109864441766737350506901742158824544452566786170729105886275198391412447591035724221932111836215990484199180954160426694528806924364613797596932808125620264614448172546742786588324571684786357275113871060461187109818069682923864811329562920959072963723970439018883367000471692650257312532461891087214638560842718837712793172495816204179348593705541125011200935349384303793343070774207713094487544853034265686869190849339717126337684529556251466724389682737165581327061485081827298481354772898375744741798528634430983634324561472735950454936122533359688479911603738941152154942639188719708819736143934598112450120629923922094566474859440401193293930957927236991810602805647321724151940669727911634670501178192984579079117983538762643968613926527606057114817346446031887788965385288427526444787030946856883997132646509158621536608796460715501643010316280772020062786338848881026584790002736530027457341900118103170969182815307699924941997359174135282206123581701820376075557357004430491819766524786551707315163882538731774895504741820408067084378438248107118691656850294065332041526490345970520567533619546874643580719283615931724831142649106180153059340546621086902740183827524463908204517128036191456728222514479104044508935246083488162764974495073645318523409487479945240405131902844972031027202999378228000282233373782562745075526078749042418223035311667200002409947964673273075741465566090805203245155277111401179306167748037649918419225328972757969421790648802193986916850362773953287806137843571088892324463655385332856108621571245389560192600451005431643271199801876096244679731585499258287487320014808790665670735648301063141078156491551309509774529447497126619044544044264987775381756060555658312462942454704040694073249436799040923916813538996521881221199333882146245879937205288964115628031163135462398637540590381804246948174156254734515951499855632131533947440178868806260775379772187819805141680192499600849831862679584362208030166899462344218840950409450156319129515661193123872506727694300689727028627647545167686810721772537770473397351102568571928074429759612700624520896974934771806025071566103416903410621293599665998209015308929056253406075138674375656803255668544852014742685590836635640945691824095702176509285904746612889990502427106024798507144344822245528707010419785188769742193459788983615820161139679127596772479569175802698946882836178935105845028582173304520413778044661137308190788266021324248751094289986969000768480962511035046750271814949790032523326583435965561196235540002707966234198746155780913149716838852497388326586749223356927534582526132588030130073531923551809790651271619913065496191402100602310588714255983473175324354806472219539481773671201914036294110188460962970023207901878889687246545230509935275305608206428207288741945381994589728319002203821018354321846991696128454865845855327616373676200418157956047053945576359590356961350670182066805353623893426499476441939662848396080837744985662836025437457485366606305465755868372246724023530164489117116151572523072543604053333615313208438903801614022923934149622869310166574049932554319734807941207202735199939443492227702609707977397680686600123778370713227725563828581818221525922487801716608152466398372129428806181434611374854501588264842350370137064491386295201032800137251536057519593749661725530893992128921916785040419437642488530784929205191552448569255251808759217712027663596505797494264890990237348413918227012517221886084089601993471733014562850330631271713811676732704459252160110124451253275921696437720911865246307913545995543200924615668429278194882849603591956286884650257815360857871463840906761372597563078607240120694525762195057398883949999845076520472648397556572426198588858574421438318455491251033672293339121279608641064719771391474469565304905350564683313651695553053002383511711584485616134395400466116263609876371283624905865737377797137639843305978490967150949026678772868344700500583409300605564771568504988454896284324505310373394448451278334468139232829465243584270761066969040573247820409887623943001051266683763137295908658821973655864561087288277297975221650533040973743388765742944219995740189408004187621686095525201959478449975885903195999083201145980963306186002283504380395779697836037453418220643538871064712411127307968680829603225868548015822224316963954965358232572218194241002936688877263394797871570124798021476224374538578298626611913816378583804677140089893177985208391368503784252398029201875049463103225257617364667095009343171686857555779535513933225616592022554218906179921475591708433259724023895302158806719875282344800819435347067335876706387833534448042021754326855138758413590280733495989313913966525057397701499459576912804519751445412418858228616733507566638266807278997741139318660090657481497671096100299572935733416292473397905326966495271701523723290966294608568274265747859064151659875128646456607088990749985537386543691735645721984740301081378412098322386895029104783280137224695072549409664602491161554204468768517332993088869783663436070230839493815646367699369084171293656592329267518583223270512269189788644659122923428618690008987795033014204905077513433763537632382999683796989706169338709533494819299089510300640823389560638069718343099524980988617543957952187987715970123416520476399196585324049395517624689268449977096471008663693437592472318075266027410892809961265188587265389817314405602634737802669694421316655377579378677730758792645582466533081010183197555845922000319128523406495418082403653200828904890861951837493493759590902294101971182652706039398897061483884887720698886394313951292465924005173451188416449556021773040561477016180161605973325132604203821521371274623501315911851549895815378710725619697210963853343505862386995480214804907855130603533145059613559722541798185093265900994861949687342657899699901327205715445103978434748165211736235566172304384942683039440611095288101735893139396450938481585859385789440642164579298175587632150199713075199120077016299771351328805828570763981023699974379021081549580243781112211955052035090626742393087122031600882070597237278102891131821408896892785507500163473460209904942921012975767303164876059389745047065898580626716983546878187168409958560021298194821469068029320220242883831764116765855338879938665947866734971088831208159812364736453929143983635508584464332349628625367850065028076976138611511963465189813664102714256236177736706055055600170201187270379260582561630701577204475453991831642076408421832319978147224427516149332990540611206845245948484938847146097115576909840245680953524614236528839733578630591868373515750060521756307429940612871523906552550715480256519939252955842321972544738030100293479256755615761090275107098546605771243800868198191106247264450597628311410922128687934410983210807829507335363180507340321314899396759281313709991779008984015029112369415753948510508885756249309633822744075021878735387296219770103123684460939494015036642680371257356616094251550915639211379658185639305684641284489071407008424280370088020051819628391147495207831117098966531592512577083846305970647766851400878483463052824622278348525785585553970420933384664355576550143313877636851896370342330414097779115666603131443408184264525512970644907543591305260021384240957342046191364980279912533052838927736704967752256585934633493120991649571525560374241285759121781327162573730335733097414995002741789682378099307117211983801832899112151276545870293475807260383969011565083956933904290496163994274395142588701567561083822191664718407144407440757220258756975831038953527065518121157312367233905229416104646692318541429675454137331940731805246444647558558697376653782199848620711831563221125600934673521620215958066589874727011978953040242541429467499891173828018914833796558176955794091570074708375197615636979071436369400791527979070803097099486440542668124556478015958035430418872110271718130373553801311450140009131655701044159279518213017317682508228792351975577611469187893190908015219874706792607799248529767052803540185144867519955200640382639325345853204395809737566009009680670374070108454831812386324536854473205373376700600511955171718165629360186151892174338057692305249181035280314221901277424856369173563534491294803824191068562442412969115476927795440209441044432393089593619397914067296634290775548492372439128781329077920163877797528108263406710877373643009433524411046438742254431189712246742099564622701426157955497350241406517363064225724192138157082753544765811373161201901099667915947337348898369128633425341249793738871984804524233193396296796186019684739552842483829656256513644493651800866551068739995036949027421885780726120769411273430006704684667216176260935329058290048184066539037691569398744206144345078318943441982565157478815646964372415486692466133495561832911841776094584856173450678822453406390002400276501951131737227001687738736782101174537864634878541499743288940895980637585800791739151757854893551873684774160242376394576671800023785478898594279754290943765975510043017245517390923888717865071533858550743463802058621717147421727041997582427259843932233174747878311033760927867922490807086400183105277380098909019549726906454761852211892056988694572172201858821646363329324404019200902230741190889644598450428157347195284448340439594574658969602400901281160778803286974965007242886975654002789294786675470254347825710469523907402772860533827262126176811754892687221874398111963360959054421175363789070544722155541562889925322182828091237399750482832356148154583846186467366451805902761434041555637380293646953487585642184831705817138532318710413224354797536662933085462079278635061616723781248775253864211843522320097684588495256616526277568184261647524997341329791488300104105026101845053425695009988651879432627608937332669083630966357124334442471349518700150627687109350374876884325602687379555658746098780811572871719347564533641612192328054384418106752833202748254996519789402522442238030915679363708433560566532209623608233546630755990968743644554387380254038798349611046355923210510341752753514664867446565888993994321252224292959714638663662480355624139307023869108242118141896498388895840455391253378227361910002639902272751277930502726250498698656101420653427802684600394534451015410673399753224530797096357476182167923085394720673516769929949291391405820042740353964728279774083089682148753204405933752419400117459869258804307981246935583456934931400551156386956518703063130722226153355600631955348124993661569833802723681433513368791990280693152050780846736279617642463563256021253838855968060249170137841888337524191979139595790202004542589949945530195612138784661549632545516187197134604136542595174217229536360396273715301095421204201263028686467490674592209084957182547143383591351291039792624291581202204686291641204959721318288174523087878197455366123098995362943903175998492320585511553228676452989199295276947700859441201084349538385271414545257179457879256759630047336871277175649491816952774246358357625123115854264495184342064880654736402396342769323448586140767346489147603117421822901937027601488020376828152688185067229212474370022768378866046932402613044563306759201431257918709810909402654405746285461318284112621046754726674804927880871308406325766633730412443636829850273442548433438977497067457779111067324641111611637189071795863440116514448071873450986595838417670134171051132166419769798330833374439934359200430205930686039411790343709254111890758273053545092356071159790578368501145316332844182903218452171353254186617617177686260111460661091886790920399540476967506218916297811826802847273182215774379275689359616142019045408261936597073598135789727174047339072322084055148426636038310923185079851733964428512470310912098434346823530036799071066184983600161080012677686484598851834152507304655097800800481214077373943200844850183228789174993454333105184222559418361646466941667293672947267439795240705561524381229239517208099094291120413753322614376684231040285453498334239059032114077008020666704210786692623072042825815133613762133859476339354221606858886997940766946855584244557472591696736614944234997212398656392677509748964257094237765799926384826114187771148948959056803399874750581906073730222298557235067504627762934645953873573918346858827023219354987004594142844624838295975527271347478366496012564386642381048936099279594817050644990046807707454094961897200082684834864324793570288510091211708448992648756650567551157684337128446838153504802783404793315222320443260773765152552932082460758450328461542429758839564940739184824065626825061823681277718433060888040392672560694878507020904249729317114303850655797742511976172100285616790033431412760798327579416374920421487159511153526352338753173675891532312831832075692669808840832091683077330089826853427027833971272886009420956965541640149240219728745269717275665393891341117221055327484619035608420723276626817543782406557207611157893601487106122353608093399719767907241717009541542765503084790013001103201138003286776579057631163598361655296624908101785689049796164086780460476954881222462656473713950309339223879055879346386662880183301719128869834474980633322038269738086143937266165222120140740293586351488507691221305714285357430968968380602145732099830744565312144975369467795619438260836052295819573058499906132509974327913357023396178055985501480303169809729816605822679701320718904900583613001205273667856477659190652207408409453422133902038336117106925685768285434949884951239265972841655255090501793461137066011268020357139536764413876072614704916747857725694997811182939658196660104155722553061630054907959548401530141762644887721552065876046403289926484519370195287607889657699900893668784263657073118163834516256845754112079985425354478250603714501464024642752420381893074611742153810701265258840082674062466757379320399255154857114733341709871813747673914748163946702729661395661025849338750582226218257147331577094180310746061477351388207878586853797590299091769316892422470998565231703696499596659116740124122573149949761645502818092955911721318724129668956013319732656136508542682069172458409621407543166800531687831367894289058040588084184115876006507294329367656331013762790682888041066394914745006149025396125399515288596495325510090389026366122952886449735586093083646331229023264593170875210503732719644202213267509292212709362409319337181007878102671960873418774098669975912589916100900458128780970361921624192930397073351589014647000030509870029949022993309688843547795705766322415759497558300885228873834543660409131961023018652946492588907905439837370969856946202253092527016555242611397720194819954185270607559475036624465495925419218528437323943604538107846080072577159509124895391146281748297352304928412440739464466517319564991312568868192732351463352770333051031452253223973110785647628734601733448547048975203435577073803477717499129554238080693751721050982427323897983691893073715333710189966769197179126533232142857632106250659825722932321416498873826602287798934445141421028346246346942111595813840669783102519436133724932854998168029229759119213133338040451255071359550445497469132626905060550450128785111984690428919856529185734126274519406860661242078232360371175348794194867211209734808723997737935902557160309562945632302537582060597980611387354715463738562627965480051878784445954000730127403328731219122911901407304803305893947055763456968820536060116392111737606412468808548990267153169562444455048930594520869501893242489670341546312462710016555026465447448781390536134243486748874909941749797803701336368865252155887440253274346964754530892037851711720303009586100831379672611636511090181375115654951081802513715315374112181588302493343739524803107517264106293737905662641432391419532170031139466142156439350546224391758838188258292623530219529951053721422623015505757655022210880981914174171558691977321114417286887045415471683588765952069200592428022093382712084458622598240148718845322461086937093806873804043179017258453751104347506699672418627428451654601397613407282018794098490108475209355055787967689560035654502151957453754217207389331529860922324270014522814369918545595609769011381140676778523634777054254133629766876886329545506600100558594539793196640860771544037670894858333284723019374127643220415169578263145376287890928220345608989176598375790866425321519202324293949383983535400150033512016779545287505935316595196025464720261626017725375633797626368493781772176528528375419333563556582341966321057595482386892144018328331916053474548161188283956313599139288197395254329356345947238696623365359970948478200330446003294456026089784518995783480689905999080982706980741637665506496036790395644835147859496075048080527710149030808085076959221783806563450097495245353248679154713235663002390046616225439901402944091426488495701204029425474557642885032112026338033135840047529070076746566889453837300959036008338847833824141345494681360282000714338252747724946129462800777793054113500487738416678371717852942155746138018910599468782809020895075760328508865796798338403097476205151096082880200542848775188687217220517278745346850873558118992827802187743961572123671162932133751317877495373775058992403454577268514014832450116458534167309221419130147588369949371656482849353893366790086215056919245153243385697168018972906782321133537362139585855695460780567373899425909810913826724853961427711285001913443514248192828720972715590298550735640560047463182076119006324835721353831327336430195648526570949582908999353668952384355425721138939453323464809175554217898710613393601353889396258623193897401336152930072592658755039325931746927683065521928986998257016878195607171209203450540649491309966732413885987967575131969440282573235406896047001006308751642476596782773340649601280768069626495459017001070292233790510051076374702339673001508952641669337820093136586632438209671675913648304759215841567951942954715294826471437285406350514381505565284374521334403313860976877268996939296466448921594451677502687025889903111771248505039363225421913349351414567222528643515631521923745616600879915191693754708612765871300132540777783338174441931148470196541227723703178444368633171341763572338863221323201513384367032256618700575509360885432739435206019931489647941237242169350538086864663726510807636151843128682686170031192358703961693541322553549127387725142153599996801343817292939032440886761853756601258472856930125062519367050918300857748297832371773932646015650343238140454280277509241127787280329492972178201261969012211351995597345592032898669836180910405688374492956972049771625772128469297020217176136556566917706333299923027193617729573385560309308614409109864048131786421951130239517573041692418999258143041992638543378041514929321056014723208470227539539102662342218313936095348468261294505795660578492890342237888235437101032091063998869336591595229196661050030672482120125448248643579076494885293625546928320113187973729865765285913124119539750030018219715790786272153738218401985387488528478998028637937531679366539891806957600246721041260939851815298278352995172012955849027031143661073002543725610922918900413642879738126323177614562019985851066040953854999519398638745305125688318816430408937137376694523728252925072802492597706907658253150623049586456828581247550271840015626400890273072411139062130524597458736599542240341957192186043607150554783078485535177646340510355121088334510812690132520087815451816122455607392047175964758305217132928864113918051209901314968725650931111801384699343286375415843484062674855539999459392252778992923907818542451347384928016741920567523119715174393176120677089290837396128618462255278295788987169867604712368473305445829751489921741572037644900013234179775121199543204534049412837487598056974683829518101874586504621354282470900478673249918788333526327855434911729634370704761663395680242812555624771330266549793660523959776565519464889303907680207885705178038088523213070465079779157361305107369735277893916191603298130816699713917646844400327001071859244383565770885555920459021025523533867111243460662060234585435225576056474566314452370220924507387848762093802960961937740843130068922867258374892935719159055827123639578738728646695764768453399206234233164816246092793100155289308891217540097337268421850890659557102966116164271438705714409611347111016992936123636180484778559316353877670679503459857676305820343837782021895535454942509460107526907165376211862039080702415418080773141051097919070686262167476527303055739757750170728837504210109086546887770910167058237607357566390676764171370818244271053491525260082712989394508449941253932534475020315272984326170076321803865434616870032934350672248591003242237531557687254172400230002818759119192203720760137291852967018181529713483608602134277672621889991870974187571877464983926622588709219287617538180466974576507386959573141241984167224270585798726085122253948431057064902053644218707189009109385132679287655008689488303091773004960024254848492776134726119237648268785505407837023535709033189973764053829688066629567509391534286532041294240602753959085762986543483200952400500142523185297383262940237872826979189593549677792188335111215235451855343543190019707791402223389065087759597775191713586333800790107348382647981045499675685674909576524084348499068288373877943232561457709309166935410842772231933652897999028603573756491971506835360555871536236272678542405064939663733876605685559106224188704214511177232879187435273423446906341291022717942648401531968904049695775084496007928764782557355207756877160570021901636930152753354576398590947702250547246393240359239438005545749119344302622617656759386441622201018052640529203982121763033980501429135636875124782859341514634564011009224920977118877267017936418441660081712640822763067707844251606501264475122931053357190405441013857601579434768149712030755979925620256325882056490545182405372384997389171443058149804222260265160950146121721961998078347409177805747253246287192993380704578824465225673915752274309351074576933132080814959776771461463171907705410163240033083337577337794680838571611940838711931198771727393057258683408992221641766021031568386921914554583443683952990248517944188523388919242395975391522735184053745069920035148552915199378835755512626872028742360219736259567340420936281338286032244425107750510624500575569183042479752152920509618342976721986451129327861864288160935479473277152710499668084083526889193286047850886643894256371985465442912267555522066908789294973611759179363522677124655914188928604182071573152333516366852522282534320285299584730744315288513402257499153569934284098964326478906987231489186031046745594861330509269566228389588032784986443477265439784087200183605645946337161652263573665401491271908170882789768823824148245690575943345607938146960100105802833657528653687911005617876486878886873311690350264519385880116605810397323697622888935895065885255333535920880951296149326601848043434517468444994930079765156562701244984370923443713949129986284939219231099655685211862886549419590836784141363693092636515097519455050578503393039872092023351012861412077425855843499738789281306333576831603023277742208688195274926246237052316001457004257473829162925727197452848317888802754192378307193574737867659696711098411852956565751915313011710860762176869093124209269316828641050288440120953786200614158916350594473577914318672522436482235484544500418222581169172930826073693612539689422231175921749779709951724327621180625579160077208123418338036088791451326879063451756100997050239909315612765040581823192328584873356143252722078442051493156893249013248742867140802780737425675612049706021342218828131950038382747236956020269444328031306685297155238716915289921050803005711375037782962055057723835803915483815648309798363875454365978050803041278538383662483765100891223756893041911383219000202407700337657237664651630771068474544416006689471420433895215759582960670763169371683218514555856628714053779309728746967404799017176996689051607531092722784488808832920316243538379874900957134215571470701610730996827760424418045336268898058675836707232814896721792407392972423856142324558066478678222907162798204615499494929591046853713965409259168145670846794702872219042169757827889052796809650392398148953709688568677850106733356168782530168568888795675224161694475425029581878558226818324022076821848392762239423273075205587466799534304672412595722643054780036968975126062685035131933993866087833120084377413649650171864416463129418186241079100686582974931183856480367373962981100424880463748899832217599197681420071826166993115354433751484420224589303469369629472329199414349684016768484044398205910044909911901050859165552943727722556239456363120191466240606708934241663518405444152039976844642360162093731158115986094043444327837307263645801033834112802296588696421020253264917419655783344930672668114520551904967634348964499039234719117605790294062345128397643812164760809455173511252698872643575151168989879956550247937968352899309731748527158428424915063303074487241798403585158390125351863169856976785332235513415707306339927279372489798879061413924336673827672467972737472321104812435808401445582120407267602142688724272413165906619391991932129399230171231472980005426687174216812335551909016283416997813089041279313776513407726305293972361102629341797339644295800819170797301403540367764509085179757460829584289309105997045019116641291452839394346002515949819881604263228460523679423458253090191466289176687829040408184134928210342838830548515228485667864511344339794741128455605368460186332830935307920725262903261808895341376154374731254583565074117794050103823801236325976370785285606915636118127023599005858918714936304418792538389726102313023639036735777711258504314439486896698550766121776266723094424622504132596731933723790138610862660710533070215175594389721005126324638191466488385056592351691774326175862654603650862627243819193703178532119087759410876822647814688816270467654196029932469536301018490695388758546947755897119377327124268680222569669990053464955595714020562012265828010432370489880030140515396868183198996019730707469989622401638303162624734232605810746696809865468676409349739113086224230383146082792183802079359103272653131014280655518370985344628831302719186937601906750628937208240154787801887565088932045982632699328036628433090984267785756644276178733089634887585843741295847812302852290540782858454931485118189254508770568053920361069486494886939425901975218359293548023787999789256065356268603955537391118796551217916249211993788751620943334562898418943052894601405265246103313121979190811538985349616630229303391537269768979952194440927349769008382694305012681593754953225405662376275231007896169017727790737175808436266609597699343815358711989980834325280789635068316616726718949240129466992924077076003250098379745991901018855082496987550480894223054789540295036944388468495976368871031026515823678741627448176698941056934082237816823649219395958508781156522157492081585021052509115146851743369205891310743338370346347503893319338384093673614360193646261930879981293337204906009451182706767698012610942232223955870389330635800870297619350657357977967684887593810408537781275033405929967340681991613391913535567984232109288197906874278059213973322650907429197223730554598968626049726977913266412194471857819808530462373136385785848986688950124443719837099776519686122887550937466478657121641228369399227189950012680945751749727300434050634355096202955586050184977159009433416823595799332757339379181617073064134738014622392505169622818133941275433335052747970703493708438806686416861539156996431282988555586826448718975836018771993343257283298829665740004521551457817448147899957217651969076433301805408888030035047857551904529987691870566856867265347767259702331622441687504398171477574382101415206659156611628926389998385007841164446808086544676919455980167741844879955984733028642598292643687527191617922468026402233564949127704116907917924092097939340333217526358633805899015833083791631849565812520464236085497831607470090966731853037716086970557183479637564649378496403038035121363206776437224438744956555781560742101868655533784133733080714863065233055303935363203118186273123618513680144655861648813149605194172705623674887409764416909394818872345311151450883278421462218156291753246274383472053580025855259999817428087397776650594894847601570540123264828116153062378577630787172103805878098961613812594019026412906933464887307594913677262208588703999829633769387501002019578387014931461115486044876528782607876130373277367263007006491057593462912215882831976251644874258419910445357360851819667685778560453743784212251126439576955298101539983142579114524753377255645955155097954361998260670944130490122641591504388390708389160890604022948541457289814981037588632461165706007728455132935433113296322600494637078731902915115594526561729635282127715471813817631067398503158128278806743038882515714004793865959987418950436465427827216346686721435076615495844886245583821414907738084514433815848720246014551686552464953391554198781770906891527046053376191521136182076229011655713117819795522320227511885408457330200453901555414048609407377784648674216369301996967667727003163011761918032099502860915033345526830143502860918092563318253655251531375082723990877531722267073617591039102265478412821939770663893220085394775837556829949971025398766715203231546485147204105507943258973243936468021608987123377190882307820254917814228447133966899968008410822926970872352272874758196274405424050721870703522066771087442514400319946035329406396117134813178267224242191581164512796459953399377336431988312347288789266057517261940265251171218317127200785069589015638346414585573711827072154626537327180221027839607986484162761060651633750650566262198227320978790131717661648908849484356994630652538771757231600791845300223973023614831454660631708286841282180664147078210175880398980793563101435239513819499679620429410860692031327787903501127131208071874968273111119876126388552384079613810042699469808669977730494992125903671039824864055362906564186161030584141082059085573822105476978933748482455837737947792923758734945656981227897880170480455314721897183158140392720438044781066603184416970897153916882931426194354840198568203685951874475932840898753610000333039501803967865723257379547228357888983764282153990395715416173180011774940686505185578309743881804554697131841209171330436705142213686618601321053579281041342918629141183915900876904641960342021915126329382458383941851304607302926878578923559488240680556506461197334726664010120566829560691714765611947722744874758206307393907225497821443194022273354221720750246553773215570626289578388222518697449166448713186470979784754670421875068071586511702022946764332113167616651216072710132666455433586404243303271123812690566876849801713875256209750344993738870703078341000322190700333706008385642870171541707878084808776838625832933921684477775875390402570946727596922223638431941389067483583795284192912835377894180442045976400991501636391462478939604888841522544956198830252467854655293523089231808449340286755448559685485206676442235611312359132999488334023084013441375354106310012402800166298772787080262878245223650984058428497838285573431482310872930929950749290940638680915386393833753371560338621799020387662475320770259983412369627811404390392074519856381197054382616666700321832018377410853715012474530374981570737853836924842608587431649242886359929330403665860914534659616821146242022518977922756082199850630631975486897602021050693908326913589195519599766243328706264935648370800162930913729006715193198930072213724124856415772318469974298921177425320298533349494167668376135359566684207196967508998325800571369650760738776913629826928703798606005509017766502553396875169654869404374302505996354668310762114478931329613502058476827645024126907387537454848780853688252158042398205307825246817810409149671088736974140360967745481735831176213078784044603094288255370409350282750467328422668485124916163363033513509589785575498410654542715858917850157649374392755788532913696538858972980705751957739192186342791691767118502236140849129805281474223244156011991014075905986604407834862040074768006267497347194654131815175326257299630537036134640943436415904675985379659441325475035026236132397585034880045508757522392893988519662126517102810978325928880467282515631758114511373736864508512552062088415920661357832788717233145599290488524928771744728301807578006389191321273945348332217005988040091486239899123692243576509291882867732349812750911916124864910176182619829085510767323450838063414657752735469778122211801849536548454900649868328630614772205263799784442066216780682269044178709759445023476379940725063510778390278040757014759701010141021211142016350072808412694820528612672183719208147700672951123281773482663445598925724182516664344649590979100677758394664289064185331754022469451785609601111423764859041118629604162034022784664029598267806705317104284944708078403468974821696247662413084699006708437743995967983218780935923134162541280253835632318871524637112424912844809128583123995898907972562427287394195138993063132258665795347868814666324965295075096840796228659044864068433281501888650732518167002766899587514582646469147568620773178184530523789433146851566891040371577879072232971983208264008031498408202613742266065243117662931499960648006275582032692670904298389210876411566895805978207211241165587929525147490556638765734809976782913749766495049743775258169066978333960122938029062011246546207770279124803609264363336825706696903573459080408724011842671409926626234006167207508923220843670113430955980331737786445359664049933925763278503632861767998789844125358400030841030823557553378430763283656318371469043599445758900028686653893484356726524888460593046295038329120747498565103996150687687929687335578215525627088427730431850411787442787916129892667895313188787644928995899759145281157826880700275606507540990441131307220898697202639620831325511385870277856041265956693683263330870088981513434927295980968891209268191272742202992320590156194632380686903665890350238208484164068934052558001179312184770815476074274438594773850415407984218830619592574611396537128663728129927178961022267086032936356459835844824291754506894987606505989242278193095468887204922561956316990986146544694539102305223002526754071196467064054135431966765867154938864185056941877903070910094266986175079574038780312829427799295627164263656576960449129416698954088832855997783043017322892704865589806132475797621879384640176173638308950076598993791021555018235339154365641814285961377743448279854711542649244075739828023828191502602751120675171911055956992784532559891010172290350601885454016028442837111079407922481622137051759974285738360279479921324322469538204073244046228463736220629257157404929500252256190905438653146574854758710282173480947647960898260082358502029335524411982316516373755528362610472103820837155547261017240257684378493984726368768934035698347399396059519952119418985014539429627642306378519437391022837220262062107644764011882838391591278367046105855469632503949796465408548728555582745688252945675479551813984958384110400661089235261823428177615728749140837349881575948821386454746880975335935016276962396884581159872957043030836538460627304217420369451226776535237916839942568444042708050288745375159118076278147935514575233872116034085595505992107691853572038518877672737249134098463425413261329726310299924652121551727427169801166051388109217770426506588310535771262696978970399051549465544098842403406281717043494957904322762163217970074554063916302488083329172672659290192328987445211830918671779626662097188469334064514781199160625098042879767689360316706564915596434189232650911702648686244540596394906954801570990720036699142493202747787557460341602931492834366694275823852352167452984833913462142530106786481077310073372382069009870381267757732110237189879065684384929459524994576134199234969333634802326369044114548600520726367900229488037490892968560500683879054338933974272872387529220888886247711200308755217967974100703497271127026702245409586387609486487665896551836723366854317110548090857285994503032043664540442950410501301665415056430581717479146106525231379843013619820864690141624992925768262427144116644427665868075004109026716308096455672745695957055379978167301895983576400649327649433489025404957401114775702860203727634986136402119472010941274554443624688788782081363945893438480157640787110068179180551887262614929287400747814499725422856993620085597822879636845301148538904703769583629367637426652192639247881579764736377696871668568932774298290413184647686687935551318546615671109360874328146292227922394816422843707082172956795010823166449533880277096788769092125153755292399410522059028728682916200652890377300209669846927187297933271628385623177270523935047824110231603348713917186292345786509470565274822811543996528543998971463016518018896083684607757318530347237663525426622561008587080309638939988061290917782089416348908982204576624626990611210806537264889333372739636187768036663429244476549915761129542504178322936140782116543963538397076101408674593994619420582915455610771699586262861434700944086235214761584002412395501753958487369769393893526494113525582341553004466691655619860713548429408912286455858162651410937407253162735773371703717793605764119795119254788154283308851314048817260638349199920455128465124356045671232146183206159331128135714962830507185497652852952850915035264501438755280054067988141853152657670869796588073170091216183396271947265361881940172059602025959836136363810626283283078937798853316841760194844707788666293020808024977143999759515783326890973687458924218472331620387243749692365896286900403826579914438669112568652480291901647876022149833280934770840308712715880046822718451741162274682934694599992187271491237691565709183080647335129499362888543424587100381494695012649364237026231185909879497379704861601477555805167677326861299397901951288008609056188016000239993182132861720656106996154166802659730177889478252518626182421603737110375883599155593915694033929197324051984163876944153958626937879926041890985925117469668196187929101910471828697510170178846510005098047487760866811987321739670299227404483367099561213044249401335129597289581928769788582052040358924748248535417206457764137301296673287869909171095556184980686854767093973340592658503450587480232659609521023029325197562499593393391555463569284955626285409555158116049584022653509566197880944134029360540189055057777057503462854993890878264529689734664621837002168715050981044852484437228432680347011231611715486793913549692414860836251059043579540184667992712177921976365785114134668487571827127594822796720022839797622849658655498848818222817118297036061982467466090096276397206666423125759479228031307687681653485689844307734356496636921013782491562712481781738170607623292891103336170864221448492513565596232467425758577243986254152452182328111628377097407620497023727332361735119205488104840015910967572324776630470074563757953108020437167086563866574868612397248025981773477248477586179450297307905277721463336220719586865210719162699936135162666258946374355057659092097799139283054819641698778732843450604973373932005918261586810760432172736190108324275972263692833572720535625356193517353561153444135028302428632304286519575598361519716800724971865128039164917351780131914890602773648723625831413240658686096716699005899616037107508642650356535586286873478779792211770493357690970769507856706189124958198207461598661871927140569997263499024232240721102662572168345082391024737623902774156750428589846916571871606061270792730112353234546078322287973457650090194997827115992500860878727576496772035058723041975226585032602004009789313449046946212356749462988823411627522380908680764306287070390183362048521944765823216896386405965261778214495038823576592066701970097894904637659333714074827630555674335448954306284268949642581327481761344006597168890773616946599650364778093382994708407168169369350339467826212140890210534106003706976031101558228350782758890746798710099504826615782745689027786226136679873533340137138367588283052614593672350242767257693390918027355127582171702329659467488714035871155066830638697754558077824176859161986624980136638762033453609411368631642662581755637687134995747629215807350455287718370638141831098418320999666557746520791398634330117509659854901729134538840303237606194066174901971058984904123397534894839843040516320990797614037841794985410898495054844229952555728267668527330818888522418128241776701457690225558969717158827823353828103273221623108982966190886459462637066357402311255091727798848100390329305275502175121339508860387376561945894389455007598636577152624067333064574881590320956497367432825976901058847620517373630574669131894668899515375590083445210346156440339744037642951510917714319476483636829460665274486746379627139560681253732780714981096363919259510366099125620236983374125024925403910689417285144711484217070650294806578857039818034542611331388123267658315464291207330005714701258908023224009715836213992330687421619544493968906720644915157026747533299900703088323339960150670269424758864260282451924603472921814945832589257461307521040122677330339594642318258139710054111061202652187729580561326589944027195470670564714240424967972150336967257788561889545479965950377261306636780783551703148390809836618308132159219402225053038874469899929644732343011121617245052501593377153709653696736559143637788357803029007618679603820383990030650613316528436618516379167444658385658583037805973992062363240262759870804954455349915432987257306211488131979987183983077341735006272422115609837131967836467609291554242438249874639433765853127299526698354238571889942901488615537960527392762905025703735752897036498140820780572574025569404699745166737914272051559592164609368429387131826553324220715351395319252016023717703771621507087905215917161394565015809535374835636854554022025463573943447599328543243438670494333762043792433833943951181468869491199519234071693901236819735624294119760855581003532698459265263639711877326023774293269219070988705705369420404665830576287698536389400269791957198162070949228277707119767459333739202241304666457637389377365800840301793063616494799624044681131073531671458052463863339690182645529316685042920594249920693406954065814107451537209950132503867925350502360618472828531484816378265390051082036335374208438241250145813336993007493380778598747609006151714967201521312187914843342107820005649482290381056197474217863283651738420721183471115039446927743077650100723890055886432996026743049318822595430016990015388769936061851533051885874507056082822002589905882045276496389145580220894590063982029430252295083180526834951196325926064521338363448658971017695949490876669090509474090873900614503082216190621465608405978307254727449118392879291900097961880232058760940383123260882562317033917460220778711158553277967910742861715922621474606021993227905023629525370053017939434385152966834528574590495644336438056217337158540936667718816381236102165890709648664908250075096595527222778007239691974940188958489253439991253685681018980803120293986427157531999304291857017068437956519178298438334073154178248046372628685722591157096574730043035374112924856112113741379338897658176244321407782123261542898772327995399118231159598462395673124021094406440625859680181282046546368055148238649277853149477877761497698062874315106586857564919478550840186836174408138159693245558863654546989897598342636187402642785128899583231141151142311818056983197824501081968207236105803430043131684071750333213893056888445741762721577442650720797159101540886504910284278198568959985876347218323053572042279663568456325696680457717559869919979996718723136396624636265127185481357842200252342900564988092928807017171238309135553586902682840102796475605098108822466884355066996622411871661626843152855967065591402554281632272350634496655904475078970311567074205813539901301430452967599453467564860488442037589670293557259341067942119660691233574857053773491117841862516248826614902242577181036081694349627981804431369133363825054111558023952471448569127786547876203419414059190675205274129899047030430677795573909346670376113263681587726269519291063005860774260195842998186666564670752759146326063485431609550179508431423048649831850432490409924148136770392839233426169161788360752396122254219846326482517369941780260409068755581456971609447421329837962897810051454127717203582007513282888541109934624418426741838486799304735217222714257456062320233799116553328145100256105564812657814047295383572818702896697542707019992010908470219239871611845730706456475528367276346708118489716606665917390860130355118925524059419665320123562992192299823591309142464275386701391155499908362062393548234889750680472092831471528107544786820128916952453215097987313436582136882492941724050632779153281274583050945954623894739488541153869440678104152564207399630389876589343243615688939971143270466324018508189900137902054756002310368665617859167818329180077280351421111860326782401464917644390682813592230999144193546058957053523147019531211762406462530430069767926662061069563587439191345716778250522364503696297423274451504123679500669585593891778949625110088149225920990520982399554623775951487611320462149482150493132414162308684606322734609946719905070820137985547209597685842371634658411969455035298970453945845832731313366788894093472052987457357517878274079093435381786619040641844196458823878050077288354891481228871119533391660849064282442014126111637258818841618921069756364267891357276207617137315210601218372723294346034307597175702596507558220673876061832151738805403813167413390048830750802041983342673975431714998468140288277146639743409097868607951696098664272658444795334552339672780523889773116378457596803373802704549330702234848869042369649989072262459267663275175721909988433862951412210941725349321102305112127819211329329075490292171918584591328250428708508807959701948973674710090064832238342116476852203233008642251931489685587861096743617160021573592144271396752214221084664820502217827335810582422303521034587569550263084665972492931503736085562954170036692049114836595603986232534062199225504672991499327939855246585177904434682847081178548432390774135027849083688553770374796685956210570141269530891144356668954308864487869255762210628961563957700022012354627166779991354203872387200352638008714197260464901385461626136090477944218363645705788764725734298704561837690049590765743502399813140629734993443062606309967350913911905316091115079302191004328495626192542971479813162729594725193991580798201551482302330682679191930581706034210325431555674661115585495771319209024916823512854715333321707861780609969906335424928174120882620656055541516283830977378793386608034901021020196476248883797445350036027578151524099425534403362409610283836450871046074569247536626295022042042828829951802384878813983352645996749829314240528959339297898999862683178835887902932157898685389991913158424107771315777405873117882484253304838241472275429278677869052628731143848388170876828741788672018185271216644753631552596489941201246714326422951536263348121570967317253164344662944357049997912670957726283748860396587641002593852297514704610142744256916741816672116766725153461491285482693086413414045258418207729475387054232530076719840091396543937442628723667989625951489767314753493131289315994361812683357791744322648074428643464651651044705729793241834124826747001763126946121841301891673949404949886073513746023278409649687020998699937675818359466426926063548155172890061618599374974344709397481305780553110844504512180927065209771824368901894829057297694287802408095191249605979474700655494737831276948061528014788022978155353221596860578511338091564594349476687252004278619918403530684854396550899355019408028311245489550537970623363161565790613392110581504888587340074229537677840644908314822839716214735467736450245531603832962164475825999549494820761925231626880304395715830090534258686424797539569437300955275746967822180219709487580791205773194077294372373884327493742782593613153422991073377111063578724708006211951017523063310049777242165475978730436468657955669545788685810949802666932255870100318419015328150958134063259702706312741338686352136212879818898768540924353961027064104522335129486843619415468074940459481573605321896293514577698204998213032599472782428828620027047520725193204342962321101421697139434698941279432206423702215107971984884262743940441620655281032840821948132203378867161773209914000181908801847691220619341368704404940242573362563902748312247090289061854129621873197773448187005576136155885451000071560424092998984490431589327423307235150471504210311320039442549833787507642109538972776668793500237285820504456574026119615335940398705875655284444625009920212753840664454723204194290458597026544785340892607619830794919016805669498589272870939313802338652776712757512207660025530035094284278679151252613451124282856762214108536023645223493351052724124528171973578303196456154263483020951473479926897780812312649455842508034104833882708202174380773041329978494301766699604498488382083396084643064220308043279018054124414697171598678650214601707033220169177825433055202278604052052612680112690473536784627270567907698539064894713243747664980865902484617924052330144508385923854056671389718299817622408699754562674440983679210190450279905244817300391397737480232798348177665335900473751828941443582479987641377996636102063182559683261399769214759798371647204755209422030828651779861122387273774194320776666890795349481657502289372182910361544616190194769876143099108258962662110570248479078507212193438558869839047943863650403682166903716941199605302611360625737537959719642483633355961979777551732895292494725171988433574431845881484810252578263541821818591665267812447362092862159517320278247697155127735232817749495852672433097566826000875208587121604313883519027726344679770036852465109148032752995165718364547244053269659638385261197963196932679831151630847550587025511842837492728305670325866228094020818561678336883270993454841054799896764778595604430306488211491866049449370353120697713886325861536840219806835469545388339306391295677049391316768470236355233750592126907083476149180150625585944905978678041430053175238772813890124518378805201303858019852736446412692427396253809648891435182555755778889708418129316542933880420951282108564730368622391330827013007733493212026508163484930103903449142205481151365365540356812269591205205318451914347583796563509374296703195121052706370223155284345941738748365993747138325449418638974789884206775822351126009508770410737221255279149791873499320346629733963969009420031078258350727474412003697659155227268395378246226930162048825608022473716494271693235410452791542958718928606697587934994889337146997433448010631250549538884109993106677652254550674801049346125012419197697884285334567704188454718181918074585425138440600567684023787781781847099277730460871802070450269089910901485956616450373864664716151038533606084047715341965074851910755864920268207523216645682480582386559882044291629308427837677124076297365677873565156285413192583858103849379231680012920437160769678736200884287577066114840860004058924377764722854487270236535632549574439354184580909850256305493080232389882073970265853713545670449283383878907794669723161079066952170453259265720879404751540387004226646499327920058196726928149685516605925569432278847712805176300009636951572396736638649829773673915730091698366961204263579420339269794642387137859095494022163537389992962694678512762548342804203391027573417348238806129555222991610011633017873981506886864352212762094300593118286636007784634242004412962685832343502056537242918753060140020997923500833753853406151694275644389651158190575065547586135899193698875938148731790778144751549466376670567906301798899731406830014146697793679962154090463417005687614837982624319227063434155325709990543965515419413929221617500782272398082849911997751584853056037969020115933248583194807545581803017992123577553049412836595342715387778035532046250516296665323210980412531297345785347107883848902955881182935787526818627546740319977842518746644780282591649946170904043365099074582060981952184511163531670161166417400020825047280846611439710888057204119606000148724125085660865258458798797032926170041661589995936383634952162800370994502035484984181558462187252439911843432463322868031083387405955319222674059344530684447849612977706846308318976605373544227177193038664020122936905109251046555002061136545075680270496612331221746163320968888283009440363492060710610571875215298672114520239510720306036010536489786001997048798421854714964594367808102480158764345849916987541189048730268936358394448332282243023527675393726038242702167094408443928412909258649546016178836767510706721339422605553333051547695853323749379466234554908302937662856524717535824376301396978635497440248530601229555347844800508314037492305479945410725859762279023840656475626901263065794037643939325524810598060397652205528471913638229388422715887749018585120698968333071030377903807758316530932580512423627485595003463578377650491800171214963897108970193524786922919479254831314320583828629656377402303611534847107451516108317925031399896525767748020944242838868118708828018192051178872385706554651665030695956742337918817748058905631931112541884946337831558971708894729080919263599378748530346650387124097782406069748453692067784436371638776235448544511145869448325493926543510451758012152758391684482830483518276126878750655446767556784960085581199245028258121471147108712152707078881327867787749383918523784476915491371863892437230774810185358466425331275737695345224436801279326783166508640918125675081919399363087275052587683930686201865587719981412901794406361935725036287560073978900765287788676972379492477486798612870222890456655447085696496520162734630096775477975273204773785228783255018608747999354458378102632003491121341425705993957006612381780806937040061345040377049434421094735752972834691445965198554685481294163304665502867113733772819372284631275309919868842410462431236977392008501282932068190684447819017918882333214711669288478364941188906033561094579780533020968623747224568837743301515836878360386493790138498168321882802283470274560395329361494063520507236427205023875815783045394532597779245396857171616714057977733885847618823455336957201551492223829546960765071515658599397039806653623060474052443819363127054498384832184021598934619847012577765096463193611353641954736884890007381720735614849897262629840234644952084269328623831354311936598598157130447905922651559833546443738216679235272986457121895679139822967466997628343576317633048067067263143973286753316733908042994280004372371810945415438517268308331701438585924683667001950992470965504278031882191832579323732205736886883379112590404312358238491490224248264859835988377162504725209278277787321295526172846087023142605182034009160420180557284872223056970853508585574180317714223478372854438117558011877490004684517105274453283800491184645694498943397867605068917427793247490953729514012062772507888574724479100209490135954109308025737045413325097026690547282475126976574067424703748536106460062153530986920975151248700619032737650779136192656788178006689898531275329089485764066896346687845115312534281819229367895757248101714908496717648334139876572693314343301906279747180089910140419400212785611343390872369120211504855720211896064318818378895276509549465850434818721170443872186295754285332101407595246741358869535453331308085782879174862095392999381043308644278660217472841305660328593436614103113867353508210163649061681386655531184747025938835056953761118739220457567440309304055523109155185842157324348572034886374064966893801898316277840267781323858237076862252858088145928707149177459278918777908955180931902014474536729184144181945351251155840809183470024893201939562136732779244991770206460913718939661490585679663649978123032102818880240000159939773212516207500195439729677049996424818389022588087619071182014729353555694686624952505516373764873457143213055075923167427129230051591898136114356738276904298453853799426309471945496537271571937799293740449257879681391755240707790785337094710224992636756978167928748229447522123175226159628068939700310928302599172764255790704970430070008811663023471324853773349940935183674047510180567153443339948136222625611765227109181869792856068339013091791902809491756955818100311558454370654645278070832730859425019306173111990534412348455614838748102466438764378698903101058075358465635986111621316250389216552581389850284519642801998230404957437780136601027857813198484044652767896286574675668441498444996990364099566382986554878758033575253207873992115619195678651507628641148713780348804396785337786115039083378820134405227098249417113078760280941322033240199449761146192819296846230143143343413770468693629426401087241808055553356916892027272224770097063996989302564379230155414747610461751450717103028297923237286752672606490285585836689650833146214271497030483608515496115300440048491301621585753558874400144542306608588879015012420831675760689061688539655567892614277053095221115831774964762333646756266663118123115453144070968228290990321704907791629524137111258974669108268174355233957332195683838526797394434149364586949785738078121866636974577266240144203102385607546247198265084042378357761590495300240648310026741630055513952907876344958651053288190484056908541367344036230298006320970607550476475236819748540502511436130009338905138414886155627724484349582261929914167744537390115622683599866468385433024414223271284570661798959293668792867329623618502336848590406448035562998460358067963506682157995049501946837517439598021958511913415385929412024138373698536733733118236655603055274067216411658878333880068099012885344461544814693278924481723678514228513631465601253589640140887176247735269487080052692869168645895657003451078529063419504486098878200854756827508589140102914015534335845263917674247469741625117810454592894067816895667934194655917884739856182594600432463097327741196897580820134386875273943560070519616006712893235213904468608468654895287018240999592823600198258933698750602560402638749752003999314195581869354325859770866303219735234502531153058380173015522602184880841354679606899993608500962107099507785179963267816877643963070266969570397626787918483883869092272116278152158037894184486941769343789365924176143781203062070709339930994502410105799033647100225635379245196356164228372275757530420404384223858771434652654624551219765465502713646684675091434468707976233741586213950915112268919411285410436584661430124492652269098566160105479360572901559755324669764502879217050234536322807372649962612733975987226770478142244167592605039798561421507724743208047545740529906436284263950848222867461045697006430300071001796716049699756125920275334792974239351343229089762682271535195915311944156418674361799598619070445288883734092840126890184992145495909469435103543164463243229416032241972877447791999581575399472120008282933627795416520010134771365983557920806105779040353909499659670658856433037641541964758718816156661607673749694363013442553206657923246183019060986054294499727491754834158106520986545841152319421097577487930829237175063818757139118256938305564205646852326377080374998343822937985590020428698915062478992976526249371665503849513666916582252962637176810556560790622453952707334300015985601918547830642559114006543757772701619168693356347589421309515737581561063476138183121591712433317200087978068520090365516832441680858836159057003295899393870408351618733022101898664065991701420102036244055143963954661712809696204423426617373485157089321181070078025741087237979929403420702021947534404835159390609006288081253544009438524857378534155703684261294601841270758478808119240495612409347204212672610167761358605385337661805542081641848691720657893059075549061623183941051066250571984294629189701872854167579000234076126945067559680916461532839325315892103359709708783705766931198594501745586872733950450689457613503980325337686625852239530510843802882374182406191280272270014588338460559386891492185216213903398819062350218137225015847917551772090421868422760621485691456512218322151124062986783432754567163922826980919138592070798214445593141851777073068740540658466198343443039320442062867929393264988522615820451817163884769790544699935652064844469966181886994826643989705855295961394386519126290452330509165462279350814872501939173481410847935956139696527637804045737190045069102800238015874309887204639135519823415086688836127165327718222947446525533748027319426652459904543399401267415068831141037520661736866255826460008402306568224685635141187169047274825692693599448298693946158140415621168004783966202899435307063532743635683926901235611089111067801008283457060044198783259954325429741312699760655776075010603033875865652815055530629371485895284777485957576485770755436266372222348693448622685787983659445736189744253773564536001229896224189330298562861881049013356950195253467600897306854895366747717811416865432054118291103343925002614676443775074207116136033408282113391291172607127342503936967869819828743121623467469260619468277671276229290137635549372917972733046725611146110988876108834720371881456585503825189613564915292300781882726133879568018158559908339903498655511116994645430198419904825466300030697537196346007745934128924534813506351638847715301941910296532011434482439674325188827307976953954334707922504425968018355127345706539582744428633867284689115150004619664428823412111688610245159278602690680717046253887879367815803431951379142956403821075273093683207842371093418921024773008686172499975309723227868369355135068158136831484052303122817609079994284750192249193023269722372851508457132403360846776035040307543509417661465767508641049459120066527971135708001605580017771786602096249540544742540484660376798596503167217889660742963025278321084261730213655253527131946408658645655562126083713721911576441306143206952311911794449401814586212422484444640075566426787624306627326240170166211597766776225541157225660124879502114610966754011555502617883436307669514832471903122384485500113088544910480249326323789086987475790486442433764034197455740133502210778474334815038833645201137587509082495023756835712103645280758531687660866367360098141121868119791869787026160230257504830424689449900950731660723029026967801561106764097371114015692779843707723134774278427826683861061093410966760567234125875388337325358141096586950835147300501061418080433393689069832722618127647802036050527236064345483765560327862421103564097470122446720495373949558273231032065638788720835682429674699251534229553956637223035132702326307249382317032337288276904522500009898015489616832912867077426767366362243005052086492314137758228057034767211576599335178692514991112227071802266499610909939320313569196231918397732646063242222103205135471019603107642082937954909486095478087679240887224851335667997688885676175248987955919054651324627079023895469811206478038938855403680471002474763891710497351272897942440809219639040808146792081890331086651620378456365902105446681636325076531075170474157278137566583134525126264493290079302461761527285417310067513186558904003139884731505472023471551464955896902153093379069118029434294214923820567042915800083670673628773920945775211076613459280304615930927719617778657542434855522294979625318382218969402443791455312550082878239531595928618717699468211129893969529157399692715886818028621284596955546905276126771919094119620884467653675251591073927031804256339213835091144302307678781624470388199374258039354015621012554690496650014810143927938080170372720798091959749913256436266747206795064294384553868015935206205387121854548008292152479684239413172476984762744034295969894000106312843689405335537828022194928248317666964224051032124519335544918176813522568452946146955787444849198553890709236627224913125756647930462271420881066997446265402520796348622764047928367796611495399230584012345372976414912537421893481704306940269453727567164224437999095190456657094360978385048158265096870352545542329635259178832471848434608798158436642722981594710427491714414546952284351655436751786259542663788229919379457573541091517276912633551040730937490439455252695020528834026038721791875944644217002421519041759633284610006230319841009539537124265778966612535378281913294956502570270381912792071222881008542388755867243484958144119710760191070390479592398004405386130250608692195133930673461548602102913669712675269165833358667625036575104141798209903802103664052903748260328303295035635684939522992253397470340424515105020434175666205015236978312376299296050787779288892266557853586709013606266832014059467443187995477751389580273369929375850726659678978501840957739361294478567256016186752139520339861618931334984425284177615218616714804760678412835220962678612848516372745554306059219459349384964908555269818880087678147106973017149779465020983855415601920044957956188638025363855678208417439509670781242388233478219396482339806698004759204446549455497207404417082966479211020363798889242888308822426311640985592592670454081687365121420596061534041527677364187748658945937086665965021345288824497392386458907277393351862215890268186987995341243349494990666905819451176719273639709307647191100420873451342132495610976796982352859809636449698408106658627585372239879246804973474670343076705688984331834513929339081814105507944860347815359897508216350716377247225604641938593435438464859942274087864782492982308338285176253349617391289896272696088236321754833197712273470234798478260254552883251667852759483733921876204966191155965825786249160473959461868031042057372927211294554850587148959326694610717880113119194866052200350437092566734586320581741566845666922222583349446986214513442625780872533394356195104894187893843140917324287616394043210853831209502430645494511042837604510741655537851840867628322394433410363267783833978647376246493160395233033639304412005986882880060861075434324438103345990172758800294613721492081279754846723126897091420502215869955077038123972586820972889318492894499988194003975699349569462291448791008992101975232667364802560080092873995886793002194364227541576256649357899408048236342696472668486968532227030075146835737081008550975138235587623178963952442690502250058244326757504243342821806045918845352713666186385306516419528919312111089008243632940710431584510830859341288936404058522104503856032965745558117171909234719249632716667203176106786950771919968379998556353270514019653161137584168550505473779717764528339922050468470011970597831741327289088692211150412802279060300147862927262962683163471424072402179034593287786576639983814189245659187516354603710785703186512421404326641812075985442068171133637409185597353314014713219048827498242630193434771314726705140373906058507410066760358254223787876251481527382911005465917021221898809323679473676999576769694176961442849050504241439929879692313640083882660524492905672587109518880835331592012677115449152939746135021788037188894687375691693790917015290281550381118953103801104372228232507062713435958500499025166840340848437769901185679210847132931348146642183198890054428197722441807166128557642435793938939644067028141092053786605358311231757146407053152765807044233748321376716357895322341694214251310113467768027492819997250910947360446166345553622840591568617215737082420375099932231047089500283575403909123979229412089531035532644213184843250789211345769864656853774233248813250354747191572678776138650800873845654190947477322733316280108564464823957005546301896365059688614135817792299504820894779166099511487377844724547513256132362814575600164230970466268631016910763991003343438619757798386229524003505750851799150111941056661726478514994923123715659214850701270249747442352941379472335487425426483467545283294763085794044699495193325354805224605281726405344262598792028879099168054848702763971472127835113763143641076523280695756742117698962519800286980851134295407532823017938811691906723925797408133686566296513731517616960459593731112358380659425489413684439322417983065996194689050246053548512981973502742474962922932589368703412330062088965579288425036419816897699148554965534047192876483044055008259930807129062448801233187025660323125206864100852657186620589466304696409650466640399480486117099020689268618791292414639571097448112982537011900878697021535423352576576780964203570627685726427039603270891286479235688279446936544940090638914357159139249861643746792962055423049031460492454017157405320160844404578908292057658941889282451640008871473227828923003612260374479057616927705443048541278714283936823810443037710616515015456646049669470579721467484702768206672840995584081988528325479661179696460155157059702471927270695597950569546601645390059570154568080229947946399439825365125358756368145185485394557737173590541632915347162538650903700764915924460591971962679597090504735358271555350198136981730400904988553613126468185633100613396921938379816438820932444343410922387134167428817565547945705754233614359844757235436742991384916524906907609677967078304714011882212044640074759676920971186862435730885224279681985970197020735878836779151199129268247559739192560587480349757430673906907312778163863029808299108081756055836158269027691671294242652225455904018102030816950423624817259085502632345473465568348591658918560345675530486437465691756391781472976162473872851366391225025835151473946140875616785381423727642452039378726972809549175971739520341249705084679988847938643120329226280208936953714562443618577314211955119056457435491292660810304662927719615976281820787770943227221632746505408483160699230460762074338872323321352723579922272808083600131699445929971263303260869749016331620318337394908657289228014248389814705456888030126189152300743999274168204722126227269866598008731596265345870418327564409710013638749676903646909911556130670623493965962739261123927791061656721314798419986625913608613000151781751585062004461909521951849584680619965748969777845628129870073581170018919220188017572282406686967792697428271679062121527399705669390698744503886910250926482794255419986800738078026983407147543743233944976615979471681060411694368666327898439158243293654512093530836441935552386055739713076803532182550683884504089754338205518882309421932081566718973461982598265217773057220642193979450040167517100750598254738183613269818974723558950748028271836801157758033728263805396695760560150703113682412856788124025147413923485473359053909584358717821986328034063305231138004743933167694875452339170389065550996238732864881804701458517439716710333368484226195484267302168025253700367182470108198421459684643921495387898004755064675317522177521005716565488372657198004580595708531602224093047022720305312567282877184198194372948818340625012742801103919084010935769909121854926007702695015638985511761990527334560788487342092076048191908092870933427565079310919685589213630236059739480372297915490595894791723145676301117621064135154747255671402643076557216753625598309255112494490402754182639707037593203515477197237998804006810695833184824292028771197252249754837176452641163623033584414278332522786261854926868245699734179968646414535395383191020343973709795581303537513195483394022956632705264330732937616290590112159972725209998960659589698447429335577656764859974857470485092192038865318824172489008025120362381541129310679363563726666774626039828595700505538309438982360735615096452715196315282807414452848290034668094840776629296739471800978797514308509011989938769737674242311803459043900256933118838365599521000073038738343187240822658561591099256820675241123764587740234680019451662692617769869427853843645301096854008287389353679164893260284780044663753184420827326513505351807355135789399979819620148447762760984052248413694059689258387987398101295504149758863437052009641047787673418244739680820847278030745314275965143631823022107384899512051754867354035466338908929630557475524276186139851590188294024236703851257374551250248315027113321262493909618357011245630977665834587818545701773131372820781073132223441532143296945449690439415557603135666206409965872414097276264753065240036043668311671423533896686230745025614801723363212439520353048053271167965393476241011692950203828805957398911141655086350454668362153111322256151613638042736872454807182249622630905961951144758252614228593476317949918792451312573320068096254772791582114997870518815015308134786631494978159474093218455644967386354561042754533277630919049853969353594700158057539472019798785374850199060564673964366328079826754136988291071314198326894221669172407504821405245457862133923219404204651920819080121927331787118361748612234451630075092411505828164059431770196224349064006923745777333815174141791702576548126798327779934713067393714805369463735087151727136794440844750834703945101028028835722661613320184969975978767822640968633096605087385478690373940416094702669668698635787056731237928814002589996546169194030586973346860327549312586736666756219333549033574604573058728046181629786033305935272178089599622481979382936672894961266959246228870397641279547610070407777521315321138134424929046138818515183617366158886438687946575982571098054646398752107186336447099728633068512882294117851326826923643351157334637051060936456544122013375590450785951455102040484429120080762013996302770936805737223430509877436579329711907554015086415617499247458489045185356089374811539331488565312179697912657013408124762099603214511392922967586989223990646547570505491162992403819263269436341196917626273761676103178929024169512674080369597599909419615605365076155464974897647225008011547660546863335291549158888958306778348383519268804199049910841411747584011601195464821327313355406007769179640149923234154858933113189554112918269416635520758043788033849313530286329591085888551972288297854552997168862922092884539888848621175132485609822503734805085008157577710574169340405300881485490934005004023019233705398538320092312529240511348204369463004833237438542581777248447714811107291483526314372929511844010251221247544177080884640122889735638462159446056994715261380004585686583761791814056847235009223618869060363937083081756930364071954804996046180799305282080835241628205192658872988987619588046273209927233538557343339107051720207378152637045205201449045684030662380475711831907862329473479400726474276795095097491255874372652477170379522665337532820624170136170544390710787858001295314937688147766134419632594784415269981105688403668523926160065085547352164607684134563311919145695934903015766473294213675575602454574957862214738830678073386040870592454189023983034784489630436010614472906660245486233884563979571347990226886036534109268319013451145665362921184526089492678460266210277160945822910696878177933592638762470419952236011401591987023313416918733176611410565021750212744938346722781473295395917433183994412553567041169547520295086965146352893864173778197079791509421647001371221281518403952491056310610069245262629858723611796227696381946454994864169424223712866745505994093751760034616023057202946679706348074029358648651470170356604140072403703684532551711069251020642472867069849490184038619271964574551357296480021139483939586673331444752681220662088999754021480928902318609472947047318180543030323873281944420496106802574145684289614647729188483328992133452224826031916801555463016475173990026469076224809801756559198044816068757889774972893147892486626160819240934767466383240141407741525669355081707117148921157075280541268643615419241023440300275837218136181038914175945728240080218492816474903499982509061623103117458355491999089363356291564649011637491073519911797755399466553897988803207104779942149218793233677707805527469207453810191655876614182545899108310616034957209935698382467569744182802179710223977621386348873109811443046665180203380981902690358828308115259865693395826116796353052427320239314145425496248966778544512350744148106455301711015965030905007867837080594547637720639123134060326864025629956904473837051145448899555636286223052735134965109544829107829884637421803910754631467299211610312397482610949276605132545625884712045024921105979473641982928439217307369094294812181158018344099820272861478838714031598874205528051061085609003643749790746756687987376154867564650393755612723308319289851113431525404652797506056505214965643543198425155584359223682130645846019041874038416072876923574780436160503675758846980578344885230786828900152127251053897792446111434048190225970924944224153246934293681199556965854023844303691172266069427435866056991305222084504819409625027024788074394676105220152423399680947195448148516122971601213335153624485952672819594245348164033547613460152999594276927882605588383886920418621758120531934507481027645963447585536787743571935516885963928600466842829419278139232663799112392379595237771556080946302362296837365222958911524825732592934055060373730031017097740863901152562676635708192605317007593956320333926270165155168444437603959110143289401037774153292352647235337934588014802122432405110711396038960826080711372847638521046828940955193700212802491410870291582807187431183215458571948106012892690559015064616085829394458043404837646127084051731921242075358986059687646812114477409388710129298723065204629430128267580415966504520224181743274466828773181251275586595719354500841093720036220311148611598189460245138761250018956401623578867717216592691480520664732655486429067127147667094410403306778723674433946124245033227529425395943324583208552726999611077722525898544923345536285754373117331561287963295417799664531391345134547329260402326679251623862737555134893145242017143944409739784133018182292347888850123617320423447241551025381516302280094614743011533046578660807983996474195384238439562692433979337445950593878147427843992377014645434065925676346780255729664940274395757307926482689729760683695359392717275952930959048051301036200763308864941680681784352344812243261547966533775000798801475749213960425071094514358986726106457629882514301689559400002450591575687930192466340684323265900947223496829969313857902028481252560187917259609454916286707650457026737251185025950011762979989201531840481936754941583564668178026516742473056017191958257682372496803797049156343390986310566340544482540858600069608174654337456891353974651626217972489648047416637337564788010343647383451775573880817464647978895233390678297905039126740414538477579666575453745938777826441894652452461072980998867147910967587378085933171334909348718144681809582248202510633260528924183345160392505322763279072434766473014351241651957827617631269488141598628060363885942655351575315817766725808287101805023754507992949268523530272562966000219368779566782586784356237293198598149130783349383635005316833424183615620433269188195370866175104007994454697967718762263531019873860354640688438810393408447377388188246467617554463178386136937130816929451056005019358477682308848377443529356400251895600401320036194382494675240767594059463837737961447135289584386683243517008542042703344443735092182862878518390331275994795248760182465285107450085244473443059567284865215419766340404457138232442861934996543043986194659983725048262800483251511735716305831201663665961878723784844919108629166156973112636180602217197728407286073048001100888616924898696754114527149931586361360827380253529365631668023697054993222029061604116556206809585740454820867248991380305905758361725191431413531438956378465665811935493825745186660302181939412457379461649418039180358331345029836653268521210768906267617542182990111536104666514739567078510813639005770201682724479394608410118901293461960310832347510805267661662355686281523619567043628875319843955418393261792004803653287461795237319603764510240977967173716286915665509338537845876605942946101855551149990588130635959849209317714211724618445713908334415617494178063468040891117068728111797424209659972242161502727736292468006770372332447592270080619839512074712977958138108102913986757622351418366944806247832348713155302481386583101507161749347199584661095124216408925812182030207332565923798498747974059525084133558336904008190548983968851628679363977450560628617885714637089947976286890591977463673863417374274641577409251910871316808599382412499839332276914317079905442599542274138480326433693818980154921292557960126413667605347310218781732161566534201560633889656661656635663595299745606277009061999588994204273284679457818326588179953934607955832152636831437128629968665958448208902415944340905035111748975496545225200552665483090744946031443100585429814168071395817423551183358245333619000628132103915238048125182036202888076321626801190886056201135085554108518729190957369410750129668675840341157213376762477895817757048512665156249469510962012488002275303397863388509125689156419522535036285509503813361680390680560047603514871420538736940172206766983802204597304351661839868862508899219878494251570500464403220276104152424515115345224744999795042725497173442355753519686686298907716041588691188710649199879432295899321521439596105323000386965888791406698386991738923843624372314815545030367609204170131140529998664552949004276339745645396258506823346448582358228285165080044165860503528492249590969579955646817703100182806515692506064162673643075353079936466101275336950739769284805989334938266876094302955681157211515637303599208908700820595193868840977413486967026343026137168015342632051973957932033917937121865993046697453717957715827680049534471067911112804280725155286123429753860826373874417529543647928345810352065763955002943636751969064071390299366609527444035629935722704062476169817834258381679429955106595714370101743781760123666951961495193048479149130235724023108847919066141647257090683702629647005023803424110850828534873446332326013521632451082107578863096584040190679260165784683772706992939568369787676387063254873017504956067264658984480150614971295226442801025869983862632922842893817628862412637405174522611652252437783786049853784322237438934273507346822038912297538789747481020365936167035131600502757339664603978293247762375508561618470927681632172530478876914082686829007921431442713113002442792275003890183621154589779658467702437414050858984065914028174768696894256461659911787870380957884247259909769960432852772538330004265680257566531043140111351862908785576133912030957035403919438217086833702658914005640708698117217246762388808531408200126838004203085308775920259240665557246843142380371287529891163483855187895983493338544584727711020711276113536289515410299949350803478226132385293439106457595853938124187777753941070812104914719140987336462592783145456150682034920297208506218246172251246462001127111056907477519891546930078375347500576749029740698059653270134387130923321053727956065455311248656431014486853285669694320335338423081911585624813063649104738010303221322618943770026424691469666788414959680714500953919944558340146248879128218813211319470607664445993434649546495108504957084844441371528497677328918548375221886210837386740368930340755071398013498764158654290987918053504609643104990018662140488649593030702916646842240713048335594366068638014204823007714372639714485692817137914319006526629408535494292872264724066133424861295392165491509165351993733644958860354707363701305144937744871246030897912924636194397583621779179637785159304855899199826088516098136776468788680286053897341257495174769959663853838829227663549347111774339827808435088475413631508443196828781614041009583169778792847956455848241631636692961836303011515868364732315300990058464202640339793242592999676617827656115537077072086157804872704725659858469883682228648963679361185841432294961077391923633887626589952103349352636249162553439127561761985779006058310021490059862416582482169439852273257676688365774768860734867496156911857041629651775928190902899015660331653826685767011593514393121424966529388053569022151822550879401752428231139444797273349759823195833761482391094942865201785618437053904555565372148181794127759203246202273285059439951960006044984364523567169551282338721218530273359148933282462327190234553391443357340490289216671336274880437865261145373173465656358866761376922742788605968255089985874767973310685153837325251181315482025022484227704182372342657201892702316422020598146229961014113637104597670225690850486702511687737205091088315506060993642749893628793677292534836251297909385704299429143159294327139447388129391699818699952908932380890160313978039207375046756807028729191983753795361699363078552894195900152899019235652438732222374144804010785804276682667085947109918936918654586081899970619070998125644980004224900402654912883320104760501466944217039762808885232901375751475211343502974165303162021063147684530160884511473465581055037111046516333926177396801763010725038833685487160063487266573852325584004570267522339752400633983968683953678936422110191336323291781892642420316788578285946974125588605008604448729370825025070961110081188008750212994252924886085878174710704710013832192828197769764973628714516389960521284852308268167609878699552000132620830901423731985308952579430968287688574108663486397112855359417852673583584543494147213799047947209097431460629271267868610090493281860503579158495191291312002257933256279979543070205842288358916171378885036043611211315396682751877796637836640971501831624356704430574769841290970970794457032558536882742902706430121123873123424978186184537910770893011627639138287291873683377373038871864333828969258523386750820591583697748664532233811563898174938572292155901412924378111316447337410687475101739868755737622269733796919417944937776364983667930577783150254581693121364338831611041561275788673193288453159796819998192784780791298297445522552900496194154461320760227885478379603057652653313932682221943917056759700921150314224785955916191811846743056139672292737639612155399908267925309119950594840289258877125528969983328269054732659942762141305572743374641271198374531010992857605093337406062584908598717389918352309348161037710186294008424158638098519865466391186937644645182645652280375150858286183741647722331280833660550512721826919059153361650031348764245720418292074846469350362195254699798796289138147509222748358253271956259633962012593636530206611441767077098624786227855527921851106302761355396849089235525288356219356467543916914986468330700963307844522515856937293923649246539068575170461479746907362798066326958659479021821217525587334381153526231141679627970765330197845027037930633390715093734155864950235381528198324647309746075148206852847597792456900175181545517490311735396782831382852098379012294000949650901915733889126971145439208227719386153818532506414323886399522711631630508332231125967836487145240094678584298969301605753295804441545209575403866932153933830667727568228044629872108552781710383890967825078404530943395819996200668708692487373553478997316991402170827637517754973751651080137519124404749147195794508315132854875789174732200627112871896393952574797412833452937126193383703916188773162157189631171150714131924944553458552183892518378250767033198931872446797291991533644059349558056320555676663966071354618726224918047710931777985469641458480991332092959228053887061402050370987597797121173432826578123798362233194108260774497948131288064109110427681238111316684040049384994157245756900791392585108369501678824872234421203111636016232948361879904317415082405022054421360677420505211023070336419563486021369279025098216089609348607912272498315619551933587844684648536894657153752947456017499151359517712280580878885298504186422824262786402673773667998713689148808082608401757116868946223946057041163844298208903074179782657265874973248903881245715802869133612780836154001428593245051080307831055492032603519897338110380038510949105469114781601008863227970876491781842239459199251123017112873073363588271354468377267658914385623458135591960961838551193085609482410315821759981105650200841284840719455385490995653631708436134260674405435975288736064710413495790678387936549699587729014435586881621466023948316028982759312802789940245001087525978754645257516751896237863688144969243046877320930155780480713739726174740488869085677912592013937330693137711784138700099793674723159673857729613909699296078593946079230284756934378480558053222144087490004158555567908484022488873037668113556626325150426730339854423774366425430238659274830896386488067452617629842672736131062887775894643425201084020429775894532999171098684604857907393952792481511552926222763813646210985427666657104960693715776715793348427947190656859433017990661615302432867843589625367049800259794841548381465804416948982072633580880558479055198175797445899262953431472943936277687543914433812338337516575579464637714982638148919228315301854106602817800773346258831416359440944308441074974380978895599405934562931539383636357226112454531584062876581955474842536154795138883431010748331921768383094087351854633798296344976118233018761723959912227327916308857301480873799425341437378830731650904530226698761663171281767546753314294513219515896437743345222293239545806802892628563029881210844906793843131399951688643216680540687215224375677183766273051079693357269866406218843890165633752872313197247440646643616314172404207865515724938045687710785255545175394992250203315645519112944102442258983312408692790274092331591495792766590195747692667599569586179758680025081246069608293775868037164873589138081298909654387534968818420795579742931867018786958145914491059755866896138447261263321156205299801150058997856311309751698992373677789320590009628077379425273880770180021738575520892266675526622729150910880462399338229781516041249093183157046642162530341236429956135469813065844414171965715483540688895393249058923147693720031855550070220771434217952502210367060105543575233163727729112337434130843008745164727206265043547512874839135768980699456377044098563112270608181181502952011821102005103050821235351549603161014641599795799526435052749066820699954947955933671932403070039012339126605294718057256253558386961128293122910783357620472272614889686796914777566367152025310000486027255470015241812499184538248318185395097688035304748168340749749771402544641036159667392722433516762568070435809517133006135082943452374342779933521047516717311157173774027380697180766420808028019848192669409629279373957435825838430011015693039614700753548146621524388830820834734543362439023122028390808886888753970353740681670658753056715338269638535707421899018889062123556753646538326446768683069859449540632660008806701121246076528800467164495486211386248223203094325398877059062823140761696486219515261338179485031431928891204948169177139249261863272395847420225235529216386018829128196813607355883838499762440637581020269615453536412076905385842299119880307544442486348972447826099114429701139210298875297464918231677323965165475077819517689512243252453398247485861488513173386114937146598100402940611855103625265214338906288004596757314155343037997997138320095753577804237256711990063005049633267804561777818471607102639670997223574415433453776115609531765450541284015868835422324333903467535532225925064598954097021681543623965537699503556929801978645383447220296397538630896834502032215375977209361370367265278105200333494417928946342020599553028193861680716689895417819406027060425043559920836725512261849822907893852977033070942115443088328368386065091149564294851349818751435565883378636975305905402188959575607863740413418882350147944892812806768367780891356423169417724344223966380852116001958877881998653398604262967598391003974391834685030113409125541605568904493807176826279417518044310929654667965923454899726488402154335231069904670634453352876124736258260640276289353838126015249613373119876504359505550617016023059269055093015081489765326025623580017983154345795089046331390845105026871146998681404513549102464342847070032909192659045056223668145448779851971013130945338173373920813454991951485066619950105211519390330489391392681787809291549757490265086758216405585992221503251425891946066384102790340837937422972691832600508398347746823958098830490134527288201272472619362794741906715351104749360630104758145580150670493650665915634314465077768241446435361147182241631746295157894464147562920570277807847704323277756593143477243675106024004832146621585855319374903746309636345158973156452654805445951698432478872529889682231493750633493384295612235196490575433789629429832219552880363786238966065462544473070461377462570413482315957313281544239756342779847672010195409933103139583870862196041315306744082810492193946883140241189242428061006635216027078735604774437011685330629071765843058671293495041804696781377886379747213411947714298622826324086811591613602676447108291635636271623581491878906683205860944617395659797006592057522370789178770594247955410121030076886874222514995748422588626309802365610507072470910303529673659007717935755579860273632940455647108344804737318128118082282166868048299393163979883100707060095026636625529255407380715217340019202858283416657807714724370815768679742442009722499801557603066851088599894593976295987712164166334745579187209946060494294013641535955544415028902866928129369487133261020815245660659461265325412407577497762120712871536934424478047124773561903917645007701596797903382775759652054074153664743461694040199982486741290403564402163049584330253299105146296888782541701521854607847964671851759728094386934196592454607642990556195538167087703707716744699265350857109459916330824267163123832965423128332929950293957102314605587368677910362418292456220187317798303727876021855279718779294165519995151971891685827969839897605875548030283901567510517214103061531816314846948902730260729396994387963383909120862713231720442020243117079997733436618879235304457663197531247741937862735818583603209343404593531699915547397802087987065789978394332329263349534070105216795899767703086353247041511305794874087293552275774273939820897193551809476671726271417836900735294731877723652924347389211961242964138531414250930765630636509381147711661208049432705392662408163848146055232605174729038307655295745480508870719402211795700314810165445096518914031488047218462364152354513139208046307791753515454852726638677942296137703053974958294874496600721172753326052564423430024131699135003586988861697274125727237861248160322570966195304298162050179719543597577660869660201935232511704542409909412410040984389403515787098067614562039240426393217311221440084204856686823920457827073967727907265864063053111178283442329484789394743969419783831486229810416719284771913553710713673634154041044703855258420768832364033670386774927819617903561631562841757562454778803524046737698992645861443564758267495652483301730553143337764211476752248990906509078727915768361459456908107867126754097093859520834855449751107609052916605433428612897539080817986392878653388702893767510802564909093774595184669091211285955289954817391144766579855329165494855641522738051274982155721637645235532041292366930608285597715383846145600427248837155320892731958810208680126368325121260920877528246914964920172258319632675212266005885757886962622942444350877015018799689995825046343216017127130715945733353770239156145248206546051924809903729324946332782090204922449675198410633908627189411582959387445246081937489900352785280430229910896094645702735778164225272445245248308330647500652300777421002681829681615526490825996751268884848744115823524554599348460568619257641047243695212391229186911297949063701124115706522412921932962363735741829208860301526396974792111020009469249766114938289268154282980182478460215143367056044475943108009887305095385125458186676972941262696489355136533965951399570122855216416450938268344728092429994308938695876772277021713219339499065449119379604483304748114915334692148279049315286585067370881054046799606392394767607718254591850456827586301199518570715284466329249103924491270034650389585046691642977891407676331855480216232113328405866710465413869808758501940250262732647798618443022135515191848359796425313420929065639302414371348456493084257925859110933895614426169137622562961113560592310831283336803328441553042246076876543250586906817016708410555267589546059848836051170797584467804421022143902210632721166746384377890368829068934492243774507433051365777923830169149306679709668729094328109888172591498559837992715764199663583049357053633701308385409354325612816376796451584340184450660533881524832490724790607118609097025256613931048739151412558642694191442137101835344334511344005794906286850245517174712106638830266425976605419617149423984905217189931572299074952893040376841900379272457420378833654602373743308239696771670112005786023646353918616737706981106826545067829487002520294817231691106811123826997750049239873879455200469736926270049019801958110042285668569116512331655743126610106236695459417013715047555598037743264526590199545463584773336905597470538232988829559854315897965044663692117232478208368790033648261586912409737998414145592693348508138715372973203044361962143435209992089301673204146379598853387143229115597174099428402640393763279615478218374092858315527551377852170615897692162099610166283349804410138401568286689783705899627428329260007303680225147634069602606170030866326969417200591657740792282976802574645004324949962484584420804655536559843577943035710441433960085697365778726990218642732211361166422808044986826051680133752704929222203031815205702470588930637340730326245662031298867918466520412363686513165543511788101746214588585598745919320466463300590006360496799483918258668332544963695681503426088259608640300141248435760425235882085793218469235843135917357008374165132378333202640038372057045341872776804082869801017746666147083570388907535189288776431430853249617581025338571041093623134169836148899588273396882744039037819037425892862492255713652747193581415928048065653314854731170518010573097412143231512698390762915649949472120350816541243589275295602745832708889449760127519865729774261248117232414125764744467603762234612902218715661583626675416876500461774705029612115284049741818119063377606166396297085847820024566346731632097034695258880203931908053402930915295368900309454077267576869106045904864877478082867821686339881110667380863195651795366203425253776935665390497915535859235819067515893003919554226307066093321954069935588720985959452287383230546110151182784223954956670208414498995081332614448981835157061023789282494424453452821490712709407232238742447720182746601984969279856982105289116214683467881934697432385170755868353493567690551187191489497550539226961448176534791949419866761861989457282983381624334143133837667259747800566666212474338414949516527682575448122561889521190796773741824970411013029991061870838285734987305624004589673383700608389246168237785060509838273669731993533521699478306000519412187147876625250306843722798091540759618703794821906939921628472352136711557777497204639661239283826774039356016163296563794902668693380518650712532389294819316132682244753502912715866904366870217306380750140096307079202943401122852802227415214664037007976098880508600117589013500384031702576846299312798909127550790199889472205757393519759278936923707717949797197511818906135726600079115577765359417884385597528619139585867349042770483526730731402289874220633495771034213169816178803884421693269040891303373237572591370099860076194366705424512968712962069614842773506454193906495084865768723531646020169626488811701079604589207789374810999964780951523230686607829636058299357250127052523636211013770912760501298579938270732629901257200236857727466008591530213385714276324506582230256032795048421905540205120725741915140120105715716418654083326843111335615984760760442979437049585377381115864692887640210341166131950238256717603036538127450434386349645702847755685077303724731277166344535473027783602831348203585922952085092327312490603621847532674801959972792985295109082425452421389924193506187469604051754994505797036901416511258223506765773318444371200880252109387298212866774060697785961834612480403341260088794060523518261646537939932269641923716297115674286871391168561959189287665053377404295534930010340519939436465387200437442060770120754478313576495942222307221591601978245598910867778448980936125423954253537257179008754360313321838483830617871260461171028173698791602930147411419876262285661939004122709130728307486329237341637183009292893567125402703368701703990435414704604490078951494510178820828502358158709710133104057089355061069173013068571741556043841154545998838941011434002395869420739458072642147065879071710333472985853115532594456159335952085820946127319362204607819784065577261367156907101798648628006332223241830496333668710036971927962714897424467839719090876059342324623565220172090215692216138137867997008721316540238364780498609144698468614223805181499222753774197757018638617767995271029904627554806967088089590932262266194282781232477348377530927506385701280600991617249147842813287858472433797996989696505119923102074654991913378427790645016988512705059474428553147600633892727005102197538366624221606709280417722793629477531098009586663014132603625849676566849667088886047031066123134474451471899497620057837954606182848418237877418184544926972477057762389044160290673009512722282412542662250534633694025468541567042004201450622005724956487772625799301778325210364673486443939283261392073146693309756936586100480587968519588797631349163339996340439992643281470210337549718275148912528853416745538400016851274948973320017645721902669289885995568568288173291070972674231832614883042601483730175570803930326323555200185963137512625413455320296842580682256049927567198831254017222105622192428861003151146339221172557501341881299553562119885878758907232313124844601359434233786043882340967851171659510519932860180407469606421488913157259777237841998992804845668143523270493888138891553286788439486583681929228972219954088747400750429231530328198608001104823963088631937728368628703750634421009743766540659772106138408681323842459170059530036676040154896021658048667311196717844940340133273531993780390371149349529725149010179724959119960689313709786721855621710755777679219919053060496829530323697266259550735715854886719726735054376728076080364169778121362812899391183128709969941311471833827859311040740249154906512273453757463381445789601384760356969742863826155924689584274012059891031290176597918945019841599004938585878786621158347373544303552851392931202906436228728031815489750770463899867422452080766058213173405579824242586866941903241277312192777946719478529079778126057758346938473480108699412118595779961578699956775980199899868271295773781976029658256177722834454740377644841433281593132559030659695336474996625311717171658554865749436492079270736074799861622794255225211077601188436446484464340772957353073129807352871989205466941002203240545942097018975461859940644233488700520389718228044871025576809536087031076852170642740503712853396596423470212273038107150851447958660811876424215637866809542250008676953020476205921187440855744064143134764774176302183312568849197330971654504350059672224324494488180975964302475670885488707091029506882341758932204773837806402454850830979482590475132088381356631268344249137428315977037372955698320001208373108654549200942642631477191378964900416108157212754629117280794270279898255280771415056038839920084649314248033783507904442214572101814621806410382273111103093490610602294884697025130653962821884129834509349213470826895592063047755802402959874282658361366691935969528727963623129380731131818967250067019668582393927359739977751443183551626098324146375978223846027593074472260735497476219367270173587808946697974484295890368888715565163996251212631096679215557344211279152034878563290600946434963390077232643766613058342888195269891317081970392614297197322855118436129623038121883646807147762259436428408438362016751506052577426565494237084732591461365516661780546303202303634552639658148839087220897186974241547378609640646516071683893056668872254995096847479481308438196824397011862994977675538924487766672539838413908776244811388216173181845926033348995707798428265697241169664275399493625588308270787667685846391113147900600211246544900301628709985514233221373736574859998731311855067931467016004174093616255586277431625080124177296337687268402389826626433022030669925768999061172426824749196839928241027318045775304130228797470826555114823688245144437245076577923479122324175164869396752046154701764506312947118321525093617413422820211145636405552470745967870378132428158418001234782912941831181324949247331711885993469789086901029906815792432144851451340534138667325621300455390920466529232281216727819194816686170165822081715612722308336569556828240629903788156250826194065402940463142767692928619379883766324664361852303749740867014523089038356136152576528636282828525855528258993965383091852669610476792721225877984320566192539546303275023326854260109011987739307461360609089092785002152798864341808708050776786992070632925888481655627815392818510863826131224912834501665808592180526371545924342094229172546591508313642906137776584324070507087387079665503304385426369410244899286210291606549157053504739793147034017836824875612099419374670481186677846109338968977229123845439408228141610664524171134300545621579374860782242050221225061493668731104731325177887794169589276873883233147666105561853326431510306032495911707020753789233814181536685153556494843134706659102120398955891477237473009508617214988667833987170660891910221685885381127890836427420051760487146110465932043714200064983381529894161639972556353500052231389232159660409941616019179284363892894595088734744052495951986876379119942683090529745011672585063659564734945696019060145444646715574835799893920060753581435070402610479773117995907447370378505494065266929848160488890927469944109405419353090589181454713388342198728587330357391234200578235955532116698754147774517821337142149621433085268565180654481731313105415264949928111824011673241861992925325220850160952141360120829734144539047529916168562796252038583927693895089583659304443299129747247896193124481526131916553579638809302875530589196913903082938791813806374234496819625345849870199275255006229559568433022227387939976723461546811560808324647765264664562213709761026411563569807630811975416366977593850172902037607730433204731992428792787828434432906685416458754109664892549298331648142575736473619795076926739918167818253727748196669574528094138202830841473646851396687297274867834484376104081270168973573188382104554807838375530855270011724593753423992633878991798645584458388541088229337036573205688128122479926205409786883876194087471979336527686950648190960132159634231828100371225201531910590001478802850585609732375498736470419656237433751917774942556910968627746312061618152880243553073506092983670886966832690323466602278291978850423862585944239335873007457856955061642951577552933746424695537087327653644157812704418964100267461866860842776016676051173639206644547440765757630985055941749567733701686764000700352581796581724361858810899479442449794589944005099759805738390389631441287728042173634322808645164604984011890862148656369063167841510741928207206952081215903591118274006048365939969837760995063173526109935735141580761981208719914414774142096225949425029347729831359653887851450248815942775763524825487875369283245191667100068070920634560195278907773526686038405633285651491832050962705092364448541516573966225629570258416446483277127072282826543686125881428310977426229077214760848810563504070011164798514058564939234163951363358541637500502352521510064774619084397792320275943091380308556790579645286510397773803934192197554887349691975194083475006941727345652049727122684116754549170322450592798824589051193622036163765478435667670926569637866434865852313045560525339843506246223609581198566263916397539760310324816626845056140425056283922756848223844679062881279282920731098736891251427182741320817556363779647612356776884781940520101883360306575569197741520708188005801170437601179693597831971099013077951072761210368331421695523780065813218943249360550160950514104739713050012278677145888648061990977662018003015522779156696637649026530412507704164602346061602713979039832726062583281776778459261663165333512303506416481985273575001009525036094336201302380669726611456474382040500865572599027519682749992611852957849129032266814462417382075661151988986530355939055154247735052029235929173620371301527941658695050576790725028458804620962864753123451574726431875325847516870632279007109697059467768476994798976174923848513082324557252477636708045946081978939128290080912537236096335327441657571734363289193653167024213323407237545810550163696573322351963818929844556004885660891090740450168653832502655373870393225783672416747826458078866376450238627179519800709409912697128780026370250426518161666039479646491434208536012582282494496693317556395118930998845841536049582999185930784696465831284562807879767315306764082809840772862987604565380879584669662088244285518351064168648006087399352358343185727733258015226249816634067480255360047805185932786234335049705729184547672612387398359008005386843402917875167385568384304309080663119648015817626477679604533447450113189581591960563757008349691828217281053205255982001076639521943954665362035320168331607374230071416306912238308261891748668340262144480438741577282756700274295927806136704234148788475703173152519474850833115187415240194428806152614412701703418918879040520730422984609786030006265340560695876984708382484269652555150257367307716749482147442154017244089930501459209844460296761387094733267117165649455656317066145217552718544523332860528641090731472617237455877343181416188491204317468354767156190525994789165959236003844603338846472900317015927933675541942899987661036737074009275632117181693639372453027140171106088095374586129590599788807170105575604954906430897828902783295808421532994929745018239822608181180047302285900324610986216739903226812143805582798977999892823384132407415251430442016094971641471927050349906000933536626580374321851402742368523928774883148730148149045732813115580903419411665954345726403092571525452912857002825497917188594182197675146518626455255443163840677568369386976340341921655945570400582407125841563308293309609491318271369745103332490224890806757294741484342105587056469748676045306290452295798866433710298063114344939518898388231951632019459855613059257451123902881907717384303413197581673030061374342727756421804415971308433195207444751728661679274242418887515644576150185159488665208457045566313219981886347906514575614376081103144339146309103926664505022616882961699428200419114570083917666582638879273770625037812590996519582271187608448514068437464029609658607602137597486325169702164085731403864260761741119153801052849548513800393181439666965261663498429420523086336293856645487793718402948786421349589113912827098006968836953831529673326818814869510294969543514263464607612778833558111000361738714801523454882495310919190529175383944947942776194855011370860861010195623590422083454796565727317995287743755139384029544625743369155824735355039678005430415612908651609125395671675924732569607077586920213270881083169971834667476650840712067398159016695619195213185946096280510389417013709615709736450525185922809838601131938522953628449168783450699922170337735373875581728634636444140416060548476730923934343622285833694737148788897420621928104262124565414203824110985285413856685085794928215887516488706159878681084228042329285330867357514935845323901969984016916390035006429899631803663345793986484369615401605126175367122594652774672560325804194202034490572079428812737440551851774904989850787762751232445221084611695941076724300249748355866002916179760416284641087516174248873614958094299818942766722006427419943076957438297290657862024883291138958366372959390654864552355438530292684941625461274672057313584675919941995190350884799849389056209311136671190715787615844809735859154291796460708445207777892548191147552065573046317897731925282026302268124594589275069051918288127183188566439635270776656195887403627860548774067356177784842878421083037118284131937639418180571460713056099004442715572158534747924798368782213061524335065490259161968229818196248119902647358322790116629436606926087497602675938101998995668095414862870104103837485350375115405890399844160252563749143119372551737256811181182704508307966040932014104894967295210836036219653107836184228405387005084252508319748132865038756123035800878435098228434738449847541055082502347386780073937049364455695269187535065829612969148865367123133250598566589220038218177632984824674516585930254181738263114867484841387634879382027989226652761129864015249995113771466488967460826107699943458694062269490289486709705256295870918518062642989906502652606363847649070670585224676888335770770162790090031581850044685503551922293145277816920182485608959393753925863215224102894662848216455056979155233012202555290673216411025315588391158203342579436091177203133960311391984799879617306916977872037842747963396352107837936068283592667477282149493706306813321154944992184231344063241107303200422640092909728256858967980158182374098754636965469254598019300130362931352229244721195691896301536228608717526412880291248533405591735818916750252022962151400662858561660907284268913006585538008523234679160318424553840756294025668370869602914731410799724362220552682017766740308996315712285598231380637810891837121597327481399715536543627236463669466242787957090442926763688672665875165055375745952166960272759011742694905323166406876761958668149538917129485703803836746051468661704302157181642717553314254623210947729658627812700903117607657151956525376344716256790949506452823335914043643749064551466691614918902685842642386166728189355291431846632859555615371710404640073836033070262298690945641348730676594686121859923541372144702101452953921593193778784969492940936665271543226571661458755762147187166860717042551089458317018283314975692604416922884129430867717291810748276365689455697795411173178633790166841766103269504642949230981778538770116653454310142224785574979887092666065824989414603004667487902336358855801165583864884242041524431161051385998665907399281815400113105881197372660236848345284425521785481576499096776195078831849407420984891364472305895202019321712484403258925135336558172977897266103362698016960694718020270416894197045208701954073678118985933387903768600763579485982905030820123139990115019761461999042559148871973738653678399826083668698859372628228543129186813198714057271062431173383812238197586591604891896314614319803742708932720665709964419361564787993213791670762182236336269065199490746367898405939590630135046004905074462894853031780202595106091512202694799356293245403452055388748406833125481574935083038782703129338963547570520376377566871834551596421523117377923958699780463340073215928089932889547462847728833878378085616818145364598681835264943001641016802351170803893860995368769313382459623901690401239104224140566006811336599805401402059351655591901758591717668009778103226190636293027152515833253919606340586263275038181271416491691843699070818041442306669739486915030090464366321474604192856830125483703663042828786436961507984628158883063421900189121009394255432866143259601592458728560256033609819642105144563627208871402396257290078775818480914276133355885145369205758960164406105018823756737190072967774234019056285298456780592265927204053603503204351975156091690509275123768700375655813363552560142768114979086889590090916205215890999613708320599823932259388629142246197320215002835270220035842524158279806723857762358695969975159652062008303324265475712268512329864999380061385356764433278462768701939256550972070206151325248322736625668902108267985196119343581135945967150830978443412163339748113385300618846925728698722708968296241905323386013491524186285938350953185027816320631633699481467725867278553484415657594227854323057589252177933094338051244557389373188088189585845807727409472489657399627668841004880635586535061395691860747544377369070046950229252440086626099069233983418015889415603553551396045450322339267952519630341852202627012071031626836977335057905220620237354836706339717953068167534441942233674567090357593777174949673011514006863972361874421776134272093638438149567745015013855936521716923330598147302349600158181269240017614798227207424458267928277350278762203933141345619599728016614000182274545542514017577557631938338004600164402780029446021818348306457543976187110630379793279532105108305927246868422567902542847749993596731539405106258575115453826913150695122346499926486151759210238525444783235268100153143983384844144820072570587310349692800720920836352739568071383754474865042983355130681023365963468572235931294469942883495384989507766711366465985917421584247624829853879914384741795210687367023156443051573551443998457661169130644277100999708808418269952379949328768351590410067136555533026796660737202788271335394023048904536926362945961253000190073476069059914052853067760749524079556187600027316097594372551010278171154329110750554546316593609475080563895575486558866974816737708386299654323628498479807876807849543549985696429761478016211375529310228116497105656665537137181387868275731396851316363053145249333709930952436865809337333472121239006561326897122516078011624319535437143424849973385447624738618875047273171927232669229619904196668563089828423885317240007448191128574820768705247051726342336975461436920690066001820394934339433648132441747790090493565493291994853804676563230144547518227264144860543439931114468843301522053739790017829524188828443964832667790606929375776382345427791246845914682660479879796126196357604318460156351981572985477287124621465116764114253377186234489977436429779505989758169753627541836339734338286853747844199195402074474237214333150785990551520439362351877531156283875527295091507112446336319965744340259100859080247228207107544697014446136058140822194619116457418027846531356956261179367701115940334535772744237978457463906307259553612219053598378598192900885096495135661917069426644943502219307817979541818719382712045613981487286290552848148586676839384201237462443681303559254527162753013737944731321544184752618857618983480778748647721167684498585379390289558422288941261412200590623962040315018713326149058745463847019788108814718087262953468492186472987122090077283388344465600931020799390351729981870217260102733011614819032626151519751840989247530270436274072818966382055789450053541392793352423204820653981743122121579232587163908026739862635133896890395615721673993270290797501691957637166069585818915854761264273761535605704015581015821695145584529313659199021025079094498476995316330893343718972855171683226815979728411078319950919352675673910624700760706237712974359489298634835220583015077510092246699275312517588543756576868377731094916231928968868580876595335237832285262818146093527884512539361867637176713906137409557291268989242160906346254879476808782181942821342183495710293515985416343182475173020244960329065330505647120448011233378479210447162424221278199789411064752232427968130618646047681232925545343794206756856712206419535320946696296918798276999694420253667892175567950401665955816012003253102558757821663619350964216412044525086785358472582508479663428873238577070477018585420566476461600087008033605121784340420875472084543105032150694837900836630541950058810933830473964155882898511261424148607078347631574620293618924223940282942091515828313653577437348067270319096920976351526702527870936167821151406052198240975174702026852370632534161169610368756936851358858535064982446808966673951162012224888163431075556249921252453401740911739502172714112332689697000473953752478497047821352985632314283429048056689402158151853102052160805229038797262069002807488193684970432591443965292788834424276362462924023598154144412910665018953289330562959051780358440588994928255103110136817977751432142720415422854259434792925068237581035812278269803640526515106625736990481202883548948933093394839960498175026308225912953542925253333126114688983577085133594413453229685244494773380529820482241793922712809609508773291920096858230694204382292212888047827770366426918268430630420904506515045272765535284821575903035615422056802658319327877191354925887754384660749399467634564613285120363351780042423606269502481562120298771676460663904959750054565683440254798683027151937883286977552799022782103683965243472676270546944061318029778290598189853218933222512303140963470957405047989434400289468931722800163364579672870827228977261299873045480827115864674890758768279266123130298257398928035553356575423307504617900871064590537743129590351386219537755573444219279109694053260907645034370986116744611609583200373822153374051171416126261196028606256963891514075959606403935443638037401230793183452983363324205273674384815017422405085240737509547221381705867301088826706765336169408899646284148574916662513396468702419703756446481796628941834838910973856005087107810748526368300237234415530236001718093546666792858875015810026792356266508324011823338457849755206160013539949755826428309235520596750497425496168449623316969923262930311855276879095861447068441685984828174458051438631953281863840981041960561667891310353137581119273697880652412952808144056786238555745775402244242305598374280872314989728349206175013639733274656739071392166663353521711178932726262434691533514636667025187836716508479746050813856248643841848884502128040488276458978316977127916509505162230096252486388215473962420741310439341276002509665837324106800578859148254610569483131755154781182085514768514396624774237967368652670790676378965718700615794564389125463585070869520054146054699649004628089200485471187269914135004456927604669030291395685009468951508941870959367959165396072052413163344567345829172047345800192932609508404544874953476437000635842946810364381210869898813176520007060176574356145871907918519778747412393730090196207411021487578998548091818320065988322753174759009309743439739274290861247734732182420074076247197493990904186231589074009665956526963081238147881731805195874763422776904856775391972222231494672558157948243624094379496397251800508597416397026199342334985573162052416408210705234474864064347503504686604199119816997606414175375359123461442830483355634798815113872613222302425412109411816611857252279809651162871475949212043209726797731859961746586824951140916856259175077508075420220487462995448742905607144580432351730785961945174175388502728738910113441135457042008776037083040860980437770135524304729320796769555680322865419547956381858142135156904292119675779227598507468924768048195027286043630487051255822508530052666133170216448667441680560570620647208688627979928264112978883851298577039454425962105996915075229040759012670692215367159137830615735505306351775074168412994136885778035573365107390583970494265838150681318092432283268711340736404727861208415367159328579562641431558864204177938740294452720218299526932793685702198904784699055698232954944804615515130654265358153218381359933109961028330086390356261641330698650305989482743094292216125081514377966126252469426200222961243618967370651943699387120283770260391217781553934479859224531139323929046199920127756121069353573161559909568140387541245247837372390816511477541804251483628234571203282822009188307790012375383214654764016859160040256188163446155065970086222603447105147124276091171730764979068609507625232773800409987004980354292052004044389211168910405271930995427038190885656518422009421911978704820444079579101401834810602098549429094026167188158614775861999159266331640519849769458720686699880414978084005607044790138636499899744646529879726492605670819172426650449175653224480874076365016749439990969511520850923387168567909189537761104812591777544204698575931875281347412187429778720174675212659758032312005331470947370827526797230461782170779995179854616929725774571714372632126268179508925685151606480318107281567738835321992638466295511412698996095239767020770743403258165841166476700376467489460589064402621186982430567845978246263482401575467666469963409732501328452646024053579782164399406314269478496195983306397268059944975180052368395857381541295192430696239982621435147608495677106656822341737412630999941556007417142390450017944815410175942836806771765979400183942618579857025894316007852697226518042087123729865218708893545337979521926560889618241586146091378623813777547215085038615537232174910030012229088446755326070761543546651341950998030777286904130376500102933989610872875457272782557618305944838711938790571220094909224090107237077687694301426395016815239594347718178716741891674728348471822475529883645623769592648537020492909461795786831474833704236169426627865905991063028392764305660521013327332926088940117920833728630256145676833165693533501037239745347366702433589870611555095246234958547643680451775491002092275951590468440047166786570875853092410621740286408982703136258480015039523911731312057121419495757481837571129448385003581919139828377184443685334986719041555151646620644862232464110423903795072472427395987982206944000663539390155596940313373406136808931110416436570947727711923137077528475498639801961250402805504697565213183447344902985857892253810999848593162890834578696706808485027582106273334296499503501971423104904476190703567223152940574383140113368453079695664556518455463535531053526259669426762454175655222034385236662462467544908463717478290172296477642237401980105865425514497970285191479608638606794216933050933932496005030324872786219038544069264197831918647087038166142135500762339248161830862885122932473756475038644443929367298235720972460505944393268021424112284614842270030654097560424387333911083905628427201263105070378921197899014487127722833673065673090366045557298479351500883817706252020495676860630256935935306153087753387476818057723844013640994135795684443994655110131957299794952863694316829895640798941651412200870798937049044839555485394366592349660780117636028621013180315573762050225458135908244180370665073591344405072597310068551061724214914255096170404513677961223400573107475888219155578146749664752455554492090836983516403927383945927925402621108047578706784238087178175453641985631829138496508684596867552699798747319980897882663522085487538178840186710035622593729680185982699634838969024581561580926277310721150134017695154298787540751766919207695472121909067199978728261620690928452343180347774898168617805485140536220889912478312736303802036710645839182200401667281985749344498553566981988615443192829043740307738202285490338375014142591040143748834268974034026648264638534427310866909731520869398497770625810963928168638535380660962055613082906876150203254647480772804405570605682818028634374896157031441959913998139415787908542920511953132388088943682981898708629160624138017232227679476134639552858055632319963501048254963040463953555026021664154520100676136238515755839036691963204226055460025852278310557270026718132898057562740467299718597378114242244866559370019667864023657263659587633380360449266184270396498116270762076188089553285105976720808778745487732322167640057389613362685140781288215826570987032987752581260446317817051752717989105841154432200904029864770895508265576642043252064202993130283013546056142490033979710060342419080755881873106601855355178427871241102869818222654975787383493000891009001343018078508354810580956663681765791989770778449725460913212328959245515228544611158928114080954135299201905104347445363647778447239286839446555737853411232165566725486249208440553439825950514393257677207886474886486578887047098056780513219683470940553311908441015127788186556971051336436228022517654794992358714792308203178512293401864643527660041864204844410649744742051798773322755221936953408103460583585466920684173904518913926896053834110296277454622048364109084228421082764606214229840753824593755357572555726047909011385201197437723832301336536422716588356613315908348241772296044661067226911741429454297284423363001339657559885263800048800473539546905889391254263948147515577542626568231582409508023053427009143503898498519223343863943338209406412364636140051520142410533665944956734750684087944628064640350437188589759051634967200544576383771817787308452886479945155961762884867798763479661095828765039509869261444214570094169427765536301797617506977627118488349804176027180624862170566784700932156565857373790206548997072049865024674107704494803311823483669650207018502956582994606444158363282398190298936696716188275404219044840772665857045752138090931807291954588621349335334867169562095475354389420293739745885809449240494268685938667947124701033366097033644259723970014625407913145613789111070388002090008865888369671243451280807877931186399018169507332302903175073802841566403430892596680525583742368028362862524617665580874887265533042313145879666408115435110563866556431599237348327966246162400989915114106734146810196884439567117020759306325006766555710357885619074831572627875439915102395758802224183883859558582886417833423093601413599532146734640599559265600527581644646873728315377164682650570528154162478102462176966090169875821233995810592896808818189391927068864444703916634400521562424868280709671031317774532279193321981919214988397831619906875512758813146869967603134506784079610056150346395291571072882642102181476346765292732052095945005007582290554172944191006431203583979286716090529511354641021582343514704571746282745658626792005580331810488913919711258696182766127880434698026246535447342579035317977176317326152890849087258441093245933517499499164038347509038770471520187518270627670145088343397006728827590032887002383975120742746119546904912779517743471221186578625717365115878982872069634319082108350750988794605242373330459751723854243213402258701208258118089940498779748880394998449314829979829032092603937933630388345641996427830675549953267481145912957311343582704148139119521077655924764933840355577133749975163923008721277051049488701480076671056586985282395074416897839696646361725035965247442384857844290182340826599993117777017556834880825164763809061536745661049737378545271403696034525344403299611012146771173561053203684852439088789444988239828990287491070501249921799044954122069932672304842222551564465877623211691745681068394767131177189104719783877481758111673790879716337015024076050154494062492719665409305365620192499625455378329448315612355916627110653540746328188106299742112136226389055815776288050581023378051754195440651116177290449084472217238450373531812045654152403410278573645588750630983131708200391081883864696751092158875224378582157914249666751373225886623108718692223796789360059020088509167391118135823415536638430431310529876610202707052737668712175766218957056830613144355510418509698987638529763005014047858787922307466736633427233845684313691870409512252959638944553237194667895282531634042011436984349961483078230529902353442706646300691792203789581073507290736449327639278938295514606975254097890121916957954269416935062713958475612678557174630589138686558919745451580411740441074663901684854835428013511044986255204026824222389074110457714278002172930242672687587072685977936562911744018663938816323887725311988137328740000321478953557812982358229842793129391868872640369940420628363121556028314400467972862047874557587095559154334551873995857535183349934674639728624711806388914655628421110522747392725389905855534708221089005946411232841698811152614008841015854340824253336599567578616295962917568539799610824751833589893564542373913934095301323719473188729107249702945482369859250256208806316450594983125065408012528226148832596133533515004761633889949790408553372956471374338792522070660024516860788300940782805659445377958209071660834832642166319709788804215609019754941747028376681666432806586770824582105032845198698387684770212780863132311015459000643289406944632825920006548814558392536224354679116235858221514240055434080828380405638995818544230073388135923693933447759765529964469087035728029309039782750347176721089834066097743636738958549747933419905746205925132347853481772163111967975527738120385755359847910419542175608522296996271563429366994851339061064682397413968504209440447601470298383401249870655080528575001494721979341913751609262686828492310833057203877310829327493719312389688515873831510040552885511772295447285390534079921507230704071191859196802337464391189626420911810090601850023822437536054575445051074430484554360651449135505656376260367179646729249393970897789627874090533300323381955351796630376620547361496550590422024195165938546066230548607867606830572503160053757124884296316699125435483514703081152146549914426773663148597656300160006525384047195141229334752475325678711487853319190801398026704599137785710358608072129768375532269582771955142075286038514257185723236920723998957488549713549554727885533848364671945293986308352589795483499610812866267803210711939742921130153976051786560830028634994062926570422088706728709386416686382299859719204295091220475900650192219519584267239702697667043901458227063393116146781112817571318199235177001702282710933944952195820676715588839905385035708564321415766030545104949197787397730504990799700234085083844305778120082044440765877003398179618880332960920871636773151746585788594914100548800471548155219095177333255766455326350607584565566675288669130465852983369306241978915513002623780488218933883485945496583191261430965493096797848013281331355584686001119916701490362042466952974857354512115301358499841288404882441359736945060520486642154398777686511340047210584197723505743063241528945025057782923553851835156644803938834940237349709364041174440229258667131633364018895089660256134969771012867596894540563311841610225145365988730597418454249620971486633363444028094551829593280326718464261723094519990093357742142849778723926375588857352301616078103009849227071363075605718032910279119605601788153476775271842589227342451249416970912356091900495703692407106278006865102085263669323429219453296423584361481151357998376352097119655720756591628842331538800622697767388016700595627302465037888771959800624534004606548304768518424420371640887772228779537286108795851324521564189076428822463954204036172706463092206176209673071927615535424727715566184833460679266980323767284237801743748500937380493942709569338533978155886624534582306567668122267818910536747737950454193658226432606921429848541368432548378564993708832288388248337501762425960490033029831823147360473083813458692196790683239768119385399768601633888248091921547242851196462575018590246518001445049667012109007568772000460314160222794472428216369483906170789629688960028482888558993210713236092978282196314232966756847039984898466434928926614951755782571694111786669741763254079466883942519533676261346903914588659076184901125293389805438791351679401671703544700374679629898449488036985035711431619937972705387374557362906905358890633702892013719825806498864646294219312415266086969043372973855833439354752390998162802555107691100548215216550324771106885903363175815169308552165803708000989849849660124492255382382507978619351717348731793734817974724840337114276936343264799843771473266476649345188706688876025700599075041503226172155319608121626809814740219818251998953640363832313420169395714913080768547431497065270680259559795690371908069123461053875386628967376004250428900198322103733313906432991045200900516132101761778627536301055575348932696193345204678828756502706499902200118806365974410069187440053891359026894179732122871718333759130754286322291521812040139598373083779355497514671720757522024418144273544718262735044641089525392958041007889195456966311898006352991514149557107550012314950062463745495661360252405893744711151734843204608299041206178048074120610673021065810801723884130456392733375597438872657627791843094099223235517839064377351386828134795681678785268499170898387344218913075038142368722232961130099417498474802218011610933603077270245984489335204672281581656117049385651861809821175122302029282100938047029385819709507579243936571706048645001561987695123372832154227324153411936717631819585643013282501123696664941431501523390420429826121508679204869824438031960855896980940272523039146950923605131360422397298838898805739087523898929028828562255643132400004617295069301673429630227234120950528569786151042306980845759699088095636971343051169274453519344973771340140507668654363943584155002294287687347940721002918458185295722039069153221999112108021250474799867819422150874985302396104547925797006078372275685376420814465888984385219755894670810976834494476008763977716182245385347183704153646304551541411776388581187406710727293273372500125373916198444511610000813870792611268615918235709032474165898458666880002208707680240009485384024105672231798055446540774322399576867952667270403740507812292954616620690907716928726493165302405739251497998326244217232307788547618887543320371244426356764732072939978936557924823583037270252865230107455558307746297543196511684866911252210290229782706577744310663450947963570825611871662444720261573076252289523503010627864374843623691912196597704747894490357530409652550307566962026490442504056197500369217824317038985906296785059975724442907357029704671278968320723926513904908970026348376195785670948937131277913719077294584504775739669300647023166602034192184299801149908274939061978759107527739447032855338957553476016025806461810146502163935882984873692650680178913995213337535534449057358805018512067083177588534560603543063586991833086927975084776100909798786717334493364311671696211867998769118387370789983614908372897842775654717213445165745040065501555665308151704840558181493939098318419849963448781124810347532690318005314467401152432646470330226742832559984207313999879141946238227775131190446391071011350024519265265380649907753666758456946905102303949267402929080695553152102864563923987148776723265490572027088327994003552877104752575845873327473670458375459204861238471657641257885716649120725326941963573265887824077809396340065057073020869162075759290378070239483594153341904440144534277052002648774723470770930085885482900405804971924195829457174999726434390290207355946974960591541881332711174072030088165183468882197455816878310528601469707096645360568923416437346123929689289643261333330538933412313269383413836002114012320496291810871551761687455285669742658851943247889833308735694541526676584451055041621940652558563588758808944626258800543205932637594052739656838439855658072334075021009197454054035939260039858811347188402253423091325659897905368448221205236977215499852441444369935958466938207907114392892118671451464919154475284237833435955164789459018206000096766520044302681703679237990993330592813094782362187751891756463692871137232374421506139460060800018886937499039445861149224820455193946209838265068439346779606961552395111361275224729480535043095433987536329441698990193017262808502738872386606203543297931223672471701328267032025726762360589363474862612754218070385757059044726794692180742608900490092497339527345549991500700539065003447965780183843341567385481409258378293874851585423174543891725733710414411944153775494987916424534079177144266503626317889431557179663839229475503928101576733418168003310876292792828930064348235152466021892384433836743107542222672468787115092949913264917009378412820301019333179465794126112406588725585136088416274628573265602760146929646132737259117911682581993832471993533714290390065793408815416444537150867439962881066610463226692899981957241250363147763285651428606630589693266931934431269102815424693951052063640061628299804810900159430136973688120922088051927276377561904768101041568884427233360314030166625490187549169609027408388078324150321010393440285595501761789967801200640157928047666489662966852704980811193864298930618935137992760058125278732972225299850779732514098399957474313300596617952968402334152500600399881855265093012667455380856903340549458148083101421222564110823453571890781565730936843226182277321073271040623141948353089855027235288889656881604079740463846702484286280920375096499967274491096647125989858348789906125714569247582425265309302569212731973822635836971113204280913514785399269146687851831253113145788380790148233574098753936437669077928611389439230153632558983188062486229489528313463055492070984153894643080141670540707839825787084386247419868265774677647383883213688682941110928452657054118311934388469925371216261284569009167692678753360580306926613121413594668762628825275686044415082057692086575416975162498680188286211280341549517599058968858879823081068640042696836568606115693886736406363040819260991670158242428692230268238045526643078855884882969373775708103908104290140593343130069601069142298093272527698969719089828096404490294438752036185240444042002056302542328901213595946132018592707652917625563239798654555072266931056507859697428396716711414916751276856869482275212475231113810335338388096661451019878629595055860615380706566374953767422406960888616371232241051690327969157884246032602007346702672952286899852711464462583827718463643166535181283221006327210510928447411736582309659136436072096632346755123689893474718854427006328723667316021548985325796149090003022213966514047361663464194593971419663962372054607361559446886066809224296617914583616814732656152683860381797402353189871158101548908022217394097399312407455773345143834494367547980826558979700305639936472285308400194395014008811444460657439144105383895257187139615606915712143506566120195743920209307306287492336729266271165605451423665071292429833721679414828502091722149184043620973559456585467548715745054418430329457308450902418751357332998454392585090802586932374734023382487491865861631671091504274532956348151113074506471603553635114690048395172821391362513414494453369349060951740283531292022038644336910942533516573738736469762515863309342222993009069180778764589679178979020607346170899042773416404025021103698564917301607019419048628172099355874912338001554795532673324561680847912759204821310340796881148511447589039208321967341595071580597506749119137570663840101582251481500377835814426400291636049045385870508423923177956932914787239904776903126901945476606496371262412632493601160463264419129485947220263510100327581100251479128143672164250036138029548235781457727375024410641263416681381479077372421764323740457154086409681820557486197051842289916569904071542332370336718468935566464772141703394779869177779792057426133097267010616863542924721950208698632832361016507900541408959248328982079117588137513132910386774178728140128377543811520965270305446209098012501864803074938270468268510152092043125698763963505259095980929735795344462547976718434035531574248509701861599543847396916338411828126491874439032504285121024534172979186240137801831026870692224666779900450770583076031602593676829576441931764309652839734662674603133396776366430325921659566956301373629097781419225388149694934044731889785941058659164600165268805032870214900922087085860132402369719162006277226519510500414690159473992985767940373978595276127916776869735176909509434655467145568480316869579030705536998460399907977915189308692251306153299272394364891820139520617754448841654283294331595944298110362404349547963124213135968709664942095165558461366899810480537249656056790124635325879712746316184560635308802509615333865216087884917142669285340693830174602773322903842587677755068668645280876121134807933434199533714015031405405954008931366097213870396753658612748839034920291630076792867711310362647082909648793039252805118594096305213216774703830358071680442109672293212423080756576351201184445907347028590273669044962730869129616076218716962647908698180730162541826386119482510738261468951207153705599647296096864667375868149105144651947256501297659369925994291534323986554947904820788284538721926730927402354587454830976734378276167221809265286482490234249131318712097317089054140895888563005054464183481793759737313534673850830018029921649001602112826515113095124705852593231186353551753578642530293884004384608045739945673891480791678328320975645295783287782236187965758477995073834020412163998761948593380305778903387176202216760343062747582311036066340364578810987505001162391147196564997885682307680604113748254504184643458145703611018193208524235804830740899711648402269149561057062653836822449462922608409794553812976338261781480002454423918614667991435551919517835812379044186342037160601625569041429741409840293391947780519998513440888281290426247603360955723563183681012093370500564405532573264936206915967819823360496059869719819657786462068367856522676840819726312169290552083648932259057204901018643333891621242024812728076212901885374587725502267979037980223851240584938965127878882617267951591526818961759374143651863509040838083319978010677176088376649050627174032476789087991724137520066969131964047279397611859384905998656633344480502611944646037115371321472934788746746486156344649685747157614346207884695591967206923870427258540606833253593307488455102086476424896695852453612355996691483729626994032905367307767556037112282659482876044128267834006716060347300891507007064340408163747184382555286880057518689945433009906072253398806080044889197141519701577458848425005337850452635351162300907411601319641624079102517881493832040378162498982175340184554025144113883153947488480791736229440289568498640539946086043781068823167347365978157561595696968926018650269914386806851869375765940918270363239280058863898119824272986516670252049253478041480617956072177941952133511383813830397146988062119508186917752411384065345492834562081078911328737962165146454461687428664325382930279203486794894443053593097788483832253020958517918821486813628287901179806140200718206079689759403071442077108045769882248984568844759091791536567665932441028714186527170484902609424285367310046089667021285721954954188468234722268941415742061332639384214044544770778062294076001527355988028090294583094314531161721959951480191030619686203847543657385457114399611521612425717591544098991915515534686189026126017891569630473705639965108651349193521039559704624618736771467581891222956423511265195368829438679429719235437693446086514633771231421324653580826864263735155464029287834495669580018481202313732532699393428360901567176534131120191756829132825840914546509519511718434826705098535087817295838093961934887709197657888871640961227708479756231515639301415446744597519970411649627721644905356384912257080732559944625901050088567484941361021991155904837068021776847015066552625387311333755473149631799133074871033639499439712023352959039048388739404121385058933882240875613940729811428123743750687744581565771197354841899976236501041170488437323267350653341891538090623417765859439985814260917942170696837956521450608681312648725830618492589201456543454084785568176651132323377473821363107656712369381830944122957831723425196052327804472903166257301103860722164173289177629817471671544870334026264126056587056410910465965771408240363156217989426529131979819241948712321255114074515789825236487385358963115157129926166444205807635439437697018822474683803169822559561865160338080373225710348112356382640117516628534476333968430350449979253668576394108365129745413962714519943951324344756432455048469108780335790935910713285810636433381362070118731738825997875526385619193662958524297884686007163437164215164134008877019760997126939672663427204736428326336740333312775611730391519256398722477644356717779539297199196523091614023799482027826695452036809495473837587017587653984644554670204348774969354493714145302692219584004582194663736953217015653342313294619728563508572115392087675843945500004431285512830874575111977359315572917522076442769859986011678768292713876072703132549962215584668497207399969302121549930229916253507161330866673271812065534990508893469917040666813603898475719411046074525866768780322353555880204869168272041565918874343935133724675610830045350700032886224157071608559233122481597934231766330153246608703348801683042561356773305363913169649371749483545094571486665824086191973895076899493904657786132989744491864517885718681417646726254831463468604036076813334001108795695215919154862872503383768373548986833105501482644208223401251777344986839851993757362477060851504069307710017929247224342716665566187458054409703203126092848163262144764205435508303019041114721884950427281066491503320190447437790392048800431084845871270961484633213877566899307738080191567723921997554628741922367584369606858139799036633167359671430467947930765210793126354012276620187953202118459254096147035773132230586521540179551597416775671553518773632233281018051086017482851611688953348238065742862213498561859410698140530053275986296708995551973957189812905802551230795075738411167821039353550057506893960866818318132392531565728040663020789744952914596479992839974266699231189998072868422806120036036878054270828086763971155110538423254166495544875559142567666643695893675552411336392229754956247015421502471734515344912144159534260588318271983845605751278963053768209877191939626449592454921580322168538078182696291251089875533660276450463063430300766473424660716179822786354022931307357217414703393342147487471512471616428141951265636646575314795064183500490389150946854489693993547294699485691867154173775623372046720876116467992416661175940266384331615181088843069579753353196598604192396853007281283529773195251018636521421677461892979079943217010685010489625803699431062426802850941581310913175034610052150567126868834720770312478565689452930363708807778858037681592198226437575573198050273056915380716251535441976189422011612408953088678379681671029282745657435282861464985041701022953174085611349375374729054956978566727707173009102457512637508357528424656744190215296113311285470739612247465388392594523129334943965417860127176825187968827113565129696944144661712809660555917305695554819165433799946534827518986164147644891903630401200442023334895944706895293546558361228668157899532873629016750656957131634406923968491162803107854545646154880107498106918084112531701649376026949992657707484800681464748492764748772724465587177308432600064356455144696754609071942878398126093706619121207179420862480157436667323964565409982089807071747568892770915151238797681702980817113429084159765249588765383306774253380160899903224113457915755154179412753104457130263895131034028621736877503906480984434260340152463746187235184934201788476342988276809587530078335160720637584175841611624165813848445412754833836272241680198120871814238915865429824108777144364770214236494517312925179330003387122181567935947446111066873390200121333352925609828481176916823542999937591905043759528674208899899712826318855353599027910023161218197042423115829170011803716457940261298245213694724518447768960178315486384685726058481499032468328226493752613283556019941437005546791107804245911594109388145086646274157488139586218198912409069204355951953853385029491091203693379051467573074405166917784988123287193530771656470385189921089872971329980382163378026761681238644677701765748973893930129018366478714777939990818200971172799894617351275668852847775053332884131749146497434450543301307791525234081531012477412098366336179228653095446785369047818742202553952942572464167607566472677161192617195440680350320079059679462593208431091670049208060173550131556489265543265315366837325366425432278543634406693124182970990259754541180975291659382118240077458804470010354649650452359986032827905149171423326649391342514350784497151601833916112042759091437926197637980965919290524661845096517779792319804207901316646697851563673179319056619522319262512575423120706062324376381669042768785799635938950864752954555556110790443480728295173290026847104509000874055698697894703653281765393618151898238167069366433744879035939748011354922104854700931397358180123928370786545954749872213309027402918492395339408106260808534583232316203651232550838534286413459214596156526343303022363835383355139920463923766511590703707820877202357694732073003023759430985361179899296389800785183312961400658757196180263722971143059266409213777727225667346812401200002856158786647648590167353365723902037525948687219944763013445992611155161659068603296623283290858069539897639718756085518191023579583924125578385913053766397575482144832387628155018013392623383070106424382938287261910220440818342658803738658197000657687509733819450440394732836205502088174584123438838813844200977713248750615576946516213735159457387969137704819229339681410881667419189778662493939983008997859702185008511707581342707664397943369419795904217938185190002819107807844955006933034458322670146323456434031796719707637908683972047718118533256002578676265658989207722258542634346835061120689770472843172436591265516037926855102749974288561508148456999206043487180080528872178988132927230574964108208496698547171829548059553635193141346747418912797866059091312049819890867939131326049627484062795495058516796491241105685122510643170653618842329547071226060761296747592097817756897589668548898064015685655695492016127204731171510637240911784996755456566081515828851306034095292094841323542236705206486774272902715305351883801269727384200071827416010402264646143817479627262416840854002187069166932628627147206639854140746455347467922354308938126506596476140284504894420368888725781360953161938026236913024183769658700451495756118152833517044343511957602579421626048905086064585397395796916325065993149759476217173304956777865350550799179298197049484114345303931695303616805141668617836888037974810131859542659022666169154471197863580662763648697041385834361644353020593744797485151703095160045375333304043403839514374741242976507471262922479280452448587345866191802573137728248110115017918307846489307019788067693964986886488654529399054354666449473707125964489475653943199635806623112182882731222685999122199842070091636398882379725410668355284728698992207967687542348615755061593530281436382157994563739020426575844624245363530642510182062437032393973041755260540236504638660662863643638232337384930388514821116223390061850530473523236564090069883544658921091300867317387064650051256446073439244186438615707540394119362329944175944090972890386081139067355271195401304889869308041013910180880583596388433428630201152042832034517632041597416262912842917500054576457744688963679563457627530303600211030236178912501187031910987883087942761113895824975021303866229861076108249999547642630508307304693705780029504496498431771135844492446491171190082547508055967436991663878326113984448370143579463197997460482136470091308404749430108682736148976775899134244049161706768250531153500628214145629711396322087379961613345234833228030250741808236097480683910712848358717112346569230451794484164383110581157061657535535790537445533792050318357932008352681604940680528664322584112720587780389420385365029330285643206596086055741603761360629649145226684617373190756349512656365943477814456679799836783537104381689280509304767946426336091563331125118618900058980755522370139957899692746213754866907809301740998756275614495825234320140173402501819559597640448591051821012470848605839564598233532241550028852001742555574205745357543307849027553926040713085111193329899261024395412899864630903874028770855644033357987991431299054228163911251545342758482931083496723736837005680255338341038491978581977884030196304216836285403946983422784376149309909184990476878545764573810566809836818253778303181836964599108387998932309805561218302504316534734702854413532824061583327173601078690339242994689245730580903444606107792861379792137900073039188918447544501653057923777339364615201630346868871190082274258822639632397641618325248647426190320871281264104091637915010762770583094563797669603386058847810395288891262754087819619352795615243098327656740045982662505156082270263475320531403352664968241182846199805020182633992252296400441511702020553691720792160625670738055203881363854642584455601688146434592607031258498697502152637461528108401809729816788297113617644309958766109723055635481563055652439373951559765662080227253824033590118192931562408531385418488899362610992631248147857747269728072733235445844561733908391676742112482485247184511884031141322360471772498332188713279011942309587160088901658138901917188286764011328325359974090173629942076757431754695793644793105890465168147336628625235138403429681429888451854427738517169144677831323553984746008892571593893705447425587274816956322343541509025302038507608469706973356166076011556600941806335073893211988250638293369260577435460539279617782082580055629627882285177169721219642740292245726171265821031082575029171143119145603704985464823072880313763760361770866487399804954968338624824890888409693136995939117424840478288246193723133525284333891054764370191002536708020300373915616440031460051885703417282154849309104948819190962929937750896268636709354108142473321319402353201479030018095553768941559263968954049889339026877999497484863867172399388954648424986548885695371300130316123483675098518864117585250484934377902004091649937601622504474937303725569677123491477531527608726937362987185184841254954048210606922288183842280666477583635167374203456719406923331834907774439284702685657783139163672711924689731441067422766302823395741032517006911101943834323242951907229664031671320155133455390420267646950855791137480765194934125509448487978720592586049190802973991231075930186326704382541688482873197301987847736777905942953070644605620364323407366189776211527661504816733127309457986467371258706336548297296467028132448781519486971419060275607080955052073190294319792405462782650058585080377776415524838084840015936942185452498809396743694003973503875052262249016869342381800966735933359842519936752004064836214578097740596880185112935691385019904369488810773513660073685319755871702283638481711005514442920999345561280588737376496386528602051578764778012594634903735014387779686864050804719663598730884577137000624519548241672495938399537182876396415494343450414750391927639858426196353973248746727548926376070187102432606435111513538753509203019555633451477553448901290788915491295821358254945762412136501658987044670694650853483198264717336617199194114254691627393387118259677442935686947295320551398313457444036260377942242238185010568675150664718003499527397068859528495786487508726624904896588162761826593560531974833298896971617229885496283764237413638650846012216118056637801211032205306441787553018430049625836200840242324623305609152946980726796516014073268940320313992905066514235049801954098426882601237951707532476381021176516043699118375854017128206547208817345075045463582962582831727289121627596379470182306655076016991944052822434436892712024190021452983357858403337858151369795442484061295326687934372925787625451455441489387796629586938027657624952163176969467473325511944546619134623740740022754067247136905245712853642748601819432579182157565723161463613566203527308480828791232500471328177067107976099684748254280403302067959081067782474920085747436619693701299540060573665127463035228515924736367847429774785525643312747612681993906818500872959089407942803256856724857664998635394570755258013441176469814061727559995252114635032090455103931841274035831350576940830995931854564557737768708492011880771443766014040953260076310680521789864155922985800533831557655966666608343725214499480082663945470214306374275703283677668886857202441570912267740439016249606564368080697574111519697013958866362782379209865083341054094278935579956955278485650236591655973277074545865404404234682057057570291124768637309367726345638415039428415398954358220473360587551520794269580062323427399602474543783379501453357373573982383225614333303012112690521999239435019984209309074147270804524246928579842624097521257280329683644813303279696733624485022365223179907425429099338508681015837376405444973053907864733520196029122525719013604895465388348670591463299750663745276659643192518300561293869544118706330945576680260451451359217019145304753971441664786395746987416053744987071887479679425757050899621070194913969619752502402311841878920271048412776907915980843787107387034917144921390530911393055655513432632718416813479416600172475198290838274071663356651316896588607059810681394734650075932775324390888419490669789256340700973374308582002319501460655485984966143275772825922331879004456044069659492386162526647334792275648715283844368991713134672471994355175473077846083139006899260770879353836281414404249711109269579837055517171330378413292019968113636052541032380018978586337032004403463560951216610561205528281972148440011799556909804917968904433719665578924213226736180237466969145085088853245469963280910626760785901495243973452647894948387784726579099470426445886677113049605354976180291910972233252024456809427185981771309835066903566978667201448165740504649626755425171396962312473953382173601693285894774530139471063825234693942419499463912166788329958259224244635998054037314239015855903505585011430252341006451692371126905509354678506169351705511922673666432901202841361627332133345328293622679877746966836215417775935788707569095155460473290536650175514082266001354548974871490378575245273169457372429629991018858400132689564727935211295501258295335352597021508897107737468190697618752038965275747641904511521084366315357686696435736393916292428648804776788778693498917583677920273476408316709831682566476083806908048231096599154801517273341150222656364704265454426405911187114130137299888525756828726509265733134616318043037308968072133541554777104025748472866195049928722437700033888292560700839189175218919852539591948037784177687156439655849918542098776576173441984830973775557980444304492942307735846748925211159209590825854736942749472078396558602331104974193936535605283068653072885074670562998508042844545951059065905109218242545048971675514730947163705757706771889314655145283804827724780875065867278759599841440725452122697197248292354951819727230766339752744681744679354757174529847483823318908872309283106398226136237259248649330910349143566359297829467338553663969713216240284684717186071826597760693879267685682818411508110299332031320318682033588333962461571486756112611171075903842996654329527650308753453627848873835023818861314735875151761982905253250015572192675517594315557095523145191874671051656065794786230896493621328282555250145553258587619621043100436847582631424978142764114708740796768700517307702302530793092071828834885398608646990730736832983398500720586418069793905431361576001787600480748159605632516582410810768172169779891764757726761687316191449246874551772318821752858107515244121702796615535830384861082963705086866326798456466185851776160464117569551521594692780646195680599346683235168756154515873005426702233835992739024744728673578859893929615692960803139166463752857460091975560877230524597713300947392388425275058165766132726224575283610790639980284374547087482119770568909479283918873301636073153088659996140963789628949478866280531769240118816132853796613942919894552917005792270122265920338443849756174903876200699810244925473382666213333744927768495105785989936880216296423952689111887125466113857691707517126061998894583025458161509051251687444744256687466779013219396558873038588136101361380055601191616919147081986032628482942664536077902675058879049280046833854956224892522611076465652361706721643371918463620755737015099284471421463297307332304428552133136703130699538343132874599382958137678718151773280317683756077004991346972470869698583179994263677572406513785371556447495459690343827562444831413764147006496737904885560280383604806526341900152402536468033994233005389198959294302687081920126827278168084203962519353889557649655850794826881430179529806437853868018032161816686693542819705682600765416567571112355977819348713724699418347257262652102327136656743083879399155979267003486317473667603174600880356457641829990201815277732465788968866569194370180269686964519154882558163723377808822654673329547455646925296498308677127497025565748340953202245951379104561186459966382194048563732683389291557229883622043131083508127399732965521900960258830018957382950079827714172745591409314740358486948431831271178504897518500011998372485503947407913922450953591424630017023640526412645344896348672702536239792783928678439403249850718310826230361766643210579583025550782618925172968116286405719946667229725621815534026013187910475253948538780387017814938915093370967100047449563164923527990359879476356063579647942204677576199774318963334123253287166446715550505129576408378673143720241925956164008538994530560207315173758490224925856224888257375905355662816162468399138567540309633533054587707502995642873317337545197224532042259553438337209129384369781430507470711596314570868504586501575236742521911116392221371817988821700985092476646803861608980230616936326104685629702757688124494586586301839774068128288527696444937949035577314101346960172005751998191397461796882084771501812849807771367407265495851818808932200265574614841145981494264638316108690209100087794137261448501252384813649026864871292558578892168723890127843440188834763590083361350768768329640582196046811475726327407406437057864454039315689750090336863955884130790087556845851933993831550215401941335348942184304335525426893238065586520964343684860812753457319140192771193607751082098254283005318671920016106782579755300693088780330707828718752795591756366269386769843322612976235168366319447514884143464756213458030540330519086057620400620784849053205207863441276379329302291621997714261077039127449565596364007321054811713345653704470505216397911015321888026829861561411641908260001644378333800259964107733840456028015350397699779730660236998542607847157511027333944824063511155304518690331121665040205299087397781242066118455762381909241435045059957351229346274378544895409393273193908475347559662755227822435639789851826977284681644257923612547756694006249583510526374373048343155168003003858119773213056518978381643975577299070273968138385111094507621764774029203207392982748433216579800734609286789122739313657978215008767347425344660661111317723725884505344424217413385632575793276322510834043183266474246989143699514773087192789494641866591559576009082556768637966636089854027813442512229687000655995675270045736401888982522965474490402319671187435947427424436558226695849997973563681577642764781903506312945203932480641504412742132637245493002876206516068486758975181853032579321682004663658515535271765143500235286695150613839924453031697301207046124340735706241627396792280890436083334939127364318520380280633371776564201797757344469534127316875498486913147577152520184102387244557263678384490587201654909903774450476628635696140852974627088988968630054019418091616231928438798851257603950563526752176402850367947004413542665018200100898732453724458960241096510502265545926959533548670050815686403577110849378126329968840245818769967140981857412835103407387952259567658848493814269737378903376198732027923096239560616618063297437984327147911502623874355390593614238673494533130735390843443313076467853615405537618595609678366035417818329040866117648490545370072959400278467666443265697923178220912981612133296062703878785922587363154041896048632185857481938877719797671585689132737643411013621895224229139984415016858256377471105783834837110214784759903637421355399644137029575687286310586599515775209044231074416334312273113160532407672381727306321501111272154019056325918299874229519466938664395368851635693917139589047865717196531463962152196716069033103705518513753836414993778869423364714260622596755122714216870880196155122323032696208451056955365151614290062841896872230890834231514492185035763511080318146831178572197859835194467448411445088651891012751188309765241821612478158301461613754026193467459470529495435986834383108451672940255207190035726706329527561536168437878427213415961661006858785272785184839231892634483254599801422310809157857829650725811627557152433841211841724446054300778027560936070106974763605801055529912589431387721744619281637017999019995994200116000168070803487783225458814509256842475114243619821026954179643077273747655984072693011358494936896814553019088685238426614071713920182421219076083255990899115857888201092744838765660051556976723521546722171883980518878674831156511236174835844607613173008350018863071854535675991748120755927171974969256787315397285893415648200065827406703783782528617910293380972739994724127045593211257271194010010921887578317782725046234070742640574060026315006344958525763350161715667773138798019329304344651788712449544588951866213521173056353724352018491602960803129885842278958360944474499158598184828952090083894111653689918470899999257332050882403351020562349763049781061975921265175320159897105945978198852165555361356282494362567742459043164135909088524961909015485174962717803342938565910028714073448263871174665002193143633566124667376675079866960906032817233786232174766491070580691015546642244984026388215214502959439331349687558799790113393285574671412751290626409886258279692033107696931980876947135511124072687102135631863436253212607696593057739383974151428200184421928650753198805065523267242272132164044209229772564834010990689643921952339644488058033929662074020746144692343081600875626934023217758961330730349684396715603772202393343814813925134394829681972180627040519801531026178852709135560583848614673474280149388965387703917336960110599826480457817695549160369899088661321587153286943863878942980990100102629785082834479357984800803362911273885260812175239037517061268796207446372894446743802459398253842537678273061855103974215069809357295246591517359319997925367263552191418678539798884819200269237865382483143437065895356923619032056452211450772816431576155322169688844654201873115239819687154378321608973145572102255359670611535124732765326942804947857452716564882378052783544416619995660260695559218327620441491425809445713815466113211311614340385250305294625678814693390584884896590139221849655384127098843731594766751306352767550385633728561488341084417450535185107242974198715699041611409975391707558183981415652298437026562535129499365771605791704005945116212345309238293387227637017789928743635123902892681638588756590380329856945638641957762131673248783847502802692153575311607365857678357004553622266741406104482119793459529412905102113691448660010321390415727039052251213888655028141121189482104115479473213757327771841377480396082588800827222561700192521530448602232450017991985955947206221991040751066007412189758691725619326737604149418452482926960321165215649561425053759297261971347895583144344887479823746500838161885537263317980166385451844225350757685482513471460074770311233592354660002987196521392222871155152580789456119306049981092187504397071367272706964342602119058894174269552914243703147412083697556028462171288503806901276174198399756793925441560716006677391530522349916979246777105256982545575849646773907268960216080079823041183119388904039158458633251364748806366187395179845272893526724113354075754449116184617610123891233315443066082022492185458260937362746905138864979830837190366837400715092476796680180566244790059959412010000806997836757869898165175663193220308827450866056783009327037550342184294625659419536292424123098055978978475050551980657733110308408435262149176350152021737992318520185043051918507927472138550507147725318737598518051305940213217694337797996269005436504418926070004623734972051718070590124167215512868873221510008582324876175839202368148950592419395104700117758575975538990682285827989847717975431572855876569593051044303747449844708734978022430257032144348664441475803705322403452297883912675371335092029038627245512091690462612937737786556964258769813705762199593052909002208045356398100613620201457350432395862544195569621084896538707540855715785260742829881965732993005748194609784426739389284069379269717026303748545807166795606162058807559529065994340578695598927152740006038726658943623799713879920607372945208166812513179810383440653751395734539415503167597227058615551061250222811944173297279537684800444107051304576596959022786944076993543100565295394045830520404211953525386772367698044891125288467364863287180020299284619637389819145162410244213435452178512362510187077343774724680280181836637838841917687468773073213208128560845353006993729185426964072529524274255416691090198752139514746364614326319095594404659502163573676398852177296219951360260052474326811335078550481063876140790578316048186820785346070456213742772677220543913063600159926987569214810014557720557051146413040877121939712257252019562974402471214992780137950736687118971859323077639575462624503484981762850889749251924769196678737923878893539031797054593516973975725951439053838160948253100183349033223921051469881383629596259729999654679692590776671393356844894503766064861055402027820480301916569874321410942392651366025472754607683682738367400726705483636845144366828710513970457084357741163683864439835983520366323948847365153218307265712531639106121064026653687142560524817930303119214884025127708461340314391218974727928929276509821092365640553143232033343960288894654397216680702361866636682191589746826573545617144572999965829787518742240520752828480984250479350698025615256877844651997301865539782956568236828116621564996178646921461729000432233591659155055595868248148572002813981652689919437510915056085500250069941691304887950960632974466684614892632915024767323492648663079569107689644749640929067478140114753774254851515989627469477445086336106477207827262204792604709234734300386214119340085577541040791886228258912783660773837881885602554010682237065997562126393245052454806532596158930645170260543855990993354059258304481506342879711288765328684919344067690046390556049501931043533176143866058317554932897662893778937749701059663307488567886890909334055000141050022087317003352330369033888196407674375298385487501805198294426008261004470390285678048115833798937747700946920580029681144170849880699830631666840268641368986736968978318618451171333378627702019558788936030087795448136156027666420130566505451710078007582600510378831894018386926305655875453412092594096374985387459398193523265799640883004215359074173867858430291274172174044776798651607067832273626607011723095179214477742365429544440075685058615011807396911734457604667432970794580405046665614343047730180277995078673862154049620938457690191828243056760792044074647004442210592700223342490749137349993769183233009521675772315267494311636604444392718061041388579825043015073826299342774370970490129051268965170231490080373730040874245490404810547676415147001293945523590575599272888503531721048729916158548041856487880263946497010661924574283447094475528853056573338580082342634935013189113800781323402542256959028899072272739531514279948042962198555789213246005374228183788418009811793466925902138665989407963540011729192500492242101750289301853133412433921526557589925103142169868319017169395960117424571292155257676037123218140072033090860272275046556015057463029600534885101484687452743116057845413458215665404008597123711361004424050707095426826294506008912363458964246694355983916190081397247270955974771299827418437635394920187592159262024257449039991514732575111487988780179001968470603907483101679034639841333623658139902457967310959071388548097478759709107385390532852213075752395866103738465966840709784511542622408708029895750267090999436909520660674986879266909659555178226253195781762386157534006657791047786757352853789504887531855772951324700163017908971265323026330268044294305980845499809077731394864273496121940264396090298472426551233050423691798220261676664201213798502777879578600554255938136389485986072272765171208379087075399600163199177129195979508644704069353677022131202726428466642771050253589784585330049490744355265868469940584301518221575047088099316462572360764332859415935030784025331331727264915576662536886195670403434275123966901741177876427645154198670510022968676458647293737583653631255664662122144671693136538348221436692816864287047979422900958576158469774834478771250714925828979494799579216767685955815049014315576336467778548571404392386057225399729901097198889003416447173078948641381128906055333260219544604024412242071251095620293402237403499904578772847668189722492910168404639456487471814072675874727050743524532087530772177866017484993667443803289464255869536623194654310730176490629318779649329896480374856066340844908151345888871085061012302638387374405430133873174630708529722411626122152093708541923266330875952560489501362560515906696143909297741918252693281585588211560592531758964753191194025810991190892540269423015089448947041529783545551040197317659098072465906226968863101867812470275893089462746328356880632511402703547278498366173300455334088258049572739694619553713099105703861072040818953902640844421282354312052382694580025449569593101924115930786449867893922969069353435412647069995800807027924337893833237929092208867131923688555839161765435971188049002751915020285453494363311838397772611961046825597661462117547391152938829013437619380467033947588576734125454119186628139050862780769061202997571536841046696325634724463747801253711232501104149387790346794426593725225015502967275021847383766795576928859851773162381384412200229375800073834973820632484545481785960430287228108299253464794467643673393161186761989186840776343400956388317498173503827417065474505666827889981161215317676839917326799436042449906642106629445130899548620420934142940877869070633139826688164432409259526121302387245129929108082366957542192213892703621226782971315163098440826366088002416190956410241261643262538378847094338540656991446915835154860139294097552627408137548315671492039767556730466441070057191872848732959062752999091872334419691339341220780921099844031423176659627535521008703652787482808534528665436112635438675443824668229603471169380448777007205473947041166087824785948643835590625761816274019535011602537887007605607208228043070386048824814326861253097690178116275610565481740099068765172328838692969410316418352916046304184281519432456356905863960735944270347828051381291153989936478870912896546260161862568185823935970655890137820286038338788895540760097707536652778186851963807362281404487966532974988158609960422864157711704551016200041738188053864860993880237835128209777671759817390063387556602347940670810468201890254264619993939426149098248983044627242367199286440278625507709823940121352685793837851092620734678578038409409541977852799762303434919377048150155350786479442000965651254219290369538061056549156211178942552216789806794147217830291562802125437337515296048386393788082597892466589330699201011132183896506325647790627588655489977594262587866941069885553685327761728535546660823490077269486666510950526103384550567658045604041584240439391895555318714020784579906674553766388606359630056634932985973941986648804001327183857272963870841589667884814337720728712472736775971697905593611001027175252756661088142114102436815821429589761341766273103297416014726758077094648601399140010627027931086741472234383639173537280829124932973344338802319330396408307796203221346521393554648763825206373221416499136552480701198024808815375876500089973634093645880481699630947956009263440010967440223104201048634830858583958459429712188400504879253456854831892072889482834868905293741697935268199133951265657077729006774484098722441327292855365490197203097333961869443231886614901731898788631995138328167887481321646293461405553274592596969099146341828636387533220244084304984863598063547075147967980624641017214198967459229038645203186455792270691894935153981584265872985704505287409266158917975060360977916761451524061026443250043152115024076376082462094694219197942598895361751389801616196012030962619678243149698963985007897869662172125296959887026374430354564241562980940289749506688819796695419616527604420751521643646105430609283711710271792632265742036514295910785577570310191820088022387787388737634700629186360109039123121378344672738330263872122779869017965694350410555027135919187457949243198124571632802685321641775525009890097649053382783805443754398093763369454769616042471782761077508757164318641107298110193478546933529252918695123305584703855375396491724124803337232338295857023490418244426813235734432275596135858893450601214050581664658871158529924629962376666224618165229491042507404720844378945702152704347941166498896350124960785641950335190896206615085358594981746302042059657786293110553838899424412499686445257047901010021247064483692422943724371307787382462653768198591995236790161865407482453641355712323261340413219165258715497780300212584242144947716816492854513642325890412860547984031755977791309948331636884667265891209356957699204796416094619322403870293048007006434348934314396652087529672628444891692398045752178163201488614901451815277509335690092625600892874317492362038921479301918746693394899573540891512665375920711649598427087044556532252743449691092120631358504505933307152392762238696019705893807847756872149984701760883570199123093858169316671785630021532476540353672020222044710137471613064508333284873603221821617510226955767915893151816436378700283783770897354409248324903647481112321512178350842121968507315531077987227198404494544292299330210824788483590874451092417742457785420957486234961022070604664880705036955008494535949209223873570950851036890682106478448223679179408404604968990450696179046528181768634115770161692871925901368615779227830149974786477303610979063149342252475706720131302790545748523740166971850273767590739854939385460144450986819931504005468262628800488177310003119050788297648149494815700495108561293408235729773246128377567091900616827905414648324886430259821269135832149949517626967156453776960440156219724954311855272319518246990005477863413546620637730865677747715737191660051309581244045555226109645288946863141024247180604234032022169669667092299056560576087644941158653044266008690058642547541852051568013253835547592217240026003315709449644522204003578665312935511281667891006670390594513088179856584298641944401433262679966764270351963905065901832749695005422005106342626035091027576264189103001683373175560624896035556408214034107641130262936107818546359196994643522870646867503474743402272305280331860876420642608112235623534166719366408933240115650547858482956476230604216199413821011728672923457921783723515416709473709007093998085713642092084979449883426395750554600030264771756257883448150056760451045259451350029825479796594079007359876130770550763021768662631307748403251540487361376593793148508207802346434986642240872630956439847736251595584632943665196669545532871957381195188092754679459697514081834342686649119285921209997027688167030519816610274832276001599048337589907967549559564793009440040554955177743113411763413897915906110721860673378111693230974106070953962654409065090905914850804800341494354853494225041238041880481900818386186798185522714125656479916336958713780987996325796234693442813425251815081027392827520572699457597930540038712606156937272454581566433594064887889867137493066311500450367881327756298657550573085782297204284348407139976953246116716822585657206553329083728572869186354942697326259701435954076367372198048259773437605055504590686638179372320766545182815149725710341255118720764845910499362007256303266398779095792149252702979337928977294280056044067159495007725820973234083532019212708621918580293549811397509063474035512592532687415168107789433048258873683001185628759628796495703959363959757886301047847082422582236927061560559558769730966249629143850758240120920135822868224607498792043842454174241471901493837799071764465724023087131815171340493642763573192918176790026260917799186806776523076289615195434380413244686324815646292901248683984665998040506505100603077619413111923323206776251436106816297506007254375455628966919121601245254406059655092448223692372137609853680189159716684310843512613624212707999274833528739180565170623503446814927827550544564225532807029236669559097671846605003539829098638987227701035581375472299889185550111464652794604126603476721012270909790098744328463041562055915915147515376362160832850615834163723709310739261856321281847501749752432758868726672114495994310082310461613173443340709906676444216124082689461402261601834689164172182460357118243786810851632837143634106567818647951435199372392569002469395566785058211581127760351901904168973843929673103320699776528113638225074926051580108767430659151852918800414999751586222352482017132191455591563423558251159297817046845408960110762355403009598864407210512565701577510423220531951489567198762663981212309438376765977374042608008071578642542598878040171037352003278082480234554142029196735002666020665761549068114375329239069920205891050545913280670016316118481169648471537168484252040025178331331239655727619597257971108970782557945196409716485210137691651059387221639088231138138159564898810532447880556174687267027670002263008972189469874572479050511586999280068402092411598064716721202413381799631191085796851925257009895230972854766911260509667518920798785728644880795048686712417269478305903939118486581597137870690996044796444327041294217213496185238228017856807454506518869252668439197019220718981729288918171980900006978006629857654673310543226025115241965978262566870856246622061182556079833510179092740066010306552684669200574414241151385059529938301886727516491802140273562010758951789748426272251480065846180323919768135906718020407947070142559161019216622603263969757034900273316346333024339142952871186503690615554656520869772196598444136960578817068027738030535798406507534964050676265238207513926114388934288227723349093537713760822463569545148839356425856097033725683085872239206003296293809001835375675953748577397688756672103862564082252272517127685057541342177158869785774624154942072632965640937827358879995950077868377818178030815395328653019245726388775640498999540912521793379677141132765368219934718641956949591994368283383526551485138797202506583116520995819571335409678459321305635665178664892611010391296028279684366129905728977956920780560002452189549595386214452114347704656425048414813566028376681784526318857486666461225340433029641266090200747705610663563242852567929343553025047335378611565163996463006252217884753645361926935295419900045509303369391135421075863927492902783074885914422549658343466701104896692632403744641974645937328149889147520648499485679196866468125375879061611864178442896481664453442861438831350383612314884723179503873485547661880931067300339537158427361925685611446073701471367747816437251807971788902361147242405734775306841380350057099783939895705424189522419345481458868949352900111157708232631513328255247374437395305485687527719978595385362947686467214806366551354080383227714418386384992804905334407090668269547163053106147782344725072662815440101228781969199767983251551916218950488179864307448787460741107315436172219076637143416753721513320810230466965702441803626800982691814002784913626177469549335210354608970400283193521836590831209230963027096792399477919435513764715473884472285443840884838060965500582849260364718976835061783676474029735461434385614013464753957062393133073390207623742486711229018677807432408796873778951620007141082849393586168884835419841427942227154719946953498177121241186972589940129580062570109438774941556893185102730326810291395836069796454199390232186432346514088244934662478324759294080928491677226069815191580629080465260603067007618105938717605431392198383129675292531523149107178762520858667658892435616563295379988952817424074681118954847853016616862896891549683980889792492457814550066170456546653662642123879102306223968516010829207942287734496905682329050748870284119570533961065834878154949727013956236953356830121383456694458440603412347097657788719006302680067539617517489260486842191327446490412525587120897270771743264948098189068647618734295695316502552029953224591734503403008868521317465099165562186850762975640671015243642685827766949738276037610519129935638075346304069836726621966691049601422716850776146020309459957480537496237746274452947951156475066786179483203174076203225459312484367921776217248549088180939920728902073411161508623708199179880247597957736391745965228364673246692810077423410061468583631772134745577041979817922404655207448420577268376510643294314444246789089527224866712937799046933227705366541136084538836332663207713914732546897767454307749125243749206046403065595161209464082792177059489945091284144923781770177490757260775748792396184607595019487364371417137029869759722063176581187947450972377446519607155772117078630348784458594153496325502050567339817933575889125493121161745378191419402253583589371132406269378292201006932900107924846598434663251136271928214392691593627251284107263957948721717296986896650918564125386008676903680864102456944098734740267437562379753554942677471347178699563795653278309810536364988151195579411830512732432047331760342858316117805167480843748573160800181888398069556723692764766712450974262970519282483816037243370726777434588189878822558062336804951714451276327332910168767764004503743767861003399310182043085587033465859934112726671073219419643809851531048617323792973657143820685537554017042006544337893289239905298744865411762464049312787883594280665042084078115918028855168612430693195818822844097699205719408245239384166016581072647867111765628782066700806816867974163359424106865625390059794253560078808739913994575836598185358828598596874029336379116968847714500221349420794724935826340883580012534503025944659298565371042496443481372656313620600419913735629482007546485537941029255142236794286979018078544753896383750143236903004880186382643278932758346387373272664321228841252111529149477587465829660504108086120156761324590886820179316333727387970605815743339889882473889160312688399798625718418769049234354503581573857252676388656814349257647356775513317919625291843076731830266982230129528706048557292085551030124413175716270293372239922162526305148962119414994152575550916822841120004335925434376028944025775415348729753275372083891625071928655141428125820697398295389260369540056489128650389935886669373933311672200505729550687328712750656617479081400071489793324095561789360491153657824022083250833754735778753549030564175656152109174937026022816916491446296807928183837714762069821774024385477007640900233957545042658569240405195205818034222013052929674089735084703977405052439709842512701257603770298616545015566927037899000829339983993508821341891531967878783442721402864553645778252180128705155961158313066702674648560350535079510089251292819826844386876007744863536071601852924348593330806667449861722292198362841465084516862496028114132414077698727173637259364017036880600176369418487722707776044432780868713288314844801378091123365665427210631256672016637820250207526618442658575131691240498313426164318785479877019965241115858297341554766562090252055193800736223705942448310007666302326224744122596551918457834795732653978319376241240784026150328709655040120377429761439374950636313654837134347603716091944528558313132767641108662345738009877613056827076483794666429618438256531526529127238518495980501053798029232342519625881124927055232021014293583596224018360145758042471061849219288496010865533167943048283908094173357652983273182600865999861210977514742699674308041296678651528779510087610989489553712381944373636530786693094748061603896916438081078282373760289737223613063291129427597881147080257577904854560333830827386030912022998820495204666035696234871290743567317911873718755565332830556345258005687096618713635743657012519486600647684854658563530261190513435250423946513603409476770049900223909451313877592041367182245087158539058901851175010358328730053148673289019175664593618786982373461699984430024021399794840636892926862613743170253261881654840953598962316027776762488328896019937070777997867055176278433327769845644339908966608728250588117678736022563426478263429194496984048049303897618922184677957338456871603177886764811120359848769458403558226287358426957246591600106033505983823619593121114128643263747886740590115865357216114753989728218357811952899008762074687808810019147734803192048499593528083636151987086749350720492387015313672143051999394910387356989202654709725477232939268073314830777416338818512204410714168385604120508506508534429652196419544268974180545972291330594962643305397508356582674847748183463327832887926240061527936699645624208499529174343731686530467796153098902057078196402666994444537654842847352548545908290602361941657634724660994497570331461983300338685275213961028546288142720118276946221833441668839518435723372512338137589882312869729765913018785266292957346705555712819882000200374809555273629337993314552980253062635829802733475739883095332571674384103978430889148369216941392491164728490744275013826959561809200682151992390593516724584499679679302621257955440711618212606786524400385863957441757921208776190621230203750807133172427135732247762973715050689212496728181374963275519497948950150291463995122732929648485955317986418972069984237198024316301010977504018130199589718918700104423282523938587312446310258407536966384667006412308771741821317672795443450637451477799677774475253398634918409319009318813196688540923544932582945417606861277408024405414674303496523404295994072557929878718075620839130509297874761804586931147294251782747517920840016385090785298648495589575879626287016030035044416069853122278046942491542574555734432079992014483791916311239882380355294761520444866196091265552243973516810452452660027657342328819569671206024868661730269026093772865294367878224452108966968247739743824292289717010699575072115881948174481529757605807702372993607495455629275425691003035776542962650177982790416806261533272529888441987214508095973245600927024869498594673314725557395798606770846898091272117122847286800690853108798473000840608085782964419136392883491859077162865203141411712409818266908682181103839399362486337180343673802446222843953668816255042431315692159938372719777391551980641051987828183640578796164411019276941844725274947512720840819218460983808453282047350136157237150776140459405373416158744679082650496311470883162646311159205757566894893848755459288345143170325525704617384285129698376549848452127074467442562085909071592694804659976987978773990061905593748902422418305066417521109088127390989544015063739204154965538759246262972866935641783173354080603120968811311040111250802762455297096804328322670087727770272558631707635121623082400336688244173429371347588863644219282458515656388886859338191015972891824209812790153796848359057715363705502701912758098526531746888984398714730748095269331243193070926106463101936017429534950956726052253471491037978138743645778204154708408809113730655205342091924014604531434777128827912634263255888350762553576392729635968623418213719844761502672505864946603377664863822606884740520592384884149557474150997739239625310803377963959451270253571623705857038246815900791512826561118677235384376796220209095001043817877164660914009424489453627821859704489603124162751861486642683954305538977447069407588726981472963907849108341576369481979014325858471179148367492753580432153508753491526907092479337604204645754272226025559308634681859621244247351166523754986749348675394433192902630083332775706229940372982922834407430678314581482009183930506670962292013091204708138780876718200633167025387386775006575753798612826070236957848944660449606932152977803829524721290672707226938032887841537145870776645545670263504480638101681961226615799671554885591325284668812008176253100513784415225418646247220405289510131271259405057559517008645528985438791306079693252352583272036773473519582324800100833919551108133541162684050469681425324466642723592078056281277268041957126650887367215901424730329719605433742372981980653053200051088287867206718424385901343416002350492814208225285802529771384385935008936450958486199934515020795239169165088579200540884832981374870074928979339469020744474308327410151981706700897154453936597260879834355550942429218074607708946469096609860352674560269005384942386224814924980202646592007831712889951628782280252737269790250635496877973378843996515000711193922366827757109158087443161334430025430045041855885472615725546922406688983397122515679015790807204942476028894124977121899033354055812260191595809479484618114664118916454823668652446043917948360533066767047847816176345217162098229411475206545393497108181551031874729533187753847893061880871875830703882232192247526014089116803469752686848568703523442182491665176470936628121471234216145908064290963175194204744772379972785385271972185708229154305817073212374114769577488007150330614030449612613004889381425266334580850880488010157169851211544734687226497366200035979267642742252085512576871243632019091644315393820971214584418994325017773573610415199347858342979749338731043559642118104061801882546015662629201584906043253382560816360411839816554288194984354302981382786700638892199831131394007724173116517767740803384011448775010111382749535536872372717911964237122609124415181629680526794988809942489053035072753767865489752663921453979338962283186811744861717023265041008380241747583765820270777504727275935540328260322312561638614033585458262544228422086324967673576228229744533504911304265166295520725129516940393564444621818674292611671253842714606066463348710765052340375427258966561538006205936880878607735615671719776450736822849499024638517044977711332359204738306553788072505804098059850043910726532514210959969980650979366328117942558712484529934203048582770999972764359803184981243009678462817151547840208336222289099317900878582883201348865637336036133411532503143116914441196747220784608394427497449400029992711176124737383586916438024610971063473791096977318582498047954247954859038838515947098726496049017852810004395876526062035176932173442572782107624099446257637984917997055941049725840438785631026803944834206027450486132372901245282977809162122562523107973997660096460651008078246992493292189241847407252119852238840305946723978622267417330938426348962985548498065312280193769995824924249885444733888648626738661522436875615693192751292654344189511298845475838215244382358783328469377211427995101458169255148354777348344667115449458020981598889994058471851136709890875890079454451226891865610254874195643840840332652426871177895242389566529019883703272458088385146418162483219886076172673789215859835876814357909250350965811331156998399903549485102068459400408393351023546845393339420515655474233334186758855201733940590960287535523228736863867102230352038157303152286007766304735252189096416633618814308197535077791485084471544415738827863726800736050521038125596657279787084517416488888934031641660462278988163298673122258153804301062930980655059187002875110890162459817031483359076749032817359722993302263366816389087079253557669830516055430758407396650043006573446368932360559999463939649989069577089036255670437232753714575930924378894607318856373367235196456113557058729304052212721348625339977538687163523388647951317182017284721785053936725026051642212041781939241023886984246834079992777061087441370179146478484207403787732610090455569885235382901521972399522717353268519765978413237238633971133858029863349133730228018564788778697218529840029341793795847620667069773749861843257290121581725392481717960534880014212555153561732165652002489029554365150684771373285204091845635401299195939256619695197080329590753383631491895464944632028434382431039721002108197965574933907846435701346750125464718826494002344753669221949411005139254598315813386201143882454022839098905322189425991202615214215361645689708838069891901380535161046641047454180567738800513439917123923855895624068568513176500719941826111125313197651486609996822901739831298373692410618795822420967676738215098144514166583121296363371071777577689198047117960239184226087385867878278776809546546613794055419099910061678971453075412095695875968902869406198631395035520179653152308196203714124844093706627761126735882157880307518532659854275760508880466920048596204351560208538734138587097944679453807727126921288343363181967998218444231923592165089722091785845780471722015827234406268757417683700940861044928980832763309248872735596226322582781797332243589171157597148300973059681789315602255883361573071290163123759250109185993070516979291844781755566812938035029007673368908018916303926299965905201303778084016436814917528041984996809043446954983646094913825944394322942866514164386880429412641129983970745705896684714813994416753275611389986782228784689938123675590630702701261006972425491625577782576397113992007703280006657685806441238949745183515907593570615310693396536872436173714934098833545979255458340176265625715547863644053261541753288810851871100906891462008015462561356384485690475159811286107781179702635863663720002699544261948912069456448330708333754238437856835547837321628980913926693635955165058326634435673007683268047226301592442789929210199106552872043916819642823572359537409949351325632148946476266876688973643830883607172535062344778492437698572973411571628894358720065259257847243956955306486730481559892139852346780312590509785682670997571658012739870298210355459063698830831892792579723293735268158518669779844667460345980780241923097103017884396974252502448055080598717291581596531297427146015018845333957374425128556807798331317457444301798596869419031558812361743987948006246481661492515923465008377832723587779688258142792592206935048059489168072576044833750229206208431176328923556286401526753193205535399999408943124274421439613398198311682155930892039290121179312997038845964855035223199900626757770834836495024442783266881569762537994670085344493054072855207504620587917650852276454830188300069378505571877698837705638360374580134301846457492640479029942102605994775283860731118431890813615205753194439406063773374917366427491241591367394005343060582431933313002626505759552427041201738540433379617671722927381768895007335308594246423653877553203826580461360305990418925824142962261095329799430457061316323846386185333103053990033184785038096763687162546036828820001535911318449890707591463461243959470983316858672228987672207244139802174868729723718132654302615230083695307480594018931000970048571150772807513376714493790124614501983162486664202720803054060317166309469070705808329692529829990806085488011400298476714721338184390424650190369210321127570327962014062593947815498502580216064859607070104812527495909256434579956854695801616893727899330040395990691914070488503205890815346509301426136381072516242917128208755830736565946714951313000646196205093332519278892401973131663350669596438353495818630681367380603331890956221027380884190155818167110790940832915947573096697879955698760159161791180752822375671404969269546948489435827114526681265049256515021352323275181429865789997561421797678709123545253773304970451448516019710794621035354263424344772462138773226229215808965273352513058087678228316737431716857822324772497512096219733375303299126015705382103247022989365177050970484725838241318506459902037088108630223222242742668289129932205018169038383677607543355846148994674878244066059781268503349076137691393621765564730327353851456278848232192132143007100456530233358341337095307016727561158660322943945482260907791908241424543444319040148572633781646471807115031592728454493257633683040968531564430903205921782874596762382979065953777876747575359395758443649274698506629930655385138713462851917181694771880306828844743639174704141623705435654502554578034126674008551080926818594608801171384900275485498510705982411706858253208631339894176619987852032809038755962879058685144855623133195630135892014404363448383582951378119842252513522590973267385260605241909934332591410505261287254179513396965405043090379858761429091770910760283852084255840170322008458394454831962303011462237040929023114353325645705577774382627898395064230245610473539686736123914400213920972754581741061785991076160931864598647564134779110132013883446823517595771472730632276402271621451454763602903593746451407485627040472197096094446776508090792532326566158834463382777909968239765733029140303360694846721356032233508985804567879478293603796802761211754646073947464168415968258463794042671719419417168401333771654576630875875403308588179416151090853503154722422351426134986188238960652856698822575476614098020391254393905415395365424120813821855424291276503395384062380215765986425013425436892401848705040418015977423778102097700992437448765079122213943647206029046110677682958228372670310575267616662944315143254034694209527726516242795801394559745226101094091225053797283487004516673430095506632267775982402708284068366387601624800716015099545160776275426522337592887098460154321992533613157074102028407134320801535043452783080047771014079041738034447929291014437610400114932931506756794299381147117955171333624991641549643528415629566087731194076517275778287371694015349666590622358182877770024763477039919908529082381022139119265388065444066841852170607080919329982631575144693517546994625562406710113416651796710998308077436775541742162281805217734741948563795343881741771734036349314409007573674053614382762238895482472171711068308239212062067111204593342642329018088096015618265068540946736801937984954834951692387661173931791738845983928602454314960107173566294468377668164162153389201623799599001641603592336446904870721016470023788168676657536430711860321280392976046630312720703148914400185162671911961801621150756167308371273334349317104861325256240034463146638474950630568654626679397939708344253239821858232924413462575672083813008999130494088975288709295176671821323317202792560876577433317007671606583807499291248159739206865548707442713556960683627584698622394465458835916675865750400076057741586622179895552177712878288862655448444827402528149026535199183143877911251439837518820833006064961678521262672677532131164679440944762708483523018261269999536322662946763081239696076021352199655144381650669361919726302827528427242537812114164769627330975005514876792000575203244899860136696294244599040970896210152560654020017682530586636438518273243118568489768120272767586131042772501496458996283105532993383476011331918633893812685614835954492178075483540974692902850691526123609198729997012590419500294496983959110166911550626937903772760161286632234322530209953265029453986887205024793649382143105633514324330845974289135238487704485154915157613327301353205036106779751306470009220562470883303232872390866256544455998841152526858843424146404746596367385345448708519731934069500722348318345097186297217925365449888963135557038657643742033176810842169287075238931909176721426715412841673423355659729523090583938099357587261524976367386434603142460194743213888273217245453922673221104925348294301178882589132645252778963534977291976936205418403758465266182809215711906405493778069883314532293775164771011504897259724952465856197135008150169167862486003584082153780188253017397617318079213883558702077097391446576971431805128552471786160456103229606069085280088172681095499573363873832931699378247114669232566475894253802134951078400256498531670964047366202006779532399922283149298967306000032879023536108775035969111456869042130901552984844830200680183112882793604254303589772304947971747934379470812594991799475999849540961539209468843746465235576607139273471301936260187257420327346259483807044790398776427119400836207113320711213801003984157913326266565256428159741721415334313027408843868550522627059935423798721376660240097663573599811149668778111032891458655117510168218970703792985766434417119442518693818531821313226664735387274880180125186950308969943718858303284697923320592041853383194625098111941533802408206960497411843297969065069279344453587653611632424413299160406293606240470978749480284728315285838491554421864387398867132299747200983500677589458741120614917739533689953152560988059568755267660071413080378756473793264754899659268370382284017572735784293905711675313779475378727718050821222566301246817643431790803353124118795404457980959340800720473656742126854955477507367118812065825144272260241856944558313868239506303094205421456694118888061041268909769687673118928691658569091335892526046193169704320397501837427574519533779653374949575038329722236925533441267983488975427374713708563553517345337253603177952264707450165878919231865655774936216202400411096858479368093782469431554155784694411008769467967736395189889432847208696318688117638798759683594964634312499749566559380957270210045982805857537530218848642802502516719244026732919362726701820042574089106294575328464408837469200642221059849779137233661272809191713836440674189474520485328661476565710681849012568560042219303910285027199135161585466698062499243583053474197948186834549683673851786772256950232140910453369489169301618849482058172972698110834176195574808493822317109511282735212973815065327366505580724510495349470789483523988198256605288285623507675418999846111085247744310107211531564739183265848944562288175575236668457283761719239233344121051662619108999851662030517628928750735399906795591296952363498853227838946612744195427099697818668918329212753404740416219436433576650963361108801799935574369476014781164793711024179591318364786483685591692319524730922964294612007148643381123713589692573542570179038817433075958125741932978985641236100543516266460173686588680323251395361373747501537492374005093801292417715549730502736773574396574703675453848935339910338003944739841220809962679589058285595980780259183149067242241717656639411264692002623925659866923709128562572378352670331511181363609526520600783991032550836798594470032081887305884396417703091053163769861276498778720513473645451486370834616733172365808228310906128797185816472846249215440768748657718073872647703268806137518196430281446483288404380568027215742555907697562841692369387430341724972878840639185367750175124482463603232564977663193176466108205569667409531960512487390354877620436776673560025728590634210624723730075241305667116625806289052115024026147364095130152870535041086344931157435760207229915380810888809872890375196573866934757459959906704652193603751280864380375371759198971310977910484840759863908737371757897070028814463120738667393936645101302828260014055274868547193566474834221769760072014843582198126443848762467448572943286275561201470957846563437820105511616204879971476327131322718998652000497837367878386419091118205725667227418203202909686529288338528522692953596796938280250298741086378170691393496808073369067634434800506217613822426227286499561770028085374561962154909844501722381740281914961484306817711323992293271250483726392656446505721224366540185114722589543892169665359957905918170850031609512509460327212834304433865045298728170585073132594895524220802948288032058939900898041986750766349848556630246396037044752564326275184337272426070452419886424077586423246917659348917058851764053932924101326861574427333100488498360065362590418218713958605296406040401419342825916137797883219945943392581815301141693555781994667384039095791190888132678823423686037351129066964145805608618339893411523355016695456825413387856256693251495480906139020123873460515138937302958540526928828853299414536713063846294813359086807002446311841816912487066551219935147357875516474970775574679389221788483767436774381669801729756740532487821549783551181814921462361447668756617051601696079470037215327915062103234656558214683873901038822620210965583445172542766309752984063991504114965897970923316310304338675560689095749556156898538527702419896809451810442407021598420098111954213100773713253307708403129332592072565889524192684186107861101570739549024887642945948459834645933298304771055402926458021739135316600611641104361975863056962374701191223545602917533588458924099242683284636514715616100417572524683511273896357107302323369994030677715458044081165630094129857133704850375474501316076887186012469554308996943363925107751580363533341560157870318699409565876839279266736490719528682333619358760441644882445993962161251940765174524204577670652502663457169498205138211127858632393719192234893577107923897103025712366426442989873291452761751916451195420482884586156391110712976920654294818734449344890717179583325746447920375449884305749098578199695276790405405885118499777596146443597374785702203625354233428397796095725160006890541970702312974431142318934495568126945543208867243976951415895583328834856982400386680988595479240074283587123761315119714770968062476944180335129835131332388201271041766346656396158591162869827857857731986880171968042808075438925448288007797464867298772764406968432727332120684300328857186376884210907687669898375712338542316535820239285602005090011479128154593813414942266750557991898712210075989529217573178422498769857930443753592570298604867495285788402598422277407110208666306250871183925416085083855584747630178053319254673777247069034068162926307214499740675931596779223270536903368978225330552646727146894494523726076469894362813424412323730856870928825271924901249012197175312766526415563371014462098919529950508633121924205183223866297334198809367570119698850971816679547076244394799201130830505375641378436738773977037409327163067251671141468097150951405186166793202403060692863877191794721570774765206481576227695374084265661887891576223071165991123636288653877407221590694019008790880557177968114562514596906373256015826346678207469661230439802773474670662241648694340011019838266084450248519568715515782629207959630387842134708838927172645423787631238897641532097443944763108663826957646614073720323798061472637090085767878912724659254745493875446467502669578989377467230117673798558677137051495663016862519775457424819136093742678736880118776237233814488844343587132659501134694883912284127860288001525345591917332651452093239031560374609609108814443264112220297398794892582610663705331947453773149359527749820446745859058729075322582542877998078363889711017417965206397011605933803538714770834668565668188115193712248221817140863602112184651845916751107612121644694667446320711967182166166796831282410175985475922736905380037681047163092939205444382900604997341831009126258871329173824210186371509675874626800070912210544299246796646804198267212836274959485289723998352867276585480777773129980016447947004949473094218823920645735699175623022243439132981911099795376039740862875214213928621090895062832255569031084971572384930729743135586249121257318615172022292768509540987592514291653135531083664417691121945482894150924324802376528560785166571317122685649738208098333679321986693661681228893991389420230983426863971531992498384039441557261665345670950688433552919289364395750533924800426169984004740013188731204668852171944589577333778782340223506408068647370217789595112745594300093995365269936445449615561373017526533398285918148065832509361234712269912197485646582324451321485002692224239403084782477893640798722997524126535150384638025928021715848023350140034754347338597153158322054230029144951655345656349531549600604078285091473926676688694307903440873592664311082547665152852670554159178912254580656184822183469498181547188990291913915942371634671648919097377544291335359132299666234748611057595720291235150059591275334827793297391888548245005069392465243441457047898621815096358031936661536248713239099256046623552383481732528309776989070358064556793145993039213400749014168970855149185765390309421816454647038582103212892441464871790677578299440822107020847721483744554890889945973165806420256429815012136639837453442805783530078099346870871240449394410556260833492345599423290261768580849787134082623317694373043902957332174085253605989822127275283801398736331378169421843990665294016077909361772551321618067148058135479034188164887408224028213574679237901072292549293743299123828944324649623225198798898286074515645543806727900663150650404372505158846451879495621407246331495908738400492587803736833057107548755767179327177441117193027059242392622310118527650903449601048359262067880275932138573353689372147577384191043037576000194088258975699198293144785570814805077997183087710246731963117880260277147266977370745391027710511055197495868117307650239115536385561826250181992916292970508996361284695025462892090198441589862594382750668995035173298442330659364548961795100149954722645461587102885246241297438146402559366474862469184588955322602086940902555644094900345965110892861151592853199661928725641912639331063596449441661459942496233290633180388387519688950438433427399378230083417711980867373230157746143848410206808106479834416278178666630686609816392004146947355444922768156443021418755831218043964240866462200519127177354169941751623684439167937860765236464255251455501433391132545642197690440105356621883385375677662086772079176458332745148643276491062950875089109723491678102027603623113821610108597789660458654327360126673621212428111913772457359047528499594266841943914284620707106386165772962614428668665515577098104147425317060294302846728692014476961024861616047524851288117545052230362275270078075228973177913615350493935996167883892121528300744543928310904419197061211044747406221106900571974242702466610927248170528516224653461856618336292955792702843312188851185792716252263530173100405253850312612944775900663040141934830527890672689663462292051803363230163860192216760038647568184536253653122575177664836140846811524333781906370274589431594511007666480164625153169770749450858093779519860480734425379969237829147315258268919106113808702098859806156381514813456127828080396451927795525903130915299457565015339662438029508662215695268995290807933958475577588008447726040428555918615126005432500507226562308383540656596863388127235118590095391095408280638869353813025362554058773792216574491032489794151066528881571582171954072987501074772457636003113004944122600975844591047186454310247094906956804976566785097620980007898356828921148236513149479370893440846167012761853901787259796110286306304580053230219479603181344179810035080863192637941371993723933233112802033049136970545316919042618902778354906059557990732549328318251997412391025502811542199185792609996551885006784355381852974905557343546733427124716305380515421876184968379184249911524408720784545059564130738033518106270959582669401080789611856694154032226857476523429191485802588922765728630570720175962042848154887098216139055644634781814706265358530734793797657872951795904881322674383853087890699722140900580768375957287254586615766959694951721316230209905291039055893914050108336135848940305633276474808967066083383340306025949233008648863010398960894469460782033395762499944044191407733053559035655160519016172860153017332028351164280989432764209658091467683932730696360869415240093740545162923339027494563785246168989746098714184849441228972073372674059709844237725708844068686259424882137301157193197087952356544429983596568340105543440075959850823586322500251062773156914319046008662700441437861348241346141687988185314639730403343866592495152301024082506391069853578549656962539095773619703080103184178995860419048221469507982891532405573297670505227782342703053946429868063742944196735705170910130181926129401301593624243566776561151192056158170687174725855618288222532411071846454191555729697543355426531941664458622537887765135177198279700794482946305235839655976656599344977283019211097796178798063500714432482484637055700329564179435657031157197631307316218705116639021768201705225220875706881596900158630636657399584026330170823244403078655014446668998290956977293916244937144691801140144979031631106335888181019721561855685281986650611371338298109709946326263028946120235063034662736025303205659579600406228040901534682539419683971325388180732636816130208901474360661407075761660566654962452794158760836165429672199542458978716994129473375236480974221044604977470195788876825111976750590627694463660165069834973242931940017533373658467584247063807635502728736128558540641637207399068734732344321198601827643617686846036867841402734091794702441845059798558031346673821767541281789932699286132248410032738475670805110216193222278594062248380276444721028665254988044672775230631539539464524808105258565250842089681487373891062692123672379791007132832933768974884145889997725767744717686727986656189960022225783070289581224227005879064727277908529893661887381892524129885348942264710900320150086677992080483486651237918963000202922476859966301261708303225890474590816067289091875843769890592377012966725849905487431936951739276323503696255232157972572282830497124909645674595185584156105149766674719040346168373648400215491145231662942573119521859296490399510901254456915091391388804194600628802610435346814565041117194314576239283082995392195669460364791992267699356101587002839487806647904365691337447243672564365694918598807327973706336559563352478724317745280445898516735813560354137519178736971306272898491427575481319804060994919275026036068976153729970235221990780893870566759447367148460356619053778963226689525525845243085629978489844890485318077165713431674917235656036812443608190099178891065853980548763506459670503044811058433362910163221170561501721630715152505977276196138484314289125314054841817165393017337185588705666639987472897945769359942356708593017445536113104627287348310161704605600575732145578910139555652991968137539750276726608088526843389496864312551884343434760899317142469452116825708756388532950149067281898492281965245445103528629016306674826502526827729851438940565869426691172218255984258837248777484357191293344093081209230155317122338343250654696058455234326938484820605023834335229767142315780597624238134179512527032573412236038192586876662744710659836149197222660228236777617114213013442402259697831794156042972706699321220269253565946608324940560613306785640925374656072129147000656396868627859123812882138551334515121568126816877142461100444834320695481341705532703926276057553782527446640848616445346750906446809768376170714567916145057956117997635586511890005008507814522730663205313295232527385868284885483426524812761194507079142626585181428426982479003634176604568484397208034064943790260675247649595016644287503391975965452961148370254163039839825158734286658682996235356690513374573062999209136321173129989770008348014314861797392942974093955939553044980101125282880021023758660977038762545352616721137955627770481281015696446702291483260767469392842927283155149859817175702497354160465762634762125767289776358667003369382802897021898362927234393239832265077683462865342069761555211209892625309941726976407430458954333286645348055967537910003616302711400709349764004308096654794242372195169992642361565916303065658266834234806086882729278699694938480880662660112368119099300228585865629879128206580806403307671793975354451591779942153770194622626901047254908749478558064720869355626580144575422581659755779412879350831633554748209615053171173640725744116495575268579366829691527878646184815012424485826313810970607616446649343723203736792133279326090740326940097455177543396410214753380034878471426883247236860283454981388851392573615288024606807705174457974975597411226995860995260241971988449179146785918480335409684047046516930438074057453836105684755218990045917524736758688843523221209659536539810184268138322764060376168729696106372452503437665936768843126041385251993348732382398595766086285805419484190165256177450182254179309977145137319821731640903565569196258244954681378448149291234777093201933583052977228980604693181374497850619697143524236442548170013091939060850780671030328934766361238355238857517940561158916428465990946199725680896462233527635206311432751342462007782749800200470076236852439856151808110175145111731448777713923033008561839685431403263164619099955308686269005931486463128439564158801038710877611502156586488997324037725396947440936444984964357206486462167152066453152713460109976674791431555605025660489667023695226178764031658220506559659730774296695824815867170011653680524769414255522934915447797832728862437873598814272129952621243554272577359735638938749267395019384784619239145393792149183052068554847251004100281157986221894991164880007489463707190975122992020779609256137377636783427439532117924021298342945092339656052579023493508492659399917115246340002982034502256238929748540039933491545655177502204273774305780933457408520929583120813229874050951340170224453344402604776235656079184882522411556700656862159248550648662083247442095276084415060144146503318876409332842194157053349234999153104116576420447500572361684401035536671583211030553536620877966358621531993776534373780472181648236811751165360451225403821136532365954705780930989199292813213584812118734010508724533818173177457366528868939477567405212362846240484014605758534416679713746637191193851307281471974964432268107113676285501017857241170350687025196481508492706244588700568469760138076827326258716437016331267974936812394272386471474328246120023669377729598874153461702190528342805683195784305904665167702100760766758349318735241279547237093272139524503190491784185745488923361194221823249297212759394773029521494786954074194025260205250320316164958649391223446996517223673530521199651015261315012812759586590526842981046694228677462966897704757113971524181451362861891425532586795467365918084322607953437253384290998071078351431247023659351466079173146696342853197240940903920530128966940221764029800206646023907582923495618951982142217253474204081266423229093933615022820109766599650374665541398144973302216666436506128504413857235238086442976376760801239406626365270216287082464129289247549911815655801372421921671109891068298142749215694115438852478390743111869905097460498577271834105629965210228734395301945769922313203893642241553492536800349546231018107494299376474752032897617501429499507291824563500410120003887759312482707514242644465736141130402274324681875021735523206147191824495413296686316955349274621492369082950506247695104470938512406874574058032677043667697399566247689414861782601385967485561737470939717339210353497940792907830623993263441631327945297508890128686667556876803883816702198241587789800758225158811187281673468239996797363893057706518083563958499139491426793781142383389038103464546009604586394866335275055844648959361611322178417827813479049541468454362119653684324059245641979354515917724239184121958704354166590741826396189024809633916648402384804412518248254270295709505129517784774770008796077255378348756038290386997466148295077537496377415354415828295462135342956760472999800659514269844053016115742679390068427494930915579340547360424793021504305738275240721075123779584650222265824416961777646344201329351708507332755912804465178401762627552740044817545473472303622703159684597690510649546050234669802579560168803770917667097208659433551437839719983171678065169836722027056245021471911353943983950879338878513980230757595758220240464758396930375755715175386138459876902080080125520371460398977010986464317701228507436588433185408349818923437446412656286640870649067167559610462603154661657741553013319477254739614992429617659192664169643372979225569370913708880672708185130373067680534082418929443844265454506326948564279082573682476980081081749885421245935415283107685613850278560224929591581414762500312135836188180290876197777669445986164694873343608871560163423869644998672946493644758938991143264661200883705312116470994151895167711557709534647784000123258594856782595034807953487102702716717527929072292464207738543566430587649506006826632454257638867575817784815293752582070440935028783875360691586708833413323246479743567068663323149861460023948199601297890949802067626952095895670435785638775491755376466616102278701357155165929850807374390950719490594521780028670316386061896783671454236666437679272080227043571212477145241221627048492862432636995705648721065633796654382241096108638150390199020372493956000396528920155534484483568579111881721619088523050827361138782141363656713162289866866659172768450149821862957591969110422065328949998346427181441912592286192847592299998365883821196795822446785608727300417603427516149509607655428614981300851379881204566263403896991207905225114368353975793817868084536286739032036779922613429570386928549933292699583759647802503882747686539463335337965484455599630846624262834523164023299580482543855897408092512614162163915789102310690193851379716120546587331197174531730731809366833710953488487332661546583445412254981508842132256258391902680892770269996634342853840620497226241802975309816366977923678325890549388300760550431867801621287757849896729123683960474862612374740312510617392166116206341906076548137927422073503859707152344857649597383698985821781051160617625059243866269647868477000028301768158743954239970673565079708984735077404141761889339194277214086935517151130784759592149057213319094635163198778521540361577843995971299083662031843961356180356010488986496945601323560182835864617355556148802827655976735584467654965756199090324855098080147315751539635544253171107319741705355758822364914610307713330281593822336075877546695181051976321743197013835917035065106895263796405814931020359557451327299572710609230916969645463658454569762239917670073205640026193271837089174065187225556422951195926932762492247850608062691289558188941377989881698405366388224394109608042570565393118716800390290050512799429739638576975647443406135144250688204482593744218599761663362534301306039511044358630534576323669859372254950732253922736783373343487725446772885519080947301857529372258394513705932860876632004876182823373956131683571020511075526796992533189476801860253588864595750085206106729769805610325574911429386043459053361397950847009237983679731988324557997570269254026684092910844619430856128032355332721558556317517446862331072871653532833458590485235906771667952978014670234713342538435431950928365198303546815179688089887463041054632793002082984493114000220674831787311383113274524510118860962376611349295900344221545044623952913838432603422775479081124650780625760566553953913160451564629216840357792175110483015669355549751681298621277487002677577416746962336022410284864621218189330754247211434683872675552192200352180097509276050101136472651008843110329774783103590627587523475294605516610036699947610788642548289638645321497159271974663739970539474488872700450578125338844644913484217978040698611645517249894554364938282441539333492475319834467307185789202199914814336834285419049670153750059054263343684205155122613287705344755092835379836455525367585465327785770613749973403132323277319634271414880822682446259141493620961924168743527406497043374555052338058490054297870819649161716209355718371847189160290135612818923015256673768236047732645952104796645759655494133518772063754164312700685540832436899576833708655229496480656892447245961842428114250329944115504090190930200228663123042880476218028598881147640964115707263883402667932697341983003222720761369416156889507609785552537769617456975206917339863788203952260301729060360681303276657226385272280159987767593538733990419584586273738264579048860981104910675787268620872475608875896513183076911233798258935669929170146585439868872074116682124699174759316992213470238327563323558508356232805700301141071778951222999527221410870519718676768228909113083255390261425875114461755578279231561931801257242038565846477117450833536057714644813890945430657721394692624723019693950603938893657899036700410308008668893744537878501275312087935560630273817717587035556810435473609465033800985333038194383045215872308606304979921646715720605177427807239978117550463105606831138345587824228730828842395340918272627264489872302565632922051431168000520556454050943276570321768393902544795543857144064765571781399968964188568777782812839983441935602488704265125455547379042446418713261481340902731790069377488644604123191535786694903071124219406918748373805784720616514723380047080625105251213700001984298296939467866609110927474549120555793140351599050419277269037418676484127330699348249968974393652934992470320495794953385162878474620131133336633311154437203078099286705762171047616621957850655297316148953966610173843488114753064551972612754961933756493338950653844853598385622324129388468194193539055955662700828941741673930710400687742159108604971377536849172196325027472869929587753435394018416036765841268409521135123560263633264043089980605026606689520750626777217513188820750590755190967552936073178249925883708652986324600825093603471047414213552970013422752884008057113524157988509581104474496295361554828233463563085431357061704213662677667307696259340989888163090474433090801813399841973338944408765271452003984257695169398498330504224654282220496674882727810056955985868922425907627421280364202311324752207978532420159563270886427498927389351923628489135695833977135409864491261801378667876989658821889976374787370875862114952726754458943780116441203106578999942090483709450431300854046518366488280301677558689486590934351415032647724300763381515808783688489498998071693551153986222652613168983936664863558634799129695835696160645001444715522069334457069579721118558130667828985449171877306153282522157259824247092521210930488522773795530829965188076247198682500377602837159299696945890400835676596784611626184953977227031363060405684758218791607417250965958156974653037904409718030245112479021342855082254008011517905890277994598739254672580983373842662775281351476950253327958442796985501792050320100084750719553143460217944523037608485513866457775952596263502306566264449502278256782497527016212725476695231015707787880452036808036070489842403476774532422697804566050048421563559740025204456734711784275039587875457546588478523561472872306087135217081054694177167580857173641057636264330618017901411962191816789267992908258149517664586787373523545213080210528465232033560120725591033093335825571985642289324149025481621571977337598391140132831756368408440561406017182254693387209890256518843766495937583976937705653391321377664422991362664404651285040959446320010866908322852675503940324284309983662735795387438761812879566387244917343778222604094434381146294361356929185929568497753262075580427052602401962288060671555219786129665335073440148024888806291836667034243251237709357522715987954381837336827186276459381212187142272466100622690151948280807470123684334832036342260820996938021163707585148937019267595064993373912465648067007314906356815184778617905644927969395518744953965356517850136639319166091172054182433572102538237596036137173012030616673497934949584155902857958099033915061109399289047914829193806058607360990178974911710567870999701498898142910991801515597312197509456957977030509432944475747604773347152359184206075205559142789517022184908728024855017143487803803372727571408167614780129525233615365763351616535657672270902745841707275975877869482829355945527190660218464433843928199538009924740105525235735231584585586347369320309755677058992134159773643324766708578951941307741144198100665708103650050956922718943801308100279404754599290571285119990484807252563750656183216648100781715419233468621542464878179041924464918720512178353064925610835695844787539697947386667221390287384243293733256588670083686445963025699896385907593152323150474465790484842018206518998224373487940753628511670463215628859510748197103646403648305619689574171275958949061494727765513975621489390888523261820194895051769530063200795770728840460172590238459961210632204967088886295486236726198952079451010368924118197512879078111390711866736581524420525076282523991509707694479585642022275367935653875058963593088253639313131275206898297773573687360932077346240549891469358796524490601056382719064511743900727695089910120662656440957271650142968059085673614259660040492737856784816077380783957833474609752577562689505376966498749028819838718720330096026593633096822694332555272523108719399511115033136665922231920592686681281546835591799058238928024753822922609917166600471932122031751881761044109824917013330331609200069663707488653967919388355794297539100983990057736958300868423960328754833683258808244248735160201931240202068293985673538295087511507937481878015048830530926056811182796669527709001751752067563903078494510587600946219944858868390242441595226913473712488012976191626870821406259801179577821892888973590680010390012815364978758322164544348761317790052649954637635544676415354744281568344464760993497220986922290942981002375642275531047403974260086578870413201076902858779372855189276754400916102168851094880416445011820631024864643878465891954404150558464280137839594156402283291582976971574537673887711304609550683768309390924526799542896817896188018061409325806655478170111102741346501798923565718442196840485519210758786750582375130768105471931356364695453638205951724535414333624336990159586501203323562072869247946249742482074165871409670259409055566238255675716585843461423020801427637091375944083463870462523179072991695908236207205094862318986234930616318029288625362151516647000747975074841634763605917138681520089003707285792563841215774616901315716867363695734976524246747553839866594918621361993822731198263323184401821771651786692712340498537895033342463697099302187228260045089319133402579265614871114122497936467465828315170448579256928668930781671244733734405856001592081436007234472182465238117782453784761003110311214721434998341263910510757145904232947748423460138163009667267822172414030278770732041978175532397216537517194771018305331532108855223604012334201745229757779584930974028332250760176635182490727383158544479999774361344033483136062645869029661115908167895416408031731608118572944505809378212595854363725052597012898074002890850932222583637106544221928965408421139342929807416480325044641472751035879562242700674135966884351719243859588945764817714369445651092872096195544967272407845444547363189203018443830283023150698470092605513353450335433066332150114629385249924172768172321350967142240710753732277355872912488652983510844475337795061959422220921795667701107434615082926814375379858281823505435105113580615198963006264599814584245063031425085000147978223588033824486104285921693363939814338762970244789607198156273053135106372001784733703751635854051870016499283703775868650001169603410511077391172581274883042009523001974597242212205728851535154347928770479511334833976494361646942817886242195115310697250822986684299752265275073287715663974214188776695122971821813216153473049396726153197474997602440203499915382613190106983029941520339695901107923221938068146104678970907417144007609093919811507717368303053003375438395297361364530025789661468763863852353791828617250580931423972078806158848688168235868723567323717200876667661045695757047318547561873477273980723891502211097326605455955678266722083126883552443132239658276305062314994846044307713674261765139483306459538900869954728876278789568636787186187918188081912880787443353522142759662648638636259916771235270729724721766846512267846105439471794988810559334663017132343136332421521261428191998210762918922045658460993681545947232357107186127496548146510334679558099260891689070173895707869210663855989866908849220554745459223778668209190024860211720065867771021143653233118686806479898872414488437789543528187024560849351243176261615603117467062877939077660230457150917030337577635379557920702807934079504692070316283202486899487313592493149447727343596661952744319108633953662554668632536303616639595268081045076009526721839909063560802809104287298623055927046757877579604201889027249808380614565078908743984495217431293630559708506817051810102188794212397974766974922685433811398586029491797711723865590794091203674714269973855836256360023490965953423603858626724769474715307820939921050684957497429229179447081374063853366697223505283671511278230741432261992133168132962613446437633566802212578669809096040919850767536695279340274832757749068547493078254566486451758003996406487404899769100317371869084916335782526438266404436285597643967880201097546012922433703553106664776701576270122247959130073848503985669931673676580284787370348559220030297658599156750328978089417614568541003554425391434385148406744893037479524821189177120330777343445949080022316372883101431645089823222985928459179419690697485260770411592528821202211295091445236366452031951456800042685956616527833567454334062110906625885627870149312018777620940034641294179728789655058494121995904558096209527500654088512901833150187797844794539428653819826118954718717242795152393499118686747919085557277141614842516674851943294455739113370967194625989639040380712745612848391199709504531306080471948096600063857320613974147381535041770754106034090166698778213803054094849762241582082128281915226855931143179956059725904504542062888403721743164986107884182913108266668163847406083400306349303375375053781666452765916923673327988461003522163872582518811324916437422313842539978622439682127691493419444937988189649077518831224543994919141698105285824589934857742978976935706093650315014919594483393885072925588612511503809718278175304797162729869136418983668691891250202873043082475624216701720321834423838624536108222067044398520520224629629106447302529948554549983165516733986703101487647079370366087504802974624704862386495945251769255318869424539850509301391960262182621787003970482936233365447954852794799793365757997659833786232345118336193597945334222732999769006320946148114634939564392687768378129073466049806509117701339159417373435248702922445653847837518541267262685243766804744029016713259808639572622344037799118559029964076808843400483265174435213056498666714862776398516265465564004386002330471075327392948631436273848969056738786609785472279790854546400209684221212594525007476382872376835615812118269565665011266205570575349212086527006371675860604489976031476315628804420896884291677760734987822344867659425482031494725824999010903074925620589148638167839783110893153704105494109704049387232164358182820549838199152979104778260415329347145225657302608770698559702961064890561801655902740367122903676711049880104474699529661535446382340264738838181766760317994622555463521941128465319789994217389577868400034731559604610299712647471845382415737456754464332840933736698671711295339481940036649615791860802539349431608692535803586429068843748498375285353851532832122182430712129455725790842691454325130243988394794198705590348561998897740065599925601746432605341465857974053338253028008343053768448833719306071528931680380682672736472721314055064107627509491807953685605888397188030239430047406292229249171710490848001740629043979888861414528071311153382345279102038472268656402863145592349671534018125178462601528908578422269346560824652060787599048719056613967917043104266061026836038886103340418638631547201216773898876981638605241662856014448371834226168083241894555432052023634100425685917711186638791361015993987736238948034670643144352564808819111388372920100084604335331032576570874071600590767393106849281047053583752977432625664388748323139111223275641390980594569447784477782629677092242210217681375737175872613013795250947716708244333881207516662906873160572028689316018352698471680338292985825038305520230178568828337718535713627616944744274289446384384634371229752360726792096298876759731686679640436656444119770644480308026557215981052787539992070457325843392177021198832834945994962695952023190193613390816217606357351623618793838737497248820779509816051467984033767811615081591028595343559954632134048882916190130549169125892850283441733578230744710327585693621282773123242318923104628941188896381126117438428184146272552832186917794248870420188833251083882238109449824777277216492919965481722850518548511733763871417157551125790270992668829082183426965504500575625771162168359749042393976110712104715999898016813342846884671506975539763471689477362692237908915506856574899064893759148516623107336151012029788820105291014897956958026257334387643339121151063574534205364425715299932655214877606053327928605090790950517220661358366367606056641703886498217232926761692495602192593583378749416239287329250850946249879329762604893749667856287120331306559022000243960625146550040080464071292906767910119895472318735093448441358931574892244887480762182078793754220846208447429373684845328988551222659403832580321565984360377888928067417393478125021224914216303189655737417625545096309859383807318254565553930160037887736126240720470757724750067888914618536160188113878251039851516253966287550857780807361901905662602669586844230757164150931294368617833394060338093792699200809870534767922224850433042273112688901078835355063027074502867025700825599274520009665604824471655425650987387903961402496550864123388702202504987028550655840322624405131622759077728921933489036477048292631900267152901635039324978217646050602521712880552950388820457353244284979451789414446789080284727137211148213775997205174545193128494634020153661431298987536466096490808104048976973892000899339733665687736384538582445563767049629181726544373487621985239134529112105623902614029933452916055576898763373439530208173298762847058652452684946682632508149717996297231659444380575689059650398903262056333679342848834536361524699148565075170323623577102695695933752516109473043331968109392644563230405004358599793247740264094304445727698099270743484725239855823105220128337349397613863758423980461239479193848713135716709784401356008618554614820530404967230311959683889376538952378216419993072805820131177725738375846278482178585673509277990847606759413218991464609722804463948192244301689818159030036510255816058073287837090371457634924338406437935236560556002640710104192383933483192383149754916336393754240719602669903312046088331097601557785567164569161184100897276629867538188708226915990960609992761062312909146902811020631760161116647032177037785803748023797789406221497190600807632343084247998615955917069838703466503062131233634093654739099541691277589837450125456968326289535971554049674077790415550152593261515570100025818595183961317788310126972497858030100564875776799013897904744307617995107424610645487448713345209941680581396883369801800557472379669050721943067751274206700400143483793207006016343779602611480791202530429870345971581174742111597372284268701999022736756909770778023930092797816037588867895454469579361723023337728767293117796076047096940609751438960882848550434570237733267516275846108523030555827372437880138567245041668354002235270265255125259198555743758164856239706677747369297926084704627347635042393443305094183007190226207403633499912905084555533910367299205561323227335180274710403030759768873293876180736264338137608392558777370768660180874806259999875027797365445603190276421741654217802501723787662103827810940097022846257737811797097105792880163234545901576051880305856101857712777945081531250430445150669747998813193093215017540116795822008141253814422908290656504097897074779031598692838531995204104118495388748416907064610264727607550288466081588193865639263578266192244928105825053057569368066342219701007672509632548564307953504831289279355295331323660766066111405490337730092632159221155027261237106680061651095588230879493314144754487602052927956043494983140297559951686707288605042973764134402834779631930149655954292786871327915435830486069105726716394637681783278323234935114063871013726747209418941107848511964167380303867257049253399560715784542769694302831125780949229985541685837901955308480105002368158048569504816292745593666528951857529720547802849953549240744928891214180842676976324671421786637238857350960475118093840100552578289365706123714432140997678692050255492144870637630216219866827574684612095070694290836785368675646566267750135611831964515632449702886072020653768456560386517968373272506695352596266221185862436087438196901350231810966161080776981039350591670701537503564521843948545811969193126167461680088724232965224376649291645326437342251993373433640891760616445616412367915998226086428476263112074318082208278565204312850843195153858448444298301899263592364218212380640278173749614472287001496299847792411836238163678388040511496752945488607746034163683291192937078455350075783260211972257608547727272685124219191920346337806250003944309077612405387033304763944528085082752656784625988484590591170099060564825170316372457604713958181162261269693413653534933387694035086944200112376649454008258665773273820802336338905644175582255737458353341331717194204405629335635170083605775525682702577506254728932521478632537234292716917684891333800298093969316420942236385246708746128865427753134104362678549956428522040481927570676177600659439563142747246649700538927132003886579198847877861986050309465206556177484936555649155356832901434853445127733604412489177217174989692963780623820589629785620489269810275482471835415908566487201507509607536319316346962293202246118751567806430119923479238787610072271054609493904607666147404336060221341625948420507668461668334673521906342797335155573801691896750381560754782268075166885543459113214838707240394363553087908254201327632432098179507366876875837470310452532106822998555174168922010618946345827471879738006170569613847311546293517719009998883521453964979161503321713095949668198443954958626015618208101243546812095137916425227465169970922409397594558922784834267868839046099489845841974310325196914178208571948451845871802008911437175035969760630034879177821989389379444581987187298752877321827923175849661038106160918172662105167744735518667086002344567218764576877226622569881339825344511523189627137913295617202063463679615367340813451630587244794433508267663211917918913543938367847777208018710086250941122587492434140303840389421271177868460950814684153852532670276541642016704827396249241865535690445540796120061544385962448433408332526312153094313268513253567122717385769155781213045412951140310670542153507230362759089066486783837919874049371168339459144343077040600552187180817499837303142315440342125382409512701428587005630490563351418658107118839458499544230460384579092570917388074367134849135702186102292675793458777304948206188854397522506664245352388767358986088026275968535986897223082358605628093390296552813178367207577874391195237089030946158023867788617099105000215953354338012470676483819679333660502439485237896045994496985689300261435997892508647256101540266634733313853416872880556041635958540233115331598150950002617230932163341408001289843729940146828662027116955274890972490340912551186547462076612979153686138438522998135752796579011592067114054742391003146986221616772135101091074271613225843904227944612049290992401911066236938889587804171860910354238989250989854745832156972614489759154123059895673540248993907777639215419913875369506408547372716253867920985588072233299360931617568995519524711607267874929233404490997763231106967713406422148069583548866702179657542517228296437862521454588893506833615239874281260469863083436002844891401418465594516944156927484795552115622913966086162070881786749549312992886273424302024417000079424099924978637577588029981709610756092127068811772909112958667472033573699086095602843072597334386722272704699316177539329401445156848843437650308704981304370447953350440585019627350789529793468650283770362551569617759777296449432750523607810215375276205077828234724320266610127328031858789314396691354772602755942950307284804016039266346391913864239049775760675083466836826315320060337374428880879767335739101714448418661095980165800881630576458587784752177865137798657737626707635275899047768091047716046868941312292917150796091298910423290843463702253677016668697540333776306218293730143047780212283317057325619111524488260437563636267420626758311254878104655168521581742400532090984153155149254186055492216173596680140902288324118364340714138941456231192133968283261259872083872876891662092168134026161681820604820625809980603003133522295313428305673371283962781635032981775248557563306379616136986636158048060198872244279173460988649943872563080978397557903430157177604062201448503002191439399976642975510095267751583759553763410533201591526429125157769664194542453735086373298632861369086544518938097525555372515745170377866394012765328939759124309529071091893714468647583902850234075894335862909001201069846864960275057852362710184081970718125063568136478699216753533661036674168375007602980567126241813851950499776904369938116319678777389011479126024516133844331256915745725148291672595937802937236819461602863381841524734695752912929495146371519043055108051746925536297535338484106252997572155200610696217491694577310890890500676988331058625180590327397332144407365003117223364732169042321365974889076534844552554217492427765855445614714962916472188001928355643865157634439412306958906089273627350693900278733039707238775834892571692857679298777569442859823099597101443853591864244646342596553002371762648657885095049978104608550707793572139186464447340498848414438250188085960117232503471948487631756659456381191915494454476301244184408880969952697670486123348892985788567314685834538391502551734117976184125885690554754045581272537906927487748680928445068053781739281761848226946074315611715685578748091438900433735006835724356691412855534904075905840939436403613363394439533690499485201271671874937972007510492096002322974061776180225549197761878986324415518575727607365262611888318193096046642941948258702360944740477889849220898617282522926573024767350671124279932209443926701958842310802500721271159724083452542794800201658379019934162948574147522131893196563707502664223199945305389126356106940412760928035084577571179149803679377964761002875147692030294272195049395126177299591352135338413924458415134031800161558077538098788283671165064682481985326812014606635353234319448789455448371426550858833016968816330684265536173102090968776466807277692935848669335603162076032610780441559416971425672327158708421803086372297474614016238432075569432966790401250624081849768997118585762048444884326869081486952776030027244905959540753387198746998084582837235921695506964467554527472350558348017493232407140332600318160157576025635021253394966296737500207951592698014632957539284010879237355430436201618415607059851013095895487176047349843160360650170754876607910859531887946265498047022529061417020474298159085910868414018839815168385929442467572712099627936738308071835110487318238386810508865665561818588076737209221866887995920593377139213570527687624687318094271785337454581609283636079460550992271768140758176680559320182063990107418644628517210622267730634314641792301661968645388074116985612194572344591021154572798937856841158121978486175247357714755762936661890033752207048021652768964080541449326883606992296270288045591336796008913472260823655323739669656635085902060960144384802261101517326748701259460859072132937593917419287684077386088605565012506027995448789164355629448096359800070941816692331346296166263232340241168983439578365215776780906582741822070080498866812963716978633683574077059074125850535939964555009628361332989661127656019284577905631680754504203587020171592345154886462772931516259482300174054767924210428186085784056974659355165446669159574220254408750719049054634432775226792156150746643371723704187834304515875658109680904932237300114412648459856736258752367960535003279670811843438804270489377242761148020366806782109084259575076637127213619126419246218716501770331297704039163389173679632533299692409418093152042993259287158021785043706940874746587167896664295426234135740226228070054406351715996230299450096647647485898822808192941887124376132368239938986304607494911651055107346714667884466840023880370202157621702101740503793202618841847226086031271111077870170973517481087522969072326877745372056032282070923928888257612290200062730681790741846368341221322898027048821547830726664222460980261118053036614078583911229695307619158342453776401718496970063640778183210057006593124873404446916902876453510833122733898214360151993032269997176467475032729159462203744297836844634615272720005226702239198834260461452659815252991977358933202348673727671903966768569850537154296004186216583458386658623807454557309865701668323378758568266475137494346353457431570310589358245758956618501661001302318194943784197118828085671564873294986159666568082812424067347283097566400361584494197233158507008312551489268565542935742790893551631088412803182122943264184145841803743950064977684517707795082748570374023582942073454806106578047201134813081890275552189269185562145371738000963455330654184471180306387864999942219589421083992570781423229054819495311659247407192337525894321455485237731068946749889755738616096308372787826582571547413702946973167920151884005420591245574357944501039436387543863320671961407137547502518648315597334427124846291238222622893597119529291639053088157386402242100471839617266830325443669184212645778605971352810434081339842844068210884611174344281495675769504415610693255193367378482225182235847302338905152936334970902394662333075431906996241734015597732906042188532999022874758973634201333334008681890280283692534767703997123488988157266299102073594005175724876705565530421982695042640602489035090925593054228662778649571503137404032937441769990648274401688724445478609787346062849384615793345304564683111487879876989889677455956562190678519112578566353936993216112604239531129069570765947367106748529907866131512572517935573643946402530762793177176662921834989174441470800573676904740845588775302456508335597026460761878101314623448371830828354221280364424248558756999514402525776588980695708140428014938390729705405063093867534283940188036906076028333280921403708855286090081651883909760067233485210372978680089952492783674497747591476017436273488173230274276110453373266794644152410759053812239552193731708383658600306077582439729602381090792505225166085487098923555583968429243888899273106874303705554945983579121713590030620051414919041060575811563435493668129879720533018225116882689256808324162923766813684061648045736074473331116972716607167529287313925309312886178605218062290307468726603124453685848285411858895819879395577516173006598434568018711308300658841411853457662422055148999635700902383008854668788514962420162702525528592446870107541065264664430362611733759920446721635392608557085689469890345960182365579510248733335535869876001898791809506206069777319628879088324121675334515873192980143083758116607059883129850202996655482124510213183317422309345326601128655716825886821469245266091222382619853727693293513181384805923812518429815061563369561455515080005788204515991564002182084009021666218915952844119752474289400759553110405074068064048967286081683311705794605661702347361818037251940424202927846217947561569665470386796258003999338680285689866288169899281001213249217492151351832462352783245010018258449435734643290978150968529622609855688426713764426452129556345364426969196725547676996962148596623634599910130292468128119952303937534240395492102175777321295883420360153162045712511826192915915909058289309980696944945693577296447308762013099897678179484046719117330297302845336498205650486971841419988854748629256666665101905720397381152018937139752867090831115919432639917534871388898075232968460281027538957340593799976283337040657818262649380115203899362797013831654027585748129993997433684231901957864160770526846132474959047914635163573811590759063982677282250092365164296374783331617136695979266738786279181887783450798296494167363747991015263608304127898940582223032137345359216185082599833249361535490311044150191589481074095839053778588536187331831091533431355784479137603234061629410844827243709178998363885364695754659321856996563104774365495672873734627714014718502624717272816838030403099275918077688384029602585363567962728014660041397611653401973421962142524527861395191626399578363601668435616515946567795751941956342307253092601630724690092683873477670317380107897953428260258987689424656614981022125676091733872121258091142699823133740465447384406763674810279133990996304734902084094731007756821114310612887838937188111202436260187802191620533305760562486957461212175549961352215172305410436496465242460875802779355569914511730798796887466634610355101563669630463126791363863235918942680907619980902975435142066144241895912945132254795910828960974646389442549171114784793007071030167455652255894617430178093179149635921767732060289085173264178631076451374131451441163063716856413431473132234123715990190802160676022303772435658774678039758209298826924589592122953837876096771886920023712633561598557191171110677821851632097688450470684292376222099604129514377302284570716234363764813515928769329173039011056305064165877768223330585453790358942874648071854162998392988230022825341887922805088150356244636792714986622789453115923140706167291069617045492227032831690867926329702447520362223363326592205184264904976126328755475249999670882891971223535848701229429750750312700080088131837317108742303221331891638666996585074002777619212842661042087625759736629208172084766822867620158266511541221957924809318272521511339417694173035457886331048469203443532579349743050731399130180042628240428240429155719202712533449211835247924225448705329425641354680491620047777588742519020850822228149545812939492587568517193719084178704789920811433916685628076326817733893221128898966903367145626947207784863725186463363293330092232533396991633206853303142966603587150026700390014818330745732734284379197245823175709603833880844074357726868972586553638720943100504959876097421541630276020784459564815093168029797192517588294683193707243754410742912905856798348814779588848531732197858923480843521729517576648995353612383599011019030616787840192293467191188623305360201090052049140022248605028938200990819352710708870045096495050714355790502457322998054861437450800985665946919532511730016278033108620056451536377261100793363782478966050696664595016638422693830026819796197812713390737227212903488584170949222432284331414246567077345466069454432758925875999112905953223401162958340961197904530970516430910526754768676122572728665753622688061159465309553934510932584825364293813495990517416365300539334919643326488558794264413479929908381240700160979172380457383272698946983457949194473509042253544360114513431418608200406561016117637778135852540752709935690124295244715301473932552330696719935963424212640286654562411474762275163040915008614684320848968548509219381232132596357559888384340369824219968532989977040264890188473065640359645393398106866757697429513689382274716752641058771477627884189705006730870545879930536673820277634226431272316934615783023371556688721621768870420847205390179579968841975361411335799876594498102823186208902967124256494297400963231755145749548601522361572388450212803490127828659410671172101035113345512015837308140697346438645205118178389761797876858457911002919862956608031797899460553285028178944693964294779943788220427985817539568776019590958535652515593503157950473066610782018319932930732429172697895945467227670128889719206357159070503604732703865026818355352179113508528185596752878769642247884557048389224932767367479030717655957274152333084796273522741688188277861590444317776540959049626512089253457298808976511331018383088702131338907371063324729495768558301173218234494926980779283038992520435545752423163527315219367665955167450656216924518224269201013289398311633567491159142606151068004228130512712082493336213234994799092215043545742737636792278450045696891525374671846424925341191474264182465084457294055326180240383114221277149212245529105857179728843490690328259881326715274494765043452997798582534101772708906094733560378486184604957670345238319377808226747016155080378567817202949827580448922534758964949124691820613935000753314597496134178593750535953942717252964320617450603937349259824124370568916532884162685464369869978118537360618979113375878930488720263042178529439183471961520998000314657839044224051165208566761851885967692033273039388932954294357426736621781112056846236900264658103993032418789995780601529335309409010341159520455299371938192719306564777737378852823294013494247323441342856380965107563515119936386829618038085238144888256263045857397799435500862182944126122293734093511328994832276458424071805346835901272904374768412802034517048739598504251393678339205860052370373216772115086920115603584278267255301536826381756878421720438418991516958010537390347250545506024256784086172539904183793991199625390491387241345943882816174599625052368107034460755928371593566335007474952421861390955482582370353786391348622548779962846395627227946279072864446024116450725490960422906260813349118329325938956348404784574388697795191410689885070860944730232141717949432752870767400242451975199598958305499386898623229771274498184767671111734398199724140646736511033531953311768475014547997690973229667510021435557552582377083842244798300847617402827254253237931675002943065288749968885391417181763012305021824506943101905094849623062444831694251796461777168192646029328448848538920262188242085166598066218153941521911958959611210228534773087039216548730567591983243288387420647365883675738644332375601410365847373117411909722005394162847367407225416284641621687680067011271170977374453180362043101655985259341505191545675751417562809802731424155489345257967980795589079925071808462901524703267963314475275020582744505845485871078391447215754797037045558480080800108146308633776634152822160606485909226591510929974854968932523025954332381991425169119538682493993362983183047041590944417998794602708897912687896125365289401884200584060684629976320485576147499911395472245055954994028089998197851822259667800515211726849569709148724423020261424251196578897880397284957860318973903401691947931823798093537414027494095407812490214999420394714835913086282617349144367157433351199194992500144846854819038610178182610612466660070209910727613423211575717585613603082235565946093147588807933488388647366048501170977662463714722677182505545497789419785034321352635801826642074788293298694286440715418042602632890626037859843465018653489849124628268152503695308259413203571136068930252502982259738671751505403427892251429776018972279765070920556045755781422724907385290133900844097468730065088805411087395459833621051905278790185882162339536005555933814746541034015104196666430096873137405786851038808892692448310517745239722973596309285582841862898788180444083138521033855162990218872235607976718275161480207335394070800132178587057605001976957549088831250133029547014011312637827996023098450280545944982855791758804815899292016003848627912655537845663704149237087006312515695385408497212395401210591699024799425951056441653554362052205268777617368383507484250563195502311572785034371889898492752117973816040953609043003351541228110671601767428138297121713547114036733342223729696247894145768161300612979781274602560906328802055303571125239957029716769083433306475632901388853182123894557781551526919385747279598096380397060269460522918105080117817343931697772347699183557403504865703462738265746345253604568520996273524148777300868557516153614573797122299877485104611065661277681026795465399967590255098617478017193690446507719876580277744585962750223704383396521701713579395210363661846833168859387251789878815573148265933605617395549315782550010521486364784241337029623151741746159099395634176084974503050076760089695016881692830101258022966034031819950661379177537791126175606230471507129193708633637832615455953730163028093377303548762036877054203204749481647140564614162975330758471173315344129554930954774902767926222885525045929449265101392143985565745437216160319902301960887522663908113601019868316718519089723220568648646522498202163067551300129711703360714979410826418620983694663622805848243021267628265677045867901003726663669618310400393682987441659739354682509849582678574596017857566122818512646748413548541814859227980977827589383108212444514372815947233816643685031801302795511872712930310268214153550554218972116630893870191630203533268318392531164122136902922403580685510640887119737807338919915233778347751820165577109748292439925234294514460802936553760247215088729503573523110521305411242262205828160085235736977777932360138609546324887315285074977352888283836713625647421417913114772116488748135522324349942302345192539524218016341966030275389276299815019662895233508598440734119852479577622363063341935164269204538978592125736643046803628159499105271493534763017022184894218361424983341883446268938364620433771062439255212177304714768262838114731513269679414060992636810691448182281643511059491557431311748502793007904433925459291518242007958493269774149229086430450449228397290342702540599027060076698061847560825359265572160188953759077500259217971402059603628394031944764430613783765276858507072033623571137694291781304287185992643194174862652844597882794754464706645255050260495983079567103963868875684262990045611971835302954889809084523594877730401738115461183032270369157491891291569349700346908075661345116224941504693164888490073846312198890091028853772325914442272932087327211783558052743370697613351377532333402686318810135116448975271848245374197983819320140799693568049024037901602570978818717997584093861967468132020131967501063003535607871992164242120743584419863812412799196415841978697195960863076144337441710013050899930663923014446201422678082686236598417939033754069443037210929259016169351125626968761175844422098704673227088225773353718154398570191884416024530154815498386489019738205982112860425961938438864923762776078045875676063896477411778169423747867544773266239259927851579673129825597890488145371794085271286153227197801867957531041072432260902150320634898426049987274106181681376747183871577323291709296329183404142275697314272832447926893593044489618641407400146332421282434747103502923965320569755692748887483459113230443681282947552603018649822693678371580170066644644784647921040033492451986140087091005610510751443834655645148894354569453110535527871161174859766099551381837225257621902328943119532658273917755115938826294228428535136151223334418262560706718493389930841786816891890933251597496563085282271207939034804165866399235608927753581078809266206060915116439042952605317106950543106914534120803348524136440085005994399757395033466034465258440097204159476765626283524331643701922325240753063154628104616024539822313314726762969776096865024935897294094957157668101045323155116086477842937486104791118355032025055080922605111264020170721542430251376707687549497480044326528754313208364804636292607398423615473677721136143276199587366106957940077746990772244189397817178089569280024429971745128564446200916742473737360803523237615423971206700601068919323431358530997431077123911332998745303826241411998649678423746136563678353564450722094389944758261050672662745849375843948983548290869841818560350142452227538832971662426245619987721655749690589407743928539150186751247419309290492277890124364411260221441446687631144567943414872387396974893662739164002922657537936298972963586825879931679724884557891376013158503901466423159515294890376543146683673443956999567848683310638638792928139373757860888959474984728975033224738142253698489392857093199978920750568334665309157623135400460649243189960497362777246460574419238772761146149642320600971602960135299141957326358286189203974166183932958648264052515891402953406075050083504026908568188790241298915116209981548756473855716349560066800627162809385375396746945626473565635293349229599309559348896686525323568438243088260002466903284433352091883311381237213067587828409395019658839495443693963707393061988760623716499718897605785612648871724395462521578585670802889701757479998242968851639129732474896172638810998177821126272406706203910364358947292176436687249493801326878220312368340733742107271041537645460260178209854071463216526669437847476145519709745094772080390515018880313769237498795899878210351607751554674035201878347151466165183488162178164196561883505365969002377228189403256700722197438048695628749851389464407261860095674272922624722149027199345596349430398151116517604701652328666029692484210257154831510100707271835967149163507220953089616278004824149773806550894711287159123136343865685402264965158018645123545797176989029788649601339131251317962655594794699086361576829624025668019928959658782171616170336742139910507349367748147130605408678897316457886114102728424803091429885004394465452109410120919299546057990922545565829508837711205459414487981693917771441518662419269722264364297555713240222754540549719516478294151646310798836215255360239546325699750618645754438157487731860042215361488580012321798722757513060513171922687833164822810321460543368458593318667358233765070787519580198564142255982421404874888483568649324308041868035938072601768213388435820532854620912161434309015965310039964782729705963830710559678595684100686864327968982970000470178380545840586640317187776566652595616506538891853216752327095758718257222690679542790896235919735099816252825526436049468216322849581107927898218730497362968194083999665122256407581467252798104094329556451147378516846015155648432772016308818524418177974404864558069032109069895243041185589844113916786294940037892708835188069563190589279203416664481243203142800592844615798504060281468035943468448391180351846384208981880558071151841116343985069273095209438973266851421528533005009959097134564212619724402982942531926325317532886443307020542913257569260759062384653626053012918615120000331459350964241888130272989721904625126936432772911436123539078040020028450946063545303601422812503300959630385967160330101748938271853673213874615902404835738790870485237146862099700903854806098196541872965199223582106944671662031601354281266844746147797720543545369992454026410042681788469021094407080750075764721039661587088023273486913021256659635439732804186390037847329828821692101844523476245234838413279763477425402471204071000499682852539962097602197905329342719066925204331797910020734606311452615470841585904736972369453900867225529076635038508484908407674298442580164837704133529135323895656603141637817862443342981415882404227384877430905261764133820049311839331405669205677682179199324123023732488494557773501936732319710487819621213942823055569961549850573388452659103893101827494384292612736925859320166925821493784790314654679811671946261022509194508713241718173019669018270978186063960494671140252777169320826616146733938151070550738374038895934804062590236447127141635327692840467580738657476304432026669988486035661531080071736947673452936382369728641871195278561626646822759581607129152949157436754195869003804109340183867262499125887368014348602572365357793321559777357040282077891850129418639441568508637848648604794566440680825088539226023592368745444579740975516683943386996188826736757348880423662121650009646426232921311176432700167703235557302382464608482136382970863955633926922144085234660233506594321336042828702303421327108964216185061828112113706626239662809955874039543770822360997149111896859358048440994575720778461748494575169684806702089906039764579068286925219127877401889345371574673149072643108139283469447184521258488320059678129228277630327947654132310169867100872887017138631883471582525270615921589790885175151618967503526899892590625609093091777507448180926854863217686731764003129106294773333035153796452245815176611928344460928397534239082147338378109641358070790858546227101366068484660763838717104987208251958820753752949314383626125229892658841108087360492099730483048566822340963557378174957336124995595686359118517210611191539677435489381143972182878138509686634467160670108649560895744981376488295507283112702018073922402955725005664382529208597195984773009472861691282418416578545661863529417220828215785953533267789188741226901497035910195295750724271595439810473572385148031034518838652652713146799119625567241887142358938121403257750274154618381067473716704369737116303009064061613763233414148090462643135272449594942578824636758887600571277772776643209252205787571746444574246136295966202466334381704578859344057564812727347082166444309518463358541575782171612786720935264074988470949713726138660204332760021896355850310950930651692172692355684233748655646386607242701271682425151186902824957788309354608581239159649042431649578723520673674432641467604533604588525275825029782194529577153039509879042079185914348233339916340857109792528013317511140516386150983289881207313078857983875780694331851658691407176903411695261758772655157253532649118100993526433387113700032640001768106862106002541006641483149143468729285929507995187538847668268309238099200812108421114954837601116381981962446251860515078332284920966192437421093788744426942163511321601069357777368403794724881887140594330323322861033860536226007203693559867403091703619513670571006007915311522218343709058380557201264455185776758625271719039246006591190507476299717468926112977884409950366895187709080963170918192547008505929163576450904892438116698159630536536185016216155207587748827195410757679897673594981359834594249224113386971266018292089342098625238527728128852334324614401858359360203529477988980375837899278303671829298384108889924152368054454192361401828027824478922584289759594412078139347728515347607440800963231407138617286385802363368968840404224457656575461725132356360140296594831518109376705668441377426083257630286829435861962843404038756995602634756621797410694168872052818408267322497215974903148082429034373264770419014898900745846760814035016301932297311836951591799732283236381273485918118552868189851071796934958509671614689660404206607892496850767632190584911206360290590524787365601685478095556680921561025896347975373894336256954503540199111958648876486596347252953124397219016805235370248065307871465570505094502665439133933711127774300092467736950610292708329100312943724719612389748411531414613754514477997284050105947319646512913168794962035001438137325034398443445583875598834675708322240906104923266708395234961408935771544029222148898402266124710972329218049546437199973429611258914659896480137378813010699480971617304293202689915709203743579116708368799139337644675003552427878065019241627709824630235103180526113728169555344085314313890312375532849812292440051570209090963789875888379276673642207442314019922183324655544704880366310306607579359857194869712590802616083789000324649706720385596137944855501116287809379472289758428080431021030262853371222315866268176519205934269223801897510240792367900304177651139484875393370323722366679872762875818027846495879039650343155215250770050826468670035450599953779888011382442609367623332150541254548870787499832930464139543220293627811795151408326725004901087241060255396532823603350845792999494496123537162876037142261461150688161939160651228857700027668042567524280078002637268185729094709439636825617992066103845949356693377233002169147747264427403764267684945441416896846981601989006168337947315214825865851533584022806412477569107709349785355234344158891731895044985630723367388087923064088308935063868981179558444533554716020991360174318933097760272870494800086352616486115122505128324934149415633864409638191137037047441293111072304693872966141098133663411095331190693818099102895674770509619197332347128904180572235953605765449412547324768406544143282869028512740259411153010053554050988190182495336841976079831652263734480214721740536765247265736413039445550196375275408236912351500878472524933355357311501905486879095132690901058706181154993857288716647000697893158813419835341516972857312567281081778552545370406939481560208879590091050541796460925473088416145631798729510607224450173598979645562681054404643144515590336566581242706759774369609761719917815101456004220506277604664550382321519190600208951833960359096339259176005402776311600077097992321561029781381476834398998429493169929295864024175884100034589341588262070460172812539613169061487409059625154273853486845347850420937891356760017757558126349872480555181874490407176932169841505680057136362591743780849525162665402648441191395483087278339794674508698359822298782287162770066795904242953912228019988244226183040629253826119791166135756039401309227402244315441251345016930108145293519688736823439376337693354222289735582732780281247239524052690714561914625869515910893610173984142599739123306304844028583744144256469089784557713628847666946238133522907981969689492192902277396788545954824524452017152694668876954150552025124206733009226040883601749719931083498244562382705300145067198325095466929943675209176274643535540181782166913569148971360160379323315191076788742980840470346559862358417175493881174641734826971035618674087885809982773192730865232246884380458418861888494633175776552570199218147110847148148125465775458159033287929804404255678730311759764827854729018331195324869989101117995031923606405815157301208771483415099490367544105530640149731048915423585615553532118823517612122851273176421168844390688620148412140099749609776197991637360119427366691272211238331745236448412130525366455171309576188869383249753042420716495799238186615782465809244796772330716327599694930748317736078625468117121018690353284094847154677016592290460686164495164409206231585092982588407979376658908392756496682457261366611681807901152116943437074920836045644563126648322438969241757213854079768193563764312022468813510952144691144420582431794503558864152866552283122497556524928060371812493701236961171766680350305403473089634942424865891207927359000148022636299158852398712067271843509621540011515729786960660649654902830841019336909413260096809428675427066447330463313497335601516108668319477219944392397932795842464212767311025421261498346311058443091931306473964145401649231727219520595943131679259116999791976662107859716112006101345980548573908468392265647881744273389053655917332941305697916154727764340497586324158863499838003768309313438533218244119543960399706022320544546635154815286203814560809121952308495652857970054184186566138844190363700974700176723200625951112349748747864698661688934026393420905921676419492406949937634643744736269425323793673950315451522702160006183181113137815991765272449642123822468889817936067649648410822094879935484211061246407687823296205954970679786649885654875590705224956218361860697515783181330955118894984521721480026370352707491673525425464679432064709322339973801222681700045844633892766752866075765308380754890523663639147408928338477521715141516137110563411335308751116000717008193674403671595188098185926267596122875827583741380612134044896213379747797258492896462962066267857284303932821107394500055108666650018283751723151558592640425098376401271406660823849000771481585965466138191868350387181519499011441259975971026631323160128358763143993780636385705049909822014378626526457544787583173493953341900865656801436203138466922386039425015027798409131242416140257626117294180312858040749452485807940816014727640086334366526229449791171161387539765018600866437341568962777168335567322750177373967322097257512532060360168639613153583085708065832901671432897704365485176283954184536932523639195653200837921434942791280529405580125675610733139095741890990253178286163621996835044461236498963226004895998707301065754715313705322330751457778742447078576428952040895635634065539737750971380967657505363621584824129734767150000849789629414486775287549577678409694829471073315021020025331488010783075897745981404234430497686638983001031089973348125068683715548664353273062372931986599130708695493634053029051646196879684477546760786092622878696661836559869454159978832581660614943469047288416496835877707117084153249972249816009373389102658170431940062641250900455353846536397114094915204292312840009063933292429764483267506139092790592469529005328193172978677785618989591258678404985821401178294309577707616567715402516734305203217199203970632890360583223473594478666078521758629222932630027503037380835752759139385852020556417121820754311925724085358131743128677363676309428595731251286355175692723979928703004972805165401670850136997337031824594021578984921262032987270908705769192140987179542983239839429847026913597825801044053094679096499310707080392925353703288329574026737169241737578995376794181876707376062939493320475630277710259678709685742645795928418974904337294704222177003496015861229722739708896125991250794351345687141999210054503509202213370494519507554405321905746404607852640323754555564170986948184210075551219069133875670368801770195566977823142274617351905528580464974352986479820673024180760847972211147868624828705853694190537853834505386795382222638125936079899109159133519790922941030276083350628543693060271753523718542798695244098483454279479154929172916446918130835794869214995837509300611949211528513900675448267261535514170636700607478524917723123316111193104404770743610622108180433141523860356538391796730935175469404922510096738937849755707972669039088679699905206920199932719910427828346351407829717945272468688513009632927752367980286398169546726355024303867807901144524069786450074107059062512236011504750576085669031485397592469610554158537799233980142410504435813447540952968430142938560495806957102860108781799923231579089308787961308648689848194745832882376106480032313990268796822352255426601110937559769286307764254477578304675340511509697146172371458382136299685344101898645416752998092209769085709587661620318217922697004374116033219443273222167166793744942446388715260065396443939557532998079250224488648264340314577140198546518750287960883379757957546644269504057650014832920223241954956636391206046508119267349297620380659330207895089773630227368031525472004030570288730210106951840808356834551347013213445799493968968864915659981429166232247348997250518546459147031489758849699606424617330686542214256805438845040550368775632063390177625368866718058993626104952727299874915974438854396673048496211006728497490898051187020829609297452825783239550546171458952624956809035520717255629033191368178242979525483978521074245899225443448808107737319480917688515802572044230014794524896201135581778922068331262320359047367204128910410761226652611754462333575985412052212829180119187162623143813442174179078854700916632615522172007630195740956288332543113105849324328613241259953108357791100172949263200074712245230842064097090653279721097215413281305413823675051075737990830905379864550705867291282104081023234028169756625681603000992949256248549692612166811810010001883630915675461250466679384225580376089374876906446960031225371517340902265974827983087694256735796349909411760417710770684655641834519760088570439799177180358950123660991142707861696111327294499537202161669716770174601067894053497860993139410037946895884394941505325631310935224387821612580644113198820097225411352751077578801143698156021695759220090882473083100454155441832900885446836123354510738618165543126732795134321554340251672118874096618740072485393599075410675417922705249799060505773765071751178975315798432670203211006635672181618750517835678830272274659245671732098453834553391604878151262564044320153191719567165357911752284915376783097255409903729809842171876942672729203044943127265008394856955735324482233596380484002576339152774536466931653886843023161019555976293451541009644204939056832747387879649044292580969789113304076156218684042751621420788119860941209841262458529872126750158692651209992929292127469195263278154988802213290772237317558685119291554938258717104275116493869211799005821460345581110696084813190142046248877221544796869439299804746745857026948133500274198851102104762739119371810778698507843155598874064097874014882352456718310119596067166522557793752870246327585181849179463104158537944011765205549313336036100224696593620040185584237800839204507190965883621764530852985757550331587124382916624802102456858940045424683616646090952405400233819935751210723106156946600840157472937839212621679237343392063461425778482394843733241781285713699263541278078772797492452022715196170306748054901372475629935440976195478727951399080012946442124112328542985486652006207923228887503574954068872158475659855999828145474163736378902294805678955697903722807280471098403137347686612430233525641808595476883343077892033074108904471802849574015329828267846610842583378504871272142853485340374916774881981565429322482624031956020178201737485800304216690420637614078732570963416824660712184664160814694101478729618571242663882161013795153671301825840401232503319235989089425495820052231236873056426815891521646941909719314823416263873964643160578911070746797161653212138682254410851519835913609659578733925895636572232221479753556150931090000187844704206442626591968867468770772509059323990092387464963748930650731566738369649844141822752016670815753182159395323129824237915154308452998934350103929092222182223470142885165727957082940472139561819546326424120610158106882107790741609396344119562365002554728830480373205591772787001070220745632576095657465461687679753890817074071783564606837774034979151952677031880921748658269539958365927277430796836074887227364368391839584917712012006837056441722995796753056462252634067970772614070564008623135722686052762583228163861511881306687236732304710647112693911583064733031394114839293509041414607013970565821124118099706165829736411236859186771958906629751151016850753692283946202798674004960772772219070972405911175980392741775906924029362771698948390310216763150486801914527959360153371704959410437307153523208257684588232523926854388757325606393341807885101969244511409706670499467810290131973085513885103675124544258035544937582428617333833657658844462306064128605890906136383968407913304442011146442926297759174941233319075752835357424587226832990850914614938955693139303060397963571759909498214530669207456931913316149467381415854004507367164819096890544508408052784982852961014244013915401062598859422257193260744463692940022690808710088685610741511935732322108150437614439935304754037750011418681859301406222910487338870871585532759747014622956629958028435270555602282349708034266909517977825619952899781969933838559493807976127078644915675932921740442320602878951193658070673634545847094110038611135894805608980425789246985101620893171989952660583317972275171514750347142957383189292167232548093150637997342779765335482712141884233794181805439856916501871992023300133188287173381567362645074673209930141581308530244043426410266161141156006887919324647846304754151194211037722297300274545282014737658816985899813933601061338834531215377225364549014808480896708459325246364459444639970096496483570421387190847493860450233694975227318774350896174689306881838461994644001341130787434519509771410628594897468847130085649344298995352136747601832363351509536489513079218078901741598211808180368761897692551189029222677634909332885164665625048606581350534403451747266884388558995761868599950659179998926802399128503505746705154138964119615615248020936635525120124284550338827618802041447410410654429530664157501888528384195640191245853098604468556983347909476457937207729208072667169414258353362744344193859083056808069530277894927993421322920260403817319412996088829998331760950588933028043415602102923274403517527960627522157500379551822155555785946704504563353912427851354958558385603774140395216789672487216607221089471142587418720542207155633502111399526837074493279113539200245450905690242725219748811861997761612958505647032983598496515183502916110733140230690155037396488676096985550187357684293747162595033817389291597240139588725590535225580885486179492471395278301741837710994131304076694333980769645367323214646391376400827100334792108728643423798652624067450640029500804258752467647046624950061881648862079575663669772059842567018753246973364715143664777631223028345448102645256661739152573539735621618249963619668470231972981205920761413793380646676396553795098062104350508111332146062728099863161600324660793974700872939473857665589392879358119696663282497828276519419544692686658550958064150182823858414516137649839961914853750121883416286198441598677225287096187030361365003042749326992712698112665395107132822596965348928414768102820231735337831975024043766952723342454962456711001386087653565788352126461517769484620535706693106152258234408020700343553056745437310294648056508679796112059189116960233402867495561340133820289891532585567826127316159441324192895611298882851471870473408295293453743500166474737399085601433760394455341623778983660349457931133935973736846311667449937989681424558263789549426423639140460846624239263187830519784986644243567767899435495688086843766976991058550987239276215244761029134518581075158433297227100999388538172307295462372996279046300485979837290391587363585672277870755873271538005657488966344561758820367783630159582997297078784672216238864114346228659038037911577012938565036917342375819832652535418598491151367149189734368330196814409754821948392159797357722345117879902420039176405874487780674487874199982393975352351886942622048367266949092258998836855885859432252284373861493212335777041037547877067028071026989197022267195211555684882607165691265015945056797409140445956272651011963771533531727406509523724063471652982848326825961018508820735026305424188390093993347749659190172714006605796073018884149303188643169357828088353856693536885260093937651003314821521611114451532950960736795554175651019424299783646474201906595264561099052871549438035272722128460889623316491900971982779645985562826120661099349186742640934050178618143532492616363557877169834307222934599684503487140951475130903900472724429165317611022669254313331002088276114595038226023478203542057921777469634260700016311589833945104059347238619027686325617463861525843905394992834557487187053140503245160092353656095683463261072925171226143243099141399291118995893463587532656870812872877298113829565715766745188097915946451362467355054518582171293393670704548769589345878029839522643058887753881533104299785010486931215012516802667135694531206037530793637625468474178985556073598345778216900497446624568027744145858674707516221830512448022159313847601762291284314039874243646141446893795597884068247324034904510869336092882548539923560336276771818489576212392488529141541800207592082180071172456165022601956510138970582165788615578144596141246427006745213927974092278721152211457579698248478473931660637153851978558972932071760173270247495464775399609908799323439246428860227763178208577874003209748394054540034109775560897772640128369462117287103226253661406672446232959554159338676237814075172253488787495809632612527819537745814409880529766470978357787429071807021492389251864963613816284739068603456163549439015317268103625003613102687843858558060358208853387852819100797146856154406326783661600274508480154910716123686276801629009925804448837153674318483517348432578036504588800620508672862165437091505085392653140870115914402462243057160815073173050267340441485360858409941730332105690896243115943193590283740889750613786665921794723240627357610121987038275299244100606399877992020445482737253584079001958694609589758304439095354609356728899998045873231134729815170040717360074916036775018375301909072781591117034059405722669413412035407158065915571053319889537697843531102992891865455566432446193451505973413789846280984747557579312683592504629534012951214412425261653644140641038907356977762791239367857647590776705411984442502730173999848337310756415093275347634631272831696139647477958014787695774828007866515024223876246907474082677310555366236647455395577372215834204482543160678869120795607849567692561614229745643027646165685187534055912307435902726105414859367178573822348340766644250009082637627718130594607383220512283119498359089005600725467031938641562493588221743556238870280224739497653777872867673533353827316890314883768246459186256878959345311107807626075718908653887944613779076431368647923914113977682955723200531346553169900597732904196732507761753863702710059642312424024661486775359392402340966942034122197522449964140856382807766843393598166015554770756472236395185557064038034699279682277587714018804312106133667970543846074749178847983330038167103225364516484887442906140261425838292915378255555868662198639380527009032730708700067199050891996503680592972435988120154745363075122516118512429765639558991444012473520697283015209433615952534447583041088605557218721314625725460019374584972973276222526975436050226407029780736662645905421118229826920307981447265102967700278593908876368592828810058611948657628174441463521056930970007511362923902619589042319096550447038732390762054988687536353254645520243789406787184831475784623421508517804206103855365229650634599304581727682136104926017218521703032928200868778915526368092710813814149859230542209044131903202355243400121339148486012621699507921682438202107299196253585224769140104611927992871898128912164332352769241665448917010310585285817248044126583693252792607716327770045798546983954566724608031480293511435150752953120609886643131541441041043941865282244009322403881100337552947729046050329122127767021413015063254592642482157672169120212607473718673966315149620580162576434976062347240205597874615584482828280570457091775410946707610904760439975034177229256163466417395630629996999681547788959148010530580973363079679113674378032897818400097813671418720785178621282330727663766918755946968282758305948375440336529599298345522475187183053239098176090902572996460269520623508360415608539115941305421842982583368925859495996338018392003998180305063335641615911438901930193011807127999236189493604281015521070027401247751840594411706761973722856047233218660748671894789379638898718605886848729181062395726620291659916188676094711635791178893549501468960658481103545249764597482283273375231449569773485503856840454065261578688394052949616976000135881608642639914920770764728385372102664992263219657939561741142818810731646827383426310036653351172635820266620705032658205938035049225262032719133881677216263217047303060013192888810662864198836009420194568418152044312312209831618431291222985186327818798794312297925844644113686883791318011516879609705799908507460595946258544663065651296826801156916438362368062612053376722148926361082725647491434418208586033863284631977842354941298777312235014154399195517662105779379409824240347005822443527307352139070195426856370440757428007212144083458195864291647536779951286791539435948664741327892163212243276805864779011476556148273209256310452026058814563944070431107607449362868209997704120181869789009086767437849786447106913154665546264738449033363785818311513425505054354294672391748695735751882649712051740513590507899715215817670593642878495728618330719627849362830363357128582439992161974398322285945084620996351664719775409103674327213898453340594488932121545390086926261043984430559570218178073307190781684494428879846434652637305543825424016214072551080521784186994573437077076718760715838549145075238496844107990283107105235829082414256863819248748797882502629590740921302267189409525318662038369019546175315952719310481093855806741572078531275460400750102838068170970667091007934683305623688576050395984146715911449246832919561876128269123130201155865555001444707070793280061893622206254304246184674308924249879806073209323992139114351948229000089274942339237705676215229561877098298115336957636474986328190098678593739058645612157591312565904840203480360864274936569687997768995007934120448314215547390053594793016383775664542418462988629066373721708128412625011173164974911341549163197291495556467018476127912859643497350694597398401308141408115890940280966306741150807282384603592099090812362360671412750486381848112402598299589563518077642928821733763285421290694575087904599512868146749283607808967671853326955159127029038430081782374536445481202832021468720535211422077960565049727231063052975210433559173575143370109278097517544732907272378080340560368865835425047592681859772250862526993155747688259315906149711959651562074905109776325938803931503600833688519045462532254318358129241255617125547838387201644031727875954615460993333330615644589485265470020246350284709475883105986122901728121247135824583588814582715786749892023669705903359668675811831887947881825845302658185884580728198958247074525529074475300353729125859243544659767555938614238654743888640815413730027961508935999626373748608189561534338001103576140481489992911028510115532419486929832277787311629085564758651633594967418223170931602476754869596095392091968467619433861878164736901493225052851251474624720458994869307599048602274060491320967438990272276981609104936576893966976021473841300684255008977400778009670525330317965364589855458869723576103369897870920018137136826380978292692716585744933873068783375115927511600025358410438760906466949042748806667891148043168168504671663769366521804705915533496999848181884791462975415332686047099576667505854950327065418168542506342532839691957232273888014360893857524909500118307530926329865737106272514388546188892504856689011862591724792388733888830777256905602394423543218270516373183564426811403905917573751645660912690388754633412508051548211399838018532761595766908409133166981147658671284020196216413725029618086418571133874181996957616697868520699748181323884198469435611219493006201788239257150542218148352837251383414496546116308787012870506326851210462450804244866674990795199820217341067066452552486117095432056787946869617899499008397317944338343133432825897683728094701758002390997495990448871838589666539000752232012263177408507130610508581269941948370860801368244125263876915394559492401521829223124157194481646169144358311805844493925811507488202940878515740603415567483298110303275785992046497571758224582505504377357692148171844489559489135421999985359690324867400032579010515244192771701022319453573868876291376770132500775828066676793669243630298465909024272674993982575952078237445602192174264045462737966614720675685668978100799097435860236575379182053838176070873979766623766093611918805024037021139133325423325061256582375087205914090727715781371909428433893052210157415023214310433691532811974274046298770663358529236953484782708674446792905813848772228847285017663671434395271852506559678674687022125444003373309063673161401376620524331411191987497495424392792363908189443482308745081627153272240567575009268511555090915075861817764056250847686942073987361215787640018587174561920797147245602537628732160641852049313647452618626921481068478144857846948096732005211038138649274290997517995910558406719309495776210167181899703117774349188144764908688485108145184944035473258842003419990128054017781635119089909900953289429121916983641480547805562516401755333761666148701803928412347019980803873753327745332119568114559106562901643596130699670129136937529849921262832419479900916837081425212792022512123057044558867087199368458093427114766450450295562773194910799200813923623501137859442023118944059026431794103546057956540548011471992390833807029449372985847792049759614217679938828615002908234556212662908498278037164396075374067855213279833304973472602566770399706717109983110517234629876059618725982505053632245105817576433748276123341701315362292026669441271751123256932371083797736662254775309469954201938517798645741632764298083300820578255108033076705023148835603494802219745165694489264230462878458587272464201197510378660820051429636091051910077911035567253148162013072011284489753300173780475351597751780830872021275715748653537128178079887334942786483306382274726959827038353462031571894844208151882213267142503446182294480108457667006737043937221107898781451731142058167831524725908252166080220532603139477297629046803781381762173432004089504626683619716068668087015025092381873437276664494164102970066079520469281419182692150631581812550698283087232534251267867015406116324682101941533508242948566268542664453148671606106481642639141993826538817803621852794892970263217618362863090204665222107183821050272182523410521724243476325985629998998520172945160665347968870165598150239529876404551949777017060628768889461850897878011173681501665525985662718995245022332946287245626178893784573167273533208152477117226891169962859315611528022371682358694390082765713116024555215327233804341426417573218224752988944292527249187355701795039131322607989515313136072184197767298679127941451922408849934544144172506237726605111518563981272850577982807605911450536708766200893699241438472672458271567725890826427370493167035863680808969426949725043078416230982877785542870970723353629293000828965192500557618336680720636265921989730429228294317765811892887443840880217199727649449090050855299741533550551358406718679412639346414398668993836220865723452567795127690163449691002266100103831003319961225044986758718084120963963969780821484850302742348357894527906378430038169243229366070096578393551845531312313322709037611958777838457864753652277704858167314811596733622237539349724953397530835005025670704209678386040348254066899002141793708944434992983206344891734304413856073485092548500438698065241626861398708337193708371451474731730470658429340392366546620739958294545784443360492507231451508043965211110715336894096729690472061003518550201413405659595943302740007362160641322138369378875863351599125670026502530225974269031344209613221527017328549779270909601029351346324227016917151348500959554209133403780480167169012027042613518971902080214680644395199578538093454628690549600210071377196189182610090275697591444558608234000811548548993365712756521471194183712161300790266767673774756491515786219221422716376109812244999965734533000340685838723532690861306227991977832971742067303369733558493831107776454692588259193244557372347997612375580162118028633336990392228145487279453420512077381641163345952601657183931103915309904095302887569491947162696142944471417592970153172648566542583583835504218081256769654838439832607857274880575491210286153219994255282174844619012296889301805403867121365587950596087977598503826769861871987094758388596451115671603316640528202155416682450144768574207935405468434747539336615835863997006018570238431532115240491865389018653308431376681810024949904548890337566487354546855077072587876672662933221264915228897859596305097262368158445769756358369415751800605890738197748385547957050406390200540325060635979771342895438364751383080978720699194803297750313558239853031004025693952779752319383692659786185292848536894866313475086760966249278932928028614771128403094724846095296465265888080965094894877949212535666778650233849592975926757651401186925034415875175144724010823201293944374666117378930874477841843778009991437414929189358887109974319905629753939587565040697320392574054331576303302832393535739788631170236072107472685095837893668403618714920520879080346935673073093105982233819028090242985845805960519403797821601383260637374973031331923836316218514062746684400831514689390311913407763141454404488466176183994201909771347533200571826307262156395352714867795356898403300601483467344670601661472538571906325272483797758258581573508343821745038570229444589696933557039532688047666363021845212747094980033480265369383228785886632774046561729704042425977192132697920544819000509839406820595346190541227882572948791914949541065399266634903635074720316134011140596914041259023505609281530792423942642049906511356007603889866622698934374757507968895450529349534541482663214759779706965773090389208574741766143893272802521997211703499052719475351345741676166509402812906133994296305011932574579213408104746577011068670823435508135582636948637319980963261215132182434297689926062616251202788165287679016048995270899279070359648902054319859605029411943167076053447027314616524869436601196421031343668341105369231638433426944596741140655448037157309898570034425333994931618635546947720121901247110751381934247618493734145626295368567586165629016369541433814118101939630536557911090177088223977505073372093445642958106349134768994087964805993633262962352323917010806645554147038483982385874584921708488397250209825522031441390230183782450123141662329560885974222471324954681508563967820830355284701018243990353938604129515072972484034468758968204287514390765916687066794401507129086804444315845049721160856033894090990314475008838744521963904508788338806462483500375090574282209826013450625293442348021233523409625557183032031872869983644545998083521167283300775880352630900857927150230814311077593718220382927306944492857445890712064477158563444093141129189884126424745015343170200928067798582790909259264749051247195943022116960096131288516224990663598870026335721652825577391067939699299945677854218088724487299447490099004905481707038628393146751172418950044136994493807450731158519248018110443594186046708674257620764443769651994448575615180803041021252391216259899056951826866274026208393191690897935320679202785103428776390846048017522142493380096529294204968042462543125254649591621893840642529423105308765336758734205964378685123056358646800077791299050054287350082092863093616352551298712601350468265684217634082567038129291877073297252778523641319861208098292401827402334188611744589393170141357888614495810407412801527586713287502370196235052162317875695498598260040848618915676454467946073870551508626100802772267285020849661744608886162783300138409541845922582484815475733217401202792866352797027620873440269816413415290193569961543742508276600342905948418257884587636386131914771874441576488828933751923561407177405248576940925642769763624493022340553038833570682552978808544251665925660191622666817199270403705474166416867673510896144434713179653575546988441914821120441731917682042048820348052929462081609159223191299228739323193011018500529038411437663733938121924618930237916000934055079748296874333219582039609183230586710864871872546123324922711089484455282506684926207664086040790539232313567647765228196636516153398658064589971052652796721997744305034771877735543989292958585835436967907011718276414980032313816098800644410219824201663304786496396625376518776530269124672351667348952473887305678824792653555296220257521123785623303813739422930579522809116380327164199050696024709248336066008539715030788281053086433967793627677928785394809624296807092218794466420301895886407663009141283752388391727589081354514393612923598632547234480301758563396001062517938468751925153627479919392998922318359439643140135783787888225657542973659954240816578721005079337214660558643748906376760766452965934377476238229503525933572044857532230171578969582362948094003985084993266821026668061895600718737709377919087487887859443659271912003305241185286534487436089943138922180480505088911865727294430336485675061130500689929884374820628438452984317396048861738643852666643791539053107290525236119142683974992427742431838862766261269562067283197809173495080414928981612621928089594840825852354865040823512411377447204036948741013665254571330390367779034517978264519422928621307994801127034421502391367135264644030662841031691532231172757076979912982236320070317579832621016007762942353605016236776744378516877441102820729338891288564773632595680881044082404156935696785904668130123669265012750343537549511031963883696832575652771660793815913721274987087883784034116336167383107493073265881744295523505875878312397169735634635684281572051903119002650358483967951748772748275151796104635736212865041471980463526770933225278152440587913523508244297051527287311209837669873033083098404667221817447192293101716404683798179462620736872812692985585518699326107676200054006066991557496915954429514716212772520791833316285640904394947902180313668215541132272948520035828745942230308304039680212685894923814828113632942264671926003109903730385594710460659139705037375170638520882670123350371074222024696690163555930901482857601965084824830064467506001168043602603788489259176974477362629379208745618285991237442874079731695529794282942489653452667177963768352945018160627618541705233010689013538956431117208792652002682174382956053551052454379586324753925242161610124523792780444344178345301623974950189902009027297598283829330602520065820263355212383201100329734213465340786485181894809260170994007631087544293577641573479667154820009819368200450775879197963330211551445824564148700627496118409059702170416894707392269395270406987934159697459859427305483705624696577517089981995397990890120554203335309301960383738279970943155944168941637363185602878089051152617291934337480608753160153419072243345934861641632697804449588557655384116146649680697887145386941417925447746582859591924984033805927644297256290402988721469243767354808837758852613152164683923101656640631179538653924813879351162636316008949998783530088869786145811963762471557993022597399743850612847269203355287551572214570100149518355339803086115675061643869675434684603390192965400886634399855378472620658133656567315963875611443951241925613383535020691202480785746180526185511548474811785051123436589185808649488510531941576698826421850728696207692055286730038157664399599047945868126398583422641560903101970444184550116345677344557432096025115699870321056566068152019167356136663936002396348065473791016107965233408575801469692276623282446112962803842038846352545986745900527734963532753018410454242145708486774613298528426503878282693908671690790162318692145175306881726800480962915689467346910882924988710327517813407766204590175650012788900223392238376197762302397871135210703033055819182201873226852272613729503161872923827020922542268774125752559869259188241539195357906653427024964927215059174729359743745530801187385896380767238342521496809245524706839895077118950165876009496220695699174439409443434872398164496260026463659500358345097107886239871355057508010193000969803589687379865482970382873779244107797483869951490717551012884271021693711974222237207608909249472046812921000879193523692706632645825272815668223059570738135072777809925406817015190167507306447363106170285882699623316631309044819347326233780363166175584425103586718158519366680232683962571113347335324494538605310887844718497212192823739467555133848499211136044727234973574206252455899721275059207342180719904760145664841398719448818839486398034071611286684481351519779438538282677723480090171392876034792972782993082233671362696700764525126021624493004570979702625867165597797340809589892592860597249270595587227186347087519839539530793831239621593519044423970536977623433712155085294589525434602844355281288887501194171507479721709814536489762479966010121930500716516225230332538124343553035411026671547777042072480404855878039342146282687223873327992472457510214262266859457101716293976904243529645233716198029861015773541621428785630651836367107498531096871147983189499336681383588760204566190416678558701669087806744944457529293150085955291284680769538217652955356462162152658355986738202881170835957058144645970648838353857420737298151759695264176694921405844007544307323587828987505264528208670702737105220769050518474031172008566906323447029796848183925054445058419710664508807172350177468971051348684258148109370984936973613328403021860884271451564664974891090434519568092833828662541019184465356961888448580843801798939110850817524517477116209840739517030295677746297449608894011825608053446836264486210079053825162254985156690789510647934108373715041146503877663945106350174372417668281373876878457002869892009520124001288699829368475649294167455695941020953968183374960597890756843157527215297220043858429295710399171086317115963266076190680189244482346272088020911444659447720494458554861247693988657619795235647210513178767306197072967031007899692372350873333027785910841524370285914468441395403906611057955076786370782890589529535988281120495815217289322977984280113417894848607504916119461530950244653429578631222264977439238983893935183057913584842660851502030230879684854892703146771802355181418293332732970450051056586271963885328439443325440676291639672336989603647634106117176856236402881855397300810210284334672974374370279192139921628002199495756671562931075019804885761566203146598943705104613992635504863916083719450941963866923158801907923398628317694715279068687201634465047186624174448476556272678846605412700179936762105036769070927181250931363028930190172128457662606939882824275530554130184161414771224040261914247124152506415776017554266821032907181156869125772177561917025451423726340870072736420489590487373993584765426087285872457594445567211358677695915600305200173876992971893591643858457481896529983980026249944290128284417709257168126863780363205583154535448252468570420302027699986776095921735005976323019947575571404613301250465895774419385297146969849690734490627698678299505895650340573843735586484190959509875208408900019717084496263880560278702677135324658996439925351790503093993772138131534613508725739890162360099601251567699917067323645772666360518148727000378194751279816936152855210788827830941149842353915313329289829317784431083725219721687672018618312551861494573379453830706277796541632251634071409629456296196952866429137172666598540806053276230799064073409283993134661038584077881939422079628539020439166660562047420032567686399178031277546985422692097938216122682756833200457046781563204173203574322313994033718157295737872400485329665987991780593499952208572236625412690953938411978491191029497430188780545576664147456129518924240195127965418445268708768257496458268148620187858235769648708663326756218011229864775745798212508100065967016379331450511692594875644509022556031068199275286451298185287312351427282813266180504116825393449259797539144461124663010097270596466604681631763905635630042162492380373059566821749761789730484272640000297210658509544658599438886289801747806121417381432530815899531236237837514151029573201090621924089841410640180888374613125698890398706102931242757945317737918092912196052721585174800496081177232078223409370636742358213593698745005850838708321599077872255697504803800770862756461461345957260467171127299535781066841178422929533065993314597908915265358821331204669840041002736849082827485206816212861399714958189795213843616425518936262249527541414802433986083945207000527285451744309263187431250294153948825462290372857986004221742451009899665387882110350704432704299520691704217944695736755701867168364809732437688218035172702273523769461618231623892193564597635850097575141001087421052922973757234835473349731094378499153240672659336778032349916894336192539461751520300389158351439746961389882577089959259767317334447037126469156683024275207816001359906968263294871680725639914052422518754339540975160372173107834502525656766527472768114033912826569510839399139671642569327113541336400610866634519867724769206266502526244697855112240563139576068375250384726210994012409133663998152321869986843778004157200772247964911956464845973970107577678568253477226171108563387262100013052559867160003914117417184640888433205000462738350620662342176629212252486336031378920145531806108426973610891414494137841414972169370253731726772225588295863751695443526282707410942444242612713946042715561743445304391799643984831086671806808199236607534775477004924984847549701117872830813910315320247238424710937663128576463394238142772581002623211589638409202185006170632719128827151333227581368178812673200350912936731339023909983606992728061487029659367582182957979070043067961181897174576652111065516517927230013767448647588952879419762342671436065793766470529237138401283101871196770372092968271205091246088682519994861340406321350956925540801387745900205599660134107702623093258059939974025600833239599846083819915613215368083359386338384396764407083120119258784350503348975312434816324939867641647050759484651358799353357266442263268560839580694927655140098177178687751904522431100340214719266416065355912293101885673242943578954706576163914208699877711112650181681994683469310020667736348128272310013538184997184350910900582774116277151003334747039045861293578030837539258588441419503726032705673179913855063187385006598986367158748699429206721609436053948022484619564899734394766614316291240418284394846795837714725641394441614842311176903528522348761685899924950843601789001099197566243658898394191912529198844099457882220707404488016059354288992532988572735902275817918300441220949379671586778675826884640442826832516579076467740429537579746598420188494067870620764706722328920849568529421980703214708948081330045001731300846146240118755293490512506170569773223464502632933949609946986750959999906287752008259733708171883429597891143206733698025707291984521632475095979169491608672398109583108516014969062013601784384948252042608289079539680224849899032682915513538805354355409848911089271613425970407578577774369547541502377961571975450509910131258233524094022196651188732962520081604210062363240687188531362982831042775549263282369385581886075760717333829979651474732253470244334561648794473929539614420852997736770298339546959416701744083214784439007054619161189204501866678866503594257475705905812967126228453119611496573420096762250613129796906966933050261497048705697114178669175143443835985558323739323716132042754049028453538538541835022563933000981116224224477880851522992162233585405870901689711982392847506135700113800886981459763446908652451018164333827325996089247312438575046838697777053049800182655490297365104279119648000929360841393689716633426891167132015022569039469329116534654235728696776378132328351600517073113041184236602555886726291500162307688676580343445121697010925392870848860670292130889844073743063382403243761432630486358953457486604066821022327606330410964529428844254268186270408189287679475594808158491915050260433703931958938340344358836964609086187721012779977793251377149235049857106253022910894094515696152629201731890791091126202471787373235120499905947668328073154309134515681948056611268855747350816694141256961634283572762634640057332132607829195708688710558509280970899262875301704499968354154771150088983414733253638167993136759093777609542604551977106987883646004665125591092587350422502668357337311300920561995125748024609877296145458885242500950652559385956971298326934858535437114307228266238367215543223544911142620989163692342752050303976732255622502066921562205447253293283724430456687540315262125981025511512951533931593242534607862074263102118065733436239618863600630187138345175731789302675090929499339477185171103114055742200976160644679848865016021645120179909847799639534218335588665966806607465179166198125895594059904040690482637494263301524396836212518443053564953703970418820108607316511878561731099744370064888208299834509328155648037880015247018096560364125200648637192251569109713771401428448100428961838779580349934627550134457605696511347632107123713975413946853523256383679991594998980823635272494108478739624160582741746953444338592732481425199591011938745249664485091187959188952506658540057830635904282414642674090956575791797843806070887784255618008742981918874149169411728509139335794791582225355978211855032770268919238709863816866757088891542184409868458234213074368106425202885221270592362377425871901165980258801022296509479120298320217880699487568937496499634786483413990295684018686442519311959125787413203100291568450402907571369589569276821080221431325646800826048912487202719793872077315084817153603124863474353286045512367191162376851617177915784283772857552673405521405367973383905306430946820820174661372871132135615762328116942106867327444608716044170728562043424964964738746472615775660745698801352910757443095153175622899372538814366541499814876033204582987305627369794162869608949626437857396688199050886760485352160804998740944335301073013273068104339531572710834044912870836004422708225396672127441889016499321361688800024464324014804949724796019063364046149155854633503427049066024827912615082713131534004902785840802674613746771760015007086709864880987614014337006556497543177668410206432287525410361040783251801962463334475358426648749415084745629314960164440025867174071920430081342676718030028182068826099439638685061409165420461938027053297906998003053115071319854207125119533150197344096405529187510739412038870468767839575198982795021341368601872547265851694292754472674871654718482203838529588821739231398014865602640491766047191742138921646903031378845052902420617509493101860790606480303915780836215619328622240618966244501852940112927010623114469385853614728904338979248477500587243806662607656546230283052967075124624867185560749230757228692506184168899287683869053090667295540884134241933521924638511862030954283662409650278339069015091544383910853543090416483391003647365486018898198501245873489566156628101003956765119184844331959929745555547572044766410492195107291490149673243119474806870079223602187383555177696683820249658644908640222851444552038522598145147494218592035612361122966952799658498307214799868827227799902071300663078693985374914330658099741468048849297730259468663636270003527073915630778166911073815694332633554936485002677762827782964521957637600981863258296417769975427177113630301198558308792735315037336683474732786938969073260942579493630007786591507214499639185182761233561072233873427604373922828843245687629336383309987194720207540382501181824870210886094511773032632713221443647205745234536307773448845753782356171312245708978900687533540093640932709103945132308904486471548852742539822092114175757577281980653594652875331595369959130885635255395947885368256526446762837926114177393662814666401557945415395669813882795769698046783188979816498748207673092490308956291614961142799037187082207397209045468039963614022277798908133430103789854763882102315873212878591421809376768493089408372110429493664953540387836211641298576620948064830253691229956707863715208754510011926028249237754343704693618920396625166904008489725451867913746353697187726291186922433464811459963443515860314504605880492935977805824415629132369679856738466475678253930170187937436468845254459649855744639396166029789387965025845063380995085447907364801050777684915334334446583161720089568452414793919808807132772071048341543374461100574079543170393281804593435619969074541962207929773687317338721593529401621653987708352906174662007481464522973209964747641584264915513392720916210185107361871810212098546613616840253652242286143200817236913587578786744644517339864609664880325774024175998657714359509552037820492521732272202815764850885273315491956830753948761616557719833291085991714303002978968570205166184445713286371673628778216550495259308750306096763469260521317021780387382060957962053108995905131749423907449831758080914717293592009352282514568396610554914663852169197915642462205763866959247936652345693233707018386914665350229631549119693838720216261841276938229269244245619326119635908191951646310590241120738601676594055161575914903884400271424103592555456760097766962851077891171534243972940070179242173568695155459070464959563505524825792444741286728421130558073032127065262860702826492038971304569925367849608772699400844112804553679582880123550047781250034521647883152330332810185539493307453196506900771852488211510382434496628797773268388585999190615907548091845656662577382957335572907392156772527790535157521915646917979624349258372021843649409575857647241279599539223928739415508273820432624237451979452971170694007833342045708833170147889587799953685055464652955697874560676139490795962367212698358301877421984113781435395424079631791547886884430769952259014067032349895518977691967815859380982335733765763036540591772745678155160192506406739367126923135216484505357914789986795437880496939765925836632456951853411167473653070510303006612827990795882220382172336616039286065563307601803353696257049520451032596411420445708563533725322433778241126490385799231091970564663210376746772171057547059827578737238159904242094889692899426384357450752250427488231032753169912089583815549774368158778858023212065166867234741932277766298781434482642985044842617281640687481114618865750650844282677075514445646634338657455189653266644494590588815286304191020443374580472581540389710885203334456045794472968666123953555999883795679365102265944537202545954349921967947115494677825987261284541940632579839194295933451932697937907865151929632023671156928188048924941322386152684358834757250929738084703619500080859115193693026397138661357270125841564556844233056689924200696547839474940455588441757887050093530914835548381898523439929380015946857848304160350762679538615759878472331998773805411575724250264084327823926597838221449743009363542978396834719681609353715952501050284287521121613660844946265489271078012748515918131069767817626783841146165106267711919389424440847044084724593489106410984197089897651463336806300973203516508808674566401028966643611030658899061945971651929954017958645543657791463565425846893708481230472605193313807260547918631431111800053675788390670287753632405133047994731170579167572357820068692040510246053702422865966280312235644413953281097381188447580446953449846929408695116027321637610868495575131903649633581521798195888063569024556219443944606393573928020536241818538274280765073607842125057465773126334513385570085437835725304068661892162095360250072327785191004668263229673781719939126002884343109248932475004110348775337723088646871488718476137564980815046555752760543493525491628379387682239645806159361973499335973983439810496129130052035763559631491854042708697441108619615471347727931926554268861486713265876522699501615721168508624156219062496914511341986975165992880858304660362366752709675961671685499086445673542806072477702402222559832280138888450767280561471917164301888030379198135817848881410864145492948181203879153092625352159454854656724210275033282759897139662513515367918079182103022976313963285481153398297717641193063636373045279875186085251968028278426565591535406413420289191217003741084799493491980972950419848577172877917616969115790779073773053791706432648730920806987266832840031315842592052084186102808420189083646742057101297600802756259367477061143975018247909370300089705405409173394251737831155027367280572711261467079086338186980487613830398939926454599197144860164340810611078390524222258252798773030223494023613920631746713036089592956932799658795635620732947905515073116023744708681015835188990180787106666498230431219263079570200349553152124444017195671836949878487242161605280221750506313832906957710736376845528862716101095315237142728947316811690965470124655522847572307631715347214381861076373425299488853152933375387966882047624449213610739074104925917323189134470457004553645216855429073343797545121100545443083332568295277154517159549348259329729152725523340399852395905791311936378738190289842866184923150653035961522241198013889776517040925318562572450848022623295900390648703979148751021396928211313191411416100061801171243571546666368385489496063050917636732517891988085703344566542314744928093307368211180013694812297119069478936735597671564716129737349805109609470879748840336025274258917656690513518026137960132808253041989525614029280601754924792214336923484115775116716529489444097306515683290909397751905664923408127299874318255020542222979999176811745790976287126748534667632161590462321780407403596986915256491669640284456673994634944849374023294372935115813859253522824087589780094522263578495818141855118393393061744569300635105354379577674218757753832735400318956878594254313279694473597235308719935022933960391792978335428028167543886369928479405588907636371098577374412485793823678527078084523968998822001007014561061217545209773270360468563698278650482929465137530751720930319527980561936235552946056910000440069785217495043726692787291645906478155613675965119751193171294595747513337909703259420558576658644852406387706621590247058846596170318471884630996059455061256934080577219815980730725989730151448543030909624562421866538966809409054530645102966013666513132463157987474681522604069329704713887570090703906138261694767647199986690709194407405066305501126560584034138737492481074733419778142571912933801059034868938101308969343677340700545867948671193753447554351648229996541675600197539678560693828999432355893441683984262923208587805777596490947500053781014200415321026025201114191242480421905828695096507777597175559542066268391913108633459607937788206002776403282350517689488757587661203536230995036290256616477300304192141328351044821353538213679217880685567045439020789006258449288095785118334926532925467519830579676913051150265981991891110705131546210690287006145360980594603345075567764928002644861091368144298415233754032226193309178071559121474751580023470822218795112493651593794607898619043810645898693448066418414236001577969494657197376367920890730622377745759719752128024999461114351526118286774514572008634971922412409221671491952901675789849177111311614988868758466572250909703728966839392593502139206887149103908084424181772905338887554184803276447977564010396145925808911318294710122989647577052305677715566273383315900252070669979856540921268457527702791255700721096005175105308567323319842064761098350975036449977975323502746547933321020514597816121383894814568558590896945561730264424748278000196671359487461070410223724535661729215481039577700222676474261626047914792351273137262490159500167469976967897348261708589427949954860603060958928619839062891737375364205766510064199693704656949712044954530422261923920878286879923912372090730212099207607787530113654352310935679091435281928980616182230884164327489200150116369128375318050847586858735098326129291998641384211300552166027494537599143586519806661090442053470842879267671624058126563837835359119152012322989653286907120072992396858170475253344681013981217421196144183339004668317968234931383536274372961661945013592805302433452271105943290797369510963956598845058170108312527587297415720601700748792941387282403164033170116599925883587707052854117889069351369083474219704742977007515932100141030637977284289411739376414627717770842464356449278275995386467255940441292827345903106021732043358241336156264287423067143019755053803450859458312532633420678944600097724924850230495668174827328229554659123741594351171484672740200327136570651585714894069193990965519073280130770022887681129200906423243338346778949277030458356691354147465394633360164500299042851563522445484474049742454917027128272995649895332355748321986180473281842239382002449056396277895603095219466842114425696790934410385747352183159837521398634421011589053121971522961645734280533989055272963234836359352805181036290647525414918343457401175053069688907791344616779967905124156382157964733381531624711242986522150677356725347675302758152082076711741980871434396825152617300937736530477208924501367896766503608298821457289181060567414234372747572349405228349819512007478497059882069880783467562554787279916385070556104825357031177678291445831888648455837535426329601855006874496050293980372287334608337613151061940290328890031395438990456694435148741657886700509159301556948578236794270549371003054209066207145783707306915685081152348052297014938241108087234749922593605290235486621038485920808257530980299682614632623663133075367580770253647730338334949370976337268957248525591265393472417675281528829961103949109952511963664225726617490411969409794999069256082296747407678719172643126063837347788750074335584842725220852365449501534287032383990203184507601924713393992342222920533297776606543290014625838832875616730252761577626962329928515313374896841846598295769106490265182943335325583716829545408447959124088710685702219975319130006367414352616711374157265215313221096848882383882545866848901627839342073649456977628987039248739220235649775715286346198795541659146540051836135727858553286575861880603361777041230136647563788985756879422156508878502284978959036201014480867508457562314994722616386882810537334842350645346770283695482052126538050666943926572327507172488245509620096433829103810556451409723808232147042994322889334386081294555061228809290052631599135985236081909692707470668030771219620782641659492664387098573167995585078703818390811668187394532254221330030287000837592827485926391573887183894680356442191085339667937523788177924813564709632708075362868072045237343726026452735206424668833290561367962722514229723739649783853470869192568125208961361481006779609844810895982725318830639569736337977089456183121650629390315120332424415989876678160428136420073169256357422071185920568422532104419908127679093656362509875335653500143349677660791511976127673258077147192887659800533508326122511455063858577649295069918883461773152697751287620171977089778437859285254983243688423931152135136311191808303276958015359091824344641005080289070838110238336253264032794304594546308095411797347232953790953903616952802028413880413576334800311230492271019945716341429715082280569607461934869765873647992688885158050516918266765648023301529725516550273316351160021305826024421365882147899938925744324847485396570522243008647670494419464260419970221267474014519323076187504583198732973621342355499704473105946970226676599257931992038460989657300174200763415981743509609706323219390568886016970606711650170771729587714002273379044268246608848578627760388967183743634278983518114624825298611859018342121814769972685437770915974257750884496948011684185677950671091793626049216263906185516342088009956546861772494532275924742001938982058841446503500398884128191118822330718971917588009449632077416985765935819920950670164406141231571419944685720072200868907843072672107154299738945805733664947179033788113865548650722410731617925098064182485971701465930625804511704919048093162147962243405029284309399994526559079902584531423264227594370266954865331988382832041713135400470363551180577172537569030502332687635932427002272423353381227758913691666824667962115397883846306764884124158379058907790943758759383474629109926743132769308277547213659820092192221607674730816906962984164235825097379630227995632635378050790158698143802538212405044215931194552248503353957984850156731841204958564098301657220888219883519371193601924657204640430266838574982025147788358674020654363084613504561153083920524967722410176676812727847467787831297278151709138544360176470908701684956203603479516470300636612053784162648873731721741187905215368426712344458857410863201931693734495709217034753586277126649107235257077810311561846215380619538841148035972341228284461885930850048268704574197562628689805486705013791781336276015981537920014951367073789756884965353712067600357087796829535035830990483943967371785995132979419972879878613704624466833220132716691268413979749682478609340069428675499141465819798128465807429732642922585478163419402295452691942947710094939508752502126525572503959730504440691026421784904978619610766815582594230704526386207524895503797539099162590382926724390714233127897858249425590270555764734524823955057728010034559314502646166779548515562615351683881479736905900743115621327417333472673557430555852503510810504665110321482851852495065519508780444647535794466135237316836829769073408191767278072050293819930216068881001561284343096102712518914142249925314261767803371691370645595952433929480623270475467433388950973069339574367367005623194591269703207074885413554927521141564788267674754312033171356164160363339803247118989721242443833115514472058447952375428214054558902178543595842872525130758145070496887160249006868265487982009466931551591008448497933130533073144586793549153012812768391841826157443722087270821018814720450145494564374988666533616031760196562907377756848307368517267654984550304080349565744665661397736293224163678112888635118954957235170848554604459327012406942878188670200307456644290626189199323184140857929351128307155323491766337366131812728663873966077509612301222499040709786454580622204735874217030767218453305773224291883769315341962123970403189864032557085763271612453728560819193728909381079717037313736813573427402687020215794115786458734233723756909968409433984508553294856384476972272676715046220347555910324598085303493775720509631451667996612480031043038823106370638977772183915620953292027675548383013462113198710917712194330170116900568905880000699097082072298868615973214975984705253592747514724546936978894325833248446568905155039736937376943578166131994157218407488261583415342744597447632682962314262506554314915638162907389758204744721212261778302346344436457305766051473106188187719610662300574088169311835407912794959990368599084876855236889909009433825818792367416486797814860506106353506628801670068918411388251690160645067984000254408749267775343829330192813372534384702598304972887267408554202340883633581056430451478132524613698038823201988465952233161195783728866570268872175662520377189734517485985156519112174815447533439204039418128154481254727233494768227403815124885980001934883586550759701920249728615436089430772126767928060219740905558899483711039454228917304515661463677058487673987055507147107128963936615070348875644841912068253553744768093291595802518517145814739371503188652976018239680971335836886726323666916591701448689651373844150109240379052728112804633764302177541398299641740788260975272446579189834398489704453163546702331353445896786465160963122834806068951414735138826737684401122135707295380807477370420166961473783891587406887201869517853735677915763628722800290376385806929367224102176950058085156519133784876532206918794772487911268078512821070197391890980369252097552192172197021440885508260224543294577578626643033696275816392787215882752065384416760181045209989508061263206847451084620279782337286043194061042611438707401845025636656423580944585210595980959848716953037076685248380896978223983107915116659134126380052136212139165092101973494117968437418345473863814550443573215815209290251871469431635026666083049172065903953154893411470717829572186795364359831391714710982398050767433864973665008732803277042327219082419623646841117685580840133395217905790889367041512932145924373058306339970036098830851977416310301989711084003722315145308432636500199570422192571625449075124193509292988936122287853171546742674512077572546123543577121995365733359665218024911552063531413446541577832842953876259258217319899580692781537175200668376768021900582452089062489908055021747855895622841295350257363363196516862286601022159342753761201221439926547572184742443311405161771415886269404141114354091192249860575090949972288940208367116675575465135915876750971433067063693835362144689955546762267500054288630260892999284639931177366615467782922570936521466456146303876372368615937136542806488610596127872790756253902765584712800554317206717149838608785622314249296393343970903865440301106045130345486588121427102999193639177562419266208010158284914198948275312646145312973817528410069343011278405710320124204888018909899347904584417004838370503816058918822768041481096357943355295161369659573884134316627604601907956474420009309951629171400316993103561604466536841941398699692349732423764806805635274149753918286899662734982502697807076931997918730255745885816012604513196765989289898255377103044779962754650770616028590062444897360916141276719520220820713495762955931826346741841246240975251308561968815672749518027095251528009028258612096767406667066073254216391179400743893637170110304778246975099949917698954474972085569525271377784964868109113416902776097493167649980738949295415731975649393893983601288617125874384322138041784054797227206817158040874068989163504957488063071827109807511716243730324576355894591646725182184338905475700105331654073149821724402359680894758744572654693380016010422054298600249701641322619399057732460821636827507443801299212155650369353730077871565390332772551762471459393593439186122130153393525526622053674823826881283576277345106774448108953842354242438465878159321889493053681314889228300989074988444039814463092299345251070500954930225872926932296216517857492584243203340957609121029328773284650367825283985346680755068613821836858039134775146033255821299332636228080523335569630768614969454301507559057416887974915356263420351161428526098436094394637785872400225971461090662966793514308900786394431199859443839191935337333403581404667708901220758485817131207739988367005494106576888931525367874550552628558821017424271892158961551357426084965061535101358890036951100213355460198209898254391398030826905655376089980580196236815370175241594209721912317436129507739386497005628595124015868260038477324748059730285850807084773231843706564190825263845661092413897301628791090015646576562200736472560700518042357422166177883048786737100503290894782301376775928255554885336073569377252025856651837292102686178466433143016944379863677119445169617938245089208743095402423782318136141026714420287320469078743473922438526675414617270980392193517679886428926740411607649176999886496298421363004204501821168196531382066897351298886950056688975710990601772396578228078685078372305108397702069766316734964745094430449585129663791499856080962785098355032829602519979605559925568840040826719927285522436535076982966844226160256449322485238362295981047491451293394110537858088196860807715686954330087072569723912510029909840722736694729027479646948776984859454512464919956096782747098439111752890488376470673167397576117601818148802904358701292090687751990032314688296470530713220832534782011112685158623088347563118505663092614421185698468727944301047317898575690351501717267043612284052784400682322816100079728023996012826435718396659709781751677666946626057221186908193093706112760663961665462030937171070205430010829088460931435219225557112883557704608725653748574210547722892139119547747235564310729813563494660840822706440129261401643995363095335906296441801376429039066075316888096962245449899912760851003709961103060092375625309088250000892156307445099930027098784255501251695813010584275535014080483576521062661151141875747056278996270718252406688671761908390059769176968296783332938173818771240812615582564990156895233118548482763395382205034050240090113794248735283427827571895822346029087614347285798291015184887652133346668933262375401099259721884445119814130929555322563840706692907372679076934603831606704156014131404618673832293786148827845003355687972493241666509516671125264470277180687084073015403895737450495123695207126388257617644239522960783539773914146751870093803958946153106712903840793187155119239561201315770647319852230509620659763278284895490618662900112667897703981491233142166953450558318463783305367204860028489919948409980129654124836787922346339834392617790250244341058971833008523788991116971538737456054003751965929435694042432178203171622427969145109488701107594086720333923373963147871605066377329403323045756873297374918945049636290651608842170419394489681519563209018977515323094866729745180951120838306092440968331002925955884589699683304760483638930072194326913026828036524316001871139382150616913168567275339492626024992526820849910138642697510917965280063269299742979168359006346050302432684701537113240707272585712551299961995863196065945815621225893611641734522385587986019886268689130921155315841936030443610689168841092597107890052969394058819006788960666842632655714113920614294075366463294460402879422501339013255282016970418071873369826480289130166759693993086715297798157827914032673278178334238990107198320577367639985544067701370700886188052890667304091455006317899368756691127116889342103357819263528094304181014075677288249011095660919974787608346286097253212051059092879899460828932522117830178743354423251196653096294205870677334102383520802522266328458064135421986678890929877850021275795995584494555998190429466433538887925349554113309271975720011660556992086169129691024462761414912266659935544841979121710505866175661565972761413314766155624643266179632272783960740810862651068016327869631816533256018879882576682478600976762117605759991476567402024137250599927304633814875740456438015517667268603940059524753179773849024950378637681759043067972888549525979697200635512572789108385901487375263944757543310047760774669141693783153195980616176192854857163567058892928726908847754739834601075581936758924808496080477267473812074096867941822365555102360153915900046963700801513183065480254986442863391063238411228131442234341628147885567917638944925102532931662134254355867377562587790034477202054901719991437795326910673290588261173622541877634883469562180133240938897676623084960000753877160577536098818470670036107787989091943722250046087639550436501451905212513914313121003277448394731491502055060252875939647382265278530778201707717744321540051231761907547469638954130181722564636684141332248057187127217692966639303351467705869289866858912033309416537760326720925357932766964526340827076025307171035631009016601971034997390999240028204711573336730488594895527909845957173701087738528145052188206297105553599610414463032335419497633885770251417727845089536357433885448052847298834453590991321706889278236862796925246566613289817187535711314869433143405684279672314879658010540466060014742195348191478961819390223763805385123154655547143733100612163701770320048230936112011745982102224413921454451460649891672832882594729560790490109947798387882903764591925438524350819824421555399901123389721745060323147306857841838430996122755686832166504948133638600761342222622461771726676714801326386721261086804988766726156919214431307974455066233257758084382282684974736425667697019498925338648156897373095474202832647839272806281159692179815128008022996259020101004758562588741717291244325418232507253988487214622636203052124504871514794448812639666231251314529329457374873943953836936764126269903991898333402589323382058047251240001656167024185256131157698836438268248952320537323051776931979902902401627572441280064754020166232296344284452176029667192403826436574326402224409002600118376633074724469705764833802885889768369119577349034957815783518447389254577145376066852027124746178766029358329046046574919526381060217396066975798932116022681487371016645901960700039756082627182420208020111499654636947305662084707481215429837268300036646016585200970051256304553772902949709009354324550345961237526588436329078444487343752715886903738677208387292704176554435566542756383342680631283089497256760879693058374383690141175447167833093771276771066663247539424239947303328276942192999688107969847845389990971529814188323508728640909745658052935122102932855298332102556106516595179658289520422462710857381151337903769140045067342048306382013427395982223279837353507338414522027022060796497173235838925440983740978875530093911181927571039798018388476012015709290142277750118722975626056169513035882676599813478173704341106307768527373544541075248348431133487990782631571765789845551145374854716249766545172649318563642240983783864390340422712228330804787724221583212357605893935561219214953821317355567922626303719302731993255385320317536288966402497545561120607749893327416752466116751637428055541138759755907493263391789697858385890457126132101572520369980392813922964984531545864203310311928806090460867455311759933287710382276985822994649194756771951959244386818276696838776680926338698675231832072574872046764983354829738936578503588558766425388254552934121873738205631870024493634117596697072350255981706527199722585137707424658503487807134906499256979027065384748029041036187680709524553712508870867048952407779211076564619449215273821089313543976534656048634463806009891402249964804717253995574614176077923878828488003497287855592892758120332113050161893995421193586264844750665753173876429966077057155600169486934620890290212817096597042364817328370042532810016783306175733632976909369797637071027635736475538062306861999516810667810851357033854784778862387739929089662943955975522105227363823423515947772822392799821571396624504223077431442297853398286203531851748769972161638276894836916152955936449925662949131729466560825025303470529891312276824324498961003992305410588203325523666075184285982937830302261931344671631367119971667363652162348327999679431673886721055290110748008546047491978380691323942748355945056142075009416220345293342250242016222933152170532172210419005560574779801893792596452007004573438310386110403156169622179238623377162212832075663518308298585534889503239335292004242616301679161542412806078807743543393026957458395173145904541027083700832855674090634077158001275945611253974547585234378827424113479724611249782315203364895701514742404697046359361691293197616825097671079332921572445932576930838240354070962170307598284711783748969546609391396441441034572030220047786047290481722006690396209270045928789156208797073962798493754264800141829032632322341347180228600597580584350344727188794969091447063189981145883500874253378907727970035614132298714853290292619320261003488672137530811554234706851726974438415162467553374684969331363324582960818926523762865306854438498594551687237306458040686939602043518809813011919834226024331823900576131284463433143623435258267656079931357701485118326967069268296061706322141313740720751127667038881495589262960733719856039460849049997481157101904326427659181488646151150575364189428704178161110415700570339087688019953488119795706221730185850252806683279954928720514616688822824669023697344447760446892953875754546825345622347576688355244645444065617415000501827327468439936675553492617427038343457886091001040270731276056326592955292810221365929351015545773363033717397933071169616742068899859272528634574221221418065905611663946459034690577571439020442086802333897760954645746188158657316349531112374113464025967503006231189162438797071561810496556150071627745623809835193071932602408984418946916482652712977480198184630400166164050871547375076490904784305765265353251532073220612378759139557156103402402263862062708955207269015118818336753374725892272842882098293451193644549616280132299254784810105237298893885413256635317643647330096441738207828858218590094754792357328479004125503388468321170065642564614240305267357692370563890179755049271592581185748487076386379778368066146241258641633750138236831246450802723735823060073073671706319350771001111065482150338414854933345709032180747526979184662688414010233025410042146036195959876953954175145531049058794458373769266757271763963541758796997517054837871690369377200260990693346923653413075577787235260594651389190770163752821209687921254968589925520556580930063204053047080679518932757297493109729759719177611494364443342822985735234770407932483645198014906347829928602454347954470499809864851394775304846830057565724476301899395624606760829210460644752589981069982754680822460114735230404740680985249136469623402445751601608771061012799562588062353905640196867284432585278859711710187516297039001553188183491899313657321064466851112556042077503395595489307633198437308786658180583504287478511404928331884096252566541748644192282984074628164185752957259578943847098544779489698956726337309488126368085577520682365837356558403354534453074586891962642987813607572530079598311168181625292990621509215789349616575029536037995881050152753295719711521365472050284065416454713385802715622942297325748504646816256140321935144154515652179832445770137259839048334925328476399365052484281908934009563985536896694571451410928327387288480726941230840146470270681096991013184702469112648350916388812637391418835006363545846358912595402496560235557544460435960332360924468894883240367186384181051649423182676004081889670829663096733812579167399494399326884382672841446339252068706171373964103734588609062575503401689894759532771591844686577827720794505223694705986739106308069491403423920282121637517079822336515021476332092221058169223833905684637934274006821956236619937757882802915989323648355899308273827476326673401521395030103115309900297741208309725848059071131925016444480840229471816740634548056797804713083022063034078613017356177887364020012140452624977360305259043856511377140430102951671963174136797813941309766781891690775635176601176589999509762786440547266649610175058660989425396794485873173801783990563540458467006676286302783227229550459817797940920630577604156629053900671903755731982813111335282258947325691515243235052322106460379131092951468382426971942265274937941059384647379565392323014221888776596905081887668385202138700444563212583259758041464374744886257069155913437324659651094282081276934905898500009535654879750541076080061124816911113315248198782648723155005206391817934520738711150616041384256456497426765688450138432275513782665166051659811803750383408546490599922057079719643435239891383001074461606536654192662401870972704246031421501120492552594025989352734927735536409167011971447878654385687037934876753204435106359996834996618261568797320823796420744351313110034806190565910267685592136225092779307378235704622293342798553715259265558025020529058220232275903606185175795949179093161076700462744439924056096448639431448096868413152375294802176616011241834884808526283619694039574014598432589429168977846709785290144914451928968250128389661561122495476608868499019991235287469957350064084119676294037165660186904484834365296275370335718278071554199750333185839845542210933037986209005819429471149677914954271372523677547762210332418085710458712265405186032541132213945390361473098327419627823819784028113173985157829368746919409828476550215381860993364535183652881230780932023087763188425908006405953478811995115887817040110756544166753935091593917377349753060732884927950418114719862564110517999646584863086024870463360036171868997836455782761733088656115842418655354396458949060833803246814867870728730614733697827060610871579562744993713593209452499719021200690211472120184023405049538227590161726418807390049705420427637020157578665547430459757087021535461169761377382065110523646253497567931646959526148967128537734825218148847163173887564929530643113619534749164043678165694389162806349550988152093302048933540971863918955288430119112955538405389095067216720536623423869350860372765057390256639766267248476334413259459694147874105075444082363578751948117618279439255648454437436893062430829152860088970739187633389693518809054275716591315467500809647406381372182224897588933623612775305750070309273376729132349603934093444207828202519686400144448169041787494772122436991665642976045237228881511499882730149900139416116704487923606699887244851870384819549686593921473407903820677202104363955823761366677474085424195171937491477232266646362568515556536860219353458091548659468179036570579928039171579650609336286434987392592840472933742184875643101298574917280557077206303145943527966866612902820261991214576171885935368552563702019856280765368216125879805861578041949140830046459401209565619400863310273550445304485227812883836612609683213272894996028520491662074500872133365359516503138818719928137606665373562422542195614145921936782264693718653164461499453138305656043795258102540485308897819502172149983634047911743882796207964877723611595608649577681637373161719107600587821417025599197757993855153450270149830891860603198130038300910146960147278619751853070410854662865900862166453625767932557838156774103571172209830615108289127390457875952428540996681081261931703424785938394081998591728140650584304668912421971420703207239062181446324011773770382606295850596098484089193978345120347558470674715895353459181885843842950644977375800181255443304170055193446159215369550590397944648415997737207361750540918449384293518337397065816517248184895811728506700514969687668588827806551222431478190330121568603167077495646557176606086854234194711376361191656354654541090756660386208603362555176789570097890621649374130135907470428099424922730601342695347149911047426247978629774294933337049562924676242189991037659031905474383189302980877868498526587474414139916994861390949641393083023026179181309257339453022852519379855065120652932719563847349937328684137793151402862648273741176783333598401164303737235646866960088063271168237720386778354794714390157672924599483496306093892396900116163774008930467112415676334709858078105019177066297376735632525412173892892774012659502186620834308880424852902623415412468772799812094004441387765049248389916053156919481680920873727637066371056620072951684121600082409148619003717936142001235042334078761737999600405570704923405898443201856162498519317050947215265294278548973435488045316968393666128389894168419816022483492464006525218854001680568368164262955089136021969948383997977015624106913377821386664645369815979674605800684068788202987675925169898694372428212193092589608007571488987079955876057500987546791204345070411675463111326438011474768312366865754068482928824034449626068752776561342399448256403643253857654036624324092088897677510882802593274861793469750123938044476252681483452490140830999220367657950816119595526359795053063801088474280451007105174262384012103380508778794138004701169935351227236165692612140725962491107354440584684191846082020464944591216154666161002889379239571963404068407961363492449834574722314299176525384203788008459707539280480294459394006637184507083471317486548979147363617475677455340899014938523775136189042666153903866586013312711683886667502424854886660591663863719392408957684372688491162018840060166566486841554617319360166132329858164913001869916976082468731522373087057114076756882474734419933559150378785696269297882916603726664002736416860937464487630780382306419989938494669694881100033272470639873627821142202573195972493943065030069984743738395321282614825849845055764314401527390961103998272941601995772591957304842848698834318635065393042686299695055876739018215130624384058427999683644518849800309902252394579015978682296948231427360635558011933477909766951676659208845071775881625232986871725912911390597744845487589822631913219065082305736589481747932388521582741591733565544359789546228648132433993997040736701961833657703248098859534883961333927859038720521002207012692516662374859625714300534845219365519132213037633930401327515969034875492804748474877974416928198143284369645071824343605537655317207036190641518026752586199430020993458476624949215055217388806231575398041957510753938551993656087634076689497225431112742901510629875168247544084176624669375094351616066485922360180056873847125796929602277850712287943360693702811786470651738021865205160676029452529661273998716616646004147519015363637399824249536380534954206640441093216110583236895761471167814768421270931941865653904269207913829504666733418088523420665218705672848996088230119227475159321477695098635663426725601587786212415507726793328314791724199962286406191120734636520899625977922381383232832762857628526290665114301124339070544318272761506447329764022833368343829971363400485311107214587370932351317685421175184538118146212955995586261645679547535900629742283070175945992070487564241029243699293770648327146298711839955833172612629306301000131816224397909388453159555235544736600456122108703469579120736126600304827711846859615360775765368022607931967482345860647831036384159726731321574999959486202262200091165415105383677732366298752404246665156948215583135199614764897430862541936928245114658781111538175159525180550010246941064591226056185390175290032033700106146201332016974240200150307821153359493985753004966973843360183872439860177767822173886721468745937138587482043071715046793165830100526715321412774555697263825031201700227407892120257259488509966798587968666007624159909272468077497822675904414268654922994193262698387947528559166944279240699170643779823507130963061758805843711266293058098160714138576487130463522203577296802667049294229270632276271995386515894648143741639236399736409750445029847474632044804265436940797736442201776551357980373694387754229200235317218582949657366370505136427642788253690986595025504923697506107783255759031498645356584112166732552079894547086308778599957333646472120765986569343979075511369799560689862006051600702348457863353570539357581486148311254034356983629754926786119276570801401344007288012303148796047470267243874897106268566106305794403017571239087916111037885786663791890440275440532221512969970047228030018599096458609106261151346368799865150113181298171940991778525855848171640430701996479534251856818911362031033782757920086986560115707099528612413091743150314885626658627840906475722795575113515827679563581517256454440575131076207059802621456705530880905528349540571155778505070757681903050095086785302553011275784103406913599320891146613412510068031321295424760293507960864438434898529566531123500342535154058809480276971650094357300620775234653818208130759467101353643435418392319365727442683991936844056806349866829335555833460968075635390405794467770215309217988515413252839127865147009596736479013443804700400510024305018262044886748391646923336555033746891665392782418014906032773046489090633617754362762350273607368338024961349031171470267728437439038403496010360911110423381735581910174197041714366589282781747603849725879848077663137396390017128763781111629608323663673640956785215030940596675423117498415267998191907465384207481500509984742624208876706302852414482782578177476720599890474432149365740059367991234107386538973391448775380133740158617630212879819705525123619210357294311251230335273691700960371420057428907860891572029448230465566836730604651334890925352016518235472101725663761114663502409485293778877026584750704519701528206840485881676997006575376988095129075380692381859397481174564850690245769095080347336123663298450912398392571763803139752783911793639994961712144616087891668211846879577190081768509366575469244756162543921866437103800716701949421666605962195402479167119009533403643725747851792930611538808202650133584971970333095872968995661103047556526825267895996112415226368044107462585859727921022720019430553077722719363199481676897476682221259861907606845938870322830235684532703409273057990334965229592425507141547681716055335712023262436380169142633048096410775229992128506018222232099394742161053812049611819952018008616255521192317436591061153129444443835460191496759599447567946822950620536048374541442615132753699686373483601836418120104059575165789583145864397256959656587066187236612660592717500855452691469773967856704912745428795383506884374002445914178599050555290546698516352997278805265705531753727718881947414975890586013432271104505789556140738414550126371561746271028385758715652250532424446923147056628458276523100012322790710305532480345576215389883925839414540872830681760700408433982792357162337727676711645691906124584951864193717547701831442517710536282128648928288166539692095167347293759800367705658583312079342290350346526946677201330607483982043637507817105569248062440632533927466681809434431370683880112394679533577703198377344236661745215266982449722041858440505831136123904322954612642737339164543856616106055366510258458290524222934987343226753735170132971676649782269903049342276122344851282433006163960962300375944750378313250098947881057190058749147445420663878043569249385504405008624389879975668987512564755124132030440553820813946187261614747840274713294552324207556909230036749839010299725610959411748975173310469664422203485784145209535399647734891192080238977073053414125655391154535149352956689666419625269335330614130105942757016168246893862110454637431387743376590818865486286446088296436705568331865895690652629952175146699501490519033642255449335264964085249459869055514484291492267645281734234189811660067466888248910964545753021889297250430862657506870432191926916008976800093798032452481809660071168559838576079960855308198732144584474976276456009698739030136123886830125350525057761458276568686377097747011472077585659897246802774521010412265935894227133849682961066507169362879925519189114968583935567470141870452129187838093655881745937058714602079519529956284928924588749270579884092881919131262409848111002244394401273171031277234169883228314087310065191868505590281369517665301699793134646165609460337154082481711498494939746576928880061478461823677121985685865672171576903246305116136746968949300199029150298838295746744209074839078181195523778832771173685451466642604446308086316245746105956114141261289798079964573255994173856059886350246984849951163524233820216624935757284867253478275163489568851228018696051233473800340618451146683673103276975988939001832593403850554935006491361253098873734634162585880344839970668775214281022158125170503690107498791761705070588299059416393972332476232757620425730158800393876508520088446736616099599942472753315426203061123617622442112641736607485921588248502903854038481263500229401028958049803572063930301947550387177411178778057278788772026530836808878248327510755168729840139797414906212380610574656500413024257964391762549056531755796382643133202597968421284287100554041094232364834154248346048521221706471117765377895151087230066035533730981303112268313587399685500848178783558295924814128396874204838116808935718668533909166810372598227770951437510491992058597280603658263603345623239383513693909437268203210942664926999225289088425692475769757066192120444422518214477914085534153234928328884736312048040997175565883193798213109014377702025677091882403182118578545195679762352469862782601684212754490154828172226711886217073964743238367385184415618831558253431078591151729600189512485173894824041698766310250372985944840849739675744416868050643985504764082339490625758577386311512408850082286184500985976818462924863407903761547289231061016087910173526613801288717982789777659831694770753058204888316066287101923864931069789705963154634607113927081332215454255881809422309263642650181462717140739673405733662135054879265875934363020664863744374650492809376223382478452200585661268423939968240945748328812073270093859730794240088598048651348754590326439393712301838180793389111392797277743222417951465141046723306727339756121460851229616591154706088683506364345424347207105822562881048880709856413165937297368146749372977322282240628503099109807662591770276418782130616385293448306097039066664711532346012672877954997902314035261861593292895539593779477775844561780120707804346995591078369436911124357295887257533728050021125904289602677546285928810823578711404451333544987428987352184583937426170090248021514306674049286724542065730172106831846534180988657391684722307689875321753479901832983125519202016273983207016620494082211675451076493446474414020109283029369115217375172725938219039379919681495187084146152849223747399848931793204900231228365157050256522283257540877491661158882260539173903155641827277097893996609007000151905353361765269639292065839679257337657340717876659384618107599282746618772688161038404479585545630758776766270796466401424517544836108595808904597976749869769090506491222257329498079116756718333058127222821116459760466115563392546380583243533968050998509705668287514106741047909849377362414584659124116259975554778608615582395306997589381151647663085377940248331304458105957814008776428245208653218264470437098772811194237119655750785796755838948642012006625897453075842814188114841476665224022545906280678944037393423127565275058368582488828804887493958480825609710588525771408371853076720995792638888481680490572044999561968800712949848760878978047552175803229084987701859876667283004619292767608904084663020674150203453969957265389990047848841714077998238325673042008957580916488680521175619517280999848063824308200182233096882942332532821579336721886844246122039172326787785192402160800353029707034762214624283503188527619049164595609305615661939037477744799753914986865562962001161816455321194722937579359010807140665513111404591496080057546952730406199660865344086353332626922889824358331039318530838285690943282515198961628028427306268518750160527955327598595366844742865047731737426783394059152974724322487132630843965730652995133156608672680066901154711106562362877916250140348683144500040766372035258028538075434477657552273807309080126506239323937102812842995770517455601001624093314558472003220251818861343769231062920335476559812761784000817959756078102855472851965372040214992549142877242453519241824221840276901180621804824973564296837065940886608869539110969774711691573823322222499558130006883326485833427617180973020493421801957988081368343952818765181454554644904705719459554990446789997598629682075765392180113977031362059980365268674307651756650454425421534615421372197334038583562812503559080301020475320421057641858277536534853014012203221489904066901894501724508714531546945920148947876945656752207904142584429023578321200787236804789394090731378776697273092784039929344389453594888514271987458797474497043700244157257948943924679158502086852788371303156108237156462635256324843402240815325239494191419095706837348152998358192914045782766287705205870786649040636927925446011335016111260789229847825370264008488628425239919925831514234434704468711243923041074396752778467774236747227414195040943911353145425638792584242375339822713250002753930523463154670892938690378274503341504948755499140540179628759211176325022738330226539434993867636123485939313766957133640470883762347742857685660878737523795210009753599896051951789396671014259134918159842262873783840600928252733708306979521406540536338564655674332167119552988169391868926472349242393084893281283107758102344561591242175429050027105294216918932577772176430057163635264488618052777908090460307750321227167425872556522375397461422925224375861128751572281356143459119799290192930205238587831333629161759647206591858181348045905897294536124590869285172594887541445028031426117704234952888436740644789404127640878652785458373275876354063659505547069560152124809095568910338308411587087117388304559586540670963090934901141961724875999111304035496524553520042422238367818103375114451195092534676725404730310195340475482725765391284950644593489893397814002746770677084379774074645117011561971547813207663603438162004983031281462523209027764463107392231151412033211792761768969256274344360666631597987978085720401762353201434837959843627582374609713980346730105491214331810570983948113477024121593147899235012003154071111340903970725646904386666091810976971430003145524426654840543427919395653995759519339728401534516827888925428487551064175700095277593056926519272900772260433919536615529117832576433442157098738953406488280575162748155877534601818278725482130073999244983446978854387206665045768835921970547343128017817601443855291495071181253982415769167854085617849646324907871291851308669775901248279153331772076528469802242429550562707269973846142134945147405067276169460539017333488433735043187534934710966399334296455347468977973251168062485136478888813964983227569873099059849393859113552967395078913635034878227010934013570293172804903848857199792318356676109286446707932579912443570684669573291063467326682623285385109770514486618781465826900396888826954947168898384220011763789130124597848138836138022087889962162658291799800404685452559965970853667292941615872725100146521331322972589310042698337617078954662276156410846864771272287752841500910088332626743657289652265844546348902408368897023393932565257398298087322967706093948196085956324363237947455321078568186821916419916297480303703248146512782682751662079679152235940307331065256986089654348406979403029077159066960240158090965596355273690897253073560531010635486683816017497252856592251881581392052770647936849274629971958649090144537876715702575156488980587172281882489784771800764830131585917167380641171256366822669122996566488408427236747611914827113516700478759478504372503138767929128926903977789172235108016349318972931377323907323712016082435373722929120660181961183155603068420690409932449187960649049419931995299130971421835283685686474301219514310852311844575211313855736986949026704027464428883788000282031222188413112752039368084815877386222723576175633515843853323575304574569515990261873234909212153496870504571840341874344779394710495273036328129816382444611146410351572795492620282905491180953726146179659073203706946514107746006566968849761857374416302950895224026328380835190907845663947396087624460299782709536716837296243923140281231948852064841184166852622958610546081336306900271822751546683909469388515997679956050550953990345196739076520399788238539564191263058936365679905503832154638187734266136244585125205570306420771384711997197854988138650243712144387094067172861615221558741024724785989697664562450667841771216572685572692613897426072038729390629220779220130187809807486026106810767338297726244088151291338908897946838708963415790849752765928594863653177087624717451519610946017710913432683498041659035887100013109551234010467329168655635010693208347075477399824663873817860853900367051279231794874293614190789236099647817469479853370826934997670013176149833287494377848447586608510312862512468250232014332182129807601967990313628827793036522242766523502121275764107538518838293610157702956630842625903581927099946576343422398828605275848193798914667976856265154220385409631191748134668773961502893762174862591454095885301078017691580461600388604801409569288225979742141892367960879486665161246192169759802246422720859825719118352421633831797132462521632910409737278724557187393044851616615805480692155668741178032068534993846247563189019126928575510383451633470187796705586352521918921777893975610407070970483057591896394300513780882642331088678179899773642513123482527443092822244578150674714320466460885775209450620375211219359581261785738993368650246439418525598187750953723810484257174819940986172448233439279226224502397429851719877938962560022626172703891246721840693326863829164388075787313530421168367062494606357737877052347289975037065691127223063217614071663958475905057839652959667446346823669548939231886592420003864238451782646940908672739474324495690305049978696197809420696921322954766267650286177586855683062800847118690778778383943113626472430651163570341111258259728703634484710939201125142033636579975089505455409953631413676682371794916392169302379642782130368785124337827505707727725340947188482636566594211137701429784855262718513661420572994568424586436417815120304674101167711801575396033299865556423295136721273579589889189447090137270590367108137289377512961382123022867897724685009804912651931969942107668492299136747496119653189341321985994200298934462167856515634198968012803108715247279164637725033967796557883437450434993662387024483035406701358993808608045677033295458717171684257386412873539061386364116738031126303490395206501728225256319792679181066214235318163208920482473792031198631160306962481048371826048081842297687493849470114530343622057592164366081448997973556541403926792169450743151022290923792388549050993503202421146336162258756376357731298595731258916594835223470518191314653687844748317550229275955049880162191480734511907268041796277981872732719727365799815610517669243271156399806346346526762700613528376239374840371416006802831401562659161464568682545502091697035387445224957299744559957436610639114731142341975405778849521717043376947912225651240946309996464994640119700981235505353417902686777424786438933082261010442118982439562726736027105884603025980941114413538613664389891369054268668862115445479153636899915899243679948080742523239355790938454385377587501388676234866447148807379050605672565272903735853201831502600466064660475584465971630514244548807737773799370382399841761058990906255525618777627349252454752334629221460550791490424494855328867647687600414198258689631219635217046802803235006755249816943909005961427680338028833993941521285049392782892516982719151982252398582852962033272468603965397609970643019816403061385650813542538068244348204502250953680456847277798893819449198826259843940424654035371823480299346539933760594082826699750463887116464374279013150988863710581353938918319725817255394120495117855296557399594230625212397735145025291594757078374008408625937405553280104081568753361498696834315482847962028129265583081910009099342251979118963997214514183870359651749050759304705931752302273980163978169191341525537691403745834031911219736750161770436001077310353527606675635604445016367450250137656264890929316804727003730715970823892104533510699229323558854776637910425185301703001559982463176184704473336758789904035703316034718642320321603024823744422178798232592139186608952074788072530150016413035218586256327368501163379656563146635360298117559204384911587168675256491373061581146175136336920112821556155399648258502431172613105427320200102506559002332738964517668996164554936979428118536223386031854930316844254102192473425453325043601159993393226438160021622684160164882480770916356375838712345769127770790647862818760759895119794678221052397999929986261800174107936490946892273792112614242531469648435666712584085686256422533877451964173262604989364639165213579516240526415817390163293216714384423527562616700420346580816999154365514872080479944313579260811875242794186262608954659510602419191820997040722639562418676151545274909670841249253291966748640017228281566155058177522136674151523637851127675500118285291347861489807927474144347090979480105006000309810659216010900418327270945018436467016855192771663735823236017867797057217772275100110554947231026010031557318306831378831383100642447735717178636961567221735457739169852019777419547200982023435265955525213589459996094270678319458932942596520940317124978158401142075022007054414329077973306459281642092091582551342747611844219807243719118180182109817419805995900077122894085300027335620682582897777119634275725331415005557898503650320833452574864706297491702550197508676596089858200638301233422333572190719196660202304594786738699401857240468476261538966435257238447265976312193708793624681154597573098947471515959095504823960289556057733830046324121527820359507845731377676884460563525432593777339351649218132677672832739655879962385280730867100373297284365587634920454891576209159712622352745042298726501939179816945617719242537121470384418936085334187545624613301041033861308381993425257765405952596536475734937355821584576040818389967142508462827760629552696908371071492309173185635837698861487248604617202283203367043464206108160393713563590672638992398706845646495807527674426782547065589064853476143599128303983317565625508027088681669496727740092699079158481715396425792667589896153956847111341417086400493814622438289204723279894235150871183840812979461428906239477376657236749436999464817621079082893672316361165566997804304137962206148911815270958775825106979430297207439624975206674596819709003400515718628324918087133954537183293923610371621422743400603603322437947534992683822370922638036852545485375386832504895893309707845566941046834244963763531641966412786068745328267704528948171080931074096290621698004133476403492366802639477442967151093136894515807754558356608355717187370248175184030148252272369066984399419612755601109029320928209354310139306596265716028304708520530573506459325139126824933235603758214713564728188595180416208517080500065235069836022259635019061827428710540990801788180871056324875994092908068878341146483825070494339611333950921831991129577685094069178419238658976358599409175283742318138272240568642641253293968980879528779370078347236903614716024272724249103087189804393508637423279534915228614624690757433506983424796301919980118224195784729466849911255594014651194573633594920610951560276484634185300374242974843806319530274230555964113034246576470940188703483177010397504730444770265472649735660785977134231189879287726001186382404269120167231446281680522047317347364015746624106950693487074215249029606198041062958386790523916613520361283457311319316266236725435412664878115734918134162630868939944919286376593373242606309335728173185232188677031200371823296746987050862867344358907778983870196283537043511417780610801039319736801347939111665901351825960844832862615817627986706789357020759655697753147087531086058702164303776249726044828504395028492402418300703068605743701221182061986735998005528694193941029896558282262865598389746280061576418183089657526693820008164856666290716107130749611923394512850688833412085691546824839822831790516114751451897035808085904248869192206700634214522792687839853177966922409306693452538970501678819967709350820356881235592789454927028564769821449537019538860675032843081227712414534088366194072866953256937167931447472563194321596557805956649818713589285782059132877188862619270884235925944070741047419168957862616953457347626610646587903647510790852346268209111904654765381155229300274798224767601488142252969607141764560134851752602319907196104176344654518753850503097480699913914676354551634525808427427073566300033479316578171324916671925492731270690244193278279389892645888903380178418851492379503759669766770794508434768481205032089020243190775358620503241245168250539874207447415057717515958981680566716216388107645930746499140032662360204971362936464616641158356363917047032091137223315529768681680778255476286449128146749252104753686810225785763233350649206776342476075225989376733800842671376124510426808525215936883629426649596851211803683000415512892466374172875319991596854787133280944373528267032816030494986967497996199332035072979843434783174322235535440177116349044510419038954571183795914675465113744171859214693186247937001973584143820841569006944340874285361511949875116440587954032405886002545332816146766617839132859575087587783863109775014543734749518217279498792241014802431901813034941071286963456079430521375329019925371912649470675759693672978541487701033788364330520135377612928387907667922067067420845319737590154080865127751209724707794267994077116228582317849846068440325600715347624709873040555719937019111904152264423890353873768184652984059267721963553254643262315196737478019969744126948795726164275569652052717882713412349046411236793890067364602491569704439055134534043807798966859620140414054438097025422711701075081472984838696829954317411617748941190521325925143307583141760300801198948454068288228092775962536172647492751698083008488003548875490538389911217591450523734992285175658300642909462118761804108043768453875486260833646309828466605643543638684787213093730150535392164283330548619781953246829576190741674933386985572092979492980949749017319182628196055635609034146431120331573264732982586196483755423181041039108017517184627062201573135351613275596620563085916566334370777109990802177820495404270676831063146999678093591226271359994820093030717188709758877136947708351614279386233223422897344169958929401095574918599871493081104887228593803716064428162199855103414448892203734510642777148271687839355468031295193828935592279947617594025393096715464518772028093579618635085175310755133581478725984784468684581999101674983427282467240114964301093699905102184228546046669749275200963973148036735509808333453388265663828166003715233705696043472505713194576869197885071837753677384214884996153883006636095943475369650694110321198362056474054797930313934204897947708142343036163308369787154891177909512876904409808097772435980715643284231297538421933448865811937031387598609542051274097465375705518655994276382984835636006054819230832136028422696489775043307190073694235298558586940681038054184445498798153620475659289269648878437241302951447668094014178864265953978854126499193060755508792501609525943297068221848598831989441166680983890917811143029699293302833464168548560233199111718424839035547344242901298854849616974511991969681215132377830411014766676231526419025824787885246408834791377575961831697834458522120182236115905573308794579124934087932258510219105136870945951639110738751745246510593796901167575144625484675020900032103296469871144200451360958699045391601531429115507472841203145625073707523496278060731629769657485215033672182492821505979184468664811000351040052259966979285991491452709118427396000846160487158194677595048960270231038436229422520454609678465248386950528508488163473663257616859461319953790798213704194036659289217315428566281659909985891575000294357411930355206909965710520404016532690213459908097038892807800317769640198434171237500868636962844048596771980879335594155611956376794008231948999995181789252848592442224209493570382885325791208372973540417787310879483973489138340868048241830670032406376311376311725155226948377170591342182635554220043697695749425664541718821303800753743655610450147639415139595106904916756816928343788265716531645155226980777588907609963124632506417133657927979621388451625691046386744337466936775047610481321802860649246414519549112767795356237055607109361977412221210142236041846114979266182482764637835223419381426764520558711580827705405592965412360022226771015640345513617787990633281614932821566290731480619674466707151577979459229206453063856751094783270922776628267369562270716896704599549771177492871613382557814374338297277926599680848258015163445375718270350441472489708957929208763628194619384155791775447646098154045203897211331917597790401022172914910247648019228326028259512053425181111250924822045331810282310537980993572832529484941336826592936662512517931837170323727739698319475446435225044350146247290374761465429181988514199741727857942561380626473928114582016662330376567056080364903494459223424148760771663085960558147482133553275978110711293200465277730526551525838215989217424964454673331785735714573876276983939577284140606285027058154601714285488146898020808332062940721347410780646677939467885256095603206636994841856980347160411489334768265026128494524349338190593614464707353906229304795187029077039453522573378497250543961214214860886991097111106008917525185772838395356909307623922258727669712933733915389606783903061736878910743672735136023611302482207990238576285124438283732373199624045653872534772977073799532337411163508459261459177989788948644168076150752887198118968521572939293302132264638209744119887040916124192823329084567120276423008075897342907644765905142925834807172866135740067972218490776655138354899745478603042813283169198222314541675514702267585674145270163940419574343598374317471328902203327751735160126791172496814815148999286711848148691432708889468189955769849527148989532357451479451125711333603905157901849562589405387732762656593959228712579958352229064820859124512593711497265841821731686769954109517037389952492336570373996775081012721804013239679691541329692466813672071928533930139545003895369129557779629280837424709498942978015108167489408788410748859341767534213850118802936891317847871970804977487714308845951715959891120099475736037129404980180478828181385072493904399474466332686615057569755618308353961678170561837631212379353139507244632658958308501024831148211012346027099062550598001282678606990003831801578280736341543127518201422302171211290231241129196904193287867437503661241821931776987817393155616594179500084868074057074726322489438318059404976982087530290820942944738986686965811656477545842086909773521588446234380416204558227792918074108893781329733142214286833120329876551085441497244699340680533332710088014940222116738283187835422954821494106723212685199186031766470519372248143279855658941765119545779714513205501878273886135558011257548781993377325698876827232529753127673031607685786341301699740509115861789262147117448968461696069964941081693555934880770929739628157857352455002036986858546760324810347875100597198856726972575776080453348079847098058614551515393476236556728963365029311005779986622018075432125678238778701085698574872434086923298123672657122340448651866658459722124170027310165578796762459183435888474232024639258306180913371466302794353826078892186936821715344408309998600521027410338232651743135291895932118643594653968109940400566023851135953719490006852141920847009822937068310079850076140970612169129048594282233981515356841679717922822239499933300772698158634291371382141217450549526727684250884934172903887052542832984356938033791390915177024112771283141529512232422501259905161189784629291129661128570515527900901332149388099064178262778844314004086567754485051296540402843907479317770689044283612442369359011111527721658446828536880486118977075505496085799727545411514553827935134111097604263237909860325085245642605944572673041871583668532794658177300828544648347382743111986464171292877644293705338932669643475914001686284138813139995067058355390748736165450812931964240009675570239108295384145889887088837245360192313017716691247299188929887819631121114647048983004352426457536911567659246605415759479500675910247301671297497961425032385772636664928827385049172861472566968495282058996347561306321574567601391670999746772911462128010791074721161052948427381772660170283174099224279812762635859506072090280348928284913348772478031902573223088315809006793195689457099839128557991635922598053603444582031703462649220835768461359934211210947641282847451005206524565186578995351931076102289633447048318318175022762004914693426595483370473196574261087870969177833317043529468237305873038262349115705783599417076064777225214412177577093884786398249993572538769519399541867262275883143553030621986095880170806189723559735779633331569200175982261538068372353606367798651593446827805568246712515394770382649807292703683611343085467165551410798730597185000552923845779351161319459666823673072833396649205023943390618095929537550579723851494859244766901588910067006201869276868696750045525368707840717924520930915743168757464161129242239621417040628205323580253210253777132147598886595443106270435357844910398213127785705495617671860814117020433119387663198423137203448801114564219847907061920227038131303221782943372273526498384963643294788321060328770857288015006983731660329583683738714716931986344547636389990912341762602906252804799379191393711504944124231236190696038719010171884653842402071266277352674892156950667973799562720088033966902254004341632662957660904127633399043121044312791260832693484128905332242896355337220999861278973198136407479157491444467164024240804049455929390100167477393424257973426598110795011764580203214077999349425175823141720181907660894876737128147111860362422233263010882226898443279829508781125563989822180918877836636455297221490403445192661700566734658678626181205521967969279132090993304246101695907250712143219634545773588097742536534810101209307760421800394888486930013516634541990939064594302447971292916858944028363036847404424224573255049201129799767905153232577363773409580209508645543453932290019329098917417487791860874896351673086637407185821115152042834353683865142463687369095989645291737173672766207157890840788640791953962725212821879544854164474545602807863534243548974631826129818906562264364131032640406449427641563315189365359502788310869350151032309323918652154845219369034530679363432059694860697178570130805436007030546270037003213273900604395558134525485034732228073724333298102571845241470599180287987746547301764673411488026755173827036519959570378373859069305682670937283440861307973571821813646721601064388187949078163398130663444648436283224073611166958462889965700841144287086361300338564052671823340410301307005541649978068916289311888097639176616377923776660733919819542027453358386948260747995290161305969915686348694686263149656400933487684953208219209101821837671698370153095268655916403495628471152879364451382278280049156133329862153872184268867162287191170318143810888010823742868984436980415575634449626108098141994003575613380797991029105050223789972336532211783099266172517375350234457855753501511934059453467766851982533282815679301758952791595541469616593727074309529272480822970837871356584216851640332799777498279424701044356445397518854872166050397822754989423605737665167900578388311649179497099769916988229338140070304458885405416889830243681534273111184261527611154219338241145421591954354230465263740916596896657620168654967546431660171025759197359507055444443408733633433069404992072373018649693211173304200527173279330592762485314022160560696827477125922427495745086715921889161589749354651765991528850774002917017039616886404555949723407783936100614483098916435106066125794306983417057709798447324949911541165509653904983658370400381827408856994287695876363956478091203333207674775178200806115215634237214419177688886026736380309898181294353566756472642032085382086015759913847453917981955742787861997210738114967968009139439313122580061116268754714581855547287620118086946893583553460410247181054547872387705347850028295017653950598044010929980459788507512178023360140000173732994241044335630375742321953854423759287601348195452416911205431586832801416592224988383696844181795134181392045685158015722013028772742420039794673088248342383356865303217399475320258105360563883721215098570769290193540330843433454891872240747637211076176794562502996853587144400799370705273512164436262231515625261311442428121894851841712576895985943542588168693295547573718433911968102694314230408264915994446296370553001801532068651080115774917825236295170569675325688219740349450168319378329481802415390323196763738179738352244155443982618885592579391748788856900353332456096327825755325641741757577543694062386741213548172723771909052409423185057223944273119942640584826045585139703567319928745212266520891211770536687880071633958135062831564317966080767457814725980101303517190755245510499038136411400917027857762648473977660864363943774598574640846575689847961036535957756077237616812008969840404407000637367758406584910570170579582299791805472380983209808869639952556780594558353760712950168253757245105135917063845493535480742328625399367736631963656613767317419914133198257582610641773651330200668596935599127552528391481382302315277448325047243489139420146151554839774306863820117646200714803961880678173024486074238896726503799434979679571758106861016771020799053106916744959664711370382349694044504427330007242402276027683603139459600202805511072350491574510915288765599630123795453135691544758784908157827386948618069066402059553894480438769772059069556936013197833554526461876397075199876244430923511494566926787139642444983821648523362588261848823410498234457005852892568447941732174863114386168886130300282395694352008133298044932775843558662877106295034286764207640228400977332124499069613530646854749038747430680159233927979950493255775432981860229903873804122518782202886833790020238123761042587744399371292991154970277248692256056538805513243128750523979717356323669564728399023985671503775581536212578535861905197530316302226927435351612405566626885786697873469272668624149149654176936526724157631734056792423978623742877750580759403991154224462650560446108626194421735506005674294035150993808732482070717612363519105328565154210982628645337520819892454355543340062756351379084381857756342209855718809303645073290762497769485489985347747634879158899408723934098170066640549032005881669370328803394112911513231399731899397659895725960876190502786786499597910957917378157100437605078440349627353882371869654181625433977148706019620221843407954688645421620527038335833809455576617284680536405777045887971913060122272334821795440097987660119511136553535103969803886004677802014396886247092587561916025283990079371299819300803473704477416889770735798258747856501061701638375801536309901833721461501327459237716356275896159891263867640889479350933320357682258493310388256130854294563413638599475551219585190557340883493674605110225560094992951122288193856846342023907242889215270654025430073798080377930649511939596444075522969496714253896148657368464802695927300956823842481399402496887125620936325511744459604960181623201110516974964568468102573811773067812240168010818647645976705168493326716817765978350621379248129142158855444343396215672968835621550789323529674604493918658043294240011411604191359704177350177672864271250353032961919152889072600911542990609874308464712882674755812221763657997329395840457443703462836087520361713182054402066566738727122866401438023249633941089096271694616181313462727560133124983999780295147838869433028630393769058872545101639709610149770668899931425246638074544444746267570051433025205607523581794607134444490000480160284555879164206625447096887672330165286519849676498841441967207923033465529407445921670144071220936242795194548445255561469014055668956250772775602153710984461219319915094536050919878813845949569771003603250514445703158907057745032081346615800761548430336520394462375538948186095725295141803981326135786700830099394688021150915876237538246203885163663581886868366403939009294531618191774325622626741944662450242814799454694434651974576470208082648972252752945121472809112278707233914067474418003259287055219341183036496717694232201272502748319721093467082813237038590748284446809080511924602230060252885563487818686495870470553455414693661681042115537008595329883154314637492442819012427440649999041394071967609024361126774946242756487361401857261252301359089406155814969542130976479645557649949466040798743455865842370841718459703993392518007238275263166589908112492139502537701045514399230475889214011398726835754445131507531281105894028886772903918806920231456762240192776267826289564682930509346240322094878362997110501447570388873977598637974317143070723136154312039227374970678389574511223682760467848508024506353342262470674937113736075203495675544383432948044795995552704533278588809517166427839784578631463827014139058582090941461763341413059949541019767249289790870719713186298897463790985329981374067067198399159649726134738193872289528708844723220441754400399769865895641363463212679824837233025527744562045761448985485211749979521119838794960571724775579886166271782591721952171350833342318715277118822300880220591618569650070833776314426676127404590193522034311854236783592420385181930692080541045275252538039069241511088868925572707924551705099422948287307375952386065296673412102588203740643709280989607523389201036175122279806200908157265668346554737415763230007541774547697853315819068171466106974371410703965351327763073353600001289503501221589885310725568721177900723269225851485071683073618838470614688129929514789889716722444608666359596523413940380981600399645184500393385723301529502889727735918786600697994696054786910232183560690029280879712933204556506275879900289893102794798518800259191284581913323387383455874126437994305686479998806453710839667155973139454352582899419091035189965145627228562483406528841209913802683145296652409064356028671945734482048381491376719819614586578863067044581713887600684129989217150811984833609669955329258280828477177271260323164132496014867979946323006328456211624463702631664367259455843709003042456696446433348194874805538156294789320511556581254681977461902769194753490490442835851546656258972255712885996401876418257989250880789698281042590733896560210792692042324356019146868698612681755528309799660319722518101978535488803998420366106075570768865544893525612574264207099698765366936895054527830471534956159662859551689238312621106844009721684811121898262251573042901745540822091791963173775385015550467088084781185622665469136287449960213462197935837311798657054165911865224072256880719224610482212108726315403538463602116595083234461437700892974765621409506619352410699815333720253058314549342329444991986151156967322397297309030635845858397934274716293139754690269333281692874925921379133588807993180514721074788329122733839791476748038500206942291281326423898149275069082542466369236021821812520010906456057185693572173900977163761558786404066333030215014470397827756170939832075339969830856919807987931454463472918967359603776083084799931128281905215325793853158249231615724508232074420450005446008974863487112329975804096556771570518176506356911465425768814018541889300042835038486090364864369077646088725132639249491129820271742279386000569139277408852195476101428018161310915625551351076796097729643539250418127198894517352524330532401394284729594258252793750183409820008422575453246883654478856381539779142830924435386291851788036689206061139241110830889293006016258264926800368421638017021701384959816053382271007632709456668277778573460847499605302902392995308247498850719818217331222800857212581605913816094436417206534370899160227284211953438757876462468942100181564363254911454241198102256374469696234984835269768573642184024938024008165445267334841767408838052865538226259757602088730205791516032023896798667377817642779671163589443854892263466881400494346610752691702413314790292448793778975723832432996625900647377573351442750505332547752804730282287154680211505408463157563866315069530835750527443340323779341961006871624840316587411093891738838280719559782620138650037067328757240410149030047272730122016153534223664766227689210910906283748913084300450964425938964339292388403731474801012120227749174311396489837172114249556199801034499074193541749596226651961404389705335043067670047314415391743558621163010606221761902753895831234827879549978327249166382411070656914970959152983134537889709264789083111302135858810381624800419663055826478636010080799330770953373032231181357428753568890711221786197455276630345890901611339704317345323965113584545686710557135801930028832593874274504581878571160942962822409151660691217636666717720064181616766776469349295064328692971881758659794295972165503854283621595409908680306266769682998810278745061627001616875312824358384207657817196298231552525706936570599527827086564002106942213944957693543386804582471072664232386017838395776142099577459693303073685859581333224302660586987553990558732567234847610354418519995811762929540532581897774260700383165488679757235651777166365610472579688180328584077418409103870840743681406020053695191560428002140329991272287176872341384161227190888301491980625316891383282292570747921162662282737365380988344788578928404747906766193001872110189497935511256796179045458359750227430000640387782972937301442632337379865992412801426757634917280669489427047596183204477472671208988511776506900373031521695760142484898131634681792777723629084404400442471476135295505919527949341129278181776936251680415914071241935666853271882735489534335387595105389966005061933995793013604841665325688651074970282527353970817899653507534023516475220969833218934053450177796231028918632308306225920834775786636163994143528215139808501890040572835933429513212397276604014206521770759106421730725732446633947550271150928196511399139181175870931282345894539815658201872841906053784601188327313838830268505228469579789961470449215982173449599035607369398560063128502351188039543128574485585313688592918831833192325164074962631892658556682792595331306040672102653929070484226183988047429708549690652259824223086117721209673933452633493486534014186619524544457636951204889427624738890816934146275033849403432839533470634796834241298539545846572292413876008303401179631425415808053140933967533557722559785188907257177506717024548430440397451767849330700011021161232845137820945689040755102437567543824642008569895617651886948857550631683305872688383759857610698757891107482855059670435887861071267746609804129783996455181892361637352330997795744455387574636921781629602569551203778780495449918550193331953006491370341527872056312407300215624580712247752556920453496732068674903080034606816680274744054088414915965717964844438595447499750825043835549991938862015661148400288970574907412171914849445795537310652590092734295507555499833867063351542860315995663746714966510065822650909070199848893097528865281388008382998083184096681732369482738819342595240839815042182274075489878718776765333485599664415368307811544514777541584805123017282970172591919375035113088308543045305367112385753206699838701306087327405007488674523082453980369634992138551641340768431290457033093589608916025202334462949549474217076486934120953478971780357007308739406406999873370196242657000043566863395008205917418378162042691464991141295687959515944590521977027997296789804067392418118748288497968120677641948101087524015118037562564386553082717897030038163114156875040623409153348650408704135327915355745042096714986387917228966045784260136271171264467476110027331187872628993349179832933458053738003419300801733816293633705614864417198249030257590247766148745288486299871732544870876039165795235650986871528276964878944867490068679717431556345449942507965728328052444940940554957864769980401303706987577270712071212786959567826805232561773535503290377650238247029174243707501853562794975380238742583959395590132552143861918953770530768378837619114560633511226921625934722870832136654188200794540205280641201834942133179990344216264181556623211794985107189814749579783072253925014660906191833498943261441534511178844444206427247498135385166648746786735449561566168664701564110614400282756860423303449056087906891038725889181242854641038653340595955511402484496980564527497690776546992569651656740745720069806888309119475520830534771745642753109152918271248229315397379897670992913229323108196971894851824766439866940904373940835854148222461579178417727386160463228766237107294414845446921744240028883772028981289571227497635266628018559977158968983908312805484453679067550309289378055198030612883986148313899203032689141853811884333198224019002294941205230096846969211085926685603420944563342398600235480705037634906392380376179353970308013566315350789957577973893530803196223116315061719704012990419347939029634165535586661776036605867863617866902584987535885187939794528381258932596334859918423945670432174305045299689267073204750133570626894290954078852131233327347479760524386885789388598318935938322243622360838487088252889319803393850213999450008863704694250361087651771315834814916432968958026755795714409155985153269360751746922979695647545170590022046226904066831352691641473649641565029671260456863057162668237817012086579961059828239705970785088829176356331376067813193085767658032352604196599091677608587820976027263191756832682471830932207735286010282566241193777440675520120134492927268078412384088486400551046393532185534859265068208823208824008518523520349940734072540779046252478933982572294220054254558895364837105943210687825458731340920928482702153376008195078972943299259026339554097071637578914628836488254040409890295107183221224352910780768184926129627769836094675604544888304169780645807428736168423863689774235538823173827990324825954057202999422242071192446457756647118698719098413549294650784379392383313756815739179416457545827740760116040388858897858949685554288385159263760603193692713657833146262305224638786449449523729112716548456181173900897426182821368281038823837309125804626476476269664590844811134418438519190182104573137178433660569768982988816468288717866164876851558934923586005431444259161772723598883979043042895220603775462965345359133564871805600028991441966706894190096823039571121869307150248806018193629674234363089088164001623302657778801055353200022303553730653806119387457018844876713810234742408861414719134779837846322301688280157118789347634003889034027173394900840111225228590715061606713732490838988968947460556341726175840093551702131436300564840342580751847825192458945997742268050618308659846532314316164285730913875042380644789553314021223662192815602148345005327976956560698292940256120234028711949760486631228061539608450727850961805324549973258961808906268909961102080597742315375109776363243746073246759918099241103731602618566856391289662521098684833075467952920694845268530397671353016733160651560542888566488577679720064331662977698767825383051565802782060695177293356591818289103587905911474854377406482164926566232505800914734648000722901699641909933834817685711254770779593897658885269616002859613777335857032218295586822132907182438080600211423246202401830085529267611831292369125344618665353989514103391415720521013219029244634797802352542452995507144272973332554646314119960351029974492344590934670503309607233247872275320750706536531716522266992802247025637100212114457973606328195991106355861278319965191696874714845332589070331138441679998069561713261679383743099435494466110155393154268108802366858361705384318901244544033770588308566571688944660974343721695600001388684984583310856909530054386997316849609689526655435225354367212873211365957689659044161183364732414925922065563288018464184854763040133241629259591024140285453860925086222574218432843280619242234453978760428710057576471445658998097907526459434248608979328009627619680568106569045524568938037957713017254162492135774024065389642118859542282056524834196718785974207896532078293999697582970937124821865281520534878990326388134448130226354106488511132788544386778007604384921994116581743153325201412704737967581188723229249803442482206869961532322143936308322650491251267800165325134126661786438163853638748879281614303508095310421811578167212092776533779082776637602427650274575659972365631430200743565509960072607605657547995051769037964023657175595555641288534383488910023269809234269540244548499430979393724347137547265473259655987823458096342723875034693201468932149963003298991606487176099647380474435657921185561858364058063407883391811194855076337752073991804079790214223432189786855980502065263771712957418749015662940851015572288547147754743304878173341724256420069984251144934349658756521323597643302639492785188115160856773959393176764555186057616052484934444510376675205693436866791276043212937106493893588219648768667454879810022881857599872222107899850368607706288460345754773028370130390134980748435403751113850023795419521963924843706916344718241602204778160964622495384840973530736459507216507800259929648548147614638123015518013547615823475405675577814181547877724771967403192441729091949113635387597136561115054560662854394471756592510385385456578689933661628847939760975907666436734235948225633442350797365579163113985753444693243680566807333330772169029796904856058761909159527161143855042064677350753012004450263369236146340890900888893409485735905510514459783375457714011421444399332122522073061449599943518323684414488889466967146095972107491738105387549444275340238593976774633941670487524733177020115814933145994811400571432881142574293963900330886269090138154248591319683951478981976383905204758887094598160972451374910888046761761976602014593407705833794424495532078101236928582201461506003878221159452895233518844308020948005992721417384431891972541228726321864301003516384679928998110985298556524986028119915003573791316638486876205347371793536701977102658162505200027476821095048740034999519022671194113778709179769509742713695582908866542310628851115566517309239747990697056162792600396481444948242007449843686856886413470017485761865707153697192975488542473445901820932343961993353057232295381142222844112623057238586208322416174125551858859018825859486461505441599344323919032160808505717779099440462599331490325400157791725792684975827378601300083652923851437679883295341486757935615009970397685228880955314549079512901768720087115046521302679174407479571709139497124928581208398888542992739885804161775538311866141677137567833592890108457594060964509322545915851865506286013840665595537874362412064964157242230827804621056813408908478701748880507891115855586950104557420289311828553357708670617983816743332828408142312950568700120461328077368201604589820658650154735891632243177660529600888481300740903614934723462459954426255728377231576288576567760825646872791348188432290987486883027977589456015886095979734074544720335548242981131722685271157749053310612308958500281174310208115189831519909601730474718442317328312341419861639840611050862116450343471833992544764720731575572852419425836512257537633986711013085202323054785742828783940644011383882551886539948308092420381936079990043196830311981076547198658106733717985962348935549281047912765374646447430204074735641095692399980038064492512557743307448798133347491335315888607821167341968277792117243306955052600800910225700261026457691765995947508436336710863380411053867966380849853820225427541711456018033299882228688182732605428665522317804834790025056517194507857386486448179290631286122268870707251031409394437501215614201708332173075342106262189593211157696959067229374468862668204699465826517107354329193691651900198558245464581762091207703420652574480833359396290018557704161591964901389789597640911775319812655258832180774758560149227496090545046683942412322101019981047671953552457872592473337788600743438903964425092177310921558491921387968193360884018133172002383357093656886212480807805042671569560461015655157680182884176557461382456772793504168326889863818773291917106416111346967340321288792239138992786115647823158836256079870935164231646267332110257367957309445484467029137863551861930544649842161350812443955762277516361377018117976960662815034533769932974352290699304901882447287063741871840751859851311316407074794023326968809912628867865485312844692294127491221427825094193514164874713175984585828481701404268775467971550955619070443147780963722255314638500504231338133108868720033134003015146618738717597735495796478484375657038095872758327852127520323896698331861116920298338236173518845739983490861093822914346136219700421635138651574075440062289034056402815920742100106914255667038171701027204900189217802852696613863480070682934226629331241110691763215600923874632646038680040751534111081578600551451069511772596121952096548514824752935304342031013047529555902014027835774408088010377188940525604667250095528551293838447835070279471220508998570597630743396397375496497666892896545760865937565180201610782798146681720867417501616178228877892050848367781706419317141070447210818687165083592671561667051557330734139947074577039891942845489834060068068740659607771023549678301820829846390027601408875148737113779144634458257941114411054752908904897267583852064392848733576538188827496746618762364218273910322741472819516455264860245120499673601354498707018859650127886887011863131364494960568286242171693796795992468185236756370339011730767741005777035965543860875133002926680451549362548603699555158079953509603874569368941852720489899890208361467878930379483220586624602316632011762452741520764231474826010642670515498964587411315262721128536694383024408711366556469245556582507537520132454042578472235753779955592394595507553513910049763425986708344243588055798392158121358870024665246692157629874543908027930755260327749013752249915155397460208190797110142672938190918558975104460249465475815539652019263611172372934605146643850979480341242621103925916405722066328719327026292635582711634882603160011117057719138425099801352706959258555522723310401740847559413430095246359452977836617294794217994266797235169470439377590636483655961894763100454925817315221230576803758153593397625142288864977833304162706065525811632344209799093289483003283804373296215129388789944031395262130154243699094176202154960494053144054482434662854125908172934259013711607889324721214155251735946788670012974867991829917378701149655402439530758223641071592734082810293000613965715753013089221147759306551450278968432574476293707746800301152714312466517634932414221561444273597962757808316517047586904983764957468514522299926856141862856768835714211063110686488269573369348076067103574252343468058457831605781051612735082951276357081892612478248542698691038960845555597132443808326349798986380671470990855706520786665178766261381340895876085406708967676423883773698276789416978671782226188173644088340492599023197029404275717964238177107606697032856464161259797847156900190935761821512302086851578405928243507216657008925506550524317813334639842540837533352218572146992641351350358474284312987038377937386070331856983329535823913022779295473092315532363991076207598129656390690849027536350478661126297586080006975187953075242480215074322380253001148206096091207678504171686154635013382320622862056696639470913555581037550750564480328838255514464540301242797214318508793805177914601689871484021804683522307118131055503345908925650000318386028087674975918862300584411970858949473306328597611469997250355040746663356924675657898138021366715037594323904515028316330633280141653542931809389906842742476261586443320950392885588857588983558348238716898671967450782546594277198277592272484863029883136682963462705753347409196772887361231997611622706849288245212922753375938094509004480636558483825473987053052732634839194976433989531060406680435573224071397013590541470041408217115353870304641560761617506816527240571704240767302761351695929059299144059843660557945354607459469487248109524353392579396753163316572519883487791066591168385803044260756701529095186799598261738140178325752438379874593436982991726065369345063185826074390215946994700009562509387294686734365198955709495845822024598425910525112739936836528916701708404407585857299616519539032196253641151541132351505308120696335179142839725321610528015107680937944279968862484207127412146122756157998668000995108180679986759126354856005800886073176322562411626829870708171437448956791027336366833028257829426182734509699685538014702152309224899523324827082224665985533883820806608058393926006336560119485157755049127703358658554344198853885790307291890924880908710419246182090152337398366768124000554934011990653256477793444018522024680935034382240676168034001163428040135412985858207415666261997356507266333277942512997483015150711051943937873249153362512296475735931091831684660749057992263630672656236483805408312243637056033046906299224963362521644668675472483797014566169473410020735934917681833897581772728008188594285076572019304690054265364973237404190700310274039987795663370344108122292415719623876821062643534713879044209346796752061542932411132829735959572837329064609112283282112453146264566647063660707049430242574472574853725391765423597768292114081397804597392701296994821775083535799409574729122708786697579198680503981898042555076309572353592964427545296437624276569292181217609129139006274269792380678148649335797519840457053490095453327212270544169542243327186127498093120166707465871881111013211140373510274956054594359191843273633494459078863213053399003247595576537446540357493320735072568927102156529692364559424861505795297043694304088006605644901304369288468996149243933237580180358198260562643023452918908995902235912039499051383307830367187328695465037868848636916276054092707361750236831881357699544927890369451909533709632892680094895074584712008134642735403163125540519838870247422481993735710469122126698644898261285313538974445392195735983902011995143851630797391648283390710621274010280462531309733924815764385227784785401365855487896664895772937257990204778671073441539502856229873586697926394496311768231130881320760434150226252563367198606238512157744315774000916132451070679012561746648617895073360307458097608140879579083536739951516484466792240284209909622464957565627006422042159963503614623462193431613014922171728525198331394880107860709798571772606260749766184120015144307521518178313652523943729250685353198172558595439372554958227305600056589158293166197429305643240055345157236182844300077051499390580023519049102853975206802096519289278813170917909570228081002044544641431581438796300486339057098660267902798255038204565641438397948478743215082994852612585739507867704627008382403575073391207128327859568116010413157605214269851895047787969666064976347028953200491237971912083777498222819548440279306676827983890819164392091695680613775353472356618390940617924365223864953373862972972144347471582651418369326842378614893106341838284579364950924529183458828392677460227554705772477999376445581861326106046964303828746475732503974907070432848549417922267443678764984312449183930573281755738251114477261351168994862975747235750121151961619110441182078233563602083891917333470467273813452520099783344013627449482384060185089208321886337221882272825138910985836852796167847261852451500596713557461100199991113170510395192598424875838148652291897391392931856049885940147847060343644590211569112328586649406493064286500994757598562046921293648769035141883848971022942917060244743060216242356256101550033689284886938904150120330183234525192472460409600365180456852343853795044926923059719332188642941310715958090286557268649202042987474934295253879618218021412014140115397345784916937425681147486671222833364859215855139256765681057135994985821538475543038954318938223994329472561329447011022580873999071323409439641481474453400610969533149242152919724499242795778997609667878595125334495752316461520773376132855185465456559093800175214176134760782666950795710006387697896941737063653239151640107615468092838716709802796536360708286467808001636834840835138680782938075437744354780621036103696038790508021693802136041547042982322426132215332465630681044426206815458239114911900633974237207609754922118249900020746432219238353802776908809935480952949705357461396985692873228090118698602667218623248390392585741431307653446392510313771246958648963476787790955790889209250259318480390246826061888206502847390323480136751932224147320557244791981374112954835005052545890546516295431447458564628235913455610653250990596103137782841884071111853712118805590073932513722912148395104991166454841697034839763237015277183388743703157343211470740194608509256787871213533178533146659596067629243978806380038513433276041876979463976532942261959386128369574580128355849049070376533746302716857761974822015779072227475450138417648229014418235489029804574657739207741059106424013238333294792192646168003081139781912182364056299697962444948780450793922214155206850016223570943179119765627215599497306972711847360711007301970128571557809700537985308935240220276271764533375082220152906122029118041573891805824783309569422135243757234982705523547568795330603387207004108362482759528407269482581935538803033236068804464525841990115269654532578451441096955991636276347534919213189794350637013331388384692345703703128586813722172673676543939810768253481938329983505097059262730546108318290928505932074896939783778203322066008518676146517383137724202741877375682303608950130871235552465810624368890761862350862457920891164918467320793908137958617630679319377340905896409643863579178868175105644944422691615812082512019081451282298402872565797117313057279378852810494733497242462467029238188470508515586415489120666242955056230736058307282730255556785818706585776795617215627495286235507019459044588823954803351657327743310698926734281193352913123952955010936287765126159017655722750940692377834790169582034573154213915617028708465449504102836202010362437584234945127392625170691050778727120367223515882225204570406343291291094123515623326896785350771426096583132518720012159040655191007957925810734185704326578789257193995547273826249625304203470614303549547061241314106874706933837321590879076882796478104063672780091049787591385580450395655203998650452358059396260161376532633312826560291176655186067929100931694914304455450499643009555829874580033687987411652850503182898072839469486970972567108602023945257017338108963492762903236437795835521104838730619379928011983196419902131921121492369033863516737487511622038160133527726591917446294652723443343699842326725892087225567504339138116465485655766816728679058519854080568781815496394212286724453964655460692760489381272681418139815909768191246072431272658948114121841749383710416543225567004224391156292885291260278287055399548126784471510507336737271388623709415470624560787654298908220235633173505896406873917092651978951947943660787746663403100667407156206272029967593535318882803684396941999697354021081695101360647199647166563502397918377596009362793164514214238293541410045081262950177377919623793554668106063855691849664182943724159593169876288272928528886908628899246174612778504915035748441938297990246003696971811822822557833102578410240878717020891652287168800795309279678984929756326139953154847119251849105940301873150974949072736671210705337582426640955559887304106396431906158767071634533671696947713462074834437348709256929970851610556060681033965560985870660254498639510796680772040791805130548834927537393681957532267660017619119263323908764066392083208143989709097272967776723071713830510393544601404278269051506827722216035633073629637822060482563447057400643180314417635995314257813358098200754343188194890381185536133663819371151248379199753467781718142992792519997026970346616237109254033654756243094269756934114983686610101335336898288157532180054831198884478956238084024880140075574148507567556555949478277760440128190509576969732873937948364976390884718154960203961843876784942324686754337585685250135240148337351427031537416513487224274971639922836520273132090156899999071499596801302067125099948381862246515598690750707224674874006679516690221032563644032969130017208061604116636004599420109799340784937249337806081023390694270508697516848101515965133800866126084565827747762734787855308540558510724910146800775942210334348745332548626320824017866392651953192644529246626709650231683610868656290871577511454192559682885870666053554766750033582389517080765677644992038506623027724220302670298221031458075111525580548593678381665571964110034521607930606190758388204958507564847496956520445634270763426889214448461906298342211148894722349261819403226478652849062787653321242260574729892547052202779343657211235103682737827222109982737081659082766219229302463298702608561092927152269874787315790191699793867031376020646724915805942583012752364379110517621621939024379552470850717438315722542355130371568101933033303679562364532319398194006347409402135057266159290064823667260237466978902643120633876132462651490615322634464987471552264985309178288879291182836013050671877923273116840400187294489732765738030975543505068915056405736636027744352057015535083866638341488086177510178332286983073400211007143193305246838304315995901718438469709539892166903874133017298631305674490963579048146008950885661876256641335355948685173989466071961567409309761598616850947725097177094747983441912859188053558605253272040720895768527196829610631280479107729684646204262000439044233466092662692290089158560843836554168316903165624539096188583776531295717378550743957805464419824989297725841967876155662403984111718900621976498493023190116566443609668855098299584219264173729518969734983087926712817777157491981399580722928692675245050172697364303752930374595316576012895023342118576699932041363035331515022494847402144059420708311577634906412573331527238840782962698363723229406523658549251505553644733649354602162508652497864637077782989747736872291221366015627721649392175069174297781328044982824489272201997638046551890930027874319472836685157176443427524259568174725383019670906419153749707209600224234100874612648929872137764962524052142447118702132240150463990165758495093268754750058041380847715534859893723778273623035951427717521359227953670402604191616706149273082276021254142020335973793471536356177460490250340607488180968510707095103554744050809160493545214657811482437116477304066044523869176204943821495459707437832671694552164732641254486687828982786411260941064360913995423387489795072955019137918614733451833367537829413726209179692161487551457241391820028502244779800885817432452860219095111172740927873313530026241043183617609926345595255680650686278149470257372454881343737580138380125309444750102156883450326999342568570263324671007893214597638840327548804344651556081556634257418054831229233526040378170248999826564362174653002586561647253107333193766189230887044266704459281541080323818777114857207583149695018863545876517189256354892407421096527653043495419665751665566614056229520957009417833544441522099595079008987632304235623574921252782530508381500164689432839979629082113282830674203377088841030626743584159222448096820277973811854878718775032577593135355381393721119568303027508212216188714739058796797450157828819671246626496935246933677729676417564750842224117263085024178534134257240113617502008746009061192125376662833320652577503555291538146599853447444657950020775440064013021561753930450340691309009330813900142384693981824967673670413122343757657075055800620293045503338234500801633539001247455451858598454547286240157785790581432061264316820847321843507829272596289009488382174768807637651770237072129550185639046766548287535143511564617966864686075911136524621791154213440420290548148509997064378591214480323445017594370490975800393938932766999278031735185830419159063986996802530161116263071654686824114262989653864358784365131258602536716922729318764828177257131939665632642936744876023798903014928714666040411052351680008468217465869413937425600596696897220424035762385552293825325298910253145944991714499581079775562617656110206380843697608304531364957419145993793247226744611747468808954519866468653821643291982131844339930710681476687600004879880870972543822510043527547595831584684640109135895583738616303868125436561645031575027270156791282252092630859481613854985121082070946555546042836239451753898880538655440341676292231005521427091109761668195702094479316397924054352927473307534236118338151590088683875353213385531833280318776122496753571264070706256647486857420678248135528599592463637728279926432127754446728715632081455352588692847852598715200087245196044795147411763260997482852368949241443092447620602763494579672407718688140141182502441896482006775757178413026295036581482508193536089154959214326906791743176322098136103271827448560225139920718219924785057900624206031442278261431605440695783431158790295798640377525413345250014811309579264119932482393334707856402442187664260895242129413374709664352672407593719579565164145443388615805138889897891289957856256396101395894852427993786029273006869820432937961706132353716497638794599652625614977385658670573616175168926033445850447110259205037687690433331399441146521436925045800429456358834007022047303060409828794789923302032144019980564279729742964037243107893041809493126224110259994338177024787975700654776764195882522923797693584595493702977431169352376282016115628056168176058185889794643342879405330783939453008889254816018585507786009091080081607644764162367673387296488711498951662013857830174646364319994332875221722685077110650978585552186912987726050645219650521607337850408198321552247523034258135052615612196210862441536681082916241890046864606235706054517951171379752848897365096873259107584046271160955000335710586114194177523628697957627303935142419433267200083452346742432681564416425728190843440385221391096326561351170255835619912648875198926415022458923404085081043739704845819017446947420799432556071543745037793876704660973697756798114448892937529137125846868007872286337293429798335576029516760979651476033190094648725553745496536679033003168732687512925820477876895315272838438887049274477254956486600647958626600908025758841653623890656850866290576088549222597793622037657311380968304793989450085066352362344451953973205030277571543951295141903049255953912336132231799274541077498803476381914491241225560702051923185863479298863816280881616040897204229150102943672923312750090244254026592327078739673202648552877352307887917928386425673495229474073982916699318420680501976754820729298571063197399205041786077374067969871851768493636623883794432644596887949422393619642444928850007067027244149165132399194682511522165501948533373010449739869892078648254495294249386968182355815695254536146854793984068124090936117049220251868694966781329750155027433686270159725068334985075100902052002717912072017409712715281683680791261151596643964573134104424813412410784552044809024915656998240370556244202844558240105789113001964792275120740258381211433149737011887511237042663442927359854540689789006528648202327804372051333113329096226284687013082911418975587305601367389112574138998050474716252046774908156003075428318934425813192247143027651233760966957879176895128516984681893684956531430216895518240222067691470550075712357776649089475905995651921746993402877880761943492305280111163439528508319409778161550021444563073521960328468405158552487265575264008342229976200959678516788306282833735644126032431400665686041825058451819183688638744064946672560766091219541746223265800856976467492847130559655787661631205486943313301497714593346406653706398200159461686939253648949102829027173408713640307732179985157394704282995254340154964710034094605247085000057740643841321881137167279140199364234748983282566270463217685657970406906008397099663782899549368162729445449176970472666388881061604851836935114087610447717036500433072428413118462803070187588201709500702286096327497329766979214839414080259120772125732651821414524493753138865622131866370588205552000040795003362950470033503051443414232380184296865583322948389647734094592697728649941181133511445542907213185577925036262227121336297005339352760037102776485524547571669148411881686595516969242549878474215519930823058102877226701821362986318160817640564340095543654714723256764849075695599795534894678959414543475258514359171421415933058234903015857221594952961509073135013323006794625421096931655374799523815980632461479719560092386222394190344501119722244291336144041286002377232759756676888249105270761229391072698253808560160554202677319693930985121021636102385778092575151084339063032478280684276418033780212308192094232885620461857841807456118540405635134848374081829403910934979585132301326938464060583519992809418269723498143499273513528937891083418009300643822836985240611082105100266532347857340095999028308560259950072935293320859875256846694220613275881863742479204465635095403660524548816817806833492568799216073472167652417178002001661742760616435270370758144603780225308468075947756864518714129023039043419487378229020413633873580711927176551981663808265286950842257623820151941561881680261826200694384333567490846081569914249193090823057246934207948473908929350088970988303913381121102738085227237947678987133057732845758593346276799808170257673524788436259729409362723691658852390269610391480336411790543864318182373603961157583204740434254645822055562807709180080912528640352595230628585773232332973669691494945277654357591141086347867634220294855250359650639126113954370913678086976810835071894864365759718948442678791818559749937842358080830100959663319951387889432893317153205223983424254065741279914999796651105192595194982369729348558770264034969752692880431589308455153310480540225615337302035627982668546764108226484192541752549340890613629112492937845349987589673656219894201301578042707503831554368672977138094568872685092093252627963182259782167040953775453740096024436611216041499736523119862014203998188835039458814343860758424178571319132288534795815682131091430059242340312260292693443442836725805099684271835646931460921626352638292957699855596388835519283106782908742215646123512553540438939190628992646656737989250844937799437623010720408031155119525638905131037082991058012173045880101705329846192288531233297280378296096596670836663368369158182996286663611119368607624026356762971974922874991134510372186439543968837425215261515160109899308595304816435686871019046864831100146945149354158272880544661936411343697489588330637755975458618211830151062544767613077392835162754694893224453068832444403789243584784552878881541301282628694911086462035629007871917525156898801955021674508641274172121469410765698819472912016643340997861664409798990286454325301390271241958169622815017383567750815280253328656267873747667199891027487427767133575642852056946509170126040933066128163665418931349113952606901030702950922847048698178068067898552643274565548204132091217946537685142612682578510678652933182855653682419258319303684865412012142518121419619156916219331818685949367943395706918659771798728328886324602250173768182307251129261378147316875464307557022090588565210597878115645047356243848583876119659830714625800727341941078302198395207571713502981132987032351020197939270689982845541054319265244966216862709840476233185672301701893658343626355902553843763413878204621776519113419409007934173818781972460119102834658265753578711860812316834053453576150316162456770257754883122207961774618215063253343957630253859321078606046517133759090793068902128551289895608132705041178671163652306904502970689506787109609162144652056300422719381696381008205292270905306816801859651211970301390036526948151210140788970189642294998384970899500945576343687776459957681502049798609002311847153209475474252092846130944559308619291430289598509849240848417731355559088347046410774602003225356672069560316488656675272338969510146526825382462527988599516371853560284748799769004624920139397188929144001523359065484701267534699324000337533564437638933634058530937464797088313182033726871238569787508799214685610534113862510111800941707655751368351584546938597710101467418791020192418336942542408750585403685973349705548532186384071527272234206413437514158906138242685685610109415119587056720401775175379202751496183569682424738444046386185651664864906909136000628744774318349552017881038860496368043743378657716373330989304670574701995507877086303726927712028776880832915056855792216253464140261389523454469827766003909993494451746385237342950464645635086096575375401809754888847144213474549362267792538603973013497822528840480016647927335201584090532198351302300625878682991113112026700686465704650651877747727688993513219271143599796975823181551474517751951299097607677426601299480641736258782002495532394532879501430702884005772898353751302990352350113459093932487466517547069321357877390195836301457040186308989981003735998346682218353554961193664552611674773648454219619399509607582457635167244490573126678566291665074239073689178894652831334993343205416158587390730383671450502490916871461755549030555013097058384029116734746443776089024347370813764772703141267602458986167463593275376198872026240395247819304232092856399188761798606957084728327008917236479321018843395219637196335370035616625352514709103451342930564266821441466761121840189008437785599682063948853569069782215704984729455873970402332584004554739270953288643603259506128379366211917028902970973506873243113314110595322424984465041095330229312773737376430771123609175863350353232606238229767193531922932378630960113152338102625400245450245017687021314199269346186037125139297898652023111590675849863462976193471766885321866453910294166512764639950189233395523720747002158068356037386044092896190265701559908690519311640221791412475341113312540302910229201947429467334814504883696696988423078508983935792560529746907424564160579007732050707867335877549466478103900047316415578485161470799566385907863446611638333010919373745889289868909784007939689747667103478294136426894809242314020058860896739666438542621839502869480336051287316455330155341812070158332545655754992417220967693773498963307030043297315396461327023642204788067613395715019217497377729380243611779623480005337800161680967798146372414961004229407421690574458722412207475580279856405158194132998222563015869337070727969723159816004086339002678672987902181748078466519090177892906772267630125928346671853429977957666797804134695552902889936347567293558944665724854430112353299739410980674379924074737070871407805749028933299697768926720201161210399883250654528042978516694101755464506739729109550024362307597194166996240229012793612124002720915787815138399640891203700223920753966401820739530540564778188118331864610665850717808767366966469103576272681483103218760598218163104161186687476277313909983243952662994887330764607744818065335327494515264075394229297278124625354156155585147320752735790766695061296514642646514072319776994779778868309632674145932030981178507623742409209590057433428131366060599609331636048666868199640450090945326155571356324455567383847365465062115933268827687897767865784061960074971165042075901432940834813837690978704108445358190244097138573535758976174700068954632836853631604912624273707686134646772791470325787621300488782915336287080904848724905275107956333512633265339872550641320289692271380719296681494319067312630441849555865909140606711820474557351999944298896776357253241955919636627641146673931134137105884602564486187495867643251344143741793845351229555469202012710668286856075269092818059253547525876766091053073563450140448859211280797036167230733272694966192360018355419882271837852545641097919293134687036851965684680097324211031134139960787707113325611383609127487585756647484156560121431593968688545108644964649154203357027247419740977912537792834577816907600540193117834288914121100180429080240180769829470274182889411031623559246546387833539164703478738538765617591438848503637314463299748710983138193836192278684578583991287389050209665998176340884204259574209478467213476189132652027996130911009320837082278787812653580328304183369838632089801351204723697458694887772241515652857734073026493972477214210094392303379380475091501847943258837824905544148551140010269621390816525855403923104671401226365958641962621288198712966906000442634752421476274674104917357275144177732401961858680261966366454668821287231795114178476276394046519248889537358370424217105903784766290123583868223693258837163706943771893785463241339885163228754700327888914071964940290432636157986590646593626593953601201747150398678698705031997448322134591998855604523531462426453138513826421602966893985655002023269954394611678076281336416294885961129470636109692782760766373255590137478351978671947040314222078570714587989264832103612015334558132184716930954671223361936593517269210822468487689354607629419667951391295013848153200077545695643008952189030611043392120449521378449959153868640807349048716313790152183696337023980454355544602281727169620067627178357859443655608019641179837698933901344046785206997712720539015507859121398235000803480639210304107845561399848892974360018219254118845330465078429099107147756852849394319475637365215482251143376518143094913202548809505001502011292353470625012100708153451929484447084875714126999026789945102936342996260218537114380695803688441997327898742514151142354108597153469116168161307739000043545585391469578782733111073761012262942968544610261027194162729624727616191831459963201514239269808232639193387688620938744626198719168585013486540502259779149513695894537386901077428536110128836648744675176269497149429692233932558764839384081045651840643778996708971180258488600120086306232049539563244659230488957149641297612599680714220118642425773183143614440162496693957983624751537902513156693912217023995477085956840199343584200629023996518750359620417620477567890756270937805950254510587391563175152383195352831539980528811930556745670945068168555670885819176682624022563460307400454113376308151920964152666266923046964544175400469518085753948607213816107128603810109318400098393287495692461527737510554675269122977864140435044244777752968376779399127770257858458379925547220022370696870154080592080035185062085088089856120154525036011209125993488482399815631427268175484980744444198112568962807900715369223794501711710635710277063530482737848872361756215893143222965016931813476305445161446972297932153751594421821642612761456389848526359863572882623523475306535570887941481884460737301722852236382982135506054340396893175525898686980894830377164301403320934080784276218413194673423006934180358916903133866296647138058492684127187249172819188415877502349295296256283673011347903987197003100860459245336968006446658168100146349040189997503583298212251835283713627120215125334309496179459466936542819809939199601239411100714460228164058713819802664376711827788135249309283943997301548763421053367682738753228156120220498751973339357189012958598842544420771563745771867092696859037472937165737391475956069319257155842468652477566228023716362308847542204213775108394229047800717137948656281658484836200865026820370141150933655367900456408589718852737810394455476013748438062702785385719971504720595122646256889826302860912115130448506498938767091368599731559974603554976587672255682905097814740699729649291503989501969578890640760237455343401504085657488892934556264085187433336170034185510847982441238441754708370929424813201928641391770640856875984788921184954945302550709356351965136736730657972854904897954477633845136143426943911285292874308762203057752957649082551423882729528512795443419346533529686086711155105816761069268403870611673625210783732896877117040044436788100603778198424355621808264390046240933929266687950545756644569201904588944404370183088328129795648770977841725497769564726391518170541730846608474152086056766901151100490698626363068545045523020599792922517658616666800403815063420484312660428334399773400446527791904239140142770507514128212216378804964690829616195654523112647030736790206722210644712420484208410249015415983036344844093258474524159871157086560498146799808758394430908723272916654167554463700128767259519393679672971714525063779406597676473877475667913640171546269288118073043401281042675227064760630168701373774195712191140092308269514482238160212368282901634877587620256631473600685358476685295988668497998328571520200182595489717654528556993336137540419625773396500306445231666327435515487320056157436301370599209102591536662000086513646598977924152439860557418208358679774006443254462125259531491647097632990868088155315431258690333636171290715328394477034268685706408383388164598577796866888914688031810841321510949043310283599397151092937516613008791911964067150526937824464200660719712311647832188433565534224021824312495823831781024309050235167643232839613514972048353549560909520463163667879065550106311696250785218274904132359652709539888285588142368788633546253671776185235332961947848706885920371229005485965834018698089094501815311244132285147190163814153791612958365236051936612739197953200563491645897687149331850497142106946539136580273601545456780702938720215561750890399196743904200270720063529750029783028305696981549630966247178042441381866447574122740352141896376275613094183466832108377298593331736082822677207002105428570654129059358702199811891467440066987429655228909920827205907662478604696745676519150972851618886831562817820085336202863019692038934051226797664716342637814795786043465495350540424997105427026464304051030020105908408900119452595096940537793488484499205438049334866624256341006158447321196579568673681894566023930096902772897831506536117366940491764905441007172666004096313631761634040577065825690698124241308250974919271312860130670744511191743749017564912685521410392274620275761214182618057574356509088882300425524365437885597218884871165072962582414769878731181193184103623726333518936673385355563696535753759465944236960553055138703596113053854013084446540492027319785483638284758596631832057543804561141657373999739834005867488002024878329669964421945654733467680905734090590300937291549702947635559384957429522939471702259842506658083292407778173469618933432919648401298633204988310337108275902588312058016008874793991659654607867049914670052284754169606380987263765155467942466145775898692563247468550992175583819880384919839668945841658244912973451378881128112411537626385283300654984604711838157064333430998171843298618439187587150723506573504271994776339766970837381426461323991895481177820659834591894097208233488428837866438219942391071396425468043579500124092636926836377926675580681221347798228095850405155595839858278765457612239665411457255037806817514471901894582639970874554158562437464759865693008400138062256211693027683974472557015415242575031237708813200377257143965777475710046379061561487178954550671648509505276537312119881417693345011247451185266855600408737430645114284790712954976052037367958932664441820000557543172624521832751677669821734891187666903410141980548039621278670490227316353549457834574362534922317057206291740604746459635913988068564407992172575350640272010676823730266940507015302636241812222464815354286513487595735647972504666988048055043720703973184318803936646503996625439815563724206602252982054108240815998410357517004634772695576526356734284332153506703921438113161045916777510857230417371261134182381847042355499348494965030697906601424955514847044634236929031490284839755300986181805215548139237436854960658809101016430639948167364610951912149026345124064018565306746796945936122182162880592337933029086958875135028844588750873095988341702598440848619301946548735690654646077057098919747628009244201724406951806801621615751162989142352413088556450786910617759881790810693893586119737984866063753521037601656898948273649563574948337050821764625465354612341124071428478073004258718191087509754657178301607673061095026261929045430481557399419924328241986904899693041481825634453678353575092371992361936516927130582880317033070502943152362453249201315802098074748640275316857116804780155008654376612328439156231543162116750361529636735335162699274531852095393733573858816532179696722525667694365676263840797537743776069341859389325167420040650093514951760131226571810669002471731053675393420302920720775156561910631662322094507217362685128832162682274954593636692692786253531821494048557104460728919692975387133801273240587813377083050357298793332462286826858231239580299618254937037522626183123151111571431541399171032744321367654464889163310317487777651749115826114875524981980141146359492403051436778640844321373869894146752063690532909295735452482824852698898082530078986726435729437391572483616540720802071916991882043981663367730852697543225252648239428814304725058338352079759756196712542569186381991087851385043272259264818028700829832186481009505091263443922684138449956759822323095184576164153249213537835646960946460525356756784212809109847871448348254437578372934169930265867118444426594535172422345420377244571692595595141354576124343280804890333094616634541061251866240465010370434190138305467011980378088340645995733752674311750594941024126751555441795389328767776459367616640944726315186784246012152005030898845716806573019444720199227509238289611805975168865376999757330793393561488698456157665473748876402140482814400173602650036981911063610609154904449578206561392305289995757053835933630330593901416885092176096933609810385829441661143388387835576842211496840718993462598146674176959304845356976664190209021789018676572927745137757799805130282385010939128499746313742213141026190206647457156906928851329037741822002140394545240998004800296562167562894399861902923551032830195253567379981189883393614425877366862865297543835448947987373444959870330715423020263513703335346020867091619515511219875159393229979461369911091452835674928326791682515115135267244511255591027749638214917814836424285205778588239173964208655157765676071460377669898009680887266229129408977346196749409925090150458439769905278089261041639953566653175838152592904038295842418181517856079196236477889423852132908518392112310761263264887190089795025592176357439232990269919171907473374897622505023883290155276449481804192766706468636025596677596592888360745890519823932586763992866990462313976038007344253326234270557957523566268379465424843066014833782317966816122075571274622766859608076767857985636345144239275125550023568989196916616938360052720015981610962185289266695141097876267746770007526659320239498430019311790649293596694450064570737005046114644985001369881730381727656036996284114029256744527825532262145619301209803337463361781538530362467353692039610718965850569069342511423716156413478057975543185853679873521070959053572532014552881952131779222305406006448549011421969889580450541899576831803094460427368774003647118315767376358622482362406681250787418586451808804641542544518512428844490574726217623320645576180604138216680182357228485677867802485994521448189655236639409674878555263644283741274879887795315178713914483333329453375011597097875931148524113875944453355423313858622426565231743838261630101233996541451294494459880565787594833278800005908213626528018961393705307996039281950687691259686800678068266125254893320578429370689626640304638441212851908850771026638397109563549235050853495949012077233716822032671128275957377274782194594178452413095388825163015505161373145454470638573162270993411052968911006417756748548120535890728037317734871882635741826235190009672795645732312942536330427176049991514738588795315370359022004314793786010912157624088612355259277065430844831135435024193990865175707716589078695649106664671609738275078021960462041928335713198774909431589424291395478213830060950650188037988227357005748985361824820663730569073189319294623258459243723044091070381331044299434940018749136026041305985103108099793938926495556062190833948713660563896604433826451048838435324349476162806662001037889381515531462390841498829730252347946826165040261078356878847437851885682542700887974848972962789430553128134188045306780306499682025471615706845075310071702523220040089747243808046640325840038163970162022467899260336652486882373542498553186663433281617238457163861584921225696229433595885554676187141217633110612540115644542022469278952653330623592441765783475971047156746186491869779963524242510504844418572671842370052908590043742592242436906661783142981118902036893659848307870135589946559811044746283805284484021731239596992675826082056497970955800855565571217143231245841869725077129105489477828982946466384247482226509081766299015238918525695163934663900833570342936870043251694995791725668750975274316839243021404021958878990330949040196913798194462091496803461756361434519707267900587145629042356911130131825438374153739504373005292111109496123006922884032841416422294214101908761159448085835344537666664687976929561028990059070822037264418804908731812416628666478855425947353398857322874477121707507779390837193517291348137837302125844607040615778975764509465057514665082093364788616209745707148516066278019652946384421775312363581812337460732699025760449456551822027065865000764875144087009382509319376837237351614496817746102492723548142299835635650354587247279204703621076864254993185005231303133003478903890588387197993656756327077702044239406560282371009045898534466320573613299409709100694760767596476248161439467496498293351613312233422237251267840278704612726193104930352028382833928130086878817535732071956368197093210914557629958633374072985091755383266867671437834198537376309957927854391119383304753003715561768404524688744120474683250080899200838810002108386508781682269897882481926574431025422174071370892996355050280290755864466246995900319534018275097372221250543431741290149879231307772028361695427440033403114812807488637047707088683204437047244101703774285916126654357186096673450669984342861505349614436667445443606617717682945884045959057870261339765839746947253664321015398939572045378282582587641001558068002694920828696125346040188647375032368565287775177511332186430686715592511713386148291687011735202575006927359395255056231958717068513966056470427363546161237338252342172698235238465771143159848278961056232219140486429655760792043098375704514272558677999435943853875811731050779080123110672018344686638522093708408398106840786582159676359153249353799238454556379473471564106272179624719915807113853070966587704734728448340947072381023161619777607154938914650194394763941625226452727263742089208183373126813268386581563124917663581674299931041334055605295626115898537068391142342174345232572468322230858362298591745376719756695966139629282757608129160404753004616623721176722602585161297412526649703714368192901605291364455276120279594892847677324667657845157197016668023593392076972247001782962364956588904510486122159489051216481568714672650876522951184221294790690251061165576674854898976252534476628260528686800185501776317727232896571003162461423109582253917066547483540828874669452559214024658776277568103237484553226167476381932288479006195430699149140805862443153955665270859597591362465879840972463025951279274326536362639641875932945854909636654686160290663851642019235986562379869328953614023725430504506104661856694285724052615437891785779974591407470186398581509316065040542002836478552182847402765191400075918580621898279588579609066021272260974880883201377911432431274741882466948133696625648815607979387517865322573726400909785146792255545194301495239259495768787113006773621787939040102063802572484224807594872402679206298934325898441643017360462577831591950509070631376980062123874294943731084731988346484502486886277439160428481113492835171807228044050683174376299133898859208861664973515418407476164988029408262457420423907357080172535734313378379349679636185878411518563263165383169144362022575918167229462269455378691792999733229200742954027525700474343777619040329581798201192368862405387518266370236484406768551943706220878482595644906955572699260797332487139972776097176551571298261394516530028327831888569087466739792125976316216733324642718022953213360856147492938649443899494470071409717991921966165655920251368662820464997161903473892143211103029253988026001287943183001988595010500991684959414149041180521216491661318854123388518868464237194938231199648156328205727206714899034871359499853043483584211802674169458293204141527263561653706014669408385992867279821219852098520666444429642475909991267597734819780480672256051943947147905763355557395584079022641609614504130164694121066171711441946860757080523701603219469738776251229612406376843530422402030252732401814766004449463486907276525843967453419088657584102983898199326359018111150345465891586915695451970667319617865021693562111100317273516242173284655281092620752895526545513611712172684955662637207207318595974021125588329218169691117921784305677377056083987186664989723752413846442067483550409386624181889347676770597485154459254137161425314302161147366315300034878014492776825336366725148730157929670514531277283492429339863725427292792387737306828989442700720917452966922470171361742233153948261633852009846275919088249305019598652532008761361442562576650269816294315677581355288327199686347862371941012555187653810065229010135809174448653818244031314316423187376235875364713848313521580175523266775944861682348115427546707136175671273011700109137880038911737412056266552095833608832756617577747191041999123911247383983135608897472306141856576824483882798373033239573986622417927105700627292538771359515160500165113161354362121670822027835461066684614048043665909963929057693038158922297741250454258993352020621066192593270684984765660351172584302910216585768549253531539359574299761398515849787333210263709555369957540704974741520436424655565890904059031888306126051933038803652329862039125433794557156700583700496462280490781913153938127691518457885836758587554480670133261053836747640815563716988423131321516303024806139317117217032703461514551148514423272291105794861865844953525448870004270643670808974500459165151749770641694425279412682459696632843337759146482275302609187076827057341662423924778662116552595823438205790648735025919423082861832907753779497922584707749184139602242708922373245493175250611357022752218978356164768605434453850711989730170337558022806767469131539688566134438242206728311281729375300203344432754567988498301520401120052793484109336486816196442893981088885395460470841295847040209204996236665414280094338451189992254610592870919048100084750456836190809351889098420114959842786810344282177931814321307897964589101857233032453743739666390445770371852520878806705544399258037847717505533537572271695553763004183542917506434125583828852800872919863019961430445883593483849631762346950479066216213881002934945136291316246786503459797289806640244149381035292078458167811267460080683606054010003418329174262227969954957115433908222191690085707487747973220050396355977700625140292589652665333510810245513207390166874624616847919156341628429825997164132721989001375162006340229322847081392970713719608638127886498334232609058918271039774846313933839157644836063833195272558844840396887844041324665406186300681553518202067203562480295307786396097366412193148644713042215285699930063581024093011598869235813179637224723599595646297722813692149982681701930339277208691207445170560518966231955043018801183010218172232769526289140173171904173427910351265803103340674181476003473926281873169646774518029755838012941580800709576980460232785500995563847293902914897433716081432622965640198462150968440101362338893777019544702011421695280093020475989337429286607483753643534854067485185719848942817522817994690304137758902964543125857126074108062233619719898690392334034612202828073261488657947840698082147497361050557388741392360246087338797534419695555161434972863308429844008957745959256631367045116446266940061574332040406489093347056864213922317521508650144447507700831020470194921729551356840354706628379361901650640742625381805442958472603373184757439559728385219158285747497295092440985267052386811137087781010978367259474066182818992247271626624485118983967652815452812286509030439124407797604507653847865749580567056005641771218257840091793638631515513870908463865615460772152971335348070024958699361577926646713307830704127629368470923335320861790570292314663139171748225181853510803382867480381047930011859146769862996719005468115164281888098676528196412201781061554304060563465860330065113866528518450888266478847208492293475725047496834241699932120074180941560009442568252624342173552013005671077905406190879565142579405649980342605782397259401247467372086948682977385293249616946481541853760410630352325918056057509456456996084903367075789018817527909113747300685567183449048526934829283425657549721322258675931029211598899637189344264376619306824160521826239731962068821673188248973833028453290424798577380626945846796270717916985571184481881096260278880674832637520836798277067774466839464889287171767693153710552609190150303301646377735355389007877511558355564039915102317335017239062964725029798852338047029281302489639415585044174503592681852556346783147388634300785755038614396960085683554689462777057889678635945569762206225916923489496616222800193633664034713996529410056130357119562164561402863021981068170864866821746588257546385021213911906373903153813128109206170506932870574121298253746707286211301572381467963967249131247317270187892041329956937574748342430467296047158325169491428264313527733755225212731480906853121862326625960184964473386373748030926154498167463441354054182520734079673675700395093060536263675498270034410908175285194433318437233516015902380328142843500937812823602655484047908399718356079410548432662406143313273095756872822943673124252878778042839729610758043699667526009438117312682500055172504049618928934632030081027893551840044191211275096740501317310891414441320665122993093978072971616799340653413332058967879291024742787485470005992339203434997521319543947219553283855318563688343941960552555209419491337606726846499301930847970254435189156726015930223423840694409471674012394675011180077851349841301031541130331682824191504730208390094837339010440737808233288665591203323351611058950832943667383605353624869497411254402190578056142546750986829478520591500852645785270580248681765764755649049030683780615254030709736479125644880728921102744538231663363065948288904930992008490730996585486756437139385174555292378245772239840166557379404892166128547552855310270343358247509516898867749227134724942024816586732435910891894378819200469601887241043520755408258092292371961355894484968182540308899354763203984619692028842497215618612493933219147705840562111422872613848721038255510637373952464566744301226396687665680232008741096167598993229083526965682694924577514703567488682545177820202094675349827391779651126484872934396359009157161886348545202054273257343757566765112847399299655212170065932914920332737709178245473567311233198609451301555957834796928228520468615076399565885517132607509155698459189266940230426060389509360898281637508769948822947042062709887861644238316503042819100761797260895982918844410094813153333911905410433174673933207116434559589967267541722773052919036071388513818611516079601723772313267765116327902679437437111059889540340640022773549566595232643390273196124437601298926052656825004951608511029930868641534940960112078594352291963877814803338495505258292902714412981103044525932310726175765108570253846987149950349494456536578813157435396828481488295087981639022558384660885524083743196143133570413338756312256916230552015820017889875644577837924687267722072652829859360444263420522784461109711358512503624016136673367586609379636334002399142182714441402606675041683366743666719209390096783107693473005701569543318554436929178534675562030015351597990051322546615671683286109954621337500215317302860890286485256517337882399289323073462752074983865192705368551454568615598138044434634016074267472980130863209034409080598922914285935332882608548106777740719905437215217747263808925758574987967797646276714023735008652112026159317664109832040879092192574473306003053803066528564735467008628718927453492019293121488114213166494577239326889788392335138125104840007995474862559864769083382756040201772721061720394560967779339837504560366966900246773639637038342471852962936534434061969762579745012199917743232783786545694070927061968507750105736604292022619728761009459674471891995755347128312103167970144355719596696001521989494270661112912746410280632433254039848226000057379949173948254580596429058296324818167710373557142291648538836334236567830397563725111628174212106830192845216982436526682561629013030096389227129833979305729024290212809154216291042075762650888625703864257089787067070067736279021087474674425134243255894136229234996024622651606358018026234947880806453409330898101745394785754584726817837098334046876480498220723733138758611756387082490759004122813714148276609116214336703699387226395809301381078948709749154733614383053711492538921147249675689296264469285260857863661619722925818117348820196276945569195983018680807220468649025553956861706172890927736304041193612368909911809955418686647461224033359461742407451815893229509309207599787395960245884696635384214213678919548676778714963815670322894321873419054243438652063717522916250696396651112816142113696988276840463644946635912670504056527541422139509188720397917856462558975505945593293519213764907003376908873499211441591436537903142386070505455641634491597957245976126005642530214491307230047476784923228339104293631929119254281673605248491542034637242546410214777530228170652450151671067251340833087067574321990006847977795709908258607660084295193257149548510183059647639063573708331803130028728310706849554057209909873144472290797252799670160649877280485615308401178625706483213132224867796264757448361703008995933881317687400290943756899142617626258783610856073085814677566420296079917890189419150050163165311341683862782970186654549933153930267582111004073295429313149723133023492480078227086020162795781676902960531491096324076431202723149570007857302288550951175524663239144197080852923942415107618689574773647600200818473619672053669122812409708660710176564221535960045413284029235089898011805061284431167453083992697477105920443049635557308851607605679575000923769781374064760105339195723194304060701441705068066332406269156461452946597713509668755640080098102178140056917313325261215752190730009500339553797652910795929102790824799428691355054189752516073050627155661605326343635471800384177253373775624310012846371695453670563009648775787219482321206030492472260698849349128124231865186985414660375469743346238881310201507043311837573943664438519837641337109144333031552692783998629980472171055209637555563691727940147539212120152804100540882730076006174484140838079044138178203269959896864144291461947559803778149274412800130186631158672218990838371807965069408039653668255009857882886687151508210636340705889767498360047275513093415135476796299526644113618673459504608245885377570401052508117923769518507691156208391557948479978932090221146533888327727592306485787641137117324842014350955163643927311130881973973616917532787833788298890605799163347829797416138860092412570788875653452089786142703798291284070309158846106800034942647967561596247651320160062682514362974014069681925380740859393115277169823425097106608138480100070473466244181300464010160137644250882032621287154984402777371694186805632785283945551784302512994058748061747009070580595165898483872718618687607902326702281490060071240508361652842760238227981743768507047193414756633470920172770916846932285190761192459800385224976398194723695670792226118166192497912591876559295221639337906124961058546909256505874868708205351631834794153097106360785337455406665570555068047052631182906781401839179030621579628589237869973318681046289589884647833976648878864200966014013542620747796898148738922076225928479933163233102654637532914455997027257739440683854606443222859554081589001368299446215982350728180597964535446824377573871549659242394137837097538860146283532889227032654491829336900354253774333045091071846922615720777790545648374035690545138867951479009758548034207530281380796208420373721521550082994396182611774071973724675557976201035017652443323863302043747288338047183928157786246759643829287459827373533213468596688981866173923466830244655325014726438621277838372884674586256512075458988514800254365108990015355172474223751406914490174614636665631410234200599521154502698723816716502391266044662307208230020234054318058214573595706317930074627282078910775226696054972559110186652185334664292628612832009852258715422860430647450062192836750995466062708527825938748055475298436475104395822928478496118273278967545144900737961179819474371068723109828536074711098524347922535307564106742126373777388085974177837820568531518609618724486774402010273267428265912723746865542369726021580482883075208811904156890474266219170334329086603972594163665132889845000769129962974689972451612487031799854945022315699706123845433985472201848966739379588348468785098298854037775247109842382403682618773832929935499086530752750201250774373779950244359342024138585062251972994276939498240888195109793940593128394519837802029971982800014178345007983813788147580284364962603841641890644506472499022634351586252997291517438141348807871077834253332280270184667481184744299628625640034593557053191012978260581658035369312585365286448971993369885543897669025989956568802658204313972110539228833271021658518928435083506457564331605053691164470651315095698252759277068437161609341470778090418757271053496330413281536245072930048750661286404419144767383069783778256569629507497099540195554696234807487197585633388931747176165877192157075792001971940086857629971803927997258833881752172829885531636133920615871326281740266148689417794214310077462120237064880603890379028807701181975988413747634667466232401076433338708904677452465860057369680007536700138310746166886049178067347679861162764503605175069955785251272559432727693144537848038587945770689174430129502290261237343443247078915120920971179885780676010749434101825840745743992364974025080164588970378484853266105598674222291131681557788842381526595351968677896360959985267913485406443864903792289589598227491625352025696336211634024271161666123213278104163757279017465915815322099462088258542536876946891166141021812967602758091364557190704168722326013025510045556187247091316468870469556565926704666185828795498004768000561788507324239557364307052879387533369914174572354343718052461212557266114298379928317389190929228634887485580735023907330327310733948400305318249505552414520591470723472215848397834245937541184173429439718598222796763857667763592511124878370434669954214622183725574464000485206261823025978375068502313122044628359646740456294973883739497155673395336537337141158318556456122353987374304548182769264413705530275837234256698577159251276177619322854212032082477587606192095894289241255661330051951433106133920029373159635710430544618679581495500260266203512159743787723709349577240112362901328396519040352087514715067192631590688321118433014191724240305846122561393653924491150666968027697718586145118483204901135514460454066331124057971835094547921266087766136757514138027615185298735376809043268118143011537048626819458414231684362503849978110397040853515322219250600304252234234047723706671438849441080079816064364752779009071863912716234849553181132417732690832166454676115044508829414638669354566571710157315513366959547691302959156028842168034142552472846330255853070137033815401847833602444116778625226964670123808322674655078413469349231118153096268276869638218188838626992361982448545800008742919716381461109970635687154122377803236362174177017013846285553602939408108855901616237603212770673909812088997218946070175420571821372842838513235034420876995972257601629594627025001577988724845490014830511173070731398284980707616526475293533482691375372794757551450256551408555240183335944402055507800651581092135097890984089594292446318623640159445423234230629221346749377383431746117883844414906214664528625969022831047249722250571705815037512916322692493676403748330081292951262401466043067032222135846402804813794159322816476975969123556465990664422351721338242519261471655429749377081622785686406194423963116072772397233589210752349624631497510512577998236854312420521551952209907943711007967643160500263822772368046825600632229096616089101158120183091482130483111664034728085430968767140264084760011505076291702308433896156609556998004636317228991469185663641124143744959552348042236528022950659141910924094289767132925917228973299891919100662554312843365200695849578473453533696159466993041559899361994787066771821705670866486772032106985800781303569581624099072270910151004328355458499240901105850638015094699983669613262809791700535296577897495457848031620178342087878095865270619165549397008421250289945283531683195110267290202253040967982623967871283605443143763437197263472855944967337105386821310900690491536057342846474040551005000398079587752952220141605139023502866619014742674774431289882901171334547396323624140805163622432298015624380602452605395903743484323699598522067306379776453797471135604445003153246406629357678591782542152103852383586807850946851196850009589913060602911834653448585854773531940744737458740755352512919341038844126202097465383465800288984683229225413922995859011537776174128195786978757732219238368080983727406310217545986877165751655430467258434626841124919584312319634912471167596466671647955805136641901467439643338077018846898043045685357605420255280541901561654577377438416072142075004994040117858793279593662385359902068700041241248523050491992288367712986806751824438981714110686794724589136461636906935715810871248275874707931923243704371022915885191846667070175625071889470218147701744933733354041723709492424985061628895759708297350533652612380847702233438439517411167521099205457382651531957793709291576653785137897362347256209766980612316165952668202060350251761648397713842511815352333009348291609519029986009332335856173514941981424076768070843724920762629689242742741220808566811344225650286120966620730757269883601289766787724005377096789521496223772789653896914017376282347629068007913447750508198292504717924811178452878565020742709365019847896986556195086848395011609200840682493529245241092377913940374805330852822955982590233273899775359789599973525233791298165785987023316155663205559029325650743488564494739964647842297099957156470378089616173539117151298268871621759558072817041914893353456757216030822134585658134798932192822524314036764707440848276716808838076233026253902193846078146093450505262467045739892055035824500917070116451005094344512251501644988586296599674480827598014034878571165139229265567115388134009977815166965800114442670014029143202951202477601487602152810478318028936250909876743507709856220382271426081586968760395170989567806559896550034593713839052904626483808976166542096798795434224971116160606192919272787300402321154198099984673442708539694056066966059185881205306670604234220026382037201788609120326099249823139614004275343151276561988732799693556906707306888910683348142856357860692388359118804965023997027894683378097823869247202892144517074945935499836835498898732949534172069421764127118100350874562808149802167810452170135717356358645934521857997503028653454688280140111324343953467875295014173717015349935312276873095420462151131308953008129555550968300121925235880615743179419584445488258484046944898016959569620236539083715623703926832145820726161941360953461659057189605045747437300572959090937921471638543158034944016161775764400078502535632366053473621105981582404186450279818397280244273290554167711070406537934101996156103363497181441495968868755177520896545702115020770321282437067667332898158265144452830865142559892690952275285740574326807852712434199911759668434069544032767324831041308054923593307365314124623471700404460897617964892587680539921745937594445472613528977215108080173180396341939114280262613868998686070682420199896553435354181388709824040584112437968822299705036270465493263463401556147700721300112787931683399425944497293186918816653778557672085537555959555113690286864130377521252465290788152735040124658193353426361342356788062785528432195683553446377311214706072551821669697221824782775861446255991694459046279701890044332315452940316397253565330715451084536530977910101190040311117121796302377696728654645095161789209601355905722089526321798704286914635080820795031298529867423233118386181591181127115494162203791324744816395918557806410927088569859239586561607093133950924810298189894895979182165168798889408235120595693959150712993231294622826076622193151214500285437136274340776143577656867020393681954676866046102634016295010166834201634125776614117541108325177446497192833980476089299457001233137502185914013441490367405170489660205363097601838425548990647296251596735402374724928907749793342232472845900683351102919056115273426678330528377240415661954420692206913660480372902735905667921934788610915223046574133522660732672491824435992255953794010579591700531792679866590682235756031240925013710236415164580893703827730130786140486845830531344477764132363601120004872098201140881646070024762711577616202897156348688706138349242586969759897194974684781467550789912989809659057430815735875823980771152981961327894606328535038518987201637524621136060259960029497978018635873128303343802234558920989374680260616218988082228153175419228944025803574419364899602567940569413349972213286127986032162743889755878608780916682492460324810802578343770548791024232896673978151165911813681095844601341733100058539531364655858924850028094151832070357244770254683346683278642014912861397017548934741773564030858278039843607301653462665921247176945813182258764782237054351531405513558913851213660469265509269666659215105333298319022845048033726358728907768880310998924657130137146725408544366095218584332260562338781028658298035112343872308192815744947987477855311338298219586591241339137610450938157541791615200560802361894951370037386673505756469200334386041260315803586085557500381815338569495967502646729555455161611233779469462631629167391835923597540424191221757683794690398330777761624057623771273943316769615777230822472327407062220673097447623500357865466571892530397721538629437709715695492327855998446761458331956889321615313209328065200512300563240370864725280994044788176841263164591106772661640425923341278572402706636297031779072280556013438780074536254044463656494115062014516614257751822159937578675814879092594966418513311516897725859772887831662978809070680801524240742182186078321997032623321491916374581284049166673370595922596195776790990155801267075113508145402948018638259140570448159736746242285910889640115943789336050032667821330380905256680144837349989844339851504552423953841428920675819248649068643482502279814537279352634362041331458386783813930865882218848000506048206385305695823684301721323218692914245190145007097755997433319102787465228203959799992167285713025776747246918548712371698486765116694962855060562120250010566836179138754028746056504416704197245229955013367789735360078032310364388571520515319554838498369051776156015139155298853608618097585274339527985533697270175306606458028016252572163642133815981284976484608059674197599451730312096173005952038113733384179484545792652893445562311263962389849830856228533513091293780549184692946710368426778991764550310844000266846092052830428789963928782893477181451586949799607184728085289217327962925422426081977297839503279143052441602144055480238055917374307137540148721225268109935089798777864290336219938322717727236386048829301714071601500114541674736486326430834496725247498750754955227538279737370551506448378692687989591907623695422865500490314730047641817879602234336155790694948213840736238068474657843942136334370717397497443900671991029506722476369933880481923422852636912803229151912447651332271465352039644115727012071254227620390766154031731958317267094894041487071473494991230240569928091539844882346069502725485996208602884095706393764306944969237348495476948072496572956293615953010348455854960198663868402136579293553649141733101220691842799180679473224432879436560013087770820561044577352891737895702537237323494348831414373633671389631659525368582529325222079077106315025639945267577692731633173958237269627792302421087632247101695794601560748541004828030859142384536588094773922207083597599723478571625628888057230943293240104447626774501572909928498051266857815864761951321836234513927600851547636446652440319536052187455124405262516670268219532230429951283110242453421855865448470687455695629911700159417914780383299936538726410008546894260247677851815734182224041004017937633258458253863590084804753499268829398065821628697368396264473420853438540581602023833494710649777425245484113563320650923354128755235121080866535785359838121998798359112033252581298045953031180080880353936271004819612001720063869244793135539448702304592365173652691793150575719807249889153327038976053333329308406671324340447403137134647918202898967987900827564572595869770139800766408722567154861505735889629792453046085106478772155915968931928471117810233811437013846902629903769618369602849732583284363858021878507330963240128218380115536947219304888501170237095556683642464509597280770678639225889123179709621077622325433247039007425715886505318454300900373170082483117630901384369493825856603269355081010366140691963252602232378914632510253887870712615094877162934530562384801364951058238004458112725223674249670812699780671736406113359409787647373177493273154731488354313155103270639436181099053280011917548839626598894762858627663992210207993957523063995243427623774450380782895877865628884393456574709868127947420374209154643854985517670911654264174472023128422573331377502030365688654446518592302781191317320527458363879101639554174231324721149860356941867294248351637212465879704682030921812996888313009796152120778362132555178885434796142051351792445653519855425178929202617401593097829698534694885480390733856069988561054672367004236063513927253923326836457150504382914359965542611215433573570318850835918860196859066559753938541281089735156456182553373670870586222035629208221056202818089239521198331557311892563793817116640713243529924568591779556639462387023414877885387390775611607183368328064076918086356174188280117659752472123491846687359721724381820033124620030683739473174936345638444375416213911606962901930153126847428599730562009483883839091772990254476148452030734651775867664423354095712770021242068802734517761752933872190960383505514254081851558248932166880152122334689425727086837560580607772979677027682519199496038750868168247948659677595878100229181299124799050459971453989892414174491474995486499968689135216248032738941006760435990860431646524077055536914554954737597710260537212978413018255731827775675653109819539188619496663020732809600047156698351008730471478936274921878498316971192283347196269329967138553096958712244528908089428269260712869100204061444435026620154952897369618246459750104715323461745139603305132620487625763011119757699067708693165263471456942197356081465759245199906274771393924802298976149685170155218295233077629002151343490098967632722449895458937794582856681914173232574794680129036486643118836017478986380453782935585102958087832403054754432335995693546667405401909808005760382371890642153143761906989910566504838731281955693758668084109734767316194848453431865612284390779138145878416506598848733198131482896917932751036999477310961199597193853638446523822561499831534814697013994198553186648939198431249457516173496368509106597552263884039303811285086436488962991110247686940473647709316738624537439207100213902429284392906023048011653346969610641297216813753498524160375386474719316723932299092215999132766860238082116760481066562815875019440424681477769742937208024683933121006457269003677669364854330766823773069961604172697441726819384418541603666587754781497606232727793910531179417459957494150428749767919625519295236094065534125198019988039387235698323736523181443956525837042729605461830002856870875398446693825664297806105861743938578323356592473092368057751328344947311490450663002719442188791335843187311455872884793206813503293905717003318339572184311619527175745336537877280511522713394637457053305723440753346765781108578850615233335268642074231686505379097201044181586862854356949509674535096752283523948847583407185966748037360078595521831274659987697790116969332325576453272926095490863917563951515326786531145722806721956671762760864131363093471426892427896457108642477961340360948635462550452965182128828354641221508085762557186435455323419553412645059609888873656778602272936499192769704129397926288970027773111098927822199684951570147560696994731459761744331322896947752992416358357674394314163396073869868962597978973209776465161982111615876436411610265676962239779722113542112100544787196580816651174509196976104707282012441730946211749351722521325239644844771727515120342646935778028082800675402604378561815960906883320234526761026689340366901114720062300964421684263204326638675013860198955750997894406416265959277743720254113578606321726904543680291730842983650752631900018023163950765099111251158072653122383202808507141676064742195395612641020692797377217872411864649328335119554861047863295095414129863059306988671711129836654921809129317666801897215983800480545986630441978215773527412394874764273833899331387964984383262982675454143252030854121121262808655817833293431924637700108706436639342811592606699117947732119534132430546163997388370726036789850539156102711614126807130365365210840729950347660548726390436037979252092545085433005827211504105937836325058159241978477000656634148262336010615699402147217288145202543818548316653027465804021080044339515677681221517775307492846382529309317301745963573012651715599160156618760936501112245827329512389153188028506950537218612493600777138222161777263005930600174644102787254300579039690254195474895339831406172964076687122271853176964796154701749909335264995858965457610529117954571524962392726884901051787156657383538427569279601656146125938108500834562682902294229335679227098569717491740980292212638605375921754862431140001579584299031758158195861928579407880604847927867634659622059903095383303543548524538920906646675594002259304629741621357640984253035512744889088235267722304229116890949081606501482234339693237872653634825720433400091932497281260997571854246805110742464150824851389678210785683223192322614011235509291495802742161948710000056018431129008746815294847953655887995919657748522159792080888656566603447061895434071612760297870147581492752898703751204221216500307889811216950713781119319123664337285149528128046623609083893168193034721815175380116476251892203967229539829626181695338666308668389319569327552976772579160827259412081517568161950264219139493037322781406672659750873435466835115103655003094743261133894221213774088967245364096904592282021076209365768597820945002193381744571955599811862274288601432902188073096356749510559345013237389859955759152104402175806308758023672675762765279577972645692057452623727079969211138065534141633898030704617835172476605735092222111041689662982952178446920127493341755607282776344900169329996494861245043269856140399561125615221439693758360135729049965866525773329424315117355916813230989774947141149608970405917641272877026257242109376077251665752433681806189664493427738261757280919158620438860069032284405050276048964613724970743221292557276493030691488826115321074611143427932828124719334661359128764261217972923290279483886347688603706459848286125256027553245110680509156217150267232320087536833054593542667762059284315328209374191033447926466377053526310878472145769623232237481444932472882427201880594693773098571092436715924561257329493114144971673595155325862148226312171684842076761512057217536379111743728079571853483558601256505850640443552495613648832268336752360067232513902455732943417597474848022856399905333365036691853927256506546499100553513689960806640668347771047504055911718093652607767905574861927662811569834018920044741980566145973302028211853062863780454931509696882575747587334602560562333146081742750725188591244199234593860798273916134586487542238878613315375335398040605854924971982702186473511312710969488043318177580028176465374331974960525134920334305572322242041308738616029578684544622019312311231181621039255644602832110194083106220845876211314443968880972352541631331388889365374377193668790088329596013362131885453304201038546626332109539637817185680873266721867389155045554769704830238154442217886372835303903430602956161926381565214451211735418913555310255817423850606627085349022645470836035481772195662621587206693686892883900852160807736067912457621267919113746789064079429037926768984011922993180538005016448016842931933996680757848211802965855067564183237709423342693960277702007371728868440686863894592639321100340090105222613233274286692272245799110650119436374981590214554050397036577270490129478030672171223876018062966864755427591642194387480372408915485564580333072848553579667205024928840438113184204231119690294046375969826511750537262069057817227317600479213915444107985720669018279702766722802894252201036122788438527460323480762181530968250414024482364584453058898474706442807065753685145113147841078598419979352850404118279993477148124042925675823724264037667234988185514105678186665301686279212496923829268793044404047612090597918685176970668153291477385099421630451282006352510620702984893743021691772803191993606122787552011033145183871794182238075229383697804988640108070754775050106990933051591727777858698204473249778228526074031458307283618832712926869882225393800368455116324816352391866897487094669098253952251571668378359467091508943016292703190403744512699679899407510637179441200103782248504593255891700303881112753513159238672805935320348448696496659589897375506868161409292198810259176599800434387239881775623881202523748772431750440945511689217050666162276947026304811686834818325286406543427898433443559077142811461843733914441757173429624755746324944431877466694875214670159090890607873893889583968347980164877171106931555972008747885974541777971089475226721200508507983350047002315851150114458952016199956349231072596461580853833745616346948420556381497227312176604316889372206560829962665378043991769663610569620149901328622362604679115621199346976981483225702987462457546194084353288160968342424884992584814068972581825339426355278303022372411019879539189213368138069931334431080794925147297001999124062370880322578156618332854729508583068634584725666736439655188485432064758300082082509641034491436978838713399269347710931277447561997612976127753391203330369603305914765152078320400943488049301272191077435145292514170413960534143588786052454957519684336274919388962737414440234378042451591250271536222052869773920977526349933668855527807065920885767026372509383629593967225348913554717885004141666509438857215733158384480938690948306155846885113668958049006718124070036370790850498232315384555526706661962188892859903487268279545552312698654574235199239435656025206359082318384326258282857252379325514757088359853779122863477880456426982755322377224339636190901778655579322531741169316052739396412721821240091032079768059846954109608886483228852943316912384209279571430842169235991815526431729715888494608132489245936462845454126163771622799164562089350031515603238341795492546403097108190872201547957992343989508293357827989692035597535210994719051552245492588683639164019515566485668599116274057298435105042898222739945120602392959358054761107981705745126555421164892210127254915906823245537502337362422128686316678532476902786625299536228241871822017026635112189888605876204885920998341905480164893761984848571106995469293741038606629192975049797496656012910126582493776303769349761320304370859160424791138033304780163239112278578371197260331852663118674388277921556645467277996565059282206527525428644666514368276240486672066039532322095481730866883151200802403622046460465185302967031416533244679695135882753316081104580153976561976219059197608639493873236751342087744981800966336146471512427839451338074056423274732533337740952756744620035260078590755511564101047248800607027404438790695619555080169073489961174397478637758724082450435906878729017368888663696919580599319495882953379690121935985551642383164175006643107704450690397673952460872310929728364067142496802087350404915822255830401041221409401476834149416669371121519158185268564088501782541537525663077553176447887316474594653173304231102701411489361242949882581664409034563686001013226916114874047850438352472379122477950902580964969212887668340594986998077189459849328257686225274520070996844151223604120362493607288514577541076948610033259374762357085080856910036346596821950556523247177532276296207068099953006792517421391806581302350247828490304868857573204273248440994003091749571981316929864411919597847627585389892069561701889135766387353666006005788464344786417022848190764139673377620165979302169384528043401750667836474477814587574849021183361134672405172584545939609128335432993009165154675122842606595462213685605027659572274754087119698215490739909168627895456938840303480782354483025937640276541574298250477972357638443880023198387051384124678156273794572055535835270152733438372410509557287823695839945394735478861139019474060878212010164613569761386220750733585240180437727503143046854104548684246872676071264249165200750699345301067627242220836339697352236697785973772537090211129618720209299448374198016394595958300787191135533345322905077893600631661111457565151230422916495685210224115623212059138490680649263473879901142556250800998079761561582385390255703313514873241387359509444970106681306444474584640684276541405402912108775475373942055037756369119001142428982814138357837874189610143628647837051756342676745297490492301261393093888375732346005307564002290671860318348299054535820991636978865406433005376108231139151070824994531643863789057951631160866211575547185841774849680251893059418902753620961060359456811062837070844003203804034285536900768992120265585755820210097572783601646250546427207800155979183915787068451624996778306305311116996973127030352939331529761272625433744939796895102970789508227800097369249754777385785314087736157771074329427760664498045738704174398464925220249278330305999715046775476050987234068588357316042090361833846036527592635058015373544701503728789174250086964164519566669997883895822133631769561211872631328742578812679765193949198634038921410144143937328539615572619592383014600415308689673927630499938025248841529980380421258588028130987091197770650714061267271612341604183276289043136400333189079547794237346759867551220787406472131556641405271486503553274310575294072312999037565523463698120007528559604916539825243427228948709175828990522507313124145285752809738338544377797089254164528731256925191618787349400067712415237040409859226148854023006767774935799900737241702082977055986188863669423409222757774117301479147193040005768573591830463456605973521364847851461537611296134016383029948068460187475413520351828437388200593158366726030019708032872938691372777975615743206940245220474499084426904755519659124059123931780984818940894819966913408535969238103964467348540378464022200519796463315031045409876769678153015065514125669762405209440717555485963076485978477896456897155849733582441198016998626949148407192985239748652521806635351729075689120457204323821230544876042858319090442838618096693599732674964657203777124597286022516902288373433751844490141601220112946633683662159040330553923853766724610814995280213745869361629415726792452956538325250149766246505350389724321797644829670945542507471629309099930038769998834508756715537452855193732240740871995025625327599132874503033115201244768888316460482350773979926375316002734435016960010334617772047326448896588544583994664449691070816304013951581747980537544079122426603795891707746126833560232605177352681896174001929677564317934027183480537445488796351025113197358363047783187087420391792368409467331081536207597905260747080500810421088353826137019592757590948877647276184634996923990922255370432572462397106205626063009425960904205272065244836077333825425590384335381301412992243770429635084161547788275639467402293640408946341365219637993056012878987041749906043394445596131413776496803292825180521207311761170777707338955592674278212760776939023503121201190053024366932713863822558696186959185271956576058252270670837523599466805251728808795767987872794715558070262853516078433004479316251610094316822907827791184859568068266988711276838442387849260443159099323659667708665169296408485088748347419069605552834748324283111631335069622011270096041710206349401814429983435630506432925065026324987460101633662104862499708237646522470675161323204095435466672391772854904624805513775482876986364108892784388968988891896441968625227156884660068828365565758505248034710803077074547908871264238352787904731412542710459072093395569621482882139264408574516151389054610753314162428376748082852082775267633077872953259414482573531660946005963765104615986696376097288024135117208142770884561837316954214199542559774768898060811237715205596443562515104885581528772386354288207495410017202093516281432304480388222316757636741057510843078029647628431857402800944318502277854977431096311924968777503755526309513218158996723721075955609000904036028640670899302960417501286551131008563855562907990030404127357917429317580830898479779024492978529963478194515627080965475329433907406948619455603791857071520319762375671369313613277305301314025649895375531700359621011285713555661497583533409059691278809649599053580618343873106786209452145983470730544964434355499061994952786042488075967041938750442558934195919260832612249986446863344460462296309843602020743757362170566172674124667701633482587902604458193546447433151251626203713210930445042864928602519006136466877859399382337182929875190481131117803067538210237493565317501539450467934222823272237832234009749138549326401259886927074670019148427681494898525630437819011910060715959744627792967860309260301623495929798650363181321781022158621692577337265874752637439525212256934462265878478009467966673155098856305043234684231811563303613572717029593549689264012029765360367509190268105287198186026524576804436019394027759076452621611476256445592551523871465153549293042673913103046189076779645001447485663629952432300418959493979935022288032381872946472323458319623626922702406861066262947022753501116727895938009444306407687665384049427175722030771497457353856351673421793905694693518820053808485941383106227921567614688889967006690911513290220307563586521426522378155337300817579704445775534632478528903590424710706829869893024173054016927207915276418173173847469837269920299466260616210868781015386908836400261264703907071639416511223959398144229634223034967147682646499620707882645697891572863011843384685282989978236572499201140235575542161572979814888301465535786964957602783904259846389219544054962600847708970039809443123399739439397459441350046720653178021022478531759178911292789946695094087800940027726347949052220557848568608673694964491212322796839343449813635479168189724557696941999996180417521287262755711562917348767007280857034360670310755344063196996066518207112239231956297890345174622963959523493210588688745868559616063323958388169884841894682360339083021549946324044997090322431648076107590713428749343150554800673793952517879034000967083862045250960769530761363833504097292207819698431329950436063578249437042912469233308125647546247434884790210252472128773434040940295437996752947217896529302342926784099012182954037965765855793334342568171749483115140016090198165173774399389600916074749918419160887672470070447613139858563832280714572076112082248019933767884615272288966823018371414000344690915088525411737500427406288187437969590938791222603300216889686685364036193679051357509144834035978293246777939197204203073473575978615203163545397197714389680709545579337759635997820503171392626533113343563077479985717185694852812760623190499154924054431663443168499496465769454127965525553746422761276258418762597880616402287906173591210004558634953944385404656849377153840505424837297040222703305252719007964791832749659052275707559691686606996243188016717524353850292533460258968440595400398453946630233067227782642078288122512800022744970963624419880773403738309040587899040217930297978684931411352273336531268002616112751394219348732123787543792652205688277876561987867152837511461126848162825745864978370388615403057517701706616663364514745427613274609772414486289122066194077175874079442945623860213524468778665092088321789024207903646641599878901344296186908792142468787479641439528031615938509391364566084677716350678674135622422152891578631970066058995938918937580116158871315072687562704945673921450787498387073754674376955451795126555891822689403620690199735328689562724510438362150940892403341472817492563232971938088375782408971347362556310929327696059796412531665653114642249788923680680408056084084450500081851293296264875098808908675607118033094939267906612080413997820802725178123421527775898536798541151595195130931300422758787923902257220588977581468256955262065568708704881771896558267058389059171671001206549834053577937849131271139070229595996852736545531256462854505368744024392867289165744041813539264017312587309276992845429453546100569295003955708213588885843748850155300834310296429947354672459594382287765592642405712595134723939999795151641193340031516323646231072116493380518417247869217888271734454217679632991109513154992311781363364147129296560087345369976966433730517707456247428968723113675983933053177718387704127186009853955835410520711450198045704611050392023743811294237542842672314373804275283742105300214626722414685381182169756803662276221717477066780115503199229839126582714607084607933053564148361817355795266944702484913912492774413979810450541433163601074335583199525433393188440694795438438481159269131836957079962216988386472719494008635715428685168733934823861401662662865244866648400650909523847508727905576037726071434561886472667213814187074528650648942918953134065346504244375978723453090387591589400599440128763419262590015645544774674811719173756138669840771022324857948232415179761352923945075960163311612055923131542885688888616834791487938830505083267381550676357381237311647545527760182758874537425509870250221779795736187307662570188527933488633044458083505824712718793289644530652704333063165633943426640316462608765894348906228134678789023119621398579796304113767307700603143986138842980889859977512059111043447518926164709912982398704815762281231785634427763456321874704346355913883248631056675246740750186513176699135320974249853071338310504441163696896576304377911841652181358146778078015299752140845803769059145645853353848145917061838410629920892302752936984854233990883276781842604508112888949263448947939763225202001047916841626992454072545374817269032222303657522581310066155039973105646845429096900713958697650639933718219077300716454750149350920177678670023270142723352703308187730485599701021723997000946826737586519538854374977174540065613248725850923628370679564717651972682163383093956949134977583554689820195356688653507918267524243011432998127851387843406407466565222766832189734531949686487935613880611662630272583577512278558479990911269918775243343954207750438245940492024482963570350381253811651439611438104957815353103161450485936237295603008856395461031169660253247177655662873584350508679711119343625388124214067299734387821188419520851475910529671562491192987744278719951789906984084080569264668539674377787766725990869820012285272044966367101322537904685041030753554024655338610129115030930829793923292083211382681496266715881719796693454820387477945129683337334061425131812544491048540350159175334451962737610098132052421410204954242625651401045468445630893590068873951972249167765306934875198523190861008252395664515225800507378675735335699365098259663950371299258479260015176783375137713780636298598243810426816362766706566266900898098648780960329641984961184526616691002859201936656969615033927131424413941668042222384755967113777263872047372657297564409291935947587070575270450442485688040601839434464144132287141634763713708359457426654725735804711889516763151822772259066210445184308561405353842369674256906278437042056231457287049944453312668098594792998644952520681373938873778426730195159369502572018473142552089273102310546981548210406794342462100824243723823677778227410905033155419758742209760967125755430317360162160218534959395317206221021670346594835505691868563027481407550886586095715112378703999985057762570062085215469021809972347956787003404112328773695596920229759123560033496649572261960395337211695877624662945557474459874205693222019859455563205550255263466120308551561741304169940045316904075923481678268699118023783703455561164922391248605407466458383005248614172410613498907752248451293415265235818016988931727159920376620052841159028590476659630431497578436613923826781682184581527261232408038566769950884714186914397837269678908237606548363160389357893279809851830239842527101797658873486167739180927596856374523217130037125818655668498015442342750008503367150095636651221572868993226438468376793382273395673703802535818446255694407905124214201071069848340199395567544615420384399444859901611321580196647334341101987145327329966892791730701449402335351991061134602538069860673842555078223881983638012065991985193366193746986393060703051854668623277852372179204972158860745560841911812257897820581475951913181670507772585189343045554882411840885743463279356639846179424875252880688797933362017028047589539220360029704701834016779294731276767273076325720755267300635638285899004779791984206553088130879148115727120814197156247212705273037024018503112943988198066293623990250091425119720800504276574868882907624749704973205495263878217864537020321996102964346422233294418819616084901409963079915800429544515513392230960553505123703765307321793962873323193727483825559667514267802887765467655798561886508320456439225258094355635368507377854154995031204910061578289110084330851885768775913289461493898963937058270042824946549407556023407325737046970897375454504935278715971234171977309375714709258167332027743805958271337005814741902710864715238775249802685758185576578878165987407290991682399895741888430176524923805973511844279809931635712957366328628417233175418793806077060803596838216511302489317444867143906560673781249959755569799658224368139793753644228346154704097640460122305160639078483516889333089609146270085765768758798291841799545597344689033692225658915338638057024164608878854905634324428471114172394192483634616711244114849089645720362618412568982233088258274928074835803680683769884308704688890002031247119347748033409046008768043492706904338682810664197551918472856610340562349152445621228689593556128214781155614140080928474889938761653611677264343473876198506194283881163379214199788461425697550907551677781131012796539733703638889759984048493073565521758273642819593016116260190003885167223666918943781674390289535795089870192599902644494021351145495043345830908114465232447651408387583128261916761539684160600451723811397720559034103853385413213862766073720647932914919340232200189488370434806250409596764990805577735647632735110352381816957328889021633045986704033736713757344857980703282929237715198112445807742786019274119052965578439454541152287540310793160786813442076660703724206045388324104812977829834219731515523424443130414071568043680517640516531255072782533318487957464235405312223465684638090502116160604615859666608702732760363985048047839476596245914466979418934348220194568728937618924797277731104236169624216452860309050652370879275876970231541876664459763683289120598939221177299633194128977174262940512886238761107443886587467937350082485999788627837431240930560048720642356382644814149040428356834703417358280828463389384098405901720106565701768706970683175166657966644371103884869513628967589395257960868927197943479470080842560416124964802598733924987842508316328104076710579737236236760543578387817026458777004181793544937299142866980085479322711097705410916416626997759314385921707033402994913360678476004957859173711295640574886986015176536110053544840355292210819974375642894907768737063420129169887819422704513968164431426633866696672621967483447702230711185300167246987777535070651304707177250878752523622660000829827820914281016143127519177332728276421191640037100606199161289241742895992375891304368369940873882891409435391450746935249382495447991062528856423655210845910932477098454233304505068672124153834134950095987403844424283221210386988579595170508111911307141207647824919349743213919316273999769359981118935984111615812235240149122509119089206751353113110935254631552299792059017461179977731546364474778287195551112424456958281435097638476150235205868344796942972014190535678471523023406292253806367472402138621383437135965367692330596983355519795684207509251014050462457678268005579098955115492106110044050042354646670197354599229585277891325529355021855252785615710263028129739539841288466214345663091102677089826949827736751869085145061054271209639336967113422363914166149565387817246362034420280646958046676110130261787238045354275759479506937311161552742985279738097938766350293518025405808306201072910454421767213633043503999929413650561427333591779839989733140971027708502307019617391518092474393998297820426259383059510390594920008340152997398476807069249903677396086360571028403470424226734466183956759131797798497480561931314719130751003251418394537643269197024267879431231435655964034624877072145652584075985288261656787404761983211467129305188565817666970133175209063388100962367945214643288083633522616547390710531850045239745047172172694437275355066482889508545979376339931111487443372992114786181010383937615673107165989075103699691559755234468568990458735777499682231719549488077945585298460607440363701084652167956823921043013384603482616608212855537168959072101935057241381153815850990545836184185903119321879599902716713679419684633603964031229041894707939663194587440564226427422476378520125050584871636737847492540206118463398815305770595947929371140402899007903385168927727045372441346868866827725275326179618895675742011858107775376572306562508968113386296043284603338229283951800175200210990722053886779382228918571733461201470485143457626719816658440712607555314936908925739780187910586044117546468260662372089175474758672048836998678243671222441682504539452357675980710818768579069931140266950164493495726389353236488854866906992816134701016990620909669089954540168561538872752196266169729083189449916108769109387059025517326501954439574526505250710936588935087338543333770822893121798431088453348933446017214577387002554723755544934719093870504273129843329285533044142887798636792329208439102931491555255211549788794981110584364973611325167614056407202349033066735625560595406042676896293052957305395534361455110575178122592834815360356339364619548152345754181604653739247970901892960411323288067417450536573391054752025480451164448758255477951814779099422077140705750933298654821507787615595203292551111616067205723324458856289905451760994801323828390834802012249327382629757826688137166010299113080608575157998950473047907623294236977856036245957493292464904464350135825021247554023233334994486930003588200890283873557162524067281698132820140265955779061056039122815307449120296417450568976302824960727180762769152283172333277466673711220385707153446363126404883449214342772624966763877321013912050549874238157980200477296818433329816635018399647120129751512442615962358379760892354133431702942323258837257716599917842088569686460864666079316915766993305520814807696594851086579518112678043296910854679006083789032366114028601067168552892696914080304386067378187675615431008127940815648006978553947308754243656416357178756819646372807003832476172899943322022277363029953360047200854752983186254239504948949360868155425289447423250417231603942034116750033490391351965791967233659006424787297761666016737305850420896686825476781164999090941624280943951170562682317564165152951383970951148859352448390750733522367887033130057468486825932713025779131019100118824344941491987578448817161356636158976291424779685272297738599666363923864275450594428049846558013471158669601891102441780037824209756685171350809624072032731163915431821733132656285064676022035285726268443405671868979524695069153166643146819245232923635375609818310496863423995627364071267004030530381543992755790458676876795783681724671308220604617919392665568167046138211371698118211532737848523788964065136683868307872240872238454651568378206885334954412953909467158110707217084102196919005456309321443157513325306435492226418067931412736581166406464812391909961418268552739295911075445984323268194387980171492365088367950817741838853126423517810020560978192609551034712318474577434994203646325533770123992668780893644534938241640746293130596336684789432478045372975474471879935747548399961818545341105551990497737628433492047286226877289886059476210232793735422240972814624535071388099242071127091750130531213235000200790247976691981219712728274830285610623956515306094368391299572274115965948944739557571007804524756937011989895813136424741811673275742322400450391867609476098447911082269991344994555588739366911291512353970522123651496632090892130631672785328308097202064035358060912797251226017589416417275113638660912327527795429409053157130838012487274248253908105545454523843808863575173889345044869815398168279324026650937504696786517767305332323402337056527430541089072054064454012478733394032324449356210273962592121484146194592260537903942679620253361700902661324330081431100058392276173448942934588300586554568777004866964444826751987907327371087205386011171778439856575708648903005579341643254736444837845496844548262377014396345372628690236249892701528809834946545065099939819275940686651070383320710972394040550661412517008625606369175041138044266113392051298985659166317795738346291027401739709345450499781222284497077784160050673728037905456355387755872075705637186707582267140870725800513131047586086500734013632375590954512231573942824990398457056104564982408672937982755403206023925516202628598754439763910364358740822705308631423213437623510547529426305168354374316551817492627521195588051805739148040411378049285050073211349185412094247114906119915486921306831366781964538244507043415577975140003013625716446720044535643165906915956707139589132471532769839281497102853692968820148686636479997678580756770953539644963341353157877839267299302432544197174347368398549474101943174537410516600706430865616260026054400739039975264624352072244907612734335845294686872959903212202852350879596070306380630710458354505335405997662047616134431495352052069553639293675692818731694409717632385660253442997754695956515517878677742293494372180024425636490649654297482923709627874224795954873548482828087442531127443315643833332287677134626123050029561868158498343584036613255152006698120001127290791544851068538122340666771641811560415814152196719521223752184583157078281219590644725215666126337407109509191822412056715852767807127901620546102006533142589808587857801805881059539422396844213223409932885746622826945443826701472928674907015311521250755453642101179674298979674430927421647284870533878007162093856036371881733247319996792576765625785030388255698061143832695422973148846762048242745627173630521466442820414252038919930865586711393087208000499324416586973132460203238136004169608814728624680013940661018688657564190153298025750201740206918544054085051315086952176705850799934323885311878431915195229441314830717673894450160206743767940181275043822840503006514991810347697960495413215631666264697481264279148863770668330368852462870388879337445142577701953954294286276728793046159818101112080625657991266117623621299007784855382579319893616686440415215667632454900539832980308442346631007097778704639906082132010834481145899895213636038054493335824360235746121923478168321285523137054697696122881098103759282718790824037632355958420566846101114685082951173330361866466823311975789050109234121350821418120738890792772819316588637981599595439027194100717799184659590103207030868703338929958935066683974281222436342245883358452674098957890292262413099895821455046753908120418818423129286316772407162429116804864126107325690318214112373660447983691812254551975834507806725422336046333005909635348015501450935184193487662186693808160759931830036463381807474507057651698487194287426109863931754380389555484279188216034531216060448662276506490134934905757504447171796547978416298818097611924565824737186754192987301531102512381472098437174776690196320685338324981118031553604125576411929331806458763165342873653218997484408635732404434936774055728309698293607603432393997820111987805000697919082403074788854363124950032828450644583783674780201155109724498735899041279944874570753442229636947164877385981076854319971183632237909838004232339088613449658966269459788027197902032222253640044706835426345940867759153013798746459374012225689070388432035810609854771068348069673985483035408526072636689373378893035371671996154986235902642526620186683428555979619258023585034259738188604405395450137990319079377841227096708487646852955471728410046302524447066216047890966773496523726448880671641750139727238377154110771634682476085092107410684533123258665977545539032185215168474479629227951010253444954649047786622830054736498617919115073726525467029360586709069522807642992256194715572848973799979484514231411445990988658606476760876849250108686291646080230343847936413070559563372530693487694392878035519544955586594864206022344096082226016946798007047809976856463734724749325285946376625820851238142057283238727685139783375051227181133254659738885973046597856509374283028838498778713277306152331705784519015842094408362570597403572612401288543263374900214830386211057213997677001860605332271231997114221584634398711027189017443016790018590564681873589971989178465161006539151151997168071564756631337897033416983018372790432283602868696055274849131447962670556288097428534434864075464500760063011515830674585225020606005145969668512522871722203628115071283579665611917411259199687706307714763761666375894582956702576953981576571884732847449955302757652937512965074416082461350257888207477376497830424113551450576167666528062338503181751715761338809750605463005743756667728619293736886852293377528711154816865764852108453898987057829206185416290655840932632405411411012030834730437929433978857533757161408802713426511325216755212842844534543654645985884097902602632052804523905070559654644126044426988339912078399403353412028232524319663307284466294351694717548796652771955014509208436315115830663230341283199474281054857546382189518022137258771368737327657585336417475144782137387511593749593994696775650867753369374970971600648594345507626566012128117665808008396132165756742966538861560198599229606528980871477924817872718038028272433002890008240282852705522886519171621701116213260612561507699098462976065968635666398239708479814627100090966409855947035948546876813262780926001175937281788497229393488669278074839353970598058262839913632154012290644396311190149803907330170284559950149599799671136042303552166820357939102511578866224955442925030187700182388182420344222260713487628392909432285352057000304358086393177247654957578601670344014863330559653290675613303909300254785788870086647910224601527102286529617703989823535356470923824018520840909296824577005120209694231011120972552815997486331223292462296018817207601260470298505756293244096734098503403844693216505895469726328454077246939095654414465215716882632365077112004926951772320565054492963689733193575880871255003934367554463957679204440849010023715923357668568131088746054676375381869002918552268811578851178113756760412306324095538947552469505310470201471189706589850773337803120936939416647992647477232205533488187012796745074526431116047333220655456881399951407603932678740755491441375798807103647611263746638211833967236060509188104448167207181747147127332458397019266495810423683909168495397388020128000028421970559323299538949685937131424369800829024741841997647395805992967222526273986944200798282957227311194747020692228380648643188445945208469450782167648099643877607844065259745462342139325977021251486734643137695403365849281383259674966745181579740072033791884937349647569382054156396440822452503553262168757824969129156262425267351556811803047436942958799762144253027899646277968247670689486736310144907063887845669027641826072966996087243600652226910212552804746040337817802351043925086183573179699695051758836772201783803045066898968712253680768646584380954584200205672535343236191176858129654131076545048596095797064678985732337853941298341649188241163766754834174481434284683191353335238179027921798235792740887482536944835591587899079237696172345426034645192282879605383249913757273102295055194308250885949752580623974275172291084076408746289961189028177719354818779663426199089183740770715694619670544880264364832098809489581158968761080346745761722305600077173258984433289770883967296006433372904838587482884596265797642539942245190882382853419875059010662060173811157614983624840181792454156904566817223618263235614086451441251653650962307288853028760383918025829091603036050419911656161837238955346534283792647756173978024332691903385566173221480606344623817831148069973005450867902421425997171041539407064177034465906834209364700843455025223175225238731145421682736261259527272585129289321553885698589114162176416128408126436535556677984021672638281938567611787118605219461004944767817673375129212858138567988167838487758855640898209865404063244199027439424531442582843802835671492087807249881343366800309766486918665717890667241535855336754351601353926192137102893872276275862298345918080478194074186714067544060249789688280076074404243443381294874499464645078573605289062816352301179990223683985186285498746571063378532688954640806186773211628183026193951402975997085892528399880514251800804883137688049729671691318791966953232360383757705499640189320276699119770131498835987577957927489153981296341618548766470346462837365669124752941631867496523808145720668718318817601242014216170073896995464308761208753120260879494115432818259974003126631031865776152742865030839533138270420119499240403734372937826443641663942704292012301050562829557747351060225721088437786672954800279349372525451777877968022665382103963757479203274869898961022353881394142877934253354625808652271576147702453359911810944517065933859857440062999076272274959511401713057120428108405983873710535379849683966279659668202775058727979987894965087565597988554023370127065322504646081537000610228059907260763623427513087038769555279720597686749525593487964022584708282810740515499818408161078094974643111770506422270185450913592542534288330341534448147384593225419647936795868967101081890641263618212718285388690335793062589991585036614883708833852853547214017395003600760811753518868664606676770017734519284779219909881998039222868364543806432329290174453620446746452789874578307421993179448368543549026801021991688943192704017988786696217384325415862561088803760117297849395122834071081184598441352804452431023168153714339670015817758860582038181987964208686421988255312394776585040322835441188064471128417264710420417652938674735272020084170183285598540853083203922422866370701960361204680207235166881568110016263393629654558501418583258503165750212903880423734366592240161542088957156028890817428103505649036454993429062563364681229108890329389611290769334480904394285443331095918736304011182947280363949408548442760786719114898702694133173692485703618144849742958542884796966929725115083009855013502830461805607338814843535101246791811862400993928966003993371624195946222969820863073616963647212106945627578275813669226101217120598265981856654472113370741086361083159514718123298540677515262339349101542862652570269067533238364336281457736871263292123026794827618134090054911063195693000819658146136285383875776761689228456289808094191111206744360055366517253175315344988529698867514734407357727527919708381038457831177436187338240864634196819211558508405586231823543248093605001930137351768558462467914408025603858516062904169904471813209630263961010368049918846253349620372742575999182900641099026142928391576717700634120625405410826217617126235430673120836420710333395540884947815555864659775094502109484793683723740564509582827215520503628003515043355630224214093390637275317945141102182356691981604238478500200309809857437360649608827547490273074454760301172778639438580086522114064866285349859328214825464043564441485042113631842446648561342852741322590440625673082990291206765447603470008909522579759992123819568346242514000415690712510831368697995886053569443880875980546000306334737656897144377069629880141437183560391057387760583501235790900394652467229430884968927415480821960738955065037113380091591272554958783991729078390321610747175858491078195360610995055174119556426271060555514012173125578423360553581067111987978876837346305045033858838152076406401682015606693141066206054787707256213544355497824084531499815165429955953540058734037631009898767076500892592509592916838597429385214479950719704587237673628000115800218910875273975377598093381894563715028641807363357449241645615956302485681732295003709870158733533113883719449287875206706720535600049997855924756932064737444432578644815553372569305045478471114363857167009053273136359291626040575593802020050603971634986029097950999596434679202945768390799778306475012440437850587394225502898576740403140089585376249619061513120827487145963094869139680258787310925159525301914444804795287162771999344966607042912587904915794420612455306715721344025176341703569910611445232513162316307040693007670130357365227178883686969777526129949640408364398859433678556569446940815591247617761961880950051843504259774508733889327671304743291581293815337650391449525604475679994386369617138606709833675602826765689080479337390636410881879921914980744158192273961994583231136538445311125911909606759065927173841137571054237389807213422907521174624783399021152730902412813642105712476999386797857015714761639121306809907653215912779723048013300475379089718203761837871577215174252471214603386893223140712287780043127226292342135201428543769675211330503759534004662309023821746346252893462753576706642711217181620454448539873619044561298315758979512979255414222256397442282176452108030513174638435689430640297022636589818332701046526028342081846028109889679887772047235550590475295124862790735413986696689375000672660243470833704229251602808575749934933997891172248996072044741391901099770585281521884747059094335450001796626038420920113705274945732321546568015409587031787871115132441804982433063216384014689716978124327511159228782631979795221405203553463233175303138633378597128796919791641892576295867831526048347224378990093099389566277451251460886776260958185794331182113469329817529059283370084778004826004812439427541505700765344774400722861266088918019114244445712325630941167050597386323235149445895012746475867544692380338188010589794893800504943279113958319021937832012117991378288369316068676830510940159621875764258574351320173051211071576382955123368134216733973388354317340603364420502409278855367722595775152475740451407862605149215257922510133132724291656581754318441482371023855414879313957603897694568408986051946721457215951983100505602113069493145366821331075513907323353788297086718602090595813713024504314945719840838002711150956598100566090142732456420043918379118182649435241236312673896239903540867149886528116098228435044046684860658604605509315140558535167897451934278670549504349326693791769072119885485127403109051953217926353279319189823273535753188202704769015362959643002266158086522118800280420238978256750868716089231616571327624736734693936597696902113640260498567365908347710368856090701014915170498862510874471580135243486434290169180979843237746361046237039144471262083270720270328914496322366577226107339279672969018694141702882210143717626139705657115684627773393321498206353923914072649627544125758819494346829701310774486963393456142293395242010921472619061855636236960947776896179559419474742741816546433776214029748603282645709104232667368126682306968573575353924503262640102637327353726437811320046843278062298903033556516992907428578079933132212130439743409456725275849124345849515547392773626315916165829783244465233480072091705587898428436052746931408003933386506092989619159545867641731414958154575282929234315219362585523413785435881369876627334329808386877743902484179737050684923220182680351634907217670570748664639493131230412529731005443982082624417666785755353328839385892209084562818919879857803952153262904353074467876168848108416272785353772160317332298352887242621267633832456132001690364164094105064078801409098166384549152828273073056143066595713781189152567937185074483231622815640236433135860050458514323183317574706678745266070041119884622105765471039097855908717191037015269726079149686021399404500279707283099969657702508993299284521333508472034577360947751588352086255045508288642123439981904819562356938579621383182201314470769907927158879007334148567455778681514904082608446258596476980207479018828636365862173954972664416905462070645394154157619706630572693231620748788244296180835591651938698797329050999969717196090304205894155911160803260269861067990668759994171848737035072120226883577011479691094904569243971870876249381992450573470388178827292506651779227029615987749724740028777744855750294178586721316496465887704612651375691383778011122515743129936336132444770662430038670382252214745689516487088995760739275327165021672711856103109084709230774475207227600450631705680485773832018167021699886449669915302101834106085985065273861332318408651085985502186874753415198140580801827393808569177213658092185422203172496063254151690436673200760351966015394778103632407714109842793388077605825991591077967169905556186082568815912820141821534184381674099073012968023408182472436390236117056916692977478389205710694043579259162480546534245301742423258303815678589270839200999139485665558081220063703050457477816426351880928445012541672690967560655617682666410615121809860454488821585038959840716977781293157882736066600075813986942848959944831632128750669868951052085342139367684451593627758788242368695994335841943113166753327571273691947211211633669949986299886683510728249268023973345165717010991464354342303668224843026175048223565512359888564017568088250233280111156122001577272514412894168773406007969814936170645121483666091509120733230516867276049889158810699725508733238796578161523848522242543888294937568643721921765017398175135862641697309324992594810150991707216347291779107497853947242381216458847020349057925740037844647943726117904327621039571862773079405456175367007282419586443061615499614961516176089910221205232782081967571203193072001089561855179191657443172913376506998002752056465677185342376236676818358142853445619207556245816415011613100728896851865741333952107774223903231927817518922482556020078295831564254131573949767887920621188504607049909248863630157741226119208698948409526860313950286114184321371084123560669104409177011898788131238607282099638047786368302033775196615637848108155518758303785764342746383225333749232018952298109524937330087734180339596764640882088729527020502279743001528935449708572857441273254968776916948075985278209592127160282664148844351236214017923372969420258464586177291391485981059864150098763343965419288549450772955211778275134575527419654191574968779825500651437644133501345300276682229187370407676556752054553616075386586827113425910845889591603598630829409667332794172944841743296126362847507861713208855811196083234908778875296009301735088782885702591305980938354026225704008405856261522023101462409650004468320500870840885037907993978539207249206984162602533464820244897261290444765810821623697039853719364545120732530545209632229013945890842020567761237846776638209009481012862688692832771397911951742771568461926658258968263379259512352762706443041622052452652942117173769454018469985065446714042742058446237113663955317994403626150400588592018383534350791674255096591080294570049425907608754007085457970243627455996120980126775749201619397590394213891499970849717804345683476935167271224015566762250501590342823620055337572294038666643115188738868218962927330604222649615158618032074247447939371891884862545632523960974811368778299858680185971744967284155366859423293172151929786178007178295089555324639622577911109934715175326397120104435100096788227929131977047296893361020286963687401963085816907460572121207619494325177037697650533678494901403092807092734873679261766193964002497943975894587098314683527597583674166331861031646087990620581640214073889279884822077995704624905718759945417129197258337105576253675922559501864286649558550624260056739879080683551767964870826887552496769407521273631795038813056465774952030823810653402483390483439231279113840118867185410285121042817690683422246777239246076100512987359439492795930993597366643022975561886724863534980106506822592348843372797056292834376810851044577619994559563658303617622273713516564834612503271594340120969632254481511753457414290291073430381826555415213060882015519798934319733714734865085165456453688267230967884451683267322052195485255725509085046223023454221250963189839319857704341808424980450774166482651796201219631403417297770043465689677048133916835424225496309043450928241942927632337583442501830222074118136726065661094852279734336975678708906763579039686108053060039495260318933931893615093508333639804748393344527168674734893574519758721938752395187642299632384199284131446717527835111729228884113598372777559812354415579260630231015357366642373348912099669807736241014271008002279962781840341516144981504713496186408450736303493212671222471474984378054540940521729628803107433917872316028183305757916167835313920537163463360334810450135173632322881731006277965092734762521644271068130787737086045473104563874781030088700200490160722637800055379842311912330008267166376995049502380055955635284632827744314290578238434505553128992018751301389700972695062720544316839080929550370341992451574892653567964942732082247020675989943357965673775312697417988828268492502980276468459561893302000298711174057277844005012713183778583661601160400544092653850528373148348615044043149431215339801597841674824099122103271315373118343636965315148614193367295720217622609256922828368742639262208575387504520323256029588373580104147633540428412944552330941694762057800348366362964410396006432563794831328907425267077840151952124372220929489295666609839738916200025451996116466454976492793179245508136724265511679864336969448699510634211495072866020881485333981221699478843302583129281764864960642380602844039734890348615455357202277890929487743085402342655455777287966286317969206307857066487151271546223035670498777196655306202858553338125190988815685150783431087317549306418607753404378981674170994225907963776762222383556531516452912602817815577778027990136153011393699125172574459248564742553720374210490681813656317008944294147415531096681151056494226269509911285180160585825084010991116324779909742020210986535121248953228041636400306612922721056256275732324040711281746549651048633591230163304345181469766001622777312319500633726836864047489557743656639283226016896258591911002804296784547002505730299107966468072344266696787515484131285277885722770163842890002399397446874886427517441924977976697885099278884864002080885001558796957718552598741505137474758305560031200147648858211661889800955779100845094813152136147055932277907739867235471592132551196609561248969701070151720162879827686196288674520868683811979584098628143890699362982150025390174959970398433167831387383988197537928645717230658951284445510041978022655003933726593353321283035776630834555382757551986768422685737164376772888544168776617121709191279588872361044731881365553565769823104663211728037180376546670079139181831031293134939644453608508541805829843261647358400877669584023325269736957949538032835250514903662293328984828989062416386515577776744530933075914955861437221598724574281389080891670351648154699666214423442820277372838007557699021857909874558343638927796029192403169581016183003243593169222911289096382394108960808483837342525293505528104904445645258232877415500975489467004001876189821230708743594779797128776619911005524923647421012459786458944405005449340705404325694864568970121083154635744136485924271071567315862880951826106163578488582647373977167629354156863781293510496532747295811594760803873936812159181778112582812490952950563110186403027524455221218112057761453430025513840777919706772740218266247921952293044086035489679886663020961095596616056254372195952183240650527049470340032128363881761362132519773614392907367822670023766566358004557787540683895729609119357378344156603462525241418687423155296970494497954909665993047666215194553499509969232523666981148247178021520312517897560257527837399441851142932774643987254978384594481342303845181749542568913273805671919791748559521478570441652379938848350423930058523620961158779416402469924264805935609081072921195100547131203158261275201275831593074001226509289408988842801490111991760982337066902779221603906894699280603944923599092482764052429921092786038770517088993219540453721108800569040261332712687551119758396257040102478828369877133884631822630664017293759022393569152218411517759258340432375114203202662244051862412370911406382107135237836984787152833905489488617534950243530359764890569236320365980969442211323174441296027565703963438661855758999595053284815650061313774685393696641173379109363305838085612657428170660906086642235652023819970975356789927839142561790656188538409028718410836744809581499509915929010300200924038868754671876073989127742783936529949452135569057579194348759839558784824686479238725457166386573368725385626160308047747158936091066464870437966047752070616275825133021972203152417283590790089205017592499380141229604687667053499352629458821857850259325467674712056150826173351682107332595381716731472249859526746923773888924000486147430743992810742330801542676641662814706451124185516119640517700651678526461674058268448679379653853719795112421495615495897544301215848152758273420257909958559182454159449806673564088622569336288109413806216603998483515922250694665941053235452319457711628092541942213951205453081988234397205933606087383027074752720100673843271943411135376347368447414295793946292640653630834108113028932388897740163028642275467227804503348034727972294445576977907605143384463827924518774801238279709871025927727907155798771642176412151007977098271758283428955269831828310486355953034570526626062037620370956628329616623563559576204017469383351573746316132249847661635300266286431488686170590595151282417603783718418039260596058943981108047872512973692022511281969238254846139467006881805351228942086195369484245892664384922435337998788422637899644477963118917135627983588943400627231497140108354942563472021686767699906831487928469089123843387939657905071267009326442698102065580911267743347756377025661855164156271714445391380593991769201264357469425654436083245968939042412731068115759978683919727685156738421114297309527895407483773626851034898401700443716181533525140160793300330512806980902870697829658303071073178409654594443781986591642675847204336369065953454118176889911275904423326496680756896469055777666797511470115562098941745284764280956851528999763588649914748341034136102855532410366223400320977462392958723391521223708847017765405161213588960019846706202904036310081372289188567786406608320471089524953943841022552581971840374556806076655203186932953061937165267154480954695350427179148115290557888639479621492747967592861847921566946341862868250751733680708988010038763344148267454722312968976545526377524824782412331618578204629093965865811935809873908817576844455571953249200616286256937546671685643203372643813991375916605926102466946170379628936438385692283275869539471449109383122217938186898572422308850914030323777584551746544741975002414005012150784296375616983118468913092573488144733180564058691859725339106505342649717839402310445149955025427999023302764434721438193624576392930248854764904734980356705501388556373721300207924945609076688371567697618647982403176771408120390658074378664604326170027789070720363017231488581519825377427040934390468442841856586082667550550373112053705084017952191812620372093183299260898871301990519162573939892864598064337559292680546720005185547000963559924678906202798896627452190892914518629523958299244293283306330713885839721241989570212615983436647398260414797139217858584139149583418280994396159042876947814413941583727297404152330856328214952690431655689932492872224564696093091252334928999023910546275738683973387765730089467031973239615488561117910526599352879582224098499798673783503110167155928315637975522000752685215553429643741172443865020201435348071326014581587606068202990661316599659795057313635668687825383581374184574146346395204211676683905157578688026005766310991936511081770119902255400322220500540126648673341053735427963545751641164405245999553582619593172680614430548047644030824378482569235124480269990479345919552143170854819526094736556799919970340056618879488601252064429760517275382372941979056574089029531117586406787243201678993162251020293317308442952046144755836705843017188866423022778657727811407049775190818991401144237832185424385008851496433498937171075896953040291378020792725062671956920771829614289082077086104180146294237554560472190158539095286874057232070795235905228866389684494184918104768229031514220813837201184590140675658504350554640786473569893010031600911080790106683472257609684634956504123063652840097901541764219904314918798003581206892534617212073201063118599820485491770671543636931054364499049444322221020495116272347433855840724067038828240889054418345901310263339690779576162631359247338221231591485316187075624462537155047743518259821624182320733498556920562287620342117264673926023406839848431594840062968309308330274438708711301336379219826024828723704029595711067918203145371502651705388420368614072809228465843283664428200254697760612015411091098337700778301429034651454526659876571566549209536361719727895420236496774941737896287365908622711564071206667704550373770936857842350317926296790218075833537762043827940227485334118324071071133101034004973718170450447904359075067975299615600508911186271564160331526705088093652203224109867315678591918224226692363797998253231733322813550814920718856394826678151835840307930450120647779052688921123396782409514431565557686298253114733626082017841857214718901496140402037988328379507439406694162849299191631213173251387733417160038200996615313803351734907103027885479700160595100968215119089252575631401711773700025295584579730092418571485540147120072677004742043057463381792768775810869265066829238060094639906517118375884978649047095410295364377679646365715011407273576007030082271065103837546513974528657795476634247335521245266432622010338327244570831470712906320561065013841381612941628934670901801199057227809487241160125267380943064589565291722508251851094673559818451364986690711170008849490050923241575870099937983254440286642576651446128263103164714016759612286395447076004214577681764514602718705926175166487088847353797385570574984756509243973693900228374824479679234652527117478241873542524183201787106625806133557930105145520067177173990386999695511674140794356541120854844140545503236140016612683944480108082438108245547562994402862455445638641375545742241098741656966526160760863941022684184978155602281701613313782773834128389382965944592796803948124387551626900642957244152838900404857818513716515522325476395127291986715241867786372825961599330257021144972144976894114367711622347917595640720386195956951753551706901991971710577127367428788149578828847032090053641291657889098729927393249499123042735706025164947027997697368327730685179313979785759783154265146502826903915322522474073967935305115873504305715396031035766374625046782144464395045764414671632571230229516612600407091933665125859387148408148365725377989527505983340638031499595884308384541820766132705634033878524554849047830987283742374956551139038543063598417243218891069386526991621174308616494108953454352244417205393442371830076400466458516469760406806111948085750847203889242978406273971020761027347822381716275650107472870680920300465946182833894320269837701400290988269183212341613886049482779369783564172384326787543038790121738931451618029883417515190918623153736330750263250731781582415865373397298175865077485106289581667485396312398461971894491455739349675106678430054543046961307613099765086400585796943844640109974832157136140501247964985974524970847821952425456447811687108144418160283244480942921721944393267276301353078511412788663408059577194479197877079576487652732435149660004831409910570240985662266666219540874974156954507384002972335003045646187940607158130841326898945896973248480874501117198573437270812510397340130874997285462525492816176982301897091141477048807417895980327669649153029597696234341186567729914128358704233852838761825511118492829488720243895036021459126187332501486796236377337374537503404344520635126054928898895391241569379333157978149164009328457267366567805219939085232456421627502207628561909807766566315853490564634578251043768357842426836410916457592384697192325054672883935801084903185767691147628740908791203819691447532112722235934412734803147124185176535496510435725704884533923933333653855212240333833097251941309021920427041763490960988491341826703883149990028452365080178439823690763322566795374887458213267782668693449383709765287226465355860101750775483238402863290737030413164241087964364172743362575781604085810119230332900857428257334793735678784475809171520368612229626992687475417844071980228967601989937610239987343539555085453444886508825056828769146668050110528887680425781252337950532661195836454819900268766866416707779863250897697954228949206336212580824665652291655165743406505007921068395381333457549164133566706576393963432101970321754085033245687763410141979958333387354045915794423593296850466768936487980234166287656062319504609141890715595782602489321803015139387357920421735242020608956116692491382920018017307381821517340098466527648229260155318275531182715277024520282772780929889655186480278035808182987605917967945681877522673553344933111901330120764770438695214873992762477607822849182663662591921446524301931752995513798758376198502886744528695304971705887587563439409298909110350679878727059453677401995162401801460841095229761519432136958511185124527332883737688710083628584028096378055220721944425043173589958455913184851416158370155801786465082006132695291553162423867082019970286885234311240348428352185045469444391036892352564319911744790767132986611807009856385339670008964844746891753357306815991635307561424492492862290805876217509717869471992275031375396836287254714843260236472906919511492755237412324131798565518093477981983782688056831450865846507553969856932832301089981396419786734823810964459208477997651354020621403731079465224892026679542861045646037947215694227455318079076376297337939164438989229884023937946291349441851534656139433084268031717384297445693585778489004522577731927363361485879150555885706407634541099194157559422571783831132039127616421397527143820531380807352238322780570504374786358523885925134008324241896063355948100429382635921823858025557288454691741451500191921967504922071443355906896739010803371659874425606310849959148346420025597182605234606553209579233015898095708701639740275243606089425073841479972062398994253927898232511350521830210243431771409377473013857883008247983411194616053455377739980873819544939945722356878414253872477688682074101502733793028162669879771014207769721521977662518521553621635744492139282232378715305053047962301986997462568281919932169137125599469314571514136069279940042490751733975558599545641004148818215872558540993392302644597080521897804521967883863195717535444550934821657740213385910812159161446267821982221484905535142175886974393930673135459068451315506540597422170556029543042468525339125406235935034581368943305012881433578657210044074125113940396385882560933196013779576147397000966598531236542295732017872329270409415152774873748683233466747506004165574957753619979669739215401014155034133709419608510141724310155688432178623516074369387825602911875307893088865104831205897864935356046539864893005711425441749631681181317870489785377119150685845253788479281743301480129265293534849140899315386313787185895622824581973497798704876044986532313989011411021281443553110297575330675618244794385316610762134205134452945359625251041056153823818497106466330876457646812043745126176385620572327642656048797048822132582010889793165979983170386622123194129281075404739418694845465370191320805595898151861829208008464547694421275991476692394340807129504494726040209869924169370849411067180186104027496885383825691664091988009983257821928640246732451977962992685212228494384002264886380533554374156120347677916746548200089930165569861102223980454593852429596179267374072876286452657456205786977669568491157744161856924737990689856655217084886718714040752232995624936705519852807932547313091693550976888531451132045652814590564865994966750667478979808650480137805927165103095826569326962220750583415377949765415511697110433781372647890588441076066337410469776490376324404700522709701201822745703513253951831370725001766450541878095809066830742147702074839354902457861696201697176645374862518963020932802814092199980688767383920146047616035726872164167413471526138779252824171645198707158508719282147513765802264353093517946114688060669689744124675512319904103675544600702578952924469378020918446616935550807347491406016222350406385741554194616096417613413859258282895509577309436044450607729525956999211966028863134035385808725780349719786909632493407562620316841768317989654183780707336462355913787691949978833475496638959511227014523970274531708625860465796431994473899734519981646328778757661436342973235264560234391992559695863660092720067499511076305619875308940596415123128427304819521383849074307673349305365462926994925237261923581768157762942467289967535103945594139018521256893180915149625025601777946104613422520999067991182799995606656204003486469224091308187891998202772165441948487889860586826551268518350970125616596423938519291291453519919719489659371358356807330836048301132540098293951401390312566141626426342102546388648322019088189381807149893832877458807889603679453151045119505882734088999716364185665009379878671896690739709853151588783193512978979073226983963731116387304513414836450942890677837541268277450808562377253405120455102149728874712612680518203355368150549777221923801436139778478331083743506201697024161694618989122142364447041439695194457853939030309274560031004121076627742031191647411019247611424249419158759593652658345966175816242258576462117026627471752970794364269618511773747543090131986460800856568320731368509400792748175079102613128829474932797458662882665403644703622719337144793174891796320637750427886149297135611928120065096917458951654722512163003689383041960110161119687365418241916316689770096794154797765460889960868300859324892233231700693589587708550037777268994883669248213433690244883161312259236124276568483705810783282392741450890909258683940114610768243586851942740961773218346815007634902764753233931059225547070807212575553697352988364119327589789614907843640607434653661864708341348946419568779654076377326978926308609589953162022871641429703448285077300346214636034048479933723919199970216022905355177845560148965633952380046873070085808117064190301180709446823147990130862127452648537554461425093570430550225743565446958648335746699813256884927779966331243691360484654728965273820030649409630221304606863486395813460516628175707097168498136468331270253622387229240706386009310162948073588975395224550629275359364268895953546349527036495983173670737263710115587767581328878599074149136490246604782573423477621774728665208939074881861910073958417759481581073044939533733140922381898040144076407010476786412435806130478131509862126256882675484981584490665076417909193561274414776433276045039167213933618493708135078316612722009309445213224668450413964001602713657449316959813469741881055408423178020737515799613648519759556944084990963428743650510314712588259323900057459016693150571989593400168885054056327164708826487237143678248111067119583640998468857454178328802272153963596836611683733522511447236103281890515692914217844926163599850139365595451548233037903303262400763588350004555073312380106388823115343853377252088222679268681588679877624257441672969360686158491599957461625949355649991482306070754688848188145755467022030248164867268458576208472031198205484723059555527678541736474154706883876801695650618927664391213237085644729122476901418220441550775613105958431658842822921127400599537095660675969034912845040959675938422355917553301036316328564129388232095126003756332055227038849080619351762316306406884502153243793391124568046853250057432919715369323745069019562586108652861072511200492073353718025788934850214557791238837593182807371676367630235228350405486503128591887399364163056991228650139944818743340724564963458251310206664585851423659833403483420969033717809187481598263995169412262794770574426155230801368295637662343807473852763458128389367109664901981953492016541244190300027256958431611517822492793915816812040953328299795969531987686102887229549164292881046252202579107856473264685121665045301248774613951379906771581219400535018656593172618273208289845195651773997844497145208190035337402530903123249154083837056117768838470206854939111170551503235589809602700589041556284515434907626688249194834478667554079540541134656387575568974445823855124320094401739905722243217916528706631577728428531019805651351037823654046532416496800824074745006837463408274408138243903428236898759964845535293280599808577217987804098817224554748397974183437680756542462027436689566885791033306769265193582695261071571132208304782085860583769347858586236600366332131136193119837666002150387296984121314909817356729461082266561374439114345139542957875775450773897971252485661273732341034002226052643450757839205291142908838181290570282971599104927821281036858866342069772111717420664286961567617305393742175048269158100120671846221679339347412769253247995822733554270116308221374824495043339453044130378067009471699938750189606767649547107855255420880484799423529153282139723116313871298929132201905022545603785483807180500532242619734972681432540293072679689081026974156820288788986546387395479476940663993616798004808508883960700956693906341508469268021986239689039728612997968130005972152333448690362492980289781674376673350737942065374836768921411557151292583667676240756795386239851031649672672253350133238976027765322419058772533260287209857872542303229216347814096723347580716534711916595263104989017619247530177986339218215200554694162420004611798095339452784305335307461249209989156980192754310149712380732413062338564110120811028809297390562060107982877955177417952761305729702959957986229940919830160231464330135765532640161650311469148012458216061893527810712767348455032746674143872784779827506959625263041632842881111923903476351299731207473340297646307741554902247540321523120764399984869878824627535314360849756532250812855816672366230918759764422232156701955235636472127498416069394030194642014726405996675470029077192407250119200615571097211635335532512762002048080202856804869873612866075856977228005238993672734208337493664680718463442500892474623766251527117621527661856417475682443128840020863144278943689976083421292909384982323394125350239808069136239366831398608297813956510138644495012760465219399221255856987148983611259545144087173942521796422126418461679955790718266542765052800663922142604586115616323236343201004741609623614136326388866635824879581259550187294339638383737817151171335670626506219411123954201082592832474499752365504191594963914424804895136438338105215258030799078603185482154436496327438081252964759393012977890184152470164326699831495368247322510135146979048224941975214778483662389099420882287960645709727200251273976994967679682111432736799028728001313263371877474797133393409055195029475891932233088399871603325110050435278073405275507548048328705518173137641670836151451840237823700897277708854786913746337701028705495756824605589797472603309708687304294193568265233615833588411728694160760888730216556859791755912111797061723624348905533024264556132569658780680339059340775090009425536484325984140199480498929584564450236730754322857857338151114235051506791559591600178550017664188329057732046836381297932238792181108648487015761218304328628412965794142428185826447496008585005824653613942187561690754038343737155691488712763955270004564232116137528359522002592077785784272720800347780839118730942705099460502619169757402477663975516806641034657793073048507258663255274852508684382652747728682264671876754687472777077506508705860532043096561474082029949758555192524608533842383118101015343908849999611126582108689024903879929988793163564127179274833082347104334117968417417643502917648555117243664604756727689061444139178899322406022091300083207785422543930317253536793427796097511995041984290921629638675905627566452101012078213572595745495817141247874420273585707258083925582002981305943602527449490467322275384681867283386735946143033367220507610535074139675910964510380870046397891776742340457488507659143819313011890760510833262415267013266572788228314692073503809929522698800608508849825636988096024555341673692275987389121069640022263905238967393049132142389346089568091459344462331532489702443606829945008499745705852901074059798031692442825144138801188438106945059273371997947582195877247627669298050087239569584942682513665281216726761218832692999277825876668062237645816781993880328590712965647575729109419337605320124330920408813606754082081807326417977862181654731316721305334663753323924385614322037499455550960842625293690530721848610190905423302886239794409706992773316998556624251608659780965387360738375652451660290996722709807753484003783668406409723286850458455916434568226572927800482987284583464715305890191682518031767113269977090281192517384385548561090348239062186518350226306822300619998812524817302088142906327641619649434714662357421818993117195050440911631190013555030228388356440375037028028069401922171657919703391443922733415215893985471183025877392836000952126855558409269389714468101501445125877118208062816614554591292999481759910315075966530764412153051879970610405413927118556910461862094841396070685575278043375402098697132652980624432607122006368542685118751250411842548700015584500150165275987240590486439946261629788970122178986740315274916945637016457046508017284320829623473129283625785308992217821526687955982355773663907885476653471728375113664065243519102276454561474325710974845929191308727426289564688791217862908918416435986867257251068626988756341029144870540686983982395898360130558548575179356703901936233301768899770483676607188702794885996135959335546299669943770573014729816681574918018075552926664831523610298087574463500038162351784728537611893004775595464533887521765179561471999117927645502296280294331235361388881205649621434945372241766152280768836953569491996154896475907270733990607456829292943377865895373819605354585293194964581783810905341763581414702409382076795107126158455935508914069483365304540391033914775926522838415740682632090213939824854086816720182234260743030606401768859503697542387307894843812804148470290088139263257857400184474124623113365348030722250167732607021566436406258181719020967068133693917702286471547950198769256789470907357694904030173790789179307811192635068195840507944908433686238522321451595944607414234028732279197820033656537781704049015849279047015944184394422031016102964145052982394002740575467499374162540840998908868400955431436325479043241011354058148165403308684752815702768630553392948529106384317007558289647285671525258727363194519711659457660151658970644637750246821243623122840665906343403488062982637714389052842905256913303301749823347625939607468821301268599845418805187177357493115252780017439317382293046173507201379574344095388687010893314264754143484846332815783375936364652714171958183918069134054267648433821187688277977154683004456481354199696400724084430677869609316109318575308888541997358782814633499957444749121684911822762977109665491592590515612738538085862105637242900522746864517806863673052645743646937358595854119500560182669471751806228550458822876928885402218734299614162016873958958137519013211559030973545943952451561040726517834808059415856688548021956136329586583949644162879533178906473589751529847012337098972801356780697630732524214722412703734433814641851542713699340662534731585129676649467307557002924652992863373139971184230541311562078518419332889263824475915539564369450258749290109517187570926783532274048320585706283371911947834783438910250428556315051723161249205597252397281146751142180753879256847039380097395595433189653408459701357801467368951695602096028848248639529608923561414748109286791370746938099861572683715193911023332264627556298188925645508883599190413059884096966655083146464635455801318279113093306069164968427940435308740696422148936899442430433545797010984583637706065972449660627472039620279797761987896585150326930185916893070814713583087715942944748291964355219005649247593654616726176406535094876127891049448236740353093120081757607190019624209635782543879983370442094452984006631985000647300788887407583834477026839486782410718149167652652267803707858845286491558138080566836118990759855819174335023719342638372908243351130604909292730448408720179916030114157813141297528464817909900011485670266888539471711844784607989772087224302490439605136195165009405857883924176573893090434159737033077030346808649872951987774165537919710287629331831319610351383087513840217494355438081232247506065099402308807831728830179052095512678804934571125010205481207474902199671237207885944857248164063301901541077798923345841712173256254722023849466086257116123639426025194617354449493366990099603624652823918078276359592506319244559233134882352618740357115641028251442755679386846592463029076256127844705059278284739835996807939089511320204547936115755085326101060591889435370904851366198095811812578323933928861342156375495657680085992833998352910296531182326003410294722002864226378812193297208732549960724580370558867432174472694792578479461394315316529860266988589360197386492358036955655977514082901150050786041676319989528162404316289036308731244585371795160390459558126937005801733254738856212461357767140382578417694196926200544009087331909589576286591917337072531741035135392625617515526921535472473175603492436174533242216795111086516530656379636915439823352523128938905223314240261746219383438093054911943290459248679639661306924420300368831449517760004340974378094981523398720998034623291152576720633734979367117105312428533207512794490625525142637387481785406647851861235240676135799363820644540510271663473072472427191622239167730153165709261254354337758698968302262570681177687694331252095147737310110481856941703145009504198178851095413175871956680451699421382105594198377748826924446091160802709845745493694299001706643430163255932130470258998800449846225748992097423870250095329154589098743594496912673951260219836064114200178275475620613708943685082988367550596703256011079650631051817178348410771947368336628770250413743530468303637660526227204806795249478916185528368347905983616480983474274972859394463735536566406931157406654982570326508802078901328558382307689223412857353532975872438616307180381047755425656278836593194567475951635634252723701484346846132691869591060421530492420764629141967988658868303058491548172889118148910412703014195616342085417486216248350697057115474595230807705539332342471482030986079092486362639529049944739938482522823703106924512108821805032518643441936348837038337658964399539861802839053302153579382685486652919436176271825871465804583029313615204731837536592217206846406549760205733678138955243138369350251364799943449447284299878069407977557911363574608492426987969017809662263493059540859280424501236464140166038156217113781128102514097685557871302234281382258677755265117009485883006645365783603110917670114872343861559009356532420252022828580147300241653902147658171911030338697371345899172256608868298603540235141275666477218566447198222438043779491287915946561560341406971944554966862722379150051741944706951619294543800743250056346489685329477001425124377367247763307838001774726140704703516475723124214257234845696542418350810136967654726449489528099086110319962199143268252927349652542758110267679006141057008988149067765443674706404715716287250264955249439961231581060912834596466061484130680439820701108263484449307436274403136731451892639936016628987476939613662353334957113757938541377466949231174412007542288091685216584060079994441027914461207845682312631813141953046431384662833425387467563383878143169594753989737118357926363248172408890599137448715897196854122093163758516245506603316119388202706881638004474900713747222220861532345993045397767483563446822795581202608201550798567714317322771799844519710583180410154256512706104456683479786757634883316833056826001568564546216124452091406830688581458660277567758142164235129954735872832973525394825958433973048026522427187369718144843963141754879799698207143030691689038311134537362301602383795389844768104794608985404778100852058540942090418199344150148401468868339427332416998699589116629876918295803918362911168849646664429440015276152106125054161469043955583591077889174642147553312892177735118664083667140345683938032159193101398387661200222744515759499602064858932577298699984992270792647639282180237974988701359530720834947345082210488165126344448819322155457732396756273195836592360976929766501381432763830372447854330214028925363131870768718636654299666563068109388361055293824831615743182985445030204007267713750988867128916923944582240737154558800638581863659761865149019329537300644460932277360854773996123348289419915318451346484670302115673109758068243874451877358793474583307719835122305684322449226263456081684703563466561393937631986698388466896905930404083480842978767778870718793594751335063017271186711129261590192995235829301537951702589232904524983736697497529078039032644598106116722097800867100797929579795277823121127703023283506769972637219809584915507851681205510641541894761980262299832142386322800983502885983701464638239477799095414330690822477531562008702633453957063174239035773960579858421751780994436166859857971816859061209322084978585852997656252485154356812119872326713117431842896606252940566647730920987935438019274638070358154815504708586447160958782929322665187878988841517282789225104828377308452033352674291810265179499230176374095449164653039916440651807096010487859542793764091591071780559177791337700173220466237931772314556082600077123165144722215323077086706478087017327112847265840381513807820112995994137801522415944112095748910685428681312022437447991459248556139896460791279528025438846122438661355110543834462595509563165576491179962236987498810038540334112985148416864399742858186750268470895403617243701829474664044373167845518868798232039563263876800521072044811855799017755719911983270550673503974261755823412499026890827938712657238604754749208261210165488862214925012840988177822096808850667201156327390459289311690035522299921728826844448202834653967738072559165554067827272734015598657384457177654590264651582983700439381686451447862117876094771656508250437875083589752592894648363552290716244084596876707281281953282658005525662204878160646616969009395234049112796938496804794632417629624783820034773650856610657501258033896428806419908666845975128386416374573097959212363742133698856715851418439491176805462254436213441474758116437373098651695234805818844991888491174127953589840830454602613448630920344045003006287794935883749260759684971672649507903244794287382481543614920564899791123630808682094135484946699040259777823787750753245259767706036009841349515704181232686813797781952540466330979012494019332034528708949229208964541344434540537736245965308000547201689338295984521636910493836068489773766810342741793263633890629361989927563202948430075297639620706863230808325173460653992101435756956722166973687970540910646248440116094251074379851088874357303535779501986326549887689058520088637498807543950245581550055793295289136055042589691391980278118545543781478389997981528877588734037606086504547141384299190681431799360443761568497388429451887270561732555052113175183376716179483769393000345656689795901248971810926172213960826350551274738557950275169248757672893382969330974122267698962355126746608855890235709714085176433853845124742058383291769586213841809064306227155668434136536962636587035982807346035439684034085915218566843660380286407942782635247873045387353664542546465218720691433525486679649490361018991062552120426188170290950907000899730883570231224148903557223172558702270798432021332739158809467187379410162964430116662833785669127448756113457835961683726666753866403951690754957298576708532148157775014499771274569702283870857417126518341509898178525719170661423171471121499931899343045347695378066193744357875776384245250256401553856950943085981858283708651395032332826437571891392504989754637572908103919061914614681089779462234543259717192740858478125507499730672588963323837173235156153334104996647843389020810085131904464527449067576601016908855376228335335835399056048070563752374328944428262690274376806537215135455531702899097092212701017449534678075601542488948353332797745052788416313457206047537568817420500499111686301249142561902658311993900253141497871093325074884370252006923329575679310318101379125381427881564115382868788455330386840401086802386716269640799163910696017753794497384888236898833236282543650877832270734434849716658977871704533048390247005850009428433582662830233627524572149260344873325729763822681372390951024003346202022162458865638036117672412464978209057377674590941288941108048344295105524630394524065487428650960645733349783187019578552276450437019464034335866097649409422919630613416795569956499182995733959315592052185189475210477736891776606474163007405364124625800472452277137965539348414602890109273966480259372923729920879548246230216004827328486857864565883137594784434051035071729666833024186730274111827682631200451902075919796689622618192718830661265286400946577336367774235823814418919347110167731176391294018629788245967413251481282686206663374903283505308445987222508275700670599545096523567716016929129842902364602387499394418131638373578080313236853881591301908475355637490805519718355036609703272821813839744354944023907503477936005270292214622770180122532365797808011712985601121334393555398338547223456789534585826452216672939807413157420688261214749176269347109840596926098977486474357241980182767093921289891734084954146768898550161816648839799641967818264717741345502859783356527100479547915869487077425027202375286501256481849595779533055653599296090923999732144430110792702575877550486624083299597371566063940259396046127772703557082978094998762299105169373636884972640710195111841416694780793510549007621525518934049583423328749787625674669641569681467937955356399153990359979545825831886359456292597399590039297187571782397232420703183505300636417939899945712323912311320462020412435524394589703708822831779345143406978513883634852890461585595997666221596299102582317848154179101971298505280160868626941234350286260915801582554870739901452511116846078480924608703500901001312078486763215403372604828835273484530304508675241348596036097910281435575834232417129656212692310414674844859300728006902571029621356347955843159367579072524408745181288453504124054880878360510141489681910481152928332070090855291365592876615859470715715896458058979236483046437982866443736412077793026912298194848451810309233260036561381751916098319480873233988836513702075588694867532939997377920971473059040219406830469714246693431880676552454132405985404155636588479347296477920597789991054457739574590439488537727587361534509408829347233081635663678428887273026549498111573316175647034306646591149040085805641933041415629891776025996609953115124400591755751732780478196394419247143574203216907338239994053816745381888137681107231765535584045554188385094996627762455614258140905776724799622850487873829895750963475023982910336188888104793778358136594384504578499075106854116123834538294215133030601105973005102125262465190509674913785366987805257116281150984684660400981445129854794793606971071310865952099660635589645839385309547858326661959545701758518191667327485100376095134496857758465920362301095998187380319083328488985992565432541463499000815329383581479500726444284984308452234495217208706068045674101872836075144895101881087700969187681293005278717705341476399148515327151982203273897463678714439175193150215046761354827780721604838574781040172471133810464063217462739584849926383632721165832598789213506502196013663254954043285401154770759320519882913566471002176115033122498039563850442954190739552348976486155910373450337181847468823552743396353668081762049855709150126804576671334920771774040441964382015801137722880114330408308036583733499851245412433686568642210545647590816384235835078580911462832432487622651154719375482997446336030398158681403233831328974799184975777898622268592002862378814774201628138042715136027672316217076046681290449520414001090226241402442435973046864735154451867871790033275678804874055909982038798159381080610630870530877649087707725404350885092741997840809326857479797563273846957244475557760117852634088650788955854482433504004860878136123593066993875089989356243560987756131655051366898771596723409993474754042847777099285706863862693862814911899575616166749441833808290369450887289562317129682898125868905284778149298725444285100838424764844103072867279770522919743126826150130648861575522550547136995952229852099975397932191312707287665486704289226442917892018951620180860755502439813642025292061621905085191687547924834354544644966358509756453827488613453152095387834091813954098233683901684882258987103510949465286357980378702821307890796585138391881210121541913575320029571216566216905801335561549918357086838254743800923008036666575811639728470402274169831602437885899804734731656238656110767953770421966048818539215881358055706221046731418846840137224126072109555412414530120013714568118336450477515044909346850999297653854926959163993152777644796218889096738302859919484765606963785830418995767875288278941866823632657007367902296982864583282610931696893376565527787520077014163600189131886919328700412870035262411414076034117536734183310012307938587835873606256800924760108036866404307936415848500525744197488300312691341266605534820301394355623564176074563440030846405566057963589332135959153085318465273678104053054161046370800302098414938527632659867950256515069308093727671243413971355043855391969664165820953167846941560897585969304603542728817275242017740862011981921534025755946930683162374341586982581156343977575916891994845996889214087096683928465980088875406843004082869244569094697370446480765202590509807391406683579895522294362941023577218697783407151823513990862885715903334402094910053204746530084679165857212773646381658213814380575201662298615015924647890276397122951401585284930648730657494338220486334537583413860259543058518964912205101973031922146146431979343161179501115711367824213500838089414055806422074464327844497296749610270004574192597011799558272672175340633961670651983798113156214800556437061971134974054832401171894428806955238801178010109950080374223245182330821109252681195662508333922328159450471145713656134198689605739031786704826439447950862783468061128531592370118844484000599933443395113059142648128529554329020095799757966007770773927314805666795970689386476806418364923086755064714231381063067311434654844388616808096168874196807585025427144741527562130701565775897993167451930651880588363762476719941604408407905218011499789567152900303639802686293282163420955550074675286702230456090303521945741217941909500676254486575753686373210491662202483298556988783654971815293751770092538774843055483992613544727161398154019142685586970671256674594121319514155136063395686425890180375356838674675939737726142544403379040994995489659798105554088681855684689771065137708345589589716424432269989031286177695677281091988107840314245312590624523612204966389526281262241913205684721351102269105050228680730162167152626115845215947245630746874923831815805253466126581571521269558128368338471969360681633612019675799033786626164474269894785231997912315081866682546984247585337163881949545110804572166132431431607508709523192283331933976682826829401842192760826828642769139427076269107603543746017367429900816915748248269934764968642847082615877405364484685216830587316936609699797759202710395800495558369213972305930825355085520394294432542711848897296507365213950699487074536253785059079408389579677389654539064237159194937956269986569104709331346165684507847640715729285013194606667072876831032790249084345227299666216270963468131507831253910291947230492392557661778247667656791712461966192864112702761279392843437970694590063866892407226168624704271543431182013015606363075986158398406211450916779266520826815160087794158712601138750872247854041889440386301990506584738048710094683298358499969078443596229094318759766403650079435924049750979519911398743427899636038863564750675671592247100600760184957805600603628365834902106715552201781691500127347078092315318737199483871529309072064984739561190508325002231135119128284657129238369720256676453264761450725111553831659445364911080376149756750543592333424261916529131182486917180559745438591138010219909413015978653526220879007852576786276540082090813704609140473810918195756863209645345496849709377707936760971725432059264382244632321044765802385746855159828651218334796828108596402021619234982101985174206153349342912076851826623587274108705889281434998497710193666508117765292645290019277838602053638808578035985678974025249393533253765610261163039128539250754406437423753179022553039685800854410050190812872577140419141835059892431101855889939357594568129539464078602519752772220459129270579654285462733854288395256685414513324429674082315951839831422832542990116108517516329155345893787263489951320951808999349580757885430767762221536407335873668111635457187733481954545396592794126488672879854336248126210791754072004734956558620004428121692552274338908663678417536106928010817587214650635455792223616234135655011710213924444503283002069978101896012035357680359161420021085221509051632591759810323688964216046158392949596522548418516612067311117277946031746426927291708312440611902377455060163659818858359318122358778563743623475755958139095288459720382272790341374196012959898973962235690926948623471415295784714526193839806552182890795313719167814007082701378829913540481203234582249433578295908929851523624311109159841822291671664410604490058882503887618875171383935052154792971087741286748282811518381269314302484463118985845350004408338774238693082464146300072197297504513341595355910987442018189755088838191852306321082796656954695757032446116201840831587336165653084800739691061803454322574596328634720760043982006696877587091699363750124746927075852971494633623788716878779437521525414948929806718686344942052086868543556272194986369802349644169820057131171136258551734714419378475528486952697919015872002578898285301207320175756713308865740362179784412476642338868640158669889005608983658514574785426722391001413668561297205331306036258452804847532719071730610040561192419112371365289425844951808649127109634414813762252928387755034992512407438623493886114662929270080554670804963814589282827384622726341860259742585342812807939857293074523707986080448137600956660952680588582828309164816665617971317283212506843712268251895488877884588604665858410944499294320369505386850782488100691196217094340969889126730590865857329021481493303254927346349741506803440098121574847599462981524378115415157793315484093306655341070151577992689575873144338753923992560321134495875727136350994389390905740365044289352879567845162785184415821249391727770182130924785146850830133632900439559449194472347598224247380304423064575799081914364999699718450357070636481977306294464040742497641768820033616273999467876806693840975998797906192035035781820687835185513409063346495153204969215200052282692061906339864152597163403507371218238476081472404563342175880404626973760629063885944312936874727730562628975396181689036746636600826423568931785308052571537873413156016993293311222526763452491561488043987960675979790825722383569545445693185053599281128693318942152725754544602114740274048002617171471581450753896279882732881388600111656665474210519833846006548077984858127535422854133345074659853916960223803480106703369252237248464374172851677108441906643127368574045480654792223495815816820593058642933738779676351698529828617458857685733258859388915726445536027899331887050713464665997240532709829391968627491265914786002661852614905068509350405808594679118277234443029010762473868313004485924185028893713788152176852818729110424136687180157057715145910100363354755999267377809338128979266065327113977136474403244989123745248030555039847784854791695140397864863335555624035794558217921203238359016688580331631505433615617732569927202787858363258976474747234962763492883520194678426911643648865479877117112170153139844407554531384067434630565332526516955646846290026959153145614454256551013499646383140801256877098230367829159528856224655628095273884041830767935351981217158429210739964919791023207847613789408923966115003121452852247770731088365664456042519558301382458022564645096635976364555688255558920645869213307408595285329583011384802711272825045381224067181438561941135015475427851431394165610615514425809678835833275965564659550927554890402351763646352860059938273328632779983385253605644269399917642427263557539385174185895302323364272839113308328233003037050483139765252512943757159819775809825154217010860375492989511518033202433290213879121530249466989569305353633944577559238469355233131528721244841254118693111404720544775646279757519010860446841108054891501602424801547217943419678466467812438533316325427768455727242928832845276499068031451353713156184067874809324297381080118670512718278778218392696536238943767844801900631218590128086029928784286147421349241105254580922838210357041197818914543622810060167026253049349878148581533360507021792167647425694158676872481758892311896095096618529656298824123145231168929940179790363721863063741478140929168385273267800697148611189210808070872465398060484017669389596666058460011084063842445679889696410343054984614131223101933918645781818072884337775689493274527045230771602520933020037840120813103521860827614205817943546070478320118582139920172171085833060153045906188593976324482567808820306673446167778425059380223162900279953119823957842231914701132185859229741263956512326509877328966079569980844847375433176550086942065337488727976779901526938233310963610330675123630264004182012291620594799491690252126136150082957346675838780241136049542928675507442951660003430515026781403574269260022892612608737729441644661290993044512402526079290800496159692000660094617587571121024337055859502024117144418080152446817076208251335508974305929272093546996175671622296022550417718304795274778499774773250980639228986330350099002579325700711642360516298039347771591523797456096502995431583588172784819945258039566274622350857363499118608298742988103477039692305510180220697786030125276265017196469221240376128034571640872312034934005053316015730047174895526599350326162001859848101937082712458858788119571701251648150451097979981161069865076397689498680724812565615543438215489073319799279170669658683431779836121772383006644112029541069289950165100972215203533591080848452684675274857138813566059932812729898022870477197416064937149789853557549706759242430821015125404550098575465852664991001659906299808672661559297211875944012621835296795362831517884757101145315807732710370940861275836777026687757875465790212683173855159506770071346595532316615225749940316599070708854907414258988831287710243855002882158738385905314498620819337546909493997956006864805419224366993156069335205452977461725879375400394297631794730608430349907983194578113892590892943218695735606164540755932256903429466337857976556936038976434030072979566483798595571204142454688193125170647128955079726635376106180737831547880388915586147908016541091445572345109054255269386738531870945896728047143215919016395405198330642752567966332106637755372200634542597727869811669003732907502785440282377856722495819841212477769895776654745918744960522756699779116190363052355210749525344429657606728403399199723772802791774971284719296753844235273369534003847775124868367776267866002688300619341395452678415066812059101119215868052434745681928078559317504759541312222143604792517008220601884749990522743380073440576582474908515717183129333990842659122520436437053730086342044543675406914468839677132052910582738732406262189700457390482152262110358545072912632928848238730111729617326792786490834474551184790304698392736384242056716287396692904747064135860882703680834400383141310490122013418745842954332298874995373501635820996482986138409838483575168223999635843333489589490756538391295325320530567774383526507325119083327576442074489374883602966940492023236725358321107223756717831602901618281401763093784549879606065586035541348334913968729037260044008481171316465355605126530229433610928807385262871652930736529584209795646291939350662887619621586428812324529007138235746223031826136517290064835973069089729931090539231883127325585528192054674278577468561105939542749705819197714509269067830441112721112830928626299141574692063509646315529134702404171537001717337154551170879172283932027602812121270883135276244528003453011599234194498619856816730999935895715055877073938586628047224002271925847033108172224078151750690758994697189682361642007220253013916421008375020889275095257045045572418982698640557159083731083421479568582625724618477998455696286416160079526650406753341172277567363454694270120590719620507972385374059971549198109245183486626896281260146172333902894566248823240692527610286643991622629672641749573656257267812397176371485705999982542056808278569945900763863238432749253562592878954735808488931512457136160210842130819546072221954457439067250763354909251955716245697333283516097628232070077125364819437997920458230645211956256266205300016434456921267902046057605922171438542424913021003514442191281262406390566697765548067526329271348031977803479553025046443730343196637857367726744730012184465566684306202840928476173445121431305949729977376285165927383168101116771052811441142085908449131665751084968451336787311874825489743985252292968238537633060562964635330687184412149950484001618928984877070931680883727766271302946896880584938897194094690761416855178485657672266057679466215799687505027158108212039818289039769542551483887541757534617768505368216282475872649553494162014022710891292475904106483866117469741980548907947845445119651171271928868038296969184299722388420629862901034894816864486049282895757551212633128552908403141660145635298975084503413255617804118840571013295595997410625582126533100751469819900766867360389477309696363272635962821293702381378048659955975581213746863788239121212563856144070223837554253987083974666693608102246508699707495105853541302079130842475588865484356396465216423563482118592962126979633968940537892990983421750517007614828221528243040464358804775537916036877184401257235405480277633757403063209749295690354628781257667801046992510788160920736595106325963574963199062630314981899901052587904812571900338313214204371119895294205158058647774248667395594143186955831172131654941420014106186053785813235606243798873360179046127396834142040363504473371292094598458627586932287941322763102289505627883671096381479300074189736494637994555764900314383574409101302199910138071147178533096370072734031395115744054467630922586577389934487457501224951799656002033031173308549004841657440601779720768796972482659819983803489966398653674323232995620100768544228009165580724640965534484259542811990504063201852744247796123823309879042835161065606422513903337967701011128389903498842125348681949072687677611178769276204591847168588004193009414931190469019240614408009573943388030229166202587815285930266978432070817800568555792152146446682392175415414635177039939441187990182579771378045077465307279216887206152326818253873964573080794350484159329448947311709427887907872466699140227383465160684912526758682626109976820364547408626566598089214219467298573254922937746586048312588238277148237880312554562054816672855847912044622975019775730645661073956874237940124461532497644699733874279602098409688313207297848016513926595830640893126127057527297834842268545983162686197931555113119209694818716732285316584093372801049712632657914772392727026009544833670969881223947225128097451507217629242510906895476431057790261200862403677705010017837124854503225049434038269298949336816778818257293037157678306878635350760923656992515728051142383593797912227129725687968216168404111251028620188974897565858701710540408923743670272301031827026807412604468800237864736422722551846631506212437643928601235195737336061295341355858839554573903604334620472930842344105990810708319282535978642371860538147151972088891173821502814990443000664397887111540479097162076801930615472097896971636499914171205743296711595127528552294876184778852077461525795863634078957972818711373243426655473224964455911735223719524372088487902154878147799345672508715353458824827631604176151124037606404031560585382548979194395972829052422891514810011929944367621817533377460301017092957890693078852685358671413238050694778947954614119154033093529429523334835441441492446524123574354822323772462792997741937299269655963094891441679421705213057287026986211869455328764374254759339083111880273206505213759935256727791697128993724619771355950079619534659232831686195341595592682609004012551098562030803537259479003593949519249873259991181644238345629463074885670186836421028163328510108993073662875876442294965961746451543606793256717450956349439821186677675879754632672377777515737088002455356638183886965627692975101306201299632006847698850769173363817300941710877701218467519394491679802171654054010696417045287951978747453945617158118645480492822601657437459357216916267404573094336873823264114722394668184958180946745369505597484071450594845041338059093329201566375773378551249080963058475650975683021031091374433555099467701945580429262906351597270415228895655430204634479366609047528305945410515285051219864909122639910414879608525422454791723214021388183801152600186033658915328263217976316308494751180768733783435037268275720808808617672164537938394787424996109149647644100280172988717032148908495322919894227887450862717011999406926742310947329501497697012170247733639853682002130925021909451859706173032656676468762395853915865063216683233783608190149266023823876939058423181782988400934282436026140105129984954401520226957754386398087525846125942604553995671986665384270611347234064645214772293032044508690808775473581451719032499670720238197939216673583183430967090842360775230782829708299699072216339601597683945041118500316066442544112007928967928283955477498882986484750638155352451434303172261852148979414196114270153866278852001209557928848977584448978518694659807258940389902690615864937768390832941200409519961635527541940154629957225936060833677934949134487638159945898833143939374396974786167239996722982109589256408426886583553320707735325078484276814791506104702884805889634326979922289698030505682121690118091131264893291439637286346367741804039193040992865621289669906109155127547598804407643894551997899363525893084365300724334572142418051842851243559626354007012207452171571806880607018073842619831215025420831121486339972786428312590104137398861133780868048884278075354503370067204466551348688103101703653634778040935080001795960674288997288257352954502357540479482497706621755608141691613547683470288116279777008766611845604251501269678049606366113905820863014435320374398015069681279168542311058623461812208664049000068509622609136163821734697878106720755638422897830519803321940469344993370594549304399078136789288622720248730817305267353090124188864716592109463923564210937503107931034441187599954305106637415696969698899768543898693747164972342809278506401162250452789261924172750107944925711331160381442283714627062777134523880019129071005546272031239530157222673101810612232784565925231685588134136047071201545497217103251130154481726231828727923316816056545094682347545871619188263310775263854125256540155419888641399600406233539573560793627634695823942167984671473690847987935589553121038089853039208944748652566850185252695878207932229681927556557943683448906411354887191279163582809119782702139472754823662775008557289351617355690994921153917796303167484375353856424818430546963346054151688866820326157378732901803917535619578056330500279670156482352279852798585085452169128122725739173894162690555026699753549481469547340058447946924609763065845311985084652405575597536283483843710792166594976621630076380157863486526431582730845608572477327564864907281131288272702011104120347349886861725656592460045130203040502086070603422501728763375762535538011926660757472322316825201539212098575791712603044128464563055139355344752682806718335609817646544081414201733332096857373931897486085653210926535563262614961170415546434384455476706596952457506264365277158962897676832896884570447986747863510872458181697112087640431776337869900516321077787969135207590646685657172486596183873293766999913022614894158338507816381499176626308845743412232876182587762393874360147470509994368660454161734414490214887873613104518119400344786589084829303407656743218626903852597264829693374932677894966155378807072004615450049569073446768761151004345670526658390346620599090757206560978861282167634339833995089885665302087566005812675038609186801716634590208214508139962985965042637579267604908655623952016367530284528570483304149836147960015987416965737666541647921391567041584240140379570689853019095859599602623063281049827800676195446448249461785081501646862377159410535249902557858446836334518804989302607468037831388454992068079455610332905806985634290865980537492184327246795442106218513341524744980090599961643785922038728006626205501428950096296450117347613237665706046517920887566939670376402356369863790570424538248113984533478982022662563601535088549469205873700117266820788945605792495772030687397072438617257558110797876542453542351009620632145398260432024309393461760260078742638013870685612260722145537734664660638656858530117738163690977930246750896048659289338788943463419104976749997570298440929908894412828253629182513388449676423069607879152193030182837180817588856053713550543037654798080076785088034199379090175465335813208043025030892150203359521856159581217361215858572712394371879086350479516961416206996801486689337817433404183116612733916751846704827107852221091347298635702259515745090299103319986675075236583560314466856018528474535462908858897765557536891493511531760411709342162549650951834954414137555799264313252583446509002019933691764047535394250976923428440001671835636803956624591364778340647666408458738153025379526091620421946970035490059598603305779151707917627292827404496800388830784982889130633904663503172744264207830261152424904944193922625096782994308827893447460393387495512237803584150702643992789665228512449116272416188224956322395746045768281438635003144055401892022194463672021473228017944847253541159677457754641712625749581498430725537852090894085899396531469468697000733745570205859221969894232455350097366276992810012549780973372263554625429675955787448808197089893438680338148812534781642881659290600781407436553750876391553334486933064025331066909825902413536708511705204232382107132870232349267752049383774262927753935143449694501040187146113321183159900355493773384081070405590207400145922220762951855162332359997649537056956217142471256401141683786367607254711524513731383989410231607089739076543980522327294774201995193969505484039900974090318307170155767457676039017083429200308910844952096058500352701752544104053718750462164546436826489776651370886069628802294567598140827785760805613416143433256642400871995731470143985622892386025894889849032003045956099988464741347005426339525670496488399975733143612534772161822560828323988934230539777776378778457752305465539758585661130716396899068925308133908720584369298231726239130963354122438524320037592579489973307958524947069186672609196054753043066140535303938285148042301589916042265080841793842625579101696283217199752589423762562686649708225109345638502719589020442675589417097918415174021191984062584153230138963838446925022134050942896824028881772242946825453032902470495964446694004392145679868532994774568601789283378820458405934851938948797048798663282366947501653245146922913354906817033332303400031979546798186545471300320127530760055245002683503542819819537103562481360611108859515098252904432724620733692853334090956133868522155609514283924339737148689411427715426198382228008085077024787440826861031108358597709946678423597917823139567178636642535437713198448187948859265525353233792229149883648148677989793891011413483567469238200550571477427294356832938862706686992908360958463781936793226356362793597875763656684394600364686314091721909273083184010286389035823314578399588684455998332684631835950548231271284784617473014841624739338520300334559207409873091983271262750961711100344924914633766420064368080280390097057250128226257694169726242416250935429508238825452743112884370141755178095324866446009869041033423239738620225735623027971918412402818068305810023439357036969683181049474318404362705922963191491666995410700492542662832791864287075592747547628557957259054842610070370302123070716306988582693199202196773930941930379147130127339831431858835443511316809525144042199864039426706864728482316711780927012906538049676739332597627770513288024738335001484313088804061276371692356216358014404051276199239438919320215378080550207649474046581303073659019579651468759460934545816139499465964207647999415981882337277294876685629673213147347954990746270731562543284875631399034267609682115147157109489786874302508615323898150313292475684578954916270586570310528015082884498830975024426020962484175567338516427873562169966244140889182993063624994566026367650321841816947104654317107558959434475383493671710264694466328343561325968800835616118983821170370065402557587355726513262434764661730315209251843033666462777415174235941307671651586993129288611911402025740687358216383430053504323000506791736983771267606205121773988315154337351240086877877292924072021393603325618640637925490005844598602450560476231359999102911807722009888831778084239055131017208425834187277721912354506373837136564164612679115391140768941363211254886386929270512816147019564151620052829438868734747122909324895564963960296567922736059095343837403686206701821631928903275211941618047730432420918501612199553800026042363220072608970195162672841778034840927186478599374148088019408524179321052283249498416301193292567415320899040048571983473664326452451747162574640310115260289274544070672461053952259056363770825627968020069841883496983342021541546667592682211198999529681590034682670974765692257553016516377194378840565652204674364128822100930730476243222379738153122342479901707541572728889834738624625292984281015693174755368822097036528210810772761812973061206182764830783571670694912887402062962380451276241857969567927962040953317638822894268392719756585159502857630859312139496111256127056813083101671485775163612036503135694626133792317212245481102017430678601182263755709300318077966572640019179380849883819445794805212157081326915974457296300531978218853329497509311573500195994471165796251239202167824798468073481804152895076220614441892773747472561952294914290407806337516512926936691967513980573609246612556329191374611245156744708504476495786717631726673586879256389740941622753746778476473192321709876357288396925842670913559179155446138248455506502680552353682641414144232827643621532737799304940218873736728324710714728881032290444908582930096689910029899200487999212293985065632605675235274316273429081520672312800103295331365176556012880869118841151245131411115242398812745996367634115755155377157907384848203637495009960411182340093794898806746134174708803509434608818909255556690250519137118727207995405172499304446722777374211383893653748088109882550536155251250293836708280518289977387077713455848206317306790377828604028395577624265836067425993350730395491123244373600131855976419498538038842012457952856960017211739489684390686614330913983248750442538282465987144555327464744889357549803570602163473720292733101233796723217314335094440172491892696864797437076083820496245006939965596214259209067945679653378032842599812499512545824056462607734589862385748491475257330130597376342753032291751486133088156725913835936364855067453912257628992374121450604609890604920662827729501309759382852572154173843629133902501392050225940327249704914436854745701312121710271243939625284870006934466501473981960676159928217600859574038572543191115504989250768350510681748054535071223708970293630230292639082578124697480587643628064702885511092239086383322424256417942179471555124859640492493120998832523967640069507151110822138594228891568969134467037219031837729079246428568572085608037795445308384755061285563773181843308604496435610467289753539808549045427120157509488741980269005769123415597516062685282764641522518968940565043314579815650864478515308335701623617268063071090351971249417198004537732567199459222162275330026270196659700102579870750082719433062629386251724248433533284121565040084806082109102096146505523011135438265484764343465932432355975599070677371821701269927374652817490889639091640523479489678828535264204518258741690498803007542056349787534957719576317337108929840361228894997948230838886203843570528372296945868997373547465706805394178724139931432358996829929535308479899029480623152737769539343112507719621406536671995267338017857011567202623217025448374532099358298281481512782810042443005917440444758122836840366539091787336213305122304085701655212496036891477060584029808816666417454705078658241089795270813601154245062925348329394187062117536585292879280593523559298287615964580433275211587913556008426516042539130391220200061880153584803107972006790908005093221012033971354635759033791304916769142619819505209864138419230403683867975866636603575650704146818209498631975394248529377848720195946700952995230505862289564479436737719182768463895024454664569790497914505895938209037190323856580821302756271595582686438963784572774573750772549547737689231182910277585469751820484514942110927255950128730574869176266496726734084649640743243239375096572725555093548777851788453030750934222761764394102434902864783640023647220668814750746155241806674667550199247854464807291380994574263621602574483589018966187660308278083262845545222831611951658252325738060726107460851948207604243110760167025869510324805387752385403355265238420246228520732712352948543304417176648732353523237284791120503339085181726538958723248609526783645076046353108632370636556563372055119608708459404201006331541950038334689233737846276842416124625285413731149677503684054797103178428860977690540721227528722949532458203393182292783348115709562904274178855306242389252252615378754007870190906308769450397795958398831153294985434475058733453380510821436061039809804711052822818559583243106641643899853413491135035207374561263657033027418336625108947901216204095600667590983710314736818158820681291746510882176142146069063970848942227729834400406802881647275161887351448322848538943325093958852076625331115348030177542098574608715513082974855618022476529601088965655285944942775545438508146349050932310933434935087810759021719802230397067440780176707991807946660702548375030113879028584445865716478532333844383007409806634890811545219670671901217574561426026474896832091723767796949430982777754234737576318101779831058537926468625595290643019853919635274984485437366186330516636909426781733257056017447596168191056777703236981477122201707376393284419153230805562767814421540586684860987128699932866503884978365293857287062298301456501826719657931282337804898985832641601674623895477970770191140349182088739475130645051344299604080020820194824852640468810727749118238015405520276770210755635018055327870275908358094814283834048668703933841935940096621154036716377393040441499034871614565813556915176981444637505135949011282291446619173678385949697317469665874573136695675842069751231853863295057056363985685701762600255197645995292431071574084539043438067964091723540911682586527937255467077406226020677254677211635694660888531756151596093826071224208795682809815076850127297750260769935708566597815570993572882293532501227189980113369981447106040907492898382678716700314719484706217358535763176221258313202951899494082201512260360022786593508526518039029478590154230406001781630616443701877236418385167717913389658608058502280464184005636398981970407770436110511559229551675211468060732740963970716781640699012655912636032779026019506543322119456495709990584298667241655053395635831664406422933065161956799780113662602920352672080715015601720111834735941168409787252540128200855760411356525717773431708894819421749744315185895889341421950576858931822596247850706059917637625917037783682031250563626749417776736858421808204718133707396979455900486271502526287406587145492673711012032381080043712618202821548857849453475025019111593755273174062815359842567697964685015924347373289986565670900135629920639357093913131550024288552644949670129798471069107694219009381571793498304835812659935546500263517323474156980013151877068564860260471079306828597663751431692037197645096627947133946631527365506394532607910558990366613176617065215837523614021788227368507269696378426270647993209244505080056563243291084712116645016778630816625391323137337120505335700105534898826977888706757556054633757668749641379164721899851888179152315103505307723787612765600848627665392557240200353800343386272376040563741360066363597310454540022664567000186277888545206653147838196270255223968790164853817500837256301975525845188860706220343192221643822530695629718823449504455539035820760422844258209483471809843700797744972499868669676899023342408546510732926010911156826753053090261334297262108735429519277850203030070974083429484485998675497201544902820786477375772648613745037371557720861357267736566052042187627775982531472669313813700692711459148130560027732378372565788790905491356594755683999245614570019096960847186083400829362993040202557163114772112021488368282010159946144875547912682935230016372282228344024786359370064544031118367176072108258187782627117824136509160911983873907734216168529600308223601407952967662712449264763145110574119692961476347566620645410006674661472161573357603525114666437525902082540981357463551413824962959361862446636434151616335755806559824466741961020955968897513286292777559940462978355995927752526126092480732381396898858764158426986785523690613585425484713023256944899508532576668805063705775863430372710239201732237458935708140575211806829421643698212682848124606454558887454154770011344535704308625759343386624017802852009893595294332054896756100628481497919658647721201541028611184553484185484465321001563783005682838050596490405458737811030585857682557340843419823114867235822276346633416590205160118884158366299416980222700010529809610374197750407727070847076532138616902165477233275751872025091832738015171684171354612087842808115608780241012988964451748066994947876072837801265160353941265230152982319237469166818246522730023008802474354729182516720405141077811617587774079376082766116079104263186434568730318537614968636350755266150350052546686225735847004599779969885079821723552391878777935154900550999889846386756842270765156390483192197179718429723959391857849108165466358696096284656404897076346229741365792181095397250754080009263595677070871556608871242332456905657998961517177138391766907715352827973545006716882269006823691310990151568138998623002849335959413873380464760549224551182875688611468367356866700140656198531073931461769738490770942957893548742312409794233388736505365635567951377811908524976453321083422822434562557859863550027364567546570069042897670804457920834628152679083929393684872891279894895271207201605382076952415739927160982362370389349095924147192920159312324161726188504873633757625986443186029131288744783929750341769544254224991244259800574972837984418050686637877035597545560669206889893925805846486543907120295878147528534410846831811150765368242006756137163861416712799797397873892297314534596855856513097787437221573633419111577782272580854571529583749397102200887554370200267521358529375233522329248864549268199847199441784219394581644031665014863629211755690415802393103827222268112538021194123897418101030393336406991293060751173230520511700514472905992715681389514878730007691696542130374720750276896154201343471623407185790157468478348484920695821119993086528286633535173575817809639265596045501980843829502483933369808373483024723313560440518273666500313895746969651023785962501587261453996292912609465172275717481789480069171740682343367697531147198728426290591476613206370146978402287161217752941610872029309838969651996240554423342351943176779384930673190118299944431824599418207088146921567004072630276746083484712675509866931145209889824907172557533276414021591081515450443301098148458886528483732035763071121069722904222207214795769763426523466292560450786443415723153016448244213715490294097445190331810425176149491263095300159389022413250154482159783898420779557525523715729041098089717962141004113521100366551458961937601697346458453685881141321632012729977654705676724417764933085981535329568657657197593703053210851923054130196662918782060166339140070947314008444149021234395364283827064637507193421263260903901694391480443176458811130913712883991614165686083194151400509750624250150812268339879019670506984274251587711843944464613441611217839110651099230118453498698598432657923493413623690183662891053785822041168657454164965069942551213242445514399576050168598134152364964702275556251334012279783009716876111089534056725263218960240452519658458852413986532755243904479515913053331375516550530012659948922402651884576941696467325514180369073620144947152532418103613228546901652277314260935490040884111920305046607915951530515964746118388606168977297906980923993282227193458151489957198195160676796659605203325341637229639306271733010369644896680505906565483914694743408108106203241784530603761745553542651942081751957620676017541723548537165296518447321980610554498168766676180832453483763528771956638859383024774696128393894565431495758737298840434468850602219206997621832077058900550948615764290001847245012807608353580826503094070098024953787819247568575647697326742768157008570092174433092260267104026731327719192750408044353410829993821455495928150315983319646686021514551485878559660098141219107585655867086278793704412223800197334325263031683562975009285830287308293205774507902344915426592808565277214830985631823159349985089166512215104398284981529486178777237635128736557707325389320181232473393044486043981960811817570159777153365891321493154028541875900226202811323956716574587058218099586192705795717991258815663366232120486203457161383087835218051137876467141550060407012601329315893208704488863318994136586141773858573869574350918069969652656321987033732972676320628387481458607379154432610525321002655327654416281306034883635759350628239875363551639667361264940828610428198359335706705687398382402246243688881524535944573980576590336249907605838253235649166384212133129722684875086916540765204919615935940197142205971015414587985981258683518613695785253580891108448857695686052567409714974218291518910938921829512309166178808062570322491514451113412447830056437089074868154802528345342184561634636466596083530762321197017434092945519724514178519780655430039618241761794609729501445972587801084630562079376309885184292939468322503812144074488425893675468584851970354743527720969141837817873980512395276319118417713039068881825132487047868215955860086616331626856206880170908648655188431636524134559117143439607506323487580690229376382282226019616080723559076117891572301006177070350814611930918644204602363448008302833057017977990496521045204257639265701804772884145746837148527905451122486307104822001804991453472677665801908016330399361219015640859319098045873737181691581789512951415837921147209701145765507733909019234592482458975900743263306113885618684628311143301793192497019304286853247539316515268643710833881362270394863807234721151103919996929629059261480358892399157199226128856018567120835458975088953869760248509047346001692194161949292269846062296793880882548950830979809090933099187593819649338895693484535013253594643613828008540762754894337744990472429473753722925783079898062511194291914065952413237509084404110901467967051315427363239737412705876190458796011475943136327588143247713808066005692075417033786418359849751799690914864220293779757454865716227771360564312831737900396851620095713448465860317605141567990255570677161182676030222308012850209621483632796006677808921661412252022001235073475635592766719153010441051734321915140891764889303564009301774916863511045799268179947043000051531371719922515616739752311098570049626867991800253169484492783602498475691013958450001081569806405784694651088794798020655936065503167321520144178509026040138269923199802197836127576505403888118607593578240060349836446756713499695234396343884620399216059277346603866023667528868905629571526427674577391916364825886908312326103765970921646914697902152447392918291360007560368107461493836412394781339025522030203379242706250504858947489091111596618323942106584333267542134533691207828360631659656915880677033440507166056526598701855542794929402328239880566915318703125470170706171349602555932510465537185477964265607797808862127176706892744495866132140677164056494822307851341547529051006933273767373498248138950662159026702964637294038933695952474695610602322083714959922732480668821773984814084949032852967376797060418831499666946553830489336822923933871703589401962595997278927132857053254500538983996043689623227414545116464229404923783542890774848034727993738536977136974082383286941212652860440516767360700404832704591614919806898343286999474221249209246463724398049621978191549639641906159017346555936766556689303704200477441109745087651950723633197341284375451669606079458898835839845058220639671903733787981859501863911718798659275191548195970637250518676277859164521882651265732359314442005484971370680707979983731969398631904690478029110779537570996330118605501064119297059639983022699605683111347138446032359115233045343765696382037953100677471973939611900004826216509803184801839133204397949310399866129793643325648971643685157183858859471075084936923117667547551368765493484695175164148196209679561472515740517188924123792655608805156558083894944212349608311807145596984526860338417909330143695191014874412313379796986898681184698021063452036638685244738191807621857827301568960339959826702189381378785548753377872336737736172603047645872697716521532154021108108533440823109564320051121733857275224031337754645592925050412344192334192229567335852696630550495694344377468443749482951402478258418821095450737241091465843415948904338829561114574377333471871433492709966491994730118618005849414391050891006698576038165346007654937496699254864226658136035270022136589116906886486295576459805812025976270350800681961581618836711247694312179575093095903518642396033059055903066578048007925794878308078381994383421951572953368235043050276809981695251304274323099115096321510078296137373337334401066600068630766699493692384363034679511157141822477138857895416300556440681972370093617862587928180117974163970444212736069888372346033701858340178613901235820617865281582903525991617997164756045469993438389244202489130675827025320419593900056414583215181523801044885560274943439230872690781282231781170890412334036487231076755856943928437018661438642140921962810946190282545718070329859362158150395027973769222498556562643662111530186462207959289074759969644778242809816256302583399093925450634648993497507547917333613672310302246982552287623119622587372334605763569848549901544063593380834291054512487871976763965466027140040260625235393294694597973461271292269343946262205816002102734030277197019262974982766795370208219929378179285052261671807171028052549297924321118052831244697211112925989345693026823640843127279295490116093662797159391663939613054040223682572493673707014733718471106886600312214546066231302161231535349291219085621970175550395009886379900368278470231148170839571223427567686406042553692041348116451408423123326531240398745490633655479709692032731846881474495922545025635859401302337733424010789066321653200471652311792832216375735995704695792974344814173021509865811169335477749470747876510604324912679778466350282893639224489050910911940002409144595221315706088751675131948706521417164155684617419546581376783164193598631236961840769766772622480637071779423999882690130704317221486044511956626529442962122469604186396539374919306235473823753302554049012693199133747726266760827481067492286336131468885885621858419779275974398942978931542468108349531629381494818185907736272048635501547612148024060295800967959152276502780759650699778212141355454657613606608102064802516817072651536749319575031330827818113147441148929265700569355671707904050188593783725067019354541996731111053775438408751422165060620156789127935809513279315115450391080175413132721175191716063797929842936213846665800419935894400660936754740211241067499064429608823458126466499551019419956324243719435200513716346206471732898257250383439927277950330124065072012314710626209986343071034779291985172395099339671470121664552361725219894760075191947827645905483642315634597475831023008622930350149391899982234089238974358399636353427620761835094981848140347500793798682003579930941345759579574764199366733882917871215501641329910884933112291199279671426771538644056297375169760097705967260541287769361018683775864966055213159479999340986672329893962173517521615414495637817791476854717327950793412908211572423006532065414875246804458037888385757287448276798702607633752261529537199672032620900316585104766094748426429222489712303729248196800406638669339610442471083080872041357110578604387071709252176064069467978720298173291846414090112141180050869968592469295341220826331897589588004472683316118422477452862894035665756180836392812068793487917954841950534136852482398516675210948800086523807451998561669049844906267277639027867008714698118039203379347377745089576328905160962164385044908238459409188533233118883164303096740102788773405470880871959064082804299467051129875581898653269334509843027470055777498959552210978043703038104255544367427935957516553709408060388052666578985650572270588262608635522195273667324700484972780289905263175958168893846657856119556519813475647001851611548491896343316442643933589661697985368868631208784118821154683769867820279225151255715839954427184722270386418671499013125065144251849070180435476370673232147999677512856590578126409703777832166886010419774459515635482490755293166075457383827313412368510997114543969402792746447226928010439267929587778566951836419702106261509305449896539826596428927311257885787386070449296062600715494111685559939555382379222189512974131146546834054017988073521560393085296067616086888916396354684913680936395754638703256558353165442062539491846090649293491105253683578120378510070765314990289466748585665183220535757343367008892383373003313285387629322107457448089148417989876914480622728699513259414069660686801546698239296044349259267734161909827284923217945433526816450744396227784104016438989988119959685084157575401650429756310655730121875541570034132006919093099574605644942616256298831598458245562077336569477414445246212485776701288339060380512015623412249194553457345828692720454971333300954718657540956611455441095705707903118425473192047799086256881436054132984404964449310006100431638124600352883244404280681267558684530341252035305497867965148945329073054774680621258569589005638574098509789330396202941324052870340197799046665159975143905560505652142522289283182527024892456679364344047920072197842595260352849553165419400381308647585783579146989074608018158387471783822478667890420146673380346860515683372536425675802304457665238243204733869569176313629635264727458580645014951644472390190984604541358366535541969157751926434588632804146801526812634889302086357961392962341988998433497403720627502062488246070072810688388037513609768826398779984586327134400012505410848711171376361669706699248076593741254625936501196106232632137739307864682669569999289152886520838591208446357108341274835534262989343835628227035153510421978619493011651302393189869052196589852710321506332631172851187226088098234875530014204889246404588490956739134461210002638886056961946592113555290140138511760935545109170707169322327236744897544050541941662809723749140987766777497546981858203907326358739747489374471217376546911007537645025678134492956266304632117744671304902189549976563882869950988870197549973032640390225650510692242955897676623744207321557124622548872492104682671053023165468464000748306834360726733782080542022012754195358529905388527454038021797372926272360437190779102252529432872340865049479290556111963147263875551541797138579541479420776403585288914520441845367467525464813106610917402133163504740871893712738620741926464307896707842608317560399252753016565408648329902549454425689181500619472497285246307049563686865829476735595215632848216577317523700592951739038497663106803865409599298824087994293085744935792428877580750983088229569532833484503167260273761327001099354973122618836821120164452173497098005798369644697680480426872821025931369530468537765363133868368125480232924188491394387490870642939408812511504435611484616534036712823489557785316888900162215352917659320494365295200639926432366490304881743059361827041992318269614195299715186851385026574059898013320382264505140970929007750202134353382666432697111428128032560377592079173126485397006204233693219437800848318214050343096310488958609641773530238832182870965923696893247835905827693439976948109661168061781991866560515622367550579765144306537388774814097036626020286313470426809646757813129664234344556551452198791171614534277320137045635168995008845526455604379128873149592290652913404562018386615966633482367197792868328625783622572791596195459140490414189939656389171197406445989940887860052628225767942563308578118709811361815269232166639329266656366907743278213331027089602132710803274803304913241780315079580346278511957774041728753877612420841884762791504000277159948367093035633445825215772069842868192904875399095719203736137707853472262661334372154825266468006216504942064968598985069320938582419121963202955967957018138537066323145861620151771479540557609849279811056980142847821610364735663506618035719590911610238969638403653069195083207037099831719400766067187783475500929936157339577452498244144319131559953517826312833643118917255686578290708931628286629388577416038152145205291259687323055994766059664148809358490019789679029972192005017254985694363685983309488244122133219319785618549943613177265364453228402353425266133411483550501331984418730830907016274050109263692008489804993615178192825701539218554097303612685619054128002201311365804008056211803514862455522291166418945546452841946639068183878935934640945616716439988933956659996011921013424176076734356637481117244134340001988532623837594887658245696638649262198165475404056131956710989510014989927739383913046878930000873502812237797567865469995237605214443557146053257625594111085690249539569524439495305657093408599441126424746760463044039701441900751048667272436608248167760798111256544828744365737236202348721959524004779798675008915906936386534082456459358655810324577274842999410575149253408038123918375585935837922349944537257024366040030784591682213876524669300784482751351700750599304423240900887234612451522720865962637289555052245277240743835816708065969047811801947420858887456561642355383293281915578397914934977025307047666333402006541563129842156303367745206915332382980390272982682938381840602619178358866774385153051904958708866087838826054717309896196573761255676632767615394192581015493028327885289328624022748082734541544122172450279265779027420462887268161836608969099378514512419010963257864237459712355905510596421660184020663573107212432233110220007963437745999635151176902254080988740801239109121281486062643488285229314920116224655579436901275143241161941394125772907271024425604174858959405559647238917049081759869376765237158527005475442352748746312589033660099015703997878117483238899465973414285218135281776497183364647516613954272394682654210116671225651450302214850144234389732467185421562703529437638493259373230158284669497155686191239907387125998391537823638067431052251881462636468557842325713578012972112674471198605595464633208485898010773869229184519397130963079508518754750859529249017186661997676709110491039719075754278757756578507579437245668659405630145073403589291467445130502649084224192258574454357272295793670338202320130211486876807753979869362613070953941840443128062865438820352094270730317083980339107235864505515615836712485667247886273727497129486508066320448097355568886750779449485932308701659801209055988679843581064317468157313688431984474467512970875477762186589215993340586214103947890490748098556671592755141287618141736902891507342964699345537921577012442905420402845032082128661961299639501079775840024524500432773682472604758255207270068662147192369413256030966855635033835413612596582111771145713207405771011400594478961645770859883404461832851407145188112126432186897843600456482839137660439514393482724869909249789636751793376677844361999854349944426038017578664209372934813913129239692660349224955545692777009921621122794463197136240086997152568081902710893206469798478796870559578588307017092222940905542556743073313038251865690081098384955570344279733761800466618686668869803803133241087578220689235523617870795520385372829931131813702295555865661970569805856458435000766532143312136720567051125610371969658754808631599052655491800059970479429718014954761881727226903757572319091366223410161995693428641426418755202030223717703898777752815430101503344783070948813785892153422349660802292926094223819019218859912775251537191478506220785137870626492396511393013676789985190840238915796210993237813366141331903170279530550307829628263627779472490478484862448769966329324738983310820049159878088292696534504599452043325907168708176613865416721656878404088121501511743169720902882991998192447605369069438291682262257889900085481480830619816676937766339983907535695169590215054269451451346610350842200401408185290714386954510562009532830465537910783086249566717199562721811112569152004477385811321061435805160356059014017098823709936728185937793685831531704987773605695221757091784895257501408316760743863363373728142736176312901100336893979176805320217854958657587789087665355671246793309938252111881499390989838501332602359948021140364223132492799589810613087857388410614982230966133302362504932248778872815109118869675676797442439646485339052592995656480358004488513036955055905500400402005097522387989757775596241335473450334937090918601617315523161123034239890434730856086640880598060865875115812222127109890010534218206664523312238374676828866349426925364761742335730788306781178595601938056322209283352775185869850476601493342065158589403727094645854476957631546522065188954992087208116374246638437816220157409392251728196768437312578068328239017766294305009845636046963542122727811811711003834543931772116479677792081366462556561922316367832652055094986367756561320678084939798830605810163875381680097696692008936753088496426814668755537347436591283500554827741037610196443618955261106470979966565142054787408040642483231606675602418864489632193359874957560169054717580222347024130317525162303214236974269706804678389306633898478496730136531891560200601094970876565637297819552420111314922172248414613770807101389849025914886204949095518940151389235396788818201896582737274320603043882084681323946986481358731068909562872175678570181099533423085185342247937089406041007061845130330955815781970220463434004489411415671743023505977526499818780367433758072513645848696148314647026318776567650049665909066688080843162879646617864703373682516664577668375766847824596621361413801982913658281722282086882037206833423398629042188052419216490306699861983834439362292961273799335196324254005237417647094543247506507079934425413864959711918080209832854795633917217835225634949320951193905112110542096509489842567383721924678046797501950777393385215683298675714693638591171567368112230209124643742899961483158002654454856740549062010238146058854978676351153927847115008560002218238063227309884958883500653970535510696780056784914847062395513723996194582546650515182373540577116215124787319427610649727514510130029394167457146103408945018210984297832834421317637902279809989136498867633572130303725488338444768771162918924795201069797914750127607941842273588432007199767516778813027443662405591382088217683820314660874524722283430464387136449696220309610973188124443206610568679387688876284606582213677224752060294166966128844627966517696697767768914486276443723438289173482097202279854690048274848662699029768281396857243011217877524065327479621012784709216631668515308813156677462618494082526536380928029014217043715876797912566444811915671181416490982934600072445053061330080784589713747126826461685248294068003781785853219493252341644023862829472536243191522149844015537681607251511361360745582177624687817983351020922493133393165005819995235882869154541328669632911524294904354762206033722286473989331912774949674390235533974748103903759597331509208151317337981211069077619048414128972078806729721686454767521324403339999809135245131617360022727171641313787523727344006353672583617229966520662380595596509328351786505207789294916970621665521103639758227775529777451555421219269225780764428544063667723961075341656444721924235536530663764702402510474839016819011341723094148884278555686961589215993549799826036109327572558774589972097853424617745271799898136075144301251390121269587712515938464542918272034026002367297565572902337763442310715549437774541310767929508741160080649509086836602514746788125333999255966336369174252299663430815965222627032809349933763967682172366472013457534676611125149235716911484356170230744969473456394847513333415334489549572410639162193106268350675891214073649432711216358615526165073712575684363601953752051323716370820953069543191647661535025221342742651963939533828086002741311766842983539575955905107111451504119044835295433810696003075753285640223261603596829324500081004739969826858645834832202792406413328734836931961919885043767631711052563352381707610405676685109996745212359157778713194607668468293847741768628627007134692096622615829648027625057845302626366054725051009503280065654801711449243635407314165926053827810036668087603962199765737063914494411333781192665430901037797202438547617550850222009979894724357142945063889135564788719133137286624749574632496055809194011726251862284672374636851604561172774513551514394910881118277755056216516553694692201710760143800102286288680107182259227078775836217658385003965129054045743016307033458831473776600494770831926944111241539713105367792101176717601124003826440248162644168579588955961721685249492979447210238677972688451707742738894182983366483705771287517172899922054913824523141952731924848601140699584079506765038834255984156918730541342168041033405002089066759018119626058314608921060184240976335148182908464104463723449166414982929887662364558429080165410540652287098029846283475822339927224646379131566529315660522546270716725203371889069922216556344125769024600694490809410692915596057593239351438183798152730845600847323059548484941523368759399136899961749033546344214998820128266750289853106481465127221150233408169790719524070951376105687444716997561168231874073516546841451535485281748342284605988378909760751047849655674576128816370741546298385793599808657681853426431113780636376973308729350533606704879412354702128499050220972790292869940839580644476145849488510973457157956382136992980942097056974626943841361079901518459178025278281466428884898395139416126953743482647949175019939593445900917477362940139240755110358007668302189795408153553658988659222788956693378617057632863303276993788830459409891378310141535104792472977968766457093656274933392855069816018969186125933054149872665667304074639213754462634346136561348564582550116991672434302043231109176432592155537511199980542390984009060628135990664503726360560271195173058171795820928397356335910567664017171879050561386600954102477695867867539798349927324502600288060023186496676751865778777553067051664371495999181398047817218726026649539310691634771730181224084397493036097881283497862458432591968736089233841090702434988576931711800991079947144225436585664364165129911268849820687437373744237229870681878771722242089562089743336191997122611301757868883663182217929376046700613754788385816628728731862751251086282449757260679412652027509843182240672030099371708103566644694289984514675706801212899643089578021523493706208831183924030791108800255641233256535394934509507661534601221949444399860505111729755626572004528952361183128312470089921909805192703138172024695187480838385253763525486562496363832691730850321040761839182960153717689208372087260365617950770140406057746568761651625409329453500653454517871164111128973253342281359039093857143397518266847305284334591763937089174695557427205277702165319431899112489940065811937889670991838141221276733775242099077544298520308706338806362507531051370145307465447094414885567708934945319571715937533829001208310847185349165946634398094055321451326700054994472253662556093316250909527528072596476012947730264048192607313958403892954094251591861169406753717440125232306389228806534207215354940474869588868254833947197534578458476988409365134312569245940594908207269080822662563549888546452284876641876010378034845612406525461440569261447055022964027584752612347457327695930102241365201098576373284946362782508734224453587453596638281643172557904994729396452655505321005737467987156237042460164495948253737631014347203482020943935461499944881638564766465737001995826864304192266854120544408591595656967034937306310414409062582220756219977676208579403727107654132504178215786783801915346991256288699384901231034613117763584449945846085000233726045063593908794452845434231941836251549036192827402004540653179644838742666287187811023086995648404433899125144560075510752684297177596061932682279307083881387838283299082118908035464449015432703504500846347843989915978744616168479028609258524359476915295120263835495285565264403446626226958805680323268445355935921409566146666019160392406669188434083981769636483184592063684198063290751070517017844563364072457628419176326019476836858371349775254438805199910781932561004290292754592216404333343679716331344913939271930862408373834565158022415157661673888624585077588871059827048959737425094793938762021900252009864052603872581470087075572076668224527354759785017696463106920292730906158459226466795075162192112467903815209363833439095247799408038955945502058319013219503225907952462020899348452065650258738485283043628621503409849542552753113031588765623888873519348599402883478659326891903972297276976255679120161161252911172627669871317524536311305309578539292699770240883826146717217103322942045091924970353603334827641308950305745961362294620182618706581841923151667371566230949665380746205438057071531590398492179720982577616600210034437303407618565140925627237832937619781667169231329574457028400934109992521825087706213778531938434721576552373042739934922959036590393591808004199546106552040628134829205621775679063276499979878450843451561735129238570351759373810963265034455115170650251300731068870757017064549579724069966273283974740150989414770167411641578338096644523300710789945582528244987763081903688321306305006699398129215357262417720579263047718202116299214450656372763870347170083366299975235490873916164490536755151103350406082429852475960184468522456777593428982308914362855917671709247810020539249113163446583768562777824020986996984729080967935305010004185620707622158248563961076666580536336095552186046205198368476256080825230757065547010541749081376304441517368899215578404380782339369504081753730577929208148667828784194985074312335960169119954675068124511416233619467796886201124013344350547655796863814093990317370921059599835793864152909067175571936755544633876042800069929461202244555694373593111976353183325375970989550635405506406289067450947464341840516776707249876832366581500639037184954314512062935915348694075114705963596025007942185412419991706858593922483147382875384721135105000452422510048510294788104790648645750373685972614702647233741008388494737075549054503336144350569406599603967527537813909001149777916756926147351692731530498986997546818874925309102056908759154913523663870559999717042629637970237390958462844804637549355994414567200796901979492650875447113245009846449332648302926721503796220797441588070182405623765652839092323697867068828464954004725330810724475324267198668182499151438546552226130179357118430903013647155568833986370530264745662269443761793725488054634299123313518075949170748143831048764217282681177203271695237507913731606909762267151840831732021511957324835871749737551349023987468902435808518387219756875354085692232584490748103532027174402386985341361691866427495400014863728945964998063408361936126566481604387727614226371093673684253561975513619110099957454338686643785926542378355979466802838731395318260800299601134606763580853700858006695166011773808455927316332868935635334989724692459271091342164911225832895030872754882016745678886141428364953028047108062764092921426504682941303242485422703233222224673350465313779964043907407354112346900004021170773363162523323311427565614795874651576044589292199120403707684253926585326036212182093703411517536598002923702094225342633801539974387472828519627644221097460074469709069412082243849929948017481050466274100775149338619542649902463340993469467324396314575965902717195624078656355898619546301647515086002494512313596984512424012454213805529554633865210577040028987727606407431669815487291098468181676447595165892261843158990399761798440705102529524880247652018835347778503906749642883261776914861379807102407861566355976944113614733740995928319210492631261120708067152091218283448081300176145097629117192109726367501917411366834044124345360368489931331915324951596943192191053045899017168161487095881612937755263081384357821635868375586799939198648836577653706824818941068391223945079375897289065930013791522743489347558308833147386847238813599888737322190256366603830030610241357686287934921811960238745915219765623880976822856271548940030614151313963156241010795298787094628274651127646809623232638767423534920348110621072795512085094304513130104053645651641215039783464210499728826195582875533822964907223230869869016922448345899742319724896259870901718445792252696917685319032549301771807572590842243138093482305939474314890496129037597062443031532880452804074895418778599683392924109578942806586012372504177628112170653204702755512570502919487410333693065016943638169192383439006518579968333180417691547883471109370224673909636516451158418460707339785236183753979084057495089858433432465403114043416574303862408631981407016238379469951050759317150165497725490348697793734911771733884848595346296673886063139681852034813643168040709268160912766697321107438182048559660862992773974404086143981938726095176047536055654768213595939272685343700846670501140698382907058049888842670419995383369880075033881707254127555742206259472141113628082027106050157421662522269699619161506542842413030525622353611749448690102094771743954040678521567987363603321222791075668393319814344066153481464245118879622644294859592057879268368074476105384229685502548359101679739053192417510538567159752328707841497932181851753291765473362588315504449374911739332123703698210158925300827778226508664861362047314266299299226868202305723859557351781772578930529574918031189930371399183917559631731184096467981925206544528943137012635226048067787749430630369876441458269791611697939512526621328549639083274670504569108691594888988010575323409740418725706388611986286814249334237584933864859074679433183191179091289417930050059807450885461281503732819356341052920026016401743489455513530801328919843250447704779943022032235663525998226574527483621011352300144220121293136325011477776832951851795596906500560060832286443242226597973257554274379073684072450303019410175029697516598074915006530009697034874651607907215717958405482233209731925712796748871409870213511941364845011259042854673291661559978319056716049491293812136537889598110011888998401164905092776839842789490390694926021413894563063823727470806222045464852023116699081958382457444715614662547006718736303190832540933353978559176630155798807896409226548733535638848589667369320011664877811129538389005488804871731822072543614925887328816863991598596929662068445941464582404722424503702714834400513147761499591474938310322516374418056598715979252596123208436993767257443440168136586276638559129948652356176408541252440776411438752288936553861411208344258143402926915253350686616776348289739699468673850854830443217932441811971924450334490590888045990738700052637879458741764442123707294445311460353762993166171701047510310323433293889498515853779807545774817604127633638379714022906018695995577257590689609396053392177908997161375640031611081266948281946425841955349435609439752062786575628870698699862137949241783024257378758603523009131847439636212804570243084679965167520209426909968584548833741850772731291984472774585847457595116586868269114151972614846645476133631500106495434215465841009745015265077016276562903181999218024071490268033947440037060605314499458433625646602268731683301455007565877164556292379028925361462745393603815825324818986151624473850918203657277191700737198038860475608639559824990773596561856575859584804548969966755812580226463119256553054879095715948794493338447803057926097634539883083374882323622519602918321498288536066089547370111103057863117611939687683943983626466086293298001754856313043607411022115628714929480470697204792948176449041595476996063776300454016517879900881985275069774153757309263106386830943926201641131712583801197478171948545353246861297832206075361348196052121850651125322597220470841062387558403826845494346049748795395127145154577523295846353630196897622143033987021363625098519602744021815813785694318452118577990101714256787392022835906545640274041453046437882386185842859792967573835641307696437472911637760349717731705074441860763430698658133058908181236826414792059065595232933995016191424725917122577275125334691119134830262506682913570913914139004468488208453382613944470111522015511978398568012028899042476150159742374734300220515731414397307487927719956145947022814014088689180355549898713877161411942480867701891213917749124672034773976807599871849151797329801455474225419308034203183315516830677219404636820465136337159842410807410198774462315646487464941894048877020836127701662193770642865704842119506217282514111457090424616800353547349617683306919470272099739565727646323683118781045855900086367331596891189949297172801687765638060001964970668540376700239310304609548120423499211349925011941677121637322172794018873142360534816849713484094964419812326749355864274306019358407942326489965191311579754572570797588691758052769357378341546611386320982072551260351959997671435387369284249416932566730007534805704386385641752972560186435835432011332595468345661816992489997467037899867393428485631320659790784156144884268954770183282305236426858543707991813062811122843646647870986270064486064087260372075431541000544639359919537166656112505695775414470022068850593317261355867082520275789856753114526673953792184946703971494291662108788157374568195807616614035209879647773063523530917695262549482758855484147383141235923448346457500878820240002193757971664342681051871071405097596355493177487691280976132321690061160791674083456689212091431003155833234902972794437763033100234792060362700850966101770631895834125562447233557823564846979676735237841974661418675922682573055291967548387521064661624960803991703493126340153834537621857121089810985339566829868204963044700370260431452107247921565598750342241038204892624648806221063895852366428626710131025541340963691217678043611155508049644249514422100244859813770823853229480086853472681359433813054265670310087342526000832354605477249077267935846624801985846907278567669461117055651988508809815363080463220581006067737835936133897168696189760333873699813452376377983743661927007879261002740282720995110960061007940187838731525037142393709667628320500455439257677109432971935491946671670757181532499049118913164396509543481089410134160943116932660292164511511036874489030258423913677201420678774574200340221053795659827410154621605872177085790543711146576853608794058846819566291861014410992981251287370364862040359343236213220354671679226808844815089233656901822671985741959273383481403879810728019751744738769423256452076674685979995758553243019006815309117772005754722401458110174792041710282200621847286489755688962144319105823585525978868753288389817285086801960057022144044488709902949717464427520249713136319519758801065321220858641340661153129127721913265860402366523945052086078480483983880858571266724990636453999245356381152050042083980795634460192491026819656740171501469732385017180985708597250558210244252624851426036970205345218543850273202916319599824590686891520284285529510759869582933539413347554419513445384602417808557335271776013037467000062343546465888609520777274059219974997317292398550188980836269977888792904304281763624285533153672096772898585126842336706975353012136111976682854546075610005706758552061705078986728053874248781710889110022362376176513894231178807169962599965355280965278433456349746995835355346027383468101479180464135474284146882730879253869821257082805495495993714475825099973466333291448384203378782702605732346586752569028267503634308387995964444553368072599233307975972139501075270373773686981392549134482143752243873901539113806388331505895628198760063375183932600009669291247988590462176293444437641565289342985300607139505307535608005991922331851653799969415064982114068864544414172779650179223631118449571815574060659211297355647830512490863187456827622212986730481223561730162901659731202301080442657499137868743071463165999356455883922975120238792503368648828439557717373286662368062692915124006361779104995116113267178293599998335058436134676210961650064239571050091980506876556467130147510737042709912540746545938182941611561650971158991389695050415694915329246639392368617577630316062210085680048765061498859981415724648228513970120731190890769939691311577677507256471993148323304701959289696807494556494108376690006488940304278307848281443211603307221100154879943594397891647114171066011076615463518545738146030095462986804561483439679818626506514096957294941873333996293421475033461314114777513088903746189436879605828795529553645083470237032512799894805349362576883429463937892400061147456934090805594689170781602990632072003927536521200928101043458378087142653325829027320655185615689421996345392894479129901385505017906262527629874118689429369443181313091580391195137329227997343890004360643983904567565280464545603812024933375474800649054607261037071954990491494159782566690435073950434465606390063601892711457730029198268345775248412410923731573671969933258707473744482924314894882118767380832415633806047891745253157238304947408875653919496988851884806187860447949960615269599098811387701346095297478692703962969878771955449923477042105616487493734984120310857232024700025588142686044274122428638572068234820408269569430460117776700439755024794203626093894288577003142537036484981851723436939078713033483373494710632358508840992614292582611598362549852998103042165715602150203746413585925107782263860581227122472427523906153863457181204246111256242524901876980172158869670222604625870226384168161682841723545786957325495384095569200619818179506441999099681433899010207070348556077718224300963173167719476847992468862222534702808298049687622607446308671067848061308434198451613467992180427161627219603203402724494475345601635971037715105533974345512109971681996123420303220065311175643835978995706365112205035210856821668649023328797116182461684394139104334897287754678641254354522691257782176633307577751069397187391400759929768480606062308848628883167407641416618386799536764567204103846927372920200899122687670200725699988594779313545190377288275598220667217901245019956175527868301524559647875941112370201951408662177576318171505733755512706734593746509448770161590856115820401578888744129707280948518013256598505913133774720758427157212018205217721638913476786209748648962834847529692023822532940569082167795938558653536927319016767553387839754931433097894722469588068976631014215873529654152376507634648039396271196799070525334649813478594003016966046903342077672306548299237315598917504021643935928693469104324434805251464947768385405717078099510682771560195753819871116812860760614414525229130970477406453878252169600715267040170649868230290968799707214650885656701090644635275615052981094495171467782017960447809422583560100352409572091707367686685479685148610170729719849336006224322770133739788707751634331023670173222619139176176084392286182824804861326703322643391935263866764433124510600664153099534948598646780036726000756540021913205676013149096812937430699499730976721188252362905057954538966240236503399650147770287092506824120243216991144239312906560625539040887563506002333764061708268642516735005725657476290433506200871551847987240079871932072163430425403722255012258599588402222120682558508180571760686377505123041863281084813013082287340837258080577243303907862264949269222361297239821885069002432744603769538952196299084985342132001724539860661702860848635959453409064869700350053940685053774267992659436734805179211286282055103281883385480747590090555994669752827244610797187078803764839206524834327716964128913874786487804064487417872410197628388334275465002605378701407636785217642573585557367452648151256860772258970994174355333481062374088118907191125303263396792503013068639428828311258717718357976328434670450391820037853507286044937778435641946710459153502692738330834667939677966186233320147859924847495054795955387519645506897815158164407502336575156756769314639824489326275545777234575693305817874493094987704972602116275379321233118438134492096181284418593415412423792778264419009291142236962896628728803934168675431680985438503530034262233539262872679178077179118995873127504646417701653207520885106122200543296574555734567426477618443284032554296645602870990490698196722034660148798919076960722361505273444479541341906432361703030116913026632772643660078099880146077424666245964151617443900342536263805228870017373121491758927851499740808834694656928273360471081659914404949143530259555626850866924737464263282679812669698267692504125417352433637472644979119627180225334820608765147841581216802725507669724848197558067905999100189448139687065230982973289085903369995096251211899967831961161993638988082721940024280889478610521601536161745184599948660763388851807612753913926600106195382922141275227567879400966001935874284439710549897544762062525538426784689731376885769026111663807052402827236223883170468568409485990406321838369098547018709006698343967278464950300065749946425108017789337605551535346396470674905278057823470112458211794004440396531549044649049121920903752469600343167362805144990062084845312941786272644835816078671164338021807187395506974333952549589709742171246287981221087365411087452337087595322673026304712923472701082658507132279040350565982746442895988752176475863648093534179125077478484930511841484280117890106125058818879796378754942262910243312386062658369931065284020813634165155194340594930584668550778074966685977303087050362578399076492120033944299512529064334629585512038288336873444790768261086853606860392225107093575814068304743800383610693084625882074378994713121926652141806268065859959182966167810008635656253571772824822034738534242255716663049790752449670529090807121003923963482796491164270728540537733354886487673877886129739782644796920611604508522997573349366329769764205673793488237650190175777017598858784940027489146365497324739366646606093165433433263484232036491549529236839256699291738630206230650075719774369497886744681525696573464963320316535670150770703780079654472213744862149204849143703685523872542759819277638135473119435055502785467441562710540132920081236854316544827470446406240003263293083421783816615304532036650818481134343965336102866276989006206308385392263293308530268183776819082541677614727103406686992558697399749289662440895654312889755042969591973040202284374557309087080637997084729893639607588187231621072278628116912627280450501944967180542506459926292581383382865713165725459121881769568384560479684834169833389884303697115181273053239184064915595782781314208448740193637762612353709336817079845434919398519969515176920776232600560217174068973958405152551871280111772275963365513543668753608196554359021741386119842420257942268033947000164332974504079776559665598346607477641323940307273375458098076116414247596727693056031419311166833239874811328162554826613151360537562625085098334167494046292616803040361955509722043098129030807427229256913998516383700886390443156228386424673178861970906281686677456716122284425175254732180607819272367018698340580519254403094944247571506751225351310820898974042310400049302409349751602602917127800600290283360033336670092185423347050186854088923137239358912125284430789586768113270809023227396290502725953031297137072843530996698398334491622246996845504242839975256407204526951041218565967020737951473865074940273234454250132847963643984407671546355658783923873305928089504675087498946529054188827261769912391271051780471432957681438135292904457119985853185151371620975017033704976411103438689570525931551493570907209736646898089751183806673835769766941138111379405331532141065294869787045919968302013816788646878577832458839070495192309109205355793000411491033035117520076912134706189339470776601244571925435595543767328235566575096617957120041701624197657031175542242974612810289584769928308565445658706989917828410513984480284203284583553902939502271317623399570777852283917693417902245142201104722068165665456286855710884091968789703671708126623047241657380970042698615738322908784209934349970946457263952861522168036708539596966864456385545555502347659843017088932371478567842947711313739949726924085007584662912491683801894681910258494825161987540563649908889240303702537308594266017596461055138722410936148008825845443436787038965922212268447400035602539474538162743547846087329787167112576305251197111093474034906419560072751976424144200492344127152460371712113696766938760000101191978709924299496187876399717529197347696043369609629919043176884185125384999176226776411763781687309164077461984119939532942811940124946524239017563193489040859550823910942076160630613554229164802345826035692592412900561054696845395184488443727231400298305655580805552905233062956445119941562125946278165747951548797594705757714666014861237893372587512712208342897393664477254983289111313968404325965347035948316898223672325916983078548131486076644489882111976807002404862541057134890719821878415368091888440856822718943367885251460160629815759921651484627689287710066891220970720241753017862508623327110115013795462583893672257925338471550001063696495034316403668413137713303846079005545787045854853990098256597729462000670985127624308403571693006251802404459368907713680372446812187019015122719735524201819895822535496900048859632171242160498858589135772793773943759920542746312846412518569559738481479162527554073400168434399428256178336493771342682852988156826700776162599007430587894014534508072763431868011906041706741779851753433472462235478888690166668004423160905874114375850452280735665070197538849983838497668594467142089006188666034480396974678148869162449310063594296165793567617882774582583318018612678423289766459630614327039951854122291251093872451020132331085631717007888881463317973873818739380718517821399159292129521337485465816825500235645238562487252480444749113120656379160926767875001134262107077688424360822177189149563311714516939334315896013324921075077356575834198399365103953066108102734959999462188635423930602896284878602397319152598371038845287860838017176876828820867489554930462822241045402691990809461842806180238530199130487283807013811780140549678096782196105765213116068093296079298933445094502200842740018444781908242615272892359958806340265127570219500862341853535870375619980824401151214627635266084952656513886887783143815251669694817122900963860865121701865072967534384311315940845344013465156490933303635317033984535991888407557028092215621670832341486995249042633186141440386229924085499771210207274291454747523519468592756162758799254487724891912791224640904285670276939426023584464954909153195489736250817305678085589171959986489819948444174546987792125778960776025607674863460351716666313500833744120335033703398769231152820055177699115206360268808391742507973351579357572192635183951289964791057070398644716761442075665126241556948813928397765964110133030298059995144184060648333860421232378208179094452479364455220017091897627018359635195465424735637116938053389171293257208175588517861332678589589764787284399049894398646399257604165806945327633871215082192859934300266747517548315718709649767271199013502636435909026872020328666339172297618931889585507213396000335072500453521946424473272454457381408368365880255792669404214119966763556503767282480618796022457802745606114860056613174131992474767978891398112508573957943654348766340728922856804477887157464987114880003531785437395465171785812882593582542781998459539958294875781450324884447197053758711859250592123897079037381815673632526315173047843881937521428890949240496393060579864430162212362864211857046066819023075491884277091620564873944946107548895632358308687940366225477045311426106204101311444760980473445396062781758848259055133380663519931527101146040855729072317473580741727449966508240222997392178998442284003943974038899001683443093881299849686086598198061110860127288836665218527023794694150630021889129990235330361517881630600924115797212141033042442417080036568076883822541614506435591915532279059885847170419975109017655863085038509761394222130184830525795416092028979355094953021918300607700997504889289015248165710918591160125793632920368892661230562981902558199844423871653491451518070642649539802068768457434505618469763275524831221304144488414829668242985203226008842189409927760918739933649454337209701712646542839521534319953975381040099466839041407292179851280536871070938401390731602290642759899350333995975314629393578742126149529084407097016435347573798009184252464384613973623883465650394772694912512303285954836283666264975958222581882442534207915883700007380075730332466362064421236449928115635788815899936380260288298680643271599896531474674072782501537871971544185770105226882372507583487066275553064097760750851099835468188833736564136088125869317748181615236083773534092477453637401562456654343654564638943613546773405062919084865716200253212707507414708368441764719202189459499783785765992247791442436795951515591523475081340367414601890055647589700446884717607575299868920065193802528245968293261055165351518279809701806859809125651503744563133257309181414520870865243634867254236482691275712310640329843516956390750667507202239382162631478180426830867059896239616666746782111182286401922934549221130902792486903288306593768398066452828710217777980892059975015571427167308731161184016465883901605303845210007757541156623438097657651547006900196497463317583066654347998137554713042387504575420755727490907387316031145434248348217254857550362033563696308948071158020719957472443615267459374146556161644861902986951234401389976703711965713732373543887490019239741226736743698293541448378715442672619744223365725159806123087986032738983703961302329586081355890674033995591412931928689747501847408058151931711291744812429400525066889519459069129086603115389426344651154880969389578627116267599067411503894453595371067781533352824716158811684657960045555870379938119379892522281266539627350682407654691903910975789149660133898436582727187688987480267542969339718900923976808345257082668906861079338933339356064262192356910678414942577045830898567517657170417696563801811374210378359763804315213747220969395284342330906181422899245409968972904600794363668479643674508763740046714699854763946757115799969022260420546485145167430187399375761124990932759924976006699521879145407556337779264955593622846197786571842361923111189140436497351734204740007410031205440980282095271524623681196708179723061073783543554704349003820818037225647336918441099523266141315521826535360116199576719260400431552597905584502549954248379904583429886251345937614065819368817549061234198324040350930087090154832808451479709286759666693507434501103837226858949438264904534424315835712185806307953627594016471821781498752332698319846016626910468374739907545362890461630895818404636071676119016892435795215321855461613841601965294209326511821175626763197600755816748438981179624914520887991190056893685512026559090601865870203072030300340722911112888914334319099493480428677748945293694205098196010706356243088794076291112459043711898394691208460822679648742641202004282447120715823602260011333985112495466779618217111489737467868149830889160132116084873862555767561199555592709654207396174644405454144322620204197556932422404699672106140940258998399720612218428816609430863306072504987008973805287478734814231655172300213988550783259586185478058448932449931824424325182963393810592294600519752756833898544210842207134103388624244844880182176860888046089321200943429867942514758889487431207273531869176570022213545759517707905083427087930119033404770552085917764308546825098154227400173869087025839558787134014220950673683940282081643332596786143439232531777190340477940857689154501508951352624603355710927047396014078122604588878296306310538337501195167058494983377793436124474504351506266029060613840870283032260220509773309379846206750108007359774804027521399208403479850859741867171209168068697871035833382833212325603980211328307331926462867586171933371649506017143517353736947954680261912291196723118507326505352343909503605245300407892847371040188480644443426103144493526673041457061658143315008745709867390056449577186259744327542359739132655246132522979820205730643153300953036408943808523887290560764811066540891627475021278381492754741239050044031309130002465164808541921174066388594284032107698052774035774243504775398248493784918484412763048713223862370676219641185718564718811963699157743010800978235171566509281131871563173890786024627624259616290313157025591735546023381350027316868648986566459830782146188729685363141770225510300288463414384935840973127842138811416539526876610117296215906484961061997866339677034676671846152215959528661793317008166500584916530927054339669112059762843211139638147097934062094181837841232325331277482209168649661737066209625152045857258633786618931590646249296734978175143345912277066273188764803434873935285761555579313608124867572449770687963563035914085509051664438209937121382510868115529582011286349010375005743208292423542679999312858085169360950013189731090041479846160420413394229942848713030786801191576571116168517942335535469766399416142429848518458137527111366642953430329595750887350666318269646350738269079278318319234761025329011383150490158499222871823653766810441239635562631268421979283585482168550075387573530298440497968143332837381228675138844722554643038943247871923197991958597934147807497248391598390545694394052350869071182057682966284279068334696292322877136804960926620535623780245164198184229392785095129088157098354419134489377192533457846860969447793207144637455811264770356538171868849573199668852441904680208703822410701618038420642525840994007223961977508671181479887543958767075731156588424424896555701608916977718063766002742124073442441478767242793962217167212896037546822417697632288972998244803878917386503992206608403072198815897860409968262546247003593073564912911054759320598746052236452636166701238316608134769486393459283339284299712070996130979203830830329073970322108039580457828991170922240227517208771715885506410299427900951908736225832842044913586243453699629207845067397318111102361427027094283132448848659108327589151703058891053261939300462806621452254765796953671589004076868078891232324128893859465721010683370389520427282347399932556674793433515520123084528122912002458751811637551212566055660006275899844006152512805539243500100468896166013747475741400634283715147266134065467928939282449398715761114272823122477844865441672597750481542447994436044095514718122576970069107245380905296258819809437155355449746815405415171279200488475470342161457629174735163618754191097023410881942345538932732598836444222278181456924755895486621500471630739507929535211253269852467403998844498686929760490827433413464438233277322995344372423957438386515516620049958529199851836570015605981502670883604709719671627520065057630795919242209199165048995276513188515325650723195603791533679752695829776303359875337464913320541845538386321618241095792373622705657639186859267629618148252384947575870476906529771040877150387402395967779474549228775217680941008899575894611453962494934533244463785208875465168308182081013942686884513380976066037858814419784593666154918259805945542605504701396230188181648350852090573689997354974559708650710447948780429417467521223398956734822474628317035861065776120511513219353073469453273790063523008091710602646864962035255989210504081228786020887324843393342783115791667315534014985265909202564938819465907508602469545388835685204574276985806068732021229172032890754857133255543314771523072788162333863482167666042908332689511692056227524572779162503092567105639314949032266649806128527491058436463167875191446005543603703356089747102079292629754131533859442350295248837855704516804605270554226540194253546758850245496777003376455307859954514269593846231529617041258571456611603732371435001383908466686139548232057238064228632810147133399169825460583230705622042832947928081192502173661807526067588883835046618031883513972497322232106853182595433565226941007604835879382714081739943772198514573300940080352519609847602230939124748716208935708974801249803862559608806445117889884431081904328219859441374259109684697783417763371602289151963334708024092181841345590080890785122687505476139435150028267583993111980408073221882955437984035020341508523902076332466204120878619162761446278338026393100572472241748302141329091862686536949180420971633853875597554473474855951356792432468382228482648109313167268800940805662907141770870707435855225087570373091342194389022109165192423429576609663935508776824181089331894705348529209308289598791748610748437571410909215272010212943519211823164275872141498343302086952039713034560698612979116634033918626686262514167929029465687937327304767365114634954447723304018047238744840572962866758840736218782530814654428340753303192299766664101798871130675789574417151587493178538757498818418369562697380401547259100525089892783180760986322687663030291354670964450803357447353654173066709938322922510437188985090268110311239849436981121477601413440401324597213160225364049562014953651003595031158342171018042163262958045140108276248048654113704384941764323517305075815719311412213894795748076825602137457760189449051503039060201367297140690399629712494911367954179686971732100379355781486798730762989576237410036641317533506201847307714389994327582414591211016397079677966475419582967081777448189221057826035438847175430806623404745021698973649548341691411987302011399944122604210980414320897629840319232532096971671819504094261497437046193504035216801334926376900241179241298006559642600851348361714076341397330734127152706185857933805431910634997863927962247616665536969017157893352076878890041891427553595628059674502564409829203290757143012127426078422674352677311871187712607188409274177213837398235864322276346438650076606986085427345471256032575864317931015528825518552289838475094008484757771993823631976076040317496031483901356193953784025634976979920337204622068847884769277926819947415628233750943278691708528377780316706825347714510717637268698009558695069456711523790032867928776046893891467733928181161953355896481118277020440441739055917517072155600302327273367273723860244979869437462110805802564113457791703924149891846596600346185338147213266755016919853688642357805645353490331349983497811539486386616107492492376716571411280357184228238323467929830488389354759454983886068026518424930183409180520642243188911076548389717927113048627438863690551613597678604667745101704395348095612288042933328845606778122705466570712274586978165867219520934353100694444120377010196552565865243938103537447039024424988485458797822885530305760049144906239364830625497909939371360196808295684133109103153461775497074514766024522820933803305341115598545834535620188650337606045396843301907715423431090874678445475310824682212575940259983125250894971513477627595036629394984227583753907262377978057708905567578435502276142610569393104237079342446671912405581270478956052907344875189054594214518696279894361938551478843576204058854493940298269498838341009976923616111109498845164308602268190754422113952523315617333816245708268863719382420432310766182611714995546558508240684092493359565938516874870167794877276973432073962485700263201702725645114416478440200124089608451119209777414023551774295167926514179528559017645864372681965895985129904369521219388842455775295164187566527999209758170182229719961840022759991936196865250300665968422167914792545515848454608418392166823070067138273993047656125504793363659578901643682855608664843540693109388286925665509946749694528118885157614325631116016033803156166523834083722280407026089554465214144682525362660725205541288869631515438827576825419731582884951605892318916050929728656421647538815774850492007969227439825414888593161927989926453341605638749112031854728480126463916335255892423333913638983248702705539244136343950765154489954692079224170943553934888743313352442419781623991077261532300742760174898194563330354299897672522534726806521244075313255646164319657783267698558462307577916027276341399624591857908825225239321058819722842308957083703055571518465639190934451659165782311026687972523516322293745786651529606968262609282848170776709524547528295021021155977776882935224344047844652606557657021562414835299275448740913131361718790877061657803866235282240823431679999601271021175367887985758440596700234968017814618079225177009237559385927602404313172727028899331237730926555231323473517678816466348839587974950739299186478068746357858512377116931333816804396090616303573774617508301443902398570500072346689438850373156270398329978136507034812192423258079602806227760100176740103412796416966117831720128007691175807087349519615388540686648560836881181354029015123156423221588695538481247307672044435208624033338831111029050957284809564637234949830450668065879656585826148766082586688724047577853485986433409013336200599789861726896726223210126399568706925444577596438280840869903595667360612070849712496726537460910404288480331903363555566694782840649780190376998994416378560181287977078277057926617270513340301419581012843096965004481984401118069799687531218198776640874872343785369823738482707955677815241931144184388126027452902068923050286096666567115698249903009922811464131112331095541979624693391666272129611080001665937307579726790049272047274414094018575135732312599891928390679788406368983271580868088703891676665962133058058098205371710550274120690611601320944024787385248568583462115826215752080183742787649564403010488292719574376893067629651332784081023369891658507583111027357395592185775796193599445054609812574708561278221572568895732392298732441687237339601562923814001896585738582051068076696532795272381661387129440480067016029412120902355540312781168316073217336463561057845549348016568187736054467004674240158234066333318289680057668997588463790312394080061161952907674177772318090411599646600892999956558821510863949150397782137449125651280404632451384342886177069226026671245721940278840296882429685787827346494668314823619195846424832408516051303773370226306961406594568982500159995808245353694815280084356206449382669285992825787550803321737788140733566083742855465911910709169686727769237268617689550513231116419809889145740616937926527051499615949234389144662960850379552533340394689535038607215665384046841482033746800765005522642371454625197919699692216949862441508404352641812368340454027622508702252250334955925661175853559975070407064551977344990712893032948842023605305760854908888909057926027813541608315538197735753399716369448565787249277123735058626299436225653032570255226534829262306022949161569258788451529556773939737751320317372832593913017913782743229058382631161605290085076971112091325499476512885524301782870782181928533527105270990979337111663247303505940749961266136274271713766098193897428704090845382487521143826048268751286101299211620603497123292789758386193932798192624403844392602700248536473848021738618063588508671823869967462580282000874510278134203016893361447284883899021655012960282845057213242698497415431072535964202793154545765223110183297802130853853885845009994216558619341371829163800526566018236938890723377623682041024086740246331912900510743497844509903186418533461273350718155106740135786793629790724970651597727899183094269174609471745974337401937759114690783927717702864767581358318934860507512951234939263240589539429067492364700772509578019180748222868611397490001160630174619906555933417269373962995388083720106504183404175689352273305343476860018151922654604885737653454500604853457093218554550628376152549765191106849259471052171420515222080386407144463326398360582891620749781572103449398657639651352611410662884785472495881407736124148584625191697684813443714282171186957864854763756788424061562307073906030674504973017643300920131626698405335548678151867119419718512896761799083283439572316937007265073001151358551871994485611542354621656768298299021358183513641453088770307547033899185654791665747578213259394621729237867835990597413726086475279859580684512709021760575977209789842140128137008594118827809820146905268928328193551831286765290205034656750847977886966743099534026785669364275676676572760524553846196510839369060467073652837595481099942837094825014233111727941217736255651709632157038875986219897313592983068062571764745061446686776710303841017334860773387591854504126883557332429197162326347397770998272489868653807827632217858089857501532821518586020493770030280570024655056328843946304183254675800033621627069047492146130499014615506584915242714492145678271543936956359206152218197267031492524127939022878934372814702922800943637485779807758011708826705397444392838681800295919828376458058858942537204849916528374036800596807141518947209145904114273052184954321752382721423040325343747718230303810944579692250661432693569401700524416952079075194097749581569408638111329893283607287311012916313200280897690841997230445253686431564954690147454078052892570366899324833358211836527765334093062387940899549125484581463593048574757707827499416264170215807021553176587136835011881194012101519002077071994021404176411439148401312992612855127232536870834731122738500297681864539137985593933640803167668996760418022056568210774419888445689715639328759735794417196706815205635814869691794482901525853493214730019413853064525917205351636438638409320153386126261186467982385662347807873549262389645122119344353208634298492972376653690050737917853097168554426344091322384901442840221071142411280929458460341969919960504675739456918471145458004740639656710395175293514699131258346217603555130921474360985195087528603723300226905850422800105484658842965394533706946810627913774459182466571602380181788349577192349982542662019617000750229622138592141562724701162264267065658000487447716597109071311368351477707488424152916745183473129579928981866681626147209446747125559900394614792370716788162234696979299087782091328385196895077043851515135954287201914440520878884529260193263544978286958891448240857471748516790337388466230372620441285281818156684679926388167786918353500108370327907645151908814843490978200305951519580373485798118707881905428944692925487154433384708707177586868251909394617010941456003977894370096216544924429957116650431079305271076643728022452647754200711913288377335041714372504886755400479738162283904462920224810496548421186112143712371877204022578020659650630973850798647316633838277353944969177470301528010506989426325838202263660783100709875734252025457293375945632155146499984128622333127266496255207424590858554719052423861688487487371547820785698338882291198466599736482279197099189840428112107315817402272617898036364740561207924225445696836453280881414999375535360999755774304785597791099439093896551644659976470931589470096771764330689726699728924640962250697305938767759016727496624895472039955717375226569976007854602999087143583775721952561469846413559944959186979630218418034699805570142080995901179363003101981543264157823149780437318955619544952056448428253510157586119257053381845878008413826208375047972618618469425313233445970466685862521382238339476552336172727841465945554083805804203034163369013854040115777494249899726506357605711610762329177957519149659028521002951542093303107381874625086820368735490038038276438211128073028675291759413477512766656913512215158025673206550020997343412997771522082243034925289194081184073758662327701187683354382557794511895920951439040583430852625271041386554072494491322626584308433428055630942438644037010953229494644674352626297251176748872192402612914236647546494491210939055495373559783693114133677764610645163065836635321056014649274488957295461666767634328074859819198897860256565501655502135826228896186676154858348138864826716872534328866238966948719747166485328996399490764254054555840187628628860373336762219831202744765915984610253293524930754051428796630606140123672619872261647446174438809769765518439986701776351740128481718814325375138244936980554397021512718795651001802472307020051124481142662206998958381832826476644429734586365760198974809564252923983951032852694973720926564303640295592862304818972157188765556896323439487846578054182382707433211341274582763842375205210815317325036591655712534616575069296111803289982801302893843413439420066199449595301582628268010868461298727899352821402353325222016707171213559642888947126878690907085063637530877417892934565696895725115416861606992534107672381917174532345203709361261574742654954865551609913713394751606920630253183333593721284438271997228920729263200099183621483299353069430219010441659329017196453684992675208735607482552479703352538164023496173008872038381669971929759803550550144383809598471345107136346131017906120016307376102550993539486699263647932707870192554179437045170942512692703976671225011326454122088455093481266753966835259815155933239301233781365127001921834891333004806517024463628633099477921558617137850870718140963985095533752894318882503438213003482941721564537051932948095473579436839493347697661646799013270049756614597186663659249106774692967899238613448970841771816198856990491228923331734758045994549347271855305804133317111003341169665290335497616133792966353838809940443051950575021222667711150235567843073394648851202620177292265325248041040387687119026344060757527724795432352911150936289692189033838983707594076254678961632652584835643705367669152174701267116331910975909432748884732759563975684149226849475242169836051641182689617052954167750012787779686684787754072093170382287618512929412330418620361937159262530798625547808230359393955889277909517894471738124055134003682539862754814027539119995982505453624386463501305390143478347337887697223416658988961380149434264101457358406965146772840738016324990410880663648735026472162872983139731238004035254949413555929520258182498923514504756256733182182441651068021102733088503155662938077176953451092119473551943028972818407954450859032664211914997738487624973954355590401207217921535667453179955827452342999038286702728281927010131508863557222515030865953779967998873414492322287338438463915342013655420204294155327252147106064141831027665500813569788864513840047754860000985690715412551080975932868991351178084834307819393044788664999955615939715887474056246303851493546467857949222914450072871320920517421362047609338947052221402944109385077233437206937890762031777904540104946569818539413304882634952229585128361988749429568433103573589077170333089829066532544296509990067834313400493025953039170705390384161960997134185985530404134586446887876406931276359333207303213318265456887822573264923367757324639214722506151249438308201621303521839511940159930845576360060285481680031398243821332164760195042917277275979123181868735362410061136098166504453487045746369345080951335585356631510887016977799556653059237087734256642200749332460422311201293793831880164778449196720076283781713482268176608534844045358316801696338776270074034037090174423086456314894588105545313853781162162125383479357056132131185521699010348930706803475973465947880773413802093172697709523012096225552238858049521401693362059886395434937328314071267000380782712413782945145818125849638574534556685273817610136692480456029456845474328341403601423460660047621742690350068308643248505294700371528841144128037654515400349371631583061126145012082111231246630714996787964241906265458304100998596018771228212376918001761289415351463939668804313956173744130821515064986838586732434109113615569615587065494843844382578138816970801663566321002375478247043885809020924897514985277739632633809456730272277138016732899369111921733459784000045744756200502802812882202842909723362188523278080491842150738050872816948240451855797418531339812997733293909649628699606758644853210438653506695455104344393983008575315144480640205232270715155345733902492541158178438944980608428545902777272082618759422160269466190106142534607610871342561188647391087827869970569608228183889800346870623722821450261535776707809026901355352143416258085834047265327014342306259903814110682724140956166170100042479440102439273370395236141616768646362031350742327879337346776389055091261034114255687091237625441215350010924424214473050190971213247562816142600895475223370107189443378781527164173615132556521583187301226876860669550713594110850507357893452072397687135358842214097904240721163359489504567610933663604251952747152587529684513086492836645555763204699382092527440894276949907728093373650627213790786148694835084105943751348151696444289689871716186237177780597082579189230662893492118736326476563991004468060917486827141043993849512512402211620781480571036589638565905180813909353441562154476442441982086112434967482963336250308937226930664078565053779327419948640156246553583464325937838411854633665355507548227548940866305867319036129781530585928504536528130493630813992145195510564342023350467670819841554983837065388206788254035290488184260851092959354763418396191905581926729648535337640923861840753758932393204773962829312004013035399209793414379158218443681404284583439511018552385251600103027012276741779380544184984697767445072101654370831523783633177679894680710768762066048244842666342955243049579129426294725452462022956774340494979846413202485351758118894267334814182138068321076520455692613010190025982237185835478428512631569655780058186655069293390537482026386264271554955200800152280134273123882831276201196999621070980459016104874821559458049741063583701420420316471181617426970897989878295148780636097049872429327684364443783693124872171114230089887069542084266428896143244356250942872345795225352444413570412709688218199450283394709666695946076765215517235610528881886433220795120287411597181474458972008778476107316108155564780482994052663272658041471150052722366141858624631211488266150292843201378265251348268877918870154822352336154789749967465855195362272858421666125363196438589334726207367628122526664087938738158752911001876351887917710824194467923571119482838847260875106675217197732212188740286023390400273557330243617409802101538478014062598666397929957365803347515082105983448977547824472815978259339319539498925064454574109073562702419656119656971834335135861431059888937578013384344335944049667598727541403611145607169079503005448240087420281984576512804428403885399770974486611240285993608705409865538479961754372198479986416286269426806905510058430414166698224735431268234729073750727029782045320547786220197143676758900912666391835639179382136645131365544464491707537018900505076392271573769894363320566521145255600964666786571316971354519885785109387322951888327114564524950796638161557162129617871363923423715091666486319476048864792205000074874916125645964010206413830306393228981124151979311951620848046385426719255154387507605569675865121885908350559627552614175422315997388211905569192322684100323456347804714302396639344214741239007441565695501530580255540333382283707228036956484681729365558663748057915943767210502024457739015156075000124294815852354753649939329869875359510114203355139203657182284244642778048666212369471291766200668326208301974135340575282562486064048309465851619073432838301599385525272569084908236664416579952949471557829736811174350401866328352620543192897651894817131163081701770889130587076085250882675428779177980711557399743369145043752496742033891781794736701036436041362349653897368765167478526514469902656296768053188574864248012557305690153643279007389584766264051098551002955875103033982297498890821366036485398047710186195644905587588797614708183437217748211514198915412019465497810942661067552362915321002998557450796324355892258761732527191206606801991536953212716457225273249429871155118146480385494982490727178290067276847044690282847147684988766106160288896157925612643737718233050057488868669086798667433063413538868679738311223516377929276746757468361597730028832361058255905165019878057808513920712594383671778549704116007700642393216754965197561635035934559946088292817641484045605118437367128195953401971169093739175839929659190014812850387634650787263313822645684302460104211336628234001068762584110684676785950253948994594886555040636790928470279405380815950585325854170547080978744292151309055500827661775592328884049014382972054126426418410035783252014027740949819488113294188543364139175611527373997745873401416589551406810107842792289835878297891092493952731976350459126045580914515002021366797189878655775646268289824581270029617461476985869701295945520062664157053840578965091287818357097670277489546941613446200304910717549879488177318014746199771220527321523523789126051351244286206961392322737467264315177866105996472765502070103437818310961429044062884015675564543107695522495247182510138364299641370714288487991692269800771416621572569097354318357675241850903588191239877035502962958558408900716664295362002682181887028233138681697424018758090130495386083301916548843710712872019691531037091464530174099829700325869915834642809535918164148014574039721342989575751673381786344657675620778848037815197727736699783336516145584129304503037032748074010692097295793379114402573520719018878862614860903672486352957577542372209161129805381674435571996085748146958495425498703431051076053449853124390127223085663729945135203831638732961447091379846710038872170270890698655898579022472921017859869219372524146966624621114934206597211377686121666713201687519505993293863630019896606038737762886147071210805948102009509807044426078529226850934135626543751473347442781711664497463263581822493437321651032437349120048473288477246966745539797008420929517056946627129965049268211060815812989702348872879953378239233678301735503052822571934741368805568249695312395035999879444034550216716515016848693402502839544202459255510280334533519854506951079512731832699314390749421177019636744172735439414858462390759311403364570548295149716118068242653747194575918345143085280224535732823684578128596512838347445677785955818378972222836723129375441051771323521694569009214471813504155475855999245431483830905735016527207005134861189534147763946260040022484717318189622868270629596335327616447243159063597432413685059259387431100703637268985680634225907190547328943383195585043995110124434796705466060386335635801515875477614830101601665698869528149018496734161729384941362516103424364090783192202284923144036098897874852407068359577407347210114956310467040755358640117246869384125363708729370578060679331319983678395113748979721214754883313246079779561040162283472725393003942212847160800009165710089833202066110662428955508516958096902399132323043042215246828843024437090897348841925618720290893647525795085008639733699614520232882057130190397647520098814631383057476576432308182251306697012537728138560579417824794109594496217456876614836261203686453154587604958371005762898711998983501487286905016552201125996247333792592258755912825928800280619479084179970470635208027747625403422921651716747850916397678337272425336472835150922741683011870605018800349241490480859551767379349953375382732757580007138375323790087805772023895786099564762785655953812853989944151346273232276315457214812255752258817756702127853347083208534204720418245268539781089634219322581901399032697813921898032347984998943585103985929325286346088299106888732878638830330373728823768190493280674215725271966736456054883236678582162770011078084177630341556008915803610710252176160570113126621507684634650200010464632502006039454173522381783806495445715222979209750044954885437463252855146433744111004808969901482037351350820153684068497757773637477219464549030665707631062799330625183723703936950469111366179044687674096830082352665229682213565570050063686651787453928987517968515192456005883476142449679688626146942492214514932441527525886879383065178910401166405019764081543003226566385123252876228441795243649316749197772784636189980862566487049139991299212784805779485049291049487972426282250569776141386111648584842115335853448066234715140356026339285874644450460885563790230732323095848877144371238560256302735966099012103157929131160443577146467240771225092161764087591088925666268660573611128599334959370491378804310454411594567767587992403659349188683015351683795947594625735539526073975249409992928158172250431309206722610559714123941179045672619041930847973547113800172185584065622936092925172740098305674197673008384386165966358415978830496523932233583842975407743618529920151253260920093599561213725335220378268770570125759108178667363240110977029120000115352765824204675757133365850163737780776159353775219757113194243619280847393613437864868856241973847295464490439315495765679276508524485829080531495282498751816699333780690297145479218921604749039984793121784554228212050958445583939792370798563113298221930014101105754690762957703917789578617081445180725888783033634220699696810841040456961329179071136752633084030502107797754041554132989514756258571725225454986408609736321462428267899025687005029990072175634578299712370927647158973237440333310829633058027456037902174830424060123535172566502933784805940172289063643277432474372948608331070203580618015129201150998861794452240886720989735116364513899008276618939180602416574486266308205635583638785092090367381724026430695717211070705304159457954815442275522776330684500285626585211273511912639356639283152153978537729887590885570203290360374669826196085090328646678300567675888961270713355578956687427538260866801497950588417860915413045172601191698035750598466554942631948740906618920605142199940404274010093019138562283172109676933971285251091661132353445626671887302878406775502241960921050443047198737959499988096732628857580644444643462717856425121177258291570231853528109321778124231894563267904270768139031668106921535756679408770123368864084105950059840039433028464543517394365199232218315922329080330359337070128875614585547302169749835472127276482164501477518893620905462151474882341875934939965349759880511772665175988860058275449772019805087204506325232704937257489766689036580545919247555259209265956994704430333311534509410017684250234757516151436029127907718008011020817931750714785589469337444822898825385594372411117681690820011398510321675217346782132412780150735012578055851698214945956150368544482587220192693214238228519939424210250962341918887683521053973561421773051940477888761508082008090303784543352614490526027017135903551519278950008010088851600344019991036869213245198298255702838353237851794204103739507720255455108209261598596788700415264297849876449916618636008668842630109256839033691285004937562035787223790507675412633999451442225117070317997771139567866050878492058790092073325990660485121408081684614007838681658259623358990483530617193454283910125726810740275885043278541199749283690354126497874952518863209804492782092732971903380339854066223676147114591721973973074579501999633901705021197781653035902291276346702338144043898185494658778990562570759448487284335105584126700900089699742905112323594633411458649604236912068515926736638859779925924561074342235256814753392959388886370588793543295920245143667449769718589270703738851022973711225747748317806697574578397442393345657081831544137832314535595052225453971412546911350689433891923741352842401764384905176123521602082344580963772724645730420144361407620130162724443071727501277431660343583552367208310682810869298944176844806685024006422980973538713430349108851226318025539254277009872233210682799005800018032094648778452869956472409375939807958913083995000444045269410160827219217312366265440247153753479659584812662535776335962502361198311415751314623297298914992138015762034666341618633092365151962777629201110097914535226731396733090455363175893148020816845957267745462977661683257074165242596041462855676633965340401217746357296099692451933237079237132047382401068684631098493993125903732764261273778287519155992068109417967161506631825974442860299314394039986128400757027079363246177375391483309548413264971485669334498910049142018574894205727541180765279711232732153882387233417211282564100375402765652064291512768606336800191770128801247011968077110657486506260537242635127085000932465038078592447991410282299256095463747323699192821881355608720449986008138569968271588572468569401121209425531009541355798586712039536721221925083662486537780428069641942220623401040775413935915696011578312559543570017580101815141450121661767138846174702961686763642299877416398931779869091993481029940676359126284465894382363935134198668546340693655448271145578946622883012072304608395488195288000644969467272669056047017056844164776641265651951479657245763179176853177341111099562853403055415583245213654450641439378563056367900258265447155626649045543624262682349991839162839212169114590367988550888890636999512708042693147741683760043001146594150796888374973425115714789039103993452584615837002723904959954920748169012432881520627289273212237043152179813388195160969112209614020524203152368911304893466800148115594596790423281679303373764344007285580761870293657106854210334144045203713629323115358103386123579432345000398674709311438302537071211378656064743325830209423770468341701034620386922251367261536893413702426330508107171283745162546260231799574889432921999593428983179056779278705628985654811094768197290607955301893825667108615904842765097515059904727882880832306930178313976695701248853936302267709434836097414745876844468936583338216096176428332395055459243589159111364291990937114804079232883234556085397084432442569363309497673605096140765274991598901842715485957035502250249894625679848798951902718944124340386126554580839297280871836371407095395476247249194256441845978587588111416421273156213117228507984848037171746817571717655429205140889479948271311295890063802691096207247571504499145758848704218693238065613130638967315863434551623684999706005860533434778946384635796632299816203443709274878284893854234697612311913379251985162979601771671735784529143686191116805629425484582517175543295254972025247113661253075626331653861659885554182613035514821006494571351885050534881611929675247000294192496154071133368704959985406281359666418326466323111070706565592962132907799013565839026887085416221845692715293121969666067726690499725065255746914687236687793414298836923469150403444217281342336613286056757394735426423182874285322199919321327991391865247007087189908878397561306322916621034971843906788570367134370769767954316080820663812484969240602774356601115731180128090314166821855799194496804961127894111003321703180264347906634062416117276569101256585431448311441072050001488007092273151515213378107228105142122678058352678710922788004211415234308563586165036029328216101626621037263103703209983171510234513544968244531398461246679760380259937543442660364743308953566919504135305362933281224837076085882799069341705097648583343260293062574588350732940521497015254537227348396390401750285671943272154499861574980302216243775384707757914156023957583096450208271312151743417386495457666957455013812768522212379889346864583651916439023468357076685365663765651782227078504786814670983242989639060170743118746220951719805520904798608441585911125472392832034004623339180271555717683339213517451125094497364061124902165881774882377056553224828876969998742153011784006866757552542336337813412448477883220716882271864986027289633382806153637091681778757057634214411442613403103665959886909909616503410580344486782437143039882851283571685406405421231772179778434729493850069715470059227573310069644341487833557737425171116006064332355629356824772803264537446245030781022751696209960463427684800300017481599061554840873742560526874045168412164689006049439267650999476181236203348065419159092946143814860611877938053449150709990329525204781452868783594987254836782844278928269379195182044622852556297602476835659150544938881620885424176167375950890365955872262310837043718424761218286095338376063375558846388648967265310010132313307649440061238572554321876731548219901196041528418810178142376698238228416477302508552894512610640982386602025089669658444366299944779458733621256710475050281469739063211313175974251477234599829622711415766058636131625178597213312773885651907605265433161996082255329070707732241822300674860021125235956363161273055962720562740979204433800832006375452732730067358206852518737097344286250838424544057194471183521196324783398965545857089967922670127825956049659990618256952188954517381216571020653961999828475369420036635464004654188248624445740911112185578404824491963057581517185151318825623420116940797246259926161414767020493075626525080300895329700562297423580367433878599991159158603908957398780208706983397305458370053930492496842468635452543317263602091668934378396498627111457684441927805759036337248410267253125844415512519499149325398312021321585505587308412038202672494100362118026428580327446276422500175279474326572543594114332719163823845794607320178908203458340524257897784642693369392242463412819140460214090167214751817351552209172101295706193518026483091120669463222384483883319355744933161861212526031628683561242611136333049780891243809722299702925962979204676241222568435833543593236236868383515979640500055757970943531647619694720852149991768399036907686429575294254826638185447096409695129810419912898091710167905776873958900109728057243197881045446875281829222491987133295224677697113660718858301849825683900683642213671347977654541318361136422696007514301652695000055683137123171280019350516229122444394681515120057042206330360817518194217604799971403061648564545417676516334167908982894306622254890798222662883374072072046333597855426315653368430849184877851702053210297396888220803914605804095476880136629461895832357183563980857634599951135864970150373629602447028335400798253690371952382576256714066962510276070883243155728078816970431462844384179189062563055237060441637189996653572362442755531440784818204481586875497239009812129511682970665443416999358346885461061090651959543442117109184086450725916217976834136363371779965530947596141061143009390991986415222785642140015449605799246869725780587531510398363095156754529794880989853708132418207590590361127880160933614383497855362372085378466624219462737943468044085763059528515973415016014451015612734531840209562338853815833057336307195476420282633076711447997139174114315825510279129943068151550700480580084576603136670064995471985641855780084403592704673092716099670149990236164028569735589748718772080619150532116205241882359514003854918620499982873541048638440786839797954135142975812194638444995891131822680077216350004742817149786699388650474619673598573677442988771558417460913090973031702434447182405983577030337614959878072390351802971270906116616490536537888159015732179279890321160581260656717426646242136566818362843870090495246854404113317457713319539038832013178030236739548033933491620821635295673617336346392864046441351700647362259261099856495195858255322074387706630076759684202240419805297013283806914076473042609235932853793022382537053139529250239922386712044261390730899114558588022156524666248195691859944983876088648245601564077340303171547255914564078656859455611451650365051152952554224226860940553852428427030185652747523617217648831840002638140475358720856559463160099991090467867377216535181176041787935979312474316491741146173755383795652849535589605612682341338676605448418223169588421881297239818738334164614598042981525065671182534386475164481872400849182412742797839262156383981041553365442185578307123934582998050864592340674076321168096539819951494986046458459453481789192338709027082841838629299131134732332129000854023795267683400144812159691140321227307611228969080490726901377390135599014118761821750811202515614686867211824321806845661941407596873669419208589104175999986174823662045173147206879879767338216678230445232961001843379705119217897458006910139285741298190805009860994965484830557380141964443974883221350296766311438568449013148242639298399161208763962912031210508884473476592055988476220366346726449523546471298347618979970998299703757666965534885852644574144309506405617623077558116841995854064105655203138257332640916794133128506227995762623511867689208307158858390644519389110585188203367388720521174002530252343843915260246369207809321984458365161788896791141642180837738733019843456932789656836227273899919024589316031938735277349323529316608483744811592866883958112702966607814845775100374409441694786351223573697709399690962347650275052286642531887576646022233139928140389345617847884216528276302578653903411353132827306680307655807566968265434233861410700908305597415194914815878122589816719726868718713653649989454858802058879706796132627507936218857470769819495047661656862071465052798189449473125555596049684164818860931200382663907589387535385100724259819685854333553861740599211004946189063558811279478957475680058581455845232983418188100102670057563792971685032948328934942221272959280342664621516399915216658176971628106442453710766364932377500804279963665746124843135773104401936517752572388073468759928876223448209417330971085553618085519133772220130344297827650813346566217262320774346936798352330375505845723072352546373168403909288598773067476686635100325564891995153897273080687561826483946050728504827970282997758466240893349809075986479517829399566254920363884986099755884172892523691895974732430678615058599507422564141818240414946876088011625896300390942951185893349268289842586404464894211964953135331089390574917203179321440941663312768212579107024024881936570973906516362809438411412141187125272668575859196214432773322205446671646805983489142070324982963002997685173491627583049400538264495538321333796485543732207344493277005178339987919230813141996609395758425363131748971714159952376453319341403919491385888732984830628137124942834085100489808838226775271986606375490299045403636210143711246986272285782481236846172038158551242684710129145961873307218284606073059138835920912496740650606446930074043974277709173741666238223535369927612048630562015891189232327684580315052470725813592313554670408515127155625626148475830379196962244349319150141236192772209847382578827966043697368439713779860399127604047191748580659452808308382779330885253036370004648017100520005174854620764233647529489189567006528629859764160085200247047668306859739317792956129823605628622064129023142210702553261240601310045573215677714846472431571483911700412828553185420207127571838262350210291116015432109601725473072528661300746732270867789511634446931622077132537828597411186163601204962727894000339268537549409985265290191420564018375009952002187449800386440452413979436683894253578749850404705192268751900503164546640744898106942053469862482699872132897583157388073831097285333067723105056356002014833983935763320420246230808690931673329916452658845177853296951315520047351528047509324912635599865556488055863629090729532667278431093314236984685208454057639568077637370406260271684922720800614496909751369997750756517655184388374252769756645840639049468303110477095122572795704777387480872889485764461705108623868548364234387063581860607062814764141646441031175757982819919001674982731791318684416689673707137196003741588789477679866304741353756666921751099990049367274290147130330466627917265062924323551588325880249866580790970068673717289030304828950500324055962614195285358105614795069408737782731794781054582877216960388618398873163263264748689329765467925870371794548460504531242497011655812021339688029046967436046468798563479372465078052122863357465022976620214762444843759343488285445136370163211984313947236807007126286130408564322773892336708081954235432754393342391688971319756748809141803670685502942303606766308825559726291854357609878318546428098365464572468090155519036482738965858636222110680049543125762472459853164640279639356028812027519884212642927767699236818857038498887134809892085454298417746130915838873292062165557449452198095532879325072232904328025549460417805422914834927899652101948804064045167176576215287379116291198767228202452523686987062131740432083923677599511942759704983856538050138118588207437228271282956031963694067986265218369239089862174585328846153157131140189553642840682175726002249140633789220132087210930030535297009070047133860687134433230039891348042780734767720327131877217616123459887858541622690387026361595724516920614647717887157934148227372076570638398821549313142696148923492915397706899548927313863340516670039524715947081136366736442610932200702701819022360113923604810598941646078881761576422025360068598249355291647545233514846348354013107207226550467097231689525073274807552404206076449527994712276329110482968736355077707976849716976903167452105257619751627284487005857550234737109793825976940341128197581647579765922448447553635202674153648788931261656258645179668632640888793740828319492557300697743874258862916922883424238368748267822681073036272985875455142933289957774959561656575791164097782244562053652095802396675940708778589574582321089185149528606280624243233430782296547370061558256786918576235780519638601265043026735819488017668999143559272304758124050042610722669401699996035287416818037278939589416062235326472204521430490116175642028336734290563480137594710179260140185812514292098061443791042868902209279723652517283655728411568259897151664178700391625605941550493813133290575284355761297346269816108511576374948256102783050266135042089972540436315991645428066448666751322323331892565246619959371871364183222492097150971260460685538588063173215590699740707525081918676524165185731606554145336372301314625835013349811259806609134928716181536713225941730067698396834025574542844860768868534305907966889230284216170421744980516506442810326346404140815712968224490215686631172536293124890296874378772993363312211531160194268191346471849685879193875713948509309277942157175523948566686003735096142842457933574339866616529591112848420763326959748584940229983071130032707542693971679419651496891099247216253135751158215205224575243624692350376357649508171971671688376669113991881146827968868071498483649794785739460467712360869277500688726168578969663768363718107991206446064143465978356957568493203165291515579495044983631123411677022609747937944465543850342887971985949766077745950880359462814201181754351528449442912449973978633536786022326854613213369642963346866728073931037220985828899075840886570485124713969301257750836293005690433583955916617962114987619747723484149732545939643843291701737020124676892918435307678012437020374080746432579195394178579375295197156408148232959630082953274510845940159677785971875165332811327215366007991780776169067335297716365334232504878723778367104033024943607240721468845728807766943222025195822779188214093469630200719357107074563424525193549382542291282186358824723193654241799448341704269293614305459636028548345539242634494535838497543986741769095410328843434064028349204568309860815187854399385182589251222733326651876671147978290978116841881867111459608648935356979052485228806402661004186133695928779738639649524642683289873751989763218243744143591457807263245756508052334453783423309689725474470731138424864925645594067577333789027069789883748403295307966537699982257394260531501051521493678872230954106537664998462496364016238020224679260842279355924961650804479246705739618420127517417143314200259750615045697686885684716577202904894107779939177310943493336127209444191280541329848898587264107684262187901936342082725597024194496307161439490914108836574391701108629363922051895210713653784274214240161810057390032064197842640010252356737248192394540199642426156452082209631067965754813724986737910022972084334540614890644010820301806591723548193211618413885807938761451861869022254606713939168574798677907375602383890560797038563192762687477887332344108966328209203425819818331286825586794664908682648177952707537133128998508020171976558463999732315476710317501713161037432303547451225737156972800130836331225626171718327156651153214597501961288225473626709409324253456043853935524072393319657972643828847597449879539611662923945786911402274045879865171855683989531743317242507879033505814587721690924531440421669442990524936102372190152497692362002265009788189331983923895195979646593554077114514540260951219586808749851731908058663596885214122975304569163191647371768930938495893509476619994830693919926926586699340015707325572242871922417989652506899655844699712913311922604546271920536274960244077811024143224282696229284966282176945378378376343757064016713622178798283525001101398545967384668304856153532511126073160942175963194128028504514281486404854991029733029935517017842213894353080750698919901958809964116724350141589746443893098470884430799320358777523008186098511533498401129063813097951341030415314303361839027220360778306623657901945703931726831213553046391263564926671857182141437615183853265596076947327535846313465493211662809077670743713019838123354491251942599275205364402373302878254244310059486535082321570614416313246170011295341392946044509735526931231497914242742288893047366446623902055583268063633274710502729723556512715662094601723041749288813480372609364324324919433917503925006602526218862675279382830522994250847111542617967862894934212118639010799643040441223232357621822128355824144323894267321818448744201973032133020595115265370152143537726210310425032675683608013830823254847335747966985445008835346128995407336981188466920054430456313107795576532526727521547611752809926009535450177176383249580733494797654202434022421439208920222820373029273426568892607952933128466725174614602154313933553623153175879886582601669569998869649135520580734844079729154778493058289917425433858435057051796541374887643841707291723547576731802739564240080570946925689263563933663056486794827607947221746304822742083922147415509359552498555585092115791421709200210092144303751240461757618636559867304258747361149939796957642211156721430966404426024465625929078024129857529325418990375153966966091291934929844636493415470387754435614287587074409640205119656298113781090123496986070927586615345020199291262849659248179683587937472468985319521275128868664352634822215185475367806605768064976302810341812211904714673531985441439637113483960622379356389294208568181979410119059876637689233144662905856709820644744182764997520138127438878345245554464415669508600862952433700752686752751861595521364870642972711413081288051923375035013166232769779362877024801980890307922073706309991618634004696487989346222777154823642243064335033082546916827777751560807952452164547037720467835538496536614358223648824739845992575615732337008188227789157611466509355301156759670772743796871003141708172734889682492718864165625347882738974755093284082797455768249814946617992432907203297658834402581541756226777666970780488150180077904728065598770648226158962018074686763227567273730357402418769343848342521507882918536614591455199422436191211215833035274053129305388996851632626223900687544275242482988385749546622488575020358221851149847490083552460363375478258024480203983306645142093037778114269765599434368573515461260580979154871244270465381337619727823279207154618642205553899225989195775567961194278745620552998567463198061868019836092286421747005905399324326188836785243147032176613856727294169915955264180606489175736828699484975318006270317426939269973326301707049010557491585324906545734188457973781091106638108570846747238675931118131821317936245045247669898782220328081783778937336199939824476966386880184020677588344212716248017080356163428335326520784614080864516548691917493304716422133941889394296438966516427995574505367562981342903198686093929215892930284950859698443739246315400128619201609893736120052104600197658458977851264550094607102195947491269780896773668928037257762190798813098469962322064776791213803129220235871451044716804994579852872986054203873035431077594151037252590516631808656090581161846840265063183953484531572177426755219142930763168092036905636075819893557956006650787400634082848577967493324345595011334730091931349246196364597244259466127904821044458726152213132760889464390122961702014854289788647495854886570950915125331901105175938015058618991103535812466230649051890713481069388113044453560229053755198567107789213720220028211832233867975636503448398075654309402477739618684779893131065370449465082272793315269833535051145205550592934748677113230936672951846640762052199580491352896541872199891385228205428963101174308094254470514483656248535817155722191895434828310406239205364350955708310177816900335196007838346673107275865073598766996605885190034648737329508832127365552771425788475520357777451840446865841366962320145986133359154730935431672653476561686869856780550894860217901684943294659481789313344090409966490829815886915387586964738852163741716701307902638966233737393142370730824029231051748815097751043323246964466851423575180027927754295870782251159670102367771300457249877897404377477468897367514414153120092079671684090479137711862418390348665618823335174093010600927378720437237345688202344754405472825823613796872371207151703173562038192111214473216583117806218445792208332773026833647375050877685141075812995032698192636518030226272371791790549867949338513413797638406481975062023679015425603249144419693465643940072658254296484947010677187152301129570713163166067318762403945418214356330386105278810374387471541853880436041119879895957544377186759135256615724215329433496146946978409314160159596774994087862831804704688211813135807475314663277159063885188406854935976088247760099829668816851157599371864403250597843472254508150990483423419892334170308977409773045848564766858529993268717642736567311411905099320491548920932560984821749471112412116932789627648077263482038080270102703688187158323946238767744260309212137782853550177296475639566994910282316076673599640148049919796510909256556531420759512450091497568890630910653412250402130660756925180232733847035133987258942491267560310904660713455979196313682155110824967393309158406810140742629365226784017366141561816113816675940856893134754794447002767625117737989411291328100062840642843251680044779602402160667863041783849754448151206115530696066800591157564636699204290535459433367596023578538943258143904508441874691192462533784039495547622618617353673610235621518053042658899564201685105024709862789294309035978567954322504956951206023746759067477490088258639736145281023941640441480191774120928220289752023348347804440945916506766231593891354911873303311051856763181085735800767786743090686144447129429698121021593014931043639477408639642066977254837606588240152163138550081375168537711794194957547844900322468923756425346424949296356506365449138050407617845710831385207158841061774688729880219353870969025415696563731141497951855324162346298294184409231610199355099898486383609486810161352880379481230069456765336596958760913212410173782726994367743715113046656032341070475429463364534937634012029653116468537146527629640996937364247772314427691100508328973138905776849673730764527726343403853015935958584987955484532375956658030196938362420340042790840414970362854062479459802480818995622867222854235107700926050520726076296200528695680472084313609452041774117138439373249016048928957021786069675064768195838082394961823252487070759333083174042469276749334938492624580683023281102534426075066758310854216949178483717997448101961987174761675178756796032461788013328668368739505857767622414802788424545093551811706713289109745231901929817913045193674423235688813628616568030285533930218610375590840247416164799190827108323498358769394661544285936740471409736041532205830123481797158459188238048638962223128757909498156256894509578394397611954773758996689401486711653562090363870574264237604457692393736022706561173348508571663886408574224309224921152353036044064842829473112418151689218386321723773711297400480905593800221736396410795382485111206396863993320394267404654853210758473053419845512893379645005903354149620539247762483971990631144211194355346143695863901142397542726920776389553158700447402561379997128733749833049015339978802289259265468390498121791999345069701345591543360122686273869812912185016254193454660009438252841666290454195830188678121725710718323765865818309560733768812862948615872301016917675296555468892301069224416433171238859882039707087471073028764688553639989067972095219771981796141071767644176318390126473554304297130405298512959232676041961594509131955991604287283286153234503285626984306419333241044499715676402553547288182537689021134781116782520908198233576082299053899057498372133676070931551486093017136983542362288876941165221691714269234893411283230311151369319550552270423131674179369215902827449105313293873545552851095892620605122241363620612299417777486712552634887244792007259637585040899796728903012109907636205739532102876309899309529953402521398580690739627198313640979151052053593303509110909919539540695982992738631644235519665350602138092671451488378519661576883276798360628063299812577629390277911364448869513580627582728185630633731828295938712463451107074135032758873953846826225761177115930906973840077884893747224576545248690828336488602564693977086562545466161348918848680327677843718812672693544028549897749861998010130923653872093374112345875085225564862577160764343628522735876693962030617566052085791840115044478537200461347900932627168158552060034175219095211459216810902314846321047085743556652790868874615538303037156668721544889039219033202701297746895680313780758133392793092093693380352824342606203673477812941517580278261769785031614279922686361161087675702980351904609212879175437167568234623995464790770276213089210149669953649176301651865797362788379102322008626197156462860804103610255170254865851712996932050752106741263760439345048164080765844505144155907919236769128177885191217415028270058611889460336178709310351011687107557956913773589016195848289753929222419800085048998535785139784320667585478366626021334350595755674197507895106247320990895768667135496072393637591581794699429100383696428985671341969454661128856484863614999353387192953347736572764901450258798223966912685247596734825180883655019627876467164418880492020623776147283735325255721171426184042532092413206410049591748523499452795586095722018127989319883723955129250885323228806706943312324439344186973934748540260970197774963273566408866095348252577080199279089014308614500471768638555036112736592065801972769547780939626764293629415904509309853985809252743363347800740807043736700153203471964263825199184313450952582292455988844186569186473860490812989868302160273455194801185943202182603925806850036257386066935597835173600292444216608180725401200401946521709527288993396844018807339528993812158202425561376180640119400425177414974072559397273168304482411525537169908384076884952234898884900586825517725294800430400577395978213992327295165766297029680496534919099981586170522152889654011416122100968516910724095843399150393618602533910260761599120545441711742969095681781285505269190179665499507481466019088454392679641190593334033832122868496103981503591632296552341404528481190084090369815975318002194748588047409342439596531307427856857783335304894443599903329309780868900296941576471026893781087991719327386875286042316908035573044590743750396079328966542172619424629223548863017567279667543821390558692216981723463181694542477048035981234809826131005616438039690514301525273909823962318977723309182009499004045342450571069952258749378888444972087207801462236490680626357789157531210218670699703913077609106557869345206319991784179420462696076732575850290197821550403023367116382117125434755969445111720597527707548287834795596467100497867389676367879680603998916979284065030493842371395032803971641162022225482950055047913734664344686853304097372532401606309169266040395514604073266853178342746328592965912982939464420312119948960732330979601100724906250096621733458899045614866199453447532630747357778673271778476155179090490247389069778562345050237282849901539287854311342457203032092576421674964120406368957101357553036434358390326368802167139206453328425788586771739568690514949333648323097378324408706855459985563783324661516532199693252171530448264502117136092674215016961384485298730941574236310952645855626791329708123847805076771961833670802298257871426026078048065388555117447840378309984299373592513513850429099109469870056086669597283867632298042639997705556790597703238997841228904345356837105284289700422884961731937695251366608264075588218747284344714175684097752893796759202282260852182549447589240194915703190806662590926914418737888020805582802346607174453042318872398495466367845207292533886692499633489036025559116008472250453158337494047807460863960848711175361883029926900386691612267469837783422051243702513816284629754873118405498210902236978209604637408644702826615028679535860727840582752534435711498813038479181141466781954526609627401321691709729582831647207371750183236899046057085820857736806639489959196383797372021277728559419363874794660237666759832796261946024071474261318097515454206667763070874932496523442879810476686610727804830477995672753029512727484868110932270936771236389822373605138806373094671057937897330800560247730598675518672211261444862323743820311190892641598988967467994682400769289359844159323024659181671201554021536154528358111798319638564343868627686133555341576172706707968148854807646258724584208564838203100404271342425394638534246889926656139420916482447699073509448332279282161473309484901270316690259853267762404825295015693811140574875209303593244706244968506771731153486663947620986148207386383642617795752343491239235558117320674942890104574816194946988895030058702024688128235609253137793989969427568952618913184725426400098552230780398020388951217378296406398993547310406592446417321891799589914187696053801234882532830160613382890795628617603186603238922138124014075399888696082848372248326161986790571123713511398594437043640038008125158468308273907133710423395544400413710810058786651338640921610662826887375251395525756135382387676161273073033917616078726488335728557063944741744169505142037484091880811106985187761292861473966478263063566419127255145319618716187880800412369089266320997427386427231191435400353597542914817866363022697446154089081566754037883649886253930141509411952860803960411683541617599724239232362167055797202987917018332549837865687895662322564927238653402417107112423441324201404970665175202529119805651601223288491129585605945939857453079827230368824434549515308482293581389825697755764445466457575602985998421492688595331177467850434567786993687691863258733179578604972978980925676459541339639217080875060332272912930270745183852758069251201957014230830369274756080235583602963373778758627877920201082990643635115702889773125136288289136197768321606466229655961506784211482431075899719616224566279430582124593122639480748009358755211741831769409849505309724297673989124795802099684150624148681449133934275621946403436294180276553848615239799071082456986398720233639756597955121090846272142393222993308393368181791350571576515365302938888470830909210628470712580153103849903868560152031466645507959221605204557983646350983873202532768301162226655644208356198163509085686294230090114675543430129078819672299537963773359856420802984275570132286331544492310650218404675827501554965867917657056650284224096550315114702623228296726551308808454803155547157123222282708257731617314591115876950056980793456864302155977383695876613677575389267848505750172676241075438145784920105543076651579676672634601392853778158019787919109825199368073501205911921189330040114219591619229386761223657134795682145722024660222127095242870443618333797832543543010292835054627938154402290523478160239480579176046802934944521744044281108372931543608629842366075898947136548972811731653207643109886247517683329545254484940633455822827054409539802973069924766715284861515965164340630032390546580529332602787436223670490939138491649018386574941608905862577051480270347135299749442303953611000497848723974979820695277212476202632905069413663405967303337110717510135463822955043898366341421642012680319215039993696763795758081433645547114892413067191020108275454211940308628524078173106443166564767719860789532828559336711729423863633630486182906006022411090038384869391584953077252831863088578714920545262533104483614084622537952052018329447814370095982001454421499261302972342545658487259911917415332575507513394716162238519946267465392101783737421308796147875599332013961211741927961467015470794052862528183858032916021487386000421011483023657493594376132395002741536575277322937775470049810452326486184431438816382842698518396775111768499636392888958362062377534191717630435593543088936418918339263932822203218812796686658491553776089625329618182326524102701110628388977514569145718461268090767954147679656245212285886845544121095685232195004010696268294075331263597894019319798647220248134916180927221721840896520893975107313704108059052310455039882099608723269854286860259651724439777113938184752565438540092797603640980757794132256552261970458419244840643622458291917736078752850827381676835724286599535779326952721997491438633174124284981605883587379463870873956381135698538390830337205324115250726335601224334599345499494505660018921728476799005575773319670570597779542729410169776925247672576790567992311565488165824023634305964162943600470684489747273780603888783425269224407830946348170363754075791090733375583459282845328313419856696760802672185817232492154130077939553292805480097494459323503548879688285892767031027627157764007190466239705722573520460983454509166726021502557119194846258853528836496491528688379093232750279239699409848462325006071839526697372388589818950760826438293404015283501164506021541611083133418452658014143831080244182127284737850332139764754275406177704825610827766459148623970611769418978722551305357512765826313311103624441242552785624383773931134433481980117812295063184261476550980693419628241301253274450501569690693872346348155586193853048745572052473315072748967126722165769325139275649139902975415072440820639989369789300396927165650672512402177536817293153716681342309744968181578950242776805793838357066717083988078532189207059908066627249818227119836495849577910104932195783016652490025108450534558238758848822135364724315806010651960960504191466272392674702605179469993064026475718518783541682511303867866238390292121353832972666014018530122572909549869412423207971357947111577207130526455408619297972287272057102206113598152524138720643433343974479585822130007604544515339004792870089923241442710708953263335988301000552555988137937301495520851324110079583860122057664568082079284480780097926706409564328630144468460470114056783293663493306454118768438907972810656888123073017104700090146323504435026913584045392100918451374068746969048347213774860669606426915742396741936748181202110225646583986442787973928952574541863829043365598568052455351085542995403902907801979228116784278722906767239579874160744570699051061848507352054842235526671914211964797583159207138118751323375881630817807796977612861913345768556128659806207759937159809632505391953485134682579288344096740882395205965771616290386168614863931023712524866409378395014044007984758810462539598165516853693306394706860853344330006174574505199332839940740184620964756227580087125021536627326017628180867353860851111115596143737808988615177070952673921415493686587315138475737736874730457423974576697677673822832503821053360972647726836939250093300871210072437976494566586537118911169442501926891807515250542203873718622613076283939473224605691635463634614529254051103064053365242154731936137082741847393682251518808323009290083022915914036163674266236936223232794214177517580582868196136460303590804499718550023319270492346492533495929825243253843395573464038801429743188557372826756090162151858882773993724742135917192691061371837576270161093038915182095788004138774602503401600529016237907599917648514914160554703368760205390664504577728794061975628673349073107880029869067284662120140661703951217590804366540290505110766600494462203814577098928023757832286793119790623911844020810090292134816175121657573005360784610493516476738730730142068082103924808516349353267086725055099412507233259756932232615884859602492451718034428247649213545375893677658815302289081034856767370494205980354905382180278005103477521098000599641779899455723684743825914616883347094762564874630825829452056962887068714386248792754335017921371437999570438596413649528074104208226722185064009271912628741842068735137598563344099976757379895743250515245614305981768980562432771919183139556281249446238155892873935319702384400665199465466738249419389017025821146203506997823218285704729950539994491981456451604619807570691862292042292045290120709946657691578825741480919959432118216879555971675463307626010459276915715293299969692408769792682224495620692540787761593645612064185702218182985493133041872836769549235076123512151236732330600961411748044025722795351871508626402780494524317564024349685093970726242107341977407366313709832118942633576127917136932576234083861947445954841585094374435113545549382867711334933316765243661000774058581732648277932484688241349567655246490129360387472072662027954557760700927213860503831505620409999645354005929136781622380251355040985039983492714414230129808371706751930249369484924428503577944873933325150795866796433752187606107277856197035557187968032936404235642578095561513142967770822418782419647500456730483730262014179061408568220500811954278946394676474333335749964498054779283992597641404803342925417540249183476921432292825064423779364096914354452574297359312555392744693505764291152790830626082222574142667914375807733539023990918501624945533228917442791793028018832636427401014633440488781341267491916497127498175167690845031876093644350072706741153080406318996268573818971126796256331510455020360560265354852487575673724579479733741924561293468084842609738178749367405553357725956058079822874462299522573460135725544120850395799271412902872493935465899855958887001639670759857380261261429063716257964135104889675083726071843040974958390989730460806313487060825413113112365444229738172235687177860323807667355911910249717139453468853022081734544570470070765828177049799130280892948228386839351848777902022611283947439038627627885060971725943183584361016262814995466384990640110088704969123319104687498498529011994416850429560136145426665644091942167585786707060903048977330993136020370217718855575059392425484957951316749422067752419229802345397529912730972595783333798232122742093019249579472770924728486823941759366856131141592819261164413261012343309572276123400886996471436581741521032880267927958131836413588164638881875248940168715322946908719758722725285939388188494516861837543638369392239742685878586083094270320302523944734882757404990794250024391686735791081052586888166031786440258687710929586471394042814444729865358756061306795453475386859682497101622403437049877345243796801783133650417561964907905860645223170252245434631744497872721238664997754805335264992988710835957563501657383755614317400125210617302085707620298892619395844821830758821847378299664866039866397342837257178732594357438105616379687036623523257413154948888507989941135307937997482463471660599032503586595447988393826695051954473821254174048634298973898187215156660236758645042761284574051280022900140383069047331311770284811517320646898121016648778683012562541310352037335280937137089864022353998854470599712239116590852003880403611076754803967668176542564779992720748404941373862460348890927116320008133676688474699730966475508741623001560502687451222136733021679144012938801302877032278300885856389060636796789605277712693031405679379857286683917037914188421912740191602769817629396213034095973503955768498091263173198051015265245560937794092195415451149516329559038006107059477420594527503821066912719131696045962853881535953236228337046199024750204777969295963735064658201149167646021830014869824163775817051020459483971962842628039982591125533969074167515968379969904045135745467460912650592825620252389550901362353420644923691365602651590953133415369395155251361826572645746540807846514425108536480999397696492118349861915760006347852464728691482453954328447618819704424355626221550479029724424727726679201294994768565319997252746695335841280167945143464700205862217111555642171732679093738083752089649433455945284839953407521038250555553890541727563962984666992750802624214734474802357380138081433801980466649557754990972984114190110234355676178130390211672365996879427098378344506027896871162774012549519500992951740138271443267296042602123565176496219440144675265759681892730953206853136999039340476998262360085148569588289323388855813149599417426472659774443538792853683412645415300058697024340005724018401466369571989906719874701403703794521699597242489436562808640125057960555967720884259389286666441584955532712329225711528447095328580892511390937982793456900622625508891326313300145209782081649722710260424491341758040634641435027804105445806977516363257835987586937380069946000219827556339218504915772432596228449593808151671261695654989869366768690302866007897398142124907601892943839267138105419769151663312842025866504314601302465664818561230138428593948888007825707911407524026684890078167028994910766078890463875108034105046492386833280312582049753116284090079344660302014495322328060928147848534548950440726441411421077922473231899083891540874590696431884361115324365527124704654218131772595188229962916275677315690909458497731589762568927024627567305997681601144691439868070904466496719996297884028784232320143438387880098808626063355056985894662763547183187444951726284422567850437352012021253356627183419127160011820546342297935346324819099409950819814551401274202996686533635411924590065998524303319654435463888385864722787264286004491545077938441421982988954275217580669335140234627000860810469083499625400383272599295073767242632199416385895681717884784167930550571748875867476018661909510639778664356969045433781709890560063571096827029471223002115678168920446882770991333365618470418263622548577970190621411152930229871427022295733200264186723216657115137586760706603139690084023697297094161379473667551699427202996957781880121962080747079572372050106825391936022986027161325410433950946908143600484092787664213317954156706666094732071579228470343151956119842532517213500438499953085375510201057383630434947018593246044236670810440009012644102487022966118318827669616438319051113653538320235939272894054690548676166198912662614926043054081061287086166413954243497314955776648337111955100515514545886769848519479131457289265233876591376668003918703781143122284253699766595989954048734061051492354257551314103013169609165742864777983474326652819023237302048679917865873988396462351949593665024815692292148010686027941935456985297386654410704392706008511820565805508948234404311032869857922272868824045746572868959222656593519053202465292480572705880414665913682308236372163058276194793764250813470906679547295388756112274559840806738521159016608960582302689117885641500656656737480525559295637943350342115281555740429739358451257516646974152644125454867030069553925177710740089915977886840956911862014053209707463478095515161699850335289134508036280907593168524067533364913541809188478336645855575367295869699679212271984068746844862158626577638617617370449198542976107885892636089051937722601272615553132046710534533694673437606509135551431208124653648049718202527816015428475479219368643819493870707453643021906374998086646713302412658692725509200630611461041310729720881880764301190668491302205676560667426615147953441648149714025194145686660306231542684060428679279261517943246889310798483271754246278974222495112603435661948923512823778067185353138930031079968665403008764410716588651208837946978747742132983470930095925736879117244587507138404057590744841976888222833818964765039967860493474776367905852859087786436378709239449806681352834837980200620585332007664934912607379828116845248612368472226218727146355149814292727785033902851802986187231709281590794353141325282944906414285940201460098641215664206454633475669670507245080634008488489357672542404509042792872783600191008941484454122946456445346670807999427268687037783937368080598387715797513646566665569362627909038842488293031637722917821125805495864038727812238781188152846639997736868681990387379553887930496352471543920522115538358667017110348007752902730229721922782128168441388941089715771258226371160122275905976144446653521453664756813186194979570254837154981861381523790796948983063457212271389229636275749132637552581774644747088821839794365167393667911857311824713419357900409727384467985386023484711952646990469102269195947453016394589068129979320583722167142397642461084648795593919084044680968531709200569214942424755076304789679849089603889134145301040084298601117498087086605695957798042096609592197619302409212845473826495816431913518809622552140261872447652591563544685830394378531347731540856455359577324989528272531397835753908962329837719756853223119740960088236472669662172562523253642213287199004688290603227257335767360140215159618369220697467395041001170748197147630099730170726432150654127644105970584523780050396582750708667869589952295857645631983870609609978481963168136397342583091278406386053480912909489767729618638512798237557514132234506863359465572547866601072439818816766869410846566859875758018395468747184416886472264232871252124294308148074070635131497806263189127778175840238319156672600289866709725056305338952485791442390603514699649384905088038974867042090495091774932671441713553507341928179753648593110779078839661738469821550107530794585242924625343381892195409838824266746004771343884197137320068745293954552965360957097527072461341267483917129277099648779043426711494729437367320620344019835065385160210127331243169557265427175838680961089671963216046091285194506047126438104999648196776368437596494002597855299051334922843303297155780228080036540640135031014808693067577534859826318238847134642234954803185402527063704023308950829915201595071239969228711113184018544345719547592359850602961222282531078465442447143153392349194801657628762477944384367840464079484789761291115498767156262177828878871230236380921466195908540648338615730138108179629143986537298005748143445724012879189845150196723705443266468551616701030560715597558836288505982738646351939105926178132235677571888647409954617568909254834862105190613131753148483136008200043660646528622995762389142306059279462917243740916314121774511734565844002406127948058509185943218563867319433194584242241336378039492408269078776017710670827733060971111610308203558243502079517147943376978828467321060134969584847402161198729106348353153599341488287245009878116220212422756398351470632293875524308151185061731823534003764310583161687024325280414995153169437676689658477702510471984967804351314130846511806507015710663916630118036902409789674897420903924707823425405702567672667215304905804431765791103272794849035668124132076174275817725897506822032827287870720669507934124254641142342123252142014283886490458910713640338882826598930968593368847496750982547846134290795925251033415459793563631116944003867395258723139041616079885085124542902905235125801718827152358173873178668359745236082829947997002226636510799509027794266178256595546323685334681533412354150992765054854106899407740585566729646289464003220634257675529032281443784106474689815329717552861285991334189817061248896021169422274906695908422560474754576816883750656127712527281546951650442837743661280331071869338630242539253426060298620498566125651333586993532545578250176345635002748489135214800073991033582025810592069880361409849803689176624376298899336308530552350593987808453812405934641105903064475805143947677895870332426567365045186020117838415390524635574725337994411716228308329756840257966506728781685043754193372393279072980682262684015843837035526862152436832136623460370553136721841403081347046142451465482749237511543222541257844385826794268682954586318125588792902588625287827175645927257308566583722498721276152348155239389983223645626036885765561090059711317437745553077923701567879652028471862205317803852746900400036240018007528088173313228312990370074456554978365757737417779562315230315811950005901825280102719961962076330025644612612699666719317019487681653941454232737994948839761433793943441229373945953068409397242766362988190476976048971131893601568852629202153988774093361305899509270205799068559508914288967418433240117454249488086879194570273463817705472779721561108576018146891299586243267649771212524295366766249007965227198177883822547222199276660414196810910353891289968860745264458091255500979265903891983176834083514518499009846940223150289002188227604437032716452633893361822948996393009348414254730535738292632985651393443245245461890704512547984478839185857380436652824250709835505143044947946049140520281685940584028461458531179853054154422121907852052302933081551965841172251396648428755115576697141011183052777831252694579673725601949457530864772556446489116553388008381062223025567571222793647955674082883717225886146541102675033098090627824223016381332057858223858873383487644519998240008053354303064125697870882219477854994215515621551433467660335628262108633133712014883937247366347570921430642080509682139246376040146604115436757940803202662371267343408893103088261191624590352628927173438662991615604398546010676894327066177070178835344869424791193868806629393569159037989976670120332182179784939101871433971738124538311277485937709837493473390648874000370245715245743485418708420493288497810061155079114558911044055294053040963619810323443317223612976598055456946117431496460513272201597767504516836826357049399648576264185188599130056498326993925013073232373290280288146333697376060444589746896258564781801934695808445486099117992836701070750011683693493182453163887112992747461949041965923338869877662604725301792247961522659614985013359204156387427631249445997962993296811515836501282028845824220257301222545376955615332611179191728710273885200175294346459957873942983275847151389939604492487749263024556946935246177992968723804356966191585489495378849249131924264868424068395383152002787984707816522943167742145429903713571193039978576229811756363361661736689759982764974708813800092614148515646977742123569888056063523429754280635218266824713225063636698706741024769381981917061964109302621889139984962142950294598710942387692080700938424023670496203007544383872626375897756364804747105705877076086958687639491484511026269148386637610494338582097969744472623036589083351640908466020174126520419095340471216158313991050144468728106617745317063818615320175911147975574664545808902750591116693650055490087868821152073038362134151428872763187960404709905655786572027782894489654104257205714537844494255837203154559545173682907046763362604115783199127359099542681417283860349961126582742225789711654773169820597293873648929829392725059527521993530134628624451271716928974684705998529737767122380835303746463329035074433840725154841464378281552878305704791532473587576536063304441870201838892840569720034990460298480860308333884882111173737838749077799610993940773417794606060642647443163825195960925811227025987919219329507264035834975458281481604584303586008561037896699818777636644801302299062249254348423150207145887949153150406159119460105580351947875541675488516307472235834669797744640174020869527347506780183233766799691058172551352142482510215759767480297120790806277232265666057385515828729432633509360771732692383607233112010865270144327239148539598892985332405766575705056246687629454755089336059629996413182726202681932477289837156879951509873732008851529038309978341209173267538893621208746966506004169211309491009175280316652059597701150448145709017586565358058340904326686065845452622290282331430131099770885067937043969494810900076724794671087413990054417285500732947198537784549630897467025943571749428851034555129749966903525255143698497217398984961704668152322263129171156355253585689709561238173363361921363602994353113744913202860687164830213747570833912267564989465195049184556169678945009973675706085947007748263667537134968503325777096911913705947503662884547720652404808568784622693259186445805901900230901106585437458369621157455827664583909756120636423692572441964936320131007665584092001269530321290189552670900762935432482429835617012910847162174953420289631965418633110563810873846551611285213716437459894229793114427046916448105414168151408722820491589858878273018343730906910637304964478486407623778012288706960449512053157622914430118233619701192011555032210099702454160551028525045748035110146641880488357006827950909646099934863865164809936174058971254009381168820252830288752342921763018197709067916038962734331831665847301553398519968207722919152070430267955204217462253245291755502263430426717545454770336761717626098274529408732700469988205347922187139995703267155260030339926401548616255826351141949480229917392972525360255310926971806010331235346547079191510421762486591955458624267259142419335064010578476427880768632510087928811951617745548919578108512863822415597238179573250854268870336419879708964957470750575743979853002540644482061573723919339224599258302107453039620928593202786916289950405635493066069078044878764352485386326451758147495449695815913170552652668942128443782327852268917663856879364854852863492255356898624788330627804881684943110012092284453945676126113622113412835314727769607228720848783960818449714761980724656237125917075938405103670604063888614262935600014461188630983991293062695003552412134557515832107816809697896747209782070563237810195607284419731962884506110329964038699828697342080871244253257078550908728235177886624803369272682283406448957239352857130609342487108001908361993512155881374167164405633840597522955775010941880281112489893424800437259820966693402482830346578766964197622805438485803517763684200141863189774321835123834315477964627689094176329848374553071010199056031901793190400759496793566115005463724875232449102727551704098017817947601445295263857398325518926652122548128491860083489280284087574679369791703937556667432042556275487690196221459615914766721348662172686491735344990693982848922451633914828417562775740449044990032150890693602531192984633774884583848703938007405799398984146819033337749574679933091408721333203131270363568494621254683923788588163028750085450229857435458205583195051013077879170760719313412787912003971873928027328752087807963892540745904617621396302604407167131689156839572447424805063296156362087596243619810325815794933101197624712264663849995182441057380608329566514624134525347818195831363409030630354702506407693504935033206148597678527300825575647232582171750117492654238029641828948619913950335302384155736419122232530393523621886830203194797403927715287737379736637511223523490824678721299040060571707071392644682278898777161521178490361126067360232135143181584739572965821935780110999150313680919321534084930500928084978307372483844253013884896414862788878733913963342445776762067820076542406880181367623780264891036401501834134881113109483290059798853782010803248908778366170453627194896248054969866348440322496478472913624354845608460530564536173556012149850126211060412990186764125703149341400617343779278996136037585362690835726993030309328856214476172052766164368933448157733374811489240708675690127524988992160399363409153735346264701755076459054005129755930736602084567509605400913139840358263396686338375933792942399458881415657108846371306194173254097745631967912483964967068058684609749360670108174476985350673894499609699017011533098046129061845161812088709808775228158791682463987121739692786739604928067578462818731428382989095631883457527605745069934407486647518526114566515004826821286225902479008312480022827869790369268045016120261343219345657733953150147851778753895026045211170836869717799933390379243194756434614236012968140186865914133901125391954739114129754031690919740037130049495341570185088965051989955973766727512609456009609171788965315534851536407439912089219096155076462691359803745485711818826966249819349299108062005021505946421780802745888636329648649999424668972995455788387455845237161930192188871212188333000252999533828444513661695471445937172448173004748926387544319725945453379042346449917820644626939833113024937344916932752503216043120541837227121515342001109051113030323697008939175924115630801608627629681074024390778235386747229846354496552023259303289322434270910849017935397400039508107528238891235983168295709345687144001473817605004256285927268130211681893611306612843646635495175429091851864328859725410751966769068054759437118268347321572094090576862595131176282792908891593338084802496669261264447453650582348712707710287566528410068544530803843893861584167949495779724902096423381953000046481415399152491237924203608928070262407437557262153760386349093369620238449942380926638532264430640132478564062787398454082141742645056910652947443340716851187699712851294282087597396034592663673306381174739320820364837878851837823167157037193914785417932090097306247736389711322041564411246018672333922286308723981918767104008746036778380337335361213984309370558821571360919985503779612569505470668672377221649372492898240722885541037203672844689702847481519865455635410651247494042754739556466501672684698777287096933256423756459696679758953804450625209589066230798420512597324928387925140864584302973692427227208422712788836656030605080903415621344300246742691022614886228519488185793582078901561303349712252877006268449003028424658850942190363518533804152569154139960613335718542078133234759703545552083409822886334927302849972218250345121274264658325654109640243159600856708834625469445597188321451664769602184593045658690639714265527713889295456346327993291906593654651821467819790914954001842954258649322399392828617973683049818288296731033654540247585989387836868952420718109951155285304716562181694844812778166896295348758899565432285304015185032360243672353308538493668417895792644311697396446973727977123629714870128801809301468247532649603523839394653802988470467280114141031382332032999503417127900826779323440056716181902219362800166909588225910765972325560739138340019723677125507057650321601592621191813496907701509523795983224453163528499635141752836085108816570644156452099630951750626487599599949331037514685605373385237107317993758613078369363226358144836754748937349554227159578368473444043478926320696645495448072540211475679372860808486979359020340738560844674234159038516838169721174991135070468300688322196517475125812630352110356839378215574911296701029817724635165758342613138700885867923233986974685045768319994074421295153069651335393921634674936922548710524425802214907009135856015687911579889253679548636231731053341553276817854178339934212645141634869210983053237432862648861989445844744920175501801391820321379598961576793859439998453955865147930999013939617954671854358147461832531854203812722766338580603750621222983296419543571167319473880451313301132014640457512016477400911093458195473818934425565386887071933032729122308573506055010514687536841493829416420654502092773566246781811280387986054531599032527815095279849766760379664777515488576946606713107263951688780680758983755169955252491691221334333262581476853557709152306041331821548607576390015080114279447740532553708040281082515292496641827081166871378466994551451403924852235272266912280739966486869163784756190042594850153241080364466735754008588209395169476454526704268803029624578579649952375776917956225785605255349081860907772402710633628428421767139422406202255357409992799126029856741539793638267327212853360093457675450276537700539366938766898793228288818930956445889140036388499425114473950356483997231521378340172648207569313498503779852932781249465629898802907466195807326924066900880461688222110812891414409958546813262032308943531910420641624517862351044744155215571973834733319709631220801928852528911831505221705034668903752314630055083919029367894808032523602820377951035635299625782758363525675719515751636462985872308725362200393328370751587488295542642104893880844457276619317974996105531697339381679566206715797834784202990736176283823385251356662474434692740034576031254336080777795975163479068121138257406345946218972893187439439132459652735579007946922982451487913338192690256740896258676874484217127216224890211346610266625270053465237782843356977459268804258375777987090447777628634516670297913620384115018049645039889008191547888839621939854783925559954274921459884676005372671904613180396864418924741060499385750012159712220818983876805242152616866756236046674465898739833578673335756948457061881072392680342674995458762089023437846258951437548446161929158454764561340266962062175417870859733663546070164281616474103264468012108223318799572827595316815985550553118262169960240491831236722856044250832560232632014445776227210423359862970531087592211027247675458647656369048090249361702680249762947333129312876199940068034208474078421408602190675055604665470498841145927495057131903041204271424207699623568478015015841322573735561772695850564822225308075672271648823020733512824416943741453872094513288481192477031706758255144969892686781413945495438363343681985636644749416562187369367532478131500185959517611791596345750505321186665076813455095699575428671355952150590993718458644849663665132116263962561945834505096101189622736865013377127788674336599870725134866491657232549643461862740444565002738098276203017706983359237017699312854603277492551396156722368745684560508771947243110215724870873438371220360383236391937074073853198520936698182140079758283856578679819749618510133232255881814120427602296534352539311926660150583879906263786517905584627375083781763956203240125986913565364464272990949452463649637491751746591899149548471524229083384487158213943812536656817131824634660354690254989894812959467901497081232746355981573526342710069279669568913785608617818432424578209023690841048021055952769520511577555390356390805897944644386387736679351607669466719876314190044682648371074954031309155487945754568107914777960544917625326834367704842473632892139092083150939747834111172071553559367932154429260168417367002204493279632971594849631178926467855278536531430561992956936979136576300671460606233225683682464324088566764804572439936962797523171836509970407720794901718320259967539997687721447915502976436274923299000541730213894683689577203805668616354855043618450922280346470256864854797482794075843625659351008397912133055196766469495041781158101217829319872203122995368561941025755370419421299815890887411472912571113185637278622787602249185847482255176663281982079849959627337445848253411817497842837333201760144253153699451331519137232210507491397586968152781115676117925004723960883452579977505158722127679964524628706328178870241943403526377344124469459435005475360193065942827705239307708034361505520957007960348490469990874819433516816145180889196816179881188705183758032545446154358193505362546639671607441104635133286765862755371055093638383870535796506092398757107318796239273840167550144467626151863252333144347575797140057289242806611404230170907544367023708708526054588286612313863411957864120838164156663480155608317188670203959875134775813724889949061287054347432727103564142619365020916417174142408448990323455607580377977521173211485748577032875747350187212298041443128196285350220009785716982654399204750832762084946515886784733709443473461864125216077848275765119655895024949099251806244077214482892887895741171843040988757492993777058659044228620572033358915385087478204017890143640808683893770815267945041822211504857134292114989064902976934232291328223971909279541852302131203722050686829797663744089477833715687644906808635216045787061032146134055340322531215605682053918916651224404487897402095922461462484476783528635006816853096859326481012459581160351065228234234796872822718432456883217231121447287525622744606322639549178506898203184451397818002775445767405546488043329393380381712175029559313650767728016102863679162911692410010001847824966321025646748917431638458239463947796179776981111538227459225523290008974025130526012211362091473678761960122921882690800649504343702353969461428456464269633347724474023577959135888002264848465515098059201339153474549027155347208814735461642740144250405967166588458197239697455135200964881188352405112155350785480254609245446582772787135398081568004463598339149801537551662839460055032013535091102800428702280636728276250697884567341909097431573989198058377164441079271992936001642619106098512010152812007459143186000916134080398844376030016013859114249195212840468589269078098233078071193463692504539154879450906300185972239954816453134325590990767273799467347685262386671068931506791337753189826897537984991407730021456573876075057687203804020371076803897616682465716825684435645287255055904353952002701607982684126828653289534976140690099760261949154837734834415288570408642763349934816540138226107014665196542046099288753456533306844071386939918161934688193402183431016842140866971571802106835768625301733688000598139953502518964837404163658703652103789262977747360439999161566367911216009662576718594504827579780146877963935300377373633335063680468244562767243149636734765711636124940357188171724108213693998309523367540936775363697814598960359500127062917857445508986422689515633532608634288313888125492313061357342452695384783639196255013297384900954876784209704729708604436703819727872435814603015964000246988255248902227461950739535944487212680347640987770405676669088278099723364044585811099932500776659005360404708732065031163206058202352404391085300815725721082440229002291692486188554452755483680183657437988674213724396372841052144692073358910688411460183218862981356898903583046712567601618795762194768826552647121080336170316897104625645515040082706161138140026882037772206070112602192377400750238914583811201088129206731089417412292044721966627247296125986894667601856863028069444958996350104223118048516381234202919233729430474942851972596260268342200485351541150449989235413387820870082784128007425573805381650907304577000205319334060406886581701371414575437046233115845512932305153618179527834966773793095349334945390769862044764616026282351065127979324418823661689165758322700182089568450316024678179289037975067929113570189772784942699723951603495849669122905774933574814948391746880342915092607956786967636871744744392440850930552474512812884660083570806080156506952465475538441841034230210707791348569459060717525006632530626872909911953347166511468991746520206984382625459246997290371050113945316373047118345030570844444634915291011832068697604825574339470975041731273505405833177090511278860024807293589107187276158101970591127883589970526408056663067820625753820602125254799761962846019346678765693041243348557590044694212547537646396156714488209892458444387070806988560869674266632351671009705393175363861752427654792412507833497297131204359440058937810129140583556785955101824283202978249921694754611768052257451951609853348090577022568273035209521292094910931596787860826152372016890382486037617141911098200176294541486849938083416663628490040192253137926345827651258659185611613643531735664089216737483243860928587401115919856822111857495754451931661402483708068648576463780784834017972657553773083808080800413690208096354801260138708915050789394283911622459828927186595434158245993679751999575663526062661295670049683210019291746623262084767165072033749525028676763436926253276157931630900913747466411744370254433391646450212084215357068802006276318812800322216494949397987395767491130748048685118236180563336720173505130803680539924609239279648976802298137440335794015629921774416544898031159496801242335553241157424365309107999182349873264990893151466705376374750643635642991581206852574873872163057306199494927710871980034636731231511518869384455862042811588522485244561740035009922127324794218042406173648495722880307115506966587994180186648548651402350849103661399446197017349848158613454363678565614402504528285270080746057362946365821522151089885709971632803650478037920812912121936883330738650169494764109099650062674258212562431930320281095604284886031596407199208860920875972915032741738572514220172887715253525789662140290150236487614610146812024709274981489916461594915771710199947834572482885678922328155199383179439305133139671772741114860597728776164105726888202809834031748963156075020998311958417304582721167197379618387147733592929575922062953503452751835282973253750031059276689224264586048499690677915309639574742577342441383658458612106673260544839055820558794419415928756504218327238035852826206210748861631658395672763159536337389355909339187879632576656497185258710145399028287718871109156154068881382476751897210007052416269742065298353234588561362368593090053131809957380209523779379261220770691821878192010275702731210666714640353290231023088314860969738158546450463429164549234591157029144546918839245575327040104438188965583286672904718470805641635592538735053583320879348549216051949791981220074540965343049942545779647326064269011445739036216802283367793049224516609235657971513629186269641076350594416809139945331787602662774517341385355999920367085100004326476429075313367579458929813704186095204174618798079107321841646941753184285678975420019472431501982792376227004671678204219283334278165988777844566858397166862815081659123513033978014340172741444943291727748127438098988773140871854154088967478671782173511784839758944728753790552965915059945424274734603623865179427082113239162294603172282208210744326636926267811281738037095833000809378582586220540248276555975234942087661531599978122486844214112005242782027918801018349338300318150935987545982471792961025758192777368347215927339942214303276796052797818319207858068312178215188916509037176896036470498181838535349557611870242246200887386139907310731902672804702071016680098656790322518937708383772764720261876769119462705191274308672176063387638495227419597949368731745622545068681990273663353687057086485453683307056023684559455054954087381438630228902294028085899036417774844552069154853142013680518537760764121335159063424537820970348177065738269900020022420831424543147488513545859763817106284799094128266899964881781426995151495033855748548830002843762719004563747714691494785948952472318181500855640432390673422142722088807284465643174365600737692870835738467111740590290359793520366239269657772922091960000975887744180419809828217884207880805176811790141298636305856932973821306521773681937303680773405393342029535307866068759114303832632458449335436737500827083900616983009795370208114833257041547888382372189057501433352770609108441674938995968667869459509925716055830301205685164308076665344187070939006891747265770470250180552628623666964060884925401832188625415713658190070700297135004328330908138771305314732783115094994903314052345156418394035506028545733910971428436556331912479270664534607375199821573811473462724524260655976937056588215487609171333407614672597020034895299055136479659209739421367392810531427010299832339811546837420454719181097763373740084903854949402063076425167827712214940698368408117494913915462781077465601725757534082276061187778617356267444568965233609881567874308500195194362413335133740870845227568936578543534938139671737150360897940361669526213170215574701407519667306262841117499389613800831246870793720896550868441102586023628382198963307200900118298015813701434700927345820931024954321291019057493405595534062272509102494268242837510777071976114335151737833058020811443298719443221887924472094057381041718987387827317098805209548273020359949380627320789805617814129693244004422637464085865127601082797471718965763496947723459220359207371202246930113056363461116533874403915152312166835908949065748305064263325844713301598709061545008327085714106178517719279671616611211754440821502643770476386091374268533872229277807370068185733585554302361132313451849536434611679977044256158137551760644381083105866840218383856360016049876264845855158675146977072710538016240550390522995186717034492581184977540432044953847113718963712052386523910312213828746696550796360281957221717523951755526320581221947479499174932375391707456517793497437724697693106983223321803693323054530728704706843561173542784114168360124350854618279167080162033943948081804621468170910479034281579276246019053924461065926170558948416679528157210534310235864278459168663678416092304948986055085219613393419801215094039924932279631536752400883432306174383076809025459707162232820506466966174842606591658835804537172064415213342088700455777712523071683640878050529408719272226708307632250014311994003965693944845077274466025603097022685022491614980423836991805856485306287911901484840520711522850128040992250002574228942141589816667277795511145944130025073976079774018731845744329815830232391528455554854935903722997189815532851347522433847229873134432542804426949484069697762921326246289278063203043873765952383205201757707630081114810829983628502558020248373349867901097798785544495450218357446891473965966384903377975543163242777204897397240500859699875080312060704031464985987405005440340036607406233048183146410764491098317618429189401707424147848590119311433862557898492179240699985022078255246412092136358262164049756595439205022223872625337947184966512755119254764343446577585417663016904495983039343996517952018816789385655568715181939427495550412430881921208183446408798859779520102587704198552066695095849784078333124486544941837443910340848860821072367269905184370615128564940295478417869474784845048378885986708554942113772927887319535487653434069339396079571969522931201219428723521241858803632921435200262632016564890271296741088089237989233087229239674146784385611193408592811478318295382543673335333646601143410792010153420994824741151614228912629083668719412176161122849735270868427442683642206707413838135414511375969795101931244371223372724812007806468672168802327395847574639893822156376275407727844884227247882583641693179522390599415876519499432008352715916970101813332354332871171832946789216347379633312141672150776902464544373909457614353557456542418775945086219881243145967925930227264804013545758845596544352185916266081265180042502100521419462522413833960324604277924068190531917617138554941576818608929539033347027133889481015324233449580237660331601220838401420370296837184347160725884351139020517579683779873221613530557623256702277923987049491614232075380721405547855248339461504069773810912288811563143062188559620606968107506860249835540099852398840324467837949935081536912408715504940899977373810366300364066237396911018354163935485638387794598923157876494820362290676038356960172096404253273503417247555748350382529941391291984762883837369302247317849007907875652179250959088899662059379276769722931895025629145186738742338940415379574043601274708478387639866742021950375962510525579531404110846810109265774698380016473962780319967500891833540925245000282019755509366907810612999176959178569258934818800233677276866369026943795061762923478323744875341216931846245118978449930490038764588702318043177057529720884898982512082850797300536565697001605851588426381243125641621250163042311776240008800062075146497846238314319090052853402036823259629635859610536840227729773872384321883003920306510805014206470850475775889649392804061984871149359909129195738893224874810298380797333161543391404842430054979417681268026373001488886506462793756832019618882794771697370730067953723737747851969272881900674197472359162653225593218638713520454604398211771476343865783083965601266228112164325773063296727802376273360529440717327986973788888539726104177979244945897836174512683328763639433003199156380155089033861100477606540785366225761585924564417275914931659856514803691933961302551505222791868893137537988332471005882167080302227125096817066200567284166076371106060194296521098304061454160978713369849443801912168003537930255047204841162301282797274879373071686699211509242799281070215619180638580268827014235805763700126659272162472160606452904671164870432476085925977579290542386781524763388194590283482997696002595429616836884238816804431254965170959793110324752364139222549960901801635793134150455401909100971748100094782941367310846714377031296210528950081391072320487400186895328618682939783437862574790943843957998466838610361045566880788921811585566747081363280716607211523252634642641949742931030494674894063898363161075597624163586925269187010477544763778999632908357914218570924580657392994121273413245382615850375465369216668450769733755711730049489705429491375434375316216195039157341425767041800041827951497984630192504584525391374664027960466332789786829654091702250627523129475257462685567066951917025410005387615358694349687808026777839792668881380093402474818511606587675488707213673540157206007150428622663025303102848581825577885892688958096048009556697440883678595151089778954442633957061635152758007532768217823142042860942024694114226075878682773336463609439475504552143391884104834226617653761278793864795776708079839071611562521623374522024391880440817457983397037517738957036506193869284925384978144707092853687106564728664095141708803155195539415212899531478341866266146053377004157702443708450319954450346859873150441957008959121382540562793051607374532397501214387075322726054518165237380370196593530108726284025877778168346822857328855777971412120311876699081337125794461421320162026085107806002294311484702638210635943643003689253432440747226278266003564820607779119258273883444885948927264859882089917837325239484429301211796991502553680317675598978959524153369490883339664451647136281971615290492788105466101131682346265578423972472208323712005229222166563986347756010666040016784132926329848400873025152364083671669202408471898834748290291633605817805066718180624451769987741140108589899407863191087394309056213549603967171198854841035130477883416358755768013153979761194916808918232733544524833314391578604114183356528437587833031051071799526537070301837421219731073835178784971910195250083143430259192005189167125159762024561821295661151386796490617759207335370376230810207755429480758794176669101773243850252361986454263647805852842234199612667401971123164988635610643732670728831039588687908504812521192146265792400780176527209591740645839680678934261988733624743612991066401381488591384936997313601636587017263384143366716220062509945657398282091023732430596278133661385486561571420911648457231642158499601704321884474351077771891883410714704717430313845010081492958395651719407660698758807893323156761155580686104066884428399206128918981309455619705002503432748202991359626128422129506263439146535491479534026777461910675853149137312146918596630906980949223334363443937337774319663302175801835251341371312354452740100422785859578537379811060545616061515011652545390233183314567223487778215781170286406430038126505110303204740738028077800142578970729517341343703558163542448868002657803002004541140603559689902243401913456212955460025531801385505237990687732951589551553919362790405427330755885286571757033436312578936019145997017970480716282391619307852157796243066173382123558236857883999107810926439653223032478290512483265621843568955962412795013081010982706726598349854445798329208335037107726229491306188747440841198590341484277899738457150342421022316140119134898665777494026616010899015480844243551299489058388037704753876007601991770906915108941721661708571546748461192783886574516442072659394028070187224246187981815791812171891394370855797801836271910705062754620659771848466768770009211296258581357439295988543336763649558804342124497344489010992565906257748625445897903421958405085891197235079702153605280711484310128298076472235140036825872029241229993138584289490545914020598359993869289413376905167342605111261288246196774029431275937074722997229262414089026975167026548475946210897633218146465606024777683986728094939244390705849225187001225915972313430347516499667026356752184162813651954776925177799674934549630313011209594947749825497527600898870012755509622427823386587471080430313196670879015361203431892379865465849449294365438383242989974497637632853956167476044467937342303581439373256445267749417290094481717445902859806021123519080992522888722595716600398872147417639296390258384710898505711863007422901042795836486259255801690338352529114380592672003615914701917819751267676940034369139982272212603833390666221472879595789310102069209680842692473064253062972558930459292007165621567315049533577983433672986109158782130760564894257582406223545151254164438438916773446707973846053697933165804188313716446402272603815315200190460220452133938741022923518502037299317161657361421166605632521379405899482683772797795495222326042820597996738297187509481121252707653577539975507975893130882077531505843819677011574137902369425192707845673023794734706074228992882553812575289678340316330984339534627892537363101695928092590982717986288057389697411764776715958856780840634126559638498578849916054350502428551090096937324391274804859189511246971185629554006190109041184936061126506742096570226790309629651696745897217569545673128457724040477915903018656487006159777234307235380601793804640483624923074783066447022097453483458422480332060942547246148424741181575056964882442449485257659009723622893040538966221099485915940552373017512743405011978393066646886772924515757632032495364872351976731886759461218220490730293750404007606904831970998497120741855686534170129485094489049933438093232218081606444156698783542572285975111517791385379761280183039568563248993995127248838654512199366154720559755559281552273486547541226778219540254487858248496129023936199473030903681590663767073666997438582089672483609093528507429831238047993871934209160926705873216190231072719328992619639628905644025960259284328172722376926142139756133699175182981363008497825504833968288952581153029211140047421436034827377673349670870817123291784543673878882854089022349140364017741699255454517523340208823608743320996789513188264101271016835671428876703883291421578426678111410915604013513093675159184036542596427434910264743322776441682110192918757732415675599386822261043847582931802269688618987542208861231571487933422930634687921482120803116024986768485612892844573761752718392398057651864076024337224544764694854487574358849361795693293770371766918057613374505463210543437326055246041025675676515115967290605292156876491666017921044557070700328034883366149772690559563855058153554738413973777528495328529279346540528736543042922376781421829922375195771513790814314506810642063116056408269016721319963103637779468031788571516470844749952951854489337090785147050131387253428840615379247197913381536266025683927616166682552354307216043005633978833591234215445166614822163435982358983162277271172422466474983957900453874826843610167758320465116886171446002057202240978582561969913777980804342179483558153495605710185358911452987594158325103717622010292338401849692138021628829867917860823901674378654820337570960770617721210597541745371176488801872110421825099011299521510254511497571208011820551844292681879469504767733326904633638592994023780330242515397730107193723836247616561110233123369248414502132712953238476757150336339901320623551691214391158788895759752208211158722386790214053786572195385804273084950690824802580861157945278313966151303348453414993405112150395517795837564117644758649927591403002023354345835719037613025636481867182493924398133078279186998869284338740806283553046969749234685577160408352335881470369384002930463840375671919335081632638348717304292928258670877611021871864060072470695650585719151117893569388596317792467350322841528981428114738798234395942206202065789413225972159242558024649698010168717380114597322871912851422168679393995593463022186498152924770643557909169475033532746323997383587898480909966630545068844810391347327762753360888077950407343120455631635832100069439779770552686557278628847882124391662553376973640782698745839249117992015798117484213574915219468137998857140590199971267293558607341096606054836320080331615303681356473540984781366357056179655201876833880884914487565675284594552523018725706971096978003696567461222454462937551742788546064843523390900551010414269145402957808275548801112054473119291911069472067349140926767612970111535901082440509221085306648121005585373311960065081149331178856859758419099205862217153328071783160954414393619373696559508060610208088380635950393171309823149012473902434416909736801109828557052988413131386510105234274098035730758701396727829762555510861871069478678068933746817874412634621443941637753958388104677267626899240479867153506347749957584056670731235737458811853872428568423124212619277150677168681619546556887475220375187608459721075597839949202867882504520656464571774550442130973106585551075200124835083427860705941676554962826825664946286557874341368081898264183073695528545062445849046155085558284601700527097080287729470800838344823991482368076735884350826268759258363345430300465363807146452044866013484657437481156253836892426585311844601818652219437021897830395283892646475353277361923755585379871450582016980961428748544107329199600034196999757457473058506260111553132135896720996792688451427493614629788510446843723679883299830723701979430082781003961164644358222616623409508651576463865284247559114593009332533637150614941645014660786595542308883873655072607285625433053772397276001200815255457960383032906986157343416259426714009764614594440321423243376231472262067998561300955873019076594909470825799277732126873433643977381501261218286579281867937823451788378089977858527950204904674759642986618538012175263748601805358647921186898476409019005862114474913313085427866388334317657011890709199506689102327038611054842856630638259086358605449306404382021046336912392032074166416944110858405397125838345788591025704776869976952587842950902757528394341799294636330924308859515539422666397332054561069797805470721707954337053450814740524822234986638033241317794772902793813533652474902619500481445287294563616316027045337409465376425158351555457913306154428781955735886821366560236396370626253739642107416722398294300198360018922841296095367768035405196317539107083242197782326305423742292790047305501973814016443883988383324319203456899317594108963034449303646879010925566708718952289949490806512802138092495873373761094368686516692885847849997653288095282948206434293257898413045789876931231776725401521970621864932404198493722146659085898649745081041738963839682241105479194565207129598965815651088678423993511761096417634117115211938978290072397820516612941027951114644982413874657067416907971122718236815680803232122665910552925961807224204249115856706735291909567531635066592190408296487147302956548142185552368294702472503372813864672715375105986568852270488894444057694666508554530798902643904959186564356553543933770963426412585892282562321479435126222067099198548868984235162348647567288268844677093954669264684784729815521498138957707423207232629818977734911789039028008818150588874188652511403665260127293468666486591143027055910489739531542918582486905812483876070016655685515434931327396136806975408053764706749048869539011240175961606132340090034548963637908014973758141915270946718754864754743030471552487495779297630885292424622719275977644868096377715060731643964205569405284953062206843981916131836837467886236701241931809641436437026479878774025557704686876772241592600885899331362223241806877078811330379712506485973906763156413373831723462057610446434416687915156090252300057089112433732371718762354039467230937164978829751989760493968275313674491782664044339138211009234905105410681895066497068213104065811215437212445990182910537183193423554907746425592113898089898767039735286254382025666634526982078325992424822609108012879262584741916166425513491748692436093313584036217823492195701905204156004955282837275328996182822673057557947644814022614858889706212881991117566865804399955837785740479983021263846365418687024136174661135869671740331969451441972878711570786329425616499414960090312277702681836017493310953666016606210927081715187026320440329252034758768633845067726096198225559819011761686970100775976137504874433662212362065949491573591990533904989111243491216578226917352427275872890687453697681926031634026608698797499394513189779961913451963337318491361282157639557742784265039209022174398088850531460740034408316703790081155274581978665135657737514909234635949361496954596873713387014849944907677656034004476724311701534550159123600819149627732842877477666135569575605015717399307358801005792666702028247156277459869646102783989990802637555500201066758360851488377814068287605543327233280631459374729760972932919434570843371213937432961212866826506053102211970326587493136766234858832885411642080344973689223584957813941252584885388668491679187164740351473413057164278633280583540901858239454316708841326558214508135450038538650240086345737502273866697974956308657841845568015225678655603904503527743659226073673457555981269755196790537254489376523782929015303783383126640134751678096926772640215075701818290933605824238831201932101790794431739110307478421785331839512394531530190109440809236182327611147582946145021325438189258449881892183539200074617091500237550342138936445711421625715598512951834783271228309220707011272540504773646791927482714845822057900539463128518280886876445834181924105336589080698045969196761057850562447993139007515632913496444036804167781738425773610943804161928219680459224260469601280372960485045135000597952882144803909398682140156921425552363098377750839939428673706323714929914497278174925907603372591719347841104522007831435378421243790982980715812312955550045614285184282090141628275571720839064080966819189645162579256264181097591619582893083905029025361036619736005364731254872014274543134149944215351129891611089840953182020672211777116794724012687412812163093048683909312206918331203584306694695010982948092925430399745162720730881438670828075733997665154631146792545224175223046228584337179833660852853209154589376335032879433766864671629661517583943880353235995764918554718782929638864361852999788368026215419437805725582680829180838398122150947154891308893477479851948901972852761252380510342546289018190411764798965862340683601123520016348560063820166551739815152829355671848256776321862338920272632172090349799796247509748218151614199944204808080164107607565416055761101598737738022290760504674774324635180832750947430329780002713508161761916362448429859398430900613001877595354079466664935905346120329661293681391323071042158556870714879207124105951111358409266871257125228804496271340826775741813114440635851405490052725248072836205561257506282504724586848629347108878222948418551343141903232943070104483965297325895303963151104962901911325988293288307117875677475168616639734601566594245527558027587473736789085290763589247749723348242004567068738383645072149493214676800403105215504864374476500533928955480712107776203987012598941329437396088052877937844244391878560333445149304225745199930925024800062213520622050286112580351612162135857170338642723697328693249210704397462177604963542743886800400684409057728983751233455456020180487185077624752073039235040550982496760857867484138673141375618239461049851900181568495085387725036776293920399205960588743712674983415624156542772122778837703928035922030809405596189229712634758126477359329407855226065130339620341749248794315621511494191356617314699081180986978311221923239571437698255545715722045749863960528802114478426636687037413538148133985461605672006422283126858617306241134713777865537664001118283263697791040204647921162375707355352011700470852127952056056634760558507951301935027660020713860400560003297647386109011975397048083202261698416288251834776252135098235205697277969336806020458924961781673122361890880090782406288710361648763162680937135146348310660144675918503142378034364715397296574333466143348947536557036735351313109911643014469463527372492778405025597293937408213989233739192982685316299998652413201636086470088289913270185322187749116123886088908608049636979402704348731867638425995380433892552190639169810085004117195268419287160411811589969634405915645889092398690289505331883603624393888708313475832354847147123645011701636083537293571657074479002956286475120264760731645701067466334766189310096899022021848108867363375542710923680111052313058260856851756567507252852683877549241543158547719002727335482546962757759656516407719504803396098283783667721535307885536816740316896788852247241303068807227497688755122321089693837728058557763353810905646431980290632098734532076045365194520000099437295183667443138224600218399827170927750802965632848175726938588355226958768780904122669078307991213302705576863100819799670305950367550057616650212333270469463752133096521462271224097498376542925474358028419741794711775734975921982381563188727424220905947004726182404928521604370089589371493826625547790516164314506613244965601191314173531381144434346155983172354496490631873052751761818046330803934625436619640493184973277154168486001966970799082205969052920352968111982003244097973971526420024757069027282035584176156398475333069863809990351238586273422118869236937859413837298248805459912244591795951650725392464189465027239551527658141110090812751081509533942065073045915198107575087044437616484857655452297566244086195946524596828779975239383644287011189240663956255419361383322605842512572372913687274248078203870711068219921190482918612731766631780107576369677294500521248596768161048083221976372369642307226567470492470040151106974872601952303621755440652248713569778084850250940781599982478421389396701750729000676260377001460205228996668423035856743889026324844813112721987204253223658321453146596951607155104837995467270240868371114852566202716240805977019324078412419872530264248981810762139200196779096993595537768935128905739691685947493673359327155124284290241486948654073627034510989923521386967184654537908246470192251599440697406570307919801419879187333688710365306785018049004449578296028692580458072789406357325048577131348445953517340544844195231941922782978239772101755938713934337969127052921945259304648765537447899147470297989610278286773044572253643646356941581595790248983585911524959207867104251399992296667194613981715307214014922532573976523273418971940080555386006340691248597494020631470844558357560365212282551720242724333051511298752257753871156308843879327575751997182834223939082025177061203122279969860953741261334005382409388542842879738411191234614135456959917751965132951387167780199161961091646068131967299598171042535738655952910433341809441848883836128469161304856271051585360044632717385549938043837143408764249139345586787015027220919715425716204165811535854294204481736139402604129084307809514424573145835188208187416177691506330186188159842172412882980467291470801382707492266788931962035663860104613406843668812766147994484604521915249947235066964986636390386149663851973187852666760317816552150011185472308579369276936687421462540519414222119343152722893589796627717284289592572088026738762700163794526819190677232703880341213264058382721104560214575435703054065749592019288486097694478820431951366386420804374431088932227923935117779564360364288248155106313162556449330094841421926799958732744178006860388405325145078738089444475767587746787813411609431311711478978652303711347254667884000579497983812084000169328054941904063202820851594022126089797615950736576387231326686862464549912525356402135548064505491754264387234004850063036716041516883882239369160867567851179875953921264666353867143418289418686755492156499531057522610249085553185833680371006156556631092402824250928294443909869153178006609415629691374596597862289748856834359317385482819370030752376903221715190087104930218978843992346419665847574221546648518507963112646540024355128237778557288768816795431562793913674491085035520151498300522299847755253779504158970966396341501969273251622214625594976506462170882750679160687799846851757316170752561518265930643385986774211674852727164116259614541663825945906116729079817156006296742615123528396173932344672771524577671390092945596820197380800761671873827163634642396497956626823674415238207703113314053917319272888397043188775541442942139983091314299774321190463759000336118360356381771486300267440451207425461783319107287925009858976464176921155133065585727681517270108429222698874105732105212127518115470417634146006614493524630325898298989065738001699561147943904842945896971089003057648312549804366567199122201473857238632966778135799789502192998018886279678509992524081458036653690984611044232979819841629538141371959675937745072713493865903118841807992384871922775774794922197537541654177569166635677037737742328260993691606742810968881598256600612073036327283520340291220538810191930892557536618569518285728811047309817790009576477966137617822660150594684342368795871892427759379955857562128354541782496498395430841514409857862559405976122406526338502568350278213749570990041706729380902635911726006128676258626460540382125483235778372995140166993148823391777736223254476639684242683344152498544714480654182964420173930085358304670812622561510383291480429746702007800358503203339487679684470519392555062524945592877153928493821573783734938036479989502375463101409909777728364627624830938765656685277203928265565662517430058151403605631616950333308211204967403259225022197785296967055013321470855439111555862009386562102874358870196035829445127611819453053608146051493237519283748462346043185965578469498640869276701586555582096749973475199729046804383905907344931775992837503389022242045076701954764521222573485873542882062780361445797624506911418194371023502850676651636558446591374173570676722422004082125991052805943476820826324931723636977386363389675224599497666071362203367754028707116710833005910320167535747430927509018360948969269541538265980681352685116438548565281439654807029445248977398101619317527001949859598858678475380436575832915445720513907861695441215233530828930493539273825945069730660051103254210421611616169127521605049303850324711363967843126949354219589291484683151066430324140360492717693178887713537806607110590429303010180814542850346871722348457186911752244510098930492235370553560595720580113446939084486624587596073478101378130821925166920799518324407064223892073628518161354258905785364719251882949120750691276055329887491809297879877772002241990228902281209362330160223230642829790463837279942248148428091244259260084137797653860412053721398379979536457684642765119062130470923708851953594474497054910733199604043193935236951193659966827811488402467664303428140496527061899405959075884117434992087568143771711354486981820054116201378858011624658664204274437934020676678620865137147832589975562932376799136415960646852466408582463704587355789253291175692622515006020130223071299704190953247069788988775773412773518997453192720130073916260176658816164845971017679878417232740483454747518916600148422285502496015267721014381135683071357315182634940048282301760436595280236850851771456033796941730124949243826977423980722977852208431401822029469037758256854144714991749242251453371662152994456251080026699178182460469728209483139538452995977286627870248171579274817536024358249035904773701340573488163541892425953310087426080356043085805233344790234609436041665968020642504940171675800111479256644256027366057949903116835577012177457141039384345154703075259194580257219652571098009092849923097256132431765045573718603729104382358332947312862858699207171883049715104652619624024048822660105649332793588381224491235453201980435853710732260411354727998820365536380099457043537919649093419906099561795539565315235649908405630588371153134916125050588481248167635968732987485842599078557806164868821704221688647034114838503841588816735576210721374716339985215011562945343014483798160958708157225311754601293055639447412947121542201278853534066608392689764369462715609922896308014827303667763454011736892222862046903354504068762502316658182434321582050912701433638962797796526614724184871875220073326324929168499851526616392296407314191663901405241142347891848815612843560983073417807859452177722802255878745272448983985053949893580958205738847069525666924494152475009564517544777887148986031479138231778366269399905829352635442478875002390160093221581334364286639410028327608025906852728608694886230870434987508483633880617348321534812779478297046405062774516667142620935076115822035966850246831789733303222637809079203843795111315885941975878381017556953372693835646902825919887965017211438219322710174334461220258021304605238948407715273375392111866641690766979957075998492032623689999359268924138227711434113048571315296818348142781393087395939981746493448937207250944349271449802511530481686192705093045298966587602963593828795673779387158443726606057561291340333878488781553682715801242854889204881726224320452555681688188423949395136263487896295845270186197075523557421201529631803580027683680836109829259270044885509204418644961530760909214525079777217029089664672114230940862251755941927607382892586559138519916788872028491284673761492907000946996051176310343937878282631707128698634992011971053819324860265464684394680074255856282187062430461469980002077135288609072881025685040949059122833493998149733881191397439807401818065699944932378075459755726758211867154518675065107086487706613052058620037738479895111454244803339184119609979588974411743303635456610916905925096452590477836828523280467723031689700405206808476060658771532016552521636560414648357714407089586950657210418774136921127706653167628900607185894529894724663509195930633161535081788547057368805714900155556834354603196184803736981835869571181942309782675685540110958954143539640070804530503490927693265489651267137842640423134695195577977658567621909563592755251077872368492890756607122798409815440072599945828609528576559041412467489423730662728354674108265220428102191297080536439777093906510847361065136431921862583671945984907987610376344247339632824178881806764230888039619179089951613179538025509276423953072689799253499879031906189913081035547733022950652616365479620557230726839210350122045653915347246278217527109590039555974139046993064958297100682897646126595880047668192701670339574435649179457592040448952592581730194629008474300880296595576027663387442200670957308992952466452488787570044295297546284097221355285403045055062702156681254022385514346645267769135795807663851719463826231944314964981640807615461363331096413181603233696249116384390282188380184158442088607240528370514512734001528697747556141529336608887797256185892048310574623003608268818133732872637237373384711766906963458707752477127738623937733850761250162046437317300371816900220560214504673571334634582890412249780125475441551734075501820630453792774059086920770619507276632131975309535428511706387920750191802638093395144221527280295250505380402500528958031689099260077906351967899608287749962213917444820459044835539265161236631634486409747567089247393481027351744481760276438447573768140120770784811410694885709332370379406044282154344602276725758178788230949632328080497359442716331896833343084319224613318041810453097273137755024392721903918239829183860155838353972439914290127747938158304333427661482498423925272611251566399156123828718569887627672808556291255297852513841292399692794229622495135785333907308479779928073139720892491532184844689543270858646053729225978915062010559864422325997386123193550233209914114090383862613509497404308221063872875088932466937351280162155023996874604297988956209417604817116450469858017832433156091681918624734084241175662075747954152267535138631379540431378048454961076177866142391427944004382576754217865413470811421939973402368471091351716798952334324177923581658386628567971874262797345134794310350140159831683581083938332034590535849363607559820592405050852491770559360640368662900175722145742791604333654483080234852320651643514974694966664783647727003672183953700915948318690491190117779778142777011157751311116226441700496912130774191828003321277719360065724175757675159834899142626833258696732867141531815997282347479926040584378894519955627682802116824239766199430654445813213680341297081873118903024137349165651672728969733346666708433370624766524047752953281491893224166682035039149890817426018014691278313017934180566822285790957945667374810527247160307643096674136893264511667930391528444306096095586630983331440086217904865439077627180640027363397547247119108610918403098010835759287876020983663678546205666645700488602124594747495141053287708815860117030753099978184214025020138911433626631463290193312065295095952006526443260536545355951407315367648436240698950458040267402452193696703555507295767275848657963611111849593689409001515409376028179792975279887929239811897349978306058107519060741583262270939330938580779813655495652218649947122287469414887656353908614047682099304095795198561632523959256236762955570302767622689387788363668180421112555321157023708996099763995121176048943495409799081924736907110765168341422352257223080098685294058945370073453211305031969491746050631487123601815265395351091047458440517976027117161964474755381059498314277719605057431657609549353482718064641570348743866230938761099574016266272077529825304856285025823077692591412990254881075633759686723079045582039972153354818534823375239780203862154916133089047786544439892495913629971281014196203198190914399748316375671151603045330146007548299002920684627648230476263431965617275543638155959065596926206264678036966959878900351738268059856726860961574811684979383800374248724883883832363498565547963521322541408168408135981091157391822165442796955632413335270713425221057594676511883516440835902081243236075614858315782829210300593968940055805196795510449647221158770052661808902652450333061894917702968278595500080188775919052506541427060926692419615865770688109206985632938788475537897749522402217340336802384772760685302619324790843412482096859848391133451219081632472625142103801403043188347562551563013047012725384459774485565636562366167347955803280771949976749520430278285324232040988401966630401331057838068263297397040213142927681833595658945166212736988267758506156126504246456047608936168947604321988134975602439186399461702399158353334056278228693370182682557514908311184890564789084159758562354707146102668670232717657266313212598446647247599940053011459405155808872222857069634095501275359831225415993846912429035989255173440884914954587329231116316714346300180573512908056083358413843691857303544899109625321989652707438819350336542500875107548323907089078626802018994218144083150684012268626306381806649257175076196192582881265240109596091135183129395435485413021995578318956501807967714643562899873761388318662090172663288784774410566205906813064368726475517907133671545064044232878647569315380256708223838677808425871216836662574171784701473840054879660115784376064407100811222881509093338574515691120141283834814926966488818051101933742327410230965145561311073490330633846659127955623238940425235276348853192646407530951441654027852335203007681995575362169349194230388892193394366028545886503595318289730147708574906146130838453473249612061670134743845655402751167391850922519943380657900259011385190264726019123425627868443530900940273277268120076173025569566745289197046375745978818439835997168286556021344831007126907132620645620191078629852728564128770583786874716495229719662857176003076603026771641244058323092109456341936962843857092456831027896085274862559143613177104568451206916642441035465927019899643590165283857242564273122973975502789025744183344900704884547554545691938033509606676562637231546267350077019937062214303811759025824581943838451340034812700963619436139753957963186684822448492198582195827993504533832823933068130714714211095065404289454361917613828969968848106018174911028427064852097353370557494358042794935290196774736230756721462714830877963408557811789017807917832485632378879464652619659311316443755661461009516134118726530145662106532661146717055765170746456496643232541152675799172190766436120500134377189435083357749012472428986148536889873050475471864009251012425014474404364562786749788607090822358451954473923729484584809127501792241789934147907669080610999801552941325486853238995201307320501573116000062248085813846130024449787959357783914954479663507860434385490508282789895586848055246377152205701152790321709630111357434875891510348456780809902970588496148579932825727969203232947482636666734434200678924504021158728334473137543146795831816537415062985941107004764209169549384842042350003321830468767731410716708037695475225485722875760314868358735016304986171532648776979877242240453854332953835065778471921976457311765410650240637499813288830757512842572683952903909926380638212186403088609429423680739190698890679145553053284876094126762839346742236854912798555785568008208713233992019910319135117435008926126589339082405237352013383412412381048105456074816808198063267356853027784619028207506346807359233877239797159064713592410733137330760713638257635884899297460129856392968566459135710189552369433869731235854990161142208114246799995256490040537551426143126080173182964003255838293367164414010225728951424667982667981113813498088509789980205118197671295539591582158231443703768472836452295072790317093156736564435210231506089437846401880570986441356417861901624750885790939754119008112595749283446215647295576861844572864089967714341786054719583802763088516844018418506321657886983863267035288848442379108906217885075632271554319875431722625324029978288258188680027983551735234031091189737307601298575368891855563472683530707050875247414223450572279290891259926019752620524839077162853328178855690131652154613828478905042926053611867841922117035245118408003052021070149022394067358402896312099427855771642650986860732197268414247066207652779109476142336849551761910964543571308883166237484360769716327058549416862383159971898059128945677867058151846621160815506533711205452318390713588250929147230267103076905816403413261871566818484610861666422722422704375117312854810003351917922824700738136992352293250240021703303915946267986523723977571357079013938579165535788303136510498381589794253225389164020331193122114964361671758607311558545203541669055537597527680181147379179639465629178487974759687547573754549559653882083071479497460761722550703348198002352556889485691793356744596612289666015473409285085310162148588752049651914503624075748549215811933042224697906886735615983110599415849156587867084171835221799307402714502392021602055491042014516491093288068042513008631332204469597307575793545372276900277963690206524480215445119142798964338345920108443340308916272285445405797022324621439193118088148414454179319364161032806936940491795378765951286608205953868408659374739875229075558182130712980896877687865798232048038927029161808985029210767070942426754958458306611811930903966393936821635812547299693814008402248213559227114739413896228940027354905835767895455016609281663318380796101613128765323100876857692842206026484316832468459584325523134875399312230409506295242251786658999009151396168240315354538829239284004512522360559118724353868140821401874443121684430833620847077410673758194861041994649785933733937185031879224961620632118004717363058030832540921205345404876741286995660993118847001221249384425953976308340674103429045249630796864428392140616461580885535126331013653497471160329534298614349442600111352420976561377947760707121677228553174420460886440935443072209186753646032032220202727776506693607492933506406018649455920426019534611084272201456494782294849561457050906911568612046023840636867001214458384335323091114914013796475139517148643289158041398069326532633710296060049395755264754064280560132625052604167596955037315168179510956280316105959613020225754523302925379815622451291168830060698705603100050606735970125968804234770152661412213057953380415752822513785574712500576376986748099823093063501306698264333372706699748286264317116094231158210293407594690166214889616652128663935116881921206345732624540778071479302056104222531094527926793924479285882148340529645449913716079179267004429932536026694331839511945422748580269910416221260057447246885969348160115449197538198021383745788840682461277750553623661238363089859049362408597498873249744889847346189516436266558965883407658758966924944027272252837140922242272418473427739631175654097007688829398569687642050039401448485070124336666606348978967514199192198549759176908901468287303222122059314671653096686035845095470160394332379363072967885120303178323545206038492511252899123003986868132834597984619766407654232962117771595572358531518348524849548496248041427783257846977953749523229040709773213068499250468082532386778456603724048782125280693304906981038275787828822692037108299078582246218567891016641116524225633606795125641566002183223277296875032935784466848253108370870103548710339365999369024285877557666032572226895657299903987628188454418918174095649038328930611561260923251306172029953232970373248290657644999234769840300514772536155949563108455466456737775467162707786109963203320569824652421852144650670229842848854615998716260381675601316877866463116880404503060407070769187113262337879211830641156420662451972546579778323388858676426355986189643908234145669483973382864221926595110237214663373247549382204652636813462734975684013294542256474838780509359888187780683944291204944424709861147247202566706273708606254445046462123631194298967730885563068181551256729163450314283744185331336719892786013727895376064529369477101882701287799223845929264154884221848749766386602477561522618208917507218309723896073187683615897730467634562381676288883333691280740956198442039175026525497704318307937385532555004468463597134107068818732680598153800335124652936644537120567636262249833630254542050375573961673048316475104405250463582567409896680887239251814367395052654803793335415791035231446263541528986054374786661904065810447948004008906027275874229480210458296894632913832438142424688858454323602934068055755154500660919948060452831192604204900264382682204614927309686029369533783675180305421177983398700549042205775340069971638294299138304159792673977724770988256431972255234616535789141841653584480074044808788017907152371532010599489969609484863905386608560835489737170225495446411075319804135576602096542253816835361714497915101434853591939811399809836451306052786690595375143390567003508773115982245500369139085135888389617396502681248431747025573171120005870265401198346526512012504601221777729720968585699985914821487981174600210251231235328964778397503670278729535315846496875551103679849159176658321407951978003805547227839100845290894482195585380074215975696612464509831988900495346419706161366275052901605967474918463215950990087818210613149953718876249808492049524590807869939228235735934087097012572190420866347654599285381610780390356297757883305987133658046749147463093128120331328945871110198018796432100701143153081104199992951436573216670974335390001483955906305394093356444864691422435946981696821727918124365743390229789204398099499371171870138949567972138075973055854878702412809104579848689589464336905281367182385288864821549781332247205223512925351968638808337166215383932419310342997014509093017317903530385681426473247871955262142291206222577788813815015491305878053520604689499455334681376706874324442162678049816672495490907530328503587407207755297781590349482874497888349045113136066080762226023167446110880832415642609134167134061974413761593674069355826517864630533821036290272483265493338152813514707565955650794829506342728606748608114399882264893266579933304444937013850100323959657276275930431896798382923819562555033661943169299308183272256505794921826293306180211562459114104109561334650081333261759597639822317697813901450496578125300163109865957550587271211453992996257018535831941322611413773551033602529375777637596947450190367167132862686955037288741630111495631256041027684297915042562796227825960871197678105235233375991256240274559202813861946993397724905175435471228728970450499097593012278786284316247904295313249301042911033955505854501252122189190342395821851205480865141832468342387915802101500652983736345231834505391343066517499569458575162251900541997459419732940813319045810390999451008366597171803754121700138578141803653415004615154200076261999714178607196608567065071719551429343646005851241056951423793134365732530391643642435234174935507764374141595593387178147415811275619022880688779507620319822110857957298138299205106110820526412197463776810930975328951147463035129938847099599954998907665289610702685308287756162341118161524813480949884549894790207832285174222090604710533612087079163156780458283344120548481854487310861887897673141284985891063609458276968389838786955865718080613990862354615382265752854175430935267353146958463525630408587861252735203639041155403614851015157053889916724855654885782313974211223485849775432019559165080810922359855084851911620330230293254633307403733939666030029352792402482744998468518949359143509292972501044412414589967616014557155736384287614636546536815845111171000634213452928955175068636261489349407951124698901091877097648079123268523350666307784469484848389412131512675351220953448731703803906786308041792905625865821060805498968455651278997409498158789058776435613618066158060649208461197112844829737015659678564497917747626062792575061416562169460722006754515475894011439202569717252474434994391192174700769335405298882724223585581224927658727953255630864095482805402305564713428201330846701625120268120706277646420369403901423482139329414282826939763549941946289202171074000488056383974822311349764411715486476789310018425646119163609306760368823473858624287959044522346824931120191067767003515002520111235898252690471145047538091475847014300985034297649432684638199853997016142238430882763812317123659662751839796918350746250705474411867420436071533766072789310009492482293818984115699181109806706050901100319390893593536195098954975571571363875368641618877792810997470782335275621602795450914120673296570567499884072311045986856819770776762380358208148275341226868671063741307343198685938876886985212067297995659847030727831389032429930529696029751986848066480144465380318884304197602646726714783994230618668954228879953990527408545839147717766791140938571855157142258158638347249583310204942425690412597555788778446829118188631483027793588778155815103466365337037147280496328932694416908725760089082186887595917467594811408409860235786953306093191543218010232441902868537173789389403791635645378552951525056441842121421829684432529402306071947805099555655301367591728842932681143557147797703200795490137175459226387066968613987632838726262973140890745942171369658637115963785653917258424047649470597190839949923205163503932654925993840396338133872840417256919751435102847605497832997654917246394027819712267398601628724728068127331798481448269480478580010803756431270977675734421232767690725288461711431967108589071649788096210926579380490599937554509949391205871402402495245815539350275769702346182003542462435514522720239136945605836930623121052834374144266603874638058177445833629207146574277562841324132089263767440072821017023326324626673392321941273082638735034811215461107842466365263873297148601689540977052503964234107902561832688847458496029302735285831720122939116607279976232963098028468031604424991603709030622048273190180777665524255196526459335657940903804205987000893056826494762030413596809121964234479365332829349805380169808270533651721558596816086989260242846998307153213516388126974630051852888402704523456135285508602363814228552847053034572686923690072592761511424549866960370650428077640123162894152526350689193972558312712940703782238489458477512994560775213675424613845443889323750352428593670406134098569658286342627940729534270805604436914412361348344869759625261862763708816462048695657129130929938429861899460305269121061563020493428380110629752604600610267743687931152227129583727189314817288119179450482170447049892312514270484051710350977234464412908853397995221882649235459359276070199984761927082068257120494182981524745307009089142248987698922900101343457662786178964194602601934766236038240077600968423268226235834657266320652876884039674626227295850345685512983783492820746467683338286763952433941486866728048058658478787624191927960028021224627172974826003917564992312325140289338360387028840190924135485087965076675001800190684201883963014163176539612560246779155590322853617083888834136410942721537060024564542845799849318576559720606492784493341086306766623403875103809940644881598779251098594132533094795935032749788283183163088144603808083195390988668266357838047444211890353071918080108814567585075216881875841201685149800563029244622242803746224123618268553014667118662895989502227178765783929232333198525572177920123666311765631840352749535391129351310708700963044316249906357432339682202833090590891791651053075694489103287291598633641583748284470652582486218707734185179148545432138407841065683322013890221142450211889709100595282372185470443440132145946886718692566478885289894847591827308103550010306051702466267793897465768401597411466124740325954543247756313419031921595102047852808013233329885018420303546079895890470363287823759507297425684194695950946093640455087089820279501554303740655316831630360968914685710972710782138172174001000426872420305143514341268593353490674032657243841434141919210493406162764555700284288080302876121736810865554619645205685763857727857864404097735877861029649149812754838333618440672122752263881446857295564321868810086868764688377492831860460238877360665436307203661067895078851813667275556480692363644368088141187009039237827911527549380808406525237164433812747825930708296889839634345743047021838319885377418880285241688792988893724842241636479822112828370837833715687785274918740811544055364887291032407542215886225272604793633616798073687784726682310602836973500794861857207010228061019422913354932396834055579510937899322697051124581868256365272789251507452137741440862255853077938207619494471705789036424931919558387688652702762055110577219008154420087795383361667588272804867922224047079317941176851774783698158067903819682828289073626629023494574712814194388130096081301019941028958582858716496483870793261419097290293563716453286010301118630559437432511101501132002413714554424961323180458180860171775823674116933846605567039202222887488351558381647286690332040340376248644914355741477724769817229658609048731493959322800209308102113345982082505553060505032276552741522187865835952597808871100366182406864853607263144041840011116815173302219407116029870251480481144670458455847297078021355810302042478373014185630978295019008300064226700255315250452999826436832873899447226779654888539079571189973615225012052261665226714808175558720522273605957252984633949833978648172929181712848363860382381470971667725819816602199351514035780033949159689552570757088062157727125974373595279931659841357903743048264992366466801612039810307274092806103420498026859710350397737928103487577152590078758024925503534620135792544185431933992334134835094734014881116645963490726735176969455247441986172504002057124425901984403101737618834960200249500966745005681835616391453449847830194337576566987418249942446553670409342433610614586170478682150239860046294754285377562670810280111406238990163092818149530076868970411040520812531913606388050078956077424741393645690094070143871977083442539875485936829683440460465434729372372407538281105509435746546517695450011570368931763290452641329236250832987535896405618014933072094767687498593893882788868287345012291904481205536307876460394757104038463070997012020611574559732996195141776270073557199508121322580668319661298936082037414221968681066404663836956877971828227992456790925797634132611708618061311927213456891606361367771515157523322488903382267014306774018166297043285228508272691250017598906488062449477833673606495455851031709044302271949671695329925947337330588723914228816650097860453184885431086320378882199116016267638336011219037460067057456349471226039448098632596077980418853244604957263533064810451714148666679855486793554095662440625628222909203534118180127330554492490659345846641998951837916581563021703499819283099381705985782203353910291551068608538137054733969511589876441131506899867006021997246032227667758554934614840652359241088744143172470789815476047838933121902344953540437457101362724155262465907875901808272668928800978962346703120211766292796279942386512677982080005918310484506350697047967779504954671273976216016398212970289790521308553471669230981932513394065572764631073122459168052342219815316971716948617883672139854093799642146691787954116225107455585797097968927638481600504527988252656169321174848456150961262942858899433215640912836064131803424576683714693180312635585820471520726158849246722917430298441967531812081063144717651716159195905630007212773324075094204073702743655291894280840131340922359606342319839362104834909544914448552868828240138634418978254467131251764186918780566050905231569707372601855909004237465612094834733575148049230197975241868816470238932644898138724457969951389343906835200050648398797005683756129046914123468700400167011915203164191715387678186779691368041836360545025153001412062976108656303581859324871808898373558787944755894989812335997402867423505159716917266941912127734218456357630179516753110527009008669848400212106596999775660511794822935785758616091524952985862455288511835323528219824686992527793203177379157430984916703886087405899250775899841551535099898830028210814427452434374729340626344389187101582395949334005763774683046630295038264268848679091911241476619367612979747741756820074963937906649104859808397704820088460741029843514303240397440968483674355264338312131576454415511520554994943821471024991781021834829691875526172001126678150723686767199730029707816619120062961669276277851440043328676116367585183162139534925043601595010226607223277092996100060751337494586502525511970131594620800077437075019291843905225529357429138347731851094463665466775577944989570458362197267574978988083452041485564274683412896256671187163479157632399699017597207372670445509862918524221701200100127313859404344879522632054147937558382070426357470320421249525128581342093871734281280425373786030477417531584188984145979306806088610436515112134340185020261464238053401839332633443264266406928597979905392238315803508060037895993010185382772397491437759692319128750828113011348498754644478461245157220132025821555063650693103797438338411310237468863820909092718544521395996276833649160952016077355225028997453223215020680748565186995139364094372280516571897958420126149874904451491599304028727811792985876642513689643125026969439547277599738028281458163051075014358895286109576580145692256931777399873091689429331351321504180708381732690351246528738698501522444088388194663694085701301602667008188583933223822784088913102501857945767688036401649580242762859676176104948836699775525275208187454829137230935491090293117155556362168977256476201700472950931556269197273933122075776072564364317632006306508194681154938853398910945585132407346199143472961421184777405026926668923082539438459051287642832251524805139630897509378268674041067300918349335800840797998398435373770152123353777240161895791025666885924662760874148458094868633186640115643988159119417257968364424853021590171247499177630393945665750331441509057220017988391594671153178636485779839430028751145445204967245525638766538648429774681570681635076442988194483812702317922593860465170854663072228845394465138150772832373274797541729079036607198316398606969237529377222963681430219668425148749111352964877074103936786067965172832345740372379019765675266447208441184739829967477696364217680081424288494901943022369831995667994526120996614503816103148197021651798952866690798928353900759822518123460480165656671561688347982396492289174307672730751775772783082094881966452598187682876045809073715407617752053456536990223808821967353050971673482795932149673974652931934347653421444155723883124608701047192433708203903653438667802775506775814791576534867680772789087131153308512215330856495397728542061551961664307639285895397993038091912841214101129527183507283483986845945526651376010573096207739719204484010404932663805767664020508024531909882323562739385383488075654071181787135400184792113640452300425434078485133696432642539050021443272522779902902735093806518127713408491297487664030472211261672405379427076061554440459078854123014652560387769932248300791131929215240937060547095838914923876142457114258951299478420265794331134288361212187151903071497202123814907247411339641301220726287928208093697554460959472470190291462234482543001194445867629315607026933953471497762810313110808942835924564215676719044418670154695585269728000194702396069931922737256851058158527669334517175899893802105355519965905623972086268730720340722682233659316185793983872240282566850411645206269972910206454206642031155595161518430578428170343377362347466401090939471559956822960761410270448829466441005088838888443992197751529573254283670539214875294967067574120340587997424152657969029487264192017016405269950387942970358785998189981821669160537039322087486917143381366168479159114321421306361864962687104669467943147312605847281355697399739754311975504964677492043527291505294159090766233581242303535656162555865867340562275263743820298484830143054932646012294749148316652932192730584515460776359189367703772519278508300327772652054496844383606207758070587879476403769617183046689982194157066609276778374277891931315480117854247593798554578212574826134842920661142002974620641119813435231445585585071218510687463035949528352742415954265977086350555678991275290044920664860413877528504358449549564292110742831783476481256152810289556324159280992688633192604075894472201419776460542942575864612624324145123913236951639036167820043514623011719043258749346483395798174504444094540475608633986645599174492479026432463172611683971128600902437732703786437400759805666046932138929146721570276501069511384077087759130523325962721347817099992492078038581476821930563004677061672251578710608989774606200025998368735198625831633935422065442764879904843409500675083008610398639906040922690720304220279152059162738969649891439158607988613458448050088457019259524484351975108012017636560462168256867505666705571840569681057267750036198385568179684896236323862769284814848809850849488947263566953972132538459225458172460430284569147739243745953271170269227661425257705673670832506046037238770775677966546354095090946367451923942310391142012334522475314126298703747372481526275953815346245370116150643287456406820284268491570179578528423873167580718828245512703580831915027658467490686473842682371455072492915113482052845992282838279362430012852017618873825462907778885186837441333262344988821110759816222375621880684308659537475767597883575110788098976170970320002270397751869902264395066719851517812974767386303011193630656697005461747641667349220071863198167423349709118228039102025261480273973248699199750426011174583851959042727159694927303478171723826100860066354199429858443748033429556349041709529657380668416557056833027188083932569281653701418025966266352630088119376066225888458968585880841329249819279659869914028295006441579599518692637447406345766487790022615422243711798804439863611461931465242957212079478547064058656698260874033458062621026400209078039574770793028241141438338269445228632922707183822320592900090373580253068353579780784114623915625811743444858108986001993002269513782307220371855579555670388714592724424386286170427866914929351517619227428160883877681457038338369678026630582187523761919179992978192330889223226338611886203416384406679117788319829572110255975001652822508436664131123677844088000138306349872109763281113877590917223150760753379320252685088499901314896130534904520159004342146253085284181857134283769921817649726911257484033702738786681099455123819029135998236726958788722763556065250170179581173309193163886767079550861681000650517667948604227685999541674919796469778948952047279708525568171329415072663754567736131258786854501849535388439404712122855075345830445373118202994832074908802284850284845488869556802755384557788029037743755879326463826959403752219716936606686632570895230614824155200710687191794039239547733318302414140441455063361003909875665510972051578144369313533778887551968439127414042545970026170925967005148108634742068465580444987554191056472875458256420394856286393790822942950659024984364699953027522105099022952038517730306347106850296136152850667789351553390535628578907119570765671946088140846130981252043746374858239858315341962811893663259464537810743547827336664656955839324098379826044322932126568456221578084751628616754036254776619868189516426462875881563861964756272432525256299822948511606893034571029335754125930052883942160300198561397326397590845397060696044963349883623355606928240220519769396039489733346029910969140866839949145089407033922098584029095786728367919782045115347821320644301635464287194420832759880058203246355374341338020409772162679319010601333933491619466460984370817852802375650544402136925565350835069927716525367648838707339075393595977278165797475379432613350210841477804727884134599688492075607726786692041012058170543774735022557339086611946687207272722168305296782349639494070326167076808679199763199844965784446435191411543132940310100084457621808030657435780285805840173557626189542674380880559253641140512474104994762396542780486822274093842019010876847263817125341083309934771078548810805666145024668338830277050526285545942399697323606500054993115598878163088623387404027496771150961028424151829405136342171562758754508561433978321959332344467960902917104531242784393023943461136180749958958152455300463766945823760629226314602935882598099288642692833750022615176996239693300744811075816122704539031794951669000675410807298077062099772246188983586538381539798986887568574541589285176624456752645028027955553593788354517895885824185619588701004904552448546316424794284494255146249864095537400922298507632149478779334664289573674933729612908722474861581204160364563853800939298178090702452192203474592013076011264868690710412321768773417007466351999587708822022049575585214498708688304272595087259109704367719781454866695951628610203383054160989100682719618441837864911187999694524956750531354682871873088298801424891127545501507918791984941107373195492075461940105413905359529681773042419171313685493594563310360986578614374183360791599766195800894000224897600925251945528902720443988458152232359640404177132213992189999400388664780163243753410894409551655430100649277171209478326709319018558936191810655327794922144976704626368368963073995441011511076040323003971326453621254097209544844784187842974932867917930662461690326828667938491902319937953961859878429457959025069719315988676018122370368317994415543620215961764211764647924321838178633623625910097719501104011184187103705195575328600954576223305181773474190951793859827454087434124944613774074936083257636365373957012218661333560500767260519149274468027842370759439084197487577656763270907579825098969862399805414264900441515305873143275254076988635738461248245555840755157123934133162268580234850425800702798884784101630640842091108581471282791621998544670585297342721757144698168889533664442559238554186087260168319569513093647000806443737799154475063550481148449268760389532158966903589892316850887933758664136284383092202254570872391061927459596663010987135409409487444416905122238441540702587918038778670348517590716791979079395911578788691916976061853615348790836855828485544276556114873017829148922856847226940667164448061519206003704645564338998532191545044136733193675646980320763183036348418658153930207058045380870221370822999466127898904037370145146896524227658215601130119954464755790288303116464034695546016730555888829048364207489537512612521420507692874576692717992416019328036721987082519963617109926564739364796642981466145220576424450079520740786007145910550640096743179422856728531127114701093310227839869365986739006045167726044463820214196825847642062556959431771533988901885667489854115091300562648028402646901482237402946550328877737957417533486102795909742039297269259606841443548694470828049337438633497007297567819879023410465842124011172077377912028341368792846928492309587592384220618740606130331659449226548815777608042975373382665438908234879016433981423399715955061087197824223661279562436276342642339759525248596750468647196963695825295628811290130571247489809907512476206895586175474823823796257637634624994975624919310164711488467020572835608185556896514778958567815860303251683041246846102819737496642045341711685047704768375129172826578969144054998459910757914669961224937731993461011113425792311676288868673717176147564321508984148576624098161319486213629320696846571549011002144872076376952749818614560111275693804699417301927736096952381627669732218576282697262607913849390209599324880166435787665465081231941363310566493374393820368314681512509531366637233816353181335290740776767230484682843395019716902542468943552239931879555231053322061980145665725683340981705899229485944552133252991200167343475933996696966634753254313268913427676955154821601644795873304185408867846832628035969424288118816272536401044179565505827285971125262129165761461871304891135000398193967531052041384919081905003004741075491496419949866558688612657456460964516595139915316202782797025599614984533551203641081846453642591945209946533431839279821691517723805984653779823831665026830439720116612446575693762825446022715331612750223989250702542065172529185431211386625715898491810329429311653863047329895821714079023384439167395956026323551671948399931681488569026720146308671807002723827371676872969622449994871040550963973631987554382905812890032662600592028277032296837592091002244594740843879333740124862493632363260616574147834990919256416199843154659292256895784061570602669627489399360604951333719181670023717371562653926662289081758864091733516003218749445058607046218204903981185427507578347387668509514059312385997143779003396945918605063201243959776683401053881152991021621654926828761344578560273797189645368627324703529336191414505685057051308698234141052031553706613244167140261695758805649880475198065122614981014203554216474714540495887115779251656647843421781643081148537374621261542457347564728425914581443035620683257875892250560337887498658548230010688768707278458568053663077242138373652517556692838082449624486560077093586957173109955763387765032784189437870317435745197256631632494909612120766820055229967382794891545100953378704756867902180693239554480876780162898964595310483180450180263296576265997938765981841408222606599998884029766589534627107666731229076018193388045920140301907599506545898516539161802692647248415441294966663014284464620962960851845950211958033501163249102215793755002034660465267253439524176254030752353052379640907452754128230490503531778556070557562250744816009698142829886386992617680077061293385624188007861628325724683620720640726315895767021315320852077572717124496753321948389705011785424718552383658080572329190736043432716191809832676169285616512111199890189425516454202697499302231174103134435715844637850264746036564646219496064380505537480572898009292892949627233875077874918473156169561532958862336603299551143403695714623833496622420822817765104986539361099936879986969559334307664011791449446112333748983014571096198802755494397562316759156300649188448911200258384710757533336702777800073768814124816606235522600896898287437591484722515273870016892686437705952293926977384949402928935632399709645104232006185585423602179029396318714498021143894023580709264631926643089138812635123562179347215692981907537294968633431002091484028828113125244783991295424351216503132852614676705867213853778458994014987349453291452136717832131114837742128443360372235622261250275207267987799656360487587515228470735666157000141696030238023220215004870956208109154631739728254391206340221212182819286887288446371073432212880589812204965224989288570374193401282320107162979960973000424986879831642233532205783237374717590833274600827049646767301488912961493096345549732829921511464261326487814968551296128515809699348851982367632304745090714767528790450738474647737724405658431502216310026753790216291955336823100132714766449556207416804737509117455879347045850440006496397729066536974110317175325191273554377825723504703842356848380258969013707390567779991863778172582367852463190098814803940738417901406449362760595534365368400311684053665705827605726816281842916608522883915069244032547463100650925741545961149382552985819347439518311860244361765178412296884064077028325726189657603723996373101986051432297457191356574063216473220546750302608549332682903075636161695899941457750223875215180809638940631600880810115890229554191502114413424822223967213402946236111568219874249052936922788865776753024837978701288368968908598728173752773740508996916312308246371334761626976819386403917650671200335100670119063183687534639046918374396190073757260043695874295808879156517574748926231030903516951866328955311348539721500164240130241656342392878659845828516292218878880846112415450180092411226458282155822786512131891056585899590429374232138935376764880643553367349301695818162914744887969386991369764436640454412522947471274501194872906978831139410905595806142257378485235193735073431318558089074242295789848761566769502322036887912222488846923222638233611349850108571487830160655936743857699345400643280920643788646518632286780117463267885637009912505274209787937848796682607639711710279164810863060714331464800679939750432460604527855959220349303727869222210564856303554554721323223015961749142337565080328575071247050193446239949559148168849813235029497099770114840079777698301896700210878585317308775084114746584423203775421423495161391196777475214725946307555126489781676219418499435328218796789693123768046491832408290367583734784685625672205955281902781348670496146718711551032066569836361541652953642911243741713851450353038512063190649358508609696944476255490848954983702924557403591923980283754264391506431036687644881090041174941255987618678370743536360460916509144678620769678982926564053553244107175976098553960004791617061843484477220986546364297017214219926963419986550285704018214588256303604212628713365398561253264685761211802737739317538586021134558874125891663967559077135630019395957339849811277198591320766058967892246829479660774917263543684956488396167501234353704509505710755056924317550563548282086322260452677874298443818203776604978907576386245609468240153239728503934297873425988686231182816235133512067028905167767980383662104589508500471502930264195465711963760221990096194061477448125720606526635306700824643087125970141247096637148769121240251512567828604538275146181619703926116470240871167313139458852487338568780331353143209812006350670669086058272254251501021833038958356202003669474492100071526971137410341377997082676810375902670622082327280371665838693998610485446239971813224169369397364869316890175515806972463249213202075016563260045269535408352345581724962776307153432122158454492597154535884536943767879858833849732138621200177315344396185091160811112916945735213555602126532088996578388434275401776272991575605709992748734894682118581376042004729989314932574333062566178556410168373023857975592709340614756410742121520900542592457599444086196399448066936394865922375937855327478304144021734399487103488728017945062072530592305472592325650318114885062468480920093161391102853950321005288465716093461206575956285253770016984409373424711644201916298773983483703768810400359308948430473415659369449659140481103267357728508369433850744917566096344712766595797697419714936475248922196314823935173767198460965032235344096741491265944490817735255086141966418454918726014020179300699584243647857817007460364246985019348014386234762725173304118678356407025058131426808841348221853124362044151892719426408748031819140995676148377831141382712361618889655409302493354557624096164802404592478694477445680074878137636462994479150989821563472247229966196559549725320195048613297374567076178107613090921360169673335336336855096643722739904683724915766080164295637639000206190878412311688870332931983467201382847879264236091345450595320838801484503054872281019447564234121784732849228848704480347802387303242785004134641051440489145976286308730534256824907664649375610931387112099269236627664082659376746923698776880608918238410142361707435339980234643924802013044965292572408410636256663435617735238725604330865398061112718398230096549643741770253770576203870954569516408026722339040802065900893260617189339785485380616906743817759353479030779413792653843690029659085202803534913526584275379406469851870262130150165639905335263407614380060153717021549104389218748541257154189147229806065598155562753700298030413569402379406326418728175802649816455353297541372111420508694848676725134142032666553623270891002528215938414492774045020159512447974924962873519919229279394528623168797679298538348402244275282440711133086075462360298947243751452244279200294060141164577568615751234394700628555375464569250340650073155502595673564100589020945343342152288856136279125681522135584442572297061021601058992307685406335975674766264504978125322321561251275830624750423737401269640136588011107297968307662540551756113136723763227329788850355032390710007987792326908995882984125265580255674687593555088044286063720220002037661201029703805225616502123511652492724139902902265343579001094501445612750134772393091637853171957747421884247745429787728956846957122024344801075146315287449362204852147506217850553457699945731696151220908543967986555001321268424335508695074584059384815299337962323497060578143941354152016526844992645668046868945307921370494601633590873511578897844095729128647597177372204265549453914940226737516510612048801615243375076341157651119770395969856184599865597267270350008787525622111462999048756093929212779181966705700335627592167398355569780786461254395817909714531343259476070049087132971960605712400916037314257284073440969140430798168181733018179487464942378491598835759706647738713650070849091706284373210650773339244927762176215205692649235244251778422420492916768999601276714259567943307892409344977427427256592265138555401181056593742543739874302395284650928526074794469877950537668663972211479861605825857108951827064988029568359771059291842093375732212758826220584667804974495243989242899336127883043499146968693514782504278174668729787900895554737091793472389036789428397838653987564469882384878849740455357805386732727471395585269673735421906430483137733920332044613148542390488745605653322663483092703109964406347174381594363201845240789729445780614293668058950150258830046816424375342014275805434231278962655563073562361671081008175910090486234024816859829879668404871710249497233518656731436864480320533581534521195918052670108513413762204875602038627035237865292945588636824500583782571041507190293593068455732986344909904798255354397850036086053955713195215893772811075015840254093089476502616112043313242325637431581267117041791565122184578204260163250501694327028175744008651864308165569662537221174099410337894136555136348062465597051467583088114789312628203857964564190871124709998309205103419092624883840498353223021123220672908551011747080979023076310303911205071246767269963262334453588237851849048878238057907433426232341326898141571909939754758142098046674729779918050526399365661233909521760100087626653316225245858942328885733430206318809960213008392302834270292695384292244165323702815948433035748820431230203821443929361751908977119387421722506795349507729769409019544760407074747693841751380365100122856654004443990520082399464915588347219509178981544222385536387076645368835084222162198356029685697190716028714754147721750596575894499568569455035237065512602821142606624151812509911283000865295190617707280511297349198950774804380580720256370514572280879038979494074578749736435186579395261791752634255029230169683095363079392712011728664502913026718985789749140460775748839242787058465614667355458016190350773091137445095715419839884832226455465181081113695426185797820488334671980846416912265463598371284776666258934584158926783290726051760475112474233727780420570625705152640619057961731121289406041033642114699109896727069350511934345862444004667614423522019654592278090557059173028090428837627077815618217751673282960021806070755754853266711493367918190736645075800199769099933024373524056345787337278473691933140463283988861589602876505441042258510739667516974126007908186253805275395749005079472623532889438544839128435575652567302795922829608240116624038548048473955226235356582589742985109068774890928211871926518695773939100894883072479841525079053626498540487667158698214971486973482664182459062601905945213636747152502412654260846198298684886464949962542089011556350119749091562302946897405802519020509679899283407890360664829026585103731222873211832498838998904684161842227573368131068464402794084791068608736136328404114462942964871812134037742410523837555575872987063806652967135080222306602033504835451189075380485056064069003857636319028495906500056442741125536574958951245589560270860539590833859447705914833736900449468237870321376890356784228157207758852172468341060890108774013021867867840040469597533297676438324056089481687598148783391928303761148061679113480059962728452056567335421432396683324190950619610370771022181725646967061388657303145447657481903179011782201769107316304877375935003068155556956215956272166105250905725404254062908197838953301431398871255543611858346083505070426779891779134143226488932083853082820761309576764323442922672372889994880094600178722482935255107121606585601760331073645127014014186366684639160154040957692447837618107029998586454605610559153351098146324122562837205848618209720732136757946151608656374002495351845205568954077983640343863395639159478961239002248873559317225680532476523423059263211412382279285834048929173053245267160003533872150614649834593319437178207604100025629780841251495209025556578847576125251756939459009775173789045977426466310151783355002259570942539443521341382386962524911540426081037386056903430836247937192527090581886149461238897193140889997027100287586766800207416868873991671719465389303607925175854039623854543359503702633405883744480953944448677180917913403755478628724926900688751227417343034569249984610267600449472174098872744304996284554913490291783618846832544498209194031555437476795727727326222160254203092110718691973091217706796775324782565569791520319187536074078756122415241634205013793686666354552388172239536590124105846582178323858611084570392867383013616384997080815523106900441070806105445955450126066112648366232455539834770114915459242285334987780010122352947623214769286992348732052119834511878398433422366230664386151477991649191647196152701313077399035481980014820685090092257895101973356049181679296505018279883443312216496024215543066996693577918977969464346431551277806532243203009675625642485625515071408793516644405428321337970576188036138035731844968290170984190310140821116272944960868698405360787325266783373014728532847766106493969870613793777913512979962430266930865302970584186011917093512946294124701393565386460629743645067820700789142613189232096736352238404708199931149527013714576103857288101856582967691030151683469787464762257321927970443607974745604072247676752574288170531206872324136668606058770092607269547491712349282127991757796484857167772154755383276700759990600275731860330595221851202213510443423405505309044368821402491579157330585147246681816823963869640044472406346000035342213150483583232644428480874384884774209900716382027295478607994141051675437930695348327257618297988958874488022896540594830667937856144955246359978240797160500755313237586946213949446371628089901350884332750579574042038499178150747903616723000178953471943156372545755303378729742791902274371208684591281674862837783789990458630190153583880873501246802681804335556242355618539851628801868931103678998357310552190508760849577381869575323212358278209014494538089275033824464486422874567113496414417912633985380397936645205328092408390799732981820948757101294700817679916993736440321504090584003707304125214412085789016431200588593643079967821608995911655899421863203240328699424501918375593039271843279691057833897613971308642365164326009187974947728470693667558571095546651712749792257205472531188074487360317330782585331403783843972717573357681917136752239542292697010860995022485505694886716886151627489242444784367430091080454097991294910111648499248770109326272724646332212517013008928413671973514974486369655937292507026875751952236369301920563037638496921123496116308549682063556621756572326994706183086445268851454716183511014581299449086334929562487847207739309058900010891137733504542399846865243483608829679586290375319539245056248208042140822305598941798683959601908217579061465749752575205009742378861019586205695184241135184585455074145849163203664282047380156966343235228492069990344254003822242975511842765989830922988170115567879108647123179832500974475193240985394215040487006891056596645903440438563236287656168122020401413899322519656633498910900443817990493799352321597064396199823364600884052767703113860118052016693966264498901823060805872273720345855830709596569819475164907789701579947656729672761334900130687232191592141865634773734544584261562828905248491771112057640408536063466231548882752983476754213335467659247527329324950653555174208208263511650967869753805851695234035279765472665155946541094821775322969442088751845396458235522329957401744220260459364099491697569919505974507840126663699612471436958926152305011468319813480780791337694381663480386286351671602398519709169968044026274476621638551901572972730769249473576585011598602734597326044264175182926130159560167938807233488727046955773022476677450798353144355526061649255622238786023270339479851043514589956073763038616443540410629452026650892490031108692724319182022329503831789888899603694459330465069681940956438216798913277326013970662689890533955669263652631175570865413095982924435693647099599349315515671836058473138378162482974670931318093191095300240801900998821025498815800986897872035146908447550089853000879130613144042872904412611333112078280595468862311935587507186067580457044171664827154280567839862935852524934494701108879088790018190248188317700821233651759712680464104850174085863242906744734641652011009837264676471910552486791718009084785485119443758167740299475661367639477810788832990895648780595701112478694177206226347448892498596786308475350024103903991593033146006318159649917260329666109790506329004310245534417586907166081047181591896972505775445340245529297759029637550725632262315671147762223327866506803643354519749853708176249516573280166714963811484006244852872091840724832657473391989703664245187869448599353007051650044119963255880231440125773946682006675968410623909745270807791711609556855336014903453534872923280109203571173407866783307810793476068021305276815659032494039796375837101867416026311550250852597647791678328553323553617271441141600214503367775554324448340168782787491681686498121952573405525650438616262590372762759891799964276449109402433854844584841364503479940549592844715926042414759433378775370864072448538169684331800027307227878005170137416258276003944835779669732534734186071948584598712562623008345851995335070459825246369874046075851405840504939668901650538003197773989537321161971674756955260370705196340439447757779532328607318694329481885829180214241339463377388079133629269057905395153261985318828452412675843728976459254966135391878598223448064779579479470019408044797220228824257177374723209358294953640966596267387374737187919618051224556785510039488635547075193256236010580209033530300123306794317600666299569892023184620326634343451696666457498434575762554982756230749427892669128577842124704870002026489899150571484363724844383012427409016728306419679485844421733511130421935743311546507510983459549603128153584143616308023020804532243602155281168722812672339096379995003543349524494111441114346350986153274738763438481270266463077819291406727888680431892618796399003433357319033221688532837827743624247532001044624277236017365476879129956126189318826539718106931375973312463140161935745406609242705931643323086396877896299899141184303364280522313539628846260529626465939036860079157352391317484870817837454525585258491431376780803384223135094473163014558179474639623074569497145636752926004271820133498723548885652778333774335124242221613784950476298101064568049093385249575900597974665626581831013228490554466681411093174415832813013717793041039115140357626231918787255826019477395659356034229423258405013153925856696365094935982593559689191909500951948539139972205614460903635759019288511971209210879387143836328241489892924557778494944895845147583058307420057790607013277844911607812400193400624210078448980317831941012980036814720989903823846375413587256083225527649265880633291299608490593107410672767576339959069208684963685978573589379438257883892840803454601328571598108373833454063379501473447424503934283095505993841355025568850091144747153610681309834424416389577784834768349405540969748851980965840151648456255269690642738470632809602820000831100518496013017792047662265817426902276114899930435522779020739428616720227495701436464907959343096869717067256762304558564053358038688769119067097206962833138775438386254757805844178529709845643046609835169203807047018947593130559346103547325634384846472381264939571427879196106981682974784473279338260379930726187282390654829816306017541119606141209739243188864945028382304452251145634164002706003228001004669507905512945549391876897229522239783288554503845976279389339009819904936612986684298239333810910868971221897630228968421300202612123176252300171485084659657405710481517775397436637380374769526775225863714455006987199332671194472176834141012939657841247019731830017503382678620833560077279720508468954652125798827663227699149358836811226638622658413053182170977284605112593670464135077102347377510648465819456927999395587227503414317420202277854452069722307238137901291366645598509702215885629776086688806759438113455133465869610190774312301147329701312877783272129160082967904608082858991574884801150403075890284270034321441552879671932032979009798639567270750527058126536041552570884474831356384355606593539913665800522732854841529357409311672585639216103462192557700067500097415124637135637261608664703180053466390594109775034527621692679036314755981846307993235690790992347682817613605545756506977251201903226279467983624767241153728268386581321012225653880832939519578932965303841555416053726562839393730952051742096822876008234489638722644937256403186589160134474539021566927966620190060349509426834745233953256064592381199774341001306634878394960693181484906264052949036397964100364717386686158949842267678395976566465392212565572598914100687937045888180752324691792735494902607626175589124015426185808477367504577618040529130523054800976862421039720476539117935383534620320264506594821389566251783044612623248531891703359250084452878928200089045101068988652515868736321795788320376298822222450793896305985485989687599066217094934967660576227447959481401527540492687605967107626149337640255452624691778037073861015233489016117635905646271311424688247039240098049884626693585126087642821246445254231625794837216176376944269539062598051341585692726245339839710885395303570930521504895564010512543016997328746658470793679670290894625424606236298076435913447449080320330691927729760462699813683180835637763330823722447052545422084040593101845483741681913367704232545423126268692379688315906393929101514782944158599636833642533289274458872442879666684286690564952025516895496043806084026632834350780434762685131189568954919324926887371828882699334513304509687491268570722799713521525648398908879339733821907502784613251891763416840976916231535038775946168787912950484627014450341218508744245525896825053092670806893838886810201778494250061866501209186610896361737983998135126359479297644220922067483324374061094032022535340833640445836537253071754243482588927331093194206743341014470543764430792908011601142480524652532048747160805707359819123373197303694784223355740579655994131548293908582672232937284189227838593651596600637358404107233272269647676237021365343442607449426435152046579146859090216312198821141452617624187526986414347062676165137458083724903911570017114483283923359284248611568599309963546184864731970207332609858334875104209801379300694044558914946954952810132730696864997949413624037960169561871294805565734051702307029976730156581584611754288892715296811710918338376957984011179658280123021423465275211136916658283939431927360927862109780247834050627157299962221960658160730245523434372878814461801420678935372374043759053414575596760303984423150175190438054434297861309161202409605987983504146178584219954986344953316379456343531308181917956372325040634897601766991978333127065272330423296491299183298061561228152389835840630831585336301974573634890877653734325695666283491482533951508506530789665305157609480636722018371080826042919178792380745873512658708254460614579308746315540649980554788142707363381066515191197364306442663335126215949344152438841113303713769599797459223008362314948968863007544710175179892255660290558342709409754803432664264343755140352057725315544481275063400278735449731398957663813106195821542054554468569665507717195614583041810304352262548451178539924068862091852443477804342623011813200932385869292858951417598578162963729575600334744626638133871106542273816296269358713258221781210554596706019935448904346807249882319489419427597519861632779071943106846550459845660703571691381963617737309191627429961990254329595779932650525073546360187449995092340309378160876536411170224837086595163279562945166876258151111172417079825951267433107863836488618397504734106795790954866984757902320104419073309312215656190811867963638696964715220454970173831993471565002725711293761118096962423623301441941298377126635574661022239249553885542986995665385909510011869088743156125712745811123363759779080300543783948976631026281485633860576396687403587041639914357233539251608776055275114565188025241300195757752838160587194640881783291305048926513884232514321422953790223264867158065809991961610242826820643980645927699269523194260031421904112095829523517250513768595508047932799266521499140896336397790445233876538446702923809479119122108273589861074836427626057258879006229561272212680915372602395334069556829925898438215150933739262382700438964894254912065679056512998380792849750316141626001317096311697905977183901920334549296005702098003735170319337754462114060124964307403597577428926001149924841377958966110437296711050112479347166807143998865944265025368902609340194469966805363096002684318130984488093360681878153217845539614259534270048205000058635799931987832794515671023725241609216617147945000996042814326357641245891202171730629211374645853395159843531234000809530256372962005374661242899227504373446006700275608212589526429163422020459117923692722263026176787963838554860912269174000170708221298970177352526381389390218863382185730690117408315824425489407478850837714336561201403804314482737135448197751813713061026417958145810632486141216108309247499238785593601464330082200179855502303141133272586500747269157682882776713704760693308080934027791304077425556420182170819732819488467875805858109667978850543789332529232663637861575940769743753061690116177994248206601267612511982759834477890136893000553078315446560369932343150648896711965282672213044010100756610821446797411749745982462697071941167967072119329964149409200109802851390462857295440810965086366325623985298670399817087193999935298817509684411169889488340121502382055577548544721393285882726843803206049738917435577118820489224975413270963537181933200965225252550288975629126536554813990556951527161801075871000765857347718568477258040558805757351686079351377728163067617122254326509251089245905758722991686842547770099117116706192971524525619728194921937219461946812958590373443831841698025772662229707273603196199585372558880829592405404858373874802449629491955763225460099246922796331192274887065172876289903204250097777789648314274032055956982266058231909627131098899854389164821628522711455738517393321204010504152540737047658081981370942270280669099651242641008970744869616739862034943165544728396443721359570430401005652043911133911044153771380985399738091205592204643313005010371347073560903542069657572120900247406093157025764789739091006749153458041610774247504950381982843555631354751133868564270981934991287542367603234886800505029524473951284925434924591495215400449142912539936255043867214419566307388282852814218421944582024846464064953453195559711674601830176164739846922718591982433198864970859146120489495473731043820472738966740801613788499521312131037445872692397602273202427052116190781235508132175095596678064782714163183878172642622412747795420964652583833433790098239691010438893582530243521606086492491898533946054352177506104899149465167258724710820285745523934446792485815962054352331282874607387966293418730890653758154060065598783155741039753349273391168163579057208081162970587286215228577871586007120828964384339673501721299074795516797248226651223192850780207094812184072239133891344009383338155612278712980068314266553098720705678759110419724853591420130589596741462706115622447482574186603533388933050148492783006677056215272010039118837162193247946520089644607193725316216184469018315565767129184928823016021147098329886083446082130987608194573888340026327480089621075421697546053199981068351511300659903617817591618263693135127817938512661375323040551699433800985095552523201405521443383057532723238250787972557642757493087978554598732540173713744195092135763995456422096960464443570981096899653753956954307765321172746912537796061038496173356142360108370201944425663870826412956104722057718240671148538692965827615700065015097137946930395389791553308921043481826835087486242026568711682298258140022116828536558515777896818714171037127416250824493295401828152461754663491284485917646174358434402380097773328217817975735344799456074606474887193314056517052652627009426823660767660373899932826706673375419217933793050151568598360138497761444171875968125830468505037459344395292593319905385820556379480762324219913613051987569393789782136857989296555273984832047039007017077802061518221595791347033952322795589716298340439508155438295208091922339296063184980492671673957100263169018750363498855198079567685445818504168601403233474184583178925732779758424273172581021494770283283529682248080659155768061237820321050065274954982001205810537622867013029817657340660007445023720689213020845103284101096726129206482024025139746661781234387711220088956585572254893863627782845433162274539432825416655255889742624793698965343209625432981374292218154681766236522435472581736547216778176772086615586899272122066354848689124054995441967446020250865047916930083861306491328680216906304259903800847659727554527637835953305099249988495780035574143565529418179034057147543467976539087572970524391356232059927178902290112671154602850345629481338863069115411930592005203516832373213046735634078736950728412345941146477627425233695506357667761734378552267035088725133420570219395086649358529024522214109997063491738056226514205699796045185299698034601546405102557493624492905867156230863817539504118416798429695246917999020864066167772973466647169365705782007055082303491736137360423182083003348998945790319270210098129645966376526091524307787452625684335712264595220090150214039460542470396244940388323208542906792635794525843049743926030105490620863488069022188649498779235304553825626906512366425172666113678314675304024077293341076049098491147880744749487872141232457329886605718382847449768401331007250138432826302313622991761220486651830255455300179475006532587569733112750577709789250594531184784452419911847025492562169953346415249367096090528347957303771130516138970538535024264509387804620859241944731834899192161961179255716224844340698958496347904893544380317759259608315353448349674196252126672500640165395628003012201713435466154473067854162135650702923446418326941685886543704212389488547634270193770839810979243291381038705866730760196135908388589214037291419296788455111162559195224975598660775624818489358742911259816803636131742752158568207101345553338178867521264528154751376916900618558168204268128351196290044561173816264879323835819456543617391600028344603669455976351726707176047216059698894396961570643897854809533002650811191316589438887621154952476105294856841711731896131238110129143889204977369250364401963004512037286060850072958760823237565609313142659044737033370439530718839042866377258926850886647309046333271727178740074366998427485351738281561948661346202779539047748911261035990965257850902259588238060251483997061396652355853241222625059770562990642187180105049211980392193931620906497072360618459568137364572969450464364852071080012984384306194647393683820522568390471971027213911757212247269643274797748716583066122474152322650883257213420296299323539254933143932836637875085093918695117621941404491397899107067091290896954268615344669968221791258247515739616806913761853085339176895201910160141617295875521820653201472161916928032747403770570944063786859608467761115529457095038004032959348585691351689814420722386201360503664358924871771736057085261443262542010359653516782441775506898283207071828783542704408804226266955106335702313437042635041877795851013990596659476146901955663202287497413067304504966043986208257567411888790887961490613964053242773595098887655475440414649861211361756294993957423898736294140738997975700620921869660014833163970027491427071980096898797223572123192477374009270113383314119272208803275225662655483995573647049146735447912535063998542176307671801998552185928965777833453620816049472313744745701856304049506056475358225375317514043328207120751486829080664674379770678290863345989030269253485090989853700651670007576186353416555006784910937364328925282823786638007754154042938478087400834580816716689424739601850025109592172360675075241234122295621307691447740220277286847516377326930821541690671493341245123702429132270855514383426786248629059041650580346134001527602446803843327333331759413356673187697747299140029065816527505324523239175732148292546128439881202922756978121420987394365567087953098744163777521931150019715399811794426279112477332770958273910355056190082957493546812281534539392597021185598360060284191427884329140807822695437796150704679270199192553394800675499370121057994343373112375196497459646109558425396839842065864985851037478644929122029696013149917088041598591333357435129989422826959895999687590810275846883650880158535949363121602575026317418981816039574473198607907216515435349247312925612055400586550532227860610386686440222987143619066972035322266592850761149734266863582670210423424319348966531955524682034547049352650845435705521903784553853009199815517430513761486372490762138343598246849477730457743353989909810168344717089665758226472256798064254697595959600479519793475878134406617449791576973072021837458850020240782855713477822520368758870753884158252806797670066701827364732595720420321388000141505468964829338006144235785044558451905407710359429198891833779081202150265320447360401999180983070685583329473704995218710216482002329093746482908151447749324063122857430523259984308033410653399638825640137650204201061078700681561546063704322455321738906860607795044830051714066078970508728622562940556985070724614273127892984694789379090061295145922533357861512227723783532618958447544076336599337006646377218270709226265254764175203595728685326064648120844762667253781475191613058089714256498610580982674581125524755488928136432374031185818944280644850926004371996166058605268925937299637779401748259648148283755806639801994258140520178763291850011978456075578031822196520731863318005495488327069002971153926439011400168287252228510207684023495216154015565101172094960687874655046405478276947687089047116601099375126083075308860175815811464734311558040718168970605154235352083286123487203504698206887682733303985464938005991558786467298547003779532690787911513597056012943369069841195486081171180279628106407342808392823977424909480536445865951754589759952204631102367780491143052631487106415045104617382918773601154022728042479440357744452555563984032222786253786814387759025961802591344985678950950869622772532271079898732349950540752854508156400633562939285336987853068880804433559953381685612737890475658902746718138356075524619476092147599079748015571790081642096851730732786884744629556750570798872419023581656147575480425335867683015947044407882815897148025115942444949632694089772362600918205250992854904634461891003069436458090744586121384873418284537836200891339029347648473028131229584639859641181639563263699113573494968822465559463165250496315976150450822758622061852969545426747837557694635919357502816850503176812621172317902991901716721717766772529740748737306558292353928192560385198609365381776846416517917183483475087554433852152311886906281005719900993377934972083098675752062244804802402845910103030199062195914679088321704171279623395290749637030955863387794544954508289730929548709642505107739063648758448869952107898911382883108754731900464744574357942458858505643439189639951068441541837152503613951681915653225762898597322991837265979940270201306986076793099636907038988658215537329467344615538998211208346547401779432820783752441804624407094132252559892396748098626959597982087002783175938125685146452144748456781045474600288363211775392683832737673708999919088695480081391433167267448210772629767610101568847289017802638949708164256275825145227245202640888544141661722087332453013506768093608536796748869500876546531892715405554844194167545488765434400916734947545595629426749231787908281131123835630168351313756563497765786394535317553682902394993985185473304757532712452949736132726383120868166558310703219047221587615183405133419939800893037786944175520090176315797211863415979954407795790448244666970434144883710639813558503954755501973894359703900018435731242147557727149020804387494082618543260439945558147033808587964551930381503520426676737661796347171727106578689465145298082221190783275475760872249340613579617532420005044084660330535207791063665692054558909655942769581522533271509663966682350114757298529618955529759045034852532001235826914383984404084198737513806253760089059232778460180479372651182912717183821222115336066249620798276090417267272086798709481234725256148188001288364726140459196825555349490853350578438535392756065322377384170559143251343391670494595558774048459865393600471480924224038705493400191862897433320008217661435841427957982546882240855484736539637381502856524171619626151364683160016428710137490443614082788688328195785497489137857077829867191673824902631800994475057098157426599331258848798015364820275175940438838286012474758712974650364611246091853021275480010745542040041513539031560427550340972946671242937941432790816293178829400783080911072670156037030811915498125498290027200061525098839487335438386864160969872569835959565353892823114244193131502390651060171869803334288840045288530629684433841138519125786419697372198070296086697281599247849554725644773719645135167757430322449417617704391420508853531019527419402188318778419082234039613342242729175828878775647921817233893620521546357528953562237221916664982061341779992783837452344415387025251142424123502197422139135078086339843126583367965948569178026990492765414782490185132447239855010007440112853032259738772632830993666029948192903250550446625117219229118469870938715077841218721888327664044836691959976733318153285768906271135091366415923492904956464474468922974418026197196259755671626766514302579468623830765327850634685182491665812717542123922650008129793172351542202611311100140003395978075166782337922206874806638794313425410593636330891254387252124189494044208789201001906409198090609203315326668400977142324192253698296750587453936483800356683627992065148725199913867805640334585805238532791845068092930603753059741753818573548588596645498627685431056159669505555980963534707023199342697661616355365193312494289268118551139508254800702091298796648468105744086105042882676383704530110800055136005051996774248697897567039331797923964902421614984500321100581930930728778150928299300871459504751347969877524527326970089937965647965340438079878403614453402074907408337687401221835174083383098441828521580434001706693862481538184116266596997575587435127716651260754241535637192243016810361709759186141810729802200740930077670864974768770257438791116920229609470710496822111330887121925465028839852063716857197575599879947302487694704150310863180538369575280074459366848393082347650107479367962185173269783832529755230070463902137886763315348614982224803732928254035492660203303111696062582338454661686603816800682770251083739466001256159054098469216877146791030880127534203476743477270808862349146384085434217435262304293848663410918497420679146403755981025000018657862247282097107103437877011473732357979092134035252862624147829276580325749187658609180104153617422255833471607811759101570472352572664004669355720359729447855048620703286461750623143709775909944095844320337339663761519988292140506865001959222019314211917605971233677918106286567710049234118840893847111750810963969635921738712073212071290688172821315897637546081759528047877170687793331355387271872159427798432527834103597420405672545234546649143155560226386357328292018072528154171171425571137087989447138381738107080232625787768710836060862178817164374820382185871851569832657351605950274984398695900952252297293541965192148395256190685000153499340920409023247809911435360303521275656703874107477265227664923248284068426480903075262670284850325350105210541213679114070534966857296488150666123961523042666333806296983415270244533555571234012471188172932217141883343166563460507506024533580100856789850002831700942083507943717245821516400915272042631864456985035994754768228357175518930711041813291795428527753825524258524738117082867131797007400220409524859516020213607108117681110878398810453060983075245332211703169673576628114064114913678637657078644218357177301222602133440183734328425043486153067827861559666204062166344415503318735796502520061925120734317157764986692374755052529596889875876828715807271003898416465799971928469066535682042964409434664426675035720211755478518590212934566773853453192135663952296023252635982333700795675462385693945869272828489374462893348427840088584380862482380990606090267047503401229847745191891327312765914821403938925816780800950680842559535328641614450567380470625868995885946240104607969097455918809531954869084027299424384997983278347005720100319841152474152119067637679619501181222751478440926920922093956606269189405691201173261402721118634956611662111137693617073805154875774049922019104690243914555540226318346508724422934298241329430845220853113839024476695399565643193295033181752138330845480600009553070401066514976344988885380542984609075009508795086679470368300268709581565775856224225622825478086499108232405264269388624837714999582302384331047716734387966575393929957783972970839910615710304747970676965657149118714820599869168657566224038202050155927133445621940955560964276556522990680212234907522111212815953301647600708527372335493533461964146002452277861631813131244176418473429023125534327338034745984759335022693582008999048161347599164933523516021770712274308431358865360408270205150265302390543039123417417926578439361597148502580088327849295022776621118660919936203781340208749884007469989262239341261030311694127820607758015333178522894262170848707878996691001556180273111961007931419467110074827375907893147804566019839322970620039468560329027935789408786710299041924034889536623751753397560074550324421635431638633837656639460338056467862261392005420190978083824142526572081917850612654735673368692590212864887987753203822957092379542577427343027968734719298026058649738273933910538254403235265376727822921331395183820683240573334823057956964246804921895759970879055207030493744043371864121823897482973209797578381548179955258070551477202776775920554015604881950203169781070463718429052698416882122577364861926497441550439998774753298393292867863764502906272365718325028871613237022783646722317895855260805414645243280061656174358666107022956285731248280718707015326711725972726818342092832477037526129060258009978545341037403428975028891000290175856393746238019410018962387446067049000637422235501476776842872254979735481522686907589652078012425051617523991799797746860096546242188179956723837188616653526271828315040295746174974536416883204043770567136349715877261284072235911609381993289757766748113964095920064622314206471538825853947233961191032891115787283142909173284949070188395345023520077712789352708127787332402418205174383311828694510080183370213463555621172984205130224585098911533156671361197311350035427493170483749400465547787732962504296422369853990208558433682725174347383860130038264801452243859938263423813624067890384037536459472276131797449147055710160849013103887634640707426280911423470377903209040792073581388334035551974821005800837477207530722261726953714059866058599724498341621595635287568237338931939904297615915482948807870783380087256745331662010788123740592393058752819226975133501068192463289741745543331264076927947697649127742261492227822492415091395002519996462991881536274393606596865739764466087609825525913660800467056656618572585566450532247109731836805398120958247550454745734047650420402828521310129153281813251317262235121705063585217771462471397148504167101004945054233480632132428746703028405048342394982086249410902459776011366707639993041257917075566206345641315031497183103333090799478184276872377997120923640237981520195448889321083286406307886218874057252071642317909899885872911708628461052751429174337406096674551603245131663268402043823786208776333774979715889969618107738098939110023130640789486902531551336272011355528026217098650348091543084971903477293869655735036530114313836667621675983582927897916393490200972149732816764690119566299773831968216983529169622730576495655261132429449985509880225163612997851829146263071835063358935231707195809080945637144794168724302582593132467571565316081528985334845948627831763163042283732288133661205039546675801025475583222166203462334171494222460112776002816631877275762431193235636493356791430508424477274406238804513037955920838634904010140198164084020138819412942067891345848299342404680015689854127441306299458216811766903583077790499212139727998587342883054750021813491504257015407226831051795738291128994284789267708171618205985971857361250622647014162185949418135756934217767903600528780056004591628542790306941168356657310312458187816012085392411869679495170295410312291814035921405614747577189777971649623139954281907377742026433892518446780319586336492221454167135339876773715095864497574076529817006946677023378636475170868779413117267339176729279218881785881008789965666600871240075038263998186763088662792311201261909602638243520553118130699759929637516077722812740183507476611461447079306436730941747100604745731090953523893345487677412228940682397403842957619953398999382384132882336505467374264540034681671786150152208144164827217219433318974499414962829454866696972017619483134840673615314839651916685668244816962383378178536387250609436010052793724071255935160134312355856558696557596529238823665226946649285786136527938017556063198816405100693080904257296291356760315747894210859199184210661996914121040432814145172341726037575736264956644703471978208705885877308399387809317813343419345867292039031317360421061240946095247637114844406808060526942770611637892277109676517792916580161680402079357103050466186677604371197507935640018986236233591633285631020710853639436698704478679279011811297566236914647690027311871703061100076845344608144588973712608454819764820142973472775352674147386639841268119992198875125563973098608018684691182004364350555051069851936641921289811633974600207428433423888952091118878337224951734907383188742982473381685184992846744017737664061005908879398345345103581143339898730043494308146224410051610052205213670600181866300440715509628028813176356038189638193743795185221268362785718138904235045028598363717286241730148245147698021854705543023481764442157756971224654823432319574034855423839920202560941661659796074994343247213535413239972921528039217998195190380518739381393563012538350466116662691067742121365202499117599591544775037427560044895302959836706904061432215313441774213917856424289408657382056450530050226893343100412951359734360784965147848182199526445219662354380253795961371044533271523259758275919112112885567313047102134610822289327405657599547135310310981690021980592575373032640398053357441939517810494372616165098653281135201632457203193735235150992733066850596913740374674815995667686985154102051740038370023487249269320127102962179517317349593902520170949269691692604629602453384347698314244598695352463139302268626110035268303056096329153245123292369755813126116127732094414297948449714151499642346171818435250694228636771028050125834594138987067563887064415849984664006133175516332870602272542447809595558210504975032570789175080378179079564685617667773174998475253982614452005573892375782195420405608572236078614334748858152323012341326145021038745575838390296965112928049617944718085923937291387458839458912669095863278639698575886289994626333714904621376030649504369568404425292061227332992070610892533046995748062974186357009831251514353770382434401817881663747837921042815393226857412426429696229075308024265745821249435278683470886446603628340228588592796304387715503108189331182117205906640896061765039866018981007146606164720315334158701443943728720312407448855200051828882715511307658953738429008949414660304408417009700372360759653142333428676285838107912019746654300409076798198440967555159933918029018670456396282565344731025670175472125166092082030390141516515525557622624022750067719201900952068102273402747062598797399545077459489521344158580863384569798812815346842292243406344650126601331034573923330983133861428888094497037228676991366067368523264490892511242822589897293310151089015719157747588319305103882264558827070997977347540074124482320581178799452046801239758188800837587939421048153667220836499284869041449316217638478154369185944883828705933093498140800710148022633470304135264466512384574157473756461115950873499410622181512273860047120932099764910048934582427232891534174401744753532675239455922415048770149765108250406934534688685408054974127723498007574017099541042917744247120190118284161759696453145685456243880604010729847969507653553152361751557435594863711557309940009281062295349179049328403444417545947411148198245896681364780057487535557990248808931380032668378679614935799022464379257499107736965934729270232389336793991583124013472556092228224002950025391171615765949413375649580185736081820779647293434309653700984909976284492253748055128079249205612569955601153945398986774925886369081753415026137677016920686569800983214977855716605508628236495095709219866188411563872898565614321739030206475069948099079861483179164463556086680193413129055064698088680134763513791775226314714954604813218125707139733575494385619246069264180719341768854409199110895066262518034175165917366876125999210905628659691564660875967137818137454294928876255746692703545435071579741225139578901332317164299363093182468536297502637530364711098871633382370801753729400101982797382151949947294928137313620723678513903666756903785304010101211660370006153332237954621951500088048824546631434866887205437361678301436336052207336028527463830787971565805397625807249273581975688783103704713190159978514295084073206652607335765598469594324581562843197111402415292101016938709643085771615668555850845436201920870488174696030747101546827260141513961702716336039457274764056198644819742595528174012169043205504659204495277462507238215057074422918207939571903823558404496845505039011437209623472258457031749700562209208985548604852120792861352761055645351470969968255406734427351924122102190294885401322543618841337849177631037021167953282757536498593902412743480980488618486552097936190812592870813400983800833856973192727983544487932772134144973213510457453593454856440873334880269822888960120850689387332236081586782119870104462143868735647602669745650716077561135469446918579004257782480024965970519885968060611765403988850935785223679315315723160529043069656567056522796236253287602668314921105890774085071149697465105735630860272010906187322609561301622772242077234192070901248851109609104652520145197219039465807013643505947387921688700118588480575465768775482760153584007561943837758259497957760465931486628102402877851117675475810781962729892858395963522367113159409575398416128168589228417374555791736223424263406655514472701526746362233746509156190509719774244628297139954639982577641332722136187303454086695334337746992007015036082359505433631689563915885424609878983771641193791728460297793458009438909118705431243913561438659907223598575205473614625561284873098953860983907658339877521022135160517407899598038754375606885130450227625781579159836186389841299503533052102526344603913326889730282212415944221403936734715598540209121906882669677492812487481190141235373243480399546332702360807269388145314169168559968323177766901699756162455948389860002085282281238769588219486329358440451975134187678750370570424587603546073642793745168758095015395667382596318841576313083875487763900475756769520671741552220253882909057626086533376631170553391405286831104816053593125098229136217679530197194238157217508849218711669865858263489853287082323402260025343518982477507360345388961692844188112000873576040387658487848099881529339231285841615846902209466306622569233994491509379282932027719443964262363990699150317050292247573963681763726540260259362984804526476472501770417258434272500655903554987264999219067522748534226115228279962364416951872302100841067193554538627386907915416661912830329330300548383065954215921302989282723671710135446260962313496366701199905358541778082660656024771617062010051066115373359620778543328626862208491766936707398526647038265177222746996076005132526534195526216281074365406404658036529699878912457471159058098847549742444989999625443176718845807072045417826369662786635944700776549588363583986046232769751788698694095705338627838211767475363718182488789885057763041065778517546475841819967681484956058240677971500713692463116800267883234417268447068994279944145712908625184131639652417738590485060435944355756916810954189450573023020970163388818347227837825571172800003104566375524562321775307894826228844129046806755424163061778725260459255208758267835905478869304903416627523472424780352280914507536436183858222392794928720935606435163133212637881020591902479605779511014784382049231637459522642859436869633780260228980098315630476950589914149957285997557126548933376938130788968352633724016677779873616385626528807717625534723563160965824837028127773971620542040375930772397422026373358773754557825397930704608109400168405569246802507775991956688658830670776005124860112624091218439649132460394374875543976828291224094270288966122667096250872121998100998704027925591032225972484004996415987144476680195547338763652101406053584912590035993507834162718217082730154368731355372823305205410009084873272766923260543801423461919078026071257735343131092052044420204771444544907365888673355184255384128903719712724784444411024187014486836914872459741513045834395922432187360054077733418777027992902667514112230425758959528074536047821508414568995984677079106947142341458802606247936016223185677509442641617215099720239237496355006005247866294645207208189583746334138815635123053398338606919532489552948279177383404296222766312130203551759977750651714853350732131526827524340979989423888049262575531524622860137150801217579370184259264519936325642608157597091884681510095246572146456571969129208206992582856932421756091687788640532760228157583024812714239048880263909569929267039195045051192834526652681766245933776952684923205520841411426708542896846123924157732788889595280255587971894647658646131517747850069864845904264413769808399942658498586435687831302103915280104851635210347998949670315161479210643214237553893070594885967018235204099801815889905034369742124637486253102076346227671727889995809082304672863488388492801171266182725551547627928749641528001841395352887853424794434423944787432749962900028098594212755838458227310040675048632220917255898172516570853016572793252980186764255699843887763135810526714064015030892023580355381362832253833624992126971546231977429572072331111056058335274503164840601693426396252799080672800127103925743179584149855742870518210988164684885033530867500308915140111361848485119620360153836449906545379754387802777468235736995493695935118089395409056901626719721555967779728523198723242580942038791389686838094674320455153616221644175517476158522803221442626599828669184131572357925093910417149487543644288650583333549298398323307512748840198690265594194824512871920449761083201613716979086041276739629672534866805224989051236903199167949863621213360335414233363258020666822982541029096057331218761221277340011198774648733222058729001445686791681223585384811002218468071569908443272057522592004291585357633264897680636282718705331693749791659715604080755466013064569954193128166468635342330091892726122564616866218227839500311645252770465244111820578311357681012579076668258631424964577724860071037122670778136023960464514842509683112740183827852737569482284453366325059595304034848398953763759393927048919493228987866150929051233509058510656127102347893229809664871214876387615908862881331601496265705562524637750549684038168125848600710111473522052739081542267699777481046542265276135737077119331759544999806811191685547138728324590499907824529343691141033834544625061817449601669383861233925404820574411554621230171547248852450273071519671898827048862100728999547502054757189821031322954458649499046009814688668478221930829959775986951620486329171647423785288309776042205122519130690759404156598569758722737495845775124749773329527084221112578420591037616718514120936615899297516709488834534233984305234579917272386955609255758682509686935458310812517383160352920273528481557217779906114673074049199120086033106582501677871663711652511176192556128102392277859462090384240752865173580497651938225173435431029646661770148380208025377856683068513046821179809797502667985533121922022316348933200100460413597277400454143584757580541356404754683447111154487392732317201728975198122022825093143042704932532302297419286395528884882046144218638838358667868278070901471233134831126772648773003181745866943490120742794040802488326983858203568401308542672412089429439161132803681757067840449641088856327978453058150199538705427031669568371252881034084097046778732274103104236266576155356877832238710583009049555224626316531043671130239756836779100035082137830649544914931131048620630163514491841784293546604015715599925895229380638516444025541994673861904535278830857450610508335338460315503880290882535057945267294027386068638557363507617889601623606101940520539050638262277312977549034484430611548627754907783764998057004822607584435938172112928237751768883898928307184996862629855971181842910250501215544476046908107465449161271854418507872161723099037130501856633118720755099578087872944470541613885377731268786245310551342527697490211926553266602915533402129719218414586502019586688646007409903735943126640087436523660021141070357626486683620123772469064059857595142481139487711809892636800667532236723270458674301576026172264822367562415758679304504482526004974537506264279500010180604231454437945464768059563094082688591115910518547866726964633254990705908472469813365680409309522116331614499641069008273780876891766641428457531122793338683088924598357034967911134856856011405721591242959803986804837015956899715373807908082138102180651930357170853842454244697917856589839130885502479374933563152333906890744536118950099150487647977902265680798049542570580444694901182906866370738880697803439003750261343160593397108983707643790275181233863519899917889041426128535429920827034873558752105420731129121692502178177907139096172197209627016837991809473390500619330203004153975956570173944506853350224359831635156377676496059057939324481050485118391437346875144767498373580513580576171595907602016817461837134121765773416898083922834266660220550691183980375140474583266347230890377610135330788056647745029444752483438775229979991812350151263087410947856771653061527244744630923077870836982534566924474000776207398675353393975264656669867743763433227074298961408596709058661102285622240366147412301956625232213421495694251707399697003473824471625613943008817665679382437987831014651966954948759899693030403817139261710434699076933628709217611984929059083403307507631608558331871234939957593752630740693798245840716603573946940525098318620118465807477380325979279192610552300661669659697963016063033762699774887495237605529454932690678789542296734979637720754712225592418588457306848452284829386647638106110724641602792154551412698911309211887784374046275277133141742169109595265671725479163404008574808280356471519532108153110180707671682100222891395048568497630008869822266126790651192815137922617578820239501918310353337351810579189906450978136689587367704273949333598009850948587791942692274156692674207665012632969057912243372283000340386512106557639910260368269682782467440439850261537123856483239270620111307418393996331659396718314192617912111359719418727512848989196190697547094450745371524765573855734717867100822996870961381569491603546441424444178425061594689214472245840595224887587059358647909059700258464882718468196791210893307512009834657735216001265275601804729836725830734857741245739245687236703248019425837548810936915496581358086308617568309900852645110462297882563214851170742734592363111900848791247401728388081085466802314143608049104077789741967711472701151257553576814796447939013576144342492802931226398730442005592796684684560656585741312061215140036685959921690795844128964502944016421918578502180931844001833479168557504837768822776375377867909717489874182915629519875115655402513485480881422170949513266422319816907643547145446972317422526889446710449178891280424534012856174091750020814737317945078774424425243373691031639142575130284556925486017593258756304252699697342435172375577016611700628676626179815587777304107448581034258490029780105202341682912487040861806669186182246504427002959519285381928746370968269208625746825033628504706991068988133383604240306666770560267251189034636106976993385729971771156886518220135510126180976964737358631462473083958725675560128925761633245613581976732555266857065794260314850146816133539822140450802197948849765508003748342966161385270294058491722754278167675558801613847520892649513502490459119694095129426713299718256504373346710884148947012277718156241408769396515070016409839480292237208077497383829681574404116075104566141486126293436151387665197158644882646650292968163055115449988410560332765686324929670744519331219110361134893238681329313328017029753279611052356222633659679422213581751854471543426625466422032631720838111239818265026748208577154226244963544039916641116183352510569505167669928698777079880011435898097284955447724234024133339895718828211650053987247245601325425975646539673796773777563335964810371452607358227528109724465478219146890544552716284792735700461108143228655648431639698577914607658951119661291699571777744776508013837801904021953395832079440805199800181635949076389067674399875721290548322950610103157384210652843269550000754546280191474222768254704144255236648135488431442494050625930655674229654262880895731374428365566769486108014124991922672434731096077468405687262813318692851653444643438111837717770481443386611811195622374010613464924093380644414820718639201040178274621467717911771816059573772634805135296238223149308402065546901662847713449549485707405848726940437740054136657311351076796681864434568224489300283941777446152250758443022598463740537174256565203904170594121753142519082514192022425690746410640133745867793696390557079200063284210338007919547519128988858332993298065349803697852638512064878379204663026051745358408093222687249617460978831909097767691193543711653181289643308760820664882300611864649162405082820541430068304329579797319749767077452080777490765100926211937021150457639194819378412626810105153449121589035973685924169741122524087090110568730020024687754246566975434637907055341844107291976660929332497639156196709685104309445630201377882516094906118052607668672665350884209399344952254523085771513196865901042334133858186581140631898343077448920875908119808178392618638057342306095277739609201288759890883223684441589566785252642330015361147726281565784433266077480030953996641344719212460867635429644099202080037518249831533085141609578021315150784862005397738408890036025914578779217180730140490345669969936973022049724404059204795562668988716188983009303291476037408601633954487351746992553180874208516218398678392158665467844516086624875387567321183662620796107741082364311397693079056732865702011373952555794277592546619690807588114656751302340232768354448808299287887217878238495239784887204301038114234431260446738847559376335615811736089220524451300795450737237672754985638149996190437950649774714320017022323990396237328043209222160703955453080513114993684491564605282412495241465887353120568667325437683017352851863159709870073025773998220333440881860110606508379248421699015104578406801564659266698516742200987943378150260860702510642331537685749787299218547028373480335464835600390221949924582632285862210117866359286263183524054188961429077112553576881161941534787836619824345274906253871153733142253933310416214508894407215511977912129139126253166613588579776849162686926488438318997212122164088712562262290786452592516353861492410241535420918959385279524572763149515849764420883755634475374122622889641891936861159923039817777321174397154521644139001298226425139035068235204734140157502270848006876953873908996603115673925558942732288759492108759488649433980318034149627941956477220154441814699058000946873652591886365006420484596909241910181779372649901800816611404401282039912522173978325905012035710322812426142962917240871771737631486100141253334563761962314037739204796643874015065901362846524604443369235396902220636465096544240487195140118726557275157625272978055806433566882715430287849039874197207817722648877556208005504869182756419648363426328155347314627317155429442719249665312516551063663749853030370595920666445027207139415095081156992146948196329380880821709562715485237010673123043344682894173401958459867597668783964816192339717088679075587222813705070261806528643738870085592052462523625504320275467057346123074077100548320641505229835327724165192288078619533769116921001490430377684752827749548344784441799641315769490782989439120362729116758895134978098790855179456623600258880748480966916579983223210587042600183859967736686570152470283526194608820214057021983448150747370938184610337258324337563287865356232644309327508324044114044466443677032567140614035478810371613553702569898772579019424682316918718288821025708652294223176648739389192219938209366242543837518899641688154913737755962976618277210557289244399564235320136086911515665671415924478324107171777635332801183896234842053962152595530046142701145157633719959680334362209800952743216128900835024011111030914799619363749409654623016939118744379360960642847379635945883670545638719921001406710377625830324179453030863308163908523882582005197271096297117967174044640556525235555876195015764163014565044871391134911013847224516597997215154279701113205682943653312119132160255915799401299912302936667416930966338350047854698569472752293457619972579510343444141394351064630310330381659033489786976300371770101984466631677444133905351192289849192786671785446802376477370956317280217100360175457884922240709435606025781939701452690695469107729797986956159230205323558839115827216863043193962668633563277562058547493827078195187120367505233484608630949598069917189734896973933856311092286318745676230962105953605926017421903392656163588402023737503641027955515524769445687075088300544548469521471060371104726264201867026647482947549958127562149264852518225588225327752400240270978715734374225238829674867512934104394277411503111015374600144216794967520393005046918392930885162175852392200559849821341448015114178390537229956977574060431594164887560891738443106624770680627770359513455916756080400193406568822160183425773856858815496373572463180806892049707502251926218054791348283257133710984467475944463769540231661959328727246111012861847951259888323289416961414566986161043495584383338963051887724938075707924352575243344622185107222593045269944722207000939703419910725585396667170629062977118608210390880140739366789069811594857626543083410235193758127841152216260916011638621454490115489857820664704785005024099537511467922584227664082939105991816824756787964529927669240697320443353117390612875973590103622284101171849664840338977329793036169692897983572041162338986431898889578485045296803809795434738457402709846254814706882387182795271833235093820077874325086199064105185308093199301232209901191196839602338863738568358595469714336292989485446135350868711697671324230581203604079086522583401849518886892018875109610166599195063525140540659881078655660719507734794857481359040753821897369251720061114692636846562758072177956453250602619083318364992570006031986957683377753341334405318752500231733996681046453417940934471256979623880637773510077824939113603609090666846046506182196745438647610273487571682253815277199795801459809170412882967654154152630524915893684532455994656950130022072292561627359160655896236356818371589836415525926539955440649828542189009119900068027548846725655196434437648391924159602380883153033135009485877483758658941813178547576294488888071365547048540626076172624192961893313547159435652308049443206172883471687490630578857877418107328287263121564281148284630355503522948788129909978281849512662813108816107154628638867258484361677996420617073230143356373486703447828382935433446283075896041098295591809351420434344876578185585153413997329971550957841943469135777637201727244365278697990571051337415413229700889854867577743073497466558166571984182834355461194456366250790573741888106049010687284775158258682878754131507656993112170478950257699728233578419781568305205353386993787903152013745338877855608367685450900806174922297058949961604022768168921020380740809095696194745634813552250725386603501353405064923523276574218929723788848370001713947713854182512006825065998895711051988317696198631786179104810316475223630779060440432581615685201827573306433990826928703329296041758590256060333590838073723711512595444511454418106275405401878395492096731431599031490363630253791752742410919286148287637226440000202600928554464875421177825537461633582205384815060828221916643464906387093916779715893141202990599425021080323556942808875373692990040827986003318632784562995208462516843924902286666154885176851122360262578382281374976749929699056146711823516139646302687901404745794476979651294936433333818798458042284367362312512287596713468886287675264050107155815148547845961943115861326467056691545469873301185572776187160838602196591107286843041466828460551880546472688215766578461269972559673261541036364658382975321815543853174998547137502944686508297447730964033609590591582325226919654602961999752887887255841719413420741444100777806611813332781377185329080952918981205960010606281223748863688052207566819041786580344043201027598348606755284705998634928265082243353588893529856046291582844364524054909856748638029311324385884423547775657721766000443261695842682274078472876660550175737004752126400505817472049251713675601625899619111846655194762361059009255499133590508081051641803700672579097372283145778083252544198523749299166245190615953089476568445830544528425555886870807788942168286036648432185998208906297243356370722245012221844569169562990999959616025136784473763940871991493010333086150038023132971306214562420834723064583705477618848481290208688983055020897691798695356072796848265930961199045571224300478084221305728132470863640894553150623849032176630613168200459535461096288750473026838268589384223386562300805108290414100006903142702076623331130649977033374633695887019595183072952524237710077604390308473622893183935983557856182403929651130863580320760510332548275213124932402064010822623428171657849804367912650435978018560634112860897961336518995297086702194726337104451808303159779534966727066680596224525564037673194082804100779486294992290752328283026219371466584087321795388911016117168074820699625686968021368582552821043203385513167493942362106470324368081959100279217485133847801521850546096974217113444295765267579611558035212155797102944447625001991097665144604848681743934045917357893827917762619207438559317251632039077573026549128760528914332964652061060142449974023321292290436423568680328121137524714844320349740764277349012163133454163041660573962058436527101851279401195218001176448790020673657232272520707122032204057638275722963378655610578340688889647607935160153490289173077242840488183683799051977996297275792256737582898963562898739062229192978806901417889367968820228583138598924144437768489228589202673958940680878575418150196481884153027660858954711467372032846647522913988102561620442043301420716291437256236537676758877433272314156182701060240616919399051721325115602838556003027118349054655246593696045992713897565894027728506638380135945154685254042382767733688364666488248276328198629964670106314064768136237731521636061815833656429921044278722333494292897514344021740701276715529129218852013451889642698656342262356584337389786422292298492512727746377120777216593010808541460128600599182520873277558076148623496794717060832430403215398261578429704440848983413244717780977097989274241959268562641301535469547750421157240495958664203218781069220666360774175241065361743200481022948315802353094442348410576112587900914054209626006959094650007762701577542360683986148027942436550747563168343998649241399437529058624049035471650952573303755507383481689497369632963833103484432799052408836614824258403898509191266757899496269992434956198417956588223604382006013426323694600806330082716535899598908995683579986168904312287643336269859633898354615235616413280478193398506681684417220194473550274251669008074493976308935898590324610914314180153183108162779894593652813540261029104694780215109934900513069009326340526321370236879058013776980890668469081063537103199028950974615967017470930606491046634495634728134303985900795622248085444508396234114072508660177579499801043773919115579491146107469892774246682325687379285574537496513350071970440326100225007910326570642350538793771729775485716151101320078129372315243339229623892154307928362880308770202450756897526208698728526317293387226331089505216339847863554684779801345438994544895299145391124623959550877858510499431544596116395392647804105913846795032769099519383225006608204926932333387706515541279922156939798829879116168363867930312798189468194025580942640582675156760336610583952914243226648595625012918136775847861865865043979798841122445478148326839271256156536312263208507142302567969992473251933524796945060511381125822239657121528237322249014286788032745738058152316474714128024912024877873940341736104535494505280777824054889615678014719939132895622263201903352749498840123931147966456807681302868751459359038946865235694383469395151175370315262274490525528385362307649978143245617240422260065584998898775710487932119171268078758725565056841225009336210192351834965198068759214802892683625555491819061696741705951141085156167691847994279883421179094765092871957343031809047692334362804512517377783387334162873972884053564512456661304408027333563430511963792398189145328273065949584112145651794266628725895222212613877516269776360049282127112419028190081188515082985362988974573874002380980451302085544342857159631912191843323907328753916106169275717721210414138033308226838369809842981302213697677299994698029305149603755382703615567421620732172385886736957471473669705393135176605965694046530588574206851430400208475365884254086694440655404865835315090627139076853640405451724573515513647878883475521782854702558323678125791653001675496869066239522514342046508451959323447677551573215231746050464292486740719349392017816869068964092574298779344432434021176663188741603414120021703354758375109407622813239204036329176392514187032192071884217386737965028895737294390302032847577872639397164430539474159530892153380468436696792909400228028414505384950036997034111050506792577716349083837119220971797960845839780087222715407080552815274219013144475279714696621819188233129619913207892132619867188492628141170165380992566589411449465775163285995019963034708060799382962324769882724556146808956099901842290920245942171106498537559492684038494109120634368445975940342623508861108666815889031539527702736324447244926957058091939079109480037312038548516006821211968098421648726959147960301526846284914096742082040107367840832540375862506580013702269476827082073824357551041640508407342854400795818360703122414630172449125827320654343475331786075501554202673587412718594464925303108920849937575492843269018093262145872571123407281442009081923070239195336492155037302330080889910266468636487176988537165667373515457560379229921454254079543614453040313240134921082109106760106365174660305466964503878001313478851302062346900083724456458899193227245142687810089597322767014710663962230677832856728566178174424052201068990270448169417163349949574794773197507031514137766314417237189642228689521893788692052774843557411430134814958435358567360881254279462118628122970702168723266468709136342200183804934736173123389654874187067993557818631911857857248379308920926906346427962339496780927104329695832849563955836691645327534716175799564779296944340602277539342872004090558709427311779312538533682918555553921592390085931997309713316959332547605683422128072664958969950752989235198930868830885430393025066903869489342742159831123232332420642760486493063610999432035593770937553003110512155849703668456271171703995336181395040630926974196463179436880106663381523412201093953942859106641722121123778815633332446234412451643875227072665769284153890627163199589437808321424822519425043060781657105924778471492523769800592617679206894065019156867381493175168098994728673943064952035977920966340425503179001983927295810582123555946035747510011401977466855427550746528411728528940120149288844914111446082369737741421613010939512665412848156822098969309743391609287155244267943403659484900238516686310739414405230035736987974542331624934843087808214465270531194399964668382737253642642840729277691579444010827851945245398312486450616938852462451659148977201138781073541541965027025607345490618008761984199786344270147171880155292052905638578201582876363402932612062337566334862049833638738334104571330230187802516091997519120295508293418583329162543709155666903626599531179680336867408309810707098685297460946925812496630871817191267845174542964457171042075919638309478306316369850957364618863276778689107811572234528726617033633541452036769571065832651413772800968702465721345234599796447007212485950332977469893015898987019189261928577231857857203483948317306036598724524779354237603773370802637973414750570697977769748261370961332926645783054550161831556867880142572468839352312897445926974770994112572733789738432806597306952425636234670033756898595889970587683097459959909111711895914613741016685087008952556407859358011689589184607253770650069336785861884601210076298611226717476543845484683054619400669912318634551676395097719008048956784905055357797819643203932868917656520406439603219608358074144306679642542276519611926258164127731229920066396039244826832300707174190474523727896229447071491014498290888820286748879503324424566245249475406220772023618421868189140350728061962607897227572526438697819440347630046726334491134390533302965272899283201723583317406988456797540623229829895251589712231061147866477991083988469343111645026653514170941926283535573751182002220578900525983063393857439162715540008615990588349393943486959413579971264129728437932076745158906714761367185112310505626251307449590183743025461410843559392240247019532284902932482920754381931117569430576225804463810804363478303587606329169056084731722106912396943299498576850020608896949785225004693033913815485383731739932158373688034177031095973265991730398729942261744511022623683536611610327003252370744585096886569071010713937077620138913938614114499523337113283276733051902919522797960746085777936842671873779519474254054041027266173731885419996112839034237066079519131665918854630168538327123906531513522159419281216424000837209134693017750741217380269298160465206673835692996658309199825006528534390154774797213671147046398481103022526451839977828752825270467435329960212414968123952094026709799176327171313263513043705179676656521790759021486347632913149364484087907246914089062158425411640800590380080893048063572555420338567364662226156114594199424972102622378044567251602241546528791890276549533806087032706960457276096733060215725367847215946923624701194586679984664784242776187422168409965082073750085815334162315126585811819006858449816626945961358354136832370540358220951507785774432460264578997420381268019897031675809438036924591389783201969963916509287809080993307900861683821627566707351787236829849416587058146575752325592998302858245412446226497011966357394080858215596255956357694706458281323021327334005761521809258818376731571295593375762014295540211962488160622010602380081187563206952040396942901208247194900527044415083698147746923774916851526151490558297502186509349189754897667984889982229563210512021655043747591110396330371959875835268697367830874998240293747848054741426027086156441963814683193403340179494149692308807671800017113130503446464189530764309486274058332559702409573873838503223183520315617641617739078883853526778534024671142582104297014719793288364451378430285444450868961070889067235201577733895623411447098318669631083390330832353482461760518339452905373738621945434902047232852782931697124905679920342329810098331681650412124906101969633309334956026370014904372178212099422073749914471086218202916042189712954575933273668159367927024577668939507384399732523928746046202770327937619431009731677703404989736202147304099202031152332562437744002218721988930369270222729372499263392050122799542888449917822057864905047099246871939179791902462316174228891926980553047648371246053270454562601144428843271571554462178875054590142874360691471339456266824350780383917736588009367354068522386099017247935181451557291230690251811783809471749066263931501444270003237904801081380362529546253445456064804373817918544150299748875529295986025164414305472591756487056403096065633124883058405464344607646083706898456847614687092581055365737514700361224662121755069307005275123755296775415348591761125270742941685581573527765911397299966734747572399221361592504098813512052742853570040172226970438423021913952248822735802570717791942117264759530820416746511284095179466822317830470575942137869658126741551962680926558600278994205788061672817891273233699077598099118493104127890173226815526459007841162428027491644711197606949294515610162974305437421653524999238020774601205362502872636451277026667686744397651167158219656393477885380310903317968158413901812928044336047718966641866017499556984125506991466146315630898456591202471792069029457242405385244154290728816931652703320670114325459577378389713033459183411846530610087786938638366233385220543454190561893258330553093814706009939177848686596907632944089992679271654356753327753376890094983578439485590850513530790960693295633302865100638068678860429743212909579058877747121719846611236227012467739819202897234313533616146110228790516426506751956355792878656649550326937898482863293766190313075828066851504952502586498256554014958785988931760242645491189093606187505791423381821001163129768035776001513592122595285891986536891966808007547308428595592371668427211054686367176389269626699745530889251825798197270770476418026957231433804517188730912356262911814041011890806161345276413278895183782877055532828051970801928364163258173919163660578833423760644970108919346888373906539191048438381691359966455100933781893091458874042787238731180919586430172969497523046172627493353918956870287650764473438565208040047222150315745607635541022302989674847477982961052525107036397719578365912715911332167917972225486442230670960334308938590150356593248806676381576476097070992549562409697461300815421542133533210086098522872589453903136360232053055111811689617185155051369588651829672826817759925065474617602314061384345835199006775843726315886926948288099271619935765494008793771359622827198704658123628945920567421342443581285607907556358288576302287538848036242441035038695969624842844628245239293497429421719075102264758501822670664451041897737425814722491303076245850001248871477990196501259369951749193986874913216378167555470689293748949942104893564780023178177845070093240805057573690063427042560899091006311735503542820880213605515297762981354245171995697887015984666504928391322272825082600122592787446904765582039392925067989395269479283680653306933494081708180681568130442144156264363651117743813873922457959123694388267228768225695297022489063857826259104351025389359573988606266875960852177136713804489323577732751416824138246636585519658626296387175912630991602705954096930704121309961079714696531789247175228752762512731892139506702044185923585991427265334713023859849882092612751186831907342899862503423810386647114984661600944486095560352060905180842230423959086887201624787871729712769790158703588313808035808610777368199208766183354668322144908368245257741502961995330327589725829662318174579539944608115725994825815488794920181460692773371192968104431441678367738129175651503959601115497133643162937075665376085907101082056448527089375863754217638722162404478684398234635210606713836293235227138898470130169056179923612729148990712344214070011115854081948855760811772598789577642986885549192177019950869113804430687773205756636027444865885476578305179002997322876688848992358818448434263919952126565995810498625481749244428348259572165989757991633089255050657245555548607164434951458821940075404268822024834372584596459147475824773846411814328072031780773464489818879902045591473271412639119509246986420105293790572920914545046924794671435845700038729390132135720002550195851474365880142466693442788319089117016384030662991260246916676005886715183233235348530549850164152539266965932129440807561818880068411419980580180170737091443651160318484525709560203302751310902175407385596811882331821409767610973314400738660143124343941413241448734589559849962881028502692653819189328619019974476644838511475195401470721894709610967763403827852139603665564730696208033350198174955862077261528442033953296436608440828153492895150348002921738402013654328218424361445533229614490569980433565988249771492183314518459622949748841424316637438889615514395055825913528982016348324930026000799987736710021727105875205715713600825761973711940574226735338060348456523548958652073763938232380207556822677824548040817832538461168165227002498195595067768729247582638139945858298789905436437276858038305213884778509537870614342649697608260244648358411907619204321791431558075844653729504990366924866988126968447236652195708653567276881690383010381640925013381578128955336700730620662702898339705064664615006447477493297581456549152757380438858107730409490600088477281336036721755596513342264552276830617804694135577408164437025294254677344512070433582134827245568438645757858618114123753396314973839529575912513808121153318491497112481492981339336937319615017799358954013843385531953442842042513847161086032853824620585634170276868186969761263394113637011179792885891702465855554249015622827242468895771949018875002150404530369412123881822264495528709991968586911155031318430328117223441008218461960347462900321412849733217203009584605270919635232989333408360558652420502887713593345453728321797202272109164310439770229242359662129355325959757832988323822523066117484854661749169956822685254996411701977843356240606151608487783918360073734640718766612415800310945743025645283864919333162955460690602372008080685504362430746594909996775226777259789914601788360306263498463600020124840323184283105474169051281978886722083425540486430967130965250495369508476625237728246227683442464100274997761647918248512102435598468106499298715498235046960253238856341053659637632972954767271363742940715533519279710711032043114545239893945935837806639597470953494975106494822696855514831669927860205571133665488229681618288486039594100071345768354446123152582089312582636940882770376462612241308765839803090373331536029867094093616936834292729649135786669889153258447730499259674425825830269079097131934746751720187628353222252549941551769295074255464792760938904997245986732515268262800773308631941428371798319944965472239092516435366801414405378447233297911059522178548268888807899767522545356443279880406867064350155843493334866509774959851712684168679283452866675753213893054926768397635721206780646769393682459685369133190649739332504628038300589764121523316374164866630704556730140709687679788786405614884067052742256439144537837425638393466389739772626031051319809202066745915073979107421802817438319071201062275493445218761738182635274173099132960002463065251597372903254527677086360613380334414650943666668266955599093862073426250358470115692930808977845928426773678141031242589103232635497158720847339378851234652190539241294177914775887611740146786752497696562096330204641321987210032307077228701334766658801218840396838049513706009869061253909433433976023011627735663214330780005009237777809797768481405559331752653286456112933567178907371103479496212656842786285972926695617710523360163500647776872325829302224681703884770214841052866229368254536053681559845349307774490917395034405135486186944272277908872845842675713330041729812032232807232118315262079200610005022349881845525646319456684406222721040719381901420815220731104434601342275207883437341877189554656834630978645168247344444709090002204472953225771238416938109769931285997040771467937392943908277615344049140011695345484236858508047366221544447848133962350605303117182049767032638727497557309019216621184881402452809890079554480681089410853317155144149473517355656952440940473568947273607149296047398877601650305446928413714152306784702481314205262561755606682143178426762556095634324893623308296485388883588316649626733836627382123646216038036987972377263402291824653985845103132849332098391948450757431906467174186614094150281384205267424651449138688327591277115116797073031131685262509615836139274528389781754458739040449121646955175089133990164449725562614762101702434996403164996878775236123273698877986623056444844522339588048384912257014382568248852603074162847121130023767315753182655008431743453309870106209360502584953096713161696981428128275283185611342197888011753939026092741954822746017315377752151894887193422262474534633156827827652085082244330296080905232488084341475536135847508981152505348542594911038562075632427640061112367530865181429933631820181852099008746851182470684017560135229433454986772138987950191692168234866824998505310250712739316553147432203119393444689503968742906474482453352464124670099280311044157170687699239053153204671918744858074325901265153968938851719476769653272572501207880493056851457135040660891951001556804363039550819033279656637918942344258609200939448024656553947981277002598230612302183821423212135952988795560275679692334630148323240342799782798389613874694727365116716542266247781259164673563492630166254174731143433100894240041571288537572654030984211992251140740160683203904434571441616909946537901613701387108268420881374285936954678725679402476150329199500444031088007856820140919738369819902964506668253072315349598275837670326719395432968716991504263953391826403857678290362254322888457667652054697270749448481509476204273085660005231659772041797704347033675059740689675457032077047144853086280059389356311561102982222795145527467207787276058796495772688462011722250908849082064546976253442036629910305405036034809459480570219704765300467245170621514344638237247270685218745610605015648394603190327286501984150437764523450786460991465979166972846101460035281140956906586045352985159162084469432665557132841709572773395266072084592771583530401609445242433741247716030798591427866262646980420921208507352665903935836800411365122118495255677168561809201891545812337982161820003406890814012822471580205956741099230457648719636278476533621637464948372383387602402853982493605410801208176023112062378609014595931143255991654198607101183502213121349022623224607338256159865432668138157832355252338686935694249548963262979352458149536444482565987595257631494821127419442656061612442652917949097693141005644047314213325442698304805742149319557721191407926762257359666462242462502494155556155296048412062870453699997689477995089301049950799397551968710962101199799617902961726178847707514777694499753720157608875200797746234996523158862015838467547029102488451234766212036439519391563205464312945670492649694620308830640897699461074718634763871429604406294316981765841924133213343465598646616084085591553610098243135077025937430085309841959557617371905043252154028275097189867959380295976565459640200418812564521042532425379788825793586898550632068089620655535128566917906994093988826165646633678525518094970660854731924129150966699330262654521846147704839605242747550304542891026180670017571507987694375768863547470073644387133328688342266040465311484562389420067078219192326748258879189662154900678518172025749805032994824115143944065164916213958216291923732855649609272787083710932974421772911623138923678508596669918573073317036658278996313202686460956300526557122476800387069047792497236289181282245495465459774004156396079642022261990546866578872184840368081651130736774456775208075338834307472667776388001404668602749529956247470659711365483335092727005933408756038632152380773200443311070116775207513388908307659151273599516162422617550997392469388511308832313426224210133518714673013343162874785397649440335718744045003962230086288204999722048942399892641855602108869330540866968875136927530887976109022831474501086552856094892904741685494957275932095033141648385377373424520719036793504598618663588207692038838202676067554653392135483228037738004956840810393306390332414781729047339382259049802034719188097442190432603607316857580299790114565814034314328128330844023922718074314040070708472912401066389254894615646727729862040541273547685165867615880883286461574371844293146680619686636492868197461799800535930181593099785259674425982709215260818020428480481594704471545635172202146613240800478066468259251993161579268932932566048523321125835552231278774379176559603981172097583980505291484821200945728780462569234541300278050899070707813211064703714827070325495836816969786190572116091709690605029513734368478506576630821337563521776225875059416618618542241488983625413771869702395043392054594255114540423485197803889046294604807478676252464358746628281525687624312165583833140035561090171308317153185144232463017738197936927587983387386209068456589084470161413003720266257578493281346978368563215560222367179347365247816502571855768290160813438658509325350276865987712737723996821392511099123606783273785623887556864749626120340252962469277311010300496400942975647769216302312674085811483126323511270095807901481201374228417152306594537435053463650895013402140397174821797681775502151367970717927804213975045272347433962247566808275932958220901241746739787644684652704674766632366326145910516293598168647748333406538011984332641299328356808602637550371050679300089717758427441582709546934835819285366421450075219447578350325361563710820731692787623329415780454072962407988308285411233246169871240176286392444988130687180067298541369876055865053172068480914232669883677560783062757495135431273325009009609466716988322754332550042015533352673198551481262331544344397687591251239919234292710961963321707515669457899799045364371732564704314892810382689714298430868650862514423000186545109170375488434801776472145005423013350239108395126159818430112140500450748697195080693362904241306922297726738631712802607684031379473702065179008838271378328655731489191941779665068102069531761363859747603207394038044136596463219399859033553620989091074335600322671688057660555931809261814722960654211925015200342782434188524275301367539947139920869539200615572345927524188623601168201633887182782285230259920050066064607188736643804087667159559676009881867907180143241312842053239920457007806268327948665724012388908099821512821899004611620124818187080917313452488269259615865977337388345387821083976397413983174488787867509174755135112260107087082299695580581526299833058437587026158055113899987577530738941237875173445140142772197289875682960651519814490772904037318853017802443701914168787221529547123921060699910983824235681700253131303292652723208313422720840695977204590766876733472180403212219651633366958651062303000555527633501101307431936489393367387118169692156530885999157140643738751375114749223460327460222019677797147673906291598737765132267209975361650885983573328462682342951856645800014907622374820696190170063235657720785144558796282399451474688124327765952850386767713091112946086998834287485629205046167283705321983965197889028166575469566667503945991529873840301226919095293199517911534708297022879374719387090075848613339938591626104252219977038755998733958722144915603159150403353394580579841202688242941052299232030463018021422195288334019455614423828519259107358875972261610307758391915516121885751775419225810100094605026835532516360365742813209996710955419864248980999976932572910952305138022104836334115234962941660790705603423809402912013140750397599985612351200119115121560723956586793999754673203113027254652189119797042872835708225293009425146200851033430353638836820901836566680052536507313003544818166484742279579488452465547584346950839248363762933377452083952026324544020333331615310627975301773972668993049197375836013135736663967178340206043077383582585100204626103333653623544559061878282271949901814976464856463114904433442671833568655032663487760987276779809837975826421724114714670046352633339361814076654137131800106873800483822717817952745938498581009573514418014455848822130735060469548637179285592615917499556615122282890640721308047643231366500660045440079368508125618055825001819694581567015291097322104879402465390762014699997265187641897550216007344477990453888510006915815728263748051772989027888399627949950962316849407994711791930031399979233579315924291393566808887724154049689062953310997901966383922303701990940420476558330399594526556060603354182167474638556138650391373884314721577633679350857218971718442103805346394085906552412027339649758059893395395660530402220699649307968189770451221664090931048674499680820054394150880858969190284121611835026695989219477163767846521718530281553460738307981943251849071128893156242723332899605818454985620745627411911585804630176189725100094499289524527045694763580051419918024940596807433621435607148166276249202090364231338986094976383366145997320016350798480199049204771034191113186623674137831312665094853124481718467416997897288518224448239269901354360727179205484784740662900660755705592378270511599650112240708736883849864978360911517798779815859433007282868353567508927070376732647257212382604387739592646173980259676735712465646507086178106216436709132867125230049461546337178402459367069166691798684569497540619259089244708534637214495976562458278098991444014065474145321856585938625393293855024275008746155874591551816983115755397661489953004031566104891705440175704454452872139183279348366207514986587612717692290195309133574223665994795921771904293597984949008854608597431065135407292019641646166391126371220048945893972260492251861121039994346500044892230718275310666351811078305763612623556881934091687097219419570164168559573549416513215526746573222926152000140990056264550929155998753279807672440368734169238043817660979957554179341128252829070263407931425301183570890677793281828508557460380007351968982988371504259594136252851967415330631518328746380381609228702801383454619949973707649570848401436525296460344814180403844711546833693808872883532505908448040815717554308180155283435205000173184147028181570418746150673701991246695195586653135030919145132557272630341745339222562867626480931995947745620965667510399697105279117160049884852015224954164574299588103308703516443449799093778355599784167970674841041775674145081474692407549720752659450512255446364447720695742698180223453045949211682522645226289884268371515253358322350456433308533670780712425080036021097723993374634909986919884773029994335329746092084006352206283468876752284369830959654939249581377363265935517598863626345977702030210758949468121972903452906948013968201906194780190627073348839841804049455274867383254064931744949328122271402135926815030997215010636415524805663328689274399701834120176949267138669166443881735886533008892101149603990470093392719143019268428159382788618962002389064573387686869229028439885505629879292943288940726177562602008635697800008696678832417165627042676240332494226446275072184631727510748506214362660657356457607529483732523754977555795482043161704986344744885051281471243629826419234017173144656283778487676880085668977028227589904388887286869392227256041531052402977323622629256667581479716068717556963867201695275446984067173358299368397061291552158794421296125040252026405217407334420779311581203178103942621866035999542388265344340633679023390027834505249982149339813558251497543641715204590474419586656502256741178222966880335992714293021628129792534202226349155028721131872874838507863015115350985534055995839351114196610483992822202358580123949079829816328414899597723619548480314017654555133486396726058918534454026253870533510820490423238142990805240781732487799495520024656413744478840338627724886872963939096484906512948430333197935555632070924470142821242362269415733892032210205570995025388792478950687400478397699646485391289433484623869417336149960909336292884098734886603709778208654748794034355778694481099491792982722910704982084585121493132359556873451952423631921094877645918575007200844312092944865765980845047598250353081352880092415367902098734499097591500838617454782012826503509007268260752381395832355828071526387383329603889612321595204649206263642829161245944747366048547694099727832325763515718232438070381420805636228366468986258012524664268398661326386292933208992103530878178777273101303137534922161041171270095273874784110522017494639689352507943126896943848534903389019132301171893218882526006132193705382094918498262257523955179855355028548178035535650206820052205422624042320490797224250489103090161994221410486097968725672539301584352288284981027008213374726511965808090249204190845962343720882622964807553435313588308906627301346496660737702014772701003580755806648368483052587041754078449128106267563067369030897712353494146267952492130852004245448970457770062170926970442863049823737324015090051154150489845722259710808428108784070321514604482241198660405745878176643406838594098087258800129614368393645210846104358512687803012912111487741290815121397062500690783189140747189448311960804023710947093731891883841996915855696298961317365742346837368393542799762734513951264781660652129371895530677543947998679146095390473934805632071756044921780963767796486059813962696818091079341352974003368379105275983595099671528245905469341069676181451409067463002062281712642163839217569462788878826599168789166698625986409806315238351440336952754142855243703739530091015890279092095284098230742496635812897558677056936380218581815815528479765873337371801744547978377564884542720320075974902005843534832426926700404376830462539092213069966976845950196286033122879432300892875077366952521004267996984318815554278678587786301573253812265771147187471681563783620766946887439387752188727732508302478251858266156551136497016046927634200747799050107994644565030077038787031426326676676172853324576093236687047743256090404698374706127207094896996489891366577033481423745408103654114276406301966118573676880363533002123548294361602048509258468717175692717312987424775891800025793646324056491273785418523741552925944169978179342382502123579603410673229800719809522875374832270424376730631906933664273466376251312656280649406665070591747275839734387433002206786094090651770300404169976832116989634352659883020074635092543698778216189386114402045210767066165509167411528163668036536202114433851651516292595488639928662924208183564329637775647217071258156534340959029406902256772058001238279002320611906234906405929604789502183520103787112990196657604503701507199255553867034241322538989692403686419243235919119837634363247949868262947331499090706139717588549128071219177577676752502103567214068267417121998989955713507304069200479888900959302334118017259304177136893019027002146667380830286272454601737238239090163211512388244799068455039073502629783322238653118403304754242684175726623683554898740164786353047148016440755620648181146985930796042045746617194945513082542646786435683766869150867278123783079210065175766367134309626466952437228958994244488260686232963947820736092107843796944027605400048029470823357821547863260035678354158619472069083216787420993724395463507218416158662165952836147806780297862744707270627560794043627118990119031045071505607322961737100986016277901023924005937353091508102543838867553266035652759318143524059634692280032283680601474261739141985994255440589686228128922359366345147834420585938247295441207955963654037715942789699437427757375499925779212659063094919847254080051572103406425860191630316090653543689113627849612099067843689379804110278794648681840421870998924077891911308450124522227677362977168655555934221563995609868369095515169001738164804597669751370754111843905193064446967649919564602189935329959438286216805060110054555144647780848388694785194798188033305490936965021536442008806394544925954422679978843516859850172776516152357881677146084918269476314335805836970932751168826018734145384090509023823260867284955595217982218375715560616605544311336165135020441728272412696138907443887847767296997574468101937534209504058783464206055660355117888498814423176522982615441639154431454044451439852615374147177839731901565147639431992235675825176138440194902808222787994576446751778954696135233760738617221061101622041423587458872805007443042017580806385668043806747078661341526183321587876300640966599068549284513569034205304869958053908452996607980708583991311187665467095746195222055468672226583880018986278779777170975485768592044352118438096918514159570321384571501605346355101020742183823438023943458572278876111093746631831132682467735251731183078697273462143337459328785402927398855663155856544324720114759631392454332917013002145778070394790179574502291150237898413328390667006206857864311215752379431833118718289453507675930066741702306500200882604473217284388990008325950326590532096910512948194028765093206653923422606392244831771782657126051687588604338397365547154074967825199965645699874078426814776656347897549455589113677669941982334306528359462376000333250558585413275999577858813448118554122820431457791800257015436430770568237723511170518682541572192808550615472943657400806803289166180734846228885768173823356342002340187844493739552168930513349859512669164274252238154036396652860667213471011429280316729142338544339451779332384639898877728359361473650258727823929362775733321308608234584562069269598877482311604219691484890943660996482633159949286540116772654452963148343830780017469813893232833445604218541296797445429509632137726485752644929790107134386501571483663896402571504200540858241066335467916001808200151697018145669720946435056891039305148306799374102782149361829630419565077243557723020087224562064439557082057650442663061649746574358004785060386934550525343036258552562392234146821735477731627395650838678119266182627234718858339470015728915052064827123960553185437041834445217559940941073750916808350028796156911450784740020765337814288334226137745345455677981698189788568700627697757373549100571398209650649505840604333178617170408357000339338378215958717500687897685961266442050733715213153559180300064080591149263949373302403982005449551651222598036564596694967300765130081406767365498133828341988781075791977822368514745860154185966789352965874578241635698089149135011294102118604627696652094643568580701199926510065194522406444682100014793956137069477429936492876203053941199038132328981595279457462756331006051747868023673732999287912877887855132890422497593053017451097776202181278546718470042777626917414266017832402743496034125792364990522864571456248021455816225232631218953803708938834759106396575176657874736235079867642788140117908221765180600542190383446465610754625148728967652843160535523922575137722856619901144597200778662453874406058103584598286333399432153557939789237815243524272853195713173325170889209412608098888325385274760032654522058684618350888311742547491385834342004541377490458683508999510835443547555271984937573010466238721297963580530779390656903654696372809263683180720524337875236798435391610257926643020779043221611127796576710284109304115098682598721123780178122016720768231971647189120788939612112888854234943677564360965489353421529701963152599283200814065633369991941820243524074768289041213202358773666180205727639869663676652821409367260859043380260705988621011700549432550727691876612142566915211158067930227942817271925874064475561976795910640598258994108073576345568282417063778327784885870967428456809603191105547044655171029505341013311755356024895582683868691319968181550382759401607742473502158317146671496270122842409800818954554114543650332282661113205362356701216307809729360352148896830144916049157651284942054430980913523670282802811718644550825479418417425950761444547550249608361866706707465155135900874380655738991363669839373057906724039917722020539533907851986415686338896850305530664954200109773866580623209482713915919080223736177307111041290563508841166055065506263996212038417569498189031344267565822528598156446882045960640567126419277797080936887658013975676357330827391708899142200797765530316649831007684541648949927518662403900898378184933837763373395462074622508048288395186763557202871659496663678679128490190655847180045962715248977140452219036921503189899349148425920768877805809258254999401522050996253157270741339347632702314895937778926377789674014621662214530809165357019111674445395259737315694336949478729115429019780247669249555007396482074652334479213081493322563237246209900820031965706406797016617753720230172856892777060374816755790459804883427687542175240790535318341740830779702909292826833402546648649733665681668835330611772237652965608806192357674724540464565422975017430921576101523829332886944179490225520539493108082737073407593879721569974287287656330284562547750162578815797358392380033005891203853379464523372188449710215055319963101849517181141600166521972114517076975736282039615143740421699313172711504317174892616999824198546330064515054553610690662173700413381861164848813953994882221256810225185111508312048705107941992468284283375850901000830670781494728912127261140567421193260380256764294232277565420997533973507625738396863236391729212496372368299949348999605077841555552468163611404274777085505964886180820418673960831138227276871673919655730861250863513992506091039962454167612808732092723036534594570437631748349342558218913342717766246843502167938020358167082771274567969043879944804526367105547243032768332692992883330244948601243368794781705084726585361905484425025532562618029038371147860302602312106086744569540901262029102580781779633706533264622881619156285099772556914221313325571609639476810743992034032100944519348980967160366733752652743526778136513320925882155435803338760632825010596916068854745939087184890218592852850005196438560505671600031734459489077037319329891497641999961298923579216154559009898757765008019589834392511148428092837000978916597867686771919685159333954139124069071769720833372053183053814294540089855964048200102200418836326154512203515607691972758541710988646243104601085488338883818235150073487216854589437454724188541974894205480070639598783023288378857141492884076876858366804903393717070903602380516848597563851020496396766147097117490307980836056362826342348081093420528848550530866491150134610164353122640007950160019555467069448957934870623252817459433189500179806233458593763338575733527815924259655054620157704534090367212328585777861992685162471807992647142683402455715230774661664519669874662199397146262291866440296770918996454777813071504929407463472658748441149562925823103999151947462504709529480047098110859404293472382302422457937561604637806544594655749200132482297773818551692311027409531149805381714108290313346407187340082148857052851444520958145629287624635322481820103770290763533292790710831751867470634947969976134390277075505978939142443194237547679242209365490962038393240900817926139354946732175080687612996923706639346439006843981089932700760681349857944966026205610460665228933182288169404460787359857337113247128538511380236268374029001037930710989938166071760649843450902877350401054510733725708178325569511888012631298765602760698636922123421274528399521080397916841296967692253337285042789481962362362861237914366313634380618179986830390795932258345321278047140736452936512606156928517587898077966350521355314722368612339353065278147426746988341271065194636893785776048302532791540218901673634390081556213803434282870000319687312301240376033394875321840205196351318996933953581034272130689903351786801201820146743781174798332246602336355591319374297183304273614840791501312797377251755751428197404866288222319593690853314576520021164058594409920110245075679050771840344205570091825987267594782935393512218954939384524190323920061381333023861627224196715503766040110459915364828560311502659991510226340131026889858853168087656542236950064495929528093823402563135551119316853307252288567833356815490380135699067580299508250267333479094628616346315120237907333085498258216216877505493386033057738572084528482497761708068776328912459535738030099548991273210737176887654115090156531870210589657730512061530890346447281526555957615736834468453669187786290038673581840474089805694266967489122056445855396810571980419905081536088945043661463592315411661371051422925037639360815000645901441944641631450884903493135623111457249072091653923486444177974146864891557352060712248633093643907571176723891130435494551524566607341404117868546097487494784578921478529331033352597728430583576937752712922432574693810146691487760667812617354877000752223771849516696847177140789801865465955999304753639322730440232890047784729464234310657228681505287842087130460171583650982278700931792931261902293388442663851131014941441628449347576480707841221878638564315202505556621923019168881240729442153558056407004773995570103268582129371686786446288202530535325644192142570023000553905715709254342879095040445462112933772049827825231251782897543872232006790554116680026266974816037984275737794519387723585801639584136539450512633661510846228406996938319812356436622235533347099301725987960933503787743814694517504145274531393950157473311689726571657556336246793427624861861539070528538299836489368929383418812656952660055972211805396077791041704901893336437658905994493462907407315209541551431570374280796407360906316854135640775382615961819060970468089762637273355405706033382843102833028937318382446856227516708179923663982076490933420071961325548184307686122357753311202434956920828618420651215419052542003785969190687555089415207655369318806925056809313654584162825040544033950101345863152026292108324688332353479438427899018383065844439058125280499369087349087240263464707900938934019550334470587055607045921749764638481487916236831150908136724428531474146870469539770979512133418635444500124761211275752429455654864150022497505803277703546607888755025394180919120123574208616263308990120798573027184221244360725548243553966979888097361687531731863612216207192739924375269072862274009596940161690821090331664290780572694834840979479291924007692207331141546830287871852980955791586936544243619291762780535692838219792955261268028678091354896157667709900141512281437020601867909732086948749801246300097911848724521674181140781377273221185218765467217361381188758767674775564848962770204097343996614316352212991006009002107088667905679077267707226295857153880769028939929759426256627657611235154841387974185997925221438242668608253260728026447025569329701533122221532181519937250517583983671636962874248941340416057706436142564795424433966677734610574297383642459507017650968457780971542373459841529924311877059004595228824404952625401320059646564964102632159301587150350039240079562661434821493907860219861184749301272354297273025807472715683577252914626728037534609423221973566000281945450455348728370609416198417293086576447938318159118488455199989141037785583676280120914629238870198489039971162931821135799011188460689989235316087858007680207552617186007281337323906468814286086713116088045679621307502608104978339227848501056544666197081748343990266115991616562960209749327440633766302406368762231332204093364120133554757198337874716313369127895108593018774820947758574677657236887094726762517853657150449451124334599930578304662921172961192090364241379661805356498405508710028940064512538071887760941387843117538280334416212346401538480497055714643317233195135499408746163854243029553078671327810433526143847915244056188618734341280156826953309274257294936214466688843804849180055788699950670623894785920613687748911009003181405214632732196030793411159837697552469693173944615979461618751675933999507994133521683234756983205496488710241998981548770719412258387335782737114878370417552380694207352539687088596114726680158358634720254453683033579438996482039811239339068051029878626210306210151722700924508033397571488957705109764805210951559248219904417782579574650122535153772724790411498505747978237458363269414159349384084487934153407795904251957208411957160365401487774340499671459796170238803936792042499993481004336898699578747206855076230063899514662088245184948507340456666962503870250736846568639306942506667137211076550276240838050266726186304272920746855503315576735635993147071546112871217499896022215934309832014349949106193579057291473120399016841074098894418344672900873732581563459325288729303746966372710784553882350556156669563807746637846303749928065370346638148187370988603503891173127452522840239275203086703909194191573774965340347625703968748265120687277924661357268292105173977485274847564921561425581960380118161950601628046990618128878083915252711706908116025818794140801669255390954544384395871045227775699494450183896319516779964494782608217006158791286906447383879078585967209535624876366020466214566980577809261094177876767416358859504182310062559142984857763468532108994896283697368513914689653313987999095257917561848146923010682363824681503295502044747386889609534149430084489041919595246352432143562101112907112151664704855882817956031793527345520351005361807858305513321196056876995002780156636515969276857671941891473546598493654198335786101332266320458531271130498624194106092460926414524164958877421758535727695475873156035632930840125180678848152456295867361928785382106069233780425950542732288653940398656879495093665263786404759290532564223754527980234410962159235728504410444642858793474983434359399980857440973735360366886923682847697784470853218919269598969050916415796073501843525305163984916861184912513285561915022915987556418362437893513189906665659994677790792994614048317710405756707883245426667002372951699166070468500068810971498793004300232751071391931306848933331488051331467195362296622565061613330523097206325273463402714424767047195542823833436092470151717254112121496124228982003831113512290131512287920798927487395840254456264026494314151383952146200153706127058607741520553620397801812291377301320532162181034177359622090164299206892595880309026832157096156007526086367378379028021817239040596667177026413503518525516664987087189751876449762710807391597763072635105694549522940967384399957249913319979286370847737480949336756728375442908686078195015191720562373305420227202048469136689369480897017776251053933479595744483690888045076300421566715463497123078637906420253004170231793676659803067729528026609429362438003462530677341721610614638182718336019827118202584514672207165773808991800008629021218830983296907074641211948579223749365153322815022557062077808236421382264413632478713811188082195512764598268796606147092635237736067903522129726272225806852104751141081510381292542433155247310766104371534902400267446642257483288905099892193374312817069354938237819617760639354571347822970252662488523175748391241740245272979652102919337738884898796047973914771113097505936591185903161204686185518112005169114873998304015546679771965881756512177050419864719317270408896167058823619632438371291138569887942719301878520242245519925717294660613442662857879832922104537599360533790677723989404565450453672328935000752555201835662508348260982493467753597093138973791537934704369919391626315937605625484780200014756806136164644157199687665921639029484775599800763994082417285176208715861285051751519766113182388637587557496962173324797342268713099515703578109866361901142464353969423157541780879944247972300060547747901267249228913119554300751634768035432138514556499450515735789902360688854361879706840880494559299386190811887191495538241132456661385199991557915854882081356094706076559329532382040223080645223175087167564187447590455406081900017519109861744754669974855283412021237870320412764050879118443640686762109066715878678921091286534261581978174883635560810302734707636022478471097180595723173224263173007275545484125205006745075026130998802292273138308622431682361099670318799632876614294359002972939337529137280598618943186674713122513697023630328780927197322140758865217519644664176402988471714764049389152949277029902107153989488884532977703629982435536848159458947965354504178387224864257235342765018570356971340267396146639292401484270178650076427734487523618355501866281071581909920220585391562526945275060061543566923625516776019435843915364772018252565971987454468809147792817416660532840212203342573515646163190341309623405544478784443310660641364169582296016998923458846083675087334635870539337812700933577641383897535307024728166019720384823151719977458957920152620433940947183289620769221872685475010358151536264113837011060589832215518471585905789936017067081246140588856803798917713558619754592972040620901545298508920655494486229012806880986791930479415898825286068140339506544612194063403996111237952919903477329442830381188695480783529253405382335553148626757679094937916321018367034775022959023419832668891078403618105627860290070929573235068990139861825536488924239447611503877426490902305147201976903225384120808271964278177484875236187921474893321288708675836566625109682899412640201092331218172437708579413483729869219950303278637492330109638944698999199420379296983049698072074212883357610018101471054604338536527983029717571416842338507892219642111962051066048545022340886519445541524333986305055412107022406843146004392663541392076036302061272369965497906235376322322272386912375537736480016922646649066652958861521237158249337961170687896254198634864590160542424856437219837771071775486315928819030839955983816978338647055883093802736531879346701050169830655248826764792799497018023878653385988157566213630450175484138098552734787109976393335817035574790509040239337294022607370165597373594106255890535020080308679326092581665241343001875873196021986766480748863451107595392193290635382944326954773790406794236084146305481552932203072918658052778623577233136988651082833894468106740758271796306288511025457398412993625081510994320339748198097076830155325967761857316155490489432978025406812662155775643182950590452213979753706827317038364300329991144788887411466851354013852687363078805229398155461642656738249324747530396370660376868200032447218935096308660307353576954459299309586184140911572750883105323490083415211140524565938044294942615132238396262802237066419039961913301808618501789629641416027463775863767045765198719867652359126281998575823256302103491343588441743735192232972739209343677077520614265458280204860791408325024707779823936936253173172409032569747645421519562152086290880645958162707434587783341656667731139038456545749280482637326435343896759859867979004975030647853809500413316253274339299728243409132534263715706252494106863800393927702649514686545991229707657817546445429844417414114674792311124416339032660961414934526851058402262697075401867192302780648221022140082935942458521679275309487501476294845404013109108074052054251994398773823547059053661414339531034542213040350747374891351342112048628500662592580308823612435349094878950428887892868260010265390913415578936628817081750784618381209793442936039176947535604463597400718161652660798260956695499226256605058495938320752583857539420124409144336930742140641533040471346081402534161008252006954799844000746931190360793004390645354512946824646640794488492855655358744201026331844295540313251465348181031041392028653311282905214035736857512244834744215604202263569152054236532614037622923572583062928726733557890347964572684603941593417040810005821553707230960977078470056528830587670367335478173070407186500591242244794907630559514304201972651443315461553500700576387057769777985125484505833095946897177254970107520951299379972123876181344721597866267186911190753887623212470794480281618402582964246495064138013979947197194760740865399796367696497621910536474743675939542522325641661288200333944448838410720921862946712543742562239292571987199769199251123570657200789718098607212595799417436662117060076252870453757232741962335953373905338495130272961911828477967111768070922218617355356497924434902686412975047994445520891169358809385021476389931407275557541669776813392809127583281977033373867413264628823522500130476710062232533988280131683083132519426800213928608336773482178410789036297011908621818575974072678251031058192142484785762621244417552958123660899265058768963727528203328678054668570220590875674998233967125008438332428107480503937943456483643599659196942417745321700295066432096999772537184305177507427394993673127724478795376476780898278245147302880810662421321238498006656170932989361765682154259726726835648297470350786049616626112014707231718989735594846909663108392524787587668587053701359368817415587663737134956097082156463057480320394242771531683596062165968796159294847410313802815681065856625615826392578968821663231530956933202823879346893886371870078054173955771719774845531811140408155914365571952268493346646587061137700045186773902473493950267086466761214045039916172824920337731450783489184257073536929752291372755413255863036996798857654175215634728735874591216357147014762743914644689518574758073417051023657848017939499247086035095171802024945691417735645591780149225923032670921319937136888158816083477844255926969819418642732846590525862047830362821957369471582081767950880502218867253464354598690697267810896899197135284545606162243205866132410147447722614515160246131388217387703358684974650883035364541178428030712990022871183628983395461408021521528225948016520905566637539897869912094433134708179995380626853198744650645939532715463059589355699015171064310292330333928787480717688510796997854230539461298924577433573745599602283364144891919429098512456195890450429935200758171058623211702692784485843389443957970855452175599905015637383824204349322091154693515344920846540246380782557523520884020809543924146599327185360882795224192987702178689271862091952400061720876986044827963554828953896623225614272263401314710800871595467402001493752376089629259606524597267673233978028168331292374754806724134133892809739719989437419914420155920386282571726280234558083939131878607998465867851074816849369956925074979055473139413321964112164339186712205831949219066817120384038375984556939001891406449637371951972306850367053856845429028607486503868785225675334798039097749660594057209987960129455724547490664887891386636566770813433062396216908937544439162055488665651529821936138670490819518810682053194018823006749551026084769970412041897615483228686096145486209082235444963521214036109027375869635714464409012101496609375547006137397090135771059102895862936476286596973226886810272266549115640883064672587284761163506142186811059500318078536455322296165391670983202735572136993139733171275552950517393665781164230208117885169376916605489786804202196580258901124681969599825624680983642266928905171756565318391641522247740458538224801078869486473654190651597090317368744389229135377164430476813104579897248718084726379506601319391791161404061212464109304055776173934443682562346524804075684175008229545932546061919258133334778269797746062329463206436321691874806678489199383901505705266590232594662397852480600456791781388962060483995018363989451298694388688496780704815307675706522713390943589701096660316839011985539233359543948169931410270233851139497272582297558870195651554542936832796018430173494653954690149562794781656773818132897914800495085501773180143521320012428629566504195395569157375951026066472174928484551287359859395580955041480946940287715418918519145959379832511299550833908117591264633926764502683459477341263262065012851893128065023338185296631388278063572688972164084516049479069574542866554993411049897874197403224422845794967074793589143271176626092731862104225382115033469718697040898307547423254243002583067319849528036149847383343784992408454395162068612208326831121862503936788167766062153093310264689340415608646481703554689947014582980526081011268814180007220110484509712229634562078271895422706238102305142481140632292727635487333830809353601700853730501132426665372465544182722784029366804461181423586434536551465591389947902046856368178087357452973940636249035661697231089124082696312151686146324769986082215879721333415259306560714588559120154858680201273128016299023500661496486134322158709405798395987578009593773678389246628440992218046362822753296436921470719905894540342276455663815644452351511037638074731865465578240431298776079859739003331815781291307220215419197571490177214729566957810702590060899372494245517602195408983823384627075581492419192070561984216983402633253465510364680010827538465560311732886898211404987717017573940869928320846719781199058593577389983340448218069819490840348932332477406824501410975886031466045336728342989258690561840256859288878624986842361821770335478485661179691691433622725936667888569196417263926853646123384606996138100557297763204348988292112996053869273235819851072567565193033565227197612558609338943037124050413907007156412405009230539626805111838586993748133518182804805207486131354404599920766245689588395453486987023629988601763106243119333865309433330244978565950238569800268958580230541183052254596079374717699087479129877892911278327910159368506337928743617438092276528005165825079725052735836572436577426439312559998983690212894389745639634981695351179115626568726486445430194207841038437848488902099770195377110112189850809925318368486293133358660374120180434390697697009099604887513997042488519112586147082201346224258417513806314783930556990876237337872525910743856398605278243132118193846930950639087790840426814420319572615112786473492997644082941112538448073239270491763922720292833714328126687124048172698807429831323796205222350455878468370339267321317513743534696762930743340852667188530701093473662053999299551294305478123191197031830983624542334797824554560744173028904841896226211317888877012919530553735306325169346955674888102097533377045728505996979774201570546475033793891303108684934051520811283406873397480743535483704389267398476907167502294933793227259370389314638565112572251392049390749047262541742552698930934926925266792475562018665157551681121823524738677487632579953543811300477064791839796620936607482026393623186954375893269806866880768829242193710774813113011839823560637020267662107831077186378343894452454587748914763428745135543619983833923518003920061431851713995216562920373228810877750562703962130175211368429671876541590116456309684415958834786888273438473445866770650266078967306559394641198871127292673348216753708619525485425769078745126991549801912808387783762272177575556284558944087780415242948862304681337428591645955906695937301526128491569101697000103534213228986163763386130488673550104890067961970186468536983734533439244675145083259070696750708350054388357404669677119850035901517225790515422408020643885739023901785559341503130786007309137849710161196836622735620283002679703507647810999804600611285610407993539642704635490304226802126856050957594225781099777115095002572118353248432682056404904379248400526507510939487640862855833748014094916853351225522753339297271996348690746734771356380957303861252880602148684809052341664962279828510150063192474354614826883218552688673565765279788666719940615481641530836373858792276750102730771116651143365535044908967292124258172460348335934381101731359347796434792262475122027817062168739655833914927126502188639207237595747266374071744632088561934701265059407139115496801584215652853604747608976291453981205895765698603148690406310439922730472009133187337397997065521558841791681575536117214100474336621168525972329230657397070546109471414420941054103312217298543016813802702237876699875300183386524140306954634853042761483731197763817394706100394641757211814675898044932412004879169639854931386399490769385032918560214560681412002480896061117051667055231368816368873145964915849701106010936268611833569049617982576500467279667245023302250904276559928050203715421380870056968589847377098357384839899073282866905523601148388078404284049965991461284369393303047205275306792247670785490739422735853451507900850248129608603287659249693475684154791207615797992713559066219419877219898081482833052580709081273439842841156489367282861586353212624312531531589703497567590988865630922331642516325984821786905917354682081952247043698306234688588439221438584480473163745278504945175912106468798514389914514602735682809942367141182373570916082169431937549440538184546617304550711690250726545002503527744234215883226776172138499877631227739501209536958017389664339346830625049997571335543994718262105463944906961256843894021435894980751659638057800220790834641372746011852928380026502479668065960581274620440347720236850651845956409181755918150755072919108281387993401698580934583179450361359575924156122179470162504340962634994002375385278757194737364022590831642391511435398362258366444710665955415957585827784434504801621531584824170795900731141360718475901514880654023813996680003952463896722150290214170242284210440023957736196873589874617763899130067561201712875681545758573793745818138682507428545524164869019065235237004233588275522898767880841029948802589519450168291370163767618413377066106059765582558641622495877907467576625792651759039338473860052915500884244729247870088697210860064874496694381324480694621652690516766187019976199887485987308010695384057076753443701383413732973518314291346955045816199895421519621303841370704882848011754001971523431861707510059903658944200166590359118834894674986143202862130471897152479015119283657029641300298807869663680180006201293445190183918482549817643097396571700358318594151355958915165170959608325512707843055117477679760134787430536181230387526284401760709602631808826929574868849523751729476391781617027158506067764237957540472179161372306229779706911797478587551943080934175963245495636751410634380818060823937317389986642512083428359158348630151906376596088461762960687545953948380052198272736133639424530790540138694651182376656856450214309005772902221500051425049954138937013549148125074225050413840963538153863225117095806660900687966478257916527152782903996196281955033498818001816405284828060656722400479146776639264761065126402265667353311492998647765669365994805600797607159524168756854323162579858102521351243955005253740022852701373852603423255557063976424141947422323782919331301585049453752715833928348619407322484925170223499186462197031441614847737643906619952217508122314823282535555854671748073985851205836974635736712998968177725022136417847663860652612222183847256289289533305183175656045530633354456671848495330003591944197208870785807531997078520384516235499597512635697340961689802992382192288366774256454631917187748840163447555574505971087398179060908366281284364176018651472672982793515205186020969145928176816747912886159156747852021603254745586615956237408171853169455119106445733513334535913649396886578408132185425213131001872185368054086574710429882753605548966688007779078460477304451576330039696643943988513146974070148236277578935090288180472921362344986357950493139623425858699726361062753798597790151661563664535171687513381165597429695574900799705226166745271770608317526989755413027870789908629041094037649444496562482180843787490553483707081337815720108216371445850386643755949380865333661799163199913413166230070459913627291489583469273107312267719495715149864450282979707256708717610627576035298681399442873272130881601346896535987096390164631924831113977695578317582470750191464531360445350900147276342193787061093419799932745292301131711764743076425288808582278408762475488660429810276557174227901326761462641340658482402532801519677187708704109755819312073770368588235868554518349516294077936930859957824820268384737117161197161980577582886701220568106258275084674532919312962092834953214625934358804127247559769188077516182419393116827056341158806766574471764722285790036888183703874979432692028800688136857679983049893793429604364962322533271693454129718748268152422374312845120107521030470192373084458437090317478191316363650985505924234194491848167615847901334581776992075473896700108813228932501188452229435147187373758735322004766450841282087114626090874103920396200989480997822422040658487307056597219041212809428054071270810811648937138705118731441050484424015688978462127524689990781097913706852502460755942545657050841236329744121146100648380596954569300624909531363291270520068278760019233639607088439611564783798546041928139647876944950361414656181503662985382326434208917624524923355070703707331247082006522334049448516513229852928564591897453774381598861394222897794267651613192183338450151287608279471220583894130818440604190469403377745344697979549606517088808132803708421343040768695925643224139854082997215405225589938329828539668474973359665673690363404547542309708580589186271964302147823961946370005763605532740006572276872021560908235673184436305043159092088144350314082792361607468965987524928901056702829927823081867541913365957473384111490405725136999518741202702146817011614938951582856774383649156492392347634784060529393420830900013371040957467023730779657082256605832173221042651630612506898395816921362673942164727294957516861274684102856684018211413602489876253813282133890039907867904558891614781873673123435779100185962550860463209043925790726852912888964890968926526711196502113357810600890314032916688122862967270402280444671586943923045703031738375537496587155622820531554586833190817107693897783439621833626322534747076098312687460061184390931420617958367661419058326064208311263653832843665154300426278660404604524391413713035630277538491173153193351480523472702318624280148450522981256127607991916683378420657218144562605625329807670309536978809100153066819155520651970794688447165106791897415832581540118208453626735312385413012865521494020543290658492796700109542339191275165076655458582394757824634241921293972733950142488066049318602157234985988383683237585064995963853934983890957394665353189059823196421425486878668421133483586629822419659885615716655504152258398568954062024404263176795715295014820687666472587290663523054103067410184087759728825474710814659167889097931262199861562231299742391583691877871143953342386514126270807042780270588995452939661436135505004291193079938626431815175791913028182422660149668470393410892339468568463258042967241170486839869863639426957315882003254436222827021477470664334897737584728857256377906236627512849763939079278419263008918917168240681570603001672129342912523481215918397187033002224882911117125956233954224564704130773274237465677849366283814232787535262036934458282041616388487604577552495017189051629106014558009147476544723816906694982655292935573714828944698847820583192671498523406211572646469829548364539887010550682729887293576918754511735355499729017578502245838182157835872511990413942543921350954464130461563934610744159746554400072736461657035575795905608181282614103994053815362035107494523551562337583871717066676070143211023650348185641477779467531570358994502937228494594041450416746102135520104126034643663162413410222648688774345406964335777679533807332700893379238187824800898576965882109859955423641252251124656223462461219663094479227942935045300139352990146113707909548046126086224473715309606593617132200468410008251038505863756920483029946506499795914520067004970406471513095577020332710137335372325112254047272532817569382942250191714353262185901028100280654091274959184162528452678041558463347347355747899488259364258005496025046806150288601409179245838149612557686067217588635594482412794416013038549270445088357186925302933302557670516499116201386276528802000433226112428955294468375044547037836395809812281714419078394502148130184440579192024751579340461852744598980037425337249744551017439553648528747727166666667236547559212068244835518614893734015947244041241759669335718764679967787654250679354965999717083534163696926336452303196255612856747940446295014019058064053078580705527315345986890722886602323459777493174168722890907020287494645636739244485568321955864080309799107424857164307086029817084290404219842454928415871440893041579054360098615242717553484324904649912576217725986267523816388338672847542766913387031117642296657160790430503228884915411598247882604935274515650316366321342095218752360665479176024230722014331787352750927954512130618155722878747908804788983899109642515529424390278855938392133411197937155985729414771020095950882387525475481540469308482742905179376821113557187690317213314743277188955217733962656752620011025228622797696793643612463820350846998408619011233347256739151514023012911408349117185031917978346678420784152380041292861421653772091568165732663930633917889418141191025455186016395559073326115675022454744553361777572986806030567680074367445775019873333394650540410675771318043899761421159144737751467619108150847928206567631981176169981901206813966015852985978939432331847521875900694104711878172999299278640836007011510340664051322051444521646931383109393158923358493845299539700884464324420218881756132505408307904243003283034073642687726633070918737376259472314295214745427865447119394963831120537863937319788517328150645387041532544263879780962102120948240107194825024124971734217818412059414432701204513412854763180547039803895951686497506089960753301169781306224509602243142867847087756567564409259979598754350583879521141507568266624492555893480929786147571368201561235605177972428692488958534963628227882827465180607145715328453150759007485113744169466105664195503236539243218974829628479147890218976651971226993303224659599258397829606867532206313701363218375211888881809732574211674813837019046464939238199526563095500398978065315259376710467856757019489221781191801591106407856954313335705335088999342312850621327519270010440559232481312284265088130597626386803997933314665426794959151349700841442680579044506262727293296634035775191366718323528880564854471159201545272335344782684281419312455320864587533530942475513764064544553897186045225765212233358680921684320057579089257298629203287787068976917187622122094945727779137720419027729137397049982573068231453151073482878545014810145964704408854766612542492604855278380290438452702121684715589955754743885676730805399024223605015481619911227396683162898944673259213997515890906930593491715921216069762925261452748233009708814478289947458328042178977216516604176190143906275894832334486598463169021643386572664746366585703241934095331286096068204226502444342105426466666005356717279535519710476402071691792048798030439891594549539503326955926274218913774197855870918900626415382867520765621250767716939092434488756974187676922071270112840509815562442246743223478161247431062487183977240028623136942901943322557828536856173718416518333064792290062008624503623746757462824662273044678663660969995919036474781854977407238615966022223334762256822229847032782115695604466147789348603284359105580675387832166122582581719398316674647813017473794309261121942781459293478601258376896917630821333565175386023955930800809501670790707865692512804021467191160958085466032632667674027479540319468901758017697640943242275768482449482387136339281546282532481029334724644712944578291675707680142647734603938878473058613585741734129478579271525968230425993943937927552595950716377460815519152416407157479741819861548752692831469994336374566614562838617746527147636749445509347422483764043563040027741474113214541331096834666946360680734757359364257249797854168417256520137741023359957612592236326224331193284014289747555730430208767864420357764510310794151443355083457668586181308035685004869935352963717129508563583416193334492425172070835935436138637243126358194718120965940028197428856359875165337406826366934096080897153436252902945631121606953192322435917947524784682608090463322651551760551827696253497733212830244256963239365334893322658122376286270428967812603247013058376859302662351745537833015047614267432593840659702993988398670012265692421518337350964791123641283445388737236517607762832120938757279828403115682724420718987607267611316995760348981246732996269093186120500799616431889630196359866079681748212784433484827671813094330407776743201879996647532339738862793985101555598107649303436132360656696825753478972649370949177616248320846949028894061417245565399994102711120009583404004052602821596592829295105364832288013079557179368386599177177897285528346079562050526684456073173874569988028229453741893466898530202813610664908619797534064687553330344714514273794829201174062736323944646396806367257195179033797742869188965571183030157639210129365133550818065202264648037556066033703091144309754196314601966324640905783638486117542143519908637047914409727205288212613697684022607496758427820626761895245698244552561411103374183177645337826352726935644940768569578027920825388291524444421726637960536885803423345139775613058312480227898875194755848392021590862397526120288488683221970891620088570100672890459757395990313134140441154147656768414264833705162604466980613251328773643284223185374014415015090098978475119657776266262763568395005878874301502854934264436457160237568677606561936809937567377859960449461594153641501586535478078672290668642143311675119794525958372090261813775658805788942158146562100210254668313558720178294844225623939332027694344435362050056079239842194542484973801364995672891627275824301307533089322064467532614736671120921780862775329599085795193538085301510661070677898143542840808442850014569048436233045957258223278850661151565563158414442428480793986496011118273772510903112720419802783527688195238792796307248175237911322159055181696444641212540826526392181043471194882713505528021411734654113270559291726715945881885293595182007668377641926220469731261829481245941263234968939493076489408438446061518050085348977825686920142797111311637183184312084749297169171647724700436717212536104779845426021304466419348783540197330747791979320341643513204534827509466008105560667175094569533959545944140370219711038573236319556326103628335739552169245548259502293848788877748552703454030618967874917925856858142148840043537203729151852418247873828414460621251109363662707093243330318266428784695950034775729931139675220956497144377231043446324329596252229725842705058270216581073715719067270373479074005638294453074171915083585212392902513161625750458435361996228502582894907875269725826034664846738994463504856691259118637675328561048757417817712102928470864285315208126994194057089460426747265777615023313294995270567190385892520664791379249411392599009773109312986261654445629838865740976881383413146420001193551915604830397638268477432160485204486774367678062949330694887276418777685410748441298103204063326561514225692892710979370437967095435932491458268134064505814707037698635219580555734668965125711301507589080436931510496077570810090844185498947841080685387606112854386392152110817487790236554892866194118389112563455757907160678749424246451059429887241166379672473742535377018295079070988585152308020216464587626991801955022367904180888761796496170576163935807261037861590087659636528570625077603113132428289663685809037433396933357727589195966221639658678369724458407688952091362844821157350274961022905915788792855386907523112195747069444998203047693743193290249806848729700106977987873153339792466357590045211183176349104741228711582051317749276920331058279816776925353862497480278066980456767513709455980633622208234904266423354584942100567466960489201013559396421911921490145438559632154053945638777655721785776733970358533881491709171044468907735399014224969908649637086566016452167983378215593123708719685370524552693276989790264136820656649098897313172580320598386123998870984784444794442468211046002011614096658127886235838956746467262899626187945392430792517405111146558931471250215286690434591229390889643209563071543952634083547609295812242861352408027975227882529927155906195743343705491210580937590029274795308319038292240339827394699817490387542613903358139505114274598737922632701567907428499979169204783308219728191779896449592330626815083239265410242204056511860697483526217157082213744273711524377613803913363847823500522146302128341407905231589927528700533624480105196525549316955413040623471040762774766205672175382986474688178352369356020109050615931012859459013076532480638884007181842172075182087431530496419318879428707295011393677838689811574121143989230202580865882002480229353287620955447788793532255327750382690200637429161683236493621762623612267225038424885432670817195328358542537886610390750314867954608115313233426769972141693892542718008998596924299669933979923327535781023308133183476353584151220381412464562144979738931149093019546868298167770400614586650895037739244845112051243010229615274608262157412491435761023363621337091839435076294735010697281243738310657032915500341179500373904216941805952155318383113891702845612475792044116132775038619856516671596594161358502235454636113537955819801299238729081231536273649332265983186434980300289078291710963788872005841826917394103393932590932941913614436080907778475766950724727462988758273586663373368763477704685571442910552686312094771092440011944830462268334596071060336566643557751387550907611987332094144749585115486544872702049609443000256618475620577009947405394810466369765018483263312571060056440643298692790102276100053709710292992202995217618785206104161910114643184676088490030518853006027698507981193118865532363872939032951793163183228843191934703840682492854851197331539546768683951853427314906992435875909248555883280718170771031503916210037438119602468084988752694258182416423126140260075881474007147997079173432451943006558611998753429319727379514919783695899642822084506080101578101412826048177803611267590008525124037482318695073920146831114912654833755127977301474439378157726490411458768848984744407659154134687594102287686106846937527234152216913999877018480727942114567778756919882092702289919315058741218004925302259941765892662785361561361053756615444862983989296772507449930213627979845152274142445302765320056950673461863300012618809314263990241944452003433693710496201581808278050203175076220209929501522693323876156117491122783505097819157037579174164132557108415229954705537301510606153686050775608771171428254925240368831341473383631791018186000342169085356189724743464017458597963341750085472067954183849859217171871351825896857229422766752305591460351560333614414950882003642853701117669773108758211942418624715563478332138645016458363909660232955197601376872773945021815239177170458780418822037828072881767111139385998811929198684200523878179300744980157592271172729382656145184643560019165009084947781971210595014054516376332250664144903582173883529207775352638944982136122451409658209310493494377763543734827482712929976701329652134939741155801149834964589860712852232906420124695860763826345803903108026701126912236817817134737317260817563953733790859025783231711821476115978027440331591664800587894330754508604739469953587894325971789909694855574529627227571623553687273444177438019012883332364628750829343814693352830112431346433487279981879624636720285072790833629609371130831975351622037774185059496528896878614654222151493270212481621990094394865899533082127070579561596129131320909770427444624801822477227122870888394420640780639838183842354011596015562011405647811041751813838096312958121675971856112338763530264110917047190797374777567342421374842724580867499322861582872650749258150973242372272599406097411946941791191800987727417241280427496872194959471474174727345041272526320264975011436915727087889574723182917703301407285880838266221406530617752281198017924082794762556451225553383520046847826191555217901832993363861805848089639862195791887369144519830518700720335865427023948209151607329898556891183269248603718306405560788532909705432816139329092512364004482042329222003253421552679081613743583910136365601572303352251510399821012948420400411851451760605986583762052707797271157827934262700104604535938914143777909940121954360257261607573001203976576180017476334415172860408375339570968537364111248134828891338885913405075387679053262903281844258808726669927014872999552219628902906793778796203167615665590923981281238429328190135119897093464135870094857526138181353625581233674064312865064843413462592993109748902842909902428996693302840953610077322395444757242222074429981476632180290226256546751477003384778288123531497896026892395765003844497082804699594109112883597960660905055577017920673465111920857404205165760899120429206674856741174388009410832963198435680613586600924100819490873024118499564941107931265717751063857178855259851099842890238397333346812860188118353339603895702132915886874612921330135722663041154948095171156676685309726446538507957026857393509655122869438676358373004120514915780615393800747964380025648288569017129773563949669186668824151088982068784924633014955830078715514818924189335003143644867911863084467813341599115647190778306985818076104909340037747782067169207051110834907032779558084367348277437948229676027182696401020981668316825936866362164040777204655202179295117825030293507602471369833268463216371152623159294024472307129840206145769853998383192268612031423872624888265123497079034698934490052538050169667530497559382132449849329114214749622231401949997171768610468301280255255090567222738648079463713961529617244874762394144639443820034330875934619156538315561369422480183783952950090808654242489816758008454141850584303731216004116987157532203923263699383324090615168199933263912337502922260554223796147523691690689529466009564469312543012259718727904898582713943764569753596009696407106452976221189985993352515524810103031830969309836085070493849548846338667829573333756007235529502348158416807616373627129705601796522614334170623836745379036996770452358901565737789769941785633096346520598922218690065144184496812729178115456926444610540885591013276644774213223711230809411492397097101404913862439288563685039199444996849383629064499022320579731073454808507854121715937601715874891380188291715091220244545375807162368097362603630029265934494698997365716074923300203613776644052090488881668834892335070467697908643996374131213572931725016457402055785534662300890452991853056494332540192738702259578575423133327686118577437021329891503834245869524658528243189791470485673296751500156971730959279420876019565444976302729861088863640192256161534900602563499949717044477097374418624311746163329008212458855689390463932802084126916075007446494022912099206919301441259250473316469812262018437276873314953814625184511142617206087468929615566129417139756568857805507707204670792624907524561853611532622891703483546381561655001408044708323703643182533985250855707704316591912233528805975944215187955289008892078935341762721741590762923957997929159476087548849287814427325186926172409264694700868122886926355553024536924307409611807512905685895300720482188806252535640328964763144853378367191903172871644418721805192771055502713519567673407105058024287192815660932381414355473742196079518832118387045527750144584621824540191140786722713088095121340464476943692231788796929647579608113816679900432715782568879339883409850956599325315041112179203317842827763434901653453876309974572921515600313869961871132533679041106962300560613255993674704301308605291985861739771072835291371116408457461758884725034899047374918072364124145336781458747255311973399990612228903228123249788414989606479828324668491698903321392203762736154724951128163264539399613890423108351471266064725413877952910089903420822655738615042887228383263949441626688232457287980644439768281406641629311779231112346589926708867003952477140579404442166950068721859438875132497117332249122163272922974020521265798198002380235915176711883233210282495971045442381268428575064795405078042125977985015201931264006111674012189536875098773658652688896203766020753115289297053061714462464183987003320991357181688014943530179411355759397317938334785940273265529526712465017013372961763966846054409274605163947358037664199226711001809955295408915034560598520001404810193097323138196305175485972240638032042197303194282251738974100248297071956526704641940153544581443814573513543798371629904629581375298642861720894999392230848984275786322953401416359096184501644409330797182523479745124439025613882460099923509423059557096853958370965673436267822893961849551923711905089369984305650329779868654066011590037106860916614378579338563998323851228791577355294271223749801692960409332754614909286795287173739529405023266624406013732949688343329117594701656894597271739040648018198903857194260326379481706834537289471076726108236291354941337982761750090631907242995087197860176128764410210680426072055247291049243094459791069461112751339607511321155786508632108911613926506393917234473623211261265694556285744223902499445737457181961554863588678158987276444484541143142784843458419731766258266574518284456126399855795786370268730299255146935434900988980844737303681405002076592274402610908109574174101927404131353525922409576042163092067165125960257975752532841461234217166144684574951033211539074948704308385029855983366998965953391076827528077401342493660860728581659102449906759888821730166277946936070972136782301424105393820031468516590766304352482540942240563304439109487256317103609096804678452342007977736112370287150912161735197680705380940012389282121776993261153100674089928615879684469293209561999942666124048347847965789071183003459047611016019143362876690142845502943697746581059566326318313714052642310424385746802933919807601896686269299384912981801610727100774233890431718685867068670639403722913253564319867149304742947986179706660764018753136359930502192872177070647460530076522184485015113655220240703935868575938886422483623921057545079841921483638576474741650580212905140671904701604301531426736675912489019496589374998280422916245378600593401226536220537964839817797632668039157751782286563873142786576790432555541924498951906220978475075494223090168752035260243320003009288476466603459821922634670748058470993605637347050319635033753946624235627577187468689913888178570781950993998571611449068227205718709970069527134695354790439342564522226902342721142491090773532336595265571775342745692859096860380287413214815811133460298408006673672306179549758496415859868486030707993065258872894509790547263131216625730526439904323622490090554101590026582318564840900830243421386112825085942901706845366541297215046952815733662679152568473495682971917736023014068617475522483602622871597251404036181889659347150083536756834929560511292735167621423224544211042669787891377634163130144673629917990754801641944568038763835775557698773951025267576053490409764106592151612323708117012164650894692714788881864657504873067974748164688251544503737752154370976732726991136127449040215412925931902486380694312535165737835927185257594610481657029159800906631926637179497361423151260766764873677473068260775517367531525723778300021329097875241546292818105471233857007705232696226103546956270400589470581562321659620531627614718975374263874366839780748767180981695668001476471404195164076678304436622866622519306978578150893464141081794490340496286782577759038588210245606265518598851645690328382784571223114541567139266954498401109653873322602989380198685286974568700281593011765303837420797716324746389377923334653447091282636109009028589603215430408546535988576149046139301964843283748870522086348050574538980546653056010020802860477030705171611275257660899809461797974830901325693721459120274898248438790625337676718501406192439360761039102737348686350720338919961950762123823614405158535172313855108737994411234406219664196452397077145345195890030665645456397955592407189982713149305329068665211839274974398911061156401955571235508622942884433267221458582493889995265261060961551054756749695337685911691070555664070160642282249184072542759177296920760239794214417080617503800397844871675843439530058267779775182143712882822798910376493282004865880294397132779785603353325661061546808453024457971763163090524226910981764027021721706622828450633033656914873401582442404821655380199049776327550997006723359323111844865707684206383978843923836502137495550913361731287029854955800463634551254023323368824845248077259138903015710855839556279080020077186360602969026159766914693502639916721104063633567345539052061257769792384760789521218930816340631587205851970302470870347055258659699180092754534048322772292628806052726437367513131485142168751198879035349198889943625856385572136509267840111938546128125394169706418958062834325437270713154987572393546351668145154977952058246515483169255292348526711986907920414126058020955468017015383477387074581980656921592983702859426558134506053417850903148568960574342416011150830127752203474664117211293886793788585453957339149310914828264272191141331259783899357611870321758705318152523569339144504035389131834429641147712304368892599299858539716839977857682566081449697547110317990644648015399163085116165332537104876674645371118686105393577788950019201885525299305403356680548634018072469272387174959883961342108362428949493212760318361680853575621177456342537374335746026670597343771327040461124166912750332593062411643603923806960229510060942682547288889916631439549969000049392596271755583302671623151312879754105277016743890608401085110645398985870725159806008103758231827099240428396344227056106377298059884864162460650716439754097267836946842674555811464697464448824335166476015592396271813080473941669040309406976124753195288954199493369514695968851656610332646034475924640793673314304184798179175656984418078174087250623121846347904057008020424935695099230790597142930198574233455126407978132439127339114313476317264269012435267243553623412108538844361115206114810206334108993179133420524515491923314611171647616781917617446969623781721839429656125263541257918342338377931311583152152336750266794934696877108310345874734864177025704042174719818986194314900196030480127107241523461474108849943710784231394821472230780515269664246717738462927976145109255881601942426034798267684235679644360467043885821263622513241258106267109160283089989932064114069820107785809499849522833461727187909595640658826932240514013696492496019672977642054031606661290044761728767261979696618410847942831856748460234743418914471150529564513881601045622884558757444789823130514977251514472668498311090697437846819963846429476744572111319938889878709314245919669146225073217226103619355810714420404111182628614323209751813225505496498511233436340598467167558509731463675874918101608651259342388681355633692575178655305094233268663087054543600115757983870297846267921934610154221053591689222293113779737990118904860653668162110236986704130516080624933900002013393445060578181015403020129172114876100361546315380923940191468387817661134771414292165502403911689034543594649009468385544513832652200990770268379599057503492423349458017475466670738106978120109132883418191411857706551546077343912829605609868801600074266936176287939135403844051051663871444766091789225167823210574170046540686606343363922518529815362279818858529827411183674446618788342622752747609247308298469701076007680574074186514940413306189841746808780796094680359868429368111587794942050732552148564851031150824166904807406242977605528682301556514674294301812953326428608488946748483693976244513895025219304630705144032075182560547312535228343987631157607840538468263284621533543868425739052976188144285468853972166581815004175269231635494800185341715168413825689341015167393145613628769204741251305779046719347969823191456264536842849016538472890109905578880266314306196058146278074282318147626067282493117539889467658447965305435313236076247384945316611740098678400242283681778748537645029588636518315803824467406197635684144551322327057577611222478033274256859644671349671336046045471105065982762314367289992493607075021797961316860863100275337329959969860503512529837338654610317425118979241225508858718187694528372694618115947745931296961395571847990707042092502166447454574100619145284644533394118023560702750193942771710137639421110380183039144460678050224043966414225934800067799817772572439078286390917958495376452802495533634808858965589091716186567629509941973744315238187141069830413500981794832802314322188977039358643976678090708057502235764920475640101204878674835935998355339692686114171525530935241213468136180746303587727496800493743753124945751612305021322283741663372770372605026427334592461173816911052666548435623636651566480309354731594139362891824964825941962251453515812274567302817071922003561467294627471321427076610018926262588630529514898894183782087960998963116713858555245668415750650825975127921363720964320607573108185450906482292796734578253062670191548147761454174440499619414023899317007299229592331922016544198604699346138596562098651825936106653071846322438822010679051816349944803898341027846726741926654475471037477931900090605638102359685369242721095663578507362749071994517045937835268208962960450347604116391854708161315844358339075307854168978001889102829109286076245694736650906300680911988555799835160251847801935087005980305719108394158921398462600034876457875626196820061066284546287859739990843244943113744645353384990511798083295259759349839916712079313742514884453715440224039506470211696874210645018259583970737760256154911077060452778617615094864277294290090628473922396849286918278877436724789227707228237082408166703385947534212275081660050037054214376956032165221106323998503780632584810369527203666214491780750216405697862879762550166423484530038701504600399554062717356324380816676872809813538073498672981366517870172882684401078223980355603057430251771934194938149981836878256313621608066099385665151457298339051306917634750353478243353771679122964449711989790376346631002626206584792439591352314478794949738714147207976851783120315571853642996804047439953957954473369496706556037205682666156563982316239266303282016141703397862235112375601617942956007659396344572953275653363880492845735966566916673842983105384137348970192142039888636137757713863685687559350957754370858461882126172024119718129858613365640232690796885466588665029024810452845111302839356756619267756971669785209321145582236314558050671848539721788027414244967010657607309063917206092625620749798622189964172906394297375444767883343286436333373740162627538649310277552301936271270134508767179330643156177441499534811859051381849646249700017498557930995013279585545480666722473049208982503320057177805664842664412209846881152158061255489970495835724974321748093500087002661958785123459331645720139297997783690002074264301506140438827268644809610237524209047130502903518718596864790298104560994286731589149165491203625040329748708170187917968302389207427287342547211458840190053024365918012969224173233805994165118926812528113454947821010601718987868538302346126594730566746998174081809543517490892804648758038893739415534629596592229024542443757374134394101015346546141240371470959840304603559580241205412011629488273427600109184964190512417685637421151791656681283904356992575827339149119780872477077443308248615686874764734134651780283204200094698265449708518466525333191263754079539863171578266349214007933254638092839430181110403805272532831582115237852659578501480014820778903853024548899173554623889706422400699967207758569687618659080179008713336053649588611768130581345357419101425811190010806961186618930219257568888022250719824591600975977123556454599886207501805153307630811040582711565536052556058901537263501865672309675722796298189976482156726654029737186866240674768402261221315480409059290918491600513803206091024121914476832588009822933610245385996232546027533187186844390369251009950689057723304674715036203286316954060247563520357902342560359691396067079245680678789189701996066890029410125753868052773085602456283107125985976068837145529338066771631256802176295948559352166319060287724975757048454097008875035708578617294447243537239763014386155768217785712401256723101830588755020830757004382779802431158529991893512009136594040179556224263647444355662089573241192625620303988482832315275394695780271613484199459111582964633165911744131852124181128589852422438895575489673191956034285049475699327376224366258738994279089293240042145676143017993770448424797871669666456443647070290600581659259462323077353710093065864743902455747473228836470997747125255371111831464256543633535317770180552420670026348375946978174376785582511961220201406945770424195521052767521498479516471048448772985262473610402988948202662433385680173350660907313293771696393157775652779845707960206649059137474594954254354305753659568996379473278525448230211911015561481888317127935761324573647784286673632987920588847224398270996982959316408722754874974817004595538723489896987086585394183648153885855605389920857842682473991960499559316438718697643459439447909922186446068608867371194891165913448177725609522644246266228251969934359270018970532744141365069737079004876479198771723244089994824672568559652071913332060192868394987871883199110578136027955649103911244816692840752027599327093999761907523040819638410837838424471753112718132455915121232270252796994170882687861868620802632445224428067586585832341355209453735900711355997403027207884333788603479786201251959367850445002899524395278727104062706276627705600525626205349659907034736554159325931285355983412323694127073796942636958581959780372309480557030387710955138151707006489641080026209498877397665472128911846759957232964940191091024201172065823647602081669909959820465729394081780855776918221260590065759403044486923304258011568281102725687843557463783788146044327226801190480210312312789680241300845750681624307743352195404959646772943275067734546153816156691690996742988911051539161922462003311431017937734262273027855402396073105390288549227304935208071708681199692440801363545654437251161247811681070703174577266392113051835258489300941668803669685577523639498357920015367528445632515054045884071028985666979047098698347821757377468521703687223721180975967351844980985982061899811784347092918259241967530329806438848809498207048506751197674808665160366994595263902993550649598440583951711762773761301409291422409762972248148151530520333858313093971969615750861896018327278526494737888135689519270654648607722318543944660485569166711226114850139832886685697773469412476066233966920741919275923062819510721637716416618903954947623965876696573202819099981365840073108222662080944121848409706571100215925021331379522308447014373682448419582332892852222823625677104794329874510337274547874717677403240657424642413077468282923928782673095488398526674357412667513009958423072996153616565360115818875017430062473412719820256435129621214868850157438228182659640615390016136539652425208397551427171466756241474132677944367876441708035325438755411544710924216552845026013242634312727016031449897116278917517963486603826884460948972374698693198219733557037093551097087385983295585127722027823600968527297669566295601830073518235289347884981792896908212774653077729972264042316071278647632371317698158501997195649878564296736887026467032896353924156587116989280519370859484271703699769679238727255036543554484810665418175605768316684347183087432760401191322349129642099453286987051192794463826841153653467743010541835400275920461804228340645424133991309724973018036181060974083480641549533660153883317019565878626137733012316540779276844805827050940886455549009039577900276320795700133607167658259606995553869037769408808086188393982189172895578890535403078020076198130941429807362313637469427166965940888288516318585363941172814134181243113902348615271255878814095083434716297986942808646134254850171507330438902504366995853910115845569543933374054479775219383055303291283434585499856713536255991918791761287903656991013697350810163861937766357865987823747021490398845861484805946938951591941793670426972804657829779178072354834930769202207427479092181134455886060054700144432535749620880933243684366693077685343392742110208631199884266737499654260159916523219013949692973424267885977690624339645740615020430120301701345649259034320295970826353886728886939729487033804922074831961802537884343323190055062303862451790212604413864260197003558791146704711255828049515055018220475763919759317306091918826317864645492189521610199008397694724635107271689578452727102251494285895072701218572392224233333176995100641285230082250639705119618289105783402692340609710187846343749303827445497786185686988324730056846326449697411994914533014338557762028126302840588672486383548163216674239410796715569598281560175160656511205113046627230204305065026371653145656447511844851144611885442412305929381948363292752637588022630794798325924588115612498382463604344016579854284998542740370007228858000434522053432053179114520411221755918941499424784411420718399431499697044581896475765474109881614359711908783523992069809221069050329262321306599493358325035570773500946904758380006783983435012549370751088139428840067715983584013969583286989706313416602177711907983231269480485294873311342956021513008186646877275253478288403600513380456828332592070372222919773374148284995707774035178435047908995296638950222077480498730128571188315801053332812356277225808623333646696943772318663415788813650455669719488269285921125425484704836886287462764292079627888246064729273884185607347774669813254595417812157705077048774985590310497001841691244008338388073039026265267053911227761923282348214160431856505162044183927415905866249372231226800347452423865648927672790669117217355658369306843617935641439777852078581752842771264577451457602772361693450299537668924274684500675141549393977535218862462506559677995295398676945493460573968863826340506799348381431188986878256875569860028205176351007099175655728088544037367226235861188772485043230065657343742471747768027118591392072162215962277150051856001767262762257006000111639347983528987369474371415721047341479605418651299487698916139266710675227868397554442184995070609393738284775552685123378853291542804385153755711850718658575737875329534519662540441762379651690213915252701521642552564660097042351505887578548705612565296252499423476482381118501171777166221690816510580679906903964873373250465578320170368161606145565022905486943132357945894139987712533985144703992839086632920757175942271387507736664488242535547376937109904328422539951589939927512268536254631639821324056104812476947841098778597332752878937239513972868792408994496615896098133223174102262371487231400590019117018077724947438436260123194168770755522878952355670446390753308586993867139569825380443290561162300126423033463206199969184288968948453861963773091999305132367632347472226291916541204133884645827756040337456540684347813368420740104693560605685517207478639595437883213983737894009858400066245950018553150620687503743189538720724053424843898094602963098667348192522769403360564129834410467344163101810257958583007640889176773339203256088232515158618135532194682333198082776267561681551437016492032349061547963126314455775690124756296569009636282713329576356148070277288074986460887429041851575931209120665468245319135782844047460924996431400256102644827891564311726070528579264491540019848327822698810208239564713084068355773838377878662901173210275100720382607287542741269474668821013929485411030414039007500794290319838992207286385755143653526792807737201683553229129419869064859390332307388824012071745196008010072705734552693883801598463891208720595718504945926930024315263331356933378465851709032796984228046398121000784955088147102372361750648754325633209008520275388161846997911350092829845123870023650366960759769081517870407191214707788910585730113588702766521937109438400419588612628771813153309696460204779734570177077854357574384262681649772644484791876664575964005063850050576378982817594541446083850343957385253791410111053502982385561926667657343084045662807834689102916482532187799125376150473728695839661638567866001178276152788673757325313374688150525991226943472269407157881447375853708446009427894048315266388685992473532048939438739114798754197554296684416725218866223272381454199471389757258342489769970811600164130646669505876463661141258489824809696747850743005059854836576654653514823388873528594090206269790163806521388387904388342066217584059136203616582073839134524191487331689624028088913694722002962694630322134208585377701090790448608820910703922815330378717805870506421214423810371982587581612829191069657662929224722055843480901802643919508561759843174128555820000090927100650587261262380639288016915959237480948309514028375079864157860765030273372401925767635365645538973053042587836464544165524073429459044164797560955139096731880863720665676834840023392503402143029545644355062774395919922982610284320520073979374120932661937238260786774249530067040548302797479152934813233552892760402946527381003828651333203940437457661280307678839456540618204421156969561682442958327977673920220499400191741021790753338277997336806376404970480209077930101118460441726417390396635260542751142099076714035952971236773208039926684902323691562072868105072298562173345755428703228662460089687491485237388498315431927189082709430074660697213661671376322618053867451587385530389297475598302813058154790598226895796387632860924153288535115480745232025855204583767796857344825869537876105125836359341488057815247726018695897628185399914373846181125419809726243814618352144108966386803244333930874767554100666499076476368083332183884244275217682528015489726648571467786767673351322858088994635645800424634604288659674370423584350684212018095938705119783927366151952255106278872550472375260036059163073723469420893773820347495494850970887199801567739852644921677392447339276456026980776832102822521396219270603918523955034847650449711806180615687400975256390305648186561255526164165389013970554871495018512692035694611690718639332160430181282026329591005169988460686141997397170683067907072431880109259468432258046626698549559044711673118508958345168231730558179397045841619999927810718987355422689540309238529251388169276622365609761443514747721857737425176526083921262916806459312099310333481851592118783880167992024678468190729317512062673519460733746890114217613758687060504069280957748713055951190624547936481734414329366600532455892908101267123057888004078472870669341635754297231764855356362368005292159121538933547004195299206901858854253548353454662820201406651141886814625053385794822271839497730437248267306823326530217592178398595598022937223788551699582709085956814091771970236821233548829370838640516994502892417967131876502298451382196453170653002647161131519311392367636899439880064237142277602652800528916762598214012194113738209037419705701813525836813219392408302417407000095402336569258030185623043016387781959609017850742254350591418173927790559471127752079601060375061111564601099778123868280118939319112230016797691772095676780878069001144899611659017322005247930154152913312715034981284753702652047205895494061975594773486882319189526799292080314334457325340839439735868819716574508112218887496778541531845746204080819576482608931170206820609520511860045556192793596880508589625326667848602820168412567538726008286776398152580235651388081080398524887340784085575944290482904512785721712258847562159496330291281701500619134159260239319735186636916794402181485433373036187762030883202340941883503164677054735963308568212389033549360003880581159165133354706540903353556698674242304006961693487515198185655587240661655997782840970651973649440582911749171521695043639563641110806152804733874569229656740134712842779047400542627502386600686476006787303852156313356944993649103503392477771429855394078740317829189542392789040049009538648984950453348284828773405317279435703402603299831467778002312801581887517241056625791670715685920835870458239861293271955298760831637385000648312901083927058792663259746564154522578318641032417956681487493574326980103233842239004527965730786534564245764210952533064864898886352402105764573755214841968198274482200094434008533172826804030641625672823809646963836600924516096613551376238834758077732369055662627562313283917687017483356124781107780229651435640599412009873785242922643393038239269062821850598499007544856013480206680296411990509949467672768886752167061087459298939181866106866796908055613586710770094408158228880453708836767446382697650874378559993242018726627054725027115832244599781182812869225701522395340113293032435317739368565059587501929498850977018463472371812849094811931631864454300492226453208918952798566145607504999609084813058534319640865030645703925849271924101855597941850757793578294254094880285133286258257026086822739336632529738374410670192193631251115747571968177754911334439937430726104219777416946777418109416662490297143468988841338835075512772916575196967088661276282582524812412428460732156017331214943426215183039292960266418674668814863581276027915385103023517474585109913401872840212355789415105667664052409002351362900411636968790446566941354716339327943060223968245172570446661457065235667616608289482369395717351851606854214072688978313882223064849262712784919870044053591089040460650298094490997354294599075447763784031466198293933038898188932017883471519633293327661799731543603474148689786964601186276615595565024973460354778058127208055620998123014180970066459992973996582772727390041395587315667212906214601628995112468809223807353641557605566733190909945746118568814181608880103612953255976078510408648494835072091052040436662067324395579232378801766430157544933527277535173216968559493727390030944589468044454635654987513968360578186218086804424608033727535392913523149887568229202434224781108823852321437061780040788268467890043921385428188616810630015714592942370420926719547288423703612412447799991334751751034668839805667111321904275672806966957065102245628852365254496380191456537468836050856506538721000867572647086192496209543237916997894677191564622824990024604897419844365614896076265469416248164806912382368606153693607833303936970468759057980407050323406827524307134737822387900185032405947578376642524012858405610270365161960947789107128216937835494500593659099322865080842320056563161162836059526867613022820923220973671981381655178090735585293894884923903240281259881102582759247057456459313614276869382088844851374929220242981538185375948713323263470314875154127117691679085283882449159897421344320634633374671701502367991820914775488647921415724925635799480150118931609622481743507126620033600904431518990191489652103961157652974087626224787482132226140892498109365343854084659743101601930089614225838577942997592960048890511721971151917936959005343933113072840704791481750286199924240063387390056987105854508748974743519943893057375988531707531416534561148492933413376919325918740860775393317920215413175215044063543168867931389731509217436611223410408305299358468425320377605183377362849091969579020343452653244800325008684969447632344895490216531905683294538955622652671495096308153624863910447457184757935844856278302799109707641081460566273088025500961825062718484536849474722080593356042602529064056916175540459369186269241566846594308751544770362542761290272073827202497214977377319553557932061804717527533428284308725736590175434427774408681720549724047417175727527975858426049770190682501198574010530370782096317137325043347760271528560520823038488984058613902643602101640777465521911663774625664497255031156189571575240767948613215383867934393589557286810156042125010851418026279575813938191507775495210866108523824304224960222216669417489447010599079214198221731227289226461505997632615822188965191628541019707693060565594318249912200037766474330375172615843893251334568150051595589082764088348257679680100106018871289515252686383915343043037867665282224201413353173072833093397256241838910441068266811155427723333996731187307915970791818728669830563698245107808045474303528386338869381233174720024321603322286286123841937839286433062367543611639258769890648692876547633846316281333079557525740071633090321452579253650667105955385561376214856995400896545895440461342599541923332220421090284350763989347009154735250716352326940577681530116026728818084189079234929714994229634377465122685948600923996110232303838260991385874811101197076494997340811221534244698101683381633895910057141490949848870961632097479454652350487748114307960276695004608148336543694619592224853521740844987769599013079993698445890335291826843259950210027385562830191821354257981692704674559476901536454957046196498628402198413022276256563041409747461568187510317356341462309762235788967037720465042785767289474235069518121514885232654470223450949736379781602296084503172435553146104613502826887185161697607082632688172215585960217089607220648862236882549433512185157745319748595747374005751514474749193758448635081255884331421701401280283459848267500782548679704358210239567792593427501757220923020459947481313030077050371117131096944269857315175935683413012474531688661857509471663951167227645379572486767364546908151633616844288956871994152878806999373963956118044409108801701851621057385652496146302759582649797098747795722717566356673718074807349357017994128226610736623867179874480539009071310860349335868045132733033720624633653459819131093106797876982953856978016557805557611670073547771856918239796154914476129833708910813886437100332284072612147676151334188741350443816747629604252894962990696563271824849617477221542357481631146124431245894318314098772370651493022687346425041406768591761940308256886388274750960750495981668884168909959653667659210944774715723161946665798101305921185269534916370666198140975468585423217816243408524437308498685468189556919350410192350058086502475518431355971105398413830815079533271972049743111998181126688790470781620250357887371981980013282575096468195777651352063824322528533362292046668372355677659221268130383587016140908238143160647997538431289089773242936728382084546929935512472550710442069225726322267472578529015213339643069136353820523709747529477578530094798983968402633435908265404619915908739219710717086099326846485598970029545502739307776719191652654528437912686716130765380711558035561894383930803824577593111967642459431569200845220157743254749249490560404295638977822816628877052679711954853978782858859704403604150521287950312079497440897272655454606270524541130862414311855081537749360082891555863561360285352881344323670833165624105654792677297844556284739821897133759517773396410805338424810060437880350010316698047615489659544519644385060874153313155124634549919502414149703991467608242852055645679360146795083862372182675209994333007493998416816009159753509729321006635023920002302651698418162108634020910069417073285025589779988933322043363967963890186145782911948875885744092143851354218656938671644871722629483008759646621436833002231569800407863055160833871138370824511906998015290051029493639752641633040380020836408469905011198596903811950814203545030824503802487965203196160581110357363459048271544831744503063375295376058323877699437929960107498048825074933404404927549050080788216153423150864809824354976621380484375328439399745604358620313503319288036185983336423627096469890596573720503506377560603080681713622195624179848855356716067973275460432580655415667111916199006592042164620612372844290791971296496770550768106893894345684838623593193721192978498953656294363654990255113419776130694410000358436152966300631207012191049394869731066057979197897900030609073237363440496451328717127041999972699869394571011830567442016410065220672209339724401140326309462396313718556847739020686921529860467987796497636992310640583220530007694330588690964194333850635365546479460919356654345354694727276094438607821537310491315880124675935746436849943451326080142021758301190011714211322103279988522092410361511121266132824748090919797669847105979474120019774698912935272998725205655489588395600600275168000399247872824118883690599922691248868113821470491386836641432603766298614082507528750084415440431937130991341447145885537884795033798275770592868296860593236500340723110561855211551463850293093287756633203082111330364316147730648277116443259753107289674834899529631983720611208917175239452533862845874522829804803050871585163486246896493167684797334249840186130351622317547491507034215503148243437694568324976424112816203978669844773410744845801617964203482487381347221539570494678012059830458080538117871871069029112718286078723347053646453486442455147153532148385596556502762182517624151201902200041559171419078212987378293704902764062324665914644575344677421500318986787181929321178641009682764244641488158361493080279513164930283585728192963849718523768545687623732923085486306750543951057176964638683677560576467282481550891076754541459809552255861450686430577611029196549192803471725815772197468606767789146164924198813031603241741919285888469664670005370065676863340509514219009357810737735256776822707002067435901697365257047425681539526956232447872738774671398739268336168081985996318540523451975838669837361667491510792761529887056437336176618944293615393178322564303453987964721973031678626179185756093505303144157685624014735488503728042708711194625747024952147444802920311054960647243621997605597604451087342437131941634232969926005782520521676599650078310369892051948483488374311614187400388896202720653822191475971295172029794688197073104210444394763064778649261952880626462140074574392415756019617755181003325776643546895503575754269718632346920649241237193791995931112456847729206629140928794209544225084814113456308223612095517751791042169552715103878784327791839081131991339807329184154806502015097542558183880311301096898033331380468894504976555613020173793517886287736400164842945186563724896425348086347054025053221139573952918685513125097858788736783060023956716453907943253274988820685805593430563650708591710301683803161988811884985396286972257451726103198179298474323932874117856463114869483012952346578485152291108881386306770895186663287848271615181946168307390148464465210158936864755520644048513081493479094552829715512493770049138894093569823434083369918684801757742895768006951101014910184530809399208426738201245232703613690519202743588264372574495333293615246377201332118361998728088060821714222837334812644473014378008096184641078111134074680513500215254781304433650942320620210108399290931114088372534463720958547319099912069077991796358730551999142686839931174301319963466618749499545246957925477518399858712977952992411608161348073477211378213578831358644598471487450008170006682985707118722940176696403851085740797045411213899055041320935684323681541807144947572785499152181112445730510684226911998384280197643697307684556894609625245961457951238897911744777556453715214974972705135628174278288657711130046827361125118050760643703670168899643638811869226412325132111799155841295329135154811139336431794339959822489379872211768296540049474015990300087726696891403926537083453944346356142455259370712722047176339413906288434370976607588620757183426431500459550222807382471775458100987592960480564570163133542012467679238181245065341360127926455978936054972911591227713439537635701591125168243264427653204457329621468187147394810399197691196197474553289159545796768660389701843658887383184549606349197614037044774362980224018361293856384725790897855569422586184540153557697481237638639811805402876322412182652237895081968071967649154695948352625580735882948711674441223395350856475280583342854875645615257116725142397311260500459532131394913981273155012964722044216166573355732191391846516104709665612319650485732508461926867336058167868796591582713316266058759515127928805489994704880250429089456142693230265001272359858957258344621932575264589451875121831507299583199684833126978878407166279236973022126114871089474758763027506279702732070281488481993619438525491217709621417279993948926694603044111943008325602156802851163878314581209346857018920059401178961664780539469630954574351533719438416953196086989768913327346180109492568347224254905389534519478380459011071004405657264004318450948700526867431648272460640852642993202150523552701590867395744686707397734831098542238847322944320028077816667251085310235988141763505695072753877080977613449332445387173462323286500516323197852873336140571429302076002228605301387443524498424352327686183524983334154618463767398620736736652275965775546878331165396510919991401245914885297980849636733148285281541433379134289523762086765050264148316132180755858926058710375315701262905948313881995800153803964633483244849415695752312243272582839732427788469204642582003395355489538125483753526169474076737480312360371900896715265498707138156771278849609924202518670733564870515783044656576576422132159883404264866205622903211809048677809762002588554381253350348506946162274753094711285124855044831187641511900877016961333599332454608167693817734036359900651133219494795959665306661449452440294001903549733693395007390386064214884672466388528071723155134497212726444729197329808765515293675045928592627814073175400134133076799931913119861622012591987471514741900381276465764316721457593830078910606528777997748468681171644222204843232167847861235078989268454678395188512379217968083322719125455797092850964694572529281551219470397648524982496899464475877584301015146154643989374313358575773193584064425579239357832595626512063764138447184572914259111946536158490906761897066977696486624106919507218307799603714023124802776730157498810241686483122763923923108451361185933512469514878187771044876581605093996708535371858584638738584567554805086636307704661111243169514749256206747336143491408387757027079626408966357580141060969279302293659883424936255492509284936821842740873814858140369213620084292218896098047962572860767668362396378378488261267729945643564457175855228782683561243550575880975507360153710087118903648812896322243758638831482205244003508974134965696365708705357286767821179375963937660394695272989207944561175151924357147045397441398831337775639926375806413331624478878291778399328715453430039130875144083017642716670819613920522867608407806679212384848217445683836614296739891836099838972073916236327100755645072108249786841377203746248965040976890447009399365370833008773737920456345648251582979604729304127643168717152707946276320793921264289696353052575054096828043184470466609681918192576202944748643979477591761408896097088737880452519993044200945378015633612947025311305514908809122522831389048721470625575385165928614485518313410998233535278026506423755355288073520622290077726345472072529739170195915090339326705165472407399996757222458384056948645854744935852805779284855054832204536755771212442426324289451717944020482584424388707439933769172085209621781686225948701942466114329874174442338298063553005841763142627965459371320920275059035486493248068416813479363550554307068917593783204827243641414372237163245606151699411846815405295865926809491926309460255351064507756925495124544761612817445820183753879236466427302170022116096344802020298970994867910623181849989425535232190171770974880108027605902407520235958155750626735541707874073522272260052871927107847141120977533514734420391255086279334556999728141958549228660609063714791260552400812088801513628521666124994080106626680899588124413356613252182961531778793879095475248189676603994109798266250715059734778748327000484085891395608226028284591287095622396752887645398074514545422810240853219962727663332685909931252830205202493194462256164517503702431137541106931285856360139007616094598499472266038187088370161280815676516476977616435801020141011265465511547897095594076102304906732055769602147329845353483931606956631671663926875230861709785730120571602981887718856516657499060032947944585756455054412564609402699095109322198121662203979590626553787632566237545568982429801433668924891740227912389128973745943175607815554879301786550720478350325853346427770881385758575093715145550458875926667964217486841280329582305573204086170466154461851872556409908960814014212494748608173540950749940726862470982115481101493610032736874166172328444910164931643931695301215396819276614558802000489405279950639560525211162863224431238033274974610142384013839269466548163019688926649412711150310043410578084964976368486527183547434169909661546998685712123169379408833320168026944745077631477232677806724403637300230390146650979069003608420873196052277671856531390815228530709156791879999975651106546047620920661314533687999099475581539436319128468918981924119510728761155060927134652914957492633505632677263680494515108340441958855910155076207485557560301502358726717006235935912202795360180589229185920140379611975590837925399565047924293102567481499649035360127309746857414257572339758880464529686984888564387774591970781984316950101553263795359371474413525499723670078469830616796000413578029774837440782455302168303239098246440854447370506886013151234801343683628034731991478131698967593907682102800785573076773068933446880601351398256656951362002218033598749109389738736067640562837812588403867153062540177237486284473087674835578036688560011525706438001796575368956040432694739087847988701348838350444332589914058444756773903379215909157682406116559200045330840062065836080279960546835929177850190601088910784413041659811893207650292124221835647578411755232854988459786967613990034335198589749561921736749372202302466239568952450642044938376391161360987934475701514689923268308902064188508281601239227905069616037655418615897796716883062065968220223276888004017399048126086795136451853070179392778024425888645927268162301246810112612703194453665008545416516365875561026150321991570890229073733422861064273129600021996543575933571111001324346922193302112265446858205937034555506267087278375421617211671712491429061515534599110078608561877677337407996987690730929604534980837459017412842027850287749804296208426675485558222812587122409999533798927388414711481373178624144222117583353191440917428425654803299783253854428849235556949710891691648869240686274466712008624904196047920514848058414164644010375909461735515767780208237255480978604084952305629601501190462583864418143473279866526412880017888168877093941175618913454238985098889882949539371611063847614727949483168706186441861824345421294539120875357396251343504520902632646061663371925646030619428422187521104981063123310197917088080856846438161255096069978081602692239890567960947316204589036963470277517140886264966158882582888901923766319099015157974436222508421533489729993272361139687439017965564268544906890595540481706543157156183973356290203818445722683141942515752498806156856121821274703819227859387168160560440440531372357654421930550213521178269267865357272937229871884837791074929434275872478140128317954581757142494647243709589555041766999445983896176151348789164957727131982709201111019337882861289768360064824273130331176217821929004011441344871609516204961183308020806256187811143089527120918726428236210262995215023441162319824250180314523129301405085794033045673352291075664214526350991338052665349297571511114670128900268701445504684718254153875521412456048648448005278861819226743925212193043195054267411335653970590322614380873998718912106448042527394295897146862287104886698358181875244966105127585210572869160551276539334817247308400378172810545889183510341625909126126061162495094112547419562226257796858025614205540420191029703814587643591832641770294184582794390505257728750550331368826291482181332447157890460285696987703572469545919887593016904384962902931780150513379253258375266078800921079464742821780360720305921427536043697512506337863746650466852864571708159522915470133312829626347154530380178326406997918979018396488687463746624788302719539629079565441679548419538420874176606878073767574751878917332434417963034719270137955412304769110511798547583605849344621628025689392937405283131443622640315098414799668914623036151385881708988304556804076612931323364271818912188807100027048953902919984588555806587412380573843966469402419634339365270546589191037453301156724213799983859862977997783984937981098222768090411258802027862359631694798555871310789668935228846796094815300548643378562406905108881994994796003809111086088927536607036120256975226123095105398754886960227614200252082788932522869105330179758214254206419145415620839154289042846955616500295753555025613505130363285138850416658425210990696084957314950124344045347059910287800123372821397431078230488916816449482878630281613068008102543856930932803547848588000075682698120740771112413325634653105192155378236156397985517339015601596412591316140356941816663227489877069934742781129734710494097842490673199512374926630210739990958909734492434441169703455891149720691790701676964366554137782692589073813389364252267997845608867945369726113737721961017613000419938023445191319000701568386942988336007719154014159663617336604320350667162929398668512798861551702263561937754908079109632147922628967000442623848432996986927713490494968130556608613438805776983889490406006914477260079109665856991193607098756600142411177890166475834583426227798114980800768710030167555751799910998280414025925610063611902460146087656566756481779895036179354632353331200064975749964638360305561797276020960050043845302857377547549183450221650701142791843008483677549965249596282382720230723420688230115324880245023126988075863666137720569439132372127427279110007525370387887222411789639428343456027450772522336526138240056734329133609505988198304441879411751115727652534870128094782236008531662934094831368663478565344960001761378218137510130819608177135783910393795193975670921949009232935432081795174405397353386333987500199776160701088158361176792177639165880627901925308948942100141489196302490605104347605941838118490837074299737478381749311757177755565807299313860250959433634877342651116377391873268138413330065668677985557654327707322048910126640573751767413464879110187986048800565215193430698115359957800474434158244626916685058605391837428478822934610415803598682022656578071951287790801720541052978714808570333812037054605437070075921736132807105560941250183097084372342080764385973250367774317025637618018194202022503448295706374566054225496841134755933035578559169360552484893158231356848169502877388484162747907715257582885368899255098279977214015551037624356579436720785808024523616642429681334144871679488431939204282551885536957902367894870409333500270217242374122725233385361663848576431636256776788172737793917061481175172616265770875997533397063824191745565011945809965090965590933531132794062831153083789557340465796320725970515381605386677963664689398522295261827921498381923466366647461790286104803993433367420013592234597700230169690146288521174409604587963200846801602250233262827333540305523072591651002167393796944000170309406501855434302996569969306210066719392886668338381622115922893716021678680438997583650911203172824039847560728414854812494324419606833086253866506092347668019540667120239397961603519413962584106064270766451690746938906805694358387829024684523660827484236638163915496177712640371357374282580952038676272304413941411466800405584830208237285706515433623888691938576792897203682030014587107826392681309798425645765702853846786795313917964291642886125944559486156143268845791194304179452672208582903715834552373009783744327793221594133345091762210527570739007697203865117163801782049255995694691763300213548757796240370013936418085343220035718090622679854220138294874948244655700856260757188303664549900060390824004930674109537005345074853512688046380713744742973448764514458767619252419104771714073603170364158979999523481308856266396247762489302816736507574038295754174040972770843171897935121442484669002951000058775455016530034835177498532050939011442593285617068710644605278945225855042457223832775920308873266617263954823730920092829051363396445301186421124888865758722492810006367406587292291587085287239438254160509426979940772725803486805375916234544660603543593809667189627316387286116510206087566837517542097876210157507762676909411368210329878475509243248398883709916630833893196659163335522541394215308199099005609922529038942664184490528955854724619932455605226095551823234714958273198145976233616671569124550401790659671413925088899773022390146838433306009338791978903432479705039785040271642106462542676244593835126194709113235150647254093846374595305735008529822986426458123201676510273022055419910839483708517884000474026986120109606129705938622779468173109141520712864325931562659122763513366299301907361689714650758020460375090948895206439728364973113906389994136966541715453345755411437965502378563533514853859629102817848944734144921958878153384835755317118373002534147943191156183416219236237365074504389992211061526258571204844308739518256578570983820568610329022247928554710624734528107350500400065103494556521325278962334782143059791604623983720693558513562235274219900300267438977846006667653285384126106440602199787936340559282010555421669927486573461400347815848282892688041702988747196307861766204139364774473684395356772434261442811478681006657267619219939411322318454896842457428854842575574746679251172409092665110791792247041153114505955184833606218818807609979053111119612328780344704339331573121636484240078756612215804825007611440681407043745037558112517141495397727781847879955718156038998967132503780230767020670140529914929025491745501532162186695244006111663191847444347969427224868693148928484525251246783249747942848606570043646491387228932565288199745638407294648608609461569829969659654070522111040690766276525826082969048756214641236496373327742035310543775863355330662242566852232614391721377934619694922935941384878428212645531429318989298808551439586338722864038182757276765979902694220293893322661700519481406080354498039428362104460045076947841712641267740678596726336058685518017228160174817295368514843585802274780576436703564685592058974360888950099786685451936028842256065316757468289582552360805600698759733366747109885263657796947075212129016214283678913457696535864666957540900156903072716544551187208097150275770225830391043368811995283999999606410959995243220143093043533966240758261452261323046466837570763909820175730122824797323594965599351097331950102333626599779589197048054659751831542054862391821333699903843559112497569979962392402045659696253660264552102551806309255970405925614405782980944389994300582706103734872580908566111202629620222799574351412723468505998435213428179896648857495045425094657241815946341256073474017717934831534291458201179204096256985763717855085451030836416347785488572738557714540134977107153879811918838293480957078662999389214792803347842703236946878586773551405728719347995865141260503088496302413719670618285198985991614157746099835525127711739217149173524858944061842433926187018697273708907755123734062154208729134073046731336693202732163666560757830110992672640594852695379835984827684997123110648961283638121581909938746287504921621655688732045387747030484623475197225947226936149341576313817434764256850256791614318868671785248671723868008782657795114902470945601191818861334079703154608140923216337444758050788796667524960709048808812016161379673459784720133150996858810592938272891372127777003164202319793017644343102295451354888178168731630058914959681293903922910792713146316648827543347715557218982417343124698277712773342162015609293923251719120534639112462806693247481495666667524651724001768774838235181885136330646819573667971085901477415467979378134769074566802915583637052602383185927230667433566062338473680754656054491593293733271516001191445047911012096505812992692585353643629919809697709410146405829137050541325364951092313109998771270092172938324086688101615339988378705874619322891576973603000858377631678602014906120045566033136740197608221396328952274704935579355563045950101425918935204200891017297126754336204198110517054040451455784919502032840235845030891047810835942785238032205976931781512847125046331402508154006385811509287586869112919046624497149693656215297189681623016839450225741469242001159336880362288096401492035197889445058490031828267631793089150500110690519075940381071834239977566715627380514564450983917782063354468321818009443791104147075008343610944497707605137543104318307907140331460194172600002358602404458293393448324735201999977495676317548053145480250582309764184903596745956522560114002870252786834462873682437411359542131012935684109175604281070707277367806355306885153309245462664756452475125974216655700815087543107356132330729030040548836943300249086354711169124539109211708749430629250883783496069582013766564055591053081248678054238007107555601016355693633828019580938821245329519501459789685107131383993023912534611723326247366419171257275077337878484019307197956775497849315580761556308731764357877512121391201810785576148103010009308090824297170026593829478856761385632464314801929203228110282029488768400148446014578527492229567210028719431751883350625205324205762472977698448673296200823964607040129153397927187994638641970093405688023946635188144606717165993631240395392686220893552432649280957706535252375749167322101637883362451881357516059472113978576876130697842953239610043878509705010236443377822262448662653792987024634412821651771226665109289702466147555283750765012228651037246841610560274846340817905583731721578749444557571928170640745620142944854177083062141802704752151299646607794094262001721079479179925750846168845802244657055699571399755248514508024258558971632499820201506337123252084678012283736553545105492187364574757775285549844333087795758830345994454973935850368048524843836303134307252062403345363895084530127085202175705092315327613555919849255262399525891163564437633589869107123230516682944554162526081890208398643730328590560624313766689967720624303107612108707708932664156503006666253781354843552540443205093024180405779209108891027749406594649696532907880478409046314886013039105681269607694832613674142864890779669508794508257417260675504017815517339020482313369506319320249690790419283440052794126475799113769719198127184465528867852322101772564259471784970061523947730395609156812538968076000289792575594881488771277433511645699164188350109943546970653991587891498229603779252604246058873193556659304981240248881280208429577942361527714084401938766691226658671405821259877444771246338366455087436665323984402679493965890896559804777369282367475253864098605188986434991008906949666472919350312237810254049451844972385385229911162441778363501570207341089578741163866869794583020255743352023966863417208609531574687485447678977968205130532552227272629632425478016482510616714720090930103891752671583409160395986011043497357385902843466143868341813736930078028099596887486491113044056195046644379374160597871401832121145874150364253053915930636670716324486079328752794501960549339687873610552141642957671573968854936861154331403261408688796222256193229643932540032145702362108430882700829962076075401187453243163898853786978685812031305641935398764135603694308211195668701456127559503284605011171450936451338047809583835303884693345750186951809893807024303441463077405742951444797691290956526606728555052649422374017884255747182898514592379637048831247790720135264571934091680667510321979521465329481099710075708906254837082478511450426116585655067452559725125797774551074644404754438038843566772607022059894168647379355408243729175972200538111684122223598139270401453640605651950168774578936970962097387637437900227587502112907957093157690784838425759888837105003246704417061606747309150316663437141058922823059987888475929140431351286821063565808678993097565965336076517561225423693557249112920725397750735502099587505315471710906492505577551920849937715603066969402105262890928022236779535955419047505854870713327390942445094802536303301093896677614512101851209027810395119990146777206580381133901693581198047383673969084522971888400753362208441620656476046935797480547412876090461437784850534193243153305955361202852058625504645604053229864662562564422530820934130312982371753296615787337452067066856564751673019392573908582908513897879636232650993735828342480215002231338811517004625455652074988505033934695709931583427036362125016476307716603778949526782099718087996629932464181958608028612054610915190661602265116894077608003490883290723299847984712615055210835729446145784512734858273581972606445224560389714964075003794714580145103837641963915058049299823212642991845338478012592922508543900324025377173317325823599016316837329498261554463398571542147884696010825762833331843660638313531296012746523303370155315525909379451969665279235787050264863711716382074578811769387060528912697197624687436002518955713992940511390012824215350268387850642795846505504443249576806303630391784795800717701907486653023098484904115298872050242625951401901941212279178635796752356140968730935151367470698766217941689662306422619599169756172304466585111557169391924469376000195494810877613911610434558147144309290280442608294027554502409856679506709075178432397001142655698525389531091044750303808091818987729595604602522486948679722266560083505258873093211739935044108111728380742334021876844316779638089311183959616891976866569882248887237857387527282754258037314084760544187137607619571505589411488058136045454659051682915858040521586864476301045202353302829390188494519209072705551162983919796420489395444290655968621077478705521235739032256902261731192438103107988070125318424084032812866961553229735303714857095900472292030164189912095177893286457395555090527074241065837007386859524207376480088182816366728578006460518543525822496159029701031752488585258109966220202422555837002034839669816993196052644098260041300084319243655387190510598447436530907315974163333713715031971366618008578107565101994615827473538576341056317097572912986244997010670463232743474131206796920001997623705205108040471891976601939897901755066666972398729898810486397935282881582303031416650602083443168933958184424440564085225034472660626013993993277390660686899972843095635342142244955559422842670377186677898707939425980408669029894605929861334830075761569148801537653425954725951685464005564484378916027015423438049472501356479163336326564762121746980216466200500043278873121541763792382759871199262220851827806885706343933039248209521365709737367459044557828063172835296993066128351197054555296325523987195329325222664095745541034114820419453851219992970697833860407600973839926281301023494174290120389884943968733633485249496612652290780499079119590231688442733171111824959066326164730378945475433424638803948348965243665780183913694839000012366057545740838625523524568202772718646150576516153509252695698583139513217467899055121823870572741523814621562133194018978590389170605204823395514487516648543816156818642435222685089972176172512210266882822196238771851785655154247425009091530634064833347276640375006958882523993566089165389079584383415786481931633383873439360168632869765398549098998270104430790102031297421848302649311600283049287296749354922774077609011953334287182956842548581310178264912368168593371691044190617896719720964275160325395867234360287704010527647969725935534364533351028377722787307203250110100532595942657906687509329935125182247886339567610744327911908189702189079525337389731889582976194404157265142906804944557536125921109231335616524017122978244013272464423738834613694033993421205209227448330290738276039080285929491378150656221444727320771990360454058159107913676192455230025673708767008951481230722793557405876750978206419817625290962896009576899655717160682202276978257700009167895623172198395446919538010538919416248406319286241089769140380860353080930431957189841145658295113073906004619548945215229450587563759355556380639452952739055096867740585450443340060369429141313337474437352382987116455762499964224625689266403601412119737820128289494657638769804628729914024440347178100384952909281488971776181982176687785799528032919190795652759597435336174398841885325081958999698433361519939077729850507644198483245770763109488720212115888652910528027600706270318916230030358722882805580852265014383706391371533473031890575035902676461921406825132818659872300005396880719944361256198412474281342036658938932928759596149464075658350189725991516919450406289299794527595123957112848854940436118909345839350335671322856157701097475731792412094946015117548196567500238119971482508217709953164544585705873900494903461619412530093210218323798040247288793605214338717731121900480415758854664026126901579572735620128845693477161712574469221322700600516772932685632606403681167578097910714602525847564129473863492161551633006065982909273271193722838337632618472203223360324861830616320994100427142917537534994066601761044955956611269680874359613420519254138109020213447322803585372532579445045676328519033436015552766283669940150108441329775420900172830003127939638447469648167862086344373453749950678041235593833092769768857325958346602552769615199981615477278873719408150161875326204369711090066849011225559498552274860428243893608872722026167336352875473185568401147122465097558826363000949662003707271265477361988474542425759257054159965654867130379136153399985963361634595516269275476040951407984487162046889762666321642368509314617569467364093730978574647246155542981375892530321285799179646200094480180435329001265598835021912191658155129020394626325142890740892145740834473873502264326199915348154694539739420002474882660873294735814547976676276531154308920745489248345055970555000329975838868229737557418640920367331687534489145453062736423309250769149336344526461791796576435488568614970538372366665149288336773190325616027295927933009898590259225458028681507476818175419229100788758635296949321377984891866228720402601181419235920916254370999893456047050429430932976096880837006227428373728625866547828904373179585174226353519026754312221143957629395265165492102574568048773281404655906856818181309606627077052555774486372783533791152169809842287750547443665717088031960045479247890601480306874560532085203068819778174327483842204843599983549300737436777507204196735356155835181718599579990765152641272777740615343586873960619408837221458778870297765961448366721831380979229386410778607225110125407938291866416486780323006334575376795000062366262384035730234450525993004717050395311383865712616671251390668213812269749784113262480357961642272432821652594262971962168904725935967780225840914651989407974910487017287358820585743624467732883478932883133135356337590575405412488974870129528578047218463366654028655792791593324485063991494657200744553542379281226330750660703740108842298869019584020478481520222156245388876981536661790680163403129357002788524429182473630641086817177461190867465668986647590666888650147349024098021956456175131393837170616347415962959403105894068981985113830600005329258569072315213327595672807624367532035852745701705238106849316173398706895530518943101358157270271941109079229042378240971071870758566822274077045078310162218897885707621347372094800645930362323636967737870482965954917960618311824018980225636181106214161932779354854031648830661024988252510041716084855134020594251133044983768771247058548667809580900430587964222448733861000060431396724288780152488208836948113233474887820783945281381387965490165460605623917442984578501746356375371052174741987029994779964176755591105372688638996827001184018544521945573709835196922417533634673919764527359680470296111578402942217627800861500608003949733322190759958873961669776914246049876238998115740640705197588412111436667952632665380082056580897686960068890832241441540300977684280021342966369099254148731789581328447689123750855494860622872539939106044136345126139071521975619912772398610505622558435590151136101753392283229689284434580520705019057633025372455449267555513160614372770191109025891568354839000338713110396490619205326217177094792686812271991636242665777735451417770930807278603094403816171616169517602264388366019968164348732557385602041494225133934104089879061625353319043759818873057624259547705953725269828688805191570659258292666123365296248545101524437604400886987388458569915007076745503937954835984398620752472658668814291181789947792456758355031671113142083998538591751925005723450876898762742784447224349204858019762069253074020656471160802596407661183601922624801532701982193854274997571401150465226301043955166877865459362650336547744951537496932027433604303723032314824484762816377558426821711334105304589609639872456505999852154197012432219377385827464775339079737419056979564135086641341497999945552871172540687818838484025842480604477378013696582236219017827516789978884906867121970580507617912256338803638749627370836237251640378000625840544827494930505930505698395629884236447185140486041576413523250860666499083942282115415780875117773193899526182829153705562018053001072733146066781048512678268375982610482415675386842325533533772001538941710832330635771478286596172614299603849370112451773539025251868115059597573141379605516844834646110118606165329122171433525202251924758978063380984580157903608271238948482583746443770783977688704807873887549476972219244335600773255362968112448948510697474707543752009396905079427359874158890966577326304845959602185481486032467101759999805839678740119742027533803826224937692813585305304458306283818671256826120692562554141222412150489647100415024916075823368563799472893585302301728750036066477211161324157973883694191333102338245374353955702333369488820132339414750132592175011664050424612656673739147019874005960388370823950973098665247963755582873586704251268915606319707942472572134551143170170875761223326443504563391342670566921681873178026715590740262709740827124907891036729875142865421145941509371408102986965893479279792797305226949158298535575988819328490068283435130864783583185132626832457180304850674164435500419855022737457010064569023449935478398491296603406713008007577430601472683941707356902063664051758878837511085202857517301590166347379050775654512508229434589444638800354963739825948470189478354419376935524812216525336638202739323328016692655005228760357369497675249088159172673203804874375132356376413460058192471745585154770906181420683111725298342027924765567042965941112338455523913870763622907751780887791396075381625272853655284879510306717520164090728126280939617151849102106647825169377354392087187695165455176691705182290915051232143944726336522724440693459388199429891684481450316597787772818644895938967801447943179651828957789977408526337827010003254212958243084365297428767193369810681384266349645199223962085684254994395531806952737989849504848015036690668976400149027757061190258827888985011618013939855372342998833219500246374248430137602486730918037921459511280463526581496343458983614307887882013805021402823264379846185650819705452945088333153275822433181935357812496526315953678684037294046190181367943047655491589538968190465365553395724432291544546746170049874530648474676986392422430907686422870468360088816006665288425122233710614621844729847701468786063775780875531672266422422494305258760610678160398532907285438418141805934802424719761729380577889987313801564663323528575506213868105541605400416129261924129697965132881644930923756782005170505155294601511039469159323329865752929878621561645860189507272852703260915912320591124200969429245751038434042768135961874524694602930000471429752312884869157122662746471621176440484410570705585098946776358671792062477864635941794039465112612273201709553655853970399463283134836957070916533640505904122581422788637536327826871992476193192836301284321464251443435565035112991258999014569516149921318211023496735636423962231401701069447969438833933297802655192524247362754504919549222199177521220706064240487564718982776195823281685638047034055963686205811488891253604300038951338586231356318214545629100289454730735718347940277957451335016604354332794750247896424775198749561727044099758958054429993465015379495791171760778083200683783769099701772967126864685889223603297750844393528411815621168436310810363103756012981374556099177441906492974328031568438835523457333056135082459261475901451303380706092309350800046186843020826562795753439256768025043377025133058357898333754237830079608639702427067914519020910499836052958973505683575160423823041792368317366198519318904176626387873738788422442959618993033710677336821066879171027571510017138007894065101955869887098951230886247683748267818319249392901746904775924238399532077138373995825137118828525007578294441394632435699507564217849584487042600583088474131121873047701877827942940909047337604283634753391944546454911756324711150799466125195602549454207250974322091320734653704824040392915777794039450297801714923875137441456401666422562958410677210164688625188367225750796228078052588818959988876034726007180877067387656157516227544912483854799627824477045951291439293218203527063493961436401636619746771316640620315409656824316682784268797181890873104059872153584364880826327121743304058302710739931968737283209672364202193645866048519935961052414633041457792341697295020338754634653936643254586302781370746720045512997133536989190723750785206928844203375398571379196089094244595875044007657521602891175986655188723887688018871806234890220375402847139394102774589322855473400299244036291323485990096567819078912783971375947597528688087952130921716790957821382514471469525468370995014780184786762768436939265643401012846914983839881803415823086722049622887397237702553951840631752723112964526892852825699807175924361744013486601850570288772143591196079830282030689792401522560293707046285653497943817540334764872634835671265478688707155080159469044377894962301000783325371988123995013834613772264358177045534868247204423198884755606215060099716440694238943990854876098818597775404652828661159379237914461893623861201087185348138889765549080712177677079561356611821166347926998967832838569940396060450329517210791782074435600762527488238962298278398140795957796696473606030182868032716204268904202577811248284930868013919883643282103310508046686082241043775681579450376416962770573531252876637825098281957904213416707075392130105142990081549138604391667188117882175362554486206807583157585910831685569863466281717073089423679115212664422532136162720312938357654985220063794304170916759050467543479259325978231833169454877389540565700095699788996224664106832433161111648640654712177515480338903967436897819094118917975061373005146399787658247389110878793952724873591278834349629615685534586099800572159722243135620678554476216515111834101287586529915695730736425835203110781776477546044620078903491369362728333154727487232898721356245513769610753449176264719486452791905665824602075486464655334943725807098957609369467274618229143975758092555247605748591991776779485452567572396325577853519356245884879704444927401482004424603449450325325780882995051942389268873949967276843664484578445370460404765180371311774185602570580277474094463530707900992177856991052945654828802343399778527525554434889548915210033575744853709556400068647882477355370660890859392976921845961220204210894690696518542875593941933391244492145000798060462791991875942934715167726869355182634404140731864987980132741709703311776849693330398316960144752300250261446604275547608850842626696224188534369270383657062710667000096742518588077330311221295970665779330788833534200951203594048036424637099303256830000553203740586336702078095659223306777747680901819932988558739728508734171407549877572840750664885288213931586612697647763522821379262152651438340908340611780937466228221266733295862002337075325982754413991938417663834380690676471465937260923750227618039070256372781730991104058464036736132266412333795499310099591615488117880504439738644072023250101261549957603388342211360183761210177724100126055324203373813215496825508770356864996511016398075065500851975992614715469925240100981834045290362858841915702252934663476229362857941954162847743090327635057765317395643672750033810047573860242909873355717804246878184545708110415101345849111822359288174044661463712831484256825821610270356865525716913754383913204891784362469177475377609760396456441669569145171597358087749716585494845054736332812617799466118790953062826482626984929196424899808043008822381802980407136447612950665031447686875229261207686444641781676689998269065669208447599488394349963609086238796474170590321672310453575572691396173373769490309229776154160005572047023687988803229179636592469645852750966309573746792903675610094289955096029394153020962145565278658696891931700879338394773508159216597071876443408476326256084509511299499422610011683166251063121190264695662518560148889736655773304468068362706869920074081111861366793860346170496991196310226933324214292498300324163250890392035453085176914539367317240195574802765231930147363812697666002236085677930877865376322486602961448523528103160841836251594435441006240316403850198801384793050327815667919512661304753567919241397370823447363162160439412442699324022305499925030245666572815269276880939479384168154854657152658614604527239335440617446551933197273295401422541196990782957829955835236624493696935632998400274175517826112282567079774685462120341593534614455280602637641694254175732579865790213916863255578716906156312333447342915682036917345371798170012070063535791828102191681750683817105974454594898000087575668361628315213027379623079990108183987082543351926349914525905405074840536434304439701778858964903045743437552350080143216264448471715409978994197895749238234423186772151273842494917821712445145589717203314933827326888602389050327432962399704812577453890506327504584794055702189695597614033728943954141623781672710790328874250184703628686665308118239894823667404974448330727346013146919440955847199810168801453751503078768440854706626583352418785638643876456518817771670097894161370092783364146539248583270051339764097813187476538880972155644161634301235324634441101838034687320444200983313627067743033767937652379345054174410156207928180019752329834053291928221305840483665302980249407726837294923021217319258801459376079723426552194271263424355581511910359801134786917580443662299654530881397090575380076711333433199009718754797116389737107446738358976392513383596037129916620089265558899944200970137638114491134401087515922972849333628795362887959025235480522194944595009939042938156653980776621302600868598103319014637428049957278588452378815569776265366503404791087036871725997173924218051839576384702488802074922977155014344378151337770166414816684724514168997975874355441995046400696440080371091267696213363817291895316545300739990531260947951293036924638340057436818712065804613957227949897934140507769603914934569170598871988875831521466062348527779070009244064511252811315346149918236412267938362809193167405404696368768057242837889466962473826168816967150812440528008759607145703137080267893484927267286877084346691744852472605623286339195429973844560563071342456945302022400677065688683976720174151381465050214234491286760186011293699233567227781150812108697097389322217388730363280957578869736174941427887482497914404689956971466776105883211191519315453158503373036630628265776506235502090359394137861287894917429475593672889208694537599235122581515551070437373904316099438457549318371217677307580022160915414746288396992118994569537312024767434996785714166136316529719565473194894966866528326633595354981563169862773780111113030435152644070152216851001046274769981839111275935808533413644258478628125178796438045618149770008037450840055998947449863897963910372836632198877073254641183491139686599728438064714161146872575428167789977264833177060430217931029115154345472714214212971682938730756567467502262669458588683459776003562335948408133915285351067237584585086428475431150338084195934324738987157685997317582702196651821128320585416600828722632617746078362129891442913109408026935338721556782439043569234640431836610648078714767471308090365903617062803467718223816805019118491857790749991559678908224084107789057107184384321873310737159883980771393054103882192217503616322773844182064190132286177610929537026936134537316840463555430938225330444347980614522085307790792100936672951706526938746830077677500632528974618182015804428246360015689184019653248928382629286397638560889633259121454826604939818010628378305253142488509607501987201549682111217127877063892421690092548981592386882882772769926519409962260525023897927270424306815340772350970723815721642716791964644516788865303774362482092947706074879621018978126997950710699098514614208579090805317613456021754044120953239301535669288751127986992589696652892646816219861780980098157707403781615360376672409889677441343622917865392106099102427458657013636750765387944564874239969533290656378774931843056848185426790266318070536919887771735504444517634705248119323091877141138455740146829741776877680188388149213336928698599818090523013447355495549192256766224343759472785149356286982972496289444919172551146013328822349533370400814881260685342686269164035180233663559928574746086310203228553251942145469828550856859659079534151640888212587986982746940438368352181850171665325529581453748506757234193705852649028981301136413143125325144183613067357773591776493359330545504699025847827782283822964881291485804028237819669429698351271497094060029747279614936120663591349333787482436395295620425211318417021751113779389263681995531488123065493578347967058663881246064416418174608061500144208757815994138516816552991307492330298037700637025530358503662015819760005079422395703785092498561051388788405270650696565824750661305424059660304310462517813455129182031791745740838022655130002548230506680228658656796431754007837684075131459811054426432869738834029675441158362511663503659108924706579349411587113064120259768573046311826615659820361369100408572940425245303454542398965100271889291973304495325954270145791557119510694564179992974704669589979150837126879799519276771783104444064952106253675377391432663978824974165901811307399064299297735515283760930006897242531939341111873168913144046656697544877132438144714604375607751727463111711239075031670757637925405255098329337570431654897795454189526883156096473423277919943043627678399856813194308938294305627632626007538869778922937527065094463237837060570466398320612769960040846774424633191324109002199844850990492536464307527238203040904422924577448278740341485555977577663752024679708765920004823857000245133583945171513154299040130363752451084829472731786765884866349382369704843944031674979161403367884288897338311273235041444992089212862315785784210560964073703992145674737045905298113514618523356137713176245983720751867804488631619328301736184828079039421197358326411941260760600099380147511616396424857818161096789610463118317969832082859470470461168015433870974875733253774502714787361376705731397490283570526277865942914135462577405037310729650615050302879767586585617281648828164187870210147836263687920398104483246163170226189524727455569485910014437059690335166911109559679477166890436185951275507098813605863581802156333341374189367982132252558160813699690571549546916224683305992745321646550208507970421241256450417539097035626110025962012047330567295201069636772243912366463675665861958073496191801821079632473728442061586213567920375350796342851039413291617964839493271094826882695999231014924491974286701091668555227315512134021787444221997301280205170411320447314220977931358696672729050753984745423945122979098785373548765887581360904359711337760125094965817955274203661155988068887871535208279887785336256335340706113546226387150892181168034479520803950569990517959880979086025679955137812484268718914256084704212227651104572910025914890570227608055721359613615642198958082555335705975837740342917236416911544313005337835194423578754718411356022471710707438177101308062932041652709103568278324634506172404415927256237587171248423652778833774625715434448346303399073080687258845966428937437243841806472797585796587117711864185031054751129020513771762552456539817303450914397187469201548866554109537319018222508227432560076578974532451470959048383987532951964139856693527915442627712427033814532490750132636660047670306491201869977922457092348318819577323797110638739726192252072869786585158831836963193320733764314882329616891107557341589157030176873420892963203092639491586594015737481499933886065452014526615504407433219905805270894812078007316155204143954333651341020928022994175573044959563164877251018612087239505564355652561671357891894665624545627918926041925391109525215095532450852056452073588016875322144671287774391608347192988885795478759251816806757778110807837401927160589067966403730688393523025014738555030671035165087075858735529193210948135466517856952146869212454052306839109307425068392290689332497787888404700720206519936908104615848203768867597919468079022910295585756352464637392088608857650740296435297008049875518245847588040924530470939951049331308475494212034261308391692842952379880593534958912606908842930541341684598337765287670087962617867623141666619606013909211357228859398527099745145031255015060338740137779922813357077396735701613654306996741030802638907469972145717655929377823786327254173370980159123932917281756520585936913706082674763524255690163432482157779860018448404107468104412991322539594987037450262455035689951184695328913043560227745033936232575364279410325481534155522774073894325580582161269524955512411730304759238545281583022276851376717593066628845958336876728842263365690040586135360261760888631636489561937106327823588222823816211503930859989263326682079087049182434823844888875226008579805573729732105298975770430070873297115594513034251170168036205958393994481299585558675308158526366664693087250190395406431231330443174744432651688400201444242558380145209076474659370901162608287014835597628551942560739543737184959852838530879593859815232785771282069021444383265634741076746893472832263810928721301765924491771547607098950485571533056735220305122769234539482192132774919098146581839151845484324103242066485705481505872142400090532400250885355067861620976806132892174276813567717693528227280702319486671239329759941552696740787026882033165316016723150411271771712532051679710560742961222977096854081790731057286704767883462217913585637554644804752607911686075422395311420520007525218074023793701463745092886215922735029188014628472601896630383666063411769282388113008480528150119918418624408296941179410114241661602117272315197652266974180456056337786188783927374551047866721860135730831460130849855621315938713968834378258959942930116832588309657600820339266885694089737109270651253539167187156743265388018196282121457952026843845571987233584515722020491710358001327659458187929064139481986339353473452239414574724837220238641836598908573773800473169731411588395168230231242391607921191036262896658832533028828282859784656795873035704000783685168453171379778162603167710103915892323025646929356414062261454764795809157550523623878836495306623646793627027658267485211045229219277937577561162465245668187812973577491865480096582175408339194735939525892755080744346085255831716445114818200136741953127615711653136879704432735692701706434043111480445185771108199910640715841558495040766180932547364378665026003050269836906353012470779886917570532397740354466118698531991145451915086154587782596132105792139238772402501310965702838630147968131627145498055369645003492373054722474870238176657503142983417559268637326103534456490609358132964381269305917647981670742792177460421795325821151242765422160783988359808454839063953038689924347670091677000191288672102201752113230458443825347543874077355898156240895295935030205489221893953597868484478122957300921258320367544042077665726358635852134277247010555169619330241003954936824738636973236171012992414475505262433145516385631964082504734321637605342607877066839766025151805710271270574199194561439672391178219360594496035563681051265895071466111430276319627282988915197746824804207516692206384874808777973407959761201837265653381392415175270204888666314086002274071077323836355785612919029792959664359931750425036478319243300780080867325802604599152714124690796229504235246721968825774293910572907271715846464998086799182930042147454387235951443372162918471799212189307205006860175134764230544070419734969147891413811939543427764560687760188150189983511980978922761870979923996353785819326837001400793976095479056397364295446393991814691336044982345661122220514067843488147349315544254079070819949970851839425077882010651607831755998927958125315165402349019501760624414308455968203153313020982700824159108385593605102415290596725482925857705908747202473078425355571063136109506081964934155978653546434101358541756399531625838544802411585125451195222516098376969555919982898578897039978094337421283977310595115321098024989891719785729621958392579486316011653000229710382852911776913450254235495562878839290257280919920138109159752418352471188463114716996141021816488272560573360278906531477827221136843735417500333252847182564182346465318442284714578393194016932695040847121813701694094180933642158193353972463752194623242758646655499990792635112802928678817292855754430249734414403359131202214867413923807399622434865321078012731903545646934295696393491354027598872953883527080315030978173146317801335929682662659537146273815635191284350981723771253467832714572789304186039235993220216371298552556690004485385352929873984152720702193361950981467522541884237997237038271061521015844917838501990399019413612732629325954446950803299592488143703366656147603705889612014605127658851869882640776518991182893389293638282472718963912537796475064576467509044455113000135485389817057889135945831895603169203942634006022553967699534465864200783767122947706162968494797525496992803932259608469727004968347541090449408471498274243285310252900801115499323489664673498229625720640435081023454593336807407648652960789993662844738029320809248781727011043289185735138691932242571911906854573983282077828246470372548902837724314256114667303477723064969004409707793600430563896537454633935244606950434204422552948282687877769581755041364642935362320947165233848817545314037866851635097284852071840046712793721841000962732152510041375295372052548087136185342277074799862772520548901732616513990575673011354982786573851111785771907710203405308329088503293320384254293727574069150965629523100708075319576874025829022139352632078706707599893896686553321617655538007538315573544174207702906302230282739825775257350617637226118896851292268082830134242599161135869011454298176163902814359033403550249632850825663449509648154979516822552042340655809766351171555411885725507983612638860734238377788929294302650139761966792618275222075599401484660962926488038021995288693317554172221926045806729021514851716453630931383419341124938029009649609172964617875547616533663855455112987013240266063913627642862380383979697598764989059264674864208598909476902466612955548773365280317680311994882356187081532937489616307742127000070965885527943752722520531713561901087776366443664954008659233926327014259428309243820579590730375605120044875813415037786774614214554950757453182267004370117107279167690404271275108011577225015143553551661339850861024743655333156266399577842901170463429969511263727997878058296895366930531187474265132408421604688483935370060057758985460054349196786080314464055443244091146442603737789440600538129262664939589680684108048158138069357282899353175533907706366762476012223208169553912614314679839520861554977549852219822510349453046903111773833837050711298842958723437106369900475409899348960736745694622980776780307630129294889273824233847961580963358849826191771788571954176009476659361104477709461046128080261364828563951121580834240519684524517202927711953149650869119174688589580566951098009423240968159689555729522247545819859642192785608858881146235077533769215576899404871789963149012696505917907127152110555552371905226995222051134415478278671419181949942083984965390511222765190456822313083998993793633861486004569905321581034847287815308914519495364363025240707539897097337862015684470266490449192056897079693030140889845425039924669574319418362206136456078474508101059495738674037145494842478873921122793111848706416916071476371873018764807017002790801477551200575269322176043720059187135571124439721602508373727811085634230546063742759405965508299139250094281368714479101132763200704562709796279129137495914245489400183377642692691350206794432871415445481414709416441664494448267492640142882197753530236280891728825260753240442028824936314221374831921216782386142226524974623254500531622808794302985493657315070477318824497030293088760809063691121632413593712698569369900782172907107341832536766603235538505292258164639193201996316486460979568637725349816230818953361777100853462859705147999616530988311066835324210100593148693427580038961408174824635827469787152457887324627319229595970056165846171912081952642010411970101644622508018451689580257753236433365895241793448638337488730582436763412893248532304575086183212726527022285229329863667350349675574815102230936196192747080563207453978821854094532766044659316754694262067349236540607525520215965930152977009212277924672100130412262601678862298488490368437604842553700558773988832456726382408514257108620388536559973041465926950810638970655194468690417721897125709546073346750142293207572723730653979396959845278836866351499642818624268962667835878896850088154098982111568949991421764198912114150474121809277154566739774098529012436596472889349802400169043243020430965239451979496752240014047646282090058128555220346241366547880354235062597477763234254265923401052272065293062214456281434938709421344874336792756938260494525162101290295444310217833145971289610088904033779293246098423882214364973367901883566913435365470395797487518948836950031104785296541461713274878527239990149762677658899036251412164804554556890055315840459614393885735625608782506153727100833733237812260955200916914393784322263829090864549223130265407547407233855995245896931598855330716111582519663482389448045359714116192434795883681395827038439112160986110493905834016651786234361369010122473204711158483465149462670316523526688003965296716596910909887471617373401828417018210184436205595966010674265130872316510637417798156593480869632373460988468253342163185795024055730318810210093499188042281871944000921517365869239025304202894701982677776964892082284741197446511553906402235339992484113139217808675847523434514021036907576662117782484196083758502234421360685976515454490904410773128382978307179043225375441682418696822853983842103260817785260404324762742003333878019687192407772016422232893252845757391728266148768868554674026217952235359450337018103176231581804411388989483906034921664789192922519039052389838523851369896774067799978972081213003429842759673032317211575044693408220196397898839011903726832847618782416110446735811092410114996760438336126374651454541731400470692444112500407162228026669676276555079643861861778632091776145221590068724100000425605005870150844638300943181733319925409022825508424384635839444474619397276552336578481259562881626174289230011087857597100401232478938437059474321621956561115102828745333108960138934258201373294396459504904880437364951093794607413474280475578253234540746497818781089268418115126426962955229148580655979618704954887341118336909980513061349044909105859895381021375078336747290047431241004997315699041627360415133122293835710914463340793105817808730717163253510489873871529862791776990935885128294148776441784649226518232257020141364007034892297572751247109882074057008067006816624288092736878479657347111198636283590265128619852668306890775293608560887806172446611121836875064706048353671290692987439239941410574447635703232706607048048022566365884847889747596593748698409053983206186405915892890263016470269201813978394105574467222931592391411479719048991244841024036410334663381656472269834740895382579580836684358001224250465568494958426720395708936258944833972443462140126008053113782334035425525723300365048353354605980100573576147298992175180595366765911210896323796486996353269642228928972655261723338936828063887065064360037450601531984794347589278598502756947849112880453619793100539041039851870724353653036007533002617662868917911896699640120514463173692400157098640706742825545977629058419205088273884376470803551392280983740402436080201810795820833353583078888269171675018980335317249510906155089385163723190536544339835105889524352618265837460807779852355744537968225331143061491815978265202880997014602898571804341711106336786136261052425358189859787833361693119777064583737879644478819093780455786761048413987162471224595871459293996304881977216954661048554128265827580309042556807504316398617663745536924560148304653474997846162292177145452358071511502156700303968958548963274697084143519932471781141992792914619226789508981839891267621093790867647908971486051194617454542788752163512832058314510137336709769956850118507679382540147325394044556788697288936559805306460750367678814993536939304720543106973525711280229391291624754957568049598763929276055926882956362552354286700480013534503720899575766117996251308239114327828105983727917877023255459250506806379818229977353366419289707587198712896340674729930970822726689282881127114601442378670391132936534182838511418701135934959505763789344730415404464782664109895885938490821725071850973803936404289775611314433265732832104594108325062016809221761508452365165049843913486296265073781462664189682780999416907104790737879500934097264054652191528210968653441293771184498020206276603710227020308128683905351583430532786920748142600331865906003194963919718314943141002124228400063035774683799193103837264419839767849479105550042096795694346697677522464078492384587519720810375651393893998348921231620364259159470955884375647948761221073512218005819171113844723432975045405391110158231977822951346752608619484302958233963880153820310152839917280676274458805558386880628056128426296499344059098954379930360322834075155339448108924057734888690044585752878579705210522375565993667007261991339872089522771023016981465712001286240914519801368009286472824044036598461828501081083835825500310767122414539507158757750816817539593024648633375714510237019798782205210191953891953585157770519849628194114446897637848803216753448673028802851622077118230378367963428692022658422103565372898779810328198507620303880670338287388981483641040254884727022458205415592373853611711709476401458425829794847661076237389595446214656718847302819498407273886637939738967093711905372828300769992459559586244938603105335932067057994017978078513698967955291913408662733243234608953923227329856855543005750494628335651335848608371478447012539835620709283700949787959465098746222473545515408019489929074775543591494652986539947020017326489971949701864966782761742461680081775620895008124853146514302668205199198645855708123723345820266341367943041692468625797177909098402325139663245278509397888386376563169236735710253843485681541149513589469319972797488958368440681285306902958761490256638059745900097703029096180727394927175164934977633172802850480458663683115496797325690317136735912009395996996251519245756246020472112853464349289523328526720494813433575076105757361798420040466289830783408941619653798459853375697281990266784741293719643760439983017962184205327475026356425020714264802708731254800837459722611422440118003899263764555809678008305445967870204237730618056056347270481589365092202747211163002381942604111392360246339404296550908769826132949774608396040514783133446107597137372804474508752239817504808832509414210053955934980813338467446171009692740616944990263213352424940070915477168922918716293966862829266520754878541203817576478537863296798270383602353208667687321002797324269671727298836237824940353626427594635444999537588273226390921932797699335060170820677938440237003568642303719860720180660371692300981808237467482710816224057688762215056834951862104608476854825968456960636569606943524156907333842857638279841477961177328131845401209486245219753348094633095187848213084744077221518032142684030023201398787789108330590551109935423421339559555160087064493780288300273096726870703256781450958192482560723076820872925651972799889414451068705481274463829207716723383189738863118373151477311198912347403935589258147491323389297094074536019412455955838982510255593396396655147357621503910977107171393024071632020780351425559726479593082002557828264568777638244138629495298556131894812726580495660381846860378516449912276859682510190780262899003480773988189387131844039002588923667225918885406668748894638330273058982584775379420530421450549198942048713067619279667992897071865232701179641464254409756068260589341612265717153650623653714047287954398370199194510845054986680722305108002746513778165218295555109195857994686128641560570700297190845352714707632178503040768094975245213702498657648368437242511739028906527381163860253896286349627648450978313197365223132631590775693608026136404400654072059010043911425648458448809704660103716332008332014522623896594770842708728685799175638958629963569151869906500231474680118651639097130393811420757495286407172304751284022660326603124543263152762549058951277742096079236975067097948162628463929657162118970041724468652317283852774823403914687318536188376643631260457591510876365858441369412543446868666960892096035877875842891979499563319280328250039747388805438799182209734118229246559017020566717781328527067941052864387941021108912940627153122514386309551596061373384960019583077598035467243254702702179134778289932828098755776854098091408377149428577506263069595543798072380647880120159543632763009565296110601295470181600335794187425903829713221425313113475750525436434814553581311338981463272440680760975055227321529107187763227822393559620078402321706073228985567045956735645087223094294071178566468991389918959706279771801632715634299386353390426226772630206853735048341541357058660981772824264297442147310996331825011669277871764427956248131300716583539718915523103272491219469995927941332531029407821477783506554502964220102255526050472555684144669556764841276287030329673339445577097374533090844791747963985490161559591965976566903808781531859591825851168110014366528978700548046558585957342224206175949497968664544847863545471741503932382264072197745927854783631359533207026019630874976501086821469023808352662139298616884355545396826164901408674443047070339819700638335276941671766328288483812393348069987730334295288019335689564662272145933588410003860078473703899329334052932634667028514987318377038536208586298068299462276971951811284911307918173668844024195818022158900229290473141148816736248867409659666167013722376954354612225947175250720665349403497561199923582835423690807214433268989454076973630181543752349725481800432144765736284520074284724429786783242220596959362066859361060936557222521757698527525400394260187722484591559607573155784410267560563902827370573519853333655376524483972452496002314027131488649663192526255789169405851218536610906572639575459165598088532944006921956597208352622528473015881112929271428306688021978360901034597721385625118186498171050553505753160887482061995494221393325988338835010114311186628426761308756702109138161471483028612542565769158363401496250429335041300457741504463670906957586611333172449291660163914083309864653248498951746109496944928157879157558844945474055189951650207019840290706776247125747644302246855635338170510038504312892502130619282227499075356814342135701680420435993553201632187161403622721706228744958214233465690261809533911881240719585802388866629675755961343061214356666465921899726200095092671714373610977460872457647661141850394024463915821782101588601381307966617812206004862949791037358381215267771655052472735926124513216857276675765161250722289797631898817007166344823371225404293366265057133814093622691041599246389666938331526214034049996514297298369911553786240811079961719700424896454643037271727498541198442552676152749343730982022036629887115952514764412559006382750263235798291376150834742411044381996947211848799087157089177348766907980648895809229264871588148760661673797868616130457849348017894404697925881858017791567063731515183222597384801751450624107470353006585765971024885129285654186360020328782005046501397762779271887648589880674551407940071934996035129086088360946930779730736609663868012721250694379027987993196430636727950526782641273226868840798076607514931238094697502932580634849058306355799362269811800772821392814792133783853191264672209619151417917559356052594510011406038801537830706594595772193452128272695408096291569151620131666416219408277140001897550805241790097794832709371823770135096480237055862602861450212396856326632191462930169465287228411363456220810057589306558027913425876843400830124446760542291763799800907791806462225718527745974519366871136006288346734765545991228921646736969838343173971174480311191908305620064964216842932877292268143330670697144142695417887610167038889767583703422181829087247488117554199627468829163705480272212845430991490429774590676680277696781809381361356790227078871491602314648403265109434562731322363813505361298121993035628370006636941382353633591819873547772046202159299034758081821101024442302294249396670846879484195369564592473124308505360580623168849033632535305416646562212118413333776580337078040330470140416132155860895161082098958790440057387264046158249569414386092560676902208915165005828687882217122470917432640330663072200041399272572088902411122622888630893148008897540368352092075692982837026590834737539276415827771202080086505342948463406776214115690382114539855843738664986667579387751829512601879683034331120371821160306015489511262692635477381993679594403542649097700470862968000777720874803113624842966503735342229154515044499313973498877219244204306283924960556054330372842661910374357169592262095829180748284023937407124105163268066236247972574929946388208113468597386671004674378634060421590775718041675496742607574764266480080437165314618415177241918339037314935538580060405389583534141794754709228825956887991932382195645846128240483587520268728638792528033675784033954639872351915131407020301765139400552386651444099591568255973718259675901697632853577423741662680234446231041579939862621392496878843696238417826709651089139703805846089849601081585364039027401220816771612057468989716849071005998825116646779470954997441197632636594735369628816987248417661520231943429213464980651732595981047184413618657656903492433717866770084186271363178655061177990387516671836524690622125232607934907715916289540966895460394665379826501916660173851867539577070510341932022876177489461758204340801706606788305270321417119208624027077539232965958160207076428983267384986497927385379473711489708667143435616902173058934018797701992492833375907812227089742970243760290211235171874433276201910540559914943149510021177309890892345955792056942549267039138179450890883439917135089983913314283340714291429625782325854632254947330453082992033457985100954633473700030040953699756457130087321746691299625811835465360179399507587358281806567174003458054256784914630589705493267779927158429092363879935049074056117447785365335166750094408377837683110785812193839150341749896322212237339850965746373871887607887956870402821904772155302683909187807377048352220980479140756753327168216889435917041251722316015451474492655108013814141510109514355249015366576954461709928624665938290339491926423056550761210707989986664548812795033535887731051701818363628062446947259394699764214134431777726646368236953167737526738230709641988801512068626068387143647008042388911402765657251573820490775337764092082395548767112513013718015605896693327261113673051703835207640729236864360197572406054100315925476833232137334200301395206250321682459355686343912815095524218162311553833556409714912540624433058475104437115740668050522106300884137200556410547332062291590729428608314569054467322887367293253277830211260845853922865530243476678084355183855579124191079002966025086505159963235197329609558002309375985322888794452069525115060056764496249979356442371926706431300166843755102014263651860456022456965720997776985062036601606568648577837952556674869110622166461515968514560122775969122105864325839828728490459778130599284284766135085748639780000884890787608005784142047282966088221331738867377107236132727005363075256980236927789314306177034515574761642899498260813470330500159584765417893776494727935782474731165920291744122702991167279744462733494158232232237304595828419680570015829258317706636827837053462583309746333794273904453455807679884248847679657151043599715251853382540193835156367710478287970406507526844491992767207899119240472352674691650635613011718842856828859156449445321819100658200841006432835587944854383612916737573195678607764480125870911994698304133613828935638883879519765862207852346897932300503761831263168619739362049276593273436615881066292722492123112734143724382391646035371089142379585006951521897963999158232752370090366847432744472343697440557729725413352832868372837065402067497232804136495246002692610995059550039159046427102452198314889513748199496800977507563516379760621779416866522256219866816854105276207794034476852436342210208393298092320572835782038716500513800933790727623659892169222117299403152920138084844068561002185466268926201833182709495714362875065862833188437673579016673890330988317564552307193134685215154426343241084043317699389667890845972698902154464107263178242973775779206927732488136548929624817844875749561032510589057203609227214989894939445995834191221035814505162866488299877474180687061425403653570744492720394373492837783166464209252248664685082457957529760425476261161418586325131675033465630663764082247985840979400811589727269079498919197503956109606871901374874584552174340629037532961602156880244832441444393875971244771581983482764158830594458246886714739883441111528491634941671040317384168653177056318878164446618693584063743794969251546662048882627218495486434870189213956545605382166078482010124086590036395223920655663894478121861851285643560510951715811454880959421872166804038839084932691398836845273057729022870758138463532346676989336629603604748902277084681881921760917324999983302991383009487485258450742064999921008535201331945513298780604659760591574780620069643324032393239943414381085863643663337201531569306384879703088627820268098483505806818248415012738303599333113942046459589244788810959326906261719758814491445286425851486744857760807612826577416126287293696862209998682137466421417760907098387378416918025553439661191375924277303822337403886272011912896199026169623361934702930864597516658058321359801583747087338020004327219173750441764663940949782394352241011883530560172375292856427575611234719143175401266335088947670367359259288518195740059443567055768920903705128487381478677488082008450784539633932753714530333044476751318042655871663687457684209929584317251820597131254449249330424770043746998035434339235511725417310719265217035360333019578979631164985900442717218809777117287288758323341456592577162406932868712095254945358946973537959616710700600923026057969814809320739375969204031352451804370672164749592621360142482563165525221394368373690316711215844375514122192777744649252466077631685398782739683268527277381920295326357321856631933874057050254148814021031516764901257167089165763806452839410637415960304203756263916677789546642769784148402048077353502963753680134591902031860191048267862036886942723178115428682071097414700120872972933488541751925489829726985991014077188006943818705832039917407181795438643494295015493822798623551019412417507105829293894997082062686099654188362115510248628273180812334931737316163898384756081518095420690173140592899227366658053895496991020767856578415762622224815536492475107586263832249780934411622389947585819288025690161208873176163757912179747627678203159960044127154821813323445186376785588333514137160443231567704585080512737670632203280264005731317245591677040627272268787879945089140344193829778762658697467621396335478013534727678876035728595629148513520431870203285822491919971592127692186655691377137535535887689846951828736012675052070138276303484557754490915646323773487756340365857327952720872498783479721002109963822960185524758070129131509478876630252377571850038113311592426863042406769219594616515889287720066304646994365894891783020654281254178915125902125420998662734463389736381419754493282619328897117724335232765512149170303127270380302483689379015717523741129099034121536601229816807913835796397543036698421364214639898504373288100811654537676557606283498875271870733102111094123378629715272734727759614552477895893665578942861589945892861816652926670368345758743913796695777557242942492289956104679498347894944649771881803881524506515616376538070383612971308720447676299637642290803913235557650532862077040166743920879240982223489712606512314352940111121184097576624422188802105133741665810083914618928011402632543617062236889654908383776782963930520299051026362664049603864263555654933547613971241803030631306788271548554171026236290700465790634686177996957058647508897039496820636269749135639954358883797773711859342049922116451053929796367580396042283172376901018062393176753270668604931818359366081302273773727288772954719281854237320938071328944588467449514089707709211382470857151743337084849835487417178276614568916225334202578269602201163748264700912496665981850455105779910944751685118583863869783352415499443600014201466980664830369396671670272075153432647321909726320935186494926922206787188224028759493238711736830393224275239650558954684093360965997074073747604959343554590134668767151328570089574897503169495582814896042047282216768731178674005734213116400727844702331143204291456778341766807138726632223646251811981399447447978522893928333422509637280283597871170545985454306922961562318361114535332417479559329065210412845211111562385894631778351876753825422637746791226417828828995837797055921653063664511188925330417335331015390306676186750955397337969598297916924650667779446184453873814556028808024517520974449875353120439247531352063479980787698864291973352562467943096950879399546769605597640022105461436415801724948363688873754806639466507324366236100543424663713776254700767964837043679565918978574323021425924099478542652667210148132688957744593117671402020004455847196928400146906413128506664419880215029394464247024785707144698837552724478379788902449068194924345995107985099599197189582896519468388961328165595801962370101930635483752084543364424746896552063016028479212640108826730366432260711168503381851098147411365403700995646741952043482296045465399804387408339713135878626364877963916343539761079205770858129853993838587569137243665893793282360706444545552198736316439685369192140611133762107691092316304480704217866845574076765187685461727701247159646920189065615216979279265485599494410005435785331080801032680267885651715739329200959183467435817067467924132441639289154303894227241531545830280238161384815493368668384706670680348126429351523300231237204464576020956809710913206566583496371533452328615356788571322226604879143516380767402854576004694606824872517047231877442525222291675375020355739858795793703577256092448183656710959812140978161067807415819962478076282402174082165869295149372646904241933499968561480686179092341231682342306337642449754582088099969089079239765969565078082687759553239087121843652060659525094947197901636158982449661176720496188652146831372369740302664935651837563182533567027371648724482950516227050801416223241246978030388197818381233549695869242315767506618978809298913023251513358260652194689903786048708023868954368414648321179203913885877676492045239619476351033535979140550618280602275100423077278581075817685903792009730179522042909322232473762578311520012363599832396103518884819377830397117427791223598785357397450174994981089141393436247142985442498657621015699219652263439040750210023852999514567930187376162299448799782721458501020624217934278440207606107558612785898163680262430302447767936715263698536519923082446661295412766094263313704238223033024514237795694670896390899628981677886412481615160205278749447397331651868185080680091145125304276225981283238959889091859264918337363926095842083524241464139971892848605624935843022384660632759139950682501786795737904650886587850325380118531839923033787641656476519777236011426365127901197251432690935174588212748156077789875679820170503000208630836341480401634690470067022734682574168774037954162791997638750333354943753065397485933637069419524032024474752599570759862904592561205198215868690702264969451068202673555165027155136882594114114734308498733146417756519049873168647920737622005081673592197220808831657611484987050788879464894537374564544236042242111908672607721119729771074639189012079869490043669462450524048026051802119016757224426532762920614547514951045532986122411859699773385777697761289402815783639836453389038227325994395545714582312670212633883891952084107230650305060260261305886119578116865461258583884551479703620216593204193779785191814455126457550852533226610550817019957159337768677062072159584163641935893755492709192016177300647210818527221815098496539933259782948066254133261195998033652371301303231851691499773154650105507963843724148255273620995686777467695634894958692836093668404749782468718990147066857134439042508815463389638374855978056453805622976748494333952313102822817745111575369642685957365120693830778962314826959200533549905193747172790810054705160486702764206765990266285260068849633163217184014167015623246891062858725562275431838687688425815311781613830564516038376348212021944005653474866473744221106650097062272832344341271062807884118477609740573375314728903640180640029983440999756641501546567207977258251971839361557521346874937989208629602208696754685955417071828857224906545191588768291786537363869167686862119897700387980260918041118576977644285691728941155981907253473609545268930711403812220736998692343274549400624682282677105844620876669936921555350629079724092198657910378933020002576343740015499103330850299704550917854222985411787692254862371023919274661019646844137777217889261468428317849376302934108017975702874865160073621002721051188715757201847150429385282438480335083855022270026174827221011369807889804912255201097649513422944609812852700018750583791969232004140350246204687037402033600257792885828040297783410279965577273524418659619670645692636650403310640583340760552075419471550850653189122951697802331877842169898896014627810495512270354536318571513515331186959912627800930942540835601360396307264766560503816873523037503700623341348133685945709755360927433750370405151594350064568981527195165567633029674920335813090825308104255350789650885075355423413731007901836931576279316545940172683170259372815974888597634149128517721535587528639592757311635637162799546381827611366121945575781611671235439830336249977495570590493367983549944422056157704879980316653687862133177390905377587115147558759797806153759562874882393566357307844206643040626854154480755759011646725426348070510819309900776793280218096714186748965683243737829318024481040878423587722551708009814126724461936066977204209931949840159128527217221366866259974175203749182188913244965300780126017662830745663872277427581392591321390356099082741823864245033526426629308357099230402144782892751891313048492921994010401793388962041036391779741803415298746740154336432716236453367358867616863422991426672822138590040669346902662242025958743826982570003060547909390362254784721004624179241827242926295024203914088127784389056639897594309871061482796559200812546019756974979730866309972488467767481922392932570475833178810390125968418953491771657007856060445370942662554474221343330599534988078346790414043617085604668510976792554123765490612157918115273996186839151019334190705887763349734186512186543227776327585322473362116889365508258072920136856361992444052272895032454146602196716712056470770264006138346366051009075155736938318392094793335265401556297035896875532199728555650714394469346100513256618814797881234027434453990074704754026569537394294758792463745779074556883461038799071428853733733960358055080523722353986442281061421161681481067354549979126212396406297917184378952962612005566962901462918616241145035440670519299578083735648697570279840515813085409394944507072867286926403328650712322053988095688516662699762804095810367121111391695652474726214987329469035927958879193861906574375656184984606150188400906311156415066718435597182663474607398821005877464728754693439603926647264846586562127061219795829887326163335461743885447258875401185371270249979229413488675663832159212409714678953003941052233319453036264594948449895752753667023304158543694145999161039566315881082543451727329561357543824215852830687746080276731277302581425808416750069323079138538545993652116712298405301122764673507873570810121333733052049902025256606833550914215131912053803736973797450771645641299417516239163069455911056577533466810448964841906726479243128324793653560613499869403542627977440073983463695434644261974240306713063507054204886665377063407021358729897906340058217594889893955301222236989192063206355731403860180584378493129980287847023653235921724089969568371574723483792590070990241750788420726478047671412198120237344997364822191660975495310312660995328641864003469040595519547671650366352762438313837308286447869288375558836960200966915407578267899560675195942830993962937968191441630450413658551818006602455562929359851106510289069780278532497478792397242927147915505966273692372155802013093533209834077886203637972515886535586091600495866266703382771396074206783243629986444694280703112416496256790129784337074451870083084639532660616700862294236712397277189114241652784300265839373801244988517577719023929305685371674083442014624724280023372910245458636549902188023038953449311089251789864646355367066127381087236020197584437326722342464800082359584681255125617675037923747072829462659084851881908201629820683033965119465334841874887769816811257725757390619123527557976958995661184335079322250115598671927284530825282266819795474401738547175788458803504056129580093116800202394647846914331999365466309826054474888360848176524653443083839253695211653617487885897513214651766026095869784301645702201637794609688119811973474889832706311889255945644020978651236581875222183135047937456394192887314905880288074088173382624650511880937398055524928928859457980361610075340562977440127915616703164742463123980371347437943365872588009611271079631013932866484853403813805906807645532986155296028546282632482450504059837888629943958499951065125348941303980934044453282564642994561482216853001537865568048049169503200843736720169213267738911281064857796533663646420461176936321831681818586896780522453976179822296941098312554240133709300072029098147093128595239517350363637779555757997123545964712086862257876596468474663301315582056154560858262730858743943356269011085036006539349828090322912941137182666386290203111641231601861757043419110853060401083154900459118497608637797812018183053315751015056328717664083316036730697992842540930053384591080432621710483938809115292148433567709619670468035004351379074728639998865810531082512473920555565492244896582390673036138619703956256451526528402057150787468243640520709224344422728642110932752869371037561438870536064807479046219544317006980452872691248333861955137253700840708200258837495475994865064720508687520314575670596407180952076804481598510848331536454815479065524734868202580556544475578213960812238383247026815712860343758087943554561056468451716944958582496413995690102850509513312015234025244680893731440521534436629570669613586142767821920688581213558828223810429625841161783536290981193802272642761233809753182266793920116438369899101360044245465697194144851302432415537509638746198845214257523343568360251267958897418506095255793470774369251009619011728837591172198901622714683939640644051974983304991730218987429763855474989791995026512289029623269420159512410017769496684606939046271855657041088724882194160641218932299800939614275183595785760322281308707130087473573865211920336113185602843127689003817808102709484926150242239091975693082673328276455009730328778852093382494657243173395261688242678480528939399467810033820731626681553923917228561332266645980765231518104312992700323302192547285327995670341776758442710409111925410467101441697797469339421329610040857057466745883455748820959331158743383737454744817415202956235490858261759012774427658815837099014575221305581906369264258915975981755688599290022010136830626247883295302423347520665942561401542090320410136683067207795916624451165849400925307420098308563672333320549272099954202333040933714093310783219984881268025588558940429371500498832685544470357901581874237031553508575896472997988397942825032844068100716780914867886514506486789746104026372590020156787607962563509265885066054179415764951150455581959815185049659525801064735051170745060612063249339213884597293827216740551674549709150606937969531283217373570483384142536076772050625498724423673700926684190212273187277557306699332570503050865694141005862329905005350488167558975903425198100095568645155840812607979698156820375554271454252603156046511643171350761762045140180926537003657872598784003814582420260984041135524151706211394888670967961134494776764843553632206664569376245689952019396995108905504020721642568319947789099787404953243185178075494088243425599747063189791457784551824294830865985907036211904071860045423761590443312204871430304079999932478638541303508067878893186415075943146782699564470838072953159568399971912948397559640639460393274660153322238101481327581453078198239712982933363750810241040265446612230638768803103114978797681802388730063414321594832766332669633158913398728345601931533373418996869438152716994320098767259342602265132590481375675516216277992567361614475661350261366856196343274022643911123724176570890523672517078286428304058813241586100818662567618324253161690334461457120354289830192617090166760328526443175266334953182715928624602232523501416996481640919754363535853341033617148019654232426927606833800981411934156379773930447934455314471141252782439542275724893707928083061180016634075039401618343590854181772987711548079988410434436189101329043692767605714233434533656685642624232463004654875629203403203283427621055617912234365217865403071119885996932932275773899785276876678525739755725717708087226143164885888690620767819001694759237180045925385700623960447322541838367736792095365378437598204164021837142833311336151305372364407414634267097405795105896136734588200161842387001812898397333006579134373260805323034472834611805674866504236401729674663823281081842512024098813933099180728769351094349528200894733203256300050259697880474491058859457611523966602168624610490117248235461218370043887354496474551943665366981109487795394069031137376913118954251484828074410109183400330621075662283102223220243961204848299017425421892028088928312579050895082515565083525281370478694361628110951242089006251488143504700799030374820712866944690205070398554626887646777536604794634072476328454973924961174205993087372320568119241297099218402403264206433092368048511280399571629455980118957816592336634552355922088083574002677554653553394745821820882338053054755700108440165231954202175183824706035502151258347509619573591642099324824085014984195903707574137851642709853823012653576831146527069697013325149022049063738680207072763193686059608309455742540131842220624064318292176819981906626279510625927095516085336594896659334249200519709370696120563656640685615921782853575947054660691456305360388309302980022912951698278549410079579927594187237673299422578269366746228506295706987046237607704965138881585068440539809355730120731176124626862483134739770778895599532803368671298419145657786198936117375904631136104271235476861438217955114816624449306627669745750826966426261902201742090827773393259507227138360638761428730523227067270642634908621773199234326599884752230388646101133547455948054553921221125010363656591963146776649494524760209422805071712573930566199806858326190075474317448124060460607030652500151126169035899936183006395882740562186831131737177761483234857615715802591693338710456191880437195092717614372882571109798886406335178497805786518334506080969916932822326822381151841530975853578005300005980106739639280659046622272912983388676875240952895494964266998407949455478341398213538672334030362760982724333719866108315888726341627085791932562985387938048288705202048159055882900657607165953463790025928813441499829686302687371080529583281950537760277815201135993871681202768459395890024964510074283481446347798562933508059321819075566037226835312838918388029355382374505137249859659419334849446760423716524489798521183184046924354509409047140394350994581664161920388220026205815646051801398213406247237417303334266679243605751708380046833313461534138786482926290780400215342428779650175587039911522206213934398891964732300313666848643118838760980335488439914725291720831497494435770606821833121105790704190609527683300471665149439121433270931180067821054731028016327638789721301234280159664507965235915140326764187672433879100329699043304001709054015191682218355186491670650443637151875786342958137885937004920628910942718618643224328095796993936546799725744937162578688762702796448864007500341279832620806599342796232034750166169887623416322572762049520877398268933279333422477460042410163812374233886717727931375533648388512365434837990824162033151226997574236120854155011688177788444693363223500203974078270581007886611816520109435213829227155545744637751069812125731876399386430101698001300874461247826311139958592263771383016636913410726402312133923413902640276442839652161902239225465323229462528797448139653897261538113562643878034305986174163335694351444724678619838152062454374756066563478490422497427841266554998400132128166166426422155130196051942631995406961086431781280708033993223818642065976696378933082865169880017409136232328542156079551837278054147449544790755315043697328962057633069280064180772111053506616626349006930348933644824365036056358028903810298993607082420469510957316819058660557913165904424008792063572158399665995280972685526347680200017388860788720803774866486138404768685888330941060457800410006543524264454847779356228930184527728143669824609706844460546232932286011357050466395649713330338823067728588866870358301608654601159608497530734050700760967072143154389878801080431281022536422054195176897521203807932079390222984373524442678868055125913710177163268063087483857314996895316733087864770801852545329708729874931405423480205318137593599763529151671494808659401162283894385558218345593898238761395575004507879795966570842865445461981353945866770001834824660148136343453265231480474818184666135907266579734857191337310563181238304067881736482293048538689799135018382520098481984257809098695844102992995146221723293531947119726654988455435796775858898378476653463677243857273651193355461667345671190043753969303684658579050244231309754918558797984640240234948464269398746870138156084498656308193243283660931251825301069282847408657408473556482844768840081098285906841031165938723107998824812959977859635496404965817042088806284385336641470669064829424809641684782750766764733270268902984088889109912377256234983383443704849056110139424031435943160375452693617821574264586420289644346290412363662289230745755102914447707592863051422419177074774550211468784921993116003063046501184906377721821992699790322050799065871520488158452060395836001858320981661083963897526562436357173648418160453688095251147891763054246959273575316188750158664429791228490767839009133010320652253997784454361257251551852187988401862920504570400539192855393515617476939318533837570586657636812782441751287546793464579877131209767202570194964797291977903034516745161395738148563562077787184325796655111665228373816110090760224837354729438820349239790167172901113945199182332728099741878186280962824346779539198539213922136982180274712243329985534097536118899764490678739799696079896439384659988532600816427193211985387653305777400663080379330374291999373523880297054201652731964152496887521991197547148434439151419987244681172140061377786237653109970841332316563262289997823102811750316898051153918493913275502864202347411786373914600841339053078479495740989933077019761167696108140444899814463367028403756551630096935166163910723323797977471877415166004394470732865762532231056590030483490489809300982098656967651044562219273077954896913042649281397228642902230854730127184009725577547597544673967710899016920795161845965658252563301532647374826357049000979236731749836952357285763859116847808699701420204720113834744150050132666529210976734849154930325886118084155932474401686233457179617282930328856550075339984671523464697816949700381233032360564664544963520295979787888704457512119536811974654496545506143946287273637984456563290990574675462787647500174867357357243732453920738022863235726005751660543150161715593640685339344229484021761854076622280589598655087524495880377411231009138555080243554045798201152636800566167521460835866079792180667386520032885285817571280373714736195036545173393869129500717461393767480884546362389830773838021925448793093034939647879333288141947203535046675563524297449254858310363701718548992649479929794829947072981471696440368874448968482191341842968839899424911444072346043359683581333847027876598284942108572336380508577242458385530750630071086666377061720810413017812591476791443842933588963035421154473063205961783953708884363372800958683297025431081529210924055273331405936179741109062464244345239849518522345147014266559178063729071337289469866167734696025743376388003401160323114093117162921200075151107151172632480482737174396621710738868776255063631201283895961621178353675937886269257755944678695944278014629943283590901758361849812848054304315839353092045744858949282108351827083868067082260270775728943342130123623337919478937618488261708608629491419870569890394946742470137640425493392083820427386084202473048827162706655974794670982809924890962098561932786808797468612467468923224111440805503840134675580444465759569636503625930395516777531005634765320313938832056783125784033942687868664244748069413025223804311667582249916916164273323660242598143089957348236227693403782570721384685577472991920703331722632749852180437849289481467282347698231555235906172887549196366478452276911530740934484352372107730703383404188952823309002009404328139804490620564743328878538391179090945768210365736029728220476854981927673657095172109146875961902825290816707144597877345435057123237043370163921669629839667676964348978417141674867548893899692997244584696645203525939501333837650947382983574204979572914683179315556006012766835953523539537774441545245223122507457219320770256084972443603329993356965655282869689419419144833094635075195147137436795019725702760169502946615398803661265510350918257463437158137218515420329730943017322459762468865831351755161468097722072811823579909463896803152083518766789374946593481149818270258394881081332998835906620030686083819562031761320254720330424009016561229426072373036363042613915464672655211909738650062905345792521634345360900879666730490637743167568378925156903814198406261966992930403097241753210711056926225624211797370257233860232149325655214454831424752080774483098725207141056743435973483264349022351268809535204104849629024481793675500852111323005356866437828498274543396633309362698643580435203258030658250829069433840652895980807725420698027717916089383759178720794295884076044769695614758254492062788564332809702575055403376517040994328346371838609879598076895837651722903796781992865909149196523151826554761433167238289963812534635287631186190172469861275805665986670752105383524944132777810998292271113925329040049116319857235664929504797936377234482400695613424551632736415650088718305315100322932169146662156868116369283302606764308607948826692145364566262075041714758946655208572638871033773083966872466002520821142741353692974963820423637998447893083559104927240991065705283774315370866862602351086302920337645458461106894991410099018507298622826073038757185646057053778734654426926605124892200683726103166174025046515564437768947915349313572797405759820337073560096373768547876784795799573495376871201315743621384467907370357590214445035536841446311433183327929746078357167160316368622574509640427282832295525110348454730230244430682053484944264671758379411225904106555462562972503867855718924398490298812913911274178529436655294062568351856798080354400504479588522039363294279610790423696121912018998923982648699207900142303615791967501952860676671033394576377704004273733316131593823637116720230103737672117354489666638013673377150180179132050036314960543277803096159737578148940029385648420580211951696912954854781044291412200747675224422584935994190962036241941447379001095473958315586874602471936608543580493139214989025637041582158199764025251212638349127887586121298843951145263547615462955080793694469128612234888700682298144009083781444353931646447262565653263541681654237390515637181228180997902081147952815778953334731684225999396211826135482340727081325351238934394160382226066018715917248773643370932567137489506540741276340655623912489792695179664130889426335904241118925546958043192442507893820124928807371223638202325063324831658106668357147651383751910591548505575901064884680465534107453252729637182381409244568495991779677671310028503206598028796808317204569498766275599331814332018572839053940988814592027438476116468689726943844696934134981509315122400926041694253630105300485310387965455332071449052567411887684093163562686996886609028499968873114395862864984138167860905471538526346156043600361203424985571594155588673791556031746662551185665420951241080173796733522345461529928883090970511583341767085201883503142734227845412053693557592477178944329879722624813859865571369777726197337603045225508948615928986865525748956634438263651786276752856579484285413494591770840382926320482766450521300507210276720408099972627088054159700765218529317044912650114295207361853506703400322228287671787741989362968952029760352840418924731141056716553906286016845020097157327089692640335997770904996830733245034833679578203033167780115852953159124161761261228796359503416805732447907954910564968292767963452598306048815042659343609472560402313022879577907449443823466058437304702074446283046431448891057624229202263966715018205341001976152381315241289893720817424526893903058733525336818856104984130766402494386015071562496758554704001880269291738652860734324283309133363114663233068967781583858470971552334892302383398522832123246699406029035449707379184811854689922080907260690933151103797362631380467745644131643228869377948197349931086457528004937151806225166310347808531680185007313776919608837904784597323665491392515793601180587061888498113950235963782510432648860810682696701880080487487993508087606643371504500399095760244590984740615109816623121687652499335076983634926934077498303188837725828140054021749726459164661270149565863393833512719485547109652602191840611283904190394962362449494696296060924857982072255328740415930612607282651996866703491989314839831190940725497889733233997499365544871413299156487017993810400242377313592380669900130419447175613837215894651623333710373708418028630655864146998353658016993937916380953352025689386186448076903565700356283395665172674597708003102005719196704273255210457541593320140942885438214139745216133744678408543263062636637173531605394397294189273196753574631033692431487703781293214753498580515165971457224451793163461623593829955952469291402920870446565394044107531146427291944986207789925809686747114996722568343138056523179403994893807214035846654673796222511576109193402259098077774457001647061986582828165754092597845916705056162196721354369570537040301646696389252276054153902413040031200858015113423378955631893720032462985395892838301795791300204888351991108325820470636015826896379742633651454352010247675687077704455249945483058781993220447001392503691489945953318667508892755284292013682584914927829073165250950863952876288765119969785454244706712349076008366491366322542886449193684557169668521861578533449275400635716231209157776925028091034590563391988735836133694280635946006577429027651754980598078776443142555848789995421859010431961264834843665829821059637606789444243593838520952757344859094807087774245384535784712409009667711382597232790231062451975632497438597023504217984038288136679893770667983605687031352442328088622630493074592169744787261967618227191199064020285529319710674629100088820420256422785467297896596265350821756304145515198318113189520996942628498530940047487533829736614118259176966521686747185366971692108671270729037681858379950090552729301168441575502321408210009295734888996952371392574193490956817446846218742579838727770533849196575524588234727873591941044145938130587939168977177461062474256898293635260803834804528674342189221129192855848287493812744159489808846438137788087792733854905430751413662034230947477096802286923565965000521068896138672952123063111298600248005666861192009402479640794703446984428838340055553954481665281847205861897591549289638878162796251120483878332783070882104889607044280761445389229368678355339417922692004374955800072496394939163450705769134813951378975211828442283320805373521463369335572256874973446364132297885624937672724216592912414777709791604585443724720141290369205878253516477600560893493602635821083860934331374208745305980364094424091629828099366829399808713302778637398056944345276720983338782366883847830484118034486975862912886840464587328095324328095990522027619289915481816632199611435300455813801432789003414481544779997054917058034568814308775044732575379632141447337629365813339602705646197464507928802791424889151271775974076793574592351606205081045563986201232661206889307474289578871603411572782911995179978943733318598911497290824025316668519427285492608535405615272860599851403827770179684347427492725634392756510717662640674435426295186793263738782241723623360042260223355332072100668505565627642112045686390381966170613767213483538516599113090455927422645448907030885735068074041420554513351151819099099602905752355004411856171729719528403707343358702271061595563946215107174119235581487627035010951898660882114328439657694318748904144109498513197878497399355959803312328713604811778685639023427551466319713325290261967952595441965514601466328627322887669390990188801175482906167623320938050319854418030526721660049355330851916533186213606189871300243291673979825706794897314909575412020405013743999743379037679901219976115175232168967721165291089861664626140381170888658148742830009304966321770328821587575929456098266918156154948371678003265396843762845099491031127545658442636290517572114790712499691631552885473213908301404190579176567713488079145967523545049607647864996501863015261923192485818273872618391411616195917335298558107701503627320099882109105866833099825573404724269290934902908211833049010447000554178782430101072494189150192024264660251864265142103901114012747409925839753111473334397485339260113564030155327238091290661968505304062956485722853148234750083370573884471882570536962721768623090115749250073306683333805001540184859738349934546650366415577461998404934616723631066367512695622882133956096550758587770220787365984112157732852310714842684509387440072037831618929819020141799347252667761578456814831704372824665687153619189202563282282386749032889075153078068488975054240930500221803754816655292898496557365274587801659182322174924355745992986159710005279133452966413811351919981670360240041990683205108987522497996816738438034772124578615845921790144526252593270269721746528201921755248678189012546779922133023397414318044933423097315238810560272665859939905008220880107376339826279984996640759943318316445137506662503268727521862251454985883941741358875129371798453578702192526157212642022598944288084338802976528611917353640609518643731658934437896513937481424630823856616803955206437298381681337917472632175417690934881857780701296757759473702421705444123146210129336411908325660137334206809503877957499133147051152587242040774147076352000875748764458933033684194801810743966689442316361598311456986959730554791551526389787792053500161709732329338299785798450386547362142894766734754956328866210719991148298202665089858465685370320096315024976892696636349823176891921440734778538899200391831364631991840387112795554503455985983977211670412041348215122486160838009709824535667687636891486178936573641715304515004306352678731700301186360479742087505630438617388524583482079871737323930860698523210228418485189653546945893164104430179388184019495717350821831918405614591683312139896109963901073046057475203065457913234670621029516068753464758562220034962804807507818429881812410803920644582315197577965422866019592473302158350504304862425927884288707935380412273520933237931296283095614590125200469130654652479713170362831426971417577507103899790004779396923426344358118288648114162460983840041791013048160958068254420801528304444187508241194267688776294188042476497341261293387930682014124963930165804303979582628748949152388808630539315153172359358810755428154737432392553765721978114833066398695950419736567573691234310861716580273750487221441252300818267086634889590133882395882671015823154660799199476148889762987366702427157795130242715838483136136223448328015668630640205587726189580303705952796385914799688397159244435050780187326431934081010284184530208080872282956043776843457820253736898718060475731000681523355986338433898297635108369407195488511104921265117684978473317527097203776826527300629923689574803887226875086360559986269826509908667198218273421849004297208415710778877024433028207394032821917884937860145615037262288429873874146776297614487177864265398176424792066896521578227009742762086425380657367240927843659195674635012896720245428046776801718230117796992578675246678296780623064650169446080514570655962964714823726656904985560891196001806608433908728625455531189935297118024640842817169299833385601749421003509175280816308073402969069508973367057791693305532464229414599042622323266926075067392590358575121863009816892863152943699168481813384676095844246429822190289129965029950251095940747294484402940871072780110833835608829913250447357659361208525911143593370784340714873161807687333599070133341311705703315184609652685318861077810971519429888587460305390638451985601484790808106290470490509667683909230373468776653717469639203287337084042986731422704411566547714628752348541395140639442620229068924022526036023487297122578743931575976876473225812591394750295176780173505712915553941183843169245832050000257004065219201829013433958196056826021418588826954759270197806339964030865436908798932173247283555867401380159076146624767614876573875271818091668028317042644602890521186815413183989656163421580164577859467992515290326171192194835764418993882815511613673255439037480349334628259301809627137587365236106955493262419961127456594108114758895130315736077169244402352557694150266559272629402160052050265153465966415123942868852530876189850394059636845256071995254615770116529488630927662009968732499442897956930750876513597250113705683775570578534733797807827369789416864513154563097590469009711523854890674251971484986165193284182620250070634399682518897508506591469575122073797379576361847536786747427783425136783732853517279441357754620995530373874864072261473257205476259931052632968803351080376397748226319224844970105498528578005226678206065296177233514154721713897730884110529705485692461798367876468051124834298347745259339541762232068717729127102007211390032109355424485620106819256392641724348858546175408164867327828770054615448753169055836285706915286375349108107136218649339549181135036498829255379115898699240299680766615013536158918906185000098531206240112899207224098894391574600966306099702392843192520803354253184143753094409611650867090111960273697719471495833632603249714542821623014994381960776263103465396003137108056897879683072370032500695918103053566151820431157378730041952864544596731170723214874487127207762071815309749806024951611395218093770698322411549553291555207092072190761789336843758450578288538642560487573763108562450103440146869131815649106988709120937328252790983312656683487250223015390050151973423947949540414377705767695315295191045293248422522850815201718821746720730728522021108269594039249426827772486018126308128351525597973096513796368564525839574221510570643311052650137685695611142064068230218995953051361651576582847129241711230473349533849936786374162404036643430246159634299673909954088108844906729918629178272363176852373821572718131206973317612867870324458303834766510156609770741310309209916974810392311324593829388992957352391328994101187086297720897329274453304018903182196401840581491370442750926970070080038710915246572207008066509448978443216821022234080975160889825070131546663114820354666527185836301475693435095219758891563792408599953095669265774585638878432370302773775322993952484316256766005667713617351427505864344876689614381764556047754282101632431116953957220471260755907455375305737558913598817456452144478297269829398653712590750754674250311710708248395268911946715824257234309029695462425398279576691445325080695291533850357969478203443834373340607616344895227208432391878323737016536032473743325040057584637633969706702546197859899776297995014703212738186177322872866693408306907229479260142824072502269353774505875026919195616044974404414562338926020134960628384280636368226996150423834005055424449658335468579112128091299610396287605945241117739061858095603433529777848662889104685054755415698782490255431046301016259993921869070265740747112834524771301089314233176780946556924401275151500808062013058893554625086451985648382683316099505581298412161575499954415070031176036506969409201324120366895224813375934324365671889397818651100112219076304075116222333377232131270639051335102976290132213576574213258630564715960600947841203087950398590131300257054920564987444679912793339383630043508307702097727006700764612496337601841903185014559459217475312824083802023601148307386559419949703072020011751908059264159296996564649151083428578643496870037998160763425746670426587672791754939476190535906839029966035161504160889008756849229542887649015796589273091193564417986665771498576718241456757502496426730782086112058788105368592898392510040243720098177618344410633671122982940592134380345616724463931685501076273065364659474390175701557999467557088545994588374428485599713693946742994450016640492542598979544234482067215535696941543084002463615032595547422282261042082293016453276497232700706592580582840889220958978884559533409057097825236988659047377970318516212741711275076691723657761252267485352161625695047041239731347610664442451941145785317806890237769642163006335490127218877307213448240995761438868326511878428983735345171730015490161091152128247793861722702091738502966047123741325114494169666686992018507769292286370952846721455408189770399614496893060487833556494961872196159913267647617965630504191647872881452349912035791670559687536930056416936656855003027305532043332553161947594636696279672861045666185111467281560969657383990166392878005085738778776103966410937824217392257003245445183191156586139578094615311732662075752752031173957930655877071592999107690620195022120798592967743485039016188576166700326984677720546785441766221538921023526012916018238222224358975725145715149997200777038713106801635174261032756948364234720248783805197347855574948853278861259508988630575044964139676874919815094285560789532069975031199094268773277028948619872502697508500145461536652718242647413408684528431050802241715909088825777469043469453278166560617458621485536207774511873094077533324582316630261228038985790471267741068852965471566686637817395735887568429185965286325028540912236614865372613643207764516293518995359617378405363392977555326033841457356665788853745743866134928096284335628008845371984644695006032410262541159507196229324150722712577331639119389564202744788797917394947030776314196572187267684077908235658258278038775091122802420069707250377186772004412501758793516673520323400250563915649394973947739949352952303237236305422539866405505782397346277030879873704111460933046319015072724030572209983316658979752628886720133512591095814620825535210351110875503985851355761855728964813735761698923260954988623413770878056922501394945673182089824669257855911516373471627446793685954757237557417098210393651355901873630580207427531220779403436821134094591969630867104205271179274915344084370830988457396325206944305299573505703564107709683834949627569545801953283731602642467135837553709237748016407083005488004142558858215414229564708222784598305768477021044319218087809266468616894879093348624264736468741493877270877043690000053040599814681806160437967709089172780798667052644995416645139543478415130357754485790845569520529351267442910020037378518558645525913041767888586802856339578360141981753631882716335820756303859612574361610761536138664799312288779490711388274105811827757554656775023953017412172170363408112102202552616325222691330191716027613346047128978282226220563566445993253691818870700626074146699811160683738400109776578686263712709841163043685480324054593719159885532029008309532680771008127827520076218472636365067984582860591635795910815708608648845865932331318283825856167505453169487777195588337877029812341637475784813463360574871956611664885293367051314302661573904931993268703841758845795157591660212674484497031066025527701750975984707396042984934134521430951969641222781556342112947433002190999800532724923758673607169783879749120140377556616830028558381800411378912769438721789062361093942846717991639105871476259478705065074215066308641249100023508294669258602709541358034798820062621591897345082789175190124050950402405384371434344097915904349651455150562021456991023744083791780360084423309717843367478865956620126622827681859257900199379395922766571075975798392690181211022939630431190167651984277160320076810271708377330879088409358512917723696957492348073948856317876159793001804223866911044942983791391653699240096052457993157176116971644789834957175380567022272760623362702783021776073787899500614978279870898214626572811617551924427265898453571870063868527030400021352336635580601117102089267355635049892458905323704834557193185588804169003635860451373477099896056783706608074902971416926586948309225340096514250778406772910904181900741064400317190643509720522988417698789865572056643185594992058940915475007394436272405833177767145818671395479653753837680155570509436480574218464800253030399378449672589839600165216896684587063006912091142189580324547010195184530669894106989112189053927157334149275916213246581143299906891673246261858709126329752772500739587893542507206700343178215115993281842729225319016239696524056241140961924295103235103109709915858957081810301358603392706276209664288221786138379681296533748123879726851302462324455280224570431426480093405358371389353211097084023286359590086860663166040405325578370485332632032953169324774383560783853550415057211390343790992827285767121415802868270969991190686581621891664878936691234609112968930040905638531132226713856838117674009572645929528670872319058842750355894058232426272014412981641104112179429677181652149357742435682184282504537954175282602892112501179569124146552851225606205883879546328270881575315107146827504188114747795371603375562249895896295571586655587329980819773862006781775437111708748369342496753577285634072055142144347434639854429950411497187409078671914727280338108343234312216754538892983849659552336058550402604406035771956335642633809587481869935566721750171462909323973483088895461629690837503587417389906415799612245219772276779809503687220252071917469333310698161613595887368772205784396278646578014559091585368567682478927316038337769479530966072233032176532282015837915388051101882367873019781021363391326510724775513061425686600652859977382855675143638813820106926218100890287635800243359624558241381722663819857590517463473492648867329645129219853837347222051116206183600871573036384862254706245298651666851352991330779251788105877032651580010103420606844205491693613345551764506643199699697725712117771058310275746889449950501909232177838805815658258747206908085211543815920809579084947569737818229197615468976687533571770015504004706507745172280333683461907748398674262699917266555918877412915176688917823138268045859464000408874299774441656582906824611056944881047211922111942876710385023274870863795979174779778388210502906139231329007723135266977785229888249502329247433441062918374168037879236860615117167026355697399888002843928230378504700745599138661122476826522943166005972271059779463563893876833374296094549397331434873416729766413086411384415845607679994805448040288877258096758651204936058215873697456493634496995162341758168420656192615424862926122787156802795486511625919817362709323594384970711768966723670629069497774097139354275210336945283988803115181802896663127983623446198225368195682948353054280563800045481872393565684256484102169465711767579741414686956523235406329694670244247720900712332790075649188275723737322307055086580260957017482734996055717942237178006668879388794470859272970367318609222285288341131429218627986233812800173644207847859370883125581341510641539008063172809262505384508788566892603005271506352524392247247221412909766538649198058365896650593729362759273863970099312110652456429158481179434043066555681603433234667454906371267686113229270214119002513238902967504090521285749385715786434353145889366772286029059080008081033122198392760953873934602540469634938501546003051041475034037931680566950323288361155688507091156833322549199344985842428310435357297101850648935017938609597182290611756992587789850453554180357054637135446998429984628306437809104558873824848238444470856268048904467305059451402251857624230472105017658679300670552305064895330123124536641200995001142842163391568545612447466698475317161577661094037662264158325750779345060586664732939242958684912993296278469423223120937250883231479332850426707961488327496230669685204181186702459438727854960518842699533747167093443247308574226885768945021900788711273567454662308135882720349445650234610439297296098628919377204308979556201268937024670096717423661289547563652878724875654441106759463240627615631016735165912787971436147607507297147384740224922369399844613681318648707787836862106793356426272673455950062362019235660221206273176797479733788507945554947184336566463973172949681717319998297839750830434180483312138215068802950428182053945003372553534627243372335129695683090763884493996433494463239913956516773706938263210215913498238208680015328784534216115018125502013901412593660100636236446324752906188238324722070581546227449668277956412443379713019524372522887023078402019859799110894901614147896571980927567347226535811972337154654216356312984601788415604236046343314322636636844245807181531025593226413627797661831316037209259975880007290435113356149695450257836975040908584981318419747222874935796900501826191407281234892907752930198188657273570423072728735144247625583559989224140720349064242435268437948849636940020073468892574823048844081959507801004369989892406531014439965116374843700101945922705111058664509369330915677068465191575351475467197294538442758571802482543625627275536833427646275512570584964322781806125933437323307853532435029595444816554588626691900841693809717481990794971126750370850357270645109998441844757517497437136224325566757279778561123630565485369812068718526491479646307063941805716293148482454131731271863229255412973929528283100745972702140686892709172620988261572151016299209837114185518509257513159806130034421387002530556574008720905389118198630340736671532906273866582617769991399559430751755086075225618641880572340769937294029326369851422013249629148166632283317599880893932460574920736182637468660995499806084676377579163758842453122888320044862106613907201022704318853487025371462090102466973687148543399311905221013156483882254988729501564077762023746553296475587059372130390853461181593237227857248792986036071868320539550226906863412355399076253517516204075940326745417658294762800051835160519504666702949316819195195767817648959660974863628856751924549572273063576072405902292518281141752041951457032669300305136923344659294611516911882986424928166537974998844527844662809919936666662984244484658116329031994520454589994945320522383619887090920182847676141409899022406534083212019390379518169771105906348241681906722473182298933744386734974068784745684521075527774512292725841278078626733281078163989506124288592997498434963637293824009031972743999076414196714759712834913062450944412205694559230090963013403893345647034846902863882346499897317155952882506718380505960899928102003015816251356793128408030638611734440498866438036383543566933802440474883813980760598124677473858051783553034378830721815639484469919706461028337456664684131130128183762753597587779931189901294703441392372588373694254132384467821179646157075679033131921051055286081692976889007987666857461938090041528722007109605527999408050660049904589410802811036807217157545753007565836165215432868918794343274962261179305028480456606111046848716962430984769900459547573201017372575689201098809570450601481571350912367886993610213154866615692616104077522826676800359319950786095670770241034210586318189813282244144683429539448237724810581651301104334500663198136503900120341806817028487028962908723716012564368708414238757745864259419258209851704352319940776563447364600745005306939300287194705308063408992856307754537748534991582453755782893543273093500822546481408941356504834039316058508154871453066256379739635455733158668437731204735964679576974304308336962259412234161225231304437720662498454693957123680494254324728588496132140603333478388555819063002881987092426094510433525815995055841427310697262622640249818610404337708879619850355257343769194489473896152018963883031492210355563051471056520985458075542547297347883011057355112606544984873503993749530166957336784190023133397359777002867028690660084217631494096839713638693507312638406493904901990556601569109423863478212593248217827994349568504112853851145891373871352011860528363423527861180956524602832540526738434040468048369753965331519778030348175117595677459842657428734437496566999476009199268133363974396522242131357902410710185993715928447327978852054759306568884123425254760832411610693717230502131055300865639143102780462024034306554825921841418258451158159026022242397528383296590050788294697090820369276127823902843423189996389209907239606830759157435524747133147695991422747286644138033309437004535328718722345336933606083602540980122057347755548816616033310717592573659739891001267712409424041112299992976924515598401755227280125229402438184088994539172384965293562584895762231898080023405548133990955131312308513536217805423082769573992509827490163101508521057481246506662360886641780404421495214353063306468576317037048413850226630430964569709394896216788438060749154753265227273746007422773208718599677524073341040587533126985499740577825447260896630038751432963089300384064868833759112289468336439155759537046567146796574032792106355143411477568957309214499043275765226456473309990071834408654567139726715640896491355977524120903983281923499503824327366002581994719782712508029384648683222352320130255520349661734328934792165153346903149618311717031704379624057085668584756430104151863986655287874215290219689825753410979395807807872282967197884099877928476654897883381454317078631928263512601836028925354631384591007584809907776846477578119658445886017553668793985545257616640133706679564489494541625176441732068619741712231768659990061258019633066263666274512888609383351078500375558591277625802247623658919098063411072721567934436362785728675170279367761031807192576956090476253838128217280459720780294468831768590135159375447117687389358716469554696131103741220375801118642820575703716090998504171107602291429043281310163566415489620310513589833374409304080656861974442693945629326119065998082747282815056092407235883493064119895911725810914765272623376108594196693232741094850448659597980796770324522403092845876591854773303428570763969918879635556538316429566181485626935764027237262152501791029146396107098116769838401597309491700207406497824534581046043196215752590726848660605200935603734728133421625130816392969671038339298882453943093514226544513719504978545238471264494637085859517090728067867145005479014927057298607937544164661313504905096915561077924921340724702018893515439549264172115037078925567233625748493596322830547555512884636749488571513491749533763357185537563804732655939555242692789289662879780640062703436493428806402389020646459816823577913980093142033255168325648834748264352163505202327456430837350971765218377437230120093889945682353486938766770131702453270281670024956496431672952726094836427463793136414503492920915726369808827079257529263576674254185935672136186334835267413626185193385789941200744152374281926941591822163490455676561696460013773213456793125286965853842702736522612240003524183386651748539637903070933746577247324822658064706147450381524619266258301371252142155813606231795450400362913828053314857635993431251185133341801091150540619026302316381604404732168224783363081105466815060862163162123967680981947380219926018502003129922515264017546303936662169461140143452075565466272791358205516239369311027827625170445150394465920808093162701423841895406086538231913178514199974542215091379881116294773928549389739785068790557985452542726380279092922767642198860201808968244857841624101907451668654219157125673080834618361048802442778271427301555983816253479059750829922712537110069215954013883585078545810756462414175556845436513851909930168063761582798722527320780362858001057232241004586583858696594193078725551131284281827860826510632610464144578032920569837275452586573082847839249217275758169502697236584128418284617147985827543351455842507579969276336772329941571788334879365610277416010712892376912690286772566805606932547255360561306314976492605293003893380223573261980632463441912088835806710773196055817967086561152855272828202418960912830673900242530686245412181931965844134735491838504798257235089575879644113994747804001479301999477950852975471035883859725746202999262490076737801770842675066702767945806165815730758615559988558475557080588056652440400680903007185278129253528840011060549204081133093564760318117024396852848107786694425491311247246884180466449908108375452496913804621304631629053959150126025561075841032568490797472927946958917661686199447322098809965518194163747849567187521951318585144833445943016887820684539900651701206369843488833599527042708598038834529068135127499856744047790504700262699260700685999380696462139339959489318862483437154399453753151126406475977190873744921560170056432735951194737149820006099003141161225063884215599412681752408464881503774571454278194407347843621035149471822408623938500164122451499881895546769247156030032644541349318810778774471701454231428424434830933015987406416418757031822160969291216319321867154721116211754890106336656801655536958662743191479964526961965138362649575141153279716497516999317159674902776485279010223334208568061157765056984975388350957502192827404486761232708379173931012647799593189300145458420155066708861973512077613015798598949467382865258098821770433596545801434606615069305981027736207320193675669210250127046304264373313725559760676901091551650383195989054980342944444411784407671273901382979822375616432005892021060736788332814942200976260866634337063837471897512393620466927944112515791729720642351712560553273547178472376785655977465640346109611073327062446584407410240015064754520100911543408339799640430915518050367388497721335208508034972807148815478757993487955630886975763829074730633271811684823233146010972508387156063849774796462592218782997788964231780681247378741193355137070422209019483720129436145125935256483625175972016888991448232725757788648187872929464675371146402741171020616332287279594216302274831099615419482568841568772082211975954790593951695680078090482790077973908749870419598914572939133283697500292336210601247713200251653882448768043387583853182975412318466934862474368294875102532890617501321698429514999605507555112639711789081161445364354709206130120402746663612903622907865910576208141401377390620280347325301042467960066053207478499440704321543543726735790746697425018866995279470853691203741147989023605295403311342400746901102158897977448146907816348421435583415508888636560380768767383350599670747251893567831522759736191564628449731647645851124369809057805671210638721382251004726060659304062886702165041635361619961825221629238380913956901550587884287346630185525326267995129097498761998169131762802618849360578726618983661249350453625706891615574887327840049251727908666324191847877464152692516523573949030418662748740400667849571769263758428106177310544089661926658042133266544960301148377894353984879734143792760522241622156658655282883070355908764079218257398865603132778629861413405118880408312294651747242354508237768663727628913239783121625585993757634168244743794240127288074149392817963591694342680215296941841924513949575999909307018147783975405114379798911380908018476997324414132956735437265607706275606712301697304988039235578391352271281159353498101147687529752861599072833903113335719958055584706470388298216020151315671502469380689207232498896846936340435828623308882982992107587024591570191913385188436812428062898863186176551320492648011562691716831167536066481561124854138283128684449134147684952945834536073077990198292441718963234673384978665738798556709951436557788086860386866464932316981038125143462919620707092158387822858859993391493762736763012159153836957638800697092643680815891697225245663755469197514287501936692981579611204408648613178498333087118847703235874305376428673449335815791591412035782671723205551923022782412246863059648436872853225833185674116647683653200421082512862462209425062440097241444432735949968870342972246626106556460957239879885705526364577673639617180123558953925571434500048709502915264217450437511068976150560727681749998687666881944233576335956945815844725499479415280979360625941331743459523420504916951740332439926114393080513760722755849968584512312237702367108841808958165571902600093165014051993417943741657673526816774144435015631359920282713499399835394822145536103717355289817292367401905387931925066311079222668654338471781379425578102925162911926676080647695154736261369478375362526589231923889709541240164704565417765740000434449965028032233268584032215253259860017042636296790390307005078313788584012769031390010742385571732388508654770332997853292627284447955202523113090436369078609540647910353778961381151754039817837886468983059281264155802442771661663842208716039738770317330398135562829252765690030208208612809745034566745706978112105300726184483081273834704922060269301533092303328908640436969018752967393255795507635212601665697715355667108250372041129439692229010066329385653290448895074635560988917779600270807179450691567672291762899209779367904823986952430385208338992951738969274527193903168587056894241760064378145443389528181347981886562536203517176486577700854632790032459373074915379272600186316952951876051879258452140149882440260652320825044784958761304591658193428451606080356073737459901774480864124930756713392932302519910871165201420007205760187956876106336271112584984077951452625046948316167138484648772298518068957243117212686879850827463127420349825490027556037263025922751849735752148708174389905187781057231802388423216869137367160761172911992399063398515639290416273975846103421165698350539572951051087968672308951244724032391612884412020035285289328981416955923503811007116933169627034804231388667177563160736983045124697430442949524574905803733141917098177750563732283177683521916827967577638918016484373245020731293542157858660789086092628671257683612529743123703963691561221139923382785324074056152581069604548381646436482255580442049516812892126886567298399971143949401400878070311378541524023819775271343492088529379539900455879359955837699982570242134217845805018650453256517745060625376943173404166493080829617233126934763829161899829269346062175648854435585970274303688551310788382151842771904246886315347931735137806397604356591777822630361345739346985465745079999897892323327623225932618709304744779013523570225275230538663424386081714488104988339389391698104015581798100745517624938197733511308309522106053513342159737489363877856856700076538617329500295163598000352011642754103205308717318785532832512835759581540341965222535811651491045969214251884344405494189239442377101257260436997736613812781865021113093582603671882853723290153081097406722075502053004831626816673745958946033518584913447386507543904054866406885804558895867454939967721983512745307335661119056257844281798870998824668019043130929893664947957088078968186009687225814898010158280153060808658466427637770235199487848388766585411416641313959577213371557810984937353207039111055912641025166983225761358157138479547652222201217137999529154452510819807478789731527165451896640488584624142720124134054059848214724433118293007142977489851652025702484865984003729511434883931151456379137008881082418344162245134610170648905670793886333105469770087838921913795232500470277399698340770197350088750551967895009400803958845072790765092569604171703741457306313062148869896398102157246878079094750955343087489673093193057304240461204516447611448666520188607703274074527195856892341332948771419718824022771126918200316189052388557763281392223535671239474831771606618996210042571132501718614228034893299900147944859812138414753719183180066859442573091590011600015050216929362952818895820749151436562127985554792873762658865719587515020827929882873942768809996613530167481589479920664068562966519500176745009793411906044904112609940005020780622143239821871128422602295308091995471992080229336802729259121296022226564483198727278610769494815840652450813244694185485968713012318439864661817131543723933583268296353981936894312094325176045418241788938042891093800855038521298156640479775091692363327614009773298662340817786634645071630758578884844787607962017275020644689790181122423852755263383093109526521669885940826392721661239724677785421160825358110755073342068896027185872548208341950625874156747824264700823016359166780111667797785449580918937664423151188095325938165185689346089526414745903729852781475291446597289383626789048979395919088018958491067323044733736657215061529363558917888571913184473484489960323243890620998218946266227422477930937208228360671829528925329356541313278209822136643877211678456631436582656075873176661247139070397058065667670068233135661705540877449579704985387548456071158333789140940460461721310105527987427996929006069349929866856409114503335313990059900231902090052703103337884229651679620413951510913149117956492494651094098987312679945407897991077269561349441463309942524569537943155333983049928727582225218198096910241671935702702489875026496038514843164458851930409201430748241689254859763010167706422440299867491009863715120371561208580288604252425284186203328063578163384065297423028155671117985251868774538026507482728820399505216061460125447641287413756490321725328284523156375241525151538206993118906857188905246613178870298342291452575442910405310775461827186379553266868147050977461696721332425288741018569632554000646859694584123842064707468072189269775718652520825277583737629002021566312303030414861911003533823289895112904435859718568306290280829298435167676004177656451038977136698608477782564197733784110632577442642046901537753750736001328797737942479228441152211722835885299364085563937784943758197747722590630651434473086487686355014113334402012728113997560995162768566605923308179821658605887644137486737000036141072241103594827086004824430737815211085443538893564591466272499718719452888758689784598898562482580553081438141243468489654041813570139627954121625363222404397562819435638900507301033591413311437954690188091619232508724248410831036719883668012815370767800949736647309771640889974146065927291250128689307874706572095846103715721925874036156352412388782498554781983935232220135987285171442024490366282023112446207304585648076160513552736579061119218833205605851188908139126394961270805385007401605489385852139695773857113772752507601335547386371166371610910698375486989667929929780968778147401678531652450652227923391886583175800500104355982815106968162328090492395463003339891736997275686403106319364595338268549524555620000471392761938208594601957563992368439990229034274875864787463687802307407317690493308743925058872288837190151256843914893466974886959365496437520776691602484522331148022404550391788451880190903187278964031207274741055010440595597574176325887608940375026277696144102886320110090870572595460728283925089748216274024080750274287442436400001503294723265545159350831940823014609878952609784373987368196688703224768684256098823022072005144462479604976318373050875571517969507297203584287944818440917577552361629314758937111737626237504609098522543933360614572437251812544720427678717505102267186695459258854234916485130065633058159346545334709224060283787310051908892090531980670445929748188510375960698206426281838184907424510395805498358320128649902216055928212656157619374779474481806667877552429476839975880313625016754697427903963868711623379947794821599230371839904978679812752586709226992678926412708584035517582660448512215488292004045574297891215204365839958482382108144397784714150414598013059660564241078432867025632238622822506278472532939711023117122726404384525346901631811893516392136928158761034403364210319255825883420725179975756682288263231912998124812814788724491819995002837238780147419062402458058243798489216792194561456080426306574213084638706355822597501421812649224544313380531128481432050571760245401881470974878019481278628129500293604428453807977234448052318629739482248238962411207467695456368325968377252428379063333975940445714463260362100559884144348431455731491918138360136635467518438627553429506684907368329382804758867688123493293256524039505136744463411767757757253876218945827618809653278780324249534054772976457184222732917078061075216851533838711090500564680558111871359796068984909850846216978689096702726467576675787104089315255403224170800125902174822663873185529603176648793570505199420324516482561180076396905909987266085494154212064359911500624796647834056964799918960362595198707154914987640484086273657910881926626352022101590739497908855756193610918178873228601113251016023089732535130119595045039787958352381701809571556880030430767921083092390540755359781387593582505328305012239916037909974584475695827810777317680038708110954113911240688490663698362741485809570775843114404069263139410154027963812705803205326243310047200953159009691710113841366644965657728792189530521654508412419501284422431545083464548815588586475936236739315665294454743403358460064135332555779896814613813169161367011815451564884743292195512598447223002019533384386914310016461755273118034124187479909407725758971946706252800531754156495657531579360305653787287036767705206992172036698945739947230652573482931989852125387188408088889469996552934683082315048519479062211040513068827110495899674493967770236899752843171251272911655038953555006376330507103742027273480493933941754755353660019220445269710620760978763030150020734535734300592234886705651181052249048850846367274502444567152421208993122076040547745610427169257177928459734781526173853820650856590768757717695912016703765310571352250183066565839893608667992881342939564441176914472826090155192786235850487771306809085557031844982192055429124749491669433756255698755449690012727747014833607492817729806454106821538689859829620101586664229420118547996649972694004051859089493535810082444047895007263236239731335616624016608064588545573615039103857667334405036851105279486263233494992891506317706458278470917866227384558327715319540887471853343181510568610409864677547512463212599251780622153030181777925788752281257656259886728450413084790724068582960356956513825793548966773271435523834773802441911191351869011806396221890943322943148087598358836641985421106792007608594149760922032123981432777495967582231088275536829803519683821300940977784532779088159069597077902054102048046248454052406169002488619635982788111180484493847383356058019526539121600957485103146190812899504355664047922559174372503999856626002283056862925524337391124615014913859188629401180572038432948226134164522441608700551876901071650614645820649204977375279516260046464806699507669281069612480683637242981966564499997283025907907665903088942607006135490715011793443842209139462612445703652142837353551230050786944835884483224273466775327210374979779380481028649151987390750333516253984283860857394175732479974756216379662253405012445146169034250010560188749376375278407298072838142567277191568876601443364016047089778010662679686358352399520199812155423298950871953473022097894796972297959666285658763267141974479726772055025658760391380894617596525753557413729263422819412720681675604965255867643912055212167598917061419826201693994841968350890704099974132851249623265302774655772127192088295134469959677081761965998466666233650570618282943182515135924818315533335734574665166452505326137758632339531656649231963395909834478588732807084773101673821421324234562172145950068517314793900837603940276136782720748639200767103440396105987355281681064598357404575793176881257826823836938434104245624877431457552646380118919013762162202140287059992285659565455419944362822484771347521180577228261707131547003661498508534845534448915423477071192459757180681668262122959151822125576776471900279786747428997848574266548933969851286674156054438643434218832870647393220693646601263462140393413091526627548629872149118982443713703324988621095465702779806572614031354156890662868224054671613494583514328812752860869885444531420013863512219685520310974239414024128035515772333329066078030826557365467357986355036371938554029638147993593093257352104393484123093905824098796548736048814400835816424803464474889589223929382903842687000485445114840584829832164882253596745211534851097747651522680410447205762902642921058918962055849210452760863546111847669558220726833884734601977615583321187703156609546612974873469643625371439753772553026770085115839264853669031564239498242694733312801576495455531929107857321075467729450394126045571875776483043244095701105082094448251592893902597274632160686920260128734717934299717344590724161580693217317696220105845372176481827613230706181839855391820311221540969829101119374196615523474492411867846289630794137690012028225352910579954226710343521144974733089664054541468230524752900403829393970123219495101454115123748451457644695835581887239266576361831094933256221732465109182086780714071528538505091921506883374020858657334715433409637819823840965992290332836868216874859159005891914711827283240391312409291563309788067289455750877685724455395548148801415071521582819413359972075806235295091692543084225698100295593898532860026975046078301270644716282008481194570180613912991737728584772191387883183083029377285162217927357042343809758450370769047190722500541984083975420399635658904541371165370302536053863306834375895473259071576705871291049764722430991902148370970833322436501809672265186556573388250118744490180381086787311710220181748408118992162997575582158727537939971369179936254144474726175092466517146154778098155000592605344464151169813683333503640980311233525299302487863439768775627699028086896264975557464091920132892031370854019700718974246450153493033248396114016486003581062252686474815905883260908737564396165270011956008859583298407612045439369851106270273142124738910693456366956876330521107608685063031159588462625075547705343449254296332338925399709678303718468351929149354330528243713861997536564160804553854992552830415554555650947504916251069412768377903284476569073703531122359031918504667604474911579922947920541890709442795812118176521960709127457991047539143146770736063337611663404733990909932411213989182593325440191922722765999101237854377810648945097940200498940488608417074854751303611079888512962804454985989802191773219964395976735034820701548778326332210458011326035944111579675137349449432428889227458597299426206053644054701378991632577102205585589903102345924857131058753343784829182590707433619739599568281092786359240630844342704529734511898992627830864338158882744507478992921515202514313737600299383791774339606160669985799906325478691049253152588314946814213413834988226812861149969471873246137815249811473341489198563700130292708651236250738507719726510758233201116057220815358477073198587623696973474185996176091475707274074950397756612527860483032102461802366602079047859627420702873590932584850468047036989307721099210755356943713052684966328830418681151824592255209365718174350841908468435782426768526336121624884432087255669403819201604221437110445069444760980208985698135502789573202562745590233354992272865741077874695533009984866076715941376042625272676931417533252102146456101948219118947603828701433894903329147329932351514562726639928503109487929597523759363897164666943803313556299851358786853532485702182128989810379274961982485223925079869267179881147147750493073583136537649759346479389717853920282254410299260511736852209646447714519258278095436696399863334975800499085154840378644421120735995126388369924448782362377231375955349816243264114627211663958882949937559892786249003412123394156909381631614524354037814822738930641104968574848745034169491007811159339843205824029473334614568344540979486700165987085940731769982988773428931465461659148395474783358783804803538053846524887886682717418307104159917161265307652070910784638740574459509923106860069889779333793356359687901919704836737997563861669058849367946620709556143419416976613454175586935388279391217499639253631216981555183850274608846970995395284440413048368338377635401407916511707547249371884003698520872586984790555093518951691208754923069593794018460139429697863009463282255098484446332733097124561728358788003894287444081152934318312657813750653502013197053305213288298642330691120048765436338046480380940987885788595127347686331258561002066984298664059695324232879321620140935716027606126143199780728927334707089941192531065580154449890823878200356640391461947761625609704402350375599809105065939135783587092830944838964208641396256410948741905249848814079489447336009914619881153504423669483972968587803593946497676174708896623066964147309246369563361973681084879087844390992527503615503230515332771501768940062096070808935554406809713929933119241537991547488222654829255609202618384756539199113128351961108699903083524908637345769644011715515342144750146585828139512182347717872842508415598796243700315971417521016690990797620451460958596731148940136811638888400999674492536444399395482986244286445912967418955751784962991668594682993416520019971416306609923696866822022201599304109197565713505400290604145041464001021860299245255570285455781425781662268033183283485472374272684806914242975121887195164535191737261028506885343825842965622148719172471537854693891326357812660333720431519812312629333673512749680137106082327758997793566557904357695922464907340123534296906382096830983708553762979125245166983376027015812701188575655214281731951233053043720394293519459558669893331945641936626193201429372313666774042459857098480105397506077014894748470214009495680416847972918259828563493142086704059941358170801409404343240404050122125448370738616390940224711911770269949665396000305340334780060146979257530429485445007361666271063548088250756436069206819155487257256746270781588895053100638098654210589084287380358137519378027566601131198221613034556864851061264008165561872932675406396529051751358804420317978340268125233860129654559662415654229194292694852812928680180909146835887649318728502971165514425720011824681563409950182218302080220418415413754530116860920254233830804704578262206228160076658994330316155699199682150958748241164312904675357374500658948816463953611307354698128479382859912787369692836039611254144016951599971774245780980008893189335092627317343418814931851663154304785068390396380452663569129529083303266993806740742253887141834807504664231069406532165008103713764029959768310540554518613497454851664547272734534117798172279550635111686814791659839408146484825654695119669745847679695872949352145778513604116620101654828684504975395746490803147586958809332034446897684428170697964887823107814824113497882484178899485524775818048496621721553977595962177300504770426427950515189632688358349727475594384380291084073107237315895308783670190661364664060430384730868744372710859300676095128965391923597460410091288416455815389767243108391733101233242123594088435946806464581162688429157862954833682045254757065669330385487153818438539911276274074828610691553832753974693983249195295972619596269870293301259963779411509170162684668482409962505354061032695864211776645335242391789420211463143449046616441466563752942816523501088955001825123979588109072972484688296921540118112245986797142153974993794350157877490570644197334081334708781400224549170821983530042980289942880864487351581798237988201182351431550709930655775776974959989678914849645588925762626888370719273962359011950830850393636567720566641244307014729573735841722658292815995463395932557633406105407333731910249168583628999699489409542347382567473592164271664987347493402246597136083896531130043269511745921831017409559005842901045949308302597551112795078226021468908015538525066290839458011674041827341131308632606447505689585129628084646496419847346405611655268354833313180169138408684559885752188627035541193418685484985098868205443663439622667570358111882041514788218068009921010298104476384022007462441461179216930069674463655672192534726141485460433642904767318624996897302393843635889328088275731136153678958205460605358744166532394516215908249078243911136205893922944183001057855868993783833898105112774149775845747907896827975308874288021422964480954739460076283769571033155783928052617105053589181187286985875544371442521376378676483110750889392796275038344640689689740316145250364761478891320129608597389012104288968439376765972923364908605692205501331848939513276764187343874080958094625703749814373656345088356659392729424410475632376782764869807543895276712993278652531524646174825475443207622030550837268197102122052129063276736788088943545937447453743436623396491916959468470479762415289152426788211194994480880600488631150446975976461097180142933293113844562942154979976343826648774488864589124481333425651259692589050713379490444021443950636390753735583712300947076443090879716517702379606369926668773037578652552046696753322675229677974232137068627513717117066642626895994804153249077060389767564318429720063982074909648659914278964242014723174751773291054743602015118170695894704406096168350305011711164462605569228811797708680739073232697886766626269970534099944796930986391457674066731804880857514294241373313718450107020176421047149839795753865243546492313824222735393887448926484260214879187578827709521192095258451024233790909213549874118006071889418971110436817576912134790869721400055835499624880051416352912569386448473637359819033793077563950624733243898398630234444526824562293391435453112353773324172637256024431016076005736513232428994315424587157327923503044290178350855945767582305313133596159981813290695205810658600451673887148221585060109449855676300833935801805311825856146663533959650287193309460161437989111087037122326373399676892841723662093912337907341432902048788659208420103218144842914341080452030931250043274039121175432382337626436540631215983403379446045469009234091455789583630515511878715264749165693443696330961615691196388044955851182126186503775809558770995177961082900611379480777785172244441777658633400018098993882875377456179412379941809955005386728247101519661043067347557448254582168554291549559540132671556157053125633862346486644618354244124292027113843194725592435166917083614352070187464798971054847814468011207444617557918448666213289314378100439886032265049944626353720616524206617787668259548206011527209649067753080562133661707789597527944425433939219142463079897223055273189879798353522959166208913034398834546400949939808130959162013207536205043687956941294868000514441835889011888074480111440127748740215289326820001909697836442354999136354946522256895276198355811294138449389888553983859406129722092756158467579502778692893454879515183479297417808110370266467584918134463666858250093922514639751869190622001351869773468557865560986351132267916992192101704034270149017730849690583581370245238343961554046743284184907155979301122585236641981579506565296673787376202373845334897818425959082706773748344923804989037701372949860404467268819657440558235647956875879139379395450678544309067964662163977471355910623685392798364167394574589653534252396366191345087139950354673349976252403463484220834277583859703268896061332668361806548164064609314852459024221895819140346653098811184841886085416099389070012940597595420091502238953998649277775356003279078076592945676168663421506453974622725950668292236445853395309576687183537177866157577515343978876568746020726431709354664911916939903007334412617446349854865973066710750717048227653738269712060252549542551897785757909316792513898758899010114612136715807302620763084168615565092196048550906873610179700534194531079453955107568820520431961738159799581523643434756262574293066689949461415440329211577767926145181112955311582804876201758036053239946797246314640590464637725081746876946436365978315852904708239216537087190689511306983662046463280631761307450125484734577605564554715489064237753426706557833839137192065286200829441551394385196669575038654633261254220901580365055215149672463408528454228384063140139600564406442579731894336165398630302990472598622553319975153915314501640807544205416166956607533983446230963486704047306098474123012227224339518321253720884329584158692760659393771179843993805411334155394804564975236045264230558663727396472594063640605183833960078295016807551895242544162237454771520098301899195108078873349691005661254649023505530706276997750044090936009931872305183541951336772988602879489958075108737813507754195336671966875725112039652921598780844737987347000060923734334259471812811487134619265182138911630612627425688805413686635271699209873279989029968309136219226416854151520031303647577891840248187856592785703427459522838403588377806533201712024297837608689126474616167024939772470085130414923186441133008473739705414379901351562483956051530592988067507608782121750239319269634613720331784011195638934702055015984461603171021520792997407003609331677618385593660580236452441217986968080540370080217609925843884598179309859591471476606725551165273951107792797526743566805327757041367704262395015397431866274248123494187087364896255686194939883183812562964401476622869257748705005490224621282565161974062475978719911331238861061185531857547319159889783974002527715393272446946768366358414720055397232155372540259462881551678878482799387256032595776511620956871112616861779321153731587112318313126674678221071455448791446252023051100592168053077499056397875554194022187566023158722818400494931402599745043383744287724141817701167792816098616782705772549787553384213852160816902521124330973431933502584268012372065789995484380176864443726187276391682662066876684021964043018823181032584191998957894867611472894623592425585034753850730612991625373377044457927912358812132421829883856314697367098244633498355777567546209556338772408163744671764750616321558861076038445777454784351470609506318433366820391950072559424101324063039763054594332563405049893569668448767347889276386949748675636199724608835591838168706280058131810360545812432754649296195405319744772609326228600544598406623172660996759436614998102960259772198897070107559135580665923530662563074284188042938364814629423556811028265133383127121804805172276611880220130223378221248996238500589452343812211777713636150655091067817744823021931845507937088084894534796706232993177893854473946916363284723832357556770022510020551090529979900223651425083053350981628173470406366640738298052681821079956249212983329845696458227437729909644481854733091631648836454220587640852438236920322115266529807101834579808598571949537749236500994859667656105532105289149405440642146872139833056812840177877725864606336866110165905754597052028620646476240418288645816664766412787122513978981598119335811388680127652326683108019979560619214688501061279544002171331048604303262294230174213446881869432114908989013380320693020167348859035367444108666686890834542826585132488444706929361606301679169713671696265130943430548023294319343408048171961638483978944063700800005070228736496105726176576373928603626021392626520494815891836871955468616250920490472613023444482139495370560534114760348029191284238595226331606440752190684026878613283563744021074447745978337759777889141369476696925047387248225517896445678507897899387618917746660075310386694213533213413314458358838795424535706842625123668815281026962273542263741726532834285418278099791790116565572614917978794222772287678603549262951490330408238091128981989046541623589806253609430862020927060037812742115758166065799535302093813101866873428268513479391139447852817666379960919980556398679600590862878400010768316693934067347809649113179686409517233487506879621101620046582660914776856206589244326863232879172898845557388973457100550410215476518644294550655676055622096000401214728829796430841181115897367678990456491380783070517478442868579493304073121172332936025362959083020164392886348803110703771673543856646165955564995994075985591220124705936881776793431948108309815777151626498998196373592191976960021210742942357886480104614819091144032377698305282037372760840786836146145914616055862123573011248837261793044379809500442567734220967067108011334400213363528761335240771590760936441973301953147987700923578670590558818289328169704440527281835350781936279624433057991561518602677152535701562046621315389463506482037707041895598767455830746634813867255918860190821588230390823880424113773369748350682998039860775599651590676559260708145710950760174893287750645054492214698288638290059968144008115324917405583392831032173809072602918558132014918033593001985878321451525036616581703289050894485124867335266171316724060521671991789324425583938706203349079077257529063219355036395642920466892707592967746013175274531119661077624416258104721336103664191575287871597208154219714841042139028391131693475500355670179424154512986512110587100079361540180859439135240921792700816674129268946968130408325792462985599466972423617070646632542680055682341387297205894393001303311283748490715522168973032995383480926037563093862713035556347552738130001521377038749640289141785727238394110312165148309397321360368337741806194838746637846837131081709283446751206852035720326559116132396225965871955742032374075048342457146804931692691032258936862188043459498209069433004094574106676722607880987976663242769746001629142200642906375336477672060753149930473625687699552524420053094952466721118346151272174779358948427089941391532260939662648969412691438731263035044333719324333850170212361488358079485427915914906749254610147811792913782506842261472124944494927030454283476934700884037065486034643212413999134144489253701818881804176388552355622058826908463635253603461154290294418822875008599103148718499251328760102296758404562962943242369299957688090590199332984444853596143495125246127354274860175212045045417122068181821434572754062187417372006860808433771913019728612085281965165313033685172604340770012556748844398139471701870998807044918028015441912858790256870523052386768021300136742296869960563347483084773722415021949641198073376580315898098660979793220145912039865099301246000286210586764361475911826794853998297252343273795004554613334680233181905128338838665766083362768132258844026860213821290607345312748567882496232372124965646385858121114936324377681028774163082389727137642898778765806472693217794017539671096508031183262311833372410931662313782563433000079238226005801107932805683244517948762549223864438203756551241496944265540965315965088230299595556009981524973560575267200814529316958432159008100605746674644513333278766832472070206427121163538704273387188093844195642099485805124526807195937326944935938121275066955737584064729728403990464222576989981790572583049992301047482658686495096446323497490651778225669081877394130335477689715444353841898671124839343763080984231906801810102334702770103795183379670163847967527618566778868309620531139387936318960844855286010487993360474874483935535286241200180023720082533597701025191108663929989596977195628641484451010028655517403477249940275710895163101112702537876723822255264048525269341423072564402725728636876876747339398123478147037475837826308458959488814542964124088978664627172468882200163859485310567453054027975382937901637683081352387738907127281977553846981272085410036164770572341703370787373218802367567005659647354314263734815687298252170763817699474334230530568160723558817492016747310589363185275981199123448607351798696619633445069079845531885508317246043653391595737594506764020816454782638001865864896916416223535015429740915741625486382317903182618995800672705111879789676895529284721368626440415101995028372684388780277895660681400610553030244452628375115624974192811634034438728102476116253765126533926650841071607144528896318699993326868130627451658383292053456649685053682556103146434362989869238851907617158316914627249471452937931727452502684040334353124793037175852574061477626601214255684988771165861127312678157045835525926661494420125903988873821802606966340762242344681959365926194173357694107113316440044269446459317465158653027549893064258291237686416010755097871134259361032443412694332048208202190726662466749838402414939163022396589498564785673209015559472360955231032181119379208206063207576341329933224909936041952079266913561381324731906483789204117077765058602456211719230832131583761754771991333275497750242818746370123759943761717731452573363277739185383592931645646720255062978576395554409780808454284153053804124292318881820702830206564881873838015171577611198525681115219688106440133924717246246001933294923882671025292949073655229938364991120032912724591149394937704216172925833092939209865327304347953740548449327422093543397591148918555676106024017316000195097000175560254506394111803413821098077484838970796749568945287892847923599927236454476021677670976300130597224355835169773204564409938451641926724323115488290831336361049698642438120429211562985956096347634747754816532093991162298207366253595676708634604947137186945633928255158971899198978630605464992922386442425705435494743435141212117105607836336386381215713634921768462226530841497939375024004783189525990989752886662417429762239214207167120213775180039186470083495728897806797158975920473806975703085662447260417037186781746248295264125009021989752142870582017122368848010351149544310509655950411756878898873847814859139987673202981863148292787255328930101629648840742148219893802916230980048536293725562563572535389782453108171278858016480810392878009127058570079140331336840068409689774037615621647425163322373028854571868457208049718193052558420592080857221620041874880289881016788842538737756155763982603223935033697482686316820264170297411963813234441174889069982931188049959377348909182700615535635514493697125744420334520586146701007234868040167832121959801929421532323194916906078567239605971083342645945932237175920047644045885459794794549956195032430338289175200364887133859112254474189367813579961260193854835727392106716717289456254484538445841183568410315386576173912274266547549079881486831976960624164408777267156211552011056761390848478477413380419995219704389734059039746739010032968458643168751197852747161424078624649061863802752898950045917024534558378548173348588150878982835162481291437667453258414210991417837648492122520640901771679076470779835138803017409801493249189087388691996387444041371823461426254751756990362414707814307402591670217313015198825576075081103021155047021709760176580522339729575743259743246849593648080096738261925878872019756148374424914053212391904492425503752242256774895202289955278132056402200330648630331551388822069496447158025182049352662387136618156563733930357648094608881358141091817658699218167698428705713605532590847872961110202140090409428588680323468682862469900764333904127697370005566944880728204855054389616182742030150783562534862245494440272617396863512421915851779151215834401980953602355217975969551538514360668056778581169881700476517487665963460993343210207511668407604327816244451606084908833717414874824261402405928807214868972929995944849864181741649982875824868580811973822089699679248997574823710906865283759709811110315255278600165400510283433404415961068335169669827518871945851390549832958171553483399381857367555696801573040870580231277347103674188935594122912293243404653729542366774436901519091411466604044318369638750411385352395747481002484432434924759383086448253154554401117587376277806193665350430999272997355498848788586041324458044623081013097236222818795957238697249276867623507304316842647780403602051313115236893070328336626884568369595648549497375220140271101334124309195686241271447742711325785534782923845622925933997743624852868645152664628992805857331208783433429425611403711713974500188592858622327609532955416893873295829759788028115407305642860793090997321797615693888841844859203055717259292805376846169247434958524928298598066333544394306672509801349002798547649804903171461546038824347144623111813335548055637153684491386696128417977171245270017864465290611356748491330012590955785748456715858130860439495814581615027386405735673254501708827580387825744792026999550700119719095589827442818067369624233189516049390169122341120676183771461095631600487211826227683371006152015853572052939749099887081634893611380995573664556224277822713859920062782446277402359457117584319580584473160062826064598672088048673762355051528820682592941205694932513540427753873718201321502487135022538226587750619915497483527961993036002037143124180189143468612156455684537871765161277764543560560643176144353030196577894132559234029837665601580480325125945038508228845507385090668783588997518110026392636501444378715653772957086014456380972756354912418485519708302339789866431984467624414218954769955223396330713330602059914001252432660273595191133990170463946836143082398910118700015735390578152304870091748156015322101433381839189234318004748482511405035584874131706596771665154477220022537900106927250784504191896756592163986444946672653240114580267276439264931996225323088741416697787669789741099910863297478504776542275622478664066716039660739512187802087538486298876888712773905768285817634952204880012456051893832420352985613393405298634241631681875293477998111971357902510612870820620758795345217806258261941051181026364432630442167378095296571046333428663031112248892165055201670166788074703942893634481391214633502376430347253427266332963524262149148804769133084155564176455199447583687717515020491336917515815702596044579076439673716563933052560788987653552440584257088308693181065709115313592385753462648253283353467125176916232637323857538292798860371121331989402032966461737088886798835891250975762707352464337033237809541524975897137298158264609304300869687543724313708600416568299673442008568952673463159370683961617914613837964420118382246127966117034078456788727673796786453336673510637214483621824322540362269606315391197752750278215630597550704541789077487935820722718926019787322836579979802877091263865881334911400787510492460442373914474468522367214659996793628932656731602672197193715503983791694775149957998827933962091864554633322680364132490614416238601876517381914897188320713542347950974170416509104748550951675147248495299371747033604090762959957594360265140835601992516705117889991386438591388352809243842156349463106559764390951683917338226096578268144658475712337498629266637622681047413171958854125240870396931590833338557779937165353281809884836143351090105094231702114868927728968249639732034051904706681486090276421813657166363074090650813996964605408228752280554228628521743628585004309459695017372105670186880236943265820317515421153394351188033024630656642857620703430640135194558369609929060357091382561291804562718340606009602327662682708624473885017038071414548619849046874862115105862447253180603781247260219642215543814414293070224003840303357767702720655373531940402688998974804262151028005589718792273407171124508846196536639710884156994257945463406479494216765608084384852972218270659661822539071891833734980208280712133586172700411641024275664150867815480603109031555817080069080762032492817517392310529005925787902263988323180381669740818605079527886520189175390104492692437199274482911670686095591092852952564165808686112900201522806146288742304612809277584869766598224571824852402826214040532920744877411818557869770309552385412476247691519359875699963946142957550916001384346125241955431319447333543708848020195320340380836854035407844264557042738922932094789776153119545278064746090255234654746629364926590795152891714720277902634904882646735569250294543457350649002060427962464714361446746825673696401554128970302416657075551334892510880726482789117042760687139618010775297658135767342054232742359030243257380671367584292293042602133278758206266694569101242326522833072125259908706944833369671472811684756308207909664765663134662327021932968254397148776361099559825015222543060515184928696170288408482419312064472798386483161872378931236590927955261063226163537060049166656023308937384542383535031271310743475409321459558488633475663818438767827193346925397270550886522400698133810376697350314534325584646706273853179760221746681337896553627273355122967759473920313511408911546921086993071884355677131000928813241513356621755095531290747434207418548163558439644696466980207304556739608431148475965920162760524044862243147856236512205697441468979242383775590276068887932763167402051598612215077314160714685798586230136832253410371426172731707396084459841012969563788661120056341036041409938534961929797168526116668675692143491687980904149894994340916908295654917348790518561771389780856179474057178264404010020348725178856542590003594832238229317483351636009353492757768289298954321174677843607959553609801186202142066016111614689596732233113451173261106236623859734233411982381439329236037089802729278335240488433608823251275355451189461450520352558869391616283886095552741140480060177529062396637057525147122149196674938457248455061911631990861872364711888592404358989160012929071625030620465940784442916104101293971868771042123435414816629619790446584924506825575955781721772248455694630177621544070350056451445023171928121574886299922190321909243814477325420328912882791358340408374512970554251599841102115643700593594668734185684027544042827871127508639820003442902722568060440100927159918995951852677941228364802866399824835751482099884563959366059553311004277153558972175318988232786543224307665174238500430919380773384814715254522921149231235115534594318749075487760605944827887039653934431359284530225783819202425969765740411259266893330654485117039396895501658802421809534444902753171457139842943076279454491404642612091079598057639222534811888122239376148406904152211378874296504661496256932506182499410514045495453940848239134831812034651577143218061176890687542492172553833187261156519224709255706259401386867753607077560136527861106478787906504437229071535053387849097854943735400065967686155514501651775905889784505685363372490411126849760164757105922080319580353945052636731711027465345078437440232354231837625615758817802966539530564056811141658124335089817085726072714037854307811657794868627218266007031012308905735509728266797358111718718286948975898318110607017757474282365227336087956146191841101280772198004859211627149596322513916396114496929286613249876363305282286958871348045068919084797704204886320901465968748698508368146494323472253090288509321949671806446262997368267535340092598948470693238632111809818107718187277679625669160227320371246041608792801358317587786583741023866244561952709801018509385513422168262392080571373659770665669144249172354079431728663601126778953948702732724639089109331595583094476712228184077934899779868614760649605378668100698070191744309398559682256173578896967064714149405745513596064157545633855866224363948230422470619798306224275507473443508951909448375979879311062459192691508419114752122731977660955396858476598607953558191009872811181716949292090509719744313149261843878017505905723244810655808225227839245678687144519062848102479522454159235246453360461449531942031963992501562758578976823159218977423740777980801476483151793596917415356610079566005583069718370067129025385238201286827507325519390897874603754636840949204435167534247314353772969640390191697381989805133009395446410927172013582606938400773063816853866132441234390151602074824699069712692033014014963088058817632396356568575908622217345393877143168074350419610262171506366352442281723822084285316838165429793837727638660404167447890427637079757285464706927604429279607159376218075772796295475206521644640538201468992592392583334190726633211657770385597773752222218261767337600158589889305318172675086796239035689908648757543115391617636416991495307143018303987843264447672591188173838584424034782756748827298070007640992660534927410222179851706095726242624550320491312641258822568147288896236174371887244622308235998783520449519132067039170071468824375232440249890272623997895191268374718189533762000342513803900211611762306069624093327050951935830989918742146326261005602424938880150138499772369202926756337178465016430317324701096566181199295364111700254034645825498355887845340615747405692993010785414118175347393765996930678729872220666517430561134419857768850934860071295483693966592589031549640851436994218404237722637468747143462782435627058648282598813893151229211877385043493887940159946332494615777810702874525259728934489923235199995758134838214227439566383372322785073070365014334494958247173504017471985388169304748156794557922480890354815337945904681737522085900628160552690782252844536055936331872788337789158030214023913487772551480498185256034575385715545802902090456832997991178598256018976005894621061912283096736597288938427191232048971489818988266083096976323085878596503606458751593140638061487597738751797152059354660536100267252207092638708599090925352357913593176380446473622095547328660821057507296489992565562189440512686460705433599056793294992669359332556968839966338493685554887950158785916477607546581705059503572219425192409668759900305420511050019714268464051771909865655665061171521778815917115877714485782313029091022044407813061217166338730723981621300680572261257200704975066118991991370750472400912497580292084426142687075001599815164443316657537556709853759871703906317968101445254524270715203444833298302678479176254846795316234251374808607672726726887795135009492018040150507544931178974263572036732082452725601233944899710080926559081058507873141017039008138760026497161297253941523984634562628400257675680466671401369049465035394702163191296768537649641302260064460881785240890537848967626398543640944687710020080638881298937398476238306880114615710343516269364604726914027344257063855360087793622484459803258346245886220480073825683428884601526743388386610656860492194055658239853556061149638798621152968994245489101084119462338697301851158840939759905222980310084897656683859003689005045502531785203485493517798472405088945644767931382695620249106657892096780243428823577588511247403147211636241808120267298161351075735158950331439387842119060346108934229520488686759404112251107558148333679217977505074303925248738153746432798437938198442661435246727773287173767324971871385972051210073819229641402664354539275003116518839737956067069080697068016697840154471847507171381407002023503346632863216301856817052176106381587325581866229442513141377439935152373613080042070468303530800949853256295578562508327838473928915914522334377877758837351061303472633304089580732847519207697950874783750727208409019152574342488493670987466496134869280193958363681518131807441575755093019744277930535808926409870858653078570583989490295314949646695467755954853850687502805874783627359144360854399249877015804994842194076160518977326553577331545544201878517546330590760814573382166874550327919241525785248707975536397684532820514331889621313220423351768805223148834571529398410081163013892165011613339384101920451852337203715426873449442098634897714714577683991220001265525638691641136510857446011139224364686027045119986146102201029103116790767366546903135282872776717565716707382616761721190653641204999094994549238648073957306188032950622405170219250243408158474688275215105719003987064529298469689682513080113615987680240865689792164175954783465792830053299602876841665055588689063267204187424891962138036378617576839829786154475235308195597278607178020125665437993875073020539248373601489861879850144211833812354104954164239012344370103785917880932097382527558046259945700392553106358393950308285725674569711328689343389805863418477978273347530475240809609112505080941531308396566004668379495712289239061557140978390908251920248913604504182704802640351252978776316424917576110114584505497205893753259186883025521938866537246340061236925567225573285657446449076066144079174451405266001431703011562457481581776231381981922999059390125321544864451525680402486600767788337250697218439869215283688273918834418563521220576395892454769769212640877373588658571016121558923529822571205151065378519181382076059791466562005604468150557660666298518804346524371064898600735058998883420804842464098013739483061962356316728143552753899615165286130256806835609775221317489682853346215242023659798001255672598853544350845000944221163169434329000839416110320823831099699311277180804239688561489660511914589125452094252686767023830481155702615481975703506179318321892938055715188122355892615615678923008545776253548659789722745029681014096314708965833069899918047171984561535779737124730472071456717859809564833643965860494393745149709496556098723431742158676139451757889375967497920352750089684885399124568297030374489982628057546842277211194681385457524687988617313594961310495787975520499723534728774479370277335439085151376195237908233383904987305800442156012932930505738550346901435301712062723974262572203008547902200245508421582230097414537050581611284797156780198407187771672621287659153825216422643661168964507460159677046338894264509351516549112129356614775921680216777316050694001791750438559175104018063213222735448352188773450237296700062723289382607297303745979173925372659658815626071846785971122409662808160934635167446520579178885681810975999912806384577814036858326632531350515251018484521852273409443752848850019997226006542490078097631324110205002767992106379176533412152178073372549259858450875137863758416483550416658826608599413789628930593258444602511623507911153848054540471773339210053714657579491906411192830206606247154902591704010759118945071747972404846023096972154472102207298419187643438520788070596969505040974035534160729767796910337504362540358724368226233326738977411764609160908374088680089035299831443199588381407043709491270430820799993506245930155061838673515782880119267657181529027220907889089247009736101576138007565044195313734687905979695826279045242484246831850354268313497145689928279640955690249525904073709340967628983615757853068736659080952690372176432984058221895522166779013427614162225865262273755260914068799619144870309974759865581285872911431796324188799362835264190180652196920949553836670471647214062432245523755159058972852159597732595871063889616428900160505368577127855402714884848556464214545239024242150789061813897977034953107459033677805372067808290280995192365244988994414372197250633159352343504520402215064371193277219443732726036338453663922398670175196884856040399287854483619431842207120132233524577056038581090892772572020124280587739412141428501920609722928608327945956611312775828361580620715780748159594298530199202253687850916786505391034628360167717306388283127656342120937711070233614504950834856842003121333569981424605197504999324689987292436006854654892511300236828445000964533801008178046251023732632522153919951026609385724998706161378028471137505647931258257986000457528747733684018560436001909034663319662952120218850913129190758749385512243778110053523797976859092676887845610490677505381291447609630043051738886477474991188188795576849121246461577857600215550677246072494737775106774104682157048910839951039823056362819756407076014432283659359816912276528142238253449877222383174852654883575909554827683485353734426486118138486181249196277389344246523015494609896407809163021061101585939390810570677733867032056220091665690649969881858878115171650400107740265303144226043847829941186970132686895043824325601172233324910971351942629779188496474314772268588709049103354265029283655309053209055534535278099794792794378861324821037940006190523728294889364072934501574150292314563947999433251065306828344725846962551043496267783651330549605447062976495839145798398247559985941242646799260484109565419696514019659101665692089245112179219699640886195494218712313081891134739594948113716407566520011934194188535063786472971019119366725481844767164825832179523414361992435312267467421489065406485484274983696956381492870542839046670082371931960695688072188868605088360123138146904626872670593977618555895727843125069117524522565049224385497859364041991929392453587694892583386964856289538182962479463454695526917798533125238408375377874083973486851618214422648205519229966680178987721825916665751183554570559712070858971175921972392638687362710337858729862717795216860841810263319877357422029209026395574092449063926441329173861677041347724088254616499638305852190850556201850462907223462155197319063258232806827886383992338393268043704511828888862213848728803726152715946882768395245007932629911898032929734078283486745797025267345681842300844664745653703779012146792634327410978778586594451348318134615564882151789635171139123095847308199001552703207718793966738223677484579702430289560444734074151035810378300879164627484418996698124423945892620827613524872460287350191804384939249691964640525774182018454661180278329880036813896297987710948592460022981236097397448928120405507243423540582875461189963394802407933757917915322454101083400107940943578632416493174881175401797738031904539537034754136675305569929465629620644485900980869361478494631148615328090315338515260395073608173336153316175214535794331025600659443548732393041269443465382520767661791617082155451386832045494675165707851352138571815786382453955445254680923284902062353116668120312139634986430121879419794334688547058414782710055682900668563786057728603637180997366679991487166249073621771765224439850362297486291743817732556769690404416364321276202875339791713782850185835095199347363225687649436206876416789464605136745304918783600187905079974836050038053919336071877349801229757597022005151964059424901846808809741573505969221248922719176333520773900986434966600804598555356191614159286433256883453711600293192060580242291722813962036118805929536781649351375509796186515645529808697259297620512271380831867001886513839116957178026897180855844897015673080147056446078921815490347785925066554699720151704088730879966677941010510866599524560557659225385078991516918434749634666575581141849555780903734725361630645896998713331062714949071261610497486295924030381275308552006455167971838127813065640076118953087894875757481709144832124166405333583873268742054599533930990601827979338311542638277439135622386483944751744973165491290958654778266962184608296567545425342363772495635204501517516530339072198872342793741688708710480656599959309740475161848059323999508719006500038621724423694290535055538453509806446775470526202870988846296529408285561107703555170936424160496999373267469555807106298268474666279258204705549227552304218803704922894534424377515788238984743140699621494565817636941360068112543595946991147932573510400998591486480654345936059167865289140422975789357060354416816275608506102447729630006129284708174417123994111726918196148661959593821471602169107649437653955453962416380568347484046792680572322637536766098823231734836078431589018837847499989698227135588243971519036878643246641189175640911395909347047034848524862294287325677772316737613065426259338510942382429514769988007792662114428615591829357060932512321799907878984917225145779966403601975286323610434177155562101421092653387734276171188572339581656870505809402209752897159551406034297743014669776413583348543412344121091862978638855595512848188927850202961771132516908013661879003606506187013253329302716064968508981623569376405236473225255523919250728144354333460341027655124005432593076463265708004347502520148106675851610655076148031338481404493207909309078576219713660274125994374915361923787889061681002486981981164420849750081876970938292346749575446633533335626836757916178816309786939563406086161720044769956388127231022017291542657471950479774802362167755733888432864040359611091699246995633049863664763979292246897546230020334131536320248140032957267262601172981400091036536322042617134443720385201495839961264470273971205301012016481645315158980233355308389965576372853727417684689210268718604312508808579856096990264788067548124790220454072030320433417743175768509692813464405686080624758233163610396359380915823782528849035505123409975261109420863616042050613156652306873884616246029108064141916886995414971108399576214121904342837890453643616569057998278158403252491684089788609331411849143402576433365676643416891371476645884294712722307766741843329345024911585354518141168121981354213662368982092725339550314385212888285869761177621891171036558547714403382555433449318802727363699708460759081067899315653367224187577759971440976940081313281049082265697227319120315371864681747627416932298985941395123042212447512276440888884828199507145033187704237921032226998461485480108095565399782453287617708996524924131722134822228992393501328471344074225148359138313435855263376939966104425080728480322472021924245583139890560605062950116515380344139804419051369577874434302486017232407031747678275332793647586989939062435591011479901708784013444960089601715301437823523961088377599586512187137471365220986303219842281061108658834608634853454124543282680033298359961339234262810065268096701478671267724065978065408750438552201614378224401755950855594811234897605277968405649624158684527034709721793536614927881400589853775873995835837490102109015576276740539245317655985746001401458573472622578733495195525043592548474547366372091506575244791484901859598487957582424472937188258864721966813442902814697091094402363192328500994092379185370958990526864221151076490725909927892326405084273335924633592752521463803069965342443865628361760163392616511898509387536049302491410095285681918688451681323529859684739656392853967687687100473988270301410836053218240521072387022172111693769890007458267006846375345057123639744404881077700838945884805839365850475361254998450038559496501019093397790812453177616442537369894693820476273858314245996447978177875639777041300188141893671553014308108500549621175128681924750364962305197705150137090732640761884832734910961519303895691499480242716061514331035035191721308897215966808112611439068698718762400012293168367995448667173621965284650498861931016005383617608267055100529896815381377657305745571386108117231131320844816750728199414528905309075759250550249286633508583748564015911582083686996975121979367464049163752615689694042127325763463743823747827111530954967667833919488787331510437464327650457115484546738424442018476166435634779179081243644824101661950259257183526356048761387631043180257815165922186367613541315298718775603747187766320277144598720020175176406609431261535974148233924993288903275005517973866647457058672331139265866092330827206193781698275702851480772309286049809325572678311591210589677886392137311903862739371803850782775246838359748586848888487969842966499444836371305141843005408765315946207550699433512955067060309002557915499001341644372809078251910598445189929023578721862602097263655295451110248863509871744753765688924628229680893618266025746184351609861010921142423973230175135846549598878918401913039424462444703031353578415713755253751380844040221947047367101810492978649787399667522244731121507758434362238150200077259149806184433606249584944726758403077830545386436621031800172830829443779425708181252269469869520579475665089196265435159578703373673654124295298096279330369320149708284184503937011584984119981034443982716506038689460314781180189155330132206125855136118730593007672925472347940020905301104495551008460831896334397694130308451335683581798162489986142432948341686467178863032178071885790107406677659409497010258569030462244946007442649310457050742196862501496396101015533941131428135118140016851964243683672799770924310367652895263937195672361939261387581045845244030507926489955023692408852758779035518825088325592483367393168318914499110984601056880738159435792148302392791272816509224034967638017649389138979986727112054491753732400192191406616429738954994990435275285145465764610651733159571977116997724477261738662228107187601426848963714121822008452867819656205999316841062726098450830704037337965642527980807460091178327476783819879162314889374354164874832426165693466075623956456346385753213689765814906225010719640037779969606224235129733484201755303036290935381261445060068014197045059630326389063067736212087308624941011958628191848603946990329657971220337350016993431474027226851443686221274826191882548245438322852625258563569725307435189923273007797466602039320324710598120074200108161447223812423589486496223943090659443494245346026165406841003157807108814692507035815378780135975605199945912003327584869047819667093650605322338904745103409318634895443545990195076714317937783668881120986513323026975497979535538866194538426429441985347282761950272779257811483597962199899006447572094777355532620120321659327837526892742901393180492429281142877361566316695261614612236256093131943670218174808074935162989090700403104628146131516143200490876797602539871502259124611846062545355191248279410946984585359140324762515376344636037541868267360829287434740181217222966217907791536168962491666304124203927482299214030788530276278756361268635024875855293542008473199173143729569229350596386334938348474385876971090354711570121567829173839696366032889284267495952791337738847982891779176989186457164192051583464284027889577995492882126246189398566805508481381233306206100885967211249323754885060195836115182472096787782864654962250729426190226525550978527253361235279537105917584311625018688108722406178401068252628655966035893202106128272282226674086237637389877498520571355785492302873972030285428165057469525289473335580439580772550702102908313283819939905069190505434070699139560861137794166130189032577239331573072619147529105927427378024341901363863238450216262425428193296567818932765292470423295239717422694052920007288860796522380344756023526778453355881521550091004196312986545684728791442997981767981924715030470011834762473018129343839006824705540437763851066713117049112081110927096719633778518425574657952113126857661368780104501017588501483905281203397768848363011610873824098810799135709137223400842180683288636527268546540948006248684567246663601830577040357958771647098154350610209208696821988628377379260613593567282812663882530181782084462221421680342443640217199095490916937145664787939178864147063495635501791210151497974611557911234121978829842100219211116367041990539297004996542427343168774061960114714451955510568461847061960039682326324315940178617058364815722277693199948000505022116174834387341271446571123942687203727852811906129998916592313483219607902678806640885493680171370739475895410598865839497624926128973844509186005223618430192404577449236237178196939675913330354573223695274813149573421951543566604827765279794530337418512104027680918952047050797423831788483328830148960139127536959905862235400040266295016993995473216655627985261265326833404650474907354514293906626209541507580669079348986075272042919575434023912361723164358370020557788240532376466242563425190341278431352464148894923619697449294182015871956547002266547892293009955709613576172686275028932443111763197531512499003209738259082841379463820895252274799525479037969782666195230923532403629552422509590403848012429680299112832528724297594698238162210030925205457184096712921194423135015102654779656247185341910149369134068233128440135501881688220964122643331001484523077470975460377617334770290867055690789213797329847439624648552661692392973525654426965533784821541569191640642775189961677528533014779668132381856060748130699847779023600849431001973441933920971429895877886146748901843403425233074955012639315220848387211298610314494064990300266680232420511407451998907908119207448648605282787202116850226512504307792764699050414144201938562566179898870043683708228625429213042772219546118395215018016911789794001655883552883446049426836029594263657403198223824513649413629791788370172860787827221449190767218412812819657507731996900571352069990228412849562128641890346394517554895590128599964558757935041774076870149792671475086567497872941796733954769603237274616665922754899462176028310215249614620179564792367658834170545358965571294572130099152908240878135619506283696405341459451205850151167963632194993956364596068988761227931052179733208086690439025989413898079640185957172208434987048780823528064531946769998644854548035835344664006377808232570016573525258194853905461167856463920502754047351152655346611486407900348784918430325612624044685137350799171805063371040274857976362688483753191940903546395522166848293359527003865909862537491370638870556635576702165125824271449419565424691806099635313810067295557511023997865579481628656107315303349246104806005747782097437615515803106274143984967750585994147117646439655622520427684001050658835895369678633834175479434768147055316433461001458850320738858477719096153843929093787860139091974177959070268890617930158176066350243135366951363004193708160015770112488332540347606256402145434854355533089537913395494863036991020684759277701465988809251469939823411180764056084017911295845360455209196763671557598617488616689944496272911703363636879339534098413724409419511203426200398709936827160723369612362387469685453337659543269042617762039252574484984543946532984717932060100186913558452980534462774679159987450399424152419577875502753161846996746478367139421877114596973756724688589489331877108017791167910218444292276951110724675852759145022247418092205393830467414191203100543802193603884962885324666950160410306259645347458644654320619050724081642037318507120649895735797530118892145967099162488902774733614895845442997248038912237761312667103720963589380020550164310893826982292601173647635356210255142037336583078186638472214291911871962620703436123003838635984013083825539655581410360380117338084905638578194584538912211181009336293559778651224149335306337359060066964037524316487606696376538287087135749191928510391195020652687587118215165623806286381010839186890711299581088592964143553639906878811262636774933782557048102411915668541248022809327499891486442227043076257873339609895988691493396487428003026157772685298577516807067675013469653788576582801390038774682023111538635371306896434864144523309373466365779887637949241982139758754977747919570336914926621660038310002989203808859257437417274724636038665067377611028972983354064059554738299844036824258983579131438098736994030571136593496236279912788020678417207023389603744120778282987674296961103452469115372549401483627598328967020347174496421145340457248557756078528792077729527925219601566649569022460244175084880858622340572711871397032722752059600217303913862079349707795755206512560343617900464455646361174188957417873213666020735216674281334383120364463313353545699305366401134018542856305691544942342869175516169125040350306920284115148084803814986764522534101385683774147832924085125436490124833691453383974276308412518137772347631425597158613880188994767044796349642425194736173863272996319999898982391957875212825345405234110082187068428064848219554684666121023877083287465965109602139200175161399707719806572174596195459598737703634648807629107362135376668277598888497996466102106821271616474629835992244322593886844271939057281678296116103431961283801495496621114310583705919608373188376407190408529615212373753413053663209398471493860773199216174376283258805315987332090451257684332679124148407626403874230739084021339840097244028761577709964349891604339051844537135544213097761435846060397345567920670213576450414908688214578825615713293086915604948658685743751630581535889886587693258915570828574809323173001045659549782597876904951726981407494124077470396023118497684347115007656282933345543556976866609831054426390202081537394805254103086471707196766847429114521133482858729737893700571898879984414414002447504189320781070158254095568604707329972798112316190224906893448989266911103204382353098598888920919748494697214338907840647614395548268420611322399047338224587219371955762733911132482851428029160561078366039792251700642561085841348453130640315436430658277065738432564856276173506321139337192978908964769720744491700601555759758068959167590706847189060514302290637476384345230531553426885119529324431304554139609252205097493210780516422740220054798391130680187897588436949849678625508974198112793010084491555579388094578965941306326376249736272417484298495306910699837820497121952836197852950275914199490573637726861706964709733945832699470627490765541261905748798864273765513529264811742914538520409616431252453191352169683034761267236062877403822667557757969881388999275345894303541836380638139429077869097726728563976689533018785242844131826485112984468247766355226067635039664379209072274512632531563517260272158637774433343646612082852112923414054233966351466712066468909457804732273159031815741578262795151047965686726346503221426787941416920282958749565633288411631475845814680577325410066981935979182556348841792974506354797376233144541150599726999349922265705523696268056065023816394522176624345890120067475755626632417915008247041961456977565695501644558295931827195918600765736411040794694319996527161631611896927682872955751500334511511723342271068397966026649987042836714806238884300164418800086495511865540494863181754592481839744539353554691513112024550799919016477629011740488887112713500886129063034611879171268632365694138133256062329336605950247016656541244285416591383480266605003416255873423656465181058537811812464295453158371292996021307959492710319732015939611560987394088400968527889154515531947397366349186280474137801785973082277642224110957870132289154407659523937873466369685248280254349697149566592732739723634539957793568685852366302259776318041196114758916346155934392457949720045147236579781427512768452358027435050413830128338306952878580912433818507096001791716760103653026868992296548035992356062983994489606285159379127551926336139271060930029124095533636109132478362696344792227510455646784833283896959169350737271184495610622801555212579133910939347745039625068283156002944010814008140014620722867101653346118422446247872973926097688218028473206496567210882007509812843711463265650214253758994017107195669604423979796831225750020868223646048165675337101852154261013149948304837949529333012325650513699358462213949605839616468217029253859616600774371618327319766694380754801526935899309711511094133262353842343621811965092162987916680199277799939377146931083124096080833664555850889251512021915013611649483346447975375032870489120484871407470629855770694656995650115723216661407366297291468779911941363130788200251516050043259181145280288466867974541412390063692505176736409011880720183351496342955587444962527142444649213575375157504027830418472785480949591027785139885869979713949802821579372244757028670647437033286221025257591190368891574927132764853832313265925503629447986533897435280245757319709770006141963821063150505745336697288777440603016873523264066111410138225462324001111615495744402796991415828791466156416436841624813553917104713773802024195006257228623580068816152821786203038438757205298585201887435381588153704427231411764766964902633679478273995296849514368519221560433870844185126918092134491742280403765885636594490789615061080387878214206738102371565349801008112094390074028739433179796649151866710602036006868938428061115445877971402142757247180777977322725360103176853842520613882214713872919973158525397058432654182987161687761159732527901614877992499140571762479154196346418133294278326518218699779680749357673309636938643727013408292979095740125930630097508150793150327600775741349051439768057789586925063238445547020933700198600538767394659282258397972328257225843184114922496269803451915694333698079206983994989013362380024580114958781493082149879900147264183201740638868331483081915822811297345079517672658223208609628740542107150375104822821190674051547028980367885727083505896655993972936810685124838732762600681928351501881648674419231769231885004237095055184194928710502373428061835691598084257443737188175933788689960871382826265974490010925614398465518546516183135773486614435928769235058789434004278284920310906716061679552563951023266553554442686757568027580659737018365095753809308275596676694873623104796542191698629209576868290170944883454595997913382213743403225231666981019699236209793832229790806986235312302188073489771136314742083925461756991617993943365393126418090614684506007966654685331119198809197245008973029937300484469167768901225847470498122311138839810946262108309186494755185916571576419873075588202375425737845532350795910259056972735010340303662638496495425780381922828648661920878380078403928979587529987693662612910368528841669363737486132015727165444770175368618564316797337809546733279653121946044558915198466712659580325998739312723981785584962533809701013365834002465499845489157832809320133255906185353156012962123318630327752474724740897340425064120606399494290941527528884489908767920518810825017362871017052903272818098607095705845144864566605673421139482777659367831004328667475307019081219398992656796516785184056381039702534581391433841103183489321014811715136598036442183092022270499858494279092538587523201679902290665266664402488025366978342517520593132877130443074628017937479230624047250864861301709534343046150413932333495154107938664939151605154430260786646159038882580018306660167917848263324628465829614815626200546888664755540138774289799913152912908121308926453285402643820953642176779119282046488695435155033754496158195853164627471072736171663850656979617175038817123541400066642793659718264054333305020566870810162481475684893522407546550128663832700079329224567845285171194425535501498318244311344397202796298665897011742522712359247501048237765553955586485470047575746091628118691639606170534167864891688644616397428656529705103551315004145048474257993523617508908974148001670743574004725034993883076665770402148177033976330528672114354027475456659457839394697900422253649387786302902188346844373928524532809270585905765521828564239322177828152499428274855868856207726093144662189214506326668921215601236973133192357077916645343956766681591299299976375832943133426805382175217736919527816560524470470344464886644638227788069012535187158937724091101993183199873377285340054417703283844316725229274082642964068209467866637046854880342828895362668268750847453828628139668725222173599839252047939239834144489272367823897497929306114127179488428559564976715554249751830374556771398382013289707469574655246044674291127892175148404307790743287710693016503048680397173629540636511999984544208996642339630325209349103577639099360036578457126787441343711831292067122374318110571456332806997852540438241308772805005275114400459764861180702566085663641661964755164502517620928134865845500450966485346206764550641250600084100090707495095368962097796321494750897923792024510712002500029087929169339729592654483478718120662173919993807242849420073660905235347218611733813042234104600914342794366634448155419278186909518272704780909053605508980492847967891308101987341560292101411986903991896989564410252968553368934360481724319399068058083859441335990638328568476061527922416167859424036137289960175222778060093239751962952026564699847704944544174633602371850110741123637540573976494560371367488388828369687860386752030710067559691973714653729444069337879460964778265629795302632704436571941922838418767535464406731603374485489321427294450748213490069594253823242456967968774182168874864038948945338258836308832489700990442027648288517112675529854197026746308875187888307275408042066836172779564842027465108480199498063026094266918042433586889563215758160025849583538146850964182910424905725333776648443714885835470456652904356750463604205790705208327261387548354621741693659679335383020553878765254236521711034076273108167379871245636737819203758925037258721440553204897761975756504032609659459226363728158481379855967005972125005353384590832330560799017590377348495787953308391616645292271585940528912640876014207788762782491953658316039848340125514682195338407847994078277303607293958219129071010612305976874864042373111881651645849124390700654047495925032318731519862522375011564317381908845167910108805708894423452458008523159606298427587689623740327396649201085783130598882358356869071574248006969852023794380432018706878682632752969321696646042490365385105832078694239451249893049517859189967743699106967138661026966009690885290874854987512081361138675528322578457115584355538274214499596672805226433666246708101739485334173921090905530292670828401181209938899103694328401770424072166894117847153857911674711550627202228213276557653049255048515444413803788327563387425246150810863344281717520696788470920084162013327612347237452586665509149838209960386709219547062740816520439679999033348820652121820097861264480770528410303154403959974564253438712427247872623162312071509483635994067346112326862516135956438315974442834790229991089764583374618483260192316482994599638267750285800662763864301170971420402840555927503182467772836845854371491715787564379625204668454525480044521496680497336861969704649742671324406046802508624094323227840698992358897091736886846229797264606085855290792057973356033477812892717359386364400649228723901398614898814344348598724339444160670458147479784644421258611739684457551008785708835501103994845417842954591007117921152601649809284660837609550052922110131476527170550154391531401537236321137077428075188970242109952560679994037677707966349924415855971634284805738779171053474049109795981080068884424918850992125654670520402415287445728963329981688489653510420224989698911160915007212755531981180602219197297714349125232770890241950742969546943892588284287334272988846382584833094186373096372142449376983601259798469354025082830927483512727600287525053912841041509235795359931943408843083163874084738685134271268611851109990028848221337191978501727652898907017449319318530229710374688297130925435748488330743708007841718913230301473432478049985556489326001070568610695601506806410665882873689603081757223540668134663784240745365399696004930013122723748780157672973866977234854555029210209359184835343354896369203264092883413295376379545932819645411960299748758512718551481072012036988233944089890105858466216667647716312928420551193835801049588265164861665454667373765955652427517950078116642509952784001422230117444592746809774659850067454760453131534488505437004035448160015363982918231112982203561729394068776610011081419957027040570769839053564116201531257049128937382882918718019019026760060607515478929214295987980207081062986881352372278339649918318901875075552447458288374139734888957390601104541904818481786762000717677169635170947940407906029965804687757307761271426068043215506945694437002146851912063162118267267133130278043039223415301641697038145917897117633843125136112966711971503862051286696226639711670873342930713971997831154697969906198331829520728264221612185854152419741286208566287852341735214034362915509528703728373731504936264377973290984583035093261351423854535352932057244999069231582711549204603811435802050264196982549589511645740020271399544888945949509165383503714557548878756433129664385798423074753719752287613941181429622097106917728810671463358376132132653644605928481618599166956650587974775651871923154965979266950364301663374239065550689568498371273240514616653603950474003872780636647726510579065493643268736566536797531506449126478990229631736065422158950830197573130941050699643650562237366779179424333109478399767908593571054296816003550847563449603416443053232341752539435980176029447313678317956047607448045878851463238146667076160380683734744025014805998713954037055043745111527784944337943059678740712076678540707243293277143254631677033694241057477576187292811812562225066708403249262863362445582771563903160140914663058728132753693868710556660378786823296448254393627790169732330222598007891590064673804689250106347187409786138550978533501345032281441977460614157306405718828570180123801094650610081153797243587453657197469372144229734902355410198797627215436392944197160658489440168183140077358623647281244136801724041414602460151024610802212894751076872144962993550818729839128449340363789598226742823599046610152971029098954239660164188415889890186035743086388808751958866502946396360885772162202649092717217039530253473066235079972675903427186780808410211601022354178146175694177988166886578171967851524735683066199890232725091491709791766420779297407500963361709279394162347763157391066320725457033844882149024408175323197775088858877265093997645391848798191020422119666161815316261449999782333900132895145145878693985350950308577048833835559002809013407307436463219474959980151783074286429137690613056711893002457208039022950808045172955098589125882477904900253828648379749447298333233669768016288198484053802423936551568946646289273857231448637621569808779439190229278405210862249501815558368013190427890838396769793862978739713885148560956073256826083521228196921071702458942347382479921656643174895651461454238886557796193436191576979704465924845762232839319843566057964937156748638822881719019172379698402310209432987906552712105693097290261878722753475774094383856771466009818576587231275855711807180090417989463763162608992879648498758093632492600643533760119188819646103727193351309923993511344882310146052419114728161102068542448398708397782078129341098144448342032311741858900733087670662040267470885430412048958159594496486294634196195041426358262672971801777181562935651078363813509835828972387400726138518170298275145072895520050183425684136931491719610392033759221190980097941353296142349303129666766724569333092412178012784976271858389966337156567035331278279563033060381503622879577744025008307324819306659182895109952459187860374050200653306202323165494209785955528797645700373027767334015977721716758253167949443176085292232498888671260577419134290262152786402711555175174410769912179182173379351869835235486687059326029965250330894864479823056352511458524092326002917440397196930007774708894902443161410132772548623118656628279803321295970826068282781045307314989802789958171703452746741692075077704414411828196668892382048491636213862089848522776648189225485200187165477850587283777751275557718498005064368852129024655047951256136622379371626340304021365437043811950260354063256299506579341322824593864278617283310952451754546630205836248607035598932898397111283440354521662461916197431778918664785310012347052949078441749851493117077930858062918753343293402556049611915696798681613383255994660586000687273054507074945014221001617271515994119536800710262733794713783760637506771030626630934562299797045448121742748481783076916028473327733903696115371573476908588504226206672126253186607474667671594307382157569917046723558144352040454233708130005047192804325446641327848871717891565292693038946272962329172664314741251639860223846869011331195516493850259441384760187688434196392629735244054456263665477430122137431899712924187070166695315759431126975475614119824982156939338829648161588765369151732859540132848592694949739759657972741389392592366640801307508980011297454545600731401279404818542433632703625280586793722548367657654999680947961628772989303949495580675409458624358966169546822103369577938086482972441184771245506992921270691894363858519215657821116390836474607775177647434482433632514430165735713923929185596811463487605008093399984857965312312863162143439358147671667243472988847600902612970660773214128190792361779015355122040862342434788343036603773154005046685253507990727659091027126098220239821207575463818708238867040365387465951593324488099537618482623452085127389915445908720140744692658937494171467699487517673517049051113154854713792760004555286833778904822883827183199976110161129004979518490847821687380075511526683503098259255482363281916583051910621486717701823458067232702708557316110548951761488607771890182282547421774020127966814048329039498270887652936276628217699323776632711956579208491088496040170617514089945938531534657746628112755358717258761946740946807702705486800659228932942174129471450188276352004191508362835090082640035498217229522479212261764077094610254448964790877384632155849892993801712002643030204662500503179296694520033537236385789654811359120100217385941947098120510025746871658366447237273418562484461739505075173806852902667051552210224394599508907225357633611007904983146772207370715893189496366520922596612541893119612918850520828632912458057948206387014926395824682517672722176324574603098161224872233217187581333961790177873774760892318088213864533973981203519895484866466315528111653669863770006437503236865571988857518211748417054928169610776925122466571758423967165669768381615705188415243452174585458920348209279612887351906264116805891144434012255349992825791862066181431791106798525653193482615676738777182649393332894247371386726061757624724838950107811584001164618812193278834887885762417113108949091583300206833968930662005818620323560066067672166491617770192350045052129727074331499482753645842077634965195426967250665909933859242214011332588554502538623547039018064137478042694372420189600630271789304042145360759079098388003153524802503196782734447194067983614424188408614901457123519811534049218936801510850031116769621826805697103200173298375433129688179641640438609860374545695656062687974869642581406132949446933038269522877303987938612513527186182758929677804194765278830628435216308092498572273211066873960456194288916389264591487807471035358634191606472630348405264006858479526309687335697716076293380634163575140238025655651677950110926975090513455347577499916455332762518369581513575249670626404431110068354320174020599845671444434960495527059213720790471901467201680371113423887388059380752157537572260833396617795047065627355678477959033664294284465409345978525351557888336892972479907034483316008423517962914990668330281326355507426968560188635075762086157036327655035808115729473484566398542255473644383904190508866003516876796261586267051133622962786067950423100204797609583380980466245391714974261585182177175005812546623253332244136360055596541046086975480230727626878694845963309209265183733040895655718579686948676565595422799043207260058809463672219006322356643875619753230060560690602440773382270086149603397497404202204410093256241815217248177826406813196714741104516122193106666340605649304409542574176057575751677607197794894363451369007001020516307489267819594356203018177725906397192541252507372898518783607360526830276444929149776650917342284351895348399589677667678025438195825033275640734734012183954068671677722044359184018618002699614361936747086857638287143477710301688396462861817489514790482137391210016544254386251901098133220130888246075728046787695796927634651642794056488408531793352939538893461279332749934551180216720699053066501220087125427484518865482964729136708622577042316478229204937128621513723656568980327784210928249079703831529400576588351852348149308952338712783208063355738950519244893680593103327977003299665323288988606384199616934580905935810547566355299279900866237361147874324671627504398750117321345501882004463847705980303638228174990439132790640211964136566380535038786188442008035210253005427163927438157823249551849151914933032491991355548206772741769443269008455608214329944590260701198147134414555527255518512762475955050440445528349579895922637252537858128388208977580734872907596308706166415156525547549360682320626529298273512040208652255319401716425156318483759520708991548282833685379410177792389264211957164455852871287479608473292338032803518131641878565023683312716779850158664392233371639213225718191396327131590162310303813188782653821593267527470140930025090845292610624361031787420757455904597940652022133991379140056373044308891858238063151386987987592536795224659988480234513473356978753059408176770203242781841652461655363679623726647735406545030018096897878079954679205037589046952931447731220949174978878858505008858359420613319952591903891056405387199063718451442932501270399939358639293659795970658318839416659419882827600217843451503536786669892213518291840908026480506633608586345998450206798797834572561838318533939340543741113442954186381406745432129552228705612745273460997591163596722435603391783962031835878092772569662208115485364191797432309021857495052108494650726489829340070469909486115134230628038551135812762905938843543578711456590531816574537532914710618897760755545533425011530030274118474740762592932776481127582668392047623924983657647118974797542523974502906853134119061388429893566969862847413464876573351698688437934835377010419025872012454355482781259161276829991824334033820742763466096141955893264043445415225086026484215354578232770320624285853706343845283214960488265074308336425050406669004357166748909376563183929513233215677788324919205065327002235480741014721483192774157489750076029673731573298750220549815750439076431523242392159493631328593269452552013511467551288009933368509399378757210326442709726230956533362457186681738406330973974329105952734740526022214096997220458778246362118495255849616697960823118197359878069342701420336796433820575620623508353195160873989472565781747964111345752631419962712655934832565301205193035702778336539632674874242044413238295361007517090607126483583710453497202152979499861658262811601372513408147046313702833557298014837874640310705277740171999587995028723070274301255388041093272635081948171355453567987055714482711280284596631633481842181465082678843519030846854102021201032397413366093307532553258537960495440807937053371573504642827071149696249366307210728213102210779264889118763375914577330652551262244806645992761209157236953665307429287934827538427544156006819084191212164571589142736668334582760383494993657567904487158055293213693544873570519876691008327394384989551612603486422448312423267734546214305295078056695895302176095748500095021147540376980745244444122405457166166844474621723388115135691429518267406247928866030464610377005325895539156234799988088764940186666864158919860900750487448696114887803207937317445252466205831335197411098329661255600293060600914522803636104970700328999548618305310683012975207363427404829019634118289342938590009791356969597381804714986405842632362524331378970243152582761805525183041605484758228082288480159408996688831633142149630098600547839213903458606432618538003663371559621748934178309297230009324639270972268395912232598371351946672255873002503797342142813089770688371363588681209103906929146477889969370395150395169894927416200635510655288591195976387495729873788310402905225667112540363532601203105139000728388797960104159214786672727408497728769937138424469418721559650499814076636104296899649292505628839859495920516631727417282186657768001854962150686867740101032196167741018149140743222397850393869347299078713236823838832699370962716238563451264997185722100088728109868076357959732896569272748955979919163600356799940909726690417218198548463038539046329330461699471723172406299311673590317639422582569953840945616134195653294944295046844031852081440493287421284244979585065681690524969689117634397880757031961215025898949831693915763136536844185664089495577342890602391213453989696624308534173620382962345650751027157537129497946014463838550413243342254456878986041541542230119917156399737631276307174007147287805155357567843126672241050534388239292650382472878058649805755654948830474515715128935759891568129576308547615418373032644730401121367179089431492565266403857568924463224487561435946092511811967092498048992505054233822595238949793153764996310185353439594029502184861572478364183750800915324067290359251116858678062434428364300598427082291973728786223459779317117436337468393487242224152102381475030473930967255956012448640166254251107401303779050049569052047586331991818719886093050189147971654011276231045819583739300812575594573204801863625221588734801324767749660786738437992951286291435979359660015627332577262951610002612072473386893317627404677278069187685359099383041457662087248895072110907848959406002858204256956941117670324706395512456341145968665077219726607516814533299400973384322831734342167748012897363520289499816461278900337044891617131781234015467811023619003052169159959823858043292429077070005103440947259020747546279131863895197487638564769405932238958431694615180045424570011090258816955828293559476509963254322571847855916105617836080881230894195669242705705920410724215145432948702860973391364136271310167610164395695210445405471701681882020438192923600831558161127189121549543757492044905986165538620961514602051104707513942237957041620742781881285341373278819597766435006608271304173047762467698915733616905479359858807833933251955833191450928535963349399646451138341280160842126124279908369841688015554174478244096424808061778821376692235312663879117811267886912987588246800135735215870238642106265999828036320787163233286660882984699939339655618796941568922681765356742032803624817514092382387400988271867875059176832312039643185635399563307598530201729283615269143467268539293551869329996255058087111596989072788532334501571660587838165303772269650509781073211459618691424956132658185878035076721831062832494568735934044785423204590632855241995538927795541713093442852510415667243951304216900080146709327836004679651232082907706581303201565256982814524908012654979917288127576462324948876812177015335714344023986111415559126030247542819119004593718227476281721455268779448081706833778015414115189592172530140527099609495162074897394808012690217660173530248233983549395912454500458994772616831596113539674361313161543642613228741522787212253756809966013514639304561356431380011940731134982802762297591764308009973879971468088165917301833727878661421266062824828094777257533258561449822251449533511062173994096625748812759549796971105004580616523630371082739185437244489958664185097124365200154392993451875583748298770991879435110482002354984474962246435251481117091453560136162874202269423213401148991426936527418339247339819280299154241330546504900368650286815317715813084203582039709537363417203449610163433210815707920022188795624216548929036587414895625651889647880939321721099400633493618999593910474578396228828119919624802497945706646713399561450803483050032645813043082795095796001732174025649952823763765178139710874710904100562801961665922962524320246274345506431399254984671840814012367081942426015970840161859103702292003264132597745149059857400049291835430339956028840307678119203032248817687246300474794850356456661123199554996865537059058243085474386829492984371975052206309139554051332946318374394802106954260316252461906607512085145796794831933542662191700317957729013950186416445425714908198732432604482650501553542460365834368883834921948350834814073069598842695660137632233448170949026357664419340686924912588558592772091073872358127174864775542916443569886323452727110390036450576217786798739711192755561755914282750755020307281220620523996242986020428301265528684300501384758000562295447847761235015444123513256624083965249641032791061060207118935789130860184511634359397991796466170905104756668086200079934634168829216298909431549471767333581224890096496658397243017812410656166139511923790298608672501420313349362040680005788174938451184041799057196687277954405062404303880167912568403429405190295344043807316902610265826802313112091731915122507316327949891829125308411314657537680668524867667199099140979653491510194755008402298711915734834083619204869624159541762961878671231822860749666336894851567737738423952869220970001483607010121093155913999050151182998652976226470680353809959487279563204568681934325380188774618641276533337317139108676905751030140923697461109611863883179474274854012408278494626127291961948142440631671563216695566095185452246608712955671970937354495829614378152308814229534603727478311416251554201027053104203525165698313150355499051361207945523778121052152851050853654172594972849614277077746639923817178522564189779751788969914334944684501466785191104520075284642537142229770705519870103978998682638503370575136805687119838765646443825930219876387359012208958807900421774406457001057799182006203525175218201057552690447510516695461154222724765702017447410097386222746013684685133768298511557556169800106192510481600833388713379248003279037358539049336321648881633389363153503592971913064503338021881614401996394141294343197167840782375901568733991910265559461433495325889358591301357199608062938436853730080482985833866826819717847067578908310747746781726190998686214908209075772163432985759206111522931281633271968576421679988767011085262568649234531761229766856941508100836635907409250881443643125241345712541160929692955181739580918039040330926329432318429727006983203153417784236495512019185148993703838868690479155088018399101812953443209046223129569207066339559819889616764458746517794946593055100153815738161049988787739370749144906002868756728590310796886149415150540290215015404975488209091960543075931948892727860136427468253089195097068357568434109686441283161616138383559726701846203028408907849310013797170275507030862599414297690788713644751223727313835697766158249240536800756476440935412550288761060191646341732365645000325195954989567524290090654541937156347860290956793738642849841212935190746708546972877645597802990198912541603585503664911678155695786487270995486728514722591018194614177381728398469265439529167659463093667862446803873253953788855568446562146683596459496666048949974575808943377395059931194605501163061096967315331721930687861613031439117233324126962368212615058871500365872210166450229888769229920397564999807916602352212220168848000190109934562870360634283268699760629834172759376751682716552055683970272100577148865851362311262167312963322182418450153566991546995084821780702510905738354078136289846186408682533005414549051105326964255411942446340422955726463370133602483662206821418824529726608035647766365427014673300997214933150771102242328449510310626616404553759726991707334157062058533012252010021818900378506442027280243091026236898954173306099089740404344581375337820542861521230070519782507434390807229907318311725762964077460466820695886161138130041920825868707049320725227889310595534874053085090306055870121185049463386870095231131344614810647578174739111241359604381765650032626979126842934773670612089570021039880976380556086937673921811265476269968949244395127281579585781704652094810176472272520968015096413955783195312119655247050867629518755129521296037016751514895317296448406775973207732805412229702687027977333095364871487080703650867898355786649650235885110595899260614544459797871483419730850886423864449311373234955850482682110389988145978180479692083812929926722245617962688958714906735809512353978331665836420780292267781762749235574950030537551505472721848138906217427896981412737252936728938089328880116356951600227786403037748201100611529452879286880487021794065625965931967854780570418103420821896512983186585310947118762765683879814728660781133442803688447697694033791514836019085079422590434824684425745669792581417190297235189903813981822247800073114992360689848568584286758117040933201330228966033864148996083853021566747810629033053419898148644959323733827015508537548201512496892211872547284937360293380670694130705652441167790380556378853338834748452653789199339138594408148387408194002750668101911452393720693827669518527878207404612479637225441033476757645614971068979778857373863733219815040369292452528977817267659585863244459627227276281257732444996651108781252005288416850410389330459452062982986716053825994947538410445270329431153532496619160565706454891296732186625475595456988720588586192054952902442349639868647497302901805234421429351977340025146542517489171147240431322013321901166142261368322031468997404683695475291772599712806010011301603560793509002359177951448382747766840203029935672807043100565285178893744334478510026745425941996801942657980081567439386668820204297352602807812697082866702677881721820967963462779604080565118698780527475757449964985683112099636562452441258222111312166331521863731313794223679914677226169385414318813157995525536313334982845099880718914175173027091315788724844149891632505256687707363618429213339295766763353181923861138334424165574471487440091104628322452102577320207530340382983735793019067587013063471195921839292894932104346139195551700670260709928723265793613862995521979370037296023353724694612721710166761358715068564145100542753402119349380957832777910791764870572403083222799564379589662806211412560677377272406550136454980456844053322818118779877413481028683904363934775625853043700019850786298706030244677229489497863201068355403820676621214388447197543985733364565371160455781929172350263202310224077357760804951968081185595352075968962359488243081698596531687883969199764797109746383619269434475135670635108527400453153464886205007484685753568935895309266308972795738282268739446817247869462714849094102956352532946197084134691857267880965295312703398268597556058166789156273735997215679542653371142131880824468764291816813180675484610739654134550612009845031556412515643254048331714487503215286388192869351238764941944567220785470648864114419295639508500528788125804139704955263263198261247018927906498560844124810321184967313865706461612740961031738170604657969112164670340729900944383860497418914962736810277715249644779236459034797100952286262545235608836713345221374096585023301349392379451934153663641386955586196646386086826881842132060105721421436552297975639706168978558788585445094841474542238553717978046656716908558755287556719793663144844722523817488361640951176859014310263723613775501908775007367941539068744322092507630770799167347167318690723339238709606683606610255031365121610426810937789981911622549871329588381548560967248836268380207914333198175646863109212384459699047568207077456187173456115624861511435406613809049009527558453177957036221002666500462145725686482132991576125156517031631470591226972400995249622867320889038663992247884229741452242114755238946866306351150712688869450463739438955766268277683163586455474926783383802941649639553521656859695964410966810345214551291081668011756771218203668269470152150824852926977798919872599142398629177440837297707079937395025869622079698336150228066236143989743023060774601107175762674710799071744719125800525849871003247320103621030785667386709296344163507526409666697849001153148360821792176910645306864238209134036135625248312083621348835335250170765392475050273269236700603864996193933243880039807582438355550427526015849087172828114371734618142510661110541802020353737232704780464681155445082187961455480829874544356501806943621866017086285290169748952863088113789443100813670377396260036076230871708379055597573174970524841679771333986387328167964749445774208257090145826739753337830323223185044878949144502663660900720008833035926457283582256023483228976573968289141609642709252545119890790426619398156538383039409185670227900864431237151340438068826329789403508254621177284747295011564890847637479319629194286650171892987937361895818678655919181076617586708896170091069685705850046104704009931324298424133621288246502223139563830797630300737992668769880145952083647132238526538654234558923922246710675825620320656777836320437793629422578362663558477367162544135978903374151463110584551497658023426574708589895084904552790647581911374398141397320705234634016876419714416689211209677495470218606363264407490292701156702674725604340069344406645447461873873101465787864528800669406075171851969913324668783784883551370679931109597883099675658245086212701828434477295070977169198954874203197185310442946685266080520168742566122095782214883016267102593190088242064570291303841320427948134060557763338755014517112319974586794510656996178321505898545222492044148957320638523833156926045330266988018631216047296254083716844376141228383369386910017712105433869035421561461622053670954010672766592513964076096625094501667386908834248809541959508168710069460511445599094884433893434597254723552474913901634504309510414594950183419974509778107471547342989074187305825239586062494175566905379094973745230732770264115850946779368359254305826851541399244960512877062460054315558101301855709232233501831240212759207628084529104121536357580434230501623414345784632860012839783323071037725505699572885933704054277619577302460703126995881474966109015895571286482841918736550936147503218423599824923176511864715231459367392841885197822812192332892872012013787819960069156514165899677286632635791103505467317985651764250765332466603876033663798353628043815494629451587340468103862990760344779671673352059927646442785379561439202209979984159419101273170586963105084971848259496455444224298860006730117031001478631249056068993518933208875601156372458800590215542995571900257472078852583588126661991529559641740714609042105677231468799098337619788243706500863240058043685772852632258011604013225384397817247837489819154910967262056325134891869321896979563523569646093987325033830601100351853726852093483931758048022978109607662778183896893295083498400036401320666608856896963679437867562135498867011576072379445145098310549745037063861482545591277323137024354814750926166379933388333756108388767759865692306064388194528962377807005969523319933187915001672713484429977180161928343755831971924534218474372077862502270856129032970277283229809148589027604779897959777987999178193332120430719240019510105418376929307720285783915551742302454795446886976399232348351580138785786376419435065112302761136184453739144845237056133907127746116407127551220569296454100826620820621184230839820056546794314739610784865999284946522962853243350477287256080885136182267863335635796676034439262243141834859321578685220017786745988465788077107692875083667061684428718295010965251357973942904031133617283651541297098995713404888442356846301870835066518943900891710702466050693878441362703979474118661537503184247261096465487489306119933109182234073019811169915699586474306993657217812386677691524050569955963853039032711644159742080505693358201536143092937858175719688249427429168352056458081087429850227018104175278791695379014700949943654032031527895208507714973196977752243227950844014965262064344796205015325266909032042648033412006346671765364040045618049144097041077855061667825132297331485013189037809814879116680821338688466352743069796086482779364694124333143239571418583567074268372369435743189933393103566743014224812344678769312026039102019721491228548080269763874304625145899299142756435719631338408397467179404101302171932560978880974680678173274953178169897589819161067811310851285811060414797547405036764091134298201853626421762905466351092222532328951834014247055480041282108121036590682785151249924083746861066646018244728644268019480667586760759573861221552181735812408243644144590242858082758430833516255284578427513444585952047607690638926862972437044509114898358941688451102753467975471354004691686334638813226112816476295363406277790332835288695285545087983864275901547566792582389941754782756081106043325036320354242327808321568453733403216255931082431256566821057615482210218417178600019128290100975858235305914781943445952194718379295098308259488955130053783201919795208284190656619406266685408194110086293649337814772681753192181923480639772069015180397952534638175830724397055987102344835226665221953067988183776656360757382037807447374532107315399060198330554259268188256273293405848125881204855081803206775254576545900112815629051050241662997119971227448412813887287734781515092957942509990076044854952864254532986862424462053792162553763171511329041528457779499697507835614185283018518179371486972717873599533865769181585029006607107268748952215903601595307499767696893534842775994371571536985386909105143068046547909687593460953517948778829710602139356635104881842909013412415961793467790112210634031412280730469319060078439887202730155492226253716416291225069873222984694106403086315513436088415881729735141690585570941605078459530609548200687873912405180883711005153372762579185310872817979670040154788433267505453986239786013501319786614581897551958155423297608584151872277639896758257526033496668733281365015691837819962397639892880759121552492680548975971301066302617549276589098496556499061122471456952494385659611992787938937059206988966411565537068267048471022433032139458540513233338366125815336074944666983023537803351934351694132245370995448697330694416106023210062417431254003837843480115897225853447985880992472279424760221122129513465569497120603123360876658089530436843855419921629954149936183057594667793415343747027546562636868273888901808632381742826913371026211201854510445674316419114357057066924434162919245275025368864717312158448515938490205290407506780311067940017275719299795567741711029044472242333134782700819035311158301552800930463713427398440572346024231820041747016383255698690988897820608399528558271364970544935648177025098820438573520608117576833382039404659487172603949686887883083704002725067230232237999499417564286356762723764130221360068125525173194244530379193923079065275300973345498851219507926243972749754962973898268537254432954659956639208809283022533322680010496268752394215976129510614791862469904069213344966379336295120181810724214740989111817554296933865180385914828406345370907931977248137797781232744104725583983940370758989292586979605775680512951434832931108844612898166792748850353195668969772291377566269308372117976255505236174402811001277673782406834343593810089430058350079069941359798854649609685080733170382409729847679723184680246875260958921467513477087814645503295740514563761803243907655870474043880024110559325226939774861993892627085949446789741414752539228710798926623802780025364616930086996543964570392922926853266974742874484779340626988172594639245089115247290339379611997108367782645765035333532368167847238429085803508991238357172956027090508789785017565195396370201138787533879172991420050695062761384037760959366166708393139482599869627134824085473636502117949103665357757508665438188927471015342784633857556264227917512474466858078668990918831111966320260751068050396827369621370376417261415902507093400582730605364947759149146495198273141249925281029830595090819179249626738709176259318094087189587121282349802877733114610627570280772890894850642640845678811409887092063869490930068059784240609506211762263758709491441900101251762020457312680700561149224069828170614266261535281968809676243035644617222505909586391914586723909537653363263399530029429866087434949131686791396908789200151782904847203457093687812358628648335268571729483108436685342179419058187842878774044399810030247507585816992426501368271769782083572566040204053576299358351280226847287199670343366817922536759881773607378553929326614648489753341854089063806713729729784131204170359533131499546347660638491802237555178881171657331680835696011028757410427009042572004259950474547412077541471489988875730297049317222443417836200257510109355505814737552896732532249563324994910480730087058425439986776717138993805714564623927633889642220007706655486935266467248167739349045807539093230962107598552972641841246885523224778234112838051634627663493373968543656375726003828932271281095409713358681530264515704641259194468041545964602405334074545943931159892205186035175106705390433507832964701418974731234416629624151567157035068655133208515861074899219797720373700525630117675503284694686250545296883785259413465772453049381863819384008729670558786762959001060218380012625957670213194227346683950310071631630745837920366033560474643892508550051114406430681871500801994035490012250534261526154422151606811051451518087954453610453849804122817984078131297704965418299540569273080304698969060905200243829438410703307005846624310416794882955774844384752459689253476637759673157637130619621363828287819933925661277920875533102317626375410548409727929900241374531973196130840000647879736270259058002227149629078552423641679472064755964472014289080372694972366222664819252701971477992452879844300886557753146106576826354873187798735823809551094855576903699134613900565305929127073451821831124968634890441605621273528849169746350021565433064142239117047860365346703985582006616392254428531107287106445035710260023466231547270604698848995218855408198313645216904747431048988080232906770562666615183057238676395788354028326760914846325500581337531564111191842675167636190336324988211992554833593743108154923195317776788868914421137519191353502735231800913171936244147146662420036952661016905115229679946464378571158903880032395765355334299806829444569136842619356458154381417296016933642015569703251282523637554091084019248858914981787554110360391335910092744550062778874949731052150493995169290789117068570673966884936567372231802583661741155755557396895462967048190025029019833112570830622965150134222990177353772007207031406137018556875063548870481333316305512892220534507472773900320782060561466671680479426277122324458084956695090662126870614186171707719544970867004797033296545799992958825030531717870216003067431390968382603513084157450181844283358423233676849317094613114370279980781705086794251684814709370952607298363043419221275880755006242198374075426900077165282881030065096454116678780166222813922474076671243383870517264202894539489386976082130808820574986103374104290209102650010499980876404776662609338989574441920228313216274313404662945697032452697783935487415811995878364506781229304764760394012545044886936753466407983374719668468625599462150038894419689295403670182854031471030577623817342562771191943859253414558727121656902540509021529342589423270504648951383643189752259698148960909088383383176767661152208789298886475777141606504111582003174092156690602572021826084352824258104768759728471499665555349504793347812557458674165193245724577248085376388839883536351164786690899847436494413832924406653603335813391547094865700810209461846123609845341664011332363255966802800945429605165855006351427232294985839585858352217381462379067007361197868267844648837616685832904835599632130191251773286493270891844177565566369010344420501367656455462853561915271339860098444666815090118415980706296197263987687921696967653708909333136597557832753937766232577921838313113338781687858069554255665201604400078847691141733774441340517720801311661621257669416399970831784900608373431126869552894863171479325210065559955119718304835336759637786167235951108935174216863430939710138800014736574285538835534569274615600239227559106258063435992033933094068857430621709130870040300168618272786128795835119060750415658860313892750656090402397950769074941366990020066870642217174403065910434623936215531597053672561579186661137639090195992575266655139118928353220957085392944104463640957305945860425953758063666058189407300220829523915375786019065386312166662315070455742935587626497541752058014583134737501273838655292558954948084510208254649413703693523528170727333623311720991329646206667165895782385924535878280393458735787064782899688533476760802410600240187023084069876516299862652355906867552231262346636441537789893143541564898922868293849207502808149724920301381641019055014054134018561672551509672587494263283905641149597891427521117506185505526857487237282535986897896382852036492378821107366400604958315133415656532884628795081845197936513386796476768059037958438924275390588641749179549756175605483160958521978459648899033533964909338097904456910695559509482312879160044464793598824218620835149717439736996633429097128996715679524611473876739011639656858436390898430938583512301134692620178270925494648873351000744475235134933168306377283243708433083527447185706514008351209524150759380655601373393830593121497737353819530272351753391083637448099554558217852771602091083526027260609477559722845064941866271929918050100961171483305653884552853899737548565186546695980316310065513204684413208959649082334312524075688433713312715291926447780166914670694471267899016000950106636297618544480339935825760394180331440890355738489779364268382006527393833077535339290635067644673536908797315691761618362849134003444414602683533881565238846124488363569617687979370071392500503180494501378122042999066401018978753344775660125322805417414218973538947415520971232022131532766303943604041265100207472719890839340758771951071602159944895929860937302976090821586847216100781630743116718668519796128021364154551945978283273357271656476481335232358172281868729575258534660012572929350231034445838882032234517649842177305537144461190667212400997217261738882888267052876587662947846433525068350269593338711104814257399986599594898254465374634188646213424109666036884477738324377098699733649887374145483885219214159856946010170889057704551227127474386784658135911491438193560255113620946258770387057709995328722244943536477596086324349279631375340042705681337276774182753903194796572405680747143438413216271935964080407923840091924318317141825883931710814317198034832719124858846305032592359439755028753370497038128676697065427121725201851561658045122069659833948701359713320208363726676178066826548641404313566397252609778138738343281535415336648154753855695874417738982306108794336460095312825021396678193849519619611679612745862428881112762428667178107542279247323430794027671324350756614319214765831739773506304567791909459205519939054217610413104331929004361844414955596993343167988185910783632113777900562232530171108615814417813211018333546456350059774173980293054408939722463027867711371798300842519365274866110477712173311583813507252582294165520458950840339331185232470926851492127657502436519773089733240843656667561942610723966081826238294742351331198971006926785391094167117364836846694988404989928368134524414513919264821240922733247911465891669129781406333155679032949427923690726509111103612023689683133304612941901223552963282478042266837145580066960351412973786401586236059323389950036401953476749413608645467182937692027019524965488374161158958538160646468743158999083472413819008026773371528705799703474927121174563868727448540152121533182727608923173548066062269519866937581742464244260481567507131999690510084637677429748975914347829002810248543649886466718312562894717924495218743144530071616094685941637715973068232618534243604885049151464247971256590856143342879282729702881516512182333057877901434218769561893484002763465887868511037208297641079822031326997803828662194863666998633693626606338824230141759598045346839547778218996276969065958936446940420303899738097399429767224202887357846118087505101598233120547276009592707761839047149166495313277606815039916485225498396417931128832907395413260774974671047858945377610236863593033685058536211756776650008053760604518083715536150698817253631878454737797239983446435867629305421813168592088355992458563048834422743498309298053494518455474949293324220851400849774081869957187990060518052336552330633993093574502539714290689123501033854039326006105419545007337562596977029494063693513805976723942663725338005055380300354730910169403419897011221604572695728470484672414002872681414962983552296882069864881474470941000096542718416829019107746887948940861475308352093212141477865286120795491011733025449662519008515672029515091397887635584921170047363742301214367987375649633502041122747837770204538103232232752870226928428300626682472284266665851902608115001344260149073815255303503395459487156789043977775344884960105827565247130036446839489109294114230021104786968944868041662171827219620534830674914972581191302769233242269749380725903986288269125523211933057821750570537662644526339756225639699760150728799951948908469286132101566552273527504058624362137382682028558708890328918646361127673673427803090572139860247282447695606673992976051625734092535881063536671929702055477792962573879328374091986168276548330320842949951789340024471483833746279866608671387350604473133272506277290784510943599312435238467159069429745743439141756798016576176851378966451847059316885482311480131502764912284608359613291715251738133308648487089820507324979421344808220803467722280686583727615812250958641313580357803287516255355698938936058607536953661978979773732015661212008111791970999964304075857528200282923786166297345552613324110458875013579773170128514634177997842078561571232716759844372506596054969169920058280695890301180624063807947107962903350539929621361495994358082234584456671355599948692641491835434942565763909493655119988064087073998930577634505682532333062749079431456762953949615297910244260557901511625696840682104969180144706918052535687576178653985977371452568321866581281296338244458606646056286641732968695434313303467140152550186545437874271534490927320104111679991023902743459415580945765257935934508245223124374744703430886334371278737223204750235743120529359093264000751189746046828681799196398805687707313805863199628573487339682302173385579178388283079140856103427710886005594596682765346265952018518002426774457028029454015573389708618221554933232707403154694828250644402189401547157896422076886549711734040789177893311589311201461528511279023189249336165445799252167940525563803331728103308732420995557880827831726883730319473760443894814326043122492694473576393412458288197621565285542786389975830128844805013756014439212733161553733945472789072420362626772025674995988506592163049144378739661963824183273628258098414483056166043807236902639812466966702740227420110799967648978360951076301832098779531580001922375358716880939829545036390576292169178791356700534443449913922203792874747817178762047379423612472204464544465728989293398692080588386723912629640859086205167917633794010889991678159391263976384747605357885890265756026998823103390057525106144578082077388984722817917811319076143710852417126060698867895490076134019645242653593653522345541924633020921579274031007717093900385849129700301281526618536556519776523762985532334806593449942061864733234756010464217450817942531387199109712684860500284831418337728220647061959060477534927604400888639362631792439619677562802005166738841607308341559174922068836684468177268290235724813189517408150743481350018395489791048275582711004664818662649573388384600624396682292339030220540382744459327820021876805026051313324240022007724071558211640331528704239521561500543996486710428931765402295978892781638518565050681502322992189817905462553617476917867685783602889511558982720227601638371412709579052286576576623956313324271478656567346829451409980467966699072493598135192655988783418383243661327485384192865170824754599718268385402927739776853327378933430222474108419708381218153419233386009722788273850864306786566688120481595411850966812660920143203559663014286254896287681093790253190973451043285257398583921873671140035355369614936240626174362911977670821501384624798839742924829183516651431784220671209840378327307041445309245241643341638051539056668949811568841220183508585162249787915958711675780353452159216475256265422673423095794454008746869197474474622825311210483189739822245597794944409246141202773600983785943950452211455282608046385280994927251969935972862427808567105526805320547336861722431465541144956892203503578934387290432228136301510615145905631511171812475030480535332672208449632394442223325862680770284913292735925894596551554497825191190402669306835527730362862374196593278591295701279112835741116365331987535015030142641952782814694737409337011877560654507285189916824674576241632353667037037204132958935121568990336932746790751798182951662375043415963901306151292750188445735722323653711429316356897241366181859740054199087524815460238420501857188837990659325671474156597734991966868317644543997294280212808143002174733357534972018143614798929738147906105710623581750781405259211429997490383127539827551795856017660393418344485883761613007432501388111485517587203320063996333663294352372162797234463810015834288016594239910662530911759374915587183435584771618922601946875250503516717103351452134667870934158124240981790020789605681377809432392141883163470979921998360881265144975140289083456629034582503479936504431920208641661636551482386346766841611756181678866535632087879757041530546650074054249952771837603686866497857128612275342776106878658245574943181909116533408338149770792844822846980445594079305965456424871240725319202529114089996851916448457133761693136328080118932629762524600934674723253669989515635493258398396381703828803539856817123182509734046010001735272901436239240288556034564181245039109532673045927653987283330047889611603449673086842493227019446161267967867140534509352472020303381916035385427800490011950271689400485948015807255418464249779760070153265738877749374676954951756003050263528070860469457860740974411457595450911286650439732863651772935852029444903610409103577183902454068986347143354707509024031159897083890493120868460069903150891308093421590817372829707903302174333348357004236960567324477289923459589032758325986573946401603882228559699764720360431492122327779162520488710635859331070951097173250867764919212389496559333856105421132739996543294553690454346902987828321470869716745953255101089942449311302940047528844459123696784135635618894132523478836693116770724390734166037713044120371624032621435311827841266921603641366677805540043854878853655932556632866200847687021530973062533524821645416167447296347623765654428501908909272328218374606152564804220585137375872711104490694613728996280250823759303294254774668924554242344048806341887629268800690301204579302128473811053812001928039899666101079353716628142487730892261028047039204412918505212654022238877304285927515493423769405460196613117609283944869622442036444396523688581440015789847496354794246571064566524720848394748482735479208796286739377988122219152148925558374395698107728689287285145623154208133994651283681185337880604484931522356116863566587162548142118833446233690123146894719866898838784053529180668638816150327928309555393793684571201296612306583431516450696226750701893449315217154725890104084637006748330384692430722718005772663750759464451064233687983759436564979406158900403843340325003565109773417382525458352737158492645210416422842746049744881226723275604432633330268174775654277919990612669901793922901071836435700143033701373423704143667745835261224954592827071011657798843685819967988525249583617268335757168840803668736040465163365986365731273894288129332319068530608208448966300718274889710471677496260910720901410509172624646583150161002399201116314272263624612771257979701032406801008335893761572634345484048733092125745808824098073485429729668313114001586804280461905224392248193070827408836868541672038095310109678128904999105819556157692808982898278432142004010554788359243078261095048091517134657770175207840302121550503821789653723944346613860027942710028014222216139017468029307960677865182133529201504865998130076124996535184897654520907856558913907438167897718214411321403042512162564066183218076688439742550720707643730308305041159301428075580840130249590724471340915394677121264487569676905701384111358532810214855072947847027354259895102447851986289570574360545751208937592111427984685943534101139977080148350321820371682058009270992357340485204897232041503110962032383416946692561654059938645638030424785189696987653131211691946375182684679002304893835251579048631926053084280412791774432114974234222025396013400455858818770087606219886085486327954535533138031225690343442470698987829616875717472622149913480103546278352946882018003812503093651207320942886844149407763469402039873572684800399190607523152969064676594460157611387220959434334395922736104076679087690568993565362999380039707215178699277783503126055680216406121059158855037237134721629370916827461019061089541641338311728328574951739558333340085749934788963457425207985580167243899459025027082255101109698497318482578468478304582758152323042445534131901681100397335947335356507697610517496729453012864005164068594449872314198691529199714785859997766683499615559814402745326188934898810766061267613751134719414853218497051280859793878552416017258915464949926538109956944812909853115404331964123243261693607132315469418922635079419510632091860325804970507516783823400472152975486929345806710865168625302943020395368004684951034487776961810612543409096297919415264642582448555642495666166310334670015196581200758196846819358095708941813792308439057444149362561476295219434867764075992795543066479436430384984864783010056716476236010660234494993318545268296755968264652222993958004271419558386896481334872463674643327927347618503651022068046583614519913157340147260548542002686466006318365990540275857223366109599635073780813866805245517586683303037439053600625149390997225029114674176063984377317421078733353546246541282724341056500048686830834703328187923804550050832965489956709680833251649754797254836953055019987940814582475483010387440501189994129695516539373452594520976006742846221906999660285431543250846158129202253120234326313136285705018402314982604285354395378125850943015226301744883576611793208237883645740353957955651037487826903673179019705966151392428192574412588714215224172349920855699966327634795954668981184406889923958484382192332539406662557318736867618567292084318605572189657191929541111520474988640481873392515834533997412124207638422744430203583114045357985574899821585251976345110130751155407380155980810863985510270295859883041530642539846763009177904173722667308991635113737343424538011885208255127876554792719650723886304974726665409265479266365634788671057463891354535516728656706595136496227955110406356260162112509027345640835173343740453444061368764267768176496102907616303189416642333452306670750361506855684693395238276331386141416679050630583012888126816642169958475107075000791665396707547769222299413311236014273653278965202654173467782154566473223440573045133619371590496915958765910190445271010307063620186490079450943588902778752987005574994181382898298872440166473436306336171587048332424849036150028544090096532734667674818925341598395943267363994128990493616932693679350761670339523103053627019404814770838383055991705379410196811633808005267660874951026169054221591914963649288977230340856863266947036274258893237461381663693392786220769306684254478159538488845201435976389640642311379696910556902259835574541619109300996446827451224279841796272578969238273759190793286037103102338871060400846803010970074202430160202592607148170361246528984524134729278377888078860423386439487155219976844256844794126678547135020408304273564317264406089182527311816880943199774466705052222044002971822277065177931072333602803536799336017051936637292196459761442665531579253198154381805271568187326811598664733643564730729212471572462138277462377538029332667301711553482643218371375911602233099390906380355473289016421083645480417971437768414739087586081478423258193562714995226848683157608486440783873669267783425681865859269439365129342515715004065974286472498847843755692330808926146748949443735942711084923202165874308115743465007089432806978990336175239513076161050352537944742090407053951612445271748618404490575777508131460555616074069509269680723027219921470388213703067033168023053110396383816812147909596765550812390819321039267457136111913252652724114681581342166439322723528420784333890700730425699162766561310637566795679144458073677617915131271362760844611402385931798195820290003477961053742742700208345497920447389560999278241310357906685622008215810896141815349553132848702876448091121455143628620580632207849828589537779629176171674151844457131085330663529743628186276126358749235685516309585326255177939064405159425496330056791979613529241803479220043851639804269915776058020671216786717918991480255971737809794971423059539909553934149562728977251868308781727535276346591039732618525555249914297338566734644207993065705235783301582550000964573801442449952758008681510384354809864356759954358923982422151513686196665898217162290606062022050314155969609587882949097271619152110902892285225390054052146736217045428212278992460806738912839318270644864437668349880046498443012540318100158344511792649285802223112965207200000616117299816933980028791371048099272003454139434179607949006716671727742602114316973375891016790633754468993154795934430156742757721730735406709555882272437456863844681688890456736335960906291610232445361429342666983604656619727524807240849897727589357123171049100564946844128732075673566530654076847211043058108229134056569704818681063833571168385602854244860610188646905352639725821994601753608321427514572224517381638642774624508052251503379846039919552208142108792715466262381538716719983284977245523088131644628146366304647122204516625537278682079937696118814761767117244951005107236740266905584357201122062279192979980513587579294238993251087777844607373503788495958851679842222857239616509707440175542745631807243334281703124761886555257740311049416894648077394733511375094156265457429947717949818472918439131456697645982962531808932010213590370020386712297959547670142473782099362237703766136631936646603213914696616292242883049912154327792563800666816534430095593653014609164453946765189070447766931201487242017848810688101456980684287707093407981738497907563806415645195147415265761307445903005228646292279661372443940893985055977093254404426398095730264271345451926570847260566496762484570777269731525149753628657510180808339655663643221050364120798491567171616586136416856323613054377460214940530119664744561266564444608597866190294218862564149066747501327861915960637727788382119106800883621712973245713378258846150501654446728805188978905633538587042715769736894955779716948659924125106540850629057496572408591890605055427757110169016084311291869321787445067750825422466270367351981453728733227317100918453259156246679107042123624816168139575572547184541865303622468669117493589998515704930606565107452778297035982683727904492596473452192460828130066117519259487026120329877969930162493635313470682074576803247401156223889077399156094458178070920362535341519202345397925879787711615663139940467215339253257243723178982919305025287050066879017605850122834559955916685300159182943273220041477183389917700489653990921896231771616738609234256744399421448200502946456084555591889414513294914419818232983154730437546575026951072651332435395986274129066691118166007562754143843996471305618974369117257138355943786955609178773370110434741553798901621886981202702939886017798101505528025410224310419817247901533194678150080782184181525360920975970575529993175164254932714540615270524895547027467822185040941380032930473759636848511673330078181447460259993979611502075467521486876230752950061586724815408552373008647329163167741929900830162251425468811566392239587954652433756702527112419176378264496217292328300954539968600617325297232016121817400001850607910077983481203771686622824006666837317892495704346992716784611410409282063165932990529120534786430109128843640006047540931386270018516445362043796722290873325877403025858059840565277522770031928371623344300194791268454061066911107919721679383983467527129338133155400179743500123104740680013788022748590091106486638643940806167219012308507210212408638756939567756097802457321367796930475798352646012095529720187290049492546302008614034926262573691655617965088197040442369745573104997823585187465592938442125590633373194155920422337482783424412749751453863529467494565878495560129533189254910780823045565666493196048784495492111722516501775296534801641682163559099391898904034433487689509092631274530935478968451161031143898619754996163365709467796043558452497835932557853898617517760440899501853892363280047715739636890599237065440038594727845135707624092083234837107176724795360893196932045626584001724599695070239732985107904556388218799709303133697529516847808475329506503419644052049146367118167042711266642405644868681716771509297557174160324197757021923323171797334848592011148906287190737875762162162552347258977186397583463335977983048030738883203606614338038287324298581482029559082470959856824192694347840625202828448318334866254507080643642843713823288388220381464463753882086782230967635520529888873497811676421989336132225522481388917883427809501192004675401871230986283269486775796472660904045433190544246214617786646531136965186312843827626152742503520602204169295426495348137347884618996811364608143863662801331955700369985097810311696139063937421235045479246994191163513150808580910907881534529976356846334778539034664148800629203602638570300594350445747376946971695977002596853966761405802972729323357673582402871461436515123258943424970124850118278551326901490004589377324617190761964251827062594443728992847060288888101037452171365394341737096716345187308836816869884625461891200184492313019095126871074984944718010871964881692579538308671133031759762265126687231359583224822845748053303740038767928674347418385265964688493780677823091677286136778510680124496814703221078019939504182814609105306436790505750388145873830953927684560691849428045713886599811436168181079510607809535997123138072196344671376856838950892717072470620603118140884884457896835722815362605693344852036720133243184404246415489420983884946994945370963187635661065203022031335957588643115287648530991270412277124147976432916326779937680441364202395391624983122690460443739126385202468381694728173661288641921210164053592427005168539380372183059919471944888283673694861652181739179092745417337773470287763977922007939073363232004090642667706670076570534008998526438366697243076377582367558650801810434851456844876943441535993203782083018804886599566076142361669662519103370873016753763383479015976756195380630516263372760175705622994080151495186797814784936517117573514951470550074217736413209891107599992047934855425290061527238210556489966339645752511667207797680684165938727082871982755823883430617880793879400497972155774206889542996841782337612314205200583544884212599744964483333821488664004687690356561855091685739489404598408735905585610748448461844930499025563553227033371933990991471902929304292307393474848707139139111261385243831380392806585442391265587854823545079432639149249576484944231057764061537762442584748163120518497896562779170038877624504390974256464685865769507138232748970763781734994775069148473635780801593232334362121571335154218550616010341998463487934735116558202076844604241843061833705649006057577294496027805291029510282273565211093343435240524631885343529104971794759378636653427207655668750281895806815900694789020104330735674424141533653650947172473627486977273740208103773094206630581267021553692129884654777227652205993680874040622701001041388950265965102916957947922723081597187916648262885702781911554990134772925947348334420734107077678838515430710119435465948707063468592136229006933428733362647623874340626594751913630696051317054260454552319460733442212509827634261472090799959984578773091425121000021048753051206241969239604819969778343919284684451746890881331524331161955670858026986685005810945830109837186592463137397365634344223695501236556453697339748004467674905756091780590293742673618532980091945050856459702518558358507648384350306356444029799823205183088199492637333519696730778474732651836380044930372836562577341256158015162541376622482005901666889267868836333989017342456454011129736558248295494668244384198897983240910741569444546074379351071909384424685977242014371107921699931333072400170364627901270669008090675766194953710998858893466612780374923707545606520482988633689815466582078893382375751958155050851418197639971450053384634507934261011571284364204531312520260001077521515695265011327351645562351837989395589793129360119641942851211428901588863803962676573444712225834657978602970471471741760547839155190238106923031427040515920795067516992333523370122543449065239363901895026513699299230232388733336658351983041940802614205438084765830631478557394100703439215445581900575864112200269378753423721295447279055899645290222533409708549096605605838589988438882722514446562681750256386082011830195078251415877145424202683515365038936634904569046871967663745591025665310026136149803566175851161137369184994867198244515207354288532957066173890567852010063058063728196728465482240502278534447871097218377029347507512226491475247720726336927215732531212321890095240350704020052458750800153850280003073886848527292051194444751797677481748428224739577913147771502554374227729726469772301436905016129846535888326299717550337630463103946551023588216690576826296414573208779519810047888055916745492871072081440581790344553791372330911628558087959238369876086985701102183531551728946023896735876080685370239219808032230933507276455911036529364811848596054355778420023822046754186854257122951730899818986398825691174039196611201075308628130506433240395554838418029199448955609689703254002791271394466529420338458091648542418177394177540827166395840289763451322679832142364584268353581565263014180074601435852792502864689375232427963669739818269350980656610115944851436047396729395106396922703644226119698372296741910791616037970194716479323786306173185181938526198804391937662158498867509549649172197671374724915263073140111293736066537614336386205864551060855486653206579031951892088286791237093106358238950829460638549745417178009128995537968627463506052818323678397280077865878434756008640859991184188393516644661954830147360800912744113505542451390947808151073015915551480756594816504945164810398436850837068939518507588897924359196986094084467119268090953852070214077787726545281200378786057077586953150700567565803415373474753448315389437676149382374696903327842568550151587759646865510414226644954859615948268650571367894192388793286243117953499922747046134660277579116825885610841830509803505384976504303872201921573254438794065262518316381418552393806023921872969237413936440583592087617694980323908207092469441598472810934190660851076400645022567128442002448778296044204742588315043768042704705945563941208163903679726002122193790750172726410600045817512469709504336367647840083878629294360382796558808234616835377329229657732126903617281739502815478953100923540112826708277523196144285387615275250428770696211279002295269728421829162140735024616578676478437834343257988815398359104881433085602759498012740461815283303367079495154986953339620895599308986384250136807713697461523337313530886760417061586788776865417363468528967111797732382978954938726934860233861134523442620772922572289324435054820710466400630304379129322726600804392892686771583061523008827757896910712414133293022235936432448694627267281015958522345975744706213709222627491050412734128585370408138375201975629365810825276288349389705972062232867153426176049142492474782882096044763814621460975637881421282638915527097148741549343535973933803719771320091237206669813805726963406024481284063829087272528315170974133117921127774078861763845932323961849207241858226552690134103044744968157155075621035127075779554062310777619180286878284599691861384070628956926768280853054637940253489443305374666605765389413018477039164125419193780190074877724726455746754113190349722711962989155356987704228632682888866012277608753024997010565282843183250949219589918344527512737202236959830512889047701745895797047524893988636278730983832427046285931494435679772497070667825347898899697680433821160936750799248851258249305881221023684260541039215163818022239680548253445807542988504734920435053496591308357261953689470124361294804734881920064172127168275747085070239937438744622867431481643913145933702912228001774023938816556817718890590053722808078305919414453133539758723844311572812594827309020650682061218819161795529942968515989244640885030512644104572736021026954868747717945156995578360133552263447486550885677507015482980937460558893179692510829120024511089901016726436752956721776289220039688176195760166869476930749476362684654813460873005487612314124683878616421207029327069471295688076409223402286537485927749070693613059269745416223355899658953664359857031783501908328570745851263093193619182234223070328116557214914632952319720407839726673835757324398243653965722817191718489203880036601943247998748489966148053558460361521474515635139912675190395649902113874056396170171856118450267559467884206234263146818952728538977857087110323477617235799490355236764949565958263115030508855635439349798055969963728123138061405085189953789251357971028951688459560206270703982736458164109540714925414907321932937766400435375409069722240243285918730098262758782875319769672376505168208252287375810211094274423581025790854903956606334026788269197970331669369550421875935904841510131347229833617669673195204456679828983451703435678693322477681022892767139542889243393704083053867333654096369520838742542876466609958883066611163946425860232628624592436970254657456717498120824199420271298008637799432421583789768901897776143115966380639737315924960371783502383465947067206285059970971325541571042499568844116970225100466521978032238802874899208335240910764983611212351076874926053665413324930013687689359115944080194945586179544756678206972680215815223768692206032295327740232473517343122186484362038594121598487918218786816174170816834791938895295278219611865580252184466298950816871282391337101705839940428767488703034716896704380703487416531796813172419695930984987882531412822009421123659471978760881154967944024649919558201756655508291575579625252774270324704333205523586469087581722065895591609847040721790126645786302406714980557645259266250041211783375232900413641024007728925060662793671717833323628931258188478282378081537394853969350538423099601107572299638800421865531320705977494538191828456133460194899072550409211706958948247637133882197192613361126194084891179921814309963329381565840864920226507455719710349832082036052165419106065048854432115393533645965307268985706366705942514189953172863830012722144003978578973167882138848691555874482353582607911125202583022555481627304061944203030020218927964724419184515179511012171317888204806295003678883916200543753564722067966009790728925765956146105619006054858484661628865453669985668060425598282901050613624704139664938923522643090985544282348873715311635131330073477635266270670985497029970268393573770731318738825030823677966083582671539283163182916596548688167350550439236932344940215680492376580546091710473406531828240715658593875197825008681857093465803286535009137767039341427885287834466921994569172007199527082149706332759793874918380721180368324089818768357121325326481391677757027727133023843325026112353600497320062476083578790645774367112053227719443492593450677715666029385742917830977874908639137481552687906071479093703201169506054006445515456505981790606195151175268844401095087611377954053918094614084721563659218671899933018088627746493358856274045269372785540366916745460309391965191622479166085716645163001856347875059951015359333633340517210648371266577316201577406031631691183808070148892863898991212873768908816840071435437854848709924193170273995065308484684006821383910632974805962931462793073419482594564543526242639856195891271132867135305251437785326895202039164521358278201046107632643139001443167739830047237388081193845469896856700857613853695872621096451481435785163076736161357725242773332996708240784560402097312337262283816091207636181540151508791610841012536662222614305645493949441313569209063928601779208413604908706612418210162624984804324972947718759520228168083203868532182583405513251100489495092812179038814574333220509377824091756637477549246678388875291098597458968874670562609029577612125017505628765833423084765883797106284884451837475903030791003313248279050121373148802187919080351872399542392032717253115772355189569098105330637903457641860200356755333545194709010877881380475213243529026358020280035179689909965037365340109234604339736202803210590353721395894085827272436270401929120724042328722384821381606255549966698583124543565610901521079248023860146461163511565847837151728066082700594710205306787298069170210265426875234431806360788267180229127882847951506017806476949727748619618838847226247868392842673281299070892214660393802371595096490634138354568913568098566940021396163732112820659137367698107648327406016064154401228038745243683888802388055816383108074788652538814407575847653425010134316006167922486351058475015421679075525104493288540681989650214491981618178530951751442293646107848661711835970627803494331465964874888791284680857565347520681131596939011891946951318674046641810805810762158275973916523532716490359174987963348898078977893581359756649753103874546924223606118188606797153669890023990373481118225205709115842753120961056781533853254849628540393713212615073840297058665742279889049402218195981194901848013495365761001923583081356252455065701059584332286820197242847029245641243588972999021904494164435746310870595225524644445097368537155444063244423740763074529182665530851704609942667669080711440164465116661238655861490818707102800272249962733353505849186537835294953328954523667381439139095447435627015374760455896615133637716496885261310974966474885921432649588336639466141063372463471878152091755119145669876513432561850687058970799756162018147629163732877361525191852374031373140193994577092814898807490068811476937413363845702791773523891545330637012824775742362223460064998262601757212557739573115331204483551959068430690934437151550742286142855187857925679680714544141584868506312024689166919266778896333577365053665688096455116783643700069931483973002989354520570935747430995252725436499936162553237831734776185493797054954614620848873391641888604061321814938079452850649223453856308030629653157580212353832603294717066861541401516402096099961468387772242197396642982685970311072219087196264726414421353505544704215483027811743272871689372549438867500081946880122224312119265281679975795297844187366925927093622736189390946089211947771037055507937760804210481772626184208274429238560891629158332632693573870050760700243158914920969060515576041283723854164623862408225774074484825143505825676890042356027608935140738665066885320950753683927422299107877643754943999411754105078324552727586004909420688572733286556224924683447912442334079274854789268413660022716600075127435752658847949809828320729137538454981090792590918205500501153995619784896804556455415155413358718562292363224627900515891477711236108956800230403874945525258480800125436794879496969789681293215447256168451629725275218361299685417838628685602687595142467669323867440387513140757843703726568589829239468071470891089794106224380823902279449189128246341633519817025864087663116805141288850326272282924740778307392265290064554776895691116680741439414655734408307734092863524008913334159436297400822373340310016482785118009716915344441274647408515105973552403350679666619801841819906762024299905953167270062018209370882450751527146586293104325800818090460268731955087160442070969841066904006277037774605773467321919942198944290613653051842677478843312206522458764490728970458915235242192382267534928125416999524892724405798645974150955427963793753061768596482151699478686568520696456500603851621445123431427063788726072237151125108614435320332129448012032247679258584778620571404861571080639444481036618457092498698074334084222393853971422416976360740396213569557947044535177848296437670360909369967656024475476999642465675647191573214277616066818133157330701569172084250354100385916563844509559485483642751563244539127609913791288852739793420881054242304203495887547458800459666016539948823366587021145589335862309672506476238544812267027163630161111078733693777720350402709985678777488334090485170256728889067910024025800006160456373452309780380896739838479175527640483762640271225245005167398192967721386769087138044655996990293324967942963795427440183800559227185945879369318872382234469597308493759389940794484246653466956124274705961906258407143140373433827717991608498273523296996183566634210561947814717188247263584450320064968905702529608877370344739635563868851589421201999152491256502325801091701367470478315609277141959215921400264063060167833344901775052924895376005475227503651419479454760648776027600764862364540732565907503090204008202155107319092089700250954620631102929229619647025055368374655030253024304822990615288954284427152181810382432330381876094143091571311774663898921437787276494841931756812024125528113506365659507624134202711281491467350862585795145339426149841754559407175079325683627675680366574965514249968086981401637150771416710318249135677814506506753141002548787482768606667066006219617492064019149036783916505283389967258682812392809641111380633295351566880231252550206102665884063521977394856388322082046560858108363250502134012965880322137064543264849877668648548961965803416828030705859631321995397299509827637198289324631786640254063489767983385797132092314086117119358177982694069922391632509578694771532392222297550611663033990808962647390455546017430947432629652161124204942339518384657205227610324718573640664359487979473628184965423191395663138822174197873476986445425280164337410523336337461774479469447889041740261242090711542324969765858141447620207453406779252051882567882501514407700703154307971913785970099027002507961490884892056235703554211555704562956734408099887675483379428902175059878211168123506450776176858945069493425556202318097308635499451351412470166301320779166076760140382959948055890411971919993883206501735366339585018611699472444533051787455487337965255459141498141287875450376638389166287852127385937019802768492629930179206059768045108861742082059236121860717133917478187074649016687740199126775256561892492624448864910376152218076449728660644116752775699842778424236563107137938871488120296323051490482752063756523913554430283948112229834990977048789108395753513646914476139168664072624656290525393697115012882615191882826425865740977080618507667422688491740301513931123670374840296871580442735829490515589322163039866557501653542665661796382956298968707167114204866950910816427703796797589636231912799477495689737253685175527622502214256442042580348326592925147153964754887376836323981961740199557691689461069128651372978543890396447399915892709775662583514943852871444637587706277246582420644825628091937477479668365961788507597303534827575564382321720737136302582076309236159507714824434921805184206319807250323832517124503660311758229556538511432538789844538297773587321393314650393995410518238162602163444234455947673588683173985901383719524466296595054025860859664095128384448628621212418389746233847254360694741693663843479393405409199331478250943770855963032383248110163588335430989877868590564597602339724954689882940158435779981612975582929584218968395742995197573851023052504726528980637827208064748916780328074924654297313924180655134990270695139009393038031668869893487410230589014161379068837481634125699548327310774125072561305159362927777268624531014222889005958322676929709898217145280275789161531114155297681860720576455065876293891306217113211680193904598144678458830897510127500256229315592401613002917597782905425459226718692316357270581403599999344382637282125417263071336038973823371853102378526084395022877914547244237230730093974908389786762913645523061462081108430868827444144405706012933880455317429267578773483225314894782185789282462189410982027401432498273357727796520653229374408956518713763904928547639178475851024321947401394157833417862254909041290666579765238850220261858119254848675348963064418497498064520991346243524086104272282217858243530830003464703930550151202657250744116928494330648981644919159911449523919914495523685970447223544339759358568765426604498853415029782837719665377797713623679423032640285740732018612224290777159119739126016902691332506711178682886638753409444730135836386389261419976199862174476461809097789164918728099907517330074695353991530057184347820019151659404309409375676117810911185208845025696868722459925164210072113652708591209594665882572947872177972830507768879926086488536989023264854906321718995231969953962214947562158234088254919585181611359656313726504610552219270153935176303885421399644281618878339962971218607055575179078673630446705005661382604580884196880724947286261186651795465968066741212634530682137917178965973749801090989258106677942873806757328555505957471402958513256797226194872199131888669900516851880774611406544151815206080312852321900906119516928807263382836787351711241826162671346620599978391378892144668141216649168464203640408997107714452931343026873060995147398412094043618969422793456244962225125808182156630103661194613317920007024987024271839058932836290365550929996982442223294873834683648095530040410633738916847376892531050082975515993195827100877903695754823702734651194569359783168673982265013113249769119050012116321436499918936936315794278271549279366941109626550434032352259462473663004279942986067112149269390304275013324607454001785440511519907042598894706535009387574717683832297657076072859437578392088556721499935720934234145357051716816695082927568461097174571499886022479136850027497965579667024711129914289886782251155666390860031256878642035141044782445667118019086307922176759820156818308021942734913536309716506273890794275247479432814919655379907154383172121091263341674426653856648946481603635518954987150456289784269698980060297273142912202060924162710851714510832630571040349025043391832366417400053210672597669877445983363325217720307300007026812495808605869185244726281148141396715340474182392209608474964633454190780700038353537732841711350174657762448205962880286233295337462404820087143444347027639530763728114114176421367714920871589647881392272123979871222679037662977906781391643029432033157182626137727787228584294933686183026020631405463773879875038448527908252750968636531908079165285791368737574719247637719284451721426460409675513591956187174491744560552912710005412699521244805129642714825137774556322574739251244893037869876787472473979390301283546900920869239779363418278708504337369779142880012596311606382945776471032360129735396301517385074611552311066759618168989207956655744963917232910682388828772780496425221528988442202242827748741476257666997115600076253683427850071344816292177197121630242530192910635169787053172771753170902256202269378885553729305036131088744604689254318686096701467298896127671655627894668488253837975273586869982609526405384181885962415618105545251126101322080542483433559395856372026112314953513212105456179965475727725693857689094840382859458175028097413970920431435422714402958822400383014368198779050749201853057610637557371768344628107788870604732259766077069209351861243466980061035869140531166792959648587156665840859511174017515177366545454925757860283015452601122781252498557382029516071676413497677643110460852281239429644038377822226692176493311857180307723680047979112793757753350863773918494020627945016002941790583367391989449153461592117053067806144457706125485471009206433505266701158709287602335814969439328782274253382281889683092051534815150262427700009838536590446512865864524766937547955180022154041763796500606436030865607114678359688715897876843258367691625317841553518517866001860071329253850582292842823124945669205455629301652673989924339592152681026188946749746120608139755477306656325343791834888256890410667596662934222014465844322221934465085334048506304664281931452261031790738597236395619673111149682089941025219622547305735113334827621422660264633211663177097054491599584916161406287128210087856814228913734131941370881286036710802261665064149798351458603668080819682156869105686392661352307784751327000119929323476567528098798139759511373642074312476826089124207988506203147482149924345687313231766470977474755725029108076451671946986612377083278478057449269309972216327938945545293010796482143805715655008126839997887490565283940655133175310839284321186017519661363268552602483271716147020040809312295651209766475928280123682258768192321985201662379690933536074804421544568977993252683348722130061509153583279460731686637572365445389931602278495628520617605110858176759251738115146900073802510123218141502614742347531120300384123745221785493849682987088203272243906754760442935620772978015062061834342242413760831753759294532716798904584432523252106921889656465831653039234427584143370870171994183831760843926673071168659200758726856471473371879335312924268434496243030255159732245737189368423789009802495822244467022492245058267777691809763518932379430785643087980665418233075003802573847020917731159713959772397513931977665383464728328497136344222180328425944139107905667613998739510089314515041688087562467870558818874956455350110371460779588486102261534099743116341298704009490053600069668837997820665222652451088678193462839914652752175209604444963998209625358472833500820856987438950261291403641620475376074293379059908332475001030047895263177486281487716846859147551628493281393601993192280070281058981816304755365761919470833145408962054653919201656891420612370426352781406656462974801493948398259182801863214716033002741868013533751161747625648982913302450352709959601142672000334552919235612371287403178124031026672170503589799223064154171251756856200697295015792743275057686083974860258024997872022549034885099889500759221193434685621638709549061181381246363180359833413989842747949275874183875916134238561952548846002500432739718600085405979852952246118991213510035672512830634313297788126530026696891958028803834751679582296068480348406834487593594862285032233636787807698723853322382289147578136206566069733853543708874627366448018395981676049031986028159830801491481580772478858616716970684588129179859239400474812720134289350815631922423615969835334867221407453345667475507418904003614568108084836402292662068542952144498011660415964882508966165555509833759719205995583085095643843571112186390518655818500336032782362443404506258350114108527687954725972480331129190569587549388743652489034497389957017639034306973669168975324815211527847453095039511691850535329771911201068446768010004364859102439998191211148524317512680945702743619671712575239982093863416301591232853990447395664076639193970547954383791298483216273571228229810284754201331689336048478491314529473803766974631954930981379580533860542728077248613062505723054207875401688889613463710898649434282119878355366800670363921885061500786441355224011720422334883185508945648219119032692800303231784217162603845498427521846227856998669935869620284487867824467819104372833221621932768550875687201247689641041162402446438183587449364515638247564100733562453964803551415883946564679226075467864548995779664766964071014316390980897324218054319319126946221446973715770213051919829159383193873308969124598013463942828669658559890166809825272464122124080999049616646826454766059692975048062485582153591728993889623830334863063968688734782479797420214649275698895161146170786294593830707102295347790853224762671900917796753074412645714594442499720902626930802877404358648135030903562575785788991762098060241216147784455106017562058943020253878350993125454993597957613047615555298623780628667537448046401274625608674907591092594602217791487207718751077268251756965773487100182272129422777087048339370686017698315844319674929693889135034695976165680226401430941221765648126240348715685734425522492986884389829328995252183418783644805184713253419858486068152094423854413219561073241743613054867487811448543287970640131856755981120970502258244866939052176473122555525971085116755535724701073397176220629710148271976992080847060755741593476414201713522336105965761892288986202709322453775821631739486054285066805621178278226453248631768534513240389171142239806976614045745760616377644747621041897082822449803046264950534986134923672110329428921963491358144427159106750322405384789223247388402325736809245895751245863021471154653201983196184562514472721540663854223772276490805009890779804909769339754033473952433594215171795623634946994509315748952857066899990534899998820018600291415773427060270383278897383438540649875727181325158235295831763447672264134611371116306591651462783274589160362658512200753071861788844602490592976827028918102359819053282722013354586951488503342281459873830928924369360279940244806509103812866771289269247937168439357996829097042027837671420827549582827175004064872209295093425873877055543006523953719973787787275936659782272551460523342779797463081486950116321050607227604270345128845579064183686737925811018892834257809418070391902109630544265248847172695909782087235813436162669387833155066338604957996597278357282695409628083026775793183711015562538319361799605927087586359704715527873276416615022803411418704915029900940967248134339350122815430700337238284878407580856160081915970154025166317755290715969158134324285783334882590146911996440475805613235328843808110128429230024626939100683172312197967908039809736458055730683158358165678215756939033486889533305196485256726944468545329906224572510258759278338454810050017179739828504143295324408923538778036050807484661146363519155809242576910215022562419888514725319132318884380517452194435248524559066910006849854601565048946375163607687783335529354319248439411529573726387761357714700979931735807458648474009251592101720158114357627184719086077923066628577171189641423974386936179026899927214610834505866126241376585402285262134899525691545489740439599147940256324700326100108148162829231172169275616094892475480541039948110272210928182332988820378878197517141957340252953878899213531694078122536874049255023187098821983997212001157024534108159579469982996582032546274756108916417297734759174865653013843562363071533243293861431815710610508691631917405366787546129688140507555257518585365794877524893537362148612884491404354202503368947645540817069236124584169226611556413257098546616541337424261829253087486408301402815307150907005446704171626716391483599810874068266401374027876905083796474497551468705062931756011406993573713917649795601119380734929081012287082892030898317328568642251672579948123736177946527534689390688464265588068329373294386761997096249732589118644980689089562590123098981805007559202391442343743846145016841892743079232064148795750858224344491079686922827250980805318336374897360817887411943971453371388041078744005965690912982146915221706446433015243103948133643886239133283920236244656460542608155032951199930872962780704661315302591813839948185553907343852291601921458549631720798622232343926881783287025231433748625422770710544457814738852821641086504977449730929215537808235989681787640962433631689238046399978400218272939606664707152709019878207421820859266072771581386210647583706950059584659703524781674910559678750156402069747865999290971036825957362174121482235094662174977677245043784000245352960766445158895250230851919860543471615730622327957826040910950794519205774023305966244091986149608025778553017496873453968418138718282910373422617458539792364701371838606954502200789547518373099153980320018751235931116581857690526446367166985682021587473963375095548006546138872742725455637254622912409300809811062299660384154522580730578986685554094523629356778351703881621941328409639347605927779115185290368986044291203076959008490996536083463218427132088693753513366648990877429786741298292297444550699226155566094974470969524709072516277742405801249039527550657198307873852040881995234850034715127887270066765550791739614174271045434086601276242225317820174171276185786910459009518565756023983935103610935063660174794004350186651766532039135824774309704219962396947808938403104496370195776299482097967294652618821669593950804661228378723528140213333418074675994197177025171579029939772612739032056422106060401484535818913274626167848881792737561488504085730678051143497556536167673384224763376394171713096292681110888140587324959401529359864364702538265647883446065972939506254598471369206689938262342798575798367856322618684500696843780531059601381254623235776435360275083969599152173738420182582006181890365373326528846874708043885349819885238368466055882480949798393572171043921287835202870597790115737845064361585864504767183494340081175114548704527054584903976517065873895608059723958986115585021232272343187227798117014589572611639457762018879408269552920370760557240909198403596448779819700645629639073275070751978820249936608186351605044307158355726471651284483130458383965810500822287324350703213898379936289179476051639696257782373394891962944979398051269787431005643241403363201306284280145519596246124646648127548181752572300219880077919708137202443628432119690705206188135231233976916449885423318663968639074728845006666073795145701833881939648094717281441682226331236157361017615643992511752116476811966177002529731121940793551728552899745347911197319761490248738509586690097756623760985359337466515953293463407034526942971283827073126454405918227102228854135113995416415459548192767194895425577073628992000745714663012813677247881325329801516880917376118356953468551061864879221732403075968444495210833588603743404532435859172428664673404227756504298186105469153589804917774271885020270438471603072196783055997039715223443468102284030860971819581736876305249887632718638543886086276139695225186522208523636537496123764946947533814681620864781914721700594722596417150220913345923248506358121666272550534377331792662689568967959912805193889479762126000846347201982051711644419822673146066461570358304890541114169585268066414844283867906631183958429840589403823912406021155418611494165835520943970477583400369787531043577449397397226445644279889020707213096955938256707660872685867897481589359278073513563431933998693689734796946132548601589854516535237845113012313651747201343959952606992267808994193226699651792107109855907382894100615294345355868302121836611776382147214279126188418753808788350178534006013612236050971329544985473710143068681957988626852669739959447543633747110856791529078882508869427038469516022480568636719294228707978490448171708094967527850424380230517679017857263204803116664095431830477877901747815240976918173491825669088580560701188331978756929295032976583128914823439851822811354595104921830891530388054769191191156768769727423075244608358265723465311607013375374030862822843498748971203054341596780470255271986401021725699111289807450842792150518763686411971975187825205007592617634628563222156993250090520545226991728014928950276488777263152530077087959728248983240618341390586774743940967794270118957289591681363857481312998567702774331346691218185660532946855238191358608775894574282145702488255412304003758297321673497912327154146619504415513334663049903029992327229029907217998520830998259900523519260237677820903449027273015378996510961402215861293797032352102437488747897548916568117976777869357192662296354183388453400360769706413696104633519819503204869326250128309263341338869885781354986172584682294524295704543994185526132929677376436999182036630297356029611443650113131870923778750829776992834968573084831988529315313858002626227149543028275082827073143097241519590020662336270705310547591669464943882715152479641880961221002445976939100609382993705784949397769692776344346536014060868861636886276626653596407260831589557874291556625665407238452465712113702437590052694929956769978335799592123013942278326723846626971516984005566148380194982760756186948926949357454908192868729268465320392011002844454890851220994794969655635650536794804529992286541095410239313054842959809907325768572448374158430455504485958534494871817467181361725014074896045060048875072605916753074855480805759622164430559140448756972490903301722079709154028002940346621263324857909191986245915051975732357671927453956397789865902822832622549273088583848843398172955705987289391037516629311800500567527515315914619365104936366901010093474896579823165879667864185870088052985886513028599469963220407781918763843606190698086288541055813528934789156631016787287416090667339811263582564037932807318386880064707401839001818908333845425621741497361971978198950844052169613239278340307977767040219670970048992969377767738630539420314457998589344582091915417941407445797892135851087461901560262353900819152075306271866761816599442960557653168976613220446232039152559989345057712658802840827565869181751187903108496729815308014612974065561853801379955931195990213757482558351966179587606384434697270300358120683987338882388928113786161408473682225474530842468296401310485213002453123726404023378921801885422151638828098510142545545386511992216901267692119913932105419784948962247881842179247550611140206465047003426598679783819956718170318640354230332148644688046027727428900280817723650919911354412213100109573651604777028724252470022052547664485551712605006906135583067762383686434987978066164378181176517410154206350688204488942423169670912819790565007548764672221725056815696684160059434322685259849252484224685277654054067446571137701880321690556643083434247283911168050388414407260671345584329667024358684570149295046024227487942716764113407028956751662032939722172743116875716686765126380228089158493504837736219257664626880667330350480586502616774401132386823789183506195656891065736637647934986819148066261947273041114634744219827408256451851018637804864195752731063362569055072268527864171764794494307042429679209649553791779216584348800359058409640226467998829966093188459227511412022651848466725985149523719635748281987156139775516136356992961554504828242116248314950434547205525213188349701882220510296313546714468546908616891188375624567700522162521580342064050561681028310991569062980119787503029018760745251069262688751482135764261599433928984784679679418360387125368269780406510399070092255579869438658323623987996270624464295045171184915819791957634211826162694389617920054440302274374885407367275069622393219674184149398666211457257447560037537912367521377543005539705214243118679809525581910668586055562862763536863706570745304533589010375049176060966616349387013577153118951339932890712438376523635215180024772139875691849097003376790388283381733230330500011275355831396753729465519317328825218182355550136113485139983261914939029367992171062826391268064591634419157004965390771158006334069206864618810071967121944811221025491695350472509786011051444735280398005794819430751447483582104222233594079520959159217374862163318076120871687987677484943656266523311937373294637658736720427831654845918382364632637356104401026697475407990289716273925240206698595972059650943965754671750792175992346065644110434814216750305736265399615946656039693718224823847298697084279129218018643745673978874266694885425414655387212897687017710547941483499296356267976748481639692654607716160255541817877118313153919055643894075794334077218098058932550798890028627428016104794828657103383483252350607532631555421199249577964978912256056251933914346333050861786523074699909259268159094885548542563661171794184950051993487608658652927942713542004330730581382748352510366257467807216368863228572926302588424242766282551233919112948007170291009677118699612975907769846010752378351519355104890586974858062413085144972989481015549517248776994098212650931779135937665364221890358419052686345341868652906242815315302970238234476640634263626061921862681421758141065641477580978755171028234630996426594757256390457751760887620718233045964138095609278689818840188059756268298083700406468860951931300585504436995675672181099888021241846960748092105840747026713161849226568657296881268501976922951392785842298062963570306572308556354487644993963866703940056482244800409280876680507879827278528686364890732022399995522579983820796479926054059478910450824444387393781914369846170756078163697271865371222854109935494569417849401607243040893510628252133479643868676271875151079533120034844324198872406719093394060235439514201838742403486410569845124535192791235794756016799869830270129493695320672739254087069934346586359734709267080251266061584886028012122559407265361209902494020918694049392806942504777531257050524937133027680670644499060405727847067160462567039348164702964802612747276410780960064964954725354731334776394499878048894289458212569621951106884550317877679292361119660468048914599985097504105362110721033465040096280280615947031271938768795855885819989127716386173695550050148239030586782125388076388830329592737662395909970401978383265715959436168336117896750038870407781948226684422574784608342810413221120550730121558745402574370017959886371754768089784908334623577231377826717554378845376006017111600890651206614839380295217517074191816674001817737591055838846877497066193222785374452529567323185144892850459949046313913865750861979922701874699948813429057676612920815522439946145576706170277571708185562244556440457931133782694439515990708230593365806936524680586681789922359881673871239914252036013537714361816832648987920922638802018621613406169750728970483398583807612792308883788062344977527386046221478924237300607200839221233397185657185711947269378622688466947025045815396764751722924981686431027356589789940365168998301989419316830609128836443604976513282016533134155041563140705064384391858505659078672666882622698358810889292866771799877708857769984679820910722464652404694575627397730901710690254210702338823195282892425982398303865787178732441412467046799843664516091020936617859360329234606689513107270588375036954509160157978840749614423625087333492656404728866429775980919229350043750291758716540580227361402975164260132059953793242704521118506819824075974293091277861772807919381138111663901042684122830750131066668679789312563550987967236986912377978271184357201872771491087395813795587647220021188910538197765162808695060302101410796769862191668681556810956120471943213879052972003588354013905367883735128198950593795693794179634813812377756392696005402495122677311228052328974398581340942064507475880653801683081152981930619882525701679553301374260612338218694240164566861827306660477739958371592337721805678677586239571198002459589190135961615431393891853172984534042257473876222689532016546634413834099334531912184801380559645142382021052687186155721990741834402298287361344662548472191517387824926961961566482978103777060941521809068605743671079899003820413284076257909043623741487180421854868738236746392733227511799202509984258574575396610728723812700340151459335295317005502584905519329766771263742008974013886794829279439396067621063666286380207706111102521691608382569582168398088344649501996764397793705645182037242499289714329254319969817955997982736944955637508887929326328582390341839560563422969076500229129250006840027801430742871176229163972125766961817695102584401499691695419372472107686642745405226733878040719714235158444505401541830315341783289356019605914681255517004275163517982739300732557129850687651513292129106818276558049064084817170886458206762094805096730321108792609151160074016364939383604922732434597964767737535315044576594398858209127394719997873533397652209650256035541013575690949954821728306855529282759527800297512608273841479756675533508562901570463668555106565690366546478186178208910468514375774592399783098941527550506236708640328787401826166437742277198249560507552487973655272939338233485731875947472376552631701442329144736953747064270521801037358763412634610950380022987393985240722371686255481842226403184683577887156314565222778933001475197705875589021526744573823235810667231455921032335124395153951824273031831636100151879326919227049800443953454705315419693314873186094285568274623602368141582576912534447963638686447358200373639002130000598372563736353937522168294126353672780167519016585956000885517055164577394175184260400380488781820956481765289492135000472140111936359566166649605022319802443212890254219813856962238980761144762874818989536136335770319478147677586939527540497175674669966760758322915339465898018605909460238281648571583656980954514810869949706820694960509959425520477520519224204951001928594676033228209038353491876049151655228689960402819168659739358433588440785340615493531516857394414796268781175341701152940576654545486790754484140597116628025602967259904568954264646849658293285463014034572551695876709517117931369734914146287581733650749985760754567754738764070949989505944154445896473578257891314319949407381867987535409384146505737787121880539902213026379679345911063180033243300591981772639975133513121123606567425246172614860788970273706550043865223656345442890086604994870110198759500931276245127361460932134586477802894719583232783971800575091526869116044254917903534333894093608152096753436198901991263207483378047150828690690234434465828395594255556512779244286550091958303847218472541994445041581240240025244759878681887408497075470463315464300543729609210010746286085667068811908907651792822486422705982329294478070754516242746021071774394414824960900274438998468129483042983957537239885127997472411960448511455900966147321544245723229415557801356295305139872423084588506952474513041066368473043670015100574569458838865588945310457030923906200843182517598863127754762206092397294230854172523859588969905311226215488631679770587320594449704602565932560923513077322203783545606943068528238294367898023014608354210679684230064929257224699144492834278990295561954938136038815000869002543818763928591570599794200833860335507135039488884163132275103731462049656234272867069014155357998745914125037729189498650072666708937999720084837657285370008182607740239057039773630980690501194885562763218311524534547300876401437683884365059109301967600791774500258435177199613354684623202429817123563128665075049535541939044993370596760574081280966341597724265472579176749438149428887273616407000447181588792450839247945023233314225308630014125058019476279212304815306116189542622901713969423056294377657446255521833958948974394197031340369250368154634117861473809548548325296943593502975227590939345879583199169220124948623673035515797346870877340198336311486429749682630991588136335127788919785687937767252740115951836698913922061194999756476518477742849732669605419971059650209649068590535230998086934065107341452798923274514417302210580080295346684198579649948264615724008673169971950952229397552086656022356719686039688461295977138301465172004133379259129054429534442724267681471353519988355551601962469265724783407066975162870677562988783394502072609589579529053685379445764378902021960522456218858912579795120679082774553131072505847361837379754286379424655921421037437350975500917212887150697869953563664135414711340629730724452400612207170548581506349587360334464800392482014821284606126258531973115691375147958933942966299718086864800927015666703373629467491521661691037354334772234938457750307334724317039311952365457274906004647189446342675672003686749928817470298306401964701256753994873642871538541600084701699550450148633972813061769672665913811295027767071577157902855126404376571618999010326822036735736382227266465016172656142511289510706115220155986803971751391392251973926652178770843268811883978017517142669621224896216351780907223620334270671738083388445346331144912611162150041734183832186605772495383928108670239358843661419672555748528711500794144542493967046871478228952925661030502753334105191695923494507742954203686745942374198610233716078520255946873619300213540850897450641547693397920952794984160120097197368984718785317076238734574585288204324953913574001409125575102203806503880297246342101105925935362426832138325429800327348443636037120862856312537414325167537353188618213541710618588797822922321443617504213297923639664882568714515483435400490036904181017643059519413039951545369430142543784597686268607106168407165763362456097595594255731993605011093466593620405389264071791607519488785686614205310610712629806482118632381867702793068091345897474843728515372619733320013291790075416551442960471999654617231173252623984154438167381728524212851888306585915620143896159196743048556996281944361282493313303327029548796612112356716962694693182639439407761416671107445933903168737582295037665815861454001747884531430083050132458020360928294611981891395588192585756907055967005837326426286403470991116404694892195520562443891739392391826510976696775135059916395835100433703935195196929134767227165225733930384819819840653343712295328342956991956979230696909786230007665290528004117864030178022519915886353348935064421187706787672033167425962768188129003362821860816020044824595846978205448650857149399936273086989874678498495983607273296490292092352903734994534565353941674355632674537417310147784527646611379153250657755250140120132208782812834574712751405044184307471426625182723820605519471491543913142800527399135467321106609024176807594067396933450963817674459250118692926656188345306875471024002874605965356021023341388364359411575636635211375068288464035967244614578287109477105310766640687130708025507022361035983185493387497339893451025083191412808181118252142195312449484841766939438816876183658109861260899163693671702476545933697478821478464934242865579690841015129404283317519476114347111348925906723279338737505632697634227144489351178314975423141540115384384780048882228590403179336330699606729163056492411330224387686953353916819426326269018410828613672089723483248455601425903350077170474983895247674755937911361133208660821419659569378189171846642249271192099338479622547779915284885963428193549965623756602094863588299262237955239198674481882905691048182322062766060911376729749644312695128406113644333841336404298891541131259124604558480260386777548218776349278620205584976076801079398819246633698724731012211527042755294685892706371191380183075581410514047931746427737012348161276960474754021011861947109043406700151868353577196477962309280688275374268539664489014521061095976216179717226505659819749197565469110397996251784033799760361057577776006459923716138370185751940880091431524217637185047701021089256205637367192704662553162775050840577225598736063367399756608934596937887724325975485989681282747789533837949069517431803427552191229288940427564785969962846862982446005767626737106568679474820369601019479051064677586924761358897225095221800995267327322793309365147982613077208914648729869586287848357445545586672291692065903035106100476247583454139057274549051725873628573764600633134589175268165412804309812286688659277968967083304107071852987870755768894119451285554815995180767939929022886090678006186676475953187450843664585737621962669937366447101756219441894777978078982103650932528863126987115912471548073656542493720738247352653204606961017969407304071577182290881171395891276931606315461922685025698676087288763383666634006315114839510389636978028163383176059394601567622210034115272024018516047667700818741245469827829269628307429929492177349593895629892585914417014228863425619714602977880509364149328459428749286626980333937339330190047417008728887718980945808925372979476356065732796956864368350384057172818416244316991186975537436690751307197853552681742951884150174158258670676977951145782200556135545125378809213950344764534029679744180698845515118584991479492097028421924995303227752215786073062345534791665839739407347352976193271194548550608432429493298031099788959909804872437271040954282640801108932883407537542812302919692825351678010503606088905807545585859612261242823037477591134441342629367424843553592681922238909630205922787618780937765366641437109169505836182887642957799412778140852667091360415380193964266774629779197465729671576229339612445595586912760254487767797557601597687509656622997913611065369595978242862543201363375276105084179661080060096318720585280811051881887679284741271519418189163136562087221141733617176535824354539355124734910140458241250460461075703534202581931004672819166903210137387060400041750361034758508522219868858146964655945441992007836383429628849824206647857028812190840557032309771540563030030406366594575627794303980892589621601779145554486495985123050803413891703993339936947498154822875735749716268574810651415289841199203067439530726554899731128561766985845683394613753746532421103173774116245393224840832836085984384191691303754049336566666565283570879412933441849983768071442483587157772907106207396009990116195214603651631241315713829892600158444269922482144508674439821706185145418239037549972431558650534487735943586824126649826993915807159802203750417746207166725840201032087969495066985426949936362152447626388979901421728740297146786806145756559566613154706532963442391160103101942036583075295822790073844515915447686085727123147444250427935650558339545742941942949200327186500342943296671202026950083224186422359225666403846066213164608581916448187322543030746075343637922862365823050308748028505348129958076657293176065617135452275357168990611980797748335549081235677506788834488730693561628742524454345901345996119048412604318700254330004341726545339499801007346727575482913995825797367948119494905189976449602288118773333965520164733784518756328349245908007225300100054489698539264759226640923601015254177030760754725343504264272537261865635473222440937803432214498590793750337050516656750363891924360063110151615491065797340772159902280094539640081637419376338297581182662686339401619758934094110212171532021994771206558684158607837055887128152038601509979045734546525523518313963524010332414433024881182815324008840990444009468390672591739894129209126177421445300483457994802282215486244730815200257033651119523035044085427517667477353771244862898880970614869700837209869378865482510070650189190240332893875328076957131638290759744350039943076450656470597591274734176096031297948952703386740706916488617753886638106023811224654544718310732814120236221392457334398795898338320169248899881442949535691752088970737794657463177732543106466291300991173433731549519422706562467174726456576003427240015368252412689196532019268227155953581488495457621015871299802221428195060730406727230101033056155363562854590702641091287802923290575012833242894869371795781747994673295011370596712499824142329529813868961929262557276980416775587061534880052098673411462914192036244556805084146762218419946154704537302684091952510043848212486365162009633865048249488255056203845579344196469450986693521840863158456420186273692912104765422502179505778877655907849587046683630095072585593106947126063231054689014123503043460153576124146424161588015731585971316906071882354931406168817491140071043017514496640835419142544367334263030382625107599012671891937244909943590859842081289091773048999087053683576771253721217380446521608315972916556566703908756840747630083652493327192250023468897524774485255171167078595335467475551224972308448653977788514263679143399637489814314319875435529370626822082299704592609976055301606220122708400804194893221136724576310610826909358972800986167184898493195628458201319623065312732611581704332462683159317104281261122568013472979110657914600313103253535043806914503835926046477610780051188780874245501620294269278790639614073027648294536078717437466511609264463155272459488972043358157178213251656218403662619086509328168031601603602916936193886768629007583571935177640604416073283931121805063673286563559838104835361251121624736689535713068976052188579577657857675715516447936308071087373574297756969402288389333658842794386407247311761239788547926238633353521359921222450844899724160727033757825681129255503453156903621730721167542003513374522986577936303058119163261614660385075334228759388139374751768395650833075886854380074705561131957136600039007861266363827982195667799751155448325984356353079097924805187711409171077196990086931372548780729686000429507551893489679410608034977382292762503834429872894502199972901497728543403624599129353214956834968125451542627292449825830456207709207765604145257079367737831400016949516645562569724748833731752405579978289586587213278922321341928279775327129034366825387717572973500152385444403398565045778615440228400708693611000958864286335540395363757350307278167418940769865538000896489022523399260999389160277926319615520039757772850707309315248229671701306359275620015289117763661629187831266584932153440973246702226137447649268737600468660622021333923042814737686323782456820128747956095322360053280913389223620239394453791254960560368440871261277231509847417084765242398617125679675215134165780832791758554967066442414125334790652625504051789492049808049881517244042960331417552955219830323111850230416461118375932601307750416127617867669548968813404334286709480531711893963987361289508270198076357292858305075582584379125654817670735824437512887155138076968919310987024802181831448810893882830837527485849301651927804890170303547002121248925143135394322980685063450375286117969498681966921211847674975652401975171089492012481954775532263954569642329388917160924104518570145737456728497033585794934739352672767989485539425840760224510054235683927245978683624591064021303509576439816577770894198475083909965787886487567517430564850346044938401057990111859815276357025935472253423566910533432052377575725390194414942944156617637370138832354829302370363609191837448746178320633582199642272265578859488302818347848267749269926528257586091173684288018447060107906211152831994556637043069866811098236032667850043982603820181300679323120285254335778075308279974380343503079403434896657364044315096265756526087460273245782705055161627318265278487841288946763947821300740320985252575237252281913663310520148155033875087410056661162601117098048121182884689625628753833415817158151925286066000252220099702557720374269331350502551028887781340537994100892116270753230259810610464750141442710234009207179699929122963475507460609456931848307163877765639390870118237559918729130648979316200235863109846444829240045789858687544872274841433849859711405221896522613092882257114866528752310379747092610298355593240403314279289815910309144208661261899760914559907910459184162075444827571136909406416092415087492375850797993114236403607462378664086529148311126949947922357688758452486179468027683462057987182805103464090652890105067131167013962895186645625170655394173733953672991669508527592095866798398076864410740055311804404866533080574461284749077834826118150058359329804599213330887087251752103495155416661987878756019534074225803597437051382837697814273864564015020397609745482435452218045149218244336767154543372182260372801216314640309701031263101879665088374580866212472272318288725998533320541010976727456554971423636277473617348762771126751722972736648278834972814183887183460441149381685787130746173591724936126816769729693035301321594656841972277561085760984563961028896765390056344002609616708861273613228461352324134362170177379073973660158355666479583224195181528594622518024083235150265726553852758811412050114373599174741691206825084619840617503305375013514110008872397490075355616749346493540350367920109487873252993506338438911983874277118641141678354991035770646549397084846810087058565989595758011336264099281047678096412486967526561935812068224368415052982628203020415963887908312734694044525472859667669087806681690994337291526293924321166258192580012624753684066073552540056745989081010791654447952650943384244048559927641648640422013281710691531930021443183306991356678636704421090726222293869108890681473512224072400112206352554952170800203524022504711667175149582900126685242841577240472557699466524411590044228935812390096793463556413461445599788796055647108627784470758812879757801792328443306946130387831100694970037608703438248964616855161715462019853951654449672204075968225805514665014755872941909096597709155248933722493737495157014820151750566670555955962481578539948408994246295416665878821854490699119020659950498143469400305006584280704309872367437059890394823532205961848137132762785905161288756475702151104636191666385241824920674844360943728985131969630992609964558572093083204412975077974323298094286333534368150310527798357996294564512054422690907226540420036177862526168772009505609510888016657567933901967363162682381942372529830995515698247656902135450211316496870966392491039974006075035649559287335861980315329281690753201615770304906036821109662499868352614606241565519133626443590026247168241842825541427645188515968487959177314925557786730890801420513401105875171012492999625324657402963462314101530560308283566175654987703961791060594650864424478375303152347671551909839555203238555069398815954839222969456122491364808350300844597529153107289266270030340885510242422526717639592918105914119853398896398013809314927274920978265724283612073305225473316851048544773455470005237042151878304056969259669405143328554566883577618743493106164319401771824581509421295474750289321113011580428161448322620759280623342361161753713023419169194442371017168943937268985388057913018896883067827632688048241210149238430816247904746663761510740494962168717733167699085432880168418994877432155493404944448590670976080025429693496540363439862689412780059063541660094114612666712986403000845616910709792425910118726493313641635066421025535074959595832273535442743406264275237576067881828670647044801342118301123622980756681778939055639836018116602989705663983847035310778465808102364546518796435226556667531339692019687781193534559690576173215944192269293919134274354220161609479024492201571705769272448398925839265216237707773649612363010275781154734197640734996338027646593379353111141121021208595327903919321685171895672221215152685011205439041701859621999082432600411618985928715415383260006518154009732594149359811389387992508505458216972471716960714661644774664648923387190560379269489011129213249013454166760363158321017110534755321615365448266970333361876991075700550568660705705068744269889872849907306774240713640330910771534150714563083293343840025529291955639327005926517770933998026953882414593906989743824436880033841308200371018414509741530236661355040791508233062390539756308480930000557215518924402398176102933376902070554241502531106668130188673358153322618922870283500536809508582346197708255517574010001846509816419518391769286841960777888222548262981728744042921440612128998323731337437056116100658006229172895927235161061317229036032028247674429417418148578588784686334848274291626345039227522129199880063014287185433569046034493328746274113349313670062557597929649063391386885625261593100171772006387125487453131242842700781394930390534148996120340823497306124620961724138224148688402442414059151278748496578022544982788083333577363645258295675621862090147029031518028891721640294720597596971863294362358804048623942279058070981077783504328366623898243435563939364467965237286843185930859766644503100835830241576318607228612067855911021969106012703590694713268497312444107841275827721095846620173408100792507475491034579247721138581286344902680492397415344284007038341930180811775085252939981796038169727208640045230010063517952259450467566729161589364154506640483974677310030031858409079783779819274213346557644724236003196798402948517231902565572573579778623026910759116931801286861032103733893618508096045962936504525248222968429137871514248724597612148582155749123356194123576495988550611830225387121840752221366317147668200167451798302326404724765624191074038489845508497903243502066399036598573950169731134660780539283381884972812678128396176648971840086481840146095000190539614573777010809659836337289533923092147980830474873447834214187529013269941096690492256160168697195989872829487084768365420236924562797514322368009764495526543733634489664714055446774279783722697176241773379443694573654388857258079072302931410375176803919154648656130449609734301743108274236778573583273915784629945001298658847416313106381073063840531694936741516979331130625713094257088968730616641034940693068746202271299326665974053083453534596800616970755504619999278886091303948708519816920102945580456475422701151001425023083802633710325500742059184650020351758337533448394368280411038153941165742643905018398069943918717818341634648448440249618206302522026074571021905738949182831139504922351336054355860082645515745145162245901364242882062516347923985835552647973543004201312482105600076495109861359095710336223898806466294839091180238728923984655909978596655687200322168049093744482443867201114739805951354880176247449327824104731003060826752191622070465216022483072883455449248127325877047468168893954253607582104814571079733042508747956602157717487046517280338780887831394835628261269133048461618247299369636105709991664815716757131996828616523778317760653060358102143667884579374791823830018553933003370356271709124708427077721127991815450829217090671125666952788404866518419546417804647293095554792861357164188719243839661612913979660048448141927122966868620485866872376398458100164324474184123936193957409751077851990152701543779780190405365653003211057729704619673541613930138539862558129813376817177890837361702612615004802648618691582689301784897494217609451973682899707227018298852788740939662602053845008326792337499240692673385529619757437174719996619111596277914787297006940252520212147173675120589176413780289180061319045866637108533692253726366549093458784633525920422535732116259895846662915068425513459980607575662462660171316077938150800537864099520826519456059649093544549121667790580344824467634472621971862068555825788760655250164215095726907214519355969998865238243013741085842040571072712150282985562380822015002246228080426021361724110052324905895220770661839811972400541326202292864602446702486943513769397679782177834005391590227696322838326709362224629320115460179168165760145640129353878980632231442524411746500979397925226433078234672056348943467966254426838576342456196928090435042216839972365668640635401155456532462801786064210005783279591261554884734910815301858699297543471988817482102222802736344302990988688898282823479393341468689379358434662691493828796658254378222301734647234496600779958981228117065333989040749348607504752733346872837549447514165544889102915736720279227335463685704280055930919072015906389677159782076516125854750089388104969441180310710593366712683638532409364495156276356560367455878981405235175036209886134959046503030573267615248494670163198176306495268049962748489260019183649283774315535443765289755543987326292503481230944783965622139356139581643544858171959803684835893811207007450088379061393198733177203446644672541675788695957120919043490099193238057305063947968194472394805850596296612770164708322686771857043205477839244781576812338989470122640444335327181859887237375233346724811763407755025667296000114584259483898955137681638985158817145914267158180533992052391451231205722057649482908005368181850525361321184516310935814787406411737577073564266667929955856982737697365644992384717400286739794983921413956449318958135776851988489150300570477186747483978684159574588315421689937743336130632938032995356934054140900755536604050551681100649984684696427655168666593641173973043260574057139947421540018636082506806522697138328931818317841178296741421116800537828786821385150438868770399156637800248367515885305400938693443452128591512884976996606028329727491623625814084754383993389497795610091181607499651527715625731988097662202761206952244445624407037873385591187687530142581747473642174823006700488463466777372184434104715708165550159485379318977892807998818231378027773159393556140096373156466672472787624379555113895436851451394680707879980758640918864221405246675563370685002591252174018713089540940851754733623284986885409618419202893155313304511843894972183835395561642586633690949193994442625721599799001372772346396684675583655345611581493665340453882301447080247561787336570943013589348823199510482123485436346070737465238475581570512432436385977370405506566951233797099591491020615086944264599015731260430857608947484785892021641290016293849100274835359693595931392386623745555502353189922951962372692842463473125973815588533262583371220261960667285406087969926240605668803486626369260061447236082601135103358359197241484035580972534251680978315738212908920066985529767495286762600543476173086424677168706758096019231936052296916053508369060414083264775950954839736582990409158617905334623656182407080439842871555013396805286555742157319192325135261331252104278886295251820062398026214177381486631351903339921423335737656123836997395190729073584477539296722910093276213763517025174549627398321500557254998356293074157300920376102294589628198011326045886049151879740402845652884104015746665118373500474027580945505956129774675461771726676663432086712055595093645030106957732404656870744242068769045149901748976581469134314262451953483773307703893192709323916587631155057486166324268182762097212120435941111482846614142852182559564556303576850097405491473070262361691452341741963587411477784733796276820933277730989289748549416140582262634124642600701063075292959640877363012783952168699882287179095371551640535163295202595916990410247925080926407029922618338137289371652047914429857976289085876251801242565750570902684496534047797117249842195681193030640148573981236302035569366783851447682839835331785903661754423407349788893199075797305446959503497191174750664333836353740280029143021297199112013472606826207928595268985647720871561123090549993201794152306847045170046551605375800983624903326733610181102691641515301130127233055312095784064481360853207554480751729481559868792387609296493425976940315037386848159730610794338398552068577876804477502591814694717228126382178522382189674252453247792239987271909709832215860449773342748829315655033366125455212627339965478700270565965778280306858797962820112647351065455994872119322201671347346578930481937790969608369111472068912587136774008033716112250907581925865583284032781315706217414275677493054127112842088715165153185339665924048530535231503445903505903771514003513682808731625865863681578226708493116573452956048139494608061019995256094255011131606184290076212011365290441848621917962404956047978283882292395548026007864340086382887189827094517066083535872738647356108741770915330536915679987755737116551537323550601429717225840381288824605466338226131843478891114573305966226243321014453516289957617466477988255580899006152942452159861834113585147854556306462921803936349223206915765358550279559048188215725663698764064698436562692666059954986879330115946027606862901854023863751665787704708941371343195800735946855466725978387816407729776987595434340578317211411541396147754083739069157108341345182536617480890936286507535198252162619997105522257276123141197229892419482566522198030650733532491486259313861873900541206580582935793982080565625284449520192963668379698659884900891499728661654745342654609569603185550017034729874492593664834716321890271089746830806267306644612006501106819630838923730433717756713385339007608095345951403576929591890397692458388696292810223184289796912981355794525642033970063047817488577297303671897537344805176745876051892245450147926853772684751768616269836705818757073947666598965097289557747737048894971192118476829729978150914753888374809037269632792616979439199732580447024720461098358361414972602334736627625404620793139989185254766135922534766694114089752850729805910696838840750395998380865356420911580790082316817384885462615587957949300560359337181822028092669311126662296870252331986073982341018197227296847825922769957114892155260401136386296986993788828663755487484698009641472455303833737598721530830281121517833531422138747522976520941180197519975402168838014049312973107199616200780805401796232815975278221510864635304913972709426131279364152252444871938462031935805756334461090615331653002815121498874318618984715038976982988608018011030514622360569283079020379186688282879622422081597659381826047388670415777946071748553735491130179081925997499653231358796027757570501746235083025268527921573830258925787853180192201746382323551853257288454925541595854585643587878731097855272188071627305634263186928376339782954097389784889380067241177475964769987741425232372223991275302327652363253446839152204893007517497274377928854934173843495591727409218746203991345471656992819475355482613987853460426441663256589097593555608090377218074025565567866945214976546955044678421598269453508429110109864310485119392280470053884069910548376432636652181010117763087700908206831517199795690538618207065423309878075944609023321627556762595406803646550234401110743630008961044863904219882699163471935265903129426439022559810729181367712393088450220105978314744577913436754106468308882103441729348906186779327891151555546840488341100228764992941384765291744905476523634797658509542891638796090039902659478854746177544023297980609826076833679039465204098326717846320638731999806934913362333888365431055524430795411769592524625685492039925717524901482518146304475016923093490095973525022009341455508291347908521053576324538952369835104778369570472022861788405048516625631513719756606635711253194863024339412062581018084676890506876405095754062698044274560074656940439120957393075687513381198442681849447182178587888889817450610265041139165562978921300241663833694680858641018383610003965246684626681995911477039954637798139017359592666390845641187171970439462316614333120022732335039250346352726310461708548140944988768195401431713971910975606311660901767505281993072932386836022086672982456856701299253751235572512952200099327845411256829201488906272325960042552208178236738125582906780652383418087573234068067612752324584715854882082682225065577166457151295404962207894973555817768466429516521222415965339499599041473638904718151533153374945693529312518884209589047236703627382016898056354506732162793095682151896345760277097395641784414528512588917068875811116933701556828574476886143980141735001183844096745359459072721323484848678398357485095405859204896756615807900708878058351505772700848228641520913557380669001166298973961973867482807777252919452526395491253718210432369967989502210401521167480153920818412382934775953390051048908406987087049484426127131172696016637669707474613123448136576777753030426816700101037661099621014383002434729333257583247359300267110910915444640421655975814870862998556664132915171760009019465884470256414306800235987929487038206335873729680064929164991704602844596622758812980934178472439257152550845337671675922990732718880394634275438964240581980123262279159076695764237620440312036656775867899936334882796402057142233488106577860720843456455244846858714867945291399875859785918751613177621744803796094738667468981317866922450417186054323019363582494836341070954782020895327735769690585320337761152793033482433907057433289341970743191901089110871856865332890500154591805081573631777448140893924090573119246558314864727408634226388157506103653674224689927113049004429203215441658766524942856682120919174467724043505529545627988332159294748373280877364816118330427704196991708442201216103253157867786310276560316381666984042685759283429780861309460824986172005469219558764326072346941004585975082428461655365546540744067540765413047313098683805162406997010795512821339947416876129299972251716370170676821094779988289528016118785380920133217186763032026298302986166580422579715317503996909661082088963087070929408682146382940154689620271544160512818969202490087528554598949951449567608935313667154228833620791140335458196632995989712736012089691627356151260792875076424220578925152600188251912717857868856111584424042885513306448019549564752271702699964657056233691922679394384921182033219398709081140478864573701375363238212633192728064471212680129983673823802946217397906333813038076546760266817857865643643908684836233751641837619773147040990636773792884301306107242447965229694471213632749587807013962081013041191701200283579873647962087123723966328399161389527117516377249163717436644946684564710479835151416415982099116671503658491989516453903180001833511463698857066312091791113542303206592957136498426521064382696096130927744052848369453142669031735106413514770525375828513379818419048648884389076593840359412934913706142824472244146326483316130069703903715727048822119321600868731231484273092388270258988212798012948063307949485037494715374625805009356467430594632928486292613474091189430722890552277178161917689736862526133006887564145904877288758513650606151749030571408014545511374545893683088473642518023140551769895683424903383220353052700252738441187199086502941184744698573773880130129329419630930112014179790760288644921640261501804199750948488922346189324860176661596347434087908184911572658307802393387718465201102714257368462286773114372065858467604396328182434055135909811946411595274542660791315119386005555353710986063272916887544325056792301839972029991437916200933555004670006742118790943969996331462153703967687397693210793572082010672928087916863006271090809931122060403607753193968217182988889673049864657306413895186599148433992444659322613026734825969550924164827718203168658968179099591322119153106261213313971604166603104498350905294893602132297739047555621613066214322863789028226740373374425599051842921230376530333496480262305343150320575290951931262576554732626011729073538266628922010061224792726930635482959224848608305319289756186604864083389133832190190781098694810793336928627017120727201569669569249201830519859569197709670182443897881004984962181712116312122980276723600756251241816131830587482238018677016104300922905255532884047486743890846832793273480981073536997289901915760199359611650337571253578611130863070654025138317588277007024267266907562893344011942455079051826548840568250291487586764402439313193864600199975022244271450501744451374827831912698810730914073111638092994677814159847666367553886065537903589670889817924046233429147728875437234182480900298288803957572239195804906286552630924686584583673021679795898564603610422660403331843165195977547396544013737667922303723381969164505145841650722912244511536279827493918393150371002179503664727572970624265841933109926176052912191253842606231487738427476109096125997272505891020541822225923235663185545497383123144196760945551109463896491800712340694967179995084487551567594983416483563915959571127658607562373619561744156062816174203640374577137618727075040247218029079288975227596204666101232067521771215715185416687545978908569907902411384855799967008951587592701417683859514910453972656996584375790741872227034315731157491147417679690915846847934976079461862898112731776782863103758857759394599104391637386123724541771669562179522627355594696112128008730675167120565536973466552543599335515319052934052574409714763413207817799788007007203356164340060829179563037756676855423852102954489406467388100281326825440603048406595531202187749236263614442353198388628984120727837804642865720882942297651254353742674575216390300526796263210174396168602198142713338214989798706333840011150897029263392116887251730132042846997342908039592073505734820106525234611422335990675844069789859251402910590752486772190176492224698492688896582867063189014653090293066559787482003715244485969101165650977995268861014734100981815293158192283734283139332105760293157403002503657453324145787768638018950987060011267725829467758410645891982258279621316891008284717275889494149942398563564005007097475512089311514089464128211847853328899135191354453384079908238587350134414474883506939023121425303093126794961330732378112315636920838146062478748031002401167967468897320363213768814304020196556856530832682234990417567906904257681658680480108373961498155386140757509020300774978828437061876238153386749663883820783392150564380392889771133290944804890022815996766229887967867010084998871288659875391371028543598808320297621540135459029496175548893294463561717169322056978982167956609665871004480346177276706943380837489358519824038591365315519889035987861399740500633942012219091502835706443250294351841583839278644767437533707920811604866136288050911778921054683911046159067781895305958590623614663736832545332466577888951798511172225733357804025772508639141960027509890614634130683022903983270883859808493722802826261212819909643552960898664256948155552464014374744884172315818686468192203006809232207513604890758138350158367854394875331215314543598425597180990177275690746145911751833026384978715902079808394088376740745459999130578129701417631079836106461889064110869184601769069324786079858518891755214778574210055370291484996359445693995783424349820529453735618416592712331368612892232714222921464696566456103604512811647326650156902851578979611368263706517229729712274119624194912157297274034542536597782291252976447318738009717376051863581698545743074116516455737166410282061326278466335257876607338053081478315430433019343770778145629211072844460366091475228599661924751335742427248342833305018085346490899273586189671528360134135821760222936884420936073067742399195124104918913531797470641829184237864892672481099807848726230184003138584834295419173737758466414238359267720761970672027236489061194100998309266539811121411876821941117383195445952728486582690734208180036779560646159673601572755713567146826749017365628959551490027475014150846473036029966584981970136789535507973963087463131810506769653121937546515760465791699928136773574569048862403802744320387062818121474508707221207458952148711837296447086099479679126208755760357684894749549904195007024984411906535409322859446144913828620505748283629580226770438897685197836920281329112867193589271752757588238406613263986818760900067714262124268700061468856547147576009527139787283481215825101318260827878173752847665895708242550632287713901849154363160295411254918158505470560893976137637095875533715282673345531017867651317799564156393653070505970994143924479511533432515138431694498539668058486140193737462893187440821977914686614545979116926873750068354869397856933830077368741779159870103839928780782296978438691485893321593211943454882372689953192277112670358640120532036598991484343521750186793784265066490295500053030748567344383534693549194754280889575806762656660268579968922083873774582273199889378170055896079980397458833111316309567313526231918007002871012366717150382441087134793544495310965790930340247770663741580185439420856548381745272642349918050968176989753606518497937851756060032669362038116664988309033343855305297386285907927140484348292352181199675605548552350531446141308620924691959161087056370704310223618758591967174171232396321967347037480067540206804849721218926425864268157679963227709689285082381058197980006858701696882743835108801043809517951940299901384632302661010097816866716165329378172458200092605305317292436208211294706592224079314223992466414761255575141746330130683318164519279651250182903960488282792601790696770744405296511078389940149261700997237678307599017085669935557107306882553745836498736920304491911663920778247424346812242434652891123046750794917283975743762285396202630839337922888919690810956323261299671890458240799683133401722642099499933205599398236144829921636766659471358298862471045612225253754330698108924529815174315397547904964653634514546291752512015270967439954062872112751620318251773844069145297493271036326429511233212057331519180548160981492057065512669127214100183488309944764080972932003192026009351765990881483985671854382803461373213335197874898813681841457052617163092444576808178358052562837844469349252051543358682672196852585920255615279482339332263722838982981222896089844259161803470540224553872523964730380954153174897597666663330864057523450269249910339287067101958679077564741744350186311705760736725707376442014800504776941799870804070967270517124821741928444158507158129445459331746298782435018271098701601490456093267855823743086704655146790957219529428258608727259975052264441716389446444152740978352283128464740296669049169204755829415765259878886392339455290169381442935745245623500690428106476567564299387490363233316734329487078061002270695016399131054607333383554198945600962876660351155846478982700224149280041922168965311924797374618160475547258521799909964647685507304199023358117247715583594300224306366249978480554282215162120447522747273748621215956697831185997380368655653124052327730950766384688604301111989028256402259543544984240273563033270639686245904398184039076703556402532140449504071659853619205243772151633896650823259766358225648617204187953058162473740293636815604398589441154821778714431767229631322196617476370941739689888122142974156820305537691996127941525613924671973009348815893948306365761911372787977373011279875475252587841427016978765872999553517045965561616380788219564073151093478839005568415270324481427127532869628846399782418687088583105582372300709360031768570177731551402628678168102512738403871341649508920926178832447772020501834995961454180005203619487779047156812641538340275697385812717448610189971777823685435028470791921773106807432335794755981250253996692383895496668022310473278710582722073846409341780853396153356038530029949411583391950926672508599711548700699827333103509788624928577022017021155651363079019896144275682208648872061289159898102191078998402159745873265223155626572648994435070382386887197851099474985230601549218849503566673847358205625477882571842574143566261262349640918899885438987946038275041127112330572262347575491273841713300306583309553488686062174598287809612694841332804782798447129851104182467071019029603651636379011815794812141256040952365654391369836026132995384402447760501319141284174609468736407041677011317553005719433372905087085803648756454436600880401022785920900823377321901679098805301220555233790583529629749142474040526736910116425318687164115487571560803608268865491471703170333417269921072734097901596897044918526734652638678575457491641274618946278365734004927637527412157754150340726888359669348995550048021684252636836667034360753818701433157241248818966561357191518280350467488872179231836066556559953977199043209673805550249069528470422455475302577388602675673498096201795682186313098845267190388087616207404922246116721168228769801001066981900560007165438714829568141683599925764115528643684504888958668356333429234183240547700961570107738508639605262822807456159565924302131344466490957413216688735143132758783700096680712240634311673887924411921301469675414670814653494788113038453120718918440798458617709988693403223665430819167562646768164263550967716923389417041780862590472354103763396464142484094923524271292645663148693713559246833289637356367241645850452044743617845977743928234954986793282424105198801371624082363285380816936560633937955950398057545332763425699166333501029591179399132639047045367519693694471451106971879376945845952143275175250297126765864560606697721473947621003488294647529482495199432969571650242303301051736925183119576435764441053956449228148535168860082227260380456985836040287409287822264637893807548195014511354896923993705737457725550276163730971683219192592614298878984501683049669104377781334126944722273095194368365786668983823599742923676676903616705611368914987229342344939907016085754018024529690161079829079399909828590118259947372181771176376944774018246021004231979829678497748550478988254686704150604230417786470496737650589985180771458311126328861351207202243408865494816286099672769876254450361774294688233765928830698452770391395601059612352495924939748474972688959497994349872530804860018249373817123938697870088830687453631618111890584363946556512861232148672075118976143728876659947300102166947399971424453652533932867604560508151358264382273267000617497613378751525911215283188681226362510927712917401791191448133722158624244075881114642819532597629245026995451342023890271544384624921428152140939578862934308612732972232609484828667563212095056056015986548642264471596128998662310169278756965740550752631663649251033845278778287693353147886324172020377883217446724225486806477493860635138632528258990561039334373710466486981407050882217320437052997393310908064770046085480514231920060087081101937073483889390658254772460878942328591845507533813785379193608959680361814413335045601269525420052271213362377565952456554304293014957528650538973033157093913270533495233277614309872778915547234736251874162204212335269577822578628312597716731056290516515453394125452908341371668026993786504836926562229497457630664602294555459519950757247298594705545716258949010498532192661801790233330857456621600514723979410513906697857005907067489747042908080431961610491506814537557596389132824617203505663111947410501897691804381936379809410705609262435084683187774386838500678144063018360739149868184467567108551676249477031704301074597335748161354687867411073589513554967672392542658649254901759134150879708668065523993849719256495159273672209623068890512478435673613092793790112998397212395040421826669257526619939174993116881470563181407407700172182212015240455139931362083909108801917386014700873441595803994319592371623604737952425192848891495098873288656595588864137851133566362998446854129420826133965206084546358934019135063815230519770986341312377693993789503976265660611935111874480267534691602637515121561327298289908524727322200144223962275069715962875206181004870186603279066211568616028839178498107742990794795117815477711130225115986121488759632908258433728969681047837007521206698392041139696243292991384174888093928877072994994519197006449235286243443821824951922724223621316963665099598689576283055942641396503807492987068648792909316300628161946274752788383948581788491416709627651190780368745154509561474830712810214160053320177653161626315229203942455212540294932900438865478733281878876650455788904332057390655850376604481844727730944913138718537737303682161267537957939838309822967237790965746060398090056135095173778446578644343971059701202608654268806531523808072105274559236178759221648217972287224617460708270101828142711003796641502164446134767235888386072825073394750951850598500044981614983019866450361811745949641092607128474099175950134050231932613565340366863134533862171131922955623149861094603870077304831802136822711182574925896026503459167523057347358483819092136320035240089791166407694494539990835700412922508691761242458855320242900350182845838369222804347885996500773118901603564150233126208533567029979759532590244908303195960322517325912936651012027600573239424005616008435969125421713561620845557026930591718216624457980674381798307660744527328054520477378883016351745404407908560917581769835168592410607213745729373390010048028936623975986484866890554906731039362256796871430117843914944439114567930628307308595369008073649240979360209051301038604745071809336035354796929674757240618926172076597266326742115906811657356745706206117954579617330366272820994519062553910280789999350303476979037395043294607851409188068823876128765784954062797842610870200796903671191960270671899989625948834315353815406667312019344005835895236167785090294936042518050008593519693721115637377206652519596827650707372401811180960885336806906057276722461368105989033941239307901426436502987666638230903383472649193446536451827224404772616998307470270589391690710034344126420722162442627556207785028967213286939409553772143422985941560257693425554252539373834635586212936836930818917553954238444630377276241189672516448623749116063486654269734143345192448312446533688734780828225618856458892098651648369135687310521791086934626676697831026417860535499683955474494834755647199995671931939510889373635998419026580577360951723959918923857997989132488278184290180101803243072575491650515932736928508193223796139691475653010150751923117427063866375473655698760024582599943848379396391878027977949273220658052407357405456554118871523007892686004423345377376097493826245916070888221338283095881496329011708458778365985789095979837229575876695044481745941020898924127233399092177672118243834768641372849224557902928352526683515503383237584712308475049356167269462583774107877028365791971133540702637595106036151954650301826122329972453763845117197164966706945382687976903075109407752034530617842062129162890703022469580766989430702478432880625119128853668268194794981819130975987822597758988319346385589488000765621350064090505951636507884413101132811198051332259199759514141563793349943671296812010801741029872388019952022597850080969898411101527112799592262806048704219886999377629805213845993116673111291045757093596743296084249571121516646691938372955496045682121358805113869336917210204650716561173730394012442300862921566461025142061991301877619887899631899316192910707923286570564057445206158472414853530341547336885990398346639660123907948119585280264614403642723960184534866568330828596771457288228911365494243254669011374629756236265914136739196869815269349922300635887955986027362267733969670898628670877242586996263574880693499746993486848225108691253393220526456394821711358981753312792884919053395925527499007985070047189136550582421490360288333793546617919115531484516653832509138593128531676527208900078493417181471053527457549110806497210090950790405290505998963365774346942526260737944187557764811689364623537009096537807903503978459907540734703391965525189908292563597735646302141557381301050959607498222343792591406122493927891359148418846249330269858914561606043050509412245139120863300178225637098598502034516583719565499282502668858874128114139247348409352916850126899020397867834119567926403043535002037128816160023931776439332171098244420005956728699070065302214337818093268335523172378260823349730261986335722350905595323140054200771243771785402435167604194477165976688903773578908085243953423990693773385395287652225008690363656586797283032436807507744963090888919840607455094311920067015405115724868320217480988286972173634720255597636135274213074740348509911908832372450034428426655579064569985517078378601986158178715796269946536999768330752369762587685197949201450172919966242674902742071527978763842752302462533513539595180411206510075271714711185848295199679991328541001958726921993188295000705957674175067818725731707434821384225431865415076952931232932676501597888999829080642184603351180831374718953606571840789112986667564298328935588502727085289295992552134153702830775871918088716619763280741842687589365409120973761649906369530937102721199960938030265197704661916135887613131764929504125329286711247519156103180832970594765355735569794817265760878166916497546323988604707102893246262330098385755121997180862933883245683844865124344510613796716118371860808406296997203447686192086365923477763445150982225859156951696404209115967423750182067536183347330588867037182488271702907429243717759874423916663512906683077459440873093161439721206555508522050071693176883305757398381976339614809912367955759010412949879351711280172555704655132143160557638801830513145563409453245331943091909648180780686606090723149695411188694564430732148659387893807050065981778559921005434820959348032484717175062214743882344115693265206548181739952563154401947005057875364267835283226612224861468796070210895952443839071078126161954900924368056103522820699554848118331759629969873590220260684433512618729878855886952359059725705498001008368755740489104797148438182371487291130593862006426278612894867962683503396834799150905171503465642946558664526142636640810815037786902027576790322288828754743801047547242681102822049938175134222262519849762110777876828427528287554543848018396849818661350601605500760380136715980034013161217447880149840091837264359279260923525307150241534493510276145893832882361067791018266921879841583607823901616454726748711247597629109327276915436738983419364234498431250278034329470737256800480081830405435925878971336862352145084714732668800454949609684070204038529430250735260398490220150512279633632433446929460001703262070336711242418142566479271217302149756345195295548948744433400849862101840890786129463830402366082646807740163293129100372014255300409735893159356857760710834339380789027737200401327746818673060283130341240470483873809733499185297029897803240581066645791872620032637509562445093981347976905712827058037273942644896384582963867932448914424723791727183420217919857758983087433321280042286809448379161901574577445406284769732620392133835798378446321664147451303368873315336063027435729268045030728864824488358686709989903029227006096437258328492211847203011518591350315251441650077974439794906964002965701629884067047101948598546463604389756608572367250655405910454135905675376378663298296985365027019751079006036700208730021973409458217237197639930693972916302211759863042826951519395200266546437736082758127762439116227905919195899194283646528284631103939891934745298734783747209874390940546409737773725984181864210774673041566426017840667436283140118596966520880380950668242863412238149854762863351473427779837466153722902747218921867609612664100231348507223438721315921119283584297712390037752696263804939500681602298260652637459073927671722472458102925263199963537183695265970631083663247202352651514973342378222613809364126179599360129555573252692547596062975621109544898672920456653572983675481526902894101022320818644064736328448731069941382599153105553660764960481290263585900674062059690971968977234211293314875773274536458013247728516675907241780459961037533727832337804876526835174600906313665097577571547614379699587132490994356258829120812092253915038477204975981617867421884150827639824581684311167859151908842022528400213837882058992841716293489425979358098012662457774910178973323606408751723536251754079120565153128190818749540627109494786161536288762433780679010503107707225167992405435507861816746457571050218071009865647194162888279360365653483007184895009764719505297227228311820421407954451652019695734195190838174590800406716338125500512274481874541964583275648487065229073472047512527000228975282483754379140508286596184357902367178940757402348373427644207760834193975702736018189104625723051569702844969707248886220334800442424576616332335160090860782958650477845749765692914961186178850372547546474966914470643939679537427942709309808128651007059128449808260608393980361383687528412646094889676788803980932448093269334604404831889231385770634419170067013670547487705225943032676720974404875404139214530703282746759421361595372479597299977016248706319097232790786963238115566328729425894318833217373832681346943892177017134249023405014407916688551440483025066990371876327632966970638984744762799421944131715870782249281515628393179340570841384165243204403967107618082877115157607016450784386078282267763503595900336939207834005858930860373296693252719839655752175102192689510975645477423390232359902524197270962126318123311025120177819127563718357632011531693272582243494092443344184276600665913227446423877948454120353903072558047345531081950863604453360654844685588331032071972326466827802328944176818785381160058081040522384215737144891542869776366399717885056039691684428612142175079759865388725612893046466828902629495155753672373468729408869934422439527313927762248009287587812627888538765533152883284626649697032435405707014355284008567587941598273099305805950573987937870671280671573491040407252761056024810023616741064123274001548600499700011113862262811407153543777239169513878309730962633844655755830587095377537615773555848157847449228587588182106914877154710294140144673296509910119035081469403442448181554490935140242663057502269820801956742290218854900871579611172631711941520291998494504045676787032112447614041049542607732226827760762388135941773261215815699662517456643141081969718291255802308895436128705499837677158633746765005784940579530715720921644775703216514555182638301804926535417071973197429115022198366161903535782732690431010288712063023801736729763721805498896306807063546725556566210979620310813011899473417154719444209953305189712386059267247253784043861982199374257574926389688764840777777222087120381463326551310234006977575688367867689867737135970386788806375308367316320255967747877622768896800135427080581995190184135840422505742880746726195444637355609453965080679519505709956124657598396592517068508459295570790896031478133161941495171636926105204169464462548534464248521123887456740551054817988141679674233456452730619042143185207400260752476194141993704412207723768376383904521114838233210987608221810267453235953533718890935576470294919600933901632525200723693464994906707328413801041268430286526262543463897313812663817953817584844116834912325372740337978045611580152463069540976603419777479020712685463238530266493410692199995030918671722759653886565725143502419476426528117420688278557409414816295682401513710903660662415120527684483058244548930540530178512544557469131173515239991355572236198781405419085939693142681972858292594007191944328021680922476204460907595454022260404209156815442369298215048845781305844114057632806563367679610643458579767629873204616841414016736387188813114394889463466144302672415969593625497966187654900625622437020559943843742686205575566953460919779178325366875522762989440077622716998879041339750940377655094472981367911490394569711472490642305878377760777400199392770879388292356880891535211262326221943605967536004042642196637121195383800821370537286903792307977672265302000191077059728634100683149366517826567220017421988168017053443012699689721056876645432402558995778694586333227021048704894773742771631280719346199309522394208799048095587167420051333422166666865893405393077316425384226899444589558952743160312765842972952427214685422040239009963188625771497309950060536481105957662215244013501260631613256508555646642007341458268561160545834942222523691426883703859975638334583523587652659160644933893491962007569772231648177223549112697914405865128934779463390026261571393879926600815844690338155293419689702177199327282520104585805267652320874178735924813126677690919195302736101222895080331530026574731275847737365735793254189614979930534645396427394986533613992439915973527922021565872264736842869778760253438699420595662649026408571695394996688573171399129387611925804341925009736690763742824468517665659135869669842789647688822569598299930855292424246355877698374792725977670027539768697795001554617855892493632884555389561084165550106459829194702125691548684848652864885158796936090351091201640557238352779028482174952078409896905694711569905539890793674772143699742436543441205780572065934683993490616159256952176985715985741331444441795998741366761252475739557310157551972041569995178321559974586388124204847353874753649479236419336606368948576974775067608699668943209570034907025951833462001199017706063926323959083692433931959548776790224472778314771383298214851582725858603687197416528643177348408589315388540668151910526041022881932904700874447532397858723722355972480422190407225844436341884951578565189263277331681615512711518699375013834199003034190222052583019319848922286751257002304545609332986124625160420365789222865190280636887269019264390530756378704555311413997312969649265921532634878431379545746580776761832472027982238029515091917470701468774065199189562338592025603299670096356232726478585741248999179338407424888676435527850685684520701257857795305186061760903410640614976098614089987834983972864524786127340373086628045879980648346224555040369122568664488567287386153466419102658976377020739397263195717850180983518401267977196153994549838145018643310760732768256862878518574400447675174850474944822632905311677313817351271226424984677480836192225888001190084598975887452800762817489656684638675049593406457390862768065082215753342722662051842872155249833374831524130173795097356152990889343184835583554738425958901744772100813516038225362822188917054412798942321482054785537080250934994452049707131785234739788100411954048583192456126011254133644503228313733470913750312296229016325957955219199800891715508072362197372267235257996394665863588737621544630858708204720760759033592279171977061676473517173439565484894827014214919005303034511581500056940762315717393579913546380919370615961434934263197073716215661248403420407371454786096718533367033662219736935386785037831723506440207104275023716629079335663534578887160963434296148663756163870063491956034410807929264427351633810366920428865217807819605415998004569721192112607413594541505130728370254468975599692810862808411292285460477746245079351651294094640529233037111064201489620769501673194108458025570801985626630604980698722944997754263130455325330706004196552907677907082358362714822176918618350067194802549504445644733107923112538700584488468920099038910862665200609631859532724491847864758091453675307971880606501490894034839345732323917973182489830677274484546500606106891838670648636652272110360555574790303709007356181177874344232667400667603049299796572311276824623881459131428524683408847155903861772222445701739034716524608556478057538826405395865361579176478143141256679459577602680466624574911148473544869008186671470456198891543421564427189782249830833737703786398864821913432819123614314342859768669764816243813801960031290881105886660786879070278046923319869839152265586911865881473551028456948955571930493212998787201374470837883393721606475096887662787558008488519937471239754039720632259799482779454731060318229648025414963332426817123559640102894820011343785061493163984083994410126595798135765466986666410746934098526140314505685775346480705101165303389527947855398185610670971112868080720278049593715397682632458777904174544031298812250956622589157924140944021219668363004735622687726668905144872669614732506668946443428435441207642970122901273504792123360200788661124509891480618133977073726809129502471417714276390909335971081868109249385352984454791412069465621110239838791234147411784742997231780388532024026756995671758861418114006012011387772542909797201137669501794977685070624602313151245458967562319398710041324798264601826844073844535675882499417996018220151168170633621224054248287813495910326113828018863804444133165842227089079760787302806809186462280411023033548788765727380675540887086687988638031474508194393629986352510121921797984670469807474527984131289609549267587535087316847822768656572143086375328587173482427434279088206730203959216815234686863359082314957672123994121161947950826018294646879541705258418812437987257706187226268373918795848124021294369024367933127180481488814784942940454935375384976195394355624423500068069322150448967275450267005643649786349134149270540755156088650304454856954283828112392367248971859915467752755764043683135746443092411566692149729942343489084865395570465685341102762829177864987394308333771804074281566865615855651539462560257860930899814359907937018809497496773731673777837927851118908677021422059317339304060046630317485318121926678393684763529733313782002147719465139282142381511837343066150094909601571331282240146868071040684924670078217701669816284596199293428247578197163494448829072255572925645541617173962808845111007322575725419327166133891820381220813256879544769328008128176203860114230926004282117862393377220545761613221600670374849810093780648261276549830981697796017155852726341812666014020323269104259182566596882128912252723054598102296293890284658329319391508508543322028838748185725793173557747033238622401210902781591187219583656619461379437398897113174758749763848006425302594772336681990845573864833588838664067924667379631547830071962750073522420893198983957184151258371682745518989804476101593975852200018034944266371122554372206319658606542460303941328416258234781680977390452214632268798217347184175431778772303339889201565843154531890498535472598990944043778273939839298982220681562357988891619430223993836253692922474095165751001487890262849662782360370830211031699256262908088340080611207394700850225182515934312298349158558802929372338074385519716022827776919010089854756573662378901478840250302932079061288564975422151199976180640657514634929371572249824016980961255941990021161200698552396390012025495071195122062586469502103326621134979255278480846173414129516412129468894626618147423807870636589809571911900482708885084246606171526475495573442363193035498081474526308680011224449516654610394502629519815730142967881019704433456330404130480518664026372794955485122753234355757103693328754668778767345484549897353351347845012171982788145690699494406673238464713140378517543074687851928114132495597715373515180483688493364180904474130876627473106295110460660238273509271806191146733230648254848406304549888892776151511500358834528636838497535252849907440750329042251317446257072922495658138431613338130607963763247962395667119282712434023086179932494026647972389029073509203643187707596159150169738516520741407806718974261556631958929343586335903314576836417309233009277866360319594865321580004237662682671145559860802851061897172024552051863002467003083142751448574893146750893934953823981276645877680219617584436895100239591033247645713363443965564383516088083525480634088872455411281934965891132030306145835658242048752088634422945043594014107375454111019091424194741386389228512156589222312261957570728144725088826693842826946147984497558723109271233929639391887754060775401164822858542229759483638499879688919167597125606736715182207047480973899843311363624011155356398602963039784771773692734063333611508139336289844482936041282118283904445213062548316504486521623243345191262635953475165550745977907258436346245116312620380376130398611651583490103932830280318358906044726264509110895846394138735071560287063668782704408799218096599000127849591196615041823441024221906013996583815427859140097973383450589883017285810078397219763413577361189174808417607067046587035957495155994534975074912419449594852307797025686523106294377174990510801231369590696955990024389444606759822627981903642946591278154387791875941536656300365641719903584804114617218953276260337462419456443514044215784349214888482428562167311691542349433769640410797642837172499136610102490703353286027563247627897532310693763184235192171321324059717139261722215123219623890948573694636420571075651219957468597815876778359860530160893161669727536013529154260826777769543689329228595525870783687666338409907066860117756929261598886725488825370965053924096810952160256618839340103851528354322019824912735801036959369308442531639869307574686667837055390486989585438403785074033681658966681286076219064072528660901810086866781619121316395736204578636777612613396036973636242767135416212168847808118818763993734822642731708944982105212573256251460676476112527757199584296652813521365809677533143786817463393887338161202039519978428638434248382184487535453349685361879299751280341180427090375430053313462201564840485508064129543396659947795199337936407483306792854339771522148533228170994095667664993831791854384862173232942243788935485677020007200423536063408044505440905884750452087799242690755181725367209622119214517434405731683512036719910478996371243063942599114414549988765076463475752327642461031388727007702756772594033164224311478844701842815646455609893694774183289562200297658991074774476557507073762390419327407856553478718199259158002673354397281285993540175932744711039796269495992004464589829639551454809605829167700523025749376586910150097894707432407400970277365309566811781763950753574010769539822202772640391728924081086799242146410382987227032864217987152675622398881292037815978613219057074722428038984034497384974850203198803441259955290982044187598592601081138409535415609894141459976673874548072550699783732652552882445113479982487302153464211236241123925255452354591668926155676426629534767861945383257849596922714215806093220112091115163854138629525872630422648035327060788980271042919926167260144020570299531559557378160679306275300940692369104303897628312820854005231888538743562584659442153518571850502845836967855742075961139362458075071928604210454687184279552078807706669658343994021350139373859502561018382670969218187377273798822503405232558419569143376764166009459433499262532868603440913263721594758248469392382782947771151561920798262702825976154412759301312462674567174572014534268730251753761473688013743772923917391501376630280332331040260033153078301433276185182800142333525740605204129751684609440242253587597853060462332840290700589148397382974498989106260246290293090170130471800348656537885867406685547355011568931855936802212623497171514258879917445188391654055512507117927092283680828268665061143552232105162483325270311365628019060184197348907332091377728060289710903028750748770031232335552472464171795512835279253557472119047210506057109905776567584085454251708900195997148243748617632714789751272524664030981094925844176144320716564004850351279875414919402873109097059617065298779625580342231087496981790675169310713740393922925131365929135705185611142753053815068393270552475808948922965781862042121362146013480602328928835169224446807465966047003900177556531921989654427773333904975003228219829900122989062644969136987744135617286198352826782598493041479065470777234917546663732580864115536837482564325337045438206143651635721703215049814399474497258092994735540070446927709305808620776320240356574282775801094354208191792153550171670988603069162784413257993819074485159546817103688489824166175428584138471929749934199056550368323144108801307819385442504597577947659682545189514153078008155656003337290151637738407418292417219245450363744825150047587972712184156645667141368116590777926666618369773621114286637326839394967220965749476979342167586891931854981042931101708060319191001533406124776122583687904754042146230051078755028312984633102751238741636117417061982773146212980034774509941431812098656245892907366991640268285416682191965994237624270580637940832992871319383728324065162228316691343240705071433155433882561494130435063135137979454722169105177461836584944972762102030720333785545263283435409539184008080761001503206018423430828971635589386938749433249885234767026175930542214562704143964174274147605953151207439168520453258464822454679934309243409827108666967212314084350736741148305899208498278426247200609618961808113052124971240717391316641653842919442440920900538707034817043303730851199582093516333770306764498654375003273383586705948775553479385058929757514809997561268153231357497865503873982596335434552852652316522109110392555027025599623235098336427337042349736533657761506340433017117155689414568108057323382106290862409478887630158641941787196065345355569715303363491265304726790153986743926978490510619097101212823283765866351757376669068058226681651926987423764037551444408733150646468932086965356970763353554980679254625135298365951119184150083668647907826799668540556158009979656988028052170268380915090476810963160869417419460204699750022079067429752727278296172287963038898240716585534626221257918739247791581107655475776651561794839486932118518989844488396302733672418069835099073344497652612567822874100323250487318451576083941955659235390006762010234889217058000129658760979687287720424181522314273410693146639885460904907729015453708554043331983514971766110006696062749292055080508998978514932266493468673483610592312207362576666472964770206112980966222081893209854593495932772447595278172119691113351989391694109750646001728430610686666129503429808585022309010361874191744703733190457025888245922515926745130378168676240722867750735553082481358031660648720091454324305626861673815966455979622576811848735800307624655260119105682298449008972184401711742018977156518534118910934997128740427548390090800920743956806197609024482786618714318759008794539138186684954893621403018405273026793380471306501883622665809429781508254344052962898102485494130309686901299080823953251186772712317067618716078257237492486955711481664068022083055641959636202238438691731613978159057281650743378492793522305706332117901264366886122694084929858389629345904298742413946687412122206682947938758395737128327264052717189885713186422675744651709657761931712663767680691284258776326567927683351817095879447833690451876893285169817550251714995552749042905828694449693148428347186464924161935719108313058888191832001068967305205468471733904997194340732718341448903030172583417780154425520439666470760890264499921602989494083098413307099850062357295771233124633488937528612423037386448087614578795795875861794223301749155734712035782046571727294526563236539080589790055629501984847688586523810717886888355844628286602623099300134257138882033700312468175235627367789343069867922287516950501328792943618591217742155429013755066390690897508707682722686164838323547941491490083054484678490281382455433870509268395865205736485969796742621414198405944421338817699128054972090253822965069897913242217494197136704675655007187155564245883669590973523406109665255114054634266318989995541077017369026746303417543676800103521875761830423980110941151426653991476349739579299752943889377484063320610657860340259219083183337664170288289059892285169980041881051174281449386967284734480288759161057193088378049381204614554934325408017803635597907420228543253299226340647936802024892360986723811511813225154157641990054369316575170970085541572476113253880567594569396512070060594871006361587579277789746853261499125753182312956653026185766219065487284708801769029206401807595357277432783568234743236415983412060889848758132155530696172260676253180227983211438493630018533817944972644462749833083247765868465605927978612548312523644632979117359941120330757270092137205432032447743434275420472406164764742345049536492568922487945405484678380434926236625396322229205751214120447149885847756314363997436366137127983464879868556017279563515433736971715050601112962853133306038139910574106735316547866844349007448507384275747766285555279003550274976154452190732999111708683324977380074122606370819883190111432360579455559538798305118096623500950159335022128281860724337576727676352511704386853725209229947115680109682216833917500149278671383100387807017447898154384654772761430225800366123937765007030632823692234645294524046955759521943752646241939064402072953343897225045385889248004702357453734562110941937007606209321435068026693476402830263209722630917305142037711453676008226457015963009962558340555819429567916600856848021101471111743302447808499244282321459910153806563251976257850038386444773241116899302492648554673261572877433048089170596483712692340677672913528550002143699394435807197736246361933262067294763044420954956522251671829795839072150195911717217909686710070296624968472268438838381614240644314149328677253170698780851540976703787326118791357075548126639990788415439341868786910895665762407408900430237324351776053142592180046833955193353312077881173469455451700677788994498421064266162075893088935060271442384539813227919288897885454329724383729551299032225110734930662189483009270547259393611066067019386140726572182088221192016482388275018682263526816852785713300370133623684692681951646994505602605259254391323736951720290162093804360916729020171289590901783879065356979814054633832421150103625416425162508580203022222124699094404108359801887136937508153578048655334789305264436774582534446992497595866494779315195902825432514488498011793050964624647842625802446714451888479531440952718683148608525802891532554538514672554566751577398359496749967697144863590670711363985267158186339765851530835994934712684646533858492802063833394815299117581467469893380739205360618126651695327480128337017741468057889695574185610276318286261686028404856643517329779035966605687620319056910877193594284733910566856928243943436323734954825148656483151365404685399701494392446120034369148912521619938383045032628641296483498712538680399245501771958195766940897263792571974825981925736418964569850807656216826323245541432677119469509343620979191909185206355359042347263472619912467434438177151207032631102200764330170706096981852529441359260063479375027218731680038864519001218145670568259838341114477731542208326794686502748326745944958362224693932836576820770721155545033063730809690106258404591220275926190380314400252703216991514412153016316395616329603014305186775350125179598183086898761810775130513205150413783264600931080164450813779998343775308974521299133609727460175347390977783514334429522662568680183001818901413780611872039844516621293897998120195449628732878853743709040705306356291459887600849791136511428984419298842371637222593801374252481180827236519616302898598352192703025873819475278121425960446281443971647864139478881370794906328905080126368904737159157415389338164636695295804727420646690471041808931346952637366351597346741726486914022107740302262645579079032128663636996375112569770536254954809763450850728744749250580097051922854964171869687590086398998910173366705408427252532184873212368879129702307199522124453077136570024962802001402295270375197435001596723006663577768547928989354222938023791537673832776312491218145352972572899266290811953682642465049773998705996028142909889920703301086794259853025674090625214544911813142416385776483527785223698348845909840461508292776416823395997534383558552333108946229309291952774969093228027620789055234941679440699590130482980857708450977622917035208786235184260230880017026169709639692437059780199483481148028338573128666433018561787549320544188592573663941063210385472442498607603326205782985789285495217642683991111182807093262243691386790024175593485535182102010568048178723009567487711678529989277075418247194435592034130830044006672203628131167994400461324042845657133474234370061391274798308215161922199062344815383693411123207276589904574300637897801790384872030184204561739931007614896944241005508398639373078312459010825192502542701407395364531837567191243355795480139138099912622441300504019980480853167750971018999438925975163075855436073178579552385574106413404665947351525772976711717764298553796171776304616737676757391628037353618788805267228815032773413021365628097695668900655385377426203210629133233060087979458195344436886272805378195011195619707429070095986332793999767521722424798582362323719401998336812991029384824069381667642732459914671758544095271110600729508757689222274850240350772770089632730792260495953436667831483275471414429193326528528286928500448269314508726242221959782135815088766215692510269648163698192773346202927859263599154003933135153521573362151579263195795940367108578658645066955050737393549218571985541740859904616888902641934465422528440395606320435039248886759743072271268625813466596339940429765633069966429988884499589158573410727379516327000395946418923335773351803774557989033810057296518594843353420000075483923737219928306853542452932774837611237418601489678297110421197765150713170302426741401231657144502001790500933715334781806322228479416521822433872870208027368991489133895797349829563860553371201647581469307488345181445844836288445129778986243297880398112689753495846398837377607593348237172460629494316732380948311870155934945724088829278283639555650352064956660506320835567887247328543010709607880903858494750050608405077863389443626944662224043197933119772905257474328142191720009905154807249249676015656186737572833753910197766049787197005149398688171703528693727304653350868115128326980094735221111089338908945718484634786219820982217625881691515923160760316766688026346552415683732774134908251464847916787121899091352844066639124642570298621485493750264542072037336048024440198759885558561398554061685604861305856810082218416460411682025483767215882715921754152764083052284090588092097286465387311896989646355413322420301591089291476324724833873887467071715356576162136245483489344183580332792264442803519136855591868822966080585270102510583972899524062151492430344407368003983974473909856937336675132930900146587059534387426754908124303158472774489273260268658542727039337599717813846044112588581707415279989372512783791580885193022885359614860043728035474276088526386019986662001398256202877608921546887321502877570699885318344592250785922815958571381660393282017107399732954958358844458627322707053848574576429795575699969790296738891075940462082896661143485529485415033595448875850161447964868636154810933790095219258829643976065260273762055759282169362896994919363579018462096698267777677170386489406207841770460140247657032666158282780168109601507914319792044181900492603352626685868485759507597136600944640886807501032763592277408195798468438168056535755439245858959165950975701059608755111456562095860494002595491298737683740921551695862581311729368405644936421373192803165365415388448459639673970653395749439638946658020377963943044686911279337970380783614738769967272229807241914889598992257768243433714507278077092823602409272983994664009111863660282961035595276427158252954568655706932083828816497656151550840868876864974431911687490476170153956691998540964187316337563983995999062252906590744673560001912914137264251694239963470471455363554113047844363914453466510733380399020758311125379523702848553975510157647878003677904605270555449643537955904196355863484787575907095150863373379578584439450268913642733230970727059604578927050338934584248625356868414427307075859792785293457510977982875376909090023118963442357849036904149248474239819983593170855199707273918209819644218502289387248772977746046720369937926613268857995655971371262135517386637631451932642358054941307379203132642211428813569541981693812742502488947450542804971874501992733354069706421325210046183504279372491221803097545111464218427703189722474354300024482381576896289477161635047653501734022317107914837226984016251528058466526101987284695400128350940589120995520331696179524680164269916966912624080105245012629579915775611246182997789240206084699445733508461423050778118290751087937886301125230952140522402455321149393797098412964448466340655812325935012953928862521361603432613798533535043801797704583139330118530650178579735555675565992679401424709540947343179532244408223962769085602799923893206160395984786737577269061356641361926304803058340594671100998616244959674810568208558394348040635890397453016821104289111361849534687981569749485875769483817230946490190794682143438075752217180791279468849066420662337551826686354377105926782615321883024394757897090529378260935325193359301317411935379305302639672840169861027704354442759972098919580005054583563727004124470257596258220975505697135683111508400224578847171417986510914885495740845914104048524843105261453113387744670238877588728679291192190839361658783899170466230234488662177394682471470107713128139638457541731448832032288145721220329342951077853735561514100371057796371434063633120561159636315910767976317130646065233850700161840666238562071912071445193417851517094929480831052893079216503790381240056182148003941989273985568908392922315861461515061392370322935836838919012604017581419670587862180850582756797273824896609096069456041887691626599191397476211526449678593780989350798976854159322416521338021076630902270994752283914853254852069747198969521649908543928155095620265329804190127364272433391789044627658670239063575647184591740569065794072078684372274803880557206872352744693220612024601921533135762350752059117460690583434465740958163920220033045328980544626740653123793665260157736305786500395186360413848969979325303193529606552972679407876689191118751619326497435466327706157420193063107750681581192498199285346438285896089254392322266964857021076896773606708757155721130297488611053939474902595727306521078364140343100511295305066514169183454060898330348415491317197053648445659343456237441445298806168375789883103936437687296829038616124346067752333427064347289733796317414039381285337985318128310224468926934239149237563455259258034495543263911352019422959271478690989462236146653456716259045050791203362015397028199220252085937673050753764998024473892417158044739738762271011589022894174104453474751338110211473928311588247763424765848185980586441486358049566703619232991888151757362460435220075159761738483561948776853859817136652098060723182513490982818557904778763465124933345055904739245689835800780260479321016389385395833681032684789293595037612268540479886144898251483065771994077912855928301420958089719356055321617742830295743853348419334228038250918381976369539473151233513196453547683858759740205712731665454658656750336511762969568847691372011444901515437214247378102227910768077966217601639611475388565552721338172638920949107618850573245449669150430164227344162479323330380741554532930246585043089004761745863438886012696024930117432886901077240217107350772491676611837499209895606477211261897397880153823619792549644899994977288576856655757517874563915091623276607120508372258293034966577609141930120922819760400888393181099991077447175457076360413723640701896347946081685778553910735884429919995118156845649167403059458202139109058192598745932088493061339535273371575451865976732970619204373681394573495719365264188710828691385745858671561750837868870940896539532032303010923933180067371577302207561331625964271505409394529400741872546535072871844791320932847431966124041899614036495891895804582703080818389259536906960922343857861311377674963940366682780187159514989930475483512471306721598094040104220376218348539931968380715527737536584358799240264076463965326590506231695923949374645733720066943963628198168735985611698848803057026190780288439153099575110298198619555387201690723830426220946567503711330243083429339344761079959781962224062677556839324145865357576383110589688648107348929544655490165327721793656140760268992145435880187251883340686995233663127194808826804699409898046039866155195834026437025728626213817306105822495492739185873039642124726747385418784664627679041433332204996519777066371031766083454032570919869636698939760520299797253414302310558655194564117095984402007633091805446837405363383778226365987489925877579973162673958624825180983577654932806347643974891287369861572867487986159458964187751643497659198532287219918538056410299703991659055126716063221463725847955589486179204143214098174619023321350689203445031840213234281094341769763128740125859692786167217509579029641852795319103393642193626222386376821449588570288926146936225455573187304749891188641431632863653904316163694153068805220309144216173445943457788938251402773571014781085542015575747437439649133535037339483579819118137401872118548568417367330750277144806245818139938411522749768568903571249829280547977204711404847998404816600764751053991000763124315000445397408066718783265220331101897442250354953523003705594171993794144630130770685528381423634334805358678849855148839725000950049349811550450884257273089730714472264661604739873245911910989800060974197446565637425326054859220382848923890265301006112834749915640325406316582527560373127888982542750984856867717360395623148610680068082732071805041486999425378408898509592308048055451733433578919250477847410339878215524245822363416998803303825639004842859104010795094486964142062664364396638029559274077571686117854173761048508508422004671677055773616260342885628710693228615661653507977043534858370891020176703072786929219631641387910961499208466239303311132898266673382830366204873252106366194122282065895051452086680750573076836977835137955915792285963251332040048402126824767273866549801602704318059195190813723075922853776498320601141338095373981748879815803821513708633449598708138170613945287119861612906015964373369743628941141148198311816943794018505812522670987099051872429691999188327933257122436278450296196689663398425343502383205927048617624166570348292694426835618940851304426773960220822945923756366739816117107373192469830462427801431658251256976663539453075874872272200546220829028064237731336021006422998297070138884752353644084202229751290627522382352138579894753538518146126625067533613884966515689615586129516503086817059144638414359480584211272680699156136043882726270043632178462407431980836103304387213139606726069296528761526883083890001978547643189719514866213436879150968752901000948338421231425562208738595915818350394565422976102602794939593269858315622869280335129973630331379718131161180321995273393417964226381536852768919184465753432754063456378610679153021918694772910098929537450888562021652210613330106324265999464073381667267131850334318590453864479711706791277527257399335468329896521772584398634762269604718283769655575412279442699083233365853493152413473479888327702246489875006667702541426366123402985469416418317663678187303631383721835934523056957831107913178515736071677937687282337482715019103769982512066171626289962970091758883567701000965801583618979421181170439411450458426288072525730835890032190759477082681809215425469738243654228340979054888797659780677115356215685571132410582156396385351365226538984804764631835714849310248731747154712452578156684989394360661434925225094513692375978953825361142193578302948963730390787906910741098107043165402528575030562655564877319867471946274706262974057080654060241271145723489290171311058299867899693593561624949676729090631848099995521799875862839154874152074093527560140477524649378400458007024814533604495334836520252990568414311776668685281759045044005825651947824902282044702014892397032139614575401554082292985266187708520534156331120157110890390296913069940638503161083196512641078172844209168162122789881857937481820751183263160847477354705682501888349635256997601652213982717351837344282034441303131244070079377494660108052040119573983919044415442763390660697519050227677030795020772387016518833674079430722004851779115826930470136191217499072805060821984074265187018957183700794765207909338386874088642173550198904664036622361903481302074164890426845509847715439253606130944352701253865172973686655476999839382270942788483633966282344290579056188309553276146058857270295844670039091338690822945812330587801679703608656157753344352263223894284143085279063236161960631499078428122416572938629951858795762791709747755536623327209031021712867724509938838655141084163542923091345894178796782542672066927313872583155779187657260198345267228501388864195337277222058076587296423507169370658339290467261412988099704021117921507412729821260087941188603561115658256941612639429366337278105121694589116592010186388644243245431418285017724965911935771812202768281957137487781610615879793424904410338361338980011745299536156024647539879277445947720933052323704691174151583317218470177874113917114367014850449695728532046656989544734484865874610569516412679062416050452126704281365994980751884454952438007959405711094872563276949074792129125709912592210413756052525322548289062819166124702175377018852554103477651769240024025957769654373877787839533573595123092908458856949723807258177322483376056620954219169863239647892192994687534988831002183414262872513659627660998831249587230052397040737641290593258168753413231244683127623751758629838178842314658305877660929369660216399794037428045645683145840842573466302858516145309370471949888579854625231579605970346682600317562697523809714488098409327983174380238058783995511033422491500939520017367719963614005158172992359289277744259198889781893215870385617001487521554296099010513006222572570814981240592260642703241465537469110059505306756671284599207303192440100029068015414895997725254455695785479847848812771743284769130989040461481988954544956477055518070152677864694148374651404522774333449511145663639149512884146891526555177045689880477117061396954810476021008389840596373007559522540294571602483638589673645918540174513494820424918571334326205192345194386069893241712886901604444306288080334053802733728590571249478252975785535138481072643466186786503518634324254863104075688223729545800051450592148976144183827451732069751843938731687499599637774617388740179788837499022475481192323078099699135188083467523828753760815893019900620238474655061949924515205643328982467008490036819791121929760546342872050049497757783211371929596733344931953065478760093508779606041390594427624041168920883881287346671289869402286023694079593867521281739330251166405590236035711748484883509595247419660612489612340170746226187387850831346836590896143725614148161469298861640591826265827861805569704622476290452847800187787161016160163884991840338848934797605409296266767783176935025813436847941374842771349641526963995065971425199879060165086844874078418224477639302761568395681601310823348450220285096368781523706758340496829925381949279906793272086271933170256149040029201824852285442327767479922232831242889384398572096471143925872744640972701183519940966211031603344485095543853138952718908391388877160073073708858496125186307414446517648965838284705840815764761709954004921450062176121271248951332435440072579564189894058670200642940519501349007060449050595686649642119912935240255380568533003011408972786190210530024464647691905536589504057750976457095597983895807849882174720057555912476520962846580273594493385256374375994951818558287315163099195726609424856923738439721490743353511817561693300394718900206491669870173202938086970870590419864247512541432290770658215471201859944425706852691124669755225079307407335614462807382164484077478558887997569738128096817212530678285950408647411407605255958564308527566463507081648509006941336468092803872341803430200025309116312244753888665092187650411030392936922606049659782545140916216878077520829483769948706042432270110996066723269780265441065765579943929139932922927395514882421976534443812582646244543826578921041793696648254289937226582515573374586780008896846577125352095888992754946566956432587352681015050022951888088426218755995436817757302167146636496105852596221157049776367414353418774163690720648770168829154180710997288967515422852350166617843171810850174027009060596690179653387833662719443439653325022876925576278668970763996096685419059555537927022509016399013509533529546706587588099851742628292669724709263322041039858480274559358847733751115093712283611666265552854917260618622328567274791981930052243774660166152249841711032220376878771347080086085295883036393026249184521123980386697657908680735635846234377802666727700895431558312106155688285580829180999210866686160985118584055795073018642960757837656129672029441654842590027008163358121008722299772265670599222984604810031921916004689394065266165457689173210111515837265986811649603059983812675533155205784309991414991362647607514330866693279183863234902075043437805154123017618451016397136587454465697095304335764950874562742733809501119694781263208912326939922425011671712649726462111866016932607779501287153520263717900238442858238131102386136009414773258814316712396512821463409535654707551032557794675297905869961064146362777840963920132833835849312817479763237284594343121953794004108030760775073993440955261194971338457305526077887119026532019232292720711452187904942034535697189935245691002934409328670147363463507868837582064255880538081729598655159176219774268156646207815969604535929997104318170346424615905605965027693548986865761471808778346820971305333429041948195235513767213752564773866138005368087677147538804136708844366763296610060629145089550049084218649189583652695244382203433951319607756975933695349439479797904746035910902975987624559059749956720323442825003194728463425707480589485880519666105373745746363345414077891980177902230639269352419900164998182440881614197277525968363720190832386875867222462459364999700226447842794756272736067956019789464825065597123623641824186643911687387098788042323205943472573628193610855982893972689120366166485099254493359603031486623403625037048787866391780437804807364414915567442850065751702965999467186810403739412431692532977226800051095028424512895476348427040398548694236668892596175950661805244889094905737638405893359192651694530798397154905848553350729800407247923543371154322933463141142514111287198704204993682555178282326334486319196357312440503461901491474007420931809966398514654000760657469306491735041980113643653994909306267486117833035032332156747564995929081043661905755167499379696669331371704974493156002536533803430225899108135198062459206894125419086445064338002374127412068407773300960970480847483489199292603432889102709711241103441433337178206463029241519684196636364607835072429953518623668998979879160049802164974742515034040985570087855098257933378422276559316622622551297183693501723891164165833998319078549854055255763159981808163581796340032833443938852049918120370458854070182216406298821672762681638368703382302802451252409152823007269400275817498684370536028616285470363207014036829695933519044869271024455261170153990846702434897942676849292442630144819749556063755784257977928647363392793108044824385302807956141922444948167680330706199033602883285355622995974147585176456998056156902225283620040878237040084386447245038855052835289031172040878642399535078494810534928713652873368245881943587052633591468442591778596347518100968299391000768355523191240895418523875168624987566247113727563865087145752028770301723483671891566159444779211890086057112729586776814384367325584283220971223274534398780624868953198759061725213180387400953407160197791991996074061194573322528337970093581195207767197073971223014318100852317334581865857661700882687311337523381710118985765631800257681543261639436444556421402164471211987520586840392497468213507928764321797813720559684328887482223730682552437871582298218383549929431539387704092060393622548744606463121779759879963482780890129420089371240389156666242978540684462623919236237803824251387665376004176048612692373276505621888556996879406695830271166970162258644763791090692651490074283239251986922832385881066238010700017123330521117198592445419464510199354323115382690050888156305020918336847318127034130305843058962923557510919213210510267175298108491907940987978095949307330327148309811439607037563830144001116199015023029733453267018259915341681677396026825841745616409785745706313950331334512954399263375997940401965177774714432041244917896808446242188590135887467860244397087270750150671077106283457983968971946279708844250330620852628969896053375823081842640513808792937279241430500049520727072123091576367481540079279027358688258146198523647749273357636986172269071708048775366308745446562135203088905855479684128113195277284355341639682110947330448035608975164852407076948995752426778742148124376876961008576589682114584379646605162565045157692303264486224765249989675389434902031786740342677535196994986399832127061687255938458601524846492204811857895296680270064351348910341726806018715244971522229604150677678551044471523486633545019759068961128712018937446106197239633201358837138933194352964244843326896881451637646551753560187136943748502322390314037061015691829783484291885847253676080048125660443923348027054528726212532715488793434869723595394182826028331835633588329382840196333019569700643870155061580734898857953153400274870123855402441243505758545791267851870334962654788517192195023103946603266717690541747114955639011888068154135404616271607519003583046312033372521074963622541131889193705858951437552145507572526586973614893118127637089790419106159336456858004514478282704888800835923086373520893857921579269110636819494128625127545854200233063124104184605611405368247746417357698045058784265207300174468019077989033028773196535367107939408431306890297065578378299872406212241588545339839174343756357257296317603700463547059228500058473501903012046695466226657230900821286042997922607446360284201624075196191454484103388600219971134661429056377077425816267482120357918803199878417461689201379405019596584316190753353921528524415249291255669630179171881211098099663088194473737549190957405997846238755326750383360753582570297336026511756973906166820302806718057865837791501048152552250861752420287109098690590931198849834419164939710595423938969421272899429732854423009767741289265690770642413891349174790810665654481880553242149008413990717232300891457665416281849094889032611104558126644323105055220848231019326260635962126426097190595760006272362675367379702587524632614905331932781137883622783030527960750837199809155967714050658248950247139328489427971485319262474245693502936591695507000180108113666144684345759306875566236093915337545279608304894603008648555444827661458431090402338419920903684572732170123685364407506004801560609407091894656403666908434555453946812346715611828507054746611533630780222620156631267186275377874293859584601951299706138840733258920596972042577278142927340898440241329096311627063865486800277099189881520661925799586605963234116639286429344648123752372748620391492071910419481777862850674658066593264144203912882127943594468863526069599977040302022118090893361717637655640422090899906678199772541641709871567775733709301737938619524315615782813423566439227840376858898359990904426615967189436141979846849251385677431829924919020654631654032102064907854656971573630543972191438913055791897370176393888097412180938382542249867592139311361294601322992141486551527087385123989666304244870935838647736085670473864854705438316556765059998428855785627472944343385076534790236073434122889963792866483532126426344403940771490828676565334389706770072749235039627580357410557773219614824212905219015845398389087992888131286204434605166279934611416298585755033332968603572130225143302333539982989953532782132689197995339233712502612291615597598088149280709411999657893513784395917620223714716726923543552062378229982184167571667959768900942424332255782513430269124718726155840833195408991586105068802557552117323103751399783331730789510355178450750899071430357567682680505452162650592676426614204534484117658238782137185756820558654668505964545897603118750586688109402382126167585066758062218286649534579128050413033868768732638311171947100129190449622897642115646346429137681065975075160428006220811631177158719995472986745221035833031586140985991888472158916386602135271839964264798940281223938431076869310502263798664441061653595694734818762076887551274748044870672986926166844152366523600619046894529403912969955896457461298536905780783024702930682860648052490376312847074547917217422679537261310605203918113628229614222024860544608869658374925009554940059587280928649275402214796337062040518988218610707275476143160806670124036456964583342831535428889143003564500475712033738644143712765302726157173243286395234893043958890550608053553020548127419711761434205827353931723587567703262768417392782331544740965380818771115722059413274685070037832014395154187362994589719983570744694535358300447906942066067866768277508440556853522984617727809129417296076740428545286309733101636216910613973979664897848357031407910537247035310388046317965713412109201756179650509228569016390736310911893842641984537985918540521738609157674669721002370046281443224837642974101023354970819798397025880689766147468033211319470339855899184506742203985890917880658763938486574835998826965976341340810364598683106195955600946785754831704370565262875147856397828303537418427695653583854290669183100995110605700719717883782004602283813175620749542068268810054562614158660145759807356285990137279270315338356596699132724345283070723260189665281968585803208459179597152674144366177130587416759368522470549029642627773583556349375730269209939755517049867164884923254303898633162116877917678757397878541008538755276734458064830778544230031400323459878052259500608658851590781176613201969899961464332231780869894143683926029690387333079733346187060851618321946012923462108725321551622834674879354527444708012785695340534769105195289198675024765958130480121954185373729115629507359905665467994598391020541790543255910623713375012805113502466363543513721508029615425955356932751695671579793634440956734721532962009966487618112140126098920839057793399310312091471488976282786736913533908641323608156581872512821940111821354991297790486303881808749037920561165983216702719624872144275768957528469032427980056495847326240850319900013094348684899561262307307458711188941027134891578285270444020874147766297805561185726225884592175688943517671386008371535363447525971337936327041042193856824240871166679132557396829252728473274415926531074890128854287500372814220807662438090411730501135160247863061150695405360761135540828760382148826485291231090798384960493368626357334458951494128180545026697925315189788691147937741114705703553735833852393511298670414523813284979582401505518716993443943949163096360926170644536770870268472649655178371828894537122667104600175842589095602679774532676095284067920063456683489497118081907502952664051402222746411299653721612378830402166560154942323398600125808710960872749202336284065931311158013883846891526236398434694955058037963742246259103420558305073038420380348144849889549427669832283526388091956596881587381706866125978626473147203978798614789874893448099009619926410900500091910493934845592381808377340789753984888671211840269441067528368423651473044350247268209290375440329993989856217916703672930829623936700720592915229280444025795375850198889670758788795567241655453402371132633592161468501749267573412362754297478886182335816547425005230898412746907331933730395354976698972334793148366025614035513396151351390298697484868635233788522971984842649373972799958393518224639011054438812027005914171091330703894412205812628387582006334266333420887620132808042461851859593338709128322571829626560206791234516228034360033592988836270631128279804750620196430115970822804622687851122755391302293621219995393545586126752391403947248926176694749276890532945479803835078318319156078571832877386199944023924273661663185972664125951719043458371848363919420899394782654883763390932440388574207807652968613511874426071596020860465017693412801040402416546446353490801405430638707494952862540863193864798096134942756493298925171119234677589151131712294849925479164613280879721813511150170802915744774615789585633228118649108437067646481632185808777428623315862503847578005085942568215666733312696785633535381926526473121115718216140343539850934312742227084778124551004352258678348209463508075611649677168873649515078636729772182768090473711591728838895936621907170884689431031240171002392496858290544017643097215449510156347501562742750820461354944235614908766361614065996782813892193750754413577176086545596364355797177039775781310355996978923844266793359020668308993751489458777175710065494914635403750421120799822569803745935551670925080818728378843535506800991789853219113080756889264606188356844884362790507561850283699591020451654874970991578605546641981932576126137080652504725501755235560945053732139851828179354193070632179583292585570827873147908448645546297928010700961395511490814867908273628975442770703148672105707962984917069961887354168173823922448439344672831382399046802841858062630759814022540866611962953970447276205364538272290270755777933715800257068758588856084646685150835967777427668572720796681879841892763458133832801052134776660220967934508642040779396428472305386176447495919805635419256430164613848397150015301262687170033539074193616022707291022242852654725699144838480862936702289100001865017546815649524623644480607889745680624672140896869609642387719651597950913540473083371545034636015737019310424326711075165146682751157861669784096268638214857438912289863303143190950191595229107518657077869741225582696761720081494585809493649732619515142315752948440748716917010037669979185781379203930903145818547953771860602223569549030485778828470012643703176857486830069328838132270037943838533918607094814926599744733221322660381874914575824824704432647221810387577078145256080621022030851975730480913621620760345897436889394067199596249722506315533115242118582439428307387223648358995292359517588152095069614416536341459398278394996328627534974035420797590362167706518499007404916737647459692524794344548201115521239227445638350191884760708970810735482873231511423874786805208935356283596371463669595947409949931460424382146079703053989758318972952353600615976657001426623773413288040465568726233402924119013599162676307696667470911539436937522255129854852095582694610051313764419359950625984946439299730740530567258703077954423307079697362791928462538590838949351419281983398173147448779767534616098408149214242082083670781332050139846711928853175654559566212184290663973561304348686793807614017608523645822626968848581454759770572449919225504577854192252554349408141846134242930320229888840433596683861523885734721753124905524888349472155081930576063564541225170739876283128059511542564246668854372865703891653911039588136147578888937203412298849130970544920568165029752737349844394181198766146334662306736329630284362612304675897670200946243026223216801731379259992128960757440916520561063571187041775310066391291255285406337702589711732382052478853188816558295241360199235921684405572253268601405515017571723196816500011147787578679123309872306203771388637190139663586719097651467798273429865037218769044870125629291001055922191849876385793322336307142332518404595297153473085502651614322853338449048153308608460771412896297923384461825855189474144697513084327641558246226649023706775532350208149287006773791279516449140765316835663922414451102948497585399984631740888213759760873975088582834936053404327530783560763558953440301196751164249014070195436623300206161751299425787385415196044578753920936752004230141499568207833461719838811755120030768303206855113819826307170128150921143239328929110497376465255359091190952066482117159935627572653995995788867225171447126075886504346900789548271237271440518724867116069239790208319046284451766228341712516531431295288840514440633364270859029871761558546673878173366855713364643622378138907995583106211112857403942638971066900095972491491691632656190136382346170428200621545658769006656952686140289461681723265828517949749944997244185126348656924672420753984409463963461465438768449330626080254554424360792166048866367899204971223362636542301948110309887541869567701219321253165506094035595568137084870992079718829742241207527600360346996299621806708277500119473134984220586100153076011227637301365142495175417664374889578341173290498130042833778838074708842207669224638039994683847350616670598427668724416792358304733761456262153514228920096486429117506661486189375234795843862917540152953181483898004596608137511572647256050087703948817883343399289591483178847000122850853669090120097720082618066562529180071278486118174110789402296081438995489446102947058123650684334029007636847587855597863575136618063117151626492899196493802620722451006872122342852269884879213815862991688639888444370981083158479465287687158040500996486461135706466320396775681378323762751980450590264510840115867705322860230482049300723264235337853923771817683108061908907582425916180133975371926226812376972925512325055778194464583281435719037124730652333930296690034615631234033984249474133670241442357821984609014901483513752944347301039396763044723792771044573010237971118383101344618014725612793724713205924062156838494144305215378681780698555742309324852696696006876059403557113216421534407500526404512431737559983711753014857945377210910831987338312357051047442673475278853299229120693868926607096826136758652869171714619986643047209393647486439616175583150607075622889201500672114987231285517068413085659203794602931576769895674364855098921922095284743297305721179306651147809445909732432758631679967128649191707435925616160184603902241473534071920966884659080472424815937998611936663376507453314429107367248188373524940276285540888581985607768972431752268959553130943099208019875953296876453540582988960418557117381192349906527001271273562793793403473429411846454282182538858182954125264509374690417533370353540107129902674599432747088889967808184795018233088662132711803679596144818394953801597803975422394489580112011265394816447681993581245644899661952777011689924383362723325342485046783084105166334705944258297370132111592032799065592175906766405924062766353743412963451915912220160882956562440190593515127994698923328374497346279596568446886901107329514726556544426753137288719298676852128442735115555826537023721682281748499784959998517750183872528251085623510075690128134501593460782962359764741051069573445435161908490137994143488167054371336916888025348862082975975396797613717076135759056672170283471170427622427722378718474120188339559609628313096522648183208700072853210673607165409545915012673208451435112495252511550003287383175812121746007712490721146489680432813058683571558648040373155793080299625117232104277349675696245685471267357719180716166873567883345226836184244254984254224491415751816607305761347999459873309586593351725934750400192395624582021633507573676698217832505564871847241648438525335101680002431930114264890562244161312281491901112926646854953105555611241041939421660737360173377090680723943389079787844900217057887393117177923062123183549869313475418328141292460927104413912090780953985274818118367676544884737761365323734924092351663792671744399490336605406312681057980590730554303008622865502657265382334154680469865116557712641053129968544626720662735985592172745328077367707878991800081241716457534453240360738646342615000292263676557563480906546223765631857154892228734732505776862792327575079291183851933489343810157372914417436107438181296945572035150389679053637609461053271278947121000564045748114114744411076937133811386531076308978916303525278612840380172642081638387815541454955282000540860295978728029487870158028815432208792301914570877969295634734982963763271059865110308726778769202333950873679673823197606878720069895244863325498758044729889707561964886816738701228938425165254833175593058715236848106792987953735653545741046556154323758979628553554276725656254501370212597878902065525675406260479306797646815382461784764916738288281201074751493979517195299488982390198672635687773476878408182851197617549011329431977258427146586690480190113978199471246769042594366611405644819733396210631263829961372545366886633506644397702730456838709141510919303378839196796509505464517873934775016759358613917185643999159389994141230657299065186003368704621640933941592789226805999401070559385496123503512785132422598781425627037994726723531766727637116772965397273209419944196031663864248180631567128649003822141295078294965999360915897197963441330327809068374421327283191898467763210101708816608145940697725100863135224267788777478074752957332251513099851025076889336210193213299548226877263586816876489201673291633073870329513564449707116088411885058509192793112837214137852340472211946650108011111860795592269950385747437812626402458133317987930202759744831712418339242730908945724645639625623803705776887259407470762016219647853253220529188336868822623304262968431275242711448631085520308176325315870447220794620643482374211389710878996687015068684279091057187198473973936881445812179701070669277469332238146728157762749201457020463237541775364648738638238035663332343846281865312178863276555168205608011543088692065309144127866960276274295592470065752417914501400446768443963952314190995863460214899353029212507683596145138907272575973730376194342708539702125736453911787890844260627150570628471830324690926203327368000896159701907169331544521868900599914079311702262332698530873009607503098628873568430498115542791630878126115041967447064844154438184052786649889880184426742235681437915405371846834563053491814486889019183075970065636937868801655126875675109412057857870264224093171611295189128322736896147525150575370460604753253336230432608318014981853959185076361543905166770649696842592351119539531509460427667547925715860652683179442895437249473310129443002381418125943611504904979283737853913916777962787590844470114693997190885171970148826172544789730909202261755651102822785532371771301339460487962000261288094608311788221386312381316039246873680056775797579994125979695073458651680733692941927514728720823286013718346871357292150113800350402933582098139227592756906979453535087974691496910785925160117449906375025246548767283770811341220392451827027639220064912927468746264036553423033969930063158762206954598506415498287781656581469133049561339155470229040722992989682245312633505878379406715499273039432240859453038192690696514235562110367413811368597528537787400208897259674303058070007460742027004323070755214264685081411201221366558458219954511174999502773545153426974883315437968484096757277910946667545248749427218389369712131592204229661138632256928840880208562840325893350617111186648585854297248690702067271553665356383948617338077728584763288120969443359735557385229083578185593664828871875144021738044694073154282219200378061198627959604408771128371578468410598076977500309299574776362643902648438233698226594990377335115338837221869659941973034809161693494408035013529699632645004080130710486340091017370954612469042484749274661941192411782119365340468596462257443341604015846018255156004740586831823017707124238530352800447257894540813459132227816592867440947273280340608206026081427205185982698807602659051490068304994640288857916567557442834022367809456834645929433619305290122221941869398560987921890591543869103146194798627095516789009405516941885083519775624650274930908247629305983691026131680387726913476146434981579432664182463124375637747500062168400900221677122939847522375682311457754451012102777392283758061205675197854018294389425747327371618448626216227441986389473234631733472754654266972220392205894652423456483943914987302033838085733932549628056475771161137622652180367820385641062393935953412820153950525920219906322903686060615790015037831345626812609451695142440129734869107671777081949218145479265948627435167910059394580406207045268834433600229786540270310131328932734514689228285948828686954306104220638924120145962001610996092036573367505253446134137989864460495827181160638338860033797168412497806682460774948290917945191508558962602559704709131135270828043451723265271240122109293466550804172347804611362696394769550950373571121484792025683265462899231136363454834399084957346313527085122225271957742436835246124191994534631642254407378103027988416742342109352984890825961071863334194959038793385663417056614346656235959582868090451863568960230616331799053752287432905708506087116971911584396579342161714711979679557518920868873836927704739554823339506587857669253265569794706154938626834353980692570669904136409707812503309324771436469067843721183333828623736067403062582223535160137455123400785739386443894032636160957170298390047778279251962747521836441199906662603097226351136298827646803047540112429970611555795658155959119350364205825944274040780143466786215264618392798016375674385361185557520355786409349412143208519799755065313328621578052261550303752390428187669686015579930377621059204425930365097143172694470175399717184699872216679626466039538487682150489171932712612940815020345649944373908755901495905375956549162432974857060161302827346454273907590421031291905567814084612475267206590160377801228595617564837693272025079038909968454697731037240194896860995853615771177164529442695510297229748173222258348753002768073604765182023763537383832888580662678842896843901970993245590496048016845535135056678071397807712494730259506342660029684369557482639739677469567868178119486198565386053060389024158259415892912987540254215385348670700565137649349433633350999352379747089881382888445344079104418562033283669725452620386061714712168208943256747402531298671403798972793330360083643243375640246050194694158313285081735377782848046882572868808313298010223268501137779571147962202187696791167519263928758957706103602394003429112285022564612169857666352520136206133018100723801012105887287952123781972920697941646183578061597443962865601852546735503732570887925397267980862583572465500299985555971509140758940233962130013108640901903891547051379749046433401949674373082721896404380929457959009491935352147212525737104702722797077488690037014236754439512199268701139409427247307844812381403694524286950782393555611595428202077763169455071502712862732112645122652560607882288684027563429168266514776749244390135577778525599462968567458707599797337589889590171785850510308006713592185853499371351925434727270714605985730493177301054512590874294511752360937403456192048834771807181430922591945941013919407403343278367284866801968435192686381425877029686520122422398509799618203494850281122368210404089163473427327223375250000777282382192565805286042384529442907065016090023451079428658319136732755936535426105161786610566469959830128689680976769519223924030864655895238124642066483106638669534291885863034835154223791856939826206977597516580339834407489464422051015980873565604995064552059353982216418233085557761087264648708348952506746614752920451575370880074273958255908114930397871170976098068217879519019575054176673209210871417955846669484588792479762363171980747790384217928124403342780267459517431958539134332123413704981830835917201688919202288605428209542029796016343659874763693092294931997963743428485835420705412903972178209145870989923185615291989108583732574290884869781549386429862274296593695314910862562513126319509881343681276292718759863857900001262484795260828023107231338357178871931188039715157843174783185263948421330311307415296067564959897086487436955629061171632872162631146600644125729978478159886778460349906037616951276294189313102975643526989821327323168227608151272392929854624117907391372861765878979209584513935253074100555344407941939057374269856940099695351844163452196670483814511554182357541112509002469448161677681518181441742590949078309751335532812056977875550741581341555472720024704178278507027729971737806139931441763960652093856520177524306365540308773078367583258347276231634409168275766104126949337819839689476773447105956811672522565935978575757615721915373786833276010045131739429498803683380572006080043726822378249339655827946208136702029766266096079787435150012632171663293960093941859232132514164745213808527371994347585469280147060545893269780451402948891260781658126932066049164453331860533276545187463914901322350232945009622853134681892197425477176554977532577348587479440975951719122409053071380279263871776652345943538393227275692009121294607128859654826640208429103692678803173435985564772139370265698285615947111488291271215450487845942096526338164330214295853158884710357080822726430693911107876382747466181441927754805440134078864912249365695157322935714639875828302997124649418395616969666239235046996168432708582105945624342459263730645981671255255311020829098816869037441622281785941497160422441030690319320285903528515163928699252298382671669490887984298621473801339394048688789832889239744181656246307135503309561630052218056313497250261182314262059222278140242774392956530300139077731748149259230455678678906296792992501967766677114566536969349707084042026707352119447582878742333226274075677496326773867089733901918751379530990004303655870496074971094998598954342595815157202081682490025357621857285396946371540359650185518301230831481916824800681324841913180728486351980340421915495288645185322710655357870534288420770087551436265882064846751496102404530493095155125122396490961651331639510813052895158744125049167870470928373469917975625667321282513422730202425401643899020226338068399165793701571657058931133194625717384592345186150266157820974041684705628053133739727127218646798732047960209008338467797494609081476088853933665146021218398213742767291538819000085987274184523924384994729318322220446146489208430220787384698591626483506375844229554148942957335906402445413962348392568358268469239334998123871936146906115600739052711849161945921877612047541059917224191555410336066952571093076863264067967904338931895985252661154810962088418078830693303646895950359058511196288961057615928433241632577989768825918433295042543615428081959183044523015113277481139256146436189041321026985667113987566312233564821504212393006898897862100509949557704811992214143132822904909629655854201163668753136900814436606600639252618165696735498535127668930595449134084526946084467530706661741029618208997540666706282342792204973190402563941912212222661808548665343048834815400009949406204054629739495052051081736398339845884862512733528591745815556878176072614327861088001027142681310133856373234061322584892831690857581167499194907485416852954965832385289923741518281989306626017687406508707109971192362817556436841388671538497328901114937399545097061117980013788274171586701365800548180791021216895442687031595647821311284278762961967411403246267021451192960873586957473213124402841606487535840056516080678507923886078690137763148894973997808244878689548961034060341422068948929000502356814276687838298929064342643140472671930617349623023350675290493910240551075141271040807764772260196360282842837303521833054312149280910284525410822339948728827510220257415695911604686508625684703008459205443540291532332865006745827246265173418257195150045051216647290717050032668353084391722403485757114229994825732228691451418090129155912113099030100268663383555819553145266987563363538888235546064057954638074263099447926115649211236484613346399703716847850785711386494306275180811722719670309889515843977411447913918571577454084777517746280336928670287218194139383859220516342227933501983919061098433455037245137607799734543253239777009528381044316500666085018564735036171578177569142748794169846589252201495642599656117443192571469221556461000936716132186665612297936089984994675373106167008599095051005386364116165323792487510092191531338794341039571999083824503160339683238138645184958136255247635508784107829962652845785794770809039729978776790380189049707812031573477797818721674826590652617438692635453902866788676398963313308492930540994580847137944299949264606394337029003353202018397921746936657140109350826775132833165548434547496257321224836748147721541706228322238034837279146704095300055877809432548647963065820408166779236204549216020233716727665798487417773174242898051206469418198569169097356255178443475395231501130900268790590706964166161119620249749256649898367792609760488582416088030896496900497719205022777657238311598117682063691227847083471859101556024676370557243680235894369323563337853303862994843988855747009983288729776959466318049227982184952489198334422062669959745342268554185084397856576957088406284962386975249700956334983229315004250889151046206283263328578379530905305664257329995143194824730642835674104371946357579356651905314930750181152272974815162708738896410306914453220009454015409155676639517739117484018672257673102272351882955148858313388334205820943492671115788259796886526911852595875387313379055942195590459169979410087960337939108637566579618648387786212603723468195184735414035902237948009354612399016124369155217366400549700834387878574480725718676766498761707103233126766321441887344205146567370410070829975634071026022282877277040968258458065176698529679841236473904109894237703456511609935552583029685964585387075495660732697832147368390496967819881140589479488249741835006381943905458975774276568742550545132668966142296921030848680682958656873158373067006529063597007388774765844831307821841606209651257014596667761624009253378844129361967847559439417558088118164956268817219682954628191868194624146654163407543645432667653246696293259478087392942285399668868099871186936419590930916277306623365975840226844763470529583667989216998241063800583222394426372017432159676086698946115807728382330907537479242875597588131789845153799150930411392970058316563122704078124643085161105031479884843845668273744218291695646678146312024518205891606528405195785045490713924071504067030931456247924384464025973861172567096719082472175014667343317331449843279919223002775402247101837058244129268573276408139025663832588923148099441000745528031341230572841962144173242437132757364865946109126935467592879922429737580599224332950799797292013246869218138502821516884763053236694365854620639724478921005722661143443949765961652277483081196524762025735488465698969720363836926802685888663266073141167140114182027631465436974974899492273588280106699304709097439143570339451201012995036687235463928667173596097210254994457314409665332836175893588884109829695299654496602175789492606275169360029070737082233681640029102650036784092668907745205565943178243367422246482041023007199928848723559198991963322197434382145712923246746619153825418077383898916656541613463692712411047719344401844626982220133314320675000654670856464957416718964108888994402774838755367208703551601518598100654588448048178494737234863468322771005402273719589022034676262856232230923323512553063101773394143947942667978682425617553247685647109370714035895503332231636744328227006352867581735607733848011473929163298078324899067271833003645922103892339096901801752435537097915122411562997293556622190331829072264596940264830638240717981831642917432341764682414488919302198096164013439529344196754160975598249534757238363465963490166177820875316796312852980707965250153030608439358970541578514385577015604945040301260166067379821914326058098177257344494363144567828103551492830154852666261503662150931390396878821293174764431292131724054465822890373056043891138913279111659272037058865476939613493676113307747380651418275608967063078622126958120568775386821004080454240805893847505373757201747483403988743634195060760558156255351362964834709863169452880096719280733521105549587076405191083193540883543480823407786109359136580879587591187963992496693129888772505085407763956195841219151258351503990191557741585219807524961456666623105888400266656745858909226483091611804761288143689356353402551522980511439621518158575458595879395208406951904815724694287385262981869905822692098578271094403177900257589596069121517313439922155727963392142353148133296031492550044233603127738169227091336389354134120810034605216922037615008405447805973040708925425182610017173076517518504704285129363645072506876134966224881687452574346907724700431409827330132096443315597506313283875340350255750649345105314024797075722248697577913826413541563502219886548692617832728408923327551687751489772030291734981357447615705808625521279803660603920273407815278781100121113757102429096253703888918428760200452416894473305427206898917050306871584897123545525971966759676922821840465932549068023912291790068601299808200516638254275930154049560652690150334115791396291018391267666316146090724747343262654516522413107993667291534809214281470280751682934762351849223507891404176459322908537639624980523384520635580867904491241757013520818238462466801330452446844024855783039568732352154950639961162442353442628261427624717652903934145076210097591993400797518284895430434254428191806400525097515511268474575895639111072042634804268127321067874424307868471769501511104316849346128042594154685625067232190025505072478141559761869584982954733799524618282853859096272324411188869431164351758814533694374353191230689772095249708657845691282055058447278833287414728918397545700798587975465097356955270312060979884994820162962866300076181021540616844964016939694963263575006857927139379759638657799953524443930758674708444593359956235965270654465752453150546050511215684659305226740886472867626330937835692829996077200659824445898306960930846853698191810906203741428475162560603749715611953835204555365566498741868290168245086840584839593230951144302831475272869453988953337378460947131811744153501594939519456396417252339797109705287909962679284644175894309484388667108737467416009482496217279962812895105426421841613787376971075400422409010435011902254993981144219146628924856284542880034989681359729842958433521851525640001149393586205049113011923887691571940361167254330427114942705644666433705872250705565058960019177864536416915216951907163638156982307434469753697758822254215850939569509002460751629021412142490804139513557591922126065743482839816711722716371572497676294609378618150897808850668654539258341545682878375449233328911120594934329321377749892929615962176868053889122141246798822661591049340591844340255121598876893708631257887254165027417461760668273146694686846145907520845135575657932615577195001182654737293796182948001785855182031327526683843643791078647589098878657980084365297462501595117174877793758186886264300480335332737803743413654511227960176394373279475583553026846804615937245688923259584226883869480451526236593000503754812247584385893465800850809515406202978759782520015740606018111476390318848924903343770219933516123239942657942953791353892427124291519114877828760756220889277019528446468003586964815162431733214865879186280191208908744845923662148175476040369383356598038276688694580026875222825333256803806053920546530785226607250671234813242245784365811685742912301982010893191221345141981676702776027579261846094302564681696103200350012003308684014771273830645148612618862012632562364306906610959293009065926007008583145035712758627580792616123068993032299190784918240586720186666143463106744164931269308538390695822337843236685101101622843091661129262465786538636918342465162856641650121266986737594427707197520523153940325153485691382743758401554502198174316297281265321142120446608395849213551115662583597561218813633124046494415185029039050380048156438293234648026621872400191291163501158833267786168098832218972123644629894915136391312273665095838561490719664173226675618329096431542240639757324266477500962676195204813486961200772093362234366026868179752626487478290252203492594850770438073435551442854092378337127932554793688727004740259441828354067465351893337121948358463852200386634658322881947957860602478709221092402175308164216395899807399234116052390558256697655318332530291656006399965741633708147082205786878416731907198473847266616434652828819766516345032234396418060185246285219259387178060950042651702426027596396197300071430836203023528313916236145440154294415799818309294619194530967767684672608594934540347749586522142371958824619737649619730367597101616255820142113497914269974061071368475778075120383767291002271607678705954628054704696158284949849195554897124726401304235469180233715992338339995240298278409246092705612716783264555320386063722821499971450633055226250383748672180911793895208676037945359864786967841233450518369947323003299947894241215655815412630443727340795414133492896735955620075015617444083964810853183802731431368833095792954552525648529271979007578725997487160563623207483647820215807285890821241955555502459298677568601745500462637566871535073989959911069461376965007329244539653140761556660687940118132046467572232832563603707442038983635097263454169103018738733686528069154949664252418995214512245791331704641300538337476134974230735366379088984079101415951119926385621850148059181574886632681335031706866793275340163300015710441845331583815345827042192924320777032429720103802879913478308535655415368198700676252485871170207791562162635046481662720134025051423371956822476574342107094910502051224947857527957227715334640901718985820737013375057396662267770672803219229262860486944247667959484134207150823228517144654632659511032885129239337750317695139298505164012954606212311009745628925458125428110217271646155708962788517731389705602503749194086353013861821293711699196878922519560644928392346621300261355898925478197679077398864925645892178287489311369917006675234212518325079395206656235189161653972566587545770526602281892677363467303117839648042999390966287616946882049418457531947914250292235732649706761000761579314424042644083028660780279905283733894068956119074293601010236189907481928140532807662968943645684412595599192860781332402796229898961886111858242862172609855127158063823898255726720860893501729995064694399208605987959767864205122816754099922403257146598410922564847317999954983907778267404640367029535679529028053050243735721782655725391062310791105310841312933493898264689541051650946252621924990883291732179672367415608587290939270196969929174059285971524679024529530870693653717214634771513911623217951799003177587764400366185863551055929896330110687228506066981311715423638227280441329779272730463764914187612855878518106516762467737636328224941531641953754677140496967791837666434773420937846788720093611291542852430996946853413989518317157799945191077703233083328535225208408884301179672487776888685434735509010701116296300726028143824867055903928144609259379642862769571519036783128847762866523001797947037711889668294888256108459162980545112995560928796406102437077495048522678746934431644686722957029283239425186328103390647229877500204401181900463015818744357778369341108523425664833285395699995048430018776821342485376983869899044777664365436570257558757711676278413794685616283931251406553215484435249061740633356390192890570890451360302930565175943615408946203347360592893863168672304654511930317921394667213064756016933077981903108606484860515869836349788849333783837703610144487568692589034918247146561590497673175269248388077296408356747256521696454247286530338734768321960477227293455579284968324294203654816776328142255685335350046106323734791778471338897786009256087787356580600627498883464645270979970912126827444299807864596165843731226247515120625732666578352208151374051595529891583852397889293000278782889679675415369983577230602707557206301493904252085792882501397194126468098466174405329326423900096924178174870039881567228654101523579100937983330115523853670854662334203130690655469561955951830713098378519850322263601765830309419870971378341850704974756744486579828889407805809360106540626195809230876178532205171955473843083957977217166835194183863218330401447076109158353160374977285889338332293596491665988002204004448808425148440438474482182026079070412346008691662031441045255117743566054771187692305865039097060379107009905393081998883977717295949641310765356599910557709175190574336334030479281155270844577303186178365687248031251779021715755692732526418217174887669492614299085318817876020451442293594429969549308867029115448060305674092915453393532817062479797923363001189426655560312091122978446241251383152389146050798260761702302236193881922888689676954288860172692755411574907603990826025622342371829733582046605695295539087294115277211480257869565582179143566947934448127513075103766003272700907656111326248547593228781486139237531409691725564843102625044130828209723419123181796177971383786990536584164175549006337464835191052216355432722747552552448877940248944460707930607864686568079699869215955781549301098545822734834224822235798109030984497146461719894679242011556762126814805648636769653040379572641323208938221666769219445597636816547612379783312103242079885406114102589827293651347148255749281419617964478931815735592558696354504946816488371607260569183000606831923989685289010112136190003470749835553561318097066127668445977562730500973150499129663108404213121536481071487359963961780974702219298990153188026081188614219303505512811019581508584133687511684671427828638673368976641388673591725255415291136517436896376495589755438587797300214886687239688905682928849121041181534863077834932004983325437945652533981664696121272662567836977553866635715223271417595606445523441521961136439027695351692834268477993175015491359334319388487665211274967098251559423437981420797900062760565802968265132390779251004570798552861821058086005601334207630512457075940426648677105125987405906031150731677482341233019784707086836599733780661305430416924076528474710244669707262667076826537112848085810682788112663599111572921972595275402492697896220851821578695699187717745660839416404877422066626802188417884863119336673038001746468550045764389326092935758695441353854806064854433315144499417321509002747850205740869845604601788378409574692361821988863508721371808195713857473777905437471958677174382985480662519779235297888770238238225146881637341501602726566313398224220891260700620248029684579492765502971585048323124978251682236141867696717917926137491641582544604541868360472681377462837686424765095691169494192485536554114852738258825470692520858271169033258860385625473429477994573815199466419791504835825425031946719323762383891212888976288750144334513248523417476508713389588196872017825892258454246675818025388461778363896531646149078322120305901471563879519310970698161522875529065170180475238967931992579530217789248157876174630838176560559994162840733538274204894595904684849178477128960655774819535352822504212936298066233280213222520227162086976656641239040795084788246074951763202744268189272275129941609313810466876190234036523220290952526005897306225132582158448186475790885263428062915427163646051060983093762821818264646929807967757385752816327963607982828850418948352825118312652408184754057151132807884674081122920974324111555170724890620029417659072702350153350574999731941445650786480865525170775957037158116141906546907052940014954827061317816165083370046071389653923794835283204164085227565475937376528268072721409711083242161339909617895665113441273929039429740759899552636159607591270389746829560158054608295479069416242048230729907246071505227345618349785100493167180764410773208608221316163221307221397547151729031509382024335289258067027726921358943834252918554326038078243189298779158477513508041661729616938764034500266198129132640753610420644924732902661977892409351042876700410550963965146400588721070656512135913352151449851521918318394205008410520883805751756243990234588871580176313159602414825453532573675990067455163862034480639544854636759104334755870154073294902917895500694416621849849859689372161104402457957914268089196150444733972581063049657120845829334078618153562382163079656256867691748792167106898779194807097236486901653723979124453154371217282479243127537055737365532265661857333841861775536723935469872545061834069988784169629679092563398061719377503593110556720435520967528344975184954676566904118557234973939597744716858132792016897397434736722365794089371443601994084089722142834297972631738010224228219207878847212851589919528465746934106842038103223939219011783079693379011220142520468531569854775897754089614992771068821798466690403685577336614701291647797293961877190505442526918036899489891943140766208420301148659669844945619177788904283982067927496595218591895456119940692376747099012383010168861316577522467302474370016408516345509808892977229920391187070198361525028454423223467759887738094442345244849742282273735801095986111878969847574045626978458897905236670352130696333525421357074886163008521203460027313321733273385007689100153574348378488221408882479145893884406556981478017223530131246207626741904809880001433023588991674778189565299713781094480437789141085975432473103763875980480940391144293573597228304219201983589931870508226415248640056920516607558355719528325315054681012861993464784324091635698662933701610691013546007629937745352387725813199094485468111953566653695473677939051932534694847778937203832242690351840208808352469044892773949299151793512938366379053378254893638614390704129144276534077330363131098102046991047204430695789602691024942538517317319460942718351693247052172119100989313860719621913161347371852041704401442497752012669969564900245871669606959230388267620611010776216577782858335839046872014471004876349783932361067724549305936417097461555591218121972159742721486981149007496950210359043674887858036135042710095149074658487880677876539727665868717643280640956186977894607020141429432344909547894182818546791181392368265641995660464636526351779568659604607947651104121682756540594699125514860121561516444044071666018851810218794723135609495042159014895028243220983546721663434855166831081342834348899199227350187235232503596477287453075785225650925957319236042836421360638256495252728795935270685489706348696069803923747974790415894751272430547779097892843357263058764642405410573078693997176998532810257991207611347713601986156468031678589744619501034857467140903186164300431087191283756931420478973294177976011237402329203629241922415388480023604197120345535164045207662365050243619660090010393760793159551041374044136035496817972961457124774377828768110157121795641118520520127986887431470088090664463917756694083001839518655821773192326369240407496732729778005904856510493961789887362897619170596539773509324958613652720329233758163670535504559890475722708599559306507160513858475737567824771354721894312952902182859879638930838124552588059735376448283231123833096083575773577206959178521071342071391508730907810544357139993004601763817943413447132345951578111391239434505803797723051741778867469947677275714756501499319656432601111462846760618514892424558504268761367498458520006937867950364325514745224354987093617117675801261121514177570771118487879105414487433790279976760868443457255685937143221667434895867477476484567142687545579969257493025291490510521105643457873739793322981229001550398156987596177172455542089196935450446529199432037288816429566094827135731196449770545088717477868803267807045049871918186776387047462276378326641252322537799686603995905614253177384391684162146703057782685116939321053638748847517568837071396180558819413184227150396758247310751535016878366518127521577644746377040057409816145975369609023446155299436967817754244198911690935779992196095234246061429146311143394997409498893875413587372106614544087600394756354337971885053240669939143554823838700415828307768528699576122768846801486578574281961533017414476490826393878957659465865692050821241956129237071287449387283908365095912021009214363767567436525706666599986663079210827088274391355510500019816633855711746683912956063068213091268779780975291957579805243325931087080027878903511620283771870319140558432872106143587883362921099206615236940481872749603228163920385482306892047901126559783190052573320812197894151748546378975661255964746333547185666460797915649807479675838882491116930960966305656759723199873894780602832224396103441512754170014696473905213244567000150668454240030111040868675258123121965893290797584418900756850672486576200351861224282664302437088803883028910868442310071132506695356101622502129035075415435066546688741672823867220581348591236908875010017632967983285949003210133462455956213982619211307325719460100897309524359883855810676215734334385720926065800562872571622527556660148429590654565137579358078314842636925347462273387108175384652971347777415493439337061727883667327312334874237998149688812417958523413640528818100800092555263370504697156334484939741369441344175557592835466621724402636514444661881984466740020643197222063772275992308946799196399424108170060310153238806178487855475939551773459814181718429573276498416614134566944483082529440972421930049028741112832427342570778592532236179420371134076218457758313938547599098634136203959949604270997960600169214339745149216963873421583508768825582918746093338181640512882066988905981530400994645416678193970480816401509921810552709814661138969154166536866641906184901022293195156346056818817887291192705450768231161825075675086717701116012301614847053009119676918588548209344945988501431166122091929080382475149000034178458675392071895000552193795722444359846871299729095237281752200734501528882211023626158821583456785962375827493804043182055395759575240452208404112025607521831642802946516516265741246725499567100653257504455908409530351349365102783716184590251627082206063084414908353413397132078700553432772831526573141898320302315295562504861528438036372841926441305633068091475203577259513748071287203990208854852323825838559593797452792396605565344163372514961859124052817423952866803508243141864486850777890177862020762190480702410444691505081983763783624948240595531883765543592227076945369183500304151811806648180159233865356788299627903401613760237266973218403472123296885255675892849437631666606287064401016805096692178095544222832065172830930535539462069891760113388726985124464611961204271374862381304673608012177940362852304212481976314423300454054307739351760073873035113906722764495735963753817597320874051769579058843153107765326383337060169009486194395778107104920665149386120960473307020394733780332876863708920010984271849414579006912845340125827554832901233296288400931747192406947559687733929215157489920956190363136818268358958751813640345374633342474425894601931286051817867735003147382548387477463400672581925156144965529403393462202149963418872852054125702212195898365543378402462889034979293368093881539266891772131254808422025749973460008054480148021088815617844130570083984494827140714733154216619966842052095003765029567464518830705505684744848099116536632953681580791155113816814765927445751741774229756048405771784207136085333116331617903236772279109380829262742465123997013551687613095676332675011525469477080017235922273795798468384507389706307011002618362212102936776246282457291032103075676739150301065273302616541771927878287351091292047098534152647139554412674609827126765628197587762777919347417068978439193077827715755471790478138173799897859348329075325897345836694415223057248820954430752333565551120663311433356910879868482505414949950328454353993993482829499610942929630231713233735455291408385062067051902547415770615171915396278596406583370326894919111683317257370523762515550574536568116802874792057795794641316174186619733810134406236682939551694353107595371733699159137865286245187155362109160821945860028859078372094216711945390877960871441155548438127620440733236926511030350334311130376751621914350357080231126332791905647165995928093532547015292136509280109561522279527703597278327548062700109444023428135799874091448180541545577640867629232024965683482958537926325407777983686990300993959617273826609106053028866982793270536663020263517702077102525420463494105125900337228360053065503263119091947590569892439026153036173296797911361350325800578426569064497231953523639262294802394599415882382571802458431827625139728864061583950770049485236664895004289083359562559739148664553783143480992935041236899203083837244997761536313487308918916212133368253635599014316531928574178571070883855957429363273386978091326108103469447817282617689062154984595491974702371803264106761751961365473756799278734039008666084959830361619576679179533427584033715088611999464657874838566208968776188279390712204681720613890177418622461769282497374787804885911104120574632641597173161162049809355871503029107557017101844405973453802805260155180176662655674696145737807261076382116532249620545704189589073216747716896459341314283193162910701044237037911662520883083373953155741789162908974317051904136312688563608308095000726127494377126387189208776100347335501385971735419782506016377187648125057926484462560731517217513223972255890368731938924552876486952288442395881443695343835768764520379620652541115201588534912662595017193575655951278544311069549932689509371765815023873968357757676690171481808021637652743462714271001364322158026518817283913115491861716028827004565858093908888004880881561416964657004326806966278347103704491561681202446149093740892771840824350808180719548615877936629142803757878376662654875093487022880740408775472967593563586234592004594501365611317351373382729660947230917894063405783949645772162218102340988284043319147172356173292786764400395232903290632708505254621701222065449676702913096659229573482167219617772117350892829325075054969011331107834284065310802569155235889230444048149264293462662045705309583777757827375762995608023596280779402637393017986256573508368049616262155023293964498829710371859730796244790500197207448638890508498421856618472975722509296987003693288684388306836854388327002795938816179642752407275114691607311434996077246726763705594631750587695615343655203193244504791042102437033761698198529251625918220682993177096748755772974960515713280968321524756301684562026011453107978180157549914505740680325429361094287674000354472376129107648825204688108552565289246397126454244661425635258675944139525051576973094626695401237962744193928564465682603549635895823377275480393460175790081550823153304563168377414699518294065628365575804351457466359406388766998382358929027771488598040334151099662487195649806316655597126293303529281882404594691656346786467284653833435385075979945972524566107664827520180407341019736337181974100209535106834988985613075240598528278309899019705177847793385538896212967564545087159351020416103305655465271247160437624160576378193987745650997295547110133503825377837094746985502795405648266091544304906466465198084665115395668433756630234343478763991940801097248049144823632706516269632309589084456772323587768024469284167335817192111228736707571393593297650996198107541047075894322269309002664994986437045494307939492981632880240056850894457788726082069298371319987934236024215018421708633378279752271087996474783025370801009020603075824449571302015609579136973600416664470091473924524076059590042053927611046289434862224004091599237004227946592592888243340466269352948994154353262177622241516577162219621558315599092576528885961678742330656181441428661213891710233230992573057976760060910011362667045550464096405007576196537066736586388160294062579282860769592234812427438776058992806073058266080350347237417628479415820057654974365159490723871668166398162148477165018216335552408529840901674395805994056225551950211449031274596996216422503167137045301174996693122651464923273231368076889522823618463288487604210654825532065042918675100029203045811837659607206732304183144847856434049910639274884054687437596403356832691142752595652102968382085699043489166767657992319926332038386432596963499297826391022805417614170856985475808054349263421514950035585571177419935512424799389311451411992963070381431406333068027209346318800495317181009659599009850250279638406786242020788118335986084998642816852273370701370256952470353422407675050506025346593942277976136626966474366748756596690673534353408490973877543830062503461831425873843150220403731798706119681456325095439743658700527079446957083508380242652565200924803391105438048640079466933540972780978414233617510130797923456172246447803285137759976769117818115171484366885077166544253907084652784954361326244265887925277337928153396655872976270711942691723103251524883772883184294962350603428878415872802067726541921049453505384855664285925130060825017697067624798866048775338781895188610061827616232632114036253424504289645749855263861726517372429313584993107722577644034232343442801681618221191315364103061834738768868516910673424962127039627451352305597042130780355710630756255846164414019552112699419251344330882190472081271292787626945837445472692456645589464711523023210552253200529217792527658467843576504215147078854275925536299383377136552309262317671569032439133630880499079568519911086285232994914632799448014743967221455561013389955536641771000470698313822865418208888138593467984870308672232216159735003603563901263028652938742835100179304378372116949861383712845125046995923983236250276479866435431998005020486716208224648508143638031628773623309741298532879981730377547426792383092081788230225099346923338087747286037195989346753104225339021909072332265481007786661692986018239661206178261315019221746926854993497253698690960831086083253796104108741620956229308130955619431567238797667988383849100845744780562653791454141816875351158822279190218214028972859173041738335483044620104876434753324312220000279938998805533868754998072601005859468225634889536386745130137405396164765850618608989465909422472521152479128581132656229673057394520400133635490107489709434903420860568790211753150893058928998911277826246158076841709728408402533026568773769434997778471240596331804040673217707574916281515881472310519759141369553378672021844506628964273911749305668779793963720334302365460551926301051038495399149868430580720233014260919493054519222826574907331591649731375662744163173132555669451467153028534894266657871012556003102326514235002809628863401163177232298461052605737470348233509352385351674143819456018722902555748554173555757854805106466549007886803269592079040933007591913576327417637771276590407311480976987304744311151808655328877932452917713138788432523287404879755686607907761687630226793588649876484002395667072214913827684119134750556409964774570861021868033021536367219895716117277605857666978618967845634931565421094146495833363248770168275840198628815199324440572829778385025181928679188534125524809910096613093278191497143073091628260622720879193575561213092202596489933581135661421885953683777561243317881297977523014221288894857555718906821871090477156051789776315712350489763417162311770405497421682816059877034575586659296297462944856292769291302362486547056682074866569077714716603312754722582729704781493675449527162842672303828760682450119390627020091170357879561697276462500493091142249955191595289719266045760774571045295506904711290956189874221916572257288677457196796067326313355599797158532766912437377713454482997693337067421689848516667476128253119958933398420955155158089737071171504198371634843803356562012578208754318343802956318139215895217249329403870187974222370052627080281059822912685051787111966816522288578476906809519022015212470437170695198374562967239620854848761910981387575280079210538881584333132124957640370440127396347677090277080237030722606129722521324243205442004682744013303663071924193909721575713158003048605634610741881938009887457222514416521560182108154642788705083531814617203402378899240761062533839413411274159712244306190389342915890182585048231388409908789271871097761738908088547624596179685286232970646978162785583416098203685772261532628881589348698812509411786566994808668005035067483943047687309343334355675328940545867798096282616541352259997797291250843264542160692444658443470642444209899137995392495250687797585620281522242632103026854644449843994981973685929377916979031059743914431284227480484719000209593215468267833049952340456651366231047339535971719218721672949829556730852807295230460078014572933707789962275082453849201697891748553372614106404168900208151728598536639270624085728480598644386252740975326161543247665350990406181774148729304601564050303528299056312635286394350930256597337375096490887566238821851575475591985821915580623781635823261558141856005799793443427591004652596162293265301125847218077675628069766397613974877147472687001978939555958779572810129850991219610589599248562469243998820915919020337891707595640288546803165332791441030266820076325988269318254977779642241964403032632675427597409223313355857652659321440386957475868085424224870636656493529093614834244248850101683355608272535472447873398312066487076695559447904777935577499499192799348572500917059359154529780387568740448599013366162268028125554098077444366334030542070461654609383828398201637216226505875810211054098631744486694367941424777175413163096340247666380240398794238282243547458409083701478976277845481517634606903378192957193731998934778549899990193573055435104758687041091069611521769051592492035953423294380016195620688116642096663093757091002840228784356791754660206158210992676463458346062688309514780032369092265371520252132786672864103967321291578174884331675009939178639284051271428233321518077779164440756306570899680776166319523592735553322393301361396526106872105527685065352560072594296759588245234745163092416135292013817578993157052572050720909047004933263914862978364075849666042217199461101628479393587190821678879678386435261112799814628452875930586499863212529475936884008623572393499385358563602763620051411941010365546251489032453634006950073337332188087388755948602169520888011728262167677334512715568443815934263612113245438905244961587162358696018744537714143576204689195194110084751229155892023480063859114184566060854459350184899675933113481847949272411715925424451227166898074346367126472366968648827936365395250796971086331183397383204195250957400759375199686215501016939903563519037834469281930228735485743784888565632685066500665689788491476332355367203593317477241394537865718115804994635903172074378583698060929851648811052855151247722344701553279886264389031706533917636974879669254857373737096165114744566969946811541814087342982957755678149557215432129030346008557435647576306850525006037419177948372108404126858221908681254293208829911285988295755422314440616381739900415539902096666990985097396630268093417569172430906031243303432327925993678238658861378705481240613241453120859813823843852042152941062599261020043376229262943545636039150141990636587881744367110779763561632201744655793979894241790508036873837151676025037141894051661270699007863829895098921750889345173026902280178336349326467050337287984301422202720723926876182537055540710889371144411596506360490769170469809224672090351176443781044672306325480451142581093619662270654221894454176290280224552333357053108287820422547317434182211101653473125708488134358895460847709266449468623598954345141628940043901751526777209735594136473109456555712701210962838053319777657707204533613535474713523163338249706597704234077507656644728611837864863329119084148214341789787350782140508409416731861163273253905489334318807676762278982290466525746660044149959120977632390484093540915504012702506687713587765197624202794412545131323112428125505196784563198921796758421482553556897434536417502137714265195982346852244839681282863459228577192853668547777699013636031743288977046440882465768224743712811702209785079361400714009778205109591460117814843751430045098257627844493087626694674330273020277407767809099393467525857978030419546018489126592294518500901083860968372051431296297092284022358627806751072662971322842846922829721057887747546190611756621371225478236320887480281963472640463325104338696572514206579188771035809582105023360013390394502460990456373446340441411917457168928292083081855146782021541074921447074627299393503167534379460254156827309621184395800379938322993096590584443944202974460903208003691446531082390188705517528618965061727364821677561580123291029342178224896472497563717552328671402101008705541373588479235783023514884278314031582445781734524165285059215105784403849877539803171167818103242966254952384737570545747798717623562348653191548742044443369194209646067338102338179933026115265763839244538154359578859493673404300911095062659365615480144104978967601771816663269979435142973549671966404249565286324936435453579786063946048607043038738257632261639972815730934533681458916288826169061556435783788768729165742911758482956948560144722905762997800825099443256142362359771352924642631945688331399970180016213144009895452583485190711820570385458430951185957360915705081812190968626057476970766022881028889373495150133313440200150601006787705219266536184532594879072946982878824849970692376935992504280279794909313355075936649429888339350990736097415855392559075654570096827643974178224267239881117659918569741068586184883839792571099574148590074352459161787840055139561186101651678044239144639406223504435234098412915700444593840695811580064000317969045031020339817708922490258496774545344954378909538607123370525329405610110974471345181851414066972878434401626333653566033833855831586239874696823234253383862661869357610757013056540504129028850264086545475971628990683600484230937093110287241554205987739538126504145837363056727637312792233413273176434100611672565902550825775349850935217365684590615666036898318028327411449642155378984743173114517645774770242785960613912515125748316659234516446558548284771238521048229948862624160506804325656386915693577487190836207687221432038148153364147310779185815495676549727669792919547327014863442455352236710474353588860360357096288719938292343384735440780608296939469138158858148691831846247658787822222218369903007938639153393915525675012017933437911678446022720329330125305354234790781113494775428638767501601203095168059751223915204667597969784564979975709284678809086196142968447475282514575829412808398045304841589659938417937757570554562651046893048968914153402464249817965405127539827315536317850265520872623722893996358879398118282300052526613428783601214631792309818278066762736628459891984651594773933065724280580903544248991122254948495920247501889414149873047496243845651409828368948837259022395278236477061796048634474033881571583654592072092831672196201811492816999530840092432009163899502824624567396018584350322894972989690130463850913276753469333825159121050359934425948495108527555562162768076048417763466636026363777493003059007957957546302992458027105917675430025176021205931222695709110509889045307942946283578034615543933046075364085190992635708728141358293498411989698994686378822995914072917449607176081355086733067619347483058431027345031088310146703401053172740073603711949720303210267682576380646013192572425299666083983661159360454535808520649513772665511485060419531606880818493325853512430527701584166859910808228748845425312844455161567853283357077922609201239103165552859198053367397594341156034894970897398179585182476540490742086797300105216536329306629379822592778721970744068614610624025216215826980240169818086299154449220596513928446955185926208003644100278868753007665525938033651092719044281124998010685559737675457011484250795517973680011845397089617303086728917552963022520869594786860110938440388561213176222714526391336296228057387869948836591700819702392817630421010473216323188562461982731788084661617911261883187554146120979475814199022397163080070801374277190450113040335449191956611987027276971764265013382087806401564623618108654135938034491616152253844745860816851639866107841139996908148365381622038811802044929797826064007924066521612805846921807052475053264200082045105305020152051134215177109294430214350904383067435968154817146007501547958424600707232847945301965198238461823438913834587110415054953032580778812167989134098134694483907984158141311633283954476853816611732296889114131870386306797475332030002695424885151298295099357982236368380856189792844885752340971356108684338184380673696262663405253929157632812800898195570736329862482387750126167423664410810154392792178808274034986202554563214820086975554455846294031462902534394870287748736914811357860076584425508977582033812930330192111436030213576432965117289458328532618827552785891759101016299615042728352337078655737928983892162597618752593395878114644041751263539156411057070430758130733398727779489400337422488947202860562750164759465775930947106538969499825788854153258082258503050208173289099041573346814760107451540766997471525486043707394790703479046531184748106079387982481091006666719397409111744637357618279287824236094007247714323536415724381604296253623208051459060412225316747989423013802028138050442581131053521711968479521474420698073716971780466695321887844750989936270992538634163325380506315632077446274013908282752272578912134140599162033014237031360450211993337354097736987027737379067148037242335664796925608963181704349697799869948843391942007220260473721521704832378441898806529435497087451967177134338079933520807283154852510977331397340735068434045785409848983401385994432317441806908702542541924511058676427385565819495023299378426276112756370234399756970840929503543604825161366051159760158620203077565717625989207381180014093402289709867880260993334821014298857427378164115318261399880111976975179160022093091976853831820075643063044897224650344121416763938093234251713449274132213848321114827238374014263719854835169497897336711537454860618580660207029886640314477361961340679525464650103290870744580527223947018760814867958501250459263755759371901832342074299064784591321564942274148979592496059556336727874690705594333126417144972586612172749397208261598250695618810847787702432158324959541693709134527586679703720246576295611519226501420716098491385737736918154551346731634806054444476881210244033991693245089642643568136246329035395181431036361231851972336233604080120904629242863071312678325108809881734604761568008550019012089001873092615900739043168243544951311731520971356143091776304657310761431815149591344462760459099241738503588357854487821636791948867459211001918881182254252965194771634808518599570478638818821914495824305877513641433865251028075260053417300982815990623059884678312890225456154864103417832923368509811234325427464821698091359785017140292058311063441475250071555128044187537600028169325979373737345649518578014900007592642436534701608612693092646299677414758868276511126950005154318882893672897025726962093446058012633217760967322213579615301822012628137899418841933700959829161838065162010363890319153249194972809376235782613690304323892347492285246275213117399532972008715101381890642314392631006613634601993071403930533110971512087121320517453454163982781530824169764865220948069476783737642655298223099777057645991566966272671666483158361008021429819721574967507686789076685771778143985148278013908071393956649021825920599386072353760580988123925730023682372255315508135433369079651709419895734790921952852481521809487601257445041698646386162292477461154002498877756340010851758115963538486643152415995968405600943496741995193071882788152507595035554850760739539890865648854644635900965372837268146347930874285867191481122666569851743212465577232929068472394834276656905698937459198876202959983593556971083996133012171076091123679490907764714200018390368729523332547194074540432460788037402830363827473188387086193057496191528803864428251036306639404306355415217658125868670060705004658576436966086148748838038975080467800526948170872333605684945471105533135388910792976285878546567861134626566477087806836078742743949433164271370559800480341614277406580386087004759822911626251542948029770368693026090568047817540688583886126640623403511554430778063394187356669612017330757190643675403966935061878665070434663989133030990931702304707039291383088116485405840539050503325757701711676967210399706593149141047281233785196477874359336867216973313438648031973363565545913410274776786036473939466703368850017738295087383786137622981064127119688593200288237861740995150948673324496861405732194568499735844027743744813857138001002453268416281003399284488885105842426917171607932739708200740874052832788110188554269064667312607713453284637563337910499660266365837687565648266881861062420319015742624150684338083488187364346080749894308957982877289648626317116104636845618637846375305828587418519195945079678227959450260314591400348887075357821661628518526121668631362861546526138695909069051798604973130811627144049251737153185163202736072567698224278985156018123262607714755775934463053658830762796933830087464617413234001986739787491467353252547545942964308372937906438942587550781874698603275202023739005993302433791828443066685109763320713541748184281196245129501635011903008713610574065881798975344328948203881964324549489815267233293180811102603654776073621205120985404827489393259517095436087262382185711564177439688412192374390970008918422264664848460559197701329474302534180022821502265470616195188665144490857833092341516016426914789713595506874193246065695515236109713476056160282697070716574706215801947338460743536810375277790472103176140473729967611449554835542009808468041381643622822366749869563685921377595244146096072853421902862530935274508394719464809635615116903417510268149074763053246101689104089054167113042814666739017165781004285687895347912709754579809403967518261156827567172327059270441504706964416154846716498378160071988895975466250904542386512203629617471570159484481503980190167438465742100373877612881103087761474503908176035694152674686961230521919458528974633495350056734962895927179418508957685994592803419378707195485420518606195670440376825369911794139976000226387619690762650410984505560055915563754702594075784327519690490027117321216640224918650488645030012957985730380294470004170129311672986013626864658489226888351916712494909517495363680404589774490834137090613736925826517459216187066129584086415152713343967326750162482484411610875733408771319126738233775398547184517862011203145686195141053373289771825840644741574539838322411826130724334606499836258668171698311619665457811583868696590978544153747118484868244171031871794609678714617455560301065320481372213750174169043790286959935039384703510709576211634309195616316550904955373922721976472483747512151048122929264612154380617627402973074897398092473680711040494139535360652228666142863942688507081093961069820539832368831324807111959099995980805542272264828719340504701073483427288691847673481206714296658432124561980251314085361105221878144338051397775708871136589537614761212444210539127646193140855677989283248693387033786772945095456986718922002416649413158287987593235567218666099677972075629044748117287658776919966510755921780617194106807614677175560838346168182630678413790441842173347531786195493034921638645770586376036041773550795126548772108545519404375713271064613208836403800384157582854334182610991462762484537612883792146547529146617649720869076365150403921065702755812684333267279809656452897693900966491930585834616914059329964762228686822766450074740631731200371568468408822170762843389459925710147812822871724137059148381359632868618625540283724494771538581392343196667348609067246451996739677726662166216961748781226371456874073316980171046894287096059295742978861904994773246695740028018427622605292720636779463711083205811528284211325849827602587313176314341978127080865717047184407164835620111692049636784744537853230002628955037605107212949660221625366235424052202200463432393394182949463344805383626619447175382717631837715818731489848734975780062053761582396896289926818940659041354457768025271267844054394756141248214971323178851726164100716822472645997122680486379078975233603156209389187277061635431157891870027253579047635935130988956787410517130364798603646964699372207983068281712383207770889348600831554456142111283894132564157251936137666199625755302774494058290682847220876192783956751424753508714529307411206198349717020681770653406587910998704324681640053795028641869855491985138066623283971421891643041531579315813590274488201752690663935028624617988773758104352212967822278319642905774131972533578120801321607470591203668973864750274860823541199489157313811618801066860309365353949497326094674309716263706020184681128909287013015890008216849789522068778962976023341630357868721035478654424067853116027699859952128767990641691979731548255033598468396143967050221918037882102753237305828093894737007056106656967401505778345342965849215979741781327566822970360261929307444358961699826774468262997043174384000129140331710175119436051261891708100289884009746665324754779888808370590978583023932587082914886989885516752302760807888509556870100084859917332926915515931790725025328387004749941795808935382615648340928355946459419787741389611823064865914005900816977011582207701658958537535940709906275428164539424822822521479161747431271907915372133943321048296365710250766780764969599097062038999218341331170168290798318477658258958371799084468005254998979066925736582082180339145372065718845608079232592304142765462244562803176680994873107294467450388308917541770285143108577168382130001508783454146490402098694412736987007674316779612918703825372204423561634151137363375011451609057397231489926068779379209632720085129569550640367638271968842529200467964697321037606133352020027788178358833340068941018896797119190286477013969266972896299167813520867928104633475849184964341481900212826601701225289849917738558921203401966686559578740403004242303252145314186549116923618482841450759533982938574849732018187739659986919290408177578173639764700637782851646055673317881458175216778009380959987313264608230362659308861371751053621994637510462425646336104816930586205443394654124144019455255686021088105752665103954083981510286818842645960761162256961460989192910120940056840311655477948397204786151635394983439514214195241592205772245699354828785535112567605190682719453187825612052551918469618394178499744737080153201766464967243117227321730780853109284003383277405518355382232310163464941603165487697459666559837871966734799262746920742507150978612822359391069521121168865774957634257113900118415982944989767936308186467788447785771503521927513127828206364326380616771977605035061833037122187872813905442279940583560049704588544632071639918394939783909260778096692127327717571914046433886326854503648405855117046952576758391284490888848438315155893818452062675985738156501813216838595825832109628703415063608407217185145546291390144629078784171629450978662322487462971684738953496468277250392539139839772974790470104201273126254590146056593136514015424258459160040791851725193517722852705679872195419753004313254588638906403214973796165381610707244678290342400554652104478996975676502660974792156894133427389880960188034555034896333024172906169342422900123492113485551413763751052315785564988871621512013296111758871657862934038023037498403842508988202697731008292840694235132028568226022990360785616133765868131483474741719479175805002337811432651295360014290268006784154066307150332183516015965640520062198158541323052501301739490284064476878166923436106438447385902544435348148051391577517302986348897618091543647701687475250414280599460718689591762771771680118547494447267343337989045794524514944790859589208760447912940749828573684796216400053818434333807732067588330732438408329975380861191668540638248650826753919878957583030263629365035387095370244893998493555141255570458791213772553994088886006988574407338092261907758867845120585427614969840106613726767378434595930456898204582710669354074126084340551243354659339353227548161052351386623637096127766775956862317140956245242635668575806909051171962706097794450397250018744540576623410627794758837016259116085432891719694724258585097269004400093811392590511257522437316716278536657247968608389423209812509102113659353392795912168545960201212535411059552680935401157492792508149453719717493130147696276364647611337837070282755205923500038411883833399253271267003120981728254255699534562201468277252648900292653986980314702575983420526429753978271415865283622502677802727838411266810000723777490192617321001004655564680501549317558618847368482492022468817004052996454013594078988038614163555918708609370013579575430968747188615437586342852253782785042124697840032828077649490546040504442521146839002831901426730050236968872989148693835422152756763443510676999152394162092852069000201009778482642655544421598857154186144860701818408627644333289054801139557409936316047542092989326404302472687010320098175959923389069198589891436744503984125112730404830885083284413812506373100258372579230859474612345229332947570648080465945884986381203227049100346788437097527118101731879588586324781117545570721643286356604368033571864273865124926981162777328588253748968596376518340771994240624512685467982350568808355027710708304871074689255000935080214212474181865175382815699277394096959372143899390656450462593282333687138970628353983258282944627593965822128577744860262911937898828154231279082656498478738891439122602233579120063545128345599778673644130581337262119892945216620335712722079208980946485052388627949236238715735514639547042476718690354780055831176219002805238347924394094598536200198434381206300550504242803905729066876815424539903835058789538328155558000961881848882942010715523678325242001772297761782026280610062111351204961070011575364092914272159533565588309250022691250655148150010014733680952598670842277787510319826066372091296953331775577018552693734392214020407010424560948386181697624476854715571314724766447256194182296223886284475222498493320873403364955372069576195560874512495648040403318060971379389464155451829816827268926719936005524286395125219432932566296359953785632181505421421503822276912765512257586356441199083851912342702988379860539992839108671999548686501545809648158692784862319510242875149652876119362697563492838555709751530765536251940894318929631508188584480777240975056577150739057484075236000288245770031218015180722560899546852214489176985778182687556578557060698066791891401522354887988410224576520443694977295762180955058141602550318141874232420733070061498821600049845714945202127669073720958802150406062725167314741773370957450172825436079270730420278407213824046516264603404739395515657995043769627321944834595352710972732793156975654276050445057882115935042566040861243926503833170274275855695972014817471362680466603557936433105488683776828761851999593741886818014586737035769135196097885315175072043123661838392255048290604399819370296880171308056941204596888177239751229344215797497694956727520563851731681594061520718153917775772663041773189650197125733895191558929721333200842506757178674332891581121999662737290796575729786933301567705259437818606710996936992960678162203430392086729951241133452696302125158516935139534581298039163055134770121601695360602382827970436227606183356724511665657977425848024201472127351881772499089865563471372735086030769437327407949834701593301008102265989529939727559037159749780317532747398137357199132742608849584078731209438715214587738629609629508359280950454626682366627277342620210961961783921422219245350661240886924864969431706444457247484861784736058878571148253307039895766620375537300929747619773905537897345346297961359393057853664721046281464183532346008400912970769935217506689437404523116567260037898561299306060510930379392850574551531755646918637838373533973631291238353032841476320028773556140169934548136527366207825561896381148436155823750442314744852503348082190609393737778167168139797030202567484682925875955186346712565698554243783723105404145666006079683067696318694055642252662702114778295116606397294033550434862800757663967496915525408232661912205411710439831974666258343884683670076100074037304032721384567630254769783221828442238640871291428303099132124138874781091273512907229716533676160053732578118942515235464836343231666614650049945708676966582670982787698196441128276430945128871800992153753427305718795179733529824338198747250841372080423594860848669696257540284046527371737664092566278357995249344354933378515766204339146974426338960220884304463030963863926825588108713773346779971174133407411080269934341623794954984987581787874497691768253955973551144615243716782388790257194865128821516508247365156011116125408529398258320989172978009725876465256440735614633766699033852369201240725995961527329238862554486412505886159571067021698107475323238007817851927763675610705708775528133553353484932849208845246229323154287537708864303593110318746694150360051028190230946639259776084311167919496603545947720048689383480324811766177980593485514715935033289057897125564447937529280393670985254176560647094188435657612148436157507415811601908156560643955890682412528535846424623958157865765522316920000690999886287757054491999849638949124303402332453872295696112612250798602693055390060815355619427394648703097384937121343134446047814920415607441264923656689831515497025864344176279705935712652991982707489212804978223529585333242708948541677038526776418912817186509374558280485839145492406142223688037377773345242635603774087348641008116667195892158528224732119076833380364677709308251174955420188511075712401136554735556909310103378926777281682620202204043135055934420750488818373681399085772475467762958873447290627999551830240251073318039968311948880432456126564950866234188479589261054847369460867545239083466684717771979749129076881340212062240883220008851211275722623308325218734676532726661526218388394839342085985472895905512768749589302560081769636277577959127248679414966508913334095996142295308995110776097083448374052572817971904611901727181057875390295013218389954852095630335120835412111753742106175743063763620904857011284138911486501601870147185464315152674863925091113193135893425134310498764486176058370569541207864701082492033488813282397372096330000520547539797776585734130872139069845091969882241697702582137733267720162051021103999132644088359559167212519100528921128152281497974882111522127785392933933779351219345917145842411778486247891492721571002352073338062245932673553154542697782516063478481229312875622448257863683647385857690002472208702801993580459289111549749671209077921966613336237672612538552426951066829221249297279162329450720864037130770159684186692879401994943439472487586184227408852615766143094302680078628810171892431118761076355902556707751571658431218008781985487338853907151622793050176885299330282264079219854310933727904944777693705446271976267706864337367310496801963763807038592340039030547367339857479058940903124947848550734728438001357457073313645910620179084991906975023903413659550482533228815951373099749547807236776232299615554760508449203927943463485214955504368165196749588231724816623532709381818792461523653937230260062496938641084896343382958690659963037758344973554785886365831917990733539506281447878302157117473119056888535971186428070057457442742268903909168410326066392532420694220954426456001011909787801715156848756885349943801800623601850731241713845020539496878391108558444840750418971992787498341769811992887865658750617942705124355005595079644456762807727990820486541606848514509841287787756685629059912109616310348580724546050098055662442428424418222916475083089068395383576777451906915334481405546720093640227792251097879456518356787031066133814261059638058428158266492870106227729806696126618851800003930061423738108265853624556389092042877167347681306633427950298058825276965947493260558487382500470171211289635313449565166831870603208802150361161412148738799379827960731279037313307881184141021236180836668860047689540589597550386137915180250973525925049723916622480507590620629231427433571799230988374455301775965450061192772285685060834812058123085919714604424057402803758360964774369930955035897872463821280330878503756914769132181026134095383441608328850945023263500132086859945687981526374815788874356999740397951105834321507155203396262216596959665983164514157763772914711323810936525690358702058193572320473891974141474329712258902796425011781946250979375263895448351774540051320805144811772770734478029365449127916699956014442149726917507839704174554252716015878876576532649858053506854734220004180461840467006473177526998560913135470556634786486777905919909006077425800065091123968415365790141045872930910798111981261341259474581828938792058567385493805296017416510548935637156480625241239625354399834117908023617804775319102608376281064095713898201898867779214823774800581161761370753690858050568054659817557978934352148229639212201725592063891072722511042477428657454855635584210018998755269656907156940687103108931686416123511522086689734641655904315867640143231005053886307557067304729366189684191004430776914457430824063088160307384793494307928193684024127529352530319126590532958094697173693845458207712113596556989435427955530343066444744460349162786218810078220803038226315832812537864679635134053545505859535488367704149683463311114449062343823998633623898310744231507939216126104033691238395543716964613274812215601142835619909997536137783899273944061531795183883710397156141265502593833955899550979872955104357205316085143949193124243978864171182132241312257418515430002635160201923696819951931147300319692237076110875846485275799189374090944686306086834998155015749258812766399881695472775725346952265395312734782789176889839819716250940451683700581596039103175215606387250715875716130538754602599751638762179715140342092495674374718973125290748596069321320554623098403274368600151796626375122598810278351852833509069990855356112894209836641487660979314447229527504068557206108288573527045879904357103903355972813807321398372754507217834432790821654044450276121467610867306621657476676159497799949826669078063635874446323741601036025149245569889870639174279367031545550974042618904166362347124757737209343162958941385220766334621617776566820648031166776924647270140854459727381360421269672879148099835520032122635774106561952841533420468069995817647468341598711487796440982785273703131782469691416008752044048500123582915572878410939857213541475354424153217095995477210108445793956872592173903450995188166457940287280162513746499931961822307472948599902079405597343706344890652246927628150241141773392933822350895688391166061178627500977076671710909097448708663588903716248610443809461723576845689030790946812572541048772444901812999442549218971946511054317411917947755056692169498750287574782304937709649434764614674721954246381021594143495878484755804585454327498883512944995203468835680642381550105178588247298609888968087158214885987208277129538711255060458421952247854310477887326689095385903234592083748380112115643232825263213229714567838408663427203993976009054020940714716755581735666208041631356902738570011805344746472523725659021588541379550890245266144818901976098355174827180613906314007160829191775000664796240806885963216462051950418264697891421436469527689782476462812023991142135422415898274716670811011183609386447399218343684684151065124674767561387152820561798629516663079614693559898798106741894771691432689704052560520831781384306400288063385865053419191239680381826399416984157185005291289049700202362100128457176174753993033403378728124472398412631801094146200872198042475522646960251181422972124408616740115713381476693302796561306467222261256452911900920266420735072096243071912074237592715301858562979519658006149458385183257815782655617092776648637539406197226317124767494282888949437126926842491381088308225400568699802901768765351421716966386930439836186133223875580267639019927545074219358239712982856502859327253865475937783822431587909409612271922153441335569446791403798127191927369694002996819384468455955949996160718068139497400522873819163737848304175142998365926087394679562308838899752778586286673404681170208976594150069073842914869516236394434067662255676132878952346329969775157794528098652988177134555826171058028713775933068244911384850734867549025585031828270167080698454219644010738485150884694183642944243472616223210855794514030061702478933233859641454147009848661068332846460734395107150670690937870814940749938974704062960183065722474763706856497143661475597733491617621452928980128126168523078208004013671570079219807847126301934535399711008662511270935841244946212583369411674768405703542933212528262341761267840671811285707352717014178772216771408802616334073021240170815876781321431436248081336890742132785751178455822351859620392739667907286504893391491994571962026732290945832478621993525659330499559597279832518691886931251791100183533573833972186806799912898361279094661794876252742454428338946442784983324979506269863819938444938436952242341115349364374541828886069863084947500802921019033756269853751449340965403171433174502886608498289082604112040566721098563927968641982079874961510958064773036848913807776301638253515279117764156676610774710637812525685678414640712131430399646369375962670831317875765282699618965278564436910885192769996422744412363397107857508816208089817796303902389191886517224430968636479206131394883145980932859522574386795034155685951806352627767476846653940331161451621579060894207070423579751682362495796929785688194748581676314544545897501997857018504766007994755995650941591685386652187068625582426523437874381542500486546138237002444166167787945128474821496657825215668572187509580748482643484345922426767768157844446317957221077392971076920904315673949535447365346395832007372298937299147331338875064621292196103540119818374255597449806193864964400988754421121017526692273308857138254356490157352990419464889810223281915057953218631401088780433738607965874902076346320510491033701190439841778308914002075192218554066655636170611591743995798930824405722474919185211938622500741185073676465948777363953945338529931395672623330099540327812029400106127988308814003199377688554040960884268215712380787516915909332474268020724940827295225039205303421465831316905514321020124452804597105937532314046110775604775658527965289834417191459341334513424108923881467868737531441574364010326929526920699279266416542350787052541717110686846060520897682405521120690790684741890004903482823218986436639678271924347480756071011449073788565858332461584045334040410413606906225473059006517051210259076594128866103762497291036054948073234317777850832956789203873829372617097438299340516157212847928605442490080732211544558242642480889331183154888836969610311009629662801608334921179114070959429808291443099626983900943429641241045648765658280839957566872880006187921040609218467180531381145496357427779030449225724273580670323328984369912695041418172010499181018859324794353115051386512299929128773638071424841528825195418319733407977153771892261379574267699366853770967446147416625041796255674625288332346457172290020784297665466334758465875086350364952717560588641623304247263017935618943419319730110073757534106225949867434692178167091081696052961815482523225164814190105653618516738580602514868732370724085509435228326334480738298335050480850326890795491316818362447558826030673184461354788532680343661497765701328609203978251651725263448904976507187828266486831093723316312502132050288432095468135609533261617950018092233427961083746168108790534938786193931910093992539001176432665104887116963962987068372540111254959093211903556487973422587709285383513936709409066492580478182472461973575723676000895599866966082101132097017350849676280603772554583413044773413899473543997060100732096429473034411433864396065877618933761089597672176292959974306876169112807072037155149560267286557803704272617540600393283429495132945066770386088018780454519014121886845941505936416401588014354327987691426626795276850753067465848764514104405152430607064801003995170363011837935127783686460687764128771313651157195231253107753508454632649373407147629811291259016480350031165025380995006759588271424980320943650814382841483738947132119905409848534074274877302403601446960530174815588359338497709436660575143891336439849801521545388929627590799123480793207540132753753309342680139251023498401607118433726888135013332536425852392936372695362628392146902691659705835864488965309658669988070018860135701225837424090645700217913440504783048697807988788131317828718445469887995449244436346033623691940691314539796818370374275668056862993290086113887047145807102483985422059245120424759755139781594025188475671796809564599575654180678660521279066077995081804755199770809287174404794974666669419583425516209738287708219995695766279371563675661972164378934554333540166407248853918537360821688277361183565741914635973505955355914142379370732344845898494544854039580615422171503942869083648675610471250411991433725369840862776350138257125195497603907446186114387610667714182650771977506204808808646326283040103496194800452366469932719351352051512910388793667816898166914988195995192256660010598185739576792135814651277682766687281416383803260683099189527384861164267839265928738567350247019945998836360416676858006935838560678575763192138142827692459721946962231734969603260932263203288754799356360096702882388273820125934553275294989921563867477529979231240863758843927998625688886341966398755142625616475988399581120435798948678955570501816567050095930616452492138619994402314267218369428924100822318103397097821049808253491619114855492110770423607924061464982886401581272420593767902276895245800416063194305699423886167894221266052431793369245336632343014829228276083803759084381713130832164312925066697957050325062288285322821636786621242639434287118729787228531218221764061987839062945726939727908554408896879606737871994861892936922897001510468071487437905803054114588464841591681988327513641627525084655687078785083696281958621583179132616229475026634555288491249762527976780096028383363832188427170432035852742413362863060934431981622701809823523922760868918711780229846644571988868798634052445234551463948208064955482423872361505743834816475874645083909510074761845250342489304290621124426941612600289758730773860886116529546470551510746852045227635260099272905932452050786482012244926506306852233758943893001536031896696934721628939165233110441757224750846301291192575289391730902124896429156328754172063381348113817078341327886840299755866071923026630427591966301913769203500412811465353062324724542309834688567651439749820781708279250442234720519425747598582174420267548970376232415104794350609324288682742447581765497773569111528947070252923737510417920321895272007533334990539798397707804603552381670080473593282382604329389723316641064018515431859377112399616150034987969021864988071667821851956866967335129830349730292087205788201113700026515262082587843553385563848628843474081028876004196154341854273311903203013218544111761764454760258604735705488508145364480418874252030875773038167797529425015709525945302146056036880997512119925363400558255984943197582618899225755883140739278464029466869024804925895953796635046939028929917858137290650201632271710487757122789702924989599099004766934765480723265395715664257374921018368071039423241424880017285653670261608220133211946334881001979305259424357842076514780021023042888056341503417390719804772838008709204643861018188135597910441772881491274420458502245384124109908044093323140864422373931494814827876232034058172923711861175628086646827772092162226672959685160951900917164080167941731989384586333049864832385844874425070873448215386374480919943644139261441492116617602099462267354782375128269078823349552840247918454208929660681145110245112815915794502978550034385319600641933285095865736139983372697395495281704462136369175091325499315687990536943488891984666303859803796083249764187109023546729319000545680033858886072458581192906699524606904398823683670235303224720688380631538718719512413569186559756670255871062145032391341647647715627873982540466964127135761312852530778364767034896709190330340710947985676696940656422349443343304283829828663095449063064119749847374767916730215061547284301689661605229982457600263161010760019398235065438540387896229280976156236581480238920686878865377227683815151094084489845827712983072676227676221160286583076899417948310807133019570190086147327584374281459284519584789915615613650762601911330537863663470967405719165772289279553007991228631651973581342682419422659745449865067492745014328201231265632057089666945201332604059498720594077249009527714747220263812891636241847185099413457433241980879600243738677603517647834761963751839888215596319044424173977985411788167818721205117491110167675407667941716046715496165178208915459168382451537785567209835465424752380014608778726138194969212708432991963427354297854457927955393838162669138148156653171611646842830200475797628006791113265705728685732108585766988018050078065678606646032354540481688849264643449648341128414477703610652899208696510358584722189498734299656125469400294317628082581723430174805273553443106904475790135111400920857889812879787585886614136497675763860997082214021875111409539592666614341542681490465918666675394180333753293517786654369069297310007042153798432312244143440630015629414005901938170861877790760320021644784273450806426379710681912499984965249539434251019206731903418389743591961302040389897579202668644834491407232727258691556823231501976217382116685150590826953323920154073781813345878698754558348808726497764240695025362705384241323149266244343212151769583977836217757587927959172490757254120798552514842312321993415395356221015584054776227086179489458973319473792843119119804333196821872487292758239792336342109169395800404518405493989107916761155539436202279166558149812407277456142589674838955887130216685805817868135673603917197646516559150582453421852564216345546040837725648312112609000112686197317125743658863365284699675088738365416219741268737756911723364157406389181300027265025296053861779228954523585798004310164219637269856330584422085892830142230261972107036994598772463848117137829310750049525007935587767421181394010585234087673741903055176425753081198717325572267382921611651497118011229092261588471296468998961678521428508508836507081345397674967076843576126486375251353579797641086606132042120972640481412031600586528950453285563646185366873315158096086454525338994874038110703607713117571245255453254632554113013880977859723761111067564236224455424079715031759970639602830003761062704937564831970390890288335150532573126875532278772692132854326181085475218548370057683166897845899843300483968755260901455058342902560548097762968568443129115046950761349682447505873738156634344771011832680160103795360450865546477042635875861070158091092103165657201357143971479891666448295599795567987308791248134931201538299683577502300744143566570086073138966928333784912438609052474589223320177291950285628509996943670226499362485490383550057132195636782672662280695926398180042277735873059851750053720128796202428925839607548435740823520521464493257515556024435457368785354612349151109415607485008985452206461045603527852523260486667214019326665357299382804743395747194921479697867982740723403586873007388554547390302304921340548971945473930371755856855397700806620496575451512432008659315011194778845267817267716829166162758253157156459972972366160330239614337877086126780771840913089847163062071693573420004553971815060717913193250485364199340266222840836474044815859977202771689053582044158918603724825278717746065209937197588789474685078604947056063904179332456195326976575292843947394520616580195512379911145358879218625891286745386182427831093463657878297639651264449382060447546962017688169373124039667789056878922561922871806101740591470795837095887418416912512033946838743036388565405534863454713590228532984586380279382562809547641759160667844226890039494513719734720999120752299618436951917384182208269096544319397121934963130939883319975838020756418889679859396571899019340190836382842811618371632029069769676566446998559867948993391376488025546110447636823465700538427068761073000495081433383363746779297900880789065173274862509122953960865217309081681191481914397849141715644842090437892634744758790622428536206370896708754541693293095811040775670838466730397908857820163517153601118931142471053929820883535672757606369597651874371987946299023699989494544688908211136741896540664395252730894429863588261467299546106672348984623590058125586036284716502029819044422321324861273436129805337999889847872968895111153293530911479689010778809124652106094673009407065470738669493417650032819753772139071688767937136929982784608591754304328181356791584244607223432792854371552811929716709240516319732721605974564677728219126810522575716543499747960961267438603082330468379592416050351270432228548697195875921455547075596752451435596760050845164281963452954014940545136935079737163459973717732075856454247049876041319482255115205263556443320635618322665038542769590661365559846860622853992947151874111260397073623727285179769118332389731144771658998139877329566931649849063720533299269780673124336566776684986615980772468307909492728777268618092738513827035811432231916609624649254647790561505152253451916058644373905440696975164961751406083349661582770125967167195995931621009610366318100717402614341799553120893053129613866586158280130537365074698000601230104611046974255557815650651417632019744536483903589614507373825258764595401827760595180346910141728677398307222552467013351855778272895173496028702907636472176843542620796738241038187271854797849164428986001855285887666152805338947214235820167592025272017915732730047961254807160954367035963252718832408773142880820306979465513488012267462419081928385216888296409607982152757035409313127364277823910728281283709670171515569712058460156364345195189021906952296306526266425893019299336669780112076997577590563816908915236428736046097033152351704203552308250909840541263599352419339465954113685575768947943866303295207767411507465254697875220133259575299629848163847051399375258347892129471369620285542515790131096814976218206689289806941996392369356725213043556722857625453515791438425357215136242252587558628490576468395173424143325552474806678103282489014396722652824268488937642109320980026215248796185959439456126000285885284285429913736451337018206401939981385750791686386348397444984662485234021714208865251136144466472526076155433076226666348831153054102042271021247242113050583293847540759660561002420203681303340354607285307699260449697494285123121903498301359210426156667993992757218493511409122900512807074174885749762831702385256856503322611275649550755640183846257541899806424603269557482815722235129200044570929931018811383734382278532098040164450019434387429139150470506322144889985607460530996948862023281990566185534397381687617483772179860409132925220968676446772177683574165886512023060730144846169339442322199541618963985828225745939733142300087031109347750069450524507041273612439047213486626146311490097270593817921864428405517069116713845575457194959550484307663592243962047462865598255480605376470690423429641919371465516342665590278102936438271901844261720190400394604675362171429173388026614669622840962326530792001678517197284078393502188758482755562961171540526321787733678565189669547288298784431546224974766526572887213751979309988139366404389611392592286080510579727096100507600931526690327604804899443181156400371235803407856574770358697694467155431153546440678909772701552965886667589915544386364173406019719522622330925539476793413323008167869922377326438089353826449002448709235695298309659002415862285230471122710969271954126636856901411069320339053300867052857437956693801560076521267743045949330335255207839606663867137387068754346118492696523940185980744689145270611896874901178659010956448570566139620780198284074357988078428090217220639636440192343536768304045661603468588979009386315030320690952369113939021146305762345258664198062921321201880196936276161273519714827431649326607745821275646784348013131466133031705023484924311434750620239480798878111382405539689724353552429500464402593212251307201685869882006368593494469851565075405803907509645217257561610415483025175335782077304432392832513819918875924592129848580370123618763514344040652330952126080160327259967213666470198016077998715863147623935688445778166589290917312796652069494777566933079554490872750105311145014682953734815754079023315585286789053151690309290076616977808551151649523502526321717193291061502467110278922090820463794093978621771015968205992238494922173189290884465317375521832098877488044721735045493409588982308223250055259116413850237293028828290353282955337213804082113449253749965702829056995453270088036093052192035155502890806200649030353253453356650400090438826654641421095548952865959985277671564238053309863009162031386896432870239271394448501902510765308824195913142784522172108970399554291991557360374170256626991611612551210355813722770213447741329497936477743019759240152292585194286917431899888538023007496979228476257417483851847745752738759393869645286736859126306087363401340890794903762603685823114192407603619290269694101059418348680039472363547321148785656063096959334390100329281284853384437368128121724275334908725449307771258007593527861061894025355763589778678063115426832471104178296612546749270817180912885760775782127481170212009755356954782313065738028650851315878313358750279656474935781065972547300305542855689213533155066148774170253530312844334337409990507242573872681033993247166639309151391505466324770846328074087757215551237351199075505727733420305664204662037360998777028384565611461706168576876738009372645968529142341828166366733879709917679004085713708448619838721862048268108562605894017288072010968083090245314795858156982359118825325524470102599098454407650084181120657198114585887091420241202403136017643195890579830617909750240025649764228522013540940277449677288538596361620128258470999869176932653665284416937604921569928222101424839994055070150207670834818450825922912100382752042849701481800864958702453809056390211042722684003468146423058643105566267084898776675169715603542553908089045907984480060345676152164912810649694971690661495298763134182839145913105557756118898782511089220632446002998803816904051394775329337758952002374563168085290869002365059318591923013419062223213226121121497601833588284090574859345556581117791638571809740694576928693988778501266872593472071322164479499827029833174644091036079024187599380679491520790705434527934970037677314280116763098505126551600163354042380410088088543171511300414965728410486185163402256227265885361202477300080764207230882593257053762599889500163057240284095413238212319460727434217348242531190820766089939806362612940584288533332560509374982365047858158849992712097824317579760488847674289120224085259355464571204139156315245352355708688789419571334964457971778467201479251555367886526438320653940963761784664618060217099840375494451127517706567115693271068061808777264918629152905252929369543096509851053579360799960985336362995009716066474074106730578372743823734999921549529888479521301644869017749151246093178987259195527169715250762461163380667979657063715347025426012417069971943491662054062562640033480853121663857951127972513359287788928689456921106005017834212556300261329849253805816718987175218946280274034953211760684460477947849693728130342784938733056727487356221362563060257379527994684048323236289715997369237591759405056834103362557586347393943857275226857225867015831849959616423164727314227969532257313125727918610718372016972736912373929330943471736755279799174915113677165031591638838262907888327652072913344373944774181550600701554868825987012955172757718032698375485304397468581388236173990001302023534363069793696112168614301866219773243876465426748179104676233378618618426978687386341259508988967146278573765101439515990250574981836835150547630571295671151194213426997942043281796354761034176812621116369010061744545466048031622293264394195519918127348995878876636990860127345879127289766847614013798506263637626551341769606476976933840797267770125942350538588973675266309658112380284399515240137291951292815153858946568354975388061360199972670425536694588408973572783898562781935253149010145610814867810105919278528484690631258405300806224351904881367757970430899005504267415326633184470194907125451280761991351310355320784589754207309022129750574315381036682191598488185883824771568453228720350816813701074108884054384484075873642068815741787661198834493329959295238017140347429884561783233925722179466400786777159207745796684526719348321395226059095272139292236801423913683195721928002226818671786866864539061196696976889232998481996748270834697546767484689633747646481516405468836930949463776430143374261928574872061774590575814283467631303074611650405869861931753897764522805972476140514939798096665433943088683674265177209757144510095356826304486354348041319764674740984296894645324514136922398556410840664080008537073283405597257782296760893183177956297385296535122898502445920325850895892092798666515565566962753383514831119134348117797433844137290541055963096484824092637992887769054124539978127862954185970387058389268100687234069549631840080640995497209256646277339915525438079754260001597949756091719271215483417552477329658949669067301124524704477290953071718897853839022495823874570356540257528001897871456925245047640875577694880121588329800897304855686328017992865159235996810569496999434698604258691665077742578540650155247510227826855886434781519133692236427845364747897948030270477806913724822151558600083328944543434940774900013729862398245264408795902018854567938510642869457903945703876907487180601381520488019110082766590065383083800602792977817666991411496809750478253492313275489693220807906676458475671924258833647272698211416864356709679455141138450338984129962265652347809697450602004880485653855292526980144464550866081030474807105459610082769389529785032265999406926738112571219006588627663990387923403375628995169085807309059035139057914940883794746617176226662664514349487518319232423570347777711956223436770894753968383222408510542092627068711255640968740342550567494355537320286492950166587633851887120559009586423029217270090514672365966924197301889313884331682337692880630285561353139208130320531571868080968133096187401987687815107333776931021363423648330428342997995087822902585526047706429202537477975503187873507376605739231676877523369051944961531005081857291004089546990983653892410771390353320775662721823764163051528545686187059387209646498372895982291394190540476165749473698533306088635314073292526733555547360279069129181130632680885725783785013769850802307086225955729790913270055901332746520586068801856874639511322274107350224327816304301691699485493576488672828423881950051393409737587301954537392410897796583690213810135204964000735093425869094573368887578892030970681059219728863031132132584045961369528785604057987844052013355668832064187184996375042768034420025025621472836717496735338173179976431948795571288102400376049475629578578794161243027044219509117375118762569821143493652367261614626508745912683722362116347191779498372757873177115588369537321204864072223927730604780484464122376493720524838631171504849452758852329377309780161078020190463264645925738017485057140406389214443001398004473994182076299133493528143685807791241340292459635705610480916253538836034988669503679411281692759127714994772271859041435854621032026566503713076247664668675064353023170188817884567756701740378000247583370711164879241331374403233265483510461550432782670121617908709674659281476441297091982406374719344175169163492746441370390220113263010537150585179190066696036296050352504452845559821103722050949453403395868562718843697264433059923109270087231549976854907127580461355318103703074749451346473569791315923568375653841637391721778898239496125486382681792323369117724413702040890247027681066424874995526176815546416382383120773652667672680332833244149716329214457296374405013686711983029185057164747309739149089751188992804138559395502445832735915757312178678059858637339828669941911443389269394493492418400499783476207166795742288261841151773986514282470545107725927329115022749344092779207977303472001774216780032479446258279059918289100182091213377209495004439916558141137040532554775272251380693960813458848235557272797887900712940261808906298721749819760186431228270975326549839126581671192090841374069781516695094676352200574457478516441089948651761539578541476311334578369437403709861638378107216436897215349975063921068313698955451156579963254008549734321643684432673433609722652916524384866756659632250436034881846445324904526561585155122548973495189866447618631165030315448716999034471859970017464637918607575236766226420349347405179059967892379592828302077852805372535338466432141909681228810985239078616314004925363471980181814123861957844365766066541783738603156023037060696598373077147426393389065154413808898356982046125919400082838712581639968313964819216792656404390419856867664206125610769801142273760069946086010644393887878889418149501305562279463960527731943789466609889167057491877804769731245448961542049748638268249972064900755635541784417894449184216595102985405428089581512326344123510591009229427220260412400808302699348590771426094233811706235818835079031062217752155980249269187680206187432536135614195977803662728868571799932765846478560933330445717338282696505759364759137818079577761723917873282214842333871189699042228162426014684958338338029656270090125279280674966485920666651664710572661515048725141917079730078413405845877776167836805291909182495553390903257634656812808165057792445496634940666588684289018965814071054068866727256458346991822013208261525983387412737988763505764485702328335214346407750451529574152808996540251988120162568750871142246942500750016384751727677369005748923967457590223957784755316227236815349284818394664124614740895221412310150119314962741851081586089418097903682010094535821548743072554218042468852981933597370462476571063642028712449249540133837662895975076591791063396405069755845760046920364669914797642356986503494650198801411092004345437022599217715539797292132812661928368434760536631666334678277726334409888074171879012842339519142357719772190335370743812358397320318875440388033787205184926052918156341253865816631801431460091012529005173095254264900729302119085202376128634971073990407264911311558983822370343211260013057308003507204870803521487309383101960481736275569202098335195004685643117967426607415884244703123855942696400873711269795268001846449971187077662515115976195291532775093971917776674098392418408401070479110616707496602656917476266223751563734648106185382980276234457517432426930585859330720111022928681733485220661727057501480367463168355429098962417172261747138575782793133940447613537468913757607148591081796005374596833095540994302746720919512931668811646600663049994948379625341163379682545331743423845457775338962737039639682183501124432677637340042205983376022714459922084606196713925510002752848937227708680784955842902426234570717444409446130897865990821440503032376699414144103635445172542090662000791624296167566520951103847766515474178953557410749170864895171075544795179365286750860440803744904958179920573347349679543560034953770178345829223275117760662041494981399946213612538266423466692285011512818977725685312243464613619454410290587972356478963959983429571576907842892336937203141799808086768058832924972787833574515466953926343512067899894054154660592859115441641653889318009594503339162447907647556936857690765162105893794011998345250597470655954074754355982614776686600987483998939692548579938407710154683776920998795717124674002574795948248342068244967774789010774828512188373196158509262033711501498537838575000313129238360273632389084264974900675297568712302249977163725994355900219425559292285709339197960216507614407860934373650023736114196577001541948206793869721144818140484441431791477772635009007054313531531643020889660446088505511185332999191015669072419121591971426229930746843592351239360429179095744619640514044373648601775556831307321769063008681629740530467541913195250572472051121860336503241990309608097872312671212624909393304804969861341350422158895148009935850830329039942818285892175791023123191460637760349547702377395054373936482012712592737947131224444699644912338214543631936423384556666038031996018916138182648256207784426682147299341043683333444259740091173616841961237717893714998471912334757834302844902516138251551703620025951415224340256677551255754153528350051622952763474709201157928170791907036069191988093443143950122282638930168924041822171940168335981911754833778466479196022859941564633487579675635465851918047717134424252755660667797052352969837570397777473825805548110586006481911817111750999671317380573443689854276052992972659456393311092017077782989537251309386557400584056936656842846208098344073454858218620900353657725991398094350116962544232919622606211878874651545300091582463045853414003265893009200531459545070493663656779614313458937601899055856906842856405583521395493978915776650619242092591336903322282366887410174647910154437480055305535646034081513530448082797917725435702075568387641685075077158592927479215704797334922085515115714749928674772140234758526977951372387774432071360962176235019927690632643565596261477157373702040629380651547932538481922682078670720128757853575284666109280323652804132339001671190693316823020574548973456652534146469608172288570808540487802030500026617694364047808037031565581895782713119377118620549979354218901879794165658588198695271297027532742259041024581969363451636089131693706768880030768360788967128377909275296781501759636082615857862034378667605687159767255473411884149173396882971816687479018106258764501368680269437705041650956556659389967419526614107307250385411054408183203486519334349604659637334724819401774976408917496720135104074133068573755211293374474592275325166790924083558889967577314235781982863282047473279608074438212128595736279631225102117424754402681804476893764514744624616551683030235812241409892910084554626961431062644287361523348268191626131306451894595445697763397610978084434184202635628068903359962876539943451467457747770708807020949766064403915717587326105095195218607234574322295001976806845685927969954073888693466651369225951322041360507424459124882225029624031490584365064841645897756993738126413713766268979616889556778274677547826066294394271037359745760789120219971075130865048919381915536060513684643105150217916344015458378304681320468132206990860176900222457782442580120339150498783771864523788331384043051565312244874561666866357840462429245944563382565905376155317266655145346264036803040958264127063342072911947701067382444556423079535044828953816251471557028771742626993169254809932315190151787080313220450052398887103171415386761891612018903749814396304793364406988897301657100843452571462401895643190167311905346696713815348688514288345357317048864910488232873825411903416877496712024936820267981923691996791642112235735268465935965860548893825596836486767345732869827668682256406996062720561381934121855328537329934656927906858771016698539365659713826051348937239054567775343866869429411666202327136491696025756843238449106953892229159179378802146217387755411775571747466355500811481712455828261110955951531628983679529392954511988333630459957058891239160931543842950819079167486781386562978961001719829406729455138316764624828521920030331264488188594409612250793525093938395908343140885639703163627534404052832989486986485360491734905538788991364854537832474951940456438018419401338874622440094448373036690987820798598369909999828664775313402243324072922163804401195699830046692231082300064777166924704400371784168952963816206180083294870919580193877197005041778550246960337247998930575525596919097500310987539614367972489723201816453388317916255167236713871037129704630418922954741496320435608307546687111911730512299736350613421898605591964564350314885631039106604967185436884921933218723971003222396532536873655154708800310876867128014644280072818139582908547450765211328356551108538169675920084634986013576294886403167921475261172060143564616074673375395723908448873387002732234320382081316989041127080089702284201814092268289742257138280172689664542214323348352079650862370950173240716189140100998785014127469769019094207061740284652012638678173134965066809473436392904451390070881320758467491128974342204656383229133233637585042061149085529887869707650452689430682316782277682531375789822090530873066432760748048550320666269397105282120370850406758932733788627719774060440095629122329722200725128057934710015762871939699915186471723695838689397700816738326034667028192005899643771447163588584439781032110786267842419964266306072107557307137911697049584532151969075472218059597196236498315524969176488246472982425017510134808720855370049990496794664434095014663453501083490775037122242833755995987008526069176445497827751902830629239273789550933026730280088225021092390099745670383326664849702718449316925573014941288355052337961310689450467149308145105375953303893691283878283253863009292942081311833375448822549697895834404876023501429236352921201674663813177593598636048249390992814805056061621521358114366952094700631774776435827326374840115494398603178963675358471512223349763593100204857381272837418532435136659092222867162508563372288812128234552470758746330324304441170082002839086464715928657106957133863952517957038808285367525823204386648094944892351094114648309541559167243463718636567495675899426366383674297551855049460737595272389292729154655284809579033919994415927544678186355407270747074585470456479918166891206452449447514315327359539625591829820320005434342535280188180263631558445073010136252890825327455592732244990973865633116620357090490062157634110566040664732518264025654911941574850883100578706774081932527175339322295645868433099058869739451840298948475749342489025138334187108354317503015183690740113221482517742428724749475260253349380866734990262062321000133640937285951365994321559317810497702506499320926656354087729597514178465889818539535030417115876664377004557674712107634494430893942098624103852707760178074325541562784041598716374797844234637559020491463807652496043322705459753064540216652152821550223641177610945755567073445869140434818342801360834524416264659731582933087638123911474361174526636843661014124310869841223264471887618942553635220046463378469726629236153723613954718104807167535885073106663816304722361125188972415967171137384976970539473226604411288436661588278474867808549851003649133048297269846671308034241896050482070098841380010619777502828048972640814082550743578453934690798235893723103958658551659572611845753223991445280632420361605233570343456075895942438853600495493359894431969732058486467343119103387300201811365307809659807509188905573836930425450278776879912033058150250127370107618272205796136081610240690909372310062847168770681012220655565314636864037391664532300525938636513655137416979877906415489322519535637670349571792955402512755904103056474567802446346480655604786653172243739177373682798605689400708854572807150423886790984778428298801353923355849291155447458118788121312179504463261993862105143599836027196395394022058490293339139355882964287532467209473643992558291577265890225553320937708318248626660320288577085482965045712884747585936348541831456721402777695592453244987018303321651392187565188267905931995391616151826496643723596719408637058295120062804693994296832733955760309441724096235138527957315169458109151132949295459443412249408207405381294765236940440809694263380004384305625094944908611212950798083635452854470327088930555538743308516907604606898679546172737665347941507466769685789731761195347149365437615371286207292721714121331010745756897529822540178575732467160526931133818685211170148183204752916522775844605322183844290903689793249252669497500409798302490287906766952677506009678024716721942818775984866334433187959062275929358679169995430626454435302217886698576801610585271583532342663922667337049757779492035569110815451741085876616261404376119031969433345768776276409850140909837486604871118884777318095127699445703883855122555124673731036149322163293764766231876805322357992398061057468003241146131475290510876098946746831845284383264714631083523824750901417058228810057737498094064747743509320618805406504788515760980876695935367036280796041119847170290028318151808033530496183712042072178321460272496312107541993998357350532676812634607264663164068712277282777449692617404297649746659851046493748390531097928112261650019520917125644227519002052271670985485620888494574194211731043026879329049003432932575688039356795955152404503661465044658548412528773903889513591202616216963562389416076928797482852219446572494664260094038658607909695357869635941151343669897526835131575244434815374888359366205534529381289155971326069047259694611587876604448598915927780548901656492142624501206652178688298230180072288117754124429717318667486381392282416577062079634430584837806989439900865526731354772686108248111640609219192133928281538328856126321632454172983057374134675915821840042710398202063242052964584898788140202922469496187710536794092401905957713035377946412111784553130718894614857511777808320363792456836932736539054735314957781445156457508647120325238048743384423074687563444808842909118476939194542573213122424377023206973572862507898141404364813552748085977062277846511229403768721776411646188635610727811916744264386324542913346799505759637726785714972152621442440051392068843038799027738990298801139094447499307350554923141153202043340628864252304823309225350929655774769838532999403929793541228033397654886691556196074287926848202325025583681281755955281406388153706337182910492894954513663345727851278165973563094954345664537786192993326145137806439341699951278830275951047357029284956169358829223890097594781473717768710432284165526521183294738510816091113899295424382852660446886910100246525135839313725345534057481869358841171457189320424640894747838267871547512189782056689807081260687726421057809302353939316442189528033408953007504128705984583868127409159345297908901026937966528395089683838843924329533239403370957794399165478837038568538938889712257429083427704407693059932817344838268739950060601960340751399431853289993594590989071877187703839019283478513114508585746082418215984498518140369755262147230386240377461122768399882213546447204458959321842252056885492769468539679397610928338835304024246266524625104354956637268627084235829143093574686957247518554827117284247998307045678575778808678039070802071669529745934790560142599963902977795772596808027168960589762341883864994997116353060885408520777250056518968818012279720504181710752941691226342268562321974688137961046121385475098986367247992615494285508382578371395981463157525462510860708654508828276343506277690927977733162498621889478332499910266354545113017758017409690217531913316462075159255596584817802618661195613437161578075216687818960290734009933392823387136049753598233763276411725859683427963622306002791117990934649340525540557373480726385135989305099348824881688158278619100635376690155999428918507750424271556879554160525102127550373851334588829566662172810874882560885881957825227805938830567732180543880838582657474474901011595183119212304332983244810801013265835766928256782994863360964103996099276737747671403253411054961884216062543114237932517513313393776578378883989292863669587091382526830978896513817634670126950446567281945023813782111292309420839962461712716958110659664047801345197182747119963458882834617789390698134660842791286239023818544255648333880645731482254148854161338483391679308175978918865913894887899563318019681860938442922606359184383885836537144910071084684283414551771354718012714022558462299165794038297142222176157944911684013149939268476574251415485596074204550601759120519881801113957598600213784144355034422849085734518386357071712099349719080746126061788104851500025974214062190040596402383575795590682427562022805797638685738635170027764256244840994881140954011566525402119403068760279409515390367879403387805418613401417617257524246646083392634407567241566662411764678344153749212615284399599980763262667573941430143376303225083586781597892137479070593033626953887405512980501341178279654506900944180106571303520228444365225170543527597769212987280695082181718217568620280498501782261768875661722092968737362911613669051811352556879395533036449140037264038325686806102515127427526902272789109095406137383100913204073175499946508588181057311353728826823748910688573605903798814255717364511984912088756438315445279639618591843013152110016237326701495153301665976739631879255819323937828106155701515305261663002975121552900976371942715902842609415635128863694862904975048018301830165373606451608704949504778583412291179348657178423958999024138836818202442882318232902303267822512922612570259457352702391250511629399949575663816329468564431705318603982993371302643510449420778768792309883629778117524251838858838064665209438408022410278053684292052299558022621107657991889681203117016735859975670396570861251082276009464520109657619041418751270911631151568250053357719384021562851615518404151029050264884136114871185948574320532393606663692704819378719403818985999787619030653438385903360683225207520926555177923610401408688840590823324555061365284158052791652462867989316691631301083802326122581986927127401728061220746808650333285578615160091810181989973896749573600379372188841268248809049509967544415903390379214971900428142909569312646774375007964303160451669713740255071303558027265977777718207496621864437019134705855051689779204980727142630333681082659756945955033175210143958606161034677395634253532952456979098687036380736454218555232830194777159065358819256411628358263072530573123480229126849834233519329870920191510941397725669810365069547236739881532288033339936944325961171012948562817137492845434522226713216443031301739975240118798705055427770339551976953796643649262258250643738242297602458631680874508116928094615129024421829369837703772812114376515809120816151267602905072796284511397754394518174921074037856150832958950897234424751784566526551604356085850910863192145638258086369905624003596469326346048014983793775894317118350898665468374563217786299291010300316736525550491554479457320152291198411980747696067549982580760288680654796871050610691237330369085205949648855717694814854532407518718001492273046999844809388979236644775599828168256681255064311207985240893207088170318899764389261604437101508007582780309905334095246450328415258720169087730977950812606965588170370688246135669911933880612861095825022047718509935973350521743680115376038545579650656787715495079784194153506376670981580935132790616436602075219495676903513263469604643699099342199429882735027070648172446600381305037897331432412239968013017721090285222473261746615717270252050210981881679767088608893693130576337604096108350410495553203281619180238225678548877664407349926003004046256575753098177757842612260546339925389228944743717968038732058137663846168896546721936280158719081205976561545733260447496174268863434476100148508264006652701486514015960179932385440850566968349290006912200829332217106672663413867738683407117137592366961504206985468830388652404707840593849682770360878810449795121628833367842585434207658854072570159752138721976915476331227763013451846565709881474646239932838780146175864267654234112687965348389722510377896297964954652855247857619086154873743480267332140369524988618063335486411765291930268214253240677171540284815155562250839972366697798145544445885442228441709390104558960763007453648539260810244447406411207659361612369398123783128282499186539030221431542097018546390985103013131399104587154222106858656615125704203123395667648771408737801769909245279145106251299237109111330272073007218017962986884832555079175009804962753887829041973379466911072668003055300433412777080200976117874401545979672267618685891959281336945082262197746327577680654092053284061851196841483928621845563559180720009837273324328873231736281108756189360637047994861755946309068037331290284240191731071669741746799904639335721777746968502479252980598686501568349148904259524616739843796409804795972786120791491709959286335412650349511469172092411087723979023790172324981572046759921047239770209172228758797866244669813663930263011190865637140039858505649338372017451059160528999908574012242735072743455009451982705036771147090808272340025252000002735004683167337533411934892209529654878230683601572979085008692884475392250049763548565740643099930815139320181921057992640156939271891918080443913921170083370908042337301848765929040058218817364080196444983718670927946155802467145474155084388874407723281286718138160475893795917252104874049750284684963283874319461801315296280298229659379369266056660311251433010497413904211734018197050968571747089323654837366260506780576557988767956811174923353958829334572537186882255718955029583519999346911529752716208738628972417738401629227485880793070602711920891884210680125566359861605163386625232602799687153099179579401095674563465682945481352028948390350200280535857969904627301638015003315311888174981084926972472211970386955886637351066336138271448102210941848187974818228763484294875048998085554394792877161884024325438370231552159346972142898473250952889203232745046989937567823885693839525424646284473236172703834231825178322743747324471554363378729647749121487566024383535337387382863710426778140225046088559287938496028831226021946866271379255978364980079162357967289296356896410035763675307602984316671712057755316733283344376173594033900499140321528711442943134904896870326954297707253670115644746143374136846531552233797504502595731822144832062684323675813580952824226416282736881375344117893704213125269408322550370615972916744045011862675184891930982662673786613703527060686105850040859389059584238629404700399908205383317449216240703550074217922626648788199237665437014683493438015446097953862332058909174449860841319898685998903388543231726362602060007275886757085709061808725948128407687897083764927146342825560209130182096818695109057370683426309679754282122654001028276622448109058704236438926411440640702064217489308341389219041964112937239431569267697947309508883977511658359457746053629846547192694633693021238104979476180795678868499182871671693742188439034284531821275967832165888950349592705208741261644707842505795227622707525024740372794083670974859108675113907034218511813117622809450013441791907094913367168577960530396548710676342652469637932951215810963216826234495799569972907730512786354163806922703235085032985680255287421829527498076023530048761122520000882721975613048877466029224854506619561077331162081139281370652157809731971125584802180863078109933909229894900143513650074842474508837169478029019783250390425663473616731201218961261750056844224551524168514937760663455786536139069453660496762788311592991796048208412555050489810523528447364445510768007462120023735532339183313665777210706274995949230576759368397646368970025184083605722636499203191563619711665444968004433472395579683334857525751744474614091842630250089342359148548518952022619798968041367330547688533045550293267066799823516401220855542770214656190659914439577058634725510665144011922301858237367387371062990224406300395630895569535945127757724685313561819723373458335472947031965875428311887600113800064774907555335502688446523750856381600444148083522376489702876783739286466621163232017026162005628453477007357614020473637965535472751940478146625069866608410071780462402943421528214275358477888942765289111625809797452421960698206025340001553439574981790313715152792474142969799950415121289097607365092487343919861266210517117769511861486326555483675730141215400613119689668229544755579629447185179781980355301669589183720197460550912061877423404065916993286422506295623605510779154556588878539615393149560024440069333796318158157315301455911800210531468269542217638879066797862925109025133478171733582301485521639734201916858812595447396941305676715338063345521909546283343666639781844723653232348386228617498278085925100058940144689220496316090664076340596339012765224883472891585598803660291116607520651809245175999702426540264562306084465885144322044515495492253300634867039427522912478520621704472461374168970340638916775587896439938912707398181759820342772838835355966654908308218370956094215165434994276056889780052412744973192273233221208148804766512976061871252540075982657626969421340928679545678370495343994219404324582164102458967881730909134664311184222680096582051732190902159908232248963894113963563692872108321824962959926836554447292974576945976834758718047855515180388689557634065876303700926536734165584010906971352189334432527568591085266460077287975071877593960111816249519284612874396467596104600653580222766681277044608650056579284839438895775734191303381327468604236253864104663716525748729301544922734782892329522565766231045465181245522449171179140166996138548548697978581897532702710092201981070430491323032248170610035079798633971136947481585524841032967544431003921088592735742839513621111265101126350936654787742039122348089381625158613458547308981078169446128995330629645399379573697731628172748707238315915445589100221460753783829225824337742397471703537177107741925655978236682663444999187703707570268442941067148644294041859387130639601697589244474176821077547045160014738890180790229968503733589607938621051291381608670724204112341245785144143300619748320495227554994944815904846631271365024285602208573371432046155071009542257944286560923596282084239429687624310885600734164342972980610387116420933300052720740660114847637359820657295494272974691772303636330794586297933631510174734430875213751614564257599517620537092137037297809559478080001486981027247498394287184776489093906456413408334674374766763247811106092196329563012774179134841138999519347271402970722991567362276020816177603416870949564895772864012920629268703499095179572544936228310120969524790900808624677800727745654902433979257593520492125990532855772340237806147247912050071213510311524194281509070698250257129067792321306033050533195462874040435286082706948280375364426045873868104390756121826886485642104963947613424307736235049063180398233614605813639861492506993446732753895888135062709790082999257095352237384077019010508265311030208274850525558639066537771207711571965270401626243169970186715265259209846769846584928214601028214042284579723439060029547737494654033782663052449598309730454157258809113126494231274157672613930771157541148955271566960023647433040414966684772383014628615354972518500952324676661517780852864157769528313377775169195160628438023973995364543841185885019150275872117670474612968035352989789925554425497630041442551233316676283705375931530524610687959490063665479110105784725551622358984711046982705641085925692557484846579265759151608933501280543507471166664474706370076397085312720776408936321718027953134593320950047740870235180868791484861288641826102029212684785419021642531427735840085374863468541073131360654686055845865890194134839403761337086062466292415456024135447833935982415962036599669566209295425503697845576971462773585777284460667511981303691829938115509814609647056976360585282838474655098323249370678698802213542189765543336143836772667227027497515393844999780079272137146773662217479241270486091187102334865672606415777449822579758593028009292215530271909449947454472231361852146098321962724860789285547605715605919153135970301855945944212934207873141472182377980775897811651461498653884143199597880571716785028050224195649083459545227842926600508182746112755461563223317759716951607210377775723988746625165380809629512525388591155211595413309862886256065639311233245630205619047470517437947496692376251428488067218958223291647419724989375261277829672902210687112863771719559735391790822275109458070681622245848773927281848115641346041578539396845519215231596428903222507752282566586765947455266146751158694407882824777507429004105570691991356746074835162142436926986743120514041796861773385247284055924215492666278962019477519438431276315088873900195102864177846257128976410641537870571532644431600930617628870814306105492545885639082423822949581061424439684510223123844012648862932216799101483422928792296418587930912752569658585155674898142350762067970574979683963472083502689801571859341236842590828558234692812702882686236079118924523785084735650952515751931224745466248815972607527771383078341988412289258659676958403774432564321447846572930081926547976842754170583379623905911633771382740828022760365377422167856462092086828828443623608698274549812147883955176802775541277650288039492358907421719203299736588964147845648572587041031809146470429972066848973370172671156758408791083314204324260925682711812468201803604989131493772759698477747334245914605535016764636895364793503784410632002302466851786571895968073101229571471940544149516623676884299747462384388354879622660053442615677272574010821773904775250782691538843575859587305469138066340952483222649848315970725146653541692452085512410133753258185322069547981376412786165826527716205405918728663045406987145586626613725099297450332300701025200600912790423732396624540235838666766215583342237781337654778112591302138059278754050709463418654849005451789024906605516811654946098400467994829206106215600235774576115633672374072057918058007492581580824018583765730537949005517869627140430750924433772736090188451548163119930487774368436937158653944543068232654472713388272601431853620647894699838874748695481428226711076612447885233349945069786870829275786090289574804624846737677318912775031240057622607268571066637558372173609456092025101096793456446755107766970468596214751612674622995885267732176228233538826097313908314178569168147772009547705598492422117280787932859880363525889776083078918352595587265801659676553461729435814728593923895112780516694967451617108481141579317624186636951914231391935543067366473378957597079637578201424334882358018726955453912869754199281314218196953920845494578109843008504390411727877201735797387647096981180565708886340236859832065437442124285662246258428181421528184260214270798406377114551745249642987131802235396095778721121634577317068676975011070030371056516886486495049129797120990395321706698827148369631324734366107147109731956321290539214164558235655762200008684777592731615678678206569335294904674514640268343388809585766626825047065531828805008354952434549850683674254748072153886987406506435235975722565205558999604362169743839022199473550526729949030012487255081277129829927750628388490327433144394371242864760506966501567987139879708086460434533743363987964446980142845928549727892387363569809016287046873825314056421555414439853077578660109952083982476451000067294497574165816128194530824748619474802959588094380185028484713269792674800659055851734594338504760747456840135310718361830358743178217001866352073141210526200116039479724579495947681115186845059279823913437852917508384322608853212376121898511047929515334544745028166887118245314449113498096730653594662385922857328631344284429098886324294554032108211192334451711063053599073119290996125334352424632405148627818111566409561657918479009703384734497519231779623242163022151411511979113958125785597414695352025793909616167494485726367970033370720763786574233013782149549076793839502103952308575910008501841430666314221090947957542355715644881924402835121102954966328769746311369369609139426051474042483626667946386107825708447191232380371295780432784682118816836311124203198066555336639905537426859285249377178272508219086379326155593382980041014694542988674105791739175562838345891943875850868645148158265717016450175632694241796915418352428214912524475640395719803440551814911538992217248980847616259582227104490295632612765879110668380501704605771774688746646787589485523399228348443466818422203269632269878764289009863876009076573515399451801469310824904353079420278632701550783579451584668059026148151234050669051230035213433152891012600141769304318923515278832464924698258318549862645706059041900894999273621333529837730277139400224072284406088051743400134383635603700373417883956592967306430521494392745726241065591734322400295469032978162953460141095390809871041488535368472308167310072407188125612295691220657572318106318458705234100099188230731815907698277382794050175372805638682622619819921682602727725478539190927810031565248202809773169296421978977111027841331081371080239900512402397961444866257815404432060771261298754512480334905300092893926040957304559072090885661739671207408392427310832576527935273159253399346004023330714341388142555238316252002283893923682752900693003240459117158068118225988801614363340341465840195555363513959182829818443060481234400041972012192317874141035604060721591599422416336382696691835847038006300000090392335120025877904173290030108892191618654447663080437961499741203395123899525314139369041515941273236362006934801256999023384761128101350330490504739064459725457924431414548488109757870759125802375396151840514536630627996559648701249911816926713441987454139048731719819003770585523340021316234827518778848737075030672533976971852171825566060461562367602223338477406988739002618208600877940675966174288517469814846969271220419678422728153518774751960497561035313396099230545552994321176052259180676786562271336017005112143927350990618522793500983652750061437514282954396161492340320983559639422682905500656519918380027226836162978047846717407065119892699075350940227188926954789609104805799770918134504921013104019770335019869492075972881309407991028050818162156590973524847134067869396978196896908135676744386968806680160017943617099064732283832561059004694119720827515767343025162156005463885600175387487122241792146560548599736152589841414716511251338419027163510769673835635849373451121928824814567561435020014111248694016958751273461045175001775209963258880620676877259215504432774898566938591284416591168306443445801572770409377359093850846049615075561285789365375945199350073585705684437298646015744695722205191636170235519964497112819168888100502337229907035834655255465971935679333126890713656628421505464410862832499551216518441175464470627919313230502989947938786607787748090464042462514393137677192765560213387781950989122355550939968327007443489470035884415336738448570660305616350729215095278222884504369954055388592868247587077027298601712413861029988316330655679443240088962717955358745952198378618692982339048377757756483272636892939900059583390923682056064358714497589458206856048204730305527539411763002608610037765148769405939304374910780290249450407768428040327475801039934503939219241763524151943155842337790573612296144364361781072219141086315021041403415743327166568208902998844613535671532268438663969569302659868703069835843993873479849886618876358700591413864542013946957012028399282099297422033819594912280254915971704738237768701037115873665259949177268070325498568729528489268525037793576977973438913648902268088095978994899906795145688126391429040276265993589648323835925820887083545157761065318428554540957169694506568553026245512073681002877807088392865176651317529410934672684516581220679955839738405136980985712193460105352286532688278018695868761099307063275763140450658086353133708204134549385058785491751182962245365862882825480135642417068483390084064471629795693426417691305753770372735474049757519222686641623606845113828146488995523979661522919534485899804963133803746930687273595526532901261269635751056977528671312434463102163723464940549497195183536736459033020617123849267869313876819754037108931194633400932732401327905774630111469314859745851312765024433519546168511801313119502854987848496149700158782496598430502036255344941003988305271532025864690370723252205145563899063232445618625108492144523618226987223937190721027788509622459122610637214647462487074488766206345600054306192369993264874178779278474110094455792824923728786791538557581250225387787002208929367407198905419447637215879070292621135482137574446121326950610035943427120055178656476868018240076500989141502343889329275113167275248330985847911141435064969179619982838984187903006477056208221008012340133680157322940790633025837401055408691912862513731317761441818638567415499160421802426826036691510702962243168835539389120018179028169389805736633812860015128776547033363280516522205235039933898475241600149281441601279436833653397908181600648151665523263366048857208135850551069538686392594112910053058065224307169086428474998032314358573757079472241713716097861227743783777433628242906235187962499880390964717033177457630848288387577811109041735141287686614214448832133730515535661260014221002569235380209129795040215183012320537616661608025805979834292561181220318429470881873241629123920293787728088694076100718691606294193877246289616948302943034283115406975796291898425275511391339001360904790273470123537198426904970786172263205867227576356838912885273093714412669479125184621213788971263805651959539467642656716526661822150335029823871536934855420608918411315355955121846759488480211321673929042536495885343670097947448719487144002481787269610798042999829364404252100376656657600871246155694306943111100511855338212107629035791410206309192822795855799096130665245380918404711604209884979880502101632146822045629428348801161157554899965456557409278166732607758728681214424087205805912665463228156757089765144488626487775749782551153394328415511029240661900955432925500086540935566831333107069286342627759615390678000146874184085278881867561851568055621669895812970821104569993924282872616058150621907980100345658190564536315869685876092349913022523521795404717829769363074384618201724046621279532341852015785514347498551762948860608115117295485387182584402622015469635560836743286523150495610966854043994255255595371967184142470405050505182508912604610770145060564214962565317118723260333388788779759072657180016511221469976748264578287213466831397147831363946643873732958274848234245933816371911570873902285509147656349704757081533974084120149491784599325005777633682787698268004585855283108131078120961322783932510736833903649429314425193498617298389450555973255721955971824673588041286086685887465500057356772984058270942943140833980916322484429917179827882388686069236273065636187851933190757709060133258926703702982949831040367443958243653759342320845000169069414201367192986550596819160856047031090584006139569914338138919988285829086549190038399702416677456309956441374121973175689227024351345131522898998724342444860006103226837621375947677939211160034322598806573391390809971754709027884606460965513830155542855987044553705737965253609898226995519682998973648882673474095344323635355186969631243237658942398277431825140673552368695135873122796092354883135459846737330001398546168511028826188798053723983850692701121010550415146575922618969353787052149607019002372877348260402070825211032242003187591727309878728131107137371506726756148016120100783894295099386637868984325013085051927745076426065768144005580327534059570556978080373901700470912268414314635434362322097344234291448751478549757061657394045610929837347608010147185735952842023953339376283938932727567747528745521930822379135685166929928204815074459576975784216056980586341995770769422605201062382142823736909571316683948197851156025017701282580805694645003968036914328272385274449269838643250483070612217627841641798441267553327795730085554939975585291528113325186766068925195430441293819538090860813447244319489014846372215862129401873044692468995752286787711754716139470002035084017103127791263843523557639806194546241645342686206534119978433330868867485542158986502995896018320158112881461079052583417022753515566828289563954200402475754619014833758114528837849130031026121669076988206517535774820172579774109145305011420869663095877658482580669062906877022556580887879496089700131242018803575086555744127875514209815283590130936111495883691098485903107042844520869702278381009950488882078413768487207469135921829998715013758327647681905495221577024080328819913893631372833820472481595299249391896149205678766981504004513842990766537226354607561801810375113037432464397039088059754542295268675410182937089158235150071242068499213293300799645249324063860405957617743036173409757520514987527683637078402607025445767411012101099723237598988899772838673215660966567855591274965708410641185265587976563193193334974078375944428211729728216152145818345773932440729516012103757422004876262038801109305612340858714313183936633349095043752848572489430685565941309484143705713936503863573892028346982695520719438487173987967294111624724285321043433114622240649066009441664702410948081531816073798675950926405241274678893818323064405333343224659227268615029215703040183496414126078182570514378226702842383074204672279202772592200721975197504155005639147660859094125954461504900582458073977238273039137572076916197752029159169215685007713402328623410437177731791635979812075571995311968726557440957630009275546268660733050436986720506283615725120031092015391681610651594529474618061119496377231792005856756206670589537841749643411087031517844904783606486251892433922629990526819199157880156586267921342161395155184740567335231823922854873401372475106832313070437794397595282630565093818641232962572042214131092403932094627676479511607223384896749346332391342734215969275779227978454913706477445513194328965659623647406788655514057766318605054133638507240435145035334736386943465589001408598774414443830264092030433460805833647241338892611367613780266946444030806550026906382525651518461448313479648573889595196637116745574818494718019075699165584060186104633952008762940001141917833506945973049926281257445549561172350672178543828414886487931028231297038583219088565463051382862187613649628829885927662560632847423681144027005019188652360725963704201250543596267025946335471281177463176833604572452643182675182282329251149335698101112366914399214622305476187911406611375504569766378927060602983440024728439445850389107329383967885477672654695214854240164806667476800693113588476389190712916449985811556496533573648166742600877918622944110268546555395417596852085961088316861011995885648490730786091736844803686397131993257166847926993512493357925959602526377497259277323403961386555888743221062532335019462551677731515077990106377500587675315170004788677941749303673016488443018637684147854574623775852007294815797160696445959770931675243444400019189525179130211424766185943794158744089056734339514257628309948389404733181748402204779736585570063451696384135406442195067800016820171519983996248342332920614884206559525311949644022706696803584031678131503174916727199355232398722875890718631413873531683687982313692196097818404517273224596150773428360354552767421983381270779833476987288868451601078190662394274419159917451002017620663688794756097411206051982964464664481941683550538724524652269850463353251275263804187578300582592560458779658282050806316543862805251474867293916048310646469817362098687214638194506519906294831526312760380778409489552251678932725310755737176990866794931596040573894795373466602922059118757232108205378258082885046003286791192902317796114418505986345960533682816971393365871115994016930367192800092351844044111406966101687014727443881557310527945315233170592879078668459942696470772296468955930406972735542482419161861496624200110140234997992959197416124321522155403157802853438450384614060258930430830270720307880706481770365160001849082159296833867072930803870451873192116300946592583875700235915293034213563213568966772025148675758439616926298238415229465486959627925246455630325670570160515925493394928748690593447602325250943031182483951037723776541184837890734642111457978176411412462959014409095180813620897185470856764027796403525292462893691068797995920999501670504324241734565099743165094160215204106158187265339199668686369677842798879822698445623579213271043183482396701017282173987172153970549803889123100219634268393847186771040697949566056869152307342774957507113485638024401530778920146377770382719618367899353082489366835027437285752767941122465903974933653095754774231682525428514135401316632564696192766556990045472019627886000873264151863301077379596288987101007523608139925802515647763296747985156887932399015538915696466148330164820941988205448840346072562307829208616235225323417747827651264198187545858362745909966552701399969930763853861978635549201460966305799689860535041366093255175226639584418370531750442409955395717155934597277638785196173994829805678172041575797481494724517071014425159665727824532019466240869883448505172336126836860212076281972670215951082453632993535013256698701311339687879993186027889422911678645387652255049132970297624392019360828725350362165088355428687880543789587488117715141864089062449142238818788268466952454024626348157415868027267002255624191018275089971646630481764641206662677954196871892409713854546764519813323559680942784290037647157798968973888865506319509411952533906919783405302032908324261798488995898630893609617092024933416361655722537353850943714198390913732276156426223904037700360853656189807246591690303397426770154364703684712053174701120332761957948477406740358638926080418455973477595595145728444644163916247039663250474684033894818508016264081310835220812028416631945893855607159563108675866707897164324986349524361700231042307599932997268027078736051965413946371239591020567485652760908415767977412661160082249237480685745306124607621705243349605496731731737037853769003728766568322685970257229468381485503587706980790317193268844404443995023799491179441085215838566150587223706448375857846847395575309237360351556805566107390597466061330158993017835499471792071881993631303832481277572283357451512312519772695106046245695981615723162000267086668515810679786535615203515282380291045165036739301530528597928165737378984474955085149112529629432386426627573424720495444883444977465393125481247831152369410441297262024698062803182570623748249416558887809185811712401821837071355064804982703340727212569544263871894026575610809621016024519977887615669517782070532993651642084019524662163609339227596625171119640287038078477558962979807537679157379517091119875573743571642946229625116579961723687637826256268958228501002849057543003571610611225767562397597651798565238019419411411968412377213989410511410493069114457419175710493059998349759203240247937408208552390466205811108410064969860367259719012323246775204859863199724252231919229670527185514947135807793342378287366490113490433166306149356424362769367959413560015155112363071622155610653682518669036052900447228303540454992335912922935922070218685117544840032696820881482960419838799683003883003199470441871114454967331714767421446259561216662896542297347141140084580340938335377734123115534991889436896700790622121034176969738226426548522130337388741877045035403367909034824681953526126503496895487264986093513726622434963855393277603202782188618008063829774294561762341457330311088074985705026367198973787834955689224799072030730081031344598627136690515274158940976082240787981333502916813895079268183819769193063406941744673356480978734597355975940395885815010704245603434345931328056705140508184532473343575560055775169715101660646736806171583441992947947880113558994409627013983401903666081191585537444289367855733219744360796052699225823216162246597116887955458188835278568027983611113234401533807917053305007629699549607080702655022743584778055183463477523296299801682424772020389088565450599799975041067951450353408986406241035800861472354941045122339120642099769273031408315043718899309970249168433467846008838545715674239341650864034435238688598555477116786020295648212367691213283174816386649383393013490141839325863443745206853595141117344907674099800379433396046340607901581157574598964363711134106051365950957066613090840257762030552187159769565196266734256197238527809212541979979100447659742553910653959816222427043858865302966940668372147830788795950025586257048328907203761221124105719885645279609010812485642512690919479439585134576298074787417687825889746826181359343703085038915452904700064658433720450619202231542924631801098645078582950318188135416121481679559228491113119771587211785227030782016393028379257611001669437325911055556681587774542803091335973600073147852338085187486361891848143154902693491863739411093671987320647510378896995718607144523714109596335074003343885680409382054429160788463094779657593340499354529489811903304831495262930142742903527640112080510887708679011582596591653051544479058698097978541789841073916984050585251271408446933072133241616677453856628657719876397205077374558616570488720782107589385596443619401102530330648195658065199582530932260099203994449914863136001537805202751987196096012567763118947075777366744355399727578155716256913249643291891536982007036684088987009594795759675606601335592993964711043734019233972178921988853232887075808848912081291861410675215929261716171934574046632531315566892216164163527965391025111871729382055298815727286108221889274717703042239846367142083280698029233170331408629176860851737091497774075569559858136796925243171018996041066882267650241192851809433567895690183976427171238682816558381084542063430266636996416132573858206483396549896942939426207842665112467874410334586635148723103597050107086509276132770445362419905273878301192963306245293900269578908719102181191204797692664509088671514499872370031006293286669965001833864507936228576949609633155823341980400555376502693827205430118514396307838678627134558727198811873296235172198399031218274486643826080892929718036951215232689499359776085470135765129015785096466990172722414148515426449554824592947658999408115772037535218177809444145204046209046717689596445094308002932986697544494396000748269345646552923435947349166242462093138712221675829144323963929384337750245701367312577833546129205792598414891869769700450107584160741729153592235254331802435982903492856235888401236718180806233175613487565930032813902553694309526489108242369434612335591568502125091336156322243052646442285993493815890100186518478390055081202647758460733683176644124910844038916264935676556539359346495215719837763261671709177637748461253216416064134383093872426321369934548399334718945089726678389928275093382166652662775557819134447173663949672189877874540066993479641833479216840660877765792647125115953242308035792247415484932233166297998126429650322831269188479521103214062983490349255127657185689795107600404477459547886428520910454728937233077696934589419323810207143392348897712687311435210921772331301794234192384161887803702775588329686270689321379518627220305054723105407989580248176595972808852355592911888626259860858688487374717672010324042987888633576028872254137881618215227746028341601873967908834536759075939321390856157878829366545771573689126730959740692984971843900155423591508598963522388354274471137148560084289675458351561009892813350314074638444881501111647293565891753464900582412773833491687214906724884267439284040331586398689209580692783811741124685106729240551297285511759539524726154207061957160565944694711150051354183477669929168655147500635423080101060030005903879233525598589194733678419399135647930810511416459336764260257350054092275393144462033066473112212718282487193137337724128874086295248512437531048444588960776715900746990034913099017547559781182280127176005937111321228415802579502096499308639050496507020273852267215527451375584024727230052430062746266327344571970359357376243246723570037931290374316374126914169842369974942052892546907677686974890594591283869077999273481661498887060645002285592564938158095597665428025502487539394384611342296156149747206953774885500045007358055836620181254748894521711999067532570866527947796568639548952727074519968548480198374134244530691982145064348948203603613618704042879729141966258993750620407649478920465307830382290025048640231094405076497542836413049770769773414258667984349443183076195877346772714934368888594426604803851880480397183859917449914029069402790155646513347947633898623910686430193344947420923148017885561828479056411272700682536570461707481667968253734128513499718416478615870513261581637631706534793581312294352950218534872792927895362193984571345656536653151656294052197574061227541724819293032379892963563705217732394416511501857398459110732017994297414730482026518996463619687751879416139650620465875899342214077511280229900708884091353951625064674211329337224207291431110610672056128620682034285287860695322431051003681355640082847782035037045280990492987991917256203404720135224539213296446290253917816353734674918113332419015291925126243896582926113304937353108255360615080645505830686636686615142274725715474716268329419973164531966856808725928256003984844973373024878332374288832383707940419533419439629304990573680494140692484133768276918184006577653956316797265452715246108942538591508476662417373357138293050580328367516892143214459005187314025309121971133396190994055957937519445867016210453910277401134207845911754706542443532152190304667521984732758307852341419536003965106438615769115072016175464564881369782670100833063237957715262393372275508486260426234372944374978848782838378648579203897117550125113748862314470669431253646912210407139069222573164860902771808703714916428034561964558572180437522901250058033207511313240665001499371337216176153523088161337011207004693841987807639249828918251960445197219867397324395336625536129378436537037746041693620752787656493973503100503934385256469707601165368355515709065693871558147589042551253848326568788502491887007571315558346103054030892663966159131111137521006674224180689217657905255312707401740670336799625337616483404724144068144856037754232485620951533992438359729445852653574417247139358576595550816884779167415024617746966416035536103401572542448327065457840758522762391749043460805256044602253776786337182277871697789983912771069045710821987817243131265958001545648616154109937651684243226294235611657745677809182640298454999873746447505191803193334346617444729248708571857033443252890715445597863504550560206470535301054524511473523543703077149537540132319799124509143053011960177319539068265510721385080029090507513724001385217449130128225363942212477392135012653404490996891372732474455825883195686828124932771825649245736684001750894249962998480715715880016442715330681166692554375092346255185101014028751008523819149863678927950758889019315686046721026473852361082913750874556725866388907274122906657958219769755462223175932968797054837332172792871110024602522021929302193004075047209290730888498676796556983861541882616921763191598093293151622291602231347017279870620313521658485384514282491148288022639275581233989557603898673013802608235016970874060470893999839288140323418758356324666804286163519363334586578580519655460342782270561748829348743824281354909002727637855456216755003194884422801719983582005098947052801821134144854505899784269270019511752446567411086417694532221561597994688680107793386877677278425386947274575335815824635565308361571598326857232853422882287099085289752549302424577893972654785816854625334313726046219111865777467538174930590637938675797919508619140145631457231193755880912433647684869820890794967245098574505299154349141478717980299671658901343784213869915249954920852304241640591720725668863068601275688328614784122678484277643652158022348998232061535069469721827319062382590426840855839811628803042627813097712276345831330622617294562613437106781308012869826572989242508841479141843693958569961823203177149360272744867840844361197372161523667555976582548970680855175218653538486760769459214710880051117075231246581706491689795609547006293393527522549896516094880180056495504353757996779047413742338720992151627136234152457826317371150203292297499473092196983112602964123020210909327806637274633560516676663740937287110283534464589237071256875697637258568743321413948511173712013301610336697691881869198090041150277238565698522883066312419507917916082089724856822307622299223684087765225179043013854199554066530076008536702392000228464169031878761223211615774891753573243476354183020397760781876505738579627435215264944729386621568721269965567727696567925933416097479520962074445229071554955819445314874820873881017671251571985978600166776157324662168534605312504778051815267846656495270361579241574887396865184409312796288634265077307284344915926735210440214967176818282970710669571860608377345573387258809742861959661318733295118382798581549657131954954960919184657313536495900147713568930996984142357220646962214452137012316984796145134869318223995952968633627991567065963847006666510285827421327906287362350036864002607925039137794599196998083470629509099839441503363645895564269528164741270734936075302667222828794731805174279749427527017150065347339004105627001396625236178263753932316131309047916143680586239225192897472005845422079240533133555820691880937280987628684627286695773458205759786669129424687532477894612577001936988793465011324271687622470541256091740722165384058189768839890011548244369228778830602339683541212769119942073814377392641755232024113166271981897623617458520091836312485887220301836637847440568150668711610965129466703465269645823851533797242364981356065129270813376229781960383022234310614661393081298628278290644585171214961051066368317171443523554293748887709901286495054570180057979349511784703582320456404939059752142897823506429217451285350432010092529268286042556736113487086084553276530083842655631531934433403367434999578150581014498064230614527888740199940058051630364825066358974727355891705813964163814125399134606619515129711982374379061538661502432583393119051590748014841512631209606919029118489868356480129062794112643319759846595018092904407989101826353814589186336253569157803874626465475970169529069987641159369766112918795679226889052333790204988197768767031509153940511742324206703242672821660019801104211552399485181947880970185461541333895251019773486499033791262650904270047194709322966287198180373784955160101747412110048537624083300524819451776839216096921150188639359911625996599690623037500208716215812417101925404516687863216634988591086049586672844189612237239360863644921692080566903802734384819578584041072783295389908928139558518256901077218881036989774597238690141663498482436851043343153180969851248556723221400511726881726901912253621790320326380372496272205890551589794034776015636270744936227193064372078893781806721761965186471678818534943589187343441924374447300835119338772579664007066623069439111476977865025805629592404499367018288287508240432294753515393301233330371976428968551742939973583377473267114273133447026538936230549900624215522156336829917194665385549523618723091354444296847144324670264573874774882596202311736068198497685694265328079217948418315445553259692068353497820762704954809331529080786129417752117523125398123786611571085440666822373927903893711944777154810642213101085558848040247886874435768542296973365884780958759834497216500144051820329354345863268048512679190453839750240244585178440675213292314676650855835372247244065281671984751038269869424930103707680293040441329792133909547731766658683198926916487083092478354298688346577878400713095725109006970088695602924455989811808165029519093483459266215667720035090464769099806440738674548220009836716225945519517789054681084664075084201035694086536496705537619069420220624930411927376926882458433019258832437940695313874169744442190732008826164907628764789527564125824180051877177814699569932644176328275326386400799581435625127029807329557698973999005763398810558253172668938983071489711745537854035749562202376756317751134831300088991137275675082862343891661386843872824958274339408952062817257385949106214362674717221462567699560012179197749826440874848782067437199894614475850814061428147543399616573073632338892660691307695703257852512576137889833045011954666197521410413284043268895308870762437262772033255509034337182735188186456119442813062307221504667246180891572476387913724503132252251421938896143805655630557460360808941093179455103025048885690510417718906438684124282502843574177039417903540944288290598040401357414814014898118311004788240669065275800584167243525818404066325766865112892351236173971982204873460631168711221038630644850726298853176351034734863338072235829938431163789495657804066473351709625807415839059647149110787922336085109841316671679596521516209990341639489006018103094307191108899419607209566455679144642003699760138601861503312834770458770765880040665179658533765600005473408924896910670316442492934850850518877974878406856703584378989240204044365533439480826310862466900651545419588921732137700090835624227446155916703020877854321589875583673823894614583344602757523159831605862211925696276076439934170485882894702237651377947812271383089027588103209463111311534723955873542821029215107143157780716863206090990337727125791252184112246220554728583376847090940313652145119904231403630193624992971916471501465001607442496637294107124417386538080235804893881336206749329214549630602496178375611315131243503117014151742885726737954715806848567466137075644253761007846019656981902410156569167621959267808929061163706386359957782853317424970983086096729002498142891372205513328885810836179597308668285182062493026867805736778551532885228869193514207087565128088286157442404567039795333085368154242127363907738957844895397461336624850576067493412197302810936901558393510994259574976576734043557001756648282866350055049678846288320952613797735988816357197759473972592631061580544103241861251851493127387023707226680382871017746749021982727475647634129688692840822882766411853050052601885116198360428811828696580028913188428550832015224006135699006902487214989124494017226473420894147758742466247045601447153630414677311121023280921289861175977486578590428964243709133984221413890684838893232822274150915121947867112231436261429207544031746708294026217116010666955292909223797932369648956345019574790819567043521326380033795824520578718353614857810274247669981991079622563627981544210726577698833807395745158403649096694792090911914770445090264309722543127881584069541066851917268489420049128475911408896993046266951945474593379030938254777193590639764995250389299034516417683774656993290013469726898184817337201367179660146882136104264688903791998408377455296003650090323287667048305910051398091133935490293158848466593466219489203126806175069213253932589435344122127219986884201346426022569423873718943736709266447154269918745808534867522702880414534739316239859736226481220640319768118347228659006474312661623926551599020475863779243229180178092588012005928225323091127456589920654955783489395389483822486255765563219189547696496709019203698916745833934522503888971592465717741767749788333915704787416773340016988352593353611033204328697440156988100099874816352919575567517636111754893818467509825600461914584319365322802238757482430544203812130949280165057386676615803859251861027213885669351846893903130982212309981753130656879825336050992813499733713694461616312648500149553095137036989200335799198843848606409531821754938794275907178398019977769470042341622843869458472533947935664825330765892087233445450832837682427371250765228022778464407541633109704566174494188165728101008088957478159049465275935728498453673493961980518965443819384819996199241940453040919061128377401452665745728650074618816685097366458733888943959762621270728886279639180954750043137556111265283040602047720581429124665516031351228819648258296967046076934921809888444851909036903745698947623299607515948081871391642935495345695549731648244760488066014314295673536002027952655537885484551906572901525728938644968715779965679543945774216777821090592350039803141181912173950524608881426645134539970848635962555230899709246061186016959570158698939222715350005580495811344546242776283227847198208775538834437095636127030883605443929730485253539053636176737596743308399517310775293604547810782413626506091969984343195712732973514608454791964727529013980169887013088501330732021614836372572374727633755468052683362137912015586640150389209823187902417195485065380225720089451581518763918693671294770622142103679442860033966089482843088777612721881040683870423297301456490080884996943313270267477586824439128135959798651119401845988720964683890444936733019520796830828086857706240672567110661657770509049504269721087038822858707687378990659212424930431114593293129345488199430191810120206209828202485651985013622484288703810924681426398854631852605216097401595188038935553045511248782996434971391347389276563912969450761395994990406998254660167233616624634249155979293921457480707740665317751465390613889213224332690336409947970896558268935175247623752722192201170500166644025759044011123315819292915809796972679451224477796941265958806578657271287405748059473406796129134209001242494454226308663231997841435662664564723265903861185973062345110733301717480874805552426750335693092324935265720436030794158292099070168399386599483394430267338712697208082116696096758608355175157302399268922204993950163148512786531762591504489663954131625213304846627206397578368537689299693403215671491495297546394132024683508301238078258746538573995621573802662457976279668575847788243290235049700107915092363611079731829916316442907242108175838631055687115604533137097582501787388633776519959984608652403885468947134913133833321427331789640765983618206695456504720039599390749271379374274134453533186766533821214822494659480333615647746974189755841330142472593976370805899169424345250926714010862391371712017229437133028041238379684542705709086226134754424553908228999450480771404730125201642273915290957809525702261105393769328335359619453082199270949503543755535930363662726434411180689497039013017373577083457967076191527610538243326031995105194436429325651365623478671501484809648131121823774479759331177950441233505231791032032750824567137723483081513967660174212146166919170575405985613576598644677969871973453935942752825926353573713851599863130440812470984127102404544118504422214958924995474160116749435022027246807942907984173548400215735552910355867681872574576262491277553307883100572127529684787096120090785470105096236690220413516711759007317297414741488028416792215161597377399765465801714713334865872797842097251388826968743015932817324197959239300066832527517632553326043323564076953552761328920568537865775423666999717261824586924279667277694149202423255525132956757310473210323926026367228100882460379034625644036056404739445888655745072077022392678880264211919622327329974468759425790910549790011137068206450858276829206386911716654234615819738384285292341544228755112310750160032536514106352593175991232447726944763489269252482816703124342658877482809954813010402180438939017484451547960667234563909813875347407033644754299119590496381082368531670905927999437115853781787235071641346438962801722180139721269876835974278176489666936593845914121151790851590970697349430265502474023436868454173420480985495912080140799801134838103935964168077224545495789921596336757663046433255935678937380316336084603348386013632329275765647620838673474336909667746847874549205323765509282891864070670203080834608262185681418305521895928992850680146835732131050190166720129835949696951354376591631186895340675008385427272323844401250637170348387391388054802374969270038142951022827036568690434241254900056013616068297026773943188906345273897730019576036287201470701172557480295023211505942762789691348555503854166340549132459137818452552318737788286018943392870698638396458302555693316785598391617154489708500530396945451642325583747868198275473406823328338075535092033448343034499167595002960414371662874325641847627784771131381849649799324426641953316055225754574640316481697793099942496088926425008434890444081130777988677234628691218451016508570827344906409289363521866446444141037381634589551692963017427105019671538222421123316476703325487873130506576550439819934827446966524566817855909500034932943960368869502017695624593609662398796341438389438986826879082145348355066944812514864981501073116134181737390417622466500291980082107226970511739979633513076358461631137223426897731363529208873485145881463802367289979851312721410318396536252661067203093081550744052287025839747346010211686845223814351296859224424863401444402449357507806644595024865227330986070048371268806916797073986886162806659788338351951384916821678502501830016097384251271457524602312853153996029916518927522029505721202944991842541701425479773317814920047202605639698860127758827348521533490618388399899801729589575926275546737934061044418755474494224576414722001225176155479761982133947298381482178359996885078088182406820310131891560790599515296908862012031772482949821236608719902803832335084577162110025901303528990554024012907183550720278304524042832352583794082643021260568293451914380634244330339159601878922726890591703430888080194243101839776876754476318891804283384066668426511144385338243461901667443436543772501109756815146824020946491370985628686833868086892646901879921163777485725828621426472983090581059360749781546217528798575223067668256910904358569847669393551751466559553615476313885294963528893083857844274000292813177419395395180917583827791707979391951660329364496116678943191271812872282905493828389622465800271392658964995208509659011139180771905198439724446480075432281035988063567393020133410121703305785600248599482572515751688416102850400506979932265055370895688842785146671212180276848705407307955682225036746337335257321140309103919635720785598632231302268889275846489991641545879496282681209548355409734698316152031992295713106557200495950937128112547089612689987104155757743069329722048028902273639199699069574296257638800580036314020087371764408870631148493234842439551558310305577666458691547627570500984772922065598217585614525390656541792958012539087372024975552564389458427019327286550918403102808356175962378970636365751799134665063937679837742139632525196927133041762133091129354058714911399090238669075654718423213356362627467244283479862401061213155809951515063602856012696914996286225005640731693770751922751156159497086891369405211138597228508195736059114663912623874625688646584351549125721961620156995213029331757161540238164635415866347331112687165440094941847675254094924282422367438125019614043072528038389118038443875607085255356848274208084066621618762766111414948184998570795686164782883768577611240689520587397545945812445065683143854284677382263295434579093822531880508977130814330382790076463270296201972903231234149993949967464532947689570487795992353303133280964894589246070768487845907171745755385438169137790417341623162653774034614812612714191083701251563746706342173440118530194495842109550555205464602239407385864930748309006151163647092967562573574559042960980271948728805035998674629226641599960292497795730246365530773528830993195580387061850502923265598983140757823280697140781147981927665771614466405841329323220590884662825643161073148895422310970585189619285085455330521891765615917114547228735441366115499676416033782600197590550170109752948867325131725726976965345002861793874497024123404903844543291997263008033192329410290138429824464185502888774958268345656733515956276032976258576875121881779395104754827355944256857524144960263975243746819827248685328367365383182615591200862163919571664720115947701457021452752087484505495570796289751180351087024152614493026232288592088964794000683719838811534712670608408892934402632742090571083287729053184398398320403101602626989204059148657278797668262031462205281835670364844415587745091745402187133455024062369133549930117398231614062537137122384438010581982070176344808894018761125332277482410696336496254353318629494923883497679272792668087642097912935552542053391948113418456456402532323782465866687524346700954662302722974725091930329841058876772110456872726316597298915420131814236278290124322358226121450025293805388694854818473418242384715918296319616600271579693033594194208637196715871064520858752546847474226327176997106382254491559639074850917322094839494220051595518065825848655743111120615160111167572214445185993549423201533338758474292526031421252442199990788202859663519748602095670876324677472242609671021687545264313975283535014107419659990716677073380214323643369390833434283364684099354908867729191574388150682737244430615010564458909951419676829424856460945784916980198906118394109128879626969694380286505755701855784233971836962777832080057408829634717905169445430881954092777148426879086477975487528466745560164046505522435082340389473039355743116844269822363910055771154577268595407059620112552003353562683333758198238605430280496927581417638486279814700674109519043639256671281608694796129241529987581998450213873260282755332003704772037132260082916462367403867914323638759273923388998424705196920624310084192810286585567201856630564867063678035234732762977672693691476183508653758599549592066478563142581246221864095156869081382000520464311174169397384273174473208820219689123672458662065658141971725320211266900593038748889758205755850754434980422761464757120933025690381242223204937771123201882182528585969293279791807693454239769421148452498773238074942015107881707894221572700989820778966062713759939139168575816044606166699537082087630609179603648742966198957300902898063573628455826483303790147126095058287596614762058546324159768528304280087172391935196270394075900152159793363639512830749275071236862219676693334124723019642543565171199792004976532597649416963606651175008269773161351683321188115837493788507864511734622656848422309139531760266922712538636421564685366990284216392886140095425449912680703071764136799327557297344201861507048828693018330490923974078594901618322504047257447344446255808245936682915380079162044608543196433226500403751968219173867925137121828388687532530909407766482029050624655388390222201726190194898326454828373527507464027409019654281263666577254279306197408511986956842730316469401961436971660457601539676039909412728207332562896118190945494228931007922598850218625580527816492218098698404480673154642458338078343352578074612760911192392229305102558310142762206472241642563015227762893382576391464747295630220232555012382650158973334800581758338131992364042808870668004333048018822110307503934504997452489527781330168016900007148440912174503876055489348998194023382269819251963934872769757269542523325729508010863953065293673795780268179684904999516648362898313004924878317099817340501812786284820596901882564823747885887042453760477675907429360625656592497554687416174685290849534616339660698853510317631098316176043920616849243581062962531611617351310721701524516750423292409571092666067246482022631964220991252088709950763444312768301208619709686226819758307466831778231472756634988124711732872609899266236912120127706801551691311666169362435097932825275587804476713061946285375190666321175432510963921766096694647817914486975531780294568479224221388252048332969112617642373682532279098935952258215678949609748031077751323252082642658041749374267178305902662987579516079169941320432378671781209704676370738888122683369735474726085471225453464292640252852673264356460862180761588293232048325678083360238320856532195879073030558180941057553428973989681819865437802293836635105903012256235974603017495526466984757574947883905046871477928728694295310858083122110340712137188611577084935972013042236519788756637590521504004405732169734477578109287365102011811445858157946792807082793639066839055569468274803789648828301518389277075882822306399688178028347386575540102444165442682187598950646386371764785330509509656891092828099817228699060200372183106822177228029948509281803247436838639029570899483452519314312892414718214470010912444533138310685518878429843212819124379316071516501533778817383851049301944990320634532280838541313206292289756572682114726510620826749479503683778006409184597612796574912907489126506634637342732771631354379706621440878582731493413545208136859501871411953735354301516399256189362787338776079509091335510922409746508716360720361320823808916656880837058084110663411230515331737847643733992893049767606220885467145485323983070235734641780501973274299966217972317613418947433248127659026089711536229180733176119680781252824675104806244100909159971629448371661237393858365736110700608311099710821325567346629783906302742905997101059502840125238289070643181740631703468315411304280037249089708230383374577351447977475174956354865863879536652278847092655960601200095851217374661917724471336653086088757255594982136017529848151951944008821166929614735348728853982112678421292238615486826211312177578216752621413614338406883273846517882839597723767487879724141653390993639845419635482003189810296500100278863246975050818597860927627873139107249970148164150082761830806116940057304217109604244811957001873003935696576584898644076067583055622374655756420491972233929934291796767526527025725167680567619720146923159818897391211889651668586416312850819731261492902794751457987123510061408568196439191109701086233859782391865926435480860115993602269797152912630227672599787268872807757960970722736497455606016314169590837111115802056026693593572026069235480707343038041418154281453163900055526464531827826458384724039390971539554120121681563200143278461319263349758538835963425344911421321385409585890124144287272807450493930863347885354533746930946248568324587174612957954709746077979657724410613072561759534771105089965740887452386081244023489329683069831023959668229408050495743160462736448750466987129367088681583342576117741750924630149128986020983266948861372639731901038587876520571303682174145443603363073539211137305681183172579942716585575688111041154353830318917563981400084824648594461066835760214612472672227311419489351114525302423929197515174316778275837450544212126391285707243959141395080937901539718531068926345061701673911161705658190243904889307889534111105815272935050055833992119984387969760132357853062088801454807571878067567254419075714458052876685874293649923499233021890455507080107376520121118118478787439869446878292322613114102437901469311522424802261176005050501243577661392079857472462595491586451302568103351636238897115824682357362978706575725873713112141060752184370175421323448895760544132075773156606148949374989001623991811438394116049980256008289519624089370024749042748956614785419382703054324024154196646000227156812935830520107485008944952158093728205288636290138807359772080750596625474630170882840762845974425279932208193486350120888870816613490222172353156982319905166399293254430933731798987671583870690913625031245818330522963493782696055973037748230874853575243652705563141565296072776954102709742901031338291696603130879507896003325173941415738211794974081165883882023361512083825156025395568365668214367114777658136508661042325630627510874144872898935943485380777382757774563779628686638789734368281494007361867461554280247956909172891028051850461250446713644327433583925037551196074062034536739112467531150481277869705654122567471924037131131719673649119881307590427768034915974491633919354173175569551724651098047659262730249760204173173815817281870071355430659191768696510204090248686529282228703428424740423859903938956528627142771557080185802716172757551240512033358014209474261608953574388003954909092682199306249203067361944099569276885061144610136127109684164844299752395825017077374276343083375855177394465788328693143935239354483197585544116799481274569533222030610938181796105142902657731482588085161944050904706327132852595892040815673130253016014163589069650318005505832350607290846839980741805195000795263858312770853674210070044472076620281290195514655950889697846601223830775048539237842754093089416428310056023230643645381026696546920255123718833541018640510657393369754925818483536199713668675199549459065810190269118040686517645338630648969580317428763197871229973254624337680764058688152182285699419703181248187515599229820177526358060814711699990703118631411752080255913022955357144337455456473715837796131272982934555952032900335219098136072701683145534097884088066545288221218867036832252767637629078244487692858879051257095727464293304444381024699907389991610438601505482647685917035557210500417880984695467829767312257454228292257111993172419398134959325710882268814162413549918285137423287451988013045321565962181267503441339368556716798464011218434381111014700746730846916975642959310412091299591685878964860682280899002483468840369768951851903149812806851843592812063190081467684335457850131548903357967292844695629349922769363907621759827207433022264121603403731787492603742378559563655799982256484293735306694469481400323937748768380527574219873952872252062358642563026848982004133525101475573954606925047479854747275266163993508969860998578938575759409985368668074924337887713590777118536750756350577163933722613263234860968846903601124356843834837649766357327301029418592527876810707774292390425466418009236169777900260664059421164933879115506355625865141173249164503709999204638448916092193424543590117354529523757709813639122407737106356499324408375135010198378060707940570302436500646924306986461622160111250514238801216762795051299437036464489222541627900486476221729044812723779658037454877166800697869497946453978376714986514208326428553398828891834844610442704303423354960727909559954368209631844896036335262231888177958222222103426611875001423502488849334878302054421253525831232946212494126553989578959686401589807507085783129524503177381441560490313906941588084830292033328421421084836916081650596010630452166795717836440516199226599776659580093545148413290124302907518437070036612004220380531380133481631187459152173191348836909777289074055200416767272439182468946907706176035221613820453075258828695870734086284725558821920834813774401272289660076771850793082800497959833331655327684792116491998551044868362929692612252269288453330172476147035748329861945983465962161890609547976934638775766621037346695562761512534209760679094823434854013252081064169027074019893595399987207242485964029172080826600149636684102508232731179452762770629239409739171762462344174319353007477880104235531251463247163832609463006011169745204933904934950224997419869799914040495634036298352002231668023372498923785941037834256890232461052643998935813955982622329231417259639104016282728100301267872341710945004289299595561495325418396909586822537768273649801067087415592239315869190320616814297657951960612152989523584639663957936961000523703800247667084467487785013156573356078938466224222964094557159523791588408550690242960146501129330315815908816529448097379143655493267487251580065674160516900370355882567863275961546041035846616973563033571091910138876401806300890689522280735674750378857289108300699108123076567237662659786904502360718048559961611569135226979999284950575561822188033921157300164448530867028020585386568094806393174821279391109336669301459077518029249956328176800906942968647673201426635016249319539878608518542353539143404884717462458112139202488803102885822263235305069252521836097072526058834024940460579320587560144257117046499179735874265649711284708316569363879869482808809264239287053104350781627622117161193405205826251229894579204531243426191309516492173517671242830681921049134341194768902578023581347664431639552239897382535334018077682298580317278968950404622270620547831983286842355917167557454049794820683058326545140031855869218331908516543505853431900566149676764691612426882898186885076826238318699508213821917455573808294089723575184342013163234629101445816851388543718892477038786487437579051256307028150034250108787187927518555316957396284028581546890266976134719994467661152523304070424056053554128906530942243922502844229226305258589143162027784004101594683834507901966668981659040950173572906782561176873670926083594032491434352715935185725592970263858832165610329718998828300927295404264343812911250134884407376674768033522305529597274028929489613070042568589137125728945940142197005989261319383320029433313192438773557183285932350211675370093914586867854765895724005131114308751057605123065505602740172090911833521597096391546859134666568382666157202314816007298262497398208572232340980137662561694620580242095711195813586548143773417654738963417781162490693912077353516159726559545254243358865912335292860141388826376243635942580944535954236913974208492862781989101248236028690538495586759694918000230834800920718339318815422599684710205173795973854592858465953236516243552542482675364920431794373167644758740111343582024868380175921496866702808181940575611047158009339803408036763958966463794226936949988938016024087511886150618419164785675629252201047052006187745116933490247512801563819144169228715992646352513457090282775957073432087940818760765112380029812281214597613897291398118817391739020184287832793753209004021008024309263915932598316303222722069122271049459724623259299476856535583480472599547761337614798581252615356233764338133302576048050701454649667895928617396811374545252474715179897050901601447223276622595719325854171190717898651259122956449695386804960284439320939833623135270370886044474462938565634596216392592115219814686351520988151407341527789288740508406969164275849635236798471639980718530388866180548655071226385425748791309454321595470336428059484610321880915362720893145190667823066481828268062621948722725360871590170877817409020988454710924729949313415965073881432905636975939671174940546629333608156782131666647202990614207170178287501175626289587047432270750428641105492278181110432847351343876542346474407140803908485667065969420415168514406644771344741575665394710026513143663075725711545298067405328623294095266546129402162899552024692772661584029118744645944272160962916258802703812275234506885684389364020285287655444585657395538786997285796512194283676047033660792665302233360468341102634267780594036080667586384870134429093709495523791221953854053005972132535028555258727541893987844714486884676583499354466804778232979128623677132906584295624977462711008125990046037168588377594340656130562986970072906605190253254207663155880657332385652698504641099963347918571726958420185787456855570261746241688194240492389931102538360620011943222500802873057958217464671961382834394367306761439816147885363492371207621295113696336977650279617082859440655565839039866061300415655684458333415673317454955339884166445801427147789207447519804385411815893651084257990141976562400806988088994902379008357314658648080098690596923134211021595916125637681086477415635852156373203011884666291416152046674330768315947756919999268401720265320952137553377572642469690897452632717945678290887766749129427212318833624311736379479648116696230637903200854593646314763322382791445108708839690359363900256829080750443076837732947453979871115736517614053882124577505172163944367492363265558340401935695057522219861040912113968940391071448701612115313654941886391436551096264161896572612296426686430025652038130452526977405893089220604446920159893240032910591960329875581768147119372904917964782464236635837228848946942053803697919315155144006269987606421445511992493942346526491956576425582172708675980918565528178056627901469684987438432640205277123676451295742987764731897294944062075396881503544244041482686940083924391574853523079385769083879296044485852732341311880419081868826669886800655316606459528721799423718224384659510690598824390716487355266866636741497721163592785763689907139864338933063126384161398444891401058525200722055544869750909012525614003541738917930197145766593086036574147157362463412064066581993536880471643835455361269619727507454718552997744870843448100066367668441752198570842008885351598206770889418140587923216329248959748870257020409638750511763991309799372391791326238402121584189577667294504772119757059654411293081709855912686760368599362681883601725174262025748534193352107673848246928308663701534377887180676407294677218893821625854916802659704367376068813717876218171398619760388641656634679183581828424863028243292268013599681285953698784605453378227531177184673550690559201198220592484494338703464018681848731517735075785397197067055298000841333115842639110126797416604808296892824788981432399382164407915488475252432688619697790538870611243571464300529358280931176241923556655702017084972976855025656088500755775010744154548613252739538802289337016519362744889974568218753115841412736047797085452465493067190825749605593289195894419947614253991443624536973036020588693559131794619399700517674633761731079765203888792339476747877320223510497604201071013192501584892105350554442184798375804023360050548949260089423672472993713904982678157152428920029859716900857460724869138666682099192537041730330885605230247947227659664430151490155030028165064358305652010585504304118304009047976223813731831248317559970247663444593460102365928025351014020634355850145846440190964572648008716209197441203657639885688681857569567092209657953492463420692756129648461826766846945721181064073067267380468548392119656155812543694221008552809939614707724723107212288874104912938632599002413192462088502924010693051992141729954100111610909175657125993808729903093743601531937037043536242312743505058979995474872012501840685031463111987074826624448991882669676428493702747101082742280184256272416951158920990111892484688338630799645801373375137841531117638600683257491887757444770742902863234790568381826842772265757681240417150973530175057235248227174563690286526451656101459565318401350790999720197500906936808791392893851801820147170006999572857806961342906555710715789606105837199942355407552767748066737133728075071820776819525500160358958447453710422108864066562889288479413923175017058983906292751427005598612915401590788542372732403662008386204841397819614189836332322288358835085356543127750122485089472724923489843622796838080242285890762899205925038268581196327308803953965790611737296989515763914736538981161380145031284985608341209987504113461059111344624996086394001567706753389429003415791359511583825430358432824847135304371248845371175127938201689992504239280171531827474110935543218447783118461601250321448861798394785990359519237472584078960385101995933086327605589610096280874008257893080671631350093901547269287359270717712355250755256635526907842389844429835518057038825289141558089587568627934676672012432445000089099019054520410576495860123963234981879626833963539001857092778227777126175597182387027113057777247732607547714590379402999506061646502204905389784067135373945959465925643113876941922430366010145999367415768110451486636396970107954660463844944210842000575558104765659087130700251481180110568166631274850196146862361479609989290947017060213832171915603074094730853778118469059451977397520725233589204018578694065075597749137992797525422127267014133584696266031056934500754081416965033400862553141731063672834213498764447664995110297838804196945652752916442403394793817014122309478227840019779774361328305560298903299272927333763375050490559638008777761689296021679841288453724539683014936604859756019534676451955200423831116320516909460487355251579027573517974556613320524119272112594498546669130335482901039262153880091670737084075668277530349657268650992362711315353468702792523617919110465896310592216392991836369333809181977178842870737056920342492370673713540085527904083867214739056346686890830036212399795704949632748246556694528185490847529612197825007877993813566273599805116039460078730385109016322182750169420678097926841234993822160764757934356840733082065316226926711029847636596362577247255020599176001089127250599175528720417644469013182633554415320277799778678721771760098609996361349179635136965296618990042465340383557847142130327435835812416943620698044576041834953868293473436362588794110893854951351524313631977462905657802560801542976008831023994793465298870332473002862947649619683870103132388459533073355321933728624152285428588574188276636083260704313190240839922470799852423018850509343197519345074008743694752097558728490718443962280512248739521787538977602403598717090746857535130731695823033446445475856982882402422856090866082644316162165526218028860312684963009223957752614897694212900650007193319336778131048351979820118827368416818932709084332949757729474180162499893230916352119563279241644443920600779378818795130960459712866051061195619981330596963837932699642892975461486321839197379660238061575697139065158560681425487053814023661115109337760022509284339032334957868496290752108795243809701148494981514858071079622885813889900875828231279090976398333020458825334632184361320783709474201037030589025212060855066411122347788255515184530635520509336377802316770852522122353164345141507868141732761150694052726750949881866481360157786649208076510822358609172665350206216056032619555272517079396442757720570535506851147490413746628599366249363581844426254705962362066094596319532176266745100215583861100988061188550423531003813988915595121957620693748547807917593865833473853825246765698828922585125239604061091310325622154327976877214416234457146655411027232425140783853628851148120885204000776327835998316302865453923540212205601968914616537952787600641037824910082245100338340491818519992349985706881282034518893867094195076996518331626197032852985657762290044042461026509576265708406696476994840831283161161712225410441555194805893482697120636990696734911154471960288078378468465214391301289819316975125398408988704967202706478546380939062415479920995853729185512630503366954857207168726071493926489291004713746023512286170892086324826139933397629588397820699764696524967923978630317786512576652429167866447314155911816373660526762850371171585124314216554046636963321525076216509664096813276240612684590189026715293077466245294892417063116107894587156485254311589680002982986771799735777541997446732095053834078308844676045415046513719237206224863340447486884576817484462787788467631989089228208204811719574910018955631598714541126775849878661914238287077742304678862819069270024533031559860325076801259838759241038566936011615164307018355529926060018727741681857870191825820474439060297878779655177371740537910565176276711430919607452813933655730830704276559542854689432757974524862942056994816351687111949340128681041060169759356593533047742437362875503680451701938183418754485523332878300064720739488934077539417304012513434273328350404254100039949073711068763212662465921733811887938584849159055277637229097852917639499573420837165130719336424197617360017370888791721338751155253270036757349160516525030556465827336501989529645099630462958983092467918354541455766786808614854870733357054097846907592122703577040898155005164813616072079084588235356652063625081950795254783779784954221985725287347349885129233877189128862252425238795103387822288227396552114049005237991245579563947688098960493018184472892270057119469753344166510335182902710735619993089311879842306293128283329765132484269085653592361766356478899744948314026835732050681718980940678852373097249738173032310099943446600056270424309720650614775215206720113418267885617954970835733784101473238417444614597525630646625153491617890125706744153385222961679665927334301590902102431050223370027270103025434959121091383788644898102918589782339070077202246933460096341381539727477194876490946062299000578627782648596861027996421050639379048185421930854466505643356676480707739269281692041898996181765250444918613273866915714384870466269278015111941219505300360020928226521471483713019797290560415679059128628543743259051168277485827716112314144882551013797042418670129254787912228861879515380728391588119935639599739615999257290074429998145910804191886298142177959468615502666637690060420420537703899742844324476175125223913612818814191114245448422091015486769135236276099789338710269707232401039102268274831617852566762886937917040211060575454874714816636884357304046804078665635380719302605726701372058815670352607373066998385400193507613002795724024268320363880244548461148497933993610825970893056612715180138511613916223444661822619277997030285329334263419338235746940688023243566423085824505558882297219362172381884197501898986425890557722121097398871593539592515358927279217473840909195677900768301892569437314645440956352362320565440604599201661311014425274872173979753942484766145286977304263597461628131409113137034879369813031801896999275935656906482594441600384835374452063870860037619258755930422667288285813647656382471094214362191067424882757410509675147796642872235742200052753110287976244142275518474950156357548303294709911974517073325264711954883455554744860800875785884239575576275549653988899200244764132703627936800399795607085532335591661781418794196758589554156458270413910757752643096595798478576832408799825900950766774518873833595251778421170130031463615431006964663545913400533525005835547696417302499856464729619053975684610353421932252031108969660344848262929275098422893388288464997337537946413180171182029267976894451438447499417342516836985441606760777914459663306331427482646117980675930499391959352580387036649745235752710984257388772129937872794204226066728083474946230617661997864466134911081159907358331538082769749777756571437659307874937039390686380970411726081598375095679546521081303567064657769732648060170665420926183526532962513028819060320463968473255241196933278686210680728017693918537258106433939170808597415397913006268831892253921699491139954154639081561706869307464621652415779984164730745899995279569611415372430695962916756520243753681528616910244741133427329927713828916601227635442442461237019256716797955629127496277147491978909964590762307945963772806466280767575863767155987822394601033153475729779949665905869420255361625407372593755109453992980856684241309602840622006195553632601359845400971019015543300019254963654480148609520381052006331126027106961334169626180706886598475978136942808190893578686660262194739311700769098942187660304699801902810210078316077037149512541286173049115186960870823141147874841945402153975631297893862824177854664763732302373349034909575518435916435342108007261055533601858629610460868699624747679532998750521551164990364067750237988128514118939527796175180749516205678554396848010852278921851805956684506466942187211918349839427215035707704214885459159430279659831476880066937554831718466247094037597597684439127801042843413054847873695798866155249078003816055470584072656089272428054194069212504795076058553771728386750221428554651440568716702057519187558472659380925778395124658828137313566959553005450560000550536476938754336075326999045650341506892924758681855388966936447007197381358954303070347570506343320585167475849106958468746430183021337558106570932793938682820745579896865210093055296866322647189543723140052467957799642058193505961669574472568381332102775146625634548144180053457781176373736995744661419914646731864027205698968312135209514597173230488203305734783615440903351054806482467921896735922406609414190705740032295301870811972102238884048793638384575205941360529867801935576137932295513683376410675752677062325563360785643694183518995799176662351661193463143718525164149126776912135797916228640860652089636456119652655128863562933102048473020008200571874245882019028713350502251293623442953895077155893534174649249013907072717698171241698395723053101491372944559445682349803239941044859769772323607710626496325531048509230365819189692323562308207736073337226502347009520706583190744256973496163769351907153388831026876255679890042031235061406176438057816202861053419194871846124886510557265080211866700093805501148089580998978568483957440326481107771898885400216428319517972181106453306862438405169952299793598389920303676392685692186375163797177850348417002029757428908516209428167317001813861223339615924816585365939441599933430550808818818254491736147220800263284355257357916925491317279331092514595593813295257256795285717503883819606237502728693360476590162343754661419702388486700423025226592456838810936945860598552142404094579057126474952073585889965895299522175471476802637649027006401323285706738251901478356506753238926074291347579033611782003517237672395917817170828556383627909519596529974823086885696109723817265926361382286613014267416423322300970966288518383838595685503139236907668229613906721832606437879232462003805788084075831008777545319495078243847041208516691746979981548528531942279970828497342491090165016319300499617754760270179054333798873469597928111797419425730921982485503237727453164574747819171413233965047505018987426589008990053466808762803356572690732215078285563325706074017795668064265980637962045451928425839487852119573956752349029378005630144191575531057498514472565465773682378947271307373747311223706676325032103881760995707745493936470075857315728355513174872326014131546058342027334308375482619362850856040576432886668777814767445416232680479183634263637147972685956680319086001589098744268153039285908837951229842771628940045500756855704805033361656091971846826624274896577323619250231246726541072967782375415158360451421025944418347259911871649217383898774290519614547497762837174509611141698305537196897516639319706497289104498108557156905016143818147652215946630434370579536236813903055536580632945055333314718580390390750903157958460897409923752919658628064615248042951150041533607959704981935431112639841170168068319292216661981306802644290074354401953321733085685552252011022741163946398244573209678762673243300707178892358975340223928755784569262811131613044984242566687063340806493688348263927411712363600698893691297245279889751127229650560828268005385493562140695349091379059603879519588744535116401010651382881744629426432923159605649758639129137593363150444865991800625137026165678330067096337003485267263202196441656173952296639190306238919757197168193731902076624621504643265113298038785299293768140635081241073291117307823183808870619989928824659949164243544486682010825803018842687842079265210032804899272485526147447608699950361485943023079204476130776668375063626936762502922691830918903008805262743536841111955769917189215470739505038933054314334128491765119022719246103728222964229110871952103752589616685746006604566655613279497711749078829278416137755850647558448086897472129051372896574285354331637848118203966022061183444301353453144450896828164028986955363611905612183776271606990954366395694991548046027583740193459625468856631116552549288793087038041528336248278543323096794247767253376480638242480588946538950883079474969552717430091467140076637339279208548263387278179069349870100110362716963662449727039299003964011162980700736443288452984391217772735804499962201218672116384103123597504217365264678718505926167488846881966033276053833062695774075524116540948477050570740815558228274194874754397139888182660312007593473339569071531582348263334407848566461637529200000505160693709278328409444484447837129597769569248938752956137996730198093796612913873711922347529065869829188903863028275000685625610562192943971160601480291917969325295605748645014688386503853061688017358869052698852961027562827618137481713169056456885677603629597798332983613811399755067917910980032901657664502200929672149794688240936983532251261295250741496410368452834128944843588627906191358206329295448247169190785846631630922012032386737555019004513407561915247477339523234777598256602820599502335541147593083260371985402018653972752260717213702761271144444680674734365450851453872654762733860395795362388478381374611056642992759232503186362406459934453579224437787607174435418742054767964791948527182842630625835997054534525778401673392289044676399415254606647667623580828377281353240663781773277958400841614779262511582241353054768899078104380875847600594748934448035446245169674273131002256757144390057718892970672416344281621169074090039100354961722605903404746272147637803112371031710390780743692430049653277462055640427431972070082430583876725920607414186511335479007082231245704873605644748990991401830038845398376856689299925296614878015224593461049434158971823703735058204317692516649778363813291736915970745510382539458395907355917514687694645673507976937492589854358182840602999083581863705858990513849759825584293831002914640757437999193793481421561923250520776410063295934539941838799149934116794634244869054385682133921357780393756066442268172060603176002875585089869339737021281851907366672741855423404288773841612484135519321643563439359548274250163948789470828680741427930258701709149845083061860219786898488805275001426582249657523282229083949563506968323072374967640449653463110050169164480339016384223924105932772802085656537636674351413041775640433412102899732760922688935717122432722746445829684198954642974011085200967084544312896415836448081641036784606132964877830492839207801672404174033071108938919873506356801187833029953245010266913297242650969419224718373540207419825633082276793575716931644039548858144874364015183189202758891758768779225363673316095519631787016249078921357277494266037401585159048881115322849365743637764405725970403420658761366047911534827403612903695511993750415924784486550730270206065549953684150177276245444077394860643833673545134844657992323852623569196355423293911386633812664616792989366173044057121780039268432221907562984377224683817568647722603347774181743680231961683609727168246311980486252958256422949337075331457411050792230927914938111639724353406079709202610463116460247175925373463704194174832158266944116263070324960397352392038772805678037977851616628546791448859016440805193468498515164177240092346119954334233771434432291908120126806902934474144481243219081371266053527788896880915395835035303218626182070615975916966419393463854245673590063204146346989993924665712664103671854714158773169447137339055017464639648090802533707317493600357760190008734633956584141255308457927851249302072263238726820828880181483725081392072439972283705019048491184218664379745064353814296122186071971595318400367413436686942240206191195964124926036950953852362098667235761527491082809701119016965779792144187501294162500669925427581386574062979912933907743983587382240826341720922073827139175194680843810336360216845296746437563743076393484549449769272088438611194151674888803948671039819725361913982437171461957794825826205146874338118583115094440052659385567854839685539061549856201989896311937049356168666905283352899444241753476684331596693101819207435812269044814888101960242459829326764079009019719650612450755333096540571435594481349292041952367645916340734040022604167642765172616033243250026524250671602788122127429312438603172131983507345531430891280821930906467248293868934034404692796555507764973076140149127491296630792458176657050981408475253050856731286445388227234940794583360282695612428227298041035063094202071113844693753045424926388239857977095491512423084530010708331848438250808348728773236141794225008773052934594401375663495909923889513542645465442788503385217198023800343799127335086762850410449689134270922417505289373573220181130934948948431375883827448198592890908851200028890976592854540699944536830817900767402263114311530001233322333832433978465439209840281834622603179589848797120931486455576519434585317163968910355163890469271832185188161054829234143272201061231250510789783937975248142689485360811516386447426798397554058999267896388263772715227766786204099738737350112759822731212325034014763685184389449233779419644483913909101721727187282073718889552788699444241377533523570739954656531092502120340840050803880514338793103584276204580990942485631765189227861133184183818364553008764163475804182603475282389359125270520133567038045634248819675004283809649231850272651367885866341169287868734438353542601459035391379073279535260032815999558584507200053136274174331068167109641496642677404175271338424600559866852800838388010082067297922455148139575698484580433095153644113217447441406268200709825635173029406173741360682375888436292831462171725597595672473713488949815856885386117821227401531297296345851219389301069247523191355514550996690645640607240006510818490168310525071600384110635474293972736369763682879653421969119293027755632516126398224415081520841525430703522239170410309978858073931426206046379381944595440627201625123911586347427356916555464037983237715917153806552582186510308162199440932301674361508948454677886428689923073621081080593624547752454322157802002216256773847634210007115625024148829564027069706601974386667397799514350092365523040056045274248427425248046519613911564806016775587436262429907292451433697684102218246399033598099502797108161251674452483022169736240318805236164848581810417360243691909473951424686509923215011904257418063280825626791524500943372217622468022641880918180198913017978801612438765156972551559274366674198541385935028112878005410467351147394890278163723580281758706694311317584408416769918732423076694227320991638550619402957024061068901453142940088000867006763177626015126457471868314484697750303282865530269553348633912025091495174917324809650209190708365570893095680611358721778019671178462617689231915485883899534317765925360058004445204808887625174679707063297471387739521181094783825621981723681932071795840896407752229924777457090257920773888863207249690726323361970138364635133612804459140498230698827878379806453146066758371476309193596031052236790062670704483729261032906309589781531964228036581109046285987261577668089533235115361049936371715018089423147320935452096884909995517599628427816329900142977837130210753598156001173174725668129472163830241825855052301474428488446749636015192631360942377595625578135932044111903328634948819032746374964830135563813915559600219682702453519654159375577209324141134565790398361531201574110410297036717742091958833546349454856779984337629966501546038587476078581696439689555481555325668100975775514103679024209753176349514988206109106236567499986418886831137056948105381840477934621488814461544524414453964313133893048450915652897904996395729403294248266880485380145195941080653717235564927623936097704232800852676443528411179960986594527577773654251539387843732550066724242715273415473826257624390599315261044330391330210070145520260940327083849189244886712308673135527550144490280715463816377152673566158926700191250044341257837859867812565877367789807815185531643524227866721728937548016519769001568505430390937001449657770387429596863833836594028616117030751103207799533919521821325069635638049147666144712570135911413392216448820423720655641350934308461035489974045106314048085217348802997202100413558215693413214101645768211028101599282570561881416651681901704353107331738465609636789710491552689277904543263795189585668404160676591591620015928843821608451377383166642949608316084505402085883252117496841946791874540674843501429826728706953726465517406306888893912581449008148195539571567249028612166381100870940052074834934807691744292053826429262519111403209911661308190916020175489748355596203988511157043771926173890058228536467822446127599975605788866163231513711285876689777465987162627121163809359098980002673425148943264778755616383318162927955876636239861650470449827844857614101228706641975231474519641807006301461639414996398804173405278799278911630642028812216496500050907240760397022621015985512442727307068227127639975704579210431371720113990950824657871694448865505844534244281828681777211318635864207066568416299019695874308681439714207070197516947029943880205144789668788437372887174860287261509929859674031434330623024975866257856199972479684454186004084906805590949359741197821501162527254110474143584448345476592887949999088327204702293421946990218884669166489741985414156123173594434314742770263715091519851295567807749859432241448513942597253426849645046262498796505721410989180256164174885015945485945527273443670506961418559578964154853321916655040086033032650586701336871901596609753633860789371764286811806317392824389143105744087999875977719028132418907614379509744336573401549723811379445447564520278104975693681542037741371424759091147509506200657621916846341241569586436536510681395018844652595765176280918146926897746009251051610109458469337599101155886232767276848521891780711106454013646412656121725668958738996272206663738396817454229493276465929226242714100386792933942547484432748587549769555493915755633669546037447378953553912640336200259608187586767817809244054641479716082361884452426904147142579897266060742974468210566324305811434705033016393586280793251084496342025819679148019217996493561027492640435466374147591824850510083159668892351834149035513978819242144170920177225969546763513320023818007299610060805056145231988701752116085317074632484330190110579093165765078712424238532879229446440470856603887585392187232022701389311411618722930073811682831446880740633018374588571523252073337017454106186599008268213211764007263742303400355173433230861069187455491316869180080869640989925877967433968342849777956688650188737159186102480194291196303094027366810276368889174746022441625462099658055105623461732781403576078618977491233870876023297982134777020978576660032598131630252786409458618211354001571379867301003409325253364921677469992010700683167646119859441531965071558456328577662465782853429419753506489984735932320171387500412827495105721845326552610649474704960905629450661312531955600012873201498609953742458341007572067041102605622933949688832602247972761834568724204184625726211976386884584828175363495670137596949812260456608234997896749124562973519856066129444755579512282696666690295711745541402170428714191570261827817157762946257372317029146836190965626885963254227339610962381744440589632431518783101747742380638915964020565607251923422007550085102205009356208672208502261667799559393098791062850982679354161586936094121483674306413011419696420319887489197983888932711019049042332686285694343938006967224221206800218684715158134698817133274993310247577965661845144475610795606216039000513334048637377533483310457964584486932412338587836921628305359688890698964407314358639122724956885133673768171512091943166122711881252521341347448659422089271228072334236664229565470914117433590081309693372237062207432991632070691369958288808681378138881871919248027072362403586261622464590138155258567135095200681999226421381625514753872013026184445665865257931944868603181616354379362357797924553445403332711786578706273403535681733269651588223369455973665713105368952888776032976037535215787347270998770122462241796802836060150528702321392161027129206608281103790365218712133929065472765258315822264862386012396746406414454023435157812087204328552681049734654632843582605814811477783918531572629554684175504188777998503219747833772310822041648852727414302337916943037394410260235178423427159168797029959172281776724803328302065976477351166373829916242492247441141190167863949652543413094687439532397115841689924797677192825360035648506151335878035450455685659530938012711547734177128040193441828775285463423944014243738422831482872051085366746787244215460825173097799472050054364921419314258201112456433836819737077649489766148578170880958925137296833773128754060846005462861333938488781576687706549986354853960982786623374250064813438945136306158044671115071386815124915458867034373703531210062263823471796205765604364095191833055112867611833062909694875819727178638903984076217039977448429438407378783144734603877875821019997958024825481797198858373926792978238004977063840692232738399563116075346906271933290108882738554524948301112713855858972806875957234464902552067587171341603482899422995989437536774530373626364468699284764215447096476000932495659544814395256316036297576551559496963135851412036650306679694069051965081689937728791331203878306208580494841361903842681748956981391156546903650772553651664362268747293625211553578396248385144677931472411329406512473433052942900663430871766377364445828472961993709550099982149257852248352280882915689396163805397237097050016813878566594158390094039202818894354933674250567197676738445314703644117689521958863816942095503543530808175360590865946936700535449660361522321186421653942734603619281659631594042015754311170507092699377483475327985949434295383783250711764144404302425249958029394666821950549101252006103966720854219759638015057722499017818647088162967880101185026054216169654815339831060828201707328749369451395660157892049635703618859296558491092463291695751277325365050774187282817808728312480199037128224784721910252620102684676311090325266420070460718679532025080531168588104620905832148683378873945595198008165637505370399122215672508301699556414011195165748242133548357541951476318084931048477186955781697649501857129445168008111595074854637238358546523141395014921426653931990735119737543853162322674699643523259569440010106995902374225034665524341320545305688330518179770232700264628872106783018356196010777907988881398529873733844753853978649757551391537736710013242102216888596626164327663799716684495069479019596665376565106698642257531786872778079757644805196244484023015300943921809273071759914612911699209485319356714283434495149155359909156509884018670716348628981618836815403782333932302029191965594708798461666049290002388174726794856872331893044938648689273337290498788731977627951346615689499071244764377382672401842275831465052360450759644096038150217573784293812193424133183436197340606990653684076713169299775627034176495052223491524040402694342718699072331881241714467287302080700811965521697216102606906714912128692514072525638260716814718755189790792700500023954338988186545164111379776286503911809993492661760551886526610234653951863171369808411064625751804938523331994552585401589187517017262704240290832487659870661126574152782302791057219431490203585258536169538368539289723773093662417774606503519714097366463448417518820309308971821040947945172161438578705124109006652958212206815855153785125482759871560039990925209781044837600152001419658121256570707934332523631852268873811429784700502713400561736493755313683581094708547989313646746498441458629506536448360798811466302454766503768293342452232289225149000446669512777715164248314071703209985151193403392834137570115301013449350855031987352132596724525051173139689865599077380639094871435062234778178935993106832453065296202259037413215519239559486494836508385245836581563572132509945569591217795685392453096118980498641701888200047357831797950939010007805864112682021688777747298545039634702227367688547334852334398134911321842625398480102706699739601249002571286236764132012293926166560442226070317587814706409692935293897766087085265715544575232518494186353876079708726516855741015372718734835153722918998748036430421510415993167831002747525442681009733701913136874965625564681175845097662441573343238936070016150158313615737875316412375068812705591311433644053630235915768286174300324590794282306981178076189392874669225096510637753753372335817087798776583555686638514554429903568331228259039477098398914150072378354199593218133481644972100125247153350750445110736388629915201922959881224496574322479121194712547116535171292465729100938864401767703438742423217852491515064904714332132615586264997271238253223521120887687942934263588217076572739318742462214490108156845214378314139417587433907610951190857770257581218261364024969529308574024994587836474273491121774937406863951675205450069763086178606879453365849791744847950304368040328884945599803789093999709344975968518978023125472671310111882211299769434446427103131288562440176442006954370373019932231680608067024822462235370418013847176233480412971765110574881346102506325965114314451659527917775509176925728408658849635288418930014348686505834686454957706886653673500473792854091334699428968196232182636250403042640420304356773566756988688418602438605300114885744106860945199123765300658155006516972311160541491125876546231305677025431702471591959875595064405321920647136493539300197278856031468588011494457193197797364044378520051396620681914892656993032130674245812614658113790145292424283279853833605667486718371023191875417056961161032038652872271254702926345042331899073261616195777033305565049587059139144620225900049827295775536132888893102882734146265386120844728070853981561114595187609531258424945805344650427311611840123434054147103699878685050358868671476449191960191657370851421524138705061837609192612830691101788263857699373386057962291363754510531956699258125393830670967901044827481828713892679712915319816291386213718744843679024279180901234575370327798415084354258889166194457110359877133283191976529746206594174000772507866040700499556584648628837772705769737310867519723619709571234642067316196276896104505983414266937337585550644660615547528795929930505526159271701191695916627362272957751463177145307028575400629301034610150579527147652134785425189489162155270620353671656149247501139244853640202822701096702157830165069967198982286836511564531734121344301713627544461900638048847970080477119032157717520553372062369441545646734075278637275883245340877414748699603599417487892236071100922068897531682197086446229380679332832453259386923005162044869822338405872489777005688508685969316281089396945497512781878450461520667590456461997111730259679843847604612216861823380393519557035476935598847640170242932949950359099317209769414685742222130961739310744880475087544008001629740072612139014741512930872911873861094353221366391969770524376571296539253795446749824934388474847422769155124683087503391141988960469006540577043858250438427184008998022290604627727139036218603884489832100996721817217193599282483324227096095046568035667013955132455877410464529838826150018139652584194164952039086307226202562710402773661606835392765263360264590444177940525377600488611275654638999633001017673292699221853200088020206209931900668585007206139561451758745358494902096037689380172312813778893358606536577296468622047300133242699313331335727617529286618467074241279686112072977977888984943597057404697630622754832480327816770580768028906141681370426278255494461240330316260033252551357184341566425749241092908367103992510358173121423647816229797063556612548563787155021539825141613934615465611010010832555922829833558013212456590583807306272920370941899433175026967311456044111517133864225463277593948855651234449880995060572016828801960506368297805297799373096768035641016787872784446586014229692371513806671927139529193876341681321881297542936450026798546609446471018638303184930331570593828806457361963975173410938340756082248350523619718615032345410010678487995711186303280613861209538069514501738646570206600632080200153464825907367163966860246614654193158984774600191485047814581703531438014268777412339517167980426922628990174454785887702853315725446199018765526300106528434789500844786165981004793449528140294031485748403551148815201499547561968321575195314664491284603030554124596768181965271039974374115113709377363872016663419478369184850544638779066424923772558983514059946671905286766620610911473170008427691129062614877137587049922589761974916533136124228754475529453282778817363506953194768266300332682675058795546394308890265943834627209351562394239891356588036077006824575120123392851972713631339425033167147454742389040363527578648388620672209983599026486348465714681159807234236367237802240730356698879177996134762425359288648676538180145160390629522567372993918534961133535711091554468003731086862826770574561954313284670966027291276325519320049543209732398729536988342957267456810182192366393766168432045613356208280834633431688595513441702436031564068444057579912853519005393144280016589116857033179213268902623969048033881812680519796163492142530156558931009223283201661905172831344883098136205476804781935499353444848269952147659867051559271658260726440836142128213666765914739197637751842097778334274885361706861324838770776736829508038577906166827840836117075907114387936709288995594554982586471142800547171832694700362571253170867853431458715930439000914316564381251851210705820452349525816881988578768838591847980883588044105243907747972718679248437935589883780018965474355199841760186360669159012381749931574119949494274217728718003997517086793316165317903880824195397227264847925201107396826130677194159108150074157059047441385936633969511900439940979623799244283352710741489966444572472882440723963339823826517760047990163726969646041603337729165330383666742470713357846602050509662176796559708411048135067940386924547877310765440338838361667227810970478560524394247098590717550607061861735005418849530025454025309628288981178797900564089859902646333041979120214369364139936566640579919129934323336797624149880091450403110744247937222740935431414310197264325268679817679898961401887138517752342534777227939301153249811994780893015314700209683973530114748924714024757729982774562523126946469172462686221892986875805179846816543817671086109882772547274248072610244159884787686411617896751792663498833307700470015002220324900849836767425115755236421639722776429431888458145787086576671565949912591617730695989687434711714621960644485001096006928008564495394938021759799624579291593904700135734523005284815753904578876114088630158230927166876140257747348895349626856457723145647376541066249028492920018808961948788227684933506256780973335916090750108688019664210798744000574702745036099906799131389579717358930639794267898327175033234527882335367218360961652322240549112593735567548851558842063500176683322307047418462420518469067532702189480523232971576131185186762402079794656259676348806036885208107586932921214810012877741451796273066500348652896301251305218868481403743649267998018016198620664543805802769623672879673490455452994278663101636926704841135684388561118340956230264392856553177852986373838063908092761590426887516923641395965986530542065639050023013710450423699050425831499971182788241651703519999238667393679652205713852141136346501834788573130306086943523950214781946528220316766754546490992350910452697301973214364995791730163664997735992518312920953104729047976247736950804253099194226831168921402090201721713231679950017648853290043995303554530687461558613199172577268875036181216540003129615011679276336535614425919869121414501337641005390773559475440498486495794017646548624594957780887471937929915773209508473572451423646678425813614677298675850845869066504979599545526893821707245864519823627998290090985086812072177057629597074909417601536182150523158823521207960826864184229567995050914118792190407416605258086609907310205047899775136035906055735892854970462248404955628155013142720147502551588609016815090734603087897664906524171528104392533362902710924047354855699990269878269146967442981929611051890752945608979661997201134305923651197312134854076007065652570203053272066574137683337990883965894330403050152415184792399945075163892150743518864655960798588671614609505528389101700499905627015462219304551547519553031535406493813169796572156587831287194615169401051861934523217408940682280182673638689239651100684502558612967765957540564519384162483479662488314479807496421989859252658831967644701508115775328673243240349975271178742185297203361348773772614026406522522792559441500103187699794302869115636446926557474001524901879645679546027144265660662834432085160461662613995785038351044454140601631919608328899696967339146476816375798428207814100467721854646796713443502166035017536865190441500108567806289449391650687465646887199111043020785601627126469955219722423780219543732591446512790170865845257041153332434860401836635756902550884741238213613375468921235838677240635147467632322644363915923983099170091129224923121972469849845200733884527999087312969950921059420083863991784054983503244075023674146573845215543896746399214929573137340877411534398724141619441087013448198373893084782798161771634065768948943504182118350578960228864356670440562149601066904812229555043344001781810662447400652030588642236500183093698590135878282792998912154139444928537648607303364332609247041428188579813557563884617261794906828182014920361239170193112572499015881880280897123359095551575922516386515599432460971124628213461312233440843489571917230873476116016075215475313211899305907368732889305941654885770457825788644872613617893641502125981891263329474517340438766893163329225196145749928975675542855809280201217849904946015152527857336452670551559352214591090858610675245775999667066301522214282695839928427777197207090859820871388756940679883866145789395747529500559323864292612082066255530656398329872372944224967702386498880765969814923695219438928743602947104546188697402948130918927240709218469517725796408161846455817698858984709964157043034329839406815418284609623246802196125900907778367811481450236875009117465546675973333622115989045644302367405418156179963218657198405333701657542475832435237710533855004106633800281320664724858603327183365303065744709950653659164664074900358900520243651644763034042260521137742548802446231022153688316266523073184331233288076735411190721961372618513267150048154524589980881218205446222354315257486064846531666215867119092017395117654394604420268811248999221036636815586589402086406235383606294241053661463469400133073832542990917561031898442408297747460595960808995366226204340458691679307466796350545069011356034106997688837269521087984598957624913685831796362547256123601492910255005950184050780482906300454382921791131641917243379990896997367398939793100675594466300087518321317568342406481488443664391530708311281949727248947878492811120956517652847990116253882250063472796981707032888015528009972349262629623528748428732142126892398861228258819324527957641184093131984217998965881933243781245054895262133976600953206111115605104992870335026240483694837599096839080318892963397796024312263354570473057938162005043669604570561839464597841211412156299368600416374671869667309000446684987549335140629508440567075241966080346419356550037327518852745376911488156892913581727643874898401997589431551394466039607730941483790470019483036800735842622414177353174054292783240046211815886970846551115965827125588071610349512741821443736852040885429852738191507113886331859206079218283039270389477557315193385977655792522737283859461899284604957908568788483889682436810742342779886801966046375304002728605758657354910907146130463893288806811955924152257003334102962965938880867140458023806940694141445689095698189592825852446441161311486677532022574029734618287072185279856456416242950000137192461299227829684837970012768562427718578341878050005114168983142463036456118078434303794302146835489534097906921238190657819155575418185096959859062158590651684567269553281460846964716804232584344769805226918457971407332076622921337116081638026186440951214088850706426213871562755719155864430449762868489758661868663797223441922785939862471907388293269826635274024953052914419071284877398693819009118522936826690942109831830457659249106813153001377803066371125907591457278791955207481101802891407471809396356318584364507386774103951337246530817593452704145660461451051797155147336527174096494859246923228449795989032309116363008486496012599466297449317760837163184829137724099258789276527316935200444512783544911237455465867515093288598999146016488128348257213898504053380126571413234953177440672121621769503074702480343486818200272602114574082400708925089247707508105039953103907017803437212914449525921653049731896528157584848298344513228095983718518373785454064594039441010446377253388791484420830724386908053501404542004657351890403282750933610104574120837482704301929490234688398297899367900352323404686940506489841722376044224726134800373954993128947030725933376099688094380999343972134128837196805597414362182943689808987487448690510964265273155031711301198489662194672965912885777872207246454274244675853500125324767670067098236882792309557148298449166850042348352038719887354721702219797645727514702797450998796694569116620505658193723400937482126551077658910149476157158865385400201820729472096989654543147658296596151172586179940022379101787585775875531177231974758919900470156155762223693293837634750124249693441076434098681186152594960047260250914363826905845640227314988114871841826363872478608146055101513197503651865625858377642284082562733723695893133383844352497864264847864581573970913343803448407880987963258670655314817946576926039537138960238548264446316255663846500144268200478038799861367920809777757987274157388150551735882694119681160869150217135585410623779997693953489525584687343817680215810733369414632137770533550704496739070702762142730022174561150000759528443012562360201734513764761888300496465701304315928441401319211378510529682402548832216500255467125877929323634219839709231794253208495186807336027899550097516117156619727284137117187272008184856037253580110704102383258684603083783198622284450336280859073983740826498867426685302989111855083847711968782402752335449949969175344385727595351103006965626781488951158183535107297956708987559310530141514354350011389568192901694612503520753848034277689945440829900490251956150331833646022145816882796678118576263912643350559296729421120660331104693664107151102076800541936382466798254040974590777401349742240286332758456505956614477791784294660678622868225075437810565383598118768857612415626031378094713112932614260402444983780935026812001927855158792185190553782344888932767481904634846360000558271145153695636216682301177425953134014213447905090345295925390336015384953504615687580770854244266190474313491715063014928068114960873212034160021199797538999715853046146026928208923398085751037419915563233671471958144763576136072923416690795613865882658658737984279890971996038200400340383988414826252989258646756910427954283844635629208400648236501757747898059578072488860091203089697859911795245484805872439693761066515770470132736079137052426904148805341350046029819084781530782966534001630211441560069552215476852522033383912704186566397493445994673676107053853333933307630206605389449573422837698497487909806532824537106504695491789460144212933180047540441924925387616185660472370388091385369844435965584154192924521761821046202097402311409073529126151028309207285685228090999855871135936790699887408938469997410736344138740489334880699528502834607275211838517283892385971617083356119119330863552112433630308695353167508698592294163988605665326595636729682696413881659303683495244197559904524180218462672490302987363242329704295926601317490699370391376504246037698589938898107182590740112158291094778819616183944040595872374331294167859541294172514647356400021697475948881146856002277990041906290056901819166125147686759074100924931619655975518230402502248542517575281438785784461677121929853282132519963701125598634545401640443482578517543496313535250140684464425506438597685586040309504605819582023888323186709991661653244945184040510392730666254572362672179475944575962964500086739303691636339460938610619938723944650323767339828295583794460948117633828948517865572223328635099697858951462111652434622703092430282598890139410167063083408845786997261980784089416398599500457947782232062914811480638851679362137020286163809444990596120587182371077204145234900848211185323281690110432972947903080916301486679965269528257601359951733178385130763243683117150237049468307909418913882708928323924270281786271591318151059112521208749441873102867820138707888061429081704579577993825359023559419404581501167016192118855324128171806284475028179030106078336878481816770735812024816307641764221373376498149583857579322666996984867531639037502976504511333428155123608712758482140730816410282703319820770397247147566565725398811471912340101244075260431782480665240069898896716587354401744972154589187015776816819194649251493371641419185395957112042011103358402726320995836350569210849221295829950136520324367666984550479455931340981345030199633411864713398451677038270738429531117011748784758763535578789330083515620239289155650950946427547578415729543489903769134077052416900944061577000713260080766695121410943861767458984760962907776740490344643348139500698536258597404816310889201553282827817514206406413500285307780951788313614228787775099972257292775750879861898254997354816710122967081674582624304112025699565240977278196232723630000927597965570060280765245134249745208637733756620682602609594718382536857846674080791455157464242758346123272690297324083981574872905080451880263944455025123474748590027072783134222437800583319628745338084206866898608973722496594425540022632454006564279476283309159138514841889172616624637606439665391448525835777233488049619082542074066094108750919061519185575155842772565929244399980525302029343124949198339787156385253567265548039514228592936004027658859033738332434360025418590052039200374290236768153286400533536969286394394802752737910567014455405557154378621466218121335901101229365983112610628140566168065734850582007238469864382228802614146640790988291065695557995036874330158135127629022014623502812976121694444519607272419671550304296920733423383103353790158813153540784800543125314806223482533534484982414730526199430253919188771153796619356112717370206662594320947466347168943005282285159006621762771408347418923876946271010621715916611503594486962427534760244079820456253276366109448810661647740347922739302123638424815223459918445133872312908342231066668048992955801485846185320570024336932626277508668066736738773721235147274061571110054308968560299931291041615668485551553236759789016721690697590062712122053621466971240573958260203184152284196583738477183349369562580923006920574181507777286402606756758128197949020156209568095044782617629639353274550147139944508415818507479903827785706975100914464946916438157971796251549834019645319054458985086302672013511990539050529395620923170874035882588748273123295520437106961399939064877708221184419395971728957165665793885589255540851754150282778668159915947022500334471866226081537548444471153845018258338564107642178174219588326051587686331392180011785299789206397787627178337803882752600375119136975495891665227334222355192580499640730163147642074802713124888429948384722212081717839785601778656660458477288080193353730220156184536968694037333885236454321218780241020586992144986180449488068836354134951941954722849097270010319241952358313318837210822064305899325254723051318312839837591878342639318299326889067015327491840186380940672654743670530695372934236458406015396387450391725287349170932030120358857421446559755090089796058246700434532698517900063901057911928320330934142693820764259701999424378643880425700891350346182493003866026663938324268430217453096382006563631542862807351879376635521821348304094201374890585022460341237669273920228891320382408060296096662505783327046347980802855188401993501390377748129012089012256344776438506077833448717478403640752424511651401482282063111317392827261125368222083453035333267642191206552083695198774051441263448410311378738864305640122043198987354526250920230516815231034995744594339943002914370675414188645870664188130317570233634044069824681698842483136000745467503825717773622307185079217330369580442646754187209365452124466339291734395847028588401062884660959916556275899006947673423509579468513356388063772915814252052780954221101354510677155673787891296877225211055750156720667531154805451889418858993635052652882569843048500298951366096398417363610890552018605679617244833173576902807553795983146682674592680280889763972050978377405086548143801392490316450520993730307790023649872350474322220802060124453474354328726633022561744321229800455450139994723762727116409013009714869321740614973078054137677487537827699439576832882168538648931014366839320153789017339588270223311061139809680376274848967164069878220820113102321471798278465196045495356272093116842832679644730628610053800047626447779187155028545112060720894176804413508072385318084596605552024376225899219377151335760574100140312232256961368036867651281812845716763493578960521556261314936395784234594412193820704835728977255318902632790853243357815749020436846723626596753273365609709055624878280567824360297472430058356319046869330949504496407284580433097935860899137577256285754428605142784251420847703233652680253043369124364433696685023000278910463205076585550518616500014633575318696612023265952493994900183002907363136950404662704580624156690327300269420088373696317050971074311799431850805009980537142666517678817578560429550583996230731633470850022387349899081613321859227627747900605353427948783660391464980961575532391719097831400869908165276060022644183802102018635525924108624245133869341726475390131690499609026656576138288987756706621342159365844111257548613014619397785164111750771847130389270543656502946216191532715952307423549074089724139432587718485499120720558666835671346356877831980931801587861919644911779497216502038863824501800430521837490019331271368240423248628744114923848850104990055354169481714832795925241112466300152611738753573589546967559373586884733881957134760044957767004495816827802200724293303568870196770470470296325168580803706908695410160858664312996199877383412437424311738785517264144123151247132187455937466397306223228682727787289627525852151880534864270294429574387697168584988643679818176336692302917010798382930102216048850459989803588244664834700128188321801135998130155289426838931839015641228651522905044112019623667056137349790660965088817336318421258879642580854912677793520077844927167774993035627113326478363965627656155199720929237828079551128167081750652693919102114499788264261512535335250752514134774749234226685610579527449566171611000205566174436848563569315800767370185040426994591080436307729357449377137650990406964282320895676821649423405908471651731139704141640703177709228549176108397100383990932128838058488414056696646678838891398407531637748809837670571428882501928951561790864147799339857995096015850074571141681631459468532536801970937671926758253638057758847196640989833576330076248995367183126797013072826813797107232785679165255200874066063152931094868126986664835552160230449437813672552936909570097041072587594271653259618231277214482748547378257279989880786427798356909957493128750849392724605768674272483461033942887317027061282655409018919309721090672614607321401489767604442366924348049600959264933935506665822597384705527703655160408300875145831263194060605796673146280627870708069052686560849689834016852734956377233823020685270058821459127114231074978275391851863681970947837490363711186651223495044186462180910125289188178050656583661131372613658012265851369173237476648331933323644622231442357641228510214813477457477153316262184576403990414021227904763764565171399029032657957295097122178987070904595389961962444393479996750692121760334499458182176309451296238467023636961744514614784757298580953574789736789214057962838380683468611977181175724418648920347345599427614658163941206479727253647201066953958267034482914237935256770022134428867732927346793426273251269785626786288502205021819387998274420278171450228767232698657793905368763369758799159444261725616691673232617687285521716084412520530772130971715568850952924809787604802161816713271793113795196974335830542534538059695398359514720980632835184470652884385952286766195375935655803339461454252424570223394598583018736611850631077896845641780665330339564187831051038166291461692058413538025713026997660880769426121929300629624902279351485603131336316257273157023674259303342189544649820733969152053272707105116344093526256110110316216193338285304274606084670397625196897393160822808893618485974517515328429511819090205323143237110244348817361794111673131532862008216880327576746864367449743275714147808615713724200373338130893358724515868194171225121525805513102901948830557638481082678295972094034396786188156527509762203292082421710026412530836157823361019475178352317086173426150663354020220062164196536054435427272448415646395936367787090979861282658879384258840932647675728194947762747876356545099983481290784988485874122679699555396841030361549394187380674662329257453241146426553341719013225810163246105022950593537904366640311057840784112685225898698832607053178283063804251410530549491311598065021754817269650891892431948832781884724520825087484696265955230146498340139124887882634530678806416092892191452848181215984045750695181724556410466485425786230964534295039123878647279323759876426693607520045797606287655822294616652250878003299300086575412897870939202240775783441178073729125656964284608466275086220122464520441238682428473353958196643230585868155481215282589946024358589131069692397177691973408697948843195838246992860195250586099384584786114890666402531888455299504108360998422069863859703928802272268191246792821132256851226713171692158252233607970015613925859504295409498997094542486156222797126171577622281661495086229128144848572343257102189560029069788022233722727468129195292065153410654688739864193445385107102597828330518240324463047802580908885090154887620991392548879168077355765134844689063605987258823360808169832312820454759219557168531242652205547483686571223305838525876744000223328518882918319856256603714856685846023766843431607386544175114251125681604914026877130876155576227781139266566041225072380965335595748852244671454248404614840396467993376007559518435545603443178554982771938765540685165745612968103716578193526152871433321919239662848694251313097322120892399603737141461522820483081951317134861581337714788802863437016916730153009985141701625603370870343790423712612644408190208681626601735999587697377354284747925121267105834012802272238979885363163379936514759350221744284393467061682736823624231767634142335001730543336663896422798367157706636035050563444814263186189222029607847745185563639900956319974417327416481462852976076115419956787988673013087845385785974062215585207286695400620441696986621371459361022145823811213136709434534841215671391770438821746183599452327563974919576013887804739185073506920262933563580307492126229977102179389840825995942986444813363710465513574082000463437060349205789538721418997028861333621049382654707249595588808715439779741806902430425876628551919041713521812073075663348168788773465685721992028772489785222624722989071381585419296864337161826040264843704215219709874012978594790898261474561158399375099442020896727278941546826234325067912932999088297199425521528461167720408616029938372238667099325601180133781354120296611496668585339404387416107467482047742616703498483184442653051264166618551542607812434922187971321094827156437774085814509886610528928182351876806019534829510930759717230679452995675898702074653368368243265292976327731753711832751370320248947139030025247285082731761589910029858696059652314856432893687195059144978972676917374435389104709197175055711258685363779164131290849642772969589809390798385852787500043541014929430076069123246520043602269946852207282880949329168317443973437263484163983644045468015991861634332678721854810479697202370106874351788167190772003226674390280527759387986006032492514674901910929810792249169267878630572030970515444144012784370616464747588574330987022961471992497492879090540437576013508571000881667418424780999416368982819048891178940973004601231071410311296042536578079428229834345405531332829244590961026410818741162496391777474723517140861158288376010527452023425974196367753688051189639662026624669253144492835675553531552342467202842647639158779442548404776417538824618213109962368572627540888164801081678199246973069539281519042709268920980151718829808941645430367868370388240067863269229367074066909676556214060823791026721108406499670150134944108746567391316409526474624731485196515702272056767844902876717643371451986607060143868589452540630984422456758333409643236889731761595428648884024306221441373342880442026873173186898329975850577229638415658160160706267063724992856987906717077053823098797620644198574968684520776598631863929980173636005264869009149488312193154135064252436525570991418048945607192628938383641050149568222439198778332581391084244263782761698196944156459130743467695097115231150689991023684431119639043398242326043855338494475778951285584591112244103137036967676770523541551654190713146779251796981198923297462994090576159892452815732774928791978106571994402121574023130833026213054236209595681282218823594507419975690171562237714916383971410135263169537141454099913496820041787907033041065120681466802965836082308000395975190957725656577692607138634937881903423417194043274066259244161389030384208904846687723738695345295343340403500682370033155202431712254025185821097154483105456916014617599343316553295140134848238071460862515990401121140669411315287297131752831698978583740678275286340788605828496803060440551488221895909007111524935910218906390155902162791511344856144146462821670817985696746751499734532673924804558014369843644879236260829444165191876977984826636756495020346511899290416786300146696869186600950566726006389205032751851227683295295740067573608043439434302003434951453038862788222304355970239166477185120902169488060513295147565030579941039383620712769927192181090275861000496750617647850934455989719748537673034449422797562882813795388526837205295199907481508240412826798871756877896357456325126706685428712649816676145335671938919452182238942980349767897023514628284352129697756059410482761575339273425404118173134673641022940229376359311434969473603736444080265074222123846688101672830901092514417280377793839344134835764440929595267769073985544887740312251386533846135928774473707315788944328520577200910238326313093817641891299513647728430722083839659533038180249872512912958887199279353613542172134592253983185469721809330402163649454403087879238885259726310286843538920422152742957940559194420816455906506754651366530387141281734476949823626262229786582893573896267260237376990543134637001211533230017979646371733569371748232497673059635193095925410546147026004712111618744107792025083172649655588019875315076606795156777068121320803973345480872555489226212933266499692265566366789562051696043132103079894798834490816100595128708742600721711602441943074324888395792539571858451922886392152693911559748668368765519357331935050661383405162559117651948375042607669202943060212305365857066055146573022168983577452468282052698806124602510376763341246435972068706152173427380206165337495325339322399091349808633753388681055766040031414223099753032766137486900619466695857129896622127820944320102791604646436875699866764993564684579914867429525300690986248852568480937134279998061811646260982283230348551649841243318039439310974187513544563508307628188376441144783053278692732129510149590165854471604652774983263737819991671179495958406606548561123205655747994353172368561630523758049994170499435404926305404875744824105698606278877871050042482364304623784678598153767984923469063050238237424615918525838740044098883179191653542164445744760695175418770784908145441187456788019576562712896221192566472428899550334764769879900238711617601485171373879619711541444691436970981355928103942519854567188925027444450771728175057104844641438501552377819191505194764351360827502377039000883917438351927243248343504752125769031921475387222338637960853004975054225630360060431748304078085566118104103197817358734451477556016051541791945996481134883400954662785603045499486395375771090190277022515431059404893793288754606850852454653870300155390468789219827756499896256811257203166918146748957966281983446522614218875512766943328165063973697151163358924512075001332332665455801721263240109700014198978397905826830001177707009870215716605038516228409949237520557877336608090242048647153386812517938043037991127720123992047064409594407759703579867053808243091358104192801017877413526558087077290519622480182909363239978599220639477750104666028403377158433368351779850822439696550561998185707986993073143886202291562017497902617985388688165599138376250733252255343828883716591254619699586485022499468005128357777778065275320484190940110985338683470568802941855613883869177120451808811493780343555041627529049976336205800359186708693096718321428174732930104309871024607495143766066471511692075069197309080750852716047481705047660871784739923097348390653060482033841225264444685717221781713157781662061122405035820144188270540588186046470546247874563515496139636487455540918027269297294347184516001569144662636576454455233832736173219842746524388855801809088491593186808259682374357509029460059060826577174226608590681088233910548249143702654898558040937854079342075203592628403505875758267701466387351587026068229336437783917544741813606384173476804879314832323267808924195123434996243723886613189926562516984997134052404943399898912776538311420641692658511252162883577233599745992995902010740910819793439580085549157017667161696662121849103461445967058692094508544121411543598730895253483444244107260862791128271155225088547990781900431495945127940967030396787003497195090339080665351365089538043907370645160180821852216115020839136679858913477615475970473224904623015566396211841822548928059942284560542013438411356483370290518009623818334684254311109217548964161146451340425122668983279060330068792183381996917566487828504365718793419764204502406093986481722318626720325587635500828026820172907727362006647999971582734648029706019419806861882290964313317173926271228954404425810209818827189073585904614442778585932447031200122857920716933295455735335007513848613505003277246192845590501961808695107437260839223501018462448689324737123121813526288557871108189207974499550587900283864746110586068204357640577078735751275303756014098113151859857582360912706533463490897957533834411857103804781823353886278504968545017489145152038760493600966341017052655687236900815844806259115993259223354243255629621978670555480303985815834325118529891826255207216307464631902488991295761793573468710510866560085150383644957599737083849921424236141772736036368845115025688932981762508995604107978151381540362045200222431524700337421399727411201375895977375311288125683273477459848126326054721780596541427410440350746653750456896759798433239267873249466877427637540443081241050159253997671805543935775093487002986644076443666256964529185500718754324630585259869700765290004917997848175652188092548420073669969257422553380341783553859304368762645325919220853262810344679221222148384525416503169825107886393012288954204735456788268924352813814553520588739530691605028692632108384350010381570929195129674323998921676816220309249165392762883395671164640131530656698917865653894653788301589745454928494737425164013513943475405028758603106163906128712119032708714127913859872468759909440117720620959232861250702627379654890455638079974140432420500126873823097317680785621257330706905766577271101343749491367782094060175853676886369423542968394339640511549851815255001424400118111239345657019902807754867975053810951382564005914991248850558116253009786043137880410721524639885002317622270666877122892770860108878204116945686443597386299685736604426389873473426586442719428783396968500051633393646791199630334349997167796445220321955231564798546682902033445398824863143105889523253634199561389580527704753562213609539788907269299998876281808188552054457795145458452853815899475495798364008395050343274897813551316699643689547724632279863195240525998491651741279462149976638406021357764498952203464060275703275098667160629162748158962258402193102954270736460974165384226526735765384648819801863462340013004669232677848664446078641333654069500674224315094049330715166020550777028423017659945673117317794762507586209575334775263460855230232707392267732394304262605982288869487254515832814213703982560321485406109667648402574827501948737083382201516152996808925338145791143297538572325749035555900863221009242814577700947019104888249707993342640579038443185543540168662687114668550778875060474514176099654862113442177275826836644470664472943471165104871404695095515869679254308894496346157182416291926617034441510750249046499991537354261641436336042720821608115366108973111395789572406517729668412564064606197731505286888993593503265802906713630187502515204582167984480519919728777950475400926853457701224652433887832008546170372104672518388525551048109347523355085132172875704154218914064235106002321121765075192121616639385350792052741825436118596775903168202047678506927715162487470809673736738551165396061930330409627212804553822811821726030786756419921679260316729169031094705426570267965283403265913496443622487109222954719017092041638769435640984558160143150874586460809187744004279953940075808369487914936116133061362519128963936544050682928906238754104995121271612870805653728193133614213411945997809997955214159439771025384723229090555503374261732277895135370629413385627434464132920851854247255081028946984885282012653756496971805438518968115437068872557943143705701661090024341852539250156280727522853660565542084237440910771953368408808948902943338071243020842320601873693806811946732631405773452756622361661831517034279184255717105999128794260967756010247035783458528253882899867001944775959582483825824868499601458692286887738905069879175752300011612088385287039047276020686652413230510630826035842456240556935443448704992808515054442866072156436460947540866516405139890617169562473999280353394631524887437317121367259233929587809787143013559151766300199739384121292109771501595704959781759854000706881716256818028342591898241958375428336551536853184795138603895824649243847776569608153409327997608361346381055849365504714995969211908533428227382320106394798278874387117192321633557483061969358602098618925168500019266981046258995651360920381489376993001377047662070891419705044836568315448263010146519949106146138992964262801190750024053652434079443897125983686172957726443343860274187443421861984002951983742382155697596684634610667890543788463182606193434392001373383429254820498015264734391616767927906634465141960426520558018860022013118210955780686757847697720620935767821636920037584680565593659496179978013125465580675726520615078100831266649377738930555829832221155804350912468494074566492890090405802967199467256033756463044985829104985079897216427549237265285654426726020866335189646977452688183402929369427462396698741490625409965766009524523123745600105502424202605537325677778630769890545164590676648584930383381033816083139861091865207610185324684424243708546384738577364798596224237776313465599220394421301367552518538425235963117256566232886171430295833122515628199319097954264786911204367286782896576145391540780155561731472385973828491162741154387492194614888329937925482160010293392496552931786487284341697634511725753049348970531836589222283452680573911437511740141024962937576146511387180902748167380904875611997186992317152948417723344209689894319364459313797213920105867565037614908595539452029716441784388861057984687552775999031607798945060995165740175925940721617451368466033338299323416759573750618390139167689471442613183825812310221743057227403424633439001149524454709480029128627723264474189834809474421384410687763900265829186709066709834785179282900556463100568929733026188355844695961227137357907780333276329601472882842318036770861444669567733190304661316817459059557690194407581038694501077730574598097757732037196871981878900502243733518843157459796097084818815149842622981674442582282533182448163222348111803949757621854237086520152842041082874903211612765560799959814934071411919580021274265110366963941502645713677746907138813520031355948190652795958166696421694996355702766502719907018893580705579117910942606459166936402142923248456573576803882774171459655834170419449814658127154103593251147308591880408518768294738701542006893437554926728726722010687129686317690643174578995601351266035715423180878681145427255449549103826683142594458641308680092540227201373548267897899235056186483567908820220773594276378512784096159054077366019339308210640083639836383424565552774165815798077976033703431889411723077501386695316214511340538500030089080948360843666670442612444359077025853484095956510994492711285825557675674286398255603477638344222274710016855285965291341426267131517835056448416568761633947125854643523580742139141015180917631332356487912537642421723993121497730735383443884351108939668979032001121543509492809585686660902534060876323727288112538248279601247838824274791594441545698980839755801196483880789570781218696518473592153297698929290283296833358496027540459724819698888351262671241401784034095871087993146487986012629559147475251950049772964725301112732655848895116703704271332163831923151845854538894756682900125495909351140639691349564907845338279375900914982692123168035345704349676290056846226493457753060839564398072259030749206817623975581006662589513397251516576231729652430718267531074439720091330940948205484363219932797933175513889127008938947585119912291144649069247622544714308078728810670220803691277274013655488501435200945642402273556406471770624857339376544712276679907124543331958924526263875453517495817791358743214761648180065402182299576081573573681422738713304157215591592155365161604982057437919419736234614289352048097832672267958634138639815221835892724655610012003100023489372104447403490076701683077367027476845033326471975787180302385334186403385438557899311795778412015329812254279529908057217848116063440961975899128979269811228307042114983169898451147946078990459305031717808757840925234052398165459555184733401012234265618569008059931560153312956634625487211342996957317550713684740383694324664017909590057374178429973812724942793534355684049252352482431664264217459809647972294147936888635498854710373222232051714232693784455782617089245381158143743402658777551334605109359006690640811921594460053123941546755249621422038320288897553629033859962112025679664429600712533899512024709055330490879257287986800757525309618155067014050138599691123021596322067454939164364975095925162422234647039923617279199785265869922077838350166017454689448724891778327578793561586004937402620341368550312561475873793502510347114756891179686110246157662135662567161811545908668902482393150575716678797777818931576442435389533918303974602486314633358105761490736416607119380142151415637984279992667176071986556362496829612692291306886119046386929977182734833158902062214309843321458129936806073569374634411473416109077293555047805827280109313509000271634622961711510705432188196693371243706674043465628049040139885739306930905614992767681317962159489571977089878924676244551751000936237049256925662895436727080133392566353848171180674644303719516156762925930974769731802320110750402395323452673038660068184369636732892321438516334647087431492729570069063551185383767049488589867629831726346893616610489578208462033314263917890528415081016056244922084833626879320967783986465246414428840984787109883226430266813361069573425040175847722304208276529663554740804659660092790989982130751667407859097238230162203133141653405934069693756874382440212590725462636175754097314808982599338528885499503764745055919846408040281622835554578360710490142364884910326016328915440461324186425641642655267636473849953344174061109722432074245264170292210858294275842962243506314441710353434365127489523494458848264064453941880979088788433134604385609260322548774775894237195775309803366881785702198314053506795651894038919915749994319829260046536625164150821713742995373759071463808340194234267691198926357691088044133080902491251382206338183004178140855948052965551731058445233388175471106057623473899204307932532615895365189647681231932227559229994516877108760605008992552631246245471298835563391107472795704168732528368901541962007866252129654123674331433025426125146251876588964931315338689063142153630582168394690012690952484072185756029524038948927587760102126935876193263067948595274539152529480118073573109106555739427230414119495437984436485274242096660733728452101229614982462343996011727473241926465203460636091423553356077756847341919846957259451682386150508117332169953313621928116174291658318451164282397710116387266699860574345716658749991314008682870421627494771565218163059012420681467405194078186231242449769176643654248862895278884841512064371387970584177184189522046003333743902802846088685493744193204068842976922982981236851812070282066686631429806272187468600665237177061780112355056916120122495510910724230697307980605048726636030762156275969189663649718574066751573672684192181729318298412309253374731448013165078329751604652821680143773129039080989592576054419031704670567278390414756924427034925411422988542450220398141727595742561715926555357002795725508997664651411821536933921929002502109393288774442395047635435741447658254606852124640372577655084484439489945981168303950183860774120409314283517827033524294057578756670315504275000824634771582063671898297048571762702493050277387470182837539459644251998571279564084546439203587524216935185704379703134938616820904243588790263917929213835675805149236661479082928154251874327969380824367144383644800766613600740755384191295186459352823747247902482676576031560343857308776396358651030842557721421092782585195724901404453456249219048613296486250911861913751308153667119132702335057599701678607095818019255366373355632612218361682912904894087571968327806063159299265121031743767788479170994532615391444440032440697863895433198189928503361153093260805205365527805542197886569570583254836148279791581194716437742018319028069012831527206258781625048788635327542509871578463146278418173353266471857381946807343689098139271671078075328382365617915128723980017665806195065450765259222128850617286517559204043792293123358760332985847738851461366678617406173075302205066537955905136076303557560972512726284204232204230690604623689932946285206948157624222681480895610426227574387778408252829181988474648678884175313308897412463635563147561969802556739831847111308815057642258265693217475162494362822203383274649185559266321098756017133586293134123927989657773044324599528895456075570994926358277694384450210590241302012630320929211410085886572966676501838215423732992641986702228485592222921099788297357804915620743067824266141071290077636133623366999868153280399324258760816494389152286073463100593499488904212218403017923596934700410231452562300624830195505373946116509855752857346901885499989406868166612491203898244684405471808866077656433696691503244140472322294346121660999207595624195203851365184654935436565714053068231753791181308848765944558872109180351077550105805909246846898680819407250538705398307696002525278427894563772909021581800451509624709910268819854535261089720758343561720937630497661857828906357952436248524150191168880699923667613054261577775546527767154348715601845067800581901098294510363591277129211247923214482999521359627494747935424254319489946575058920787266547480223030208571488739174432693841349925896773654814355311735957882445830136239118834145141166104161451815138363792964748227990519667439260293971955747914675478280981831396738266222103067305202629475158494655752591192558953850677523281784658343331118869947666006261286307757356448233605684332561640508994771392412451544339065320466520176489151814660512801129502189580913243868112722794270741282367072248712638627501294220330621204260708553214269229804373541121168390269686304338972038562991222805092004314861050119096553925610591633027244641332861078288662857018628572993163809851062113681792511779072587027100635745367956684755086526812294504561295651613045273070512673077129470393235631023611943694967050085861115174768154730970578181461112069889647945852308931164008222660561924938460733707329642995481829452431977847509171414687118804929951963634052809213475027054098606659559974273686762436031053947169302881196025545350710852147877429004181518036337229236876649550585673674065729332899989087147200862548505509120407524329759869097288162136116942392477801320702845618851244971425047037112208733812895131284162637716064966614179149431645342165948834608470354422185590658384050994930527593376972775786550007002819633972701159413207421735920236107628523048085141720769506623534187434303149980285780405294351208341639055494958643822715864427859509630521050739094114278801032159154029572220922111467740841818021536572125223843186236696294290649133938771627288534614743305351830849480652844620980237076097132650645158624013355133495857237923031763707262536308677078307213337613136278252374498992965051215733865133919695693531916176427792277973756061389110887775679051997818422149816996772164396363856189427536498896166864227743764416344015601012998731605137288236914259443837924283321644109495361692499447896311004297472172932381848073927461717255266850268182778779766334847972549397314089857612692623582421032813249323191136635422017989522685088340106883699306354395969478053408588056531886575040450437903936665660200548663925400350466010131748131262383711254735417188810056704047607892280996140174100214290909438323159688446781367979267332479565131214883732112497022037615699670939280580942774177612726552374483417136623965134231348142460630117627627910308348253267333606747669609505878495980623069811262068107081912299321151099914818969336099333163021110495394841838683213037295119989755037742866001464900971941259712503983411608520052097714000698280230225334077640905648114507220097948979849302393125095089417481068467211900061578574396741121346362867515904532708619423337395689782759632924463724731625504848395016964084510977229657613458515454110317611186876378161803352511384158136130846415041097861296165581259703900768066946809128177600076468064540570564290766980600229685764730185317421443916178779329999425928264289787703983551359560556998071951493580201185496882928809524824234321867722516568193268178580979450977617644805444607911606040031745363175679179658743420976093234580366386912104530206696871136648288611535607340466516857334125129316289110561702092553221488544277313509064662372590975530114923994698949666936639011356953200359285563600426664069096705602014034086717708781573668783526057525492834810896415837865302403083248221694206378145502943972016654240734308985139026039155022877209910478162457812382169990251266821803957131072157508278953069212289930084706594493119516879374456474433280416593508121508939714048059923785961585910861224778445636713081121218968618901188766033392156908015143192391723205922505607251611290266653634559907361608535556036851209367015946342118308714460863695362690033280169852530454991768430944927110017616064807210031020422785405005713194815299526390268395988498426304061363482862429672977017038227180077916602633676412238482278179857811982754327166188766103734510533705780180562001203082199644569661106644179357352433593057976031170601688130636759609271958360829310076163429215427153464409221704072191666480586229650656992832529465391565738232415624752498834835794556720447178135216436809031046751659032305735746627003760528679398910397995323714052559471279363926046592828147550584230124167231635552063775043089458121503082301883623807764812601977151657406908150804202375793454661076865946762353501085828768738693829520981966852441563024358497640853979936315145179449609174134143197911356455715826490161165122264014580687450823285693263526323978285354799066735179626307445484431132748978182385736948133999857259988407511344274440376298711653530966569067348947278766544227742750409199583646364960678757767320107181580552879224828546963968404367210657035141232147721733741237709416182851618388793516516494911741697105133584683109362854076404320903305839938862851957320519831890507007304766016543629081204332688909147571060752631774160290425945130366799968645926464687590735720836023489183444894662472266158530865171188724166343640613793802148944769931689710392209002277083988772611590325687990137867842541779832614961541581862427039756284240638331251171488410607612428458454508291424061134084438688579013390255661830775332060819134858698530366081168376246818372107387716899424434787453584058437432975800916462357720184088110733371854857182294620292405919475686523114028270222176713125759680615739322402716243598831252234713726607398840864815463020619890448456143594889430470969437941128768675867261686521902825120690301959958317147916004729764687913008781030101867095161697811363731981714298474361880113792726643627156353899352124175792863231800936109587359114651542107751445010670995598482818796557152428472106078216233358217901171607428238228376768687921756898084108303265364202335857577434632700576102470573778791124180656260375211390645000993283951740554546966351757776538150578519309890518555547374729211261343052034080922952932943550461734748940154135930692515411692441398576268244763077698719307639132100437773623837858409219922381824308836224093578663265242056288035102834176553207778101029777425184729320059869924408656043432662037336878694497764154486157297533918895738771517519331465038204788691909759188117032980616195054686377039547912871857390400338943979449988901175127732442007944882621134939950130871781795869870454105913817937786505959440260120787553725663022792119929677579788726730867074923653865302858646299458687677455275570358178072094408522182733488772016309124405713006040409279073693517376898667146867648249988459311082485666314942515592529459011953564327301792318435430538188370047699758659793942487470137810984202940340820340310755163431101101783844070249665504495779930390740153203880048534905929581197019750776950099618489277677456679409042320318387157947008741974417251059292283609211081550155674426338188511911378584063336098722429592180298831717204564306553245178205835429097717390076648951561504148561800695965103181331298183252638670388641451001008576979940017995775593698357432929844624548164738022664784794908627197028791952646014470847807842775068551163378906090158498542209077132033342974585131093709233643131502719673461677381864928415376362616642484103316716063001034458807804735722518586194961216653632737692226574480763615097343438140550672746947795094840120213245062519431284333034196952031453114191682158621654605276989397612933963310104362541109951793060019887338806700522932420602180383179296159889962350113514364496783079804798982425079181886848425189182342902462618632675800426919437198716246365524716118800063198413831355514740821740048558605275469127253395691988076183184370032609316252974566545545152607740231389303417090697661024721839454144273837369300280594263563016540454086917038872817422410443767927403717569734499077310956918036100990678517523929877492926588729178582993287876468350328586986751287959104569599059446129543860187005245759980627577352288269815894078861788963893138370204583017572889550567480954918135794658229724087124732218858990368093969408820234808014658240048001245252665601026219536663323407067075905021088017191182535305442282408418696701709951270448035281819861875337815389793633370715497579985482364943468244478080603117028119766358591845372069871681329523855185948269508324792922133330322411371251790091807171088552827249633252501943628053360162871344936246913564171112308733607901022375613805265683613874147203867431231545912496006827240350051245395711040279395176537440459713624991234732174690070792358878311458503563453966935303552863879310509260375910433826591851914351656145253906717257106631415821911438573607214190799706667772909447052213724255170921215560701930196766535921384779583252662194781028132885751557087148894262398195789434163159793254695436452587397304968022016056521264046948813058604914027582069099334629144499626998751324852682560190034318287492877016764289157554931792949320204539517761150480084549724024309141027407303848343533887904606104256330296783736451722929445074912103178225744159299290206607631025627213773340855838997026324082151424035826064351390633543028303309427333154441915930555988077501904506067750301557139922443719780042482185674851964851696882468317908511679623709071139203668736379016205810725831454715734937264065702129052437082362135418841345563181393714002057991515176476811464097467574668611457690062533760697991567399552797707829019348305669363180338478737194101418575560332631886497191391804654425500943002240759122369022195974060710994930001745651596251912269173515876574554062418627493088976467373085015820713823246349790215358963684512106340025420790590931282458200562607922990795049500216093539625446481136274813949808575246611740632449631508540602289474837503894979495987878891081273004863614787557921162613935729301448827846823122267891292058746488112081382214641353232115571748922067345106803769852504413313579963193289408544118196650904398208192531291822259452987381449508700676213389199810566235162416183144806984861422424515953637383775967102140373036340056265437378834995548767452125155557851708757559478463915931172433151550330195446162030875749276721338819718293931060369730926883450609880658370495994439905550559038413750145774771436101832777526670828277866470596480107888387106706732592990052125258164664574455379449028239800075248618447407880149676243460474455842733653931508629427859765968676689122630384468022736919149426148723956322319311861129602083898559284112463167885755049913989770382316118981590914756861303029680187009446027094914256987852748771793569674313806247427876323934869728141498627382777770025864052362151469983767966333881390514803800915676245570323866666559185293838899008352232124855065797356996932425278951671362711820929063831051800275129092702068059970560179225408744312398288001010879239255374440834702829760835389140458608874710559411093525840651272927633544997502625001860149298561590170818018648145141543379667773613141202667005529841671909639597625591493174192921215398821313323068715894428721570671455337995478415848003079551860476759147906084561106055063371947161022109859013200441231396912710606897790000074459242621421616277823618332764597747671828892968938803234337662091032212571004754956358662109015018648164257987177812432268869631162387924864501700005303984515045630238182091545064922944105058963389432266437688482073239172713344462491268439538107652668935518879966093268209029807966127748876323611063560073511407291115033047647426891689344099435237330240237239058692756399609241298324438629054325570250513369282095700706699306375758498584798227762346485878191718866502572040668138043499058390030177296259292904191595713280077490448204216025331080432201291223928946405135450538053951700663635359271759735342598421567605054938170057659947870319972551363324675489897541046597957438062855468641531299689737298534621945206157720758732700353341673317619731377360311601624649872143368490601956782092240907165045234086394791405031468483655328582066821492673731596408689543094381073225235045365911496066528516489305238239829918660135461377883660871044837806851009617466645773584010257116761395350881649492165463983240861880359386272976210350144264091721872916440970781212929293451837834566825234550031511617941004586444209557964099650008201020859268230882561513791246339958682441679088964980675289970025981569521928375645944665058060329777076464493424681826932252303767492633386335043627693741281559457782176167182115575429419594809469018007397665942875069574083159733570195686368807825336054743798031751489675642100888272252100520605629551117148908187694356550115593418670836083467110944637825209044004232162104150629884400798720259912523048101398794500158429105470575172696026164896298158653121291833317570620363782535063488411652336980982687550771392296426022891179116547175302315549523205731993439746749634921517131355687277261263494216267907366753240019332245610266098715461942028505846847624984405918269768733723958662015429775266521012738321883585592255164353453841410947491492453861701393409342051272261718540158661780364474102640940697584187319549114877343888860703651521704021160844818734890473052009312046106234108368382484108402006970093223794366297425694411805405318787445754380040668101706637522588309691433784756470826982759111572571242968897290857452436386576867589205405380165847072681846763417671621865206737772993433593868805007691260995295357144477081636778036833889758411464775974005722367007453675309454265302954384285442453859716449171491423509568395484869019656069303322692528560411370220825597542517225620818200286083506497576491665343277138340326590647685380950019659885157142222009999820662891524222011111795069042726757057730667831368601841747673422187227324647511892630440068054580905490627473176015299821904241974555851655486178656936328807354797627182088446070202482602883143320730740534174813052116936549218900288251504829042393277152849388011344959584726635801417803131330288686758620550336613737427148682014972832391373801734733865378488713368674719722291740617227928913423268807100582076166126169962490332831961395749726604971943884158902577692936535512120285836655489329900531022477716096392113867687981098518083764347937610626540151061450223122629803808736690326393678988234632728489530687929658159420281147353088795216903703297074876994099189282247005610863960430382903108220213410576535761077044558803511030938176680850360069969542107392077647389168359530527182037905227164967054223889161459695188291866310743854919627412462321909589307820110993496440868778753517848696539915915435021379465671540621236067021267562720475260817093468839873829477870874604857904619659514835098335549095249865081444638857821386405839952307823157301022615516754410180787402507347823227300113702365507755705143072220564986348423914285048152493757900201591864331206218978207334954575941464658580308631241416122483383801595361473668803175941729977988130170693948273196419634349375953264131936492507717402684334263234335342879277812290334515079049206322146751372065262865646500034316170107791358380065197548093566326741447987376334012013725617046421690910226585981669231543742720106214278443941144910389146401150533906468223015092968838179702212430763819616562541450637656182810561889428276768922833294223966106574775393372633117261906457908153733275369577627200085882358583033698391817555244241622710469974993168515083823046601513674024201142012136584129723165586373038632216375160993639281231412352464544396193159461852321518178872992279684418504322960912115608816614118265110714588845222376455863045678560625585641093226779753944630638396296472661703675860966964663407758476957258817148427979824236808070935082310491763703620715333967214353157204568916795356274427933957666776442825054149278433326118860389942683233388118316057120092001770631590746672605502622555942878072748404499784785533573265011256890698784376692725794823590714883558600223435822538267848465828751092335286015964844028166701580194871493901767740809605470609038401502009848258968437182603933571973352899754837348546015149211804959195681888728083206256436207536044395026259397629302609839276140871499003084239170121843151403750701776908386855950616680079648013459855575783239480686489735402054875317741581832935540552033879379522384946351713719306874406346590865553528428843674345409520379197837778430149812261152367020555760648453330116644880254606238025459452556280583926474163817067926795543534957480255871831500808497134407417160603210507547574179031026328897498964921150259053712776938062466052405916052395544475956182813018078225895252987981054157720857791740476581074223081390002141908193355943984622970357146560558922358768776005709436952143478016079781522875618466907088532105489568021657883655434987531420504927050184332339308540550046499506695209274659797532066434324340265424493989220885353619067385238203214385576379855114928757874975995689535941558522884370642819416232154816275586006562341715084929859568275415182054392206031339643272307414592185538593247203496025101483198582810081661369846192997858580666220600357913657954659486060840440880662656031430691342310230709539163771246355139989611500840241851341473300594476552602169156202343960753212685246221745529933309922646581199060838915354704823883922192499473617323151776470581856020824693051341790828686011040876858177623644809221313885632874333842460997317337626107364984330223067075457048074656032325357192774591549893269400270006591771000238806178143874079091713123415295269128628344270908139059206263225772092804280751812569580028640183152311493526288589049220107496174845118137260295297670675829292175055923515900472820029003588043773773659291690616575860747312549743291486391018083963327149617954134729258838509657906344354685396507951245186526262223364038539738566246287805850750525735525699232148163558281836090841144482455023738001307582729629893292599120458095367373630699823269317938118779942140623002010259973997471766342342380755771341541353829923025363910690587086346535315283164085554437941595930263268137714292291436246430230101162612530354864565291654672462724818163116039660524073418714655976384270189994534149526939876172304646797558900263342837196884141569374265808684203374271012463393683541945128175174612634549348539029601607865799201308432169734698641809259462962789511549452657917374248753651152773870855305195887511493588458910964737794673713167204852658119364538578776218944131793013395884785628197788399688643938701155534768005242582249085008008713764237175351103413595077950197558460727218905727659719288927569605912852007455446866477780210389910863672651103389105154758345567241395167776168796208323625418270596624283062322677231394186072084927142443061988548851210765381479336993594385184690427003078676858826317687681126238144600503031143568431686467049431674603820957160659184113815539985702011140931911015251361001910012026285478765962892199507088922800624174982733623012337593653663179862255727911589035634973468854255348373377669098787981734755417135236484763666646868180722124098537405550397495670237791662264470418650976109545416493781240959500501975108306771086972024936573431373001448501741884161946649088963768209300564355092289953053585406939673976894694136132154433750315787829826020861408887294729752369326270421900635023866880010540651831051970775197568443081043649910949577354245048560054966686792676701364616779523785603308626202128629002090235016534218005684920664730177289191647454255811114688679043010922173781475169613641231297182767558826238331387659668105895365385403965725106774831800042334385248842809138618272105662657982693569473755265414551046876802383274930270240358871714270866879574546050020920116795042072804723853501907685617371706048944961108611413147579677635805757038615049359755257215758981977797334805378698829751931828374239340324356712530685405923464342981339456296622850523621945851169288518714697928354169064653206848902468319337183678922326620435596971576528952513230439533756397380112393464335570121356095467871605570296957127454273546906639897912430682189851076528549068666334912070433722452137255993215518486313733283054832998038664830939557380176921524141569462167762660686185114920353147660824518483149249935528630218154648002598883311089192287625507038449809269760931924638600389742723050219261513331588897221591142205695577212488358782767108202705209186256442894704758323459132403971016620496801111144011985576620899100223495310253178602872593585839400683935948524477436428034751844663731915433284292871004375783530704470892410027949488394663754424254319438610163516145163012697520779513798584242551453254719516313019613005538998225925848177011827658644501829712627557646389049816186701913412524687596004100454851213835890967415588347386626379505574879373282086258770383707367004829795738996476400556997770740597596525008853233801634296980284350737653311839823607774737194589284661417214783868441789964324938674418922424475312607692586389775705427435216395357942133516246761606038763518961897635287518194812615654919466197931477497144909196982318162031486603264644316619530240697348469169935382287752252395283786932787394917192513584980907227203408225618174809622256952840105943939321075031702743087775690668772676403661731542111019218183668268349252160397431723949849768104727034348055791781675130280051107641379504788322125482576378234889029955302735619834209547157000541255486713122099071099087386309768977579052725423957523708599962782827133944968465471062011195731207237384747829168815199748245871632747353168780418718924706362684959534395300400609056892305309851013301389646931232761434340986858650022407622345041536813598447225983171983090359245884713546666535594998561143572559552964491923959742052087070390119695708539031043680124943132119333594202678157840980482178026655174140820137620804790742562570756604372271091058081165866433189703413343866341815243385142085014772748822814076835016765060173725980334954740232289817319569670458727097484910073211051909269079770119330064625481548294359612710338273357179743975676761289918389860075364417258934339572037933209167086817961482250155070302397288458215346102240857571804583161159363609752199015597572213322910799216585089708917784198056959703395939068097332544691863714462767322929161140798315811968184641156092722024988868026025816117534157107067846998467971552168661026839670524272934458852372196375655808174838429491756370459200758068827501663821080761890028627398876361425698267948209628216187974462076972051732806443019368179080285538066068573078328080560422813406558258324758470268605638326751129793986639631196240753488773910111149042741560809554460997395122455610789228548531464435419308386338953820425524306105610357271426791910240991971701756962931395040852926728796915599288432514459233155931820984095227238592543481092268648628247500952982662880063580065376254779101437486505758427537878455922558270196871436353957812616887090786353979098028855481926607039683444783048465987545575918838331863756825305515385950460000798436237745091092101140969449315214782714119929632291892764160740473228539942713105689302337924045464469808170864782551011105490102997710964205870789755472191843263638699957523254668099524855268161140726077537190483061352379231977507743825376909735207655989588203077154903756343583212816073877264828039397828651542044199398224371036872880436860070122206527867926919417759698727299980164887968593107793924545584313753637654689635430147610991944098027253596225262632074637907159641750667077601709370517604351818356065432491574209598467499710985098779279907244155868894357801882755714366967879346361293216960813576959266192670779355468120269860633660632325369175094992773820751630345337779450667696708046989770387914517322706562364951902147690904145108559435060632224411167952936069399826659307435827171173185782448687828961735745221110937989605880944124583127322422965072877280186205166996451961964651747355432681767229460834070968303265677896452582384822579848163324587003016882949385216939585062836372447251834971363470740743822324896966245895102113419210601657055702746299882281626254188447532608459266030057181635971303152816734971275856922928522093861380353185821691737835780372532058631227401036523211491004572009159217849720414892911233094089722907286091456686592140425974711994172576700794840312727743474504801348442851056284760125362776328866533333588287460061498028760986935619449687049003313828413377969324153112472780217601764725244823102702691072760497052787171404206633625262630595244821031640061590228845336592704470467320290662341767182918352857727907332613626251861707920797096233523884234198871539692294847537164964944360834189000694798823819790094432448373609283925384193308304623709319641832557777507458903366005008706224532854872575352944287283528516358914930955279572236722908731846054938971956200780890071060714884739018261716868973704305093415471864435129847636064608367123187411925650623253979120978096427655645790098322135712865079084488753175166405942892717103290005590866412733421153152637262914772551626569635513063218431986462267921780453614442456806509336215800269922694983686523868506331850438713670615618950279559022738656098447327514303806752771885689833048819725688854854029946922872088240822196129320952710100644292255807329639168662160113442617923445086946959115365719305677176459124432001863961999835038283347443269987406579637810411334434130105272685630236841573393769422773720688888424548060395778291552618243723353302642971310867667603243960216964718334446532879463951172332837281818051544922846811179128591409173829615217411620799248125482909303225488990443238665599636291255121172587653462459148303433308685836653267857055021237396323291969330182378920451900764643998922153476514413973011801607345455075398210419721790045198961254951029260448605808146115428587673648239357146734549799283246658329670770465223988300770479984345260926402852173568613742724968090402102552761451573622248304369863796961893580220827977199096862552091887222211403679861147249002283326071305926818232373956766143128789643043772070681233699202340878558533669915285692607621271707585225217389403623991702433274622341038167767986073295501188178068036008897026596167529759103132422321881776479230348415060704416715980395542918704760207505370835838517895665266556487180972579631281794903477724049006824127766509197858658513252586310354211818665313295737946473910834706456747516043773128802606341644068133837306295358311433985516745412954383660457380898957743682423306821685999248700832456795936922702318140486107955217964961365766267556749950938254788209364834011302406883322385962565486035656877387226272058613361923355606331459976059705471076556977400469159376686381086480960134185083081780563914911187181968191505883577627608963610154668894732709591207428232309428933090995902092909624468666012800464292681675437316658441836339517377491056896095864154565630814872497809138791178951601003342719486390738234881739613885995955424125537816420043658474636568798910282065739147358477030281952775642524112734223182148269790610688096463087403556750202584343131314159728877319787840268895714342772438914531015386263950017581638592692722395609204819570601273574312827002232383705977364969105935900784466236702256508128847696919884803661670491832808085228471271550018600248302810049163798038455561949029702981367682735385875787023566197250182975845392027347926627685145104154600468777313672644466663333996836430239316280465940267039587685289186705598398523508895177534539934811066824410656684514129578435099443133955795071885763341441018388657827907443039414310425936291846253045228264539482015333284698297790944817215879022271356682122691063530942650910413593586226774322505044772375168717491161884044090979921349771353198724368377694741134381550939891526362135435359439322786854913574869229168191457450075737474944951003184684442442595598006518450105453262398037918812463050719478677419790224794543802530121348115955045687466322848798001451457166403550702520059806324141477713418183230430271831811054006229786036377076454656141479291913317899446234422166073900540474097644037497601683479334495550364205968223103916150898159672589001846029006661756836866766267151809842703587218282795117881018329796114880471724711199263859997353692202261609474926482040345624191791504125849769869484010237270252171582396435079978333736050179387627447729369606002343804664643769093294586354957442565908332328016344329919834197285924172964120677593795624573436086686519580123006918621140297260838377225144318922722269043411953994541458262503505322956626707008718212623379313522280847936090848899822329950980626321865907758660961897235677526938221651855754943071954220946611301251237744256538598504165660354508710612299197375490223050468504870552050752338470881158058382559042997643177755398511134487304350485090400153382761799157985668268371316714556751330197823255598327951480189289580494545632795806395258171340001821392832372027913450293169226211897023863795393825699738947212287578504161547153244400702305426767950639702132499706715558482713429771358180801378091221430183574338757795041205885107824482724862847643470058214762550817364855229228590282266710009141037442819939505856422843841999990636139918434951539694923135560916526593105012358619277901278431934717733481261733624566301648933494284874155527286064165535699288665019043422045405943569259656551007011307180244318866841484110578036415868402012521306966572629691080195140216800208235248372145516494609939962538489793321964041121779162879829990788124174452564881674672418820543242362368304110047230221915856241461404096836237726500607441794795880495546524468850314934409735862875596867218519887944581472733089390870307289846001856219624871557822953739064086005308810626532299219880782865961038069958747624541758017116241293046098523723628312304802219705960826218249594922698215682331977283283051481715819954221087210288176806642495829748511130843792611825334541837728117910184695663013045083693180904478551112015399650162570682576426811122098885740946534968177242770836798177782919449230458965616408192742784643106768897744609069244874676971444547742985057050351651745060557821609982868833093572755381128952999787532639796300105118303322031596027504469721611290871412885172233217812231521935438280831509645858111631187763264639846075109380518273312291619636610733743240848840293224639626677771379919016447864692161415181540104080006054734088236328506719179353374632314001834108228357174318983740278112529487947182494667215242294610316115687505118059731857667980518211496456961104239591901793283307460493908181366790106305800261997822697448387430233734178636614091443706436581320376085933487817188853236303668330032690478115827631334493098190201095750811632649527225992009688542770517554683689548335374470841546966957551575695969086801137345455906842332292962577803921560160210054937357173253205981770617707145926098025478178456786106780945418154155728319853410865674897458416761077492505301925727065145923209092589039522291180366517055787414882834124017924767383116961208502893567402129919745684239983892116394625657819580887196218174129747524393161946830891838908881194497434661646737448122521151778709331985496281861307243583257417948860164061082491402627945165295947024823538421173844158231662607389130540467728768994442210829317671381333356556489293132958411212886522655521495095597175481873294678478239818440629280606023708941482281151316327995588130276138840317792027202977270244168583528322627108822879915026765933525862579378075893054026044102390866653408635402454419304482119825344367795722370730263321977308548973088824197043765681969335671498884541382333068572344013295845766910249765915919705346838411260694563168823666392739798697794300209118319503512798439010000067358229894704180929117792336209531479209987464719504177561604464999711942005530709345421522866511690870890824918663652661525158570767121456845363025186930574265631283072021261841681658383996737456246477750547058128564127891992370015862477055501444171123398617394363940492112137106719105519377368781083449151677920247943774464479868492883165362157334799688137458246555600440217037334586716742495765482281625379762808729629218785044400286612859635642936764563162414465296551018304883032115982624226245167284646753745127423759465843063355197267484168259146501735180771677059945139597564438223752784428994099792625196121669490788908439665873810685064501848629170342145986077352611770795998591223313576001424811320127628098379476236924180484819852858698106846432459483430401737413018832558404590333334599773782726329788205573209020798519663326862107830962479539675079269018433066964240172609998211973863798483666862892439313038049518230713213605248876380927512176631254245871862326952738510651756141186981359080638808954848639895159082669169462303866844913973791252869240208205450619550746806396055378249147785573922636933901797962803815061284424720291123810007270053273119526216633912712511374092400692644685916975760147343780582553318061262134588736944451876341324558010523069198408953230692253960811702366319783963674075371095862813593254114219267720146236858015122227328999120836229331854366848580484103095597972284943595090237192522205264725887158540338746868979616492738854776741942098798205968177214335057253199428321951873311127906528476525963354178367030539229701976892969717164610540360397791501079448409773008137316867255895087638523346687533380778338393513549211480645200580356093285840791899400680683754643684888191596074270684532880018263366164167200480145640065009395213705830106264707868935366797566455912920535839441202491308987990879695898586528084003161035578205390693244266530321876699479655268381221294362155629239880802811597431696830526638851715547661234287776456076078217672337733349738923587423435660005422968113569293523478454447121574360328102072894937782836282528833531170761297863516635443629484994869804383741787344530015956681897246063088507109395649629096574606970477878763331778897826393592167715541827464517851385515360730093407224057435732658467600199148887166918048810510427020355352445183475454786922441970296559514942601671820273397425239027417634478756626532310528471819588142756100204633036857175845703101326594628856151778779229877867475504262280282867359409733295964759711035866135414600752729791905766851935516035747610135792296863944015744728450957667721132674638591553032859197222411100478091506263840584734980567638883491989579869408523656686083835813684754169055465094530479352831998687820458173453744121162359621593659252878249323562436278450599119045626986558338176185294011374935310654726564361131309384500477821669281748251098488671760792156873064751572771225297004992241819599615597642005075623877044635107855205428190738477908443061462108244323250621576772427007366683675762075396015132270269044326668139785511478841419369960682995286871837596916924597290935254982017848636427099524492509968523634393012779118453909655121910585476927711833943119591513531221680274549994942998214352713548013472540696380012507800582662666478655281322474603617777117322123652710627652393801942041183013185785351034433833734510515878174229597232282378101017871683978536199980282843459648466467936910835394309574560515053145298238053130092241350066222239141815880358265878404459322193782360271979506335175970312294793023444644362780702342842778415850623833250769868352038417020382558602261985356795098340095948598125145350778965600648952338358713257466732516996607205766195240294388205029775858316022136878841222725900128538440108331336690735977021376246180526617506645942468384904975995400352369864614773302577373648395721496149338758104564135957598698116175793122140167214494473626491669391276063309576244934891222787002669227987824982695935513117372656659108685115293347746779010892684341482244680921377160134668438401069817582192971375741071716681046213066194729967637793721433384580117159563894070239481626695428467009074979024519185469315749623246811814455689598599101689589631608518185649031341917516544581444091909937609587103865850357510686696228979458052573843469133281028457236805502703179415259666739371879758586107742737173172584829306824388440683360687462642317494265320665926876871466772698614051047557297551863469364754957449720010447238575020848349647566970461882291937485846634666604608279379320029666872125489059483576551693812788953854139082694374897124046366231031750859395187773429962203864669441453653648101119396064100470041497166497452451704744881906366919154105250371572407483102230941947610734573035533094916129206264067564978181705471181584657449367939872639028601732881791820380207036481435774858251191973668220206624207447004213422692106717920262804625892874274046339071661718248764780474719895834631325330221558528628005795060554904640737806680091299574022283846293934912523282142674275520317158473665850040924541178822421265601890208603454510809333704079452369034177888712010288372127192960160889566491350628144752416428551584499680623363469983022059284991790216248808310864541782094990535543002140166464493048252805490700196804178645260393059845978295838611511586899104249240410422892025946391960257681380184683293444742959646135749526170064496575211761129534130419330758303129827218243111556207667843021984167148415897514945508320249840045806700450026383821043546186984791589117026883121161396445116461599957967247341312437562319195801665163560025808934424117774652706047464349108017272244720039134176807896209062559308259519973708394937639354451586745575130460494328699985794904325297603794605864712954525884578292517609098227375527055828702946200566035076980669947224627602862424874365304603456329700142546494449287060049209526322209882760073044227238468489762364250040214065903206750788373179858077077993144838246087252868906965240624254557085511236036350174623420770986421897271052601581844473335714839514676520649081091625855478022088047226237109085148281045822054530045694355168197024322755507710561978313281861587938694317216135746255259193185918299033756913987822683728779574303269354546265641554377914513404583031828281985655299290704004170077531472619874682845038114110084574566241218785653775037811945333116359985823334274647687232848749611752860002366429015375202391080251739701457270087372520255806840124302662198303249552414008431659987379520885841021057675942529870531941442039357038042570223515577362052538487768836836671134043518198761466523828758741022133437665210180177388488018822652838389462874257706707714585769808624102518867798162370859750875647075053909619019731583244020950326756318777201935557356400932493087174665544644154745496193193039897458823592829681622902181537402786700898754687925639330514381900476904312994428546341645943419946440031985483992468060097922917227207177518811580853507804976588943828393625374210852691971659635058758192017144863268231762139305388122501625513428608757399363955742404650199480568814137877954123036629245577257074054483363231083022233469728199453164362873394515980322288150377371485632262366824690175570236182249705961513660543941363366886906339401366735040422577441324591265722323804828500612934337775313352464390615921906595486100747349866593043217984230400860756911690992201778812349008344529392298714208253062223549327900547769316382572240172715647766444800259585216452388544449197786236485192568063820348821585039568022772892792338455186701407406608103639765848703153075463297232797109241721444758303798033367414448459125474229091804046578080098996096724400868744354425180263017015888664953144808989692342859207367788792716827263074408795363111399878332459808967503993078884362595285217299589629998195771707725659568124063081698982582069687524758903069055113039540984582098915399066407191001168193529077877900473329169391294861971030147649103447999044308880296259828356481521698519075534184032858938402766430070023795696423832465339793216900086120865132943194615928544785953454995451428791316995375414275150276564667498341942859102086291259723244610245727474197257100906099279983646990330877830066539747359038718449614307318352914104215804019038070217105876472515304639091181055610321607784837344244073205906877069443257603506774904232026408203354402937933594881140509929828241130753307960118541627853495705052855937901802042114772285394358662452981055652668751697485910204717454926481626538912154512606188938022971761472260922325192786317778908729248992092790123466642327074116718945387802700254325834442560184107461053808506284597775009791642377821064570389368769027577819759572816149390709234109447705914596340034071423844854899068002839657523615050248301839445194056202544880470118941055521093908728744281542284791082359573345734364924409563738536862201968899892403067771056074506891875304027268494476195323427306908628515707277504653301870437404860491524220655869903407514602835474675606957002409247195421724945883695796188778451090587038781181679965714883710994268658096129481851113301360193570699878899076529713494829169383599381101758280745469792747114420075155037815361820642055856141352836565896650569416465692591775720023977545692181746735472584915653412319743929472675608414487029049226286636479307791214139562597663856151496132899654212827284135251005099450116682705085816734889893389854106674678065109569195426697618720887682859617893761152000795021779619930837533703431981855872317610631445294690849107996966797218209838710725612209188545481827909989366351902460175459640226377762893976348264041136181498227602349911619459249324944142813586975955729467652414510428563065654776646247293448874760167768173958360543692440938872871306220147741313232130133701806563980204599692683241100487871199091567662988089583653531375803257013255950165780074334209885437003159455345569143892017356674898063247689157856634303734882677304080283966450164816137689828851167240840344780305385488534811349835250204894221577602350061572848916525674466593653572114265873496376631689671373141115582282438525602751200307511598898666320396494825413567717828902443614531985825363204144872743206364144465885356452524455506432376264192256715222218899391820869714554148440247051059248919544760695980013489633951176174149452053660272214503813540551946737061832360445328728949055076464390036727742408475444452024314124229774456329087853637965432879182008036281963122140250489047501587803996374637232802226124573311038013874500771919967637750143846390673315566381298019306448461808319397685144252614667739479452267037367484939818926540789925188724295517849932768589307580725718899010521660392230805489820190066314958458235228393657353838008336820517959863828431309073786154472625763389039252041521842426305479546381263368651686246513749332277347754626973259387300073961661962474663163813073012971881342525619575099724882203635475514233646524401528614181477997117239236668226224119565187326102557578108120343987267568497480051845436300235321874359531630866114480903460423790708155252457140803742962240485886234183518580695392154148202578951997841288847774268962523369882881914387205456383937396381321772570863549356598371555652151947141385124945014383716361927972865408115552153624684510166471543429388170566625682613780995927702435614456610687189546324441237047774753612934974547011712767017096861463456590455544588377825143447437097603799975446210712352933513083565026190850855784446555729989951877090274099194138016389784449893511160085012012228014345987902567299281021497285023722906569601090736110446055048158765266558617353715821633395980733646476594295331982568663489801571969567278368009738271949686509238307277759831474888381477621231004434765613474473729314407254387572101428681402330406593489920193811844771631159076814508721662073699677736119732069531318527831642814267143301980911059926715197639109792637843417413808358317302214254524582376104965277758680453135203451456695750166035643396765332804063622975885642363382790708425434117704637106765548732894911102576206718493722141585896838516331950222535078622971041231878928093070035708631127300639571467265250126277638381137740682180461389133152851029734014199219463509233423119389619109548006212247888757522562730312940002058760491875504500163398872260293740766319170541558057176812987534409107339618648042862765775733745303658196113682681229612849215013263069429791208054855900243763329227184718058771096738222029585367187544658585451697818797537958270536506824603353740889450050375482899349760178227384305179334150170024257869327151020929394138952573913880187664887814980748559836997503807363051700844464316503002705875783813778178734145563050032020108639003675919907643399918528269176301621957156081966227853864280984487764863477160895127476377864618635908033448545154849575896674043319104578889222170226251121320312064073798387889980109295214043252086866639049068527550319312211879954134493138212770167787555484278455389082529233592264351193155594908253311789031959629955276874428083026065157317070687018211107819656386280765519256249066098965899705511361376418379936205662150588807882823263973467689802537184556259648594596243769755633447652591975682894095747006267197588340070219041975755387480505490547729965775166882033554959306137881245455469337877833966516800499405795643341848194378920423014238251775964416768170158552630971547962002678402390782382664578161865246218380930113477741044490117117484782098092499063736993726001326064494897072669234527105017036548358254721850761023239176457500237546821417715874798136291387192903334707609269673616998129653435441845644904303432360238347226139937883058273908847443119609329125513805559871969655546512317772173228281146800848640878279709596976316137497917058005535879669626910098447104235565063813519060024073591622894600944037877124387610575268383979727961473441417224119436751867284829888309792384497827675273838454354098357028479134208822387058151067466200542833496829907416762326772181511161127015874907337511274820032715297597035192523945846410255807766345352115085798170191212349378939089896048342874077118505839209454964485175304967941380379139132025496868138868376175921511020871199845294449314644553622459666446063242045828816216333446960786090810530915946119725755780594496890602381106933833811690598553153443488632494487601765031037628186543759937315673782023392606926533295876660655809486588552311735523000121807245975510513464886672885089565349562839070543940424066493321797153888327251664092577780119749011941019778344867310166551527547504270732499851821302099507235243820129148195457095846951978104072780222016159817881585712640390568396901137760794571132972290928314435430911910920243776611130020166597114241132898915403394064524909303370370794991312875123679644201481050833010875536370718405825465283762855030612324798874510790264086500787501354178171954839981595924581799635804568090596168698773498282802590021634934615605836945868102186553971204496922091130283278893626356916260420374931812169190236324446296028534597976629039111996440746639454504832410361980723680190728170295011582358371160109745127658589034605184906747837387968747159797736702261924565786577479585811759808558189185832288246566018047050660438636659678467476138814843332002449226451967782494479699387265010512167129359349011244705826357969098724820806302173605049926094432806115673318644568167981863338847926126292422548552253668986185143738817932586367725519724369138988006975812475502525638063866887409043839144912179010130829953198520135074607403569883192041756067120206519120116063030028182009078661513841965560416261823679485501336916004936702231821406487250302913134918730221199801533044109042207180318079008055352257632896070661264049267516625383845385764284956574905226691453553777051282738713604841513751274783183215357507549071643250311787241324375673855682732734248097722547382416593463041474853160668327314666106128767174172447245721256288377750539399342144919347062037799976305897385398122225113266834776214857730760830201184251420146779587826976165381439516244501075674535128834755746538911716807789221024211307265387866336277501619189191517499710241309732445093756969677911416307523057389334339661942718623534909820260263129120308670949613259227857681396188397489319618662804801594474834180503800900135656493463701740136003756989670123589796870834757947042721473435899680906526369326736723043268248723481751569871477008971258114585063584678516339754759457874124405468161130700860559171706020197513071351678415663475524231820408310642231444723905801409401241129515911114170837029261632368194054709154333536474643522644236124544893899937555689290204127619400394622501886200869929888972312264919750322830144432467499006435478778687443047676816295432442041999946112111804624920394391375705178226449560112342695410775395765570237648752470560855856662297717114908107412131819457030370579168638825959358911444600227931697764144863882625995240630977742109240835412149829777504217230082931394645579857976144895801833718977632901072678484636035525065790578078315388857101108209264645124548024508322283522144302485692992304948881552837426294198848707760075015862770007291514465059438650866654693146124990327745186379741257456457808598334658923980500166963290930195127031565817473242803622204807646850094960346227875619575993936123481536119967356822674004843319950802560548331071877511175573116463923250504983824135445352485023477700096010055543205357917156916374505684981972119429694201563195669670334147416439619766651239870390022653523882473768456194233218444904463143320790389655194916608691317309803546045196225988443773067285293618498841749592749884616596999138390480612246028552323520776997434844043027345018071009664889592546782069091110815683893133475415483101175580588112062387378083378277992734253146542076362093733282463058791894930816401473772921581563258904070218895546175953184153305761335441100205846114301830151514952596222259125666234569921855197310425450616365535563263973378934779359912990702371356675265766408861441621720341914613521774580864294972328051090277027440166144755162224924341878764553320512738720953350132426309815513383798604969046466656054515436462496252965411021171800654598679060514570006517350405588557182748219008834977274768342241776254120319856876461094135753408675846093629938188057875548697577740974190133919013092810555711331549259731059145094148958660339710110520658561108271915911809932858745752921335487275635795087142442515099345139331608119631162894927374870831414604644648717226092198860400715961420530592785692080180404801373544919171923559397238087502459364215553399128654721651530559157899000352728984863624752046215348315671942228237121588753852637963736517169212502163525521271503953600663419431676570010612792378704430381714043675996950711479384350547593525480412050908673580890479609237806655592551536845660639452190915763772419394270327316284945355808176645415417256359404965353010900404536302445020883197125589132111849731076920065515852457870022651294359146238851609587629436657276426527956519958330084936811160693990380442333557156815984163008819220057783302035943361159879779333278702368218033120812789964282616113620269108180481809545386831097918364566040412854387112501929601620953383318214249642765797890439857683511877373071695177892268992994512976241173937347935641602699905258490069661137747824713729432046499970016058949417895829614376098146148670830118332029146147912035265358335494095202970739446939453726803016387048717254071304630877758665703671261529990152886731195102089763018849558063648421187904157081569943861573867542734656924656772596225802661712606796032673981105353237060746882976338014047541977550488430897463159342833821622857320115319142256452545079389824491378517914568043555464255615686667192775929052349367345098344957628952087443454273916610217053813690338653507049643464830296967071109996977989532989103805970951201326749866208776099729609944577074905918101061960891104350729607446627313460700881753523937914328327034952262684682279184146782745837741345261861857438213468235096767992139162798135720871761758095090753124133951277453684313737155050383956242164287965698388991479375208739808926607647473686921985018655033316265122710514682499874565037650053996551469228792006773611505081116866755464243893838030488864983162259955272077071615624185755818865339786443483119537413299843007712626053459774974419379158080081915281496806670913501077356626297034384015860350774768486857855990310274989907759794064291472927753914584283336282140184645551229722095722995575729247512730315215691871735655429722721268345942238920261335477031739259516311385588314061798111869117260992134417613913136060983867752195969226852018631017890444216159229230910185880535468980440866263258433987915382233842427587876123991684604666952306629959364664971334607215207268630377839721044406929356312447885757626039342544635484908765776400971255740667513130062652569689378603710153715059930664248938644481701447425774488357204588415001928746657205695155397300033487432144163537653413805431095452287367222382010434558902913250765352838125248953168144180786027563178933106036853517540430271247891851774691433677506728403967433387429628623212591181721907182219823182211803098839611665976418099972526708395945696221970736046912663534087625048795158934922765536439606109469211513046212288833654005606057707307678929856834408975926550917906902638668661515377432989737968840685937918486596646331262330716711165533765864698444546667542441359573698833939392145266570610177269349216088019754368125467045285162586804729667507444927387997109838481953274838627506193078636931733222678129029411702812275365000571764032670101312926572074223578822798220721872125179364224829325213190950322123057670642476138766492089831384629959086496870114195809055501595102850307040328843724306221451742677383067352970771717055007483277682374128061898125542435392162116126406042042366700560858682252502525851206809877792094881595002422682998590042351527192124448649483480332741063825808936467155678329548785097012082515913838939160695529485811813943533108262660083443363088176333786241391751974415517797055347903890045858953579943664313022607755948813979830709268177212040942237870760383985974554885879906653936972904526698354580535102261800727103149875166258993640259446339154881008123542502630131834709419240237494121512104568885669781590753858079691360881252063835133540010073046978776770529070370075786603747041605059233972080101956535154575729893903411249388540795073921726609824081461258829654280294363202068361108531448108339412830879196660495444783997244149950655116044773596453619528518573477849543583391420995927956976754281201484075581122125644832493924064269993764533971093531720679170331743726538525551867462539216881299622091387840451945625665053569657308007005256503084047243743589867867898459483371386557143778663723977147136515689428582421456935298148530871901597226854429309442150408668929215314590875163301700342064724824330288544213834852312318092860409410473822337740750217445776093521531647109270970518025728072061494348517427112563540857459009874141851034386820142546892045772318827689173394944037500944551377211333508167763115459484956976251985742535522920124275812465141116453676822643210617618339341689847498745846172512930456195020849371703634047336780657787629571179121999004962152192562810450513204681804063970838970408772371953666242440839120027606630232658972372883011447008998653231537294453592505706928521336534875480230285820267355991922940670373589599743045862552875718915976909413077931201293985433705770932348833077592931017106104353824418674390686712203557572489345772672909712227545243831560934980788524436549289918638331107182362059462723761565429460323239156978803039835785548656184041549343617985972436463842616613497024984354389791456020268869590404076289444917187208249011512746169334833000543114170211875130761783235277748652111297582270503680587946821223798777217686338524494360080446352631274761528351050298047504301676623549801949139032078413232890940265316753005534065717611672698247066826751322437318240979734335844711966595680802598546357295671375476889706952000253779656081351400902000085333582214836861195167504834740957328303300977389670788187804796881271015591477770116144908749922814975362678740414617974726283422235422672116293282759866787740051013336938413123310261656509953799008912533203882291422655877240109800079214475048784871934007076702027157389835427268004419100577183766178869204473003836015632141480287123615074507577438688532672864490231113059879046965327006863462615008954928421097620519895121976853357417016501636631891253605550406221451456358131727534598915883790819408657974037294211832672873625555706231830637915778031968421682592019424942180514017982811206789471948876439468270115980242795867430802633427537668513915842441089455189926587460832921642073303464582815225489491607816453436273142678771770330862237804591587755210595176612004423608946252787642381136319731744006304077411394078427319055163171953766593422010002574772245718151009012801925657998933025070509865805065956020091754300955193869042592857752708778970446254203634338560463323254985792541766384585681774130801722510780412852393479546636143729136068667961254887162264035982206709963906272941896332434011942496889007668128175233992027668246879094223372905395117630591992053881165868244435743335495774108797466902091549424194658240591074350023225893969285955826584168860101774371099487516939639321890345883852054406751749652199770612052715896335037576367185646267689053172305075671653402608897526961359393273695148081991798458374668609146721782923738405831030142050381647874164290381445959326483606266655553216133138921302680803805569783148526597538775201861182441098168784643995379539598415571360118418692892103364648092750422160717416039184755135684570036868652671099289938534637703036095078602720112361804359224221124684976883632512434697540195700238813199867022449001167883244253536909264608234332143327397035700266494430309107039720745539917807329630266751257030547238623711440193875608111218124750552777768331332812136036847796748416908684788460863679984903905385082548994287424610735749122676695960475713458135564998810762242639274942398400421909527323569907365422630087040824148573068069162408103235591136788877982851957785037590680053787838514404832768908192575836359936996126315824027327946704599198710962366897904435471181600122815815265645432036011847908661306899336609902284265318597917097899980316828563079838888129760153386793133704587178456148394490669816052468417867405089043117622146170411132097050479000730091876763813752284093659778113502265023791867932684365167693953966581221880449797287365454038337167485742352012163855090166796476924189841815871679088472347117478686312968440018680700700221679735395002799577425183272018833345254892456425531771637450226936891862639280383500751910590477514118109563934774352658947029838236436372211828778743988812648269793535392187726242723433954159058829616848737364506399401423410688986942900069819882837768055342210764680535724646707720881672820193469735607538878940021097301838191446175944557125731977131089376470637009099149499111009865995808114926382006057592196315755985587514891378789726379259781026973527364658882828303467322008615153308763694811870714661187696138190487517604444738663494732923089160556618742010618116958132368225338489011921247859593616075789029977973357823897491244780110794369378366215757439059910577343315545327894703737649686054809174756351015765841064372490913903347627725351620733386248534805142250140097867255386726321428826180061481999885643288952331426667890661502656431281274844801387195327680572244415094185958522063196471042527363240435646788090683155866452531341574038137192297096536563803441062298457731568593522355100387600670388406039517320685112158097895433141399181847178140679331032892699871957779724501583595406537931019954473865092718138536379883773686592939590319440207706918071336540717602248204454583045133179868436495854399079484833704414735661471462518541221860253046366144966610306498529430164651110137755612765417293023025826398533719682792324567458462341820463631597570006819352058082820650598006111724649630792861222470956386676557417840533120345648718517587481921121173887464136856935477300139504697652342873602695725516983230782370098451998745152778057276189361542992723819246659564897703362480230748791868153856934748363577941332262825902498232868064173039466627780072420361956508726307942912833215207902107146761964432494416942021600849123889382197642488856415276216220656611075578708078748761567054968700817356936773281602954714909388714825190503940985808755562380064086976416161556792015931303046007899982010514648208271259699600726313656715627898512610153453997586982969084825974000496760396076684015595439309110941583239765882591878880901133109505134689438636175506715139986117908426691084659117862704325968952133439871976138078178807320104917501844761735770704568257329868902840586361554493070311455879031443587146246712091058049881760942742262844508591266509958326913529157099950989831303098680031317783504871408188454485788889892062561355006323291990084086437225926979222279495023074703875058785338763170976322001157113095579683729036612933563565863604108885829905540118012753257489392858670771533118443279267033238035346118125343969669106517080965024253278042311740261599725758285055111642156573591727216931709645040777812118731829227332902069775215917246890907885134266688039404611458612416623879864421462006068864008154509919134030289429218063279167283863975474649764214912801152534718796971622846243723452017602329080916571891342073004567724179020008419309299589389942147035307471165736232551076652731384258115806589841406396076303577518724953124321833551618528501449991699011770112911451425876933555825420147950138244882392272066815573111095359190891209350621932139574065067402675547232468774621019191005893421745480139475147932411516188650319916480611139901817714375316474902823116262383886369303461834127541234259128446155979213327256849157936912063004280289032448705497490369641136359665450618861850457161352001601424276785058648165496963047226781107543032572982831574050720975538541243286447180602716551757579186666567074997441837172877021682244200827444417823043690060777648377100148679783573333200053943824918225300761467273547893825985558662685097853394459507122437040514328331042252496867022243519396631435066081218286146766729651392888048185012129134692498408532390086066358351962423633398359071621325182447811462798016461232140495055385254092284280354157004585726322386770334829186405192181492065442264382841484640027689468533190692642114572138375273201522660186954740705105869625427467862101665202591773507301201645627861720328749024811044587954141660109617406870084164754679811950693400224417417871171338832326890409394552175265955787376051230441396050907497211761814731363679433820525119227233162751607014852806692676856157985898126767740017184756930174621847367272355317929938800143201151876818819441194643214616354595440281351763641518831985217195508323456602093216898274790742559665736067365500481172328773406082999836538577971637936714732827967211690793770969396802358950786623264277761141896704436413919610103867813480076126398988643619634347477887069022876196121877710869957614540611520754305191057806969389874608213976664581225717111961005309233617152070028012435026338959816523800004887521135971035339940626043522912519972351138186682804387083973215851206772619435324738262404620229448241120107524812869103805499126550056019544453546270884845935430682884014194385043859044443519636268182818671393382494681676642787281197770757213993594149397499942964738271156640423532928140080158324008077489999439900644787478850194515333195855048171877229155055589098041979127524733548300139186561676722108641162373845982925484134479778036702315477323188919576678734824305161918864934624011373998215872393141835989932063180534518208842494443663816445253016194583569096492081452715113270394636707927181126628970534044751757429100524386493408237699709253814060546170007792013338754978495294608588320513498716525483333677589104040467085779536486651876884469077511717006905084658278285657484352625308178409114080687388254606282857125516867693947843112467135544487247117935287179459464608445045052312114489772955502845425103873457723908342324383936129749112449772851590770483393551907529341996160022742861077238624023995770768631284072748010766255798569251343184526369497294633550037731400223714351484067362842729439150906374041137347450202054103908998488035003909369539364998033103255136027119247199447051430770720620879789975224937918720954498393716948653920535196855130291809713087673148714806087087642018813285244524721828008823896842496754507278166826291473223562836747679394812786690920346499421392612578944305388963497038280875837420719660763367103194433827008974629114692292680792971955771944852457538978033384163964566721063129787195160369863235518074816948023628366976614566682929087675355531728289910921424881919616748999970698148752055872081200544804775183939182968259448975241971727795545595465846593795376679803238542537752811790379375917017373299335619261232955629823701222117371965831494673677675736801615534470593010090667895601683611356141000302106404384148283930799494514167273159325697840592270332972493815122447513378783474835712888305244314403941896438706484226586115456773425719593293623461696018611623251255219912931507613965507320424047571968313314157331952221309945550227751034447509408059833060491373990457163577007265295159254731108887126743871978157904926151237645321011017006669436291394990938284539080237624233715689142410548361961629772117872573091921793361334900774408956105877276067683109425614486889612249642252619002019645523475256863952130796680112948161336841947793104948500277824029974259399089311621769192876586561861960391172085145560487545682297009496222871403617218458794353977982793491080518952327133443209549806047015762409878592622492569327751631052891464002143552797626109211709296633086560194197591732818337858478019184522859921877566169681547476656029995396663808930917254379785459110887698153353412789741984802562797641392034556251120213004335402343773434846172168572217698462846242027994562717269409925331937208988852253679461114804137276870863084982947105887909136680335283121501604256669102807059595482754466709145662573872646936221238941505568938125503907265060282834671717345254470024186540235249250309638276835944242972799096342911524581065752448518989448944181093256753701794251043405132969625061701799995715558128761745624440727622522093187299488553707414886146974314056998303449623637694304951577353977481750537735039710503671766227164781387177293870221778484917360885520213171106343091756231532016506342300670603928724942914287009768054260445741078849839694042119759335353892967573215606801212747601404553968819080143896562287918654318126789352010633310175984377572792351347928950529761342942283440744743091786503341973630050955629606618893644024149455292015480517237223829130944099541753615786844319203773230233423270467725547965520856255841058325858027135393429576419056828158688205434674801537915198089703006878959672840387954843351479949987457385028605466997417561886977015450217777926895575736890684634810753538909832734178437726879219896430528310570825011503244027667404388105855259401545023768846298134497205089333962861151243179922614942229082317238397550794579742636595912340523785085505182333671360548757962951677792514369205330241811759685659093540006413666227674938101027545714882200140755718746854772190568068580932632854690351559046898897975123625250235847276402391500528173015071807472529627565747573371702987546185949469503609460810322141817137171747821101317514556763806242624764173366806102332063992370721520655359725453074952286903187749508832002276328758532030371555297459791829210948621955158847000614986800554118541505746199024132297160825122903132379467735428887995584797485011777690051709859285948209403718881681300730373196191622918169867632380379432806936670447164023903515792991812996132319717877152582700434684581204234977439007965403789590286170270454561877635314871611612668954653230826093620588993719645995303308131968881556289651878216235625523886733064865282755079538903245796003589296043226206700585152195388654135304056834384413656731707708891436681490132900204643187789233354322908002380780760735689177299664748013098960517429849236918274935418620752388574450458317895992314981363525126099341833562148888150240564041322044944546984689876431661748912452967112748056089610150793172946110760303252873624737754043643594048113295800885432320243622490537175716117180757464587700188339944213728445749402908881298175389546517085396942974026417492349953906199394403540304690418457522070081272111419526249809299605549300068506617466606404303733325572799671059864354750958744583276388274150685057453943163852215829955067570138742321538060424324414593535598251432691157914282924691985621977999106871705897985709284995183748768248052478464672293738506294331036603252271094510262514667372632981498338094776150392746450367811455009739545912420305200678963823503238645755954880680230382056414853811847133599304560112866385429614206531787986883854829072560871516217882280185848142819216303559073085706430185578186106838850404977260338760809141216576983603250170865621687518876760905543297330398607006977302439450010989057147652032649705034429218320868317833497818915915355333359845875421938935724207807834989708450737547463511673783073391482294087041967275746266179060071981596399440486049639238827619697690044696847818149722327288296321185851949445829665649121201472069760676046716596126123421384311826161309354161138800394499432922889434981546327599140356124034790466792131265148831402416355990412628852526814826188043124196424289386795018247304443651859216304686134694372293404371522739117921745478007343732302260371290168996266762049894570173561544096909867068259847148695096717487608997977561359560068214937721582717226040270944878171004212669414174324023585886467571992186659262181434989760896706055563232609167237915304514178828675495594449466737576564287418852556201948310337249972959098036245067161247167083450274542895768304873048738750945075168110130169157796653860770859298699045972786855946218101585222709568133609158329787935241697600776609242715144477988962850677493188410345173009533782886469764614560779781589541279819713354715773898987940813986394202048665154472061100109598160735542495560237849814119374027598268679933809968901760849634895401239010020916683708082669464957702005107092619792608313918563137219461073062597467680344883519066758307579183274413528918758786778730294290644928391950000009392723258393762681135516889131139550428053413971983240819536115788543027593576991726634201486134727092304853345824108195329639626042757870765994853844152531332690386636904054148428296711556101103066748507214768772027367741269704935234072755801683120261871161123569370510457266643126012312388178525731840968602325402125199554611808945050494646820009807544841492732652402314558733453741101202974787209191332981357127645510783482377278732790743522139182585532676918539047105442328258906358616889534060733473055099105328281800268848461583136618382233325922533248869707554472606956193076082800784004396551399301345796975032923904593978184479586838207742691441719752950595162029818444321185106124841890257002571346520301635113949229289259079983732709952377465684273309770694136400819180810514631834587483979843978197734786466184307743374994740415229509980615764876743623823362076729351155735071957458241768906311526903652344932213928722071356587682949956477704827780452933452479438456341604485191707023474867342032309129519801601622221814132069813798533452600991718957035259820770290521698733954301536432023971338104244232905656769857159676816614207017874602751184100609732260309028622280318769421718650056027807568077260162689680497270735891345812193268729240477444983398271792339790917422067741979554403018092727551596461696504322621455309958521396554864572248635730232773398929386693240353583663111606211338496399326710574838929752678408805132471446473566249488331578048637463092312533203624179583665899987150601348608153588978170726793904192025347083832037860020043199582076165747601730799708390112292125383051129149482735638707997499637196767441205660544236312774839734761279935651866037644940572981094000402074725025552032327133828286235994069554617542470092382023902340661534234029122576863988493012163140730103116224755284373327829760660509087249015509715342902742688643801539699846610278569718633776526048670094368052029715876284055208009870432675468397801142760461760685329570574892383789000620411619923697395943733567603514459710482940843438703378217730520450944888289046403348550269294545578450912128296601882773652996519631213727073232984649546963801697554223562677336974585671978430053324961235042637745175228331864882230585451674546949306067762419200282937012244031286530638633356852115281858232013647484814255396567426946898821078377360632119759193431852933568293845837488450708133049929132679061162237153169587778319228637688600863998201337446308939826390167408374908067432525294255175514879867881328626442537276714008283818935633673159223607455404262855104551804058215741312840461816074699418001704943294097827179669639685923441963732896695993484618189426156451115612375828484831556389551424399771529881827778209207369845019309474683665766356192052147633367962164292914199653107248230448583335514947469687126417267529900838866684924333347656317734990567079874636560126372974046099884486898747898693358364829509588991730449932657840517413744055431636885281575691892312631081190241087014639531587824779003016994303420718787771554038880569879873468150065352380522316237685705747418527695971841366952859736377408551660501240936347382981820405624792975672941994029371032803542455485867606748634891723936986194339143663447636779666090699329865049732417543555500684049579170820346222807219795333622573517707627193850857053416879919100649777171304298603277426118820708235406505201281441867460759167344879666357973677087758750061659992108840073504162512772642880193439925888501445495648461710231050701530562947064066293953723282933566264732574483684257859110719246927905934789004822542511138561765012307625645409950353482842220175961776465149157763147916332566949626739811091719043059452347620234921622403006326503901927560138284166498774816693333672573528903193313073391533569509591446394273477008353654549293657308710546611133955442344150728914746633003724733575820046194227289306243259918206376153646119502694106290660901100371774001217758585617062031372517246789263200512211677370374869419333061838484412432929366703876829646827089443555216649255081215588046148595664925477675126151248154049400593723560643377557428089070162908055574447611231089858976029571908924286209072201592634604511618430378986980203146381082949481849562443095151549230677497876198448301240724416200437919803130203321720752222681385567257855964748765167538541506570981008827861865077166597384130670912532907286559527247109058810261568955323383761023008291900889610557983596326519474396452180897459628449894996167709360350636216606812993586759787451053838332733395825307784118756668634101753265560275702370662677041890967473616055740481874430979153015465947809643256442703404502329207658098053220117135259236700062436435070086824614997951586569686955016442085361806380887606663997731772254486944591356893109914467884341261016143687208416707394982242461242273511881117224912476599709695907059360849274694195745363793065559768812570577607489865500772308020047857949311481433893064353011159114321290201699113587423520563968540191559875169858131434600183846456920401658209955303793389237095637586581816884776722944345022121322108522428687666053761475827500552896728164326323052003682596515560348638159169244006113102047526036017608593094468926746977064820878598605674736240262398418273591158501512514874147063576327418367436477384739314797716089183216592996718767023452626482095058661359258912183346787778388885397841446166273596034718664191110004648586543909194538991993480472372189109788980549691316988812254473319742585848366962766053287398082139507556569884047830900722587328081474600152706196115447182301760334592785904369282935561799666173402357163898244243160432571735360368266687153363721155911547466680346709567884118594438278421627662536499008912364588970409139632348892425616293847770884005922093072465352388152086568350379016809221323858077058121603642961226983093012868102199156738412262111069344203300338796684047105690348324966056377788655948416509209835286900728841963959429838277269772507820974043805721839890830132463472252639985023408506553146544587910306131399560285689351788381124528337162144252328260330944763637720523149232367167325029792636648015472237603917844747682003797593975450752725210697386510885315478628604480190348727244363707997025032266087502685064601839808414596639717334206842602531812413086772899078092366602173212421856946664397139388546842543245257099742172647888057860504241070394271081647112885688496959103711749506788284429852670980803298987119776252203207241335479813524636956365463877392843333422240923438127594479254511247026010120251913039789740373084064962219856085221546225500563644360214583613109159435560114832469215675837561407905628739368969226436191946337703029027509567666117201376332371720299437943881478298719171168818251663804303347147208840555743545594236893321098618666754534674308889892799888867768570868992865421877681062033332825978352626809388437242835569112795177623750170340035870398415977712616084195277250820362062204520085591015797021461335461972046895048842885346363738618350835191338726604179937615176778399006653368296814881758586167292404314476427410572289700273047004887105970996733738045616706867847202386126544910576315771811999339320028431197676401570336720798786537174786288916918284201582941001710473546798103994828755899033848172879222328173818424022469118893057914023097156009218712341325647020543008688265829735056566902258544759246340036733321234222090715470788502132114755644454479825721917693487511199043415123342883982066923757609998333779462316290684751897462777493194112956071015101889195661596281294170768263478394852336367134976186168346728439529006756476879111222882363249967760031787396596037831270383343074997057885236903897116044481496507684040627029407083007981103152519394976530018808610101511264877173450230137427181919210965651168222609571377454698511971238886665820998605199629206625836889823890716168623461349960410001765921607001972728270916194870030621343674597766139677021148680139058705509681902687579913682230408914280661753692881522778032932268430126895944176078649879768958820011398491315197307933621019833503337882136551599793300561770837778027455404951404695695646749130630979261006380979312340223426327567770758267478098161781705453690653444518924313712730020302978311351882751823519481967210064857517334254852228667699386777262041203607928155334756811011700101098457404123744986923472684746960496906464691665676761303532323451178840799260020186391579055073958900195994727393451150778883767278882261682445800609447519632453534592043806432016848819701558962525610532279633245812374050972769607345241100151228160961549552173563096546735084842913882911862046166998226498450651889224066613627077400835042265566188589628999292040465120791128582285130640875954639254094664982645429857728700278805307545456674443245000400451707871590528241507870097115011176392565294108466863720796471690529432695200769397856782765692043935511458690150278251581853439882769125092609786814729706638027672454950202658814287044539492680236634891780040152366027036659881860647240797513998201718405259398826146155068956716075759266103437561979586346485149941996946207037923812753000081607395250923050098132087389649874407552720529369808129803227319471023148676487560820062474285917766306791770717123663013592222285795282913907259020871536002910891238098885675288553820464561512724403505218487711690303559690792264824466117310880057062707851074225706572281008007279873295689144545265134347318660612190205704664437497184247585974411003915489600557664692735830202422813569219251470975028347783413854671345711776562163496002450304102079088493072039398896134826512536484075765069546007272913364557751661353240750011249645188805011098219534252940181538426779753870868784539844240496218841196481391066137592131970548541880181118941551087553755767018122641084186403482398196061517991566592695482130329098480279601049959212055606980342645260522231462042003953505147970527482316340568959733828153322594819359401487842285194126659354218901665553840207661669038777336726540476513268618736519023644171636922173874203568491059787184904362001704896967258606773550213096717439563696823365595828831480383248737535289289623872519028751746003643982484937062105669015074031641734534171068982646479621216560249509291531724973701930891281125593400655312656738664041800414956663141196340049407444931178913212146286156237808502304857397264695520566211279043478847958006378397175036050048177957800098575503362755295658053622022498210374926649330367579326179774575037191853651645497603241007234859531608298733463916560248460414915139515242551646783879224843076460850030259375582387987001977925361672136753923926560016433922013589995960955382436865794756196955572243406822176588507454241132125877764181657662623193428475783756977047823349560771018523299838952677485276658799108637250506727496592512483420096085661021256214157163382294208789679503749425509268751297477217931938408086681379989216561782986186928927442818090849196134748548655784127723359843866032223243464636296628983612451549974100616136659870195783614378356254574370756751367542072251130984756598045334422657491428723784705218850278680809174562114769738362781032358271778936435405140912470170405778143973779394218518385573966175670566889600679142375062917359547189187284583064941376025423283126733652188998187216291470207430910626541797835316313233171046799260211375298857972175871041574817572095146736409070571712637959231287725068580485967307871706289415742198630076125903054259112214712962555488341075492802960817261785384263074131959160925147128795635032333978877525924268194095696113501964686293755852764360268106358741091917326174093739259087822719994446371431535898793026950059686759177587404158636241663540177914926602186246964095561474864278236723464878882392509379702608542676632577381130266300799215964170462634292095384469429495860990821171992649699677591460166083104602867473041532111080032094401180628328568078072232756365621971562827375578782638850475481223149726003683137885967881865024488544257500131230413997026437210760350023421383885972840228007119692284811406856077721086220411606942927587103413922584159210633400783537830702911894922720330807459573874898619457752231058189358582524057344501462951260088942097830697135329436818044864044021255467251516973596527376428132640987570804576512070490986802366361082439243949888848395847864696007901519664058313027867361872238533510065736638440457346674408132636103964682102622750981439848181350584815644229566950473342078246099149108148415190093081633498367998279451704191868977420228068107209864650777620837963528443616005171130919266258030124118390555543184123957483957353319630457031747369720292629228036764180402640302909296279939373487305545242948216647106041985369848872815005202664226978087152380614590117496037022930474409052808102715522631938534029846033423615727653595720891696569662567078425825948444643336083514282547034084716075977962838615427674007519151856317835752440828207635363727362821319421060662677694479067961142280441729160188799482819187877389399857421009112088015536920443454066647824023164715903079098907947913229519670181417585557374312976655468781245391865788691398648422855733205265764507571318173592603583838691117388679725031193684224269794341417838747713806799025333470672832539714538509080108065308890952624428970385576624530411003857433048180079711467897159516894303439592063397724187741265429953151757068117568250184722108888242766492772853752904642942128732303460867392491153831586160147005021841627975164236035203979167666844589488414428111914140906165321544664339194259457257655428174278742373483845299839207244299478180589558662999850182228985465731505737285277246545390360689112152149389351216441454062646955334004252741998117083632821779676492091368380469568994844289392839681302734182558556109740061038382493151056788281796967455554887742903422212789076966386917878831913334006358952364693219874640684596624318380181583255233659440581986117322557612124064802313402894278168199900368576313055857248777886490719870270275883068177781428588524053256160683652984282725823459281484799728633459141669302632332929619652232380155280498502881829176704519407019833581059060208088424605315326076912694492013589389157074313194280731526472589415129678050720497658332337851752984798826799162851084720967040143045966125244203600720224214053532907884200502764488129318960341640547096639815863287321646642930362892361257146273308459445981456827432329444997674602332205208495354905765528038195924481900722262246563113744263093677738562442206927373705214304609782287923784074396638304947931109624000830814629964421808891763713183833813504270569148841812402221879377739412292586478215294458886364207083971592873136556739001361049237892817064638953633892456910777503654750225882518596876779872859420529789851473741151311397030246618586820623747208831005609656268013291564756090372117093053870161877901111581233691779883473865181635810318535495568995956608790346453447078982611344849685210200150576502264076823497450766728843250480117201791236629803711223303929998494276005874621951270398177343795691622437630361171748037181248419070332627188392089871753158155031156832637104407197439132854009037752910444524371882098738832595866458972976925196692199927298481656314610931104804993341153415629628086004263556131737448391967553886160954828070799248142992312552428916107239480273631173010864356754293483320866483008143910029157551470759361976917157985738642828023288912986827509684610230039505344566848246544653891362421049209581902066642625962111666482290505992530978185091360213612616349982591499525900358037096461111005576885482568494001868290412657534608936343708255528007359966545506807564185702424078282370550591300746413264587772650433920685927641420290396748335392736130492141969714052697175999390716385405360355400665551955615541091110702192388069762473821932502540599589870662488199329434616619561784495900206704632548621446343524480886258041883141818709497223408935372914386693548134400442784841156339152942238810242167729620361580817766035193434149902345203040568506462209601068812885503628260648724247237886651851813846366670404689494097916628543804748109684200631634686393988657157363919098382991361619716972181933378094115140002035863487543174416357923630799163543669075995916337537183765745724090079894705994547812124494825946198330156684774071216902421111328436661099616791736091975271639786327288823739422120068470162541555204915022729981403721308943451191227049844337586707552462557819310663353376540315855988117129853529451614304879687737079315503833508630340501000193506928428856611381649552210042707116557737813811743715770813794522524507489793265537426375412699378817566379027386778040753697483559620775163986123889604126903347476442163788859690753625795318346635711462964559909604487343256079491747533147145480665659872110726333093214191216062500482799410909421717151207937856111742630336981728741492342627598993503304478280841077382924506335257488387854543348708603438721616016926850297968258914733138391737661741356329124177627006018332668967792744182031496397924360139410044467753485446880446906957313246547286893315587230745638494292519558648917651726619441777207704968769010631059628754967991990042781417891114852254728418147467741670656365563069902905317559405187409804335826949049302643810169529083753371796063547593256251296305219820945069834596915000162108791980092138787834835257344552335126904897789962710280389200319870147166681181802292854845384088703417138492304177794558618282923548660733880458140560946593297757378011246386522181705756651785154657175976775542031575561249376059474272084544687235833059616468578092709184373586941733569011004158704031698021285545470495846210147454955927285588618031572460904460929014556846510995741716613059624768987554898075046387946721352412688736041416655054561706688523726000906302135580803560456463281063379643515440473961620534206525169573185798580148369117237703610260710919141209485481224703788214309908196442279756932638635222852238274245555680518110437411858868720853428097729362164541924134536352078973887506670579127257031327719162130506283164813589380614766008501370573779341353666882733487254144891712753288506311277275833424667070356562514217820709470859444430694820096458846107718189897362171735516388069941126966139557868456177413346334621051413346235134570702409338375542132436361559710918008134333294944080171939409707904802683707386211443138115405552114257872590524717361549607826253180781243204641676460998714921684187318671360007387192098461276049649523665396605444185629900033565384983568859255852878328992944562223835956276241269232547489818447152599546043327489195101923203741506427139294516132547875082765707209355447764268544396594835390033067196695307180545823561793956562550109278189752656812230318065819608972857087914055438369819079740883571997325759904074091917040708697208195314877054666600244246687593493270188210404168561157906138470282741714203955868341435572295651531381408362710273827144457110118462394961297791029292879829252683165055705575059228521752261359147056263832617415625924351259746658420987238768610833515186898433016428768697574847110553659006160758626187076163342256691279588072655875198292753785562541747599048631834712172947853885900185688271978589454062960824796823592584445790505283027536655067632802944919946028798315512526248113649912632379113957011904164331027079042987974479922096017783984928166891180473908193838516994286525074269732599993827471589607911230669584108403784072350978227807477660867775192092578574813519062427790886567513083298232485411195395390429560471294528384289646796295784094424904961957531806803320505512150474597636967045084765813325155965964869933242898142573677208903515790542040764529497312776457446869985180981074674477630500620756644732548797707464725626012849002190692320939212338492194211668677464787017160301864936784553414280156952813803627762417898361583823977211599164948850622844215678689579032327089369240240992260485448225936300323440299746572067532171793692874749617071193065662476643454979555154132022256748310282298316796084328596886646583663254591517140467011884219256395203990587351552042844206328413901117544865026526767122948402876413504688927444672507546432644535786583669757367169941992571137352169167876183261716070013915376364210900589976658495919386851698036536934353229505677331935393240455454958177561548945109932071471445347903352034411176966451178945409883824589422180440678895709827773968235990913570725385292586930428381494268220261106277758184826051391979333168006216132214158770605530318538450117915443687027909016834437586616770846302370052843572100734124113386378677133883163405812181604321859740535892988918130627178392763961773736851932549035201508140934607808246691188387456049602206744171174064599036213837571488634085975244692928313380439329396710749632933683160299708519819613497347416267055767443819157025847574542682121318017590683057768284516259451596601196694090177046328525145308589140430204651775710226139913860203455099719177762484913945858118788453172949552121525655973159383062193526777559655606670849623733769479225103802987389136301340634867210547478927874704798596496064995901896822693500714555095196104608873620174151292513974750066812565808867648135367845136710204430183769523861426506675578776902323903543353683126271884063028304141713000209958738645064917684350489389923598044883536618115543131995223103710028056105332286924044008709140893132786187040898787609494551686982838824422063248117580319209447346720939432249415579265195519678062732865602274314795544842964104557794090744972422138026329209965843983616622213352430243248041334019474717871644986203885472518706026716207055429697543714409066899944275645702558642735095983102430236120111848422969091432959176761814836623749814539257516609804459514076276220798437430468007437216836552925812305140084962487772718064704863055857683977190729032698411523695422659873663615548130679637093708186307804492022454478690985627689615618080840932691380457731986853357039351651289579686854286739399594352321126060968805350902220588288062971801257006531604055404403793633627018800248957511272637404642785991011862720617710085866119828692113356225337811487763501399018084129804536358987549816303104359027575149223009040109899533272591430925715016691486527620459089963044582697133710926312567350166813935250776977008417801878419895047018977889007113557580511985410067655178009421399748109909560237987265641050192158291425093226195453767294682382183813240097520324030566710963506469281046503631051932710498272278530913375572030173723717670663484186220155593815152130576170247366531547762213775033596236875234432211923135163205539371167194723809545479965789294773353464563932781948336196752191833001237469526021711849556040194386318350484949793622694248148001423003321969458542859496676373866444649468433969879291830372630986096343608667391919731784506774555774797913231205461151238197034698429057347407914482550213447009755436461780663542683461307533882306198885075595262248156315691044317495068343648033457734771216596719628082064584930337822401576474314348208483244547109102845921303679782254843179647602758230173777306238220636575784435469118699658529402500316466347081696107412163784865782332790826542279757721827394298271956645031840940890974221272845920884330082828810345763402944688003724908839890352715853376923364988621821742630633284835401243599402629120322208898847116214067447760750813528555282058001180294886075211083115855457483083549847725382566429313475091881913968115282848562913928267592690997853328714049259640393876819116016546185062610434331223186535990642469914269082656571962851066362363979362470434663222039638322360019012321242018636282768363340011691409459520102535348729243459640319852430964208700324480997528505601032703193991179412172363316782838344170809678887161953309079191490521321060687882321237325910063419323944032223078623835642052427488123320033169813357232795171045119610195779878964923012890940923787196503786029145731362169813509870396468028202057247272643812076822092284788420745064337287216545861236553913741776963954805162855076125585889485547984910962770896280202037105661769129900821597294960581834759931087994908324713014471635797916011446137402492066825359139911284539187346873956622940221325371769255939545443787246626798453752213455110405770327466065635484184399446436901557245355009492341495661175044969189080183508367650136971268550230338429615591596797115415069421526827132058709122153123213871089866166700189749917638792088416783036249730538560041522344439238674651797700217455062348682824496818778739537057753785405503835303164568436698142362647802714139355577342241393622423080853790146988059937260071794848476520217780779848909400340917002045075953927574378089840153311303708601219420110870696462626251571979454094195740607399917201553834497444977906331374726672585651804679359114596777802831578385600482598253229936001605822427585584011364110853107027259302253273055140127566636265166607655106431688646654536606192683975453763233926728355823442401617772446616649951353161340814199001534572075390296418583001284884042637134348484524355639730730386160506568327869283469212512591133581905987713277711589917662697189861098482049313412295240051389261360971748135641827418619646532888833861526348137714621495330365952174704613601590418864791498666342148508596330003736163893466782654896237764239086914672612216415859961820743410042765039580985088932776612995398443442520809143063087407294238195061565544569871983763439658293819454068469516292797018755717431551280830843635869470409684186791692081172263740330153402204239253272638639136840499564941285573393179943384482111459756815407661131274357578942691032540685674156138749069413287258844215039329999371578087622249045466001781869988127577888299357110149116135301090333223187913918495166627107006381061206162063559811099894630549980768485739972798893733506533425802837264203713541883421215006618299490515144673834482495482437602401905917047603302127012444694320781967000049270334080613648504409202399140221371225067174342485651676880417324204273407869322795901799212246281241204438790964137530682164817632748318758584699374359237448172074343319862820008586503339597740833564707262979313131459889485237783343266434702986715937378881525221363065894522932821072684776678112201999269171740004237879498233176839831099982965075955759530719461517520831736132285882587162200387271294792056564057663786126978873534490672809146084688882751271602688597138382498907903217998782353782808328579046012058294702433046860309618285893419377672049065559482769372943129321240794663199120790499313622596987415142880833244986910496114788508094384665710553422311411288305778062838540354841659294789188206528085033545423132131924646915238276545695428420028872573887994785176768542000628369348757824139329285492044216201772182425002227924415062781821266819130739408043995925558420306626653184744012802183805722555461225534175869864935023885899525801581909214070394440805743556362639228355019868384598527505920655418196655110132894698708747954944573152083719536443749610015483675988797121728819745402009397236821963386132300829870541170477246632025396640868271782087808476320573468268844398530305332752200879184806863229117926270703030115124008098259212776205126358154506058785171164724341087708995787543323507202159872865691296563386297115928307966769899290374776624590152591092715887588170851559346068746664475825283267936710590948250583172622679605316564732458735535898505795232711803682903023989252945016670958636090262652009811670155924925708498135593700725603895150760234456746828155966336276118155610309296889580613389572006308185918408257612856829364647308193550123113029984528538245025050539822541278106299770208888846263735057320267143696633188738978437677453856418354441971284468628474032516056640628279826753819799885298436286084022193268018961296704835855291895017713839846611925566586086755064914778453136792602243829239702639292419487943984318432458920495000211543957165069016774036322853875753769612632822158119250420456667711142969814836303479085605852276847699347013792504713829000140419561814399125805735522301382532579541585906157107563534522164823243306390107624975512103236017140900836494419191576818957679227819911554960381155095964190252645425146824133828496091531544040929349381352931550004191637539837119589326871026318466542584963323992517336782582528147670889585953765731615581611382237866006844960829961230600873997944509333691485791482405068687483775215801840205090190471699226004907333219420725046278650538946945191156543340296689350052510787141779969807142218160276281494296575000476031209964296968798298481243250014202768992447597497284716035977219609643073890422172440758281758919596074797983689333176567488186877363857234775220557916642260652127927272193543656108591387407874120681875322939250625498316434899899869718319608508820059475887365447116594985630185488090367473933812947551401126322808947021778499187743045930386741682353406955837246915806464631250637387094506748806773128008319034093030125346585447925017894542561615357418987992573023350947578120257955825601991558229751600003416703648596821758685775341270340908661141746331976707753698196186971271774356685011454080735421757917215794487840884711567237530624649141911556388998938211493477514172693905218532732443187094319592329938908743853806917851669211494091883651387036339323307317818921657520702101279102953272346297045522215497315536204594521956462299861490642492175277712551560646656878291955487917580873381426726287987697453024814830642542984023050283246355861474048106211294346238500261823456851328801619894438437150923625253907452578147232700328202965986839525731822985397735259309173433702889387417130426216069155271462175315065981619883949444484463404923468821997518371167908365916331562114614272280911653827067473657354754928703098209974256233350390564064665027143545554778686753036689132790582639971449237229283937353511529460765809637159615910781111831135564957662725334123613623970712075859536901017572158696095575531162199208373613351796973110216179817718748053129604721200012756268226348461941858597085548296283385514779717917418991767154947611713006246209820798955631279088990802202805158446701515987563787639114275326850401780579536731636242117956992262811514764644486761292112791808149244398026346514635660925800758187420784005306435210617285278208104836293766721237565458397190832062953793430487120901243367662977682702532453916625900226579243186898793053098680438646536841848804591653756707634925176494780720879819508587047498062897876137721638213441687994083671706929369024474689653214056807088499460978746403667794732983979197628352944919540558389998494408322471701820739761866785663022455317747734901535420875188472081379861577946100221367330913179354050830542761491643241310974582661012951070314996038318398474691194626265186241482306654013644177133260378889395997160612074394038301345796112802765234038250775809974617758153718446150014069355523000041789436563192268138866208830657367958378825145583077785777671490315056666135362136003675371658604270940960318078677062375257764695492897893142013221013208200219673191780608968257711525083818464752135255002976797151209249651480927333682152473019403154375469364455626278275327534900186744800171190869517841370408743863772269293148412537470081513390724975354417891070104415594374438849491989598239105561400602139089594599487123568809852675399837821048367296977916143909876219510790525242888827331355902370511051685907189998822459657081087813136561757216276630411027861928011293211158872753546558916439323457708865393103345191364595539235036079123409584227748549234842066068632267880944502243982450927691007852817315164065375474760619053500863242671905756968717481009508044478476609019237694850983950878537608974419842777394957232165433987336464492307737367454835790176961639144239755068045983226883247060671209516747493685664164657655264924459078133121484167680544104619046416300386279883485028584865331065641823890104626618198889898973253951891162181213550708984030235471233479353651062081527970445738155192763960032099094592298201964497264636063545680201006522310036673927999108839677287786539036271518031385585858854670190183344947730536738201455626067069089681424693868662657881976823732202636250834190893759327547310958673150197680141792709353067199582621796494937549687418048340496478027235301991279111932057852210448655566501887626441617778701728307155777296920223933825766994464541196478883455986616477761855073090174514467607409301772653138303913672652104850066468428598923346156667830912670741143560074003279154020910938515009403435821940505674391532927060293869478625858931859665543679005989323345463965246642314128737941322403923168180969081750506462177229887927076025964863269115551061475334334259623499364653905049492818560310240285191923432191042311235189621527480630827406526530803577739114071357475651449570709230517569874503294590083149686593270147427445915962566543749402251855143555070707097988726159193547396264934235995465902156891250734549445797569626153686069791832047412526178679071195827641775581372758937891925205790090652756467190029945538169699447521142257738668871658135080801966360484368885141221819660023428158323705679170460936370537432924348002897715763801860753296100734809299379149308250854504146320036020681098063510689722333057964968299603735857872338035306867391864377704733117646704102526877431424869489724594571821426494051473517155850589468114504264423290545938337030321504992236127082280638768173558209989002304452671336003803505022071382960319506366113845753117138693073714055497021296247980510266614364185984954332106776737412733132879189644876456029191661520549521736690621409524901115690459834369518894612804072812934624586214337033711061390380390602596714906102691422625245052322412773143491859587254802376566420689015931031278807413700170606190545589013468042447213664872699075064649174989102740849181698970250497337015981259606715424928462620641633791757822071338807873899663835678129165907434366252613481405278424431764174180504707404868531795647157957805147486910404033525173885125562438744486606908688217141612676395030456473831253668997804763999815772551019075732854963473620421396585722197912854418366268678020763637019023116627777801799728100517380066818906722982280427667308102109583852077128753659514403466236627406228249045020964874502089059837458521234016239052799567404855313009927054222885053056484110002801806380369877781340737355519599936962041702290601415263654915511515634604300480650559331666340631820057930288387968605738448891347328815419771403379738437736379466335676271036300998638985916710407011383308038232215906002232473123251549386333568033079538411005191562152075992974866013352015690930188363492360483905885388153320410008975687469733759980552702944105415437117829433320205205202189862858258895557844348540610655407254933652162345712905885482776073220431768122788323257929556199297968834855777923056888891912208034336073285802273341225721274558133044291397139096101027504056251652716991445192524792638183782714525878227750445386531386741067144649528666176228439333604424849287885814487327658269998577587098366311042503532545107050874437838944199706650018554955611191309075106224013337091599469367723494616970020568998773009897709763990961458557731627967372312522297310494716795542293615535449151071414339654797825329151201605287508645519176645456135310618357970819796667141156051569914430181951865807365223766970829930153123424994748813492959317316405497066560695108034141991121088522937513505457966155845676498128564281161481196978887487055146256508640314463023575482612311367316922506434428051020849276557715534916076169160947662357538789774883754959361803516241423648520617796140779752152565375628417505409239238169176677979985527530530194449131357479406311568469809268791578000503146926092898813779278721254300392134940653732854750146686349726683267489914081944782537212131077344352138186632828215510442328529171426937684785460304202283425466951702886623429086098217914944261913404788199068391322310756978117042329413391544258316281070273500431633240819885215314068207702877642311271387972750138300215875783454833750819288946777581377589463893971844217383434654633126745906512403034481631071765846358216321422978555460022005749010179114649526320465125928559916345891296114416933015993411798798982553563701633714617286209426994067013573738435098758901666772914594033574759637273775558518587089140396415979067752481928406646354539025932327869859666932346440198238602532972959230026416307884236831940582701216137028283158878142120879631994874605534841875358810998098239530960487199928392541188611882636048442043690176508676151922249463695812825098138230342504796481622622130368681660480642706209451722679326278675983744433831677184696348662046092720109648784750821858275503185877617416785048654833151748859855674788939305148587914529582930352082432867883594233943451912670082356717408965867148992496617750740640047566800467327816256530463941512526767615586488298425014805035176018722109650210859977467152252108819083535978800151453819313067717499501623840234362724615845469687981654008624869729641401588150772640682854384491961858943699363549455793738656697809480725553884406403831742642035191666793197692559264375190747432441910472837140534554185692674728567776476783996592353621385926176277246211525928557965121762136982893075645104364277472121053953744086631386126642812775659797396661080550947740814398984591223637448427667854255881418151716489656358896124758954463387857346030062812420040834277071673685916999354325094924825471824600018597541503367947712375011932525471465327333718540710473405424871837845974013524003150628472158219249086851571371138756248332008231955249051687791971545620638338432710838238293768717125061767849869090793465063210811557274614669015846116664639715020589085715896037828227524822392494026029727774121414462547040831794819930154818348530955439776759957408309935406642252783268067617228188093052052456973675649987387874683301270443162966626861827078150891420951404304967698274008145571873725943565283280378183029337406205292842596080352978531154003040875394111846183907743641913177760724229932222209964465697786192962841225511972040169319616219280841793802031647900279817143739456386413932274357894595729564742769981597123359338664656149085750788544282363227440134055938557232261272876940620657358410448400221091986548152722783975971282432553194657059694637489083149093144603944009210716282498229923729994916725386627470023668647113077620816108492982781669483593536139122007032634817672243871967595201892266668814626565575168271580892900828777870022661694369293691151725261895598024453509485481600691875329159623727572256055868046273448246769965639367180021593388747358775056836228652219078620591151927807397451302216628229117178005779089740536506929974102928657579207164093021089107008804487528867152082774396018605426455808162576992744087310182968141806037939135929186511057308769932360137076684361215631394289866902781348856898051731697334207658818399344042445115690761028617739725602351127827337614960723893474258061574258953712179353168676738063832123680180254665781517337413804565767096664513049527102319975289994051763581218345791840873464957482018062005399780138172496493951565986957620404219182664285191608967632084036292892801155802319182480894206285266365019215691597607423754501429449881524547387506709810273992273336543037747136953074013743914383729597614213916699807186696073778196995536321217534123565561277676187030844017802075618359350463795542707077515059552046310708582814036195127726290123028732627280281904318175191092884020113453453004064007563785528474189163897765932222583935814275417941316619320406739305060506283645947718444896717101777027053020474719861654623267976355310737571541461092438034356131645575219267607262117146875487660719887643690045390505932946524855596604135854512303713966731295693085523402799790505307686177313496674202575208017051259858695111766424381267305485747852521711198544994425776196907252383274366038596632876979755220753954886284234176858219780558284718603498271694806133875212219989986959884210592586013435137491019815091752518384092785683087161347629221476196882069899412620017677787311824706593647650726873045753624409562205400861023183470346278225129294289514102440301188072237049323338197066189107422249151456671782716051147695193884739717388322194244244324234302236587425094306187078013656170428414090065496757175110101279939416810413426537023373512599931854305011876334177554972372656125883548417385089202291222270093782997034337152824664176516949995376920756762985242370962830144247401338599396521787252796591947269842010684177626572477417943714092296530361452281231603478152085209605156497169468838901193643712809687562177384696398708732875455269875596320960700513627774460164572865370955466630738343893657563922042821468701094688979812394077306501201209194314192318373307808281324554635098944469436037633276895447203583689743300627665470688836787970891077391591889290207668151473034183098865091369821543097380920711997673443371546331995267105560413199000773985310577637086926773094200241414829791659299352794084466176670913239508904724790026205397857575209230390525263600920858931209452414067056383889840174891434590879024645638822467741891940421139998093270657607732078492715515599049167345559923496347748608496478034507864089777321966799805192020932523036980480372112384837055329442408125248582389520442378195393299433398631786732531910539350014643231301907461672871288635849402606091643839137873760200880828266333515081838981092277456325569628174044553459905825505864212066989490973688665163479716661964116589637682168493244095459328140632163429512579246820799111790439449638134511066316465009669557466444719564451209916118751664940250731353015750036891506915719496810935095555367541809255498027176021202230348121312070520746539660300123556431116968990977185332281041146897661910096796747520824163575978173478117322123717805228326278348899043130444971263624153434671853503960182295291245391197570725220290228304596703059876032937450408508256758563742227165597877790491836995913463606242790809148859184819353021613409522370050757375085932020319421538494055456143065604684392938329884395414464924408652923721793255370460197347678830927492344708958128530418315680659541412263520650717873409382670086527797788698230762059729327721091845600177727858682322796133565601344097530464907161606429599038329379136161568396999012321235398326161330550068423450042116176048219942469735182384457964785889013776824305600259892096591121758065568753917645550806559979151901088077075742105882978052681424059189011716502544005318156078558061023464909936295063874044045700275816456642695768145931110632363676605449036441446286206992880751428985922201771486063783624366623435289266295129111150817674097352219014867210161161329137414521649155365247987797731138151511449167281381543765394324274924276444711258864441501064238934283130673430841858471900749789280026078577953713796242106790730849910665493496831084375140359598692693970892002105699222880736979143267424637278648091088270522948512699211955516061717837194010644658181071755504957039121550348772806964048438436965846703602724466068547030960178905001028077348305813603496490175501216036468934345757193795294583082273375656727374141945352138263373442582256443801396209615900782496640912668321542224627544869451839947449190459205935840521739289847742659080625587688111407233197296134291294214722741294525298712827257995035357323167094500993703644985148184166157031935942018836446809911166857537578811276278202073463102915132452680580342962530286994824957214305782138844370690769961353375109709553896091634186763981977595759203074935094989409952179122090732219904319669394280146090484706688313620835399188576357949448717536652204310739740309204054672145478341543672241353342745328392370341230066904171204974169300231782944287887114918214343642100061405892964152670434822137747580967764547483152380642946924683562369703043316919871516318487287042625201750574212194138552039345508997665410644444478927150318193494718796445176047340582619807960774263911393149314609943384739915784140055811568816924115106378947238398404126951327092246571959321731741305312780020179163548593940601269561595000881824679378077987922948426851770978171767543526688154281836393218684451112829196603405479232417492077057684979609450539599396768965750256633029277441642915819692232748846787872449375802690762480505365053224771926248412288483182234346537760233037814030382843406720441028565509220454702177441786302684547421264730418279540457439568103677577214136449377155241639844588407349907955959310838835760934080184873923601691840345949861590765625301988007194957825777036795054716919264463928385304247251891196066291336029387664452185974089538856538182548825356162659288216718742335361587956843530979276103125328885576065618794242204229164206111914336436601166508823119976372853127831989751715888258550101946578136199568966249056039872048717484788136416360243987732240762579092078224018677464223742409977887756103171110440590238995812898862270064380209911623725548451726578054291900616096445041619394360210307712357349476084849037380088817289645467034237753636589950064798323556377841140087420659096695279740906097675679096660445344388070582008559367963374331626466354706943946558322645688184625890800769255463728907379784483148876517781415275403628854348245882962348834776044069793320433752288617267419591808227036412297217297138700574632688227332611796742031128928913827250179665862273019435241293108950378935694602438185404190761839316746409562728843439672092934444536379515278765548200490715618624554618545950896538097345717354965996713254745762925907838467930473514978818081839861423014518054930642923014048248157806268802592825619665447555065676346183739851713139498877278365355115123828845753424072259476414319953704846931893936474821541340174360640740711006841310113208949148879314118171390296695920508846531913736253553405661024844833996615530680481983533703127044656421760405397273395040686684191215254807184921913690381342524215843704019223987006130106283290190235710939659435845245913889215180363632195513216406296350644568771643701899547741969044429856789805529401620189767272675413054463301280548495125903107735886826571445706905269345962181910681306398728743090744255390968268149303445600042135698484753346827615276947945408597891960508230393075542806163711331344940369146399015047574543574795798289795563919761405809954392661661177447608015219848716628539881878047558482661911712040263667016905626939723517670536718782447668489480537259631753631853928981492318799405659873778869474144407335630337998745852298925205276742835613711863103806765714481285466252429056151398392729776708457072818192445353412697804454236131794570154156975307702970813927119219455591565405961532069789197753590408301576801631493796699193969063664402391003878360976109725076339717587805789846236730407006481091193313963081695527108132528151823683274537116636392452346736201392732951853865856120679159818684642458065811982051727623512179399981165664801922499050928113784032725270711054845055959275371600189211858322230141545157359542789136550989872955308447704712829440125333293878164241213290749613668766243865494539092739607056773663964831499575518653382247741858209064146313915544375760756188276198368742969680276979072990094237085856364032318874943641647299692991939392328776719402112341577659932161911397811495363910168474359816340730132959509871194585598639076860870911623806106288268324030392549051426152029873746718775506899976691059058010290431555548239876306188951467237096207852909948428382845916139179775351004105132704200950656705359049030072441912234159796372809835585236436849639865076185565404657006025734637951987966696239696239150430628499990653999215403822819202533770959689888326891673794463001899422476678694017025887948868712903185164898053272266703454674462675755923157397799417893820014526408639592675092899631129055924720041473761265415487668301266406738043866165043914378502097951123903655053315952525012940628160365313297431968877665570761946890434937196457137146078343447374453188716732256916483683960118811475144960899896017067389388789116580609597185687751279926100615289659135827052716303694894075169080911993096789876542178158640806371043966720027161691580630202191280978357779491793285903953701865404838141540046157773902385855977541423368024750903235566863032902151009920551325453249748120742167198906852231288893658037182990795198624134040526866792135451890461294324607841038652782485604352700080926253682916109069257842927343053876133078616115372478713044865737598012328464540430582446791442100454151238149045657577769403060212268782126247435674252822777450542486350918525431687869484930598192659427242416816871335963583363541393958112890058192163006979754640888400763784465595732083368480785378378105732119521986388530681342414109101204462335123057027000639333226179009255477333959905829156054251767647576494007202469961641503183941297472169235130617939307953876891156254070863533321315910792968444206713358903895254825801996728148845969744945078878953649466638646002721628804996009281146266482185602187389356053097304298543339771398238183411328552436072903656453925824250015153460340116863663050309403012081824109072200326745366347469127159275271346215527937483522922487425496538773853746562343547543079311717293148417837338746994535499252621053263322247806632891768096245971791612484771699944517885218643068642509629332683211095565831207055984609346996843285835636818654500628452878659130120591170177587644355900595153668137980398710488806866429719942783830413858082674117075480055739154204276721425231980798261628520573737119596013468398032159296703248341712065222811476636344388930530401127122312254201474263068977687071885165243473449378203918960227705400940954364948542659427245186697073762979036041220009726356587283420698643681499644362376703926980926867110360388159924767395550291310063488370437350534784386688508508123096105309567816869586857860398495806107677642282779455594670543817046353015275207549762866086864641654535512977753308741026299516629885501541132804826927536122052016615504925839232829345906382849718233826237756836204501292166775422806635586998656805965621062162852857225583529960006342480979849279575892102660315051134525090466850817423533794425670349678645011599049489464477784932510403202960041645473018989565926260807183214219421426743865514962003263808118778643631475030889317031265950310239135292905367642449717207479482795341184452270588726516050783286651890807704222731237487667266534274841123886877518080682998062845274902150717023846837749606037491282232032993733770199362105445655656793726875851128199142828887039773144220408034574854320042893480291157158978180236019311131900201033142269178919709398549138097364164495151557413103625825690854955448262509593182494799572026900773000428167155842601322243636765667459259663293642448708300072401809398985318015597555157024035581704700445617006270375597812031075533315690747442981454873758132561422566714507675916874814154978979740018880756038881352336831992259429814382734568624116871505937888980478284175046460476858932986612967233195698210921241334681396520118687319826580401031063384228646612671150420228437722536003743858306525294118401521833678463690227065991474658279806790334663825224755778846064869108196614700373025573280183269694837223004394728792209795393947619344855760618961886539463507814523935100848926646632950496873107845844795587568845140188587058741284714746049972494819954366429513584192641066634210919767195060670417179391507715785021459622371955671931493513747864765083051882706336114469784822891123709449485683317569691142295598515310634812124529642982920528636772920141648134287704376098172633417504365442886053409088120365300928180622557203118959096736623141626189385292766880021686969101186196846612054414472378546780698844576325662546123398589844295938099534322802051853268914486498274951982471255339446799188250923726032602465960509412003858452229577485265045431392190416197677925112005897448511607670042187342744852216110578273405196668402844530408386850873371480990823089576200312095026981829140138478308985842471869483940952389435713383212905875490327982988027932341949902166245977510057274588950637840577335204885221366584332089036376974985484416371721387199121960165795610838518236533620342324556892724123471299782861531225556891851906791303159534262518947237138132260968551024401083900138723000082175479369868570897736235667451073801978977223171825495387899681694825010016835369965104976564292999025047759290958427590522313797956764454220422762063813546019801112572867598603405377939775595933676211518898130696090822798160536518449081603482006893709178615184506530526179466996610989431831586257513403008830994667105680003131753745203614423034514434563353986077200716292317146761162916823720560240257927281865355827013129527473784603825439498151072565154417243579780513449749917735540457905037670164412170543585642606513065375728788922926796609791111202779640509090923352037138828450077511265579211943299508946295043360676101566548647170836139550570756202943832933595222402505247617672880210049417765824994684289201985690873552276889562962529687964899523108348642736267183614186422550451477101500179817084346026147350949779833247127126691708237237392251980423508414029441516029761330630446911855038318679406960346208627020422612317737318850656762867681156588037206377306210091946070799619050871520692324428397243909779929044179162760277439045362113411752994345790779247165096321090771607995816430898697830772621055527651235832715947683550101513625213410059537009233095232209815394561083480390996422393851183431036229530781691053249451688288705843725513617920724612953246021220041023779865678449574308119648534349799653101915039904398093510409966438208040675423344237489358692515712104071839059788406528911030788178295276637944418039375593852719381566060158089000164175479700541652628812303188934449134547019698107910261903525445835564622186338998107668116454300264255593850834411019884153062166016812837150830865811027550059225903335263059647795981637618380529471962523827697464769214701550617376460681356718192847854279030398248783442097146758120863059099537177807517303239631983561573784849750507557014025542098145111167610480558549836770660981982711432468759329148043799078831832060121108367970116575391762602595139737958031314023953661364102352650296976797820467506518181829515929157749354149629920968944049535938002471417463312715901047574643842541196306711864201003689041022895583392776988761970813801875167777432522782566183099377368505254403822551918031086683150912964656190934846465653898816537461567048982933878132270826526001539590926783313516439569016628512493363479323754326344617876879804304704623901749278655119807812767143173391478937718818787288755982450843655157580188918692146856485260031551466765653161079326756644882304739342674136329900418604824800333470300674792827619065667259522463827504398039755808355604324823980224815308907984827681081807845076059567734926609694099462001026002187475937684793946650627278690407404793387229849868443589904937993809195623695009057166230455761355982128404075424885116457776848309459669289776100220573351425032179268266513282240219153965974243825160791229542049841791291656404561323680587339222056983859532345101577701090986555053365470040200203790120788586273983587391367472562246164154003614874617950090398453552394426590356536120962878958214501995986602249041361396474340587077787016178457594417001398152573679614022209356023719133573999384752061938227901529443981485036973801085050140475871747554180804855722890482250749417072164045356725544126107301714057760132613653430077733622110778813566986828435176885939368450001972346186885843402974811939592396670052302015185001819262270233372240662310105707043045657146087214270715588903976881960755647606763403537023189055950499694058503680083366693679098018527482624932230434594769998581112543739973613785267342764870059686713606791089439824539347919807480141607995316158691855933319701951614145712131002839497421292519241435629678909781657953751494401055597229127639975604837146887526411745430530732203741169413287263068418599425726530439843653790527197248553948557860989455116845783130594744064514486801671264884405225590494839833140600971878979402697827915646427339784449568517803732639613709187712075215234166665439233994256298591460167166429636341808330242845564147834252833084382587940774322879225746229981910272808499931626115389595841008021012581202783598622227941678807341299412284994660719432081639541425447975465691916324920799177636032846397897556681315325332694954635123426341504897221019416938396447304264581603346121438675289215484262181298143359842461030745867692439097307943039058006834545834065905801401615893004598822044731665819905540633796544986228265768309111968291426114273398572923219381481402058104273999725689964400068268289341470272544202990606974355957356961862774896152154850164772044325206547782220111881583551654518321408323975674575241750787669564254295170997608333130552605676501908730121121487660777018644707973294657609165345554067420364769136080205410319741829758975132088109494669327898205141295890169883884004449949151675014080744602890813010216037572558177545282968979084373971673538568808667064360663559147348631465840985451143066186489434427637566753756583012424444096419763287525355902003653815360998966096974607394481648442408705828938344507765580370472539819778162558764801519387633175114177980493987985636565270609828929734447054281419953059368239151883624334701980596004102016218393479528865048855821967510224294305566070251469264949218277909958686637918131587640599439194491814232928446549795555432036475168453607542711781905000016633309893849268235063523152478866347691579513204703314351535081626864231852181842319485975253049880312189717795472167341323222921725140996212682096330048937730438076524550937374987611178994773857781160185972800083522985417865745237860192364089850801955542603727012291471175733593654169513740232210817692645933942137662907026852622033082924472026091204232526690137328363384686581257117069145340133629364850652982788847682660975760088361983168286764777694852617560578106473134880910904960106451068300146118088075965992379709262939379432214974825886651963962244440411089251709419330251135555351660158390644338336601210741123186131566704228069020696039333664857899860001476654509285028645733006243081040026141190885117777660758521692346963758403441383434730609937990077236372587497994059057199017160303519197112045368392816283359366371112322873820370623569150067175043462148196518393417317774891171076528847478264395826208288682443579189873644767112457194339252576869997123380755810928418427441008123419161085095074810892561178122097423792685964857054110395301484850743642334151913447377615758149579089016440538526478428416797174270148157494867748616998526589164975668026823593467424965513292648597139116980390854829778268354716598798586972304393571188365463026328744061649206137128453980382862608536467603237295875265311158388375973663208105443772592551274143797577017238271186934181080218184151446929850860000571120915738435322182757060965442263048292259898742961056092826061492800278453763571545447679093879697286159703206828274461584942091441743520918013943799070257115947363095699498716802674372380734410778893952670931496557615867644120809927849621857030164889094444087256219169109589828995052021478540660896970366148887684958280516683815338232298945436193626065764041713866380889431147170359573563908373923125243662644126880487933543366144559160690752089717581302662651865328471604336384814264960192140632095228030686670021304033455881358029573024643513417313465706579471302965059651401912648823420034241754972027206538884144699820677982760675879086330661419810072265045211509433686796390601459919360732328750269248931014322945336483473724713610664872938275402697619426367088031247918729247871670510561897066677998013070762304865819238857470494645354791752290114264381501061563004436407690944845126779747828550455795401256674044461907885537467322001362312975903600269245172956211810458688806730236553215681913708011211714067302639367137998129953149801675601455537325865730081436538578322274536963771735906675380038643106615883972625184083324725250937676429024383540079616321596870983266212985551441036587539448489490315705254342082758523188448663815120699728729502021076669375590918824766574981595552745599160672427756753340917300454420918415261499432933887609912450763307948790367242817397347893447391340598012281576906094640818509698165298099417075556828276475577571672543056452939950831879379332018755885771621959013983358728637553455245164250375170280990671989336698705035254223541195398132759886123523340108915241705095847620585133203938824574293552352042086812056253003254778609019896393541315749521111927934194220104367843742143991898265848397495946970192311849655705322743661619087309074037009655752731012814031104077074556573102111027533696900474365944694261238278395426916059390967123900288175926397329328831850472382036867999549445536766344772252160115247002652497029207126647572020081161726951975242239209715383370143399911412711221714646661364155618681645144497489550014681633033321529921054331795301507344535440842729520156743088147529813450758325306319063959727487212850892020521657137669513499059466025469383145730884170249327631984374392941759230983183856972078228114103637032862161617639142825195465765469648407114559980821351141021117927500433605862394332033601065425428884303441188802367241304979449562642517646171967130354126990340933142556654590177978529984803511834180586292340387936934456393018334284966983145347348459523771845544817550369241520143695457994569205899023981060399494682283930356268081282468644103447417020840872361126416139015837506064630518377437767945458099767122567207413465315000405778516029429673132642033464289297499253935013237392017475647950406665127666427418273687667353066771850376820288563592310062337542484213153517649413992388116409137166197435127513274744261734313541434388106455423372106960635857070222056159347981360812914184498140262844990429810641775750970228670990943047144837803562337514261457977873346195354030290465570982105906181361288606192245112274270298402058914637126495436072023177700560366728454259710640302794002328375828748948693692793190244761224930807650385737590229459804938341537767438338727926912331712917747867166810479711877545629916560787520326488619509076653912069900732945614812235549874668271288667616702449905534550538738802410514297968521878362125643772011531692402290035627627381915786141437073361477052405424682885594951807394481272365667714726477746459167133596477253351546484062735692184726908513909938445545129443481106002165540773254919162550164501336874875758636995340332535991747886318306333206006054845210051332785669955891641791367711568918909694932726914403281336389869296514195664585675597429819808153368789380541063457401230200640021332363656612808128586657016214990278899042403432406251729365969157357293527406592486754942368505658472555937635712471876243178968901712435296784904564231113056002809135879227154899330042750176020347459811516114012707912818802086077703413688760682671021697247802381788827875276996889416639835347317713487247478853943917225683353706868832410873458573216148211348163268675887489853866059408302898393583996562819139085812653643098302004652893663299148115067842929491399766697811266490354509439495729306446766193366062025376176849096606927776158021615298370790626424815646871635308814915091560238252979718407454430470153900307132065600859573411533558091103710288541213175540475101520476692542713358132994870379025379265049900293899868443897933728131939452474503796103768047009587346444272013205422156454400498872950546593719207532368321840497667221279786070582493123073393308203303375366250110988134478993571555970663489891298872940898427935431833480886821943287447386456685288678788565374363070186716843433808003840523586539636401697743233271370964635278848612590661371979486248059288057086263437958855424510673543236656880765970721691224015455638191275371948575532308349250493204804485042497604090969107804031527503292703597411931742631166312368781079880868141150991957109649895308504334580017177170118192824023650667148594291877344811669313699880323962771537681287159653159342239472601528522872169206335093752736636249729695795247679881783372642666667712048261275424652939101925410368170076542496747098516816422033050329491814695930644459280124966092117471174849465134484673310765525600326244919177780987220641161112551832455872901573309971656290627322314131103190985426995835912545198868847364261329615879292120012285400364438272971109876077504417257318234517277049598095697541671995708108607478052179788005178513064560296812290519453058432681915137600261946670207900475049416252335325508288663989056774974194242037320031729587472353865564388458895115104019700389627875791999863187849434750670342449683358191892092581511107126550006303238360773506991839169387217302328357511494443326523787250879306136757050385700746750122147532776619098864910842178126353740461457128563127639962190893636960568885995087021235573973973692572741821091224864736340916082889867278541125828449882820404275100849321771719842784325338965702358357225031047803729358180060133906842814454789855161275879989459134832464531915764959884347894704474045604284836231712517513909444651564390849858958893752936102554638611304495653795207239420503229125941835924662818576463173428083142780601229838424514592852161576365729695063919946028290441467572256399563041619239967384868030314446592544476193094532075443818869255338508026446616431662703525693926964248967651479947662007453472922030256996370138546596901417257954096043940641576111494303758004320801018880769510236524349699194279601521763215355913616351952008184550162385862092516233246228679013137958766031060701634678043459634344441987315469838514066851228950722369414898319621292064154746384607406921257773236813203257559906223314006911291871869915139105553601836546597447618950165679794109845645373237761538420445055152617077674231134563417401541093327156071938248831875253785312734731644654184686646427876462479762758601017101426798705310290947280312729315044862009166690029257635839048068071055549567716918997070671155866118801826474377635526232662935742347409293885109812634849433230972612839934892926277322978309429749677825951707323324529044318355310313177643997882631484805420285273657528045130690014132893654958582082718871375203067243800740938373333363228645352271753874822462828006191880941716848431394946657164539457166059516677161761028486177190325585249179989261165402981648819879927455004287488234999988764786665891652971215190738678505833662093816357031648533972767626581801231795982223118533454142841732828018087952697446833684288625968783903789451037194155998800696279851170670380352328442172625420245644836617927289251242401914909992183466529659088807029671166010266686642140325986261823126268180326996253755591155422952840240526808287563308884161352333206394144168542774647527322161444842018405059054169275228164570874119314680750587415248413987744974984830644859788843152003092956649068889538678843164261729725295199913615331516755642524617680615586718024416244352206369629314032565183453807760488101537812864324792013884059212998959226923482481016552198146602651432466302899303961232454586868353494519178327190102924005965351224723837094871485200106317909415705888105149694600262749481525372895693492871864507713000391970726653259733900825745297727557099288330369527650541806671134842192249185224415286161459726556310232579953477505328475783543007523915026879217017043965407957671179643303001194819856478374115847068808034164668300939839373528562989997984307690574626802982886303157937080492084252772843182152248443788331272573972583505892005462841774139887607258343364157603699660595906677068641760509143297632852915038095909459024678151239427027729372682495712894990128981245498457784639269544019904115070418560723676502439812722224996063442201458995356903118117817277404348871554522014171160446145606673647866311771815115994982554843731541207848807659403623075727790391635401102602833900372253045349842458639059309958919139751953062704905121164890690593691688370871781038737631521252980367444302358811591961725742009050799548485896560502252544933007542046225893859017453358822122150565378242542498651369890595828601627559194952578097356398608618012907270499091224310110880190030410765990273541057401580366903377826420646238403923933104574735489833092544772586778251890761622557931972710052099970656759193550072919630931382224370865866668729791727145905793739975624392319697781429406987597442638998574992797785231788019346834055335658822033233243004523624596894362178329601162834691391695705187018252750172135441501359392883084217982923157538235274123807365790430609396913445690271046822822150382426707550791443248576655881842215958858601107668799519216347563046131146377011591403273802827729195511947495154894446828271936716470568591459534486217123194219817467214931475361791891462387992050010930756970134401855295740235546127548255725047551636693751241663460395939782045294174028480013957385452550066912776439836812973119753963530566784875261215792440881454226794005029581595948677217980446946078011113324593439338349457554151875927503414802307885359828361206675641401790825123808504038160956850197255010919319959836440694013795978906999931375857323196704467149025005314255435827371273821598701386917213732282350937549377264318834595745492521151340564904644024735111542886055161043576050873910574498782360252039152369317678724875258941816279041556072961794449762860294806538549837576049127194651519781553844886930984632988992782504386591824507300139490626336349605921351322871570178241461352557366266446690138809744286918178552683537426386976463413264719299638143954349911786563966402178385800576781981319623271574226267955196405616610402394347021834520318614282148879648652869374892688243082931074360644859705903074387223220293407598310466190624172438693283201824684821200108513628858015351997810770173293886549988659659889444220230731378815620012806351222998689192671804167458577368650414057986654017744761748462885452802782455905221805805101664355300527493317889736861546393384470912931315798986835926230759210643980663805675663274795620573036610927186223049001866929947484968198405854592963924921218936730164908622894722021813206354727497549522488361374621747248065946284610502729550345576296078833786602295813060138789176569354922862467076906081925076695558167154148235361708288680956805349962621049208162083442748540483996927841172413234101525453451935983795335666367858424166230926185166871137402704155751259095256881189506282211355096311016060201797485180484825115222599104315672855351238107691303905621708197801278514732556823397801152694873940201904137611465587784591420474821048918708371880062395292515589619846724498413103313951863362684522427842696598285278812629736318923503742131447472572330326148095074381799089227461367176975045359408422204459360801072353565721343668233992615590916442850499581073923998113068129897534102695181730204667635038245722187537412076046312397923913949457523604087855847450936797583460058249212476122420777508327593120958064940185115304147526051597226872965588952656911846991402273450781951685744722480149584583802416137107626893185977432746232028365675820370202768150757469363068211013332647809201225446399124770995692953571712977359406322592836236357951456232620809005727167538616225262738134295662688095336812758675826233418341680943339272385813534701182990472734392509724740121771779877002478243432454895258734109363266116367782660779892391439704706799893190101211670826733145556029974109985851509151427507823730153068830313198700684501818194063290132262946926907491209686953650890830938026170827021029394584755690077045006138002563360709942220109072006956175454621173622859859716353491163092263751645103787658560076404845165093227101520153098143596119356809501473180205046272906841411698977014240007952955426040586152918250240851203071088225416128115005432449250898113969540685764754717712107574373941483584195637047519782577258545283888685941405809814195213349544799319795674389508678720192351785464302765003044018314401657380365509355083692511827773098541784320834596145724265856478617869909170126290113814485974571673665187496085203163828789860740938551336256311932207136491218559069032454389723204419515141210842473253316580088110641731319232818549860773298488944664752584383621368669172841858936975369408501917044595835572904089076862902894440651774090390776334987568612495644757483182974797907274777704647359049042696758515001823986775445495999965538629497133811531936337375199945185807297441164108032384399169934020234305177431210272034686369181714415285240737518063663982075011756109828212216548086382081594325583342515849139525667720586572449645882767521651108179842920217999007978242277073793258963531183822571185792644425274070670910395797265825092905892665942695610953731806462979301960239793045416449531260243698817527896573507796747950526718998047502759247908005096225052921834387738888072339703799896131655646301668838331088118656255185057900858982591227036018966453053860579533777214538572172117693058022894746093372951056052300709184928001030993037450832183590706006104059893261412054927723184264058962698698592232982423028998849633244247541370728871157460813409773486175219449693041436216683724987113206117377418631308175217380793233637262407533556868005465179909044149104021372673581811809731210367082364381764433571154851652484845300763307662234858685425445718021237811318324818163981470478258925957982112397477547815113666598211909504583943097363161055686169388839556032427425677930572636287431855819082481237121031314588783289558972170331490038593746344903517304723179922274161881875097157616535257823692986712272556119595037650775506971897257183474555968842538509078504416693661821596431696465418703930869707362269035560627259656091123436374717372180462104538104598691629172943889025475199331269482707282802893020814336095779769310225061588496547821572827512327962981434616695441134978595847634373267578754907921425948390454253140608803231231828886023520492130694877237800631074826096680358097309851434510466725349342661256886930002296846925728567441145040795392705169894645519346980753844654538856635412249563313106932082015763973932286402562745091581239611880353715720620786880290523298582088148648786747777027966470849792187817609903279235135832210740573324122836931450268858845953192585546788356816010504997715563461419271450078444553966535655460981985814844402802070373134722158105872676000229552770046158038971728238963577053147024961090136866735102549055473131179170979895354465382268331487197525718216999152722349846383353664639883619560324488522561605427490128364120661247767330093952871904329998554212411200141102681493222567424970114935355697462076079049652159509390070659129170393131181276518597391498499128680762590967294060174819047483445049636766572306191664345404408133630464001234412507611760198028599463105969323350459100591290769814104422365191837700341893533227504547737062684834702350812389315624240409893521190498019215430561486199563439638386441366091244477401733188292547055495785365940148363254703871448603034984196590766244199391622365823299638881639455574307493583717484417205988278036918750135958904228725959852588779873929572358387743939294553823440390372543929897348530995387592568393706316701837386999963130167359927646356625637477881337830226448866102688924605401990298167011170321616480779417199134822861697288387559513047160463131923406051313279715397151217087717058239404489539918902597976390124619984508757785935288678083601028239672522340588202328815337268770186662627211957217608197699423896706231584888337873148471797922910990603798638439268992862090255072353325348184599490168487875391690477226109133127293284356888257018477592188696125310688923454043576422382666891974283023923739291173652939790790461555426362148873991173181155261360523333611126479411957632648689653873600460364352146710800233757627667147280978233282556234631291956301684330060337954886538686564311757686819805240994238438430850536286949668197098113504292389018225789954139841573211342216514884873638133260055809269604210943559789463648562322591305401598500411959317874281795140734258469059735029909991308735444752274739271127854807302913113169557986233408541093897731461782727070280019465811252902065999801525063850283082378748406341219316525588487864452546123926519510308833777641615032529731902588553824319906769222915639168201803507438904745888589615471997023666656242023252993138119293555093562487623053042962918103775645119965985953824180491986512918447555002024762960509526681879816497644522676101582526782432303038640364664213737119441446217481804838408507795489348853468161007461655458861154184066172206057574638146195944910485792709381778190718012609989818455497470609767758728233446295714539336380326218661349036181220080403916943281069295119108147028870995820058804868107802627718915304391153827023327562538745219474161455309281310597490277157147660399951163648373244890784272152157499375564889151900869475864669110959683950054213385658827130497604357068143823372187822335074331089076047710525496631918766299406263406732941937062086616051758911133072203618376450700802671266566288050838501707332177916688474002424604751496263311624823299332285770106148259863999443662655178606749660685808018614549099721398255397223535834954641946289291171520362043062579032719177543333221678791383176844176554144371688960750364306919509436626817223884134444923879848011508528516290961714245496719265921841391542213208982704389534090743352465608784831657958334819501793718997530088446439951778412042555734843270872781903947747744062610771468315493455196039143172021531199710171565552394712039254396869975584748375859507766950665489063751956934290493063060634470493428632621003700505459843770352600540846779035352371064877793384069317884592325622128491105005400141198723718898837645159025431478493960968415432018959962439754331031325065054616869454788939959271284644609379536854803819924571088861671438491711261850999540346834023360760280234239106463669518669735194565859967131582154253604712668917297337625469668247723677926995328831452825375537519915329151197352167303178180024758523381916765623718742492786503675171052583853301674365042650070295003120300419642405266632393867630557459277139813042042495976462273711945401188840792578129733978064447666582708930927377704924410316367638443682474305155701639180941562425389673473420228110377217752699289786267839926089606284579447306058554548149507811629712809641482829296342201856346893021278003384806368641892001935845962550712590747712439772812645370191702810608763017830150982369288005529478515191425624214528938375008903517174931599996391312469970482491558325179955956877189182903994116438977880433813328680213829033831822176710119836247578450881264765960563352667383275880775116522367458388030272364425626097729063246443925238333562355725194495481315892137793705828911734651081725420009455815091143319138992853347011972461824823437903668063036191449797671629608559141713123554026528557658756956924889076944565600545210516906225956404468794544607284038178685638989368483329532023561927007370607700014679270514324925876302007705923996348599889369539127498754379760166758269532844321105913217066058981950893745758296046273325189624379965500669151215616462372128041603991224158775209646690506429006590218193648810641017131845481291064689878803278619820650991678727850946009673181531281191835975051180233911846725747636874691803624505210897509471669372197913859049575126204734354404885312938169325846674946826659279026334403542634536283057114872729161349717601523465542540713319795678326217841196535397862380428833205511330187838765422542204621734685485647547183998484227190550704616939544727808695089121782757432225302091227250656987099100304417840663527774511776019748144916789936641547513789600764772100566133070736737375985891105308288934322191404137726563968135110711046276927414743662464205349118831145747041616874478366598795418086615869346831972821117233475513142070141269905683927312577029756679910676792305716052073657187657144564428149586022266679394003527815158913253244713125751181441155107750793035563466269377563773793639466166656906584914464252235695628077014312231246633739090152991741566725638508016277949929334265087548299774572665729480600677802393921780478472771162939856722147670610529830984546428383433502200783469184696906037963460452538137005445187096062354040149487180609227775215348501241900152107541097715084014517290992497699530738552665246698757064283522209562724409113548906339788424295486717378764658744417715154268091124406707305127618835762185556592626248561985297629485906961917028592273938349620735702850806135925499155642808271830600698863263275764091407502720959053854642466044277924556801451192498503703598305789536293696565381998526348605344325473022697064403709229069522948076674470580200290176078135789832928726347866416076002377143991778065480221196498727175512275694985431521672023465529652843008669659802621974290828714343172736018988079150895283772230888393603201665974429519793861448020095080252421417369138520376335807772622743069934975790875272075116720306543979037812670483667678227215056966793640703089113409705110936596892159602604998888929678559087801627605698258615996875056775006042084502749320477780967017809181404116244534161893421364751933902417734917554981936804567925317585940225198732100228492678872742449528652115665930092691643064753206146862019279659619193670344969458069983463279034857339953701800609758744894168999507598445291227473547244119016896363496416476247247117727188459621913040820969552090081802029553098459278891921456940884721158580431397495554740478740962913123622094271808335927431083582364311114319592884626349406747285332906672025743836553121397473579847240873503735154231678534340136065680751376667115427638772659393778606514572675883813763315838364133516312013786585493414369247010274905456646335798489372653174100199916454029812781562904277230804059843643661112413383589718001851710230605536025044426829951624422794397903683204792676264189004983406308075367270902204115731213876909816792933377542000563314757302947079722424891346568212733094303315892428344479276906160726579562294293252823075027944075167227100393279076290239096476411371144475847410147087790939912611947749459419016991380480701514089532965099140349866047289659575758852094920879541257264038314183549547452537216145813181863398628537421699867354963859151907400345816092451022596783070482722272018661862665954354792828214532516175661574033269462203820649231882113006133488578241607352715994052742188716289026699659922742087026042094096959110183108022267081966598872788873029252039705326622405955623569389085429619401019173177460107386645790275545983347386934605986812084490664368467672188683816507294967953512589391585680644756585186846475973032891710318917158459697941952481303640690360914405432956632420260996063629040587574958743645333897139027677418566796221279307919358193031296008914484932892542165594784194995697926582642126876899879391345230726705625064448255115088930964422626460995936566332041526224378443856268425189236305943373164754331557119609884459511883470386272646837288197846312985129706402724658446578811731758692873070405201712248128443290339971225995727991618542377629556309928548202116474441205425772878990473292299560534904532744896085851137884157792158586134342046003468816277477232443375809168659363160430374408471417763010601142229613218517133282878220327176065914968338741875554927441714253995593945084088148503103812590416224571690554302667873125208158927540463980917378362309392082146403269925474256572540235613234756434956564246925984294595441584641392906843081233711491908923979394668584200057495258222166625151647880243092462646366235114514289868211940756248137155885100990108578584530250824332933597364813284575064199761329824718802800918103794900897766699084155752864374999346475921870644024715696322923454915177895320167418802832731986796027070389310216195124534009984923275052173547296468083443390440081494761378438237431956164082699955944380701698673284474566231318733388801237945186577343891212192341045989938856887271968729721711131729672967010989994652921774482934160210055473421502856822805652556324834144224871101707058473933033299335052284998306274677368397541123246898025258826764769421433614219200959667092728005617030244811428686776588239795019638107269442336170814123459987010222575029714829560134435327986331443809888672509259652318070747469292026054362350392986866790912891513870929821825815570552703234300637301940637984022249036405589361049270236187174610598479325519260765204469148118350554670996655331744941945522055583965179922620347964619221181803436195270324004980510933726688664261235091273411965858833471334240385114759382693345523315880451523413720452423203731802111100044329360102994675773183500615523684940943204384122247106993933041113912062717022405184757777565620831258068618188045645606869879145848698224112408689120167611629926075673660319994248037966203949625211819070460618555202747895955977641083759358388825063050411019197914943927673777381465720145117043092333623416548148122184377737883101035847009277561596238385686920957767086106425319389684407832238359923501533506965696305443578274526870853788971336998155492490973853480042660457018923409007106559799188895127420566878468681823608057764093895588734247062722495804400980153736855526123509710598099074325888300972123618295144341756005991824629777902786983548478142819669885323758887335544193280274289567773566501749959201142881327853177510213786893555525774144440820611705738402322356717800430546969118834571185396723474153390761057475987761037445587286346593137374212708546077790321478445448244981276728166421052084229356494260230931676854296185463779640905113947162003813414224598742783459608579951850354985765945304067777974045723137737941241436520929966673194933961957497896755266658087863944350524036519890100858953876197874276883388244254739961975954470996708124463285456098079413710187781300839460731937288239230726359849550550481025561540399584878659415024772704589506861331457934815154411222137264698341692099559872114541237529144584558556075196561600568989579173507426243449621525466393304175932279042431928996298578710339239475412640421186302151456875939702646588510539398846416081337064322387331134258827056834365498402829663341119982930065113141535251615037312201341526777125592542749675330595916344826951911252475839290964942902747780910180769288684464342907043226964654712795674823403396810070955928419970431314019382851102710587987545604647737248341208395847559598281614920468922667075020854958967054143113914485893192109626554825048323944078930262213452791196068128043216690439020127071406796630193965578930270111246814483141733739279227726082360791332415897755202730524730033495540504204828354784670433241406474243587661162627317795532802053706091194297542219250570408297292249747578965312001632258533199858775183063968931177820828837637075595101286323986952614784365043839809755860642835750461270503757878252784655787536954265182562261054069377469755672172544007008640809757255156757294837605789048079854107994603740253434668812438714980498946223672570288316707812843938416255237048686226827838310548921863959291146317977762285258509712688071280907972350531883882057190626469336190544570824064828203194025934726998804016651252174013442822446263738007932581977448493233476185537891885016328267788575700105254047277024181831997758764597497756363342138915131627409168636734259109829321677480498854975865341194117509398607819782501361921494057706989489287680500038392509795291938983585293184725561910634226581016691689157403735719988043889067421107169961867231641282884726073509526425884084928384728822671961170659198687119631836155875671765568297968173192718637266503852037862950506757737378416052812550071411331048836566835584794319476850113475581073659193109139973630178986124513440349745134035427642736989189679669073474971156581031508851453196099417718060821857432686708251507867868630551444262597023083521430814064353667793782635364920774500234377704129395115440768970716272563107570852617204061735517968650508024857356828587427348170500204221372352125552977124214317063065808209971946930893738717669245223027003433168836031130705483584500788655946619162257288458839158344467258067918602965857182781550967182057620493118220629315531549893108739980206846800363772898608632507096785892599732342622840346669485661401308990019250031082218447814685165110546646493195615040084410479969211669964780713828190406494797187514701244381994620135078022764694313903995509434549843706848538968465510794756396407274659830545099649133379175783758201420456839628362357542126449881587019419631542035326358176628597044353409037764274044755138732479961757781156036876834900482391825154974777176230328499337071705485885958768519348482781538860221935878220731129624644345880276776195714340102036477751447314298955011895309481198555758246502824506636616540998354007684576229841285575558877512634473183466688024323876584551356172315058472437706472131339189556969261959913100472100624633136278439692737727327106358973119386686086761647093444954681775932232257331493123843880628887272194172589398706104448094552389639770162291108472365393801600557357412394116667507238105875711180371636766118893896878079223549864095962678397778420765358353614201366848730316567115181758015664584586392516401586387139725140204414043003724932825884499377516386981172157626991394455681503530879341397376964740228189734661456585504018331875440625875575410820352486328410549249584930722757392579123316423711340203846617791173616697902049522742697590267796587808428268805619446394647930223044657877292078949259706808265006813298289589442282962097429170148512740608894840007403925073465114130731040256127820933284978689354794915553566038839161998613784902692933839911699468075000790140421781262433103832148432957081374208644330626532853085527478176132837709417548300554819214239662282101022086402067084188848386100466621036719045255740910665577313901929308764215839042876152407406540610301324252068053749856750481049979995150423293330052012163208691589894520562135197182140400208104438542917275021680221537594442400883600138923237064665438870364894255101388741402478065323003130673866545266584445140516914199592572296374847817044480252694458206661672149830876123466803650164378387107196324202367831844673728716261042138646892760509728465788685352229227832103572340683830020286995759302450348755102898525016986366464747530351341818153039111655269458911165447968653804333111400385978522410551528446079871633035864469022027395894052791024546733916168201930591999058005815581361445841272467361267864170588617674697838443319695117510330165336135645975428462660772392856690657709928933046056244677275930211511260369472914875140956491811900054976471425623575632689820628345835936025669746915407506558627408352492850428922021770169793750956416776964789870401422617575105924735391548917530534232693646657561573694074740790784247208430681822281608095906770193663793422537175125648133212075359933859574890484378650488050519584993468350841689925977345374426360009679211730886347249467538521971947116041313298927437983916777234582360489402859883793881138069429345437040927625377950633131395161477653791134317967258357798728239447190647084265561342934597599798953098065266593311449802952703176167027942277358339065028346858126556979751675062790234542062467364317741179898240584773793347844338599402831488655854893429453417027326267049402626084298770963606962650545555507720540378385903652315480103330805070399843023996088377272652115076225623618837909158348096391665876778042247557996496152146757646801615829165231596468420100813360810411251533601829227217653195837204173346547746941102504715873138444313573931669328634404441388851091857739324751085043342580423876742189931469885604560019843980656019257867278601767540192390393482112729100350907382954810738752211427673876607979386208772120342534035621215110346227286384876749896960582094885608974308196281147806987434522397674983639603579932694785179251386664401676749966267366021274808945804420677532108625958900645756539232553671563234231526539930838282375314853258465049068915745045400612975777674576052259565286291176154664785644142890598036074459395208388998163131066195049612971782951831728363299734272229933692937380472543525435839149218899170993224553397286982879113844616359321089671082875001482655121958855707565300346397206389145895562049571398958467837783860361521590458586257505420521858097436555959918765230090121523250542360212000649075880430701047094942285409192339658117657795936381020739667559371152973057444908986127934892585729328786887461424258932754290709138259128549431574213055022116322184295098281579558644040026782513176890128540767704721744629318523146516020716172170801613020815380051804635408223808566808467514080831510511394772085575999852624575691564716315620874341306994094552378157240962808692506079997904719901513966945799079340539547431935357051906091614197099937615948541705857831131106156647733455673308018020455530592022296861908754055783928717410125829765488723505792088692238556795890959166741839587618849468992799697685680091501052544682803895369729776705645902897331730456129738142020543587314353597136065357122850255985372928507999173375838283302606362131585053020124525321388910814527255858776466218619617371452438379766709745631942847267454494821780184290635015719968873477936150117360524209833815121593451236830871285463998067017711300238833889800429685041754159100351462322672743832547618985833201366206294536121117474852989381608227103514095508768266900294998070064990422671300508098960313877206499334144854800122362424090250389673132195166354774715720796019054502666146693783818305126699778732565328255441343430903753595465205528071362287054538652865427343731495291800048984636260310633782523412042368206051283631477989155170372277083948803056712377333729739292640261851440281544315730763742626674829716509859362938754128929821392001528640691840585253719166682747262469604087395604946804324177664480376256893642856442377138021037090933970585358950352919870774851313193513981440720505988559592282823669379916815704995587571205822592787127956268227327584500472787448366667794158479110847774021436744055947059871029935539954686266262786583760230964006492120570346671850737501564850669978246563277433476650331774526123813472896892847666513595894682673861233419156704936386655379112535594794833745538212315234747766743936449486766805042748749239006846037257841531463086074582341038444997131755072204555795948638519033919202668021918153447530738590964333944884123506532279198913059886176340118210991205781925844899712647852520857883340563210259686307500805962381989123102696287247792218832335603580116787273714741510643371027774429567450004375598020015383921537466706803815873096493231455857029210405427039349534440725568157836736913127018900673106066824531408452827037087311711192954387742573193189321946399352343141702573467444058804861338452220025419810800123505636427826045528841343346172525538123643304058164862399731987923758477208853592046320846153655712135453279613587509717914899186721393753822031824414077759223817489269914529766030605994392301390701070279008236973571018523641593551403488779910329787591722757317207726461722640131151106611595325624283103508572619140464062823825544512349072535270445221690577294912340414514846631070789771647044550895189055631202679061731804370512418381847739862605624219597984277512402629396128172599280062223025767887665503962617501621913541156319011211864681035975380838440912570221370023277352223520140484949238946568151381077228640088030204218489877745806426814043114033423274234386240230420044271267269169282556812391923637716778113153897525473530115848209191616115050398311535946350722054464651772875565354474290101986750523684963249373991542741639981640520232067215230945998149542470274017937619837722918681609071633453491870243800359751397911912847555738473308058782216496623447112576228102446276907385936625042269392770253399689274470345287608348175833134145486251650374256813095220167462721939578555132860051346800276798450233517545891065924756430797557334305936431504377118342012525814238467563476593079845762197529077390966198065669698266939806146577486091905928450631889641519983837114884223588659646843620133288373584399586791754117919375911487988693724328074055578771475667427416450170784471972407793786712460609776109366223628676030892384054829442054350624418880830801170482511104535540050548096381654176947038763285122567178365345523283267057162865321842032437778593847369739916535537370536376865954052826887102049642211000860505444949710059822681944125536877111943961119309118920640665716238738975560965969113044557234588397981481817184675594214890763370958237894566145793020006266658355879424774117963864779807487574368526512106865332629116410594465245061538956399671584705789296031504173144958100386775479061438914866057022084507018682494964634170117381272308525889358821567167643175648655967421880339833753240449710360742902301937718057057544647563576101044777477687432081502594009656288622559475111024854560842248227509839523440510646262767401959686830778175768807167418934051811825402217912017599788201304803342130514115048119632618036693700069740838965000366576712231356017201401217010444651235791677473855548365595262071614520344124027389698199280950456735934293858497352857068030009781909842032929970763364998533273881834278512571468629536477363320718078092038745054820920153986366958264185125866100274423755813854670520663250896971818364015868998075676210645979358348124023359327291144735714096736408840788823575294581140229304412661306588001421488957674986710464000770381918760616075919203977879059656877593591924113473428521300815767556949759782741085809408721709780542956504653843585085270510073133408092390622517012044482092366075845046172276864721819463555551921439606627515330001321739456703905119733154891000079383332487167200799413238879138568729865675879226021539970854369431215556111626602430479631102449518501970519319186055221087700900405397068669664265338037740534751723121980750462376104933161380460601941165701668869303726905630395215989713513278507138998641227209086722693631804873587754924041209378627429132853366602225728272737270103392350168118772721140919409071153866866298499408178952087712314443259212164475578193591188670962042026399289675585414758444377429513624366674672512850690396409647738945834043641713908848744398775044769772673734734476649129598840545914210885310364114099856052668041756902715979361381738610737246392982494601197205563963907506405301553533324719374114894903004055828509087942509786974956804422834271950274666487544776037707931519150522108149895634665913650961225498173328720734312545359531742079905842481423027668688271609985204552953390419750668521255526430071228093857074078905664191708020146566013564908804595269419855952484237065238823475908287344711709619581394938472837163907613376171089718510530109712538415035174894885308834998146264712261935340075767127377669670837924422280691957324913022510275617907996233298700166246170293993639917052051878230114046210664233870986128778457345999477827561191573639749147966614457947749032149581390791949857758096114370307810911107087173503193869085022038318934093128137226377140962324835008649682078685840687766326796481494525536960658574102664376437395937465668369933370604374846763209009751616422882454088531126273225636665763961246310822330029395126534687549758321912976421564382370198012548857115090231433596663070355967203804800725552096143203645181277082209598125364607787972350499460290116024339544628553902014424337011264947470587989875236245903254022072487392180851124365143184152015509648456147174680838187791117234998800749384390416616662329572146532247292769945656738567893785492155145026121387146292704501256832913945973509053056226094994510971024492457918714888797244153466598317215594942770386526774913839600617898143240227296791349499681069331567575422386689436893792205671202793722466130771868585541558316142881751558427329468544338472154515113420470778328573970380300448605480764547556570156895942474284204136233787201835140635804807443939746316523202770930968914182812649006219106344637636272455841384950515033043258043301241484544531544497667968915213206761600689063455981435911756144396688147080226600917565145670152975520921616527210881209636229152927356822584144039013220900495536863610006141157396575574434124195162478115945441075762853427697831234734215599178185320120512834109131375849810890520806420696477243902398171550063610392336573518664331520812242442883985062272584559399629278810641573132571666215742039159371625023637619488288708261079320704787694157773044325040341525643413965780190280941290799215685029923530062093349308606056449093705870632764175292054684541400215452612180477170350507696230160737994592089433144936550084625183395164389749747816424756903422733110879474510768565584276304612073318967335586737986674384233165056316555781364131488266396606303470303225096983213863840727985461215792679723848055413165701531312033755837303994554695118126747665286424085266969530166183760509672174923773296239840066034378321707546098468194546778082440893133313012531758303760290649510930146374119891982673442642112306278566831715804261829947615130979522861343059579360040753561181361478475383561126542218516055707381867552205089401502186705511934697879532307867833798885324308820861339533151270445973182485079060244642512323188075554910480185875553004927689654685108202045917034626232951492394505050890420941774051742954112529399556570309989816852818815712496086920653017320813084208088465155988427773717360969767914403842991285190218336688058318853984070870933177594863950802044896870733654811087708203795376148992686277331010141313820645964705116993546589016916063029729086092029157241579254806582160883279338980126306249673691181999692214970338786031451464512416810091830813764024452940117070859339605139493792912342340382198589515898727719499866113186538225235121760743763155666684820239259915199979516961909766506681662398784729968514922894930648055488039900928410157206459745317358530228580938452311740573062627712304023129421426472300174142288599158816333254254666508250783027525202939368023647323122075849692377135722896075203004950727704332355903073019750326453613783837870301763443889188696741189496082979522884367343367338124181136648288421562281139688763867448104253062355076066826082386865850930217337380837988195166835169879210512897711880795407419470938231796451683770001804187587298154928729082760433955892428473976358117648230438300657866849461465008334996610025034476788693436374645755406058416850253045808523612939043987762085747935691602503570145717203158601289978867896893126273563269085847547415427797611907467669753498094539633316083276405400506260572810377043652589102410108782825022038257797838102441518084449617988044831263734328092288802799972509864502413353316538287118483108006999963224398223251812361137090448998671521005087953725608444665925550870570864679244531064552495922438878268763804927130568751064625387746453548001310527312619459992039966616286913935136866818264163902597279800128198564662527745723255532410700673175318331872348193385734550006340917648369597190842976267993597021629842048770603936935280880997106016922405293939003261573891120450326687711729809263404095994172333285687450390898471572536337534774652879315766331261409080479139207621965281820240066885592396785790443649628051204613127409598879943549478485600284051804302173047782006294256757784921908055750146490318506308070460220628105212889085106802825313191451419958891412195381473493442598060944897925569876684794824572347499899891765722988800506490872391980326420038802455103421958501317136713373869145353697979086741372534601752482686999955235614928498711215355216099669895017544379741430988508557310432663061415910912393885805721418511828993189997167906065822625211942508033459016956380409259102768458141853309410938175545857198393489710978520138288000375293996535501968019679534583209235414490378775382566246852296609104620252896681092224862965370378753707619986532088676902585242392942239446208317610312648698229411341341048090406372733725803126506613289700868025138177337099922584371155147481134522490542144465400268727964146481999160048273811458222734671450020206544362205408147868560140628544046546964199355195948615760383523660759892103355898915020150132054718821244492385235396978792181252410361415364556090256353036393164002362335504810443635809530872611908128686013053764228196005643603155594572983028191757273422532445781383848237012439836858678342553529984330778045163978444421669307115607165323510675876118684155513830713744031329752772348706061401880307461594874707408800898005714736621016333923331013759959825276494133486604284795582871907859044405860745703299708544933393974713026395773011455291179760812958585986045037783786312359258469650704888234181773184454589476575168835256488532360515004692472199902426440384980496071143874944230439525672365864932139335658019226335761658618571835141631767898977323545182010547723403259349187015703101816943065077162299153441884031316937071820486890972097997830756161168341376012471335834610321961360088772995024503476623475880358122644566518010911736359062637255397121721596397039927921691092440211475297168858351309350946247078649273478949002846992137743118446221300526900927203249403268144844618585943588879027329911216288578829907831076679038000472586874689071093427627045039949762210443209408316919846990163833446264715846873776120143748593503785558209814227147888734562158618134509631230723300005099964746494752658850910415501951414096491510124954238196993383828387418993726111176759830820722844192938187892303371975169315107738847861865272530708633140290596067058196740181074440977564329490272856297360906849554958227015818542118908744458926620858489485586979797130330965380591596875873353932046968404078260421538568487270425504172581743112885231464721889286846467801835353670564600921908974937445960092995503253564287313966956811795487304225032659382228796443046634955453670332456044858423924033333020729203615785746003580894068367313943842088685831252875139806309001877889608340747053121601555315786687046435869173215901931102001951209848007918294603793930411701972470388505558132506568021377386257789829313671764361799022148586874692738058208380634471648309338392008626907550564873140407467888300697475580794936076018323710375716307687468551783073731979808102252453160737499909099669241840972464031736276976966608170004532749200406657954626274080379707582189359755157677815005764593451480668422640030183737056186092525606822681403945855544331072974821080237486757586731006973575667981581288834382373708183529788807628676015213353431547913796335774573860576718465630494239751440445628671605973075996883946698296857961167943955542350034567391315593129669060779726951857327233579827969364433084839383619103686661400091466383844270583363279622423077155212851064653255254222095484157917461099005279349756454223976641281630642744073788343211531670322964391404192498091009093851096603780407789742749881741984745810143456224471589649492833177475124682755633765138875346658854487302641830110410938020799461270880852570713925498165841984952854663692151608950993042886171839416899824842993449661621213869205329365518250418731673515111096818195439373289127135213978602900727139569832528135533668636537913149230064552867412495398427230987035449299360489144680762701165533812848670804876887608137721356400485145335094713024522056693520658745351078182192808791745333031593607552738927253034219475706472596811694304389900265929037820791354226411463561834118676618501367419402756355822346830788669366355482206469251376348465770172130142882639314700066626995241284761680964572863825462217846295316253670654482304074769549911401164252595285813086166199529455798627848582125446387595411833875824861894507369047960184195972117988407122336562721757418363993952385606294955527172383528089163515256688381638688717062695783749664192789025431901387701661512280868929820614267823319519175968131026822343257918663176220115859086553266796164421844050580477899377007717590956614818873958673184787669588885683685824271155430939739934980932427855979555974694865519382292146006101562475626351531164279260713919511139093594021333669262890832353954091461143624946003703298726707133659287475840592250240029881771588967220165093159923637220486433737075096616614487434016116577338026430395270779580629230100715036798680790185530487508228312413180831472835792174143673928451458719909141917596553839386210125633175256989491265979202679372634304141696782751821473731785173227220794526042635141148985914663449624978145469333634420331943010124804110771438128011083776392780308781222115876279620681281008113433440087508535149207111504626743495564506641265119394847023611746819498581598707000916855230145906692878556309606936901708740524708238549262179781350502818109441247444654936699271681514271123503489291660164264251445774679856951540283308572278132636460529674042679139341482439169985169682045440651787371905015812401270114931755371868088284323515407513804561268223341193753286683170510084575979169802969616028727487591853058224454953006358349017487092288016648520803939308261298761643656084640684325824075504909315511060746953682832078012610387155455053541919439458589552536709894418809346476737388760983620484255453036958402259621766380476746326273228307311239246190800611439157750777703920114149773412533959261295203373922180857414574687615236083342194326167305229978740316146653680378722225317250206555480890789401307340851536803631115021157516325178783253815493854147518887167072845429771289333363524545695782381420489542121962143992601893716204187226839755966424184846889551455891251904711631225472111814460846255604905880437492849311256557127789132239163035697447512586232774553785551933814627156421458712274995104828845968566183045404499079403637455981689952400892471052689687541367690167349904213328259424014788069549647295781641205752789000686701462670284576122575223846131526492631110741619361403874630206613697694455825424714938914127551938193173076729817987703492752331658376888716698370246096132195693465435073057792955242633806168381011424756817708445581105590500789896841393633180071320569306300518844496109308028790053693403090233876805383656673696267138509884235192751769808834642234344045941694250055237654448549271543386286224852865170399031665697868244617297488524287394780194450431782878749775055284811382323590169568340303153645106749270709368284152230021956752857870031263717961987760862180730130526497636552633772683069776961784601178010599008954300260017045933614950988926189671765518767764443863461523252247115027085333616411088825200435143103725704937603200053255687308784102536917247868673500991162436583377364246968593961188913873713040530268230663425927134279856852628079659140035247202509306754062757072421472604100531293345828939540341409102771463352849992862834201405566433523507606159292806840324287896774710175162953017018553378587684620911580634049574459378266398285934336965963255619573688313222142762568100853502251433412975959314875410395400523116475472626202398372581173702772540470366778505275304318847786612682706746757969711162076291976554021066406929274682448176936374409090890138651140365917786235518461439786108895671915978779463075222118391209481135976856316578066673622373705638902895412681311710586115262259270553723354525159168081177568317268654461195809337255677617843494832415944477480772329143194770418096916693538267943015650810091725325148774504363517639318921463009201886733744419404186194249442440936975335670770530466196896882549432540784889506849847141225151956901322931057714022442392688224117768813463439978877778790694678313114534460538731356340637028179660969338221379075636719880814780634302269873797734423087086160714933381532784394825272499544229739090942395448671917521174277633319886731048116966339215732030932482977105101379125018182534562464780257108707841962174394467741617137156782533557359151541962993309986383377901061973837947169046504981968423818771422492462052731779681461534704209508828122067712028933774701324592960570410407745604193645243706416722215049398986848015875008651294491061895667145448333761904935828017559173348391257257553583914528386610471132446013385765278514712785864533055415836878797874737265464961478337054685333878972491178174435028096824297532914658983748639242571590816898891471463083505152080239183020691161710020602235715809087616851244061963988528941328671025344192779911608035571107973146714288391101234547074306563165926960009555077628317377348478026458512410117597926794210110843603210874111333183391175572780568792696635972388586742497019958258403696476923388783436106503587423106151015739428626436092369057055729544379112166105843174293864726581023816831193568655291519709053760073048467891084177369674001290001544429570300623724401635878618817261596587247355025183865855650425092163592686776524787756957479544194286228614471931309292108896774964380265478578749938957157727862734675530303694207928059034304051931210616365724782675300648361618743665791050542261801215048090582448982576093524623649569976994355749331131538075008598469942345001919839626149635114286340220598699183131217991200728028336719189025807980806820714516123096820824343650750660743636832115697855427342922499540077645713240743384678073046309701991343454155648580090691137340761154070018884794630407755365826684590291587380508592956175005245181162481049285094546334177773032268592453688655166003928025027220090940571589540880734679069075525259482066782384869328723830537303674232375528754970635284154099052591596866419333383899008518943425350407651913101821339200278001115196837053234414663662800759055415570956095946814108515461392957761416876000004295669867636080934291023243044503222978132049998140320737761913440511097857304068292722213019514911929330469784787315688591906470746825621910747676790016986042822114336821453398227643408152744000779363983995724337579883066679020592733786806951326982748804753903699294963744293398336964089973812869284755452540693806385073378599912637290362897695757474870230533801455106074990436999885644272144795658629700422300778894394833850398592505015013703024544527732419065638267519384010441081158605652964780366329522077846241865349880538918266564408456291846857759494904225589102691232320062421470930549001082377068489634273866190944277060547931174151426560220535354064925179134222210981929122766487862145528939031599803686612614317139450728267386079824149619518690366847283912812155789803666114774063244672689915816330621695374135795497891302796509199384534578666817515862110815922037225051153914728107145599673119625062574004497131458254976809019566480417616233352981426013457650321236962659008527326545577826361039014504052644247920508837934638214835861969311962253619627806544518279860963925698989116664678671628558579241304094748028799724239250088190720890349792592856884805656717459515734851795985083140846830217919260062755187727232589010456481999775539763953640098355625030083303288991395592071005080994611280930977290612965853519063021366961201775382142962285892596637555000892926089482516372846532540352001447797216081109391072215420339698123513107155807819897426296531581309293637179509711582926066118312936203628734568987852464987801787125110157484881497510225512832973042414715485931946228063175122932197047611966015805264339662772822650088426498827873144858074737599946810341898270943209372102081795399812224592418261120447657805204537058376084960946841418906710818498154134089388239642117858682748076370807683009263479117920193877849785194183381732694933991163700416583388694317268929424199059987215864071876336737962687235959197414549604112014069501986968895192245351701379781172984930329964548097920110415588823847634396756650475483342769198642109426180456091431180558905005820526685461785705370744943037013855710098220401970462740983148325253945023589153423074924699818269136412661887082318483513072810514827784037510475927985170864052431770375897669864103047411187973580935659162424415305888233415976887125091170516876508087431467838780356638937282204098680729483460527146850894025952318285922163899180860009819564308012929125018352916316166295536761120983025584688134458443292477511945421747714809176001523228418397655055483818281132343917500919338317700630071449970742461642806922158311392332221384065862849892962101777348198933397530132042551561565705642023563988524321180580875167623328355748865070977284324456045472610428021207216460526261945486596004734250625123502159728069532402393598979840382663799778992639962178811715769759856721098728187353547231781729465272264336615396095560622012019669995384467565064943708403228331328627525958809314644088813246311826903719423049988465080367376475117678833241413234916929026207982291801576903393024717088690877705438022030603486062715738154101049679026657040996743227427563739627644185867048039659864578187291294868204189286729213151188289373007686553169347076391621739124786230615932349594857794723565305730589810188276907310979560035654714678979466244110585185635254580532481647062249912009142608517822327100787978224533600673867177297944795634328439467327835530853969117720452349215437626920991005443599436071748952785707407651862421435353407527402327069762061926551739537315480506998517301298539928270923512089095374808823358443746749035283408485098180183148133157561322341067942184512528274587464291438156505421544019519223643371918436858957120836671742985798804229124816747729670519136980623687145599761896110067016730525777203430526674412341242678511739342323481594921375273973839230567768189699212314949544953323895810743893055735889696301895495037525030568469866702450728327087635514349196936086688649502509424050590579383792766315262886830094858359325793925799035487828512157706248516954065623512908924310491441582752122926481886825299436346979572386249076789652429017771520725845716757267661895740598225549929911816875466903495213821149898808949943014464987015612139476512579632137751111810380864919540211605196512860213891924273542086201818159690792281474583799752941157506254326608628439011846829015306076047131634713741955202221801337317020948013480542357180449538745102976958196142355888852003085709319681225114252826466549968160201117250140986685806629643555607446524140370084299500158326422110652345752817832285540004784485732996286354484003850346257299090902910767272720581828018441242734164266626410794551670621865510194149305140811382827728211620728774135442839391481273405095285494688595753561949601316852794349944245445738762537259310457086911583624899497383901867176881377431206300674318328130108455470853651422343467197007478911467252955861451393875633862351463097289278031734300142525153827887869887634966937432017137526046794321530868985036930700979690211850421392376959388478791333754926098272143905298737601061208949641648969498476802672683159249707400335160419687628220190338617886671966499730259857725830900815257547710586238245061135157022252322737514491509720217827034210274751573028882800420871978211649962838199545502577392068478309254344216662136432404789664654123888374029390192525329328449667234022003239835666101838175462125855701124411728575955019980354058124213297736423284706362134332571701443612604928129093644462689903463616075978913801183951954659348048134883520733234641309264519247283005708215742849190791655837179846536593674292460087883030120732100652701360268536388199916392730731605589934598716889892280215967279074945665824184917753206854231011616543998061988282487099701556222103347566522064416439592200566243263489284570281367809320938131924728390625554882776073985148621839571743829170576486635116641998677632268479679732960822898783561667194499161902823705326468772889132442524569538360485381451077248161676148258384961772264053575216667827512207481345412392917767665679893080287956756140305567886827233384104730761612149513069515353417418780394969822372476796753442973887361265223558140593530482931873866390844871454998383004109385410982310337348351047198273672578158380337431482590431147295650450996901478174041225834390631032869122840131507191294681485184285756187825781263020093507410106311992843016054254694286899918057020761751030099289465676008446961065255504552657836025943635380479053357766266637834859183831569929310267785893365717935826400988770025784905923469289189353002148769141981188571943803192729187632453572976939661003604687774770068426037924051520960330319184426712700599052175305823625639068866551394496745474959369677632053426708003515544241906371533884694097511141743489445929813532731919703555574975883518755740680959001728401862036544039619516663809178330341647519773098279185330728253101243045062872217272977332073134951627065436631998887136317568899037061542826594687964600286881813265742619742672553313365536239150138450985493862238037618704947068313182762002065395293007963120660458701374532913130963764506358790020914118722405690792400048527229239132784872902427258893709079586503868552400401341768518437466486060503101530564982016445294754495185291609660927229146535355025426992650512664799191790526063730191561668470985081641261933479001311550484679805758846072619400914179263392510379710605417935573780228356754856933314329161527402576582219721590037554276970145298480423698979225115845629721801536391952225160153600056540278252035844251557809044247709250168517331023353868944724712763148689611252983008375279646160692997310779668963806383803715300942006996096721786492718471591509703022836253802023653749603254076018528615818626079594114362817618556578012936105710601296266969801998312490777717160005145103560875644346471214978403591782180458893618422578385829928836349605641865425198107660253391330357628003603802406895139504813238301346067071550753988486700969403414904414631975557646313893343032701226230518657327491914572153591279430651840798579212739103704118185882926847531302275171427159402332106374970958144179727730908417165020609414626952621577651317901684562824336557211719728280819258454878630348810102736509512730545693849340101237417093504620538625809832830818424905821565415885105839521228023664747666758195833038287886145794557007975529634787562065232939607058892445469839573934924380401281947290294273622814954141961431443617451332952267662438558847987893139090268636567701913369233236936896729389867372233841220791163314083185774962314995221601100081031640842390336995540301357261169012929373848032981832447138552752289942972068738363191018993370478417920848069271083254789757354781268790234184467121408954937254945539122972206764161772543386172573218710234649328272808438868007050905493274049271156273681943274497368950363573312127435178784939078410044135821493887196533725080114729693701157567452831951149395548260237382965574849263807928548904500021346912119501405378193489600838019745329909940668185044191079530438925378884147756958426109302565171545381142336049728369481966339235006685053712298653417222240914349497179591214380801197485052927060281756052230328546187100591904070293863694306879234636694331542420485575040354912445074160254389946518262316842203491769527091298999709156533519435390711203744732863248449272703011839619082289796655248211261255692448082886388704238607232433262083548498976420847062601896913186047189374296704956518834141321870527338306449880945780438896001827626959870109196176249994141945601446530509720555887705044969433584255958569891508750873822579663105411524461330168284525646111190739669143618989693031539481777630066954422953794369576482643033761526727180368840377710903503793223975623491210950886910508571711312101509180159859528594729547287962608269867527184408682861916011188851554113875239652502254419552434502299138307757109991325605957733468744047456562155241493750988531478807235337851386843741890128411099931043421636234393725260477832381307837603380306200897445191289194739844936451649202681836576535772622484466757079493878466208792855905524289670333008095848051219839815590289299462340709316930840174394037686383298044439410606508945383490622813570760489493883149364859240519520015072621468447699589634609555115615392808150459420669123513276790298385021091790041144951950663554202942791985895056201891560719409169115341870768257093574040725291806820832005501704564382108626594192963505944797089298963148192124932435107332910762027683126079007600631072314649805973672374374403393053347903090975973232983197849561795835480928600955383743101556129217566699578953494348153783855675330862536706508251200444097931004358383434324561131744409229881734920200174035803185940050455416588975650964262799314623631401026066264455797316571318536270991513937862220254524780819127445941938934036787857679044188345969580307291518658454845390536195608895914559655961714287333158220965212453925985930395457055372865643897351159162742777514726763460417771144891318486121453687948100993614391917787650507107214301235905366027354490203551988456150183412278350781465385395946287168772570817496444741594235218879901085357343764381483380542940501571765497788215582762752522476635671545637750096889308814334158225339815748263682827473116205030945934474646593876515913856862159965330082774238938505950312828654366925044415089550480442985582465565666212298955464625910292481296891646365027823814932759663829179359825666781265822858162959807222940592878512408194771759496726208600769290514151875731918538689984744059676138249127123255212703439883726397011140459480015012905657518554715377685794829349404158917866643376831260713290589308852963442453554000685222590445388263587963044968002820599361399259963568506337374853629190928787922912084731586075872862086559446282867808756427583443358787020830106445333241645489843131661347363318063776999215750572764564248206639380139403371881714094053071317348625772155763114340143407307604298105026355743535786884563880981072525556186364796772057950848722048472880205769586493847903863670390043835427705838826352956385150329938866167590777131011919880600518067560244184235250142463231765555113372136382211702405330979668291109058284296242995355944182693642621203950982375595111710132236999716440806689893285831334816753096284761143794322857883511767464249192958252858969267905332548536512135896600297312243513973359828054103693846073434939341092783144792558288941652724992845441455332750050664524280184098567075671627333170824943818152101251722195099913041224920974369722122308655534609632004186444747914890757879255712012800747205935447959730630224988152665792037311918660850462994956379086633221744064675236493595271397136962606240865716237336838122746100465572861768430193547249792898882910714288314126661124658707615394317484186117862209202648984363185901884720332552755054705463503288052625257803418383688339234590616693670388953363958434124976313941798423233205995804316738953096756474443917060990755334942813353958749031965313793512471940005011609737778126925539567024575718756727246549985563109184874607976847632508860109646854496715883198977948982725434882600235598317280461330703368867832288943442258084841387789814808487002117934738871657555052457042538510689664758286393004600342616299860336842774669967184143515912631889113615385004837190509942662041883828955269413147795888699715787869813306870926727863767312520102919944624811414586863284898736847487865805327521761527579446235857297236334287059838714333744292911458793425691170204510609464933517932329377213258262354011661697402739475342294652366913848367629622495396705066173497733065158093401652047843277141533276324092081984444368382825549812336918327297364264724564316693247382076524017373239764133129427778836706933332053924087907036336820114633127097817902699435150784923987953824399583256767732365587817664030317482065907160571406138148250968701673093164157501691921903197093057386331619825754162212827505176722300668592939410051753660910736314031748534841012857708496411495443337238225933456398899755928227970561599892710281645747326957439628623916908769530289983752746338049533731435044996210617353692035168594121696896766562822212625455166249852758141780084053141276967681040070586621834914878753981805021857780224069513127455741719275515082135731302177551397168137287506868022063404962367164907285765810997788000326178923561481018103814655720094169357761811528779744799537084279748311270242466820167112343089552090826142710597234861231327164676945380238122821350442088486687113640908875400996292239618739767958284398793776806427894229842035647735453383345573233882573471396781644777351171941687200825767677011815812294211708211006277985122694816990198627872543393911036206134438012052694953636171154257553808361299469248983205979794405059883356380072420992262253237501840516888786090114093053940538228010827580204499822684494280098520945934841809765760680500022010511925930735750825759945137681754181502169037880346702501073388876728237777623699560401288657410092295714441064482006099403428729897063199714980462479915203719617177237198574990577275793310606451389323471621509548418539804912651712939274652834581734655424409644797793216073651229541663742314336227202146515733724728213262300517721177742038229046210188841710080191097571125311698059544544099798629508514456000979276971734382009953659980698408763921620398289632997944112321999213775201230089821055755469909878796984981415258847345146239776807906855061340376312510536100044726884830159345502155435426386214720278587685795740359416674947676876759924169885646537081922692751025831082383599925499101744892478655161303581910416431410081279110046333961450312660666024193470408690036128942081723044634672173193754770140039315190131031503072317683187718792431150945431803242258108338404016002462274639015849215819736582419387859581374129956140781697242780401635448689528009573143455909983774884213228994572458393773564834442681332291682291932020588565687354508848812277119056278985741043390745845743515105117677564677692718074561052378608189401770988696256815054153036308709701584135110533847988356967614702470037929602568522368082463266608108351118921296807016624497770615147632417687275664358459351269039281429315733880712895986974789971216714434889955736864856559088539262844002559596191002311965145459356560578514875596952963629314876123042505879414313757113977745041591417925772052167280069461665446960733091304913934687419892604188428923104643137034086020461754886630859013282854132064838299118097087094800236440563112866755690449931516912296955517120850842078884324720128986797617588682916287467213282544483220158357685289775237761967239450451295297772925997094407487308423274325459587721846037188564277317958198232934811565471888476719831686408372101910765807964069175835675559382120226000164391947432132761534108923496880374076377769373956493899145511923029665430214889408073343885461966306459685433813394662941525555689757717686498699142105338974376114049170861396848055220350330574222563844532108085148990276571235032552989334078299667745633360090303497024655688118093279447095301728280944570643131643276040770878012530401490067985131487106256895723031384930535053070982212655615924362325375414296849160264332865255608632480056468272737409313250667525679320832247130612214821720564239736534312483385210367805092792181273869383294808012103144617224794777908926593386227407947051859807397937630171428998790954888612293413056391234516082806735705263275433975164050234071324270377668346821204260699329055904802252775037270539191209133188224761336442160707590869861585907397444617892733150648542280655128999629903421795778807377012772737224501180052762660771576915933323395032835739160797823356627151962715907653196873576745105353166920509656998435732703585678217533040994722970372868428881909354162064800959654117569924037358954730161050181911597659146105753176001517390623325874880154695058180944692538558847127730464304388081043286893213223411389173493627112938953547882772544406411576418795273723967829200208431254602511150693639662027586906778592524912175756701122308477776729354791551331468882941896630873929730530505831960984697711285029371529672100943485763953131719498401990472851961845214664137061739738261126748458350337452048957265044786445689623421887767459312730287715494107289692937171652038706933681404646553814351792817347610692718658994962926374531035120249748696049307332551273455754274092644994002528290165747203185014582906385741539357135287490641762727919557770805121996589432822426304125510029310846462483987960750942198963804067379513406915368914668102499125734434630176490487353761228508761107088835737815108806011010373322794603285580460271915409175911863231348681508586403130093279403658745204609132867030031937106679127403865338951636630182136670404233444465603183180183323901918081817166162745325704996011137731283406762340883019586093982666824734061562328132004586847915086228589321730527723070963998120603122976659555241700637053558571861668764067433142771173574863099923476364926980512390536577950082065884387660182292796312272526727443996685748259084673965075864030986947101238376304262246184559102139545939901938892975559335764847503800367766210971127043119812887986520899090694101328971440188414872187034806210122217181561892539413892324806977764827502722524619838481563846679114885850068983261900571736976065524901745057185335235635945402446977149064201876967542155565419382176445592188528303016490047278867558288587935945304998298934219981707987608650889412909969961711484948320298997924156170805236670942441478457605835094515466958003626010314335094354893397495185695004015557618519690178599494711796023425048049167118300288341854969829842550377550125230484846632652134367872847791205773873482536674996891526594404823198268651537553458306444480032399545326752558034725988799313256604771224978103652347035988121389796835833412654703646250929418425944054543223970798917380445745948900664287409289884971531829973382106450192867622528385986715387150894608963095636865854258587513042377427985231166876985681468376882603384742275314671643515157130882060742819641329296144456251284702231884250791926069711714730821354621832946854028370094553181298225738412270262698829184150749698024975565450198732890625551754559958671397006032877557736044457889367136065333708681580398537875878490464314469114152548945856919456277278191486774873954792662667042105205031479490667604287601221488153702937210802353385947994166870719539925228523379837676900947201842981124593970425881152518309495882905662380179335256455940687673733034626051856323393689875509926392647960730573133970042798513994808536600475627760820837100269372907386591892482769291182485253365219063141047983069823654790801539704061287067907292454374794668424280667001568182811521672209832031283720980662893222583322750217845068447148442384596229628530012999272077327578121516572068416626334618435525097488211566919906590778142986402483884661047612532814679380256140064971762799643179936306411381450014341064525904237531200611748921792488616611469895793677802463927452975414080064478052686775891923744606719638381894931164345658262397584614223547139640682976321026447396546252819808633837162217282944137422305791693374825370090000251320268775622363822226089942446811043372716948582296645730731709932101899443061715661547946840699428270204517578259613746874016207145807816191623121699519931582754208920717364375925636868699127459826434394419696358556821295159483795501904832017348834835905368583063214101004504877062313066233516058258957901409479862878354223175985471608559971372983190284530809034098647212249244920852872950185502377932237556411890653812605726399178379310712133992302209500321667662694496207302152617501993073852413332889455269362969345231751300120684645236545246157963861371235542175266613704994936762786392301225155948516485876932976685346865689466506300906835114234712439564845829776106964936037476967278895222465994557642790110627778623751599920140025049075784282764429432199474277575297181327734784003993929613960173788844219691502436052263612720138396297270031394001022636288865504607543755171544034982723593667949667704476641600993763052709683568047233201275707991593702752189586046794464314413197649173216343623687995595876278526383290308632879338758984685997787149935500316395055577713970652802523663441629924405311521802121115179211990053125586625317730518636671744951329073957390610731360093319360421306058582882987472800443815725881744957468249920219328282031863427490164179672965898787584302737108821092839432656398927583804467902942473460304354603775243581621753261866404891911113129268356686070304800517519087251207780329387792298812318411222235576708631317395235862415891690406343404255675266960603883769863619433308643771680271086412517850165278266724892020962525896290521745997566883151634108443445848676217410670856796739750495764108902218546582381878246784069709070979833787964953159571827596300096845187709047372742332012073108214042814314155509123002127805681238738110191589822255630835085343762625796912348278340167664696623560386422390449882297220695418178413925209797864068149529212711438078531130737898361269531984480734809073711524468921501900017564527942606674566093661580430840711507680537437395314266620172207045603608257882874536701562632786809978867575812154777733557996860823251683126037369100439621541800531423281640001367563835213871531575932338050733481076413370078724466183017027589338523459241719668353496428276826442412106120088143395011310670557776114093660041516487591759982122669945574587959081189056334830247069429955718261677253555893702838170334967625392371817118216883066583688538031835480349727707183780926708606637625298610445819449810123353476891961382385994569069654160984805858591192308109979523941240484388844797426866324896526288888204834523325430301449628160200498935846885400103681420395800246438869863033618611526735448710982730612103913975889938457004839945113351681824595068123369723840515673889377377447166501831241874896967627488987128261422355567664670727149557166557646939425078690955916270144131650137997222970692334192503568106728173674668670459448035280660744503731054845140928251295238399188492530820946868999241707034104371183217820728625356045295633978029658758786283368688825565621607607258558289555825255556286980990735282962509310460055216334412039125130354915386840415478904145617915008600432447238994432706934118934723344436185504431495824443711248993755708059094180383344098948056138022751987932679029898229713314056415135221554290589343234786008210834551677901378193329145791727377200279852467941872123666711152189304930397561380929036740130508469213187185849885828190994549452217494741782550595693905530305798211003453004622211521422614481652531403758041705876571654729596615480607011262857311868363477672276452769374247056146809974205622454748919528541920532283624876360898991072759458227896184304527755119930733875216267475923025655820178619993114505964102780353920833406262545021093407855096598907508425389574166461312571387380382213500382136568647785488984104575822714361661967034243294647581364453920291365736353735503709478471139931476081195706903851111422791890488592493299234088241968613249183106976864258882925051659831477350371859495725826471611597850011690341987391681302455824077276659283267662519960280805120947389497925385161421718917550707667577156296758016448323233209048422559916260905382960544726134390958839926275442688729424839361126425079403421341588279370090444042259499118100218405160909580212047693027112257469797332927729528488233230729106001047108996393665663661566438717252681152094099859874015101542100032482016557218048488782464721234673070066346254944805607600720585682199036666861591216278193280596402765284599429065830164845303596163854833905723832503851067349267511122001589677834778770477740576626884093135306130077999132988304621321577470762338956346262202211157403835320022354208999881459352487563932389915356967637585986328124050346477775933551126360488143764105271271519969792937586046931653571709892768922600458477394226938006863940601785216939397655560908577325840143855368768171457329294836270573975691586581456806770214670120163846268963939945812022314396294087319578688977750875759911167336930503916782772671743854308034000687267077145068681285870388297345920757461544931898749725249173071769823234531923985015029308921261948917033438164227941580290397837684535010043421464018447340439357875457547522750214007729657651872955749973738971134566452120929216889688382967783890881459816123135905794026830232096285475109622524096248145531349493557881384502469967472213685395429288471164506346385822178250021036712856816893320842221949519421119513632803926031838713695225329722514566076654457943582444259334745541636077497901615236846502494971487173113060021742193818311285558689712128309682179326151391718258024142996434963271388082523487653401078030808119513709156078243383260811267809486581404952222122154018678600787325121374564456680844529371616262977775650118187405719992711793734547226512052960531197214018457745528681865954332236818215618636578106541027138268316411356734342923582363858886913141874838086055107976979150982561755568486371093095705280582090848098793876843613402406441146786572990815388534902776534099926407109627829857461497995108103769095021512579792704758138842466941831536227520529813171915368903009576760494798955288226459893287150429555863366312026157852645732700292038107532814864186660680713951307791827189323713046746415777363926588890876392689981262294162574886342930484747974487288762176480583202998673553417762064392471990322413494454632553630094297393544237961315844672519480994183294978760696986174283677698976045399286710940450327292272398380273472564535044021713081898630433877894551541420503683214203720253324094189848365113603067968575343640076109347718483095280694633731517624052159363191192743741032673341876769412049016179272579681966954329414690512004135740763240887539866749295528159058263412488828612081563251255596958052594257320927393527374918036890432146506356717416709510136847368170527715431950829768581565255534138001966176376754903730042618368936747324418484179805212646363134221701639138138620137149953435190560600362744236932181419047366190027139447376586934773303785274065814000894179336200451117215941683605122194387801429641941571669500039004039289203525199150368284558223760445864399583527302384410417413893952137105932320516063439143874434557273208189156793418584638133098367070680508716821267921562067257030206205958623630294188190693315397298284122361661750748149534590554027236440705362922325255185025988923259920368671921655395699963015901726573408299658115542268503286256574816760344629612914411319335055966822999734698248175213827311479324525023103898814161591365822575429566431099915416974282190665269098466551612852294705300247693627107741042389114488771851286931476051718199434533505183111120401129531662055196375660963269019408064138183981425313918362965202106539061682615111877669822442588874807291877209688981154418417643105078127674757759335074575578325851339713559987933139082492392310458017614626113271292458771800166910999352428603627391771724301121554351433153814404878890453731202073015936247260513182339809110808006774572130511562945588003995806048948602906071626925585905483303847598367408900867768337694358176950700876175285368721452750162336678064382211074593586653097029593115224615258888758238690244302073156947500024010432102614313832057869946165210000114747264064038161042362561018313093150780209475595650638206171148937727806804414513793545507444702034565631972481762154281321031229376344756812680791748648603586231240119815205358699886699801664690429043031968816551575708118323845240310366862934832895454488232163205539978792948641411098386274801624506290292116605384285026882902019796194200201293279641962926766121934781104533765729204127461561057940429069720358403541632805660220570613331407982806409172620821579652352423014674926465012673297662369804459338050359060500204146424859899182964270842352164639662521247676774163904745611741550199885488541151267069746980322284976076628618545929960269206986563350206546623253906331364926648306689467724487301986814501239872402155153635827430624374143794893425593323540971116048543938028869001097922497692516747346389349188886471923253821621359507204366495875097942277798569091779883792695172665492956787521158758802165350820413894276955641038923478235861373314476317132751362347651532038828664848988659907884180756760733402727919081222505116903173042928870389340329051049443445227006387707155966194816528302560538124801696576217883091416961542844154247325535880947513772597014260142361426726704899813497520668847810849770455238481024646335341945730888668022714246620417655212915324070938135811543802302440426183494115530553567937076867318135513803678879558642293378229783947718991867567972344306954076866156937381854317690619280874447236226942326132537759928315208751354281717777064003702579355093643339713272137866434121491989569051018332914730065482025166474331568130176894346811880543700102842358028386101317075019562335733645840951868615226809202877017184717262924686084182704138465372128921350859488946341239748202199130257126450169768862752014483891498429183991278595111765405950686278850160210390784346485290585085424100423160165639426290170699111083436643408610590361283398965489150277233156354036303888792255408461062638292067411183134217793212353786293434322540094914416409889826294782218853371286957224992269493107215197181296890813203364717763970818429255186583330953365250834876344674594589809533619746616786657292285945709787086288681496174927677895354916138060132080419711108013128012330513064566573176539267090192745807254261692989947366144523339006801968730375265740552073199984403323649607475921334366304993833187543427705883521308815101324787106188897709678909167334677752989861052250587284843942493282736833350406297523307608826261396319135672706682195429053445447585057131071678313237397509139614900303165043898444314477666675438545185611582692865127464012700568226564626678011012758399974864781819563060497577847719642272074654409336988022897967604381703499966390387222616933616752196306242251697275807088202139952371892107641166448718393168552724694907649497541204511764732508166103692920963919448600072156464056205350110628537776778207587940723856776562840011645482034463253918694184387331427770713144565587497430109304977982720780602053006467735166173991303485060188160249071285417004463018550976172960339200432941741347877959592202261047787094967935459950598270103606742998046915953145290600293002727003650591862669687982502193308008966854030173570717136127401757045246603996587529345861405066810959393082085937100235911738372503480937107049132533621221630342563412486202114221096142450343354155541033052146578490716796279797439248786572910450744647947657363332833385080938597344649531694236017409737451104171374378093982128503049068140068181192730559732726739186608944071800169114459379857181838528115522777742325125850225385548933537222823703703215786491084684603240697041438022141792981850033617942828224975457455112205652513535218178571723427655369874472078208262443600431338135539407535019326024599612330569742282585614486062861762505297773913940489900486003953155297096426945509376989741898179916214840069319460924171037903806527105302314251696938765660608434147018975527067348922522578639429068360797207985562545436226811915537047893106914749239505702161444380937156818394762249372914068230122825716311581895845117202921777986578102547974428754891582344270694396722728929793052216816429923407224312059907683975578000537676660880946037590130714466800370355371338148641337880429035125647743971720111578470248440688993504323861228049673909900364992189666075345842258104627632740979891815867248842947054298581331111333455433327931949092822554981721321400602555697066668242509757496815136531150898466784834346378647112705640904689408171340920159667453077336860414939122520728156466033903699489638257969159456314504468637134121765150368990150255627539624038343814287100294660175019834481679820796216079437010015113829313187712790892600285638107392371128437862944909406750617817225959279026803572726248883658295025439220805875883873218923733312123804457468322067345111002350611507646900225569091051236860593995059140144523070701119224999881886764195935373095614021210501363980353901828892508015414954767388892691752094248665834849165095258779215230158617840219586671250638023690605207045803062903546367072345076456792249362217906217524100322246572724127083699081185026138562561090561031716811741408600592345819075572028628498876318560191328652624796003048398628512692033893694237605827313303858009535682134371781317062391728866060148731064921510857364865565461622284255020446512371155211354763106145501220121107604259614878161393254800393808393047670158133690965722150484382116424419439086865611257593893163897756602553133069185657669915503757001483150228187320768231628121844932453589662504592667524251627492976466363039466446058467929163543851205962114375437351315827999719553821733408541341973190127464839896332182615697278329781611407427429249399402706775214231959502615193527350360228365977905360963327948317206462411624774119169547267739906401086265868340754094228491075633683704688784088206994732876766116523977742555713826461950531551300857659235463576671306092865034546061969511367255672760146834471341433002349156546827054118645570963705525060980818378304816732745604413179515977612501997680480769220794829477938308186074822260978791259697419720716538609002734999712736116022174810982257686261130871656538872778027677659017040635341951630828269856418761924081961596873460578761511462368580881631786088017015765822669336862821298054567400368737608461177766194161068511738512544787737525921477677783049101062331411021067182879147008523650608982753220227233875776686210527971316019527284775935386926720914653275605250156163035843114458497570552102947825948482721076959940850777000639040984397514198973464236507373434292944464934835143845474000504759466947458472315397855845798794584535820731266049186644291342058721898126595081776785671484138126746264873141845721058454894525079533930125457855175484996850922222004597289418728631118692849367841111879711508605673689034957583464409270231738499655040201630812129998730612102700032353601884670652468076893409479718821946322474442837430290529074474063217595326785230659558973921611514754483521885245877607413364941226517587542521103248532040182493334992775697965278608774116084930140715723927960961019829828952608515564233462435022804542473671635843941074434764595924861990795853920941432494151683888752501741761851488800238077596345333983430345774183639200301459646941386315378652525737344961002763071887908504403527778543436450948994743416940291142764615890773977471361157332387168645577215921405110191826952538793102207598890943087440881426659442217611791182591971559719283566171314526329966013650823907852834569825447889403102537742488080446943171818147602024679598197833180840569975871524094454071319538647036335616034025590436637533502130120389037593353206020390762179022085318250457369333623124098164186021607389073275362760748006460852702389912857718660327038845453963844648513703986927542642518214213458604908366480858732057285452640832740867033584721962964551863594148858560764059672342399019444635742566331517422543465649427939330731169059144361359320152316683575558452138651412761493971932171130806805186247137896310051158761653281210280610424983576204510669720781944174851827147929796623677651198238115487171283888830853822764503321358883198599939030833235002520535648717718955124020976889085205662285619685573756593892976119764977804841136352396795094385789631606381010494597000007121125148850638729522468876987338742392912819518839202019829732690602824652686810416107726233569337583624031134532181737344175039501762496654500648232669126057982961305786650754139668180495352170724342632739987688410752957070933347583034556814179354034576094444756113712154277848131724639851053928792276981725177530799901053100523275379693976254082413679157500011260980084100368880615566308971895237791281673530715579279736185701709155598780195610971480335974570031131715529547408029581099312701879808991245044906576003423073980204284443337799584619226682597224986478033529816060065691601781880673184072700354019142240991760606404120949107116670249705092050813479241975042435649765301489370224514798228765758808275124956818815669169006169659783610764373593879629992022972645850472076091370372713991131941527524203718145054852316920622025858321726144610315364313203611871522784132260821083446762392733261553304183295348140532706219020739381110767523661484776139795970145849553908071677863648499217752395369500668669576975722543773710697654462104130446055798742269969116534265234647391146560035357470009594012611324364816318673987874582041062382930179692275017959859764164837578206444813309643106514475290940642534337880973342552708910237015538236192486771596868828654621526907065669724293597579292848409566097402994710978953882586039493903099659442736764146472258440338222858384308582060132216941515369255397246106430883290511548046320662903279535916535086155255741449126849902084700875891222227441239427606011289880962405733504076049429737872259285609920222278602920291976705994345312018276741856560855670082178712190991235925215596627189767629169063187068443821004480634638525455071161500542538620969522327061488262963985045157424058110129111228785690722309861027396632820532768539104221917614431101596829326770657346463628961620577635658289448352719985978961210961131558418786909695184040960739126497803260349463160399100928644096417325097873370851717026473473656893129862160245264979892453499434208441074652687614918126524478355431057659760095121305335501888614447870506830866485605089894775324889431043598041508261826292406104089262150094228526227728295907647763088538178529674431455521658810564747525502027249453750535898007790198838526429072762825165323712783685318270335671631198627875809650431216699836850359636377885678045666072166683833421886317958009782634095115766691217764911424208139918462460062295431894489996141681107675454343175892274396123390121566581086872317018171115230397535792909265585066823686133676826521164280071485912503530307534512325922987615152852079492708203517526976415486282610100412421320373860265702507899796770118247047069085282230606077373237802227966669882059121654314047069050752076588647071052399606301280489174123608647705003444082216752486763873175366462126937321777945820706211371983889794070970318236882142185069521467914085996523097654463608683911829792523035810227668289808288567607684370433957830207942877643038227499681734600836042891344939652513074721873315098662560872066979687006778138838250405935400866956706599064322863131490953255294795411045452904228675307072545594816398600391212142064095133241235914398934713814982906102407428278135278999094067404177084504182779232721072016872658462022960842714586584494703189025587436459372599782352974740082236320329975224692387514531637076744057421652953393100361951590274049411153206366691077271037051209040531744885110300498885365718145685857206786826100028658404197747619321687787257810229988460548690945981148024035664912423817710837578680197130212066402389259353475291058381939262489857432962365346758280187255478456531464490789247064576070203292919675954232399249593971681836938655825181351500407980043968061885571595158064885229163316514715630501084756888152947129089850871083485291411914145791626814743845527100715105419950602525850919864533365811144550276903621333619210739126706203374603522434924080608385189433537911593972498206642435305642223594350358308597780568296857040221601241035299455522540954434167227085750433973634504907845313483427191372123389530698199315211316486746319577197969277494657627497753282131974648693728513926928661246538708100954168552690210715682982051232305810193622295312529544452418217600592455488200556974406769491482342762576017619061728227478268035005181120064462990205764411307904475441914074577593909804132164695891098094540710551620673084321338876842862660238862855454055374642712440841405753282442229638252114543986780856476627952758261224652912737585052291538478592043238948489052122158522541295688927502210227095045771235166056701910652405043178167496138220783936120930558925589002227871206632344730599129559810274999993245812350859843641807505595176259756594831739327349160686555918957198840566140369124943849524117457595842962111546677982517835607588661804478154045761371577919980633388055723997540008703211274246096269029552096678994092090434487027992973958880855797848763150055484448228694081812286837191727427949290022715013375917026975433882558890882676356155895246061878215601779508818094271502827677180712008159921710408170754754703110734388084148427250482644798112246383225575714484663586946111409794258332502789745502070089938261597820037840305741569149160083755343649535716267681297312058402884901681620741576759169051426015887692499663704718390716314715949225200736079990046116393321824771318812910132727711595746888931047250926596401014625900455835007812280077577323186628976502864085563735015693868707336972755440202142910721733656585557537892285910418662627802937090558804899141999165101337118755091590458920647234882283795321079576057979867458535621742537894206057752260502561419994578456349458017789534757934940420141090551339230904774594061268608680591270011014462070781993995603890029895373126851289000040399859108181962593312907818848587541314563011854858668720175493260587720839614071632260231613480465785047745873692777999312415461228905319791530602484537482685916681340272433655634881209435661061953217788164039895472791791717547053298503953542532969147169650626917326876928555619734031142834584858584029679170872046751554104265321371477574915076340364524648110060614636972265653133980512212843045115093017886819044205206674236935479722587136896735619605067919383291383161749809027278064848751628985435285068526666796698015757878209946094202925864233007782401445761185373526976914753057101318368578565636694606156688277127747557328166917261673535139045089314840134278255778564823650799634056390436414483657900790929910900779520334340448511672613315651261961599730219571045270664720904929865843463068835494304912404987599699480923285800162551203378767923029187765220508581207102039894390082199210788312648135411828895723642468377443904300057746594315826097896715237730333954303191608914610772749446244159400827527431059195890350571076585425803316949438723916683013727801177933260162470336061363892774911244053702218702123679807614303294600178996720906943777092113924131915187462067390909175760006889413333550583453549668868558448764196546541684029746819252749055545279783189904408887894893694693896764042178346835049272506229567871999552866115313165022412479580024669097337398728749072917902989085058394660537108086765021493625221121750009203987066654341145225000021923984392773195058497601470300875722371735676015754965206892920066245436182986826488490759951860063382596736781364350509676784727873221772514383994701814317970647977446876511374612325005456733723689434875126504685398988767959615078506587675947948113106348226935351763633314784610926012328503552729617920257458013225129451745229415805529142054224962569002082202662143773494177194348969984687413891215078586315767793106363842903831735807235911802861475805883092768769027219631209742934386742696182939878283450521363251832588539793654017176359030125935066167153463248366788051514503834011905725484322541336969968151361254594266960077510747060179434766066329295338615547445276152463172938646487511873495900128069353552216010212507688520992711573184250259624424587958288163842356779672506864679447285215541757472841144990997279330961120108697270820745462286803437095832572730016594327740336039792854620416489667431630265397978197813623362395817397488059339060076637148948842808887144829083483600130074297486971593649121348890978042958350232118037472812203725676933249788864133823304167429552263504842434554174241566882179760192426495323917065515522666311900411267898684610926447929542432595476988189351742762413693248776923246357412594344882774473032416710680372137947487623392435415796335549275371297814625010353669969749094455700565009864682674571662087280134764342742458544327316560970292338341119263432986841827283228300101746869231536772023144414286109478757303346088349062867489156923161049343673821804245485617937479050061432182381881717631727097748003196498026055763028169065521151045758127921667917776601935954422055155355242553515919761368791473620917641702525836874443271343335589461636142554829097195013178051684202089785445880532881632461938233845270145848128888882469424006404776953622880396577134646303189398194050575054329223356209571267044790815568381652014250194607487761111283987670251187626149083225571320259437162605016250173810610232197505517758841671364658194812751438630221981656320723854193098283919803823438672244744244021068322461746378543615861981095142228864876804286153477861995021015069677596511530816108175249786028119870163862321076180646655209798925811978140828745730034325248927693420816925439459630585630962561854678339230042755443708495643791848414199820166629159214230252695193609379943856363316726896750986031836771947361417240442004939709487625940615583945130322675997393466965096014027968650803326508824301083775635200284556863530551313894691877930821300207344919663560106124898131445721276409858052204769156162685723520944686966838367773788457298140802320288700830594888748828122510713870783280209072853384674081898110337462649755309642280257546627049505167179561823883081157966778606880924287456778797868671180792127868249228122229455021063841458029520646158317296417476687843712852311035179476580000530412380810174759464067913291564252757595990905519537472129859301012381040260848651859859651019542848739099766588576661648158785720326546763856399536507737790111921055914464911664106900144389764543019740157460487148048679112321399188917874580194960316617568330675224935473865708684372651369933968950882091157884702124450092370320703918386138954988564716285613829219760768676395612300982117807830135724579859181385736813412978579854723353513373442627711978136346397101189801223896294340676017712201676549985347143742672932169013952383567769553556645600365128596559951237819177956234410193507098026401986212415875746962092589832482169647588987074796405995457291505252329048520709497725646620769989110043652701523357680639325849015571417422327103219933908470157699103560672375254219222739647236243659592042058006006421441199861528511064786995659681059474755709350117795442566527186106161585482312689311430023113089228985694994362481838474326205642066545332891693622117137234470304926157255442627456326666847912383320314504405505703472724313344880073226197103837911002824098172567737158583292543187825523971141191500700105930321308473968456595378159545178114318046389829325171221032490588756673403030960487877697707051218975147007842773519435539183985214032741638604034252840631367321093137733381190771038992812177570629013642706615113906484861144662066127558052328284910204095603501474698911790459391906058914117568968575476288855947414404350992680436437761415312636885271777863602749645373149996357524218939589558099889106082031065267278560684700911113107170679660225098108365456610763452758300023784981526571621767176958021694805447524244579595545686369677488039728280095917642089123991914323305991296032298485652591611108234060847332723010417044298865371725340497724565741507721168002883622439663989763350698018848051146953846557478100056570048950854225049312457214435499206983097602777232155990535391701477445241418943871197125421465639807096249692591848531042118096388006686897673068192634593400110425534092950299855895655888809937380611969063607921353128230382840980135707685891469152727671406623301420790223618684671582642477979728419429420170359561822952396139869872531243884173059387944792007310616383439315117133342038745859478619524686560072594905334323706715105228460383410583279672831051467255137835498506063045326169386305182448640575015192761786457683873342040799412363439202675029451344562071239318240323966616504483965847406139011477810077148179588063612164069954945868980124057553630675034123855086127714048881947307380620717208109514821304852893377729655728893403286450767618873790428688076454553878233034940209793287401563983885337172338822539792595463485715310298217706105651664622733855853905451121898427371332201499178081522411578569284532146904823535114034342625085131342026147959948450522957798791984938227552659102628210690885417504342263523747056008715867924894930270170750867948498244598481722802566434782288920682970967285580988356703755180531819076010686870584974155987067179212562594717563396983663725354284285982757760744326141492781701143208212821965943397341712273219172291411125637338369397122847540329720628204436488109198278601288564775093501646743107900119246372982484871274333936896906745879832582854351554295676338933679046840468425079466347707623387996219363406036271470433351761198477556571244426547185900894194508379952568556369153797001191086681378801209049811652295526153008750283613087592487992510567199861908330300076970572265673503761815179310616203595810852126100516835378041241899245135409011170421154305154989761113973786651590310466026123374729570625693873836139256171215378409473712780318543347831847364881324113829501846347692668475038124067757017243849110467274997765780456920395049905529056796115388809539751715526173410173525502912793944186813738343599742915641135497651081060936173583205043218303482938350921432852203166815193994817875021367881286496949292545286681335336407751921800676353730765016599729701947364239364656460163912283057036155541410657653993183734825356548821305267582709461213767049145970436337917498043704145921489643558182724359840138327860727284338477440103422943178147012408988181710791246763558058397463482577377559398104883570428654921552119102945046954153871778479277875674964528545794795088008529082127427345871466754060592939913770108049858910703072708055271389289757221856223737994327429785469667671200062802681389461860756912923459207101447644872048918949751062706226297795087650755449218798795960954713476726863293799840719528742372631557742751764921784348880218845677338948406999736277528775347648972170260872190795032052581564409177874999312702863764928188039897257607315602472847865996874727441814347234632433477028909016434046032085854790514641896374146911928158047524338044636997613271551372826952007932868609594789993001560319274752925951116189971701400408352329248858180199100534611285575111251782744765607056671591330903576546789215186134130269834818119434040894025382753430520321445186557437216810388722424702920678320610254425562838560295614480346954081414050760923512823835827427620697374327384860613153247819273817879320388913156121419533577642981496469440282916527795034617001149192475084467667433702684345845058545845933848824497489095859341913745772806029681699085996898443852643109521305620201800675076083079726537417390003054098432859236239562184178601121042318374252810995441612861272760231514708232989156480055851941670209640650768981631845009345416309454841768297146339781144845951393104477855443370027702219150369493345871404450445364750690722504229438860741323467562227542279219194616042718056730483155065999255125946740312041433228684585161248205511917068763598229612365411312166410733470560051848169527630800693049799668028675060768154629587548434563724334442403949722097280088777168186509868023895790316692869528139159371614882578209600271647760293627311321309431237661169731287979031368404775732880446517856698603876575043001417376627861367606812883657912037553928334149426758557479641257798009496471067225560143816538346015793220024557957903784417020276091019008410774328931739535287621601840197106593768480649276319434723267405660508586444841251175894441625863315790705261550805594306009847644704706750316004233222052588068184292305297847081357950924310262361945397460239025209973497727005272133902074578101566825290341360786102259817627182368914796898611542649333367057032191943935544908690142908682791037038381900152007081074324305849605963221631953327940970450832235948130381419075855443352077818826960055801264667869808998939594625573186877703227697461078221474910134878416349925501177268623150119414232164273283269885258801278133796454117867269597295528153782421778259595017076579388132547559411028485069858826405724118902018969302749630123308637294155707929028452937210199240124283332358328252346340108623631516712461956699355964014955516247953756361018195536567566428851405112049189630010176106011711921365621724911898378823921893644741188644758338149656926587850664252532910230531602469053526894385934012248702471507505692570249108122734064104810142745788935480089106628953555275265383897026693603424308916501907359008263456630908290142209577723629524085640049536247193387008282364466498104091108333625348909558381044043968398258489178322743190060998807668153519863040169229115781870214860136727663758260224891194297936174239237155894639585221351154644421593233762692329718633639601737557901870808231270587900792177759207768781958760330133521557771379917247465998397094807948303095715564650456948134292350133436032628728359418366143220799666536234573972275020095742673534727529836757540864548785774876412437850060584089323517885575658076282488670631627210647478335166918608052379536234299888678279016744844272701345949473415708704506866840604168455997461157651600856806704895818405113347333055168590021473957553108952706488151508556568939218361814725859764084227135148347061008182564333387600132040160492077256688012576107594213205095530419315989217631607461704225195857673855623024904181747599459329993893037380388959639816105875699390734282380459497260234736291690853694487591262491587576070791175052390419961836590001921341709273653674150484000637095807977945434788357823590694668691834148367857843053903080913419534140665433279732029321928141381206929120886897577458015620397480046838028601675608581296536478013508833883603280731595229857066077746914551051303871526183487064428468838466697326263252816560525639695572069781553544658117948181102094430702333966599023730005597937680225449029221380002263179548199738874172644741462972694255513749060834170045329957656050669388493853363036762360215633155063014002767012856883849533060727585327269422617029564579965786694671017789949546409289742687627500555571345085208699396367874247021327610655658684389896391098198340854617747652149070747987866642693978619738595732523785800505618129193112471388515967326252171021709308107820531699423672724470599780163516955020296429214306186903557614012240031007927504774036064775819069406698016772603842410957395887817166609819490171037197912297755482093427081082750302837661228548195062223484307060784321397987205029445168619163556315228642819950365294976681282889536869864744955147781602294757173127761726553589111557398585048675791497767937132343416220271473286781512804105700448126713895175011720272488780033138957486740860853045080821353920983242512029874987691559671464081759094739449971356855822134852476705395634000053970064816923096991252760398693287987792463051265652269681179158637342049148744269506724115818112047571750078787252888047271568704110380681904358561808178520662678652048296466045580727120929246132843346159927910247419918108827373127859415860443700927618214796141984587316715307688601234110313388770990381409171291696267175604626380915429364203335517811900916700391384603527677295699751287569155366160255289382014071560198664531182468540813084011965416985434635531439090644710091046368081801197689534438102392664575285353712088086033587765847435335060297506006668695428176070966723861097037201972672760213218291881286406891279166385409634593165245345183090501102191248099769794468520153763961645720033478659230661491453410132075623809121224163578418224463505461955405843384851829515544960173289436482339136685096829925276354370485883150272104376790178998956036188216220807350596383985751913899145817722881604412466013875019883922169486834332577746308065669033430212356262374911886137958119579695201681468583141703490351306790957444370190040446773104942929906034925169430452599887626144773825682884100032619104653747900714716088837913428458870200420134439697117792707348997256001533864974559628934169963911445563679912136418931348642247897550633456903339113415141289572292528002536218540895437413823416272680155551507203371863640273914968015980385186631755126378783588713190938764872677619165096299552531537300803795788614399280485612240563243235026936705300948579232711968647082460995703210872242535868221411422426166563119454381828023704093904637869526156229242972237412944770324037098057593729940677289092772812983265848194633338986492454057085829864127462276101017422903022174587856527873792092946526358898850801686991161665150107274348303928931133162051314184180406425847265488726449927569141967594568662660190616568869337000561952747836534350919361012174173873690095179872629292876822784903178887760427539578290580014099013789187512486403983572996472263022613261254890970361594834731868017196976257335529381473213363655554692772050356771615810538377819461274072874600739217067372195676346529444999750102817068050870699117960123388702788545658025513452276736867483923479686668568732305225265053783842123400003728212343396175948383486736416869168553086327024001135842935005051870097346149831701006273831627203170647857293597644736106240163325265502727054532221664830160756325628755424257501879239622007697423217859877272637998362840324780852206996994261214398428558694510375586820390611487364592727259335926510459480292970767760838030340797917574548854509444940814877706908420325926838893214871410195681658059945941821291339519663398422041893416145507473301109526469375160225466760559425720567463621477009866329239440766134991791337196185859262664741047768684525854776456221771288273671405981988710886597716385928844458543919840319991186513242429717557683731976416890070723578244513297060249364765794854241062790523992627721876415345719763061958834279079438790500561356184593428879441937079347615901236216681073139728529045038318200105684419822026928458210009323104926978211780337558525106579563532311710862288041482415354657102839836970501304666690977931252648670547262755803890688080755150208203263659146424668476110368932127066615304549083530318642339385118438477777566928290617814668167064265244667545313437265246316655701435223148648578510294128497160473676684524478915308849108702309876242880620585537709261333948692955974944028455233910433788620117494249446749505904427947076920209024737370843382281545766520387292879306273462729794450642353809846747709968884806384606215710067417678911407308251851917612429377602819959525019254896291408011988168725905465864036558361047044323562937777067003860029666867981934395524700163994124864166868348711025802068115946982042540945382885952221488821795427678001433464519059545813504663185722302101358596494474356871975710144645832240484684772056073265751059380799574159669247120070677057830796625048990640793588460479508068954960666752049355860901317155493436390425458693577331707795980275539880709667187987781478026512761277618872542226722965382302964938659465503369379719900988074076041903794028778450809641520441388434338000577368292579665626698695400722490077896329507943830161062282184284904967342037530611487709813960157532811922974060246505951942428075726088116399275248927006587105170832890526251777463016071825034337937593165210307257326222290268892897010308081136315119201449396919395447416406164791405090436997292113023236280399911965860646218882013420556174902825627748843526699179859529312804085704807021871364790854094039955299338765400684135632300458707466816399054499763338374101525769522024900765246559178961882067734015173466050065447294870258069922086140102594603950721653939362767105047818813112861326690132405154924014484516622888787159536032061644616735124467083682969749313537530907374268282354107464225511248941481009311725371770958289145441765008820540047902705030047359659608996819003665897954733697683863350548506031423984287730792441677591909396857402331785115598699054744831604005185246890901427183250451937919313651339337822649996730663578621927087119694648109826374681669630315169821260698019549246916889394213325323636280866490692963667797654369582797923215994343053074221557422227030373933519022332656291712378143132271030532635292104658917143777455977220352049431053529409884403894143888771708776461706192776643174981301782203093085596574476363332143632505217530172905649403043181732520825503456059264360007348610000960014573870773647923893146046997442163628272148014523876782198092470207969921444049406750023447193759714823584613616908146141687587249531320061631416851812270105531662759907027100500853867347825340005456665582685096203751449300527919660675795088580043309942113144860640806518189371021845176603010764030413335576923327218987055841424833187470012555122774209663032926015381077985445704860752529523092846272120524232008164119069463288013634787897422719573729868501675155341704138708767964345056025489593511138651374412858342247659984381462457991529045508039716568054686048934374230863358112107993259389537241837484832231014372863269438426725736384189082824262951495668310532498984738686596123366088487789922187245775444277030632109449873899523373705921406635946665273782889696714691047203790298037170813070675792502614453841933077376967741289398059361171227286558012752175922576614848842253574181494504897634683629870232647218235343600246313080480013702456177535967342506452767163072713141883106132471215880543802322446410312944391449375051018588198868112086078521486449590782874579190956618155232859845734104056424968237748514646979816357776542831588667501540747885415220021032513575568949061565190062896447528817187167597326389725089849653241059410028099988857667083603937116591064673805765302655111316041898933129914905368982018269809543816751229335749027348153851346322419050549494938297469794209367773880335070045677046624612107540317974969785851280262197310555725587330258364890060512202257033593826676701652144360618282986735872163944608368040473676454233998182273059898227223366100773035005696799812409364224876783870445915256966446027922926283476844025752620260693610033262974752027960618023912398185464421342499315854051493325599345335045859813804181948654969808759210841760190951399022305421618384065148127688067614491025929229710889424400651489124740521079964397488272120359492000061535488163406435877023978808641558921844501836738037738895600749122059364765491473147123446896340914369556301532314773393257694275427276159853481933017062235542611495469898286504809697355944087596200578421060255773962234811626339172171924078223260511464672028892386196605327809835189514267015653766834622229033736632610635371429822306265523799029827769356716961303812018286126381671058395901366567135096753095342247982294556977284524950987476588683929350335467324859025324703448067918485259772427439011886071894561496123611843648576963625631616083250457660056685167702819036543173380748785786124945854403418856224265143042519061959125736653581639799725743163383860460168539904271554147962138320862474204557762334363064135692608741778996397027899660668768881345024539133128876186139569094058019676247938775708226000422775466567240888300971234176554219840719036819260404935173984141403550898910834281622969017881947711936640142204436270061968699053021466708191211363068278884459076822716930598653493267030502485503308339427626355986676030952485759598413850444284263363375672655708952536381547884827611167764448183265489658851985569303939304321207316819590527011087654398016466677175008018237789223058258940697007758148302906506794908893420540451082537849388598635075251017922658115313744091912683983226633662759939966803951515611675057507332313320834175133532850584096511697868255850844442974210518707215794563245383864318984805273126955814330947349227466720806300611016412082007398544470823203597336215633603958780800445004739369057090680392980392636507270848530055811769563190448693022873276903586466727781874845799055367066427896749779158774806476575581885043528805872451924819111939285150818566346521736360174817925761754895195891145495939156270999032889538082756513596434213105505829989857079725628247870759115903036868336666275023489299776112977594175981109626059839227878671338183677269041137710420588330701384404209377564663191540317654324771284799155567832252816747557078646237358509729171091859756906084531140576727060414096393584752405617034312874051834842638359411672793063296893793783482181927903896087538619396781749712194785577901273524896324308310364192174593921127951153546329433373311123283246386841844117709556772026254792449841233915123382170426996357441753414442692128594178152295235667724131550381149932422422794704604751467834908751612078888304192703464522053519986255380963308517773499019453776832957839704560560139599468546513062918351548496727020781849155468789315742912118197164042064134264310494004255674007895519332926049507957823556229453987706043976126172916787498347850748337580105472952098534521221281239516298806794066178829333519887882222914044495122642546588836659456647205054320829934468771623346131960198972656369532670088855557378018565419090922046951032537844838591615047652616568357507544788214357887891309285597493668384999045525735689733651341174087329171364604299265512582014482200202211716837874129562179062595341641093779685594700223549520138237409119512314528263530125314064294569648203802003293141287430733269042405161144820063338169052586144353643470765926832701794457899779556395905017835377599388243682269465224764655076734842198820335172291615844618468559152704864426767241777769207508168355616488278640848491365905268783332915727981436328391255369081524526555602816287772721063014359181531345104512749490907362202495845608111761265740040268947346657495786665521528474626625548724978630869043204424469356912397875904589343004517408721581171904356966706086082435287066950434181152621536378001783504250980250937685038873778963867128260095119913105351482561523085205366877323577144288680813043860506750932602561042296529412002040289124095179122297390655804847951759397330098614847910825908572295823426539831879678989112428554077180632876147850147250547850278526700866833873506496613897012973315339107785443767759134248517321561664573146698809577122010206013473374707405375506200148145850368893589844188943588905715504986877705201864120922645711809997518314234946565138440375649077540811120660235666027229007124397191146710018750854165534500544826992775911217556410562964064002018635288273764564832178265275274894483763593527547927176337489749970560381089073469060346445638491168048806344147877407101669392792892554464680329013993062638707660143166797531277573970629560178256130206101633927623934037730365143958923468660293985842898746869046362624574779778193512917604427103804136489395680897280764893952511519290848882972029496198300608557050362289616167949303594249288774705004996655970551867128426781900905652834887540773766855811240855532102344775508231709284363613651777120382825811887958769386559445798884718413519959644268864040413056746676435597400163043765861286082515887828580381618131778163079559728731724697940585030393802796889280657350080737387489082030989296090444761094775257983531327389176836931065478373128162223751155811769486188774039375172879608580680329335797576108267428664930408439080993893395089771542617381749677849710928427986464596777892852951297298625453895769796597624104157982220650583509834323833183271125583952266052081882222862457741440117375169624627031962365399776326560240387088812823574161335773120089149560327374379735304387411638075943584862570716679236079250940749289346452775060279376387330833409903211689703789508608896392319596740226172651389149900362739768320973387658495222838550545044066311062011816614010255175254396650410873972182431194822551993595069882993919333690513698358527193283158165581803209046789291768069519144712491194296992456263205177153273459775896196180672287288604850933001001879257089609797752514421419523599306591167645646703737849954039537637028710329184179800811690575763071626196926327500509326922813004729257846356007672480694327825640784740839538890804600068673654552866416286618052975116651470361501304870825230254865844298025139512776446324445567834886444528691256130455750722286058244541108834874951978472098676877742176018541418339058074459743944727459404914784046797873826253760522855534069426392720432435419074254188185951836033753483047980203461220740213376297246684208531510482832854556627374706749820391118419178806732737427753927803339498230678182642835317538079595142048059702965569898153625422842128746656482586022922032462979317172113584410653832568612462914132777156553074595486387185335044989481268236736777115931553454624230662424173149064026264885584357573782235952224766417469186463073823318050948625731946871088795183523787239390047792903070081576367358578776269954372020003281409931605182878906262457715864740146007563064294475515335960842087971894085734828792907348923243520501531268383124335593615391467885911857280219107500378046200133544130389709898366943419108488930939385100291242259101265847664507205666927567906480390999758542306203035937041419677842886834899491549378249080366746423770091523796252428534035002249098929842273428918380344949419725746330867088359133035344513139108481380721444654594375213480514530936463015881824639052530041633325547623264864157905870921381414596202064261353592424415767231160456421560212104739572842258171107406690446677783002911643291841604186126152302550731726025826770869729233039456855616361396168828078125584639766499712351266333603503164488213730260069638948190712593009283946159235280980789891146050996612544110302088075879105088853663720704860368447725583983423162042515906278490158200498129954778639588680524286087530966363617824856557209529613965937639325209032126204607350470842924286696878976491233064631435135414588640826348909794094809866387952162033642360978599798378703659612031813075947691718909732632465098322098899280361632738936265052542949388532864912994646475123997343899437393084844571921150757882478111716130309354003504129210253073913492987701711684621537234923476784835820292471703323762242215134362447618285430225690090196887408028651800274452747011125456899406857703421142937670209717399162081455622190344547438407475654174000598074896603347942035141076039404705963135798291411812574097896443134210308184875501755391332108874138079217688648868709621673474371888059507578815097038300814302767640135355287965087533590162119734062119173702848063409201708422693510747057787710374606520475080265262757911668704970162627513418942476075829993318301753314247531967791192590940777258132230468981849092662069127676474849721400521352786599435784821687554013516794079090885182137143885781472372598738393402275344205757821224860371092405763327994772701973875223306879677915511787079600712085947645489843133983095340172908402020073724715137596550851055766164137391026521902247611601992367090019489636982463241300689426851052367262423531881327112001842243504125259747160890016066530577049407202850151289284170840843695832424967928535527473043210393475288841658759630664760017109203052993775826466347530949528476865884895217387164525655894375413652247979009476597793430375236612191397083617342794283771791220332805209485419981387054489035126179199806028990158433656204793568273088190321982969223383426068352497951038541226786056341798830801596503409532586045834988498826792386621179914898711516320101842127215527433445260627554232114832858482690153804089826202279088593608400464956325467655349337820237854643543459214682119763965357563620634058795426976454231070947517073131812065004769637471571878539808740875790585917392032238814201503415246561179777852865930757502121039156622697292019944111726946112694499366460915573437521005198458955842585924951314713303791041433748164598657430535943735940370117772971463498461397414479409414205610970538337844250462930586391711681894597292960890406470784167402838256284110663748206497603662905956605174894879962681875875857172335828488041103286402785396896298088698988363390764489079273646945458290747370797462731546015405772340810568879846649535529522949933638176223313334575103959007458503634834601411062938393026435990780106521639758166783530413677070449816116230968558609497194089178083602730903134094192935875235233427931112707052862129164768620460764902357033218423235043749860564744699215381169042568447162740338449469860390534793420016678043045908184117010449300942327466019789179892683552923261729747972765672039597023170109137816766725689473874925337021950482486603157737359714126759891868830982606857905191704623339403638825771687834850733364994677635183390593214253560663927138577506652959300321924253254950522015123845892845771126015434140480501939110636975316516562635217997252442126923064775728151606757290024012042129315392891967109186554519973444042639733118449314677674703750537738437826115715598602699504831743013718843557272722019682657121024277520015630323648623615632037340976220081845685037248891709291342043960286067579992592006705506511233850742553055150160715746314876410735151951401612508506931877574310661721473368409550816681874083747257524693971382710107652699598406043004697449193661694607134099046934539293432449190713350817451626884391140972226931123042823132224217402483973048728518682367475667859829095069293892155247068273501921804904105918085997990877626900545224842872543861880246522095010676419703871137283716606238129083381677160012739881154389802688617253251387614776749232718160360840400464610447015440670565544763432696994853446321122335989196877425040895283321005680908955883777096538225724178534551916624584356708932330204691446254855478407893903586517269811528452662252583730422986472632151669846519509931913900301451002555263963951209572331338411465301857767434428269905502872634446983204825307554085548136843715820724096529711019530132764912639243954943415187379598479474127732514551474006759368045145189029386819383481641283987776579360598773825912960271180421291106080267252308653029108018166983911172633834932979634376593787841380123974935651391565233351010381267142192201371172343867488551256297410622653511612936831784093539130008360170815545839101102674023503951362085719660018973650862678869079228496362426935301395140104518073210604772050548241651109408716813934440081580235848632374294264885195362328109422595889434356127615728203114540420282972781142687792348354658059420741400948818959523059460052974698348948452297573813821786394372952817237295615619841016468643798072871665813228595521033262106883382939166303445618898266722386787278298207140188265323921635432923546947797002274244837380112923111603250900883068571832044636611127796182735188374881903631018711522209291772369402682509213947734189954622168873008929713970468237931376790782534669346242757882647161923775320766038719739924339871808090866272467390950343336949314972848740660381792580207796558853019006306152960181929087552720981198775329304110875708225244972078153674909262275529511645442420562725358135173394724857871863252503077057871322660126137024295165575023296293960498200476792236283320411754514877885977186054489738120888004637200841245727097400096698965387529069015774681644834397494422342041089167242978930062117038217028818252123558198735989770623685234494736730281618870798328894516566368031517166040363975782628233311289950614554529263161881888970488322347382468074877896886384953349438884661525551116985649524261169077708676473665325151138670396566461236990026862651205128673547211682705498488475278550913873565141804708667669512802392062079049572280509461745726324618433303918248592055666183836548402057553560777780514043627453710877319353699554859844365907274320069975542479805029375716949641613843918357279256300077209304211398023243258879254872390754421153739475562306575988838362164233620698054141692370223130269979347337527722279052733705647979271148811567154151679846733398570247937699940991825387647108880064267003461488019688774297485402236508461663023749797348840880237830713922372468552202487986606669988548506500901206332045687881926868581473130535026278381091492015159687157817141214234570443574691599598486333648758311958899853498153019241151387709502378067739542476610466675182304895944447774417539148790079498989213897913820452686201158476243342666463425634271174892513068627680166763382990451297014008756771070213098481397913390715526755289643451490994917924008481809080345767055287933392767585872774977478986568942447117181663331688323106745607050273464160202228433083484501093410977531470017361973452309804146189792513132614272385301149992734172441143989101275300397893110696255381029426546335155508977385104251076250454296235360635837927613995060211969353858781366293810424753030600435955043092771628010471378308488537570799071293570242653212132352932846886929821393820402302263113473558930880164018295115403786157994382478975470753694780194939641537753241139073657004722897653582560352409509464848645009868512662738157599431900998915084393200910545493312630886853212369718087494274658434300319538330634012751113000039714374462801341360311788349342199910622688487403114798146965370710759531148091732859326724324685291681579008946949538141126832220083868938976901144710765716949092640225909790217901189591708590764078512217956190175774351069153888272777785607516503822487627349139462155402166165838877962405429984739074492350837088164487220238234751204540014151501507634046466399059450094838001147886387598213939810412152335847362244374903200094398892387264818321216285465367388604680480729176669846204790577601224128817812794769724182086384877514322699719998954545245851484144463332587904155941417761270060229373429024796445063574393526462965889005258993456338512434883447453184802771799127689320312152465081107024856651462821307366801912936882468549024705466622457070868881543157025820916647563092357214818375125005557865998315832050719538708619550362283784524060902684135864373368851825591555295824235845513737215376122945329840627895671493965747434960337522771031485660782348743839799013639301603762187178543059730564002413343303249180554000756909228223394406211828100223650463436969868265927280485421361832270879103632348116305985203274542871890214584677599798573618098444014993828845938931253463476959353045590130016085817734932965104722045198563127371571071655668634821719635045958883117408823448065747745685929567142501248646905046852787212202344370500871625185785776696681527507885152587403173923671609668855125834626964099511270300444351113345321554210807416973026077100270109705897886824733171621657580672933721595540682133862865566142333840763185520530291982905972298638608134902258271762851776405138483898830109727849399612271872877426298643179880949043549415025338752948004496663261304082357743933016588292646790811913523739789456420731141774205138260850185476650564688086922419704590509563183849381328739850695960683676270147870643980372873199078423030492573894698168742004812049017146550834117703110480312919361111039059494215235819449612537642735342820000072298717649391602047089997281857283899280709325021316491987073122186459626207304712779201107336816496562005750853823825399319731870529890140622742911327511110191518709495390632370014814133354442793655813998836338458037258676108405750051867486269386175453406553128940558444577356801323300768070699673996560676155102860043628774856010652175971519296188492105822622394745438993829315735264133080755992998653104788073158502540234949481186720835137707933151581498062409836087173858757787550700610225182077759011194111235589532508618690813099195468925396245868160913518908561888246950482201130930979100364486544453946925995348663114347718897215092812518613620512060781679068387181025341300789629541490210676460736706629914919781170283745133842310763471622022846799459238340649969002050056822990724902790728844204752330660294281136103007277428917939336825888125502753569782222833561306024373653572685151843417462160643242613745278921555464434947059127592703388280815221568220868529868303028783218512556729548437117961887638155424730844805560352064859079483253097705164929026445171671426869710176846517243079549676209729532999056860881498534414467739513012036185258015979346403269260447365107642075903990455187531878843647658499256296441209320112723243112341880566103968430480482993723576496312737758936818509341120935010122141215243028426821546769555276485922116295491649250667662666706799064640046206842271241861531641117558621705903861666800808342652689558149764090528057700234489530812182456473661544713744236717602451283586131881965612178828285576216394875558752743498247633228948934623733156630922372791716464754685344400862546085595654945358349124170577470608618269400379368160917657059054518272941386973056966435970284494617538147201904473065785164721878367534342788843890491073041162316630945491683637857990158257575339439777986758995761238312153458897538677078411177046329246893951111773482326865024897874527057737809606365167991087258280738171418443448044738793759028337019114687539583053870043238717716423743599387770883302734564013287491400523949082395866706888315957354523022770219875545980019338045369866374122118262243465350080523815084834234709592844175058844429024860234590424517914429171403041795126887901451344382813882820956263689445747880804946634023152224172409915667109553411757049887514466580847391935924029289546345908021954480109559384935326675562766388394418070343254595287768320092041151322133032596828936480605857512063832216492980053360898822115409017556656816294042663832478542735761598662606818279484113186317005956409316569150406052079442924223407116842860312447327775678174410102250503485412985706978250812445321753001137779370896550489122502034955256942497779618243885584456781871957902699084649269863534953411794749483458435234979900707818067085657980699474044996246629699098744683193770317468358370722668600653948660205979578865353748348963791226136749471108703773268760312984902890390161785140533407536550028107625246779486813037234515333686105107321756350802688821642080961671076984247788055518852897790986925661155137783235400083217341300204584807176398561157162001068212698411044690782804802758311692738365675848197263697014403284005782131783520174547624580352720161537244385826221976793419891288639932397029962217799035286381080906532299150214059722033040394422223681573827017323865897449787643381558145186703049155972194844324539668581312493542375510347548526152261081767567442875736548440782170808381048873366570875663041734210060332077092631068469883257874152894307897812318569118756192393828873689574628843520226143477061656482777866109627756633380973541317856674107774440962927127794699739293937896063895417058335339475545719142290834172319234603477337472906863474923324253822138022510458467444006330063377641085670391430205510087729324268586546727461194668860128523536747562222808701027894221105441967416413233370938303109888296876107005295735151661123787195201702894273195282973957936088279863872169215805580482865023982907404954978973722159342446991464841268845724201334942670457665387954673815534532425880998834139156033125834757139315566578969091253351754199789226084785122142003792428568277980581920200170430004469508915257710801277153735905839448714836389880985482810334738916938918451974859361374340574375410799940727286770417013519483195839145662538508009238366504342838686901770973779243576962805000123878222091070522330764293734760331988910180323515355672625480880207383716562977327688076196343561155165612451186990045104936524628473214953382472486486864971684084917094395233676673811819970436560891378892559754344033380173895744487426286378280009931722182574428476894680725011968441258327033667481897106175387381293272575616093818039423768740156969217527682752296279608201816757787567763362669437994712959338018294306096029690929274023855281712839494252555946539266508730435266862078250699688709685417969668601204919644038707048321948000223570656360143610865244849001698697882181755934988240869903596872379801594469702104610215285439234851137706717069757073013157276525572335882029422358277705786666281119700105216019562350051276012227511703674930027698367118151893376586324044595567685088185542815202726738381568014618497909958913041212017583684703659099295315693279965362695835559844636079798129575664559721229306485919901253714738292196481284651957114767757379797078257919039698748610920176603453228964910256866881346519636101438791427644796201204417532123724885334086603563468221913386121897387197418744358714528807822382498513702431933855790351281666870410201833132176100170239764050415721075107310629395297397520363726400598297599658712486500489078106663003900240030560021598857088060808714630433308947984133360831159863168440238504159285966220888366222320712584004776824002661887423390798328865006698811015049092913861397163026892322978778693385905000659883199105394763990714128952578200830198807232860661371236588196998273088888411255823910336244321639587225768094415070767525180673998686841227996971200105718453850753612125671857412873150063859187628212152529430816176462505875891878163223485266893535516832966737744594881226607125930404326935304779622327658040284820950664068859204121885237888292731807751103301169875712977627454992490964137268126028369727502817468034870888258038506904387621712891559669383205436492271421058788389082462184297376261338673783393503745933416057585225681926629262711875131938609010131111083178932565721160635223478530427264364570101040547997705555284710997837241112894280907667729550394576532658684974681670939971384860396225337454818230244729558393105640770183197237189338571743070738041731892232544505654353688983123355342812286608905821587030646392348396178400214787000126367969095303871642058960939546779332804468481124602237709710645298268415442415439197368840967539350950495137590126828625733137181723551067932317279712411048305741680590991539849619136737997446296694053467541921833568917402421874638780799916360894438445109897896192954001707787271012304616327398882258646300084664358318960815806438703174512697029573043331579578980465640812052501043958693747410166375548450803506268249100317433557659607581517636861083923890602279658311626708483993277891791722336473973932751012471767637720372173760650529351861926973124715497520829825518633480143778239738819207598637517251260353482111694864893346625524069460340058903410321867659755975147750426845159996136330558238234620582056475502329157546171558332310883263387364023097125418377823996463872772765814729659271094230949349820142860303110080674989100396495429446550629877055275586404484909958227245402674396036638216743028288720098904154206792713654055704572671330532878519324251101581815728619725446329959154327245125260551656249983786337785489197796714936531558488171538966823147180189722844782135850824824037922470688857870591087139234923295072811458785335189706873920302233243814009592569272223866487904324613819604360918896769903457171432008268171968438355800033656210953241750673407595686360318940101085718547928604515305537904214626757476715431578618760371091204410313088340117292496501216123873972829280105103145808741189498739296255617252601112350066548995616954255787910108258661444021036717296895921816888030671592760423813633792068872778106175489807829625048277314826088465641998140082154248785477815030417671644917334138930741122000685047751533788741703148600058860422196606433494336439847591031342781568151352196896097408539400617974213635237784994330241614532791842500375694522816412974673025092295652245901303325368501274192032194861234923643568857293297167023082623853940641649900787942339241987314763613935755790141826340122619262582439965163396514266134230974761419113578086454953978694581548534786729892100808286050167352583028693919544669164939357976744796917564740494820678486834822755816428595086935216940437758073177508338373152975692766725946997226398135939588823096556383485472596767577850105270724864016420888647153227450259037668076871467052034955362624486285697070054122244023087936954028049157808299455733997641337009707835585285574531378233588806905823843684636686332151221271967297644923530219245992586691234568204200944561599382293789136450826253635514528554243447951252807148742087416509736913205448045499210795149292221789453821292184521739988896100237426658624079474747991231576903894639639400646533960478733999480669551999731320349742774710452372723787532695280936503910621258462853935721247341959421830267455873379442233668529608014643798558047820437717993338256665843005463288406801128355943658952016353861513560412593448755289649233937604947010023135829773695952100169560517395413637454674127340638707953312418387898624539938610889308724747966227638349385901956362910282579981404408055757535687351414690036097405140303349623324745961821917599041027414213625120856931364120506627513596973687428770113766156384342511711114574554736457468852169285662977205366003175313952754250273510371031216453459392284914790725945685421539894521629650926056393264129911223447052442755031652035943245921735085532388138262735066495226435784950070580420509660464565443778830495372317680268428543622936624826274934918719893277740410771835556040278193470351430090574500542773625629019622224973565525190271372919761135396909445569313499960444376001312084142190114316576576873912778082151643446265089702099594377707296464823339115997612987550276687951419588845136013651006190563736730214960614232600068516429276405150893009959250032332707461524464803389678705906941173160485627284118003011446657064579400120715830901894897859913256531214841426930490859339812200314917520464661082386065792082182769135381116230205217715180166914469495732144789168327737440299593745493889211361066341395706230281776767315547484231859264421126919617880404794410111441948278779532600280073235174262427493007814847758797338657700435333740660791486147906975995176852627078781966648266575070969996830496452248113231724974408514228967774873964025765512917085152155404368227351934514773485772188046390608993591756380263244573697082862028802711172474525734876524213127431911018470176258198160871589717112313459215571152770299188701056858652658198033966956489163563635600633993269837547679186253269102969195343518016896733634106588230882824480356682367902158879554305355344537598003490634722233725148652802558611616278932516864227312983247248521442435370104983719237254251718269536852809630537725517987839509104762205839288542713157186907795782039449949645907039976803202126562112489676664366081727951145160129551415654499385341373350826840748224252626430540594824617020078267163547334343276170925784768710673441347777322241023954905204693040818332687039673617639686719050784843870396782322582527646496356659165279085555282815691520021267300842913506214837790444379525332173267801790746398642016055638974716423581500859779726045643219443376069338607104199496358002354741127054076558464035605129213258027088901780614120230585598468417909291638904756170321789345477923859053872218627849202616633910971657196251823835765037749032175623883272107087137561861125657392809276915477793682395218974323155861115269113132737054136551008153580919619543139375048210127194367972271286207425726384906061207966714270289772841827459556539966234024717912264303278348353693197528770963411192805439721072672953228874917630194822146064506686326352102227736127169476986129699698811236501280282018522940523599037597572187389837265897439654897617149209081182902973716226920751541529956204171430826613263888377418452421155698508805420825565661335341797384922787166363223535908630906799799886907594740525577268627075444358836546548103827257782972183058245831732818177913485343473219662086208609871799166430061738982071065988476868928790022513716177446499211912206803846291741715493532240597059969415278079545297759532652497920976421567252105598034595059510130296189298787106065935636923832221919597838102345843560897188990749653791769197616083678989681227222421385029265369050153697955001423788917964305912742975984313769308109910046052878455900465503565237544698468132381702911689348814585512669821201804316882363214772859151905801156022689115231663373671012252279887403355508347581284159152840102064083333700740479839754169738991020944343689077786507508326962492650075816378028996666080578271233467913784123445962096545923895565518304602244985164381505322738183921369473706994044865960795474594256656558682736466150982021305146603868043034865957435493764559546766137466631237753237959926039871709052691970927165646822809678904523231793226391099442419140527100167153360031813996177904854428492166706019390096422428116366700524581513318570202910854578635328519150352693562341376225644081193685177846161018393991263004376894449115725149431942779820270116451890302734419019116303656435154159779928044685091980650479242641753594476295839551074332853577913917631289164581065995351950573275996957311267456138367059711189289434754238973951529190585696727758366510164498446391873297128758317730199781361252527007801853232766685632576273933628968068749497035526363793862086057659307400374337046163884264339709697030817717465027275071925341654302184630138269490010636976262780036804098579600164969390283339194504703553955434791355429303535226663312267562064701513164112685877586100706031342676091028258242866624460597783819762316320410091396088817802901329673686575567669213623571741614939589733244920644996494623111161473639533143732745992990873866013947287316353615892464379448525179573273677298780566538147253228080966026839455237743601807992857576902851962907374639174639283585645228415024814753545248093395900867560222599170250661517547818739002864809768355838335967696828029862735975771488857320072546728806281702816106659271718473567062324376004027325151050435663122072199656382080090828225590113165448253670921005194659478191655578278640748221527495480652949540360835273545011186629646356790800428474429683811116522001869186727158753019410906020526171683126436784241742824328781818424648765354892481006935204020469420338994771383929515522697214016503944394553009620409710093542853583839475175990610273384104621816444236051137760032474035174194640562523526235079479233396409821848170156354887986546366283830629449688010397175727795095478129658177315216018928569296820350429535971604570964985256236662911622590143598121760193356474184994532658081320477256650320096221250013086755758305894319249563235828929541031076766927131983561027790427109632688804345209467261484475207090558095167173375966984441295331870545314216959520004825107750781880547560307140385957286665439316478431497070245620528677727558014171314380701154093829058720054673301618025207232917384853747142240448713477269769575720511256891570834935996562429731918003154136285216698327244470303832331349368261983437509458883494519365904486151136246755699682396901793182967275940415155658406644886064051015309162709617250272578667701632564621480098852618496186570545528954939537946105878228629146390112238903857387249351062485368544646339345455095950435300717306084498746091445123397711258654961866699280625345920152347351730931356869134723199738043256062552073470540250464656169164599519254630673917715194880896923256052681771385168278326726064573758208503961748877402419984855578637261789328777411212513292181598697651148734727346457167066190710343220379849435827189605389592665410152158555955185126649134548785195689996499801385718366260391472967954187749756746865225745205822263927148078824000267931194363701318701444663308804085152549411199209126383223883688075829002472487992156562327924435536372543770519797683364018951351384598607585256546037332151873945133747925518315769619288712689961284066564873761374031787059196339970541335305111123503118264704621179724543424772236004689066907707609124321199427097196594836607394669072135117193192097527466540448967353267975323840719760132159351587147253364366749289777742519087965278307774399919273221130344361908971796824310530040064103494882792217648540161506220741269203668197053548509128759056913429217344140344603532109931011865950169532284184480431034053270103791875709035739026706251038527544598748259697568045583082315389878278878041435913094680944574853883851091602204878113662204984543073442867197439092385905407697765740781826119426765462190809070694872640160924892849988209144127437756237863556852608333868711690513634341111214027004920738047808612042274088516912400091615310887620082112719140132613194968112863377413844250656299114624007668999727299857044628684183108526065502616936449476630140991609678245822165985618122043444946658391686042453553715874201653689780056937932629989892812935273497137815664152455004769918009203446845614397913547032162939324936213775463007748290560178207461386682914484367989136130464820869284260062067569447876794772457245770956347693942471502754430081883552811578177774374337619666573074261917454777450862476325408864691011626091863676168298546891182384634470598532694841338102537418633471466566315103651887121167547487142903317509417241133370284939497012595667076978140694503103103456941823573873502150874516246885173282729626276371775604291634030910796618840214229910093818012488617124682577963453980135365680962477970273420105415069293627195488836350422203097942026240968176637396193860985535789028068154403359175785358724204927008087864793084511215407170394838976552210325061264363602448469316021943710604543554376902552261502660993583697355310613378192593016160069815866604889653662687966709862640794238023407195237623520729215050795708371550785407884247288358592719379714733184554292514567143237419306844984422160283829746793924425814181609769424646592085521804109459814014523556925083614388955341926450839281080829532523847075413409290689738308034054957742653328344252328278706119835577604016278124207443657464409762537040965149727677620504411331078995687995172138143119883183539550250185468730858765557589170668068977146457462742843536510887027251995091954847714186932126985086772929192239783432505439303703087911451909335313008155066999626573248888427498393293716417102610567559415351371154046383427216756245354257219801093568806838863250553761958126619751720193381896466065808359588018677584269796451860415752922602278247607635918332480369380583558857740568400648113591538286916272824654101504667284222392591019290220830325805816218967118038419854437476335834498583008118452541739744522003666414579621806451482177080113929328874890632114806197696253431641164969229017160960657165778646632265579024161664387248303303768337495158227883129191670375579634905639053081410549409915371972489771352591591338067261558070839969014565483655269152830109311257935794725939024242518083185938477898964718131834499022027033435057965296709318450300192438682386539369789991637173409510813883179060709285290296275434740897215826171974884394703001737353500528353975480696802907790685374589064198101403310486734368295013586559258468383829783213432965694461617288763956775716331305484331749332145869798191285159528712012534960097189476893720032828817645638040227761186608944449624256706567598928206591634355048719366044485034810067668831158545389524337830892186974106602092510344175080081200634315367456906520199835036079700778702142372208735845081468493845917594060366381185695654054951306656889000589345253037446907938748773706469081190663939572424604020120101036505854440150078726234754673962262791810551518420034568223409880695318992139804164601670722067659517366286274510069649741293619048926195449659789084732688214206965164440518902359922157765416258256889546557739096881613632191183273617459322201598030582983803153969418927513012169418761539493415639383191888592544583513761234489544789200012521061782701623359046854266383936839943534304059545443214395495471471573783683306088357017200052692683789771404494899098853512385904841354807130144632189242685808138380004299368062348778910111551322998257899322490472134685158002844190983326383445550142843867182723532373214973100058330632582964819223840803902923402649066010317831609012085193005238666698606737407992803300690096988799898161376611227190994501591257736383614680759559337454255450832037870888684408417105441459059727226259456801702767009148738632783121653278424499810262043182321788810020389455490953788884383165569328185451089498766427504838675810078910000175650466626764736192458848088445852948552674368183155999181178166145733912316448764142209412133873410351656308356487890496416721860313527002366179915788918966819309684519126674532626078272396404465828805197022538298623620637358039848813928802272677853908468530858508394749788356334913593036848745315654814623902796419914741958111341431453278128371072999638025006087082883542973335813128682982342631275634304516263224716374201568173085010137240553556490391953692770922734712146457669113223893066325375480574201329580149859521543904593929669247753925936592975428008603508745438890901894699181712209117782784969363235506630791082434755282535776735421146753188375051070979948575225403517388091354296988431743813375141310971504633121767977824994043760967805876900387216690334601765216327515440155810048572713125431746390817377418482734514696932193765157271935723218013388069372136654303517237860744162673719599412879367155631260852018280390665407880075044213852273601557400192356689277404558522851450797715765528028593987991076878638304967321116320266211366695736854941312787746441523309854446259171482588442320504730294146131897258375274189827729777981851613761472502915174611367614548617460773217404335044380616536233798347702894898778635325458470685026596931565120235790760907318292872156505682757307123995227348989950165368528555896698255026155760039010996696041120073504803649159571836573970157443794240250087683390809689598642758573409889829580560295683138853580501977617015058229303449982942841448078533211803944817707942189696843947743797858074023595464732441961655532531349106970284633405400121970508136190904308875023728011594597095744962371682842576646451660091210997096198747591079490119995612727753354274669280975189313880587035249287976809963686950455375254367033857781447175372543684543274786798485557166422290912738202333806646096008396976917962835942093805313953486425286843008779429610220440802627024852728428901371024282895654219478755086777285491085626661107037699418709231322484406150904502697258684021273386793613172787848852780073656780617394237132412096561681182173541448568136647080414338052306088856427033741923750522822109493815633876952340882342325271997314952541365975222381739877897978015358079397704508494980963280598056609966103460892199106073688922977438795887644938219174962883736697703312078678040107850581358550623225341998166261784569681275360771818236989445207209175404471915270760056187433174105578740548068619015432276919687811488443156289378937033189873274572771844624595226771210430261466508341590476760972575279869097903813969401146938901017321495285037347983296240544979048156137137062518698194639984895433129604090714210631227396236281565676214117811851741084279249063305583217347451717639177881849323862209984815498751843685343054842549750048814586639599184574259463116426185334829726509375608811289432079510573762544920430309982783943041776238790399273916590141713949639444684587644499272982709457411072436984342059176242561544251952955301215542865929169208225770992110903904535953152288787627876968375795671536217574535261458572537296946088084168840663303870722965319839919194711014004830195205980528316621984659017281909069874366042173949444389254717314534190496628614520867816182887277787787825763913972728856226748761544316258306994999670664925908852936681236918977685950942936859624595215174638030620205800909026510953057414555583689223707807543016573739889493091657693228218291687448077100022784606441521504756217334874665451987378532417889986429408608787366440404575146490922108511480731925929290296205385293590919690539251224686808100967058689364834520695825803310329085414446281105058395585185200699931387851904664300583842044943260206377843937641383222035266372908594039590241865299168927503655346045003340697769291099606974417808360296972685161454458578653542918467554428449293592970184502952401517993175077377801394861940865812515376231326606321349439883784979034888722939147996779116371344882222615079019712634217869417105864883112112333501478281249507307223385684297544111382782842650175549916365972349134910544325497007268412054479620133560555076913084342227809457546697937245906156362201529456713692448792491853733614342256562517865481558850931280466340922556210351949507557666763995605254727877829770365709075118921791366121633809589657218841648036166964972760885192922716864338549473765257833455344317377825607976618113145390352536577275639554631716810599390629236625612303100757492430583651238231582745657345397569832371072111927428118949877620733732013939618539722319699687344607638220765150071683557266829002210255636753055832223586150273710499905169901742044551732767624940256383986422482489013598799366770554848977594713178109494516575472440482022141032101110640280630693923757273760359417949670376220969823973193568248642438888601749815358206949219398427727668377580991497209055242671556817483715297845661060665446260780423864642131428323005124059592358162172361340865148256555006213829811107611139088708161066558472023823114072729778967569627086295535524016897089272761601590361109427889415027104390006013812822564621433089773695623528941789078746995070836954269492688806930221746214942040070675713128510352936503253136605989317302609519268388396072616072461350659252956935290237600403555126892954080769499397817508743566573561648816970158134796029633145642127106658557666951611154282605848885006714644862981633377107870126692637716461872389736857083373905796937901409751298789889526370097991343345911354796042859562006684039756355875834976832895440258406571534220018841821662475039890949094915387045052612442886994755553702223896950765590828496552605284841580141385040467568723367923878230719594575745005764195040885322548018980525462509138224223151233610592512653226081777347469874748026088202904515991981780814472734479682202061002682489380786606509772686303244974272274244584038689214354001687909807951958128194671866886342482837113873766158804949835024471307263313117199399325830387701263250997543996882433418489659147252864075380533400671435868207017174459680509493375268792509066245575795267799127189896975984187267886624964245046714356696346196850000184814308442045027843385477002519026775258932825592958720020864497128372705637488570547390200261569725265915601009241727684932678504586522215387218865506109653586799059114882214674333153114115081296477086035700795049705657114685787709416906333691031394010284060334746692604305612530487239270997983253884853781054565997360262703453347277525366185959258023538309211903968564257033437531096662306603881750377756461881522949338309951166812652465468448961952160094083316444820212812205656927298159200909023246346022949932707452320364636310114209944403897758833679828569789802051474906073367913283763541142500790520238052235076655344358765868222992216570547006474675988592853705228108963037543520322249426207202324266575223685284015824109016146673921026526973401688640766144212751930538292271020297732945912240326071557023560722857357126299403248081020527807132213511877980259570064582032983545724978934491257361322386718731071395267973385963710335197738463452867903816864577741892938868523588416610882530306547889252911358185611086845327915448638250877017333556313279857075351262488983418470228350015859614890629071779155408829097160594630052996710111995528762663855995377723004790772774743222420149922045883395191317765220863128991134271646453112479090607011968070833439441427227931521345623287845553539127663798725917654641415603025821399063143930393754004451514771462439199556009179122886087610496688819440128980740004310379569950349528843134733142200919343469391809354404221776415324274861832371216214723206959215930201665155816550752447260488614826478065399804520674971088480403391046610203291971807749968013260863862161420078649037339315795713607710573630853912284263717714749155943680446541829318131487297061858008992616943590270144189137991270126629381760478796554153813621439021297912739146289333473862623522304386970925056545085932395465926141801347407361077363448545183150839551978511487910111373345085251211672476475361032449392455951108101849842627327183484501068743773141659481991540187899488379271140199159538616230573253753913989630464363438776612349001526966479855933113999494090707057235354844253354262296160576824134079412634238410515128209928788777683148578704804030777228351048094524075616746288361035445354178932215956584184083757515341503801550106090664981896689908770744843397192022456222133040267109227417028623371700073222879037483629107284957933366011008748331067400729395179054415815514045704719115093669107880774144792552281041384417788548947891574650345386514133385239934335158744462945896884557095033160670845371972507502237993823500471478768331707059783902016968739443239712050746217244443743652669013266881525227188146527963393680470943156452757953018463755446810969569224179722043071311739764790152952224185765977412505568096371669637522949190460720226343376901200025297853866635782591575989044501866866557972486042425855218838154422965562600542285781174704617141682347058193525603831138562545305598948066460849675597865455057097336695839704112796321223816770221296175988912030195597876349597795336605841617899661049262809121425438257128807429187169793013935934335649168652286751907992839082131768837123263052072679675284785139962978546271516066236567779539678437929917000575873958493744436146221950193557044408960621498625232180908878760711718050300468639119552728405396908174939620810433184518732298835141960412100247384686980709722845958161034714716607939072709789509511895430103202741325830252509645837438824764495716641933709943115287964328327813652437418577381393823869781998857960117854164517071515340919722194909462496473579897519032676026838133738951161367633659728186599127028455936887652298838926106089611351765125964591711768984226788077648986929821343698411509946471704699585711054759506297690082169285472438361244468816476186090007888242584164809697473753122787517097097629645555411123751314741588746636142544425107050653288485789601814505851611205476240859400446955487890445339638658814269010132212289044744791881597018386706937503719100499480880132498562302251445600490285087358530315524323250670793432163778512678488829119174162817789500577225839617530972912659462040429814638044502954982821625070889526854441623868038365022496745638556218458149009338748562581835049934638082940917115551374302677748443186180202098153138983241300114225659294763881568351095137370460817970598893944460824488612251596044379132216818486836775998609183244766708218860564508422754627501844161767473644552881886650137741061976727943558022661163342571137765241932257970813545997353649812292807062418432985265511132222810006449866064375323323673035127205423268281831308453967910295258104360508871322247603062983065950956330365874638854712364173278507675232121515287162743834633515409066359857454690332329836382266843816217769735665876598784270858851090626162752802153529352857812391890448188316419150639999149349245864700386663841205940044426459775533920102662537198760846484357676876485617826618796255225212046724143133927334852935287678945522680654916642062546814400368758514740539214048725472686246768591090548433611751451882794348610341810375286238836237265248858314676795722627231132133555293855956425928475318098324554255547658782370923934275770877058371651512045175690967066236128635718893483598668252229924540097033980434977501659767453604280291393878183927974323448396505302515242550768979847114332588059305966356417360969008762522303449033052697007813943504641129264417721045300919348697405874814446082772038390450996658771056893200013510033967417477868158454744810017597586360294825738922616065494559101757666310667880011478248154677859184408951581148282195462229957070447420460042403911074020371454629164664079351908894159778017222236381538682863168374773323946000641619445901007757793612111846434635252403449811801305941491619137326052608110441727643011624190166140622053389575739124822949299809184174438910545129580943756483847507459609900638981418947539981409851629156593193998801204961992153042373044327407230168384865382790695147853084827468864593203028739120691152885915690399560769854533047506631248134516596901940322168502923277111879731802686723692394837231087117765611429064461396425999731908680668779864940045357341471668406125495837780453507937600716877238489354557183148020117859752571400913672867048278671326703915228744927361430740329890356219402209784199498530782007804647475788625320825564287960361999520474911603263216551946177441909044690078142314889936923069717983382667543915826946719386154285424241343626083285326467831703444282844618318544121235927981260106987070096973401869834956576184477735815647826436564280796298372916664643007684162743788186230045355819167622982465662997939267099887660454309839098710722614912497596248545853576601558354132665463121808477133853597836944115872685353527079275438323467901450420417691328827573729624688555701378383582510817663676256999185972085008701043167639742562587627813348839929093139041747173123373088689415021072560043277628523022713280605020071684199204999278040808966568006367583140585145913010673646688251343731152226326054990640881326868184627472308757705807372870353121329696503016910263311378616466032944047354563500884643928261633061443921690978248997847288965341131504520657807412092647294694987093384661082336198006427453207902963297699890759458211706451403431652548122356177012318109145029448534506157461963034232005202637101892289233431111224852644934803182244603278343018709536914571162009855868393215140070359997318459167866467027260277278606676753707107629893382996855495504891380973142772394316385312228318392698940926141597376488987484322572663537319194430735132498101578878693410286012825180945370336140259746026040149466379152395044655589670015985612388853292604709459471029453388777530938823144928311446057996932057370536471107521638051272479862698782107975576942318268979077787540259547864756083330241576192094016541147011966341658834560088721254842524641472166422213274664119262664078604033294179349372935908483109553985728386689097406753411684910009940542889919895459837527707556918784243338326139931022203344611087654594875916352724429954831010474908472419223606111500725386805529397342899596600492480333618493573553537438595864917122061331383824328613186845957715211319482923941496867444833836063375144495304313731287764228856673676654869674030397818134997080298489423605389262967180920053012615874927021006305851319748690252759356306414755317454201117279458307690226964372593899859040097809662266861781881226548192517082992771596146233475125429140766119753433604037045574918800040238853976840929678348903457607443117594397139167045756736023280954389236700663359719647961386046156825865844910740460528517207127004108281764679185372099749301577740180201270057279687509223182260654776165354366512681532485235154795654216687698769043092162578326243386217490842356792352084720198039070209614500278305225009927969002963052960396014068832144160476168830615578407942589923647467193732696696998957846765665024927541707015844354842064994514124006693557991608234173292662546429664201815894796168470467773522836485959638940697558664163885623418997595331609055410694812078609939089248804173408731365309817047371546866383864054511366329707145324330437593924240811787768174797793704086053421552385845100381041150305481905431365803051386730526825033550027885705970703743948204767808427302247327023878604087055056794964473321657722868121041320362171310017682515978280244697435838067513846438695854632342494206901660233010012691951714596931217757556367003460449691102816742870055318693241551009786568988990723919645254221784168999018293436498819322764320127266774100145817786230909316742765609705694445591751186566394086337957535004186205455155717284781660994671415886858434732218697788844924048042447165171353223221436302884803628808170784141220970064592310390211367222898854881572247115426894897146298650420248611951419629754948648748846635269097061008419312065571290790607354354647563021144882185175533720975948932465641574883320120247772843841901291152068991503036240990129118101313100951732532153580839035926002408126283125921821382923487244984938677912005849563988498522945722055319171834049072076075455554398569144699126380686238555095609648638306419147481993928417514539758263883310482751592888727015641121355103073724717947921658168693366056747183048285725477898358358310298833403327208750491647136538985522868421596335169090787918389708733015144837951253577307794219394287858657834477112838728802478726594570407712364133763163755279892634548098389436318393521596421770108178833629733598100504878087269141073997899884599900891862031257343380037774785858602288396363807399709740882060676284035361333315504533398376238895092834870162438986810202794845115336128543772963106423839525004683351777236696391809529244221899123417639425200862407014687556759415507822366963925070341087450842627181780491647150632475440555908677359694728196239187601386885171264456227223727027287592167915356743210547810342087435393699321213063824035417714708558225494119950199987967964756206685133936732535570099870961596475676110937728044904737703078743254612599613882379342755271590351584380758982869540151904948733159118315021432640116908797652418095074699101328631471632251456064549843706704923280297475843563653254660475473168029421743479024121913388376983726443848656295102638197317659320415137154297037146484020018269791701835566547637220599627757297097877722135430749784072940501172255786332045633430323223608516418458247139311759264072376945046934838108462175976270038713532910425705269093811309320747820190206174714918306718864571139222589057673812748380074418097588043820996321462106535000398396906995812479114296510080308552458774076729928600521250439313593164599984813480468774290518807446107675281125343097996009405990332775631775225401831542685441243341183940097896074002697120537012919073025071649776359801867998375701495071724667615334353652000234140058964803714725946680175803594237928196350312686352834873239558464455269840952721288408561728068194196979399878509233008248645427513966202971234348231033420032822332422274193619015895228572757797080476744026728036436019819453131228011993933836408108025651422120919336381606050013084743366500707145069075974409437949639481250729117865746253653401425888457889395525240037261390586634389571875377303922745558119394781920512036497016269093156201765937346799952722625257739466210167899242335651931920488995107004016422947809871627203209684471314520190948701705289091225820222717056288385215285766505130180472990398646863209344492008945442014135740382897065547135280595217576651997307595926509592570103890380002169026379315089741868096996260413496141286488749833615316024826673613638544190816314540916763228193174963169467793540037779665956491394582165295896129177235278255400091980285305699202399982703876092691787453504193429748219318099510283542862727197802465807968359017903266607819001361768287601575350128172416394424101974149113526330386235860795637654457720803979297155506934264068483652784147634172958697680270262678907431018412677003757583870247719134387690313342358747875261188038334327031033233602382726738211842468265807040394687217216521966728477107940872069406723597145588872770234310428454931812075702965132879820631120811172305189948276720184282976121727529529523165609942899277085007678414828311280257894292946570333187456117891055698721991013057781115262447312065721991597498249680700596623256459248664627655310690627974048800991125278599285495971447334994339206042082337576501885644858885641920303561915092728085586554391913785293022364340864580855905535772226823861809710672561052604586869373342948307307523989688002787945101175599650863978294434353372396738136403611630706674333592893478241622856299138611343487825656908569504399063018969666890408811062084114825940909615086491285775030914471882640423196388030286730328979930000854955681455314922425196027263833986898099079397647417635632169130675783216756877490597305864916371355457405778825588117468988134256596627095229143556272965925698417901183296076368344876242398422547310221342701248069436263037057606784042381866985531753796918867488885258905421835617863080145712444806544589098752283204045623480931432837931922123961434399151517119830916153290892009375351209689065999129988898996528731700423589125787326508846010262687194472834304630654072675950326838402753311633177959066537429155025094319482617326539448968246261077902644622184467409250507830766051174343443342783496282607588145854572693060050762462200646201336618087853841812373476377045805346832110665450457066723237762697663738213260374080038012093192743995929184493752584405292874009530078850134571621949613144776643600968325027746049252214061466420326747536757275551938548188417501256723000133486511484222917122659917424553984314339190673638389158377572397529506291377449011868179631684590939587328327269518028010358719845185879126799252255596120416284507698900112099724017190197765506541920041315502042284064636642808335538471736780608814667607077153142764430638074313169722669449985061138592773375739923341902990237008848922571397591340500513435273128995851414553625865595738744780393320816605519409645501457927542453840394152595360261958668579591720688312926228740230010418656013735503278912072174625014470989512979817139760335933572375002652698269207805112310165533982470857955843536551889318235920789845051870006274532830152836103958208672628544766547749535698291685757789236958905061582305789627651271099618157568936195538691639800266043492557415751555740848779322476205416131309319427515212055885072527622103784199253210936334224656611041195354932605525392694026682453505783161121350220979185967940490716461291515224253761277805268926341442298093668004862487104992428292346875176165013169751315480544549440502694579261124433639558396095751423968231577479240023319899937577272690721782623986343817033846115741284451517383107883259176924263341025311152672453200678853792360698832938844596160605971252913617795764745552351427834805764558832727483389225947413880664430889073598301563857652057071723674766943092976462056152024676067627397893916739164441388642924020493798963547643091116809953879591175194270391756255967548514702635532901176902289345647423606497297979282216124014459549350281989328104186692388613848470913849908143284253390349468096590248512556373132105967975352971343343176785524952257362169813197545162628344743277986344966059560861687999843471659719825301379566933125180704932024723896703653863109099756250969787071742504222159591159253099764908945392009447009359732440323153000821247338458866289711396406075156544618409815802270125593558861658661720271917357077827477469082222195108375277650088558087719870388049123935260418273306477256250874592252428800517175999554560571518451452458599853241773809756697784107944794723710514422753200478321629649878226028589859760636883712997666291853625435862329695879179852762559882021361344993716493939271337172182064500181535948128519544950423121596539507211841992614463323550990976391558078258370210066048677503948677346365515994413572481600728114022386633076509932802078158301983436385271218407640282939200473251139536974077920974408390167960327260176970459663079316278603978755636262197013722641140547606861196628719574566785963939728141541772078438947221076190820230351114835834876709076235852838755196462941315012196078225000863759454153541950202447603677013338392612388404008320080436809460347263539978654296762985177464723138249119054804355081470363842924873796949818304816669392470085392107902752206944340094646521881816910128588060362020794245860465233978744598732440457380749709024321051446100539819637264926877262697686404513278581184338229338363159478520217311177422013731948401512419908922385608068876026164342770957230561809672817439129191487633496898491277363172767914565315807641494497682344845368889915951930380809244171357641475539846286651362664981081362982694016074954180338135774588857949806974185527309143493997246527426863610387034259759100900147709905046739966990843823308985663720244316414993717369719123882906887222465562236177621725482304514058581375081278333031553975890621397724089271884805056859083213416487803095823838962036782862453422401792256180199468506277320654041412626810243486018931226955363051374954041216388469660584617569194399963381785433264012454454046744285771083332195952191912068889105425353541378903816351075087593536062439180634889150335071728620795414968813235214860866221429674652818440718049043245676667613449608610476718854082262453531178408868394575159528164955785565721316761344361252750701416263682175440122636265473021295372440949660732186726083155482784037818400568373999724290809441108401153437200074145563223481723077357769804215729559447484904493441838922188936281410392280262517095869449948310805701036736060760454011764849924241501772250937603447408863580683253900115405207263406355354916689948785824255665416028055353633687657658785191430713591643537802772203465509261839954265860720613509177587670835513634993612655637778329986967593932025608462634235987133437342550221715044767049234689029161875882226122088111127549640280272406464199678031078938757696524056231814109817953544962324113534215017640307954040211843107491929326954939974069788625568069475725097111364754793602156761902048470130836643080349695593540060594443735900077097646061276493049591348024825130574084488207201568722089603525039100362897954514699990408962249109852124394396747392294978474663651811235531721422256233280403954088964918772666159666368685003905297906819089921251340370381265424784843213471125224848864077777620142644493253468078376878746271067599383488286695550331025682886110266304432884069030439050128365801250277870929848625140260357342564557535757258976009392544154776454926202683105786370568750346964149020099628138944166691021137075672942938513192014946911383745388925575115809130651356597358702625411281054354840595665800410065831750052375565942601014243233518314983982706151012271096812697416750826186332937968753313053945750588108246343626381614917453765087500673003267551722534978002484806227160116796072719475935830053189545365700173436619272839380118190984934980809608741119941772566022531115028548647588855949316906501839799610640823085172718578055239599834112616618896388035193468020323400622945136510829916754788456814160776024770352310633734921874453638510595578656438085393349541465187840840952273823987885826979727257875833800008701787511039445792979364934056185540245315909562180323203473852570605998364501272568303920707985695568715588424395468496978548791178563716495379883599146755388783373395550239948657443323450789695663453577678116726515863691481200720720014143626877873390171634141641008971120004310294119099178170415779020176767129428967278500689148853664893288118295440013554738417629453773527022249012900405995563741468497064779640984156518977454384647922019282336989054984455706565638619761412164696990338439229658532998443718688469211107859791061255666751721105920283555341281181595967531171876183370627621714651093449916297450715580506904285803060575607621962537804214271416355378397403801636574874236968930659676582125240127029983723650118708212929635239056759895115293190695116893160351850030570344199983397074257530936943618535337537860189003196097605337962015529659994173035103825284770553258571477697983629838508673889132887500016748302772912544180474612100410181599579034302515032443367123894785966099609062633662482956319794296835657288810431281219841229201915333932548125779683482680233635194065983674863759497601585041266987978503623931437360527292097550976562424299472954109582691513446665567169705656209572689333006818510310137266672352054864145393812426591518622360891937092995753360354354130439339077763073481126450219733139320836344071309732236419367762332917917421269791325931009288461877322380147537613721089213047483210152374098404263307861780956952499378969019058409163348838802494050367812234270251483002873832779141479952398574934346280022429727525362578341918717394506115225152634678235256604592188283996323603895554447966860632224844487518225300568337035064907087551158318765529314721405656904375368743777974342271169295228356740888039239954046833629266497742879659770516400122488006758486255260787668988531122653378030835738598737470629003298259531032810637197943833561824220144687952162025023611847651215329221982482119924106293990382271615381745733610961545773618076736680489807898278021964171312481368699971663774435455329998942554107197492256536893099391043255490508377580095518182674448347790267142708489094259640000829419241124781483247407677860381431850123718403025985328459076640764445363821281517881232561891384917723553137105646778011101915588070546810489900122983792726316299301692380417962868504639048365070797128402674780278176297530013259042701430146481414461001141117616439358673635139633654497145924060711879873589767533971359291138930060416577242091844079588467116566155073068184282450577754854399128356955691589957453280991909823495583685623642782049379096877194454038706576069269648892226776653699995537998132446812253528700101494812120318229193799767162903656983543272428930578793406792303217337617802299513964555768417863210289024997088376985190187518028806986702276876739070581235732279142401349803477923432661663261841051626214340698569791441036988137205118101252780716182397813289811192107768594853438365010445114600724460902797246467414693606521631740216976865440841389936335900442909348443931037419683989283682015107836928476760054426990520679843310665364346621298730785212782840614315912440937074035205314079008171133375831632806324927398644914266998788112470844875220703270780179083233192321630112783657124083275577357256778394286050671819025358995227788164796735689625005437060763349568495171829275135877186862068061942197457871178123584510871882573148102303854564111480594348368779450172766187943603163806594638075899811713578869772781542745376357167275330845703998686058319394187072775432902098106356855239014535834813755413713026201785934176070196150419741306307872734648782319747633448887651363450343943294710170361874451873188733833622690496400666767462931141854470985730120329464327538801559735837424834782379940395310167843015879416045090920140522952535092509625192617723757361859830851477502605338537633550775290011206517186123606100097033683960901902613526323933226437150293481988739146930579994512377070645514697264566254820515343133503862276366301062615304143083326752488840553091471848753862211143978988723082275622081676008215602491538043795587777205474472905044818940667906198367002812420449385765895498486066741964581258719214873615263081979197576757747764142232420542563136871398580176261361549692194691153625855199015796380522372269405423828217087831475296121674704589532802674457116410976842821969076042289341447490154012578433595749886223549304394112644269690308490649357897533332713851836101868305797757806051312583922477677273294440421555387926504179686786146711579476777781033062432300758218358174916364391707922246229785364482215189759331386505793409056211329707193271583446643634591955180048520866180783591917297779870979646881263993724155937433483391316416175926621803388717643795306325062497728736388626909408504764274409745218472261510916752875652079879492078334419806870712156889038512082811433762991417968395407912332241871119492476465019942071992542245350507855585222700435240642536262588580082812930380003914283369943202049095027346488380286546545628841503809938020983696200892338206250226043067911723161283664931307701014614473599142451910345721587423720891016267697821113186857160562047680749376532045611418616479649202762523789428233238441484221028200520733514186820308031435068558322258905041314394658253407034003734629229841785709661477781524585193606428935381994060431770826075748872933537072320604707235290014187609726164614836650703842323060136376618445960766248337477185758676744380623406872662480829936670319963905450277012902322956512857199788743757353707638936880410051101014581531451249777907670043092331825640070166966992609944973127162649512837998955660312690713986364584768465472958518273285095180044879658671496885976059394003685939215545468431880893590264568977666815615461824151794676797456645923340463411369586445937416827296508968137304250015271385277991479926144837446504883690190822096902851359909456407457378779986876535333314223116743615052096547176877837676672484951314489685916926742064598108073980954909742404550796668224002737910359012109057852816761471596152609969157979886755686231249104779769531343969434049019173614605483161054958411632089023666235775552036229158634414566191843892789676569517993571901516268781621070727823813354575617909319653454182122995433869221115327212826404061474587595841604917398110075838143572568948826314476594499276251063778733034983565745495477751674882185516197418196230668787810977215768871786392466595268629237180975372524105909185781030821649082532198379707652553168587194275977297986233852994311980876966349445943496087467412481183360897638787713168875981372359930405157193311589086380290011445136212816012710134190395427113475315665877085882008587799008948529769170498469601223200186325868349734944680200028313159529045098439347191698203564784095921119849619955582141658165102626652846397647754194723278467556481683871259812609281143966865375404456943901620985452973767808544805998464812950183847100500204885351375521320927559412221795317432821959511646465067196056260119545917487217805723806756722952639515953287029604311827777056895404163796611334561004959746270119599585880910104329270885328403223464453879035632566553015953100443419151481481680161452351941154900647220824468277395692414354416901931230616943006358106476231053902782391540256719331234186469092570484746886392299599515623699599530953901679846766107309224693343497506493565400749045374706566291983607416250162288721696149141664811600404165731478886096617484104179262319856619468271382826007955298410807517781882463735934115204288785003636572446761333447553422185236022421478750758782314330578667045839359722057685102259827155960774831079091193059621991998615578116145372961969667556383505940397027092608603928459149861516780451352331468916347557483664322078018750378511695455148723472244686508135412427328261093160544142489440161846136000345714868862546484620678527429986493002711807827555495650635177241063727373149916050633889709286519850736686007125845273258299990783610081507749836148675310693425840438205122615050161895737308603902357403104344907964269181594768416659697289060463263130151106632731731772689702698669669665971251842424535162866163322944573358356514706751950169512253544206829133485537188289513940218125322201568033649247615486728532595209594329678017734366567124030336443862503183083461081679342903282653583516549639792823889051964774641739912267497671165514273162256960625968861690244199665655306708567495612976174287077982742064355092943682257487681056352622644865649359328395743587673678109158320307249648154000971103504947516870429560057853112740716561112930066059154981387626283454943009810434791964656092227013011420316579893821333453202751952782127934302088925406038971310624351525244868118664675521710611097185065240073336333147349737172010689131456995902497824038437473849548629904256163020944900846905234620604643444488053028940915058949861988035633470745121746631218286582322986090860678718018902908127922500965597494390572889282609113276275289248606167613585041278081676835579018484378739991056314785407923729729905353087064721670200589993350588460779948854069583362930266427494140223284241534048875429589370710339668012211813341745869641871628248163970353829128324530554835889105718736294452613750861209270295881470136053772653536834043231549960845187129215426002609927755891939183572101143337955235400503920583416136433642044668358814604481852388885652504094521088823653853825760030591033553378781997294470182693198333720320392707033652986035774979593713787846862772122951708639565926973730236087881122875725003828930300143412090288323592589478792226747064676556313207295308706772976552706586467231007926354598433436494694802299993400112890737315164826750398131938849166376567625755174060194908233256877360618227671240952969468720722207226554877974792044093288957257261496744359444089512142250631906005777467119178949290332404548245160541186658663915842147831383538001113411242898432160470035181992839214675327369715056127778581847065236409874460938342232340498406396713004703006154052090752146165102760956449245062873324058534452731023501722478632541760969971896966487466996998696996880123286917734757256073473561841868598819101151136312411791380000218860937345555424347178397266852543519167174163790876523415661759546092271375807931789591570261964691463752366230814886186203242342852093441321260079205515745141241600613367482186737737149236505181923480690835254308523241219825889654001498425325651800812855417312837309409371935692088160271961371919698272025011583273530545797939448162182908758003979447637062107698041458779581702884358836352500443694800814838365944488897932916584354952253165997088198955871503558392913087106930446313430535237311955921226458209626775415159690096899929197871353673115878872722183259999235818733068659341269607485306007840050081738469364437828025327963677307145513068995091619342510671420071767293939381650264020055351272221278090976231908319825998105803351736805437375356302073816901841341623913305854611992807617918192632973760317640176623864764732349586129897276360900966993298967008452236479951198227641212249344007035220793469811969837336372132900190264360356385919395467383489972342365696870895284936504090638347838395224123520089536427653922416521208753867227739293020241520959647762468225627123805991914723420563345359277167203610285093427515440836573447128726446700531313865733818495678300722922587152262803789071156318338266840901002365148866964075814430650417842404924229689521315303000922437669754684129414037011204716984023198909903084072688285892235867539193167288272463777111879249659671155793212485588435397376701199037996682632765883468765890914829418545608154861326977192875631326634163969050831163373671359009312243965022623922249208465386518769046256873855192598312627408916146183028492144774920245525866645071469575571213493358144668639454701395222544992304074802106165824155173046307318917215878489903654358616138062007079636008992928789756035424217465015268682263362699543935584071939290635781443535223255247462794632790913205182227507157976902167584334951599952698552213317025005576417952027383607428363529296087502214759016921717565969694267327917852519253181478905045194897970734934402970891788021673553772493469954637154174511260354313953145834445465587937031094881777932635976725712341991022497003250236404428902133503169737255766570184216699811553649328252687144543264065837756424393548642260114185074114398474814260391966677155916534276927573002902410113614476963126779156625850871230467854267777843640099150404940403987458281002489413525418732378749825370106274063356566713124441459776571285802573343901191824233774926508667605802441137564868368707698445765586787674441112624792115805454439535758827716061638298999942680536337003873111419651565506104412279169169738459660601530151907499555397452810179799739133988101134866053968380477529875267689311232503106069968661926485724288472292244862696686116902688330975595069032738501482583182342096662164360777411722111594468063010169710384949103013055338432819505062286476153800110119782123245004795177018956977483741933681305450390112775298916545198939600582548522029231226059393241329253553565976104395376491508386082997949780098991848847989477348729587640020927698394218252000610291598409307515482369630689948562429677711607342567130546830257091061353211607894469490625938500930781993586957921656606268760661512676916333566878079198911689847015288667714469049727310571832470189842457906974438927521586306704175735034426742962253558653918972651941197209893727873290153251703482077971347965546575877340069272570647834987487016768540393058659654021774954590062293212746363593778785741926384756674867396247308408232938187249941025054159112652320906397058732250050146349705498786351582833859684730669639846608559145728746938357251077998174143959776007027994356974384001683681974282846986422029493485929966552419618667662749392245686510833524662283214201113785343096908375547238631056097224353261720732117397544909429774399929590203362969047670150086671958100141961388399398014033726273179894470204017258118058342223207646708581672139034720052747112252665611271145380325569489184457310956716688022814696827938906993674357000725529916927240557732166944654576320670647782591253370903799910846546834970273921865123947411214334522306711485730265742390743239847998104669169208767618147749726386480670545321571444214401425724969487904239031824682862146670771169562003890466011869285679002145447116522879196870622359668407267743094002011597277584873547634720641471326563656541211320427518394652262621359022936970420478890002716114047817914231769368857775583717920917005083898897584014283081370555146063198418012379558223263455022896556563895713512369158040909177085224606093259586390074227365615477910954304495214226697991094478774443012828810292622817994478100250577704447321055150903078495672502067102495526203569459144386663461569565866277373727088780213869023851562287038441933451422582334241296080580369709852490340316259869760611617943459607218214594574640609183116084598272243589661669755786460031717303441774862227747593802910939484048247988054983896379235925891488539977849661160876875351888678431679943544036120094227211539618315094672073854236066858313206681887563525152374886049824447117811896956251655184900645169505441599136273017166119551730864732789597977154669733887562196941083861629628217769772831610223923128135448358483791862757652866000277475444396228434637060125889020563354015379151117066493032382314779139481225748226953057265046108771421476696012215152244952065395623754398685340783037445231480378011387003826434795967873763431590807627030940922586974702967215258348140802127642563793464384687668386433883788724247365343357286231444712076191899593524933343835580127467311236328210322714685387449447136417156040830572150036214351200397658231319131128678678714020033850418279535120430459186147476665192763608838437012066446717027605124203796108380718405870614541445792196846437913298995587391191593178791742276007179843708730910191239093254521849746769347320474847945108916361373529570079968150704650503463612653681256176906765204611351929317376739688403676510082603449127201963499741863198695483245388952610494167318239672947133179503692247164936233510268618354152180809778734297810382548707617823275277860492430817462305431002474791161541851545869783204374984576303039903761665035388756685111767521078664019095578385819508777838727391465471958694034881440282515977835558016792749685976885232940984356157129958855989346170288790090738202223850392723097463885775176663046113342433017374769915507005042638644322740194961346394778559421601999841862201923413416442081164983314275830297916893404284492251394997866887892770069324594388702701640841227890391532014161306501743933499316588819520975297019094147765226412823438254541272942084184777154974827781026031173092845670122460913300892683289546738145263113129346006623895975503328887853196167791301698768952289486541886580147191936957489096227207704174533439893076833501819181615922905929879691592991940817687891929422737019633541026880536204249863093887092511611258897791042363445618243217136069265963461792239561273806912225885631922981494315310286096648232614724782609645314159371328837594923924080371928763539119436977588371318413369328785071887439853298712418569238537719422452331857018096041782323905483716273354586568173820500028755134478866512073154960347972959319259184299728968954627859896765170490176343725585409806784506175305849187292431187455553531968611802343020993886399129897015631146098080927844752606451097337875969466595724824427547070942804682684648962816597639248747847531297863198471375282494183317888084902172244407087677625068189801894152724468828601262023652216118886499700552653158803129119452131238560331589754358626635961571040045872865833176896175685573544649956695680284758833023890585417054353298263805019465885826786901842302954903814004235770667094404316620602959447487348583153315110269627711403935320815967307787258777905797964290187886796745723049932488419620446348459026608015504849441870206343596499057177244424518394330807004328714083484187627838587825199070325332400572960526172380922155041455446759937787373370432825896480464123688456717812547298365776910791485109141610184655036053806333358735225352784101739811096491980142717513492380415320592308698444617627983100033691733125935760893726177115905299037871714416786557409848325515944906486317607402840985542214959256011481997343081090050477380586038165353426079976990529360834732869844358084472591448220821207284477449518574420364924184044998339278416618526237403874231124112245564430370445211097927600530359818285277009205664796116712171985702770964262379352951908609335785701057690706793510509937026302419187643237169617404996279452633189137459173673226091431542279257200581786927429037399383152865592398386716450200492612678392234757852568396043669881390088443365117531307572496128338082415104452718185784866020405020901532641526358992795279295981776894750235417602544561553925836819629894257302309396875506893274219833846445388539284415366475124798146244058874908539650942247240735194856671533531298691353153917525717580266474915394182297200479907043679326495384160761719400729685468196804176742717367142014701730977751486580309467430865569485116837594768607264007010870601787409700885193702516595932394290119782208164814967007086594041900017768103823485927593199079393223548095441192849771053793993705777588908791187565617768608957035260251453152383059152385547507288508198613670936411496862830255237836678074798604244782191416400704801710485561299514553785122785648709188448520810956624625256059994844951396497318911729266760891498208541035829738211904754524828436969657621264033810695385146766927593521691392483189487670143516527487864389066755182828498316205210581600391307525265400282984193291547659648858917295439851544961388730591695035575381495559275349821497439651958462263854534293068963091839245422964148339666276192458364276861421182802121767661486757183128696688964281766785022285115863980849548746573926924445022698757895429335967872586040084663355699021180911079421468836452809054180892690792824871865036246959715311677347784991135161910018151128409110970998590595659746930943555418675817163930878292754485169724262617206243041550533284221173797027241324299015810148479843893098246749756581512434096511233416139740524848670989546598105699361997055364779000131358621225751551967423920331464647433639513584568707733214600873520474997632449922864861764600364650611255735002976917746811038513976055983076694838906531050630173526835569031405507854222701222263395570719267528279403568293877523871095770297824384837340084948551733712867829131763156614994666533159795546227903445011971208951183520748816989111597688897861983746230480566700700476827901392033466115976867375585590220413358843989880099060437011128829369926464531327143166869044044607001016786945722572316811955999029344029815762496473740225055832120666724933329373184044803246819259747761568963841064925549042546584800082718720643672625378704922907288276563151162691561181989961827426990410911519004891938804934330347764392692832781258489387080145961349075358953527774562056020225195354086481039528676067133602239212599865546848553647766415018493909112832542357605337458308258498966808773384868918800616654985068109662204396572395384324323860201217153750460591662930551447388369300421036588898468074679324645876293391090652474874822984616185054288813527111285244150492627565388671352042959791787506283146431941105921988957851085068008919842545103840327364888744944275369291010378375565708957141848851813081375207958480144133053528741406672374799619837875948368604726090490727489360063472009807803673009887156815908339607840276052867721424543920849812222597573583474503373286759668177135145351871001516056858695448712446790301269083346293292277539610584788080857810094356514506577064333408050599176671271293780116257615930259854458578600689989164547009574891636440739921329338022077207397007784911831043752682553608933325533704701748482794217320061143486288161989141135044561618353105370477196035723449563742314745181831743198445453333110649576697335518335854690898029359665549175448332287015041399768752198651324622238490137732318639723986026240855556832526991692060610041188787103833708010006565786385207574618659219503400878556846333422847989920163576219948883151716917378265247932589602052784554193684371899995036815725982190923978729740763912465472403710837733737955261353332676071182280469092624637000153445103380962928460762742919342859130777681447690442829884841953753682187896036646011100081776557159753827156637192017286633567365492876428539136960723309279508185862001284429637203054297974477507063547214200955559939727361606483804019287142241637442153094573910719852087164909940289800117343919808561871758678009981846310750413407549558995229472031114610434379290030338112813111375933559822721477539657069061533963236207877192946680289679050810483970813756729926197091863861760027275018556429498127744132452739368624952782137362814045317586835495447758010524318591267238627561316436601132479451134869922077073853061886299339215465933781122133282447568194749144116010977591382735373916854341589467237514047612729321376700929278318143376596070245806251767584870605814935126788048141358851616589783307794614381130424654194264540945590563142395501006727195692148794484534158828101463775065527897880917410428661285451088129412451375221344649705873259466807975141462122472561524552729230211110896469013172390417288130251173002517305630759480784925494668458613008566863681864300195648983120183166445680845843344192418223110703955958263574429825168363409187991905368188855587791700595085414059723382475720803280689147708915289722449412161814775755613594439247330809542996917664078263072509109971874783397924119093063204821524625765721648895283777870908694803848093186658703993106694411431722949288433108465541918459684611431172614700457985397865172090530668899746232510934724147283060393336560168817352601383183809238194083187236753941170335866149899863921530848248100624980625323533832032611050896034742715895093553532662156981003671596985740156431448774710355290246120255742258639153881199703845915807700893259053876360077982066561245805891784174020617380991939648620904311268509854748681749967838847280828227112390944816946049596616687680686896123774017522828417890337521634417782950639865792116912499447050543377362139345697402889002610413883005936918221649694904810410736209303476914857274488013361466371931125216545296624672396812142299112266105336614958689524922829311010692064090986390992853627433742282834971551120990527791993304819562099718930404717528447999751171373590929598033554405826045679968624827324721134286612520148785320309445910270887582823869756223664752276134618242409947504261077059894617176309720898072749182404748225088191097635150705801139423772223273914947154643240769862979708161475450341043657391147226909421300865871658835586133092673182187841586763029842302370565535758958347014106222222424088522624892065024473321237721278904620691883244807380370375537182693222051562009663660408030607936966325235270610925075137167316425385522363057453157935052837789126342412212997911684249541991209947629175017938750990871292607945112960164325187285859574836192393895128449020978402079027107114557209389553974714591041632208095568777920068960502584084702259315293775385466431361975245396583589930853008973107498391068615345765903722738563783431665778104604382592031892913658496031053110736113406750754075024600273311394278448920343356118313620141168269391288030214997464363764179348812606553391230443635617983080601079295001941232333431837943930567692369821487320802296202282701812236033931086321769650562085219263861145386129581885235757429211519189267193742609107422894829587689175458213715434313294193646630464281454474723357027573776677895775221209464194631439070812450062358318566304552469744717846113650670436496145557732584322673891977836712390779285208148428018535836530560741359534812217417529060495770621426443258797646283624219739398000856605426046753965592369043909316711777641355127243339130008627890390278062274448202639436250809411354143058615900824302017693179607234219977992189530159096457803942805687569405736735631476720249573396818533962453909775022141589617981521220841218910974719863755208063769295769395992657415527145614742491657257413593222977201478747954217592189571713276044208478357921982231673927129369896733754406724910657125237945646339556365250388299749882794214046080995114328310131712028734260908356214772713662795106408448107050501753994158878276646735312002846898370281100372937355086816509255172112738742366897221283541571962575149839955563934695615151624297229645493702979762503733402356080047773111724541957978658421535747269786179365271530294843024908799591849984571364110317430235986516873727378066604397531118034144202215551612884606236062331185998781487279535167157673011697557185383314319819389041643399134651526057890828618699744957083356182810018910189667657850268198430274558167840043112847057032239843467207030722584036370267292297321082678141960844528553660537203043264911794094622466838137880915102905730269903318622025048434954517872898116158152953352723424379346535367731059283166295071794324142182509652052534870909398409098646810823641847122138301500527784745545292223236948339812839347593887193344818629629769199964272962713122674010173773268523062109711952234658920968540465627033088311127884259006073359482760822744302528474686391838770756125752915878443148567153194940413614484907832783764271845646193719887487745797876592436478638923460974797913028157056544172183931182644055809702561729326733725501188464269205663767167222988713222749431413039541954616939917129111555023867915290737809666106141884048967037205443003374519580741389498245868817576467296466629669669715208812473937654099843780998906247708152188062867751839843682222410674443860846775590829867926378970061759558207983770094701550656619172419812159084397140067351120047645653700231052732297663959251353596198478250976598471306973655060460368222501588410607287388664411415721774322702120008557101399198340963921786654790481372663168608708550773014324270914569713954544689626777617093406786003964801504076557470366659208077514178274175860878575440887880518895067990159145820242529851802796314689759818251673570913228519192329346088802525989503228154024902072135322807033950826683957456992479649100055220824814139189739246326218709328823992226992753254080819231126689189163003504450770062094862480187875502202821711873191696699131870634064616480422294824304224261222798463939302041124827435146016655697216079045834970504268850830406383407955126880869989763899044603606416941583235131248000929296967605492020956079903786830655763183203174736771880397680891740350939871037774542953530042542721008457016395247881841493508595061415567435906877994487211565875241041685641484908713716044711845426877593582203399281762441620805849008204236936180541194576485865166755730770297962211832178041943178159392518904198216038985994798112152826551202478235138074472292383384918145270020234733762569219462155838179561568742236943176724620985330507462086988996392349855518329149927483079602906258591962676799019999158554009051156702081971701430171675026120095935047120274454618867830628862093336644714330068912205509872441411964935850056620412053579245382528005534499238117989555278685257308263113929969724406310911982574864849788345629244420622412563668212701902648092048840012067955853496382900706552440089354364778507747952411093862801936123342657364933272911727023815978711478755334042133517697286294711780231303621629490827753603477184207299360239622740763071758571395531258317953435653180603239527356580694175360662212307658702492272983603319384760406638140993704252762778679349794833387892084792586247794114133854331559781352967086283301944383828054493228852811046818683685580938378015871701204916976141043872575645456743807293826344011212206982218192049039687574660778977907940411385667058915545818212671489410166821269833225926869507184211375738198554448733577877574683542770847610357837415280156068551773656875609225646795601656669760416360505072377061170270969615829453527901302845632515964088906362594724274998781705162100487331767001477501471256807017668017376663501235158734028651677654814444758642326227624672937903784550969957411732255699847418996266264810790073204462021532589814312963801155594071411767210489012901368333813810844909750230724894598902671866643670937011049666965470444286137192050725718345914363293457158568182374719767436408001043425440574429827228040545596565838394674891640989094843925851407072875788224551443832891599450304062807487253431948676306737943159518841768155892296301177432590280044137169526050157309309552100524686531767500071050312982592858815482563458910103454739377532331352777731691079469522616376472780273294014661582450453278399629603743048862718395513029677057930523457461100039915280315874814802879293695231219519845876016757627950875384866561393328196667207700360873677642127836906951177147127820848188860984678831808014322843157789353282250322645027894286563391860756709391049709397273139955767142060639638085927987089759364218986560634517341879809258624885956685269255337611490487590575105162038237288927919603500730854717612924034822099788187722507308253967979082220031981151947753640306617306532925391709769660872899442398728668991378896194604362122967746950680173245586399750825277187100066640376099978849173575157332332517394983882354792353800311101086213393016284532918293877507647621014439232752158470386522755296830603929182813135950476280825846091192143067094151471369905524381968917648254640197169499169906112379503552039755803117216292649122506931634730606981771673286031242682064729228540841010019702207535880403979232314470208415848601938862626687445317571553462056619293861607951163969092833150981084411842011148269234569412178355919994807344606528915026750935271357244553510778054739563613939669306512929640355814251792234955265354463328570534268170965488521087219715470191693850764392988694220398861006712648617804411050848136585105779490140158231254609920357290145108456515184369998018072074384790015593011088350195706045480952716359787415885087618427074016113518635140148154508559042170643604750991611841584863272924051248805163563111609991306224458265161286071787785172755307446766329570927937180736157090052964744159319900422593602399975613928391233068826547510220748160115574386328718034815215198876232184935957329391283082649711085671915311230396614229515354941623623385261202788938933968286730145163316989106161107290193607264188618262917513077226310510521258478330349752175163032438481271387478630743352855636528608997666243391350645185561491848433332748397436079487718649447189687131218236023544762078481258450505345694548378721749336121448032622830543196506870906713838003849843497497705968651480576489364154458164830894447763391342810848392670365016813484128879634257380853772358955719003409603945130655753508370801475969840080168369057843879435524448913320748536805177223002633474056144275965081697943454124865247638302178959395960764614822321062620046536917675176954916751078779029424181376839426479921115828914322529289614811426947250494272461139296315725456196527026140381037444205555868959889136248580942460627674939514312262155616302187702679690777312585059286904014578754518222709939088331472740394558785466293104878423016856166380483485290521803156067458845549751401119992714697174454629645124672613269544518140607817447347574816437983035135182707487989190289501203701293475568407722670183772244538888239073551415715699472285465929111369367242353341726397324647167299579881751537667035276654875183742179788112146057259013785617365252412525011112556121008058674393122336738104661377925017882496923080065640088739325231698241236241927211284440445778069532526393928977380046478305218952781567032611719707617463790693966054322428161062494717212123042044216326847394740408169831373731401797187343481327898921349959077282031731740514427822947070262295219335938980418711666557560119683268438640672842930363246224457180723333973343842580291007843124008076309289208721306231979761983726038455289239723283384307745446530258725208992898424189503118916797651440634004976309814734322796571893704976072408839886968666577557913762523210416388903335185327394493131648491494013504285106676616044749562893366452527646856016623133909922556023226704421734836974417419657746015739487015537358532754733636158738660034205345411555370894995835587477721946493371285308049035381287641855848389480774419463435645835540934201066437706906526539108267713502149489611735677872457209282074466745089211999227548791716315362250781874425382175371233688302200649144248557943773730735396189924653633110991818370393795950601410455668388254984887561357116112886117927814065962431606654106991529613209117387721922708236922502635083485608619632765417477278307826769118034998007906998417977877594489858530804171277828403370395581397605498649260846519065076332014841680476298103501279431926229053176036960638494810349544744621893826364763526940605269345296307330525949807284406621450335738958035928807001824588112443843079966606372830213377849414209305079178013287889842812480243330077083497141135217471352065533753988644618589754471408116331767973042357698230282695134160796234655330956948916191765955400119182184800005907752381892801692654180898770584338179989932979216385489145545485802183185116892939237524403760476760763092709730445363560644457606670026434608760641596211220718248358315285414924092768473240186777947790868594123054364915952871142220412401089886297516744250827482292369279527132080680002620735906294060729010255096816566528830871012761230605341531660747647864700224591223721493460316884911418383874482124066337252453365163093531271669421598690329712140233066549582319928804432866875439930461569926841057226515101307808421354240641689700710671093403713061183012304989747451967923439992704744571147921447029508293252348243320711504283480110909035787374980698270799851999764411498406968537650080915216234588195138343862477523959163375513348253550599501334159164218712679639392439149858470227455887782859604496905111268202518504259274763268945081300126935426491629180772867361415092030751406486922507438720964012583524175183876253670230429756488176174811317130036682429314788280544537073078849025521974524922098011185637317198198700385671333889349509309959744007400910799713837492803507744146656722216227177178021201440784939008907115752797331170173895572268771996268815749303302397803361977198692341977619267742026399220458928765011489345823602682529203251714269951324981697548652593657941743842242288411766988511669374251607240783743451055551943697745804253625044076756889351306681828995655856560880288716703514799133060853373095547213952539557579198260411278922127362432060664435572108023865594210670888519418653976743745484655745297078792928957824679659396511042883123606048788365848414399238636708102651236947720937541401698925783304594275569108206708316674987041758965363504220174931497593662744350827712027090220556015348129562962365425731458801560936924990963844394890653492964238133497929566239703447518065603743821423882595010855060783591290028249055294901954373515892541175858725230486817459288820263304643389725542332478278826977027572748970595906507607466936191048833527895523818673613964033496496299987517585949357340484069433394633949330828015214458885715583491683248565110333855046381906120740466542941718451750627219524637141580085459845612962865410028442344258288542831734585722940451286604556327010564480528758839494678656144011111439642208712308490138804322077903033870621200594925142148774071489563964021405743986962722722621239546274131592567663819053875696824667615417468139228299513236071615767929340920496601475343828809666033409887432070368466527256935159343882348500876580804334595643303207187588725498493521564313046181649353520556093994221432310217205863434420468388333922415696494226198526927928544808583254522087260878451626035784630150926915932839676866200973954133511534694204144916140264513306923624929506537305154288666363228239587114587999907009276919138953625239081582515641365338046081233401992161340539609984775794239595437167672598889508086793710319912413414000438127977034734429043371468793367769291654083780863221763760101595895074660371387325967754470537411792014896081744098641174181145367784200702583995868716374707748789063493002714322029111443070193093815973396023255590997672518100922114647607126595831769455488866164648001360492086556862078920232344735681197689274645620614385898213758237095001460475260905069207464367106659266033867329830029545079762807582875105236905794473216185085876568436759095284032631574753625039286693927740839648699895121570323815439298933473102002345746237370328176902104130871152305314108955020315001273422518067242374424915661815316318122242348437680904580288063173722600872071240106776449633500935048290730956801613475077250228132543791418474334894989173278881162129160596230835909707836553674083357677900693132111420301450869468795710251183894434524322916042592551667988353981632146048340644575229226327810406225339538369453695243362992561610775558520258064389639788082221177986853411676841643293320112676168833147516677135409710983089613947446369622251702137835271425759117623974785956056025968952262856031366615745234849444619234112239559748168398702065809499362525002049970342180495557145068346763934503044464595920232474371465035234915292423123562714893211337227841004818555064846136599571922697489169500811041459212932140550968150320059104367567581799018104259595003920377497120215649744026745774195151123449597717620838125504128432603146807635285057478212756409058750828822194334259544928720112999571301400519106747056722298953765928225562403498467515763837283327990991314441053298761088599093470546895071795827150823430492819697543750473157870804763572971114784020399815394724098470729333122620272441703398724027908389106365109732173982810378963557566405442365798223970948709389218063106544245413823414420345633549000869173868014023288790663907557374562438211890429016311513559902047875816469580820000219077373238314922636101838458863462732425179908376395038882630182702117631640599757197147505840739313266342558728890745053785286517541773845642566679897526117849376450718965869953926384063717221078551131651488919141908749674374574241525639902352724850018118161990399361354816246568710711361511957697908887746591615679323473447184716507729679519253911449984955169145141314617680461466243690406636335077285364029348437387682039494225062214367576121290985824114192760867893252295236175117625608446446978255485967053518771907137632134893394742583203998157353313910428925671928158121157134971835659840649186494861885295925401980520242859085160985742775189465264973881232204921449150559243283617425552558009061968626154797860506837104586958693779708971854732685435731706020027101113779593024351906274917930749071274880589581838331964546532025584706593616942725136969256536714213246033140930597775253897802993542453130618489447826023209215488245113310306563344896329554288200035623922981830835550325483243972466225813557757744412127304070069842909196150502545482669281765320494555622911961011458785301884753551101127825664560232427735572733893336513430337279990180945761528481214632337684600643610912489127094244608032104157216056741840981694599256962736597231725936313418024593285205693267708383796808690502176964823199511841209428885561365610232596500712551498012957353586066393400719978020988587945558213347681477513467780541098276782361840364833850002656986280661823245595753166169063900816976428587466824357552686062516914576630692844414618897316604150160454720623654618214022772617609536414975901722062928824461662418125352450389006186124586993382877011618398019245875254765639059617197074663462218806993493932678648979810269230391692787774493514350440198365818407908507722972967879799143494176018432627012953247017278954303129392703823984768039469474814278962623407650410227338215768397436427621544414606097031948389822755343091797414224135731479996923739121053251723496518374761104263800196470168028636829430167174164279463150727955709489056217924014672491222815236056556131221273902568926603757252488333964502034777867723762336255113829265454948809329280252406532676448105487061643098754015602598645390543540903166576933980131232823163321967362464137749933364850324663463693675710581454155753558334630958329498230008080110384747520710496107143233740353313150808161297473619439918039898810401617850961443340420578886112112924088009796831721021174766613631588395977921147653039640404881710286685850855556165165916196316026119639210847469105510732121430553652106598149969711553715452160034981983795745405975193483906019976606037967787551542454434076216118587661062176855736875825672851172161814524197741243698727063662410274077838948504094589958029219415561679539861869383400363059820257760049842183617016580249716296448997609636423179893471942754858689764850921097357717849750879042029908896017706803179901979582413646559907170941391556919217708651613337126405438652393291033137724979688410851860312404328979918423924936880452469904416509649620277689176393647587228796243347267838798764062850496117496967358139309273699208366904607150790568900029908604286586665997630999817543422477475497555430481837514530962585459737770652931293298994982754345757079407617009973291275172012924210882149715956917846481825119596466383184320590849457450129205228324206106360758108556281421281330530402524561769327527823718427762593546765583562311655666631955545199651229919311820894650808596751044440268454662735380095678716974948165390811275557862849775729027302226231727987693448488704046775777171149765533355404153100529349884457853445256230068832539624840939482878290542145330399944653710452475194834531537585448670402911954527140732354794258188011446737389788499346221947575356102631528376176917099734592421732351352002688690103510673386983095303682549405908237091338460160711602201529339191106768916762670663155072650469196363232345447283706342794658446050437568880280128251100523259755496346734793288500811795145369427158709722715620712723215822256667030020202061974641173084601116865196650913216768302420580528927347607479061715182624561550513122598422569821803290427901658681363916449237499441961740635502379940574490148893904921313875269659631541410678928190041568449589252936933408708976274042490604664803275188272240182245323353240040915864672755146508685060916770200499352899095094250248705023457522210840831890911824993134596581666101059518125491746420791726261869198287913016331545863825529869874942207025050435704576970544763467653554491086684616444069234335018071666083177920033287613828212390654407607420556754941621584395721836774639752003834668717555009664765227345334189239320588422942201278477057913615483653382438498384451706343801806078948827636577190422808250868659110301187500620115464517177634828337715320657530011510735725175560631785731396713916733001313913825390259188656281361148548695447922705451035480202424320608043347756034404595907741915307566655970065723490271528885096600336605765293565534718305687737757665294730986597453143130593696512697966444807912998764586627717964233452094624288805074566377057927493945773038347322983659765555266806342232124635256237539750193444559489613065748872868591256283351918253441703506724451104240952238005650075514366277955145515465828259732035662991635621829735512108390084875087461217820974765758924242837580717699224604751404607603468369674320302865439458519201439010203470552364917730624373021953842667258791917394784480526972093389742405275503370452305585521344390979223725075838578856202717781258337656779259762352238621681226968466489267923866408954730573674381733295532270246257852168586235271680719894037792959736588175862095599331667821461355242872482573914530114496137727779927523527415437416456418964115039651884465766329695550513622363099938131322111307866825187933353021662513842788241950029245779901050071068391095710650647948833498385435625003556382253600768304492265385118076887717826697751502146937789134488068342669923662003747616933394696245047321251140403642734842424340927555706144872446994838209367373034678246942825588227296416701085195398490190369558213021425817352631555794745537051344341825548173122028345194343913843011394075578132451090320114175173940017401249419100286194072230864910357808655413204824689980866955163691883727095668560038191292066696365779444184756162823333311187385344750031542250266048729893541689088634700870203914656230382010256145311501625250383842327981160529896456747755841533615364288227623510831957314145156265461162722418559097924002035843798619838593306152341033584453147528516783137388004445505588785756350116947046749769565539592427706879018303733378247899352608843902140011682171282942250734087065033296200682540249435028108504727674875208135955174496596779289400600759354697082477786252907615213839960184782969916419270654676278246237460720627659950586744191583381795410147452339537432884451630981108577484613542795502193083335486532962185502156423501477227196881646841827941682277209920610237490446737201597994137813095704917224768642879484376091884907644354786311922705999408790161054149388600756469576517430789945582248698939612654124510853874286517936740852866627640779524924481756710403187507651408635148987017012383389122417259097444715545527876416057298358141176792949735401374947955186574555478166687582565181205686119838402836286698710902457065335668255043156984608537617435845079899341943495808467225063820855622161651050663911854745766764900021650482282772129369406208471931827832031431775007895617974747900916676056827691509930924243978372805968261290975501879587740612025940853577066952014458612269924147562279283710563112052577210266695248563275830590528229575302343793112822703291104160412475417272517059909160107701182758600794898322368283441824485744670760667506870415480114855932166071262484058665698224823795983085919748530296430145910887708155741356950442629560910341577052387380286522666405094677434410257613795056736180977062192292961052117847323297910967157391121364844425487291935786451427804910753827770921972564868079282587316359282463501416268929241964334488869890498225547344847082025336685721189541655073391584729735847149163377396563141351158969344163891308889121082381400810455017923971129989888348683778775217927132752009366630925458250811886507812195752980060913818023076242940326044580466394177043729212961993007645899618299948220349893438589732527468528177736959326869634667200011096699598611664383161397386396359119660404414239592755561767107029651943895252964502943309376693207005410126491491176905821530033113856949276300202957728870895912381085059107490727036231195304628474925608869645841781848300039291679974649320118285270513337044157072569157720469660101895427157653710022286375472515965439527375729859894432585120461183794550329073156271862203169520117910283078739626420328929204744731291749758408922430633234771045659694586133256142641272767561114591498300843781065196981308223182324107927400517068390707194074729393578153413017879957951292335532030156879684326302751161217075282251368769002315837614210582268971760510792117431391521527105483721106076716193725948812547002251026344235830520531559178009081933232997084821161835124060796928252804457031322703654459691620316755921788814505611594389992928366887767813021860701018845014477666343503350757221773176541753944461344663669972662923327705217921603302874703176640637643969567622123170920683767290880571012152271419604336448444901364497429147317551054665390479573018583859675426209457833894491520583977760826884995311712085279143922103698700741837121620407698342230374329035729508985990769699648412609070623918093876243682113812935374261563685618212753851052263342697704599938801624499076714341766837704652607488765858627171063249774571749507941368650503884691060783308817823296309215108321601375531262796489966737034097118696472462754036807966535342866363761446948510944385308087201402621934962223976575949245546353296563130661141713322443844071606446031875146562360513095727273532669125074220953774006597781084226054588646009001576683291695649758537802421968700014943338799914172436516154162615447218614284876118122820478059574145086176722799475877988842711244689525675365664980039517626425464017296504135676129250154847411788653254033388915167179366503191115068427624018240682043362489212516762700839123339620544970590909365175505651891389435194016051946940152063332786743660006823946482889669856183983498148540029634480680857064807037455977168530446797991916603343220234065703114144277317319343727086981638276234701369971706107477637519851506723456073702408943185424669884485572912427100371182305718167364107001096947943483834099444098818227078338289805797019847901827514889833675839888900825989499197111992717386646129950861144101116586173654000505090408533446748575613144674903907843557605970600816499973137471857486725120270452981282086731909220909848153399981169764113842055041053108780082486387334694396541453676362050930051222829037051014806639166945030425710543350393317840087631905705786935610404055261729854444357944307326126121178542470468549426591936070344571000878113659897125411121502805422584164549301425813767287365418783342005043226704197414360577742388610062057915944274779954723595827510897411246034932799761618619696367153378271975121454688849966217586174025661558735761966442332565167111747962301911791348393626637811794474661595385717700613440734419545595455480048091021770008700648105084386844758946379473348108453012485027912107004738491875068280535123773199839438262209895347156264676275837926589760260951479345452233839911217438069347142940961910947402137154046325655165283535461942968204386082631255402307154294377439533753142032538882766985734886983598730766701263442224065856022337351624991166226659334545945771016944371316788521022639651528997282166827840151256651049891673069898604182609755646769297353008729358744110966301621916079405291787286583802620017795549682146970551012042943037076163626051755708503659967479142848366154370169659719243033653381851728400551793089576012435912686027222352941002949250826338080350407257993752434929044965474149321216731213167264232577839995805534762819395714198333511591533900615954740793965141790865781756468354236512294448080178191479626896342778554777486483068562880644895078656034452099410865681169603696606021635376168024236683428099053995756728266755724818684968941692318354433616721729145016468725979745387795655277666573519667640439838997478841325956601189619608374160448925727208773379453932375488275945773362770817905744014054107279957722593973293906714081671023120770036841108039743641034201370606319905927559046846961570351448938743417726736913393617662518819850547401267869852853353879322642373470491596079099545333089988428191985470060644537448271336567988347390408632048978324698951524348483164354298025729112368090801216265324473869056194963728138461930338795293044701903245040537261031589562247770650729582450159869309735717998589483279976427445694829332244428291340673418014614574232430413715501978539879105226074598580671057202077174506088864880770850022947559523001202411338528271211498998933965613828894518805165497016479778729811538783508335554104314806380124910241894096488558503385712272552630023378135271025959370651527001040574016920661941388661987341998323586931501338129207071855581291564052040929922885206378467287184055803445404789996213405192755308619186402170056743175402896846207529310669933348161876948060707607040542888790950008828298760067713350684474889366752044123443262496442065326870182458348194342632698568821819509978826377332221415773969812604907337809427832883250706541359068534883176064637484851554747008219040720473480949114978179417075208043292165308136134098087056816698109276067598410558163108764713702832488420003256799567087324693961568333002203062462376929338414069847951395049022817182549567873174294240028318572246720820859257115346731761006782328749255617839886939089196834805026746449270539514894105842229020988759164307647800671895002248014188769498568806652207764028203309493065825388564642850348194719094065594616505923820486710000979788111690583389449912026613583861183797954837926603676321352317037181502367202505486901295028268022959281649843676716147746342700566112565466933352497537260405220845260225222663625844758683040683194703951475994550038057623109516567448739875354409478675514390310328498962702346499470771784320538601350889742697653725664089293069258568601773281879685254112186799193199946832120339552183174447585672357039221806561066229001510763919901271624721918259195510430307838452271580940923648798742085523712323642428747725392819855574134272165491475072500076319073781408054191887050803966687117603486295291888250436342602551718699474280004218121874264874140977164926735614081470484580249277106963843311400133272516128186813805221048672727175921650656328749813172499704911581993530438692554224198589139559681480626467753636420542491092697996717386176139662506761719709479681771808353791935976423342152496638674139314422182498057802748781818286615207297560660766000425806663058780124126841449828034477813800359016896269042339625855526544937118695181208657610267925167604871006035827386024626116021810349098310830444893675790505279139665973221563869484650984655303198861886150042079770466042514653373472695103086993142870854355471200411337888858087290876883383246301159154475533347711677093013540106101696331292758889105323251569884194426664774305708781338852492228684700503582357779529891138868012659231923287692960867919490091952917486447449803595662047209555673726656830981087909750497676741834250794651065571365610443898010868639741382702646845592498571891493863938284615857267043094084254893007487931858524407227471320787423063308005041338470614755444497945430143864344181567758894669341150310992586382730736815927618521533118669196558504451617544087217705635872587767571662416016419285317254064926285989429458696122209436569383968025688934594140611478466148885724348969573683071363608476326808009360552194257917606264127967350356442699176033610084073215406771400525709384081217600042997907751537731624296757603735175742451368168941266475182291626769779400193257542401130800006927682289446576911032851727773021152631367617463352145221079350623785064611792144124552027282237121351619279184360258661688212140785968481386728363512119392913066616630875022991924959959348321816859434233065934106580411740943620225138905295402716478847418405949255211651389103085870163022493457728185742290674834945673124488120137233743773633016366586385803398692805873253855613488074357269485930679692286333138245776111272766176411892149597087814865990633341873302273555463598013837808604630671103269948353367271263117825397760777659117390636235943905663060744042606454093365914454874538737403356617567730504353369671391416108316703446776825257445371874841755844831414453036874222806425205885311826460794298891781907618000700534375553467402533092668411700741237510908100143545098621699553543021743524663548045409969116254252563461921959445929469519470176169494175617310264902800486915792888385288167044688432667347562563997246054733041861073701997871798844993764788358244072810795501152131593854598385902623022895210133479174117637303783234539507734359896556514972112946554058415218479877121647029524831824516941705850924924164633438337098144124470044484897910382790690166390542752304424734465040611426878869004228091349508527600689776045803396616719922741602324993489182025467594983311710351812997562541067838826548620572396665255315020967748471985412745158665875234300739739226171338832476611939985272812646890215618544028017436805046278996849012892720997470993143269482191897349824237389295119051693187857591824685227365335860957837350125254500174667444944630426825094611356419952211913926686463362999675950592365533095321681623862576526559206642873351327371521763823043979689372292680323799249618940788507651023150132215802699399862466468086513619787479455426998381892922545376500931297033841472544984849110939622036690112580021260944642006469174576400870986401362759364293418559760457875044880377837004105226264266146542762853451382259541882878373511864422203974491014185393444111676319492214525570914566070986149140529784038518118155222987480101086743678698206082771375497878922699181216023928653518093715383730754059229347059656915937375454077020342568312543558792113282524211228953154470361655578427721571656236215554431497678388492757151907367039551919538111211741091130987474636902399371186675393929900190659217215555709339237979555260417428199157186477392065114547628210639560682446349793874685323542361136405473019848660230092109616875756340509511792419543050615450267338338337320718335318449317104877542848349156596764502575646524575139063323878370667745791382158243980896801557485597589523125909939601844967084451638944633875124822862241914330912052699614076832140268843340784685607790182016330904686472170948469979764834485626047942699359518893658088214805118259938421700351131169291041694209512588716712985591574948072766950428395393206927643428446256758626777623821300584644801771681968297921578915924816860166205281964570459620470257910319026744036650627719248635918644411419679289557916005729640423564149458310928117437792972004316096514132760868093382790544105692705687291340257319941418739747156375748358332533401288944963946252475534664363551323543981205861355084426647340430805213289750207338113914018528011718257069486543010534271539579286446401774320814272644282290732890108176171951748264958912737069875572551207570813978074817020283795720923266173014580239963718239895808880425455726151883604455270836597560364753955137192617926162220025069637295273317069891993056807638876022857898924864149473501139425359578453129219432850494941451479014704013007513102807658908361731358214498254953231752553843635890170002430315933361172596610455615624082799740099992757607466805213442004559173807596563227758322033451116348959318460724489186706393043225038367990932725769554978093701390060438830648796717399983212656108623538686868480350916657418613381193535578209010244088078342290418033477181753612317849562820537758664850858913258547923398157447232580393707942243403324670183064560450548184143840668268238477088443029262020918903036037494167628953883885092683319445744546279951078077869274539222814855643812671940710925490174317390601864289240781099933020407529823277094283408531478318511973522013116047454961611962819551606205777526331636145110698296414591093235456498734513086393261279447969918999532966640164761417190066921421868290052728133547207322446027226721478386317222915794647952685767027693776018554183239011891055718736181990255071450458763135032386401439964006851162439387228428119057822334811173751621889714323232723320274229596376558278331460971532932190530116368781409234490435953362848937511562893721518084797203499659331695312802470680026388640504034199336464157204553555086367811510069877305152107940781944010644073290552972343942873219841410348930410493472494178051670113270783010367568419631120066043973156714881805945070290995407286145961012147356726999190244205529502556040556662911010572710638243099065896656769883214392119052351316673328953189979632576537910254344747312906491747215453000254326843088184766747687858300143041270098081248601331414424291925123934215018455777927734787016274294900930054437009900446241526217284440619831714040999198826978541449725015323110428019861097016222462856694530905388650790269404650631081585978732720421011696281640399867147265650449737034815743720489386991686115214935871107378837201225396123363670315753211677924663769426860209815715482056639074402320221010625991459904573624967358498690303683356443576003410270610800640691355254872559281773100242425779281575067967194070979362461316593749542015900792854720798366682279685009923245222603494759658512917372850880588859954975322617061042250045725020163233426168637403829357106750769001075755493107764278947366829176452027214517891301750768347892167577879061162219146895029249494462733005379682962211560193210142179605079626497467889681700077435424167124938437677972738122150165598600582790253525239881932819373853335431516326453641713380155206347538015513887662855198869362820293455481640891298185556194066659226559547989252149939379213432490695554198101755297069331135438630041369273800047521121795052577915240197632188640622820421198987630100039837179655401935452925429217501945298961817125968052893200608287783056362596048165702726902726604214691895744697613868735049147497862573163320932312395166737504931759161161373179479519080871166214081700743398797583248932991265311254028174455513972585626063138864680920089604410483865837416978732894402429390216713859125378481482364786449236234028236949951734317534021921213805529101076718797970852342378032933195861085155310599445595079769031739430491751874940430188441776396297452784943988303617309717518115590159894218250396766590248423279684915663680233011800863652092560044366538040499753454114247721396331873777829981129946189246571257098775202574399861630788414986803267860531543213585314409845080382314724651868300499763784045968553045905155707543165733968696774770839908758640670640355553441141909468042168235959744139691390262686269973872344939856481627958424720340421148403336505904321446235252543243005491965122541915650177337668906369033584185158846312827068692828209857793154790664311082960537050763804431284598633850566290437776733241214551615441221561919701344467686767970051242319596834996332462473327643713917086220361189865761618338988160314388684680230214680189398557005156040502537320533883746016358950468991923816572386167754363903383170380198742596578760575138459970491095471652155560220209758282768273652240573779540446658614889963996707740331238086323396471260769677255292934666545956179948738136163991601504941507466723112412722273535578093648194296020320427955742653776347285079888536010483533147988902634073009974677527055181500463199164506561507118909332731856415734188010109499657224120678938667032360807285903105837083279249862316630940785905913737917537479372252827721227277369884642420221046069201461841160798863508012670407799463462032321950291096776344687058264292963068268257478955018346473665752425005234003188004959082125702423910107607673213436901677203686703602922882085665930302744325259785648442838812945062838701171714258947153390305217991670992036376019820959865754504334320897127125258254725591335812141721157677057166848033938061485923796459338773686636035361319282960688612117171089439932250257706447052439245545576413186130881525647682392102919337340818214416202025258616208815593577463025835590767098006738723573735693858795845242505065477297905714415297997596541074511540383768910491930066424861852173208051480974399414989705909608312964067815736890718462988019360439017891398036233601918993612546408140547266890722223587169864132225024276722769155614818077772152590440735796411749099127038518167626685813008765261605201346574991702286105278351425693064336612297104908864758107240216571991702533850623460838253528118288803384217937476711496678076274063549112441583219696243638407753016207813721117901560104656941873553357079552589830170751562031256061567418818949687442764218479886210508046459328283038292707751532393678560744289916326656386403905689410358237036956992407547276832279054579985421332975699941143926432735329133015455538600041351573102950633686901988195768887928942552383121916832939811648514065786605140853027280258505035155560314105304036105598585531240781757155384841534357795304420394919210301322718575980838593422044534927787267915857297561941681395260364897572245254511395687644829429236658534230441194399462591736305335178069117882697164515324998043071105659185134371632594777338964576661788888759674266805645191433412655475541131075060877288090511941206434688934554507534915589950624303479297031320118582112606418367140339481147868803682606770993631859495293335485779250380589239848823630015431628121361986929750805544942700240210355198676188514161949723318885358807557619368001863839650337165496937350500282588770717985339334940259672770571461862842495076769440742851280885622313120081638257930548087920455755016565282648036960850016751521993961513628232124026587622946381525913198298552898130729409218608412363571835237965312567812732231739027666070312686375252490014680914370279837232613707994174136780810472569409528699248251786498778115026827658940937192756171135046761117599736128724371345583374431541853290704025761903712573185416087020208405391936065845587939529672856081627610389732747617425553622295988242986252319156188933500780961350878172886166039590956781874132533406174642876352094308939209996590051703801524864254293422385922097884435340463922265184644035016007262296926567278687298884909329460460227375158318346184115844181749768090581625916661881461908846612195045157953124263467533423691445005518460618456618711656531031541958216606226060080793438035300188398785291250442293568720874439971729587637604017542378264602135572716690263460946315929194178338624481839422769394084022089289591191868236576585692718620503847218313633650321777874402751272804353990570996514640041975824178228945907134531574927838300010331841877472277431671601063308640647769780299811784749927586042579657467985390832019537971578035085314680557395916761040851669614909811313409598991354392325957236804873406104096968007478186451306875409641743571331887962773901373462395222438407390913285584087892306076687481465208855247487656968335863404245676345596478552703402206563645801869455953747225099306755370914493843946055748766182392538344150613952629781673018287096590844630468760070079103554474350738953226467893533428200065399793231143815497394061417912823193982779260365444328387314188652758881868830251112813761671540737380201664723531691155047455769672915948586800946668192000291280282796184708484789467480830629135427864818927454078943018103317023897173019881990984087560520137507006903399183986445352895915472932375478752112433571766793790539390760416699988721164326793045024888784060864165356424817054210565299514277677016274993154633530235763780226432130745866783022258293295774826281965477712078544468238510655237337237098967857827329968431954914807477857700689409751395858689645358759513284943117682520644910264842533394606480167982582307544260595016910665671661324921837322138704901980207219129051038290468225216860743231505941559793453996850313793999784926575416247394608037374558445809982999879457147620018999465050729108709743522666528765591501389856159175651061954092022611609804275175159974982160334860607115327375407986324725311111623881335949825094332231862581537479230068959318382092467560909037019619976684555653250864180887288852649600141538226076160901967103251770563683265227437243226334380486310592039735493639013409484683948835034340394728610759898256547481497934255700781266606937016077664587331521227329361459427952889274312672193474178080889953633303937280367490693748158377716121502868858604077653426277625788620227614094053625240961734651140848854309469097012441627184456735091783966783766920171434104977432705447973811267405630780152771478352500887016394896826985550414839709776754931254630229506834641584942062628146103881675550852542131679453513780949499614869979411992827345779883028361981740074800644336460334330182936134107557080464473691401284045398858404750007346565486779726228862802739716878046868924253043931758878190788825379526468490808189354050055768112781627538198502110374634496281253891610765163657079786404396762843942307418036314643583784151797922048343586015555159836710415609138021111068532882221634840119218271101614403836229329821558045625286096752564644232848926662499167357325136314162276947651157599971781124636255023230561200887425260690320405210372526996566380731700310381769351088247680875179684236772922750889786437815389878593570804074818093029046965731938835472336280433483608247582236007364983033368739789644530770324579981137743100117058873270611833050629148102305526907963284920123232232103169479353449689919768855587263343446187421571256967435798421929837931615178880501996470198707953114813826960040858875855412547086471993226029139368147767596963250749075400951060779738746138499456460346124160604716395969600819133946160531413734267164254099099220011357466998320476068147336672434581332289497452717764848796263033251516874583764203854956654497326709351744711295096264912314104751056509321601264721768656967713169175869150622587655011439940497372182938311503373822711068335430362680479084684388134555895422455823777218790434831168021457274846535060784382506192246693713539219191108906209725824649870874778378807801658269664406836889876532510504036207878779545295663414405372410424399262052976891177188360650721520559625631113084533057192381611891823487449596779852111551643968963226352603385087591819391468690647150031078091491782077247050489510772264753306946184560613431019717036575067126773945128167604878749318965063712120660637233107144440696107992455723268530618523144137654098327565444740039419405556356315021512972570736084137564356808738606727051394869392625106274377128323224030363448733081244731458411239235239824415598584821711389945420192841225426262052407406746579345921814981733993515115711315411692642094964785249457740887543752080189904500568528388697855901852269780427615426311497096326003701882741710320758243565631815331356517611325354907393755317821337449976989588951855283749218820218866020460838709414161763331172226158784287460308027713375557345423205157600293015319515229244723272843760998203908493338544770041119511024641488846639311081313234106726743432309289241755803939490220946683927165349911716273206201573044012516731431003705657884886356761855344660167814312185254904647597210424073622672213042476524311641925892544183681177824343452965712123470711930831620837294167103025071134484184675787944751355828903847256782371940154366979975607719419495030965959436902900489490582164224763184559321021121722584706378656764773259372792465977919327214120115884064624932778805718294071684111642884375486155512915869592549882604246055411301637214011755839496879931915254872859279711470340462015084889097240760124935315573446024851463855159391280067636251502282604087066260011168240545479563704982680024934855137042174119554840824292423678961065655038241515944115862395333678737999389278101847380315372326362359896118152076355910659240224970217728164029171495550005672304495839104516475929263603938203025961743424776440672426538550600794329108306770650317977853554020079288946473107583359355724839373822397342763491307354247463262458563037252502699671357496834156126992927127041175612508633472864990479317545726981935041544670617114710155064991787980849631844957867961641612336901180944988065698609746226423967918951838086341348423300076623948781160762785481789908799530510914608898875315954931058203919601972807729465781217758114896081289327249307886723669942769311717210940918407570757135055809983274512965556191052853504240753368763543188568179239567291169144504050049435569245841754414469577357265549565588119473654099242689833584703099976329434352079582085535545098722269786691848719279914241326286437309478987456480602464738496619475197358327690685167543735635512720197024673638302925280336351178176779336012511026594193792939001262507764411370235318610802969206228548033112212138936491434930700804933251636185114433237081556826446892815764726826772313205558263120757433610890634167059548682073478049641933828418226647366216637430389051851637447357284111956993347122797352161166563143858805822473584201809450071537442987288554084603485769849044038136965301003212233599938540922039397282535235979846098985388463846930333933082097930639038759954517673483393419051549642357560928028321241340454682964646285114961131885471009094042019029856966328864975291819986702508087288575354791760118621383698209780332758333830666595957877900229131189985526846713997090827997167706316404908988272582544397396545197778614724221477751362387319129064544071359302446108815965757087886984669349975793060743930780672325903721878554323574053050568983392013715306685441307805877181112177867213098031227957755889434523853042963786993559656639700007164931368569216487543069768344102763795528948756463685553715039869511565441232075668625176896918115808620752209651553825442127315633353033603501202099725136290398660433184667647743004608412128509145048954217266099776609944130011805461138633397606177261217458896700976561138652024882609917521007303327999248293848368303687534487754861240374100652461138795542739614315681092108501874978215930963363663300659661706192390032584188586780166650054075697040053744945614311497608277218181988254351490892914359946103026265834728615930305802339223679434988349950158000765257340118369908178049720872598209462229122536214712913774938300677090362287602245925142690228653774486531802318762170980505740657498432713305742531791435903729071152786444516934117718497397290191898700219171219381893817101705502162282621719824599379618774294304516428847186644916533517825574844245517163542332476237743857146538179526420662290300765644138467615656872058750986410616874049053207290720838800862344008206804718347369679852308038804783367599385693435438236818848813078055707693989386525900022822753914318749581987829804453587583279245917759400038753915034585595437301359065980815886991968705395204126525039327423418902042362692732171726806646620384066318201172478948500739628291763639739392492591945046879889016157177703991532637914090175164748573848567884015446576429759216514530476196586466467477683092614064506092659956777198635046961131595224752753895949627456062116717622595078993603406568360868127827586956270049090572829063672340314205711926638768905110703512167114694378594125975393294541752840158110574932648018566008573867346022738058945677094128543389284181151577355314148996106677295681671793200583523788483130622286975494209873025151986426803172141585594738601626211164467215412609370421509306621514758422995265887236834336209022793338191667056640082833714647699819569378502749960874691948465220513528766771164752298634392879704168939329464489960833780989421823527159909366310409004693445674866789592002932735653381107085063203701708618832985704398360772034802372356666926670888545789589228502227003819170997853348166615011871920173851502133482428298389339192591883688101819645417166804933410453462135401232872079981358703708055512228247143311793080689495848077665720002047072242730616395438501617555942333516825354079081885758388273238288434639252867494117891029966856816030569428844284383122907704105739420856731963335035213315317963387828961443914785647859756999192266356092253937294682695218543913823715998879215973219172813383934413402315980001133170307990293754558700505433341022908844208046257166700344431148750417035383237535522536112612638071298050524651881989392285521877266314574934941106254076550644875258428361880518549274160951308801140638212364078868594798831455144557658373289184801267613277738043651374283042239611094138268765689606769324925133461074309543294208776320601914927786975125234815511183083377487284435606319742944882975688614545976646515250127561258622576575887233978599466066003969298421176225723823427015264008898235669118426003071739151377432797364335033245746546883202298078183541440925347770614181315512486646961988967647957960135136556449940845399667327054506324583856045293088540015571827108288570714062125310215083067119899836570913877847063369952909904368227616041737799495059373826180333044202611746701304524531497051909837620583106663793186373797017928052566483793957415507522609777749627356611387344935881651364861607230430301957952849971889278740659342691606230624692635655813054452295758640210987516315665540553424784131336901857631268292418043142049881012179194254704825702161419142787009597567355774887667727344248292477557922167027222319340608569165165357641298647664432229675288206979456149360175783920963612121029022835467014122609472234107531576235888092115261094719973824268178429890337389261966256356705817890832531875647504106163663681058362816393961826761706383951287582447024088375458861892741107127299039925800653271976752910128083082538958442094941276303871953627362952120313549373516372581401678074171755135118988909288520720920602846558100294683599936550541373069888080897658530045429079986016374360949764007342577074522905598256592619301301389590160623081920745419437071136210289042797699567103842154728407000705977989818240920986535711818977979988847170280637723425101641315828032883115398483569661682994974594183293948632501515433656579432431828339445267346871304128114453935700867881401601574795588809856932960717204208543330472814759433842836326788445433924158360289603204353392999448906574862443995007729504607677522863467059308431256625741333962814299869820945461985768661576296530908385930005008054042206752878453915964562446238883845400236689579480250191936754139538112841798745375260382257530866395523655230457765868120241540983190860487794179923740774267233597429798031837710454280276770946092210547149113531129078914757439782865378764963890180056468630058811545263079841601361723966496231120331946045333975163690520012732761004021667967639992459619318945634619235224654872859964595472286449449602870737696099307409509431197901510166573288054080556762466216272095140914103828361884021521302718389858479374406036250516331192546738596855009992671678056304006036185999802104275056401152951213443035508458986876158677383140225697966080598249074567637529589419760276804385976284346619523764966070160249173823530896253493482396147305442786077410568512733511645191282024234629439339224607034868800658058980936873991302393035692719407366765815648584873475556868799233179320887326691964324256036559076918489092413140922795830238745329271091249206191304261942032307823119269396086458451557083659478243891210767753147486088346494622659434134045548340221052483574970175354948611518706424643644949532531869072808828606034084880702063136020160686564384120921764931518182087455192508914561029646482616259136988103545901052590783008912382112102241130455316377903540132241285213186102659079142585029580561930522240815918784271394083437370099359022458251742451641926492405557336948030885172627559257832618455013883101205959342888914490557944259960692836903603481917064977775649562146299915547097162354965229516652883059285781130040587948127652771061593912114918156561065160051344912550065991532991362208213908327705279540354977508445018920826590013768620935400249688386162309071657276906389856294067479331948713164881940030111498211879350137572104997437799475132277867243851105986853034257541016308516171739090751938211185045773399955748046770844813154468538184936403199518194145247902122481859529739907468871865927709383418297686052098859115952125260534013724865852247565206090343502573695288190287624555039796729663565391324954962864937585095237465293927744168756050745866031810046025060695565145098896010854963721917647742958632530135122259265034802275827591906082424908581708854770731706005870562905036732412352698507467196063801739022398847802643643455933778107174105319423322944271449592478549614115373178686414218296442266892653741707749411459593017811425016505365399597415950552778220495639116013027009904348797290337348816199883288902802954118357976497402961035901832231084831598723940861809262136466823833524407354227431331773999616992543391252223377532769690504506634934213614473319375798341370565239730742874896391493139655409052003199690730999882977052875377950061656298921377141331612874138526754897309045038004403725240350118183532161353754111135252065272189559385162380951649967220919876865290856150857900760310438943849190742615734770635712822756584644818378233912689131098027210350399685399738150008283471675068278864014268212792181494936405866707672525441917355186807192354308971443623153384788674976282563095720826364437074454418046444312965964128057792822307732364043604072681777865475412582567685665008009421013625129798338365767730369508519748679294145700674086483380826340310415309114727543944379618642952896984530004811109013657995372155966201254864733342115886355156510554284239731345071848547299304557604512377218091235943773679381287189964089808415545359853435484287142382884683083653641822391882188608776550488680873538380104313655983111217947482826186336307148453730599759614301664791093325809061237675815525228006049411136009507000668766667746282579140487735774402392278789747213745974373551151390352905828242765301893500935238532996863570415264413798916250524454912799890331713958260016032961168904988007016241096743976922512860676263962539606141155066861300961107525818353550922710331896292456692242398569959555033360105808287915018747406969033296113549260991261798008026939640309214898910441566178907355261554090509387861900426734471345930953988782613524247664666112881919066473577000915283360651854098571601560890621534340336035527285905642463241538039987710147144904930411159161656263798865975755254989749277741558904565410643774949294831102505594632614509114016756938283256228765533175364839920868630394406920852403403392086580233481237342819034573502105882769521776800783536558368263888335795157527002973525263249074102756610362475449250305865030115026699686044229511216178609302801931943555307144757451351637770062135294171506002178540502774756265692010590750133884907692648809970434850999515208969457007079879269180268828303938757009518887874724975830234389272634728310406935750680958132490269046261624007319408235409845868052978622541492209996862524827187448285111350492201406471573229715790062986760772508918567337215755163184345210982231641738747309726828870060890950403089806199243992035333794900053171764520591683866454019846713745896046919619446269955595404584574569218286618278987143815956097729899136925028951002942641061148290903890867619269619937393357665343237581311764550103659285209348183773487249520163751267924759336899334784031868199521914488645399708940619015944508890374479242507940737513736183771025295857707614431646880093122956908451013264417944420722524892721938887901753034132448261975382069940469722307970636495918465699378308463800776662293344397511707171996849081004665719672130671694541900405118655064552774238599004236555059821719568524521382861346017865770450056077378887185790259696210487036670459238455617946696155458229970173718342635077058598014488042352249998236626092943052110398306298330023915506177106202204446275446291870150728099851961286809502981036421698418339118317245414431872838196617667427716059369377974580925683528326221655374414872329386381279999465649120282770949745631857393078511887492259985672559721935105057972237183431832528097913728617687046487391117371023936921534854785274469851162572875673626666926076072579254826127359083424908894717777750107701851179580513992463757755985814647023679629862722752169594210423765616345052246847996720441365473407809931679477855377962015421497436585350537951927745931754268390581407066573768767644854534610920312369712141790801971847555652695231169009319380877723064303819818265368440711520623977718906171630080178306690333454928271346274393714606362677148102172016161928431973792796874260010206438898743231589087722175415090002272133574460352229959147946177649315281819193659771782929255119094687989961335289940080128847575279561578552017742879533455544828768227126635949734814030914908862107348234960958781632703151202137603564141018719299712701622340913794440268538086127218544821934003791905666895625226544111844366953439650818096276770847126630056684723733834244788128904342515154741301517041216776341149250825748800031738290314254903690641095136533467226083132591388748549920866027704555290716479599669963173784452670296633416589941346033146582536425221077708762410977443688629778009245696762763200931556907031585964485525238740885145960488399325172582965792062096506116597761039068486864089800811164567078697086391543645038032202964469317747107581783142540250888269031120135058113098384189536950956959493573486172009159547970486689789702494925496638377003238287100607584493296579425562475384211949833678471845827520087233599947784092755046949428414908841886524067168957180876838151874516703433766994773166958403555570496346005104723184045258631185009843071961018588810257480513297500641466450217203759518961722129746897076205163256635452592521983284652440477525374305916067915715792996030141710115811965736625186753142044318914743764040560701647583242377339131365052712574874226829576605983653649307154615047164951271360512408746067442270824917130247554946103194102293637290282133750765916350233938229449552766299118093443475692647669477717034841689316085617978212156027299920976961971494710804551128411300529106670537598592823776447013454094909629181041199464810675054762073158210101478990598880343129087849872464563414653482812803546819589002244602706789607066509042769627935087670831916657052610203957632973978812299329349304482548773803738017846092788477586096243848905991060543691646353594224240718232064295226174489271391664522530041862149890251698056920063016358087676742457404307980764929061104187172175382077148268863969167479507210806616957788341287368398542307232375663382226628949841231718535932344692906061124574554267792792235021616342191786799561416308134894645503960055468962275104010111929359648308367709530825790593864722080148035228022900331088601466358754924316729559116599791026062794382091257583262305728934747546415202623206124402775941938328916754672186392780914829523389980689396297131687087223447317375881412762628896636742105428122675143319867013817738811744004569791039966307949611458983957453827072434107590419676403430530213017066321525988599768197643249157687004389004957754342122024828276012667654626350931177367065018448770574080894360027930907265118297945772440720871130395387339754994111883494771802723340368955024192746450078156828455461473834768715746050870305513095577384160171746379116934610008536164072657903077712040185113813285931904281712515885148931539800214685088601763419554462812677616549799747170761745820665936489527873694148140441000225374473325024203463211905544276968033710213657955235660265514122039145727188456666553234664471436059464342722089795860605900321437232204710518376398671368563156034340552168468368657575468032239740365891445445533258859361241323398736846936898503797871163727687590939036127767413928284255389048946552163345665017235121814261863538066081895212323507615255547858013711294683406641129954677967153567504596690678411455712836755973618312359392250653593831650770647085986849272835837629694389750816343743033177505490853005324307174092375622015692156623930820491480689100586684201033143186459455562700353064402029514215667546962222365292529229550077605906311496273841099527857403418186842709978805695676272920914526150777988335570871392392363902202605922315439023216750292047112161132804717960667634840480648830648097923844586071695544687237145097964899411413844550367190689385954767998232174808160111768080395180737446010677667949139641468770591602541983408482980774029352948241205004439136326903670114063576800087001760725342000644156169471531103106575632457851352765374965015930855559372496221503955631654825631846193217218541146137242417842549314908993558427296049662568451793804383055076587754472412218630213812137674509150670941615623930243329946051049009106247680310223585981263070621520288310545118127212952160183451011294060686762562296984316221246998947635364894912854737451576948646439446579862634677331493720943598793842518051324424562248052506375477273847325470152582902083636447585040533226850086391056242521779702687408643177294964826682850183848310611250570670565248628929487998643247591397987153813935429553972063529493562853336627130460179685007382602720103981638623326775126972837533402607093127096840609345426734222747482292491787482885898739434123281492094817524545040507251342464330659980370065537936722477139989188609864399847778206464418490626244115142726000500769137019632508383140822972356491525903168113914447993105742951627668242478417363562759768259276547856833370928006064829261546905825372859662249618708815384043952981759241615005832527613411856954049410344296586264418902023241310804383859370171580229495683830887189119570591967548085642418221272380685870932862388040047104678429304453524201100267436580595685736148152696314994197476440891592000018384421684380570790252954015905955469355414239619122392781213463073827918610088066077261040229111908137987199910719924118042594606027220048417276434525228258798669690171270026789723780611530872678271936384491358940396514864702646932313046250104573844484445737160007595989103325587486014471434285033252752509785362069991655710731478406387120697673174456389806236440021714515564946242131423735053224829178794642111793345496951435564545800046877445867849210929974360403314930721012579279057968647172430458125619036270609127978481841825518716211503089380536193943401228709045489056334377078942197609090207589081563867976420908787002565316433824255884019933401345067147751977004472628757225381526277357181315684145177972619127172259609480363796564706447058529544535375991016679068157136832183120138253790328475351927973427668364752225809984940700075961142046795548140886542780502353210572173313923777426954714319239820804300269656294875364750600436246710393086163673733579937081496190123473034785693891208419263042209403122233897123489763747975700138227992947425624645242001712555667104580608059447653722261561678978145741038850750834726703995254799522472804763993858556817460438761065100781718614567356406021241101820259500582530289651541386329089384997174915887668547181326924265525782543958784907957068428996793745509364434015648620344070214910897719536742310129391366382824845296273791600084603581586221287133333885171083715522024273828103317638583308001682507090287823559525452786383041501928001608096830674596987553756021505089194918462418056250091310070050893214744532203674619936443470842692254842659802450362641241305476761243125905230975919916433472783960554774865158509078952972433294605934861277558531042929019224598399614131339060696008064177002987337172864619371163181252758480744720935917118928718379050366737743801197409949317546633196467200895859484825436340553584856156688929501460828356949115704660434792291815965133183843945869054254365176399496803983408516242096976178095317584245249393896748694310695955283919022909665702477561873412997759802478360093064889852597168397736196469771331623945074589708221244096094484304432407917828824905499792478139446005281746038745339805042024778682852584709391840466260172865013902006006490303862348030652831265376872420175224098336156881072989515196276419018144100786203879764393485005402869527647628469068632208388359497428396239479475100687291490270930548566043987491752992600816674223662117996905338954573837853421441927968299156461424072292748149822446133567579608536832675464278919374954863063813065713877017539358696515821405212483600062044411629505770522165266216656345941047582282843459342392782037006902368318812114324718562543148898007065359171987999966534336713169206989992772236948585834484628955309493637470276041244010639174079961365595458939165863284326369816685900057566742102316547509017170130924098724693258792304381454586759338785862463840874002956417163255737168109132926488886973980824342719013241991850134170925195634063547565387307688707644338059534087214549962358293831175035798227682829118569198936448474945197952012282485033515268609741301519084695399722555701474863565996316747586151449627101404536465772952829561249607233538329942177132993785539037446773119572435489418310272860829586338712012015007583668945300348087776855279671402177919013765279370524740511976306675388411755391943353555230809274670538256081958316934625413384278440853043853710984768092273487291344789872452496759889739486036930384033503184299473029371481441099759998719746975977104379763548633980938738840165079406580292937405231458749593800699491445847144922711814648352527456474533712317469491916486300899515696847169426247109742885390059264222867136916890222112944289700330389405800227437452783074372470090582294248576801755712691398591735362256169869603773038977448547605537920166625764821172533944188642046056329550562116375257588704506059422297339195390924414005186197341419381418610107610286996053047014758070088315038057653203539016999939123324029926830627150247490603231922529054664725362554884293960820438502685900140011734244696792099511413996621178545503640824571322910083840348676036634063527501178734234612210563862665260125105505558815737720199829901668648392342288751610636133607853825308552752841606081579264546925098598009355795719769273398780223316054497527206429432679732739123908772117634485774603184243136710799059527551629001028115928534678355229137313746237776772371037959951485496397263931899244138980513099110824433147508534605994830656655481256815966190372806978274100754148029739531703108322502526117649573692348779189234566549888413138228534855980353077132592855381446490213503129072591636450415895685877222735469400880164976905555735349470585503989748023607648329503066763455545011759859799869537882494804505923406142563007558692181602945838307440957426530635057092052638467933717428874829951411833094256775898822354465226702810651827275251375232207991421952083937751658276198269204841885843896388511850638202814045028057762918517815192012604795604010293655806575370182201371066628867439643442116202787263476460674199708583592116802978834332210022128651829091023992973175308974989475383672830904929653779185304111761290270052068837242316672589087561352320895224918340824205600366089187250890617835001225372068475357756609768671317791271311813690104636377964492613248049666264151743474423369351539110789432052785756665389275062414530803572145057898033403620633586560948669342540497353565757510765855906239010810504094713349248429454486830331428182462491616097641723996175297170013618074425344382808772077525716866305324746742693530557466780272554378900029874028352331359447295532627999578593716487029131420585290582073948655814713474527272998887742100319192643649818924300152781678183397188269402909177162152345784661909853791101030097608151958647839426069369738681888911946313299145407297072012986692543497871307664502325194263271917142519995233804626288959785328294868284639909019689637991096871739994564113840764518150039797236104973671288755865515836985711782196754442424517592769631031058419534551338246870625508692104862058019284722885909140408009627156807930033591567090704758753657097574013519398818139033968656540390777895797209865107509551785337799507546525664694158070315960876216965841746305894333584344227056098854716717661803588208490291297569697370038574189065124776291119006251374656144926918272578872022711504286071858442650543748572900572071709210339194081679600152948221903078737805066613876795986785998743403582871550518413970057026653020280471032016478213643456038798578529737727426774161126843783851252534692989258374185423420873586412057352834298327196305942808937532282876530432183378304296084794546925597709555923922885698404802347873333343769688981421009633474228874980725109532632524368888876973660503748574807816860480694225684545397135432086846551434080283491879766695554815168809751749920802484787388328598118884437516879969106623570099905684943451348612047921184009336177394026049357681051996249656750874362682724625910908716791013134833900591600209674248098886192921663867521092971382358198680950534195573006386031531765057400855151478548808050029267830154807021371409623076865576293728358312592196257254655848167406519174552445530912007388611693029169494577119444924501027047036363672074890609835672475443731546241508339051910686017897204842819922963061074350391781273648049605503665623794881303310923186479739606065629967805062420454858353901229870004357425513282492880006817437880256152301076619107088599231536350899607171442871404829335293609191842475281020781307383807457426625551800871162387197616377386495167550769814043767328549756632706982511819962137481094986379235586700005919878506854233417930563341504243095152435430532791521179857119333580062832372705676934142771537838796416507016891349525693944599744234903237459742349013242646889237326860274781143246098797854633528237709237921620943111523131926674884905527081688145312984589838003515261740209690691988661138479683348103398080289729911608711311180134821666804196772134802225393720835272070444711108577041083508583663247435975284631378377545906885479482987546816592749085699071325358147819932671913818530331280240903024055792076181253307875450259936723366020110807872801075344837840348596817239444166259219075825379162419752139480320093167788511646614963834462555098163589261380631846891782340002063235914724251470454254140001027878410675075644249670877550347124435251300407030234182828775657028827141665484349162673710642689938700843613509682756106414761809288983879141551309343385242193465475656491174082275564791860477517560578025098416390262969614784070787660551550321757200041590256994441297631328745831470197343025051257240235774499986982991573642264500462078674150039091647182020566280505399102840669050182633557986783947154566624279200396879186893635352014316193886559776051801265028903533270033600485870264433853355837199985516576782583004660682139615032490316432193642953160049180888835277324798069693153186879601875256625321330422219122579774188307564107882189541177250392336577513287911176663027553646577130498222280960636924849096065333005311680718516184787651313260681795723998927223266194212840234405671797461567459661044597231371474715637041582214599946076935593738155623593571485896215265162783816280978240453125793900110143273936779017468762963223675947318337765005085503925125526691294365303237665656783474432843728855537477882256987650467850788535494889494030502746272278477429863920700125138197560702573209238098042996284835848720682405667016762596687644119488636811652926908201429173247227648111383997591105481137314727134163299315816969903057369565509725112157182681940177950784819959961250423984553916294733367696261192789325843612837092087274216963574005928446770795126356509417557112084024093226478308721716141363330975487391920881566942446339114353095542097794934728064914657396824692504253703240482350242542436906380727659591067798067106537369288106370324564812989010866933092848788585402436668147021194866089852799819193647834091422106281670396118841343500365960085321888815072213920369331293681896919710608295103983862010158748754989427532783813561368980016526879444957861510187519446847228735437727249943816100614696108993169911427853438246445397140030029238091333858811080089650816117136635110371135781189927966162184125545071511215726237952979393176882323550062919330077492444877018949186452289720686053202936275565229373335209722843982509926263490563000768543601968453916157704584349569364048772709870899469164738135249304497313471757892324062568621922119712240662395318133782006494645936632488347073029794237390368768000226324415548513513064351147570885870358980962986914036170874548654388099473983338497911521847777558471120981755666181465653073429244295751609814652143237075385985716680734477112468851002566376503810460118955765421903928570774725633975035971482821156384982323285367796314392205570664791454669753801857057667503902119641911964608639817556951034299288332690539243046612333892437186080866898895800045150369674057994161918497429079733995842896435684865519420924486481114652413551914023967016897473890527622529512682038797117713575541905766435535429929845989782287984414294603998242476491287632375194891891740168437079714902717539341890906770274318124345548467022389996303927098075029150766417856395754608758423762687147818303835839716976454292887992646888376706946835634063664263329354269082695512150809530660602041995454516734933585798839506868895394234394863080237812110224634211865783163652830044677322466583716986286488360337569610523238614857654699990457742343234847833502808464850916247710147169759809907301817942796841365873524961122742522441849699481006894892272617016471848942969583717049509192486783028336884058724120306031439264529566177657402453031922512506082221645073771329483940733802152550802159346583850075494754382162557810709917807794314748279206136434706121370885542782005810954495242429603763095831867994253664877611414804270464329550580059651578365326454842966865047983963328720040232971755655093381006464351382153442045521134425551239644045951242668272415667783436154002197211914375081045026525181969596505567393736649792626801760694196153180847488943939879345229344527856061327943393722419026048540086717004526888059741940779644271039894390394621090102962107841310952942136601720276144523614013829535241402607685528672782724208640270179459242084487832745185301192661842890295132955158656308211886851268798723772632655574414124367299696786837828772186218393121358185953279882763702127292118896328477252623785257838015679623956426890741466509711762016238279283463055245226315833437764157454801236375014197089779555657566146216175035139380220909537885064261822277405513936039419309000582713578443444619938015201483803374735618227974274930629527892565249757255683459895315657883117445122622886336621097096343435152607408920518462679114827831892102815821937950120160443459953210809411030739621184614106704751047108833556433938667972467050673799847322164457137598524501243742466347563338027250869921947330650977941972847453280608132723642929065358229580086085306830296302838455467938445389308960253303861642785748844102972348320337157303307050047105100148677089846606439166842617985588816024090750252820067063793948038417219284730130886522895941190017559823879543010570656242331538447120344144725527968476707193553001050513263880457747657390477766652710962633103456633570322911000411216957810694590409442210202205620267431913567314807799199404781700471815551174045336542707536007808583858793197134277921333087725278306143823989396650584028987258173801951913288423401641798508438305932925993597536706514631800743865067043385546935642209060033482618763034176161386217520215150021182438843823681364607583296023388146175431882420867334497797471406296677787373753716507414012033074001690282080394072056919211515089094070318817887868944129990795801053009522923377222306940109411891080876608860758010166724314725417288269728905068393036269779109186073642076768867187573358585344736056130612379047546929084154667176996356769486648791811232864077135545316020456351536426146372661119031479577990314283987337605993463497318961193787051797140391754232308368700119945976000427332185709330117263789655963214334709624019919818093736280897304249601468684843377443345624649260113289640995940222457552781651647030889217477699967025300217308033631525761738481785271344095480596381052916582600144620346915645524173416372487438286614106388619429676322032866072807428528262967444577357802366645981983840144009655564497588384891277028747315877632578008903309459176564165377735365714323205609850253824882899724571355485931289682721292469441512434892812320979674450934947908605907077749195009523209935093240823318635413744853338269823858446508600877277807567235315648786824176319607697593383741810321331436626907518955920846085467363005395751687339622728680153030899016516043018846043682131675174133255871063941079499181410875202694490615011664311482228085422765342050643154269956867898932935547560173447023479958868639752688551334206447649759393064230685822971691307704624304161213684154995518683794029434903005733172054613241819449385295279062619008209202399164022339836071754721285739767644974668420260745982587678779534936353545668260580128486856318407481864361613451995557654451920017098960891287471208116532582645446740800725817041910816785209568457285542105284744138763444021021202518336248989640072477974178898989507313747588931584246532649089112699185586646289654228786005328360721188101629946271044762293224822666722741514223378147445973898810578738250303037151365304636736645244346606771607255739604101863539617953439453928166937200789118824351992376198063219285517634434523911377743327621138383173142099745650631312264965266779752311670978154699233924910038236813069018810029641957340600032217904203713510078614464966254777251634106469285301032801342976697722844648233191845565218920824431651171458065736689263209229118229238123824982524972266612007477411239015522400771319259685470694142594693149322579088933819569803126091108207166964293826637544535956547439324449000837460644050451162221447489955743132525656696580995375209750303559876906813514496420730595687543708900882716698319334235665479922242990082170122928438962528560410385191490479030682507317277088780159175390266109886235576897908983663357174294149277068308083581884527570892428616038361399246863389903419671930542625048484389016175658418993933102146046662723631151704970326158790059653863574337497530087580213079561868422276143570769709164989229728054591330079211767452872391540012255201486258581248621073533992903975539332478773150973658590260669264512684375148730487276512669285260406583172642228139914435498702247573677994533299210042978036785703320145474053544583824638561695674579407778112950513157266484055805728721021365074182496222926257988277753717453262919312010602387798874843526996329669046029572437255459072051842586125288987284150875346545058295040740911487001588374820551151024886256246705197765998440544056412537320990994421689521954838325276559323366036544555825999243156820775327713663136664068217432941408589477064272701208232662415512809060216598705641437400898050042878578457393681175851096183818942715922850391706993904075421850882392271203472008408968606628991571571729335272958526514699969897632768781239496948491544293150443146382253732101345692533111565085612943323650695808978415493504770759171568487332324442085655477862804925720382266409133117725240873510949946022861558201223630239507942111833766356896405534885684103503141496782235854869485540684102019472783205009365433596172168538794460499394408648001684433046858490637469456676164621857023462941563763130032411693880431815132597823386531547920244644137553413431090938587704877317719155124240976308959741922742119189873881999800734450997207892137043129851693223333421129673788152670896700492714309067663712777179441127363364475158818052073026873795203318192622933102374417527394032810870619318730683433877939906985747849367176782848178012148612826633436949134089927380349905469969150170306950983007972612795252985130441556390645828975125387152045748326370248242161206336652053297926939388414546288232213410699322480592500888902596727716530392652471974129117071176811162975517057689090158297344156499403908074303396395578169379050696984101205962917492656239716581076926128120669575984116846640840408920329888300267345986910563824324342484839856579188095414871691827396639764196170691619360452925031011046784230241275701435452933466219495728984395545618070935930805020334616176286143148240702251923480333528276211159215597082159886001645469285170388806127089666974277391474588358865042596775897367579597411155184571655927387422201935305976702718684948904389467749799396541918766506412045917029223968300477471219759140828639880334949008051774261070428023230773911179354789534614383342612544552866589931629945612550411142364107441711781625288911390009210004915372392913515365438675535530293398885855383069371202757533333941940440342053668684599700712421254756475182006821512019864264755709565711010164250247665965131381830349681572449439729642782033337759791077342197238259416613357620425712783644801609569667383948306230416511769010353328980182946884287069292954082155568752938360420035620201716484234915673614318624963033070409982944939854914205063710711590801863539809410771562634411414702727212416184283290598788841791958630777456545861976731970478439688021800960141985813823404514423998125555612660782590662858661216684379589492672995702311732135317160821293091233996828074409327909120059088136703373431327202776977183763479579250191373168960902833090414883670137447759065667920930367033438275078697279788164415583666097574347492354373331109328179114255148250760243239518155716865362236569584203913605292707729165656121142759742329725037212753099696659881983478244744934058698588543957541687975529542612232321824876685171005198778347120005803956184423351044928543166021230156988446289995080951842082205734499522328318724541509229559496929804495724196839554979103883451708308931066529734892457279803151014403095739221557397153179442028886763672369465676003998338117512670689243837579650850133148946282672031096631650235986610817978933931220930436133659935416591447772285679812678591739487853501190247922800403983596553351180806428830959433307262786910809962422423094943964690088526550579028483404577546430731346028573781175733302100568903503935039162919317660548867839146203066315308024790241699267981372922824214746012415444577990983218593742327629819416142322577042360809968508270856731002075325576548910350542664258891221182795030423380019258857602747901230001410676372756009607110925904142768108489054684415327964532257575306429794303987771982204334952266301136014370731350614657880082908949598261740898465540639359638362311795835581776617236446215446998905644401366632655795211074347165896776641703263845763640414758106389260718016312448301524203264512981086336375326017129616506571455268120447506581695869567761802972805575364890604417440881165393039334203086497461248866221169481954336984655671130906599334900529166552620079092169765608598306534124938914426365918663322835304043020301941390654212814817946369907712939659119347854763635946168389106603541180118990273987306581376622115891801566406221270140336938673061650499973560298964183496279170376167949619080546797896205925991563793683914266651936937764729622080698169875638786364222494408518822694209036540995784100422988721466959516630235813845787435290654990648000288628436198235253035440090638926612367000771527497563954850324365460581821161459484703101571299220418265535769704109328498471590091401784278552053704269816078513464181975010119431177106208614925976180614754226220519909389907495809433374371163190313367762712306184391265755910857699686979578106099802862934786001402383967585747919249076442524384911694057689216658468171168573577236456522573501263851789999770701834162547478056758985514474885450232661130647536186366171239167488907663059129005310573887959335491242698677672041517451720862748542463105974194682016763696501006928592791581814150257687823258958810178377661128285914883019997419716154068161807100896595528827904361769059568658442621880731248038171915413888851551754377507014365029666689316361900930380134052297230472460375745051530016221365964167731674070337294020802358393101006725548026305327666669888871550142708019352482308165531843127678527330810417098023827353631349260324719699871054922607148774554105982383845288366748113542513839981302989227589220273968650521874007701191222494655741493594399509784607452497967824753050520673953816223551843549173580954028395490163584829784271085958259947338431712420503281635453646610132746972384989773776617774977538404289409478467980091826073623491923332734101537007231578596055026646511791103735064882498565808279885600756611660549629026931409678814340677170278575415865359987052800129954129899376045187540918304525679077891099744288054234190794629228047742344897164954127123915745937918337387786146053250710462241975237756407391943505348626758511679319983732580086279429672603692057556691102046184534430758222535840409922858860773034525893222473413232824458038806943537685646859094643774197201530274221524769829431511623696339808342456842715918152810060817368448085120560430858281406810351169516280139828452606604116907745299007945013871953099662955552421544640033227487936713604962956490472290797697111919656964735219466624228872411396853964772858728383166523023781166193844923367324901868218391961554347609609034195004342111835745732953933745873324116771400467104765624982643233535814583242258693267688255532730609613676250968767671447959813571157023556424405890675219907739627558084387317751385555897335700229566216231494579644294784533208472300038714674151055147604996363633241313702828402834057709803207765143784299071750629983934686147613891449979937725980075235189687512300597829971541678176325089202104311038385382064514076934315984363826480288034942714596818885416476639053875678409722675054264561726748984861282557189867120175875924506655495297175802704972586041490891630867124008156275300406824078411367276056110437420047646770050684176138331788431912152917098581092032158601203331331745859599919665758029897280923519667460211417585444154832001164957634733090050780278766470665654482397503956082628164345928470677394319315811960542660203550395226535459129760498245234736650630330680455161872713585756009082102894079928927827805639352084373497597350791773008914754980463500530788992155934180523956023409279076299147149174280683324441140016851694071770783248983164860669511136131496211845933773425710731780738632546448986653838124660174706597272853820757103275895898245192842422265130713038496921640017364128314243195231882578705991853718037343818102733160079675993696366217480169685522549532587653883896520774932973633365017724889056829634309761560921273816564474744566758021512923780336419155480036903916154732063790478243991270046848496838830832871369882321786680508486316190033921113582135800272458967263168568228487061978514323509951494125748206709535635667886099272768524328686802720647484742340817493208147167733503875641269175158189303896462724710088184559785031055025402881502835844864088647987063546751086594647903821606548697212119743804471613695224188470313991412830051867642704832517106899401686620833060011736638112018851415289347000999662825324582866922346582438754575816993310949714770585648959577945558112109840632116036342384552321005271158330330834971625866423560582103672372389225792864186025400064762542741177849334671565369185207635248365542315179248933011723372318205381470172596376040409839029841818141028032873718597560526393347355299688045694272758416520566284283050248884938728974242548492229698596647354666786587894173734157648980606700297691673600744796533621061423018059871611128286730025265503658568932281877367969794159314062373428864636335840770295812353527553833214957401536985829656950658927607944851050208222260967502153810884344542053827567524423360987701941109485487789988570278639231002035471797188135050495202986827304055078796043669191194187869315512168688491722691380338288715995961160713690552097047978129016930813952046413438198955024118940295315788679126478147885412862643674656801427779681682177832113149639218014849094596726380132590498002368403441400324286497786551399919928988414902158038676769946490793196077996539582131680914053647974777235638947647230579269816984432193252760024487062720690827224779908936575525906930715321845245535647469550626898421071496952504717246064004913932244951526114090269479416925427123711631773193059084523655762000187864804751029302130809080038818620813438585950857318437622980914851284291712720198689089499599617645737223548497373947238206976120813642477838013134602416348207884666550499606075102322533172691154596973115887411904133441055274073165363853645776314788928655727912209673814669823629801986024658562707640241995864286648137005490090135445474110159877149403828673111110190895085385404314343356383827272735437393098509657562844343650925273891949428782432706355291856154858161532047753622441961864989713644112438190304665287154567561333781197087764631663413197930681825383207756763727130453294401964964589368655723113170766521046393539782820959240746985183706417895150382273308016177097461156330919324235130724908537913753532588633708138319625513154078737538970312085757612218230063684376487201665038990301492639024416454297923606080992656332011625213712999131699821409269798861695525509924931302632600866567929208808867724649254022594173456630319469137635493293176697529877346960373278500692830090173337788072381886834155107245784230163701898440395515593641138774094885294903654924635253673736823162181395533539544401960372924760771615302810441532237527324196925624597775131083556377951806659151797078621487869257245833330671480258241645156724620949554902130042681290069317290382763598281784610818658035891679267850539947560802427689400565763892222381586630094592956506889046080384507964468222808956772191482665119218631750075631723983090152742567603722453160331527879302788977018895380914833856948678082238090046073173764306831582942108923740639236519202236476631793781323867891867596134769804380519961557168438383942200735860026523074324691329701909074067371064327788094838412574190020287511052735119218598589489975843491559427280723176348637592326373374098049322015581723691844451926876687459624779591959105989437360205528558409196103728953128232131586022100399181104964113089943213680486178822535920182080055352110415278547222065143627953674647004327910763944866393480096820040682964044386978998677209579106642410340256754861263117782518191420314500439432281603908697062746374062849426480675712812011934659579462896972239220004468176307042853453344867100887402348941729307497978353797561138127244602889758585347711644850373183400138133103192422081591769238556280789443381681181425172978999426584364766458862036011023850862107368068729201723859911908058674178156983066243714734641972488118206952778493111352049127543244098444951833476893647248263882971272966653478595327355633924968654231462895159587452459723840703440683252631863609766295772531126807847215208169344848942281085913834696155543680348959071427275106291613260363710187280464237277262162904840300445591149345729106642248418051557993032809457219917721264156532521396758438293539938799614764447707415379697157785130777735412123743557421636599988476188435996537106064102360446867016880138554138110442537654059811316963407321432897554026064067386350238864494770949642862057638259810940016093567078713932358394927013558756665457380475636159013335976804340934503333567601409797339905788561479608744050694344541065289521677687231495542053552533939549177618248776877240977488276069215365859450037226758661039275688728222473091622487302287934122308602313763379251475751867759455873945516144458140669325102311324063827884313098883351073754462529843161379565568227204567524947631379567022479986030941300890247137015042356485376568130256990323719401794533514290566384306447646817647430955200114708238170275600687704240284289336363270929369605132431480400256356291439126786560213304618795912744183669809901043889409592253422913408170143600746077844180369581960549277566404409460574643403135838187917385518479584649923708264661183454622591757505637669808239638916747660506473948452330030916485743154131798587271628954222686797965935271088968738192349099828996556575594829445737846854976832102721357673929733544986878410007087149052562850478265473488353556936470337414910800232182741158486961554177524359232080618379454871255023732218748789227253384127186465589412971187941518198795525227066601783040110695803927798206572998497589258858691735826112304159954051024451513928502341718605175925004790708841528082014875781472559553898900855121027403674016654998006204134991686884889685039127044574475414302076339040841388001903434622534044188271132916107852640987152124417260916615155037679680204749409354726066281986892160868886471434562390157844772470159681700066309031017385823141319505024669738567985961253127821506386435643429305160732607704226094119520494970840974207774079669076951841227402750248277070405736470305834257263991781620227429171105300727803258904719735614552858470799805021804617368705437924997246988945291947002528350579958079484369652892265647919824241660103920491537960711296451406933285669563983099971430332092573714638866559534799919078232289458070052051193029014354980053658112885523337041663805892578782227293742139398731060003166319918641546663685153656734342682995536995907459762332247254333363811915788437973141242001291818339110099189017633768165936068995558354446574384570707873158057578488964171468152133095068038748367349547831694013672591050378896906405339842874510954302749400644388383999374188715201194930501925890795043717302284640022832495100812987306978104816101900330772653052626867644845157068330598159859003640901650139958320719827585298301204635579926355894170974955811899740634851755947194165653504065201469296526713321589395748259518227687408250065631058415491890778861599655744042526315880645666712260494898766115066371370117642594686386086906142407146091705319480325145937020188635630755058060671148908579869167799695001666757802675215500585504479337930841297501537275652152106597232055619043866359547767090265365980881198044494728309756894787565817785698537129926970611072640476765216724735333953585996645629835423098281077212672631567104512407066709162440070026123567052232453300984860245544918455360643381913131155450649575907501975511594130500721616827730917137569741355716501798325915855796998810905200829447736418005491692578345631719904948356396651306759432445404308084647459077823240461205566549098620562565669629049437329282958828000702520542169004076863998091220610556551319073183993181978972636490658791287802548809368714254413580694178557581249670066355181933009419749049785557226607196608327192829738845434249081129497694683962614173081940754164195207312832348598773989394018319128979055140625510454121464027708199761738938959692276752034662708206854837592484651679242297348738448066707941633420134667540062278896310483409970800282233328158822349430503351007718104135876594778628986515804866418925377420050765977812120687622189618427847258769920091951884763309976265818528342429433484484688338680302479837531602152821606576306652649987762704709933592907378314836086527436326172407518339123122448787900261604741975016913051752555961929525860517350238906371816214000052261647440058013002181384741456210339818276811789336547396922541599099829088212815597311089390462443662458055903670271917744947331637289508807388452138924176900332413805431959084628405845369240840703591470213221104398514653666102398994609460425188265479990428562338553838842841427697769946120219148865705343569379927981739769725659058195021629636187220501384269517340574401906685300381467747595979854310725807918213070654680322494327708552501350290146016796492269585717152679470878536605181105274389099940317128874191994197708507618203034250515524565213470399553869490723551246702014641340470497089599285706882674750899453782599002291072101060983422659018165182100858254531756983159576771464941064200519925718375689247119028398362972650621455253652221880982745287819842257095303217856678813309840141736314415999428399713512856523862728952742394690899150435896449918892816216266933210701838429999788384035231121972235697318741203804424405879174971701743125715550063267752876963025937493962531529176539352288330381559381451995358216845154280565867017357518435648898088166026737995719168440758769662785574521809587881389864858149426413026564280392004246538196333686681839981886688029464778530638067153610214854569452930206809641909802886720518901606973336424990118440212941058230818160387271637857622433642571792889896821183235049491743367670623904495568398670708341180373487045538914014862670656337744007678102454552541591303485892713264063600779021691158542912053615365871185191593802545308783359707082869727719261279381778102399105648553871300470848196852704301733017734972588974190738503272377741146117750791286483431386199990347120213341101190218582528851434606537954773592154581100909161365345155547970597176753574804385963451705528496782011806178070305614669433228588003657082100033656980587848329357134475301946763348080134586660601184977092264844027085989550406473486009498626201779310919368778651845731524837988367477287648889700177712329736789532877638577513055798997672148264538857482468168004613692348091061389754366200518053445138382599917785275354723276959927369567602734811736720070776556055809811013874062791366813955410761007727230249086166668758031718275456109940694733607951657495721219837076971988148898633223990584118306507343706417801826773481132523299944587600414233988723616858996550745663018612973944102764162163554209351229066922304226271010851010564283170622669305027218625153057795202297915704010878292608217501218844601149702445174994026653597215371645585392567753770192484945410137040707406989584408249320365330955140924838272216918639532045028947254953498692513146320284351061038042844627903210922834214984258083487754493120870207424810342639796116253517522818129561437045477632526679883032369578684624195299652018326782588106268660592733619395605867561963168708701540884036618738911189485874813792282327143052720725796907992512018152653516201181113017594769375536559734404849284528206407506897113307569377848199564030231937290570894254863158110282944639541206038040766327491090095523815632406274836452230413556411991865708367433458001094733455737007871793594185346989271080602394734746848500151968722312164900568274620012668202262487098553161981996158182336709871053267276661363098619143579063365356544875947935705811556311843041528080893306475678924282366663329777569176254206385193654469918418253810235884938770813425063288414950717748713150267159307367803788302444869477067545464447537748868352197516468088081967555971708139131194929031672733561469685411572811355548597363034508082013514669161901132532547737288114257195908092217887478170005325220399016601991297907375428830469758619979663273680812270848220142513657580611986405259178400784836674675915702999802594146218278511152556315188823594422854505194334699758061444945376761955158062522801991417884886655632023122394899245102047845532311748063820641689747727102501856223174445847614015263844304187630401838709838935242347145676045699776505192362862666012002110221076710265938874852779527524688289580371851642302722765590567550152049104099646588080005233815525243808518789739792801766966991579504452891904270920063909649567573047903944814053136608998521957032438465745048255011948849616949989886077292430459168120742083404830148923744875125330890744464971984313124756494012092400171918216675376242771090166271838731572017726222880622522546614611989687908949449038614071080810724172987280812124480567968255253137686634736459815122369461991756144760664209816782712570742989337698659409198034056841399414255302410664399006775212032135810128799669863947283542500634461362314473148944969079949779614980734329014560946445679481148024579831072997550487985434314287553627661684257036057572653275760367438180933328055940069861613705241813169747097584658970600595106638775699814452725020340983829465960537105731327764774686370011568651283582014687553084937223214971726624262470913395775910460288590559728488750131510915673215205695335680585382669604452529270887950533227387764579361375486418661851496935142563796226036300470891838668860680394192843127458287547862075720362067761392378373971860584393959863564099093441103113751851217561313788267796490751430029332098120400446607537097782809323122434551459560495969233664581440785549133743267738642099008036784440047720492718416384212145591924414554274706682972054276298300058929021784577754845713424331621595492062345389395192403142465127691740070459016635253354353152435837100261474077969994088528182436373068186674613600738481819493858328005099016400359546617213101488190634251547710933167502572667328947065190627118532398948600028806398721904057958491205919857823016903427833462619781493409209457582572947130079001432868968935376927665992181350329184927188919675007119517595853844002238275662580413611046873413178900085347694876776006110686752847070249940860184728491367793187425182751901845162236651365364968066076813659416901075102747195146967022524025922644017541238277170089229565031706827322953966956570256514865567941077346002749305291739593647817080185327834675283704181317703315731920763643186675943964546849247376473058129492999491786569622521452033756842065318730064848031338181153935021944026585335217037341596220246980492226057616383212582970889480901184026434243877743257499184822806705197756520580273035543277544396576544777026318993441874597387815061975241591807160256735441568829805236371178080228671064329722207367138071966269623892148195180953356985437508023845017762084837423143822159601404511410521978605589018260748173996890079383481134363630995493716667602640366211149985653056623288095579622018826935492759114318220848180145227338236097722168914187305642304206709620631717536128608008979875927762287467483023269728347495809364835749643032772843134527799942426678039665614385922906515976436394135210690587565356500734094500509947799139541131933855670155642626409590899489257721601330813116724837140310489426863829472996869429140595059423237118562649081666208187134915437409055801241630777843266196409400580778874646759657988589700525794683833896263643413107280485066046197915242761725784251421718931889355362266357939555181050465072344605576966337141656839719064525710235394646283675524058671112592759500225102618599079089357516609595726275090221568642276895985688468644153866413448968757501954386643827806902489913522426742365617413043569882922792640512372553045245530804337190305409408164071926175462929278563418951860162478261729273159573637177398132897931024667094148995503751372190357517488764283965079971871801191718538738805276088889947211874716017307743123207393490009107675378753176590252131884416443811684773101558861110354116751044876996170892760297510240888480140707023440041102541699305018316873801208482349749232945623937671729363985799634060626469759032000412302402344621381126809468215989208175147883185226279495547806360141975466169062068576266646011123437965456246212010169655497600988899617562042449937590011338207542683104208802065820302016245230359049060445688432512525371375269046415248399953446469351337997771405549189017472421663600476364660821508487510039387387032995304400858165963645505137968953169473229356185279346999123081074020117432373681585167866295132862462551058295508728553762025458445697251790988260773006759002038105357277241888925739110427437139792037850587315682926576640316339875338676402827086098301625077800532159237026014006843311301444059643282871307287901912542519926774638067952023886668095832417974703762780328328059405509957968239743928932402258055038426383638220435218361963338880254495865656373812927900864636535699031886008712272386300284117643753514507725033803422796306684522418945180171877068556470293628115391833369682917589043317414862134180031514917986170551285365307508379979203324023739847492744315110668177381838715520715545094455308429106651579302419447382730506890425342688251907841662787466887082842487621006360904678560780678174463177751673750324031358695501476665837613517644416934588964069343359435509232352140961767081302685228392194557821116075321196738236017309466232197978071602576516981696259030666045554290360154061576750476043224759023584898697179232055959115691948037637956617099833039604397128653493199513963367081145433732744445400280020993696712073107618765955906411486071050303357217900517609015315059591354474775338019694898824404460772342778519343967228033614002097102234992701992460049619928253674359761791671418672270383834528544049395565312722634029483262904355404775792310348580415759710912416981625692169600088656563400484035075117464331632873087388004299656510048476268730792838659049957949959938573639062333056648003030486141341597200741518690344254342153939237659499916504645238627756808120754493979562009963325357396426550693777678231340564650720108587104912960405877790238475567903249158771548270360607251686566657816981207275494244927433057766097960231864223308774941297774152657066413666097714998169555454318624594257884186271984004834551992511950681543947022887103441747542624737717568092700666912579736424138523247526234174083296013838716576981448462224410391492490141103329864088993920748245042505008197823350538501446039633592090826207198532115764241400536586511873244111948047823383292760857228373961357106977282455381711450650116824606736116859424837157603639853947666502784684384924214142889471068603683374977951119314120051249247868167480218978264370877645085536203054111641343907493301614799171604160949331356442657600004628774239931263667294235570800296454078695804951750695382791814830200328637858667535246564875681791125866802780696454865257069662352239123536354202840738552952419144818223598592042304534837903210487491781346856609809305545156109255379174208707133665080000478593796006970474825412803830723656310015268672674202029164350040112825032404164829849822165565849870582309901107762562637903664484926099281642851388581153182364160677181973704299611820381781906615011455801767067793101920954294781193219526561381038631515736141692817745974338926787234276048236533489572968269379660436150577309577796953705490468982549065193678634780013563382956124090727523906363741986395868435636620907735367531209890070678950387739972290944269501898123654558319424892647865843886230789729492522939708552779973149851613708625797299189592510260953182239919820111682983167857399244170386880948652805792335639397165519580014409541987385520695069997323815560793579270975846022552449091416556108539158495506271389294869379907810924986606708204286783286920572520548237758514405851178056489757414051759957074241974347462517114729623935649446276274418945394105890259933149475704847641432421371588791881845314645957822333760844913468658386447515440418442104956513120809761075014513716856846402130625267713984999934035010118504517930866774773949665684581514973767035620984815011126610569609445368331117291553078719188651111930151998376132813171695870523646302039655997596842544867208807169673544639693666543565516598078591738207533984669766889906675289337140497347709702046437102394164640921118967595311261606995202027801079368373934247535894381680090965654017524626740103428362804715978729816463421197841449282180634318315544102815374800037171262851837313274070068992722100402432274361473139256590198130947394195610505945054404982483271411821319065317170493366784259530190700732960423278369076253049866544500564017524364325700439875001159850348793187929992457658259162694649036000487264779828593839131864309671129674012351538328363310112449561646892821738717330744876586891722827667386488859080954776586335333338175687933319213441895744866863898779934867133352411787857042879720542163895768780849909069071890012513891616480872406253357421271239766816239632170656478437146698117246172330832868015820463039252429929345845510422648961105711137708111101081271505329672383876173635794930450262062556231517348787222375165621293015842621515600517243458642607944535192395239515265643318916171961974008090611725837800386738738755825019331139048261243378570676497068595770716867137693292644801120535311319341398633847524440909138511320735750008490512409584894148970111745706508652724056395177385503841943752394940403928473986635509738684498663550249162465073223910042006021926603409520807409425305038919589795602856211028482815680283891762677163741627947012536367984644079155254276256535157046733281414597333328626829069102804361429590819961631293942268621135482202162632531285940324713604714635237163174251891818948416445969133912225020590600402177773394589914658622569995293694849794242789061988206809272807641711945220756655304459232313287356615437595571871802831825256321677034972426059853145197313797485473701699516282735515944896494673441561871244626602579324577916351418222557983232364239960982447830834013887953305705186873311651314104114758030276116126754357979531159497115869673129122327568941067896922395582282857279354609935612010372311253091442875414230400602207359606033751691438653753324738866804738429415513075576107605933119396446749144224348619333039078275346195972040741938696576666189236071258483247483087297711420916351022203251927328346862373621396884416745952945901686864024659966263589414863282398244076501618491640150757505259494948289108187691582742767285336869637343824083783948372550123948199645124216319156194480775230178614751497035708909151321817968321288414588735027571358854592764391747200550749393985951962126396760301889041118317617009173938604239298089104757794483306156651459418550596302132075611308157112635168161958135664653603789791042113247235880209250577756432781236798165794357828169249871085929047043037380168668975580929728842805335744763203603342432730216054841916488614266178316184602965427989235657741882654599151895848283111428923340406175483737406533746921855258341015899538975660570121645227078671498237073914689665436310785156292958165932580202317782096149428873974967160354165550032150302812586959056537132852634234826259548427154161532868959731382242917295659490238054920334978140577401140386836495590620122702024850141534070803612789673345386706303381343587390928199790532578995098291982874669920306710354681151688130219091319015576771468670325655462597046473802870423439315078884195552729368105193716330083003731472363135759366057973673915642125907309726118875770594778290349703282690377063736905575551001773633524078556907075137374315792641427756583669631205110299958905010936683216443154754757289133466336415849485212737122269408347209262434458597948204539529480812676998172867513002553560235614701532236445373575505641205541173483766731650089069449701251252927043082994310935078703266846939066421150103204769399603255497041880573634618366507790274662599859944799891951161375594591728809017900197695861942514560154455072372759132045740595797046679797180966438198090574917256581011457760361354660183087837002511042391882249554864356568309131323318702957694852745665845233091522549594636854158339365874397939493383111873476365868695278902837993475457557677351934153423889300649672228284453368196587315391594170143438529367889284945505099479171221503326386072609878907370353680396283903998082099065075140310885569558753107314999653089674078558781045741661296053713131905793101193937765625386999106597030632020784850339083798818574292449802375129568404795916787908410614861168600051445666968451722234824206389680152532893944175929372904285574549625727487769908607832672914739940041234053740346096021734487822348944266635721080213221395648863686540898564852386689349628141015892803513384454149931273064866240235423759356910156053342393879963536660622687255206418271078301907754192042150397368009018774880927229968871664479951629248866861850537421239453166627318159653472520837181899077987363243692242387920690741967892401221481135124980955203901897953982370665749157970777240221426129495637263291283695302799372231252480494346185939317514067835837547458449798874400994551055226088227071289174007917958553208736385281133865158520014129868065381878103709994691385975015076061077954839778453766953053702981875734204550666323066236690847199709079099145621562792602127449949253819408279972113492603606845588523148387701807159814593195067368993525586620937290869234011835100144744929957738562410336883144106184110938502432984924170609376759683320527549056635320138005714895763714746416108632008174580132029875394268511107570972319309592185408524440859858331367569594953724122821952400197821893161989078593384417446550151566825897460649738830208840097940710609436817216995050322044021599698726739800267527858918627096097143669236652746244716186977113228655607412546593585530578506791900499611406067964869002356627274693371824617718772826972533659800147933697623505224574971513275941830215046231372504816954476624969481056101855687870124252719016254812458990272618355137512699801622681575712441079775284521086405133608917591525623054144576584840975771263190910221083182835048014409595736668030126881066601043427692377206574207568366418311946202001040911613489371214690974838835209312100916576683954484913466788243982338893512954668417771507418624832014124078468432559426737008898026627756470219951410718751503007578380919782273129356923094411676910378712526890183024085100007303605113634352851270359080390482592760786659272830858239631098566394594884900945833893378042144903071377281967071688925958149075097460347053560680374496654252870296754060691841702787586830286719930435384825206806825918222693092846428347255451935438784136021689303134919700872305218811647837707286063702755610090731218252675938574503395433336520863439525448760703540441352663714715819505763063584446250552928058092240542671834756796761077001132290899539767203048324299786589195787544616860510320131609291733494343454517688083306436915662246296728622612348617478230252562529512151161443285171381954982051557874588118452063983566813518485615831302804552716382720866317689294266557853715193058629010104161857147674336122008639370160871250764345208752922374951555542646046550402751098193236529435526743893774852217369259198909319716479420732275782401025518506121646976559380329570393585641888762743039073729075811362929289536071599861409750118999952536996277379968918797549351056471418979640533656384614558544200061733811713717208321951718115863725049017412757485276726297055221549944018929382261537591261309925246004409064504856410662147866043985411846205384053545225586414550807942853589705452026093400715379527022302218239974413728879152190913455233423668151249830123146170589393223867032697810554260402885241474745503701203073087827607575692882801413050269531488315480535729114240872632623973037415482123530429091153605219943443554204017424283066053192797271036611447277757903068016809401657550373473149536226557175439711275476563508477492456014855128798890482904868455283122630779080282862350806898168657595344407589917889548757512590887321546739537614212660772068200667675076816637382607695008805120304406869018435934671862558033170997918343045701289450351392466290372511775518955808935873087089195175060077081568784587539360364206957672492487721484117877349933272681051125900858031989978000809218412525701728680319669911726409770929867825419887865794578572337147876013245696644071241118748592641571584429185348275478796646240238428752792016087379080881666369016261081306169386312952528766145714778251598160713282762193699404649554929080005832932908021431909098480405435922604364478374529979556172992155482954417763068594186845911974223279727655724483692420168101215687867007449433000341432798460452051178377653027340333996488374479893120382702084223130208933972037911232806035957145345803018690810226281200257435303106920918867210632717420287848592680368642576563208243933988557927674515048196429989871023158798884401153513119742009856091203625512348948477922185533133544609811792382130004642624126626056529384240147342989450384431162111587504221981529326555897246043053534085766244379401457510857999064815312765952530813731528207877768745829986238332071387559851580414283021917178531271780293977981684809010428148129436567937415225594543367835611388180270799416261773955210958163809645268289697415743249192372339208058724141838395683230206315261777425229010518890487990361551924620868328794608724582516633220104746523553087644382093082322136162647628427026704347250926603669402194665317708715695933042284386789691865929262784154484985909332501241214420234260132945000415605057976851930735966330161105462959354756815329823981448435459487858221099328080141180730107173831588766116356046620174323402135115140755659688967404330256467507283526424977844668248985895738038708278598948482748094897832893302858491691737655928188505282019825937497827613472913768105506571842630009002146772563412977200198528929783690511692788387311173530696488045307692255277401201301403214542556443037937716638355217782072056810554277925760902572958083772470943698218952800022796714689454559656701320846303179223315348946558183337040943896130500441399133847672807984391048918417410351803610172832849973479734579022741905142471218721660871684728166784096150547571669097208890031528973037965680976448677867692405567340930657182200352291844802294772810439535250427154947184111998077300309193828696534403320295732293819965591672679241643093837416222879299036609869989847204675885078369998220963117000896399064037392098753100509809956699778680634409735176701126133295081691084563407177814868184004446143969877016799737118783985462421095501052682656961456796869632844512160701330925487317665602404311082390820556560751935193132763958449175216418475063400112183968084168311134996273336365652725290062855099786234966603260164532607500372115517195834400837559847297588864347228461656259901667721799100320194173314342694964451988876333000525182003009452876796865385689143777381085496938726937197334110484000881133166097871754334489151955504314785169169980601801029271174224515655071328034334061982689764709359253037652038419513532581684094916851463872290204892677009647392231783958465126308073893901374308902225698230050607062716711207655646907191233754195740219824880700697095512168046078000887140939665376244834617050815420216707113242870584611783878155346102683738071127176360099256811994377203472257657392409550308659487708856747864194246213981825633161369500156560448392062619480413378871852179197905830280785113625280422799905459234147730261966529653302090375191178088947029262373432308546654574446251275432711096386402449646401321256948828190915995484714506093733025708569585278413472886917149306791344612988944496444393818798374425633990094937082479973276407464119367127735342039600566276289054871279393676223197122039072313697668621827263581316006590026486460657447901075553279963905907747037310893567529882398575405507440840237596019134266178935225149502689249913446201999712156334839581792364657872213195611833243050303230545058261765944934177938081727356745708834097163819895047139072605336056919633522041144554223238761979569277230085599660206553530187019150062638449288311615810142717773733278566166613292707073710338102866377853130761338309469477183523556822233130577057021349691241899585966679700686360722899969342890132791433322231172322439182025989056633094754439377377420519110511877039069296761576106325175581214772440281073143673280777272553220260194368632754271492884775880400795215037720371791417916813046770198455762314891486805583415151464275707559774260497034775818472614936314986632981021693644532582660055156364665420488539568514451321910528012821399987637862144584651219255574831973908234451906908984525482953590779525693215875386144339436062689277038034706204561737537403920031606663895652143841162737135152150129538975545678112341502601108996683743315376254674393686986773862465675528791870615870780167642631330573584668673247423879887187602768785714967506826744226920123345731711226701517903616316924926762770924330967635581802334679492480489604336899702094708031601606095511985860775152456761132288914684310878543836076963165476974170800282347793895721876044911131640151549644065316394373039198779288800413607472161961501177824178511375733635489723620266709088529232445369181494321005977357464579759163970983310614790327227344002140501452919805368445495604867155963655433217002974019152713662653201239697649143552140223905380453252321406840406474063652176270965279123678432026147055915143632378157531384604837256194724223110424887872998191742255658004664970109407717450741910505296209980169674349134458316908333407684131661986421041993936689013349982837349496690554599975313291457708136226837736316562670584977771375974857829021777523612287623606608153592706436781363774254888629558173547029511475189753987425517726933728278339547851753476766273715867227340653158786325331563685799437300574257640378277846181859588506272161065283283364162114067103059789400128816178769376620708528263539883096619745562089268803079460826414493813730863701076927327926770121410708076739457335062887250341974892759632677586841924955422552782750244552856965105144631133841735650727276484031211689563320977811408666305556918392720441282547168389323391209337829342833619548500175519533430174050403579683548490666294028572653462188761859297590193981440592054248585527552150154791671413218582371473572480485755381983788940918739185159244668388524796560955912880527791978870303526180939273971450467279001540247787945890705544091272450543171890327315404763761895827228166158866955167697167682546411623747458445241898140449374706602286289237745973135991398146178026774936615733755226464159502137256221408416386736822132391652840186418996715333849849144094226849005674540978353189020678165789455566723812063255070671106420059145639243412121712731677091155409658480339672439460314883344688840061528461087847326049088460229473956658948769644771812859839949284980101175581317610394813946605995831450232599267961528823604687920880368278608984823729204218050108212881534160097136633755975023757320556872582202137699923582776847917037224870282221018308240534855610014860010484520661780351738338582042546660903817625321781012873348658509997603070977685149891508610749479977338998397814384783857598417405391716254950944100194717462394456686237553102934186454025493497347034544357102234631163550805720485919128798026841569159322416421686466027059416477357788304446944532686698289469354633985302644555964132625168336576340622945665060680069112946156550070064059583343073153772786147204149451180403385708960107073479841230010068826417715482011948247465945070845262362876256883405392224533869334070886068231680477807927294298758949787704710685674344203149685595134870694421436910567124107214907954834459070174397925491950056609602219073284282185424108147140669965920601279357534079976250455870482115084729010353043452405245836262026333297995136556061746399542666733261217346066507267514706516849592867875123246060151709805568339103787584867315837003060318769739678607942469769252135547394041834064425529562308865598016378823239118130011287210320266456813286092616397547159537793346748509958821673238931576957375301604309528618152706310980664585424465432896825539867374183470416313674219165918065875904034032947460049367897605704072896398262193471404168571726039449255198579768530590040795422652622681171885723472147014854638744587475967616438035371983241916371407345796893132921792791663127956358146933727033204697737873681471095756571119936220289639417892702634001635981267731730850381233525687667443337999121887327840093314743707853739405884708499494675194604536892860471913873043906643440834733209981383752328179393024365924306165335636619964358611484887879579854579650323282715143834482414617853674176849533727070331964168597668760920054340304567756884501045601187371150407929994437715868789058049941880057895095822074721842188559963211741088721761653508868825175261013370445072125110505724347829060186557866123910948650391652554227456339762896403908536943514821733298394402346176780291724623546540633284628291178017969078442923484497700833065950055052740677535146626000253727687087279747303282578170400394137376446435227777373141694613550803539041828639717406397742878159704828320166879628824106542133267813389469871987341308846251978718823393613090205811379390570857463388315940805015244749574367015483170072251748938180451240383301517631260865928607346222342832093939013322497815774427685666765785520605975252589440840024282998445130380746001814264760134399682946357462099940957506360614473582862227970178231730770559231475323502123973468359838924537398863107053489321764307573002235777588232652507802318862546568806774717367182123580680984779330448614477047902348075585657834395766155994295960963326761305170227709504263324675184002712283865972440400396422979579981711253178057153573750440616339451401741658403543455858716439851816443155761652114632109587160358162442084389691546287165250455214604572507499455665538183821873673044650740724091411698579345432211244929747001809647134924344042733699505318770262406571465828769730769985531299874154019222172999361556483485629203697816697075053469982658446937701608222041249651171394510372822378411033004001725556249563357907245870123210898052733527147096488623251918185287594581784101146974881491556804222215490303218947761577333205176382019227248116833121349989414002780818755988709681033317230789807658046416033014612441174242747259365856609937083714964127007884288232348786221806116427995754451225888956149894767553097199488181534841158309633136576824973459686373425111528005827081433694619869403929929410272372708780282049423860219099935763129215704869554539249295582821966084042332495750938835814627474354660185822952520537096373378700942313091121083564461297839100165814275480519057280138707007574154332320256200509062484885944921809825892409610246568657370549286144917218898402877626692260188403716390375190642534220404282096048309084920799563509980590259276604865179750234350831328197076724804145481339563644776885352800822236494133271414320244503265250692194708680572606380549162136786668534757759866354264700935603073259287130947253731585021947478070309164259894983692171879035940119989362178486461004126668676500154981069814533315835477494242167794538893607593546506365093988207584506862230213049757293276205710824517959042601694522333711145242376953405452714568824647510935258733217493367125533025885355725199225528568348584569162849267222284213568927904230257884416966176848137316145082100111468815846489049722385022221109103528779885689918649315548330008737473089315929793441769296215103354060919335885989195930623749416707224822447644931352415386177790772265519446920491809853429664445029090624376182593969379970735799555697495177509698034737235413344940663884420444214790460386100398447559704683819510181624824631673758601984167669678368872007146630182691832432931050176058645947779287864231438668369018723903726546918486478070208491645325731938787413743199405535829784574068530340244497795197941368106297237684101504631729403867274351664292143513180540967527317752468265746948429927576460154091177008981409109351055570104633187034752192177886310265294669587967640786261021057092234462756067760681601910547819322538601070760930602805442431466239108333021795559613333639705510451646064631079319835788307312970644797172029003398756537934725603259468560788749445252555646160926112446728759727611190497377646072584217203239787745927959021163125340846592624366209750341261301336430536595932568124328102303329095952138056459789342987717657630248932279560459109720251850220645680248025153766556005340088215347097367014819498249467110900663861332745894019771594125744971838282673471435117549278516738930283530606379404595721752961928137736527407107706483012297284367542398733369539680816433175611066177574478899175819306187477465745765348705415260667438369209460433918096296740907318303284959496769664907306761420424343094902496997996222061707446964406972337407210994723771665601463075485149995758655500936521391830698001550398482993993587487412318855463864080230969690541842533900958242869873868606572302654117868307007521173459595379689597564500153750276360449591580948550334531086173083947162014470711648555512505721740367147892487863812678324855036515428708391109673958931171920622741727713572737959099481964870469614725183428048829712369521090378632067933352298304332638496835828751778010422633186746811080012756782999576261208234382655027015754032257708828277159872270511556237680349608091669992984173393143901592192411422473297660544757779880815560254439249244223542345290281798263789347386051962859339513992797384608636383640853994731340561051611852938607502452222330835094234238667754626069971458972595242634248643795671769952824088186858799680074252665048515083448860356353219403390926294637584056146670850177061296348956923494542043063077982823751509450200258984886016731130399585187983409247768570249753830199989390487691276354357595260143224915282870212138627387061403972033062152753741379982652985654211690806405066793643375453743227412275138404169112698031813087350162193368892772413149586050029218593870988283244002772337713209430320450550453201361658530007743346306099629753327921633506523619390264235306176786044745258959911245237564267980892766502636535832645566076012833775470971844608262383467583475693776356206343618576100893291034360400898328385308745937114924910296616457064287900954137342277109445280222521439846239065866885970260196813810477920605876514367523631650612778890370609417825057960740053410917955808096657350993379467116971724268174812024896787717248104525845887857742715835365830186975062022458264001653180237774162886400435522233597633468596239495616237253015766141929107224310612830104379571075274235563750685382430046084965902972105717429023920834097429766708995634887403884717509350924855988608362719933133392130939504374126053534548121465971787447655753743888688472470718798937745056336934028677299313907372560145631003941474582082860078995356555671628636679869920150922055737998893991688894169007533223080377621830918483914447781956697451329206712184166875644804647066721068468770166489649691180925035847684862225921868902224217646803455895455305935757471893144446627302774771484156254301301527361171198308838977350311670448551184166515172926951928614744793786478070735427490694813341082138931203534777099719582956400494387710617208788818370652261213200665380054559050569496774314762834880825606667915167731787433385344201914811631949590821783854393862913590736322488308942615773240751225095176087116801096423871082263371199586733864247943259065066946384576842780578697682406485659181772152182256698737270270577819099819822136309246839363760881774026910446253881905584390812713741415303675627714047962392630939786413685713522957373984716223163844204341026769026166931615683137861511619682220158115465966080703410250938136830563931580775386598429587461161323836151270485633515493104388265092110781150967985681373096160795181163117867527716384962252896951385941606881664448408693233078302323056691189152360150548812354071985121212942375280172026591149705369800862755483757505158836689066074685885744270909945966436717094643347326983752816068547779628947535518223217412523115756503278660891048979059130682935997219955207641353499596817656991628635987093881282063601017626514629824735534063241762087598098774815248399784866106128956567319468384441375765196370399592178845745682628605011417572910304711041591979913883411062355968218008940109317968096193047248623166337587521137595487761857992911865391048829277863602408866374091022799049740131117282340437175207813796702921221350659240814232560739366419540452433865082394609946171690258450814355272101137195305802036445075071301449697467479412669837325989451713074819044558207859207688718821386816417117749369621047438991380807933070440828574891275652079754824122579949838190371835543240137750138342334776864079547955535630070684400175756693639619824573624238230071085208245657552981202987177131220972033784543075473086516458940501337747124691102943482199109767590857942035992831627910335460038372346025245231062964306442233529012392691505767151328625988210891990580278823746108258839599065514138575416087248874560041433973626157481071758205007400653713925655652494733033187011049961983459715753033544649110066820235129090451700509776146795876372315890164752207817292903632989554585624664303573163192529963948825890985996849577751442964247829274085810340049761909362373096426810069639309977318053220454934655488496534442974688730686205037813769631921072159478427978544425527352032518463994870601392943147602790892460433688502612147509147977538617110896314254204502771571073823847950636293832314440145505186195946035200674884721961421962143001002666127648938881562305130441205791192767015007578296471083744095678695890700052345847296977377046021867540982972160586526086442554894177081409717081912997155832449481368992308216762802558881337686743146316770046584962727040017290322586525835463210756125089676385094914829129688873059769421596249210352877869792341741469352713205728683530296508315853576960852146552624670092407890782354525918137004733806491321193554838827167892091723739080803357342360680461457610049529134763107135205778099573400708299160780241650081284794914519363499298543958219683909950557679911148740267325048114617639561805395520510551630346887358244205822412823196431450546583607995065763231981750018006004466533634744176632754571454331738580334553681936835202912543373214988550420847007711691364816200296058646275130718762280652596421977255888705411290666182268678432146007358007487774089466198850139978090353937120080651420902795916605861709049315107710067744033254623706357876956919361371720495452212352481544316003195914034486379001077192256378428499684684171041879769730996973751175254384472275558431922988999121905670783229881472470747107348159705543049719707504612909976428582077238849099890011464348013418445685667957596751929522414782201724334223809147407034514849190796481547107039121982601656921523319147477580138547768302168019175700317137203264302339608023405432051844799104139829069920438795427429996949005507212432206035029903732668672003936893454816411167978571863932440951252658880392594988485141444211519498734225717726632604290960107903295506115317662391466436325238958320314456198696877096268131550942449477565990260378703167575610158545958130162054450794605354978725034521899030015614370194448987304641514670308200052287312141478089525449591681476992896017047109647090042023916600832254851108924658560469773476737024929593222785333739765468072049907085762580590054646532688478505004401386776526249460428531348429011220387715468965304084294495210528338536048095909712590094110799483941204546033746627753798837761295251009745949550828134987167294469450703894805221374177037322091871746838026494779910035796484406574743635186342375356851838809271571145646849035861915922788744462308746899896119257797583909857711127345789887605491894721368087707627802116541669969952797865239501337919342677010943282303043157875835371490258997964017706857143776209277749092104772162747713326165791957679751426129677165945739428724775657500080606870439758538554985755791503316408349853288068986217339131580836336418987631109716041469097352171673545427935292136094024651753964627888935976317160005535179443373315190688889861357858893528001544135976111205420279641403453112059188102324273599968747639982956301761621335290348481088310387799833752605896841341444909654384485664784815497739287428385813066701900832095793901534182053743021687228864281076231736464907055117502589484329248164426987349912627410021595852570185323222060816086167493842202250439101855615486148904104489822480874014380712754491233973663757713384526474335257250585598028673581596001894450302333036899008767312814236052969594366590980589490991784748094782880332725824624812391489361461497973938885671847539249658167345832254056441954063626771007972315645486837400708295807194836700358202523815166042189925693527028238463203129205506592197072915309512443127048448388009659605683338179031642280764847702882500826216613420260165287341221146994279136939557961943513023680808344281684164788992083966638847891040136395611792861121328567366357822604677713517970355362744017753872256620194583637885903609866212834252455147075698735504353368448719254572027185751285804647121554137556489872331370412617151722037217372255358761965092604099487385156055152242969971379326549886705836727133065863699491427064549451242229072720555231417137393476473212756885070134489884942048209663750025651977371297037098930330034970554816762930520465446727336825863383874517232885368399132507181575223168358348735654427376187366381087030877293034092300283422008903923159134072158081863637750609023826472066618863398434463277593262289711784692503081202285239830540964115624956857106490656138940153658566284415015222656222995950893883245126168540466159468939235346783393743783336513480169243806101736041104028412811766699856685277014874375311718918797693881709793783066373811909725100956892647314165415340197793999031056060448306702176004041682649182677601060997789161500389378665916178273816597438336086911618426634842052688074011343258184839967899634705841719092003008685771004302677894262141743773533238468526883635670313017057121034536966923631233890135933740018332729678267287946659008414910213742565954437895419044760499618315655734133427934529987841699158504751895946027592211869370091306734137539101309439385942086372613997912180739817099294899109114617899176513856156561701226062481798274067645526766479537504284035032627763948023893550623479458891059404941790121878891009938241283188091541785096609092151748783616350504544061049669200594543189545225046714907276895164014654260704053508003675947473214690781019081734953388392437787826103794375986959238261133376388471927877553505457076503356107897837002496631329768457947594524088729204804371698285850357780651189445562545522871465760530219817179915019296911810872010818051152554118457924230405319906497065945592223854277627491855823098293903577232310225107154651097047901388933103710869992505026352157513059483349880314192688991674092835290087578988648744461907214866319606281635563356456490482958642498099095903413230568223188037420382442688046923312184012383447277090432792171507413540950525449358039876972679395253381080717862344176406225880098211919837181159926131695450535112088468265182813907416113041444963369707197756362910998056582468461568481949690311235603311704871101840435921417614025362928295263946238626443152398569034457091716966441497036757318164368847672900667266363539576966728901542203298666962166995967431146365026973365293887267810505453480815768018003757040445345194310274042537424900808035030200469332543310065147431187313835696308909970170974693304245521727447232459318666169813468994700483752597877805063735975298068579951980176312763140673887156728811479142642506370259273958454629912810388367722764739669348785174794848538163025018918593403607897741355616705275054526400156189990423916398065316515862143270658735613837005147637224885612356996773914356262647142243338673913966541285641361615911652127836310813180705787826583572447917376177100592960298921644170095895986873040376294722881504407297592647494955002144072802669924439632455909535422193297064416961523967143533883560335397428796190909913852760047920713683706583597788204679997830722054935102225172310901515812405951917464805146542254766289535451175469659029426656485964293442017195564792810057293287643859535704511595260471462242488572012030682561278309516538820919197475414699957501071475785719732751470694968423879709365036739876868638051581664947247034982890010576257844300937742620834858293451575786245174229001939382883191881318852573685968134599897824025211087093729285584927667649703690869237247238234784151946579489730289282331791348415599468845244571256729101281376231780975719642744253499310156559256887775465700546246901600631975707916917190775636180829526873534477239237974628905750249520363520574601015056194023383907746517633417504465617792782713087522250380294783352923657915522046883809846379822292231260278889377783331390937217897066933314718080686891417148931676786441541858391259319725097842012571130689196720441467812710840630515432013519424599092536036645844449261465810316586411812895536429698344343692413156162447128539949372810780680318077622510398333595734220441842769330749788256059450108533702370449138310910158590227494199013125472264835879101451709462402315949646516497869909219562388475518139101294510975240344023977725439263404788231351023803243162793001578955212849776828309542833370993327573562399018567764059645144691094541783678423260770259958971057317867087826697622163506521062851643961198562322690234161471793860988194915260255572448247374368862160028251976592761733597424661951738795632400930754637786413699457076721183691118668332192455087265092054836366459556279263462348245619799871139534197185756258304848344623883045558798869542013112962608145522485945305999310540308181700272511615428344129132572728159872452752075317511853573091337783715969104260038275288353960862843625769374673113739433188162656224579971856387065782682931626236501076476215953077996878154278400996499718465467987604486639439358726747276064000169518834861267664396253017746533543114196064603642154038506276586483103166307790181571924911313491978737092633817813371562655897102845970635262495607384004336458260931522603585086465470022408126518798455577606297284118612170693277623070462296889198954905508051496427040490093725561006387081603152172049757099996299827632254267434341406025103728429820745658287381757348583857702938927506194576403274125907737906404144280172706856079595689215232235989346861630272632175576948211536742217760339997380841070288030156580458704962336242670951089805039998489423623239635716674275985379053295328464339699862646104499462956119887366539783312925140044633202133367074826885221637418224248002933731615611325858456289336689801745767521796255722327322567538129701469670297144809913316904508371556521716360735729599328583163670441515722454211304575719864234064158854875428746318372638280044594840967001150273960276057832782259764251906626394372908032947984749176095070138054084325971532275442956694102002643360506617406461883287039366951035781611397361849839592607775291393711941245849502599200891688390606763769307547139214313259870672400557725959084777737803277017260285634733052571598214645864530002134255892468829284770223206661909175379514972194210737539040225947666382738400809415535139802688708683217322776149612523769896625585131911617682650744259543940537165452717228277111299100400402603318414678766492730408185800654516428210232524789095224538036296022185973405808711876993922678637980376339700031540009180249258902421856461017004796182239536171369247880616035937187574484044767170753120582896811646459918350879310333563458780648015783680685395505709042527330733366022951057799029427035883865535746953930190046717152395329984366093208543198816179675837761688385537149632937145472824214336269015423506943137933109620079265632910930208770545610282409779919843195493962038507118802776932572575056888787586163989985629030871492025068983476181945615710846327719020120210136642392396037808716774575338288270742742947347807151408406179030162535025986967775069579871629723026629849110769575401718932751861821054701484690870117580122266937204056217720928364775964550153975986689023776546925295572278820136155750192651717915709504416799217541077106714487064110175943167599589252018414706197470552053895092632951068143608582576772434734256843252604921344073388079608185711585571346967172993658819750030410613508573560980614974967332094382471197742299948161975114469901571269913607192549408987027061675666807997466020073843032657958520550306691611740700426274310284941104659951495109752114260506995686195841484383685558588393308887408405579236108608820568170782087301530381298779806539786710284060762990086373387373876921212845182739934797511616028363479741446933059823711245334949866538104359091749637254581221234674943659972916216739423204764296671957671886821271237432499345829393728918790115767247820897168028743182836866076100855353581782717596923074394093185128673622868910228459137211593897704189651644821415382245289750749023026394147219595948789733945485500617465510011033833887842380892427543810502788353118712354164517360647298720360556979521763500727125812739720812041438389451452532614661448038700091606733308525990746455498831041707025727624695759003867519077199274039470507283488996465854489573186895049670310797816707447117109240614121727041575933200566992844251428866620935114852218078552094533945543333797443968919563327705536237395094384393333642467602320081050089382274502650478512189506951123691730181194708842730664743754194751075020847194922451942048498779866815474375822457824755489242705598524988863157459322537554119729611539750923888104485257203328947645853191773614117021826265488700470794718653856245473735457183709840916998472143745018508926789998605777740639734564380366655882641207789186613902401925964895421764575783023902509559379146737963960711791010462156666445210723869000273578655263072485733397170912035888778935685696177795306251006206062216062880411166138528968595100114321477629462926691066250016740338820162118447533338079870940314187324893557095946528400474968448084779951670485364285674009435990266350316197536867860795553895468431384241421416724972837154083820597650874578572169511911574573323349713807888968836691798718638577606199536945507479897568600341333943557071795097062989246238650590615158610463109444274315265067476108298870712115778809070739183357403606549216872907525656938749811741137764705555492339473825995381882466868904625596848047477637551559348610502225440927626565952308147692495668894496964170361625395500524716096565179509665987836536132595894412027527158995129755295343241585610016046382718329741116140652782434610527514429733957321574331066472077437534290407434709986499797232269065499098752099652067584109584297369001528044546976324187279047564944470952952505385357088749342233961404334703415026951964297052726279078752866295235331567164641667879018307032477927946895310028987579389248305349117482912312330193665615049410758859529744227007589197403977185567928239129207715779126760577871210276132156292836647722134309993925906163653382709861748684886625338837741781803290901427366149429647425154559707028127063272354730819819269728474732649609917178556314337127482329968733655793788822781839455202314626804793028127471326881529181641391890426640009340039717511181416706535664883437685076807372173235238442764875610963967153677237370110557602983232397960419290887797077045896975193764715720907032229287286568938433923192642065524474586285546650127731775353832548021628961325888414726092215625019797024754796105848418663341320574385106305088670336503974795046455182949299816045104160281996485693236801783190172328009588782353545417953647678398950748640541685991956375273607517053854627353433771415436929923106258362285704256734042887581208531254977912101221352793522815410593953209820355615914435577074010592107890616340879004563242760527514012566368165009826259464859426617439702523561713197563086067554845464044624611026249513345328583215069217786518428901738427457879655202528341212177004458388431297633833929448774746239333100400630559707645569073643293472761635304072478606416682124729517487554428819005137332844489711637256507001369790758610709989358602340312239069706371475329715312504437202948031311287527173183113458989070179736893876433240884039001379931439489099705284028651616211311737084194579847331942445475095845795241640541155529841976895524163209884098547845559685367051588708456132986315458012982401220315812541677988858793289198000687618260604288290485278212901419792895893674523332550343906891539794981891458420620303600568847215091761986092871318159542495797976485294952416988991421257041179301832151006374683755871967915099646788349587996207863211683130610675066401220568998682231751109028731686876078084423474429584288027838551598149990881494418084101144094857664231779607091145285519314113431878589930250368185908026238050130582435682045731635492547842238291270296052038750507197421973881019423501331192781763992099191449839653656262714565241816567850559947684008373768392584671089404801092000245846441314419063581294707745390855555593163699831168162661413962832032779752008947221006156761106154397528901467831287475124901330471761307284204005489767073264437979634251767344603792669909185404328807660912016487229062230842041471304051197181276476669124282561361542418094499848196235470605686275308944942458945965124452063397641660716524108533878891813988946952695470644670459205954057581208307587918414696428007382435985235536096639222590670431574917274362506045460388379687024727424603447847635827982256813810019028267792756942409661869581071753647002131852518051986231802342763130496380100619615781631908681862542475866513974557293775499900891100413838833872757576065229731017340329922211786034246938020273506004666752215033106124373502114080017339791191711168404200031519987234172735162256449969505846376502072024917595963251319193209884925419080254107512834640251575902713759031690050921001844482941173108242291576627498679900813239891382343413725537190366014206761690749251638520760044370941751593216220176078554589042440964573843909994037514489923115476675210190914444439504976183078377520455337816251659706289442466046167348811008526387758287189161679516070093098346915460681702242146729419829578067901736493170949662955434584846250520643317932967261487673914914987377400581203725565749297104851563462728619306814338595130788902858350809779272885001006003780360190589741539175343721337778092762087307497889772441411299927071809600301328469655713241549806078736860436800290945163382763229814731783508624861784580610055880145927331814697689293573259768678154807671916368056061609899338774916069402899181433515751515205277436500046102469427731719678589623417510827945048707772480245404703326948295083225809267124358143931178027884078543118620690014316204989078455589546852410138869477855686401645709121895091361725971984244093227162875860760441936363326277868894310103472414767802373759073104739259649596652500656665222570638968516436192587790721429408498230016838234732891442790902410255270803940507873763123570961135646009840453754480233811367462757844993155570139504467833879265801876068513213786566119050182470869396283476187330350388152320778360886285162919290831519727344152579012317798293199594747802032176805157872245142344855094073667675059885282591305122457567093811992578543847748760923725545830572024075647022636128307645837297255727653237772190849620692812903847733277972403683095214922936930500047908617621251037810231307186278388205599532908568910588218912087397098045159262920376255402722746005088070985229554823588943423482618729362962603005747031382490506188236431821153574418051768441694079932064607671060963899450267563434139138029391018037753169155789899679686591564101603222831285874015865720363477974059720389755776075825657808372513325336979826420015242489799247736846266869847374587479403493613425726144819770654271762706018805975801203998491673344786218816139003264127023234060282289935224090565320781869694605161445465068427324489863373770782097849314209275541975280102181511079103005442020357482441438737569325820831174442512914530485766821094057061742955528840015918679835037527146124959087206725370023824030276583181039767079660021961008660392516035855904135815609581463070557173875195294560030665731664027495752133002132457273688091006284371472575066098037060488939500629330643928459370619707563049208588982484269342472956729254000588735432314043544736306437602957343289783256854161872804288268776475364544723222854479178705205105221960031975239582189643537276087071898548662838813436330665486131290978845660466041007589543633262250549851632797202770830631539713622539959082416116309112208349466060231181638779768806941187986132081909646855504118951538627287380220317004353518658695522414989907986444148045212930798893520738999600421077872855506493033642653357853901489265376204330288194877221765648384944700460414231277634228168784317970486993739206233983992634541011077882043936984417833521074373287087234562927513363926122933512888386052189293041886540955170147680479138188715212990369803071379016030247841612773038012559125672599507002169388294442543364275048817130766319961559106645533210711282324120512461755174038329104477180947173726229186466483576471752288290305683583710709751918538436281371581063769121630664735637249154261960005510313356646920196692836827975749011553675233663302535583133598061137965104286381161219490261230015306744469608946313367440757330199552621404470792383448378189348123739725607577008786570158516933374481926219220538334406215572107219978349689768841719472539885500514959466963911014514782015300043959991579034733681089435546275634173953825116491858481405028081779381288772309363207233512181587639646194265904178166929905564027311207423690515325714303009762223989215889260811726867433927958398387864941145964597438475057843224423967712400392117576767221895645743454803668378794857976336990239632519010798877303762130273578657668389286436056245629739827548112999736057713905057016262843634065202551356983936451918188845163229129083370905180257180445167950896927484429107856896339899635538534541918282815781784911823277680056344486180262557681113316446664953107475316736967144535474751525861348426429570950274904374327502566831688850677400608903173613083874786258839673051359662197898641212983525009547482123773083779897288159512411480153591598059234852769205052461046402845920194992871640999711722451004590082108043480482665199369446884505394976704816147853974738255376015267360259848684777637879508610170464216463249183751488157634299598390612479120828217039321880796997828739767888822893848874884275347652690325569495537627950202060823249142168641278528904001017796447170153279911222825411182255827583119935913191275973118613837661220169692826272208991215767436409793112724851037402926511579524056289130188158012369817402150886729722818026295985183891070083109379788206025044664960004073757230559606497124634930465005476506966945811411754728196296773785156976733350630600280504091664009890507216933845572205574205653358440334173888201497522634197687038658287167201707378734734390896763443332396257484870298296375478109754530790730147649022525557481388209447913035408927064539879387275155457499715265563789103791715805511053872116401882780009183005073111130993777206665789340883471040092843108681149517929289682013819416387957969656936613804682684414145637494317582249043338274658909130626870946041812928151513369173189153286218248302549998040741016164493628570464658075947679288762342313868317439638084047392235895112336679194935756364009032622806182301197566857115464411399001410740184799527315290134287870881315639941551196144616023881600326979570849912577657465457890466710817570462183096451040599662501441575263226186167433015269050266278786425552440755131200917552955795057208469309840714415429330778708356323058124947933840588746612901704270337095754395799408112321511456739729858429684659410161971587866185068394949571343341063373745015040857481943065869007089064788263669823933660796733211642805788521308727324992281717351288141241208985525525248430987572620013911383120068135861382301784276842355362717405119334458214140777233572440126429630613125207540181548217999960715059272100066149311558604912189519408847006817635202024064479571316075817825710678637354731671346598753618293401014189050452370675451487025395079685542306332326279596743118625098723767976892024032207857964581608212924807253598334780046487645618722212762369727321552190101161625926246351898092781140398476892636255977246127310284383706375703586079294556994195875476895174605521529526885663988276247516830260719132629429823185703642546246416546660422410124658655713961794756203846030270806733037625750599912935638323958426167138857159785310409314906338241929970907825478650223175873527632176187045026419870428661203471245099953947133367261098208846387151510464554636532704259372608724005229865081094745584353063418798033632674993141067732946413799254427381336872455407467703027194881388095977080352251762714907635386958520604742393815315817799500755627231264012920937891978008667433690928506350357876998121422110085091340755382823598214787256794127590904142762293743442882649742277791007637462454355463672531824976743752653772003748015339007863851147472687215774882097260714940713190077594551945280127980922662663374740474742666065457353012394683633472136478179348588658229044184663198768146758434088986964897028852431104904645289182058554764265611562279605372359945742676316390328870999732619223946241996142008386200603445625150363529540217796672771112473565060304754781523865054849267495667182085132767654888322922314501749360138500184455662686715113938805797704799932820071296881698467360478207014974623982013368364278519438151669653036778090714167817896172335259639965941463289587849730694687708374439847212494923821542516908089998871720192643669467463439042118103895374593129924350342149714652081211327303755758498796685960987318967438653073313036021126685529627002708274715944770991954496604691086207077253011790103778570694728500988031051258137622959232962147887973518254333911383237185449331698769058557476906996162206668534655632096653352969700402815496901234377735860273430901690663760678693268459165398373461059419302459214596375178165646846986514852614702790400602460173274984361366769267984804829363200779033502034852436996089132119547156921201434817595803885696158007855055067627392453261924983963817426696083003302774892105560670163775292242334726075330028925402583889181172626768924055355937234313491974561937720381303753008207017979883760492422303102723326483087278067206792970264091938837833037353701658377825654683916693815390577890375314290532944513718442551142254213862901827543003897033206694175191854368060584196622093307998777131585111623145017311230619107485499428354069049689672134451251821705388211753650451060777176533576295759182691623680427152550932354274298503883918326556233375440948882947865530820768220376204133836236461640750245640704957668144455431479827628036746891961285299623464093022168407811643685248764642381534129687195063170875836118172826508457884251932639058322865739364630811660104073081356309932187422739958791924047263161844662695416675418315776394074955546702197305826138756148344864549497860924374578271212791115534610165997149928010596912904185479901143856818132288653864687430079708981483965045599401730636526203378997328164413017325083404559769855901852509624587929705505179929234549420994330713762304619265163889252348842163813330821764420629892325691679418782421430130679930009074255150459340479435730886217138911630411686167214453584751284730620171221852844089719886575338998786685426097376538226217606817388566357840935460442676798224019714222972371670903721086088016301446684209273729267707003351274023547162238958058128016709182385782866374734774012300172881091358559185652050376718924136680755580062315228236695997521029129189386191909705486854013199640563290366715447716490282464052367420982204556524147045910363716233859236934514862238602068418010426676128243832574594499304479963371991759844014213880064440717191742194463900088365837074641002044509105672970931994105512219214177409808317759271632028037603745492529673534558060742009973064294822077319506211147911145735935260244635066995033408435549988749886706851273370867911573394812751057267344924383662378270775871652589757645849747862878465769167266546303728636985100956977352346721292740273217752902328458397809740914363102154456105280706463981226098436813173110360784439571900565610951007715681278296472798045926038821716801423957379527057294921286307344195757277310067592919239902537173294685240282854327456621570833325567094237190993628170912318200059000486672082600413767942855630633126050332119049103531377470539228358892949903320113877694373327904505648643287397541744399907800448481028712296625730247297535734299458167954362964540320623464058316487385135801890844818090085903770376473984847002273143311383653617190595752572912726861731005922779279558299928850545208617317181339154438578244080981597405220735735818172581729951435018007763610836723849634227826633185843465902821473445561739010768930263098870003820091178480409822674272282951494259313727570718628509410726322454115197916691184916674924500499880042306512747768459251954981302020625958486029450441582054417987903253357357986540502126683500739550184250289456557701045591001912252727464377854132577050210593364723816715884255019345934796053843653001521328310818539373222097998652272638556361032763979352890903521370782613970782146505567267551137628966328354165661233722118721317489008456870793925086522830352115308151026153730887895223103448085418960932537571001263353982357822027053544548090254434819300042328254087887031137225953604136846222176838506376698468097319307267871800843233540189305275220323010242035146730540767204200038857567375953834638339212136090552587321642083255405910138540044786032641003235037997046824621862766495598536115258507561741768793197833981140897678265357120373567766138457750448007825513398045122079341389941767224078975160664063511347078823456066822799942739114597821363274309427689214425457177756567536914637965273286327419145357317769532253402808569818470740446028992650482781308756303308159905052915255409181926719197895742004488667980005146994206178792122356596111032394020202073422551154635421307535477755980427151341426919180998830924609835341493601111274983454588689252998655844513516912085224573529192635471330173995422195040841598490625436515337869759318231925033175920397412588961649014796710081536673107098257529712101234105124645416912065555492013188727503724899117052130727534859770195194062148176113008235328931985226664986875647303069118057767827308405763204130331269586082945267123278084916671575941737549713241414287178327709061576489063942718086890674584578312442198383663423778414931457386387031804202589370754006919178893760795511687944506102877416899861471277683192645686932997948326005859268762464410801653082171986599086247320162874933422257266399712129678646198347149822064511024530787708907958504822551274657698271800270444503331192960547131465762139908667473756583310859387458387696728161614679917687186719071640551042555507765742574567535421019570503867295122913810407015246265486914135660805761386422361314714103576987332783463958029234372178101571529353561774751834640180713909941623390107638002742741776270598724846897522911060032364030607760602701951995228568372433205129907629536949148780694533455173347386182118236206358176499991768712264358178493890971936484026306838531718232309658656488392304104150638103871761710041726535945063065217714747614161583683604065910346363278976139249398956653334745812559832867787878524440453285139943870739015074120759420828217503648815228590369332377412281472262575076497181943348927646381213992069077270130356078452182056600428120211032348538613237424831645890448792528081987231429904027628300780920561567937932643512802912612272030511800943576787428168965899931159565161048572367636431359946561535667500880092610719685193349470970059306521202069048728374744024853307728229185938149862064563519348930225761627047369928022838396943694405127830804527210189272779679828900319305936868990786790153307546721019889340699819383794690327851597695463736931173872796917066577770311289051428340307838163005577962880337964991398745812284165594243459956600449344436487404287560334291790103506136532479868319506990741203131149450892461214993859320899633268187441810344506457901155168878374795212086703898819624028187139558821424566929041521887395231979650057527891823395495068808960115633010019754155188194607769459176809417727319427720751847593741472653071112815342343601409604023684165914377632234545042736099520159297211836246174107348444591790296666291540200296159575142193272599737032533149444590088080236398485469739834603018304776317616394284669962864112445599989990736332726742557188477300717490014795367462559325711237353109448551661835253148443976985258096967722656877770969329010913735803907480463721569722153995911195744386808790997730425886520989413868503100525387466619259112917634826125898546648880274201723132541683700963426082746686224250113531382133907869493655650786940549203069062351978105899731071813663799519576673974452691541113841946895418231453471037425502909466300672155554811335806067190577884975114789331265961260462900966260051673090124345988700730422745805053765805485397956630267375778330627833690995862244003994150915877250968312814137575468858975132769152006933915689001813921930444669771394170056687689440222245336681513842576781623156035901600456386869439343383571008093997540719144621685478561485196077347596452086063390230417717445669445127017967987601504759159337784136837013289913652963692008953865786592556690433413937443216421843377009718427013266108790570098174923538677966249154767159631242815273178604854118678643925168371564212333402435661260391102737379080540851932348962365729212187440332320804642797793048705776187209242682085026400721423039794685049165738748234974511208785381818542004167706815071824860312474784069161300440439972878493753201565717934164858917888054017295344586130193178739797946502543904697834736809483677618003773490939018190401187488054589907203783372069816818734132555838899144135441757343825083324532670183467596261541804420772062691457590036437379566842592328717346096290889661151447649505783096578021274085270588144693650723082089879673368387242601469116480018487404368230247922921673249568409471530485852885235709739658707147423979831322010184043430197676690263178982211463558306935303591399691386628982441246323781959063772108641897304751124327798048207674226512429683104389981914063769678245215480612182361228181111360039556665011156966415503673540980200715076756578674120097845265614114197349725543738199801690988019113384992331263373914863812983748443636498870541920218743199829968885536708040716039611615465136610141505610688149515200853216275213213570123302474014534907071044460675754342420671596768243560551016801264868397749558400928998948392961993864942230974092466005001658683167236766224455515698932090554752532588472298627630934310750643322629834504091765403772423035160390073347018563259048785088586868424594202745662106104489726385666601651283243887174419117639638976657316582677449336990862336630533644676000915711845453396392351308384866123146413423764678518668415088678871925448270183210066554358601154565803977034736744143425723600750248449110561134768804990642891035402590638892489074234920068147645635719737886089171741365705161077890191764357512035142358962271011412533755021181298400472095064993995713082102416712793742116332168465322726734729813540370458762848153727682735969784449851882496787396789779155601463679547760791162270679621145990571657721862338612979890515915660345512384221391184586766352216315905210267424567785471681641900133584433853726409746433800863172464106821501485136996311608021501536443744247105243232683856294330158499249516807666144228420352953963122143547249573726425649827118354064048923804425581198190779881960047893819203146318037330765018755997480229780169851401496460505699973491018504219250032474972470935502109528145860952773363765443997163923666075044849433173372478927906515878293142440968080269667185895467973176018115580304368750131826988507780865630692479603429159970870727653489845136792713728696431518552454842274885723238757849670837136239651105429518019887228534926302466264706765967234033681297160502097957194529216607250811815862705763791703086181088918795197930325395625449105126050205569551275878951445776973388955430037844743245908549043427288059216159111154805406568754290853979385807209572705951487425904905192234105794112002314642676906625275889811561293696534369930284451934042890534583379996299649288318005350517836162720935492414507434979425817765868662050855154031407727141243305216997872708244535865675120925504272258921174811211892908874853876885060756800255157774600220782936794091083193948225140233396192452976636279353272442664192063323291351602694151938589620420313194293100009968481451232653614845923878751572412501858893455838913903228269305728981422166336605786435143676917088437378196319343713869526498128766856900377417411438268251051945337348429403134951451471559520923016050290420794839460577429963472270111787012130474375115831859468389299831369825351054880140396807645444669067441999062350140180937417437493172869502710545548801832637415385028586644854153782909052549348920134714086484018805900124830845032594484678261871180470746512756048193889591406630708180935201110323317564627219479146239467444714519722256519970032395524005154520693861100774498266076471079758253160392168198203015247559047778894819064856610256994016243118292818505211656892425895233599347022359892450998797415141341005542826970571001659072336945864409666264487949359513648811485795527404842058420517690853970284269777058782702534955244749535336066067260921362449322422927955202420652968964934344192182376108068141369072014466219971325584405333534886076903614911142803491933223357897927514873732478725367187859512246009055255815436436788562707255983047322489797192100338926832904134266734547138586149774437277572576133520276240633126299264832507695875584036635852759047146177368654870528437524715283554492244092936123504647834919222943982673797312781906930810307093698009910686918990169200460606329900543148928986002271692407095387450725892732315384548101772898626792240603085140407503730672415979819675817783847813382541035697326565687744509824157139210208912802419036924912935614009005563885267761017228905306587560159921372950332169730008081466654777650709950665416884701144098309844284691120740974351006570952913752790713681751234796069549047127307671191016053840629126559447897712740973288342690621568999519398442598592568298510007834776269573859830465840745086726492815701827431473417479847609253899770278171185912097091137239050444818803241191035719614956695795993622106677834297316642390511966287499377083242137728030767707356461709615576335065598292321779868511712604781949398979762429702557344140114990963170337616383333732123697400679654770479757757526292068239016615359584766060030202327667581930552688644030451508525201275888797765919488160880576824734543334146656925798273357017693636980539338267100947958165899754284840307178508866321181589501236305406223380607225080493970991684916909044446999561875612876590571584316100777123308330273870276626542784325807407731794604204597693435157261127345523742304921655397488841094383052327994080233431591965831398280879443636332562633670754621881001004614948905036724892554109484988983027967741648782651221023741602351583752927767923455323166555295518293343832191719126958229611602914530691573368257496462820795101933381073060926449813045283120842257896847601573327442291607246321912285350691513040854662007818834116732129698086478293664269007196443036952047475394681784784695400291396796677323629051432542007398942461519635211795855850915666257906715932970720309278136614190573042216875247864051618880145188321611465286336539016730360436765424696538906888672628650226862778713130485648068640667148378616116366124066407860913400309669984752829693922641587304312793457734622350960020169250326953104698206710258431789663272419757410419108772643253918816240510015445177029084939931358448221201520753653895766403449873738490001200353559687972765817566896336812532491508907529173733899780285872005706052068905243312923719479871397072176065426411799555317116997005849239808236743254072454603527910512026492568479678634868464417566794394383658346957513197652126208705150339933326597100876900456756641103006888827047526280891758627895932111299503387195003523579969423335474585938793932191158330367627928172524607278401650820348857528138446105641699210635348416441185117604995842690492409751111404845778300574520809666301425815891504531836098845006539693197803005314040650992742973335433466291439689822691787021568116594726831706047245298403182071900955362830146456999362229582261109005151283637960759087929549077127904055520746817071382506036887340741688500161431555730820183832823145576958963098629683567839598714261248033291550670442569911750620964333984941041985988832679252121831163748331591556495485439131089854049767080662565550687701599211674796208517556741892183011367957763322586871280787883006188071251024149622576429348986837168205814943135668989847169601431608770774041606035023054134964021206189902859635798673427981397094217765497845778447458635097992183800101228567218346128164988571016585036353821750649515782994735397192122178070222078365350230823715973984090986622263798354879962004822890842142971711241029103187476985044304976840174475930490964249306377495292985478229830130444273483773652983494392325742808889420439777172630259476440538619049143312222813308957976538308306717951149613753207259635539879339684843091951457925233577832914111083991364881853668316875645200550850037835933617843001300946805091267065877514201727775925455301427448269888847671550261058255593678281467593774184957657808404084019814439490544880840885676938183495056607208115278018154088741750322294724125063712927602153424293177988759994181523641329768715828206672702298657490477555925765033242828795289321287943157825779252293734676575852933142844040150020027847742976155649091292497948134282531494333055351538735418644789194137953103935959532576270751913937554994816416468929106184414855912251016871115711773763305458775082432198574315510720742124420636453588392560768529848733935304777786554369940884886754534307481148344851298238653634362724233309063959283865929141910551425743654252300533034761279703805717677730267433225664310747242369909407105662156946131545960303479127539866340931163567559803979596134518447302820738294593267054681192323872596855397687833658812334984561772719101818670101492566325514541381928108279290397875709920925002451194353845394457382425939542420430665452080020066836538743905997551554179862762472352449899045593870999251891452987761333150393301920192605239933274881252095366122338825992961595155517329462524131381176540992888473969750838068920944636027953002781964469779975807084922109655107176152506407587417345740539726283645310255649303158406106024404269392398835265553969904021448741885379314190229406117924469065528656464710186952819326516219659631421910369463684958006004047008816946743860159899237874843375428670646169352760315290491857169987628382686669550352873882757653737532794958597031354076514200656668736643713135323305586587817733587989564579968463402380819559853194702225706543460929584632406085045679939781316089668106795359588601328729169680380500007220966593112464764234488368266324310773604786614533165631155112585019225959761574083858004054384240422643563191254626563800683630146217983932237576454343155307373024289694629558329049809895386261471516684790992337997793693505685064304799411067370420270981479280556333610797274677607629064522017518519588439102220749994876258198411929832281917702378930098401648770327814483033068954289876439877787052711038652106527050914783734951902083545513670352779792956085993067888223748852383960921923812133781818906390790005685904293498751670324316307005657398818355284093721673971331704035746282837398972452206392566506796880861671206548193547406332153413653766551681398828590524237112924269669816945456507949471731220378885239473048037750304973657345666453552461087037479757201526828949561504560417024240334640099455812203392037307199369873644140772087834455046135763200718939876138776059492661437632789867007839873039820360558401254081144815363846942419779042149795883662300011499883119616308987909395023964787684103583475896281966019192378851279131204129597160198328802479556120793822181329276518743256589348326485228266182791689502469921412722763490171173455347291724366574123921767525437815379378817305596836553440519801691385362240516775357861357754877159550979738403055354882053226944077012713305516077398993044048548182448277069761359130122117004541633635086516297977581083922866063538964265530082710306069093601718822585824237867260463609700705958428060957642385476085203976257254651917408535489581504652767647321343065846722386473601006167075057858382358317740686534389920848983370911907102776757952995718156133992642362955471005718620003807182321991409114439335040030861406709605484344658721106101823913852265271653448226895601816031114503474429349179847625786841824070364743211002039025137505004323599558848287141084282509001628566307016814751155181662848071301914792759740780268745174756343995034866311787755824239849094704068879325685391259881637181664124987474358182856439564104642393603005477039483700004138344685966549758054096070888588653727435487616821625299300547015724726740000159096865086622505977524593483507558012243783046294491680500888691456447318553111482729705864884760221323514544851453963895344064297855096073113676183671271251694034031289691750779766855090840056234723736329466544117142796062318954669373825828509747717638708011608430900227476208598417974083719656954751152494531928774738889193769267145977669821919300614395610979211319720332609827251738682739432288932895966925595474506706057790537027590746730533741237354914442034250929676373285147225000074791693107260217581511525232335451055149916066030413639358347335077674755728800539449869020203507647056923671512900810032564979480561521666124504907067226357173722832723166708721595886098888159386196440282732397168158263691993876186943137888780656168067770973835932988739656138349108505639085685886764256556599554530391925940223262241981120949596652349332087975274607653551990724478713909925978700365469538489259254054882499003811120855440490956454521085276379343217226040641702054620400283285142319540144136660359355544913110568992078546263651257432799688718401045541136354934556901568725649053730705300905019603324135197227922155951638228422221929810978539667505304819688049374700242143938698772803512082902033236962447859597195903964312721760060946144673910502373764549485597454915707852719140656614822955013953412939166930231051331280159339251832206787003240756210888421142973856043204328622412840122751589614831883563689117219017343666765284770721841768511789526714911410606839233463521575954412878092766430172885118900472510207186815651703448847509811120411181103226084886736736214229179653352209649460261843552732640036063657664909590582635019819613068369083065809152131638848507122919793437266903373257239579004222241916463901078615079789661636678122373615729082010599860258258980092877205578719598390240877979829994618061542579537101269090874197222197647899851637048188548125786707278340505610117034295137518178395652435471336842160677915217075498886582572628146591552316592182471798348300195306730603897219118237618064384911453186334472112312689930893788678005667524207391563222917676628347829885774986421808340281697366313888422459308123590825050842128917945380257808619739106096125209858907263494784867814746939203571425508838829626305096601001553307314792289182244292168783194190570697746637746572661869330582281476892380338029778712054496361033529542290458021428650658413085451979340539390551065676519280244448384402978283866382325029969801903166793919629792017491932966901773873493930115861404919910395236964965101774853602893344503107282513607237239945891180433061708234243242420305187544482495109726712764656768850024039469048866614987872004189489046305809119440889565910407101759180076264341055724229920464925495966313996525223412271577843262033597885983872249787085756186069914825565793435941899652339583788884518077188321048933483282852829976555643850769255021505968861575071800143970609556987305363487988416056005878599211075606718571696870874461933988293899387862348126767880934128304676102732245435732765658707483252078199770985781999674763705770349258592415539418103372056576256142265578323559474786549209849736899777777437904785204428857836228681536952729043526592786846404015901041877397923842258671249280026156073488633827117716823514310810674440430161646749179008221053828245562943056055304114902388410305357481338854987560844421167111640300373603667551144001446913676167565462796721789221066474332676204494832055782963090282721634377589512488704003266148165064187188075250724921938622770834903346236579428010022591139356787940443782994971769550867914320993013776290471799552988165950373586048651081491284702099665704726076289201806099770958460340563657848835713383127986976200984259406122443296605368928409841728214704987247579423701105566770789686295164198029743434555008733489638329342698292870650282003169636572360781298756121270903733647307361362092737113023534219018681785868913949394518106771549139322126390643565550618503946183945221982183154972274433665335059567726640538258988564006039397594969957193708799416274388390869023072619490359276515193580912930970154597856707781974637338871483771057001138030582114728146463830806283141144028868385129223920870491724764271560061222935449951611925457809855032332087313826977900141496550330920407102715108519488705521239912527972462112502008104122247037518338367882873506733369848891294481788209498405169316399402513767776230555357187208258051471746692078968281347283983049819468975559631377806587886532214805407822783998973263295060175813220738450806033482852199904816029849379763067315736225728810609826971291673157736984835038718664307957522903815325658772203405601210316651528611008504767075396272988550849366249863156300158594183871682275594456723691301192729156811682374683103941254194896620552631519180181352276275147297678118050063300173562093658139967916444498615381351210528705813975081899038147618391320233014893361141083414321197995836973289115037889529293600999346593273033664692367912618045861284087151150704549275326034051766311847576184194174090604508837095787059205085127802279157158993790429787823925813819052388350796386775956404497471615485484304048646964604230264399582956708081068840007886945676912617939194047483228258308433280527468697879266692149217180068895010332469366550780658189708534639125348891840368698018418282710575782555758942912797929756861342095304098688872258965714495389535363936494453148967806670264622508464638044555717652258690175979837888370528365038335525615895293901481869414350208663988992691278480266755671413779040077729125855431543697273221127702002395603117967533515753830762673148582581875494967750375272035966555974933339862550088720933035774551719462444621288333769029331134393855391048532292830116687798059569095475931301338182416896028917582441218895921581494815014086826924205636051126297646244460676914710895990679037122205443576556157394938144348411365407191880731912778344989214882751441263450717084899837840419902764336033397735255345088419945609890756333101820765551824459036655320012508630463624617140263389028218024298189623419495596467303395235102983354739855109505553382182156830717401133628124042625235239001222098028290344163090271268154661640509283621181401583183726479709614711537562122533812249776590854004887327588553545870035301843815496828755303407722370754255888033165573213666052750470809646054314532753721302283824900884706725476684055148859547728825825699150859628496390918516882649884346150039127176216996074896924830465553195086632986350654723968443725338658846043700478661267079087223991732409442214630838574088955670190608257678932184156889203856526351729059242063275677497408456231128451916735498459013130752195622437223825831232107293608744489706623515416905123595053710783237167295020301575984367142827083697158941169022708140219680677379726169857735434687947134277607532019651606873514896530543649793126864469702907721376035449953685419599598406602211674872960949176293736342571354545882138876367383521456078931180743086686736279667258962110917528112908622903387583370774517616774837557490758705742747893356994747179627237843165656029285354850166123163975609070733685936655470630070926239883047170368139390904942441552485064819113112630990800308509602344165571062136600613601369550708803424429907986503721094402821192374043601569591761672854885580360864924636502409561777092567776673132281664207037917217115583967466898491944769903412580593852105788794463430596042118933676784401098256497708788196781555603939599102199596466552835153426915813879516945036250466423089322715556523582636042474735229051602670609560926002774656826058882501993718296351936340105106447699200202421920867478506703612527504821899234619950602653761513250139460811691909727969618896004849152336481384622463507299376842453720072345419717593213340805175529799736449185331158806338126258710560517159529460111852445256683933691725487643311431965054345770093040067740514352149431555625630578263678026435752530629691018712263551340494845505095733839579095248776454549349167823145614707741492880255544247229706637998470933132799562433324942578289690744157586960948120392896256012241078137002873876568502234867199710296953624451292841467352504687871756356411399633910332176589772514900714718055882348239386225671409025343843547653248599251359393739530477760570306420231701872272208188551057649286621541170593702248037073066970626702719286060441997588252335758845861474682328237575638041711028643285592363322917792901504100258326782040370923278486361435278562207193832370865016323241187809210179247442618284661745809590325810220082050542843232817415211335204718902994256225201700902608730677680064240548513022050383626355546877234907693662774403574561593357689344344550778116371800726530061007565415597542102692646421939189043706702071458281432762181525568135682255181390447562733765552783790119310436266893361001336478444524369366250066114446980382576437791072008244502498029201302185124497522308886173993982962283122004011001006809566523471597757082717212829279661034171044002437895398510026083883158949928894444135867598512417753894083118569469769164735604796869882782313429914243413234609894576865242151359576567516475014288482685123712509679966217596568122922160451327398909967816442035193194562898251251044506310427554967775936434630732532495059628948048866284886527260009486722689809103808414792535441199175518110332384475394500297365193929217294257916238067585281402995678600420079255210952612818537817447897345843235071144518101575619469232905240381513687322058893751625383394385435063092522371434348853541973952410888186368602197727736001226278894345077416302063634363843667323665885376446212569260053688305891109809873266641228980877569570352506384723322290714683639811623644717702336446782260401362592544514926858255702666682230577314573145916019841654779214583078247286632778804252508250876113142945879272259839396831520981808926032605559450580467111366141459263896898929515744873416531390282847764221193257168043564670270618356047219933010445805512954924745361380353645495293882317520555162927244995940843110485861699401905538497565270685090505149823945864361501551519913279841104719861651426934435754395421104747484672468875008480773515311221675753312180518055439710836791579989011090096545974777334182078489392897186034310004533785851173543127507124022773986229709213850512858194576605676441980288901273725546710573498750919742123388146993802607040828163723862919626493113784429397040428096290877749590003014586166441157961393594008798046289296407031155409876066566455543855012945968897895278428515986202777738112150610001767645621734416372874805867134456773488170059101719009473346035427214628460720715032727824065386365238533168539887303368506033109518791348626347513304888334973898452748003470064842622157660841182927016539105713097068192182439138572878942296621040033273151481489882376621334425721644476065296283290153257605508524411676860691984975947011067485780364368994598540515742711149276249839099164434914340533591590901255282722450139206909693672895070841454733961165269913922929290882409489390574746781861051689807665694290733514899256488593749172019557932980452714726140769676762848865460564460353828323580522204403257316402650613502142313827023574186636443066515808520354404993505693472432595722271335451007424365382214548396897979525645503990730622132644855659628098636910725711198812690010068978492113188616942672665909342389138018792752713263107799309664271802953131406868076063118359780108203323217766630098995241406272270498005075425666562872220735882121268579453787323552224169992763417874184648274758933788661604627846751521996918775618382256164399508866885178977763690488913379139086719374531898921620684749530158516485737621370093256193020274724144728785811990727703596800875736168895744029325354628108245464908344946266767262059754061747410186412955446905897316227262310762411559218397041262384430311219235403354244068202514623999489387307616562018301483538537657056393784026220096936232374365704108679272755080796345941847922156494106559094372974240429982456666653592620926871722569029212675497317025542964630070542111977031473767808034821432362035648712931575482176400026180955152418954338943701100416604261685196417771613760908528834413873598663314838741414972244890242993223114343104046467151338850900817792148915170863765926212373983934993615695412034242419056087629965735023134375144056539900134964466087593102628598388016735324643365946520214740527562401937382126350981511357440436000508517074924533211896161732145806635111032210299425960412199419484295748631532893678998772209135391774307872255262593442418352724336508728955668240242735560240305209031632567628150255135453035836841922797553661166795391289602264627650443329689068455989351986054924495423790367241223918713461649621970335608619657613658658072132098641447683758399239098303072699365111182932034370522912984185033971010090897092675218389065953032257480166078118198451517446635972894995844015330440357992135403188141207823876358755967970194650885626860302840377210445776829077637384373492790929074133868437222353128882499243361196362786924592421836883064439521467328702968557781184730005455880525877768515491668245562888517851602134377742894652846398960274231651927866735641893067569942589733976209333999186218812290932256824610839580579954903960763848499004068427918607595831845675589053428179221349987341844312177935104904868334385343747580866733474372514159595736171904010572755119614861023522414319497839117481474592239005593635719202712573714864654024441487145060658113861009415944340693297364358288532410596365932150819111324579541048516026731427740614816749065618623274420625530737638730722583999341135382193377918266194818287687735448957508957042110646216533572202527065787681867463812777875240475317562743409288360274571281780143397532169368942675877815619107935698843058905662090035024684686999798657844011237510501544756818571057483435582755609627422612261199698135174283321465386802472101561679949201023317323567897796119005902423450956453433674402500813799417429108761413769159655061686478787796276735395321768304937144668114084253075473282835418433235412786262232126366303373301945527056675490785847182561379439784508320282432310132738019307821149676867422585505709501297300543911478192053088744377842554123506783603813880387167064511165927398550671666358140004135030603543240533133175541788709698351460741771371009839649845788727071000421817845144263208306873956207466057112501068469016031630467320868544362047374044366098070928858476703549718892708046087287098966166601479430504455611002406730973606664692015489029313301761302813462231366658317388680865885188509793066671759159762433677861680200717180631212607825014442736003389839591761537092796936081715873651341987139634867183455722790150897572467042941130260829896583724237904187637390197633547838073989047432972962178281404127141084482172187319802888929080003777112463963061479688959664149164951113946138105953577710731674708915821443822601360021924203525903406946082821726158896892421075081886055610400700659097449871109646767522329795376042357280435010757177837040802413886553564150528279262599265429617141207521791936880383472782549337537437895216983863876016247969021718962968386091655756975185092460543252439612735598460230806451633051821940622608910419193372873918955284830754935120266773611184529785294770943512633042010197177419222018394821209186608059753272351797618821652406332534499086736787488222925978748649270822664887522579135198271919069028867061587771599228711320869712412282447340751333643149370237171874937930318747887939395575023849492271166741594252358093238880169722363137766161422623604049308152948399790342949873590321258321505079721583195479065789840935079591634559541311649311950864040352841179757183455432248841752775315466506311653506780391469525976499408612927964559590323442055255640963638290410027001680460585574911714461641974676871306016296104580449831390912483721550261433660427220634764497128245677130978840088698795630954822403673101792598619828934769395289873589405598045343471364961268350667372160312639705559480484675971077749418061277907504198956157802420650438165039273954431537103777092106739426471209022202803875593372524544953788643199121587561651762281874234211835765337185993966158007380376508450587318905860663302463372767654851654026415198818323722679504119241815275466301502018140164879424972688031583871976943691308060321653792321442935705541038999561125199111688257733524604492392026755803782049927689652326756770680424266807379368174710397674502574623125484387811283176870065471188620335255062381246038643248369134830752485137069631770676458870649802965434492587974478916542684435150313288147946111019215474056406742225246673916374020220359462255922771729059344207657616349188888231475731424018788394622760339701375444407659659572281138386540859900598304285630331026119766299172541932906262020910877595882830659935497000831021680616006364194305661648244493641865384117242361342080813477005733867452735009051962315714552181343962106429509205078029677485234413074303368898400461136033114408720454458878970575964573739475647746604041954278888422293556434448365139597928920815021841677657602093480932095885585391482071941464251704678392758098137859416595336315650808986262222323640515730268736132664442521072178527375641562631159144992132297155334298931253658317181755010577229305186631517453640305145627275092028353192004769342243081378237694840461022606040242941393057919934083016858094198494040138965049530230778499807640866637096402097670987911860030423880659902636321876578555353612067617999788925845760587087324586754342681133537729002699652730877970156329716254310617446528412236075326425866932328666577262904215922708392555153605407894083198092840770916177854110977379507346818293050515704040052843987766273930981860077625002625632602435248846406645050384525414465138055218755785687095095224665481251744730460720980138342107261230115402470194782639839150001107662697406418857401936222376560195314838483789972749111768873880192420942659221535623378296210466990436531952913422436001137404233581741585105221254938650145821289529244505456209372723407773659856926197031958857063520113039756516305545574038653870809009999197370708434996397218920792739011338192731826452971525283612980251762883609094626492220664915625653032432361587902668187856818559077667350641637331476069782857765788196210282659311912129904917788601289891267793040499571219091089115596787116773333354436246970074055019520480177551665069020276923604052843008132249338379856986006123482048102010438323466539861894667600767518993052842474743950127811042779995229362865113063173228709107112678976969209889931946650025528802456270371886910656679449228368092267821581708759519029854750172118984425055440147999049322817763516369036905979197751870912839671594917237162251445561307847240355735847218843531310016085506000783404915003503449269179892759643202475101604841508851175176323955203692203396063728120033613007582817194701190200429541796156079731430817580577888021307834713278187131110997864770225289645466349344280915194740749869228144624697563156478403375198609692747433361349889141019300132793771882249830679065666258673829510285864077882593168778360279301812586634538130041706499088201080930003333383414957566331917504259876513711731556442063757057874695341722075005901684768378292273548367300580283031329977565876009466983433872340011302441108728225542625461569762873165349081441460844300166439852757289970055534886083090986886283633577792692433717390537945592371244709661016340603819270829945543483949499904089717213003638823587152594882473338010076301690915806993887216456705396699169473692929884660119986711947134152326995631626241738680439205884014619934295708324337462936409986929864810771340328209908822290205769888678393552152690420878428725346741533959739594155879806143522551318345922438086606277408403628920108924297911621579774039669022442844346554511757992715839695343469112489252905294904513753871670050406463564646023369818093567463418819153720703231952677257518987724818692423662956666339280706986995180467723936887925348284782136270729531258764691252942813877670133711280385424961882829564002731916475736625520321742028409896386103785397244753538726047309007682923366215727204461861863568332558151850264809224226421431851472352990235667208468971922173706467994136359787791138619716764368634746104201914691601786691926010670818861731489479372609788688350992848665682579074594757433741745218386223639103196974745617563850701042313504854201945421632903949964328036424862674719739023511175528568012266581511701451633549683843056167973393196579186799932047909770460372102396946529570701326365050437288640493384343823288961990788497333358462494461292884574662028448856435837415136167440871294725750108509186978878060329163593484040983691325205375729237153228970939092635492164313289898297235437347423553002367891901854985637670900505045045248373402572242729481673800532893121171037221096245592804548329476301601957145369216712378008745075691179742098394428032944669187826536436052372735322254485024432154243256466190128385748751967842442205569048800202131018558761106531332932389661592401128593464835690775097584706870970723575290733131587173799008894466020389775370579782351275855565831409696120760389287556012932104610504548339040024734729104304641562479570731817583261019505390123598575531840470091473862511258310213793777156645767939557566681445909717762836430324794999773713722369110890772585004510345584437880048640783877377523036589194980516885358122136537422506847783261296182586771456393587086561201838365716327720947817037669674949465050873433798008276305096273588263631951600797777922922962704345277657992989277161992992015997613912462823479537742552011650799767358224094617586743143287078740998976179710314334639560947555458190473779746688259386344603873651803234526872000379797901065167847218880517669692133668512196087487918165708567201028061959416261376931239173996889907601585294757838190114679943048832056486700481601871444068663136983901191721939433882387274337779209166882622733067159976073581020462866287164636910703637353588320144057456844668112222001655804886880680801135682767881122113140419374926407650805989814934859251311992125084861586665230288973883063523047003919705486076118918739752592008091583550512008585668028698517298631581666048288500379673663679586145166330417218216790939177475505184405253930740368209770524713665993982325038817448680964485721054968678825366213231219406812627075263074241637871472759765435277297129819359965324140139694963911729559296879345747063136032506352768519741100553872778231005684057557229011941154550784068095525942844538409358495556024084557236469479927082727258946521802989110281396024615622135521062885212133992851565190886730921667054734914136217100891143404708980958543110153084574408902068661031363210843037199288212403736628920343232469223525327267248698114785785721811930565541138183653774893872564462044044183361013645122683703479741811845633318463214136018017058471071730780074778762160014727491144364820623759491726404363360835279449584415203917608709182510320114140348439815910527096728394661101087657456569012026993470860564202147704576893225649853305273831844954852098764593945989885877501826055095513697250631119323697553225940498166667321362554671504369671853847739704272500830108123289108513420329642404503767141623758468078664492929588885754056941253957575687328968465871908911489149371660597377593079090977042962784645209848296994340691037424133681490515569677309711345956075222465540261224049582306567985089126423796111411198423746034500773863436941381538502231248618707804606145662400635260869079278020065529768112245173151105557510919264932698715602742395392837129913506747396277551572107677834591912404980354891890909275933589522278968791820076756559955148383890977367069481939109346231281487908639694831612834680786667906253454176582447978932865836860813932322485818088017674640768533611299792216814905449046537403849871314771885246867695469863770876760764604840580119464261343151193890641301184606309465580565734989952147102711615760032671725767926180604954980955548196363235418655951156165534805095764383959844581503004751613745606836013657597074979703685360479041358741614911154463228494231166893721392140223852877918414859722950645034014722961960900915202972529891453685531794786852040084626876443946074229435389984386219601858095516313990144742825271377555603068024230752904397308851003498829009623998178640057487614178217147160247737003378697367098133526747764554178869355621129733587290433545530497391390723758039550533611252895918969426217527444926878155669344330564087868673409130298452078166569875388507980424157780239806620869040166987310738028416081891720530889925428163244096039921100744147225237441919723430778692902410142552624676789507869934573422169360777317636952634650706989326535612191236744698526603965071516729188482412133163962162864260699246415181328731423714465801581610986551099943291474657616835009664514443601312934279330408481456239471979031913139349261004808612930379902970730042749054075427493957339452158729564436194300751973040981637282962644147196069733504080961792108464713272136332902475187662709109362192969009803506656302963676138406482308201861489216134040639314165622644997213931081608020929339531087050446552729242234670940384127272321662103731325593114612124942534411785512486672986700373441724961088201675590828120231914720766152659299891240823380269169446501616640995291966684428638355068839869277393578724989722321307127315165815074585924550600864619582743280395755582434715834868390431939817695447518940108681842079398412107900984806641563825211052881607448483147586052863649303232969949559213838119499890346444430735742947946545781944298791186568893601181103575305839897494300488494353227561861837445663495552403023697432089363066742138286684369177030296671328180712949230248388942031438278865526729542724758234783133540061787072088830076908139177389031317048857082471719943517364538055373675979670080969309119455466486768702686084878587771610058694513481750768243580407470002828500200340861602725475766849789257329024890217974084347974761078243106837218344053030122226428572339298785379845370180000026714275600616105158628509012608534931854185686269776031285621524420088996780030705594121772915359448408266949151755788215580832502461647864103315849979583170383592021363663865511799980666994357534382531842310459507803504008716414322381770353801442798761855588767781419218050334916730939317939659689292276188749369653784620442748120281156861910130427469144001455699428463235160242733835226660544572643876692470367043509935656685784251154408307292969245885466442598284360369773197472441710724476349923111047630435139475798056728177739176795490411868010262764819763448408453835887057588363442495247458559373681886344237235702460654468904561847814882914224084321966281008675971650382194918800078852012539127034471178327994662949081310426607016038365550951862486236501604625026106582379877572299256561275235616748686409017436969474317458052935570292922425722086590863930839880106129842859338781168417312550580582409707699264196758919659711472148276421596296664900797376930690178761922312744105210916504641668773304167242949543338987752669121141898895873571873498100507389571790693263035710589978122611915731136848994755371429895209279607930232730506721891195922420973364433452044236583444461888882311448546412625297214842025871838685232365659614050223138018814462281044571690228424701764671289811905681764051441266152877326220972020218620999958921212705891369470235560342897298798915140596226991875324688003240437639331749868440979993598074088962273893017483071788728533177707222571147447038336926274750357099253344931939942935732856174286405849700569542444933223368045885903744288776801851677671373344345510893838175923061291447896180240447873295683535605704361567228458507391676347684445662309545714732898628388548638833765449910722297290724739908535996602319427966762586681342300113470012748813457161954945426772205768894624904156256023963779161044210517501701419256350470280802006399993836589152759266455935320631023198847353469511657255068899919195919765663649230665150060728090981500965787889989792295274879219511711442610934952614355298626153901220654770382339831993595931071234989078760977893670945683180376454127726019489091966184676779917247800649995695118678251838689578852504166150930652812753995589679484497465295339055080260626367620690533929312918449518139870835024926215165830744981873141435898427462728958739984275437036818917339973943502901958745634073442041964181751898647093061658119103266770353106967432195535299476695858988127419105566431199824462666732513891473106379852598475770461185837410054803543224214991759049936500411226430968990509291284226766514674941442458858746272287162471428210193136647647630318637504675999362141328544555524241471395227754719543709707963311062369507079678326466870449191098495798659840555747952070754388506567750636258455030614682055551597167827575250268199268422729610026508507462230462278036102756233672226965908372913872544333722790577350828074704056367771224857334207433267367758647249485685775648041900153024395539881141497755724892061780040754416633116411172356531405384250716823889953333997312775596792816482115878524653456513256013479675257566654915080215967080677296792937927796381305870392810144226457876040963902144032037425515023189329939248736830844353719416572712368277131019049510165253524174020706262787758540619162520903407033650932300456084123578108467780471424177037925036387172862132969351116746673494756507870428054612484803131383851992000178973128689363285323692860902746412377727702620686930757617712299353926426685000380067693927975113895684980346513094083207380109888181088205206725996477223512732549750901909251057869295236452974751641255710784267268857910718184894301268634382421125062766362630368808404445323031547675747135035203477768880582782095365713977622404373258362071625642608690039278888222137120361135208360261893582440720979956038276799039676094134848029663680278447055385799438305386847570480779906281565327451133314237727230458754120257161569019441162940730329101571775848883889807056851971883309800914580804802852636052112761074144431257474751457384434868794715777225538651657373045534457394388106898068203622504429360451398982326891653093844366251964611102813768686872826046072833855010409693649247694870422849854493961378941174712579581850785261059168822387085728197520524589288980552961661505069638792350164595131730001751182561251909389538965646610063528015260937837544910306216626908877788638115323931205682358694526675120475522461961707436864317718137740237366653946216531669436188949024798656584744277263624780643131472659838052229774421351406245699311986549827554960320987079231756954997643836467559674347078034298105190151084979972851764116621068111931721773006374932907502747744572806914243479898471304188839920833396464098050057446134902055027257235701224461782787925360469648937874235959282775160961743716452352045987624726056884719982609560027477274617005420673603897497686021574732585441208627857617726248612275969106049765922919152236822581060987443313487148472326668212049556782535490439829093827349109558424411531689326133953433237789739078028751307471322302499455785741562973744394696626748555512952074733492806054209158564033787470096287987165636330991483971662760622737911746246463334305713564885673490016195389021861164843811589953889642719918096866369484552739696719227789678092020295020858647306242241170088998253959020788604003884686453061323360227588897560039198197103723299292099728917749849130600343863330150589352179392473219859698293071549932461564947029742047087734840094027694006297259665397091364383132140672648512467044562571856586176057029180377853026872292471714840369854806560761410334339726623891751329047850731273424852566409094775620036796157765965448959638588548984102953354281083045391190213572814543002315288756362202328513563316991786519237381395879594717565862138333382442525039222537905778701797822161300289305163230398113298140842437879862075284798396096854459117559970696232835093035687079746927213418567205972257729232815598088175249839097691989511813370493896100510643557699530663490032759844551624077259366063113383547870523385157427638177335791369780834017630927286003569306541282365163191467135884142196158665133247086857247583008678124412369407932851952948024440622534513121197176825726100721691280337587903605908036287677133716358780580553955447133789248865590156611248634068896896339645709592304853243415670084406200611512206987892978750111015461996954530016504561209057221412222911633035262704214322621937284853468171759393393097872152450493918183580270652499924412361308823020624615390707178543634821263323388995787567668278815157834600593756205533367110651001615865845569085267772012369231353870344620278275571669163014072119094159718708449326617898139596175415894136543751662790605809613352753781844530450190721494078825820519163816129677156217870051967797271616016457090676681818857025663873512080504441779933938726584318362666844685131140887599424677843728322477295509090823893900087591890086600603553098552542502244896762320472782576872256249310344658044101270041474598641748886366464015299828604419929202460432615948362401911832856396573179803312353855052356933619197510608202421943835966523697333146721106329817629164542281550271061557902023854077560842720853558117806454124244591690796195386808345937090978863183451211955716358543033029358355468008631061400571471475463755524064143988580101507522776486882181131357874740710270994509609884809029036275473860080032865933900097642973423441374553170456776089170124454599496604369723829852517049444481432941065093216613702073506901347371266677094354424912692051753774271566184161118060502242540290563747736515760766623200240771588999338075843620043551659474367927696939448427583811392793181460690859506493304666730200069095690828419820811438430146645737141992754517123189533819087719195968908416319120245224711506958601263317656562146271865705298658887030057393652742110480008021001527542032563103802444024381944206495620194103650925343235877160053957608054490252648870423876679296937629366052107271741305282901122638777678761008462010239433716430665029615324450357981699948643277868364061062667307193314623433969611864847883479502907029483666368779714976993924948921469214182899417166025612317301295351155951306121855832949130178661711293108532227202982825580775284343523954409016119283521816671261074720295167392536097514092692788128892611122206394119512572944029442365518740827061113567199104227297169209327028457520697096829084534280369543138698028817381892813606722513026354336447919716236904856661822481517099712447266309959392210251160382709703472854426919959780658525915429733877766280304375739396112943525094054918176399081107501299218933207411847012101057119216379264727100518661286565839862047661503650160939905968494352984922453660378152191345521317713139046441915766696982292969950650868085577103746338419461295609036694152438502426207146582186961525399370003003746052347524522464473040612626433466041014860148980257648877402418144296862275857951940178179161854589509915695639727588130722898789779720811283863822407657722514330413325887307164296691713797056356416412958061727379953242663638293847481280503399483894959922945536270153353073077173429777936279549265812530410292158582353517389611392705442045379287703049640128706129320325372893866519545881311241016218267609308397262683322547007431864166518445048862941886501624502051440694403382777204421799891775528928589192564309489567403482379060026625258778523677233436858366141425270484442540272434263420397486147750454448346372495779444651435566806622044815736743620776531125029954175452848084982608961070022528398358091084818667924456414647177323459064359587339708387907295271161622024173328206881928065432121936729178117900082832561890583598048532458683572630663985576160651259754281402340729450896938142292674717012933690042484931349622545203525681638618409575386148181956595380475561652334496350397855325814854386702976326686585453475635629282969432731299468250170812718085591508247403457549360913123667354782477389589713474834881584302672191764785071963339305983002652880632609361484119216887783981891671426644856538645652904166835171022934695528880424093883026315481646514485051258305697044762269090283074283012185981084779783012616833360838292230500654299555104840542570959143465125059811415665008710802614081290637273544839864066019030343192278149996597926476078669388614421686194317864665126665819290847858245824594559934510468454771977219682334761995824727597644247074454076403170954535647284807431221368141646039148255719822095488611636012301516862537952918477944548044642239471670883235447472643881933241401121908124021619479153946090537815819772303228371641760078832938664983070192371702271115793511796317268272103730189846205616062105397560301895638389162390474484818999622157056136523789075531863991088661549061587329838299123348317655594850187873297836236583820573823739798008967330474725525324744026245857599449279657125238755458991442026662477818197920935657719806266708138467950669492354200437167148832728395284870080305048786035546804401204934087517184779518259472250918596247500380516337810486620307600191635102644120261127261840436915211101071190663503577409608401430174386275661580031742927040688885603662815671595237308953235354440709808434763161682603341586728941087605307209292514316185670936162662953052328927712463738065573420987054987449785240856355983236482985261091365549714291969100413606030354820368843722978318907090659441529086942540201329874424294172603283772449620505540942040626105665227638781020673424131554947703119496541900663047762965349531351108878375455426803151719992730408289011103879487862485661962718845684858069969479798049123260583532350321621261518192567091843651124558416851901167599553818485837706670530125094864026458613542476702217749874186254604974276893433647680387301114889120381309769207204864705608478443504543554079053648027812033888836240228661511000080129849491364266299101293592850818103301378950549584098195365173825327449089403605933824121703423032856520612459119946439245008171211504463765490103225952342754565312949594621273941410234820145279293082928867849645450240321845273747468467298167119673848424069140077266743413844387075797318113465359771421995059220929621681222949707479962085078980271113299442720741850109255624168506624955998145150209660024738926051765763715395610040003868904209978420621211834429814939606097694008764707081364877680514257822372356153623473254418467995035511346535332716398722101468985182651385876595015047959651441956689907137934661963046054413835417459650198466087680438133377672042043364974890015703726101519181124517250977712068458651329919999665902534117456207558374598752698989603821664804782371385148150878743552503982306143354164964906424270098554204265568021532417670221489489120203898304050400998736036217058702027432031438081087020649610856831704459519956665164152458598013711196736480265191496153349802091177878307669943159626989695005383666173585163705545121194215046548711065517242958677546068835830890175230341765617797625585394102489816987067067314128602338657382721103624735507213620226797141382550188867029488944826023661337336812263439538687025047106725129986053696036264187549013854007552443625154239146996177032623343842648853141515511984753354001689174535655953855805688650843215252356315029341668048346532024412242387038189630740891192355623036743459686037428437610557470605694518623857830848931871436262461205475584384113552277941720377343608891566801088039613491586553117602446889041457477001627002356119155406924866626687206975512051321084271080846437105296267711453402178669705214750213186421912703775200693247498314889751783623873107628967105271111934519561501617599157200886339759785880236270316527758777914101147035926528018531392118294691761611683820571684280020518816790303842736085094168492899834861325783057017332140565678130458353554586492101620226999075649683337809135644986321066337901877442622377179136929012389966830957377764397477610736786127181140333368735207412240066508165381031129892822487250330293479965075037031634296031542012147865610375602556506522094201981567596369886849696123545569234673024992898977075945099388788565128245373127415475433218006092344402271613068747052370329649571766695171223605404871840629360185734068162571159314384132890049961137279304119887864037821326972458292681420853709394536492580851176960456003523997549756386369279630036162427836596436752132962610126002218786619447292906300273507148122074381303976794630593698866974151738997092874238688210814758125512571646867638667343739225429404833430131096030868830323468308256727605687963755622829348309014092124706842306114144897370168673070501111929211189969174912245394670587267085598166191872299778064790176475755835373237123398086867642390875632485560232288728765602764413199594789840611138621393975334587372827553929147527036895492400214462699795491684254748836221290938372532885324093093670229645466380461759879862367712961283624833415173234526615585425076236458811017441202019850348245926952031737881231124123013665474107758538585448329766941267900342043840566322539788560440417473724060508270375542063442130227778936599100355749525485058525945918164605586804835182236013937571339184494153220984374917420565572090144493712852470518946629981297662364894563461118713862016386786040488974396381209787087580444598662604849096423430338838176650966175203515025900965784041591702904417660572565682810416182764635420859221591118510986055637401628256218801237206354622663901950916060640965805529819664802784412324488627259870094681162445267790627470332243923302139035263102799443357222240382027018423009475457827643038642327438750286808398649278416133706442586316582748002766870447580850040292735275282680631705085592952633433020777481724184843057916406306092767533929925857962204098040301888662217861752165107032190636336727979612157764195726460355707702961231197558189645327233165747661933916804567931935748323104995331673258565714569926680272447477622813825712856580307072516982519611677831449963489864057811966968875289348699735882942677969714105710589275315257459636848062163848016884968409338855072770950317350753771161897496509941604657323960492926365992897358957380625553719574368974024849562747199345088098412660999033475781747462325299582677218737676970335029446746122863686203251088649320887237817921727881897208642651156454157647988923188715223518566122039995549978695229454047568576332362870825715170419355184029170809575818896962788292253899355387833651437652440411112537322967089533079941096942067679687073787598123490593201256470307588894253300331018256166177049375176622059285699318417876186560834818231138635383711574520379252196793165086485360465028321175169192376381871714801487923913348221394021275661553948771564695159503463801096566521244895781576168404157868001794764276331159069659955591789052956329475901317088155057038926683788725911027205672727937790917375537436632313601791415001602373516121270776116382686305900304544391223640012105834557160376965184977476828983082682533388780151329814783273262824221005262604265220708546292350503824217482792996623995839640043437559961722501070961587608729186454597681990522980687594735099242572245027245049503680124967760109473136474310039569808387050214290893977435035414997145592224016538214060730692323417615759614645386214971062292760159033067302686672110631805356557888393555790818324352270674498909469351736525016115142750165126116500967365355098943217422178183750163804647131565553331160892520605612684139084000329679759497510527020623764164005888215197123858771451062323697140707528146105393794663829387766697411908141869840453510984256650106680699780406534965345543799748491722363130849952573790857856133570469678371593850830661515919442236055078682154889491419295475342315020323559956536513736769124979412444893492647317896582846349629849961296345738057076095673944978325671115084914571514958925106550932678526757273669067422940977975836996510310481429612254255999909042697188564210893160320912199395035158661245009291879380225587892671924304333157025614999176746017373745324519103656184479256477212659051129744579960821825428063724566714309516144908927269655968831351049948222564993065309176102991967780893863865410744951795307077203034727840173571474138323954105766167256464064523777180142878900692300411620792551213631690433614785414965861499909135584047567514791152347023326739351147566608075756332298444330844127190979577322090324850572361972041600671837852917026751809148679129847911619855389560819510550473523490733779965426643398160189701200759379053948014522129753828973380138875204396111770496230263663090291359637676523397726298014785123590185638891736016269216979630491323236920321918051051566232855554645826982070247981572686650276995197219666520227702010304891710992848630854218290823236576919865105231227895640653869489463246755676393507235500420081219324105567850555349232765792232043537797164664988872548792529632803007594246173918123438935899650761429790843542870225996260139225068531787562605694496225750045133020290396487604258365146464563181244424353085842658005430763166473586164870287947249643657297638727845971578602262543846045998064086113096982435878678593108382923381786672985553702692053340172667706386289087641722928129974837181489789946685520095829429601773180905960941424330250612911154039579280179317958346348314204452768038587781930284190996832928499029491455166080684918039573623067143059829726366308479640286344936341950608198824599891591221090361419872439020402646021721030021237570965233276676310595662667000589339098147904360389060906303101667550089896550950531787947573984517878167320196608251545659675649265634584987628507360806080042183929950807713407335806348466333800585357799508583767289572617385721345470840107524819023322940786019132924492214711055581102307970713855369619160941748290610637987979863202902511588348423073023574736999747830434226490242386569859043704287794391649342032503142654498956336466500572029529811435551074126960062983950537348664005965554381786937628983188944875046292869081952956309847963310180043927730116452711258997584919376223270858186668228142708360448706424419019088825409980300393403258899344410014064261462235421414533504135020370508399211683051566761161959526888281408106312914869629435618782693703133532906255434649565099876363212385848062246275892640816681612244146507872026840202956306705305401243866741779989044381436969372914986867489176010593903973235018168287473315922058779040031274500779638794225718026267641095885956908196568783116939359627504876688466366421060847539052401058031695353193666609727870552153141683207627315217242779125274101782631606351404797514918195591546336638846818901090137020314834476111066709534332176226894221080609055317877085837980997853206713972971643599439689534932803872017992177217589595703566353384306443936731295620096287648683287847723292679082233099115592517447182622374020510404387561550011100933378343274176394556946104739690214135934265757524544028150015800603310407799298079714490409995337322771712851213811947663754245332234522551720452607664378699341602001647889229031233355362870191973756642517380011793282693185618325367268728827642259660154644839664958402796433136357080292950005313212273264287314919696068093577075913740280918482130204342365265458936481568478401755017322321302774090347947240048716642835707740854262009097190959622394472135823063033343403818934278155723107882474588829118830472571949752505517635314563313174912882960069427928055025776185140563346888381603629081702960357498724253151843474102307858922076984484685582678870948734362233376733580118519482574006359785999734034869936282934350500069642058824331134185705112828890580761024257919351795141047359968533251013322408543252817541995637981400695415394891839908674868117626604457610045427064359892529093730870039143978240208919703310646507592988704312627248030684814547798635871204094713022609379358415074280146370034503220412218561296568822092610829691224289579289330447566565120844305387168590987431074699027169229675007810541114682951541112626280026873195673800493694159338464650833358037174527940893191261490846121338194815261645825214496075771890147269048730496129929466639975295892107303981759744124458548738423355945012032743850811587843220021395321814197079646626139697265152147639674474544716555667051064711261758232945849016315642759814680319467895089866047149802120440051002318431393138680015530862488116375015617259750079714892066753891227996545967968152389880246072662235071799381969809130893274858843586875363377089407289849907365646835483868851716751598211817796071534575375130610297240408026486176219633435227130307946519109096628864042498773705380846437008147883762359836572266299537416302728561453881679469939608893839091485767186896565294045247116555488938869791568442080706624209152923917096701558209522305381288771636985239035082052579274901421288992581181896814828590601324914572227394324048135447304008955955976323985164329275981203465449894872314760623219767740686954252526760465236144346286538583955431333313665642682311965956779143931800307658151939700281948338001195209175551081699321512859924437845956474163583645695450076925099043719491595615118695085084796501907776323152560189964141533305342434252453941419844060812698989547606229008485077387110982208314303652173271316168032056098554625819368271095153675039328334151673180322813013834657161703374013643429438731732654900493973990579067178960846447954381697419323469061789504757171754731489623471343653457889546061260676680641682089113234770105055534949986131694894400428334906115717551541710637596694555117439584182327334004164665790142460905282842931498184015701038719835828950276107492669590018797985524813915563371563115081608628051375364478454223477073745659597211396335746324005193935768250585058140562906788363424406833542348392217681467763874725956219756774524436094047326257820421832857164427097089661803058493029235068023256141745038854796139062663471754284282002763755414706801659295790342610222580472042630352626987217702077848410955304156650171884852792850975976757290416507361741889110711701279457333599360733530431218303816091729485022259850280412113985270963297581141566874271015150059288904763968206465670198009035340849268313061163440253248318137690606920898308557966128663887060142488505543750047813684192010581900496917125654261604723131027661797956187348506997207161024821329222301825829899168027880072348085722831429098601642506501833950579059601257747617261247869442438962433329443686302996149150811100930832125809636226003031313581681896563154104304408074549665551509319106890510239337147519497800064350048300094354759153126059714859051483082354956086665837863991622460769635461796143309599463750962864732139199555047070600531991649416741632788229449303778442612155500916097157561717072958587457817885672740982545426963242524698696744681595847529672957630860814220627024572376960832872258508268950938435449649457794411604613265024441768281980304145075583947371632489184191231580381852850743528892787884014416124047093002135758091518255560908650612459508874891123788199908153174343209670557225552575594820429204962740120367751916863620179065879977329690453420145332898673076772577878896893068553467535419222655093665826926406911422742852734874467856963531618741146695209707962244776468529782135161909565459064241786133592118501124726798358116267619405228104216047601448209706026958751043993782980282026520704731036648563242457042903440034675301927200190942753348620904944477882707023289868225408120693013665970348757367623711146036059739034250682196134691121986009767052125672058085220160421783566802127072086217223279728396883789811759576809092163226670441144308182223312707498490893933755159011435052532025179711099321470039795794405925729909997545302265172035473330844042943335220812557400397678931853065368873146799461524165363586665178705797930529033937895486220263757565380083576979705403434559308884504502911530700888927269038458029812000377692075369411798302361789714202646587788254268292225914653953784576947692009168015683708461199903594632136732934951105376837053550067804256782113027457318329468089587225741262894028937145446246801464646042564631204718900568121313677820443031362638567198442305001501339393282830277101276215506630308751150451140190041238494649175112393972977709978342758130128834278171614536557593235031147669702107112265082900407920108685205422930360469802002660131546562619792442025116634989724101777841757308766172450083373883263844901180880486459983833706336730947442705099245220914489305081483415038310446305379153173939462289108203714574284025048272585928111446634597860554719104728237560402485366787201898704421286168606164554080502312462009306700992090924977262490529858172082817861706871870285467962568210113419784625420364790404813690931630368010041994444993413324826085819586965910668696029217143578830366308124599633196790863641892317471300053374993437689196415590608133522489259335652158520737013342365679966294068792430838068129959262792902449289415329842756040753551568434600234212043103168148459990683556736529044364864567773048890050262867462866463629564844990187236211468288530418147715439034421791676469534253598785225351900073948904256744320976236799685844389969843195746600689238663321062130802922981856442490340082210871630271306594152952311836931960597342694010587773260183890169384674516843841186881051337646471325623029851340723205160801484640504476340468557087053474423049138587004857368084342466667749150770727642244249453371575113912558362764193496519634854604601236472689118318150079796008581926027188250728272704905911398455935023905066381691070069579157571482291937813425490211109819007517270815760543462146777933500861955317256007775264862435643181174876376878156210375851308938085385719358195563622394558535237579945844135006411265082110872915994838320553364539004922801426367400238947359258036385106720176132201537441629587126419168299244287943145153706127432155327087642250260235220605109265954740044307234670590296758879238876773367145979460945577244114763239677594686669846227458039851022559829509027037473607571224639202403232345414317205985945713826441536602804422326582320748071171424827256315225157208568567364847338538202190577703984296647407564629982201426817230520534898659698282861432912617321881515094201208384238548275075050460998018022997739252908789060874541458459695809907858939960702945146712640501832564762878237281472470279507835022278212877960440620399369853923527558691354741988017122740915655113299332225860113349412557760479943741741017857173950139268199592086234080649154057442587969115213166625679317657594641267034556541591797092849919749461093526903026179403353973030901130207235567855192792218132047083868008183827902291363463003236815196495171337251156888207058299202408540256448906888512892365911061192295209741656460650548386117311646590370263399270830896998393399968224471489547270044921880253967726468494783930301236001687906048165664236109532642768553452265402023281915528038941935430950428792753619584858728919838127083245741322898371797400710588865961905950548776243267000681214848949332613159910249425529125212149136569399551634486754612374616304130647340924056496012392039754155040937409621885308250068377740219358166504577949514383850240835802213063955932612962896158473942378952643494900824427058839094806741722735901066786174162902853096013777103250678949385973856601456653023776331474025029957502917064099711348272015540747895831050884695172703119712986400836125932863316352967170962071583142438856984588549095409454389341192832410519958801685603059151621987097627434833875168592547648460284302450993498776937842598668397716900407381117111743166842197551695786664413893281230179459276116637969828869450700351355442328587155879135778405221576057966660192306001993711006175715065203214920089853765057145998765992554458229168441375133741274052893021244359615945724786118883703729988100472817794961171953096888499658608745474787633257297860465578262423103322145818171905591770449123394676916808533135656653086534623385018290606065976386180484059219222534752827295770845074971559787046039987912802956819018199084598983072466252438169231116493418258935558613541882983027871135798072452707867428630100201818857812899053007453851528481889067815477927039989905976479298240991026409200795463956964576364787017120515830950926724764245674989434989721967896780001839975115513487937026934710022908529349779375830649958627390300639900399102364892871738592498129723778386031052154656518685894932628166986308063200254971555454087097483117590493083785260559003603983161974691825552025826160796480155014600826656021839675490924778768750766330907058009365305960070721090789890767352092378789003947402205202216795625422668666667536957980865499678399196989681165840054010606546638395988270699743738078848302914826776402294647907504387903841146076404638663092179141465054840127835145147351946556218736355906855081465013715407524798106268890234183194735024179529293630614531838122542236192519735783538723821164877700281069228739155626226423027333543528709713910596848968352341114864084382524480083734253530487654794157749904873323626503241918851246036412656071428366226467393830096122272295189787281062510377720513295641750791837344086311520360039285636458694741054858289219771227749246708637674284244259594656242303303440091925875075991066546094148963993797948837471536226678040945724384358731724008876753583636209977137649001735883259383184035779906905872867897664294130777654511057449822546224396714060959953534049783326189747785636544784185170879595758441124530303812239477891802013401187398421663052150914553278796272031479587348713935833639209368389523100903899897072719819515432090723300060934455135898838303265365974446349965816419593382248652843888186943837606570321378685263117241509236018365220569426063870993405485787709454253050297321220421461695730645098582573393949409158569491105711109845133133696791728111189666573418810757927828603887691540040635364840980939627481464269129816958008862179511125484886308250479001304776531382895475216498754941747316780290189001957678310733301194614128442209041468711995332071451848390496239059702691016829961218871455930683932180410535671016279419404980802767516600941732580740613591260005713197400337196177591596295891907296325592105421843318146255523815618459389459339748592423554394837928451989329729445090021744619265496364802462131356563916371300584469112577527127576875198239853510366036419489323250769453761189934676814589250514885382198295168897196445745979866308073561945869060206527478131527939248482743152295794602962696091109694856455203507934455614870944590212273809000099817588951030936119317169812178729368096747474104765137788399519293079800563703852168166723063113376617166457594345703366386093724834723725567905638323384786891503175233814408522265803943974987241339598577736851819557502631796498571212855755685674701116616948708470376244702475154005997664750930567329835421523047989819206239358916649422221961798117434135240029650278573268978808427947312558287065194386260962894428239856404747097684801194849253786414195229627088666882269423542979621275663032374410474022153797945397260621353337782559867117232181008027578299503883420788977403312930719638089470405996848817315140341858661848193099772737560456325299308714456034228256844278742205997346881616679593481761865914990538578214925162756398986287198251270891895377449129967463317416087701710087018402121529165558304902124329623868911084664665211565943902086774579052689209117682097988334465498964886113149327401074742503598540246497061488660451933787031131507596614622616550499255252610982298767022838616985041857499678681436163432748118667356840711288269452296376016958224599484717246446642130027485501517984699794366507108065907804452929502291559485615806032146038477976297762642060733178512275629409340809044910772990061233511259054338084305123486783885661116465170747838761782262209726169761737675932565163932558114225212096274344056910163920679102177783269123755366797946238384135616306278549501527618176780686851778293768209894054989424457603121303307683563240084102537796044622190291796876815705193502510831748299885792605460779244154784151749477631051465611277582329193419870443169283533919494208832673298124852601189236278191524339468083391910683349292125788286241506733213376802386005671955163417605955336407183759567566730605630615007580039035829483173114568434653847053589797467156948365029973250474907059854029089882588685552019954321985506591609177988470213628280991327589674931646160833346278219332950841039563986495949452935081300011324693379057985779073633062871183852318912525715020467084155658192909930488673791854350803732379712534277848755742880262387470131885867749197154211914754744252502487569439245849734257713797944808370503972728950241736290159656898662678839279545930482079073009384158238758411193646136701387621041597803243750185487187712789795719760069330545800863365344875508987631043491128075950050717639065203221629306375614551152431077000454827795194614358548243080007421116351258300626895662406140423050862687812924679507590646259163842070916894904494211152272411754996009367722104254881914205858663369760572657400285547083761979103909002917316688564329338148256125365543478903984122535682541574604869907764910540056010596594130313263668845411287767568654983476032281541730860313808044840771727115007487173844913458720923965946500636128336100321602426481588868526327471362558581671842605145879027570533879888221104912362823966236316230813783392542194031091816725101182871922073805304177657981196605844384072803613959678637528745419287191122547315345631129516263391218339085579050504739061227892446208253056053249016893600732743181796053708832636358945577254190655582987257729893203564895930179892249380350722637475782702168121575313935348713523628011068015648161182966858605926431907432296201256417155309582909970986363862580489956299450288575153560851957922116611658130213771251499396720366171469206717459362055568516095927698980562613344737017854732005774786602570862601285431482473100247617277456088574938680953711677151565680162905921008129451882473122008528253941931569158829424656052946687502468962792690904742960251583649536266215438260970652223856237446877872739776299740435316378698992406131754081810627728550479811230257654652261282732919175891393884677492243771813298015178102249581709900560825078648164930616566343334534025529471805742387313215552034754519126084177629413974468174566730394231962753694134163521933786962801826574877196108887968951637497152700493431313067558836318972992842022811706360837747977178836447884977091304693619001638083422875015666557729355111958566821064027006236826209954581024005864228600264412021831596848226497618059445351899169980525202874052452212497205310873623472359471162902636701246452671045963001125095660360568504818323184764859860840766246139126050266895165938003215136374903406055684130955574759348032468763921227692212904729202508750686920084452899657804385737661879323584474294478963200287405963776709761373989364469435812927852894431265748846219912989867095360731789586207982034350675076457013223968988772751498178224060145647494140802660049823541637765053717606764558870485511980590525641550088968650094495909605271494155107461653688873231075823523246498919365588444369613738292240682844110762478616286423412350867168451061243015300339111705862985207111718774500865002432336259131567071159793887575310380191974007664717707361600405277297368596541557366995087603405752734464188071196142973467368969616383054942474720144638181876354769445354810976643881419483858636352228385039189647133024695567198971653707955570281320703451955681304126857259599796817364118351945066670530736756315337941773496870281919130739687012768135237939890844482556504456533558994084126118599839640931578125583318168850466924299717122837194839717735948432419449295899944169243720425200477667211527571238762649240667477150582091372040837592178511733275669316472263627482913511564133641466390157156513788684099070728471354251129226040560434013382323965061684643979630217313509247435737552535436491980798138369827586023645044427111846120786004068738752403317615291712281811413002746224403489892680343959591566652262110098352730518426826998419715836963627362985911949210508085388630264812861262614342831685667747374340645197356784853451157451633521888915572740725712803698839050083028131341949167507157553031844376943241713063245108789120143952900269616052862085866630720641585087091455520807504701423492451737440050965733077245496530723506555010748769037457508896500814650021768749450589640645003740169862377812975465046695415476582680810255854707279979438495986079722160572440282971109658005717160277910557850405053433140620884360557508355000378912384906062970659651009559161677278141005424897651207643610799989528512744304937187295147342406431614912174692988023511457116546407233057844488413999600222230581843892346845505905833945000693080324209421446502153183299834477320394951251381268662837128952601025746809819847739783436203853300831779468626203688148180316674687897782828157323548078898336533569517450776261724694363736743277103897337414965057153772769898218240226179927231376401650307623053015911477656777102007377937507692046659135387594087720562535524800189754175899614663484704473265291786864595380922051414704512702787850111032585807580539941521140420550358179430482004822966273061767519902915304915187505840358509882346234007089390298430218848713119245320768370635590380076075518360548131963213525332587482215139773294921003307470677681762596715227128140530690303398520212721817012409475920098594148705791332799542069297941842764875957644889667130504180890338805305320082676747203554601940730395917261838507608513809324966692053176644920848565347882272547043885064293838763372080751263562614352848186270990747930716774308273865870500200619377340478881394267694300215899349879847380320049133407068016743290610648796255302197776820530103157539136106592040563778253916805633088003302176537878912085007632461306433113595435426453344649440197180755997035178224383643931282740131281527975807429100694191696582652760862348346924818407291942556305350791046400187882495691121387630016439775221948295894118771372069538594136925213334363668809934989469216334990848334729040028470956026615383941348850097621587434103099310336150543395956350586404396043277954932452500508431034686227627029326098977368137238044848357245960013073707261004920139819749191993549241964615647022301824091576873056427545266724684970956114112905253899973006200364965563761546997258447470295103203859510730013404552568460410271709074581318163377138842891589003470778021495139229660967871247082009453911247367324398816202715441740934927059909875274516263476386601063344778553145001082653958932185548566664159707280715170344157767137526120276664784426757880151405565592196290623471296532320801120789036145355999850961455383242002545709520751304818046122972732326656360087611693202247302510854030836762224234204306652219817886475765426048664431026104311370029425091562287250254505643717918859830888822638904893590773411110600705985415579814644977001985151671544699093949439597848246979019638994072331278453738539831698856064476147067476620063316543652228076876113362523965960463115805039213364213100164779959203244160931148740713795144960606795680620793241826612068498580185632032541601324785742731614743064872695131437503747118226210964302852256277488665200936617680963923304511353416727769048933167870260243049336040132047801573683862796696352023827143555920491401139529055300299756358962604783318056887451597635735923668881797615180872459087114613616344073948588510895180276356068274602118034586588380568016673936525884728617767393672451299487249983315705241137136952298103673639133778355342026035410995666113270511503450218504621611802173593205438712129823703303748318848083399872480898421585405928346574261061048019411395985580697850359749131233199970156131413872639589934593636819400322368240390793255762668614010118950357457663711936334049751624497491201837941298507176040656495266102853338402555915187876756765736989833142522057962902353699145141571278242207276871728649855982530358936705582114318224351652626920376569487364127611143423462324899339812603603541349441598780500989309443848927167823484285741296302716596873807619985151709220870470785940964732119113758855093472495061373839854967341055045811899553784305908355067689990095888701989343976224855612164132337788648128896195142959724089345068691551813403101623470476823884057299306240946900048334284087803280193874004223233627138486235339752919515745505476856429453035003782489441463845031127489342223684102690538058327112569835965332975492443644406552605254009611589235155298122143904541948990488559233700068713753588225195790207722352126706005140217825475972569020226479841809887320089595631451778270091931290725371959667409960403243706698429024099796941912439301684240954115293599652456879716174508497526756039945745772408354555782108692528827672774250396567074738396698014420533756466388257711516861296790263285787825045673145393711012105456090400404634577669284845720121368630757816322976195829882900220199646507217849489708020406444127650855676183798686752139602945329105257541746370579089305028290819270142467575755843048461180825965121824477234197005173496402676245991932928582760893763397476984187142093421654849363915951144620176061570390485525179820247620651645876955734978975673164070160772283821013342888784750498810414182940364013552898875445267313004269771399567739026898912648755345134008179170981157600365845491232247336367703224587089294823333258373074497392491425759857131434002914120246566805628644826106517149551227603930981957297431710293244641626157601838962674919467790813928907382541424185402275825403414822291414330323206530436428880251006299135175985475429970831771841081132977228229122559632055625989194116511301884169225397852331655006923840045193667456579949962918112448068000507535170840005258215454691998775506985589135458304132052137262195425603182144819309393309873024818580941042191827161462816036861266987239041214515356875333507186032955347026377563024978384498278757706724602891805598752234641126367371231658673842287245762967787932945531205946782961502779306493351487937614708457330135210951147367442285225618911679373137786602349427810252844504124382402668864315651512922601017751669010449231283733953785793710749610451985045442788529575957940955296919626393757679847346462080053420078792227848024902429752570189156342365279694402750709767873348864099392224909543496634913838824315713846439869275192915161031712237411999688843029767615603769683511124425176269742931001119455744911589105795868285010617120115094206847724472541245860654303217058125387048638997839497782005785906616810426870090392115289998982580367728115571681982709176365346065101851965258621413576190874860170914497463691200221001804131238049604693681567928422614583863928399019994192361511473788088427232179883573450948260465087410987104727708762666133293076817845387486595880187965599220651732423137901765268716422974999317526313466171578073935617103472018215310175428798066812171092939777984776822788278708587761551570879354227104827035505754701801240650929357687828269116566311638322830511463314971353097190320451232283292774933265997894164435329555305469056816848151057420551036447901727492471153161788964809860246558626731711652204739058460287411552306795322791723216551459436846708258235977252583621689436451427405868994155687279546442969024790765504483511626806277984421409996078500513974887715547276287595344194544660289183218274952628703242955024952748501456046923872575183159790148809093998044052516938984266591354028074178351317258448544038511837395168076659852163670548256712437117748873498026424318001067152338500080042897937365211536329636287705606152607289854987998931923007469063975214367047201276164011545549437208315905290006933763030983005224755805632950772569491871861648171241130073317722332123124279048899982771913080299160960577087018395435983797149029427882624906936073165044684746362185486377732465784915301610893959015665473402572521018526584866022309854736272045110511752789966350717312156950014141304854225802493836597884399573097011427114489402044065410004299869066944808512927534126789494121170401459838961920362667982979751025271878451008358885310627509738966300784123735051863508045338359441084139954306626551238411966953360058214145532108210397783832814544845945632986346307546505918392427798335256104487809013654791565627854646232235903617940488348192251426289701178076445253001170358159978592144830374153777449497200726118499367065161215455776952850270884691529963077443971917967272932815498656889232251501458494192786813036356618683432384502350502697914990646123003848918652256501781676369049315220300664993592734057839551964837612462360765928847444804006571998597916196193487877194793906842107392366028085597987117978803822495108318420227791188322983467286317968018036304159910497094335811159080346296877868145599477826538750823412702663182651041036590331441348969844675732559874003260665817878535833952338273090821630632769432490390717027976458469881416382317160251480092117784140619080710448488067121558997468349770830148580562323249920253802668365223637182162356714363911583834619161859803154562934305796881605528661161251615612415196145448776044171320640986118754743919433770488060701178640521394191161985710829179034892657924266922367818316137449976251563522705484228973383192471672861154571304269588765545312069440370672645467112368522807574908191855580797849990591289432738560231589583747567992461484314586868523426537667841195707143629474942733392845762906139845804905283404280945505311063969629138683939974705182050446515385571293511887955899115294949751451598012292346407637227544051800822380746989809294020207110809512657953320019623868627775951539778771885880366618015390672412442575466137808455408655995415698233188362950459946376666056714419406717951131611662673784409311911337648861469812270910403044776000450380396705612801983233438857527564542920552230329959224826257929030350547744294317757428023412426815704321480974280685473220459256724073501719457680569254004208149818641437728654882205580274532107567226437297442987065045819086135940458074635792240580270814866883657588063511510678174318743817373785486303314578080718528349239146881793927398121131919820529630489015869130745800560703723684893741612302362116724796143028268692131223256538452333889045717112999769291808411367448540972345369861465484463275633866131598818749559301488336664588634632960729315397083367539741375376887536906680100081004524375521802067131405193372514486803020373842335200297670874784678196438574669217975867479714791453685705219403808630267730417832880791381279532854905948977300466485361670434499700171357577391755430989485325907055430760980669083378678349789136279445090594448874324186224338447597150022858405284893837919428071814671074299609486520405924510436124409221090506984154382751265474201379551680494643003171436207564473507277135488982574241411145683319248515625730501823827836327336944054170748802350596814055154589171655046870686285442424914037854722242126469906361397910831890384889675399053873529261802108257667729540054144271702350020657372787874584801199599165711988734427132977205485094178720352123022861520607744410956544820100063326959122378558931613583423674948281028467118214285735744370031601961538689316149965977865814351829246291845781145631844867895942596525517249657336367457205783014097830288599680980951319134693187025878693776511821529274462493135931038381695809604685280824713416970726582145804550037672068076924044290235263898484808552034071662512816877001103553200617997969403995855162914731010087836522276272391951823915828892067581078170666668821773464022513042739340411904435245470959902870651290000981939047427291440701168616622289031510085589247526661201124986978337275877203304581533977259144506257439086329808797510715384251989119407830095851470710225025921030795060729179634094456226361291913186198085217328067985024174793500905058514963479659435624535606041608172391544841642194925200025454876975280248728246169014422213521179148682135752641434593572918128165564152981064118531669101399969976883566414733569863755106769959476075042412567816631617891893294306171855254684956836571386196926474303876962074762801328136817939274032761439435749657974856022611384694159217619897304045320823545726880548792127188080627485073729372062139410332870464396247315242947832344027428224102399989216821537817924676206410163290871932485686805261936258375662669959452806251614561786257944548999604438710883481188844373899959100805053062289777488651427276603780084638362325635561663130508930567659909365903791098792919246481562725086582556665253108974871068426359163716117389542467776336477139995924638976313025231197393133351031333988070266038325136280728199036468726968380517615810880218337408829590160383931664751977294460052285629230590260451350520925308521408810255900956215024851489410724006934271471652566701293786920011829661652223134219080327315505824887327640581579907866140336037042313877725751669686975247992527262923035834011472877710236494721982872303106605556431562938605436035370728021005483180981287219671336842340747610686530417233614773677853067767582279846998888162832693992143861705337663156004349648878170556746756877779945235055242582938507381986659094390862863102001064488090391870616363317301350057345699449917358671992631764681010428168686705491386255333774793552502952879325859737419016369425571617930113242797102439654120806107946524931664341592020835379525596211064897021495001288685568460127228576646033858598745837457608997960088001294701769150988119771300597313187784866482428767902219847684993254101685436378071230085979618118059758061685785414885412434090450453782751145308935180643576943903733727199036221878004132092119331170634682665486940338698469993946295034705165080477063954364928943607301664917447421280940549036362096138899327406547681571873586098086801600214782638834091367806676023941157651644307242772812657120326322367331021491345028462092480680019305607841532057013041740655905815444921375160541898717263391388233234732581360938238721502322528331620082344394118057307066299751545255110960139185489776314752155423474975436923651843802191434172879795468430843931773809910246169499472839452836848179118168777031377716695211170845584603214641387441629522039181755489691338164678783302440702486361276263390779476017690903681315315355438942618368065026714387024144605542406525150391044751048353712071689012591787517426556012813138958061990381856407624648079239567275885854356024992789564922791332341836772918090509442677950513859452606495565349766084020013952819387400477228174067448979192614156481895021909014061027010744385097811513006627370538056276700688136135753092104354257601833901299807530799977232953893547051969777373619770067952116263841259789706259637227393839514737343325815910687564987171147808437151197198854466428596834495725069700692948316638030154083218210924937805421214588295920743659147628621185647881216876287635680823091563822315464960641175586142722578924306580012214034857798508219517957334915690864171288556695752778978699492891097092150327133540205463092669987247294794365430947139627520744225379078245701752208592499972421182681801771581599933822839235805338281880001435101060445579156703624844454677594767934938289635607454995485074358943677905618404111315375799749752505712480807006500527613422908302884201328301103453657882981469517204048227450416675595628084937914392606782250482029984281791784259507035815370571695757734136330341627760802549678261956960946669972347841538396885587811314677609916534959891105095146320071283180046312596361584336529115097845300569755251853899968206095372972607042543543884709334100317919690881446450069022105460083425045853484744249499416724267483846845673385316601627305980988531674944007356582909071322775155653136774888529605921866167649295186446184380405359913684526897366398934842708994054435801095314669758438640076938363215010035785519505160081369611438097701879020194678020633915187213534776857245034859427477871379124703416949074900003731879018547039542978398493747997223666830638233974959894367495469335995806433482870225246752702865610353261485305619250436736471536244175830634923801457153862395057643365680134177665350656143458543029419958581466948944777735455607482099004310226259259538132432377035044988261771069200144055181811060958804508576172362887332640675452553525253690627490146424719299476710796656877014956925623240682886323899766264575682054229695596326831527450762323044554910806646418303124522747622343689053795698206210957994452765387239907921720669778276862653655980861276797800239419938682440397539780683510220346650991991772270334973179265539582946388071759533638518337586797112521695273052938354874988902044122586105684953393048802727717019881367731266883537869016745027205743737266189935301951726715414088854890320872927140833054808831221360877858140766804322769937080233605042415029258713594333697011964467468534598384126161051804481600310833427154849301224297827529205202775328181604446242480666859753831866150954425405876666291925840733036014612652652641322948413521293183499077961321271643605026482416011527824704806353929724776353285533074546238135037669650083617693398276663424910726376045521034454405679807500177736525600991064726581961571395473062285737535853486715455525466110913469605307260453292553370720527050080031312688371608356510795072231540415197500462524649730841457579293478943704562453732804911132008459059366146302835406623071473276959567748040590593512507096251762131676456543320908333391645447218190102483067017918487870366997710625567415446610001231379221680117471729167857639750920324010603136589762424924816551555598727750118672512706837411869282991322325632578777246333778249388828869299501675335511874501645006784969535230722673810149416729191066974273078724363552195558973682185796485170192205275679245037092268702731129700256002712027228256397093342307620851228860878743747048608216399692180311463962481500284937126054568024493773779401912355849695083609873804416855965777403505242842263301317456951685967282821255985577662486814982782715548035311411697174061722363671588639175990281220441015454708128957571631391891070146469730541169184676043580205404915420928097387476195010508807345968701781852584539197794731739304211044918813443714616862994965343129620197809280486569044688960413456962823236522827070844641372893516757615189822258443224197623303733147228701064423638265216090311256780649623482366709933463848289305385482076932675743068157269453367706147373562886806286768063565180142707664367890703292005987796052079698995943501439911380099879663235866517271553746830666055310607557800617435103850902930262672523352313158859445659031720543203693442242964103796963199413595678357182457041333935094541210976149545459792568364237797594127682251875528864738479075978704120327898659182293424819328132780891407472124187379130139082228437455231299117801154696583302978328657578818866664699867450889463098208654174488241894423227805147374405471435592738311187211085943433898432380844505125418491148081638260522904587808204330493478938369786104732798370934942034284016870521027273321173812664528416900886066070746742578567133462829210246592357966300968847628224843745374539579368450177260310208002704876237077410448080877822404314084408414457748702011753804686546283583428534769553328180477684113770800940777741596237993032646437415820458964835246427062596717222455692805179043529374720949261002432800741998942176800397174055797587810426155793723514895716270591272654412811305311558362748564249224001301316846020593880331143843335603273984562906394446447493068752841278856820346082674130212272734905900336524079846711153419292127932663257026083585991744488973504757302772162577612861571737655723583534326281975749397434710530190205606282172427626998290890103498105323793319308243718844995574679435886955415376566276855121562794221660253547473611454648876523597232967888561121424183634236202629808330310197129045224182806066562108304093309362065876614129433025048051688368136577370401698803483106841518390623461520238442984008208715148773578352157895709219224445403415700337379179207429389174578099244225300646122728342069938268214701283165456771236334508952287401015633548308579962892519882512025923008003793841197336879520727875237836459029499714744351574222493317761735361046196757588988250310690793867441869332166698104035016561082963373160386717878198282506770171293054572809812931975452308024652967120945393124592362991178793584964102479192471514020364502224189071879159397653798514379038047662901515291686711576806644292961441608682478508851647126828472144269751318038889372429580990387532315322537024460148040344613092283549741445003368294029744402103298678381841573050210179625987095263631345929703067214355857322740062813197265104217100973800159704084206634124494364567936531826936079614380093852952920347031837952966342750518937224291628260338629342314730105832736151292527354619159898274413917977795260469130939594486158892538101098340777610348218718672290400437338250720512495259634863263946142194678358115087499673333685084990704680048746499523728847518090934362773134412217318877851533151553232111200835703616670244070444106415453315140075281534380752912015336963565178363305922729207034600421379889962526097570139210789848271246675034840300576615181708766494184039212372464758525620291546271646538827160256609919535523473538562944673819520224756130221111225341744221076532767553461815383975602440460892908532783622893401633320035228268066635411277985366893180592466513056269871771860134382918875310399851566356034358200481920102350655939152535839882692988587246729723220847853308106898440032782111786443078979299935942756364129509269194654056629735917660306730695079009894881750737382039058981939678649870375871149146873602241718551771083360349963970319027302952968100652828895371222925156692106514738187534307143483326967571627057174224911383841608731326640350015907667700053447613775269457279446457671971191255723102327205583749917349414448076091597793714192303328095457419238125235808293643011670563931129621091605072827531814599197371360415001435696588484862917010875990140884236876667629079372306537377185377313332934753834368902065832606382174715037318211236271073662761970820205652328813684989945803211520123434068119440836946485438895555639248719579124374982623684941471658942160113757434831452361015727110191045626507388256987830354470243306921356655794427675449905485700802277710402824432781060417176647824778063919494436267781519150283540121180540213164992816553433289709353041315598440462052542043190119032852927060486236196477622909672471726364889969812516007929717377212431894272341690777179216690526524695368668433439682592466079538914772289130331376747216855980232692960159316018684478982691489746698002163647497537018586900009462096376348569281852221562099392485388232044341772168982958979646046650839362909937519354293015100169393708353588646929024734159800703818620312017661119620403150963561076245354794822288274042020640716980787461967039340218615613430309397384706001143777002444027696525066953019253560062063532759787376061351123830951666085450532149143131819301921975094274770898520435073183818633015720522049003933280424985315620799774935914574514612149226831709062954857803894146056871760605535874118821711043929997634984270658437084532953678134637598375017907321163348047447020493207403000328178296079575224989413640331328768846761576703021472948456012021889014246421195867904024202956884048568531584098891058432408951918386379720821223372521518327858468496886231771724027239695968540943435814260368400544080765709653412045616817419420163473563044386237972329081000892025586133675528538450174534275623001782108308651593135212878581351185826862304394901918015409030233896647298852067169311380386660106110510295542197299196912602753123588980668812505177825182170447917080511462203634859661006018477328371263866366736209729643015053412154125806345762243070310825375802783206082836043229331908799078710967556214698424062129164880172633603689273255498655739312047687468952683262248549628375614218227811491604279506184584087418967361495734145443984298792299367533752419273849591132486462861565351944118830104628191448503174546141733881057449220383194596923198042212841560685973619515292772197192548622090609687609200444821234576522728917361297164804314638345543387291209837458893705009869693578278602182755324940516125366849676986085362983533803165391210891041998163150463173882587109492476019295345556745430077324383646887382888099360886561167330651705743676010956806759842097647667603121370209146639563656314783141811220723417722550261633438884649232146399572047538673397119403457112174556923319364086726085271879755855578060165034101865488694723985126631249660946899556279712041234196378339800845386969144924027193120313985080141824468450564119872571771722625934429043721273050356575953584910934520654547058414935729284705980419652833190725588128663025797759881307451070794302796545272045632896003139731169090760933231863151161513025739363657991643638835094904653406373079454154535858220601573616959712571734881149204748037490493230360819319786190347751424075190961822032131734296972545952853710223957060791547878843395220738034639415295213421142965149502297288990820291608908172045593240923522352147426793184164298160857486778081295822721872137769913091425308012741759211576049469068565073486466009549176609564482302878936796862335775811107464473931361365210958275316837894301377735229934473678518187698406728443001821834150247225800142992562992409010442937076816120875815878222226857058897861736899305656516060391081932173285536153866853023362504310228526176787161146670113319670230599011520572919756397023161834543265189858903266747625839126253089782143946813619438369305529566136469338892368391346850512008058873232330459572196809951091113376591353031164826958171287770550597375690076493079138484844048222118435378583726669067017024872436216680863105503503050447697668581816808727776689608436467452395533532069688838714257714001491185623757855054656451741785587948486998590386317632835291766452149525113803637209451365056861720862501844458633811102945966650924717175227433326322033884998672560360967989247104171408951150880775431241744293271362458438581574443295020332727543011227611439283615929932290974351572384684354203532564938012412457571373082084508337317891748218606271872941577960888689130286137345700224638754715767828139367480025810258634284324585582816519428145959564181542570097751419004795729348617869369633206187963045225588910044797727819257669285117169568502346466111573147022471463520633835950236033898276548461152275046729017356213260699110185735768727072987594537123079330422131395991344612391792267718431331480497947860411462193711184087970397307558625060397545006712385344627364113351782343887963076428996357093442515790738254041417841744366309712285919357046975374847772283273828259875704651434888165835759962166959162129843072721711106096379982812916429820911012977582747423503612191458988237717602899194446953143603876269056987825013108120189038786572718382748227826126191729677007996743312907743944849162241917022681154349299242613367706708831582384797363213059044619442351664832931961549145013675156199410168151421912968051211430591484185181521661128695511102101502767384427579846087394812342678872282108630883966193111782553801372580701246521882586577890917363638200698717173310143248340028222812826394381131365629986953716367241537239228016977415961234806388955733203625850829574742806700971396323547020890794947242277057829088193089259250800019583331993517241283420181752885324430766986166918256506481225897549743024157677252420158709612665720988490237393672344383082729294981596061027325159608144697537705179883309363223880695508360313983134356503961328256759497698949741513519341989758629472285998473389055148288433023306002348315596812997462120159548459455981865977059361021692553714578850146107100981852683136449877993845239506147956842918550945697985917891220255880115850932831847765413609788045170088747850352657149895458363999599274901249188454885973169453841684812777771110622447851807437368840447585487013465367382653813662252659542377117619482319550182160910267071592900513270788945824157775861907023683651716578181027740027616206911938819273834912902113675880986340642421768347561077365484561151221705305565160913197638885147180178666950456613439247073340660936583954515608623872468220251852347263639311781113778705003129741687778804055104106645008865572297341981624374138852587715060834816849791419606021289266875588980728252105336786353593257461338987711679074891690216577807326153154341262205512403277272921770607507804565563514504376207624064734816565849156679026282796485065442053088036430351198444614066517839915926999075453787266709956520752991848093522830670798747992707503368496717242627873749227797855560384538887452139217515515397326492189494900592057518613781785521406210680981895402048115142713168495988314687518681759727413087059960406095576190240131964045022200511438795720223368537107774039516638759120885489715758916821430275186959069441538945047320397259066431892260674438876580553278892755214752898524705894035795228896486167256716433489295683531595233842542782443310539684243716258233647192919522653973549441254884633709395509417159966960279792328422281602033033660036390521298581335447941277279347458877764417310090254449639460588081016566130665850733688911637663422610241611037543210015360230687778092970881657314356904572944140336114354745647680308061624391158809164369161318386068328354174567603560559927562784788401996987909307341792150108772948323438482917422811774251304253509193703647312735189065849050172088765545836564164137440875821201861678726765006518402494321956322701309353207689314781469945819390745047369521687005205939205977781227064921108988953380733327109754198877161876725986921663420065093281176802096283635871913804167366515681258669518482247581244752858923810999112316633417775901958074926625903057159181820550706425284618852671309244473423204456265038737815695842750680527089075875928541286135935368577244846118732131059568527185167415993898820288914997352824312126433916899744997887126295715742169158751998630489812415459283613403767305121087914266636580594558361310474137185899260783596070080165727041615283376613768142502623781937127963634933562983134837826244979446534562967175297996134947299364039896471574931858718419174318858478858082547536522861514047135306611154758601819412402305371799121902377059742967781466726654420783339060147034864387372174466615739076127431478286362984411690015245439219113518170332688267542189893104020717819425020483783329849421531767060856389908012970840173647225775360886608130369408580659294535400479582447543971145165655493971323381734898075670013667532701274191263609977876993642825485274720186465994570943200524005110795385555729950386660464563910146390356647305751466597775110662097220814026239775099659159690672621410939716094073870491710333259332952444446422105727888489043886524569169403025614503161768014699879392587310284971752863755677490402449251269516717951583917045738100723289582173578757710984299912666790717710404642530384687107110984228683699941542813263429126868139832906777507763582079736306811840116917263466763131055854951403984031765185603890806397692238753699470391672623549549515444317924797345018095334061044721251669736226291220296243351472124451440093072271803853965130762245500009989668475056116755877196237580176738340426848382841612779982913987613320950522736375592941484403867185488895333469188227816046797267532554471240955806972233978519925616866587195928725514770764503187695324209347886728604694448463046096877709774643332990962996724309560043090016991753542685171794427973103331254054657558021799739575342622544545256596977216978918763232061610357549197025017508279728794883367416158303588062603184864275852087725270953711335343833090986596249202854608683033219027260480975636930916871246501366082144267977454574026730034483758190789827776887644086850759024868332857353990357490743078405107544777475924287659291914740309375033721077360095225370809230479142008979305814698392531102397339381809305904030601491078739814271969272297387704796362064677969287763471305853166923871784093429763531515725232466708541364597163861268223921480639361873227809331404086014365281246203742170300822361691674049289127820217602814343895682023352738567066047164745805886254279185628504944713537085870750390178144207447725261020220342216103899257206446643119278689957575690927375877029050985702311699409482094657079874902824737451695483315013848234248327651046845746153694435057066008243002200418580170340014042477528396734000128427761476995645972822667404303025927196976671589073287188185999503186051017712280853116968320545970254067776770296287001884233970004179539535132930586106546314998453773873117318317403118395155432650859380046131830196513443143937330985039398447536422241945868062872147045237541278128879654513711097305940593295431152127849437650198871906220785381129115966313738524784512771085548429699288472995707399075680717191395788343800715152020747206657037163723119272241403259666027394877886755356820943125857410822242985449130069261620784907311165419046238587438393390679173853022709504679574175745593999090274890325404435059958707212558129745658815270765705606733678725978609366174497160998112663841437199009290868210889943428023950460512329369002073593721357831789869565902074639099313561623943574384848223646075880332571767115664671844435123056864632014478550692057861815671382825504800599268039434353920657737951321480772086255953041804196961098064884301363146277463308711454601140274850222938314527206614814377519946014245763986826329246514104974785771746291677845216349339812569079969877015033398944270365360787761968679916517006738903953380193460331109071066472878269431570743070524423435078618695785466377483717584587266782586643350277739568720855978280566516618475486341934419017157249616351692136053151251308987171336879480896833953623053704135564340570368579489085745416295832924618782963924499021247916090272323981423551864108968125101718623707463442073899262552269574859132785023576040440120472294179735866294590136617330496515625436345592632244736498506608167011314437662343061661801347506191993504661812725462353721591426875681901698928041702808525991429167862489807616397372613716183066930098502821986194964194701566444566492496072895021630498636741137356818772255156867896561200755498494202075001230744507491053785440629152092435656826143684895719371555184213847339307539752101160475240056381910566196910676418385145522566168889613814363196582431164829784190735934061442333060181599690867042265480593313309497216261958911043122805332589875468019244771493682446270263520407442430683850341655535719984310539944579966225070481456609330840897459611696941870624591979077685775798080144423482617651663815980766511703809265579171440085391725093250550622594396928124156286901504171987653592935050500554328322202662448401227763162608424135488476041623202168290640799784325137668511918991209336906539686248845688499362434936038982681739572631475748190041499045964042372074278419520641208946699245448031819666366791459321725306058508952155043876723866269666267273859002298905653786038907782768804098304368782042065574611786745542463641552587685037500017027137475826332935584704977893064415175970155927714851410042764071687659292050329182207179163169987051424420823029006902573939311211893577369152309607447060495588350035013578880135558719649261555330620054020352560666223573951067668192525073341005589985125707529867542905188592329784393908744126513938666990834430948271714535952345545933239547480215256118953472680818367715153756853522408070728338765113598127560679833928168400224629839342125432411465987839986835938392705905681267676835613829658346503339470574149414250735633955488849149165770191068242314252511204521780210087680589238667592359692848682102753045383974722810836941664508609301558354750900077850996520339453550471106456714371902116459095996112448303950010211241608884080487559828241849075256208581600747984701349555018985605883416327492398077010036776848734497104692680674722449785863314406695808484172392566089605898845848471118228213741781410447037439957508488099432955564946018732672349678529547096015339029707326490727219671905635408539459218857415510855304097137784544746306575774183719146466669512252650051602544446202085268925623529640353214753788217805635117735648362599655561596047224516822520581816597767977424275952763205181041736529402781174417155627197320214006581482195827487111432555398422406795255512287335490868262211372979807815756038462020145852183914801938102553848068097081862777583024649234002292122372618250248603141760074949904881088674515410773407545248442964909415100120900578460897169421623765412262591923381643453525104999609184308930631938455253750094419611816781471383486792640229434481923942586927878195782913398943731568666547290021576305923636997448742411089827511913544109145281509992645017496648747465522079101358759610952784162038690182483878148474130029884190618292244637104544294846778881448155807073105477531252505218636152692454100839357072806369029644191247705916127288082015443293526076905988662204501639710839617602776605901059972430890745542930062024006681968477982063444012883755777553515435438781821655242840916859746385768343003682987801504298810552931508886603072321148098415928688840339556171324757753370798388747406597430429204609327986545382852675360431026882244005021530026000029465133854888552719252570887075311346459316998092934164491885114143327634315933095895755445829751780302092397623981479248891588658354976886757195926935039736847474944075168853854793695582137373588521275739250797776807443529563836563895957721701868376973483511410720061637015459413403791355394211221358250131381050137867319397923768105683912447924679122059488891615562583622778387477772900425280927091392266402346754105474499480254930481545130232157080834819277614360289908312961078690439173786449479148664843833724119905781662386170032483754362371950385934904830613383381845090737882565508584172780098166937349528962157992426570154631368941426039183147315730488295671286714455753466892014481177430093104491412538431059736843502499254451294123764005069252266066351596076447987197949590419183420361831993494882895423738513226748585306373125358542829864808254680047911316426134890338568224960577135528839125891561258693164547758855129437718266819781254223426341298721639037961346339674500452784483409327540845774649588207452987819148665281417753664811501773530440651619819204382322097548765130926659281469675255149189018245741554519729163943218675811754703017723509837688775993986522540822458311473408466542867245554613021216984841661600864319332416203554933050354349584334221368833834108741848443120104710137432674777810440859339805911427388280833124719658408486876683592184029361470911992033508017806679092003562589503492614774689933083519236479407348373679420075515190361415333370384519106009416850034235799020975864386716894829261883642960602658320149255453383788266182845488391288816119999039881977050623264865332479923830940126255975097867089282163344773155759531448034947166480802652045682322048051095170851728029082346923581113847869443968861907199108327790092581780241090159973582503741081978636363839895564243731398977831466062909846231836770053519649077628212837545138460642462479055009295502946830067149384773903910408233889015435537617515759006143066120424966816185638317868542380842426965662729211090229125388449888291844972164775709261026527467937033764311756094239277965611330519850134887586412299058625728012449885896356429366078047366797628478114771387575364888845296333651508518549130281374842254194176434007762449724740880851533340886018599713524757504149931497438827426182406644313450335891993229871277945062454621741654779044325681128764366549099000074083230344596074638180571034627083496562333498156047091595528542609194206110147628284795556168297528837765357543687594872020175894761178856726742004441897634948945415382306998415193421013882473260082498108235382694174882822885679051545557719596681749767059397937520728988605558428811233654182078367471676571331907490130620324081534519528392624492510461011630129729773718957287186530947800168188890743040955781524689840578617542229472599503814444785410121300400136383017713016133050314407928876896390849844240275526543188527086295094497402577479936743880445850281876890110575978017682188972667314298939664062580351737006272744051547655963313024007893462718279407694414057975577774303007951164269103683597334872023536883862368779256181323660963899855900535763181916362090359116538072350154201704627385621861886272849102487486179338204108872068532393152500303216890620845159922825893632542982642258995011106001441285090516140761885121561440207648467275828180676139581164416862781919505640838668184497531810878075896754792632197491023142739879280055475522921900333814288090610881671280265727173391188388341003897258757256293034985444108503932966823897999608680451430613722429003260786553594460302911115775769197690136440856290967145386819010317655487357054069155335831508658346890811969615116547151228408775255544182229456638725629953814449830324518898640271480123047270900507550772831294090626366436329016139586757274556068946053300858125732941002522779541218319142621892965603624271787189280071137606043457996082895468189625627386589091128456881652439389740108312971327565174995211609519760263687842578762290966223653423809900199213744606544899586162718547164994789920383231714240507778937751756089094363497810121080085210680793137306366957016458995740342517767578500316991140400501252970312093289113562167826121663456258732703737947894949031121391229119748968749857972546474022809359029683299904135952214164507711228358520245614623872863733422251638888761454945076525108662734790210005867580410658416639798867382661592221032311251174538008796921546623893759589040215862040653112400367962250359643776857707636826797970499031016537447191680687805351801599108067331514894803534600431078636953512545888963439864606621298808935932110431861358353240420001138119675596858745880336155787640503237460269793308552874976213742439642753254348454092523061457762366584382447025168209391876927006046128719500693402063141985033868338332590606006796046470200407476262821854551897027332014981634301385120391475742852984633973459593407680123574258909100808920213704538427895713408369929247536565992177501810583374820175313293919045690875897534314134003571965580743333685111500020108927838475427817517670138297499231156507955859640153478147246564694667488115191378477078089832107500482444980543635492426776355745836425437672320502554327437630956445450059281399494225328926754353932370297083242112544324706555568328195964932532782938883436456507456925281443195180103166779874062492964844039301350814325639616082831834563821020579447136132171788887341370962474861335691656446023626067303407929643112270836857759406336676075615478806052076573229847350320590086222802201943620513595142130809511569349109304338585364674933082033947649807561771180584644090778984505378357549687621327213584032895523593875865796917194842684919521030112620647752029876662460632604746152669743773806649693444036641179015625931117266192315015541982556480148362825470853449826981025794705697416841406029012015991320598663475925775936736928862165584609280944491556825251872099847333025905816503340539083709686556282099617082001551589117989921971921117860702178032689827862508997334324781169196753028665556806535572661847913077092510386371705151364867874363907868745876865713236498054071562037888779495637962412146464354079491425047442813689538289730426825295777236598847133745302539914504243209650260469350165492776239342602691091874597901504212648378110817546856867441764521675852526011520402851391524670668023841886584356578416255185684813468205061492867913377314931605153139700578841261473717192447391632920802726850967461916803113567325792028921040103635403515453690498074327460928228875155418093647166700490218508313743340408492750587903993454381940917584471906190207498628927976836437042133574441633336438397595477191345088926936635506296138129670786666021926104206698730229051997260438818039837052412190780633103127193265684304280285431750826579007780864754475462998387598290353001488784585456740617440384841029576172588043399007338881950425501298351326686950440471463428406679833019618321946017557024796346991454785200167805638376247151755552112315260392082967488158052535324009751900605791111688588000727614799812755248162145658720857174789887799799518882251054427236943479998299316086753302384063152527743720697740574999595612558257937360001408070907621364500117325796980140384153095226963560844895556568274614501111010678809553084054651129885762785127913047230309056094170723562052056543030799989041057139792104026942705735552602635160599733255513438340369219667902452955027617505139560741316451603632260428152984102423282015261808214861779619777010727084201343964806450618020859487573709027170324774820431517081090974224835355024718444495331339341795578495856811128056342105566423417202355999410434227089549050123708772811627606079005014052454238792476241820723021801470294418720076237587456093815871525541472787875699299275207352173809196425220626364484680590037487944157804203393070425281377079581670180774807217515939473175787510393244778502991138427928076810897877073667922182762284629302750276040046046775590244650281818458789894412648373861798542421018180536127532436557764007198553986536021920260953139532017101949696340071919691026768657823714474965137684217977011515393811161394905288603181293256517784456737856348838599935123012966734933117624328365907303421462373602391699081749477128068822100934469116681384205941389318652585521854985963924485486778698943238097845849976034286826936855679813173457776941406741794700634220944940461595647468577118714959214303906813336526708219175868448668142140205914156529509407416818828727129602111226740251171354467065053973939954706553410307242625368580242929944346555533873987987947249434657026297054437334895382459314718054954113503861077489543636465296915197162950299031510324745524791601052639545799231766003339246345855932723640036394735292129566858703977029507386546053170159971465738555212406973220606619305848895083589995651690173606328190504738374093445878710730652928573217625619511280718278816240320338444387952944414404477442752917738620053984994477247906257035460383981781588342437557663317668258817035401354594698273755543387166776143969339712164045660284696488689080663833066212608943758059429052220115401765023603057613104272104377162212363583739153397529314443239613138797227382544166376536472711314856604471123170300509380686676213187091669433400692101271783828414676728776873860315095713561764996541976182607515599411876344110110512626606802864666452367889487242625800527137121635652844620116441678283457148963002274542485539235758585088973665339622821604848920449844500338464111860815014790497250119160087634317773414484586855655204278890119978771600451862884586002436167384581598128295821693951351343595172694283670272034639647387569371204916371167285854836796916834834481553473184888271053615789073503173390298728581061156703084527931011606090997067277474320392081014454571380305623649805480367915561614364703932911020735323104095938774272150838372831311716881404488598621350524081166489342726220383195891850121982128997315155012686345789382411374366191850307806403129599063026264431650354509060382946092500902164292099028192271503018699805812267328317444976697482505473110963716475538020785511962769994934130147055400086813510944488425307644640918549474380474067964766545387436652007420011495221434245353155459984085551812075313052539408847462795476467528738246255012747348116104925873204763422396074147385425626114858505571703748536695731741156694537033255126768293466025999056897866203045732578424984116119683599743294954769969977612137379339536263204789161281060736307175839629814445840163361414223966552880822196211332929770343468241173437685189377989251977629727971897772958246050027087777390047973904906703122351412046102303358012382431120176085591751936327076413228432237322857121302131373058766998749363551222719614419347484158719517248257582093604093912238072255211153120215414659158365379304447410574471867577757413045211150806251935108284610212144760525741773592682027621474164879218961924308841880971679102747873730648953268502952905168735371973261989534634556471948882929291045885143176771174235740143164545500983730470715373338565321673327987693433423995193190206447507742302840783998063389291113224263045819523466903890603427771708084016157821703897663420231142334048089085559986138843221213589997323555976405431999959803142470817241085595102502714192562949344436451013158673620248508102734731025359413770436087903105352656354405924213461250551234506283959479227568431848550998914164070445064622535900213231919582853181669177328420804078909520293046362552651005359445569822902597131397772005487005309537091525000374664576574785786506390750714914874184687146917755570883214681496502317632100142229284683222276130583240576884120101874286846524831228749175914336511540647488421257981903351548806049759477750272191613344813834124356977067735910407527299872706287734497800684183591717626197996547817964095822594508333168102053569993653132669542211349657137074240611747249008219928503083188152867167071062336890554568672160580565610293362095991086392364354455707560801285985098910602748772132526484357369498293208960588511394235555818867530354849950113636458299993914850677626110998443042127299699205628668263509892130979893910518798952080849785224651601582360099358408530925955929658359851192666659181727532143217177545379476955872857056998900035415494288258320398765393754049277059570593318565471806248571691363552166809492302725764062128013080858235722729943159759948793409613665051454278493900782609622799457152912000877713523307700301122644930697673090415312423370920243624303788762050856916059304783770252034242200579198737224964300360587737451350360536846687413192090191765725983989196013339851366034587372555432594061424100917369808014770695506372386675487866473013394002096304211224470406679790547743737957231085620563568402233324225848118918482895586336835766995747566183519157097754380349171740132782362986639798413083728330723080267794965551500106058041612171933826463370962494907993763587525420643500309457405593654549286031134447271369080789300150629263352205721949216284288811811938031598763079237096709123535486506015867625674831320101159644133107390932147380485178669322808680385362479411303057294651251730694630930423757441720889937464871153713777602964550416855105156743293047192867506054197369578779203180226652521877970093451215282349647208071516321833525095640080636365553671095556435196074300714544633585964259093753875679647338056454271318498173832929674327958734480945396999233145349454676280639158774186268485487093895733884990226774914654962162299225060851316509875714228286476564644570934835290131134711712622593247425442500521749660310337707209968315043986739360818501305476188854623997057796362342913575924166218016323768724821908266396468986442754433925175911813421785476003550978318814842157930260913176864497483642184260353776489937097851894180490402680361100506255445988618145649438580505620942999550985372289922744015775737099312028664142560445154123478088155917804684636057649796907348263690531855227151226201275497405404294996805375190998814554214884377410136087556190484348054039589769369239533711725797999368636234702121451344627307131736614143082908690009357480838356244108959011871212240702464888503768295179790473954675728115747005922226178898759745172252758088991064006313094863209106710288917792447348355567077722033054536733144612756833887000678423971530079523137888009408470058832253945062793123317999536490533055843244231008599431810968560893013096851650034412120632628372006980857810347135550629851850118916632281372274429629422503115215400159743512782827390947649269191418294080975194923066612794044653270871861289804819273651796294460541018715724461167110658521074126160432122808355588152415918275728701945110717677985180290536854179243676817825921792244555061210315953956163445143507170675159714589689252676552615793541431644525214118650114970029032263207689205514622968081922273901667882562922795530716987024825486281647810912275057261191315665453100874833597844671041479553659166399117742980908912707686139504021021018578461955702077211362457569910084058848386613975178309322442148711821533809025534874288760734569663859488821655268966128340826350610846585320280837031274243594402041643261669487512396882475920900876578047313873436280314151472207876002443065150478023064841308771171907011378644287628070878561552050503532336539058154184839644762994186952383103115199883135023375763314925333050288129319695373924272467478817636659817982979316730654852266809343263498517105413027389194459205668458881764254535575750018556341675861149170457939093376466278142864439623040743199014169351865753097339099276107042769386450012053442594726741526336795213099822545616912849416659597163799379998986726043151316467839264200427321477786711436044799925763799429450422382873156050282519414734981705630928831995784481868322046858575111277670166398879025657216081647723620733533512172624602137725476425047645893890023239506138750430201170524051428457288320633915684034925820591671818940800374377810995543470776515737635871948105010644148101942414069999689494601473918719243602161744968874695860051991103913594615128276424519106633226068577925096223203921228015456743791888505163284493871439906619874983396990643701158432110489592330776485105311968361667177688126279198747548837826130688459157178412244105440750837989866299653652892851024698648221881239710440092831501093667658251928474006383115243613874837697907175588201174744636392958519839555246897563627209771463395322768458025992365435446619404682174965895637441803246590289924017227676543776888736279572005122867081902617455237035749906772986011474432614450503930932925163207484316469937546435733731714052602410536571360580389356753140069712222885533374757578496548354290556642380014631354803079622793076437905401076266015961009272117056401580450651644803384585570469165767419290682962690473531493606168343122888662588912754891712427106159356226492575517652161714893615310885487634757582735177999244231234914871594786573951555807269403197398823720601272843890733606085313583044258272856912300497006985692844903302321102384678437875646083323831995658325390392446095519989794625655701632116230526058714393588905513839822221419869778115226334845202599221030235392938599094590609673153509790774317417459778794689031918556608564646179790244839723165889919435301847387128931526710755919500142196639432009944262730603399497938338232829698480200790367800927413295539925268907005066326641905190924927123263666626883522980644704631625795804804200331486489305507181818594094823105120447662783359155116897080979006102421460364914671645606791174332602559298812863088366794303802105797572166387794125070673330600339793089908084655062055372068460061613733441157161147641337583501531878887597831983661408769603262125873041112826299685950556595592223184208293498501887000970936542144111114048483182155760187132546428091174470467147400188892040189881373056247939456253475515160268479514644387343710163922201381189938763605434589690224936343439993999514529461683523034938759607114928671600436946179733338045220867324311657357140517394659707191475454715252689150010840683059845979464878395932901534720039161002781473086244921270852218905054863953855616285262925923711877246377616939400483308109182108813882368784978151746264257037547679176585127893549750359707194508708702666323210866968327564272917520646941784305061925859427798083287810877131212837635964796236518463987423706297424339417052258070642744885176744151048096027847845050325566812641508126413434966710631269566792898758618981526952414761319375235839579666507316363649139542368090085605842188381177464704800977152896429281630237361991050578191018884503300885593393479573169546904078978985029791988688253436582348714208621748490275069290721862087704172952287222303692538407695130842256566585973935720221078252867682567817719350918429308806639014420018051085592719042007080260572056146301528736020388252490598848591641528183310116615779631883940833878635945782963157778122591255955903876161996057923039799283761200895328856443421773751956385748579929962995490797314106670576025124521866592123281131970713008924142869079813630598486597391676053196903452331970835262513770955333646128317832041872099318655208859817040652643013502392164083028467830913353603331254335367836819930276000373196745809842003499545718531737493102138566425066488606643115412612193499912844940821487329765381337594427537149423194429992189156254058811333130401385884784075068001613438033092180063788234971263686687832888041825634773342054661467719621280735660322917039499904677709261405045695567059749473657112667844186196791008685202302890185901482763409831700395083492880296285703144979459380093166160704244568510781755431527357249316525398514226502613402864224830863199465774189859537982484357009466292362145516965985096971718753165655645510281002072338795227679309404743183585535434742320840909493449014802501321493015103256694012449500768484526045250052925633615125053049030321948265193737091683274915759540625878161566063746349414748288307653274686964684981781637305917132767941934840336447027336281293676252284573302856766301434554084564081521540472218878674524678820985907641557876647703928779970489493894459247554182692077141812373287966053295258124435436281861064070793441177148548947819367335242752325948009848363459501902040657134651254464985021280956090725021616417525785976266362626644275187472535747499013907846013095558642883033844394444092248420941662471879060428023228363521031978851425223370600275327545039164861753798677904960050695345907084967760499655828677360300431160240192124182973774467544291765080027224729446201848286226957726811800486222135960854631543336094356248703930471229328997385975096640785940161265716794419424891838204595940088752850966766112774904873266731209512641939727035730544731856246910344520277582320116216324161875712824335035245933101921505737031584535143341884657408948516264971976928967398079078498895381316609989615147705096208546924776194847316630841753886118953609225275971750239280840158191448660572212566980796350053200148614247401740188814988734344859840639944250290844929117882489838927349445605967839766289964126717540966846325005705707002059402152268607763834161342096867498289543016885868315084906659453365716223777197051710855648381393122418630914011426964431994042648368959404848716615941363166130432918857677624970379556771146807260324212558200596274341527343603969748366221314716506961189678157017818017768851552531015098916317264171405087512478983533587629230950772583779118363271990693671089048464138027813665537588013018559983692716227140900800399237071506197668736026829339017919683235400315670475505561987263901229575998256427396949328786319215552721912987504859979803887221674132831809264101489046699256913918049012209118639884540431018132816762863669744609243337999194536216666269929281160328787513141834143003056474086931100038955996377517314351200086602580200252359163820701344469237842737810840491349253421624294605384854300629810492319041417376735119063718480696528449769528949997325181467162784211544387120700292391916995993662944208653574073701170817745394279761128524360690453035020882138942833477591702562737504577706067797375453297578665655094848956398619566630402734988094027260755610127260721628073222787303141580698459833978378826628215737327447499902892675877096902657855184388855194070618706938012383732912285750191656055505615933197475720730928474001359259894066369796024354615343225041730084063204192898483828630484630996976908239086904697446799060288477355857242149980717331114885566444860121483471177638448096386659521461643455724550431409179277611044083139409691194514404164001284519127799830445407677984799705143442490953174414037318784422674223979331559354311353003931922370063791601739134972886326559147000249476761064019527993715504851508536364044181995666237549078396840727771283956457577196939238907884437775651044084073222965096435330365551678527774326110725435628138290562733134713873139569487177727715718942417034864477838081615215919752509243420194200253770734933482869383472426262672980243852189982759549344205184789398986135698172083852564848572532169262041565587160686173795767852170469409725078859450157803161556889968651742630900718356106240534359089453325879056202919768361741933970225292711542118666448341216289970824106747768417178359759710866915731350981813387044760064755268680601111992207742366437490669853527179550462365401668029498444396530414143663244214775434475157626108062844902459808735905072367972847611247432906263704489538841468331239300733458270029263946531967087991789974369633110369093796809320214830416057074946190352975479115309679964099086699556545182619069398964002220933649303457157329552408945411844218121452478218756977063960791861153059152985267746878178442880055375674056788645250979370471493428421661326695339368549295566051034027255939942025169902349938220489707877570450498350020746574701338925510270041850641800591783598717875155834824300004963254644362063874981796754081398781738840371414400918626625623293187622850993247952636572653004314443404653466891704226013395490427677802704819015394415720673888715369364739755950004567140284465562824776751346870991418044938817481986395556535666014994867303681795855751244219771592631926013842186188900941876400394878453197800656893692643893031069698054858189310282955114899796583714475004947269728559938602220349733075662793539993885878487471304253049032471499952644967088297718249458376379901146662566370614476661179941766327419726251304765301916403801438774197749664252619708202317833091177930969595613044766190978760757560131397143799363899045075407658962727765918533734862209394965484879949986642047012365332434309088658963125738545230022981140657675935645585046909479366394797491493987150141955960176302359830621549857025354149018380032637499183525794079105194656410340894712403169584812093902893241095079586993715826511427593866216658424757347431514907532222174552925087914035749249704447461887258800651604851857737271270552102613882521676114207478428235587254172572626217764732136421157285624277906811994723463675298592345679309646940156526805090535411585405858997665881489236456194526527063051304384826132495626462528398915090479302734560064905337782365285274091995203218181997498713406030333664214694914435185513874969583802429091526604162648226377233413888448876448413657541396332972716751054988890412393990001550809280093081741368765164495096378951706947922374301337287732793402250168604321500015902419914226594885677883737924727049746556093226810100331872757952437413765039599467500839855105153549111756652313995118441334320039154916129175967100916314205652158317366891294569125298224989848986261136936898303195006276785945569361301793995666580635951745210103083774374148544370679412917156391033458375897323525302354757911550557426773338167607597234729947307006203809740772570135743329606108807174118427805569898798537525257531658844010749639810049586061263971039398081860556191509564524885401178634674402684437239424504371814774242572509893652486342129979503501099553833033421837164076276245527364142257162735827774520695616010898065868232527734222080745058243807606800888386639048356208283517629055149472121729040947239386163728239777097017316760732277636006778119945577934945870174219735396589874750272764894829933425364528034728846298256445898737001637653462536090596757453241535363124901965802148183978764137905124660826095029667757863851355733200802844391760683524510630258386399933395896508759627002974556440013284070110922213616047893216280403676374719166765424428528197432900661895728741419273896487893772796708521400105526396041352245301863871787026308653798373094772556911469135009294580367346250426780257371396495296563617737869377173641224087520526234342029155682056974878112999320008405527743425745964724266021205122802978609299823716876196771517857599307548711401502094885547755203887877215574600607742666262361967005999275980218153203394454224498524636261842338884341462451446760439551887451061763243702890500342940228973686595875874422263764959051533790338897075721156118385282955330339495725861050966180340929072985536325372790064078315724149575058293227117231449016212433710070432911165451987846311139014392741622804121042328481251304915847135743271438825033720945569185861590953156506036502101835747632413688783121730436598409996207058211245617579722968214932012786748827837467438853885029396182688702719026987625699546401159290619328876225668959019666757816728961239850454886496791329863204571255350441066160459283709807253483439257710168367823632838180477920297623005824600749576870877990588569894408161312721732835883113461258759790695199886682967634190646849522233306874660330262698872532992052723669171545932055011151087074337321530466330568462378331579542030544107759822699545131270471217234387299622685038034397274151604990180435313529933664918422661897091383383701771791500451180999101091160319812480692221477002120833344952701509032245084809929462286652881618503404865146062454743923527746487855134536340409072663669177549792884065355406516200223461931049903120732534459692602678979382042860904737908184973576775224614050494558847595790616076892860122374277045263645695108598874958597236817549291215067487096712823339709141741396134908194738437563687410507174027612271885895250808152237061562604491114971331113067224611792602696691279973901148618353316213268721024460490295383218561975418341968269425035660073659647286162946598262892429141224845969613069832610793683902027893592646667144942515686112638279560084344681684747624247207086555645592696052087827487841247378077305874588765472898574898328516754796862419835811614409001472481228406300533573620011276000394005617084844365009789856634046833936278183859003277045505111621066331287210663513338356437582661272741432630663047097087250050922215387122243384415530080985542903868146102468204879931249500643139613849634055131262854674497380842878796934530292315759894792747985376903269863403814817544398016764546233661099778993775644802006014073007038510056587170390597133674449766672348923442600807177006283956020282429344573139147889565859792664354313819404287358272941484561245842300575777161281325626676556341787205161433931301805750085759041402938426363225260480962902167174198103894839698089655427715566358800799629227466099369254632987188886753588129960892082172576860948547997425865115549538234330965545250209195946797550866705662561254391840161389147262220151053459558018278312191643602781496184830590343886674915277103489651696840601461228223954755178531171135881343547670675246463474815461632074989698151043286594560310031438402621170778132991599268225625392288559327118136013340907190479334312873253090793003308035723377127960815052018640879323327014183946543176533140344345727622406697393738374059281211724291448849683996370629898721007058032578505820369212015265207781499245594215488370274952958905955751672813264396867300396611274143416640226827009448094487845661613655942015917541118794215636763136042815185572398559653378215131212923804534907820925737963864429473597106333986944492005178830791641657461309014656793864794720449141552376847062583796001104593759306506700499768616138905125479936962779936730597309252867263830707411733835952623258803207004704811907291724587573801172630689730059313201587440448559464278625823763928961000642240878367996597233276719046388894143583910038596369616320549083294504751809133738145894811960964231046715943305640433832892696713367517505202432203495939311879055379659409463219507609124810360310454555056563559699090884400373826242349260263428166076102979475381431732979119138183206721956537573627062348323159893516891482640947687857099374343464912028197474621352911654625232397312874572910915662755934044108264777576916547779179293568124213131479070994983823124424976359716663120315963550052581736569867931833291648900994079371679853115266897628961961391848263042599447290050416362973103559592308988879701134253859197639345210158760171202965456641741438756533036514977149909976853024975266317136903040062569822071458042645416750988718255775170734729945758957907277733549095189413596976793630103661061261279058958844193121651563934129047873938201847078566067766978148376709498727035776193827209280236679355407210924284158250679090247276611094992487629183835960054307646673342446829728014879412216666009161067284717092453940177197072638793138630432109322042800480658856215378587750217653801344274614283326039677734815816976802311766479888733187334147501981728900385319055812889321928485905824013961470803969651990937705087689065768006026906614402050531321034487639923069237392491282019372232054130890248397355547774453925968554926254576487278166198141897680094428200471251364013424679743205647536585950291190794458170516909324317027378316544638734766988925159714949149823529263922838543970330374493190717803853706382076584708968417240211438570334958712005715899388386941327464161620081191533649363560483352026389200134720342124959778162227441155439161009211275521022989932298861916208471375018076927356438182527116098735480568345791662771897881080025651540566020597431898294283299578097213180930716829012667440236592973098620831574064154456901327288229053567274695482850806126903726538403401309963784029049003419758667785376010488595753848309823768946730622186595637808751241437369468611320302449467991041232994914870598793827445717014147435200992865582272311479941516198995808786163215288209464419153455404629298728172387116096319628167381533017304606633514928575957022385157052689739147587660311196484441111759800691247515935600860490106572779455735636408060111197282129219315079654647912348467946959909469316621861113340914337172287238405977637979411231452093992958401445713256067017495077767875864667346756973397351758838981303247590870992477940058855958941498903812588996083836345160346277580915544340338572600170609980252921218745854562030423887478588352973471367720578197758758714581283998470358070239614658222655421824938215924575308459502010575854266115615400357108376500639782212436184522473340315060523938364865643437757677930368804304991144210305430183694893753644121370733011213557734734226419245797660478143225601502436073770069291678282426243412759493323696508405589906585657192004114733132954440669348177597770144801725185260358732385987649687330063336700554540469653647457296148801768462351377368991586388769600444856397047369384633496979174312916077905407687829477385196919727096378970066592920571763551591231564243071880080340677729329031126316926511397122186538128380518699768949776833071679163015922772524879921954141140470957381045083697852613785420440741312152552591851754663511175530966071906797445365671217121355624699906031577278529827452241671631593169055918610007220018495272870721872435516970360535151938738922855642732383114527318067416310216598321244016574633588843831774239643116354474539098697818573121020216448230309411069123146121067316941506549484088908646733701932827964074803628519300201189808311988701256301445756036977412766986746203753461531296304705551386205044840450435965920553716776431812432426078043151335945418322339537774149488730444085985249674810311316246222975997095193317258919166544525527831557829595315801496179611305520257417105025546734570135868278452593181541755219000282141725503393818588119377241925229266624489966034688646434849480004481502784092963178389993222390871163022430456839624006877355195047272991907645435788218375126261356994919661739833828837516269663594292376298605390269612460233123226553858319357786197841273304104999295775722159594356086262727646195032863997595130823636153212656795852178145330153126417817112788048759486103370908225412207714285525969654339193982265079619185953007841017711398481449701833587842904429096612990861346690225157205764482985379501511438904768427155901681796870654413013909067077766955026516355478122578871136424042441689984093292204120263458463882451896786216580887970967951607646928511224120074988127193832833577844935015533629203910289745781562904049198437560694498195676610232253326487401733427242108486395532558193122295717319805974961673582099621979922107045295137374918744359471620294729582883938809543868592192706623789351227227178069665083906620455968595645407081350563793682116212063246867380403487383105014677496323954935432071300299866382216048192018872951505303402178240777022020956857954626202531558011438203701776847623029905522741684354832517027516843759498162506173008988878380404604186185376927528794187984860720582615152964602229638960584874562526479030635336640562721814879641393220363988273617462725366818689307315040385168584199394573423151259786476018968699276386778581779779335983640205881772829429356058719283047796088272696915295163397564364549605570205599120576282685767750770587441500805923600936478939395743268488253918937697860915910024992829260427514527663368771632066479689513147171880878502330424932445758195412731196782244338236424812784181732113298577663938535384469240659060272095282314947195471148454510040365147746121233941076039135239228404943315256780745883093098861998804169500006980125394234792453978922738932058264636515625341871373564880831089252554127552758449239825091278082134849891783255910732411215355235786261923250195947144036304166322937718721385009442349955020494658238269366431313709745636809897710744324298492948427024229568085957296051858276344254959068338459540769813764982484327923349169858767150043630916503233479724918698417759115609780440316480256672580895849051789678797406554859906830138237909483546958559618511264875869885724309913022318642150828966966819518320035740770203722427376711652281573850234417938882154927048692349068950716859510985894874979481380294958939271294067865624085296161618813620752819859115633782071888707121062819190679760605022979682762338858622679310627277594698534442624469449395869063321423789914514476424350702154300898073367114460320497079247690939418411665075849616907946828811665368439190164713110035398297200458035105940509772724609552746860182388913721563170122397158806610501188225957130093207109414321058196221392760897651250714035645428021958254958239801272144472359912973095854519992109561247331733904992617259611439228026668813395344349832662698244584715389482898790610204782908729456135484468797107118271920941766083015034062805301999702455759898937996274370436079697366157938902302879158916397795900922313808023281643092727861952180875757697102622643803594319726758432112062972386268769501318606625975377653019543690518142219480831455169109384225803428451973492022093773988382938035111856711878317563628386413696294656391198293241106697918815774129073729817960950832612806146794488145324614219941378632366518046008025114250000866809267927923284066841108117924522905470750873128676479155749202052139552286390503868582007035710247558949916339544933180188682290536680547411203901878087890758708702731129277798004298202430698176844137160351195924105386969261005439358557002091757426421216017100418929503591470842034118350363852331054767641904945534980530352590383645683268446806416445857464612203704323664283727865540520806419825107232531020556147088154788152531311121829685890394159151703831675786879999720788052821706933917661818508651479351208017067726401383906193838355075203143862086287000979518938210967387327608123505032751121588215255976380220605323422569192907618460548291803904295743500263023193657639214559180249364934764868709918346095064767711338967221856207162712086717606572163307173126044764223276172911034095959208521298598641717872613551069672223851343661122125690312132129702532182498025005216910679687768748279756622312892853497934658847066177375496639565673312107651138782459618539766531019472679258596660134988750093730842854704457854078058285301910331068990805955377574999669529463141831254312262467161050346908121787429759147430744996637037325849038171225878092349811538094493268106422644037441743113532163498068153035437757841558420312366826589906265168973668592451737136940565809542159187265412125903038740524106806913806537845469452793707076344689326369660060367219553509651141791549981189946175777749046752220774559498722921184301358216367149095907313264420359283824371611485595105384484152479304596764788644934288422871256994820148899708109606568442280401909642023637819863173096739504941070288518887563214990179541031917570491394451442173142480317217965834093200418367536849447654230660346127868607007725529920287285601139594131556353761187115900915569622965460401868769186811552073380286314973565406869771788125281879378079057263520719455602868004995574749364305341135752202682910618379734812431856679860889590520073299706523326326181425446061504458720380439584666449522774901364051037433020124010456685839641109059485914554238481917288316718301002871752942475013654031543774298939041759565327056198385541047835139402830192446020909580567576477990332461137815074135937744429674843551478594079863694981678060893225138923021787279930788835403664502202722444376700663647379192025067228338037824487326698551982838606258668832663912456989073154790588976102746804946226135708231120559238471387731020939737164082295581104581365726714830126045103948924318836059608257771549865989573951692682822202137974334023061566440503510976635736307851559704202281935421009607890574143132715563439003718935754375439961984670756364984666867679326640865960674230744326272571726816123169055054661663267342007439812985093496324876068409965366895070520466619451371962291453536310526997305242155973193744821975567719241425106461826368087623933527729467277347779787421846566971417402879306157383897954011214629427502656239458390733135554606816514424301540390141187770208258503636978928475406376036673139331138885491138298726940129594686669086943370444736741837094420896274511138284241261750504029433889187742764733593080225558621941931992794989228326602211620274247439438864187215809125220914208685432270518102310228422705583185269474107519681504134422880036422458471349357260288373405589702493324911380107369491364416433751699492853642765669555868039676308945096224438348166887447005439385429484477945415175923633888188028903096080731441194325190490349853339618116414304630000885759010958157874641282973281269885752468963085708984770230739962062359578254100684054841418386322823852280224085732068865579865899347537408211519341257972504134706271266570221882101657661775144095405116716131181471713132129554607897003976028275642147040046356629364371932050215125196891106116886440386632242473686446477586256216172776060293004480781324032667128933631559603852156890607717873054067535202460085570885868687255505803031103073859376197944166704323255171459860059073957645897577133360613395851272141172287400579918645179915587258362145430484900952599587436898112677999789742138995099409157235000648853686703724977574387495791844031344867279627771194666448349294107562388035914620607640838459424934696278020769791154795732326697852456477250937477378628446845829413915481161281548138051897338756853093266316048533467835795790632095773159130048127901938067175552227607713044502123285678175597635188143254522032487297814486533573130896018033589331942137624743828211799253032179354782753327197945654766005023651512312537787964260817791592293845220217696134788923974313338819805899933700871465300274795620504252448105878842484077567599174596292542607415513421600644532179071920789409232467425824478982621514213755690477807240243014573230924176664797560983487723629146783931297042058686097152255632134629940577363286715467766261709592863351614470333012051616123715154058712954400890917046002308449792457592563860726982176854472825714230111093917569044651194335115281349995968480992476704355385854351341878653323989255422979534673460251376409506425500188959507081480318289994092065314415362181931019860829408212013323397994062338069707727684677001170748172612196173698158868594538660046847350876283386422728651818734273068267677775080378373700570200808604386475920034651709886268069976528933093236709561509665991220099968004249379344425430659633345280638303002099790828194400693266932700483022947653168650083938722168103627616544725717519212339188790229938988521275825429776667611664543839374696367518358517217858518038387797085809648402281855622003617880418290450692688214843403608428697452948071583155032756599562971180628662344863126646488013370886892965012340741884020199400823795201683709587640992357410485881268406473441016930705622252108252126221924813261483283252529347589446541577741005344301708616776268015887276166906890226191524119856232823156354279894243566169922708902699825591060112946801093036848339637611264825835065169806472539366795966895252292097924316680148470968426247957337791963988957443621214803792550017449013333827928192719118928937889775825896284146717375942899960567976687861700738486542384104304863821295367295367113798011643594646386450376660193143171203615450878759688949653256520485847684027251592315665988136707111911189244243893016907111544863749074195305291141607919977827802205436429975923590153170544490723118260896015762688029360678378167311485525206785722701916970556556162627198316416857306017425472616889205118057250495685139301872631627146336806596371254369858604142324479496965072676033469155834291788630010549498493967618468493112692715204805664575301014208440798306396021387556826202241605515880343136757083974315198540545732660958948159953903826067070214643631095264075007342513998841943963416560689716734863756725903979751279280532901574653622883074933174729662279727523691044244775386900724034255220411398324904645802136971039648735562760833843185727486083094624810257363162571093522206634925824387284712527488621092975592964972214691803639876334589272115548255017042777506174839749184366842376908938654904942125452585359334179968784298499947023089805500925403159310116862940087135715555800821507471409409841282644775221488521632941415912155380605051885577528158924140956296384883112278069044397870849062236153346980372075724098284748835200406118719527474652847523510533969764533439709741621786352652973815436791585766136967635521070499230620798123539273171285664901171659283598871662125618700094633033595537091377432605602395909458208957243476065578456778904637355530240564357953386159132942263470308520773029669684125274865582415837714090896820677581164899316967904813551355983221586676766803276474386246454787468406987928347422045104507570721263758254661066536015269394129069507561427304701753131571742938962663905561458854818546538915202977284773362000413477985346897747132288442767016197708207088462183903681209854750673754535198785956568266846400182285215965775188296895321763140014683019285566864442076846297318684071902730628257953793766523264684465590329673849587594303458381185950291658527516417097904896493919604843583185811466186168165655175813170376752102008214355233148318863444651281261438887725929379782536648664073043232293399152392232664456828687211452376757205760294372138190014780131184627744097009937750398842082779365827739648260370864664688505290513328668179418042633153040484289214827330884139423188727329936428431156224090969184700084826692528882870785128732971165793855549027630652879153109253066363250949299563813358671893644065310177243707306044012928393108778056379791448002105376519108895166008033954284719914276619967023100335380692882395450927308312291977782425582579314853727237571703096891965083387815722638377641075724622952356422869157823944885128934803458308502140680712905147005401898508757780489052098161457838173191201685708174535086326078962768655800985936613756113018714665634336307391394126246656410748280041680848784793763692895206007528686078763752232142793225024833537125179250481231717996664636507620191980055004976631503763300518715015214882377686486291844026206851623009436242036796253321879138943129630297106205277476325001691554839042863040814927005027029126395381594038714552150238430317498075259180380838417130297591494379618554990722619068678771384346236670649560649135849761675459876746623906699586022300364825853898937584443225939830080620554405385060462804646788153248523044930208776711059416782072609677000207949361507398559951128345615322433400328119706675493406375406525338345105738995272488858977435012705605723401791193005080481585905459521254580900165129545866911717051938753849982209207022325368405757499881435047106941573645696939352476747301320539914201687820906435559694095492960796543422598041022833267604202811813312739661634242644192493872585591729328402057973556229529261157468392487181445115265807201693604512568118978541449564607192808385713297169590028227885854073006268383889682106923626015463990232145725851638074613937211102369996103193801370772142960443059259208505301522137316571532835285125790785262803832647859199825033057437655712239436915002303426563584596953304768175056387936494257256852828958532183950672339052883647790320431226894992573313898927883317530690142184795960144114439969465795111329210316412332178715530230966185620186569785177313469008552851963229984958026191830151450746827783945032156156717246939636975534716981337734654834143550249463939911174395875908613243844124921848385521657030270881158047290205181526560290885260349338607860025997594182850738889082321673043468154731985803067984848272852757300551116565551544525904692614185762080775973525958149366983863546357232267899410755022104139581151668258707565356547676565093251174546866206531862185988995422783177550121226705908725793288593568278514645370477390002766187966635992342114235198190617032837516391964702114849734272806544489893437691400681284568495469494220894685490894534824708091738315256438367850562252015941833302750666646747343163531186982467484662502609165772536438950215384083215968532093877132627169845784529357821815823342001213601088460625817937766336239769949121844781825079520414483091174145413543698229584056874471210081146196797840525913027885218125567851500463924025356586006028600640847552895732450969753924912305757640761464107262615109117623273548346464185968522890945131439047634400466448141540932283115177198729517319376152802492781233028866321327937695383305344386761412125856423587519880210858917509625021944899048628809782586179275367474747288059092288195143501957061303528120172215557404387402096825648611288326567554349986231994493281778515238921430086691853056243044007561976746260698397463725288467614706522199497917309739816205014025722310886393073288343755658970511743687637343784662027078699406431425752111753998509023017846565599342518729890719929117489867706097591725350959731083442344515119692218182829267517383984419467916201983542348287861483161350925196926458958715678221700329448287835647476521481225235288875646041408050471597079887120456954835544252203120958468615070726825370230021250166917393080123757582453298205492228185637191958652072530257782429641045378123723059396197779302362497470963201739677385191528356895464927988408313453214331029592241409546408130364565332445785214804201949187175779118210906095621837118315959271748131634663079418452444184331297562988245729045530940298613199705578621060055357899457145653534335763744822895299904788014424237118263712585612175677474489618166376679168312379809519443675972897991185949905618715536034936092811814327513645852148697339967291258884971819382795075586409399885349079297795131964265913103312059561047153634579957457084480328139904873858537828855570180527554670450077102696203467948201740611380463431795593279908814588197609478868056949725743069272761659704936312828794287408037805966812083412992893652246741944663537125605789641083934959227651870806277862187681553968601343631956354109009206634515994744748001160700439472359734266993445207263303405133968323372315198660700544296408429353562299686504189197177853188309356012717859825725798542785986416650747518037396709188153287961344129263532500279056649949823676728248854222728201612562480749466883982159204615092482840039170274399736724138543772957610805040835072882122682332697793302809763683903534580996031036064106206968359972791618400960143842269696400273941899931107075151862315522939263297434680954471184809356072849407974969916422228367976837396186391996740953688124420432213240279644200901559000168294996324626611069022533480461120282552863844107660853854918151446166831025671582489849253073131698882745545326229483346114366818668378462046588474045688788797210804163212252601421253521743944416459029495683439029403292432311496803151193055749094942598262591747615534537172697772604102592738187793551820812798293233857414759205377765570035139437572887806785005810417168862195808342265393830224002946691891797220368472986978984388284572938965128891973789111892899642731152414957189272290881248120314353239031381974086425153434640436264140468092492801241366942828976615575888475152630918558897106717175965209040021582886260628145927538674661375018514342989764940454201934002832704152841437535287985730496362395577194626799959343778811746788773234566299572192786312166441274524826583648932745283645472818131654295316996954369019371494662502941184898600198711984551322444459955965718474958633061361482458168461653005627052926308997268986947103655725537276013682792094708260780381104201711401197104893681510360773171730311443156712806150863856151878427956460777600684029195490370530171791293212213786908019779265212531789905807800095781043267411490523733184221279555090379170417800329223656933677697647245673677626952377588741093748826695365545536325598948602981711239882396938575631841046472306230781610086099769641656284036063876954957305080341119932092661778080227931974692688029268047151195286103451786186588978117457061958220526716975879895461123597075725429533753198756626696588887881371654132304112823814224919873528432533316810113854588025101994340184069876690479779596274526678660710982382500502613928955795786449738186801338627542715076210396888508966875781638289763204184900130104963969418648402384230001149004124811322135124213299942380980415321421783982843184753404153343294732186033037303737301420118174121828785461518140348065902185760631320846489483786270450973558215020673526963562693445549431025028753158694864098610124902958318539033602181318555997509903231229888567164670337367860564645157308473026123228246694426095832303804354071454922123078659830389287637325901850117725720273656389168995724000440705452159795305704484767417570891842112492748757693293576468586643131518577805356534912561484105639017658324019411340425366312125759955035529937322305980111907579457227848869544797071994354987873259504235107489504155492080191588329793061406440863916996725619712782588164863949945153986934016532372336750736032675005529807445882905695404620358228447561709134937607964921882436374531135968817103397451475789416654499329321809931218376247145696418877257319958348615473755320652201327980529616298710835322557483293375124280781004126831706567479962654317471872237882078076180349618555142726885695317105313766303859345643585779348482974568587788235720573228332834652950667334907831277727259553568105516329835801882760914830258163403409129569940989832656255600072322617207885476756815687508170639425863462499200561749085239518772171240455822322172681632756384296199082634037682725713590763530368394164859636715931689711141449518004066315084214770912434125207367925294665482473844076727723203930992789466253300071627128922932203192350395431301024579481018584533067011078194206202422064482093388631279595562629011817082068703437867566614120628567037484589986790148824664773358380675874051050359395660394936724488565464392479923147939181110548381405584911976658551899953682232724075569691555604784467997961666979009639594727788779760241901845882988074031349560399871790967614662072116075402810000955491606836761289197642314943747217770999930216287421646249371246848849595168501105838083219538350219007032075800648530949013114961233780889628229813836680245341415101922914631231246315041534093873970649251408669765961179555788454544990594386942369298695539736065381192758161463309989502165669819467442230081353427792340400108629596453734289722974874063612323881965094446984932020539332504792949089550032589643514188317630072610515114560809460595878969429203740161784238978387386215050744587646923417775120090280695375898573792735186925405381379207807009555165988505377700617196967371515590644653536822374166301809352227971667445396043719076100612309311804970802214290873688485823949439747971264695597314065390689140997974419484467421096478492617850130425257379114765307710800566759533339298521243750969714925541098820484640267460237743151765438777069205281476334262286231867367501227885660440411551834223998389481583012778824454024851108207722809409972998070948526767705904819271953921113844851658290487531422545382417997559265194319737716484041747181409781784359445777756100459530633845687507441881402277090782619086864761303592121541434396569991966929710678021360272875438157759911269848057387680710653855460516717843843904637237665171350851680292181328355099224395599865711522956653186884940099300512379956331680330097828059116793066543510410764169333570755163522595904760337024086278713946643151311844482629784331599775034547169058899278068967490269717376645568486242125239010159299631287762536809967802367124338505392705683137188459953613961614355173149354008183061779560075848437275442648554079586408290996926579477869548446012548553311870222915140606669563681430946069033867425699468437697681930682272376117753131154205837909382415489779036386476958790277172640460825605222910538539661071562588611180697186202064448420772717860074350938555649234933945494537831304392814837778257459176495560752129944822491031971320089864861412133903818300431764407027415730518969639909046614517049488727757522647480251344556039442933056640565130630794242755617391709487923124590343261876008180808396231523633595549892929524188891424477676496202289469275074212327840069044351829378094074948442824712210084926391296555218785565291169938887007034919544646641527930859333858387714190166594294286621461839094566823977133597768760680564725836352277530582314509157645355558064527746102603577483060249624605505483840941777054725335143365962309596218472387746893104607850119249691338618785652881081182748666476919337666951910058290713457375654981695622302137824854963768056248703070681940803684000307952213035015353112217682016954131543102839145082342787617894777440721816564406167433252136924667916579681395190568462438730253460001373227836809260774370342819448366338292802317602692450522346973216200366853472864748886487694672745419046459324824725288125793175249631493575123888034911332219814999859956987703575602152951699017076876663399835199195890175159381135395270777453764245836365040540590494380766618468417472177794883769418326758401548482900604719648980999976082980047855625354297859087612998101836893356788399735019019830737454085502038518387791361611990447282056346816000781216957326622696639615010111948996099130311883434219030920107879679187476062610943035162767927441510084777943129733104602337246587758444611351490415050276152516642203552079197154727823721371104222328405768571365923831268062709795416950722621462341209294370845523520991447472615207172322427457883646884932699225949911189464531296267818705179444391270462930707714451011238058836208675655526223626615326752282123575366630496331168328298309499338691812865272878066945718545776072888432699830212733292206597303501755691192942271429979762265962816723155450598577623770061048532513579974253501658920666477914990499106216918427720834257234195934967047507533266516428299904615361271894035532069319828300309837287546284297745604605806455869958111954519871142527863242331398086073552870134208423366089969006175465453039854868724880069815561180131342208028015523946602899403595973276456900622437361217412512403665483725236984589638552574055815549086800405017519517398178178925940938610711005682992728734510283981236190889381678718133508047256600452086893902988496963250467034091454428921677953995123214043049525000796720261649930588286605583087354202665951863933337248842564100828218857031650575873955384998097298145411957773674560962961198292731413982495442166374784209663860117918535819030946278320560015315849604121115348595194245311412306728502376865643174479836202803505597443564609183534378618178138828206450149532346465625902672778716193468425992578800791334710673281354710732248141644415796360947230848316546495493867066792050419880256436944702108320531447291585928180641777857662107967428430036926958898316447527777001073685329657318250537698608098379999286218194769855416463869789616220980511862431709329271334006347680976180979868020770512139268481949930283418412163195906737703924060450603013297790539643846199525622148635693253734508168297317309109308380319236222347621399534121611814182051125261234702075123147895437847490874474079261558715033440802183770960656322435987041002781750658196234709688389063415778326563230749739561447402112953964194595021279689472663498286031307369542370476150056706139300072692809718452993325302618528378688980870123203170332285407566305974139506261733513403235888265862805569206885511320350163567305685011487140231001095429435045838073157825021288994700534064796127393447941177102194574854038503078471518913321918378044476278649412375105054080443958997165310480845161739357059487474869529182339043498603468204407325288188491499625184495663984097845911464463149729345079981109477937314425800158078286592536980234916597909980503703494565830170028727613218037311955074992024523634658263489073295735058338613148428292944711610383847245084251016985345235265815456447742447316159072662664363452898734347630306590335844149641813276827552782003188492182198356075929874268956944177969433027941488525450621922336910721118751651120548505778007560800872100096317649996703280572751904794765655886492829637672073595929210805656758718483807937298289773446223951908999282583074158058591280158497704418957451112678314393934058052516532298976597002317435279545196931409825519764708853049649358702095135552845286486891407706444615789260636541015764444066029512493198969574575176296904124472388668141743428032895748976784573252623357601439539087254852851473653890097397188338823988352189947686214853848726841286928880706456006364212846591018771547235716157827794561833554523815662467560142729094109485485291791384801903353692847350537170326505161960926013795853079210296875097140169271444068538314660148199677381406644050046755883890661988711359186825175402302014821931185552682624968573827509854494128454328478355173485540906371311031298932841365881327292595281592705833237512902657179566088338442647268492062759643204001734733740195903846104931328867723120980929339022983461283905885052551378499089726054352353234728276303018205937606750904732478199150543487368133631468319850034688293611900425434352854344677546666418801041071834218725729029729740892525441871153419150556926225554286656716721202657201517679838764623880694520343013092188171962574200598226330192067161574451051469669984849800167861316354251160495285024722463615482199693472314705281297185102803272669077425192197753883697055999915936036647182342969246079680915346396132688078048288636384382953262756408497888970676549422542018202576631833841002603628296439111115968751035823633730921441276542926850547345239361586587879438538259319946593409863850313584440147234999980770593723696557780211500240853431032292155606523435523565077415220384519031788984555464218324572752741575944572243664337958223836093066159713880556506944263825391885488131226566428544799308510158050956009989121846025711215661735041389992212566918769231606895088751524116689797707261040284271435231869548871910745226810441924260795813037605582483715534150137904495821636279774685344589567605960284402389097676441251485118813451101363550144804272144508581346569823275784182291628773220305185024073587891844652320561734040773752924761791755077905921784911673727211540863128768679268583840767664400819486222911370784102535586867695767219836109699963904553944915589376227904264658555475561543054821249064697323013583677399564602988700774118674681431797769241026451614754003011243352568486883668278059784854796213129512040505001462892167727154101828036780503924984618912359382434425181705032523538359503651179659476454213888120916012895267275244550741891827498576267566531378001756010550665210079225834790132803470807926959550794335804950969111919066218427950901052897533023037306528026279624787479958685007194621031458936535482022075906795465052072268833410875490978932589685295228586094489422350898901870679073816397995651661294909050675817592285280500742617933519298776226230530947306057894282615068590995791857994064630953590632912367729556748934341400341303540703384489508028114140029796337840135656604150439495870394588319510186356542436640365067579037514127644032413333742195886136194778935019112029193903106871665548518522022748116348505994718208725096174236497573036174248540954240364625763629560337660373508965042191742724768175316892044382603963284780655188849695460220431719108918301044749261268527422211792965765151067230289986127322633459439819952660924062258002200464888675818320929638717868410784690156838055230934445739127222290522846869761332931470512311911136937111836641103836418786113281778553052835366202497017463470086850328723402753017136398004061167802250382330191275492784368216815888004705524605268609407563582782078609726905898090295985398375621490854335841400230692646595598666127543814935803789595822872601604249168573866290403760634168638581588563060891818249308529711536630304485077151850893172215982093683598185978636943474826249575674190767912825946897961565570915773109278981411838781532357859321296326293596025019631549246659842472713646004787286586781174306884845650050013315187743775523767248676412519848031729327181996257696076148618471289958017763224491208513832738538122664406442110604604854391018037277040411720943403402662912074591045042102059583779732757183581365772648602097603934221515693752879900618636796248867143310245408262469030135285511117575414861764114521629341765187555685284330034708789953861444249509907764299189952576341899242422853872037066433925492422556920338258182147114302152533723651884850837590712800123760297221362013537554047243425398307868441308386906592564275199405473075716220305370444540690653158554502305655266033991950484129374519414927748402781537509120415119491336049530274189340173482455850006466544709374051584067116403499361460194295015220070510734432307509166037671896531169216979828955411786868910828121806610285637373754387209933313626417253559618306458213523437218913954554050191774091703975343405357096222785979665004387373992537087358763182110147537135196377668251977107932264086186579173313838214488176977355131262830814241955666906789678587297098197879603290741142402461201519554721959183847738981145692669090541628762924664656697145223838665312893531630605022606370454937548793541380473681465203136078591200418256978156384169471665693327659094545438107016172666409362514053233636419180669596447441897612094973169122660119543281333202059319115269813247875798949583716022862038346826008963709434022816493728760703560770345155118964814405277686074135498146270565285250187260056494274655919645631010418653334338743933085575559666891811097693385160668002708125851235174847598268057143522578142917585781466498333344080285867941140800905033839233234108178097741938543496806753858886463381304908708182867779866811779210869635898330490183437125832726892087525685320142016624230419311038797458311234324631183391262120315834895020853543134791972291303664142428571015693341612491981494459525275836393582448732704115526204674251992035011326911913917672144962505802532790326157607037764364432444486657457400056695560572050082838700047435016649636865717810134148861072315343179209476821222679701624908941743340555252054907860682741943747787629928525715224208590762717500468283308584654944725314365499852269607063043847099739584193338508287706915476040290025271377485532497456117530870856569665331295393574260507546074447890324723960887789435274999567899399721026216718122703609406527169844895514718548463081924248584474844041729073937259066985116080199235788267324890542127570412451030491858325072919411442364787320989146635665845497691807315070661436851653206561522420159934707324484121914431541771091359730817418681243268944157779868857329359103841110009363431709413351554489202588577165171891304844274635734968542895670690951723193632466261757100916741201882654469061767794823882300236218762977279999749803379481499776409889207975426539829146486560728115870306139710440659473598429852836522619963791109939035629458506003308762829079201628963138403373156771107253097840474485330406347509034736318292835896701179359069497797138140719085960440642052744560103061516048442103678969457084301772531246822064521598345691738334224621932569934163616827754929550444621296096274235034947707571213561664329320768167003582083521254257503703524791393578163220535152097974517899123157804811239842384114276715193808359011305915163803314362436057181148897292931701233461846359159877601979348956939620685728260602322622512834379652170551182987902376679435526927241586016786263876676286564923084730000404853073176359722789667463418032861592055924546303410788756924133161336205165294954321373577331885956325426369229520951287336631182745119781072114012009908611005793660455234432214751283216278620526039323005536933631706728342908497698538807138367663572301590599595365931325689873827049998107982353252368603977949481094851009810163501820009027961413750315519550768464963155510613973969174139687790189754028101395205090895481719691518408109294710007689150050337527342473893204427444591327534605422883760402868255341406011913053074831107400701514870089234671767335983124703697178262722801295230547091672804169013738196817499925603120119960056207818908294639732012621461542716391383691883212078281490954215904978567426615879418602007170394951083748565850515295519298090411057441679812139143525717178941692415229654621650984857533629932678174637031657071270611674494336627203407515817383091722583574081833365630953557137503605977111976182184445488730813509439843328609310717263657073287138527871108828722892187536972118525590782404549372784395775531535986004824032788921821952947015463599165702495760683667284858404410122737561215894036461525933248217601309725967874135090547734757863582274823488871866904991408195463083888713220853966772571617615553998348112494358438765521031675826517785616092833761193761734737533555857854881152528766825989275371964610837748982002361036431640628803556833228232619736141818499488317208249921565595045301260273205126531588423768488592466738992303884970447612073533122041944940321543911228818518464876241783445114718707241495894444471834595143176629640867324505897718497863771857888344695798841921443080493037528163223915082939062009546913047668714977443759269481709288895301007445105841714875607142329869225212283289587066643813789073587783943926402963015477569737457161993272108190696237067930296011146703023909381645093541921380245650460198370440521029376362748137038707901868888734995896455042881133097015739133407311442689617971107012987700910289645188271772469018682921950795441935848593522162878036590062191351950746890276850535047423246477682255325836260203800194545284018797829596925161019022177401193877430466316413213260499819007675823218154021958569861857571806513345536586447200879189809758602505181217256026945313333151390764549277395716625286643357703662908082325935388238342997696503854624018378533641117933437694999810938683796438799170899737322899778232313035881588915573564073017103213266055810451434718291567862706689517897282784217579531039946937311807618252684360644286729864507320431249619515524844882933966255655356519826941325297188977429236167363168506471065318114441559352734713133712313962872213268705870172757165250115449483906553074375918360753814010329107411902710478431830382982057908559761435181162123099683704479106091484170843340595039611023656711950541434609565673004800916255460192568369359874672039473181976512281320273909676424023851623418946311688664637016388144626317746382107281457290798664887668757769077506872445761810437698310574243237061016768321500024239649267923098517186559361132007920959998397172325471741395388526962696757490136437169104864255656319206044669013891465704849015814918187866756844015158056376549573226814581562432680746145337516202654112918414055509797570010195085590322010195789069894116090971162189304123456154744813735685558728545091319196327752832382066143053904641809155474175552487919919476464643463726194191159013490364993103888775279325020595103553249188504151257210430382489464254236620789793036902371506390488979852617489976462627829206266768057495138660179080435835894008622766952350083792251698126210640190162285887228955304107524348110696336743031547392268411218716160070713652309410520799977309523517905334096817149945274100264518451329228711080616526818345917294370525318377178114376142517792559627702890416740983318448458088748993728754674286122348495411440832962540211184436925634645557156424696568262196195178784496532642571080663524031544228393794323955062635140773875123054380132997077214589758009155094741197163651726087674886411223690934409886417572851928700616053148862343461248848574927937506919648113700610862376423300549697625868348818848715226869871160518163759889146842525614906468460508604962282435172215331599149811617944557408993734112681157007897358055028469430016477732954905714082353895221121538037943521733095942391431149076797696154610652039753186378521168666184316634325471470986895395407938024446686034982177341998766599183662320084080200572470413177731009802517209995685852602499609330496917532068078543098765879010369950019816102352554202434148836499509118594489207662264654207518261165069587645971975973408133996858776353456910866596652666987480128373042780342389760881336722416629790606391757022571647597382636816970126416044287797935255136068861114372408328286299615707023754691713851051040518191544238148401609560527211491057407632714055150700416409070591519569144165350958350931637247477999483789415093725434677669385017072333518911500432423181446119760969752278633324570586038963179016026612344165332732732641492311359220652205995394366705414538027250090238158428318336822678162120326746606342565300759857425490706476861207174658817926781361616981936128495310095857126995908963184823065588383159955404924371940125910516098585088709950062036002305905884982439732781360275028252144313020774162388559858232555899149509621597469102654439061454236850967503505236816975267474561952116501026535456459668119643091654088941333568234387536164389996122723446430752553596582966088314307237331638975627605531737009096851033925126406469615094629059083145850624717916807827731556512539096021249167320621663389798523610794052071975698707174848174034693459115615157022601113364244753230406170992691528658043612371122222756741575087067366028722164920016277226234904061087487598845954804279586397797392321098626803976511592232507833733289167520902912790631479719797822886358015567021008507320289570983227834226932512862717007649344025165403413050450083773182336783216889312478564137102820313434879047815571809322644120654803828684320902786484591612736725752402126450655537227177512669509989521640895961917484755258986176253451750476277567232855337525104513953603541248653477314568352441789637254679378975449933082325624286800628297505063484324854267785853992046256574368478799664106520707170343694338238200611587789094287055931644591768909237947705785263033753341441209588147901292371819862820759286157832920959854278502734477235588195286025785430934887290403584054139762030373948038018747444793857479762083925315054491686994339529720485962114002137106139068109938653404993595259107770149798572414777964645762375727737106186016505215663910968203347952958358160122025289054889055140025939373109778181430681308365827309818434804791703569293744216892744366898433248855172373332383273997152830851077007063811624145606234872473358132899549838351248915766888965656369143438272513843011344994295494760208111611799125661346411473070480557490824239624387901313900159872763568815827912359995371881113547670175166076707949100262452081449811194510207218266901530264473389336185347730778775035900212263754509617745034897751161628676499465870580435676179129440910469526831799831346970634256686378885452219283439962427719633670296039280968119281163899549248177465600695908849543796222859265151427330330600965820392041332529272541175191515909637426043069801518741386131582245848653505900097694272541100572823917945277578979923553553112755739977392974783493064422361743668710059798554334640306601125424351655845365380184694870956134189080330696294609293238959371859641587057815902355652457575824983964370248976669828846941475093110991271292349503551569559482112511299339647937708191827065188561053123129594755286840073463881286828542278533187256805136735754008296512776832768502579890015677655939056031543006188572678158101566729661766291143121022162162123404943596386570229300065367199719482231953159484212866338174482440631876350510301210022468940023791503455082101402821645337833410232799069500834721559944625221382466387916957508256250839724386713850803836596563940871173064148441202606564837716423142182978822715458830729125540452353073566223584294756522097385709520636287470737721112736314858180165554596511334863585220477913519246132085991968170938256032943343856503721024821590910397549304452259896640889072167802737879154100615047580011349053828755490114948249046861257308242432321610028213223666551612906214171697050221421257301535190935326559433574032473089153510029869237937224260364355550744441841176563529182376557129651024279136107724706251699505604742111499251169784975082980632280605489813699505605237959632640903645192791639031950783379435356645295341991572716678625592844641322244540930967403613945171844707898713717222150045461273866346603927225423649363001884176333217293261761241583497149399789362357788791438439313289435123492761974536612210166852337076363979068130005506501650872458756409298527527927334008231615089126834094977931597589830898556401867193135964442185187632355645468040249888014653187220238619006113930305697446070184270558852035882546408472052154624522651022482856197043635971235729096279541317192950351303149025761011458322363817399108515933706240433859957827118690902126134524451772662607766981835552289002348052804839498481203497788970084709075517784091261325785482249463925172587422798484414559852817342190666291246499240109709981279750098112035918510568730757578743296258002531992561618095843990746503247229216457861069382922408555827004716324812560443550273792034232330198097260026239823385849714969356295629877255925895977683136473175686264909436659003694349960817341623390797709212244889055439044178842307896064848698788427337698805277208325230965626215025239258991310087130859974722725057400837377364046817047087867915768049387950609321679706573066465988960844274391497194993116805170785024702960260449839003622862860439367552071792723880359099306603866755109492693955159987334419945924111154584758953066822476933917744352029534303546222550892497654513685468740042408579519717144628647022335466294121847111542151548660460525221684992612906515136380816964850152351473504700645641775319921538500389161828879939763442385196258683700637177279328218758274000414372030475673182250379580695855588986513575168761776049051114629123633551099958237795168009381629392665859076671647035037738450063459341241495656373940263158303500722843434463680659368365577748304373645800362520434024439549235842738033169168827220702812057974027121281962397279407521033430465952812826842297389562748739572176128209252625789114405034910322000720077309249636521814808107368022787612553927884853281235114761735097199207498723915730036449970395873867828390542473358371896686596068248492354816492807899656210085619677310084773439431852495338178852041490937687126561139872448702462759924894188295974486302638661715576485150221338886793894325905057344391161123469126781604543022646478492991580186170301193685266020939467072247300096950327202348588943596810275199614977553705842178081383208971504258175409899211337143236056352651290430533340804098801310937556689431850956328186711503865310638631046817457807341175967634001149899359427894456815340721426999048785827541665952061034698583991696294664241950578032847529402358934416577453732855109482120205489100103809440705780458748079148599708026279993169090279430537559688392552397994288205576139402898675644505868527744853628391402786469939925378307248681118036581343075287298753150122843908120081367622826458489508628610056074587234748986269343106171941452380898756837666020517332614209010092998415965302950350527723295193992334473486596567145395506801087940901591254174007624439224675715698130590279713602459084774807578314258103956297447794061375587342501813165399062972065503521832254546454608108406003888032126813554618959777591888132710425268617889100301383506313465269295753179220061108873178384317163960783680341267223991111669121105151699636099191347381788538474204337640404348542576652823982740636521962613129169487745379885439345642779273260183408068524185863222300301696943109367335175175052107959419042863151947533328697260297592265668341941314780242609773726437468168041244999732531420840907003122775405431307921814149847294077414340958164243677839678391672881833878352164041288403306973204252331069983440880314318944330795532361592032525304093787148325466855936459003758536562885636071422690536297798058519763450658575419279840227489598626109788034649992570968182894251252273242585188525956106325616228969551233839343436782577553808763066604082882011925487416059878660741328585785997032023615401927783834671087734785752425531042205462264551180817244658597952469212234438280096728184645194533504425786948951521849776672757174565098343837377362007313906974148694184981583293823184419191348648783278819918647297239340920697197695906419421991866925126717488144324576568365473255515264352244165734545536835507863627660748498716277106126766242392830724085874256083164886503696274509144041227519290475598780711556729714526425736416253728615679845749942536982994320141142505683216238889255903351807006983974843858972411074662919161060106341324441270845206369817813291442036262172429557581833955896753494574575544477923849722620715206783279705541539456844294647538641462724953902071884585321762323169551881999266161511860918809471059119607295429015377780547631620557093436129607160330438525890466904448716193919997632399143664379066991958835933935953309460755388156866794827560921500385590961895810882097828317116344314530253192601911966604222810284382320502434371747497761424287671375754590641763570579712364907513503970512554762451829948006773839884819530819580173812213032628308510851532349500078018298620033654254650680890981780246627621849269934123315889066574336260106535626082257636560181143564326621469375727619792596907043287436065153973893700045339683285587239372103797559165987631534732229000314897127342568684414048138397824652250003932361995646143896996432234164912152655732726697929716880100585597832165859919017163129864748501898082810122000176787612023283841001898638529636686651127319447426016788954060607910083256587998645388618073245140943680929989540287991613791814731083801169950566287158266534811742959054048098303843424321311277392676455817618660441852670486269942911611837790476930583962823732228738922603176330191076780878835106908515310698967061148208334862607054767326761270968845984398262112758414712434099396911176967272395180300184556917099484619766891613880553416114995593488954942352469437138073257431419346751478191063908455910696495865726433962163328296210334180605482938502887666049470078427163994453412328373466936279982468915286707833339795914729304825205952814737992961912480070712560672029982880432313328583136620801065334002191364040291467758939913967704775874413825279483926806435822168842808122890666187361239445401853683451760847821631676724402826524264105877285795555173137802926807844843516780756298615472600141936868117680369919717627007495152494645640521015799421909938736913670497044265888843312549278720472771670974173266655946738953650790812826789959769976184960235249522162296629077235658404843499394704136739476592354431870108966611837011221460401981178904542192126502087662183001092464357962221877003584692049557886053199365262834846595936506009841816353598225827279596864977570522124943706802756738812267851429979505071985286292109563877933589873326076352190547063026677451416542698380485096555724874342381439501223739862645592316905023064342113446278902889559696175760680454205283699806384889720079034067907309230056671960339561346197551830758933908204907548969810575402820198435064552714498258781788207216751022416367506662228501921646022029210368731038856811877729551405966650118117171330471538809600620637455380436204227526196842822218281029360494084381445683896355228745345250219920388953642552317363103180069942826446795750076136395916618383891258124944015197632130553009359682028661953703099330149393993664269550167510278823055708046681627135403112289379331876797496000019666599644492079603352456706715509308658878588590721748550059662851216788483872947582020527011979149442601177750078983766787859509625234444898879314077080460934159843315155803980186810834621612198052326404489841877003921137342577007436140198350955758473786064148129149414019827635447808117093123218209040905114211783180590494550793144394845357270090846701275495886046365301593335877242421298206247196427191105699392785383663556000310050564262084492445386653287852701765343975828062921373425771555663255661719571414346222714796256226568156735653538142403539632744729711284196700524827079103110840257804622673084615048852993705855507709071113959606230104402464858481201392599694225537420823008381078529845442924387886566505843493249061986123562352856874905020618955471878307716857138866392864978918245791192024229765760487411133022294233908851418111047374843461326695543711887759954750367339818272792678500396419082551408168302211742214960643254047664231614749766248488850015961901669983523791214604461609828636375699049960310035512306344653219248364232303105235391656553308773526822986410786233180977249326164100282858560906707395610543007071005730705586880028968583261526009644273528502241507453830240667882153576250619492561923706621903626834113035272423233716742720790871869208492963725341942169841233114942010945405314047198985980361087753646081232814941451963360482383155126127022343445793374413142142949127044893439943140382319727865217383970260622575094114765033300724161834822222968373550629091259322603758679913242952956630505859605929922318803075839923043834286284746131196740046559690014893176447155015300498539032062476179105737186685606623071578760947349898102796741621625127346614371933938761861658320621501003751021441356935220086595255774693207276907754963468273613633390904198082073725295853721835081309782071009559641959784218754063440332837951141638761875075121716797197803123574734357275041748574045830686786624291753517689204220043604579490664047591760342037938710907038185406153657531256615898993342568002681796555290180738328334113083031327845104754774353565583810121541271424429260802143458690502660443402937237059900159124632186057201296811615411878960349681426902872367625925392552855792716322757291379606628045624376043166825896916976226949784482139168012222995002449294905724106563974275596539256611370536080487728914203642138814256600924352518665455174065534122079410857435208432007167172152604266648185102420805183327701960765051904731932372844221999344895125039419734752019289924655801090762955784421352368522931238267197357877244530847032011410844483080798970457209273968193834789373839991208230099986710785008196089000513802289708428746052769641068760946850404997083834381280040967751345947479233427503051718847213923590378615795734238638322343097864153995578005010725432147913560923169503656542789681751121631605124990887261491123888057910131355927127352835459006500327967125408126816944175642586777720609472550509044164814769266696690331561316929427632021335897184412709024280405112907357552436297155057882560394413092119516565559034326829907894070444163842097306695815852612361804456323388837530770989456272695504109242795751605571141786426160491047381877563793363655862952522152750423594199612828876428268305373943828686096933346159726095478711499099895128890153205911280023866348209800297700492911250171650514829462377693836752617645092984826621684169090995134976034138763577479066260224595569868488626297954141317290988735111615941643168264224460716175122403834750859824272916000015689082478557077025772629795023442881760175202427744235045696796694417289517705518358790244453331280703243414035102396625380507275914312930743851316781885634760405240992738130054870823995548028233201321522530420236494363526515866418852946744094948261622401145606095421083532600597225472473256132588453730308986262867774009977110836409418009105162859917586568028282915768241423258517464058888770178500592182318168581510952768930330247796895429074026879953487371302373905123611281903271709787561933479557315637485000899194103662873189756067811071888295116653676132250655559941476657827241955983451351058583921899615319722324294249834128739567720981508413282860454623704342010136531064184851385792541858090652578577635241825158034121961767288592866469200217576513954362311545091747754099794823046475771524080651959356758884435133306339248640566867865483757716606841091916664899590528435166244379554759297009041257101983563521627058783459800147385764642325067333434368470913103975395540323807526654450703094193970615650804065287801176692720997210196715749374839835538084043600456128904546531834884007457112701553262593221145422573683913926816066386980753858808860860939448781805259101244168133379162697087746824320299879903724256665497411792375703980443028781372811919258450596557345647503704662765043293587719722860190046938260137194629933326468104831652184159980079717184794799552779641984726195497684589304897775931547909169621749958760431717222683501817851053347325796391913848198656227357221953554776274669668217122419461408002277467349561419201779500412964667121789324338517632141781291843777346524838965800748309523674520840755908336939403347844135018651744965301729752421039663193582694884874814091516647819049719573080147539905398041282826634380305515991292244213310726701487758538507967572007599003696448693508992681262442048223196234621141596102155428525423958603630142258956404640842470878720450687548927486481808656101250143928104062310520934519230441163905943579679238425058150358071865150682335319679048845042175180003178552950226289413518897413671912512346354643293664143456490135481163005784776362256412766777591693800542509684074896577224393292067495361617380335417094947385544035478289880414977960335517428180081877760962055793097891279596007002574171939681465931023212750399276124077477823012066594019937145099426188744520568700688892755377310734378861034964753403364860751554348919420489400476862938638916229021287135479467487084999283933638174286327088235955262544464906645376768666343641556793216380921130537151739331917484293873916448363471862920798305601603058856794748929728819822752139695792751102208458032105280634491152738637805171964589820314663130703095059623474880513536705853531108558519357934150509492755950953840092722517534548153671807576726414732042411945390755884660936814376854254616885809840553844893102936074905172027562159968535112803461635298262948315035638098425970698381662087552435195069623545001719981271344495286648245052840333635896449834407127122435509335896850823225707352166231971364167270481480674928231335856355460132990614597684652720983842228597079882186414827967448336995651541513396979733643053876556242712593216036573718444849603468147417684219742176173173331094205569646095001774080899413651279238778937556368518989500050179132657142483921090399172386529994111283077618916007508798917350256719565059474834691451784508710799029047173028830983160313157766656674077882186989105504503783433670274493294552047738553632402970040025083688387918511265670271884962951766006759594396374019794375079426542916412289203648598146181481467935089418699040118851930811780732579939462431751691035049009328344466870713006193114223966218751456655146062338737517826270234825277617641663823240273209998909450243175119757634445913088140867272165686498993810909220346977662055210673450659486241739589536927271689443906179602441570055556116581180289728489668624696709593951762692821870916425874661017521194741522887568206134245560423867049971607311308277712321746014427682086565495402128038612256916288031757746396947492868426069424232138290694536688537398150154943230028753329318184794295402305190758200485504031392605586313319160835429306381870381293552140955743327170940499079171677861668245247749136918666004923151817593190850611643439597002007316160624564323728826297831846640175052087751077502778002897422172665375720812040754381239520514761559784699227618521229270217491101139522410238190647672620520508821372679005653145029062997403786462369520734959218475500936030744770865303625874448682410531078133861014346843422353690041463529395476688175899207127404908259923330490926281798652958739524467345042877798269440695735133409644965384331437486463338032387070884772438182794350806787616661113939952090544067180604037070707226412478309174062505289705155692896115064823268582987531062920215225931831706751529391078876220727787219806065770795592363140822048737806306839294442313577535984251842334810956533679701525038921868549329892184575238000749728917669683060153039461430669462069332609100418663481790782753478974157406534074810679497669582562473121577638558776315565646856065990728428374654668028336401139313977147646398760393463040404125058555372585589374919711063903182514581720033132045973695560274279051685822672877113623824612635983056065369501766158398007105470756667717950089280688457475697409466294751213089829746692254312218385261023282160861947765567470939015127681659264626484952389821769907222419543987278753455863300545029763125049237709538879862518380343313165006519879274477386909224534526896013530727390567294695571501921860851922877499360848180255708999828973042235079146906273215785633879236846883904240936509271048723371524305157274462952030132633292684419605816417024942630793474711979578315396628692471762659540572309670184418545556062262538084543586136926008774272775692472081016811443475684612484454930901358174117125698401655309053825035660586999460521906719102037533688438274631793958432353037857623666271627414425606794253267179841657855209891275803583510054509504865898592991585685596008882499917151877206020426035632474763480674752337301540389101968916433418424426872979599621324069549199345617884148283468184165415989762669951227632161371221568828659491427614485918857117336304744809914521373337787148936072745760430053010993634912464131572431949568735331029324774519411709805595787392370878349402828037894703118761298019236513233525572167811591132406984028891760557955441096036665036000146395010983465206644586988815954833746052509915873026645090734706860879546842740530973760735514266700021867390130990735712731223412666370898018015437399335341928084281971452037860467168599581853561419359544042889369703189357530500085967411658390217664504863783728968247711808686499857072084663272628406816904443282512985860474311246743113077706124357123081393260010287625720704673275439463540125445492458486602078977073905324666164565338511133378077467586923182370740721069127207316958743912339029141577713322861982450562391014508291781704024618835889813708797403098814356436901393686806516560714855703087854211374377686096653781085964791968632145378226493405295220595525266694157695404413399219780392723401845208193349648119933108608956690232698803282063145174204219998108812045355208157495206356031555901492356960071464914469573600464326798136518097045637123951050373468020363696182652579215115956114783753662144768614567384683158716059209037730232191662587260249545615501481192645060179658706261350836255309462746276137749324231664024126383272063941343158628194038596748298280654126928009536014574062341218271571285160910876471366793258749693447272875434112574491922788056325911853138541833328900635338438308249488782057769498025545322336257662982138050159979328015868788728411924976255879951072422738685830366593187576047532681422187368156126540603546282346449946332733816347707886144681025084439841009005988629095762965309759852636461000933172361729610940864148474950463861345315711298954474572998046064074490750724109170765273302327080360261876218801326699887330602809338522314334592324053731138135607052508395503445815227630045558463660903696218529608839444857637350915369905056204131816800602874844288973904685479037161090222816314716786086632852673600268628853085410407592421666920795055709342452982087013796512603090311030020671879013325154765463427656600466551626482423222660773195921853438234894040860372400498318047959897629741220039161717122445787309286633910396860006956495421678159077065645732087355863513994222520618301193971058532072505357251702512433773085346703601643557998516284988882429620201043662806091103719554138345986975304394780307085812637461795215993957867821351643430915900183723716140434373699308698229182549516433066509780919357671077905652630354576824940475084261054508801094325201296452192596602554204779885902759718881631767751576368769646073897880735190759688567878427244046974114190969738136658117264036992044290044823406704324580141187076864025985185136848694439821772749026886738005976741596314873185580893647381299612547468067603945266329799113733587071867914292072036024667139957862762954783243070751698029406381977578453563292556948768258228618924150553383543907882580374981305887935577456729621893180990156714958028463282988797021830764425040762018463618155515678541909877979114675309133892588968002782586110561878361198958296915495690608430305191029415430402524996305875344756399885408509468487519197408805203281076251751709250266354069415409252540849516445935829831292876952669231838448320507937062423849507709568149760974033562059893395569947663156706082204106813121288350136340136440285140563996341778623558127013750261248603783896824416016125232390176827797939764269868182206198089282723746841096860667629453453863515573141445686275208589721954103964527287252369027139441618098536584448009942185478897629601307141368113979444688569626321459785339894114115983245255431775279010881420380914529232889074022934579600715094749917970371407175125351328940163265539507629355467704055464664216734619690510344038064601078487314156369095521802283643334381526574957730985815384838758439195932131719487782001017241639346715574552772286589033966386993915087167560101719853130252626737799335481771997207766308887964125791589690538710444680693496462142966318113325987375766980280699851032200245918717400694104714371905318825105755120549625601882370518620969392988309025255416666787859385462022256754829038596974329851326812954546661772072761670377208015098595400966153503970705338382414585452216556707367670472212356337556368005166016152719384202554719373598733242367559648236105609642573079793366726221971408598881725175958281621305313989995274168552998462234406574367216065578728442845884337198360595237832523965239682553740514034074984886788749732342385571939104576704834869072538569506142552848818440253550241556295536676746981158598559894445492616727981869332920639325985743079149446308060837083674458375510315276758220369784661778525564356778357941235231661445852377299917945145514362433968877069627576940845957511176370264845189159372918038382245611301448040765135484768988815731698207031063557723708485792065658692735857059101514094548185578227019129441395037397049394141853700590882505651389369765816846415945039925582548877504271881870928694026697405656258397165298792232030175702273648018316455111118472942815224571922616149531989717200198035528387903612124285460385662526238020062404077304511681329992503261431013305058216785205630147618791357038533959018455655167872061171334173179407041043681699794402381021560728722501723801682172619506214179622226885732582074693975892887313065194727699857479708300999695085658232910954783365896855590893796877469550248238229624290521874637866894196292165205824370734631192852169237787792693277647341058231449902807189353996043020483994979921038658009526356072175104470566940461414991959308099176562067136169216195080907351554714633618076791639553385335574106370663642257937395261175008745384428944795107854228668995422942172246057816989767007436375443342425122410135656783167241836385703974535005300142251935804710392446311655545709199773483893918757917422812958091799677994269593648102945998952456168570306651649436313163627533382289089732897446128380115056871720579298115996532312945517182248424145217998077197841160783040361450889828239174486127277035404521696374610931070066412548917446661292229074108949201450163191118739240405234918349216854033160737344459524187356851364723877104801607899812874292866125675210389198630452040343609836622681849132201336538503350193166458436853283892484100371794187472857742868255549901825791983698645388861435914418921575445991661863618258033368453723309335999474822800512862852365670840567478497811999288529580389569561548179825952088977011977258929265237907541005110691808388936879688200246569531851611883013359227606691570999582175236378301837537332364282674611337790023605825415607873139791003229507979164348288814583531354405349257433821563183389559210101372785203179913623013056922691863910841386472021978123242553854280542436522853882957459105509894847811362355342490555788527886409128808573478311653213395612930633628320458034927471885696002723706740397218499959193991959716775797444694912581461650302656737073806677199988553309336979873256780431034785560190985773163019742471626358045883690854354557223704027429994965680006197202923900974739391721497598488041318583361845824319856811410265481601825871703023007491324846214133178371947609315736869183368903101130319232705297177657922214753733543432926593162192994650146900462426888132528593832465218509624767617076144408956867126988480575130868040113786642701903427084475008281189375984873225911264074054988718143446516793578293429028714702500119983301087754777509602975671809811781418456270188380104695960877687508224057284173504871971001569695054929236116853857843252704173187862687269680851113979519839553245255736317194584515655274656147284631909044641572461826085584491648952247703450967915242150795944104149668477978256674044859144643310784965444219299400023189539205591484054508646808456402084380377879264272012174627935043390984115286354140654280070703727437438398728785474945831340044369421970743094477288659148697067747080826135549739147692342064157945620148540880822135892247051831408049491972941308326087952730904631648334687847698975741831106787332376464143908083477477743172631810047836579002042351912951689635849024093734579892451733613715709243548308378723372480611250918990134977059400951244844224270987292995889155781089522479174176011555388064241902684164061403460918475304059380827977096685416644304292831507522529990372724578762761459788491554787977052413455854750621843371884488719843291940447895484226682137729443942387959410785771359049490343509399618338339320798212809341146440201520736040733091799879833041030604413700698613321700147920121941903072611698179356865048120338020248704508425095176078770558554343384810872392659645893436931221504078943862777816123406397857696693871607403719729969895054348375042607263425589074054961412389358981219496255580567213847561699690693638614064744689154585410869282183090038420537965206548426288840636641065414640031112052323848162780355077674888760507351580946984455395545849697446923558996835308844432482808817107521964939405589207164761318246629592057328226928912193239634008065146656451333093176005721628103831586831810610538024521355677179537411459096450149126706590002803112436571778716890545552268343164287576500004893680024018622861300977120648730048600840568440894980136095910521989071613570683175432191456339924588528204793806859746812868651023051574083342604828104392922742767564056304681628274049356110636729431673377180556001536528906373485025277681255640559091761438011972832173073904318884829538736009092502070617042874738220901106724997615593370937232942761786192805806517380430719511263216465132753312726684159710941809294555850031669007146560766861163707712278210985548141779487228995737062154790736439248051774894349980979174052278632110398682395674481245290135315043964385820168859557055271714595677833061761797327184986049992651248453392755820408374071518302492813191757405823543129269451725351376962835054660676530796883617590993292318350112855836649053508579147119245689279736005317431807938118925079001848311463585727308617504940909279985112059749146492641394359021007953580362274921296822168344799105542776819906666047950769878834355249451914059984603792628655008131096841091785854427656963194332490971749280147483459222380543191506209049088357483392233044530444761238299727172057509799494856994082227205949725511993052153398345954411388866307825270095807046884275431044238286429184296791681703102106145315331297733093353759318870170113707913366730682016357325876906452212890358400858934028949414839597513076601496351355186958618834715046728004686640179625171431909176513798032020042990638918514022829374591306866905777193026557906396719687990180247790860165973754276806589026503717499134231513764666515008239504949384851699988542389151956006557395701535620940534148450510792582837340820355716882216751118875757169978235585947306759129763194014818610023689886667312467395642438639283652517176784805022111372648570782621180393013357882804843707664566187295405207017741036451264783370740785224015340411230623651789896684574337551917348711927091665294475599167956255029476995360158490568631224861420915727543937434253474337184200127081675474957087396980524087769226299092120833450179225053643824850151085894876671381144630018564743330167562726913056045186090798513310247062376740172551979539747959205285510642866819838734763855072049371843618597718850774469111562250984890486457889129352192062711191530869107728545232486137308843312853042961251304853365965933120301885794664504439468433343609723112802469033759039555330978894441329485403333183827131317075359769250336652873777747675520080598385966920370130411312876841292477847043189863807718371547604317923807209839634305552559441417954781082193641110546419857238579963911664591277628906556797206493363980113812073094302503756345623444774387496108167010694320345106400966323451695067797352052849768069254417483724807067447174322688092950776452172706336181175368353673734628297174595374102972954748115513898597739838530016250034786781184711319295354203612366554077468965508792211764386722842086585832394961344716097930349280178456377339655420864406682086399081776521844098129871423349998235120749222051887910111337548574968600853772352747487701172950405597546129603065306799713610480230493182258592616531975981192713625195860279394777460001282221566118464160407004426740804724295003657911065247841101739154908436343313968404262130879422850284770044527121727824950143738573669124576572957009156472306305976080520364200549346734488641856247984545098925771895052036507111780143068104323648309758496570221488986333327460376510025047714480082717945222028083813227668126696197615350084550930344742497172937725767111507115011416448920201957051419636693046115212164060108809746092023706032225915851527040862070386562089062734925833970231069767438858329224878783679391087878233123530163227700512401605874266748826614389350631725427337416261041327515714423827180986993396303016043651856987469052139076657253406071149532708625145345127238344036777697571913756602207934003416543777093345856581904806783749996789907489424286042235075617758280881218710762642355397497404158963143304881670088048179873907440097365689963721671628673285249672223498449866141769841917926831109732792281859587956857409728221176480279184301157189614055879564859742362572152524013121585749562770187454728006070626061384093066626869957416614484353749578850691820854655123983360195781967727538626400264962969081649636290976694762612075905133053105773097624241323887057060382721958515132478603837303846546240173203221358740312153563349356054789910398396267629342004893307978931774208205885241457462849918062642830505057831735142492442301453170438101601193225499881951769108675225568065745041713170289834790371972209114012700667334450849778094300198490961649089456519140972083595815196464938392480550734439242553564112923933191913781903150798628240803610011418901655734298790453544390497192069560897934207058342548563828977106868892733680630891415397629518801039047227565629730573871051507600874414216436875693085941462017985911551779597800299185987012074162602661623281814770916187176690133778295557461777405409826061684153776192891282105509473123864783239775297193474721512847037482395917350368231424482180145865826130143429566600833069917912522249630263095446971365551832800040804499251895648879636654805880589815932104084751645010678371473139629551767706850402178094472531479670479097556957270893740920498591844472799556457866167875688715926115599054683904048988265195765794330441908704909729354828813836834194151689844322865377631764538352451986467361812190185090207603799739511098705477038008214994017124525052717966210955359652817037236441683087252911823870282635153973076609572279659512724645378083847649876917588109037336050438856554899320377360025723479400718331193931303682491696165312255654194684555323247353661611573280917988725712563564921720137845118204470089126087626982620166630914870547811964943007013864444036266953355911834922027266269317975532924316618615127770538893771875697113313605401050668914145471063935279901763022843289168836908786203023929704577332274529983532336214811157332588730275205803661752739326416358603884584376672566911670155020041724501679123607256444596852626462765818138099947448451746856526327928562326820596817458101644727218335030702916242774016334070803678378694206552971211190506895471447620158935324380400986277565862632919029769504247276243185815656345685656729593474169035831695834569671355623534230955746646558049079262942552719914459905791775970530498244935168670378105304489367114000181151908524320645627505320814897298500695265139778926404285201058565592032739371505031165527756166550074003103220469748749805552947383881204711498262190175326348892162059645226116485267861426648633370312226230380454629386561524610775394190283339497344144973204232908798304751821623038693524328866535287673880624517701980344330009834827425798376330398274534597679061438036199371215659786944743837681993518966874491576406266920142832089361179755739251679638754248817993265075874385766480846981016785901687234570739714138539870776427085132192899969344134937350083439358379021694379663479919387171370079767704085060572653740822091828283492960185836196152635273797541425156138635310702816718965022763884054600589739650411178672093498231305697924532849167689343410212835503629515714611176698529502856336612802578165393945306141361194579766179250549523224679191415077363685133685121784553230312358499990391693031880769359071272352692409058335312593481793389736961051560191156961203475586671231779362131028797287290544386502726869918158254415664166255443889191453519485830309555983114219520580128183186989838667154925879094175673489693663510175287269151215582968844002586483830742537902613752156473566511638948106915678655611595672791876087807309691415399728049275834338851418906532497777620400410303850578123767138802765363709049711705286846151125535085647516585536490401955725155400568646606888729730036815615736806935111205333224132983195680960517775257163852949464472335344608263060957913673196945168534338465719327451884655467340860294489740750596293736315319311538507894616233444932759335406847088228240685245083755019267810857359477446988765497219892014130040038373190011512322818225468892915536896706502247791323270514166573219820192251206667577727711740534593811661236716324949771083944266158573923983247041662829151713918093827334840880549049361758841951540824963596626720646975953361479034059346928798857086062129776521474457851398299580734161811426676560259982922318896461901956789238861094658294367926655278109984403718254475765772063307908069827579057505551126103437564364786546745399957286784580360792240733190468829158558663079350777053470587749176319362996909515862988548548974353067030192276646063100388878324208539795065177249810741571559346518482208900134593354223191271906176878518720728915466508804345553937544213086287412042544749857072272375437685882186851688826594496181704064414767132120686974723068066405292443608445847734260203859444180348894958230010360934478302162508927751303825712332517956024711644594884727430344714942555027834467027356147017279284765246899779960625616611032080711440281365026930233992986511673353247085585770292347289708911250428308938914380338930548891436041974363526334580828061878052540079358320031699493184537985846090650086086925526311206898673839121287303997007768306524009952306644041402278829787435757060960234421617741127331163278822545108580545540301155228451392364213646421176063882256655925168969368334301759188378395912651830285042282932086340996579043738465852571819567643702848993666584078982827139911142899317268180260831596552725218141439804351561340182615237684472479689668907111861972275748030916747953132339473369495769126988578047133700747738890244867041755199193177475244729684692189967801356989181749313962096177778831019269702203953132868018932378105269089886359766244869941057135182946106502643266126357516837370372876885763394072571504870778617544492972118667872690828298549271179161256726708697042384071961575712273359057105620553487724696132872514433089173931479057077004473452406969134251989323680540072299161236108309558182160856105022298862186404164945373668562203682097960559490097843656323964050505527802518977293245147638334596621869187641474875510174177230791123112862971143317667089499967990324254047308998498170968244357831982052025010351348652001901079881201707220171344361302714586430551531266712950111071036329394217583568999847678780583257823048256752024144901104901827590354689378687630392603863860883747230094352187854856357869409210619495527346940499673772285032549701831038634331922161507457722572404658294992134194541418614887337105389919387828175588986529150002982563811764546626016978677114461618353362910436841977885354065822661848075598988755036982720880564719205220055248092225719922794612163224034580235918561662990231200525453642371621191096220975706561347800513167289886152821454983115838400046850982597030911753963282204774193558099112547349439503627591963801972056988579353681066727359774551135081448615437134504012172765942151118624218943172717392671071330833751211119966394594701822634848439846369290242700101964698540335462402339510491621082419335738643361421204974565606388799575660825610137280916196269427982344656620238994280846424171101215423389969631383838084425994335511030952221699207750979790521448645363310389045055537788819565160137389430591227710712279293039916445651433820193792216761509679912129793381108214051586311337230441979470036085511372763363653706208332179205907328870782006323642908391096841024146424463254323618845806925372092324691825484044978631573730627977184907232612792024401929132403842783291455226512920595299360330081638008785429179809526463847350089561804453281872959478533897907503553452965672071182395134998002334642426750949187391909706482191113152832796626647661422488160044429233948924735912118395112702907769652857717891873672343511075166571885322879961686361934509963024030177157525923384199705490922901018648673960625394331590116302703080765105871467550121742725401533310194450832278887024188270850976244407104059459455632115955338355919336641663524901441312489674013980683851308514040514289344096367706289985730369912921972609260822313998772004175486656093815187106171976846532178036346528788714755659847421275553582855302759367902102849038024280647106729620222587194391106859646922214652752392888018344896471210459178385528321615777213257805399734963946768735461394758733992090649013723910559227530542345705369607570272366950438106082598165291107065810651827430849923756601417195719106131845567163489786961659893141907411888087211909936088479706637642650156845422229777133932890360676133023183611144683242855880221803929083022889322890741335976262638096308072950434522276184182325344750707315782786973615957299189371050959507572802647788551410883860728950571078330383076962877829087209736143264780857955781258340687903850716480032394418789985383611468134132346816512002490273818398906935451181160723987638608756142699829908968033174310647059114988019714726585088654892463734274918455585628070804279818475946548083837400043043308638351681209218400915589754240327960211162565517178332807528242811479627798162120304162666594000333742812162920852246805945775307201630753177331059885527452550289761078792025759595505454255364869317019261243841856797291523460366041844538299538294565549899464600703703266036480750181240716711748991440417505724127364138213594739704373449012299704726020369506000004272493600661170173544224883338407185808903413116929044823471923494882442043278472358532354869524765944969445225220361957919297948040254391195328068373291806077231507899761447107721162277419436289402313853892808375593527803149527989833303957843400673933352807682341965102121100218214542255788206400281931549408281671970799750928741122426537910291986615833991139901429353276272348307689669520162935229106943821030832808949210413816751101339623907101180637063142661778028216135861434774113426926778026533227925428352564986040197043124382349059214962429797308927829929374019742747581845338176136966974213620368835814490196766007146768290126184804522995098406555054143688708436868883924115938729936776883480917880214908062807761396237112232663346141633106042177299161326707150751179547426691826618948518010304532731085291293808508916228859065813906144367199600772614235826629952552373528587952829962173037661551495953166252427584328795981275772297380472663934274319815995748677913470075360296890005606496956977351740911992982961100486270377994999523026523992496786245016275969840765119673899216466891391548168901289706315079950537139966421442763461592146930686390137933340397787100662503018875429362283773599062912273332640313650120297251528769567676803880863629816918284087326162837760545566926672857654762020907734490707583382413673103609714267406766573940567138489346208591968696704751491957886609644769247322916968292929749573830562403489222580954343104073448594491519843669308917645680347763514989824019070606253376475817351232083348308071121998426995407847151173433397155028485503350404950130072764245951118492096627092157784938838659385171684737887609393894039800471608735493468701375627075356159026584212922633207417219551991501892824129227949414759954365139387062536277875593638444992500664147600250584751948319966489821355070623296149020854715074463580953680285881967443333955711671584096452788312164332129246813566444576155796789467559454220963485192276226372924806802252704608784319099875530133015248863181015050036527656006972080935463964215668279384550428885910698235865347214504075014114894718914538278499044042595760853470472972840319073049942646740917393715122232385509064635677568634162919983548229020961658062171060645388449548969322339604084903167737562253798732169357170885405186362174842270201762255057416923294954227424095498186830303981122324235015695224571566849987734591658353260885511007579640683704392799053686879226714528176536920299469455312063277168024876560546558374265187221959391142338835840493799370030870590023804013993756030853390564362217613667663325299004992641861090965507946693163661701527157573314580952876729972587317596935294428378734186939386325239767319763776740984075918078998170090975407883099643131813207357322928659665148713181449539502828875877187746052528447482894367058106946744206000068149054193933245823977430541897226168853255710575703999893802517351138756288630358728952987587599947497219279785268420532292417260600887638579737343034479213818161222481191148680677342382012552818405499763956712819935684683473529792616345447545445255175077442510185928830601048174042341028930304169551205045109401098023817349223777044621600197504814369029016152096883623624953331654933117919562770083763384793316854842775258911987180547513702714179773044955513737241221254433162298070084128816646370919243920685826352409420362252819985801751300973840006361798954687483512360155989165621030713327397956182567958536069530711116577246139986685878604253164949171287859342342569906831333984365530110339093575653685617214788652791633252945840146279960576457368017451892293787052819667200488382940399186473316418774716776680446923669395249399712609658905387281820430188316552679540427990432918905897191480040178817812097569945899589174832001784186352780921245782232683288729556563986165724063928624331694378387436972128935283274237519168920704104526141571035191478494720762217431491513179997178401752419229053862021576835844246323138186948233195125239859312103791663303368533005109072752239670766027921601697367259761034308009784054516359906365105046866564400117080359777964470613268296776431201279531921957121656812353120679320102762543937414200372205294329129248732455371203224747030411526302333969005617176343049685415747239202671646782719445313408605542817737777549821057876064780540211592098323504651133807162216660803914302367387942582950082484631862939493998682047580744733503391142468888307016504379614588179914745625093093876626078985179745969301113054070332852884945717709475466760742148722043916028317747098755028175900088480468559627942864296373225575871884244248145717499964291894483465025538640410509052753166614063895800934103084533167960257300076301912900654739769900919686978725720685241206887505039052088178270751170940673489589765585850891308880013103474590304426773981244265073867707869691249201594613629513674618916060427969627522343909781187921123364803343751313864555324623613100057009596234583266215654604037490274252774709489918223957700244914019388202607655654189658664771710127474725170549056201561310199217407445371928246377717287851993383017352875159200318950509729329110321359747359847668919065768042607218316709327871760618592007632991410527626358250903885473705527796525508112593363102017712759198642892833514872082183899813153458149445525030228119389983027783410166575714844969658182316205038768024608224379955622341831694377381919923656594994475642368862310725043672497730741844263359097148448524044242958948770020336103576126739913825052078285015208994359318051326940511237431878924590323747107770788900064878382941349579976910514282501309299215329032553761459437024602457246351231329783357758250375101240662548382367385091241221249662618770987391782037826931614905751824947085259522415617055725871391521382252789887875133043244149786136087695405655194068297389401922750004252672427710912440331400380875346065079794325442118614363257772621673035630887512707636579862219946109229631276876999808138511585226874004866174269347748530499892715851383490780340454102724353685944491405103247937482357166771206010378146658035154980054262844434854579199368153411809018286292431806139652536784959634062562594643873817429461301235201827272199424995564023022067011298994825938143222220532708502978070676818127619833499554774024941742219803549412206946283394346473432644694957786701773462184526254797732091628984666374490195233629861583113318402060599123669465058359727566817820269020837400854284733184398561903639524387149306648660502321592932958644436796997195865755420683906303657793037173101883338865186182169834477321671814128253158142871358888521976098603573420470329976069000924636748315177570632048621109856934083503493280807097073790971629489380468010593527667642358102645886056666674244644803401502541285650650346903235639329458486052951759503034309279552470088275283287575237420497508278555623909542525310162201734352718367611469051577602967837720457893438073776914620586503156052051895322562205350313500295089703593512915618162873188759613057118812584980111558097230734081277698078842041806923500635255937799002718098300979028385446469004182332196261914235625429383038687700353698151571940023893135859253721256826687445606135067521033714031996302150217947366702984229963106144131955412128601038514163787732317409303422505733962247062593903788158425520867030683486697793445357252940116070542407079582622133696310407213973097992069759388493776169995049593836961211949011350072202705935888380735826085703695753218688465820934856481704105358683813752863455740442231969205589300031128224141071456732255677205070261264160458399738446465160734052522385404333770905302283042453459304242434191561400082953727006862969512815746719077095676877530359717088028666475699451873267692227273238649791498801186583024456850715614655253009293565168944822396222030236735130497632814427555751898940940189259923103141324708713933770970566521404411277370150401176831673572476947118757160925240228188600011710298410440501059997760734435181726131372804316473392787309709247855566456305621676479681855802886046960673100037053932245398601129566030845338268219032409570081879961504187242141944298820873181342012798378474107010677464318094873480563136438403608387473229196744926115953935696148419914694946423287644133299365549889536721271121929090705000539286756718513317422049660045991991650437558261048044225984409669198431092549743610196163488721123931834790704220694580490081254996390563340110096293947922784112121706515108449991570287829206041555329481858708091263151259793758639208050370726514316668991693967271366271394277847406080065849891534352922708345244224771382845806458414223605788965746778138391696684159142377503646724791524065283146279767346744134844416130753571408069904621003480322836944514770154161584025327732837335963757838996411119384577543492555997284186110495330379065169505047600585272682063495926132487456109864460183682239436778714389999772920024187771829746253219058072362008207151686413871618302350786288541106322251468634758887973154562949885293120141739322711839299300312722279488167407255571395509842055844903520047386215617283585819409661111928154778614460542431147929854794666998260153853863012971542806595278706971291792812503130104989042940176112286376151124880589424782541287220520449865362716783938084821175573909316521321299757048080958290580622017595282332447842510623602723742619767582287239797614546289448804821334862195992119006735715314921787859246188187537780600717202092057137823990520970128108766196071428469161715702611355485110845873506425239560905206677219094544025575024246672743956424729830175935722817612633039346089459868629670519556053291908593774056225472565396213311719511930650461834599554079279292837352688426136721351419108301865905978507374612398696772630135075330927640708872934544637398406321373006914732273148283145390901082390972634763511490911828425204875750250523996399091137136342379476821864323265511414260840953000752220516830638276705570596747354311709397128414986763482804883939135626366246126056118456736123030378793530626294161769281485747142185982641124451338672374279371212961997255246867851680696270369321708969442677298063822859808827404470590901843792919284764163174484427321988750581894077410762890264510468947616328450174180271836678117999896042956401230987560185999751668596051832852058028308577139290631226014323857254698878973087730345229831080702622827073842164770699284634196327476368971243194827310321788421673920822139303570901826973251793267107569807694611418558647391412601196269395164624305250850544706454776550136950047437325036981220993318820057127827257819094425054780723292842440224910274074990236925257868923702984359467869067736659767921882155779732057686435507173382107955260533265998790020161844547981384880288960662571566187708875589287054644726233384715613355599249584627262099568390622624548460338713277151195176863783287336428281191566950423897340173024193361590425300792792832652483517004048508135317444295859677276106886945610967120506399109451028764365995258454705485568727966408148402869220947218213549593921558728484850958078946697560858215802528355647311621551780866111651721371426584680543015720864544200787002879091659663137646596519848761932389579788034242629225427074323841324971659467957746266542594514628499482207299767421398072258781971010724251785595087816126239938994558121426882060869230472668509853610499219824787510069962487907340068967311217513661178853364003851051774045479157434702496059414122703971815818523582183904425857378393645434239984152056059464455186287723135945356984801460527456456116060838395791418763380843936809281506807446000966568782241583701993514245125881959113089887660685883884810097260031300652230754143161954336537410656693577707675351544400305761253546908687697187258254511440436380691921503545643911421558638038994254563955486184101101101784835545288097124177915095279332446151026134733789765263362552950245019014287987730277253395720907734778510809729372514938519940321011351719485506893213080995806516033281235616711064827904146375732185177828841186224602275036693214606573259615894621909145312851345449399544459709711415754834509073597178505609801081920822877421698912460743897311601341679987053576318407398874210429252294093372564784316552234002383845214593147396581153561807223936797440673923702321165341351761697318296700114826743950853978780985413365737976009042183245377609848028616955399471937253096405383676977939119912880368437003621006873721834131822128124901976407577267166449840817736163329322710526965368133801097549538761761851761686671996228030616062265893817901136566303137597988820920326843953851296604969852118125376364561450457819428992207584073503180206307834833368008961247057176172474885398872096265392077869325091822033313227538455495091715790652146959110224365125593093961071237614513908816784661642318633569329756095383029937630344967436790441055814280276209721485746010358026143109947413599838174998662967883061823252361500313887203254797135386991903840210637563395961310260597405294086649790789616488332217812595324348959051032928901747332797932023851322004215143825109915037132411454971263335284900026584017284076168625056054302531728991822959775579750616263846759234199088119748902493662759969280426016803435867800690698495672780861781107186867107542841987211219722860417935388023950786755665675597958120477752017568113946046498347874422416849159295630267626657086105506067252100658296956466444081886122871052710104699925877897505102779248066238903361991203047388770619016463172727785197293881733219418636944456743325710176009401291499137305967414963136159467539198095912948913938100767933441227162440566470376821215973966560430027278873790011242232235826518256687682985142600693840161013162792240161192427203646001243537635134266339192570371660654610848032493337108095648839591820211329687921811016401352909378937154448513411962939065506922346838165531731811642457385832641219304573951683222272852679979571062771235017110873427074842846152788341298265358520429553678568491571104574657566401262364757925539402296171631572081522657328666688831927375734853648461441234279861299505271794258079609927060808884040802639504149065021274431517019239011536396480064345494042288635452145324427589373499896176363859744758320875584364432009732185992997376689055302682690023575699720116864941517603139929955723807758094992693942378280767687318182927198605747831505193729159006833407228439405189983341801003818919795806111523681236036515368014950636874480787227875425604961309710611821370603045805466237121894321384932442553017335285495479822303141830823900115646158088464763065625344815979860191950520014764815931510149922373655217939640040836005857622592325552596100622983246239097458250601664615843091595916034048062352885662926271464300875515629934701225363400456629079751474993643348895581690889567949572124209154442416941187772042780500645342855453811425718621583619273678878335202040678661104347882738038730248671784269415144383776016985045316073815267202088990455753948703537329474162015373924900823905157095851577471195789030188709409419302195409519551624655916132681939073509304072942718256986235285865496666046607196961862879385239054856724632077508600013555094382347520335039116478880204001912106022627287706170504851016987294532418625957835854278003060139054953190607937864022066772857286048442040239016873060704068669259314146545128008431874391775795305538478952069265000773267879949506558307955412209104226285340873960523355188821084062689361039040654594806450389200888265801365629539399195244604761500564707937568343367466376177432594622205795732063228728101332830954610982290056731035408894257479923878249479904263855607747693638984857827603729490696518940269784539550992301156414948394585826349731716962577531027975526940368141337385547955837464973625388707291489525228792684443470380087039018616509760579657695410273501813199672185853999972495707144047264202035511255178584811453033406428088447437704028207825473694595365826285026004169458134418396942952298897899796834412299494683036525549742194530048210843765067656187778198036558498685640904772839321240306720977432656304959188768291030165191915202531299386712761787580765213140998931393538514934411178746590705378380394168474116691012495323789448935938239423313607073543119046421506450683911140027589993082542734054928384032470959670736094088840001423442187258042170084327435519293615689979573861292764298467397222125684807455279691440451187052151797991960711057624212966184471366582388249237817769179774625487949767090801233933749277230687709107234102700766747845661192125401430724232114371966682334154885798054186108731351494549721154562242316507925403061362015069563439218798320657566288462244973536257613222065063289654501142931907229662648430564750547312173861918815900773525925894493302624621927575492484550035699542003139274959948488191343767464623707883378210128133426166460762737270375922770504591371188891989893970778804678161443553753761552059094573815015428211351230165081361694316363463540426516440586740153019995238477769939908647279778030170616154876373102409353515667224765726980137963994807543715213560667224931998275936338194989903421235971634347767401772397160026071891946153112582983028814007614423335082474306314836696674122701214659374620444129402884080973783906501429553195594188932883810574674982790483821666808312410408224432832352080694092566956944673892793624783597202098439375946291065608015273392748479662886811970821236396081463024629373012337365807409628157224053544171863054531624418887651839476662879372919866835972487562488434665939211721034336473688360939866783876606514837497494830417795618265069513404018244253636812503417904820734155250861479056317155596867826166129196389236505388064138008310604480547290328047370475972152129745920693985898431767506644754893698644888998062613340843531506261429398269277187350337399233214725293453076154535410598280268565870234426743982538086955620385927852334889360704977095315959811913498275126592022456981964962101696874902454331485286202185317333872286513715392003600902956111369874392127990325970476776358066752884845730124131076474712131169493995835331862925001295222912002534137606539973300604117548048800669675370953717853927066250584120515900036357187073332066574095346829437182896108368134789496762969461342098612856736093828373741458434993330588163860661943228799112913409555500912213507136442716649685020741547043062387914776883023704787486781396817402426875958078817723485852281176208168726360397265024939433418044228411534337943728841397700964225902716354546810530474628786416312850946048996091598548203536364525178219529079944664506246552155020218228241602836477614754208115211235601815472103942235397702601001033192712094693861234895975037564460610378648841125168406590192037443176620223738324779761788271887625324221316048330261843754127546297912864353930800720261142055522670648837075110531110076959789922299611175106072815141585694463861322739354082507081796320124920363949424331070245292947598371209585385337374112014176986681408215952813563157451529599657428766216703360015234506303650557287209166628991392103532112106993700536023283498206793404361709149133692033615634861030443431769641105565928675961441364970533494818640571466916213550493632728914860043186688868983211337865133846131226189360756759189540313206713578459727728297966130764333813324752676647660180048881496392075403722375677876575470471913798474440548322737303669583886006960305321204410509141287311834680063767010406618052645217113129850248292334041479756480641829008972670108992183367855461280271470487409156699659906317179427043964717460208307022022935560359356058122214545482836373319315957049477493044567873053025739585447222123669086807023378068910054511521173484779654341362557393353686225090608546310047769143326561193020604534955502049944848793884154923266581789855508959514153121705978102536009239024003926162153213940890476873951724556079517808155405352788448054649481554311749647898717117060449330972500487018586301300131923028929588784971808979032477367514939445920493579285231575215678745269362754636063210863153523665340221350565244187415313069070051246729902710288863934089617969076793316025819101415568677954452887891233988755596786185302044270496899269990440486021883283623493749277593018826048468022884738869764880621382071027534530287252956337528630617235816916646864319056326250824721897357187273079196266376010654647474054306381996457756500987657546734186453584716827409986508117836097619388951125679395098959362361490432055465371288181566104326348750305111789459322673746327731856203393865829341315552202284898102362131975278370816930813206637645293674134035764825897435183888596801866484438599196828336949670305222030128691757460873752359682494148970297168687228085146341645476263041426084482000113409385240880303614257037848949189903083366011968590989946546362389716819625450852008105341533002860771310756909708624394680068813583136084599453639512199638124778124385309849133229362267870880039279373735887423192363105519138464044406969948725776563977415213517188667991511759300284015948606273629571158630643325196889266065925347578450970865419207756525277815593840642154654929777473819937351437656111891753037556256154061799621414238222975928255443776642942464153246105287485555319047815501071513548845294099933786880201716839601039911850231517576132546089087718736388104897913454637082985108584813448594324987337672960188306094215618696731222016138206775479548643108474980571039969542888898758642718804450072266952715772230021641846749702080738960936748902455469428776838507238601808061595784431463761099832085549871281390414959268871491226290431737168752461806656214444990831691133564723215202117748358031621518555635620828934332446883808809319965233940028431677876063240782473327070880126055501269540360039679295836240140059402001986131602510223185727665958516317219280878068566806323383589888004345569154322757560738848994840067042937540390637720452603059568984543963561130166042728784106505713346723375287307982993680187260534462865186154942437330060335191292096460790674264524076281955468277043784124939414137649198182493506308658660398072760579775804976749353998926549073990977773427986302027893396301939208186816155879192639351771162623466774678063443193124631596864432491519355675052803453362346761370395920651583055912538222724116764970568073273407007154462223262772053255630969896158923889058275285489409779755237146433450273013083547019991966852672945299537962351551211843245455177950164439546098935446181914888272937801080860125745793153265112775202094206703886450662773671714922888438823751535198016971919832598438780575983807915332672361437098570077576713245839484238663737279702899571943325925558520436110188157419352921813804275654896285861203027165037408936800726692432827844785222525198301084597373135852502342370787678600118242249194731447150740692427376627647546323780738650833158458994445424773071155004039393030156773986402880022685467842232256357445038973270805510831884120712696553004537533091938284528417355349238383272546401570172198933266681653068165559321808877377703059700514492273614607485562305426512629459360729070288878681177699673620613932817635822033137404733126220705054451390755256089759329305395281794915305485043366816399765136707338271784944175658912666937945851085430318754934180240455037571365255016483780484749429625824695604091643262685560251439132251464250569811003368445099443804477814510796103157404360458100803724163121491672436063849925293173434079741530456259366058954254101266500682958325813471245943013133267226692255725127649892513633773397363101540048873801440413989454702475260013388113957453371990825093423364179311523794717060661377513023996471674792981068397343101977473297197619745897543657851078937096457057947528452797001665751348534491355379771234075027200102953955156148631236089416259097676073823443486578271600063051361410211972581650616359277656005558433388293674295673677271298756264514461104867184331457688224766563042068100107808771692925693738276173310599381212847353580741124304780285484141132701554624675038835892565973243107202053123760387747664615810647749776917330193158187193367848133967416702390598658905369408776696509157956432360127971453495991286557561903364310025382103218106604766915667758687315760011775235858374901940984458489752638144352855655753864252249080886466020665900683560503398452895336630193030586484560773413640589325269187890478992577392838623148713318153238385875310488360910472567402588918972276756575695813613004222523848117740897589617602355727186723517263324122486515766538064859988027234955952968518057322419640559309670728290148680570797578112026579204115111456792045158551134303631133843387403952094475956090302370459719547176047958491556503821100301096506957338250333179010758891469057620240319401711616244178749989270148704278097896062228505686206379340670901585976433959269830939769584411521430094807577229381731807748681432060552993842034862819826339479255394017705538513687111179767305038060913593322306935835575169769762026576930655649490352015524502865270331585479526427402934674299092738186555932517876303280887806014892950486094273372633392214660613821884204460458673507852235786690574762184473918255044198305132845556865414470031667235533374457331434592554563469014255297639087348140350205274500975837609843894434073686806736517604554842826268085142481187538039798210420368212977188328193204498528724538355186982383701000674168974937943672470603808080267377460465258598530274911847099989879791158883410722152448103016251182519380476735726820442383421687589877127638692905074976235212725730981799612616064650989505788137271388449882099148400922665854152711628557909834261323484168681735835154943126554850507179703471516897743735412960679494786337318616895011505474102147036416617384061363046642455292494619335736252636942599771620710132314791578356245332192513417120361238092113322054742144154141732413118022227402828515726906543779138501991906645750717212083011690064894773651543038592583642560975300788774694014095680068248990244238746418968425422614889623769220283468574405740987007375638549979740477700651407647868965537601312158481227612226240402755373958175676081778785107734850844068345748016121591722419479087799714467022828004455374145105655844377416785777926492081291858991228325228859856270021239963928816170279286521029844992981421572562997470995055413459527964427646242474725196925479448441261552685808967374155614046930155566487361280618159034850262638863849128380665750673397878013292058962731665998636844539674353565090665677151039734791344112777527123600819380616454410510862815621699699752450472396779435421727929373281263858016915757371430836549106066119860258472263075564521968831685891779173121918317061311431478527573713619561295816665087479185381187909509994096080281989434841729166005361571344002929465812306737715265027858534374433576702777276744477835476968921273100961275764928662891823456884886161459055428023756289610649467470338942538824760559939240091939154661463955793341010467887169869334132716257161182730649241859746067447795030896601263591311868677787213776506997816126295812917876815458766959199416074314023693497698322371336127082775582552477172207080195384654424559019743299541231786354769160523140882883530619107647003619449803915722452357044307580510659944170829183142086677232084516116125287435174537468348802985343211223087274036387111259258232464023997586741455726997583582286370189862493379434146779680652539260121676870850574726616202395513201587989801944173272011432306763442539860182596189859765366475161531823137640417538867587315573552158666964044195224103870018899197709665888737365411147390517633682674695155694869948075542769877017875655806839704403396928283043175697060636324641131435635763263060738121817132748148382430248126843057829334476817103794367697618598356334962523309991478514804198199695018792458999978718373824244082980867293818661189443240654617414154145611536220973257084549805887314078667180532415018458072618437509735200994322211311248958419011094804997286676920340599609625955913025221707812814258378355433601726236056660738290204541310748354676648592067969093522163315779350585971805853725709990515657219293087610035904730631276864189072463053031602038615119604539187495408563315307887927326140638248189720541551917595233236965504191738299348448548171402037408113015961400598926266788320355523418184151050761307344015648156113148113355414813545052893291491502399825789401154998272268170252328424806658131796572004484251353147515927311337670848763237309263856195204132447339280592230633926651297904427248136531518574769536027537287619482263715715178579826914216112344553626848887213848403161630674028360806458306026276421901381718361313203733707123173229171698083254257679608577271688318234547083556286890852880787681973942663140997286318520194173215372457923958058984670262180060777478466892124089745530318173246627698528108288425416719034903391821601214989196504904126778074365812330946547647771497603957443373609691386683992569916051041801978136138768511602680365593593277642698261849358470063426427467413580252330978049688877078783007737766093479034643710510632169749879398376877602603503918912465997009211608893527564165097628424467390543915397135265617153355814749644481433305801483562479844764900443519135249068484446257689728511283169131931444077590365455854884785954095714002794530535652340429330823524032938727607421147152948834959457384969110335765765760600670746160843356441325861322042852994067453526370616488693438595705186872183596806206484980130734641947473790931294412875996479023303779305682415064623993473531190635220730907423540471511696396348749884233548818564591222051641283752712968688315351589977475717230265968332127323890782844994192469112531847915854597856807405430437206699835449959529836126423213477086898158562983679604015545681418246121911675323852754516222737345976097894299307325232359485500241572691118454145456565286644557544995666480385364139726320554415209536621797977715430320312272254804846552170391431498008027948706297406435741798816988234095793895069501410076979175839837009398102872016035277852185116186782322381908907403679235018793413996489819208582130719956428441645671194610390690523836037213374481424995898120877760019140921740544386307310539605237301535865831913060382206425696055646830822449239596973518329613437685096744209986957422806024736550955082298140905924874612236748160236293131692519139499865656898459521536302121811772299936932521023153308775631679954914445459580853095283154675728742174426404879235827793165975894848838342058818657528868122791532266374708453195510326117973192454526831916541037551562799502818614164124998630362247201476779321107430717914618898495959013524326961651869019040072072799834020819125457678093530168005210469215102219163815531605193942988774056640172479583675499501683255214482397439832511100201180540647365048156793965703692521862682880813445370860432137426666311253411529395385988427918941675998417854828381847601367779973028581366701436979258884887665925683137896702697295304447102462552342409949992579819542803375692724115248530994324972466497719388744529757282215473187178571308938320107984941960666149610437170868531375477619110721297582744326255436548073288522762890212400573452865929270442123339045933315611597205761705967139649600150444529652953074229972389350412763939241397829468564914917044888273351027622690706843267967556850412368305362841303930203995442028084073790823148428291614656359920235676974661633620275793949158804312257139656750950965125896558563027274547643783658441046155618568829747835143096106621727012321609012981160325089729867163295172575767645046368290612413247890132789064569334162155094494461038791266899088782437391651690734420751990090254487647862452838592652341934302857087705512064921104159437262571115400211021669461430522086946475666487127811973502978858216889026647103751907823523429270297985154361923010536022863561479457649557280409436112438216478390394099388658336425579920712733414247252447103221594280172681999600095284752024402686937577141386788007897760704253186427358010101980315605574078130899389653432501220702166318936598538632934540431982358560209690709822213732571649857148867376103195498921953352226855723063975080683105754479189979388979366257042558786937079074053572365294476392565151389795807280160146513044528126079623413278187269839123667486512279905562058484127170374543684076393264274283261622492690133490898932349293620626794416669668059406403688929629878025277421938759277250280745294523172642883997992605082998912570998752667285781155288389621425592130812870969551818171539517950024995094232059972236567885607932490555638950811823458617604422389603732585320566105680881024892259657711665897326540264278092541539924878956892329246043695302433061400028014379343094822060253356096107742839880634279775075855004722300524417404351116061103189962918935861620792608111662968287819920042042792823678585009053499901923697565426475351014801403245082821931726235447434141741116588363559328194623091529821582261695786091115213815120402107041804410261954055413854686624885004509342705301769459621737523508839260085215258588657998071004013210707833924699380132337125125505913173268174585790048769027552896619356997009862262148210579350701557484366990866349556445576232501071036290308638603104812236796925345747017377439571535831050622514570429324893175192198412812779579450870798699369987570151277925693822092651320134286108134513323423189387739941669148562241963107309034701094522880524796915387547178995862506593912224282228012013340560034629918547318847480659896685420868482154329956524513285451842398145115107652863599606875621829987334878386517636678516845880317213444413224743644476665040039119559407914670495266002008134978350640137912378059342598703943308091266073993735417020566056887716809221736439991183839329132843190942506484817353046842499279905243774921496442279265935735474071533976782816270937767993717832361208657631066254809363035063582642385405138132038565385870036241740366092564180127230291142907624240669427995053902994045901713943627701014973925444723035292235633338833634309722310025356179961738386489873931151950618393904269222545745689968736222758528135693728328357823715714978293275393084279996229088395484027814800443021782753448907133033820347971890155218002338355579984833392500518656387000422693229482220831854028446930746092371690365487908130988427864631662055664146790866479040478638766942095208732624942301201600165136185050861922542642992424520358463020340131513907935738730656156509486621123764683593685912477667491172237674519042038681905358912193941307309874830781659769456301521055018112423566274650972941111232958179321741949780597565253396063880604436302507711422277652494835138492635913202713862689068115573800653577867671465614167854094524058504856925714639264107784744040697384051248531886863376109118246714348431320609250852604513062924535734195500840234490283692844465510120424875686261364988413277236330460499478109283028882769827373755149609517219270611877644582561187442879866207428727617186241330058490398868025347805486932197748206242586467975078585287477104145976580414537373330802091053452834012677380569576536684694392403327449985880098599119676830463423333228994668916485688524053029848025677626953618582375526625738038031767569159214837890618275828863676415966930437217766096782604234817741427958656864540437928600708472180920297266297513303216630735882923506368685916155481603627075592188004008818967862735867775331980561816095499627146654103372462525940204086826365529655203169210314818681272627228398925277201007639739330278118285097131287546899857924340543378433391847705146800245156398998924912789738992279951637183873038926069743558089506932319706841812959441460786938570691749151482545062893206165394862262889566851962771315102622414441418403003110388003101124002737071223828425785826750750116379419826177790927719124865919268519447710459886803412464699730004134918502022458891006115916708057711077629119294713066768183926089963387743570764195224078835808587877018885917577335551346766049480722455265016556303687733534539089541372921596517654349896136741579637123573260832313962690152826990077378708504069730086326272334449675733736986303007544188449811370996481897014316905379484697555053096950136975570343834188790598350631476672178833586013845443877958985182236591540352005193895133838838973282526234054636656908111946316143905023682148481737911598866090342757603918391139807662381571807988884781203372276299423791689878520253452670155744172078175437603081786070839812644336442885255321228905755828088970603657269915073696493485623399110751383934461592829977090132872358740813871682541136765537416140253785832660529047623688388633605711010965999504545198077127390564230605232259684363925432599050516309318543707828614285409916033841249731928654566004427754701675341050053484456122368807615345050247305109831301953131330292895955052395355155745132329305318442011289117750344754077542777392288460419615582829110134580850202054928254408654639015889335521008876102640401111778653682203151240259147577286423715283733081471337898324082782698189675518188700427378854071593087246079649667657824470564742314418299009704672019647156750765465030280453714074254028848832486246200374926384274119864604649487001702024779330157297648400861399863343060338069304913981686788557623735230559142176450804567414833262535382076877657574246863007161450478788062195961409154076265639634073966809622730669485507105798653350327277231408841495106806823222847719656876483187664746233117949756621569701866810684861582410011847736988467061354125619023588781515341426038115476354162444842939175963567147041915882429000711517492084716612215508486095438483069310878456166423479359240206802039201168392781245045835636598756654090438791646410071113979393517171969522670743088321015086647946137799528240828510779400031415762471953493829920510664359956855144729627422661751897782120012868653378910381967459652055176970914840617642687388787865927247528532293604402124582606022658422612255111790011614712127938608223522670307496431571596821145980067241144028580111937671730519915835157265946666086287404121424899455789360729174599821517861038632123650373327084944837048718436650642651692609454374604469488070890580960848627700295156982000363041398395800141069175326866315542477592575466621523602100472824164944114743428164978410556812954388853191316105237396094824674464085863536850269185649427925629602823550113735820724372048264328022458008146289493968582805007012313087292182352583259121064953247400334991725460679022398298766234120557670178818976092343874151021173251446631598725118366897559281669702595895658635423555845004567067055400315168208942147575444012011424738840824899098700829551604793528078642957869954196723213496573941834688777398062706170055206766261503443541124816656170756208857629402904709306584457442822722547309990646838009485051242759542233144336231380509547250442720322269657089248715239453519677878262868953119787041151608673318433298041115885618279473014213623668302373371796948952406168062076006536928743735122060895470393492235297601433077861214999621668028613135631356233646672000829523157066198874870363151509427259783681994943203068073645068074450700117378541143246721595839805828567426263372814135685252522761951246253462598271999012774508991111350495748371169464070043785561892595032248085351153012793594505539706361712617425487138718414313785172429127240089798438885511218403216766010612246735011610542683747766655972968716409987787153485290238845059077605916340674297814422818108011363080086173562778352410498241394384539006051046723624174101637049229048894730610985334736865583076112800841925534717825737458642186721009781002385639632521472632835305401917853094238288380735278619859030056857000301144772570851028076535338238545274398834703590987069092828509641187196624795837995457748923066713939756966715194466860895243919277460479026205962346895626375002958181592373638089941143111720688449867170985972014578641709425023858605440714072277300733746700760600078344829412982152889578596847745126108924647558879357756699657848868891187287987941459428442807321326758719365375049254178803356977784155828501908467297305671137552069810880617858152047643501120063855360498143252683583289867686790923777761346960680330459739677041436530318029546551654874628770571624349438279983591912141306573225838557071993394859490971428856643142523997675732770369209721433807034590991971298365679355309551434690676122869071092462586369198848460264216029306508945597750380502904203190291886362707612905272681752254468492369943441863183899866966750922612775280073752020584047050524059382291828428075126851788788606753868657421224746335824547673156673078847111324995081838875201988401521736534900622828128610643288848841707649668316173848510568746623307334405791630289281607357405130474766489880423996141992707962450499875863825003906216990350425062909477720220398938523093564289388365150963530154989745335465650649782655743650757201799390161231142649398049111969144178000242937049360542210542310023703985844836179958760885656580145672555006932749239781406636266935932682843076305057984294020092648400610562584919048418819090420265051889053113362766209231482671419800476044388164721846511525217297520608706610154051984253028688086132937567071555558615077336667890611753139236358801136397143748643769863069444610133168108068172045981270214002867214512979275849281852237453021883099231266365676399848561841429518479716307606120368192334642902276938836984529108170650986384054506208830925055721984958619062103779420191689677901797961282852858285417847255281171366547406769625690173471957479885076032443980144293150401648523200814343031385456142150961023186213175178160934138906284407128359437227470227255129075621575144096859779287961832077106203759376735710287947802011005847019245015234752597961317996661068950926825729445615382587959660119216215554335214838238828016898224739227231342824483012163549543824813848302717677944911192458758613633508301827624632038239670775469666570686257009662651332148560872191924105114691632137746843101535252824367959538661170846417478200775773183652936114371239264519258709657909953722642596532077383452993224520755036812416044684852423322329790659231136362094003572550815098361127393204943047950619013901762480700501047778260916890499771927036755518220990578865593475737856779616625764957429890071028680450058589732654173380540119312415143916266198374763631345538512989283773537520205666390224522882856234168789518621223033478151590211803761697704675481444348281252551630886636000579876031229836210870153805071685652862521354802915652511659784900597127465249168290801494568946595380938800332037899457828647044924225446992843665209433291842381281227882372834643315189210288618413075270667848199409967198270138109095976982615784326699403880764257245908318495197225112597366120452607203770570439815233401303518764013020106145847322726471460765671931245001494071184904746557759295376952532366227259995006090673157508272749075357315650320102332240165690898697463618761018747123553650365701803381056253158754074509780480236775021876729322005446596936609504003824693127824985714693368214175250091840791791614939837832143409133821124638597894047334647998318133973609849561254838189766037156699472766131067081897167358341385123655856641164544185861002071432958132741074969966429380380994203128607950037474219045017654930369354627139803615227022153885575721462977361476223127936268715380238727889572921105636388804833252145861484565626553524154159127839013977061117439874947488771960504134994515018105215008207839597162282955057045402044980309225349675211208328144171218576792492917047111529388633468990942147817888847375778042367128479373988692401628615761473704231718624013084813283862730960793862916638300594836615478260481344637477404016884014549878387488401914173399696468359087544163835490368912421467367574858985051116144401237556012217752989566016712300741156936628207696541559323825826363563202534141570832986469434887804845039281557984571376805001951637617715331416694130837211668255461088153367101171401409377294577669734094488800629177504349903768306734500092921388976352481606637924763326770603208569149561203649297306165128552447215426678296770721668764502199361032435894428526954398722487743324803306742369608798533741649993785882258435136001988941371918339971250460034666105331554124934761798130034546448097991702249707670037506901916284117673761411043171238296602632869544774853426327768387406586529129561768677956430337456831707509165637974375537627583449185587018678186119567021025940937961773544302602358553822786147920651458679884371150897743750546979023641074876819367748975950500178790090270165696789325797960058712568202436725103503372374325181416901789378149983445571610936433931051008573677597046600352284504796138492935664099377646632232987702615206237054484952757356078684185787582816605476603579806088661117464545340193112039597074814641549980340138291352960499505830331379261436567976763803085744645002209920906293234127347174084757636515508276995981274904846589491126561128480830004988869930675216691374072487221888324242450112601551885992217098189366176364800444688898121626763743315476502128649374916817946708523534614175760815647906439420628146324821503264518804081016161512796219989327047301228270837278865877057852994736921785127385816105491606443707158255988334121646154235482127914225222677179391412411526508868702278628220418511023908756636085334304316563163830830893556025598207805242518067894375586199144229718571857483731885636498952803672185776498082118134813166644115673396173084642580353427571050120402562060374270522002031848242174394671569936787524394822128313094995452545238248393071700665478918932814493731343929265480633023945014279496290457813397735367392761025503166821713045328013483239465205921908617019750317385854151679917307597212776055813630232455893885391832194162562963308456512806481002130391127561000406730480518394072354723484941211362769238579719946804936266741897323708255221340712566114770102155925287963125348195244231901429776785115818423052251421664859996309010312628188807519008015198171170309014814359694661102163639897707325917187051176228118213696235419189325148439237909512431744143492302327167037195957305604863336214095491466802769723285542151589254746004551946701669455280808835276059387896776419519430579910360625533227370250611840056066495125829654129238203048160949267870272081271198926776406980567982451348699464201612141648903398155503311367332065089330548820694968463141199649183971412069176890437103981941344913688496865149424241954665261825807639819078463024025725985072919829006124785977741350880463790324724364660164463470839799780362657528482150806293524556844108165947170771581620983593380620774300487676572624748063521215724298597461059596369408496818577904406118334371996768230640957786119181124094792074857045153322049184134656654757568748160397336406644092646883264326474231855775009417280184477344331095638989563313416320914231138089943886941265203809138544038845665002926588894997333216966520029088144104857854766642685760907348400894228951287471256319150716038360188405769349223102118550747930554856632616643890265212812595105309802374779629078253767948814428730469931361621492971351368283985222136830471946697056363317094871487070835174092589413058339495599398403641605640312892120177492675935716909031573028664470217075222951313201372452997920886982599179523294355378678404940270120726135091401429070431194510809055350217821907011874197064789924888289351051572496596083835402425567269224508441247657082218721527247878504170588269793556633796746465253617650723496639618862376252619853953296116374244676057236133463923183570521424394076167576752663154289038323236393114880536660167389936713261399964305987851481133658319614139624870855025241664654251325400183646825251136475875321413294532806975786010505517944839955430676064040278686563353349926009317751569874931584063827426590176202712643361566941824452714518950687737455280230600630970463305065663076565094367254338343623280971375991353679723132566857316461291689041215431983469940124609508331344640740453925264270706359665228354874514338614607198943359150873602443263785641924922406795180020323526988629109821132847994922285780847187335182872344533750288530705571723451558897290011184401149444948570604452544688094465109795326049993856132857430838435504647828781093892037470197750295881475552781675680028533322562280951613245556598351562938314285902661148469238263486381872025599483277555567811343954300745635125053037048488619455530924632951580983816697362710704855899023567095492775020063180981692173350461380954955142814518720826832625223400018083422047995640867713980883620181960475428137842186242441076536746053325376446784705408638084324709924413567516699994034765835528107173428645191388706313612443476018088275797763297493285724413265126924771535380248984935020393508060270111998249040018589322472750524274998490310465994056321891892355523636811383587201612201744494891755013692949986391800871630942370257218495716235036423579238111659090640241340621571721500467096480558700917987550115090848836155030276951786847081257444285608674033603386605890319470248119855370257740342881104717272609716515070645258322174397773887382597944647602494597164694945103473938046443969284175464755155851443927082266405850086148106945607385327763822558026828085898809543670690799740227634332915152012736896370409060318624491667099897973294775583140922050042343192059306640369852079409922996007787253689851858042386214590703694526553286454831275728415358064376256219084387879541137278677690595686208034255098532698447910090472273196106109802691122728624464252409662635979441592087894672445965090818094935900745235765839455605120729168674091152571379480796673581497652343648961195734159257461100827230798367095627316806415391236204127559559932117247909603036962888646263498314985140133292182699975308897322522526227355662980889143075024421328407421291780790570867246759111103250935663607186708313929376894030781748738148188648818041960133779003147135421834845087406006296729105710144777031629703230436198941695965771734241865108511638834411409576959056514497364658204962470128715351715466674463795274891961781047380289418429412405975074472686234071819726675210415145675900285038131484801793892359798514081454296014330246885896173948413091704007349007912025034690554664874326911218071823378306734111779723275048541595750146609843330896149331610964850377628322415862111398166678142272923308556713128486167352309739086063458569802038816254036779104606938005895962756140606044904273337908657428197185981686343766385697135641316252802280283143232653570771214924241739301152167232909924919952033637848956091557621851443797996560575171415153928775287001064812957706745217726740754430517245471136655317341851209900852316395310622826519256888042152868172300144833916188397593253788375958815611050485528151435773239921489774393608942866261196701683781993663594669732353248794026226687146453295015801443039289705632161476909497936930986205079166893207910133040048536890814100001824061528525480124994037298452667345204409773796484956727237533721548852202347789791384000569616638666836382490810936122164440295725446290352169221542221176111277138170623776790580467237213236341120167603749653144528390345414270772963155393734504185672520593220718983289304201004433574913896747268610912078650455916380337081016005721983558298252077825955040071618395425415517434886407096143427228586429083858353225126617152012661961526445141525902598571462266680906601903852489467054265359993756917136543832753517190467871116578547834432201641472798627634381585623100923383340452254178847058462106749889333023031273421708697396742138590997652277247192655154150855820910772964767264684259352230439072490554410755785382531016173041497596742536511849609720794303117332229172302946393659269696076800978728775431038537004318519000985694650555403855597732077837365644422604759075655196412658100913653789917296227649211119211695056563935283660843511273516470737016054570607576333089777289501874031703449041460770598649132545145706628913490287003419101633798166537000089948182297898988646473124757224690282623042566535174678844858836434459469799863875614804284684425050092463729857235111922148620313009824560955069318705652936374958589622885831972419113444236145280741489975716687378631432255973664934879304337809420988177578407912451616528499946808336844756956640255312458967387321763349801944421203790139927128500914193204211391434912840359864611301747566660586668681097445888571444904721834048437737787892144124469409436515865261893373936801486501895433415102831910007300264459892514421062420859030488340864055098175146917121974425215570639909102088829804581722081954476700754566675260224764073506629548546188557179554636441671386481476861220149502665215928709271210912889372624149586337346553987904960803164430740088483140317311791901076481909972839582559909813254644813741145723258528425195492810518630110189715155441978511976948573030517459263789064218745656771728125590675838482206670653389194055205667929523078524958316761666462053811640883956102505779873863679378634644303766425969874443388430600536969889780630298847329077594113979345234137917783963463321976313580180107774993647760439844097011690650249570161545922529975058150783620184422156601991909918130074680360694906842689194379338080734921530388997750117908844823822575762539487288737487541369296753806694531314291599671203357512422036085154182137273767715738270958431513524462828916728348475746150097648785597967464687088457707503414297598794745405125321632065084233182071764659240311116975700517773786312793698469612501827102315974843892119890770670409187154938762058548390780359302129472250704677806732343766530490706126424908406636493695349985738902515842217186214981376205377951182656156857523438266302093659712601983304809937257630341641526974628207095287725385358632021283916121427934569377181476084426399504165949442753471065730668995661080699077607160500788080077017349131412637896139708578843029434187036263816122776023393380171538023143341075429631345763992095008807368346645396158150332697606581631447073658641901487344554263040940245933608607231852304579296581430755068825445080365632775613373812101947981387632650112106127265447704563972418052313621386257625745243995707832645482485721854106025159783844110655948578357315693213107301673878409230459970729530032152418889359166828577084001639453973549484329004374372494819176745677370873072375184503970581890934784724121522597750189641939154249107119888108101141864958163799644148393546849187234381103312861571945194120176522420250523894496188046814806740872626219295317355062464174475708936623105175105368714191258055866844140549490182480118990851853999304235106818922416310981491687544587343175384712731884442221541851065417711107894682481464448877797890396470062768696310332428223966193669834590202951339078910132622152381540371055832998455443537284594896272330144405158401011481193209445987351942957225204017437850159090304459592834017742636202061601533982732289548011997349263011962507045398187560940101223049191824326705411642203049543928977204064307805489777521429413079482326852044143035887401978654463577963609727782274998776215225284428052142963924452792722414511744280153513726895881594998135395040273613162450902862447963904300334685805711810862938511218421443537185509193905969112491390535007407333405263625880231585324913573864361815631140321363916940067743559201936227689291490542390852109354508883189284323265254181281802282177242659530080049905108762372420655346335248488823282956149624533159030561808282479100750469362965138637072852803026358172004721245287781919305610515088503023443906314757921452488827850191327470480185947158628256038495457392754977807881027425657323249612883490449901235869885105915258597379363275887721982425795140425586479871936051923473644817701569046038806390799961700953208942078705459171905455506004493363373887958763175501791035703941047497834931610938369854108219722178772536866021928650754802124049900197556752122099992322995863282892970457135665608481277881872305351832089209836865760643955466877467809819985786027456548765838215807983850076973423575885863370381363068543302889144772952072746038112927670573558109674612300768048248157684074394790769362436209315065533760086755244388320260983716290123858858938564227194788302970076865557383063887933248287058199634015872890623631161029033008599572098874697343150048519343176544631118149746729128740244775358253839902214402122004470436082994912732406992533446200009737883012636670842228412985046476114901883545629886140186416253846527619784923119818656456474969341518566133256392370429918870254800827122913882476397140558317786035546304152981945491319585990131968955832368635336367823433653233414086108446662502402387439132739988660975186225111908703736014893459895964306204038947297302453174062908746712809314821808509405179284953301328987060805389818400918165348976656496442825922633341021352505949083434920819065548950657653450698251339757698379634481463051098463642708808528660266570441806991871416106136072642474443406081224484629579947710432824705361345400370830127452520987954500049663782491296945490836332702771015761151027069690094848282969398003844739565658305369992658923286605508373150319145794937665835166789665660648034623068985721912122012248210271671895065929189606098100881926885604078980730955453192326647919624805046065312760195747442259737123337879790974211490321149761138050295923594536069127513053787087137304188378571162025345042344250844655358604464914011162136024538157756244785990974154618604181931083495484480103105316932513520785355277475680662396750877328703092306656847336513285264842711900933109721912288984705804465044329956493245261253260088987681494114504977371654457287952085585574254945536345868945273129194289692588163323175242207794698292123093163001618655382304821680063239601406142626756887566096271484219886975614975322167109913675819087920630427226929580647154494479966446752191580493039997260630785809321586944391946028225094991103939492727619203653950673007607693449244419087170700271083707537596927730069925261573715782914404972116356056496079168342248051759146354679548122377072341674560890030788923928411768398455860782762323913168549464605175631569708367365222411416944309751735743043321519147577682301693721700794057897268127908055522618396304191112596898396493437583805884234152638068979991224950827068151811347291958390157744701858843769755888732152525401090977624596312697356854628537097811474580028811068131620077259310769343206640003524571828835713084348217443627227345636257929611617500197249929159147189558557415015594412125613356908773850505206649835161923285541827059370362603479585934399090024014542450099420851622413564532581966305812361286460403742718501552735955619348474072968171192420508773767240172644690832349941649293259272770376010497965705276484625237861134207554349181906511676560203904554811504138134753174653110396661753044248523121482571262545194521109150995566618068812133160606772971756927254856782219057141867056467680288505983189360885421681624188905631347550681888356604627955639661877492747813669640643778193904152608062106707580346905257627742453873242684581584309852083248533990448256683668019567381301563090081138123731816515024403608447423417573549580523728501401254352291958913647326189753281250511423927336703837105367041338275931788477648479716730035881319550561285856683426592226483415031136438904732218501915282828081380805127678263949688382508850607742673450526917761017925517142775183326073186882682976405971720275451505305455242540601648278836418257370387303890379082319342705934622985102904790988597425960143516340841861229924314783563258514045706525947159512664529525145710981491036675824049491305987410531579796946721760097926180593549201481735572248947538108537920827099192537183049716417628528609016987475681563373068345235413045023887575888423644913109183450599900101346734764469464923979891781817917582623601524965227362118138743327861014217693123467625003863628022710182850956744578920266002761313925918869954355157229968957689365504314466318760901968657362977680767681162378012756195684860754842901763542016887845969588610189653180850570832910656524129426460984655191484247690192524510442474356767638487318170537266960265192420396959132611521616196974569513960119404673578544471664044441694681271422408742608491653242387207044079952903333021778137742759031418903201445330055538159727258889994133435131174579038510580733033829704434202398397620812992851678052933133018178847410723446565471359567676326617833350903918691960635082645411663472177709332815719032144891013031756937162729056863866365019329648404019427042132226147877648223130973825621482654662201575518297684520096136134689429247572646359695318083572161522687386155652950025134541248490454677462758690060636377370099338649104485730057547458157565991716756442002636959581697643439474212541325615684316955156622300154847465174024968216595111992260204149113767430418856127339858388122716196089893710865258649859934723925841770105615049208080358845356529331258887908302478962318035816942607328326746032689393087172202758376473067866375433298059539558993511527416674909977700934728623480036266770071640869095713022459306693382664153569245068185611431036428906709071599013136308544278198941845680698329600926629704055881021412527937976978811311274724351551236180453634777190537846603525634584791069504714318886757067447689884344822244038615952994861351203678704165235478475517215702302809120993588163909722167399761862065401260315187618015171203570716493386333914977583418989160108684857307948969451366395727044813375785448368850369411409537318369763852788983070645241245510344292826175017991218799806683995622693855753493843652754268466063863107973136595319717727375728877619538764713230670015171803742035763860277755437365073801135870167597527554370094511722831630640600227272408388447890599597990091980707699258635693786431164199792965773006827870253062123040551754392553096220476926795002178035464960094947741797610257126510458223750565385153337605113801474725189120874136267878011565462211248526074497428090303912372469282927151942542112738604132402184578426622955237608045950047924181622052634719767119204126832141589665216200183688243801567643447204479397574703722949172135162876885503989030372285714442505239512979283733024292842895808439881663861839334780482012457807330264550355196297718864823727976814989170672046548885945331305354542808550174247587460232674091497922310281704254629507748050224039733410237431323763738787020767142284955295888879052281636374957264083950848386844485168145515881878808849661880454959390418550605677683576742568708664153408203529618227332292688487151104545892782575119158389719665494862268321844859760452436277077464885666492993187916481160925399321311320355462075864409373920549287902294539023405415652171614800917255586756284542800671787003759634359471879899331084926759651854906666330225440943610719385653543005145130921179041997298610968299108257999880943547860723620379397994212306737382873825528618418170738564900520899311576526496992803402784779775100981901050523668321103711044939017160118296737539522394299421840907029519647416806237046796619797554723983280719375574430895672604788823063408748291771284987404082474973346775786912055827830559086528354384126264941647247166432285655651737294147746574129935100174593024578904328810353732238488263468394291321065982681199391943364004221874179937225321238567816543679576624269084072011257977865297862960786005921543000830528862763141417778397401226150169507602006767332141209254235482441533274369276083923181330409765178790644863416702518882652100204978016830159007541837710956413577510922350479582585381220993328654346939620825588200180826702494867739870790204965588389614202069086401783673784582951988534871785078235780312536745412171787080556277934584493119567898532562519087744759918431808047429339100186396252090222436496394359572484897635066102657431506588951724731442936190849749252046176934260678332586700268399217324588921438077724868916077910770494917640469269329142948239602386970254270175686954452259132177543126223226247341257215791030209165404850682441841769541506742728692552841586741830393985661096908203261723436388300907340878806318851120338036008885657537198732553216235116761514099126044688391439454081225887677459084353706024027479620081466679610695452433299407570288201244744981919703833270781471880020165167705731237564133612002084739403678971837148905484213962314509545580271396017444113417665932321958715826517574822151592355506090185576426155140190512593882906667682047461164140426807456930990894379357017266763032659056973694672451270182796402514954489251204927054019146189482816440870549926314648931393502688156139866253364283799648937189670727050109700244517624510549270493624468084288113275126767217400383941355612979316561115167171535120520857297898811720960365981617704538026917866026147254305821320411787632083256849580726403644506578208781570513226742995082755599150807707918702289456817055495008785485240781306113899900803030690341696090423374042350837948530670373400779410514118453423221295600807812699993514768379854835308811667279957128611491728381737845408901526738284727528242527836674849517375435011748412003531027850614666599377876908467119484985562417578226148140211636480022354415694092899467570062936417800579808104036970707445277916591728113180988930103805799000458914394456162180007096044461123014383602661022706492735062718531034944663852848419557139672705452587720583412096803957510204889930132980061172721795680406696511358440267922943623851406614180847621199564046493128038998956294924454234685695321387706468280838884581367592735058217366114913306530922430085055424763043063520133341505332798415246744450302658974587920276068023294690192439874275257452359223360851499670025302148136832443113515217817779806640789811130301400955376511112102415949521728983418860074758125863079075262451159026830246621793060212225483352149703022753105500947131829732701173376544966212786530989776461939275568113337108156778240825239449459819839418141770899372107823598583922473713411722975729310186222129407501832586164169490737140492291546544912594785357174984408503675907997492668714848415798320839603969446346845931500797231686468843168362399224673246224539296109434204553945833525812621141468533133506859129861976430619711393874284997724487555075103439239387534469815870363926554467455112998167901098841105926871114087672916587042292080299019333318482653686253031637044237321457261441130538481782446917197196550321433802041825671890383846979481333963053002115176417529689042713782485224229978085100486193348959757003557791932872743976183115404424913409166681029555232922193294891693486556419729921649668418502911315779570067621853317837301214552106952364490590321166773960412530635692931668935028006107531374165789398012117212343537944417796870649031896302003610259485975757515790486440454072376035692797733134989972552288411823886666859989251357122345823793065790087080720305630922013701749162199527319987369217672155272726804306391546596796115536436923656313992165590182097865336004487358004118669582634717576828765714213722582988889361445772641642727315651696415219013217353554642706425722640310353733882231705917105247395917152507628366518670130932958093850347336742791903323592101017101392778034799734525940695317714499239496325162067927343577899155027124349803274728878703295145291831458798199302153166275986369548037523688129350267526030897635733625278906480949424972789588163118942967951344827366470284075214588901762186962669849940769930056187425127700784750631773511336817028548755004004027291510016899196862176371985684809528653358210814694732612795765910218637804528700879051147495553602246464125868653750967012587427710717887912596504244633626833475319565417965611978820313849039481494940378331176754582836365295401921567947579293192476033792787023101775394547857294068334792445388079298436987955910125043433411937627719893479806323968050021191325452852226931160968493238596663928548418465612388155114820623201021257094713278119051402034293281370551007916137675079290142405577915381148711167521159701188723704848409811242332114892584886296529849683221266300699292895659725454070316796689294739977359605964831912283667238053126648796990613051865780769185774095560432935162976868475277552807697808457745218177458131538493536515134417858746246814125629554050988627029880575059418975043201911786875410648999226966058920936966117073354895516265098060901526331216032631207855582375285660275974688007240614980522487505667915753716023312516129477631659006577716219847146413013531976372901876780601968836843719022499881668981652829201768303618529790340890518635359746725501221078861466347163271577380363627255632776805517613135947782694306116392663789104343527793390849845350267452415269680407723177148762317301266257827037624051198084377249921044276394544626411886453317995330112433089698099747728546236695510941846577814887647829019898470676623760800666752789886509977848093156116104073488725829173054108782481682960860838319634014561593329115337611377874164531535030469913721111127864091324935241823112467618692743165125419046450813307362107329713381755351812966807540460768196948923483875804698703823757038905281261546464365664138600693057169740343076409788466428054634751435661293365301131407060081418917982415883859403065140618784823693050315432496733236374868741591501731387853936403274561876244795409405523662822879104227301598830533788778077007813524465973233429167925697505114200790945577223572149203428856206224592737830363098726342267090977206155571736540900508541030685689134300869593362104900911159985917239997074346962461910468701432928985604421655400996203209344375176290411624970494865587041592856986421741518631755238285850576272107815911653567190151665663405763654975082251835227537268769983514476673963106243288160383022741167866685049488009212597355784934433539659889761342808716844613900681961910969240012787348466645734210518074184081205017751563632795409532463883242164705055192404375583841885676440194247838615167929156703814417540415200807010871031748300671775567105466538821587303105770517490366961108597572282588310024563222367377941793403668727692769694377820414130846625953405485744562468806297577337329920535576942220267871017943979221089810235432300661459063030964311745028212166863629623631629822527316529170135425423105735777083706500485892460215500110014369249254299686384063056370152420808637867209131567059081533753307987381277434655173998001226803881010164150884288977757335921876932125632216906440319476824922895536108740909082268860398648554446140902232372746519676823300505674435320889748679924843789481262999971307143888739851161299991652854738453538191931498187129682603685196471120931640293839047711895384223541896066007893770817956518863711607784552331907775345683624626415955858733128218976544968430729340068548124631306775551081253253904016778585925403433139577628516302086215383945870904733799353716652555528410918074229543853375400278407033141204662647240496790843067245431874080775883250725968985608138536201449693230747912872465313523758134417919391471097109067624656003600679611553522142441878904833550025542916896527670514060673206270412338544182438619320651101822319134068115265394163053402355382552870115149217321247326613427573867259372195673846510790539024324855306153130570871742672561755839761307212022546551534236178202081716117676424450183780349273714468220353497195311368967824197280023833974595516640128829474199916276058700666008688286191305191404833174440103437064138916887103954286011575546518066193072871552160392316245050963016523340607428653624546672258712553652971961453795244998878163072359697902091783494941493272394698619561126385983465202466177309608077941617053348192334529764939743132507566450832264382511613048136383270291272595821219315987727681970579630343932710218089448984214215120965852437870893994135915815513710160956663051725522258888099188909531681680212256230094683711302974293352901442562532741597306781408465008260647875024809497090283742503135504811784476696649946979419587395900903219019238336196445913585224134575938357445696867041154812136094942859321324063511721782353634421908528655876780486500369777294535408216126510238337251557165928941641397165130603709073299462912960096407911253552671132566716979124918017796428538711375808323959564218560465416387544738799247695095782603580299232039628020595719428642836775225729545869563319122003861978582997826552821639269249838848714711703871056046265920632659846558511755485128247728956423381616103043356041186376933083058701169558095865753743932234745293264511054572130091935662797667887683902010363811007193956487402472599788057629630239866614177672215039839110027624172294494173521355587056132191687144374947160611062263043199472822781431618056424813354014512287012317554828038669453628134755186144867199018847534283473502198280414450573087900765220031586658358485187813558853743924486562228046949632342303975910674035629611423817939364025297202747024220501794548624580176763841915343251621755944653205754408521931257962114865854822650479488781979844755848442840821021888859183814885535630833086004300139563204415038223357691643875148564648295464871656821340486133375244543945202230334135632896992639391695235889267355813613975939616894666301668998848540666184595371962650930615713539831964446505428741043632964631403017530276183222129811006057576619838453920936992758902890052893172156222063109770230456496297096431689935912265622056080031942212889241322792651796102832081550204243436441162544905389809418349538136548495274257357682937589345149424531091828829657194687834026896172572341615221365734381977810051597951941137764384682646965690005673305334249379130332409429307399083945825895297599781132687814923948802590262847160824931467287252172197129780731750407428436500823885132810519787653940441610178399015037156821394142124488450568768635821245189862451374139129169154572665129436471236915667185996078570565483477893857006790564466025095478303616439762500413887847537879232291174011979310107312247382428425706176204475730928727037022817602694088417819080040170510021551781059989851305836590577822841506815984898958185043606263822586327728460923604175355546677766026003160859657176205824955479761641434040453175700414220554880915687088595403766840379825990215909024456778605001234151169407854017782111894531205976746070561707830257535631852813263200955811001282027766125949317530801010989869513654035837938311698602795669780858239862809659482761504486022611527329137295759828022184865524385399571655612414588222806659868329550165845807769660798418204205939904702514737880810680103909021869757755017153444616593122832069168993089452132642726905733805630995034845660649494191979264884175187979232741495974151629463771919329411207654248822135082415257577620145132176605140526549614920663111226968046553997419358821657497897915865878881593624333341564174582340154808376825259432068387184397406190363991334178677532716314749035817268395547232837280982250015898640861506479201106640829229763297200013914598189485674701368929000014981008132337327818230513301743191886347872924559531760006186873411085571595503020371631800275831443366739496082195460771123415639913907678994360413713419824276889026641953484146881477990803089356334685571296626336391175276711834731134255823633556112383536203605857719661126464972187715442280026696420951508315604097175927635938718577659530041448137878805599641650860542460119807527053979721821857051002782833373840156581131855880597467044750424514511126983362088149069060457847092085312919084229028946791549577641321821162719075058224385101773229615589845930180781266324093766971665819516111615195004335860716200456541775668610513353302382002762968794577908508681071083616083684513382254923232091180067185079348422589589592112418309579959939030893609397136365309240516239254122698590587724532139578511137192267508170581107033831131679150583655649952650766694077352950185728486978513145942990610812386744508459834303706300070433523520007518689753479934841512532781689417127823678438183463060097753992726013981520421990061876782586142948366400605655304589839848403054519331543332106254834812599632045417568257052533848855591573389058574581560225742954963545871963977035852522629048981889311368752232573101721985573387627536391060811974615467479317793033263144900465110571852358286674098055732354287572825907072338511237453329629616564796837754919483589222647478343199533845585280910010897828000979171149715162737394205767626690926013975677765340516254263455768994598230655504195069921913167754035442748307094827092187717593898086211483232823944079400332824277758579049326375969323384345974539423220944381092275791284466213236248265414615359973490527441014350838393128314115241835376151838351405071510048044517012310238949460460276459524459059172181672344806290418085421055100388465713229005720312561391539143153489050530243832726667437695931251963307201198249571496144884789425706779203961691417798498955383442587133150530273742695106446757567831066765726666765134006648290825801139788778159268610604145529687832070113434018871357384705501995333947822966342637878235854406700482527600273497742454263821559202510362419266036556983891307339932706966997817186032163092354502007061161615602854877273036101749421005049552111336465958151944088285823767432448333051816915498073338958115004340580059265286181093688349151526538790899724773742476483914675461406721950294276351364639069194964194051110895390846633064504712322823426240962236905446915538841357296721896908266960886085973006849221821712268426661847014854790585050162311086688744146883116521468925605988612916864115750602326727752633995275136306343127919399161813377431787341918295076655958132870448769219863892795060993920946369583095235874363215225513140047961583363753218606467618868723818139261445293985980072045297045382653537443849627355005745633229723936057369629616620775773237688280088955908339424355460240535019762318941087737921804098422862125264752183856689180818745604193508341845948381458039306381145332564029713344418701203544918821696639101731397054061011785391421183230347402120838269668790194725256477635053215208294636893619870897078231216204100819692922311292521639092079974809437421202731518886992892238753120389745910172222721580251276205691981837604742142557409952326974106042349459710735355887342750926905846919549511809321305538241006926384991170735146174651286372288771073567745179810875423933173498164198659253315382036783780382972034966264938573467633154249514870729073665498396844843876887921158324930192165959986732406074823120556393254173093320527427584128505797320324089089201757101848732249372386451860464462033989815786875662267266223475875749351158397453246688181630328739998925946038471449355060220254780779215257712186203787509768155693369295944429589499011037540232609630426321795899525413377306240553260299004820329364777728070854855561295390796320182296921168375993335350810018264271852400642164254294396292756870309481248347974951168744044986389926522985169469706951912650334575444015923656474151742444470445011592562448177603883082212137017047176823951163715514436684145302003652348991870431475548191927653888450242935312210677777827529956213984931285034495406817405346564859094127114272729908488257331923202087991547256709077984850298041867246301136888755528447957638428346571761281285845182884337054722744855002256792170697986037597554549116168863830170934378156673027194645210322151004932130790092697695547992473458663140001018546592182803713882798545442487270663460617401024798969976043615414260828600839014975978233081362289240083067499451546130594206369714204684319504562754392337833969082603847380886688355329407494389299336219002111755665514164644247548507971085876041440079017381062648949116823084510429648061931040043403301357258110109986234620247557391144733906410338241275948724512848998346706441458702879609105179023385641946955450606540447798653919589185446469059749095261630812033095161524065012668557271469447191256374614333543706449758079728173494242767307374979585819948517425337747706165697877785392855319903011011415294456989185470437747225502143297939989754405624751467267161239214627762880895633349134919701809225717201776128701067844868133924905578344010584277734712143313232122886616965314767053930369481298418520355610084550184523409441516654667190327803335089822264216401564653412153983086454533129733922149764257138846161590927345116396096535338044131226689928219007703059635356474501319031119603074345212251755361660293809192809529787623339281177841578630935950156643045791106482271022964844827394027250123217248116847738085302359945313846884992722971229437482896871136566906222598790385237161951369796848816673310687307058075740016799520539589654382947416697623751935725034573050740282460403243756243162985558853114690048141608458224170876066791422208475565136701002762589077227364618327456961629476606628865542459387938319580073086560413909515602219997679124332984790909695969822595697002648551352553138684885777212358683741437556806152251411138139557017660949994662007617436722221153634470967265917160586416246790957105038507881584301033055817015796903433377770543475675827297182126771042399609752221340758100029317647226487153133511795968460613065233491236597747238571223405466900220103539863995807480843756346478071003537111061304338022341316037738807977713042277630618707724425341378107725269612110129481984268785760035637785534801008746393316145363799502248380358730987084430754791276558970599698541713464023012500241079409133421413656170786432696378013916236189198252148682946811943232795612878575167079029340098475026565345887815894856214967366198862749210353035147816022770049819364055219551936251485720206955876765434496058106958776305287682802630081232477104436686790008655420562203553189930862937703236588371576118134152850431825988212904069443630974573132287711101868464062868611566101681832489816225102300950442621037932183728729032031188656267427598912346543546817844650887371311617775100026631689257322597334232557802318009054778541470075444054298957239399527790797635054531018851507365589665523158784385880345801837171888124343451787710301044451056145162494963738662987115271740450396865209386437944290034079261223406219899432101142456939227294118596531385443729379883078598869423939193803906886185725833318982603980506773108100142803161378235885822498949092401985564347993872588827099750162733560643925313463846413668238000459960658233618233250053968996062866530274447809051294639229896881214231122658157487601087154331503745333885636501512773391985072154641915556040461465649616929214867457200608301790732122770117243728946735401683831974109319036040992247437232414428027381626042623775480880591297620281563966736078088221571597163270338187923313047508128459727930454391771448308272414156066457241569452865834447280241131699112686881592130110185918364353697478072717073900754634856928353615950785599612037492336765340515167448454578663135438705633578953656069839666020585240410954384261656933227424580909538817736742172852948638677562229006205167453072990351031873416568426535214050396302617349340783804210183094450804888765703391565625282899336703457038969030999816057975806924805579032973433266320535108784905226262003334033222262474127273520634949979039798183861386364444555688134280299274921304632038110663476240688691749783620752029128685399987642565889985738761133097207049528802245793139384386220901583024836470421324474442526957906247268900208402678930723733944823166820014436790073811938287459472443261245545772165159468436687339014090521845251130827907826586378238441105684399841327222726525183385271193180843828616971808406043799195652587456149942593017499303840221242783672183387486518509399286992461466469115895146225504013570572460019714516438679955279520436630086664166163501771892895715502841412766932756915125168011634668316210997487440550347394926036906023482510210700419907047505901752812098789645239921885190573134368344601982941874514726393822038885358117289116425428213795854046840204468380818918177324524433926309611379976318526209103482773075721444025483857124708183025511769585231530685381721784067327224590202972518906789987192196471347759397586722638981543592192214212142156046633571425575301470683296614179338813816520044520131532859496144658456436997219389699934552780023745756812641277289657547325664774503427158470740100229067946426042210239631678531941518998680213554319283632830880956550648996666844380916485724753647742419274221779574653562728132698374094451428977576904301650609891919272934340577203203495874336081630991990569711703929466640390229736794078191801571822777577036548198804078728423279223475701747184370679032460172299193223318861060297517918177282580910054001090625258712253412694653703575032151156675778192190210672369505059356803114610991406377053525606044589531536914373407160159176371851645090143559914905926581137009956211146863927715203487764179294925187929311950037446015108055211194722559113085290217807531599039605225117860072524428771641933373468238301157769670526663641493589322737262549357984995824376449193386624528514997999725630766792746294157396423733831345005008418114323463077784187867202854782721728184290266331550714355438868413448377309284990846324398044460300172627430482259839758009471511918364544233692505322956345081038622816334961466335236703181514817363727714452634771267141666403848168062534045449612140503202802016265748123032132787131705849107306487315997601959259941100534349242139697769116432289355109002639805581445634333477422634410454156316751666970871961062726214437986185581498361889281277222810904055347569890601618304262904715275785794513790372298205222759647517149282541414376840763590044224790530468775960775084456502462808208364000074392540175600354777546137972053552640201164760808952824752629431141048202902490381843770295742982720317362274403863158572431524498582570664076317471596466252833574015868810798168715408602613405511507035799586228101964832197836837779103530929521060600935467578951956831824872008666628728179608586773951466794562150092150851717908790084651696286450701415318749406909080958878069770407068719192442102877739380954538509890534680316723457459234583231937721743311467759109671768157653324503081420648209081626732116740382179332007910527182260014000563585016440038792995777359020620849881626069199489446728193462617539958957691672332502489716435334539015270456919417129523219946296979779391460589775245345342574821581332430418005858787476410610748623355166632481875270172076924914824571795988889372690967678383126949660198695768071872764317344066376893699119497384524580948347765350337838874248679678600555317785375267405585238499061881802261930333517321232733452818002740747525851128270129516245033601916800707455000242812364180146930485126539767305447338314300840173746451324477554174780261593560477889378056619297828965729071132095212641484166756148152427528447720953201808230436979005039189338840856905482646654899254598771046146532998998359192333728746000746832218699768054868310981408611515908633196409831641122939231899537644007428517801553055214560466087747375652303097881856478711669360753330291482700793140943833104976894073502776320555345838528249659562179762145382238841800088389987500447501287512101530367683393022775706340983667777854210802524924643908231581394884719084294875825877670668407003732029796560086885487616016796306153620607416501496981443623431702578218697040998555437310227043659840214133948573913405664415352498631688537873098500826350401736822752879837912194595352212943323181675615297763690650406457483002926991399269569443574031005682966677521774089830807433273945315650218487746917356279634848794018146917187474319577248366837259607442542006379898829028191722726155895201363306297186440991499360257625446122891311823056838376902771047529182186838863441980013033337470845191427001082669943061326388928837009868819709330839811705687944060620740915033765474636437902955494512832898847001601652052041206125439340572293080401594248622194755356701706698427886765355599510862429364043362045775810523410969061804099931758802012801250721175508781443761434962107976300131555864711982106081098638238631708850538446849447151600077043423446803993493249113552645623937030814342723114462824850457010626183252826981108602721237727434833179477071168704361168785004478816670734074504567932402514549339461389616294324587092170721363405991981011714766203490446848864222235401552723456903500004095924993357327939780327243685065819750956068947818550739076169373261643561283838493601208276019330760349883141902126279588513787597897444635816694977676415841322135666339880361195215796471599237001654647472796665077991550772376465933941871880223439999804676181266741343758517670293296243007960488090572492806204086222794572418295983393905080838216803745460369975245997660572156212563908013902499945788337992924716179802109425290037571326594841510377469687948355164028580204891675670056815257212455968464418778891149872029944678468933410349169614649737846688864867588201554615705728162785646484941816949888950947113088892039374495662452431955717212260239662978407954191972397345044344212300970757511428515207076866145069904949021757494940017349643999923211528036412392019026556602365198460632488078145490378514954763974989261516151220182552012355152069076275112667551480321059944356853887767007470245233365492352359577416709896116548837772087970281500377006111862132802488283478670437268581079327100776023820569722535794032358337491259788301911969299068903946363849317594252806742874028090133486488708257371895264428118557063738050385404058411265987096950733185372282294874409572213475389913285983312192203842385263743322308373112796199748932205793979835692243629615946553693427365938132494690062440675198799148956277778729034343601441114824194916539523932387865375336011870163103522429474000989609201923105573870750688474325893999710667410598914253366025862486021127274711524609770845198418287405942415852059891692978893561620580275925615545048549313869587508727849424292809492208233518241039341515371575880073559621099326343570471904837600315752916782407942474364161824718189722972014332321370862894479603846053175471120524765387068613475059698065597076596228454681096936690763986737246366731534126548517916371541582041862800330765997372523006636508728851931443708719349747365271223153606818891987614152118980625856353580326455788364610811199441078568755284424519881271561130859859343709838446450023223101018678746904349434962745012120762833502420718054270841946406217302984200942565959809428423740586610706013092370121265545363750870050613260236930055219877652962391175525526288400505240431204745509815756599723062037783866830451538301061687313826813452664677275952679100079473158644774880310770982653133917057346392467188980908870250506368020635061424749151702253581547028310205823146638712396920053453176020463971875199082331224654029654647571942935491365236618878679813568423946621335753479519622504991023054303629217302921237136277145826836703427291017726307072841823076782037678399171316292394935111044674910605955383852310457637351396539716749880796305268333345442975260723265379855900161275468834235948443287231954882612023713165756794118544499909867421709548691921973901116750919452089883506654232718455487958978720164926766306056895795700172024377160921056462063191123561107722495380724212362033284267475191616138417910995643376968923441297055819867176818602567145716070650389292287033191304403919926668521611832456609911196986607269878107532690828994836256149360655280540122327226699288105830204210226276043990832341069177488764171804764681912049219354699779049685342850224982443180669129893638879933244682147206704354547798133833469320447725084607030581720813084566799841277427601847590760971232193813068987001624728597682464079365033846382549561377370548612515586512615298233627998941855900109075331417292125478947959669292134352519121476089157163888451803498958674929747830823094218128624875256515203278589024122011522441578867325050398374037430882960721782982195203251092860847964804438383202620253349734794791018181344647994858409927217646026539245564182184941064079946374827198236337226528088686447971309818726032705758104200850938602800957826969084985688056843770311661797531673538787275266409626633700200936558557510604541654971953272969253675024484133291471754879739095702708763057307162102772700897211387148914344335162361178634751908181349875628930594498917122749858832138343350677423910939656897484885240515831211911386934066207527786966591991932963441674563911874367103611971530451310993538775941814796020049244527533131795880830946130077681797301291919210936134124611924581791636623527786344589627766831342635654348113082010626866589128622757478495376360064031869837276514701884269695500340384093030662389387027594501297584888178548423044704606380922181390328852212187712684197859391817400012996997221256291867617761111638227175564588281367183170333615562449568692676901749363484337094381846983685613570848660196872876183727320806939925914058448812944574728129789917058206479247006723686302439312458360810321234675600894930779123628917294385594225479646596482922200402010886979887457776636375880556866008277929683823718919238826589653051955413856996548753512730960760892877755352875083760652723712556117025649521640089647657795990301242085037156384193100935823354981697150432368777441404272590341748895759257302406867198059841793957500816754906736188411933080905818692218539929839160281093614702240094708139893856436573633341911053622208444502747239659499313845008744277247068960877163049206802094457921609572793093395249641437300067801682048066515572200345449289168403494632790921172369750994338435054104754975447309717261454450279105928804890419350945949943122374862185779978837444069669918628108078370254275377063338104638336814976275098224180013661954272095414646489406589696705166008756640103553517084976472249978485163604728318476910227837794812935071769454654732798341658731673235425251669073082192098547203606229540407455122284364531188450639274852211322033254536945367543344867393626953702028884899081627748038140840855038222582080877046090848306176961207077259749199755956256044869672244834744349669678022721770870862073669827965217215944962465334615063180467962080932485927391164151191897307109585560498696310790289227131735913992512557688900732730663792020037935273725870543529997881985508686770617868446899046198445637399435744242989961489230684558438457540801041952784801341258378990583783347777900785652248558255487921135578786803280766007549733755645658548647305465602125735259486402983407531377271767713289885079330848201052360592480836424376957183348941696133656967987864422796197202591484382005252683601474623303601134719869209861503721586427636149980681141871370693295845994792893408718602075043741860852474498351810154341729365040296039162435474550231965738164320855023909966961112559733724494381021901923167301675108331326282638833073873284658273663884947508574667656870484613152674362682219544654327929714820623231465841200366989822890851123189079401161638996209995086971513358529118500413447929293459949535136263451025487946117274145558223208473373934753296899466639313029640449903460519987575730367793198787882697278766709599464651187515942134129139912359442762389227166324329991311259762778010763120836890796677961228645923877495820128736970055450623280144884826361681454921687597736628898751039465841849886623418791920742492330575458446324865534924982609884256297643367211463184063773610492957718969915970455902350598267555320021682572687410257965394974023092099756369285670301682017425324413987586677759872739597474385168177664140516658150934924530675228875797505156148405942784983814905221220862165939806230139626988166533658637589117338500806610868381678055406756385695510802749156162025814840158402608657240849449724357817137582973056415074023054547152899049809339948225199441136793946383357536158685520451310978250125129194555583738789313672775664312461598393557270237941707974884191878030972405496461004094223934098553964070315660375133396120676167716129963860691291368540658559058919946197747109213549369766067352059012045352743602016732827984909978146332008418033058705494305103824829464536669596445281911476457928009774807220197164767067089428044894066724041914115807185778892426845233663480424067600975983840628467192444661126650347251337827485363106904484410741471891723282737909376281804801493492298248414448680683331201859867626280448407232288439672634153236716056254916128068723600489414884245696369179292352530875388874292591003976465450741586939710606992792902518402557170715453837763389919598793198231189828174857894625606021928611269504742775053677718009675817641270330373156581026412973022505604021202870302051648475459058449465356682061305307826685408410539274477837351161566320142390930425132923779500405189678655131980858296343005729422881386654755295180320472269090638355555755791845665814837510401182272188398371485209842030655298564356323061719333279341782264112114267036968039947379407289428697877890636121882899395009015171258310359823400843017677403482621444017655053406883463489192305206171986106093948955701107790290284285028937938236921551924856058354987146135389882964594785018143154764534233090823732522624686916211557272623527970056888188956066991478246613123808586383769297515287498723640464002369928294851356516687374239459013357971449140723898404476395357214685866037287116466029330071328785248838739796131576268781372382682447996841284630694907734083508411602853570432244336371087206013220558170258592022979161245689628685877204438647342170243888437838456852213573650478255177597192705853292611631313991089115837655288231161198178458382150225060931689652684779492446647384650657607150937377148372918397231252736589827742934848437159665430033370297587586797159623448824174115349900449580896924925382878151793903457149331174856027551285501640876734801673188378379259563549718481906010598831036263106705921398127388655745173060744664803326844100088263084334886690884657668865538753500076006602151076259600270587446477546217112363783704260605650221399735046270823384190872307018644321730041799811134702587487951254822995040635382230554000490713094299374661447804245268128519428196148600070964034610751736856045394113480330913470562614309769877245538226726246180751513679467570345199888342851376674760706344166880126693280414742471480981531283488670460527881638870357579035096220322421444199007931200832485296209185658189330704886238119589510610098453275811516347472255493105229770989788372421260088421207959821997694907215191584061849846937400305550806943445778278361520797262208881248889013617566527415932931578280185754479892592660503995063231057040681654566998571979012317192615801217222086929492679429590888287289714497821467560492683268869248297353643857757112219804651802575143310937283016815621358346755214689926100368995058613752529990125304048069829880807803237756672857529709160422917115778564337045115854944274702142226756081691361233965604632383335414597968622109776406887288045895555607672746076792038728757798996840220891395004938149298340441378770241416254018807500781437135235938360097535265352484326740650167899129805294858668019350549125034451579380947926151036642026931505865551565799849509745506526822959829918866280239945794331163935752299535045262229426697136248367237600606542488564876710045005863190370849656271584252630039719414697936172787899222498246354712602715220150940352970417850254572287824255919120312697218533248410743354717005495548127008497585923704987526429992708712125784649280552884154886970290648537742930432590065726845288933020928476337552226844329062986896296378601695917035767321663042991488848132603259502327856353992808786082612388003944442285662793891524188531217749541317248805385569989531337918034415204967509712236120850163634836386725777780925865009501171108004225002224064178508823669703689519549598645819995016016306539561368156943577413361169284535888845936747530381127264966661650307970199394706437674956826144632836422769067922315194483376255785969383233247633845462950565459370425718685138799355721601338878068293923207304904617001516243078396361967084183079429353685377131156838251242420473037397256172245127942303671736826245177328561835978425650087853376975348895212051561616565797131982011251038040465887307786720267528432927735694697252441711640601896442500271783062217013896577153157964870751956306937521931039341155234335645651257134761336120545869217219964814205248838333382317818168162448363325664264697722100593921698710222764307854495279950378049431799018764847297481843827357331358200257118788949855044200461751423777745765584518990717871015660089970215427696212123434918754425803410645926114705900089035292550202368005256754387076586338613324745294991795397820555389496352026067287789083022449000345907548331819535033596746001330293281955853883831105594079518909283674834679725262768409448822503805226027862371160033357438686776313259803770572626919640101792965320062232573677030809038465113510380547804739334666051495003334219215976068314057117089640885728495828294378348746978955003392971674069715812798024358661325218873051956794447963519532663525567430659513020439587859735479869884119725608247538496786130781426840658387588556321789690027653352878884786450115579945665972817595338497637994567827311620444341759023682333008566339511844323329520369218463991872588386947317053880550879130017838695822989978953599864771559896794202772825538241303440936599582361065207739472442662861969662539670537617579712860921904911699280347008849262415325363555385169539193175190467083723171765539191605286434034279253004723717730346040080402361982280965025285087872569337889538071435298189049391061095515509397525546579572072787124518827432773655544944305176494511711487139921282729823005635053885638291004188992104222062634479563035131882821871387211915858160506254465065387755232869823435716967550586892537463406211808101055525664805104997942915320345034326349047025660378711356999730448754716408559242600623414367856334516821758338740313868452441546465249877542263185153054888087301947968783335828338954700071931555821535397535212312831664324184007800548568029966329160799121509467320310544743537076987096831267957556025477987108153901078729485612935043977904600739737215315048779128557839043245442131663648822814119367794604583098204574676222126568663057213660067019819818880821697400112429701690779912016117563119880242134440160015004814267797432580286823125705234510325410117172218665560353226072285078820958682048051912024013736139072611291007598098545886742329103978706766652123825198721789502983686183793631695877939034585906203723091636532480455522047265330653539753989982080022360946595454077044070664334961826893915112195094293885128648045805770471745741928862794307649245750641189518021782551293398260883400582315518288633503498668507995736615885877635336054133620830998910500271602709602924195895646178438781941559811660582068338061317786764859969741379955362133200083978450806882733015571714678057504597117847539216447479065667389981818984934591350085664999966319876019711372860256797571660951004744586011507266959049646521130443270844936143754388664051618488494014557098293156535624410363829264876969737121332982580896171970960034384438061321668442841998006678936473276163346092401122415787500057729525362739999333895998000899838232960985010345947503174130400891944898220976818411228900093490908788760091490156919323111554295750481877950515417894726321268482358032964381679987718907993626745602221031108882266337597325092777541082503775051089250909952231333402973527201046297118828196016979068007905953257587916362329444005482579875185378847007140769255256827971179996714042442305883766719497515530576071886444360110010332041489958355355700672614602052287555700608516563687033890267311892680884207050770106678906095923667777588186089263163597886052344189621919085698236107346486324746344162943229725433456078859545223112150861913248264973544339542659054133425021036773611038254918020159613153540967764927881313433329419560483295152760324479880518827748227469645409472451045315008295854775532314990663064193134085000875146936250924078331035638584602504964844060752755015833033329982567897840535609129948140712042320022549319574283773770510708297306794706142448173644567584381095455313374397235260115639518808759769013029687180237283113816897846766421200131120516584330844067929991513452304957572645366760268102370233059409086382582529503507077498990851124607497394683072244199283058827205350247889278141099883376294684984827442488946492629944866760697854192864977528357538206134369078449586384342410445074381979512617160974328349454643129074435277737527601300035788237304118943717347099241056048768761148814299321806282815343903563054701569975846764559600480004299659925921097592862877987770309780834016553815745606862344814368120075006030295736068777541556941258935704646661756931875888026329568362020954991406215120121356686521163425299159400887649687035900849111395455574625734986036302826461612813423153201418157551590164765865666603086362890459336282559014520343913587980188924722968770436400310325720819286907155078907820569770945907390563061223189488003832431757594850696449302822446999383185352588507833434082440050160872035940917309726407861089262470534550248790986434963591886158513198921889574727584223547494825677106380063413295141604027512184080629381063751014590702611828015372356159756586759497531922588013968619977092330553094632196440643689388988971280860798977081207573166412260336501672308882632413702323880520336032794761279421950174606286343650764026650849662458639917847838393100914925379741293896460021626466270649880619641315484356188180265393762785520443175172215336666928583265148134271365643236264351682259686875821055157310729661481023722771049327029314467541241004846812111206828255033886687032033503061613673899630727452167992335781064278803917376134695280407158647206705356805139041213622635650415734223202540914229014177868674365995044932405767885142448485105768532725336583062289447340048917104639196722556689088687607030614966844067382911784981132156202928839556947097498169965784552738693994703891654919801083562078240916360632812379450326439517481323331039312955434903459452364338866594908081638002851279079220831006108041004447592231385402957414806069413439601178107832410941905469357974852115305603963142740496181758283691833014884815961503626437717907632625964885640503943223650378336460177283079362687349137487436649068316445013610225369082960101763572718042703605678683298795697123187253639738687624730023087721818976665395134911139207115623731552755385185875314269911627672007653042593008416645362478188047400786082573899901186069037980637457202670593092962968909080501087472570366000428866031267320671625628641293386123473500218313264360326470329024829366784077193607496814165985312468642631476199857990821157527008735903856984737409039927678235707313987371453190729784686959411147277118729752796534021804924908834748742860927919213219704665927457907007327143227084538959558710604102090232884662230382185651183673003078966882488781503830521282497524062226285399035350269601745102207413590687454928568015607695088039891288824534062074995108192005470107280470851817023432750524003836650078922688206045633572836491110268637904315564019028487832680494779990049876384024137532157248932878439845046562958012031471496898944544472249189776936643992748480871054144472301873005860475723469034807233318499631110866818064955015210165500508695296297076791646013433748687366783697712733718506624684631730291885161629468758355094750816149515635731734975522657371167754079445745349995101998335019776500746977224367885307696037070366183372087022734841366372056754551155387594253684108467264702031034010505900827306699707689968696453499837877734188704856166669112067874351091705031256107577814726686332252195318351399642708814904420000254694340501137519844490830843643424908568724346939502899621575628562319082912133902080820661081401728569555172121884804718481870172604794352168980307511045712846871566093703848822262974483187424804532444945391781774434003038669957882989701063863464427592120427283861062792470959843947614275539184056954970437242407679656276871001042661913845806417327223898689181543211431713143920872708809051786289929628425343271093641700099640729736473703930915965759225794394917913338510454646505770193277306323768362202994110809473909736622389985292060879528089200980592313160075203612245316444473575990857634822929995265135277470185197580980265070311012875189454994582412412267593076427609359463547531320936487471269610858179530313870787955440376989363676628298942838831837662932717941766401549423103610829986217688536495537931344690542057095446515087629935836418484291873469247784822112728757931279083200416336007211022698895238363654983303564544341982211109972399851354022459765676507059378864203100035067576086121510979149399802153113706475882696677105662014291339658851807064147997269233248655157904760764425381935503514324217979632270350661714569215420915341982297133089772490700192469748588624416109393893708364339685948330264419773904529180624613095736192630501864080172118557775371019254785597282396380349398321411963147626211785558662783533017167626747089642557208203977109171491076148785113171330253603530962200765778980496015806440419685653543645299934257955545040515558662295218866457584644117734463492381718901463706566707455988416578710044875885068068221343397212927308611625748406858471348919992008691886626608390933333350650155566430797127810646843854022433301330744727668085802165669370392591947785102301117932182302752606340940372100548664211024367886341167993248415907331612303185633403396328792704764266104705223430782594555204339111245469953480910761042265503041815154376630503417163869706423825305476066807463757585294911872178051593087910586625889281481562501932937405421219458964031537970067706240468409746409006916304517051583454606603804345522553771243483479455452147919301761615068030834425678811103593685738176520834133298054795484866180351452269530645650666091203583332114816463854190623491406572850697604083822788211028961335905571856966065881004153539340382118018855071829315032887580491905174044553905020079020920494465470413237628210865256524339220558127453234374503065117716441100941841148521003823956501954974875637122971271734527774275747273355278383954456583405057934636307540209373707764327544585030872327315250163475148330207530344032394014877544197049054008959966221044296509841415065249034922547313586135318607484966064332475639852711623514841709372921420992873924331301371147315374183513818715575076284478205229460677506320765993119502368666557855513577546599666797626374223390002054657560681505330343711509520743715420226459639336987427305495608459976056120601001126647798105540396583624092488985861207145782125111523657540117035181247470450793977600607566287011875688459534272795320442168860451117025990470150617637212073257253736163452343583769196127841596346689623526812496634421044936745399227706382632217639462446419638404087009814424047075770153409222465893034457486767729145529451287859665038987108177158299133325212858492349280448775088655809279119853635049481706821384923888515634619075718053201531740742192536034052687339431227977713190764961905712907302449154074207270021694734885152663985723639520959353074211780976032509374623441463814430143178078760044676123765940829267583694248230993046716524012615096549491199229915539282846338515355157325816519804448161571361766196229792000271337371415398555731249018281194394600570123813834752018904137805350703907871669366876543751918972209525476280226420100303687512510313027091412307166224856984008371007002108967180884894683153267611057367511212167321075929214095406149087012124912662944387206254591382070478367365794547638162049388966661410186392320310751269039952506796199073558715636033720207996119285884741872579844507512465856216644169977178876395655746325315112405864412186526311108874694506366963429661985094622601832266951889159285734804566894151969531680720882212463816155352575941037685372980177212457210554194308965107468931951434455326209550022695834426799078667156030258756656587313636721562314079246579155177415583670196153006340605537427384546312429784485933322435957473897123829686926747562217896027030875337189070803574408591849313940947062831301743481787973718553974465900665313232721528922752988097488491245504690277610705134019614083203717581089334935766603506290062863953351525280622923464243274557771627410692770929263178422698047369325091058382295278714872150166429957163137316279821144838647415977581635359688078709000016652408159242818348366052208561530110211181825533462389982598963434950450622563986714967617111446520347832101074264315383502424656188340336992288986720157140875496616097710961316444307971070213011601893002333651319485126434397565896748996236811451296514833056118736122540148019916615694501413573632036950130122846853808853399695795942909096304799891062732786315357093379751867526500148107066952426293080928398983381324934141019468860689501347241166382035817223828294245399694567469836381689797156040914883905417214398844986391862846990392824893877230716659203731730354364125272500043669845663325023994151170571904790303576873666629381477041909278589215613753354610738497461616484434924314386959357086393649660614098636801094626591321086665206053030213819721003137998653888636448536463265821124911160206814513180788097202094408643532785076298986729817175424275626988963098551010550128588556375842348596008665275701062156088533307920826597241269818657158193938926418378243052055849127118205033773891841698409314495757940426620102269064057209729417785583536422452244375418535783409851297553475224212520128133214921041709445894650999376408052341505060701250265677124138495180417292282155902118233403252218365813632206419066678235287184690009422858319907150363661082684114145485858940919921331567763451358317908855412639706493621296993971031376610079705084519302514071341504258211113093387692480427933227883259772466637637160228764695332749150745541733539900136303983153054237153447659140082787021700877169614943241721089308213646266745340754382289106722713714212199571834005584309774824389740660784253090417491411574269434552599628066351154737453750573755613254211457944423015325924045538578366487126063957318589871929284602201817006582246878323940539251594596094280158478666253743724466816603602394197865096203869823547424228020962291401124659512599933469748467810501346946257777154489361460487658233025629423646425381360659186039559941154459198744002904106736732671387862723286030364351544507260643428371371861114893479606976043735544162715911218435010832943605912264499440708625034836769707739239468925867427792311055457478346692027535707416653616374896143046324437037109976356556954998920799364988660740750158446087698027907973428445544832900902790322117417644036035866777233803032852726314715890636426010465495674808447379623365567526342488876138476773278519519687211715453434708396691029429319342078632472729387021514569783082611292274840003138859908407855181666901089506201732046189070084828955097390233225740102461522633362526531204251537310362404803775275992030676035361812337130795819700245939628380547104478359174395090712477472641106019888707277045098235148671647889015331173927317359402372900960495238441518504220255458706087479296167035712310252625287576500034088775667094830652939270189215314116752168595248670459745951160120775639996477304015717928616358388447805940394469695242048607830098421206405698704460704387264165501058439276881852962162989958116345096320958481847436901721721242144691636200442687484343283460944302262696955896139944277737901858652232325732271393060397326935300915783197087641855785444364826025840322306889873917161983997695901421020817092780249876501035755554728219556856006007476450249086296688916536573221576104869964197034901290742726413722294989721257918571265172174322199222083499630437817636434514934595162702468023465746542366880976814990892160385326774089953744220088607191513667463071655957231755409357186561468392759113831801037989681298373652988594553230059205419727039672154533870180063019499501617462365845706191536225478308622045269664152702171666919317679072465171826675568176315082540698022734170808239921706361273383526875370197265428115280540990834934531823124834042333466048918066637457009805200943103000553429020321630805458830569928176553807337432400670052023922332784765327674575158937452397514628274034419168379318376655656569310831956759158984682153703580169644279630575362400655606694732606896479317922196916831781708583548243519651628332428391949481683298520526852270387385868426168131785172634687817366478008395584301272934597699673950089704664022064888390903012097510871739430961564299931584318324183683238117168493056439325443611660392881151001125081364724611310976125787644858873276840156729324010097963544388257928007277492278942127870449280475822288164943346261690096406823795306506438708255103149487355739136917943590403031175385184317804897376832660536977869938826807419151950005550758821613332768736602645096624478364848257243047608695677032466655169573463861611741037080732635966283831667278925538510445642675232228223479881935803679588556034589001061502266057139431432418500053381955196880767005558574709770222591371541013091829057508088226398219571560036811470186765730262353313821553331947735461987703224530259514204830410921727973317215792543408599780043845686761788747431900648604425262834298401215240551371975586991447047518911062679243177907193622069631378031248630793015740081645018228971835308576896261109289446184167862473423621347690646587570958903687655470865388084324309264977666258914329261420123006521506858515825600348850195520929812810966515327331871105281337705991672856218179921784724730570108768547564445410642498576039727727467850849240429670322939349853408241037713176724866101015465212592573294374293427927023019406056811880510546049072032147271936884077010037563732211224529440131425518246931465965947118319391694744648013409240230881798889962648654474545018786664152952786897301218999845583342457352917280058953190501870518406441963128055813403728053473874515917013984094695604544725854077062206487900254593042124117637603516283628237478675062606959625359091393328511762783015778446831149175348962089094877829463039778115595100191654531595007806357131478927798215264702242120284703780435120919423557032515388337958531294973089628766276438313437540364353727925142470092966326338153718047863891369030039732984495682755875301003141937768876362703752157967300875488687546260345136233210001186183976448761401737820733913422939299697759747575273906637140426556171211893185398915781439297581749188249587688994474847422140302785146752014500234404544736731708426135901954362397842455338067733438861098188305118331576001105220295979818292408666210972102451324445990119418620542297443463339322174317413233168967132324748063368595947702395548476664762793960430237300981074649997152018223516607457703238085023588505552812788577359335514243721851265111893094572005140619900109851395263975029239397592815918802431402925187052679253563657409868813668084461005394604629663410624435666527380566367435575505380528437194091771021065370835150742514922810144606388256427720702593275861975586050986682594891983046035285128265928710966810465866881184817111651088356048238002399902245674158894563669675464109139178282191514459694553232173053334200092950107747990338026169454389587331531230891984773335006409867865571298423265244871181680551213558442342607739916486360421206970744863128222246746777264243668701370799587799622250531190143838219977631206607494245128966115523532826046692127397705804599938902227519825795018936279659418904970623743966797025748297773257433879753966147249054961766683672814827807188593948897457756376714595530071426643135889822678540628144422501892627906770227723229546485865965088562591520682841219841693066206928016190143773585779550036334074369096052750701812679485685137840811723945234351216577531577037764723733983476331176142527540978091924882062173534020649561467799995299108019842147374800364330281897692476822433173152376137562423371908313350251935865807135164186289940816820557050011268968109275757761091086449302726301749847055952510395535666139354938396524801047806619834785786574542591442643952590189202146557463303820268357908507794004102167023628703092287636897135379427391133721260718306764659293011676509804602118969234800817236319330769942503223664289124628407002442287292162550329053828221865462613442636177788461241938894069758688856352902585069508352465474908949167614155689722437933202735558986150173545078674577753084590936490210013117700858526564209988135972789245027119436568432326339361295884810045359602941998538809309449972228131357694653953033344283627377784087967201805056392060779625759595432716631641777271689014230914016821752962695267409245433814078566320628053292030894153225802897667939252453433947754704518452625347204268379751761733780304416986926070009230183651630641390036899495750735041913545428198305264528036356891762264650092467711368471945890322133594101685778946066961385082532817150111046694843384616249898865359771757721690683827850643834403883696624954947142478071266547944993857818923907738059535967680949755099486074425588632152779475076479842082184074934878274194408456080844519638488877563692380089650175648275610865555908525683038227678906844832400234297187007495094590680787857486195381417628419953285358801007710414951399640369241080742711533212043061834605045991446558839551191848933798828313678085018194131145410384632489472428389703898368378388553461086465609731486433569048810666189825494607628659062670142141312762970235991956343241114098660626925871272069108831080864989330263671893869181445862214419104238291130960285146655244139845051046972479123507962190003246964765466606713719260223166330213769704069059069087146583411850364649297340187069116508572109105550807021277252780133752074411116293357719388586370467577584892565663084824965640613339556458026915813436342405870773828335737516964837836440850648833826033403938093407729171614933569984172224212891999243571629337644748142493548807309387189464389699788776102247048634379230789522830012820713599256629455807484687937012997887159083674514450299203919617942251907939028147801025728314874245835410040159975194673208466552167309225945503014512156848055545085541249879265555037290169062048412877805602898552954642809543690007370418951589145261421360649771639281388459261583304891088003842253608574104269016530722851592137764708499749474050334419543830247762984581204349383401838297216258399985742519533785022171619665940177752689966168969202415915961874353034428474831716543069654450570690756579001634101174666712669237950375636045562101715018721514654479021944585731183090470242408342638635740766423467467584532888481837472351009794724868274373059415978639738888187850567725160190560808915946420656189661803543224779523278463063027010571238452267763958061300339728869645505982844321564275708865023331036252517599852036796358050415167239029192937650551153872697999006032408130697883818102291366295955973583782382649275205338501004930608845378370895472542642325718843773202148667774569683437706795703317845850927231320425264919058280486398614444355916327624589548541007919975698195642008393823097247913229518495165596931000433227491353707696261355051225364468449649622941095133435182587125051033895965240329428094597201681789316673636058788154010940750016260128620867225993997248901047011540916547874441652264084563502982810258767216902127923522777076670412320755663216701216388763315992966928893340295308762549227811485062323813594574290922592927297799688188999340221443714219889502448223112481407396747080648786825187003798772851753363223849811802731235182048867677503474358800890742463962737939622219105951357369711427630847855227333280680982363562911173166687550127524253719092792884628181283007854567606494653054715573747265292634899137606013630906632871951554600022971834006243674653278185604115636066827473438173203389494909407780306759702274679934893419785095137854780015313154544815073718620617298294485901526520583258493322880677324762951242675260244675172194744957726631871916204562959691939901680804801260709305781873542977304604270347485034323027841627887796348054690418905063961335564134299575006319559551859902689444792680377243230035297257170484023231725398492115523292023907136124427221868959107781667695522084937078470223478207188228733009527088467543336453263868339703311542726371720703735455471028834077337753777059188462216771906166131121083398709423910452248833314114670410472477131050856864250660702030640830345197408734971604627024232416765809097525727300503898034152680448438420078334439643239793635313351535294130974730571557212456176829801870921863264008192941595125620751915597285032368187169600576504531476318148539269455771676567605739466687637674618015458144818883051101135987875165304817544554356248918820630947389566909961738727132920307425604629980822281154273557646452057736721620895246414218242478412729107893664473151922353701143514337475089523588783614278090634202291442250309955730725413796727753177859155377249460045589802789006890668149550375852827189456371608793983436992154364195625506198116715077118682737728120260016633401346848834127842029046240296467610662163796695778992853627422667744886531097181617030942857658975676636732876611316039894940556121238719047272516935963612977901588069598785916133650468722786324264226130783806735373499457059271449088416945276541796948217263742317443979894802345561951874719476087804746856757667952941091641773705187838225678701146915258614762008437689526863717632979061895656655270348473061577355646073150868334831661246847185387595168849493124017182589313218147063359170897441636249783709286610994601980171938994690201806031782582394882017402709968040395326145430157405253820057970603791223205695584209029618445329993108461004803726204279037501165726518517122804368136178348978342387341276168899417231700438685396431660733398890548213399095759153982600481900221098337225500041644356481671885636298537926717431030258653279859966098402278215834509911139474338420419114079902359820035635715418768036971221643342576556668916750589612778518442939232806983425727361587759760335606414853038751099799068463904460108977519116679369327647338493151118478845134265622856072992579229306053403746233326360288806960054251610872663869957486146141413550474705664923542299666537116299007483712394419687243455795385157708307419653789747324700703149076015396561425776464232679088769843437016145260135097504567385229904064466586130844093689161544482776526126290887820321308887781949871436635922652088614728255176192394260927810480079874046843678806410040567279117620046763455791956389481286430340779523297737906507809454628900127206892352205852995584299058795575861087351490423288907681692126026692941374985928029667397977566794265369338796521805565472968112950431621193446376975971972166059872590063605081789930402575378372303191870111403020314093996781521703330820284799412819862590668186760362747823034818227209493229207318185474119940551853689571750528281676614823818165108057496819217505334739970813456421506588773613256204795022328721596463507128262494461815189508205284791635920841419057530808711679897156414926458731299709983659848940151044033998919820037229743472563746204618760833869285020584856922456605106230761911194402287831817188073229255011660346095640206358743543260207470701531799437260281958315273006622029615476386537486138656655357877398139895430734945487746064681366511907084300542991121467154014992266657949591843151089637163967035672022301242218562049228017250907030300099293318338097812325788832925397268065442204393675069405676268935498542834752567026961724945014493327123424657818021751179524051116769169194528788747489960777906979109821370068447811762177860398807182339467908994292971598368547001668081148702853714994866848990157363917679955554211698587096420192473244603440364724555228643547041600686818150320647502687152675256668190534463113031375181863135548358660114734176699192370524447072493353424292240226204027084620513409348529334796655981677184845248330173955376331809613451942811239795027363964690277400025347455318187841855570113125989800681406978954857664598760239586577540606688555831424781564489361021650443478415519378635310344146706276076967490762787955253742472607490651493427147814533130117918175720807370169705625464849689026507452053744485673596952148717895522338829829439947693459908787305217126567752914168365503896445178020245700409740838134940633428848451949964484758574997737798576511133712763951194225646237846379656196230756133551811902075506677880057229695157135508514623498342725756289266774471657597836812623160902670512356707064964191179867810406401392037744115865439908289205905952546614338283513543246846690689884638320375800132562676529911573990872326058572024196931565651676694213108450734700307665363929307762836613368907664233892806441033262706573574460145212693469889595627791177377935591987030100720107458661986070264558310208269983893677483884626398746520270192945124470280324396612297146914101164929371636820751035259748129516503839432901551826634055204535537167794433563013573288699732736613960577215932961506856236721081777189945838215675188241470693125547326621740323758153456073615611134189762675779111787630794232943947796169937966764184945921021815473780547288623394029589814565173294540254087028747313102786371152626488033940133798185233734001266181190068618545850516642026385951070550065771827029303535474192483236566510944111312277844519875263337224142117692337143370233251501277704325165098041819974290112036387329950149817127498565957451228485185934770509134809455362990201631871139131782132976367578877889422198479304222944164313761197972272777941132141378323398982664309805951463915245228055676109344764460110173724220056352155532740136730053893736202323484662978876626041854451435880847551411517258803213448137960178621040199351996208887961187072947287288698672516452292338717877125965039843946115320102775912207570309880176720166592401357932421174883062385703122131481458563439920498729875320906794595049818832703372704989309568172489966626249416101387968476067273430756184816292028416779884699021469567414445009024848249369698447092668073383114491140916192415281482726636114185526907405479967087279867381213371006262330579809698868195825112039097895330416626417242664856990626615145211725942345139135055359800109800577338817059543193020904599662611268787322264177514696063398318353939413377336082725160068441900627542807484554034139963180134256439003221217358160715425546553157167529036068123351484948272088019605065639581451105273120573097660810917267109978267520508825042606854385196768805735499874116139192485486755142756927322587370387469687682136268858772180206069280089730033503855770616776393006259365737804054191009574664966872813288791078637602811913125328139849663069486077557639558439530029618408386773232256703238132346660548661018032773725059389345348267113081529950348640496901532745282911261126168562930333315421584103675971826486333337867997727553317878636366142843574148756599716047402528030951776425967997299803055586513331229149678826975777947915138867148940278963579049632389762958763241705961144555259472665852543413942161491354206829571718978510460574106172273339745177492510393826661965252972743170647583544261671152121555327234256159037294511701955911247010444316260206897857292423051449685538788893401482401295550330446145884314392003894415543173298184915853860746553163776057974850151155344146406951100502999500198619279675168013912373866832506117926284228918283279279433524039723347732777870865453088370943614566090216811431596707788677157996689833983920035240743893694731424965405984349873620655206633736081692385947665514931314549707820591271919917897174483975496906951715752583568839731584498079355387783158539095110218234333409402126662485075777559118544414533395860408477785933271612037105288314303266086074801230614124507045324365327689875560265675919852650195538301790351708225784044006170714455881720464867700390929332261899510058282280844568886996162322909790797486711068504956493127907571528525266540530619786196949477084207520987121176810755932744881826008715168275260402474350867271342691609839511792064480807980202935661077261766969813931790688867909586593862464656013714064150706263873455751382825196483172770513733701473042215686260002903433325516004648452538097034477326427289707142366328701521974733112227251040847327983686762732980041725047408681505401810329628548972418647804705138656685904305121967990320466884471897455304870829164041521821614459470090635433355552006549796349749865303265301561368611250999943037390086992421931673699894545024946037830753660284171380934086077489837149837606585402624221586049121938493670032851257048332934201320321186401827176130100513478160755772698960661481559559572706269144895207378450819223376510447439017109217424946147655476793357493974727730063799003377653052748121699868303277402210188529919745306820588315415801592047567405630587037909894643501038325528874518670053006541996776573207671519016494266660460802030846037786129060786862068641328937358320411527023304746462445000275536402179913649467266233400993058127968426021839729232005251243386162934574256813893736594728305216059907133519091627646631388105966450694198719823946532017240435982859125105985209703078847769518880160753323484148305941242019213795264716870388270785843960666865252242825083294579433326779259198715642739028772945322300496975305905780602939067661866875024437057601700034512831422508941651546793357254468744684328266638094719343848044786915740252028170432151177916930791017968942649296807518558989477770895910690924544450184859204369977746262109850641869604700497021344588974547490942819745801594203609104771410029930352987905792909913581065990444259549753347024126958028551726736069215333158154896631306221433614783552242122328543752395719415525594622026590637592607359510857992758330163547418175048100752631601198402733457809143743357713309730048413571414674527205120630965521180497074935101641538314770618338944702812749498062515112081991333531650271065297858033917568075488377999400423305735376602702794140520493164301151127211649182418304263803576599998930551807759303958241976422964125568244161552590354781906996684735169458543614859249768996083841260489311627785657347323870857034092216014004959856884021433737096050254224894298876463392715168424069948081939591143425445320615233909417491802434717842800108250310043535161006751508265901893572978911247576511596782715901054796117707618803293196591536175218032008991756771480405087462722019768664032266703841831610894061571032690513651847531703313628333515327402960957877938498490990510407020464137915479706999226789272945826987282121789951890781596782317041400539688473379109999228360520859332985066865042125025960740808541977263163796665840200590659358533504564428771407029390104819216949739712904028939754880928294407180446177671015945767385533287757823686669926910966316661506299422287120608113128909799628189814075844971192774546809766914893497870461248076762927046123045830894205558568954557543796012144543532744196777390247660633558060593224932129660913531885270970615549526202930450074422087876444110103307667241408718279334544449030086362510267893619967775456385491208100185555379264330944919963167862350568271587515344579154630135316946708320040179299542671757689509665539231692991537169192496066735743012894702263826055106230602472184926289876443493838388788750062678153621367025849154862170916180033862988112315187149653445317226955568629841028147016537382571174079288388902929281780786278603656463204783182392493335872182885084355130107282760822770619141131065262562796392879908194799283467462619678003284231267528437550271485259966708964555468913526138878475348859236083004531402685903474815761764530764002851686282328205521969750266944266432801430602310954126874359604899652764456112616004433977971461644407539575444173166898421636915959835940262175151631600014446559184872930315272282900234029366686306082263883168627376581295903063392700271297333856029825590563459447219386668171421014711237467889399635956008524287361831414538932261061247209508391220983280057219356208429073652614108348729775895056793141283241800236964200130847103391367438976779575726083007711096031796921772946917360660822828429388987755835165037819796081450494736064514041921605966321669869418694035042348685377254753641215928165427146807903345662022168674891669169793498995938085581069006957673473645002690440927489795521850870843529427883828886227659666122674873213603436859287244149785629703774221459627050084258719477409514175786207711085342244478670109449563283819415988167642545425206397406764736764117364932441407884256482279665339685531766806763155124807812987077130961169819521448352105030985632707983654277221228858694849718855109340665015375101957941560974688794577400646336800564390181570150507407301821423864833451975328408296830680544314002332316495046932507744454176985756380808546471450674593845998426366199158333441007414349642043777089858581848312815466655693023128492968357835427054169149334186809299935990637332325996652378876774478148515091722727402671777436975992911937945861239136495390118214774553447095664104619364587239011609398187441475902851423867401656440982252336793633807058498047046929442898918181396738726547198298530189022883949737010274526349997022482859023083690094359769683176155754265645419643284802377063910681712704225109740871624865712270023422302373019446492187824649090111872574204382781090800267195266724026316357488131734842039355079191630859886927829399746439272783409149579184050841172224671130203876161336151691661616903551149762803086631542822133824293278978706392915119974563720187361717546154359740641647344032602545791726923693330153472741986137571321611324694744066229997192996758084885783473267433550794745068137994201656935901723041464845497094395244087968925879106742105796660178003146350053928771993250431018581479744470755771598507359299133536672032916565425205299420943630384251178939282511069831028076244507120884940827612754866379884206666032009651929763800815094036453227650308665135197404224676748906216252617376797745930215376171054229175759334317522232536457305168200297346955434411013130580495407678113133322546107094963008140974252201559137084374770107752494668233204189134819008312371237932886893530982945107099161739786788600111778835590563263514325299640489444779341727626704498331102993275901095457621876991766292938184509568492376049785518265083058541277761336379373893281562855383601455352652604637791036755771689408124870998700769236099902653078410322714728073603581589304507415010238921889320051807864332442623993037235193146195203233458316530140407601480852000865713482632750404281649701371078385093880857426480097287080448395628476027923767471277891181629989028898798056708302328668223822963507420864613146010694202112665033776663360050973702926414812990117225584468343886926703874037432242185415318538171412593528238616260014106951952140851713614010101320237946168566379396203930901420095917914226573923753343964680109160570762029516945845152303522334683545052620438538578978141925338061753596259593147751893436834105923662706384339048268045574255076321214747718697707320670562460045444846600404677550749471854511537964648366096912759954058205360757244769989606106721464043099464422314587845864726055705462300308743133706828575464744807804726859996705250464987086120634617368873469806873043371150243472512618719704793992130265323813052562069547153375298452068557364106988499124468213717180654562307948655138453937324058212858955070582803619449895048960676339993718394227113844557995015783923482887377292324036120025956332948333137393376554058093289510875370227603419645811734544023708232792344931352118849695409716392421478209150489625277850976875061128688360298099367589750425064780836103937982739425325098625548676901655342491666081425897403156663766471012749687149454689170708679430964399015181479616321590644491921189290987767436963847553574441177995695106137830420494660611292331482645600403711923650618794185149424605042280291441908818973500988845109740053657597769841185105411190040930864759076776085494266796746084567526120712356343811911942385428742035475404988438127963281110424839724231597644181929874674992362062081850031291996138634179486290524417004422951483020575196213800446375073089359884131311413144637142033115556731974408397054628162388530552739853587819744592353625621570638951170115125913992123488841664738896966986091116954409334195178521866905075284770636758835991917716045901476015360932864377911449829294646722676666084238074332311501170749707239083641913960002381686221332791498260717888459320272775799209618768182869714668264011935756436472265936778293741716623304141152676679795904115829018695298907835372689426312290723581152469172672280633098399813482021596613068703258727530585293243307220826599770068334106744730345986258491135999125667227578271857914583862521222501570691954585779901780016178152056109647968100921887697572677636021621060114532305112335663086568368102970921118758639859362275514843715991362010262446824504838559015366483511891301810674330976165211116312126657651768292266533124341976640913262922379921276095170645881773474034075080979046856490226819121749513021936200376852255019827533989231625256740736309571039681498220863876703885904659569295642704263992762467223620367381675486028929321802977520790674466228569436186231221501931260637992773410300494834507426603437938938043760946851144408157877642470783045700149904266608967776698266188970628912104475313604101730260626647525672878095340870221857576786409471928676895540932582945433672756993615047504027666780710718762448827969804444102733471077861113865210940116200611616088603332735282504214661282982908998671379279344746312931445890228562508850312661099387047834083572721482594722240025489686763157484222032637654836431451320414549044018911348264440036754147583327418427469563224411555197146278257531871547163012730110325485249613344189753560724795727401539058484369365417210382720232596607005610477601409345214159452506776247331740320860076911256928496211657588284613800529014953320624282951672011072142043016199262957763293226351217974706414841671418440165164582406199014876552369036317668820354356358398926245912375384773916224429221121049891020576556721025669435167436672346114392223642291695048141992042049120120422610628664011480903185759517558715412354627494544495252860210380599234159646772216437151086923551059722840620059774904195457715715385822039858382402114712904727159015368203161930280553232264499582178668132456505998867533548789489508519047310691596432738914949543464073323601942891480154882298214848250190556216846644278191714470539788292166083376937365046166654378990192869427821491345745942347771838260109437481889589083579161958044377497659335904988203308580141469109263429201198523011291598909740193443637757417632797414860016703312489929051443818926879059506327667484501227926662789777587997545158944997247259350432266854336270395569232622719454397572216165898815351351927152657810127806418213840628726980895683527095109621404889358082231817226950698251525950154798854469831072505025447867689676204441206663905860114746835630789232589177182665161199406323746629914295627268293011809044801375512765567216609286993156896561170102128328423834053286788127380456425344625949772918359181323743748554174116817779805803547059890600007410613969002634470911737809325811740212995976740254574859347359902226073225767836889675074404003942719806572333679950360032117093468385861641927641704132923197246122556209553050507111375220797177898647137107524917188224053070599831154360436773984255465871040002361517758020091525842705078853198097332328580478518223519566906067718861118408604524092995401995765417531182248202336280376243914821093925800086153270869450282066678484205426839373679783785003032847129539626451389449229148509550517151142621917271835733520025453745517481277819417989632190359091070418999077749307505700211449873273534246832083804145448734966626091508407177692409727005560677079991048912629191830641761415602012912851249736021655803195296549896285834516304030451777525636105609191913111474045298869511947823342352504779124500595980345301647964076436657392413861179448927926428182498230023073600792334577056796647919909510987085314547415136000356454215501745724000571600297263810128108649278412396351853521350738353886274853199998428078473722548677710831498046241840070096358318684231377304831957277336729061573150057856145434352201527320345097582394130897596843100939483385664580409309433942536596696215063418844850990761071852728655319222049806137115450867600045849572342294883610243808950224870738290859694475618408004989826040384631908370263903248372989221782546121402046841678040448008460215594316111120074500638983484631548739740750296662111753349088742786884728028762713981306250993722176286745218273800958340687384616509445815345608513632661790776857412155857612967560162617095382246693361484228844173113687002937824923634703411637711051114493914440440250004103498099746192345444831347818195063109527577951430581619511955445222715530479987076062544997338183957827833142339798130483154897584783170875295621441459349618446930654428522203752323608137041186677623771789905426783786407293346479274229810732230887919008632832837045114795328379379044545877498489380528154110024801169750568985345058829756374910830762478229455834496084752110504946754440098513046814246541982920076954031140433761403248430189187634401118974997880038460418619194813070305968819224633987487579095542938189366697345572624874227435776075207919160891290445335111360040196300474143947121814348157688715088706110187534725049644645619465822212149466413616604399660335581178142347683301576264873577740772252953755768020393108801263808729738151356728168305789386467799850906606595307826285040264729040269349872314798954223532322628276892350544494272470077219190682579835376206536542086891608049184023266758864894789625119969895506249561981728634960509103309375979790486385381331548664454579473074894558138195012936407790006489368969579881198718162473786054260291376396593302830828920332652952419266908375843190772236101099048480881291885846229522698314408258971223855116198723745958603660651290486540692725278429195623454920317428067084227987620800722415923164110819706750372710585503071316354564820808749766443434550234508451446260061026287472019818381914153995156364000135686154918073245570606717589771277036297094487889887791016215500261628351582172661092430536023160944650657946561474485533234753035806632575807301536963030383510281172426419755255050531678510498104128897048945498979515011998567740081990333048764579981420928341684910010120754043932749420314628926202137335246162523435110721225568541065793433201288810118451877713792467823908928774860688735989152853292333848621549207817898346195856950721406393429998289458474537475299019827343565704672771116766941039452269109230491241912763857536673159566887307302145292283737677808054182511390024442209867021015211663838673822856000139106667412980750362175773548411064597885827024019041902265669470055642803437772174984158137937619084342787692836790240973950757101238643113762639648913945736046053958803201732623090437682114404843655828632693827309438525888191800343149516560397345088221183065476144733849091612599719568718102589614162768152776537735840185334274555470497082258558089116552914060800267910961035547082504241261087058073117993915882697576145835554922399705166307374305811659450769388234765325743749754158575006137460605306211238531525097406153371689373591986771240468496982868852775999629806777485933660554409026289540345020265835807205998826706286116657756606778812247745874551816222248481967017328577372920037506049877205680321585051692530621109851140983890729788083469745499729574442766095314776264414991474824258211544501280563252810088468390864581605565789266633596178799996724179318433763937650119798712013824534566446169502107926070595116596129471964715377062534640372397396587385871764064316101174549971374652625927455653914532358708331088809405035970502782882376692737176307918631408368300464764373669731988501132914234460020074462184288199879449957613901452099430642689356574531643706940900771964999211383105359353593552224434960680716493096367348560558253293209630808662787857921263854456735798696521335336376768549136594822963519339912002328496976466534120426071556450575001053235941877148446556617018042944725320721672551070308351460693637438453502965120175027748910247289377985085576376918075711579928124185658684572000536957535872648280777848541466811332223483297810355017998035346903419334434942422274433534925418967397558794446978300176713870114054996034197724440660183166502584905314982666360408090280008259849694617817075217358482027681787596549168574761626802455974217592933211582477740154659559583110390998658413663389101907481005201829696925319048631555708089833304887913942274739156492985414553650770834545751596838111980043474190071854766663527432469072673337894204923136309383194481999217262229491397424695088526657169686363448650861884801075642009470090912328216806071444893542816822312851580598890507750056470276348065000320206748278173451962431112527288337196488605710208826470544830144220618767103960685630002628926786870328863993586118092301663107814027314913689929910336958248563105553798828899728950125256447636394077118646405857640818287553637668257563431795291302535953243351156915508475704957609307407522394788818126815039361040282042450079041016247920648256717903588570219948037267923312442331919751155770543330050967266607681764956155132318576159646771670008890076031348954249423282096474432491790858059438606060246434120122768423990433260025508517568859499351517502218371983954755992788275946973596687844645297418861494212583100652140501780738250506279094462131396260765911878606868778975740182967332217541850468777503851779708497692857902299442149089072376860994532583062326211161616544897480107873174495427419353831015957578193054911737551395009870035029424842021239979539801121448152715994139047909554909336815022758235441794265848718366688094196827579144555729868056193319669904878372020214709474338998646895137966843730504547474438337012961365698216605552272444689326261326268759319874413453516203498875643038438424947551770678493136024078785462491030809772287528464534998293143322867033580216728995851126371785936634982582499289003475719375749689834091832672790305868892357588430148872379478796216004357506606373418466348448770457847437982962467131013285425614710346521608412107678949859939301090752360438412264312858190497597469475357473738402516556269611060382138389611659167867145079162146403407569974867501230529800801557662315550382730603492624530368961071398371577966891101814296096494774902721869669508776550169796614069218836303786874063311056223709811552340133597022947847148660938898688096464102586187484607818794524022067435140518825165819528009723189442901462421139014735275241029703462275775046800500077210148730328780920154188764001776293138814293834519473939186717354952119193559732964380859197006295232894724799142162017138321071314250468619323147595909475814879413962204308195130062636978008071330428440902818726709643587856750017923309228161360849754873057410583948810911859186391020298157964649682621712647187845399921398698919634357477261415391667557169742674974283118251828707261382546488925149700479585672626520755035703691477006728430401845462497515346552264577172601799670409454169523633287330571148258057940770761643019714087202001586867137854169396143912861003781527848792857724746260466686817509770466801628688685820694006922042125488294741004304635070037114954654509509282931031894058184635685774079176799846076669891919578418764440535155878989040916970006797086591082561407012423705810194400217500989478253070763805138917207342719222771298488512688016867299274960774046195395014026876448369997031152868077190762126190188117859983098373980723086526206561494893920391168834185735040292037725540151343040435225383531330427704094553420745737278904783230146690395884494982263817876505558118398709396684342475155213443707881684513167488368526531410785185853652802957381969689067037534066678617667181859101907159406222911551215534366114796691824466691568627129801518619294651676400344238346655611595346246157019602169310468624382895097191511386289121047015003375751444835850247825737900610835118544480708498330660790469921314570028142273816420768163411030872908479389416325886973849650929616229134942361119700144532452436730819316637461448424832211210620823824569298855250808989813067953326952274692806487094501685873248920374739305643945952388247395570868761411955832455871822610382044661291312561171088837548727614154678174747709505570438644007912506723898054698000410834563095342689601666918434741566541111706612982364811890409074981382561478136315265522071968734539972951581042675013631078156415253951256877599865057914421591683243144778865251243238955942078501994620397324585372393901506036337806276456170412731225387837447942068425939619716959049401994857717258819817277489148170760982865666745098268762594137952022821180272442307174542064112315284458131944511712117575253913455635890305468657444619495962019466774693744424208983449680366219917256742827281453799968548197173702243725399235349526807230373649016383258381726846236773151876107745932306053878954838099515570522576670955482528240731478024882952410759769595579006081901708330895017450671026122406509620772360049471596002924773202523829116853246991745005446304265578010670419378636859682851280034763565535889684182800410847056324136667120283674763642090168421526197607445686271594776644531330379349435501107999051472407455986404850751163984147303838168252809683519074258798983364668099750751008553184676911810848851520727898585391693670385891276601200214307747044240187788133110781051558932034199800219480483109099481203884506479383983613533874411566421668005992903764962205715318921681501280867275581372816136325709308941471853279064039371109512124962110430705992998590581011715303126035467738524832406622811282654075082182878370649376030758646735065319281533121843335778351684286954574398084478447568896726590848268449126058886096246811996148907105097846973778852391995461656788081209156482207637485056962439259581693965679254126680180795606005534489272227641960079176331529889646732413411543052380949471570892052025136422317037905020116505186937011713761499073882814547170908246732194002996983532634613612453327214272298009966407082751293310971577075065997609535702001948763476563819405440687463450067088829163586839044806794689218487876688788159584090911070595065819906696728998796880872894257970686517991200565077328772424106912393088226532617517401678126402885023542702879225847827731323740408489449098948952381894158880658557145304289991240620721503547524842653295593834974460228418646320083774682026984000674296353042437478621100522826186425081129404421526242985102414117104935059113610821306184875782143083209955110143519902885322748181593097684361758395709725713488429986135755057125617760837427883722077841124342627559330641321189602060871001874267802157736839783374833487200827690714118546788829207849101765756511213881927467014469647332119413956584707981107057941970681907880606697174915672715292969428774270853126751419862267779261585178822757272395578638263456112643050587182200268288133210366878284306967578997712328783165042513423830575978939627055686905615193280999673763720956613126987616492626332617860916367051752735927401319747991395841166648096476090191448958474389365727137198377481261278913207058957332901393962603116632751871124200948964922836265729912002288518595798379797782251305513842268807382510569365295151724456968575161237963821140055654006926584009388244881734752365654047539007577446914786059683801503837548993453847252646480414658582066093171695359837144125734429361046034217292550743772495213187629658322095694584949796527369963454755511867256383945668677019198539139599585668820235525244849208091580974171881796831052101235684565621745511591773517547195321353141675419924094043736747886945904387168407146810189271300739844938090617934618516964181696923918718946513506676277450586900269424212497227363568896011092379607055988224115521213438160849519559990583499043097293569478781018032267321713710513297195984299317690262553882015626745499700802400434722639824883174754577101518422726231713822678786374642344197875585143820011242294470541660903328311785888588284377925230204848233633653731698441220904865974301450226338527191102783673009505311880606780887640517968067285957523637756168636078932720275060778840761523513367957808969245647863648700939471881825073459944230180479126821069997648806170448818754058782074072562435269364134010138161542605310816673109684622689407034215908209320805608860616909501425073616664293245936842855775940583061956787778673283512697505695167427332748453494835089287983798005993972383902824488068947956415697290054955154738159450368371516302980270541774598737197761413800245155703833870867127475390234103603350313839048419445780228310791136507943310123779104757010721582624364414508500150006982135775090553233632256587793510717003747288178966305612824858775277029496239001668986538349555869691489837527605753438199851553413186641677887632179010763322360606216964609815676001942089420275212123296183508454810448191178046704994583569857288546142716044101528833969717667526452908121596882633967295700371037001424015892992714115105533925835079734061566920930391916615239404545906929259226768011557657201850998195182413637165096618185503699386530695920034440241286417227262122791549551381753394920494658222382121220950057152160286377209163113332718497732259758456685670495596901178770130195556200911436235496193192800567582454535675550881270576243154969082435482727559707674514608592519254392974778111650468284694980461096888091930029339865303899144022342836230035237564922128856081653894498723342442090075721692887268072174188905347244317347566061287032449294033592898951429083259176617678313934869775663404049175335382790097598339377166068710389838061291482777602930210834552896340977337131928639751918306515108693060318637208692826553192289647420782311623118767874513455187074431071926918003846076893888567094397004965980270102832623409952525613051543813099578667104899847846065039634108179938775212713740860165423794281063038079755179725445472390430554559012859929674099276639910174401133031741798657043450133087031702656450839212543357103810028397883590764439445234364324865312323232064760770126149060911519772868985651679163531972668446923412837720501469583094809709459953978750526241749256436419678321756940575956769644499836210516351748233759720459225965796889642637448293807073963103456541786519557368262047746849395499478014320790390252504204895378091265630468280115200089295902185868669740909986902510446519059055383037870234401351818506645967200910335024992898329873205848534569712404266863952517896962043227285752968777487224784005945096808031251261825952251973160164118499571965786555049527083259062058880033193922659372508112100955053600950226852588162631866734899860891119006396956325573921339435167359754924838898877313837061827926393987287626639048922813358898218601457471211935261939528365412810818490025053610357724368065502334483898134236401354244136700661094192011516912062776362576815013129500353560440209627861440146305362317920863352704937089112545951783935415074627887887381023193006099815840927115586408894130116126022130779530960471661448203279421964856297842453285795080010035456687290406638620826447727171859832815394515886038707704924082039718774745510812423022139774972859709920882006254396354177345670223753482386321680705933353126313156678681870696810916616573352520840588107649230593870920888404234871617260541715854562794782118522580862050627372452050681316015285305764653878083735930023550071426126890184067883437020903843733001164163782344339712416758512686147556622708990561719261647169636116984842072612128293213503478796616894081377777942343275521714625355584574218650706594517664871426980554856921848100131606725245295588688194445601911315584910314699459432176223373693968201768374007310819550795419900149803052312976819087967824251615691150813811803135340650464276472747852453912375993664927640605148763565047347770526046795171995526743859544563599025903414537111719417976290659947270608006732902087126314524558519362545922308269192875728655461222772035076406068362047809990344466373786775869657473926302161434907212718728843482493892405766636184398337029495282751376846766111135429827049251914844283862052767508054823052971705741987717163087617704182588215195691986469050592396696129067906886167945035643412017144053877900003940870697874955105230005703414141702791860360389320676746966898315252620336271774677222928911599013211576786589903627308733348585912898696516612139769856990323044821676567096288808175682909575917604703391109156555423252680873042030311866434756343942456887584232010723674014252037735308649734277190867925684868415459765857708671563183115540669919509261981044379701715689917898026164833825029033644441022163586310804510275613533968283512869985927739464305806346036984913018996574102237745992013845864805323696203016870954015130434363053015277589820349857587797856364588879684645646555128281751302486026476825075369897446512618203178902355070135646204508169296035408426635147335497603181377136720079063339127334875566012772045385291927163801999212832791948935837073360134128182250232857397705987241178398386045951304868782132349935004217154988290098522246262681178274659061115843918282325558804077775161809003255589333616286141173296649489841303154986984500726233490927797490448052495811085258783484908522309971591561104395843111002447331840998022981956385006793855400586606482734285368020599410005987530867520140023051714540086294967151843740091871529153934465487270308040177156994454983562736743809799606447493965946331443277041370782677983852927789316438820715169009115679386159418460500513163036303818423836220435728083940525380440320812200208632466697208875041273222064407254117146608888648709621874342906791850778197030439065411194730859324496322873288840052342549105461867773445579732697251811747494457213738786385482029273038385096033135571704707468260139680621483027264550217087674964418297013842023522310572498445823198014135739251215201211651135493845385092113704577816975742426744775433764214596301460777083739844702450856756720700090254597250290485359768706177897574130425575646251006317275373585012408856045498554237273466082173881899875919549320014594545737038928724669192632057895640389978627960366888121563705930552234705339106421718599287329378896957323593691345910402161724825242487606263137360344032930133190123032546842501781691186284414320276069507309083505446878055197790329577989646548817807327234496106722265151776459270324877632207458517243932409119577727008847866036877267669621886137696185946350134921299957827055228745919136868305390524377197806252834413368582112282111842374885628232751882145843505782209301688109635589518463301262376896964479902704001331757186656762461177778431022754935859845973159314574337553571640464088383194906653768292729888680876147569855207776057210869152101561080632736117960775507362359549038453892673084216748189366736598646699866923593153752285320670908354049824397197465417172267846395442897287510578415834586890776009829958545275663848108336890121017182717940964429963537459979671048976003650763779111308028578237212640709658874436857952065170140449563871321294303851250695889470634624588702321346000970396490716255499869420772676275596595413470142051189112751850144839381240639055703647103071156655353082104902219867884986511746131499360139353403693505411777174868600099249737215068559199029018400375527352495044188939699936239390157983320661598087605429527288011373006519379405220061734721916154939454701453695658449939330368024454382470669448340230410317305236407898877896931938845954575539432989752499697476600363217332505268137277560389142271151698829683938407509179529898465175351804620362456398535193123471163051972265551378717302436517770055067785010725751655572853318887890448935333125642876386629211900128549457920302150025515847464935390730261376172572249508402463577567652319442507163235600746417135289072976885683499773064329195052633016950794057843675974368640798054660077641652763738576515997445373050505245935411102867202070846711882712884169872856830983714907561365700237533984153272922896179562097271859379108318976247863096129000925792231963478306902440960065496332314675679290791518492301273995234465013459384806876177774143407888979028207011671071582728621025830256754079125949065670933185442584103045899689435785267299040998699566165026116653844211668593515023003444116764990803030685973746513969747162623104042873958404004140197472903804236769467910141898860056557705251820828693280429605378460180638811805949292194443929937188987312279675260548457414812212420354975229515300611717112717522330479276176838632546842976777192311897063355806851132839847431930557985358346246325936797647321162471048680153151850610189984945122034968885445720783169118049348148322442447235056495816648977489937729378389279355472605829114940035821953541473962182841267051707332086670592767868113676807485452287656408832440720494675930657489795558316301647951932337479592371595206861721825087602152612656794815653160562128491532431594542287221093112979305211661771803497357413651277136719698182842185786444246656495674125273759471300630620067957437196943427495004868088561855251441147070977214678872128717521252697999377344838186230056319294713549529798059359341161882458926329402852330269364074124669269961838310051246276372376734989373632670447920363944616329254712234736676298804383818042928045861492645384855895777176634679314035286561964040874963734674534406397650242958281826548830351824567567695588010012017593699244454329975584772015219340772115720127922317077934331825808907168490817803548434499047208768541344901424335365554540890892267972784459902630576881079594037608244946281096378347682130972880680377430066013482794195199900959448130180356422353636988199799775201249909182877272121533275031667565087823480795415776233959506727118644492396649507296320130923694598090530856744366113122107428150151789231583935364683276003412302121943641325439622519109364615695238915043134809205338816185943932764018145345404387136861258954595781700885901711154981884660849244633562329374682457316360752172113765526071825221653912459769273511530312838572145965752411314830386659499755545716656585134798582808295281209398899837928076272181760034230750905673216365644597954662520695182344866667156451456122193937206084209093542102293327851582033500110037969857619551646642113470074704728409067299043104428130367174514673974939759611756147292434322577570726146461881612872016778032734811163564373867870600276845146137434015588546801059086703901725709469713300315636731434059244331722101091927943392735197418270487612772896163282424339711516499817427945605332740107555651043986125111650559312510585091155115226213242197279475553918017430770351541700541512995004801619754879364203592011394655388361619596708288114717347615318166395852028931108234446579656513345920578704070901373112659368663710505462016617658060327054453971630214348607942241177098270333655867500842950929657746922643465626582927692495665036533614082331060304720526232540712420562049704915149578712395781516781113284872438124690238002401280986349663979274200305128916015516142097929581216692524906259486146299314902740384601551879200017478635687408040310461918592832539888181371630182693600719714465326662823495677085257502646842486176241323988142366334674176691224033416800914982165962876367146187249857509534630493525509759934730464955499083606386259068365484313101502443905652019412287039109992514413507473912662535726214901468091282922588787768425834606732518834020179701110110078533128415661771869315422826949233723441363407814627210008904353413839589342808910946256510034026400230540132863173499555350320591589592813410030786491824509604942307580129692324989543017332080746793220909751580358582170278390589878743125922537515960385760060857432280314261229925718307835914241076425271556043183981653138106411178404795716959609852880542970639439258657572826309113544202263366610958714153488721032526715436293851180371949402026226045885634332362448468107407472633530818086298811001091627805971685211493089409448722725971646838478469547853169126586089414885394364682632399763519465577633998442052144147101284285880523850899796279102781797415908547132682307327653669946408222439541100934428544361936096632994443635934411269116507450818340508593054110253740478455963525812987081536909752822622962413676465522988429654665314418772215117797382020689023196035658870183768394007613118235768843036906456897722833948963396078776501877064341049503198488833167213958618757502695474725662774000258979018764895075882825075322080916058485732480503921018963870981544541891651965754288108609053374692147394457905971712663022836299274357709245688383170050703976377646828947411961478061444378019130483727005647616415550644782487539498090262599694658102390509136117709487850612459487584216904053174225921947488614467249917345871028152975990196552768947622833292804779842871264031175529578426911210527862591600410090819303256031827118146753246067314430054319612003178512707688928096403088030105852146783959489694171226259693326872535061583091449041755829727766937031658030809920090392675799437167857996165051131736066381332288182523047170705519039559408923834672779510982425644466114868237440095692645727429599828137699452840409162203936435217403072894900273701707572750301992067767561142378497571722836090495295863677300971850277866077551734261057916322238581983948842955949498123737137783816317548543270124878556737409390637794218227396453151936490469086953417551243329172725009418390265981215535071394198275410731800623887563729995544090823085284917266335366648641511209162469087954030179778944693927457321352479982378026561729287488146601533397480403402207656901776893876153806424250096849740350341010372441566752511098611911669299195341967388996816344196382394276372533432934728005241791189207402452359330798522896888921793694948107866035560823947093349403404551540153922088418853516526743091215040766274751512857058971656313832031668227296736337564091786747100030314192630543766407560484549328668269723940355782508841389851910309337452363321348875212166989416301134339883534358999808429683049842940545331767125644184044147882957407532055243249052993471112590337068523158162279575308050943702541293541148126682547069296797059015925568704947499951933318237661891808871501716841856143150420480097664675584591110064849734243229270797351950612597870486973059398096533389162000058669773646594941290251890789175326761298683119982323380978218173240461859835152017914809173103949710191406349497921951465590197303733930715590031210698751722774317807391622804337429942475496361314905902338341293305928220431774683915273484331280192393341279388199850352430465615843812492021883184412033452813167438813472586580230124386874155338726441132886547737457441263338084790445479877094738871751965684126348933538087694765983385422972305813969225296395163408610039483409859047083041559662720931390029359494571481904283270050156227736614309339278337044271760626025053935602753345984054929220523994586177016993802973393220083495710582173642999678653242901071002119261628538356916894601391168298899389451877914806935647535151109879092938873716134619969620052124675782389062317781693271300732369767315783727031776745673596389684544034336036747294957223336824580138800821472607931609535552113774578936155271597694569450283515346381506833094703368193035123254127455787342929104565767141358518338852259323697351383876678273324188545360913687348197329220557008787092966061578524349561352817410476618746698277644742438714120079323047404022102007655378577207962415254528780549290845905009974340773170165530765639242881151014442965989904018456754905607175153095999919605804307090661236120356587656109757228880171847867637213197093792750739081959772397087123049220642358507880898507085125712618959919507410339122049466715375292740549409708308874882680941266403053772770383226586986055360906538776974028119959863318070119185151836458727216474369167595996991910462455920843830035770385598914792183754991483814239246850973929107118545506052460255391309791110824051994931069129824171613059616027232685505018993021136759467381373897124901782937801552969483282293246051870025540728455370346933469397172793855937230754587474567646985592232873867872498075932783302339269957033798926861154621992918469483937565906939723715787966357586477995211419103565352750006794216882634282958863000351780431849986217734361658123789319951194571043280852132737182979604451312708013953012391464506124223817024515343372297904032488360224178577691602821296651219419123829143536205929231972275221452592064545692796925091143074686881805112176162007913428938417707032361088693654364540832881044148740610862069202145842353004754564765400801329973659045949899507048806841999462806574957410399032809766749333605853540574601332752133264076609889385708943133627196299151491287738438711007672340293883272989547693625977753587500937118748734328293060287607256493731417707687462104702317986167164866384705389770899311649522253411193747065097650870530507108577519381283915489099163725962386213070331510756213779210795643418867801461957774116531215113309154421850337686507979686818716271979432557985351160688145083953491570939346589993266651383338714985994892055936463888417637476435939742795618800669911648704945218320228226385308177611571644227365078658630869828766083353324341150024935112757761156391410751045429322399722386110290797620775172552892849856554059848885278731646353204723032462558860092810595955601346833382842176697744399866919976199558435382176275432662194654630321690018278517939745320084540015574004344897871319632659950854354290266086586686768082932270897181123743959694050109993492326619202710779099916455355932937251925196820134564646125674229347119469732664975447524086434302629232522426878725816347376431154070792628656952706981266242346462562729048342894603325466292347203622649633547407436098788183773176093977506628519508711031756466570467432119582737067888875263042910399075133068419612571884792311228431063359342847374348995327088537701429712624382769844597608747248379854274480722354559118271519189157525746911720472324475654394317107639842688023579936133668847888308587115616527605963026990999360713735983004740473384866134434366293220727637306625568982286090640841766133198710556315827348276864946256342708713433956700663927218675214755992891464437667027856035281199625949903138735096581529104649659473682014307501881383126483367496219061405417870824333050448396800906403618614392879423183915860757405959723412418493509526823380559069042720633636918255887458621371249912426728232705404977257967058343928665294530697663135213679085395719032393765900983284381178474867074015132635713107734359440275200559101565563827841750069591735693292593855959687884537242182212445454412544383143699910241449931410282859658841433876326929179121565794305771801768349460846436833059432715338346269029062551308766097626366890610112304786644647726103877628465863917198781689045417367318394956951605237538267846214895313994808597099409811093715913179408633095343486596582094580237164839034296992379513531463881779561792923019116877937073107836604113737754479395692193579972205649106271463661580678157540280541324740649141165408762396099602212588770777286335314081115536832640832716058434704947229530031366196354278203686111995583253477134234456538743970615375474652805862167787256512051161222255520250090673543031870056578311554104823507522823782448811282191521072760714734993815516145537440441875865000303088122131912578425830644026980743116160647952810328972211016926079601266727844150518931193554854600121374609982675713977736356591208555495139833790724829785300494600067132371473647308172825831180099795605173004302888115226796354195571722529756803006164232162266351024055127351590432648004401076155641747404362448351535240811326289797986041891593630555812748592497665456019601843577105333061174501408351241435860064270214099962210705759445232694665603922838848645790265472473047278785589190998422866645607995794959314543738863955590368119092048233417176026540811249678813718482984708019217208883710420534219239368290547884113842714718319701141731769032655772556907346580077375621927503756267885203799185172292532279913908059728026675403485229066699168486763920828553114679399627355530439945736729477635037644572044691619520463110648878020971182527515471699993987268120699112533568333368568964413717885541354074240579820883854603540108838533883646099968276594293983735886843516927087426165561536552462358203338008122522225445752332613095339156793645113980295646194130320954933046203762256055682944140348764689667513421928142299401625755314749779231321378925671550324684674313202446660966632977659231310260772985684993313407898944307260771672049827112482806496043258822403114391000052659916353657263343850582082300368420272977430551786308785179150314153066957359902372713758532359847728461756713992764079766726762160526490006058814725104757117073757711271638869018978807699714936507364531323165907642702912707651476744747473697680803472564956368749559496274844118281986869049733144727985783715383341625080058563526555188203608019034420752755057393060173526052315181944340658291928652248383333479456587359070423262233345369418329635300538027082635049065984694242353329620395873009654986519031529702124540485491247797574646114631203140451713487822242455887267564597195358214033134145870637419802380315367753452749264260399743682976946353080872893303111310764889173228189631451707558782596084622200044948791608828717549408350153459107498506975676380353008240603017412461634901792975677296005355541154235546897621417179794685132854064307126852708207542832037107112827997741746837834825237555617989936398490837171175703811566798729470930336088605631585449354995400022626168468417474838492826708471655428117495076734733200492804775051943393353499009463893456838602822251781305845778654735970123058745560045642137249888927361602730440142987674838049114996543008646835674045774684706617392495872140110421692828154916942230728138069014609030083292690693033525833345471121263940346187073309593632778105728935781882455931922638016418973772632542821541887586148176812761414379633636575136275292991786274767526614097750193951569745415933051541949148471202698322247561188507740466432838955442778970525267366176823195172229136070365658212585593301573020007113402215447908505157966840308165708587378602862530870368090270517635115644785051959738895203246399130961157351032292671678095649813988350788222820824557761653828854826048244887784585938761380671316399791459043592027188170955166112789389133266170048659646271564569046032204226651787766982616933265553422286568474753242793860498945680746878901100011984533711551979346636167917040944189328698899297131922578776445566125061615585773204058789833444661306176791982911866460142234854166020048132084466147103124838568481959051854544880750548915110207382173971373536864608015870935354791149945372867339294011153498450715753123265043969721199883339494999363184501898336960747734381010260257790166784021617696850990731681478047958046192747613400096580544293550385992897047108606517846736619936396517169887651136788571290108282992002031716328437296587645196747104889357773906850450381781848654443810185732392812075928587616124492745801804060649888032922026226394183131419756974079788464045113616377087607168235440492316627332362927152376196346185492487086233130324031753650448649523519941498654432323794371170406084411378440904474392783303985128459817713790586494208638810270302207765108452937500785922236350322713901636674576934536951256942739361550171744495828249619876790463479112897142974216310593624387654205931329607125742176708784019036952155577408476732533985814756810508418867458758461913059976543407606705392043410439100985648973108118071518335896321728193961170546874961396015423566854152566838597421783900946988863200959045541038005842829440690584157343866396092689502086041803628911832172024611429247025788341314946043442618166563756852090036073192913285767952412833075624502423864543805138406832045424684562046057373940755776436349957065808245524154732640112515310096838791049168032594336358356047192275910571320391168326629149913753886798353717381846550504108334761652685827084609659062999750450293092873326272588594517896224785023158141452877517662693449048897397480929696081799937342275591367833877177667339443989556115233227491299211635250419821230158881883037182766415326870226524439520599685460256968935554763822051645576112450793496665479383140211648575777702602736071208118697570727967579862562579545328137846672932435660024185613554171396701054290390505395769439958232552889932277238902306191141825596265657199051891343954780492962247117857378402389825702739341743008548018739415942267905001871121528033730285848269465118168198997053941861448479214245163497246785378598694239679024056668878462958465306831864637274311509513988127488364389160175763053645280526513852916728010926299394477205050317833833918481897669969293170775410461057028325520486706171160277979914205873947546450290254994818082239193400170942756595280305402750983694305410864697390291155652504436769448125943738817400132471364106174671129507348698487426156282300833358635305487585465602588186477701059579140646254328796369791754738210945907092937517834475848360714710445127659992033038904566309588041298235116755145397687157956398212570741341873811586649868929845214608927661045949437610343418085836922839105741907029362042337731283936866909469216989060922279101753525841749261626864020571838828942148853532405600574446639690892984272647747793731775722887331148015368149099661048464905401893711994116350811833273395199844304742481531113035165400070133059452531138831130448902794288439013423096733030992286135333860949092867083935238571419730745061917256070332627027147211532152513639198792108969294490853169325854694116357698416979975702341310489064293939344948341478815606643910478422517853562668003935185283307593349807767066283163388923532608289652534656776349410741575637592983808946987134718736984071495122558971035764458559044012641659829658464143666791782378397065758569748809715616215922992757042097093840737982365591033771345721634103023187707948140265804611088069444560277473713296353665599694231937293037189899800599651176506996482819149242067615153975982572948250134257704757631505112151178882987785697318669337961308509059550994547098597372133741241203634635724607188586972184207371630067344962973302496398587587974846869769916370059588997844945124467771652150207444658609722541863142016685032776095684489729997943591273465585221036933671838390066106568491830920713587301750117611907964699515204473977009723572581653615691367153157057935514196696648396572634647211688981584565650253759156516763107121870567876995409037576164714842133454674135077824971948452313298630323249330310774820298046070686123695062736209710468010688362983527689402923263107859895804755519265760483912876022136612280760678758997367972671292372922893404309443511515391541102487486601253093231565500843539110983215489043352300944085825491839680084976490839346142878888190451658147599639063320920587115157062380645943487799404422533893145924576618398641640150044290104222950479925679700231236996248530144492339216216804235466366636111343909653733983506572557893640456127423471810789979298410813766081822451300138097321763688403004577001845656754030378730037164338376501378617119024405246757950986155589274294259698584393964966395500503315328453094793671280257522505469103254997924524161937904299869197922152447836161678777714843492080374595988393251665892743773632978149528041422444926838688185215210446752146514253587947710292191545622447770277258155728266172525733082397737130280106870749105234145559828417168935150480078449378070288353113691416366448812365251096377371050963482270231949491587932967106700724695976378992549411834501474424145995359630207795124166684519038708349920798433890787856678042401712221454644493990199344639896335935072783065995125489851321432502614913280265079281323606076592978798752941619191326643978738980392418600438791423603053857594797744640447310228210946253106174020598867685840163169548284304354550170943813505929614952087531488247966475058377789579888774436169374545782087145649984129167035555993869015379093363963201217314814316216589141212765351637096744160308645429112547202861036314845648732371902890678596170524408360563285965913397798471071431901901609474543868862007504628468486598557790867825728506898288443499836361190437211762108950381185846331532301585735824401937498372446291705499862011848710808956196158425915930096040059972908330650252001148166574229899136102100011160990889871426968047519266045512737671885011549658584123411432990882404214149945051661846375980565417551198973913090030450929813119943962065276681667537229220582647236379431726767156013434218829765553520036351787900252154987479803213577482501386028405361099225834320577546507962691225705038387452212075281626060025258728690620578467810004123772561381785499115505824711730114467550168715457302885851600558650477938803639701141854475555490259905343975691165616049088641676633459287728312356458202262438986601013696227559689445563370277737810915096281234415482221486525658915601258770561193135160552074271525800413898388926561699353098616152108361468845532735460343605909388873756457000643485255347308572970476089510975788645236605895135202546662309370510338425734254290231588529959560698084888123573507267068737341698356240314038178686543077421884681034985906761891085496827294199962020266070798861902304380765792019577961492979299232702627601494807249541322517124241094576866446939562168962908437945104951957490842081334558164855049900088660937316820162004156286202808335293377781144408472143468652147165551985119920086577090127000169659506223409861681196146890819735807417003466479297158149675091314525992929442045684218217772107542803975380731479862330751519458522120972187494431670962471517106777938579897369553253563326622425950662400209490228643948974510725703834489077474091520772613587106928123892632376379428875701838200499492852174677274730271876440531100541108702339368307957072105641864999329491548745935593655393067497332980769386989160524534364747187542632447937212038394132213119148054320210347546593072508144844258149790749458125828941429009621881126303416426406362367327292897212268891047160433266823781213078793891325434604970780414928101812700862876984588729219131091376501651809118175495312034620216589355704421306782027275701044464312596387010634473325222614363258366943082159863010026043066897712017451504338240559096028698451107158387992388771501189999178221928073353727110186262521849584923764644895723220623891029326126967054213091868917940251911770288999316486844522874940088572394176887916316144919752160333712374230709506894607872586028204050992891053213852488441941052263639072851016598770209845274559023652535955079109018397902748768316474694181926045175401165472738655340210709377239591352378512756651364201419948001810379327824290515240049213886152468282993759793714036214531554847569948775968952251276607661451505311656295595764444815312957694519174817306720459251316408841481832745864125831759796102946153753779575379902546434750520672568416492949476469739269250448487782155875205608948905850529658156699866765091186598348215669525704605356820869852300615842979910461866334053189883706604010929013773355162716618974191039927521130517662839027005567682210244942847528026443788428797660713832988670403305502033746089235713070269982748772286870104934075515180719084841478976182358945648668547371617382463012659229481129459943511052795079799001584800855390367317937605218582608492367443142030339526382147835086096279588281667084791960090127475099345156619352204428608656505610441463198779741908449257279564590657827120327781819760514499933994578501077854515712703595349812747953083026211126725734937646496520907588248049556286648696930736016762376870891499894161459745247724339846882375591201256830110002873227507509835710958167858786028109467710008434203536023046440885598316931773036492815895872635363931172895864809195449620386083014187422336090830165878266190367344328070292895176427118486664908253756541112811312003630338336620836851262184438467714364757299671518600984886447167183020118495529097482301185849205062530898377468519320024274520131844261113289607193715691444156376784227159918713511671026352219938351345557495976403141161449491317217209553235634059054757122239232395377649740695057473131919342862980329493778852329053051067528751024622270660986237286764682227713880341264057640938556094582603644612703167920863207969182509213407815404400021473423531305560933190016081082256114643807895173262869898358658047388007014737794803255517125088874465407842656958312679243518440587183615375324161308874602764821889688813966121141331416821847705423947069669007626134104373739048132340840176662099387935790709953304555909348550930521825973908971026041748082493109804504932054751070779743554710092309055979122116189853873537354276470496072294443689420769920356728474024582960942031208331125833859517715431877436307235542406591668670697080160390291221060601437599058545988983021976122917602349576210720747508125364245806787036769446676552523142858185258323758981430055284632614001038638172689152333910765001525806741083212764838015759896481774297712544554560800020692121749318792901561625539943779611116902230584907794606293888110182901039707759779243178219957941014433408746355128035471390722631893270439090755065911528850355336485035304382829488241425660682074932769675603513999307634862878243683435386452381700643995960298903074153408856487505561195484594677734556325727577605204243022624930165227111039271757939278950997378049078788415032872990590965020989523319894745902932739779756574926271077676491890833738056148742786868681378818369775355145519535642888549225556693354234160876260869110861974201220337757929967667637958944644359930729923937692716451719503729799507484092592190479426497187000156085531369211346746920948859506719603717133714408369422795423712832196093833548353264123402953438559440198060393008302732798182264805267522349932703535703133543555606912380444239065603875570948576037263928144547538158373719021103278974947955686224562906468759611722337951339960907844216441662197664173038331419170939769155877040106206033049023896980035610155616550063715509057615184844685122042244884239875375867046579064134637397207748364626800937921635117681193084798552394761052635280806314163240987047570781689545081631624170531350776517772065517980912212331976442845350907883809262801603405855010754794502495904749086957326176552142716635995983698462350955354587250130309651317302548628706827844919987560778304577892402431010715509821695813135343087177120129555781876912806064198634669473699377977011095182689913566878174648132602748495245545843359871523682232594308092533078759677626520124396159293352611650697547693256011935194888959429394921136428563222955938492445786953827000413426562247563529596486998628515454083347067712134698370399840102436173265073083594574527448083934696992275131603983147829537755052419302933659272771940505162778519839753431427332943405719662622381987140636656919641557416363168218707806026987747867244283558739769760338331134186899874964579740059758950166230608281458229992219907901304130501225374283913002563196399787452042181942688496929591329855628197719260791765018988816753380255162077840038235865682062743245699711539475625027338777596544071167286943773311693687843833680304873322383086939399470355931516231896936686998455709141170772373083935922780586314251349752888854618151962797064520337290466895029156401965267476201631163342556565190951814102479972230761254804157632402046825018374190752516442787819717929116484553869824919782224540501140390232295709763538663863838703716038561309263716128191531171105938416404557091778864738072427623905759731211332513686902306629860692898424794774311778570534615139178891151557332374085322649908456113208673765039490976148375041867435746180207555486523811784339746811099773707971196948925335008588823675097340441764034750202965806335786083944348538621600724453654535753157992272032447830063632723899273220896684717066870118253704179397248288429197965993413347765289089635213512641494889891053052424781348380305020090953842055114217811801368307639359084025093111759040392492291901295176037057792761635291882348910837141410857268226654030917138193290850726511356884059838223860694728996946172676777385903044265805869733615220326166754885527973068200087528223060714836368908092661901295786291986642122834739804135490296875834953981516684690126959281434124448991073640648040602605712789632030456636384766024969064868744100800411443089338462150114174067872551636859284145092022310562538937811118799323609501396503975019583915433425715185600807578276837094255495452893562156316421541048141604407484146691962776164198998917450653276636545337615658935752276062673349262530833732403907603207462790639823817543337839482004508919672789128353999749248081763338339796090323239429962787626704460383842551308795144115354584000190332353537215339544747445803996493970833347132692251837820063156813920955023997160240074547553780885535526899066021227252881700545045415726939031379672375809805558154713718944662327109648083822597829017965295435348226812239743013524251855437698480009865176301906537029902202762121577720578972677208177872133152230765796471388039469477866731722399761029415178323841874639536570026232909377693226733517984040352238475003608216670239764266265675794525700657286603981706336213265951264721311817927333196810384506401041695804878580464358416456286841604018973342995580576098197717829822588114127405343586412814680470138576871776632547138848475768276003658536702049969918737600160651770064208754807822213669700079869759078751758798700027706489871292276216083603464198209629143381575232605798642333546860389266148973764629823008478905449295820266832209326072819690922256063844248256269161799232004888037157705421183560647560023562186501507300811636911309866482783624067972290274110473634497724166929090772621068760802474573826296941928609544969031440512587021929060818593430223696892692264770053237082523887269499448649909174302019193574376737705689197691170955940195457224305037293271578904627237021167298441621996990111741706440106679051222877499123106092225081521190575400620440646859014315058476108211833496179679712653638961639567342548313825165887149202388044022571872134966586259433412198937110903193917360554476066122341725372402088260143094847900850674433299420073732475451031229467182505745478298215312791559795115550649522111281016467161318790415502602514968736044065772423304411629700207558937301508316972108213087412670155598062021941345323532037491550626710276271952681164835015141590400669260751505892027717422661682973384214404748297415997670939966520835953108348478166774480339743973720549455927406014328096780064809557023339968804150691025901136166315097379921842511178311357739233671466653055939475670268089705025132692601984128289927183620686941497084391278006988119350455315471627206817406008807570000617436611904256389870131812847275774700952769759699184933291245074539795033885619841442817291697480998537479770622993853936208575588721401951129291819738959806117848076508891225431059885604812414325195892290935179151979164900512391178660686644895860384613371979704835239293744332729550797629843375837047693913797694499405473997501687015028649128567437167358794295140959498192822520633860196431593062231996843405103436314608688393170387552482475359846162097596424875234080157515639351852681650419395967910494078952895241680956946666188109792387134046228343710623724615540937760205665247001443948327185015162262287814106969076204122922016431405084779934781996152772418154012530188172112027664160769442791636919822254726014689326935865914384777903139419560966712149997427010591798990112845278653863777712193005949408597213942442080152209172428730378227097707844141717117044025342780545502124323548559238160070198602676145360868266880669004634492778769687221075555234441541055190750915340287103300064798633796546134819152145896777239604017491257221012042266220439688295980778474394385690628243416598985788345792345978962494843009603786231723958962086938795826660849830517360672755979825742846769302744839017895918558003065266264115576191344423119621089288482673054488173941343003390171276175706609311648503361058485196588311588380741439253024984514906944342371898123448447736986991104839219227694779502637542731107779024587496424045632564111355460322430854406986876331234256918192974079381947711410475409339264656630487089181973393281794072754264212319577514881175627676912009752431980313244479892388645880673612103456409724611275160373023106770504225269427626913134099951456578795879553692132696253404806870239613432285063328880892122415215339541120926238527684918808955916124772034729709128806466685431972657325140769599050744383891087757314040480861603626537393856392338712683492281011872294514263103540257560066085347536084811134013765347901561967219393409044751022895725028970709898981743060927317555254229769462370773222301796007404914801179233060786066977938635387662415320582658576425557863204240896759608273113638286689337745828645471719457495126512726970996766841433804896779600313891546102601917646400865466688025734185962751725136192456409264941173423530814196357610397717468822320423792185871443730216577382085468174000415109758639525523846535247754090819843005680160457909392606844989960142227305777844921515047069780622487789154857576906364538145779890508005654273468783195344432916248707210192136442938705230005939857197176711351641443959519017502513590452475058946724769509459845829601341806358428904000959531891177752556996105312201663905636534568715837013477086093116094901940731335662390425331771053529339562300031481764777303223795240107549285679023472986554555982044632024092968081025447192638797618400289467470942785462038332892714101026350176819925806767223249176821158202894016075789329924163266096408626176915787213914879381800975469348951689885317674469128464586505951302459942975239087808133179748286849151390644796406908900546178126930013612860456279219411308929680512240326904165121935696387507588375430021069071349345052761501176928867442805691054852478396304337502630528016965247648891809837240843488295216055806370321886154843060174231624632945675401975010270476355383355350793663675662811616272062719362207352537100634786653477264795524261456775240230028097578102548571988709605067286396284013168577959148176830940470791792700877383403365656593350948416378273017772686325072304698528735077366063615204592765174028075426884725912188210749650679814870067236332192454556197464105479329916633407380847472153429010605031196910873562608186705206293438917321728764994260521420959371805380467448253107061844590931601366991004205319606127585136581057820162392319265129483216918234857172621584361950847348391622496420161423260856394879201267844021793736639040080249902543312203445043201859075621811570911469891035638746319932525401415246755124906067207008400745586572579755544866816288472620602506119969066415875821440821477151257560747879819827311227218480259141378932927990652892254461562598667592619890153734103243760540515189625194262351645729298643858253716583869337992712584005164251929560874928940308962741229351799681452579047971762736526106370487153196591270402265676822260102818233825462875388399664730009485613862820863644079649074878874496102808068947655825435199280893988256215750096260345605923099136563957119652563139769637200326163773591675546013175072386012746945221653056478348370621338171843231318056334170101286396406297378436614127933542003070886214519782770807847001051388985943840630901342762939139933293989853385212356739316627310920872048324583677050674449467154120657596541336753820673308402471434928120567875393530639304596554962196613879056841294285817916977296780566783828674199535366379443756393316431034365944762814622759693222946071508419391113876818585729024084451362119877217401845916366623974548709999150294151427253374458450158025947132661843984341292534479580269112735073799160882907726080932067657391433533089004162252722449462728542346755534599695480586681871415934064039125902828626883782203457321226175315345387362105212535027200385360923617069615573642784756214525897933917973769335729333236187309418993074067941095796516252203666798546561118115571625114881332334455945437418827684069718856906540939125059652410829421576662038930476419238860090331916848699251007495670609811746008500193785397514392333755785120338130118343910977738422195360821591895345526820837921413673563878162419884455637156283221726466722065101034087107407441199081798635923510791755710499997174480558496961551384082539536223188597530875464904828490212365524665135926798042456080481967972680154841209309017995402204272937364705666195212065992896700257991561846900459108743803020053315986850564979571318845045495846167901298455952345673311185684128135966117124207097930634180860406387450975920421317914543771642073978382193370854972509290871125578275852269149822759995514034200562725874677519724575611416629470273905275009150554154951604848606476127668885120656910190190529674627896271801851038780566033738504948256011413819606633376625643098596629556269841285099436587918577002017441135714988130231715209388793627874772515716879171348317770992533509264778508581113798513178052889666057395046983365068545746538707573581086945100219677716422926814540634134965838153569385552092856460617290525856863374196872599728456160110004142470762300970849252493664488627261782023016676615891351772097293404568948829273789666447058897285265732169631098907917350381571432179725819233279675249968958964319066971400874064083781507926749403848718528599141609144077344650667668503858270765600235537302880762654463960431111017761987783087575190352543341264933123595676593404325842157923297527112029123119092599599031367265306692706537931377042134855128106402354380106158308341691526981150245331563648681364071727617348802593437143247005937400757206499738609970647866776806618250903006896542293179075011560932000428740324593109356174269756139326403426593012217929310004561860145543105956264728800970894384515594478751651066847015149088314937044759612145996224995616166995652449698978286511654671891323121476451418321725688130097646039588414798255812451437108299104751438901690891031234253861602304012015328096046703648934306052381809462722910199832568388475400880027564863813096122494945048871237452225366455013419533599929304079090860518067905066567871478503045044526568187485113042835489944959177882235775353303292032358789163273362940162623233590033480297850825549517559790678541376191684346754474702575193220784783394920891737285183360790198877831320861547373471960214688920522651473804851210370318338196551206902849089657088254247714670017164763758360142439393804546190007160787648186636955435158576321446496754871547988769160844636353494378366127428714069103120699962455660951426283445431946498242861310536155556652816614360089745010712145162223827525442732010814942419058914807333103236918101800912759647395215224977631059788224340750575003731972869738762911686088017837580734600742657634566261501110581743167053913426685896953663855233908108673256617741699506252927468986614889320631155378691393252215889346425140028852331811402483494074478201007564082732065726092321366416566026073257558928465718166936165959915727558186502278077348467188137299022380102962845571765100903628989562826658130453886686250850913519784966451732447899233528066051117236397709129931941803652447063659387954596720595442760609348400712539185205604041056593421299222245797070119154794723975587573393342786639508125800963529886002473989671811373831943757798554575974001950597943642122370435753903192101955418971070494555356123343273917344098604779985412238244691368922113650838244908848947123708139347559818940554908056067110943019941259648675250734822313243274452783101274852930042864317882579383589111519036759902286063855654043192724689213139842673834187386191960037556677175680026928208690990880500714793036282187561611967107389397483680048259812049177077036930333609383811577828670410424141128755849892764860516252740448456665156652490586406240645531721639492384673371020246296431987961186062277454707599842747180352170201995420675537730640122878980161246341277124066283310595169972099078065179871131572099225910423140098301141879818979346977247792337072661973997455343422546127338396107626069785350569035834656609553881003595219763239689569413136133700125954809958236524162101413377005657248634963748703636476566044179344435398394910257196503767588919359255443898088585167512304605043850076638008383586636228395408235282304491107914685512176547231140207680001894137958937148415828696324133451162801062966385505649857824860252204651715247102948471154538454601272978052140040085032845159647929268686767429552133429112897759479852986392252522961624910104308811844083723201478051184591564934799897713648830090968353886103642976696138987969571918059952395013541962290796045591878537095566181156820860856795997143811886166362682931302569876946346532295453644947119391154806708616786959708298065709992537976546816769115902904759573370002226469283889486287564477829403790115506931963526948113729369093372249879346321051530349406727021983342161075666817971702151843433803101276588083115616977496870340884124054342898634575202377188838143615624093655661331091180964960676347667756526353709953463735765776032898369265897665812331489152371951677732301092557943344083681560067952409312540623884559568926934468923350675844865504196763997200883416506589652222515919685152429407170504169628447643435649593701628127207065787670094803621758391087977419831240052575038748692389672995290507496396969038036283010401215919222822482922531053601835825409773060251815626497355112269620882365663450511363992790753162959395832598219245895203564513005262397024484274540083134431797350530175344786410045159042453013538219622945057083914549855197885226854236512163061970874455507447275260126851223834115718670975621411866473193694228139437463660931977362166922769178642881494840318373260943858745644399963624322540243408490090770156194465680136044081846246877667154086971890295403709818628814029557331287559822426554242434462807623992307093862165555762315659158622715190571475619626637315340302974052428279930460344604105870717837512473758078863638753121853964298917985770153770373062194991209625409714544193738511666587406753089205711374174632148246869702540500545310993023154011090614701195427724893044981620656315427065857465748890939158144069477496968747169919290827801991197229819207570636653066810326214799481737491311286768330737166086979432957032949093091277955986536355287705557315664675267557758226102147127069997318708907319974005588349427647934792679337446322452031199102729705914163982011830632909435993568601706777708308672183051243334994828507970312126031369371858514262834404306032660554392123813755962735450389907875656267232405102551965360195560948809154043167251817439065861766197110925178804217626446973959784282333613858122564790531446908141501040564635182018395332730591735063482689127315422053224655609743587840777394514979670992558227389880013124484815392572512736613493586510516575475653480983530486097481095892176192960858745445880290544997435175379367883266516065866687284773235057472429837145041180507664836285858579044579716243036924797959567399644240726224693714440455372787415467287705526542055674461710882403626662585701626339785814147484378380018308456423735144540550198328506287382270095148192763350945105646486188170565812797549595074930368944153022658185951803894962999207440696881629168256920724707534802491813120469821192318768930513048867554855538096612090826374652621077929643378953612426057033132838948312350703872015583878980906470858251368159064595976352215680637886601833784676054547097013047785224211933363817668187632888436755891891866395145927411192332359864695458491818732368140945061204882210926815222461003297512103779788928023148174569406154936525735254036562914870789465254229220490684477779804969907173496357509944191762109622458976584293387423854870591944409846868831102063686333035297488819401091839575843649846886482680529826316355523591084291973557510220329704368739497667431813182217599116617212783007960430243609318073009200982708792689720178435630589578685772576599312219414872250289937627633687029196156927378662048758380763509482916374734877638402329251487111642687453213515854751392342893231153237316919363167186615024662373141114040164604695610897272496419044727829639486372739067474633134741769035605581503258642696511704896173187416948021431556885469484485775716473764249801384555501204583967310234262785361724720545562786188333724377271304159308901074605670805854705556972456016235506106968296260839418590252672401216753236614737302877617175368517333685649383920726128437470683319660366037745694983856728723490058806715488934280778801109604010684855665459662675007725465879275177017982064820783732048338648109536860951404590243172266375570707756487557666250427181939035289974700331514643589556537566840507276831382770492131950395902614131547710180336416487815935008353542672445328253092411712452635563306023827794739416342960233986279090789999571882316397123340071189820356889236106115100511363280729779680866752599954208141700402299955753261526753126198789535782213412785711324071451307277521614512259320750252699112608591794639523018927516245107231497844320510572252573921689313313065118310692741521132033588710699544611195459898296097829682952101792793875185672767286046261672293156698304657997767659308006138905085543346354914377323203570535049032524064239672411510022206050604938828898474091970110657265116261611530704003817233396046478669689877657536903310929976897371056398675303859302139288310825988159538394074588490553602955101920867312568547495207574907464549729281439564375155696293071712769904920715047000017083456169387089838186527164683626699628613830457351627401705748093660240796336735485657148874246495448676837628552885189550413462445324901480413771314950785416759744843492583331301429025279458612718674411467167582841894918490795055076126551092465894068572033849295985535865046099427391793645082705470671236253268729032754087627901340275320351821657279303767864174626020182862730387509225176725284904339041586594119783475702239889261651971491498777263119791186183794884214583782334970142456050987200229891675230515530046345292178949635203814690488205217581119360148598663078461666968774199457055549827272835268814676552501293719293172465644080063357880463353789852778579749106731151124157679548229458136529491603913929335462805712673165992610072389681089852400656636390176682193048980843964086255920211709257153655476163180769217555136968057046837731249602377824707140240724317572261995494571176766952941344517511483144330611799613252970059181414496115656533057281496044142429484216752804311827160832549521329743931609389083897134499728471785218387152487803543119838132495098364703112778811956276280726010129930865991415735092866972017347254414627761851317159720226957117311373131788017394949891666938458630738349068007017990662744239096953609010586250880057522590673784334710327739488728972708803726051302173892309196847742515739045587853003761479224962509563395937649423314062219694665669603859079043714212002070276504083868320363625326238398199406738749541893005084510456991921790329859989757986638729329098835305667215998871824112599331302259509597545560733898106146957988102276435167955716542734399340652487856182423857720127655376791885374419578298242944240035225009858236321559926247129400758506288438139302159951849660936269825210747506620390131281310504926786103418868029083018841870180718026884129982647997523308229379735908992707310005516791822938850866794436419621250190334262876148179752039891223221062227390593454585481821072714657323242805157175148968209773379151015233105486291321543829646372812416634524887239077985808358636263736581497279914866176551551512773967274129011401566699750286306656314210841834773831160948158111610584555413289224973036680608756432484509095686246299152397091137733096303571640973804763397551252271730985625114584275431246296422574577281670423252728588506268754679048572282564704368591351237864889773888917933402850498469613173488445632631792562561005809968464206126661067743824727955895045301725684685644228254412849049862546659524525108064255837396538267279300222979251441427848167546241677855635558519083409033985758625994920408182456590665306681765022856183475931480022019004457747521697192781414290754588920746732623341869780830906795576067040065571760125968866695760602110489383650521033993399485741999849844445666304262158605454127765853409046345348460080860284371263630240322081745346507476810218537013631582635650173458607126976293727562046636488679719057660714369865899218481562069450563778601179892084784506488161774125284933041521269849395437278638174495723969074633604312059383549973293411603669102078388863786009246858634887566071244762572805054799756093688808383603911079968149944332365052590703807900090441621548346359819594791971716611437425200307457200481866228160382791746862943797406470943914812289724162111539665438331333535537754720762998830458869479636826196524459590458127700544199896639707138820444519985006718310008549095530614194030950981648854293888995360576977291975955585940530590604054439564327219914505144359632907064554240694916858478733202744482797176045790706944407449507599345978590560409945724793382134742757730478592385010082230141866670786544245442291000860793560018557808064333358546847648021272237150342424810492568259439816215302619366129374988740937828564265433337656426483341391664529281362415800425376401588181463483197903402063024652882741563164185420886899174011204230356954148713367284609733586355805763924905155771472075752578937834635807058225070898997910222374190288237243721322542168627028792912435487216677759463901152824043081257402498175337583110971252109068754516852491349057250387745999259211090377654655055238406792588280554731463982866249664047859012854501642829927599086179741819896878783848146801772579521654246630786701589104745074457224437769692792109588859260111982425117633606767557455667015601267112411440848277563472348402158757466549578897194105786337298501763037247995688353343688990848990367532753363424543854533257429119205981793759846548309371786810683487128639027116450489945441084219252624119482557120345298719900638300914256486949133017053982106589516798611986306145980812702961324815820053711025087897519624495096755222394559262372077912302515296017218342989256204236313200583694471305685749659221020267629499152424327245316106682106059487617445402394778580233324223295552075509473927223352904067317169248197378335906276061974535953231209920247161566280479247825227948600892704070187709424365616156918203482457915167819049368147324215174615922231376596851686379043705369526773049857444581856302093914312170596367873007098046897703939428835693668663345808604285860503827899443185418177322204078761151683460659231043152158935445020963675919728694573561467250772192550861035705179196026650017585316699119407636696556074477941306404507377918000539411733124935929620058310166789027512827722754018920657855012260918383577754066467097472648236748705422421456598727177633981732860953731926158685009311817728652467929071970538382287687669610349139211447052833380020887178357679033137401422419288792067634895477483959351849514114800718724282850062517436739997103878051961615824476394459189864493322075317115895498747058259862006550457237753230962352861775624128710500113876095390424999617104225217995573307579986790129342885596907014602195139298984177203728593767969955846533824381122069237685097157063140163806645938558864377388620265903146117215157151112272503397371237655474964241739633129133575201124562175577864157699064902216098325756583561259772627591756511681030255597821577398512671873786821537683984349105510911900858811247208214046811895800552478653665193896402172915193785305042702325616829623172320184579573732983462020613711056575635430928631576982854307541332338149486814434931388164827876354101141506024361463689251433211466193925682398901757068985719226002603217914394086486989163038011040823243760884091653641553653427635486185805912291768172476099914344257442845700424828940907451835000107058512117649951339395043806562507518646348745192325858581393444562800996109749790640472818621810831896898181969330452611316025251735996003364842770533914669223543882176280189981858703206606735164159743012442228817208456308754135360250957564621231985848273864469469077024871679045673460643783571015680239303808327074329225321597338411001551712158403376224176362438236379784303609640227501350425134208475599954129264123818672596934101443656019623506843736866755076637451316835412337373111550857454777903141306643918594558546530467544105990967023252753818261823840880143240355140769142236351056475115228913381808831493803583170852085259851248339797157171515436281497722572415308436553460778322895368278267591057320665855386081691753916695158505218142635922421554918222815753953732600135090796021152167940596651655445143349227225904683335587915469180584188630835979734031519454457020945734835505731558873469264922638098049169351117293931558029732626215724454993875438655137872423351892483509031740087874991453524029454471354414699861726539153433380114541326850418563147197300247064562262907287031809311322409115148572349310600311467547349584317367680411125194854518507717404055988421308020780892207087790283976372707487329152533558578413307817179178275176938472003496050681598624510656377778424015138958267913457036275962088429819312109163734967594727474268712348639210463914038846067128862050627673089822834811557159254147119782432537482621267983321360240718089240525712351482173320954798845976517525904685576871382199711085371966581228432059500981734994589829269465439661237468155997616364482042155859891003561799683394720475258111877163513303952708000779269957639888407240415026941677905504099328634241566901601579794471061670542060267181912787909292301980156665014109458786190882262646244527152779465418115112860118115364348602746463018655125837653027765020364690872334206155965217686750584113836591044324146718526341812507708548119940830581149777901432238485281191984226623338450709029674427236976914969036386667940579401930539545594029831998172033070978535600961354599847213133917130996539199374423559259092770833243461118125930514711754157751056901944517914204896231537861141204588071140934974371749643091858066574190261953587001309505377697214855997920479202249233250396670555242589235104404345681314780693640046741936507515467777574970489719584375354885177320656650535223505678169251912767269077195486583170377113053675806831049655098544454664777552609602882133429395753959948478477487058564118368004078430087830399627795653964959934960681201737697438145736400693349063449966544376427435694108312631563744173192536949645345824665087355923713228700798409491878259776752597482343974945731778627005292335380227663137304347546546500729656212251501443550447831254415422892368689952618965527703019062837193058694970580235215292794365069726037452609656351754292236628290820498799894920597586867311834286481543197311186075908246964728279449668416066968804956469903408585666880661108374045605350604428062402552011425607213132466796380072745871190394289114146309480828232293085486644346516083035858906366876343646533231974885960343826799945917423211078216325041183499658618202999044103375239713380525528214632400354312254928210959232143410591102283433445782081369286789588261688510373890570615668105091774615659319875376767641334302257888801482406635698257989401189553603811162488061740999407222869513418502327548002592237338601418866786551770089709945890584947479243580754913791840404332580878933407268558065026501956466133492428668500127905617888642035279795455889386178169377410275566838360362183528152714438119074743762499989660483303950993880213005874794476304096301800077722229774367147772781093571681727015974320201500657240764182484096154306799810986323879276726303183524899589548866646150421782125848047229860874205368564978188405355289183470480832503236652272012275543433013030782781331957856916808173671028000215827438916115178552613851774236121551600148313863175995900955431976776555145944296924913281418965314899055301705124399527578172425266878579452707273061313869048706810780316443266365712145906559261319460275813101746524524744015431284444557156209266347332126410159904116390574064358559375316046409964969324356692964490786279271785315695851338504926488572627104588531582156805300732893759680763491571180560761535386923466540800390607965647872421747208466607146698064468456344648126137817798139553057535496557586937249793250968804844384807538446160412462172883401100973514405193154725912163733455400604834956445180318314296276923370962189136898960054197215067265916239929518974510644562147701250248248641190901212369485706202763210055151881034124439247618190947014353073850147531531152879861515925981588796848830387488577137210217001150715788022458744978222847900144379865354534916316761799060916333846444950889665575323031119124497418649999478573817098251785223159652120329911690393262493142055024357766468804888270789241473549934192275057288025300014465721418903286038414428294144177777454435409534084079537530508820347285400827609101308325524690655083712232721804275792467380981314407088671290990217221240531083935849516507065987909722749035926397930354777612677194007830626808719886826125362935740973380600654802168376613353981593018067730522429817888670348035056532976721664951593276468799365139499746238166566783302417249991631940963466370715384042119788024498451426677124656057044918561868526422238636595845020654274433978633470064567425481742960817067435702407286988748895942835421298059035645544423124750766822751495826596439948513565822748609546811828232545497687916596392724931462883507928676046588696365279714444033177298922463030575616003002648734645549420199658696732491615714761966497345438763544720949586455278750795723621120487964307257662647758518923830848086530702334236692983782628977468384144855652452094862203153391983312193986101071558645830509753700752040035407631094271715760167179039408783315593201499810948109823827416332812505664566312259407412265967671552781987896091702340185284615501209299542704158021457853094049332932722883368493410014171164172749759252812287698240281090162618747549556892745288458693470539276571137105265558842654972771439886589490048553343986805902219826615900653862576828193976501912537788299178453484305371417540683298273217934730839089462931844191155887753027184196592750454619338371070978288003503544859227338275023184088367125848483184514034501718499450849292751033036612151971345729702278707382519009710528807674629920279460159824330879477275874186094157996672795386058967149138501490028778141560959491316957397623212127677002136648096779499523903352826317169733903141818074765768434002476665393364448259067825543718340040250609463612533673056015551447010579937390295233832844865055748851563960987918508665507130920400667417965660503122663035355037663044143335507022314700795893646548491721864632805652685543757749508508425280142366077667203331339802891793791935868226402014579391607084488755012841665455430510531090684619571374573085449419169537940127197984379186536221331589814983717492327263890770164492374466614795553731196343670837225153937730247067772494957093747190611211597596608283945216682176235817503095824755213377609891233959201418380554239086488350067067963176052916633567320333134499782782331423166229501257540626049509176766587947900681436845506485200324687290409541422749478635302309169475053559949828920998044072450772046870850673773691704114603010315590752482680977768998743265411026617225120370016779628031515574180106050907094215631177710563571610168830865265221299728332462869827816973685919223962467221672650294703211158667724432951042644448424376629696921273765732680269122304991278703644966695202872669362541878262000725265407646515952100102758096491932494150591485935789282037857357131820665146322408585753061489380406010956315288885463624589047587236958259736722676868689940992984897465791408087291090861200738743403294103082185476494290469586866820390004009976678187692725691853326650133416174447551936709367920604778420889786842080039839354733554122522391555219383458097639872000610707507224041427865471422108838355805947819577681424375772599335455989063559165447695345530608998117775246150101268565523541047368512799832778968045206574160805368881660644795320835770728167471391613054632935365524620458986964939260542037129703333998372121463644790271160538333322438282028997721695177111786357225348931942912750537397708146499756734636673364923951377343871546308614625145705456702921341420331089414144618394441993148401007052907744391399467587703262410111197625691791795792900053511415561424565165836031465406435829035735585484356553155631274078481556811604504967485495981498856604843758894277631785419686020113413129533801938353304739488079047631931626394815863324475782340480228270792172733836480294213985374144003675463722567199657215033385213005662399711851690706797903763974937867738308863237296732219890958519016083378078876410530419410499622940282506209752834302451154177945283030997993656450505605222030170475798351607048124071601750551397467501011449186960620708913881100432505659670934766154122304016995688540046556589498396488895140501515545382421330778834213689056381694621989741552820853549672169397250362880513633650672336313776116157160710050045485694411079544197779838628101698559538474097114310805075614750522635735004921386525315210903070536921089272020886068469588755349457515267392946631952717629099112109468941514657845805400397549561328363041027161905177260120522956885608389098587208088860148376942839017968094389549692892419569887095028943115667470213330577176957947958186505392296288651428475220420355953453973364193228138819263943189909892440715808686388972449900657941415089873340594886877392008251276496708820668549918879474596883223648351709769555310274803312437367674484756580643064997298972237890840806942171473557832940657030452799943011360223878550927823230297266966861107035564777766754812676174236864601828441418261679562021267356906833812119389934702654164267856016290727985437685454263975468174749943396083274301742970630843535641358029787753803409331798470482008668777904566428561301841684276454316299845030810679480864685607894350364819068006784862751056163833495708328711093612843222076935633784719115247631202747632298721642482506497912525574565227485581980430472445236804592805656148180821250885542433873083929626569427633697915142549973920599134707573248881194385201459767498251917156563775678204586432505643129141817386640142515413383580248838001355463715377688968976094133513243825476818130489161266922180551646210806221935605937862165447437752006557131276785794859770604990038580526312727800492139232415982023721823702855025996324985681179389770926766735801726462824990851430075440136920383624289924872205243863728919841725581428768424364380397960441757858938678147617957533391939014733557320838587632755880527370726824654950848442497594852912992309720944995405224947602785191290577839934613914612623000535111727759304786582734594703447270082579231146522086307029485346485281933530391825548528625579207392066963256279356731765605564117953479962826416923942085020080304461077480236805286261513134853658607036003344578348354533442924745792342477755654175329085472203534960151656240333090859107390095426602642743899905225295412569549369273264279439501696596671814057556373479929887865680706250287334946026093433840308211806060911386955071453975674070226372785422227941383247730653350288792700852530072570861500069451676869427097552692487296196026828063831620325655503922672583813983626712410243431322759050732635886623912935575216249002845596069311119316781642686612679753989351396784843309377309475734963991618594388274211466920269025388265130104299431771043635390910663338747782665484083941165257766068655840798867492095380913185510511175837187630138577141215119925802188907531584792899031175102724767589378568547156875423397305947050275659653525769124894254915785092671343056636502284866704506446716641989794558178435200825422868658706829016356460625566771144198815093715367133298438659820277896512066989590766850019418124547563042880813682352705157210340805858142408210655148773907201237127471866321752094400445413828804682920743589149009997549064662922565919690107005553520951587906377897263723520095289373156932390444637354173778965031734132853926331224717010287818942293879096893381375307185040936909599014275761763609700816780792049174122192680088257741884953158992181024319822525059596652986564031289529443162197193844370577703965054905440643228992490137337603830692877051688533999199980554269415034449830801315811920001033593725784878064615304388103000863619162909462707744982216974529688511537688519946531349341117562416387194993292336478432032391394727085176589033523839904451442895351698990356513960588150976781352823664110487927537103028114838420354801849052686087148779718714170450508665300593679983654903303243726902005332904497782024869879675479385099082032685541579228381110927796289765846550933906005610096528629157444980048106108758646531715289859979579812037431735031768841065367091962704601224242980168474075832619645281836511030834308168127812253952364254086874195606992681261276390111727135587046412500902009850028123877104155159824456602891079813895641324924602914827764564449455613789426284240118566949496890326029073593628066342406122753216080176967392433770160482208369604822570868461228088416849582408316162136621115175193233874219744225246754118414186523679100761526483219573602660941239093200624251163233443228887307842854065480221322467161551517154322859022252322158497657002035616969449764793641313736520662131187766670015673246779335760010014396395150106296775760932910013172937700725275873665552893480294486805009260638736597657601245526974910339275128553850288382596683497430549534440323249643581527199252635601510353574748641576499840760706086727660144855477810503965630555746145622612130584591843533533818292138237171475536392730137289871069310069603285331648100247082058507853477489447259723899046688673093356062971249204738452702134053479501724982668053926709026795310723558483169569552272248809383876715106868492775685388291034617380021749882808321461266088580622743792932277771350881888655681154668815905227894101969477827329091155418135672691335975221711580644642268869353379812222948647312081576143432903336895988713874712459486901671384059366107294816275830348873630122370286962328363815719099355223450738783516432197515241563855199135413047464195888423517513899882815370433051031139562210286148179631834820184892126718145974526468170410983045729027820419783819505362047776340860373638859713313122503680880935045112506849979167187513589917987626470710103871871985489478797451512041267713366490946248429962057173690989121992331997309591997582314536687334179688084996106391604350777497631984845169821808126898941795074941173728821582512092763922931515020499100132376758484656686401623722595715508183274947725998415069481466639737689304214450618984610378791566516012512354135116489921019094241636142692814048332925422516481881132045763373228690364620979598512017337354983625764742841240249524061182879670714533658315697082253202082454140952648107313496432264350945958898849868166148532009678602181671876424315694711631142754149190203326973250868745911044619709205521263248306074974104797454465560381305596443469255496261072848228140571305115246192122253459489478057320601901675976467570582622155644449076647674052073720683336678688090492592491317345728420993879464084791424207421517064602095952934118836673253856316887996660836643539686648021544105525218116224311257874634043595317437971296888267706092438473740429854345171082993969513487182540284292655674118236543799965173279309091705213523661107855007316186708076290947742452405670607205443260228196800959733278111021915152909650957179783470091662526950883975724364730989777073232399345112336934337163952647476803646673357511792992496593554377261271771205877453774389706205688097205608185371968475547366107224445758779399751701445556851581588928200599020977824108845283112559178039035862369903981055909087684714934098123237107466555020817060330878395056991542769705369687473887284396145165960382842021305099906470266316898517763163311663769574877737783040299340759974078079548614782019683888249819306124030515049601314106579752130833456620022120574352897734048547188782611280158561991190077964051821238756067871585992154021587184022918775602614673032264316967725047813627378224816778216503274652779172194590172559145610622521546176547930699747325562322819818769648569826713333040864678885251569282132258184234136602406054583443214863513834876778199917389639444677183768289339770051747130300305837822304974036946072641801865835096001556818928017472458594439344188911110715756879911767080058597668499361926249652485898075379373212556112088177077513387273355446734855941005657110936584615550655103126395595626411438111866585033279681578509639593219703015987516212548566177589203625359291612773079281826061621951511429457005450513553764980077501342234824981673829125715874938004911511715848399927772311754473225153196476740761717543923813182349518741430469098062275056346803692079955652021943100245823887144038944610070404697759680817675093380243040827806835104731911049702120166317630497232962291034748444856633112138643068771987428783527649605151990531495715876237280769827574225762731867834767954227712295782141311795861497570460150165343383035493774794050777433033307561654699451585800491797742023823426165256725737283541388616735451600623041003750271971128591434779407865562321292992396921226706781562249419108516680874448099422140234078131104688426065221124681429050896934108858390284717822840860162253572527782529023403186661230952641683690466524623691026566780206600764960804930480222567709606558202135782430255031960537602764378109229899919906491883559429181869877943816254684453817089788170480925577627122727099985402457725801429318182405467074282812407680874038813226823143793277501563169387958130457647005554295316670157108375000153663868012531193833509091742592031888932057467550357353430396243523005846555115130750087997853887182246760199594386674571095134934383028964920983579701009245194873131375688472008429594730374406622441705151871294352282818337736050213867939785113752051242642678090286879180721339186511576241173755773643377620979750323173854674412018551129009979481209558489897204063924914935022923925625974432844950919580578919763046505106272728607552653099754652744724891142057339293585260793971664365765224032755435691414492242525347195367070007357436173716237676620085521779758723024398837292568622645569300789299960945577935981251152928475485746862067620299033348226937325501673057073868230449325618914270256104470879824729370795497476612201258516936941449359095442002494124935366169764651292577619685365744433514795290887348987452897142278873386456170083799523687319033735513809443922084352620678629835813535333272215389322159612968509686695623989256665350282519347027916748710313460375519335407958360774124215763493411125620560684304397629573266372139330779806945917590177143723389457203810423511694419010050656612872188756036007077301517074655105565727169541010213043261234889315743518442832856167984150905821435118227224645855101260852189705637149466461540713197327828243547273699533507173622261068671430540306430436217392093822775938751922695754545357236323682187739285749891515528107820995346445150202305729759226326177513983000527953325234210186441427561340363606445550689870588171352361562934665734695070035425809490061212688364792091007208732930954482020399088172984285593435593777215376182582298044891486103946979074975562689343721147081719819735496631648639673485335286362099630689291918777904222709232299353009166940602727832805486616814355508416415827416778556514441520758520541951992057971352220556932323323878623002250444785478612847975192183420581348345498884800147646981469109598780006845307000609064069348394776708310686194328326328570859793639923626046521093841009014198611276636998338454451636951174127303298678152552121910539977862222277357199422478284363454102603993438835173618077787293588818017999694000133935883233016683758664155166338040187524990565118687750137971831697339470162388899452626552601005022927415558225327846477777340793856520388593002491970164557213691058723360184121684554600430502098458599463855345241428216277351380358575850334003853153530417074671309226008793656922974968514791892143282495067352488477751741913460826369197634640553603413617375339143469313877051111107501435934561896256970864906138880198910479220547599869413200638179876316020381120221909184351554421158833917638458291495284559702006953177173861608046540934757836394804758906688709505305220949593500754563176855313958271879490901895274971614061626832041051185136465258150391440987067258224671209934280011091773666929796259212692311981352255314744922432462189267247756948650911270074408396208537150242781044399905233544940183498790605875189366888581992845314481923107708714054076967695271258260157067773462833541320223289119102684005558857865160445990563055729262530541873187483759877384306827807980808522264980769535580794543733034097821874701149426657253584782635993249192249913347436155458744081410035508455855124500373124465082833427161094057099431533236838037440261089348174689353554821779530006059261209569540208740233624209748885328354577184480477952935784088957338591547160191573727534859930740432974620494442602072108354376940521505325039814725056775400383852356447572290983701408412456534178892197498134259489040626127099375753454701025564047510322015813172716131027825474919065793216093652141105234607589016728972726148725664283041788087701981754132520226682617033135115656557026163021678561545639222504480155235627558827177836892662031154622415755310315542075889884829289731165556312916225733809974896317157550625910024702636268956404369206167215202798971719594322412363320475754764946922276979464981596052106014781775295520908015813718985566429949065218033786698251743367032115367653465442096836035355866764166521063887133579255231981573440336824873471542972863607614097329592963698094838208436494649558854446993056192711392312322388403615879035943225661788341560575375910710465538580466135733633540897344462386126103229444262357856458859151278456314487024519493160912756802243057024088116564406362992958382607654652783565383690983479531417452222264198363439247272152292877615746734524461919977386211998913669072012824668717778695762577294443091479341797806182580026726709720351576650669005080977150891409933432419173633823958808425935726247754631645968819524365508667432423506486047776842495090548444283140701028199034614889122558494853880860620689153811939197821688767324291382085489588781315869007775433373591528228042306437391597224247619719816156289148819680519247089604254601654672823326349616419357865623374970299510365974809016314097611577158939170814712556614219729738881666257613573425005368538392571022793885849913050582408785738607078291777734417654692925045287353579514692105367856905887735277372256720334232189160763704109159598913403672076722989194041240703923492844966984674808271085813339574957073977064446173011334012860392347012898572049900730415144834335184797395695881369124418842417291986227636997062807269537963456973969678444444587418979326025982282669944929758741605397084964646527328860566191292472350996360063659194341514442155762024318251519851876278482437272728769052981860880682005530502617083101507308745558348805634561791746575714475613164136980861061533482372019521252566604674519037343713940435153238335096046369438274334148808947974559487805963358313994320733628787054497010728684619102870339951042898043073387533848256041663402988245555657857796470574460501970495692318312634736409399740306093738039609980604298335015920796895435110355834592624261180377554985752223073418140586626763971814089413219608966333724319395589248713268205894517500018377185509428774187943008813840865460906250065241471882200212207455671178148169790506495954757700319209094157785011794777608664081029704502292449529782593500513090763488338987794331666813048095985779859130053113520032469165071537952609961171750185959301100956882381392725572404854907900474692857980765026068241591849526526074612854010391699420415368103059202478241515695207347912827491754692834584729997921555233767503159292856195470352566430976947996708130545446769544926077149838885317347660204778736859617478954811252618262372268158657179088205571561306564583421998463866159175031930813719917340396775271592637950881521279425947417892621719836238277039062427883495951262154498410198584968659755581528647554868017154876773219240755097470760317268682673207189716456034629569403384177033613213770944350102848221659161325772760564548362173432884258867327959715910728095652513305295268934789940352734038466505275786155045865332183711322643043038752441322607671067697552837320052879627815786129522291132811572685502524358634378277762358399041883740179257826659591642265168293491137032189631098644874477775668626481414589660910991112346332239153899283473208031942480143182192612366329198688736378411050795853224666984178898662764123849111534088073470038339287651733025562891186686803462296761986125300787692206755803183414911631181054753152853832362579709769859355319660978136697256967239988763426069370788929193347364044817604250015614557500095048004522875769814544498755589734350768094461492404963806936629551273345715202850972306499938650755197586831365436542722576954929811877743636167768844709121273264778238643892624900144836295963971185441373477598301000573708391948348726806726703206093000266920364421358808597041093699571400890445889883201560392164674841694179566074867601673766541416104126966666227500812707755032842842698307659750564793607814887238385290879615241195102869398327255662693398151476953228359604991774575274094345595435386659403417360960336469630310422732457548724185998353294326262838688092228185336964541734362208522897421447435154172993388315999270969055079319170719127744114227736860167691689144666860788662769669194721307385575052200811648411871588704912637995879590483693941224950470570128976192995503025810109883961045724397145583930848414910629719736276649240606399252197794148793964291866691362858488273999089381181262466753226127457139884254749245865013154285538138692578509482394251135445962302447684422047682589946832555534293213458246522478193693438703046249850317999087489872153538175335537808345308892324254773803134667159191008334322451526774256752971139786440243332743161852646395212618281438501878592015055253859257181857598268970549168160505914048782503665527146721706617116514766098668553956278316776831673695021757703152036227193852679029970141771308635295018988125718821363959152572642705551091033995430402366691698687313092912362825775540738139892655949910265618297036615481225268847750169609637781850724689836159792037279050570905220347771928525159952330406748472829198735179856783704569338105193330571243773119113193148561858697969578565537869882531551048450534501126791970470885162837723570478062278011075737859311160656588136519902566203555151730879660072703614091572675599077282293081988476415680927167011289202718685255146835705047575870935385345584049349746777897163804057445308279042153369198646387735244450682980424301523631985031921541603126986317021278094304086358404436818679651144640323335637702534140678107444307007417631267992989371827938193361432808484635504153300075634019408631448105467049396875044976619311215892794756100491127928149005881884446518971034463610012693820403444166773556659569071953508004942581261769347479820499070678839959884568921323616551644213073500369055348054908879868103020144529612511637806768593837479362508675264362182989295782875105188659315276794987877311432723086848036658179101523234462325313750645519338053852178754716801928742580964588333907485555731440537034339695317755779659902708473867299317149350296345960667414275496714286247022197516638056662229274520424358448114124866740573183796736243824678957921582313975303013013939791529759114738015756671639979595509332215515979163581596129116608477182840637856052886332168922434888792585716551295359744878700350845426693954345542750865666111015597463741828743768774509196583443041149775693220961330853880802742792374865396114250779793885297970797652518169039363709457557105466285636803034119034927200796794100806038205777677830457260458586943750795545321971189268443658175131475044948196073683185804034773512024055148003781102362355603407803688767378808383770237390734157301801538870992011347505364508941233761609319365300513226171241392277644494152407803060756737679861100853268523471366695245013421118088782250747138292698413698281518660509805674986122411801638991503287131800758311106692978209024485660359516792907755011738077231768285100792925195613931058696106084158828881807070007238786585122871422294747944353288133223709835884254227293350522541210965457950571539145560612877821482461100540154649946057425401025693114786801633854830228583930361524955431325531027204341754770353132275934901639215922280926457061325520735161664420477489376783065484843304084496983930508796977176307246100077065244922241249294973611651380211267771807696422409055194241461106981622056220384374803725259840798492114574194720207294604322694307615714742547348093204525137777424163753566779313338689772063805980695388256731782480295604215326019822662387479370305330914160883206577319209036416331836527093954944008746778333370516828466013608562245943530292532252686420318257429611922748216411358058302577770442579337457611231826667233714133826418676511682483812148127152733225747435947217302223786880940610086425857272889193392633485664308838336843519934425360163267490825805892831192482153735312268001208363702296330328087522603314081017852956969231643228655270833212238015956480185876380414129715458471453191759862584914490007503017187233717551256899065710402931201852666397455654927251525222943862809859090627967878913854530714881227474145729214957699082407507620029736610794500566004914395225313053728320631545067066630197770226932576529495639768083842868880667921884235978654032207410680903264335911112676430131434867341340037410342217561293365818870452080948681684105676775427080261697195750383475933458029225045696655920531626041649987802692356472538744338530911616698108840194849981073019473503451533643886414732281683629542305936890108599660081997929622747984935481852730219852629684828853769140664042839793141986094493237195460575127030407166952773563157117902446960648520314104736868368604853505406516799874718159506921501626292327501614907067632805084711414419535510449191801009021940109760689208383329017492522961227108241046129869344246253095751229725257488933041493727985122217226270053991122185282083777996488810215054600893903794957881380645079754313895519227258694893490063988188222034932343835869688166004355997958547048622430952384858405763567940819552964733567461064345125369181026539134229340343389172076132779068082282767206417807976789214092485191945131044924776361300637708080896689799232036641618165671695691859622044951521123469284897818090402661069006648169326013411832301710646833383940132072706127202213037526730251078490626918889198274305105528546024512782404749265206726071344709543073005773886889503828827528976589541033412410910989275755077578508174989794914451234119121221903605222165730672321024412593564717051901861534915291405013038586215163555661570368166747957630055579857099400288414001990187910589320156097791583856616424312564660770256513187120802024453081596116015447365767515807261023383518060364751211350950963541140801382769192071587750774329867370054500252288551218934096824421181391847781909363555516634739928813486078946657635763254000057081130021360530078578433425244642624658154059001054133495048074063757263104132957265660655961447972785894883353839178872984274894552319671641590006127099962598635853217465825076550334129910847540958224296131679555862045657814539176194232044459714584013331836595255191679118843172440929522723954142731853937494001617443465794215969398394833197215509095194026474268872484549694733575145511673664262775038063391037034530863915984072583065373768643287843438041573217921561878206727498933638751324679941464230234434484746414675724923778979215145091986629801246699657796142943040357582634871535376853501162215005322706865972859587574617660355239065881193512459717373685165893966206262087289098118138786823323507123485107196966340007058118242618130325086552088428674990716513062357382350849655991494177931914892800349790339153045381615228512732514744574321182533246241071518978608477874332189342656651721606085670450973940267261302173945645168575088337820840792959762977385584206529863724575190686520556807712094143286635014833702311634602629543206203391884353644988801808681920996882897414035817275177292917398187595165237495328780280366492623385810969440433893745543554253303717943289312720227241038782952096788336795845902356631409514044511505100942645458002381836223453805059368846551189941585093201103376564870145057131577574048712024315343882159786877352431138155577843641510611018631044023824705423573483135787668933844773014370124864238835138499725443768252653016326274620417339562357746426376972572499988872516314498974397872144263477928975289600387818952573578095144017387038956696740903675975133886274718508846660475914070224970692594974097746806947811969059044767256595782147185648574250355757799258816252619839964822487539400399168118401024280794054308931879891998492871684659174833900105832945907829037491690306819704152888159880540708303204364234610484821012971776919298450090206203216810516509590957754530354258035477174965307769965786499135641773314759669339326683901947962777322872958431923685170693340157534155096135618770789653895492183612072619069694414292433026279803581731923429685869467603553232944595482562545262274816811842136674912763815681393101155427541604839735923348579952987091709314964166418481469275390731735455999977038660317404498235465801830258259176267494688243143100057919392845404388894082622576267874330886848034934622995268791480002649479639449388569888507445497146490510099036024079259672633925510074384518442245471151850400056234771651897429574319166693830122387582653579060857040289338290328428514190306335927026585300286171194347279587987044796158741613277003540217025703724387860168841288571975652217703647942938976493568372875688978147127406834739038584393261518988463617440412459588222974410771888995470344286868965754881593626985557673741192682054546421048565820717088475465267902241185133632577213151103703593149803679978955747289515261273054500563199763734588194695425587172454334944627238430401672360668228715406475397557189324073267483235976050455135639920814001038207978083949453544344457173693096935155743811094221106546499336458311409507314046813239732766453895486216386069066425973724829257787619572892571696877322944621384516199683670018326768350017128437749895562851469033964208664802069685898448415366472494701954518077189227439974841439150851517097045365509916471839233502524362921992615644567451853481529584968445223317675255997860797399922302987470045998854616338643958399621264947694061044064137495111576076055128336304127476787698284659373235043085465598375751128116198879645303505368004823156306289940146382438644638991791493379226165648805458549765401929988302968830175059251167447814528106667873437304798624756648449414609131405388135278625182253702725839761398694878477185264043300920480875835345167722142137203272582987046532426267539991904968355261109053946147083213144879767148025850150550558048352591278877801783092955338832656995532585376235150641852137472446667988254109117461701629762071617482090748571481411391342659437156884554848159529468694604998563154451907984816709593015932634146491029971222406991146557177596168234974899367785706408473037099036453416070348530358633469432386166172736075847232304586699145663815879273491160531385591469552791035194893070313466731001271852802622753578511179887290829888634354992329382330670734576853305731612242741977408927178068938745865995668666151161498881591977941913403555204265395073878969397819803887460429474767599023132947395378094320209317728495141973878822653622751438015719691147236155329187613635552386165847599473838798620768146168606985295732372139083685732795974734089479239016085425318635042791676100312831855423947041457364933092795566990697710770184111818633964127509610082682427243592524786661043686245267289425295217646748370837902805803014600473732228569547626022435799253482481968285364266363999513281300261462215988759415683222036001974919567614377913640381910664017532206683027154456191925733403604412609150848678815613205414571984391648749874606241965566476918489921052922156174307426231441514022057431704153100340566330067752951308414807012243582711663902522658991044812055569986595727612568675674844155936323226645015430274933810659414504782677671906258162182429857265644539752061353321305917383272364680114427405620001812428698208362560383690759455519894844882046954129603778926487396472941682035457958936514775719967641079128719336424140615172152446618486554589529215563491593874065802533546542527473084504258373990982620937857168303396717600230825929853191699243688529790509512452778645443926600781058235101829395350292962956174043355538402619443169281197200946874022722630721336486342405139677486752117215344906349938944698777579036022449200492638839714121856419951765646021477379569119878066598128712037183024510149284931153398427263849015717194775836877060716073026976840387439400609963786977734321623333452212524175198516579818715764411011606891134066981126377279106667182037695225400154138529490139302297927338991816618544654713876057250285108408014048477185834995524315869292068631140525037862259003057352528886231397366703488825540363806237363310661217527894266793160934324513536902269853329277748927931500922837726132569685192271760271770637307308479359024522478031005840018522306889659301521288259452235442853516443597544152330242081439396268194756414404737293301877795749540959808486563404423643336889297323406440432034996737471578614154335650284193167547699093691124048712130776121576968994943228627407553954411192905212054417428672252361202177117362822754744449469053004246422385250014900734712394083255729345323946109863878110204421000526493081642576648494070958859492184450027552856225347979149609648701676044555064368953516048452637339561165642528888423454196577691036487384387539769255632647574909607993448773650455288506822659842550731693596624781938322278032245820729164148566219794626124719042802576645331413832062858964167769112737514072089298524733860734959089404885084455673161135878524545027473937512412164932559937635891930759503278495881319175075868181559708230265747846069574649723050704892527648949940378458737631023701748375179388598265580678789403355558805778559624383304677358976801590582200227567645230155853691677744500362253100627597071459110505888469984788115103860781073750694446622181578400487755468707380824797789799868413544584141887650094429893515755534074086417646369003861096174507854644085296150454060427266533262316512556007178505080977152887290517599599250562961116719409269108105096841950346076382616089828132326364371262074966218336858363933219640022797384481717897399482078423397889522504785155964745379571689940966788049663102101572926519038312505876011338895371067114866798104173012750603443930107465434602602424660161544759494653696175168998931575192646574296291053776154640317647056101637391367640400237212691042866941015091607405460479262159989491595788100482502261505723771567455226932295080630469191455617652996960941503756918877526970823560688658566882648758997825115478196166117841993480718218471106582693970007523709667238991465473934514720677468099453752698210898546934703570577430013330676053223919607397977644694830653264176943126494003800467001951714606942200126668931388027610348693497033164695381958710748233318424317034503325976936969313180684293086215341484947112492257505852803695972511169846081997912813319159737779976548142066470227911737530614963092029366293316046155644171461002016468464081245410428009699967767720196979370322829673379169987311317793944129456769106228896117060620380918983263433312972469611529510154649497940189806943692573871329803853774829194212782834723326264186806640251426792248253297030551373724010842904655855146810250474970686386859799027413993726482793970903535037361268000885216436261271601545108346679973259267683705538026497485711167523706461565578633022981523417455727757006464095091863844865936236820888613541863446976269853140572796531306064051942239447957679156222912014969224959327634805152868207756185836787461977037814124486521749453614738167249137143227957115262827271527311856086660222678961825591296035142373247360166344924185754885230630768517520342967843098009491038954709504798514044080944202151376164725219457202011489294547295626107461808001012420471423462211294526193365741689101432436214696145440539226697075940963497977214708998077334508881884902407604564572894138738973840712726215876139303786605842736746258256777861402732932206379823271896819361068506460512722191924453302276467400097948162066633840010309451348503405660319461772132404492249095017465646509151748776937190863401965731613553984545761282041008923520955338168517285582452279680481910786273854293704272745209564663856105832819626952260219082083337854256574186965809508499303510559528408679087410582162318893685059057606361096642901029297077308111193618687719186488245968865691715837596801251833626567571800939202782164858493027224051023567898585712417372779898309234711909551463928243035930168530534922768657828848905343812959034141452475543435048844774358738269419346355892597588454198152209408507574782591899912086111521631167641771303550003386518185836181670012793453280445969096313958436924838060703415639583084503923854138642611003954122172471154452607792227803503164557095234338171223906683862803655298974495646868777448087177248164368776279922970768802041074241019817266377043650043510445751871238961771704936767543158225995563590770140952180809407619707596490716810756672749747241867005783487744507757660423893842550940205773309159312979122147945650456650442164487365113390523390834713333521700218442665168497720359309169417591519281988638817377003756999494475222606298407369610522209463847603378568816417732293459935392080977859325126845983994906470531367188731085115525268815668653544495364204844109153679784665561736199666508593197141520103255022028717041190756684621547567401275286871121876844186454638098293889503479725993117528256497362419713675085078908474020488591749425452256347379045450788142297191303710347532611499120914431805943876199193102872677248108391414756316845350148788704727086910388254930420122044134519752691352067825624476192883584934228229015360312212961371000801533196005271056231311972856011053340316875418737684570812322060929768413826505434234960852526426715505569579870764511562422167057455560232438325459392290458876438318026554518919784595708812096182546627501080322635711722927734934318515550751737618362615532467173018976657924635318083370417679628412122216019632407126115863848073368339202490165275977747486757136541685774759786612278818717495283052379507994917102297014519359693810724002998850059906654808571319152541464371501673582454620479493965768807206539309693872106869942960111412392531651775659130472951103424913763286982037411940207291548948530149917249784076086662783627896443870697661605152510902494606075289275743043131541712900830686317328718788860847249686633801059364228711251283051247666943338684356153555997491637190777827217838800347425473666092097109554980381720524423037790658031831920469920543349633020308161312172972815792163319697513850482084991462983587719689051960681472119467566950059997332054553944872329946668931335842254289533927021305147007481880758219027143525551177998678366652108553374852214350700451094599146821812931084832832874087275738401906633930836615239923543146131130732672691275007243826759266360783068839079784816712218937091959922480130038881457195458200333910372842514700336034679597154745577761304939661550130739582802317827060436220318419423038441993121651348365266954073812787170128715523077683656845923205258799991395522457541237127325542617776306636846858772910176984949772196100270363216330370307017212939030542873021444384161083041927953438771517632501580752205378733926952163934223258066382000679481120667200434990974788553175956583529714644319568675286128131382871411322880652894323731670238297877909268069406240440845243068261484915979594946233824600281562325518763556337473671005242914286527994969071968129309320064343779956668306917384594605845364621634834245366353948998569452223018501572015535800712885239411906193477111388772629058869447166695488021278797566172851167697740329740607881044488941296429603995228902108390956996636909348392383458366688136261556739640248617793721247079935698825461055796314356066694349099772448971198325747545276290120623146433695625535780239508075081814839284792652258222300173140977542077750447938194607213008997927804782066129452089691725697706198560319044743564142542271773238037370566947352445223599533363587836956402887229875731758802570156813926885806553793067035096441932777611400432959599761000572293580749653246482232327426908102733625740231827225738898177776160728370096735296141407792908007164853612422737153456030248504901669284931097602456325281082086500334190903032214967148004804965260301138250825604381346375084011443026267474159731719361896676239263903998669612150364484594517575892859936236085802437966508151486423391331711099429632312695987764409997179666615109070105323885252875014013061670265365340746962262572337358203762032979312835219831649345077334956082042269864977101474930842103266047902228499897639113704266752644727643160735135912791603553686378331865886822526636139962662973029408196216522902964612004598691925128469712446247153765928355852368857505666621864649891496971810418652746930358362597165782603380391878346109707615279903264496441166230467775965924509858165149876380885334585203766231618579998405185332964535351362813391627652567305642473485443922458570423809770600482346238303729255622273137160968905467225456459530796993284885150979527386451288535086963822525373704680908924023171893936120109876583234574647694446944221680820338408185502147186957276095330454921745528397570502001119157436073646682096476250317738669700891780182517630211715172264456842461986394482722519340342954283499642640326115803043549396497554440327233127216853402828815860835626796151705184479897626818554276750208850135065728717107818666705317378814878190625097813305329422903862074317914335864437448831637212176250095098613980382287291710167373822320568294444026581484101907587551588254064227061024304935739837557406461267185253280737349031716305380114933536918489170520761528417986626141893702954588987391773864479537746709651254712109365463290261009284226835198574408858404267320021334268020894372228092528785582018105352045347916182989367933326951069592625985123387446817913690225118965622498823670352351845733682514317316964213809723887249348434914492069721146671512312976985919292688520343282671417525297643733392739461467422529310158118315161391660082543737538665591270938360058156600051740168596229956531235331786311842426455028088260196884857852111992133469412958416637128977636407108805785118754773804794556368237332126477501780784380602512661317055604566622626598780420282139354713305363745071512544032875119889188030528843325633142968183059904388798039843009412991709570028804931501020918685266871146728328924009167292754354113308044791737371872274692436985238396240169214797152429682002402691589575036416906806640510754785686157480976745356409655709457685107154016200753786280254158497439250356139758320899677869992381346387540037806641729810405810341682924237732582564357004706052764826127849829659610552839812936335323127439174237019286033411483276754297498620664249600587559508028385757012928498229781583147394567000717197548464267154385900147680688431632539539690802941793138604083899414212661592465532214410012359552427109279475998398686734651558193332215517934264476601284956772267039527293734300344605013317934541997817981195592773488901330015480788295904951427459268941062311194868968225127838121752927005211921294197047484302663709508757209398860027846368625952574566310469934196447513491279798768540838121955769784194904081581176693554447353568268632381545242488296013456014188010776594414520112226576398608189181946493729326897360330224197105062478844915285422674724480087281387061499141741914654079339802440584068933327613412011310546629949206250835091897816145986849537155758983959543611453074825003545352907586958730083127450938403008933114452593129525815496988739976389606133622689359323862045171474275241578204633618703535811504589315751634094851951477301924089066258888931948797637617694129756983359337119576657825694848314426784224138310231058449927373973866910053422951052918599562486600172196027857672099649622604365717319535663754180178768633404682746456536606963316922516632783627089490747180140729589619812274113424840599768858255573069845454188773681705619238988662703466359344689821912743658124430122142738004897669613345434769523024793279302195334844760540981903231041306056366302296309842444694613250604618866457862656314618769417384621780929398230997609384120126172246795174583182129564243030640023426557882872787322330625732149651777155880134625674209091179298620576063359760837843896409333376035010195196179474591091781292898845838231895482844774239182206264093254891134393078042970029711141017233563192221304689378183260842230513013124865300413929461365053486509055019251019693109817440722100643463719078658782288896769980863432451218733560456482163363489437059529950321248716250640256956805341415054548533380982357346282649963920406309876601528097358105452358318258422727073813648651768006665291732672586503061046868461349589369633835842043734915086519138610825436112905629110676930684591212381833539137407339648885574953487903266261134642506466653138824777417645887184318839102422224240536882219180891450711478237257997783348070951559145603626495879893365163445516720835140486602868181208526030000713945866940068555269007188443676610760900629995250144881511754508239271823697195444864279592014848128964761044941305090178264891196897059830385172618752794277310524112910978589044529020200089140215035197258132183663983542070943959309403999618938631681018930601735559996269941211515096869938973276044966012950728044540419553108055626111444017009863068537277555510338147634650131893432696052303948013294789927955898732717252997767577012646960864775597699913980117189043317969072900425524636834225100942888359096738653139122603881341577236590457179920765938045407690980314402019347572272025821307972757156117511243105279744965622664510786698265245318324676412134051481549821996274355414065815053313605792243101227780279179255630207061758712687761890387071486470997031055055221289026410386054740298253583984431361917828771244235655348345529067258227163665206411329958272862299293301110692927730084151861053215983205717351862139034089161549037392385340170893598259908480668447897842693610129957247229832273606358389994108623013684189417985230279617657886705550802066800541345694152599819380710861936412387915756514201215233263031360592832898953638230790291162789779508616125520236773193430647054953153047853803456801001017434616987314348688769332905263258798593352386748771674613941063237130062160233690529813917365540918489621117101019008662573731917743813466366001202536602662760929030057233911316757654617443643749024410190065007154639848600990609100656757580022317544158911487685321552299804143044822298685275791541844630330459320036638672801692188496982473690766944802055564198236315386147032592499354642048708582027903289712202781382495291181156033649778819614610381002596625033896548566754587037876074355005228769408334962638268362725091576587602015207841549157042182504299928505337234084480709963452871490359436823042343119822180231152015994629599681715879006426827774807215339210459302588324472953502559112669043796554210125499076883977079284483590024985829021118710034031259618756583669351103453654098235863920640752424860954542922827681619878473278183521523177521110164862583229871254080556310901673133764331523002976435939166912086545264597120178707300230391543099592676785339016170937875473425857480834088745060115359172871949589560521659041177033562511053639739071854664708560385931870828433654388374087645839360220174710852853054904109962481499605605066170027102582626944650878392894012705471101129634303397659961410378680775855306640973135950289422151556080079451977018492423558307335599501207857834387316679658157015491118503697221765498533996063145349222184637122007345165320843411878364351991891261853545846190860148231539056854730284755111689683669116961874277013174540583317047523231294966090557351761520062327731310756890548775115552261257608600842273963870754952214625228670101925970173567458255462518085105844812480437048672756243312913173083584084722115871344544592250381155402516791368461923807741681223226370276564595274440791804354305490392939936022883009477258855996207763064983769495277821126722532017275577266535884584585592618131125558090517977334610386238864113632969317241818030098429985874854774726476473206814292835610917960157522659245472207303633306790618270459647788739172506037157933871653249514199060181542065431726807774867262265337966908966854668198732271963213332149016477221215944705610801311570612127927173049070297356492224893763139581492274384617166423063758690943635593522898909842488313930971608035604707355345941134487108595670891156017068050062824398998792619872914073634302841827784172524084351633408029619209458297648712432150819574411494645994703982526974507267032719113876818236884680213426861800551088738227540112296388123644467873044923279567082177130834174137722355838444177033176066493330233909380971770458926845373164254394512290044362264545037844507017306423038918079264613653928051335915071943516006324421768024265659188999655903084528418598998347938714294616496718094582647115289883670220178799355214709330911352264651614065715181972930911167009221570209992527987317257287786124278670661102109405135333222842245495831368632548022767027523506580738489535391710712027568245066273905693736160301256616861123708646701764050499763032452921019248326117655627437572151504730865833584625334735011507443226460805743279262794000947532332369750098902932518997867619109132965209075164100603169374735749665426083182000277129127479626661263839416498600535543923277454687422830445048254537261298289301816463319524034771096924927077165488359873622028022491631117620114732795981583484058583761978729028196718371914336638489634464922792623995283527782633224466251154573574508544542114698839273322410951479586471449505265113900450094429639139595236189173729660030187127388590828888665598703771712584617910902199621078103501697811154808040678800632168361342299383273959137750291493537006035050897148178196299201544098074859838938921989767171173056596576050220815021252958451783483021705020016869999581971054043300613507299722531209706194802888374592133559270356326153388428016102981983320196593701492505677885073142240686018375106834297851571861416761151616135971676383404541076786810979818731539746349642450648919094442306779853248241743088365865370949257425834486379204119666042700852689456257616002591254951900052829496867062171113333376640099009316306757635326238815295621266416629001735058806475471024878112229794362311401363223704819619062302850814997622058559816262783068018363375109787555822401926552176402677484507399956074093067756593554008301310115876906862770509236271820601301297039695796541429201602078266165555098028838579060864951659845674679204770638317329506675242966200523880977426814658124226539701627054539074304713567516111150831592503276300512637038069306706546038679835721464768434640562335963062759214334666377679327315526447527143208919536245193366072157665373355359972545304692979604814979396277681554035159835558645699493648557166198594269780949246634641678637528140754559774987248804806338194063208264012648262934396196738579249438851127953898857235285526351810465691090831873436641376574656052293256005976207210953598480572407545150775005106094180528002362203153496736954553194813798674118278181501232359812291039579631949970074552902247722492598801020620739002498823782208269681266744816517562967151925772863904621609885669068692237551184697997307730451932774433419323354883327191783966528567634585192653769737487689920320294244037106328826837517229944370389010747120217995249863774850382744925439838011567320342350234056560300253199078640848782523844247102797315819694729722866542129525870498792948605126483339747767041349803866625369060254574956511252479819490306097013250089538594528188802929764036902495181072146442409775795832031931342887308285968917090815287591452274888385930272390446054432854607471876973996572420659083025327727314272803836543211080530813757885293000813181952777340413639272222939464337553209042500736637075790890261690816539896530868787822558716082398836933699538181641315474701778669754051472451921525038526555025737599953480944676971998785784400443520711575393237337724113626842168177006703860907201590000436327851780345412773627595353383534569537632074044020960802039720436694809910325641348316353233754961789610858286243210954235067318361608813938808213097340089262538965056461619188706343828378390671092108656635134038364609513842013541880606374870421181920422480515763334845004662058236569708620757643680891399567100837578196323692090354067202949196504488756188322343580961293583531250285840585209132316249074531918626424322112406536362646181160786802409997033824426918565448465852751081396857185791466391062144454790672458648401039813785823002975035091269929478742315137521409398564941490568350747296223404630667674662837647729908702540339964161896351203181314365475033642327927583142562942546442757321895583161617794976813991998501668461283031348676284090586363844035280044727070141369241714154075840220547189958200867633081513270389962456566197007002450299443921147059239288218425505190364134350772042838370231056831428914075612581970751677761518309698499591483453241324506843770905132682367000300041867428197092937364954527711087054353700794576658410952964059810010490567496363786926271048232051146107672044373540549993630891133338352185171271448491218219990133227539047776390956475164276289930634730279009775211257510649100577202085824449992666191800870729726225353624320467689812714871592709267227478412404356347321238340374311367540317453472196524354614601046589792887482173874509318697915751486296849407043959021188643007904072062856077486430590080386315776795438110084371728862743785935662124214203817687528775630720533174266569667298489657972894142026492125302589274620891314823305475683001808306778337303161727183329370546030971137067965395813397471467288501134948135532043153746263604084788175939339771725878653703949941986485180131540525795281972204150051207533717422491841011284509900496609308328725979003211925583931025507039333553046234083743008455266577259608111975032737864797235686315151683239217290099764566845884037932059908544390719641902827271958206876860201778749182161335940571991366572043751212762373013069731283621207912760600786047520668465235491485039430681745350143511481413004533943036398869284267746868156877634346710014211005363154226602323712179585348571147120286196927863613967159290010385042158266782209197719278098171426316084180695196001530692894496602697164184107844403583820936058609115885258291772921320209065844239489409178874007519617555908751690143902820593630161382441927574213171099583255929124114130599208056403254475919768926311452912060377940694809995682942334526554214790609425847591610871584222041240164659602093138354603753723771520704254323639963249613059073089696900160126305659059838174453122043314982981687536442406182971624814679825380125887721983302667019644930649208057174471222764862803619955373716883987289440648304153041670475412714509409541730443382172543873046267630773340886019680939449455431720607103325405343080921924726535743040737003316850744791230523346713837193904124768882200429696572637588727817214904764607638960326966085704741047891479385598152493097468071156981519357205212826610066631252414161446487082644828245978430870351334161134991088081056920097067875138465847180268379301069375458100443682448478364143824941490868081666858042111789992343682138352611343221601839316864058358410069088340514202250028562621174714429513016230320930797913100787486233741725689075151761600938519795127062143683782270862911186391450978602741022546881528938353343201943522931197177035616728429177315624090034242781747834660372040876844961421464932043569212616084261903144371730965356740236814779501060822731409417290113714849233230758621078032910553406450258009997585229491947491520726110535550134387099936555328186157019262221762998439161034854293016545112698760064666488136395389580905523010419052932424354449262365613728901076113452103648832857998694349904268869309430997285613643094773842440761393383660852523740058552299405532751637111376106204392614677085202598167946810607411079326761014716945008824020187280959512737725473963493654919622412397075119863812036830946464214692766594774863185909491891570418298213527788229052763634198696747544837406272520844808826068803532271104085762486616671830165814115867308100310131425178815558661265738739370419767977154129073807184886414046565368376195057633630832682809583861034756994151379673427652914119313364832278054753005263886940076856167479566596371299907463590532195218415475800035302829924609519798056582452938846123263258541253108792626342653283152705094145078589386492989172077505445584739929638788415445576137397573018188818828853504288667707374943643741075591190434206186400709897674531032026139814805412807108361264730862447645846164160411632896495661063108741048760592397674683253072065447550664686665667257239660279091983969429785764594319041006054125847863801299579012834407649947727854544435767282856379393251759805758000062541042095313978165592026522570639196541418555928747877281605678857312194879884310783505724616882578674741445587752424312332679338919706531183596363131880638262277176220526563032927948936153543641510666017723323275910205180419481020476577871689918129121905817953386400262188667796429275780030330371469231441059184735876618019770923624171325001080948764086537000686442793569775672080861571731928523487688293140251798611139378557448215787399326075139578044155887224518496035000670631024943318414536480683133132072718695884645061607283813558966788982816381690984384609661082476214948064343168565045051507327533184876461404354737331402066426152443161674522330500552032875057103888893759698786964232607446800321070405672538556752190996135359933373228551095466665799019062833980178468956453792182712593845899314264998055531102768458480806445335057791956581709218236352919172620758516662446098497001877126174633529294849531348078663390020583061745968057601602663059806868004524909899771550021258722493294580413834811201607194171568513792688979665632005528424059566391140320724720669945232960046632499313281279974733151916468832064648133814799111292188698068638935441148845652300975453691343698488970739047298043363006276482899096692995829533443849498157753413096347845768063510104495810178125753965712425527139788237711164485546765525920555045882265817806664089337548233264579924654830513928607619718279393999934779112381133796342421458878060441887223416138732998052078141809590531054242600995570249244185738010936864248675012738721501814695427266032639343491824010827436569351810772927528393291716049808984966650662750957909750948271476547333007605644429037872471207942281991067842441056304239824914281864198458833328097636513946937830937103591557055364448789027886623325967168831319931612064172509163600625184198513071549595671613388797062753458549257809912890692702808766614045325983488829290762151527457152364837230171060442371065330601686102229533872665573782491531317011712455286130419962246799085750547396880925206374642261774725272503507678453490051199831127444914491537711625408946637698807707041909857981842205467671621459257430151013988239759961756072704636345830330952151160435622904618000428247814114178024770438881636124062288281230705911672451081554946757603010920108671511497452994745500640340485523907204590439409786707080745859204415803579855812339490374493561665465176231756674488157945734146883381269496410097158405320155808053313624419228135394476430395841888161433835449264236139817698175058161536903536581783188249231327409874090699852223037325906625316412292472760385889675415260635976328955433850134431563967723860148665943065945827631543073762283581899148908728010622890253237331918896497198999869942579235320522434955601628600727595143304719455673227798899400746356997034048524650773690262118725631153802122286027502634381508851615556095937567705145992038794371901925841119607991397014037342925767602940224221087886191681570153396564423409443273269321895245439520880961421218179622820254317305791489784009494122363581670437922397142316304131146731609655342368510900511442758995366121922016354778028928190044923317716328433772676656956141248852465000427391380143060129735620429747126041778647831245083700700335536064951779772288271007304932170295835699941565941823258080147734128299311569685846865492475313918594615667046640171968385374049717885734926450630503162912794018199335654716902892199158939473971694858580437868791097633703860436982802386791784123636144805386162153480628309446507435952468905452240324790428086008076853545129490216619680388695811980555651076462727568950007467001296196293625850550194095202655464545956948248055350271699885746377472929305552462596085781706056366664716145459389797020517282706317985445797171621577970123434166395561397735665186082340777022613523394230263794986645007632443808586278504118833764797339631954139142789614050540743113556318839263697407537306602875518727298457767686430490814071426215947239470789765286756766843576213405197878387725537893633928770441390051259984086456398218090554209726039084157385431695524067973406383863923498705132735306156946026279379391351923103353572167352437065373813491915767715863270135620024327422802989487711293015467455643521278243255990336988746095835310486003840446375461864992338750097402167575792721715346478433846592874905554019948550407075737140639106324381102467545900047143569190492686820865736746627042957526185011961793660472439191139311688320858987579054382261580211056606269882676247439108513532065727713675236956412717816871253036463033368050813828767392092590609254979533192690168217121936954747655730234948370228726430159127502372058086825405053330478807615717706858485914983495321800002236458732883884277470062188647676654549083962971667669846179971831795310679119630703139029294608162570725830511082939079785609362467717665473012673656647056490235024399271739434896148999996483299209716897943106440968706126522277620779575715999541187573735000621253101196931090473961419405551293356872345050996605921275591223308575842021095514138188857343417191891470784463928655082824398561840000028692682323104008675231422266875751092424902686773915178945976787546578901775746453268243162156402675672443024914111673992991123831063545111474280465106215873222481175748919818468908650220002063218139801559224062391451890244690807723178958611120727582432928091144990167756396399992952641971180046430495739384202552342928524419396174844866765410789217297824450967501151066477636166707061160042521097284767452689669068399235755317346730699768317161848912337485404498386557617214775570283091470933064184798431975122935608381968811711868521501551038419475527769796609002192299091431355032904927864552185001830527919007427952281019740317050770245983841568084560176265297501054158834447768699879007044395343850221849418024691580472051052494924235743172175311655868867489793337143178973419933804135638598922981983836514407467480907086324780611935390771883794113924568669601201446981172427717685344576232188931446462793762342624528849906828841828488111435919401847432122348862944253202972901379548761176801960649910990092013406173458368758300043850676720014803012627396652960921200762466348604100884241290629104497683621920142934263214543788125600240753962177089004112918065356595338188219955704748960770917428317189722928884075739543900103266113691991787740105417789009532253440999254644468981632622363342442280862812633385032431245594288943291131853001879953924743955509876415972495429040980248391164376345402826806076553291291797688337967735941315921191628577431788471826952693247716137400352240508686473794437709784454405851447850955342256613571702933818897634432220419444700041213722436551937600047987618532562987765140126705539119536969902938457756421571840008781560956213646010606466947476956849420855352447766156963643217347154754733480543366488658442901290478601285768692815407421462193309113940560691724564888723020313945074227930615724828407678811185126738983237153010910809571247701666270184808573701137729767438636834492841190673416690756438448105202857284459533766961921893998457722586625407345468129597495615442945235968282268564728158642751655682211261925902067545232046616850766549100077623713890693246916879044841784235677756433776075540869135529361551895554212206464460673404189724676101508880309932160947339324760930299564318148737625694419620126218554182445353677452780311089158022804342728640319269948532452205691849506794549232190277111243744609944115092192994366904448844090753079298642592354750348463879949939944420357642101152513988560203763002488329714410369164189133781942993405809162621003029546170417100650218823279084405460236997537280177362559962549551531997690917758108640036540981051259655760496572427730822904666750626464148445331489787212086873738863668590145643848523693252268422784069750642352863811491574174575754294603017722843261213900816140487684440059389333342793248729394064464292077945935756364082427194367266322758778274713465491760810528849251351389994699619773780646316502080891028144927764542764326340481654060768115931151375499632686434178352569315036809880094925052024214540429141480095799899100268393650141890003435945985241751799077755652161679043407848308875490070241958319832584471718451859267468929420314559571424904542909310213179946576943558447336211884195834932289963741404575533790635686239270773799439593456288272697203346254742575663235124814375903605077930861825130919465306413526801863928713851618523554719186764434996974507644307474151406811366112758222730270544481673668174660065019314758980641224667557929308430572232329490274562300425562711744441655358419476995581334713908735598948435321049638367203776630690077412645897356316752977328815852751588226467641274402972245739284779718518420764048169545323383302897241416144351546368680482145831101180034297988782631627406260607145153213046432341907786862007138975867109193480600793780218010397174828466903867901908186262853939651647567042154189681638301476201627095189209684525290040305094117571414601358670431251873240928514740915723781105625350241231638609655456173268960400918691548493345514270757748575885481078983980521910637995604009903347070456303453578365006649997222650387808112797249414304927383024278259355361572251917073653067153085120005293326321310417018915308401567676782474994052285887060227265657770897707100373877912322667183771041269033281573973031264160186528608256254765664997008868827634756029478983974394276034134485032529921346874550105269550157563847597968681127556364321224858444751833777979542993958442077691748460122698017744901215193814371158292402974195325276902330539235855432229312047932117162892588438697310942981848907765140810420545528816615710754546617979956043874792161572260500770122967913758167925725675746007060286088146287512819724191276258659384605943102966612442022785157508776359453952126828070577911617558077033536804996678853613268537504356620749327342131455458966353323520304490412328623891139992288181465107001598927185774777823569023298012002561030566552455651712719102035951286348557271976774887121390562520251459588609763151331366216409699916543063284284601873068248667918529928982611402222439367396377958802235812279579505588656217802575034249963823769292803670340754978391695188613619358080913570354439682888306419053922488962922288596834687006263189717784664985761272252375892825442991045942761806292698586290872997849587161407176767682711495265337798656631558389508534638726567440637186961823497856444469452834188321866202424225335468928455861226523008005195808544368437328195923901213680228049416293803555183771758235082957354389749550661631686190346909964117376373109210194092915685797748132750607440206441493043373842208236160281821846271164596822973783720574572223906738818879336867728233689017783154414121178247332313787779133102870350275579662359410278216597522391845356430926929206715888371864097517762620218157224806010277068219304383761186633806306687759149540860735343683110064253510316340416658432506958714582703242737707916552610274614650422620911513571959927267674399421115135107045349945259561377115479710290665226041289585482164188228861271867801885205400415473058760306737151010726349509843562432632363202035790682156672669030002180457109956523866823826997081215880292289707739124787633387399865807000814884679252798337794687995461051956693092205810069303172456377299337783090338326658495955646472861562699088580266656390426308805325997094624470489350821416994667921989767751458313010999570250381846916705753388312664436156428537073960802810435954974870512268283353400087291644158083628448505664358110080256915784877155796345136976314316040076112946137390508021860093341989456191400161323279206546290072637366681530897785390520578548620748359851092584283051949260172903164728585189848940999145684870682053442011310302932748777100740918837776156263807905202660574454413055471015300695320441883578704108953996377256061182959502453968748183031886443772218894503861845920009419070965763642679331228206763561126669696763095282098244203410706810008884450101260353220531070111664333559343628347244594693653154109042530040804955332767681435378485779024656665451070323744714749617499355206823441347940241569495061847979890735734517006362425631428954009353918003064705218396119477359225894144499383819929491884989612156278669245185428051298990716262209601218705366952570228898471090403095336099737207230831790546592350224704300925024336132189611663391052858918406838833369363568794857717299842085788184201955964969818429583965772171478967263678580626941447846236969631501890146493493439373447779936310055058161994293518549915034250999341957450938025317130230150380397722183217051590244734888772227658911870444028201089614001331612792191492423357300642031652026706201630873518301802071820799689118952733427342974548012901080878579529361697908851606894059288542804997094595459138770331704080436710968986458028038420854668157678739601102246915184392883058499674582372752281252051783969122436338395331172839746651317593160048284648734419387633328373128531388302189737565398709380944495260404070216276108421241094652340159686032330198620061306086488596822849347088664583134917899065377740885151795285944659605783136285381823262026082893326294760275755318210605840943487049095998110312576174331957044312748501319122141203055390397566575847390214947463606462549700571873916470911979930179911484829107480592384769916424463235427837957514807377115695838098685048317767130697141710383986990389513028387668108974962358150945406097629402714268746975035181738368301838833449574875509993413181899852873280166611987202285277830483030571511009246461082872399899020122965269457603604487484287353463978160272605979373690977369506904862634095006606542687210317273955168784010353891791237187217658377910727268851090846974133820070780420260707328912300944471007399269930494474503323355965635331638323303080502125550620814420772877392424219425812800344525978694543245323293050031313141550789779218089819058483440810534175571878791634508560706433066144621643505887731616707251168867137618811050671634912959009311883373989922223731076812582399125926110302641526653656122713387222964119345870885440434908464603793234145608732617452919463567201900550845155883018741911187277539408461072596602523118496537567060349582711785521037741622786835140758996523969506480206564052351009537570880865624176172068382986626263702022982414639829847649495843983583483369428219492520333691276876567030920882314181156731895240046680580718392562382657632269871300078193133477756582368059456818532882464486378765652261373692903853630484547504680191074610644401814594599995475161505302944841001266271931336920308769282094550983055997011364223711343238887365192044481847529524708275709684567393079125825554979777236791317493060897913950571640162536234914501780129315746219602086162816956791377365596600390543182407075154130164532141187398356004781716939157809822705508800936785085739454551341135794314196837341226640132734578116664885044841567400074628406191046037435415074556522632603290269701766461303150954253577286083546371478343720462344369295643410551802273259924996530919336614405855609237725075631279774215916133204373466985383389118029880295276900868313377496734094495815339051910146840431503504368590459032272327331627398876102200474123681466316592166843897481150768221712682978613685385910431281621893383034077297789229453297254018342434747279534814220649023192409929562246437244150249770744487240515991281554433873433263459917383478854917622043589146363841697872728234453198984140578971179465178011472072157275292084339188235501794073862297536852754365671947305517325508483449929729960336787952943887565155182589216946631565695564708917122647821850769396406166655843746672721256488329743871640981555777924964933936017757893677143795829944381212508512901401021315365954894773398148643142060497262361477760092605340059772329558428529092275476058803571209630443949088467943849386450604771232117248291659128328244001895607958917456101235452572889940774418941388753862126127918415616705213137980137343019102555442755674597790520991303700441635736421981952950809908776486225575941301659827139794054993504986607282694373326792691198442770486314272259149618752784890506119662055157634399902831219939325251285937623237569733212801602152441220839844554722432255246854237069792933362827465458152520400855024588676720909126405447717516953090240375199785807596458999616169303053118545407906414001374366210810798737008089467684711623830655889340052038697933965373561084888510299774591173872015679663746992860583777354541990267851951471072166904445859591196805372747827354793844797246375760824330407657196629540746788442814834932731002133380681286909451942245490888941401680601725992906464139047669571089277461999926338114310389797813276749827335150066881329577855041551145250104804379533438150416600485354700062180503545555820101568433559535470440945906168016244440448165739508709710575291148450695818240387232756638643802531409352633180802293070046405504504057651700766847995879102996365375029724269274840707883331409196205645567605118220843724614072082943338623436464702205125330542442562036712368480462366274784082934074330495589683300947237126316611231155739631076354773318352423541082879203281822816930517757179327238297006210833269483457691544105139154314036057922256384364813612807541758630989188537062900203418943629834804332535801858726646157602286418880126063928884160097515733612936507085800651125530640963032419949740285601729426939404472360578969130892118627902282625796072775225295321083295999798881102308595955045271571483867833288675495884640667327764077776510893691577369771643621788425885805740006985782986920279516124895906152748804992371324457205644945372285752728352242997037601846347981660387626844407870221246917733451722423869217405198995018565546797605894835933566136715726079110518820417509530883778287430167274154218470682541368068367721642740075973453248897950686878948646938354710661317473093029787715773953111385387976948900565469634944477621937890799510290383371411094797803934080991807900108220951228340828893252928217245498406526265307796225053005497597991716082880792267781610437627091578032344496125238723329476928809392099558206416926462253605705859930842841515810459435222544474160674494633351713604929398552580785482011073408215410858952020459830670961198743021307637859078317062532581267780810979895974143481247365261824184302162617856097115634975792281440380052074698098131819492937059913949945929653787840401464840028303149149457551316619450567199619266624658300228012370312132619886636105950706453854339405913739533185938412144030247271570568286907908356996494829666807104912607590706867763158448215996173228579902897287999329980630101608000281956203927440773251486352796255884827153703081553503534670697459430501318285783511952267314740632402748301518371323025349528653446710209293985536402384789570665581269443658118776340429075457044151578747016684945475144837341148119844914054190403752977302075446974914896941786734473627195558866758696424689944196283739121445342329620649310193554326023772146475762584985292457389736670498488981859958545028046401458590190598498811218496005447605383506133248042265953069487492719448178838787075701309486742873487288916313229189860255363907201230686594072263871496625651334298683371287733397900931183868089784832134663259268067796209915282812087210820159821825834316389860120816679584088524001561497735608265625984360519111471088594997435975015172716534477588134700697746441359271209334625650693084255128748183160897008744253671955567058252009006169852938335273408875196851645183241119648686900000591141185559003207472377308270163318229040862475505415879527262242640857572241558070210341122314531737281501599839007586511133140923477930469921858493653325598797764397241522400535860393742168654426480950009397683612224550560181751285612194893138883996073054673617756772661277630908878288659696178108319404942822453047485561670394074242726656667957913870717226434881604531131257767853063659935803228466547593329778092194291321677956112813319586650060415720768102493105925260188006825759176597939295543160708663600599046069949532003039736069097880271370211366342697163254045561029877275705529588110875179436618455896937632716028593802263510821883069829607650069782590634947785584317077963494330922101177431822861579796489626786455147332611360391613422588321009877009254519662144085128505389802205776175915401228206302698122743449772859737985219435782960518946242812300025710258905915556531315737375565141491075848442884376951192835368500753072887635829517590883962003225156830991134067854217535787571438369906007753226783467828658758106037216973676090658267139709334298957820272325773156475518882841411545501126454801986395565342768573623639295587195512270952977252562905470048278797874246429897511008462806158277972587503024665108261711144831754499714273759632942694880317271458110750171201820455734329245516843841941206780385798821344080603152695732987406565311772479115150983927140491670117222900955836067412805900574848972255690368951299521540948665877524699704652810561309674567222812429406965970773284070517240131070982338388397708510664626411469284152215710371747147599916445323551545670926834992938441962302935761253595716403514444287965758790488245169234434306299555389529436736133553746022198333427554644677340031767519492491386941059491036695648634948794526514849656518930066288773967505608133728747211283885241019128598056687952008452488507208259571937388886553419914430031671747381057830572946074431491771952447508329631246707476980755574322460431264319893801518649875536878154992208661938579930566895947457440319753075606763911625857673991403020420215627135323487696004031021450211998084012539098986882385281687170025389425629888463323300553208302475970726136933563081529255020831201215126513731509671967768525018703011883415229618222218555701672170265663869437322632987986832130115139943127059268249813072749332478419026221246569539765232143349407440033856424917215008872347279430327412815812132946621098626627395212657304801402915060552332065710366545273726906227372615735262568134631509743267325497096121135139306682025384818517499347811971414266343569895653490866568175347407816672412637202443174417130062797754030025998123599113952122881565321716025917439293131793850154223798872893668765206559476074930030573433294954369398589071753672652862440858491959190889425787441108641069597903552849219234816631472150291938381649207747882685264108297577436449810885960124687940657678803533696657115097520736725204664556384587984147148381567853626049698155475202758714944367610614873459114100500529315148215271053278120296490232138341353384990987656768985936301213992224027602257215316776349905595258350959360294075251033410425518018019842378120259042938461904668470391444109036841795371472556829822835498661937895328393841317376621760481355729280627819548009046239383249941433998389128896896395533214071925996936677996592181736406899681185839494228985649011215305384149628345461272895745126649101092127022423298282149404306247673306122706462534648642370665411275145616501613042908388229298325074083640958132935947406779412495322085914999468463073288540610762098266420091411201367025771002157589082619856865412558170123474171805530554567553099412244390403814133142608814790851164199369612880569012785881524928491946174528397593058514190648029991440023230876118356765145353147907032652751098441545773298265803201365421076296410700244425603315397713976192335170562497786769724940699426987006098706761122300997485176097207998332873579563092511796107862392009569661743147951180270081998655372582922229409544469024184691727862566526762131059347552357283317057208411095065940285602143521025903991638186037902015380517553452594299605676696416606848606767886372359201162506169373491836707959777971168811189495408673241690038157961614057240558354224194169931864191898806982561629935807129632427403572990265956139481458801013012331376308940487695024773992336221103163875927208795134923124564625741762500506933287603243624129153172509657679855036594325198581051663897480790799093484355360722674240100441368542178499566038693416521462469159271875040095215970086790902943538225176064305598228861829991013678879477770557801713067614131356405607100015637828129247886586490817089804560903377000589185916295199286795205860675437274827020846893453744379611508882392392250550943807059128462290673015561379883975302413010057300018773484816289646311719901169789027300927254217318290669839104802982567403839254145256501648527251739519288607976630965100255393952430183576078070278827870386616304735431681721167949203696655394705521711555139091697591848094931794800247771719054295363184629967820517202980317929774316344719605400454398013563585870766173750878056521669487289684917229709976901152488357749819856842235182177926947689993023428839733054995343810852356392903152849332914034938787036843749376170584620357144500923355111867142278923018297746321428477955206420618517287627544977048238297114695168390851294278928298413742620370857315864758979667432598705275419241418110853193895322785951664344717773286493076784898360703997427555040947490764769607738840585074404716705980951044210432631377338865873027894845187394143462720957658455941968405477953217962460091256248710651111275366705043938862459460200829995202448960462641186692999934275289548120004749072944978312389823935387701779803672664520211429093366220633288294741935599103844165421280494829978869626304205010275963481168250446570628144091766250482439831570450113073808760771492442361228198134008705741542338847344574254946098721488717081525013989384803331851259620439437786579994745548522490555277349655199651259177594932399002943942720097464744249365118253323228928364544528760973408882915044500445075661866873777816841961200053815372069751198167835289960923083668139861125657823621335997132122633790139464423735189582998661426804886472010224897141923086190730354536083591891967485429927949802364206104855677260415414581750563018254833759214978047810455736100534866181546303257754324681040842177955568830883322740180244033023943049674438820077645645174552570353482321232825444969344277286316058940950412646546447940414570087218121752084959488233552974693513507226743225010126893250453366172588856820879220420774353804797545218701771997562824339577821468192101347865479910129026484644964022490084203874089843885062761804461109232414870097377242499610144073655647368702850644841481492428431461708639009078051026897301814729177959375975171207169661321896976511231020347394997537514328647946211092517519748390540811535801228644725246782014154912664562319358426752122862874640838762826098656910019808678926513650083835437030075359913653168497619806480760671872263803309303123592615176003164513348158298103640329561523348585498096460842688053271454839296895588395871037406723503362065120419614024043164832576696000310288584508093826157563937059709687031980134960193396061050217372103694117702503189463974955552084910316093396432416035502722198059100093582530951175665688552545772883300254404705492933200347773838694471420949909935618369598767135327808946074210350753401861209272583295191962181900290368832510191593554313264132925730320390473609638192528411226506483310924498134235221254125781687603018627797336661614093368818002046688247675671320248171141884557234765605184520495614378212668438286520786017902638348089047563647750233037523935223446664901262969973220985206394414098678830262136567816939106545363808134322387626976252066078563491419210213104834110937839017309484872962690829136540013735886930673024535070173957936916310205440526169380029454154893722401091521420049763268488881400451924332118365802214124645356186017963930805302820902629700461091737990819388024449943717404698772724620006087242465405887797665936131635445750596180168727551205051165437276797379395910096976071452410094190659008601572296802142089472987036169989219740479792755989462512073713951444267040006713981324954176528067580843453133043345393188267170107749073550703348783738895573445046408565178763491751132385727280518052308519458812119066022903904780224098128707852380416448962526014890517069404436172575791541585485747390252825641434964381664676180912967255350806615731976110541979651959938933934465666743179765085824188420489991363430653154282832507617143677187799900022567718199338038564917363760157355550808067165157909492621715239067059904100480438765863164423317239485851422804156295525880284460299876760978910624565874306222051634608958107794264908663404161541556651210175279286657256461706216844173981987846463029243466559323832380254259193525858906346746509266254757216556971557749635465651464526976840082244189207235243939218263261874860495702659524234326374434270455937066867680758832774213431144236799184048157666381189927210143079701542759901631521142501904080442319876368782528620007739775655942712416848545611788126032265785328240158750967751440700661483966537360763539434479816920742441821976033840361071192611304826173011549758896183875820553185657280766985902461534121593414642852891393936425260745573562285761300178796237758319923406753176672616971553413768847572172685879829123232106273232740385515295018667456912973832738373132781701999346499536613766374596747498831635567987696873273260734678288706360147062333918924258327273474259237380205805940546424571886447104414496995903888717309737465275050092867283698098861505563734483801495023446246846210694801858432869394108944904047064549144906866561570710426562357321230544055006052440099583914908406819511729305119695130407923304182352799598930952650839403714503850607801160689510017101200004361208831995098996937416642849646858003188374643030368665918336338314059938128640468162448416745061476843495287972968083797087845354325243807478171831243093959322822542178536953902136108168080673813563340243300496785654648173445272645041105328693328735549648716170047747673145589707711254774968716935265389962658169404955090246384611089230900345496117090012597506690002423325652536436562896124130707623147388741557779402029410376084436732350738318585381951596163426846972043932348972698595319107791636660901282737518440809513929678540596198322337281055079857582014778589918474781393717998683602530660265835746960038360972907704018447923592727277636468596257894558426582152957244094625148700333266215701856555161258296725496534926360244829425957941054576774224000032738977093172315449464255972107905350201292531030676832851782341043954253192784196410374648765626285240646510099166560484851331519762104048655752054368333447512686434620386454819811175637585897630660414547024855936955719644150115600147550904585124902035232795033160438354172730085620529651478930288683976594490828489265380478122034372211855516680979685715328945012872024193317902026075268905672625367948902847669820350017582412682808054649677918232002007889916122298733435742373409227418299009944153790453508012315548171195130503072598756883038119209939256867470651283142846925810387302933592081499192782193216660970049202708504465524427235566415010122280763764654054019740343999673504161974786795182875643617975139535671209994622247978824338436889925575019828515533413264132137276917658290892647030516354361060741408901805751528986678829521548146669649092381396133550041219734388801698113012989319576594335552227394027917916378662059434777334257814347364766615066916988250987744484880104839869629750930417843547644243357688868035853840801985625230304882166573800966224791077083966225844647980603255358880941052998634664573196129425651021265919748731344281445030708695334606697472037943722151575160343169171626861151120065241011937238546437046619578847015210970840941424205904940281846729441299677015970555797866193877742959664116483398907952176373388234977056055693418254552342584966435360458584563426515510587967485912872759521937697578906000743901864740573430358231008321187022625350281330096108884445274072228639341102021172534317440643160040130589068906633642545478807143712874417157786394922984640506553881752397702601250646716712947664489268486383832754962132757590368540203291220280883758923899742541293935039059558680076718680108978004583473407609712990523584749846951001798728899040802185026544009880648889463626242850951414913176700944466731366690169884120785327895316323507141174723287591036790821376117479438390437736693515328401756236971011425983395773609442884414504597231240566432760163913764935384594924448622666052979747303591170562709588091130396254029972274690117466700268147599346892344117536476750339112844368428666965669894894540949281090681252347644513658335558572808871077293308019878619210381200224558438818483648115346689259770934220753653591377654492762458886631065358973246851761096966214200022808329219954965166155495261087435561286649633204802096648610636183445369934444593049714393312316837059859194227268876259553197121401988095548589666066904545341508974927903561801653091816019607365715955791747951124825081109657812190796326547770506411346658218800623091235383087303617464368468222514690039864735804931623272699889576859197548770476689998597165294667269936920537697011819388045881301596698847264852175779332723528422592961075033151655519522984068255106294583931019417940297880319149639564629063513080959670761107433939838238820251870507105509787806822329760457854832399849948461958932201938552444644307001081019444975373704525924567555343586289747653972724310493613058361554454259136324129037199216646712475147159697485738191489435990869883975379056250966062931218305860836327098357207264604872576007156350250190255436138261658715520148304437645299946370523953161459999889833191968587291647944408433281633165705722616052080279010606854145419267321135370427099309119915717684109722330486344937478314433471633114202964416194169014459492593685568359508091076548862540604336780349926321426832332181468054001117201563731220144948136680465558254739050962444788123565514004734191497906215604223444249516235676446634262102562402850369819943675167689926552675181587367393918835703684397204089171060173996063874827141731649283946547589747501974462472998647293105566588664554779257220734813945085698643731177894059051888755200984980452924418593063954249190164960046001420138294643868021869073140547772973583544757861033366498830672064599088520751487181702008754070648194883410073709369163136865274915093745709556725787098818747436377054487178306365371773592722146211642689061214356932450550955664749978128242633824216400701317658775350655707223446023273208823228688682660285528733539394990400471770147833634758241009954468129421214197591751016101935635166047376632729749198068501160481839911662797303472481055539312854247741419628628103412817776497540322148784613379135039484501320361603028290488892189774914900216778199660592649285006619814572884530180291849402644097358803954489291222681308356346168583790681809973909457314741764934508171382673115180091119249219897300935547480644151071985399619766592138284831952528422095731746206651157469007434737891152234526692229432020626369467559260798559235388678963294815358860959078524271947012007761959154044310210348037849076696390523400972939038168071486117653654944503499430069131698649588304284417321454943099358622740772269826490285295342710130358794258051642558985910752127041513315713861884255211426111219281744509608754240516642371282946659903427879376482621251989033895319476127278358967118762601811703955458466865848940258772858914250242827316863369030914257272692611107221388939604168369915743178688602135532106399294018194077491760850061387550301169243386965754726129864105973588422010834546385864333261141947202139291172296546441864062801364700737076436429075711535836701381463087050736321602591046762874133505485429267539084201402088121345839661855170042390717910363831663144252065172926509349195909857049248122654804535515057414087257080111556602282835924420713510805376764082546999293027221807888675823758381776591275312957059386117667761175735171873497811131117434356424979536366172229132095699258132876691772106150712524664760384119796246702877270203120281931510435284921634837022431181033315188174128096590420473631917558731745802505933731949648825268142461497202653407176940753229958490888718529410186050523023410969274272916580784907174940755539395903138139451433354881668266724346815540567793819051589332480652548114542519750175814649886027691375261083412803175256119853879429610799513548637318947997765085230101489203027736693594932008641353035085925017611652837425986061757057052618020959870231137185683902635369729620787845791861950842068018795521744298224326929482358107444650544213547704028961433541404738461650440542042540338605823738467708780631848102830212590230181418181637917583227016488982747675925155925233515566552506883439226005507458809991624537833445227257299414509991482095397428650174119605282320682253008666673645377522078742501231365553935136419768924803786833396160896586212913189914232542052331758588878130186625346106135217978783243106103800880690352046857303901974241837791213427242067086652797981747710710896650765001061101904062599919762151101850350697660043672398083086045273013704701795610559408211591272043110858533296653142857276091454117900150293350771717331290408462207978644221782074331850183958977463647221464570437312580681899503203495644122091913974793347118271520647274307128662965729866444251152670209061582106227844216557172474094313486450607887543346803470037878212897477318741726775831511990245409844064415620792199967930214124143234465971510118776748232322773634317022718508459654110119253127684588931072929975896468529584287443861542332399673658656236395153225348963421891363485145250940591010651288437945505435202938912639690160715125863488378121421618145972380018849410589597042168572592368793081821851483218423704402553419505789410212252792139586371210311402645657635176614946303583829651093249566485259695938868625092722787687491578648113239810891188109123582502045557301809621891832932280488347207963399907435065422849268336954339211712487337906775939675853691403560024921270106031651480153633653409725869305362652890647400687584128134288067405662227100321098607768313618834816406645416775525049134535595009202814432303416336094897183824788580949006419654055314608202350565679792284471465541719244163114233342366528882378704028015807867584959108638266606292509061452754855001781937562252656529945912186084348994993124912306894355633976499590656565681710271386709498523090821319248508498069275790320383080404609402725391628980893792449155854512023369890967696638691330102649929702566572803617471702807604093271158389149985127443128519362377783011456406233572970518104891177026136939104568082853011014972934224558228161554540997292482097121495044182097200159321242334520110017286596270108502507514351862456702962698103702801245581144985283412379373433999151293125472478858059196846316530382398971272075573066655092440148959733864163625088740200167709570876446983487419247162511297632816609995932946457466547557484396863677867731353022810308548860302953363341772037650686183124259352095936687944968581698480866806184500569367232792088156648960484638049620822206284524487157582108745825463154590685961170739486887627765717864878723928539931948993051217978716731085650365168852192060289285130391677854588032713097081948971328236579610890867590399743549609044260518256191934672313216854851012652405277491403526953822243949997369463334489647657426217947903924394362861611129085200816914498515277900537417187124917334893851510592297650148980758999873517663375183814587473509566161340658194266788170783915701814349630683593092559486272822047059297553096002132627857699922961720162104616912608792715161631509877657894234613596107520076362302428307287531146416067731521152009564297995722758309209160658120146144332052257349479076947725181633408455094921186197445133517856743361107077094836045094745691944825984259350114103049127660743765222081696884430154080937601708683101375072899307918353081189562603331262956471649050365023756018140435859968910646422506845042302580769567810329994243520119060391308847683992749024351189159647471000937767401939253480979365541219678338100124681302190433208632375998113020507486634948814520607327867948730026869413324340013211127715087340481832738751691542560711740366744488073704782635967835249400640382571474238673529116284242838767466711424493444097988373869177895818885308946532403145256521494401712725721537824274225022320044794393746332527529690147933010493098220511133166966854640779047217959547217845911386896721263594499399505331084426558460382389213805476382059055583716153779678552803779192310176133794297961912909817544597575661119857690393298309315039689933424311016851979548600735849384354445916412725516416117888845639061427635756210409076048132006568073538185788224847827841403946148145198914815518929527631786107072569773647770025121489439044695300561856845894497862236235897457054427805402204950770254216564180208368125864165754277988554047328525335324164809778667999604600337252729001634494084156732033213559319341058239515865454229331818853837931211633428918201817941599008523974257007324442311965922933037836240820809651598476930856075085072322831179990050526158220862216263897089847033655937052988573372126168132654453755909769038173715692117001082301078696254853677882723561992974095209588730422145928482892273361172583017476581188734691267886708996223621264958400181384991288766605478293834107350489063001463183564771574249511781095668266866113135513857588335125294831119406069899045391917091056698685007727798293426593983120821528817010411810993114271721965039086523426998166500866622618733340789629182063065463045028977602159606711747566120773631853083955415494502720782143716584187536227197153166896514165440273941769480943716729376955385874984329229315786600078173500544951284818755438770106541701928789243173332699873847356948262927658616619064412702293271714381788391177029341909350363598373179168766038735385277429255655856889006306126870875769845212056029593096030519133051521939670838445653683319182450479256160369929081646320822002692986722892166800602086650366614896833906620113473410795127224625386200411451058174526563069413536682067108422425566604057042837164996145747388310025876493961897586000606730643034607708669022516568412079151789872312780842297229863984041953229095930255348625385278930123139330903460918634884745582721856207067582851918145587059991019006111362249222016050030531736484906488166840928459629137302296424451780442544017163656989306844371911271667108720575518740188530122433897574089302736426497861910169465002150646663258993007753167666111606507193676333743727448789772560960151323511157115818216467704466083942593033655059772782526618047726961121613183301908960070163567027164886443503982313235588728597685546874142987387897783022247747834952569266712219845515314471343396145388346041460365607237660257897977268431614961366166807435203010476212327591477496515724018069922147350049839660503554774838049209244319516643251823157670662844514815552045307117220984445713966475515085601593117882558345927590466451578007881183810868190670362031856625350489993801573128876877003333956464703890731396365290944315713029429022301451658810615463585317557963541160077345475048680831250204021671188967286917454135818265968483870355994826005594128913593778450711877092594715696663899680757217989953769978309601774221319039704513920720179514676345488390074469189599969686992351639238324780838909446428695437941460977676804365498862190614273829443986580659796847423994985463801281887020531347621664501374757297125716313258782548275594185880054997016118426456906699054322426414224545742303943221192073552300231258172701857239191241802668023633225894815733482980087533740890915943457689061611770890957393948841910036744127118996320279854903823224745598505576363088765158812609939263704984005972786595154782838624507632515237352321575625529292192192198631977607800207566083059967888288529857129456236832094838914861631222661076909649971390321923948650122939416741301236419124147890087952091478240834102061332702821287312228215515135102206919995034220298451462101482117526938927832767883956647873962365436569783710024165792389006987142146104718614205604973998619475863468446129125217839231869792746488638949517791372210905623436632944992313362378829534182971290283764500933566585885523061006421568215836011162693473096830512607798862915858868871725469260638627433890259042766378305683806201626792870022278015073269084891720696527904264002721789743161713800142777084868364716825985290239746261147608211736823680126199996313085430472163423178353938102948148032266186981052933481718999441492406797091718903580183411678720571818227280647319339720342504255545961617306955434699768693850583955608020730087477989007687235219674951435973504759338392791477816997724495893928822593148653207968544515584854446398826808445879383657206998021164528929492335021731410669074278036867845410719897533717852104103611105928669931229442469239162383544274739596193542309947161408181390799153107060738117119282065321901613805597617037449351688313327391251980184104178971674306359095879269032408305434578411808873101108387588541399178771310246399131109661855924136450767065040240966364741202002786578448641930370928493861866337840503792956502428352881406058846140696005413526618889134678084306203899458964068478188470714811815958115756380091447584251626673161483191050652696938636550570917567322332595161396150326136428154830228744365176018588365742786700770201196287025512080940385017807001947072970173022323355251257708920505821163899691533658141682374632003075774113986707922154579257305984057288031535300215845422542968274156425654563603778709925501075361405215676744125308405373769408070701454047710331206844850667024382836704413475167547048294818024887535151483230639788719302759754291813965663816838755631232046934524654675304233127733028574901746616440706389509318878174811128461875474610493469741241415385569451139539242026755783380078020456451547426156644770182692028716567823517637926206341978272444655752507183457684464276174403561404733524151597376858072309062238938951449427291122815356838832807656822924375658133766461854838224899580477789860964025680682734827855396258679003895100646215080768238949538915691590825906310405484966265507025921128236738361637195814170621336004116135698119862738254428600899007396373212781345842693873600860757931024320531044141729494332153140760021915165811493958754406321845815707001734962050106623733252372615311215271448002739972044007939107718500169624305685249911014335975574913309891123156290168765229061408691096271782574294443712333558508443257058326222964603898518545061776301652528279690578284416969777308712281466656065444232181071638213784791560739098076384873000475371389814173194563152312208633608018243889852328118523619192451889933054470192581814984336802648882925920885633154903640926433819280786959510688992170019550412696493748940291691500455976490720656366175250255819065100439166911093317516716099505420821820168063768827489761563276591174999958928002449376377072769033318994718586237950071286140957162321101324290097845899575475790297924796818237981655798499410170505850361101223847393134408751802923651490599771821470424903619251517002146077976972301779786508521437139294535244217998901462182842775306994965351054005224832680029541529639685389257612177957720910929834717634288293513884106050671538224439285051705206191159707258688446057936494778621747545881818692003281164510015955443680060193610523847873877047552554137744217920759322596652090706445367544948700267195665981423747570122993484802080731814176849292709579357493106945044081222753741022841625882080423444212615482533383140359565778188086309076008681244028108829646353326264653566171723365663572313958284354970984711751606675288475285803671546601607814787227120157737659772326226918740361798887196109213375429221908613344210982316796025443292455238716958181686257432163441590659453889118323020309299470700231049026720095612720074924656124155066686844816676721194316061612997136567068570928687066607860957586769763787361187067113024329543637027966210113814731740457655671150837216003227869855939706548660227210559753661255580178235723231132770675369611844726429427885142491542254648112096053295644768102591609508793747316008258807383705642233136394113157530731629337644607098848054950920154731552430878191349179568563340655395145157034295316429649058642193335960434145184541993254884378286840176766544974232750645840871829883521770977702908776776809982705494194872168395258807392246864496622356192627365542442400638070654098246384273415303160493256642542998871279784120541059985242687422528003616861309892935097451246586081210205463343086693701439103098220652514118057474882199446380894501545837694915566172296008683404716294430043342490286656499483783895095897583601590677785910094429791467199751026204680313092533699443154875634182020325700415835985916921519118425735978483643338296414822780839079187314492004482115531554035252106798600185899252855439112538675702085272577949778657100873383662845957025211718331527141598044966459811952660663744633669365226108025361562123685817911700524620235314417252790255389218392011777734285578151921397817116528683474953545458271638016877758181965137205160851491874109981714929934345691120396317302791445200365676187275991061142411639030347607037861797148532523856046770591604195299253201817396980330314141146308488401593467833567886462982936829564689026226194840967517495117135838998425712068559129251375349682285459336965709127641043393741301752509263887682464012403997250814579861652454204241529245171907933384895762998089764605490958420559774865822069536301345382171946976999723209263093717229664811525343626302636971964773974563676790646003136867486747422280991990589398758122974875090626045982331388997674792980665362163000574345551323925267299748677592629018138451303233759593556179470062003404076380701192528667428165991848045791465550654866872249088261636340383249446932531099495669028757466126546426901978376849497669118912529773802304815016201687906693070701605401894955802172465795223731648114824702075913872917721916168718400535294254648703106742889486001772121842898094761769786988362329811762408863477177264956345304083324403873740155265118628601501776303432274198075347399532492823399730821320811114472334342854093000922919082036434444190543828650844396702402029915027079710140418188485655604563146607955977835947190049619760893340417920221116475969325741046702105993320516668192845442675854390603673393631314210228442822210780268654199447661126587347722792892927574046316305902147744666550975623739452790393044312914019373581968971386570697557949439281871057581082301200437097569093067760557319616652952734162437514022418840536189113387418910064884388098176028680031124510847852709598615744372342060490692712114620759361150393074329491289639316890656684450202385214105520916026600129786587085189196377500756268053671472673546881211640262786383744551182717826148205841140366315458145629523148686446086543615308537646494102947083887864809687721557121309096823362609091942436877485767328580012485440521239525855069242201345963382604693463530217101742608615386303587931668478465488757247320504718251341843074421232366307990797379075648751414555961795270704430325246868105109992407203357869035858128054631566619711203162748697947449248046309808576658580252482317631596400243028290918015522283720907234358784386446783251158523089776400771869961975050077561382013622230429176030906591450694720077961800104262669905952393648039389605699272157103774803733879926404859824460512194175673505091270609137029568951561208032057611861429433975905134353094309687771412629819291860833690614272377602445740626365209986352306487306689649037670204425637521857709225188939804597381146262769415904587814028520376129835474806511174831472165038174497432734817867914308581978672171593197626681763171111509821949336151987017675062159969006163508844456124907336517765038528848711878732942403106558318149573193356859343979383832980354430894726744761801552287674247539632714234489465225031051819486367239448896999000829139672110957560052452078444867337248366880404720270959577615700174495072893196497148666453414627715849621174617401685517370322320744031572377842497340388528697839188515616950225962239432452063822899888443329709879304008497107675438230405165436283873346776668100408121587508730198178035400281054041824033750158493993243845234436289038419906268013584863199955132640442464317360512938673137890362627746563274306578683538889429242289038719995224113761996427777452671365080695511467604415117457216378597477220437577026962795140449872531071794292633047424260594824540783025867122458977348136517393574425600911498250113973680328357565461418410634965491944343605744282032424904326432353988640177230453988996957371441097943481080861148631889834935395302832381791801785203126306326767858269537829853227682362726609233894616666254710655951150166230947519546140540593586053350066073147512958908261049178950201209554253946702324998329436269502462055060723095625893205645862022588986589166392519604074994983356231632569765230682901677156086131973408935941731199349498573188337650126639414613681589941253039258318283839337571516014621441334070006747890972195063522288048683139649539253712212752156179999441549537164133976630636440053706542409063638352164509471081227631572119397677812831292829001822355860570367875566574913872681748904841307023369123342629088232670550904515474832851912680918867850750637577273440215779905901286862360311646611386076333681291601552308175107099019225827912440080216394395121140270202774603704356714222502968401701912885726630843951109099397190557102196752272935660707963698613988864736241077854749795330658104470964263144898287520606520290973567881691519506127999759473089642682287875349309673979161878946387263168131405098003044803735346064213194468409169251310507171737268103689604109552630102674318104970720626997571261388904328805997914233657361343328141690724028495853483448073441154706364706579536970478103090865763459536062767783280423279584621398131093268867770978481329522451670683320450425120498474271166861411795640383195237420686430328019386178136161142778169479423683731259172899059624948734968319007687270650296783804855899889366684264119805589535611058282164313100759608053175313832220139173512589955744381514784999819012430942174218250313561781197510124067933582166603828621386463169395901871187577351427678077392089536602377502655618840650181508771898484808125501594114781961010977591367754319554567518711771054772334632973187150198222647488437127045356516122925167299242505550684878349460784675895877164651041133402293821998001869426739597756802792124247783164221524263888815046331721976885365641087343991286241140058345374607458788655800678077566953753462945599300524061238202839777348743446297721147718487626293950183539392234244395271842853225530806289960001437153226073207571939949968509482149025254089307563748012574305665300638284226216092211982683521022308773819484501850138058526438704891300890068098147312850760474039062222397755192573713711090257240585403320831269464310842430241730457367979950677336093931580367749406178818287177662405065080715033713890137376231568925739659541223409210695184520258385220557297163470607736063970692321030258398125769928292590809258476776488262663567736616504259474654491714229388597353974241454456144993477819392145024771672970820404190348205111108074840576548165650118220161855172879608508193477259684231107118636366026415883796598258516023870718688091012772880308243497074219235183428068341922639004431763117064410848667099815486968576442020744029719725013463064693073306450785181510769272494066268847034638643628901382416893536783399229662380213268036993133731456864004280957888758269896171755287201479420836067737778260866665977432057383671812580539229004441122067847747809656038073024157012759943305904024898400615062535336266139062389875823313290983531402331765544187023881855372609975290527634566403748990547849974411235032026831701543742101991170584235352691186527594935832196875144397416682638292809924932305635383051988373588296905286410426946448687455617424610500790528226195590105854290488834360743391343145364674337648184938528638810303710309288460561981487521718598274399344939797629521997404899114957049719240680947475167376045304007436048343570078354134777055042880816061495219301577821100943809540689010743016382682738574479250175655922682851297345235322630317304285391631314558403321651809590267964999974166451125237589975133213736948124231446041883929048159924312652402899293216312929990006890235193560174859279289486532265363797155893487711429700604123343703993084058017788544226450350972437199736960376705111667492764464798627496955218600478594741185422167078507268521061399692830833653213733137818364802168155160516727376161217594031738142425387393746510671175190527129513271276181635456142962104394315633840129762474652942113837968882044946214703532613424105208432393550079387359578520663436536023556269252865310827531395324256803779592531301232106952757585881863807352019437536832346052911660175537754188959420718692824761222085835867643624422387174015262697253880712252682892880549820738153641135146867426835440792177792051262344893802309959772071202951172666273944466508579366640243079760425249996403562936920578115934670162042167297103043472310671709293028795604060701353273633594540286963069617524325736324572499095346851351391353598468039876372042172688880943734207319264692735829719885279845121920348063904014874908503634502536699641632650891256713490908050281538722650722410545763264222927138470363013141884295213400259809782516113388303023096113169095547096435070383447562613718669626299529600091262695163969873042174067032863160836461325395437213776970328229419979078905374282929716572254655634042469712078674595796272104784617785920873819678296573168603276297772255571700203860686856594675649843359259022351796847029325093528881413412033926028813275771908738624755872771136696390278589014329408461632464644365966877802538728146229670594031753466359399822565886868752712742148137623211087496620622822387055009858921550380333725464364518347019056164214412943203493699480868750439444879090249606861169274939653870883371568883460129604115642084173248824130138831147156053317304625826261442143263673047495349467407715557483865323927367007316093725105868143062769050577517408705241900436382958839421708393317480661851803420682529382902095737002011154771503829533997155479260941175714828721806762684364595824898213723897700784591101709794985602874495168585679630484555814559329197867368150609528063201462770408657775166652274898317157789896947040875174212879062826044455266194681754422219577299662515432972916619642251795567270240870370017732021620365699672239930791670978369338332158016016792800163985254030954928190021177932184349167849633660731036788044943941394353434947462680908450799962303102385139497571222032589908782910598476871154219882948544271927423001729023436988556855576024876080950648574455085215509183013996801570137050392104261639930827012511870798855500151214541031938935493577020048912555366761089083542198197831157620523330018035644706202311643862725795332840700154441643377208082446005862265247009528822982156652009384465490413549495126035983129700910030502588962928757099246873878341155078373584550148471003677386219457484968728239273103176859845560342362647563563118026686151336744347370702677601117384757561105499697346905530630569217357071501738558430225988017502961250040902567153963798081828476498595340799398793926313298018627244443582614118034526434910620199110143554940186477850383303512156338289336615060489573446476521843218373105126986385768030286876696948879950236961443737372133053463253466527761729479660252548917863869224540554897086210367758847718649666362480824294799151081374623368482309431898272852023875996701276326778252898446753590009398885708716231958655166826205479240480480124515629560150445563710552528429064976790939769939782057655747509409650069199471954092478554058804388655441100972188581678310514933016061192075519341585737257321161731742049804690578161020258864942078599195338741108442676564575596397985638949081765613815421779069268771248450424342763910427321815460956716798003285276978722830854435053561464056036744052659852515268817894085367384472137536172932283713087868144208933208093737915273906866799235537039764682594242995781720395836417723682795656179433765974844301311337400125118659955961632390411556366817040875345234779373325884793803510427897024583133127688603298884841482630405154454171926704566559293885387938762420471108769007583952456150628923748962196941336622269448011990155361601754846511493898238422262244268111972292532078149276231070239912989282521292719223203283606153933490808493856268632555513464935851727935122148930768704113223881869531046530853826321013573402098468039704228286143506492581982075607641426770125237844225669078338206721392608276625027886114744681972925774203158627199380524699424422040651807026555837153483675747683641073008055047560615538262463122251379570857126293939262212125681822809129978472949198487289222077016499771421425156734896721279258743947079427463164856560429885146517224984063438904464843383705469674344265379053490539990307873979844628821964257607241194253742430210494680174435948310146763404870983652038535230354994131318525667398184852024255778682668742123318293762207488465156967459628741836024131440454275078659539585793519707687711164485233410044804480241991253664064038684019683490460871520569290655835005071086890085068414446048910391037950865694228169314329807044072606144004696765789022206439153744143848039889003904111421877622691169020137040760408261597374277555642470743042569853061545079289666598340712752457555905016455385747185610357412612525763362596823811864600797916041725636100583159822947167056093251686340425203303085784409358310407820595356963415911143197594612435439304107428893292056541842555655217724603214369200947516547406789153193158005862323103024530147830871202058499990278192923699627190920960915604062802744912525304819882982838542560365669731574245131294008840365728646244528669695687644099323413621895317413895864583668223524588613873199563497366337190481050343022832137594416535641685637237899245063476593910566120245636551607450718160208470054745205999125622673085741900915240402234985223530716072362700522226939182791432195027691411540536801114373033572839714482855999062011745199298755506005885602198253065842444570446403595386979106903406642234125010924540846948201143167994214536946781620280286532718983189366744238603833193655243982220490477519254476688203908604038266608414542772638520172047931878581583970391552209923466485992567618452274044632965049426115500597895122065189931303245379614138695149606670351527281768508536824950728580131655769691983473221248362680436087506825953753075102002629080345417691148004322036447071449112384492011900061105439439046020309682271667295109382117550280879483222344813865245022840872568763775766108943330287596932936239194150328883084779931681656100761989193536539184530119644712262672496462719037121414078528642866482272573910228671363043331881402766721534485454206411766020732174696675240710047600119023599450385543938456509416832795924410199607725238896726815118975752410162675829513966271335358181409642302513090560362326977165870811073563451179643530021013234563335321552322719919711362636850175406884244000013599334333143317885668568382407927167104896823497280266383073793404253453764623634585365932132334157866381827948416620764006023876759283983993686919796737181883242717804078962020073898870820225445916388375555801997202094091955684950625481048603011573514980660962277258818594852994646713156862279208405164744638031036949609715831513576147425407510784984533271792318789820486806684209965348740643880855624288772993755473469355595320879379240414383345695031519648276926692097294686557627247778811981524153058522862835707718101659962774306273808436870946605422251845562980156341832631063792169621584519924225652936476619669269737505971854601025185936088294799954460220051112373961674162967393297049337671927377146984270080663770043311481426123768361834383124759387839339889141198505808228027699707905461839560276945550311633925244021457970018701323185324449497391002505457857993240572470631541910646360599225134241170929916017364284644045492095118722257908138899923975119137903649268414962177281090217137796090470734802963108508469263224839521171972432855244245138563090096126428102243551044768208931659321589585097403353861470147905436273923480899783042815115277873578144273025989749072644123469229649503015731655023399627390769708402853852609327452675041715467153007341066304688223588102227984260830329743617673520041076421730010153823646058782457713617233954126343240001229032027369512674179100718363427259642538290145754446703006444056576446771403631299870956697034047004385217625955722148447547693051182938992911055579851557857633208338924584138649757643289501615976994672754112254218379688586240456776524484833198528152947253112074248140920726666302309867366279142378141784478801772040884763340505999637309360372017700359085664800308341355381228736824806290587335108325370734096032367429793118925916191909820222845202744018276580465997163466104506317728054194929007938133890913436703017014094392937847891491725463365160953079787824007842695521252382219372203861831580093066880642413629120116074598055503809349494795456015242629016433645346473021691813876951505955806788053868341856599025335522459014410903325053389416992836320695334085804632716874477936096076041860942489566654114349842673819252472453091736212424143887175480659392775526412935841652476479533212799183803208143016306044481674054875361619294366524936077182705259616829527708808637014900219180770821117515674822502775074609310276605905262858126685016245142291712580946125157929207605377296443042721650623137526846201589694032535564631975133565858844394559608647901289024386827399651414751008483890689791582325450233238516042044942466364294392950256427890196359073498719914569175036454687647073582770371515063459787057664187703801387227868178240296752982519333992212015435111837979675966546449881772368053747033110517342637366084241725105468828015796535494716798836127440437814980211570503219641592799232002807958667437705862685698212118184816508434366822736227442654668973665176935708338069676220152984271637351694263019835471464756551310935613036814242005201122524121307228098093479513019969263303442030235265841206418970156814725897513784515392127642266750291393147754836148321572459821577205522398811788755118572036392601442466393030581703321129075356993319371458512550701798166275476850412795807151902538765978084626583041038885517794936272948302122165193207052471056568455722149860064858146582208466100361890479308059736623435099801926310404340289365577325673065310962241070364414088134141001907512957589357563541596193000513168714155253588326769967074850759943858187776409914422873665491901645257018780218637590189117847669595999716127986798494490345955706394655710937760230327373938198166259198726432420327410221715604109326731511330912115707084505460085512980211923800510935387358994387775146258438955426083841705482511583080025111991517175693829256074490366159152851065736307547113702660255360855368034740704860664938395018641635235355859434705401837173014224704835164276749985633770345839916846654833567384121111812269292637878036938077643584808641350375961266705345075095997702858752818197057316905104404825124460822612741015512902913121370186312597126406455763391168609076776168951421601056679220028372836916433842627869954218330534152495255622125888654450730365717859495348045562010639592365044958162181977881358761036296835563641260812590962725616778802792125547273099242700946334136694153711419537904895960139414186114340410000709985065811530886629748355253439844953885677643459106585847788564161004289722787504263549218345263781338684540576162234190485871221590857218538697893833446621847756918597032926190727078246776631294934023420744830536038985338974194662132828381654487700615964131979018928629895441959501827159548623276050125875686961732752466339982414717704219490654383710531032666659038174774717218068482293930526541545136324183713954430493753313209149032939140494013780363683543511580760853799292168472831852633986055618481148293166429620014940955472675844491757291021023358388890302364794877982471296195845049919187050716214296265913229168462935512312556757112923063953476341167524118580208956408098768180473128167822129592055006776895707983681106784617223041171508661614780390225885631785268520131972032924363917288352906253445718311040790534188053878628035246487484261647617575029762167263418056962893397141910443565165361725254336195355433424817138665754322309869946280012812306618472878474210733084152014157701415302380430671444933379757063528204195548879001975469554878095061702329943951932389823997846345086942442265710380268057331998143675834161294937158593321917864820678913424446770807761712820084801008066440834805221447694883118034589217299027203246106042945599845311090216223331433270810598887113884240107241725647671666132202009363059365794291687937252937066710414851036016833150102459676553866677507397980517258544963162354700904180279135641868276001730015252711306531460979315819187219789142973803214579460798883227420426384779392830539858178736095126815705330665090061035823879966759046640116806256969490014416275186090260341905727027155051973957175373188566837559247825633701934445509582919047348021922051809269950260754757181589726298970223328157229064062957330859040899791043156181493433134164525661203284309226309680079683865580295020802800240423441579356050449710225050237049472653694564758835009069823646237701606413206816078287625711501055704232046759756333174052709132694162352959488418158686004349671641576274831946826093311916405080686150381691536926936296673380732782754322394715498407327992329784171200092788351196769683250104639979623779150906748739165268776307736865316518973893234842229676346268026439616752148270390786591616195941089510509107442258080397995368304225281444277522747579059709483525400861765684632867515536087153146343049968041408892323783830956605021728459763077279014091762953607570833285296621892190639936451228185934250529105503091656575200753419651322669667719474609954735645218685910615680480740296069870387808741890449993276607320183331591374634945976702975266280697681555061169276612891540333873123333113855149553717061409404394664364370742252741835145950800971808752228999913753854445955314072606534201773122163543203876946549485032706817822960884247846758012629026666971428195859462572083262157660975066447046207476271698126945580284914701401526051437346677009440091028510684090927360697242384475266843486495750956074876637367438778892083308721858854510584340966963395652528964528760382358512969250276419335387136895676852463048246933956098634910513105158845354550172734696708745850729147800099744452408695520534404894556086355060884456569567156571337659868014042508957471588590417548395309015199658528821862766337678853539310513252587310762527142500392206707227252375936742533926520613405111048178677116672204516884577770963434162117575589650929767964698419454857126995211026015953650341586747445925319970324868255201262139013321221525267320949927843125082325753466916220616076465810289044328317992343571873277486666731533595197688309791640922411204673763962533919138106011480597490765086270477299616228911756376409938721260763756542978759390723819726627793928587724627673859912753346554471309028640461895199508541265424102915256455019375266061973485126520322670230619687948889655402151507908894183034981386776321089529205482719511919811506855757973286107766166054535895738045765479518295604840923378715379411163050489709497565195859009667047600578692156825146326997267495512252711734167680973082056484710663565693574324206454922752088899557927938266305015233998132367820227581652653041741983306823841732356475111964776675639018039693178753390871475289962423235214893981267753919340314670034395663471057885864296168132156859569784895026898278749680920922177222311421989826178861710001320697233114275110418043123766973994059284427639918631869185835370477372491372125787812729930944507251213527123354919634353671957664194025503628796121293902222347787154450481150148734345198751361847372153484597207799706748364103110780146449382984965028665669382426040633331726028366074569877156939158123526034361337156453971877859777192676091396227450953741420077435307863560896622910461009588448751295237799361878292675328001716015037861561740949285867837037252323328821135316973382248384066059723651516276949323367290691556810305877338759581924254646393723515502716775869828847779472354789659890256269478753201267368272800628101540107301599389060924727019664799456559624725986336923303784400038034303904245637086012368140077946722821959922862120507967589318228586525688228683720911235103848874765164584024877505747356035290957454526206799014316980998327979004411257476609978854142938389930648682514927967355486174897968626298120062162592120391790434591909324993797074713721498544931333914472776740246263492090532961423348772416750744851213597255894085517249866150978302769649431315498914531792853686726677354601099760074103226558725905247454221271502568220243536206488702444927612436663927565982582534967514312686635498430279014050741140290572420425244022878537738109725082217520967551183902033275830260016123929618551714865201684844422101257938321845346702647617644637189894485191645751520398509855308710919047966404426486845775568317486880159015405203904529103553816801738495371219551685302662698266467118914774667874967421254143193686935100807721280274869780023286251490043119469801693721717439044181438278075063426238191148085739584440245408797314930784804737574930438315129921215434395615949831937673344992069892806554606540699075806208359313838485277077211337828403210414612139682351776819735046166231719424999419477286426044932691975359872442074988575715654358233656603952451547239522195556070871853441195448937795497776616890177436168420744440683907378172707990257827036028200018445047885356631753312667024084794964371334170820457697066702538953519098284060341483605575960645259853976892244505585050262989389564238300271033056704171307433847290520781955802450630370138336141104812637866352781825525316928570422357751388279294296403609489811555086559136107981767446021412089742816690327373375840398801861355192255785824550668120419360526847568914319265343512755001946747235294466745354284955636071221488588861104867322501592801693455051614762183936682281378355758612558984562947067066432472304787987950472711842769384665017358168156621660459784293564778376817895272012009198911108639748057916524803946781824677177371329077070099714218371857003201611218935486398751610931233994607391177040102156160790353750921921684905804780571739435142741221528968196213088435049254423017228470623375169518852449071663892647710123204149512712874967635870868411489386514073264764833259381972519055375828763003470864733935899862913868845193389848119853920500126470858384103220721232746256397704564750138438832137692896664131379080855158685306294409760298776251595627646277910399439092351769300203447526410964556712801357127501292116888924486692335053071277477503038551180682265851970942416448409551883394511716528718138968266489458421311124311336020289707805797186582593106569934506834582293830791303620011371395516251130618679502863775508682956010987258515876926045888753675525963236926830075020219748196468787584813788292321705003168634484714858315340257413093736858346189059883123090527568865601649260412964713552607752482897845794520621968955227526360891160269028951287669584053696829567116795158041088197454695782138207650575282803678735751970796632645619878217012349574531417739378161990227870929900612086794539298505149407401177800517992294603404127974796067601312032458041414642805098138213090225581054997711817995658686146269779322265312542965597148852771332733287041636989681041707544897789565240192669944053003469458017145859051592229869396414051685569101607861157969178611184776124730169807310236565991075673936794071415560859496635673369858900336671886043374118287391449071124834702992403285389834383928943478338540454594518614217593541588001355831797505644237608846984926690889316933192789559016222418041367568596322389234563354699091157472438807113433264175498078824004191555222899538665492508820678214395435774357542159802914867452649314708483439479108175929622991676016457089588851043873428416488917697271012032952744529642583494334517495568317572392014655615042610332947422212846349172958802883769535821065560671939357401951464925388482864891413067966146034607741189752140344521312605600921801414034990332357299378595478400238282829068254065279697995990886880196052237065707010115022599003260587274125591620037055117178356206715057004094786010963334243554320453752580120305865443459891761942947761566006221493749322404012497072082503988779079628725744631977299335751891676868227529690786769002652278147893446989777243349603029847627825917608249537743544690770305983189884332295858213864052156843171579636833320745617204179847989458128859495182688490323308872624169684291202733729062397000581272841651019471004413425136924120079988805417742431937589647689440092161752758576948198113348859452504623886614319286212615259728505441542702764026347126393782542217174643692112587114362566604291483178464115404481947206570814027667745387631790141151488575326154989196579299334040296246727087438956493289670903442474458374916673495852722193903986679384668183415635857320639795291137596738637101620358001604278802286918399205548953834206418277547587690516562229062115745940242166612955023111554724787454894483801999477045550319523339607867447958642084176202180769184310092207783470474037906735393004616452900678042868343702779692854627398128667756956325041319455108141907093916745368409215643610561241503157710375433609590605919054152898028203367702713441847021648763772790777808638613232929739544092231073774579837118044551981022212603743390858763251667232801056512500640651252492615262828557365504812669640445268398707541702378579614951059344422617304017172980606715371248735938620728710770227388459652804895690662594303291776183447517866199656583823326383085008885782379423268896960062429786471959550786880682862742412348462058825680900090353375775125877008311132788835474659396901885557997090647376289646641781321146336524358970956070305293679574914956233411191075117801108129150603479449255934585064979574888430314463429784408238441200846540610558009244435328640159905886160514143533804370853427254821719408197917138807446539452862615574062922010526742856847417580296883520863504992926136453945562575513873728540966353724061410667980454784729819135195636194634225005682890261788163770789692358744331997583407474047009007163384496540712792804042044116078567314876596603906663434940219569115249457536136445153634287887515519534432965161681739106235493676086513331130189097238847134019694502424786022918079978452608841867683537265426440601093618994898425026450238598776098790792674536263353519303562935978302319538625327532402447860250277773725528757409947279740052322495354750685210641071651571453897465252473630201441671319875793898047001351991771129185977167919316707841560744947891533100840298990107186242113380482513206464769856668846489062296425526479131266665967248937457603105178904482195259625124491515601829251304315062676060177097544302744794197128051228118937989309016666618837649945954996710120453764220849527148998956148986182298148345350125518713815332557184234437847528824483093596832355710090788344899621254646190940849265538279011895525956054138751869587085454453939581759051572497353219037689518738252563742369843903130289389935890093913309738490923420582780944625607485178998139053068124118939605544705831311941856709023685478255401268068919605050073555220550722324135609778120912207795733977066900676708454084627388805741257549319952563124843026176691621608014712463486295913386583069557186216680491457612083737395141348475515196559773298913892347902905510345987458607561610709502745740396972255997828903436750973432931957953158118731265506864195585901502440952739907451962465103254328380804926981406445322956347152316026415984549297185679365228150596117372893726404681330100011680476952330868552929480172123268424042419755928939695639643314626572536018098772787505943515322478283976738432516519317108997269538499391305054218097111950672098012308212228266347712609314891751433396618984943328096970382836633242545940777113027313009124419259276634863931321682594428314862939227694990565098902579782018230915803093313442819556753520140469524774834162102593424196619888392886832791393866234045199005322061439968729652090601307499220102100077867779803421109013447063499593462512880407034869661718163414711594358225589862849700292521424134650760471996482300172634466401160917502249139353901468791654533936042363338184507036277448000924385979495836037986751553395394409169163897380568946018660217023459031576817384339886800042642285564147936109086302722389035486508360243815296912168962116311454760559971738410271123111897711093486333023237792092931374877014643706634433841691000859118326889077395922390568576803586976671944120362866805280124341980811287739266003467518661754644058781486051130947359456242651324369021283852818936591491594030339296871476530632559512478748704911036481620167694263681411047215022265289482459554810485108266653289302680602151622327475934128077822823209739390373344131529584539348094565365585887843066290783889043152294977378634371073821495374520794638234454035971126884367350377747368021051138709565005243757106140194956807628979164117691810846256652347686814767001880813058033308983704363740340318928889858258569194000626387819018837431502514940845362143476124838765176679008134446295936146553994764588922539503211643122101915241057242425213033743656311581955368631760768111689659319046771181397525488932343034491145414563806050325637954909331230964105001286626377947124752827024081830292544654534629233229029123170447336365686174465598342812789620922190793401869535593065276192584755581104224880479458234257913987382369785028387631118512200448695547140917712748469225575336718414162484248402544062596007863490968533542956889315312675642760859866652052156062421172083570503044007419409633975700800062324109836144049142934721160285048436128679796034295366536505290394919500584250977178614526587207675354469368348550221174840515509578915207098112668712237128838067788075776580189040822774319147708645157283767637273965095827128950876282427318630805144899626297371654706193584635245421153459355164483322051321761702633903987888747824314875793684118785441672257944689678823187615605219939015266360647802455709067486212687879859409657852984145095481773614884773295739689426840829377077500564269845413502309754451202063017205691751816799252438842335181082469255969493227326475298876665019045508879909688146266451150709950479180597607112294813956965961852657187054533413970702070177784641324430384681289240442451788095142307640642068753768859074754043528554480528555620856566448463482254641075492670516238288144530965627747373642281206640461644888782047470722426271653729236393279248245858564098794576866520672285702600567095777800421461226736394722800273280676513608390849032960068051014050873411236983091764017532326458342902572119019440713359484119193467141885838769944301884111208022033684931465759981009595449553723250184496326674805914672455626084894493307026626326416071825887551772190945126808243410723970512084426369401802868769919362858835116644278444645177769142911698882572594598283250268539644447842621619603194449819652922015000842190123069785251079878576812801080820576332361815024266939860388165834284827458258557410940767917311269608963601625583239288891500786333437796159717480830828195901612823886292683003289861399285053371222572445969394687437838585994301937611037619624479276758763483487274236037414197949983187466573007024372011405904263444056848707053388997271297363239131002829334758726921251093789762833241711093367365221935300042259812968636764529689139080171685716181491460275874355491629277049481529067312868350042529892071683945936429453781567286482686794225469737506985110862480819573610772132028979076389307865195012272521916781055546882430273850826848429829344638542130468784107208752231433540199463547536491673775459544469896647436687181293611492721789608695068374232940757624411344914504163463455365605817405599810601891689561430553837821052434681640296798099487518301329579806060726536193946217893770846687816576022429338092217388374376315995629932221178061941482544670084685436043270358427512497093927547319864035393529159587684489888062380972425897006442628745764575248623526912691832959819785439890986247931983939822519472336129376709361959491040132397751262963180484997001863600902969350753493856836325305209103350299558599360180034558103119456735181404312940613260557707068109448839580255336631267809474481752044660636017874890679726186116987742728904039441401678042364172884397053713528112714845220256277993679374321857085804624230755909462685403339317448345425134712872904572446898359485525498630060537681471893736439828731949898592802230039282664436489608910802413657459213373135753272599067523013442901305639260088944842596664595777633415187615215406896881336320677863501751690014017884879767866048249022383192750425955756737184121819327331391445294285793504446655461779344630765555117751845864342218491794813730340297701496605308699327585533834160626288250754402192192234022637024769996045234396868208382108435017277607057435283502492286076038613118095445340588157512309880123576174195840261767445899960714200238238714351162127868232569198961188278181622663195038242283423347237599334330197791572259410415277378343190020077442376026759915888845260053366980652479412809391205029438215758021999939800578784215612710321721171364006513685057563716597495111388354631510389469407611781563855379682274505351063193004895425509993081728891827314282944573441264478905254106901500652151888952325685239035027469275716872930854982085144443318285019768531084248501064974302367764659627786252448772224219967466672274747269004758807882211745052999649659148147755749384715984438739815753058542534198199142852259357395196988577319029907921937133433577098993059998071230057441041300499118217858782008269517056554881060839773589963667845296448668984623545690086878692205344931083063531885557291308275661102504729208029508858337508557499324561611446197014628652560208418905972181809682212897486633239051612975853980676026422024152717097853675591253822630379150413926142972793585491652762227076860661911870066276258533794100109365074957529953744584515806298087289297926428877208650708208952689199523045411402785600900074980890114016093684790037269508897647230459485265755783233071119312335462947336427527680038483155333757436945309350398991490724014790106887753474902104450332093469773111605824230180680314009492442358662751843397734440075829176010335804596448838223471919655172532585446969770104519276189999429228571215113085573974410042740897997257465643248284425721790817893238057902571672373380552026922567910737644442517728841403503172270626010191723142407514887955778905559312357813149733744024906141569439016915275346984186240750762828988455243929480775287455245184170647127515345106744757664293204495638236513626213892270653374803276079312652051262339408942257962247377068300595133740514538310475343113080987212143335350865138663733269457362210091108857309385644720142226221212035260348062161116010275151018312796365491815120734412972127919168695491358700707511803150853018753004042117262572406417197176515223928048077536389652932701259495126538325032923096201319289987208228416445061480349376719793796716044134346698156026760645709071092188587784441554407685593609384345187776910170580737048996618514571226988096005001201499850682635366112675208474416568875545297842991132454602154229728433147784354478315605276431674460040469752910586829310895621335681030334393080041876960021777634781848578558714805191144135941948164852166286576085432713120328525558533931326127478823303321725614044895823185089380586626662224213005832023915868158392945700344521048113778142498385170161085098650419209418415700855801048828021446214460010551371622005556208866409130155014367129294910408931514433645351903554032664368304450030900429548617527448278818021268184071307906214574551528196721178011112795063631585807443466896312946229839860602100793386084487669954127570095500531655219053465671661856707273678599627148692615819771446905588514214279799030546399973117670575963457404243521213829996137297256403471110369941581729086826572467266638835322111522084718766651411742395180362148422758145207514245616712691606454175956614660352377891070565935691741625778987415695920291576113864572124096182599785691161433566765175471810647903321434788505793615763592253084119231953124311531164535661960487186326187554353436076806915807411205529622136098808756792538812935557469922972588845390661723661382892712976290568159006232306205440531547437716856601075275662344341220168969953138095818286905663457663837498847469009991132819948622540083421023500051050858516337743275098852785608324901071010344956844686729658098481957036969544677255983776337911723402416210648547963502842027945438540519691872510761457892727740830861180591275554869609541236915325980258058492020926061022654214855451256924919125794304387904706398467914000124353265218737319709680161159361134105796286638857212159114227366580384095728335080441317160084561183565632197749136488594709326575577947520093541456392214061648895259755292800003390319988180555035982540783724818015188380803881611027035637157876512930357418610243347154554880152468315854339114931620496238774621968494288011201820628986076905523112046067847693225835360754565401109686613751614460047252656267880983041620279863718288624795474073458498638032183485657018722115507738229628489314363556275658033423171690747442913493695583405261586325676658429268086102716519383176867069587120413841735712546158145907542324049532538793351767185238325608600611950282379884532905080570016413951040703370193260268814664662868538727572539600963007485963753023880034633812857017535041819936032913590896416983097946171339641101888496902539961578354816386050124917254644388538795606473824760227144199905033222754817851311871798673475934776628572878275305487343695730182849045753492233863463724045951660506059077190192642305211528687232891834351452099367716028414511662260289046649256523624871253648469494870188949178055719292228134725222288645044480654366296444507012908582964079899462704446810743739335846207253141458113913135068615631518040354145678072126681355304664967609146391541622127508058875360888358464598723490268318088585326197334337159573581577621269865093769787011216577325233193968083681747005236482671248700973397843770612915189106239178291470144572415425754689337779291867419792805110013928176529862432307221572046797138270673185456541051364447576373181845383303488385407777411314409309131708110404531129231303217847752596620569108305463521869951062905442572035702181759188244952235514521142095264084082210916735610533484479596511687412153993359827512926485199780202091283646510607790523550599268981806620122392854857859529330341010969811870476507696337671071723612768978722133614808461334398728740115344684462479229152458111993699433651565935470767077261187903801205980578797132546687187708239841903585627862790622786596416388673476677283194351941899257486830299813401218982616591839188556916750896702986005986793701308478003413229579864095264340554976701624184806579587393714632243630354483143350947258796514757987436104913319063855593039285533007099969220832967485183557355882497821933473106390920685106387971773300476809264172934363303312553794620578116190233739947939728895934782142581432564348881001408254593255404522155724938107701198192055875524044784499040526748007995060919974722918370683891948041151520429211606696416610306899307423274102295277489391642631036140610599589136511786698485291491498257781084255936035008764472935038810543711183239973480959894752214688719129291849351430006943609247317997652248252405316290435725896425014189206764588731414458100976398272844694726941637475401020209399120557239333899361914082054717748848315207395221519597097385898472554694863432102200181075137727262663016680977010573495126512192461493666099925354582836933553377284502133062716322019924772977335565359406139233866915585318015491849446386439665253421683613764141537257386361703659808768171910403756117761803665650221939644622097929565375889412553874650990218504010206519774954735826675342553972852996572994609438444588012081208737851642905956267038303169447600380591089861164678621009052587023067854897441669909347154571295644634251078674010557985419739731905420785718187974659036636082171851041589246415626226396458265048306645171234626889694683264295619848154724207496742413387392742347710561460884355088870171880174197702119613674872809184666298211047696021584717732614328178789204355571306933813822733084214509681839348522767901523322638811405848948243138093396150818695417488154388836555687701926149248158402079561628571878699034007837641924844123523520874323905864705167459268249436536426136886043598985816815821179926636744018285962065426745585249153797198675212063805031031756166204998963119607065222405239259895228382238607915853419475298305101519378703681713894403449536290872160819939165149872628893310113734056876324908304938852031018037485062460197658360615100037654206231364462325661394926613950972982031143637919037729718522103793280157877060874887589303000129909465373534931437465318022304625612424421164135382327325088451257231821595646492005169246122633145049941156492528885987238069065571770307685656629315069192336851642632035882200798744553177786756189198357996634988888004895815936909592522785922516414486955245957681601156315455695536059403992238974787297052647563771108490617168985859139284846878454452426801637816796120658070645794840414935155921867749392797761755499083338023511641715170963270416760644217658093377413143274190661452489801069730481878449670482479032097460978598409781710148102179215082811279079918420080840092845298459380040721343833750331289798239572945401896582401891915187504850638971335948963252212063701982573513651081737273572772661282264939450306214170294939023973267137796037674491886299626872557683985368079685507542344113024853691671763437779231771805992480277650994461947514041368468550774571731913098585976069130882251293542975618168415439154169187440231150487889754508621665370370793051843282029140957954243968368632566060759881122798031319230157620492601223494221311999121528881933150637539704920037791241011392368203156126693968291156256073641390259524440598485937429139239281964080513475094457256455835992673470474275234001328422222771895696009800543887903650437824467768835722016801594733795353488650238420657720850433740004650871968790072263303011220370612575041368630649437600135072933602341108850172864175491850450208226665946274803823273463242143643588773027866188358629526602711261306313711094574973276693236318154564954829419288481773161781556097615755999485565595352075510399832807518540186342259874359043172897114862784877238122541846942761625344017597381878190429318960194369916115337320028638057292754591097986767908312161274064543447269003033727234395196982957492240775373310594657860202835363388718394656304232252596406627010537507179755772585128286760779732898801299666341581882262598611645242601616380973163910082116685362163523104246271986249733833175307444531421355011650570762373326386106102128621773349950980462584006495556652094853472067492931669122381579368930222761330133343161980490650873401885907041257466327771453818310036749745455561655972194744975902685270024080632621296036426165687889197256561988642913150320706715172319419928746679319600661415972715036126712096834900636554170695957865480098391458547443139479607143382815223271983911712713633502773168950673330832796867927551043098563926962590575461641369582109067072494466615636034997875177573799715700598790081175389279985066988768085318457456181259025639330548034550840354213302157956105838715963550807444188839111875270532282666034806551934763892791667834766980746359591447494598713491307578222063338334486839199242297568808105979732216962293562378641221877801105121565832481006145355004884872697507552154092253369571303759581678170537016341304016859703587750283021874253520543946035400202265775228340857588511333874661844308411440875372896337576828293914939105443262571495668503358260539260672680174626250102633253052129343369474474663398342687058134244631977220801911940416079153508324129792990638100251325679574666197172588146762883779055482540691592428174686229338406702565260776081642690567165562209392356495622047179826672801000698152008171175338930240217809000777309964379418384026964443720931967257925705927093516417724244234110349260290182740361666678103495865134070372051533562614619566117166133668892976518641703422880562557400971214817840586719732638544348357656728568193051999414656084693194361984508521183705785629530992287072278164433341938813676968815932918153636614920936118768342824278443875195037380741442686211206223409419684149764044893631852185761669870286178178668108585121679963152610600969316342265989427057547033335259845817034487691950742448257901900167690275784290502102491216266151507576062172757979133032669795206719927392011073645744680529135704135889485583962692586378191736107527603300823999268011917276617886596088581726653824182526689141089623963558483926742536727439297057173219680836720995679805584809747842058022460230492347227378354158192193647866964455386308321166883191836394342798952599952058724250130926575793705769209421011920280110462229410110737272564780897257208188596287489119643950165767428353706348292934935356051208719375257656197046119194430877883352327193280764927568998996703445127091725173750076633694116790043972622901639192862372756443311722772072959244919567234381993582669182171811677474890085380183589472559684468299774495111947408386882459471333286627904671491165286975877212295671189037347897671082465257004527772796063513289268914057841975196044614632177344262309495168024334930743524478019692173506489254601340564291833662754111756091159720628364205658074895271375857672329966404592468191275259710514615076446446884749600663691386835882921045703445727706183065707244150417726626132243955449770472505497591448879100436470187112362675090952959375667736537246743961312493369268781664075870828110834104039059441144370406779975623888116556591397589229402068819015788894959835019352002836916266395713821327055525453926904080695879163164882181607553174304864035596858668189735297377294708000959767430150015425529892652411911355238531101645839521633179241404850479709693575781347429779524860538429415006319621759864037650315773751737850276728744577524168496647443797581453654163086370436994470609146382576158409702227561345017867610832766119145126036381042005704705574887256928930640060215994021522845485818968251026714109796480432090488376513166278729714963783078954345880098422017876747505517661730628954992694424689447786904091073845012637200350468685202990121771296016585645660565830972671116658421282606921705297734196149125483231497576744468806594290145238096066080261675429870790164771318078307413894210734754735165445438257882739751004605380209534131079140545679348972667299567838670540894794487522369901489209073305872331443788252863302903677932978307020897156736038411167490219659820164853289774327125413397629805250427584648489989322908670324054021841753824827969844943875602518654406939403980704044136983285581087550846648109763562372997559243456194141267584832481065028879725431338517421192744447179848143819399616205856525867695717426908603026469277030402380745747056196261047371642927922179289211598169313971671031549351316195362594013926534053305184419210631935524069923405568899991340582069037985163669503675962766625987393234053282816160188862940111895375179812015111682753613384318215433043952833081647102331804303076931548743878406613460432330531293811393077266668238904246241953574280090022358154504606242610107660561141232984750616873861072679769189742423813359668267423002797841131221255082943786124912116509050183954652448927398094854541950407881514235441924886079594795319917946478310897136599340882711612225358750415167308736099980677122548841797811157465893631775183281213412678000847010341632459650551041383582773557821898857779040479175528665150873434058158958352263745242983864560245630357622838965776757864989238294496807105335320496628235221412355447321701191892475882900746100294447895677800556543721077417397617805656124768631483590199972562505519854933685588660612131718622124120204555641929370584033818265284867928478014265196461520750362029000186546016651539854650743341807773450712700992301293843005941752454242717760963387668153251303379443580570411183182485462918242374966363684866284793487949914701655722403720783244375023171439035290060060055230021216483695366555161174050547406707604744405733600468345425481854689115438431879958493147305894401712497908958929561646627901048619247668200156957902112144453663696636824755979389903623546247911300832178809035193405027778615459213218566954000605255643212456112245923462720597782740987516317143993626342321210837023842371839754994622160697767387304849602944571979256383198553101114590239882185138924377989522914256078376450124194322672585607969757376109374548031094763151726588232109355540248655600245473468924892000844895518075004111505418137893086153827775061880142180496193107749111105841746809861151721208189908294673295754436808668075943706104945037728233207825961173115307134908453923491844561710717964579388500592197063612254631904402819072221111968365771802303811259764524002958742737270690555293837385811470983664398303645025959615722637113399115586137549672776680312254218329217453887141817445376451858569153618896485136134514874636898265088630837711030556596255545468982043967659877047751011653050817961758772437395019904830202749259405606389164762950557189386137430379283630781129150543732395308207345583410042727362547423073559446653210039703209803163850137872014772141189119580726890528244122477067663532718732633000786923250772922199465745577412935945368284792377562788729391783893506126035232636924418642678709223316735917584524772898878085067841261415245529394037510845172880860947647989765420327037689703112650798197230339115210970605223578402050071228043035688142573275069864421295668837629962927154028202860156312966643136327850939110316858671073504140836551006124100665998409041907842580647361697170828126868056478766051251472759268360276502156942220867252415556278818326071287125826364693148789729515930792609833429104865081612143565838888017659559295007778809192670504065955583418253422298117343921296834932935766131459973702242003893403976060033075186759962684842448719177005988930864703542480277078938008222938795631755915992064360378603696776391108756940069830577502454360251223026552715160086459005152355785469424006568368282398671629680294355714160114452439773840742704179504100697764487977719948232830399342885779815408637274792173818729029788049814511746591091181910878914076043139875986464795750275668371965379101893605420458454622775708206252246491867739570455285940697448282005780915352806594916859795676738666525247024948690834883856105751274569127236198436999509986313268378574184156954402047231271845126138690784318811793853891699961821514853603649263359699962240968192645481974187826912090888357096478818512041600136216379192572963302198948743517298610442873623045559708764469249061226262922626799979648233958852968425072222576906713502743343354235127986081609290534511314045792828329402505865558074197737406433062969447354891522214852745070354543042932546117568196992786018836522152188779742343429039521981144541616082924133307073850417884082713733841608752676026316844614829029208470567528312948733008158248316193880530305318114475504524682852146554622168913118754732881905308183633885009277532417922115545014253343466431770729393649055324916558104822031228861593568363714732423189640928393441038138133395563782355462145200877462615790105382055486669098985573263809353329279056746850844984407293281081419350425346752917418880658673653742482715475645228839835544364264953344274153367689002138226311124999368462021366546118078013512843420787080881042096029816845804509502804570538147898822784589740342854740201262578809184616610644842082523213295128983782245904732853603797002328778649473537730462277086879563137609643383675306224658711350791666286275742470603789914017459381425838537115146969617898091084444278849517857276867632932901363640631143095943651890004302570046649663707270051661196206920561605114775192224290398892486691445479151061157301186809928949426981095928093918919046828236177123308081671981436522667679041885290743267299517749194092135101038265843288151663900351707005929584525902660604656147352714080349280177872961201267282924165885445191238714977981937195069332397559936701161073031831656262865774441776801206896491810234349260167464543762874789225172808055823095642568684911219807506739336965112212522394093472164324984390636030962639455979891079500420110720854690932281800368579325995711487633664031228840946200193326147908158781526166028043114807497129642271060569012837834112836597871076854461833161307908536569626923029894672076336689943867864737713303588244081562141046862011892834431545639298777452716197680182946432829686861212672393989872856499930201403728746155801330575957827089233024083337684613393992064571784163173275953623515645075451428692477686041063390227217424454226048408052098605404446985013908021787003334275460105516064676453790168926448461247705840777011057199527433442241703458020571785276833589975409530781883180974905029689294052233883487196667669514876656840251965558014033695790859835123867730651072810619480622394728641347094744033972302549380793027175408412652682740113718872357034858295280110275739457333129274985959815078119994573095109525829958517252450908528015182706617493546792376674334620652340984600901474432743597034038242544093857259375901805631788776209642888675906374930366860996831546433219473763175466834741419840509715982955790434681859705317796150758062588785380238503646128540026657342447549393086660043369585543033840642408922060169515319403354288349321138108839634817577733187858602828856861543111129683859425508498065709546317669186451149163131653083703403441717733932638712975106618931214637954850172775383244864920171817985827957117902909240306503539188337926005223843492582190824984973075096376852624170735192717129496059970882194877305676613445822000361588931350818112866038526268158904987894942145322557932254618403246612980870541548204639574991435216819821110324118489578416983696580287021019560392798538008744931148825620038283976817381957462540931904162088230914428599152046490594983219510814848344741937064491834957059540017111484465655750217325887088680944512084002363563329995148096862292249134114876496789494325243842323799279282720886064937610416787826151253187262102856097602475341420590719515931936530437182698668299061996320680770159390915620762767835517768629285415766337415872264419720605481893127057130479506137587903442524847469937473809507193925526361065173058887276636382570934513465814038964533296898545296297138510224474101467605870180202448501201449377057314229529761710671037812796285200659176492580407706384967780003679513648176319967824983818805125565868405573356857557258448707187423608954482362573847671984702886218598526452913730881698389196232597881106230675273769233104793938447436498579941313075475556257263904712230685012998821169084454297970161536708425615808966302055300946539508715305753903783249276048236099517096336896892062797334632921172573861386608779321202080608118798350384006408467491283421107510402184606026017140311364357855277586441066487794610628790732188685046660179906900952890386833703227894744862923738983898937533484802696193017398859530225019322530390799345671949245185372645195195588062783490018880209627731866571487676975743339556350868683022299961274779949927243984868473771720565892197353663413119940793696668065206310936694394193697508495548523889194979872017243237992265766249050661517102575480146893880624068909360005109004770327188667828582327699088907636836289959746230018906536369889786586336986393559869856225518883235482278777075920497536489259126962878396464779016047717608674719525980263375440298115008457175892289555404803366814202057320924119003049542090950295625559134973512304807999065577107340145569282576073503319977807440089234781213164879167000093673414229974096016687072062398999719576499549062157428497541974064257565644796576749443718470770721092276677254140598150794934414405793429361272321674722647705658404687138343171738989901066535949421186117216188062681059508995052206711859661611269244257114062540285319722473712958793840217550249101416143177432523440697001313889536161330745067663567963822141605219031416940125009975502203572028099928745174041631296715267974156486485198201348034226889679199857856324641336772396231624733571390719224718628655387340297133731814506703727484570098541061139825890071261476760679893544218067097467141956683213154386485898766604063167366242394319919574494505545015902963399986232109866602368396269643091091918634070337915346583893190749086655147128514838551761427602578735019591489552023804879237696267492474746846824893763406238666259241069871636649266517347112520537204666086810878325869355826066387571709251968071017250853508135239625439756226929706534300618543343295856160816999238131397999809846381425772581556423936536643030982882314760129202006912402670589064482137720581648159995896531921607976303933330487277114415702532044820464474244572796652030287899381838307009452619327865309232769552886834499171332821692904436640310065164948258135072237583661705907434250665830646108267981070826456242867322030749940250012039428466776852576013483208904153403507888609759802851760012389175710634035078118795698665153552752762470028320643531503226321817598807708997062184526326694671272897006105289837975595469880291285451264517410779199711090949145607730062127119330151235653634028774482560765347173932600082848324265782171448319812147869701686900645165494392655495319181165879274097513624443034734788575798485623374206584406914798634972544607512907563900910775115429751923031139423717627671185437916593371059486816025821405481126378947399390564860823356052011519167510215534944964664118769417815778366444517194888719084315173594194657759909153358091694925330174989857469745129078728799360607877883185659645464515511717386641675570330654880324427131859246304351170175186435365131659122736139695584088594215980114529103564311036166616092081427867682813835920339003058430099811215130494909040061430601979878289632426485903366296096319391084655498307493091811061413794378214940327621337882148411342630720822803141489303674712742852901663833347992671192599718514598416170677097714143520685816093816009034445503557958079467319268936401352458294148684198356973903947246462104834327196119496152135830705893544962547308488916627099764208031589580740359898167870056379275063144311489247093059379397357312115287696243274341417707010739126278339794350483128818017913255859450281062393554044614583913278060118953999032761001725047855833420301997498652130409734631526972839454950110718286740428614473177266928363794163896964060496356348961198892009424434200013835368789993830336600415090569847229295648751402613317355027899966294855763606268984708894412250323767686858282091906057174156292533595107017877884783498756702309970238559377362796106973707300764386760820598650537989347407509259940747243122082819744310050527733977648307023117308472213851768418481128513596324559435102118244549530586352532748705251514070490859162239385529049867278453623755841921269642065425421932048100442360669126377890610683256980703575117272249817151974226752171928445734858700681630445832063363817670927016496698886579501775576998969840442901173855779024284886141507696845201855815003051341046113787670511697438822216881999552140249710243555909422010464818962086723171757473191685001921573652795632268331864735865951004520894246468417193265487689937415541278149394295341584386348513860625257674192959893064938071229152934026952748728009848648777186958244546717748697430594038339191249167522225198791804953734334165824850790642601639078669096279252494023440428978260173894046559559238363941775160686809082735124108334768056027409579101384842703166314841638958419681341927786371557570381382721085906216220570148934562492712329864199272919626415556155488059986459407854914794699972847806114917706659455523231051377805309961306180565846842904409446426199876901351393936523403345290727939525944656433475033411457302500131758037756930217440421220227540370380320584989493331400372906536629182356955706189707144504674427330426553919264494003575938426330387228064078876031606928651581858112565926256412979962774421746457451273458281356275911180511091832499610960734080596316763687901052094881827073045935539410437520621417870496297529602999388831198829621832753588701608835498155093200179346027904255914628671155588697102674832217384683316312705380436567379965904908601245326555880771552515300726313968646341670923523111767910373696194407476732748327857780113432866601076252673545456868387690372036291447832251837061499885093911980208743744815443924428624183014102075830145811692785853208015630691988568745412663231755960564337259480422220484901344978806252086800243000531806544914515275972280490036274489304069064556686621390318061673823605505723519614277536809394305189585567431350756644105998997067932680105533417889258785234568126287432645712286399820953317139037291513165936355656493750132784880658320384121161124912431576754264741943821410244401120795456428047230469649401821625470125885278575309377482728461375260331557240592728164273866453212317042317165610258863962656575728468088698291353746834809370305275154289502170139418309985655511772525547302562555729809944073682960629628053139283777737668206400056608987115925360277096638352366315614493611360234569909067520243472014751420390323469447767689785800805870147629386438989441502369499802369692951872774445610454549517749798976880564807799092770635635671880594647531373028389382185968170160160937035525187181205538093860515252706408285103742086489030573941137856055953468913838259712580803361990214482700309080369223973103553756020698414274748620193596632339269523457116736827304153011638568584091139485364851125956820387484099655226862656985793939215200259772960198751541000761014565290385422034870785666503924671324018594879052024161050115846251260205938364243622023263136862616997463940453214861591661037404128829144019341870848270270360777798741331591985449082274398310685253828713257072447127215494487499161017762405237450843519531663078934404501677958468470296308085371256384669506580503275020085757745649675904859581534201415076369974255108235429338561971018990604958971642119192235281649461453044928972102441639811195055942822473472706621675613316418862660934918816003643963474326636913550496695706002251659287667168711796742385788733057494708927598028273453916444761888211559458147124177112574454952000274509024364585697721136265640315954568413087537150268637697822557267377159010428634269553517310665118540674010400418691086103935693736398360549099915178220090039002896833799026576870034491380544633155071413734128786462885066474893944275042892822572782953254738390128305517047405198032098876138727152211871651580081497054642643524240259991279905311295751297151543435523985793122301620028913733764122399370429205366535946299381289200779725800599719707855524169472955088622887558402941033376773679278513359609416499976548680842603668178314226354292963106901186155656228477911920547632523983201761921518319234141721298315465366455115730010081675162042161080771020533270781973447952735087478408941483746186260606726369911569498734739515414202709499825797706078932880308366040873890859557782440003577144674357338831107864036424314764652296801774146187337664331853015022024660806536397995025126404364701919475578955970058466164954060661940344003172484051306707288563535948506729371453588529717520557791009234030473850540738443346495630143192538801586746626162713507567207477484942776759808554390551104837989468992164898444144331927249103976852742193902867773329331670551293618305591587156895295524404289025674938607308298263809370169153375617221233065350149762630420301930737857805645573222212438925638967770475177205715773997404684066962949815720317672462154084707672145521073526737194509043505093648261846802653161975732428390706803201792337452929206849404666818451422520769599425252812347239204915822815492290309781664367277305375764014448754846765684317718170300947606293352427433786602439649840221437532463172031277342119579436688937860719203798235739233512451378982201616113386097810196248387163712750703036513666434216207613916979781782927413502883367178721330306827031830796303985196573663871843032555622094398594904913028733163821730566871154775827076357062789318728504267107967307610747710846945791854080953872231915041810802158640320906058331670517500220445908829314637244401005691808009272169360495904712079697759508537603679572252454051108167599944388890024021167235242104824186602735481558201874040708864618318477088340341561609056631595132827263000281456652808820860299852759580264378536184377088935227425558571470622260495802325021121286171187581819040644045198743477619513261131246526910341636608204012404860603417352445499954037869996322773427616820999458225177220368499355051163269734240689881912119168275506670280794922679044402417506345042686522573007370583464509193802143472597413148603682261100198177720070911854910288360493471885460033818841463478710561602760712267746283800859177863172212833028464144976146001905673754344224352866102644275645182512868741136783782218658742128461222665294163694111268632825293271328991025624498512209383518365334947936078653873557720343416689947263161848957601081101135615104325944054144368841018979724404548962260745233497677931587100648876893466271956334005326208739582690323515336959302366631896914717510906617006043921363632679759917144520722729272645147868900165029146843215364669536227571103927386454486996201353652692287991200385203995431709154659019554925002970967381125956482209466422169058415417312241213147743256014419553031317761748755483947476072744488432528273741034410256382860612147810407645764377905594460378316138057682774086267049000906081176895674776318449260902622721304703807075501184481228983364481224517185445525848143454351409358907627187739297871372205781604647212477540810393695587573890166667301712126753928350029965069705692853940951068345820434396661082927069267363209226682450806288816558410133056617431159024834059434931517984472077992026061505679454321802344222826487853193677228275384598395517048606675628680828806100934396620320247762479345679427352416823441947419877571319771364610851822331331193278227497144344977211540559634226016438064622615976809407263958743233999411795565492298956681033873131809824881105937051371837878149775107532064737028559179585598481702052117281849537176989385337578553287154917437924961760982395974786830639687349401567348302999004003971399560881144895515466824963317090620655522580214573346035018181382507252425312530719076534082528256923439969598491694784616533249782327985181265796172888244126217382198638238829185992662348348538704140481786054264255237495578808877240176226713888425050099227735952818008737960163563360448618237433492001164930426552129597168406869860120030531760986339420918719220987230964951969279273599545990637948613704857733016937095339173291533915578607843378398719122326443289212689704756112521533746815634155224096877232302118135275846810932118449025564009034096957171207602986130559023509620584624812041244501462093589955496690696488085657056086375538075285740115883311954973985542629206863653149390798705075856286995972639071432585640510981117442292755082361133091720841249907474993188735472418250931765705493637410300073661657532979413333086954093970116262820008207453685053237244794935752200766670338114257078331068725495327327967624392682978989267040692895224391144635381139081099133981629750904659717789104260226134015028329306212903477530104675307900772858835466179076317653215000348141332947691119739694127805702428688181366245510442018210197672327987984259615665869129654350553699356331288022249106699278629713898748020616106406607593706707741503708355160714427410642769846459573980024811569070624571796488869856406371742325477271662038403612121570234420687177414007203416138031282171764973242578152755624384766494754974845692550330599291807032289596023454113832176202787927885515880531524323585253724105756252992218862101075489016367055664263159109927513549658873735213035575066831581017234817429682662241146022665491476667503747522905343517497013011185519637616926351905885247722391204442190850341829857730699272028657932154735015904731017622337131926779243796299276077473042493057703988028219876465275873240363112230077196712399066606876216417313649459016298412270851977116457685068172163402217138366236657971471107135271487928592232558082860169375054093084988591119038993892525374003017872225594409132523512858527139403051282250754981127769175664718190152380756649005946284719650945886024164057588078892269456853812354284842253310592899011941475189951722747794221526225566897681645855336580493073342918769513075653125320021060002311036787963045846086753271899797457177899818979329096069112789343869573107833324667024175581843961003245100631353163445813644941827914043232720159070184585567739450594906244469946627582383383018272237342868304966548961266472697764516066263337641242686535200312760377110186453260523922486882941605415485001239237004752077384920482333427732636344634972383146972970116892349808820007603997117056649062092269861453868321492018492095360110387994290158456007013047500939309172263208914613823033794615503166053155838234830904647853452099737128872232290116549910051029412185268073308587755990070628067638515203136311147057057951244293704351119676322710496861415718328927936249865966177203202858427449749416696140561344279876208801642974829141822374765514231624599606183858085570104144680126570404767266465026861955668182459459181155763435666670202750743494182537925206499909327677135649403653195236310330679173989065832058369499412195178202225207547278128554000470683286897338310854134189498656562676987113490298148499357221623141689548223653300771383436599407873250625685128814069551367005867552448192663452851155893203081341464310495472198697255040897162587831228518257984288106817896795574140640109450404253801408987804637661123319476099425457025878506846764933066101838343871822363759961756812461068712499203092909048737603361252750361703010395988222138320464695111532669822305537667742111429479949407833298793573259335598417921060911184398924522361893087550407228238048054328462854811772869871355650679868314545376980910330967992856477041371605531234671523839385813135306107603388198017967057355729845398468456866824369440398347392658214447991382069986511391177398647095395696247477063710451893215344138775331506148051962054848875465266247307952094999406918307425915419034801361618644680647330933551864380012253920459276747781553600220709076225100045335417773025154929760166084771640919054640382285072121522802482175172256421120492014319438163579030536809945315335612449614398085213475137322334555803568211876357343117331894390814481381825963585682198207247072117895901467572002959985683891050104335925507656495247914924449615540233848674133148298957953745629455482847225237385141008772866343429584469739606025393914294493004809689322827133381790939442046602175391373579821278196210971007998620284950835405582216787874970236288160974959077305668124187689183454408978322835425140827545601823722324342112480642310493112674101194116844194100011222454482273659199823321200354693032830140651039577503372219457412330245513238771706829161188776850629353102544065892013030855281163317006401609385142697857986804177919946746496952754700526585232159374343844914007756236451509906115039416636007903866245918148341265196755229348409249683509946895482811102898458788402533134657688670070099914774238456362695841183432425082961475104549187539127122172949709413146010281266472856163536530445427675552244791772522940707536849001443945578662651889164406214331881096906824039368535322404865010192106421512276178489003415329277534946865915384175751602488276729764777832802830204125524251720414127420573333041237382327456731463948925410042083799670034488539013254396852884315729199307511687017883741920787059323209059364251650530918934356675415024384399998009290559752590751008704899433762405869745770283973000472745147948702006307683984946477308728987447568739772752462572461248857630079537618037432664541050232086936406455310054083892208464155314283078265115759418072129232087568757823657526658698681133410007388966594781137480267145208812759913439900222475421923262742505950731655708667278844376380200376177047231940585327185688370663522863094999824972010751293963644632305937159440257061396429211613685774651565665792343081748890508631065577484462229021342618408061980600475660295169634617771510791867783619271862445809428825794327197940181616185210266379263361554430423628542945761958182936249333975230995090475600879467657768770288411767675223561860328161455997335873991809159332320866715380198738718299049728994221591097755815252016149689201121126721863331091287476690056538610674686689459333325147037262471979190208222165378750197643998591389518758099072875697713211751692818426684619958773284062691598769099443445293254362609423097978870792782923791075694760163444978895496501335537923937837391070400569780520784160688072654575176490970363892769251881770537565878049282387475738611689808214916483628829929560503405161269291546402075971195786106039008649639915301686564743323923925793916025545233823746707038457509651759448638187334842543429769902734220068812240763348028205289955670426026117846835326449892849241087416968475268179746198309060376926534833048487397890620946474218133967191981698866580625545870283021413045146627129190265468136893310051784284482345264696461147063779446306078489167166908536440555865069981303018700477776359585059241184826928910306273174025821716139069063791542642593565189082591841839176220753384691014870322115993943260904344597757446899524476956176991642831207520465483310917191968967576195445049654809243936207951740400345473404582767198839915702341287753757132281974574522463689629238504076441631593084346165264221365231729679873576813217215669681329675335004465461900249103895928909411411416294355277795187020068237379796231748004554023095155939646706226835746658753644036136653552991821011223171684915653661362097927990510003229176523449702979649974681022322805947017018080258207635140648806860579387779827630916663864171245340939199642197484195468371288829091256291965034296825889082254194172177935385108999559449920033258768484441203503968753938903400681481113923743683439393709408326222018649780022282138510992925211144285029273334237720757035044702352458549230314888757186168676648110005969685672995393499631120708548002863194639556543027595114884081541379607749108517027324491372600231750175794966813395141025908419727803867573722527802161328298838363174654819898258692036029775794747338633292049846970453036699014931452883388925963823948843548095205108045453784669892638467269279332878359257673328203884308266690677858437856074894084745880141698469321236253775145151693569223617882373086926807721439976885376358887265580153186388428455205760098376785254818034326830168973406695574760154812884822532155297703841729246611184828086265644425338705656902468103103872377775850353058694140035782507982704965858311535943032571027979320267292611067697111764548286262851072878149853445894900938720880361564586385480124479533594980069654493166632728691155801577600947374249029834279399991846945855375013211671992354916199259316884948235876334093442164195909806585594052935433104685315482691990744038938900560918185383374328419564657122884714643948487949150990514775049774336101405489333787415535875914222075948645024475522590307072134349637650772428663937724913687478216056623097786667072950730433900415245967838788311938757151291075100057112881064236702739111081884252522010625216990111111095694955202697951031481036271893332427434521827036897938198779914690534692066568586619577408799157445203471440645270298817904087018353395576616090034470626245791849072017739942270705930432408802061729328201489223624440091025961492188817276595750732847646674849603088520424130753579295892202310529388449355766598322091158522013595298636484698842078467292450860012485009021972302463270073697540327466667943147533933983276515592229740970720018566645764670989229008741179574900128163706377383184923145232661457118076664773544576231570482532329567560695917109597091143333629252441261925647492411381793431262177518705488469763353690922125607225782439172641552410272844275521866039972965390088526039573465276134949766404112604931740774098057695715377360223447792172159883084591162061776161530774372625397540042846554365749153412047258824518247149990557959765292321397306217129254444191814039521730922290398858563954109792559900695860171612130864422938918044306966790096100823949433965462150570399512298893901330063920684567842635666763783514655462683384842621245673285013216028472457715846092713516896042403282179314395114439440773363833878251580231809695858123823173781142159663428731539685839890076050641864845204463289344541485709754780903263363883953926844979680613934621620816325636702510508011543706857683474917462313796866762552777378037110666187582998139214089278146115271172240465213535486216849485410316379583036802168032182663590270082411437438327200791218399150774928786389454322857617796658605296862198622203469821511649561702498209578871901619275565198481217802182011452314842595335985820308609832330430260014874675983691477203637215144017787851082044413925940233708943821292928030717473129659210438789889137146882566445078063304623759747298629054777777561724459590374451129055894871560607196283019113013197192095782620846355786648627904611076442243519605173698631950814793225540566806618077496248822916092547818187659253468993122167255421753534308150121142941396324632421514116339292721245203508717474874073098504521294112275474487667649542325650577088852949249569915562530943664520823987569140049734038720448720695777551345486276086228150723043963744657313539325253014756327789650086562949381127621395742539936599522417866268556611335386111657266836156489853381082382377006484141510968262559820262944575271658085550074969240968161810614116936880157660356885314536012841457687618071159057596826684565024395743797305712574692124393129639076714913331286189877823264101162282451549607882768961362447188129076299401078977964851140475286253419588574027384910598415403990363596625386471359974042240658460640227714873061890983000728417608167101669315149800468640981209705766177018960234831410183749543135462715607653441086688305077654647147535082788140713115541409475011033138375810119105106917088554032814232091912682847928656604594021537118319413495722693812205579664904585436126075333191766035081656912329254472701905653493231153679609232267156662414131777986454120342962313416447107701279330052739801104371627215631012600902333268947075386047255296243432366196798354553331292187187678674442183663897373617029233760272647598523770638842079682674623671421087579619645592667641978072984989078015903919120181940090148487811866605249694484980821257027869884771725243832932721924669235438279438907291836980926588924169601422052727508325535738921822313602922616013994852561375156076841090977324150140917832563245026271353806657331965010053988910028766287027137340453563607582095728470342530432827654921275979659457392890550673531937999049905157468447535535709047554154374183285462730848816943818226477909357058469071976714329277455880039292008468307056566138031302705239919731557119267712663164763858461922776680090022273862100493088882712619251621722133537942380804503664232163600554732876758426308948605714986927978528722276554773194398188149489624087349814345291731224361877591958846069792347688736563101941490764070472420704511029471089080557727590683741523806136692495476548294060433592083562422921729032833435440806158250172136003270426375229042253007475195624862263495362906529805241264963703828240238792250289269829599212101659731535615845612083983405775798108985481656881683830462820025879242602577078580004030735346776032853319818716997058582862579484513117387214366791662071580380060309394374763994049196799099071907468424357045705950889608047529220566295897287426949219735465913102203077522731677116810547188372052017868235492156383715688275103752453036249532021227757850097829683734664836456743120493529024486093965033295370853730225978206408147745425040695720226419808912483166454634847863486740364490793761045503136127883149574178136657022056257444756669635644758152265905400911167167280956559272838257043127991857261185795348915461520931448974302457279971421359622893419675457068354472463161672781458526223804268724796606741810881168878802776720104501426162561393920953612600091936669985947120562204288262781582940104472683782048966921333927851737281276513512958498347671702980624480748161755789153360504913130681363620945936183309184952693437937655107630915456661586163347981556619138236507389104022796428771683896918670414387108814480290218144037187513573079659550224204058794325087861265639528043362036274265984388705469143157699314528476219814995418242583697308699325013181602989072573497965517496582447826523785659903704184619666111241034115585295382638702015188705704344077841015597176226754561817490690738991273085896923640961168084272862244021235168052636593168677787190208652155802662141681475375205401363781812780998241210342225404714897490723968020572199120986182388132448692025189995604500852270180891727985551557837547311367611905081634133231815813578656120044179922140507732255826591484536467325690439055141143711429273912442494105687493722618971535426244898754513257526576496162321889630306585840178113245388355953978664307510853334859063899331076893978095531463595554971980314846087584702515447769802473762346267648671449513688821575858207042060315726908234527283428408148443076275251258113725786068273070360916405644021208438417887513932062188032896236158757458875252813651066658310874677628794098457280090264402394895180586840121734730841552983209760513561788998099986305995467574558290015883331898378623758740242575913433794040740855671661793461302842640821495599869793174902393802565992466856798846383152918550431219292046857958359273344386468052739079322215670560744324912403680717532147350166855120475393587059472016008948512159195303884576367817754824954394500330579695579692840833398048849404491402638880876996878567227845843244946919800308438887113850347706398143985121129916450528289426331470703638626468295846883408968445380645891360194198383646156846882734700069886846361919800972520929560323642126267189427902849469944887214764956242606105348651916909342352126923422824367686776242830899623533979181502734808322339675475975521173176250977296627112156891296132174086640834409024701291148405749533690486422271192105624486605076892782125616482719278746168976989969921009357705869058114240220242553400310435471728623671536370446758428084824648161846138859489115685161234428684936726511687731164436913537070366305473370500224051792410991804632707349267302930311185955528529862984137890300227670489892518790831211659936124462123549321220109303744478070351637591865253634970352432123646606208181615661426403395741010170540522820196728101430712823780821238278893197965801514831217973083407146665590395754607567126591648773584250327569556331122724050384780111889432302339538023326770248227787998521124347638109003662572557967818838089686524222906527541741738402287452916441790668674399840898894734282683394732334061904748450649443739234168682526865307950799938186650185847947342249184647878098268018606759498707615825265747010110454417558676573212906919280668091808019598461854847603531845496548006713905709224736653351224797540555102774561586268890458195545328770260025195803596331921601664925656492269771089796394731247992246010306936555761524099483611428610981699485037150647961104000044560322002460633311673192678208780171493254137764000132386911521061967502845801630520264941409960620696584161718719727920486812976193648888877631769078054136909269960251321323675759958069652258083846409523590471592137839393549605616281738286512870562355229578472307841534323236652596619091786256927996143336169350166044756383854790322958143846736923623659825766513401332986623535106707517544742217493340263037990335891799946658061625804244949134267653895319671052382184846664789378436654883963825786051432141214408140186012271511859710333229042918841061374113842363161921430406563518648761643485061125874991049407905463860476784815693011144064556582197304608238928113420465386230192570201735493735172909334310621697038938800748322458705534027186482231036398208680003047205557745403617822707720337231759860130313877927740518945056066063122423754202736163704172639514074063537506007336536263597503520357425986392334976203961667597247159514699848937776822648956561258056581914361142118105402150814228146788875487145513277316300063738882326564907030553727230496420602269034673920695171539491915775823280960207979017884259862544932159816480537907330227748401019262529418887576267687040401483217245079870489657935039641946344450809191562987752366117646213662563400306630830013813499561781449716131142654649023165372331785649561900843245022777604913871179063232040696795153044724349406540495134277261505246446577546443805124129104153642223687216443422645891322052128101517564502145073139714732788815091170778136815099673064657154857103992396692877627581634332764996941645535700396827599266286788653120247631148567045169370177540342494269468146832847271825643268794627931587402099457084111509264942850866049594432931316595040808078879043769848451550527218156047145541789187234150339510979070705879499087308532681377685535102994547456760362804623643362251414547332325751280141552390304050883315807002414589131574701470228481716336460145213510618732501501938963777004738174335115658504985152757362109746680465706737635245133534536487459929871224266318178482529622705095602504917948899522424722083144752101413128909331929311225005534389845190960745167744867951283488435279954511270144935424740351799950310030434783286173766040937512953929136535887265655199823818359576219959563121396031357103027369641517661673076263308198329892381991653982952365283210276890631577063051068994503877842604637623322750032758713798286924816394231417572215841060940771177459167426397954597845696427964516721544308665459509386497010465748559253683003903700861848474527854196901437762028470767493654197259654692819645840874875497996677588103684564150339893267943789577964267726440396069160409281855570680855953400289912784515902329990454191800307178322891931838341184985383307331546391671469954302461731526201576932396725107480483500654400550777017193085648415151978955814908186541959662557918160850590861351660347288245291415483751823918254303899025828875008333978892257635517136806704644865508397322443981525922103495629598443616676470606486802661055704664594612624936531019654788735774347435855840224481827538933356101155628740724858825439764094389205746415103780126140745231953535214207019731885447971427836150484852418956021733045267249568216651649210776097880351022186966124956520277448626972099757203188698478802008512546505673656926059550878438799872439605156219964699499174278604633091635428091364341945241104387045917515989306349615357533385339273771857050624862060257193072413296204763608687305319358574173044754737787479557846307505514479399172615479525686837001462534609319967707667953790341350846945755728098095018402256867070830342681514817559371201050611279357780948062513206117027980620903182803533910866061510540281847750233930432738672799562899841022199638834130024617508581652179261052899501143043917913261011036700422044296999798901907212432928474250649516101672670197008486400023350114578740486948860137839105969669848559787717581592048581942612056429477607078518549402638684579264293872166381179613160561999061221764249376639140427397503750623829307763543370526076772834911447093226881086664321947846106991281392205550669634362070376853259043039460222433166658012955939635797073959423462703361857257586046290791828816264110689862159581080811893492268122088520456137386643381458521078663749119125229341872584690026225311116544459697397556301591154040755973714915858866566644549753545544025700226027994343851082189300572354950287820435929203664031926314567732977491197460716563904090674895910445423054905236289356502077261316334834968683751173965383554407738222886860987005755396626353038948773973861516395896029003637169109600437241417797795757718497840602757837664710777150687101524987229375305151494237362884287668452047605000522398659617096342954312413683676463046361944347070985232463886889384984105716459045933249128384100684132808169158553278831065130613308760448131082368264473637312591186718540350278239673951250964624495093985883685845992557739270459479933470504344320119697126519640287590028673367431589607759595717828624902353881506843862961939577159751410309328266107355244667803191887152159483678176331359327706676454240836496497423533471987516343675294623476779990488376647777369926246778039985567085147570593061802597447442917343937718203331727075108828310669449406507146234777005091957447823116311582683314293220846915803668927945274062654985500507155001908598293679701004060204378976121938728176602288896381671975432070292802037177136607944592072292816326733203409180453828416346982169348339243764482012467246203044214723681244469593429903589195049500363229580258503650434000509390326791214112404872573779282914949096891728615786854454499746632008649196132254990891606522331667550290522970778595580943260081681934659463281266670834668491071474198214796995635837484364959191112876846851619976293421514618989172572869060483337294095995957085536165113678810699867891658213611578224983416020111701419130471310747134709144428544935520566510642363534452149545300898345956612689276412504525276315080863598136047337235857544214645593167622845319957986412844417222722156653175624448730798169056891743319517791665042680927945824982982808297123608008891665254844127396414685831469036440932476967141278927246408823099683612800280666158411573722615147777545986555353490975368207777154787419341528861142097050525395594057572926062870332968516053236304704770216181253894062212027052746004286748499409489963767494959430090264785299303570944949392575951373880928478446000372162592851206830161809217438271010214636838525404982384341837125028215335861179126409085220997446223308147838571432905526025236065992824468016404149585715663152614468021978712307246034116499274576281283940668335158944207859950530101553225889929195330013247767350241485208463852926183285285871539446045116700328576000377566901185179745824528508741966401417173792684076538685249967904914523167753481968588569953423613924911398901621245391419633854401164162269413852795139024975268496204315466242566079172395871024238855830600756266714456739343905907824269508324319613406703965043819686532006047600322645712156537826425831784858604809405860470962429147286037315008526298135010708216667801959589426492302704261114475068931896684692518114915493506348915973937998915416225312726031942524868590336108217177178852900251248587602469545713803710381424734133836455082613930191070846346399619845883113492300193063618432534718455669853966892668090516838757948131006495185241360918242670914236541126315308973929267489729425732722774765561574250765016395699205528216804434488947102615675682690801214690133700043168070625244670289451516807263125563280355373586296034478549300739078848995086456566857246165806216969122226394050686858641284902402954295184330863919879421218000156578709091352385517048235763572008510947384369940205035053194142967935458575893919562235691239320768379503645833138418472381629112551690203461694689381042175423704138073901263087199619590480247346152786397600274810244763308105151679618997735116778681349903296547510908374502031989185956457534041010827502301927831206934880056043317344266250056796660683531379232911164576357633451970315250688563537093521221511318357895306040670842467234405850873134092581182336779782174798982796190142118785326451638865705396680950146240999206919672564892182274311342769709529448997296018573908351682776014111250675835598816295458841687117224561088284724523964914006821024868835444957300468894718216745344575337895150255750939781738829824624357744300731659159433846281295702681184816618352251245178808756370922366460483919845792680956659805990699096244568859865105431960892300681558523150219550165044897998830807451468412564149886839462991215316161790477036304318269337541813438819688703746885936053194817244993534584142543153446426110822388000974953887002974217851518862703701526048776127144590026021338954430675398817935960281883463626589759593037809466648147679859746532327548951631241886623486407115461895964784653972777699695445790190023329435073384207879444292198838023285299393851896704587712719430535219239945154277053640727714743878939175900855622000564865854817542624276338141713767863939650667947975163919347860846945567337530569444410207049353780540604865514490924275058378144212943068543260420920012471095488740915874562448225988129666822432872382945596627334535292326252996396942010685000170404742598120305577554359269286502844946329897053724248589175370361052590381820146679637957379985226738240847914589282699016175066986326209002003728782580237502855303315139799048039609964155986974234509679305887653756187144676614262611090763057312133147595339745017854152124699650225008903381448475591227205046143317217235192632796005706214044756083041224264189545198449436839092556016678808257304511784198702215795750498603734669750844696861220854855303983885612640778894591876036256894603850718078746432241206685987261731546354841307554008690547541414351210908752387601076324058001093966456345058031063249706305144829419900636455336791342890050253943197653464868731747347235643454311498210166257216367408099265259839547569095016586006366197263866081117885667608201031700830932946722820870673906974733585816508586488357811990088156398600452818142964881939557296905451122887458670013866213502107849906048192827026467033436247831012865468867176834467249225087636823465797740659205326465665901486268572292922849606021339145059904826366337112918698581659226875162470894495526432920332502600131626820398586464214635035195629871092007780084547308331285999856406023145903435323091464649384997143452859262051511008553908809182350473174521355826821761661132521022101415618651057471512559340938724871624703971652062285615733239675570705276582875955948430679988015798435675632251347294492194480268024924563493591058111937560078975400453738992495972829087641221469602666496661932146112921148163483375115216042728889111922027646119153675598976864515061520358759970160370526186955325131030012540648501766486346620583730394488230151448989099785507684843488122393809623707196681318160460170151509158276040484936807028583079465119193996416406735063350913110591951208335861918534816542284800730156688441064875270195706103712688261710770579470323572996185115014181041652873074484059026650389649192895001624136409109042027087693577285209639646550326474494175740832147529964122841347497260803925837633975613800820305595157919923757408518391215830874915502837908122449528176477074391246988719814717256030011843932210142075224632118173532907130551522044598855629333225904974861283997000583257179103955157472155019214480363231692034260391500703302862067816650005988857285579105249853149319935136139858595751725811830205916916872133284686697078817771577201937377647203254425428769299314951823625806141759399705114703470656948415644628217753382548941082077230250711453260910029554008774837150694419150607596862876999560892567876324599565364205451220829257086736566086169048997927223202860413463598993810076340196430540070976084126531273324012469881495972962193066924018714471580978831969164169812446683578149821390993059650667446114306686923558587496695691898956394837185429436455114278187819344640855528126764694434107909953695463190306969093822158917880885230679054244605930934922962052713577944093017344754188503889766531968555644500201137380940938667766774323733466414310794548347018763885214839725168922601279354082845930134209712884514484193678621060718919774908391051579482079903907475955997531348313694810327159189314771062750605681782439199257585943118554158367189125130980147121779451828287623827228336626393205258140620663688246956115880446280470413644279049213242942294513504859644730357119510325482968217565434156899247087715572912113668998590134189305476281356621510516838851478027732445724308154536687029693982509225963251342173966471342280641598038324290899811415708059662197735347472096642617253072146132740698981002586255464761312976871042005024700403190858916065769368639940283999312909300174100039205985897712968864300639897110460128595771537181410441806805754786095199149433033529368728279635030951558666746619960132362760665508100429253407509285881829488957874325956868450339658913143981176968990118278035740037204446488728351316091823253118084846701400523897522602511002221686352676401246522256752173424275296579912851180785859682577279590606251091118934927165691144104025165922363655919181264072822076156997685368503971478141341600056778743614235570935928643275280645658241144448259801316859598423317573822291416173973248581575440519164321270318923249149263377260670615971593924057629721620962201406989536253202086651385821989085748092771288420890875771937145664678641540963927462381531031903259039903169211379165228775178083777942988544358346460325744672963169004804589506903973184010091115685012284452305851773128535188640205723614705732020965840801512752174547309315094637919285483239386994442613265293888101840944809936401300477262896553584208006689570860387918285338604873778445655888945392752175633953773041921736011231818449513170278338919542337268878378143562120735444426171587573515646738305055561292798045042247459783111743597809225943609641241210504773197356244266821471970480871098146956619134527225454709867740301202146324294691040303467024734529218617080031726973937151380175093302688925331819363748036421797166201194707677272027953623939299896893492664121699876236002147531232280468750034923222941405294385177956881360483369529263894553359911936323930160556087691026665827688511464537853610398806299944180426462763669062639930456848161098360164539138714862629959650608491445064962687481540621013004637206256168048962712545079055803767972985512315843865750903283194421200770310009447411864739132768147758785500803183581525934060512282522822441113272560752315289559077974731600209301177448226227361657634416256908424580345606696132473579946177965322142683538758930460337997861689099193019760801631914556067079915147519279533889332080786522191197762330066515180886814802593045161603063905368833173399983297905552757339792228391202307302860009226651364841579129910323723604404374972396031741501900594152775800824706633894049764616869580111481366736257174426832700886241841246522846476266140174476274256286536755008394521198810725086255720360162321590639043682450829660611451512777143815864816488767139895296806690221147831375230890759067051382906929239857394477731719475953542908417734856609171204891751666771037434499087440822801031909624151012702847559460111241072683767017464030001692912571595591309061276267537473688799189385198902780988992160511869893970779323145937234008547669926440119287012194414742707478203829854317927205422624086395792172493604968546481419571668712411835767607022063907990821811380740234402219196297089893607497882549887324003704672780498049595023866807303263489377874986132041840345462930234788468244141968138832999840408881387574448400466572055760299676619198235718719023143720539109764014762193824056807862593862862291881943561814029822929716667046239392391269588073075166360726183011895894687735264277798954944164330447441198553622793175324517496121629666830669826363266253198338110585193668593182330840916854056519269507864203807760680202375706726308981346550812087958239888152053505872654418175227542483152678970117104156840534371554926095592399859760114424605185976347291683710441388355980411715676930358887509668718175368483725494137489970179387368575733400595970782281989401804445132953487647403989897963874944713553387340533074292538107150116188684486920517582243596065791326763605146597800797474109741907241975827617382398339746595385427747262217468214220954964065565885455229435965422120448094060107443121902252019592676468030437161629500019720151152087859410248739690077417608336457469371993982320252582620145966501943993555986928971547846878896727788029146979350470088401009370265648618502129969929711468233833752540479606843415488236872488994332402684173733627454369861278251337251603602618982875419198250679231303916805647808216441338448878623779375133757574562385337390092363473507870752531589844480401906689696911324957159057090708093868299481134524240529775617107093907540137319184667236698150355273112186897886611081240253420147590388737636113057226082003078826303079035665169784546913931546038373958717504280824248207112432532723446384858357724205720203709272184084189657996068944895124147572592569091048244238627313585955641334147921313689013843328110509363328254420713979779147300395775332727561492145855221631984494735537023356436993951642385524458804623675633768041826957432237211029758850866445764685183727292029346297816165490138123766343551352775276823505473983814460635420148562436553223524334460867828583859958318243909407812809058289458064415340881080736176033005931631365613575218708917366629848467239576677781094422262589658785705252934374796980459138957798212353325839008784428672525729309901815003871498086007165452533067360445278306151242644565050405328267994295005954363483122670690043297477643230707877007376428588832631882390701507651013077994122954850768416139988005752463345098667248525012154520444749296893307232726863981116586342186867272724194844675234385511236203715115699573350418000020240600127465432021305201908808855305615704714495734760913168934664389169225867059508340621418272712910372241104477484430363565756604769373802130290751797035805497594891540795403459381615533630656396733369022228697900105536310436048926295972763931580886796521252626799477101553910625033489710821895198750738409135247757796178476987893070296586843651900662076075146228730241426561110834559316824919379411388710168439823443235884685672105599219021691918834571068484371178960298806983945078659157637540042790509358288946755231777196490809674785750483477628729158128384619274613310848481968114425524752377854276259923705041410244057371249165447990301883291738400296616679225715247803801720351477658889769600475943166302568617397473209873752483582894059458205018517552966705594967926005238142649302493433949911138720752408626956786932246636866065284752222157559508382214647834770353056171425008991620196998708332101149998725537779999923694590552165301584463851899309844645716700526740183258934959237129815918954753618666497703541216640165154928118619529960266916086942960684731232688092203590952745380900800011950263428983004167975899564840687975469141864716895438003796239013037238458080319552481249090270204283054146488993308016802750604962396681504699059643022106864669797850513210859632279848021250301051228579250156457338716252026066887685473861037412393063145144822490027802108006100927673517447675848290686324605931934765552144846657099454962750436098290590186516157919666323074807455583282686345705225359934170683911854335606050640487191922530936792895678130158385719766193979313968475306493755848750067506664047120219993092972058003939234331633425898220405520950400016347244835659406502391624341639061636744585765785840108896424253325409487368010196939893269398253502747964173862010627261521907402937700784682730184243825406205104636605200372537779476947693390264604293304929409336086880301281904924599831062654319198733950210659767562690365395237050814006244996718163416221849003107750217666284626166434313649044194546408687481658059288212781326673708456795002381427598130871775275055898246300732815298169588818350991651599353735493849459878250293087144407690741591790630927728532813036659281943773579412102921933295250985863766241833978268253731408405222347638480389901346254366247179651049189808701676875337509442026002558705698781133667263895164870731093576540681150180996191059039511246523206692428789313938313206900714963585468222432083133056313327114147807446658143391806783770203647110458424271282655360995512558865431346302100255189705559539058184650035521698847545528413108791648263672452158269580331656562516001676390266335052219917366139450312134941172948916096924071201100927684058006424862505597525075617787033978254826987614389848512604928267507516467178168721367717151359442317254827896662075393743099064278116135096048427618618486249537908440357700432868437225168618455090021437193099138066516835280289084166264132831072654390944473404632568361804566423052210358122696680983300495284570485561059823014658575780036447614942784534481853955526137459549165775555057695014009056805479472456701896457574203004863157884059543128184463508931569161649726888260233742967826730117761358160814371653349051268827287017161896847190608267209571018498404328860934397175085177929710312164339181427956752504331125030787514813655673779722711634103279675989768115363548469831724131904844494872842553416258121761692787042429122298714712011958847712115460762924484656860458061625052508939506064949559592709531927747639410310327975222410422315276911331573374211232925025282498275900886948259763103099748932331546977294258692303074798544620359273419050340335174523151380652846981870315497108371853868455787097724896519180748499840116003340230157898882981373977078134539269519601284715925972656307359156541419928837842751529508986724022213993364001745165244154569525694457726900145604325381347327562703839994231000190983967875031650889172638760444401068911819502516355017399984902371170799276642865294052559012423643562980420772003499168621591900912636394731344830890036695854453999083475573720582005695097514565028809569303562364384034289464768860708842212128123343436419823476206886613380162349232258467671686568791297493092107249625328536648459814005528237349317027841343518585613287766429068230541660079152150195105739176106874088448592260201830379453675813695820358531127024776418005445896723222637014408112845458323252044324804822756503475299826776345815153198953952186045518428136810829229994640385331658659864510778272462979678125159025557723294624490819526719001059888216506007845792066479386352068272265956067465263471706380056686761227080594427439288477450433071071803415594409698580865458330202675731948612783499270572199467372557584779152840600044628897323262334304648055707558775095606544319044161321565081599355707577752688617027230408311741240173941024157371177509190983885710820147351618619921357073125770288001931931079128718819763461396513223953343950208251167482154504966615423236145665339898716251229717344734910945582399949676981615438798512594363345364367683940356465461759151742362213220411666153188569238151000332663697627469397938379799912217703554071277975773977669676721014821201370830871265130505817140299482497175656856878150159593685614512679803523667199388033824003665273585411507855905944573867559823931106555773271168202730650414152046850336539451883650847622375406615928982219204262782373798999045742421584131822145154409888229514804133381166731435729359382859576956295993868931134797976418857895748413474534254767075337178935940448818460867027221562620387005293387919318314585384480151453175193592636960368708419568808130201426343236514691980714677407615881699245175660248279546495921190729439433041062976267048080390556696979773636085024174920550626201914523711647354969659815891283703260627374966997442058838909854648781396656882980498041538330857404339111790020252019339004905137574402553775639461043783157481890025660713445554324585343370953465095487797423739036947755015518055717448239968818654971831410060124818262524011368311306097902925212089358582234356627759387527599578479052544372158327381008180139721421938634325333629742120045830398466552103694345825059228296035900951969924761373423884995505799572251004309459774159735311369690773830574703347638716356067507609013287849295884372668307583887040487065407534861263869888679339175627973274015479240572159842873826453949427402337660382763102746092412763294159967559129789474335719482816157296625549555306939534024256426472014959655064224720435680433901318691268244659209415933002248080842248771986865803309367445834322398015097283516744531061718809802278497855487409165291710395901178745739496241017213606964355239949740566554266418187810547911708297981977586627601002718512647509407270841990006444626558980323100020475038210588919938216900021150410570269701783161263297383269967455747133882611668621395232168149019733674031324959218677229948792663322724226436393285364758520690144191416592903548895629753747404235664802146094609478810738849611892735357176952686223594228705583775331749524555206132087525000888605632643790418846176770411513328549544724315021748638801980226180983567542336082358035932894454176931008766238653485208091095602677231387413985459821730257532851153886968747191859038442532518319377718890816454606255892947477715706905783821598248803641692271144344692249080397761098588296858469196768798141712521530683528237251336178968912618527074845168213050696690709174431657097099638439425431940657165206482790755759433661744399543592510527357882173592842066341694853456736509678554695288773882050356300789410442415242972037683188749678762714315073356381067878338795729767020317081421102380855138201827012670475280195307182571756031793715452586447520603119123026410730175893816009060801147846364057698780067654410604468231261858179783413080128538885952153907533724435678125369680961324564479026630579630649853183800883233281109991340027543611884506068775396429254636228344866985006063187261446624116301856313618298186852359114552126940312112142547715173954723162814055388893020932214450227156959954869171148878956762533508439198904583714101630547358262140609701630827619439139758325610801571967002135892801980752128853816715517756942454040301687300274873354592767467559015490306665700491601704265397765018558352147144887496893806067772137063778622549881513644213866059109727269158600859946829635047210885160553244804051199650211126257218618083873021274662084619407287331468812895601389069422348590772410063391612169788906661088583869531296362584803749142354322488368828249976896945881220822962835374688411733883705356880589143310982006013309990255288279318125200893050002628004813510018502967982650889115426487466146047054376382280705296076028493348429283614505277437433063739089995146334346565352808582363635082868565167593697963231068185170811013190435143275603923593110297904500295413807357524081835550567719568538377086918914259034565071504138200372394956807487047861263068822155219946719144301815112098252834918358597057741385625789247185777616677875871937337587274182320600255407222872901355634341186637111529641010570015423506688813382718503474266450247624743748157619643294796810888940560105254348189589438527920824610973442566453814531045101355235079733187563600162538192119119800333246635960593700662326087637879199347077708708768425581667020749844365514334945818227540349341833247266741816489538156728541829414318270592080540580331160521165749351916031964964363218012208087986736084013421075929007116383665113040835063127444652128265124817849464332358492387869137552422864796760544203996095400978505149173466868579433077812101869851992115566761473364780912710906794989256996775144098853213548234481984015488769358938094721461228280503970460786338554954616336105288287373528386282056376095636327762455566657778039327184654603545733273534771007811025996032113437558768109563733180220910043243583608800118337932857414180242890569450822299333200039345672066557910300904618714682800939492451223462883533886333101900589378281351815029483789653551871010038041806277455500458838817645666800889278553229744535082644827082671513081792712510016983893445728470338218975580746629087176843746883277805914980276135544514681525430394700941621273948560539690663087532176511716893609432927460072572054291848505757721815767459995811312763091175655421576458073491760402580206573298188644352708581651139990677858461511052378269948490905078222556350253899677599327147293890184158793022137998247976757582013529438310970805135531939010172973982410999801311617382020417394866450981488725506136381844017916074801879253824107242334320316889348521545477632492140805262928621449243238654982002447235035615726736606247408946384524568625735166065147719831950469622854150226423496195812800864543086946520534047005765476585808385828021025945304676971404706205189341556401380966395131906547072945844753319556288289517501521619482333038655694645357103207267833154654539942003388971876057928581929263331902107896996749374614572327481514760760747112277253809043460663223595099740856155360415808989525768463351205171921481568331049814277682457152679048330301635600260947547515747297197599555137691351680656577275637789087879291738321879896902974620248278034207584211018865721554412202613936022512655972945433121534244416438703123678276161616430055702355955234367432499941298676480683216208507998795086271034158811669946860607450378115122894594487446637660603380917719109045164776042706122515249661124696360478487617853144333705376210535019462985705104947122384007912005856876491110459770635336548648384448124644922336123754856933970702468034482300328897355276069726800355017018056135507323237375013356016549285446199906878732983528157477513211675596257665915224762929907936732809750218459657686363190140902252616327286181607249874411988539629187511867416103906424753896900814109220769727691134109635126709969044884615258732288222687860249149352165013554024686213728986510808545628204717956387567306645950496515214827057679206219558560213556213720135003601874945796939865190882206821952646522211868608771308041157231852964943127980418493727339269565714758103529293840137437901354570584988408803110546930839093527331296676256139176448393569965804884305128712959003136055050139303008381102559135881361210653024137012004850011433736995294624403655806931223913643887227726465062573015914262097129273119546767054373350178511887210500960227148285954622963867065909118031133649715716374010234658869162760530527590566358208550459068459413529739517686686856275236631078596818106631971882983939831898033097626618784651626500490376508530783632621606634047136771020407256115194581101064081393991199791181151636895494229956767128246764659314128649397487948398822591534888958185805172712558540856443846065710561949962465615196504197262043794696493182759459726080725555830725491602040124651004068797687772878132565212439539153002122560160163256011503459278745713108930674009785932762069657720004390200330162882116517864384231855661369669712606487020701371903850934489256530271983903086833835000300175377455526389445528372120178550918170493374235470179250391508373103539581039200566922503945536369230901232273534747499664935923767239328810131019738354169595486872441237463485776278888034046944107861008450685391465306865768360917625343210514332253622975835953070773914710380863830548134489442287415643817003205235158992455366111658306248226637451923175456395830001744843954029637101057347676685360678146577154852428770207153130823390125734426816437763197309945151622326889223129058525706939945270503023835373535782811833169767656406401695644506517786653587603782089550369662440690159474799179707379941772944687438658927414971244055950441031063398899801717371431283908086404729100138684946177725623022788287446524368762638858807191377195174409659188486799003156795718111009513696171376320097269804150469806984728095933992190267913646695678213161173273922526673120728217942335459334251951393963856555627591393835680083552643880791346169140113038515298145424114529393905505202612720395084515694295734966554797044594135171430551532821096815385414230267302478696064156273889103606042041719268403065601751064988502564455000720827099819511894546913287213231259792102832165278433747491399276783794194264081081458179186426447935349798088584162571578040078767795575151633034945210924826037152660953887955820376510805743023309995098212095001761950509025806550190018874997175508563532729504561534318857419431063836214336924974023992978167218427185529340399948818561123743977827475958259183209731538289321709972921909433807371447659825646092537190079564723430292060724257054229297891446090410853395082686208258260152131152074260541496837160809783070061298550945989213315816826333148560862051158260427727253615414072928549776305371345051121873959028998961510611559516107766275158962127247827702145649676242008195782247548206108414267152043206522371019814136756981293696937914219239410397780582810238464314921823526171534053184664818498714093434087263725509870830837341917161994896283339249895613904506183781973302241357956226592313642999934980308715113339197847683890754710990198954286212099489926897522873689854109468615257778406011345395313443709217851848870140011339180824742458286178023728900627061399188658567044824843230354776754891583439808780377483441442068132454319953839284080071902138043908896444079660635981634416965171968360919663476068437633260542007985914602705681850070197185195048269882186161167163609873654561016734274767497820640995462979630673734449251628066982833492595109113267522127900602985272745792111623895885561615259483001228604378427915644864952487505840796934154974225911343501240381540468210460681176963716694939868992573352630304096591676946865911066417953446772071749411891599130117335337923620680543839958816782157415407669099264030041224266923064264564411913635771075439682411194345763102261935300696154069101304336598108509740093644292111597937146818812260078164334559455172103048488858278232653853900636702423908689460808999667732969540862212752068749313430710540303201455748600267058278103721503900396988529880814961935273636991944346089922159662877906323771475554663127821144159095128778517646656456132369066157292693534183191886229209171735712852594917710860783709345053417830167587549143296940766455720159027790946948909711340424171065541644827979229585384522979704061785339490541651233730009055487023345092811154221073808223450912383004534035416451615574155548595971069313892704135856809945693581908686084236762006157770881658660544672884159400272477404596273837312695006950092012915974628853448248395850176137107422287098151707505500128787008320409628406402767452986918626253786953343758717334477072747429789218760419327646724212415237836558188664022233278560909456564466963542635341592473793730389274690834704354345033392213886409800511334411877782667801979965450324495959750266990918442967215645078818484046229889553272856503928998842829660718075872778299902405005774057471957936889739394107297922567754275194454203754030369711560110800514941944034275424032223374474492076886892572346375425772292445159100209152707325475662615356500451733160747399299919374153850205623511778488703572213875484048991448718427503540340560912437213770560978951211131178719421603391138843667575431421493286169402646605163799853718318329552371028313495326642893724946081453294610367511958282679324690297463239237627911533924918715348681653829927556327231602283350921457689684581681178489003347885288553478645775458072503963391460106456276722447298515465283933506881213652697065124093011210013301454781135544552359340718464667494547963072043394037505627475031308210232239277861671807587874344267814749564636233566205904807115554868796143699757768552272185880923631478048902132837476259657587136306250191300035293981394686926850893566299631926456781666743616568307615776951656810170342695132858289442431604268278551854891091546177033920079250750195853408314195806155837090086056291610808135090673522012610164727119152654166513668381186452707334073352657592593122851061485177265726294327206592579923690747159686198307574252756055160321430378840064067021909562413707569589371769450596650284873777860474566354364806433230347947342991574502883883082571704187194422940820467282304066195966205543242331720858423935696820167746349987330993981623634297193483192020301690899293495395823718878053172661296434992519454151716977690071051639095268696936355939692319746498886856157373058736923559266119596138173375741674433075677234988432594182033984281036027128798331560987623974448609374476558514567830231341713764126469372121290111584695479960658529234584234870753579298570025736195768032715230388879047577569111755936012686558031970588429194703659937025815266049525478923052061930959800989612637786274411910791430104711219910206833905053031807098427068416764931336479693983659068375403737535755062363844556653795960122900234172029830607828228961774554591018582394503868896189658987715581446652792505804806390328071211943281768454457099184286593056841533828530517048408921831918399556852970278475733913251878471081889084060329907107693048661323538151289423156457184367134462214133102935240880398130542527666204862762300663731575111450408038585301543940671558303521855983774212774547228783061209177864694655506229521094736293893150810711153014475044118373664564045319939862618733593538864737114815044357667088903134627729663644828627799604877207460817289159939033367883135626535126198472641569037860586209024354183913844472903996511158127490479928918279015362656986173126362869836521039248533592707603899113949183922005132587573720623989220969988628470647414602232370063912827271582530496739976338299523274565287604848561972143341194151208866128525167214331525583515390327325764656332542473218417090812054100473031390498165823551002862307557146365835058605072126933069698067972407932650826542372389042675420879046645901770946060293756785140212751535266248225817423312941321010665997266835388495369253543034962745080785213095950321551307879956029210953645529440987211863265417037116497322681981760154497807445607840782535026142186622306718249364298512776765794416977453460179944287587763017987889127439685499464584712502827937754338011216204608991171514708803122806297593599424589057849927374641588366086305928475377954874410296045683763848404598298918221356555703846310285505261375552681187448612845373270858263393404701856719531946472504048919355239984976849957347998577763504370311849239768175984471590615729310808639892710132653037075823817942082369893976129353162426290309602453740241482439871829595263923107791036026320227408240133775959530637647364887958762661255179230472707186440877097348335832037719423007512766515837678206218043151839600252644774726745819461366118631201384526881350523294087817090827541916480620427180669483450327320552264448139642228645712445724965691776053435237802805211583179559986898681563725361891674973964525366482019482794351615154943739614744549549848983443281050158727318881742760964015047611669867000008502541448816198867011388246136341794670284057000833901835365545619362312221761705600495071497219922499530989714812857054917344202890698667406326330201472913900647303494258739438205766549374387129394572914769260332956206117399416376585865811031844559954847056673407724156381957761947602485714278421667456640113780885123854751566262223636724794980797663319963760338841432997439265348655782152886958993563568461527869552057658943279910263243830517753319821151023098876688681411700124271913800127902917394504878985876382448478817456937624758996031864552388936000136981678858008798465101852729431388967097029970355749166719277323253411391067911488526225508191017930123030545938663982140310534088505614248016005844639051579620141234322091363981625402147953717792273527171346336054199806823658555676306803198661412048971345107541057870156731104178066556873352361150310818302565499735443360115218358635590534996961407899676824866581615161607725601871818576982682780442771954945371671243132700716970616995604503148629131973222438554031066964331999775213008302792006063628925255673681450873456110686212680660869285860332505820071435138102294986898360461250115381152444746526344263504780591466129436731490274887100406861397741890569066703862291426523483593698123896896456659628379490600583210447510715489218208954456121056140569811442973706801307267077261033199751508864843541311425712030234351442297765239499550663284420716331749409486195983558707891547034269289424939455647431002390771001260738385995935485542504651621416572611279291964877102652385816156767095711443861835903283591756233750946523624214099949895302390509494505352138039071172821330000508909946194312469761999508002134865903194321455360870273202295806371833601918390895524188513818861928823594184942822601688994805692081479348610239237428042144240510050605587557757892434225656268900117633409974399825637562250476175505756317691337400645856191049174711690856102074491729614580002890565733703329236194402940087490235918293712298503189400279159243275565383644130767959330128431375039640764926427728582347750915943134063003107748784194482501738784929733690764956743302358088880981746654953744534555800974678994149039430024987978077863379866951687706592233574097329506392405373511724317228884899028966376698497461453935814544973779401127898533264640294466786729906274527053595893852726592905884523144408880135437002908363433646825482318285965283269762933988071738098466098258522906837125878283185120339833976949061143980435098754267572647015918620333426947623497333539688407621670040065694401624555099253869407579699054485314024889553479665100424105030611335678106734272580191133467751889176980706647090776708462190125870263837731008985395125261239755905149277180861430086158394796422878824416108054132678790932873672855709754515175424727929721320254789610129529454722187277307721023140787070964102158186200004386056845048836219934902497697677442787513802027858073752945280399369349815625575139948725209844516465170428750725203624678270446755348980135486668130383482811785403001534314963613942675208125895685754579399292631968494022722879955959658033803468880298406957640860846721332439904094544891852485481156087580798833839707174149174679753739427825919152538419134219988393225627849499549589846864646782082565392042416776246878055612013085473653204751760578463480856150916944306491764159763075650893997425321451057724887613628941767798384881202561003358940097495046089905324112412425557824870283054409583102041828293795219646247748243884864883975911247853648377188513566817243985478499013992034205494126563049500570128136613241564227128028436436168669381600404873570083577776763329816401636647630717670524690330834497692754145601749425623033691872788184590850804217622592225195832621262043402404340381867649763924446592543067112043611518466978640795927276994760405388373679028488262534622325543888895051162401689770988249276190728174657466608780276332156434708128644336091051619259900123723725243457546929682783396317548604891268070361522970575775002409385393783660201272535356781778110468526110805467600366316236427807059817126778014482919812636544556659379504016301361632634171359542826477187126442554016526679098229292355646648146190393760004443352395538870618265735549470036278906817353725105516655328215764810189264777740181201177253707544946127167661353720220606995750815245625184647502531960404331963940468133052169682636324886772659241675998912739394606999608814494330948810872804800615893209317212145515430546529875406756308181154837977774520222354128240357044273729272212543511301718406166087596710584885280633755110182652156336365118389476377249468617328939327844298547376346612481036760534341544047843117897424033955355472680327789930490103902596917954424822362456772606860309018115287317908106627287731651909839371813090656900869186637709001154832893826743696869757598893454702252437928250928278761156307420274230396633298544309231032505306209733190732831817203641023086902545068602365553416016876050090524829193170911629972097011661017934775712148383543543310353196238057559678152581350287920035508254476650021853328123104274543896607182152040569712210317421851228799624097859276372597259702886456189566068765441159091494274040855945041157275453745825315929958378574181349195845629508880099409423262022749464839775107271263147854603527438891626309833037195311656223421257678601643406051075155702699879638347204487593570084689954478323412944717928225729710464005805168045146359681942078732200732106870125117626641931880376950620881782139872577251800187261977825645479839304453544904349129128479618899554173778566954532274510428818718424885666871759860241314215784741350355472390267059324997167972847984395289748747879659744171484957224226231903945176653830176866904720454314688996752868556718331461857277694501877491752554693906796096215436966937844645845600100974172090359855819493906703145815506391297273710921416840942311822503568432675069263261069616422175108326708261780224382589057627677070455142290936260955158909363976539449531260063593868499678630710161165790399048393432066455367993940974455018380660064693968538278050896301395992333697558640244802875744977898714662555571382284436264445938071341770590019093820603890392362839323629012414094106099172066102771599996166655770106914245920710666450505862344558526528583629163904639592113742682181154635799669622952912802209964013553165794765571143678542649387137673791038697380478326649174412050374416136406534595438687011669468899764680466899227276175358018700071025231209763849165831807347649241929717482128672497696271491953808755029730720364806944347286055390892479245553972226390486856629532952755346673557247123325926711119650545707634135061811678098335761658898143533709083609115420323027376873863318160000089881513360148751969295968899667275406263793738447048293550388572660995853003856734107691936966326838610243622064653789217652059419744206178941349916250842834441766694172029211011480344809164499411919841885760692358475228232848445312641628794062336764960779160343610607983394092612208525580670144796499037536856261994201900868431613491216301399559234938736225978341581340606383350072172938833504958025103514485360783877658631681813865188039076589360715893963227440016288052318576578343903001335390788075488487953557458120302013642024045243470991299396290853706311741288528410152578749461656312387999988212838131680827892583740347829577910476720282261335131396097362796481729581532898656511711600752669235333916054285004646742133188408365234586496901656068123998851221999937508013325487230816583280478092790368986550177460128831474923688739555559230530349315508183875951792235534405861670768287544438234272433810034257340018655242459004152425547241265817454444244313402900536494199481614698367320580270802014980835302259454823453765235772461744152831560711094662063363027399875603139826649579292149055997873286171042566040811941691822526502356643578077565950234072309777735643858497168519946232454028030068928867407475440191557208245955884046140578034928577105408909908879958810305559040200382003480261857896810112921729604250907753326830781118347461840476371226572237313243817807745390484906444350896243027670431346620599956627484580847134860046835169897441705626376553114842561752575836962116619828245459791158450790540632780760491685047599140912422705733309206268793815450431413901079501825467753640061454663795364045634698077183995776755286020845359902611936275493777457720009834348426117844321453769661098131113054837521441485981291373104295857598218099499613645223926523929215186047555028752472481321365509792573349918726045895095209965790907380286454781181813420352644924587115993791134918792246970417450521938189091370534436253130716615042667198123125965607027833915518016436995830047404392475334591483327020281864004047047163872005432870762939565737325774598006260861216770724345736380668030867229282984739500443035625077548373117774515235422188964496067274450094753181972442715763180027058228638047543418230108765762620539733544660963867342604179944745302214269907843982735116761614814758429215209534721786038701294875594948234265247847997338492080365597293982499602894594416564571877756027020636933144746535790357368054092739201427265042721348036920458900735312379238130209792056665884917227315694250611836432488442767593322265391317766767677680168715528974839664822305539876100446111676643429810209557523534208529467058333206663675615659005764056081683372648872254287645822411693853926293825490597429453646383782349553189818209111843358557902104145733936076619387129603987778767485743451468075918046159959214467095460753430420640344628271015913155042339031948618544330278648599403109650661801312564440858138209713852385509565115087115520841018209295433179556376710892555967460283206117594587925835648098083923753143772073360112749220509762068674334260246475236945723226193897392126467981384011146027381488538958256625807235108377462357572249756756546223010503030687857375797788419600703065281910881492389455356325729131440660109600108507508444858956408016679985543602043785481928905685824300537496692623653593611307094564929866617493516266327319422052220686224367925509123230811831129255737446792305244125925836915268783225497000543862800825950827627957890443099931978637679408419830213998900521542698542973236638738071007796235177774032303916421701777390761483208513102580859394890634217241413733569300491682102070791064638448427344226227363024814654854491723684586987086731149390774582833390762062086464618163222780556483043853187413982890944474989118127559131055744848333736293459502798047273986435611094008006496849376505062543855396478529519467336630132892534222163607757465561440447439146293294708790021220311437169308967955711296830878998976818261549874987066921598615081291292093671044205816661155108993745968135062387117277497384144703686753397722928835800103308751025863655850616202547784959641024735059659100268618575320408399377276619663277009989004341950652477843967046825482849211855044322181237481938129032564145335997890143692575945631970596951474075417507415569063099436438079308491091668666262579573113222880110043537415799114036154871178501601828242192364026145301236374063630439665137446903738173814205767245151051436372168587492907627545080792852430188847324562559365241903328615342988807659665642146749946013860175011506382960294902270975029501005066953215317379413053713551003069936517914060211928505645288964801496378706106956587107826875174990526619175610014766241631841990782584633259941104708843188782448497129837632664899288149261732592874912810521078239209212714245321936487894303816920955558163276896158964895827417786512953468595162388947059361715632496288440738705711539662685150068949028243975721245965601944841555523369050157603224661852480856755801364862207910789931351276579406174182093208346547981402095603421565400010425242260193222499510469547323817009078783342099773771309199781283587363432843414458548941826738828697386606479307567586693657429427217657562977095086575433998154582712493297835270617916226026710761763992716761155889954988919132476105279508780359671722603653147612419110018384402355736063197277589340393585594185020384230379633528587453811511012725362035906247827596809469665707305229422855766715126465522085268786253368871645049322638986583300812382340434308425020660230159913866794762048069592148628003093920178717850355783472854900141272959107451293547421080969457277530862563362361697101882266223324222044751050891495043698744878142831145099182149431886742811206968800740611848715616206695082481375139699296758369247612051339214397016765492070033352432943866837373754675588339276034746460438510207124416460443209504483524706952556891145537575698619660033349765915082576186211953387602733359691258870625779371939749612610981191555329830119856381636157442054406304811401322450612123640046099306431368803745098687629599129454654141328735413183562548603065508146854638437352306441215453357900902732400304827184566377692761166486935155062927716196245056844991249228530603339060152025323461241382720652745479970832445050869003339095462638614248191242380756295293457984579782544616925822719983526138436029953968383614017469155085423245969573171284901981209421318690036418512278586193661553373680099649484943858323079107118649099942531549746911757631095364758398449727058221103641595029756060686288567359656238717260740841717747921732072731974361760973180955790528630320996427164339396298586463130389756276393299653136374137717569275812722518060573037534299650824964548315333082408981804207847772145578420806811503056662564938733504635344594940382034669800922337195591706349359481936743374482658757368361599314296970777732511729598778659397581646221521398228578160204912203835181914176862923829868878738288207451928146111348263018789735844302364073901226897280329407487097399182067253731084227698081332554053073386260560270373286789692909102171023131181728670547995110328340174219385413217234046165939725431010688795644973790563793040930306438446638021065726176975741161817339082143955922488881252890782332526964496315967993114988410573304726194937867588169521546266037490741669724987619400817834894686825723430465711559779684039479345757692245997801292128607035815295550985551077235126814298519186208726848281491535869843354510778831722012419972682194656488397246585759185959643084685457028319611102206200774837210544562653620288333936684451230448639278474147894652287508142886461217472666118063078105986494463604460390277727183529461391335500258127693345800643047489882010587271315350069510529557734506753625220373015965705093439598350313209808284122402712186398755235948048006895057513159090186018143720634258489162858480908944452035968128612899948054007218646045124513852963644929657288116358002093300316312641634175954769854255691592823656532814810225516812745456410996170686536430399133866259080920297873163749609232822440235482350858620687528709500319798954596175792538403757336668392261619269119377317888798051571411256421835207710203707163871277776080253221914154227051071296361399301164796345371913426673166949550675914423591086227009946631469534908069589101279295643457028931702189709304100888171741994096931166227132856351807627249050474433249364869913173979957044998040270513502174265916590101893421452780702784364653639364201036700986177552225978432125341796389324119501091295477685919891787131279453062994426063069130810813733590429914134473262762118513086208748786903780279857739975196717516163729955781920063790575642473500429886670364888912065193478487643709355831313458259889817744685529060698776931279655716302080210408247828215479107053340750526185449579420921329516335831992647840868933473803694432851725262029976059320518485470656990967514978595768493049167360422512194545204227763673114748823555491583000231255185028875653898435377641066395792751467288092178826099717435831492179014429473070404969219928323108097920458408110130413708618069424350254806978547511861001645842127614042006589731914281881951192564695142951484559908729643976237896671865823330199233995487323967809146424514210664735417430621715527895009583386510198281337962758989344335549712081625176518091762915970966094092554903454809034067034101506814783907445584457069681216879706979052353508046396260560656221518080884773526569110608279567014547902343288321560896382601739431102655831421440251717061117904550928046847275036601569995533870950300592067982613351753688720864000296108107938267105082571571981579729905406639993592639827579886098896112382114984822563507861616595810179470896206752841038842525923649269545527999524334785476815874009922840857111251582263732008060972206072380385580021121284392677912437275813838295503751135180589012856947062291964526287100720887605536944359268485615501033595966886422839100990999562323093011117716127633214677266020979494058019555655910865186853085017366457171597872688004783707425211942986467771473239448226608293757144719057787882419735892647580321388226695080506465122260864504201545653441765458152269373898931889379004201844010253608282013056279216690557904134520860590520303812735841814067790772372202487002164472144219109702532963727541520772756124902775372923232135921739597423804302809519148823728555994117637617821966348129264373447076552369553870528704532204195175044445249694578975961490945275089813539100636149025492313544403770137583977847761704229905317795693213440656540166492819215260035836040032092347014454999379770315893086290649029192610426917025998319570197022474358453296035968372727960406196537271252590753749817646111076081563814140917458197318553871597512403858784688365079505632221754871893349239600465256216802777137571165552510248274984580960999827460084133604225529412999502964776784883471536917850879788334279019977742914826389386555858419792390516097793846781769722170177915295022281612839883691585009459309931095093567478106054003760236672282097670185537766072368257326741937359547688572198829729238754525919126632698032574561972659184122490300935063232383040528397611236685880641792059954453262941139427032422756848468746060798855091013237748383181469097899129274664632493333853810584432751627245087519447332317610795984714916394627628949386126491384224809168489969473654049553571740416001034139932995212413538083733036795136595855620212221713154266479178536701062752757750465951405335827366535700379262310691475223833452636406666114809273799026286373841977917586110196600282838383917839658919801929585299592803149908719842504119491113853311727852137652618240756009862417814137816158015468549838026075497476397077208004405768504223726386223698724831414743833985380091818924256582242775365306249181043747495212414000040446042280436623851612833147507612113400627632252967516005530820007331165977283508744701277068215054976974490748034587865855621993548632867043835423549183136826942224240554430096081384919009999525880616905679335917368031117891722427609073736375007086790500151628396967910568470619253835864407531640457660628007525688087297203906695966249458719189342837418926991153614680840713555421523757274867938160703752692618818208443296988958331340511528368216019876552226085824711870509370587340954807574294989969922822069115490603066162034887492079611039240954644738770096749251391061610852640476630876799876640149311303192991155090476768424067579116528193021548809183983534015233413482420425913812038250763628949914640433878767087818760642244510663003747148860547919390214599749927303961077730968203957531509065239128297757201982374153612035494000153456228104008950976309472013356095148807643309650171590155755863732421129091288912294189567876486554958173000763135524325986748866634757556788883545142967621229085061131318131300279803458721712691186323660321756326562497885396496594551090401525250475652125887955928958823077814387742641745108880202409270585427658460899209086332153904183418741984969780453220284588680457608040187579300778050084842204975049550336396757297969096562641572467908789251564826733816502234041609836882202252498941607534934752939326001344712659185949054054012100106737504456401973428871115263876246615630963509763561454970313500724826830754254345026125915715310578661066585194712220263868924200729456544669478939721234332571760084703757388306445077814764124459559677946735832469159317083100344632228042407735759729577000957047397697144644234659766954426996623320870312571513057088881067823200889937432024929385244855306880388569454490825198811909781026424494095823352471021957659095641387877693833198037895926946025190525210474579996188536183365772024335758315506296462704701324461673628723488620951063081010907301249649197977523571407149870880748198565224983095985930555530161011591567429205649064886541932104541173546320234628000858002156756448945129201087119865010701310991687073842137824829667195705056411549361231971039313014556659789061985942955733730202946878161003639841663120145414701740467622786145853444759659277791008987339510514846851053399271068791015166971945131677711400444449967478814142342374658957952683866052677818213949939085558885412994688084283754367096924338143826931862681204060757059577841889608853446432878906769187668193594533618326496520926476154343715306012070857986027588315577280902074697564903894949603339840401980483488744764510414399491997174043432211554656223654064139147543073036423484280537391655088669125212389282323801837472303109204383692533616851183868737405021148780891318285462498979965854194355321023221186842511132744294408947518548316867932187262113502374081308108598427886774896969542098151611037222182899831892100214086303263621139606047613340858298141799875330083159587120877056588302999518792452060863908053554233462193473795629050804349880236577879259231391711377956567376157074426525390549394200392952485043064341366758303445057373216346375951352494834845812674560723117029488797828155022979994347658957209249492166879938563516619777689096416688609501270066339382235719013247593081119571809374872635714015562559713317536239520492283699576011597400956304832181909419441004720489776009537324201674070835598149304814752247209375763929552183601008590187585500035402676705710033148892599222721689469089566087612025089192023051653790466928671881530213939316883186623620764018054537260835634674065740458660647106241871208883890547396575154977167011628213324967895940733779186680924049575901646509115331011054543592660530569594456891963069394038697268298130457119422983022629692799273912344722371195399295917241958352228973056139697176029534657501592945145480227666741240339921152172727530505864407007568947747849610797813578518955160083287141182425205632235268385972029659877765567006437614720133851373134419552650547695551913489354278071123429488525192395735713254147650187961912579467909305656887466127566536304667097726714510749557610388351530497846801139351600091622206659292213945724858122565133363503578067352307014598269199720735382212258454471752950659148336624254540609952523870103084862721544603072463409263007808002646184027612486739107621295168554873216405441842380695556432785243161383854653376112876755737243253623679078707505497782837286062550457197120006611837120226751842577733888425903833653008509573942241884366908926106814956352909464037804073607294075326516539752061081236439762480246560727410148415570990040668734999232109746893687570265327979775400173880310661650593591164928039678958452163798658573918929595377596682870470328285210759225359872825224072538826655270436377330471168977660083734096104755901366890956266584676361632215217759739933373963695528418428603325649387053400969587080402120316324598679893050340766381341495581997145158881008530359783402040682355213558412371384866830762020048467048561562224998136462950078855409863812989830799950395770461784794514668546125457709350938030082632676646582733752695606840533013652668504353750987658632378498886115200565566057072245161204763193240535340770354463476423701802935785111587677963741288831255478963131816526134285998940886491322437294411269767606661287164448673002161661542383638292250078166454560390227127068074318730384319159240475393302642801219766633091320574252668713726304816221779715279559374205075862113024522173075065140345204666823412792687039190340472074878601985775546173313584579519833421271739147239281245235139221419652556624935866833785177091329679069748785181398277093168344269353946516848817740128898845102069088074178794902291110110542587711758641180079677571269983655387420027362937587434675546379113649490309792071154360911469739133452442589361115729114471015509731311375852040699350307825427784328212353378494953043186985442976055476639484406302506159211602764786489242788098686885261665140169555941163140935840254702476322816814987077302562459024041509275861358859988541527703520492459400324625750843023710128032036056364268536016300610842557965710603984514534675564849977438710757438681240384960704081343447229576837330789356677033649865697610342632275304751602726935548917111016611126401762010757214521186819943906115687547712677687493824877366446012344003843159336326853175435304127110947560993767850577094810749711262890230320972151559261975071444647729964284670631140687162041163954411962844966924517080498537655128320720657552511664615985227467474929344215713441250402971029448825387040050501495540708732302704758003964760581232823038982176843783561928720685541189706581240122849674313753041144265146619667790893037431380691773680563742633825528090130813354448790722076922996208517378296143169805647999837577256679161907858271104482184229702438934125155108497755688725151852487317741068636210540139979097763976950077499680698095919333125236032029542707134771535681692496233729221082575297195646458091965949472348230572119078388180216473858735166840858948908408233548987860251578392846347255748779924877302980298980924748202032276162939928613618248496662653252366101328282848276080329247685710226064720225006551638202997583570279443003427003393335163939690480707709148966196504644724070136449370965003978000225573472170729844749018567237995247253303245015713293812497608665326681742325826236270901711187411980755033365820906937771634122316518216155167219684792182548338741880898435417080174278451720400223282545477916879026620866186339323724165033445179035139701602824764279077355310303449434112250889888815318085544597985861667493459811669289021776967865398177866835496577974547943994235209605643397637701600399661208483647865431841578372030845889479753530203219596269287943028035309427001927182891513851868965168732402686238153001842335726791513698834131138962834862550391889450964611574097341621198196275529913409956569292275051335145471183562378192716112706136513602846169039584419974572751904533727117545478853743180458997533256660297268429984510769496904176662039466590162827989095241242052658339171427501816827697922936888980987036965553345438449022390343825902787239446046048384702620660374290986402155113519968970051624641028607811543774968821236078198233543365670228179382600510564082418154415572168097251848008229338209822943555310842679713741818635925147623220602381086110330789041827166611365920134303892275289714270879653306534808587735158477910386359998319090432086028230274304811564156966850561468546960055458227183924270666087157546743559295573860276966717926184275310364799967879911695797260604211237656977901812214798939162480889997044358982565438577857117762138529586488804341770947970312437786001510467401706808509098762238719227076732563935949739185305876557531180461196951879172319169987481788221043556057221025985669912034356192629115361962362115109884508009714066151215823089314274388359184953528620440253059020167983572547310726501876351221266653023991714594970820855090252999498401272058081221853231678159430797277258174732819175041304240686302588772785772795507621604681998671677951264104690762186808028042813767328334271862778783515964853322123047820992692403612381835719019448478222049028949985968268783932764098352945856161676692873210507122948631783585978231526681986397178172931797709992366328478811601393336421562968520556279209836059490187404488067229685603814450963084500699927559246834704665858276888613731524767050877252080220099465276256223116654813137531403467341586436165695338985333938264151772952716392739514090128545456219154185132401305296357435492382253581697286554123095819465283591506721709434252535951914286121145943341498388352387993723766390639505921815606539998253112326927517343453334482529005070818712289912851761512797109626164105261909111958943225679941118460585373270793889874232050835838745319341758623902412699070903124225008718008346255832687225399201463313727826047731766375789617698816868853539819279566433228840246590455345232855973108958609446114670694356972401222514273718574675737467607729640690486726949517437725200695776606619491039216430719382504473881516186125862099034365941046364875417337287024983288835165156145799809675790948817676565663102965466022944982660561832581622901464721737005834765713401051073738740182151232196917575182229148846696858395220678787942331765900123792729188687712861536931527505774950187243328366066015341052710717588806714082000764131951070753104165622536583214509911881204127493885570243608286865528654449156892034937432272913790135516061446793365703864608844593474170754355943408222487106499386371471338696414998643672446754516080980684919810322961088393971953212523481532242862916775068266835428669750081586534507891034655348000011866408639233150965990512581151292874454391311904992156064411277318084923237397165438878360178591290628958518565128465036196296877095233418572725319873653399398223191545346284360682096319940880556918097573683484208083022339132548581511265035315408655883342806877492981286967225704801369612335755061843699201346483305761678677345769498781383015200526719362659130205094261310629548671948767155916182828796389676636527786742296376527268812947624102420771027486681980387167690704422616367320253976598745757803828362346961520882453940653721732100154024303763587685262694809669118134382793197568042002763497597887034578928228861858295230321016506142396039896624390552919648763370449257560579860755719284700181033361344862289545922052605031408766214889496855422603954639241898733180852241728466821545605500853700584182943115589362253801191366479481544416400025965814264671848635730984151697636846191921225077032576171923794568287111798380527024924233976949916795472846406526478974125431263142624911628474791092384595094568625623065111443734410813145514793524494229271211179793289042205397163064408939433003036204479644431944722290029236299983726103006136257850092507186644664902741771729725800324400129113159253539033940046969548138989515641188525445253441397946135867773746343445019578788333556114841782915809523911528908235207360930818933370323300095663309305958731895868949625116427556601737350947862952000101957218164070737373641567642616372911470081874588462479710456987082852314703483439868464521750419333139037372724924212402484152617029566864508685030045577528939362133378014241714517484408812077297183796049732065382210806432457060739976683176303821705191031934835939346962148476717582327014770937832876435586909710435223457578479008696321239457406293419895816185382673021582033260897603060921193317345679174578488907945880583067961817882737592800130567549252744978380870278017488703221534919476573192549994063311795517756787671143409040945356721757584511693754411161488436377180732709013090760082428498389485650857732207496523367335796444294475331927845382528827351472067177068705842512146436126338658479670139187410901960766365643757369610230960202410611406201426124627477736358628838006313854422461056386409418309325753890693287282230855504862337017264521572528909804423294911169978200566549570641641870021418632069293525887954135039335390496728814047391659743618688285211401242890651048532360393243202816573249697576873469039073419333975415294701328444499096410625095845704352785150699984278107173430653176929839699532582160589294075696616410379310238396259202904012033988151743196686493210660254724271332328423643493229338360225147823554106514972429795609216348698022093222657768930677654465966480287408513700722372255458415852938825097098690050147157031987499557066315468703082358086534865192192098405624325704096609020946479904464083557469901421371563508509662357915181336147012633041727388915373705946732017481625865855608343115502279170928109809543979818411850224586944558459523552155283903405325008552950090985624675580118876330969917985193525508291126575910718083662884246034193904705026440317563383489332876832139107612111223874661135007353240041717881286699505320123597704984381833997322795796140481144061365158028410537597362596042048505377777722729405769040752597315047294108381816281476022081540721849022510985783431953558838378403365079967043853190178218419935082739745347691862218395635481198505429283307255179223966628065607095469097768740421937112144235429789087442571944695719927657102189185628500797205064783485124470752574822433528193469724493394114154005688629926914143447163708795071461951785000681720786689448530395651605945504112483301481383225295438093895116524917982356325160576893299443923440694102415218139063978876037426956139029149891497736573782752714989372793213024925782204206338079068432872831950211752049687961812629066557918455780687604970432181777718773489421517990218888974412430178511129095610485384686068924551863494579964827002722123627496588072704842172544730895203305457841905174796056446793697560830202765842283864050606944115881713995350870951769691137892054784140126468601097202405092895894779945184037568085287680537243584124938816567935416504673343579724604428810644570460456875958577144678709534204157352728125058097404085132761927951004590721679941361804965438592841802175842983278190754712184882558743912999347590637673850056457549264580865064256393024816903410492712136156616185000373851722927724980990400034272764022405018013660848783719920812895027763753915657410842116448911057462545204678628187847976826907532754531165014979037937840113168602893806119735332471110385099757564475514818744339201628784020941045806421227656610120253934459529665915036074355823783234820175871116950853067704180778788729349153151222452003244882266048176767384923772431709951727016080127525906631439121436978921839932684360536881072324719699846567495543552756099785631678004341143632179259830204471929704457374641986821799230438563431737905263666515411731908259789095963757954432420313680680712223290671771426404596512368897801675737985639918285062691156585790587985484975400948774657120063216523483250412982324554286213867613790891701751543655077414982290257353087956771664385703482960022430486451375464491954738298443174454385545572387088295612481821040246089016249739341613109060664898963574540698423512375462968760347198337105696203910985847143946780077024937150781494197879490435294254658374223465117419364549160319814823475919707581467200640243398094825952029476711707674065682272818240927898757985051690693050591028954300232497982606143665626385980907231945059761811466254180349164606291859857880172777567438377455273118495274180905085153619206561745404253655339497399809214914627357017665024852523809966507058825727989630648552835383112398735989377787433912745895863090696239124497403470802214100937266195689620720240899982837452523841952898848565885409557326282026586833145257495462436134043230812741849939353278653340947624451381520608054767595572383260614288234143199487705510894008365505501261759333922115212299427744790756753969297385776301709857876834048260383376274121888343168528233977702185924774344745049869097539649395138251780341000738155479084747165845639137931391612107926812474222202423678953270203176172616857575972848303226524453657289044156266748575823403537315137133357228907896537607599322918541564291668008173255929361275565800884727329333952506466927724019209506993741728300108560565436212709497320992558483041943236151111839405614957332466261752811864054241575184335107818980545806807518779861064684484686912596346568465122066759256607308940468502648823392922811168034118759812604042784391054572890520376021218867088191542623357319106173288910442248164166576062840050903012398628735678028371448934508468095561957069608695146146635097711189106719508154485068882116241915082525992764783021431042942842699991649684577669078884618902430288945225148533675240557614803226360307056886101374337248490590048320183013731498933305485030718771974846492161477114315267347036138377185308700322120703888673190332786303798849779274566359661001443874524009500733296508693386115952695347420912622132281317155776961096465777160307312887215994092158340755756223476572064280519145017514142117183946032261263059166840686435452414094960608318527298352677591590120560449537403126009889647581409921789129162850168678281363247877246584520640481269261960674488982858488612160089474258069953312854003956834974787037651785214534199271310116462010553026949795250371650802037247533825166329715682025417731399286780634757837486792879062763735232968662704768833978057364921313760100554236566746978504070773434317516854517689071039794411170739224143033205240683071401500385777278934541890478064461308398449700711282580123643553603213361410694820443872936188083132464403765283618424578514481062562219706185705184492550014999540682484794033918482303436470229316638377570088370574403310651873960322764729486836301218126993609264627285756624095548383340994889247766546988780288788985726943924122669217352540219316186982969024803630352158529996967328325833710546706333120474710929463612293746674296971790608708853137156776281337871453161811797446899072919674308064377368676612022349511924439819734506461256613689880125962842808788192084674227058872962420324755110710805299101041356497204844410159355175702940902593746000178010508271296593059573691615005326981951440565562058241726894611507178278955768647528163996392371204469626666826721211362835420748980374947882885350867199681354145437087222918137940601141301407029417902802323689957229252098513693595751714064349048178935627520921196719559174582796426772225411631595991620044667598873185179776067177645554007747072450355913212314143689165461838487783212319866762569311712066728156265622571235522702257517114271882742859487050009628807405274547013305317224734980817105314462578269279252428494553557394787306484969899229828946974589402482277388896688811406683403752739125264978085426791457494071686654636353307935103415667001931494476498894351427776580563618116030987584780839655512362783501738604606940192897203047081310555702460613745531189240756123920103059559420746934041499491556640353819099989148573365329012893269895326913399989624415588453062424036354273674602636752919921448227039187064795336696200108868800884004531152882030525707469577305096103458966504387354049720724378815357759879516064415115023645330994735565526472552107763372101945163353344424682414268197966245044468643804950419876380068199238443768968325921728071060663505560275472295948955576889127541750191409651035479689382582513454850869966368741625411528419604858974892606549727014539469803559285983758059772650272374382472468515869378337281554669778572633838487098752824543152208680080557162165505000579428797970495649426829446846021753441820420027166097541974178562434371324614774253707902419144033709631775557383098744375815268725925993477192748711214700298493050890997617430381497919721786152100113501023492406993481350213918608581568495075843007082589698956625420829727103829264157953035626258949058010645542502346747932763327713382831757330689551059849454501840275869685655676129247570499564933883033813376904301719358986605660102748111574170859709943862998597806322633531539540373885567042588147489306987983276742402002113694480843481785116051885434104517354577249096089269586564627496663011565621097382896507957109981887346834411832598273912510856705503395907119897365953088177000883700622503835886139386428657125151934537704423467853642314068793963956359044904078994026712500988361502135336899410594494844559268447931196537294115339152430524657519970711365231712877325912996751800581997884095745083236498897668958506728546332602677062152606612072256596267026378150059877991066732342652246618932490965883259969253497476062849706279704143480802146859312688396673063915897699340423659898876643568029811517162191816048437908058470908109725010371763682496669894051895556294994355919566311435491490403789426385247353695248190877172466061227069493587557832645744726968684544153562956478150506923384194393920034179171296851613115161538630628959751906601196665292069945343439025673887075957733457001496395375537219740552224109634244150427616676998009328902123050347569499585250491678475127422839851385472218609268704455985296365334096038319595129477562799455697216203541087224374140423427192783798726121083355466698973165094592289783430135064869500054678913723392980218888317752486708723427760274929841923838736029002558206176987633975814898255205952615403946334647305749106976973534004700286992293195749242660573810366755705340276553992375140251185969432351662892230389298405113103173435938460428104324746194028965306589507441103684137306257827683381550838829460861840486697318646679872437672154200101866882682292847326292943300892983294852334050479583488798190908545320636452846849668071944803403554151781705512559555363908149742147849238966646505591312633789134331193446495775391194811820402553538991495900866595648383238883339911958114534780912677067378250160336314852858025557823230058597368057276701862456069929000110751725593209820416204052188330200300966665210340682114870524264125028592594046657760458307930375484910441905252889332491158265364759458385428171476904707029700251746814553102006155892734706324605483954713262252801507717455064066997473368017720312237992195151964610015655824233116418675590804016257061264822114018446316193121017983333892892304311317090564584821760556912247211786478808553201407028535858978328498527357820569571926701548594708605382245253026410251668894951689215875728263156991792939470847069101332264199818069814330171126730486896085783748250285811296236449849395239670495160981729798421183181206557651077891429886775274800755239412600865856283332354307931786334964982031766713889377847907963992463389877248978297495395940794577247656507891403916689657724518263041813553775490840481998723207936460517659169695167065024529050128374622939705217289451014773025032237762202570228552519070201417172104714377044943024785857668192744600868602020278116180821203021945487648562110859943192419478151468447830278537767329393870436246552912396771318659892979359181335543240728481110454641234057169805481837608820918154422410258940371587929251309215861777827950985526651213981021867545698502765111093482577588309057420033029733707666256330938915644993561136472409476022676065522632720710209334297076123361565162787741257067283203748783871690525751215071894786737902986516702564600985870230600136259291345418631877840676798409409298979531069606389549542228246151411042990953707489585958641407007047725666843457679804258139408476082652732861720927098067397570297741980844657009434333805124305724946345076906249679292186039159955063845002628094380357833748787342761881498475836648576793563069267494978429323471584533276149867351679061810503434500500825824374673770596824847283213254957154900974332479525428309198824366353231274333228296016953769521188605917326174434196798988796411393295443526892822929142755131994420982808520176226990679316248566228961941383291711143819045903539455142337918743825816472335064228852207706371668369581906548620637895240822216380079479212410095606511094913129043147349829516314621568803081658082103378052442760592396593259153946285600100734356325731639225931298650435956536881412851297194444745738461966358360661094284277170271997180832861543263334778887196705111830424028449941796950698384446583372952786676805586606284524723911500537057903018167438224094951837626527969206847593368879134580666892219355945628793608591089676415775579852469847608140816997041123691157288105096983145401505072172957260317723632114556614934362299249789388419009707055960232781101696706126436720336646797166985432206043279598265682053218860096962964256764993978835889152806127526386525942433663344511085015077344983432209919914225295243342884391105668040407928773588092274609191488341183407246634384682321147855305942113458468535738218156559964191237964230452437305152450011427935815761780679903214716594934354796898868155086505685270874803247191040853461787064262192024022509373631564342328980987493126833742156768132173017430090550495815820055180207487006822381399135916306423615077388332789958981446096499123664823575831757047649330789599797759828294597306207402631420954579265393565546001131771710315213142944172063832358530274264089611481247945975949036923605698650221853822402987171310074863423435010760305862586031360907366494140363306805494849340211406778974087548089306096591287829762524191101032932122820841234326338304444805145143231688980572773269196872295024026939370577462621981002575648155088054507025678085281003408380502568333706486837957924025579046065984716310433493932038806145653097335841162647613897496968375621605287265759435724029089906857794635402529071869323180002244534198244220092325675289524065953556649009451390764023562276872227886745842944211257310147397376789089539544684714000956509791281020953549407337108779212889685792286096856029305653771752322704101370483412662595498582662883250821955303884912104661364728089226234831838701372098149384886299610606847706422961140742651805897106412230158638631701331237244697193540294179924765536507161161130261577254685327444883551558055830345762572324051278860354779487474232169713130298216620372835839432924450028191243295901120374106038019441063171021795270616649697931448855065580303495976233286604732584672083246758129675268777509540566970218448447268214400033622388108617116483295140592214446917563684966799773752705135826455277665649812112464917115577860345673977911400336977423707534948045814989523375354181611154240302771030297121525942108462682686276654495327657948572531150864394561113472243561601805162332316625236215374926658921853956126123658388215944906096279211869191387246506861509597434134895473223438385711957249200575065147041175735596470134522662990235291506568456588102288871244316616880905409287316621776011684923536749392928799113342749402594631078011482601545890850960668577356132007687019267253483498841386772189011596293725568685339503555121577834652402760408592624450396834414675721047414743805099258489498228628367340970942341741385756942762003586316290248154564470008709500659012659667384741621262420714181620156723473155496803271043904415220140572451769379179938017765227074112465988763760217266547801510344532316341740972176735140518429565265216178388563485840514224777447976160085925977853196570073856852350517845389689401957171577866218691984690878568593315283346045961344599733421204748921155639009248637225063184219097424630516090223864658987170044804375237694236658863092346810588186789583236732664556524147145108382133775180053282090860772712421254957110085736485120574398775120938183724207225922330391245570124724764230184733592510338301575513293434911782099849744603626377428600483150423494426663281522419429017310544446791863457158846038814355257038667357359558196904650720961143376741890102347827766367830041940486514302651719843376004890312919011605818563363516108336755240854183360010567502638729059710416317988983405792164968734910507258003740164319867338581268857152980513292621024236787839200657971106411868762637993349465401972581867144099383423608215788846458575167091926868622515925124258255441961190113880038215462036977660702728148172280752547295483547372579303150318387124230891384564693608206243945075463750021124605367702624529680717877085951677954790757267754257873726626319187848006399867836180304693816006020753306555964221646195167253493513057554517965979990351706633802797303960170698459328801560422442404273876279924271758771526811444514082666436358507613492611867448860779948564816225036935480734496466251118746009685788276721154155074044980486012947427593320822323000765787797455332320078886813774838353844121605801573345507561158059570296820626064383945277530877534807238695900603478642700640044365390439723254663505854194375029184622173192566215866554957740458776215347967172521339634004627761887133717962399236339561094464382961964161428810436376905763328964250141744479770004032936101734100248020945410574688495459061041680123031547390562216739393671167486530818936300703013110894474459214125558146890507998462718224396148260198334843853957951027976053681670949319619216388094869602743932991035789309060691078979469376547193681220724742287260976503668585759183501420106535359276511242459467909638037591735409559593793190707381696552551601970849801016334514679168260614177226026255799526552793075859436653480698099844686035533817912761248491539254955155374993646916956159552174936319932201895112598800597105967874639374180554169748268338972825976305719112654990054699122902177887251616443379281483216408935406854458351482875130608436329499727754296575122003717362459081668925884791303804612565102244035822061865876909247588874596232180924375856415264911200597739383840300557912947408227533789593914100664142105345532482610206051383392157824617189508007982575477856912666781810512380278940995759813388410121808737216947352254254710345561929339808553222072631330031683033409599129993748108858362089444223977796617944178504650188737386769186559829652495371039568594596087710865310426931228353985019095443028589170125645295278541143040546058237926904592791944375458064396276186371283251691396350169992431528609976236673777410629963348750667112863132985692423139989583603637188086890164540446189608646807209284423161709280409476301781344175042508666430205414935264196413203184677220187859355060128077644029282182767084849386053479470578585348618071873604759947989339712504986349984189613517672681225568190447012745979967612523308150523079236906669985702913811383050518858494824449815191673206625673479968801365462338037114068687983278230624308274809331740952140781066752960798149596610296071108537956530271470391923101768001866522521197055991810787816805871901820451351565446387615531966751609677900734418417014515487475163465897696677916094925578061386470366225862496528089587429640470705425784629833310663694458580275735081017543862283988799733301524417424333348437922685227109283678791250766335747961738364944926439722710417905804443166996050775552874364255927717319155871152089472025899414328253171341603742898794625916711312203897671108003203046677694309319849709534396346164334656967112084849502289511056541450899499640569062500479491311287035452202874872816540753828559391838507416120974565809818503491926702998226570776438751438341124866563671300264477131719647843236336185778376338053418996035923258236701842664169596682641624011169002711498076182080868578019196110584555434628640685211269860388238133518404151636769089729490618710567302819230158685455535693075152143445727123236710270266823300590327319235685805904240648133897240375941587230963612300371818964094224205997751379466999343327757053963030676737361551347120876860854520810661172185886861375870725822909798053886875416151981154645863892310123894924290731792757444287372520964158616515437664320300041342631287634145050880958895245238641784996721363813947617991196544730003220818237626368704303121767111051032740360392033598484607329846336476862602176329100698841126183442774253323010488856230262822161764262286300280927807607768004320561960244123101816778594923489594053880576644859021076691594730311909376881850638786054864308309831993567666963147846804088157150372146429229538361817274888541254555824520108963096836942032201974151989964456896587766169428031193126457158624013888401422831115271345372870839222283993293271345159817916214439575835380998645757636541466001615463024470213592043692680981210668262746106363940415526470128395865386252839614437526581682805319580109464931562917619982176116716791934462049966377422113200895092546783263305858379591481370303698225713082921574981252179125394529328369608382744137276320841007509029912574832054247614131829419232510401618611139444503785859170564682617090526685046923781740977920866212784446769244760446255372535171152206903695962097446854943423565173486049657060612897656625115978186272215591834276194276059890756984188794207147030918675312376020129259056873584306640034574145979155799412086202235199041116067280517944228488139876705950600794121311107942723039849376642004827977252978265226483907965232477868933053578957915404559135729157066144809835767559109317129129422587451524957980432831841016003372749601427462086597892832358818359792853961537729381481731177506210556022092003343393346700995654424083536610479734688226730150030978184586166911696133654878959767739789014859910370524676682911689454285161387397032849086239365314020691800863184520039000774631497063308419953256290075016513032043581602787548110286543378554663653515126313779596293355837252468349259166282869029203801345428705747954991575083077200269804747743387319142796741650510508816806792932124944659816341766857378832132610353829516512287272244066120351282112623647942557795575359818543845690507670540070747343893400957207010084111948274688329780617946336218226850022180245316845060065879481663872242196682618138000047562966875099612205204927749872909527317142304346063504881068233616599393484533939434336496225808551873692780439882553970458385113525955035475227727013566001988607508080589543960690597916875184486020352410264138690408329031050396468273561676556096564059417647558679088219342532923778690575846267257269232909358348855650899868924353934114868161398462356029217475174951321032343063268473467634048820784675585144509456574051211181575902483556611558824995203500348511835881763191551255616218103680996455665864528985115883189545744354361806722096193557801445039320685868823258250813802804854079733984208660727630237548906272607540069157991888525788926927883684012746356258162897457369392183196168679272430786088459704631395545988214167782987827362933845881064253377018648100706313282872529360110649218848628167089101762512711839165256841949227386501871549518019549638246860722172950694627536279118149058998064274644962498371860345938634964592764438450080051468069084750656627005707651455601973988703596083038750005368459352635755891406946677504218261997851214119229813627320045301295330460386649023902490314597386651012062429346777787477853189077704088908254948033915009504815344095335849431471151332167200931173773924737103343883902396134048780305950288233170776023125173023012535510097705390223854339109921734899073096512174349998423303686828397468545583374315459642475665917233158343416668576794437138361566389019214613106261486400667172029415800679959156619818300086769510131857840821372572690646459254187874152988597804962506622520502999169045927630384161690155014593461229364571988592032899158641446255655685880701692016523997029108433189480341110459149701696587225744630827987728025983892852027318801162155532540970997374669758109892685951486508521829767075308164639325171426028838994826078192871149603289891185119646263747220557076871353520341182404009633073296700161979319018757110311291111085627500845484377934595603292052871853421251277606323312073446232307463840860003219381276884250334387125202637021387452295832284360531628604402031736566223151487709018907537500726298336045690121753386788573559692509868455945305440970010081336234565446514477465957366282781575539025905315537603356048929099466260464908108020733964620715612567875048350504121054452291379161958916804082278226781608041337442531161747758049480931867956104711298255134993222802609168040733982091683939626140850118334313197569247262885648801431903941554879615634266373958263665167384162699117392065895928499691714944694871198590794689235554250843803274026798158828103282686497482429971590006544259015984451318909784860254146617913906935266882005211598888415513101452475228463163070330123338288362261188095231678659476299535550458562306329155521131495806087972529188264912853067283793400255687276739414564604654088682833669990856630865513049376892142229453102457990771264393908734292314783606277254642084865521315625607223763766976200093529575325085320663938949632445275886822541481001013164191114626750368879871792724140061831382995025141593971185558618828801876266657682364865482017874973886723654212718142091545774911739600006534142272694193552243275728655716061457912589499236786830939170454616722224333887304610083170386488878347551209302383693787036627559764222108249739719238155944243544211001319632657299716102572639595036873347273654219981462779576964748359356805726893711180484453129338840081356750561429079471879873279261857272105430367165150592872169376509941376020571860477466797406146798367169170574955875238014586412651441677854305258511681839894323114421011046912361352433814706517851345160682926819607758947090565141953005636054906075089694102851136871082075197277309483931454719463740393595962635823696039184683380478703298529088535038133177637595649743771924072100131895509312865662172575467720637514933818917028052379027215493718869798364097230120089321610507212393349108991073593636266050420569651341668373944915050774163534441349655534100614455464417474838419775315267679284262996423001448141009248750787105538675227427249448443574843508080605187847631921248014675953425818685035088875531584982161817800967415126460409629357786720640279528476865297732000146009664587133785106491832278486277350350148339565952749555309422083670845643574535018204306427054423580662857675100213673979907358720934114058619684803801755458754946197925824644082739130788079825643938497942977049470534852685872551440198801599309416661239644728886470568064758380104453409690103576874336121417603247776717898678127758243614353209231967959029312563190063872234396243846466705224868698147645023691131092594464959868143594264341961375342295574167610572796996790486912576872668337764820398107896066485940214199867095510272091777878356653298605894769942484852227050401938204892874654488294067769234071220463990771820823931665835983726528479708263126070290651514332147519563687925332494773701516421384529982925632135561233662603577142654435547333880369012816224870427047097326630778530607798171265369513797628170553657246043945073026567499555991115415004347711069242982627772984884324500736818001205850647838240958454695701850962487669143750003456889164761026082446685126260904341551872876617029813998101047322838430952457491518733875829485803988562847123600438804300682687341695247833537626800945768585457663605838338107670029827903117626333471897982520513649387885968944006339987926085983163798818011896543967824253491495970665151486254640078593636481282979883867279542450505756909673759144588131323453494194103300040618901796020044577282547234343835909027957802288735536125424802330553820204051815729722740682393794832102961612290231923180006909261620081939781781887064579733088622748868782477501200592149041557595712008424165064896916926040637864846939934241500998520301120115647121954804128866083529812650413288268869724895978737648380730689315379159925280889999475262079616337991972242575851153656892730317709557802339360965508314560406394819978765918102509592297412567382843679532591576588542522267733107553182315868979455024839125254039692657556598400723970245788538555542541301906554780143515138210831731607087582542020969594710108471897434934621455626610769929841244669915251603261898561014658622616111386312113129384424954769120084205582872672029087846276958433819835922853584736328608220178523973729731629374087153747020445725518832024906126128808961671601841511937208917976774590658028027598493025393450659461783208923191311925493468678791191843902349196491422873349765033218062256895662871935280098485970012353824448096379126709185449469418821281928003075444621549423880312584540775865669800111248427549302124466149788479193338742864408594876003276193546091005281478204091531211507974448455563832238931702502875546018712869216656460702056277416662820464976520654842086707691332983526768104056046354037029435241774871278876456130789745594338797415763292798574703940719686975044173920717790874429478352853591400830285816629999952547799430238321952587572684907258000850929505887655816974577929860207314125477989458354657791810083616456498266623186421614176276977768527834635425153769683642319206111147446764342851723199746411581233258797875141225292953059585134403278698385150848855057749685707261711849578593917819954968116404669203067822315273002429741937463171484927756547305676787803063771606138758674683425943898370242101899866655037202646211747763907951132930490584628787987460786133250313362911002420532928176415772686242905421290049337235059401471683865587672617145803700746833372780099221314999061124861385010896846208647703625169897510848780903636695062490416326111921713091044926189651560111844679903136006749881245221746645979501717263558545977917951476392773264756089112058324315744319967201273804065647277141994277090748065476266989428904418881369314853425115431259454743466397932525498791013860767671785580247480580045026174565415348467010570388303711718554815310063343237521442724331274979793632707178452515941039897985497166533840202091188044794286129569174048987526088923420960740632939105697333100054651336667357563013054219296962566771350011367850647910423207295085003291108900324223361333980106220494170452007255575776805442827561151225419569605441434480456335573488617003696162633878789494481910403090733149701956775887329876721412537363166375226134423726805154999047705203432285028435792903558073671996253946264255180041205364989117755440351042034625557398442076128593692747570826220639886348507985804824791366019218670231052453226923663087443436757167750267288634002917380819434797076414688930432003445652024987462531955704625181195222910632417573642432403689882958942077766801859646301022018686774868703362734733279274540766724411477546992519077426560057795055018786386976807970080494599563348478197802741816245013904306335099394669387455792453388894990830449890288572868375006851998289730781989367360674919008417273255863207490446172505469225490825866206318397636868508972620773705610693299257005296217896387375560368397815377819384588919345112031462880704291162544086328865275319796813188257097667066784340080738992687945139276110846607153111230745295078315562382768920791585837045383034177060987123347173950441519571520550803724214045002015301859452763752089500804398607311115503087972089174737725254912229616043573610296551287354748934526092928043598508598321990597252358233101657796477955803223544358876661565809740028048700341315075340544799415052158698546623510775314469149771866742253827359455791651215356563769991543801303782842129449039722142843206726827118812250915151654631629279569828144491282541723102157090651986668943853348742039902575719600690623264123914956180586849699422807815480270485387970686993413696159503832572161171841626291403925571616542032121980421850860744364443923715837570170875997300883506377736377201259899689884730767326498898099155410831347835530882645726986500732098517476110614447167303634375456834853351652979994192408318062203037475222710138608747761765346748941474166895504235358147099976089845585836139122945229588460495241217647549605680506626902089527293974379361937024642084624982935167781407856189978389619472389279818017500134262926455582695357012642801437373921826478772687244013866396564274712656114895392809758334784201211377810223729314341670784979394102067778920817429329464826272275238546551702942977853202959034971689485665367874064144080861555887386631941714499206233551578794704893318664210818165832581902741524619705357718843310281526423025523743345791994178489108160857004875664487612836043270734769977238197303903537415003968704972619225790310250680189634107251543048052516179623763205215346558531520449673156647175406989326429981120873685050260999917497297873911824315362611421830674517371614613029183552249690744977553135770954843731924995484620485480918519305246170844535454063855177859136132059019359867282244195788268695164167828178780297719841421229232326345936544185764276595420595843013013758586263297529258511951739386139049949597923495774972505227357943355514554811501514963644390996185495346410041965750518710927318793677339943715849427313779904536486662694224596950414439764170135847980960646212616617399239373234370336515115705751298815227004621553895495135321785249081614604640208721551216494001441888290992747304623756521669152938308616017514077725906371888371608745067214975381185664934203632809508449490683333424724199803897881181892549670750245067708651562698329261666642151125346770164044358630280284924136804434864183937753198999314427850283063775032930927820824977080053143994838118129091302913388224328355892611483545000119680882417341262959544008647970671758839591166427403755513519462333798494214463076687271361882974439347810844413534415877088304207417100354667042552546758140433560537986704661853121461442852347621520939749172754346535068769511667989087566895968584668135410236118616717223859554720409807172859155711795912023518381556200526901170722692099755403197653214677644329724513176281475795372803837061846579858273752394018937730567577316472346966979880437383759099938621313882512111391130112478671930215946139716238464143112290055764625265020729053813059933368811265057077648411809708348465243916879228146253105698246883222040466118153585852017089677597151448538973975810785778756768036004969863135948727254497475298526537644620821747713850348465001654967595754835911621467780829948717254810037093911085874884105805736288965113561751910916292469680265041271287373718511882289345443230598490399239421717157136996557514725866914312945571645108586580676611834177640641782192470906954265960068580235963667667135480746092136009609876922806585300116418286230871262484708653388714310487935233447050936207466602589526299048976963488456585128906219611979275820323487972977372370095592827871924299133030199519510041532325879565174023424266911081376935852771917948326699942401275253652921475955129534105852523370496584933504699623695398950260598687582779918199502271042188057167062796130713123831700400297655668446245298571601391483970587557347042479591492013120787327024498030790939625340201232743061505152097458693020239920170735667444725548085059441441272590659728839842043161138021725371939209075550716921806715113525092852421278004795064001074836005783196263718008593151572059769360676318164562120952886366402968173005721400780993229057342477213984589171948293258355994804651216237107685704399722236754142647358107541286234269338403022620883833431489173062971205871548962333223702729088883637641992884244868140466594015217614269658794160139600983914823069534450629746948828440158688154705114938229443016225040657784563204850755587696275250362552502685363714108954347992246552034871852763763570974273334787370789554245763045259906023376499831710382538892196198718276367515486979611616937586049172757669254873884111470307217526748407914461817753701005058761162027338835241078794732239043630702876965644005430183080511304453523578932176458263611977976462751461002993818968150030543618407421189674108060676150505962068593811866591592228845620799079188578695898011570637495720837639729642763089673839502658725175295697794330654255049662778865552891435822141320827194584119368860327479956276799511262979636878853637503317454305385696211932663342199868978208045070102415782475460256024703604469467370272416402202513362262594631261863573055972801120872816672260234212179099997055502177238343052318225941503445602588404938714027107470708559845796062893596257091501076126903725910305709699105766737440005762447735945732402574775025797340405709566896916486010630834569374648637246695948894184998644051131558420060081244784215143595437656160418181023860342366003786461661452515478510938246340287633822700442461334361799118946734522516802747705413622785702363801110254331464029277296087267599758767548100831311408830395085331904509980123373364364724597904958488540135321660959572030597685423281628477353340954966179853040365105416692305869861426797518288619888101095497915373939175303920359144035390921810166830052166468831946006290954610246379161158142916937097004164363034302518726037217092229862438030502145034100598436414273784029346614797764192846109226862684754340302032944859695151363841246503683130330208568120420613214670644460652175777501848004122390167564849271973193694112858561697937511382771080707224705094661922325659192381492481794283673501636230238190306773065245606527135673157472961472283871185368684467795300961290895173633615650713841942623117749057441007911164204108343196180173430985808590455493419872258919551731069006631324352081119984209550631851712171610489644787234499560166132488850978223436758654827632339154470775834325304684749413274560079243213589308722230698784980683081651603432182100714214542955989197678894139408476241484243777070790147091946287084605748644638937815325512777511133659925874740871116812779910893494061898630709400285771566838026557040108158033123253515430104795066467365876412058609668234495724163325371882857141285430899888968108964592285020243281609301453941957362436495618783595558323478701948474194081693838458200388613618340932257111541517985540107339170008275258515765775810680343698356406698081428553221837694580853506117982657625421043590096052177858078454661606298362633854221791343291112689775297433852860327453800049397702000419438217517681008581120632139200566087621923798589409308105696065255928237513372538098789723676970952525736109635928062679408002636515607240153311510719500323853534784213944372041802692924052189720435044797636086781622939390153395529398137503590753197861516458799437097051248164991228410811917179248378152109140406338052094787747472272582107255598657490436471606502630465474071433734348809949665692431373794693074741020578002326995623535306344903285267618580494755319688078757179223925461196101849474013977905355231238309101666689624552335091416923196338582844358944702595305018983080691232580780739424083057085488840663410175962723365698338472709569692176251194465795611822416232869996419352748562613957494576709989553401356397335441252993732682701426429008065667411754648510524563325587869978242039725462856242403812383849514432248357801989845936803847912192552338700685466386906913985123508332360464000210361397857521235622279250806705455247863664378166608351423308248935244158555195296097018677110964604504093247302175221027419570985303308633666151770885066937554681435053348770211445079022422503755372424107852320605013307247751223714576175472203433916545043223809351697977553283169199366650241585692955109860615064309048830449029332335657535941376107683625957170086664412471235377808620951839944595957976504167646512745013475018009535660052618129346610890853381965203644816845861790597919534660063549186324623283928097473507851641347067468930562994932573279899368589396344261826596118819600912181954641311731904486378763838557741114421465755496680004467210154999044624924335671563326321856080783524670986819270861210236458339948667454628951131893060082406639797565659583828298086191376121278587019245368548603193320248675581501318748329790318402421098796625774079298159201464628072187214371394983457702160171580794741024502237549681779521326396181610951407969513187748975453298642275714939168664326193167654348697642380313943732067443462115728760868897570603799938410697851264142416498746864303350844688030496098786379913644690343716639079682890733473091658434989178616773672071903153095464281654220336050966284518516801530976648790421197168167993417097575524174177430973676476953592255625035204099164780573207379471237515252956539232629088878357013837464010691661502290550612266157598111883112135546440562437576750771896327770296439435257623275098683761899579188381001994622036262005659860261675593898939253869301858519647119506207764216966019471077475953139273710630540251610143796140336532690244041166064350663548096596281035985290513064133457427238181424737854777684041313545623373458086879058701052920115618828708811296019943063297955095118243534417081411483821465405850107891664710167299939089003053290208667700340088717257428521362843037219748877860209348650033123846569618823402223561650552589870326803739471163276040105265056343376853262581699077371773835357890686610664864550861863020374427034907191598969828209218579776996875704463264973676323355835073015280043578149800094016096423524589047034888314084579726557462539142905010863707341994769405229990158348352204021494304697539716421237216131372796890456432156945928472074164003384298121960797181518144290377972056108305122581755093385708383257807802769924977120007116603407058650667091006152867878682645946495606450472770820218099786712795123872070618683638151995752956256619824038730007491765918571139119205889639363021326494739341386896857986465352004867277103440994905195326138363414753849158952814745863141004141773863152522066759589688792102637348603146638840922781822187439616385935004522016297117941043823353664210939495934601114412874968647715818381799741956687528731130264707232884958440811463682675365690925456330410628647649353603344813446077334929438790082682716144920621651203236534546721340329817163669371697778972428504075581214933322184731020713796625432714135188586288474851896975441886950582536365064852353097905310533290503832535771797071945380693120465361201888922723701546981762753681052538509866361806120295377357828063701401684592450748987496245302321502760094341208201605261679676693961991949873183318907580043566145379235945252113886750477197917234717570744655547266043422555600537076151139072518456804792995395263085315000251921968881180619794710543128333945503842854783738743088020223465510761799676463279995627935181050048820175676176283288556905780053359336963413814429884208665683716595596626059564561905866338933172914091972637984543608757436173473748045580321016454256321579197088399227673738395078630017682970618125548848382065830495568756305682919445653518815516694434542822528114372030010750127465398933972776947297792085315586915869570119032690128132171303640043220665150493482546948098545882763114648657694615250311036391578808171522754673158000635105603614491887628876242922078356401241153231200927558720626774323513933620019818324970016881503369088916824415068739808748544447337146365452648089524489488788614255768338173065862414194295102250666990511948161375969346494537984389584059278171191812734940132832781301647744344862268764107914223927045290664006357378491505467748773594407135734534712613436208687214072234323339362564962499167951767811365771730059729253613338021966243277751919173151309892753213623057009571247547895515002205549155369334486941051934218611226452405907708476578385395406242253056010811352355065371787109617371442488023336132951042895998095940602714843979953091737919509243189246228570418241105126893408819440502012400063539796020288134743530086407586552456433889605640990824699683234589834228770596467562413143639273871460399401911004189665108631707161466036522879345699935464836898003287016839976641232649011331951968374704436062098491843591361009594182307429168526649269408459063022578500946079777677934574638789494227153542638967124029840466487921319127287447943632296411560406039862283744039684361160294681626751169835966843258322683499615233813910609339599517005140255070630649707904866663374281684669233082900224987736532767656064523867358625848903542100336231331891810299730962313964400855967098837623430024057677532291749332820568534626957982764250156457247698368507355623298686519945870933265402882500696309802004673482864521857855661346659091461417558968953851723400863665329013875685986868788825550294971999573874724401687187311082643417193888655297450475404692993917936475939290373365503894663895689556332334700407213472885483366422935242498389887032133298388932371541549043661464146767216437565076147923397284605078494638485778263167604832417722995175102779489221139607369369879647208814083908936310776786388273222224258895092011932485838215915646721528180504004346886934661737469903099238795619371447798495185123156305240029654642764534411486882130887835107988873625593005494636181653578381586843420254713788896042606372675667352459295403476228491853417486078801693267074441536858807764139461674194139041350056257449044626445443739078537889428723018137309679808255945522840829747542616249698245309386249309850969257456141616598037811605963849370606200160151776439556797660363881866465289605866502256274815552930556657437492369976805258933231062871719839827398731814694034543113996452949832872773390213240557867660866696980142897494011615305644135262061620730180446442987212459861581295813012566517325686203032032698009550793447476218233374917510591571458316101374782411471330011947704088639398843196317005046572599374524312956351245198061769005988279346611591331105320021163191151104985138101868732545045122413519787587107519234914459440917961635050353021468306529309774292764260248347505347802484471116337484754113383109586449437147955470540284900167101113415940218614159970276884442353826748526323485293527826973813550436646681028434337165180225151828334747104568585986404915800414942221232125824970493797282357139707705519351608448234714353790406300258476624384390314840475951319602823067590905418418519537103969411532312359535332502592141647427338561186090842631522401171388281254079328391820973383931968594188421599544413395268211247492613334411667434542770702755134007449376572365563625344145468496033755236311496232071961562729652890566784581261992108355998240296968880059476139731342348950097714161596726770017537869151961868016135795824146769611981124316343681901075011228707934897306695531605272134255139038952879792396030678471941300481151597060186616211975195526815960145087061802664948192397939557007121107826798860853159207515396098950348028496754744875453887403952794237729886303379173592777233487536582646234497148407017644409575006376951637527797317409030173595396654410661813083238959298376263630505346874299349015488119099079403858109749489432017854474834126585891601569228821595251162735718894752485131765843909504475933301970235725927105899674196039877272926331978715470827855301083048851847380223233259617018510858652559429550466937919752333136765152682573407328529210474410917813187345081930489371853735030260334562691503498329298981786956037867820656847359707218236072904361458675229191867841444545761317593027190529351012357810496202716699749096188488281506387066570904429570254919733653981760124341477245823468281931242350093377466115676825144600832421336274853812983676334069994326511957739135802273647372870988175139183027560091042567492131498398669907844590825612526089743345711203229866892643073003954672376936548582587013093570540249043502983225527272073629327316814350308075592997075394100871527801032301397356837947651176580655445694314602751468637166313838278294899121544452299884390635905545318165726678400681577240360411221906703549149661567078437015665074796508098142925176260873028945133588701060507226864926586034241528711324202383055786711453342542723724216824350349848991885753946742403679779755041644304998313848727838119834946658438343680565343662233306774641277071833834512577416575699279242608402173855330567523780022114663377525557150876902678683265612942201254685637407065350697444886250289941400890448784597037619958842494376429315465271906190183180283308050597144418145570704727315584537935548506338092200497843670069255916888500348826976331550448969622079475043808835548008568823187315408192039122149504730753772001380391770714863222848372874643286628090421774939255199432549673303281515778823374713945111109356436134397391869904680888917998171711882239594195132599960865376919538602141841366430664919535594067643397118777378232519895714522623712292615927597799121969854790578003641922136392251147206520995133298395713326979839978288340159527794596640095152460881845272378734047785812489581310163199406594749003488906899967500811828748005980882343655366098999502784566376281015060846051075000308540340527005822408517597104162825272782604060085530680040090473587722348726608719335779441503310534189352681818282331588922595325016094069005975593874618708443556777842885068558757729869404921709875164488786683881399117053618309384151860340779617336950586203563528933820531724260084134024639958837082558131201920843747539092493824389499751343790656845495419105583335226471771818164607216461149927681318232731620530128992749240678237028114850416105066749812890548965983938410562012392745698558711512248353225351881539476575938676368871580413733863665336736616705896777922250758553319306778631886154221890357381573899723509215048745148063718040817806133105011031431688457889292173774141035277624212656551122309959170062825485175870766118513840985739342139782445476194161309466528160391750456704979035239655717166127881115438666871269285659699723357845991569216898057505464986276828399291938111268203277134421739806339136677786623473056007099103507527934385478047607223106019589583886427561123751742352081964840317793785602002275974381931010001090814523485323609553988997936422616674007594319768582632787815559298402422459296913645628153648276872053906604205635574552949702744802771228056121337529079804939005579530359372656116682432121950124675394113923759514435433382702601425879039792190023039631406249624673066682289165798716691988072748812023121582540340380715170729571932517801845768398046362790694635089785456448613035426414081976466431046804821932205326315966560801602729983421249766890202741084635534323784639900994232184975588926832323032317939163164132980288907146235386857575211681965024442812392848449503283180872535934716207836768881787322509294493965695640075149545338730968485621060369170378134197180528919597491134810095890646467932907084277501334499912847853578818667179327272962703374874029958498217087836741404695024068261387889356932499734834159757632794235525376745216622359633877891924192392077788007286412256845984556392689288220720767839237071020776095837988080992217975409192806026119915516447093136256370075788603598543254200659664294792518467766775343401956400170471221973166095813971706465931192127490957706410570400795880656064875845051303144750225104439682644227419199661250320188521702143606015532259507106302810642696794881352632283452205414379714357603423381574593622786218629860786051953019139242594853386920755403993688678325294246340515904113997992680069016125975149251273064673157827624704846080355554234869794043639038583870475444961353308807390078889652064579876931858400089042436041189626929357330348422696563198659392062639192186013621557514520977889075761611984025895146152313523704603669868172792055300510020464970517967773067653280747054192345213933260618330291664782480533177658697099849341581697300550192555207798747660100731499612128171444278900400382026642126902319059885605164156679685151151405858588126178360541273363086725529661281806016047194015337186140906742774105622496768561910771736436582452172080664726737239338373068372869498957440975787845074585018024649397522307291331453690119841115886980373785036131908152275499636656622498678070383658788930974252920522887728465797235499849680784219326005849519249500884541199099048513975928141074598656326429802774962312536871382498667146976369749850808536255162130319183426270007425672696164737613582543899446661044622103136071608750512982368389449994672151273223015638351296302818604467755886564299100424387274027533453657193226922269633460434232369248167759418486326640757221889302751599529912428808538523129414430189590749438952634192320745217483731622803708581715710968182295293139987666605978903020299813744552449844196567636744154401917144354660228729308799112619203203835407374539397303962561905740293760843203091294633101928900606661289809388525176453432522068659172993119005340657334439080817813307169579723020161056026534427923328388101784029344988947354377516401095585169132947111299036019207637034114835434195270279337922458803421426428702981623897813563429081318147260635611837371284263248096914872674329352998229044101296116801179142765227331921072629863578099408181928910458411663213654328312732182473162670248344198168270589027619283326718552630067165849936755579941339526962077707854789232244502290993377340633726512745290123443122722238390080964993321813816422589052601779384359397284853726165246875768826147962880505979191427542055806283313739829141422748648931989627770357372840550847424248890890200699699253786449557212355993521909683618631801962344933784779081223659679904996758782678647045536216449693807239730934536832329838572092244025208057304007019606986750988808730892846043562212958250626146544793481141041024996063774469301242311115178949186115419386171403391211241482522719754438940398236046422931773382944234537610593222784459378262758467445423957847000766810241324648605391071923422426613856296307319042519133246544438143733610940887696317319593729501341728638380308955705953340071870257956209026678632838808371561455876384116930737286503967918646054425626232142092115102614955848643222275106767364147741771946792346299199518456779054576679687341138891803380008260536193420697870322558921984330434787345059283661829538949360958812679317332847006577011931194572968605554082218398775750535399234321762745374801099729059012092767124781381874066120974490380209444193634069550430223491432318920865366898282455972428092764988276866600301162260468750159526536503255324106490027226367576539422751759482760903750032471199645619032534535297164661421873068756419295617904244943276711339570459469220823797875256102268860203209303362486556058748238186310179193553463467846320100880447436565807915554666913280877522656726955397967331117957720905304774606197081098955838038890723829917571386729620942716031256086892860594570287408412543317937045669565251485899962239590609381767407514663493319455663626456560173369950743274071295954087621317507436253173402162570332074852882758102293614341978427349344044916175014493202680041935672155549890930235418029880637341166514026316904584402306438302687817706004045609678043695552684479520739994873058290369109447578234680870676295559364637854980013907510664245691410305580151403751699538042713378482933982592152247136135529713652659698282338361404807922448722521525170000613202988708882668403455080665576751205949166325534916693219554129396875871719479466436867081855521394725696369768692811980651148662931271522934016406467076800285541612613547382997304907154652083006762463154739961259629901547268595258275690566179428710306850963289910082424294328056501024177959232876059595222293977039245198001127779213924205994500955860694136444310195481016929482732187567092465729633328163206147250835765623458040324067822746438585314289932091341673565177143139012740151646639389441128921523906234009470070434391656014269214536917043375373077178389051544152409487217044553655159611082446391076062157863363373745470079028168853288703832456670359204090620530681839460265929033650267125529921895160815097398087778643738309821188947560439244011176563571627522189508864353607761452714937895047316949305117955159607752448839105688015379255786446329831183364283470049912278688494338357248631457231979614396347001727095137272228877383741826953290895835118282702545632659820985329693008468403018165457720273512107356898331363346875556966017127568055620853934515791967089232246782484725253050324333267147330324085051629416939895165706562571570697125370499581231815272994688688762350060256962890680653942114282256130141200846583327587469219548973417785997650627649284474387503118321489589530076061048223632965421637826181330538706315764244201189291461628288936158478771403817375351988965683679902144829726148623148076814776179194976641322739751356609230499246469706827147095409327129739668466156087372547093630392634591255493747555186352057872546871062321079416100515863508294336359763758149375222746499983431068915524918094264286776272331282905961072711978893717086032155839283640465024934921036606046567099388150978889685863548330615646866171950607063051378751287607750641029348698730088619246165009198841367212168407605601912592597913567144556841208595110436997120222200658198040351065503037623329884707234351755604641050542438157002958167707001751416701187930132927189588664726884122271614398525417179435636895791070224712480619351273417832340187321985808412553916030058912391976765907894317090948082688743598490543536866481992140748872522868958368749443959623482460477564554993084392372262867385318050427661849815787252094578540488858907966708797100329359573795672951173895468716047518808018230324815258267550947774791609522168854249256118441901300163283228679063541839277021181896692839557551727212871765742531586765291852010758014066702252865493082256732483954402746275633086486306907908187749376937004121461020843490599263655396576439621297153971061004701684868322343502451246194750107810731883455288500457355574716692832124666657882764516113360873570608209569186567866325866831599730086959450820684065569403639765387008178342298574460640415040234056403744093200751050000345073696555360743586415952667755887504316725186536436936545967130625609735810818382216948713293365988720309720104972438717845998753959475177650036581663853832999569813598687400768110162371161156658568382008943016195968618325604236823816058559829910683174409170987061494972011101624534137069720634325189578086335457808203034532203275774123383176688283886163248098002114419464676940323617321435412657613766430423211015225253681449216667395617144001468106461172618150578017722932670440434906996599798864939066401753415208347178483699314926950059235401868719492388344422539906018779512722324898628102605340971087484697876227179068139688571671934067228986995227060894142195689388033755203152420288947265389862302992176723880747810939074229958215333367944160695443889894403630076535940252687113069373494007059450276881296644771434143259438867216459745668959896698564919859358567846916352391729369998760896860536317605041332936383340813128212254385081019855138172841762092896430637462358310209945052736663607884374123936701495185769414447956021434054008622604503013337052676602987930552706267399169986540297171080909024829081440157703081417511342352968752954264746510935424528304637381005160065877263830589374605846356952961170291573475786667104323405471482001900001309540919954969001164837379614485149082244274798668958076282015856660292530736486015900730765728233138585522131413859097319603951702425899244921027226163002516624378791940291769348503321986425785325332844173445281631592608715153960449338761720963351492561998663842417467288913461976505608588777404126407899589264876391721890511773258978720888389627229849526683892933385941337959272952352337360406690205717075400678957731403306343262422514627970678690967011565051500116294533013240734896200587405885140699271420225944008810331001200313503968452306971812824873063430774642509964898545402240371162446850499059245545906357020841242482034655329620529021204997674335837873855710668522373664339007181563901343811870218972706140375479335560955130888597552753222887954625911072949491271782545007326732656480758981101148758882841062978627023316657266026261394294360422559845905249776143705056415884626187997315063034808995050067136728336083674222569319357677636609547850119985105566823071998806282859875764935567901687753274698765341800615793150116242332058540274643791228401640993071372352789789719828030319102360900591020181826312968860869895701853130172888616923687351615948024237767038676507624829383172436363838110768978894452488377445329036972116283694876853836668644771045750812833011153550972223241237120608491186670104879691333580837289135589700827412712401529858763430693340659781210130227649568564572270552847273037214110064593761385270041766119449251686224609545818904727964423999327996641273481733136125996808888736027187168248816234650533196059609446374968842282030972172181730482751996305630979784348057961659234320661211751571669632111591093037602343349139381698419866933456580656365460569403821884316695751380498532130522533814211328150774798949051872581080094067700436397953565881894315941340235850557554934814317875427642724029522320116164363954758631633283185561996063146304688657066838158127064726106317432860385253636455752164485660036008910222377405152546455472284757728673939314195416653514784441715133582393176542705655759203777534014322734413278709562670830228646920524187523251449729176678760693496868946489330441378706152030005388567548583054126092398066176744798528633095523200038568345751546505424789608693312692992109969807872527190036550340653855276493923486393246474085063824918022481385812184836706587541205038584455425676754150398733440069848297642624446502417746385673938293266432129123482697197795471008513410465505572069294398815989195863895128666176445859618574754538756324210872349061790723218637993850708062759068709221738154101259178330652094884066030775997098688647251728654845037544761760313855049900361378588183975092927669503507566326846004346042117886954268014321949798636137321127183300019027468271903397254306921477959174132674326785050190885870531380148712873475800531697472403270226544092140606746301529124579184644457405779890803766620449486532479501557277972834526555487592555894286041207845908130780051229171365480664220352788964309210280950070774116576056173868499847592283413786583120713669689590396785717251612982461294942294643955364392991209352010976559049904335702840597914425064225334732357292454357482504707095122767830693777226003763759976327028581822090864685031485376299283781618890389369271645623060897426761200682364337857373170923409837729356938925637906749494664410415446744404723586300808239958126727223981806565080347678516527517422624913582456338885819421580870878183470471832198739660221575601155097039728289140780963331663755663691283954856904417450436196061914196663048306301133604300106333812819691695301486187709853888212583137051114906695375402243477506787608562741497946111506083259452866601208261037391184417120480135777392147432629416884706747170561541803907788584462262725456061169103970621572174585756206510635429781590627125966088751804024831551409132245088384745980083503526336824653510014157962914235899686211226655644051263151058646389459746920695375045873159600043082904332408474101782567051417574073004985731070610657818005370862201297509081698339711193165534554066848589106882559056571377554581899359698820854547142172987036338577961185186051959003915456839009461243754392837374227401776834236119884706087531264376137743034038920671956142472461620176548168156756223071798459185650925856683177824377351119074132713644279651358484530883218904373261578058272601582854050210515538615673532695320103738883477352923461234607159603665973284593360658472607521821646903423246081785940533818559558318110341675584125156156510589352702090119484457496143666329265278867193215887720967887231361011107691440459129727676247893024264197867889987114373473702667565885188955149946855710538909672334218552009562375128131866388635258690201502569569136459389753501341186296730548025833053231483262093286053443113631758104363376586836512969006001924474313324098469149336027722016686604549025424544883271719767296989952745392397379288100472807725982557928724065988098200453177288918975659770691506236319307701094658334898360034490156699981218857462766230388801147971873322478743097552783131582207333808833793829113534088815104525740978572874245577490546899362271966504001255837865761067292901056610010783100038019562463536334734264316060812813743800937297429921224636379772118646128567348566951644466862662462577678113252553424371318048006938109421617635539501843554317876553263140997764987531445137403210151801085996604743579460936513956317257534403161722542691302595334941966270408644124500741248964738137509061721076016555221580283390097854702414724768245122516152825125434858431396734668075540243538289655496434881194927602751738133434561161374211561020110613999150824282900999456260071762783726930777204851742337011546529835550736376174974256024678217695131536435346983301453915215101486387930596216324576079193693817810990612467071095064212607354045495385343886750100516299137219176251995074966056004518242560266450215728979139849755671929505779136944320688624685039604949610667542394748358101874095989100800440046172312077972081292192235319706602231958767821261307234404529294492318497120475854766951865539144670145126631485323965147165468109989987093537543820866005002882824498449645809857476980191703783831718439766806055087004618844703339815355348999063421150660113261136938654031448932587370209323099844825788028572688542461159765471736310860944902353967271918369120543952446870212011575579568607869077438433322039937851623811963465262450887873277947646096684226146672518005164675294187867281035804074968126685711618893927414630233584670164616694482863263657721083241168887408299505407291705482393961490041093957909744197365811557455354835813418185700823153973923416795120030764304016406608135367181236354895158705712925880394025454645610063502041829961833942358841902518702392455581534292918509972431921071762992637105929056013131504723887427394708656520978107003171660480508099640742069498975932061116526070235908367188748059954554811831101834075718403711396109749602158346688764964844223190487320882571851558204918143656033257631692391443993526595963829223658435904392501660091446121501931329108044806061001820942483388203428475238303152336858901759234539656107868218675739700864301344953329728059857205175697844905652194449123372701385194351125531495023600186050544600600626599777751024917601454870394167369981093630575323173611284587841729021492564905004361703631474486156498779824663289726653247091988433519782810640239778968626091173468755270645815804330282526733300330111544513249225322682929449802007979566827911852019273664182679419403462780006950468694007522428570265850268518718200149232586360584210751690399800999929748775741134665534775731049685956274595930998519588893069473523208857495695479356660201771039418811109476358475390903981927311607753287098189537804942393273822095865593052737978137501975641478034185031539979593981447174764439455681619246682293241875123875839347557169791136506002251020893664284861667950736242551672688980651686506325333659018365192213313925381409904076973305201227001260399184059993852714248639275508978483659500816183090195954006913725116613131651688267909260497551210945658730649982712821613849628449311328433767155940324624316347222418218016891811187817926382833445621988732926461572411223558060815239619927465132563050143358780264044737575861521461464279054213384534906700212389726510616135091983704819282731155611614266250569770795669566560097448684026552603072308880691408104768626995269183483615253534982518497302729951638018313663809100156137742249259216528903431161035775829418011334460046723296340962906757218188634819290797577738919683239854061488884626822688164844884132366600577529950254970426645724637352593102155988682371883057678426542101260959210395504289064919836667214027029035216143105189190104655054271067883142355841659484384326430893717304908249618428013907240516366571875950892107726351944036112335395286166651520889055122566019008737884879452913792709120869353854366698200685748092503543575203524670498194983551718680094597428060651844640906505229600395374271826420492747156848262473871382340260239235541028336077529601221759212118037252765982271244039842743734143897891361893443654448149621235294304841245978597332446815798645159998006409241855364514666387060905346253289558534180609933190911923976378340307435802826854612142213542300159681819759778256106536375887448311289657727663869359129083464207970072633156767044391033105110186399394329150538894079896527229363429974053872471232436808361041258341079153414118689532162357275239785697170046389225488885426255582105005839196817549167405028010856923424200253483665036443579482773232771448686385613875318946738819181821068584663259976597346519998387286060517606875921548633553658061505123791200909717568854716486904178685792760465987999785632020784144842946571517311532186394143467486885367846606017108026464899218818205798335588233986934287947533745535592748127838247121215615420271041771010133421563428707086517291175926206675722784807311350860744843146423892143998476529873627260892899616977556949630461369968137171466307398347913840182748834456451361354738502112347205738097583438715043536262771956154673649703770022549715980206817983316649839360387150703809373483339922954272038080775089857070376808762397185395029594954188468481353197759276591597247093536372997781225551445714538454723069664287226777459770330217715969969030338960788274135667670618267708318462444472827465434543600041396197905392873683181817453178089994628993611046753101096304104491236309890944813011100370644222625868767322025418322278333403160183256180134316384342736060114604020486723564486027619921699991020599031281096109293946256991092367381059824255779767861645015190664905376172637791270003086210210528178759245406231866703989898189624399564510081532100806504418176928029032296618450729405352797935988705290291062454655471291770400213609305678468351302641241454166420859963029696442556193146495712572016201456839987789593797320201950738841920525341829790108304507869403804393580308177824643982030005001723274733544700778154426638058006017759622932430430206845278034599437320591902619946902799207961158703059592454393463670425920435029138466545072471418556153368637259323093446585929832635802225699102180242472263153163961537002654896809171800498970170701152156636383811166462610196394184804930383516625193496631881147273070267479425716060050408968511565323075519034918985078556818630678085597686979026824923556075350612573762207975964959316699420645460711855851632645321087628265684702620746661537443595466427013391047586072185474800586283778697826970624614803256534027138775045885094466526900278939150854008161522753467249642839154018442391251875230322168828945414891400702103326269392735653865984051931855261943869482843307371020578588884521426913798254921043883690817910802449165991226707317114627975580876642837978854499443774820699322938722584816905819214092343219508848935779058972367838677211370409137695689769145616939152459928147451706852376096113126494612579351790210150915473121488091157589161156085353808523306915327088025200243994396704632334502332821196382673859807107023125289554049053219562390215569670303971705008113615264031455557346320468302075080187083015586388562940628989597638363087127067179350403778712863921718188889500047479613325669596220257541776798720858380977665005254338684229282403034186826249324404725322025521730053401241484096977885846701655742122306237496388707157784095312544384769718968643356776139760751683572087393717367343676923069438059805237183271463899310193402543693738128357347911513171932140197311310048079075983152565503506374298344623855880362866727637964037166573207273187145275756928719155516818128622932109253901374141835326196324283403418818680862318486245695415960982234464695986131470775000949603809422804233125432738911807885869976604739203824724471412637211493172040461296513730206766104826569884254049389389108941870877434236267770284429740932070693222880938294116346040738927742955153622109152794401131226377884780955974221683975722097756932583392608979013275072996711766445969017474940121906645003651515959550285143790055613702756066421472759066267027089381133319304063974773071084831957382264972880163386306364164344583438450130258525429508109827899767877736581431888121161799618250198785920675888390005204977411005852552895133981990267065743497330734746369959100936828970489003200814640295917116744629414262631789006392677410565546237849498878501471819321646806453216780684332787743494226928205510807889397574901833321880091997649415478888959569459181681978634386009335692532840106731779557841091651569873635073370034123784054353906612166881099307780637372380256098012677165359011580852851283568850169395049165004003450110571048042058182190411773346280173310529071441236973396135155102408590986641097068550152780783746032038613016104095222899178220906539145006911142463632311705325555491298045072009285002499377252264776851813041693431290873926107539210764228126884561033066328053585906837227187879739352349659597379596499320128238381424488226260121565073745824823359629018762805419722348426011319497314305987920130344068513201521985630477004031456850700352316818062707963685374803488471857502248046510153563193526269172381865350638933314954760405007254195923867797271291794786772741560246177171900062612236722209755258802209639696533490710954733885825578042881367444428296705787605282940181371530313404235469313257448723749255305362751457306047730546000738379291374834794403307995243762189906019300057847845968885481296660003483160499591244944928677550568101387882344137165638060402068840291080300788287857992435192519492825289008484502927634106630338510551211210348498691731476331725706777158590867611406276684787979631913954527055116311433590681688477714086850948383744953132596624311375787814682044614565316844317568883908693312094798555505318271879429316688516561873379714727614223495093725646885497927438852952145357447827472298708581108125952096337274128718372971094473426207347130334904992088486782364782049835525736174344412419464840061298831847453190455496783937345118297458682546971048014090091420335851260140895180265332811634322693357254005270725027802579469901224453005079377794329363751270413593556237500252586241133737977483093628202759180610616027970412135002940843211399412319123237290555909275617737181290160798780177347355678043228909854423295918690305480337156840811590049720735325595929597346200015646190526932790325956853385531184910224030688284872046022800156927064833488192194209060666683904466071568262246164102849692975224414019340503011144525199260374927948106337675470256037681478987777233866718596077872371032509526613952566043741742511274371103074169512803688792544347937463104251227063806421074190710932232495535441737116479625242072650629050842385082244270263639398750532838484526736122162363748537153166353281007587450384701394331666396937187226509979913491970376190147093709466693998369680498896533057190056292610317907367244431991064896149297875359468049098374427128109748206008751899606693608884497382967849421641362460618506742849463226101140342381123587933395588125555683178921162028423774642801604798601575982983024112964426556415066773736860096300524818145807065985352229575641185928610992329391818346491613588201621195290920098348682969931136840216253731100580167957904657338391725150525050723104717586571897573936683540035669706771238480884764551439290306922301859983881453162619659118630356150318267459304555125264787339272319286205899068738284062710198386158489346620846860639739249252041857892269551530367266022421991372477513432582266340609014320407230780656097334572913085297483480271226317909627944597318605058682861786507478052947574513744471285436992727643588492960316707921438802332570324354388180261478971299510462800720426236417113113816521010084149398515312647534333682061149369027294092353105372417680883847272946614890036240242786538300297097582238876964376828851543168828583101292767912827059580431400395392167961061732535322110441864620882680442267018226403992137583205614970457744444230958127449778030368111337593969372162302790258618706269338714022782311962663390873523788850608669977192205481982865482561536852881399694749728939691687202186730562543609611842320598430478575187865822667229982968324669719978863104800279475312087597656511791773620239168277135926160019649440931629489907676114017230879658181054416295623488277198334007221230290531962418713285076838804754177273296251614048067892927585835716867691589533140897749477750871389696633644243405131469890321188908200281044619235789779405369738594862266477117389282714700286310346147469741226685552552534023598147637516391640573342236054452503375780247865842019813640111226789209178923493455319816618132362093720657644290272632630063005079676483848221181475259318009020974589073666567261024361402506911923132575789395283000018374569534878716694273917133807252752895758053358999014260924226963516706881926201433671591767009400318347690814561356244983124430907867302790475431965076219464103072910303696975558773041291524629745899971568832305042168557484855493355335280008057395037467675227102400235974864009984532788526683380752194149528063425441071581440417455029984505589561924631991387902444172667071316372679107354955004966306672992656471803613147873233642976672894218853784159569848076072314974130610470152992608346638406245977211105230227854433796768114882614319902285049012909675003058526186786870183064603525658040516144303322128553550416106927887412798304750186546485182339199293577711494693446358643503278360352741462411547613376552699357651055957654799934910813860561923911852519585922244225241424492206604569600893718418144283476558874265542975939526897204838132301034968689553104843824955243826076369254230854115977708678974429411600006840110899402471770336932616826666097118675108174990400603572532898784172723444254833631978297287248773364047789810718019994440421444367489096523429221866189818930244122090964970615743805642396380986133263539098241536411646313092955317548407057644277259216207198917013765980658312917268874323468484382737605551037451618645410317690332358103792918258534928072896774603358724806259107376864899786073146845898606733256493557238025467441485840225348373090586270074313770594677837051618606437680157995459942261378723949671556040039131733232240867732715191323876194672959855567075792972673709714360605422526587412537362080361411634937909949688063713906150461445925674674614724205005693538744867393469638949603601567710781923067345962525977177986804924426125471520624392654298846573357033423136763840760029301010415533289729263233395123634363736184954313149168313053908612999396014005403529693333876179769698492887574937348662313072923981533507301218956364820557100521876058882639027842413691454430986171666596804626988150161983562031082798996319478512210486326269257242162128312063796805448216719841435234224282324728185102276368058657421113116455654599275736872840458072195747734402768524245291076348568815113172226838384343371623390607325595612915902076657291988881259542585291756427614284520215888200142059664850690466209763641600780165300007543690263877396936596339889993761038733091550626182160934005056818901173855646315903785673127272762481270736898919170350157986806961793159971536383355493927462026399000243618307829978279522505819838520552555784437908944244340600825857029435050199706796478807091488959420800723507652957152837251394562527106152258257392307596330585083341581287030345595748643465082007294619419029226518297788318540274215781764580635610577126331990337003956861020537258796925799063226955615295219600577374276819405689354292202740271872446650591188836275978836564589272336633935196482944330377949779957030258523566684038220329510593999040471712957816189650981775956961784914134627996352354878985914737802075289019105944379505491279089488783048702982810203334518213429458827269029683104911460719284822757587322392036237905040222910944857089565411207590260533528579370778279789969654263207443533750372473769912082416447490594293270134597539841424550918703997261288852413255298831269654734705004568216806844161004785795439358401221503993123405083025963100868998329963145004795988250084444058028332941404263774066944804995590178639005240240436444436561816077601155187207637501244387035999330167281101892207891688505898365096194136467280053859190381192399890987015911216681219234347916631882956764087301892666102649774011549063708873300959808570510502129940931630307067840708417909996406245671680536993518699522302007080916466619525424476700960326384636731218985068770469991758454520368730095609893469778229764887736123730749613148408055846333144767107183621189053114774570745422758280349722731081541820689389975030860451540353381585835390660460549771985596413607427688897244544612975920395851566606745398057943507342033738607713152817136236524163009002235583160553534702863886094574006740547659181542332655689799015867864056191478403658939865774162353622655974520577371366555553141173147026208941415689694725359556734166795919747667232339730557928934577969448667876526876527872602037967951248471417833822605146560488302843885445644121348037772167661176194484816513203946886523228118618519544815583061815929958248868024484708720543174437977593433998602906192402368680185324162755491227218030935492150420509516068339348226117078661337684771764369170907498224911716907842116769662905458229156669555073282614129455397436092118860426104859840222639489818023045935233516267372251307489380612655923373060715266233771903653905108972178113820638284432506443174579964197576026815180899055955788853953198855163308176008071954064552234263603426221092356986253865464815071103632985829181840158060025231487829040826231109465761086082695280900854541308231271969516090621094104441575569596332064623484122130008415404822224172869634661574872627360221608294942075745090830391408788783771533498885146420570392455420413269951504711649386186366151631390295989934484577954334862384267741481539812045923596958840846463891410452701707411608663710702820732190046391914252517177259316762881140671669698851496633865396791964880212425805516714261602634021128999257914159383565307263253188079345001390367190228693124877123139310595985983695727180184097542827017356301367546519881396470165189090380177960622974881326894309464554338219077239902789126461179008956602515986319257720525837221020560886266511096340098309088659732287657697178064901147240405052803801141731820074130431510909854661520232720073356598730651826694547726687114160624359113405608532243600542803137959928609876175488057632757227683760069699568567651695522724137714081700452637682678364981702207647470828747421598957271505132439000272507951123546576134635482424356658624410104124747318926916771499942853286631632446494252736459923310512636430793419816097883740038491328765846143224597986398813784771644299863998153058935161581482006405281218201649324496279859466604844399761967636015258388926659718262322552004730108335561680868273217497431505987878022436981242007520744503627102090200090710950355347842823011413986914034729875767715101409650187015743389310318848419464390750429684498871227573013055935518477379630309536885617991730767143203581139960680948209257745258104480372172999971001801210848839230719298715069463773324831938019550380791573378044825195270338379660425314148592005904500854601514915325698374998032331440583443902716633854473071758021259102901273638205152220452110292832312935835690336172904982692358253376451903858874507902827676746510369568753863315082208533362201095566289098603244440605080186346810052424740425886034144975650824123419979652882353274366261230151045661474786053528147987000343743045582799644808404008696139202602186458846119513072746855715891635215022618616987908453623963368495067879240483199843731529609892809701469170391546659902098219592179587646169830610316350709439840116165922633988609937483912879856283097332849528615444585006761271752617184538433468524322414738912574339416544753110786943628549867038720733993124745247477654442260461598800896860729941446615526162421344214930933431322919025214304404623981970636013542495874576344709222532990815641118285018825225730533469658581045084304675022671967978398361869569477993096072474681698249260308264112853361256690230019405394805913643898331509357917123743934059336963852240349340165562870285874534811496576033421905666642344576465961060702361892472624436764294039248010103626213269657882026479316886857057050727483252322692482389085077422054710140946827363043610797322224267839081583855070475714708274588295473336561937974648344100066927740717345457537424766251111850403409253041989541404806794340976707463494054028591475152556452779065332250753734100656906853682882935015927408298651469130405647659037783661660884144034710440582415036459344091710970061626135437147797211677353751294030874434614533829930548193298972033006925777949097492577169103022887799151694508303621297555356604137556779573773291367163209953861871855343699749779719930388010432664819242819800526822824506274305549242822254340867681821906928373103727578578947872964464776820227033716712849729695806629546697910728631848071049295885011894300519738785195453074382859522778402936735274949533012796143031694148176241256891406596367086029851350297039999849153429003028505406369448839851393473083679159166433420304223831128506027273734039754025047974165381567883815481671911466604819693996371964026659430821031384467039431127162567544515149585315528312960556711256908057041585262799358668944065654415580952435118142428521774354304544083947760727748269345252098804109476337865413861533142121535409866343828448016926206557815901006523071243510535902495080944741291831682231127980012737352460196399235352217865719744337547132014702751295343311778739661143506843974154366935330543126353157168921044749011571144697922599764317411839544996393305874157012374695606587808627527561852407423701990667319419158873737735609024720133630094296260367474464549902203089476833419728076311446771534025058851434946307663661989953350581847924686638101776667027076785108619572743512666327709443739144689132651617349270558118089127967768950437547425454880557493046048008827563122411749898346476716268229870983379889035278063300321120571410001793177148786963978285574992122890948714775173477558926152983945736181755010978368305451354318561601092819116964468963926918460661039690419615949887369003200457289346743473792352289787311321882387681603810908406587513951197320298971896449466454418672565789441956203203612702625430892494705887554575389039003272979062906509673686972314176016999305867671001665022954960391806287255132282839624613036155727587046755867684523721430714686551778059691520465684423589253265713368521627522851596927336723361189089818649404359425693950975333758028162020611184445092745865488900748151672268206852042764576899815983492633310599617909484453173599581574396556037302432620883652682208141021993849223261795258105697585958565659223393509010670739691244826394436314062680580670187718168015792639985807975689560156272311347390667742846605815859377478246463745449930555753482356446895602805110123730388239066467041283593401672063549529180185555738642250089600932633958210800963502234933548039305269380220709080844810261103073773137353190573326628790358045177919933737961738880713286208640692264098515381449233320891670402332825757024173945072616704284754584753578793364303081383803393566839479815520836976822407856595349431819355640325125417950979263996130137609083900280263638044986706895852302307708221203183925131066740000767226470652100415021485912504787680379608265415428211456497887867092905418688332820672284648022436478873556221269715440300901587400330027524880278161295308043460919513928461023583557957659732696402407353745892800393590238376285798227126119293925177039466255159448923780465248628737564512696760470874514768592635999958667331116234136598417373286422370608343193465956659144530529336985289448002884735869770360208936333147547034995037069796744914264184088639832392222694058731951854051632376126442576720514289707931634500641453232932378575302350175053189888837742671457790530510078539806109704295687000618822807246347490003606761263041354430510640315780591880015665350761808072788627742405141658861947452483779575988780477138825239564990106353336879661996788281715396783473031030780314058495361405307174854797749144415508592516977363112888016848504337762471193629193711938929932689929695548598609627720172130463284493975839036302007164793622077529442591881501636179323739178321768582150767137037244800274643510419019421742520631586524321285020284694298613966245626607111398061596912419265300816830584657675059539494331258789382505563382205968015240579714988672236190617244045771843776991191721546357141761186379701470396882748419169207770543308154189275070611500897830830838689144236512976874082941312889730802975191968527101929880345562950997423402249232121230404560934889601500412389318109382334054327570989420502546337135431829314919596946150862031969090788613952922252781590223846137568444885112324637706186587303617385492654730699687893047725848271740784536971495021376460737406386655396584692666774209016154248960818483060122666572555487405268021380761228802326186263374246177947510159695485408642032792613916283267848261279392302229903804993901228629381614201484327002901730089528364054202979455942639393852473711020919523509195331901251532938744151265058983623517298557026246676565776071527589520130597600385564575798092494949567765515106314519508640796168538846886494221024894067966430598105641935192405483436605540208611175970338299784552498108081039587808299101064941643715793128797430925964872733769368244692158130754956163740409104556178192843706275877985411876850599852675109910944424167437694918579348537032196632706636494529009697638716857843465706740699399369489033627528069381870298164976473761363364672228942560371683647072978396188515790901143577431714801863124818185035668253285136148737725826353426836242798606524104120217061940552457717392549461564721156508898435982907858749263480516338437896877801497474299505101011633147213904017788943093738711734519669281603882773621815249445145859886720088350956226912872669543087755945651695329400122823712288071659145978899134948869397967736623673687131884963657900054672658273841896511931433814726095877010545962339305736039515793952266485217524978796458265144825592965147187156273293877878624725342108131780040175521244966169782814910541517796239936691161392529414638439808272004605184392875638903872274599375982157815804334907843194965843530219699601314335046145402149168507555752240188695498469070196341128896051911191609106621169986945698808664390995851713707812041961437132889523713539630543344997476662476169948382749312248709532547976486613004072552064502656059813490778455963442875169824390253444738022271113284314841592548961276695114260128353017337149147845192401363285650958753599134810031870128482758373545322845312223797187004798606754008628236004123122633243542817557250461278066136250273429838870149683669949886867975522878663878122983572407831191120011702931692889323073543613814088061683928475199177523595514194226600786413500918947550787161476902630387835078737952598925731336052197610892209599954556785193244448211630199714048789067357653114712372238992556408220649956133083156690577032113282441468690068335411545285477425162289519841796720691755356455394047039402988388600269677488034290540195077181682347082444498417977015766385189499359185603972298863673441872949955524757553987608161589576723316369592107703781335723278363595308011709923255109548975313897789504308719966137666852192736808450103885800432985438867513517352762427209128946950637025595352015122412829278874133405939567326348336917994714909070597173656856682778304591964226379826065957093380204825118885776958989211166617910697993369494372754474457163297960125350366154114211712952192957004735462489373077431967816812613346411675379832508630711118355916056313064840820006457412270347833409832440318230222008755590472892869609549933515795770149501908347602699180297472083786741682155368370989202767637743893153405504318736446527075666741613636893701665419463544212194510646432688838673025676869468489156622050883683219185440035555885794472315370897544031327144817192823600611805561150720134162318054470303542911089777686859687507335594439101950417076500044297919428535316645257451890070879985407452582334877152845355671702465930895122276495869271261143420598714475436723888245430361687683276444884210224460545330261982742311613689239989570787232191943543124428195471469537533347635902286353301908726109004560101472870956206306071709148237711441962721144680971400186781584174296606501143783278768306322151928043690405157291195551900585758776284610590330856099229838431692462613651373462071273051772487352249835756338941483026061429090538743978723268635617030862347268340862036378060027805622845361828041499573281114397128435046020826266642428123822001345510761800605390554739479876286559570422789392717820195653620693460949568619737663255673172912088586714606570036797616446788082416296891675815030486213293393665759299074226961192618028031885881686254044457248254316770035415523274443209048624399164009127104223137024337104306204040405165586384159004373407908337963193731950052319294985766307240171002413328252871430279749550466254706793357571045394894483820627880386944942389505248347638584032865154667309750441521311729522649647321668737967158006167220473167039774155558043476811960825347180225387174460046419839712047029543136049190906446321906335701208783262861741641396352295417735825759380927397160619944102269761620381731393491165186339206606580721703958293619507302492677898708673204931653567387774433801063459957675369753341102085769392157977002240927826683280610387571425303046397163031376268648571893096981507404210422854733507785919827790910600966638843345448605749573886092711543448277103592311418550146995910127730822257025561663292198714642268870751442099685906228869669627759071714018828551171709937879062964554787970455499466215483466039606020969357320952312294632425203403617331522057221201687773955919617720101658731016350577133286750955006390749667595022329961249835585774623320970051873511552498368438305840317622300885377724641915591478082061406398821205684396374369524397869711125002142127428767538885968229680784806456073501377954024979660800942964222418732625673643765401009449175219268208329481967085144248485182110279637103836971901150980224879232916802103392100870842736950102773630321181125496582090421563531160100401638735205966225135614208794303086263138565720396018540380623015492465627428403899566593381606251964054883217845302231327045226284586846399473558270491744297304803738721642840906942717262786902768257633504715899511721022598104069304361778955282618362093860960842239062147201479432037827064863437596455337364469873494525454286983509914864773075646804448074789055306303236678348042913130351496900324430801567206999982879734633572638555174193821939503414637509070833879013331424886883287858554852162334683877501866721210012723392992674191761915136624872663897773836561733742558483142593704888594779749144735924469435587148513013312382056662116225402426895738872065070903122605597481424482008685574505950985039166027707893958880851710784047946105822116599751667574230804898232013863778043888731016310820374391303568178607747866816754869044685479063798155808348555078986731341901689097148904933877167390247895168334558593811946151676601237817135864415264241887152864875594353495251821763235346203232214798667344347339175738630833130393301368004211820658172537671103408177359263334236258224709831193530151812454440056158206444237727956826152781462189763731275594816983955540925736955637427264098422112499653697639659020755144313475457748218649843553256516495335772035506814366818691197788437554920541322357465936946656296555587360191364956008772760361534102782533729619888093302350359394625619007992905065528091365034897831421294035654756769365130855726770633663659612584115221293405174756126482648713715006809310215038495791212430302552770289020438746957761951964867841706914771719342611019931826506082662333223139400783672515387016823881934234733720930756262616350261355846312567289203315531178862495569646390376514080184553142008896566374612201690675291551336515083352004310745672078432668466211766208475037423740786870927941501393132575336737243498250554283672136093112141082466287842159385551592392594628744426429795977713324361100849642184222478868785122172245476946412908090912287491044270998018583930632375830221608139383243594176445479329922341054484904583944576977776577997921367036676678510726970197303214945400844313466848652972084892815604843381383092890250964672469085614525990380767445056137502547840583996574586724484011462018534812284521605849565136717949706339454281845999689851057952505427609893625442712932794171747999525909493364197356191899531232511700143384009600024506145356776393644594997442014746584245116113413088321888342441311657037762738702659889662365457230780649725339126072827374647526138887178380002391479965633871138468434228204865329071760393308767976360765982315676690557716688022221222524630480646019179073586919246766035496794615462276564263127618825485019238162456923849154114033353097839253442414509064487905162154915375286062423264193108957672241023685313243078691490210517383605663890341294431612974768510158703767281880929804911731281028760904783854501946679663315502537021376560420230250921828813495037054840011339051711142577899013070871421984231370393494805402406001026775077663927402851744027851531690250019247010434655392003719569738119340200068588866416253488270583484308435100535289436919074319960606853041625265718135657230290981276815887848452999858137230676087214684597332081640618634773282162434719011893398780476128735111649568281111784852665215079899373560488796563670533417655751004573231322104480032435825998315678122751353922545885662790415138333383249850458006847894281798299941183524875764586585208211458468095625196137313151564921922648637529211597944336782977780125598765914455574835581006024700914470962078662163970200185128084437425504667950601432689006575410781744490172226323781119723735500241841732105432551959159027615634311007164773274410239736855978781081611366790970426774295165227817801812074445148924515509749719826640092320164252440328678807306475388964092626990765621509636925349639381261643256091881266876999283766400166144131163763743445276460123029170527743311452648235298425941869605937335067613010010565827555861240774291202314485982294865507456124772581540588801074438151946376096597015408768826023391749947976772214755606015576956774183344450192439400167562244700011529534165624676647861432797512119653627141289824916837827399468979307760323218289885273452377640948203745136190036533543552756093862615937725911235890785285209672742036428251743648997780987992291007711106651742035435183065020894215319700255950949947280779845651346651088052060870294978931771037569084762268040820030539846556628384958518075336292578206440461833998013294626738796775053854125656660572405149688262243437095129117514382841881135358590288488783683043982890263562683528838377521621550171964224517329065672269245550190129608739495108070557506205475477945206471819938009452641744016811821934259209002307677930933589965804464846206329797337970223440005669194780578600435954692135626782639534802313277668838278716916627871864177840393087829027177661158950223604339889441582891611432692727494413450396542668722401359419675003329136076846234344352167017787420960020412776976446631362602130553152870738662039483178658776410979682615104315924367473321455655017816257772483150937170356792753622693224732654786940344579896802351116499071335811772181421907287888442611821115702084532265965102795813866756777327834413007656916213095748744489193292780810139739688143252994476917967563251573368596924650830837053275017845238367221038117110881354070560805601882248822759906369879769823260840542496949882587883060152926454575925387945966541664114723423318186066787751534693355851617243182065250963101480119559366202099463215652971539936092770322323675492419664312060618308271160079566990364922602163169464446752924850921008212278819278020217542070840704047293111336078097827526634818872708906747945798081975050604690520309822528747394917489379063876037536541388579096021871943270331434629476146639027333907945554871233166456664185868369713339168372310952041346778674745990136300859760445876673926350980627955430350312957469065761019631845888660085345661685625037653698916314826712770944311621767510896019300901545928405512726433909168306694770258809092187273163330322782019215923709000140194302352443028856138038047814644791370250050217664492803687043877267763331953188417460000633401020955316972848697050170798407434136665065506119530746098900257430839727026685458577158215502777942637860372455285750597466560081933144948164729112106972018031203319091046289495705659346672986616989581843060856319565684957106680215738722611787281521377932305278062054937338314327704605830176335039350147446647883717791909014924537503445492714988576860807361481009720569273899524407424871591377313580593434030094318165382837618812951890922595892683624873905276692857783982075085279751452605648416389886576173810769662982475361041353678559293214635118421949932815864518772210572555225834268761309499965745778083074542854032522460850527842947032640260821320646156641608333527634290810171511329473958986998345934973386897360154094621663177563472741029497064094233670768589131338339768859482039417818983572217189119011731446784042672589933012168255514436951593700227444862723441081394678712647803900749260956380153052188897058098692285028171972566233468427371744027831482910977665470567384289378268051622972656840280746145767098720393339982883271458305099928496367672750859023254511356511304740305392547387358730651325365790123764569035994488018359245181664700873932823310158212487598912093805214402449271210599762277368427035804165111806256438123606054566444950528282538013286924092593568388767212871800390954871634661751906410648716664649932318542635210220911045733829678030292004230811199480625587627214111364694918324943693720466466680138408969325029930166197900846623533564614585604449212001642722735671881012938460983582893470294814441990782222292402614046963321142871564707277384219279208837929016252247049961742882539025405566616606248821396652254239905196680444736087420535954267461664177121863979765220829333900314449186148389202679509308111635187228047595786914398507302850320711234944431588089358292746828975748786586297447148713740811751180712690227471569624879068629122847113312617258266135191653015604681955321775267288593241810014226063107338294936321044937531821147116303703044313828911298043406280551043374376071963279470223125491913584596691635184621797363522877105007058050926084220602615137743965356366202184506364047861561718284516684550508824496079218993442712542609270723563216058722826681539824167734779175532931543134367502337188024363451934019196691541677948721191472133754601538506364061262731271829008032111974332637265883531113885523769704867168820536533273654398154256366552086090143470433925975883960691887397637301972609755904212262987402348616110539099732574376258966259736480405268113769980916421728279806639120427251704854384929892811159537277982700416928085363891784899363833419009596930568057160387907548649198990735805108838684978998823607420577657360298542021714830405907454867962936811019920624066530924219061454354684686905529370833855516167088797974146620665668318795426804378227760046605379805277776302189954092681362882064876662101425904305514377408665667567895736442881736904996249123744595090548023163190335023371087864259469636225420130990677453535018231456720586515838404600291408110506067829981670525303513038938980121674564602084578818141026036064682295950991656267997305559392933271960175076377954914247710934572136446781787157993165203183657008874275971876788703234699650005959310557249825637070960957414359656792034540114220107903365260219077189670411234139867682260874083900032577988590287116006042905603125221954387870358402182165030783147423258575801575560803889577925847923775849061658567512122082658461139550484315940970880840158108633037123128480305525142415105899237392224171105976850098602477045493315869085007802481176311634395350698529105006837138483124250621073842372319345668206335888408004129913676187274863920852823329119658591644930202859062288807475999988368142811246236427859944126439916851858945796976013514254137089163881247535511104102022820719885591224942077175754850608294613611148116506784754130902835975365997042495759562492849048533309478997129503054034382867894962132991719067912003030968938493450461995053932782677267087465890028977815875593793064322475894274460328888839620805960820523127881179539909246239539754239116929529071734878047078118331738736231631213794378573487496358612727619699917490093603619799626490572086502944289319219548236518625980452419038597517964091848252359197391772364446019745727528507145478277022139301781237471420717872893933242768652301092065420464932650239336569661252496798146462227388201500381160155775583926213839660665057270115850723346323959255732593362354311229718024805808480297209721090200223284216802789373336642689044409085147971034214582961346158221823975266398034698174618534707054706056335370888684392554705768964927927342337982722521775087003701256134417602994108117280684754322177532239195238063775898871350324238215591399877131915266139524811656093244151686025034296539791791832202175776214795421714844366006503009243362981889279714431298367287502883568042882022248241280677079217599129690563663539364842690177395619852883556764902882135479372203570144166189230769124859838284971844526023443263466731117485980491186694542952968600735690981455670873744861089330742275942975426843267847093609432706431318637188989659644343780629788181796469717028811158664475748199066042168780218210174774249995386774387052948188483301714733038751061209304194938360872866547952066457841001117718375750246179334137639232305981046216200146219476255732480707807924148411211678323699368878103394182287122939989510748938357938230648198812817313441687606722789503937796610811566592991781714490147442000413468531461577073265552638904909637287005152154233273832995787877277828413590145660474435627802318599785987388061346610067230125179137291263645442179360454051836291475260667283298052828012671950269891923521030286706352048361993218376191948397774327915048785418176968379751195615816034211246651533133045380185446447980471364314802637668361393654560402538419611104228610907101595373633233961763462122276452420801661737271799906788327184224520125603149211338222445813860410732389525948829881644037628412757526893502152304993605287819494197137530865547696045252803398030367756753395219983036588398362865206513292316634890012375298329315902398542700963140519726970619570164868469817042402899034600934978026044120365683148231971105626950758692946258783930528999994284094816431252649530588135625290665800470315252657796283317566605932572092790292669690416712848353069994958248209221522815911709462173049180146992145843330102551286245336259636475188358256779541383168128805271611699525120645106252227655246910870266323406185046691838657349801047949108240553711566958947542371633420776399389601725143955391226909749141356220525460693398006058561673113662427317713850699787675589463087478472518947223491752010348049199127038712807591483904879801652576027113489750050905394970698954123132467652247885762588657548149014564144233957086349803385247184176115097492311015319038964558895349807355976598635371034674508266700227941560960948283310108106265226153717320972241392957520161970773438688654861405671505373741839044291708383432545305369596731741580704495373294888274225995123353898523744137260115894584382878325039412477730658230567166151240278795611627717494936938838710595930963399903398647085851368348121047234477357963522169670582400564722285246725534605449424207332115758985626667178794796322093769255379557170403387650218205372706594481860104854554669417638422437122687090832514353101655807295226207297151182374066345772328456657590907920532264020432367352164488748297903065721832563079289166444450364494254440170565721123524499224552442408492546078676739493451374819672278985650566088939717793210320635569751826049504643336064027637239213437956340627776391287992469456678599032228304817780609557130944816053665716764379467058586738232868172517560467053039839910308954594368269031840726635580238481244426996723919010590801696391378315423551480910049821404468657061682241235064840746597183058821225735208567313325218993792345646618333338241112417288428542804711367040751900192219973137943123240586181190639812550606353121608658494262843512020159100665635875506005189037452245777120028247753465741936329777383406346330103212548921223761587552721663613302459660143702974391489185764090280193916721779343740781773704419464598049675316186375068320167563807664870405346451729551123896667646367902926765248589435225584373132406057601502132027504139760893961925285861236767030258172422163486394107616972734028861858994054017812679129610704314911294803628067192738099630179347741005266605546463919539782918207843018685818273871914429862098395098518571094562604284121210825868309833938893958185663548531272046104739964474409601156496350838427512245050064154030325452730476348508023779648898305160981553908932951861036475029535950863752359571246634324611999600096502497577921686168039959467192208240553911806772205687928457576253052908429053931925959161385530741997574672155553700178097060090203354844875024351737653755799844063530113537248486679391959866443145889714753462906231118113817253770712041299422971570916836564227307077561519969005033186619170573087797114052199150426369069726615864114007062789398676544440368882279658077111476548132117069783710051587176363759495939307102813362009233812256412354106081095102130158877506757354671584478142106301212332348325484168046932571858795366016647419787278871569796132171860235347777893699529203617309672999638554693203887893218069872027921439046582195643008781000960266765676832786740056223429098096350500854902794466182649820990470123081769413962190899443221877504182802632886739343860345076171391054645403866014541458647660073210037669070470407662788993408823307864946542089687794192545470775345086312342126171818725657686671653677652511010268519101080098172429184696829481231890115089882785907472531231555149289867059897982927420501444811955611147429317895335194975296108280144268779821078905088085223837754476890832285273629625659085706284684986839261988241059595916066369302487403262578043887463343987378426440314456718997282697140167739506110363293123821362730957660038063746478918073954929946918406401016915007346812845793521622574366395418709448563660832721142294024675405595627976396074863382384836739712694309833358458068393998029427710655087225347208031947749405384804069519539342041051534603513586329460051714896776312445157096372078002765056521152241374292598954215039076746141965961625099068440201782890012770935512177616366321584693863614520657066200203203970022919796997541407663494943382421670054163311956739850319516493383897892324684861350858888673937608255161245867071938407212761006269275878628010301400192722618825387006004441392449003285675120469774966767307049479480469474606652158050822989354133005641167926366910285082109897232257500251351234328277429915195984487628185291243655362896326164472707127051982350499720350799021010354757839225350203752677912388409541043936291092771832213236785530618740451810249690071927261944779933974971469967311738651885841724979304818612500174135406527023295666109782985042986338536663359679670137438324173834349806773079990975261801824314728394943261702629013668968167137522551205713828269568645526739066891706994097234766552888729394825808176835089448631847628823600593069452175262529411080965287441742120900849350891514067932841184578269683959012638736421979136782066411960702905952907172310996321838789429353297471330900986681164792568661313337196053791718217588277578117640051275233517518802806465422443724324647835449099827438213311391548235873885636550094029509028257180576392669716313460780363944043301836213249179231354513499917883885755019816551748314284626990178904801387543047278594715771561108472809203708241232998682149076041881462495327307397527348094020456843445239991600518295271699931698835337704860058628634231064823229485035988929573071963854097541569931145081796462165345356590901215242784168029406478902101863768714181531914319190425550426075510907504230047275977635331404277324669522879901633184434958744212552533003540240715118180265393992357801739014853216726126951134883994444691020906428648455068731840142714025811121402022604426296125503982935477536200464456998585934480142955165899988229187216383637429530482444222796353034428062196925485599389000470650000317255208900996956981646098530472212437372680220130189914791793838822458757238600864854608300011731185637274625535947966711011000761100362865662291457735868965103304274048044565212001619165671879378352851458381126432843621753940110514078212424557293189083174520781111888216362584791251553595462299237475198462511870044545184786497697886792743316857875081889609340967453863421408808065390587643590566138545757434794446952563588974371843457796965729977217679435641942926942407340495371031597437247129752335804452062887586135130443218940993121736678548492481497956279298120669237794120999294836582296811551838079974473768739646954901056769173778886904755765384795472253885922862702652174331367655067287017486022575902836091786163565401560454580911664684570530963989065461411599361226484238688358085684473351351509363568496451644682330171853631410562613782720131748587012785017159454268202634624908213288469337107366312138101262055116554283426145955800646329798361640129696482273574461558717570748062110684316726960733771298865629658419821561444684170690207992653303227185956360952160215199545180314716448369709830668113863735402318178237947497458614178041682337900209408291078504421146105744512971322181512577205303134003562007031001822753107094926425643622308418213776998439651079291910882031792951225868853944745183431578239447312017590481980894618055639940154497950737567855818856434840777777997778788939039257585628589761285232289956990994783129846549674341747603097621298858032459541224451783719467157443459899588735632756980012834867384858725986978580113685882372887880163846388281102900566634589748376872399838213128599453145246180272286214363766608151041977851068642261767419391815744938868239926182694754011214387775845460883274819233542601493988449278911938671233369784083930779597199277947651725447045852367145043456593561126065364161497388392091422376010645487306999296188259571636722529676637051101281126348405885586332426559779355265124935723431303722659623655865071892129692058453608712471831645125395778356363299955152918749762528186684193330632520269002627800825268279203399911941207389070642517781449171514841934451098093779132962901180984623276940468014226340091530843584899268665698280869477381035084451322545939881000478243366535514881429099252632636787766718334527209896932581098297335273410553903133786554316758071065803525849826380832208560656388172505106454822636943707722962730133912783572199032023808014653070380232129726852137242002307873108364261619057246884964095083369456627566092610908103234086953399513916127221117555951182535555897892086203182247653596096876561605878958859905967559535115857845452317028988654129372205199086521680470575064331669220240359012214939910532998889398036297828514676834933238159298281917218882739477182054419697717643453849444940682780875400812013221825663819181834091360761142869774637225790858406317897945808363344468477570479472435762674688242075188106654591340051151925389545849115998946218577094939857165158181993490610682067176911048372284316741403584631020882223761332074312415121427305720081591234601710133074773144383654171528382580299915473201840741017486127684474370582490971078178894567012429843922650901617978606817645007298537787309131075661461197621427455093425444232320622406042865425854973755687060479124972701499718798159627918581896066847741958393573955482209352419669677133898800019511793145178274938721393220228224261666815299322287435914279408950743033040565628934543634007100723216729299754680989216925458738817300105118617930679961656407473351347872442009184449029607920178183412962353813905633447492537252665069793191507848433627149742822667872398904208568336337925946537208282298853089248646571128843652435954593832974069908843439275295301123608660906527163075608377848559928157117315943614854509409406231258950118060724670836426561868657363893356596226900851541480685492433115576284038233490660752777947676822678509728843542327924937771741278014205234972243331006215621004326312703602997763211632594075381880029443669697180369386804451366058707198999706132558343783460393046493280483096924592520862060966033644054015264295884304061102592328679057901827246351953260238090513522574867224569274635325383595466625879525116303641219842306580571294341335548273224800645245645577482470048061179212713026199447243412581576151919499646253678125608209962704168739625629646036920030564011181966679886554098568639316426173416740187855400187199733711612567971334758874012402579495807270592826167994106815696419913391246377557268225096915953864038241891249300537069402406618418043407617104043654706925248995747956926831010466704131864370928879117456326393604842522329299778691838418142872772853022510894224408863391939186171502723500497174190642338352927974012987674724619247424752173365420605381723129538327930542544706337019370126081684146177091871362519893401365952203533755239859689417630405118559921142834682116327079069594685298972796134851288591660340158086426274264661765552957889400589493877624592069429102647164599063644615234652991404191399009435346923257821848745792109260064292278492677784436562931108725304074875487956009230301654699565745604306335099570542862342210131488514655234770720733957337807247962166643276744777822659097644239665070501531749447040834383855347870782476095722499831516799744081534150786521728998572198839341566490448773537229127959087900057358688296410052981455163591966837559730526084109363153018343657981035571603761515525557805290471166912831699300680629957425654328807240193363846949271866292371183457425002081942865937401060859654791471900378783085559527570470239109667056762366389071382145965797556074369096021825919630815434626965669803535549460926697361686069444029621906418634137785085844296803488281213783682751527382812739723577867101429514129242075753714035316229501125901860276296689943325486586045890168357970101585581931540434257095139647552872889445982584371448123908352194505920290390237927990453284382221892608176882373299813395798297400296375311350173299152289655104020733496835619459240694480169311614440298486431322654535327695568556774397196456025914696328988284553852182602694708843835788865995846428424959539684141419195099387818913432061576287595708517996040398244092818957686507653531233594830566453242772685983525467780331946558967437543798357160087433663794798625540295458798164051805397906198584017731733222784026067652187510452530588702716383232303746002113962468736521612460611139971817499764947513339876662996265189731042500654711505047779504908073686204670612508734886301475330701721150984588156011155930482888308533007491713507736061630770090805366855240550682027601666778630994017713851558291369826529779378515661188057080079911136778954272102948284155276154094757789798151048721161339724559985772278170618494156016875393353528141453399519602066279765783095332371164097989637531223831373636381958722582147844267323768279038118463693889090599611008602780921606781384027599671415739095100006869075124926376975932319897213988181923675082624235541896096696476636036232775884884738905296717949094640766950937176083909063251470135802208984483157245982138911413551896504485272255418216139643576220207642814237288398732749133936383774391548345067410023961974511287297634329222606640093964433007542763805221626607583734206841218503058707359553104515205765234851514706505346207531715613209074661207278405074479001950893164421013498478649393206940105593610351724498564519840511912631716401925878786187058992115689577735738545339231959793179123308752603395614261198904901218462552954811584239751509403543002945710974523742170844826237753599108565874247701221341044812590433379669874416050206429130917527078617416254431754628154753349545088605039042674151786820670592092564592304517537100900185284797158342905937318948444040182323496198997558630489105650943847130849045790035515305917530382047684978240230468520959824132338977949176729668295794405176414393430921060374224372708541918131281395303523223170999680259004911080104100388222640506387360042212612830429051369442717743100628213724359451448455022717838117824952507405772171285366541267666841627375110358428482517910287093778573362354397237032946595772787943490353043046579759214151746388754885393124326611810892535606151883669025126262307798596374665957099235317336478671818587426352240839123996263628148254193510009916946530807010603224491220239877954826258600478727287592328561302542282032467193897652891503874562691428896059341688742531763837732492582964030848776534709598702694034150130517034536445141068792536715414594427019382492308559550743253068090955145300075182562606717624303949722323566585770870965413486595263749851893015874255425583953336564501031580853275147192589825012024011814280150999311467438240384826268780297053891130730139433066798163622909923017830703452360268711698563835480269984667627096187075607396398484094006188811787955322739448147164099356923581881545631031047849902389479304386267350011008777744506437136919723954385979202063175386218912734978170875391511338347345330836906438304650233364891711610676647886542174543759599960696095670959228677824783094212832355484198614327635351294198878137830787002257102497300575832815763293408736688310289614985018302374155237251138351567830853459154306490132556131831049484553470035307761524765617319772974590670706656017748358783920297262439024636192016438083043207240752060226321770297481081813271875306615879806754435206725051734538846709980420637019243880655643345954545064037304812630586314515686744688507115283363372526487580723944425667107233652216344229110488347963471666082508723850538263998575317859580178398400201309134017134987352953480257308257570306578038779757706742071707665908006772258615360675600173743234848057017361512307006554206162435395764881240764815346172248423244627202048867934803733753494610282037866109373938532821107777561980714518089588443046174201419289222310375195899071473626195595765044673871702316208301415674582239661702075801274224566328427465523708183079444679170080292159191047446053777303058195142593778189982457775649769517892830614573905978210663208997166635727413663851697295508806110140623883427779025186117546697844668690872362649621675652846479157157283915817887769580138349193230218558603112373805157532640797453584007455665657206030438872541325100265548230777459912639874971373475637832437683531988809243736254883285822658550183870707866584964200186897918616485267075198530089826448818710291578869035533121192104966468126098723494192489080419184958367452701260097096429861636695046097007820266000461143112305763858270218484986039459726482588064098173325821951927214751319419590492779215522317819510562266801831187831921799014738829768573184733666699168348687287994833589852280808165458117152233056496417022867665460747483867079781975461006513821694256384993186239013747445342296869029861609575370031428222486015811605333555846373764908555616830605857007833358903617053354511477319799947392743199999823247494747037421193323092254307065168546428497203852523248806945832999719054439557348061821491243808045468827847025313095196942789135764390520730317737394692134205025574603476078832061896731171164842529350337664079414348484474276618215738990395214559066020288238715687142534905776133919466403348451816026593034999272120418605038433028054542088824387958953175083084523903611639364032415905936712865693522349276508959329620180942556260891850606723156035143977905967159153209821069968596049296674215606725649251109844549310957960466852542053136256764154373655585365644573524285691008100142916047138960552567373219047595602990340626249874659595474862353745341743384388305156672523221558523229636806162613742612438666773120702281340231936899941933289965590669221791011454179322794655857461667746285960506745026797983996699724812560869294053272863653952483907573838672902114326463194423056877612451291204370392776617359904823348602590150802867814256342078336830414679705527334235527586647451267491000486521748875066047513038110574683811277942124130154612621081665240277312086873801750842650735836613574032227630960229475991994597772741096608854664682723819920421078187116104185587580411640088741064550245549394988337905146736687400380912899003576170658214338027341617725520613448617199881095191173338612304300564859753543574089443782581397834961157684876100101380156689325233957697739479579681679229225221152699528149292677756043215761321218948725168256717548434004421229067929959492830221911276815377582738597874384017874026229373031042145273869380063312709801326231389166347688368653788725722808780578095031396891815121862036767982945129495529063427669496415553835415610938477826881166870870242309081249916427321941304761463391347440305254418687300148119643226623287751699230220169730607851248247657046294637526374024976040811661843995197747290003592017295139332386305816508073405287664351090101822619122423450388211403910172202281639074827399638116068863912865934673351467938968603177806248062507968613379534904769493878466935050924418013009581070692264314484491406201176145579020081752837214854594210124312068615420304832366508605548685617971645041259775704650528401649461956182774423048574501862469620420327885762995881522033955060577684099045121749951139248639516621935864904858906088728615470159493595595713002871972065217826801170537315205358810836753476147906777179064843169484285053148242933129168688201810147941514011370980222835428428873990370029550577423602071601258666486314654608119915464150245985242156588393954338427248526012048214148624521457478210506664460380289494769019918350464214981478445434139386300952782003512332813553291939640484144644954788841363976946045490837605180892860452103587328259028711743196641148079596996617833460905660292659177722031952040472268134334022675992518146157859331422114276703128992896151385952932145288085175769556603133145382333589412518494604306104011610090367926174072402835022029715478022608094179244638506591661490657761056795194598621052449502534182763304346781944113712572406315848999250009655625899066756889098156463349010001784471555044450844892439002559194109082938850628161932290235994234985783913624722533145209368672276047205352487478205356700965587216484234596116052194383183728509722437741274863720673693197251041012726142632665996595774770405604679946199879692072620623269031261475965143450737120840899267807726374490873485152215792511936186636698079958416375039887526608094273347266156230377541888484338623932041153187304015790585694610480458213375097932902584562536185250874499082375939503811023115114236618781501268740767789645640453612351115390469393175276881580362224480356154816472899184556103982704964810486316558619794140093267008470103341199327862163260622990566711747920478493305631938069967918266280954947931196238747270948177555147253849460463946854385319003883037139924838722644324183521752872929858748886993828696178600346759361137546286301827162139558624484275257115703717371366027289502185711181218996179894844311243581096578967043168880383181681124182943425808945678833114480980282189657304205906208743664222516131040535995448728738230671070180610555576221895449749751715422029457931596600975396526895529105572990672035937013053589898000479582054272299673931846525462605835440696532040898872545187351771055154398754067625612006354462076981719133326705906840015827069487532139118301347946668970166970487440211419619690966319121441236377541719366319060515767279003152014660258468727518723672548592477125710663840804992505354041799605300783875942994854935733825501870044474854872577644824085164050734223050639800183313503225189672070160712653858653295674474838803598731832365562039214192279487851219017315257680470363931339700188424141242841905971168664098865585159773362618650927712331097200903020770296429315448028700945210672212620665356111750584058211179044192265131403583743785898816913451532141723175195210021173921152060546532135830094625670478730783952324335547665747259225708372820634690366610868048652317085206317484444784838276658544985641283769803781451741735435809027761736377499656803054579498621625495570952844332010027509575239906512661513338816833429350770872237078534651809816726883832831774269135779055688757723132519673419137019481075198497545304809428649679868092963405905897462261088875564547326057666717129796307694344824378410228776329680039803748516393055572022299935538459167377265900405387022490654893347947539994052332074346047941462865495215536075998619905770420079017800278449518768148364693228383091512372021040843810759691949503640640480174008456215894336772122543024439991176703962977927965030117671145968834183974055628703164979178572695616010247403119146453790264314076449012144886539432749044575699959393444819920879194511255582333156352989369487717123729322661954595893614184550285552429942137384922134202369935716481226225611257979634232560499674836564862450029121698195852328223313313893299256033168575555949403202331883324825231582273338468998682824145508758865682562627472589542831083656048828483128345248548646812071211861686633506642552869310712820044749609570516083372896931689734865749501337968991848438471490199800923531069634951096051647505206905090454902706149917796699914886385038195985108338027518119715797774135584987169169333049685119426122115737836160080384980437774576384033661068337693349557463022406408720451846452613545292793757596442939251868687960338296381023244334476180352182283959733322959177684118546159284170402406143174929048001533459831135956794732669705424734440754865042605499699996250915199470095022637100778944475682781886044994068883698809272676649146446906558808605172948908334845342156771642707691778843791763816818397113841718412905466556016093478900185782010677620762964948685716766447758165424461230651061937341218900548945201644752979920404653341575835527344135051517794531078311393629587872012837519171445530279938498666848021867462470364402081251199341328593482951092846558679233657526735027528459765025147367108853098490581449961253178191322530929603964419013747924151335201908521062175460393135411023168182735226915131950259608599495178860212715622930703211400625396588194491271395010824135754149374246267038418320882356545176179347345663183277494970192152076423701603744887307140519462808094083283034969537060780651397548394892038813313778931873787113115218451598779831158690552269602170471112634011076651363258512731975505300974294820483144091753875828965916633213867827998176659961108993523409058241809603839003773911188035217987649131373646280827128473662383829395420377077948601445742170735991148807673815717935610412296600966808486074286238773246959968699868201118293500415978104179789036952670812622826584633268090187246537362231796852327804954954693308728245684720829497427299628749315264157820119306009238287481389182452769338966535196836326596725306398750774573063344703704836291820590203246577817628914390843007642936991191677284374247567810021581641615653033144874706365105044135815862884848134756623524164112024338089041306388501970650301758269832406285242630126727265092492308184437998070099809793366167128429651400592292527205632375776134396269387751529763540561256000990147639468659940958449081643761072152183813254074539869766511752621929247014621262855597068056320662288663831633082640512471716082754214294065919003729728425142872052895061585870192611445832603878788227935979981029467848334945185451062285536752887338714922348198860693639982583943193770714997535180691368198636226384092857868976447336387220906357035585034505781826793733830936962503248122705438220607410388960687398698368322545106456972143311379261531564806617178136020667496672884521109621208668203866693063363327852101753588972277662167183596393349306067613495861139499190834043753639175926342300305303155573192682751657581444969655957800345001052601632287583763194964310574023587080408314849532484105761674155309104302329695170862382417280016447914848115151508152825148759568539107785764348078024750058924625633737559822202728298612699051266093830011507157995152323070834261990622252655600655954741813546641547199438741144494383533258598212978756883823251708828613462173817422160997187031613935827614510321646351341329827087987417264477582298738085306287785089318891052161753012607380815373715065860322896929669913308342649668253891090518649672713510160830548424079539573254371414063431007352963201277339408241303967455845053263518809414337811955697694849714611543290310915563958113950568672805398589093526157164204891719633879746256186941149087123924870152869678894145544394409685011663020706304319299606835522767203223593607565896865553511046457621021150583972300983502213057014861852520159816632975180920059218215718891967793227740940015328353074593260933382304693354892095510830607293452931205670487507839042208379149518593611198064252514907657170662389192324030909618754435235567660115758735911826738985065970285301011609046538453391515576635265863020856702369752760934726978286066024271760513957062980755193746333281016606244974760952463460689666100120453858346500018708211337239917332520944510915379246480649845570476977001935939637442126631549404323070455728707730781009529244554005440885548962407433451650874827292988896247576010928670949031823869148321111345832793843855586047474643835105079487555317580127713484607454901325837590782807283953429697841544419878414090021658759967367401914554027485728165790101054798350105031994750370391020355477655198166754251395258639171676431126750712882215460789636087999497907519166895851051157445777944971023748775646688934445659041338974565971115512778811411189291474731253938440467505448482624698751993198940180373768723948867034137840966222421745348955354902331462809362937613120850141888067578934757814513402355387539231663117642497208172567779728623118817234965748644840140588432724291618182611808862380548100164858278420640105647844802751331113382098957931163623716760935974044216563572096728554814639317867042897044631046251907117661098155296555816626156894563477948085996928918894901747722492773843143141065923579549070945911138136900572143077486171670304437736398005495277742966147381211232195218259567727488612148896424946694675072125265052462903772009783790395724996328902408962341866310984390153734867630801847038271797098285010722605616548561187139043128457216941936714378115392209470273848372998851805896879927719120783092127871690389914536463714056677208910339511930895390301894482048632414529662459630506314934600365272480831511933735631978694716022502420708100046002660910897897792412361371942434299100374455731539849315433182004326509441238764149463439122799661481721324809076210061052314859152348486178486505811919522600501825579231256159294479515648483546935567634139087337627636251883225710680061784543976085142679481866714713243372956192225127366741462165528973151584252856597564279323763664360741725889131835570096773878641428079551995311116512669817697059956827957913105616977090848942616327192318139903199282350089114384914849362431598195482078736063338460448445891571699514344806167696025238695601710932795858697590322862085214641940450247240589081704896371997008815877406648424170103569567285747078408087956424644399650828594345561524496620245107309527776787152157947555082645863001746306056246391726011012698341170129491670464300334071001512810835007234658408499605648916694796704964395973097550476249356861715565464934719363625816437890059753040496532568375728928636726906840893359098892802677106127189473445950193205800021342551790505507338855257128253446878939429384361014770611006653976186837428245516878626262606167080135452529962057626731202746839258405232986246940060824672729516443450228249429866153803745275894074696481202519744442103280671566162572356695997711427585609455437388168746510314087296959186513102710841237605684041325232035812159812962737866047077606345370082612091511379086601031457708816364538303207877602685560804719958320136557736333245561080209499192583331126077181776444441394195466218889436231345849122297504001207226075113200881128196973936682633722073173056152480956689291529377279513125664986155878486250363174210095539392885461670013919695994226702908016622404741435688687529726856038465035561098389793966266564249029392395193805127081517484897788841048202935861614577720916705539807380739815733449837807499573151969654558195096085354736683609204072552618004452865294853617675367178026629191987040793517245828843542905471949158092351241738706628403330452122606823832537595011483063469569417882535161963467805318040106302930558948874490522990302547971861054245027687758503909979283653402374446061934172243057050415563717312196894547922062434021312382733899774503435272596851899298561405592394782446841956604384823248619952175232971108929607703978612626074933605701977051684069145197491566970950723125249293526165023176506984913810182876547514325734986853153245015262329070190313750567551267090383827067247902498101881986359268737748111423801696489499270370818735123343119317477896894081223020631754179941705318931427927251442395778722626296716208827623264570981807233721327422915564527768880998477338416744884142870382771386036471856056793135509937890118991901828436974012659448766570054853528128708194214782419734397783495886151237473997487488861871593198609646104838599174552708005369313072502004553939613906289743471052447371304817943640720289981809082509195239977135203351512622192655494688630322386210907712834461038854928828283134460706545350883933580006936516838471976558744048708255398583856613107626641820353715464396811800464135955371184166931159391472743797899882893124370793116142458636549843782447678034485760395886036021482222642750105754594968365545409673704780063522370353482407892978206946260933286427169579767210244999201895919459051499705687497996015919245066679184439705101749747158984017040668538823183755278530002863498822941671236138071005948981593654583620386984474960094618027433378620922879131933600019500849566983255440800333455339553928184533237829933785310545171102134074278688187399310956560147322815976948245327679039860330663867469234889638628076739840863441528650449670406368883269082665762944642667066733370017371683763503851885264323455472443383323347890506403970400884918205383769014947051935604333733311415009532572703506668217342742535971367158065383193831328113672621749780114899412416639370257143912704312836558951210009884388746281518245098245485665242466447653259115894742442700530232911034716539016816783402352509788222118244894267398651078428186517941644097045261126232684073851643281536444248900189685157422440923273432054235764529301533906473542161488433581215508008086761731073347642169922418639016464794139219621716418157331530848684904542236108506028836423954289908394301016913043146710072120831311469171237441626997835587120739051694780553113843489562161063978876411020076263876448735506538271770119583387842099988330474680858310021118722124855710247385490610951413684213943366174193227839591627232327470739776605605097205237674137865414266464018792981711395758464388882834029539668556194128812164862375194441916336999961701293175829571784832864380918207359973151152738556951554675630123041975844422606343232684597446527656394502962467180909073868560694116314525179315543744139295552489854039071383819430869207780653123004756012569646854292249505738236926552466838785473007407946085137167186424437569839439353851483166512529274218605732455822079876169402338912322443994557722354308179288611386603122968451176813895242581265442510872431895060523295782559479357901760923143192136292886023661149755962227731905504224559573615448032442801470854529619482863853329061114709853414047734729229989082360466210416359502896200767436313304681461462048050639015386093398019676295537928081538855853733230519137558087233603435057453935448503560167016834823495575297613765404780815609968097726233105480348492890012198347666623864182002331347403889673333433910962294325325673825185231111409507708243823350933842968881318149418693257732439551742581063189287232244388455115369964320506837291433146523507172501783370857734592785907951196788443289328209516372100288109324598458165317060343570969253907806523917939987734253025236105807302577538036112154168605338438294676510292777254769830039188370710783027370690244554098369945539612078611474939121825812921010345755858962980047362132007158797485456461039341335896357743771458987167015888286750247207093076350697559470509565957394847946472435486981573380026025976121408394506088049680156337499517495580774803309586403929057289189984670769797082163101279167516318447608869321216576657174589219718048460608503305245704545647009134626113778564581986792411770816952820022648575648235516026937728142340957348261133750200177025959036788725341061880968624706992131254383653397142850552801901739746244893859490264150596896464883031494876555620822143831365851755858603110497681287274035748381825212639570624446264342405557369219238058878197839375509384766540691204211626680272872364012506092067922603777893002408963202630916801287014485701273153494513649374589968586986122471026668990792706367953422297720537167159654830171291941744448786752539770064527856699436386479557235271211629076199761660231140709392603911084126670574509634936768931695810262375108569519817878238474573117117803476870301404182006748162481387849001265554183355201787003867406398273770545806730940720998401468874841250340844618119011331855022648529180598810924577261018403975059542190383520457244806427575099584454515090603475557534850797052368507569975986757509717797251365938099453255039072219236165633221880162892974628156949582463843563258602367682704976377164511421303683345986096233074971098887080617929313624525923343956294905565877717972631090856191393095973396591097134055466432102205737631465594911732532992388569641944065216047533812709905037677755598187810880728536451052630472262611159064111793552699086180861441023904380654681718541182746475622095659656135494597297780759371931399595795251949913134393750811618919237757131166622611063154156467444151786005069601908965754505876297872042494390669998827747801033298514417370750157042846958265484854873835834332540924959544701079559388932605002329427683617823893247856533236242710094352361039219659931801179293273936221672716650713095500057495753596129880658298480559286483979000029598083533626171132383993833893954404315544669010427323270520016355496602380433922347961927080503390948652447241315097131857785347298793211021504238045587074554939155546494446522573571002014113478647894141599546977112892681902637595949887707430139555796691196561849059291937496534995995549527067088600923100752516352991580657130446048165052780470370926607567169626545688424434450043745321860290937758339704139335681289857685393236678384274420536367354121800021864154586501276612745891232093689847385718301045613925613930850820033055384560608250925819006812585108245472908850337455996649606086117837884034015288385755395503837178270123986837548675108218395495599777429329243411299932395735897643592539107845530938069174390481359560643142253806469431533166555103263409206259751098288069959695578322264941241949017318930093315232920110487086141704696714361188859764333277255356180643140578188779354487104649923357539516827350648854261100553944221702535538099064791547268928194719327864565080202434296194426769238051554587308313914049461097366232263416859427880266575630958866498857058169224722224744394400975138313352387546812556154324341073611523167850798928003847236449081404677923509274943816515235739598322320237780313692374559576833743520482802914713662382678087120003244210007149745741908572947160094310694233642585418355389503197226057072220875340777371396777777065421936755382098629214495495320514138424534671882500604762792315352181636283077023953267753717615664981887250383591544984844355450927731002969675644929083990282627330715594124993607969723240534292339454115481152985556942952162425196884648979082243651193347313760218713112429820331318437231389771470511489049314195116363144278166729600135136989776676019112530369979366966845278021474784828130603308972390869788035893068622338571361990661465238970333004930288481890719634033596044016662621642420621168651952415628256759989029717580305840699086652488489452743648799506998252569979692628877140041663196805570078727170894834366701157334712032279962869401638891405119353483238746605771266870826337197580373795317581893784328171631879052766534403735711321260136947846581769559782553387195379661728892094796299955427934386743512491783164445385993381067120070157329383679236428287171950816475158371748317595909937192065238804810373085654235460717990989396849909753584093533866796559919134220484447818634839367135720445673727826523613049612896770570762657742481296192473489567644505126752705973514607434968896153960830289185019002646353886413879866527893703089621241404066214927072297210400703707451286611138038294524240902722849328618336087742876862726388571827069373443191819402952744608579310249478264966955829110384647837690733950317823197555765545586717360654566219130696141691519699296190698997171666545446561081878488171716380936243718562840258948713376954511450464449892431084162812192668331888773181713934519794245901703490326809597891509726197542790977922152520618845755002080268457871899944127965236545028716867109229455957718394859196785591739414551598623096731656152280602821859051559548066675390385958845272929165240495782199661097090006381969185859854383167525515011311099078913351126522020041036172423954814551896836740936011269820332749772342926364648740952895670035802446113067615652156487306512891475423523324083136172201892041168209541812710201376756174611242453194897982319727523643959410267236638002506149784791776063329505382751766876029126824288689173751237905926401475470332865306389186430017245468933171325585093501424862942348770412953123025505222567037223608028240336533591768252029385766121242458698008108609195388856417631032449112398842208560920211573471943920478550435032606571669314929328986844519680806852739410800963874290576178775683802556511531142006408541712733031109261910043094454589621846806116842098691973324405595733273706433000254021236923112694647735399710378712818323772369071364569704659831614676865504438938716473461704755583228334773606869024281480100964914737206471257861358325695617686158265260622329502870452456995560439633372224781457947045878810692119558347462476318308376140353828137249225781453583641867984095732569853124159308345325169896360077683008194209559839197119410199158668287448435805689178515397247112148898149646029664382953247654844263891833732782602343660089654315477080413138978930597373390229218473465348231604472978114184303682793482685858806309355582823378802880037723540369371017377071658252173369553676634637026046891940140979198251390421227652485295345233555128633378671472866097517300019751665827819065175327818572591949354322535709171802330625697924556611654814159672646317591387865049083016165816663630084470951148900883232704411031300434999937210511817289262354324071238173970070077869834710804774460847637734863606239786430613047882921323380972616241391735673497372583983998904799274078814015148601134824536210017832555013928662411458854920275625951767735896864183369869225326469968034424777073763482090894203871043184164081156862147062596829595533875321166466441281287242464758363612667962506584920861113261871169301801288336186305137897564590176430716710389867070209183991469400845976069477311897891942354331516298590246631258523780397434960735230883608580545396758459959511530459294441081725259962703162415171920113333088785693628454291858499412667317595356840228980298345256074073446569715771362135109001001562979331703487653374981284026341574308313887031183264868869123913335051077208513624297407587026355290123741695941512270339412104439304639746409492148653573188672755256960602938221142466953544985859607945787290755799600557059190914262169499500576475540996538196553803297852417848700818415163852229552331458214040448128374054569410301369078905370501345297058203757708760032110971315839958149346983706584475041148960316356651812708897126462063513722638448436776631652538516558712840323329845889737301425334662196364021512152949198622563930325611816263405054922063995190846884212376508045972408792810309106545841333265211597296883188389479582518296551055825059800541030623159402604778442845681579100053814624275183995683563442991185093260282631301877156652089033497997995624821062436674480710119033612892902895577704856948948389515934645468183082842766923272116200209444069285074427836513889600874374345941265030891302081143334181341769039734814800617983939743446594430609670611128669871162835540019825631316044519413549816032750476124685913392885753746569315924267855723451579952705089858679155621233379755345581291595209673069222181514471862894424907914163260585374921460705415395226635277287897885567307116069939496270024279302934578789406278615278600002205741220061752950928816091132678983502189078002206171349865374205972834918794323007665069911876916024033954527523894346355636893212741713819050102623757643531792236295457606724357112466004158220723343165794153628729207872744705363420252643419051820772396076978408524893686472895493579021249098539350321852532172269343597645553962831031423004891681704649067836336908348548118365758439004180625154963451522184183186108799207342978135371751766200844919421697452466316246891661843680868922952224463587731668110031183257656139143257768526783880749997997910151769488663465588139921575717540977443952279618984037147963968416628248114648507012462066504669233324683761375678055512210105713178053899192433772728411637525878126299055282519143131198894188890799284779901665232603917837375044660898957557709635979555157673502557527742585316531006678871192509794527666177834324401563708754168926030821066154783956336684153250378403665613717918110275038525521476132676968248242140093969001432615118483290501776958947400883835374988029107351875961726114783851711881170472679499446550452313872339767731171333326721950450876431002420591648334912982685594848229391947348831987341884683341807293072571142173367320481402804281908139774334845533409408176083841675452039306684144761751826667838446874122197407380008061070245755515339832660004491868069916484811806536378853520293132235133178104046493545613403752854994574791497057461749885831219473666373839896155012954789504981315639971245916702050101122443710784890755779869194660100999383900172862698380321581131392568304217684047723824072142237355368558171295904140148474302392587239523752150637477161898748581229873769148895359085868439625427596681177708797184017450053970742043526990980813347198985889292023206646449223567244319740246234618106799843120772205505175069442264061388319283715306180806135467244678712687383420767840268686101443036413058905481401062751218501701835197044405488686946387739595133935053927763013675703085249690231381395990177488845809369275545139741270099130949830879268309924298039783474831833608228660711410413399400853591262705422701769206663179001094968146668546710471404344248930488189606601898636690914821312280300746648567197340612638636684657613007788064168104405605073905119711801315689683006478752448044905836386887525319422752350209121537655437119560857601954105009196299170377992715429824479916511243506475200199762574862532022104842102299207121355931807433788729922162630268666329841175581592766039532636892919300295879207266049598611033630924483174578048198169374234299087228574736738463966798897231263714042077218210490788022298100824145391588104801730653927544031149037008790438695409028853906110239454766491617616354509903928135291465408850667667314219261920688850936053135084436710442123057800713685597941422141070112941164930251951255980668051568185531188409969746814424151993419184287826956105501555708200068395021520842871053121541388991406505905403529256324568631791527267541882448974222113669614674305431957060088627415005916255859579340940797823410407169309895066671443462326092321494563592930237691725229371330721678596670698991894170789699717560469619788564135233450721131160079488320788137033010283186242998316475652554886131259157143628295029223259141503207970668655346311581900144976630044020294088383712669085097813888304499206969023547694908395593757371926285599940933161753518940955607272572507479290204052934930437886152702730558271501689224707926961747338246311612757347302574488833083697060527409408912947494720784800886324206170152808269564971877698675129705954018338898717169431413708730963069401118828487318711749308406771243942962132997847477495480188167448853498739313905861311429804456476568116486866584941404713126150747081989240032764584845705716862812185914147720163614117942460264886530662825035070952716233505177257326409077602593900747995887296928287621593361167294663656272516634854488493700090260938269514000243282955557537032970132630178310159795442079378361905852173982993492724231096928731508415021185318525148580717381569755836709763974904235617454052347882890478867990966158544637829023335729327206645451485791113825097816163156019029897997848013266736373631812181436258639539811226973973553488059426999473562747682278126354655255157010790151115748661373702492533470773245997353511789926159435443949779543950674331185549506824356852311577575681629124638921605510146733948316589749738390087079733312423136511634569468731671175641852522511366980876114829212840119444350620082585570856860126706654827557234207748072540694895631313999345254742657419992898930708116840446217313451361335235793637401446297407227472760760253949673716037231809705538525931335797842654747634866395017047063689342539089472480101186679475910705541412612034218718874654647522816006470543261785970489905223188568203261618072791361781226832886782691812649960367297426138032789537922088286998459514068386810934000579813956871107133335272953200679927173225606841078424604282985000417129606478423376188664647426675619259485972115415631337488868118380430673641834564643125382751895309357315289516249549705304001399177952573715401461290341328550890906631575762821623305359654115581844353698253355146590535122793088470209574620675242031484108088343306247587376439478501379447625832925182201334542104647818272107619230952625426283154900007628476192139622833464885396791745189981524815801093049887864560353569662195681593922352031889700239027575105955207134813672621808256400023128944682741524338731754461356689539832063581370196956005549219505324503599831214102484652491660333745361931619724904929786322715690085126031806953778882839842023253396388050900502046190641608151487420085910102771523156034231623862812022029885387963081289075957497873685241687985730731091288345317500096251158908069583165139675926925274650771367836303942321950414993003493029254746727377994472067333398472892656912590191854770669000791600371004048649151208419349885282560723364919673371297137263921617361488181446426412779429568589362318726474167861247481110892745397373932717262227574789537279767080703742636466902585851249790382190871385061642932823871923997059997358028936336817103585798803207192834538779638423268798267467222740731891393822874518618897763651419921862428962298012523281136504888629605459509771232244375093387843697112188143441794676047092281283870402572493154871369913279700090237480930723605325075620146400297998902259056598129452974721838151681517157567337967158192024728831439589428747846096641792164648637934733335698101630080670954292155180078651061642291401622486157892361918730871391351978201476430994893929810577817504690058945928452865244205217127852114925795323130915471083846061508637491995124805829658774221144442757296727618733426498168837181409746901472098816673867941862817473681322868702438852763853612360213705815622847618291167223873485047048201213240057652807298908609035194165096555921035242296158715452356812910914954548275747095716055370715041772346513302949825453961832038972186532118425096905240502751516834990111420367682871379475095677503595716071499654741611967087914478408012050483662824651002914615297813391829637945907965687575854414709894929429731727452828071874684026546087305777580825366559448778403496503377732811806084023814276480415894070605965904412158521395255712248455162784389225670147960362868904229698175093521678167908901481042495308894265280066434482303027232927826500212791903423627154970518306573876386063918976237748668543002204643836558843135480612502712739833959008715313024629268298932190453945565776707205162426015419968442908769924359774496910195926628511986414592732288363067502552374686031754837400579443236510354276683738769617762316596121838755852180284703825487278426819925281445143666492742760021565134188201099429336162051745895716593916027110518856284314353547850235833044561503023790829508308353803729469011625629325240480626233198963270518731121078461467129734522059104523179818997383247796350647129925348507710939726944587846072140084728814901502497873977102643003890693635804001060206230189011390067976509724057236560013277833834654475587640216766835105336957148794277113194433673614072719837763030661256563852150349092982449632982613799586137128198664748858470801906553254332727691410200773866697839122967354157617885758183558347819017040619587019241560536951426392767474448433444720080783434616509007304297293523343405373759787337516076081744392592856364987607403826305138928621549165754779880257160939936184704950152489838273834332641218452378934916372020643304487498771778947639772647661886068192313613110490611621054045535549216617673545278188189352558851997197810197066183070278801503359538166519412159629700570470603899477899216923735745889449638750918564270854452747406397740285793542307248463613347772525967488185862865477824794878038467791669208895406709710192199666395651068490809203906574039533024051612575168921701227789602128681172434236745820068153742437369075426476807287841722627024542151815641876905705438178094907648930252985861073036882299355351459231036455203188878568008949488326256082380828678919265429007515628220656019072829392776016007430548319446958655865402315655314658866293193714699807325770408634643431374761983352531541946980756233799371111255858390427546771009585469365021978277497816773328311995665599708486868993730504824033610859834452450102705626897009636427942583411854515708656252668238321959164695081251596876536950055300046428343373541024416959419718595452300163214788900079675337217640949203343265162600141425047404586013508312197464898771911799895367247551928955446174470046387277428005255074958387720366403442541510570553107532431939269308354383710787716749758542921892659192690356934978526919524153808373007006872472350297217609901621272301345887549195831956139331354329135088147614587772233814832535279305482753445090531013530701566142640082317977419898654714961573573270292236048004182409715260378753941053403123435742810114756786564449185817794493717727084155047224689474397422833786211214930488602328676546741928153629794388825627304216191484222930089142266673437869681646196229915059672449048043055939568047536739030796190299710453970738962971239040891729727930614636999705221307941753818891315529996928392019427276472322334032581685888204267996227868573773363839856622980344116222785049883825594333771488398713583269016406719932214514201237440753703645282326417193930423492750477542017217814309274486223399513732465207335219193928170627999590904926778026756922574545854777325325225332050661514587744253880704598848382380128195348716445295281068357193666548200016042202054419897963122163940951807211854127716738019991305910176956582261276187709265912815322789050285363614545635074232834767430065675673248090500562865015716467918431420590296386345174449663564529698512151245016984015488544134474999029694515636892632009322135915101973621241078341090642258662398129838368653329575056421135749411305780192375813927751866535077410048863728624348566584623249443239019999998631335740921495001523698846439872908895887648420326104306499002682963434823524966899218907412992023464249171609253823635247682854641232841312365380461989600497999194897255354712829439129041853780939632704499417853003406960469124590524228358188519472545255973523886848547782076458787951748941613997362712247146726561234071865477483471052680373039617293709112812552680768807375037182148409117027682231928385911767991834199559004983295629871941532841001279866153844880925347916944862500486022130325120360359275034607235619440440114656088151226368102801501971669797430469325723906150833620215370256649456212676621269860469125140202913273503117651405135160297895653438309614384326845545716858186382151959923129654974942662337486195969380908712387169062210971126186752083306313454454219758826865122258137311585391539866836290074840766755048177732289904426201062408782669528617526358065001081398892426329435040617547198035932580071579843281268896790527781409654201188309089869518755154818660090212558442238258407435264714825789895836812384087340195296675928947034422138377404431858354802724061562519911064548469888653208998817183828958021792781195207191595243026072954860057269467219827774690540132199793613204095208585454910144765757305904336279391723797611869871249914890546969950448595876672131233045483507970735571049776720053734050829401986008008099567673969846929726021723569375856467672529109231397275540308216576911525407904405898304685761747285596985857071170663407416787154732839681129733602449470183291177119134189836417362081833267603433946234554743523698895131124598073964359724434830477597839503516543224787383079135334413659916749928322379107133140852280250729648636552587944447723707698132384896349439303071774394489314350902506986952028705098018134057645099751919753068284141755575095189377490742371155439666763246737450089985847803573106735686123967658173260656940170616960044596104231165873823157595142211462677618957901661217840596357237665012869106146386934319767925618237440810063389561039144114320613038470525766581424106326311473792481448795435549864798612749959318167134661789453346970323668238772860445261909837842907808673099979629489772565069561058197006172408115467401830920862313974172635490973861857520844682216407611024285251450354189436250593663483691655974065557383891779124422383290566088874529314716981612421680923263081087771804283093335666913095694087026204381558557735087847590032293918597664544240277449439225969141390228601816574209033971157057448572419744120217175496518625109607331185502057673187840580432364882923257827327592268624975621555609998066130540142644950366206858874645733264319026140819674445575508897653425080606256866058475533194301518754479183052586167867018881050155960410259271574596925047699084217163227296228891683731225717918084052021075991754273544904156331185474012223813730072266521730018382842306370038702338328165143475361026996400146720837272319749712502362557347054687266394854204194418784634054255822680021498980285529479757939686106691868738094207737065282933648473859023892385903437159432129338868985504763307388037671606352225910525703178915535822361968003084664774503974909343312853735172898656904950200685957575431080485479789160355620641950990402911302990757150857117389950423895386417885758430954442024873433195208568421726175268513153242442985500887541461639732484471201121637439779697368851243502237031048749762868702741177522060474741040460623000922065815345443015403484716196331926092668025038914135652757359252351879357290088850173048617016090588402435387948209583554610676662547974996958870196338332214020231328148872908127543730659156380481668967141822892674072699188124836866861487072941601179173088182144079747272137303500495194132130755087318742142104771033848235669450896361474770655149269846132738884965611636562936357254602764272450966479881946734656701056979113097916147201921183623410857267391794203393702117013824341214126036078536399186477561313122793775189648111132004595482845033388868166186908589135493405173950603788802863092758512642188856451211380801686885080307210745147055078971895823896100417019734702007483853941539864584138913813927785656397283079484038677371358781856919496827713697473327369820960753451876251962564853192740087102882866246479505288316120979120549846456216139251404025459853618189405251199942063452990158040558901586085874036014937720388096088522960813200257728827110839287562180380449703832439180703082929144417107147240153186767410444450482254424528947035612535203214403578763958542441763197489236932217179855677796031394485338560255101365981136541139875087241472458824296759453535269803657093224228368331340274871361153192745149659160405458672555269350984765729493008384888082050535420435327747886117325922891625970241460097511925718929903047409138416105981729530301189945789452560563976260139650021287845861691511850873897259435431656925252505171295736200050746962692784831713666161606207885206469608844322272831535280309662729943760015708077398508690551264618503485866512401446445212337627139439528741078878724260089493683287294669898990206784334133413606844021851989824187374195127799960553419743757461368756751635733713119141078906598610040870200079936183278292156702511516909566707642957349681278872624229095206384161530973173869202217544471974918270707409320982258260872153948535592749279814401455312320874652569395219891450181067138920552904998019674163846306346891325585135086788650226328319334359130319247812473141458866451853822917814908886353327085046662164362298763761239419674144734793009736862841398852908272159073990235243552004711447869801539790667676430648381875963524901063767515567729925560109398548007645764503104340532018828376106587377078214941737449603552058178877521003116705593673154713624283517049705562044117017674634721895823529669019946916484780432595726155540194513065694253167016401223584306849154738625797872080538190769099374089299629522952021687662593593673499059089075669687301334839283485056984147433512190805151399657135566871749046545389789261076740512339607910971007032691847397747638403329800643299285060072532210163561903900885730157557885364137244207679450669287712596589300787468510392961619654655944113913287997789518428778199938325328682732276006344122783149667011351320583155957516951666547450121419971842419653994513949722798347915471113947039117266058665344755435037754998253637152003022866323401725222672191153859746160263679622978759486040905332525912631239935401283975283201498748794063213721198207708124983173886367754245539563578148322934002177849939402869287240977677664001392271925503903338324069167007742182802214544603540732007629367870004265295160519708893635184361348465226390688537135947065724751182976911894888624997699354344096799146687350402116745514305163290011988692175123426603966250140957883565294315089714169555136210741528151787732688256039827182816065867029279781652133562183163773074636454820864544158271655676656946116865980447224190714214489714895360635177921384994880782509495491239536101318551983878307038213953434348767930266491586313541775479719192696590806843557679126660128652746418564027784723895895290167323630648692354854142449514180373434134982933396809237605693876393652744501622703922908008812883499027026954930129643783331693424404893205623135208453681834600277607699563919850642243454312854426028522932950785633326743734160282955774470192743814469314319226793599636887948693526627518842670357606718636766591087549329869000263608713208803039549349718182083427533718247733489891596936206502346934440947723168026074581127291045593556008190813700124974894371930586477520286306311390013287233892283602531057187036682914627872879739456332615859219733573192791293467911632820493556934847619657524156793698680955690861778472319067951538177677464992460996313993520100320520304902068952931208616973517573980274076673968698716002223174655172370826807539992525235742076612675128863221448099737603414431643393657537500261331885654636794747639249308247824819517635099328966344172014849628575338185568007433394650124488038398754374839960245356208059521273609375871380707047506494131480220840671123173492210465412593101712634867430174028064558103335588223302291309625896937959319405451423735497431087773239961795343135203727892320208859217170772567275958265314010432983699209184272085904640647775204339139507049890185780409096336201192233606431742273169059784775972968350298739580548475979396086965910451096687372770187338439744574232725117254423960074646739592375156521658406437810562125773650501716075648890059437796265779362274472296721656734831258343001903618335734628072003165725016656329853707771238749886251433055994723572205793545577497134448715050249491026232183845031233868361390623971318455993978423015324333954451405055462416196510657253023563996501227325342139843541460798331799949516318111292921163473130661805447530547905455292919804393204425271302307714274502199421236115073239052621905589393881507969759549608980712293775318084010516090569406567242266648932598795034117731917447633978496487100327410431001668317332008663990195610199261294303968895308664040410417897725383451505754762927294809171565589827573691489347212938344882181641303243446830356168313875566328929097582456597106428068232362998775419450941321016255968421161140954789996706708951176848174577262538075953874718708322617075741075403917281257078283354477536329642701145283679725872836134931758769982011552742091509604273465933940228204422634331055438382966323049526542386132549706892481734165592813491411013019208251556229739694412307886119792239564211208769116315532943400911607725559140674340623848400288469270898113280502795898391018514630106562548371190142826289895457174528912298194881387948088624561328408483044567014950121526361853666108375772127702068366337479430836632938873789139476972418261319036059261139782991983058264904052577303314328641371898069810509367433090529644328540198440882463739615547363541659131000581703875417958440127336533780263685202887300617549514876507992214630325193105485757751427307678127402671966192605934672111238316514110736559287108749789838435706517155352757385325708585899579578953628534936232889520821702688106424135722597861854385390380617550405561324199796753146234269249070117636074750423353340190363519399283978344272870607092804417375338772237810483051969302853608912179230918878279963958004133137554689160153038319077099271045821148355236455699198530181896630028679465752318551916070807217202388589710442189253551173745426742191569455225508881162335115635115558511684221323321257772625931512994345876391772420082947424420020638431006157646961398890449267601734203202784148992383652173339539995270634789875273247905806507868345553656710191895670427510819583049871818883244974072804869208843976917367774040452322061167978459096706149594975808282655492592685245342653353430517948072148173942611105040852010578659830783200677949567651417116650756023039213952052554099368815141959375121399216580144097058014248654902775983591705179746359989201324997183559883429408057066819578590007946306691696990538611403752589853575847124606082979607967577136791310804226008941821461031914096735428383530787120015950287280371894252132905598913503138708342623459399927865248697216768956246112912441143810954947776797065447042451423541539765342932808055326798027990262522384418772616083039840690944665447070935236923510281837145242888757963979577692566534961683665356988296197717630709125493040610792093896368825329332926565580322398519790856742306020953716115474005617603028112616675457923904661540930486973516312117026417852580310140096336841641977536451295686837304376188489719075799155877119342128058989353724400068158147965977023664020324324433828232402262198434083149339846849972206785105366023750332168139909788595150862357960230612236574900727595749204291362564395983438216555832428927626196924236353974549665432200614504207676756451339453356033926193040924297620589873646915402858930414932674167656401995960858644036953033959584957129031147390510042993846501494861796102816680854024506866094037822082688938871646923174850126215158081796325599394857478901216976938541535747822450376779906342926886494793648417406384766922611210319253739906247173335659336021870715051956099486493430115357661082861618848078222027712377004539966254833873677217053013378146037645288013242791007383237322922787631421988081302119996679506115998098280916285314058250000529415811123105971795511980859092685970990205290631944705243884827395355294690080360336457207886308078076700307191540187423308319368514125769887295735279058989587761586893665916083525074476104094801876716981705209686564629368595174516685228803585149404608949585130055801918592717452160127092751992774074917933427057778278487267554203722117138428527702095520965473405077446690262174807048987169426172818094302262282960137581217110011787194751227274056546487293476343936024990576751998597138493378699894806671208716061623593670351800632792789163323477088337710262662607362753180937444085534622711948339513786046674536087256805784189172001715086998859897275596070914077546306635608857269709240640400950091249236598027234949770933755410497276987376084355003718561278476429187758292836959788927778142999897394880194775856938744333956027221210525317270961744302291850559928777778095231041887089507786776335564508509041494462959431417797890121409454888286211289008751567830649097899438030328234043197990366315116960449926448159391123616736239880868461543286095516408062055316563159979493576541497761870102945287752857295062570720900648698019382423602583587185303976517326502815653880993090822924567707955986575451398639224169773662263165775495230253267313309087629596349843956278743812308663577808397693190546530766256026235956738412832399450811975687029376384977130555935714707921251919035589946748396599497979228050677370599595351701553556618892982340892195920047389901405631375546054296301786475415302438060029925011246341509656503903959670786749839796301860765769805762110660674014667966663013884280217025027533176781963695244665088417681305072791261404476619725156263870169305935550100156249571555824748829830055446142527321282840776492588597304781089953841764519924471697353007131069742723782632771243840734377769176771265929162389727195009087429756207503108757789878629001723192446356325401420790678509659732161927121638660515753123017546628827441590617268876488308530092212436546125770336420566672382334876955412706110085560964464526131780247060664296630164302597655535355375403961242912119142191435093913644112892778604443447089401295786888848029823211387862576174520621827236415577914408645420563456835190207144195782827847326884274336290554764245373701000728432101886431728166262524634622798278762982103133595680322060069682574813097033600972940786952861374787004708913928246244665847657138067546708634402253995149626182312326836361289076220326378208490106400173762299021427062206324754710003460408514450346854108184053935937041715331099891479401403892385766087560286511590978247322660514177062744418273198008986098621679376217163868118573114837775999646948884957807046871505390625028417668672551235299551032641464367092501091663143934241139584807201988793451635201871863474471516219361652121620847047290316118332707523284404946265650842664470779525107584928773953275141793568761974851670222920504593452542465922168163301579020320920876843571024969656929421354635865557578698033428679295990198365392117576039747997857753252538768992757477603210921492020954580479700794215282305671667163217557046775789270944184204005572804732587164610485400244126814464843173254613913472823106548818028680353289894412720540926005288704985847083796726054940980192829954475680387312027583597295805146026797850559633272177753094629849023440455929634914326095999684443284323339754553075382290803243388032596554537492637107871740450019537551149737901126692311129956795937402336528366827540661329868244299363410791249198870436975381537442219472269313238069638309913217680376863130511056534128235832536354212405485254948680507346039209946692821825508229389332746952580929631498799792552990758279131108309589010201349347596234419069198821148859306017466906131635817312953894665146966440383143177138739715960249500315050558082738196420000216143858838410671851048344099852765968302373989986291253294644756545779629863687552219849383420199328810454523890672860198347306038811213674356362287979997599852782682605924139552907516787092911961767162476456060426774929178738248325847541111876089068428199487360461638322777089241878161272851597965255026566888687702397169901094074937929414098941293787544299246994035619170082238690404169682557304243845139335663925880146447690337550050352578704993899243562495047129314106194391716581549966118743737205122364891512674139701329115137094039172707347541640322851135792917801599753924191592874755756290960654781396904959415185383778471088690471966288562079671164073577371847765359185637380979070332564265422836051632462891019598734425124064248603919731699716749913163484559487067876138814109864773582172134254628012936309313595334785491884738771697657559763633772608519652252138350941211780283994512564412422944202530268849974285032820677351914676942209215801800343287883223696742211758514515950385488075250881733985939012111551347410560207710326969991074684173293584127360842548698591848577742277642676767382817569625269094131738171803578467962893136868475392254973562904370876563742973075211819849554530287500518718068336900931710240467826790047213991357867855506798681655794328865083658531545660469776014569930126972059200823121932870463750919188336436357428806574006910097055657246831566880689354022881063746985692887612024715377291312304143229484955227551613407739173991879923942206576159337842137889760740860377401349243773216128337500197837097475045250503477137564948948527676425427164386548607075880078736022815791893210084114412380185867238760819769199912192222903267705325008191894235586601440774829925050626870974266192236577858707955706046304858219536334464343943568565218683359222896105211455761798551879142431317234262287767501852433645606197374972528916054728377318752058848495989590161317058128319699925471904412800539449028069810752448336462353118949545704240436569606150853993757872088362107244163000758173967607584864919618338739539852613838206873956664450869579299915626674495707498012892849959908656848478685690483050517740721746118279836801446179156549062190872373384445774891143980737678756566932684511031092645613316408832895122928157464774160073430847437373227856669146090182621617614216196579221638626032852036407612830490379835893511295909006005093943488292331368952893352063643615508395930560718759055319210198648247625944759594832626912817099187590419682110838010928099223990848220320507654188310204277163322653700479676369367587319102693221006642339830456009169320878528986444195275862974092126910642750159613138917133600604504845203639846798662715605650465825448591415233720709883440997414282336650408522608748857541124563162456937473552122062713256812315562776424600947325505378326108877403990218686088933237040111154352501612206671588615822846421100347767855646170605721482527119681411589356925275053198987952356233449480905821450019244946539088075204126736965224978390459459137190034746355832824949923745907717850270583218840843291035820938348084510040151037638506403900076496279769564333323660614740202927317354031884405700106420084676467455070881842555447865294411102250532718242456363614936764216454824187180872755469714683589413826871944392606210371848100773060721808299290120065565975660774779203648662454711652143493271442995407854151216806167317064757112407537992799752479640311896474250838656404665769944509500875269644719727881227194236582525426246753599422777217573200063939138797274910193120981561729142917517659932142743630896673351994534531950845630748251267085633746122826839960213780864340728694493260404787857994798670438658044829077242840128150439999869926183311118328158580000305124345538381496935092478052043786877326427494122119881627899829071129753300828072397202892978106088311044551249832045463984717509094777172690216120001103821472335735830937078436857156483060866367420691461152155301380135383913894134431810284476400217245888802216435874437994284690572406939896586689596144067420584742713518301636461523391781627218770258191586467849377996130095796658878575543932878853704752850681318207411679621517530036782364221975236780480587509218300822109538845334559002219906555026680786513731251925569038196995078580671159557684362956189246716564793922686706731253578606288457379214605977292557901112744520787751793788493841463684830013540475552910785149847000508913120947309921781434047913363994462580554178361953369516056006500925089473664103973854371274592866116604199079974404126760503391072075735431449920452330839220747979441974252502852735769360315013270698300492358086062370266772770040857752567065989232621514061778169462029208907436992978514410896379879059009023480707740863203519498350531706178572765008527979160011356701423402761943499383257361311216750417504470580361664446800424042511882808971893685389681982696794965237189522494263991076075424783496388511691395943735884648766312489718044016552921097897885847380233364259855401136692252728845100235317770653169534394077506809613678496550077740760404948749714778361886474267615765007471898404856379276477519041321113331226202190984322987943832609405637485372503988483158682895446321526319295770340378961380906108702259459747219233553086999817205792869790697823730626349710982398969186405431255087606083951621340011195301168723287957584110624463424484530333559489995410834397097128106044224515220314176028671996514079407207580706972279424102517970456052428710822404916054295764096794504529086724429010647489266988420183431042775146084873323363503336115315549689879463125594275801067985555808600028297536792683409769840529979478998657676747168430843256582862343383985960932068806992027400255291222623396264799980519068902995556081355893582365968384608129607130188155062010621243125248070268641542242865803642490908610920733903553136404302346779845459050348575401447852956324698626410777546554242878739286332731051052614620022333126912832285348080327948701606327282875306313602739187857448272409037136071687021070823680554757660387874512226978428064027943058450926623342988140779834272587309045465015869929857187478659052445620578862735593772327568249059363350241439036341997669229540820962025154507631099485342775980944340618465391413790485485052388046721029699015077896332356961536692995346179907347806411989465589378057933173660909156603585971379675856358637419374041573230449725245497479999685514077751319022567422743531017704230458758067681032053140893721190389050089589736497251626684392455330524022004556596347217646289454815211593995942691351958626880713177287081651834925743586104265650903816995072217421435390695002233856843245125524591324076490474329007908489452966050146379957626104397542578079792058194469953282667252544503540914129950277615778861160789659351306672084606432170484900762759761102822365584390550906497505642054980040797087962288896876187633063850251556272062372727162876798474912484648812942815792790438810044166675511927981166269675148695500960690158195577436160991176626302092088254006340377933591410914485299110120304311103269420961698437237233408527465483897532426639689264003851288231248058284780143756605803192020270416331476692264811699582924517888976722127730102804512019980214607662708439004950499346848949309506814589341445541504145809374213679508169678198199525864296889486245435588759969541855000173217738693876118073164376907011515981704842223449385766762811654319214051001273689741589985161716095161698498902812654739860356722192090646699409587524218250279657119438656524144826880696695489974751380378951910694481353707146345402715673115256131002537563928114856564940782860570415637674675971786451561959899269383712781820276034131454314431028638644094920160704507952561828547451805189787965901038710805628410420947026174240860040222148880460202164728229518284288446649413566852734045523606118672429121255137861183510506007413852742465983603492953825411896912206369040141423763277926883151945487809065548659542503377063622832616614140152269985964678044356511122872671830393461819490046989654691958482275206381683354672245067583993367544338328310812825218850120979892509858462350447017206981651094354536951389976172418715179934673541759704169946870135818993905384166637825730574047189494535373458704011650591321823303435560856864666608458403664253896603047414146575119567709032442598908623144673227717583665365335058687848468058800258352446863183615672647190798740781208722009447375218688063709732040399547714129376027042168323915032966756061766988204991969979384439229366939807373564255263122909490547765190970318094155397739721231896494141518624534741791429941891486964466508772613714355066104361767031920161710793122460272684461906074948808402802933096056120929530102697825512310884891196521910389967690454371855377340542211901929311238134734340767490664098980378539405990509010204364891720063019533158623248108238782858311162230330420484664753706234588797126026764520748908375732105811426463978828427836573865035845087914295938386119423030635956352662095137308414590270559279529935069465922212317840522463463502639682096631545936796782849728497385334327001851067274433888026402892294388445730109622756134029004687998470829257495618513935164442886477625797345921552609555944473622526011186454311324152906239344995946558082053379583717262167595220066850543292561379343917404008603847267080326052572995297775160813908463818995835334121502020263873875469670690772613818063421091735612530981348407948780537815701711445538419005517222211842269307156311014967348743225335343264648694977988087910857780731197829168904305349661271137169033152958230519081369194401003208045526107054300406125349681925928494927674643353054935821533047135935546272531691082623712072996841056418527843652456925507370521552551557091115669524213825510132527218443872653665360794181841773171947483735049610673460454309004734421631613018463012676731278482146898814519226209233070791110515837605773096596510957907472999104409977538485258369584956330316471693245042255269329885506777777335897471268159282585362686178569625113116033079991682708233658467088600872841885038950056234506904649201808232579213350479531623070935084623668309104801231469994019829726014360351286838046255562747275684002378866906574663364537045993168755574112790491579170136287221326024922262674814211159614206354035591658361093715775060122150199349204476385367063724642239977613608213323220871096997377748118266668467735650941897478578161890530893183045412303384635544094698546457951913457632391158305240683050350883810049998367979391108196893579486940636089607496314132459022779844481333223282541049147024420184255443796190020543045259310375340406556156107827519054198166305378555747191662492883186258689627044960232528751204615766370824882719187426019560534809641041453165109418065154509575762321586549357991070432959584396806607607860924458275939046817677108998181799077852797003529173443899201347039434546625948498386857868093357175246538758728937206858422110895889675580397475155552176977422171492946061118902320100979225183331722073290845539207233459347117667453911250339804462933622957344298287810146001344303732876683588341524787552493320065880133009227825349773836225770640316540248758951589866124565673532758805563960637023582141867075940306373777791993419660443155918338120783422046474585447602529153041973686389107958480427604064400310185086344435472389508742240777556804453862544573435626692221258135015875262655688137430631503618624661436315601267085035247326618224562918675459297124944808087557798829866784776060853603962736283831206163408996018861123652622287242118769643447463609571771355627415079694106529226672292199417757550015070339146382478187699894272689283275778383790716516007973657130014944352203059109933031239218901758836367347339809237450454711090212481556534203310658056048279818282419717258136425764991962854903658736720099389475505195859483658555275543389220209678240253121843161550789577174890797613013768472993587450031333544075837151448289342464425428168429608547342001718507281148705927805373870800755038244558312181496670199595977657635091659599716920936619587745402359047648710633108945980330781661878976936940999110773862417513245803817690676806094264006940631371220805013320637064972784875017073942048977311678413995508099263856195455612207725928327347036773490075041527391071848115897157096836448607478543839564213189368764234639542018923638470898075561632731895447762009233698942942015421140702074468219306717751364689257550078929625725856717041301476499831999844432953614217669943020656830297806830565563247188215003863823664892413724603045794344868601630251158761460302328888795576292526203462713570824394480698023448786645642679245862270534846254996221810231027629428978277879514966779271682897235321741202168040209463756656403761958094117457570145719412427946610187921374679650259783908791533698258893998334033668615920169928781796708125784772706479497626539840444366087040753379635478769330602271491376381203113846104208109257700313008286014741724751928338795034254825374035474553934144196761131443765098353615134646213457347466909585319540211668040854707618297336661920358983625813197856323261092104946623889571335007301286624265929118571362911104206937136487506915114132513020752576968649348843470788255243237929522922571824384103226453157088780862342710406701124288845248275806002849721371691691252436931769015374525273125760439696240088001799193872604108870079044824101279188306914426179190645646126842440061955986614948346067291450348793090053309352149229808289356310273531253241454245476991727495860442125155906527998524769062594213518257920980865971788882454475303854425390901350351130288543557781668559738040131692656127072077762602439973627115310833502556246807016477002446562167083425975762723180792179005348006083640027939470496809256589650674596862627737618122992195886976857994062948997900827834757130756279021705303785380351363643841722684704730126217687301352993358699547533400048574078783993424264892616618799537806652808498662285244520707676020372930358321943963094553852334835373585227024690984123015597982197286221215374037215849096395173776022618784405176552716705682127804654271868383885937359765241962019033639451916004781436547639219131698902572819555581854138971905998269755192643381699335642865333144451762417165009359811872084708057800862066777062735665288380913343502067702656430594911627448436556606147884505867992814500168804446962338294484222387904711605582997109823905465567526828402534699111986520886275846910348446992333547778155855806610951121492553974666729991724108145921830449448173625412140365060989090461840657231733693607979959263093547701604349364239747693162058832997698945770231029682400820717012898985974320808276143341508733148871662016783422138267063217446275276047003254155234056026523531020570513653489223098459010020092755568317597414331316935728889912742128903815397020665323469486047132836689231590470962048130847559647222054789986576536629223003649745275645059224574159720888522691142791761411732561117667528124941013841336860509643531023973008718294355559687960801439628656516744313316983505358956708546788273998926860453855730941387116249870989017723629269908611926758080218839528983341096270270067824851746022813156648303101475491694259830069417069089276859665006383017803770768277269022166147101217188043845634457473403684043716822529165561334411660180150378482965425120297297030553026713360136695071716188375725073383410328930167918832652829688708745080826501323814103530371015370713680176478105809723813085255238856586876162288794524613401566031753827840183970676809563626470223943734653759187453618117193939613126586085811282729109632899135514843549726448697001059559455924797798747107272611612172628362086920222754116972294631253692313757631707039360093356677896148596117514651792370823922737693698715467465530201318119647026701140649322096457876354919868302085774700431998613177560036847527485273436323324262784783172262179472113189915989953953783723417007570126623071119946559910406375496401767669011405563726290827206169476569934882508379763629750199621425568853653610609086089908377545899967564147671589265038637570300883164397475413495969723758919444022222648991293556062281672102313360263301663795215901483878370184200088509022096392760334901634670984685041709014010806426827727063189071904646754411498868399491296333446513172903167682267757136103043039193022022759278271124287082201011471988129014993228711118498610329653643002742529333479192530603251796006059147009055324129391627509020606477399135640071975573659365108046639780351929792713311444163678464337570593251382010641476172461318296258800277376200340332675968993111020726816443550643028466102497436136836646425560989465393029289590355272143370200720565200143274958662878457817358453089819978895975751952303224763755912482598443909060014556075909309397524761622378167664259517536919258213968441643662805700897642962225291583070638036171666308696325692197958276619158689723323928510693512427397135510091110539151036762157198787223055348922947365585154423439744156705871147253030686084699007649704458590462633716640300009668018871996806369280857044430889215480638666083633989467054987089279432535125922904067949004670350908518323371919989783411103632471924874090861977790180009537641800153457099114192110352214516154874251876209531322067360211934691726080149609063542666557856526436237622365602883367659191541384462904521668832847657292882845446915782116285965387843003473261559519260023919364736012061097000567195328656330429790398757789171864169844552518402430658647081250897106867666287539156395969890335893155541532354947002666854593255760584332831426989794901937922040334939311656926736289894420654527473542494351978396940327709549744037772337208706837746164505350676180451056869457586380971642404484992578162716338970107175280330093153314236471457951498592270821220793739665129336324340589516713746212638899859586270677921484558767722865827497159962199887995949886707461374433085321718881791093497527237776416014651134440972027150682519742439076291118887667419988273568437143331341369881850942274432493893458893264255093971913754263398448035072138359778430559510659595689339553630080545488479842025337144978110664470310017285378696744242607848165694496114179893747684918939480169113966949556739815698853797866613556215855988203322674666285489609832193573295769549834027303833696631895136601028085009884366386758781352463507390428615078702485971740104747092335543886092847646251543443653855692190112291492487053140607232977211399740813271294421595136861963438938783899407391675071729788186846966846152306984072835822267452318172686951489475478878202487597171336718022271447457673101738228589607525603037915611029807377584762289442497984811275204899127308505590540747711597982601299216178579387262211569149560950555624241636724457233353842863793977740281407075058960198112553398999408752691326179713765354349570208511249525439686620489748593082040171968920245859380801581874683024102669986121451257100452686829246154631085664725784732053505810297771423887841970767432995566153053287608432503447592078363955253211575464147277290035678026009147933421133388296074083044068180017827959985233092489815511423658882424025638442286283763853972648541813731376093676845226800159811831235213327368257267518862804994443437063229002745536407950442474710672240708325065262210530008505559630459268692163077928813802901221084986934231001320505046424431934094358578423108582515954882848783987258200049272041548636893770936787419721610173539078366502864543219392444091708410526901149340009256797604341301299034227717410154276486498583771494334041591650669458586131980642262014605696240421999148703339291304208382066051471661622637432292249990529346170814711103339494258765563351261880211206507337410479929304186151833275254180200199594469310248809781413527574713011939494049037348988100424961359177029003942338465314898673407679212324030061028143094213897506192596069189427154268619379814289398180652616507582548685000573831144046206655418194687177449497498254713123536521881198463466160460913812503079054440508513487493372677176881487445795961833030558775162257823081298960418398951549559066781106104001610227734756541618645738587404541443616052175080863935332445902458624637698403282966145313787937915663170620364001808348412059690045096310793291085351800034097618782386956026794536692021639641842538724186810185234654796830466705747716412023754725230797982335729415822739735366793605793571607337001948724052209308659104182115795411411292508439352572007067010930621504581015682000738882762749215489630922349221197587587428170058480782414845948029914944118985821334827648572492740085159088486667711429992928850628035530698308087977333735469826023679083286262239616156305657750226259618191568417452493735791508356955287247034458032740650373349356838346220316106430213024690358983094089042729927042328829918741222367179514018589307432134786323346274265971398462596187693597809515736000529779011139640152729432418729809482199484807808105626712005588828383752418037922422311228645609808890302705126316385290189182616233730016014497544103017003673884980474867730718076590573735959535529247840973429225659358946437859634718373632377473621381665969154252700539046361292660622136345352773336261816187394999175768381939176437952124011190647046581377747829867336516736247009789489010790193270614042917610498676678447151821934893559974817806121733942191011906769141626897092090856514049066538809896674976012610347895737485216273617947232507181284603448836097694093974731165809231278040434917698867566469600957320385131427049351203749572420904078290739245675697731752264978092011874173212273843584995143913221702860957478126969191058806061464361943691012142776778905432267063562730602512464936899159837810771520408499709161470675590475881114108417832013931347710347540221740432709949723635042312524296852236195221465624209199048069494959383484190253117043790945800695336663352054950660277365261438442546328107411564185493078877969525556665207826400964505628724357635612663606956279356478579589371210644576940397705203417841731258923384109238647715794681919136575612234757153001697471011102929708237076123304581039056387371833738211404080772670063383294776136630566317058761224062727829528971271811641445079942082658860893469751636572437633602522237560893294501417621583893340786963623888860325307596388679265451288515686411286064588210654182142505890395119811895899324319413689237359974653162395064884505493915648275871304505057468174789046865802210216225477507523546026178399305330166732267636351702767387420071982137242336007555667273838983822162192353222368925184849626637742871281576711662424732710631048940176970084129018701379739879868257096692841486094742612633548924242717934614244501167085119396213124399146194521453091560441336812892325501894439595505412475359756141324397469507582600135271317188819275520592246000138087778107249368281211206719031264382584393869487624006930448297536529990580402201903058736087744099798076622701638187790446066379182304758656206408977155877796084490421613716313821617711110616188616102258814964586590685460320587990967273430684080192348600154705833605855202075438195766523997344365929630558883317555409549497757267737379660783459632223217470318778217882141967798198676967264149707660081189721558793794311542366815175395538133710483419192356093451727570491894226085692763225439243045850708165921103207727051285380077892060355604879500780918505661190290133572799366432555233707348593955576687457797218263491029371240035286342925484435877141062450371063451915786669707407678081978681337579583379406438637801133562443661953814075573645090971406081699070533644925858252137214644649484739895885093582507338526464384533775957594596596473563314084524242928883839654264820724467738083112439632042888285808672405822588132880889176374511288355215308030562717339033594915168284591277132507926287689163824783145658828187739116784134844421954550120290822714555922322529651374074362327783365027580961820151015740184016107909650770317661955490120504451333006053773671100797218786385220055212309972111023134281140295970680634902657564194882902050827864151945016877101390944953299601617025006092925916106786448791429880178401457763487198614349741718372562502626390782436866146499245410462548764678644409955204637681080360726003813944949250263054758423946591468699129456263620667585081508477550164340883156298341025427290018287151429021043348527779390884531506675601610422871503813674410404612238950869533171488972963336897710731783468852773758830789371395178824859139961527088199631644074636281794114858430166791863633282700784740672028954323033450689303428781194471491302499459133003997867459479167989356381037119161488064920792134956770120962269959273971908283528073325174618246794718142935343196046212116256656797263311101408485552746338356901811243487994836232969459627087933134453013746901508448089953118706234247167227859234065448482949764596144609053554565167805056732895229265200050318167395190876688332618179309699675581970059901598521113148627784748184964324751775548683376380557436598562790475968999395383667808065854040372358719804461571498240955894257499900759847020597415030702985372378151352515722081590748254257895044436341158394492209957128021372272468751806392587099351929283471535005237647656582018990821639818615194876370826078211726661642362160892788275264033513520482192757050145723666633535823151852407189940511918097986411181427222155665596822899209490259590457692077281061335459298300556736877307818208318547282945971302659218761614358176720014987393162862229405218458725255091313006332920450953985187934151947504498290421372061894019924753088162765834727745711949770824233569451924089490721156252272284971771642851314635617541686805251740914077061507410861939457916453445621550722594325191582163300015014407922289422037958307132272675519260645884019055103498364671937928825101103571149426343228156439732614572854075553717198874797625592771428678388180745413534026818783241626476751416670163334876400791184137262263588708407915883788062586891711441996255301506049725263401585015881184677046027247051103431818496068154495501950022154734559181467041605418885208541561576868470169632193905559939641648396507243587260510453424566812239335732084836005192406460489519384238070864717493139251116203971701359237133857098335043587120489229739379161355160085332285027362772828238781327369845624363880832123836801265754055029139169012285972449097529425647723206606641071309868269568445395338435431116046895431799161492025000205499058718548752276831325854929206495648283511163038032845512986548870732442884319250118822169346808831709069678069072116518258363942854140704521101536071770060655168046263830019355537089858219350447879175238367577613322491009493540039585975692865093402186916215736977804645072112900854708930830123124467153145997065688994244096189927696992699477383825554556692792039095319560162139941857719011735920316678963454361025564526945695191394592153708187413841534304536527300438783919272744705423236618564504634083237682264392078158293297083336638871701540462954027247403431101218825238718753972883359713747226864363654063750468970920995974596440224597968018555018130862351914062020297395358759714391180454205643007384182397731554082709622107153901965978711034871964815317262912908904626094957866500441711963886794634412642330011542124183440528137400653677419017009215895068851658458568700067106401797922474352920621231849574725713600992479406831991538491043773719009957018401588464854930290471035446972608617802427067733859083057579806916340711599147680640348175234011115650482852576457816501373912751031772018213226034246577756849746493649008723270294070475349567775004534584728154754241539694392375743791958537709777520199121589033362953663846932643199806821929614084253297709998139789658333013374950171354856304895512656105123558112767610436533060062635229106216368513855126694634141467266830086826561816993540989332430162818613757033004431492433533248779384690361148065573379336485207182867352852073909646953738572829599123802381574927491343568891086653248118028299854163288709524424923896478267519472671228974873365877145914918416337994734572789042352498628985243461948257923434387100342113704480015508738228963475645202704633472242003142278878747564331292784942503655895539712309374882029130738364616077376507760226392495840191756527747177092262728126553824292623795411265529463012902446786521175183255462160822475273689516348335629615421828431300423059911205533096153804228909031835539170183555432875880159624439358002778858355942505386844157145301036334024737828254410896395193211068266671897547680615990249552815427682400022246614045886762414671040070702549373982832456710801696611378069431440787160799982545413483162586063158926624768091485088835161624803346696926857221059380872397428157149442874098646135212852457281269919801037879746063595537089090589097779999064781335949273271403055660010269983896796497445041840373130825168547172601411999798309863612270434128556873367003775387631053205942785193762929274972660956727736500537642319994547321146904910138389276535217348070241828381056396165555216312456927788843434775805687328265289301156638643910319818348429555613631753485345713613601816501991334366671788652232471988032161154353642304910142321025416711352386195772013713207232794478652047641374156266180820965383825219352355598730205551688564796598667656133557666548635100122911198859289156303278928706772570031433848430744885160962923987967465587635259247880977227273991429351176821275656187795476426261386857205611214951611332715023514153412447910089593872421518935431966375305687486958765152038052285749451261401868758191436693988603257595134040094870678339905106841269126171153851290394470896536075536508685771251719226419866382543045085473837726210991226248046778650657941431337413447472076341223387759908715101732397758023393946180510504248338546200175257398753045366069243637515633690491913981017478209546100041832836730193114103546478720900053255082246047060815783847480101385211310362258579098186859593823949913345290888506738524048973065124166722808237228103520715803754630231993988109409432937486497661963403841310130076900994704182375862311830831128052964732843924481346790948904505250945825276423184950206751047282172311899231203012596468546610259852216353891788262718428267844749788896402036266271533380734190007137861736286315000425714009600576400828403456136946501218950307155431842751763891182714929670334190444085946670172363965978930758765002366020537673561975551211355409320296676326779217256512932615433998150030201560254368712926284210312564067585127310397429931989293848524567082617317265776536192050367418836139375487340582950834923653113697446124095236314643806893118075925608230850002902208563555058052363292162184842787665179280309624124113633993239104436733067331378546180497325255796354654654992961197197602320253547497629135966108016213460304991025730838080737962114069306225211733729816949816889939474409011559360645018230302815321356531304445862976728626026450570698226231007476961928993506586181275955592115362364187568650325731876222506816533384505122865093493975760546111454318501254083104589236369152102352856082441671570968939462921573015712011298806437686757244505140671873406536211058582569379817561180624758679179528505829864550279030163642687016616725086488310187913827147479043662118377755147822209467325039169682892029348054243390408472377549046626903609555275432380477883481771943885121044931141334808310769188453401483286268267392137143615751494903825450481683104806077707014286107734572576909840130558461033246401642299381860635603110113325612924799771499815881490143641957673695016471130938294474902253199448702062271604030799149044852665526033883282719877690472607295970401183321820499169886915637649039579846370937438479976120112325716351569630467568088296982018955627600651123920267412564800811800779302430340472312089058649739226638058866742317789341813825951674096375494571587300817405339159527839372731569778207084058200180113822668416836208594235180488013049278491347949086074254440728353292634936697565194080724014709263886165225400222002211802599544166254973370445706918599741533925101678900160003688016526947049399627212769317234890550850633223501468688819188664444628598065226475901674580042971019461223793170764467729020962045852141930556239017086884795527921092121209396786403734868508573490787352606411280907224508152090126151791105054227328865075075364588793885106846664719118751542445823829382605224299907887110665727433314716284513073483487834428294792769647181413427935570721342413422072923413708359719942317016096400267319743230273228768030162055564992846111955406578469666813505445251223340972680290913666880666570806672265430015069242629163683850552443896805442584674951682861136997955170304611878053709249692721305705886798929484135821150133649496635782252463353749547869970567818313160138204554204026573601994826410467536625899675597396407662088040547028745542404489606942059255557047706357091260775855971977136387071940814253651238485496331929238998934208733345950284527151495370513973074293926514838564369501568297957182917276678305897346703892923022548462956366641103896664031632819599367733850000344084456093526430070638095611765885145727003015994944885660533341406844763663278036771296911582855824126957969043733144448022218744710158433219664145592032630190578013305597344748056798243390664983906328935138583209092326420712825017587394519951140683915678410071688976479539052816218735963041111078844996827957394506077214626877715155192656907091414000272419800826592909297736881515349838857768008579120820913473751645443593767422380624096736446232352244035449660162460083491343361306370110023373490354151121705756056045433073141891508625759447803212261284900747538575045144803524551821596760955807841861122581211954509404234444487332760842116220651070444211366121405816305551064760655971698838521288022108019039242616825218711342345112547203189012718741547918147009459589252867952989610146426275925147918215899523887150246503342600438702376995878344298222185358675025528424775217324389451972868859292173108502862923376991108670312456683200363094352168085526927387665008072468341436888894443887459381907875907481699156909552050167960741746332282819891704940231740710926027378532877733039252934485192203140250514263017827942501716835923717885101521858201433591510110859959511782144699970830347585992350689230114713986008519076268314004391411087081833311939733321891063646929191141011976229049278377878341607576713163619620252422993840637274064339567816010910946668288911944210293025481269761915130498877071554735097781509344680500188618157425455143564790321597870557252744831094811699735011271405455975907388647563399034198171219996987274304037810168603027681799166746754444192415349132152203212405794503916810170729628684558603196684179127473328359218727917517839660849009270797998688598230064532405126276729587750740358660034667999624959981182507547439347523494489029130418462290816353552830699483723601286749387858548066738905696466437940767456092578022587881038465498950716912249293712873318756244531700442156544285441802431342344920282246438348540900535747715354380001188412331872086935165085565634317718302479648428601430323674779999760690151476116254624452961168232671258825690129730390488547867972489508445526811794793801512077815776769130259790187333464636955561094511074344132411837562786170062688091406884831897683452655345503712267373323506350694747486259450175902909072997418643258481290116464038782128079472437310363875711522765197567326308257241278414820313437657848070478065309670230564832866788563544983954165628785424347769125760339453747335464657687447457855160138271983704273250987337385562975345294106416381682202320561608753429605665482722636336541051668305165529673385680772195436584548509007373868614337717523443493405649794425587360860420428009246848814636175304958117347801270596896364820671307558532646789927228740174463064532864414342369610789335939126775111524424929844709236501577060292020241596771787172701331582563719295809070827418641623399530555230539801934311471427215628663550694897545091282962304687600052554573446345881726623640169611534840788087545823280690233336324351568351290809206896878645535963820530802025214709663548812145454483176550317676756618509030271793222865806029959730132467696617699232439595695602292525057702369453223616206033053407944898073444093329488425595357707418764686291568378460427231508281009527020374229436809421376028244032650724371365656914227277480499243333862193499333380455204085350759946010180331298592201926676541731821422756948519481988807075735304689647074366358210878362970397608194883195948056263280297333204686621379525121279961575527051599586544659676396114181572392842809106247761735927542411792456009475515020161373547374039800278640962941353839622127895568606048514579252815800513311961048134783397149153421082718425015625161042593304926029754555767605939707507090194257674577749702218916452788292296130208684621498668355268531224854748350448493192666583298686291392798570411397859276700896536423184806244271673485218307755857390669042417865669063054867707635523599511360135594261678810573391382024939233736733104002041872346264332871994228264573190137038255149846700272692686038906358575123273015518254494458127780322938868634948749227435688431934252844868267939847647461924783254767916039811675053711444271012467421387302981058251887754661245055680973649276685219963617855941583928398209199514239826938735757460646319160059572132798276686625457868515027746772228531154561412969670296826858515801552164974354742819064800969828822238881916090494094139554120393395698244763576307236310935933909650228586742141481714923075075159509005417200286690647138391329488231738350961529060083747688892114435158972340175973942303923276469828478015263099520540281183333584105885867408823781851887514374115184904764643100509488531137167291822195410344318478564514025830792791356604991146390873612482518104205616175482118738255691639277940686225228641420285122155713179137456347750612594573517198779108262726568772338569831383335564640175464136656746781433249434262157449870956563519411220941449233244123364097232332720892425482796768287017958525496642416829322213546893363941762656655402682561905646606238193502233389539136276170243527228471239986632866880634506157462397747649403934544306739055121096091789483455391496511109650433000929244828960911922905337570477331272110580683904165840220346226615706782422653574404957496824777369960811318095691114143495013147220061380620417508984777849676859202388516653543317611267811461877010513402355867294942791514491969561331460568980596880145644135283673649106536860620966124207780352950775307771515768572353666506183810013820020614164020067083170451734791343026482836639123822722510065359476260911568713108241346891638504379436016237542576882250112329096059140873784232956231760192313890721274281584883466740434315672172620986192765423965779282530340193120066428888267244130259108091380842010162007457853660180715491201299624307848091740646569145712392312301368066862304321716201295807766045808562494011875020950011554900298661968677868091823547777319610388603155573256426978796316789881023745213263839165061407667719303014260369087078988392773101118537941181528463126385126588852195633323016036441914096469883140767962501633194903844467701309382289659928797796193789261696697216211556645901229716447589979527993630934623630238362296217979334327377257224606204093586049540652133227630943670269132093566203269441122901119280253441324127179461913253221656839469642520799944845022837835693338035685510601106413615940732828223744102300390120980637471268915986260038684512546646074289010186395687117507816703098834623241744279917554899904079108032941564681847618078975912015318740845526466343038912350883687559871468735370439823761342392830813248821254421306853431868697316747432014689119448023421303437820109655900411265372193424790184433945400506370103904791643105029438987968586382436495848380135547739837667803487339915568681023289369627774155491772270956371980731025316599173286022006013251651970777949447474931767426526780599214493792257040747267788389930732446816541257232743289334394376901836592002635046104556360598890100178167449977117232286985366742712156605388066416696522434387700524592255040861535390178544524650608593064254586287190401381842913148654041412551782756131504705175046844360873376859550820596230579370688184522799691778198854983253561486890643279257957715974530417159574336628767076875106117640495047522039300155101915632138189030171447504399476218857478598008167704277880086588438237165030461144586049554900573755181834026720531084085996205817878913918971218492154904339153645673245317030450381794087026934425740871792177785051569905501303251047345322337971285003474647999544830048650861582574016190849081719772320529317971425602126134914180903512381865753042990134976010912080234808868244442131029712490796381498140114657714462032086588760565518663000135332377045606612300522291002172636436167306875829047318662247953238490834340456986230003910737989706985303504261581101440949162051096615525743661453043758156406384560398129076337808671592581502126332888288499626023632462540092787344447501466350929806523395828933874679566197746729016157396893892265678932240262999108157222361419528578880907403665517023619941985213807670542141846907881886669551993806671902531719721449271130313811071975895417989008177015657642509572678340779847560208612025243375511090696953797411352550083252076130134814092589234614586369128495187141980447149924172377676324213967486098065412936546482809277040174433823654160630296406962453978673026525117111400944418266898462515459450210606239454589504740625167553987185237502753513455461683364110733199935574373703389439941603835171131058943771710751404774007675870279770601491699942122237738417768593404491365627864759266964286063430436186778945843011008657073716514288471531188931060340970926821854247973094070239926284250446606449842194666284678549016164808392971987806766149117993064682126442142843582470289922521224851574713229106341265290230432476096369639049514664319162105092404064652426329608536030266601133264800267041073283126835735471633540574725542490367989397460047379784799374700962303605921915722650932428251742472144407216564189679726158134560084817695245053644025361527451928995612580696547759670993246506541211335910702055393000051705460400308111318921601865617098617529733859100337835746207376560857839716629064300137638312045283386845852674733740630853041888385254324643822431185592000485287061031408383304620233814456542113069743225717551461151461799893296176702251271682191281789100328354822714726401670452144113309048536280510323234397862262456523883801419223965115341684482675071112636264022602896723381387037736532923481294361534130975973380811618242608931022491483936480690829332736670483692468793909756487121979946800230241540447381133124910100288783432080779617185490532591302548479854858093350869997903193808540170759473198718627952978133260190003792139095521196429720695182174659729492700761612437557772097263932407561517037800742810902444375349710185598172609338017817723120870299134153077838345527432346638620416444684239459524494082724071962802729070977037588371525289411109344152343489688024413952902375767430745239172597987394186404198781064842052279680500034951513579303806746883862844521480078131831222874852825156302247501097903052874124092708039571474304160354992239111237935630487610439645246224429753608567223251897541223467589864576185582660069295935068490704442495311949930530456344260029569278642860510929598766683984628663433575155231086199458863060879812661883242757460162898976738993171155339032928533752938909837789075115414533019700621982530241064214525943331187391612534876634960281793429765772529691858452427757788766743299597262033381688003763514895425125125463507026727756903672775395585531899519668981795477488293008841488645509322243778659744611699798187033153818276951732238585736848435832746602316100248222598362469303212379347450574466106776804957136227122865123414062647558571404871251140733924881643710614137603824157384039730765124237325029493445086259569579076871257107338004617351521503550962721273778440110195811020339754748351891872504853106600956039845120547178010323947049873477424426248526640995112382489406474872522661857162340217745314286298013139192749050921472036671447821883708027425353507109825225215297928799890560971159684932086578292786888789199080239510902910689662296944634724289550355600889371441190282232041770170596224722076150072456463969060698287058633328732812491558725032078201818273152108429442094474544238348396939297748610781321187686570504845578866474567397131942442636455870991637263439669969786374082597049466852584600686517939303848432494438681474295036011258752498565940621926110028095555673244338469825351631687694413718822921203926915282629271584049046212414243113839203327159997183204233517834269296209343625093410358882322379040730646955850345070161980961781964844573429193520544982110743618573532981283779387216501556207684773913563455211406778779473203182173326105939113129359493237085116759700680007185002776811351286088167800407520743055820875415356115305697332354685052869243606167539398255897712887873961122196996754564149176136300706740548376670727805858268013364669720676408455450375946414886378750857966463344458580215562480612462478584322049167489768248472520877310607984661475360156047525535835594209090278943366966462433228083254469246924020842888800719862083064034329579338317605239843571845775330141777343600029301398150324490499424769438693451877237348150686592809685725757039990678392173409110727383996043817479253562847046484180176100728928661160488772052002311778502225581781919276406747441019030839916440520085520870236308277828124519899666006433884172840081055157415156737451556978885248801559071849102458394166682675511395636332969919686067959971969196094381158862166570389578109610592260285634077121306811704057000101780613370328654289663648985588645873673437343875765652058796592441462816715862052426896007718732904059265945934421854829428707529751966086772700428599033609493714541396336691890778301111743239584664715694877876189067394367107124266042477097287095603625256161221423836503437207689771220744904658612716348002984983870543412496911820673905571058918720605185401222722700759246447094110759458520424301271894612029982745359505107221409181494237684408591791584404271890025317074116983935748399734555783036222533460484763376923299513916796148332520824164239125206820113827854180268053458456113277243970078386916047546017601006899838451619073999364089969359185247491352483459300278002874364637053657906509529402305889065583454043302240856994576450915319973566498643593837180920408850801782832295793725953628203173082611729047232668013276537578585376882108503447242157473330377669027073057531417333678336786281622556907843308762660434032267111082260995846999563818190196541657470450074205802860683051446765668278955549983482802378910407238499549944961193764044485185319543686988099484908336832442371143538917429592501121973464950132510504299594636084606310415478688719823753911692583726686334094750091206397722380032223875301985340789994379601386068536577525235293725339677937222581999433005818547503231394640760738027229561358395415359923241752829331375070590828998607740468405047617210867794812654944540011184177813926597081348483546319804104398697873891658932750256132972089273992003336281509019551056187148158158389326781145719177907106244110033474709985066242282333903838370874618480790090819657094192484019966523259756855431948073236074829759290703897740429144875360863208839304924255418601529232817017045299503717467211957459825105295534652913737039301041596221169599299016828071028070751154302574402417669176571821503388822976478279898280597435748394857717549031722536468125696657873210331401216423071775101009652873163884959947053663388855448588406524212289433318777780138640688845033378629633310498961048513860540420408798182575845034954768265924190908465344429263199406879526394158325127618389686418370424748730480870369738395708972281357812641245872590218559293795554326536034940934601499711719626373788358169382432002514047647701821682867810148237151935577969953408321829380134789028684110079483234618184927032934717763432121103931654155785553126480459581748359218775702908638051698120925064173980939768707676264027161061765352757798591629163677195670017397444321448291119211936791416068930769162483668826835361767261030427869307654774344537266672730174426564797434538319105675212341382675323529946378755630659027027433027106887905968198636931004167454197280002325480344380682134450604488686116674007450838487826559740940871654140520852979310749608191426546544885024331556108442553529341075091464851351661455707681517516101836139153374358384179837484587681600671602579554596241728184926544119384736584948102496918395153156794781051696335653521461244662368146911469539039058943139596731088104468083743353459448898903520668869360659887160099433962401923886362998965188075876649211667290676303989249389557761114506696258963704617937060967741948662797791134790440196649894409753040283399471762246926098456524649082928440517672778601899338470098855861533000920997887153653635503077881463296980692894217863156437744109076006103430988416367668739995300211993337373157377625083037320040732425779457476171989623417957167209387325323275770910970928621654440765870507826971105267169564940076742518995802912911331083254390888219217426239997857482450560476342546185696411160066484479152322928626315274081987764771975333072386145932374803184646151927500345963783037025099786778047277438659859115165438038226997217929789120276874642395365783565197085691446781321800091039751278270695538261691248686535691381748821618199280458664238438616305648200609949190604755290722830567036614333366239109370311382295486264748364331214591993232440381297220326288154785588596598213616657907369343796373726505206083640827294478553178900297747412540149679767903035748614377846195201693762517133575025648255473460907722792514379030504525468904061999916518234066539768548589486623283596242064934935759877969392928530909533843276294514646295016650510687302910358817512211639440625590067402850148370821954045186073677247774496972158010159339919355340199623843567326713461469545200694995387627613675517555716346735048747651089082259118389879399727531872149504592855893466810373713375046954371838864342451535051005355923632539096669155213049978494750928730800489783823484538574589640216988273939318156573978135220675696300624087655287804608915162744406198879993297251687732461494621888403030631624592513864265240053038602947630019397666801490461921473824194321027543069642684809683056195634025732160605215342122833390867706959393640262838720680318159513180907920566486528780059700649079616649562816714335022794502691169503329772470920197612781225152058467629849896755135610971331518327259767441249098333684985436647107039748179727200269884812755052334838174108604396636170180588336321606580650664994595210419532386241430537052926618191297123108632300310262289444531757199582307808546340117305279223896338938364935538637051026622332397266392520875583576501441230863819778688994732406552014180561346668345848690983008044084980609736294002041774940586531443621039993715262066014711960407274584542169840891606592947141963461835096378213248664137293354381276320165801750075064484231005144661933743808505656925462324174304096045619229310986025690278790651335045083985474546559903418197841248357821894496238591266501601797763069341519641004719232791041382865555313485302321848800888302646450452766710220295195228307724323193515790245420800356087798816824770541935852116660031366901797225846567703948580047197527668594022333653911903944624737903777077367724387375106933932847740794474076693590658591516177056072357726957669883580576429189851880135859786248164687811662496034103973202688285460615353940309672167977549257030617440556480468274622434785138921343036543661119571276808407437815637000155211549791540993798096891584499060998915102125660294994370774903635441640672016382087905603951796347643648908668335989940210654690736810732598811934115096358125671836214256121684756314576508311976519125531653652205715485199198568300309817057241402820534646950228042323767441964645265672035312163150324006199172825905782389689571629996364345534223022339218775707777254980044610795359634466608465697317954426329429685393757847126697342547231532559745471103777391689057445271971415384856844131436520633027458564402598924785995153693445599290129758960712767755740962902642462581693613579405727575209969070784157341446957786576770768986975834213950827951559261171513213647940988685237744050596063952596372479999117175093457486700341000757844517401922393845503306240964701285482393317961668872710378269234948867086205742769344507024970205849899186191245773140179364649927907122170172548463622704626110763490558045272499907553971316332546312048614145028672036305672114932444121070633906357498769733383359918617027888844485512500444572328899308391084284134983353442262192848647258915703226296916480431028249531281276035835570072950038364919593410026223163721470306361217590344083923749102694374948807489753345296231781520588310351157729216670430367460188846219885365651228710297005284855536231990036829594698175332043770860716169416839383485350469254924721090722056866490806246946173143933845561841677911817721004046193315375017486646140308683165051885794036443022761927462444894734419265094943620615468333049715084771026710478580536911988831270783485261093217865300266306791950472484420341707291811570510226245768396024619901054397758017258161401845687254829082440831963033534228270731090063460172003147359717864988194065618868314285033550282344472977924173954268453968810405474202967901461351254841430854520021999218648544827339145738580437344028703731148482455502233320748240699647699108125046892584535769644671462251387052246442247393268944930246433774024800619213891894786787868578044848369620573054770946277712817558869398191227562434136576864154607172401996256098479749239384761733577106330059674285002176733457344790157978318052634594227305218938448973225894089613864002514829210090728032038946825987795307262615523951892134194062228459692964905706412383749724675207929386261530946571091466815760390133608182727417272401826563064224266942417050096870780776394230996108499650699812963182772881072990798331669884919576178754063672481424560063455594927396650911851736650255767426681552683072370544517505631594478275616760507009136210599339116553368759205653684470884992155402575109337186443098862009404609635351817551410529806891216619237625632229640173712190532474874567056472526382061541523179308913977323731669926926713997730789236130858382668552048753145495125738633757413443413008244598794309775375747348672061601231737293066305582862091151523425597692193154849076267369155728311217214921594187342237837352229309592619865676918321181774119700696453468152406814744319071266964905311266886236320396291670786616350941918125276226474312351934424051588574569062264795480017786041309651122178137838298418357113344091455894144892825315141248604674693885642977336352453693690929578061612295226098724536811337041350654618906268634650057372769058442397482554979354335391220731023907879350139604814580978936913859799015289528996827374591968831594019162268817958003504468001019383231751128599543099734714247033405087858634694206277250567049886201041194837223249883587083546964694509951810700737539232086363393148346383728768045919518292372621336678642908348314570043364255175779825256724739178970788089179852187797906858403500368171373690736201399756121443033971718308114484338852308125556323075333560357352989567408507128327945019813663553946514509286673623948879852991893673828843364195812842435918662437996614343613787819649075583499082179624933292888992445454432132027228061472148764114487525254970755230627962728337133222200590190478046728789564430533558948712952994000390042119166186837467677399977527738609527434362742118744241966337314082850340673625842552481475880146376257585364074069132463235138418598193280403404637731094805423478233545856356625341835437516351121100179022498577801548034488460234967036659811298510000649332861041212797713844712966101571017836055112187610377010183906945300874081127227379731545782090249222690826876509110777023943882263050655682675254589026921899420621663663093090195141855844974751023129298466473311439815102255073148387914562505223401986476332622703777340211658861875376773251059459752421008962056960847199322498041668565031296680308102700530863108425324251904054703469326087142148901782035351458784927064511937931340394762258139291125159553167156661820583311433848422743716114529425552837188771704707288307019720013113544150865397999767140610121923993800809777750865822677526019657385513708288245611731715049786739534746509237963064991713545743471044010893341710339937154402680041193064979521028929929017484082410846478141417141367447452595194017340131214949657574020805814361754790118684255769407318642159067182968657845213949391904862914383961156849198746389342101854518364540639643021669704646651397193246922961939539360670111186003294854773733010263811326263455872641320471987526254882595872180384654841876498051841043514133637866160591925414686262482909366986917748943525246052755047521485016433582076840326933729893738244061193197518132338313327707586740811670382253714726092379561435311992809430700956407253845618744822625361309892388690830562216150997460415250915651315375580409202155362405021489183456358323671474836344804361354215314447963021714406410689783153890918318792921452731182375400235889130848708368036299579811574022804025964432783957212796945108396338201879611931616551182231824227047164122999766308396265758225147321920776833560874035024560540266787738702241786130169390128212847091588562487989379096451283224580066870590927973191976273840357637619385809385472658369070250939372581681157652807197622401366845817010487304620779959008695887421940055480061048056867951292193706357381411252426025239833631533574080909202264372822005060423603561423005112152313046434274899696750971057251058795995838476227136659011047949635180620687779437082661611654913748429841057680298033644288700929756805082393434486254280218181825180428904394807313301743960533674501148131927375940158750280289651368485075612638550521374560259443223351348926351199188020821235257868737699495657201855028551964741405945472325852012049997565997432187207559659312649047288364379605950783260836691389992375445116644790442058122229452587423064450295817821640789063527632987489094314766731323804776839800462433761656105810777891924567190315602839001587301037193020097442824250634393434237722437444701508388242535165747944068549419514485009160519649960643641173265437633888951786176391730328067759189077730146467328809302881838345282183413858321681496132784751653216000231005297565698402110475890252947349993468964012955049108295293191705209568150486508628737931027165296074126066360705795043394871064212824779143170014193467372766560518715075698341664766192017762151626386945260961899787362788595455861389829914864285005149034200417852389515429851406456909883724739997023398890018176564614462474630740330174848600342216989896705001834691674266772729806700017106386101982599097272509588855906880396774408784637541613723799549756391470934032372161802632793146574439381607931340144056560616765714021998080022555391104348459806058928606190666982911601901020524289844776873931179007493217351378037758684770588152378968509203445629054548992293977346252679058741848626884770323021076051797771507680074719743310821587122557898635803050996871424234980184305938977109765697232459320410780610747220056064581745017078627721941939897699571652845976568974398820254629767526139111042702862755107670591875590756840053355234872394628314517349743435806531890326041431549007277873627526998754622553031828639002994304489630467492698376485149638478354526824596128400521393827732121345888177129600746310683836682641970132827766000156919257803245192127693298947499021404325397342646768797419202662935342852619304308857183385944806709950874285167081831509775532752180934994339452701125929327564140855255327198520759491722125598072314845932007845831604038648803517362243429470696247895005622416563578597574194514536282028337929920306408944749208913342324366928032169106020818886393156772896482365472080336984075949696261451483760767765139111618697198785092220732585102332642772092284237314946044083654326103652529885388831008756714010285563760649549638780103756102353888493545788897907309068859923074638789672779059663329401814420487937939753242338787166848662829230117330649436056504469694676370751679528447257919140149495035084972786965216938212385489210117857850964455024844430915277111038262575469143134948642887947744386747945263348416529254136535991747229845365472522376296891724911007449130349858536684201514835811163762709173736388498976339306509091122026362157418048777079816035770743517405886096210534726706115573303227703407069441469647307148145612072705974410499360333619275217823319952444558092499895843598729725206515460048982745106932421032925367587633430992728575991266799251608875372213618665091716356805740448351222203111226498337896688331781501029630193654513490099396677476947452115680117794621584271783755596333799353795081405773212286780890436994700274431200780405513504152665875462200521688325239637750954497639870104473005616881584032437830307254711424003891026534735922582179022295333223616828760371966336549751767412120011420621354840735489773659785042122456433940689881467745522148418746573068559566293867051969119177399246776338451794625315209602297804888264077147839655758186548024314112624767797819383722740895828863360162568149866691048898835694569119610442785573494516801410842543284862696433901591753469280280904815407247498697902819765119216820298272018307185455989861069231583750006894513662581175183997018469758254579467550517530471403702533575596235559729209240744645336994922830995248630756864644277832839610633119548347816226885777763229661834295873325911277249859867416567913223036085677463905967507219455180053218812988095406258861022063727151946729936599653544351444569452132692815404645615397122619311137746613442197203967978399426498649588992536358064017236542336780201703640017873164854291262417399088414524260455014062457141082908514793872532977516296232219437773946441616537182478203105147685442659143936202703547942041666285708658482052941729605197418237071890055929294020144725557839165988313241190640103795060572178233917471983025746096563118734094411320807331658173403198718945074629215273055172338725322549648220129579939970450938024488473401716370586168902794438453678198433701142428316298065596389475521914545820002135043217759486526292333788399131601010927392087654778991819167863065518818917395077787108847064317114379234891146439757218081824709467323642911778918225425173467855825909991220975972021130698315788101562829992401535786519663597563103707222179319914441982014619122690401806222745103616997312422529758782847616845184674775883343345468344415628606975296529905037660754299073376307087295951997693597504194509965208796634080952764367327632525838383820093788740189361455609458571244798266565231964101557912189385371333075701419030601859063716856640332180156993048353755622826610730173664873236554457745382408166332566324326844605319704211521645552548002192543817193336491797310588079080385111131900892547301501423059077545061099367897178147606057983921931439740654409277822319904066593873880695815752255421195021024735420720749804170752120593609613103686026852718191046085850266185013371895746153289756538286598186336138250328413944675491971064686042580050157061370908978142958605140265268765583980298153564672748227336306256829147776307724642767147694941270911119526090789893593523500499836983026269641684957120009772407585066931149249011960142511273970542357331248226390788498775834804317138459063561625614377833951423354620494744681332502921551543800175595257084016158406277821552703868701783442465482432115460484553772753822806418496368419330094918204638418014684345743100046488547545018518178324211666682089909047430345472462951394692667882756298205871546252977342945346637323403152899284355558048422304732268103361512521936946958732433674372253782125088875593264862780603137720274681745400815927269831262811281027558127239913750380402173103388983470137564623849760882357042818248845759253130530268264862938315832744529693259612991854136867428526207993915833122207565219813734125871738746548053390145169323190544604032655337677369305834854079898285208511232818711746026905423362477883464349903631911791510602280627124691961224525785975847615974575543282234283941189491182232964841911532085913213619528114105196735784542627649582510886090153070640583901739246973127978966943919039029629603502709438589831245905134841046730503925536336471169793535321579713816463433781472630108512309505948870050646901683544080055054214560793954496746817218572599235894106768220079809853023123095219388805744955359152205493229761232243569733191029279791055765085934593913928418491500596760590148265356206269877051125205386307074230591792821928832332876411055809542322919924368368174528392028167104057943311979608306247684026254307673105392145356150052112589533855021149963335722693505771149269372873223714917283513957254322649343651306499965164056653175289740604037260396356435759572923638135347406909303960755581386649627468281056518661239547139342769514064433659340480652989559008142442478504413879904083591736368653393244846763762826706019669419209055140333340871419503211521626896404625994220891621218388366413060357471372473375990508406342791284220863647658876388806560001173984453991082729136586557531870533523059458817528813742445230509554307808309382225478596380357464838431289613721648323862544370551813149598871339390021097490075177977130941282668355414138500581124503569691368065740029144859081510140124973378537723946004032260524634022699178804645579690516486218484868788340904427706566990262715256877632717014284496690912132252122093952327549206055534694117075956000630686046294230410562272195580322181450648676968492994155614871599865095384976483238067161971123468548226776401729099588337872823445319431931918737322158880696793441532454173796445994629010652625051711541510202397297146153391306222612695797387038502312859593819076423503436860563981348846522161452893319964020966109338594763311848817821404009108421780905025407730702383984901652799745165321339703639585505607698995577739681815100029970314802199210443155846871070089808754106887152969079376718081399174020630421378247750213477812149301489459921049866157132583990878527998404480657149903532056660529567846244293841843063847149688426281842809978120203778491882212776105299152402481240456840665586537565009749249739587682058989780820034223811209560631472455528231585815236213667596227480833422573967505215902507384402460594815956860319648185611543972543366582700741495356448882211353203350839904844172561307791145051254577668091425455437634870768136844902627128293834047465379681645360468857777821605811377820535938139075275671952924410845174700024745757007072175902984827996123101817295595002130007762370675310736399268622390988802903974234639016159390723504590560059328248017492295097117531242540368579981445735373036442861999273675570664675981196105734939612836793310105772112545682031840742405552794216224769060841514400030963033112756609314370383986399711516074956276927596484418339401181531843575091191580124308240350749269970120881414419280292823376242655548573165156039564630956604706107499975847339962144233808510170812409808956354713014702003954910618068089948213170766730762545853812345962833905975304097648906517661640048989878500826765595710909579909306604811728269599299415159494419046352176815195121880772910864056471756933578725706385238811318188115372131895662239829199273327612632894706258556634782009360373401544334469422859245414238496325083379673621458661900704533248035682006966869489229423780691380139587567115007006985552727523956013325202860615523769564901954825983566382249339587907989203455112754430608330874625102830950865711692301641265153293018227788284191062123561624893873145264965257273842188253986667567201608789723186418909415210081573283697507731536317166967671176088044398884785094690321386469720519238630678215821170550570398912351831620699005304596464652773226442621134983503274065761346326222966862086915709922763692080878293305369107104012436643726086698907627861141370609531083236211089724060386105489208398579251632880021738510336400413897495604126137642255360182080763128534601831009363401137888339540400293024086812530114878398666833338678964163022918767164517332831050448510027191546795902917637601733566061797740652005072717180892049337503381535682564860552757899698461506770622353517554612510349568137152428357299470785642236030470070074115450233711590871655367205676777798878853649678038793870067961827104929072190144101453776312240204075633164355197624817951011382824444441357187432821202000960606448688992952997962459697965180744472326022974733443116228289160309270420796946862519439610363027909877588957118778120748788252605823357850111352803746714303160027012310405142790421466332180182615244665405313696541689110576952391523708216200690766426556916917925855590455076188184528291948101069643680220851465459256122551574561139641921647734107217298566927057302946921837424427341081277512744155446082906510806319742735690144026283124431638431443665562117441555861748887625699652301947496730122330154950715360706724763685540319569235444293671785792403202326236307037271900136656583812561391434881979236768797804131817620205767522723151561980017121367534381783196431542196774993169119329054869290603038417314381903721162105136557856654598429477226453528514143673745326597246740637082835890246411993678123228266220069852969032738636763964623322861703636903269939706992600863093017067201826818918454589554475267121196780107873729905231311100933433561564091345499555312491302117566031729521259934879449879722973506138136460638954233519230135886268065020304810518520446598078120426656146968527374090840822345603224459375044847431609709441755433821458605481322828762844644776366711614662256577224304349757322548237675156090774470259188044457518332397569043112361841949850391772485628907893397501110235240294087841918726293322300767152339304149529749815632693758307519257626350365803301065378108474529299518919584286687792526264908027441672040922818869817430621748955986529475443645208005748144291198422802353738708490948418410070967494573125350761920850888575098465579356170893922571920516778556387693411346123296100219563345522836208755487157945066522243672639785491666267250546301858193433796312388314971960008861709918228035401898137788401551513022226198065509804282432721954631732761123286378532371598053315613044778164340244178533186625840783504671139412542971507646885182074751086965315723628332225785337965406639079536432656775457859628297076271648677441092773529447480064132208944861279461823780543444905795911112301730044936840354458840202728931065588906525012579979119128494747623622367997624413991625998332475432563792438567490061013634791644179649810222775975711748260759367640332152863382653525333298987088881880922104302415243763624653471146648498400812300849589638291922761797728223702761854863136278909967593078397291251061425277957950992494598498853159388701112177779000950684369382087502582028303988794813202676242306791151432335653082413033524665922730431150525936734144435350269293026019014988332421738954680087781614305672271206850970149967984422765498079660507450502941968660968558100601082162245464438556247910205348687969195615076508757914416449124042865292228729936090160901448130558201113077231276296644615816022622459616726990569766453997961851647859172028988892548704307071729523466158764307017732765760159896302675851837832217873534628977453743512231615235966741251478710092354451547295634415934222207414709558613251111936363382386425664772787297385850675296823733781534547842204163834292489668206663179400882471545210749435198443224464323041935810430964163212401648682554582330479120585743695349757722821989012781279160251218896037837944746179297763088194969769351278381523227820164040341071448679710505097814424433401057624629974114715755972861079552349075026973582945643975640275793028047288415373484424521557771917597264984798883881009776226979516580063632062650996557449036390467582412073999692638518968204050267586139030822276656399469793755456491882633211639580213629552474849782880677762967352887237752669489692720057488743831526210453547257253810156772484701337820784370761149961492855303057954663561658825547588517475086023574478652370594800073484300662230340676772037758219462517742323061102849053456590080406418002838060425024645177593500136719002792129539781066179813711456190842335479149828865392013067180390731776079993493256725818765972151418751181638581842016497378623909563454503709867990988038168637646108934721952755631584833877184659429876833474367842013808211434694120950899400899584016862316711728351079327942446045943784878159103411800461522489508817114567571217155828970148267411480075216008588996068064268798961551552930300902971856020067237406177140114891715901592228874576347923775096719604222758679438627344688753979794232016281425698781318240379614237272169527988055013834047066577153180268643380519495190023940821273822663440873751652757230514636813266508338998532172036227249456834594989793419927607876053710605797967618922916556276458899866593521970498998563795041979995095793037721190124444053548761950230580132340930452749233710475707733401215952878320619283315289837628292248743637770808438179524035906846208309649580622772505385973207817227995866265222043357107132166915746088646568627253361739097495596747239993924334886100524074698798756149254939218762193407138231225661087459800721215598701045610667710546587267734987622220793279136339988135611738009962397607292717611944323989903662572317202165497815548646542408278367655070240233807945970975404237517481369842350220085435272449257873023283376369604901999839822651953871942368842000228167416195815809880486518731440830680129506711559587555737612779043687457458951996032759526130654906739503323628567734052609074653438589013034731877357144005523198114248573188591305405174652604682914326884641772729282515503857865491213957789008188163590494552287438527060508848401094340273610704745456920516049206864354206582677949206040794259221372851939533521230036476659113124099861981955899314969343517540605313067699854278807635394620547564090066099229585172692069471677148352226304433964221421952823139860480128520112055889503719685969147006466334181270295175085406356507540015729451534464618350054058451129844733023552637934103695851737969810928405142605301358679084936821167231779115661239706462877873135279739353411748923700686190435700395304381692217689421679820547483751820383842100328401759443977565245703825908797060435942812127709364184575614167796193773953227211601142184593305878650586856433069136198791694723462014243403547323569537180603599363388245579382312040097963411929925458653922687376988637371979167529162171902928522448587596312305484082572348815367139066188645138358082815230092380635157631333216565770152512137186626570867576400791679837186190198454211232203211620546437557072441387944613282586798469856325957968894853913175622744688062143341080011902486330093555240372707453969583542015911391590184537120652164348207744226955606996097801909036313632411204274693585779115932184450191795269856735534813543872851616396452044274759590974196829243287176899123597855203315951766369391987741266539658611978156880110782660212034662451894965916918625378758296872903592716165508432528864590521652185751397686842998839582417092034045510197329497904625813882876607497699144974419608606227723134991145666015089778158637736693006193217126752661765802263742682103275148930261817051960736849925067565059998778045817874683279724158614657422045005890213028266269764446165206175690810399030980384520104227193209668032855515217790048911512490103170702506221023942780875029469959666444897764523411252498075238303621731615760509129212653645950399046560915597579887962505707319972063989345625935433118689657956343790998946693491143207384613270105055028614009202391940457116543045937711042851555104513376219919332644547068793421949030544943216017483622394063094384115629073173164778118143802190088873662945519887310354660476686274555569403461805206477493920736698984705548635354843420923941671679072246229086129877863174780419632900071202405071077494563310024428247858027520909213451133795063241616798843070048510403548824004406999258525437049936762226892119182999110933005705877202886151415743604813369219109213048449068860948341205624833033319063129092159282422550784945595248995952155178478604355877941985450878128513525406449252689835118495272692802739978933774288765752366218384731649144510841358174174255332554574825396138748796049227912834277085063932826354369696230634313396983535364475337222315906549981082050191354738274671928563971563223637433831000045465091444363830692971726512990281927710729742258268205153635948800255311054741020333040571173520988720040022102213376569345448371138988253000161955542336952628190728196152402828460477850629333654533288062878131899437931819552750641374963219037767092704530597880944554139377347821388884513556482225604527204348509253000956843280832539618692980454548344685952942110474733450479208486646268964602970369961408872986175446571091082634598315132971851335443582096714383461969595340181254121288581108244481619436536511075252392457844085858004032690063147614372215180467924767880475353782304153457212008144430154484932630631305119583406566081393472543355508287129992873429807570718888209462670821871508745138233303154328537335607779519918592233500850377222022897878386144611718793047973799652169174109749094186811652792776397141537138528487180323345287410021011964900790056695768585175771394709150331757879580690998835598055829243171322923074376326639805027654851250712931446637167792395100212735783031397462572190339743764117294022758601015753887375676908713904070979560309720249655247195584849718722481426669553842718413759531859237673879643246234983344493399632914707885810660265573665512931581042164725751542262408416133974090137573429902413510745488130393632742042347714920134684783749902894069823327279615937838361010165723231482359845434977802722616071049915176883417337282283552380297750652960282455673753839748768411945906363292430243712556096687935926720601168545817439507502214999005942917391556859479910006781971496952123561339193438501784516012476572038702488020281433262749088865550743084112896008297725400210522251012926268055588405699348756149233229996845343061852647246276014937266105862688394188982156046923624504847505458948950652438589537776977666390922972962266478229237973365242730479939519086853108666853030911370723484924366973339242610616268266011792206214338836594453285976641898662646810460985741876463125541107955463458646499226339317545274193651082067306826846914318762108653098225739394817963330421314944875391902525852609723133536623626473067196344131085185528269687639035497132834685743409712002935815248127646717704344340316887841016839496656452075596658407156673098615715457425491456470970755219866435943606061598193118180054592815431736267336488824725774600903865984804208220641867835096854771949793732938413609907362270799109867042825906002522907859260714584701151509094374990736212250652867768863370353137257971283821773818043266863138420551289707322710461693813063754428461504222121019191924366063215022715780603329392786933893817495088373670078450416373333792998901089071689109918698772815690126949776960606342886894073524305448948203618771976851636919662334747983957061248710475402330169373028680484386690201878130913977622504649915367361310013795274616825560865134328513904630401843232393532994595705768161879015974101151731403826840851154746064338895329987838125202948915527274462673153180071711417399577741269508391482198253010443246237131231671759998436727353772198045057326224210746429648930716281130342631183663510831339695443072113050625061069661543392750235725870346684040297558413385692494557319961868604474611023965607550331036657817461591491548023109906889156423476242095723798667416089324366235791202411125229484753007591338759115642142265686474510870241683197682039389724640196808649882331869960961280162603335359270284544641397641435452142815680157559844424094002071981543621645520727319590910133432485757351082350891268573720221196116665931167197822761273925267588693290201835318083109712861008740628432245084329944458740071703987419119755191580318123194214895233892392595180035012591086191581389922581180073747349230824359610231372952381213166732259981841434910298477352178472097504852153577895452440416854215415273299464672073046064560305579589153264543482509506634652552477082634148558758501624760143587800049097564925295881469842001870861041328755054309071210042586864986680039813810097918512463183197635225243057752776507472174726211396877386903101211933120210929678885445441125149288957588409751736562131916962101338238145181648417363599104189741008730392591005928244788312408259705416747926586068121327615306115576517113712646999867329091650812375828771914079352694148404627853238045420362788928376348512755352378698921753363156410898202965929872200759202531048423955997434672212681491602739307767227050670014668232123003162305694675182742823684968960885251607719126258909448922885843232111576980911293330747212772441697788025476465993038433547013326034823584979431856506958724740402941836089416275315668348720293375600451913290336246821882580500816921496364635720552050489298409078588840424226094397575970283796762548145198042757795324134411801305932817803677031934108938176077693303985810933212337459543002927744409904386423663720354052592376281671716966252696321983479419229868101156113565763476426637919164680942591065277618583782664028389456414106126027429568073058357730497989947973833933162541531628100991072090770642551240461484578396089717427762099404157534418878545201312363762184330851819421968670967925340077769796830907511064135647376993607097965442922192242403865493150055903477113451586275204323988696499662146257580734443812031761527402647089154916626396282613327286007537051774576922329265611140098385829705160721815327103730283630003606747253374056457001751494305425885258986011562595944488093434422431869614226254925133661705515470720707331224579673056411668504904533995726875547734564714649685738079254299105433112396631104973041025344243777483350073311616312634373809914951542961766972655093594729770764897376600425785283669533208638305834806352852741962923087880247138002210575859530400326096928638688087560977029564859496729730911973791722877027132624309331146531079991185342575296651381552430314966213297221415184602390456936464687363181897398732530938879282804791575990314257438881798979835910063774958756800408014467899613215833312490547273890083000158801843102517026441924774686876019792575557156572654423898145996855901997653047315859419464801767731423479611700030502996366539857251611473576636045720731936498909323427841495439513118845406844021648538321051102119156085444668305876744652615145291949809848669728411039742922991293606817886317193788350291128642326375215551054362776361321934699843397547625086301203032092058414961049062391782325728604573720030431194269526746924482105314417970535924676887630579386065718755468283769962242773112300580882782708733514896938318941970841118448139398562816712534080940130836366170866943799442911059241939444244954941110702159344127112656219196594695814606876342857687144349515695315254171992762718461034267400133963140663444932673204550375527461359683087063985302854157182348898660329295534780573838331033590896769972584115938158964304280632147837535231165672152402596131503946485461935189255390932248738135434705645462684252395570422843210359947076895448444802136318070099150744847054808826560719774430192547414102243590061045371275935889457486777956471298179833525787831659501530265941796287458585522961185339632537258280698099014816031613776157437435848002365318684498511631910902722496271861333828078950064919748227106233742652663542616798310556328049746059447138206365029428914464195336070283182936674034056972675827831894656057336860665419298993600223949647673842191488972965486750177621121977506217124184172767081767845835226428022071592996462780817092575379684225879350915629690992791720805783246463284848741389212481275759788074913343483449091995817799694682471689572575586676246125489081620305398804976818467069312003178026774004206517763217999785577055318661282194195904870400658652221616411997069136120782015078535310646390125851239680258906775182388153161281591287238364420443264430462754166141935563677556523164389359171320219281952699950246994659375261210700668674906870063382904350083039715805230113503781333780987601143893463843527911201131613708922514981975360314587593254274239041938715494224410975739044834007147850122046162234967575234426316868803671897232063178198684655020407442404091071944913489982443704082995447987689801996412680285587594001013237377776188958871364607016071928257777068311668066158415027836261870641893041599351161903392159073387323298022995740636669588967244932934113477206769778858576240602458962219615130069680290620307301715418855556237846781180358711065301497707639481109427364278655029694993912444147149059919570709285721987953115395992254000421080516415301757280134127680912502908840746068966394160341136271358557918568609609388953075321460356339371864014774823858406736360711557308986701829360856579805274675320170194362649876848336589887458895994322462481316759284312047313256913918917360237089556188227561208349537839918212271288388295174493047686046445772727462937816057525915295953605870562977424065865890804870192045102464463473071120156841186959309173876698814888212070070884338836003449127659596858458610837622372097453278479027219146100882622562094557013156761292329609458284109628832313259368766126994940667609159477569592582489073595175361184721119050415078064752691849749707179008317640917870278038384946500447549418514501215346843805018797906300791475457983939807585679400968796037865542042186125186571225028035710202165193548044655656754585641817262182386038094446243611153657367596024837113876096559090176198030153449853558313969668486606264059296438677267960920634298929454827183427407505373313586263216535382824974252941003163764665549818263716640330044414165795282885949439053860195184700275867783690631288479372680746590823205511618715802107377185132415549773981631367028620894096716455445215642512757576712792484854974834982765687248649793485364703458436262444709431809095011937516267970824142747939836171143806705410066374103695288077228883271385087909001733347540171412891086063173522935125074393543660713549626681998045705698765994400725747088313383461084689617345226008494749459798631509488265459332476142543398728579455542119212035120977067270851284458064464067944834937114109790684168421759522086767883105037452715746366495476912957251455665818299761289463658433123323785824737570937085443175248312998727391112930489252592330076887431243641429390162611327397869694878027347384254988671559700327944720454085925667850012384959874446409168861926847549706330884467613657594515804330276052980712544932357628330954539618548092032665785970893085558776373920619257921719932023545644144462445131163705163173874742687505108895682074764805984439731491730805225683423581625476474222085810066559958696681911369707300944146142538812719497384267155411992359175023560931926355758964205568405086716164612184737867414657142841148333536617025830651327406521518343925884717317049126202575114515898191115075081573393837043302637881625919581507610565975872012759047927636492356254809700723716929677930345670959270055629193668149071122317844845590819201440733824173744715745120490013902910104079697367742224670935640412871878789286497610079686329511787447551845090058554987743044340736385929179871270380164034910984372260598636172420176930295412897005388488675107436198539076179417867370647297388704272507254079843062877599728394798882078198537455693472459275092478917733346587056229864062217206280216505360044317500950711802959179542246909536064319173175608275162679383772248626091990252439546991189182063170956933871683415512576783193765554241496888033468006169211808527718223686581242412929255529415039702687664950802073328127857903209096543468281162882731112135968711740553256898256598519781229171616871891983161597702301235785365814002376302146973181753086427172484745827689061266532346223303284152159884408003246336841381783223450350846160270186276859683659429763713820070852369251841364571811263714837945373704661078715127529986715962823327887152536801668606603700189280996833157012594684168036988520293133637643857858718321835857931328403024617364251847357375353262870746946137961172852443581449706240306364199533787360895974005195273651969132403554364896243172948790355594092628540351786477098662426290600883624855789586154790072103423232583035515178245533468211834368278503714541477468044052691557782335959273326355144095529419690886385444045855560639366474875562159681092363250228357397346200558971870892134483055897869563673722798123319735196046636917386236633458631881318603741113326059050086527025207095618633640336076983834439787145419139506708825929332923581328713083830541979117625758149725956511563576087872852731397697696616929406847323193672334967207550411975110006257057776004678300875968831364983462077107310809773812065471432996067809039654853106815287710074627529286203685354522496759947964673045351660769085294645354919919497912146893577664998500798642114229411771304020438692941188937008695481779795695645722189474171705581892971365722564054455360077908767986042203402893851477634751041137070340871201450629139704271553868980671181575175158710793214507070240886471305143068357376016481108354628602713141141742108252190097816037376109909446341757705445548532166742682267488135040814963108228982515526531259317120319383914821503874196667792956924244897799094341255456436681587459238415712619991532955159825991629457025705693264167294244820354568009363954653281815470300812502868996889966602351633932539128785875223766893967285361277096615948193047250126307568156915329993967574339415951383828114855552085786100332724990216102461465551865806832618295245355184719069734825028467388136790118748047843331990242226718745267845308421361558540193966385160234086037627581558907008497727965499254388722563054199196741340720934932883188837882539641845650194986285872729692041665968780482054139356621013577004281517122523616575008664263002666178442749605244480394608055758182789931360338526903822280269383091877593764925681338545045577330949204519345612491571387385204974668622605067639521771834938799436030970000517282942835753619074847256922184644726997938768582020452395484749642055330816874496608570771791551487361436210188457207848932620902762873785954462698323954278439970999740947625516872256632788284390426603055750840401550474948317954907156031842108319994357425547622000723281338086926414993992399187423333173505616033405549713856349686141505600401199830920511344270015621331862127247929470253536089073089287212242088775285033304698031251010724089283606734799356811189435109944214088639199579985641863807209838279886904805884459492675866207484866432576740505411322684162713933561893438431474364171007315813470882000839465926494324661131293100795785607905741139860200715379920750431249745778321199732212646216179271583477667953761352070714176396112891571845817606238926027581003579407623238350273265490485299616182025001096789595852262025222186168823587047723911296906017000923022266489092822488759403491369708045142232564162514937726457212681203968181668023542748961112832752825365070193393575633455611470817497721278272834116546173894756851995251001914766485895874334924236065315448880555191957285210106976008230392951045898665017439361160201122668913053262714435359057639239352445563843996617818968366528747548119651064090983165096000840198167560284421601421349277839921464465488607261747431639118707458139602996277222120317618242673947917597131449586857462249856754165743131750798671057130257214823247793614401579315364671514145539136188169326089012150030273336986314114223612304750547677495612977703226586030652639593863193851100287163373067836731733098831087438277751845647893371212294658137896839476661179476328935669862373672816755166656902607791992430479236894227152853191387788989064902335064138856232551627037658527342893084984519478210300125284533569635802444381933780848633529965359995082809951121290613420244607452838974133939926931319934343491153471618567762191942559209648232115155121480172277988898131642185860990571567604256323481282177045764256047046254116708269850594839856639341610031361208493368424312357110670259248307278804264469175797065466617445604735294369485501417086464236001728608239452311632641980697453249891428591813333107240971896033179991908097067202764376676846631576132149483366008493739891427008451045724908256528234683600054541021731631001646308628816002859232074648266564889825622420860571311078232879579703520073303324840855667985864089306052019168066187099514009095990303348342831096979465048656927109829850489221084304241029377526755945998588539182389573048419777555324167235712584937728626464080448998289509183928688782420401751709356042669870843081303597418095801663368909059548842589745926358869023211922793453268934346922157813543754021821946847923622588152443874194287790377224341224260937360640976497281613318960801220201762155289792906908934612409987206210807829930268572283537728333792833862615018984883894966090928106561902275542210750456470815804179701313723571142362579307169959355916948798007426098968078906421104779474271379910377620991436345354311384179256940337683823009841120628544596283278082497807593657441298389821012054164262753891240451502520004712856472628133551453109153485980136260620853335940803859734927536421235735467711667706592184597427787087410103375378788127817397121622152124168524796139893122499671275973906653467448132042893875222538399847580328003223920820414913631577170364324820882580188444189032990998508592475384342212359546839619894835929747466228520054787506165609780284137224221640549227501227550274485045273457984071206732308593135339040004398506638985384321023889501661763453045355043915303870109769897914971749711521354143815893854243829457041153940203465343552365664271606221661474541858406257116804876692000503483567656123423625495488690665088324229925307114800615355359084648609056952003431792901915860584565282616216121449487410215168836879870629226549896426371949177161935792759078282642881226970608724761659778620512679989502983548401097124803377624788503724639349695043001769206693051259754473818149893459188149562684191111232029196397063962064984681761698992477730189354099635303546046897108097511484717939739091335741286478367406760905120478728200510557556387723805931429175600658327810614564298847107857357668292531992967644188808355306127362521742804882729966070897247235801814872832577214788525120825130580034063432369868881354791340212339301831465542550242244102618614393222802202685308940264838433462951313171549756999041976127308329987354624901646624043091060618360867286354480905471724524208793181581138671742288916241794508953953447334793352127184106433599738194091239829605270029174763139011181642729845206711273813531686417278635424011142697503057468069610462668194353854046200552107088819944454012407398432599171745898846562369581564609261294928098990887978764305140746664914469797081363472117575905603314081797894013869456898385306128936315412865511868601609627475711037920023429780830213049005109800526809138107035188020805637704721068529115094528848191416921944069698548960355670888824549094609648109376025694461371230638992144066867425537483734463373266481839628736558762084561077383130182021848331635730436927390617723162452436947677552283247260509774708554953326171761685030101147917359893597291904398127856283229798541398135616828963004656078272757951687845765478206392055856840951524172994245556776776922833511240350365754683805001551326257181985144266077027080658882165328252780197619984736960046693060122188879339984593238479044463509017472527692634160699859695061243892717914064319512314517044011809684228441484639637099228881457786161677714608254754056900678503886180084069474934629632259625060546581240399897777392021423961753127907606775365429786894801308505384258455497769036577154950376705519930743271995193066212639765340481626417459470981672580534761726589480441914442113082058255522304636410826715840348481250664346086682197750905005557578299037691762127524222775848702497988575705665588708858419630243784899185727311221596441190772162704232262047426284158230271506413387771341293629228691370318796539927864531965211479826959266043879379115002349595567308094157519303084457103021573813309401591890634769387576728649622634221626485475752456212654758959172044950937713238893331498991446142851007799001893820001761352648240984906315279217041846216151100446433830550115981409103982572679999104970177219419788557178080329894752788946244555421609664946166169482176944492035292186692268005449179725413915105319062289809682776800473729076289847391154609018033412413327367903767080854139441674515487255241625041817724944251191787389143703096362820275622839615889386814509375324094730416918896157251153090994145073130610348252576383122663912178171344004771179443311168224084281575408494102714964021365009226488175376885589480408132050470816927634601768368188063735746180627574084397510393033500502190738443232840389786433943253073914666885075882320144225793913456413740589407678751508501471427009958384331565262729686264299697585149668178303388779966577680684858188396932161872760137108169258907900452645112305319581928119585864221567348559613413842591936419887956637855147838844797997200618619091151963438723522620845606092166164502729511910449899627249892023010423543773549727438574238143341345548560978327738359982681809626828633828330940812605879042108495756145773145477703792460578350484764425637020679542370740170418995322021921471989886869266701929892143378339036289351800980307735357396311407217422699903346476455973718186431303694720564113548370840681254977840625525449497907368689180872387689795407227596273925732350581388353194921027813872394051505011156818008145386545820904707082999772438663816218587731747278949453558974028170515879352581010070972286792684874705806963403752317773689860201899267731293283179567814511109751863468116219970413559127437845713467056963337361968853218310483781178840230334185774946954851779455867784500862396610715954367142271168134230776938861721428478100514635938346182461968976532992183717109307470721829645298449166973295951226550168933022778105420481380338084779377929853490829793884878812027074722045301049455047029994576395196239941940551436728853467158341942310174390792892611867405950854609782334391544884149460395993822722461443326677893560206612635408258961801589171630331790214683395983137559429849333177388524253320244871762788998945735373275128128918365796896540492685190699768577025042422976774961162875848510258809213026168814563755578552446996350216362008024685040315330973607925137820816341126937813877186392683128422735081388658381476632109229538281275345372292816323834035399084596294773362031192335840892536413507587886561711987779867611535741241765941857464735449068533583439372786817577066466248626539774409117460286923788073052070454798027209397556912519443813718567834071481961060675996825439647307968488205320016287673417169540496313898998013685314351002393786287756348107204986886447314892305475329918052550917524472749073740718214703573042190307678588348056348606708369029425187847819641917163456342184836087687900369402156699524610198613774017739200879002133824324780487373030654820221647848566786003200602569427495666681864692610613291339311318118046638323248962594303387718051909074002045842298222624063965944367353683877320723262144247553405016503024718447974030632425663824347066985059573717772675909762299831266835230118395120333707006284751052942060112790005380101623113157912550132974651836283159355028209947565417337597325761167243911253806754652456614774789034865436507308409893164399606309366369339036339220604277298079002960199251210430615977764428665881059627749483703354663264581310193261515044818708188528187695663510682526897921636106927396038820037095503097358013713802501379908097226560781839664424288544860009541645306496650016353217260853212194527991315361851536753692514284076372025569351486517227393402128262166642900457451668127170666439354613792512270157562606975577464447723012120073830841411514388540906619505507903404791360927185911595033905653497015655151651629610960835856368358627979613728909357896152346889139513026127151510801047777943885265432519543032010331404971814594621056954714875370629394359429786603587506434160493077355199071415592393774794702597403693905537068012694737060933729004551240046675692715415339165068245357142324787060971029918691638724557340668459074662477561781242548005528679891561857153751262504590067265103107577868427890153897510047926227465609728632324222640369146636877306407707813605902329300186035829657735429843268035146580226192563983634844530709521788424019649043814515467689939807074933955811927627738933328936562342111587885490654865460826112313489208478701249352923478343980912364238479673775876995535966938310628109180822131239550974125704121345465752999041741439050592284024258536151846402695666327426268439164927293931274210320357220506425268930355980131655230397100042915849036315375737822674925156965143700336889356600170389149750482628537402203857975216579531403690273035599074844283283912292924015797190704784809445667678102028116969457789304048714524305274097013520107126179593292056834681324373347209669331309839898367683910597834261396976428030849691332932211010116060920163674355112502091586504353423672262481830189124287736865212846843954132628997470434773707324847084211494219460920495329064722042148231896428407533896661062801498362427352986440806789838764985486040070071752824895793513978336281975672875830929110757804906571047021515187673557380976844382599890482356072205293623186344950503759490335445857288099344275339939840266415945483044298248858220202140561276615334782521771581435643169996732882210341675582905989333899095537245822745437642246847982812941811766395005117211397948195397150153057580275747456676260639655308726848014226104399032411952581363947384977873047832097960372623796351132718248020834143774455404742516948462769324803051228601536956037618153549889532702186482662218094542660030181601235180403271030984048408325508871243807968350227404068845724355996415334832182022078430390906340342854672150033316963146300621477671334642415544144104057452623857140738934057533234609511157436888838575945452918126904116190021059358311249511605750372379012366896428584663862377735929755325126222469231131587228506374293135438219688581444370855317952100723273243639093964386319262919452359279728859579318498368812012148675084948551662289859670762498189900977281499972734985276266991334566103561132049583032554141590256959092970117986507181247401203131722970771277897376175602561134202782735275193063006921581346148302053473288916873643675353031930777253253032914724389465159068023029449488843456224576661596948871556458613248505633016249474410211987578624733909446099577567539268483974282537527550455256684588026074605922244245004458726763535391516583292692146934410926251408401466244343170245265321205184202229772580855433898053893800109285116361556208672475873575235432473614789503099470190394078349896667075748574958961034469944948672005336561050173666200903164471936065544603790691562591113309283527852035497586781287695597965437438478330110301513808617213723244646286270213377455829133846723587925330570649496703127625343105315027315253467185501023309510970986220369687784077094294762965087294387843809578538473241100260953729618156453324293861635603961394910496380817271115491857061473197766615083875980157454259068372060167988538312464513087919452979893444838711525647764819112218773565517587856019275006067373660929993091143648286971289869047072477482490234914098868609232856262389202987906731729098263945328263599932360613302161854770900119748206814061863464922852172170633334672589726202129959968677746530794768170869772265709829605645019764932518299134778048877527655173179248891996987980772639509567327040960064263626286675681928578468190231155926135083650283574503891286491686489066570857498036152240798140755372468214568797118826706332308111243396274064498428574204839468005585266978284213301684760295286887374209642663915809449151258860422242998948934075478251355934232958461310869202200968972134019844994177149295327597409035331830928375844489050372576337813421738940131055333705413764471098503128666536563291875558681897878341722757604030276033088891829814560398302141306506479035948770311870425701341182822971236095450669322066008531098654535195616529203714343054189314614431755470241923205518578704799665247083172150306510831217820219307855087555855028437309724319297372969078216227803343402299598219772997694154358471151265547441605670895887784044138689122787250533419953754402948501274351757058233192655325503967150774060229018304611777802283492558294212607520958282009480709573976734917069240108244806196372390829508701795587608584967169422124128840889735059165841322944586686972343289365335517615104670021516957378787621787847976970585923956357303462142851067779731981833970881256872274370855043123468059857822020284353242234688516514653574380963639124160490703751596153792666909493598779591715111629286228717037320305057768148042307997735942248046237059096926257010348729523652735278598792285982950921551375565384093938368070763535564919956727471581538464585649771772279018445904255396248228754930717399065236153671456928563817423277409903013101515228648979922949086141452232093631506446666737477599503532914474869738657462786639063787667300010560171997741341204137751440182091582625494206722388833908991963659596640895025753675172939238282225875195677705649823153712035285831503078450042314971984086116341910540103981824973222829785490705611586746383656808666646967620686797587218197343834911502227417516370395860308564293683218016025099627161100839104779375446970256073636963971555645157986913722045863101708862811349832457417537569090099531060334868900999416451550367217414071722312267097221160295283863800916298128560113286711820563897142748634298049405598780828424971185140145464670514167421241572475498986655964399315859869168920011179313765388205451719517807397230051462421162780074999878591122517661805014224137639261334451862013708278369585334871772351325595100260889599341170131819123746205199996231477050968991856502761198762980642641548085329574242463632596828574644795945896852329174979540110905334776410986571332941815821127227700133679590522275673223996328031621977557977146115895957764251928283352147261428204771946938106589712397654257406053612858093345649200379885558390673334766337577333820332711697452302572157650797289974407556545725412099232386527559708078064595772253191567409294430445931131237090658484219260785970657999733544537133881336285877978981997558312274590411438274270257340252979554409672490826681569933220452071394085243101065589669621770667432234006466877160056234789374444835803326650345505763316565112947579451998241519791942591215948430342882682045360024156704973792363411731197139463052866439322119795818525574258809367584107674746337159358565690648204076204160574926272501860712954114644542463620910173246544072354295489711135038875109401035537241347857142523090361819286718291297764386026393368835925710802519533353723174830784936998312710038692312795242053219590956487082225670954304354455927227230302168042772322082452342109652398714274678396086684267307500908585130743986740329634689193001083223460173652453528506282758363779380256412883962707597296891338662573898806136774744181380232708991300827246948781032711409357518078287871459223328372211424559076175322564710465115133078349920099009911709551000464188598582142361801014690863032024151216528312908134105722772971176537533327677264237735492073267697313038796223215790247059985580899971469504067971473282632623971867442287469750263358709725834230235527650495140492157596416146633906265510804818785042352615955036771818347524018035139811746484954238029336743804353501332516579366051128291045814896055324302268757298255392159813669271430925571605496681999583331242199774273166370733834935921012653777505962466960702208941870052958252433828079057486653178223044636609330069837694237510156336253545832454836745522308304914023007988406773517535372927825641628589342610891912542156464951199688817208449661823560422968575201933157502840884497113837183762061416139965351816394273318611753505762504068408733910356718976642570471386230666803660049451387733935176309817112866622835515900940904019826034666464861262926366083161658125716881135039323134461984510028647807023957593701710783272879974387656158727432457992715198103562945929174374070491044026619170776115203505266207068492021127553087452667217257525823740398958159840365019130543645084040329694465398318638120429025241182073847103691544846901158826165557949617387364641207402702845259783975720154499815537647940099377594603866364354820833935962846988247815708826732745212219189529695276126244953027239791036652619574880879306446799775591738981763130167880196241464475656999904274242365186027498732936083292510548552236739306648258182556173400157310773041724525753381650329090732704986811396998117650550249697036152709345536974112486398506946804798600600363519327638876736687937412440158468447161054145503612266621536853302427119941205694521403726895988683650267044977959906268826631763539337972783505536293136345288030821873380341154155329102108758316691755138760391224994482353919246687998850180354793706205476150948487267147854206936470022374515651809210554662614971507179269855984773907307803011784688796116039537944639531739443367270172851425111573701083632105678062095275987470308243178937519884188146422389617910182970992592586140625746377995360661824005145113934346349077645071526050562224216645017651586222902723523682668296294487395366168977399615252513694627399112443829711878118715103491813089784461215231995053564810465686322429115553672241519721935854109447713770768679709228529509524329500259178478217163987995619790821122755615273638095083872245681283461499530565342892595640340930708711578256807058268414663874219345446256868327987622278288272360417671899268925906644930792737733350183802923411891519155637520717021289134296303772616925599383920031889092672306045626842301192695920528000508656223402482931730241796148545851235295466418652494303537820563131357522926057225931230330650265637457111260134284248191611383803820564213582818309129013898362449414702387654409451402076903040173036572980127664966523704709209716073585613666791800554908842783123947967362946881035790687712106930093013490548096514204721248085832234786033969289561461593470636510283120859552117663374123240702809897136060991923956898458065964991846210522300328283043747409365458552641196528315046075384343303389744212500159698348974053603715929766182671784403541316459641948643602382141404764455865117823215353157322487076337312655508643557801723263644450883304407593179882935854689932618250405606438336984609780294265847590467739144653694680557127778790083893490097195322773037207462953178473074569950539720409281674593736955470992272142704033107334772511914841138464975947229300199465570317862881254466375173815147527435830715207130089836662299055127110972194403842498011805442598505580268965794559272557208271294149536934930207899673039175373878527838321324294459934370803939207315277401654127838770396212604287085817556969067841906960119803904254376610386586884614963509643621237110051737919074826228455492576689686801812971919956808809880321037797749549925680651641906220471401048415660007446749477349150498023013278957496577503715822854510182450226456301766291094104931473874507531873576465779798697350294810025493412561012065901370507673495893283117593201722407164362490135467443799373858822069475259795199267573630058588188132342529118197396713318269302743327421582994620739512774526855724268012970118596239139298645068946941876169590418230332292338888372559093110343569628840359461767903287543082639507516939660378412207888234233745067477596543994155711654682346247048148755479449649721732310302294596171891520021424984785194134485914259359642932523459265957949294921882083351666019370989564010883365059599792840475640734953293632149008161590466035051075862607834745754772272664784079253834332776981212955072003363312195351223275381552066803589866077333793647631832217842618591628457567222239439541162327532617021553688807510419974282361856960673133006912957678702432316619548096783255466612546598982969530277160621964404439934352541629254380625778044860482248316879200008634857109993805372785312508848280878300480184365943137572734444766468203250405145469407813988103998892857381894924988698111014875810408732786276973633778029008500492669394881256651085496720111478222094498601325433390305246402095891080813962778259300270865669876876073962140215665398751119483889674771585885786042928488123756828105668722914641976839297972335232128899885714223233177009751048127276447304895184751167039294414265706505102485404280734528870724031880830108639510350887246002957891483420668774266918496694866194558562809989744102408936454699555322727430241240319075341347071298743847074819162589893727642535087694607771902845136846505881807968141096828878382180068316954620136879118009376218481813467358323953519989517691006094774609262642875459919763553066819110218027171261759215184298288099975876016840512458368517577404419380970944303260973144538086709390328366991676000194838430451008396816962346718115555602389449171085041764550892007362047237483421637857087773046007820552000546066584725490831042688309939318109431860127397543767687726527723520516863322676775085588648314982594567609491496119958594672066742215905688824245354433236884256960096571637630002784113444979873284914211326487927571281236366220800386479474979624728038370601375505842317553473105200420312156589671906658161974572403389293452940243749706165737818069988879395624028324079428659255547958977008739126422447299108782359316285981403203240600831957276297045712160528800045783413055365107646752117227932706785515107414689468528569047206345381298150027129958534307075552850576428544943548013060800572208376974574961549346015955050713747386026000136019114184058103902110681683933177797477685530335699882978272897956242088890876164479190322443824294537239649929140692793042560956263011664922599840394153772001666869349668039001910956552627591030134673411042175077003460832678664756091752085698337163853572763409492903201131572803625809374977994744293217188590946494678766805443894173469659665458358272773267991437102925767823877304157457510914062411228714145316453060520625733654678412244743349301294482399965125673112519009428999067404079846146936703548770713487492061589767857047153341893646025432418111678616623888159951196019340321128701021649725220384217516733120560284960080854360185440343156235405379740890767799807211206192520209363110545417965862409673960385986890555738216572584538332888466354351921406730293165499053859030105700138698367185062722341474815482202963359319456679389310111826563731713829117941081951062219208441741856873829013470768321573319003736713104378582119382455881759996038501102622878418382490454479434124441641293463493804826148938479170431784508533322588962318060764940439982395552995843769442944878373409545939701182436247044406081275030044519683279714772404585821478390958128649835076853990920339972158938475488700620887811137080190547358960010271188046711902252234605056135421983911606169677315466428060506110069741223680966419706653612891418179316602011258331941993937992814232422042581177991625078677183616633968194317457732585347801885504541367494850395000995900910169314617318375428197026267599196158976094673091638190017100017829036557294703544010760825954344410439360886788069449706461543184975196769767988294073074915713136462005131814281843602593290501747472575167617186278914307168885549211449642815275441268500560831040184714619677630069088366966518637076828082878842535435183350850906001019625884352838189993284306853514773829780934840126666835699456151732960940521990923557855616322972462876825898471573756481098909708492028232832532481900472462491968151935222877525659164433414357516108525493721081869137111384967823356022639988315295979787518705418033727382674503268825694713170227315243270345996749721886239044322748840052663694837761351612330439524868488267290216864190115060118137573490099694448855029803252614733719446295997631131787048243699789848871575954868303361608697940198454465688796549922144057070579009122403133777780361482777172168111428060914675660692960458379149160200825605285008690585885652632712368060727782477551615076466709162794542764148759594877624291902963613206797786911430499480402894038197650997491021640171681736452911985060409813901663610372182188992057740841655433247557056577761967755244042237384011203246388053227876692508816741665495777368927897536175655365450858205617890028706896508908643629703542600589927235455702394876345918205173634986736340964369326865673443683147249265448298427204116015717895789391111440722224180600464616301999366618306437728873614257822334093457038410319975639872153710297915932909017765400185301139605244159437737114498909835737580572536488818722235997358388297876268331881259776217156273304871564660526782364491386661812888141520455866556683387074154545698192844150845333458588245482011649349853781306639467433397764063883747406277106213808707879271970493596797056761879320953851950163934023376403837525876290898630813056961760319221621612327525653003148635144245310114831745557635571935245109170132342010388051044424518967357559643443937154602942197576819960780499999150398135265913013074114446699395608286295080016960691506018677870798415494765191856327804992269595312638696134239676487899263113704351515292409149649104972907300301735038942299461300710092550946067359088030647158395273737775004199109452995550905936749359411956597572316054148408754666725147586806645973931133391093904153890304203619205897126052390164390954078257523491053993165965875735469719354576673805253021807162396792924596708686366130549177019779109370316113736957783408104604307067860552462573916962804868505816144688245194291973793506802656890456288700591522305948492500554859536271660059300615516003770878798925861368805261607348349582301537647046198465097393831207787216195868647368645898592987380695644400914011446156023758874926796463933397100532066090529314795633901985012513246127780487151906721753932720854082633375064876488819790425302642370341659221786965201358865922118510154146368276042455831447804267278546394778670160866722072444190142737960168831560422281838692949673546238927371577893554381658128271604136972162740561587683930598895139948824999766172607740251394991819643777769131674673749982362793842257784576491930320091577297380990203614190788962882003760080196911559465143244358383451132864220113491008852908575879827314342023101928326696125184721898742345222098072253627279997963191559629472966670200071000723977990674199366881924195000328727507079586646451456314042503405970409493227102293872781538922615034197006287335809156919855280487595623788076883375701416201359045913034837897900773322421007503426327571618348834948671478181613869908751244320130619410178593687700045604548441308555979493691051266368349050428033803824464827942085260688476180912316358923085904657366119928796483349678498426025270987049706518140220793889324629188795092180984450338660681060414854605463272350772902615669803823066864008110105766870093099494178476830665689198368596970125105255528321231072394276318637074448632995881171241238382024335765685942758575578847533738672495697246430122995196273780713356067729567826226348850837102388508771252725821746003284598580086082228348509867158165040126182102075902383044095412777064507356443399060218328185886360812657214949947664895172022207344057361502763594643986302978956053113625253185514518744776292382395755042443117925894977513430410173540295979619142170522547186837154271793923089479575805603788668907496253139957548418074906583310519587603867830864434829541388708383134756328298550602057366217981948798816522159920078783221198151655894251632018947893021045231954447330234240180756576128982857930741743198918639152153272276878313936054985744736526944664992359486648900174905875909042258882759283821162555663172500823831418154348763986256803196761544146603390223693952738676985841077693225902685824700269157711938238650755314718212924626455422667991558316119408672623636747167781447349264075760477110904099636531311330453430437812314825972910540428694313890805280230531579232428844881494675786279606456038297315926227068740011567217221548288448433129576090619175623075571640657165383034304853320110075608794844621645074358604869306457440500423641522708096756708622806454597354743704545732097903205413442253078085306212580827475097187892668166919416901977864992720750782215927131935136329318785018024220071093439882794037212241777290347548002549838994845096848547567696024500782240422510387656670353788876025238282042098331288522224315486483962298214618644356406664284323600366508941072382934287811296908033659479501911849052094674662153327180056627469276559224878384450460594336737997642402006748859499443049894534092514672513779757302114421525882499853331202636304637108770387909865875525179444845332529645243928574336711963039490567476031385450021173656070198044926627037947966407577782098534347856478797120280276119755448247705421075461795405618849954273306688097099556006485108421957617780762217987949118459514741237612526588014479789919774211142444824451446145405933394544579087435726453097128358570246080462930682576905413969384998219368077304991856305906236530197224968796289198669623706560347994693916175215871649139867203867484145550365473989493466015046919366158852529540813591896925943030666664985685985390312124504480119105564607385037312515454708720595929726977385578194699460387309379349376880073583963655439395253455101815943246298137452593050710753161690630515937263787279245728666295595455106240142639928678914737168268835541542333258368310491648535928964928180772032222126238382125213465610102562787274727094380236717767349273419503962203459974493118011385486198767646730032713190519450647295600853330019057674202913619291182508814603997601127550490130377419756367921676352787626805681373450372600726465603308188370328152112361745044892149814723771923094559954425656529600516350969233631876508211709624690439006297786090961600669961101550290533408263320296851431402725310557581119028552463363013058720448971949472693430047377446813158393943908649704006618917977641848291345080527175316561081287304569646090215406475343344685811267837725721467259070649074318287426860157444188117867827816645864975932849134935598345366857092300072690033897575485573589390324663163712366547363712965288511598146930986291636493899417864202924106385574358096548094601893940663230266342834410188888423794741735160198128208727238388568799991785498410382667976955021766172960772126758286470895618074595504442013968336796047385623860151375436509221101985654252045596170753405463460513839624539528664334288846764617156379667610015114227518283064691819226357776962885253323351779913797822408476155452622004037026845091150111051798284364635100384410465270389608029998446083348792013657023250503258281932409150816479875845064052666098434121365801451796279259555936962157058443708716717709361077700755265194451942469814660432100459865527116474773322083579408815573669542238819687205962527011812392086689399373039258748114542553345364169525311805149484021152080343963038452272933165796095399829148539493023535909018279944979670735636752751785713986957158476565584730082289283051852233039612473972963100715422543824459400694113548530894539408783087500199279482316795863628591897902804472697394182186831729585557388639523581071266816494742575468271879574384461484655460595557675939540334951504033809329335542465237774894560146902112512626536660210025969628491950548568194576881190252115162579328169047380162205577612218993827083976070442191394429961170372435370075960842152147193741356325001699084203659317390469801654358020746005251853699992959405320464735600727709454861413096125797969003195635538732787321727882487658460841414296325366218557906457379992546256766874115614135203298293745009025409127466609539704532107177707969153344389514270415880686285309633025229934393709413554983572854567104521216157880563700746499452067096672105255102984176064952359450412695433829304131678456029488898385082759189973159634571344521435551243982741373297707700368389740237234812814097793884724556471233780108411468782066641158201907661948673147608859516355868747597198610260540886126014458621209846551513299785983833832455158933860557803510143806762206947127018561183587051143302516326425967962921589651741852053281620325255504398210588043740928483155263385755766783252559285775718169249315974313094429933722511381339743611885372246169756442107026565261055747116120419510843146929478606944988267515661341872070627380172802229692172948207259293422177083036123794305077159313826592430027367262461020766718413349401765106967324375732312472029701624480935531572457902985938935372687929795476521560159512546522798374831785116012920643955689995600084818949253239251827714204475588803467695722101801769984675330742800443786493223030836227968399153008669927109696213634133681771901758859825041748097092552947946826224027315044606684440166226754255472938729079536917068560700972504681033167240698083193762974946910867543920459506077719231965540179355697499949267729762850500468925105959435547686601942602915456403134633822495426458390412106526779502739105017642312668083957048009362941834343799124273945651913870214792688751996681485248685181540233007950726285713800020064047588656856177443567230573136093199385202330054564282777120869576377258979887546252223977063634968877837396668917352947180642661353923935820773431795435252128223593151444008378227658486419169651589624259854086213764049056206858966630751654500226744895235382639791039689400526063676157707304281973362919814277617626600310815872476111162450267871235212588739025600171823143191030525155257547496867981384789771437041789775306801671440546427804194984755952747006832077103744434297122297862500331566887950743906865097870687899677460330352565247835218500331544072341889536779175157520512986529804862801274195603338191130571335991750607975583588113810475979743597567752164024716519918496966507519742260003004153068995787897899554931863817952083508376422813827831348091944259405201507320217392061956670559054426914841988264726061005243415057803977016412168792179902116636140369529404420701124060847124285272761390438630732453057390251938985668391122105568698564423707991868933911214674149309207867951655778332431778552049346363946864876444306688237176578571326849033046104779843523589440426045572040246018570897743681141406840061241048013438072180767084389725722307953252113899142529430168284198606997955302032068391553434519412059001853252075976880261535640382980000834840218803935608346897152010871970571934591694960054988424822573270843036553604189189596904651902697764532093195162192341737887903300267743320857437275994166669951908608936539703915830519631337934612787198102514362568052080779977719236135258648241374987712544435098029872017288995969421552790651386538824482602532449856588720532315900706048239831374733768837309716462509244045041373195397583510325912265469019834230404671563944586381582326080144608167383977800217801457225025016503729734999991298483605200505674410296972448131262548592121407255121828435415135764247176187178648966247310859449492716026203886214557691837744082676246285389489691239809214812619557027857052655430242573494105252192654544930885089096411167370489883971340023131891037108936472080842001749081197870880212878415075896285888558056339600517570799364462034195515187087131617681073748045071407126376388286658136344549116165192211658350521568286379935389392175152674869080008194320776596348268914653959775225671644111007124704867637193323570378020219510680118809958886803276555253901153474467664941373776085197254513073552007761337320749780256451329778917638738358159041973298628442116895035921990631893169675698414490654439206421863836822536769389963290534847227841505417581561275180862924387001832153477375905480229584028833636598721735875454852222028508826105552778668008081116841419914288121135595535003356824532560254518303119489785067518364904986772849358866288161505846843607326480632369821653724435193160036315660832614119636880295284218434078050501438516709097138261416314160685889331657275235079788488907895893760095215454367884535321307771193262822510188560810250277489313873400344090761566118837895616668579173903801970214566956243777346233159138276470654688207513631295910777560182163933835050573193238286347209045834204529269792719840095138889210425716802280767010148406323342690411485042442723352966185974343593655367573267329884141679228325879651269613627097210056477469725021649225180202854207530955077994299357754320958114080834020877033123440589831345807820411203267263391228612861371566447589167413857003457159785995800178606101465762010004257879321578799777816705871300122095862501740981115150331034605764821483634914292266419990474154050988910657884513465625366697199455690936426092137423461188766422737274948186112826285567850312133475152873912669353250580291940968204675311333795407079394034919968914559671339714443768302638900211672136732299377357675652676613460654275890944711453770724865424303123154347565808039324259092353419521087473980319869226253620672217993711599039755272047325035468411472066011371501773891358412169446467346220224735381084833241790351253755697920497444928099121265985958479393294979463584075221665290926600721745208959470482693985496432419549685171236906012193439245976719258732343425650683176543677718646552951526913072218489162732570181215846532691425790660792068861027740281768239416621095972190211447674447519052210803071047142525993777287669275767215573240365844853905655294737222803952751659256400881006888105274574809892929309443196415505106619793791611713608184452041550407742558102024249379454833048039200841776028637640152907497004049049363562085794828372495536048101733432913335906700644025528766625838621797885314262891752142381339563139222798910702868880891568295891425778170017119552041352980947898073645339181056552854125487385201280704479556837877813033883196942247525572516271361570233470184937556633479422913744523721317783418846771293716435218926348548157737535696537835923599303434050882060678508606920465669367317192208170618690847458591527645663832515593708498286991874385202861191987876409956064441586856471312380102741412020668345237955026597131386110063895305272288917540283842271111855272186245139338115242347967431810980729179824633098995701808839353994889125732955219240481246525761115896018742944495409308886321242781187505120817763441068647288475435552463407985640195544325970467421108287641754590103065870118185338220892281446642422997065346971648013084702810387034623585270546722987048380542691304280441266952905518941854300382568966029215416232538979657430263279718259249283335375762292376930945994355622455256119896006815226769603838937727895654839567666897239965139845439241821549013482968776152040341878060417209766226075691057244600508934032084512604997441009727081342654164138208542306626219928000830654320404315614591085627815986455297637831450092260314599372191147001353217452017011022638995851554027328425571829673942545385806792285603484807943541071523196226962358235879781341189648296497070042594231512761680184503910063533732612753800862568481332278231870700218605223966582090223881798702905339011857266626358147238736877989139145614731967660735198982840623586112696838436148673330713489147643612865602144044584469951967994829443013277090770421018172185063720412408361752717270443178471874511813554114655175038463180387604319921352625237564439176967636016151658283950877030801967088644779855726910671193798252472248429454977803306310650381258884679081723925032045562521555629881278441691129138442803853861056829650473984402436440285795510263644088063933197488166589917478463019123158474870734147190455229179671131670556391769257182581961313874055637041155395331231033367939554288669876040262096774740802428917927042086163490992141871504001959146531499267261168546990008529461592471613247267791160823479886455504609548649000867611787605861259318087128899302039970342434778117522715708730164078560317472775453452898304570660309133687596869258840725286537557729424711722905801462396435146872078926750025508433439734385487753757531708899413948227340002155987888927283949505379543372695633403962732097546210223838166490582673493332753098285499510146147967384147756141891955033520902732466629831731291098587439546611383066001191517166024298201054459369986974565444961119764104170924641358568632375246930527479622404896657206419873195393712464242689103176667693891847052610287098830941433084747175183439863407314806740284030496076264440276539201666837482106176995803860005565006474062589342776487902582700108895275087276501795736164046126795920311357480777729463138426437055459988748577222337897209345877113292581703876005024726262878034568765778955302401946421676716673182788733758299899549631492733902805441998470343256328432997545323111509772457408748774163984183342270119958286415982633026788279200040549498525466828929182922557887927847306842452940262967013225780867371475104837005011593091472144286665410143176791457964988187701639062134891430474935808776671632615824764172239212316967653434765770200797381139576468788056250031057254310856888899500241255350046778961564153197150729770034513375272337926901780064353612848777718992439339300926199292926385455689387956953512063283785538238352840204977149943284508904949505125806391146944764742887725547671451079846862071866449986681928773195709075307107794955761061966252190348791750700720308334637124946641331583534746413832575585342235749282052961466431293106053194863133632341458023437530508023903335562873341242897316648573583468460467705891526626996960003318015724540539986388138165345970737962253218604736250540859101733214495590165970025110879746414196149379957135679683280799834024653465050587641748782928696009875052009640533365531455284715717106505055999256537620599795247994773496221479709511866382890344552076382156589246448028212350890410057346910047596735554021667543571900229735823960715296725814565183154695878984771997481056229893204094891167852023230646285858358539707762222170107857503427793927542015334530167778956716243942712474204210564882073880508855250929306259366771784691015587941867999632547694574751326412506681153751117195228189030560447750267636549722486606850400920357576962589350127653848925796739907750842066791479544937917629819299780012179001905240054335253580290907008448541084587070935011043966363058522934413217906026773410330258316855936247060553087107307040696908353948678010892492197816317559820302808964721949279595575678258814370827756860846029445815033740874821984536527527523970207307258634519385817152856909355835274626721485396091147211794996122210870253327079946854640692319549300150177524247032600973244110321970271929521329414416733079932585948804889344574931628676108799214910669134764295995082680242231110319107962534697980012801204172670106990958433874955847429704146901990511906292365987118605026828901940655120124648315291946095731741464087215354707595895589664543964356947999415034901023914149348119095728335119085316838943145169995431447321749214120662971850694922346942965243268304235115588481883416953526672333790847707873830698278832614621418176763161048165966869451256264555193405265176255944021088726997369821048089895103716127029195362714858041931355443582221771938676466036844841296676834436177347318431705977051011068990821700046553909228686575262219102573318082956175866973670869696376306524965354313375366782017084470863368710571691866809962882375024840967770363682460719384814405323586965599615124094418956491464129050540729413849214032380096426315807609389276537347631938986430993232206262490781972353986968206753554469107581184849769211600431180839483467459267610110305890930422893177933465962911451805290403569772327285705251204029522743020458786090159005395616481602677382672436653980376702448641186576779192597470460568061541897903214458233686558388056783200235790222375266627486803355205116532246551147866610719477445277257141654601202163121507416044898599983549440269380386435686018108321610622560115529114383966638685538420302628482594860653552738938528151608582814676773148270706436620451717978347784827533108828497933375754624425110133963221677430909581548116349856773454914746874580350329525895461168118680096193679330387883532898813748385061670411409769851570380070689953567508338879773893904767194625952873421966058184750495078090195309164318142763742047354121950759188991469870337363045996672066491605399005059378966835687867810941753416895086020678363032391337447769323319033296484709718139512771895471219231428136112727184363735289152770223208052852247468622313031685337204155324517521762440844301241061133300097951028826827337259743042974331508570697742403311697657547235800564626170702637438505102929308753694423223860222313735324619667052898598110859720133781165199579034316292001016122663738634627995309734251194053706845469459109145760414610236439974208051613479218943063094864596283496973690324716960277496799789524830364432862413130361663756728802845762195678952049870490736544663504878177229758373002241877761994416723244033404751060831799058258423831821948413469372383869894144913115863349487402112685523454614059285262936615444836923467596916662423788258068883957517920038169763008387350258013742210011871250262092771274820115139350152747350894180340053208569740413835383798482799437378707621519608720319958940802830374539071199519501151973862774882169873104185986442417102312556368644741040187014788271897778691909548902080140460156750397424003570535487047217025492855280166013778840014896716956130340438060994635687884058254036260888104927268407849296900196667996664622233839202985696369855838359023792346502590115489439430723978762649494065653280090741217711684223491043629829767592780704448566221289659271114710704350359250271722692200790935259215904798772081869147125142352567929198750873341124260436039681894506670072241933060921633220451008772945370505953263604793419774901590738171564613511575778009203707555970477909810279522973502705580367305929569208681466493725300420941671634231281500944177325195632720875241513872463832161242786762907074789676218370877161849488243139209165280913930848800185805311501539397803908139407988080579477647326762913068488790896742012509148903944757809320971164970004049623182048754272077933693590415548534900210640906340628806536416872483394711459645627088818005923483853899143648834072087235444485972027359842828046038400298522152640422834104432660521248366645952928348951413247907240944057049020311451010905339021864358583101480279133922114560591026611617734205674653342005373953992284927387717454197737195310295448498945438613260294237360529672161054497337344802302692225020026808528603490547054569322230391087893520754085229861469876220435053947282456950949100872902651273637851805835960027345824103570687885654692151659904937330980412685567064035285306595533532933291726926227233899041895766422803393744010781671615368823592835498022880980805958439422017505533342014228434420330062408330009200515048344976953325950149715242138263626397545582447417126306726214520794837073693345547173001067693688877275976884146553652035552613821574298059544435255200278432056365389127026804129775194853438928435479486199457399871125623388142216520633165743453780998287771118927926154831071379799964344644576753709983156094461678699421490852243593148862868067887398278260817203354879753199742874990304593482390726896882987576525990105435566933369018312973343562426478517638728497032675781212877487476295909932433844266035729460762961707667528275544896716155783387483887180989536083171161269565037562842456769863882038662689850624796201946165558962783663544455329839732102231221349639100676584242012694916867343138190803592758294018264973417731339119939879683999179274272340000367458228074120464295157230311537463006215351386681207955870832437139358563766713368265228395581878928077061470596287781497762704380565155074295678863329957533067066106758624102188777612137040628538173710464167265132384614099213824851525157328355167913478712172126438061994648950330750240175747839733588557196537993220523955192708037847867370149401017109703374057842098873674900752047550459094833433945390567821483244731308528124072385989926491018718945327540119540233977795595650627023548730358987153555896402277451416636027661627066843067611610791541064877332038640264400733913170071015625776566283205395281675859666320067635379593408236186416931626301485687285304767290194521557642240203374601238751648186440057525819987239058702172650252257124758892442103477240761776569315626267747017310636447748990022292785045047117530685987203531739239674671673604152823515041706621547293323752727921671454082884454024385910360537546012355363824980339483971820238528735347231939367017329439119189486837492957514475751591332155456445411433039962768118932176893286441094904700991964301296533722842259894790908905586531208618050908645519940754950837698557325299614229577153510328776634328140805102365098086785106834743922289715853198786989734814691596630875616810661275173780231379407571915424982628955827328971914989779103914927272941884173519786090404434485512584995827397736790466061962875438356343908544109956439876346088490227141045659345094683061153657316900707028016729882020487749546382480288017247113588283671367426233026930503344315713950331957462946094060921842533062473532407126289448557421681785204575528531777649337858785901486673544849625865960111140199107444134696321325383472312938658672680291394848907581891596895120878228269979330820320688321204227784823735096136471680347720581043002951339524524322535135401579483602311985402540767367865218524053712180263430241589964977445422279115537891553067965952746397815088271511195494006009059281415479528810866250730446034390667444770489256993948823275174575814484071555431700147508492216811566028765068667908970287175775981843659925365756794293450000777239316765985980639238909924294322842586462992180358474038868322569163650549698832405429101820051710228900932253547204444084893187392980050121802132240199348605084474276062302388237123738524825835603107196445930960252223746533267059164694891425638568764482989820587170528472021772749673793929374895772944606565466356909888103400476324700159704288028687069437429408471508001731045984339375617293634698574450695926606808141159913254497325492409839229427780835946395886956573566051039960782092485285240407256680305162388976469554797154187593546258305936004928890956831790283443976799733768493391827116683806279407919744905391671356827626539194313081416071494095111859452200051614720861818460072009578614138255567641225557262562319192070416059145031551707069644963633720155386294826459379765804228779917794595107637115345986336724389128189435641664924064711235879740806056241780459271217632543450979278074611200118781457358334719261851181843677355475273230798241867850595162671339407169232411456228937177220513442519206560482788051062012459545643937595496457508622676959730051648717056929531184841272290951047338879613726213115348637556165514808066986424954282638923579434611825577396623688825934299351973508237529982514310676145253041013413095962154042909784278340785211416601719626201600460042349381913571092878891814078896199420862701850113358249916195606770467913825411302485353531067067755927931803975458199136808977471301514617495295186521281665250053733526005560721163749155560173007149263545921090959855630992693847830996263245249240823645401031330563102625705945587173792164523017499937220993164840129258417345831217372222894645134631186969571410222669050984681309023986203864292532373541427074862023011460008753408319053513816295891852771814817006888167142231370858454055287016190026730457059610078537633858853443340564997707222887477897962629482759742016652386599433274761193281613018657444256795796590181365357392148547452822106698279940510737612812254106611817170488876979044587320925211534667544534801924141569187671778843452454007064934446878745390422770072705735483231611304872613370636574505733765291138811079073898331901485094406686921998967058613170793380371261686413831689646813553901242788209521799559423600504174788840970741646840422492849738067295041268142152775747214930891099730677770158278227937460588784087964757972967281754939072221836679113002996605787514897478978342595137327284121384423051506720362030132619423633024657541435769628660523395622464933968534518110044938715401075364893394840691125086439519765469278590891145294726427120544534472668731592524627530787440428725378012639269108504263944055979217093086380155247670620744238862312174703437485879009237109024630726863595549111672998869979228715297996033216708847143113852709660950614188602646090475582467665220186386355312138651218144172232122122086485586365124963412973552340090753194536833962760997120643079040176956896010715260770861785999200550624619426164337787197243907544489354141072405324589663277992095428018467745434489631675593437841852732017374737567710157205410460171827035798553109692969148728718094551461551966552484965573053588575305111637318901081590345363212620080230612267786972165643169545190455170747985661733324550296241899199638832009476702921003339976076269769378588831812017289389021218500270322805470201574574926300156286607504247463140006218878808982961965641899093067540557915080414531010343455416121975128909174281390028770323542515930590708451412655898116930976997401932127147602261956327230366386976174734151502746372749937929257606459579768061189474920696758461917385175665676773652883443918016093018262154673779376201402466206268843346599401355599684735422800521589767977939462371970848660827059453200499696230804108862040914512049509480873672247109931076377305738983013765328394088822326152535821798443031222581799743513237930172171802660389886681751998113333927259715591043104367546746944902969762682649359628968077463879995722305567834245037092933802700945183021301636649673267883923243760296981058042950801631707656903157272057728704468690209062833979503883424284356039686088294484301231681605424763167431218049510075436303627146974740290180974138291359925462979427278500721142276721718845149700449218227092940847512243123665694555437856149424477648089493938130101628235105815655346455053957965307836367678987666474463894023105412602214827737521187595278889250551042436149369310089294446319467501797806815767387236074756962059583506537921567495770484298541037704416669911411835655500569774141801324993775948576760076083214663066813755103303532495248508869207831931132533445021696650864424999464713827967958068559136983964756227454502403773441143337561754697325303965279537009953153494590286459553849920739588631010339408053023574294970281569085767761718541285264286345265907011698483070515419450297127767386175875936690774080451384499543791803676542829052288744907287111119755668415956881156926076484426626050657834514554285475897050185567089823150607303438117760212612135430958893786312326888177991426961140677771709471093184008984291344206894380418451102989140917976587670901122813361500788551709701399849546264150419601212984416096212565451866325149559616607897819097968234553959882293503202116299521294222401543681741131689138410494758754270179194763078443473301823669071735781410064048334103218790185473167234630097877072198453141294109726735167034534666784479852365240269946440092295839175460573867862945334256806733740733003421001901750465856662959886691614658314061057420358270140153440937626097421146185101154425321303918364915659966523528030076613170048364016419456831918524744571297767016812289750367115290769163766839237598540385728899262908517511644111929510060325494849248289814823028379393459463992419148506587187903403944472138304259498261189699358577245889486249410130413460597660261854879181998123892226849706387673946042541443569016066724744908574387795246906955088421848322612288567338685837418399939782991953921111603466154377452818749606571140658856011113059010281357272366690835207251264435463578461866027862531728729382349344572496209013973887152832917860037143938267973477570504760080539269073080928149556717686889006309489073357344059386790654878007130302121981476225865515458914737622698041253543000249200212620450004761121200178291916584984113055967204493475334723152771348195187774833318951372465164942393170370370690990811720983844338731444503998199234301710207970745312005889729591330723346575284331506033298147683945849191625730432726418027246324742973641820358484667185314399873403347116042844342281700212187251502095081669172506673489862768339870249834073216027573424053252601629406876889097606129217861180093841451058929558133080120262418062350659618671038227425636622430330286067808869176478527962627295153146554223533297512599584597497144779887500324712449412339756289663610383777399841692083055445802952813797107465697612299164526528118165396188365651013124773258212407400760387546133968400978045900796172042399008745919788784765771890085648999026190039331602061515988569842956541855771495991362604630574296793291477862371432552681755393362130916900328849624394239767778176412092216814575945134298503266243242554286315866438354804418005510044154832806288876181855488548398498455935547064568572983603995098467292742644335082688265225688750228397086483964386155355264725700286246305809856357737895675993735217673324607350892650367039311592159708825411910750473228142518362175829357527666540122900906308560514158499741981923672410465273762815154499142242416208069359945116150313358342738899128568161626254443052856914190714713235923767458133889566132098867967848944281763172824090024659978412454701469526232229353762268969718119478650775016464225771101994950811086504572504686173947362627213599051642767927942282130480112989625147225708424392062735190766185835522313162278095365344025569912336628563869269728427692705622246225763653599545341043423598473118536158902633683334304918114995233540994013729789591926793067480797087747268503015109811648959798387515834398046050406195435054791351689319139331142978577892574028098315119757980560124882791920567824812772991314321648609901099667033412518129030987825208693715679833787981881766928811202138518829313532189455302970800163247485593800296322941591884892682617750579792541953265174115370448272313428154755352745042601663852232641108219578274778104097504968234468599476641598896418032828108130825767286181524392468254452917480102741353127129125760569546233154470082374465801423848261706605068111578703884529546854204731953758895765096656735784028490066276833743856985211217973701960584938899769374260474636935900942826918231887749081753587582970841952088858081104435671677675106806553162066263862161567800157506032775425567948553525403148954114167181576618078708981112016129267981651807952590281801786097205174253135009264563136965443425255215050576025266628792550340903017145120976651099572986513251149847370677414976607439210003908239970036688111733403096608397788537014809285281780506336502159587701743528422433391952663262780668984069692822522174765776266512225691060526195395919733838475250621344900475492659412062131273078458899943209963413061084814429053762878890732520479501863298306357787721199942209770939579996417582568226896128056173018096555746467965861625547041378859893561505960123498387750658876047954811313641428842179158972944727748929225767331306364561828821236996828077008412265855671788134215629603728196838717178500908046841448658773398346216801275193169712915183995541059219810682890174639750164997362457929944889635520580373832217005964378296759191571813109973548613217814919561881149648113296383311128517445059602615526102451994424157743779834253185153476192321175296210236486219901884998258393053844979206011566065595202222200144626257431086420294064781818347817368428736320951427970234341358593426821989181686206627649383622475278366078183453441647709419678271435569179792109400044541344173150277183916517035514493612187928649987093309111682340687446961690380365417505737275554299378487157782714596981255531220144893617508987234577582801583047304093519944635420207372444460420340581005442682844009536986569584587132863644792584300423573757058991360363051111185521516423792560442249927300082384917824884088483869399859657941843459524181331877970533531203455544309844349288363593453128206110686469392564272993623967999006601751474445473009137007194234747890367138472393386860342585384278224154551831432185145241735381508188622430579993541705745761002064786400667075810165663989241964592346847619213187959490652710982406818825543415818283257951634488363290024210438515450983877674539062651532518660341166973862401211589027790630462006221081240704677226599735585540454781377394943316681582195429897885693339437164996178822212457493843484863425433272697931397337636127393412920940285990271698415273420085684406002707120487748747672341981465618224039992428197757466172471339532575872774616452059400710436496868075482282478957247973772561421094472389651878541108742084874813388834881072440086515317880557668010182115147571049061702936715411525166249541223970920602111697147594245879136933940446818727650318073516134507096354312463472740277233772731330194086940461660300895238152283209141080711545348018768417826125314841731329045993571191502079885447576188746336285746865017459019579846924023456703664409469565916827195375222711154068605897786441498821700418219339829241984859953176571802189553484325791496213160859923321981446726960877392702847074344163362358267071797435044396368749111117675312360492029554471548739746299743959055720188350601530299188278962825742749613350790955764458010737669488746701698523546596302491506241758925704225968620126680729480037974424849373679686376887939072172032336783674821227346189679041890154491106962859338299641091849183654779253266504136110030673544071424727237274593786524144598537056268729130185522246932789376894102896420628573292377761491068184314410999014772135298200501654634922516795518067052171293687819299116871132921491697632864096693751435824034489767364370121422775385839047648641275495809963835073696405866409535459750319860106403757158824295419211640362881414557197619557040569695011315108044227539796179518253485614939576452028757853687022926291673459938638720954271757241736340928538780293173956905122126462475768416965217718358176393270737964310704812466194278088804098876024005511990572270237250329189301267894934599005847616348734050474546633277007232977277703559111249076183853608127238156106477876627176591905482941907274233237940525431900517422009462409740159059029087114834695906771344969608393883787559517432946681317579411407637303065419690651724498917553774529429880427272998395766603794159746620948676321451236938838763425566559341117392753826222116271748405352554994702154103637665387027878865545129522904426439588529919526106820805157385485502899045820172477804102331997191000844785662508485767954291493873945142728801097419086878783382776685866899123454270428103793696934975118192522518422529337078572751318074914993777241348877182615738636910748756528799237209229016033551812100280943059867987412462336567663489342156509463605025693623372849781686756979609371728659489745463294224601895090471760366417130603958627432214587082194920699148712930993245603262197073514027415307799881831475993295761203172957490661002990509716501675761596097792564132237230139277799786144319067591882605057737842093851636105323490963192851001419991876291165940224543362162563007800287529571703444938296889500761720791638142949480021886125655703378882086180860319972259111036164117486623518227317783260924098291376708270684672171380677138291976141286104943386638154437963627799377304170068454554168794192068722320699303022035794251317105593784849396757575054308237611193935159104447778044083303041047531432183694917671216706083675242431605391770217688880786668829250208480607232559067738335928980597839161740555147989654901551019387634038875643772224280966002572854182622944437671180827193950311588334202232931663978511446250608426854672009069995232714870668482212096556245984402257603820380533409883757083422485890307170369092362870850845201660320274021658059774525686647203260283684666036092517391292336807984022575713711065561895681651758744244350611127804482347628224470656798540986460007376219321672971943280393841585150438330793930523692949822337010535161001952340342922076365460227355880265179826685279006714156086619356796751524815760217871493306583155409270614983757111231174339580000239114844098556632561662170786494574255966886933221713835447872452160665577951038038436762748736889567888961868570446882772714613234085506474650787500224025470423286876950516564928153064248964498541737405340578256471805053733876199330312951728405660020713560241215805738533704607385691699563886428016511278848669364287791526357641850631945243610811176424782573936386331587514009658839574438686104073596749514963692998255465500983432526563757173811734953063386426336464560184667967016176373014388998832675137299240665205430565730840645390729676653919861666622198799112337087874906762289936675871807081409054152162267300919312777667577830034389530179214994873308512892487282013563632439565548475764787328156222619318015907847933452890457774166777985056180420267147333559221512725056037173293462399888409190755359352053345062804665280822482306490602226161039255127544088179840140043497956925074758568583781212057632338300651152381878142399440896063840003855625937256227640346769417616939559419658223335475363094264630664042864835359021454983873970638394499622610222623219602035339046159096926284233138494736563495807834159624230526056448369144191385308800708513094306559718131332135546478086822765953253560810776624574235116651876094258585838797323537054333847065322930463798746758923813032215828224488616240735183186152141343269549523607304057218566262824312483575206177843158001194553804494589445074596948783206798206763127857001371058101957725701868691245692395070238806972698252092157730466586156481856876148254634800072748435271641309717656378824052474141599820548021456983831208617780599290123762048054019544721063643539831341892428873674584491981802261384205944543194186741748478171995009473660431446514948264613775422805407710916605376162401527756161367362767698297845526589301193078424844095598981341645598134773893110604394308549951090892332007957214960682073002961713656940568747135798726046103319967402884291580181740667701865833973857336893356853729802421633318332574473943567874784490838153721745531821828597981023954329953457251365074558367381012340157616698382748191908634275174041564107737669460932587303705791850301323688911757409775821654436740610091653807095024984288178019446921786308771357073289525239519002061666917199909765682243072828354995928440351735894800648332666516836008184573627727314076505252926255035418880371179814013720726788717542182927843487658982474838298397372177711151391418077296177723107941930034757594959235755161928599494301932667935043747176469121968237070847352701285264107829317895309966130517489280509822382427677012628689766362631730341397080495020070340062360370543463995062336536171661412810644036392311641277462473100916572605455059086357185357116710128102452610552858595677609933956299036374621314222712868697370929207067805667758108606433590649193510739096994799524177548092997683841287099199976783223999879895147825529367102089139810324901058935832835820645152187140301881617953082996489257213254574652470868998545783315158835163001922836726586705730465546733101814978948664375466210818163424994193132662045318946210122925972461827106487029126742924316836661705814005214615494811472159384826999988469163950795624550611951562149483200690805364197973958916233413080916599492294097815650289168467232231325558271998568210409664967267871560762065047950118925486830734388097421599775847922789581605349812107401224655098843550564264296893020584037253711399035735107399424863954354119154985709642009471180937467745506845595631758487613974487042552811757670114644157449292086567176816433405577494936368972868898562274893506465687801273427948832991941999740417524997402309827480430000270041567254899945888360468955789028418195395043248701674352167911868543747975781161036709245502609383637631447130854277384999149452206045487730970006821396381027892009361811379776418035687752244307342683677025605514368334565422625480019268062894575393529213688354396015837916904310829398895126455504275848172537168114419531376438646752866680356279083895434741947157825825231126729229656888022958553675313902853397201863832085335925117398990230699137004612394128424790653216657215967266267742797050792707549993996222332047811403678567416808649775887671837108555773264405674970480125430050826429038718884658854643440468948110016673397405678804897304658693159114787594080562848979781431157173652887875333937175658942242415370328762939587284844178322538206510940659453425754385179907596102953748928049898744345015730018947952077931515118599674000141894889434865029456925462146622444630018525670901171421283016094120806514735646766777409817957795489563782497232130351068652029391702041417361213833546856767044346669287446215237660221773128255076759684598486265474668229552087091173446315006727526312266953921707243878452853408897963675265259964851822623618508672873188929164074080464101702976194287487065173564545590808546008445302458236718092974092250849307783864892881647020553213015601955910295847619281418122267437446633381105945638055504337726895274748454893190356736616281016180582496795376392364898523664073172918889392887653801860707389048007922163028269851368040556478810824727359273407092737445186601535045184887944721592144920870005416411777876186396984968167306634553898931733494106299068158825816557964566652997065010975863143182232785734902705339205362559020539278878509140640458033065848557387985598504375703414765285492974378442254792053308295767109927167284865307950134108245271063991487592945488608412957277058792847373778745339204381190787363737747881368950608055332024403716438000505571415929975880114838692383280846263717754662975616816267078172138674814362044023576947895521285465400301394578561818048610167303736510689113297347504848122312813164014574876499555813781211185151020335633676323277495538565527608838771748819117481748487423518968114061356344206702020438983363493123056095770504991990051509737931940824790870020110306089719628388707763608914350108780360251957028140531639015956998721495095629870232904182031311001575805956835581004539280789946465355865045179421393213628286116338485679642303615072626866787734450286416344553646477915849564912369842120818861021457444634589603494748435165292434792207052100737091539223655844605821179088749805988489524986880152916798758083071668317086902224845697978704661741953611758461986112873033882819880758191350140445492779251231013602162154104548679757275016336025244306723559290981675565589121287656409490369722384096038783076840871707250671504466643861139908292694931820421407707104456649073114896058345145380023066719798277171091477331727421356856808837122012131080987411489922262798602771803850738558673736914321993229472261441904149761896227911532314066421344500358342692041251505971726903630953402287259136740398128219469663058680688184906680298317991084653951726452560209392969225575441248250780100372973309600256699967541251395461683468426997533616851398915179963086047397800777754530240663603117921567652857726233210879137205642679636372703420036052169496003145484945503898908710115449867057142892775268359772870856283277583396009894109390433015523634296277327997589689092112053363116817114597751923460329021663619865215694544302016841138000930924298213152641839686073622746926798816223494513979530268468523577868352857585955517879494065021331914959009918577793308386726581817728011244139654594877620966626416492480049111303149588438475947800319953320215645562045956433483277955305648446953242085163161535030965819344678333559398068892329046335167364459904207038970429993101366298635029615034384489697799109824628052576701456093351670373793555468035849618757071785303552192067962485009383238097329272143832799260984137952914022098512623492596407288501431686664153245335425525051588322583621393362564907633805699544248584634845341332331268132147112865950579792175147300250324982883686235728465086830264604408220731799735364668394156602444191390710430114358527569830464788296736733682800381743653574020518361495292101784311922413751290665740263116634323259731505274294331314181354722253096918388439401555751950770844015466937353738580416714057204759841939042948966969549533938044659633961284291429268335468287830281741374127692786010979247843996221835652634562915928530464849775557455754558709822687363217629397591111296979034668559639027118001375950516179899848602969978476945935747402794873727489288036028360540601938859068057482979881436441880844306837271292096706920341837617585495709776605667302999938137957221267440886550893129528005508438801951863075726913909212401147056288402174626772056045899708319139666013897229972038109250240995956137557821083966334858619625284995183309394523821052648048831774863239942831602266318481497977383289458611024276306948900896467562571536061863270984830871390747764504495945878211658706398666869374032488845300462242323539648161568415344519883211233795240853378700210072569567628943723420111962003891231278481863013139021309133960712580701441216875994114582879755803200744070380699430619904780816073781453203076298341466725364324984360265693690058175848817027016103393187722362754134467345468129600255300600384342356008325967281141175549747419721177614582523219760829145364016133084127649289512966167599164124093335246571612100655658555492637217679362869028527574820318297278042619379362388365182526306562490315570348972708858266047434268479647239434678026547287126745455858525479286378390124230162192587253013435676224158639879491344067302099937582669903055103611407027303208104052312902361162769090605379604822302252471666946262769419219836623218990497210493257396090270572568712872052639983484946746711373607270605305574055245770253739773412490682125704890292378212667602525322373656755915244391693432674121479396727486990790275656088351468206634840483586575330109725740478882248076032460979189475741128715103483705216043302599446198090755075369572033829488295329567086670040733718454713975060917503292444102789206308381168371615304641927093878958224983037542081502700528087231877024856819904829245974999355677775148887258991361544471805218390586380797472875813386215382132063156300547710225270604937414546074065981760263823864150386685102614414381770685465394847832016377560045451378193682344252721372222229530823164447929124037158187271843607314044801163170235490919867531440609915582884581573450175610787634313031109895139950148950192486492000477567556737931874920549722210819251280317625923792253465788426454391424949178427026294453741235156487376351343453685979877124284827714998773492661050804773030536797218368336168358053308665464520944725172118462667653420357610941266670082631160324210445765232687758478896227540314609534612975478142841949521098810450057224322919404185378514672182578584813176921159938431589815516375335093790469480872928074442850832846478153002552285779711547340919036770069345870515708314162074927663324594152264116909166239538224717457623321199533420682798854819585961572514262272179244054114409330875057223302558613955431043500276931366446683912374014604327695287139423395360490142836046632455545625601227661937573822533822029792856238883288647698760823662276305209139436834325440093336729794925090447677101686448248040786103152378940132170639743342806393981544985338378054373254208497757271754997881262798158899171968008419032039130485748074654569570156708220893809826771767346124061901011768341480427205848367754654670045583756457135201598247697642692583617188973618975972269870831546557351314811653447102637589324016249650339929996267988029347473080118145535988079874161673275905231943779057714255042962829746162530693228185771755695474112380150803789597824274226035891845705694476315514132730018246688887956144240906235972758967452435034510224437419893724264552558781126398569554435091684351188541220349591298607383850685033190363141346655862081209850298997647960479708777955368973839249169581852969319432341327847423743437218677367279552542454522711508842239367040424297279553143735367936376933215364155533831377719732162017220545541623404621555194416288051046448065289844309888109591306282592160419572104173378187797273183526985250896175774856466435522326954839624724062187564262999159570444336057077123331361675987197120477641358925117456480101661658524412159465657992025406950349047024687980707372979398015443664306352009864051102383789034202609696086112343725128488677865592569419722989257885672784525431958368633409395665194799058049837594621399093743182092269514810683222668379242634695973001601655553465597363876773206551592637033696235349689080859640520649542552894600266595183120721549495313222490901229584955300350230799547124703234952742666506014926492993013090794609607628934818986293797036975111253878000918108843866957661854335631948105687406151910934149036267555803558601691904138331223568351348722133853462964139888860650277878457331919922915571807535746008055463385494495683598339792226448592656383399704727786925546872133791234932207893634943821687793305155934880794702218362320789983021445685241962717779597916399379314382117051784217220285877789756727431471981126734081491997654332134039584322055665943485895264622087738840317765933518124214605579176362833810755545628718448407971014528708106900642958002648345996435677732562272052921485691955245213296079007426413150174661458564611004862894103712641520642089982628850259813699032915167057187883993610082593305417985604000516793180165083903597918095316447111967909677243151035631406681498423092374759996479972074883389729262939481038618658336966633926260904156295851909773625437168123836610772232398464827053798073493645508118312065010760580290363247172080124717647605948225447690640173340991537499740188911363930169119959698993027870605349623028186305080340310605113679684219007693550779385551519417111883689271810576939892703775786994007625402204490955416000796748639276562341979990829953569058357236822702984510471866344866434023754025434719387894988582362081366482528652015359520422246735800423753005209466156455368878301804432110937888739398407370145844655567295126121990611700604710661721454874397466351369533352593370459400848883334277606022149018868918394992857954553277978765937763371409913663393699240908104864091743413730257963532678148094550271298505648524160299692394750292074543023261183820373605698612941180962238585674895045844396255779553962261049620192535841623071471831328766561130218747407694273649669468678636327806596381978252280117754364453666109307872314216950902079667619042433059293123115396587711849234620947627249280818077150649749321685382931217873883055451120215122808630807268978550475511772236838823885265665729270179762900979984371261302855580042236648771699174069910053619355097536778567479733157548750890441456876805822453707492334412039899022022183991768677907782545764358977748254493768569489611142816522640092267110990966187594331469936872041708578284921515770581732012305003548771874730359608862661892731677423914018590668909506883562712794392225752549335643679934980397732941186920803947671792126069811114283524039046459113340782495342656247968592394178578934492612318304383883492157062716342633247329524117565637560800323828377606780248759259492579268319855766399384286358324239891120024428664293138196297677459352900653478670289476361341844090907717497007451264307989980652824114365765035027191254571335401241184718161778908115172967459159793481937364081170479630097097703150761220296662218340141307175188388817148198044326671377473300785333505507981240905538465422383630541889767102857047859250744385973574601330967383359019034904285217441701076780449384944564719483343814359062894406155874956461754185227034375889650612420609091377974333752552205068783311487403900402673423480390209125092557329086733937862042821999513034904874023242274297147393407552634912028520234061471288997674104318735257394576725467007965326275542571753912291489106322291772621875542884946166590012764668527574895476674150792468457519835414906353608349515289135032352128768176543374617589857090370521232470815459029913462638499819874454228700081761192833007890051232762554409565021703761080075227307587467906452156142929766987051984589125788429792967250833254183403802689623336776018804496534250760489407725624344001750634990295075640691305390181378261728390049338398690767800955236897377497552010842057392217154536638962196551626775779703439838545363640415510326048672472968908238826929318310200073089156670184091608264697871458253165563293744215920283839203425101520531193752793447066544684081125250629114751173865614819710717650911938491428226338617530520312919342748156697001419682938090927307737208208491285928754145562150506888930385527472831200509318723359105492288109975774702856445306982023927157804438395972821969452686812410358650246936690679570639036455741354982758677378821706360514251039992950127725848106648537763877897610831543348694495617055927912777029391333957152210669460700058496248857936517761682611157417856116378928458902991381630936690459768667018654938375704671309043627034165902021937393923987728894586325392482084686450273162506178398677505973833542708836572580816889552241372907803308946001043762668323561606573230150945796861299609727606798934788288417190575018223364799699238876773707823428577963108891769243629424244712089658833648905506553484527692763618485720043914205043174966823232705595237990133885087083175425776419166623224205057678394009112313033842591818217746895418664256881313125259706945560204466044471496803605508642158681193208688738748203618983275249317064874239825007710504914346772407429942219965513212263955758367769537189834903494772367887731407529287691680578409723150019305106481756232553855594498640242855012691791754009013464060138090002877270604101168462128706904093012847567569937658591799275723205083680108996075089589295127425338242391822928728672248209986944679184630569418843190202246466676751923349585898573443119092870623197752400790074408182876653767864005325661414115861454096430794168815459653556110058513137188162568361812319871714096390768930144571167086334876438555311253168907499721730685054222176109193231730479168514682782976154865927547453971623811774695278136801215346148478461291547544259536842609926027671825685405555121430887113840410450562175733811002924515315825875538163240820797199932570141652965881584618931131344505643255432222673820892611690309641589223003883054759281074956962054194219209444823914957998870797216916906143054254763529855411560483468513140286098409205935781188650074020547888887686273250989895208132798823990192357631923974466191264879971831690454044091379405793119737014718096872019423925010465360512000189074527059396434478094810185424698841187614542528445459766369380573880473116882870084942783932305432381881387759426898516428331843887128934082592492189957717878662810874181460819988800738301031145842208049417485605932373492551363079634663652560839211204729535641125223807195372993939890216407501761031742898430512943555821742821216781641531461951566916980945207202399917720787687774312355888905383174563833328947127346590401691216758362464010451843380831328469859148986944885164960950551032047827854522098951512923235542831533860895751613792169602219991385156508704515422394174499874860217757878320173506923928287253010452519750403906505172150574164661294493066655764030188063168514743660577205533025145241683592320102209288537926613384502533517734966490053020534645775245851446046784019336018192500682581944928712592511271506467979882513272318708934565569439069088391848236759110948016429646852628650968102796752439254983873523789517380386681558308553733239891117153154818286931445304591650330559613291177880312152837197121006182486953927725406268367708431551479695839779580286670379241065495576287416119702513046739527451298633303686327168691465926279325016453722941884078807008971586792195154534053201670195906622049577604606396579641347497435860645581928271752424307011818558899211964127071812956415003012028004568276155959300259610718727752780084216132323452017716302494163440432452826321612121030997138515361059055104222746953019445737779737891906435356610002383715841887923443682042870490710860813992898090334425419151116828410786438124425443834947969021053493293024550841994073634250600714399779435618416401444057220082554071829955306149235563305370833967947933320635075339993989900620450868735410285500858412216769628854464169323235732161692451231076671658597788980383310732696502572210158516810649523215832684590241631704716637080205192973064989286593143701988895018326336461245549781166479261410757942037852634171948492100713698876904482813775031357370279178288699035552722333180782319456214928413894723003690114188676398853332128891829521416079074159376439976702329329603368919078793668280327246822024922723889285471774741558587719535491426497843501467964739770092432149716508064567677706911747401630157385346875155898159740777690499983678748259818972981697651425373009124383891420809139431894485946841269370464192595425518935153319800287699390584916430187520929418041885684780618023027969197500470600015611083778942640975089326881667455433006199083900657933347162230524517525935971692489014341865774514375395867051574821350210792845618545626403342200177738280828754837260351967925406859369035614611186064784051150169308156402602411512539091945613759600554902913886601777350547394107087460651928332491638610382464411407689461090555320349281275944844717600478189880403986412393011545016380387582852422715899729347363625521562303290270689382631263640982952088832243258689634449037275966829365353392143350209422044154364954993770132517559347395651764093445206043538630870037666686834606505133577133728584685665633539640956847238267701956926193057044174359529508925275237815034016072858093313831646565751329609786834773684955305179389345671827793888854153403600848696052062084360481916369781717495815025652457383709026445383921055829035272984780433759979784617585491851490020908678124048247078303628135971036614299324443194043447314042260448646689502662636512924512683709381105710849614866118464514617103368009473531827294122675758775977987064697615077746791844720375084832291902974000371121387707884056845809008464022800187869559465749279272808822279276036634961365515372716625900968331328083147748035285039248063228013178446294598422602520183035267166298338147029401217669428185291564247281301495910683238858896814991496282428395050353700879398195953321398291246489004432678193310138193069495535201877011180904572809507220157308614791783946533173168520669681694578921745508207449519780511504482726366238851247855340543371672751221439087499309478681391188912116226878788074763225891947481586418111198742712798807110250538271605177619898731802818165453962885048335393089421682004090460285845953672207850828939290380340265529221004887164382289212062918219940156102179640507863898451743535009512633466891361119219922706691436267334650916883976728160875699227933471113477764277974388680665298501992312886069736128843377034629112101845890191774579080577341572840418127317355529273881539667852998980282823333189625857707887965735782836729466228131742877410016929020194802252156257949398374924822526456541889408433036268264912592763495195357466945360807285828817751125405399846942420931031157360156490249541447288398806004435566110730381477649283878184726728045106001616396021746484962372153936250921394699621354171036254458864497938130036391274178810048739247937801468469367537315957968942523037116044448072809994280379124657913623446105238844111076299922092630684564718330389324984624035073694216471139428450638358669819805809725805860031545175320434364953067672409952750649472890471197175679179780842290806829360893291363302366583685495665353461999114214381386968927331284004744432564780906318900264583049723351192929464721669821918584806169200375011404808854502540687373514007475014967071174733603637828083963087183825882184289467306163461796392172448699618762722818987159892917910450837802295279302373539290334170662439184340844295755772743321726105417509887580701647490602386940283530586262438846625136790493311928850805990766918059847980487820199708873221495950559625568945768480146441323732992868630831584290922177880296355285150335703560689439812298458296678463793368817927635251428670301307769924197010329211399284841000798275226754206413239749901406803895467079054442102042743515524569009945406629153817055595134156443482292747930386409820285450268545673347659295819674570521626243204614392767773832996855466697282380536532900433596476367071112851605283305721578534846955816798326639981502109630926752534213863709176123500048476950566073015285742325708144126968453024487693629906991910585761771452382739805082512653154967328442068484092731587277117044825436599807923164700473095344037300626991851785492327689457650907052560812375832565162009918823125640142027369628383935402145195970203840581266922306582576436259044050429343810303138920075831174194108864792318486522937304601810950415220190119732302067553986315565963383063145759058366932250760661079251114475113798507721779250483466822573888159804318772828872397163232114649427042615261541014133229729857781533530969597498469231189289271546153940734141053589797043629711021748786141104995472388751819804290740999041192060110036552388108100747182464740042009999775242074017266753907288853659759438461375297679283750974269061315933722488295982095658054181701829062183200865429524143432090783328377482658794152693027643574143814085302875275722728023125891773174961216479744291772765936596524221642129648151762655452912691999436944323511778900934612395396877503936913421027689096854025850350219969374922525271128336479271079877957134446318939061698002480792566823283130854327580917628778525466751365594910529030786028769118569016924294645956552221436017687221918369525767907288828185757451002772886306629900609474088294538504163246758386497020590680096351842254680638148580768928417070287957503614345728781210269766898841336550427233919090197485882140869217727048326625132524272718361495898534545119048757702808512020646004090449243380383104752569836544432423779048710651800400883434717279224919715991412383233349174037177909666972089401162116507046638795795535590409296585333816524316693810143636461441519534001240602824194229590974936638244232837870800165899503406358446645726590960704437770393050895137914360151700866258320744378555745530986111446939931740128926591677289021235059057705281422984439888559028430757968632749520672466217198071011473314832653604774741149585655225758876217311841687722614585611806170085578062200407390405105081222384832503754970113460500789974809796666001475808825304878866366659103091200998676606702918260153572226131001800332829422674842245916827527665582419711293871015873332586489796072101204745546154680405788899485914234475318980565085365668329123908009824104326648270112553052528833374864848240434974071526352897772885684506292150897575729710279189920717591113876849019058415693113385276115294571614514341119093499987220182371851153985676431249467568929206024945003061764864782663005760298268550592839212950925892110822930484277406178015804014632956897510964089834401693434017322934709366925226846458029974029143130028651927294843325190509374632166276360691141356069206632757983994098452155227298807121708963010286438515089582913259122555686145338964872659364802694821248754557916005133750932171619349907340173686631069009549504994890436211706484751431641357962923199974545676501711130394348763858569534989191518544361683057423245201279439408788415753814910778950345211309528854735973689707268652488549135751056352768829195950385024759353726771317136734653623637224641602698564894808797491402549968821068604425568576929433430500072180018056761525567742958145480849372790907661206485985907561818845914246835539071474211167396887329285290739406102424518334493525774011844598916402334060926177281142728972505594695658908875329049172822946509175528819267666172414349003305965248981661378024559154666808657526241150752935840487686111069388180169527578225084029400334940773378216407408611643954887233568306327816887440835515307359844720219054200271214168020863362304572217830952656345699613462070610164117759576977961300662221031016929115365038107505310161468692662406538261581471194991489746013305637352902909903698529114852868298829135325963130193951864933683698187217694354778136785561940731972960406152783500643108707418691872610409313853049179683815944907581658375485384141179384768467678407763264731804484861467912150611854423654441558432125224256309036278046401152884501498560795052126388237552430964726500797224071596171676568669031405975899159404033969371271193264580807152546293606216892475821148073628175388926956612504123377800119674022445991488836654994023895117439060936370812179931798106621860793761479883473956976053007453561263732122596081250813808990131743343058529856011414098003916604394632067678083983761067715052743503639059507837892547313075182859144029082577606092884627636800241694913917496783903601415425544555831235138200243677155985404480727656700214946669045014907917355127132058284002826053328912346440859785011551758139609102643805255493743522906671432365586894542275231277727170822056117317841805977219506576295751048248203410220455388934639524746515845150179165375748391244352956154184527491426116812885940141415309228143822351641734846966943773921779744125242035861782354163846176210399602688872781813557837327799392482489552449879495408717447350340971737959408892362806567270740137347659589214734414722450491510998505278258153070080141242730470006233863278279147636830279799821217578518521043908660523158367796066320750762467313246147197259837131855420963687092826565785118645588241282838928375159886411966585890447957997654840950894526288791755574739218351772964595963516220647012297877720312951881569480831123482397045907021583807435325096443581965864441567762958825919262828206548519954520887886877896025081388694285410420634327700222380129666234473906541545659373926338913725981273044103369187405200036253609939383413003088691843564177577849239760014048328403716736804281749111483408624845118547561801315495951442504982895846640024956833252136869784477252684917542652876637802718855952159397493257438644761531921260392791482346454127613870839224516978284181077269287637698130243555278345715243814316075202838983800731740966498167263252830438842786092643921084114766727346576711318996717504114161316249854657691918457745779938420498009267863069060801107167183370450228503441497059576102093346403179451277649667005817482265660704681434147977025014586154519496274575143436048934517708624179740886729639891838529953453852763648263161701664978256913907043100723543244916620412678749118272246375365955014633343589670101601402598419478970722575980974067548296589033768330213420438577378320993219543636239613143341759884059583762582524757983578473263375390920794269750975837443322779499600062238811772305253310507692181492702073491966427744047567803209675274073886555604131644017968641732010725415162259940625937902815504095984256973032866823375844922217675226973941153910663116262466869358669718230300862698984187080286751314673327122289915635299844589973083028970932073833725312152022599749242352827798699165960539662739105747024444042338628869511419749638493590036778679876549403001455008543657411756502196880264816126336911113116318539228375805078679328533504088720127113393815873083508572020101915259513946800116320995007216587285534633658053378879657321556259392776867715591433532893729284330043041381097182570109842852564114892588679338666702171734368683854433796715675731811628057824350171225920439517000160550638470379974810267950450952337042408987450615444453392359935034950832360262737483514138461528034283804254739720744779988287022460932665049378798968819145433146190224208390255589074858642323522507850181684513358273795146516319509836686226218038053438993525579813904851999051991417785295776529816760319500444820669667015459105574111232679654523638085430119377737876605368301877711457194486009534223338166793453492180419748765000299830444692233228365944096666091198116790584199759581455412805346959922108368748627383396580251560078140177126026758922531789992057712283036660806032620176958273731881897144265087675831134846098407703313385923179798566912304765637804168807764494802672646884495505931554257370099408267601776432037265792621471880667694080249215058169773544131400175488802578586066325968763844956446945229855821145190539681071995421351298744768438180530518741775737318507304355589190133270421520597955143986741015294348860872712631387475754248368295512039213640876711415538176662744439749960317437188164877113415571232338081124234867077551351309458596547570614308539730420602308586694964317420262948717617239103932802823064296528597326814361779375729102285283085774951861719091070569694813998861641257512445283672218505593320193223666927462837080704251599141584775272982772567168367150647256100314663221385156791057168584304745316552715135986532223574409029663719037567926000940226265983498257754711731071070782387783337637184424264376369160518668421484109884594983158569801566708779355266371801497135303586891385705731823204987008525115377685688326336418276624603942937348890206528968255322987372626801835002416668917379920112442850187811155892205684435206632696171730553749182959913392437960648613866006046205168488826938058758270699579604335648512980156354364047107635184892825988694572150781733022481380779905250292135864666258511189370913335812539417839994203666836890669683562508907620791302685221766939794300364687444538970150767857675486330288660128953252989318299063873750053511860201529685114926767538177954252433887490881178399778597736912004777752626422968644134192896308277891544354422677274794244081580224734822897963609956756473056916043679590369104759475853746403574012708971761916206802515652441465441869159748833667089591610820454719985527152008551276895215942866867248578577046120435555925435686846283132181982248283751373672847884898316975711035252091389837114660682426490666481827728865482196587162449129538481560051324464529294978653662140505898909980494918683238416946295399724971844749445447784483895099682345922375354322544410711083058491083407041037328136914001030753745251528346535296711387994228264282322335299966364257129675962465077891522778387040943629291373781164532840010384988929821886384200441109290196542437889454314651561260466014685622561237519877883772241807279625448447282456442376751041504169861577173660566969743658458330287353438133766004324302373475552308467378489669092261536639585255256332205159378312732491927024937184727795741821065416480795050392481883400259045897207484738338582343115787148465707262110641318758630567150953526724599468900287692166217759917776804709102886776011311689768418152852649413034402998153316503392357438503487657827498768635743114054811511975441954528575491656315437175039538151774219530411420235098676133058849598126556955032112015993057598895309553546172716742173805215883326152107721701893779422842152922191211447355334086568254824529454111105105767177355919701621591000792707602338724499257611136839727886714064800492402031234123344613355903999623831723894705012691848884742575637284769838582107024613974058798760474010792813314126148303241495059712889786407472801253716052194107841211412969085364031704576409548574926587837630376206378348344561188541577876171419276390298669038041794375501435990954179002125363925802935036066734062521377603769571050729465353692265460377431574055426602148591310152023177899347888395977796993371680600341064472119917205426417355172300946030380665998720558640642721711681427307067369946411826903835848944126459366745853802404077768475410651559162728194217880651696183243455246217868787064940064755504153809618805316190882086588143590897310034824350471396922035342593774670212562542414758084299311722578481046198555871433904000704812191951510672693772321806999566492241636136977230695246167820138220840560903394677156805800323090823495196676717524839202721784101158459493798388378005096724988186268095784917938219480172724577687927904411975424870424504111790035890564418496541259234586532866180774442418678245848000560621419042385250579039546477990550092998453459520378367112400729668114672788197638385290661609189479832555446512763832287840839559644670779739618305529701243398984197723829649586886796206082046915668039475738685380602956066815029785973746097163370728123869199296728633956298531053196561714418042818299817668906044499946523472631008431102648385732438261623891466903793794366359894122997545143667290935343106177739662263960073024798184530853241297056047742552461048621215659075027494699851676010412669159469052550491346951871307480062220113076782799754104837579104592075769064145262336451113377907453373597365307635973605869019899485835550925211338601631629495985803935606901549224916400981760383722702923572060850366904113356024214268902649748268125734766405485703453451783312876338201829498913494433951413258148725685295774752656492618147494844314305357978208021906463515086779261564043574501614270857497596891416591245218231002563320640343543199872639636124862271733723361877316049997537086474237078663673511689206941738842109443777046880701843009001223186830688388016181039733962299988059934163996831349994973673654171839923582110924387541714240665041750043196349086438003077791746457770580991069441565732044343942490770120405077031660592904764964297977935595830638080452383575212763766612785069242022138684723868125471587511397344445428908478987020894721270219015839984564541066735828281903829192539625167898679439185842778389013428684880030876805446545743703916440127084288256886987662799761385170919836551143783865213841800677264587628179997491235742798099342172175830853535137525097485020100907658371466315332802459845134479324035843042006589227353404128695764649451884608848768630340134244620628581754427183604483558037691356140570616392893360277411557801313905795752160543126810371573672878024131315907585333705983994518285842117806490695342707965088140210467976293816956661558826654273380627538117768798614992313538116511226712443043326876372955662592230744080476025520569191345704172041972611134695094234291155723626801250594509642206078152513064281953380097666395378029410934597739999774312546944119131819212083396717199683641877132092136966527841493149902828901786298411556877922596171778331500916472632970487711842003537279183603283651652651917996480222943908554997038523272524740106900196887114587913687513759586017683580271931062857393226330811572950941003042073669421230963485652893917436093416603381495688800977313858644164495856740678838230437596798754176706909358859108846765494511535997642756101799694222745022886331797463406577263465820846877733915368886675247788153286498688990079017890575581212132526436851975629628456179429221612442565833327522334868926917636633739316379737117165538117665574156505036143230504470956519428436749464266402460498363609912999302453439976006344139576215813110221828578767938204334711755153110852544641844493695368573069296942139164706465603312972385509477982656075917443517989336410876588413123835820114829579171699962485558841375315692798455355707706165825980659151530817748277356852494821424850676057106310707806991653053675319650080100107492047797920114849385740300508631973090549065418313036379131849207149676018962131610723939292926019521083456223322782794739715883538567066023716483847124052128484968458443977425794879963690174541273255864950259690675154222746479897245892531383045984827459025608577190889379563113980887387210848328209806582074107037621736841647754905267584339617510561137904426662721081598835907421726298390096373275531918200914688056375962197059648958807822279863183109068502132670456854614796897341111338198597613470821825823499827094106289583561002844978418609646301502704727077389225311179078264480402687769845561432688761722293841537923256433614333006845696140686917056401035039166780862534958089460749702053830610269639321176410723855242767653789446812783466854557946900225838279805079422390457637589802521213595944558027636340216338901225967152752045760554445516087184142842390179268001198508587038112384423936940530791380420117294020146581513218139509573459741617297946754320841226861125253612938580538982488979439939044439582422672176889111358331353849888138278831027248467823878787576354019874377905383945003471578068865230390504376117731117299213812915623453665547497259120255008801897413497497123080152948690733117070984867017756241755932995014055564188580409763484808759545583751781111282523830518794254855482416732388266417172086892263903602966096774481959043916323718250999394056349081487554263629918025885229627599541144364284401098050879740490144859127051902047711301447103400557576940015958346569069518412374025631135162556073549007214985457478577869745617689907915466210627801089656909370287636539015232971381183931381277144387746667417525020821444502117279821506753792732468977781066753407219328674464957200211241947777082140065384216439074842493615327081730655346711103194746575999862602934202687832601757285238438504170000639347225233705487152881044288669785608292699407760815686312385190198791267088176930533814934189097271699081215852350518112117157202390297258846475591163996434820484521198381424033756374543408576663828684326650058972865629875946725865026327307098504619026298545907654091640287530766167992787687670740979840441379376063373664562627098182260275532695113219971087026995650245543152933452984820263093795278985522707976384350222674118124221970060614782084945533890631278773010441067493502818548907699773101118656198132157192313758938322332824629293751099413921462208082497099373673409146890212808178331381284826425448470525170160586420521317362901968569435850905455845708541409841148513431747285903029480481875833739052424572863019125396316285440342570017919336813641364251911276324931237052418256575224367162983323347679417721131997181666458976725001982720433739147075097163464469585578248440216341932494506892339888649676590092494613637042782480156441893561215215053389541536274404073979046134011215037386185820926470959633822786602188456844067567511681532952319940890857914194433088845469668775166217197571068457275066245376825593942603674284463150481040345648426576677922294964239246713770548586368426997701134744982564801694226495936175850943463985055182102443182431128966885894453797011389385972150807017146184218467102589169150304842962270784272570561244097240594661271321630020178532370451804514532931128082578526927151194035632218469444569307184704253869522731404487737857970946383900367301858237445506637298408327473321048693337224002048281524415370568908532370070316585794177474842007665994688536314171047822759618565755168428924736538308249852447895257235631508885058100516040399134913124569623760891107256394726307106902165920391637202525648455232348724776097202791125071255667952766175764089394145192726376030564717909288681334526546598890294565193100346522325038111446559897424156633597631668901531375194763177833295001840755348906683460651984846096400312879814425653660700970644648128565781116375459464149797568668801459630173621373085225025846217374355540653152876007643253477858716766037648987007705139710142368365169333205878334472362905086376790348478085216439499188376447696240202394275367551485439670540452401846274705882422124586963235496464344592446336399001852552386921600885344545745637915674485172321999569280277649579292965842014799440173175474889294625699776934642594077779661388070291681074492708412971675774592890024116306577345818962000792034495326275302222162450482697206629422681897360392775631412306905552493681152838496276607908549643687331735489179614136532577912414735686094265618430339620839668586663104840379525063846731045006953798990398901133934374583250561273790322632253226304268046909170541093285769697310438736986911232703436183579111914122341765418520182972865896471426938085829601822764246860452350988665425530412737534634341017361087217681811351570674470366654238055878935665527767420782903391572037356578600784491633212331553470288772517371473920058878826418417094008973650055775207543008519109532775931886601040976218863548279019457841347993778813972374569159167554368889204745142447473127714021234154191890935684214765753238731273228605685134400634823437543713564749638453287475588526734945160264587478911619513663359763417634908323757182586697621470839985654039051677762611166069925964528882197156354161881902352500236420399896193682886891449841451994552727639932941582953400880908545386222428619356984802575794742109361845767694842720848110001960723231824843137592593684252855269100743271780470140494932344794326494266678620476785514391787089535080294529110117102502436088747930425605517206057176717245585090550895743494970583449331260374513322705754960897002159380830223157681393382591010669881494698989405591864953792255804684838499811046060259288029151826433152560032871482890402625030844733488429098322871324308088188378175864147096109482043632619101075573169760759428528304319720351939978892696786263688750322340003582242990247325334384975482341036983157871870192473711295872124635189301478656282040544771768387686467294316294825874159056006681653363598867377828905248962652833294786410787252373330070183937595261382662348460742882772313797363585545907607551015776868578278253707686446497996481639258430763440008196185611152192292006204184880574120372338553682048178718735650743474828818225935904097698128273176341007417654364495464716716450906302381665546140810826465296341871446358499259943418368950245747249985307091760423872634780714630604081703162780695656132128401222390192074385308219551785384037844205001782520956305136835179464713047635446572939504178535350241828744203521876992066987147477032215749498266319024080580325009231117234312400362240804703276878871540357274441899992443160283811201597901275636903281979182368129879849459148547963947380761097766014609505952016166739087345655116864295001282714029238480870010589183274063369541651051650138168705257399933436286979877987419283313808818654031363314187734879291365061994618606145733693427820246003929441244282872471360695870349618159590179981131086169113442581709402591476861542644324494514344046729985112352928221445066036293826469756340933442750929000860460387649704984511535346969814496998537204678925300410973806759481243708763417678384621105238059527843736804147728457446600259365346427021610234390311844067729756573357362583759341202781656365843411752689484623729055234347081155722920208651987002264169609115644320997279421867903694429540811540703588126636789055710729909110242725352890826169276291847465451440980820473264772755083142883627395655811073549280991027070156762002725474508046633018998778997689049122294104349952980383271225961874282997967464958263505646526763018361298378743039825039834858560989524090300020399280382220513527732355039015617008164066971065000517063491313779166844942816293622166253720231719898452777129305613424525031609969523031573796298117639187389786688667401030500432241790728267475647037419203921069339968841641811109680518040190662994517432249324515301980450297320139516309726698443988260908733329710451244230374770085153707675177841257277064363765775043859058778164726062499593569554978066913695341857080102848796692236479278944266569221198137768621864077856738714820904905039848256520303356822637689007281390084209914366680900564729976834210320839311872714160650205997534275176279774377416049840638782106250342567473910348764905056168760362797911732705858886747626058679587351157375928839024795345152608341360774412135027589919913501064556801328679479378801738703562235061767000211586446441744301445197007082077405320220254173721061901040997556244326187654197877579466790674228997679719839562633011315846531765313789520903402512505648277580305937277618197174206114541958687834397565120773128099269000614330326241632753326050365544574865196824242054119904975935483059725312515478329447565253098810431619941142079676648422632566231413177286088665893304165443899593365603010103256615402714083483272163877625372148420503467944498577915414263237323417354113015273660354497534618729312256435112905019567518965599185439812187741010435810383130412387782694013403911109785488656565216495966400583923867469862123566083363938223126594887897491216865290782224683817862306574398808089744846977601638153100707833414975092367105110152712240158194158346526629070867608567656669373287350962883552110361026649055545801565116593237844249492898452287720262272221949182851230098817630926540881987276963730163649631500290690919823556298689222934781091326164306323463139507661608285322668774849556789861049965839087897373162516409664002929222811595625351625003429505890466114767077337728684448665544677068735102583312235878149165775423118172430860878920869854839512335884660600608707535428091734357849597629106584560636956880446320515072826488909718838378532175649116872567577857640257497817844774108377529539197667156024652247433711797894190733944539411229602768333347802253528771044426087222508156470557117012313877404779373333067390680264671065658080879617236904944968434271286832544606377331135812027237327147431304493914040420425487804219498870664679413627778901016270592894728031820744688970274828894491798035922292461385911790252011450896551887762143899015218387830115714313143699686179378657589365054307870621239060417827443272940413111437987228306621162697063482015124333917815550483063218814438749982843938639781685806942066537562630451912916874010988949676314890545961334308681070812171145422737935211220145800645192767229166058830081363410399727569471644759176927733966175505596530419589764169538803657264438439020372868419430588051676955560439353356449791536687098250041295353498358784145412617160946244952864898181712453358749991400229221975804193059810711047193073740878006608615421588924971765599245835699266931304252873648707938565782158146249334339823449586578989295836688259779309336154474775314716366290904712477577767471574267905001049620711418651526545045242079268158549984196749916439275330302019587612575124198801825984436353072199837441771764031409962133786976182868952895407231011563767880523551534422402745594768024882395502305747801917232727386800127980624563392737331872416191298573344717302598145593312609519810378195733303894808587483216316402846323573004419934272554410973076260077344086241186311543148755255003790372136209820058367663763645389251986074080371892268546510899786261679122627849696679823506410268563635180225693657672384676736520524127929573914370775829846005825843759687946906676288258002248080753278444020908367384277279520694704159308796857942840751268877760438699624072312272160945468675649077403381823784673843475999956715554276070776159752890351437658560159748818770558373905949641834099843057443269107240868190923147759328676028128295420196787946865191463338186929095052551357098010879602462415751702618200257561597718240595055175446457972929792935736935280855288202845409573312507271226116062286842892790174998417909528671211511103071471545807478244580927786849260708071935247300195082578245530126992158963880057194194089112533430650735737680832709098436522056506318574322445575480605260012223542826416953840423232709430890554333712819522304799714705166808368040406985183513065661844717242255744395988692350367118729734585128096036592625218133587697754063017261341377729848028808526595533718493681363760681334547639427958420263309487205771482654974944460839430075003359388783943126902499935221287788709472949182052901022096155635807380273768616251786776967591183700901400478251641340319407367862688725345089213565808813923698930493566580650678378327566344962691732518140608109608525987636197545337063218137919097482965503360722552311100867337501123795425687331680433400322265200001805254404935497485317037561272801413346366911099369348311803576442133223867725815033933827856126132190377520911375424531534182514329002548531169036016045765092677390365788378612084638991377401003426361222740111257902997239727728154477416248747066683307249038919865962054674971410559031815403290484950650629506865442891924914604255619977761323014981475297797154424495720666549599989246704267488740933779842488766386543120661964032612806808787001537936036180312159359692198330651866867388123913978159898484718388764978575642145898474700176672018173813581717138710538845746053408567794804361958526210238887149922585135999537840794792270036589968273382411263254356248485475413378285424220049039024829916605239415801134158218317003774019207257309845021432510982159327338261504002550706999472972258615537652708285027890088556230553514952923589578545622803904568862274545815224987361033312615325636685613070900866480158679328301385869355089426785020664159199062626047694579003797432144858634139626195841577078445349279505299009425837133620162678653507418368551928625520461369063045259237872946696730725346936550228489849070874028367576678345150039989272096325940430496531936543417743683366782263178674532715247144120968981366004138150766207603087340817549594517579662381581565750986583692077341143930543612782427667165415104267921474289422164617904356190286081996581737272019455015060851408142394050456132283955804877854258768799911939173875027008494177899273891922945377080686087905101783605146249559681777157084517419220120612354408409168788698301192775591415636312896808888162048970214160327038527406234482651922773227735708033586345407348732778305159657808083721899318182386984195210967386431299043114192670556419394703331624356244774623034834754040557001151927650688701255724178140693796392149410938079825997294713978808452243574874032493398866436305614912145596735677654429649163654512523813329130363095262271289268989056725100298274107046352464980616561011396294945051787324544422338015689037706923818020219002698914183548592636504455273753430712993384622564719196352130762570189191233983189857994695161938999527459253362976891342354049702154719799403617823717882919296351219891625210456026889731404286397002889380100926377205889973024579743906841492236813642499831856190228890569874897979123890387159313783406545420782434044181857240238830368566573081304068227559897166785138212631950133659498310012222202404115491783438366893257800405834793385971410799749985536953465129651365954051467358216115160008233660152939227893552228753743548863545148791742662434648239097747854263297921231578562059128649180124495265893215537500409717458752054588956548557712475988611448651996584997760950680136061710608036947767551197050828144327755913616666325379008887541819977277863442691784942678495532332696744370857355199588726088622927071665054691368514235068299536070969708644455789050328618707711926032934361361167182180586183725670971964128483317801511434639780869609262969172745133955864316035263600807143847679694534850484214163864890383922676588547571250403874707439414507000785856398657612972221836959155410993051477613958715266650444423734917476869344942868418672744876590219915977133071147079158897624582160500598539210673599375625091165461934776604904653762906427149967157380853541519844901035342727121829522725298766056215078599623456194853498319894373369390654281239303599841190222775260043376767716291914397290788661116702442271400094117530677564763138861246755846665012472374569082641762382397051177487922573244382769940094523448481089639571017038299032618108411642537148856051603474330977911708015606783010351892537191087516203484019020594603843122347110447116475203127057941690967667741976746924562329319018488608621607318523542618744397344846610871351309293944849979639627932268360210209243947191582563795502378557173933184679113953390919613584897840311962202458980250157752073079482585632574405212417953392986014416581824794006513592836552680161838369327994245952109655081844708428985638034267381296041764453848678971395057403366176049282879423466024359757140174925828250196653448295555119186190972143231140625205872924211557312373952033096442118485257228386654515623449745881289044673196285384961814047056692347658563581528049113967076136351059432573142048331101243930558642788392838111162310687527041388161648734446440647959315045881689077761869907586913466868188244045041959949712839648243527663505976956286595748174251149421230951786933015357195695507271726309797496069449063123091273142984445355557784925216779443712771725730983497251992723976293300080860945893892378443600243946610227544445140975088449572260664137144838389622191936820136048327824984211036274383089106334314234846131320819034427188771218383115777747918663861892728266573458309015998646983322449456341925295202462857468418824905778730773665489475607902285748406373017662475742122593538341617442389720404962086866722856506332897803176634500060437455936405715595666314806693523592851839321930099228522874722095187524149190118568819252049865244804048093887324522636722311268272183385385455090196364230045296331522695440396532736830514722012744439562312444546313607494001886415342614998236885731343544143200402058205922059312835463172209652235340192900456955491722512418936950464568366652011980086862543532106490618381269941006785298437285235641861213848971970620607762004382548282142514065341673982468778273236005163451825512398506194901000462576332429849160252233438967046349492073521907063189166062406965348017179564913146442004814016843944316502104882106883165000603741998112935569746806425568660542731591644649544527137160942882844151990581367511988789565688420367403927401730437879602897164095853263815141630037916253367691311051082332417728609296381582453605977779408445487259708476658062419915385741951591671125085478621763198346936483920732153853667309214195494831228102789492839452062900507442659688962940857101063747006742260395180264526437145341322259751024433197537618781694088878967874171687283549699863235720697660566358328258203245076451711290192736157178770335878437764297881815732621481376216002433864393871281749040607280513090355724846337998807071877440188389288034654980604043048468727688159220487026715473242638667802503261607988216977848007257065509918398128101694561144948620529315621336059648229746294460656947568254731092247365874836389034313106495142995498347070349223851148243187318279388206250385838724749607705166092516630854340603413214787269552463715281609626103118586866430636836049192187028960978318349113477781403321357328438003323188237253797058078973617625180363937041080806220929188965998908836625032250725892626266979543618653511723725222267230385294126114042046128005618027805122709333582415357946634468398037918724877372399183797223339310612646413385671501459519424310349929517379655342270764044964006660159719167281008752470110861706910303053529062341544167894810321063233976801854190022900491633611528724336079612635625157002581301460777168976022335996565850352397912676272104923506740890480562064811594016857815281853268969608059588098531278836145087498702995421791490687729805624330952219388953428129549189243421109759143706675837724997588726979957415498206209922641864995902637227494443278528916125947856599472736011499557586577512087161211871761114059248216093849929400433341865414863757497768046106961799178961671341861790148873086545725641301208455583078152755372545203499041098796712829988112335879033042181768202678925167857241480822250828931052121182475226652826533415693192103121707734005976458297046029617555913109716791588102365949159863964648795667414947896463662111038832848614002440432390354054893425943966327505283281880065524804877518360452230683285250307228244413442455121352911332118507456062071934835572444493768771250830752967581845895841157858166041297788293880172146241464804313299890107451478881435045565948284249018217819213688599148290626803642222798535602715799968696432633535824613180537952693354605780200629297106126280419408842001570099027467456561345401076255079133621680372268654328248246332745552592746916823552289987018317750721370403933282221799507494660721373075402688880265887177425264881536275624506909480774862640025586885852961172218605124026456315528257273875725930436429178293062902534021085614815624337306323883517093400886036570589955777747629063147782805680605961243839661249029359678932122727721964203856842788823296349439088744470544854511074663909673186630900073043179536560585709143818365817992043722523924861553023050884827859577290546025791130749542774141575453442227784304084388885279320612403669915405245813688521803590180774061880634867388975904994077093417760272650529158689521098575783488410819314139679030570707634516648939144313892814311346010761324110571131482143251106563358904849964097032210963776860294235901183228166618709073371639041709677354887997123846581773515063138979431977670618512322170819697375332965641897794407254252829517031472772101543122713803869594672946581837119106934851069247258565251419593506617469764466284541954966350241345726063922040003764554619957023936478837510011663661535815998028393121549966791045584791221543106552573697559439752293498927210717723978392970015501812382124147327542622811448816909417239686605243776333051606882901280288998103732269941146598209414273500636842326149070195055608964939365321868547345660980246674390941671192264234474211648985411863304265361761595814573659693885939545236528911055587963344515812541479878027840116917404840347439083946259861580173307740239870723333587205437515544722202480501151418947957791845110795795477182955362693432188219462274193488042949363615832295072618436467257023359854945112329462735459094341317258318937762451880605370114324996062514865668952480446397922330703211522698583807771812033662209859799221393236731481993763063084239721978473577417764582764570261042344371342653881079030582272912430420043722708265321383806581411056391979419081816011278038062928865768698249533459170863766887668214454320425945715071634501117782993455965365898989290582201241996848444714382816451367197175757586061859731285712640147068751088517168385540384499377386442039224138133636400548064871583777898378159558512062914307280483478396286473456539758346554656870650570918078477989782918066890889450525055976137600396473799236306383289956035700571897488160298103601004787932208524944589834729543563850372705321679303894735842235772563954978871799880740136849467313130522948187132946778269185893876068340212446112841831543005617053364755148025059661117138099578208160250988442081209318798675315701179634903594629802713142652751393064980374825801860353480510210514673858522123288981601286207954501300396639366083748120011565405199605759503635453022589658653405908920455110938661842135654885510036302299488275744028555243373270605249753587172109841496653633883966151871000568186998725787937856472781804849000889571323073423957716840811225916756745013716565618149625991638822357418507949521831901499741032430865121224069628230064656616750136814436360293154600092649360196622581800738630037584607522766436404802580781862872019932259670439680216793114457044367650286044674805284423226483779136889693124986875982051115162612031206317638506048516785243556331577264166294760830044997554391231679305775538118808749713112642213344990345572996057704471311997752825849054119189175648631343020124054983289748055656342163068350669059974562291925603207515436734881453619885926699052848958088375264090014085716177447748596633260509727724333900789198539599493105502809698728363208510772310583792525068870725260755114169339832638392179865202147627417070318946669730494399523612395843747973492493350818603744851592283009315039095690863185772890364586503047925663918407380061244038400488454314304886984035363484404372674190634716908027533863478831808539184020484703298256009038614871428144764274937853058914787283252163129636645199374746512556567418996734114991520832669217427924526444004665751485578140583036579428429023752728781007808674583032502504815058651548561890727571284313847270199258377525161633135190428175856950676033514737435218813441713896160045363429577005506573120601456746809781508501257369349460181765496985713681744813656655251673163692364926338729178998937839146301249946655215001411770350441624995789077629473435855355152939387012354517696443581532788912977606706799690852357358480115141934872290801805243711879997767675890153527967656007570619270321621831580985729824988752829009227068399452586273315728364416596465171200830659232166178979960237111920048262040250443455128512527029074695431574131713953442579092964727867385644592746559206616294520347198821067060690056189908287865808098277285975374555854064502390620327091443179818052781625055680144909736634643840660938972578600837199919909791775554617931603844460792448026029135235867379866618339267737672223024172334670595824541079859665577224893996787725264309700492090053077892452655130577087213829614712108796858225363305171149192022678184094640837300170168363994623986510408675741950601442968518112296799871771358143059076681180146743258608185782634956708277819651203697711503753267370085062237907259122885823258727746064922094709623954550748341145228271648291649788747196570499604677756933159881405626973476452639729152513892618733285642630216447809009742951295927622429725887289157443636495301304035303247000131954612472287127061837799873217704623792905593549314520308063115990088686867438036035905162695760742913956223232108959961389802165934668095175746940615602496423959546218900704359737330438806816074915225387589527354233499929080701056544511569879934188898812279117689177436595792487725699788869668218290334756057031613861860996201529277200669607237748813611361420708990556706156765185258422932724842530390709178298196083500263575214081512908843818381651073102243255605874764431845234968287685109740379212479523650810670535523021337300403293581311315367567996798459913103307122715794477450636468925526974083273985063926948709182060408865348896090625087254514366783730632984710571039334237195719849464081039198573215711012647864654674365984084292678234109143714282697355202118072474832786626732933967336764154142737882002824839695620260749740045712121906286836615707257128131782939176428589798221412335290799056159038966483803046528579994180571577667847400072730674859620308953488530371288608747093669570787568288341334214996230795114879407916615172079112364067656085348690751363561579105657867849321515398128180760685108847421243955018073954785024046851155308543703823849312294490414011108590982233155774818280119699373147983446942649725718237278996886788405238893806347257323296573781353808985212492529080572376297896650734675281606292327919466066162277713587619294131335422631228237005169941962843565592188863407189426968421618246446882551168803814706134259149597322099008861020626074013803496800512400248233477879462695531327471420959906859484289258822149003639758453115711414492125921115213391174785405046615886989781602413921851660064015811288377622159963146826789779309377475481859163069445727906813038638167632948023535075353201651325223353310841975429596911298547970809971650332918172265043193661666852835077145940389802091130517591212855931745818806448325283861449619551869359028752388279564071691038304327333764947591014565876366872854810003136392610042575230019992250904329018200498254040850327735585695196154721810612651757740371931064523565729562299734246634125268081208757050736006409812376805471167997049059375458193734793465351930714164139241424070176098490070242341929540910718150810708825583362613406836492100969869410847148498761572680096511990106302122855748771376650268135130902751942664316753433829223636011535700112018989954611941798704494016385437886052193721562761473446177905375502835120781680312780137886944939369041901260753125282928281924369998920134720471291664405933217502307867466418870961666158737421071768116498821767836501595161192865503748695452159743583273901771495539409472073249080248371300685126877169197453617140684530598769417073890227024115342652466333549017048119571374954729075765703394956237843527382758949863781712691458263463919067108135439470558594777319805058522272499233731629298867300127449669952521552653332884279020585752789177352983440018652618648737575245143461749075046324889667095465001950146416063201730647076574074724661967061051666594242364497329257623674300264129899075292680923106866256989922742880808376791059803322918283268964287047884154294223733320825305604867151360282020081307358677276623802889705355602445795338839880785838087162248003992562351874981449098086852741010204390233293101814026730298917816428378215979004929176137887256345376076496773402888787522702031231478348913481177778516508040259262160242925005305797301294558096946991622002420962612781647095014254658208539371370729715396218678290247420940695918559463172390274180784378346847434346214607028762583198260822271190108942082176519909093784843668655580429786928893618294407554461560648934270167045294810485907205951174235735262789467217030513739726970101197713235709791130348954934512656088530241684905760774778822455987415855071981257027786945657594428730474688469445833077097763467518796443834930440884975075552502684451801259711693000924063725692830711871102504199079629265826380901488961439985310130602230108169787865945995432377780395554293604171611384318418985888081277070259048297764129668018193268917314255144211550894429225358489569543597825768281248170414819036602200316183016017489707177507625548060463309072923744432682225235089522014554333736570125724182286331236595300390899856899236055403579834511102801702343152779413893901284075892104766220126002828673771896511847075954003131429694262694925395931241477747353892886107844254658942285062610394203055444471388174125414894372104239349840818191998151539935199537000217280414721761020412298607611305156222727835474997975816850641761474598408573123828555327852213550911970266490882580061086272516302870013268721358492519116828817435371945512493988136853514547475887690660124169804257116683574730539416002022483852518329974171287663492325738088432899060194695099712638666371793815903564393667511419114856445271655652920177726410586420826971553427458994033385624590143663104365517617226613962885083281139359389512735746445435668145794457090391752610131865506713572472521186818771211649292923750615999561776530796773223355344678078076717581115332661550077567579911100211012362401600478912810767945383423734057383640434743030748739749821187955726156014895890781960454997398221858180308954211893720207653973332082864599736107197813917810062811711835767323811369901397153495242874890658290594709442290284067040100648628144343173744925139638274982024114311517957838778664019938308351765998714080996035326445651201111594978967346552940722406656777572405395886262360295877003678538671978163322903913353437111126139351868331781275280713639482428879645837416374261485780839143253608953343237032981241779578317619699261686933190421969316402397015910687272635585162242813245216606320977517497326688155504322580800288376103558716345366203983991300753868972282757743219175702112753756955979014604087879692126027542624241172670476836866028878629790847148528764670193443529830371438844391239405384305875842382441976155736125995157912137640677108407185578460757004232504236817892474394874275508689336555316689325380881471273377888352544165368294471018664834650458477727763488747116261755726107612597458009184547614619704024769397043123253909666404801420709119055544265712284580058781213259697019590444348946138947621528241115279859995063437388449858106211337779050560349587692413138192499169781264295512187560985601976509256240441996144867981783478917851276242249898929074136838430824416503761644259308266876043621245798616502710915377900120596772585665263651254210506984308843908849434804964999469532662099015770371860409716129159536947045046809083736142364378246217464618039142840265667785323940138988060022865529127744025136095510513865445864094042539973219201664606287151141413647193570499538577540221158812449264737753756728722205951005752116916883959364458142371965188365726486612760258671959069265829794128337493038464900944174760281208332934109804923554154212785639714362862535742669996726856542266064008062836960304775131840569340678035033569582684144868931804504225817757498688772609569751273719162969902773705574016016104261688750422119023798121202190655642748890486668944756749700246248255205640863892574416356997353926959811742107954350301885153714417065053088859333919110072649650946857603435578142692429215408230144616525098976861799519631096627971941179022472722669836229299148739099228651295218288685131727434222090726193724543813725124612205486586082029666127927541031856314687908785819066437937197870315991993126701378128373804794167591861495947572269482437929426394566415216537056061687732287720227997371369442098299488372449275321350243899061755658582322326187320532872113464801429701296548550755171463654203112490234408458842059073483029189070356786565981493447822285871779382014271211293890219874996285233692129895772421178182659041846186321566094002657755022581034685945277065749714910482804722415926491074316694887682679923577357492300925297533094196296249648387379292073701189973683571623488532732295917898675686599424402652673857119162882841826675500638819294860762829546181821967693576520414185962473602747981232533087907245504301103281815251080082074535320530975562250475354948615909606121501186803809706104663597158103861794840327643029037487934141443889737180940512181923631750956331656434907898404781942928299658506792535344024891027129232575064131152304300917930365613398197810304210114023748349795404767648762091133414995650212931447268018506176776166977443797652499039951227442994297897777374669906064584915678816218179276414818556506119095781378154132527114932961637191924048246415103719319353178268794387277463880310448480966913749285433023883443435465508759415450662303518150708460295243367091832257269611012823087496331548740936176164869544351755705644867545066526215617173194873630425968882040468182113062116707338197801151503356586667914519657586114323390413644798156895086366459438505356046395011496367599064287433011762616423767370223806172203715733993484361427445126009555239516927171561938979968583916690785165629980870455764296002611065945543807294110501877522195242889371096736468667542560909831078465783827341205468831575489764543177868420326417769259682523144948715553343990308912783282442478746212399062178136508698104856669170639069173604695121371385573258262273935249567106683059597958173435734861779879233230832131012009549203071249611312824926797548954938327598344654444521864679763181690194025010555579244748139093362161563724458891950941181817877190782812431439589060248243930153409497133279935572096351943754283784236485655544262981160681583111825923754616025295018450969931830028774647033481758464505930501378847835072945888990647320017689430172855978564324867963773361778281725360199127062177365457161519997488969818482016934562995797766592389230426434809533838614928530436297836746713953466361917213430576606713392489891268728401082818850376259959312893772429148458812903465083710998896979979766049766168229803639138582406004121333620732303883550954431513713797707904117516175779068500399050148735708675397621200322352664017455363582127006126906472469836641876061092510292087694223773380335096263113484227524196607725978039666687098820980867538676865283422444302862259754188168303703563648642471579370214154733483413685183208785277008997399171234716110035908664948327686261540889302565650376156653544383401840236436433446561923471179252547667436867735041395957169497279747463906085909929745608150331406364966276469273153160087422072453743359106007931030139846779450498549019721799739700287474844579873782297355841138251167778586974680038143214201550131935028344402130252644628530391585925548899432629713426686657531238700216289498029741108650746404633298257722853152699875536880133683478601451990183639635016105033135188869113268394185574335739298392864206934238692456775962620960792053896906646690349630882280707008338346442492756973398420511400237126175897672455186801340731925295205670936902499456002636428911863805102220005086195314851241193390558157340727279708576980344112432853959655174965370992898647197424803188395598263928394626265911805118315227353747906227548150577716433067230817788101229976404638498592199563179923916633111999518401885841068580694322792916089162144603744831664614994297529913062559030271361305025673436387811665691408668764014670448849353824230328094898678409284152504278484024573553518361845830957325683340723703451984037467757029672573054126023875713154598528035065498514042694526049113108583503142719833198889682753743950228499981090674792357053878742454192730177183976635579850133463333296451926428054197587431430052896593664906377769251035936459345872387210963920846556074759227924777075157314498515716286507840830390420986472527195318413240632959386292809945803176640021069025329343147075811052255175489470843145749096349925839638231273503165100889027830193668631183435831620595407165129704472127142623843491641191069917355213308687221079536212851326731855306724144925919037309462817445990306707497108136205980982956050254753942138067735949208194656850279335726259942445488173806231198457468344297872723505851656124819900297281415550863770809623520833277709012726588165442052533020267382930758197389186321939286120968554361308988580087218520665193881972783371152115206870193634587456751522288120489902401951701132030739392851300776737538989281738636062610961827380150558107107095763735429044371256383992858085072979034559937269668777577920691322098475987313744551671651982728902655661921144838152155994067442268209473743320266240747626639615411034661309581748495180622347718602270093864322388921558552807835320477217817813130180216873615017694355388061526940875542384171607590288872496580204191644883035173550695657231783213619695208703333952244877369691332769519024549016409123891144339335767976407836006391476502736522021425750412398236127682389808485954166963098554882117254210500717947341976756885750462433101805833928277309508493317939585311543408180825677899277381663924422510931246161054892208451767516584080908303789755857070585062356729631010392690365541466768317848407127169376805036984199784467483572045857734657093543730096278606501392320642470577912444699520917946001690102538613509296726117958229985116835864539840092640471852089753177240122728931888789749264432401917769519607075476570267982341056685857684433221870897952183281055805104514236821489051216178752843886874350375570603534132573083445373022262923393829185829127058935399404477883434207150532919258491076415385609904517766795135356527342618353247900389674920319853281405762746729974298064760138831704075201816199275971221122671320484568855888290005755579149902691646852183053599868354552883775414492194301527601729297394220447655468408867963190322681166960061017080699755139638594411136710529295943371153351797962745431673947978591022699548904404667786571574739439107797719167348907058899700998442309989406208365718766488531824490642608503095777731064881954138347492274062089818644755096529439584606575780363683987506776070278714881906184663647580172850101658634377058099558051599322107734711864773686099089240396636468789042842905730960590817258141213805143057552695079510025429522903033770722261489568460936854979694320642697055166256746052121196099025565162112862463679841306482565913590631458468640287156855355289047095056910681711901724618498630584793158457608989196929550279024324739148135646741520770851084659068382717219652198372081435238009943849553577592305490243558135223735244436761511911409126364750966133985960778278503477713607976989810462220459279466505220716495505597400248630522391048400509224751426908989908709528444358116150107107652146085699873347304520487028104062082237110549475749459649661171110575273136657668812373487530666481908590438687290918523465000373200795201661202551548300098458022840514419397797191459921074726345155968881920839880472232797820331441575140507354965089511121073400686940628375633757458517484757800306105399114387956967531883766735716355461882227958060976083092456791058945636230609393589947771313261322974262626713180966351296412287787702169223345491942637528029942354767906142569518252113978892404107904604049723773169121855202988437895767468006056438493344499899239506440345135228793017860961645588420680379630692280390989754955162592709308377704849416695240042278940327423139321007017996638174245016177363925989848122352812449150532358343313140974493654798337980121645654021298870782780253924422978632559787077166045985860056674829143460569328013617531446782076428888464355186545896097383144548878362861716614369592917108476614313536588702581647727847412880220899441915658022927272531940031077962136763696070468164398964749683785420536926807082706935217268288548836956995684297519113458460336459008121670136723322737428101495504019935977799862479112191742727395339705105499166969018767250128389613436976385716786683818590035009012048017304141911661309657832167345371532727346609738106330501177880172026864964236809934573768929697177615876534442668046254638261999209397097060393447227607947457634121025853893393306285631923779551091048196794650440245806874436534737348792264186139648681140090113525433118921184905838731424744031787372434034539099747851306010953675185394466491478640889318232536496314343149559622042793376971995474841621764832290829054732886644063072504361193435244845922163252081479734170194464121961252743113072739360847130041729859744699897371313201484110866226788563299545481395474472609598046617118690738530613908383538221453059418171531455457556821081879160147823275042078797240238891037801863288573319562822040032189797238819411800742867267631203283168804922855621444716942563152691331293494521696852271104590119119357183672546124607294288795876574009008988243857089717993759223941336304164434577926930697723822002708733802126794099332502337833354179000972354410049380618934902767661194921879157475117720514297658334436503119357110370678856803454268239945257992392149337263763433197333373936918443345397220980988265683194004054602432562646780665715986120027171794831864374158590308248038111474296317491714013141253607307732432630788310571439300584638735123471341978505313599224378808910108088258012660691000367223158642409777555900933692802120733317794851971568147348094015054479668505561262202911296102833370113896832567415382938044719817571366483175524311831056935671619396511745954614218576462853069200164301038603408036830750292950079211924442189940260821644604424546770805468451354796996424090102097681911675925317359914804771359284994014421775262555049008931423976806743012508275633217179258543187261113599402830128814528084002980374512023327250698658776139068906834714547462300134995311567251436472418963936427641318328076482629938499022532184749449777354005706395795330412359701953509159517515276758549932282233328719878387930214957501021668488566642422507267188491196306762831091065673784251023860750060299828153823562036369297629629500470584693130142657694025348874146420879481647185327304800480334499779991572849416542571396862564686426383473142826558225046644623378819951792007424982305851057814071973229765606709362284021047865232045700904385227784468815054908273265512260248981439276854678042495367935788702975318366256154389973611583891538307522408432129333033134574867255464654355919176800403341425698968350806571825612640894603601398769796007151862393835040614596383847624199614575552733533120251354299545880130753700826469994659397169786412980385607272081346638697454757141045054931756151829454075031624328958007364798882231424527496860321534948992955762906205864738282117944479153100347989922741598841789205887320854727067310843835193360410456910112101210194084150627514942627728983247810722891731404014760474422086838842460519858322355452615124206695837280228422244657339386109196405919580494976680004846343227827192347808818168834423798148336605983027018344929984355014025985617174047899055999513685638990685481326524438944246011681078785731516465338344674886190088816437240838090716361429552851799190812990519659083784891233446998885386426050699849776606321311011731640738654289616056725775947044259817845686559546355100302509390276039655151168197012837031155121959057880402596167753098336288555014715913786222574720384966759722494542772850663523576581591738406356118298611265709882922820257200860182537272501687300673152933946803209296385244560624446476511811133264063656223897938273750530403758530063715599036383170307970724972395344102386076140958023404980761203453743291189583780336103398624789240441745843282533691741087169161427148078038437090676695896365779804475491234646203230431136497545632047880305646606869634027360464252139773877142311438459887838519457505113195912754177541703184117093987653198090407232360552355635179647059974434507255328315221766663517878626886088294384575876894830762843391436891213386114437331977881773729380868804850947017014867477513916180132593824953336123938292533279201614178159021773090766634391094426314768351497467969702369688570074790937413638836596226825128513081341610624806593603277487037067468487756472795669678374924408944735585880470492619653397444071545524709636868923061270385830606135365067102771784871042147518519543790295848933359368965503767982506261793801508879184440761703041267748316350853142755879822226300687929985443769194888593773128501253156983833348923005341725407022011704226573324483198093184316690682446289441255934312543438084982932533365505146308349947857863351694121630292558008867026899809975506751482981540335739441625028341889897599491097217442763775334869385740561547058878344140115370228079645937489221444189595669784696193819848760954217553222992973816649481340945016527338370609202127153159734025020234037271379061903886609221222340954219232056578764401496380250876615415600460899439559671031233001419566310592998837268849827050542310143883124583817801190784615929428766884674353625117694778527503067311649477224740680804603284910420488605930055614354394027143095438532130343755189614312195017233020125569424269021178320106937082263281576193893938748153566394650543391817537957486732674178027313272181002975257902653167292307858599562150318107828743262966644689498717838725061166412435738391884038037601540999271368315383861494535579369511677192765818055156886563426662645896791778259238745672536013996836991833483154086053136343263992429666742117847245110191720594939985570094975810518858132857712633761968644120483758501215020184390947470499464306282269129581313368129093887934258234019928264562863934472237061134594876394600392228009855346245595190786636949314716240932607574375702130625255121441920650787156614237666990580558450703710439780372981674850037645980180068427161198407001271939159570954442370638118491773979952634062874714618295942777997934016765984979672550339585513975299801569978709814258874790681589717587694322794126935611424936970191190975483485040510377550008648347534727680359766328759898597276628582543642454385579393819208698904909493539693119266437338987784569664123941874514013991105433852843497106240500878312382544893753389542715021964044377280108383080560190171250432433917474661959063517245745583047125253938044194716118915995641420003218334709787658459769144940400356248935554812386791781811165656265190358087993450936258866543991415141558548061537073328179117890564959217273247086656586327769275716951291812631548376877385689161061799694189822662210652738772748007347170333584388802998684136168909392590023506380533048130144215963084562245587790457117289296783052704089367754002337200893980559706046265687169045845455797003317793682345303263999303968667505932982559682006507772438556508214435416626915177686880402862660822637838250104943984477665223991399632096513503663182474157039911259102176248742170520722297638560280808174804471652350960517360162522917893574248647786242872396154770923103074735262867912818637587283015786950071912627377228378749667882070856869377231271716071392394357158882176017494949270547961200656966909400578556268804516323486197335873747094367331803141779121551453821789694785533958081445050728211544533860426434674733403818645989345367739786173981052978200547750762537544355621371852184618807838041978338324786982848831374407674208809085941011392104773033483689843801489178321408777428003319281060397363693886272116498916183840531527446087027696646298046032649017753520501596085076625044545219303280038811778954306004749604311634708244711161486793155751749755668275616220260375488397771329707348594421389031637450853893838890847665841142105262978033184040714963307289909264133532702257198762472634868936835444225652227258938959941663229957113025672771356963899338044411520819809190747357804417132251726123571312581841700903785652995958609005035101442968779901242530105747679595974827682171455070885583499284653094225009971350262652076338595916268408916235270758358233974102945288659529701928278677606186507769016496921987410896978488435914523321848946270316689775789738133303413089761388077335975869679748933992541849666474909877264838921969514175099280882923410357423327244407716626092221481220259694563642627951176698473914376838073754035129903950057199499409029223668304277383342173349203908368475311888916623839963502378343825539917245147496680059017180210156812817658195675048309555682007474478416520170100315524054137982534747704472086966743331150168761796231080057197142007716370308484630244246088158655936039120004142153517241986413491422276620231330081068350582437484521357441639114598884088533925179383896351338013169040283615959267808530106056363919013963880665968895760235190703020990638019251675051515533464928111511904422607771328483042948956267451066880541897257447419613264260081669499100167199166343372866059223877261546989772541970990641687492989619337605353987623658082989980605329720491161200958621301031488541105760574983009390700181754957503092817121472703289079997914872784145790454381217139372943937450469600914014315844687362735138620871846277799878099275314311914604346711268569257446878952131738848630847096064957960084535094665771656982742449062609653724717993265149712869970150628512893362603152513985851292692780884393673679354029500142627094761892333329195850800330720170153422352734788961850355319492270629383015600980955524502199496293049687537969660882937886322341963088640293388175945654793843660141910896693900728579583131316201240022548304619101252723288043194948699320013446268457400404353787246171023228880049052059621927632653268620954869693131606649380203604660181504229336020738458041854539638820417587159956534347894394478943237079967187763478112354085622592528397568490967900767436180818816659457121311136000041954085570370192607015070366162072916922318591316183722420708350840373038774176981807868285675630947094314742834128157563999553844231414657798096642427637163044761188559548746926932643880815107775965448348681794118871309584144096457136323029151893820710778411564524475131598619397824293149435187543343637980068049072579362906473963887255511114349578562722972206146988243081908191862972510517453588936275887268537553000539381083209953571654870781389034704588154128911875700451414728360333931053117352092368538056078200988205639965581244995113759802627019844840729643393070123170736173296372387397171981251444216392771754975002129150824432270283904015485234675630188179846103426485643304185936478015787766492149643559101440445023899884083816173481936471523173102069956464092663796174542517153275791275660720266554405280558553411749644080304635097928832542421488151727788420493653738790550708211479293709560764014973553347219774545194624288541837441930262035130852783410070809843778965846719673728884496161397794209440184525618250222833137628263959651720431772861309647587066945526203989744496993840738181318598389155161669664264819329254645817854959317130723493703836828505864854910542644679040443046590882030246180053849200618402308953325185977268512313427257632726439454058987623546855132554125453955181108111549563788429039241548739948964006045370976150948037021370641177364104540164007784030133103868475648245334122366130715684224901329197241027692996001840860520999214006715577158802478820409259851350827428532595576485648791132887210747654610767780109099492997485555912123852467313995193333595484354698228235553895208808622323577267141657185851243499093676282469788770704210655413148332100304771788009195404620710135500160460718354595660846409920023802257225179567956552196603990311278061255260636728972991014704457394593354907217889577063097574620567398117634420683007762656126727004575765957351395204776079464244210107183550561428208044438733404686929528031451486824589578185853586204326934596602999688833887809414685738072073208975889778000497836012068214779105860451687318740490491769052532733348193546296764133306895457130360104228925140604206543939141429155024905079583912706136748997770741584000471287782297713963627195653668361497981777832365846464687576594018612755049557022904112646073465564242523175846992922355029077106505505914219310122252858918539758639674565497853653589052707341187742472287248620045560769386235204516300460420919541979325385092456340517743987521883871186687496468597167042338922690224256188103791348489901036949773205124475579056453616103201736290459734323624976499422832310111226294205607804107659978346509732654024855986833948072023734083316442875279058480318991921341659781614859650445436129177366441350412791192056222016789420457684103064242885030501591357180626040556048139525454748659473449301779993560792463309878433150360844533691591093116666051068424407093535294370671131652379323642284175412289575195351295304941168581184890706456886373374590047243717161565279480625832322163856162062025099671558773842262280454897024228581522834461161418129750522169208299921187976469285123289958018406279470596446220045243262313341716875063976802866486864353087200207670186988415052098751594543219396369121444420180653406566185015681353195714993334989019742204155795937077260232614417547767446462353411591766142087866094669410925686786408001493552870524160626089218865284920361919655060358471360892664294862331065278126517845175438344735898402878972766334675748839268362350078214775201964333593625962660110691113394077017752918621934813662305028637852494526746612672391177920668344145916239138050266358078380766578932960476793344169507902696939154955210608144831130293554761273290337382018236430872529052577942227022033077917647528405526479908390340632127084643365174763444726115080434685765885537892455819167104681116130229338016621573323930697595934983561543745775639057258743410299795876704689618304762271419146754564222297063016109533243821318024249796469380830186285689813709865596775825232931193147521023422167376995381294555609690662934584886987744872134239433352514658566245864855494144322166451958740083880410264758600794721962440963415380655607508616336005753264020048277318521517587630607723412975012613681873207583028100468910626632670680341568059656666322531865918265431623588576423338908976946944120521927739251120463502620659560992599953160321346507042417255984161930732301770692314545006171214559293345710657769813743212580336991446855004613835705086216023382443604703483120844102171798066277847485076612637062814449013671889260157187766094205802141251632863862828992501236361135770698258697507142552181947814727214057155030558926204038487535818681216287218515726064937673320163275249617480399242424500067501684703494733356875674825160333510034939263497124709753693332407469694642255716026136494475109953317213496804026601391260713997239502349497714002424374868394592919127833079146719741722007281948129180403807581725596883366110548483403437928334580609066332267769889721756653205072492103562505262092973627804327529032562244456502653046150536079585789970924948761922276559429401392943751224067373274183285371379727783994675593929870418659296090835411205074896097524238410770143074309946108257460029771343048152991245222312815012057013864344590393584662675798364785002681253084414861285775898053954693432015361606317569457654563208029940770590323016655915307235695358486919871480678802436350492671218614669723044894878421202771270522897891395897625938635040833386422022903995147462454267798278053311086522330122095110669381262956916807965826264141356051445177293580644356148408855160310093524917511515073272873368394845395775121177490617765576576803987105224478443457935337144209827419945757019758003943267260058878263591630927469098779342928742021897970127870596054520496807197980300003996417722939044429679330325174726299591931319602094681929721874077375975375662563845064167399032822205129165110212074285166878475203531924368390769275894133314727763326774839128090831921039814024370117852466609103962204332995432471302675291839357165317779425303890505631119244935054985388265725229088088920214665776121060923705779915545821336612399736438256256610935507267655505872606905719923139768917094036066222524819888418714463886780995756763578039096238651251340670664619790521058648056712240346129628902519706793276719026964793772855458806960178238856644105314878529124081568907295916010055870372129076248138649577064100962634418923845574868165761591257753570644528034542286848090326414078735061017696313935823248677552199227687766201532799334924696881420055054195677487251731750169030070419334161901252465241607296602865128322755440538271292668413989887575114798650725479136657969031342309959100771532785851244781843150671009606358599647260119785527783045764240620708004361142108926479214243322767991741228749825305589501175935244149467099592893249288895337480485426689209226068614447436271800704913452419405986500605130193119331934063846584562220616597295401678316924998268982498303370362326263199076193258698448616800677663253395923792256264060688584988990217445754378015623984590183080153305257550061228947652633542574399855015384154570995145394302979425707474112924939517985913556747173978723415284970988331602883102789481089580434338971951226877634173447315047733665234310757290812416469756954885390670862427548299218479295378063421583103155702978346447441488275120361654137921789447424031894097073861096550006701786219676152493669794164525903289026812826413554734733236973263474610532501609614959459955850509900631402523265575605979400039438505868262923919957651341325716313115985501130533605328293247018176045644339481268564362383602841758109476893820597057097876453704719324886371252297677423863903339319219244657191749130697406430513557725908374145918567768226627797785727745037165420762431775286412117033521907401142285130570758729940852913121630693151545670860875593733162645169176075336761223701275627856914371298612898120592820412568467231505942275238635419945059268780719329761324012721346091840111568037804106630049024497230357863179935777633434841293770972073451421091753245995204089443214026783447132257329828405465062102877596496772540828737056405561945867554397009557383208991244847479625673444943503205114628649753990182545318354463715227500299458674873445968955812931796049121391380096534404679600545182487354752258422838273092726139744757261101887797044089700593922661352232479753897314060285490403469214956346529916107452142047980082999617511268606002171214062481138081733352208696956086622336853249592339413940594742143524043865387258776380818485288873308285390066202532868863489009881865755739833396748948530767760509538890310209939394708118254717880171150337961224169735574347930936357977933476928579704479254207954241211697814359433768787276291910294228178446426123749921713957879615269846728250550701896449930866794651994762225722164946813533195409622862723661504013474997530052435130617776892367612109472638226899053140498857241413636835102973799553251019262167924692189117232377831722821532389537574108377546439873456689401709411107848198904675245343239178712530754937645755897421678765181189106820260016996525259764098017241095359922913880856312839443718612682291996544709901701534470414317477458467315118726495255780138478473025045287465889359934867993508795835429787641215355578621175565518882639686954243698310673318359485026126412483488502055192851152397626047056057145400081279881502600008046845535014862530563958004985173445332916527147434936172134547550858425701656200921117057308244740924449962174099405466798254441729149849107767954225788792712322874287571040507370275068553120761709448286205427981964306604429993808196470949625361834436495805708704918720423319064030754947372573311520698348838692828146116663399001646202609302163054272678352414348453316326041280463530746847450104372029748942654139689867605821480834094382044113395444548893167704391978887782061577833873421079285045620026312993385857270347462045769178325687658959012717935611403621713151496068950727360345171547778866731512768948564892863763044884486694742067102228407141041645733090959269541483617712799797481606047212765681944376715063968361466933929452625838868275561300198898683122415249672768033992609342241353998686168855778576254412866621350402832063273136209716654227379434027858677926445974337299595043890790565445241604891497946752615260762577658463584444175409923045412654694921646149751289276966623056778341780745813691393242915623742449258703090751717194464971150482799189831909839648210531100211580621929011689737194877972968192738398247411831020854597087320794518031583744624240337410613148449010977786533853488124596539837659249782907677975810413860427540718778283258229516221083630590138192548298935327214489476574681837601235851589122252249816362074781025625414085673509919441795244785229431872907137082273356615410597527420213251629644379260507863805942428333185661902596654003214238018714013860306935206323301281035673948020081420994340743002506018452599064677961938892743180331573217335873028485223463625071696048357804815357244608980941097761990822612544539461776021572779241543890873949572710058014394666663263841674844191619439343186046599366080410961835179485656366493946000546669724089246125194149950917529799953518678968067359227976011055512869922101499463955940407658010468433310031540141500628769100229152587999452872983900059472620740715614403256753577379688211271656415281328344843637458951416574290299069675495917776727365354857375751151237608398379564939267555826420594373631265815051035504839355083662979720214692685529488411339209489234128447861644649178902317376897240469135680876152014479104151599167975561133539159091703122286821481412939976568233704978846546815653064780914792318435664640890299542526191765283725126588681785615294586479249061440832715545884122675420989578101555478432096345862908790252242943506957188400570233417433797315598827270779816259940606694037322955247438042537339435403308915128682874211905753862860808368918969592123715025054655692039827014485521819248397150818616357157826082033543935108885254509628736462006532060563408617566778419275791225784815933447408624421344660050603548581533794125444072894603132475217381191568888361679166493141005133629225008947583323007877344566369272402014596338167772754664923780482045061398921984960535837572677041409550168906473323845601116584043051107393139628098643422824831655839379430274712835635632322899354725509503641059244974036720834437295959047611099018636871707219284391215111068076773431890956284271862488537346220434781606891050152294809950783194839775513976210201252359926366007594510129858460407657201801158280913434002004347309150791326043534627773756744252953472867338061684951643045708621738551484216950984797171494714964102346745688023002324706010666864708044784878086162914164421157755015799282609926400704586724664338353908232005883170478927985584192823750474693063819695426411344582225600645310365473746167747127129718560403376408727994888551713663333125244064688520440667392190234931454420724768719706974880093313151333148145355813581340373085496587582168620555815295452248692587006449941483735490207219902268395680028882264286716049142622767657806389975016180948403427134810510760710082055975724522418437242963752365088031676631395856390670981459801317275002842154308286389073568162921752463132883389246881368401878689726906463370119788793311623931449306199261209578936798403303290449294885838293052305643346497219737152517944613721517231600662634603160360047407570683673703285213109272941557725377106549408844721070045097456122088843180075589512773482481367275338124425330922508203652517828681519251093018612497060024426498145309179625570612054390354083547904941793913512908819321958140074481108156416134217962307577552058094098841674890476577483445737357122318760569548900454909007992876437144752651766856527651596987431536139402162428369863739659667087503059169877388418837897127640492831547177601328472735303625572709727591021142570290836814712401017007184458124786731630032522253303592967989573093400234131779080230294137086099770401569226761478330034752058583957524336349048462962232584492366860303625203422950304802192793494549769354350243523055321822402881827949267072940114504776512655939048126890709794766511795963055943129795779793362634901519841253606146933288546710703175708720680783968502408832093831970183165460850727531155346565997295777544386762137611748400497530414651086160915896744616979619242816029571859712880390481782092694957175897977246187996663497113180120729920907417198639557004470329746231642472522279151600556594314446526103360255838000506256860103995715579000773510016087387717357684043588952814773742366002037190897274224120107087875188928711196013057741928061820860679296179332248737065945279548471780169227594464681058743206882575063096450671845866036800120005906706577138314996060805327390110032254970839898219657078172653444587809381644866025922260569542477156189414447707626171653967408666845185800822601239180018352109942293883878091883876116267601704368063746326185072859298383482714535576797158920375770036434839070345629492808465213013853837701903564430767359186802035250176697746768265240022011413558622652161077249810215671891174512140549190316063139351184331088891056509060681388288959889012522954968568357389341076548634268105318210266962731647851033063871957880469547444823987372941721413524137831288835485212141852238931993571151258724375981769289509026641092798928436333126603094696037287073739128205112809204007757776922358428948444247336951604656767890272129943795060393109719780037513710838013454912861514558256630323704437532950946266556169849246680907671539329660593598906614913735229261880322740178788338226474017452038115909194157093381823995662042681375992720943271241937016154756123148258043202233980426783954783666013022810280487277103619759690021915133140027342116433825105014134953388381060277690590577722408075523218400517463086493278494488059780236049203335020500805957064550978960862435895870077828525727894192259229693472653771806872214190386597110616854419254166899988273188461038555277571585994570630865640562006134164852932738766664625153025868802915355998642809036752055855890553703978881176571574026554996081225679100717711338010230495276323694500610614360192488364550979010174704290834021326207773287394503665451440424531266492586246558537940430899144945193487989803638409425494707234684621613669276596551478575247304268801760790461643255777319654705823056232297464861052424278005160570818549441823807967963044810583456509680186393099584565399893906744252689108228046025511129506368069352545281469565665911034394529752275445959551261982906440140062765693650560315687281371168012288549793624834125474431328100830661807377170485456845266721989879626556395806810992568745571764414436539014498787048579458678453591071648083687456350703102425174373801461630563140995676207936977377609794229331613104930345080268687042277170941015331273459609959581731718861992179049779609488452731486387634195355636776755616585038466680374987911490203187174114210292736794778925195558596534929013987892885683556484318616243884573142851259328135733578629615610201061167705922168906290998984425680249586879959646390067794682927406593896828722011851262109506669458715495570819407181531708071075801586455969198987772315610199315322085291363728380229685505210536785399628052996230501151962026967537909295592833868351825151993120367032997567836267905806438268963669427446974067261252536246199022082073042714410117411662654471985821348507709238009558571838076405614278034356192053630647976333148608580608639437446023012832034931718851864101330815303018960337187322634334228927812074392019554352316476489512903690326256393901696353145911123128733215488974474149633722942810402172530867797081830924156370894174916284349341943988951186599030796006682738315186655475455150057323382147784843279664709259412715526353588098799519951387571075937577238938681789070618537902389341504632042815481939967534615586163253153221912280312281928578793441695869629872423683498853453147154507630349524664330601740730983867309497086777015484096012911773785656547122815790286457068493037705125168527801260738750445765817598591062496446212318416171290224342987737754521677445773939625282454348615768673568358727734139173003180911152243556324055614220980251237738097786477905781467801776744973448115909531784406252531477488581908055090619737943952200153275604844222351358753688753376767928760516597428964341842205405578837965690271661467186660075952599855511554182050479188288972447051394779466501581511528826513999735173544045652743123060682167674984024231509411865292923280478362890149231051209550221539799219820859611413630167926184670485253341764464049121937671589885008354839200358434480393624731672148031739509569250415647445303104890588388588718093264529605945841120455813204318338741652358881917955290676886337498675740187706183324966307871294143415580488236396999153029965053882362073224915180597638464223394120958212707203241460485667839173082196545167206661548581485417472274260362677763415599715268963868994187784200844560817233280682246592624517591385889350547936839209964303628652799042966035581929157725138650683913249150289288032016383567918569527868435015958311456363625958929146368234933958248606933510197574992687027128366107534283961602516990616498735378979172346993325953097717029127870507810841616091167789763995375698036414398642670052473930392597529065087823902787211190564632156262759874127589933311495679513825979795131428250698339258202259438648205910542546327372296840186720697846856280308178710804126681458259844219733987719033693729292274529465301363990055693445366348222551168211939763663222019939392758296464761992538964231385954613017688987250056118411432572416982789762247228685647623131345704580209887553141278531241161965408528908403076483624638976701331552133041876961548625984777448280397442258133252506472529585202432169152138764609981783474651610323875310347096818759169597907828461084731612029675837361774460494651660016393463703034419076463423428230010629909490479536036655514120116034187861506446951709926079783060192506979943218665282448237539501003919344696994363185930294680736678877824524195289942333258480612216628539100215398853531531033671666568104072802384046787340350711185640025995394848084064611782277185935717296121362909846497819643144595981356346019495473722387342920430230837313044188174674864052167695733635877340510934801467910400043329590773309954472635944314173926157862580413454836001579612569228275378946925916615046733189788342649990956036455549652496398239760984443348360999364390125005408325048138979527659708483688469428383567930654020269110601962503817739710651326707117925775103100740364065952424140867229600155851183312290866012518653652324827590536607722852204483666767927607912492508710173290271771523023893014213894792360180533570950429952552514347927194597199420114215573354312412225333277463323515417078541738199192058579521317045170365736388602454297139398319676547789230593952843974565870937597290625106306194468107222172677030857752146933477865311076311577388706646722055008973071296073794254277548556001591201270685486576259022150263897876755297905183606783053606588820212773529335391742805458749742879137204494123409547733782744545669833557098725780678788848708652635668370003008579124878259162012403163077518255472843090665137547799354593234406461926126750049536851182787446259882947385943034416256491637118594201557016213512192034643991420946116170509140196579611765685790826775636839199811532272844827060544116335303228211566962292201824503588590640691337558925736314972922355581678511773131050723324348553383600042951605973620003924618200968364712719431528022006620291696763459226897018871671100569141084244280228385620569566609146836910283680974174362111690007218276995863678022696557322292730189884176555922017344594092410907807630300995814472942207637358404295255248108628957531592829059902202191614691203598144793963229520578034365678889331669291973662368087230573024504165905251766816782653804148250069055500564699442650624119817552005516833028402863405903953857855478516005565733410168994242163334920203525423408360997042409868097721933500826818197691415072956726856637341008562945723951769102584568011825926567397718487550374650517904922201618931075434949795143866867439002763203965358471332018105491968884671907270922240924774612470295019216470426826106813848550068006880007446558424767467072811212647882042983234590621842088488763007065351860791229650901655436701039046504515565183669187195754326794111355409228131831688693029024181149110166350036968353173113730154514805786530138991527051319008616251809047373567320035798212836517965983930546744130104233812776161169332064873482423167100140998581513139738580831426937909834081739506682156499603456567206914953511868391987148401720320217109414553218478944560841164677825830614061200317306837836147803194359678967280648906517247030751802063203716118551982359817531445868247295896621738496057307157612052534658980515807457493448621975049024047489412571059814184197608731132960410122577107191687623706890607564037448728492662772204997779775900542870837541642919311010576199869869387976489679363910391675946389920490237856004051892078901753688606020328837072152265253876844021995850781936369061904559995371580088218965330706296800153489515051803768257771239680286243820542186971998635475449633807651875326918705677942355483557157307410179470277922400465328868106411229022257989912716597708948494427493109957102652104297964457090382771423528802439423249948164522413856991209032271024105832917888603396745729262126537336738230370055365005696756130328688011468357482331621134485895015927762510171335244213545981774537627011102907186622603579391474200874387776120368583474468548570257562177980845176398437481151510290772188158153139214936931020727204794913879646242538414904220330651389642471818084992581977834639600324560291964591373068982984403535658692473363291998009689289460885178896532953642801247792758312560307555623426408818945523678074771410774816597704715952980611186165360877870472727359122295698616821508246631559698368414592007156226320282091461469857548139737772102753236338453654298293674324662269545031721878895104544427630375930236617378856783877127668827028037005634239072191954454122415895559056883574305735276762183006841032358566455330133431484566599749020575740090160044714080118308213470009646290502904144071922321069995856916287622483770474482655899249544789554087458766456033693694576582977756049260463341178396261975568447083086010679621255985887858719492792507115310981878923368585375351179166819544523371766717742060874164128949569939626360621793794200921761081079304808888804773872694487713115786710587875304659961720950887952235815217506946333626917433155906145547655200758927007025026949922341172187534021869077382586260372426606257214660494962302284965345363816863245434933838411109456107575602449872524649757583490240927227054028555242923950770435681798682819897514089259681064452000770818591768618821371081166012071180046339883009428727958516233538183716771858432228469544048564374737109828615922838991346152507889602363511684710814099143610480403048460040348182676261991452946149535702279999169608842379589385745060357697232922520176972821732501647633876095260441503717890634893871100402162992613808751006631521992405548128218647629140967576071577921283377082128354624051070160081717815698939780177489499266979209078272782590423908673033938650208313432558248266529659761188316171675786969424542834931767708586949444138888745953857832661355762649843574005384602568434898538282700857963821396628898344906691762566767610354743566142758840812609160838688468144042196661252153166648282084123824066550500610154582630012006729775384673023688350720449246460910331918377821976348078823348663539226486199265101165449375635431163949479874209380824380819626773608849457560940354761400079716641812434646815940311463347453396202625712590577102485433901815412185438784260702578834773109155886294849684135577021214851744708946806632296328990639583371130945120973862631930418240509307454480074558911890924667733338635305567506553340071590802490284880187073355563920559349441911802200489815695388683575816717978386859849159936625029673256094823255734347042952055174630277235568031941290775538823684771482057565729222225767178248335057096125268203946220504212976177998523262383579651814762925322083221152552284521869225085691696307931638058452133807885107610811416182872764769523469794663341287292901647293889786229703310950386600750872466079555946276917608387945151614964222772279034677280553951703526139624296426114544942343859180809359859601614252563450347660063710610590348095567964005678996430371598726359992078879552059797915337889977247460332792366983457117078508967322243394376099371689373131948239248486277757410458974149344494005502151291070853647256277875984292806131180645827023381782753729750768111224673226902824851440379303953097293746318110539995057076113638200605312011141528599350912329747118532368422262242023221538155471986601298253855165722031064890351042872881179164190135453538568673617521123843128616555021124823228852928566593089182419473001255324355702808206966371433303302124925313481462567144015293459503748329517082770194872007608587457328783512544437413812314261048052428875617710018176103169954351281761309904490383559011372879001997080301400776716370211825956264268578497502575182819010929124622931438059650122400780999209792306258690818458309294950722744325670590999397637757655830487530268953560843818563146990892963777120880348149924708941573226644232416982136352747761909014786969873080472037512919976745033948822365800932293197145776244539467303654721966131064216230980035777910028007706449525236782797999351427386323324667739643608802215536854948968278381890581853129067897669812209165427092043364731109655201271793380900652590765195359897297562514287805740697271535696491902559883431172217293614465942421973147905887289349979499343669907278593030049100817498740988656010712320675423470885785173769175420914692612444276348854511178180777610987461196555035774065313642526891871042687547382915352366148680905062622709938275262928787862170280237123388032946630253931879938810401774231431133148775534217671212358095130872985889712941697594951471370829109110197881103141810483412426699244823981360539264988724094048093403834680298386396683540906723095442276681679272803559807886365422556208369690875895911085454927363405839716433467719282836231910643371274705597346605871363475924518046878225469002995597211023313511469418636348125745279667906266831508233068002959278779869168538053149606306693208360032516410651695367727515828962931926509300661902724461717230007153393153944197805377803744448022217906435103311096372451840855828771287241008406813879989726213812190912863978366530546309508077786921559134440492877314977861491113391029757113385066657274919737842715258674298920587960557360617428631673931106502570737139358992893099860028179219766054822436181681581776521911182218076281260629750997843502061522508753221949955872694165933622175600867960242368016089574686901819787048687509913852035178566010143065972488834659389782427801589341248792379184508707733071733811351895196638682552663082685878619381675215645957251540115079919835458864082164566805631319013175459866514913736747929118378179945098183892913604744317500055666458240814595455017435975534944292249662920478404007243709224116904299277358352715833301439296570609286444710275471668009672242599523364460114903283013062206807312125943484396448856622283681905896841291191552993065359931006791217641248726916853673150474068417677026900936355967900686468732383699456070808763323410533095822229827532033190848390595955422715323350201452152688435137737053759311073354114869283943620048372186749014690309463864364387324008821404319156937409862491564317432312340967750277097424161529195175682974970379080497209582515770326491261070591649338192189171810477611384893279543201438285441628108995705268060062140405062045830519374176872597017593727752197539456612889817396738298194584744033423589317638860450674764191327399103249721224469601422254679133732030280240404547841772818841570318682245371937975314625275636764002037915386614414326138921129558283262155636583275342474467503562566011781314151786691241916075302809122050124173298576265403238278628598184266610948605616866170701312034507363043220245598668192482639389224118711912304958801919966723261872299285587965299316062411992297172635851829744479798890906524052735807951927741556803167145978665496989536772201472711936875545062855111092307303036474341894816815731359446529442321648225388415187995523788320736412604474042238917062321033482767651947621002989263504285040662437689866025971557869220465771952044781273448914058866599108772208894558555634333202566285726641258200254336319216848877769211222978949108269073219887193954242812918291468007850751182648807711743446039458905812905924485868749946137524695935559670850858797128707799564065041569752680224313059311221921439217558213082224276399476303154585688395865548469291820541631561387217954418778655222476796853484364644788054258592594982776621971253124302387670233393897815228573298371739175009511670555816757892223247530288308101568378373053035930113368023725759547660443436151955329845561820789934336533388063395968950094405137801926783859511202139707669814001932768708188540100062590982038733665791165314894750787157103406534978139327761718592003802999638219024425194833118150744828913543552847334076828597102170296408844459812458557626610229626937577263042860137745559272587574755466307795325040835688529771255736640054519380347654506457019209959563318402288795424704164591414473422749009034699699118385407727041192123706036684803930694266315530465697461861209754101043114116252472653669625436714916654892523442462852978542197071133585946037546638530081297440943944511244012659884406121815763166579547863874549284402536462354518301915467186716182645327218338121723566849325588392799910460149629365861266767092136438122277147713862509666727741015282363002026920890348704400105465927945371916414478483647942907999112013451195569829451373894286096885493699269849581080351393829379133557407734421221376273540861251687291561561674353311262065223233274600027527761413241319740669569843547516821167572164599021943498608521613804564172197833606306880270469887139316002311408848498288048075724469444484813370067886992768843046861840699678786655490095746182517308740391509207199804166785539408896307806638268065882034686706723896339773491911428586714545950189109886136075964730869943083586916423623964043262023424618759292563286872309576359354725127820153485503607600865768126715000296714492385757951095971885346097573539063251876061100403476207403663218498677859818438577447764383120939289713654848326191721370554340547608485171119746776031583226769160001549476465538164649590320839243834831039295211092452955614450637898750200275937006821727772588337014961444424312302835035786107596025189014673926720724234745324410985728808793343629599024586687280247459607263147781128204687984036103190282096366039315186670227120671383068575470104764580947360987449364789777615233293747261867644179701035427978059312512152406214845572945467665784375624635628702407574163070890441473430279641566013539442304785492142829654100935550089484910522763758821621102285256861345353069464398900505492079712718067878907331864900554122887691282152670974322383559874697113104302530566456777906351284221757703251778156237017865879969352282527005227936245749626123541591379030710090689903136905903676636781719179599513299167871020396737338907716021055539270801963916003170130033941376365355871905199462401801353240083132616978824704299544642485584180831024965431323892481086734672888070416905098645809362415734568971883560134545810154148161771875316245233208353274843052739050775582926331287920105916361662055484165613782678830712324839109096049667436423476480712026589022878636706977768185618963435538391052504302649015589557440665746335287757165891322743658586079055072828189890770885956103594898910734498062968918441988701179037132215935105001536064482851840019685580321962531922657003112436423563538984667617179245445022374144700333721468600477942920293600811697697898782880393215016384561086329038197747896823757047147067444239351291851560878537760302189670860707626746028723211636608455160613326433084416692076464633290510543564138068438293711606617952839165201360934841196016581750922101049498650321776099037042505004095033809871953605427973144983056870837846897970492756995632446752012867832946337742454289330649531625685960025061981364150348628782123980932170074659696060134782956872567662890184098118018098818091554925307196078571540580581014672333511246469090378352271206218724454985963016760402424542378996952494901676465515349421279617706593541533628857412277491838941568780706507797393530669408140500366158180405095925577621535483594789725168234981894827603069265113033919227511227386808564259216081771735361027212068800149911026549883173236888976386653686542898422028296971766059337466154905973680126325758790236105045936537884267559267634409826361209824579522136725137107344104623655899102523433972438935006941978884633043080024755015959750199140187343556190584885079414975365832213451488593703788071372415483433717556857961018527510281186261207825653400830510068215366336121625389719611651815119674739004633708870009575003133562010631174730304399908179491295665532588886842485231512008225748200273745123541427006158043766700485387532420729303562488076788511890633367352036916825350847539555929429429782457815847411517910010403802598639892045510719992717333531600076061365404174757594252578249691352191894940210925597750688583975386574971849008158220087684598148026470901049755162541105720500994708900526320484420742368273546967864026876253011520221486532084604531335091246978627762516048863183684276764175717974826309632103339371609630636468013427225211432197994271807247068351991820087329307001759921867770291281728454758756036060287344620230157316855041443548159301569224385185594018839975216472427683534849432646183024953477768829727775154585896946322616985641289870530177237645798756069841823161111991728835508910997584332058668917917231007847868402707925918274055786025949597859400244504884778303109785692983409435747558435096865868571928831308471733365499331864030763764105627325680175279410530639727203184775297699551581223861112843260031144342954304225328424106935449447144140581256344049917256317361862178452902020115614463056317166580815997127862727785658888493564128674977448588088377177766647937921424200892353187047772530348140779075707520128304552472104895214912068633289782333091114800961446132692883857263515663957024164850537013062944878584304052908914781746992167432893908141517716682365819953536333090139456223167913588836329113394795169342312049643039381557424935769368197654891755538458842467130735198689032472993702006193878142148296941762542807714547202196849720762269282439472839288830539623034817329857122928585182146846647443876933949879441128203298825479132927366483785758147029472298676200092470373275428410882594711672371479491377568232838273640782549515209662060122047398133878114504158905771411840165766609299307024035946837860807466274958723894677258333993302760711852918475734451960207917231517810133392922847367356389434539142319891198739031623537756100726614116498544083363905980682224562110809167020496582773493858566422090828510343954332052612724667318779563691390027609717422866952283800111383090998924216833094376153628263753427137952745261327651285985536983840982748267481667398361780943683662021448355549844251160255264127090548038887518858995921282512194535582878865528089279491696761550273916424746376760629286863673540026114488557495254533756522794261148170463539253377838011450796900152251777377142254574702288948142289240755125710689489311918126652910551616307917264320236257220468614743907730968077397729381137476966934820731052789321037026312742079516473497700644878221962979554428069827614463950393285718818085341620847920603801955176525270575034981421427692533739367884076894381823351137717084532374794866708894237585883810754758249750657151351197609808110837662874241153572134838664030543237058253722329558417025186780249834222264171107920051799688763460846322920524399226940246449123271818310153441789582304182035175850352730020685788873177418119490289527173381280551045281891631450861555223032504225148713429311681807943108751836577058593506789798219369641301482895779034501101092445556202277195719306843400868303986795846158985743316365089900218219473435344774751265272446991964810669282486331845646827052620518747018552666841095457715276313908182410463128339641363270916203203192127580345318727618146947360994406968104808243445335825044099758901953324993264010028068292822644664867138099325375434320842376025510811700912230484107476282388184965087981296619100985382805108556337893226128556192115512880101029883217901767109908104755433303552280062892925198559031436854588621697440396651841272803079882733123814554072046373947487183211713475058956674006896336911780174618790096170509376613929359061447883101022942467004295141898725791129880019635915020045120625287624175291725443461687311083554679905131016009043758492657445509685954360170702714964095566905271010198891109964176971024260590647907149272030207386114639198532564285899495619691128065202414690197571440018171685529380599364523441290262381241672834238291001515750505360818369706262750738332226989696275927113053431452540399063837139302673648501343545560214636528713177869804783321817445603111558583267007443050075189074739631148466629241006012305927653152978913005986753645521231203975202580639411633106435605164851093120192240630477371987072870739088760996170742061051520177393981526456549069500291789955452031608578773009245144622851414430825311637817586123543882374117667034065549391374244480493773843124562162708947206102731719223588865580722748554041291261648737179843551532431987001077124897710915314370276774754166160325767794869491791596078995256214388778533142092153203432581296196050170503964739632030911638573083434159359311234708542869416201293294870394681519236600919770421118875957003175311418851443499829613891839419947204394054817613573713614925001089168929646180153871418545781963332453131642872924009377615871368297758042097260316491348654369840220975380015252685418618244159596200630308486049279571065555297476758699656033909070571258951259623336715853956066988884230957092861649560256955538421783918821270969982846800185992400444554429021172827494042466279607589474728966763464725831191061349066968526577662090780451118256017281014148229570096921855938577392705039988869385842990809439206054243493667055157775236671011761837844985804127195977586470688459193157691310635534933157204691169197178001058018162950059826884217484163827628336424536360664358953736472221860367851676472786917553124482882321403586199791004288802972752694018327911342420191062184313421862820524982066474044710800271236536273638960875134009655985954706950840516019306554681496188799271007131449318710312418261760114331404644078977721838890654880117270333951592303673599579219211983596440096204834097720768102642689252000284900984601913076821713836080613677044736714589141599974374441674380064593378752373139761426545508601128814048453285861189628041424810299581019496005516741383899806124413201395808972082471463170811102056583320497962085306764396681173181453157747719433327248066994178835342474775619063193051056186999857019337773342481664162373064302319010929227955770826377402429184148264508054528625218400986578989698378861078766446918125535183008003233883100218082852479569856572152886368446291088180738974120918572824766994977352153768706959874474285096354224846719101190591397588157845862097991691771975527022733192831577216188019673989166279193100761241922271722073110957852408613633222655230695695578978565505898706446059317641248913892696230566344557556706843192222241756741074824838103515584463755458686259737655986711835980313327546486806192397754049934049324173383520834499823211734622172270912417719447461964945521324814842536743799147473209901482302479295333173670884188997657105572419618862610873096834119814666979928293513383227630225786982762303525380669864842210588183870191736307307550083515747223356022876425796905209854091681783350844347979575387340598919829312395305567168651692756701747841834795485756007766222707165949005398114189400014635061351264048161649798152825207719415801590044036336156935104173546233853313674933701286166467116940208782117915349119442097244976153588273215515134288551050928457246663153233140837618498626366639469967474175081924307640406738892197940858033845787182844834295831622216284713548307283918305059880657561466053907413134902230165827862150735468852184794037955713644367623506383729866745177076724383533084411394627687988556568978096050484069705939369376912792220885260826708012665352229961592986669746595544383489308907913309591868712308256094329065756565136386078322810160946926981291364074688176112332072144865316721944631963388740567598840428093562332425877773125725807379787974733398798124634570718557160533111171616913489682340882450550176026760568275193908639670733758568726953556803049607330440702989291759591677727693465150298778006860531060998242209023050817605143751221980407837083109026088174458495272762266924249075194188183874059291354769056461833071136095181410428927376869003899856068220576156210234506190743157859936207835319114426059764907475813507680691381804268600589203207431996855608848024234337941814678092274466183193549719730739116407278154817122354147842594410893549801791303113108961537751149010017031013662448975416749062819990868228605792884273604905865331156593292192056299097246851444935193574959174173743792866589600783056394091224963189893812652681288178619376361524108781856527626587911353631151376239980975606287563983124785539426030201340999916465324666632226869594375420120656846128296456778444771678291165462621361858189865117205385320928870238912065206857984942633318505283949453447449200891491559394442466836272458653653362727683904086186326680811506169963957883248672983367258990431162727450325846441928391390496014796580707409079737570467605954315599185217514278692317000923971573002190518290022414555624648519907894303315395789267324643804956615198139791005637684491394319944380919721407469659664603303313476486139233223993629840993174875468259429942659864251232497062394818236925038369872251836196897019680784207204250701984643865036205457472174295263361951762406212418796507944377055305524033408016378062801402328689943869759359023551765272914645808744326380129501417529515211768374885147441153866361833888838997166723460235380602485772850929778855225651058190969301106627449320849108524334287434053131784088687039037529901582777783049805452041550182690103883058586462036810487508511704246719070182063111300481874885642798719736985075788434001120989717952411870594043631029565475685694563056881090991464845637049515006191653860275050409497489523117048453280575247737721501574030464169488587598473898441019090668598466403612622066927815889402829057020728802316331440087592017036389688288385564674042988332873107102150163163263899609790079010119123128979240460266023341722200207097063562013903061384998728559359059730065187823675375558091378946901884762436062260630398265837667309192481171641381716200874041784730815605890132854747712895927782090445377783333027045806521571931480341252747101998418443759296719686533490530013361015383390490703906666984343870610250096504422188377096992340586754061637796440001013771719899676228934671597672970422757261655581522467981741683113481480832529707413244375705454635821183932367286868799084363256252924019211792296808338275722282024467835235483836971742015184896796894406045354470664545540609260415619707399298444860531070698611177183489699190373737936954746139498726564654971478800857272259936604283727805397317331269705621630315254767869330398733044113559244894966942458867210157319276109423861853575817022412873183159863079203342740253307072271901664924240144056452526278509891461964142721606130183089408978741256419281745549508427928765505205426595211004028966931271703234257487037910076566270857246964699737383107380347260619530830326039892696749793052760816979504389669713392990520743072624488910952091825222825959099204659775002722377875140617384010970662895471303384364557355323834694571797253663887954721891443189999231967119773737716175094565802573283175300243657399043675588097687799803623606483488031223780784005582257357024726780413588525970989480974210671419541716750868524964741216915192279100400103449964847038636658386524037031819290591804726196741901930797479200756008973249130303345578507381172686738179418415029037857468017671937342009540000530016342665029139821097466637288784988393991228451398851000256271353594694881598704068760824650173328263859917953779209074004893563641406366583929736032683953849080812257510649334249591624745146839618151402764104888507872587827887642987818108898732890908158126754898687042927000779379017115876921324230500393196907391370908321996801487082761900491394992626756926319136437312435177111386071820265515636328166344609418727602237267997597273983376177688697859382327968817620222097795815213691237664002364922327756841033548342424049254806455078030621636888474364250384655685432322187289419646735703295212661029043125663172706086414607406836434281455531400389461279603206906726503474470383399877379806234846504752912215480700991755215603168619300192705908144513016241217126969125058261474036946926826730513691167728944782228910133016435367646152946147479261172086398189697476438119337498895543694722433930892746871579055616718667511659474555243225887454674280987211507334016616771442152280356390601640669574066976755789695184192635852732081948083679924199175712867499983140927496932424532701915464237016595250280627056110016459597865640958751095620416932786198453536799153778024746524737030617390099770692963657962888454103411839022808819373023363479514745970736615831902684569550203227561487148158229520493974621205212523536097557635736251586906997379525133821951658709534356390094882349547876509273082122462691852112438843577050886536016185712532702882978865959769032552600563396171272664075287588066212599561947005369113057803650006470660525753929163998891493426931928822942376764404114244067018644171605478948231618641560400852600393832552515688608899881770667333037665794558671507017016491173159502425249682598608774804660702663835101760819443533633845233541325310116861942022236212460179978841648935720139645037388036103038769290984730112249388944695368443674189100948901269342862076204678713900120681390702707139167873030432611179448884529964574104072566751371728886715559062095020316136095239615909807162770099849988550128653162658097462092548973720498021550980192406070442039251280468776790345848118421122915726396997634160996966023255783759831130543397594270196633771989331850545289174392040084239333300076697485661425967073980160104339768058850112934997003639444748113802629627668980651289257953410986225590797865786185267518204873796544834630303230256795774850122887995809897953845802388634152114633474849557091460618658811783747680011203947434901097713689551008391611649173597929512307121642444312440790068110853762368361817010998977293008244980933797552064713528876369909323211350088214453414610498022970696711416128361132176474796733029354242816013300051788915138857847090669819929168746498547098795060308646780047150377052708898541274999147922455126756640871501685798580704002432019426580193250691589959426790091544868283631706736804100802034354348272902597006679121204009891520357257528612094289657842872892433449960677031121408306178642708470576687070680256093176058824331935406427610481133476494548115336533100440489990124244166202967862559222424623175940197455539316928816685670053830051588592872046072279334091804517904323217090725324978806057001000781218141306861735360353122777148825070865740476909757467260173108159054885144715159815914715290194194653648332086900523051240313316354196774104367443924267874353034752942978866154600941294017836253419162189968438464753097550758785856422269807890513788887631992289138092311487108344505505699297356014532152981934235427016819361667817794486897050926462775022849516230757044495349097328534085986342718521549030145435021301850715837433603022593310583483621709298323073043363084870335570565116237569700351481571643659656058058535935562364437357377479411951502575086816830735802456282143459676209017981729632280114050726228066256077436720924736731794042753651106241196390492318745279618399707719104098159526366963587596192836089076003009296486141907980834219818054137337799787922767961206840904072421131573288163768413772838481211723447011388607456166428176478856104733566691935678258022599074008320956249202935463191874172420052660553519899487957955321262587271148262303078498598602201002038096297778019439041269018661477123176411351373706565633266223011756640655782936179213910623301279112256428936726607857048028458587580160197859077335778339567540801672555771361136974216971351944410508223609805365165896769815045588279292743641636067745421986927961087584644199896731741010148117785335751851303923598641540800329331849452135108995482076584651764431159524514538016516453464892841327390027900671851825864670418645124290207688605428329936979677505687495805548969389421430219131465051756997614143258932887428967947736625481756863123126210949356253617111556406778829401990154035879977751377195440303782145100369381643533711284654307094384006900199512517469182537507678659926529432589443608893982317977180772280775740798497957891456434238875871315796023327509158426886613890281379398463510837764634478480515730500799873529155743765268665911867203572944596635089955169164279916449049511007762294712082607567164243345839804727609623510259579287945030226390309908682989480745128184321419946864356355581902014020391663632500708633114677299994737868951566435389289558861380879542617201100958928025538676336171886408123961941728458177869080509910980791366914777897663865906783526295642085545126890222408246003525751264401145571254342436593809870696391584873016419866091618751379615650337995707088866207047201995426051071742536132532702945020541643017281021174380254195709704254710411829844405312705459754744212789495420324753190063824822001281175870115967680107474415052813187963448253126314950475976308549872731098158516163809545033316139513066858941984358543422095345037036304482067819249081852861699966400375909871776274281580393568145761991185687650579697234147248189518826956826846466086176605481091567596886442449771074711465162534391813932356412331202215408414904822140383722213222407528951864867385842328584804542778850081066746068796038547972189688840363783070834667705061242373823119388496679740049055367353064944939977594220077594025474651892054300036359386023546429829104011868206983675621426025865049763277520998287858680572351400287365941570012894701428631655343807769200670249885150556111074641790889720965098926351937359874603997719407494937346374956334530367141938047316105290442693979016600948923386759918462339567843415762049123552176325783367394319226149546998365738875417132237626175379089470199266778353824749812352305702803985609139310685146598734131123790629361847581948549453594624134353828343366483799422683828183928456230712290823678319844505023761570878829694013481558195902387912643238936489238138818843481846783419215161637717727121935920500619127053063436117448902840298114741138342708006971586718683940222364532883958606796844366365501669327334926279078778838707729448649212330397322292183192413004393171589691410465723867976037170501380646896042936269349489355284040359324085402301979342030497250495267221739693921678199997163079444344741820347136931862262487219740672847130539919471872428936643385990763615070230400659591172164202848714512211811310090354323527562714527323509317869781257584445527840338938966690139212714396506849909283323654809566290931470359395177413237681915662737603907392232489423425701161500338328251324994149173423511465555235972939471516869690535028163336146586181645425313067562589819055439448389523692344825338570310284996963227114635103926825068623003242745544724856389725542618494808479544232582062932667907292517997224359121719743259481336513172160418696923951708410934899714002742327857783206061624426261450417372823596964629176962073153824274348047982180953162316955143710789404707768633735203141444125838527184868235196638654906861653493363830209203434176928242879072249397813791989178263635818438798470484905840027383504439981535732111966718175094071723149014060075271124531443702510375625103366232101641102559317916381499042295695625798979647389757061568337010173315795119316842924725802255001601780526600103098250521077742401035685381346020321869205612629063923493894288387793645392257127681334334733615926903068470253845925514038980879417214136910786455113895308844173832776113835053061951988012650749847164786767125276585751033196038543964200372389683001679796679933625177870384482768946171766041069252810392829378069111450692848460619477213647932731634034174305282957732103787352543544841547787746818455219493635744955305708847301781879889043744564353573861804946892401661506381664654112695719592254367250760137929159439851823668050419605059248240868382161470912541682599398571516399922451202273517927003589276539224709397924634571542028725585157307119098318107703903673114261519378843666138542021683415794932452509846183666547806284134015501091608873458029044451831191886909367649694859856038798606288363102726428830028434061959213942621321808807963297638008895375718791734464559891170935109541559596486624709404056255915406902925850450522087241966994059474056011654312279650524653282295108521866841444461311469446971371463529471312357933126855149191191718940947872602409013506865402879168994059351394725682453599459924089619236224581155921826732098703678518854189186269532991997024996144589925629508601305358308077863516971120233856324593358135899771056099343455265017535530056504021237691344612671064700139510594882932013696779330031295207134306289177006288698006669881548173513336234474567779649096608560800270051645609805315882855496728164949021139222745155206287517785972217780133180684990523726038315108255949205359306060784647458059579355264059226978781184610477659215168773433324226545660491670052940436035923958209865779968663167533997852138436663062070499288542609768800860886990487070364555796597661376999635016563950241673866967237927320821426662702162285793651694094852316795823610639950330590455654020471784105807219325647783112643391924148413376193209396858615873816451665137280031208880022958787101967618032196717393790269183780159005733925728211025909680251800901081552356815332585743425101022087433125844385606283201183000283231956998689849966205184995622996534647685438075224942401275122967516619946326122199813670843752408736986891142255155404150488314090210477988543190136342370653987383045346860703691802966443091149064716934538395216552149927043393426486525633432288130863831062558801363897270993821191789715721507910201658239260963905284109869013612736221202285805481260523410877002607905575435014651861965915309034190265863131813782133494956269103801008638314232289208773016298577119436440845218643736684585267630390931060755884254800883175074568668877418014071761583350481419382607641568706652622243189870415965340767577254082356520122152711050235378830459150040589742918500259383607138481514930048845359387216975951945676397853368499271212675389066753079287743359476127508025514026674848601234373026418996577570486037993183094639777397013956521577338693556008237199188636463194838190343544892550700257727515185679538513714104942082800531199544548298555224877272576532698550466115869614184838258205888234437124878934311715587845907879941019521475616130286572480676786557531313732793698270409368507274593969765989715749252357710916982497242314708052855375044296396886182229049010851275368399186756186031303082512315045731950623742428914747631588466821903588911925892706514036761124381125589735960534767115161759950229592152860027264321522211468450363775889176434290716125609523220012379000167318380522386652586170883586594973978978568930824178627960585173176712908555242920745995590359810139347243557487957648940095032583185532570014613916632462773048912116799360995866282516132142685204822795068201776522294822632242793739397382478740027858691814311613343525612050639202292033223413280615064302518357129606931426709106874799958324549696763601851910102849564714406384368433581686809399443364324889979420269031045138788099713504922382260740178573168042962511459704048320660676438272350582957174420368301669358769250225527520607182725153617447583875590749763469406289704089562555335565501837147198696360972299494207154243218583389501121610556324048904555298837446046900693494599849779246242750273812187445441680228072544985767176600826993448354420637501875397632077102680120185773571001786766987346865085043659289147753151308821436109307283231579724727248594350833306597586408060597086538103307760309164180305696948898672513320346597422211360147145332601950228405659890296375426304455967992208342026979577132576350770170739181968484430931254143841519998366314149398315924773517873238248756975791950464135458022963872939892386157377762676185361803748396311328869066830559040922279097121185474566520701183684995968528199403780755996507114919237948445930237230870259430245159216912890451336763731256392126559752552523077592791609555750486304547662718568574106456698716109538496227192829915241218413689105145536232900075743910692230850641746538431458766752147842955473172100915007571295183443756690745444332863620646469173638711653509225848256788358553121513229198725800860178945146655280072978909317508897480995519087798113336240707810614644903491490550707546801555933338409378459189489852671515513922852503738775474679128318834607298136897279674347343233780051712952369936153202304874252746665082879555513229615262259597685025418008069135629567620825741259844881464583482673102724677728063996342137239296591551571024742097185354480312602996538638865736995024732588888670305762171090058615571432559262166164973532985487340880672047713761631035925178996657697859986623662810056270650277924913361001683369360056661032987469039425921307400297443355311622285302631090023474232162198704393648911771612340995745482156885503614911553588660761169629448734407456578008408295150886342185577087098962411739926768482682314892860298324954209082262718040905666236124613521853709909885394315590189580019904917412493442125823313728561564947010112722562772760381725196767166413648537480790351678017437766052045955758932204786070721391288636639000719728409368243305819168813599761016670661002137759232172624797322973892208231696514157417169482608112920892682372477582190521748452404176656305901556253898194260815547618699019628161895251412084671043800233913670351859770121953697656369614830516883691178551686451917326463446447741642082113525200557734335596854337044837167443867350211912846374004438130328448535844138847531610982095412568470791705485110432846930844167349042548580643857755313278985465974302899918105315562102947666878265674619860393227113084170739920864493501634428323372868550242845775284386515674673054235255809687231529089982218976337090459690130835906615249791552295605775928761741690703385289104884129330471615115882419620029967921937991222037698854211352341730306734729605479870151861444420492764535828567475741276407084948877783785302188827585151220545379137239269602093257716686319221146921386422748542984665809854711947136897760961436451501413938460469526849832459182892773901621449007609824421113327515007044653576139683154900670642781486757615039624960669724675764164694310016890152790350684003319926572200992532545053890040746813163313882156521051734577899740395405052409372801002707511481479194163643812279196935454789144127068527859084784030483741232872365210733303784880808984120919251722218839827714389776206027645192549835314654172364738882282036964507425189727075873710974754563031386840811025491169344623419453153083346961360484147861706126426920495571763475120420003240024048945155028804376673344366309287201586440574134518480293770523523636227445331338839388799112480292132713532684693262208045088770474909649593472863853828967320330262207450884312619865554595409873784614350952395303888449386609099219793882795287773761605163696574322233114281075802816636967540320003577263918120363805293201529616247624890981599845329643033203904083984737935292954170516599836749242119721658258582626400778633436236664351007473902798262837262318320845914995078466778116491287370492151744988736331677790615058870079370086962058693477031901291929754360817432798148263765510054765574453106622810050145114435607469654424431808517357781237299464964629242247854573083009973142668067939035317170466456259991292302357275330221185211800309980929723163991171734149521321309345899454925598330494045768267270021566811838653884227538773948697914322211195891702162761642812971444687927286054597617434325956446585464295706835608175321478423152518806234440541057365836335705071688801479296575522233296899252696763302483708243161978546544333366266602070568152427773199962398928213772179208024798082448062596173905930551464982347553075717511799817210722206708901189038927682828005424117072869278412099467797397676032372095766337117999235969654423035868117615262814675495986064770292423559534229017049079138117888131278139332211465592189253496574762801194756493824200340703845672790299709327966689148624283226073002298356194876983567071179635745821471919755168757452873743070016751828802722482170950490562613860941243281371105072365144851128881427177799261370553804423221937884978352506199605190786469860324801211767592545500445019092135827209176707666047329211878728895387391940164012668576475243302110699276168381301861344992205167802295328236861696225234480322673705938620545879390247317276688429242917973163041630496009431109398055159437250553632126911531256261756417177223969293375829505400758038484436599280172494466490172878248770270756593862188263009957999472492559349070388307954869175585005067831163837216544404790719513559747096573114784007975030228833306403363820527417580251199544060643722214438379336571164684912971852319251970561315442312501349077669915083879670448450926229562634761106716886842377987152114015742569524978686891472639619386828998982028896228803226710332934079514624169411671686300428157233958972592605398410127260500629826069884258812304742457974962349874813361055569960536263644175097012458530466740702406918310000132065347461877545628729216934768201712011718712092487804490752568380695206165024172665418271713282401334642788181113698261265139321019141731847009062295590545791586471257818168135622666748195908443755823039051431699719077127216940669255566575466843382911611639160882991043975451955571979649542077172453936212406063098328400613690050218446126903329113568454494734965083596134193865334248431474438576626233512158955816022519551662602609386527319878750178386581407094994845408420707978182369911662759923210949972892431912803965372378709356705646306366183577808761136367517807205881384006193413166508175201669142039417927123331045456731461965372006516662719164659169419124242598461114113301407057928458567554912350850947957689808435181844548224410827164436466833017045720646449604112266480600307574897185118402782789780713106091793585474363419583804498673842657223495860746387111122423171171172361633045842013943730494040556782183507539127741578652655617511475649074555876644685244646991581427803525571762016618573499315363268839928520917511120475914497710596365798443390612291267887678197196250359832177272034625413756155302393185640068237096923032469506894438578231966476988813726449611684594112081053594816127216336235844295441835605424462253986974783722311563412434980984947135143982500804041569634739663603341514664696680019329413183797084929192673616119708082299932642764878719443913036446071956612120354885808940409011686984817471307966213037535903506495814957079457476277016482661560963177800019293584284474086495022841057065998020001244426860265002944213002171007773110243708055844523154353476820157465912271749582202132905417763622032016457429205135481426000350605132951017233730344689171974829009516862200011095787206721725851100825934017580519422873360041894999623839743799418459587084718457032851920983370683899726260175171246956261441715936537078355109804298735513465779515180095322157904367057761153403531103836935944254563295530758114198607765138958329987706793323513619006679782811693592213153748260319837867436187492845191657681851826379478438624999984142471556617959262425179448916617471311234951631650174976545392774237864272826999418234431490903780057077183004751052717444711300934114253599359219771993257023877575980604476400755747012922345983380516840000669094711470083066966566502445431514119890644977849903487958061153952433035685978566273481799172671128165522024536744800350386433475063301487782352591131367013740378089378683699690709689569946587057365171247305934934759792634444172576651101256198075540935465344463444974265505974259900541327132623270006064244368080315221643211671503561004734258920769748543146502913276231979352150878329870246732003769399207478417765881976222427414892735747505848868040095254991199418625811948518514967505957215447463540971314111798306083070728930026733249026683408207523697288264097481527098629603779053866713436590338184866924824620866424998901931005326495710581422495525065402839656284820904034064656777528170950276921524325450317891768548976875362659766748310628987593946350129430569769230158534055261646621129188428321033080951270732338016178721298042813041268719092990099221190293143890227923640447223817889048766168559367749162625644857533991880848669348626166261727970342502999213165811641047358698565481362954822443540140689848138285128029637010014591902156910540779437760681780668691826315164774977595354518399152259264924993239753649886223378053901778699067845436350987297284825382292715713394970583065910692992533515099159408620592959534035047247606245879491810610390867512992728958686565654082756504107495527343147496198994314043484147646732278560102437902305255227786002759055238490932036379386966589726832799020597339819097288454847151857697014405359492395460141453586781812560817628476198857928669556488013743205217580981909927392241984511322749543153604449429912442732293707454741502020345515301222465377330651628105066111028417759223907381517916306652405725012843995298450195352906307142066745666176011332665248082858117113000203280828030960488248956981954292138220987745022402128952820760098220515221519508767499727516670461253008851093894131593168903370128569866836122578747895208181469740979657489584020255272238608751118131121664781004151678926760291664357477464801885823798808580008623292572056748537161541206777748340970971376042871157196012632578814048056883606009127474398627103984661822376249273174496040484777005026888575173001901685199915112479632660345927342839285093027797615422306451224538661189583671352427118998923820601699671482889329653768727155893626071562592216935715080518045989127694060613492205651710890813356579961965182084252042743927659606636899563116084310733237392975341856591272476874564318082996323224914491591569980281202398945865468234654152212902316614745017672185499943402165495309003625993955426716543644130837500030500865588016534942687024489061669532960510881596747064140764701297719644512863120647861379069849280286426508834750943585550784454732600557299351080750150037291397534539872422119154846207928377252251169303837772703791383038171051736019350888382735973836719069088625583661011789558288472849271796820666975427538270207110708579382092724201538395035414299931423222701467015702273901618989609989258185279331856588149371869214607903062773434273513958645834670905923758381114335644206919966194171410704331296785569190770803991574639452468730999735104517734904907969262516194198763394707231076726903303561653196423351952819862700387741556049962756996982952121491920584393648353906257334881195574254906229699683787368359258857510332364424479746583864782843663855779979300781357896103116409418630974313719946290179483912688287679511417356989107646587308040394114362447978478780534164925537951596169159226040506570510516363353261547770817201153800855038721854537321696658025607136946546543238374554348066675708016369800899712731955543191567890180453592712849207646442839891888740817237369280320223201803694256586967837092650494446530637477441379922963709827474114410445354936879397035094268293728723787093245001888311305207874075063667844581806910566998921747904124717816840880433339150169804618893380302317882387358209028650904991535493528271277206438725288021074737573854024863937338442027083473538439704678812511896196285752302826058519476013740902871892341815697813496653965323229434273115521393084375962604686619875309380937701532383778616156677195515599501385922010562476620735726181837198159261210222664409375590589803224611740232212777380900776510148648372523198345356297517200801656554685422714765547844206441606119426779825988359642557938791697418404075028426076760001685638150602036065234869366050629947797875059577025520794452284293969316606756835470294984248339647192747106712417706487853171659028029571799169492576353735412622814857917216033002917429203082369639343406815910301499484782545981995776881396464226224455426961069611912910419638416537791599292908579603865643710186840355403444881838874271927523975731379811824711947105217925174118249656527389216295333211973936213642392557535449411307365427632442766512685013408873070070021453023684571122163587175268376222721075473877820576770715635759725544342309767031471207660564401667547698916808732477058456266372994689784359217224363768544298540891636506866594249807226535358664279089001500731507208020992238921542816828972223884050705480095063138899231330706942766027901051845600685236876324068440571483054942642133813967302382619329068555674410103335109811564113143301207574178476969719871773891922771092628436271117923172437631781939850888429149310638394416916478384145228014835972037628042343642092574135638283166525154391163370026106983742226474046935373965822481904245415662133407645457178472544548036278616605099370534202401808262614198406136568508272253045395554135188648672425451725313571799277553521642725887038288574140699681802385366304812982828594555123545234247494430038767801794541016420392717365159739935923494250150261326228895738870419608618920490355456907655559224991838839556465413011361806167156868019263904506097474422506325487343944478061704212665202254924091255191873098656828069911785470339116660687909782462102849554580521157199086362101216826135945885318333705866216167149968302834154290835844829394350070112347101267443558027487310495927773373831485282182118677143233231177979089096458708830747551540402532163421904260588173685575487743589348054202528124880022489646146430931656422829910821572860281709362189523766543947532372797683195721010234984967043347391657722890170186673597966922932867821994339363598744329247279368121357090332001543673964704232121288212223410463272907708278501744891393382720705960048584772087810645164572925198065081621627404482796881343628135676489867771471042496110526956444815407231678415923114144046323132645445828359404378515995191523883954555635598682801480097876287513714120138723940381063118478072183878715338267484711538085255129353416905110240439058789603093205344794026440481328383670115122111282873536619811096746685276669119422602133705340558549026556752070681391346823172547172990799799185022708912872929758518633200986799855480190954434692780726572626421976665290441142980098729369987294321809290082664759687469557182639910309096952962854921579294968260606214407752800388215540191081839906351404501925592947975702540688376242341252284344059404142726793143721121275768892681875404016272472292575752775573552300279098212775659312323834000184620575514853092888130719831963245781818575794001500873020695922112008055012566197676992884378190228650279103469259268856269106426272499540745098991093185008163019130044611805049918971165086166019760779390910176411249281690263757462561264985206071378601884008151317759575965501717187257372947854360891539095566542640816745269452767057008511546987564337699596487158471926873500624159970411614855048493385940580112387419533039409963330505288312936563642909436522941491524026509565954410269369193560552987525316129033912397917959769337605719764807128186309673647483863692493080719878583900471698271260889934211365330505673046359676081419361860456671194925754810282594829349243435304535061528517430638264332105494268198116574157544118030584813251557937243059617370797394858598165889263102177912411576411459556910200238884347723318026049842661286516547295600019632653532948631561863023680819655725007016514458192279266775165087393148710030077832647386667432747689130948257516133005471572717298370676892671340126798847971397673170748977414489799732451947614596491604588423473664428428088474645707496072036123516467790129538873413542987367647278692456020997546115701483976698198280361757432817755875097410325721842038137675474217883916070118438200757806171621075336244961885400568845117163595699186905009551354108044839793831270421703875366416470180158544176712820052270827616618969686361980459440506361439155474078067155690708553186281886704361764060482777185074013279414704587601729553417454158842879112926341689364490345507813817796688132234802216042531237397709546009328613830694124867508586958095058578604318857811678735950738892505282745499889345795185443927588779655409172091367600060230610275669083031946573483897941281944496494022396982306687499439596330227602976898665714442648045016951461866690441643938194097820139216716670288198709463994287755661782070888720170337098486498504180327778676409947099008875888463410670185427150338400345105965987784350284870791280449187428619568254297521042187094044562083611213900197039183041433866373594367363556341528534639816553144113664959528207139230607950795935102461275407953676881964117016594061403328679534780630372412389185651434964327155539844762446504043673224834704446271999965696574724710221064231004789384744636823126400215952797955267842013474607082015336454671640859619427202644074822466075053725465222212709912261691694995147696106526813458800563470079406088345968087824937443532998227278745435163467950327207902405803309782856802804295476995723558240922443466219439818732964711756814879528930763963435470093673096209723606938923791522296839886613385447146128947834804707754122172924624146359729977747150073667199424530355507189858398476823616561975776965344449604718615337509225683798689428359313055720059754012679850386635391541032160599762143994675008107499556096511746394432849194633268168272878721646796377641238302719340862702508165292624509353247477909391059311059013226300603378933580162303381405611319172157829346675244962955982151819908115901763225237504717410561416145703846617490818104681892509262196664006930229918218281825716358663755246618713260148111331716974396728748436690056811466699486288191598614417509989122394944993983244679066181798345916093007728230062392432122399191802405464598131005029647335006196301797887917494489845810964025427466899490303297007135783069590521190691919270527905345000325031520561993507062807073740699233908838812741809698248494971281791235119221500538499873205159622514459320970323171516841560512917453824775837080320554339308083617681942520862511381303110603933801597006692243359152336933494200748328572021054880854372821679967777685269641635469853426541665810243772697170484317761271346886960050095997601551081943931906203587821493888608749653915952868906617438985060476737434027523654346360171705326506529151731095822075400497145257976700838566998092917592804245492417027158132706656555745702262529615951855339984695229977483703750073630929949896934714554666603186789690323646529071385994053867819238612485800289816523032742696198317935170667716427689635457981567516892480357001137640402945841711544967234840937575079208345578722369260976976383690361527675302516291924829160412297192397449883019290517580671254443335443667963826184255071490666037868126840301612299900060013321518992674223491099355585069003881540810917901471274277612237387448463522717321714937479032594656870482430868776577709339383736245241317082583377791708651253428359486870705733907289010318464704114792040468343885257185486463070845807074228195833742822088277948618772895327172728557355522592504529399090595978953244668998345252275110448625092596451341467979174574900580491879283245411467623552540373926576899961115607152445770821240176487577110050006335669466796823943501316115135222730015757426925745014936926595006234246902168134907889564887501822383254954475384926967666261008963097683242034563400243781209177103382745633666940546230657745379465438882059407924953358938595164226274464919071734244796378833878817261616811431229029605696710752514198430337421545234844788670674845053242471086993635585492884112784519895721911690618050573792343424483873876667107137370737977836195510097954888180621943862044703207175725359100111470845167175519972446306410383264721667657661814116004072348500528728344877337390647061550766033586642323654553584461534088175770582790675010823109420806738545639509083014654391675468911678585845872630233776181112396950209545732801189513771972937115861127498162541298969462595754579947501350790500379535603689823753223753394147583242972487934721641397090587505390443212506154662008907937184920112469539300534338370501066129115072203725319654398418712885774697140197761520251292009626866935902371758261952562711689301203198763169737898338465754321973886117857312553555502623304858050610694566695801508924030191483440928600573022894159129921923170479623024722341518460687699287456447695217762090963256624112266416335382713215511872281722738692398148272554957403442715407727515784713995321994734078339120573126832005622157382921441809945797806627628215917884011015679006938452160346938609832171157698702329464254957578701529028773171188945024632284822151287722907317114589504785858818582653614898465378123877254033973660511552465386952517306457421771592955839974088419165839474156524984173824232817764110009297744076579372112738665435879427466538913429549266822483265167327658944273757079901061370706871863679300955615980230870394125568862484555004129977334678676471427994048412531647809576605743588757761532995195307416564627552386972347568382583624021202531192593029938657191080869737900691715350762824650609315358206839808120481636986382668557250574532661964894636051784463319907794900076392670360426658495381093132401041254787529580103362240297924538204837535089069948530984395949422236523320170236431854409697264052176075709904061894803885008398185258075541029508103978316481992939978528437936062507155695792845220043183125596540796286296874399628429591870791927416486961960372695184509498665742176588045540083230550157640120932749077671563081285038218041060608095322800166254603144694780367519341421240718333819008047283248917545057570515185123128373770713860338602293606715998316057102527247126836151307095535198197502095199752265628400462036668968586189628396916736123035672607074745062100763752312913828216947129965140956944296897126386071338747261119877226052179210818900250475961723367968927177727000257161533329417714232308379401073766017326727225890329481346126787873880272826777086293456079874609222582178990955025646610032873380712233295034993833923729058859228312689382457943775107160731980891852445304161323002649079946795524095863091720848678687602444157904896949132145193646728188010332918971904567956146309670047789232579237671752420826792643747524725382997021074643546803833064733846885545436954162221389169162409784105363692680137101679989306158926946439065097718096794404273196415522292459118892569531352853161791405731672916101619482124762525488249122180126672925543685357632907967219388177481869326932537115572734942309406408588473339225021887623581155314478161480589550311380390126840571256381007819785771397604324155528758152767509203789555160707778751763836612864685630203262659444371587222066637463278535149825497568964043214262669987607865747835942691451629522241407785704855799197023698941029064997791766541507650764113135179826466936881916497828455913225971744637013453710111824439652536291439158296303070328913923125745449403798415061637761106556572058024882309676318351685809051016799581333793727767566696365408446424497454182144117402840922177441985203565317808487729278829669666438727323221899886954202115058912553994832861392506860187182190205113370972933230628396513228237278102708137184719455342615097337434318334950502864317008938962598325489843942869400143965837440977109823048359541784167081716387355627818988429433748864214003338960316315915979019347511841815167545549026471120618324731038156252467697661048303898406805261169956722281632647437289692471045375338216896516858298874810016288209585212029544145798021026464483541948556666294414671870215108408432817405861235326058170832677638606125143077432017102751536407317154629034440627405708718844501950653964244416473865833735793314554414569159665819246532253340890485605819439102299219327175431972603624439169912509636223801477128161957609116165390432691029063863032555459014281362264507657947490838905375054378594584200110829314242943497823682586576400982413566770415519758674589219951667524805198592910963046273800610507565642765083958864382617678881990435846823321609033154211995430685135575829143108062793794304991582406692307024609871088396744882040398970856646503463904196390990403011950638904476046549363479339888081622575405069528876199696215492041765473297375482421266236640049917575193200475369038708409470410472776210461813091435978380606928723508681458907432001651370574663284215529494455393041974375510753645994273161564462106363667494923564197831336222727020205854367932828822451302966027900428218922064085641015439198451854791355714562080160347824546021373847419483162253309827848567227557420836100371971524116337363748730633137254292548021818095250821704970059975716726320147290177107828106974104709695491851633206424768532244278051540502977384462541297829277943063241914767854088520976005328742669935908142120789737824569286901897540685983560106056532470485289617407046249015218663973903654445302610207712978175374947160433358097044403348111372326213278011494882744609636530287508996657781399726572791555522456368859458201442899688268151925040723079139337967552105479265732923958563505086023580056154530157623560567626045311979520296169322365070800401904562771066540705181460724421316209462089103958685736883493717813165951471976685800467269008707701701828407327909508620898757381904969144089363761067702920888588862937440801036027362993527159441861973922166547403215532002957021088637806736452871266213826840372452827044650642035910264491823005043475945801585275870569694844331172632316075524808453076757282451612808286894336749153702971047156831034660159740469300313118775325725895567317050574812645714403387961369646692655582899435312177828679932048739265565014396894403523713931810415531377823728321013039877774302917682305742254867679291872679671410418941093653439415806501253547926020296845125216428202011698171484045670213668709394195759536164024540153224004151321289453002954639631687176458208158423202831063974125283017829354111247408772241082544940938455334913359825290653533952785630636995979833763860152475975880310066055666238732331476646295372959246298938387612342077107333560382293696870212116459005167728276374137013315054984646585104527211837507622580697374100231765311358036904902606194981552685184207710149831162878263641847829914870421429768108161440167418572216556595129553394309256749095635813618726195973588472871135328083302954223172575868540259688515139213324412189751752966127276318969002097464711125637876285413161853230121886162894917186605865305171476436708794585030976461107073510971530625706744219921150855827658585899327080338460271900237513770524811293618567722099287319768597874008019077466067219109926482049794873944521914474763716245886471779335744731124506771291836345189838594753795910104734439858875261905475835836990597235584346717164665832009309288471209465816411440404372072087282024311820542880533934783224652813312698446050985652143259516348928501240077188546564427692446132166648162061580555884135011380235638403940326759833832710503278389342027904923501074180244217811626486895430635129468382118665271129805139424654925681009601331756658250635741699142353783224605908681945484344567246463313924694275791550618718813870070126558731113520133855001328474607451009897722787884508085550250167213271422114216133432727274058786506169766735027703585797876035304986673431704735635015269956658025392290489237298020441158373489951251957443269064096387001408367258009937320540200536287142781108628931792104177142806780944133455729189430456579031093227332546716608921089856664821381587077945906279392119605746866627591651459851534543752935824876302554437768884895643366127423309518491871787086416811633564403901814022842201031269642390242787104495167533199920752216290325144671157566646843576607496986449512627269721358329572331752345396016792354788218862646408157378630371435218935093737127919383197023100332258555189131331893659340818090081505604186932153444180795252080558193459054222584328590706433405292253012866736238401329881362374397065897823716164286306803191482572287513379026280511826659974536825532295919164201160847429227315073181283288472650158115701475747994786815319920377839100222185431213945033478772734800942512822668199836684164875425645893685852824137286683820836001538091380594428382721234080292504112356160776109254567923386921351904252090877657747626232539186040113494309826024282343800832272507096036675547015478891332917254910234244408154579038847914152560330818304159384248120633068283613914638701710646182870636210532364384220320708619327645387883477431184152494657050873299792936134269188304216227139645496882875003075225831521432325462188749915311918282124243003177611305060879194349538519380758963525463601164579142841828776149303411136766503976862930605974541940770052615766332240648589692324304337379466048362208581374078475978121450612838771086325305839390123355512505436006661462819719865920653518283724358210783452072708618530360255263448670721105046636852967795079946175233088520998602706882607248019730289209219203288262552749869995217881904944644860014444735287777836981710008114311955514776252518485681414222516200743392851130832738963276493522985068005869181654789013543268174610079270455193186615938629748961287418456580574439423647787231988071545048845550941545976283648267537946804132101377228618099615113717743355336122661686291332424059534624193671105093574064788737898245074364658561948397932102008735302616762804278089260332192883047583214413993269949817210691331669861841268454511530335876462948688502063315156723169984549201380392455822477080086801213714299882046613555416989960270298991142807183234536816624401827166896909050622030803838782113017718222187532411055321009459112781613377203861193117060384103061627291205794618092714122104924373444704304151102007354148549397787711688082576026155890416000628173908291699793674883706106531164795018120445583597901116764045058875084054136969356263498785106417024594612770066789449711341233492284400552560692820891135442466458485184893388470640069321501648117962846434503137178533852194983418728502103201680349335490691214129790611141518085344350830892503263800425144790042817025623142776872654734828385372682327909063791557572631600425663402174494077937915607274738046118789043148840510678729318572515895088048110735434212773256258686411021694304555762747087991838418426208010609433902827392467306249034464338346380608595658159274877113826878416017443576817199389650425848921921581183114436797274492562791433937763211863009615029348020971794960807737008567471214618972294309651619091575117113278874898263435064072102075536336610778513749453859457418529205420155245764698646951307621181378510094786551459973811895939382333266536367133788203344279844773173513758488265202994146837976210698466618867339074112790665558931565561082241554945464650266035611989739985644709060689539095310677922668923057876637620635747077172982611644402229291848071156705334166980539864657006294738546218292346513999862505393087935252905790872804735411648056779194116314284401589124424940243214087723499158047123281890481274752568887461042564623395253380401804065754246999891266668702459993873144745607564371416866338032499365192647958965539824061098626709014159330613203952190106533351348862887631813604989070050284419678701997087507770457837161119339253600285012659093229162854957210906341135997092735531541926246002282110751549956074941333543659439454335634683768343319267096813587625196927835427656897961496343063891613571889490479316298183365859815677822381329109889405963756587222535071146238118670388159554942034584137605566965673873440313732251572543199563392740359883915278242339730363859046932455870176411683959360374603877152445316815113929830001448395196975853185105321776261836471398194368085860777546320537825425139686416664592889728889405716592331877706496369972054872426645816422381507230708505268260948474076934964064588191908906099215272425288507999101170594015652145522123652604875540319558768826449527909416126811176465852995007314180902840165784244674054351464383697845726694255792080475599732581477121337103891886530527760103633413924891178175237113913689022786616217103736157279411888829516637772589156852676777133658226292624943023034871323085655786664499377877737368901620503926622360005607224275763861811905762803199024656374801739401999917153425820566468432946101048850596092642956378925412512831771288411548873488511678941456710435402597153580194004084572254737593274973148572958592069978738429491348098318375845373572730392775057795163320778578977288570348013088701054835619350255385620130445795861489653453853831919292425148964324433758291372382056187776943170614345371245042631536858721536397506609018012031336390381011806475978737123531324862199029914486643138745954237791505055758814301289965322505112328060193018183501926057229156093220043497214095640204131144500084901547646226894985764690282862423455258329682468487817922723623034939910394549095586007668048649883267463521422102060596150282404856435994903653808470217364884576729618782248197685829494922346272640153816849171540405286130212345712190446010544665254560253769810883105551194287491457487769793670213375928179551097340747441433540516162811980130940811386954986994391927411797518312543697115927389794399509469298250712024488808291399152972679161333710465284130138883635717464816177534074803019546488865058735343539822039086200562959354758175118775505782252362531976085857782827060434216650613577346010877694596665723116786797426910752945681986414526967820928489229356574352926682200655029952450680966121575879282027190211892130582508493630345265728783620212730600186331459844188354660397561525531530551163241910139956037321952104297404368381220087619866556076481385241379655739340346422162299417518982439099088457246010682606479328055722144043094061692714841969901975447084897905208008870905468525468107240767883671817211726220612348811347232553487993114464428184091493805735272589475195611821616834933932070202375027577524836411723488599895277189202761991575605938415098068814756498971200013258812538097992206179702663020376689218027695555656529594978783830346517583991140029892241628794648099571818170404588390783738389463204272888780201426139511783634283320015327679113709939916254541630323588661568758288238792018826580598080533730537418316682733244990116719876151818682671052361418466789588474977074169258296746662811487508474266087091715092888024038864889270788553996711739830764921897545980496680613322377539804401293942777093129115038399100168073525945526569695715277899508476069814165431715474010052034649093799839518020806379874917173366704884812496596289520370795306411784892946440512966422651002567115760049123416687912639172890762995082360011300286368146613670139019504431768156122692417418493703414393720728891348954836885963724878663140718567616644835288516130128090547406451742694345327620843814727844418859233783389571663639513350810463683495967056835167484389697865783853271763757082024610039350826998938158013657397735307454232381545484406942949177893988327528407502109738934429326687640272486030619727976471044494720358881301272671311196056349176827796967332228192648526107010191457008274417474319461930350244946379601517934361640075405367956543994338518605507044186422136003243179859096404004644928507600002034579891082115991452006115996664734381212143092838592605837081217777575257673250375453128713547581571193557076102635695536016526694313395121688028554750752666742682329175060881245363270716431616890716189644142687891313251600553570517831299920346485991250922322305162370252398220168595772692965541960482136566775760345461241042144698652056471622935578561509680965501017108313936783784865048214840073923915454761866944768115656167574430673072240429780356803381743958231228288526334551495037544193692576957962398915986878816968865103959522592929963625274300611057867349931944769227681302802167696123030274580755499373839667281205265863292118221523224784043563105845352501509570577899350934780364281580800578397584833991572038259369102619199902683471334943928894901355136943938625053703943201831922467718204493177031071402512188942708393922162594033435927288309727197946995673567749705582719053870634070345561095777069513105320471567166405006527489038128742102143318642052136518695105560089980000208274605417825177912822138640892801205716030652269166345591743080649674758802879293888151675092923984497912121155127323275046837567349827729512058993988785518304181045699053540046904258819040489326520628140539529931418170775071121285324619813540743497631529559797009892869995668663261345649173864756040411678081778197279811069901539276151173727255831131361264976049931757859163722940730445937017151562651227765498100282285060945277269616012928357784894093728852804995231536386770123006547555417134552000634861449519644550967243660416174753143815026374512551880772247776388101045801382987167511285010572283427247251045926119871486266078137373742916536673551513872038752985926049945005449137351605226894190299429936044869947135815375042608248429776450594882373718397763855727018119821930607554756327273514562056850278417144469652813348880760444768259557451864665840911774513772403485744718617679997867122635046921308520633594958458389637374694782142683442616088411489366115367728197825342328788290502305219248647328625353586998482005214532107094977455848706792086707335746441593002515398644487551550432957509474578312467383989456471870996883829121768380933072962181420559387400263821214546264020514782215079541044831192274642333870633972632630670643319495153420490028975564033970527043361870064090109434325347106225402306279568384564375600045166455109586574541515939556524539884460440713218067611546661358913393137612944034009185833209473283479610311381504177744305980162095263650340585496618339582015904962883696582230009541402124333429885746681956221253552417133129701001280451785165415471765843821764165454330467589001994124280446643123421141972682018719531700774239129793094370073042990004842354436985692069575828284753221070506068947466726863697054438907676646040020482791910582818862991353437909531307717820008485695107257024272182007461263476284596987477417793587885586889556838841555566855240742730204797145127026395641974045453890301005604577858917716342401121263040613686881544982068482058921585454806399959796234513502625625436421076467571954434874355761466297094276652301026189239974232658850746465118939144436152027641025798763323992054617707219837039370219019522149722968848602544651065525928668717214275675242514203850774444426978128752786508357466873609321153137978128181664285395410755705490050117479004068773415038380603293199754706485487934760862265807713205521959482386203242166664703285164104373469583847224892920676119934160349015752219740941121189250414944614328303381107712533021255171903124021290635859022366788320734274108144140543658127044368109409810339544504024879780516177938993833274067523153054880958015418803245865780293154371838333153554755151944946643407401556312722630053498326594286660019568431964268848548040171088588428497561889455948352233035468258063771560141352767109184586375941930796821430451255511180166629561630807963197748076256011438123801012061576763338429792723174411501604666308020292153929938553441398473908162706940900359968699395045853853547561045371716326836800767058796471051733496189341889708770274867521989101318145285030997349305209163166154427033667170132720466150151635263794609535313388997583433599099154609358845462885721829528349795727696149625666266921284699920892869691362352597842590150574321312228346799503449351767278634602547936495523174640015112610096408986386434893437524154177676051661598888936602030097079453667111068429028357712431376213699763786169477857034333579356616369598412193659264494597022607742428785011708291264274020202624878462015285301326393418617182093930214999835911820530672965792210892781083886527864533328917761390159037047691424264101430140059035243038177540154902906124892602639270137222140022035648259750563794282838605148513494691648693562131949553377199828033361037348921561749661546144152480726430625995599141591194898929295172558754534328215215940150046005740985910332829514132234839616456567614208733746445963387520662046357744499390709425390084406843640577939319739068811519322495343720904872718541161734477467793901855253872118162664083960205334899431217546973775837617104582680166351626945003903958903659063442671010692802721836123716878447350172940888022010932956834271401822657283430895351721969852291631370508641871348237037455127194471353980304067143993537405174449500443587999883513662166926932741439646271465182879470870278435221872858220832381688617402637275973067960000121134230029683263743065624193018800709262363536885825276481747316648226858390115647576356193989323122742744029857166340118810050743923597066338005584704223613827340578675618776473444567398123874348927711801105336686840967054230180296639091943431699872148767234069569214840194805678194788285390257221098274022218967607016013284232216854795578441505739129117516535620822562019344339978348506521407178082343292124748448456239073919441362363322260753285113164079595577967200573039287447746454860190180085227534504804285546915625856764713716697006152360422200529079766327719149370479899439153394596264158243415059981801267244026182719671650694142046453913909697663596790727423029061020107514757558090969300207651356135919302783515041514947978154572140728237907748700530632955070227956337664363614344579374404998202113500757042270300052891268671355627735058892178791303043566647341082995201342283234399078219202651852122666815863672738975108845474085874702315119728444155208064532184173625013094166467546462372600939008468095256535133488467957183620949615440579142886778287594133865692650847962771011814446042611727138303037041718135016766339763692371441920947938380710906028184024675787856370766220931275598941505551612985821616996144113606102552642632738770381315816421942913927672089637523465318829377978942097134342533409242543475890746110619679969587140258239492977731188471441188680973146672004960412652728290536126693957837842788513477728727970228116796780712291161839923286014333114696350291801573990395095868444344769005107220171714391271304084706122532461143931996146236619716754051516330661686209806532198704371977605428692662098603705433190275757412475885188666966603727416622868659407709312849632641200724107477453131697923993081197719980944218093232399974292944700460400679386201771839234847680726058106086341390942561533198483000485346113503730852409092159689419856505458184072364357545689392186609409571555461250240059058835177998021479862457827575130147614952308530560418601383297207463155742504112934709425999861723558208690212149830315669140691846084468761907015561407626339808656200709202829073463357681749764360146957057677846261035007104182884206782512020163828902813298713474367302761769903905941104543470475002720239259895826342536435485667669190569377371849267628159755999780580313204468631833211108199204407907098037510667418481870921493272374647172341401833418880551106093750939990131110015305809000176719859665520553811136358271511368028427469977003006742230346675727359223971959268244208064860015731937812187081354460287355921983976357991203804292141351910231292721124522825186241863675313102713396310164271634596711612745218964632636004945292285522684017668402295573948794756313668592469975870081398926409734568738090566449822845165616175151961410276936227173629540851135939251628155650650465460962013324910518322913412306094976673278044474319166185469850244096352417761004551269229549382804929925542115783962183817361863769776423051579447607792061623172849981053489974335291821212585843042292500496282881056567875428413477932081950077526256828213994016409819393606062174085346562830971401984423986639831794921564500389023888079003493106854746670058758031451931058028786747423125360152524270476376990413985229988569306658405625487270907019508049130196236984203635881831389640181928577393640532991306220231438921119891393408988836410375834013909702090517187588284622208090801242353657989404236183934802120327229684048711648714105521423078567617394605964320233818696972720429084300248784895078126230895736090065201989264458919956552022042252835753904545659428330644356861190929285795405751050881279657752980407512607872579941345588285751323566283062463970662769361701871342477942722224527140305536664280449105227726263244727474144404424225048443115872277646209979977650102213368342796879720368361228687444387140005702343261483215592013931719948639443687555171356135062498255108484409713688364904691077483784530885395830340758651401847917456280993858617296941642471600747990112606225157041168865006250739510543822585575292689191050551549257339260069424045640750491726076471555881133953466185051549595724489343926085539692464558985981728501068553457288025991099065719631501849909815900233195217397754657424083519155461588644292343522368452928816330371710951603203940492321619982048129240958641395391045930542333869379062790668597108938464023431671369997622459942663817681926377578482527221518494525195784215913678063112421950489238720386239419547489078687441228968183523480311855545312511480835803385440732107332924840310334943082272989933200914633598952865604320280034946838617360148958327508971312890194339042012125632576003238858534371913609360532720587571149525841855980536536150546088930741379952416398831428174797227340614395847969151901167773877326236451972245110172003300959599869630634740397612687953975193014973143875903202483749052732417365169518346977946615035618642812109889541385374143503749643794400418384248421712425726699205515989746275827150209842919061782020548997930399384137433982286858582317558253477686690334738552046805509347346907623811873607127664693554787408485063592807645141749495051124448372692833009585955860125846314401515852493053937952507972762306056517153929787808234895721845597389707204393847461378486180915118194839281109994074069520511341953155952539938993624709257267915312992667735983717546571811155670879831714657889360550643048210121161110210697388631219272422029102843454389912411077572587927058894478087861967237353335346209819005352132516827474484354277003135685054503830184539794640540090526364425365573809468548325662641876195323124863419079268278575082527372364867305511190789119351090625949798664651022103032159607062840027475119704131684174645612300139152482128195643515334465413510351254523812754759311298441720847488730411950582940746822956560980957009461849776466234918870532337657993193937399035732613635752157363297936566423526758332183791443745899324530843893486192738365375999046061688835915952081954644504760406164590369057215150665373537925033685153511579696730010174698112254511637720787980115057384461316952996441218663718510042326842155456724041298561965772042214854743190869268048970720458053527648819064814428487586833719474660084605828620622043570706523921415951481462527888450872391793019112851606077998881446323068423793026751745965900769629609993053128920400745265478903313557766590475461348250409142067797076434022958628862462700522966505044385978173406147535609589892072741566889266273407382668467755513455727707775697583276069304069134792374941185959855550634644410232382318559832537623269216694563913890439673344467884236032085986809854515809523479748694640151828509675404206341066232674615238654676354044068805101607612931738847928796574192160428255570169867937488442421924443431649072000568902990975857317085342359295490480207672447086561608226622638177236042011070945605821807319070681115542446597380901726921614595397176146561289869115641513867560415017705371677223169927515089519067057303463997200067678189985833087815461945513352734169972863097697192803871588280062699659671579700071462786530750516593835739988086179852106166954975023184988404066113958161549564940599693802584697175012867485182471258771388248008284268940657462546779511418239283267791805021541453893942020775727493500774641069792670775908082503087055779875728073018215513430712229537052717518515320505796769929039668800348823837032949263935959536280296343157771204826478820043579710562171630902540911702881790751499225488633741266301197664784444815377748702373440617963410770224628935996611240972712282427838668235817130633658145071798398918874880312281047193975836186416327170664166206979588543091474284511657535079884767980258268307867143030131998517919195407721547695653420212012572000487692332953311638475419743069685182133414234075406415734424239564101494643264528554276901321717472278113531391514104136254988138650629215394445685141367051312451920470194577997095505773905714335074136162829135504893080771491371379893412841762333673222170839223991853594632676472044015899988689062004009654068298872459494402436872818116923254356591627588100195380975755576995025843654376787211028554514561442065786237614788526977566987669421235360560943268420268414543298500202542887057460564874674241787968934777298588808759970750755306448174269452175068871666742619426142154858607732162915492419421968716355393131421717901024175401877210814043152033096877478695941272277164485497798049662562520878601518772400886765264436821439733634015292879619913597099194161145665779684642314301204735005551700788944044105778466042829688523305564930453714262957213390625038580323315840550299544794172393994484891428531947816992828825646808164887919202353472402010466618749594518809071398902500758634976957988058982369018475155421267735826304327594812579234989381837725921735503919330291094310813315845642565629097632875458275213841681313996330045202082122644060440685434327562323217917433610616443590280117591405152305663246020240014166380826524882043561853055686635428921956764327462197348607274045389810147947902354675570064053174166863102104366571043573841348048561544300256415921531968980183964877636708654324872715670041780088661052751894551927677879825822628741773921794177952916418467913435332941739748497890858339948886092128690145410219034463286601101044062984778883365049376483220320461713110114269646814922549690059267450480632122068334049711049348242743379737496245158018574444811823215546232144742401001639854989246911194165321438509752272823231419166372284784774593008698659527593400453598777658968933341865212669721330705625924976545371489274070106073730644906911446901127716115994533994331757713774876810474865780084012185175460544342484302163466079808686967210843410898985890667277004314848639258476838145368190880130667117075023684335062390308120314127512964432747796060905101418546328257841779132817298010085588389954347847458320959667953276598417101273114526860088671712347791750120877803380059269050622030914836681820130955536552516850678023244645697665149620134127892717230798147506777081004350812427388796341493989202474642887130238191461589683674372713361585477577435233977648316477423655797627535720201910846260856665283358139073274835965704516348517435034278181451944488153569298189847973997290028647201632328854059483652468970852911175227464263259337674764474723614505052653830814540198624954696431203711086185808466066054771829157187092389920205743619760726020398261438183096302787039927371104807666358138392910335056678044480405166703391519596353300736547990400048933757733337399232002548411745178175554440172830110898298074427252164737262918051523216525940799449990850108001324391425761305514192453034373165987074730765162981492258258330535944807926505470410686662124057172328241396097788955094794115371136218044400840054061528411527464949080412569960689137831468302156864984601910091822480805000343437056355492164337995348485268897830746746863271512184533398748205657657301859262659064381229273719148931615877273476946438553880450810668626387406723932220662275142573925684564017512252523656041619764505501317964141286381000664419639650737954180869229358695236402804259642884853010371242025770946822968610511820469926229404584931271984498173790498719655937638342992212243530268756840849974604643436975447122557172017893342209867871140647799455529460498658229000508478189004181061455937573437894207038129717958194979399226382594646751324045455327356186318573496832304013619848462261985641318922606299261570602121194463189677176851122934066750394206105335608281663700913785332491382806108626989518797559717016509936128610292171035501342983471039627385560952779399783487919121907552804951958322089499451404436355519501907819341196275572572597581375328011826274921239498460518594131482178806557467798443523840845061900327874157619795702245949320729797160160534590451985829370000459324354268125682156255959154332575740346103006019352914735470236254628952744925835160161695855653469480747663136631688813603641607049697483751955534454388942317254496818932132233165527674317395738561029999641730230474400990445653270544258022578265754545537435226551591265081801327110190104252492874537907161181764805750769116710337880738404760647445893467291129844495211226903922494772449145534694744944570265732349736693546625670153692941048087932417619433205315830456985578920671381361927384074766966532659605189190940175881731081101625225699367173687745917324038309497764307820283074219115304347857380916881687303036326683409121314581911747974991282609109737947107621207466580126340294036957736920779711278717490635854776249966574458430399020330108142983673473869370018859139677077645407799917700377587423575103436798964148117581603533923306820049457256314627523152061447861222077506519183480786195855628355008697493443141406173700835750353794654166092865843540150430778171896404655187436915452121976524591543581264704257689943270157486863662242741481407096381126899505771605652018523928142605806897614056712211268983763507254957598296112536269335947084335600614189926585775655519038904946068377669025084255092319123263044672474858142265578776770996382502498301679281427578576401323981454997140709899360070870299771803717675278499929102451868909295142443562629394213496358406912531936351699249191687691609329296540580119845365543289396121503111634982347973464562678426423827641000369985448245276538155189382846585484633604318333497235908142981328707543780141206592461429296874043410761623063813658786769396426683166319343475038511545683756815999985794525322716271127724793765784388726759679573447453975498699025107634408711035594980289371446957069357297140057611382880314766409338497735366033553006336442740350685470995589254963874561454947499821057754234051248245788054040320425435989303437142703433413839922392855069098622338449251763162284653311183894699109478364832139484998014042742711417691020499470038476138229201922351250310242808678832445035266193782948861873599261873771392621090324882099826711935362609210000174167004844617148080103174328910590214642651810616363006108657225982675836784652606879578807340032489325944262706768750740106491123052997060467417833911122708750162769742411205593350938460130967765251494539809939338453619275669207474453042241994532298542794442817018836839209791821556498227341390169532423156443251805619556073434101403660819334629052321675995169051148670666219593423324131279084159744877980276271593952950756911160755155193548681981063357690124047219372687156285724678197361513179671428625761078185830918705990316188429646915609509397736158812691842937821229823688126471526921397450113027495898226183945819115274854414118555823443792930169733037897331163867893029289039604270342517042830424007574727047998128773972016194626188016024068367752091051028959424473880650507671858111798463699490851951438039041014570068621320544828996648271085517764645758048409015513535762754184718425990426366464543800093320600422751776527096418209824884830204791900651126522707728302414303296492944211674177387858335641685800043052821862932061379738917469457741195082421942574629432917480497262099932806043515394899643060312289781250395059404923459206057418988056247631207661128392924846275161256076662861906479908648710123911235841028504820621722926068283629819248138307627125683014352455027189816066428839469759907886236236589618627467998095817719939922801923979629270945176986014853363582987970213825742511983303837304725609522963838561446215299184957839890387600442547607610096406865189811680118159300593523278884901703975095383320580990648400383720911871415328830307721559125381293824786271693816781792026775763429952510045591378288790262764293289998094304920725031369453053282565653552371832593861601253351356024199223419832356364143066611171321364720619356654963423565893543062040666906045612284789525133984832632501260556012827231659945466916534722285127949335582830733545505736858545611603599339608271945928937028847807397275437547580611015224153677763761900871587508561090053857041170766059567019800468552063259400341279873640617547577524042573742455590955106824591084381755002735990494289012627972049410710261409040237069654381527837116174206510891560820468188605337731329196540359543239387952016966982664896905229703359855696064062596076701715964499016383344595079200704571773379976060939648401892596397799216921659566971886945835628529054483027328580923670003998554354935906668819168404079869918251111679422270615932866011324455273082408408308743741239551751659956658948090974917582972285363151039381346240995381758075141645737241061756523985001515676447381442071005777359939801260396215713031555883508691567080606385601996454714758167414968866765499055170443900124970478138984147642233631630990609186154072643986581797937533041208345687937363757362617891355116698188669982647424720602788260357295865445046497179325155753691153535950895715240086183383328257368420826470644897923005373985328485785403701359802535298418394628261711945335015391202383488600856138576728393133421661832160869753477685858560708378156715221360982394494464933291395513827164836044989073498175353862584091702967306714661893645577519066721552013643782305902619013007902922370539625630599378089451416826706379248236551326855851221433193287720060336327856003625156361136275072282664854533422113811888618054636489213975567818347058381962258990937624016164575234436541669618702816517997093656150951991303865558291507461238448318551594807378039835470243671799290972984930706457467347170657256080349954939479153800951670508568106247444308533128472297283566750873366314539427686508589808987909470412653956220675646032641845754915749086689573497755869450838731980045691066826640570347836951702673772641476348618967967691610372773710289953072380084408199098263403061771720965777381476902581139672107679132936118586223710830767837146914884535841516981915224262936552044635986045075930696933077957649726594240120455382323347110064953723470452245774328141358842912531208585122727539607311571131986604870766063808330725377412487004692699847037131914328781063947470461633071533994787042420416924070975924054209671553120073236131229744496466786834831675197556492272854397454819888574312944530871098412630623274260419942401014849935213100656881167840147771346381270249144911687056336719441457061407104420873395514360726533377667035778294211410722709905553541362439169631950654025535361554252758748042489857106369793373910541177009053566113687459528374989670082883819547658531284339902179814906251475640222456855628317168445967553022959884131515406396361384082209666380898635960658922537259235082434116631159089550998463545653285321182649631261527204091370736793776733881574526718217008444690456314445873660593373909391352812681584368600251863010521128110986869963659549173510279251212705491260316065750377995974606715767887613577624551848843161696258353009441103428870122335553522694550128371123252267052851407474820890455714522590069490684907883318577632122439356478300853510380809762820262282740951521825316878698606724725954795902987514699486169724818680741286929272914271799183639418219525370185541097755199060341393296832692350303907146840021514075120431432820514110486420060828066962028207654581035329129294308716504834750223323154431532509059102490230178486637863267448117606563898854835194245943954448754054698706512893071681936464264199619887983186697480643468100725496585964450625302888597127005571112395495339379292636982773693080027817774672397398446450886680177254733689781441978405602508875579558532368579801557225460724870841248267910158100425072434908766576727998626367742675273008102522281648034708376629603264754819712894537976248195571287577087592762878568633371717745387660759403633341183516216499858395588671802420961808577798720486668843734402065789388819759662864039534189161619971551088264233095441549530117802059568462314886797322623222701573112795984869763616304695847117088068537644171366586908828845688518618078138636198480057794895789187073779234013891313983135943110760557202727904426843931336102702565963276900895140363308071498423339008193669383515349255237521308831023694686816172103755066494133804588267683360681827278820827695039899515117072919464593398338667010838484062120492335806857338655248437616924357454880601918495660211482330891816142956510549140739217104355799706859512279954398528646613102426948298579345109392109375010460231656438862375243223848879087932250215607921349322847427966139967545426758769812098667532656415004618779776431789463563782391538550344335060551329079312038392935226808255102731103797650428936060119188758782034773775651708838560612090889805187858035222450079196068301523487808332632052618433313428213155278170759221011222184849832844186415948316508023823441073325078961540403994411653635630390755089445428723162166472556868561527205800021726236374193660434996950773316960890655412683047207259519287220780377971268853450440695826259948498754146220088688855803711879305305302116279831689983376747606021727949014426831046317552314660968279692113980449507145264942104701065204831460483866200607473918493566967454352237582422324024867977597737649219022141874039717391263725609601366897420655864061635096235985547357762985355613595631664524566820734430141187745930618387092535725415303934907754205436097281341041598210559999250115934725568710296795171199751472174690499704266847291236735394712389262427117261485125663258164497216948351603856242358941031346276829177582371200741247160259860530173387273928519255969805877562221087675195917728997868007733657608156372314546117197598146624102305322429463059497042942489016698860870846782756087424787050798839720086865153597522897845826233745055158631784337242826423367385531155875969902514751974148954415512542531797240213307383022823980164920523482790321683249097068729083588866296462951050050499873459129654942390891744699539789018847203535436261794875405282176788427317874608109267704484904231317947298795990200119661627353727427395261623162833758225018575439803515766920618854954587638509226479151707333538841206112459702342636961918120057998179556872112237046326879447554467528228281587608814335487627619988128347175829843746873986141028845531022855594264105972706129781287166814666691369183731949379703230262109950822428895622366920996316041466749929747549071269111699413942771977448553982992090075847172778806444263281869316618963221136824283493727818674509389757613649572811618727775023510897466794189622823047039000378460666820654106113690326317038333522103237618956793088852832655259419557125588750159114710173401421902679962169437744110107941861686683702111766802542993733129809985485608152902190006823925466978358660399876174174707261768315805491445272405970600851857456565551611556174835874993558674595177903958274883062141685598687656316588336942532204777669125032575701722004968113678311083111112153047866331464044278042945126414888351038625511549874604953985335820451398625788189108551844229879865895740621579070780866893322176400888366464099967830302402217033545286904363065905312540417337768195824314245710427853080172944838615887147334838974587373518757878734299199646588489743016379877017819816308920485281441950927349022247232915029023918374149297260905114831867317815081484125444061495305432403847348081939138871003067023034800948864345729052013652995930753849096062436490016095002082066495079735228397289866152419626628782999278105530500310664725801870039821298677368704255952419880441768105077157704035632550202746870638126544028023128535245937470064288798923604034694454653467341966632309733172894331084676013289607603008666659866051412442869471179129483497578304387655569416709854677110191107497265858021597182476657496135067985762147439910709581612285844662581923502253807782815811732588548175142975383877583527046719351373679730905766224660781879726103132580554074707605361791297369699275322237716512414084050780381989403905100930048041857220885574516910760499430688210600958381276327271921443691888740626867598253816290549799812748145056049841231960036867809998229107975777402865899135568762733681305438523767106869213827772165872026249222573286246428636572790812648590074093394018856619208762667167636282311365296102220894281450517674449557137938603865779731913591354603028490563163878103734367362173515276442255208389613982380345553636748950498020665573897054362904201287369969510381382703635613825229631546967567429462563237931746680664682841199157102962307321746294855079211527392432294684545916353874306613737399876934639141674484209370832307480079571840687562946096476733988194209734957779738777155011465096899796654182233934850946855512604290908855931018998165778145618683042383637672203341000297831260917239740773631430453209847148469570634262222947696892868036038249552415523480941427395589800810312639717326170650960687101601339508209332729900783947271635518028743224381357809664622885489868883235172552718604046210397228476371698992856947393449112559524678054597450413690857648769985002549753189844136738793482196401094038639450726072457276518749900647874264373869749817423769102906092627187850391773208919918292096981575678169307345902873559864709021284398581118386003506857715906753964379422007038097202461189291480301745478797860723744521185472571396433785466750173580943035784903579693110159581817771712679048626104333951981567803222807789436285781355806198953344468638667429645417011631938999211039537561067431844846135274374100980244495895715823551641784442744218437333901714116815971097815144083976678527785437749694013751342624129421865166195048339964316111494269546507258017786544955895182203931499646118460806506994996040111089861676475886321736073864004445049312098367104264172316858581650942876231738418256001395832642644200600211918449200460553011130754200477452109188668921914368192553154611430990079624912055989839302907090524825588098709507629638992451327040443839511324149142166184471248292434167461907452065556506561453948517312559920303751906392996401959127308294081204028402792225375881332390932011986955049924553795680490257851080965997564489388621815105063285462257307212569101085024820912665605449563885032895853518535802008468251081559078790665768596315510880983710699496601448388333754785012507161088487769642046567962221651758352940473319872890447500674004034600049895175522802447723525935440296869424260972275738177676834613110491629970644639555474288537365604633698625419964180512615017944711347627662908599166848573994713012853325828435712333670139512483160020027954739144590700632370814139805008583128857304867538908334640222377346848418263500681316875179057253483983667378692943392153062664718423824121880748115072847209895735102781710904820191697455217020547208649564945823406435295466542668433497636671115449469854000785980923909422791487344882534443401770935335025133465695390068164927481562701099207114605891367711068686075597977521448526953125939668050086716664585340621012666452776809445462915872474896587220664037495031463790986733762834941421717024911909887198187942323035358013744682064432299866210741937846311444294562654978070562460663373925144885189109810897679063945083790647863496246538407791517641235609252286303246936977073974789640112163583227655716866866002111158881305723239906710593998266168805380811592632126769608003671543385968870675691414952957689253438586069818160540416625957419773822885205950634955860737974901309452809354163371907206796633040814417179911413691010117058715676978011167579160935736260545430276425277473149886455124014336077489760479000644224612069726354172014252370746716218504510866747648123456498368084149917263260342311164041094201131919165045351306199346494686869922106375129998240644812028378761180489186630305009735636225158425892197190432580579854823776630332454799419635597464756814595381048620872606261916002270850355114726989348633812522502044990787510160861881744741468008862314574608101538952906959757566909568676636394998281983500046382218470443471827477337168800510954251850071272350958891796895811946767407750128674017319010889580997528820247782216818450247996843479641295087047799497287798062576875507215368755701047191060242596257400481661050254995697695020042502663732633484846516036670480839761056687432679206493778111942348913264914759405715640669163911430748897168087152698487621462156114119299637217132550967398919790453442168864318194247080998445729015331115908315158293109061249153912902100342661706277690327185510505315107487872130097022161774152093143418260411700351056444126883582032602413866157919431525492674258105563935854708337420903217850334209453594479667275180442977182227613735097986776314470536476493661880294405336146877714267550599523856237199780084552214564785790423758690120864818198275390153919252082385085510819037006832230732863044003071344215518706371849433204646248331360598557727653264563037256455227494278920947609390954996220925797343752330404979717891333047372841038890265646375529089793143646082135972877462457282878924675854575923527679386164035078186730037708376612599590851414549911515548962333662428800811869681248939251359046223545046248874058626222599510619100622327919670650645446100759351209303187527337504632660254262759193743209180395257342109711565165602778106944782745106120534055554183172665187008953254606012844025796288489762721921066463109411885223893170034450995096155788109299827744553780024195771245588113552167478106838730349548352439248641273367110024075222385020469587363927067024485983796369764748343384488656291472295697949440484544479257435198869696227186040444071629337446325204773362471483619749483695102521646198063395687930119144999852726603406486822339073329908282504720147921750857736675967706999167060697063014970772307649263885956011237128663960727774503634905730126947903010207948752488227887710566086252110149815563598303255081208908457180269789860942055383814524044730327767159906897786996292839320958940712485587613833307497651323838931046103520290272209401954945317067705791952621315120814442249398893056362846831830820327942258504591292313400344228539136220304835924152440625275419449363724895811249246953406037196535584094425083424787826413727568440196468137751336275640913047808678757800220867376166244302071126627655486975442450121423119598295751793454428617750814981029115549710556062252617940808408543924144840328731081235162936878071680495674894834873078400321172046306087264314668479886946375744211402462504483699106379299949868093430059970396748581920140460377926258206780831685551744879591094622394613145819297186963332986726176896248531360122203895793511174368514164408879105719605060197363549164594019420318569238191920952651517385557595644185808982277552603098926898766930297021600173242194360240043152520581265420965267222659346573361109735001555204722087067195236474426727946954223988903827242299436145060342959537305238072935351189944866176432089443629170785269689684179084310619809266404898984811077887545705802252310008504124950449036277355638057135837210202950318546733401451467265713527885715984537532496253368033380626620322561300796401070090065596481080816527436931323917925394205619323969691761643281051933393116998201389039084112829043183070595595503948018636652295983591625234047005124406711110567935088417608277658657527596919828475743971395853928186331108533709977887225655841364578636834126639201325897885394666550766347679021755437856903561719323502234956790031725667794998120332679505729279855633440430170519812671406691154280843056841070383997175291388389939314369573455001570393701634844426513644483876095243388764812811222509467522113022220800436224041862027946315490959673456320852962873660443647858482827120704433620263895024487295617775712756413752587087311217222298421687433938702667444870713672597000504024504362526124610235919254110228915289542027260718636490098632202982369086188946068498538855655117488389541425745248937554268518090275675398508087028191689758161981185171258292870898761363170679443845489748739784194022455965807829697360902469330453184874663283080286363720229632888844171076577297717678628445401720864084874302840640066170864910098844665163910052431358930957351628443112354588180490086026800450450064204472863979897545931275041831939685372644983902075063682967111256493861422713781823567419526215944654070903658998032251294881069094527672631907336560244977993548089616553046977358254828500543534050604317978503643820599049493670010972915293380208909890860859032014280918602797688609454590801694110373765640721056097503472846332844158365231640834402629261305952701842507076489988794504394564143937580497693807620204994655217550479831832909823954351340554784905609336050526836251877391828935376077528265581531339882925938426180017612024697262372046936845323111086959142083467443711553332266161811123533068628973699532847677306873376303254621154250669585022962187187913807936550509510428966468662474675611984911338461408168367627301190223428273552308791472260983488782138710103518498557295416971371037548089795894362782138822004585017978066115519628293273537461113992851786861457993708706800219350061843046688842765578171110142898048633131678109537946202774872611026573606924976243531097004243181458815063960014363299258675700480040771418132247136726864838950186602870903479900621927334756226582431702750506203787492067887775388844796009411554592664911321742452173406650810441874107594136976703681474602428844352181933840598679788821807162227111869026677863192343506536076966168547348788815208405354896259540519307414318581094947988849813935692776067521515110175248134666653019759626565037560557532369477576181521827499780332065572114074047028972463407081901875931843985483469480734221112932611277310293480569882327169139740032077848323092789454366242905657824131714557025053035599282853173073469638141883696379162387962014279065354968599110457151126276415005284831493710015868958180841797015757517737658434554645123090040874669866369917709427794502985786135720366582973949851023456063675231499083313280514737518108025918241429131039315992187433181714493383620277176688892782442969689968461311359357034412572144685249563922667838552896877342337557803999054588056000503504226192311945845573430693501459821637661714193900462682584853812250160287267545693287175213580181907700668903417719164478498690087595158345587397036035287835595144874415918833014109045699357997182887239182982413814995079566119371764964703128836654853795328066341326931894451651417463800178380155997653496653299326590647854968086447709622113427372257150385395068565922430212126804874388848787396784771241494539125732150680981387958185883482761724870331273267300074861007144356444730890755057622287257082766794200984432378010008492823130657717812858408447188860279194192593042554799643915759761943863037477490718461459922564909034043282830524169232333513199886430519230198956411474613758103376620081420116941514863725878845879608230830012303246745566187777667541573777120984971404718834898838277075847012225183757958317371084293822386767855824168085889690225952814446522924792341048280485433269439412354061331449413534089864481809066564278913282133677500992447940235992550161175157195032804504903929874333332594823647327052038913460709835993690417497912461389976699984640011611812929203287180250751048654849024758410617502158252898509811276241156555598502837579728726763642067177838675062158298493272870678797829371345859538890909106721507272551580989362531316977219482053755113613040723052828507077410630738635570234471913775761509687155044660220552438083304840081433372989862547695836192265352823824413584380769948040082585597556760562551822299939345024672498909734056173603409893059426827428993086358050381193105821736522785752721969111008158585510264277821616418491758053688018583701151609841918569271419105331488358384663065871780394361004700188895716036371248209379796458168871508539876344375008356285613527512175904896145200624754270161353134868600252053695349307191679740789333478791874716777283642104327015095640893617836058605700036054076380237954577439968702501498808019162605612625445424586298992273996815573855449756094662118788807415618134625313645894104369453050590953734201944450309536065346068774160617209727026895074576312998046542472660913842518194839852686686643270825262799387446377512549314901209372208258591268609984025002374277643794417563031537858097357507711006658867424418983351050585080051893217315741411111136571193169844577161596738406979401444584922469105720355858251056847823459797812401908361838447630340998494774839224126254150240362556636991466539201003747515686137569880003187757467692398975361118811589179379696432744015189377135336209918161563992477269829827720100292547274869151243486997063072104900292914016639474105839122872385990045262903447649902802652663124687547458903138818801088020130755829159166713504309820633857212745589779571617332900233747325255638451695872313372018513026862544232607239111280279641881807956371127408722686728532304734962510355045080448411025354195850464015870697876773684857801975555035931025039069306366469582743890716663800039771770566144710276642927529529742615066877338135578495136572187129422425166764628106662185743038416429175165028947168701151053908292508552278204509765976388446805737306739197205048778716133544228441552323900858895853210963310328352191564737434527708269003057919699640991545677186600769776001262353980229669727665621580840474283027944160156394709062999183815902549531865926478280441717450140005773151332560420929342061390896433867599422000605558767823405761203545801846566682979316475170816038007551116512264697953608620509052753454889305364331668486099358107341790206728041846938481645334933899733503835920428609269759909631558128807862712663968234998652037947512304484502461842031607819656851180231340830722911720930730632159515950543785485467236987099068114474671360107146769314470528994501060056317731176938760988667304610530262385240420608810206414304981081517417717997803985823672892426945842212791674357209190577227179397111251931593179193647631308783146639732899481467148870385850420671490782579826559949154594747971704574038032183106246326008572072059555217814041915674594161420611078925462621774148658809356155394246253405095126534064224407358635540038914494934821498652065342121506035301132290046824898462474688965165859575904946648184455552145609012813368251186918653440869765683423680679987130602962408094455829701257424432624647286497194989676985561372302657816459024045295936532075258818925041388985211933192902448880594809236848289412308404215848060635018775692737268186213530149979722768623034318971135017663889914041281407252671475157592590463054213360576753496172916593862989097335130983217797018279514792893798602494496168107915827624598249506786226874703753862532166263650065962288032310595114688221062460984795200260803936975907672253140229918003481442795316071734786033121553031373225601679322752485767807234856541263435106139452014011631183251924333785861813221482957218835967109159048735381421726874316306436436497206739250208894266825213619542660798468955469386680304866118326060716405979345353178394308692991890612743353084842526430371417615816263371524165789569297546638317096758074177343285887281112866306319294711870965996042283588222751690911951370427821668269474469505780127257228417155080738011183260359939242068208099655098339486290897362948183664079267119410466672934616729388872837078604006911600405980130296447866653441489755002220957222468448822309556558708870100981483817876654622216345404716505612917159962679046596297678176355008893902566261066994732011407692071852273718105698624596843774750595501297648386149245438996093668079682982720693704707946133316858840503027964162562131503277067824945011754254536060478408266287711800538442547633969143768136062772191813902699055057729746718625304894259375527662909315933056990015642718948768794538554479200961121510623232615396018924968818410235917019314534312384490153916415209826034081330055171975361985236778523444394889547045701878802236362906116866404022682597836571230908163678968305894923244983381823056784051261092884914770812691602208359496923723493391794135919078672652197613946358351969615482348722893223034417486789713274652573206768626770406926931575013019009353701180130701467420443679194771271725041892366716299355712099217703765111296037760894529048428664230262266411354981764643742334199059079777838509184440267176994211551994969195261232141783914795600477597971286478918460155866916266104453068899676163538559584134172368776042904150612972300564626412001055880685357527668822331692539926594129204100397089270985663759544984145404393316471860497107158717342676674691154497522549649713772282892272132973943224521812048429821250879051060825681801301074826127779049474007123971310505907851002400017730072455780187721337149568525340743505682073347198358494175459589237079811888286344098771019840428670235243983333221527995178735029815001914960473880100277164590235013253750963264817717791138302009419403865406966009225211892724263234137534131808593853173317265350860781461047417012202703645407779829024367112825908315578607238270072855688038677959024444055620714168204537792132717731136827522615391664112809038404884998173167296752449171139682459343327770228803963198460479715634202205784484939041068634797137637033834845493427830305715598429054325348575233621976998154441291333685164967900364169713279576683777024894740454620545656646197107810780021950277993193715230547482909022662025681398440584718644680070485076287603358267966205057940056953620553811667088191049275918211905852586009223862216595965528580152359726389162216524623805631240900241716676661625886430215756429267857834525977676749278115761204700566687400878244533078906656152867712667431117320741514541905894087122182106584941758293620200492455933275294304562353074725339202579394908711528339886909204666063187595767515237877210947550955844866769006699978698955445260972927049641452550402164108717033880886797926422529239748916381730443897919735618565787493535729712126803158135860903133642073503291883759269615777220139040043176581557836281656076035864237226951437253815357153949112704873595493236557224165970697561784173677617689043884115327927620051008960642869427000213394721752386020676522174020176095244038435758795443057128259280577912128626705773877644245938207844833750050023980823265606398476465500882886031064026715630524495660371450654997337741295835690662185948195176621573904641270860718359532521455328169437798740990483315072667506208597175278659922103432493950786162194414672276887403182749644346013596658159884567015104683849806358522671115232539715568728248974361176407209151316550028154425536952451005319123918215221346714517030159153625798327217242610193369289548546896931416301045474549244194368768988743261535023977999034807352687364478886037234132666529813316666857962908183858050668900299059348086973202106912718144405989599877755541840388262814117264433728085657315748885343404114065478174459069642691187726262507047591499841411772057094128737620149798653436452232698994396648916920681414499452519652410509949681035913041134558141254473287512120888071161651815821173211055758660209426336845373614577719338465793558526028846880430756502740724076233742622309105456762607586410071935717553611497800400648910743411020588248217859985524014995769460642585996088260077299914511106162090691329743469774165889276444995522000811781035988183837217632560467749704844344814196311779742226246705175142983064022828576395391649545063262217903503155865262864660809756329917660218255366278011881381657752057030670335311739447674371400245819810197296069996710339802990297376941753650640605771273819941201056568714893449962750038770083232085154335444310546987446027921234246129902766571795843144784870089829830452112784069000356509885870699808916869950060691205354408369148329923301886961232610347816512769153333851100727536936618972050896476560287933447241433110577301219986138932420538801818989797991790025858369457758155468855925680476124133314276775368030309035383045310574549919177281259621334197198612581316075344372643453525378745708386067596508189117573929417958257518656773954340925897899107289519466431138877280195395170690557655728918332845202675871933240887682394552291872954062206667783280045086641012685993923710376901448147382138003367558939232458607538603829678354097817541587366419073451888092999926547973085838688536498422648464351385188382911517130256993711404705313371192156045710935941193876952164258421918612448618384072550491659496478674064758736286364300073598987785709365289465019774215134122695862965121310707505732627851704172228177587845202149926696792300071101981550231784056059012275399440217831771703234193668488135680752581583491167510832304746518335310354471271384001186080998877591235273845028505901497458041650745168269525411977642678004452038593195668006600867633485223410624875913290180460229877605309952373491194427640928448668153088399517921692335160145087771937317710674437756941788251627462621505604877905017655912652681014608361089407446017235186027427655228882296991840515990954754609760011506690064651240054213072638984563869132710963958377169342703001497418518483354355295508208180843741880163278822850638238920363755325839681604600047877733922608397340909734921158995162947683263639529068082333328085789564901280419857212244661805523709446019274036302937263468855369117910036624716275206199116046541234735592108415163647016688138547199952407756121339502689572161954153022632442185793935019858992170087184440649612781130296590608074670067332180121889015835175410671645136011457722242639089446372731651531096475134001453099375782214166367801680530851549885415731828966048125690926345664624362269946004745701238995740298848174577715811598560982655297476846983578811179177581922111267694228278353058909487535164365772621730116455946358361514659303545992493463877305969741756814808929629419243302411796424856319784183194980103003158281004469563982287665423038321565661878603104185733541684702718096227337570456822600575757008438469175440006002494258520836617508255028746399227519590755770301106878784810865792954707271971150517007524143196877433612734716698026798610062117945123117620526095930782350603886743834131920153405654712274927654013489805965053557967520700052110338353238759997386896967638257203813824468032495696680288189494251099054006711122186694606266127672654510569249848962369474344113325843158494220080716532450960638812447897270893752225885517514432121370703528506185795968753931468921275586638265088443813282392554731109169462437101696804364902121106619150406085743397062366989726678305931935075803082643810758587118329379541078852426541284336187133653988389092002367653341103930331186300415197301846631782477570238608437599877843640551372998508007854796455646062149974291528514763737523604725023226245088801143563333171770869241876603201309789166625097769659417724860148010354521415539294923557922760979471561250731774793410490626198006278715420180320127807288967434831630533954159403533708778320085820549626961742914942644202389563004988497329061625155362518044997582077368368524575569231984001499301479127036107320643234757737473249744034544764360752543568929660287499353592801233797017208906292558253648935655454565307318388283205185382240556049208318797518555529416172812552719127498400228138113116940474215976550913649367703950040083033160155275242158356174777038470827006731130324327156927695881014027135475784035296424626594698213884073581836816270160446649712082311083402794915179338270290751328191543000646529707200658731655767436785459833018180114491336023230991066318594058435078947820137867202879990140378254026808801106635613193434426843435186315242648727238128046441952359513419285391405124338037702585205616413624484112231526400288762385863084572179233580912583105433558350549263637996854368005646930014020737885248061764552231755396433524470969200653470388502351919724642546104042671399193497826082958937968103432605957325228447409368218370122952705813522782980873457990185573487897140268548307281917874126694952435722109928274500879251050924879076053431346802549078249522029314869737129221822069006509873245994887106513123944825103597758972734998146220860405042081185476274393130521075374163910404688113648339812207558445265181732648840274355497092827688047839040016892661513590539155332149549912758174100195433329349601781131369265958792511424891023729193609128620900770713315447125049016115418191976885381112602236410931311753502707452968433196124992298649470480517846966242007263246461270771520770810430131799328083193308088289724636773607790643531436452866354650111423627521034572592737823979112084232695428253972160180409221511369736577473656711836649999633162543459680997507230167088703174694529803384183053578286041322862971874746981649344692863445440635667759517143297694564172869652694252114509474716329540073758948921416914049297463223044082227467221597571203828834108746189995611032947924910520375902117877888491668622757934308229430855981949730783974457274606352310856489258226029544948438355457509982211517841288652623777921615125881467403789862168992832796067962052598342771441156557186864194698436490155620830159949229761955857144342636970906677730309587453219194017238571977661648745058129526237481586739559677326969206506562497085089453130542021762045439959802963152043252661975828925257232099517360033417515959065142245375513812583345635509037088451486474575902343263868474240966873036604067343849243066092954818742774278497256393469682530280932948321440825468730332238081622689944764979096281393862815535934437735947165342781696428264892910240486199585684212581306233990219817258547004878756327745095022419515111841970057883247214626585411952406971632251689826462103040115218641389157246768293850042218865718471083387227744966898350999341566526531706633300654542228321421739624317070422294811622979423526800005036103581589892802909851918960285543404179502275177854846796718196039889103530970521557001312944218626995041669877765966330675403355770147868899826202900886034586079450655108325417950020644219873467263090788702889945487387220347205973678794916650505022412487579531048841490446014856034133392647529658121592363841197203370078599413028459188065955457979336152264222438653783466937253367396150379672673014716231265347000341647542454373294020790927557209023212221548480790077741463297629773622659220332998446501158797492497591985052329052396629898082018136981595365076076279512489192974550106583009684644312631345426972487275222734697285813627352349790485437716431985514599403794318660378078759188273854671013367210925065837398254220580672130436676683446253718118145571590630702367611034269513929928477040433957496189931786427345146822060868488452128344725349907698804419485301871844190018202359966095235682378276280920597456591098332160632301310364574517282702114450789420023595499277684292469843867496507776589037522670514097939321500906677281178471014840653634518670495104763563366530291359845269664863663025324460720040540148869446658966981500254454516552111867828971489289194983042315492944298469735887234838218618029942624716326674449534392853228704817638236027771148801389933030306605844215082571979043278359672665886162210371521574236589678601896906957130508878729392665272070834233931775280684819924004909090718604536409924482137070300883562905951827581035401618299380562247810886276847078720638431585123450231781707588713720503790722688987962823185044650380350036132349288622542085102858055578179513779378780063234751518408904431755671479438215595240217682212100310886914898703878354640202509997913486897779251740244941830043291134952132532612968088831187189035529364894556807136469537663257267549514920404620858181292872605843626461453836486043991801335464100847117303244062415950329646184582523451925993415156968766681339595931266815209471379492107743325264626532769974559423017410865564541828797599092886679028753607170763121807127683924229014528230110917937051613892653261872673434136077785659666820780422412790944697067214897525458059176660640384121141885779639873167858497192659809683740677064433091527518427666267953993934182653520678832534386968870334352818482539817591210034823765840583212495886077115459709686721338021831166796448101341078363519372416009306355113463926470705679216366897195498436941877891889398433760938794819972237072323070230829650501007131988836914950751698431982322820268202632607142394208857683046482376444322678484155861755900929104041006426732277452757327260197765152704185473386476927549859212502946161982197988177494287098989986846930116308545228230528639662939130265876776886074873396710021257331810944271698888475185014953446363980615099845069021048942673072618479781971640053004376583079198172770437713748260212231301901373937924898072729167715386836810481062532716785792410825261063564075104579476925216493233359663335734554009008242906447425059660155546417358281720197273175873573685904384591250229962678756139439880717482918709745367261611668032052921062770651932964963790730184296505773696681361503432387336345104935529274523828425260529188680907472800718438007163741288569866547696624054667209650874673904351647469801070576216429039236080551403074161894306641883277289442522763404520408362759219734467708125285698628079839821286133231566217764126528669727176273127459261272708582325524015578946689024868981621229243148089320010651737122141835563809007933783571786045282336785791022875894144893092001178670035420621144254755340020585620496573549391789771674699981907576975907153213611319461606842525166830033911256458979913213217219974025549519795666622699163536902886129878489113451524262561879605583271151259037634140689051862089850978704501175182782565335488486226052941674279624596060646157413614853086254647040893575109237098968912295065175795595279424768776201715224533006470079027922192999558116280754208067080536634452453067335767975586550760165997237625232385278784506388044564513962079387027421217564739056692963595947012807399205809355559658322752063614549635354788850909443759155179800444702601076337431661697405497890274659293036124675019745444772046054720059702191287566659258949339317405012049994496805643517493930298774326533187415007736362120102647931871144610489141033572382163889705956236012881887733458987566647659720692760275961516398166265518364783602212785065402879633134827106476505544029177627124534787938531067638258140563671363605632304818338411313774549227216653541269244919370520374789484624031124882061503050017924731914212912054454426733959661013003573816054494327343931053954918704358876898419267410528858015812957326172286697197663528941960611305797794509701041428378538879604344622735880361544497635439436821187495395484831311507047092500941190449655681842250239954540700825631925168355839431827965456743191805074179471660161157467560826064607641202555407465899433905275960054387712156161403522616256643221076911516678698451927053914278947373597509076541590908922211462688195699764169090284769999978675028425551922362404650804080794658301088488040388094229035980788892983772610794647107940439276032227241802329207858416551746548906554203197776954012352970789005983261402837622525508504403582868104655754730815137434913758866968965482156929756927917419492783518049784266720048817818690357937994193884334456017154672508965667306526996533568457405632410763724448956605590546554066186022797921002904186393385372874609743333984915271729850023807554342189657646608914041114577097493002359915312404641651200878170028584809177837380569015502532095458339044387479049749242864167183374432946173412495412582367498089030673503774296028083868261031554016198996349279232608589319690037584231158269735560691793852618446238438460322858521546518777915202491986202837845466692885733892536578344792389242009831527754015209277301943097463602119566802296920915780507965831454352498758187921779948805147553391092517169442551606457864064078322963054276655326895412475201297565575781681916226353409466215863424274368919305253466634131827327679460536493832337575431595960894255970375415413612374111773081922758147279616435373921780898134266297818508863998593262097550864771551310850441869897603741518526517178884099982400796138877377206893352960201355876982763857721221730934084976108053296926386409798224240000969283917196792470380755421722996364607367608140745515004146729662969629213310497414047697779320245954459002413445369856505009189411962526630946814120385984243830295900650563996841156515323973679115707643889650348483407221321715254267055709089594288523769444522693680021378806497087752821721467291372995989069631258524022491545655852465050992039304024676459618773881378242786330168405232763696275674921578194127539073637242656479734131906858577230952283547158662459252294940432465185678805095215889675917264324831320809835532765239927585132890528159035924488432300968867517936604822176045075663008800338289875127232173809271955888975894610267883149736624802181624856963849250292661745050696928813882607845142121263082209924317417381950649574592454246911317792871089214944427956318336887095667073603283639109622578996744778912418129758692645970675388147819117037503953648945198993848940411270259286563030013061693935696084306717724719313367194836899343300102410683853210247449266358556526346878671704304401797134314845664213121945533135454999859441556510223399996033920728183904094634541317959457669669938442693655406709984494251887691189493563766883350977215224320072124464848039904281142555030276172076623326690716970694203632454639641228328840766864954327737895962608707010505174126069438708535242846494377168565919295916229167594388963176568842791011082506692891393645606196044493338633853152201179246856057355655181551694979780998662728015019332056323592076744318913059924522914786556010386647566007348722613164900796728135637577284159657844288228366496932194015200626775166454094754658170262919001040419351274025129827893965336335977539929068673078934085584458036641642269783295439035551753591093011407557567198519019876804128622592979552743474184882514614303371941115913755454049709964293300708841352811085822428838786472887910772941093047566482490354839083962314601009651044419141268467363243742385320613371355353794691595855429922566679916764960557660131437914312749100767853558607120067718566494062680076224197016509931249011666340629244823130425004932611131231932887641751330183610933611421519007441592672953112993865469468529111889346466476725678933786753184650855322656734896253051463750776118051319471821179613080328140608981455361321629796360211931002867619830397090180823346169145339580400981627750050312520882099759341594520903097466400843114981198690094123906510919133111278046958866810351058751216640964742090715271698387034261315040644736554334009432006324255180399486328617069171322258880870773403486200401920388322175866807148958123736885689757164098434158588835409968767140938172571787782553105498795446176591219302437524329115386364288512988000609456941711843056761971657626803592172214677557385965830668195766931950869684389067849479114570137771484676621991332160026052142691152578148507317230014233056228367353825043535366211086457621152116289211254133508499477085477436607478385603097125372019538584197537015074379101041800970526596871872478683161476323957398151677756456499197897847285410483381121193242541467081466553181635505890156138789918951284951711573280619179843233000712794670122709666159913619062265575822121497349204092600559894542073682553990494688554634264268438208848901175486837969070670048642574484251244817708962181200491024542709438520202199545978508031741429328232217388702753011108959826777816815448424352115122593864860875166961927349624764750975899356750108379032302539265582591247267226540676911940088429091551040502312929340732423371432301131738054564154816378095817397900481257068416783264573284389536563590253085915469383674843761091866005903528618372532733550063861175783946234662318580142556307087764521863948944804939776340555056450796917973495907474329949814924638952038015642814347151451516495689649926157003440665466649014794829902270413700242357126217675421816138120953463587667412826303941728260874116418420620821257257809449480188108795002576398033976831790164728805004897564493469242651141767036225940611823901278543039111742432538288433480425640912648988255193219242780846984292046137109175913780236200616038233860021964944027687495960578206999881773842985449985454482511662337634024658279128768334875826477780240568693942797107498975523642178731523388818515900777179079885852915204581680792419711546118187687039069038852629161877145702410447524919378116546041827319534754089578093039830674805636292698886575222277757660577920073504175708238317478746411281302042193640464955936065675785018625418963663787274154988131584694344694454707247828706814931728882319386568560306244718383137098412467933539232051907752704442522216362010129759930588501223136566603947141130890530021807905385325587220787323075617169322203120807182044250448993287775742788115240159450495048952514265268330351347805235751374358295910779027232983847732761398921163796260377462902325836333050411261963505109489733173285649178177556538109796375358361229984727558033878415259834073242242355854233842640260884112201145638788784720325556292160533033128620705782479011935505082454849247162592958489573284571962293109434241391978280550028041509973483426168818704340259967755292375342794330661498059668386909618576956475084525857655363793232920178930523574805790021066501854265691894058141851960808366483601490719212229145743297916317813639419236995794871260057560269413205976466766976802953575269056884685412463080617423103726854617162869538754677566814201946900175260881215304112072257027007858581973536623647482072148104459466436004836514881784934466857557008619091838592423348780540266059911641854744808517027517242267726217067415053147328196907927708987099002081130960679734449707443641938597675819641466712591064968411553327762292059018051646784534811395478228465639809507532491854026178303967769286206766078716796013689148164696416833627448389621071955495310170527719044568515239066913468747480693406217201771734679857724374314177720215722384538251706600831168781137543626323429376267425904000994494988459265679572864973747532406007570601916612227784332901302564938494600043624271280588097236940809165706362936863250789627726606362783156606095163737801177957628323602134063642624832573707171626180665384180137546503531378992170539751045194706353375226252829438883397048140022834003091423113739407704525392043515866395661807489927667350972567495585521331446519053643110419441501694985750288869092636412231929352631323720758363378611278262625875847314496451022960060097580613370935887771403454552679916486634030249260029981321643757919878919956453234082880722969490856121543665559418956391673016212905581375304247948009297793945298490656960744784550864580471895467858738142467617928004665906966387515286370690055163113846060633420469840257435410012652959365169482841341315671794458427092692751349505366040182998658811246331499638576640284211408886609233726919619304944058869441579732050798031117796402877769625945570347816140854816225390635017729516447950568811548446901269861872448971347062326731489656497000401559717431538667809173604425080653244194374385441448088234271683301373721336203849167584127436342330391970719733177446230228967300398416237662969079428916261668603094475466176687173322043286291428801132017200709974328375677069677578496022606309203082906209741994771265995731593657346460884310032366895891041137602379565198344572113228093770697587311194064241665877337165443099021772260141913595875835507142462929798837651829092557075972210567970781971492085686342775839543351939013712533435469181416054891154884640367323907212952682981046985871661620389555001037760812537479534371076989632279852012714316109015797541019214387327470597158941325154256969015039202048791304600794270192228263684086428350681136339814823481486269202256856819217303009066058819960475314265308998067038153707247721499261275222362482883873869763604326181666090736655369316536549892686314876912522099805145454801170898912039090430266612469836046484471132942221089534218822670392900336035040441952648128388554646558790301003702267342661502087672130196381420740990085239226753004195062053284255383470493859543064430412008514182833709278987670746981036949769992075251479853980665045106794928973747506491591879556843582669809789274743203309399647098438818436202999471737927257917956463058389276402686792061987155507767783472887316307725831041292581333969179968035513191270097066089164746127759423212008190667600051282589413689343240801993145138413764831010003091958550734650594760019833420926163072578064269392483218865959710030068983634381975149158678601528909268997007209188486825088344790278076351644228380930391030640753235974163857602854147489569676695158758751477636299251619922882048769462872011953261312490390305089217515653770155310145784151156671861102862083635507885696278440177862207149701763013674755063124189254144029431219029126243557176553558325136622617695144332918601238009227951890123318507787077963338286378597511553979327880280804085045870521854423383920992173950668249032998519700367400613952218888338790024966768677547187723125589958108002975714231392323949209278115876648484636341249914674370643996348505546526446114426472925448596980257471391640248285866919485920365341081381918427291298579668532290581681307812016380215641692322626990259975432316251969012571299847465735514457362520843870804866867557963052204277196743175506613765909941793500532469684960533762201452442712138770382959128245677767075346478854204761527229244395427171904798530680550083593357872407566214768109203301763937371808507241931529401291807239523136756222292446466963119928648498555385198558630374751636999097324614600056216612466907391948416253321478087994163196479656430663401843414086073278459362133663332671401710270805627119521231918009730843157045128050581200714204889363461318715438255876180127653437979553861597453824641602190060020478136528364965082417915913733942768540109079120182701424677838779386096087317542995874437915366520414609963415350710477136687540708826989278149854330956098398081257401627433557221311339291741570507096734728112056441448308056281517181718720652912322166547603580662230634935001389251571194380227740743328209898137081251583286021176389088066832163168625709961688726014151362752507755557138795178945911481527797357612503833002863018753391444437175253484339278549040576281746453362440191149193117720154441325784084209441666276106240593919727677957219362588781415160588195395773929450910569732650533565950779970926475337010295978607982239344014107407621747009547699398503434255943423335945298440072621211772146499799599900868237614184321696023885144785082231130982486196525791517975926935867530257164029312204594161679729732028067495619969672585880844057503877661809967648336581777813520436648888349643616514435476029662723871050207909358802222586325814377231322964529466953818199333171971615455680263354843825487462287055256726277319434535313515886512824244502912504143497037312924699139953589818285947458372738590365605919404530277811601121798115946657214826658742092241987306879415386738740106065203287453033125648193278659587784762197361631598787780013351956969752191189293279319009019377170007200425678493633351985883015627901289356101201220656233182743985872898399952575745800425379980470692254178553717366097504801605354952097755141110093429090522050004699871802738318709090528196260269930908008785143994575862526412157743996742665989551006259986653477347381584005798733781005672159076907069968306597174498104368274598001058815093806870640875062201443483819744033551094035577822806071387734362525543731903739145994124136036174904852471624061907510705889756002880969335278806091535362959620102150836519437214121057539023708751641294653025396773195806622758206020134841251097969765756571471881317889709998093538420698761557619753685608819036863792846733923842365849161684753576539618370536484531382376583275330817304691511496841478198513533343458483048450392186768939038217349774632556899996413715910944882658027276004355652285876380344381931377411479166820166421368084962675679311291760921573343482519200910329515343574767867490298521099468105373500175483228331214748792388814003127805765220339106613300070338149699529903212859244440651397652918816756945651805902178287263644352232106241719856765313148196900384951392270886197476319266735111917305480606368315329257224298478393522678090141790516808507643529376389565367094679777289448982714994080333268357502719347572602031246997448134970243989021774295344389967722177137507118055002524347449814076260130309031304144091809046090423172014973395263564173416211485152037995240994009091574533956907446779595165834580310214012582149536199728163637307737028673609162423680057243647993134324005618644933398492366693563553818633509610561505162653964908151040534993833123907525967253691160421714616663973351399368759703570142914499350833810023552958578376172843260302030571510050907510139019445514829417927519413314599362561358739230656729906022900885261800248402633381044234800406181256282394071089491640860202666411649132196266942847258361137055195987261494936027616965082417191861027116445294012173153473553517542401091950995879148811773132724647780356058289436483211593123977666594312416685865673288736926386874623884212130578997055250381514433435759631998265279856968050007385514234233121099842684145918764778691150482080306522639469789794449663146645071227431551626885254366613731272296052727482127905234639722069611176128349611754389929279958991643471953266141934601383832074678372590487711212790283058488259647153048320353567268052914077139489730601561402360585644817767884545706438736258139373480977175916654852167157340241923708390284704456705348388078877803787395952975281719098060241091431801788639553864783677185331572941283652965972102854492305395045488267677559808792547314783004728200535765491378194100795903818580114481181488509820175488775648910532414034623311112809798277486493827443168731209628304628091185826803265717610468214974528297423420839658128005421038158572342147624279845393286084052999785364922163010314273880015125087024951750693509571184411974581202217577922911437504237550949042818501361430542955623200570944175404664339051117614310332611999677237947167656576226341959072501295096777834501888547317076072832319561677069165140477518233208540835712150504571738568222183978546673278711384745870668708285702672415423025841300937385502568655972132024689810296289219048873619286798828013092265762943775390629819366578696871827378662994243765624084255985414703313139799767830384581845036092377840333681291673304882399313908501337431901873048857603032665261438582639263091211550289296689037841629774779794020866652600225212361733571596835191379034100176977979947349293696003088569770153159829746418515382437835845439709957965128935189290994594832910965434895929972186155247447375341617329593216946863219066261720521582575148637145280101936918950905551802642974187125482091322739558202447789391964403571544770514371820703467078867962110629658700483773528675682633427689901131917247183005514546469596501063395929411545663511665480414931484908753977374681669991895850883482771265450197647474952911827917553206506034401857390684809888041769967230561986042641332876270901648380017041209633732324439490057548747821416456018822650367686862911408096129305195323048713617519735510741012127619027061944936124179456711465509230842645103143958869159601379472391400927443087277784714092900944536560828674730462188287453969763465308045714365687929947627952308140760130101179686853600557798420500594489940535325573551635873505729274516579914563297230752896295331782356154276164903385880834946099433304777334556665046876384592346933309107257436923623427861865224631856901263820162382782802959680684590991589716085404559003823557294707901646079977893127641854304587323602353404592700224354308274585089090025590775189275047297727690809995073360153984432786334524290706573102058972866651146842681032751033345784776676392731613223095379126175342181487586967872624723697394180643057624974128253397342797843321084625586329390384992664596514472844393281903803638119367192189831146368089791647252582273887009198321825040861168967428863757753424179819868255191209177959405265437288502863254449851131648646690841401220292161277984356048681060335795248221915322693039006624466584464786642998274754131903646956512599326818253708753416507486567419002864585188999838887127109673660808985751322070938911049349865604427924695405676264712786244738775487458162956786329925512640902795019546663514079273133650766602210369613547036211657187646948447336978508182763507278085695577952456679706541382716443528715634269145587218599963330182029225334701846701263554939777793687669868193284027241542654949311136062083798826152831167032279384498751074117223044276999369070748125739340588348256787915732660685041031436396955477890185417483820743541887662199223270427062551451650976609627120038015658258947071591263524559504465233970839896568815005917717323620058127381675482115394362482783820094615930282740369896838334423545469294882556645430472136493056377823069549825519564665792140200303444064223781587196512800380709802066003699381945650381521107825731394084814059873134038865011707239805972467106038697357717342989267942648006005201229563929624983083546025398958998218859986919462798268389000497948482787489213338717945438383987616033265862897499538635477838283096473908279988988488456098566246182401150759529851557269082226618503712438589209724056401641339483983782327720358397886454555311429488121629053911627960707249846023440231174812961219087509565559514687043047495761392870693932152157275224401365907395349690984429082047852426765200622160603739826918573000778265256728370073993635200932366943994203238277193293470524587094617913889607609307928474204290074606759167249831160527334897543989921755748384667263414791075460445264458004074348671247985509514095759936285489096279873924924931034923950426276101106390269213393984085487996849777733077895440986417257713792954962293588678262603648505951714583626877032541312571656382667279303959365044640730255899647828248676909047240490003334076607632256744970125625099284305557697658436710444953583642704292514791135332211619834411068705360414006477640205880936912767734031230665819481214115982344661413223490917211036690436961664248178355928440165373371860837535034070227574577491647244793192282335344550867560394734210970487523948666653747852618658636572523648715607362869696322999989819067872585017090968248964249797151315115587423364917358919106246121573546014816376863492300054926337315310326567339202568661155511531798986473276944397871660838764209056512557253505025204540713569653682099272758040798151033418422453275357466446850994639537019325369880104518406773395658068140952814689985906446236831675391327117684085288281867100739746993030977922056934129976307160740490768656426288899471310448045315608552664784727714298075028027298951392692483588941263502896158372980393444899892507637566909741083122876072074710349079855023367990790690941425554947232481824065016327101868442042842632475317621514502015866769891480769293241352296971222798853476084411785186305790612240782120971043065618375051864048126978540451986198393805462619734553496967802802835416844579880992729401362418400881826401570534580699523462438547567854715893474678781537010228521425335052439311245102024971792576588992781712609847210351947391325942317203982647396514611421410855417484590042744055423664872676710781821532264472339484315257853757001354252466416844443577499241525617054632760410332906323793618636112772828555592530142766079543637720210871614266372356114779761109067111820992335713248081155557696871783805210581887831322814378999499557585400806571389986355987660048213661013181278960334716118903321394891108525225479533611855428323087710910337777647877638961729125807344399351332685710608671893692509730878056311824850184055142255002062957232127940211462940031603931871704209369360032066536657297644653501128870967737870988162480743499219401191751000377094160172931668349930239341143432424550476763124052150471421342667244865051857249460521535559472784184882816360155894094108005545489436191217247808455729229036882009366914210445658309903902452869057268040666058932885566319855465432472262620727630781103110261647069180424469103925278791818143845618070481966906039434984165601123447381280122893422788524777976169323163305461397556045295489466665083225665387386940837514443721392100006792073668468999380726640050517531341666709744273059526469189472341480591626056746649047902417626236928212800874040434211694822486269092129035101490507307371507330141870436851159224310137643578997101804254889581052258102571733247503683668204394806271163785992944486257308452044064012936381488666360201935794887230586992840380868800815452679718511310619360368265813984135319178915224280603539018431522051512969895650026183298671688555495743281416970737440731057299380362456899237723585239049003261375153978345378109152051392566600783168117354723732905610311146236136484162687667227429092427011573112211825789566783251682537277174946522075784805154927693225172521606515645378244631903187593076828373246455677492541830078994971442685399029263839911784221664301967263890073523873255469483477690204089986002353480052519326530833989431959766462969704620196682559316674659361499046223567274232074940649707333784765984630907010188108659400504070197568242402309565010710016277393495814339230864532686611922679018694328182318913994753776838738338887274892121955161353279856539492685262930766365718975017250100733705008426253364372840573262759541448787450055312540669796425179313160891450968194114897670272123554288541068062259536928837221061656585446652138285800656075506958037363563063137873060210501647595940318129459201981365694654285715573365630850029993180646607623431054728160200058856845000407324055250328271625618899391831304682647925439577870019378447403401350943217039040980707764957946657100308792217990228182538376064130012646120432958833087448658419774180277779110559536523782500593848141920764065489784986902759021902258177957015128038319733505083527533816388099934582040157007529101671259927631958634601576979335624392228546373243989451053630983676129004500345874599838621092895762320770782137746458877999923719823690493387820784457712540121726287178699602261410346954578410385777503279025381745228919838761847903257838326684899984474821540821814274513432605786320111757064515229758765060262139572073292984897201574826034745420833230779529069426198311000878099476076934117986443913628697396171731410927968658267373530064877198875753616549017375821298785411975823680873611658835062321109639605236552888200330220737607848500970271429942037466890841353626147664923531650230993491432249846993476618526173872819867304643791963218184382486302475194798193285971847436277727879755893312922061560659416908555036778956672043651739074993593583733110611264270928453103554016797103996868866810705932482004278543953045371991200618535841351900627270678494568557159558401269400561001529465472234714681257381067402949771582793159694501846034237604371510982237118861697749507608126331013826060642592647243404320552956226256765777059282756196458324750552002644967375828207986637748532620970616654761989115359052944847015142328000804812598035359959138571473903696960459211281112788759889043648004427156645602147036527281884597734139777876508307895491097833530005948938868928863029794176646910567916139667130192344503544499626323949562993727057794344796464951690136908539798262983224745945326836778618956727859323825338670567580031078929568299983596656867503096788600680106248373983769902553316313123889925722419165483484016776494405064433001335985398292144356929761136650375321851271713231749215411837502899956520474632034607962300985399346506826104768291026064585263882772825780000658877231705869575502892426317419636645383254870041323968848398778879609901894239854158976685183483594245335927389506581405415283943116115497711874294284880096390865878359215728435901079097038109019623680590863702727827945237172684478910808379696356912608251362476927242432466015338090240325654849747827103338850999441692966157005117046059783385769508020712665588476883697790470897681560559056438453048470197484975863513601003080860437695855469196293027083725518532348635300162166741237449962224650788252758282709251540910950640664525501810042454481288898096540681303478390345466999620499429387876974827398226664234322854342476357170629209965864751557198625594691547729061162193873399167146109409914104686919622448251263421318881018941434442709483540255242272041869803308601154987887430196547052684060076770313531206665106633191621981557381825130316709378626515377285261359879360262632974502151362004049429904490079212768317014674832593090483687337740213311540249183800073502193592768951840768458157592116150052608803781879458084646646305636803035233135731487619206798351918606448081512046555339573877761995627971877680637228500025611472505028168121928383725118857834179209308517222039887243411685681557899880457811220144511283271400899307144425793297817415817582410183850587209214243053831242688278173063487359919276956177444452357732226061785838691560751434109914343563296595271773623725886118443770490084489539325431392877937855763476265564700892178179887564939966332946741722111161586923759339045632888171590318222454483123849647377414127950268527356566196640240259538345192080564932274539046862531865330585577895928528870792842317209920600157237819370912470048241244975466725680576402705207857416313756498955781805684498396627113290182065310347373656870966526083301409714788560470274048916278342938448560010081004082421947279789221619829332700077668937793779276726226893793885779578871037849167997811004920680428779821245223467919289386643098630076472948290413384097338001180443965778629400128562899522316944784725832004170533393592055475408497445865181529632856298492787165808642140403314481793939493309911091422303520772150167121363757840139913481591863706933559993813482511704078882370911391300972922849156743537250680385560871725963822124633078965341477090000559780968248447025022523746392957581708648512034840888763202307985896324544161446989919875859687516838948965222529576167974688704462578118559913743368042981071101552148209526742743467070816866075439888393073679970946343942014278606232453787486010148528657551845313615412762023506456774850557043238618227938978036555956332555729950048351099497786754765679559692357699582835710923721466287878122645248156784863951963285216551734636073054082912730989252002855227384588743647610658441739732954065923249384523853173034896047338665289899470018787968243911110391721927915670870963056098642323331729588594315127275751875796857286005824131600424090266763983649308043931239318296429549720621813995167839903837769495378179101668504958267262896582704798365931308512845097697906804434048837969770171698084009921172958475597970888198403744685923459866625143996229431463560109399853866070686563212685100529020828741533441674184294482990526214055293890028218446281606206596102552067025382345938391178996460647825114836869065725284727376688417368192146014368712434283136727152339925790177058868617990230223161765889748218356224044013345154058421116668489446601276753229625882394531962301168486224603091904848529142489749757664368362733262824674434013493992993183816803133828690934255938024235299211169185462064747679945526769124761922217921382685611359458543237479251964199980731403664789515531575875838493877287430472306372035198930596209588642948551115989514519910151153817965515886928364418963626654483306521876895852894667198266694758391738919907930994699516982655220840261470428783860661602675570785674811570713220996403550122948621032334175435646773382611773019603437087323864984716019778840578457820198183464220939715302784729159713144457210959056789125094552633411318765380746942721099252135983232683669776734800962339231960828542095839329706108893219586555647405101486020629982070123319003907593599155470132998824670014136927122179620237095654368001617037575269832063790086072051053156413281893987337844135063381898875886211554117723793516660585523467906357709794188611894334805843619700043389825921923658815240132806026671510394715591484029848234311942642803801755613992128971359217846300609783407548479436059631432466446422961187880357782732935548628076468376604291495586393999919746182563848912753906028245779213766073104353765675336782958807840670866423013816924141351652130413738153435570645503862348564915730811956160790493547067917440084747570368914264185764469049601981317722683922461615227777605834305761695374275255499729379319459444534204840929682698252028096567025613034067274047181583538347754059517504030205155870092990631550818537114533953965761099707534247043663370091314449310362952040090802784239720269137791062217559175671473978966032397106975748908187438557389860419465742832176937569646246899988944806108190475781891693844606261969458227377858508476441597719308232178038970814480028528451344786199868057111019146806967983738347560162202122816936676184887119531964290591806795066986994236798130262003328138207080892238755158565774367100265116893615419841476466793337924833770564727392539349715889932001370831012628757988919840993634931731542331495310316787069366687478690060939346781207504616511458893279912860891270752299143382701343242808825882646480938333481419785182345983289252672355302752335447075124214776319985008920113745766721621346002638724796415282696126246815644540555634595980595020711958006034623178288959858817262025540001922015585609914425636827412671648175046231881969163277834077545577596650339256825160253945826481012272734035764569001773367675628001696958398573698513412247431132504360604741501523781924545474113969319601686010499380319484216833729637395428059650244827988929715993148593641189119986351198315988122333821213293414612515314490612315869025032555959524237407819067206657057671300003369385633274867253821060677344191044799039557634954155922896621377860741710089646481481056062120096626230801359386094151679630869611761262467429502557897545870770912562997354890189612380614743229867295191295274299042111593001460187857750073292824935666296458437028262338813221726224618846788323117423108467399418539086272507028609356237725170567751985273073237966806864508922842533270264399592909081752526748461848378756480071764500144193750189240684825124180041755412174231405588057458320464208106666194662277212335514050991969680614293021200987747290541112138112828504461906808573774260561714704114011481014661614534019319868957010322830995521403191911225521441486994976877934724149992649024841037191845169053791465142836285249549488431205147318965762091388765741588787075636080654436193345653457148541679715876582700802610138066542908619008346118592325176099530051148927352335160892227651041025546751709941918601035069652893405005231165219233024144609823075395259992393263397641278142885861540745089069366420207795333074786396786505293343088785057841591242032953888574978403685453052702341212822793592365121082265716161107093480251830223871447379440140253968575441714234107047731177155797780436798084780105595981508119447510491367887093203960963791865361661068049900739360519405856742410983743048260322301471486132665137325793948743211915287147004611126283298248980193944489943062340054669494365917734980675107017959162458218192552687440861644980780977314443908600270461499647693134909657656757549843781509243276638274781311874471735389301751238162583923413117915039353179548363352090037155992286278252169163520942584092560299502521493188670856052431690467386863853695169631717770398008398525432208218321756710764596577419082506410765129245770319481098360040033655154295458388980918423455672348333034795483795581740243307979655311253428965940020653466659027936291189165227827012668976370675951611643324034464358937119623695941396821218449460058825867264730138452194855289332005475989272242517304648345132841628503108272939914768356145033675241595513074114589911087907432089091723445191456872808657147552147259111834993112672658078484568284599373238599978987302500383399314579859766148298873490675887757299693916710033420049928479650189981085437964834942910561797175722505857057230472320109766528391548038959600586871837564454086131510629799110848731911935395072444075409702786999658317971723319353892376997377653071538998434409427579919811486851289009518947927854258796313435616293816196117073976272502904743455271874024468523640533985633454750838886809708290238648659799976041818340358749096120590732462830313986511325194567047380091655764427633429339648937812504185251922127277273397460907675467180755700030134005336381335199898508786830205378899729409748657112518099227896519546005085612233327894929530064190824900178765237417217036168327025252121117193780405309726256847983941014845728356663852978437925721341333013899985571694068946264104493168369058957936817238168446956479181952147645238024599397855648520595446372172394342522187842302111269236696245696747673422068551140102191883780312000992643553658789489157430710149449988457319269708582643875554106881164097223707046134191254307889054126596259820090727925363059359984942900330663483976107066356663080770887914544288965750000430908724399243633353102451400659829217012157758498640649236193685745531236952689847179289363886043627291110402912479317038011317101667530326137617037142086081502167516143681257240778109640060486968105824012670767226743976353056397254139350899291170720313467417436251948397702570734942191263860828455220951215370584779615328495769857187092536290319615134926715194890704681359939077939895989740814336640611807998699610959604442161970605641789257918346968337458291564618660526227550952277970957386868569883863736341453536513525170938625882522615548918279581803365553334911624878041458253032816801672394524274468981329289396444271239119384373877948849216681544019935541390975159734998570169658989433956998037011161649232774610682585697192773961724693717169058706417066667302608017997997338654541939924029580458057055268323273207842980722925460804954784319858978700181383002527313229341196023086663559154294966643383950510372515622409299598025191075822430126898632156721603137660181124961938851936847616063398098978964533778802778254838854449151941974549886053920947624648500314402467625782408670867949247876444985538437460428404091849516414021868169628725013353031762361901370420831016933266211610297389334803064471612494734804027180367324337558299450054430092665818104736018105752900358175146971394929253899137338427714218002013972898762645120536521759969650024114432690266597164181152374262453901589871491740064635464121111538323438229374565558456181502345593367616262704579045018683620042990001546398821987913494373290093750112029883198007494184707284379775534444145303961869445325895892961954453402711345375237005599528604200472872477096508844160418310522201213978186681884104370002905540896279068068890692035279647128698157436736966944443958252206636073980435394403699047133877982638463509100817682530613251261482982842569843779144245872477921744725461665101332002305121160592967816146727866628499430176353192854620391899819756883645353711901970920441886211953702347304593762925448703394138278078179679619930128040721203020676663456057441601321912833012530796129604249978088574612543278879750537065568204216513354891209939570653840798832445619429181993455217758946175694573322211234266120709690552994763628062264571486752787846878740839789942510591590922971951850365022249551467401634061749974123456741819252765386651271727954342122285380496730806236576003379004160283562434301070495884553977774282155842245546373768838372215768840454761999713913722011115557193156248060928792516614358774697300230457912236674874022726472649346319672320558481649570592800986148619802000078691699272634994732524450926184655122802188854423965625917837033305333577601192334960329020507614401165833656520505449867098000497328859393469157354629830633670663064213851317421365539732462107509319258228899478519566649846119029043441963491877203724039713233282208995038618221001690711779459491003910330566337531686814894663520410312207374714408758499863927138269003697439825179180833835590935087054011537052630396854602035522289155574495886501482409866515821746840091016101951769015876820719414186918486377438705292549505040849241585891941781348450790951621581266507136272598434408622774818972560030825365833876564766333570567925285470334895540908206225981836063411272800820410827224410904902920992622854176250829867228910529589365803956104002309785931427113090495379338561865520361333005138030940772100883811197696030832123614630569038753956272712287523269557182762456394099929404403827824001532146651735591951712789975288503808396324100470291165431849784330107520513902925245733203718914832056556534431729724846479375509929238507464224228725783584238802933186568851385077392253028868077533816964229124750334280220122398817266000002474006116671808127987817110359385561336685748716993824518858912157381488527645508093041378275472937293327569325995507859228258100850593560342998640499769313501732556503049085550778829034479497298099981454569067241546112281638572995986279799026715808222769639895124093192308139060689903452236784402116594464546765751828527690248530920554820800106132338039421747788633275157071963931097082186555662015832868998865679236186836111558671900070466074884574210807451107211146377124914597967790177262474368913682650773674319706158432917841985798908070560137565578360392941529666305064004720848711975810954158743493683817025991563046981129034264321714371002652926016977326008661841278323069686651627662052726284797572501939780736644157679215368970221151606061947345695360426789694550591293022094426782814498019249432615984654690088731145485657426451147652891714462274389314400680773432555658914242558213999644587831161119385139468878051446661932112316730923625523640297130309376428831132738221062252068797106464115982344813158627921947017223694190031897770786379755374242694648723897721469770949122798108920948440372574839728136270291976569320141405380068141560358343184852032772603348013218095568150153341261384015040496190525788122823830741316688012100843183040041219937681682384797278102972973811327626774598233335665815911813107572513511888519236976808400840641179076987713376605244002953801358772022969545443682381169930895890286619768441035668012904389412684662481287540825069435462591120230360329622982048138908913262190971941608003155814995989126396582008945211527836810929818848298469544110297162410985510099462804479774738817668637409478934461256687289383207428277694924939432331860103494718934816428749917810473609749708796009302959590791469355886090671096110619010295696646132939912638376698901211234892823650088473181402088492350248830691868804275448564977523912344636208038048512663247323520403373816377056394424894968340304017644882054728468834903705106111530446875988873583671562570708562130529238942037124516435364381490654806165258008207903993098680400959015686506509056253316721205751889982542399489920584801478657493935286340601707514988604930249158111902338181255404898875310481923109935037979153614156627697026279577455444242539967605066853301262511465451069728119795648504410808589428993816526015784232250523404441120779197656767277167090543193003108756759082776452137150264497771946546056441922511965888844886984106633617197491220305861508920783352683319010170959891145488639045885701747375479018776756264853121240743780215265431744634354096632211110979548967582311727075524377128881998792251169531043540171827885437404935905038373147040977321172670130762633246398331596652429994103889170644831718107678567800779700578519064273836604424333463052830825346648505726668689996448348644546070518106606730024971591941342429570280929747595624400046588930046135500459945114660360708324422902065318292568346825863076636379039227238504180942511101688301709586464319235853287289110023016123680795264738653759007464291756119947384435529598614298194211231152109606399288989022864590803582419099533025461660904844227140030570879353799724743953996373923669365552844123339886453183722380945718235143410902134833649875399905233541975731847012201337062523271836332080508883391362801247348468064481235111101456614835952181177474386989704931082731678861109293176982052965736267324711055149124517064067219633668807201148928337419326463648516927737604017803287455293612381946166477089009821882205165144973775951232024257273116503284254615837553870157903110159418549685992297841186956257595916074788521165616853373568260883847054377945959347747619569241257955909220041912275631217238513821789327483975508445527824711696300037127331256947314175749338522718765692686954689009632979299792857870496320107370464387134209797015051626953961375708260700505952644712008322060148943310198107419981250754759693974079848106723094693759209516619944885647015474761156194680869382014731565444067434771804898716966334217481105564629164941121248668503899942400893405678871333418889175805620346819747281651792002498605854002351818557223082673539840402448747629776403045867209751771690143611013444939044768959877496823373949891690826544292487785894043164788168045805393550562100531123826282910720351692813216468852935193424203391483956311035653079640581446561003874460344026613636144145534671172809192092086662091077129961897775975994795994789749624408757949904870514404837383867649035533051192932749720644774363961476671530985789517555951364413269287301789337880127128661777977405991767737561372773685976419435049972490557488229596395300248816037493784924327731109795089160563849051667673345283812120554988623069705615424364473563654014629208677653306079516130013365632176270939297450331917184372903852633969130808647482294915411680792903661342475946762906925784187558845018392236503185128177483416702925898235589453633347242566455352938470386731384310386312615202643786087841025543948601195490477244629593646407753283332245162873238105426248853422913200610031021169681927264150559892752939160776279268950985788153266157132679687478031396242437842330548343139711723875019821215085994226301375842166469594481783574730106283662345379580988711240790015653776986519598165678649522289402771758024786955649254318102560238856997617921710829483350665727456221334084625516841296085902980884717741449368875351678724751623466392656340630720931152214061822226258324785416978982142716724120081430812143592782778396544053987431893984632316140266224677709626072810284788468782615791482982789631988088982443223754438840464649182737626803146907361887647555863931893415611993160772556491904937864507544444809349025709191685291886880705261796500045792777738512449507867412872752011209307219965144034958152370991778976734180915176307097449691729605798917086161813521392801470897988151773920442944094419231440137689496683870160017494695941403327024007286076000848039876728214296020215356870811941457273306845482684565225978953845973860986185539858384944744168861541194244674353967024019218728625135388904998825731558506103873133764847615196639393032009888669712203812810824261244592900134029801164843463244812981685912796024259129499639601455067217423419360529069826264243902749759719916612609740486318063604933793845740489458406541432577458121503475854221867532216471984879451525057844511621962942973067788167705215012535556164507229912383666703878710132166998876007694417587900516028292432542991881311409813079177891879853195123249474348327897756911746843728897338773964516308167206210003940468176241294545589315968846319062667207660765516219431838326812664167962681978373484537507342776893951285195483462321374834135768722120927383670232351507153269787628314269475037210399594244235371117538038160262079045959324509566387752357033878618880057962778317357908565990326981440139297714597016367048140753454600883404555155528717468132828014908351251007144458789855762720447477827356095480086245929142072704408742687385707092293557407133767574066727274826682776248149251246359909392866411573768882294750002026419075270325023881334835038318878369210254559900664167670709626293639849976059998146264661697941021843088950595550339425043611981744267545607632315271276819867825641337545702820846244406082798012362267825466048389210839237527600321975123027657848171700601277946449191842403497839015751613930152462650902830297474349889636762668560037023171279389297446565494942878059762989610992887443503067763081741604686203119121580030087990282575521636419849398835902585389570631636400407401272261944188689708409824363816718390387753858017211209230089693174941540201226699622858971109145356329618976409217279812340042308230131336698361126240799873995244423316663886121252384153867908056411877515992291293363025382387130276590453124085711647884367342102132798007072259603471176272666249519123441221854730217354605532155159107209892209558874897221700098114882952684652648530975494874183718763244292460407745291924471883257553310658722361892625002939724065085651721211872131611510453831008815928388470734777905702442907301634273622341130082255979700672818935777217031084944698521854332165772017285326600751382087834830391231578776099875387387388929084551327490455404417064216595311539897106659742592914236596753442092849987539336307119608995437743567948584303553349376203225098584403275083594068418277103492870144012723398015513083764443307674216003283655616663374389676015850900616133823843759645995166297375163671267148959015121642479439373802799109598187438839036130756087177104970264505047589872194190910299535968975465830208655151584696908648368277247500017170267833318562803265912752886819449041232197309627276502817991505831480390656842424477966048932975779968376231906081569813602367116434972638613596111372621573537360088648588593797575431672470962797975261420181502852285154735598796469127579085309856322013173561402749819524129469587664449760612895791126139449909441531710375534054282897271506816979243097731509538158111951508021497047950381288137743883971720660475802558753371473702938487128334699107554443834718395829953863602258645795558895844802302552810531349931327039318589944702076747996831469455298093111911599559168325426622717784635440374296101910416872293153028017361953911991202063506887693918226026102891451196371081200362196797899203991171140362285929246444515084349965428012272529552334286886343059139949977620719774064394286451908976244754141015143556028838703031624751405414432548151680966872979734925589165435399664652724722432662659835202335744920307613047817109429332799173774310758629584810919357183857347287636637617010401254876053146517844509017714590675733854512341408376687219258725038250531780056693134242237765667348596490977435572142162540762938708059224496231484416593925449484682750255567417901239977139571869894267496423394105753920401512129250937192998284654916724168892225735888803396053609780922947626715408404268319541714149451856987655320058338063981679600152801551265113199997833635744639605356063038465562933591566971276407407071464816443537644147284239422892165031326616252671314627458688759859935660513295763980771046949961242360851071727755671815709856979886064098981063964582993465247745924638226545700337103133577654525864435176516456883442963578825936202750321064932672543716249493925524001731315981703355776782100230918286483600083657530885697258843333676646620944286665922798573717211525768376609218305319775943784778362430529075412432150444612463927482488935508647068098606763151526886103533667108242740089693748340895822354067707085920668513218502041181032300330682533515012129058679679362413352249090750046216354219608057672226845003023568463441320939838465598867638443515905435296043911631638463844264885636107326643240857283441393872187723388973006248097881566174237140498125445330519148344174018864783210600766504044516353755063569132250851667354468621197089672380144207948885251082532333044122848925514345948786737667876698449521504366851842543311835152992728424096093550452864450539206876045606833906443154288443187328603619934367717747260291445743541088244570733894878799094722919822947035753574370661256308775081674150936948772782194719111816951462976757341238082446007373003243725033309189477367942122117961161337606499984634736621448130505864238119146217916195040007740563249106667357235956432967289987165811876507175309609183796298209779076045740611268503434979724506599260888449665714271446086080792714063362941973303644120773160532184723157557122721532010351479601230224698807667190037957593098032220322553194697332234759059265610077847022429591961311296998855654174799041797429551154042111239703628761925163976811235301611573488136005011404448336379344170596108474134330659304303975168848856828315505414017899580934661157150378331280313503268001199941074706104333533388609138795379992213813910371532256952356420312069223920864291674120350576349371565191930463284362245624063041105387873325119118603931033111034036376782109677826945260989508390032774129796910689743622402253486758806580278883149889053303123493756311843167096770470097480059413690995455295478421720128554898264354097071798506795736507188407412378963255337638941659724935859802342360077024537138149362389032612585598075305629028647499829127653229185786972630459894577297119637388534346888406051317818496711616658998927691189900150697194846885937127668255972322965302855923028448169423068386733307400494080333489485546743206987882419090289264654340344807687976409677887985031587356803901620940478834563000810456097736395111765923127122553842062471199002224855657403795980232985633711584413915760012708065322681927547252567471822783514385705714128897190479628757514369310412342626742409832982489211688571311746083701309785306638401972873652689478067445263133710754668527382603317723717954569191774473739578930756148495994134845179021777349198985624363141052413176881323469488614405576693820001665311727450636049551074753842052247631704772216322857706773547809304469013887342705784460663585727678186996925594818733072843825413535910288469441719389605794810313937794061126696767120160353802620027026368216685727845869472021793428754007455007625542143303473491172216069835612538452077329150550271980185134851888147618696784685724393472717081175651004382004156216515963758426541115654290635621889135471724167738690552132110221361588513396138257139376917647709705936118538363969025134608257850418861999177941278740419302654982945126344833953655702801213963975515559811452086343465132770408094820118166467163228413104518793083236284271699254193844575753598186999243003971081370484846256535919057097829801711557119854612440643847749829025105049502002288945484227325799485859077664666586293646249122068860136356882256110773202280513289584156848413743883753503447890644543214006451764612144839580867940386435065450872899123819447190917973702899155832190923490162401091844028410085393297879632961007948258567426346163539988054520896671420096183376047167020496183103596208290002566328582884566226574469093068792494258215678098637296738036407563109464380825838752639478793799981671675785543163858796897606896256321010790350185274470296820179952412961010245303901611608037713336714669989696465501744108476982504192827630633060013724672862842902191185538975113922655304211735132574636065541024222938762041661800973101846114534956692051909654641978883928040799288996915504071589127004532319465698989947426298020055217054226409337154000209012597767340796409529059719030802281593747973658672469588870182729689979026427347131098669361742649466104348543835083895495779526779218260839649684258264647341036147775682556188219319608607226034709874802928251426318079816791341503547077695957806128136850400478055634617353867454295759097961193001275641803102799281954097364308265724454095932895628533694467070334932902078555101073182282636031871694765564457181543426080109996958933159293037179234414502790914688341072053677250604974444776660304178001267454207589396104123541761029081679673838794181628629910938040058530225236267725283165071913876963635577768466453252702677506663176200825055332429406903764575137858385727401324133552429892097008147522604594756397888975378571711764315110372591777091787126714546653560303695850864090645896618542218099497478351954654248285215421299110566170815329361682937578712341753597877896247462232282634675645168355107071117043893346212972913051855242341570809778623340113892191149688912218793457691614711596591374217957994417297153734617009208106591624875405526032057699760229882577493501434263592967176011713669979513425541946476450866736326554990070590653536529599151003359579914756458694545746006782067073955413267760567464191002285202308769185998516721297371982373425297542454161971960402870132546978115414149196720012243983155971618177016024795521036143688698671609629833199317852480726985428082835342420184911375544522805123657100873588358944636699923842412183321469503794140314228709670524050592901825461937815550866219750358412394246554474532607788579265897324677830723677130915571115409249657630327226402143406201064456469808485899077364076208647525552327414795437315204733770640445100672809599745848627376582705412406592113228281501993340489333368739731671790836623243464073323516542462329320325944022922865624139675682337748570116297324981526262507457731053288139536412783649586805968398002798785085921647042594890142684149918927141787337256956964350609228753740929663684665803856996312114122526901046451852989009655633678554934652584276390879820914921662402827809665432218496775195782791424342828830555141699056255928539900083369084093340351967782392087488989285581823107322615404656141096322353132565253186204054232933430822409437908624465147793017844865617999484105655843613189287630755070824285288316662910195666922771858036017473042661617061750042189100647336140612966560087538973806361088012685497112418021200729515818851021162839181961540620834845265455654848339588596886120860944700993121938154807615398810358298451281911589717817057431457324738078176208501254599312968747654449192377410099953802764061944035683895684786028293216876184425386880059748914014855857820497590433271325158480586301964371470064094153836625125958041092823858558051222114456433075596715097231811583020672185108475554524658221587411469413781848246067156970244743247056208049426595729215152501714074419506207912129237316228825020075659263849005535057163621273243183344033645072193846305166458940919263899742523772804249959173806928645162386592536304092505121217089643557343230437062161084672698991981778531932678479505785325334850220662898770764877290347084669818740423235232428714441521623987921876045731514287270660772931696007955494199932724427980883345072256228458387315751744443004663489575903031550168649923103573555248810604247821546084742177338573840657881020664151879342548513861514069001585694066211512912198967610921717802250375375866165896806665108115917495019655090989975156548566439752917484281973494047140780360290973406907671882207320452441556862482347216185528058345262590814130099373801215178871322998769165780468569574173635781900323229934285586398500808776590998892677896924520085777473207117632552864571669874074828100353051010870403509787353818559694235824474823337830789765047282755462626816404873851784478674204576395614784699219345158558842951004228702883249002992384601979309012565008353383492174692098838120729203015270095226741648957460742488083451201554252613327900423251732112154568403646435900470750713584429186875631193330570094803510415258617288428021745447948154865001578247278728797972437270402633546903365739786349783467434278507399888208175287956701512489167319796713806458851780430434870793174496424366155092050082912036346912920657430406369851019918149548974192121661357483097496731247897783015161067328763446533354541134686732268251672949420258693574381264275969459076473315110579038143589590434923546849712221705999694673456848813460611469346749951371620470939347905202351660877127255835197424861089420561537109769660829713110591880594295381008152242598713227535513892327655788913030648073972441118075140939462692240510577882281471604831495944910651275969229423840791924114541816887833236130570495896142471611733604221563452482822438270107720907533463070921209208680727725163759653997445755181087072388852263388319010996953742307501346389402985663124218571718418371138343130947179881419167567228548907838726809398345941258909726249442163206299250160766396082863442920578064251550384798670152076601185386651959030655825799164554218936833086631297925621169360161949590474345299808640008988304546117923012397166264426494998009145369655855183372285855935787953848401893466969594315218962553823632411296465827902087560665471671779325069192670473320195720135989024203332503887804966240711328418812206852966459926510180615562915816677450275162208452680293386922419913439647735237339233099136827707187614969431247901587439205814100851299044601270707495147687945599750652324105680128853859720316211553804812758869321804135108208811583643078643455860098770062320936193224838692109460226428554136698797975864013607478572281993577138769283246017367003835026649948820449643512178610408559678116745476476993078512620942501065703995484941162588622964876865822281922166460536516979963799124182799022526383907502131369453391164064222285426219254428013784709612319479815362208211670689027823439748071819175922157962416355546407112714905270902284398189794526748063565549803209807207140706880524615226253062863411996062543683517375204566564166834371350811361086417591593361042291018989834217719285101583845260039569068018479315759356180963912907745862030671033225965875897279141969619587545690152517084860757007721681318863853761655683849102759464418737051149957349311849651831938407682944099674347452887004313784885272147528789402922308890698706857731315917153185962084743575886221092109278835619599456515673945781890015111022570284894704799845754595832733582423081544276822299000467522179641750901271889560716168071619124666808753591108122916878422503284939829371696278113311186700463734468285006084457054936623266400554375460576135020689626327428725333620294336124391986532283244346901983873483361895375678763277261695429885815195903207217273381678840701868863638362277832641810707193172861505220472884429241270065734331810678479759308449279112681929347878991634804169837177177377217781500059787067939977235463110201939832413837291498528583899419016635042608896581419709601602792122113610971469454378265474762379124574119287347629414503960946877307579994805654746635905033939952215006855492891522692626958079897397610605307754600724135019289403485588754378795797148415890885481151571353654370786589373368873229166821699145215012398724653229918435699661653158306984465958351667554582080941834561641543870824186643439329002951401216885696266746983800191259369320641178176008477443584588717826853598347633263674117767934634169972100559289514910090710572416233828523136627663144928557032530971285408520149569547672282073033006792078526370234763175328680761514850174786518020250885767795053150098263450440633434697522323891633281601712887995750350697596939509078227207063472127443323641464734817955546743446074351727858508990396393930133414104310919434390291492799613221305103444722818617503576836539401762729351275985446317642918403439365578289248475831672012801552843189926040382151092361252694770398967441029459272628786714360489150607439107557753086300243872318267951723712756165391833441490809729232213709341298277423682975601441339208595094837447202178081907261946094009511553462093031654198345004884836168753710387284992637079248532302724553425693645937594850186404368387568797471488192153571069460723299430117683261576347369261639173351442987479555439071029635827397649412921316331741019111543781043132830686605029798401387914455017391910615809984135996362753985336342877358230561114142683824426257993494175273558394150547924117736828550716574045925628578858445090868924797905994323660876567041140410645399766351285727679473879234250748716327797082931064554406246231577582749784686914857669121421298641351354611820784508928258422609928232595774205238474150860685434633188220633514291370681559651256827088494923339568226816844502455562331337562765789307958233214323080722253893941564732419105249454319335041639241246927373625541915344041335813841002453167918590472823479389313403028018530612786591469573552447713464060238647237160940650025380713865698465619163511779864027344480559349736190923268827867508671160607796722462633205574291229528535348534553616124050487575905205093722102176541276969888828848726947907897382033368737008992049258913441501565676830139815804056050989467016074042606440392639572642911210921798223066070322202362792514704637323107226452472899869326726574770361171750062017187968361164317380543694088800305640746863661478628241854360590725526838365327829414614955631914425639338373621423250442478729880776545805509881914379163761884148764073376705753030180346955888550118645964614539479895216069964552711187613348897337124056471131233592497310942910631918499840694985192286167439436869564141856606003596167195085571582734876950553069025481038639928984903203368883139645632625589690164776664572192628208742533474922276516448458298168235810547980746451429775862560402942994304894600003976459134541674888038384121976012322058417707410298905342763095703868590924892834229388060971274269283328029235525496556349955240633357287672839168041274969567059442530467818060419625813969402624530636772252871831554015046169383573982878517601395334025944234441914556695797106290733382980321591450289604578884640441395980558839275072946317560381795108041648437669969949150383606158570083244758727863069031357718132601457699940281670930487407809140372127364787510203637542716021494706127980494775336653478802287539023664743130690223634603069396698667131074002333526120456563456385543388856089608796480797307248394583745021900929788396432560191994249130771730587588967061406691696782737893225232177840728768681843228585209187149782178371333398085862756267499467297224229659552029715801119720530323662252397536804274714191988378304469899965853772771058637323862979614661356029019810550801376367794441301149481290693206684974867505600279716455910263696600360886287548216860150664713849186536080781525127310479924225651426716878193478930562725243489248057387822698140294313567114851772724906689392615860302417372070857032393202644833765864772266820908081610918968930802374622604811286434242311701190247184005497937171069727587880210934814939766738661861049019581842488205890200822301670657344831099154724067949268346276050915330996655995761466429085695183520242515595147280241806363037318775936957725261116574784245497777632022034975825147764551030651526096758641013961388353152031715311706049295943783714215222986815760014262452499134334937120955822609438892323359578707005959302934160561121893343941891195688957303820920899085218726647544124177444658390816093668411790349537050572369664000124430984701665457207351414327635719523969292274937311329972275742006715185275337744268242264468625921014237466200296522888775344487461046420885560541666127080763853601004098497896160098724378900744470527183271543103215453179898272778518145050183378788428596525246226802568160231231123233437788201567382785751829581788700340048512764254058781349429129783368924676331575783860283342251635792116579655769160289537299190342907938241848849778450353847140529197254666973414133772411198888103309562840346465665957173605803680176119140926949489116569442574619729931428695428274874933033324645085426354023926096641896570101460661957078703038009004941385376165421335590133311009970758052956100482393674339939946989471628289359477023537560754392670523418804634821262970384585696378446725292170766086277502192180177069923777506057894297589623647979097853957999185800976347811517352341621039817010640286224157769916517759867900580704715572384212308705210704483672626621320933129715580932603938706496873829303521516093915716718240023124388381064655019834912052878042062519044942911398953514915985593805725720361689307825604469648227147009846665712320444664542751525437831271760515941642627203346589449252232313359746489536309711404905454441486013224272577544817374867539367538892979495696724554440946805702930317818617895677128492882181242939847592664895740765318909199621889575418976210167456414002098235338169838233550882676793152695290416885071262763025492777571268097626634759104298756650547820216498542631704863316989408396040157267189171866136970344189101872806578737195150668139833485463562695969308454788241321922836968298670576328147050678765803317259482164254283143821018036082711011460242070048865866316790537331797061056396078332126371173281497607059969673955589909266740963392133558432515748646328009980200191092183683332202531504647868324541543341112209445808689047829804137920676809861693349080333469978049552637919041800221872600912562198965109955738509095332012085373720351658269741690599287538919423299270152232040969791514944844198482187759932567931207320782543512010831751122819925419325214415550409063413223259868973940095156694433291310994981675127116717772374672984283273596970301393204096312861900007507426227058544496906642348614919799350222481834822341148396488865519666377077909620502166803715938946725900306196119276984022693216028205954340033877534376178101423873745465855715625193979308755409236665326539771323844067306193024210021635098049615667750238846040413724430038236089955678623914342807933032160438873234184554001923119683963393891050014199112931760901907562076051516076255667583045958750664195857476518782181356122466700809437253034049987034347188468153162615471484383421673509098623328020918935348056260648342982063317888511218879867003229957467602767093920708420048529499024512034855468370808551526471761383093589757737482130206559094111022283549654691843089431504537863437397249480340639855780004872568199517120874257817650886877787003413439049059391308934946995061588291353040231977619967578362471238215943424348772276195925889321831045497591645407361884749499781752675681015809422936360620185997867202591385533776248666134588663499929160289975064107943231562104140207301046738339271670590328094920889324034431801283134382372761705549461585982720379252441057939748969899751641039988754531527074021458894833600475845713588582853261901072720908782688897423747821184576025241449800058000881694213365428280397890337285710665110651138554909275965817340712224290820485906276067864764379726432846424952962540827648839250610239037000656585173823675716315488413364865456842259965349773091862708915423399282044072872523292837932951981528100469179396241424569894122960291569815234343549194523745367229467888740627384072267534634670555734607120398208724917835858365475568943890304523749094567493425045515144033051666666778435425143753275079947108224306129983879163067959013927595592637070547663692629795646841866338998363221199254180668759865541138339852991240246509038707576787339996031174812972013534593063484715218344796127197963598949362515952782469914020257456163853279163655567901119673729962399911782576830847516631937490516231762229256206961371011960465186518495894061287793528286797846626821610645367590449910129666078584037226424437373557712992189176268670411880774691781083048389973955619720572938423305219847359009500809797353665507454615729221557715689755694364874257620078761013172534721150650282743690579801141720910956873810875430862793578137015849207259423506368560672253392755550759966630816096189701481729425289537438276040453954312934418675335865485635047177719672008580580914500149697348944046604620203912442746352918840604134332435445533642256581301746942044062826241888013100901326841545223333185679759541470074320977664670235084891220895189487905300521774664369050414947648794875318320406822643274864741694952318294786696089908296999976100240416204245848043764604574034916738358867900983622452429250414323413725900328680087144181862413418960320401124930368546557509390261132796554462689742795051877357145929041267068000269167364958575756661955412997393612308081994520839673071592956342143679586366515369358388284020771950204955164985434769764210217993567151814778714271677773699426954199495566212673856367769643009167070647847184329746286777628976993625031465244747408833300394553997203207399145963118579917667657492271810343277918569717674584970028762551516571793613245891287870442657010521895852380696438247133923543395636700913827129597871430755142442854790958782846889759761823886512051857614562573648557490662203855575201593787253471506686219648513458474361662662346597633281082441782813261295340354010239492018143032930244441434469235336656534246931624101393846277734455725221343869566474565549353528998162376558906016879390288254160032868609384642140243676889757592019150883726822362151910186972534106332260577922183909851917010665596770324956984740964641975077291146059640212184674528019799845601857956739123523581892556945227492698240541591781429698416918802751233797455252956011427733954250551695552733245054776740390108663169603994136608090289997985916399439887902489124585081678251540169397515168892787400590892680844942286830149044580887439285826439085479152580577769255935040919820124619077931327031621167185368538937791459500770847802175156095057928810536493067665355575009008457366663849855962698209581516547999672878423121993056930091336136303395893610881884797309801191495082872212232601979962094461348462591471361816561021074782748140126540785337026300249540325398533448624203794037285156689773639566370484120926198758132032686801614068206164147445575971417830341425764307674791646413694603871583869287472538315495064193767323640420422390801363564012455387854956632483601773358158468894940822086197076819275451640074123609056021599492323046297107427850772121998077299668866837683930313996264924363259101280738587639443894960806521123414979062923574649384634391272920496022703531498234580917807770152162574363252271187086473089428749621664297979267851507347556379955746297153737919453672212434470750127894405491853096946068547116505019387253399756138212133909361252541633839874602018680739978053533605541651891131318362818280956957654238654332135225512803600624496117059199666021966053864763040275110850245966216643551821800885808464319406179366550833271733128763345875849109293313181051657494376356626453019033302692268849225212078356364607075024900128168607442378991363530526609797006222851590533041323258097076727931713186478772900965112514918824223669437425158039220819435768095004164041032937290905682409299554690075011500929147005803082901540139019795283884362064006449465394961313283569732717068672366222158469010319468629395136868163016263861689552026897592261232210643109269038751413137831460557677207694146475118710403567044562901035792023769832857496097851952590024171361418955084607472095475509316864525671600563119395163842813180700815655103389341592416131074508274646064390442436694158409556256103886310565705539073366439404223942687335287770518540186718513986797326928171716429057683362018091859296203802261513794108741513279554999234959161970061480431158928730813802398980201538214090093219239529078725245639088176643846047415063938624338430318474443757059384425166553256211625788603072903754692572514397143420097468360814430605734587386336144101693710519831481956803875461576771256279569865496020217546586488130294241336706326425056497049379274380527145689496064464067611607097525980208624540968955582497052002075387085483175517973434465384060950086332122828018470260911405801035821778414654977841669800869874978385712259635901552424294481555264808743467181737776823798858453949347925914599558010604571228941830232510481322833452175696889209221836948829814690352922882683495054933096990748182005671755537954032050641279206830345552789969056220222573468391573619036333500434849975790907620675070543489309634079066757926113291550340122197113601220596306926953190422014744159385510653771323023326950774297300065410594336041896317721891904247764338478112354217768955801316757448259665167277228559735721460893374222484291440962922233867812326500485244724424476700318252556681958936082185006782094212753670371182574051306738484908562210257654251165173540320543367871883325950048408945216411190989933912506102519617199370065915688058776152182937783300123813700601540169740935533987667404641501237410022734331898662476563346659049798759389542263224237814579995407655174210055729306796785285633047962589174473760790516217675038296877482871509754593170789897918113830064638298254913289291230579787990793932700195008750447701095351150542194285913189052296076233239477976084147867149053552799282359859949261400327743274505970855347398911402288340489067034481339783812476492885672577939713102788729789865943198775415296009886221320253235506873599068516257646295499895557938007772359144591522292207980907819989039628706493121128285572098158754417823144063854874879487032740262340699720767471391805511707183083021224329893111453388319626255028255107134946707975174565112793347466495458579096270148652148882692327281607542861537453254252087622807294885654298371424703559196110892195890796150876983509093941251761064065670190678576257617088875644785881569972343450376608907965428251416352176815357808873483335871277564601902091615271953414715326209620780681312171506769625429379630259328047829452063523575840546838568129840961452132030128535618990396108101496059056608847506268597763335121248904552274974971580259244273742950427846785066177931453266840157470871687430802784145067758310686450577696897874113044383865731805644364213061234067679777197551348922899692845438386925532006333101537406206907888619884354000936172795523379043375946705737549273506824680144714573907517810303860726229564672557905214917847392323191688201577423667665067081311680440846615772748632459266301365535305993619759168909948848582706507547636640789346067790258009356568871134999152428082196968326497429929402216363372534550148704088028531292430878148026678604479991739066613013061323808753537461481096391730527591839622865459616362030946940348133093342654722924781834247441582914297769533535396526341310572772869975910003574256850373584235988142785208062683784456338888651484338464652669746114176455117223384879212493640607456342932858507149580372794977314054244087885045373995250489163488194899125729383361754021061913739055272139950561022084348743491503989731538272158343739552833194735641353560924421828018505306484908560101010907061764130075407885369618749437974526969905852151953373886306827930316164383451084988024548275964878235259285302407129994630009426150022232114858775023157533476119368631956602989594848385497177876342652344950811800080633456438196595033328598432823165431003734322402714858076208154394200204758760994487712879335310182433851697449834379893906556982226545240529218753647574206198437304814459418245897512903813145647799649203045329811925951868635690781639435092933898394631613398005767005273543723989523155819498867234040441400420773906057624144184080123245674672915667420070834125217179843202409312843450305259841578794930917099618300462619781845388118523339315068036476300208913457141001019131292447700029810225737164995477817363129009699497307576224344248489237585027436276382760081156848163423173197343873873778505869666470924865873817486995473274828425506650330735682197964086731436829930204003342593830698431179274546195523531949494962145516408354891305264722425319540921116235730703124759789365754111285851178585815325403353227627203000768447092498917530912751117811059906143079075695063768490820835818001627482753350971115948417077122207464589259672992663726637106549905572107786200335933107081108302006558624423473078989223425993349947868314594037263249092364362461358100086643368225092283315784064919415391713345579288348552480076663659502636692378079969230709661638282465457347657142705499624385962290828626401345997723040266526195333733743203620109957174899460079214526923734452714900126051501017364460606234904952135063555213096964861030353162794199330931672257236613022548317034347441348241918891362811723698365828339683358167730274114709553791267334394621407523540728310181092264190161558105089097352383700642303409823027133452217283731871701609030303291513045557687557547595122502882762640696614439118079280588481184694168567791431996076481983794987599972943380518203812915260013757575519989906743841822392879011510160947044494810860638235496650591515913031871790118639888834014124648419690535862006383176757839557875799963181197519873811157522750429405943339188419383445777189999413227206701049934110650867086746922717126918479171866550480384355629071155930373614499609606066308554884075203190916815399303115594104552862416966937582526786442863097834051085495676614070198955888767639089315482370271777742679267568364160612936686128352506870435677173586582007608420804990289800117887544404019943100874294573375086122458364711583877514371054198712554643752452801368523876515501419043321080794610038466069826987239143482476190966382206257212962281691845151592853692210579666747801057144538626051973463522026071459503132114239169902034731098916577105520044977027533901290965702294743531935764234099604179606391656776584197230149486240854687186240225318438834083270227375106586183016969126585643877345907311990896247484355885567368975656601535890501170795621563555628761563905892501650258050139974527071702240665086582600841720399613478222595184920953127450415281888890702386533377789349069385363493775868889449307967219086734637776090851730489909028195568650642674439880555395517506771756948085835336893174167877749612070190232865574266319463184881913463036616151198882243943717998061026557526487109082146409960363445671689500206714297026859843085822516790934204587189273022295174993517344760995100985314937280390846893984556471047725086240472276719268865431516858041533159017136013626448891964742567232493652735851668487745048715990967705752902197613309711755855238867062627712567136386809163995953568684202999897217678120308051700765726473219585490417088000541324609639605492627836608338289090354528621979761463319372637245463366873586795406331740846453235575122597060141418657687994226147024709829036267461574813627558087491322084700399715357680207270264199348611917283330689636223638921226603912338152020565101811281035405694088325910435759597622411040898194386693912560426656433642775419852310147800915264796272882196373474155441836132391298789766255877177476885616486237724914544749440654701949809345782869257051967786896425643868805935119741066221063271517435436824396240673922539212582486094105900680373285804432233996948937413457014845305899049960456241260233178981508687253131844991649141167091615755417246696968419717525448938195686699339211730331563243432232247694394403952452774383487514922316582368054923752044774348999104428953651135975352431294607430472348584759063678057024533562032853045552623149781560083640172109812513964517866594603544119586201553730840564288005142723121886472658564832716265485446905004746336415128113639786710253554187587566039428590985457196044034689895604995557608413990605083067537370133281648315282431814534666701139900795091075665161937863230335643876327201411622984790627839331586260236117034346047658998645839689942971519288477464053963032431550229623730808831021630630642711935406458375290203861607481904314756091490355721024853360764641678758965447031084945302753445538751471470607020094519924597008142921549287725072235751215622327168964583868943995280700281534000991167197443008778655170787524897103360393635113888094531274729661222615763621258399656451583513360776732480428794897412410280546694175793372301229267131334148306877467253628242952340135636802128759098341091882049920570080524054881294995546724646170279288546267269675699553002117034316912723367585896759833507204579517019677849695589438858133441951913061711910016658312618690840345248654337686885664330637758529456720944539162996701016619373245749431058645071257757323675292064936273450596892715970361180686193785213823963274477155051339225068197791851381687205614837371750129495595214254649958000664767918292110988586505190633459204366640388421636103480463877961764495492486922872250336970582285638420426272848483821639283105101973277276539587430286923328171887599710533918781329340416077548265045358231963181913759539056251103258862279423541787942556346722362729011486730081378571254195925845584656550685576268947376361929787903465829932812993066476100517463871737694996120321265976083905677837975075212981549993122493976744200420297381217657711351538304073837247100088760788230753009120892373867933860143033660002846330581856350575449575784632556178615357439398603895065155997856985950695832180935070420166751842633802316738001769236340753202941397907829388029357362142659913085379323443388729559118292830942603037458737865658242928098583149875332500084697489126649559492108173879161916383640429788797003908436079552310428898784649634289931961329362104985380082990722080286775244207551884431513452645265413980525110230589886060977875643335204802700592209711894939400368412430136417030152067032971175044184796363537400338066970736446954717031596125203872251083279473135275271848894705505964267462713752776097788081020868917885194104733837495080320759917551447142799566649556594821031203340964471628995082029933663830954199143509831976768885320935834125541351130719570109936620244786249343943058898178005844239116745262939251525267016115708331789971461182882297227253593632925593853659653485282021090590208414261628930664066241964799354569059333153152759691841972484183166828699944026808879412796543329084360176220101823467481318795249445734367425595802136970516344210717008532090938188893930241849927325972879398132912897902002642032364275609879610679829216534810160617994199967361382792675799634775004652650051062396316476125483066191848557123249327954257558619734480580668384054787909916205324118296779070864004476144620461699718627393889364674352467913400540237849612047217218877484329317128170574935798500480012611532630383590670742823833944458800862609516391754581578585664694755425203215955367000088122050226695292890885338195077792812186479102638139896626041218226788326445993962790760120338228024852627950735993293825008935901747203088227564678733046259567245996859671515365716556925593818519854902111956812094584653638575574215515911699842417899921440447826226693047019615430955122658438478399570989835958320163318847842951454380428547220887771988477854484667986928367072460653854294538604061617808753526202344085002392832194438612372582244639334689897739371347973707239914343696669494686381867995454154514051517053564704079322090770157368367661870602273654691764262006622537233989286028336293234956279174207797220019638484374268459970903957447196245390869435181638959571325310106478733700866245445857127141187183260650003333981551435804592265025301210496318941484257099496873113356006122935441891533738151279576693171494256730210080842915623455834635837498895258886078069977581096813255972909228192974102434984312690936366277988281634320818001007146831424057531880231060993801785497496283779524506292678598262039322970092193718761988198518235198254384336424340543598680369776062628341296619119762726123163328152492912817959033295359665804720653158241898413774641124075985791162550874053623994589158909405821358140353195898385098927058415140533265375895063291329009855862748993404387561569918864703092925736836102234335069027289497670813026018542168662429221569293642944321548756983410531131768186973921753488896706582853871270048734822239550355671064303173169540677553220553818547104255552810989109556738877999709498354001805928954750339996123823198233756869428434878796507291894433444043054607187790758655397261242062731881765787830366909375733199461024620696742496022976052312741413247866326332014414692228463088397465695758462565113304114172213272354149632947202115994558512177210638510163903855189319093683824082998674779971476146644128845340396847033387275707113357321813400316133191187789171860437196028953348474408368661412090958121357988419240575192153639905009415633059584177643265608406077400319846715653531076308877946500539550565711418200222546021032844410988714332594801481976510537161595416908992973841707376575930833608217019670394446962125350971410788573737484093704331324803415493974253201037149915333891083462716402526338755297036518482241883027669147635724612103468535025944875746558172352127945287844744669493762269705939510565816164696979464398723500941563314436180188965185611541604330353381000140649343006579588238674334293627573932244975303576423218207261628968555609979972137441297083208606396508636421816681305327196185460905243706635090516083284276747556332930165583809738603989277383118064939779129370455212339561778671833057848661988948016244207862113340606709913618675213819632863637840583219289701376032949867391584120642170706934441935103137762815154048900823403660721386163595244028633458294800139805683072081277580107227425633158667149619959249957455206367461140343787195810609350769006571209662767670180264321517264701458608335407171155230860899653341064673574505534221192488150057621502542932952240961790665348214447863457997752889690285833265272115786765645247874847025785236479981095340997043517951092812467233872888405650260238668906685635997490778500388773113824370818703034733377339653267444745662537271492148577732953223040841274230672764421073465436464324502330781970574288020276662189597420849756258162837164100168707624631082899356192232623980572697395576056025773194602678625366326107859609566612863682455766656103281142156174736569285327167372865206743918422313239690358583256751352231074033591535932746419013466879358016320519754442613703852131070975036786424564041856797710614242097998653053584976091601812949966816997748152001407971172463305677988385753708271998087349869056701372966588255139530824043943269311123462252337120184298757617734591203861887707804173044367243236045292417662175715247406061779105681187138792235902732593461930883740210993525456914860149585856582511096292967628344420033952829941670074547820106777033662104985377358882569670347825289054017051455635029081852321965563398984201535688732597258728292996209660314689983355727939504251692540999968504608746367521949726791540163660298281413304511220447257722623095447591546558082075245281223617354640305349700113763141048567791252574025811357848895859980588661478417154815316381748306191974106041535737267269855276173412200320034764034963021229663771336583371427645726543658112999683150746083877954466996898287703348946801101716442810334369953832861933205060050867439718220486483173369466533672380835860749257625714525738849773160471247923850786017722007570098953886767056132688674062213917580697558595104003110060936835340301955472356128958062992683252193383272601894805223157289447871549353710106476957034644078815300334415879203843621067986628946070024780261149664342497873305142047724803446480366800018968333221123457698434579501045962574245517975547706433422706790889726848086041594603935841074353162896020505768167100150431973460433658666773403027886618090966010986540725986241944532423405009665943221998876815696530851522007896658690913312342437709992740892079106240621235108494998703791173212384048458277255740220424053622703734754600674250512458851415878363724961483371474181396013627856253307722465781964853799526481261044674376399982927802096719535985805808727020592577734554063334728583575814495756910885407349348926368638889862716501646853902056090596735615896979640566002971655706120325112400493742848426751529743901600753782362386866242289016740575332641328255601528964965728836895630580758340306873241177003026470124445231402791544259829038826061431224446814239022105274201647375149195820830213838708807324672391008460708283978874295341275880781691981422896147504177213799904843516364507545780498062893564652104643188668679900727613196506549969994199160749134205431786404261598860292729082353398337320610065297479104279404347827100188302402356693860630785361151773516618380112020155456279789621724559961269606602623444950670785919926447641187275304581686423867727862019370672164816378102425888214266385888878018166672362431920255378736261686342455747023796969429962336872877219975450706533020702793438188727462198534392570526689669612905448569461699426736020741183959497463039548460126724806737854491909664727721021132498813713143051274404539649680850791849580952455978352770755364669671026873569443318163158553260996988572226200596457453604427200305353673321652057349821677118373023774029860388703506887748638818997121718463603108797699118940472532574000846564254276510298413621220871433025672182398979976869202047336191595541112407343726428610994183857478862801452167296007070041762334362961560935052701584171881988697809165789989783336957372480774262414211286370627844180571216272663551603401798307270949795128561985143273810777027723846455457349853563228407779593844510264371309192060314238664479712360256598195633758391278862319854638830964708880313371144398393614428963490061762031645746336716308875504199129085342431742994744823184850968267311002786753644931509977079989607504934219223948569174138501207144685512700612288952131385692593377134250015577691464535027363987548806762461643582465034511428160930390670373504508769065473495028347846683103376170648542386673884315674042141361496241828446907193770347097536251204317109081244266944121097960895861224056199733067806355401335238808020469869680008492249818286803565189847559976484093926985182686438273159358443372188392174072466176167162766686970936673854372485372798070248696871230237075509334342618855056303185223304878408419975587045609064188758139431192783507278242474059989441101841288709426905918680679151879626593357424690956764974875685239716754325759077778737940204677073629205567340428044480611684735424313487833869213636710601412600988676416189171836436529528124468509660113356109031541770689725529654565784466762677931258258583755802658723141996471983635138126766423741717689199293016399455175402220696237175818816822157003428174097232712492972956853432058858737964012788842516197627621492895040169550674052737204515917828749652492142483682328475864711127283623890433332711757985830710644207863987089341820625839728338251796132440439401092564572072398205895888016310269018355988596399375007064520538695033523581275044480346781346769489347021720337517241999683861212330880357054026405741292769971614785692389099086821093827450548559282154136907826859241622266585777523877916726434309008679218522204427966157541718117589644811114269917211231679587599217550044560513999056223687273506693634065466637257227218114617914267549263062231157936301870509406428251704117459839216126829455122366725966117557945239212579180198541660684673025381043097726615310081880337106409927263946338773314091970252090445860122995341886500657576927111582389669858849800855726963600512088808230189976185320644454237567501717317651583508811299630941469855462390517972818934156548741084280092236800203018790846843152188366844397552272492928867227662746269888376919500253424732583772138762322691873254968494291605455400534549513753546818556060014612811652702511594398010561866393762075628301475948608007079162017525317951051694966294898457557988754126535450085716736260654504432150223982235723413264604031450174665882658313615515772812378608753854314212712232393309756767395462050216395817565526782849246716837808475150905514839236252671441974161400481942475854934828426691711166854447237206542395797309654939290152096907283351583459549325597132460885975266347402609895328440841449678562404330437443956966134854178340189209761180016921394486826410532996439576640092392300994440895031076305876940925302735375338968232334163885420011342135506809292503988839425551495464908597296698647149582224662937945591072586005939132234388724274597999421588614572845857994496028988728201486971620973087995130480106088841353205174399769379188695047126322710088684017420957112759018050696557948834619040628036917297596913354653579562862271415846653102276970313909131548682816235756957035788563608484117972708743738532359751077784053994751752199146047291690265577707880103242206575503176621998180808956755939662910585660932379922541869474946975440600894139287507904785026126606411862628931989641689545833853939243755719072367005854880700397727725368096847056563147329920281354922235075743800678586601778339060161198199604804463721247572394592038795324230052967840402869075547619165651899076934752742028834274826449051286528159983852929346757922393267597335763408474848674211626403016668596821851334904151272633708111439049921928397936544506839960920772834851812392212349751180520121517404294227903216101029840012975576006620910010231276189384361605108967007430055995965377717267286325236474510402954531624229924078434981772319590106175602517552347582301326179247628544829764986830040999317444631575348897720691045410433566797692216579005115889426358087380825095404040559678158809332814684574328602655832824039373544827072397085154654046418805601653654897492926623250301507728346744144997583274008704150487640577111856643639725919547108696542390629064035581486273315069667207236833337861215235761178243198775096121145871244968557034809336596139939570072513020962440742672769745219894415766352217201824128316008531545203312256264577785059124474130182283331428544880868467857909860948858602998404225358873260390596495749625110435025731906068984332536437083841512954321692989278151956790128413324506415512398906009334857389515438054457089112847698913825868863987086381343582269586248149502351182591117146789364651401092193953813713360909857019219881243857770470730913102715990461588789996129675692679100957164407949139173943323419712392571543414502066211188979963962205844366924055713493784694070419690338109307677806283045950985492561995774136640385499348136146166741743627687742352150218892561850570924673818566945776127158888615981525899495398053486292159078930523533260422996779310665784851829557523100751199987671817577555924664414779811559515930972696618467349843363348729471800124708194561798740274037445927188522479750025359677713598641302897049029825954246030879752271992698605893365070022842262062050277090521482409049289051029450210801704974662040400996439945397280403207662921907256463459039035646471025314087451839155789669078979007580309168359996578727572677890384835086724929576803686103365391558438531828884694942971724659210542243884579110642864096573010001008197526364247156352617193233666570324353940618798109485428592975129092532407402093023257673869298681246791269244485261864622692756094446245267897033337709794703562519034553319310599792134194897253133290841433713761400452932205315511418233609144240005893258543508774503170072508624355686145803139373153963000504525213715850084052219498449257014985677475139014466344592181779541481003445415486799092556301339906295081179073266964572730325729732628136877459404240813201814915038717424464779927859012333390421217676466335677514178586692767967469910906073360011745966642884244910002177659528212752662190658215732236529635465975717948090479058758077421270558837027992676617392755094928333482560070420355677546326397009916357714534667832021159065304915642619382708145171703915018317499480474888457854340976234788480809029240107414203055291339977782513235162694987407463041112867864647715937111491331711049231226038639867235604118780398113510322846163638140345527775677651898517637355252092733405939427613319229884372106351652565397034902075980533209658081068112495260857366952435588799201841468618519100896753727272869217926970303614688844297762342370363627093942544376034720681491940395309812705806577255237463763202880973951588811563116281546250434366307780066994874563683782851612625071306012585646632746288137416422908613072603675036595413925184555675634429248122218590924064845704660261656579662544589838767200895813670518223033642182036926744514201656244658680355598141784244624871450422891882217352154141770490818437459896721442503632582234988085484806802970449780378116574623753765987049104089314776857700404396386488882624421900848819615220753717816364680656754699921327500857366246368928546905184164218429587624937570360913388777409373226861708891432808108057923044845382222645605786802342560219881508121714910199179516600588183478887982474131173776159415586156655859266789388643315774577553389859029652027030787273423094855013158619352636175592770219685752891430409696808205360376924670430872001891333870672171600399246125015441692502143221988760873609517005585383870297425881260697053744724057711029228960622064809991364746651294513743436717068239031750372942773826332922595877360868647171141549362640583360804885791524127767202331546057510416466003402793747429016218377173910712776298272530406051730674301658229090907162605631014958373011090006413705026985793268773199241064281756176118695316675514731247658267493926768803518108086014632067053458593723578152515104830712486905139469602742370652878895372188206424314448528008757286003688892415911740595210780259316108357544705676293006793723478072991979412434059019651235340807198224483725132071726609153083963979632489356062058299218977441194255134017498029717875328518310800252923136234440489920411368056755658452168359746598186809086801942446890047408740482177420104391598111022208660842481376570092837025148171599103577856965439037478508093754530179732614311672928878728990130924777514180066110843556601432491431269460886528374853586672451785607894369925258714625423617258446766757994336809782591138048418211613970389566412732207717417242945888290823671297717923151672277900783273585665898283482104917655466543797236340612366543475927474520801497671053741165517298209326943738875860453104890269722922568032808549336351144799557518613324626289530121015209221921289912804745747882795107139107626906888259641685956986504792805419886469670027387367028252441435274220770398017698321490989535552901320979845289983945082327110248395870019476483797047713246808262324843561362007530750865310361949253292116736580953073999458687096950952918550570888390489327170136616733402208220569882218465995347482238842460113872152896651007588831399353500313371474992253932486984514815838310357565287987568293469741698397381211659658580917820420421952761524566087292105175655320714609763527438966125934569727611691723161835759168011611245440844412336431319590433871491176260508399716729287555683444874406005187195905350384625717891341043644651257946973226412487385657793145813884234743063827357398040138621130439060168518494203841191748604778421080641067388196438656854618148147562527177419229162189454251836665041096566212464295713368581193086114352632387458521962663075334984225930143363315970442700409456393727177438598455695686584711561573369962962225953236337790295221309892730212322583931357645438163677775483264673427411604798273095647531325377990872357753740268703840268283978716231054523621516367050117900866184193712238621861679578137193190605301618038014971099408893679914215267762089294836222238459564614784355281368926190262646338005836217629007805248882024500823372162358226200328336494455298899305014363484774224139721393947211442030620063448752538547785834616060213080354824851047224701548521507205810763200284535042581517037958590920748258027541248112298892684964766614884466604996544387777493785103106876880469219172380631181010026634985297892489290784875750660983841520388584326023789762395239652013768419409721123087129545470967861687972982207926436365073636511301720194807127456349267492834099358281140059364953315124971199068788798317672442109595079011894683736343317662612775991437941237008831666029887752009436105901124005323724541215924104424631308268708775038729253238467000428643183163828339306741536567451387965433368778321210833163639301421632637871821856799795864839361194855423534019665046768678874657119588048278919776855740252261350102574625010129016641459753939239699540163421458191650913041049103497092897085580842480592998168781270046204633880517103231039850472301117152402490959453789233036399860785183176293832923826037940903714674786968408693593986256123372242815335518386908889935754344276158294089014634882256708544193718991485343712549907799831897311205872684303092581043500429920525788386198235980032053959046208936553238277072496081039943737048000020803328958327983824222551729823251680278085713685322476633948797564779629516282866075718098307099767930334586861009801163897826951929178635303514179098024369253926256502752603988011801689064825099473017586758746117813795032926908018919012512297215966598493334090183053404275364971795435201829251923130142154536781036197376588235814278165770181249389247023380341261553390575971228082447965636248573781312808126596308535681065327124203051266240454528134531742453571178858975949323441023995158557917884183199294848634464808147799833810689907627744083727019805395358411305536000092893370117608190725903553360986770321561540468430126351510984675346631867246228701665483700484821001157370590274054553351131115436919153176112890747249341524664897116535227714252640390992600649304357315427986891402540377149145859794806677423102522894926221348617914857275919513449071224140155758431519833765404657794279943868802128147227438361618193950261453420934602101632072224417564632408067429050197238219680524977888784256410043656088434887098680060198928779124849254678959320578806923730937256271862931150837888593988466137623765841185750834101152133923365485803309568988077052598450925633414178561806920411611104117738406431531031252992502665344841984504499596345131679582115662743919402418956049194404277883968226147447966374251857896013765928511176205149299400140622174793415147787793090191791902340212525673260803470438744546345879741752081921355706636209610403708072901837622690362173225691406628007631973834525825333415870490717994590162326383985163796261263661272615395426572252380699523043477386672886135387080958812599199683261801565579259767858572083686162370444608728884264589471173737662150636689616583554810711924795525846200925780734766761416994629559082080013461175301511712631306362786792440844740057381936805137448208461938836309182332806876193695218806303903120585466954098041163047549247480380667220450156212839171580380899006869391830453025764067184994589340848544994684425276591934543369010464922547264477172167468655869439592957482842170056448562924376186481941609434590517020000890529934689619505576741559572135798544824816698018472525660852447638832458946438136468467446086206589200726365804160552243620317152368919016250901618375586227025244102089443747826347001636065126608737107528502971739684812403135451165904738804255995056070655962885609810072984826487305768846752793717236521877506050139565170217290843762543835262899335469093449019330529888855012668810369837817781539418416317252289946953464310245817960499643123789188519243891689083525883837241845083051082892586199679698411416856693567707419536851784221457350822868739012693052775555475833170470985616200622284562626617690671018687275166325200561789415270225631694463405461464741619745398614904686475564543448506681160609035289170764706360524806987090767585127122816944967578906300922244756282778945804037692692058991165724552581997271172572294310743819008530514067398362799446024817138823067225334771140046987883750514484225672131937789109685360438634472368875001621033625109241678281009416614304959316218067444015192077706156491547670218999091603549820139149932030784205920226153169963917788560055508434196079611222220892000622198399362191766576729083999403660608914003571820033190752170998945903056147749019276391012588339200167756458272451475719027261804865145661720378051824837857644622727769492892831309466945471847110012569411836450605365535130603341742863977500923342096371229955856086888807418039616345453130322713198660425726468215164221013240448895025325112202309501913950025306246749525879688215148731628903459268378726652303682168277866153986863879961583387859436186434793240621586390438893484979530658134669303346412055889390883606694297131291217132430065953122855512241072630363400685488842199130577499020607580525173962889308005523288156756529747164612911731216757909478552635306904524086866536450936067688500159227849376741401720296721569759988176249485828875104865981635750737385657864550473631443227451878185158187492339348014320174425874386826895987965692511864391538037899097993822523240847704047424053445770209943769896628620856749656345537045861252560208595988070917607235367817300825323730493752699759737516017361294131430824234661787928508715113236716402052178213805250416848062355167377430727502277316898971828108171763061918648040512277256623322960983720189282624879729743545706404160461571069825626289662164824270534371556337689758734762313161834955283538981737608575683489274817069376264160572252996492051663323116387820666296293010834803147944547304739930043955662262873085856407631584296953199795284530256619413798233193646258377654402600429695327734806966011547357788778535546217830953254986579281677952798755250753274314444696005245231563331071951361049242935453795835000797958074956016497126037911996974853185038704912902228059342835575437685454192200133320990728362112090185775815890155947755927303829504336222515306325395969632490260645127794907131615532900411259835643611569492747690075464420189445479216034563263420811159912287607973141288321013563532544343145658679646339934992233293960223859459011932383921729656636739008387166054384544923831000933865802498348169966831167438533607297302361392697853316108938439366884318285863844468994464679892335449098775774636543570534632991333609865632827126028927129626437857380706656897510699858551253972601517531909848996281760506337583535089232512205343933619367364070407144220789790506507475923048299673490481562298712805374789700611370649638644160320652910302409752850626970421412673520081747779372691931131972419984479946111783959886158608058081926649541551616602420643228328907335976802520605641777534063712204283779601465293032400130355046851453447664412136194645767931058678825679182323371001745753946867063812586736866711554909629245613631946484553971038639727287538083921354294349828040997800610987211810640661819246346903474290426506570499378828222440124892267631260348967447727241570772802804142461304253276702764356184838907044883791034109169840142328856432465818577015456253432082137271019642831134525753950765431313359063125798790983571061365061606726511906305571660926551604346074591946441218354638964762182248528650651346166693059190406144519050912709342987348893996869876621419869154531143437314407493401957714250689033015394953732777375058202268014237635260142014211834609666188242196370198440848014672213317121568605440363967312814941486005578783640717239521239018194363669933206796914219308977044958818695642998688380000814710529841540835703528309125578717388637809386152160553003294559607820250391103165545350044475034049452156835333369727834394010770235701222554552358336722451334933870086454051967374678925420292244793213222571527257482437162434493442322183719178668782672235210630300323645459027390178930401208489407406504508956944419219029241906052427206254115688997944285138678313584210337149359976234985192472208611378664826479909369494021247419912566928928194888913299336624545212958252436839148118864655752165893747656443831217025794234405793680287352191809587984094458399658478257345036700097597819442017390320263526134010949674226113573638838565538456356191886075621638195319132614122470217168153430540691127583005045437821285931650105137490517798522665304295447748629428143148756579952315502445105679741389382377214704824785809953866104173121335100866186803647106366887931409504815359185404455799740937600901357661905630168029562872013924750231687544238458936784427303706602239123623611663092876980653708271571102593713133753138225279925437326961212605428197304169341681208414960656057988120526556104549760912414343313526274010676469762789820087646080976826788405876902830131153710029494353362316163755849022749840723040537703050698518246141366438844269243119149300633383792290664813896077322155064339491522277173046851894251495209270350437887179344835716074694205016236926383093846968961602800082308219906405374046204549577231677186877203009292746894058552536167314309552275467643355832601203212430449012779682777931432755874120909045656812877688762523845010514912553346419163789162434824786653490724393724706924787880942040618105882399085918532427931649336475802468480625538856714743415376817377481988779130296174603275402148960226981213366232839689247946582006369034547715232765778347142594191226011185448651404671583386172439391571212296791458717596825145879734358169177952221650820872352953893488350044531045819695886956334342897942543412339114910421447139028955196906204478099418290084570195254717090058421078167785316936004865310965781739899683654639580753323251927070746492496984653833596387343395261419567883320178109574487744760734334750360089344143236969078831869190547184951808207205454064414302289315592496420552224003981073173492164298733841226795841472764356970909164678084051815278694489386148030515353085555074991746759052525454999885828819982794025058729959470793881631045898134755349424425820479399412141188251797229787056644957496744637218533396466648485608887945715194913734373823667908639991242715534342245010274027149493033516028306103992107676414535417677838246428186606713131924740469308084165156096848032888573443092393620649583712162117842757608229088219524825560101239981023415331835182969035388549246783347978036922313633768563577289981307938349208732855191005484230651985260283491331446884517543098187126821915136600398222247768430837509330411353522176711684186047912352457651215960171398422093798863422703957758397013058252716541392086750388164371582632634386129728474110844955790289867672702761304819309730033647061655948051561056919171611032335504442985977313309110102186544491328509480664342620087362430267378472788755145623422221469056608261792937918695736039567509294277464392521802435836973420928506360814630596540559135074108273038753437863539442489897736487789312246761474107490467417896424496934859207007601506902533891056880273636395788015833453527226961493423159896182211708901766421333350444380949749287320909810950160322698360185370753381684869346330983254864519867146348937072028114891656154030193281948325889285881007797806652686006124110079998304571629829629407288698492512834691797263694952309092565197358494610161029961950314014702978292989125314760663733709397973972256227364700755366318492179226987730580425210696515694207842745026362926901546219973453589834942324390409109927094179632188083088352636540860010333705944564486485513634668766763729952331382461080995988300475628159438263939748009596096211259646036295409296132532651953511272945354323752458557595413403744828830675732306959270191106534816228104766038974997708450129367950333907241953870878519520572733361765345708119593383323173281331326281551805634182059819578564937827281297311317122127773585456837994484917492302375457753584124388789180033186913336946561183688510815028836298157722600418915139203901747511325692964660713229583253554171635672870807526406673036741580023852616502223308704680028059512580102868992976332530761890571947497773912409744281096321679571315208857786686462730991178299129929962021780494527213819117360628152371878525488996703083582443977888973067804584787028345927145363392289312046612161112029593954177675477388269107222514566281881215547349817111558310168008978613071864941662315412589743206922455221117407186087303955121349828311976469682333619968547889240363516348702983344889040807412254115798901872575397209941929018682528590802631988776726780854607074614811639939937894328775357242153136392430768279390852305906918529158640474299514620921591215319310128540871489097123188364694800815514510114743399731451354005967635940002137845689181338660063309037258422281696520373768003802098043240207135671470764890755856385074646092227466647693200657058526775092037484388636594020495290108689381574855824336783399280016574194758166299824801058682580602009561220019788608459269628907584869379509678673351450223587135718854121988367713418042638802534301415853705055389297037886832055028475473151897015746804341447582452537180099398457514356264613118915264794101670275438834108661965976490273535217254931419359705780203679615816250861272700314768729027376524594846502309530732213487335130978279825501391895311390902765815259047611679788345650478315151606516371522330710396783829480051659584636512661707555744136913592062036694272266344314299600706335215476831691960156471062803256295802766373548453013184664485036860121601879316960272741383962873644993296416696449728092476575446778988697978353347226391390858157532087517485820672587224115422675018535603390302342621766638897503045547835003256950509575588956495962630355478119522853674731178370126888892278387644675265462273580919039263009066328543996052936424983898498522207429147715541486818397488380411840463624073598985242295579439904205424745035924010091160911793878424122220752745274687904520572773182519554536646210643885934098623648499798331124804167815959528048024706911235097655150847362447154658380138077869574796866322586796796141612830407673308023460999340054967886419216903891633235974731262891276833927274969661896358093338350112123980604484696033821242983514247752282434313507018297912926471825333565828903166692099494019213752236671679058195394243259465023319757020256174950698699255119643088617879845410061564622243156764959541624661646099538733508218538145941733305750345321756482096250273976244244980916364069335315339911493043242353662877422879106224893227902032637757955004162155441793393389955427336288885558516783817853922128036039430155264779479755201120586148770289675683606979115178557428798224482347702461360489028240443741480189811875005997940610177964485777662902265797943667924133252890424441498589706523563426430716733635829999715875900538220105498343765917516281895091012104636085838969408956295889636901016040908692272614870763573345233511580557370553776221321159790245910994158609417340678792305569161671543208811508753366527949569695298887405806373987741487657223276789227221071884356069634781689716473383081003648323386684847352624324224321267133883523142470416477425226222619912205697410079651831871520969416179180981280966849064367347918519067756836982065507216259158375430160036208269803605980125878452110883148906493405567718274567739831652553880957242039598114874845201300006386976319136105340763874795536435479118929692200818896700501273672270320299090050701964282549720620854790802293434301161518343871489839947550110261716166416841615525980106617455471269752454592652248913261257456706165690690907668069553223139090979079570995495955158683605071097638258645587044319656871660040370070519631287356849540637960150843198735817992950086129977787303319095929072631300225480459486210844605785084693600807526717137844626793113191695514186096473810225490794654889823026595968688736825807878786367722147796335564255271428241119984379296271841864008126462536642699061034126266346616468670844429824519528727330812642981201322481788829639093809607151242270773220464323662537446378835877297503649582689172535708747207248732313734839998625932636019846473453774675612930206989645877517460249325001364270287857509857736379213672163564379242287848374122564558407801067211036204237013218246549273773628174948566458660806540417302220166721009482160846847061859483562627080547432356497713727977244661186828267582771832784743689823093017745597964838886345488083250367244638914890385631907838529977616372349087575746361349670574634477497231188743658021599510981683289890475002296121399069099224791669832841390123239163294552041684267948623177371999913963099277474281124144959335156376926780692130026783124174990122066500121800550102759624310592146195046694285208768645418867623641495087475396667136626860792862849369960052232103837818087578367800652440078976833574742253747304951094078673978824721141391655020360098646152824520702403419404225161756603927453654899432547670358944164828248549662034090732495912026225614355669793466886705574704824407457455182713509082904969260283549182244718026541661722286793445840796850934769574000755433234354686689431351435523546752800947809600722311225356762120846869229264261961643540329306258172366829901074874860055424782518485827480919240858001607155742457376021914632532851530198939638218377952458501873841664080020752648550935471477613743465633533514764012363225646338178326668357982672762520020918919796973935807492047292739076087083788273592140605193644591635914942224263350139974283122236874012571571966311455584294299074330001275575724933145660502648170190691206102272839632056495447445350815055826409946365017200082271730867588766098782910965846969817520308057967780662671754860754390576956230861025815078731915659798222562769854599030498858973486887529953647630502961261302074330144204334248040557599516533740844286968053382907645790438441930793251163805157932123348277933568290761782197919095139475306132616171268104119037280140075494652623208367537379563505048659830739887062349777111946801252310763408033268014062049964106883561568251640828324706111387093591863195625145225147431313302357098545781282524475640047824141475097529124911477462962905257229364835434772572781803272344669053484572854653480491300077028599257564178546353399271472285799740628071807604858062046295683483732443309010383649677689419223741628266128745169775092202900369707296931935462671846884787911114571928975079821226689706507725264253567227377028608537090642130290127442574310898835177573625020779114121989314277183660238966344174876577747417439836102128302055634250494688189541863993655099833715120932666426899984119046486289403240868971594240571007193643384658376677884266902516554166550992325378051664675790619213234755297665824188641102762059115051743354782998007797193559671166659547236887430945900050470288901063038466087836928950387848185049633971472207564337000323637905145660767537642434828872800775723251034068878487078831942010538603730990819087242605460806374270109419625283956330249960659790315175869814863276632850346443555761095263531618926616096132852512971820956695758115845215593181489702714425781193419034742331519321860942400168345658233102137108637892335742479072538829560339287894842876793491482526816006518194118725178088089641891927997661803853141647969368961786226773673777372300026256461878270868705575995983917671461244227147136320313352288874716360042691406386136032706238000624611955578490904635748913412733527128764640060724999362362284285300949504971132407161301463901717232230933590479835676511827425133560687675629469984220536469300718142137967943781131416992022249109405643590335323595306795589825504881083450260847915632730639376678528531825226358474019684906626501762795935279625539118677428096609892804406356947218781720658861466275445553022468170117018365141804656726325815028201488227471692799211842599337845738701570268328293221743912443642288338553676923885506458109539846605952655748234576384440570866399047768757035169248274093094140580217055326749196482373234091012827543201091843273257470860662406477048954097867581244122518384465010544091350821753446844556918382602362082768317714588082373470686067519406097076116819881329971310524009085357758958062479223376900229854265367283082145045531122406215508850792763909909976622514571051427712252959512662694197859310287841729114351623497171089375482571327434953477936054859088014156354697538463979662572182825676093501389759825949893418365988403252350978699868324117848488305899527317990475251689580008786611169624137722313726651037500676515836805494140278069988131402775357623244649588836614339637450012120663594575425103182169152123351202491389712120888868014698876757710019500826001512620858082999893473707354009015765214588306105335636441708885571757768159543441319122258577380103536046886411606776913643713149654674697627115563847731211850366365817315960047801273593212495687095928679327992122018708004840420981285318255244390951488949416562546972337792954785345361762464605678659484765004348250157440012551878179499966100085733035577133478200537504533864925573750322887558328945584987082414709564715076519927907746491462609356337297648731303237217192262663444260646408181728214933380039689142541898012858782695224834456062223382473429379978033597861612482726759057439680340430308184473554270791349478762009200895267826951557246069268929400550477034641070808231724699358238996954977477782604109233043174070534889265267576787002893461424327705155171627773813260602917348706686230467688590736860796499348736610010413262694306747615412909833596028667077651992590920216646537755278155014054844761499615874074215224775361513612464435083917426102155128369229075523045997894509847999858324476615445627253765984458892255907622745762362270474484393133385503933957314723954881457259692396270230251819349524931384057384626469060036556043612727530695392918268783260269008894839907857360418276877328685102623783974895523907134014480941029445260593605440000187069606195885108911385917123444798256481547711885210376027569087931554716778619253584259416486394799349839501730432400332728141590783586480515081260186947443410274533809405833700049989322379722805784720436189517375525195003529422111247242637595684188262127845851047955563096533147589871789705429818241139508158188480466867355062831844190276954870573401772970856634496615496036597047781578923771708311632638980621198943189589740770131674551336878941738294683050524938231141500774462788058156400073670948330217909634708231449337436085888871369117614272731784195554944877982934550320120828916361081364275741144082602612890523283861137299054794400869224823217288906683714767812066779664879887213213576441941999316083329231892279752023049513085482131075051702821698683692042437326680900677411626413030122193373548998144909689598617891613406324757086438107120701602224762884977348159747138997455247993164634467182121645556301897523177452847417860871967287463889913751683535847910279459688735982026882723787294181196187173370900749684777618149369881112065122545225532520575153475063973429694733158913901330032784425186831009880354325433006941460828751533093907699585263470003243679204760275507470831287382615361558787343134096364250396913672669038369693335483508058448296073036525174593222160152909337913369948561314663415775456625103939167013858209696547269661443250916600037939189467944350052428321995042484844118204282480797868983023594320747875342259193332772724950102499677709743383655008176600547516948114163224236790485601577129976782172205188386790484901973348050535464443534864524627874116571915082938159683454529121337827660192720920075912948444314704361696513233287450150023199918305678709151003410407729902596950007395833337054497500537393034385844612184512106836973151886034228052341959820511378309487281778439594384213112183228385191390524790670975255618861563409444688479245206878898215314857391533697018796149473083469218682753841454695742847601725499557351834845673074826850150095901899619559889575151856508310277193616467514571385138065145638186978320647418898936617953360343674730476335500983071264999407164027867012838890104401922611729221607656170259870422611078537870231772853628970800919201192343215840404696604108627672467170414322649301979392304548375146591117116308968378243297096444797073372339298322958473278173586751275455834974575910570317642037329695622106209229323057672040443011275447040020571486973368870149951148461314891157064773916280888179613383371396885366944468592338201654094740803751002546028784327829639959018825629105365972593546372651472892641574640576792190139493844672407858659285553334745054537476479519592396105004817211891003114864618332128629628055664428215618529689244806273108645525495148308838396262072499479202167458409150699454009092868728726217120081330751673490701675786728753335603423711233661640669745614359175609811196289346762092290419951809656832010756180369038974677119884850455150907427515642389805611960848491941186352281148249898943777000469283263976123891850863384732404278130455805285206534615497925154843321612423487500349645578720152683105847597145318511112946804837414835513913472939230394137994510937369535649255604638221853106488267845838423911117154552416577541412793997924141016316852543419423357867657714990720844396989894552781397754033789352254355946429078698462795056223081266815275566386145171883047044503082310253541985270259645201107653094095860616501179614034038046913265416220485549325270551405239734584781883246337525587141526011726569223745739399765674400324366249214593867488716557396415237180695033517570685789221677811347871659615555575983287021290064088426486114889475155333541499906318181934540685138364440824986191056124339137890322266303365726484202112981499509640396644902306977595336645105245835017816371011462890504945328602401122864967183496807553497211973563421185250806396080640702906242109162096803060290851236204504393156477883732843370044122233634864070291099931966573947429407140688857772863943436586981863658480178802859394830178561845336309890777916838541689336443679991215329491219835284119696553561935076236502730580499075956763101193727365635254645096191745670166077546722104684352533863229745446214900249180424570106430455679109670803981333110411829993502309518496917174272179505997532046290937212765263430709143515928675266142676349496953422017774268620256426688270256223476658395235795889466832136629494079445005751545662940034323063083043186081956193848805495449025225932724628790733063495761796637383024092745308739144716484347593372727095257511900733204790865299542753813705478151826137207991870319195642927576948816971114167027806956864640860475617184726644461934511807355149148341152893230414769356688660865718416151444378622969009229198866290823339844113696555219023969878543849172166528440027700559062187123502018721430352670112316187814042753543836440055427193089726788557419482069481854909386284768784265172681892435814875505814741301778884998116468908067756354010205639953654098769681533318058489337567816585773120285483130082486908637176328737039349959717998466156381729548284154448582295391977893595320584862578243461500631662309503518592533620235293272467208896097005287217553329828879417654914133978743780989941239557672246209837901016302349763049067315601379603537928064831206126749533026920459379602794088931043644629207390609372203334654254590337325789682182724472448349437380032423622341883924794868400892291446721166634288512938973094973251271922230533388766228726467340603684344825352495473818340527908613165166082108271913253465938253672724280775923870298882410391386738980425691548988028804707250773850206904710412227875423596415215216403318704200067495251503834749313318066379727811983526358721834401107050820891244740481349556160937183991578361269666255197798716344510875585019370116197286937421023383066839113949154333541162721474142253280637682298108243412992507012316399579524896420307608753241778731423742852190508825485724534165209500616644988852762718413020431139091700920478310106558095262964192286903170752627375644080768346644766648478269617222651664235104621009978173033217712441645573216029838897447444332807998198358620429742204403599689475808628417158844779520274438583827576985683286991989649972963316052957366891768440794414697033055352900141294167373154967340431994380295428722337901241013047589082955263696005992634173602657866311781935717712602555477220370828554329404396001972551291748203933915450161139173440041212475533524645297993987059253108646659644753596941752473981462972615529488799602267896054381232476538266524429806436545222502557905409910585597133185313020095190666544037739089951312015307961914609672822139974274175578344032221857179763452938329493400598847944459967684991739383128079617532037498946620027689300489341951898736821299267614780745838035382974601640841125424609085500122334814412728005030766130055173304064801954388560832517182715511547197023270459741743782551600802581259428843875041629401056169140096549527948505225509452003383215620349799063904573654538912210014394144272236045114965334472161513275182665488659295928178347591821185346796387467922263853016668355515068401189799775461584508227004375676413606153755079059730899185098120554891401128434002222228016609397527009142787159020086594631006020559780014871972852352941021799090035272353081914053180173063772327354275259342722457217297066841102988557065947611080790045205113417581442548951127491487465542544685069808465853721010987422444691917888057439989842706626545295149706205120668621617989246804197240674072543517252502574353238789252987809584068943121506993542108817100899516514436598474440261999652882991117629895977211808549701353395254986168059680240310743439664471138787872583228275830166782223338808292959151219545052505335475771343278034327226222768414409470972964413922493005797586140434813293405424406686581431025062811751768828227423956524037080894550640427036253048938830776944743869940074154941007029086386947197025562492233664339599844641667768639799629877514389332661695394207240066129339406903539860589410367967444313889359511126123720712102953599752294454599776586734257908450836399106702498520430250410165567275122928437041260289991176865976906491335473936972039289593582040212923208125616181445633290865263962395677792426771254256054846958537490335029366780726077601549097883981251674205947902691766278524867879506538454841183554191993425775084344570114384531598337640539806501291524698290542163971507746021897195705905377329169893817897948963845354718548905785239183178461248524888938223007352042510395471189670069359284764800408545348427505322244860375294093806661142569888967111507011548447884325960421867097862598696467756679347789870274690682839255751033410303047809407132083726999004043857796942724475416873589134323047491004290846320124361641423219274190807657313356083670624507174327106101756251712238680460820163299709410295494406187844172727098979788473846343562944222891032662482150157299512644755414412201387889443877688106879593761559696011541898387416039548546617716802134356033888417143997258000555587096598072218719398063178140547375878537785924721655006155659191182542326644114066829753664005830055117765487204065985198528133236376487870342831031291558560070370890398277512489767783754409729856379738651123940359739369429125355669369139038677572608531613198822013342100791669846849578801205519548478240634960948865136059473877551742420305500031505611924725263311082444571119021063847439287771428361648954421841877633595553050711355801531525771554486394643346726878307502101789175720737730979594242809192734247230589153578285996713647026773803476437720258671023691822406240048548768608288994043989594268077537290746239407873623563930742045115923066271611287819107294984968677137310949924469092546509392001985240317548633153895133848088485686142885960803649933084105990292949137333223836538841734777429282816366532748785728859628346930698616602352739098673204977560094091994037638838351140705717280627245784361416197893841442654427425140209139891649915555798421754709366472936677245632770336472383510622699943484402138066935618949359078334385614377577234750377228287917218693042901368715465744514574488655664699311762751062107799607370573298973070237030971628913269595975500359294673544355711216412827141549525329464057724263357706480969923605043997505061213075934506504461658146922783982902147384447636015849014304654357343588715961849747720053780692989476337559993823866394934366265020066186360779902276391906897607097629744676366767206690123587044543158212841721667507559402739247200158931757683778140650649798648462629497679142297214961026584987250870346996190558605447634236944581324384395700703443003464407786986756936951363736385061257689321363466365851287250709935687294334522881681183167101650386448620482643266953983212086208078731227969685342173865580434689739420163016593229891739473245051801373607982092806616305244654540029697753462561595552158655608070992625649402185317138115762271822303023398888714117870424179750883086886339200102354101305154845378354424262045110554557726527850986408592953984533094862475263151626522930964051062847790371943822132585859470575765667422332694538116274136965459747090798299118838190626059749638925142574633384641611962150152606137940292546467877707085771681225854855157709405450626028656235539929400364153220089345640979127892603240512462863907308397081403383676033026942235988132777619622126632766131320964661126464464447380466422307637106435325868454450255667544008141521379139864822565568859748215730455255120308079955078522944744599970278326814457881894262081186865944159249226079865460163729742406252861387278177373784787889577970215969481334364124013146466731492563971456433505256101405032228214527154842543477847043349798685926015352219782903971130162452956132922619221829352657130993018050993637911624640574533465662902618684505986665630889246949520465087342038682911709931262158797368342277021897116651856135797322796702461500954520272507726442608758076913154752778978721745617228334912298280642877515439120901907048067362331735513357759959022409764918574566411410503135960966878135320049013661985874402860620989192540580784338916501362485240964224775563890663265802150816643609082369929208491704929722161954965050806658084670367057952381921356142101310814326475704486436581637743025723919814205784475192378088083446334088206451021559314947936047732334587240654232608370459131732397636927034899915175352588352068431340983944014990802831840991549242144015866048717869544769600352572242972682158532930947127744033158569549264133540830153545781250569958382363600539944170570809848246105423598155338990374863500553416975968428183859517594592795111161270129580015671641177694234835264604634271239061431795773050823155857574533565528249749574005171882105043370807029993215941169800534190149509333674445499175876067490928804863872271120447806859056504595420690546958283840286094041102681652182956367807423540417067721036919156070842422788297574106408916473705525789049543993095616301152270187848165204310161424357821643907350100687054438020626920932998170075135356911407866831738216888778200598624584773674675137133538345049496029233037344734340593709804513811398908708347564699764839840315265068603543328361735516673789698073540286684245078932388625869469791413828596569424216844252525138922417999728469500442936252900683728060914195669874956982601443642930033162195101792827051674099121517012570539937749102351975425169330784237252654237736166679102783520772262172384811423404124295860804312741650344522280331554160193066393961435668990060523496809117083197313119552847452699391475294549289164224911139159216890353713919811645771237989006629667321718564750805516308674822180643308417403576017670990292447389216989712590945457422863543951032246194120131352128984582755354430209950289093792072024344021477496251338906850912790679380285367254157953896095065750644088057315349017406170060717904138644575532422165290591249732491693715734794958708541304221394239829889399108378581232708379278111950967482745558482477635144664408205028792180176826281996934045328104227226899883005196140791851062102221781164858709493972418802552202630987736150773765359913678921963624673842489077025354636974164395126182704940413420568342033327620572985568467607737287925283461313223445298787402479530961442154496537284315823472256063426125571223293468328087713162105772822433032763829206246377761186724748037293358013417450121850000301506845684826457407347587685651868434763273278468757319764953503875763125188095164859197964058843343348116130300438613926487605772211930476197348064104426510710059051808381273024879301301877535276933149663498563741343688178463598258357448674904763133993893474674712512524909195255865803613815914112958365799861285810489877234825006482676563732326815635941542694813185010353293660434240560996490320647991982880109612003700474315491511113917486237646716671175095431425673730526488065564934570402695038671414922643081519506985191294663532756247307093335115914250863646953794627425574323114144663394215084066551131499503358639815037405857311843885023798737120249949521200857079030995920614939168482931896043569301890265261231385080369061417640575422817792653644204054071123104830281440449032475416819869423395779596355953411602360414139129491287800680239612876806614816752334895869219464205424839595038436234081531930171158514778351822819349815104726179783891870773176282240322356494019781581863965642799353607528252413538154895939745273123179349129315709259311626786173217619159219971797721157533323724885005230053590033295400270148101319478517025096522655907963517314833510724153220421069449042734924463740345270486860647392423734926966342131442371834985960358077314180992668640183214575135660968032988687865622776961900950645735108224797727968434201956376354069902543223417178496416448013693628453017688455536892910936747899172936837683116427563402900268129524473051240335382103655484833463649836576392258377421472084671974803257502419683935087465541869360381760346241876881136316937637232979166739327353885726050525663276791337784009173686837864130357049485835560865657433964933143436145681524425397319435306465907513552596048932377063944027155877700526959021499936915972991691598777004954824352094900476012361413541645170044748971646686453026652599235770217519762385152080919277424717183458817203562074123869787099636407938758810906179894991281139530973882184907069724791580923312042642883586935819220432528613132422606876937417780674700555167598025517499187125660192008571467132354761244034192523283321099299391875065768383746001278446293923078703887065384653853933142250232792809608122952216638466498851567247378776191781899531388469215574962815426977790134912012936942707868202843777792358622346367565923027017662709914425380828281136683168571117676554950747468442057955670225522601563489166903601880498158791367728273265884904717982883946504711016971487293860600492293775914250338511616388268399304538408087317509048018355227116748336164887329363889614747863752898585758333626997305249318217203171738108284561939295706654935947537431666044809021709603739621834341537564938566796806253871599492967484748610344454534197872959452094415935169249149613884809524633228019545531541589257128824135621972324207668406379317924973035281856482702755770360403865019167906646580061899067135781182765463710229592630517750539090199377057997950369163919919634475452107973394483316992303558079531184680949547793845734422936056066207270597009143507236642248817073373610993181589993808836666035030749506565739242129367184642449807998457085508867097838070920675999822833751442951697876053420210410109930315270679721332564304425969722577104601910415743226127471800887801115795108886186550512274140588505186694092308129694258451048738072928049732165035557791296549419284945264469247012596727175239215199838071903794683107915322141617546940607826118781955457651155088449050460008231794989365704134306950401067387843591193594073813290145054885690605195517028311883488658899488428952553556203626815094017279826024460283321789452068885235915230395288529495509812724666779765402280956968909010867756209669927822055613055704032112337954996085820421237875447942742270921636859803919365823422182266886020481382493579441851150283579314060709231779744179213222888877449163719160401727770443422386004908763877522053746384672636651085994962878850141849479058004350106093494683215077390018268871080215452533866228313110809559551771272009412551535680595912599841828314993169555956489473133985032675055045176946343491487454869506898730127067425914732890477247276657673679723411861896813983695586919871684626385359458334844545490339270498229155260145753552370332799383167482658101363962204402583984334437301204879250924642511838664088111146287108950480133607544472937652378025642049780794285106587434994478758335806274634794179384875147870884021304087228574720559981554822117753017020823477383434215726093709680430667002494850446073697823528908976163384674691776557386996041856412662540420498387478126557776582472817780237152309260611536252815504798623724035139373891731911871975404595756425666164310165109887659647607495078123493321341046831542476292092484762395909043391868211568016247856545048379587908110052885354944927499308748231854603122737259111620204664249194377164815188352283077655299857390819474404800099134392230864549269315885650655171278938952383549585008949306484538754495066494285436499835764937960874636739818207509370515213853015574400840654467434622875695542849172214992771218535801170461772605511732874979096202222698357029692442888093975233285032515055237099616043231477086951179162370041904132001783993579499373915899485647658867176677363068574675638119207676088220777976517691268400995670413851908515181704533367833597636072611571830665439498703974521049688661173016490097923854373259247463615306334873424196227559021786525351978065592785023446503591204872074648944981416082750562336566839802377974812315548629383498569773175593549897707790372876965385224614611736131079305343446190897488100573958054441943090269222634715799034021341766532061093273266813744285642889972165262235043479157804472207717155721884920714758801256400809828044934095216831147558816210219952231032260500437470588822723799868092815548308176261803455921541301358161820113710979625634987212908986377395696393546979783671309870137464373929366513000025543353273096976386051464860764876392759199411474074426890787190845771512602375929013335870667070457183912283310636737735480174308131867652666192412980885986914006513902683964996022516515731257326180873278357754619398765334912257926996822604416068110039207637218909182221151581505168337756860080984337735713150835106413974887576547872276162263650399080374653526644361196082527233803038299580981779986167470432384096123022303828400624039501352759580062960621768423871656507005274420359307316883709027776730256362820470209187185576532557109160015366742668315851182390999386571420891262420239484623656022769491553345378067483330907952441201997467243337721412996401564056159753666414674881461673551200817491238031678757471959630881306854777938760679887414353640864996192358565796089410501467910564964620235660903087305388410388297750146952324812185900313768107550146407428652145240196428408790738431654773134821330601465346132542583798152175105371752061888936128960514478385339679584395691015046190495593529255342219679242360808305441979818126953713513078434832872073699936205331721365141151152392485388574524120726057135167114263888362153693727168156803202752251560059409587824120299851290071951041837741116428599915136798708363588165874334301680167907001507269736055646546088895244579435232846922442145280388068283687345219419778260247274809858384401835861374109752798267793270412777195332037939714043328099552049372760395268005654083094811167682651142021390633631223151001919593205664609480192059847018750456166799540258865563991041193072379058489472700197277874249992605643450404538159688109718748279359548209428508987316378500639503939398543142323824440805292877678645664257243862589043572944453308755594243667658053857017963083533413572114099952917174280177629954270103026829696280003329463389198927856573987788082351601970473467639162488407889602327649075725369100893230590803909605276998095494139161025587324064332911277935794466857778523952130971185396665974498646613264513710185917970259363726665392101293911170362571513762039876857259108007734001595322639430334834501118991504495813205682277925613969376362181875966971235150375089148428372902111093053114752221712625689548832070096742035007600782281475184486470483303939585015789840123998768130527489284138587162366917719416533482226909670329526793584659157231252012068052582851550752095222060036673139491632146459728868705955392568068871417228396981295328176306548212915406536970981124059513934624929431282213168745847354150141976694242225088177488364333181303436417140641479625054012871937962579248657699858379441350106594811449540228384556277059107712810370711638038670445524813830333178490434773375059064254430912969226385916425111416592240131094082614319130538784667433246506346611779016204347924623935095051705191254463862975145079458858333089716165782482005564756450178949319301717666333379106920665251842550611429854114075791926554104454463722711459213058649732363111406814307898488172063250463948829209334643589244186037665257773714520988629158660027200532380268621376898579153888384186180515506530457124406926822111660372496214393565773687523643114751082407366982959473774565941487981864658137387522901700938452890312442618849001499657479073511113387914480833412708020784219962008238676462455911645346556422171590566733856415246083484618012012200704663158520378941599651455070962237572471795342602265120607681044036996598186590174145878468348734690581269148808073628577806745265079279752305162950580766210678149389706830775226666027917951724175456788885321391355992297389682236452752749981358005931659725785457671644594386174707116371102749629948473487075189422325809711940694941586923176201626670532170838774594033429188919582190371999208642206055464710374476114375035802274720412305116573281767188731272112303657599912572177545661618428203403268829394666980926263547951497997388051123612995831402540560763807304487577402367568375013832404994779587833759544046183631090386543736052454514661397306747138779302472263665106573581096697072423722745637784535421008569509609590367967816802462182724637554032289713402982876470936828513737648709451295478815501453159809339601449955466828783411683351171422251606735161743141373993920269767559679990109571672800233813196446401356798366596344041958745266537777362079501916058942406196880287663592790191661236094390222745027725178496358603948641394762650302293604779522401584775549935494861996344312603856486991313738450858048909170924040396530605925586837834466889542888899950339018130970543449810564310517298915424151702581887502515842025564879402223376829174190045658334500828462925355707988762797488056805784132793621130303473024329179582224856332233938202702897810694162565229186222476145656369532912558701652122988550066140154799888997508022189668226555362731551686845288284502963180769850138527855302927578613640648502323811583127137221020158634036553428700310557059986815431815241001388331542726138863615423622701166212226624529398193530701209205631581103863264694988006844465453097007096547381941860278743167205891328525896896600356998223968924484410686023067280015902625108112491973800604972966224618402166444497508520843997357077426614033531630998124476627979667185671746010453653146002045867884369061682276334727711162774031045016750176741772082098148479996021533456899065441327493818938767246199021894502675787414075904239449036299695296802464499233947128127013457921899932560983777230474151901985459722648592218859272920498189781179654450756772838275773106682062599222125008342521144677711467312066144785047770558668017755774344680192194261757545822790440953543768751660455350805133034653788258952410608356770449717020652433282549909574013512624628511765408185168746606425077364430961904021603796049035949006420304964067379708477189823429007049513695971228560508092048846331787636610687523779592721244764290199215217017011433800732599047029265363824223583764160612087693192188392091028995203766676378668183662434402207181877404666769540889904524934759592534039861531546830084452313453502908494399214946092711865505327123608298076068727786366900009869237294988691260298465440366011802383617700688745090300066998490077882860062102239986420649924722790504655816466952911687564216235470108403811044339247936737267585923089853139698764304079432736841452338649523745363898943188060737260435911618903995037585529477869244577819166803598984069942809047864869957665275360443446600205761400758987531123683883631592769003421671370620065007415874248136550746034664518507600292701921691338829651431103692380420645879252262080344845205290301880136442887173458288035758752090280853675475115491137832332048434259194112539967086226934226574567941533053991067089250404321486335321363313838424149159795110398562794690324890122199384793612980101736559218103196640318195269563959929227308187354800466042055999354031812513494600049091846237441675326991238271496037833216629583031431261168579742407575710588456089877545821596246668007530399329647008750013465373832268576795008875471526997566748173347730686423760845078667938008024594751790826080088071714844704269620266745381361092615814528691786770702751020324344393803373596642084099141316760066221519334493565473309291014539994308737546929202214364603288290081150463703203591752502682153738251978560595722513217683246878242797975208562949006444096370812045325952825242746350289944207620091793182400050651462406408466363194618333442240246431145747926776190464154028647851132548380037369415207116991295029403359128892826973991908769038533971377047213654425893456451863223606109479798795582079022022341903020923216767582030236077502082834548542398129261942844177299080941461319477765294945178755244379509162318900216002156132940456416846819624664659927161573100935196635468174736733606059802489113903231187598087311147126067714843008254273505939487425363024299114404967602621470419080482627034383090531575832424520801967210697550141603464001337683200206779336162653696781300507245798576504300397776455970176898959349851493476672622891258161502004509878542704131532230497009074116750290406843318944011821572557269296670367510853681482299274924665899487153734885133325714508532933837168379873832633073398214302765140462076989819626968168407506104068880192907490326792506109410236599393572372080895006861382964734524566782528866634064274087133532767482073608919213224596284771479261964119216986371575811907095960499086837969157669164347259996771526212242467342403404820825573595283528074760265085571824661251633388780970605636011413330062096247714193335550028100214945433347411393287923434519605147373869622502623220754723812952624210324554445681269474338426263667185380222750482829919556595258044360270450481070923637868430714766224382777744757930445428349547771970818725826608685103986043561618339667800065496244063095932523441176347153246039222833942766493248760860686094936957991728593475293020150898619523592117677421484410885438255616553877007548315754472931797670903784754553977231775625044103431939837194212067128757886443331938488591257647000809054250899351333645534593006295033700610677145492096624802939220998651073778195163211180105915173833724063154532349433576290857399820795725529565827827986093539582050987096416171693159116988293081176151602380723268519100939273879626686675715989337194608642974419246517422906171372708083364227490080314347310121785755786751654254503020090251475557296099238741693045488561085946316243262760915349056786959687458117061748310550916723430030207188798550477676125934149913828306010781304860670053533715933704751868197102518245692505421937815615668085097024173886727107659757363577282926772127816809108307370580174603974223638102602107428115108891007375090838124658479689882402798805256718081659400253591542973584489495297672455306743477576526776137822134388930381225958837680993292597139564013654269906740027036135954214594623993752159055209624524906050334059223159494052098090554663774477367665388584248565146791560645191346993192426971894041293455906789378441726862204547327297681378691913360359039836317107670636851803081644888055235258049237697982707331228816190280935307464525757258368972076290611756714070521567685215783418690406168971294412914306527441402931509117248566559754202600218469624247327298428332926076187846796507182667496923174331487456790619578556191722549347579218945584938776478920926446029658950805222837133736514028672033432912071761477221470962334686705440265134925112070549043245529692573656688409725068948293656988388318334428744088891293847441830625938481100916639634747540756997166907603982222315856358784602364642675978873707363196443616926918138597606821222752063048157353718715604355751423382921641243461744580560176006850907090497447702099343089224549440520565404027575050829915293784753073481022981695867272869200110167360180169041609542562208366940057068751052237066087715265245981433592647641633542124196591259147297956773568559613643968464457628489432044711759541611159528889620536123763368589501596520407981741117721609780103848032662259925441084005559775636732442628323626200734001131349022538298554072943491396384044140282845509576717922067793342383250142385373749505622323089987651847490720448724054715647438935550989827296819237039382959938029377713497216931839919523737304093830406459666324684376304151814496405388584655750126647605661193096283492287681145021095639020504265059425697736590553241503839487538980785234327354226187572159272429901392777583070839892608718122255956386316141678479137579907514633808492251775396279700548538187768232061020443605957133105023673978390950226484391716932379372142633453580361465256534173190988468120068190588460553395598147558092073972939800608711908832703183323593926801553102122019080110389661492229506517571086797504976682118208301114773648702005134154060912856159031792482831130680083602016306117372595430547053910122431091723540775976931169473556944823747795690004424182002809566829820788226875231129075937526289337502677434929196214968542864934291425858277050903536363072764680625770033498671426470745340986187668963934742803967140205029942255822610104293310116257295313804285201324974178722169118135510491541003850361687907879213017031566390214013742459214959209636306833026491120910342440065723663267979140015974694165305572685474697801205991688461227355901859773334124115217893341791709279938846404755770524016378275240335417273425769829322148371783473610562787645022200282609534571674697519339522148516526129455797970226784894489223697956937912473713838988350182960172279912579673661027746896970725092230462868151688710391103273229492585623600067560018100270881251063570261908965695024834892165623786802891182871150145477180390702585080907682861044714893882201886144483858883823241849821392692001554791775568278189409548615045659176855823961086663179926950374820842949060125677494429027975845311403797667587621261300734422726944103044160027465970201388454781181768559572208315833864533370200556537704199433940332705046411333309346293560467943721688358650174799197923041655872577021272527767437319224208164785116538638632606523891018994353289507395411152364845133259073248309849404860370903142649188655213765999280841716884671042083518352724773119482007843542111812056426681026615119366035787663042779270881563196467067310080080644029207624743859359979659045096062268460125696363198746338368679617733881274817776309102775263651610440320629036670532856011326611852695043539794995293425584323743868588076391207787292451780654423936018693457932354784867005335778692670758553318191634460617200085186381098487390099915145898500445319053934371590552369783054188451164495762248256315536064059764156062876300507418607079529564241829811980432049832141083494087023622747874059196859970936660219698467329886716038386857612038906625127293369592021465712179662268390899200373252698518623771291741944229847132801073762124015730855250949857800566236606709251294792181597693028578019194163960070052043436070027491902993473183023796627990301453269099898075264180595018058678635518342111964861407293582123579144721093375295535621337964631499766548195630915615743647906772261603331252107627155777631011088986233704986767323971522762604137033677706484398960911982597497148187792992750284901922203814955283578244938429797644385732449028562511297464489528466371959261274070381967736799671573683452105486546615695533291995586006490626263321118152666221255440312369181050747984969781654436306647483209207289765495646786197302949942770272303986245426800060523801627400519803612003030754006947425254106726664949545008966957174759045503216639457594802536943582466411076561375750851070976520742423799087537893028638668484505604763657100442032809770615058814776578211919183645548143013825722720217998846256199664835926369484277733644916874221949662945185314648620710730112794902914818534898324924843901216264737905197361519559214938491986069562748117877795921944586000463148806403032875136706067568022763324967658655956509229334052154161504575889438685115054531644999812115247161019251149202713207848182119446967011282622393491310689954963905733739063183700794448481389809347150900758458199423736987077211827438169916306735850172964190082254290182421239592061031361899592071150741279720970893249279287419178347810234916815117118179542330069203905526636265661913823734100481815901761971029556996925551222910924882617012264793352361820053630101409023626742765998356625017230778079594893381534279768566890890626943798896234207662382843481492405953162300915525577841263564217593387734219606320643822847948343126832411545224396729945526118558399258027410984038676879702996539021759698022248805797359146334318693823094817279344322876963110049697799688504388831300217614651837211769677852869403526815348641553775775572464388820733743041650797564979681110687930906167862791182488340391894941448138230206633530310493352591443703515283469387857179511466685433500755396003800189873875699620049303159694224709385026133098957038692445975944808019475025265535417020350818327158264649721597520029154028673663743129402165620607984080431890421381282337608554254351273095727767588505112213496457962198521615431791777267369441079179577109273965608537990487493471062454140889319302916481557346162555939467344145023823644956193360862297922110194573260466548397990232465016654345929075163188891024362673329357344239961218233759289704194486532697283998106506305368390743919823892348439979720103500845274533353141158055430254801072058023947878714926006175125883848980266625485710919232791743697740980942163110916653703252927656639627410077800863258800540942383750709096744174846035965075549809348401273572768669274180007993553071927518587903471993605551764402179123172912705178332958296472450789524061033967773846148700206869603899957157995857437319884863314623826153450274220277674980713952997634983195629326237461765269918398468423587480120959410216793001300573210011530539179743020829605954576582594926368367546636802604033477860571106943554136267428574472027763596495488368059769863689257347990343423568755423336340882818622531815562469020629940505975854803368483001728760514320483743003305413271010513529561459136798218695806248270134784667584150299699684690503440345451797255648175550795962144659038421541490114222243444208120550624418768855103200378171469502627926652900622470175488765184933466414382964327100796169023505536581870554823761704624737588602222508737125838781434888479712610958982324416201607533726302933299573013659801220887856579570774008483311735879473295346660148042231482792001526427236245978949359460348793104721474115080270275629985178057986583025640979643691504553425500647496115820653805892013486143989327669969776962825279346539841239588680163708633672476952679703766030646288277796680592133939455565864339917695333207567485135041617319249228344477632700338093719033170324631245102850860048297087457648009801672441766156857236880001904057490924157809334042183456894237148718842168267024121133306549315574548870188721446708668634319026400205193574312186769383791249448134220711480932235977504594308311212361196626516054048530403915697949700427416755887021697661135427529083548133658102385220904407912669050939933376044789378346991960399193117898684367442104482813226305049045636079572158671618850739780066216353734909653391512538659613107336167227090931643301168527893017667336096377592223212372238291494864592337139802591773320087698070522335813040062692501853374899352088475098913748907681258286872068256123307355632506190025728213034519459743231265320728028993573729905927244755041219095013475630899185282426155266589194195225472565250146658605235547968967155608276958654846678368247132618465121152651585622878704720125619024768165108847777413245920785671846114615959095381451026725337988746498842576988058688258480373391887035228953921018068622909595988923794645756532226587229755877644859391869353340550307002676563547778836822254946164020859792127914019787682751147375201853843575685434386950879568194908603588752977724558949663384197064933273595694010182856808928365302473926074344333941960823734789650314731986836666057380805953035815246195893255816782667590255474670556048406722038213596639870101775948355934087550294816479216429370504963647211766805375319670652949175669094268917395083377721252505761191035964708613531997016074313332590014426514629933028535641233621098852831175095776966667757303479570561186844107154540559135768122113452927024449888326602236371332741736485794523705370415617402603496765543819084409077841052876033679264995804412215905332136860884339599655313476361444730781649776467108373968917122699041419774020008154991484573051148006948660026101617164569014716323354116200524422161386076289843419576185128695586241629933786995791324429555342204283666555667821659357052730601339125778141087751871493434040236007689732893692811803414925379106238956007226654773001438001439669018340069555893228580298572321977191050288859574940551032827281289287611419914176621617096528193738828714083734439687127359994982174707927896554673848113596428421033801981820616289868007665828750878068981016520447983107792161842689502631084614763838898175424296626603182209618302602109580703115050777021223863940269895206911520694045367297332276827939455265841717419467326406603189188446342061163608041054777238099299427610705051205418104655318874440181688071346585835032791344766210479116161223725884485780345119918590870515106532604546134800551990393646236232751532845103483488270750760030635532957961595024335295152843566113277515776469970795625893125697370337424093887652392618708107480606929738136453031808121738448951983317255637567006165192110639811362819230643966571837913433457817274004318079678930908134558304942511552219072410260670602193250887181836282516267775880328067777420174343282078609884629198548726983137470860325194192406007218961692153608473016858965640411517028267277986552022918448608014724284179818586482051570758641723093051710147100848552382091422673893810057802871686785724294867947730608042226942959851417566904028788121660212689369880614114565258156484497704803738562608585216954542060861808493806550950344024667901353476901660663576446884144843768682791835348750888119885938459919346650488402310622914469553560200436939613989634885040880345172679810888913039982284971038446805745392807895739434784218826502554314603150176014611076313837466138769442883203178833305321706765504095189267137376157843150412102065508490128684270549774115443047488345766678502304533652289442030126208433010359656439140675629803936264728261250477381168823459858157542638872467850797555623019284121166799137073683189057813112920187980718280656885621471037099377537902007581538290859809936106407777063496451142938635117195895194617583445885421705610055507177826724439783806363073164296376193207489918979167569565958939897376904030262948512900751192395123744845250600922911262374732405607762201829284397161638426006984336814976777751265733700299282535069672209833095850123661166336440739900746501778774972786427661551045673838478682140455115522510468347781737842051175896398860488768149605309097916014347530207020529271468732366924808749591072258515293637865339089390228542832003446530689668962181196383528661155075992289311279801468067045014802535892584978061265918501481008743411677227431895003107516800985000176510669579283671951569760809417695103640136788640133528337811893324492284197125156426814974313971828185619069622124651602523876421684638554707515843136794862694432594016667272810953619364392211402589418611849578616899247584795878091962098450589006451831224948464482332746034849536033872369909792370928402952557574810647916946633928076374725560755807516814526626578795743076717968242419444266643462541979560632344354908560892628103649307786177613428375809762289137611392148928305093411077191918385924923528390689401544705562491213480169322375439828664687260731263724529254243236013647196522564186255903092640419103082600855569586383981731357300100949433058327920702636213031539374932038875749202032398250854288054595167454107378507369507243679878502374989230443081205465007050647655982939516181847052945291738196007895000585244502066528876780070822087742068880714979246437287943269041305025138721090532454139174883323853963516029561115499045927925357051369416647560186145524060104643965274990426645400714863322722759393792879235135404105355181545680150381680408648303618196172926169646269493692440857275612697173100242170411448340044607065906629314317081806032189739106484568263853246039842300852210760917788996556501200942054722975943317485300422143398120493771435737778804007085007388661994449418174974969477717273456475468343145148091823251757461431874022407194507346743909455358805640951827755604276878206068934889178112584851886916614126193247946224625086088054485522684028791122359214089601688235231755981743189049167094930036097896092843176516176388501863762000181533388373701449427709510678502545152043626636445165520751414672632270135224533703637902690207339653702100510255557208552532237906273986353076260149468461294757683671530774670290173684179611062199398605167555063818221424991940153601336893099171481352712131664324388380729422609084285352438737901857314953191774398692910880788820061453310599511403501194377173067435990813734776676646723101054371575488263276806634746324230749669215781693370435822308509615352295047805564521503067006610643782299219945172763435248503282468040063057919143265590093279716007777528879248610312032502698049050340617819704924636721045100480041289652676485451439847506330838125005980318930831733210025392253717148373712169335754380649642734944486336481620249097075948863354601130421240764037034711441906862936681555680926681409157619185772772905359337753607654519528328120193961053106465717836038705917861171326953013996679194033728086751120589920008889756947439628226875241060353398271564582765497032859166395994373219762167869016711769071798430967871578738661716119071367374930654760421350191184062081878530434390196110512180381152035164131530266473873304244126332793594347971831821608985579577112946120074984337502238738491365163005003291223456014822712253989060588485499820497724973478044752648572211203867484485180537331677297889442961797815188735961148377672146973047754224777235012697987872909960255503765924307171438925855101459965803678291021301858615408053931802448716614885552288214605718101908642048096514380677574217327106468524784867219937371368362686148549512355146508276773343284853302291094321108656196293135878570979539642808234933282288353755229754152852111195923396650252624382526347203964556109747844699021840766016191036677525374798671508861308794179376477263086847103812495817454030591404512616757594988776594676839029628571269805872951711597776761630682945374795386926956120522789318734361893124190046847032286647879325467894737728123633851947811175481028594104070324978317337557676826272152588091246632824855412228237327343404527477883243921807396112664099803044220294938612722978708320245870208813922681286339986563019760315871437400216042301260344654816778254017863157394482262353769429342890202944343907180057650833293825378594424622999055437035145325390362421396563339573476694259738291279321040211130558498150504918110334110885875343769580135212470828847197439496357779931208905323456502033194267888027587117089994112129291672383205076920081432013615997252949506288966911399143920679418185653173559098851014759425952346234778708067719507792167167545465424923514621493809921542541727107194059290429506013153927374211722562687293148266962312198869947656920070934047231203249278721519737560362335370070612997333017518825473760469205645802336034040405104245210714418897220259262615944205576864915381526753794672524905604591766475325378579225063544323769533067761205490564018646064369841464018063989821957628853122394041185643152989684346057549104761063095752596888947955466296342280298369157330626423681709256877740070386171259339260682856421963799831399754221337721403299238113900632861448614304921905703599726914352136257704998512711856446091474345717565108390932131930440217603840999283734675527397420463943307068009765750572260738052274910701806608277348044587456276602378730589040143781271410230063853442630547484914738138795437117504982119001089405905077002185856453189645799137805979237552816083870915344953334222847216563427107514607187726181076747494935342299184468574413340231105600984766684421583206386271637932625713407548035112371895931474992476475978933487136219720608713436152675204036264645994569739557251386724783084320365311228614317937680504674354682462612678086182963544268425456334761714849516992727062112246158643197832223291310559658256808955031224536588452681187566168843393045073175723469153343174030443744717394119612183624137759856460269700820126396989070408925603088913798676382635491941813639559090750684599971887518889361610866127659310031419417618503990376712261640012509395897404702284364135590017058562149402555411454356476556669674347048436535691603107868544451154131944907096398162908852977128565477821716222900203080209114317476613710550701331145331121608112997266522416127163367684671606315618571791575445198896912000034892336543400048112050825768800223095071801757604666604602591208247065976985103389119896887567372636678613435491648351538596002978062276923692030133522574281878262427925129460945229957355477362425637178516304997418869743391590996484096934963310030065480609076811419577185497751008713072459810753393031475084041497249336503174665677684212433650019279767330556498197837033871355508048641946499372263637701838238525432336561301089569022625261605442148977246569085822987276680708622686965063300613138336332402323566301461208704945637151454778643528064885146939246428032192846245800730364019170121331007005908232985113385626561181421359988889695464622163028977321037639361289928427033156773662859110409487985234360409786738158655326039208673253306567489958477483104127219070829815461380795720012233284759181446293428184400514044844640610844449877139718490768644654123518029781530586485479104053072099736940442898851484736371269942576515195485078942533460963150878857190527338679069080991318419308291490417032177322148205517914473110007542565561631871447470040806174006889045793979377780930182350938066224428822300887486204364444296907179124633384172763882296310069953458381735557414038498078386968115703093336763981519212488430455497340743814329257251837555317538017118261787598720974017058611402345999500491143612310424102544674590928330212820764966591411797868678519437890288921767804628854018270217238869686238139431329276140238627340876381368834738718642855973675723880041768779618699864911719583292448513808829019255537322613343379311129228142441496013051169956198549615309886674864135607941136399012344351055563369401793440164344681108419917785607638044878957604460452357216775330760728961588085431955027849772160652502982710890309521690710807044976566279443577886051701246882224413759833235426439636282855821397880837624948440752350721138428280200065978065053181119586420721100929064555583022485559623016927307617985058283580500969411876362647588506616402673698396759045751232555694738843251793398973875446476419185504709600222420024592734565456515975325875453428560113663774507578376972356133638432759314060133259553000376614809299922853137416282106355562026705706641185126816875666547954878617852255911533853165974513626469918663965349231845175642548908309507645556211819433540581930329201332793786546812949506559675121281703162040138538688948418371325970883500272930181473225015085511690355304390094147862080434663229030778498525224103531702396038183870421424387951017631359823502043107341697474471557430384527120691312892584126675585279073565676392581688669336408926980786556997217929498298339218376839425809193436328311618785054862345042581124022166375354569188398730265361023595401092696498595311774990313886474856316647688414251719088025731112652311672410693845701616098491918250728019350379291199599761381960167777948540519045179053438264784887809733041300026830093431857012993801497145301280878434326799247892098759931494924934763768226817269803490393400656326584855516310108054989620093502268524723666015897226757037112794649646844714367646020531422918456143845187398836364203891342683262393807988742207388806412783683110586095426437603780181416493174950322952308839808566080470701372069487248326574572148512437582363165420889290263795756278441383058918170069379718098546213104684926724997450297923464567356075046136634719968228245134750861464007081207740299370323437477229216416370125142369511601913544726364874178472059107075394383086357693851365506722556946143646473898479230450195840935342199339572757509641423108429721947961932707828838232865074010427577522057979181084219650321238560637646480054513533691696580506891228964521253945785996218956365869537792498492590311421663682280003444344495021974160677330896987175079230458086309661071795579595897808235272485637197992998340660091313878779368222171148766423260588350963344355635406675215798788734646925907958692989748720524090924788645637286834355491072995540093513509341419273410288764807787143052232518186544141212987237029789827279590738766764119531922002539342093904818008088315112562295076527332708425190126077963799760353553855087815062603050349403494679708323661048174332925837837367151402894167598623393686176944496122065343294183013274023693796027074775586354373979936609607699568466528730743136196565365768405170523256061979158575377489345582074445825572124900237937485598321054476908100089003907632304307566627249432203422635172839737407761250000396804163636044046322985485456057041941823860542627563913125123463290382887997530317363912274359187071851301359805541898858741519739348912185542249459546537632015197130157744521574404879079692856182780053736956362037524872991039752708063534853914477461705363856242538792572616699456135727967654807320519751943539220971350011754437770161303967797147613262159299800814479618838167508146872316273414402719937236722868100806231958257997146735205356600947379912710420003106880688028469196175588526884932165283563888113642443334603760807341286603244058565026325720026078454680174024115313063636898131654806076894799179884667469956222236347072488222426800260563636795814764592446980362147755091979455659132512720763810718054602184886608737201487046080763601051145265072038125432596951182007651063191977524890197176950860031287159130199153656002835567213010664941882351862436544607911279903828286991905902254563969703355810064523698115008928773565871240367376928385014111640335337790739369011603096026668384304564436082777265203105204655852672236217567499414925195660597652654755958996430416802755996223644376050211060834529666836235917844759452314688588966066417452626974763340870630615909097747921612223686374669787971201306695583031248088512307240528071432895504922477713102400424094563203780436395037894001154234219672531417358644443707601879282486354568039073881050144333729511645391496203274464410081522490082005377854539530010055489716202541751675181016999952632718383670927150356132519412531561480060349143856616426512586148241304551715029436369526117582624311747518975093173039759102394553537012657531049363920977722058125785994866730556245416841852966489215524162559849352168994427671545593264650137917841579459978337480975860949464992115395233719080459034709173997648789543630397938874724836576347521476126577357437092816094735306084822394303269085582486893209331416074301344315927661267563509170818506085294535364124444424415987341140175039159087014170623732996558895149832136898830345543167712063015894142404400211031385187410636522989588124389825763063180562417369751701680913398932349697467091989720864301567253723661574895980194576386481426236871391124594062308948620427083834811383342692272865351701618711171282421919201794425205574276119027130240215103934517919939387050826527344934659210419222121186848617050077630092515823905023239693464838062300153553905386073778398410266084971063440817850021674590458313711634227880726414580374667900904180504906632300800653572917419857689677896286499031923992539882187333502247270374692376038900793720216050416567707953353904248400632230218464455156070663902557624310709252336476799930962640112952356376382948082321838391353908234377690207712582570608168368458732576827558591937861177568577694914689173291572039681674730685024663344872159611402515549807012201471597936665033526681612563796676877062125896557282661607742907729237609724479015607619252938262647948034721317943643672798239006601838770833574315322666066246382325374279953735748884998435395878863539956489092200223694111593149483447851871333574102138925404100674970848487633765342814049478657705334451760288581545798095343474264940460437621790811434620256676030770033234719767138713110708454934509417592428466989658547481062008676894697593713696169105454081760634454266647805024543954218071126319224560726860284232527073454332298505385928928319025992633603164594035805074032795128910879797201001906578788952784498034077122690860846788124818084700376582875694284275272125377285816187612878250214578626077898651074462746838540411407731609006971645064844018970051302582792784657415683518364124299126100452210778359760344117704905232895306355924787431441263313282053041256732418287070040409937509693653702367166122468718067246635920310824716438084673916943392383285457526707993645801328296815613235064574750336285170632281379464829740817326372553265460859863490797647185929928576590338884547502932408949498543460268582596669588039457516831668129217442544798758881092692892365528554821879518792692005036972166422598307667633068316768133393965166610449070969243966652619811449069011378388027102125287997525149337947194838429189167379029928415254002431006561990593919260044961773509591751385803128702837689668828878451790801573315977073965070637506861791705580422854413169320061251868094629727970094325457875154536617660813836875969669325758499005269750552624102440880164378664795218418901449608464052613740892514084928589836151449769551564413656870160965795264191427775383120243463460864326874129014686597017380089453635462886237432824116640963216585305844872011928163504130072964501329016422008356915669938195688502577066878000546148887454664776468428955245103506967300576657019326703360018272568009222272031787975214478781113000580862477874387210294968908008483581185270749928548071725963568199979134191957614111860762194976536011439863798367461571385326426535032976591794927122051147241663369222997076443788630878488717168524909088919844546376957569522534006242751510578615848407263599262565837064159453733588713606874605128473912635301189202936721715562039465305791124321030548774042192639172741211309744182588520762043562326211461554045958058238565796953584967768890137911726078683597370927600852443707342663376888064376431235761855514795010799049436278787173202287732939409505133541316447146155717921849254788067045332807663117404551366668072146167930852450144693376966745593449765108794821789564097097264401511673839313152639716126444226261714808582745380453023442581580493270587066300363856729315282390002219402101965312248814115381875118706607217350400256916289734003821569467892260586438924484804574111526254302065057280890420637144469558672312456157419287495171108240935587912238258971676684069400209109421299902439409368508628854794737523083461796966699667632302620329729153846438640881116620528274138329668049283383024745094623332387561330137324438470033598049600764447307019998533403588371646038368456374845123173089464548995719381386746306533571852929125049076648410186327710275717066711856506510380620672964366056422392343994594609428446439252634599012832069423807542481028882089494144080570432319380586969583661630683238709768901022479894509217518268258148066273081325491010126077383149454956129115669384138934853278441619624180959851707190635301679113735493732833049211416268957938347827202167368231917642495951957629754164329972977529978420611516560736368297660443485637981732374551696110824965582843773498145198789327691775222276722233656930590613850323507728359208571898999016502933297722265818950522701110458596414315338282776358099029072873545698952101089873773141175095676957841654989930787189444913915382171628005521184937848854103664559912794578138048125617348509986784424979199200721187178504229773517301554810110849901485026376175351191945482629648229207926149806508341861648504110199786876814124246389004494724830992944276241288671490893002472282512368844611533870379758771805865379432282163066279302617779384466508048621443651870827732926415271145673629429213843795902804619045332099059056270149604986566023326289342474979087326687062376498327566863015950938611877225980644695652797790895000933689562749500847102800026119708038938645022083013581467788032828966284879881895643488703203368181268084782591073249216258151068594964717376645290023997324266837368943998072378616341254861547426692974662303447900599099448171228132688113777302459232273804497914834492740528770162460116749801741153843652896990614893137027971876795508500878304329737358034840651316039395035189910577465178121590520929505955756913003867049354675292104125037450222500780420350358663811931647840561007612755125211493295798131315091259922856647205159853696414940251952913822232722840351189055217164709837038896524853919245387773329810222492659561661536625903621882108478184865457386064390717629880584349720210933570583350520032785863149130095737782280180093009232043812941662827262012959964954963191921180868547002527485648579069506235845428549761809996769366639935744576296293186009579597777433726679764504315756599241026717789951624354917608028082996496504646668690382816024222800413174478153399728688187443914401855545147988271414249944836744907463160242667522838944444077255471202305345658810377520336132143490691686519843147229389330096575205580914275136881230816375401346127028451160482610496470289094050437806380427284718076183671080543062664676822037962370694188540490766632920530929030949614070484998022020292744072652715738501219448813741336675523807882500131369680790669236427818814502240230626382698285753310364116840455593908062204434561771350095855025414993526673792946363127586700401372323840416161804755504808557778600971992236690552422903826123422157605197669276431924737172067697926931538163855344301451816263237047528516043092550217824473534782680546860816400667610878453641339797480610062362729376196136914424905584347871385833160933751182990245654193128287352425180376282710822442063733909923992488511257835295986144574461143089733316154788900569163565466657680607022346587795479793973593701445382944256235564549095280875047701508879390029600319887210088101825250406646542606987027051432174847240337479078551104211319978928382678152744897180620437148075119292143102346326219252100231523093243603733883347000820993336687207874599420066992605441741831569125188494394768205116267183177643144272853595731457512950342034223594210218698852055736157770690067698292152473608914544026432559500392179034178089798139768366016646871198407149034185056071901238698549825106447099336268872036543200044035159435869527540026166541741557922960966062447178791983230506045721247784445148219354823587464593041885083123735666119357218926998218655262026677572100598684973060119873796668440730996303885573521491354483845688958865771506652141743743131522551035585188830653214303649518347137794662771079401893037028339794786126007080121252919845013314559914637980624217809679731271584943399206663797941399010018614690734502194873597166058474515267257790336197000108066958065204611158276176599195075551864293498393334878870280574186976864297402018172392323051433944710929649671038849130553769181475132160575343623434492217306244585564904420290829034788149909246029894314558072011826188670662138817109791667035671105975411124187134937320760039424250322887417995100038277505289775088198031164127791623795066386249902425737692086379561188620742498625996237173217094796452265296200915668645375837412101176047964144885421961265308572809456535330828913233092266956816529548327188387149252404680650973584663944150339630609586860659691762238018165002832481774288104098477571558647511623994191978584297392955606100498326932959887840450092953753097897745293908770035948352766749996438597985159981304846183728882661851827508771749030313661802960816077066053688709296149501408489449946870925946269492099795060361802387633756535793119392778534680935004665342760983346994977572580096935974931976576195318530576514542619915172761071462966344366522887946255633530389312792781016839684875070957185057371910177075678849316375834913433037526876741737949770921412143023833636140897329441509079942407457916856798735768334007188404414920359247865105403095216032150133731155334754849680492357348497683999474747814305001756386909118934459311274082031995102086081077384396879659927307143954620362945539619430516301357005636129492191135236759111224417118246157510531269362452990540025215635208809390235958295918531772882949735895261643010370595708404541993372137551045886823504652391927788477772576795356079037925415662691907360303150633594429091974759474952300139178207685174168155635782711528371871021396335791215584445882933023533153452234353506349424106787840266306948987935081412658516624115956169414244724477546381854072740982765406894774094942439624369622877559219665812673823954946510628070838142608379210417391467436095257180581918833580244480737479858209744292428359639710214963963655050632654738364730919135520149823301479122209740332877327865527849221211678438014265981451288222690450810919244464139980872156488702447804979778305008176490469520759962707964753416668924039970469504868240092527853568689477852180068944348486278115661828300959814053592351816113530107795055417299576955972890492525759332477102354756235908335938689690935991852017626663690738166319128552385658547049587928591015428074708547308115119059289084518797323559950065531553168318559839031019853596855276224493156885098581696773655661761075654719382967499014101221814707560822187920508734544777436970014177742756109276632315591395686861583869066056736398821078810053993606915043320843866592194783609553099508314386269405118080856241647977742089791320815388010520827706768157526422987313742320185929855297416567749193605818847826254835785570871707484514232047580989739876575813302039884227702617483243375162265699986457900150224020842035270515579597954803279240174681184816898119582629681823944069671342827184877358419390230633718734610747735105711643494264552458247877653326762202917335803765634799892170146670228021104190028222976778734926690181696769332401327170307002973115301428567686076199779612861087372662493511587525244862161414982413433554598951472768541265189169285945296528932151097239293808558557626445717530461290548541961131566035015301078486163652271525100604455818270074377492113613203811056388738475660428015960841063727807801812139449027141010983587237729096892388359104647729594330590547217389927666236449525080111109714709341245891471760565998499247876283589608561167593825372968406466025486178063720616275247603911701104611501664287212202037646918283173607509845142379549109855606947388000075706055769247343170053731937327380399277966693942997239555753497918563737389768031398424840908843645067847372033233569647625389517823714597413975086498552112384324991924790897557446097307659850739984047923019853114234442287962818752288951273408711264764588447481649984197539373137483034829659302305462219817242745206694686031565033469706866183044211674823075963257796603311589822609239517438883057862800257743274880541675563766357963615309081528791620702557176128388456576453703031443707579082967682801686679840633722547568092382295182041079834864449430947927137714704048941070393218511194861789622162450129208289433983207327567059406412051119560866266837732342184526289224416906719908992262963435419411128238846123402631594908975001438024059953820923819536597136018088506055490915541463312586090892562695298662072515268219785298011575317428144238371682303603614012208815510819330498827128607703023654301100230917878714323635830937247720180018851349598803167090720758848110340492875031358210172753430055209515891435435686686524062781376476365829535518051614310375044883362500493918498077745104442716588186935342224799019861933228536951745943960269977500073700946258962590256013184306839802934177673407067984802446515345611514044032162188688518782834117833887221142705836384614182091318381628837578868155212750534577134057895287144523503448655736998298015687074802655474604842468295625003308293212016271932256479186855771438168863933344171728459367953949534714417523994736071716593862308094259515200227896721006396197855577895662512147268728560638263235754874635102973115455965982611937282491311638884503826475869140741545467324427542430835932675464146453513636182361633681596376623138491214573496122293855240460152347380332999800291812877616506680634031043515648505862015627603153688852539895333635177119438151367285191953049043894720174911282519876126602049170861383918554143777526870210163870360041332397373226691270283147927297990601567403341362736792197565225938165202945080324670261510889752628939079458695159913644828997200086378423450559246248207815305746553406537132162908969317740316250929527914693985504379435232028166400981297133598606273612225351505621002285575731534157854126481487667312784726669301585297947462228960605579641464922376520742774742905535174002978965141262921774209150881184927683336150512081379302359747002839456276151744743031382856173573087513441076261606813259456011365535746566696482359809673688635609163219612467079485298122087852342629942920678723248810144936159178044475588953266193877210926813766656989886910005418469330500756109227076085099497778235598394340495194820329037270889103768301449140570944975652491518424011014654694548275824209226283143410145560282529975026079817581838473164669666831799225127698138310699873542235538404138412022244913343274988137351922551039919050166208711021188918128868996138604425747085356847137584724375916703099392612856832822091761547659406369334896526297344828134609135401047401818801285646454065444175022394253149104019460100418733648609730012866920284507152080240501317027931246389041712750087252050096088451652285073504033871094520353538078686819708275570262968876421090079226794667791509200953296003080020627206045918647198733763349786862704248323139127519841299531831335003173108784885986962657961383060466558878548211320337697247409155670450463694857355315368606181681515425836974960215203638902219117758399027910225577024166682214694489425028176101837925339771620061305157624193035250781106692747732001611909428765103596700408037048665943129978088496136533501157338081893432080932146296561042985995196899985397623804886822255022483098165742096897839818181864550056362923813375642001967530708583174998964920057160353988108346177852200919078772280396058374859607192146306146474126249518110202186683078541976611972782211490818941981884047513124650782918996299161650912929207477800721135502395565429387158222268660712931698737111351316559521244699885983756876477983081102688458073614798300158517916781579496522950342915156045018848937765156018701763152767919781971474091423204601580720934079214982324662570193097456960389533282852684764710278291302364725396814409254932572073519814649888420858957377685746459273779091419364032523193546246976491542566132278508592426875474431467157412369389845123052910591370651760081790014925613785372431886264577087881144962705775810418099834587308378670560455777867438343869498425266047288425580427452075249480021467369029682631720037501820534114302636907757095573282908402451340506119185228091378558140134239263539216962396372873023937890015134678674094611390212242796365934067305485575861697507773426206773654939538102848822252774768361059986376353176089961441310578103462094420522059058379019447696709067964834895965186150842041202936722037098319523494872266515878790477181463011783324129930074143819671988048530853666790206511771957292905816921059259496966215089713583341260740055749380115060097617809867420616440607282332644157147894533184457812374891121499118186139967894550269712321611163685596804055014548745058225081196209142732502777724739298804137793447155352944062762086925293035737755879576215578407576525058406014125144978186936557587154350416793010878450771752356025005627464532892963223270982760203817894727887479036614599602775691058793817959316787019855468265483520694373666697675240463008591075423432313539844776864380163617855270013734747359564757848738259520216151093615827895229280071443407416321011390925855338850636484672031576828532412958654604600351858311538268807566104728742502001043827611066091049008340032305102214449001031689540881359851008678989835467982987960922456938828570504531231043530390434058561411234805731455020433414376254461813002176969544806732105592461494175706848162279211078342309898243313452391103182380434623582523426170111572760862193569482295055335609369081161119985549299042880525001424710884869861670691444940076355857822521679143464830227531807468380726912854668582538034862700955757404378455845477370441914637736720599571068468198036737741776389821996418356529205342586715557350660310718503720714861304649366979805105469320959187150676544109589175763371995437073413037881768073220103003116407300191190774703551081896901891087561058482861818996650798482067156753931613758724824562645243218975814671001388154713389401839525466043073843285628000777665273094958300417588880074641162162052361293023571628876314739928825704908129388229664077307082866318352194111449898128317317117672426290678828807333075183761397843821454330405530421470269020671354113554462509893654673446511324215972536555632367137622212030918251031689925470874401794308714903200331917124394816367648070697377868858120095786428416563669630831875597660888067303478844844058039095580144033980003351604300516026849848407534576929378271393533441351092657909741980691154915239395153627367058260716171231090564681626346876284467718418151383760320116874631865307538797546746009688021072838377191188197531369368018326048973126991028925124498600373643029107924294091274413873653295921928329936700308157394160781010419532592384229157748666258086499402598497619842541250068307969508940043889982280231995676259090372422797870932737391646624237151626341516373600342292171075991604931181245117801480225072672032625417599544092205903715628558698746663341949145217450051987912997969288958048861860609765366828449049678874507953604723110157528924752567582603031609013710542655230513124740621853619631330098360068527410040991233248423417483776666279145129917086564831326220101985493625237805780664638636447525990215495186910410084321459421750673933137435828861189223803004371772052834793520617091740851542761000200488247771191479321175267086305420221879761660306242800230695905312918819440419327630177598499650547010846006466771939501479146868024592361385124355536000954396444648280263354428321803273300919683802781917173465378258663941529947794066084794411166173059899473765909355262451699780495655959697718611562537049476592816866534714686423036742317746380235761443726062970742090204386901029130555442038681889645991010222627031855143163553423557636546593879739816730641102718379096577692985108046155237937106609958831748251856181804278624279749714561935356386063226401829156587607730945425957595153012843337503670681187202631266150792917699273520814303376704802318634931667070679473680640584267620106559883875996337329523770155153130428064689999719107988016457684694349843037921868061763606712823127032748860049351342890560565625114710128417736882022514803326497358162666711349105795676214953729013586855399183587054762156531820048393923395651183501431290577202520068536011797568002406477833129565711015466874958514498833249386547599712129640523808927947736859476054129010672459169713999132655654986388380499759531045751495503209544501170341756454524926429018406258367699222121990825239713061915506265035202679441073639551472619093178787333615519287237688733344769622650563376262774802962562805952873380126666117762464864598609300402221337761316154901302574854339219499314260445654120381058764241305645921103281631309436142008613811584255756721409442196623003842011677716686873019075515291670633917677655201802491981581477405227526322165003006776538298239015484117314396836161891403282914859087241302365004651366057906618971724357602640798486064703498448110661154908199030436097940924184088950985605783360166364707660188766642405879873756117314843946203820563015213049914434656293821836715704304018705986750774141946896220638638895098948759924742678090557015959975266869671894206966053205587337872648989397147802651011197335212667202781654650349878627340516993532297384053340183038305942461184882472692673612993182767806337703216837093773412360670776274387161735660361624587417821281409496057781778377598069414849130419501443638376226420134953123474122832771209206786528401667054312897635309760083721379089445333751528488276379285239766353916220424783512383292457053915612401450492221580423127648936984296380731152006932046168065785744022011621858872198160357081724423992737121396789971476009942200600886897340366170736262127885141579253721053623848859439590336739280677098667952804260224818314246655029585033103584741781650454043093693199906184578252541207605803430557961606229808602344169228286733031548903919552944972481097444942379657681203552812587957027987739502840984917906622605768259503648172858546550176462249773742553414280226524314095933264847144525727952870799466068600886368008465315284280366658191270906241742258366120061453477630114431918603463561337196345071561432308531408289422988524684899557378689653070468665402357856841858537504322588414066522454956691547621943703417744316598707912485294152542478786911413674430403017227305658091624574159551874599096909526316730485221749122458653864888847157436316581784909866622224153369312456136473835312026803674391795623107951269992832072882473213903146468139346172996980350373938590859123485843845489542864082238076488973751912731352128022143045017775630334083071069088630304597491654095454286338061646045757759298254813971749545022950291692453768667672883456105644883912378782841142487913491014368626511537563354890010056798541897510755793313420409637783888946859314061629249099427119233005889239179840690460557005262178733270695383164664358583144747838618058698606352010466118675099732284828896307841785722450074583995516044711177055245196062930557677752959292204211057268482165341962864210636091994926583438300534473243809821178978026173849492328823251535045037410681676311190748016263058865756692206267460744948444669151484004004974312377136204026326905772445198392669527139958789617919157226529913180331748674390617060804698267653938240716657809620600697257920024995686132707356050770125098326474707118969879102055995419685345956333711328432352411185984311710545462980692591838231530383314866237234668309752650631386625970886208824469104709224641384488529352297880094031935110969216253759231691263470675708007067242155548780356983204294219567790486799021435305050747875312918901170738289709283756665792108642802329305031657107458958829166844404621578924516020874145715672593136762636023426221218016185964540953691681516715149873726433107408081563882882064436642162374747814125336960668931956289149170517402938931369012578568479968886053372101343523179282822203873966888938297219009355638383265343799980895651290838823532713830853957385197921664040515650312750379051401720128761992510843683304399079064623569200691674597758597646769825491537457887266213483557519790827300240071473200197097494125098444314578038259455165195968320038901103052895030412002584364135136579441252654787206249894719229715634056968492860729563165727702894053659712721916450169818919170983551776728324959330853164743891332917233221889898168032477650209445218600633345205504167057579872926218252156832993402537256132276039063179672436265825756148791844823345716674390960905702500231828971692158343957531128530433407306229184710894237580234996017732990470242942266195177956948080261570330590818640378648345184771812092410000756884498740581129394618326463174961362109700321277131261180891790061744710663120773008133343572485826091677791336306493102167028798608968073825187987642439876093924507164670770573841225880345553651151666650939547962052863885209964792990286394988340779787649968052670316810993919733071003884998753586521957986621119683053700838587624203593842077927900894813999027263171146835611717557741044968136864108673270854064852046798999711129623164192455677833601104832313477014239758322619919155604831911809615083812182296043569237393940755382029033938810929619917670087181547392091128230511011523499957559351837933834165486838763171603919535285485895692525087116205728617097418820519978779602240071177227433016666264329198923629524475226679370811509164316443880897243489389980653601555862300543609439519374394443086670648214677215360654962510106760602881647836748741983007123042242385729084406156689623200653072914580015931713333887004603908860479562513529374205202988228095569373522036498582023004009683208995222791504505786840092286880387443579847981935681879300851684269217084783246257010404961731662102051912909053214316722421970211174876444375102798729033868426952549526097885666963154548313801018230604969414460680962933417111177173509321850954293634520561703040671919688688213863236359556382411514194974479715104692950237017774272531096828064966797561099679380344595735868931181675093214538983027359229941302394976051258926954470384289562629194495570484049406073819311507860284995757167086916640317181799801337904015571025911552592893554095047332342923993493549495227149499548935396629746287409606374437087314876305791853517303477789593548528672489791237918148449523002596062819669361775743102366013052719675199910251267491674235876964510277077931289282233569080208611346681701062407382469138687782556536702190809447922956538151217207907021826715645748075746294915274108851984927861365245285757206360582824225784022449868009802108990429600669273249057241706128612324284952664259672167859818884372648712197025236780488888664789401562425166730732716946917467106579450018322822483322329578811507356497038993846071491090753686848109276189319650311480820338277785814534928701792058322855220154771134604637206563735303251466646187050708117155037698187495879300954378379461132396609566396487334059746438978919516974294474858178970817054533245660761770288834291717586841822498318219070675299941047686487319994898720742898688621560278900252060149096482731094473742365107841350940349257702115211686044064552868899358815836581550738377434858902072745396640616541716212906873183603387638971557245453171981712028965679373564417095326062864688972539294778677516498391145092146670388119925967395143924734822981557522475772193831095667502828988915922822666072029024527280609756708003494084074522326624269809051003921483969436342170538971112785893812070049548243332669662496483999956391410155725059569776371314922573929609458493064576608005596484312218770278728625212751863958937568111797765705362008559790063525793064535654550487998579939784581201784363281564907435983048726766727396866022839986832031943535113388609666406419071446263326321488534101339614384180177934213977654262665918658711775741372160051152467239814007607714510792336503160220009539727183546606899241894781987203240630404945457970389565830255118471238948073920045532596248585507690632142484966794915262547141878552257686295103882618663765941817389281303786320930564729509776878100343110114801004403048506704062017161200572162920722612617173814906885077390692984765735990748163960524035993472842304134576385501375498213636292934763646754639670616801239963961534090897610195522626263160771494181127512365579424456454835728029803388649268059083078862604916441604330853818981621690726739518914421463911797037852142185211505761160004738335315640993275720184078964396368643171435548319925012503856852588104626056715719554588043540640338766441697423944512658543185898395884960691849256344272641033477696358437821231681314383533453880483199080247431312177096755987504600539926676031045616922160884182603474115493722297034631258443295123508379323486379962392255747027407025030747763027494366940045778427147094739029548717923673957775442674037789974606562681609268836872465285627111987556885763266384277246576994670234927250356667985589157942507562357365594198412556794682567007293757766489741412534455355816761295480258905817380139405518870059253366012147237306105586454126949992200564462332712575989264525714688206842976760859014151309734372658392500227651192551083603114837970100850937949134997630328704167398817297922554490895156560691025360414961558366714583994585209632596307977466607092079253232115509047569022725965596002727418750213283032959855596821013276545283632516559303014923428771384191799031279612221059908204516290185595401116145774819779753780142297073703656076406228728664449679893913868499809456058505019069202605592153706105966265013837790939489717165345336880189613346351488005803267293135612200288251045488571993182172181060872077740402057878242618540605256772183142679878908146509835488802821963709880644824290993604928776175476876644020353377771315521404355720294103431564592377010014320745659602663579146786923387581720617199122207530007651366136431412659270284893109229448455476168238554058739868105635832594886768252931797969004477733888519484681777912150261198477227041024660641317727156068340972876117590335234647514907453379045580159617237119619911893704933180077836273409964433612842799397228780651647222886666609629971402909341080972589497579426979779013642594294992516910488464227927337875400142709135675828953006891590143116782550303138388194786341222612913829475527041920206687270255399326990505829382956942240219285729007980308657998929987235458089180541096741810460098698961562232672876390584314894663829692991997322167993461491923723170475440657875235154945621224011456317985802456640176887829773174814918781635838300520320467685932908675943297475355294230511147944914533711927881584885040604402225636149797382657662238204935437661930122057849764032830210489957581465126808470217452048241127372160343871931810681655173953449710160991318059669493827367957167797853225437642325410367126530784422902621906751822631345994710848042765191313385461748852242132464209830370013773528039064086063210710220239287104781983008110460364833061455644786848213709123870039829950942542049065618301033604470313813019743370375717652964728452601209140898775097507214962385178551548837088216297969126664814934011641588024445868362385749520943971876940664735769865866728398600784413145546445639214035543842254560953932109294626336200911245478817756403562967091681290273565712274336572715051114532969510570486076042152895596482846580335677815796943853284462311562842178093605603378151688357793535939945752086685567021880164373890062392509497484591782684503945312322047313037035754394229018345024128260280218231495397198050074261520638858874946441857580959674036321818097281109116201742871585829800255668079645087694489100576366508623280432095623851466660556833081865741626418787530895386798197319023232720099493613275982393578036640494296773054259202381261554893098555156544883284341960156910368399349937892595143673348565420687693864031101759598442012218066747847797663104089462200531138629440007819225506373876395055525624235392846205178412577402370379298273270993886841233677885195196993949890211980594131954586553653426314636720592593354905223937032625450213827069828608571749908721529883185612555884191613801514795132453664093388218281105354061544924227411843458281231361463989851065427397107067840131034819567392126962667095697433489041585728966679627246418983358246634000034406515291752411221597428088870390961669525030206140935381732926809795580103891527185851727511987108787910854852052012168827565774166449020153891633214376391053049880628823673003092017228416172100568900274761039693598470224335921889572404117722458890020171711547543037320041000551791133408287374699430653471863064941831630496820092118284775369519530272245194406655572744291096301728679014895965454834321822549419301921043899267634518006228909927721143711590784251012368402584019653314418465637727042840758443215229287488955177166813435656561390610936412924641725357368132952901317458116009306780568111297337419683393291698284460562698772137213519753211351929863210963991027503897706658023302784034247741412326962125666032808377840141764489525369887315008565800029209687110045694565020751611031781671819022794641146914141474330922067372582942919419118052328553982518046153047401147739236694028732082906139536159986826155094846817975718617610869251375006675175052097759014786712778522704116430008058887425572785359986850131645281293223271115797843193244199766184614618854895509479736207652211865417574920322931931029395420219892215062509105905397911141239101313770386065033474045255614261105173004383754965462730357163626261088426902682439649076904054443061545855239642026251685426595429241426217518233905207541589906826982283206499679104175511032890019994490142214079431055014542010705592732182118669787589787854382735045944055534862737017957345186094786003520301084824353704915198316062838161018562281147624091244030140301203670488977703114502138679509470138253330750165302284697538218746224268953624058703940629603039061872108997598698166705279465003993768788682152524852793194507432159398650988738368966384073587501457038878387004194585506652735572051949358185869059648696246651415654992584154746080123345982975474040907862873433887629878699818656009984462785342685387974042381489630418720191755895573448286906311058710793820210683660656713319491485573001186203314750039775240628661882554385431144976327468173438658616807677384045152027996526145461079251329435525059603800285183032194018427601133108449525276890370977423861678122887602120794089153801300890964048095101188279741296938866076918804107002967446693394276795559704705905065082725661295204403377163412911870995878081529871415739062484337777997027450652463318724647223941553999031339862882429233966625606402118737506814027871325744567246764060190114153414317694967525712142902334653031245625519717770720916424433495497299719194596266508946214211582767953998943751031952876906639248210441016933499942929109664284648971219792434204834853460222083039878595023100922353056993689336164529778542951376563541947850737615532261289399996767752263861215447561619130189193392968662322236820668388243739451927951801586750581762489065890118087587064398368795509296301455677678379893257858857187559132545932648602454355121492225995117390360075019348033060979239669445840473509871912326154072918801720051647965619536101854644191665095890127164096591875439655502229545550386651783533765880216854220334889598445591065680836650371781754497445810480685263742195858160808944460013938848833324900646655793298959049195545007001368625705550407433964536397164176218277721995794893052212594246942384373966599326683043704253705101537577787098466487178905819229514683287077313995315681368646289918423931656430656511208619987712193738265179477609673865473261753280642714549824149137315566180389628228687679637336729480223674745441275139375015480082098417392712715357146059323751604126009017168023451359388262181043081635465426501619584319419640138363009338346668573010644047490831479658960888351659801456471669844784614770312863235653958801571510539378905047190226128414448770317237874132331962232578196144683055806336156466674238401994865404518189243623550796675420230548646050234562003621805004929501446125029270383007296387002922461957940930832048899106283801744377881805320527539242280700560067851944094300343265982676961857338707329638831328521058915565958032028561572256314862268526288401648918201841915182242031904876768842809706419744540160901873881382439823879261227993730827306040156198902266265986585673305072174239654273185889251124449649724101232509723542230052661969338790857008686279440309186606402764015889734859047190620204076884160240134205709110281893206097618916367949034088135035371968090342430372589870697324468713118765232019647914273687005219513244665770176860847742852077639464380491925435246172616160509539592890093674724828884591737564082419399161464511808007987015884052031937845077420849612880945860567106366195350683760227240545373465134295338623906024270413014191569782286373635835258962080755677443212487485479199170760206751954322974686753439344676454795455481963978642827335560821494017541594152600909894337617668799068776724350351768168430888100406179194988428766026921510061624084083748246206247228536558360067065146629412527763491544625503259262744136315750531111735693712306966384221524322915505458482690319157213757759603466111334922234149906771625750444836606443151254149683236142464473335819751063140157218003152162502226236148666527357685090575471336518100407099884353208875597355409282538666165671480186836911820180356589519368808201264517803517087596460031158955897570237302113905177736337195547279021935135777500721161228762054226149819498590409968627882274590935432055891073409900783859316918949033068422221454933602371950415450419384273876630719933176550411534785115310677336521101508360612038659399904229535147873059152610827549879411162926952970778432983742870703751430980324096384073632352437423689305802045703253009778255802243811292498353967648179010160912345304452114826749830838375329514787408215360908549434581095582986352492333780187094022172129864660346379687432238921780784334263753257396580992015789574584340925533569505216980866393778953094483991984204030821456711003238521647949531380545345300543981005526675026696859836537416868614177088426308156743257415379868767699938686372245825740251539833117112454698519650475238284097227440818991062507658377822207940155501642881528084856428501732670846669223307068682034435349605674176466220016158976028005012700263477921611231150008790666276598172827862896354002355134029376114366477785674219654959219953177862165416365059068209158304939721239723137957074789124418319269861669166680912656586474592442443287919212121447168036852232032295581788747605426479331973265701305553990651271020001561358061860349442207127288540146626891428334551001104012058545553763581511925583138993284394396286972402496622913996279920990977785186090570815233586346643479526304549771568288172710472142431126528291914624612311808055872957697561695315936901394327369974677920927784507108115895792148744180739620582180647401884655254490050975690012145107709181303309354180818534650744751671266047775766208010351417502255151209184628438194611439966963149713559824732689789965641025404484905624265947583700979723257632684837102650715296508418361396718691756238618790482825426326200575393799311079254198361821879466692674067406992948965126308159693648040862051895602547699919878075416995860048979547422739745209900005341454197714745593373697720521780813909289860849761982439829182695748616151194863460842608520639063393963932237997685826043985633758523112514590540990491247321788666594343403396810958734037565173080581041888745722642233486826854843869392034938991801991021821899175514088357914683274003072837290372469085430635222823228346006458274539743076406333270229497765492025777236304372896640453554012653518943779957918256502042241731749566307904444088893702516068792363462643368927196583984601001841564153327901044543270113838278541595109568434417291766445128932872707210258659933223912250216588260970076464216582240492203694069403943079694864135185136610079599274714116642455917877819052014277805155069768703720657525018395115621824273082440972887683784382267845596460084087937251124006157579337038976631756330820849837503180686653675779182245243971548646663951062822539889472762155083392694655234498117678239412685645426060802112219017688934908459614919430436762738392321662765340314512751132235476227116164246289883201813487751320701101038394208604186911190965357542860429460848356198235534693413657071590300557583412374320356174550200203677323208856966911552292537308762910501583754469472933939446536990395683334401714922252234087684527933430679322111170535466468737978420811898274726045788578675755251911467512071777724633473864119420381117406773667451046824914691092208399929289055265355347594599119384240882803740980953244243404859036227819178204551791247768121688519748255765641835162991325272951868840674293611504396513656214698652521866341803699914615640420585199768183017318633177460074374454087928307427040663961687130835524322648016669816700955637432726789086720494907703344768327211766187784661963493419777643140024405353713979212299496470216547857127634088970046414702788562158934116584129253508776187751977397925527937847003841272276171956456096325221049298880220833951347457236001595916558248040240044242684793533935531263673957604467273530212400851763902211212277943539548412941631404754993041389377369469021006849205507124829383450208066041787463713490370527473069684887869695331913080609612468606124527852217543593452747608116056201825171170014744265155499517007300090874913564379686057837217715626898749151231401411932405853634095000296715322404973207069316834056715196371831165298909383943014221152250707064076362826601106325733393639103397874644667249109159794158583721551733538118421555051463229453945065982238503484591695093354687110866621885149720755484489009921801733491615420873582722723012704842682550109358910421442987103929116945524559572953044494046502155755562374485361049657196299938329566669174179847782852792167318319770415799144975925417980049399718845381895792441732381876178063847940312627652534675930359513819268107421206342112020643226483348543442635500245210086482243185257603023420189486204573629685244615422532696956082774758666013099534221086707607766227097583154991148405467030321376576228826807365225168167368287939091172398213617902977691091809764164079269197543634825683118854526072959265702074115138115807897329526578426390371642689791798124646032484576847559673359937795032372390718430374754343234295773329365265807547237164662369675015175126890807562439351598824849484438016575079101562210473374942002471768957409015391655138337446580248993405099213770574279268333642451078758712833170574552200724516982389115798609503891197575855006211989504480382612243361544110379382840457865188126075741315753670545835837993052221733858302543760514984272851006985049378107762464009388140077620317017772110365628785190129842198430886209805742946904872674765677291532286371543569557783495342868451733176865178077789500712728463258384957995258898942004060508480269271110443118621965169960880658917195192346275254821172538088434202490509856835989190577426062284059345850865779129172368572312969646758604139766323506473078044324914053340345040289805337001635118833935146725432953292650376228480232171031492948677592176747215039726212616968879997999335364414651970425882274144056592861279574578088429523888150171555438201678243541650315052736749724811574739125221570219166000005551903242898988208565380414248476569423061555838245671038435344281665917482451516097192331124968937026936746396763186616642928286768531324800667032970199030904922586887863272330853892780960303675087038383432667031340174530488422850817509013060421918259538120241603712659258762422004668497839320527218087657135188046819051029955554598854362395402744086721305225956091843733400088987067541002078156141177972010880787007307179771717389467553319573865573321551703066740037113059135978539773325782724347437677165307868637483275483012826268888826204202324434436797222035048005291516049933224580995762970695902111802668408467978481601699194122973159609778540798342283188052973907135198576775934013918810460183953626762693070630076961980307235072495372545309211871499804906116971602982420375199246321160269428786855069396864023583060734673198101243983132627328248543490670589077465547017537203873102692051683649666712108560980443140233890069637377563572340224820730394182577298761525123936948939943702722252127120512329777114644444200121554117028427331387871087411586679325702223304029450127257380949394345041780048654838367150884262898735691975654557465637565288969721157772117833248742417361884724773633781116730532332655662193856950335085283864943280915503815975428597833142843651765345555432121236616116177295013858465766077187493972265908409759942182085374989143928662373243633270602974825221278816102777709349242051002556317147032897954999645890874291424357776260798485146092286352548207712217035219102055106328113294011160195461764660943445448804218117171144549655538421110035174348892601810813062291803182540766350243637147895363770026781044370849813949654966330340006014838610375314904230783751326107783345253639147280451874694655153972028882901508023460758344066562314835099445222347510957542472629778799039783423092099057939358941879735411162088104387167770070625645582416667868853586513599763204578286805229180006114081305918530869290962226721230997933945997880835006490487902135133709919604075407123339605416875164792611506983192847753293440246667511530714336770974406965325381982175170322231318820958571047915503582263825060176453747545563943125066601269636801888498231449296046290684882142498354110302499571543809971387753640024131148035587467646437257203898821788979278731407082528967627632542168838644731794941666458796032789754382374667808916958718518646623059242425357096047325989086219987024600008618500808820394862419387746448835760675854123446827471663308350206023056380057591214695224186790459548256545827264660289843026940778282122295139641778356167109840797711470364894395384135350635109360465532208455704189286971103520650196235565953238711388534790168978300419161903491124589116433052292576043772591099985552603131376770454566938951916104080425280987739637721085238215709462477863489508383530369566751223168427053247260449367694112142359414044858024771510978660286671336436318549215425332014697667226803360273497675107238969338891789632369086293027263128222943064442932128917492150679141476986281967390323170424612771283392575750321112604400650559522439033180136369993666692498571009032572449592127317747581404105637125702050268330519610925546565664490358041101122865631301010820666815287004833689132932926586539924429357621982662190988833897784516241808693842648393016307207635930435026680535240969604634030972145859773908287517319007781030326425169825635311917480241873610606758680562413294437661104704459078469705270487579775872027632617702028894763147677361094746380383090729790453427805795173122084712538498099341506016442021758201385588870982408056544257958415863225255517156736655286317200781063804013967618800030690181355653786893267255448181940169107205717635795939194787888707674938945993163877828835684738952778512247817986650088475709881269092922665157611904893455821888624957804303498122607312107387649668531185052187003077532139489904726848021158051694395525627041863966819178936902388894439334945663671168066507891178446964426621419180394983559136572126364738519350878734457993689112490758855388310859595015375518777704927787555121078985473883253962739384030381863876533560754875158503378305631118403050580923509773820974383985918637142318308583273985035590740239302660075753783187845834440130300509672061525807938136308318831995623308626984200383887450390871019486025508771221503236660104905979375193800674764308196036648937408522204113305663269925539910869406231563917200281384637673522493409698020194449444203248300764594328985023364354188280006368706564779090838562199622288766648341724424351314070011350490494648326996371186998785958269896656767190597655827095873011415611037505758932906163956611193587659550804322681906577241485948161429882244106245113601005748234702581552445742882039342454973429379203522273898968930714348807829094227025369636690300946931750728503990473910333928092263881405410871337630153141217709327396716105330887388138335510602467961905770664369955221853724642399379892467330866113105646806089802403795555267888944576458626791980851740005617920617268266448280555417676373465342719964578684431462323884370678073177940010850857728347524962246476288814022298880859407569831464763234464738385659706563719275334636049588338520482674553517959475408062714616254926902553149309666848857025788560993216445384759583149926384749081306571791379170101379820638030996960516085041894284383592093237640890391470497094185952793661885321225386738270425941080388592488790447617830315137958005271570088579164471043430481028106592497188800028331049607975883860809479705824899097417661261379115031032859058004033034123586524956126266635582158197791518108524262314499426737673226183801585204105077030257066472857421063455731934639259112499220165772357726137408397630135483141207039321006197338168587087270680190065270051441774246241087083504647445522816733897574429198618084070457523620479689191910434884400642274697684121429693715617641497204423698695924849928829865847733118974651797584790657660953025389858669188737136804768284022582342777395243269460355753111010451338976724142610711092105518962775810463362508765513146870925142612413797522691291801079108966118382702294488089697057054456815257085562035818486601753895819907903802374607355078203133671271858885640778162033279675682283244073083561697586069690047215413388258537009978246038005789495381359927025349860385768994092076783921416029003929419201920461704212660746256483808081760049007178545227808146663878999388505003748953419263300782797684111193189942042847539298413447629345232873013268551701849858057244947946055852217557321241877506688617321652748241803190796468622425570507898205733915394508633403101547550063518576466661905744611548739941243074522583073956558449994930747738836658519197639681971321434831211932144794886668262933511729001969092186403868542039533645092675883414314452555784221395007816168940191365681824102373425405934884939531655304106243574945028626275477322178199348151261799576945146945573474119547431915970551825065777078482834424973417508548196544044709198749946603959096911611454132531153151590768261913789379882887886438198361978713573520990520436967537176012313283655916563729329863914979313857975090564587157459795625608178392245072246204151304956314176025795417490022938309183617652996448749768683106589569915793237309249735771406469768601232770746514217885459507207629127606190871648073253023693436435549036620286204475979614636521206132719021341072733732438794763259334860529395370167217569966247335396031367644466879840368739916569562925723988011195433159685664128167331318414953043042187613433937488484132702052326619225953389097382511260025645702258549576142699811712296449776744035650535831984289009976480533006951644993964551257348006973448286756119597591735370463457969023442230438278764592322161106686515747034543473890958543955218742470068743379171413427791830247696406364191607812385325993147475164809370831387841710145501466019011942606684567896752244057362583297743725676112839548452137683029095302073532206527834237036222299980981850834625456752860057977896767257626893757590125088948214952183592174526580927539959511485650501181509330797026018771074550305907223027995343958733957394301708791324829204044250420309597261977682585406257814158644050483761754233556132774145331683140307330267502729786799388763395696597023266841070756078580885603599176778520081895559846230960219445516785232727965230197462337130795957276619794162835753527132604351693228539561093593543732656016597621744197643158802577962141833842098669169835331242631450314280421810936139745311356075639145057542122671178294838840209015884607665423906211944482306042655368652939745391440586693991503657969897869461785376104542473657686232613593209043618173283333399840960930832674035450821144194531423274630494444459886720984646309525127676303406420704219225553035184310589379338717000890900261144970869380130135322176365661716930746707660387349550547183769615646632557386870619240589978906867726658910740048359487512466686409665229265199361874277699248915800146415141808159281170155007324040568202858881312551775962057933627504903582347950076589157403539821704703932878272102175669463803561561224646502184823399737751173191591666319827779963591417413460040237430932852925120877155281308351444831086764204468762703270220417976358238208368419051673373594126650742536486896536226233862799172205240169656612080191038264621565350954191030201683701405726779072427119013740363076724543131770405579765996321997557864216500960615903201930531428040358533090403685111099379085926558328445929973484540967236875508229253985923725348906643886366402810252786358509976297523070030148115946034638009147445780327397941174561724857029088582352471151322471902613149986729348113198850563092983258493117774713019688170282456315954680323660710447367925978797810352825006128771787788743991728504280813104796869331030476577057397119961651553353093996892636644164120283838103463766959661525253172378996336184104506581607464361067061788957502101182754721375096254110637289105357511842304038703404237329368119864990836608612824795913048507103786904256601938002201973568497502485041253723734711303299244795266950246704519098729326477387308937176173009369965719061428502082611192636748021882540180690216652525926500126458156872798166080946403324723780809284715833371178488439278977788628921652996657513077210225511393153664591994877500002196982136613046166172367568749858773177837948273193860998899935535551676180744431515423874623742851400640652686180155131929504762487202816800761034330271345683153300567827359131929478507322633626753484415946780170857450237386302030828112541356137085497262348779491833275339449547195785353845581065444983167286908950534276511368382669868526487227053821888606341210868858171031903774634989672071892635908773091933108952780018372066962134301535859727418419537154536941967007804591618714196917945721349864429278107226563369713395863519664316184687382550869770993364059888391776220942360112423770598879627684038203305365563792659193888402245117588950566841935795239249698279933757022565560035630718954934714287377286920597879484785088166704377553115556897340509124193318943036668863938340198229040096601128411216387373404958955894850200431381863134579992937722273972695355080225783525267638109452206057104362362407974004863155391533457419009782225859229954376446575613621029023145209288230272451077729730340204852082758022304606909313506842962832049747470532665017693278994080195148792179567796956868923599567317195648303954770173666950091262021098694053131883312973787614210571309748620733521341628287949410789597596757866560022368040764528064137802207151481860684067660010739889274303410453460714784415524475132689027870900557128286193431002541943350672065916864620838369418953038321429518255286740238618075053621267684640893533401469689124787059350522832080398377164235056635858825888819012634618423582761514747275668286266969685317408687868882956412429505374808789931638433518343490771500271184408468158427011351160809685886075662237771193317742347119094269446898870375856604701380623899918358244251842135762912515699501310486078516937450706320216028871489619751926600914160076474540550171271857510244364242118846329213114136369357916464595914781822307845869630094966383100699777204395137881669230417679113905229465329377117425311960802641991826398858499135155431482711170884608913337167203257678164772977119969735265327342989265433900621518570594171799392325675888330170833056636420442929199162426950839398428355929773883809972043965712345424845083885506919147648605747576288878791124728211732470344502662101941234911831669675432004203129369500596047087795466541352683074805709514982243808670103746897248571591432487885940409933057715872737723663613546558081584368324401822233486630978554118539438613222091618581229165245523932763612903686063843642680807248804023784649804281161474174816741059293731294884947675047771538542704916468419935931128642596702963951184100965553437757924955764872757235454433474605476343140912953548735043134977386715208906876537079921141710807469469479281437997531817664673932172287012049221517916847787849835582750796209272347007629270455799133134746046235848572810787479113185249162343008275679617595151236735957523576422645207341249447465345094445908521123618300014740296333660108389085238097659904111639183954480067792761566605084189080891064659069312743988399844645187985758143645511687853573856115423031955164149677631147045722426484440892609246514315745038338346941878162250449982957263107072773398358100337756084770358404401843904528974901520121111148226573086567575768000243226121591977520977069204097917512787033801805528684101801760121866915958242786376699722720712088888873987360824308997037125289651324717593161532583643398459025646663609447846773297220390675308941853263736275066884031790886285617768179865588263604229568107570520590893955759001255313635800183253724087809597795445249557926986321897016963701300358482362877115001695122843749246372850445583668831809261599977286516974986066724157536140284809394798576531217773194678752169976506817061906073672131931792376678356689790877287512581752693285195356096763041862235884198303615456611221841086980306456245833728262404295984703550561159906363399201798461273685551033435134756510399067152110935030548457453620314737559950945438471506401927267515294685701550386267785917501715354442558800193029126896411237876821419934783066523526798779072952249385468272135215210582847816319252499623486468967478419209957588071571640862552134956327671865860586018259634709647929396947389364631461888288446934037500977834887594851467838165647719046669549744838001471059547670987884487702971057720923299028314223465843802255778358857298496983132636805181233399424581635184064285171770388268829393250526710891407566426994549243761177591964433122853264020460489489106663523584243807581248158890424470094519538338730476527149173779424261213262858107879673811000125196382725303206454165169526182264368926306297285821498704178796567153035389321631022002837961948114699684147677241713354462314750197883856686548967552107488109172724946024970235773723321343848587674725677727929544996382775603814468493856044806920220589574490960532658456473320465036650100771743287360692391536517233077735558388213914584776333410296145369713651247156587346064593054007937300487632387475548939162388504814532916747246167077972355473165085228333426907144051819474505921500723718664888547310815528726985013544372317419146093760437848706247277353570417404307822987203147229667091744288095484292362358096851190872367819229544016174524215785896228963947522936466163771558153031404782146394175011933662787551348474599630265968258187459095709568033974627885727743750862089616658720269797144706422262695552771282991525610389660636133192878263490972093382556651526949082646272600619979997820890260905960727468227571628464379330261490442762510768997464835735794909777489712872633819019626444079580676592331724712534635859495980549246062129788326488928585273089168039966318929691168593738615606691874666780096837441617745520859526749747317398373404345533947994325569933252894646942094411103648208102612726463208962232546901667686264052285754342132125632721178500949325897257857320389922011899439733948500222914429022808934052714892315921448855190859793592342327383171370045595514001063626637147319649399078302416677706961462471932251245511344470664582006922858056991128444834120102808944518842952806810010710656863211010325626399973708238670851211309583203878875580915267822045203794325094886341705452549724216981752270663450869903855320422912753537451865350976361635277584506765340775588384608944942939359545444574526933309552962085157169178598073324832254726877304949405414787202616221136563808903356862406043337304496026047904676393222312049885551284868733387658455201645010282274882006833905121090251804419165804767450323630847864962967034348001367825499687353813060398686862866760754707932615123696860922547902815205523806315122247802176285697179489387463223844449937667364270872818622747240544016732028357677149990709192854036138491462054494718645618842681850960030627951805696625185452391470459701458880216789838690853850313702657069896385021699428215183026625969883295083238110093735545307233531359635747742907226409190811577668916702250605904720789110312787496776378866434647688707967825501707966938486561142533737107801903347203961179760346773503364153840543954632120024564405951645704531700886943014718922505362072238040487821799962981593673615529504518382839374990024530638260740995336547410367234658457504114651296003828443017886138024848998368019251591186714937713527136200213225866071298302027312915681711472904948320340705148040870304765775269237674567196440843411452347286097101393450231743507772552058047309699571174950827462184996689191522186535701867922412881764929587528627673696129542082831163920980959889809235506393452914003004146621008951994616002562163035728614888977933854479083236114992657651830168497897131642419763597085574082682670316361836558914087725190415282162180396428393280030388152364993507372442501674415993138462963663187210543528539013503627959044547921598246199024084326952490820211102991581972240225735705615252006110227845207583078550380942564512027496439934398341377973816802451904552551302509155396634578612790039696774193195385112330527818882304347963142909950741973872558357907265187707315470500129702460566132824964934325545213782233421840798504448513881549030652362149625833335196091109119173453369447489984606449884702471617716282875061546177443252095829375113843173524567988074478148171073809202623868557576208668326969421994112464275772325406579517277569565607557958658098325000352997080271484089790857260861618403227263655933598512357460337867398871006641113283945519945002602062566973603080700458716549233477823258030738855840821374691403171277053705870060931171371360445837598492180536683297950830959754262757085855070725238662591432149495326319175278502968792398098890769930015681927950078158774003677374534944280216051414286265933690384715644335755933955995327436360039514526736803572172824886217211812151894238601613318304823572070439684220763229550389893501758204808234553716898952856702831594570025510340185293547853099687448527311593138643018550910433256746965254018645875826063015458508342339445976663907453631324435799035230273594638239193366772432850655233967131448792349570701606730118005759600818858431034322883228567943889809297890671666313817297885787213847646789934965267328641374792229349866470608347274935855580836512142950623303900177577981591128699005273602610725974779549600346561676438532768060894796982260831483057937168119293911566337094576239047055210020739260091786024006431198720880212021337585002013737014373272301542528390078737548791827688356839098708665607064756230690574820287834450846502742325207924204062012300378713812306077029027602987309729976177511604273229194658989650278636788074103268047235346610033560987445738575550453378030687086815615681117981345246540037876404139891447302425519845975427431999531051395148233984414623247791939372449108504269881390703457902624478490059878079053241343387661789986608163947836848609815159073752178007072476987051931296446892606522534590483577650947509416234809060997866264569482947061761206905327771199437976469841895161418948758869777446726147616649329891939723304371992498340861496173566028779228176878492957077590432003340359875877123426239222360533066690330583698744754894857983513704792139360081536813256446759564260939290105541326099972291478097107546830599318050333651083305976597333207659295290031799702835845516834142502966487958171524608386822477647576668594248838379265166573438819268289993792728977203837274794686175715393265946152396098799338508554022693152396534975960824815777847748959645234775139654890876496937320543148081217653144207888683686969187799888304057749604344298906518923229098320262423066191851526148261723733202730996625617180600096433482221859869196462148651454097757831717128646148160820835266029445621363986749665880222385386228778732426860814105213381715393887063758664377922834724068721770480709566593735984338798181519481841353891667242941628934314072725965661378366440331834716033708785799653351531309762701627653003659705591140589155878128114717411192433548131960402079683625523741833733314954676762709005144159699700529804170916877577413302910554839274873138630853947699276951582072676398949844560966152862154483048927809197168489752696601637628142527756400501101454790527773645092782066993974633189391180333152213255021829821658394717144781988252684089920593855189137617539910578661680953017443006066816011360536600385023914280826863916156726002329357232640388081293685171553254843994636388678253719447427927759741565319624530011255138360126858460027887428179647050611408693401506226843457457722271157811338970005743996625803800323550304841336152522749527833399815651160792555463871039735491940304625722357396102347047338765711442327080952350573299128463886351055487397708043739980160823320024657595744575139906258014180685739376434574946907726547404495391402788749004610649012909184617967294891019370420886358426254948387385116983852831712124514413880886597118307980406880715478365592578646136960444119130968479900479441320514051641232080710239921753316000522561659352725367034241048135608634133524668586832123375638735179864795436322772226874370652567324538990362089414544862139242549546931372628816096820297818091670551011666756608308528503787114203120870368086451433139108218874621105424080848906686147022989340561338459562166550153964049366122595745017710169225499563981851474481636885786860306272482221313913299473168022393845928630049262640817107367610027497768874886082425933348476660199993513876737630137250950982544829120040746076177194508920579146306146376065134551292111348185555880757918652986347431064054645588299642019160943724289813839121024732169206407672958044537891861745130373006551096814847448691063808903252944737598800429720419808784559914891734334522604624254619305734135187283633898746365515283052419161813478185302032824100988970686985467775669728612142151630184184943140744307221111737199447595678281759676444248814512755700783717135960796459713145551484777550182098415489515546611088584767163508806957200867966998266392821818746136679455916289471370469722902943720622900870963472631144347963977940908866330280017564824022568912923360893427107908919761334975649825480898724244346967776505001297710048378901519024024189943195138715608499716131690952376696870623183420009151909612385863109007941744837363346031248985858019081902855569620745733507655425935934002715465468126545333396190048455263953095254299518783285983869704618583024532227689686608159330326795373458480996580856558846797905988411987333422548494411233496821766357151296984741128098630106083884506114770048664455450093451692402992150519590630598216252504692829576817468883228189082719117396953928415129790119433034728220523300546048363199333749192718404775743394588750046507848147883875364067082939667164496374055766024787573802170004912395794699702095190436348482610564957876461037472717367040504966176711860203472508700805174967925928778088112519507167841975011981459215830282720647959656750818829678213938704044208317004039661659511719021083250095323419941255008201564999650236545219326528639040413112889199643905854688937137855530655691579213728698540034857923500513911632339296960158393228679327123440336513112290850255702024796622282705872346288457395244001595025986477937442066838236849538024090656749346632652254940579760194666735414806481579019194230625907814212921089410550534683308245009513929023466638305545004274641687634276152573176875372263696743594427285558399947135315915213373017277454865119431152447176216283715607824797228582604751528878012905672296064129568535184573963841593147809318941084289776689897518944016081657092708635537965754840568283808711024481126582753104847670265111751102529312008779523119322748812450122573138984271438770242447409731411157634415350321105546852241441969992831136140333193547036969811432673084307707414804750001451949222224777214263148681625583690692702673802974752146285780910017311526344297654703638317694724104577851767360300663647266305745451399911202028483813278418163495151845072527883724390455207085892960587147605116689482023489904899816166318961998583653917290459930792899413239388253070169590504855446378384417984715178339789429589978762647401751251823550614591763770256894677587241453696841529561368962410649756069815404755943253143282147436998554417348157450250792012097674284411840080427008261093448878350444179257437001514351571781264297538495893035459552698183701452685924430437329947567762326021126129845720071425976075359598039488233247420639341105644256877266805821671324760200589198138865653564403073380922132167217834010627925269879919747279132067230208919383662353004521118460077329021399738475130323975353988747175885592857769269373122105026350778336284506426011201765589381590340431396016263077063492608057317265787251707463259616076231660970759363244030752173279679545561600775290571829959632461901893472939379584583952026805448508562016184398721197676517640238765342265178141300388568355109327264570384718918269090838138137066962027521581958106594872338024415977342348022605654339598477834443089955772824731217022288588060727665435721592965032551891346915798368373553086097516763690396661359449125626692444461592978634625483815306189769651064764102295312342130266115902513486428791940800349559931690367228332477120369715066620677438236603855046949516204472231887465047582212307532427262083094634680781328190603196388997281920235326069550736314670369697159536806723252187325836677561934819123943886440279325135429268172366380585919661760242553211123453430552526604523073207595483112348292019247966708099703645237194464314057744876512928318046098735185863245438629746991218116743927067601943243211337246804489579427451137006290206516430025631937920314238851261519660534860963729695987233312183395373250711745220435681981347511513796546422510199095989977836677912477807063107009660129527684779306012813684356291893567763878914078987591171202146496747040260942802764779844875162567774077202611993491312876195949885422555261170107222058742874377063291176442963373711587494024601495244496298883498864341166509399258530846740128078726798927179230626584662049233029217490667299296803858634741498461933773650818790246755477213706399498197939356576232573963832401377361270606357130758301146669579480640409017105644702229698759698370767894216926471460637821843251402253754973108713886315709982138589524304510942560020490185616872706002676886995579998863539238862136599210200845477547369979538733622545849906559158313070062176907356489416026713614813455143031304078474492170289154190941943264178527770093312111171735144210077308066843190574795468332528695913246024725053795938089363810785123115938516603764736375773425554287220337243878768527330027359293148313913384969615259756308024085453613303318995324876739386939562015963064884000091223659389470961308374729927256853948224168799834834175161617660770081324304691300529357496002914625299354986812958698757193671681833791306484761246673459274110317138902119359929223299669946241151986415767406732550526993114380784230647351015539128458822202487283550605135534488104994384811178842737406376367010130204575991743477393384312747671565159684671252912497562854212344316253284873883015296800262448142884302611923305917666259986755503322403431362818650670694525062781932416284350400791858997088806692666450402780284019791635796486372208846863285704256993441013963716392468995279972470782422795879453494427327203755108290872808757133098146454600934605274174548424573823248139941825025349622183371551603116190406332038956475488573202333426211453261310858023491732904757351842353368892036009934120605917346594641020558795888776648588312502692557903804595644147137927514246695761963575853943252882715861479561271465610784200913914303736349283539686129286620009651367994604178454177140646875106916112215879970583217301571046999742602576810007684532207364829911943512323961004048309793332254504805517077299319141690905995899929840151733797767978766465408026299158377369614339269593351843271591633474191979900525681994524443533262839347432258832450044231415028117285881436279697145469567009935976726141652101594708864962006206654292171542668994787908774140614462048323463588084371929974165133510069581603625689605364097066711242323482196594268644802523053516205346720844056568374262476119045799983846501143411295723656173319994505944747121320497914146106091011488502596714445991101842347622692042463458077563088907533079481268439928463245268641991093613734790515568188373034715273184165426579461383511126083311338390288050213465883801728775020974510566260422128230002574252937021121766679772248336177435617308611310245473372156883965613609734170154771832848648418397401627045406861578006293038382843883710949218891612846759782070274074628441218502790475552138973545530154853149439537986770575950306185403699751870856149583022589272233796030198444219379281509294868994231119178870072732372568651597047853496378046919519747693465027800873879811834050560129575799907922738121757813919690255492848920944621291460307615558326397945625340918696887527149314608643292392261072508487649586562790371570172824377346762275257855794844245382636482753134997945841841413191121471291432744289851405402345730831198641353488746855951340260990256485265185525416862830020250906366252981654762232232536108129645234485914406105065567809935491241063459045411277205910826228556258495001531357558384951411748329675382033143171101261655715551528146887299122341690054613094431461508065519564107012197689899920566267413944544892968768489462174553448501045066068545961010943433671724157751745327420685762588503226495928639183797903386235854043952312171804194950619635708444966069550342086390196404790276221860078987642972009606790528487725414554288931533940025228543863111060696844622588160950644142576008692585460994042650588684904915178682051950829164355767707575044372207599232525913112399003235174609395412706049893123866346962752649440010198438885559831715789529793956393215427501038827134799184044458619209173373194261265123922303291248782316287494153620341366658192337768631909761343120781351028119319116191619647201674929442573069032398956419491260942122939931964856214589865835670846273261700523952574009208473050709765762620373555097570032797481960634395447938256460797078001057657538758193706475312742691508517402176463516332433070181300631120902896243122887408477531923443996917589998031563647347874369094491235056172390695751585441430255585855721045707618171304038649166299417351273107263804615936486494765745182304983491088378664162005352443341558319442392636310352514826166540221068673026371671612608136317598430769377898671225354506701271762420572132950057510878889246786683512656378670816996761849080364753560845520795863544944644676334263138862871994501084235618085711979742910392337173691072173650605324537684801787954421041925231521321856910230812820088971866991782900828409660625022854826212561011720826230071676024466634788316077126828808293063962446619395701471429336765562746443995421713465173694830331155901083539906442975928588578993772301912696948202023169425348595842869636162503666320253180028915879636001141018796417404149407711787506106477598593694314729535452856969986162646066913790922011972131476906845390142857324472266126433468459654579000476655551720506935962631761305519668883453609527639626730972844959079221660457036143008874087385483882069153147460207948024604031132630883375656498580189361903776488132835542100303240649249949607260561540387897312259313319281867799603095732547755290451636836494257494067009487630179349595545559609827071730578484183051142978967465013900198076431075345248672219576424052893940329282010490471928412276364026060118080667695678215194596816014853544033171330403177445728966474457618501160508275560630574178107308061736038898002167725032994844204329568063041627925688924475689605981760080701825554243905305411233697916824665887407639133174364825166338154331975322932348966703241658165316527088725615583608949498016682538828989744011848988317321741640310772546453829033136913235500497163748484065798931241208616833559884779686251999465052945423959419564108665854327622639508569738801464363016241365719849004859542622421048717642510720075681671174992863291974226821526790508988632722988343289281198479012889420006826891132572967721884972259587367364424179277853260795902920988561292975680365180049550467908450612202911718370743230432503795994671529388983153193089945664349915408319115650045719106365486246050751872696626154343182152883227735325925169064281113126778475397561972507841786139119899290074002269983507185637114583321217202688640788799021472096896632423774373371640829517170782126050685202119280915030395753607001702890491596159897492651440314621337952842326879364295631664724060946155594441469730873858151194925075345877026228265561904051093624176796155198786854793537841389934968451375200011313900925793182223348407670213379628798100808124925616611424019733954241730399080211296852846101159566927738201995226184453818809453402669415618596205128725695509378288889181869427692710271218786425918876596803711911358899537102211592620563330620462862978140347287184528756424086349592283425927553206345472633577527980152312080451382370535593805978143960443494033608767195733562079894844673135043844678378457942929135606950444850434805047328062357832218445413132533841514964619846827335260791531196674772404053593268051494536801125522340672353133201651481288823461693872872589096856800307012319810666149170189868664217428509535138097453427176876826331388850848356750935756786445211032610992913035980808089975727485616069935625498032222836721547467064418003343426515930340946374349836255004936495630545645164340743824937315441134325304916814417013604999854853211072552555317408066534205257805052946656320029683316094344368578554654237700859038643591551216078428474746281546675683242034999552008646967452634004331275376703752101803350798699212224960383692060360082073689281520567271111084270945434926077064083238645167772982433357664700667815505669107330313785184841939897567334477236604690612090216196551673071805376099918439495828336296203805159344646733620651859389516209431220027374876867693792422657280395596675305109104685262649500090851790843461010792816877000854981673241016362739003481879892221735343419655990770390875191218730497774914397498587546940554559916309708326933414494170720771316202738549203271989695133317318626905427100802511455438922367170255202848585133226748353275909402195999564379746815896452886594751855894409167495040465095776856145746240842929027935214973929893283064031540494629412469044941349111272387545476264933639356244378628891073126552183248320805295152533389578884553887688782031582687296569615509377578543345076784924036157659032425108294099894051953805842230082418569655569553710775824963004394875489692263523079545161712804249171688850884064737594546268266595738781550859444003634218977180155061360339956243889780948129857675632216351742730123125796643600700380252070914847550552206243884924229658106719687537746833421718284048733123489118515522048632470143698047962412697274790567970010901436571669281961669521333226920696307862959805745282182177134925289942410230355202090443345076633753282976975453695082978724131124203380422936814705293360507658713064598310802276112138347261231350678009464571665940775315701657386935494524423021667036744131357556580827074426126331169444970514063990816192071200442777991793119365852428169129611382653712261460133305860839176962366139582151704833585497437329823307448000900670693667085000592149597984372355529857593613536084719672064950547686934606366910890511242050645462411387796348943764775152811799494780597855589759233311334883147268965348469896758593887047970818717593769238380546398623573267372210606233903823667740328202563435852906454675700301340833750630296881339301176014514053118516539406734195938164408161917443319823937167424566161368613970695175913635105384550809125027981651273628074293728981263260749374772134889079575227080889351876125517792883780157671332715569695040706322577961391037528565812581228649415921806127868980875860669424662691065643885532124543820848076504329596438264932240285907681385065640933747441333130143909477596319385708843426958425992014139999790491418216759215235659029427826133955389561626219819396088366961628606273111865829638817327791154536103673804620133852211989959475988470428183701594847607484258690359499931419662365181581882429747229544001403173678537649888288498725736796978998617076889495755253982158532761184965016352805195940108058341188379617288439132293834799212964376992968649589480669395389998614005405855369398007483134059401329280181917172213295822201028056584008189117143372258526872574758548622809643569201880036122570350889645533691888569407737445280788749609461715762127813782882840615852482615467606354897000038669959805448768262344069382775457171270490352698315545508467450410788644166659953815754234745031561150242285910418897645556944253007960488367926019750772357893395148998141889178736115220400333147089030656949449758153475327270373922892746948939919381339326768241970454920750316392722844229581271069284027810592655985703147781531475999935785699902749859859943707342088453663635341000659933138367951167130754005276191102668653922672779975521200758090822179474503181489239636919250864305830668156286862664341775372384647346826180730325630869425775252739944971879511967255357818890375069899011754934716123244334818295070114430361069280129921085735262210118387733461182459852569873245391448791609134398875626760396013291230310269692166994990639580722830806393840321711516831644167680382158426871422639781178621501377311820961062578599496913245024104290274272017263970393797600292508920026503473730102169162843892530508266778291129210001734809106593409205964641235882778422149463674783025371989372427774299887606739708533620812217003422144926283124126355673168550167512512264420321782201491239232145492390939850488000606592462571280113089537897971193303626457092330087128297654957745353546861640857520282395537750910054803638085781624381160997250732951746852634023146799363088640630236229701167875799320021533320264126830747327063771560913050809816092089770539249602882870887833308562692466428053933541135852665140793127582182326897119710387085498998582135518512716641324176671573572862712863532780624576718920790005718885943251602389356041109345626665186273866459105369095026030159809628801727546524705799733431687749106670138465182182688917490120878823260719065313396431065982373483739192963302564253941380727533355986273007628261816626421892227360441921110767021830704418080705123559054868396755168097646182924002661093320623603123637511067727180913682994415941045159829709038722286623157936956955432917472665724197099410538139919355810750194077568483980143266533306304501282508744668446596401970555712227180203205974678460143520562382362118463643303781513965113783077748351224637633889921915420204492999689037298305625331834640709728676921556995046869599498318367681465000239624492521243748748819217028869121660596357906709180593789322254885432644047942309734878511779386081032507621048582112889176701209288833692083466555690436552735758625613068981509847311510778501361598041214118004543699062074267065264384248480586376063643905259777793873525502507198112754473575783638005564288158679107477556729765922822945182116518670077080532552573936993662155678094115876499174753422071187360850303915700958455581878942477858272531035638259498172177835605207910615884221978411657197822196025313277414684521773864635598852560562168522473185555858536766303308121818540980127387447009907357523411806476271336855637493871268997752377131071667272052339046125482381531332368535984838681649672497703023536727408145472718338841433470540270528008138752953804159716251917393787316912258433990126022182017706940983292120395145939668818474176962835923892643621076411040701566264981893909752368795688125168980960592311486741741678341407897337617280774604056323815401383643319703175244182959007902225132279624836575369203081593016433319331426058167498291372772859578425353718562520781135708401731961976471389036079911386922152871229974480520131292349074436601315950774176113992044721801035518441705549654897188328908243656513445236135826580888539225914695172535855288699563946364867294418049601672500421166127703695985276018180187638767524783882365454525855393646763661432561963297210743236253628292789225480612974571537551942981495733829501241889996818974568723680728412384778679093141859599440992179674041482460349179668358175693581066799415876529701502810112428688884802475137797115688441274563818331141633249380000931429679719285098923347819478151254110811697856960768931199893694191402898552510378785698076870756334533569881105943567121032971992721058119669830973891376847378779369533426610577761614850063587196279849465663295653380125730263030215680110758109924300432529129789524636985421320613889205037212541506736993393350438896614422920969526889461913855738127826103307146213528052949737005236757040054526657109735279496870252359391601001132137552868188946657106046679998977573542902643744358019383940533727396347436977777504641086165399128187924002033278240498853617092991417265735548189655040548901428294564880705144720290453485516709318774485741262133282946859567571032198070973204083600682977387955286350896846515267183626975810514317822119705699589021978574590061937510527040598655329022939951600768186751660199374946426709885854376198116376864145387126820918137174201703338316564648817204820697422308890812877198212945737425698510715092925539984402937275883677132258736221362081017592636643946578143604630847440694365577836043562137724575578584030169072761228547401083962612966457313266537104646164506750350810245193306506638084471668052471457698080623384603673614674168571051348224088824793615405537718774849570394377065651734638440513063613639029183143140578836663651357636203010270313022029371686974595482175669594429920591474966535028391147560128740724839258990156859735411434850685522948199186239173919982793918176958835288688687899423237132181794701378774272784283560701741304602142408906508735444807193994300273465415389366514015219134402267487775204363858938677753805798391889480471081768101830599496762610898350453850619272131799894604325571106831641867933553231222979349169887543106473212149954539000830184138158589813261594489174228254649300573216834123582539235807927545728811632644414433200702296631954786269429415126652936906521589307032150107280200930849667357999840464811841166405473765179577930889967849183995343994069078476389903957329802462090036119125656219064160373689999877183635294504672012342700422237381272044093701059447375230183347912730367061367841625997343109186178444471777974820343126575165451644575261709156424681451872185774479298804524393680272615602229289801134320781924565107881275453211609720830949214115635564574636247632574150451224473631312932156874418848739825942330343592149204879038915420241441122706116979433151223652783351161043773238306521645268082047435238373260087107763970852677630949353959692390083278596343898437752510652648657631649299790079511098976724735150345146108017907242819570923041049001445127750914759881122828984482534868880394370919897183333075618506818902770020708362828036678040378392397795868654426145733137909530205058255444632410572228245797622427818958182878538119948459241849853961124014617252106671575841281726393779249514955748931590118800257325480387385826178663167677019693967697261975948699272354577642481471203137348328411858274787929609586892744934208240985830235727130445285827426404193398973705349477613981590976325203548202516632822029525749690174555923818182478452034600065090398078316096404418415637300938728408616230865898163560532265893226403439751605475054701575941390521254870481914495886057944965598679285008438173677235247708647809520811546572205483008576250148584446076956288762184722265183545622394472732936013889480401240270872340880099658860246977202481887499239836453467845575235793338503723212147609703286173559619570138342659763150800750268671903022342933123834409817414579632446961008616327274076207020703768171672791468771640010854408798219624756742186182086807269577784715992405441458950583690755401556213540371350651846900262605252119533929529763182675685276819267060239887255718809220564870271084155910664895125395273550836630368598339546827121064048251254482515485687381592117433757943602321906522262042283224420326432909822803576443199590238266645791188544320799448505451624830365759389326450413179635494374589659681812479378298793545579452520688468178885376505066266788444124559023682091122633829284223342945787263900072167209883987618565894305911683931994577602836256856284545795487933853798373016562724166150194497706767843335194553006945104619843050856297888154767383973306234821904883509597856686896937004003186142479479364523761588873352199346938828927822264557300519689348522181636816313558158528594088982741305537854901804195176215960030783213204548753058606484835572936141142640899997939894346836466059609276635068261196673536629410931484752090958578178927186700613250061757953239256967507211771415947813924331871365493038377870646964769818280438513898949960132411193400083645006702910437525524887135736958901470033907314214573320667406017838802449772890686552131648661566740377054154831187398058704420735647116582436180004468902908029134807752292469053020826390027900035193196426157517255904091713507964495405424917454114375715704072039303391508537659487646132228004489134332575582523339684927236449483968232726384364802940671094695113290423583113447849336261493471834089338303269129607564806800322306642987865043147919948666347099542388872454435430149642214286079382121879572386360640508365928005028834963227596733944303936231650926716983337983104831916322082092194759635578745718356426067393341290442509401415569176901100480888758421984273082947462375072957232709686710295064940887506320975064386148363382101416642203932198963308867605815228037487852532768985263993237836040661330331578525916356209742007446574356078565919719731870158760476537737369497713641980189508320529032359071626241963202294446816850910717634884200078604035121741397423344265499919411234782712029945508910376303651951599341201593070163057119425894372286665880610244480160519763267992535548847854191690482194905104108635023835580196274515211250487263777030323392429928366805178944643931121687383493202915837071055909182690670906247616198065423220339320416471521054230750050298771624455868297267964270119176021385021279895215371572137053352808024975092322033323905124122237206751061234336507843589800797793154468270908347484983432498024463526887363129894081061809068907962168319202337787778844234310053067736587759992355623153918525841680135710748193995541570521980244114069317470547303221702395499515714788291475802575036129523659510021781644582373857119973447190164266600676078108165756846211134821951111863118235382268308008526534444491350169165785159995625200240472317350743779054760667891085119988487577926755339429088184009072039452726350697056026717433926973609349700169747238763069789875359568235513374414664793216210021006390222933629379759732495848852254488662763532132600841715026925544171450137646865226284191094743669365922403142555250337526078736475499396246102709939764086600170420667610510024289539255338137970418892032685976764158987313714361860344675436929853211185322580097060547915427161153803149405798059441788616789536399280775010385729611769819099116139962016787227891772176301714300211310681854283783684683355974625416608999144152995262830775730323662136144971417683882011909604342232325715551569836189994071382243462053282885339449789165470072028790145630756145835797284060386990577514378662100146457191634207327577281120772569460138844612621643073538584115038738594207138264703380632130568358958265663205969912406888258205827345457132942799857282524664139878600194196594739658540022039515582117707461423997967748543233273768045973308366358152597131217645186082297912441155860256870145298149975427362057606716765557409119514379794350368488545058747356830823055254970668130064115500137353311683321974670484303655821913428986075419616482188050274842935541549664245490442220616884969855805579029345714338654485676325070479728369008416854472387060657289648773540018715461994191241711160953021654905071709864022358377774830718448469495529735275871766093476315906310193826816163327060191058002702437057521259553616081183844055023421425437702827097972744087383555239064389821734565771484482552838506558228732331072710410210618744050720341929077071677665849058879084712877344925529017913624587565304714230918890563158409711257315887441848455425037831362054123468601403457853426801535154536047379382902728932499178222926679360850122546352004962814051531551038034695013402863414380351425621076659786722647796869999593741604705422284557955705185499686913232033465125043016984108726576201021907876093231457305709559634771981324899927154618348254240415622429094134308713025361852412799854196835301291376456458683609294175990579711108859527323742015068617323337857169366459993587948165610252808129166553486953266714975623318663475527016594343998695556853379701848507691488023486040108174693760652498710519291712204377173606349684784257755573273491871965924165479203934413430421711617781873163053930296720767572872363825979796074974589040353867519356024717706918004508975784523238306373311731525017248225288328190813079133412831406944467419617611351346062157208661406182241789400200471068194602642015331311117951537658815347979919328108163739738745174030615684382480220894625948465023114941749715588428031037173698258082835977992879606104710075473134409417997414370704337023299339246488875639540068084216720772555929568248049564317050296841588137946078309269054110335769081674114078456105435266017181268136892899598042709138251041066593312045928082183891533085561125915608993637062080025617640473424168290897670039390468412291487767227746259314348830389561540141327994023058107909905718648249458084599241468673770902510225543557725383147510813316859464682701936942962247719941388525464461955945192488411050936740775327243504652110592143646728091854729728442193416069032942999008351181143152236701303267370736806240901098514535434255574568899440730485824116660284710078702415892749980012509281827114932020640807287612305816461705571819743453565297835318919401869487412719586314534047697525901384094747042949468538549347592495924349211071109969076643136974828235073961930193664965958860732049555008858547094739500327924155958706370674675943937825401825968058748697076264346952871893495414425284534861732157225165492743049975965924176290843782836399227018499151598130129143356880089225825544050267696097064980591952651912238578382743296945185269283328689454648646759742369807931615200240234527591430552463672744513927581687273061916845581865583605510264433723020028036601225060208824729357781380571754009483901756412959073215144278407331311443716908160817919762174292163738983296394775966049054824097989573044230046051857437251404783211777334637399954074147392770796775423892952694941560517060108267925555190138608800470278964170429097596289079664731292417699232698881439358844398345080916683875163339628374133474599740459699247562988781905347928419478255015343635729510125632426509727055399296166809312259428274119357620557779272590968611193753145192415926230653205972955539717948868176017450771197940479548614908726019394175553165927978187372653326749962097391130252538690464137272141425198360982479158089215762387085364960536588392268528113896388644315258957431210593325197648345091541048068494879355846987427109658844204643277941133227126112157788581142172426142392715959396113933558004119605030278994767089132787200666756974316858077681297539864742039067400618365194328092217376309537811429414432427552073262639197825138151245209248798408729007050239030244161861406042629678504492121931612427318227459665326454853839159319774345701717009198123879092279572848242974423605393125454639132114078876264341664771635327218236715573784195743143182162921561463172194265360068592577340638765624271444231117118398832242958874043901391976626641406284448380104718992437270758192308569076487114447031313948523939342728035551648151679016269892212953799356980648552852365776065757209869165853785414126608025217306269596388922322918296015061558312391399214621401076671888593606835926761165047868935414286888809767348186316588658227122914542963575586978760972674985806858765846146173156922574989018094883095847553846729993254960148789664936590399120028388941209701343642371697937843191925287241422430945401928396466712151821621701811146229325327873446851782628068635259447693021321297712529120340777105833860945265584943922063626507003308421375374365946275061157805236218113799224065528717182796350871590450314943141422811881417545083984699857500819504275301683857141721514819161144968524294053504999491094711568863559596830802944763718389055872111238767297112165903546249091883144432832991775076213521570188829685628858751184966689905033185625881197238990547331500926358316206433316796644251414576460965006484935416556743291183006857738642926114823776299999963802634577190971091107639457473587176285279793467407661170435317073677148405520984872568297450980006664127881904050736868716798396640383086232836618805474323755750406329276604001557350182215643990833313924387968299167966942028388667451498375439832041988367314885486365071917431029038232127879405885223807306313107716831299533704806378002021257774632553780760443135326022796734560931773835501451640595496691334298742971441201300267428351086906795035117962132650039117213730048268028452805045596248926073315933133145702787575560392458543016827638353032924584848658745664090195403425603259576536155353451113862776998151136460802873548585916966592660298301645646521981016080198447799852960020949215451469560486414622259954195494634375045084064712522360379536346656838145576985885645346979348284800636887157128343101213628920590797621517044904714772913814462293126060804254002824823861528824019052900885995667842440476858313171630466714831955267671409257709889059124826351210261267292801396515309158396224238258509210091940461857027652006392952956184022094860332938443144375851752652279852836259384818682640823490037428910963992887700297452813745858917369032282723062740139248556553020383153939284744358096366230222349490577242508960991184303246155055954083997873269073722788533873430410803044373563542481407648842571977754462290134336605615786197429911577826887882070498640238886693929607339626280513890549759895495665204917148463039046939174430931813628153660511081921692038126035308877288179402574487778435251585694990048348392657559906630017000357238116347665603291806560058537247120799455650395783117791479737876754286575683159869161720602144724869492536388667969323544541493008159498252637945007277298816937338268637084137400246505442249884630859335347642679852203877075706368054029692200671427482382105993399856195202854797141885980461449598597224050779526518156147580923623953424705339988386458569129146142184372611973897384526641744727186295150133954857715879196265685515112721932200140271699601895067561981185061385610064670929455062387039184123721450930101342605672799548107156602714465157507200702492596005144365205823836999462011502341508587522372337396660219351585802990055550012020697450763346361615290728753150121017320362025594915768727470592636994257042263915147658299717124376133294221059937614634430459037728594321763130100502978758752473791283870716731822786863186013408560271374814049892329031824484373547294198868736607667136888126574387962538588656557954714435255559603542363252520907792534578457323061698153922140890818764652119050613040006676494627877836589951546256729290736115778199901999992741661552732894736183717656509031641658691596980044989552994499358617166859321352813798237837656401957842731271131014036445280314836975946510445953741248273408512596568401617643412350858716069467797844698917163777616199206566500871041319592098829466309338436661275327997946901002792922929962182964036519537603379582009353647183279955607223240886470744962165436939658312133456602480112696752556048045974671802154297407097261958166914554520823126059675426619562013280971192453723170696013636039160290333211220383020314965057247824894879621688114695805158985935110831762247838110020910458069027224845063737246826483425138339474202358380807110391728212229827337281138308026214231904833915179751156113409035445902167604066974867003171895860573413603431706663672578987286371337670557749623639460634817494498763055523460110610515405133945620621922289666262744744896673835152668066108695293871501434149413439934730056760060816212880385797015445975560778402889169819280308599757090594530824283106800338408249168421224004211074131078043298239725542039168663484903778442313429816341546239164922734984437759917287583238912468790033148152909044124732153852878111573166300326371787954700126457097542700908746336818889279383149788002237193750321314806242772890644037965747571693462574844708128592802709936971576555181573237437689308011488234845363282461037339888305003773524198517428135458467410204710754470789370130542775089030916698558111228610785959172344564781630854961627115093288729556989343804280894652827695967689525855315848097820467250410826979157001327995037887668376973775431423334959917366784831976914398186233028699461944956317782237843869397832274223485828955466126547113678301564615701082855744147895767653347930573794992480865182872889105980605987287015317188315343904732381684962976511906567802465641938546511306602783362363932673290566315912269142529873205675464148925927097389151587758092523658453305292830054865432507812699621268190965557824368440584634380881671925374339936322611437948956421760661751249236604095667899665043741883894721348567479369984434927561541418798721484745012348294057995195481352098107976503867798094227635046238140511663649161920720672132387576035010522011620662442206563824467604221614076858742551498253552687723214225665449060616038566018683201841176819627879529491552019409865351712841886809061140532310120608520558046460909929461124569521734848838763946781956285060003051768755871972609509345834807114421455814323374446290221135344608813576474807330108932974815707376523663267983834621046751710798143820113633843974034771517730516774699578698067350364499917077393240570303954595633403776013973515011137689445097373321922648795682526826309609548534535220146829801571658852968267655388517852427264220924209196351721552208799949903359223402380636204922056524269536510110580370196164337917482345794465131990297914054811650456810775173468607084674706005706070173609568123340460812071813043853962730439236591494429820085069862239202989029883816941815021427080614322152003303300301354201022010745394353822435823390770852760783178547432632778483470949607721234107936139412759098366616699971767527008269818989685487465253580018061597945845503015247719969167420413068863509070556335020904823439491876458574539798139164424823970014084984379025030240681816339577952072654236071283376778182894714895838705554811216283837113175256863758423270828198168376641259388910109791785983838159921623166448456438159447829064449546679818331080301165159442069574047238567228115856617752476705606263351304131438795307090888362378476503955103262877845805751172018030833072209448104986291972050260650422666194779777327570306162658359973537539192435003988367916025789103944624349829026436403501054887477448816883652425680315703911558528629275498150219494309110147153647441622124818571127963376528075580971609223628111854841941803252783423984815073400885410789551479650042301157730136606823785443939434306237395771134912130498806532899919697422036362025736389559863361542400928463193516132568014769933873476895381826390068450022176297457417286660659594532069222060909460781568558430898687045618938107866938929422228079389078885923682662342968802253363165532827208473408809745634079513584532909180058854805312115636460519555758569429677966217107860812493262756089824336257097681044000419832073075363348432550796173158715320837719364152474866258719303938330346146844778969635340146789825635040363339771437394447903443653939151103977125888820022340126154064093972290176699321908754572366256335033732750442163215757748902490048729223118976297138207557071488168020374995166309151789302818400165864564288841642219883552913855270934427722358965939519416109810044648084440382403202550864359599047598451028403475965931679514282242705084419869213755857532334822152230714733803154539931027376371478052317952075704957356844701622744163130264949499066964861522305262450842630780626692373159164727329480518054276108616219062444889889039830630948047686980872225133363073130713665960815843106784437308572881043094152326466310692491452683066998807450132772462260688808939947693181935838872808727264475107817007732781860418183947262595304591730509083364845563608490189039402526779177474771389360385893303840183161029744666164498251109141789245963997848467251812721011480628786657093494741300542330510764299947139452665068521729196876597116216019385878614096913493951992758905294446729783966704780327723848214502170182408340689176809884361238245714203613278889315796769627547308700065769575969383059637640542062779088788390901834186326634549361267406973086306916987791573585415461151602253631020361635465157652069965868472968253324359246182944426604292653282061485038147780106425594812312801652143924747845997528455724669587101880064697994438652092633039217330065892550034867656844333086510503911934550443779965405780481583865305063877600134271252120285991424958864076526816916460817328882930185088066051338950971114273877586930231767460410948549910465105235965443400477441001938360691866436839878872099436965352885766041354553194314494702235781525243236271436954627629180025171447613980293864492307309496934690311796030168036771941070647118685121283888768130400369629195898458356401995183801889777403921297755184805626137248143983516295924545554201340738779594380478934404464546102807084688235302636579038306940960858411890093182572169961300826200835466039899464340144350821502926048172505399360926061420250553952263129832531828129957766233966695722963581671350866954262093309355322489023257974165346123656862681025063991417972864998033868613529206935725730317816791438597718041332186114311032508051352921113297626223446420666195600758959096651544557332558163769173802515890293172951547730627583133998000191522136812538023808593148917356864944176335950858087915527284508243644687132100380718685728024533922395137224614614107556226430105443825146098008402033671479499123408316858241364950585073985510302028047843806967562492233033446601822508940282325725952801047556009577169533647506285156919310607599125062067477617769693624007604969676561900579664667155457745303728528629936467818380054769244163626386040915987638264117319858680366591986982323343046269120662870234113764483349599918320006449832660545526053898542909104209830579269462438537460172278770128775382925341039277943825111870618679307305022883507848682611055390916487619085698920013932162954934175707445007004869926984558321034389109963064791383445047140125280427913558674236892083988554826373936986802787051040863419815153738725908265602147401403873303470147856037897919613009959051111922644600938395195450880906234719355631686452476836186774703317330740308524687186636631116993573013461735805786874670075203540421396144641900256478835907400459586169308792511301800896385341363462354562535371424777961093559754300970725126209193658802861809992623087638871138444146171867904794063320600577142018148050767293630549498135073194441755820202049551274847940337400724602870703647177697923178851253676984803366672314356215629658671826748524330965145911408462130698058490520727489100030975641008240192573956406888494815516473552014669037774795730565323782566558098756675778306676494990739635943726647277527758660349982638009863569579045837460115468595244325478362214166447092460872942744985014751228915862311382503147006657952724899125773145313552515848837040769123838597424421976309841498565009668164112955701653625281034407792701714924153677780608909351326111520304022901142175421168667135821250533584406217979046906213627145060652354767230123934324514700248128168348748505596115307289457644536381398097506777049900099402678442361131594192550077035640935496794610994001359451026293839007718787880662000182107834191027969871132124917829766856449753587512732142890746882093379341056965606969480656405836984740332497886996199894723810665495973419924172456135310818309665399898958282093186055977033369360536095871171338271183313667263282257552982058848758235105013731750070949476617174922440934568173114231750750136916063053395690741586827474942515709255702622683452337205740179102284848143843552515480733525195982145560914805720607314093376789631314398268048694213058107495198525804128829483396956168951605698710758907342667143655643529239999418562790667049563541245932069778828069275809284477300107004345441164444060262945034437354448962975240179719667781125107996473848766958877071270322908945382643252437503952889817902286644258405624924246490550968773328594192399189774704366903481021593343534224450353141710684096012546169206058002052639219321987174772129386392648557862122781764376821269236876657862465157163190878434135838208803919909013701211315138464485856006577395262889521001988921401007778510492572763503978399979871206801680451565054167387783646312070189121584579573003862555051672855236838397122047039240910642273631263418903894051360990703037808448764140121429184577433178257375598939517454193466604442741011975845641950241149233665295398119153204281024111397189820134412231395217790429291454182519993142373891296585500604187766017661246538182671743239295622466956006437568667652324792600351996344441415309262024617641304976323106473160470188502345426980211335726988757969991457809241073901455089163667348078129754123304991822981689935496286130477363633489005749332590300319270519475736299279407709874751120466105849804872289360928591613539491097477686527198371997246213522581892408894258044844416629308596963965241411027149120761384478648364104609989984743552141674921713702249904459325511390196886947851056702574331374316955554671174731654767676800245843082799306857764897638061066164021370125732451439118764823218205837924632137278082990120214589305593245780810267101586365565830426889052651213052311294373045620355202389317015101444158963510315657673113841216502476290474056967601156820947658838213425768951056468302833615416306171034265262910330622067192206567147157215648065777270899947813553246097131003784868984326199206381078105835110225679499742901735511373767068789767485377738355439803538972318739896557564605493534222278610382460535608365982456626086962920691657922785436540018680091014398570489536113458241868455816559612688611426177142397954991123313004474976353055025394645618126971564310976103561750756324672348201302817531719138028527714651018280041812187051198991283154177099211992134332148628031063806227711546647204864018100221793703960479540083611121532999953195202873082787633368966590676660549742065401617879692645275065399751383998454834352020439557747809685086658525671389088663707103182010809478913939939747021792941659304049123292230757223891246139749939580327667997383967304695305980118465464332433667482285068977932678738231260753367961934180668093829135324682643546271030503131287886602275508987909845309692113260118790887785071942876102541022262336602802613108340958732018688929207636116373521789398807005861561130393924999366136950351741427756053522895734416727728741032288053071925476958613623601602505963049336371026786033962761626360507912640402623999095891738680587329360150119816242955038542619364910304615899456763844116071532933719526830764468093257576064948114937465058041023261811459058011050571433167961089991393953049208172181441680156909776114988527305415202590508299924514850003607411049687056568011906346272245996392648540365045229877570099862692992211003025849302591159689798960876604049820481506115140632551125538978341058455311748869269068440036515585658136222277348402997416620356718664227386038823558737695630612317454291629208413598416304710980192377637667854865270986662967312747244012333254861838127612971041664288508889627503032597112358185066367215116583277447709641052234946003445924455535334609587936016710569705324524688395121782349822383529392326540518143680083554386196574221386651396115847760487752724189548943514914759382548022638099703929460726863540416851098363980045321010770893812927203835742130730058207183642497725248134124296007208200010791710900304036882578321727842104685688407495368114974879994095695966459958562940515384501196854968041181096524686197447160436317479166793811361204541874965788788434005561944308112092209679779305733379240176093012958070064707861293708829503495964616958373119620208600906043215962387237125607978546524356317779111534221751889779022949722488898907744398607222347629235518338470678094231040305704128180097294805020895287065989882784227522821670823448180560895466684488155501425538210036335814932928607859579706520007007938130433313782570692446668309878030298263959535724433486699033763203758862729924952581641968586831310925296695245336419024136580132739806542409754511436859840407471085636382594372266507290676439131693890144144236168280063836164470331613269901011841823625740608261269444220944185083099251674955493283191156588740365637228809188698786208731681267348277523798246000092194742999597745989036534504006572314801425457818813694235052325954383285654338649741084690015958309798271289201346420395762974812266595604777981628746590154649170095013149220777952166020025677786867641178488171924495645961484111143380450193675686001729327441715728392668339359881409596523862137552427234503819137014967458931372787531884283987275561918075642330631643427377111052450101316729712470089903815318767538199423185446570421714368875525693017258353629001450952052231359691412641360707871709135884263212189627446441407634082209620754336306484101933962933501002154148294114788133334447290190287646644610161802561049466648491283928926705239933445734391119382353754400766032591646015780261622658530234522463972496012238793349910735719479906684449062769638251752099049896322039643780739190117917253017034851256615200757498916974592271713627834770921148209496063668034191539719902211013844828677816536722977829115351994792437881248528185490821833385570048218875577126779972230727829697216847270219232201828258611033988642285884604821245966271604350081266662469816717342995769160615394098626216074148939199556607505552277725996274843809675013302351544280665254749879544041260700257162022092717088319166275539239367020088460520570956918278134346668661060964636971423168894066769164867747160465726329570217892616627428070636333681159751641880551003356599512463936470023323679613708061639751905073133105987618803113264369076457465475267469549603128647963470452556765006772629882644511446306407948900532379266681889884594954969987254160482781321126599849237639348715510269008506145274586264968147530380936429359367393586785481672492010332661542841667303458871833520838943414663784011381486179682380283068632186030480973896855766096880311879618066483516616065382596439108578057957609187131613165588582013036668139361864897603687602212957534055579870923752087208459846356503205440950035867200338394751828688498081530501849487439886917863908627843026463502669960214137828684298355271768107464635683565243062002783451238313753231557838580705017651570118251106974032713689148949582850390336750422719148748141509723943039373694438746757838480899665156722138452421234919096604867404658601908152045132568605123559917259085007809063663076470197947685163057446336465624668608828348585410416714757238624802320713214016619751244666908081621232958508727098459701591379067943131774720187165582027301629151732597556931462521081648887127898913894032091094525295562134955969372475726011727669534044036078991736004254193181668682688664674413456708312526927939553694111230894081939720420653039428076741354869562080663265803144849834891955189291293174366881943635964298308710154332254706881711350655113843547152305193853473954562359639245631154100612023373653763869443655255625074919380231509993496093785564199773611486161644944786292509517835316792772467779948912118401654854423203059044891819923432899052078019398560246495577980665871268252180561705934826331848961068345518929986110727062479433017702688117614675271672256119732081662395747321124889686262426767251815745273657101039880954455602093505044227942492421538300666558976675742881399152656344622540866036869167302096734816336910979249848148982330042511340770843399943059728208572778722160262731213648612740790023331872639140721024768638757187024445041920448706217119515335638215683697080693350262717488251414026262690227919947207889308958801402008987370318363399802517398510676804542112565141919944430882487844716788373432296526693607504259479783347198703666600714774837332428354893716601585150597030630499169622153998195202089889047601753585217353798740802221565039312617379105303598171135694769014711456193333039115144939297675837834776777335952633037777162292652503212684627202460951061799810649475327259937355111216678742667382637453935495646245945337397922779690631052720772428440879161353603627789623592963285644761015214752172260850547919075907941270607256183650808817852939100660539298957496687696919946008865391068740221212674352959378449637010332741809242794850616216349667583920341631957843712762578616381948127153632100314426308545383063409637069075819709094974326104878228289861337942980032445224033410117417841928243024131484221476286296237905066906600193056313891186501597411519502182964798139991878330069595113101305018973379519780901648166008456330769195063039579679356837718455239653224777288787305132110833819788066472248508830767712862661899918611908154684425192055588544478040639168421218443346948037377940071767264075685744650059163007512715736931857132435128856030245714031805312878127115301249506354822011329931963579525017738619126038060236759010578142951726664464011700239830925388085257461438627289656093232546707707431639490699852421882473309435972163601241300604901422963705338630862894679602551832990285720140066546111598257974242584342708281152746295370754999185172636417812292925706349330708878330867434130344326600640771378458446736653682050026778947136737094744686594816003257308934014401512718636656583496173223091630951132130847215815118557000761383181155090219460005065808660706631048416801116270116299846881626968388330881332206661438334058479876736579682029007234090949500011767999058266038378423907686817212487659915834479278144321384944780008454391744602944497509321096362780712553995188273801127557137930145879534978089030956488811960941667179004181012780766805094619871343921516295517330136938036636327788979902587450829649992877825824996326615044409880690003963634537566136158959321761798169372614906371638190015451834511361290357984340027392682077224322471923943747349879198553570549667600727088181458119369720885047703950570274677562509754888744353141331418619926733939894174878123504946950375121241032992811076840035922642697341399063591292942953909838336867712517309796458850245131708575943752028514935320929487089380891962455975193277745408967188162778761701412524241591625948092193918214751563686494633202879888117360523226718388090168725690232651306699071210668259187982987394543034858529603482951229930470880072607804070555547376977386926052234925557240220260029094197109834394539202645942742087717267406972773049820439269322430539647641922573873557017673342312760535297954484653844563976419543971214829296874553337161113866102286289976358440841973479510189053690205936026894097664676685648647675372065089185561006727910471447785119399041076991845818964176875746896304449306415530965086112666096802394066796378661202092362480619100249751677792586307484269460788857494077682633300289866837281921112278045938706244378039686232204362057550039956676552035593745845071793184801253965345324119479238026439358028200571849475372467621220470607942971244518153692155082808983423803179629541127615933782179239769596617107425645291044050186682651633235642944821926499103317904384341594944810530594754152329696738291597649977178407618225704986778975936744247757061095648835496038412925856525732294912359080681192042552276158345331033453175642382533158551458450628156474233087580317630877187052312713222213417233262704807822347880304958269781580563164884729868961495340267208870651892350932595875533643476147516837680883064678583263588876847476918320193032407507386966794741623329170113561390153775870720630298096761360730863374586810374202432921024975176774028299387586273029054613561999598275898141553338400811522067956582728047762957685778478767532945096833671219097759814565549591568984759785666131468271932110183825367984483315983796465316290058947059705527684117180405922988961231974332566933740962820360804405950792516998661129298762980536743683938521773245178570719890498425179824186208706714672438131085429748374221857356489952462460282841643688301760269417356930597804165080740624718229397120171721774667612377638183161026101077716565871695741518676661994151658449292923382196814069849617710334194371817690457793501210279971241662261634201454812712768168503403715052786709625363449699531874947791278231880360520454061191899786856891333283610175338162187210803570255130394973352707781739387220831498398210846803420358483426074470943905262378713301535338607972107923020028943770503444880972801739688196843680862839653386868677305356519767338804203383877370560617233072353832970707589355588840312984427388000525896908704960738425508959404730662037135596083351026257855706837001482470515611007060728243104002244221765071860044295810152500318144210132630422477749120081591630233835627841199875740163907723919012363838524119071695045062245529239942422028461846647078555651528829727344610626197490225389433701374574068337851845427779614082717103111435758055047582724181074332651990450600005883904085690905709750348515354808977996023914064318052877917441892137586543225785166016797041984367696080425853457286373114462550193272932311683389152368634319325230266103045738061087252540624913939823638970450951149908467774423172275838672914177552770955917621091016938238268972385375176483546101714092512309080270230461018790996192277790632872402040045359018910612585999499214312469001661934064228549762047787646033202460345127533540498977661574205621266252008211344743014304235231949587019344439312093920938733912982557399319972957824997074399957912091552624936389513836413354694627694663591920565381345244718338495535730920679861427294635895657887553073868779115420685459398530706166925633092745049879675994383310689313628400749323917376282715158070014587649324898290154521892582453899806619936044333058938195049572867404478023038950832845305183277590647314239514291422565027837573045769298721604894053835168387121603346857988874608488996857119156815742690584088211566543853832013668332319579281449332523063830760555253706589875316345499572142349393096839671320422193144265979313193274661164336096775827070143711955586378506047513508960629431176397354696866341401357356923637605639452231937101323143997532492288632419290888709895866728966665694189341011339953274176583206028487190978114113022163610626960448243186997621890980113887335769154225529942944217232124210926540139784036490149364236234837479103890076581403338433000258357982756636033423128681383936721780430029307077675519163014696258740830273151623071886046910119608538434445026474826464344527658544449055608563810233349343746434830892147224924471527590194521355583298405068549512384128361713086484184123631859050612160474805457887535049254295361646480775078338970961123587843257451851737627729910708518528417993887737174288288868025011755796518741628577897135042718509658814789690408840974586494382795805472114269096224072196274096295254077437479177988542156916775805397783126268197191858521498926553893878203179532036995073155375790471232021452997882626859470018136509000658329078262326685426072367395694766052337598420752769392962340305579765972124773721629183025701019563879493914542418633117675780858943534434540794836602162155637214660873916629152073535470489321160878424604675785873936643337297684077165127764082378253008208034443263815038999065338153250293365339963564403602893882405240304450174414565255233704016239117741984085352266368529851742458559590769364068502281767264784142740738466529711575612969588153191281141725463204858573306312798141511335518569064204112555541377102046659145090373802664844617675585634381449138341975946268601913952496245894912787909414916848966774826970868487399090022963208517301789194338101686757377368945346171825849801644999635568421659830106740951398668470929133339795246132141509940990676060903954078205198228141046440300031413568544120282466324125958021069172332514445993357607089139923322824794691617793502007814877112666030827447291647918439614941721801480063309765894381144002183157695612710751630013153503322424019676804004005387318714808086867404944794424093669710666323834099933039697598866448111932110238339440396271912156038828181105740893361083762569532758431595840813820809015690692616568415733369145939263842644807388528005130332840661493739818451458402526790804785552500649478886207976666254558524316246763334313105555166188895072246008081657953954975390811571818488770742086554268130337730543402833371716852269817891981168946930191352511436190482765292670087482770635213836988477716619359858998219527661997946552870333899332656466917456908482909735786741907616257822015939991188876427375071255051456837423586278750174397566395717740913479146771426945140977637611520740386817806170044261069347697023178335050077230723229488772782563449577058610089667911085021098910065260270708570270605916990279318948347534145033941922888965818096320901811119111675840856851303948848651065152666375311624100838992904408977837011569804778102270200697567869809633557755229383662060459037070577272448173442411106260091983054761060982673504516300072352680083417059595032919848192766679129641606511019402199027276793509151614597959499545014155175371319512651318337024801672462019538514390299524284542271319418590291676563908928462962379189001554278193675577612078362306874970887262965150525767208652161962331195382069337533467913452480318752201449582300243040438507999285547956563659912963274293258061071714728351069946441745849046471135764861041972280509207431197221970137823553717359265094496530413368068300691207241836517282944936189762699447683054065067277352676873406022151519434210421414394314114665150043487729045732746705594065029133421460959875449043685009470680004353077703270403640352986693453302205997819605711977141877967874438583371375562551680838863486670449155921231590589818287613419985241211415717569608541723167180515339409730668954095833944919922181719357696164131673187753535703918193875776061408326021805392062033833162471283242200005714618474930452058322886070213460984684848865847002994484153299015975161605489523380216632744957224220611580532358253815464811936423841933251043180031454607223101129923270633461394063768734908271195889284742642396349020899071437153625513375745841824196840200297533241842478925272222159202095589492051667224135708754961453776573272571166348894323446338458576906239333212057269226702621255935897990318745132559868964500179495807910943817961142118669630277841362144748895736024270353862485721950306856299683753030709054360895359095179935922864682442638784409481675100726444876793227301615237718444874842786250469793171146188967766192968202101144865762614374750134939078269676179226650302838408348942546788665092526992733274187202647370149343576277458771356900596328625654993452909910750717727083818321919890244809308060976802013684210108449259949959826466420669515329620454443648088715157398903851054727441338014158905447907978871188181818038081277544266379713074586092599400770925541758848736951189675631713337370104436366805476457938996544970056569296054019381961859800367347794853407697144533266755560634388876867280085010414351781794747103941338332961698030094302773668295701925071106379754272695575280929448916306572031419471597191379615312411890953515842698590786399786702646780473731752964825504781807556329651763128891548891525428057738769856447237499432583977936119020810134424568016819780366450853708764498528205176155151752887311882117052790328079452478505992935376594097451487945802764843617880014823074243581966284036000894394924241066502438435873283477892419625294340461932370629132773991748639046389401945837495978705182410339584591759314885796321210982736436046511242803097602753205704624852581672024571597224224490628846818340837920818186235477115001347532568562309801576436185399559425613148392535755980421880230508568579576839924627833023879644723604373251869741976319853838256795792312496012928815853833504014631250093187360438761943691722551919202085951345090953326189167375359330861329273153238252757706066685597873102626299277285329395920527500773239613455198363610232591606041697756461027570806248809631419567012207862585626845458548575128112995167400224100089568840760971207784614307876308888228126588733766679672399042142386115156101933272934108502850641153175868351848814394066952425081034296484403089067349458256202333066160768827061666243821868194529864855208133634068757914346918574252398431206016076837546196861593681070144818282235366864207014993667553036514065495370027512004681067216073305439432544358365694947151707433391420276298445332589486692435568564456439315121229587346485902332343396391839770375148465910087808365122763741648087556496141721954611005971001793065441231636964488021131922003804293630644608445788204913949253894990568357469298198885705694653763460255789460253287949322286954825166281419756704958403640312629605342919523407835719163692875334334886212091045874253569953944117035165074193197297199638436776800675834329390724671601654293366116267635347049981117855170219955948735214377549935968297258659649915943768282831502389841873317890851361690954709725221804041302033847343470356999259482953815962702693461644087207559244121437502531339295750644062982527679408022533119104099878923798065692192264592783178007961920457384558575004617936246170020918911422910013602951037330575084141638655514376850713027399723393519209216823570371236946335513220925435241720352995834073603808554422021611022438411604996205377455931418305240049402762913175242579840004201901188030312653129905459085424055018135724016762305147765721034006111995353658451870622470198695248630630108120322616585835635060588000060928837143615253041906633960826478665902033248350325651589141187142866777245313591681885552131598769629331981131634707428684981380756096031289495218497528679040534964989132897019701940384759681902685578161680273152815078523311196029538787255968592750441264672738098099819203656098562928051065323092871206317883562842289449913655251999367691124218919869872892744519253426633335784246280863714811669433044717371806992376060218838957254451134338626918120535381747683747010719012124958506619597557637133063267381782442846492226355844563352907055727729490944732798024820124502241543291862771765140342434652418220477955254477350983234740715752223739672270147979929872845402857951134568910006664218398927962845062819408778879260818093849818983601492647053281759184215558867567503359290217971396073091781052764033558332470167263383352003179670638435828771328306072206657767994596289722887843102217007209785970140634594519957236526956180914603557216603734997006554463847063212243781380380696114079018553855667309096606452085674988063346215164582007283087905958765415306889238041772666805773758246169185401130012380004176032772929861447544379646079979802848594847577262082626130398384416371369509544655183888441546569238049326374647974263248275373608641517210119930674126068594914704160950030345624973381428128951956675382662829259570139418606334264517897151093560833263061438309062461499944957400989703458688265915693640264454188163991800382755017024987956701559503902347839356826273249426453026540046714955820532220201819854605516589489224690021704872506332106439918569657964455419286106922986685180866640363878121137304236434420110286098253663235044628652692385360666696799256637735481195115972089300609390919787068024347240256590237582486451711604821170356603718108676117738122813834461824632134312539642503887645020806914886629850081485738689420380046129372000827438867394398028684878805515318804565187357059467601720044394875396816192635097526339665217865432863695668288844084743095849591200099777472942971260440343163923907633763628349094032449004396352561049199471573927047468454623479670247022161082516190748264126980148418556330056580267249076706905247799800737757602876218960129166487316654656481441281711877012298760954683691364280965568853498574307936538729279508721603238772809680294844308210187184485213170930437954038771154811034011073412211592942201711885418095131704436873319158777476900371733151268121603028127357479410073757298835476892184637992289296958939419468787751000738233366229070679332490280205863993178121629033363916901845639134274396400639473781273483851442732960675468346751758862921957779218018736818366529785719827581212708157159660565689661264614696834926092142339461949921998187678404766087281130739349716832043557912943898027599483231253108632547416975721068184372996777355196211812344150665100901584598941449135090458938420909785365360658779820854864784920236537499713773938226252236322018829328179699991820026262910233896683340382487689584406599723881889085814784694001563992453966220177342106630410989392046378168865373093748615528585753063892301093701959673129861899911850932463561661006981958767224588337486216518998605087580155608759889130148602601389324827991884680994507359276496678834175219803724753995966039838438775618522762187545307845675192198857611919605504349539712415073503334563943948569640434217293524482041046504002017841051414758191358652534596738332873391484736969738849914205982717902127824222194174587558729566064594214893616527429374409262587178953282747410753766243925284866238937094174543555624749033426191223045058251167640599812810338635964496941431903844872298833614981939154937216492520385537258852036514434639137092301596146442888828760941170095637923245214982838600975090453961182829568179476649158303542968939959829086742022207616393258912122864689645935697938133034512878020554949265871356575444763896655452896676187422367748721627041174092260249784264432156381115879275406327038437566271468378447198911128090860507274342311876198016383601770368338118006956163036987145456538679557908648945699511823191268883261378346534612689017633000813793534632271150760930908528739355804632226162556820091882202936400774813666233486766957018048020196917274489867482529290753550208100423667547858335370117811402264612599849453147720040693570330201966669466545689815278342038879693159365888065378549206966613228482659171911941835095841017213196887428697574141471335562407194548892113890050472998761227682866570097530294587187030466306785374186347492909627495240762687088067724355230833398424388427137407505763994922230685639117007533586891072475857470393928632709803507412746368332438972373843661061200140953020572108648782966325869280258621288517449967242916418529754195790993813831048157049657989125164461939829837307056108164076426910671008343631975537550891153208075551695033896073562792694284060954838668602193741628435952892144868505328892133779120799956933162698922607732743265389041246361195261040401931461983556944220256068281155615832278370041711892331101078220245447392299560535570537385670787919872360008476390666550050009066927615547421300036280108142332567212268773597805318434988477763034626415586919160700530023967765963542081929637996743793854907537492589521191377379925487158363102604665275941400301734976287711741765093130234669225080384066693424183285968581886803062834461180059389566749681612543652758507481647219114779562727105381887180972195934567684528166472091248784168711158350671661382905993832186945930276016941434034837386334180177461446419090900783791095600296863943993511314355231975691593194009183724465619252723496294516826651014820352060062663829547118362738704616514984543800331202254023088131151097596358530706705179800364241337327704571947886764156035509188127319805458831341774071631509119971330390893353750641837926772486482908353834679899513607226043238319708358101758493156631201707611736182328609189826771977767263517378017573536534326889519358018808731359465187973093839375389030159746569251103625440518798250763937266716267419512250579478672703228599636254712906022438117844143305794184312569090580324663975670478884155492663121360038889498094858401959883808458239842648116529142993333779596057894023520724564218874816614222429435373495671635783148155620697224257932113713178126070303567721997119713838212128406344864686965477497280364537247168271458520762250531983400188826290664370809984671543314648289004915676320152105968767950813305609098707947343106017106805127079263734351894328392507826786603297946330737968187503307817428111174489193320218491053627908107082692448130923897558699755011720626182354902152177910408086003175769625912208011949887528482681444247901349994423767495086945377407735612454199797842593115260912403322107379710839975462393808087484756489072580107690359888805805661883273668937038354171265852308090017964915569769555325337247532074753850503585715808931970559021625852015481706382689085729686388503921389770908471715544771029348741754671620246972099661789082586823308819907089644035779131735501550584351350819740290675584201051053473605000683372897251961513386385064257439880578908638560760694580177045934045075950873587214619823309380507746811674579838411637818430069182429505270012265984597726643208841125463413211113839575847549163411934289711527501728371655294484090480852030611761958751866407030728847491783229913066482489725362752374653301310488043793446926827187686706467161543290742563756673422698247130466632898870269747503273196299055618817129865984992698611112937870423334579317509931481208802851566746512103768993511697475908689866553418053263599704141275252704516691452579962451490602689188553948153315872587605582075618461231984757718749996084705306204856942064988409381850922519623780090079601079014866425620504137909793416553066511024357530261549247094018954801235522411982910531132731515012328883966121921893388724583151033978516254648834124389467923474419731767896852298630159741588551707203323018898977668134001715025906119516688747070247992257046553939934582838783890635759164759454815652682791457823366058643382723810973091486028589158933536138446498392119908257513175340609399901500066493758162928636496117104708272414483939074569356500771134634968011481102210879484621044564820654831290149772400142808674679074460054762754978984332721141182389227328132956611453787869767366793538861547930986917463045103059458875698073986852720503657220657002563284799962601899624486812151050055478070122698914355766614686204494319555050458351315158095723620699842239404008881667916147109316103363430419071663618856658126651089491933812287788621729693449133111338668466384018298895478366724537555044929197304086443924742823940718650579575758657099990448266225350618770364808041255577739337611708924657739992110299090034685473599201628765553066836060645931634501047451004196976563942120061926503679826981590627669831431667009097953978230778581684795491743684476623356053377427481708053989852603064244756627819622318630553371272267320565460216513903666611522159405555165610500397534127909810040177811046565004993549635715297944902702474020968276611279761100622210274872052716350402929245419216847662597121776911743765887151288622242335707399843883234137543402458062528463735016611615171381891688001530746561379950909264853029592438655753102876762238352192299881192660782666661972241714839294488711361436618515355381945244556524857005845111626833581511972317739994729202804175227386111401549555507751165519605450860791507991917686735254029044127270566441161424172008863058122685386890588020816228926068985329348104681429727574367943036193775695055392732066411308392506837507986846326519167994046540495275184432564515510466332110424335156496632574322460980511622102911461808723562177367172949888223091244932861397386625726983954940989756995381061443460271637162327932087580698348620861652316417597462349078502916225643002485648796210009585523862586805445528033432811353789331013604135115990712427510412337875730999837979743440238147259798116309778091282006849288955035739882698544341821229892886759331639375054091452142261777486209461461432300658947108320858881856387930385902087205456157758195935739551384272793656432127638378795053302754062019151089867364559078215938026973800242597678132659001110597729728942953121193491192558625253393597503189907836469188604039584882323230082619709701127305545743330663095777705814408933098219078088298009494435866082830973992983867630170307814551055195533457465709022310698867883081464330724028726433016824376066705400849815826991047030166348264784949617272738424884551117527703881954935916361713575915159671831445134537185706155384180478608366224743392335022783923504659380357770361904458299867026719862107609263949743121069662191477840460071587574130430339572670033842567285672459583831640981750387196433185665771343859293216486475208571460378438042166554554149641996625864296142886504257883622017771001027919066118715538145465985872637087025348254277166715710039097868278809571773284234219088359350738795468087811121389484236893257590485149329913481083778904793447245238748246419776155824018182021844550518169042481518268487756189398833818530674597062520948482019914330346606533631080062754839737712985798014699051836634411635528220405937816116628391324669514987121536422922659031147448920358514471228523649743331341706563071655581152589333849691793179768277822772264345338818982335234412450367385704723135158236113509559496792712232577696976384666692014457661510794596231613243222393581407573456781485582735963713261899429273888235871835307737535066379622710067020375023200841908813209016611766122199678048229439777167536654926030634542346518905219532110801045367568708146836986196179478449895014113773947949494185695988650694773696772728968395873101770501176855715679448900435688398488433222793667956799530159676873742787122662859828526703356879200542342964201220146052644130403063500822069486630329881433676052366189261169441226027962512939396685067639911496786329342691104397781342054351695631288443931319313057388656054897755719263747663608174274763626964015764464624463965730294643101110108235609041868369567215753245941087815976081105746932095414661585736678088917155828605166082436129369257112829819631985196224052122514734260191247726686244955603290087636286619456670820834540354871465016388087793255880765500721953648093856237534064707392443272859285753103045533447948269657356678318778710119326259582788455885988054706339099157042705825757487444412636038804321670775201601627546114242269496747884588735745256122917989480675980456647521794954282878990988022998487667815483119558887174463473987696116905182945514932260427647588688689817099505481271264518678311808549801091145776607317204018283632406230083127658897651993383798058972213976070925166751713898567240681473847971890699498055696198018203202727010242914514016348745351622788628724250524940726346256341600768804820479358498390452593389382995538949834575615912945569581815633671025433769587920601716660666709289571542873272002854566263871349028373460902330901120514420598292822141980838408951367632499843108588345404106213255250169911436868968549397236603779017948479507099616983204729261431687313727245193243528631179665941347753466087990676296601457519490069040549951905008942419606476951449050789439586916090535445907651577046386515365702010672572929996185013425989529036850733694057484280175533171982472530493255798988295442483095046702646033217943350887072071945270767689443374034670008747790894906700852995670365370739448645555588968554318210014382823379910406766536510797777868477124192837590077361139390519523044013051890302942545644512784370625476390965397433913723144089438209874339384063557139531608870157628079616230130838780939144041912020164556285266576983090384222217857945803531086712365559366606757971294721789969601572929892451913706949823782396067868384241688274097846136641331323156965506867327420427956208608851167823719276234417758135592314699595491390420654868359864073238810358577817962700557195967062235914898870065020629685544912914233299926586121889417425434818352943804453525727594164597160258202804749084927732960562764424527127644153654260110667049304018448171887700507138995092418969544068220570139524667713330164565052345740889260601600475402173508270137946690171593635323661111272415755825314161148943340816916413275297321414023512421184698881851341625389379296717171128615888038581680223892376158226611834683187687150636489888941419878396240554065132211911611718617796819018006728281085404186469616797541932023424189176264959078621877490470239547251768696797009248169307896520849366246889681711630713127388064295796886566276228939503714089781800564706081678302687590621273047033562507485558263557557740759043321421561636002377805878907246888058649769111541821859822025814795064959600748691280172631803533776565423405042233396785315459568085833983410928872346929900804263466932022495342547758010193949268864034729661838519106221278494779971345269599012918205175247090415497541450415177901406189936321541005021241819434798914351532170726706348807544393251714885928916688972135066537159880725380990762326149413751330575493756420520275521539881301176949181708360462126432851284036165590737130570046814422711156608979853605257473220108226784380770808245362963662790133494697772042904158198464385887394414730407763653638075301334035586170704205656644672879706012787709828978572893828126722353578654984552365497224550785731180998082599723765608780412041878660296043334144301998852664506832943882108569682274207736261724972352049541832142590736566799983047881050043851413201077083534732966689421253613220326634538514826298474749890968348240461134688669434913773677958764319017004245902357503920668832784174492927370493304318821092708043790023099924435080359178283473004295790142337529056545246697832720156855801094045334035906335690586538853333882632324395854506972030018384082642430542301535025777390354674705086505673092508546128166396887270730577855316844419500758139380384800787673252507718619498267044996846539748567269345795439807801592384821260119019165329971935721331994099235208233952858962150525678847650588169045949102928738216555669787752408854678608785611816402462376295198398932377711652829047263662512485811673586918243270015895553055832613631704887334598474061892831138156225958611268166799084836340608931330081433524964368888029140209597445838411424118496999532931233981196023802735021018847626807039407862831082117298136764485080216058296853459015716806285429711788167227136931719208773852271945899403078655432778467922953671932840700601307660981995360804127039453141417727445019143611278316464826549811559322829019177315307301800106156876333058448215284825019269851632235480220337540189291003605762303237516230978720410443823238269181936335214320790198046344660688682673557695809228979925478117370775970326116803500246889603390405172830535994093498689322005577562082202350898837288890424058406597953028989788159680947645033070618522014102630085805975021257222799192455785343970821128567897562513014969480764963487907151857548165814952745572058654886240850988080071459746898148969667098755173559999955769917392279416922261919770100157071104284467887564181070308817952692031815367780860405592138005611831886768477110369987195567548023191801926835879835111870484932241084706659281562112721584149181571875907427915262909275020438645880493184886891903311403051589245511596278160071776097583563477711907026763570452740133842492784404533861210645294518992098116499054113452404735332242675271135549573286912403698789271775934379674910497420361262638598374316832195133654264706851937309048708835107141407301006827824906819092986499086013464888915607676249270742797300850846777639268042884375892428084819965410264419170060970298051706046066808335557367580823915092128445347699931661942455292565569825593000235021043595749180286964907087993224654683470562927722852453729899384301684328875806744523145012772573687180429556094950022110747682226937435624372543789725095986956458565362831206148884820600612012300356594367756910195171497002645014048282521084019028256963312708091756962935249339249613680942047067564236765694395967778843261339111440364302282921312090997875664543927590880521776349262782225925324845165237953766997848422684253792687118577106918316000009901225076775377599257432665732993061449145429765315994623494491776462329106006751943841063938720569094946928827976638153876110759166913689258916533070955987264062158767558582237986507530092882504591799779696418376600650259719491594992777607341448104645700715385461815917485376125412938410469772916013525823857057370976080253584575957200558622358244037544656369072614884140776425895860122114338810592808492707672477561003088154840872684119229640777324094729570324955359265059023018305700272434944164404235578204618661629194214472777347857252360214635004034868223858300907409636170590574913828495613715876908306908922908210207891834229746823168072844222377010508408519136199338479656326268427166797409694777055817736754635379136309168805043379410300153588945123590898806652649572726975451834774117660631867511163925675853952823383514560177433836478891638208773066705600799908635511052436780455192760382509864960111467911142070528996447536473964221334753801705837703068041576687276207855125389769169233558934085897651777472792601712457965646012129651379319396401605198969158460131766863696986256820828867194977973206305704501550004293795569175114530704340337849162020252398519721504459954997979939078776009871323171504076923615468201456897855045198197510538296457884113114036981535163365292330441971907554424145801458237339183760143046042076112895820181863422731669333052808772257532553830991964674923352111914888141505336844900892957257061038135627579073077420209638999553650327805624777425170754769294425117857494858856729913565742889400841910399304598317597425436883221138037514559849469594025920349096248237672876094246584769069349832727011057088957916776123041859883784091951208971168428974799336719486646192819821439457429182932904707507576412904046126641878471144853381561918044192650985115369075400488059637602955937020800428504499133334973929361126853076608227968701825132508401920071811595655587465902850569048288161046199096132697877247817685268655421597264678355545688444605131513807553844644013589676080476087330286409494034393573517936786573745634428031268731515049601763101850547021366164125473068511413689634365120910299638561145159558319086975287456233322491015701364678696260182752326879926694876952566817784382468054634105035663195808434062430704749456932679160993479253780570014929764847914632035632615137229009010391233878220001092338230543714459685622361259141428095565397446006973916417746394006011461478510567783458825101999021551796904132056441730813482450040111473843803528004139947244932943771525344092426044971825576327876622436666116170592111322588013814678446117607094077997971082634634466311368172579237081519133569240096553102110050799623967500478188896003383580329081211339322224355185486147825400032431767101270520166248231996489646716759928854850902813675548384651946794515596787791773922980026346374158697265469880256917836443643172784892950380155220250838361374431003833846502685528745144985648476828101628813256009022324981636847042650115843788199202198775645242276058494804646168407436628515352111260812203903251005009803944035438572289086522848453679793516715917165335285903379561412574689593291194125944960448762968750260371418462509457510587350459458866388496814298734491069505414628145011685337534679269855052703989537272739118153607088474324065864857002387838735591501639862717259099375986994981103540438599581305467697025060557109027053864599603950499756271488999678229651339570173607224110223828921009385899429389519331434716808278774140809416633844474183184529221457811745493785720442103355254334480197561930969014368443016155385402364683590063408444885483461160917679939373377651503195552517192189123332157197841289383345881839778571283108122104930031220902222875488920489647092256080446042550368169659299501797220862094168220963217062721041836806360899052592694772940706947223358391776362961238559631582134187157891137504139648762662155207694218839167942135550754133290019821886605042452787071455775938119354420590132438966016178184705323922672032219652061430288566750554449377657293832228907455421131153673750089439925187004572644626713126357111457695161369358606200733000969254183813597160240807423541146672259641549206075339377183583480391069145331312916266668999950434494932072555401681489798129203762613697195155935385474234448001365176222665854938800918204500258231006996917827142542255587383524211701010540960289354898082485166041194677510170082706314370712224778728251416852126664355435252758594130848797520771754811476568428027859279490356514000654725622193626675604898548388134444867460545465039548782024156983678171586138527936457877706000015215361845302539934979092594809710783225086039329322968098708836015442621799139284679542218486555104707317050307605511315337134715657817821799244993832851486288017210989564423006533510467234842163308947831783839944161162737033965772606659808384122972722645413997736928364830227591346332605524264430219150378920292083709463431197839246654135893281539037607044179943431161352262314138576590073174277857473513016746999947850318562078507304638582617039905247683060242907369650121877050051357693341861710639206875538258918701135653220322135798870310421545713725094596801225319298465688897080211022921430276447669735524583806683031749306649706299039864200988572167448819774135948035746967065389053168165167934878024402121145102788167126470612279341635168596695119046957018873562549318701412943748729581752991306838847506171638197813957864633465623313122257909567353220933780299932789869474168745688660710842483296688114756679200283985072957280572340269462029214403102680687211289919148199875189219358248123262852352455809408184593806666872572436611348053009241339870990533388438925050330991525778336310111291518925641570033820035706693972909219108492633494546007145819153519132445751117445858572425526791762175127731602012019538489450267710260924560113296795345513511489129496539116101703507359631541931109164961900779809035260705013105305265181141276545563424293422728707857161818105304404260166277426184798123777462988527842281861722547873710994241309395069791498639160630384523149723337923377067947031605766517504019492585033356925920799323017748594135990079052293165028079524689330408898526597496357121165273969175155141136794270993830249927713003615124057099821023534315117387079009911790177612525246174068360658394097550855309363248366684937018818794407409956920790740819692954678641246398524722685403053249281234200231418799421054543706877224231678660862866138768657352163136876766860173758915040114278042392566720207151475619134845046758391039434165930449448354630989897429923202806524084545624190453040331539488164712518975707703762833556885531721759921873929053113714931005616833063247368352581799650670718581696140045993632853387540880011430771972482615866545639302356551775613000396756179064309342952078354166149621917739143444825060486992642541588041270332532109866331485883505486535268526908743733947487683415946841005350466561444657369287670669748069745399834524103926379204834765795308038127684286033989403743920226094395627346305232910302152284209175918107577347456312187595471688619213417344000530722366708568407191750019613742387312024553576339148334825572041727883268571256384540140719377417717206655862177566286240007486723625991581757964310395356399762471428550836196045356749634172227395818709437737289761349446390958303109666711056176460251876561915353825060395805060164609988197407036401869112924370054508932198161816075398073042373212406867000300631816211707505775808386707321591125430950190124023625569168493208014993056259657292658716088589355281326911000693409913719810877447661891671640706130866938414903900766381764872565520897691452424253850278450699461778574234975643799106293804612759613637806030708084240670006291467739830086204321143630938446840058696751315301739129042892245028451183992594366981439349960457883084716810448943555949829943623468571781245451352230172639225187851794896794152617548767074827425246340128219173560210896347476829482537659798673132129485805021873250152522210269771946763914112445954358790673348554872810177928664630442730025953306120444000108745483272511233467016915888660405775691122058595139547512532141010010201157277100264147343926360990419348637760508951667723910376555497251985851244911168690065526262990980319436323664183595470022080603119404591071256950448689028358376150753934496916063537142167861382879214277965865034737815113890419368898411896139936902692541074728383258210553922690007019017047238624953226215465220698431124071659581127959208112406437752845617256199655890979813849233175041357465463541435852424412421146213989364905116628809431131658986967186444139926518630858672733396184597640502013117266378368397475837425075151577079196446662852739103435709887448067076271159798225877041378572349483488266304121956769195892718169280679414567007014196633790817664859791535246473365701878663774779066977742405298729703467353861576126896177366628657348143614874886892976788148059112129690002109529756977557430888658301597185273314538011069345779660613730931410251742209508449731444028448412453575482080869524821350426242834116688522747479009755292662107876422406826072640154864583532396114619330980998156943446053981568527521926287392745392800322202593909627162569311833039951319059551824909861741604803169956852494315096595523635203111054279143975866466366603865914431411868683189363309722980629767474559166309939601387221506266747306683677720157057937590463483994250045683358857950508727542578801128607798433767822644894265129696041143196354366867814369753568222766121731683119275235824452188505034613358178045309446222720416305555454540404949919634613792085838416181085766246817546829526478589822694417331365769387740044312827839376887497441498456739741728054364814721091222843929237085787940416499303286155389326580733842340708825650667640811608241900226185040967095309122182640309233939051950641437587423998780692465648174661534367358534590923938463139696768190462813345599088225696014443465812586527971801898305895535811571993233368565827419625962272016680662227920603882800024793649042042502570837940858165435444464427267358911074577876536517478681756566919481214447412289748975596952276734166935998996395041407846674520869451527638584769845656826221214616547294725284773717550811136301616067896332629306805416328752868811380435254908184865965849755341240063358657725419688160457534466995107043189381667753954648492508594248908808252654238481506476982026574141512702777927361619911304971091841027044162747953919313252519459282172323712674541096215064419671544968678246022010554130280520439695748089256413274333421310425266481602775213233140792202651330340555367841010969097645933912252438061164991214375560751816960382640600683496397772618561380659758916349130587312420239422467509675626954872826105507958943089753718787263840193120794890352851971139178406111189144970251943332325403713589315548512826414843271516349214845950716743064374737179869155516112599380732756661063905695577267430512848223116531473769451807684042654180287676769041710483461535237565622764587349608480594015723365924349481660982919381795882953902716628561008088172310028762369041674484087885832081031969232778989393994561319664396028686677019283067317743290791858354246697133482958348810167580052225813119847115435401709937217662851915863219303765664133694110346976182089849026207550325357795968632101217871259228001824267633965325517780274257567858293528906415487802559742795080499092221876401292103956217709919162712484638676666088665319810012637160885765820074434378205567837039664266251735463098991743608731908114751751188628870340862210306925097447204840561282244983937391377202861705015486363720639165621261431888424967062799000000277445296424650883115871632923565913697865994448950940420944233916243022658511238412737020788487655091333536277229708121957949577855893567513061608281362942080437672988842356047153030212443391141451060269898648574282355227965701718950423639851265411974563765382134888305343899673348641755735017027763711603969951401219008865687191121309522313864499169874791403598660375465273521529544342279763307402283838514942515062983929464560074350612107938789836039882007002851270984303748826648401256014365999954880879481882441034262000983303927009926972864883124867912052751710724321254248158296964389165019079591706690600705570366640279224354805464974352824743051414313824621839679665008452893019690652841087108209093650718757702781034727392435868547667348138878565145206811819350041012725230811452264771447655997243079374782324227458303262714046573440657740492956061938521972157633609395561158137625803307545337667248563252567495994465776278382921651912349576400780665122210534470272932136269893124637481156843936237847958482039799982515552833384750680386898547193135415188501453326073506790828545163592254442426022445636982033278120036540952286941476075840199153967584254374518565586772462548249681876297097192675630915911865279227353331457145744946680299662828615296847277267147724714103592375641438256671119151922558800026035411197376513492728596549410718736099944934386911541418244650650897637143112914611098201268686922535495974609161881748336314841737397532166873220295729390397430494729609140716332241138495885196906381226117868583089445408486489175059646263623745545379203029327731083848976027667602865931945659525540963510102970728522595738589037028505912700207165657311242377566847212974438872634146483776396942740900944491859776445842106287378796324220380673028894082450210331903805752240682539215272328624530049935359050849456925015798837697689741208317815093342401714977751107130046960706406476296164822039636317336446624975497186297330235355929926624210098111764691067786610275928124834704779531549889762958164936925344066436268216883375749310398866891500029910184254632367432334616958902962469516832957364076424748353714344110605429389179798185799031998755123641224754733403658274199688579591754222114357874378097138926573989850380834144005947889212146219732227230148511999424751764567803158327090721570578384302817773010358608054657384643968754561961018873937461643867547069782471768306220767417475331756410709658228427316720281220079092079676308439884249342407917844156407131013437753452778916009223994996808564756777258272199461813139802787408533852450864567468117057102380567423923601643713815672331744658695694523840194753976325950552803138135724667941622204856183224008966969489347766830216671551533574353120940704343879281051062726128758921492915894306819192277848136120198584558895984079016724921377788311831547036201618546082794082357322999201099951229156861623792425699489397978546114447262219404739637173456887554730833784024969667911799899148911321382660507174529301015259753389551819588616962599723926509154783756582476384989333059173626704652164950846054424333057952634464584519658919458606764215667869796970830780743534571066997687397165500324434782899505288939446562549884922462299243601094601080929301330010749305844497040972152376679411750922907729861177512472916025567523830165868622666888802811761436980575088265087997639177448711028351739185716073036335758820403808178189567143504053014305279445843200994533976423650095078037845752872436278155374039832052438556105931022524991304086084015833560618806011901073387003287180459425787018440438160921857464553411448217166643486082119419310081502769213940704201748149336710029853452849403437373120722019210094365076393600440118316444225845849822101160666434085246779774100702676321342469512548987818011857413330014910919020942136393082504726666048681269011295891275269840617720639962185512112213612972445219858543041145746444285090237451499473715917183857746202289022168013359046766041563695409977749281073415128996461662776252345617387747543673507303140676625420885671462787201526732689591578575766903893895709395632265761012995216143251004690324523943699757670361520917872196823347393294992667517293258490533091887360322243685413818860887252074880778343093532846608862535214180537215436082675033065758052780761440895662531571545363148464708628960691764180821212522237952917492379403116339494698819176896125070519650788881574273319434629704202955622010139537611493785229642397326718342321908310205075316568401864246971314486638719740744360297481791736540610092650139713306198698243460178441215023336659276866695462429057664514652773289710896493988602130165580854178692407316768640266740513830491397950475537759267808758139657956680317456918082064805376148735471741096419740250462170164943737268686488916903433003963514031583419549412066414514065546527509468619708850651495223885559690148468978414435353647656685434222057971200851021229554960663622889641723194827372705838864505117516395308721667009297280574985252924204012041838258107513484675295775728036676651057836605069514264933206321209128133957183248503563343140810525549586325581011806807224295198899536015809510980759321774398980143880570967612535998704103333409965276857589815924336858480456205310204525814314498528986956371605263401057384743225333927911710414499812299144981772001020432507403612430409463127541439062323502287769979928357617237612511983264674244773259420673434133264365513725937929343816061394242481027234161025546558966851042929856125832237424845652385827253463339309369540500677660339943090180064173849500534649047830057856168126886412284000678761604732126184815885654750234652931248335747454625808083156662586755640001269706598057246896851574273340635320135432742413987702372298286499748060562969719628190100236286622968181941274394881878859010487854390296452373817398119975684124846919954793976855129412160725256968905062523088818727733130053063992964852800255249765967934199906565970580929859026477824764082207265930552358299564897380206502432588190241572558990470451680353121748375196895786840995936779059094864567194551025593114818589463148384163957800199244390987315599479954610126771237410120254162099594302275740129638695631252924365936848626154545962220989961721333640206729210523036123141817721807016064313506441906305642329001712550323224896664943069193386641178276677218662723925000571484653506846377030760625755972552910127338802268551686600211042603796131726348612198335412354146827019795609468886793937859609931866998177562027403548330583728824982664184247033768857386188254033105983575592678481533094037766296259545201656391348989219313517217614859545048689231246511925963896611200669095392372413087188873072518145845077543563894434456302782041081045605937846065590722199914869996003444339167217261780625044059757386964847147907467753893278950715450372691677878299474311043848694106622180873542194673933438868583655334154017109738587818768197135657024674799696421782410086968059029800436878775561735560449964654925891301532423420048107872682122035734573672875602292546526336416047395365245190276294955500555476095939898300515053446534264229065194273641170657457905205932368613016685987088951683271256947865719286545027721091701743780432865158811960698311671172366883964310354928230818154652482123567728592566855498101708025615410920759227623350429707531262390482802162980836401427433182618792424641800557852982377311522474988577891421274581356126590270712966284587264878070613342678466591083547130633259555055586815696475511128598247170999174317458558356611845634268585253529428144554676809313781404296200148407080911992021869828497365231994903269082920624466923898557458785592486393169605628710543799886784032177691286756443031378770606548007195057042606880171605978120091425360034191992362009855328210159594591415809780531657813940375949829052549266502500575059166060315684599689441563720484580773949444208346870410997923981249819337692448019628197512703918040564038078308200302414732197475548583988429219226265448825698535570702742245173222268432963596436147348180140145415612405694004317554177296543135819133731076119840983910054325394601045459951159791856252558306037016961638824735657105211214426084515536950836916456893987612634258922807192329227295029063150934553728410292610387335034156738360837590667904964206263752871274267098854399547601005109827525497684225268577887248671145813798020920388373421149239484357776858170689425352708041117504213957195505947655064614178518813781460031884289132771915571478251816212134962580037724279803228173567906286517183851301479318204423986578896876059932010316786005207355731258575636996098428441908445802773284153955730358041517434505501584188938656627615707631552338564624322118901503033730401938316046699528394210994975965719149096847638531758441962727664218050009270804825869858332682644217587991170514591743796058946152846558667995532576018600979196509458091273960966526622252784578381181433824236012406513498950381628969190369478304056959335392744480816317886649275690854169663420996495842903021513263854016570249701807748057434291935617428691846200164705985764879995284223489580476703633364737599648468739656422113617666161083557626484861390235350856029106649061982343107696981155419847254621027448231172750278193778634395005216707224809740263922169941765645211328219137930708280142096849258811846844015573873131677993177250331358434473363489596127277426393906816039600337696626093706848685963827805979827961272529998299026375224931266201522115304970651485435727257685362409768987311072643744183136770951399852137791986110546920820529330632228861093893465444946957870665848837428323444811958238816634256667769447006290173360738332518347251742593499965188375119091928041657224065930081022274844454609585081861916884885554742262953833086526442493631939328689612984383008731887120732402998927491092641462672437643265952779998782155445699694947747603173204732351130332435540489615018003283662117637333327197905223182163252408584959520995889198059351432453845184587529692928859085187668815451363309058842920157513960281010871897477421474163453381649523109385196604932373660859563104705685850578740969568328002391550444400332284631079515411539419812994806178437650467044545778062555238528562437046285822807722588882674085902980936725149586343376766101143018703256660187202864817671809493277531545866642916028139741415373737051835869354107322917790084614630452529896677972334528530017060118081444128066032598294479527594954620414280091524931747774016077590059695909103107094738181723428577560534299206458727270948421217524206718437865041277997696357160777117211392499776201002149284062699276362357834470843321286664621305263825979901355148897063475767781021462672363286511177918864023398719262830266383203927848435989629783507817041174781021988433603472629761182974891147899334104283664685561074343335443281354695845442386407524094317360796432418927503637750023586556365291609594282196593757703335174529903359264813236971397945847282242996361968305576274101594872441861061372548972379371090603550736341981217940138526457168545375292031130056310913109306400596645873251878730368580947194431368242996013464806824899462127681448658999830470007226596646564882275846456510739880221978343287861131260755111471287297669083212864017195402826825936297697105496361714304134063741527332965062663609154668377234157627250304275953555997898844930274949079277799100556681348053490123013119591108114209242762672454607140153278843144349575812327222424951998116657049385079407221246705930374021660599164002799721184188696216299064955987963416214671126425841336003100925030727336878923023753980429466013322024822660186457382223323103623791988094271944865111909807555621664057950939781070013988063363604248287371282457902115860229437470569359186100394540647183188554039374935109614017066155811332047970976760566642054415426641386195536173679198000585615072008129273570765056857921208845672236513188353342772109024213905015162196642634629320970095964985318288488265278967461324788841732012955709227192471963477703700160984503348007711370787270905289893066282726448684929219981789743858014182394671185881007631925815652031899912442513501905613883175455377318405596971582590440893763960160217672150790404677023465821302911854926594569331821519317328119548798287564022776478277906907172990758461490172760001267325715884907922817083115169359699458004656726559475568844504904752654506376993727819165459686003178200012403411433023227430790457149245744976553032886354060442076761766597113234951115323802764404397054341995271786608725818408158383294162460015661844445164655170036036766883131613653981419865228687914650289847322912125441528332208335046076264670012050440189668390727912016353072282600762048342453342943235374047815113049043895093314142070482299074245700646991841322539324616559482174366634033843480857663520875347725509144322401322019995312376341371061942619900142736424703429553926844488028446915106694087272701498292415540386487975492021759878971536693484369762585615156985421253492289938552546406457671038258093934348831572489115875582849869429621343175938665044322213699224247820955451744172672512025974816666687440270632741504216686059810268539159482893704645790312093264858398626623558166443292650809296495308502001836195378871622594926067737446132620178779869477521970243813613394464877880273630879610786252860198092988247601716068425823684398265552755441421138396010715774700452930781310999007374512684220490203724533995495217836602211563785227197352068186094997219852009651560016986487778517348537512075859290650588498059954441175902038657282346179661904594193470830395602184421978597130834641401765515674484420411556804469090056448885894024737073695514889396688617461177980885764149328895310848991001539592905389118491552984615548065181279113551401100361870023481487927016063931833282286522770180690513139160883611300859980607022160969831177271450214354479954376691493534436135155083046805534859953341372868453449863571986912180489649342684710591980293873093031498988379363397985611372081302827682237452458427022227926658987133692679613242447891583973007991057819764032678647725265985652143256026195151650429643104754912762189266093529562107998354198687097176213293621068762986563768455934135444712155134997145796397736631282154583989005799056528433144553054778102330756001605386346987332449811561215419076406632016896622030155811656714960615368748132965724335111184023255193659080751293392558850015990636848697663780111163052187952120298430423914062732843964972813883318594526460819387785198590908603330371469914503920936313372819728679817831666300053747297149551614793418756049369261615993236151093766874516476266600376316343163219207251547116516014428019979866616719124750305755595708850992239763661598220920799633411591579213610797735701228579196599300697237359071763853829690549177208092396983156779573830974047936801951875360039640059173835082588681675836223990905327431958121011496876616927308467738623738056149574023624519261696807170370237741258037145472502565050911171322566207966114471961708995598599155956619188894353559831422245310185682662893676858394318759973240321119066861084167876787076397685211535232342006308385899332574591281718345764983554937756132921017096632965646102800392326635610111123346025825246968270683456367965672900138070085238027643579111453405747809720226495528061161976759676396144276137333107093261837207389217349119127631523120008696028913730813436133078911987506677737681135490992980229189321468847570257378997229701679859205857467325471241857929704575913543122572017762955238609459755019288105754715017577980565082510638675883107634803588095719371552790572279581092741023783096963566930446378518863335508310121991821645310617530943896040123121516318484193647825921639333021428601413174390591186823542263777409417298039777563615961350583917444401059565385671541206338937596675269536213276772746394512058156345377666959546656339450447809440968084298269014629516377784329307618475703911576447107077359497246232190026307757927772608221533436118813899034371135607869319918885536348808696519582680774007027923884567245199349135769049122291380445589140294572722134891662392774317047760553109859370130771455826295264699226781239868615364668258673647695798329916732594590268362720720222935128417837088428083421749855798821833514073741470405660557861525058412115222208389077458894756414276424242978574632610140443259104150256133980545304468125917977460771167168020986034881203860416079609748057494645011390758254876981384649085722555928098859573063769988051452224595122046574232176563657210390083142865079320173299662686708329551385568924897532646853538720453968778832695062906191933779706688185146300961325278988554168200018248523363662721917186707402801854178362475089732404647901554535445080288328038295158689980037804144544912571292706297139865329087803755332516506465964176143683363676161292884272732491051927836507501325132472787307652670910769650033544441836469203039510096230695426510571344531626897149764598762661812298660320082799962502447669415311085514463394154519875955180287625596981841047977186829130265129160679718974630306651665770544656182309192084277327059554697922445428946668432864554200512820737427386617621159421788571448634782117782257372853432213914007176148024282750005397816704499495089774590153311728155713203199896808451907843596904602410078865136528474277444312398563931605951859486204971885748583444302725678182352607757616811613794943609766059275787172382750816489650087145151490362357451037187028632244462324707438652813086481799387629328983144605770581974362673512536908385632987950501958212473785913886625804994860234149678112552920963443167860407095640288224776144870054912753342232838016479619351849618464584037225957785406173353292703304464899776699661893835255011298097741644134096419294802562319615839816631153179527388472637629844907826717149915667359638222734538272589863574680791796605191970779489962649706708965903800157404343590507353327912441478103589208597322546851751337847424948030787403063818766180756665761373176628047595810080056781255514345178032616910707546044088820475766460719581406159042727366770917458127232433535307987734543492133988482400744050310065957982132567959983375346132401705120666785769701840903627631790055215396507128892252843175671310720318589884343188735305902425639867946268233958129410748684847952234910282623728625531540275162467128990874859918226790728132823627539667729914624548927845107191196345960324416171213889123051232447788628092025171266667449499846069150624004210260530917846061379111580371111439306226579406314356188050233069445259183586196034738036267887139538383331387248464292292473991969523287351445033802078659558112876395242392533420032535348117254791857077645328825763615443404244397215408627487181539460791530632896418330706240703220211838034586366581168455346320148015880207044102837998706940319598251998417319680408065404544274926506722583833072860099104624429473812700806233421191351020171456852329400615745827635379027491477324885354508006030200111824769799768995133048542290514188687395398999529088919677575684808790813230823891285938789889700187152514880868575482701345047335146973618709051297438760629665847811815790167957801999672950160646297897175486930776351279498771536038130919674467493701632975391644220189327460538876830721504866085926311001939766646706284525197110305455284702371171922372836477057168173411454487767217885639111251525994852609281336325729058029632181068611517985001904092623156233671687653980075474210988507438191217271526949827807342662272877449399589297703427321217745327273576985936162715671415007409400433855057572989551719218083803398310740291105646869083344998099093046658518027543839653637604195319583373680465617947112381685662809498730815669421534009179030356330884602803932270715429927562244886681730853792067487377950038705467817484193741043786381093284361491023431237167397110927040719302048670567251926892430321893516369060332513163474342552596444501916742720846733622413923032632185144349986390578320197308506126699444570030422080082975885281599194686173797398530187951691676851019010271770559845027164570678864880692346027160840246548741285710320549162165119023534267645192813567295368637435467950416340107274556341668792849762566788506629355241311051679712873549013551860624125509528628250177826804282790904683058733983611510211435915571730593096175992105617809739255007114459262738857420344705224725715169897062943524308068652322997502544379404158729869219625863566159327414287380131954645781218351311847729132068553984670472056548797884195269857375581007489419784465284167488802766699633671409473758940015216450757998711049289768158977663913927563563740711323859415214477266732299418086450444111059178856940600373505620072492035993194354810680483739928673182745719619517456960865731790540251102263636010909135153690021713912836745956809905380846879223948542674717261784552684394448632519572778860330127625428098674027370610684458514169399574188903566974466009348154795768339508049869497934915526253096991062981112612225666623949586401291747527857232180118182493815396276694444207940070494889922046690606131453318335103418778066945457848577803799843565473466946390663046963211074754461719145550735424953667102734204499318913030071950676760620048399741918250368027546100145792889535469905372622336059800960520525393220970505734637433790907877599486897082644072020190417323275207436653958017578436558027433702026619976340264482880907798610461237722547287711440166518736161081240960957358073210885205506702693115542217846104144835914334712912629720227216383822773153527959285716101375848485743580078952979448747963621869221448388332745548803228631492918084337976377745952334991303885103638885019026428726379893092975768887083761883738009474986730015885510648808264282619562595575205874811082832344270509015720246261064369389041411689817932388049266672407353010324961526292343296385678079017827767847850880830573465450813158698606094125550431001021675294246369041033598697816692954147297349637708225869102903075497176316510833774922910282050153348959279300125288048837613286735135516649612154921507716035224440749480975081876839560484458396119378666588289922791994404863790978831218421361307155516686569456946755410036616584939273675458998512415777296674295415402509275363252842959205452361026149356544915581564504377321396360812204702372148009184336763386498188356512885539735328639405129238565834462376773413614086487128981157221890724106932387428118544082661304375858841921099438768878328570767073795878104712107778885919847868070125198040722151685080575830820128139089577978092076697248823811985524262128963632383967566542704204736616671484509666384217293513008509705155571225375453354647781307171929727509520123697084505935124059495099965309817712358244371064159421859037184965531254858973215907298705459062289570425279889038023794384373867651495055362919582235693098491778718942652469042096912228367072371893916844558460121110118666408550038142360516713915795618354315700617797281803677232670206471985739469747015811414767467091366129732823762521257241819823448342725147888478222051099247841696738226316342889696528459460130009198378751065311760975287530704871790040037130203342126579397758833787757634214424721494357057611388575483964556714145921768221326008062688326920937197200549679090174546638558827279983498161343416690988787448942376555101312394028935012651100208124286482237097614784040442353974124314247805399765698298451132743631627863302413229178192292772209821274955075965681941641624972777357464484698057257997791598444645243233113725732847897991190088649943955028642359813484368790844738463940210929872085497234819059793256485629580032144917911780237430408764988209888670413308264854138885331002065150115404320275887431446787682922553163953483105255405079562811735701806863499640684308042177638161925694464681975130022896735531182166982266693864384013249254959032323099470210231989830949720077095845202429992686386144055031830668756484519934924165350138488247539295657252420089687861234961087625322926393401566529125303383102518898429781641868386054717801183969468641633722508843930924905100563008570174798110371229143609123870078845373454525606135134866179993376011583465060616835654427444150699059325638006855212804926629702681491595872763240206622526932388230819553713837218169593237912149020666936786894538133951231299735029190585014922121380508478704437441871607437468172905537460918201851131045110165986550172839947406452271157209313418007519294920063796143135991345379685051412270333593016796926635599120982335431863422988050623666104261507830567681713859865904363943459811350768020825133780739025621043432601911661572782205872907590762226789140276424267120406498456819886943873040597695903935597446859257252647393951599393476725025698979125870778527660476833488888104449849860940785242283289195231971341052777649174416824116181075536880379656890318191689365726767958733967489605481979148133698709105801097019840715334170065456595635676551313515440163306639574843898319514775332186992977909020861571827840996770250615752087145892249489895221590305298085188037694753353511203099534825687124818803781995648622568612137910912993355886066467236639392190735133730599777446606237432556443663613514053415255796916567057709844774309336770581685909813321885165181643761887152458372772461110081210628815976832217626005179642736153938505438019611285161240702317272007826062748422224516975838928749337710693465548412727164484363733965052832336342974865553644778494522288182284261968717291414834070952630850668628328137056236137701620578351973901096897372453268637669893416330421180723098162381548714264621136478970235082388287773964940937606769764999796062064069448824326268302277236206912884369888821546295235691088286102934946085159823161457027305600429995922841804367221814173043391467541300286918019857075464602615264207173861057683777216999855650489274743311952902554556693159192026237270368552735705734337834713216727007143647943492430484280050833242820098167806042757483974459506027013931816839187877810868381669395495882792157676089460485303128224322172484086856427885993041023938402196454068248706851714032705008901094900308257184972898247590262203406226670046024968992565257379346667240276264753344063579947658552536509102734750346907503011437358402161325511291759211452710604336937124612139342027629777480075412441276489522399040062915049158286636027725869004654235246055486448797070304006374241093861675368283120258739691611622585418029383961566215627741767542693493682843607527724020052528845031470709669639524327695958524875590917127076674655144293180582123860710472881446402950415688053857520560702229060126399939139949658571140070693989018615664939713746195655313239602617149660718448075504710347226908534476941398306446224384936762347670664713689427391328223625741835031191511496234389068907363142616698598939383586436352274685460921780917354534039402930340026678635520300471478920012282312848034475177347534367302431267612661056198254932183258602748127933591735314381136633641978602002977963644971003497550500949050092041233759928689637826086611962583673053577027033493091790599381734186732924436705105519639580236063289260234571355053612566710026188450663424905414970585847298239384806845421170261043546963414887896686710130451757782727068224105717950838886565023703617919990587165898591360165873937089304532166880314339991085988845339608029497581733305044209557651849369153097258987330947170643722111884419495339918401958477086509952795640363832197677653995825926775584681963721836249745471293326246084386860356557476384968357977872008964834602603302618089401711725449835044308621811897545310158337814478892537389330027888769343960213320298496066613034330226403960057450110774209156335559687101891232191180389174630810672295963216618314553283744529496910456558894450198912313488351040503547810751516965840621872702644676928773461295615774847915920120923569201362860468364944972475714713254317958474395947004353102689899838788708406813597375969705871067691163468217975979170763719891472880320395878578673011922029056073036935777363226041757156648240822666969156322004840175598148853251275084173149493300171150061730148002558982936670289560681171090724971946220304268563358008539630341971251960031738999979709679319079239290655027029628326212101505750496057666685134342848706574954256277647031721747289536761370184450523607077585675703238115489568268923559350164374598492822614200712152173531285305086328169253316135121402399427042341330224844709796892104933776336244804003242217498890091373808151035246981216085468641951623313160239958745827613372274559880354903279370825904534685136764393464128811727165477038745760909872561957134641137531911715631104478889864267192986708160814830400102439982609785523793282791228410463614552452680484055700729344117367649668549672088131927826438980263395477288517637896843456705905011691977196100689872149645657017456448667302074804820399916414997296267007682985846713345027288295655994421378788799267782642831136122939992252894193010229720216831872802658533375641540165101388356849952829638146203364172538704378458391373735412260597807791445759607323347446185000221643339063862615860731813953174869459675725006162988571074544881954604214949992612359611161119035114893286855779386558449225078771290042820826568429148695263483597784645248433189952464417312457185049355599324187812270030179385475366307288621149139312556351403604359767234446759608547555307601254373910781948173089458414609940362740820191746888403893073900388814381653179520851662672375406423010078396227833346826120295801424402882723948123679917884874426792552904194311965923926872481123746368695425081749431604675963475954771231992667543067970054037868678958849162792139892280813817406318379287636759733423485399137497127576226246658962258649075594843214679119317964251067922901924386436369590988309766239940194501435762854569786864235964400196016794696904290913789445938046037023603584939583203318564067497301328036327439751522365595718516046414232283378029601416134963118045877545480008017954716177886269185371439828101678785339063788284920709432715106603233484811593513090696196392291039767511727262308689999963815149062051826218766461270145279384972804143006365809819132334880566888176639286723420649458376429883901562211614390497036004029844315061963894400574496264017786556029764574490614042184867180492825111171991205483155295473256367911159459793204948965025532189263996002708531365759087503428084016190048024696593528516373956647066674313072075215224929642148416722924427392795597527098587799712046461670902641770374572367191968602269481386757769844568232460813071772545912953418420938150175310233801252675015641687224010457619055295786853639674185824421845631260261840751120162264095930532292118545809293155163624485981575667882751738894636128031878214580327849297332612376036018530686370431306268047981567377342492565917992300179148449873884773559714038098639647343693819721900713755803880613095302917416300308865572346961676364443609638199645962251361641315227416721793083171830594075797145422833593629482262563495382965491618200937009564845616552015813875777705657165721778822325874180817025330258896828369157199954253057051293849994199693410099973927391693716072349634177197649275362777238634848232385902530726846394920120980991769483585123655380718660446139276776220822958876092511401182035614349617988679528828478405423247893292584039585575339055082388271496109618823969381148524705607306628555699125500723157153420967886799456066698538341526358903950708496882586721611798780409649281538976453804781583825114908514803614061540632426319642930858403169738704545064617880203733852948604602079699509893242189639232613669921496680257986426297928255474543474096333241451362599212809470986391841820754406023568051147410116744063977584002007330470988807857912891315533758808629630804956164186381704591652982133855631361540652455731098681637606928071546147646322434617292980180839834672708989979940677286727875141647748042724888088444514550047318490418248138174721272771403430336287296516774966835178386160893334640781895974287394494504498185894305410549131892299837893745103270983169921162287420961750785112331692652996960930529434806391320666279506140672905564517137203608190037474114113037799634811182188114506579938574547446157407815689509194477715564413525072176462737348679495974414736706585009841572105617171385061782738209648696211611519189211990811683510935886096777869890142040659585912960077715137283463664597256509980409140130061980598673630545000230888541027082944138829338219807622026326729694419431529345105912333562737017368064553509016897572114629479925435616870612937959544706267798327723170680636168597826156368873101203731800421833409584674999535295317356748911758440539090482639343675609160581804082659166445897297357171042753695838729818243872331430046550662917539507085227804718423210120942353963877632518540211297402010599559660056455200054909517816664650315982630227205400558612960427278369107410539255148739708327114919566186187777677606090461469544014642565944390925275868060984858015175475982072627094395276377823740685421263094044403486044981753703048269601090299957502272279878401304962748657800083815447319905109528734484660679335306191212968819883526044463527546100681271448732147184196798781923969424642655469563672631309137163019374102017455403614181730643725787891824007924389403719077098938567852947099357034096830098612417199602744312214499938369718090435363645074462578839796520826819968190279598539085976133349220180580498622126029849028826583850488076879023011355933117736761785518262153837135292546821093359681886019142849556648107258310330016189037735121510718494807623860376676611162116145418221289900549199337395848898166058001113631231270353575537560353967452741728889054808199433358114764186743309254526201391990720038133197582481510208117267643830813283181937879302124719084685000316849557239155529215352732670372761288783780878063105511086102581932292820750775644178933018563968403465361210108591255754812441184195067683720888810355910584493906400626285823980935447332276067913673946657846001662031248010335787165879065797093656145896845105869519464999354249256424443969266550633995714021932631105924383110328704094449144803731961151923752552990802706840429869535529041881331779507606011681740414521460791057028157977407702735735129925501880864080626004637803213754714392862946256249786769452293552126400808306414081325927421485458087044370899611470821311380428306916776483922898074785695296625208435771980933909295640000202852870405393565906801638299689827880789401889010814056015813774102760028541424646827663266979206233886033387309210006134561960312256092381559486597455835369408954067416558325978474464618976872310182573712000344475260001196408385316633764271621476345671193358804515158122712977687949500611498826072185595209258322029147191219517034636845582608499438865234617846144551509370129157146995829822877182822596833149763120788948291133920993833870126920760828731467052815402089260842556894961484719960222841464906974801814020032660255762811055225428533642648649400183323179620127533753008268864556782758309830507867434344159573632175638441448952441633242771194671542295765748657197682390695423160627646972359962698986362894347123949000271534981340001823574506368307392418154883015654985726066773364352411803979467192992557620623973319525874094249070056213764436921828331503654362154442216223904283026553840426405895852336394108600425392035825279148616582637834655187275414890565500595288445035463568372157694020965240050498203484973364672581420919241738108182447697108982202770965564392104018355837368080489529971185811503706313076356302276123397032940836484573865683848890858250002131150305604393237461373087749556757515961695528089161244283049890961936283965700187183279171809264329545138759049788171631968925414024389536233629363595490701848800374603477940044228344978202952364035841077590041251512348658362827387645927590210210332109929156073436982677988956854366477862887954682530376201248763223764005189931035277109972705740996110168248615317263395864091737143156856173004174053486431111234844472375116754873022002503095167077794437690928284322535580258926529074910223047581796317741106957245860036893090887059606046778162302333245689798999986438893895735618106118038937222042050577061586904247386098606510368717772301103579899674619881646355047154941784405468855753460364324753104228844484715771443346459900596648732726322949023692099976942408059784402144934519276398488497720008762804807837103187925625802750197714736685359734230508032497160997600721820372477798346373574402742518726279193712286085153788202110251428893349239400822296371468980489438361756156270979437927320643688225842199630023734449879627964732476666940164941501978619205672518472382827170948664469952776858227793024799320828207287959242470128606418903889786106617719666156447768098905613180606094283969288277250137905565135915294726002656647547538233572687127527274045161472584696869788355025963944510552485472575192410147386292199241531036951354087812237255694266857327589931615329186868199284866660717849508982594611426643912834667379900806816291778954210878037158848138438429550719391247600266076360570045488640495059173158060991442804961777799007183502621397240948762087534257768468579120990218034789057593334638399793264206965209444138573320063630112737985889237136901215104444020420174431418419908622366755701627119482862899138936100678149976128498183470477747563636275240425248545730965237692513147219875704674222078249002122392906244992213732825745184125231179893301676327127580494530964620095779227034698856084611877594170087942288626789016841783256022492409241198836597211989327110458488324683450098455389857284961211728727280017437069811959029705697815804513057897705662558179182095060237265568785069056439380489335215410039848743042283389439564960088838553157223452033512870938610105644758044407103771972679182075551287306187189095934181979713147052591725571914795863896194330757103716783476355396816858139017132661896710099645494494835377469217777608750577927766188291405232981527488530615327268826157937033901126289173083980959077958066951698248517265892710144667204216324345641277346886538698991503600346579641714836085000909657806596878158311958834425722577266302488175700607147013734812889427075348368194304002908990267661686213303828509196125614868465315005544895176518673912457780025813325718556229054127107549346629647971935309460543825587117370767206266386469310511120003895085355557686757219448882404438420292499708258029553441486551882946109225427413046257492227172977390800895084973212821664147308880740960195813956514018089691787013306353972545976496811588321736591429601974644128908037836358694100905328363174856193119242075107804678610467485957826638815156346005798999215181891250123527039881691839940611304395683819880600112755678754009935471146337843506673204077313268237360142783037823632883228075360517446736392264803413153382364810969798109563252082853232864153147999708894794737434713502052519330437885060397681873200442094883873038477253752593437853564812920739639301102043484340872499322330980822178330219732804631829054420813912335064360907917804185584546670237673794311121151415480823775281146265397461045135309656190515200576181201120295717824013583461454188239315870979773629584653829434673041848558663402551942281425666421470695171106235928718836158653640828630804749581997267293983025665293359939563889864846981312893048021311150630081723187070992432716437387054957722247465592274447559434987911347051846247285349026761154588736231374806357771215642189076742815838772715334265223733617629772248218157796302258036751061667013675842383537718853116301421820128948751891954272567383975918514871783060097330975283046504099372616984509500594393098946491010130124220605560580439737917749874061966122459269885579127769356084724323508842899878141961067892751248243014434364802665594759179254216343480732950054425793192426596627162521410559499698498989341121398995127561946107728160637910478863767705665246642487923447821509168952883676255447177370289297309275898900649610044706848894379930785975856752346168007061376405413571306329460341346753512835974544108997371845008994515508616384709751982848480870907649344787298386804680793707288307723755179141508043815318200990856023424296493074776922678187226890127736852091328172294936537807078411134812860641369864210403900094643510939939370497993720992469869850498240189889219777609270435770739017467508448911404041462476464082483103722209771210577313856490536517168330743206885311801062764215749775693490514489489493853955954146542693436901612700703994210537657436840468097950942366041302926506580958728033021051027478717543953387198851669572897844446192995695848648033994539056854763084659176887872082591383306836339823801897279903355427815453700963440207326571928558061595248925916732687929420959806329394817144916867789781061589176655612110925251003668137900823563426993188468820855602093848542039017955827759954501571620535241054299815673627979688279474792972900004088059891239306805407576619911373528321585544538184388962935672521106990103121814840809837313329222205700735121983216322846555625975088957167672871127167104764434261849055733104730509440499857900642873285684258727853391000291618652690102109741145054598929393229436191460667348781230241576155842322107865039157696972858993810944648864835693571749991362511467129585724666240246198174258781173942197598836742009675333774144255287853113392616068235351344816647113477281656244035467679793202830125016687940217881400582222394772922529349140170660571591177460721383197405846825844999336944910899843594115531750087004075013905533128572734334302449512501231056230524245485039623262996092601369095570566668094444342254943535302355634294547981142025821444623582630510126617868538539883209095830844546237141805419461561325587093885705452165117820982923363277719557845351328894534828450115341887126226440592631760595466688016637518235801721518070770763418511795314240837505235151593193155368679920976031374735098656539865756281719281690394285105332715749103774425924548008740517727644621304771766304288149001162351964533156016858375380560955717513487610763816006352071075106991490340362557676770312670895721088779565947928341841699257959390869480488922053255066367974134289548014442182243553152951671564014094193761202624333832849011163670176745342042938778302906011450539809088297160061307785430276689200541724560706430641251164870210116247968334610042690755694070051586563523136274180843139011141914400193074267169394150781019894039134475319992923686872693234353070542619510840202776123419757758366733655131730715366008822630431056018802672908414971275933485622208138172867289645838234576505931934071378908435334054116753803271096406503784611112596704404768754697924345644216332610615103300283525964322777841413283625418393725685103225090095943339840169015884517191748044499026800790209027765637772731936075196984877495767967264381587323211256788919737305402677850127770976232866400760536500994765796227232659465797742305326846207352890791210069170762467895364978754500220485701711999023545888967714045435574209764702681008032183497943032245955714255311599671507944794546846072180379678387082671497042875851389480191904201607617155096019903687562165169382896879695964980800410357969890730427987977178945977341346019016835969811472176509763258304997991312671519555226069871123489194016296550501918343627036581371897597813773928052294262229526753449650568000021642868513378388746628385561757718490121967098778009583357071974016917132843510488116807663928498146789555406848975129114213701732565606933597665682473530237903595561453722495544446808501378688046836084030234749448628951915271343792101306440619215755548451537795847417996570886285617904213466694547853183440816152557537935112122379634160294499519406161301193050675414583512023888925331430210310920179028221932563523463334018202507070584839265133284580213037535294868066764096006432909392808889682329982210623448148138032186231641356810850416311457207203096349149809865909191795681534684577233596418737872935941472051494802346005568380553181255410035530896197957995251766892471976949182463997529026807270809674044799247518620449191201525142292293492978617547793714938638289205139516272285531424052917147392406162435970846733201210059176209584907685792102529876748092578129910703845588260538597198593024477173647996242822586161428715123427498268130330889408630218537949321644117398498753400719395479287099124389545463457723084963796096602330126793812460236427604255662335027368661156856397966603119166160233604406830999538418426486407336555767113151992383906348349826319004265175852675699432608242826725289367511165393768390025108949542204004622198581764787882969604684866012763499218257359835197580862912186177613258535423477298342487607961937742058885322172865239240787513276980183683099419502627583309143042863107658880103103563301087686990185543092324894175925075406731272786613417561410700576217130964712622011840728471306780982941421753158035629085687888270049586406489114267090221803456668980911476372250277411356050665984432694289205272765246447040875513359242779335761259447141776692431141611390132848042692503871303660215347125164661191155275919548982254174440072320681672118771079166684899494831551351467880418406248461852624520213796182231783405141276468002125588214740689336353143732113310716996974359653670390729283979331829662081138999198345046208185733022174673225037756076672489452139508053442178728269608638583809101700991054342832721756453121244586024008661646350921958578269017504036974198559578290715560555931862695300721418450656000910190118152969709567393079118189011096272072597595510110636151048927993823341853447795131185773815976035695439853160656866882272770598692202962183682419460914857497575692765720506489178443373355606523253875644166043732444235086036047399038897009898202354552630109032537266615562532261579822717591231482548185583944961392512573742259044865047474696946819614953550018382150859782855769909563579592408402780712036039030558229294724317794515982535393728870715069780656102609912711993715959151976028787302980484500824732176335282727217023927675784190886333878621401655358563343416717847449885864405018065486639248065800751339169245884568345897088381755084297636941665407610268052235795143655681303361259825753035838420972988191552735800255209849890799980531076506737547024763675238257324572564335235602655604399061823151970018365207007999406413540472295592005230702870893942116536780501898721123989684899783751710289034156566872051257701123363538234995339101200515465842082556789541208330907481474701115415849598312417838021757730877979319271444896164780493970405442070404449137464188805478730678427460066602172865635993232306767194691693802848080931632640486436097918046322079599344361537579017727740702856812503792316684731917312739563468414872557623934319902589666899129725900253886571651616446890074877356593926698501084570718637038336041157153095777936352969232665212611293975171280874207147594550510490690072821660160191438057873325480455684045685167060962127043054611842411007704028572342222690024345397949966569878666201703244724555097371942080771284739171115456250721064120183148356558869966839527812826161890209178978413718614469810365982048437533343947038860308419973618624174452276281236383031797495606520731646435664670911065436525272238910202675878427096996984484382746226904779175129897879315328025867244931604913270093606441564279764484974023592114646862768645475923886216863414822213447374562376065175722219819568995714197403857631382439442640082465448189251923477124213738385767457142448764317994328274096650615197072728934970842298723809148209137134687633759058670188762713981306311383823804261173984815671112882097405275918830252508410802207324249497993091037496590902406810163936016213241519131597982466875857989787306813762315215086054832773049683355854708745556085987696124748241898952497058137821550295288452335097790032504776190738219718232458452175683790867539247758317339370597080313913583317645964323146190941728172540348751734103856770085962248133840913927308950809959140759036814730944233258654173641690080550156523758569208861848094345082682234902443346806596598333098927174141242261452881550403502428265420996454535788311995941782946799893585046504805682279621922432661809450647105438427604764509727638750833908367857964926443123100184471599687272479369984725562689917834235699171541865793785260349305413858642962974914698047528141907845650327183005917361621907194352176380596398506141553195118736080173060436781667320880111680470360568732203674202422130919050882579936580817958692563292633617403625666589443632771163736300857255157978333671831823138553802239234080162067813674236355760575167286473929405812954950290878808773568077375909744633887834859922237935068210335542953726557988115689558800705060365717098757752521694749748026248699449720627621353559940848584398040420618311627951363637062273142978327558945256248313233676780543436230354915978691035717960867447756146434587996592185367658872419065333398130069982210922588195160270649988175628588203709283747542419945381733246139471949033606107449974348491308559565045293687643682848930262347643415211075918328165990325537465388448292407202445347132645922944033286013877397789561705598050301509187187214361357962252424801435985849456178480500471755935167650465211818313191064137103941771312784358843824081837845689975043567296840004085708143427407387971782704078957033052110223607375740452807246997466605566689232682393587147338764153101588620939364604645485602237764874028676354370930323582331762715702174995156430803547115625290863642110282509339814373927758462166895936577396450171898352082021284133791274030938216170941736733039203413043610772384599176547552790669571963842955822625022943023557485020571046182785615356159306238558288387055548966263214993252728552100233996735310045014186830178190094997216657547794552785468541537899230007252177723946455315499503879603756946993561215512651328224389430607343976710735233475739237983028594099023113109147747555018583818107491517463329411972918626005369545786207944245122175071175487061908932393406230852463607015678408573356515511460059473780717488600457409261800446462742077821500342022030929872921295012766473783107405356381157952626534072038292908165589198514883532743227569474007954728767926434337489953628730228029185790004521667200149696018176809018514212566365150962768394514262324386194589893946162033515309246586040683328043538788692298352779955581640693061475677156990961526342579451176990093269015711680081647995144979818636246978161657184810400413621464505857943221157834682079180304742674093213853564906015867077401088825355720460879775874195034722847111368226409012990909934687469378468110815487318762616717431623739038875037173936509960124092025536456153007255577920455276924717002899184499583767476250984485345320419100061411353296473281920293878357771919777385771515119276754591178568296166611618974732748193898273639943140502928513868100435747790847862448632928297905535716429818945914038241789994434421743325664959253436545255748835287218938948540638622541676314603757585002756440768940897937373806964673573475950648699812330765146567492852581308646056081786571949451820259593640598884567475966626048528060527779617469479031512354306869250577221354229309419224236301558160717294946036680833093785379927471699538188864574000205842693714124169401448987604850941102164987246563132972736381319920416469097310738704674418537825208939768745373428244614923816892928969384912050875248133583194135590951959695025083214623680064169755805958601652669951687076713215404650160913717442525755861520650073643423319009772242919094205223445063305410243039834582746966048196169978375673417247436997848247435105928370391948761158961211253479376733181052898127632969346552611007256385400337493465951824452421940553553491603911878421197163134164171732564095519500669227371986108626502305428718868568677817797815676846843078123366121295630472731274329391055006629486009440886432565306414346751878898108476325441542572247261576900993046482574798911441753589583860644487104968659487889775273700418181547394594336409699762650601885658640424555432048443653842170430437210092555525067513819926447014481633938132459330475189553926742278637105513823266378904467541020422505456455501057628277360207240495205942201935124195361862058102588908597774841892172925077307384984755980019730925916590645607131384666195255997105865586429099048903930182643039398443453579143205340901207432717930989781455761205961931192933636753610227839478626412496437593552265897720155897022467061643630037460753875987131327439679462696686978035589737230424773031454013475162834426459605717987642424480653245849032036829704492430553245872479355586136654586177082220234019423183107206933769309599431688065701793821680972573473512904230195716487401027189261614795035412222170357342370291640897422004144807952060937737257857677863287547669055310354756369850464927201995240985799927419214447129853432305046721578537158540535107994698058366380026673381211275153730406892320346463847185214250386314420200861371080282993750268839776692504498656762437959899951743258151447927568484951082481111720227791471737269027230015904617170172474204191188126171315023068410324601496713065229994314682612971786849443470058569765327021584694822180059410325337444068370381859701868809493140777830658010566758687171977564750391040891731504423792064844871539829482814952408696040807492197809547290478374716181280704536422979665773978490247237377393111095983127346740586829416648017621434595127447606441457062296667929587521004819571714315330205759531977586390882694936787501278686617107415781647681247469955517433588047716557223922282414806609969881395633043228473301704840361424877505481967940336986203101066848749643122436551159326703683978771979684110044422264979476666978870921436639836529336640976939418530445281288267415224588055279457145738031807663013193275256611941023792804876358181101012950676521484683075604583492272100641647492208139093350331178851799482088150487394699487879553903681252880102770106037134170516072993128561494142536465476475108580035348986418043918594773457323325378157189870584013417813029806986366789582901234895605714789274895755635057719050521766780047819320333362594026248643047175247945414106918903089688902416752887438679039118487972454238876738631249894427049763992584750947554186922685896241396803024507355833433055532338767028470269679888357253950593750352777282653695782928734366948331379229476298821959245109616509022011834177430538696131335283631445590609534504540926378836069076898132993538490078618866152408514981482372242693530472349250766849926643536648543048384650902167418219388212096670404968237907132584265901696129635893124498404807409525990138159163119869302539383003542433680104724972142741732244176228189084849752810246361513694066653021309158770437301650864212872438947390313719060299243282905714294412662864120895239161481241562303248025274843150480280011123741259319452425603203485502298804666758282874480318361714579060198238868346706019036328955473955239617584581479631832322105112229098377693113479680783952485836247237050971037915853321296995372600098307828656979835127810679763072539347304339248639901961463743975717035129143490013634678318763486160276929348474983635616937951966187606665687665715957525157523094726208663491458260881085841440306951413640859880429371907503405323651870315808828784196764369852579010212082081876769300970666848487865832709066729507317677646337632841059293686520642572897633253461659357410894872771451956761827970161503291654451076042142663600798302722985657307702091963536021194957911075918208841438897630846696296431603339521746914544975624462765418140567932204681785188503821073153328755415970056732595028972715459352441320343350428166406822938752945018281428649149286675694424231248577989405441097505959327011119360489626614313745731059021577517040482323014093433435460720202633854423589642784444516139091396727236714440763244406948717697205795443732647697617311153804236253800679404476033757274644988561312412524668808958734012111973572317015389953357114049654253710840471922334674666855956772664912456779531936732843004275395769509888227768684696254107765000757399875531529427293496691723569025568320016096461350647848118637874650759437656222838523721643118218308046462734066766661343758318999601866120052687462190908024882634710904940606934170629594344390843338381132153664418035724747214441693404165452370308963873546940203025341855495278655282500618166232675670355583118535023184719775118271816846531303385236342057228330147059496088444044213650030796122042506533507600422161553980216911783609455745178733097480350470616083849127415854250544359777134194754303975348882181305939744682892879820884648826835465162671975829778371716763266232326888463578405859739591921603042428051106662627180609041187824302990126663493466805693056358278917766021526713882146155251073471542329551380623903040204775470669794119299928140399852552755802691981080965915651821235794281989538382995608140003241389484445463143675882402726084236406964871137390303094884639662101665766160734798734530053309442821983262563770417886197591985723637919770017644179436608393910467973271905007893416495534814483155812954674456660689581022823617601204984299388003166202131793995894818002647333848499383808719300721261712024106599200817053106422067237766461018774738380725025086243911755871261762625184020166300488971584255393837534825127585974450988892868376021970619497682456709933493218027461062338603207576300963552484057153427847662740986820278227863767720892485147912693822108269916283225559352847465347498688555961874063323001059423596852404551283175899988257291753460905070242682027637249557455131449090891216477387819286668335956706945176425248584283193478021566274811393982729757706481819526915828231811190535218628249832046644567320798341407860217860913704063545323571554027173865123804012710742603615567124658733790840814511123741922800533411591087413720640206305055797474722745484020826089377541506694617147050495364724700079762526100839242825309162499496366086099839231800104571286225015721982793453974300567484143031632375914706913000557973262555458958007846027252736132381510122847650941608921666893340340089908824279562204984884731442118487124635689020964709031539829383443380080467836495070831219817037187773644368344633769190096413712301483488184792280787235228435830531228500382662091310263828827895408634760499056193541180779369418516947275787370057581574301065321452128999505084247750813602200480546876341186300152208356883398555090597994261373128934918077921900720688329477270855537478026199703123046424298965190101854277815473039919606883626156106541306951708820378003232679913763479567231969762632759145794063953856529719170168457526152717954307619851081024400324494262418213451261902109982986195279638341329463820408251595365655518296855278337426832512199344896288345776102978774883153228356971992595391653779406806054501259977195891140091237168460979686899767550157425961461975045713468087167160020838437591240632746548127045239030110880905464081063900693830018560129244708163825411818196223330106655783809572068896914853522777080037666670996288099898450981131796202669733034847654573132387347231175553028329559331401059665006459213671434386390359168277095342437989394216109649341654310310975398306654958861413465482761683312024350700857876757157267844945977946529832027648700549731514395718111886318777463670256613437077796880581701016080528893766638593603280053417114345385188885043052948834955563767885372221891194974180154760025830634449861097966176798653192606231939823196714276920220917764378802375042686920250352982102834834329681980105903562536794230996464841939013659567497364486735638961447034038100580154824816778440746400609035836336998706921844193353714146330255592817171538601808444463395988250677808282465405507784907062797483150946904100799640879181631313191780448400410818602992538228182931779490249171689573980767022242550298267090056068973303249926909109408930850183525237450871719610919981176901451927947366417951755603922338042984444417304808496387467018188200080008443162550708946977415834171454191104010501355473456032181650051428842666493892204176595454994963318084432772275907767262295078077280364890434937821073421056134417521981785299002628606091501169332716914285482105334841709955533396536298808847207686880368537834155014523143318133549473603119939128912045369299336105573116694213084926984009793648058632331740304656642864495351439015689877796422156770116199916834513496803155668736079663190679553570638148216780956556985384653645593983054253293741566139129048645460994088577574831028631925293037006359052863047820723523891549725677378350860621590333482377484411105520310361913488306303211695802432495311603644557672094553744739194972802960027458553468819580135628582643599459508681333214449638011935516698512640191565831701040654151754683456791857007381974027883879510119301564518180907204539364727888954847608007298959175385145585843619956527159136236622958054175213042579072213172304551918367277273695354899364037169649355874425327704301229861617993845263628908104245237744301824867038340178786053031158804111773512099400516774123771525776222436717086919640432456100030650770639849324262621084371091924060913516116779616760739706263590533637002100784575437866069444637080864401859364391154633976055295955787292056616046958387884469702248726376594642623879713227116810053979466438060299068319812764110752337095830445816110820101033626951645054347798647125586212817198507103520920844607976811069473362780652769099560405962941166776750092493966017433613051923571737939661581554726760544563330210151609506869690160044691146584564086851071140021708095286628903209754242705064392304912343181794434334325653568050077746359658032534694016000704361948457819012735192103166484637991176631607779561937893247354523164581606939505255206808792982591790250304040431291132917627888302313083493212133286868032103142985102570242594393873880195625058901239603979133436618995925035144308772259628789848477119202105745730130438000606301269197437070768272934913390677080461169255475936909210675350323136462070258121456349379963497139889757407269980779664362007791144389806147871443468952576992666925909056289270814415351607163201090521171736418192543154553815207317943588301125272992880967302867864674430036537384520666124836383400770646619894622398212272779390334527893551557208556255689386101467066391008666032779902323458085078741586039250618513311737721343288957776712792867973942110248606778753628457429162048658099218814569651327072765960455838844577886487624004325374465873585665663854521632846228643652598018743028188914714128378323162244427363258736624704840094853276504347291559864585300418271482195126677053393680571041468096764429169635412686139902498439094663650665924307979518317827059348468327831430287814791165773411178181819175812782332519824447863119609870445500467789591229719329290672168583107422049155608329892864128536785784074553533684010780161603963104002446841669203388562024322723176142827158688659428158333980344797600353631775154060437109634135996858416756661445266896850099781434796392368917194479337649807890525558754344784579210595427030400685763250954332422084078413678043148495984023261146527996544457933085653620587653163837960573841786488737403356126663789939264012054402659474009932578693305777284057095155710374329290801050208896880916388570517279411101982892129896768735999859119868001200572832559678900593402628751427987545685835426395707329045585204976397972848987198730999095918453335543478063561881677161859876616780703241831359078418030588870619308408394352936480727149757001010928682101712955510169254199854491729492571931902638695203942074854069674710211064637507144696854222619984602756009421521070291178859071074104357650561736921200015465539527855526537299798919076588496309568755392663399280846501714366665219401226833108897173188254848053624841659065839684140660300711350107864452824221086116717614678549190368408515668572000551015096653742394492567745851381920849095572546552044544641337878641811147824933176652431775853600667894883276457234305580943122340307560955405028569012756758861160794195314930089981237029979074010690351716265482180300759419992446158289614490292582797847668521550682914219494699078826840099427828340412597662060878816157044939003998916037797761308756170738202893152201277290093727138704579049179405166644719948441675245653259087048073643593284083443395492331750295572336011653469540346239347821998736553214380332987140013980095929478608252525033722738791343638624879673988020130257779779066349662938357231927576974050107701334474477544536464523858156084393858177881266238862074464248313163499628955190332378300676116247146797235332402469449960019827800901382180947252977739103068921799209505598508277804057195127170279673538570215018433855106937598104270173077923427161230530027583402712988705761797345502730803344754779470853937019929442611963490355012272552094477123558152692025032173098283991737795607530754346819936809277640613851010799533390408422825119748399707160157099633019800688946867459572367974269453454641646741677501013272683595563642939521495137728253430675539754020358596535403255733047619382118066630336357722952085526494819846024888564916439074972197995665603932163225046189798709173168720044590845717755214561379623539525613304428075065166536324370978884918500034346041498261888745504388734412493181356007814193907190143748973309048771190866437881076248367584610639799833625148071824174191046517400133279847708707537466227510063568300349839402925136885095976302060902053072602159883146751393333651082162979696877117346873946276773076694871561697692355676869230038129469224974012650207442247913144927649661385367529296521602096080845763314528983972300579698030559232853320057971118214094925269442488358785878561333001758293783804212575626662815362959960385527182318061021791403711202057006361452538306743002150850032656150908735186153391909211648542570737698072062468237635221705343075501562850778196120043502803763628641500935272811199194715507487715907137695806122030822606127817793027107306956619536240253992529849708336497295493588167518377018716779046600023177292589504939153354440148529634036133505003718263428049548751138568419750026868936554922386859081751737630946083058875227777864273016965920796968392555132405180309418591252825854520035975004170593585076039057588782406560201258238518716380215726935685409360580929320874858217576951155817939475397859014739640935232742857477633456177997539765180161129549003368694053629931253649013052528414499895049596241694245019137688692451993681776833097422755412682990579546682435609360638561270617031701834044357786532326650057468280609312114744799972695226659894159193554073574758688784027727062618590897903198227439821806167991388225053651297504911411250334339083932791253892565154333036671460011138559695071557338782374851952484529684705263073026658365722342372475901835491430424631556051345761651762832528173073876092951508631703527197756764732368184287376748768667246813824221624976353358520129566409898407933517740588654319610406711234168438515733301778742650946279373793868067232406243612742269233668476962363081082196124994021706003607768537853737791569355440363629204582046267026237161312371042264580360256191744180498063190091942742653720432630142969242062758288144734424660773803375944744655909641175564825362330403693662791470986636925499451420824236753075650666704828360875530203510012042976647167463868938886872061313252277243165938073041730728735534982217332355789204338840924715832798259080432601102417298348147791754901764409743360582503471669330566742283621896719980108270471576517629258217912021379664288315974324494122866302099760804687686404482714602368225351384543349554651742796778691784337053201139303051256904437678994573102480772567960950853823682035580639633871329415327509212167368189670775923665588402641465084451264601499974434353944741376289826344740860582074345684478717261338701647028317076321392689676000050625250788281993361307896143435429815306694069546414261564651895028886365610711024051537416131096114901923233941134901481611912798497067609890409278833900158106419354543733017350612776289205222542497318959614131894307088771273572070064913252539950958821983978229049217800560397248323287620865268850156840287765421774266963144374201407219250738088403302322011449014440509390711125437732815625588607283284141771762806909838183147449364642866664198411837007475868496608248287161453633482290959381054886913169455315972045454191961407735995941880378343939839785849617525103738292243115040384502745522459721026408197844876229025653583413080993283504779426679434392847419747790660043679206727917574342667062514346510418057968795207618875851533185814038732423555457706543067617640654897270594770309183236260240270307963146308823298924800238655101995724016785043175793488030277750291588419449353922884592301097648221523536707124333896008837322611184623484900130330833003973611749339613032378997542845247397691557428823746035067138427218337801202193753698433231714688361737206599530509727645725146752040445903250641414239689189900023359844409865421113887807824015807751402685040060675576388934079575302989783243181077446581651097427993654958175350788129478397311873407027887719777830595964789971651242086317664122777640944529860715487944398875854241307253150599906323310962591293308402605159850798671470340335551261389861970721348685618648866276085705988114419029797547124660501060144681499492347090201206905499969546903593729834370625187769810560249641072283239422138356448637508783211067128333755322231247340877871952529190321064084616649875916799951643893155910135568049795501978167944912533712944946097761699025334303017364528692119565297929503897828996630096559202625403014094432696869652321645475937625792652031773874734240757712465267986895607056905594837772400337030886480944224054087335481433439527407774859744181599881219298182568686556707110553006452075993302140304868577088230126123468791220717698514360489224374894562519330277248989991043247073555704023824044706630286856078721567181801010854951840381335796539274499648449934895499380201303297139513476460352744331145990545329312210635864126121734269464648034875179533697869478651287570181834070166357879986911551686239089682382191642284500355809162970391721542826949551124197821697475311980097327804692321443774725939046146104173346392017893115541399950570957494550709051850938831775629689040238086473875070801766966303442253971188972376490397101981636256898670249540572951271225952474661298382497453361813520573588828361796635332663195329168116151132422558414871876724458399207130029762580593819899378183889238326526020831790422190434942684685470297566764844392866076682629300506258022343379500115518261880388088431066481370086800602145152980484794642073901691376436621883261267142893065174299347281711002520646992862153985694043444850806678836427647410766236487086754499327310929841741599144659158666585635785160861072904463855861723460450465265956652593191504304997402721347745605992701626888484137180646547493535566591895529545804755446114425824622652948826819009043602822332228479614097453416095706611529703295506046499249624424375230875090821285172354500193373529320103183060401924453509395338259541438006743297908814317402200781300961054503324921338814976938803924981762083304610280566965501444458633253762091834695214062710842429756327771313348218803047661925814491118607605193704981864203356544367649615261268807439080237454423118973700281093724587913682194652327264823434566232062408489436254337979979890591024872367941801789890087324131864166741089062689861365122041935033628092898569369345953515324164668268191524608427758952560067222136955411882980480802875168089730302486110816392518966757902781542352602371894861683805458693169607709584254431016048793915770030629069727855835119026750282369857653477305801015327215116182495239790849979402883991563465350424309690918762175076974436786235495780639559014008347259615563445818313320797565646742203288408388041307586497372675108418720135877016534795014473357475763857194724142689752281717115732712663422837952868299093811191983882219969701055989161885240487805475801273865357813452057781271822133271356305065962285109220533425264146501658851124899818424467618624121371794256896095868095002255562933096508777103052354204390538583213167340910354827039280627170034516244375141814348288388891040091511895485018057548145998665072339982658418691071372007183313031630066666868902965976456899373459073833856858757906247951599477505932300891307467978852101998348610958826100276395610248207363047785416648808250919583367335157412107664095866705735768572327277220660272165828078759977153038093612024816972612771625126978469903321367989953591490791627355251045036985286848805105963631318960115193652450369012938205494315131334582876659941028900941464438420713250213523173746713919657639142590703374560396471301794493477942483183911962049231157907655285069922208518829402437493859916697069089296162851232045657694568795450450244343294822576083193101195458967833193860384173855175931510982832340314371798738978942158294888907467268949425870909171501975833715234766349563678225761647576707302950638843667618234696313755157465810651000723060766783981750756710124577837556482128021148091654006830756919685400031660824236125299593655465320733756553162094244193548679435240048037073200652814637521010540770607260810511770406113863842067446787715435736900390797588098067882687924796049110905273004765152505832939739838650711357469362787300750082594247394166460089501860984237587958359198464460832871731051589848241647697275224556558142476087669901820415616616826501282213267092084256706352933341168606027813317470594888716739639472314306719201497483856298476134436905854288308499710763736365047346184187951513478474312192093532654752327523006011115207460870246000219820095886590248152960782312495975942223044020496477671176051760190556314604443266720952257229342217457014049493122671489923086975049759311450627915723587544623892153551330996162398521731108267771666852808728783932673219383459533933553686240781975520843320454974534169557461150872781231556501818366195701822999754973455281309202882136243812443972613268547823605079128551744494477762246183540146189985630204160427007562558912053797739095089288643996621529487342581343604734633731614501230095030819369982194229760451655157170687526389580645490776923995288030711509026626732296522435466050895929280593485198030184180377050940479046335318566931139726779712257279187485795976981908066337940689336996297202125603647175720680896296370499417550208381099186810409748348078537570634531637015185955521064004510645737431427544394040078801317154932130850683972367266144721085345644544304887067183548206646775699440211949179102114889261890565850106369603411896811136815755284430447736828469054525075121812465056802233633918625674355050109596986127303535122652043901617601461395959586752883092728192505665487453025819754083357054966403601828511503974066034582976512471586194960775394033439272216696726979769794302088024619204563109505383400441992192966445222968273993722246121786921747911145251103005041531512130164622489768265186744433468714662255315050538227290609222151347865080287053498039581431212939156455060620573602686651949035819110763437983685409944694080463385875398100516114914981496420224237903104229999703091885091953850660049236444359931275995287923416758694132922922702929727515103030427188554335981364365819292062074305470823905813935044701989683044673202474657992935710049098881481844515926724366601934303765083629860062783181988159009662976148005063927140332302681215767277257313037606411317546288369714265667495090404623283006629145306122954211673022278460901712538494997645555570733991760493793715054318275396834224851662021203199423886282926222067434775700906408360201081077215965143854766621913092585437159841451341363457637811583894870694697862900697382284174116609339125651876482416835850736684020724610350726355067629544433904658451393360882223760387055499042300669188860944667398153614092594654036616710031961644560516381220320899294103324891234351515672441556395734390838094567033061966960058838333097790351855180522116864315785449003802715178891060790497508584539782555096504852731193620577454624546079065378163012917902856627217241669601091181240273927711046134158542200532877455035189043317250038215554600180130459712393994411127744494591492319346137678638931122007246794886971026773325674578708467192676864094011568686843827781929438378218761312622917849006975023110183897741186945718467662798271953620276318470886487127423054748143032462831144506285225688837069181247335177282786902262346220888618552828207639401563936738431651051801384925298472086210422772031678731478560586723196510006264991221722752355018064361763371395158564275437341694866800400994217878086610903547605621874270092866949236704284789182443437314162744184392765279882464421870944552948121693126764556435975923926877296229145211575986315187371597477766703638503838912802788117935542043930369443275244157012912826536924896504792490367215600961518502658849469779374986418059807400853718095926847068017026578294850394357496155150986715752599539819226433684140404178735974144028312747552156163048856773609635358178236490185068208306018846689672353668115397721423215950216300783902803960746160374311120149223723409690905388656730312888433385399732831887101277000337106792418181528261234262343290048552835304661872565035351611455850397690956467239177873530351350330519995532730239107246870287267836930969022900478758940128873060451190092927096821579782766713752692141134641844373280882475955029311454069901173051687654413164846215390014925688579065877313434079301305888793550018025434024983990466322357382792116456480039998234610443201012789623756684590977792809205811937532561995535444744111908887031768271125254936998782650390560644600823009369714766704507466042862389761396881610443046768187326181393579646522836973330337621048048703408356644867565090870028232808827093314299301511454940434805986822436253320059825927820999960823776046949031483139886111077275729127747439488194653085523425237705557048937659287946063446473536539822046264781551845772228626075630412844852252985524126645923298878740455496056826715701499699757013400323075237643796092344231997966350823054998637322526810464658184429104746113320876978357932459592779788993673734264033995808049987024474612815666077497256355354389342084841492794511474606286829898621268931943400874875716283456156603420936199483376985193592965656388655591084287264842604983872351008870160237714483581690133277128275481963963244595785069961283104851021193314875512024972617934521395639822535608817590578670593220823088147705758050187539686133819138771766334308831965852203576498683088985767150175637214353254358571272014581138230291118604030271048537403700119972148555836621256770050176025816774436204427862435132958375942807063034022674114672252106441063005550767399322784401269205221927709215052363443707584952901531651781018233809952817333251381719776144376098062411668540918420337007242818122718781099216131550319224827085602069621076496079386655579116748542860935308476902538772398086665564137845697592671843003433774744887398050612179737235826272105260656192137174686694411613755759859357830686206046321153138504298104238479675890723014276806293110815809637035638898738145546714548727056929874503830394832851681421325248412144716423491779933360503923800743337224771648513565313692858470519637089344496179760482301485446127147405440441940854895715488987453215995741173592259278300241299018637360832404068937923111618880436487411135343907850296471905258358611745766431310900202466991136205204554161875317531949135020182212341486651012404832852864838939211377757246708029950081890546963024134686975335934113801671673553891635023444517089110872647649111188110138775197976904496608333347432384022186694343338493334095882169706341960558837197212743594427919346393025373832479600562929585274606890568254940643935419456597408631463633949767018099851249862462419886134327461433774006235215824955194103772934283930621720678826785685006379357927154013187452849720266578680085390215961844767860320325499708373472001161593529449276169250359204568535801158216342548875885069467411794088474118945242490615026471257661462010266881307000474490839564726868892611999117887900792382254542812802520114404779605982014997637468581769427832298329981193484975585683837665070267778723033959055052432576246779799924622394152274685520452019531973776354039060508798169897131677498978070634902151897566461253511462782412229032217464979999269963586720852987247663369770727444793477965648739777204580635529600137057892006667495640266364119128048710956603313388553898505252351958803318377062252462048900332576537941757039718991549599617475808994673439709432085952929959022718215480824928978805118021417373853154228479880071809748155726022989601393275105937619363558054721252935227071532897190077096364225805011559857549830998007497094282321144464042240325280433407599106098085788319678457632771812534063315711445369318698493378971874603703653376372823752801651238389593063287959143333464372685060037428572990118676435025503469788258500170455901550680907903359560477181896591042433868936077793788833870633874343674380441273762670825321839858673412774128593262099126403596656855165141927009173671961758719159434970580104930378831212502331961101905058467425473713006315801716659945757595622026317102454188755110255365840794113391074805800735348842307580304044485167858453395186361427949459053615031205612552211215939384065394346305883084664435842421582534743303349536891781737484186702527356712467125655099362689291956140399393580007167950570901793217131963181300484045207129348959517428403378655660684471191879103782127326548207712310124676610800825078685779688923974857060049321695140834093377115475723442362433227774723206627090041654435989574745648101148235747862171138886690621200319754037955727531039497400429120030648677681007173152344540011373391397637187705901973420637849519357644374222391128954611168345216022272514338794258134570047730038390179707627709299834304460259604693739713567971015028513077318727200938801466395695730404053004777399056252735810174580698303774244078430215024789903839519071717564959828498269094613313722191050746825942960142945703982746962816782673006758093042424617213296713379228547193451432678004066512193021706599424996470157485178435139130137214223973241542260078342159413625507187537818970466010752176013691437309768816817902932464838453589848675673195509820136366225783763392247336217502005587083367760197012146852805117921685965725951362693540149382769933478998693612764837602441637106684985812016432144503655229505697399331542701492146126117703975092902774468638147244084389343644350146670933653660115441057795215828764369303242017339574949625872856260129698619987460680530752085417535919366828707809305081009786743542063793279562656812967636085676800056178789883294714605323163286249724955902607551353169066537760586678578321500832810877649426241457732054070256688999711108447541552436525783615302051195033535779183481873924686697287070569790074144471835193112749006194276900726727573739565117224206121489874773795432081807722334281695028710307962086291673667408918579297099170394098428193942799270808245075287328404411304236800214514924306431897929946461395202710459910345905282700267309953191534316333167670199189172822036210489084739579164091647717817790333676994640340929261103920895461063498874926054933560299365088227725552660841012464479264110747825556282237804604850211091448429761469515202152577149201414312041600055623730758174529078468746681298655105630938965953801789142466758103230455745822179999474396991033756991174345451598726403710482754609031985584376048675336658181446760040815432673979583585652376363550348625265960748438277381675433515343300300797923534645994915629645905528839098678454691608257932208145782904655054214048540766656897860543373964661776736913919037279341287751461597585463199621216787491716077478165445687725450507108217164633883052321578457935934425873943892478415541555756173350531264082511166156084015804391061420209401763957879252562184120710663335973696515049462706092055942241966841361936775792466483501253042836867997626942990375946442596101633604433624818710726564662666802538017875937545345223211431227292960746179260161838684472094575725335983680983899137866501968960593651852274781583140700927548843323380794450368469929148993096288345790669440567039182254518487017535273579151256806917515680638473681528073683870574940064839758967756778811269704567284423179000597502750323985168829563412487168660692290157619735830264686954890632104712159859392097639869616304458759980888478323923656015678148377331364737973035494482450735831358536452743110857178020454405352069829900502453204068546627241582196824404878462834654702303085924595196802395594018888332118979943736684424218000970095712951845063562488306144164720752054802427704197283527628662537364905896979586759074719397628663254930976156009960199003141365477515396007602045071460049026364998899420556814250306080742523073565421611700633386208235994712189151429179651206650231796343688322832233866549649063744868549328238318669835561872987629634803995964111559643376151338205295665000844943693535996198033042841353880740358294122913303147052710642677095175852278942652761546945411318547664067428854335818592611248170583996333468959134791702157768372867910270820989429088128227695598062656675149938660601576252918868009431783358194066882206813020762667007810362354138170164390507774524418898600512157499426327994967632383385729380774038078966232345963997302640994864682426898259072399311076740458880552407344985007142816881609355997012977725750418119171545605511072669125293273555890585141243589134093381256443979400711730432494736868057231138891249473599647430191865938892799827663283167266466045980389572865637727569704827388236974555679651667347283261380439605890857092133606168805005123204314769430488175675525584314432469794224754215639727099121363230644122426882056139921970995369488608665461368398886965527533466031156911011277044154677489447039577082543898240647216267797701747700479793750397666141215223850871538792637871078192917794545774009442263548328046047634931005356779984452229692719810929063878606870934893519050558151149745552464224453401427917224051620450732970013924358999258336190031193580939187814399557065399654369878700432687848875928053861701123506692998375642926842988858287536979049312495721063634867363180634625150198950169611235139660775819312243027983217967223491405304243979974319801798359504464703692419148393365500664782294938736489507512277760833411100305148334973669284989397448583698234626324395796838622589332461834889614882548955544212746545257749504049419060538237357101596044509991409352069229766767913984831656452959279651697024943680657205017599798090333202725507625093842634260067896850572394265517322550292429773652442964525968738597964341668260463132069761489030200808115376087598352358345688610469295859936430227986948495880225640980741510893773631741464095975027481039498858434745806026276929000824948746585206455486931692409543956488074217362384030087111748346066638028620996117908006330800536568398099590500773170771176855128593820437502434349975027561629167263714367807370010340148624734170767540075012216117457212053875704096277180671953786342304617642500094731119416965172928191485189086773509139339997069680294259824120455834201988742738770211570678079863049266883119550251787031162901212860437919890625169209956415809402423876978515645294170792505971774759767317087360307645385970664020955346652784049154171711056690619780017599995133622641971902539615332265433342389985506477835567314877816143997377310155104271437536297899736861159088303542811224480038709812834943512769541088408226129305370852693114428935722916626419550856232607299942884998983366722480584673622757924495468868108730008372606133950203100564344501965002466075274042512282207184042931044010773037381632168832377784267306224078148350787728471691781780131714654398300669683164861336032975423603608900481218860975681641671588304466414937137172408122494688484430380557906833535108005456237043881457481963171714528582214682830431139665163291699305117525370550371900443547892947424103724772922802053452577673852637597482331051024017999647877156031776812297752627877724746822322852771895422160500009426199732360295107668425852222776983483191222376491045847075505211664365584926870252501515240141586659893361558343872966411544650940119017180961402005966272256570489198844503493444612626339318845584951050438725468136662211833287851672828149306984006091354144484472813101944319965543731877036532877242077147238798609525533137023824749905915607928363968912008429749677435239987783907262342023726648919774997490523376371148968735231339525414580795264078032243393887333429931247770608170313854821930467929074282887042058393409497204669312664219813723743043026431940143096791957400532295805844108260251684179899385641575897560179115309721854436928836926162540085496634770926856615527992534872410518896072445399285092647907298292362103572292948667552049539325990570927720522920918226004873334888824376018901231472994691167411755312789809579707761422185005534607060936579923706547395005759852050808701906087590242806550962556201139137424580202581791718528562976650567623459864611201267498007961570400489526598505868626976818067097564099950921510862613127006708203299809768656001881167014438729860099705400216770044173485706613819624158361903760715766835857300545267669131801865353889811047658433268345492773056264242158039627201186881817341330127955832142236164935483176686236929990715088662274466386852455162178238043103208634777700942973666359437950352122866297532834982402647241471915573754665709925752443864376748727246065160052519061240279310319290714809234043777762589459402024362854879074233710083215730228175313768958860324952597461113848764261541561583866000231384350468878079723210037873463723019196974778798080930930400065572835276484004818321899988864507124798816098305492945114669712721204599600129277289645068154817524827768625417387025003365019597401427730509739575492360273606169333381141021440489159229169043213212777004826102781773816450844714481768281916633491428994195626224897374177378328917378331010650632051683796118807679225966399673013145619010261780081022986208459334884156342652546361987467237141161005900709369273563526218835619981174093271377036312531079535816416293075068883018893000208849925233398119949736087550404294673370931036425504776677832057266484987579587695691999098276608366995929656092363097040126921852139545940421786073737528605380944572630914918763090156847474731194041778596848967325196609786457463380222780951683685524752048496305086047285544910095804428380455261900831778007159902964196211052661341347330409666605854651011882482363969401151026761580937244690598216304337068811761727505717635197042126327929859397946435835821113863952233324700751518642763315835978160707723756083448079333439244450921520611161420016047910798194707536238476155246529298329571674743675866016678300989954695517627707383880549568690101447157426963555952603533821856070178349791091328947570273598369650967893731689942945853492054347674443997815859500548207173030393396544616700256924828062716000483580912777241939448118647085402996724739242175565352845272012990040695763440711287932303381812882427072668989071423664730934909258591884134517398562904017167500039087018316946780098338600939397091306942096215743630691034001007596998958578587410823729887315290636196215022235115062948000410757312506495223976060304259329282501174009221550386488333516726798193767512048608679637226483267693594494060733058331148184167355267308614177660073873224716548304734504003279001838345831159021033400200192590489704933347866349655130644682221678532148475509218198357226829572097977144842330563098734146598010494768148707650947538619931978956559726887695348884813215659746107511944569736462299104796662419920169399119347021324290736786262206253050165029035908681905654552272313785134500564276938806398822389060450680184451275897809836107563096652853365484272502882028059030631782132084719720697064160842247208677718524089421956122392065655123253942288095939846124283666426819516290533744742281044251900657129355200334801616432566442475265306797941668448646683433318285891194238241456980787212563146179105616138694570268944663992197954864801170383011018558028364663234176341005169121148869014297442125218063296760826823471081849831759425034181663675226850329626896732605010512821534889418526304965644932753057325078336392077709475344244932352171031083034605201218120700981206021854202238267702702615523262537814971266173758012605999920154740325251459957781062830806720254310982927895888208244085696404444559407120683837640702546806817865327773888915519282346106807515804010332220473809429535351648775665446817126508732875304829725282743833579246452925681030617964640667059581660093799522015276937882689504253064291286421887788325620378422130047691982222440077447964343626873367398939245053823462209168701114414816629504399261190613835968171723480850272645475199419736730437418732075454004205759713558418437184339960105277174425593296457299697190278468991789564650668920720754113707898168372468938389821788753582097896076996390072013188398578276263848666225588148598250213118333878789715187643538131327669513614093653890587961196785179653016658185819465884203511578420051727588658336042335484758327381457223989259966118990327087918923162827772099245784940947193398066316576916552305090335272426419570250520144300627136268826857058472475691972974015268937853261428407518556605870296502052469715883714381000977875549852574269756529458854358032985497296526266819331408203332141334884949034316882037286353607289884880724021416520168937270372255650714237112470066041199840452726751975768525420450823044435769768897464632063001562087412615244166873186483028418685588817989914040235967013775460097284775817000433021599947275728873496216158101298939301649756938849675929838617500751157918164045286215830666975849684629278868907803077314978259132128963149214748631377234460877277571970437180107282720532330660337360015926339044131226945832326592641809899350809498473730678814576592126825116435868361885776169978102846243298762875925448851008800569637631222242566160828522591417388963263134928529969100863692268461643405190956369260487354292478383016785264291190244810806207458624348423745346467294423336344742878730813835140655526024319989969176386141047142751092741576975017042191630210564908294673890978020522385545450383791511196332900522260234261904164311141801006967760574939830615548391328633636970499362711216151451037229489237755098021650778946329164983610338315762463194012802763230101180358615837288142982038921733697263459777862083622164626871370299866120497022323640871891678530708603079806804800732533445718028839624017821294893865131974772235073095934405184947407338662544742950343576006106705793219298710364848947671078567967462183051173686691974420722701565450934120975706352250333377257275382343375626168901318971403895160821667726571802212364199058013012138041208001770656612961441354484599960268470491097920727079313987379054600671417280668841299674749053262343913665325815897479870831804184094329481013494755225136521864156650731666297513124743037037561236466466102804964675291118868306958280042276475479628322964492822541973698791156584303551461050510564330550988540590473673710376428636943189554497732394173979026147941300549860987980360583821758065892542371428912313076097678255847678771171211599689920007374375205418098746173003344594558090322110536734422397238828959172768882175227352401103659478297435141262145704896566288647887126822432553789717220330781555074632147725937882145260876803855526190394113856291573649621769752417197897889095668731515491040963830393945006300644798071909408398587695599632816971886124952638987422018560585994635456885163314492305749001061295253333884149305441920548111688594050927078137698456307319831873629267671254572602988052759974398678610323494556192592671038570925135741388056657721249429245843526903350758889920194143084060444713247538404134115347535669845967615719045766067045554736409428929381332578994625232846163992672648907024219442744697405145733398937723183015285394354257964969121204104371055551059091559927021947615760430966549608730169112002858729883639155572992917842193772913311472524382585883581809663516364131033972142047428997448652457099676831859745107478435673296118290350405781091604889675619984756832899597268421949824304954450721786774818628760147133456117225870012595664687993319183500986649890987139049466745606425660960574976584015272330420331234878629678878126023747285151352574369476385525998256248157214816007201892283425745216334211981287176163070802057339149268976701714869342788584804775609029811515474684059168848705506808239763734801952497157629504448643236461496542967215868112870663185231602063062955201529701557065454917449457836378268677281763585441473788933618377495070096359242935873603887308098022958008931119613313084808722559534780849582738144946019790939956502668728924392345597197936804500095298284798769614723389078423075627058374377464693593756953712051419404629026506539349514373558046346080038169552529965496161440088356057154884641626604843193205758343206243904478039413671415751784100451866853806401967739915887187509813146667285922648599972217897411590716258042213690303174680837308602846264745728943871613257390188562442155712140643855050102634545547675192357634324940026847760334630018952540620581310330633830910699930602627225518281243050760033816132229857866829109808817036938227395006457761895939015194672034557696386630805440806104123169150308014207291159740774447665691307819006472526081521928966962348455536845286055587164061633122998874648020444801577553418011497098814236652132776533912758898576117457012790914583518857767448820439659162693455908854761151448645589991562532885646907347009727770806620846620300960645471369745614525634288681833029631607125587478490748649524431825248834934811444300506841692323123788017455292951995329135298804972911967998201444964653513553675543567635701845849380968318906122034390017521418137760585039856039504017817358276744459670485989815456599881217600305948339397879779461974503070605648019284322705669568531820136927434761152838034761298977186928487724971236097072300529260757998450301048905548899501311203249063759926158978730005531776515093641097010057207538698365333854167699900301564261423536428364001335657018351473087921912784039617055649827801291889584370280230723053507951935662839782903900824383117920285698172486906540054473658844972452616636031607041494071994947594915211270031043259407881886438846279825766739055351484252741417320681133585229428029666007315352566272731092440136280274697582669656446569646937921471439626874312197414170526800925264784837492587944201638218125221881072000120746027038425568813988320716382560278065523807639288242584310093623224451789683221869883069562520241592348946296580330518060378397905493946387942784267602505327568147774192673707180764191961734057326050188355217703602538054545391316132654686516943685712193504799034481546846878758258660744568670355994167786778139308113848637107379566037036850664993244054482129198701931315755762913697328306600468649800710379248481495646823722571885357304319497115210947728456719224020273413929009441734066572429727286487456317903517878688828524235023494368399645989264218798056356586492562354421841768100887257185776417685980226064123805894375581312855362430290462775867479801103847005157561707766545530988542159843973548534293585342054754161931382846238420200180442928465434610937716859414957069210022571803287388170398294613177344993415118685069208936823464294095389530962568924224290032761835189446469409151073640396373573514720641354022783865060628364621797876624413547902876149589670459484518135395213287416363428809356641643471108896584770481347906210816813957364830104008514695793540306591400953742216313100361852517893561776760793876540695315639579319070470393849658962593937381923571025728286537985464364184478270638900256990102427273465657413765018810068223392281641932939291281641601719697177614718691571545126277065488893413443305488419721348437758662447919691519208361380930837935993957901661348226611878628943671100792914671618971421815143645581882490152265895404858649240865519136439253817184510920185815002361214642415586825842653361851659770931679639376938078417552928656056305143270354625282920566636337049348035997919876671822305613316304941992922783205476056688147279330770936523879561718123723821550757044098204287786229258210853954346819040130724251492522354149119040661075863769189908960518116548541060720020785116659840513814703804562475459346363077306986353297090896921474086133304511247558941345563498516842300345163071882220565389005958228347758164436218606659671281066270441323353768072540889994787479612834908023349757484906464357864685561946751691967805199481808140336931837192043417132231087605582318896326302318299549686471653490660836435288943676657182815357056316664077783732284544667947219554866326595713214135177366960836093456184549967213782170559541375555832666820160136360782709250319710003647131779623244292300832854823465393585258895053916365528793673195328124639403564219966209312730151070094236399357155941454609626572249718419704640834033571716470527391961561609586960005660249275404704206422940714207629695175157443564527853100547621495230085865200822519375638157276541055193838899746692965462158373841739603356904638451425292981556579024291603554593067855395780402567899987018469832359956194189754360256853601826783188092566847109825145241378299073184308251894259875461347963740190564224298174529928748703286976360602469662211665783763432663478945553804799113602854035341707158025500376972007254601798430697910858846143582871060411268852943719316337822296170041529938141333620241791110102905432459871517523037699843045016031309758873911198648924852010914124558810878057089725190382915267884551822759563931082141271413265088116152189707314718170307312003556339573488869724094595985030304631616845743283826213804895671519969048033527157839297344204232766423213624771245792999424578847100786890913105389723740493457774146802434743915472690118051536358520100006357680368773261384798095881557597047934014515114191763849786588969155025705505891923689007187914690091854352006989224171877803498064731370370910234930490689783137682743342744195317498253857191954923969595430750004931855164859053607182659804009324853269327848124155640901756720643148254857331693377500514780899359067089878260953605262698880286184006177769343106101771673751324971410009733668417209536801811762247915776758033229738832376084384324254454725794437294999611247615236254454467659632537949883205262538623071716616552730657902048781144500600454286758669166911623393081718184073635611986390553515370892320009304857943132865498434210709563962153918856622651823401720323329294185821253998634289294573289664466774341868530957269579862241804915322622485832468157132737298792383109275259680697029923313646203446461408163063263931451619899943616527436840930678790673420485869317939812892247216363806034353275230391069679050668299006070390073856892616639129656532499782394699576333742855956111755008761429754623124914406037456527519181959036305046682240381984644238122617447420332195931003753920502886223210118628835376377240357140893885015016543710662908820277987035516946458469645554953701080926344399805362438812804182128388999126520338628347653594611625485710515661091565344138757501900021062261526400508782867867467982148536018199382153492111223569270399155451833404105638180889261908527657675801624855363841422176485578862830722543787222434910990574407506839880329263362471815477972466472635878958751780319308921620706238161357492339794277281496206466358870416672346676699445208784640709131218012193319753217252385139511299202807146779376688468915024848922161005876556789239334190845653031496753296322140046852420773647341702348709333905405333921014126635050616848309303502945719734763794425877051428910973629448089158462722834738939224327630374968634347799225886002717458317401030235165320946223144651204539127153854093258118892047922562771821431787837107471721806647758523637782960128482542229548584110254610588020048783823581586421749903167981323476471898270840374968641391495183103668630515918088762410867946269219245967642350120467696744843467646678055452957009217680892147483119729876030554710732467971778273309237205773668209647194787024146355778535378812943240407618245402330180450240466728949948113632815753383245217881261016390243235236886185139138802143853418567553872796695300435439266247209439387815979157096915303829948066432598064594367294212761882487340886352183491762098567410969172105607478692367044801968275033066568946728738456304620680212071999847153788861057596462648119181487002442624290831201759909528099159493101211877105129341776320877470921578477942518143143934026634981788856284754148023455152896004140050358835868086769014715412506666880924034549960169511080543482298150411518651694350761935496694294970630846632471635195682965947819026844973774834988272178129978996591357163904389437203368985083364923388817897375798368626246727382171211550916596924501396021198430606677101919134042605414445831935898903199219854799601252196049374314377862626049197539823793130588438199554761798768056656776736230270192491517689567358885283993016854143939255062647554973660179946286914902251782782923581804272826201319813723826040472208811845072846155610382732047862576671091095523631155012991753711649484909956403841782572280673825536444733723545741095981920152307287790381426300729346626424306090023767266614157238109210509476963172967140045297983514329697283282175271994090522896186328662062394290688407388233442650492903032581670224357317155190686598201399579471405870982221847057959739338696851702932955075049416782962988281050900798940280349311319805904015479808863228297944158483572538817623998719873201904639521918537740524344476293419587527352341032022745998303369816243996918065883840531263339918396072074572107113444592864923796550059165510127288260593198065319057127712351248283175651275029668410853342337556176124562838617243060483884033609062815504832689926267073143181670372766728094011222115589263533831843740445661173268051816440019734121858173680936588689489080848885952231779878221525211584028451711281141061971748066007306112242541077389422406584257738695957353889417498359698218013039653847541563527149777489998368665772594289945714971249871859115091852121694142660909581163047838136362048314649164631899504400081759032979351763594942765796696894259561664639067877161504800021467462410069727930202949974949180352344340667676056149666682201035180418167737155353891411767745099115312220934918359612486370886882043610306564183972524162985770817048827814815968902419037829062200938970734921555529116978588452611594697927457676047319166443693856686928821591949025201251275661259753785348428692990253137691428674918149019198707326406114769819306423073576333795218486880697924647369892395017896856387369672659177787229958946592134118458447063100915257385830448401397470112800711701044214664973166210272921877799822157443854832150277194052697653663477622548031621281261863498842438695623340404086977063964246089429875180374007780799918130112564194948435972860732502477522595466719394027045266794157826784246371765073930685660632673562676135348967044222665160355170735323149713071729631927721572648672525778729284371026446619942316249085234591907028639538837480335686005068886999172143959629499612850307739826154546715118281620416101715408634720227674481077079541528241335681295995981459960077894883760731816548195139057941339357828353394851347571420978966744975045953549738373715142682190439972911814021515751128622169328531256235098111321770742124828624928771270497430193280378592223372556463309772056361440128185058282979172874880095359548015837779080233388115194583800516816197824688398674973402685210075622705512431728713358127036472689113078141032848483800144946296929451884462391823211524901575294621969287035460844935780051131069504850717514596349714795127486841751747116925203675911866212023445918534823602445501218376214550361220200271678216146120499701406526159867391829693577255841274136912679485722785538322139836618534025305865842457919208255300064513770820025876249474940182086135473721270022807780446499863725031843615917668666308739584881240613386440533552928734765158961097972900888198372074436005862276216000613147296396544251768631172979731518162139981638836054679925206518609170832456459352237986340093051569637513723031778170560716100945606869699571086325935811075794333650530297453771977710263525688686180561822767880813014556951355296129474430760148990223825411786199131301909227916583600184477198200791524206105952958393994229709009655732483833370550382874635215375826479570440143361479223630202640948069713231626626461896725702029629582048064146029398869709915320355630597027499990022959717082038990031096918581239620000746787638670187465316087149843212157353363657134745812374125913579366325648713219625902243830917867331606144779886440865030781110366365102107062199446468171896421080889301663592589947333287483878734021052618724320993413695482076632407324936695743992344116157641819480188945509839615375121818203037728317856059801895536613953689382308598495879024874967164499597090812313129300711053328925437842598443658520786529151299439484377143199288014014019627272596125733774744440419152878569067363597300094944509603128414968892782938665321519914784108740996026809436595463183347786425137074637822192095232284031132556903301742122886964401632151379171664254097036986370882351064351770412931667506247562614595507903696713546079188888046600621327914460958823935275606199926303158893033244359038118849622131848548089211907499217934521986729504870803234823114817300582860501919908438485006133594935633915800656993277965298255768838701703040974344485011101880296915905306041100280544653988995888471419821651322299424908066051121338838247213799207558818603177462198591633559286482977838716980355447156531933289248923689869202373641619859253547186962953513994508339147254516522740430085483090824500675905606827212129530281271691359627301139026461023118295708274398895520226697156627414887044565259535587508073422978919163454558750126344141045472124890730616819109838231369801698751923190171991828097342656580095444819153243353192615208259454533256403734439337349353496602670022484349660229352124378055479597843787045450124795154533946283040788532613997180741870311633692443130631254579477211346860785230255505064435887540651268752107934573484526342911773017739539177229173074986228484686204694199170607219075261504544199679105256522463353461581123439237416073420547785138101435014647195145394461657858339792711571807237925696927340726663129083391531856772061297918230353848940034143361041540005697603379107179209876937898620152081062535561870544632995171684847208982922109575561045472784456731153242418015989324146902268725492970881717538047645917650698305538789830702884987239212066789549478062826450397528811182525336634587889332643045893388003440825184475942154953870353168309859088610632155696005343285460582200751993635492415262483241887036768470358671184295468713670150025022309549205183878182516977125265531606036033577440439229046984211781676152393790362321678357573388253873034619502399307087528111303959793290832232041339909608511481309018591600545682780516108832274720883885280496084710013819478266005384000454493347960911363887909675014607634058012038101609053532645906423646964031609166862588767252631838821073077947603797679076507945251997123955739208470740171179595326804067158854392356332486581570964427165090151187483249027491170394951131997674951269756291330702779671878623371422438361247243258062073921352390993205913570650526594500998882266568828305650424332008834985332414984046897169211740270134378938180417165383980601686790410414561959493894763520437906384894419136011627223953989322605803701425580368037051752699949242860914769287482731075937903579194863240798364577548760800917087841688251616273221227534041197236472313279970742774023743553275202490407039401588053926955665017314735943440297277134378479999919547363597663179914946429468609598459669871657488670100429945701716718988944371129836328079930895561109368393833634559315218798958787422781848386080591701982621276543553937409443933815229009967943805390901211869883592513265284179988105132520920170227426292249583609717218224517762093712019804081353476702346881944414226804838688401522614496383659330838372553245226783737619819869866436702788365003465574552628294866993116420162908797038882237720386644284121202375365152875246173683842050258909044876325867174286851021018049258589354807367538948747533962774918255828994417426080165317199107415939078659377665676155687224777937189192950986617409221498512726531401294321613418082738426468883831499580287030817388007274459055561672926973222937057568379362215561836296506119353415922834369212474604523210258717277550896826482269947494881898002876027653461049235890739299382774712537246048999849470690000657365915640725288438726940350855263601001283152980505892132073384796136240549601134969706013528327022601639247013164999173106423770412596810141991461743298080134419080951909091626491542904866320974330310592798058590868422011348343462660323912932031656470579555462510585699639634067544111588036392049525931869748194758358131000170416010120083837959035192013808562986782391962929549168507652693198158408017342692573268431573945673169214080303106615709287514611781212481379980027202767750505596223307996249651464284525528140609636425832754062855934280504246694635854855975204363068437039963573251962018966668318374772503966374124901575930327361541928243900857176902561136964947120549519076649662210257787640399529698578399552432930017444711994906058518053029568346764304441363705385060776434162048393427794795936213539894674028794378646618134314054160627207283654849333769836951244764136032124944691454476043920805716918618373670278129398978820514774652477638702754507083570377984154120183768387074519824786839168310972991619588478505160099832868755322794705076532962841773641718516132045634438030852777536133292014062545668109527514414719175016653807027139054565590262859917228640101388785190889200568178834864501661051941504557569462143446660042499773973923860373453336676586478169855072655726171344921241001449257759054179421927956247765415082054414387276454517515789739234175459369597568721136072130740300080608830614283938895032176326070440512421481013785070412730578387074354533262286037123837619828971202206162008124356774630560735760754582505384433833228588977066158845273135696063421779813007815365891970521344703531919956479718946725231561611433723870983445682512313498109550234948038323508640624077892989233269379513094596793024632424235355543769333666507916832481659300254501879058508863509459137036646281364116659094218731192659269032850264076198725301179279867660665519101582118638061906400655345569227088358343743297839498502451257646580525196594471442986089007200725056098823157689883976657524293844418348622377313968892807001041254798360899905334673651508200333313870034923613984181673224704940913198776446823262944467990934315600667354815140485103691004553639837448816000790330735028271445699675025664683086516213978760079483268834244630327335027049287701080264351747518936987174585643107964647458453514952171478923471308935294336092874998922459414904573593000947990036040527278578323708471462733436659521079202937639607330413222105117324163023341478041119669327771681305205637361274758214667455354180880025608518483020462649440169957890587899840668737244753042777712780329465067430073414587049064796364801102970156413948852232135642240897053077534411132508289683705189477318404321564489559161842970420593701947789057936991061532226108213670396593972985477692275299547034382329693484217351778783665901813461881533584881563672453872194731571997164010071607884918132718429551571340004214804869755004766589149699918990770348058908825333250276417095890802010684380409316306631282068263410612498803375344172132000779479164209476948902352549049263768781509374851051616219980141719439402345700912202275713321888919699157222392846640976114744744561522757152831014773386788061767783359293914382078847959831488050946132951999236792089489490109038500832146783548051117227052229775330341748072361191501358577050775515804700005600865206784631982273930238259010596929404018735493892056323022261503894128014584149145895898409086510596918088960885133095417311963423573852067261844440007572035183208291857886479635054784334696702166295765399094753807048501992270372205476121144457584297158961323294133373195408513681798282613240370312517228470262527544804123334947107942457798881078837349418839858942877650800625012869284803018829145151905283930143120463000867104031490683045281793757612534662977084539358420939116329272861359753155177970854016150660454215367495381150752372085552155032636234922417391249247070233368590468157054341466328470891113609048523647274595330079274499415115352520046179280211283786568110419949903846113703015297732261413651815295258392580815780316485410277675057839789189921909224134306551266021794747707951899910643409167692370255188236264379453427202869896581492752237094504428935278915090099595422112098334660829908415078505376083776873005421615534885119326158746020190624225375516930612724982304878888896538001126900890066669116564233778781730521831084058544432556203746347008444529096646310757321444288429538762152216212876444809207910020931583484645122579520007970389080862148812328436179228167786188375561682305199111759426662322849396601398789901864002809476612098757894485716159233403544339583006094856467372792796311973137674479946078301949885455265241450852940029983449901167709236284593924561880228854865824806041616586934450256513140299465629866658465694089540883531472849288558230299862147780193786288295537073463804682067658637079664209037291019145942847396209596817146330333934728719139106049437663775645544867553384962115989008042749265636877865068268365284674435466774380808624814760055422105598353719583959812129193741035458219458985093056587593780065469426159049956981518872806379638510522742202169035127190230709332059535348285851805753245209292733168302579299943245092837105579458720247437392729305441201107086114223409352648687795020148723689937790292904032015212770750575562041743831824184675390328393563326033923593341097387955798914021730753700498578594135128768162080316689155833058090515457630578312588012468615686568448895550457552948980394204502406649413088628871965371094902144004495939361490724772839248276241629600116117023428731284719613689672884372349891166982699591829423561485485160317620468292666073761065793035825117723993263843120395675086059565061502069719625732704447663797079577913833823365232591617873775638460093467604235785102797956000476298502887212549545542327790935997907317805999129481500852101723322388435342331657163260761404941843375228727665486222166990631459567357585730533705640549901801425824729157820088803257922199080980427761331233314129748243479572751647196107820159167698591693864399318281093054446292100619085928243929732180000311593239447923010488454945124920553792164118005150884518514003178187485170086076806700674610105315576701808224524239299946432668032258267301908478222919175689587472918963963967422603111840104333389277419696308567221049619291613857299123776145026457018627964659077480951749745298764461591443611316727948818441171145625619056610431620454332103752075380684680705334658452985991265788833516816598470786307912781377079805008049827148547013084931141869140744851720675533721395272455535226035775665909089433587552798770058834771592949996466857062337332605230503010581830589130376772172480821818485122948767456727948194476531771072158701861513739863872712199048118844420636784759599370569984249374877237634216756784872318436693626621835155003337598566489504836932567857099985206770812051934345576447249598251897803347087447790787016950232268511714314353231147599424924220884056169423301951513395347143330004354633786633767954734030288078221396109872479959451570185662617016200032414430802943065673425219047552003278595956165625085866913047697322865348521370722731455639074415762745877842634126349399412262161229963989963090712355304711174522130248728001624854558646949025512671326834545994004580135743826030121744906269166310206639657809822669201890944572735194731452704697408577034484248459490895381217248613636190049651157623743917935576154484780696467559816170214930504492077198036444444856352738459305346893363584553777576666007322691374460660307182466976018157736270682219396173755462092438992209185356603490969257252457257687357224463518522737484894909169641684574230849155900578882732067582094166036046984903177482195440493314828229902227349881788924725563196386450573900828857569893308686281666162429102909945092897687332262463261647283991769392729932142708332109402001394530970712449710676352604143675005211513890579583866713358035244588308499975314949807960455961224119909195571348742209358592781578786200481591209909882183747662779844207592639205346921403160080251459398933210570560463984950828921999286277539552637861666229016880486580880535435386577274148620642800580207957576293122067680851664324380294404723202409534184187389778498023943277966520199869899214492280938740168088180971095847301066960214746696044002838375512158270848787200896605180284890759031552583977901661498463670261994662178969858162861710012469349150894750442320369150781538819826316347508802609616547208261655008018313237416817986082137644924196310752220533634379361151156427828230501725364632094071766502703670573474053593153379710039689715913903282309694524505556891754999875344827985285021092026022079959075705396052932383843327447305151994956661607091684321473852049517851975695787962611546796970127493552321263519672718037400267874195431488569284979911663211289716039614918760799891846983283548973398355913800335915659899382531264319232654675032411987838303905354605570969479137138997213983482648856865716835675054208294429910439900608065638784260092016266447198146188903748730536601061529204153207717440464327933910814526313440421716542290931893354682518984048322250487240600755187617776274528144467223871394458842750496634639834403578456052474554160848192331437393344825892858594495150544374828635960949718751231761268579547124654446767587367736543296837829909686559078273456257792245040188045928685217817726727672638956815403819295119793471189712514288128410371191140885778636020844493282982791784596117194592337477083381811678274527001855176479234692135075668171055007582960640952083447943333046166295128161270147530694281272659955861082538024044778643942526027026492826966039572680449372234623734415193488274787772711994401328450511145021001297317868144849409998955767312116610964362741915400603512900798780478485115951104755805222739658692606787700306551947091724666197651551147862094968817574187044893226793617801771200788994725237950820291648577997783539076373985335874705765860138411406660213332997183579462818759106058424832369061021861224474909760353435856333620203319634514643480039755336664539116370254764795276008743372358023223910827045872747262678824980348001341186139671078320632877540765870975118278826935693768384003261167260824460578309513863812240190139158092818461128533327105488735986551052715643409311251238735306303024823950446706055506768843395031777284523339940792142954573781118160489565171161447319273492928159327488297408547793413478394481602975817121345206618173928331256379159899931197811195362382806934301961198535157286243056816809483463014979359470933064178733277262609990976509969861468882843298067608661790958160841157211095697452173696254189453675103342710298884630314519840592053556725318350312596517938316202254699149602537544327385323020421850173206060285267527907631818600129837938763548371999029806156168364196526436779456447709850043659096014968263296589433983092313659199129325360161006767266013527949768018249836940854008008360543320374892459064641293265934633929871205254957952614395243662673370143688356399972085228977094515250857571709766561772866764796972049333823563747177601830718821395737356991238386994539161448301356805831968246916444218345696547716991805031123284148406866040477417094329810930799465154634733957852313660524819677299663526229376250948975782436182512180944974765305936831285540654441877371151325154882681095094272946793994861663258701722087614581545799569430590366981432369211842080200726787812261969751794467635047706846308401954072218203617124546373352334390469795606772235064052972450580839051266302693197473413118909571684300887838744115934904000947377260141523051576707223314663815417130653657633714799769442235303382892505622306504802545986844789587728450196494538483756770017401455028702592662015410695675156646910712423516314588567952026193619842193572379606989430143624367242155051055307038146665767868895754471259670909456248128339232056693973741695261141639490695162611597640076133923692351889847127940416309506810082708583979301919165365839427142502068029832412600931908607289763634813497739530073597580812901808945184096309622257869443753759249455047833124757363044766452269847609318356311668796456940753079145313472138820545179471694330429518087349853529322439558649344302819142901248969372886242759262773469920386744251079514092801539976902438512610884063788365042257041855851814678576045092682537777045364529971971595515685792535049391504565425127561175187558111886696444011055950324535980614873017936261981400813817682418356722532458323377832455807052725220173827861591710621257029269281731755556313873970511270863625918062258166182942713161650707750658568260751059233487821473579906205059618831426118191219639514780120565309663028506707912874176958831628898888587686414399600102403586864432578282139454844904676773954642102963343553285071109423974163107433236543090911662541884316864697096261890025776597671647391039539532918361882030118600566487509560996176664219494574975159141296574905225400452931383241163590704424230614799774345934452870855639017705257005730188340754346510276941536605110544483978304263015889092697303334464432549805145875082136821874914974355165925376001740872698409469999294611268533203317526687168077324534155032073214246180783166001384310993351171503292510531793569217149575500806352780222466073614295672774624562968021897921605381958658891969169910149122171821065228367148441766036795859544895135359389540237356669410837175305981940704814633253842936061900676108531428682131842741352132168738469512348275650570857977634268774562811172290581536486908530010902976722283460539044224023320212133676782225688825576246684762645178326328626974486446007821328310676725928744616141849056684392963064467284880999013480457735019026549682208532789785524306771427493841007995063217440096251033857856244875727088670318658139479638554011656558180736721205158726903918643446997276021819624713447738910689742802309887853449456709894486257639284850188095517758889336126077659628480596300175005108505924376522978405044460880878290120812961142034993920122434791960319092810670801058930420559161608232510233456664881875611967542253575902834374733811833935714172358587051841735999207014236330096159427348315779075073065684383593422856685895545054633158364552647611833789070030869618742366076659771973165836575833076499121349303345379715375568610222910832297482697852347753257208895165566975530972471927960662388203889053084835496385505182898890182718711073696604547588603176744955825155167001239707471719826678903357048698759290863155910186973698381939098202297720996890642199164495686756867479759666013828478508671807194546943615759984325515594755105884442148413621825258381201737350074604156849674177497304425810730943587529213508502692356427599709404685212796006905218775165758223384399832502417170093427952372071571066725197789513960952703325012610354866864354000485571921645552822824409724835501077764702859268515388693215836295564727040570709014846682996870886782987483557898085936936225757973022247238673105789166881772226961475767579134388113261255660749368571437512517468666539278664000167933863272294260346909564981050175453873735269838978339856408322527629252423973941630569048671807133200890435853020078781300870412199469692923924752149037640169400068926815608301982345467556926316664381567483590586017197287957789199226674264642216798706367022625663379380401052281364212658505050025169603798127371344559680447986088529499090097593254479401392191621183974677015746447495189419194084081374069781502982799552005499821211598687601342061297154269619416312612070334075719859659226548524828396789768978440948253697651009748596254653973088250877841327354449791768626271474286576529074567573272359933346390360018888056808455507794959407084912366496046148933660773560208429000489611452343659112588395818690172653660402282867647304968154166035725389460844879600586889130163460153302246931211191994269351896373297882969056709309101075851609746079692778520683499190536979920011995538888364791992483610481308781935958175101502126337025835409750946340266967146587881660641918635625258302062401137014543430452604921066051425205676505650291070337698325508712512964540454502463591566082962479485842789172976631442815494303163806962181410620647710782918991445911231777902071281353221164749174254005979413796512168816233860675680973993273849342305097099748249564732374953563225059683164267815836683059433756484997105209669265603359597281230029401071969452876644107310581893324851504151958957772688089298691346881872124537944691730161709700235724608392455027774346403093735407133600845743022513064169610834291615658700519048658911399881133059270943026848464486394749133580251356854926088066088149754254551781854314661602775128619212535557519250887364428948246480102385204770020789676382760330005173150270619504987580142110643763745981079454220723595425823370791426530602551905647901855806596055116724571867727012342611278815615314067406838799474382571479528546744041689716470648028121016233829586435456247174618915834603779427612865880811745466391097856541977342457617131753660731806278427542905249779921580908790496780338670511576720926041495594121256865977740011900414784726778680279073859792933545537326415587211856036327845717210872730961044222632776717811537206271965152626550172845148847880534545040031485658355226128702887360736575751477828379759596194893019807937123836792765878808175233987958272505368600977102830105096321711570036975004322199651242987479602766371948773196969348659667307846796222213852490664867887216460335349039470615454733964524604072012719151698794274376219168017921425682038567888226636022353193286889022010458546986692206529576329792309697939203230945304691067925302427949846796299635126579363745611247844531472573704611640637184349286858118692734589352626629790156492995680618204528365768445147015303582163480370258679954712960439705855422316530542697064841448957282941661956452270755757067852020844266677752904922639958834266902627777353410224253680363480299188883557843020700780336792582487783341362749903784466919083755271428572862345176388318088525804270471921963466669042422247743675664913362861515750894682338292064882069021630192382912235300151114285191287699420408752269538382078600238680158359407989659950277099561948438537230309566738708939039092366740674677882183112725196096043736608125822584091106545951821739553646148892992446380190454800211313216656079304276128035133976862600706277467167997517980355957261555602038241916221900463674359707460339775255023387407620454500778817644899546572406669960617176508794703323376743146364470625075281405257406982118824102088189365091528712301882238599797858200836402555964941466727971407903947663966821847629332541026390254368571603899883079183966440026622024409662019911316961619569858348189071839714851276424648359322774333776428946522925393365690967507801165265743384526895217207265861808309574642295890624890670634285375133147149635893115437344426153292587659031147501239008060637712902053240653215801957036806216238401029618327442690467788552216504538410658023310302680304705881116256215565191594324652086818817229039134888829328201095495513885428775349368350177972086449546499359335738714695424331040793549313946651469323629970625830106713141254921686936157021326025543440042903830338451469186739444630952302405671990556115386018531084496915423354035122992249578034401500897657875998390187953799300597969916515272335652359579018322245468230600553530447177254993665302437795172934166017422548309676939488940198659930967227491702135127920757705161437359532121539804259718574262998869707823356290755076608252689411789038388301681939767609020605576201237120377087423068996146587883613911473470270593096279242280658168484936086752771664418702924980089926994898644651682667201664331967538521620386952454047759100375176817686115876633058914865923056086163002491643658707844416189557315237656617020293887228774464727739472774020410589807979958484372782924584938602798837242545272908676283068066948050560602483639041286197293969724891749440717262933994236865819467200696571440949952438560866615368102304522788637513606044719152493019130803799411020966865447869041389724893175689911113318679900341002388771253673210701209005078420513779046201235267247851195213573592161504296756088777031071081098701064908916775731560892065185172430324585245858787431733572226514178526179557069309146877606311356430033903575944519182734912520323948064440043390426634964039208508671221001601034252432216989436212718918232294643051061014252138157993336805233787988513895167431651045057841892492395446687504057800426840352896643633300637715356444935617717812799165476746726820481020387151335801335416972358637539695924633253453404986670182542615129336432770303016353542414614130768505996652871471664058874118954529370948067015043615754179447092097437954152067996155178567307995066606331159486103666360491712450077635227108305923974081349011042850139025055315627247731639723047156476936057459804518212782269111069685784196073141979984640744252481947120773409955378465515380562474136318463315198625163405228247693647547033662731974765443494287418771853069611818042649897890712905357255286400528543018880015821604805316844773041356925897145941013271932332432412806950895244424793682836973850758216590674468496248005246090519531580756531135828554203887847278686373919593359600654919666885420563870428196513975710133908960857637316033114086051957606967522676298097005748344305172689494973854770033801155393812361357867654850683524914253963035865078192567202932199039577693396921291401422024788667538540767123045451002152648698726766351120332843580015046166630842083550423287220371584942044372730734863228538260593092346161533231383156048772274366343311218625635589458572120772900566950874665593333474931064679793698049342738346974474738309366500675922207779713772944031102414311482423345382252508283921196803694042378909833114908252014662746081805391296732702223434104537742773317563502333049798798493142859039181033074699608158439056514926959455759548939131179063327668595447017535891713028565602910640299780276114343401024573034558367711557368262481848180130629970473379295421031654029737486801566989567808300461101317224398228717685881474240395326127294401261302966582075600645432310777603522130503853319994584795879492027941405453570318261292817211830053173015065470342594623728973056093757452826866452588932804301483043461186652284999835514359252974945583036168853286616374706868456068669184957717907471201145976415237331765097599860771991116399900271042347567282808165015810199660436983051090336968591501505173451810993105387448019231813909706788851179485105650211741931618697812172721503361910504313916054706141894113656920504369486547823280617281334637318724235021755607150819402039702296014444212328925169279360467443021105413470958460863661900258278839758700940770303488398558738696496817381877280960142211199628588945045278622760106122946103481413927280908959509150185686722815179924655378915571208960678507955310488298958632946984329673696798046946776259415859182055881513358150943660018243560249944514105544554835014779988945593560682157097867261244556056279790292432802333825738763198253974323174136599736691671602474111231526055160974848278455032965734622926144112720256404797805901202896310649662350569221008935341462080265434738478187961510967218558559997132778668729723715231540298057466312533269986255414909075778213496582457946007637919520907149378254526043875312248289182189064071124998121458980674173250443133671149110170952745765440801824618079302866303163424383773307189628280284226266094982818338699183688811173416278751219208070394923278083718334139630497566362745190696427280684815289431074525383484503318315080766808488077862724022740143296622660517360045421715039202451549300379484075959053352399571986332552814609433062486090754775797037550010149554327709898309028203561813050475725463839341958336209242010103230893779374486217456148796772795775303841983346622882283665507783790854945712973707443169743771932584484548423674600043416513092685068149668933899261925597540547707670340587282084011385332261353046364589932049555117497482240343709301052664964155384376786344273167809515287324051839204254158282512272377640742779124972627429675817159736150148847737367738928663121751735841970783405316528553837562930483951534918820197394051728256264166754039277239247329301422449700025424372343950332076203191124496927213417161406088520950614732911869956187402418628229603859309674010330022310255803774442270543983449015376311581486904968031267882271148803690066792214650084867650891625868651183788825722765645030651373143736548179039700058565481481528886065802030358090173673400448722211472379847508573465209678291209206388207786830774544264021582842238636895574998296894893356614861540371587805668229479171104901554700820518675664119173649662053104457104268791804715511142031440571653648380059041135671078456448129101252186628801154431257833250398600154729945075062466010635600591083925264549940938355225847521788967769012798221211516785132581925199403867733374691775368567573423598354598719359736681046960750245935324987132259045442156047949121338850506304208799294943337255047367180191671199586373404190265570142804109382759583281452783560851292803456238437818746732174292563656542504087529601637710042690812294656071652432170579154604524669319826259826263787298422738978758409160605137685389317805396865773016350905886069100751269728503637031930861368959037501159035799659835200625537820791654783236620665270947389780921974015960327252273029830487687865058754008461376717877012267276747990939021030926890261396615033899064395033864181066947402928132531748792721953481240967930698616228661180784772780079382773981235835075255498154483766860064445312463931066066433848242046582417425970153851774139758969404361883332646727429344333341755946595028178046042821688649071889142874244079465816484731819389047278224256986841804133401333171915667638581515050036494677586455579158880160557932051593568361951322360834595233658553965576616939293801212373497679561321753605809401499944489383064519367566405402815078216584320509654991967519307018163109459991398101894772810780262548624499435131055241046073909938000803078967305278045572040119030615126834719172821760762506139277370838435089113224478970873452859918300117530553007625721655114582844403877530598720455992951275514069830684977853219448004802562567548662469932099050995944325873008037231277957171597426111500284639691580526382463983033851572562356877650463918475434602044760842023450606175682953961117014771098250149205272045332176579514670249083511064723659894535264422422349197724768065064450835661253603603224209426820830865591793009714419572614674210477763075381763648979737111899578304209567855065975316116816842685974118137059697057779367967554842987662714474652073631756945041366568919216403874187340328138088808852226381933289688734763244093106063698217484848247097579962140626531789529875931890245428924572182295169672020042001558969472461428598999404572457551939750684056713703033089744856377402068901457562412420981961100938738793607842404533240591114935884834635083165840097625599985285516561909401610351268893899138600173600662310877797944805315216977402604516745749097938720580953194911620339306037205355783740919162945817098921041116801698316677356452333560294258133920883571083198896572022460953801142859283717563006962177004259210023943237253434116722285428241799240789376923420586012598314611719746162079580361208192567598042644643248958856920391589359881902959565806093614839426931083187201682700361352639329616636189463175478979262442956424982255948687241154669890065019603088617286917071866442001665035986507274038313835011606163822964622314968316007883112002936671591815488955126922951392785505650707330740117697791244459785273284379388595266360507094073152593013749702306296648753008994119644537625550342964719722676989029545737656273819554067652452328532075741376040527508752322845455694783968932195036092964335169353894326248907698288795849863928962184491129613681192696978324447120752258982157452886932269067549081624526078964727362446506230647103070984936137890704293690112758952310642941168937415578491950762839675727797422897500362638279129480713691691596499974604220897033355021081756356179335488663655725652795090203378842818385695073897058317749638579579320156640481194039096019182991290710329565252988503094626299211931999971339916966264478773241673446259191308994071039455785267711048665323076017565442576338895544068196624478521699516860628476583835470369218399898001329500305190791437448305719301121100702751746528671797349921350819121541368034107635858361316774267279456038916000133004937549867129454937839042462542458781442345671892774142817545939966159630587861842737241968406175793555208626932963365564252790068964240075711538191804900330586788859190193850646818818232240060621781706892339372505358893239024522684276839004782447455433714633001919976754223289709947668661254868217842949029914071517724776017931454510103992411287003188596096152757547835128847416679301663518357875816040013819442814976536647563939218980623888249507885134258793763369379544582370063430022544112804371211147781692569719393569060751866636377969974061290660834409940474129505560408336941388180846368374330080074547166365157558064132920763852895544748380332383763968919455314798871925950921517484169205419238747955296761861905426243502429078372629794941979790356303884020205184891410748639781640235404923564051503918723587479467640517088538871886846104741121507082679172656100706709259281686415391635732811830591143702176628322596199038859906894629027915405376187469878792024127210308900893854336800823517505946836106863270345015609702392286400511203662915158581041641745412337650520073692969353082609409942469432594085203327497413668003589469741436650371839539665868603267781254242485866541301087291999750408094788097672015170564268607254883551953833485351008383726031817420437850545386596610164708536205183978670947346675497992417053095017388607847135240460346141360766829154443083105902621454611075085336569145155460265937607868044666052055336616649117974256035240777541123366340394895855414674372258349193955607101628708970654565421056430440205040260241154681806323466451273654642978709499750504782143368461058625715089099583425096313740021979079679258088499922294710472071031762803633114288506268904817066732252342714313747653080645812238723985112348285810681692096702895815497920358230186999074084342137891219046879557912481395865808515000382796752934799457224753350562442672210164406344187523441148734759549058805235440097649907193956163916202694084902792540446298358299134430474415457328040233768269220750645108703543301052606132038356139867262357844080697357434553174446359338652562228551356639016741364812955884322666617954760521267547156939818448937524965526603323027069781082969515644625346265642551105948920889760900547797162589994875840548310307477121033773250536340206853186012270316406648705924498398099668782106837069703417075056407039531609552925161223779199693910153554229020610513168876931431060410275033299321806060148584805679410960471089255221398358655112402051962983917355502725374810076296527686969985368694544501446317325991831347437411607451764489674147511177815235370866132661677884011593920546583400002547554330960563455307549008384364196523339112452083688834509935111416787720611113274377519522802997496178969587350776028438944177358942972254585333373552478075516029613405135475588538544466180181521612487832312138010702307963030784468663259437041677551562375912433739771871565968474262167650808656285755593410764934659284692621738039745887519035071409043092238324621240607523904450939943238227111758146666074332756432563880707479284154664325236655007045789807990587412980067442313092632104444597464521467597084923504371238149241493242676789505164142095896055424493127991484740674577712256398930188843143313796755021418876873561554075882542113519926934079777480846427007551474861453876226653440191178230749777194934323595864496723285045085032628492800628826405476253645110617411568931833613375836918195911718794396776264588520778556788944780553637609264283758007319631397477493441008418010020566403398140693409072589784736250183401933955858525483423608153512135125722621025104827453996449608777297583149654365583567212856168478306155410843367252313147290390690919126329549402391989786014261334512846501907487215825714390439598254727869280031587121909893171480398172082252337541871261548662593828158052586890077545674620147780850207455038874429949286199502998194957374881624380636176923543704427093809383254029831100037886353655807839299726824177782752509894487485402930448926379869111740470768283626251869779193812224787822701172062707712550534649767648491296116704269437345466772396217029508391983148860556587565916210083479304685464460554920613090961526520932121667883414655420494283091464382182782629769904750643255109666402634841668279934941284900331304808677863140992140993236661520932296610645479332481400748617718987520573169985305853964032953914541132864504462419808545750101655484074201331853742550613631354842273407901229729130006995948199882421070279423499494994559203770271357784725587597963670061568848194923520752922488274118448815628999763847376243832030162898916880425029600912969963502565601441158425511056769327489077772906037743592257783468109774635285808924985862721695759910201174196764645096896897857017564012090688551824929161797948289379267246039757969776801320219713624462375154485595136061008365674419624208224103694416010411895379650484270509357815374372522160823635588409157856798066540084294709016937802241881488361181765387932076462797020101795088489848385390537433395897600240828792104325198859410708882887080223578416594437650109688313494633991000829443683005736102241246374990729885679283896222117973512523195711851192457441663916223755887023118317201291973549692918205246525805384967334450541198759156457454676937677645276683277754223181771217391671936975289342320389048263138408752873194357559288339591108203064020170698255156020370349464553941948683383782681981525311983697352789476164203683409940588469467371728940947713900253716567520313950184540759276153135408204838613401831704450143062138052965781000457487103274980095694778043486982158905627489034987654793880398238041699715557823505666004658897923924639775229193470178277702588422066499183999145035484839297447953313208560192613389372822035348270063254720276917050310760226095669955771964617512511725127139272034291304526602693080208857304839000083951986359557741124645047989833805095614798545289203352554398795065670205210475871997323905752456545631971530504779856893150848286721785106656430874724394463648799865246468956472938642425931521376782705820968917109491308970388860972638766646328805483321485269629797601105314313701161436486446639502546397326715449759714992926080087074839124103040773010557076628063224835305033294555258460415768174264320677899388043413647120886642223427442821446425501909515412324894492428133637293221549013977802483764287452708270597925703704240722377627056296388463569707653292014085644443618484098992543377025239857390495759250091790311640957707451443436200976599051202539328437937171207289801651891521620172511561208777971764954471743804428788794510974287943194214118210107141276291961799011584141507026972221032312680852773382476898159978139220671067196902792703499472925383153590853076699834872959315893287100861408281746752522489100114242804483397675656907823455402692007233299054589278585452065157279683356508875568799381927078583276410096037309886936169394336991195043669885002628546106489575436491909706127040406351078486718440614595268244773046948454907364719564983767687722287597349208161834432364061489582793745165837721512650941689705695436072633319096925903841359132381682341003208981545763384397542032888058989040537195844588768575270589019953649609239603903284895465591575367832990910998695018510296383658750092951124422402678291435854007226241932141114487775137050382780345098273264624948846648633369494046501648438558654838265550247568798911915639229888274521821037383570658750265400886778626240669041929551585360735213880185895442705832947053479957213863547655423642036961831966335023008183431601045111206861895819351105345619380126166190577067257355886149956040659076962534604184313418939470595929020391838446041326898874330591468791429645842977527751932122102369191449243791496401007908135932055784535328185660184638366088897878766709894646117992192763849818827952249988814194660389169363524628085157711775433199316506166120500654517601398945403589220884885092501357210542390161351560352679035678718565693388054582514795967728284609252965189730234777982638089853900151690371824736853314942529033833827860100815248085322985268679055077460538777230224047655541072708135505613083645390857459521181313574337877741949280537691784869355815565711734969214849263325810918818569320547579970902824802994183843726280562504519165907911435728494970405016093405111159567127849206136831386594905820000703651963012336647139950718555270239082309872743104987955540139318426364304369414568522466886394880652095194246188910027756799115789746838419600403692161722595433154049373569543468623268881152331532334524915654106637078208516064842478529155871958122889024183930517135955846127633861580842511540612386135165162950950954023606149615140907838048079154584601822949699288526897233954499063170491397457235585091862542471334103771788640784092811606775312762925720134097311908535870804136811187396443742650570463537782777984807887827178650166153930891062843386105442239691397952147779223172546100218104788708917194830709131529487523818402580395569139771339794478539931800761476969775682934082302702942187741909076394862992801364992998765969284339947094709106340668803283717495734412017678639968457679450892169389908297385198293487958417107143844394680161938970247249181579764317818128119205198166061575969665690258362313466565491606596102792843794871549966533917955322968810735636456500993798521838211785743628407705386833881728231772716830365134693458683729438899624731659401841319760775117304759859712903775151855550668442183221323946042117357074791785311265948039435660601814873119374901096212456559499654427502495425352392664466877979408959031920627407564269624388505360492892148889697323458929066737280055381870368639009127997666057177018049536602784685418959102180884861600688583641503959447595002209639307216630389863194657832168590422650128637729017252374914069066965574253816417019706302617987703139415446628867976472907616207444051376013708799155465294330817189871270721268120800158423146638170240348792736492018734451053502480756072418242386751749930387926944563766319794024259257739596448068661151848730586307394026007311220229992959878345972607259879018691046192057463118026378751904282371657638504842789039643916965208799908588516335545432914967843529897832214184640198851005888897886106690674690094143695938630442586551988092906398970980104913950329985720996285493401940918130858445733476290384534157040462973061659640123489203322562235854909420474822360154693976928661149633522811080368723975100811759676365532299699646153834899917185117520026592392197937779068125756581692618206807958308717640078765942980011275848905668483083027364785060972098139766967854762651325396053552855263460896439080419452994812131617616922330073936253292253078524339533831917845461328079801610452704612317740868406714712494660016834750536206991959585463734710784331491907355891075072647198102093956851420223342442758594870379861108949874500229557080447982478862959038156607559684256194284012546186999565133351807461029063926679811080659544430715663494614943546357951006010806924918007843364646827566360690385152780250754006804040298246097353392708807981905863958724993497442147880644562369840056577573557025379215270896277381412683378341926705324377081580860572395361411550404231395805918767278019911592330704865474747014377519823306721919531546829859928578782764143731014309989152625667487561682031914144331334798274444402763624560750860283356279833534677455970491187324681129406017907307418348658844694290345091720172059565662145864196572900193889729521314510704894611133635644377906939235398843094885991325646166577324720135056417904880074629460738577615339878771737219082301305122203815041132627846257654562359959877426350256060378732917443048956377233858500552345326026001213711994501003909368030250410724564542380757280214460516254223971456677514080173156792211227149003858402020690121768834929522663758077107148390617169162317778130815560961486450069203593499435355602342441591179434924778210880548226305909477072148204098369814683494549854726320328397612944871898026739440029497897348311787660025004649890860430218235628872146433899918844650917699088003054486510433135814125427006740685633098861192523083338137071122284920626330047059502756712536543406717934622767991088965790900199161193748078758061188982144139305742624975975877600112060022383622623320409737285615794786443115006779351746725702222911905444577543017312483431223054273498950159657881451719785732617844803332165763993524688389476729040428895548562182312596835452279456044339495372957562567459188623479673448977694489653385503476364506528423533616013300886049491885976844192368456631719409554829225312876331940918365600191635018093445046127644688833574508519331914518543901990854057797746983236027129992729209541186307241813620212141300866079854519831291596197236032356641141863982558749677736754078559815607106494572741694921729825511926097513490237595151908008751354777827289407501466208077449357137413160996910395092522147956916799220120530960306076184169132610957101031923448826934845645673820838744663385717652747583908376510362114468435724275435694603491028189508431764944163350741709227681631163505850482517002274017712489409502805653233789749792717849725319194183065716051484937410046578874594921118210049941916248745690999796835256658426558860117338308738005957594861767570715870125338506094309054072729573180651562323061052870774317090185653749780902689084034959827402439689351541999477928594092303884502901563966883274753777469741143191314073648608986417370593258932117284258506462456493111993266406720140304926392353812801661708592171758103541762184992246429121990496464832927287788949692941712822162755814285676023027811358048707097488839736876404166612087357392650308184462732569002647339198476094494632321853871729503170663582202629136469788251458852654465767781339559660585002910465853887148556660916084596471239013225594968481215896011923795270648199512016041204050282981111176157419522204249248256616637565502444343947238519690794844698154994794990460046166296219678627261565168145649169517745044490992930732252238196343232085185439840503903825050707192673516512161166718005309128827334119554621380357173970129431717498958639559243589454551190467724202286800186274745298414551411962375171019913875243069710802591231054434124340374992408001966038584512097821543172017556106320017637363428078392364396455061078145196136915067894315780612211198827411610940430612919035687306862281493051321812711638156680370304043265876660121137065848541888316823342154515093838311857266008778850272931399708835007274065578197379251301027368897069482971315680115054788378850970177772581267247319653549403123352099496144068773178747995620753136500996002821173518736071490548517645871894578849750650239301878848069830138456775906661094296080079444886730091998488857479436237468212420688378318982395102582022815618970380036585910715386362456562275157479149659985658790641665946193770701228081813070190445009386948373977609466688404674301930088874986799529536992533401512782734983771351015142284299021725346228563519466833102563218968219925081617328309162571174034407239324979955766634335112267837238327443994269212034661861726916965258534675831248717130799568066872153041890235703678700418335546618239516328430451997706975232412483135735443056329219604052543341193189403155487802848729287287607283438034038344981203153205543762556810043031050306112974746257112980413889633986110380056215601138670088830911918544259288456451980465067438034086353712227506184091636539608180851074477004630582478038124425569951548918747795443640600135835307001562758314375507680181508477871786549162022696159138448395027684601586562075162759813821270429039460127804732027339027948307550956125431759147260860412356187826977939840664126763339827750370481353127161010490513344192477865385998498945603255687470586855190273966738466731441881558669617743042996092051662570428285347834050141595371499383645896316582754075802396682195966522653206469179969682528810431315006779209240218614558136128643958584708288056495198241199035336365154295216386137035998582339887767905706695324132293933989461194737128659800074696350631184414474237217120896639862936976200485167075611722023164776026519455531099021827303757885451589690466514739972872605405130584518935825146669962628485725537857306102851256266216711855237643965914009397008598952440611353503849686192324794249888199676028400966315904810209216863589083057578936262098710679582367162967779624609907746089042783293518302636104200028425189534689653197069045158678669133716914604554568207729805326478961056080876206069274864613050578716302861667209830384713364829312942150587284346181793240339717033964164328799030431055197769765784494473604182180232832062168612780548453987413660312264021419315240207364894710338305276671433464554361201199065927091277808241914215508894853501670588990489782282186912793773197198348597682399980061744430163877033032409636006488571461441904140279323871566804338255038414422681871697187274467890432824973658193927798752761229486509697051134424007379475126044477008523619954689164698703857039130917833131738154631757841265289888893733654184075550126749841899991361949335766143271680213914712277545694324154817759070049618231159769626283570591090028716114241605352070652493488006170952944379023382921813582807793137943559310062493867003937580855393314113799774869378376598763176125324137867068542393692186713381456778018900325199155377822907321273713287917837034892206845722288955936646004251621685047888142231312446365473937464931957321823301720036478438196130055012570008212526306599539488034846429816281642446905198456191489646928503523290988464591348263127742675188645027582512067290472512467792363043991351643495896712943212206657708301249202679826715420741535241994490585337580892324835372691851761121098622005917113585359865389475049439841982421122251750648396252416903464083262783127699737564184690572817699040385071266664514092373801223030741115287408790238601742826513527508239773217560220024750276503423214461963909556353565315099449945837490968952987882022849530610360317441720201298534811114441078580962254822945885745674437703666655315845771413469533181060127348727917762338032404333589246107746033358776296873776725523797346151288654168500862519685644230308703587046189895900900152884326693506462724878596714861761107244852817101535451907776719504741727325461123272370381686390403237975202020591163408148921737307987370147543606824619937701674784824808902213131917114499433517525169317221927198415052744261543589842576028914266496513510383069457278251649004622424925075044305648956491412176502228313082498789293439423206497608591033735922279447765792745759442809333122985657357857821599193003981236895087282931844851847132530331847124104418175337413845999608801060452973624293435188608923112544063223011381165722978370570116299659250570486539390845015552121818353553812806042954847762374181749315548928007849642914506935226904996935738700185514679338863192614492781538846536601076014665738450651520087015653367919755767040487888810741189146010738064708144327292166744191152218374956218082005689916738763075374893110573186480921857437844190999480264365449303792823136431403547014206953586862387440056653725944284880238283413457106225925241837233281461032733204982604539993120150240499927827222569853018911646438884426771125816079096205743195240529401670068450856683080954153583938244378345274841252610067995762870462106833580892084921074112596413315219434908271419887673056804853855556217601948365400826372673891548957769863097244042050835132641755388006336735959886611585336820517334957592496562231738893269732568302761054952055414570676769761433561772745110210421936304728512656592496606700341750938054827460643876746351579603671457628479947822803467222760956654034567937590801599743788230726463591139467813044558297304455289972851592635098106295944770289491718933604223561484377094483725295788499661260444229160153438788984969339209558285911926509368775688219039166120681256583020955042076250516889252645844001795625686724810617202957014387162292710259379567946832694205554206893916872651644288959760503622811846140941453182973477669934596833468477386254476843297584785921065192390902960256097105575636418104425357319914254765276827042669399651212132640172388397221401112502886938870267609896584576869087523214943047176009283189009303108983246587152268903577129042909965692222708397759719653449493776781425662459859698610527709131119403307770612569729854979428711731261975313240017579280925372763228117813210545008256479759006330371751878139528532283485878256143362245484769957771802646011723272777922029362826160989383826219139672785152121507182184622827089982364998225232875751234141674022248135906576715327190702433420786705895613493182308929150251508617125566286833733936349285833041176230321310556058017758868659818891513014325986161424820757031096413828311100382772993236524356088865397779228010158277754520034689412030139326768132332564933396963839047496631577005808367634927403283687157688496627041715285383047541975218887002505800735772265340760350828852263243838595115640976930420839453209371175449827168127317936941867161277333675829035140783137915487023473424356492229700610951003779544021060828883461469441286871306195464379903424979258216173938178082372319486915920455237112750934254847769910877693882855500249789833982664963449483262623646369049618144021351830111019855012645954322438439126936346467511501506382855217265429102309554064644547507216133653782925813362649169979256039118917423548023798021427178391150592708426851368462036794594899651317604515321925906624102270490394567900789047671750020403737397024197064470181583790362926159050684361811666257337512006901972288277372652940679578874570099896231240302069782307785120935727220260510874288169430074156749523715845675962950896931011411728511625586264904873019586832815612207313034374904318344168763638241687493791556783259404845766676010594543121740447177634889124210012789705861688126801352530199106195521987537846104875893231557166150678755304818897037316146968205659008674868123996850871704178905657258536171113506386138826100025671174341330252098485769077211676219945448841983711967982889865836735607272324987707572456996722763052674181613887376692571467882339127781377569938527503444335987911802581652831145580903022611427885717262290674047578239689552432635251583255290756740800783700681257537787572038982942884704984226301839025152625495518180392791288109147652333553649815810781696044104599559625049248786243592014553017806179890587007175103128076003682503421156719306683149600360009516384607926730700337494491111859925939228124752146272992126793533409941915582951749464897203733789835563325609717812292495151821004082798727036644576202616786170256103989999293228677712844995327872238183509104674884250177259232239050824213954685464900013446906498887168884625328397650726288858220439638849677891121239655885488152542062585387439101629989869175393133553533990721883053979149411169272068400390960910015070569334891114436658632369252235129473636092607647879081155375343757517025173146981932614537582009991835445635382020638288992440895440129412554000875225821295209856840049355760328400451910583270112457258820500778259677717177317683474989208105195893222834544829104153177387435883082001025516458232005882906845160267861349290686473904696800132252238512728869200314851310799772719335776159753627554211755518029017074628022937615510389685894377508861064253179590975544164598862554773557990748885913958362098584797380730457706993250691006965601360667054278352347869378331626356205229017208842057400630035534555710329269309271159104801290388140537806860355172174328482153921865948310809079865771471177937418024610563907538177022906020993491835163217280366978094817746190684819848042697561035003251096182123688258619838641299879012362670677042799088511416714208304821220004530925359222397336894078949711721469604562419248501608479570559565138439468394571747376538564199075852605492270717895633233645481736238079518476558822742977053459595737056987637406828292781589772966161760213487547725169649767980640819989299545372428460236302373779810045980315460875719923632012064877034908551787515393397370186710632184105162562625749377314282007517130270355246134783708261046476657830674767034796533135453144559300911959800525907852523895905782967848848182565903889548915848601038078235672147813338049018088887782019336749451335157489732464764987838413258274985728409768191102016860794250466181199511959576322687365924985707995895847401921624296315503326162328147903683898984018348495484880114751771876725195266333476102144856374536781455155622441921080057450048144866347268087873228213584887986347743749953861293435069819814899593607282948830444159564799541109768660079912533732425060526372552233766837534032269939986627828235487865721257446333638309508271968138767196143864403393455824698200460524639464478470679468701220202174818357958420853074172570151526666712909318962793365243194541205612308950009539593120087888030478309306213597022856931428248454573132021444623742009348467350894282573383713184597054599514897693744453842906158178270218471436498459501353529206254415069751458447654886730638463098683554884399533706442257492653425500772861578874692569033123611146216353612617098288044130455121012038874055810849962082290099664838709549311521683199901189249927211622193194638026541329471650644268460469155021702285042285039285746157045981331451509692023760923112085578130175088586123827605710064757828928141905759508576857031672457246208935729632813358955758156964887890102250194100629021752710788485055725254610499489158778203929356103182166893733560853917595098553576655018678778275298555900576478914097431948183188537367527257844549164678598398487946972011273838520355662601401199266221686313628916939982425396953059300003028105969795731979484696749289121041260388558576374226669559261083265085629054692950888245212220969781764440194441164600589598761306490865980017224857027703324523468035930438328147112079669641406849707260272056324968103961980181645753629666557282313029181979046493670741912143094763122012668591788360059350524773501135219409710905090569783755269422698975108812066525821949331082808041569650613193240116581325118880744902210147785476129926428504130121832995344883292703817767317377122317266901353594815045771598273631846239682985317481617192600294963719482311863487831454124024587720194575882649187697819846312489098973834143048991689812770124836852063252363541056659956933890541927204044768165579660930437750525739034469879957139363763407042819676843535655712141994952804361176902148010213371514709283339548689856784396703312309783622056654622454793700844361610258968145064427923794419929414400974706160482066856598763094469421362967444023641314856870713643490990058160151939028022599510547711440068548052361612252841313271318486457996480829572907366211156341630997029015730803589548645314237092835270815433833013508842531236641154309437924214094401516674398146231212054346683320869536884815711946267515954841102918830159460889993453970404787963181675110948986778189623043642073313672166247668519207110883404689963370535571559364714070581670114017700249426597588347390181658549888158899499467916825499623825976533960973047920585940440833600239245932643802235209817027878741967882249794650192037264646965550771704734206128126747258806977613292799107565008210026048188761055325273422406385096624452118361027951075237766752758554157889021847285554047846045568241211498899965574092229737669631237451603822116569333741762270991019932207437239430740563046725089173707636996269054663144183059941634851452345422012899121233690315580886874581189767303415695925763658179527329665793358933082657700382111186444825729990369495518071707060495719665237799702975301403486895450971312794149592010601503060421317850223298057893802769683677127712219078826169236602932262941459769008342290755584059978629639101000697436480298079607807588987038587742571226643982641490625428844899396245841692581810710584873896812457171439829536284777691633119606465267232271360137073307132942750210964302127569896986930632501255428648742261134375255690360595843121633477199084848489467198104799611690964083238016112349632855146954527940211520991932791817141471915975440670286332648993252863049537704629661318113132708238231034747309523059241239784161161836333746498171906847844307339000951523809698203586161217353193614886797934123416218391268179874855052583007944055815602273265297951124378932446241394758611878464983319390011268099132209267702613963457299724226746365488581569338506829020299592672427375791367751512469197232846582552012253083855660732472167200352761855778592257105028052386929192925238082091941268563257477672342278004702421069181813349289799907683559620691940219876963266646828753679024707122756674278652197171121074417126519565301718309194994936916088562651962687839835748613259184254771255667824110177646700583282389805134379270859305129418953615645462546552222704817217943136706328939738696699787881365812635032500154855501517330207224672322396077828059915438198435836229161519400943363875807877432689261784142988234125731055183520878495371078247804226527344992179844375247283954055773721636378828208855889746509443297168996691247328757066326937091907269665632636991067745073356898781979636905977226756005559561597643631244321961075883990505837672617296422817835354196419715383986194001509364073385754525733109807246050775111778054467433367567950897354189203091436034328595521432975890795611729406145335259550697009697131076399859732879110916880577542975920010958321492821385715952399117833328651392225042684979118282682717109745996700591512942058116216010987450646622116086213394953372505115962853740467207750189207174026635412200628564699055503874510549293729422638056989330021377558401895762956629165639061422368778006289674838603953868192186052980075008237361898010423991740667113691012185429113621251866001859966107539120630812740599643353860856884279655258630152666316959425958428627384813269661936459036714784042813352106252267092116493322544162352239366525299249115534375156400138275908728495620232915195519423150686090609249415292088157210584561557619404685614881064971550756244905878742902481775139001441421938264069227870917086145387381071033020138341004147832057087714951084939012861509626256521243611182271734548803884920684740611112964172254904817593981996688095082518004713274826668614177103744187381864884705185397724474811381471926339338199386445232068830611276131542851226195127377963800931984137784248393809627003414417393649152896731100923494776855765955547377119579484261884530456372271766682354480817740573369068281745118032599746375716740357551354518246935259424012359864472838709078649295998919567402219462620292486051441640193144246681499790972452396638113209150593227602320752333498452163976392617365447215794341167599937411801853116569551780473872103902183307477087138014710761076320750966962592756410149365055436609202859521655672320408254863610519665549744705696658313677584583330377043790360454166096485791815827420172844422592026097391008801612680170482066835753070703075943587697151126398409821080186373723937928427413101237545935221634014654392701836230131127298982541120630632738573475482904082026712702421822268760874409974598712149618275343599270914756113404920761376720103517486829161199102168468825374727764358901068180122867483735675969245199587159588101063237656950002325017006563689617734682820083497774234572520336127832230315256890771555778312870943489825436618679679480525027653861756272529148922866322313539724862775252734895164988968690316062491079033741783423563766929019818141310255291032479725737600924550616058333814886017067843236474110297356975182343656561651267497354932526598595896549953075819914199003464386903168725225179481087194866884035844602205656759044800784500530995254816238759559132259379676157855591501783699594333079804145256337766937014333440756377622817085635037986510037788643661412281860514337929489083202797333165190411861859492120077619909105520112584570938747122959740953967149089972085221186198650635639464512705342801948895613446154746472735711635308989774425638198891583140604821465110149715042790552268152771605636182538571998193873810105905845432315713084365836472687223261370861590853553507527886958455818632251994382808280777248213768787301734995064233291606784704835236867159678722518451134689081840899174546957432631457265642890414487879006016178472159526537662053955731218377161968841035287323313372338401110069556313484048046818330724256237156747454104663061630978439037566139866053877128922388036460007685653745944906050369166802661423610763203153085013316450892466183050172660591767425549546044759141734906370641632461867349818524819236966777171064977312273846334241988222467232475783176244754378369462694320908215578846497330678874574296659199595660984387264200070014489177287792018183833360277829021142963211823172426343042225254924728099029151264708959698567342408718183946671990759572031234994986110293637874882035673826965203136199481865796170308870165506397647863004623371064147944747924012228354237362080750117575782604222439381038771379734887030626311764160894925223094571681023674913388437625874359254712701322470956074036467539207253151099952087983576461078907714888752535671657265699345614490496318265924470068250663249799689029536575531265060944705467572358359342909697388626116986206124528468609174162497881710151645632011275946684486471925141420567620299031467026170559343411130700219473241258691784826918802685344752000120864839377704734726674678236154796390150733983268618142543167943956469822494493404013234109308734391711063965692971203680039003823822603583208889994052142336534007512759377589115156989021584249268031730192928427511847092496201560768515968425490115422970275266263852119892082951550378126436086152066351683097738871562231389296365533371647041813409592053119310457022807320186222042550356084141605078669200588335438512195520162540890832950468054548248461118261945864809530138144905915535306213385305928884356097048206713484062383614151313464835679740611843376084941886453637592190643069470468834072515540547466748254850906100814190577306583865657595101296991397653898320474447329873002640603268769867500734423985396721626664922440146466573927781598241758885166897012197842649702889966134599921147198375200158216780354627916321241547310500009503227470890788789219035757877248972427073524038440568614444029851901841165735633731063046560975320289545687323713633529956192713974069797924295791534867127988353004402546060186156621732521094011713868322921544053854875905860679755552859281325314090752314365250679137099968725893184405450941528688274413822880831931452060376830935137618826443517518275810919749710276146233106176979239797895950838975720836845491338685041164427497703360541726553874503744700630181820565057411963621211620592239271785304225391601334334644244041712170722556786935926485275167270961513874072809325714394703964747577122335904184401654588735394587233338702732043161033452370214246627594442760337949156474558095732182819882706630323769218014117433306638707779015415401373465488282680138821281212361468967449141533500228251483046542511290868836121262293631320351393678955891016269215638361063379294986106393296960068495924379678652756239735724736198936189535495458751053030911536049174591227769526450848322619909830589953413927549440673265115967501180364232620556139439656644202216313023165017572034971026248268165824250029986931260388103541229532365232572409874257998858652278780729852135197541463007059102656528854170255622052651261675878029415983493744306079418842908743927635408899892945246737451265454830993333505981415003749031217286479029307099592720290551613981963119307961379653922448932750043706089110357293259960615742865629778013326547753110517403990252496858686837610298886851487572408877063883607665143784461702337069347875227715689010873990064645945813358137902254390113941952864211895923960414557846282287521183971084162608769909093097727075064532519997201133676083040445107379760269488399954951935810886444452730257015405433011383652245602784852673473121961679711403579580484806574252991059191900130487384775241522172191498516309065682904724992400105579812842641828286787667816525448988507688090951990234032434612465330412686448462843705291279846369998051409329615576567544037214269203838862695279913461130653227724149614905813917064702421862403372841929883064367442894139859236120266114745842852073682053789895994562692893097090082379361276115693286727950586690659268005242305536124206482374506780865019267415932473697829576423902492497574863151070985332950068228676755952349735918142075848108357687371920845859502651608711644656362521161641446753982986752099864044219289525099985227498149102010242708118759530869687553101696358302906923831026897414733816391126728362185979678115669214884176131395447540831158911069636872142041569288641531970426514841238149906408888884299908929159085532746148359611733083441155069484402795836926613811300365934785959904004358110671064979255727787189152434671202551600803975457554269031536559231903754704956521352285312407585352293297704346830517646279548709420735117483154168959103221149646532940773720384492429464492297094296018069919066783903752669470117150643607393898359098962284213801205406403340792426251871949823824991367946080524911157316622444850747389763029956559627896565337983143983247386574452182085341191168995907880674030282020650775003631007124811449643235413340741318729733098713515898333183635007849268974969991090605800628989173682651156276287116364090887280402455917370023844823084907062847611452467825030085399265605405519494297828303120506923520781625644550696757624262973747236796513012085302408118615840626761458951616305618966523231809405371782901519287926387862525399686390002523545526850260771775141073970479312026484188327288513978931803287081999430396897171723935995830012871250531523699662671672976220871291889147577461058362350167651342489082756194742283580778177940746934600565136191767026458116425799953243560587456853629661624099250160215679482478208226244246232767785722690094766531317482370358990173204576018435268367538722585902351501810632672993738585035029427776780725158862861782247427818912896496681603948596641078034956712980244757373927233194095481001000172518448651856552647622553485437414357878009384344849229063034503569532921837009343970174573089720635432100373283081390614836317351845486380589364050254928100659948635532573639664649935715192336004655453168193506506677524185452958011660011041159076072843666251728780537713927201166356195358543821788506553904932813932948390722494040837854737231511003344996148332902345481682719748140221217502323576349052440762806951988316776924283325051275870783266546681697711804034859092830834696994754622420290670959512403272949262497847027224686407980409370452185313332561201231834607206473392562682370612043616932236806728075530370067300777271419568542091848808421353963728516746251110110909234271121377615918094741131721395869593067191699517969732618184385434176107778202225464293744982153913990479373287846078178723398874414394196274810649350590151270222039541391131233457953944166065555688599463384078846764890638468693252964517562514614635005049981560556690238837579362209999162318852016627526888726224320743491024429135731013724401218270117368231044220849113777209971340195748751476190439423416530126523429286973765622815575621659451327008023306285672179367990397919551114734638411000807909121279308425367658248225649618165881191543958586928639373092738197802517326366061025226469634582801142290860737736705292086184832382602198637384489965201539056439163725403331905172321197487549416212026467484624970000039263992051484544957768425950827346635363337283432213065530889332585328769843725321076431555476078981921262114731861171782969071013735241424810475555277617653090884143728508361508487146812626729277263990032089403018716628094206647838706768447303090040852389152052666702467194885420569185930313310800842910498879833523901471733377240609640763965274623368878325648403292773760182663311677853725290673206393359920225589538076656038538792173869660862330227732998068663503481812867241488367910853344747873340233495808657502589577011774869963057988481927949938643897829992916870734019892068855661379050467414289509383942761805011315419062120275816517088856619810384174120689730753929187724408762991745394539565295277178814818686409642879757415708748820589473379508065646520957179853234748012360245443809953698211245106465316588446921678845120853432023488407738525539101664300967634404220983716359791620801954941657281290790978575590536573234219943116458722062845472606367069509685535579119321290755381344689265201207979949048895735318220183150921955298724614256438199127909965480353406254814755825806838212311329468057404079214747341035931916336519433834666123976726871594026648582103545047237793539299159129950121997801316510297110559930296250887796222149514758806671865575575231524975426839510874745928655098149075392663541425577954136203985375338456915235406106109228661193400000237682172929184695217744301081392567536140683499723668639326433878849256696995100876760705136917282997561262066653681419583253438985292865792768321092684588068110892779704587821435280601558116340923565278895621739656757295686004962707912872806723654480539646119840185310050788313866714817703117861266758966354498198203659037122167738788705233533519378825740001071004333054805960558617661347664771448263698381111814657548831542065176538379211686836777844552724743143450103233956288091642797736224687606410936558591015237253328098638534034847812784686484098284105879626507721978478289192233797391002657975013791928011416325952076236247823850153552973977564633538611037933814579556199887148800053335427428469572315491723990074056306449127024516359454896031918175610254887448571437522816438549284424752125073725363547713618371775036417802991753056608695013174836641881520142154726843328576996682580644125435393269094376564122547592529920526414632004559717943564943678672081766015758995257070048864752077773143445711140135992109762691355267093855812495039414813027483305148353927310891381737892280478194344782033544380330474231843697416717857955881821332831729788524622884492499478731286495028017550166678205058350549081547180732738022633945117410765850328008821715522167570748134026016645662128210244231991786927665866531805940960214190346869723845674655591602437195135933730354911123668111345744289123875336586407061214151460915046721776201237864414415116487420711922527288638807252088095073360629349353915583883606333532506530160771480251166018563925178929935964972682716181955931235252960305604626152833673732942414300106218598403591391411172731058536799326618915675450557493205290611205000146451642716959896594973860258437157266504407066848452987431135994511002783112301143117933787785994593544783215266834935291878323209552499380779746170656638340408098737037216838793652709954225768589539902560524391309431452721194629527915680056444926304766033601977728561946664064484282341077239770462265868072300214915197500818316792111616206330001260176810109764913175430052768613928283415807575938726997551531933449154154897666112877158587728651886372399990662313992784323135798708260988933431824823178131262659099965881791985356563926262600906730844326643652100777962446297295447650778947123606083149153057075146655902724091685055352221243661280697364003819464920131534069289381417920806428014505527110961746850983797887438444588755400336702419813500344900777099759991901983835081238071167847721921370345951983160544848463843090907307662026795329955608475259677104067795104613668869811858475936203648532315986682983205221760975506364740550560386877562159362928536655789516674313379709556214119590633253741866392216555007310535969515862673162075137232760519905444945443773433497788740478971019750407207275322965209705940884454012352388618394354886801946889203959867141592239794152082311969093058084969067683721915730860643235284930099247960609902529771620251062126055378533812832171455102503330052395407766777408310404635263920693658153628599721268228271183706245210620701470795555313632677785369471836088413810612127235809363661371555121020590974230298541967235615298775643797171178344805541058452113393852967463017248692550791435315491195325027006290831682313243692824312975391248254746048998528555103929503482948147948837359063036894641415590768702744088375200660422474214585541963373576056628465424354128397604573197283153345905300766190736112065906991427844902391003528297845255816156501992251931015266146711970622950502930083057752633158459445911422023632898895393836286601211221430524853418787744960396593845708502816838868051714145104650547426596303929913480464346955061955569492436810403084020403952182482380518048419401880193901034381299432794972324759388989214779280953540691837785984835435841520437437958990364041815243595708526464613183610717204385179900066704566340780192954303775890622950399566302851786496446507172522687491063138981594009792886772776129672992489511623584157571571501942815822462192210050282861918580961930013324352648705544829259796489194398721296482349551456353432654888668802922354306113454197476774698647461022866048836965522836342238558088252904818660333713907155954558604620146296239669513347342144594298756287176669140334474673908106636056488059171902162229269287518000778100639607276196755573075127461571693620319204408302506190713914154315108003717768973975641864210498444529255062684954697515199777495051052761090718798192783643091393586529259526690194766334653957879441031956357012289740334695639329164437773499196659485512083470739787140900047941751704968062853020229678917499738263042806324548563113829353225682178508517348560181760867918015552666393655715848384103967789769024656530419706646538036507864361781142097169097382771003787195244776300845440067172360306301589952958710263131224252651325612744333375105820469617618764860931207697706076792661527884649323741027899738377135735615091776149132774662229966187993751727779320829229054760992088249071561142767386791209473000279485454640066894146850779818149599001823001957292505812148815552390690820018539533140200040925518981933878761375722635119219282394149605107865626739907172809877668047965138985823567838348810489629588288813560303545370172489800262065335463391937547904263905959649269152958084499315189989996106510820988923413856155186026555067576148505904613029275012477263461673952965873783466394607166412090590730453529814867576127419243879397761487290907523576186460141482438694182068197542669753964614592842583040083630086392145641205525616228613664413358056149436697186721351660959252360108720761220378257221560395884114559656705955898748802831032889704181200621734389095033398767121552222751708143786173164061734764650040274000658026889033907219866151205809875628407360775835206970284888944006128873103864274570908482668399049351425462678925328281508830785054200228665084447145007806864471770939737310400765897936268381935282297807850508038942256532226953513654712173508649953553381467356677248102989933814201777710936582141924179307572175023064514017458739638348257975402414114453882427950057917376300441630567096231823331721521062460961380122045925357630336549482963474303751094741216294938496921607798179329219706040702977496636591401064635895602888863955091191878397023641794072633372346442327865947690879627100998660770492160334887776640814008281459696678049819705379962700457415951518639382245416165391970405506727355398444179935542368138356973232833058850291182136826424819471823846703301728991581476227354763899205731919084211162886521747328102514140518440090358833327967914668000384020716022980144617583755075067100427960297568639990946429115570312910876952514665659786910718824919680312284153031051142150908966550850995686227241924346004536371336695922115621386411948728450513579794048414831262552887680061874082800188295781796067434607643003361219052259250027316881224150822763848196955943289116060808640680382851163551241316593599195742641164536683581453152433990698887877484130334538962715943233163482500444423361952009598297828540733135969654848919076853830272160494803889793568362026321331544353092275194485326551458895507468510385470486973928993681556015565495020411421888927689271232315470764389273391123227059432185698941161674020992177732516798560839487370115280805275924119939470938203919858361637953281097475856888931886144485867858425467106082318338268386572299233293502478783172876512082066081209507776891192651886654326578176086251372160859999914844938640330343895319227342439673739461075693479949396444376296988521498842752755266377814984103528360215100349359742923951863245237094072765173936868738881833138238194145079943049786681141846606459357101063107219598456815861946613326849292823230174294694207562754755315083433689025404244472207198720755396077000157795509778790753876377232026796354180607544505952931571406615913382577645642310716857974569227395736901861264661924257851125445401619795015118871646689920293415995220085086199941166056083698512504856955797006958900036069532480918145267982649792647961806207949622656777935076245043049263853682015442305411014191870820607653261831944718714210332056503560130716511640896384100791978958777773225798289939069442373021327076389783620198341912339898328349902188058001254008043867670433346718163743436000038871262978280929932364351238466533064892508703839393079718636633209446034688106365306641227196259073557167578096984944504907884895868841316647784219320294650185093873991076826466703533913798782912950234972252269937911696812603569788536558365837469740501640491007510604524880542538058306233359858209209215179545354575270474353611844982249771958658650760398768162176240512416730663413610728087851377476799482237472378161446504871651526582644963266310684625173977803474308893858249050757110823408707539715486898621324412973245139772674885217117029812278427281669730072750117022791586112434290790671339890694501645857079447228191501722212187143918630546542673535441850878197831652657501100777537755343831409468602300967992412907497073622177420444724175069535718673979117678886730182378804195366080646560914670659808495154220250198931098030035937350492923601365346917725553189010452144947692911297339605118018087299017911323544516791425786307591905375803550455888166061284332755726874859262919443074667285441115439880630787806860427598564639050598826794203509992809595837623551328761839296818521739518965973722931735870370826609140706160093458104781547660636467263068481086971153517473583145837969579609378157112130807878571633364953181613710989675741115565929907521144804843517261645230545697809595680923033783930208425518546921396014177982291005867609570657750322430522164488872084262623221006865609124322653135995920178413963979328192677412437571317046222708865433422178071451751873586763227913882661442465303924788920081850950877482182799468950889393963928765266539700931355097353341914186910794752896392551351815327447465321767202780742708516026660025291688017821303569192127673227658330075207680036855856511299968004232378209948935909741787465715395382031187131276355401602075976323247196602193392196286624884275512225818998192705801503880950846223016823130029290461271624544795469300677459094001000278524288142806731619224083842360480315242426006615103750214761383823573976182385773846638675268097933064120843000570785835083355056657576044871872451679359660299461840088697172277918537343639622717424438427724122809301611613826944335587308478323551194369443794063694936283719120904621862301048171920966619546718847863281041013373762585004330157520322071383281523582371177866064253195012085872895441732083865245710146958889668400862553253997838415535993345930856435545147643432965823910685109241687622234621953754376992838239076587810388538606707144241249157516939342007163154352234588761972472551805943425307364112323333503293496301795807827025673458741231542451166459802270490264809740540038565230927813350585657908340602369402946701844110042576902656146549165969103636603996331648667706362230430579228469603079918499825241240337163012987577702629426278895918046592253356358938372647448064702698517312103541853655309613682407345161993756598435086017926674981984277335582823949109593324348023988602459954324395551689998662935459422243524328214695939564448644700024946954489715656518741669212633937329392061593694552019221100992703996693941442261250398043885088620679581448902960277965779676486023503062749157653887010177340080984499907759089344907396534580282849224131998617370168251250899120019464262648780267000922006354403092854827436179378380494933338215863803215747253505330788207435255181372878636230508059768527218760848033097788207865732826794810051061504617391117987674095947677643629686039900988329564350967793798192780875277123994895987768715905667669863319933213298876926490957429142418520899139258147818810424059260970241141974687888321492993181699119351086040264028181330418994801793987711206614693399595582175578818298491589157298619278301054041971623005424127495713598265949450566564626611713796787473722874277164357403707204226235549126910811792465461146630162165891745464677642653943801960990142876925207255419164414749226070155186904899603329433392578371078750914466766366743110119783952753868866785617367514242760847627435091916446823968003225419557399451385443504104395486078167316071357522427295389293920627527543526149702871950552391264827433859947857231446868557736579778488230440278906984075517304472562407149230907812988233897077278041213594741420262606481525041381033678670063998801508997030343744192867175130103906892124201967015841185186658861370748205051763120458461951014148914218923367865924066409465304247602781583147485429633924515120663458773153395666206247531821981455801436273382940692997507443794262030395461736118496835121904010652480491734872850421086290524280184168367849429849318677658624717366438150698748146403947212882973711318282057500497045367097376511315520700665787270148422614481242094401532858737629224894111269462421925639143349742107822762327129629615207070582324543361442649210878684218990921638883290364402716310981815903486637344382980770348637445859997029124094589011241367291631168008116872519620230910142282044627460189594152093741691389699152399054023731772056434586675038864704520557384580572822590595094917595196671567533231085854220117575165337374801126065882582326724245903612952397897491120704503868631826712041656424605444727929776414875020998141331868585936007420073084936237668526736227770268965685598859067254933619813040591509779498467004431171144742098071134348008359766069843578374371012625456675134884092137988117277967125361970974349993828118695054457327114164847626995440685803698151864283725383779403497551632630193223568774837957930447077098028951968114643432781453072361702227992283858003597685847974687972477873999393449219729689655529976272084138017480313514938211844353637261191577131726035749656233240673134002238799387800871765852113013001579875729976060610284981847894472333688799180777149935028592284343481644680548824543304307768812646550132337498218566688387210858736956042645486148391041465099569482961307684764685587578275135076723971488541647457800280425462632569086786418507090487102200389924522262716999425126204228807146477025911788634964884697333137585273673947970767448280208325171642864040496202169776961974365205067795719850587498906827403146835731615100431310237371215927003200922331131517108675027293612435237957469500334240862816363674213716293807181637025857951276193273083835310738578401727679443593784165849330485795621813456703301307577185684743917926183230996056795740198891269663612238024270836481994122537949174661494270369686753740486425973242964930695450676207217282443428041810510372451655067113220302832559234644849711429032123090371535893019825027049161080788839932294718552500435053690862639501051443319821719750990358362766618992058939398908338353253013506570572385646445619243150718437781112835027441646563678339621153671723901904975946295580989867939727397221644113887391975089096867930484006191246036323495578872578935326432470856329050303772259620769813362305413381265012227499025030826650508480183852836970509970480651767774544817744440129549487578979153447777595601181975211810619773549620799729106933875968224157633814556044743643038185165208523406053010508418447210472080358470306804881104796968482476508785328990750728096345938698036506408466971723038235330343420785376123291430321363470634411761087968034678134650674766160787625679650550374160863904418643987054534670489367953283090544257012467777141075296668297713391657047130405317828907186469605823447868027027841599991996618990510973424572680293515063725296838433570224564383401149471582085788725543683416157995744111725762057233872426205197807521180004784299944164123249938450359010577015750823974308835756860288001248261645026301139556786686208530269167262928238485912541589776708574875422779729062559909831631686020543513554848872228800123227081240934074724919417585646965070422873948494063128342035988922810625787758310998909465942076120664922251193424723879392194654336142501522171096057812695592779563416207627061043022651111005708820606750740434726718282434161198573908049119452372480863490829245714616490461206802819802357720442462469251007968275769671040189388985641902688702497506611843737684463038883462349897703377652872405416854606122035462421521158993178678802662360971507069930769806693139151792809492819554866642696193592203405847199911643255217970464472915266028797665854840020439710350612532578164034295962400292280556929178299156085646674682222476840179465255186386776233890786169367885555542614603436653116604303245196996181399340097456775632381974994773991886655502261085160647576563350640628764727299602137554949120209299837692475586614782858950604046041940296805632248022521906908553284836569586210607123512428120615485234426524610411999639260606942199423326690170818698701648385522114933576043929054045019441917863386764333150824982928647919624496717120443010093412669078955558645714115687242998670323555954881549984573424016962088194153947196218470185041279127576820096876426380791271068347654812703398925815001490093730780366978952003070341080856465293160493501134530580539771578642422111187565598094004736216798814119129775922842948172269597235030277970610711229429703407579842272465933883722388908897558758011173152830018037562274036346226305958174145121666679055422974923188255849083792558394155387084871205532854029329864505108417269447341296568445178142645293370935266352605674780922476297742920186842332300945045538893616697357272483296730747640290762225571046053325949918877410594773484615256915901719278956613138326082108706845708985131400105881306644335378151588396371100667867183751319712603273764095994816741831227734664820677763360650722034210121884836975333475211808506035510257611794829401375833303587003659991928835586089857416079525551220679186039841711449807965765184891261744159918217280049927921774513930631629997659428674235684757516692395357371259640986176941509849293175840856205704950040119350111520248550214136071296250912406939665025023924366978773338712696674184413516917623344411212238882151631497379380125977891346815518274269843635111508820505754752091864843937206675757082847999620005561704780374133877591905471067920203634649229091268528678538433373926306135535854806441628593630414255608492429146044516164388159221866417833232077074006514326240202595396209178853519399208446372243950691404750782437830548999945972630240362376521577675545312188022207166871186803011004539817873188459066571832994869803677474053371972937332659711580619496491149016705764514639568028811365684392008259893893117604851642356697080060015406571809761932785234027465840186162513299769547869837808842290489079248437931062801926556029320581880332811452924617005655621396812666424500682639339832479338339527988317208096043396900706243008800298275500356061729652345591561348994363509543406864752649098592784920770385324861127268666887039367243033732567788734261306867425429918642315109643795493815890313118511827476968338509725679201686592437909662729019725682104370931367803094319667548534666382770872964500260987350370756642737007988992386886060552509182938051633445917529874304364019931511257300862765355734032429290124428591686318411325649328135350077959972146047281969120487696901360824718541007758569737270096200707848851835258174787287763570972284604806944526784958442025113025797142444792597922541464311057239479942277105481622618779495425548803947503119113386107761911867814251057964711354995814957200634348578312378499688714911060583624456809093769212559838553741576777001168195316153284709837760625821171088972192466398800319464066581564380485900641347800026328787945072832114733550759583722235475043677899907690244104064736939884912160718838371072967765148194010090461821414248753563027328386936533537115845316235162533190836862864064877266695114304833424485172236053869925174068599479591195361530411753473754559219837160399992573337856044084916606664543967421770320874311406446635343980413581718077232126435421327943101217753019589812072257285765699563619770756366307134083773507887285995214445864072249270916468533026656912722665092088401120589852394497957211266563263721891228114976881803837599373792173665854973701059922665624507158383237661803414082007174119606838417582388147905137048870138951758399228253883408601252543166788368373876544198888436946234327289993919640854035127097979938638997891557268898250301365803458868778585324972458905851379849523522355829857787199668580910729514324449009800616081329908359966270400698181012939946283066750097457614239296955774911145675099321868155993956508415572892407982176664361162814834324322365029964285577845340228490395046824316958798528738332175693312756645401225876016306942656163806048197156463000595168174653256815219085962955130950913080036588779150764726917391590515550921502483284348992399361430253063200870875050719283019988524947729463128260745714162855752809895734905601935710059969989574985673637801509422606947735673026931159244346206986107639162303997680037938445472960507804768519699953762579450694912165589040584145029262875660584030616332368546685379101166927987539835518075277022907405963276049860746593431654158918568550585120872316088835777129489176915058737518189448527590253693663292715242119036644617784732315270959859167899947156924531012050089901521341589098476115051462269030280993227480144565669997975742832001270277951766256772236340223247158516644375946207840412134280334834178681229345286065549793030478868013259339064913614039569665470047847030586064201362734605422491839437655278848586994623185563914868336735604475647903155151113753903951229045286421368967713909186108338679448611681828754567183571531737034975753183083112546913639066043361036114863193977343103468667133240927963094940971379679907843543841557667184015208990278031787985796841038581317582357380110800152083311913735588618825241703276068390133624514159743561999486116118073149741941421381544155346093933760184695731592060655543766048846118951570479981026560690821337753727902570672396536645032798184498238852613988205278369386447088007026273920602239420786861963074879504200057641393174887148134879772035195224161313985271464012623228481187487342694929134091779910264083835392006158629524523406618893033504357476210681378851896789467791642313462843511913833249259262938522640652106824963402612272691661649984041545116457363628947105934277329584034472966761612151843040531635313503400161979786524937293363421188746998363852544127118040077430694465278167635010295883180020633719280523619251942308987959205605277241463827237262970133094297459874831677605568717850684038815027653625604796503838834076929483241741102396425716962148575107614406642918843263949930444194770996257709974228336206036424243609412748537399519753191312959376879820320479665633683256468510369807612030610258115821645370611485531429143149295713869874218802613607141188074283898618906036471925650598028145520486632499431534093971585494261682787909053926189028184156981990495864974928267526450002196858177627340491622973708131673874846058146993612324008147060459137840533488168976558363688117614423292312877070419796373942185005474174238591066907074000809196941069638790080429382789704216363788855226974150980031278526954147521431209776166818922116716599901190524698917687052995490194838251791902640214644878400365851764344547335679633233508532073668737135612643650011407067288979411425669694907650057623794723925697314269438349982498929361206232171647077337283978797390126709980029136076537052485104972266389739298109288990013226347395729443429374894064411148172929593200583081393244123412248545796238243092034824507681111378263300789880850617344788300426622472018992759343174545350941610052740051042595200191541876096689427083390537420676001357771101590207545646619567073726838119835175915082238019841562315668879243335882626925122007111396414303720822823497926696300014085070567752903825317196983229556076637159680351233224624418913998746271896242055343335859413455326765803211675456185126983522289362679454652797797716462380078390020652637239740465839889667259920039471627917459338011640490592229571896951041827740128608092122764394585854118737740573898023533769030354206567233732005769449836196957968710602234720534635132036665803427808761389460367065724549915470457814919116990029011724237012406713195773810731410205616922726971980674705090596999734150270874992017635377183504556669365542027764411902321505678393946999904497730805721017187954287023933567941969045163749737625744731351837236192987475768319435998917267551295265266548158337103048144068303816509645801643354216149042497385109283601897073324694325214452283119136655033581263413842271281352589837175058569020232889302809352211240235928161169849920676862620697295605063785404630590939480667992195485920142900914188506678817660536760815341081249993128192422495059666761742437074797773079122334768061006043401166144345385927283764962503140542221029384053434057344567475812542794803787502503256562466403482487365999307107931612543194227370263138277630313573636312717158379217207955726022994740967437613641929106970394570332792664787968110440892086077223891988584825019075840337871619206261390442939544853520740661397873635714150403373869724949854432553328691086610893220748487245416299835765915559283543035246096533534008117553489464024985161997468274610491988953382742237449304215753488615593732425940911255592406344067423011953258224113643424564934936640435041719329412131004693192721868775067189954049700195161208651612500536516843481018505612449746982989138537681614898350620460452670530845616918094795816505180014768690943334617071880998170076669800457715889256651014447795292784048273527722613018014224613425142262187943743425608805169330619685037144294554522938467738544871763510131871410774710643516242071634268526605175791336375987705095309659041796120812743205257223873806004071018374405830941004648984488866676551457699060396418548202056992030217495480881331557945545602679427161011938372148013017910557509862672728289659773394985365127911404333545128162566680175121574284834026135645085714572095290535288644181376915407500245971334175298299105411170530717720660137185645960860464964908458857210817535887832993167935995571771650741108306766887883927333424230798141787787670384482696304837166946581815088013891544729600627070174749936935051629411981000653502203268420876736505823238438190259270311318288205363551955083750031332871410470583427562496000598612097316679604360051217265230350790870060927592858255953268418937059265482335725240223413433384912421841754917195440765003758809153932174470900573422461501812534670744950586226793158753265834518203720451562101753430857443472157155480596049859505728034946052672961364158309441106891404600313890777125671476374229736768245629231310440652677146555691008653813196244749031262891814197643021596033759265200009298128014703614189864155338940215583029348714658791348248565411778059069123782459542016702891321085720180774088981070043688184256088522204306562886646933585573950335618845113434172182204883974642294614714821621115289022940244751225235039946082184987531765798214476934188735320652881604639157840345225065093298648180654360740647614472827204197810336215790885099798317943815055312135041476258459060445018230343821471665252844958592285944339853707797374020727354134490203949912268243482818884560943516028027547183018594588741674729947196889797399555061697237147878596015920898596236306631854520354267537771840582548766639349178488473579178084931086542506882513829202684601874140471689470228744306703799000806353081624953434474730877822795967858414086861780580579550644346852881861510887985056080009276704978872397391520263982103907791753600954096898110117595531853879750361906806205913665978848338167485848041237084214502236334844447419962466783529972405588942831093611840498162354990414476817041552468850233600265318327715440365242203049486507865632240298728330460975014423427563163907348506907317643769588768614798776241179734639449295589887109162792003176590909750257904190735192763615408829354585885130440420572638840206160458735422738529233727655004749304309251023866915115220556696425307632976412647711618534850566272285028701643172153103114390300384979258356071089356957781727342589983674988508817157151896414923359797240503901426209386677386124034439193736678557405449067721036803488934806229791686677336639540795630150270402263823624399926718505791167017530053378748900603486593956496969829268559122430252863410823047623437974918486576680187043084099462839704314358786954728426872240602293640183842955508800385731491675608341614638946849765475285732601738152706328926737555298043224212710678933517578645832492387520555725124251905654279391354902035794893888687212034966797603830347426097216785949268545235477373587558500566018514317103526035324105277287791443547229997003759574455568444407630871143876891161196419292442626353677128331630141805680970739962542943669879905570724690904483453616755304886871103790889009270386668583175989033295726217910813083305310886852324254325914953122272271622776244367733559286469746883946288911450644789162896321749414073769773543041170182884991939473000051146350199031044933009296637912458472872483595606859324004677240401528566525600815392558595549730036118134289730895137077172117336865046532432388604345546276888868555625470218432919838459729989076695748762786287801939599896299831558920773960045191643267737761435688773511282971025241423661284093905268939441940508097293243418268222397668949988654034884148308545577326575220720270984077465586084798874021566561232815036504691993624597768043144226735709586608202043383921634153408815119831088160612901803126540409656591386744992372769630810063523365681768123615638933440515194174947300036434738477379037105692457699643592743910663810352967612080547749767366717768228304056602510558646194667323446666549717460658152305987954833542556556274586182924386383687497008754410678936130984759181856194353264119757716640198105006521127229889352652144604598611292438338625238265261979860275996014389202342116069538759827990091716112077960145633337910663628147953080202613047634114104805335494575931254199562815949159113000407817982245699660234250062125767895311383449221733074376831578468015892265456681561915674045101090781106160299496781188376571248578784519558095363825964945185845423361441995286416141829643469097741574918508194802194179767340192458699629777769347447099206828526522723748740228318355233535938124138037128562807100469219279224686722574586489502378930257895806419398595498496832428708753428719638348000959134687287641058487712151661860998949860929063892260509271219788040241366063016902745716772147923845414154623308525812435285207568677930979083547812560217737479975737003325849743735016421287515696930952477722943814018769930318848973984094253323485140862139547592172049234946222213252735893266525178738738614518626751317887193820355157435421257142594276254335954133331962941310844763546441343546573699379622700079738989681248751743846850601440187306902866201948818387072882300404657059668089839837968315517685403509488505763977844136616180606822138565250030592289963794198083261481308123254379920499893462466495686173070782907470336059891098550479180082585281738364081281971313852505030115940177265075901614590311213984381198110554556170240238783519857953188091045003550413697002990274195794730957631122535785495186557824548683225021161180978698720121001032375994424232262690817466180261457126831572530326928194457375990769080280943005540146215174214094319232975227386844191345464305855677661812019957150177010992856919610437772259910090669776580861192058164739843236980169104696425913552667525291144065880755756012864934075161413138461065477553427443079868623636315113394149085210462126860429230859922884941933581411231064254954696455588038666519338702037629103628018207782201625165918170307019887459977940617116057986343539523834422923068545972041531773085131605454435884547772994428392919278092949153686129181167336222081909225164912548324975335050439348695507261995623443193991837935999008591481698291728557930821310172119672841887723661192285966638977812385392711530724216322640928096539889693657804718885673559014015068086515361981296574541759984739563591747198512596247982100858272575832201021373159288850222226516697352191992608004595839702061860243079448053670626234522833332652336920646774728580029524356770649799093421503220075766263566845647628006773878648804106645208293112307411795750346843209563006306884124023112716545779432083969270186567521490503888315994266818096329195573496024599388067090168143951217756283586595222826789479486051789078346895992047751537054666668703730882190348447631985361641301511820566687368428144113134525069699866107260861763254420533823690295008659968259032932951331735879021134591862905054756095268641955218922990791750784400429596068371436047908204788114501388016974736546182899479856689841680804074633808547595067013879256095597261780141634786901857383522498053251592326672739877420927546464162001932511995996008529978242138225910631813182324965218257795895240580419378183260131498922484053609270552653366337996778666217678520378320524874097646887092856935453982659492388831181065461968021148807772157393504014855459179009532391195290081989713495208223025347935460496975926541134205508826371302795432660552124050796330178079485835566297166732408622754147488593772907039025572028842346644212357119352866969754004640051771077570151627495329968387085670042275339271534231169954218778992326776784468514988168118577357063531547636661949821327651992681060519805899798302749875917993136293588881491134994421563007129346303941493124209052239028654485470931297663815833122821577626045309061319746716612812548434047276194046709115082728012935856530603060164956117500209679470682926567259904197283057066554713071137545491641476659936699950792946263385708551967114576376422310482812558006143089611875191925780722655261697414316018866212640319333973518986143797557169814871652033519942860461445579982580922967789854594106221953053295603714893101604529369128415006430098395654652300452552192612705817325148868950018680472980333830642701408843695706389135739261409889900577184986251132396094411475769943528614258844253803220559393048429648298468474078260769515262890838071445145272591054451206017216036059084992344021142135782820295988054855581157481815531820118363717933857349132557492587853646274506671027360574948277453605697091769049586902114027141308284490926090753287597572761304211549068851323352928016422623332073750324325897753382219114643346878108922458965588423482337228022470445223671550507071069921293155682137707716728296051437908145827748408329097364853808934001650904739250773592151809396728076747179064887528653373782949992125024452428310957328777364235175122797830258166620982091953937616603770923184866896631732271584988880923211440487601129423947359338518230545375357482436320454911364597624407545186638801439999533855454559405535552451289972753437671447617852530238089497743490843822997709905448811662201602972790288625712370294163196423705553951026236781744563232268382151063604465087910763633540858609824153098841238552434740613141965907815397772627798205842619462760148863459984652085574118191656524467853672595120304987515950046512193395495503295622279393880204307525828543375737414198770113236842766765788080271401214441498654698944053324908105526507977309122442959556940695962468532014278640962063135890163408641014326478176252883193987598921546201770050351024078733213233272126711546345547357030266162668118002597790106702778512808074459901624070188280062211446620060691300598666978877021123700948267380018130269957409434012141114153734948398212091802898006124097380984610973430508259674652051232932397201118988442094219469749184509791369887506211597419094000819359692980774883548145628918799150980234159477533386227547196648110376481682439968504995419089270764918170114885262543107772549276260613092487005352534206275774705731212277011202356612671421159679337878897883515833779931200460140782752804534275411663960296431337550697341696734611204627429222753562154280710033992452573396228223324031936080350204456733244328012531707420538632406865774757719891637765977622155327655337217050769376951193531929933331251154399090365181415162639589189070909020324950832540935603945271912838683185509106479140491754746324457975668082028210921217529225940161193663693314816017176666299343939227175441865958140942879543077613621129291183020069282100962686894900966372713836449136438854238486088416703064277179304771779042467973127420203076209996606336090763313411683147836428966541435422502368142519857182576288897505524613684709617999636972390745572634203489915666436383263587203615697000015831313187316656654663445498479200701249005231094314742988627039053457099615704945711219211136682739692302641943232515253606953579428876073247065695108041476165634917858903147646293804930584091188355426736893717883958250936062368667454272966287989683918299505104229062488767456832790270525057199131365377163170319538509252175523962063124878530492532107353030886956381167625808624793298674272588387300327954485579224165799601935648318009524931615918698114613746391499221218369866893625077952034407066235056883766149372561971659266420557278855187728345154592094446139364863621847103511310009694250779757785325025993754013439017867355558101362074853252929361001990126931885275242388014867645846112375745985968168192575388814551907526350798985621867747080961864912853269831810279208998905430244126210108890509033001689853022881524748450003231785794830736886368079174235884618643001843327983641704626707894549936790694164532462946542454479943708183120578918670740854353657591097621861361647288082043159269933052427001954578790770628886193681150583992989596078371467488492032202577434121475760807490829183366916705420073786004778946210029718005981761228794781124988257305248584576107606006419046593359332375479111722274086533152379521747193308768309420806260505482117080777569891313919972131735484217258910587135061787887449925470738060396790528629635259406107600073049787037621537765607205106693085974362643652304015001993979360513144324364632819999071449325920800163767503307679513045588218440639359894141017199865630071781433755753567388913988676725398872501053462204852978397025476817644490301917907487374201969621254701808912090982207370095083919851566626186176514785782886126477743836332297942206550166836403128122529706267339108143708232058210251914309226946651408640152279688891600913584878124808230992955702650800247924776164901243056854876810552763749206801622902074631437906519724441814379496279115438457886778076110265826207522619991481890178599414671914969483645452136677982475711469719035297727465195750529772547664977056376975536718586579616394550702946213980012895808239910582081687936391860501743516947533467785324627888387851259931559575240027659472273283269070656959725749272452039625531299102813999782044546606325013702634621004960309589648334898506757685592762084022880144918303925202781497012255644707951157094374075748004966162994822689179777262387174462295405560551303853102586401956977308500451537700406396356796120985835047894960423795610339989105127251312555665451747479371524456164290878736450431479115758539809324738236066144853646927817212114391316923593938032025603754838176143391721000894837281585748754135707115549920199728114684993874733291013166334025687669615795616317903331384282863801944936132993499586726840823326988747430140781814857191524294472585491217984062767344078912623203170682479827805011018650694789561218711975752263730138010580114130215857454461690269754679882493618878906247115134536669358385499097118664922398358752077906581019633437060837152961738239117326793575989892199477966914514423686020197546611524594553542403435208123178819775764428193561212973522842973133266904450243315968641002658693172427535379435237665254543909570343839431528941129247660171789409114539508359260867162949758935319861423340266422578039809785165666726975607410365736007080985565912469097736702884732471207503345686715053862638130932174335726879592195476578129723244125213383136188734120032305659398855499493762415532157969764017464847984617132802961911657924919252984232512919990793809336577319886795010312312476413816422123581473577355735524901411337471112828329471561811140181135161919571236578830995592313218246019994725792395898881234265506802232857662208513191147589665959984043505734195295139240429295450460256130885915551745501888151283071676248079126605241533032259453016006761591366871690471224395524288405211984408571514572112502606325263413948331025043041005355885676095940196626244883487402437228938358260309144420882557762305055945393750858993880264429763604597813220782442253527847388477632058666952654153170772531167587321918962555272728981002255701532728672594293300349689130000833738779695417028975061916504952381368656473759991854063583318924624923141064897953497232336788856094620693099859746561128214862069894104254262130160636184204755723802697245658977403358112173300403943447607035438269403697322901649249735572780265101621907253794228491636148325909535322895419112996214722902484176967169732708444566428089136564204300449749398624031182360660389396634061043332949269748435163882764306690615649271652091389405891168712522681267826273934350026571226643819300276871555290388992446387395376152424740934137658883803108539813716426928738495416023937115393690366121045702080290979568628734730780410999352514057217583497768706114645489826744310660044720796033638090380630797139966251021236039520340615382575610463276916909052718889285894737653083569907388982915693780402820615919445631742357070110111308786594686326282962470597245873351075382786501616119412687637742540487123725586154305324307253188771807706274084951075701757059905800278882108431538902133285777096316512578349276122929082845580742843227874705270571824646423808832470980745610685813590197928676586756152308025766986539891641766744885069107243885644912790543536314749242782461293605539127558682127867402407824946923575443865515851282620029593431954381449338910553219225026299764109833038277478405417174515647076726267731215460515536994407972480236057624907278166181341777612516552174729758122880958732314930810339713035563216368258980206383200650692662435194318799790351747842550962326022478101300454885092825422096189211203499379373196194044959775971263580090787760703543630911923279131516039383858530425824304173097584231589035266054925008954873129105396067603253672364666133750003330007604563303155517975095697592417985981778480027901575628056649676101629490561542985133006950996138993901339429260103031896713664807663086167179169112711218736324096953704882284356508826073803131412035529042168758347888787917003330515010158674429636358002372270644238611544925875681138966441553348923329426380900512989168124195963193185261432081268822145746975041320561816708613930920929563245555810129286640382605688550634705842855574682881162443980520126985123301624618819378820269668756485435295229518763486745266088023391642626514843270894335853233293860036033186776602472588461090422485339397186561424704326688839764502360504684922812794829465551205733378432558357214999240678747264648083538123290232150511412203759932164093234183880301697988573821607887218268793468022852079611943669149793304656890937104350184536088731024874253797388351870271973582636111715849657136452507103491555301006645803731419979222996818125274554272921869648754615483969433733507621869352505626060629556220632262950349221771542962733872458287081125594136794763187226788676305543323509513059232245855414969058443209854389962368006483998828305231024808875203584559493354046090792461235039715824207141823466981988800016680297016337919103649074633006989774618877625012911197689788426397636398825640614661406339760690958920032286652866310250887974020897721359735667543284901581875297367144675868431901231992530414791919625356607455591405518016484868287105135438474846077308043249714025189725952579981998794628944228572311844530463674649370691194715964786454778361510764450627668490663269141603121120356676996847021581122384047230130254263008650568456347569899232566654981009489199057555789790315761249594506121134465218453650590058582597450448248269706990091776874522578780589042316674049654582137893404385403885805257596479493651408647294378769581955426742738414356214565282956500924081697136979129614214031998933071240222618721342406425504672661006030627886927208114994035748551177113861763328989239418918317397645125027586279806811829886545303148306350304457367362683961768522566776566494473358100499543476192637788189204957397924601626760532520695413133433778201102400033165791019096741618430199710894864758296107875561296975674456883118151335441187383387687470989899430909180643201810175291522036583274289742700100300149241824851026349653605356974878070720784369813098760783753565641788756884265928991047659847982270957069453568781651345211706496927128985375372097962500610386674315004538696372833834022316120457617199855064258632655977833987216625337046946592313304090488854741137594764487541795636144498962505258319207392799176989552405319182177657508390717717876855187329318095576820762307768031647639709145041985938830535078157066387428360567088773434127986432201744232690665823693772508382167479973242403854969484653764179295740278855368797695267612439155364664656069491313965056744907004415408322794182921416525750118644246473138891194574426881746042733590751140454773368264500944224917614831653516466510367487247769344665055010747491083821319724201788735590016242000154523010909643340002513004738021808944395942618737935847224132067192313477289619594740006083311611649722489139816512722934017954017443867958408246304444783876074464056078935367096669862241386517802774188557632020871968090778646738303133350213546908603990358577880839095103349135976835204669595814921994929805694106468157233743643589682574063075010609235516806506075129372177330266072997343471951849465402432941580978668770550100663474187176696275087391790794294060258267138228603707929031308493978716523746022721160022259030019852058823594208544320722706841718692647745876468700557625148270108322195665679032339819204767529270843843675116833113410734036001403669117235982853290961005950176365406387945101649538851259013351404286325324258540070585999842369234852706168249759745069376422901494361528537522442460559433883847517912534045684011016687167076188340295169259308344948365462397024491981186014776030367042896965996562289395126969534510779807520958682597584607606617157631879694959154011240819717655228176810939993514239906176519981235417029963252709790851913812869348068254128553432082218162912639991005779980392955969918717624186268495917729390484152181128329321625991267122810601185567575311494982407081337014730741682411323742331816784338263827701572883644169403414808804970977164893316006991936933997946745361314174795651280960084748331567018692907051344632637909778567217687350063031328826647246512750730377894309315666799357491820042551131817956752816199409201367726886361595397490014880968832043291187052973389621462326338621531535465246843569736606854441455941003475203547335505791474594954118498313843956625847474926957543832762998637031292512625443992813157907167427039480604166914466395496381043902207598009505589268685401119080126185225605607171568393152186744990334842226646531636153043625011145330576619265624091307619772485967557423270446811683388097307978878347228406049415723447770881048078365545977821278249861174511120103510114825809901289824294708262179107428306571052788113889628119425556902477614933482838241026881821265368841963314127606032550639367800324996367793704100932242637692066956660405440092534533420285227822461440023206368452276389117860076734176691471117100555913170840526767950800849571833754390567502366143667127970741877847120652484415480623594966519216521379042180247475304471501614252068700600938902471330672911296766637437214516163181882165449165354619264760178328678808533526348156326120882852652171616529375278941060573915033980315080856314652819111534168265211740532244314214732797633276268393845195570135356824299298137671360812227263687448842697534926502716173360371726809022716059691359014744844630582287921626280337279074829914450667591932679362778380807910111730428968127201633612369457698816100898192392646432309171692572943145212483194418552054803990982367068277089041477450664279092964777668466656090480562803189869177971805481641130385950094439360573006691266335053268187736800823586154172470779491891717771876244021688371563317072219364841597242105701172828554182615618157282594568365939107185734971197234103646248665331513416872872049442117630319261982681318327588453133996021832367166325791943880913686355339790792037004257019280072779081026552727772266679121867519175232136382329447922399166958789822365458291544154120745926707821151165050583160139092646294385163094381061639830562263631902644455909294860701894195098320805267578762415133782552270539060536733960723124478569019740110810074667707360078269196098382081358190692922424701430753544645406484592558490036200800839628284894272821942260678013917993459443282765360255477166637323897574947630605630209865244723437556479871040791285613760146430897522461458460734157591592631024303800556714357481368004962759075676684128137721088377657788557374187370888327433018848658749762292012369055935409124315937040317939264874820426541164628121511757451998664378881343273631253554357669592954365498717306020331058129529493492078795605198091362802492406528390467939130939793039808593551871844666516909818251571992585202284914760427763717455448886996575756477825150896642908509830955320158088269640970372047635273840431592774561204796061785894248234642670807769361243739452953861511192738717568683289789945816353769528334978230104006620102015413523104175444512937300393412833657860842674602454556447891038798649236948962978348555468382227461805439223122237047140208399663318329600341982841532005764654700106476720758827341172113907221232451351049076943635173267128487299118713574835426990697516931541687469642781407530882358206779338804681803661904269584139924728893939991409723047643147386204239751525057247799008395387182924039041344836162922655317191604226548013985220373180209242409308735200533903152523059903164101656796016880989968669220529976215308474846103071843677293906557535221945536339004673066804660592483527694442378692896937296408247647856138392304240791773415921327988622951546048087592351304193949906781867102570828339649270445457114546027627513346621368737299193270266417307746693739690577061463879018193774974687964844528052985909892815125936745515384394474013779704519311649226984645757930550762996254501692838083403141895970928683737582003244877395251155234630906981339062167476815372316226945880164399072901410770174273811699860637154919291220862290047338566022526818624774356220274611415182657613045709290758806248517375301690448519754248057779243952796307533941424750321259064248183500788198623420996363580297979767648877131409176034434796259193695750717635522306487080426152858757933129462546194573599948276709767118320319791346755141924198871060980119310064917485118209456451713196759424667438315336374524137177990141276883380968073500247992433248477045621538341373155755871583375971341748161925625095750283070727806499833588297132376362283489497052301799945607534983839649239127381420982872063011177849259901639370985778747475709413776483166315228701152341624557076679172707573167735480066584022139253674836949462413190884560651912248854079927091471661512492604645080458942784348560600326736809304659869266361389115514295383577279656081407430013865160802300020099788006580780027140153609316838309577605997027206328955221117304129715201030747275145367815972795595776345138082430347038909159533458107072631095748145158841188688172161542312380639290670580093893024847790783698555866049556078575162370916164532688968523786042942500995092339506995466976748569468756560657296037731086884076085368813255357492968513557864758800210118324666837094303358698305747013699441935420580097798933086074824799437558366477067246207621491363102045451694589203337130379071393906766028973244261353202481558895328114350613193157421563183234435269058434981378011563590025120486588562101380017781279615611844896440218355328571069511918782816060398439480247479198233259273634651939209337450624942675061644691377187299279514675522657961525494967047786385508613400095957912057803306765116113197503204834566338934045856444651009442367419847637086032060859769448950037160480372310425188576297559438887372750948483669648364875841210283883470190836482970738823684784869962414280874572717536644288954864869718262168633093323562289531807629105335315892260512577254932627557522105989938327865921602274637048972925371154969178848079013261126145952907189531581104801560120281295928008256613829045151696428270613146908187814462269595567576687952138047237721142520042656301516890361079680340786910885203103580100306669814681946460272730646563286263367187722972198336730179275914212241405741238499914397334562086870747568613298764188463986429239148440629229869376321370415037251887830306141978090145214478776235774471194780828192805685975075818811669217849071250979383201618947990312528005712837424895059477429318705535829382320135504895093963964831616186568848166780119251962154008773228559058641407605042948132713241469301077186254853841171206417386936802001009791606652927037971898989179339434275446723940530488058175564757249286216185540054748071969059889198492278861205739084144893335470278554937960184413188571677352262795624484689577685951453945124826143880232678407959459905470546115971683292822650558920853908301937895379223284407285558731158236285729571480053638717839302901116005018716588399988333517663409914110906861249169785350491074533519731787091139796803274149914277782393435628378859536386437039938771853755752251090975829418343751429218981872648313496693415975265866631321487305921672306375932882734776699039096318630374894024124462661323266640240409695067611627439581034698974799221295660385156856398870377271140936753881473120513266242116121250459082301753779389258687364764306646574457287243475645723651532086494622299810543239918072811242341064668105327365825090984568720254929392613367491132854517913205303659375440656895974500004147129488269719288170871700468263884048727186448427200909805978969872951320117880795242357147382148430471071362354861200449011375743677921728443968944340287590756390969110182838230900593071411436685071191292679349734458705075418962796235845940919008129776793640430113263811494635396139344806918056295999710080881203492004173226133191728322871370192686430744015619535346323318434352589808441913232068193240824069292677604513071030880380945745425535492981591641998524692544621254257765995847087626203284658487410998357423030320983486541755236024627840087393142851476569717906511091351836252191209398142509769727018916731993640288636859136412704176032099838038268661454441500927979781670464031312746336342277567725628793442179614434230643202453640267164186462833962311689484891411824265342032894278525286744042301830886900768239951052747534895222759453796817365756157634296556640155141820549623177674807669133336445540031074460160782574419178419768949464722816301577730688294553821510821950820258504914990517062760136199638231926957209825658471574663974743113869477931110289604399528062955956328071187512605526176356195600135013895014331999411057120589505472478768469327715637846563888467926479618935096734235840296920647475280416345007036153002127348757332205481693780692779276695975219583779450233018905176169202934581902968863960104180863934712374703616004788978359657687743493408610478496441656191191546066332780125398021498941242569442235091046674203606278439188403148714067937657934880533347123544370411492756821161529426286498039912258932260441875805650469736796140812212691367189111573888478197946940395740147849970532764770351606779546450602698610191063877980493122641666321073295665277979031810326840754992273548529215286687912015161950967645947170114816766898685831518815153074523379109277294103362137969275571167396801160275999696462618171794159051494682232992262882742429224684805426143204307876717639607292891576552179072216177257769594944970990937936409963200139079175725946176360332711240867924110279692755545152328363394820399537996312085567987108994747637513663289789956610526674240632483136001772401796910515517428422131003954348789106320779146669803699996204894878939775508547005735538577265955309639594605801120800223804648082927313508939756033092559703039029774157206026635696052094841946476208324759207554535797198187097013589470345280252330558922199681822604683618241901073205983576188849857929520970874442574947561711493134735834992535471410738879679571846883692613511900675882063666154688155744269672963646047978934195267250575460059808839741455707767852923515137857288104449483190097354733881174610048118938161247457321560042908986157893775013639215467872510676833558928930355986201500260667666977068625458393575013372087661336555080916787534570670227344779280815699515051105174388556321497579225627921525733576184128086646997368952538197964745528775114136009994190354887631380250790146680523209191194770338715506548086353666018805041609859027483075472434353813946335497010097685406693655552331468664447615809449434387198374881298875819031010457763764143114799186141902441831556326392974560381527453603282834648048386092251816731697179431449913889721249307127980154908525458655516148505263005828675345591658438502963064125813896320927298886444090648602454286659269445188167095236630845908977002263316159693791563348041374937659625710357970259347889589002852909606002489769455825598020524229419362461353871545744575624401975277287705446692424159952845860056081065544296597110490007097328233182117889615009294570354845822023023332642649459539565059510010101045642207626827028840754495851344912861777171971698160695009479391720715722901943768877527603688067953729764467786392052771269320733531520624675267039821006658496025747766503396790348262484059437398559665473298262703640146911864572747361576500399566668887365640362098504466512731426448023921279477716691777700714358620614982683772107571292592941084644408530106208771975583785758325056563734375742814981055606410224951857070590112067211844285025601387555958587051137407763321620812934096947210326466360257142102782905899449028721646723658745451767263641876870454510478967670395793084200601677759391100565846857379705244678295927580717184050409548783350564326417701418817698025968936107848665538470779440298010396927982396122761827135461607874207646862295507400482519941276641402296938424126243983507935180219765166173567905608336687508201878887410033597915747488850393975086370190758439882538078226896438071476654418720711609672770656264120460398792332686283556265259489938689971462033599686815045060195273398268644698158150478475038957631249500476390336216067100183492256765846468605572293332804658565895326662852146105397314371256173638269226687746316176314770989760751275370974122248792042404960188966297459332830550640664561363060029113302067383612955920064412067141922899938426802246570103372579382792826361479874878627761802599537189865406589063379373738941549686787568441480692063974097841642537390830152866236543245050700152018448689515731710214975577339539804949164539366006219209721032408481682777100771904838424649090959952332445644894941605940476116442446532466403203278886276234104547965350569214674465713633474763645313503461525367522610336019324059808709407629936238985316438953419725878508461967838572577497354768857170530916837832468860654313393621351297108734214474721198615438464843409052759548728089400816373066093184877874994749761798333663937741765640709634193005286943324480530117097393778538971455374202810092561051245990586338709848343635810152753171508882354763960519999975081312707433417162574967329551147317399380286045080222388804821259765786764006587398859582947907489972489823851502204058456287293591624787852059981990851488389353632133390834985699234722941082132611736673635350546577845220506238057998152416758271534351134917252589499265347069979284987217813386969671496653043966929478648068492977671151135025898514874246635515580194579175630675572418210388315012493605350101755112108955595936962138759767162588509748053088346205970432534537279971301550097645995376450508629418638318491089677650728403924899062348464137513176699807702673278392160628993654938874297572720280365232224696475639762971610446054956683857788940093618008977852674893894053296420264931071343347770063343516868704898361029694330980655574841474982771327369209467384482199979351979810331815357542780649421700313020614193839427540821274952608128541515976111646968730756775184680443640312118931736926257946162357120269273042545602512056582018722202478220713888244197810979363461333404408270658349000087263329795919386553832327079597455021165883316686202879157686851185352540157890171493714306903625784365143675312743093933587752072489381468882750762041555785940405722147955599786455137469158632007835841355279174119661832353885858931265132293037691624456104984737575032612196699545419722801198232621826287889317897381265809897551622695693359278039019200931453733350518086266246237963426051487303573904647097474800277766203315019153013853837016481126777770190273754026061548380701966004146225732622311460437592196348034939212160274174466102761718075915785033231767584768392383673168811760019315661414983916775279405618551160747622913536650941236114596098794969607253673230006825021699549660625691447153834696179997287724404907195592730904863636670505616448528361308028033177211699980647029729611232397382163253700924780978142987884845834616476816886323894234230706945386008413915275688483862810431115849486620992218688921114167705648219063969387237600558752978751413591820386679509144403810929212362727925292196002201284088429450005970787436264104866779133700168588276889724009825566893214065531427648272359855833215118835956459597643217358833922569317675831383089783555970393791705087732012569178858593854305362201671740055391687018549694298122618962734094527943832918566052526038681158676410575691216505057441088365383620709299953547048357436341345184759547087395627260170722567026762450166001814725333820829209394010616924146125959214225199865520087859511959758585666429028300001952396126386245643268517646401590049507214023245205206727574195839560793833828716205654519683748531384531662359754130759455366489185130033985029876087202829407171352967431557666665547238493085115052497688793228226923038533587196987488666805988077625338502368354809245484695302679570616512181524264406229054509981790867923726477519230999248180236280321860621861883950386963875701728605821586413251180572006602818891815552675164582502732903155059384362341319638658760407662811353442072708127313737837962655572405904650795261460724614253439786179310607568576436340933634348823803319795620947057061159299819360993360308256977269501727724541573280533295318466457362247371987832353129561542397319441600722203315986795535935519098091383300676849845042899289466645153928387468762879020083667371289032603865667068786569958396651326714533204421476800833630326690116832610631606530948166639595847583528381451548070018712945316776577783520735646930292803959192495420677831769920173128249058786028278463155561729970573959872987836467624102237110687491654353873811898779840050153252819127224260288756269381565889833525028639316983462535191803650915424426928898821773099799267393850556702192110588014132926857710320958558590604338915234978987806529147344017728455166906569681509246118984785086330180618888352893588292426960707051284025566676024052194452527169554732124521672099068888358685500667919888240675896812354081060245127940604349073747997474505167324030068240301117248444535080315860135719711797371970478456996680748403504629463595150393315089265244090601680576679579939215363493549812090414311238530941906804670736983131078581134150669508199500091506699490708261297057217335417220434005264735480122911554130222528211470355819815485895900854255119726335433491792508583690565760825880567694057251091916194437214245607267314320287378728548100520268734316806085023768283996664841265521609095362953756110910153008522648356444022957627081367293622710432518542661749776164884418703824698807062962974320226236796236703287930101906136963111395844741692261547277932837181706759863146927515111216743820799524040893062579001081508501868083076673063397083119118433115126440527070252383347160021445226899105480731246700716323769405513098115621102481101061448111607636550714347898873823437654650066285586557802816530498267000491742531381823240073452001598240835282982017611392314696647742370771115219593088340316213076360822004567986097044316773574663688098521460911503396816795637942566488293587177397719095353961237296536719725480152624191133648760469517639296686009798939438926828344686824511903068004277224109977092094835784594609242737272871269431527163607921634661121587613430899870163250822617728277771053834592233707625430127390232081694542639183509256350512658434339758131238912550634448821382718788896188943051725132179453003204505327119251593624301476069474309201083274518398164458911528387534397732782827993454326493558569045653879968525767378854819665277711529367306259465901638802708730349352921790542627669970226653414532273790118025652044563770310069868737147077580419870152509355697686804586176408996034315231898732359259047111648524847072789205234979310519294706421980814513437875612120436062939877684103233738150986277599326633759921984740962055723056905390192271127354474862673639553942547802879661207429036999386498573965644720551241846460328760696425852650726398891795840289566116685435412496071724076905781894472800482329487431507959294179482183800275943849390323906760380007955041595791697248377895252418395326437840901456409223158711417905818323034294484195133998336633591191450471883609443029322936499906039899386847897460874019960263258062660565125169985823141369595518730148162934973731242629117838780923531123954386877479963177989244072026706226123391363447071032375070546632676907270483243218650442950532640141985412583817900044581407926868251333219067287206548154133909505017269891798618920828487525673629574265035037286988143973461658540389046854898913954062632856363946598281502624727076198834120595085349375126981400897224502489239867889651673671202977277667452258815680036312790114056984919531857648738812477390234416174111006331846210677344861431310584444794098744475046420006188149890804130564659493105708757991517669780945655192057412439377214434029992128385160886572051044381480162836642089509127777952840296073439120968684737902741307529420507402988662134965034458235126012845849818571581553412560884623356942900076799865797122294235335041534570777463829332119634857258673850709217788350135420221954227026732338886978043935080126850425863400295566882003634612315508822052501547459630818148748095385558891799704320412173536438440124880247389689241628123575889921550376941177875391797871125546570001566009978953083341159219636519656885335778624287368870068652656312674379988373497083931666642547855428508440064136208978818670961579221823537756816123943063049802780817935225636870694867907263060279931332741972216900183536034441368404657235796248200807779238852381728063224213328075843320058513670371279390033609939910101080920289601673130957951466752638993686088592879589735098850843750709783550732338137051328496135076856644310225480533605705922087749548491110752440339769806592593186252757403455333287560877054162963670156865600534252968999157524250532930719846290267981262548575269530209070358872458764392227755158199567141185695354808697302980189022248856544406225119621910509005754116846821742590887358832806656433000784165190453034980042368091093364879353530343899434656126443064730928206983902642310348547707918176462401168286492294428829614369514045232408702255170595661872048911886792022267702118236310115347602693791076333170144927193783326195782959167297244350717662943539788713728066940733145911157758544229315223298263731258078491715563173827299655412527116557186423005126069729928872901983004576035828730835027122980196011940393110468379327114089834960033292763585147069391381302038272001215782965401130166860420179578652369663187047548145499553973227197321875640502996938469458802179323222747813897920995971595346839429126863339172904656924358452400961023584818059801469780410660340280067564313363682255680313882270820272068396051931711832432077066166308564840318756452049316435489707678351204288584584913337749661255208597566819287065987205137573323701705068503991299889823253062075631435619967539399206628748775361623063193038702287392953256865797413302369611602439776060185200972849453719636603932953998236715975929410079523605131218460578414098088370690775251292025944912117804929115792649129557515221892670383399988752590863238315775719794306030477073729664439818597197640022879788983544952553119296052587354731416419971902237501031225386219373656153013032340426678545066304197390055397737198423753055082611438766653714040701984024954081344110073240827167610632884716237117160955434010541421020431450756850501124236262488022239752690333390485494908812397857522836839117374984431685802576291064206028777676568674192197586792859921631857216122151260554739172159385741070012281589857372963033386266355227389452521717470976346717968216873464571843390631641450241820420471010450240999699303194095819649015835177129567809451943386562773677072686035414535876125046115813805125236052506572023023764881729733706933935682205269573991383693366626346852206187381160218948009391660890856141161928985893946220353431850648530069080140524970696014744064749998530541699089362954049548041588036346363505472729505606907163637318758295472117586464495546920399658149950604257054309372799303515301320028502784073772416098960969505757515461340255616366808684452379575807491628865113163572233494726410362730467363038765915515561181934286098147023703752729561831325095632505134853982234088689993143509513266996004084500496464669146632268066707753483793183820431261730574299143574023166703690980321976036205230546925532266147203388408981712259901270041676912908635228979851870080037321775299602094349035632905923397941236290084151661621401860423239125664610866212104481921428829344447488446125715751960584054793101652662478618683646539058450958541756768990405909546499522352808484235393074611600506265113988734122813736377636126975399592826343462914906471550248505865069630713179419777727147998102759353724949046131482092163966096199669055992949162061783159667948610466990681558989385381198409007731584573284296387442119397583016141326313357120463802804117866980930407271993950504214461093554576326916443603353349510977905005067441963702764612209054072696954256054391162896921630512065630765228454111160263786864613266182594913632776039316500632095664328856934413100338327896657490782420736139914025451711812774262897519724247177222234073803953696824225764408762575292450626216989954978099058823421378923853020001594591893339049811606797160210318063173723789809398178860791926301179936031477065370856369043965170014781685535104581804517617760218845270260721768247697468200222710704045124673897975879324549928554748809773905893820535040385261171777637089633958178244403268652878905460326508379253247768349765375556986669460462575284736423743248848893488616079827650176535765953734167678041356076770479800761003017729087466802388669133442211534008188148059399939604116195393554255613369677981350009307359712948333515508900702960219012235629412534691526482459418372751509231971610090622153352000715770878009877731898412901420962358917836469748701237779132556175890839181828380782427504559729507427243564349614588898786636461873067268230249543506652481199911885454034159334575487722694652450272740603188831970300407224656930892110681035906040307966189441246567462553235197121936297236584643647228657456743833935004075324713183494218436722092169044901445966268488879441395678036671782734430634689344883414497809863934228437779578899173288858363302277320919502049984999773058188128274778154841630734405510743088828661061854834372324330020078322739705940243410031683158441358917260499719783240627069694634794979138197449270314866033404388032574366693971992649397647199762560770019995453668379277851095828318205346302172295760794869967547533625703654514715834893942123617368409268513374934434877037029638759219790358011059029220315477808726038400006854286429988977735154350331977814552510524984686724800377118059114454309725819415524350249891003278504478321314964638715355729314289321234014605110043717931600604683007771155206415786067711540985095646203760667495941320739576104156409768815629316040826498536246231790648483216814765554000410440102766455490964496227783981402521250711615135276093736890820496772501317612978194786450509988810080506242341322954869844007922615238304697918537558529829276408066729693231142229663015771538249989449174292723077114826531873255850398269212803241970160700420106348636129330456607012726376235263413615798051360234973251462651742160924460685295491775585370531987388212117263024622938388370161150100572228372187440727136090096761196189811197695895513035079400360281071997787674413249045064197078383892277523066903789661542460623029276383273808328739383784903708364173783871475456270825234564852495672751049697056715777568915495604310876088992861100569256986487100594543896344497125050050599626001216702592722062762037548717448663162031624724749307212959100901601177959293624256869548364168507796642629563126053696995431062358039609852032565975255422230412867516868862910958651946871100171112405241944025712504047819434673532909833906310777355136671108636116634066441794547391466688316692059223757772201823282646399744876980395385102970540120492687134631092210873276127155777301563581875307886567434835518361811456102780979133951401685421844181608973759222158793491873816324924238245223748961700658965087199124243903916924005551256739418072316964243511239282125084281979685758763617496555083287907676787578367366866811492502026379729600491634722336357446304458834556502435877424357872084482253169124835171643602146140805646238197547564482362525611798950465706013971654037524097808299262781956621125277147240554332741137513765945735100949681621184696319466995132498272228674179538569504609530496069204531121669244578923554269850104129188160894928725683264215298049634465263525792928946644761215576255188401382313071323935762506217678934605098989435494576739413512383273351629241784598518280887746449860956584434361391969078707736526022942045118238613688485371469335963475242352064192698094669456999201932724673499622224613449684853200617225062781225380606982192091437315228640690860569062183767774722054423601146095418727890385589796564757299772553640325068140662637810199775360189980619044035993169226968061289673559732243170206044097094572041774108703395763615789864111297630210219322531382665969499074231091432143462546045828824154544905111832283466517522576795286569341225872510394963880211092195967112849440589872036775115797953085854785520487250645866566802150555035566385082837602429476035912691663927613181681276300298048903914849003850322170670215978654976229575100215432246142413961120283263642584555181521032337858310185206961594914356180542946804880345980967513857242114634173531473885660020480237810886070200450235101019465560778195032728837322352041054588440539308038018095083875908471423040419779129432740249295711595683956387772614172450833842481806330191439636279460752862184606077950813479277721586355644388978113212587548566845873476585765973346112569032706173132330100349538764679022856359362100518851392764157221939885146877268280491182932648480062535346207715114765534195108788501045032416778835501157256801318325205136753170380360682345309924406999757854805539760468368083546645549972824856993337489673863136047918048472057826237514585113352253485954417368349826253691052822905380622675029308602826483438212315214163282951167261089546528383496257648252434586985643107770536243489906845110602764485579091004147472082845549840262460872032238328701306259184253144104079952020754391430100817516304789503484657643741148986368614460107503374053512696407442650838696265078667347712505974491176603138018827608976483057157688374605634950187636080952641881277103453384012674568082942502669345002791710587736708617647872141130068491738574327310960510472589349726303929905322163695291198260546379096910455598913667225298493253171833934658786803709037775973022662084988625899097577077774394638564511617044994618174803822056608563993336516752378171532126277714730116179694786930951913220406128707795565458139559970738629343614847770316425337203005372489475711253224164002583793458928229644911506642260684117429038515237835996117870681523826169761235857652659553541107360054764784199702475437779218101325650758431959019531666504162527931364300510518944622315303579717825013442748169761646291266980401150905557604770291052466469169952484010024237278481295986846055001023546036976626330597123329919222443659728487092562851296400198051005937489555277499039637137948123933840092412729896694418050558964339150903653005632705139553263279319074384005475840715937919258759602548751361344985713283141635668009691052289197071192726469387782771679267621921862645183031249714711114852918536553419748151641785891872057446983566936378725042551544351592007376891775516056350794765978318012468218707980770454239970705161191079543996228233137090296690025755025228764267076454382086545944056954690040189361374498688101601946967050758286637714357778501463913220046298754865418043173531424444543207432800470250671618561746938428025895844649675024474938054886238742361351527754637861010657846889507761790328962143041709550603972523289493364538206259946396564502082961152696041733347117585429507466165612354405638309742261467740092651559626463180140486476967715147282108592455813670109920644636619394731501986768784589856941494609773389041740919731903825315373659412421224943421637028570069464390758340886525206404761594092280051919045799900298318915949105977752292995106422734554407303046858037792661358646783455469448237488107141217652393298359841784428217205682871100271549870488625948095072238951130749601345907297883499384795771590601743473831344451486183135414912517999381570848236113287283286772173094199163950644233047188912652399484333370376574117371045742010748497940968144669962091692152265839237331354473343683414009650204273237165749354538041355028690378671550015823362834445162809035643065136216810320898306044493568029795626161788586359164945010163360362343394552387416609492151354599331418127612159224238291517081736952433996632468257352417279201016491821417379620479299152105087036722962379685694858019772878638345973492715000409474435160099581001884855776276732864648652275376907024998356416323029905472289860335590044755674621249074370179975756128841311408422616352205600296378669958530470533413100140812852755068086747566290134647126613219876402027727603625623840307081170108938725570368360390076730666825863688963295242205129524748039854376116224762211139187203292155785015355738035598612197776598647997171168019181551156930973082311694159636803807702563635509720430032083034427045267898294567112455082758681921571973105503509105365504759441619205532889508965436101200867866502403030813058639935192950749268106878046482867590376456405479517179339437803505522555336244506233279249682335252708327631559962712335787415526726721448437022499484788458813668617797451714027605308321232742288831244187500906625977680270690293893568204301852875355086743746353343035651294490543573536617376912835801998642878002936142033075117316420988364772438342267537977933857376878513968151050106631367422457058662270657517066901339255461039798635544375792747588795776297752798204964114125450564464966058301180425818914169310300491657286191076962784666023252726161453145421350653567054539050589134972934905852911704053190282669722682403542806154136545570401687141675991060592461502582576545358177359391846507636724684948424944156520440925082224977449887799726934284257247666987159469612601190668543513521549302822320105841390389524375653044148445638212771688668083990227259839154991097484152731930077496497008706049061620088968498099400211643415369739060993673178122119858478162928570235320121760749870245165904593706967617416568096008176752740636839444464389763282419048695679593515479793848289820565257557560628799238239894122911137044720897082986036612135472547706457549121096106019977664758367028025296880888302264355975804630350830767162289484873178314229088441480806187138807880105528946108406542251953954616513188191485968566797792347269515069680893429809227187989618973197767479216422212971535529995078768252358055864512575390979545391158812770908534749100998773365740068304972229659244123790454508801871177830135592277319153685160879948727277611944510125146449786283378803722774408846416175407748607244836155837586123234104531406583496229803278820410677557591130640150803925224142775152802831147801254604286452747541804427671960371379995729242297552963966002238698765123150628517192064145468797986746750349974800909305730007001053370290056460499121424223116334925493910857098888876656009302650428550905213409341671111250469551080817475783296227961208354458620730581511910674449889008470564319408501811990502582531217394047395611670754306384902303957450602209303778413011459682725049021831103240278665483051268319760495304671770402205996314271017163480656703633280293480579879001065824916179114119545340123245903904159632656622097067923012326588686506473684640353824190598521882854117277111076615248345525023331962018705807869856853186611172990989307377800400696780652188576637137135929840886327823318233903679443181414320881628772787063232959031694170119965693834231948167028263590642384726109547962767591232539008031659369223236688886810343284821225966324121263506825077826344637919910552568490108359812468209650928120892159426529905164642672714123331299722159250538557818732698297837922468789637870668920103319605384870332028538554959883070204977870166855668925272515024874992433694101011452570243154767328967234978482789561534138344569552111367113012123292521508546339716968482421728463181386637193063614463997514950252186026887994277797465763252295295219831434318097734605620903245052703922929394171850941419433026303865352565542069940020204565451689338119159649836793376928372621956038776625672211325513443391446112027169049776762434121803116837455053275790874582426775328194377096900862997535653632260892234289153744896283793249726720474006718142535034038241248658317404667999326044198868951726004835275570540886795361667667855728651635050404105142547168446439964226482320087948282238162801530998280218922832222901642984763845581286013240833860657569167626596989262815071321741702155144702028464956532152605614683757187774828617914488039458709143292510915125656494729071329506406586800519409573435616179965151389953962405610787214114521173738778181174597849898910735539713252021675872739719115291289315898203989855174778777913789812464624500714559333448490595726356157411376389511210539766808024970745070621149868527746681223910172358416053356550504529731328034565953806261679479495780030437674121346556774142195908801466604371883361387370878909436481069237729396612077653572339124248510775886096271934598258064265307089401507833247640124426290178603682819323966604862325605483420932114917818684905971446765299033126032358263200067753533470521319928648122748228935772303882357341411507679199645102721444954482965880526640383704856661891235165583074662656427872762047395433438802262805472938267538943492072658667054839747222978355767022609263666640151893417902155549023497010577482841545534236646464558017281625681875036452736482873736770883628847422671674660328407081114039603118215072134597340830677947458447593311299819810889412168604623130083193191662925038553834568459299007144406818420849130878051884974859358299797778062164774092372740524612604695196370890701474365369757950835945578569422410130732414368118704504466082223637190545662520809749070665294281253518156665616005691289915913942091143553225101775285228151917378446389766926240343031938448395947067204076829854102599337982591183695685044255243767818492978054908348729895979834209483836476199495774206222287943746305039594700680416175978945853195945053311249626147573905922496698271508864912779426855424851672098062944601127406000327850244970987182491397763512522159564508860499964720587450662403004183321453345853780965362486535589311040684433636951353280740208348946073117169756540190005517167842711497431266391467727523520214855508858554703852754469853336041807255747845520915868861745271907079871295363689886042029979412471945494712063314939660043884753982581531237048206482723583246119509374484361965812660413326332350538937720228360652937685792181575043570113981546937626830869778035833525701625040866865823255514662785495903937013437903088120644267968818309475854019822148011333769144166522985637756201607156393756326499800725417251648116276119585325546664118548376189338402209047642628121709965744556184938768558302976388937503585785052024069108314747062225340851001172067696111426377326500467346686480368681523871472869445730737994860885444841153477235540812216271021448719625357991560334390195651081680599985379450626142053243704042951872780870378950678817964377435194408556576661361716543102284437216898336703243483949677660109050804939999379860214464291481201457280501994779127557962457547162954021165833679672612707345860120070393175642570240533809047873773773338442166160780808033207647804205471202051868795706766141424570948666730492385077918100493392051836279248583326114876245730655530714422163930749240695203955101847427082507820745504793316076507608857104004597377906910761360790895979135802112205737676863713985719437442072917452981059654835313278129964374912083019285982676656505866012572511316041189653614359183243880156715364751910953472806458331835058843993544061114801696723171059620214481551978612046711672049057951988224938683331397071826395662024455500141113468117087417268426293808603437782638617219901612198557108854551074536125334005492614703803055846041100441000088481495043469686423305119587038799874015700167358022758296395224423029119023020850372091989451498906220827391134480482753551560365226128888343151604358126663705380439329033863440648118660681449957329138028130888020832095182010453621752239494014470812037102580564158468826545336671037198196957591974477557986285845286907264862901480876358802500490400373355897545075749668151973483232579658657054288004058539754873458427033299182464573736253266199179935368281134037039338640599417657828540126492844201226731388079036609076078699190260233870726652271707135633398221761849084838909636194136707583144176909933487299244327063585909387349923630964166039638464615248664018173459648272709707010835878125740433637296993233167447622359271115797487734640006760140293414805631001491883592393721908445162184018364849551132927310472139541812203647601310391214030776002999754674776160456605438029376201370742662312749437293175875900167732945336023355507344151622291194974393505885123148693091441725967746076368429039969459665376288383686775988928585726542881357875961151361409087325528999393799073608912761862769926378568808091948860062063360754105653890727295176911534571086723841996206426857030246877405086580837028691464220236677877038343901740731967381324426945362388548606546512635677469167223425069046167785875725170930073314334743287133821149903676561820670020073803327336561796872233252488591792608854930446834829314150595964190999216513687012469391608227179255303652439019417467060536260702686152388295964812382856219485970593859552198663784419960217111765913214652781927262730981707590836497695264379891439330646594555183220611472649626778035938239362809647759120686340473082675289467079442324250966525646585948236972108314765191438883036830896917592044864057903346040414604109068384443722874390867034934502369280228189101300972545527514177521632777315959411562689928133978027495190217829649924332886264736365657796639616017553211380447164809265912110872271824031964784012854520279978213004861106162042879091420325059269522248626590218627130166665156039308192123103039636762427961943891382851589862731811154488260516849281371256685307006018078246496288688696176052211091960801246287518509096550291521055818802856947593126750960624850494381609706220474349745092618415114136633982730437193996947811929875043467374664999553107279337068188262806528797467000460702055389998809982438351420882474448369863195846165189269257765048210550098436128969880669602083109329722647844639417353169166830005784848318976554057738250087163111714751835487106435171552821574245264910898327428182939174250419824047005357615319359312643518231488453738761523837223257305556420453216956921983887221690070763873462583501344664797212798633433361442006713005054798040884348900685621146267246073302509325895659643449111711575365997034511496377922211446593981331571420786463863364463779698693678006376698344118515812343731348623083757339756235782014861967135515448863850066411706368401943169395946958593000909347574606913514391165269391952393737840879608126558150204099075375692488877113672572404991480003344416187348998192636337751537933866101046130740849463728521130216983612073504283116918572778740373009955080639988079620301818178858436060120850983853594182605633594615141894103958987075463398521527725162233409063310131343704112558500282998602966192440348682474678979156317004273771419421587854767973800162110485258814052312096660512277973109953405368791549668920864361930193228079274636240068308432851010131169559695164075554913406066375341993143065610215549152561468170107245566276841440419896982217166408424568198253086768277535041768981741152410410064911156309921985598820287153176400471373196383662155996456851844899506181159333896485076603334285706003644300052408385452644874042438434881592513093376091628352824197138426424977501836766273879841010792115613514556057199296875998408720943227799798834979145644980102432891871266604922223865793142739370761460358590361873816844764857730371525226564343548550885703879508240990730400191509254707844994234696644860462125715067024056853459366807192218298727204539326464499289377532715741250025613562659532264799937583867103822610737721126101717637210457321417443136731272404242998395334638033265823037449112062685687585864534914291878746945010405549689020058954028155822549043419407907165587012090045219060924228422472527551881773072849711334165501457592415222017005614786003362294768621378827031386201686216354384036654865303632323617524231156431099759907054226364681559017488654805732421431672034821238820659466905709926499177866171949908777455449149182191027592834599313234372118676368416786158330596554982346592281562577061335679859617556062981851050559553382816022479145853583866862776200915026790532064589226822635704980460645245491256505466345357698192996547750007165994988112619562982531941736449282204269940825298024845656784582248687093229695665236066072055142369994955376846066350763980028916750859962141953501431550857412867975439539873284998373095896908665056734558946958432845298907469097864072182197456656142391605740947797367977940015962245697281838309106847214157233327442181426886111805389633042510413285639013893721348410539441177845741443865424411829488298721268239645474203349519234972080704768731949434812026739431991113407177888849328096592350835425633783583592022591812276331004145039219720929111970065608093218932068027955995616060979570777517568657152007967887075854149492679424337138145299438790042085551469094531099373443708934824428171073615181710501192082118320223231378726503290551603513560667464417745232331241969313136062459377272686726433912000174070803515551356994668258960312510531427348337096541718400760751410436772279161905892843667648568308426799338739566095751669515790623871245945879220965123588796400866023058409425861764789141788141072912324337543194456004374422938776530687316226772843975877236531487882457715646496546294065935761986047856568247178209795889356987052976790126686986674650655156734382631547992392466862001656402502139470330851025258495917784035566619149045703264803994459101998342476881052472742440916796149930009395359503582949196417461143531844259850694121516440124015836185723239291239381498886448034048209642550112772360554639027530654115683635188039086397746689046524373939104306504911359497685237237223260971925536219641022976566536814334256387324083585397174486710581934717821693269991788553548086808702083029465087139717176834811810195475517257222314235326626602840805114480065761523718766060343004947211269680488681557805665427077774000442012504768861504303030766883837756546411960094125911030196267968959611037012110578412474283999641309791708962933475831968815382747218409154954565712043925297636544041671637127849475566589310011917758006237626001349193499052359444059765636777727214705460800484830601338462224875332871863961379369043423854684401936155275972494520102779517958118092086514835897785742465632781271186635100519782606984410017503198869105248944952792570186199507745562034980147949330665836977754652747691222651170000238596130001098547746723448250524146561280043214494921673925279980128176385496139596869607685619475207193460050030013932946605917260390058376223161353359142405278677899244530683123487750153077158177613758000354310607481514299923789973382697223180192771550744203206640317180614177329952653854259938290540802140155607726135018430164819050540133251239845479909742021307014869425127891754624918367477788239526655998088020050296949173048109954529306775671446581654994269351817830627952032582270447089253831080606590045348425229656230575148004881855908443280308033517804503339818310304772005981772526335928360695783386486598804447246841195392720531671863750700997627805435851442227021391286172142382124797658400235143848096470512816067861491228399827686463949531461423651288366436274329312789618973547025518419765705975752578598094693082679453071580211276178203552988090550554782538902379435104557696705958691509015584513735670497421537409861625970103495020022691992490091733055348992633368601258787262855903760346727817199622354538589197734445217589175190611576304800559118320623514797518581205115982321980607079488510354835050090367125451541590303253418078102018710852699080232092757303320217169898740531985933382324604177333353521022349256380949135635007111443241656010739629603830514445273854921321838498865011012237077992207521848313736892431635054415995435558736823315664879424000786234163831039168515640692300595767918688871290540624553473700742123635829016267963176121455296262725857632321610279978486669690521458410395025244952900452229012492013471670436991744915141252474668474704612557459569827768458502196683485493319252075828491686017731014705172648371100202440963127927487773003883887951920774645595551098033505923710818027494448597744894446154269633724841825067846830574471249832706893280102553632106278743292391640242794669860403864644392753368843505928671989348925031371684258034491841240258797020827747279782423712550099596643114895193966659906331417761691755202493569202736990449870247406806608160328677491886799133382227895831929073511338982104327978261228658443016776852173378363669320208100192449439843504192027870181726250913365863549061018572973967456039113482742727564711105344020902740242248490835171472436843205573637547779087073219019185607954530329942916567470106027047589765670941430382523620774003970062815671269241736151073001521153793439537243997883793652886229649758305209652074170097001828885519267900126108768795132531534489685774944192243406698272752705936157354466730109651411135388880069472755080684028984503768587715696460740694135109582640565865430942945505660148625126983440522683483016075933069061575354763621918749344171870075159417277393807785856225480784083499936260456343261949799229895948980036497966607454023368248903128027836636215459803356809067555551800884528278081172488944694033461272039145135773597358783736134332462963103120724641068738762532777141377891127751303349661550084194977289361774272165114639117294586089406285935855647022606222656774248913719281103748799635957828355806992250647797642040342442851972620281637278976681614601763978557108356883640974409830751649946954720084571164472703245970241408308064852530192293262283297307409095091414346206344923654846063279023776610556218401266206477269284931215544597394720895378475046166372277051682102294448131243677134890200429603241439972114212174364441950063166594243561616026373482550861569415973592769669469150789477559840549158525827312347768903696354663101903634579418270596454698502317279179896978358304682640912838808239298473635591270210518570262728761967399249881583565629504717931806617093757440309894003486958455964817162150504422952041381009392216845099921641525492997632803251542490359074274916426965759685515310648376369495953594708385613625576384902050016006983392870154593666038933682584394789416520902931595778990108725654095117117803880774647993751918656266458456975514958450109022412192868277059981363580854041869957459265752297149803949494490108591929447111918941561347556995417730182937338575445766163351002342716466518406022293454015863184857332442461074442027586939840354013057528784347942881368341733837388561498118861956573769109931911761526074379146351280716424275541452466635644712359614659814305029089357639452623318218411130912583491084696828622336145524742057713288590605696028375850535395459623900825339045826586263343195467862811022961186945524052058206333661721187896370262142075310646272244768360950380243316111971852844593197267934012140676458405934492003247368047719525415762787554648259477272639628937108579805083596371277680187899757073666206752335825188778500684016937522963839968785346828011203751347082454097432372017468854852217027221816585573279654970513595545423536443483497795588552397230253300645782458471110656896406463539559227157259897484597460043733107083946836649445620223301988484106749767103463980092794713624685146060463870770054700421365835191823896859513743312805809411258069877476485119340579256578724927144426644747917716128251333127377456655818452749806618545134874751367198435617960370083773276243701602326870019828894993198559460844431366689087498194986891885073132522590415573059934783579133661499918156662864880509169296733446882213576876189396158148599965359633734707442655954138877027817776957845051190298476639289640159432776157839880984797426603205340710593346737866410479147562574383339189695975072036495771561958487716174122398126061720875867799101731326015617460727933880647826624391891010207429944985150743046838701959829876450573949112921213737121590519804205516765785466263393554687053855469519279486499107261076326276372541224619468365127737806738697215995208408663493486280325238025302728891461770329724795066908809925776174901461838859675798085662154371089206503229849345687075691095868402968114551902735539825163726498085387816626366343966567237664350107949301976077988477672320759875839815562625728694170238391243295286836477849332404822639103671371988496342027453891036200381235643581997027137938375889924365643165811977781688310752071116633132228037758997707217929923092907062296228270434541258879855584073862373934298335016773404444535611849348148545722507463143576521770676038162940121459931922138969282592454719459075332742403443343740974617202403675860379885788976780811663155651693818591386710124405857657114059044123400493354716066379325761967603619388913740232134427334361197383292795663547077161264296513709783048259706004296755291540750187311580028399080275211309856754401891357073210564897491033582024608747031145808495884155743177187731032674668799488245038845881783717244532512528484572000465748743095215392954475011166131795932680128765598398459270992332523285638229952581488807364066138175951749497918602958675457799911215182826386387664985340808951103982849767489988934365903474809059308225864246830241958134096533943047714406088592973794622644021767783030336259196656734263828818311736237951074066951135857591712486985460588518932409749166503174966110348777154570020784148713376416490021158898084996754152776766793674292978666607686369146027528561358431701167590707552136233574768510091882081961318835433786570996894518192327232060850592901518625296844963056512598904910161955614168580396397114175559945646097130566694589110806215680604616325129101573265971736255233334386218313816931194240456454495848379135527875597603417142874801066526014061382207557463487767041690424204684212845226839892899762696411325994021969731099038463861961988616071810680454923481253137934813756130303712913410688657281881265761849333455854199803584951503780872076529763290590553311090438718143741876311132686411605379997626637412028197364969253121658579029441851902086879746782663385155361336563169167083840212185056745377789708485108038670222416487584564505180457102711524404878628242712119309554895352532273699202894091578777166757468245235672779576004779642866092652314391830220304221131102258442706356727662750365203494962047665229205008441141258766214896756276392989947977741911875353427532548313549152056359588512378632752481516097452834887133919535753436538727597686448428496308940909022080777274484884339354908806869373827881730567853297283690560664429442422303613022723815425476823457601263419632449389522598649826076383204330387374099766149909607025816299044211507411855343973942450830231200086746663303291722763733059733672909676179337199997559326608602852423188804300126339131976360974773628286704060615881672907543143486527920342302496833080194422598969668566737953344130985889715922587517488393597657737323978165894599225550566706602710769677032385076720771333642565598617198163740872660745820932048066897244565986834254153201397882406428298964429897139035547077416686373910936735104667924537942095611814381530362714505908703156554523905027818922510687418624674177475593320268639179636873555753070000429368482570860430739187656863049365558126741416120171912733667233843781854289212469920709245373964587094957335377954139527156471960879905145423543153892137619433831393735005254981604307632892917088777132216128431727655816174974376372276039597829134782145120586775157656721996584494472611091396068540380922836429019383080028853608304858296006618801999660634248316917587569339363902549238733558504445055586379899903261016409233863348945468190836600344628620883516838115545879619210904723968583881341867474867272265103195683790596760851292738244513527920211755599199935584584551557658245466001045215722914801650693561908063587691176831096323745427560406789252280300865884281953834181695791783839987523253657986384137699176417604478834969723582685547142760659138824563797773011533633622134153209621165401827534486461047134129588249533538845859339806749043610441517555981405016442037407373406299670242849308036322696132222745359536734250469891572930341965244679184054721420983845049629913490148887481761090925960727647610203993523829258866439450320436234618962815524718769714716337116486960285524857048824829687877596624578160624224360803541584258813964665410954358740150085591108710092880009543511703010583914298739288199189793744735569798014736951105842785783905222595364026395962165594327534592603442928563573323728013378548684224806585996962506327685210542147782569726115214506824773410510189467237760111338054373684355046732585668247009375859923749984487186725691669506684143093881044145096205342906549414921537097258463603588390062522740659641742841983235410596766056557403899621936494605667096914030522552380013840739832839352404029684374948327193890930904755808925515771102723722843934769387533322041080769817752008121557809578967896879808003850408627109786413718567736779374746667266879158930902090756209184340399030000623849532989424118230406559719959690202804403734218717256736370582548622254687738594211824298281765119123899395020879807125167426522624117463714253094805185394127758095128976162831466790200191272422995324522341994732996593981858766301260982031259315239073051897546297076627200265458795694730879961781507392842177487061947008600458152677106312258806474913575168758188796467030158135135409289527309362304695917068060158040632837698820265179426554846344365167718350470147846423825232178983808654003976945842831010425903479844337639008569953328104869019787826789557192323529824027860328129000004417014098327530231000286205676816002126594062655089558049288325431237294497848839903908106947452135546859487633057346711676596736568486468479525650573902152272955721261795763575960028731316929823112589992510145411355756232242317435499547521693769649684494596066583432031294201397690650788534475952492782199831656966821811044078358569626587079110169749848285255467803840308213971339875221563633992597199178110961383281999955773648433405459367687843044499987547891513531902742056639340436109345797254790892470337492633297689063312718809285555939180653296705125393627483825906902311925156601167689825126452020373666498343574136144393212173971681697315534542504284911503234938719369386611692794052537062507339746289204840105228345484691264327101962554745175298049208677838202854563178823015208744520631727014947762595343541867024190154901588535454929698717410775099679583181499310803578580621868049158410597950112559104536023152787860359233938152675334332552189695891724858131276815108374778457441427365808187267771029307124291354080281416562157373414916288997720545586846613061620494686240989837342246144210106846611897066343612457735287122324203868092902226555956842646180455983009167070514749030643126690432227391634108458238045389620638124372092668601520379159401590743751879928444918644653932340762554780750295698114373706034234229514306055304522193660301723691888298644601305054906216245322505480798227543848546020491120922462073945630701050911188521319573497498680716614624833312490068679955526713067503160542448497664204962055581601085218945867169595314440520343146441661510625749183656122934976055650078258903157276996530420938908682713988671964788979577312974216152458514232988972962502989882677681976296860818514753039973529744015485679242835869431913861842424806367635260115525932678093513529997983435907850647760871756439055534341851363257427096359631771337060107646147936740158290388725166181617791876555902692858353119702850214970842224977079571808432216254071797677924811466315164474778339325773932493181378557461743130063804061147161414612822545333456918591707156482453651895698780001919774237141972075962713420369834106995925118112411775183460960742099688849822949529347358859080245501640595421298297740436052528415235493936074220246503511039989801669828778875568114816170041470379235861046312514423496342225966353362276255906680092367448848969458445740408558684193028776264263949038127466747144398486176509504248488863301987311423273343845413811478017412816656196869733369889838998510990604651652643907721023268395939945336705477476672577402421281265340023595414933688397096309512479487816292544827489049348343780235220664712918483727101668727266486325245582607795484947912171864731021886450700632452449401848721052528276685529727267291871518677516817588081167706781356370642408392275241818415299013673539336166490540418825860817927875154681090999231992793018469901701631605984433579150984490501283684015385179954669039889887028568474841811935778063146477616556641409369277795533462577544924277937201413379157945060526639979233261712081771605617067548716707770984761370046509497808405022327507187224627016897030324598938853284743733703841970073634115445045862676638479288801610937432695612277492533992052051063029623168074521031620597364992307786091602291638320192668102140182447522946833659950724769634064961675305533622032700851609531981843830236062700124978772203452531317792943625292380163384111949671356308010769866789814445423111817478949223942653659927047732227930149831348167454856393958650414178221032808169822857157950351764253668470759526401518060405887662679209225623067224358662892781396256787013590306979410361381620769108595865017867053040816524591225165454807750258768848977254379076439453059472350938396593153681052447950776943844046732723380358006691848981163344858825368133727739663547093430270375876509856425165093991486647950498006642132971976277454493207487119005779470325354179419872393963392720328751863495020435433515163914222035689602485395838483582386589869922623571660340415484253444822667079802823441165556217965552567267534608946461144411217910919199963020891254330739958740365321093043058538556763021259497280778655391980453829447465973926839280812729891410933617890305719763701442426574813559172435481952786957476160541902994539113323765767060522167646148098312190320654739989085971635591341458607314834131500465337049393727459928695457515597555724462638311080941630934015356388281191859861805883867845577842226743489264356644180644291575109694960309834430727347541877978527895042154107320549043290632008389995463328696547726907024789413909487117388928377783209097761281579919847268512137652297884295230629691122153279694863481011699264440599049155347932757719143081003756358515267678593775189546938216268042702216707394569391667557931369153784206001643603473817416486351579149573593458961169646825352965199803649856467379153844095079589484418638734582712957563493814826436742662650520851602184601200587493997817104795619518476559645274705750735417753166987197559189049508185698292596552031915270326993920610967077046952547595237712946558782134374900909305869778936971827736370386156188848131994506135399777306357763610648012161100665932853050574631907603504770144166068404647103295163816245564694606308076711811913023870099373805061411318660350540687299141002075401387686854119330539247739465473849067260154566019924744713675137644628451925765809771996005830699643261202669331547141441915662609447811252823668530501522297640669087524921202645496955054505397581352251331962048399726651188701523994585732672222401151861934243929995671081920160693375826729355258710447000809872685743636239779592804570578747887551203980804387771075633058587365754661322160304191309122426385744046175340951238179518151254750360039920037733741648295884657712799514797038772173701267055262051965739270448101099159700741474520355325660507199924646813757361715615794407564420444379566918938180181366434526029130510332149485184855676871660950250779512234316375167617341387008249000954318864423086221206812946082450111091629540231957815506986424849432700300539150949985939793519180689072631137893038731239043202566533111097077554453584146792427788399582293623173973805909918673214783829324092485552460069661392034577958481814460138989026884252090170490725696852486396262354847116338252196005294579683245361853590617289227563237561219177167938202917423164263119219760204607013162363016364181517228738698855093062400817285984279282320470785948006304857893562475430027930799161242539922933866967502494842113742242620707481863827397289549572778125266585287105878925075075070253023177392183248657388937929540888866913233260436226982512491319467344187297033739076642921592596428280430324034882104817128089926192891673601995492471626220600757096887858793359600337951828637004528418438729176806745192666165933396018499301215084128529867743087625070543840918847042677890612581353661042828876200398550192107099434413813612332613347248855236546817736598894908642713156945685017995204020493449103764827180952528021633781411730474686831609868238143084442981447519381926321233052652176553885348915127999969525259379657952847604564225645551124738471024238683145902023014223572224062239340631687195370695955952620362861643231068423285473595339502060375629938249929205292597834469143191472293480864688863291050649958501569036957975912064081435562787738610445213973272241916863289823628646169552143851337987474819240844630010512171146462754981686364067949602600747223809113928429587217724963346172522422626828941832391348174420992533279197602815505674092209310476441718747570738184562109168380654473595602034609252590991642585018898439233930463189054539491599772366189346718365963156283297044509255917772601379262883613734832862943118857487584090215143077845100693896568607605620059024355228203348334368451619487574701106212660943219470908983974661835387179532449712940073433264879358735210544352718877223704876477383699770632499191827864639518637982120939576359068566165849938575080528352262040314235287771510585757098512616655088770479736617869648485044481828906457470035137863691984581606993942477611928554636771400770418049110112838991436623820156356276488056740701505881627961148520272465085796945643722980461163352554294578639763386622244956059163726703547110007610989850899902345859281929753340153997331312106112998628650770428189500563606169874173787915699612253611516327526597341539427887522313218099367863538203085786417794016385278021039097798718623637918927638259397038414980311665810976601684426311995786187376286740992164776480896661355356104186985620081021627100034883725100868508790975869327874110645478538212746103456000292441565987272006089396681650180771722001617890748861843787736059266891363565939174713762725762206669272214854405976279233357206526676483405945030885968932022737174011900590463689506658474712882402458490008526101219319773876749730361591881333073288358866064293328894689510709492479135217113026409501981434029560261783362436116857430771618751984930068529616238198108410881375578023036132374549482982030237160875836113488346289474334960077332351022687845552618793428985216039488677809445721112717839034764205157050060030702045433240448425665461503705168800228149457483734778844054552068451390151535593539977392373119937275236286694277450295475647849189050238911440101847921646602599300141217042550859317293187083240929193810069558414620449670570063651771040261551580499037415277248636294977987947799470602077086687313860856310258657682442824689786189036735210852042295186077310467197061801197317766025101931575223896983748734743776801980425801885432402423535546498268114579570904880143228993286637624311965268720787899169049371867113380170983180236506201401526216315246623730390013380182399948870509842393195139175256223796464977963959922482254982809442251545670231487450901010730603979620359714905897560527807158820532084731776834813609941705004695221352766736826619345458781375249148597522883625323028235448585857295090081888736170349284394858468993444739189539625493895250692617372526537929851931096203008306190696598784359394688534139759524555677460428350931624739986023826027689239552937631214547410310359439044429167859891357922554782731742356840412642915412300500083604331392232889908461538413608204252061287412116665864376989813083200529808209152299861481152595761613667073676203005594815605182779321513521773503344854207327784464150144992391236590338377191478132617842849121636459449601454883164159137935501547542319133479443685670912326697645856591121400026055180423095764533524258423308097672314411297397822258299571881980553648328199112212009179494578355891584450819422257121489919698832204508017592058688661469836650326401744312809223654775716038979886554130090926345915821619318109070993772955935668680013662510495104079169424136788712828356441346905181898661722760171583384995356640499643108965354657136588929913517588512271668292082019337766092956890976840026698193622776862444926227408025296369446873415605586754777659977359606700048996378126081447799111046279787339527000887722508493334393747758827113209721690622497486026031438766418368446628567259640484735141667274099533571934457064940975319054793870695652920455881150800372877567537134976166335398537704543965317648855791165327651693047620305231061880451375892871910193742848742350629807776799324672092342346461299019776865989947593143373688131365672526699684844124302859256265261470014104235221230817467299235194153371092146985541993262029441573307106347829990161689595138683794715070734937399811720683354081861956146709341817414153016964379489512635598723059515941611236447626603954469337916295744679732672898870156544783667586807241697334062348861199866201593326705518127472156384523716514586166228059346363236110502661220351204855139558266470452068506089169229076766541370577318593934230926781584598809082674573442565232304309944711133740912927614254667824509276954465197252993421753248049695175357183247710116059790740749707934823231973352990024815281660557691691667859098578831190554089693848244728013854419528106628959290144265373767202483342086800440103963386227026016236962361959243151424085914109988640896282349237086096394906951093493941867831637025528636741440377079006123725296227793289392643094938522208634096716674766302987927013514968755220683212426745177697473162398723271192144307285859839811928609889235717368900488919166841110901254760496571755895873469715711282939349077286855900265424310129906793633092895707275523752923313269162704612137420384934735880820391840864691204483773017311434855271199502507627558362191144520023792755695476678608022910026584755434279856420849812686783822581966433487095425046408910162069561661575602667414587765537978275460969313498390290848087257181945830022499441837743182806193687814643923056942414627086865124747104186937193245403909227473815548264106825196228867542462308532312763334769946772841090002810423001291163133785438184214160104742173962626950260189962990480274805209258378451623696235699400568448406885923668801602861253300724673305715662614549934809112091459146449199026846095975337757033099467192480403547949403389937193039881960278574971941872970762831553973467914627467273867941380545186450609687748787052241369078974285617974333553613362837238023247424827061727657385375964895459123726650970011060089795874077862967037768700681660602612774245768686070664334723955680375996997367332294801700595703070805876908542707609027583516786869410758447650025174728336182897927975971769731959503326328214167813772607063638998891841669580250700424792102524059133992438115390803960609489291502936140828526105982353009365632257134047382385451197007098745887285684087294784882577107197904267119859264215128384083628191357764769352903555220510784571495296171005916182376664867873518340105272635791486041000617720201492980843811943409130135192104776618672457754578290833217284349773498586308259716719991091635751356777384163748955653755220688236191664752954567927002167438874499758059692212299946695591067138674674175291047772335952767037569236594832707181050245640009106298921445700871564748837438440342612014688581401765152888804702907808070893260033597973043076733013180044909356210837418228229344986083103234131672876950672283886230177061595697961953279273465476546860282178091057061410429242528090277677980467917117628226505948622792806492462933826059813261048870419699054127092064349631115095091730434308763903396175982721091987357600541098021112496109010418283595077030075210465374728790456656107342762911651494464162220353707735554307083278112398202671600439155266977630600756785444634592762804357222536850614272794446219447751500945322809660777692867757958370815423578154233242794448089782298620643769842673664219737279844466381205948948448990516816241341948509012498526990323593936853840608790203241111766105108586840611824627927556837971633355218041248856954407385235117199805719284916465306037460851326034553081502825075904436594746479894645167351945057063766035078524541182985776747930536757627563068360737644224603645818971664395555748904189435602471665835723336207615552356273608937674477533359562959238790434218138376718425097587970282071359333039138738613781582882298225016895632948530514047294110168105560672359361637414404042822329238806008366489157415868398371633024652549870829130178056901083794771457250109025459323813544110333371221572686388037786781975734462036336726235296038900979283985041107378850601250940249507756895942504818463898847789434973030017320854766416871635574839799363826829572355230963810462981936402921945163778716709940717266759169741983182194742179400116513999026181238598714490110536313899063236387148645544511085394394716278682733283446523108693142936762302008884013806645973936880096877290704611869485733550359210262032008808877249893501400090756911101949012866856517388904991325950565153632234297023253300793950984988306724920802312839481047414043158409264554488454783311363802614384216327687290485742735541262627122595323701873079876600277320704685726825725942421498098576331884254476177438170290297112492447995106406155873099178918919910395065544768593016800115114433515067180887863416961645560763218840544074932719493212336557046043166405467507047321919756600483581001982884960006101527939113066186874277109086805533042274211974530334775496177719090606787046421275063990344626120695352653202951473155286687961282499714308266309958818729956307083665082145440090443120448178874696790792719943437158099703899574307378334635425291580673260300521515219834092261083613187900740801383589361126184907512901130798097264698145426048182900834015337670802133089181598230161598144995994820091859244426888890265539561776605025087158375772972346573517396673299576713582549643197678635048161889679249724852715245487354307614868314039796016992106989562979291044004759596087462781297714028412397118241346233303835778186870221081418822164611860554926159282509695356476220592129074639796885799680574309002889632532804899859855869670441787075110087121099671960222094139745510988199658461397672997567704506270383496298063061628321581897637151530097273476641110811661406170867154510949128975144995178293360682883682696929416849215519887956043707712279623195783750410782783163021560666989859488421341368697551588025337571916508198787774476042812972813835073760094621277957821956346745318743161822788000426139428063627447653575670469120347804253136331236458402466081519848741963595332812304886390900015621232114867573461608163051573953914722618065545665471673905892646912792322554257783230026551486166829307779520844318005952552735998413083217601654667201820115623540528985946077990337767488538239905642087548633836155108639455850022843171450168221234323388375790970601747993561009791012874217953169747833956487146965350061203405443368247756376740131509681823993127487082560439885929617314949335451676422551372255550815670914998938317859400042233254626514036252763656186461596711037158494083328394270820106990543284009683537069073511637763189578437617568482002542514376150807439908441706526727001120083097655483475897943233470120139523244254247463250203769085594649794280734799995964363210618415990283473166190099296850421713976605463911380122786050773263384533651984599432583784051448873546883734069789363437910147063810714174003662795187058035036274230021245022913952290547531178257299591655383705286624732103095023033317947761901456888012742203919111242288921680734656230483414486359933796664732352936512974359576033342703484172464004423092437940779691970987498221961344563278277781866216566223360095275137767399749368776891359210414148739888225443984630502416032278471337126192590783534086589412831927229710094146186209243681235546416829874411820586549096361554948134610835585775796023274082362431509507678906587095473407274771365921900330212358751506300044815691121864357860062432181395552580470533647572677944968016282318429387953008462308691107961076230491410041385893985185944872182483175214858187276610181938919390648319657964330011187341064115613453306631331782903997377854871858177025793628247821243928182024586483046768937809858139031207155798342038956675515360229113588788493811415119198838522484434312135164305465549165204116113472879741970598685876263764893251870727479258040961717843919913959586311328285585435676306825693404472374416889314879869441535447957882609046467503146718252303859417336560569240481186250254531664515876579653111483822588414106910788868075423583690192511961813720356245294827754103469714146426761556980767005956444698201631742432943611185929526777352509965910776203556287661034459365046296744662313333542992475910180031089727055468271601702472806447034288946993154847313367589883262256927260161914317247412026450090793079394514545176818034501007405164411396847968797501126681027067354067013226679158227454141484155432279256184872381653000833237127961764398277579810371995342849603938506625015623397020309550853304221489950003937815302197339953404915555993952538537084897231548793569382539734125214464494818818025146697205633396951832826703533534361280394692148254335668055738140404076261456485853029888278441048687622526915611662354897899119344085994043973094584733780431254772662946122202503354398994824537282674886156893547269998036680769415934860012669370948474964650398346249681959391997565319031752072995610370087259716042517826372534331944228316559109054965769515038051381119946817082820197477625802409193281730493974293639141704888187601450334926322641674473269786713643437975816782012487089011459629508291454940087837529400684220217541501402827143038993529007265741181466675972911785662384575984807767781115830908509608597283939017614700635542964382997967217747561825912144961770355022239802657219476426776132950413669815363909961893617564850210144530147368974995347486638082995539202812739954249266617360193813747056175956328675277580713665943196521804533755401820719956489443858044013089775203105407677273276054555303167045667257491352479637245988704664972518316211211888829365964329083927754906385865835398347241448369537742024249037050694652909334525680322993256609281440938832150247104615995759621633925399085137722686508641032298771088072378285309460008205385168398613183187681028129274270405870284574606308612601286073898417320364410861723399720147230775331350566746429303470532586587278116042151727923261400212261639074663420349309813046401994983900890853117402610961626449515566661308106975283942169765953606269775481671782375019373522891691644737278061432788760408015849681302939348837545637961322587354081895449432421099261047757944241023642647138878826149284244509427920309242170098302420901910017133215528196735158466064950257253671075180895589235781965695559954584691610558314664788639769119022357002549667531397373073331668909326878457589457720536741130293917326589109178039490441268754141836540274197981098135518523768300983629512717390329334416276775310845119305393560993606262763006556329508224812624282367103265965153936866085971920011635638337874945374249911602540626447829133257727404612404675809819680436624553526262062006609895968676941778129579610883949799536190987057320593107518728645955143019474385198935392752813966320095470271498014945735598182783244488619485220045622747879480696556356477811394429748952222723988228290412051202942217340270327206147582060321711313006560562025874900726436576722479130499292593811900924771910054129623253430201636380396717455783477019788231222007222840207715175011333601218084639464759337765182153267148618492547487880624419386669650129221014434773766187395670907674631149690060792851673383077143468932058781936531306660128827606350517617836112148160690766687722575620088174337376822928560444525953170914092818734878922191781806637908028655556890421011971018667428921210410999660646936366017899365483107960282472949650984930749001025949137760402178135710298253973271772520186559378694205891930860729216892582203628983837555748911945931373026551731777871100295839741444557472851117320035840525924125082497567466934974167123985589565128395596904395489589738254977023522869963256984489966636010396874490509200430484711622554099766792985573977196747372243895670047475623739619068666417573224700425936847544670466322093610909963556982461394456073945906685501587763091143765609986671619303128519584483355836633924850930179388119916123445545127387759299508631211575686594334326047518924501499991378854764949494085692836780402172157373429854096968379507440181112551558429917424386128863206977419377106560184960282041725612444471897714540448703075280072843281346400975177812472451814146779255882202508273138493644707010935574731853759615846154007023872489462356274814928285423783146850565585694075386987609633729610708051857151443699968346252290375513868445747938322993169599373837169488898902045636615412634437058927806784960485650583427488195714654763408195403557690595281722018713637904453916287762298764394661659807153957765208643505092554437495715410815491171087220615097943138467086709105222127583327006441649513550959568582143037233622386163671607264684483232535925565872919362977078809710491371753168369149709046288365323439416614639513508289891749766786270848906546319639887028933850481484436374100958512053616572479880944153788652805592945219587455174457185253826384958356188932735210777067556222342744074691350861479284865516894333215253147633237136536429602090569940047641597041007861765658012626368935836753503762934361290156521464844225133796858547106807476760241552096879576559767023866039895072851316497078721606925935420625870140679703304875917783095019533593232567275219290491155035020115371759718946644757392255308497977084553047638627428083474644999150666409587270930438821455560236057336639689788099062423160595808139559912606521102432375671218303955751491788680357867681753963171160449759591388503801102216723021000164789699537509918087896449967028384039560758586970630860550180931770266429937027496107132200195882241761135087063207057066740709112685097950767287508659693774313143725835197052045483153857791559916377877351751690001464403410547817207977398899769363160788969614528984002862209723389223871871094657301553990870330129923867441424052265238054572365698049255589266282699807467397810867166454302943602162521369625914831661157707327293569931363059402603562037784176814567845555227614230188921286443665817368869243971910313457523056433385801253484612566062097539541109438223201034500072692316545439149971209144203702348838969838820738870372348439226378923383910293978441306937010267841391495403277902041381288973995103158443444694140400190035982232745123368301100222557953312684994010400084052314341861037980158901860118767091236126633125559082498046505486429979737927503426771583662078167962694194551310267896433606929130526428955981779130668256155989813583855188630370350025947241720946004455705970598673346921307111313814673297696037547626535972764242165747853186748479351290583440385471584808994317472982676779534150025237746941068029921433780739468115123448562813018820793294128413025990225572376463775860344147541637829010861119962587132787083394402956660130392893916922898033393833188816527693752431595128465634305225106913427506177162848553011982994900329773896296687238441194672331909286293737513386128636953996642554068846078139831713877502739834278979020763174005926945558325807791230593754920544112680129338465857053993920026932714830756020516080749525608297189197657166892246436607186201429295574555134635487695618506844311241802339536825887158234399116475022617094639572604661465054987603285106112800754362549596908193797713647893688544086366352026523133025809261068659371535616413596178753931725082308130760212603740188984308695597348665765088082828795948207557008626876376472895413123111988172094253556851065855825864979129125147568846414565395444106317440525270928955615536332889820929142578800248179259788552345755923553430062666020696395761021204842295309059435738279441820188346413896082598695531702920938526078547357168975566228803092045452961567199871399774108235460449506941884863521529675765355833013044972804247948951496526793916312357079648703418899446633718549600977100111511936472885234747724770221502502012120803681388903761936571163420382755521268743893513896606325014094510156230227345008178319351582479084934421513846417405851538234871134281801819056717308007964060611609100803039248541049346573078064758224410374472650730957204821893162125188782171770303219512577550597253271262717682561419142398524754433645227508006455237948175643359927312947065662443737427791983623090503364482612388272488234545617134206136910074156148066241529606114010837487689290088381441279498601684516935075143455268853964980361119521908093224236028567220376365186033873500859565227846636545857386705009762013502101393931773560888837594235170129508724871217925924125059726724941039416223706811910270615674384978195769613361180532412645847971102160625688625509226882468033599740995783881515286088876193714714274651137314166469294468021905559465239067382037252222589941730868856335010567985078204631190220676030938716400304199253821839048190437852712329362359792910916970424598390642909394316546419721983298967161697145713554068343232725426462071226358555498127048292501810786537756599315101629985155347829098598935180807456439555376226428014857736132382982399791407281333649160017637155948528648114437675372893340351060644348132851606323287248455972053070675045692705494322056009712844176476234523871290282689411067854747879337868830342560807291324029512594662036443828120767854552932966583106483284863935551979040999019758857995179276043738430612113384722904285788984470003893471594905270673993652422371997554666172059122001587245127501661424248139991479357240749192816540112477378358363100721758436090524019381520335261638189758239299972778464920021731614978623894080342860413577129449628959557670966731705024454521684395596214427361054737021828062602938330323307404148084070174287882421094327769191673847489394415116453358588198206180429324981982960471284742289810868456711518660375016450325180512945474100946863118054519213916509780501916560984080636166060799363939588032843266929500064509730661412298144931222136513477146387322275792636513543951218698280479276233167145439125432934584990582223061637475825141676289300873474919355142968270832106269274822748784452876141197136570215713839066813117975071872046276764631071099660554239409482009219837196973878264966375811126298187455060750558917300984609231363755142015908078967424523334594919614042670231627873842765789482791627778085648898234364181135920745516032426135797147391857968777957676211335034448023081206012343179202249367352172209417255739086775293344869788065860762070082259434609566114939820057472942605190586399681410667184032180875858534585340733338591224946537065016295650334000097146974718146238241927284543328066371463369287801995489199371596348942727543924006802064866745526969565666336213026766155097728047744772742815611631660252453723783280159212100213077400363491694130490416503304717915288832394615874296796072574605039910760911341354208816065315998952772327607106853589272887552450205112094838920372363919610219384506920408700072345660716927962384223689720152435216614563005672701311184005611074707112865483871761350339781124522186818774751972967700837011953294109403577131184858716639370075855813346524284383736579685733212063700896573519309492671349355878990481298532380464766291888374781506062004215817470497998389962668684584547162527703276812774583695511338035965939939168973449899946137704273859817502606302132899683316704600912883965054035879685255447882916187907423023869117128111646985917850436430990972827969810879318079493308525683318001777510940637492456454307747482109921730584027212981176084569250034704257364574847322478245695171667611417718568301580517483452259312996279525776677156015209151343656371997458747679239785500301022084856692282186410914035610691999811989518068941391004725921087729664472999376783847396124476515632370150402188070260824707958000043045511373899864947289289392129871606839084142794696186053742121013855813737610721512772949962887378821358493724813197949211861198410366723341852718967421537542854957535397319023523901716156466579422302550246727833409095321112656268347214453848535142292637957937752964007566157217418713542370150114991594270180895323154077390980562261915516748800095285401527953521400809584617518742932688168100540930839034443071755063809904805560212300472139161013406290556941052077096330535611468036235887220310056457636593914907800915217654279800245904240065906331224228729088002144594636226341412351627745273564110962216378924408250619179048554794585603222943113707083101091243601309273818673786395448478741980788572702643987508353528148638617758481393886812587525072106786527363939915804471539800775123428202585992315327847240478113832980106648131445355259650710638583400178627777308050971371065981439894792528823258770629061047691536343852646972229945407596481305762734419836891669829082410630111178980997098706037334302997647433297837985171408626074020201538022876774750251735527974622558858802549085125386446770909922212752522737651312978581601732716357045893047524793763156321033309630328559752350564179062843609135433185728884084739148329108294575697195468862984291024048534143198807327751849049578677659183953153141731794350924805447455778480023912356633794685144193668275693635705458246973392919345713665106593945561803469164102202729569695010237275519777259300218636794558555407925013179954224138250809038476400067970645517234520191172300468226151944821223157021095067163780062187886661892470813750600522833526775475802256275630274547138833973120000592642289063533034485642359700883306933538702792597225929437817353847664668702778191332642803959816587062939027359418438858600659278312419028110139254994570437909990722119716511137672166067648533953439816243487085494747381888030042654455816320434510865647464941944024967248465515150084448423749690679821443185097195764042743050801182284137810768030212285346352464865163022657648867046647270399964810523326888614248232422972583062169274326921548904192785119437864898867832787813160201695548809977864765888974945523557481432630258494471351628430014455359301974199858087269358573316982557024268843451515970743054932379693296430873443488856897683640686623242527524017752758574408594321927645560366304547375052215205314198309860329551597887899144910461893628201771482419513753677571087754622604615509996591208589885353712078943736389963889828057447805809881547410854264001430678679413970542335764018068580486455936601258929625313461083248538567823327143735832243929196743258094646880919566780702741986808267776642245197674705608070897766949239168605735206794909281984359099893453581153026316375480256272245737083808704774005128163025816221725971418854722241362923191724193416740847241001988061248595930012310078683071855369957105269704044777257194068503290523610548428747023876187617846984502664010142575509014185163465658127751973893789682015167391812136344036890742986313046595723407091735417886131898365523425970622014500940300752744820368757115219705742105446347704533884429760206067630190492090454911367696013153477247482199490864646322776534396437201018387695197987689513533576586083288341266358058974778239425757467835855662656025871633453568192636122749854447092127448015838436067472614945950412954463689011958464087513997883059380285518977366090133549755461349933856926254163002298354264351689781981726098482665992552062649608934477124044353335671832697196790918405515869721038978909681596869220435792525319871185738606113578437752855653042310601891176423334906790276441935496290233588939366399781147617239066417784010419905899900039556488494310245459668927511013191188674915156520710403255196089403106946325111755646753390562986372206353258205561134992830530099180618943060159541243049250890794753931833065975008652297307175703528949361243098188979319536825326799086541663929984643945633852439898979850625159191257670360988987623216073090244386087873558372272302342764140174551600364310286604896836768881079400722669160079490531814270563934808175313570852680400852223997514530730637066476840232585468545519924158380541347845511008428196495794451901580414977746811948641131857057127804744934563884554591178355733956675018304689069498215788668515414007309797472005450097075261440039567067313924703251055723498720170386923051767691334257351252935040955481848602890404126313796343188419762870794308707133853586232383403044615946535296874762760856971796820276419788498653345955155811946406274476260129586810267132517405859593450457280814774823742621548156949435400411652881145523528092957977724136565457669016732863388571533517920859014296522647467864044720043476075055213297430465855666471786715377417143309808128543461535832280212853982246789153460415511111655568901508877323259174639465670624291985126445949762247754078592810247174690178402084755744056231712118131230204251239294276403085971786894477343780737445972201631505726978311239376812314455773937834653018690481035646943943114143082722992365214548560760441902426507653282916649548146398199866760704752488554464717787858902380318859734551550183225960210477558345506790971315832581044290474935732318929096211855078247231631109246179129883815913491712591891807479059732377949940627160826517376173653566633118807039670584684138042165236140293260249369264909645908377449014414876496505184526452851119349622056066594460440566108399912409436725561912048162045420144811212697280757166254434883945198943468066764789283231011490843529111708399155059744336645357630682438954449403726034955975853871551545819578768741477660663525290038649232446229024500298882293243783625452150943704279127517513678638879602767828307591434006024236567091097442996542196523272151489555193415119798108755284926971536608324082470577786114845308387156694649970838196450501620940797396208987018629347233190211323589027289526293482398800599681344446739821627483936596547105145669263541385190883326726617828545767775033162786335754024818124406327082431276423436764818601028197378880346513705236304990191986762264804682286568513336862865708284886536564192107915846440929909259151268767026139092452285385756343621809461184068991151798140244453850057065520955396105125905927110433068033816054399639232762796682511506196089713408139988048685168287842245201816580000377571618623465195818701151133764582140534918956874441870797301434979513476954736064249038613120733495488732010373123593620581869326381895375874476372597101804167992763329129182029009783384690406246973571737656614770259518544458615970823908434312410406593366363007871970327901284332531145154112959358685210470019813999336673636672880574775015546113590809579445238789715317148432641774592478238589790114926517443643812408334233098546593594895274215983789767079421209579154623438316623238236933142076871559229067735198805140631463836309850268052099833939007093304912121236523173832984400463719218238921492933454861696371194405646958482445698351732907697037352617612890746581857672981145466859720889576165299674661498163820753316421603153679467289501687997430480028262221265444219435726131577659558458257269825507236590578981329544844459444284788082214838055592750790804864415753503944024986700688362160689908315389137671936825177882377740638612522623575812081541195450682329544563552196798955060140495512919672344138907241802029208259865828377418774515925067003836040584612700391590424167890162090798575874313378440407221228326690062247649900033193415733870058639649939058752086844413231937858473322698694164749140969038302944971400847870888513797058328754287458388066326839549340548217156452599410806709466215959430357859550618519048954037382726826321620682451134915539724840465810460840056257921508937561612123860352438877223572297032297487910373504454884785877598564571259343743677394483925095225682066108946983641665999026264836224972796618597082487394944069494622158966868990921567103489219180566291481702696730852978025824836341589293285174362348542425627810156197526139419171519529166145046328466101211171168803433276627216432970493038899701491869708230184083985580816822906236439844111452128408240781739381113742624702415786146365345490979185644917042191227620090593951242647888741738771237976914272291358392785626528019896345319659838415741552810981694300912558980533199319936079740977284845932392368676228970877112127492173757799646202389408745686852572322007584043544330974713862243713605640327953275071508711009222668876918511942779194147238013991107051683080607034891205746413130270251535034285104892384493151137220310440428000835248426177740280198677440880356129226863468710157915929366047336707670152973395432803031710799603319888984127493837722735891325871516145444553365265837858741673086998543435079127157321582043247728923484711519881508792069020874287716768178084883439014770906240408384255388823066025944401609845533768467303192011413587866246714667920785552137707586483477163854207521553960683148106701833957974296933921827270985149443091641406533913785449685793218582174073064412841972423188188825836178192986185494996574041045368964237376107438037089819406091740860032772634713537077574570212974680373038142977472244644547341029612690388937902884616588944947880005069205568457517627087585841474346169805498322411509807419010374334240836038297923889763955670973121868222957646429926727938211358571143881254572262138844916146354741921245066388934363550196947422806074674005908076273919133672614743721212849367453885031846150421783184252051205132626765808536661939303400411409607138515334140120683291048807863309852059910163879259414529213751092775511805746937089290470293944820892291889357520533454898919723816828191909536887483331373580350099049821006898797391217655545059113854572133490745193030052166246537470271153180271772178537427238254678782849492865234739537838591639154896955556289878087938244417870409500705738336520560118978989797175504115762507955891583261664839364598185105171386133733287535553280991572843354644864486901400523289374225362511800100185369475652975759292200954863477532985363821694287257311130685537989393822939199440501994612608037707331691735693381286513957877701129871813881095666588610162896561436213864922662923778483116156872413923554010866929953020005728762020059891037269776945138143612104891402948376161887616722869840951256017062264267637371756329656577576455529361056205418398755936372118555028319711223053952230242768555537884199071818113536918636226182653640921026087351539732971249828044242855049154108499154148843138950042368601665026063156083193952718455779338772296258559991603915357272177191366153938373698224195786955778415871932586206622954102592477809267024902402934892723691128369106143214801501043318197273473040240283610873424578352969507382633863685881818963300407607062062432959584556284646345198194020869002868653517817955757237366032452085087302702567337602445336455951822228402677480099879015026491352834050093854763907232156236764949504256498869146529809046742614197983736275578817676444567768752488136680359566930066834893889444926903371730766514833166363736355616148329006158731259027293315715728915685438811076330134536950217343126803159568532530177491059075246097723632060666015682579365551963472768726830450950021599526629454631057523886186552130167370891265189767330615945211247264747128863861098278239142398663652236760142014891264097363175463112159331613553578626845729633679013662471284198857986543144333364780526764164328966984474720404750233905075564035577985046926972106257459663861851855346455131710050226791667029373470579556166411811886973154542462526127657201817695348645147511455443839199126949168882394686635417309928155359743116477979407253428606315752724908218511770643295179932736226984737098584589895627961501176846318995114609619815575368323209222648471460403076579296196758894627652963426143480875836345486100786022228048053338283933554189928911146322463286252639686161250010232172998904996378289485918700238386641779411602003903496548332786076897162210229143522482757529589948419496466163611684347090523666993812931922553603815783472760109107506512498765703187448814214204014864329503345887498665977552492781608046501737012695330620524791227253795086828040644197721616215892856535256966348983834643406240019547254904667461337857415288990309905963432820303919899072912980838703269146791134978852325685168211362408684514263116103867059449505600071922647026060396183673365272234808238208127284486882436076144369270828646024203006082430792215696022622722585925281203263115535426338424396522149208953464165843041259581675370342064168356438479022567876317971712520040237392605070507178496749790761221686578556961453322211210738160768123033036042273899306284338860225948958698061624798851206396399721090206124011542289785752911871493761627254654718182206023503825356583824612305206858515330360437020781483819934868267473448234753672898875069547388390676811062545883958875671399369433620609800054595045129544573549100612962897552880263083406232553982461495774970493705525222365763005478743079353433995946039998753210757970500674282277227535021336016513125446985003185698410310360066366076004246827875152520471386797899377001346607902785469903154139710838108239508302221891810110338762296357238797810469503493670462744618708906613277441559994456075861017476423580382206119869680487481757898146433738116697539804470138727189178977589616682804288894883191677507716473053102244726584170337996178590057435823626185767719389471291635724561535398490208462114103253989451522860561713458314941150692660475402571443989604273047573281334905641202029541237809739573163588839847310935295585578148840511716244763520180612415842763604490612038501798152776175190945726084489704812988637335733041013198807923711871580639509044911477501406107685063977211188742079700876536690124869000261042686155380482780767489553389873281299312950046708250608213095976606292319611830154403270537206254959277183249871678128771682392983000677667083518083946093438817330873468182782217255304891444581175066804649013042556790663443442124277624822377025298111202712499717528202692487485046118127702037907326344766494063606468415846280901042823425955392671531515302216029885354423731288369088181280740863523798508309789104026104923201320445511265332375561620064614060824998841511229151730916254942340963979062303956538798749377874272374240359368160800208158915433807063844372166721886185630679301327215960665585907110189462956614987134062109558709974817464510757434785894047165042267231256151769503192267755422530254526333439591902099680060366688089850518963457352797906146742009736139765906116387048367379119105365144004975685140408043798539035790621169268659311921981598575045762029705579608315984245493546238941710311559111425552429130502536382692649871037055476325205725694086835203023465143702594153792320805574391602415921286718139443809655600088198040492201168555326327282582204948507167414935175557417164923196480351445468483789095473807349304009739028750484522555655460667491488787717619999547934302402707035718169326786974314772652263278810290493758920489851490629865370577235954283757575622991352862532417087957011696433492503190613394837186767115410681891436190470868920086250190366753012695126283678498142519008679404521082148420336052968155014025416174475834433017770744876747811874733790096517352306504262686723969424346748569554056318789454656906230941205244230307889169750440717745878571964667290791932228220980333665832221572986869662170887472719249959724291883600138593514417455870545980911019317945991157085377841238913886849152158193979176709691418651165146334208377623907330954554615203625584855925256730462531675389319758778974434733283792542589262393056503059156543248050976307685880433361527152777547178310321872194942104340333604717516840715529400447208979703136707462321930048185747320416704386676260185424776307713667966279610900673621925213114833744538380175120784581420386443661340388923452075881675391811241147113711087788790366566854545884313842495287197422307797197384877025862429244482470841703300218867111937031585864753262162419081106096957766056628857836519383678875957599369476450525889014029255914234635191006916610935518472033801979777166490510426607706162829894481167463518529064335133326391731996878670651927172687790741747269447781136368364827670176217408673798107135242320632235104925909634947674860059149824573240735325341467114022776556785458559270679906823368724318983775611530922294962701377663887193981393739217213529280762832539907557942833832030422172149869681242058104358843456171744209639742088287128973662794989929402519181164331181410819047670364813195335953684493842254868360851833494676972839615043135828486723827178960712729455777724799194726980109262122024893286819214945919058013332699192784736661321061395892942279288538649966152006005478648001644679114631328724875767357171393121747816922492237083760554407862253688987010551320505794044399287301306013248110005833583231678900981982726093556130155361534466764010690353351731176443562529660729859730757126660131284868716689590575287267092109281012999399103294526893168765726973464664328856028240316815549729511343907491888423385594831636340710902943594457704772791801061869814303480604314002612262062691603792239466485313719702359240766659941517744543603091370851649762250841318984935354170047708960039099500066240620221069777790802209208700991493709764262977395034091068347643249357081773867947249096412703530406532701721472932110012858727217951189844959808399202477045097839908786926794395758506518402491602820595550121772095672730225091598967786762938030458419641945818161254088525556988415015033286967858903462818639407635147055867542842952911439553186359562614201414291267993122622585777738956801621372429417078486902129861342645088222082571594985893539739844430369410626593134916618971915342723983489878653622615466779049559549212640701960619662626732354176981529152791853377519894376735334496502269679261356704867096202343235901111121498656570471963413935290142405880781894553413728507711167195101512961689770175954495497657939815466815417576404224349469152313441782825357078956572548871058324028404352525197993445479794316734885443771308216253832265872038745365026785864760323703711988886773789572693113763228073333005958544259320509020431011255809025823717618783666392322260734153479243450143679654587672580487915875030099987903690904324811101871359947510278522016013258303233495889761057836892190083574215659195278517322070520404768635988538129574652461207845901552589093971354570269477250993145834822230397271352515459371846126899907888635655837475757488339949395463786292380115656865718740535835268245099795752044610886020043192453046948229583967217922898141195989645176386734364479792583363550882587952929758545297131180227949545687870216368614873712197669914941621563332182133612580413614984245699998755390204155167342421099231779105443538509055586074407114900026774497899731238029188263460475982437686471230564413092145286511636685930291518588162612679248850561713376413791582292691548168035717355621483353348381401645046653400710167207204381669758657271084576079934914630030705244911395199153862598160684836471187383329535728132034700478264137182318986436699854867559303806988245735399402192931646274273045398592967519601263990528685820562054519326418570903014679307512151552634489869481065824514117671811413743060897490365814722820555884154592829654242153921000369659117155271677929969864061896651549738324884052261785838808345017020938638295955240475074819348349971064954007660512859949695885152620081399037801129384413831383758486851524418814208455688556827533517233083888619214250356683252343307361794641484610903736660388367880217316539851833651032048895552553000825373759221081169061281859258178087412926875660818570841422129536856555471273423652661168396189561404133190924566965716160524205397715497045436154127639734114742836162224102492889138158130005388685769057552258479108302659402137937549624769493150489679034421387615506435530400683435232767868527962062010554327448470136876597276872652460715263097787419816346765568466623620069696862668277002242599977960048177739433176399949244386332005572791533754237977702016189804328107355220754605981844899519083640639849105120215379557504164417373783298051955665000408678982428965057691842642926948320973742195026859005608518134620769822532462192373101964413096199506237646659999034440587160145457112349702150948453002490588748144333834663848720057482687955205547864400084589424354782015414123349912789521290937650658356265709104805261112396354084104934736594521030051832718144620787794022423146131860459130609102799508463265645958415655735272892053317281878952487915311017169968184777059883968433610219210730184972380398117940181148574122294720035282408286435766290198663834802733660658425951768385105422362530393097457870029400314804249054448899939259373914587974164277008930776572026752534622447725376423019811175799837200126525422512106166823707464037813218235512539502737630619603188290684204994752537947344917626058345440757992264040234335180885680139372802370793053079232071958675229884868060150967602820763164658219638232726071142411607885831555290929881348978291266504351316376939491170628946119888166114455484394761073631932313146630828335987775195185676584107453470963440466239606218007803578764230702490975493995018636540093562782210620713695820248160072379879404237586759283852294805544816057412468249468097477082746598321782632315916506002155511311032444843261482636038653435076451244519729177908130313760851103446375871969664983271014942466367729148921823615177897085353701851173027684454160190173516394904689417729234419926990733415542532132823375665626574485934558384338518330136324407962759495372578658051888580566558311540188787801909210816486141656952716865091593690324003432701812890318948203256936582518188217609786323753599325611526257994509031460803329163950466646941061666553020240195467701753258608996070100236998552175164833403614363509300268939497490839964354514118901752108203029066391060733609835948126334249465629582336023518558686140701678015182581914335371583925811918030033235450411847191182624255009979110578955771107406787683149793211806990134103022295486005297587540684037668397776663155349423405359708149106221257260848181904226782561053640543896560484713023807294479050867032545850808016211126203013900742132212263035425199774773479707481107706837320272445930357631140549565339182817325782235228488516713110053167266318301197149889685528545168052822456201214727715612746745762740603603513818039428232848811174364537766801416954143919088411327555655748159200148070605005883985940905705892311714824124751840284776038250681090246739558783501018336278759540162552009976386222068247830451351127195852890086604477299826873162013601031188077135291225406145466605548231408892896134635702034326698134955520064940901192909131240124867863596000848566434067028160245234249849005960054331595368655821365655404608123916550076712008675514132224281748432237908999751147310840425049736004074816409480915851128959414628148430102177977473607780186192495835365291975155943495839620169958176836776989742404453621382073210778056497989637258089781029160488568917077982793163872089647669559773133971591028186483241785660399269085220408259067934007340313603899810829335221670997835396922852438312485083525762994932938908557576131575518759030638955150480359531387735993318638819145351333653349752150919334698037963135133399867741492356000563946793296331412579452003967597953030781726040751844611692685666171116731485762038743508177606521806769613819246197053005028754163519298067081186607876742116804639266265696481145842399312650929519988285177894274598491727133414211442986167296089422482978882193893473312522276600798598292910839480220639729229146941115973963546536627267109879812700343166894721742230565413458181464059520676672617462765932460479650054199938488104144687463019054006442351661052371811781252049192766473553453646432504447401700681123527083460106714278684083923542749477613129143521227779872551814337753721932018355840261625443420861002284917894704123810951024674701272047014266452007846164759216731894135696412921196605596848941489690174231089740996544678969651297010066116886299519572655574456411769141598733263003756301842171229618447827382750796695259776385149360807091287656171229438337605211880877185895973309709355546448407468265903994364713415569537302413281583922402649445304755175559851674708131155235398251173130835203927898164736057447693193888904335251022964358970440637853092757818861420386219156940764826587125339389860221811710522889484421117359306484613970139743871702855604576975161588101029403073215461672604844858675731272218498404050058004014929506023639384805166036999511983588221269425468427353084245916892486076624508067275340777179688017599079776337042713228856492063915924808740377981784596945871579227491361836977231200832095825760859440805006471947040721498566506434632269299996895517148171459794652123868264883657205565693849734299167668878591530241676131554042092314302530305560881954032569729756406128086005825899011780676140639677230827652869449999871458712458533060142149212910261395897819557343128203134728813565073216050752149407798964604944928023160428553911259784170191793238670710499440493483152332725270608760778859990522376288907461577233534975956370126723677725541120400734340761946496497385359942123963913629408813119551316703070061878012109161409125684074340354028265654897003996321094109182406268985172554526633608820532159893490766007807305137650782278113311343558301293646810610658879031044524361215827723093906692396820102978379179405458968457927612795002559243886344928138971633949062604079471591783346347676739490097808781642790250166309810457106072443023173492825529043311795048844904514557212441565607028730523206424191412186386362352819073145313429359465846636934037396797545774980722193669537983934976590389745508311817919258626950267582062089573733446497887808190229726688940490997907640087508888809095352184857886315757347265920474549789754530343669022326184618719480786019008506089633706393452413717938462079632522607990245629237419981977110844337059520004417766401244766793070317440136946677139394751584557485274597107505094538060893720561749770212003405883705176578658729847341320899210092568098828939935234998435339978585383011324647719996303142761146663165808333977768546949976900173077558592543445200776799974945749810058086053869450655065479814440936886314241458613417025670226213919525403392375484442382932598402201808950715233530597439603932156022959348958319478911852259178673732055124373671534206545986151809654809217920347223746569265653766667635210514848743171926155117631299433131707758349824270514598477023437466217994515438889527660441322363326039711055593561371963241494508016358516494665761874949364803717801414712264214661446691428302915432671663091271112265945099919860167520565912174860611894128210989374030354363070413239981158344473534654441690630030322054461301658379384470589329268311972590899645225030414175879629453655263960566238005010654464540332367298170951627766651964220537790464024465991284191602162752281871988318476489764819292880779650617391751341685269794818277332161729747108146832559936011688489662715437171655031492474201361295849688816568393554110878019906742715239995216288133581961801375049909055720785810306773646042833388133917883419329324325038310005215778682292521689755018134515574735703084187753169593870823377453899107428932061485015373609673919252293929279768865765449288280865657844280308402639188619323767802818483164345110662498883073128011782812163953953571340508278221212015640535038523554020571412240280257336920583414176683776871792705326832550260486780719422874764647650762058474593329006956500562513080512528035275219850378495966272091966071970266136797063459612994056070484505213157850867887873622793000322625853371707056473919314562505322949262532896960246671695303127581344083194115941317494583209811128710703257188119066842858724658108008602987150793978648916798006611077740817208567462878126364946120457747101770216216819745959639988785280846415220630889581295965571013438250821297823940692354270263131197856281541015342259876180206189287386493747155319458527161245192711719737526943611154321362972472783406226393657876763234275670316234837013967067238657475823934200505068968054441226947160450675848061394144930291004671467838529561507453551075035875808435417811813655881852434294125473748054410809487282610003724958302937824602618538793090173098294511801083038709042272783059001052730102738576956225663889833380726949701689741304535916570926586515341204998729091876699546543508545912343989264283733840883842978081451446029772648690744519199863014306868065771150640365776727601367186695305213116073514650903996117694394460266707690120751369455516776872901967107501907560934529035723588036026419249541967964515782543156843366218380731875606030507069810739491616475607164128649100610566664061394749952750888745642233318642772509841701160900113797917310105547864324279952306735023139140423562852641452884885866139146528319718928187939500969887306927930762251589701136650373216364194222496137521123783932414753038456353372767166205692375936443479128607087840200290458465056319321627055776219078156587167129926984133351951114539654331713470303110238659207075848356742042130916180961372685114997664242253147392093556348039332461937701727026763989085567227514363445768127765597197412233275297617984758106346751943888756361568408546452636063239983088195183202438467249342668140749566320416305778278221691565715255439106197553472118566573516761186565259218949724113046714161413893854274452159316763429206975250100061441514855577976922888499759450774245824859504764081835233451552516327394628480544421292988236028440057876557616649813125760433106323745547968156046647639274729050608273783006572925067270739642577195031584763014624647399459639611713343655003660733308950472639644485212742770600063357915849304651684476712459126968795742090986555571869242845674587515800585738192832944618931503219281703837645112218101668275624853368421945424657422719741890031537449696951422495995649733689175088244567801420045477164935824001550990642413390465457563044069388765063437465499595430448797653624928637378587603329748872887456338112228172926625973939797757509392914239388797567224618943857659185991734854572293987687419566172826277046647188158545580824111305651632421862452953254809542390822541314419724664004155986734739744029140657974287063043000164349136419656209740189606421808028224259471616516398250969238858369304156476114951667199500448425128759950251347858148420772720694378880559221776599763211554104782280729124598188678417165647429811427824609114661032768292088007614221594420301787549590857520711735945530454757822536009691600193665956532388930966219839593547241923033605923417817664712634340786583788087065220816542475293859895418951365423295734914873432760857461987100747899180515881346539917076854384895610796751146314363534038780468923584708041739390033754775206713193348549992801571347389565487778428865998356029592044021297467296130172211503496975189941464527872090470338681604004955679856945878099708868605439957532604000859461210407781431824753267372469412491266981424540845903068046841941938885675969528003811200110245434845810424361909566830861017289133642240215905297227331586347801352344696359651163184472755764064423021788564032081662513791962633769214588507124735270448289190131235201931246496335791606865147613226457867057248574855428738522431613849748587638804348272122242721243667289928317404631382084100609931340547367792771596673212233845503306113874487960909324858971471012461363922103560178416339937877324329655507167532495702202416662128977623240697978111547396437392355288565012417307572521670687870810120809980389091644285465708223335130052812158331793807926907537980450143868102601114748618020959436728596049981835684166311291185297880437364204030539526224560577103371116282955824274405176781200733195749014185200906542622340759305852523652148025493637687543046782094219960505624620985032519989948365953097119228714529433968043838253465919507794219816109899590386501368959284465957157844955696765108631156328500832818032911432329283628758753362740860252890493492287100926709711409246159864514600675056720456558790184895158156880520468008867617174080997550383808201441374748650790660404638496496911560367643651824235110105318344401213318403317763597694913571556436108747686768588547820899983675982059325064786941156659826022770618818787316093123531685419333927527702159277925752750756823816562276014702288542753397334902715034648010829559440675870076919326073024289936527605638617270170227766175874267170092233435472104377425156772947498397754895253908460885144135246088660553727159586338180083986645064221435694227972518787103351104981782009789419245100943435473842738196398195129697132590828536176628083286176096788482823369996201554927693174572217571224245922277072715455023541202350415736426864548786856382422402853627154944676148013649400163120712642347400426475672211761465856902604058260876223162440002975420491915849486054066993442995299119035376256697706470651050815646146218311194746031712704865396120678812074670961093912650150298681321746739472341827518686996239272828812364805640822036405438341708440830294478655018036884027627404233359782093427908847966678588725056073232949675208740136724430332508062689867481599039273887186156174084723900550779368341723083638322320792288431265158687568519815535180797515966996754284845357918316950361195967962278763640812401234478556041444258976283012755949555099329400264551315931624390998208467983239710260639087906826666613073172276140831971870310670858950382577755557064707327514287940702064861695843652102187653205974220661763505223235762714756792175880351284508819766375236818733852273306695547084372252666465808153884953066464392091183531565306010776146867402841954691193440175899435689070745367768931838922156722064446997922641945157925448054514929082811462338125466538855645243780383329702745622530892087591748815863583702814993342880710786106260262610140660167222933308599435787578840390953393483159371285447051889914905794142190465012421104057986837162105264825633873062237709461784582547719213401249280577768458904506738102487367615559076728459596845883207974672835362405019195755802555638898195107950017996074992661084413873007113763518279021428079186694797730084526675784996033844386403578334994457644243733264221547794174717194695201851528093258756865260472371509654552254015967687967681735245668721914659078475729187442077017347456600656759616679678825120022301962266718105041091704791392750413016814759467435910923540752599533705016892965340056469018033509893160530903774788349056482914319515312865062097108217043399699572796910555130828203702152344060395156155777370835951459048461106498021170781586415532141698611836355971451809132918126275560136925290499021349986020232398315574279737879729394590224585867017787545911263420116755311560675559486354276720858457420020610747400548168650393745310915245960529486590141921173877937168350439815281682699532954873813632343701587092005213116624206604618785462515662935465722584111835856775175593124352667930211938043088666182015774502764852277323123000148782125852687485037613733642905310824997407686038127256600940383310568126282755777499842175655967172142645108248907352680096386760729632692865508055019568128595394588941119828882628783476955188108905742546873864946311143018645262195567379818165504482719334467394239597320136840613372752118726146919626208695356086338885152612472960585881627672599097591390578668226286488958005412284680600615152091041811073607678609676388313732362757321489881047620990369252547760227691781767830982743817410779352977198677077644282752301469901705231135149101521210630477608416662835519831974859361974748171813115031526981884045383013537217313113680555170409987497236947230806795183806249628431951996231750755886205096508908315080788678173427972270463170798813054632552698045791886004807159240177665823541001523673797304055294779134951609950255858482581244064013611299688811314693246674582629555133798949384066239800483658603838337254739671152998645454367099669435973819887010934726758675001289154584072699445020283434737263538622030195293920872551817535750619564008772310340677435344605659735575122009949905454637508808106767653898196803768708979580659952393984338999814232254922295527876968375406486226017797286284585376466313028609891637854464088757953293763323120254502444961625294392815471579857599654759216160002541771153147179142147832661971270936218142462605123831754798734060490785190126050238177445878872368618372730017984688124923891604022707625364174886309635743208269773156306836554777764406850093887320846824314199720532562428345691965613967604712597537328418334922093301263681462901002577224326516040771104162227067300357218739813625492274951808270287228598061956332410633517998053751815135983536671062211996757768509234647431615868581013178029333762519120092469303535873980362881748226676976138121522715617650176257707749388487239234032934704758889639626314578282431910871590734031039426763036266016334534367516560353347056087608897742626842463414840968535168528592655932442957712253184234591388332971662120615193147788990603744208866877781533951261943334727062494191430015354307348813677527869591780040704062862070882580839249528289939612862463086995752959776642906837730997442215445461202776812516665905928075187832999871121938136279953672376418401520871390603371185731613070273996075823110147814346730295090624592865166825905382389954634976855029939420500706500721300212685457417441198233586237059252333030451373561877951110220219864325505957297330854017211942622757471902031516822538347919851157930230784066074069679173726900767354386518481851243515238602668528175320954553101754752468215247111627622773046443341167967288016237731669527452659538603662516645565346211839513830768169555128591289169960153224369475941736082069257833714220607975576196591220813520760515717425893132683763361682216208919945260133322199046403770724225766865108008112898963675069546505259163819301461919671211353450491383428081867860320707672469331481980543056719161965739966662118786470209051425655880740091584805349491917711250235414912746649099781852122709844930753829469249577618797532481080175222067090943427717897152632018498759305305976965369011976253700894172820553912787439728175709472933693622315580145110436811260297164294303302453619492160787124773526661724327085459349915827489854082214219762678160878945198830418680347535993007755019340511968357620977731968427164044407067288822584113458291246391473225887276765376996671980375400235774009926814510340582564897029258243724100898638424056722306932747279561103680941316103821617792611445087368128813601617470339166381944191121887106281927210776178697667508712304722356934431800840159345300427533074054242091989702153213732493191267228093547608033632355417217739454227701112554677557473598098404327641833259500881000810422033379636188528356686546096601213892294049056199475508142780009113101192872613873378181147413172863153996199624019665086796497603274890477910808154695273751174475978847635566574483048530858652792311952472531201547593491775238317885270345725085063454248750847068196965902803192446852723795143829462405472150245688844306990433796422194151146881791931533016443758828678793579007635489037182206610824951040733671927275591897150358775036724830833323567966582416467454327584969993414336513585205698802931466011932240761057472871881611447710174517327782965626210922434452559511725827902323912100305718149207065049982153331116658353036506080654183539473665252443711625636056984256124958548282753063080503377121900352465193553790449181170760637048984341359254844151012932744654231913507281832895478152425452809146781979733334465388210906207147493863357727448573514406302528311540946455273565382315704746864723404171691561356061658174267969517344614408433818056406658113014432211526415910906895174050056369700315156670990873621856558244457667315020621342427102490131339519142168079183292729683641173792475174315334055571687618628733277785158304887739096573015007245631519445938297651228041396172966987344710578540771473875405168222695154884360583326434093833903937338831595770397506476097364867290891800951054976963901816487038300502822571559062874380879935855849772030615649080781099801093895002487947622262631225567237718839284016263801089186143227219922487773879185901394178294906286541125820174076087375497119013892472799024124199102785728060767627431059843286628783396007467519961052235865196318617214311173688320723272250120610036426070263306370358345115206901175853381378326027693342435033564488932429133936589119180374626700193934946047929436858466366206089361099236349496923848614170779730266987735602286513997544681203346682422743093169703773992903885671647640947348621711419211500775386561518432540382673917249317365090695162721071898457504067467491884021190544370949619818292384271301965319087958147060546333993112702436902632281715478712290964218741028651582336237608552991501021531956147595397980918048606655779088464202053641996666720084407408500763091636894607383703376351469708027490249534554099199741444651954349367841906847339046592031701286246055269783531448949881887842055027508620041299858769543913537155114510741957443668892167320640278271552240907364469351645502488506550268372412775377229069496551186802878263663301391612390260189016434693633444440719141035984788023808642125634767867515535391130152809575398094671251214092890275229975775506198265812288206060768978635632483239068936029285984330145274602996651037710204643502179779512382781205387949871633338324106764531076495078983620083905411857814911052019618735829144406583851362971151413238609098866439175996276663827753745009301218706020277138154453284504871302623167068014638769451673895201869689675398979537943287888552676821378010927698862588103740787092886667237123050359965319691181786421313570488625250491226360996415125812590680669068807906747160326542464662084780617263086157181169006172331085303403634444416006632570330737775989706010212212736114041773074402546517105041203943294057197017313412121181801317487758157116892698686632164575493422004973771086224060664365053775230256242150783374880016402930317630561915527968699826879834845222680225905031414099179131428163763662910757554025277039306632843149336953622593255082447941392756330901695052888907161259526832832545608961607826356524188840547060081065009468846278344665380827379059529126880947024184728446910747100656905524376876963834902571935465719184639092023750946305255659006977517010470583901034505078405480892606484718131867201301018568191786174404502115269397867977374471953828730671663918939048641306641509072930117815212248629310891570673059649320877266843558145564958317940516107530055765868640141528079158077633083892285177345558601934249375241193724523493382762708136031006434770984409093983007266973384174506184975790065939127396317817692844003556390194160704735428225731419692543132740835485481113099633744585292528625892360836530056218744555178734770536698047777543286805215497390136997690299561684735552664059107002719623245203301978433463983993008837368036022581070544400886078863770552731139335330455309434769255070683349172360687513410415269189896697651077797238546094144567711917031938283128875705945531753779547488283852394016161306967698266927478711045362909089564215958458090273902491561690607979973409038348246486004067484781760383233321148615073013786019985748712613018412858517121441776767692589760059928708184487641836213396357076391994480400249522188004133937144178481425448032880761667411286971250817612096488791657163793704495256072594450154062884827786637438087207112548387806343842735553982407259924842232707760301007763102257660759673746978506811716505718733174797724172704869440057199165345030438280723673189175673344777229362463678961809181630841185590834314279288101240901359660156287505704218594428551115280989125104919630553743113160839942613678462241853878280066356047157137729725597855129554743254404987842961370324192255441506570238891503059565346307058999928998257553448717544490910306603841113098802226933032432707223703725412048914141338165194006438393874585438295073621805348699149715304746863278968009489869720881599272868825389830671284122527486528108299930869796597603565924339856017231148680744103808595758153140731279494680625184680537721528177524972058359261140913904417524152568881701675568170869235839250455065049111300105096999187631552303350643032253283892424748483233904039646066389157379277135281261518895167756846303154072991656243631487591151360567869687405715138651475079266819352069298520566965994544128907754024892044637095098586387447126387509698088666261614387787498840061148301649350008599435374115482259123964945693152558416813346740310336599163255949030299222838322332879674343353560207618092224735175231427465294673169274386237411184180876548149149370741235604800276404740460375324626427918842579254906524655649472375731857766293076491805256803013765998050411046568195041990592595317553805371473172338009484631612117212729401155818392349375199775511688534027232576084823538939545056198557039399109719772398542018584400146947163224859794322759917634328685923926640822199156553443298216482758250324719779145113670445041874357005830718011525971813963304712827773649797352896330033925660376412871621909789959343933667193915853151057605400138927905692435708627083947509577267017609904600298213480721482799359765165524182298861661323866593908344324180409979972743167877032323259701527325084864547612570967874512939844179255064024034468981770364616265952676055565173031820580888185075895486535990340084812800219391962791358887816663541322845843698348149536056374162814370001984355763621166843895642185540230739501218735385065044583826861067620718757209904098478951548100625556280047658408634131931818020537596274272619057273480508312082632579491559995215782885653160375748658711282589405036295423940451708891170010405933442278828143439520029679665574935078113615935741794796740686853303002536806210452899607727980136056807797495625576519347169449170643541486765939440233923146718061766609006744746422862543756778811140038666329863747288148795788262753567343611197742443931780411432264097551700306910433009566337981857962357591952331091449994340199404828064207887553466577934247204057766346714400183686602527063051853256647580841401803709146116990080031997153177409765646114046064488768147331674884821195256228343244191686474821041434064762446209033227318610860964647429490868926873032748779848687075563889599937079332522212943550163429042914869788285613429524849712743913892915934382134138042032261461293151258122616738026809874772319850564126133317577000083823172236728209842911422268067841589423553524502141815993774089181911326414647736540873607267901752995931473419179791041390460326443540584127800518142495183075696589068655403184573937561915648522780592720915810465380795145855492932956464043773240882437237517571400416557346391058469824798835991337102255816020451886010185228848701002998676870981176633818017163426204947847910877414984464106229445167293406150226251203784716688377233191863492390699686585670396191021956514225109354004978241053100984592683234668324599903410522532771842631488725616215180751488923532276382242953355701561799666222487765698844428196829678176726533583312674136969860282351185839277680036272042070648937215252240576493449792030731015070422671212279085884311314545957579496424947396147953116516159423195776834270634150382295216363831326476402897309907262586658432613683717840232520633436286137261067349067319941898903185530708151458390315894802085636091740242022261743014279837262642386338949337976910650231451510722669091126431867876573661557903176183975998874582745217941941068026226286669952390823274975001010519727324395963249043483037458567687953572812868943626209996808560837338245585319825147556373369702687332917442481311545044892004886341594119196812001033028851046480448672976250821301988337871147792767963811408803854937420773028437916897988005567067279987787124719034983936947402571440725537001878386629966752181179890596627084553228549885156944107772625946938103584475990552532846478520582136639721214965233298949406017028716816626093585052565580638896542900245789528881631864051216359148377971345920754007652215769646557690854071547758570060589903262686803621261602326120885824490379534026081360879811295909153397496901942837509062226706353151883390650202447566854643482180010798587210455765771224639278405413476941193097146302125721279202558866122497989328125186704121310031507418449121612966921669727475919066724274483741785243709691901166679666891442149204935282497222047556931972958867200275167658075221431689131872531178657181493609896566209803593569268497062619117603712876177100877721265957690273549427407865640368442318917191313212928968623246397709689765077945568092620590774582660522690731925967737099723281974666106549460944830527770723721553818909880146313845041697510385653824135778238413858025948388044318895101902161540021575109966918781632229689959676536744108759130837444712939086838894480495157364974230095864785479382713711112513237683448379150554913990833028478787293372203946269830609309830279066148243738549518773499493454096612419562663062957669003114744324270281074718457985446438356802778443357226534086380829590779514967503486212046500386188112863606044786400194456560724764358939003126793011475660810470892431314208715258340292710709551475943720896162861732220006294784933259201883168125186322523067212869947761346709055385001345051614735968284678185684666512167546040852480097922950569507339132290267560830919626631972252928941218582816754798890799708583047093352229272754940074208306198507575147204673032048329684907685178615632277914580894128143002442354349110445084111190511504708244701796984755933368093337256367084383179293676867885948448559004338912305342707487097857881978669284739791378325105060928008866074626078712649438411844312266548723789258448752780864356120555081785500264768693621552361323484266019119420182081945482816387385832854891451200312614966796913164376167300668296702614545737162247687520748420808473187320202854705329161418692852340382273571970695160629370025758405061375130678839225347693246142168917723570945816908114065119230803998987283997988494940774846578904345245886044549525816745686623276181017712265211536533621165425576798517125255750180022371790294207866262280432332930480330170150372998189812712153250216954064436952993857499285621850576018714859812757251149336502047299750944865967101752469250203431957939962484525954376599488503611068200952933265011774106848194356216785155993918085542257195166282945103776307856827003278857475457882900501982840441652061466316001124545753265111560902087943339275559042914263122722529688964955771071459476729530952526480738611151719141380261895380611250276926776780070119324725134797821609824872165628575716297162396949621066072349801731694434791082501629011604524189954958761948956764036286612329052125517005677247315429690804028099928217316783944486509717052513042323026931252456364896668200705256093163729868502764545531706796247536764351132199626627651771229492645580002216327543235613105439803121818750840447135062476709067916444064846693265915613017958650466962891665516537684257071886787561750405445114864901794418471745888833763416612776205457631173005546743331820622847501996382155005854864304309671692736096359023453535757985686057480671409360314122938302398070959988290516655223569669448559342139934435083510390964357156237257359258275452468148031301967494108539664335140060358950640948063912966227953228711699707748988506970066622593198910185763475307100507097630000324561450719346153130875869405041834767752851536501720880333466070968631742316192703478184009866747260810639244055431660128707088304316057822142354159875392138975593019568202158372359819739090456399753514284183002173018256926310541162251358345612967875451600620321776342954873815438849354989744307486986548623348424158064995962498096715272492958425472897426818142723146537573817127353936898805716011222007748395368248674572084978397965496781931671167548166723574399657438879076575032837438738735320076354800993217986134917591444341256209357774352483291953450841036775234285056134357748735941258261906754851908861557969227107932869100988028845444319332833352181072705746076797966647313927623630379876721769199916467495605595033902483876496541721908647524084513611822002433663522385172718473770826184033537873684997927739666035224819021822885642842601215197998929791284276321201576215843567261572857461481784151742839530753861690254463177931018243968957603437832314427738040926878637552614329758212884736229599177265109344217701616155925694275657112723734150581690022802141215938256036934206829496541066612716758354760493292530627216151762829881741579114037826467489481539650578623865028828074729162186177691905948252483921349534030951317620848029046865913677658919979053305278705841885660275464469116801593915602888298060272076240219249221391830273213411052865691354066977307397273383709151313412383913242798941671144464353204665063382900900636341999404713332775707526989589785204363440663471476288139590032894878294199372101548818830023976983644953216907450949177151460059988266374912926348551225538804555718497104873453549914105511537217443505548388717946293410157603243170206739477641691040305800652922866398354861176284347133729599200802759860993096525209898871275005083400541173019656405972737669677764248232269247500446924983658721589850731215588450191082612350008302938316682398407601486312953264056368304740569388181965174307107394846907511078421575640457739234319530594642424147855820838873256272709663494820581116298583087943814649555899950293870313303598435027392551343282289406943389662595254684773922960158261154207283361725837597375255966680094953244710231109836427375391997551230638390064029687624700295994784852600667322365459017899004838553630276285778570826475852511270479053910104888302173269185118997747703543022556766135022850704763913537070924598401406997325944466832414962425350628841677067876111480540672168581893455071913393153822546044683730963295990185080063778393266274352606037136532658382968147611077024844932345594217265895078177146525245321131627812533159104283699666545341351926548135773699981918147248004018584943677748598363807506927536105249529595521993080247904208797202200164662013090260005534204229741038529265641238725331979769899879324326202490745519153875487000252398674216943016117042358946614033210614134955397170853627259043267870477238673221871903967926687098502199830545377807855720410939276305634067997809869153047906186919487257331903661847913524070131560727345402681903392311693505216623073092630400339684873340643796527630178754392281860881732396449871209476000862177911926247316397224680433149969928287801626696662762773486102953084380930468366228086054426063229351944575462227173602660181601688767359471616256982900236325737773853715131436557735786893415291051487217487343308509425647742512365327999780331499487962630759027947324451301994943711720288070977784009047926537849801604609361375103300428230261708315977194025322434147713694184807065248080627686143754579546018291495663062103403974962567029161848589919458268043855610804744963165909056253163443125113721614169920744395833698902939538843136768529330812652906439366347143693384369860815656237802204192852570380792442154886208866331488453647973723919384492544004186710759418784672123821808922987767689779698922418175210851402816035115801442600832336849771868837255276911855704978695791228083581907831446150426574843300626254703285194744879647444989662568861619128685338356420587789376180333386924250664622464197496833290517410496800476894134432813327982150224071589133925974284085398291082830404119673605589400209980786572611414956061149971653768968031878587472682442702322353174670103576601498329841642244819168363877310999376714446784814578404243551186780613824673339560287562546451394335909084985669791938582826515762667657354620221557596422384202316463395672291808342211166295284896496308316004090117340040053954697899694590310839798861017297735149778849518636030444126704647420626989182890610205092171116782849775857887354981318580232882181102599922258309491347884633684195616203906224495173824065389241020077853693723887821527900265899825312714727988768616194871462869255669775680778226797489997891441105279733202485007944510279183719663883231498227864093622166281365624251364861198888035683405493287196660025989879840091685306209752028584131163682372877369936664521569691054431882337442337855467686436139703484732248479997333877731236386923299996421284092744467512980285128013006090533018459676314899556396350732589032209560687079328340175918532942224691145538653421128711368076028972106855738898025297915702245197377125675727121257425686386931717503305662263163638278000851894752121852749837439310823592638689272509309187769202943029234678838270885049686412453359120810428111343275898160633618140594780620046625951910201628627279280443186046283413937149683478222104769433106800747626491433656742242000852286605408867648298351019221554510055593691009660418567355330098394482117662827368612869234054426032730327034183892833100326958158834432528574342475828331193927726458871318946656315446796966903711124660097852452030583610843897150074152527982094864045607433655971635087331228129910243651419171054538742962842862100477998139002059019202921740719432424937917368925678133039514663516290187995186660554934186297203978146166143931118972020426788402325853176340509043696695489955071940653268779806291574822212850561501276191494951626175056777587986458145185078789531315324528988577774967142458466325729897368556299982930779645194757943243224799288117645620985971852797743435744055751541656454113457573252079846561973932967920646768865721968291451979423865695249643486882874406527136884404473362938554690254645506748286824093861022578691495915828699118829488651987133592520002552262865123075361210926368077282332529321816447335242890300353617905301923398365348629041889690359704801209354624836086920819929596277970787067008235363820424742934194203967031810063137289872701834640231741426736943628339453782963773707810409828419681032829310334433743235425179883231147359258708612437319670874765753231593388857778627530995180980298238768949066741888320019111975103800795301469280516607784630808225056674404543778208062142052398803264718335714011055906582027680642175635145909287766474160036410300105801211132834131002849910031962578941693884355714189806724099310234825713822106747416499742221230647272363944145816575295178457332626082640157844591984136658290214681340662946245255241047503650374571544014332627445445336604850072068495676861223887108295067916203382845688040821106185668473036771983206101743740426823257312349659794894229330703132675234631937199107762726609692241190063527399959877300260176373258214533144633686669079224263810347967760118196178736999674165798523574894732529709501985932261561344537328237327545626109366857126956652331667143381355585827946889488537270724665639560244063665257145077884976407859785855977640158516463870420351067011124185851054304083069371994248834099318062107365383153063980222976311016542553018455362427109345326462715405922099269172580486636131820596320954590449660546304749828173501519102973232835132532806868541699857099944546556776045014733122446480449492139784482476888556815190759227445577973931660826568449606601405498032986302665899550433909932263914106805218021871013888965714870147724706158512968831286667194367842864328470827464781507221610145105425813797735582285218782861370730184322699348663529661295040184689249631582371103301127338689365086207528854365838584386600494382178654983593733059229533151518453369889648946302793657342508501967459821332214013690035104768809093903431772865941422212287243582808529088278068925079914763118968730373055256382274140885525626471581153611470405779862361898399768865428269188194440144305702868922698268735910353728564128841235651006174812160967787350827109897681528682073798499808027102641102185585695176427959387574615156375466939065264626904557839625689964614158730939716769882008047582959829777790155743394881126473873728897882279938167674100059082577358895818733192095095226685628455905506990282585818484774062978856133801188806424984100479680426594974050949510034358912680739310641550602536339538695385528710368755628492680424948642538164918738824138059541738703684369102923077113499243163979113969237082159311122187662788504509897940782195811157504051165307037042807770918098489183103815573563259703408219352118357040301794762227954328606342845295948777025142243983718806773272944503557078276754449321726325410189875143694276381597624884354986824132415879314831726736212388710266025452725956734800537129833745325204420064880426928221868873811039731334200758700757032566402687811440548900903772092794753377991955985087971262012553526701938359232749182985341528435713855370917748767029504087844299721926029031269875121372679859221052130959796501217443121551638174330822378557255687055821561980943379058515261084194209232172906760631377962135973414884914355842624415747267357309112011728811846593772004296103116040377999313285081874357113571582034849331651101011681813942544799044734782470603609463813353184673383522343531990339134407825808698913960764711448095566661330272341663695899047444357915662950150855109990192114954994334539423471525979318661623295660167592777889356113197296693744923410266652523672214804823620230825726571652413445022955523407213781465228585126789884520306423392543586222056061130892192513927753435793045726765004005254118281120100929872591588088565794687610108624338130683811824830902816685556989420256621771357182529300016552620575167198777290250218102592720590443006201543532336193826486854420691191141053399098890627611855000182163299843604837348557133297163828388827922755995045880141943863419456201017985990357166517643089342351425370271209108692838914112663190213520406516195428341988549439900496165427084223744407711446072550762553986568206852895345900784386627010655219772579932640386012603983488023317903936568942581470355315626470657736244048562464938398066460479715210294159652195650180231491416713833547366405141686152402813233190123994884625413508210114481893007869222267019041168114554822663965276894036084470825366260984698554107347497172025737464310549246354763155033102136313218181318047297119428686965077257957236722393982203995351329431575962725081458812746429643784712186159590802503836369808424351739669767027280478954988119956021649226083995414938207114424580745982075790779842675760106763146479124097221988324515864797317924657403839207839883350451122762205287822779595966243794561511311083591191978568152726895363290976258842768365596466847046182545667044495954646564620003409401975957267333576758787940242343820954084935787601681593870370734102529110619828653050785687474876762971815551854536514204289733187978547558454186559737587133075285719414454552526592053235481535891213673423876286401382411261578102558157338192535675873287997615578551665602691718840892134222536914427296337719444050072262283739378375713269594544728607520122054058108165471200156143134206929464922251521706488820462665074392316059507770993448156085601576203789272215352558072007968027177184023458987190952852518798887285419156077027818702392828931962347975622203497006187278697676171308896622174836853105605803131088393387476164436484619004981277687680764539724867809440456189746726311123137930756555284048172317532229432976036347190056259286110052809618610826541148312423282145201423525960267716822909355494754856255033772536626103443865712423723340993802882732868820199306205835429797073698152652722815996429100709519887182995088163798100355011533784985914397487519988923278921077587802658516410906636392623210134531381236009051398205356274799685612985324192650268459854688869965927275661343172463644474659256606571364989803404671554980310135629655853476060166633453312240129755574757364806810008433221057326656626844032904450029707583485306441613487864507717101313783833567449072040357074237721166416809067200022137621086350513335575801578385685294055233306944762805570317038257805809854016367578100627335109110459561630417665210163244019648028520593711096893692595869199032731196470318544418387135014682385605652203575216882862573411098225449169860754014810420724257961100623800461087281419366622627149603586098663684135859537668432094695333969649881208330975058824559887015233722800249564940648709903383672918364458830132853256598094739471711069920619170417916319969091922800694813682041671540062419693267024983548151360148547108574108506728902424991500315615533337487345571391244755749537129859414851401788808068959454766301571925064777556016653154070969901958465388957831682312543493156670487384075880109652410925231172822563569816912361302406059861701116044100902259913150984834905104436854739934776281042586549440649784730701638397050410010151975194266325752605471050427193400434779145644721951467074538413686668655263560628539928711061514700617732679949714820318247651607586500452505323522005043833225818661532676556409710536321523349694605595112531750374755717940981154024097176223820425378725610431122340572157803973055095534616128683567301012498280514118467561624253601557383344986050060643056907368415696169964779047122711748429634989692272336392728634128918014167260243365263467504495425749704122074488791839851371433980040131825374086008117772898973469836087811703084834590015982090772958481911560765549271238004099163474031643329570399403258761948140920009727557510180166217989471868495368632775945547465787794098835872786376976148373741412781872253723502832187149017957313876991958193042878412833789805100888624371690303980665869221030062412719840252992617704462346542356074639844795971608478687469446493591662586265061877533737107345093525396444028426479480161406610476830846363599166467458249169302543331994317441928400643535023443055087276398437948013605635426310062677192373940204743823723763316970174844306801723432942991715896103151119061911133478695813444876064576198720122116734902281199301317985150565623060778301339200544085408929934454087796932641081278907421250130946618797657833446270939358103929849947722161514698100235327490681577771669001461878051632108463876277371591131153848935904884425678699481177346799916501310566613997679214480767497707458126917150989728967211030810357929666838456883109441389800301854322481618653943245661126920526954165544696808925352710897914582096181009115469000423257161910957153901647612532325946695299943383747048128506567571268069705367275217065211633345456917020018839154491425503495710404127829677677117104470688927320708789885564175703899435809629201909878232560926529842631228826328146660469591254575822917270119192409181595440488611973559369376203248940450320353603969370475298553905522407362407776825672659844086975847523070744083231572786888124344281636647482654039985304541506258295923463411670471738660193739899577069170617789726091198433634122310559121564441460307467749505099529925511028077114530174356785646487387016304270507907079140182242130886712263193045944633384031688432432370116929488757941388494290242861870666875074884563863644092904016556315606794275147777896069662735858089562882905942858926042924543845028739474727046919357854402810209671130518011837181051193713888374507295592486072838450529749252945417184739418651686667622996476947282106582856898199663496502844906649733958364751475521332098065341303147126417873331146956937728429427539221522651884236406759931728138717338821155253111103662774793938877309278586197839715138146307329675805583512716498505874819301857728768045247424363956997060874036379253599928334630071942610254261481124383564844924029990971968637469356838881122024219094557468954356201792735764790495042089670585494171671010368424731899267830617729117635426470599328248047184901462740314980229656358425972485404530516498804534387562758416958402997147308206734003647522991593793323327254574298307791313693713231470495240820972215690375323079527494681497778962167243859721457849631796640450009788397399285306084996838013329841132062092422544018424914466398547284635537434378227748453301392567102384343173628205124458254625381876155753560547905774034200884943744223810243217252777431388480517732485684552322910251730484673631828429696709230329012910333022941409815531538022785001341349166506379446364993999599172510869637887494651910738577900028500100652890994348733378685246281809962203263408396158001042212368129428512357333159085214279852328038121528865950807015432604303330451037791216416879548618886937958999853582738201778942621285598346733142831107023085176831922823916838010468089536120834404009902348369546347892327037363361718937383964272690417737382160196818480694668295618874444544835491889257552550524628962213322733638807455934214664293773231382146934587182439117829682921079651273894296479919247126131704421979659398762292893715174417435626604063126085842921427683467278803148336813107116460888855216942029144886471478424032777864007496845773338161275753744963699063053023403148696167967212529969781464832996102685406400392803978499073170576458148507176655882859967037794300495604129948588453478983614961297584807630867819569619145748036403710203361296657012044971143192273890099768512014974987176800116644039320346007454267334157864749192528619886241360690298015286406116289262321121037746733838833932792781319280216398424348493034970689460817315250741028441554818638251133982913195997905575355184548215195444590933012632064586729280095676759396790840009424171859723771271504416792888209448763097861034988314697718197012457038394590646407028925295143115748393819831730401470478490533449256338010437405724791238480963562403256519493757282901712934482040960212040095438841948315837310936474331767818452010411505906293447495663100561182279964635495485391943980169584500233473652657833795118837832345135256752870240264260302901256139535794189030632552270766948453134601677608628799014098586423938007232773848267890884805827783301042691961181072603408998539556107698309638505479506900849926974771600114482082108813648470741902533590614470670059748521348957219481329888585402419301929544928886965342282655355645714476992108166502007233268187089234171225063489087858651346954855369240622068833649301865516502826214312085778026427295451883774089313894062112185908898506901009177395469334800358088224689782978891419849811001385869696586121907574412596712449526307909317827199848061567176442336359003795303684494848035999633519335322497964348773329407595284947157914126545525204415481344488549844522872941030189814898423071460520387164955656213071820485893684772041590473045407399708403439556992653379815076876790302097273327763320709053067603698924008079332566855545282584643067285598596229004977305913328999672984037910653079063202752891623236038040209877940797432084574887860709706065303405795627654064913159075310835128220557110651815645952964160303837793625534115593318978499325244411074722030510514682695068576865234939764738327045648765031727412438758512269858719262813974197707801103092943428652814841638850925978568227980709180873364161359199687922543385291411553689355661286270074995955392113472662959308760196723669527540360218607707348229667169119125793080759959932152368655946817144855871318098280169086977837357192880682332170912399293503610512710247035755363551916077327060662721085878887678944302841501649976138882463815054405104883636302429946258143364767322269123749083025972689771964844655652389663596226094493619490740284211645480448407515192790889424425961743635514200386283284098365363236585318129231665506812291663052319557017465373370650798938628819939989901924005211161233524957853393407124704626354648326099596639379576966682672066407370781820273657712243801553575413285823066430998624865976413358433624549467759888104600567110975296767604171292632853214637814216914855667080542788703302748500440388672564497070098140756493174729440125780477849538404857519773774518342389353551009757768532120058615850570531834210919306467281068507874532892025131464835487911624738425160854548851177912579863293040847140556458028053686929199408779650767694731955154317641079331140988822736766833921118196702959330656850418749332032422164906911065285510680865843730102543592268252868852620546428338846272063161908990839774251150889311643241909967268957039232072723502945189807555677274933001841223777019624968047600418699846520409099096449464979704824571879844729230343955029620737004374720338318543777065773086856875581734744170151025574044957992586422681938639708474130223264026388304730278597473446490552229704500586095508842560085795843107407372162262624362322631602305136956169812810727865949225251252012082351067197358336530220541768740132761085544459703738907659343922605727943879290226299013147672471079443990243374838202074346771673115173062554956665190279689633368658650648574866568884527948298406864894072019142131148540239048605798413115916991249286399702534660599507817159275625774089930695456370818615216536812172044196990849996811523887296501047801821669519008976532184216437825465373591136328495233742916949643833454971753822988980537356709108647988920307362985960558544173754253858021965651403970973772204098597229745048083449586389848878464433965419125448771478074367332756840968839697053151927002045722687393844130606104908327174352347064172265189866125201381971450587064210766170566438309350964731871855469163735896472797774506803347811710934124393995495573594531276052973243874857136609457858686311371303233774611111422978651318031021231933480482131376021123701513309467290443391330617700592413766651785228462090324785396051606874718364541970033030771680580901995029731103566025337918339997255270191546653108495006804749331017661198923453592637965015157795717829359489709858922866840156149572135508937724797269606546793923022882363411759818415330863272350224330937107993859082126724118372551081942103845804721619480944162260313800162857392840395359516894580983000863048880091962863923148002265344572310637479503521920528556293744269959467527580231673712870625367163677531693126531395356593612228191182287994812531208956251983884349496866093919638472116891117190892139975217193197024269540243753278544860816596207336070918558446867025420694798856159557759111495071007725364801045002241189590499330250687459912488354275218583977231250463241433123283248209087457555366425910329908714226619077999118661672138318990164426309549694521990275356185751052016588390610631636789042411428174813464075801587341426666751325074874027640596885197238647153409705360288201251574452198905864073005393787542150355714425471676438943202114091029298642491257488551415173967454248837442658103082912886950313502777975832559032154847240192342727127008797979186684126094484531845694752797822529889239006382778592947172099610886073909649004817312217613570123772266794582270693749074697964652734509967633433488275152524086990781129519736518037544260391671690472101392694375553951115372909897987221725778024163612569225823903654728803898680129077107219985451258046282702570130332990150219772976644201303157760493130602199714559674555580981625444398060128034877796429405858212078237328057126320765310326499252157520504698092142171318119979397141869200848151694758953143832697197610351843722231736154586159992479866334249339159960003978304594512216621410674161117604045579690092643601587277040663338530257899893056440023218570242828999890460244962028389848758199958813074411021984250816205468090771447473746151124032013972831740926350361073811195977293318958191353785623141559187233436976709211515041282075093280712459989471738526277408324167233901257544244868346484684947172777268998195302007071088867879673230820079700536072464009089614721839709350435793434211556962858721963071744444080065224389633690683939430317818639110587882480399213367729255475666828080622018166590288257136380817708761413418470855628992480415043749814983437321442421186935088584684233105336109675541427924741025491523421961283681409769620285550185921242972611836211307940576719513441748559282327316929949203008440493295535260942793107152104293813101179709697411388355443914316992153791037444037293652421256132621644450166627313920687458593392272067269554637393056117855838555019601302676975168155788303960044926861420682168142992374799387378320626114718413545518420440584533552581784060692772503780250799611675544174575269153191826311080218322799034919078826154866029224985260473863642296743664267187317642457107451971265338700440036905569778997420648887194024853874553268590829839441273646035935298325132366691763123486486984571909503136586978763628599521845832260734591240758413318718943711498921538194252065947752825531163631536178593433320155373775778346724930050619294891889312702174046728449361691750003266983304938717407598405960829794367409816914472355596905062256691789681321574969115566662843934693142570648909848453493160006145416225226490886054683846567680414461750528645058875091054065272548270595235852638393760465940943264448144654857592797268428632158642665216118035769801894772352931998700898004005040917338330188120662947912899624712648425007053429392447476299679553078483903032640497487928497123745221195397232193970036109349996348613040213005242647535508326405704996837575121634458426579485441950692605999192251533873617628336319079152615653791976306781821354977016911807201470577692701086488946301926913001216749816842645691840730035694361540415195070517967211131434952170780809184876202034420562432184570624678079594024854896263821722004411988118811109191595076382220161172424149566740187053617731989419081916162794837464991254326978682229347380485416781160255345966181208621999818695536026965523066508327595356147372880399273955339656051821593536785105230103081018715176132070061100087248012295010790342549641948499102975255718740717580935081408198146326212771075293875857396821218543413190425966775560302124813017185543554332168767399779838276148696262540199686619644163309749300527120800624678682754371040670963715072846365192085267008055992632207383613788968120863977707238978446156537574370603233182092851248386025406554805330686901405857130160237746155292873433605592812474903778227577212176482572543584565158329799349610398751065741048492125227341763385650966997811179385289654891837566393068397853648499663957243947958898797114156246546332575750846727521019937396444970475753471184755706065041063036739679044606932534309826405144486114335180829067818515586335887473956522911578378696386754541311051653965194868872801358368957810660394927607191248435884351044841200038199584809025952882705766186166029867244688716459568559816743763957705028392116848235676295657806885883126810816056377186751580919808334573467185298823131883433557402288691338480546382429729477063197647531526968658311955520931342746960375198101202812781089508570796130905817744405936561008360872042514312750913508814656300554927981309823785421858761424637141997485710420449724764948344645341542574965025415711217064679423853095731178193387245071594801623153444347428345483642165626363545960065258347414833147607606297180207515182394664254334136136805871350619103508381072424107322629717415141935520003953616814139156581707761501771288500471687844012938413284328664153322736004772293340037571193261970696533258785006484241184297350171828539720571508462997860890662980690218273720434395944739853061562453359165505935056979671339934431299503528442440851353646988668922029400495473675306187437364729268492202726117589342182346191064130213909537971780991250265718069105452073971252252333619329118060196509552255335666868388227915619395203632782025282057627633066797000345565584214369295933195995626435361652953234913637756285686376599056226067498096861906520887186998737818247504286968539677599104011150252729798710867435203888506158967873190857255280215677989492977248292619506913736125429091848994955506074059138558020334593528334461007614164515484464817516408151575940941383058989011362502794545077974925053957909597183484348926694736104377118711332090103665571618002718981783851012214393114201503801778318236138803021921973536235426408142128707315617602759460838896960198778042516709551783737209514053825508626201902546198326996758436416347637440296293037236795605499644732748916633621094414086806265998657891524461693380760317388117426796934334028037822027234147855749253444772268779040696900822597593899599024442105860477151031729879664698463820218758545561214348644827294962183788308786557119684262908534833125403740664756295801433104387684713270913401220501974863906187677003225974862246005491396770099947544384297659165371742434809841596866060970477658519659506078207787852011166449574278075471258354933646954762266598697868547259208856251098133441774056189087651747379222585887070746858426691259778822285392807935089514562364821585818630319950013084038103547192909816870868390250748523898241224717802237605283982143231767727696709213625115453872449365881856326162467987442592585319369052793913079257074389834867906329330546026688362282292487720712564238040451832544663270759464153209860226645968475611083265629490297672241978431726545241178195320738816044658617755236420833690507956300232118861616434184133028392148004565392129397474256300200915127096050940604842260774887588541339502829310603543421902946278326704544592761413395378404072716404663541126510528433108793946382412312516033118131836819251764634696891515281464614899849409740999826647195598442692713957898694673723595515839160023423656632935046328929901053371013909966562606656414267966920386333632339375312480851039595858920721293930507005822844069865213418576375588017872437249452032456423746994679887988157437483507295326491283091550376061771449651707566157528054124545373253863870039835828783722576416827743805827779369275532310621396102361444710266280597284259358913375254133400580218968766430260223634121567513015103258802217610376917783400532391965423890229419913173876022970530372503821908186018352290982635584538247160613287949616333279946010155410603806256443268646798947681806227565831761588975395463842775404395783310375853177116375495259771406712796843517562694311674047956086684371036604645872932282052048611795111049182695786335269420159344411208758895042665960856526904377326037361241687252463194626220322057766867371247208311040605808898127150169702575571374806741695247924404509896970200521850804730849983790486653573575040018314908801849663735177204895746627142114263751984568891722413196745305682978290557158758892652602795380068172228503057287429759117400405002646449376770112051946375976762806535309797069847293163805413496974977575298530621208102579349765000314488735167586938213006226392561679548586002530222002683310596636542283921070554276039061322119056233647334034396208861964552309082628776771707043730038187547527573680300052409602727098571182976609769489938764263666265603909855272818613129221958925970203546289099202007889946804333314915110425458921318596638798285190376545155820013063710431358924287876338303153258437484957839390649333835622943087240698001889409607464359272801741855632021786995728512859536369416032493711421574112573049326884850621362574466118017323645854275301842495450447023555764477363573515661753490306104936280831874106878033012204039467311121580910496565430433710907211290662265360279710660873065676746822537329780091853886527916837268268606549505857986657334798148424525680076738928722462260860839833360217379633253166649548355335715093592188180739215431653608675474712647620678570624759284878196726931350049612555791875263395840495085467143803615912267826095931365372523214799165750019342319176993865280762768738530836110390939327734692848064539732355379433219539298161275820892085198665747400365864851110391393757567594715575924641036581116789656777529995286040447618253100097204907200149075385764261285569749091395448732374529925434024776056175011238533631360227371170596019665332983931865764283168126052214472338228574275093761303132651036057315186148604995785081704323469948752064737158400764940747014922871644522052870862058935046165119272106739548488239348054780432051886863241815567392761212903228975198059282164003435850512323223521541082137747247681847212239889300190248698103883870304429443441297890818934793706000141493714010111187201655553317714949597028446161302650500585091990849782623421706810721110652911549290731248411277515946924390914720293758475965290966777314959742537374351622090965509689077475987947853353955112472974479402014952280355553206947096603654829949319755479695737053269588081045748775471630080037091160705218982828725281295231037914286199060608752672191831677848946102876847247301906233413879026481448918215350527370984916329258758659289895942229887577142741769694446783269466444640501002045500882625464418125974768360945353429344564576135429848951809485819799467589170380198764332409377386283274249686831659613568720610445240821508598438726214878309883440276925924319200619537973639859769253830528559330950876462715882745834590237013047599302611247167797414162648017472427297393701438065074176035105533044413408989829097281737622360986975874918783829815848156103719099614006055772595978267257626723794948275367283096285706439577391408681065938370742233474287073272783189993688596860559513455654840768223645504987057466900851056786629100002331381957529418726739006294521123908423907244349337497049395735701809354867284367435242054248031017031471909005915272038211685785348921089533046479371192742051327050781782805284257493371357409479344384074547199947770552262607566916151242722796559552196628919007817267775253096874165241420902898740684388299338481163408024575046285732145321567501601153162014231633993053285844927668245395054491502497582950448117838210676675335741606153987793023617855277117719450002728755588346971752085850404411530695293297726102742816390394526840553644059646267382318876198876915810995971331885487988777031906876511460642371234266639170817603500560766397506937637933464560500195195795920647227710792643765791644028465766043315872092035304716967864850539341927738393267139849625542631978321779970644998807367312078764385381684670857831875691939256727005761174345688964487671240258273848410546846586462845284832904067517828463716389445946714773028643711061301031602668979159777886903387791373230808672527249572005405918439928441476504345458883898248555487391865601388621481070437887432560396727692923483829914427021662553408198547303090635813960242819669081237341243761548006887746783535198529061253559548574355310993667769212563449968039327634668478033154558093136690220180484131406073892948687915798549848113696417198321058104240444770833625583894195977671553977469934146165289019244876277174139592728562974989056859178196808782366644051538398202144549995463313858619695249292981369862053255482120816178025465202278380497331152342654309370327856255310380037703901315273110969751617919502034772921883696433291407263328793378198309904187334833311454263953709272786437548781493784252299578209180547162154112342819464374493791318797153547335679567796067169169530872027132264221517570407037062660865805080660546881644039779248631851992276414406953773565352362262400006638175231363411020589881938072064365620806233810499455490576652408830350230818079813981286610369259478489111389714457922440220395862057534786168411989457202038107799457005134740737719885358061323631234809615975775877990725891503341981542903646353808952342387201660275932521958385521683113886665677257074755015914615937121346913334429421205573977783199417533682935164913285583226355101536984495796730157420331983521505983929580449203738254247644369465452087269925095394926218228024925315229539905344942401540501012307576960352026577981404561430546468436263118926033570285657285157533660336887844515751384436174176230811028214613793582855854498196512820843719039616574327454687447004912649229647702466621546885449368771459885830176743399024931293421305945198868660465318203575020777543919049284077888557380279776344228803046532690831918164621755862397921115185919405102085120694863191191277627301478629636491087117829176900815847218506932477304022770124227526621265029964985451939471123322458467630835380675996447576157060134340462016428138010986803146285171550926160096305358451715638148359435971833707879604896888517658629091370835399578537882248918999045040997686994791571838535232869562606496376504705483400856953401506309221874022078005873852375974746672709018235107545356114822480375815454781845233125182826159004164486703668019888877737616903189080402202137927638747608076324666346335673122469726999019254400830182512574118159421142405331331032032154127855733380485575150143778101229662823817521398869437973530690942029912965638909213430403012268500862774891678044785899443107966774918416622691874191961124767840777289101161780312397287858407122041670303588490034500657485361943337946806073284327372391907000602216717382113683626916028009248161328570593599755144629377255412372197836699317353588328335029547753069532120972106922172919372635724662879078534908765094267100574927643555292180094799070342024122921173760202132895021556096058915609825964335565821219974644041223805118074309081718797562951465381295083112548487893599894897910346778821171364576426024654250103296699485758033102738936174447138525783903139060797213776109518570635207746701775147889369679075954960855184833180882852139761774677561970389604386880456538003581317603672151330593371391875988549869037985273766299559174441378335964069646069727550294167365968149029115814220169997626029474860669879620979988338174813546768340966764335508104033817847695763049786383812942258295790212396642990913240636413566244703444507490549290417012044138282126256982071216203656826563927877851699764575933277556287783512430374508529582408166398931147413885461696133224041429882677218045579378607464515947656506082445979736180744647201095689115962988684544006972357291443680676295595463925419069274923552038968107138308270658889433223931372301228360412851721426149352235185791273811916544447422681700765267206395246457682636587673908137460983937431227721082397118443227669782173330681774209455085772527471385381541943578618305619906348818784136638051834252094880552720904449276074900065870503265912953286997352307160073935818288588129831523229281741482092347025628894003961208220354270772124904878865956652729814705849627092429939379269971131351895508767265302446875876652375173475803928378125841554519282458487847385841208160689230644839469014779840331952828595603489248597526424030624006959004169691400905097694528242129439812306320154396822245677872175442720934463096412218689571446947122628517876146833315113198926932199650142164964698829732132766897512005819835347981324277278992735220769171513739332861152244505137472141370843332024347979841281601158695864220804096490845994670434542066846117241201612903709053256514473820395931060474765212840700265575336883700272966390554172944618811256752753416620593126899933449429966599705325255047297594445818689252478540165107738536768339740226326322408796451533226846238851353711213089074425726560018975515020630096887112005874008168347859669049617498127067613547522853005589889607493869154352800798801886170724969152303762704224071443740018751343577873565876873283024685183308487767293579797286794151596721107616485434063612516414329997245761783828730941507896241006416088503415562397526514968904939288717930277818194497590992803390823020114485497870434480399077981108483300382482849064128708835623653776227644800443514739103184627238917924418260620697558165079197047128787567460275236144637263340960997015364085816128784642553830108102790300923213850681074659444195770042556407858790013476402809676802590393572922898664020625236839548930228699429455610569036641709128896216830337837907247871553482112850106166806886230926255169868978718973543577001336493793482516900895076965235308136815188866402117568037839862626804118007668924281733090247850867458689383855050988574377738383001615814170848445974868174761327580240570565840707638884956019828162173371488344876655908556958819044296634988937494925905179837006086831994055245322897101239583482309165896463159732579769867958958058900242091703407936483209882788321070210834843663823671063072818187674290326120428209227545037092788360235119660185561994990747741170532839537777837297300207587633809674559660234068974121228304104153597734465784737830572528169739684039171243290410694117697285199633845767288211928577228724036663501150226485537546247355536930331516635954292623625279180877901463664536199089294195810274937642868813490893828278728013970400018657079922265194660374084724870881222169605809510358684341956010382879071735332714987326226367220894007348258690881806254103216864241329142740188629674766518655031852720344983774531495335616562070503992165023932811630910365327276333254391528334576298169978441614912702421371529753054881481504175025735431766611737126590736765239601891425706143764011692481166210849040812702917526690974507875123551114070542514824118354374856637009421837207460971488536678160009431828767187928965982962438891616102305834572503954202796710958530248394087248198561376432559628374427747399653140027232045726275271809552518416473893410551070343913645609995561938751683359527110334960206188280722077573468433484420157388460190851120664876349909329912414991378162364072184820339575604958386489872629774603335695826949303341822755021349267620334549953709221515918715722496610654808280162051397840751916763606705139767298711374880246474720962783190926034595072424929679941954034557791470903281391279601477912747723626759799639021520575114363267574843917660119981390384060534674326337848893004237834453133256644918087516563494894995277743411361144926229557557080735553158367445063734964740148796078425048696888622062671244364057837923540487470479343855972750694332711783163272815779756031699248481733690543097684852139288490387792421214547022079252576169153066962219536860818836753106332760949349496498948933394789766732552916947451570456798692042775863818149834400524680067251172387836052194859132569254837142759381267474717671742624648025479126725132721896331846715415012679128391504185834645539098204111964441647815196017307573300973993284934094820890289969358717008855283885047714660104952548222913627689955226089496157236607186592144247208647440798588351791381036563651427002874392656398100004455409406856824029757729617860306454559905930555923679248410186197788723966702742499822727902266670752934239807843488529726532869537364711446891190813843030032133280805823067444677464638916405602590980383822318517106869159680507911144838156334608221288705295706155956497327853008232166012784538137398617344258953464183352258109514871145387666560858900522126495783297182814629364697284337899053964264096634801260369913827934667159105358378715982447790132880794499380950209724045270064833386646667732590216217211047654922014559137468110517360110696376763122088154347382018585730162737756336243199448738798395738742764722143836433751279375230882638831840063983628749000942220707459867539415350460290907704032882848296884023823237480895923055546854932602003400136983866594277360137589302668208610651936243535008443431567867871967196200322601211008657725489976373460971560327235468487933451125253291794822193234758666794298792910276543717759038397140575066137218821762243907148929511832516094093321869193958434090559185900774549102559902106706482143304957292015598524734879463389307914050103147134301627132018025266210610320088171971312935020347499933868452202502270696916223069349409727087966852962926217149072754977964400900242654847030795027151770300020828322354726005860771962079232902993800171753849796402113426297187669743782839646164059266376776762207965024555619200651224129645297558152675226746117143977844684745303634089621075269695842103719346150925579030832099319441008633255499248040480320335934627168700242954388115107391556891995548644800138877470369039175637661688481522635060716861329885267151971903000537668675213631822405628388182733242572717803032258054422304518642217118438215786252229813827127322434233788674704335464090280304881447625373680886373410972906782264992703297232735357441201583596039882385911012922910282915927176421582782410415157402239629957809041154663300632535681226184375420964335364107853742129449756312026442205172370225457101648789995866608128490966519099082966999347848309614827977154242819790871110499605462026375686991920327886866304533590190230749840306259265922731688451960125318039636168242539317951126521299188378820616814032816868289445938829215237614297715735340474623540176531706102029424163905460605835530186890581967663844718474430313051927419923499757665900874509916285016147278504775452207136165764953597423488768474017346079997588730705898706293684703209474389658143036308334923192689968933837766001177243693277088094797598627035725034307765996448768067108849944908946116231023645687664047332231343375455433574648646735611285859619278797196144375705391337728110025706897469845218222946608077588151709273349249600846979106444056583416495345096587982464307214899496181240518355474704984272878179359761528531228522194107258250005827181520024236171895565093131024379214604612536066529160633535237037929432565017584742813138700231411032146694213939926622330499190774853411821606694862283991644278982703860813020128672119390331760441064171899147461462211150133123445484555190565241515461867846380721709700130579482617817723859217041524365766162692693379230251199108393267805027577652032351674650778789392286733286170639260525617639057196865176396086996083197745915066166161269238973693223496311333140810996925795906739821253391975329955415947032949929024388429728901308943726597900127549293599208702255503073651319938520668245955722393133622453705654284314011812192645634749794909448743010697039040429793703747371894578689317450637888431793713078490113792849658208274629006406615580280558343246867898003150508133600160973414490249923644504902012591891124146321030963646892065808761785417410555292477872257091173015152905199822359285191102607762755828045382326625716623262694094652636440190452311436456680137105554664558150782253718132515758757305675779498172537167819586453081906527655303646924823940388321489196877276365727459146263230754926201170295673990249186846642145843052467096432744573663436204530569649377955950272983046681623826633447760715278973143039281748291972842171193703300203480935011404057001202881934669168944262803908986338432057889558023013647799510209676412578118260191637811548343323218771217665106729147136671095661897710880501361836725678833512158857510049885493356508122574522326098834494827846972382226209145111652723851528604006274251592767298952460648779854671040100326158678227950901366375636908055872534160805433201299660507449840489338376017882771555896962892685849719596559964732591910960863908521164977778567075719417821650909143842827978126155693892107798427491153579743382117040314752655921830412067238840328089668382811637021222934424515106846091397514832066432939409397053183285765408110849229293985803152770127800687892971467889641580924139403232940051713161481104031376848430013402596822596846907724803392805467455272930211050728172905253351792672957226615218111660075200311036679817802772426933042096648655954514384657286634648591786949358061268801724571376446147708882379757447863602789458729218083980657203299029344629262704751182039127920365587935477012382264231223511196879298588038141092122928626939480139794902904212423009715478892938444551625567338386102452575927283449748120686448707492828322824835375395144726470127627207639028012149382423842654207484134483508147486303777097034724235722917160922343492103828623959088677708639494547720670493307454851634157450099183089939608538239903113757167589626164598922097292659460068068780833837674727248258451369887787293251773282838817845680000734755760926742816104095431694753159650891898477164194260545054865078575592752100965629880959757103794677105828383655549616869765159642408199468662267997221695444273471059081779667642723598516204209407170160462080630904214476127968673994365666556459764905710778185387301514518993534481882302809873779707820902875062526584660220149449971210043871730239141322309971431946925889612186185614129989312778739175844538551853533551601009339676257289453300726524328554410145891504523450701238289027616365856896915603026479963490626683009387124511575418001970470044850882274617519303005107466512767138781043450484627141677213151468875386859154920951893423476890904503903536444858389054781338966023607185975339444390908620429011956113720076800917503533004178034889242584250103821848369151438913663045414029731245953264814497011471303185778804653193902917420098981139852935456988937558000731030493407920759517712397220267794207713515325357563263204512939879362017315368798501734752064408956541145062933767698073652436921789962845486917205494724768354790635647378332202894107329935122320411211854722824869476307682204951343216989502977504468530830494132100415105372689848501659127016223085710086773106740352287000423362114847988088902791885079591539044172198010614197007360318980853709078598934278188443509409952145219910330370005960786888470168160436627653352675320830469311813368825720828035986676352319365767300904310993377806008578330963062276367325765322455322405353197892245304700307658607286598664716301184752581682291246851871526271206406806016741398894037155408219107167771986105933666852908897025981521393302345014534910138933089814962243996235529847692903342780942965615620345501867757694541861762505860979612865027526920104030376404212981776711959690336225645188091357741431869096694975674066502480107298272008094382245462049880089373170104788406289126734536663087399522705303142232511386660366450529087087401131986055342261287304609520444855050407872201452631957899795114520380118900090428893710179401585302770830972089296780598593623689217778903237427368818450700488793694863159804171351919857601272471120327098021998315135705654183018280068427365589579163090501767496184910714434961243532124461592982125676963064435666980142003602872352024456068897429291844464918147156271745270987511571260096046875368009163668814269094950215201648259814155824030399999287038351431084945455809075310301225148248486338355997669177240153050553401394734784783176855939333482475076287973395294409750990222972998639986914030062395199552046639118559467771850752114118784320783643788669696211204755540459887908316014080404255674755638324439715570133079340504566323149883275956504239345398783763801580732074847800718339669751637847485276709872676304995513410300352002427227277490126478785997906284795828258256011460697528693709311080638097747902583785473454740318361708002313504094868462540441900010166818975739452339863580814547490218810919903392352544793805361556568353049638135635759827716749638837149981488065329053974166887232111828766032840624095986380353903375398484390327038494875733458924741468116206510643093092072585104205046136084036017023899727068891782664253436432649953853010292382652243416437577340836334554025772145259976157053584188954560960218486753204573019080666323670985332950077184627177692046244199887309705887057668760451022404474909292750286999699479964190898168206342308653272831142035783077250783337974747209184986637942313654968794402600729572147279100018432869279857979748739010389259974810049528658201758352666407756722537225147862686967909598672759194407102497973266252048991025446360339802959157861907032656916292803327143175152212835987275269060313392228766880786513507280098129251124324565042376549776304105192164543671528471810207429184623460562595209678864266208328936251063856955832245593871881186280502157014943422726650117507313008596454336198589030422854454640911128866873550740245535493640923794505888558675165701809244274833845480253376396059758158351285077259497550330438040978286791420687782875329482992843549389476688605156959787834694676542677658771499896254910221019357972118424088786242280551219518579046753759449147823902148070590189031439292329480768155762015926877584086743019147129664775463673986057502895723967609243326411293633285102641955772691242894721591757443740609505973796245290379156488540590998644320332377597566543380190671452757345305649497561901161882332772994668121090165769647756126033216528215267435234208133142026240944989389987566279813179109371600269581465599963264053647953346395755801860672055978085559827722982980042792795873707384588756183625653951849874645349514735578601188002425541132473537174457559234990884801513631785825159641611942814648418999600932843117487759190556350112758314830469753057787867173501807305798229751490497263129975752067135202147352190987865679137546788408192800424169020513712428378548175246395406806743879335534254738121885841733234483636894099119393003346893132476272942323871937146521953981744133962773024449280120333313276893371777021067056999126729389344136216037073020380106883048756606944765351912187207215811651250762408137887702337134080428907427473544804337631088623381635405231752421552556905327259357162555768403832561508216928337239154223930593342340851926857844191324546106066013415932126456532174528263784199651221059415907365302241129500416543813753742200112355912116214264745720428364767311862286291333751476039899828417369236555442518604747125614818706414112674446307892215020520501602618833920701319017763451504038806927111244233341487914282419698392191389807977602122984104055526997670735802086018666569578781168231012658267022386981379812549778339445132863885353842699915990316016889689572204111792925678706214493796693796554642549812475725702226313809464347572604356416259094772400477308727347385986196310114033943311930793682383137297938140644877596219713405954670655396330635309205216388934662953587057143949877691939382555353933961634311454588409380330040079603116163538991998048778374819485852319304559491632328431394605726166921382564588609279850505702425220030055737814805777885424645182369891031424112573597899748201732672383969420993959986631978935160621213012362092024862208128308053566145650464615592702087445841184772469190700979929844174782048540857757234688212020176131551017059968137278578075496974695863441399155237463860969917499773282273423660076614150932586901149448316835210249339548456411360855001852444571555450972202732724715760931941642937422075366355778483611453916353023805003865185209278498544631253226472952624370833731893975459747929577058092866847161445567320347440576323511084052239168634070838983015503407616928192298433301757256958595733963008457661125279942481861700465415500831464866433827281200457305339113546501281435643681276310678215227897788395104543976702256529232068882795651953046737113031766646952820711402682756935168627341621369210233216474090915284248639680709506208652885400620944706119346503637056505190154248716913210452675283929015232796270128070008322949534400024171757482060003731599531276641510938575552835038515199441030748774485927168183187648403826702505904149603724733940914305042443496687192537217689274423953762237332609476720472318213789666161644292565628600298569595092933754434697057429011569053424648424178626093035837938870542073875394749640290005529490133901841199375692899452665599167790864736463116832011598931108691875400019924697270091438749567332025919078227348789370725476601801954142160858614141625502901058240073943076386712103009958164929528399444905359234903778405155918468496200130799383856994728864826943686244330707870519513913591363042264455024197069169175290374631427364621568592395754438493394324466788150210357068687577007756953181648168715180438148738669979125560838667624859594780379676506655828608795251533500226071116146512615147559630710594423025509004665753004763074723296224456798995686113741480367446972980802057843916694948323821208252249680631273607662239741667468459967864226340383073294581060176294304275370972267484760510917373569098186255491004701155554401905954238601232431728293395330515595640415024620247837802191134806131919725639855184161949886364901543209571173071617845930773148974833227533306362178602260407594682609695490247560625254720037556389429339139119935793412064333429154803008073970210208104291261276318156475148523170983806700358590087629041489374505018590178752062256028951517069960548973354808072581998438409910342446938223047835808090243896283563657031611332851486418506042744400096135681223827560443402977913679100694173811711059235743922641111227181867125951538039220421504607731495865533574290772895243416820029800575831363745899286998893604733910591040568600890675378696058764406131197775292125711416642968315083367372349737233696314043897190996671829122759689971573288232456803347144267935116524304812412480942083787246656519595950297777373756877060349871803839990248361638858125524021412293643674533161587236136257196727219860904304915448976039883364654142613172306316539231683860819950426497463117600741778991695556988898646574901779678403798119725132552938348231736143386327663712880866778818790118235373211645031727789996839584658349408703952060327048997332286661019857518961298764921986335399557518134344075876847782956872790489442651339363972219556715969894693872789702043705595973374715046598794307078709956621901195536666650013992689213915195190484631814404175029566620522948434130399991352412464696580426748906983445054990142335377063169476154744011706108450866135694940569214617515774772888393284144870864301381755148469341886427988251215431772957393317554096786229131649904482524940575652424781550315923366878260530255811410826794633274970959456635696454785408768045781714195196991425838467983482032001983459874183606582001576227395455565703057060002850601005376770012482570600369122653842341314725652831000722845143970316901600540568455557381985796079399929024584532976199481160464140310323547065149397912667887296742663845677907931476315104098376755861398377461324659336368110725770332481315209258461649972012986753637259127017949298619532002820092339220656309619785332776302245681299714021491249889578878182280807037851405067967375333974640454663055334917734753215942900892362839463977356908178095313920066824033075605429797747775690125928037905535453929282695307017122454446351150154048387663189144266238063842839000445321251970997559284685723676401329880350998135205477631247109410315307055570031924211267685835620598300150468235213346425490749058540262836171465921921013454366986771371198367197106400577629199045700377694021149733121919665417534618968738830856903014699903481206342399697196243668524447720565077946006659146724203407034539587292525902138351324035692041993533702243236796828898672166010610564250825125914588586326052934669176110508902960588540856564636692653879595261839346404813888939377441821714953195704887451160418474741515511645502418896123229729548901356707194206286390232143245647965860759498182681476975510745189167213429673417370025534361197710308897556306912370673880298415126293361068531063982233150855569317434602748871137192576628079768512515193967325892670507649246782829030164251862132414038191748612473429463335607229578065223096759783563325184460359723702152842863469862701836968551479424052684765412934187637760083922315844648426387008126880583773880547616326361270769658427575163868990600416765694055887874860515367900859870920622187030813783322736794677063668354430033997430565715350718633447940217469685225634713412667205215970684419987023907166147960630535413325055167478216897578768419166470974670720346909232907407530880961069522161712786306154728920261650486693015887497517380751611202109003343611806623687517633910181304999365367333337558443311786292967679118650201841019771350638311946905543395044183069553417679793035021156282052828934936847951837213945137279119845924455699742109467743626548173009921830518344604420163025613947354335981533311483313832451861136327291347545569076726096034996199655198045452297361580252328692058452589185907356082580552856051498615674920640166506576009185383386688735431727697621364236268248165705057871821519181830460527530039435490863042984035745182142705139266610181563241955450560386381404506529007460831989613449916597555416379032805450771821441696409234872182825774158187866256301536500642282332823643494044754486767948245005673878076756427358508597517949496517179743024417762611181185582622458190500713179796474801654459998993946204447594999597866566866532908613575549440740690198393507219258010987465326078549269206310162330109047024533959917169333144683845951324687862452786059113061973906319744214519790494101784805372312905351827047369116605455278219069604233487054735167846116407650468830592962200309704206192674453105744698262253315719092600495127245980552131674417138462284427705923545628129593752992342856457730417927996910746807213370275491477571222295850232089934675438058566694814212110697324851967167485946976057229415139549372192514593529990740931569145744794958707704029056377814417994188450684148085173342805992510830404557412825187283312156801156075373179596122665459836008577547374679903935379592961678370600371307225797172613479496372568207784470458936723218873264989727130629963038190876740123904165798150905963687191338696639561069023029601792489166172540833272599986053166595782524227984946735193127936454894052709454629123324776418228707068822199933274483785713374560647216224448019813411419492874781671242700480386721130626429925104420023877163196318582546861370129231554784014698612304433228411872877902695718496284004920728017786582502424686755866194974532376807954046764518170640566206465686952451224856546055182480143255649608534231839994657606929810692285875504014072186109271283995252438005154265993820591233639821526637273974581612654655480614975288052386037604569804010183170972474645141652846716542679614711188115445108862448784661464327110785886937421066879367451483699141075191172173678480556076272617421230335014547719491449044829015086098846654703406344781508938852181735480714991530916141857900520875449323126277548786974495918786356054857623803137116136579429988567590691891520724685183792841993107063909620137975158270821834012903309364667969504533875730071249046534394601804692513438580781979904131240897574173622093744341650898897013507997537576531260064027335904473314433340546409935730705696169533843542004987694877440110002964423220878168782460564927050350123868947228434069679287927534756436311180689893655719488850185997293466021816687864203498946381524526046963754290486100853629373075097517072914698821689492561363100725464462353127307279547906212073708702347267626240019059833638057527702226852422988659640466280792451512432604084528902187462228534719380466599230596030498897598145638768281266817805161540589494889415119988912901502113146521855712817762607265079070225354916214094744154963281361764705361485338091776314536856134352240796401583381022902135732642243811735342078225688307046138145132758774424569535123250442097211584930635950493132907677078102383968495215610735947775825548420698489886035003719011605435528205621673982097886252522602807562528994262520520530783322155295925297657973058390431876384219946280994870944485415689457565785493255237395502326992192605188703112635472399363876919860023164509153321325631133483935071484629781293538884953722492616197463895704332610045850878863732530404052551865872597391840012058118107474713573407860828321923225004257394176383985187381317207149218526648360722940919563368028213709015854492318414439365947433924450615440522323469722965413595149432835938050939398455443801047722236498928812068855815810415027975595613640201283525516709715991107520787501944253184064933365626503946679741750811596422380143941312382401040670236659599374017030711023799075006313911369242364166116967754896395646131356473550587856900118041837025093270086123999772345904967802828986450208034698543603673063963015617031865416312847278332114300958355024780578059426111679256368113898232648689367348630906507679200504473412342581694096948120168296024498078284041863106501716468104203222806827134072060487414364265657959176791383939301473520665255433852395624001067602231543712320785282642305209201232758435333509088285184782611266784750835157796287206891933702852838737357644292105186565455867444238114721737941404622115256107288989069409881497991888226775765038071039840513429407499907655249060019279054007343806095019494597436002927830066627807798711137427174983902318634017481923669107119683559206129589540548085924348146435870600572394351304974580944425288316796725973410668282028421518014721534848937365597579161170820291468269270177485158635965854069958646972054789754938926814986781372817518202704944337144298029202844478119261389075204771696366762229032120834735817612108507220011430612688687764874250024646394826132118166125131037136435398327472084950337121165264946936754884762721492884327683839261140863093763691658810893847098512265229067194695986054289047020735712498501644449508787138280329869237800712622168900888360291097023539399148078222583451648512202986776007686927322519768873406695272106269054388144751895777537124364925968557472940301570762546974076385527939627852116074122928150234919411060482421707774974345835605410857701636256373803307800961032736578291539793340515625502692903074269023893076284414470771854120568484134511715406410651694324143112699904391160806392568160305929287583225041858569800153876975681801136066220784803334296097635041448851356819095285226073791630248776694188569875019423702640860012595840173009630566850402295817870038050565460927239781414034750453801926787282341400504140352207668814794930583482042404911175676108036293809035047974330920571745292338442243349173268895743312942138493483036452428812303739936461687437222726278291387400121426902822026262662598438136494812168890532550496555761793108083430580082609142726782680908122943634937180373663366492522241134220552405439384189965782511218671496908887696566401500137913342468236832039656553181772341372897360917561680201533345498088294476408241704044213240559054911961985018053804843495548780461288549794485476883719192556844441155206444898567123040086358956866120767897769482321575298872972782899424755883053571721723802584407741277745211461341511599664608389067916963488660441311869712860240934133282012761745413875855639732851723219245716269360083842662328943512131659154029462367300668745012228374772582941266413451299660866878617950315354314872938226511066490968190958776153942025170883613069832228466988915273528746557614003463186901331485416548463078070642675707992365292599629294433281784885843441564049753713571459088081369548623009773297145796688636396449523519020868436683302426176675232802446280116387424940760745383847941684958243555739600588257865707355547553027969241970969779457095103277673501460031748478781357719493970507509733546274911407250866799494286967507814943676427783216481343006226515942900722525085296990785693469832182744622924352446241051541856313927601798132770029079719627084013839741768683802758443758977689941039849530919267001855453392129347420055632660809672092249015617169348903716373833377878465384492424914328326325701010286126612931471938362976744435879036030549864978859882665695170647124260115788528112905014703453557128887705398941199353439537006132829256638203288691273411446835020931937378392760015842432134686897428556169626575913390426769336516367820377523936846892165815901625202821774514505234065782746643960764931397009077664518292685491344897303148896069401756046359368119276697340390872619110699011901052672964452816030263730309246721859782245675723803255479364836133581404158576045780272608242658688984611635994874028739091483737865456953049487266080946291070141406384713870707725521671926961391645543897233355186034163447303571957841308013722744707873375899172366528720238224234636843453855951152671972228037427265374478850462246392873489599316536768429604788141347675051590095458569873223694548100877834282902909906095221603810015713700147231965990895249607559036338787940265515819115469520744285275221982331057235582948021962293068782032047423410812226232850233090280487056571308440709512391755094202464074824071469999703331533033720299378863698897918992642309879188816527202072906629436560325540808639053649283028943309072716971066757480632580569922524582159192081527484159410837858710979655999263987194955844113206652374606395346390808239875547008154806071661896753801978950637685144385026974499703711347345875202196659997442533568460445797395878123108269459198420234013670512767662735453552640223321128339176785161875483100266262894139722774991148688985091367749687660452827450453879014266373105228764362464129019664900156045787100649223314212243665814181501156818530600816728551678475678535870793768169541271650069376473608555927445416580642064602522563721821330015747560504265708473833258065696088173345661050026447629159415133680794869262833240387823286668334674953426816174005650592136306213261408230467918335942250548075711814169727976878606358004095676571043707885654291669365827335657540385981430152549587803673189265971582515530742442483127178247258764477284248373949156905532197442152528799133754591427448052522705639385085232250666856385343418945064681612636014296730976649274898332512638760724229435150665693126143103856972441774161085585784362699798638399826073031866875149354680560974243944962679786667986252889727372552645000485550246785636305617489547906765756398859467454515861368600108312623761887650942730065256685763094100327503171992947423076529400679477131501784556485150157227524602541954998372660845191399841585685379200979834642507210956439659968933724168031503159540775233208299008660734077319754937765131346609063140451711348034634811035306716229526931758821954639147948986942732773396959322360782668529435579114289307451829414570899420738733503104421418278913247889613384588955097596668252729834071727293639878872794900280135062652261345470838215845505755678063328591807532727509257968065040237409169247363375261533692942723576667362694694095603364244236598541972832500197301149046799115555222659595756202887701750772553844890060325873361235190493355919037581560153429695901974413933210886932814391052362198892729564707505876400794577307164608484148228961558199217102135985982226857295837199159954519201637201468498866155416740564370255250894878985752503892115608138931019348444403963143144266430141767136517439376441741328310634003481189429959588219365491924887707180626083759058278475613845848902629200361972124239270337400456640206990191324058721618258361255998178416090505662048166639616675337896082607290492212451755314787483965824248119408395497174577014251886634295388911432680335490662016877910815784293170352178727628271430383865750691550660575211037374176825727994083625162913020097836300403306774431557217922777250404825800668167230794489657355496985191288075803774953056377271406023818671904879256027380485534373542346067662024815362114414183556058016511402787582633958515759222051668475228623970727081419950947947149186785685194022183151660238073726809774078637282064889172762942382312123536432529304100304595039684568672831325488511122863920021908732420348761185445749638204137250539707057445307800119745137402314022053672601092769160752785679377288627278055559366352841290886446428966306618280457272428368422362710390346119137764245439425214338304615971116321233765943327837571422858070070816951430561554514201526388874336614747405879501333514968613130120614420130381450567474569978573074941725350077276216552051084194502857467667487102728968252015919164141862014761908177173526812044458556560108058937038557058474937610312908934603767623546059962150301176125878379550729848480595942062252679762648896342696750426357073734422963631108702945924056953094234459192616459966485686049573901102067091525106744286871318179627842273887259554459408926911770315865329799880910643212736859451655583862976489106742663226985260352396440701356245338509708101183395131430408557139687721953945670064765426897398399366052314576672485788167294331562441144548544103387907072516868107312471190016441527009489530739658855385699180642958696697014600923724398240126125332835750374538512126478028392333004480392886649908151691917153310949329317254915508656771032208459864718847633568965282362528356037306617189724572913877180025249112930729986640303313352007606063150040669285388929941458175826186793292763945053722733270952383821243498452972690390343553046715240506888797585386411031102258313762097171514132656502277015960161909881645200532569566904899911200223283817427449018397539810015263890357048800371173242957560477884900078536546903422781189929697581851862257504637890077545405366112190220543042508727954500756058124760841237836914487809925041008118321032522569609670703387878226572397285484547391196709398341960260458886531245066284281814597763450239050647190250832368058713587400386264847301040205206728053990558644969307654774895034737012748701262462734124844313142870820402120562632497127601315516264234977759325244317059597181915665355548181656980870858074418914674530769432920751857328568577130235451065211349349392738722339400815994360845249066592040405972379068772772301861607195016629127245589778738551878453306911722496259520268444271456539027461484658476086380390996939468913207378233256269440911582595121199739720395464978043690884271143553548902676300711647493920324734276718907045945328524266015682806080363337256463327162196388097560801095912656995099844218292092304329387212639721168772742397742838265599665880977070167353577263439401539447493474576642096876033634076249175189509917425511583179994423710786236397131645947292854727160267909857582332376273174528590250997705783531606490019808598261452104266678213013072767875987554379554995577883337458865619251495128206645165378529761429721842597637871702790745810584947275594187086820995722152161626762559072269179503594668949888977534220118542184487895811658557379169751057391223523681761785222434413126525588331997751970438838681442012246033020709605471778974405079208811122677806032042520486642084047512157498348726554455419575394932104371203027883134701544161336460085533869918672324371111510953164908172952306116695769599089137655976924055671242204093125724041284192595666782914860449994344906578802037443430043195810430984020962129463436077338352944971483713192696898933819726745105023606882524726170662651482333381638299539544011283695445499633135592290618832173555701948819501597017793636361393890248008091755031234988447399503938359782278623043218802491500864193782613068542278952522251572520728889862789463318549896749194005999543937459036418949752858181839480746216334218973934319282230605783368584905475829747427929196256853364772996938033639538162657883645784372761820690581341013999741398448935065046236047934244612843838948683579963097026367906098910248714681507504141542751753269530367217834521548507067944935136294192085117371586613153315693384441304957600972898442141478036231606483234752777919323785193830747470753852258717244904638099074323548827943980158722484314616172755990095695922493411211563934569597203452756644486914846727465000387897362716448782934911178361937445889237567630664998289150732740403373440353972506026269393097761671707339040600960195979792895208522412267922529273553349554408089447285355830976614653221683473684403716235255209738932379755451302907025859708015675276439542303383655597905114131369141299501641532179815854327255849490729577338516281405694313265162091227077606204025542665082106769456344646795525114031601724483570014942546189582583118396504363102172829586423153138308059545289602882096844593788582415227586617084140916920546967092102690293011629537512168723040364981224302141523607757691272036726735463635331063358816860169285542515318204928866224159897830671339371697601379226948856843641898114777673789819302315390366701398983679108489202994535612948180987391566145635169817260732317037529241381267410683096180730243114928381256550749569052745368209133948465611465598240402508900484479691453521341992659447048687073095988560732915017678430935710889448604736758436635210701627271043259250121860194702609464989149049115005741811790335546649706604812118778890235799870232284745434456765326597632800349865317949368735341188854988372079124307912761324976111137620661082319134478764948342356063412521988306833914855703078657337937760950138793892415503694108641564951200254720479810505642012084798326151623479376146408606945041843262913040689443698895401045556238217295445801002989355051025672091053405673353585073776992835174606422327253887196817321215396204261342197420038075024793828968743018402183953240108169896103916882678565133591549091117716507603673941822020092882998794781703394018154401233749101411552223452078121167012442675841815625003832791057478016286966246771369437741127525229725495097120189177061333974682965024080254366940643139107684771663935367230268367463094124953823535409124346022543654093998042065182122729548539506385672867835362030557374944349654328324757105989786070624049929373613475512310557342596579076784251151956188324597012938611245284852985956181429252949361816464612474137781852962044259289980192632945237646987602935430933574250339479867905796972504767914444943830721972095879975955094586985698923685322752909185573902979725067721131540893281378513296188297292433366114663647275928649037597164857300362799888151936101555087683021030770796493147330162220585697718634662274961432526969233345097027545492347952406069976904282893783859518017064051415937387970865535022691153236659996688824200374546292685924615279447866827210927140184008057614215221153954686512871727848979996974990912949695881132703765502817413135482197412992397698473651272191477500384157921127546445808041750319456302240883292530455670582782739508727946119332756231036828868103333508800940132806889887032483207390508996043961083875758992644133547138064422950785332636483751729728891946313394632849238898767509485456049730052491374837360203961083787568068975432917223250650193170114920354874198764509967843173925287170287057429240606929574052524987414675382720692227986842366019729017939970494643624933168069743083330839672665744810702183348262450847781477120115888493512579805719703048588468071024792088452211227063245311603141114205357443669335072459744423926995457715405056013354438345118246775330684786179606097974388597791017130709033122679965922475579518217536103621637618725561743817906522205073054538663112257371974337022130701004406240872876646297715870596633995854206909583410485008640896942741338496954748206848602520701787816075923745980639391767521056094402559958004174734761003293520510508179086538100972503296366604676278551670304991799315025929119602480733422084027185249058028527960836308219004266481204485189677649136619460042754083347802035282885227814364245053123728631406143364060308263615434971403977254717011386243251291769338944531294834608717581478463130858378321874664054930512325695663143989869382303582293008189195433143950310189354916261917234266228021475797957799418950200076377833461711918889393744468563817689641112311175611742433277268356821852292454917275725100314657250077329468306542213375060978445131528599005877036445553067936810008294153647775640604709174842098631893258075762105474020438293156234378266075405114777955852757266647144523205998847404589091945424835547779084238137708521402607540328707426233350035338710766090586843192181838121163672488899001136849045884187115688818744834916598202749080411919069608710469599151156183331579790256440059515747018789062850460545893737381843196751089233037035893022330337085894744067191534779298914929206956772000651791017050269643074920640017642393397310899742371400701861947284682610009450782040018617955819386458622209268564255779770476449152158586441534195544907275822129223433911523305684830826791499037545109262056019499875239642205931280559549995796962847866693537578083791003355668062928622243805189152447802296935657191650099649627457951060845988988623330919631457996150909109912981296397430632145504925522290942214447784135428899641032974675669985682513953264988225186536391881028816991192200456769697291450027105801797230386735389971523497149376760616924698785317470854281201373108599909328146401157485928637448343214692426368799857287950028038199924009529708337798788892574565442333792547030242814067412572830600854511217170175635146298958539215179284388211719423717724978970318366949481983649407414048627748695976039455531195258641021667235264831999047146964332961425749221620166248591093881668135177697645244503126000614866339539833633214320875654883421079588293279051863287668626937115571912586200605601510771930354046052964154213620727982143859014424512593911237114949279836568764827141051051427471534621342080158407649882328557946845046574914954335573630303326730906696482688947436198624946127401594631086853347849553454864036162900745956437867271649336600170667933700451086083645095510037418346968977391175081974913402704834959967190118807613228171557289476557708427736123653657249009164120429140573240005127969644836929242600216237461515243834352392885238620939163525017234048538648048296372259954349367378179186104088636094446556274093125186633865525005296696069655137541922082759522839905579736700101653470816962655669585716801253521866351038836545870816379460418501788395520906945415382671192017327412814294957474635505111259369777390668603987825688587597196076865492624219524765752464007367265216559275064982895073574484741953655218612630967715505324515728442807140352175516848940475480390086919896957161227860826676174226618067165317931497653746831288860361558949868674155569103879875830722799336450228380880458679410392161907995884281827221070888426368635295309084790247303160307210939498482832972113255553038119548478748602352260425035003300918660713246505382958054513861045763461668214415556770527685908261120730791833447748826108129257677843136260972561193838054723739785939234808662444128118708831375089075697670839373818434047500061478480113735113391448712195831990902069078907090866080042712152749508136367088056381261571986749644581556329100314111731693390171417861504729938774836358781367015247343682087586475540705393133404436005680916173265118077702754093490515137627338755682375519102905423672216788674604174441404898871814040029662308114287906673855004901812031430515622636263669617847841167558709122888405621804921079508240456915896878321519269706497994342259463774362225951039275123206008862814194879924406844551954591020883424135693828449159593746135727357405918120558292917271905630118163338752231534832456786176784759059101479783072355346338128385601523921703748209936810605947981895301391223671333411973400390903690786945840780605027583937395690866152823108028010638980734064340484449149897962921777149363634660121643553843543429823501598706546903561979296156452928626653591334558318811959591547770877155707812306119002725185017832938598394088231998345108698836354850650308858974808176457970480028897457375010610301788907229554783122608063081846448273541110287453579788560411844700370387212499323199439176020715006008906080174030465006804403673518192724376460607398510997039893192299855770697354374376662271136260801897489626835464036366227379838713927795716059049439340245277295492547215655999305800972516334817630695205102771491510350682294201774321651479896527813061675236807491522368402389361327073820667011044550602764372201449072140070904228870277757519137592553292084006524222332151936785287329136806867457843890338355995848901571712475265994747896066441919651375644308460981633368132753616164463066053135669554413344291723368854714186312234114911434107692864281656789814390063053999785229876834955558679459752070960290301738900917357680198526687811593568924232836287437059668371480320262523462841061164049147765605059746320386934022364764131913904213991364588009374531307110628851168899459208185770142702523653980496293477848188732144043927606026690732621788613189576723399857471388531291226940199802326107265001641317091699906548097318366445237559381808030913558173652129092315369890262701477377869272203152794874392136262716224944730709191616979650297256645636244485584259900869156782249477189714627780099996783823438221550194264883650800870295762674707064161576500110080250805803327791742724203406640023284618644312923593259061932987224803670180904811576850612486094736486896522536608862962495916978204543432424112826175420163768220866503428835956074696140835660716672534592554023021469611095976831984264962592633301844920987306155233897136818291655516449055413502839261078525704811121313056193065973459918171146000276519245363098629581311629328399716201578431343748902778990643177366655787190075582948919221112820884779622341273019113659450799678066928556129544120357428441118945944817479964271394858210905807432658126750652493125636162100886698640585956695966184882474095516026460255470945708996235154855773585067179675203087101858629708078033491902645590634188819021979629687138442354734324824433730358073862836957302946407595348132500612296546976629359109505678373088422066522525555736137469824252699693312468763294614466684905248864448110970228398205920842984979350786046220480080760931009450196449035035488031456959233814844942205300627831803342224890277364927267982626522139533549226875775366440990130936265293000913759676961045811161731487301257328534789104732895025401298304030450364014916354649743765804702153734715152162647610674272014041792622919790461105583308992239937297885518374148611797557873632294361359684515069357802348972521503549883200330972669474948383477709789496323018502463168211397565470551806303913704465295179434318338155263936915304472717820856609683994987134361067366831603427744681212698849174903794467898201052056966517448523617284655231406283563448045690103440386769575973486461069220776590183231990581612884401692416179379691737672360856689049515361751693532808757564257598951724608568767453020129080377690875066208752349230313010110445465312904619653498578677830945222591791803834301937974527688517094547512892119140265117507067626428839555864976639043195542137696474771280862571319984332334143989278015610461872814178742005670846573748592241781336446006156272236326922618553031902878819207525008207992555534037619793590933343753691343100758418472061805250113872418807655917011375426145851383356105779682456138119288721631557171336321940415908873732518924018652250088517353375028174682300389931277066304646190959386463157988602778258175392051802040309317517246796642057662623603781189726299133014094401253947647472365219610519693855302015323567835452065041863425163427968047190442933620994600788759915488745302110173711096777138153314799864634450455919849120213354724109048845525828075294217477875717929756176687606416890779879900007063251601752727664172066036544554987823629742911494399972203433892801243462492987548953590100488164116738156443323571448160344889947942567181737420446086348065547925006050017604869280388492268823472751230145290974037177867623171715580880152834115153168590840487520586229541057020592485667461785385124940218958580123950590801962323634593303289085871590328747422277097611892206773260265441733685110315384540959217773670532294824435650809391922401446030162641572722067804869826260060732599175667445911628057923581095027561451172408250635427836611185801784189883481310163126679419594042611003012931871727294310447896541365340434028982950957468236508213630293723929475279438038207526981000783784218261028863318502182038603211552783572391347549323168190776845289913047463290570076369228234528184111206596441074227977731992168664988184600483538753693868823059977751563872464324184317854707178708145762652402071912012224066721895205362781625488877388151213352637983835539677913146126776980278728697448986191488026472740177852456572287387874110233843594828282717061868919491866452424115146279452033242368655223829040475858642443697543777346366522886930024881474550631120083724884059676955306520231777407346788296396595011115011461911008870435910193132276517024533999791462362609923108841249998319163246177441555260699996583798064046268346947329252185721484146896548505023995578918817633609424465041944503122371584631824923475221219136451810725373763912968274636001976507122296748887420579761252227659209204324516153895293617931711994125683611943574036849285034195560741924985027084612509742010641021761601495883070673925221836203433209242738514902323592677756611479803667232862176921460140639740482925823614072828337445706803552763789521889052315719427645184389384804358843435777414987809971347823315769885253697761417269034357980681676868663602447661786160016703035700095820993418330800011440943880303415659324559148304981360519974282750587454214839494487128343455167203510358658017772187129220864559949526013931637878354630167048592462778623341590711342288396016839312917061549972039209584651093404958448865051203882564668515524684310794978356812331048456926278927153079607219129743815700568655156246293601518403023352474176912427050278687615620492490800695153114603395203152350913732729668609142735496812873658363365206598665766550925038947567172645113438389229230332326241018527751067542552923820311112618290399580521408673323559580953166908426450430883177852872590679951577999402190826098966705567476952928483948725290659008217471382907914743480003632071482947903683261067157912842728996169365000702055583694769157972854563573074202263804460820540224751316141290819989058432132778657870236145905616162042068886229000075121283938600341543970789802676497940597705066952477923839174768120545883083641359843972670152498051760364854184656241171762321710977077980484303945886335274160641337457503427552444135009253322868571664825528375182606690947046368739237052857471125944528844757983349285505030276000133136898065110299045740255207245827395552117852673790964617903482352986827428825299984364198795585075654765186350410538019697905143436764504137842878179865467788310035552077540594929898497866670420465102784073697304461811371840241668882649749214772980715102164210983160325531099567218812081945758367536486468676763517917521525253234694701177817046812885748512703766856899235808797222360361963225782722419660945464494775606487688383403375958802153615512230670874210646393389824507664181542224816876316443752084231758372114820929271089651202272429583323350883205044194111779237716627917854620225027601158947506913813616263886362608380635584653030420416317156249291336319865171023079713877109319204709861016026610058899158786272362486951048416061744058059436042348741424645728301052657640861848801014642748637613799807103589190414771737168296527516468433828362748714618927677806614745519585611266978698677910998066930666250704635584809916481602153340958146004527543573699980495261352556596896787445098327975778179935926900444700573226452745059177696910785351990732411944920820335969828728482964412707892657577845686094242485707046591091650487107139494272306776515377006505132057179403218843108848717802054604010383196006609063362082657540117768470261090335755842978785641854203537066558442342589039079974184711933203300116908715928374815779317544284016520970109722765117820977438917521815693588500488062069318936685974518432144760679917544362222132770703709734503522957886425419174905129973469723950738230046562579346966639228470384517400025874323633274795214896648410089499230177689423337637888762845545362565159851094368847972279873110438045993620748443902489610479072458783293353008410912551061862548177193050433977351393427631498452342596030883100011779159733606439858785029579755795767002453912663274435326808270156918254222604258462411055096178069708835156507527367387982922029227470662004289052548572922653446623198302070417764887018170437138920113712862639599682648237635010397848795628833174220097608693570822981334621084192103848685744747773788114750302994128343698980820848754431585752232754137280319097387946760048075780684191278498548263443624885533179422188453771692376249567423177483066249953418923947269339168177914745472895234913305235984123735039030986896632119220114783643985228906103796225390449131286970415797594520893256355846370523466020198549825811380315221332484752773189638151686899319444989083796987701380463675105888819150302283116953923792952519349923869922288449147005971354723765804839491736638139419796467897568405645155009138420879950038234705010371225397439281083908847558267813271937289917508363585080401690263835982812624933197618276855294105945918839364830790357789385148487063870580060507874691616696976389061800040127805982763660138095867200748877803467742504193133080744151705432900591568237890259477352048059683568901725242044541118509782272276474633211422628536278207656214345575778208049651473461856293152969602183169201121660515455024998294892024020705435670469717315274612860131995170594690528068844289543667632458171033039558069697798159777547488419321877879978023050098401863837959638524525907420762794801895348815900895725292847831069076062557251642819091359324574178226615383217141187927216910365427646972756445252784231897388042262922449992000118185017372128472087855312992154847942609135386019588411988233267898019967982472985174564343336779699051679729879260646033435901852617435556601091233065387946818002867030306740744027402651117851230972387927242039630624914498877727079821545696938212561866682234386664404331670747077522928470185613306532437967175073050947257326014226907250090026829560502345473149853278184426358728445795552857253777280784379571338340799122847160037910816310428155515121404106924952629025973076617025245333305243514669168925693831484090443952136275946829377509379568672061030373678280245189608399425052411486794869211902867560136830502312823827195887519950179525452105539705122396893318201218636696183818010694600787763037315655172407841007489887404976510564822404294497363470882579999024047337984913624333728495528685524756472633069304676613597351241817069312111278038377263161836845349279475833886669009664634329747497428718142112668591698779090678786407077061564228251668390635731574433532040247090249437395813866001889255059558828767072191731301534758440110136312249180914275305143556651948639430462981503569021466967744775134561644159919363940244531290789062676847579974431273182363924191056999825489308507555667764160800384008505627493244863332381256255420077345537505962222702455445609580485213252479948230772196860666957192979469353314289822214662995617282292400346486560827522154456576202161663290303773860403849418800720610589492052949216366171832335836543601038904758739026794284381106676857340526349377071024346231069065393129455082521571523588356950528680399019588920661483053436489914679404931530848183379962221476048056281429559933616874157922295302766913706467652290325811468457907126920297534670867192532346778118689547908704999844389275133071476804139925645879577161079896601749453533465172003742176934351954944393114634279365636553698177044646654205022231595007481441191732084892372266624689308115728238826650448219906815883706752750325108836575325317987309653948698819540548537350332709465270281275889438609042904668969159453885195674566556340626490601180430374636071347522711300637626640532877955732629550055995387035065276847593626719530891264499111786326293365770556269080952634843312855096784549973071489573719587892886448573891140907479850431860406664492780206257284426596448875383652676754544717150722980179470593364157587194329463962235040137412530202950354050370517594753717929550426235594405806398115935199889507097229965164787608333233557740657667147838554430944806710543467276578813761346123291574766281088695415701719911956190437519980677455616517621417151325483750241351936850107735335049319318677095713964379074763116757963797239632763588518772403408039922544178396507090691925669377109098238155080403235595294030485057779850730298251279769641838879292886955567342453896719110767117942961788531220865367426808934383463667307394957487454263511722396767458863554485564768014163290208286286795059949591407344082996102577489539760512477597786510098263909171564807231282838692266343485523151233398285497892939821415950894682485812788044723769518493410775400592947005634883362428666524693981283087113140501334854777865740984888643732831648549389220605641408062362678416301670983504464546753023431076836402043894360603462901599969311159845383219468444322378249102817594182020483788439787919196184207483596536322267124596445770560941560417107254288900593432946585918450538248217857805383287079004221570902112237153409830544700910370816657063625785622176801022721881196934305937923089264052448660921457721468434530967323200942262863416032216121113624288489363816190237409602444160722672054685786032891902917711164151141395477257589319166139752002291816968364407242001204918718615231237227008933357517384221243010830537323735429492714592719414085558131519137238761163810667363760132240046720917982980313330401808830005780906704765269336083050647251481997524920264643777198589737065405019137823213875909799156896267254139283397082138970676910041274725596985707042319074426395797052711429784107042694899636031882975578498600177333428880217986906294171517150149768919495019278561869096950514361825313932766398137995335473661248468866585077079370155298488664894216618731411293323661152005953548772303392543256069767096748491764387409187516639141113033503533898783568325141913023325788512855082590635443911352986880699262301118064092342120602164104151533689843781994749980124180146166794984754678060904276056042651264654615409473714860919114493674424828557912804108777332816950106055945928649194202457969363149299878773229706811227326782786273292386895417912083091636160554041428764417835612352536556365960020776417757828904045837330786606507438473126248238263107093947506347402125710163948940590221276825528546562426257293148564255758437313486281365388505410212989632900601104840098597641342715342708612060939510059637139555563098473390196776979982538454999834326632119696584348138597797085267100354458839044379205733160868422054833198871608032031742350696065366558500312252014668010830694472708956966144827734493660950332968460991499953814108103550356504531200375909950414505944767023228801609543765157740158624416019563354674057005877592403426825613207099599726873396112932460523531125179008367706892287192091840005738433178568564224291607037733753003459903411155966083280149396163620163694100423380755815510442471456003640177638578455007961974328572791934973473426592095106707258587396901145977113073272861080289866775605754307818861806415281494869068606528400285132029653516119441315046576473121372150932287224954459430568776370694860587673018073242980147753055007569065701201318978179938244803241248553330597447452102359619526058485441783184722220651115255316961404968341696447438555274986485437049135399165451262295549056669253328717328104053215130908358764765056207519022239779178525113194641561187743358155964478590687351765153090586076387130898329748945544284995835593479997887041463896467276951026302978256100501488405705639371626052917872391781442740273110580074227470208385439315728769685193275023771494271402700759395074227842953930861767922733417602492966618944864791002608825769346815223425789168237970103332043187992851218232453530638426156200288755250351272371120867253885986443085615313814989409631519207198242249153467268537965880546320631560430767050998948369818711043081697096932830074553846786111506544075027739488733392239560408324632424084857048184538904226289453226747185669090604198313608611955920308597183994006168357580480360107122204664991508788646029752254284694406487593633227256840187584894189502305136101327882607656745681646979698765828798925279610306972519488076328599520761326740185252637201247871346179953362866253292709096329291487522544442031128457077965441197641105927407785179574986876269970897264792861235259293486914434785218880875055289074606127851485349487591369939416553610213792975929409268422954466981295361787606593435481791414591789377436520771073263947246706611456185401920973598882885925861024887829595057361087318428369180858246099275215937012244670412903111878959100128931790193049056354303408910809764543855657230136203285072686607914139539598137839318739137975691021305164228577808184208740713364296285668314651207732232635865947135331294230775584256018383808650573756135497775307443984780927810713547413966056972104177074421239561090018054772911011479404102040313743349341763981448265092538533010831923866706946303060821393461574094763476489678706598440440383332823363494366328473876100583893243555131574129048293526485018436861419674576475224422155292832859504951199834212692800234262907563688951191884028549721956834802595326262685780543865437548267707087663660153802635082978240995464827276472267912082008820548161929877384379544471222398924194863723391396038993465200795422924484359434303493989430631516606053591410724270728988029584965793425554326056955868573858298878602565079159534839952668016951033031749386444702064304792377669658902335446389074104623300748918573608015090611524754948822543397776601639152625204957231128339426243105274344385603598235834836541626434744649670104812761456875008410604570312912125845436513384636985367481918049773514273549550105220770154086163245949148759507015244771753577821138946374930909430322185453770905456945505035997277964877564162904370229302427623143856901609235815308620228894862828877073849866343145044871804949818345194949701826631345739011271142172551307517310369609307328078804268840097906218390221217606910770146021541791390945888862226962460304104325721596308508900789767695716544062641862800417632301257766764876750509665767839871669706474061030222284195331210396993421455206883613726147130299725512098345498590843916328874176745863232962678229098762629784871808900676609493700548828960203598057882039996206729454713809519460499392328554389157855777848759553784677140386796663240889550404839508701662219818387514662150804177680486016152148077501787119899747467867217600693234681499251851739652774496481765586087676524532741309052827051475954397219237498368766051774787956505110121397229738965401925348914144062487782993315066413699029412985787449679216509961365634890622937696239878137436366626949203810187691510081149865319175149423437973828694608466213348079243297626449372015542768869786971562823759930121983138074342602471683520550958145892421917817682811449767103728675343600812328544121194735735291825767732587830565562102799867060714041733890871557559394272496906711270577385459090171544133891833703378923686873372258448206058419332657614023506908367350760325400793411811420723796905724274008321500385182049612992149032536772386826737388517449480181231651448717705765796888590732004002537382148600670210632375997096042802857899839982382874418716917767654211983230257531330080371950296719638889635219786646681103829622366140516300664512262434602777354380693006759033660885352052173594799067592535962081464415434381822702228266065118914150639905145905934293665485289075504790568614025811946863726798850427184500565292844142199364546468245903569371775586912666887239926624171083949823185939109441249142033575988313107238174042175362297961882111148369776147003583257561410554025697177139448413212679298968610666686822517541267739694917950120411808273005416677956137868612778761551541191096729574084015708336123791560237752640835275899044390111976755819372751019534314808365192743289761441269608373726695957420635397727407975461829170284781564286932728031921022329155521478422799526581168127834292069618760693645747516936631920074546697002036884655606809982159271512858227330648218817867092004430771138601876998933638844611611396854925921338776510664830051996002913683679485844881914520441941626617862496271236346959067934092725323595981234973324640999866717177564159220305863159337283972987023752599048325195928226567239191830963497542983968654726013148568274011065810075748322682767748824823133472277401089658948238515966221444575077278555439972904089032320582746726587951045087434278623554257363612403189093133267879904858679300751894231253904304214576471592516595377910167723415282400586735840788819964754381413136611090554100670210973789439258732539154564469478575733143371980525069636865696993173176880757053910009521796135301364136981198532353294580202075657622125667962854432690290773386701394047053892929178673054632400276908009680654386258269559179993617440140430581745161585066175745288265546865540712157756991250864392476529602081559266951465594961435317708470009916380048426379395548508638947836018297174378047581830569151404399266175002529862721237583299616605630137839648409737234601879450423542124444810766108283464358673480895589162501239575773381707082398274766668215557642634085150749962560225260556895730636891753081306259770620996034888969803835359269368217511622411414941010925147473267828362674159635891601345212079861156922813529796187982365018219239778248608062566034028419483136206792034673041749336912449047116141762808911647909233807980085361841154218635849693567003417826990458481431473201231790476353422068130338784769530138845128790781228757333659911785855813816435718001981730224351753167199385734300920630693351078811711742024528543458461892780619549477185063447168042431618970148436012602906290852703981306183598051815043954964347511004927239467603983066695813544594608063247220129781737314483802829324036761015528692821990883872726776033160924586310570911627320592183638710903867988046017875636130360052322694329385627261000799826687011665191283958451461710044035376561437853511145616088086740903147833671163370935198585696900314999895612916397755352193584735857052900502605552964812050652587749440943055922473362929847599961744721434715368751492343167623881091004661866106711893261945463007383841931475112350867489962798458687612242639549879306456753160247273788272426014593163824142424490134025034162284966029094140004478507422597014518739747279342694376823352037441340496646633464550728127460496815566574449885213934712181553312567764894469827031550693199859402754534972180943425359735118239256613910822423946296629400149442932572084366614530771448099019751206211466481334416086208399362112941684004876245948366908733308351746445329280665110304668112217420222905173490621982300758902849538907411475564864460719340602217288280698011874933956939737603044379872783133005578237240916639325935594427335991900459593003943629387664576481402392311815943924925996803217668231779925647017298376966119476290331806996337840939908589099680572812201512874827473870586833510833806738771261386368687659477781336662464808196678391695268978079408641752491665687897907702637876741296193752091131786012963316771190612000936120465931349751937540955147728523956571457541685897200026574881018484821208105002439439706161501934003089422524041982869570838970788146162624031416906865706761311089074533571629793711055997227913078873596774629064904837183916661338646302848969098820717874071190398446482793770718573826824811771648126876774442550751432666272251642638002664225880561335518576213639864481662340057180691668972202748235603586038165542239602601650727011062158325448639968566699023101371783380529938890172103553713465805424453579182482483974173708667385848848558894199412439198022407759250489987320968579855679906485895716244245087109426304384874115786903964900497619856125627684338088573755759400178054394806055450698552598083623339028101776898695971371863821277591591668769017400783168525521253583686987508052949224901808669330699601745006247208815988674497821700956834761090623881125765607439383341916728391552119066688552865344522271377083159861013878604250290232707575919010080120209332680277113596888376800500699290908799517312140786165204905321973876911448679194182176122271360366105741447118939807599743944067164968215500018737765858017750998403801169255407741750662737777978584021522384297943015848908675724354520183930876867957394378672239956108262716638786810176420107660970402998919482935980166783421651964447146608951838304593315811823635370400599387624497259316738388394807108326486842641454038149529431993963959200010884910934965245729443418510191167334323241510891531256265606342968096509368508133545343517699472612527392639941061581668797931767789871192620857753474221908202782816690127065619425561399433917255568685358181413319626248385361782598663825957686375886366147489320169776399432392711993821365613574830322503428919219196024420393942439199154607984175380061782777152479160395471827375011688248932183068011285815269528467807598999348238637192229993610710330922536328648476337953777692552470956691043579313533580008540273196280138104395449552603873981726358698514100046686092090678733612301827548686494986147281432743318997872442983291070489747476607004752617352061390075935979202861774000047872452588879682607846860212415620214616209647256523484786769438892207376768905046046930707234121940892067600771965006868787259300487158178410971267871387640792220199909305401946195879250178965951097634276844696995505410956455874734342494189927210040430766677980895564980783436405945692879611292360465308572416057643808661085768376774765555925998389954227171411025808595170475426631971156505062757084888268461785835258727506799345617408566943124910218938153441707677990664117894430994549572014229978611324074306856777784072927108775984232887716382546715790289316455119772031752216770922242104124248413193219888767684178922988809652628672207966349949789035931946665553240393833656502326175516589183534170218538807050881548506761916370157197283295661327866259445693654864143034498264479020236138475423123975563894215753001379134429823001088021763432801567491296759191074689847737732149234334408559344980456251125827271725199820287508360417872705060222224362112687374366269775946944670761001741083635019872184477847174103647933340429556083126203464832637471666367710192106603796509319726817964503093747138636425332438002103723045100591959016203011670666340109135698394386573378367106527133598415453365843434274792940741707952247648914229701662627542059055760605921879222839893306107097253385254985533910356051528265645640976028941008763645484767764755966582881444210514756848900254490635764662394782579834390408958733175409749909911470346346426634005950197410871818818240058643773300119673426365646645595830940630161882702542873246062073478783886813195426865620845161421313282316445656004565061979647108979249786617480953499462146081272098935925239953739341211194776725460271846852966424051223958103362266917966914281396957342851819272764281827021118899934031667974834054791043459617001959660403452142685172005185716879632078012094295651174445835497592335092073287173155764486410831581513985012096525283945114796246922788977410494202067524207312708812890723583247744943991497337975228499836943993105255908664906195608746420459607933658686644871597240960655670739432344634877551332214223220442369266834584351901141664569567102888112041355555476175912287682400563994057915714787687042860835566507693096672591019162574550888895049966089718344749685598278797190217663250014783307433298169711286178406939686395066133817645811350284750558023904779975130520061050256610839742979192661926141910142568342182060469001379465830733615141473838361182739039055659370623254676018685907370047573748289048057081975585671574925074837241341118360137016646506077963531496750153647600091517784227472638455771084206672637153137254848522330427365499602170627127417422952592547650912244477732828697634517728458280035146530372246353965466852080382048799397432227780367828983916769038356066646646218324089264573009212975928544192920524136118788898429265092646045503532526726534459816764546279367288394010127600225996109960259259733273300921355079900341588215622494847738531832203165286800790074680995633624331215444372848223508416070463211840911859196070354121556641004779028191448629392796709055636351896840595607926703760873616830866286762233967685698561390942579242478054427454218180500187959724293155622275013737039575227359454659725868596975607270436431142228193462186656350721521266347051936067327595667536277857956116974212917203244369275681400213478539940050922764490175635667604074983576602388657512495488981021332610775087724475142274699936646744543916657532481912341286655572486357472956277852404542971667538581661986180684068490458949461739177055172995147788628244056844677686596167340170638253368301188837627418099738463882462606419494374128912205989769144767047050452383204818730230335382554221895376304049094672904954996450658585231969991694878023368574337641059903427776477199172371772952298784144599344218307978266692428199848403285192516699837159264168898865075074274714701913303218705736740342337425643116274856191829497224128896998998679543236332293600231263501510646216057602871479117844577267711976470911282494570799980440128369360737110191005034063429288113039704409255611695791933117047871982346184336566878603611553458712640340472151946124857108703613997917690753191665691956213779259326473805665215887620258038120735857966441644048157260710992453511878660448404585776520069688130135023311095071848197206802702864373191483180634400713247408666407490064379918857474864077620459771027544361205801301682882746959168201116716608961223600305294145078636273443176824895819279492693823506712584038585558032092958179998966236409410081842393864375020582803501036906278563843626761585063265951578597821121139567414713150563110982605443097510638420185189394473571750970946622604252539633841887163901978277234764360777264912579372769810657942751403203218117866171866969457264798711058669125786586079262288882434654863382131032599268391189658676335985284305370752818467196532317457678608318283539376607629320352254902546993570898110706383879651262974253832722784397717070663550702352354523256429348586917436881674225354895789505109386761575495586662452317430091742187478782527430121364181640852895630746072867580627609848969481913493555025372149122925161003807760413054295932499503999593499791923179869219693551938695387183081874443724518868529331817225072304581615717151648842403420493966754099008333294216983608616000509873695209097956977535023324909098373758854381054946303105740439087992674209592030359864979795802459867876909406152525577365430108132441272648984149696810585808321595495339886390984138208848820811153004660470226419788368853617656066780591461962820462627134236828309166492487410779223511822916926750153364002154741331755435985389574711170206089312264553111460181508642154359703765486366279782112361146302268185038275675679829239656487142862285098670339962787636166872900301792242459930189843192030507552542089271939458992777098200965377402222317858154023971679004223702095143032949093518860318017742634956024482106885724145891534419632566347505828574512132716324054443940707965800645477712915622979322049606824980852605175818518140082979212243119451231830638412193718760557928117856898323768258305446031326606365654904176064059661583100247531133308540700179815667144728913873157312994231472484548307786395472728815298321382271957967315996844948046642175236306337932954004833556956573849396040313823611845062569218790025165123604788017295572426278420138335166561808277779401973548578697484325172018030231040328228041409311241289549497775581415151416521049409755449586146964501268128923442247157283457683928191570925497568865891647290136166297219669713262581256537266165684608617911716484304335009441825359769419026763154209223277406113208083218125510703714095263441185474175918282599396953049168358891996169244042874988057572098495595288282944575410620079119278455658325255713390806909942934151604040700523444857986808242845841170014017078958201549768181152156677007174200999940507015269537079293951249188733505669401613589840810721829779260621899258092657301236700561360309009682619243223030361746550218980380543371404047814105641966351842105126715301447916810990358778889207053363522212495457424241219455576615929980054588972404115652897778321334363335418625833678930866927004204557386828668539134299341250731007963189518152745218367463005798796275479295130867339483712706616454184086453885655742567655986928418566242257143159418319391163913020586461353785834500918997208246054700829381083041348997273001075801497487999794095461764927701089259875480130713824364744048123074075507740541460282682010716632378735912579098368542126669437556519917496542181780475975908558473284182475738145378597039936523403019871108267939998016427624776407389921681149609596470381148653335943630358764714451785009150208537740154428010291481572243826729704305039768520434698609411420907436713821515802535380259901916732316006442938439215585299368032862202826951106481149479777390952442039520827735391740657718023443161845949161697815026760703849912792476531402638959017418317112077290108544397537826291558487453684781821734161483572513113118006052037776235347318370836972704340149266286397825535709624063593136818618399093284164185127728399641574175704844056369960089300364604617440344455189533869727777697273284752340049904472044827070660668616215450048324120313543173485771894545989104708521597118770559891249785350837725062562214381424933156171141328834585178209444762717572267919405956577518967307296030328057883099329635147960128988813310796486425294725326804713385766416329250075483725841715499548595057063872163788649780827758856346722838734845992966580051840133838788171799165161360608213788229785861397765085689893408168629541420351992342517870891011328666791401051353813152861297673884879441818640791717776758400246047753527466961317771653770129403974625299639941889626948566268145189700508270794967736856506968044227235890002934488065370666876201946643759153381647351760033930232403030180866890030933525210673322153247280820452391630626067800138163789884840810166724494506960408649168824379985937209974923441832500704051825712846774374925697289241351728082295261281818196297227293455778432037953178773516379978604583915103782160876966390366212311135931728668505218034051784684508534617274691645945186504588130980555154989628550485664586928626136408537776079222022640829086195061668789237268722403340921629945315423369166017495987958327609063370524543293696301083582652212229061340591497983625724327263015089117840258544515995195878314317662810263700897157356311092861610519813911469191311958950230303189679963215209182653561847955838513962018972129507075448654253158591276028792366069642606002124222698781223832511474838704952322799540958946912173387610826736050547297486353943500482142723372302640234376485782355337634826524932340899589223334673755145887632366748390047304313932928975675202777322197432903497460309661217449177667168316083586712231900366391944495059720698552668325714642800871950166018766708877953304799452744525714431797930241176309129559546689079013300272263441454697487079508926639791198161104942564213091356131718012618950668967598899465758311594403276568420674656015989297747708476439824724440794963290152903478353766650718943970991829186683063075195894951244298470178135667502914763372527323253884069381990164714947690117486317419853392587954599858443964814491949068133854105909495864943463272618899456540995492471491143733805752010892186968171112247962783213227575836317197631717729453935155009137944838913206623044386104263093753419350462037762707398889343225973013006663564879530483711487167186683394342192493144421610964246886791015578935892882315714678480297980947533357046269222585460052214648637793847723998448680366126647793895505786724105849662671234824367728069755116820530651887730229038202396238429664587725250464089778837369956001700861806030904877488250730436105817480156150202074970479513310805349654548777956127731428142321201763950501119133014150759252206753625233314495157826742645178672356676535433618345401046288289330920744422488814461538112561822616594925384463131073159803746242873800880215356364311621754363296981315059863046905750844993200066221660274990065600792141415585603656997918271674927640773868960169757522658915560746084105049199834938699346093397767966370398695281600239090003500827663724520994067954768588525642776520114513600606511108947543267336761099807892423067149508497191371228602375377287822769022370562315475998315868355779992599943270664162924321047661925351572980670054341601168140595326557690897664681367028938990518306455642604970353955884278409265763677443363871644339760337278585657335560971451760487067790457253726036409302729910070816637465877062894667091156728892991881507099836896569283687005060228465122469400993107660544006933641676541608192971227285725987103862770707190200591038057329909867263795382229356035590427417502907035229341053768784903289566851895984836177333415165416635262289391129248638184593829204451571379274420092589919183595634750973754803068250902014703499478168483187094846108516087562422603432894585332995758681476031519556767031264101182091588608873500773845403538850660750571538994166122519474100996622666780715526946550540470559055609939768567986920146401779343185791256515964217107330461477974299777871210538737636983859994405780672769014522212304622509009607013132609173813487027739059065101611891746078259056268985403850199615360745174934115309926749530484547443406955773139590404339897660945414894220739006428539640394385798164777510362315195901677343760286258340476357795171037357144022490360565041980776780948650044640000331970259704352293447113860598857178029832730777600556505685073897038066271746812038638835866119784836651177890291463648582841526094741248051915859072776561138145921056912248686252026011091850627669462071440299558255282041488345329531488264529610531264130191577779218036612502290240618036907815643690525802290867299642520690743376328237991315058037049865773576500528771890383963382266093179430520644325598659138099923185487473166229815753761566377834550271469051908905507510953616605110433527172590024132345297165170716177594960302061736645962043750913974385440407894703818377396377199390804859040883267308953915334217750347281287945326215640777628602637667494054222387520844675490058054451211511881595344356911351904903109975070929515522629372955837623451853690615491629786558734620703887087600603787115013561874268540936624723971020912155414131410405464289548272679988810631499904200327370770629302221649743795388311369365644456507480782295383120168186738299270519021282239712816226743952909099798259021101618163492387957214585546952273937584667032717160906122938694645704543104573410218288587113581897708841661518200279545398170094120358161731243645400885703420071227156509141452782932539301297905751873124391898696490810679000777919494626048150243733941702373233697303833549474442768178757581320067153963271497854703948372329685547517322469512212466185033350352302585837243349178998275300267903597158351035208162304959120014057118594656158586375800070855350051023706172214706710345583800444326350720978369144043817591591911015132869447047384062445547780042077124620251844574056215885548921333412275267622601820194625683050922882630983172715689474075744009353394868513698899585771592637659941191794087477699862675788737070129737533625637371135236588978915135250350835427695537088116508852501820499779384390305605198511092340397995344495820281041213441613701360000761030743986464385128329363347535621995043030485942716350271685910256359848606980884267239744973623019786765990781295857321400531052344362644838142985026245629117363754621654047932805194056129015993545982347732463777472572286334992380140315552951573502069055682462445298001918660445983415073855559832650137301235350260082222563176368670629173635060021513282803235439404073122029812542207874373078865230625161400023387445212367348187491021088367520936729538425826785008327302301245025756142655415509747303048270322112154867569409738639914384120210758484194582061529909289445493035558131534247980961528512706789973160093989329794874083859326640529989285123821723182873110016354678460468461495099766210015372107229588486538550672332386571318216228835821281027425518439658391454623444472234402947954259700390371784722731805211253055247779689085395908846881706852727391464744762130555456732938663320310254334796328820900877280330605058023405216777283739576980892560425383728506907435388785914519557779551693101921884319144175857001544081841050126846432835575452959839345218503453517483758321586685302334983385973863329884937946716264620738580753158237569178182088078724854624765560412678153395263615017416615748980181038914527622537295740807887691346833904821000366687474197144747216911814562109245850282859004353752131459256680253114308417091195668169662003252959931484221807606937563381477992508243323000189157363580000087891437202910215289721177933524849455490400741522202265406221787751627205843438136405198783992607561783960390255185085013367711923239003160071794415160771384959693702567119873097066551798722689600736701822106362160472785496400553130903740100686156411899427543085556925519377664490596153745999357036166237120006300859463140149414261826451967498009204282963656522367294513861467319522111615713022718033736428369361922351780453180078348271203289204792321255442965169480236237690844998056648401843206453177542494448761475998165497090578929088931675658181232048159828056415416267663084016438612476106694654666125149246131477427475823018299821053533402754611585579103349944903904069398049451393820428721476407501151766543841121444707617020404539751211226123607914950668570765269333023046070144468875936099980102562543675408300185717415562533820555173710444922345519668540865646019360247010400288373786304312141907336560087787096469408840962890243940477837503699415873128409545191137407971858316696238092681186606529581949588537741415948082026760266963667750425593706839921313988367053559485070501640220389849100542998473000971576452219664573003105635628295808806720894538290156316081856437693431107493340829460818256077081651231145236274151140120458924132968627129800569650553744377313213515728476524790487379562818997788536205197551930734845574808908067920994941524599313275318753488082050223953120102813145648317101586872200879331093582428304875546621636421734456821436741625150312091515041162359009405866542445241263988547910068722509139038017964647307800803627045192391417819310334191941402410553611852247246940778495762143365288961450229614030132526282616220793971520728123103127079911164596733087092492215774773278627549690215911595354249602252449882042755254207655388847508339625573531903220923639391958899562565880771807616169423329386140504353296685170265024329000699009593320728793693770880919731280449145458256378009474088201922612960676207898332609125306392430903599948939522790080408384126634184524805658115525139027123995236100766810888781117785548550528015745541135120517063073322897944507869875172640507678062874783099150314616439595267056259790272861428771608817711031858846272404309084026923172445144869656039768427441820068952986791565693528289981023026964127037572907252056141537172785421673648473447618316941436071670809173380860984969070407686984780911106742254435262154403698731813491914934789307516014937074307930181531247972322963690532683587327478363360217896014884449361855856090199886315773820554416667270635653791124535561923597305701938893609780682269739901729209718783097408642087391723025631681203123162419610539914703205064677878850424322914124424996673265133267413971024269675128864839927654453936274320182651836801789420641824853226785345164309356473371867290166934758713701103014844952824621294467693872458579273323760283353200536647876501608811120727483971874424961283513544840842740445213123885235577780124945246414224657439208299911620463120340742290966144386762465924376551011502876102253712678979466307669565532145215104995266828016307150352178927073020123410256353386123181036345838488207372435596816043430114574161824791993458136824991083500357791018588734937406187481084659587128437840140235920766235563208057770288696517708185978694849792445814349376365099525460313253657946064252145469911075198980635334759976088059461226794075111074133061857519854738979155237356690072751385289083390314401176904211586910348989719394627454919800873061372910210799365718162071094302936437763262981593125444396441785692768233213837057016724619263194629647429117749714262072441216038620962149550525241821717536877280591496121265146982188899680358199386692179305079551632995930638815248859571969862946563408818227731478930319390242952287164137542243253968424678676803737335208282289874216019593283713433175213783869244935046770133391970249415094639576735386528359868072413226376081846978517349829405883130298645567099075864283246667979515146087499775647286328944232738583702016640280222527903334796210505308609187081056756417078845263217924980186358742051646185264745361421193195890371282310984368478600044176300238964615755237737362768560775669317113033185500427160894054705131183887946163222748054806955479851482332069266678552156697821081659428188146499962523895679325092299683702488308207754326040045159065914850135483924457518589582864511444894463685572315958819029984499248590903043030529251778823786893604729497789665325230855290528766575244639920967419037412390868497519104998105219713213388901702080475723976662743625151559631788680147120242349614946778987141270948698243719122259979604012119262382583687730665101558013821520555857226300346162540307966709963177048990367224709679196511396455005257116787099722483919084095578042210193331997184787551193530205401217074906749283085170620925871054025275240033672344903299485320209769123973402591953961903005748545896488149476797798377903455155256918711794506910262149763044745643359690018540293162761613841325765929440819356049566892123500468974257203174338722746000585481016229948479297803126720475593115224661006600383179934225017400643323812976355858493810574697912687090231971168274258652390294371151739593210782570981000675863021642810320152840922293270500515502744891011406622252100333185882687743741475681090787394116052497210611374044702716914559965675702276530603429151664971849974161064047187121131875202846057618308764326512512755801681450448207451470924258606247609202325299647082109639327182850051155183841812948780923295372525633708875011652510052051033378964532983538292296277260288999525032232443382915735524652027665265971504557600235909003252529333228081433213697342410713641724532822451985451363654393760794405670972586207891516347651928363512139443496452214081902138322288555074683727154352929247354558158843188409885567347895740151875908683492475302882041313843693160749197123473033994106795479445265746221799247437670104712074042170098405777132133689456081936129247265049719914111320253490677793306629738769967204586158398720300597413872610836827545924690929064126626439971413082752953570613250551684118625723994248553130179075811321025028251585128790012496269768448319441284230344292203331776881730820277208778586169347435312431214421452798979740989128711722443190106464346804655946309019200038419733642359305774959542342327138249194078940220001167697288888255034464886539467129915153004919572517018587506447690929543193965016142652677650068251981045383015879670111818820139070807564818564534090270713228230970750655420180911136907534095468491188641888554921396528141788984787688955945603046812455267908838654895707914986577450299533403302155389974867315255895624217525551928794066428999803963246392894825539361180091043547800360911362093601095609370122940654182612701635682670940049676280383537720751803060872937457450427039283279103017251566237607684491766091150103183076988542374226759001885496038674840714861940971347184169998220734574347381004442328227374256059358164977010611878813768115285664900967074839321268868180441619117189639127003815349563477635964069170436673703686713943941922448674815012451431225774147049924904252199282641957120526697389246560882336004868903041241317886831978093362984945840841707745807634766670319477292836387405367654296465509727827466774064186086507088915973052693814289897424547618526781582640773548837717673091435673149563970020570288829186944082294590262177732022322546096489508698776483891279393381863803266648299524265865971541327176688675587128050656251339258843805179082827201730164921875666124643960788098598762360136645901066086700017550599039202029793888297255357729506582697524252992397015851448727669166728635401312304802932890385684902218561552809457619723405756710401057749478077753582072780572107176914000514256581794577537099629252528466702384273729474407387005872163364011284109636420403169988272502393435735588148369933948805647715530465795628932606023377659285980426311377714805977884263161032418562461268682971316982666033466972734097997519891599574627863407126339464767300317837135332656955257641152682908403733459318177515456946337329372472942799462497365821749862054597452365066658087861421502513671305546674199849384812042978873952468632857386566763306227302383178338261594814045519734802421498592152915579566004444730029386665172413503811774441623978202052948856745310225236006182518586627358005094503258753510993492806037011078384006553947907170816503131652688390332409608741461085279389912630703826433837043795280532070756490522678937185511986475911315012006367040929229559083016501922533667573191353488156118122560026522142807005136262346866809370088787162855981709460451476316409090470319610949804814707682240955250835906058215388962679154746991339807596003336391047689137489139909374665916873816073201560105312732044105422167460443975754132013687242575277725888161877036124757336922213111287771033856653003140567563211377290542413570613368477247740946486286642601009456907356327744899424320524451723937185337306935357296941928886154914499044713912243311310891501259004003127828321831780483914455913331939653303994470147381810294543998970849866967262527317727990215474206359100308751384322558239212543028250895066897449064528813877400878261850989176521435379629605735735986390746013111283254305094197514704220635870999679742593098716037175164925792211286329807116362670790997715477908495597526530277204897277395856337661759288266600268818999991640238034782544362251314188360654563355146196921788844927446307887171939761935831416241806666587386483506491327187346437097439335701682884250374683794199782452586907031631252014027571386250762521407502514786728667372670397114199812551178954691279189315999209812527627791060295239467602636477118261752089845664203856804094542748506682464391956491739939539190915079896688590653235082830580581339261900979209684761522561732093149114996405522330403810214953574794927468015780221606918721349495742840498003900207191869021487996768029322654059220912439261738570654889253651586218455101623595182595351198010494448963950196886419546493957483808935027655792976630070541577781754090971002292965644981956739230304334852173020222936959852455855862568760215018750247075163919839346573635859629153425721994011130920608721519968449920135433167157923716354210308154195980445177368021231308595812144923017816012455549084887206074274022748758283999397715110442513305782692604871354154319640384373285444481454742111833535775502841606203546215349302245491265267219645838879958257343271708668447165772210719503611965799556273327897526645795476392441752893898524669583196847656372949676572585334706853424236229567388357210219239240702618937884617827819457780970552780022722288366373824818702551112545978384891730756260580531182860985598162133855389609963680679613203504964486196082675240306482939671967875463770271363721209348009652535646750507624521109250420620339483887204411465584078671344513721880071581161593829855175775565398553693187207338236516227420528357955435616220985469657947084962595002959627572444288807331560251602576026324775520831098878868613047377896066040033900076537268080003805347302305193036867824444720706177326065686007919302966685689039824019973451156096475779541352795403197694442783859643673243744471843573283083481468041003548532386153227729590748544560325426902528310632842833996354350505716375347661035576243994665033916860509644601052617764637988764735502604122393407591537621252948317545161011026438594343035596129548365837816589456441091326355272485300428618019355240975318254496899665464239554733446817001979465951214614316792458097795511334141109464312694469531754787880734387160464306428702733723772958266571123426625039604299737425551485802671655455145814230229488453977983364980229048335294500157563230149611275649504570144791279632081325753816873994276872098043842619885698351002527203663231139561404305781232526350501563996135516155292636776150154214058804539855427945706070364584138142392634380162992462781179750193227335825207810118429526876621360289615841744036918179889788325517155299687465464589274137603774771170524272526555347678489896635771764552567828774553455685221639606837519369035378719970303283879381925932949583625557523295529774897992469874825168942440987498943344016463397741238722891515286445032484077009022582377647165315758382504871867096284644227465346040950797488481348329865630632852841959264502675339354827878314323730283142305179627103294444979037057815371589702742613959557189060059033311982153099728081468332079631945066539545788700372674074611934724301248200777331262819581894568106986708399766787740380891822116550320473029256183735782567800763978360283481845426135448164071933062331191342728471756523782859829933543865885846840188866704583688621954135743274757271476662548280135116254744971014965734202589250578818521521539610722706639875072462200307719747770842113206838060998888934003341224958928575432382726057145265089097897738921615698841215558258123729451922855956766435266317420694669683808266231996184760511664465660187164256351109402658086650340391596291720734014095725755278974768800881261143617389883371026673797549410609082400238611714696625288694166910198380498822093415549590313774919271846729344343293627191092472156701298880710800465230365519578478524251448462038112417359462714483015444052760298969185122801569106011422502217225465494798655286912638926490117591971896802640974765625211494459230073084583869811603456163241850789950736157392112647355913427764479288873061787657696285619352788960716051780133681132412479516993277436333703042602309242548936301482146819415737730638976533203243682231406897088965458851732771775859849537563088746016568732700401193409931072226562685316283300818386838265885838357349500550798570956540156437216791380496340485761734033044393225099725388329416753198191402499335367283458593828358807944732083960797373284037134430465483382974814376157977592450133667755623973781196501928384350302103888034655253382195404446029359809533105473660871035268218752820416579851788378540981960392206633553760022301430912533497409280655872754896498869956186886047587651509471064167971919668925265065016017953849295542201322116093133857133386332570112168625171496199656959545861555175252395108355552395321687896790384315495360500831300143029820404891791624656447343496965602053551739558662857341621199256676332466798717392217702047969752432715444793399960142394494919952141522854401699782501189236387099151951353536129212190050461254930279942919641501399076182662487631272633010512999408956263686442105151495884746489868974794447401912789263445991605587639026103368168194460848582721059826162639238564652079633760103900320318439049448575334975317376903156426792481104812181690821461880342606773603355561517791478506174221875161205062042034766684922690641516188396763419977354567223390268985313685807751729177842719615370430990533768481918667026360900696676501674855953626878711256314816639296611353280875007081326771054840752567748907391864595129347405883241816624038021762544544830203862339096951590213468899083309769093628340870326676944111538271534501238420676238776255229064633428898508535456572912662225761372550998778450154202007701122612311200283522409349935401356648081723423705023233927801548920227455808072339359393069003988338058783051679363438491549708130753427117266860550902955906901973388209152309995897079684961171715779799562448608855705099995004390861903011172630909444414421426152936896327913266882913950607991596777477092920739498100383176780418110371028909815859815732550585618548172152769582345347352768643332531404140547222984881538605970751866655230954430845647824258378708319314283365180376190168001040678800267083227718836896319934142290201671224138579240589520038231785882665811644332260814921244681823076868059529100750521059045149311786113037297365596947176245196932821236289306969472832049795755125007723998794558021923007746741258412411033748496748784588334076366350104658279390502204667894801832582138731654321794744169886358770243426627748297631489462053656375603080977733689281251627100341768709542064636189986897093619329568678337235764889084988984434903575175093651363960900057907968056728077532146237804473187060665493147730605544761357386423884190163563573843490712189617101264168129531384522530730116929423386762097763613359881725393751174733550232436103302246212319975030067096249062405465671585956830975968995597077821166356049195249533739002747343977641800304028298989400446035458745272009861414848967956242196792348293321869172662739269844178622258377438810388298598160082967452845436165326465885211418883260603942341475625542075575473874310988827584610215243699624110460203682952975371840845829147855252265115324764620015635302922814594325942084745656784666187238694268331029376093013661071162111665917652554646076829080037912679238267936503385961340273917081260510705687138628686493353601011155275797188311348499992483886319410923352048251651840531384674549920667867580169753049010345863561777140019694088517129608267949689238320633621937453181329824480802521040201217173471673320170236358008378582966503274947108073610266245184485755254615432331742062907864140153463435816943225921973620065542363197710496149404703990009618603625567262366083813197117215185811747263156562024555600973944244070538565652052904481536333730027224163434193161678135053289232043223306393074165370538531364607084480930036554967827663245486657765491451449354697451952260494740017850536716144601369487047483892311864489435250114690504796100441113895177031385342512854763330314168783328936886270627732880587004320177805689890851019524319655263881284433459924929146073344362978197124192411423971773089063795427550719946813198633772915141644223703141621250640300051823126084238327004999887777257772217539106616804080686263929090623751252572844299494610271972951699672286675963867261000693464716728038367148006684251885562579914064702877829115975997416231038981179505165673700430657313269560665033234352907131802340944376361316720712132452713453099436141836442866740857230090568611376213013762632121590633445021606565189631036567394828107893494870596200373374258311128497830518074557915043378819720486764405404535176333643275438513664350981100661101829924481094460249528815160288272948823946856076894348050048593333561747670124796097692758794264563145013670502523980422135209960844451779897037156083759357619643253901400097419178118191532534997451338817103826670040936846961037254138487146253358553288051685779383731071404333794951770911933064924914859891197446958485561479875100314659247543247247705620932765170926996480875914172902145283081981635867033256912400578632676786589273460094455751579946862166794423634473883721092048630061116273232765934063765455143820248314785399779102317108113042572356213687338750955079817801146714328836221147785210119595721087789667123364692299574749456379285958346293288386531490201026090539920507877240710938288807929194192400083731324851644079091623172343191049688241298979735857193302252433999151312542548720982818397099789121076945672174301255863733994541388358721888864544644178599799971783505727773852018119693602239614934122972764987552852295697307454782217450940288684774407396832982780072347076331085274068644797105240152644664108265668867178228649250928767989612561469579462337506347796932428264875207737723654387066989118424497869095036590024879554256224962131504672782892924785622164701649522293700660880364072516817753711986753169167807214898445552622818836693243861761109016785408673329797898569764160852961589710365740319173863161290674623320860092606786940517022176248005177664501536198014885126887531456477086296942512341267188185659995862028854533324636023683347814781393838535061221158932143887076999733845940023886660379753158760173677736928285760095817510731843040859626585692059200284330331217235833533114091855600774707046611988392483546198533020367526372151911755862510615079002648140169712666756604751765792316177762951791211418947917077366476745379883213288188406848260127766255418669960728478062532111656394738353837336613812787474283957503949249640607365063423369638381919380013663353099879754503493571322306741702828232017309114131878370707796218894876953543174928551365299509350887446496811719453835651019899034666805827590633759875301462970490418520743652656221161240538634890880921638217472138294389273900049803857324316501045254974186694796280656452708575895338302655465006372806069013564363371227170008595337714890612824735175885021706549187305931740524865983807780476023006483988415367480543474974828929160303429333690932530957905261583318986954895393057409156308576682886115380887761190270779465749241130885567593099865020066360811574840057798187171265839990775144930438949385927981966929921152489279670490410475474655294391429249896412966972302824130185436624320362358313674483252501077528456558315554704280618323571177730189027579615882174058441950828643115737080311831400706270102457193766627075788575151956287194448020099389985237425233499624346528416789327261061767981160387467253270919607309680125729797605270280981355426046141729751762637815400600313890371697641799322306913911586435370065979906114071686883987094658883859444713293504943743154519188809474701658392808468287378054161484609582368331732777077862999188025118446649338127338895726509130003392118827073683805165306896615568414515789405303301121825324198922150111025181746528299623981493471208759919371449516268224162192390411663984814261582770488073254175716876396197003124703820270285700062493513760008412519880119250724586168399950298091706229690030866339198957105875512555780286561598572190555331469221802880935251716970123792001502585875911794942516793900501642227522275017810907570481200096028545397390387001798634693849809183645998930131708011714632065563660077669388670186562206007165448013120624008756634615401057330725504701894238596669275660963989597129599958953482111911907428854432644042927662377690586480758076407529499794053224826491475622607088723408887023003399524749768450700216771590106295740122217477258787706851669955646442031542375830434905227219484052949517270248409749087204592958724578882094472200301031275301518223855677208691047034286390975419769736686626889889135929886227372810011927856092443950617057496768605374969121059762635687691943363356383623928599142819392163053815825761964780312453377665230672038408194368338058936418303381392368958497917787347316964804352255421120906522322222556795564067486268030339483844819731207894173333507436412989996416873235775918424500740131704926094007636003427194120166510211293507237711748791639079922456244841044720993208575838820764423680675900615537744547923055418805366089894336955866172262195796875968071053168957614120474746138098584279890461704106249265875445516582481733328179619359645900007437856245790715061447460928702158816641856033760754774124194155015827236451173353837042927614946417982013607982865800556124698351045918656876495943560887057336112356685611809670462935301767489555177067898275561138257598069693553245259678860835544429579905824844415966188268136755532043955957378151861099413805740241084562173136957439653447215397328307956194234225860992043233242195430472782176746146493455196637677068877186047599739681119566197014713153143466384831412670481272567527264272156859286749644984240182568394859506018197641745192924706390175398076483266712121615608635506639333016756439020023286800956705648511575541133462363391580338218546168091509404563612649639891549469764010724299137190433957811284855594693266328252874206630951793420659403116074628298737771343599867471546223299319214398071595644072461624447422357540658552627822664485459914324753854747906009198313443053319159996810573724122271936562521204174386040631080441907510518405746725332675059746713196249799039223676822897731209081424743034458686721501917473376448386677028850936416655541150945206157692681582247131319521191495620467964297604430865500074589357064141692301320328818836082202393201907411822384274981537160978549144273695744850059010927653033245656583319857590849526660243193155582213731295302550305964389434330043894106596810342762231391594683902469914954931044731118742421861939427262569629842265548025606540077288534699211740313377038415381786725840891752405437340011860028567951983197820722872389285909976261204241245985967390062786100685462832808611782398183715075456041811845439492297003802628145608412389984271602974142140684882088283425711892853592140476211046536923312013591951035258152597575390289772695820513543786367815815461063364404685548610985676411186515119504055585143608008884440751749162162071233523655702710372481781070570956344666478595468873967363048032335584669204646265371828454050121469209026231761782518957167316173842773668567015025811431200449662054643168598315548604692242937156719388742482313593421957876191403928481207764670140197176226001855298106185618840883386978829009604351511707250812462832993534769234694045574847532948708208310025927328621717050269998572953404175146543439164830058361606674174660739909025670176344724438933252458694686366006642945563438662497905792474904609105148654980178431458595672494030966313500863877088549833834631961833649608509508549294414357221447637347920027907471680920855809549480965783200751470955738843520494680468930783147995673164906990973435797045778289380595094814036685287596844166427889376262343997827270552335096070762225539752673781701026134039454806658795994239005037858681979957586819104179066676897547461589193934201384100057596424587960415119575730169924335522219278234650682385927446799515282117542784653331629975067111960778958724187344425003401612504899794264856874972133584900110724005746251439871901210729147164998069838294391848820254348912206573244162942037061788931121781747144020485325797077662226748764935649301394394387393904491861113547882585544826714035633953205116176350984188904031251720421115475737450949857678510972994238774519772063188736882344493182777357354959801582047117360793997617404073082602195300240646502363179121310650648505857339154091115164942548895059754745482752256931240643018011000742103985087108091743080822440996598863154407365697790958439250492499943330984828012529721590263775476204610571818193236527170388321081986804289740083180261921308006310816791211394558662333963179961733313265267072830268286296503771848466561240019815619372123558586428824744034788909421244848709640340335369522784645181029887273588598149768813737447838876384326053949247800277835162542733200374699889465577965613484359615382498831392942418997098793491008571087691029065997197657591453194993422649071636847566167475604928402122605864190484037354374753526289021851896915714569046881138807249921703144035335806122743476151735162086007059423031862745335365392988524555399402838010148731239765681635003021242271054008065313179206338576062145466288519432593078884195234144750233125670801286428545298064827060041490140933986866401715345899685565601730660325570320846297603628111154095577850586883880942475814820738104606303162603542813949868018628988139946083250548320378822494194507739163560497536763782336407607476337833211074024470934989245975370377662540920217597999746222203328139268851416623125742796817416805035254460860929040920678233404937198120782646293307176254709862311569751836433378741589605997043155344720225117271394839633398792675860785962453925563837266106529890285828042868997914592046715851001292189399374769620502099348935367548955433833265657926298652998292118491434712236953166094822436325835629219065947008137779317950208462166722485990923875413265884375314658070032146086263443333951777815619812667684876635477848571284533659914133861184458426927758457188353283188850649999820297557250319037182399742647452635435605992659437959757661089778836946431890333823169709916698920675450609690996627704374334307185580752894107633195949291863366349222262578864530276485616282045996792961452335192028157666457095006416241028756960592150160510301428065741777652514590566067319847970431781392824054973561397728421808938465025971650741917674941684447803431090276256720347161975066694511135329851428920879761907817335922721304497471937919759117035517511317350024027209203416975905778328811787998036834095949598159202505678940907301025112154826702370506747670539618303642981033121893583085637305433430640711338607055227024057614775412204225705904259427295368064060475705133350089532921738415005470334159137510610510544819886223365939375242179818823552282712140821673734734180957204318934489865734343206776433689779027838259570269522081012460632325351500305018602291277172429928938866120898258938313426314398589000227946695962558388295641662364960842205784309512164779781256710324319298973031690532929391085811916333046811249129071967977309267626355287564592523419377190066841675342639604539071214735181084245380460824469708990269761047830013069701277493473936284536538557891144230831988452189827173181456469174994667025390450620944504824956399722942138628726015656912474782057630989839183880334584077556665399969832551691758162502987859361087965313037659590080504504340979890109712118310576190290448470280697368434496618871771629545960419172460987476972116292694445818459253789062366784587428153559783914814107898305535314350518774149508205695599844022625333909623440914313288912535093386250499831267910731302090717117145140716112277525015327470082621998167334293715685395049681278288450840496209127266775834975841503705437270588187517642847955551736723898593077066632160714002141953986895756764394289942898447456422469216291089894064864368738951975403027109342217014487916810423090516656321264168885049485446171526676078089487617190429890380317601344353657034815299144883472241889886526490117917861279453506567450315153381148491153221908850390736711370129731821527887499936511302515970505077144655715881438915427324006581607411341070136497347167087467541099330103923778124453080376838257124535428017669067941364896519032681748631852850876667331094007038461017795385949944770320182158358545228786340296284776187476816514821475185992513535884738994522128955245504375828878330584504777511380104402322999866240705176250184937879423013938837853212691513737680588977563914286650536741762838508144335920100068788908968025956836091206157679835735923897005585026897758403906536730729959073588125557435801510166769324709760993888340113685830943497711289022521482831769087201681625319764004442746224562598179401025242525594111971607667514313404953133136634163154685218287488187181825786870026684750674107084169929969563425892673999506592329237048707545904799204978695944538834380286533118416484688437115827217594249404227958964144062086790454773470948735281433046672035011851277720393844689248530005991724484537547942975940795518210490033201411807120572567769614586962589242915503242262403774181029288113818668978151044674015693981654891372526628404388414340788149826072467012148427108419564130911370408748344417213638162200419353591097288176860038798060487759103136252608062194977456703341407259397705088885824851908245175722799013152402656793456731491197295565124770962629824719368641003409340710152704850078472213246787898802443977365033172116500240231104364322840762426662237901445380217238716041253211991862622866264706364647248116175800194538484496970947831453644843164022964973247992950429381060426966400610048241864565407728577860447979569759598071034836178002577758331500860169021230963010611689962029982997932186849830618415759618529414427026614971832268534165957128319811868335281032134375101758544041222650349174470720120921192522773644970279055428465602406814134635629041731575910344876313653737082160019141965460296198085082076504856738593579689554773741688843492676213857357079946165679708008722015960121914015789779664402645442434396034635596528694259303298947143337359762026112932219740581127714123674417209021396885832943567733685641825153754527361632373327224130748774061164733441356648855777712274351291855192249340579126196105440499527023328478941248187518087350985467777277129439111164079988191208397560255531591599011547713807994650363163366679670805845124191582390416880118744744422392151953320948930028624146773148491273977969517853376238536218614162429043865106372246897746359569943309261173823984861298680614342126125532419241971650537320893678199891024154373186018732223175148521227447366379042930088384606836666688970933309915677947103114260842983080769701038479651493050855823105558044363600226775633209410385456447994439922259854147296075381312180154717442574029766998062533400497552886534181823840814930382658926146316926190806610620931939836925049285703293227541712140352245903736209944441063511293719302407707673186958746179864025528928739547812683056324357008480075167233177156467479605036834057693549761441895350789876240712689711159877690553223788147160889771948455154034800445719897168654053314523808974037118967399648086573281298809836622818783052357978083744523266935550849844326121817869986513374776711403569687700673179679445293821399487161625869827058540557153678010163875931232561429166965794464518903062737273411958613937089857537609790795919594038342629286156716794568068935164772192082193826852197115109290193428083310069748671898418990554166687569916971238644213938980334305412712493498411596013174744901300050081595429690387785302910230687403107837606994738481753751927369969279454971484140617496224142811156391140354225916181602421130748620816497252696691698346391711559814194306994409394687443727861171734735848581071755141020535812999286860735143647140302231863186569244005695116053928751051348149081403604112503655665781615130718091174824831223535895658169585481702721203260177967223178131038616866254563703715605858839036012715342838868812953196544810004681687433504791639842795435364070899532171291069223912312678346019505330736941737125128094649229073792368059079959787856294833423215830260889103609910371284046706395309220150102550049141841337941014929572162114056975429902889640540289318072608530129070737724159994049630068071235045823041121486227922515862324235178706275815226070827839666145325825115924014096899908077792530505071504677769414833500325145540799895007831121587782430680130116912558624413338080559908804312980242718884956054490582973659889166972763153669533928245190896661238593898082243926664223060173381513018573034261306966422537573820305536689943834571440699390037094478933002352174015639099888011049152268405598444498142791791615556178027060871433486708252159340959250239321591939010131452902028585544336493869444951729950778516991241651822064563543051748058111258457702216356385092711247514219029165487907744436953230340677134293156872151735629847090694051715471838682198805039540516334592155732564351647036590464504685568589611747669427998492865543988772280503385099966845934874498063114814289885116454425268408753246134379905247227212278860728103198136375891296978261993065148934294633024799692937115445195197666664656223942579949338252367413210315467249475268697389387820545879124405004847867253370339925816272494648826313782801828673481777632895508705905882252459490574717544152161265821651642458446979696136690596052364733116381826445668208874397385206377324411406169213128261335400503687008428428806066166441034834556937655652433762540416671624198772985047755166007265370612498430924530404097397845763393831560281915438975751232765190786360466192039602388526946129818950495450842667231163907154912198588385082666497877609097314556856208102192794058313306368078291827973717849004775917378686763411273172445708460744736648368038294508442723177313275459432267554019948905600051550976565099074717541106247234273105794642833447239360809839266529713162962250620659496708957362698157906405099698827410032330491102618751603794759765700064390456326550136859100762488335908345393759195101744191795889651349611780652374553764032974569022182240137159790651201711713837684483789454297947751177663874460457096434489319895083809517434074820383750369237888435186012060287930461521005122177157231807238595413782629552193647631715091566474284553600964369621612176312855026061195725920485665820734647386967130593951450432962618878374341927840261551230829202255096996992057407700462145911633124479207660784968998951369682136284502875800353883525299175985740972383975817469668499631210806399209090255334380747754529744980941419453697246789122567626637524736793837731834114005855677323936772936683195087830015052250939912046810104998167467807788159064412400125639876498252705908507481073942350725318656398229544337057408343654143486832310480100765362454897435099685343296769800979942040683643343065730171450515383979716418327777219364609571597608066867833928440018954606943164467228447180636748148509013439291060964109393094980732403964016609996259384040449876556942286271305740938733313954825789460886626399992244194762903191035288295911128362359101705790754966929756688220262165132084782522378263783662237596121968130175762596283283537117841094949588640962900892456591781916073895996434481818444782906045710722356930788982097265516094600089072780144245054371602854189998039914971294056025852619743541737386039361702596584048276797079696483934890068632387939951968894968869202706845016753310938446902236385758312253437014967224000123172163256178107117283544183552948264449391374348384742355424326113242008349237024813535523098340465641562714375050665841089993426712474556573356646712462503174360380796643507000707897540747441188362494233950555134762400196870206123938054586557318062426951500953337488021124645193171570193599827655802909884564736820682842494379567075069351219687929503409768758696458002306848586053671327509392568096018796768929065017864887913814635864399052210044246091141710657085133872485867551768769241196061339082159056572894485432076131256686729987843017122162919360640467066306912430513238996750747405381703195802903826871244664784585369510169350050293580182354034374346363935977034221480496276122918136827502933761902370946766547064122934249505225064700766037839935646046569381216076727536332360140354733976540681675791792777540800549345024878253845507968294151617946717697919482065255263660241239219666523788420852336633731227511913953818889684138151781709195219247328843076647134892087134074912077019034254529232315923914822648907092422718031489278365336137197148495303364969365726852271231463766033973304735535063064097527948088459678086709036013169428557510805346267936206348392730223626315629424244757541550162283060556993854652420076048001751979039937881354468275757173903174075502239187492791676489838340596625175956386758857791101442335902560058589675988644800034167781317596718711826961757756738402008229986782745417022354676243358302127570794414334556114557413023843207579748648986910281248443340249370780957556598598804796069141937416965261455075488307222935133880841412126558848454589980668521826241993548129471028970651986656679669325189971056814887113841189585090793436887979768160007226745214354246324603388251317180320722440270057128524408511277538207185045562098937340086466001982464189218088739689483397000413583715642759450179058342999024737759265853209929155204349061829934567238626802188069005120541577307491870142227367986064141478247469762701104986380612243454430890406102582958345728370618756673330911364661421931834247146456729292212490076715281529163735505102232775769220391945412367003378900556307779058893098029729001525750082267536846601287070859678516311060226762992960007593472872097413374553898633871666576868917837723171503592531605245750699894659127337363206649009673965436161866759176246887180944709097723372063652601423717566483829546755062907135016966541676885303154460451008492300767096429834451196372759692089179274564112730285868462876407485365074460844687480812709116277162977238631940149784273682347302351486758013237607345769616541935382692835660271962039449523894614741962212065501564483064264995024758308701672558654382569480805036277625626676250736444870327432123009744766641668713917090018796027450707756723351514787572769085163827364956733503258156010021795398199086101262788193279251948911094523147351134766152031894641473230890267845047867873240025090015435581921365268947927020759122255392613573978069042793544141485978744121965663356304721908732348438965366904657024823329164660675323345932808778377116599092000371702688988996326857994080431651624073481504572026003204557740010764155871967048223436035343993577483386506088369775258150994032162895687982462424853620072037981266308834651243725568143379803288099111450325720365276897693639625836695981216456156651151057517893334483709751026192027100998213716271653284014609563041959958545503346614238777786883413609760099608838674791187800979581308042901147278380285741771715362331688230721575767890057675901063057851545412734296135989931986875047356009458308886636581583654041594648201685834104454942995990306475967552329116090121042681554860447555346443327826131583827571573503703608034076551803206251965255036684326016355889975514339143745692958081114163872231239913242988443884299169851998171399855885024330424315007488115409829059882832016951913723791822084646488132822717431426599742429486588328137641152662628223516762341376823031477927409520721276733988377147152231851301134777156463018380676292037375761763674053267152877408654240073212747147011218732595652969069937010545771511590882490286817663493827580466577218975256932077653351326999178330119968778641392989935693784049822372905018481724329755209755256150327130981038311624362196204851437536717743016368816192754104597289072206339421447437583622208873012258351331381548955151975276166179489441688598421570158010279264872588700013033510652083904471625377367701614495869823950936092060781337704137957271468727675253662107063006730407286510580166245549370693480434321648280173183181475884189993032758458171756436246610646247704091642888477500641770914725826935539729153021525427365376219025329141409254948555348046672273558859688249040428879907042800579761875566690531706928923845088383091755978458909664992882257982194317098725860166820269758941793222329764913593298164496915763322661751359960654845624342569137467576978414487981330512567720109322762247389839948868643521622225107048826884934430052183827432058819939602678013691675071307832606187111349829082386114647854269671145189595843597274254827550387005430863674093281204417983001699909776398379678848241074815448781770892308429549248867052299568086205219282710803006713231718778833401299604983194860254696928977445044484128961533280277683697478351759790421104708309349737061122336145441249376440259380965369898609781601570076417817321113198355935018567854424728979813821192186410317267620549547133416343779936689169589198123073026491495659739442991089708630172415398001228524333984222995077407257909619139493001312145041031920322335276376832272037727221938847054098936309596330217682300755482459060786192002738978064328955379864662152373338425603123105488108253111659209530202067369847983434476677383038909991128401327661393181993172126383302455549835780791341894440506058256617226309944923531459117344907839137511417976317139865701674872536036453752233610755051654463066530458472426141016109606303345622425800525712128810504520062089296095244633583817891442794140448128193394152657504352200305818316836298682582659889250264164375426249432413212886091864315347363520010294892200127575999558699540523797318885283809465282229104462942073462295188451384484635008248202100357601419666671135479463353269831882388586164470577952695912125401038425999994137779730244908545648298977534327522412204782221674087524601725423551881428000873935111697088649851430569314232397033700363567563220395097211346184236273080475467762449729512104034789942880472295668924046262989265850016869347939866450325870245914132009208504293554856333871979834026429650242590228000203886816413081816215158770282900869629579277721417369151889481215995016270962002584919677780777275126721560313260895925668661524656692534693861033181001326250805244497097155426596052424072846296716842087182177677663699172240425790418384442722152045650729170854761876653437402926339305848530580923019234850972925167502309557931905857124862472063164614120032629279342241358600201214766052928401646592200144240485836234737957882475943681193633130463303161665974185031217282833440919866917474681468753106219267297342192623856703396165868733769956428886365718413703846630093620793428345851816848409287373100995768941511551529084843088754593805254187742934670225270793022245209629100259431242367386316828606890857084935012060197517226513145747748785174834417891260085040864335728382790870142942041931367944086610477174025417324768621019974069973574461726749942438209820349811368468673587013341764971489062355358986629713674866538356819160200935331714840563233794833143092635420427727247223186906188293095676450035685139833574840458127737694989468821094279649253138990892937378949766194649842139407729729712873419718442280914893691002031059010281253456449120571032045932401070089061194695385426414805145400066964812859796852923044059959095036720362521007704532045887832358437900808766333839912329082532855629987592760101300194952913915359965739202017539755655922434511010581227493898366279720899974780093632129849822595181249032117263578029268256859648261015196563283521975282530025725487739610538554134151983503826501546055367191708388060644724213052219284472476743516405644105130073929090811108223142693885175599650084705111656074729545073603488025764617025739448503903503324439847090841216665227050572475221147458050803121380013994908860853087522660780039010101076857950128129356986244529887961129464564864769111685800083429638764163027234081493433966763748182319386515446050562152789179905722918460755425586589609751881526973786079089642290088011712906970944851077210766002831226837581081706208003035532626872027111643989835971404135085745325975652081480000951168209121809583374571833671951847553621417325438251677982779658088259136322220767696129241718803734050447759535848172391147777694544245782548133354553061545590492177691733182294205112165687374253152761886759609854599016928530921362265777697988360248652350964991713201060292288565930252169037649239868721736180443318041797423022591547451293957213661102498905979783639544329071524490175178163308615205595364506217461557680128993296960846521644457373533046606469330254959556678687557749559241525591676137634521048461346144817694246888588868567929802126015486800419549857144175178023548837810344192707556442583231020470784566107200976498164810091935109315890800695977227383160374429336659009133900158628431162844665064536189403959887459079969243738765721762736346200716591146100053856793487405709768556480694918865651773102163637159988527224088315807688664038098722892855864601910416515643042138373583970097119211637692996049875550774547102665845236738242833540890118478096394844131319091997755043012523878819347130918100556505927240767201845648018005193075060284187510521491551568278546062609297759082213716952335468283748840909648046891263637333315398801877139458365581083920339348350950211619734103850466638431592881129195023007458810966020481623361628973469919194885653911927058287955331543372357478900866529020225297347343160153627278944135029716049080564469887874309884127225289702567781285689419874523263634154376428491164673700373198817950775600885707455966032172975508842034517745477940191528425805071037525574156896782619545769799353604766855830495440161004280144851296314183275727354896785965784622705300204527890244407413228587191134286738374515415160037508266968797312195141420621660507843338813819287957597329173806229496308724192894246208670097042285564271638026160509852694273296495875479890795095793781460492271159222223106140651333867157890699878314001247466687125801523427329339645429620134303811230999215113892449168497595063833456259002089633440484494598935235441111954690466811009638374234922271592870921194821759532729835259883130346133389221574452181603031291629699341959430705390723272552734681299014750774318848225269092665271295954160520791840256367640294808601650155709220446806977915712677930834892390465587768788694309637498506311385900370673177697939395931132732238522364066392540013890093792212602128681665092904073163618391615859672983022446670575115158025126300991748181570064501627076332477274723999819480388283711265440527699790974482593612997964580089691291359768382108325928706375174102227881313437337660173767080763391221545460068175576851507900417663854078293650010143214719521908511107973286173962626414060079830479901448901092927813010919563666337132011642340199161657962627596985600755370488650258745451752775794598760278996322980864963532935551261548304684838628142438617640943108001262920486141648768773758778977220537097386861446572203791653003131142772422539269452181610342034252934346897544024500669168076143227532566950424452342903387857664193648867623065551968618157861173828257489978446996617809611549868262455723811629728310859962371666039633188157086354067357474650564315174603494078092001503796584114220894176509940668171264992946276330773421760211368877269079400339791456649344501744443247439740139268407002138679735620575535715808752086909418275740807464608423528297718146512104787812066594810420620219009726584103651422874189342051756494963449684784950324141355561428154198467954279279703896395968603758804426223475675990127748055032906267461157844033848228751689287849324597358582879717228306346219685414614358055705385407851642270796604741422098177764157847523554681395358603462954707056868696393294156833629102958670846792115827867308381318704655708486471082474109163038577429409946092206793278803151956363455611105685363375377231353162414041115877373689340479469246198395513039995014976871950562849272828458128777742694948090249358461191238738694847454221078934197902189933027331479639228756416428103395514540039214805472558558157686886358571301454273573988266161061861054568725964809657726333539119918564131200958340511338303929947056616759819682449178170876259148763509894376505540386083441527278663272203033579265022562437428931328472183701478905343080411206244812894450351178115894807665947201463911007103951433552736732359763893397434135582971409625847389209720495570102395670141559366228510056387131963281367231728896183849645038393514606918098833385214108553100118112654422899778645867130044916763315067691710783311330754206596001055960656433159829388555812829075432294350910816401167640653483815778432964808193070456601374684993482758887439933231199665458217226074769698114927250846034290317532358809713415184231215303316149465184690821088934394950780552642589472985886751837821766245068607616481604702601341562715820173842838482832971855077984773357369276816934647850527911745278730270868206114164909766498061811372089768525886489912732029813259986860453631200010576956721123797720200928879465767696041141962352824526673861084589693043337281157813639067927574157742536860960965616498415102685262126090304681149723832171309102302953286671098486811167958515995601267914275504268091820847944082782172067304829070079713406595849986624784470778520145120260078841320744500891568974608870327135667919032235504264358562765000514756134058060262594665556727951182775039070576832759890661625354476854941525587778351303120944026781011739999084382429365703703862417594135440032400812337275617497549336675129121178189555788275590743343022369302335429934600457086314376746703135555856698244943691002555908019130533316681488120276929934159558452999464180924427821130562877075859999320035144528840652701190549245145949744488312101530771321594920527091126734280361336580792737942025720603642126858062519139250855134236973307450544720249134309748974378517051757966099826079959269289759232794190584672225695286137531531819862153093230205430597221621785661899234391231982549350641304565955802155264497385077085743511555831850655522758562596159990015629299518465335442522416975085560001606186454159069869186515609244772858252128333379638160826987885155173761965078054689538098533042136553017946926423175625606029332878062620798084737778172810451014134254285049581656731765066221692456535608396319395561981878530661317358270437592401105397656802069825788717658048094808485923924291313543713499012548532475207296157513998876754625117028167965860316257636594101467024063571571453953335651003766095858668471856200278367224869567690871119705588260821721657299121727309569701014049447091841524623394507653574174244662012414867341844210063266541072813736145359219378186865169993628813782299210929379824162780371670695124074800934487405607191768533186710142832751349572733563107540055806419297779035429685728750014526551058057001747155147338478367818201731524381297941719684547763781134186738061677527569023227073348767507248264612184906086655436778286256007367855802920988117200232661501367983930724412548129247719014794766837350953641731504729387140543140837400350093261443617062385593811228843860339340715907096448553813904503622646998726641051802074422021388118657753064321233192713365057582331547960657675212948108932031138425883921834662285135837672760166164299783717988862790065220717555327170873472187827812289513315172568740035426722807913400740365388594534008652789654158292956734079157194963758200018338354403946492606004097319551713485610498521285003431336381542178076521436075523252712043136278659406987977012496566327690597526681518929894515095756135373063160691271105899834736776613773536186808563606511105432918362750664078466868097575709972439470014012698351079938143919236114202229600727498304287374691614805122977504193517305073023165856642573145845765234314090547066185277036325186327920318926698962319285411501405133674481538860563221581272396307341705988953184299655883835505315429234915532632287264937127658274789987315532125031535293291253159679090128889907452186097086090928463411082684805821217880247407371358190230596215814886977591770433810939615796115691204888899626384760786414894789085382475263067532245693264362336144784772177876727423422501932776991944864465385245245938756014526917501370650171580715268927055208735398987265393853905159941651724421449121280786973607900426313885195086097072273175198004506263338318069965834179745603060302176024651873841378792420598160983741484306020713988759715352206480627263861868004563366195077499246683155844654197802026570550239767305605774783254559674528983393353475203673907635171448448179515443141562540203581477667435767532589108960674877643189764688353150496253388922118614135238150477704234171191472119827998585110285204296752602000436501987691437071942297914306692468793971389988979138398154923695081144641767717754882461925499887541373269751010747661855241615280551011885764293525841472520946205251437325819616919178285296061072631268278729408107191549114310171554120369624695035293559046921237910511355012087527404505284019247842930826499996181622336550243132055458214418914425393040376466676920201276314277359105393817227321176463676321305496850889686555538151011089609744961281617622277841889823216022121065643255604099327991419191606483185979664507871168803310585451430336610694836917519898708850574791694327701105413402391532243623037513825159543549169499345150694771206699504295676401162045685038552864804758228768972640892107745089038541534269913784593552481882405022895544253828087916090500785841652661569547859497868889791281497789942704312757785233305542216295420049960881232436845131828878031373700647538798349896199055827098781722516292471624721775816587620303972088419329276794698109138516922006226851983244223503169057302228491520657643841973788404245134647288868383388673096331829060650000709094233553826201701938406014387636843311850574328637067709126459673127542570239105037879770940943190757163968944371499619066216328687435715744240523346809923444250831891585107637696483102565795985864706044285077663078033246017701426315562887405118874622234128647121407777116217863820995721163680630752208356456318272109283366276360956465720698379559455812710196268031175656866678592476242771751775615337710773048797164577325440929531921307884216474768301541185593071907617098075194047938627067825376022441945610374079856060754516453649496013550491298091616978640768770248422185755792235660367524493027404922997751303466708212270122258974314911570974359607510651099299519282429492134989283849205896063435085073340158137002309060929101937585210807836156868026656910851952725717376499857572256773325657963311501450959727633339204258820556815827100498437148208452142261262572821635207696180046163248599203263912521762590519009847440078288114480692590035871864943168052327836720378088498083895487699734794302732751799259053841474208498284743226194807646222164023703898888856007972365176716027135830408155322137398606553423711498420659000427194689973459128692235770773212784321600824193974053003696204960543786222239162841770677357772368284634593652682423933637945242195832900075832197246013836774048032689416170732769881730444660229832981085599863801377455600902418574589918694636148834423089530354318483742701621574235075960354983364229269081669162818914457937242451398678394582537922754492372878370175040807025419600754043249905884809487104401930227765814735108041772621367739304229528787074822367312571078835090527134279252041138684886822321631811084981151829306366539210732546665542411167145699516145655733781724203462461205503193224642247039183125264871073809647531937616377281758073142957611770902140339203537552672425197149764956102180436268962103964513985054598227559751368115958695995655913299756440671720581189050110281629900222868607008003302774763783699769825943452295601366354078437504010967720252280853965511893043661188135000263329897978258901791200679785572338021477142289721572124210296279938014012316892094981479149832338247006602125129296614786194521988341994310328563969413079938272366723249937728263927139766488114749374532761101470713859720845276694967075121826940089877210991117362951474475746341408818366042869041106055980887305257936617284975793596224442913061116325225811081676244152368127840227318045845356259343573793812244996747842008761666168510277631249972577832492535538555562481364049754377888980247757028256375242454791886150676346075859220218067014878937592847843238410807293788885765439488332809935518254483558903638035997917400270381700696761720409299065853946814985072345737878111956205061945217997737631557303544070167054855522413554679659428900358050475972661633989812140847181801381017393670304161160224017304350388317545899371203188930892763331154823130445843804112430075557478582961431857198863085929731792318179029312983924206947087793784854517226765651826594300673473621690958962001365827072994173197970956884164310642910346009821663116392633420563671446857234241781696709022760420076500744545939457084126389115561663429854347960125562638507623595248450991295220882690100139046680007332135662668179376452426063811605878545467264298469528567910139984178659906064883464663488466078045632509139858334056827621932095998467526673998036531102278569828826895880863690665186279313233179114626464903429671063986591772511545807001964032006254803031189765849975254440996887539485941362857054285000391066925791824485874222733959795496599831756233458178925068870839074285399398300100199182020045654614780531852968619398787508360751937813135017116916323845636768659688903481878355811373144163838360599550861534117121500273887048726091814207030004041447731943378175886902825966108515609426726286698996746092703744052597717821207908989265225251629785540726953935653372802156409801321917641367797826301396567948450395164688838383272252286948327207070954316554413483256189667329375965269727559168650214076276326062790973201967678917823798702741800716926288944562648478852775472525442087186075443295979107241792990041510793654724930038991298550950612672963927743323035034621378797685676339735967330749141928255409744313429501129394898368186053474615396839773926146721381849008828223243209488656496056103578670085135589849294582923780100379334291550018788252012889121685150842536254962281903208678156054817156378072476566095164994844077593876560884355928160450782116820646501673358994717267503090395041404340893740669691769566605226088370310747096190806929206277864813983290239819787031590716587969430546340362776471877832632685362466838977164594312118943180192497680460081807295736396918485604647155883035512427575604579091868910857790898236695511403051017742087033774124296902957843032193485906870791737904853427027831192703919773339603656819638918522433220727704928068112390707611046129134089363241670203067771941312877065558981597943704654031433578655769969925801022421176911786469356172990144494061137710110817462070992363600873745376370271907273167936679827633057243681038577133207099925730699550113417753071463582525514583197455294959493893958979110164302344142540528439114089548482425477374581328817287980400049628835252744804673991933550162147172980184097274173120896709213553897233421652067373933968297863042291968138121126652011427098044141314104922150457956445730217704699622314293605765340831771207799806816242049745817983682028117393553772467239570122259784344743286205871976681772679936353454031751979640079637508286121057149416416631748753805194040606670068929043174530886231355151117708682252577897101440332740780206148782515793000590097446219189982076545535894168486657105850608562146819800838924352663710614743328432838313622966162567217146223365538037804746692385411599007848386313496819524071525318628194866940265374150002764860172782847163386627010349941686240843422141893330181384420198818386321589438070322596160144095753695769202353391165964613318637139366494914805558078937572072157503828952402518153930461036013718166986623550518012682931173533286948522272618848473362733247854768121157177931170307365973435012964047007327267035489698227089017503679222281238683621109422598768112451700795223729510927222363087108982231864154969108732219774540338822851217607486691046310091865115309704322422705147348926056559404735915686027098132200211597066063844938439039372167857085341343331359730667683051305206188912430647471486332780241189186307782934462090071354116903575795283492901407180192253681794367332315710194072127981434416411194410378846298628533793049642249353562745710354171845430145443817774657946402653998418740956348180356901787075218628332081592618298415331305223369896408310666651302510733308258909761992068707137176118760109492581956677533386349662958980397294648997381183104529691743713718208191390950193986078854904644273855372206305547065740178122155849577995432604536632848370751671592379618155221099428410883432001419868101625475710365769116252477957685604129774791045114722755957086804955408245580378859034377450216737401871929305521183973382016198461759996574245220832890660763751259578330998329054781678415175753899114401585730941023475145311983458691505675302975856569260778123042274459505171019480659723264989152930870894329446615770158496879734024449085632058128519716562186369679859407208413414147404360476069784033011325800937556889818398306938617200905194054182726269750724594172864408794014202345566510738301368761454001639783149102053879509983671939368201072931702764253248733328944843592145480804498525041966196986877220629810916916856523952725797967168643335299698895585216767985241805978666493789261613922424053652537381136422688643864327997584634581167314189541096932456637699304928665142017595946711471484069452570607786315715717564310191655061836876078450418610394828962197263549803700109189441700164937078910070071661224981955603633912739167105105292365135400628930779668391003769878029086082458497907037874082182762227534747062980026561366513550758587222669248414161489382851736866520687341240069033610987902614507141944445277949673617108780774965604398330479677181803584099878907479043253982637302441420937948749910632516366919478885661209093913800612951251428922163677644831891797087433485806399037715191719684737880981240833226210652643399827922793221091231776287859551191065613613567245638986619734776929557687427432079141989503908254469648470542801015769086118134347830786262306421949504903870017116365711707847282870037267627344618951798924502069311510051546817876152500259294323506970144132299066629350436632366470150699044565191861362397948936569898083204564002557378413603457195859862528168322420958112265747474357420097883520757092924391387420819863178210976798222872562541668563905351745401586075771200968162143976960591695677757944053999799787043900291302379147722794614932766501481078263906633178376073784973752220444446076131391380151193021137575246105547376610518272846115274382518889341883911290063689910530126894381139828340357989273703840763597776524927386566275070385295326126250138013793633637934058455354882073131948930634292802671794858895241661544625066952670724024373368005448256006618002589508594632715955116436810376230655188259344528564922300494004324876735369568356058420090972551358154532691709084467728272188627284681223653428840183527847327369847072212760812562803461942410719839739009368849582976985320952298210195992664417658683085036936335880153249735874484896412978626353703278238742157998799034746151625231702061005531485805071096404267268739019090993800868982754379107753233818301437740557807866706583495739158776372872881626457770322043067585205586269877501839632160485900119678168233315891298939028062219515168553307165692256279657742922102699237688436643570852161868476262618799200348418658829677460022751769519470670449974491874498490412589440200864901725610544406788872784220931553253260174415008855132985424674864020033048618399921383513651522346939167372777867741322977458278063014960473705084595563126061435642782192882450088989063717847039227126571169891521316844268139782537494680901550014164152501382542889068034926922251716031722404808430897841120124384973185247538303961840680845547075060756352161846367807876723168135881120738925286462426327361564794350344412048410142873912236074507469979125720669190656260847911055604282297791627950037039199770413523704054275978030162098721369308745178670964577626088518711715802382271841783924296290657159864091264273000167865308916035772111668179413971295451985213160046188965670246167190612573770264247588412184510237516693177646749582962192198621951426007448869766274483833384848186539134439228694474746851827433337653451025555521764037042013682909070314189433054144183954659910234349047706790701070423203828220753927856649939300556310288161052306065043646958461606276868754475568943323421074479604866814017429901740358812056640487104495111339780911209004830891550923093278026330809839189624721547884242019297091841416282835144222661708916655690353091758256961492572074064822709866376774973958863032023540581083072473075197202454422402661703869136097481118688489692356264649735155020589390269878379352193964021852571711141901743446378659309678003570391922523916583657264500899852294799656532243081854187154975822415389262774980375312451291424325199816818328883464133070686110062584086332698093618771073233450226549897509710433571798988933596383930161542945675079444254975200801125916426701378021021159666394984676439073063455273599692984869701641168153606610260412598367864129492425549673109943814827033176608032412680470809961848439507947197734786534804194904056881925564331610894700361265874116419558002813636352708089301886483553305015860324448288182920840150399413536087464236899125782739664903552470518439088480258992131345453591334831456132153318756444922450168441252418215028200831343924764853164316790284101161121650586712699245777100110523791664469437626455226832785432078707111242823793565351650056704596552613545586645578526356451370783166258540493055507841774602307059382162288111430735201221309127160770578945497682456898444024699043864841324392864907237767827717010397091998408754492755882721421748594971292675878242041660137779607930108990836109708317195346388083773599893783460414522204363374562838289573066748377092664573078910672234016098622396215955339092256749268463611000324362664503876296390441609372613983696841035854091921595824538665091050760943884260001955933354850327924294713125392576676850618453700478805510298370047716018662784015230648068458081049891809282321653113550991930193391159562044393703309812489308750619115739415531686892479560688605276227608554617789405801395340685807282992979348048287689922660453466160962720821464883838873565795310742991239376563568304856210114965109116785520017438438984848285235710945152940784355907558738187556497217713640220201501209821634608302423128086001514442040481945321246336160456370100411762332695679658403453055810782085536454653392482682668425890162860443698532075119436074254070873257026269399308383336404376006845827380985224901049813536733948308041053924225545444382568049743170231115592113639085839390623411913279008275624861179897108255007740438548494408886970759011244409660337320789614993821470910324736011288472211021353867088076121283020652861825702407093143293467129708095806724989798234311050050990111347239863170189569767653679321912637406152238539811465222458512515552489785950018749863331822739540662118289931762960883668247563899952551383174792123529277742339785538960851035933460817769827858276892348959630057654626135062422255104198530854548307196987633770535512309438236134095782871232791776929669726620069930089057421843055279130027906047771529484986604520074489909617896568977984858434963960852483522673558135140425701008993805445478100650289108976355444570285179815507364960982658449926351653509382638089591475010042853661608778708366859074598817102049647755588886370293028392178696907397253960591629127285077089296278223402547194582052963371272195554198700687329010628856218446554294247990850175108758251077044869527844156092708512908834580088602692369477081653164434034140832993409828789073012072040062737878314062162166751905621242979594363959614138673567215022235113485005198643984529425153439188327186520524371246513486990453289496254451822576703535603703224830680969628410821722036254416603236496909404572127101587272838383326666065361345916167608660060320333919740937720790596965869368782552281242221958413070456718977952307124549285758555212667494386053673401118557070902217856809240280307171114300211134210838774974922610325989603384551175217536337653872005956616253693961875477472920768825283454439889077458147234632043377078889090325266517206158179786505451145649581093958886526997268937416257018680347535752788120783963563265570433966247994762071498955353696978686450847707930497067533346856052699428659676679356540011471202797947004194485363316969218491658790526072968821230204484813681914130376553030513765474866472862196615784848181895188253928626084856529328375486255655090441014545686801873116768478759675759843314951934730114830161010278936766416163048480557638828118969971986788911660696985668600659700155118540774576796371559903017807685665901077979294281400394956812091738946079780128544747804175472018669009333512864366418541225612352020650651822559817351792398123828970816968594936383671810984200982173372894362482223294389958461682358637764327427365324993691957531398291916700497433218966837694503039496030547439422672100476876001704314747779548699655625733365604117523509098060374637524156345164994244929968616949405557399110957482014780500624742252938947868399270180293759060004802856359848467257917763988722744742726248790633040338471601532281175097231047566541003347977501514877432443068241938619245414025589633280584602846713738594786854877372158417972601226356373334772209292929523182763846645417982665311195602521907419322879609835455043500963895627112064644691207598344942847571678064657284362591757325195683618351099723131557788987722837135665399680143895697367250255902636635861481277843675899165675494970823047818377146817938109648248031575776383531640815119024137506926151874852267757745320275481211928601671095837692895930909831372165686890801419693261374888889127025151633424206047136154139880825236082033653121761275669624234466726622112464010458482275014517723686558724479885537669116960975422285592638226166953088690061448192438314630853022263642497804495786617014281154241968354598163647245204487203611226876733263310136978659965780736025737715588058989433583556125425684618281792367995745047453586746953526954780006619425393359752098511365976256855880648615828867123365755892277056070214854873744833281748813275285352131375905522846485195735392518997381706253806348513901618574725174190628992265783488247910808201329799731374394148917598792626335210865755646415638696589183452761415786466215452492438264679539205313596725117949064948130627757288422019791627101277482845721561100185488106025413249995515878395335916514453286625172618954407295641747119680006637310731748311374497145635290039159937653944889227821424146404602025330847822343803694124268920196124944581415432952559556721274482059023694991463610914434048436361853035314096218472919836371077783429755387999237292609929719361962177128974508550942203352877973534564128584233068709888990821565454973991256585881111080688227086121814161136094451741240065899343624951919372935486799850922093557031523212153687434894226378771440160779481047149266462974111028720538836745147153819402026121446952400414162633410577893067116080297214599682208849621860205005469311114759752167781413994615243995392551348682170869094753609486338000981390940335684585811851510141634443096632503935728439149726689127767363558024362357621832563871080621417355307532427360564287470780928572739843856990625968058315929186679773703013500778568432677395579106264270305262482107019765021765756211311717278401274879756320565111492386376857634819097010267448498163859091810558833278011604872116801589436350427343310964656879507278308837301495208694573564821128963403609588801637444293500445297955585372615430574169015365336561317495555689268331463796210253315100703759203719879498043500787889377364071221395978827856766477743321693517248563234842881124088049141761817953188541308774520667158013636445754763171587788157604374449765179240629485229111159667154943359654401004905272190701436058989733203652966197681371193236000955823731291818313682228908865032430194083913904765461464134772511721861718899130577453233285574989234022518299274238149615046116535097539327437263184423514557013385867502758527550884869324869891069543294321049906929932345557836062316284576229080179691142394732781759494259150088183227972033089768251906082764034379149768774913624078093811595293899734879127771335669879126591316008601275393467682997114609130093360965349071430479788758683695028186715042717493154388204760256899728120679220034607373245765380844439427904336986384750625943802532663733541528484460585905991399514669291379038339168731609682841168314361845321412044409949422486888133029362791194043895140932617925976698851341348621944463671254127593771556141752234827508913561214435156171987772509685154024127170435945394880062251543250384745775313058507107625097443661262186294883810689834895215488165275832911902942755306980881590239489214855949652854455155348436701001011722873467955102919795947275616555231630754582080104555160358222782641294965430553428407520856709913034877759781774080470480350781750304374741525257130642130922656752497529892375809124650145176957543344511314623994824613043241758355383650347202937508395459395390514476271352959358836276358397217951579780905525865422457078988413292083281372196595053383878496996833531938995566290702999240034981735332017878203779805057071959741657510926809876687652014256416720826483194422858420393997591107387365363699437417712259574097082620142994268442486186543180674343407677819831294666037356470433840978463776621067963799216891913970633346315198710046573331431350097879613925161172915773840243536162811942968450529261731710430027528952614302278554784886278194003411699217237563890055725577759524590685904648331012446770618205932735192769060659997161876511862881985796599069175695771766989964843178757245475639846564811975655305982003089742158076812351655675666557173619846542970957565700414612420749525184068037367753002142812744575297279790556202656363798674289760394940655043824642303334128471540159313448353784273155485460620960344761419921877807983626960378364700921203831293061618363430478348355121296258803560383783890501313521588726592697763590300979610973713930235138684734688265504349244632140789155610160394841571372397006008599818101132925789922484926284411817578054728560286244535480981968602649442502108698118506118786133150471837803570721363668459401452865903808970110446614095243231834727844069689785656620593972220185362284207590668533888520233498692831009195222297832721397073037826635002475594272237102138357857901214841745297644363148365383088600829842056547658301172742730629148305724910897360173336186279295579390059155114717030731712516070736441939788595270625250837467168401398809996016408906156391412227351690148984100453998435774649456045219936195083599261155810424281033116107037399629289026654889142484838256772976944016238892376720767706756915750091310971470758902116506364781366466865440746059771578303545682666471192495269278718593492451526022502007965534816543231026634826654278279337174399261462083165894743222006940244527844939890325056838322446479486236431324657115144326755779476466046875805075946222404690452850654053842456106659499056812062679098558707418146438414963849243293330934851213603943707351854115293786869538053595349658731206822953463542252467459875188486314515979933909890893508138237655454037415841820042349303994510728499169922353464081178500875489489921635200693893842907959835184754979702035143158421825278745431446673129047575788690628507778265454823315067053815510515134297473987002207502364910379370609583651963986515766997508351857939515759805646872172055534104504874527768173060626343231883049477283203091940546873690182536848272950878263864454786045918339905939145454857951042554354292487112737354694374525025647686955985202598164491027625366512211998425172519309815151211923547453219942561030336032688865775285427889095309590393923569145451377278725557766981072767916261155420421308894694711694475319283299459300814264248040934706385032395894780763096768271433851186268936420033631218061700517240637206134104663049696264844725111040396442975174908746441787778704940412343640544943227240563527453393706243464347028827655037097761004810034701349656363669054712978760042138898023464268301295816877826753498610651793939335255838993455499063393504391839211171321656565131655720031630128890260600120538959269188267570905494802455696239560686432273109077140577285601311211067167556361223671908087963423258273212942967813988801076578512478287470311495800673817163418232814036283991730569679913753495127132885662242348399038732628092143989591344731291621276776277458708250413689931198131260305635350643289751216541395729602601837453547443635170974572970471467119201212507111648375768007688125007057693156869116572163931412953025463046350774914354172940204066214011172589791216367647956857781614859790655936059472719409291535797149001856557229379791923227138918511187960071868849852146585882303492744758131810491500969409662012313062447961238961865052053322004134634912386564505787552203067377960515371297073001065559955078334432043741118434022489515635870341342902543833154538547906392458497371056434975898313393852573100910014064076644914888492034209044359406137820545276932702909758610743087329438376770931853153226177199098933138859463090349990596643932394229564187992854918843606694132386994557221619266294047978077916481565483490819336684898144851343217093810842779532647703761714804682939760294660811623351250824590554010319877020124253372507425036483993890944458742524413435912899938639965605650268302019388087269492128986752679013008719897562046899145422994872991805202655788928674124820784874625400934686225024346377655928050721219384232445664433200808403657192079175180747277692196162047454942283426523634824025896958995171338596609123438437441987936140628246165806332640114274254019108831842469184432995337116342647441869373870027331869011290236763428568015033063344796693101585092351461025175862492834861384271945368498249773921112880519056039521522605840737387028699578890962274408042018446935624316816309497049300140446750956203276083561317504361219069690739827649221906578051306311696821276114280953445572179014108712821259388576930864046032930998291106590561520572779379512319321172200209029990886637598657079457190181433789209811843764452366946105574850839956556771794066115120275655365569575974654859362484599640166937253929982584393321385798952630027316943289831466520062255919200873858272943377738859119553483911776712800712622283775494246333077393640604873655526414787228323095018273635634917665860836428293847911610140641465955893023063132633491373122072585221112900932460297034303433878751080199684776503739669049724964500368485059809671718479937255629651284133103363263529923413781863898210227972332570231369094699968461427273206192776374944492525023619748278156166329671536581413176659721172811607382322814389970879999492218336938270397138208424160848162225171979515361429156295058700677367761595528264637756014698503755898523575937031577826853247736390260764928375192730846236046623676188709882532990573418946556422734346873700130324461459013380753568802394500810119675994630903634574111816392342713988738447740014188339134604867885551095360896941081570519974291744056881873518106935363215821733247428020612998299503648147711114027731294867932794848717589694690527742727459697915742592333492791972106188996383526102327312850874459904422132794753092531216265254867753337417123480163382957788337102713634171234391757436359094459556185737331563690098703363646119082898639250913562955951919850902996941447661399723849286929752615002131753112122796800532441207775848304448747848184778510640538076943840498876505602062733751362313413902376690310646324412378378713199739819119797331768059812131426826541578336547582190105310616269210848439695621463887059447510941658204547123406610328526150015826902880737348379326607545265520421884938597780346365726438004701193880475069167080502292519367670826644634206548588211364966556696086671654265725207932504036349196157254850914739984613933118754069818161895807436787917322771996347133155798070732648688838544940369107340452397443699035843758663162579283651519983920000637413153529996299768785642332788230380595512342163910334379523961994015536827971707586354262516335448408590611285956815152622591951489307936963127342050799900426491423739104487332179578030082102549467330847906816399108406403232887738026902229033449280645776231015240921407714447720195869831205154008069819868965145317655844212511214699381772840228423235100611054459248095614864999363679156852433709849969527654415480978298085528932678908912211105440939080351866883119723839969757771282594985457611479540767113738276531327958678193915576374914282546279735576333973896870507844574813525522772107094697573843438929103813961761094135642839701903797856901797010564763705366403139499972497585118886419999032043535712371319306325813232572694506427127262931901121967657172655749538232640785522802735953373715380010682208405115636261529071520783661868557818646095560878531132911573398891986952224064741296663102928983671816193089203810810880208513861608000255723051526484614793615777438545180629299770566111036679468266185072900407356494179934083507773557556188974390871561782521157868389210383734315711949523295483058173442170893371388878818808720441690837707434689005340280788125195612429320139403235380869355215436522828568826012162105323656558773753895012692698979742187660896460485693272423865240907918041425712241521583462790209231662178349180424458082986734598179251834097917051978324727694665091167363612281710865603289880774016286410369312637416790196690352067621114431330506598263999023453684556985203490166053084868666274702015045863987739548161235448582110972442588534960406962756726465930867692203490669140072259267624423747384425292256571353299635337608292494528004775999952571424459292360461349967522788612233200736296772534649369502901433357426774410411893134097157736065724846766890766217925212761994389775633718905857408221781443113730865389548877697844053036891561426769089284615868838767740667472472426305977935867756316940846184726725920466956693864812122905229537087240404405251417435623602001677651164213381603070979915922284572695481803040770734056852870057911417271385751002818839955628450070210411512757156715387665407695177456260024511836470745782103711931541569155921621477597214261559945840942124195759389371080630996950878851960306824004182996130034542898234169329192396960536858268844435879475295344785764193762068249052988859565777665841380904573544874780183591357412526983145469002928061655173079429326556548225644271994546916282374548667452542164863847399858876638513098875677097751330934893413456474695240553301446996026031706856463143144522103704272892799056091546830795611769592729044328173134362509295126122920286267770581744452293817828515374764440133586959455064608729432823926785757944193647212178805713431119971416205886609127181480111260303767632593384190209136753170726420838784865393273418350409224264641973252992267874795573260081764449997525717576960580568922177682966248792639842671776963810804350760474163729405550670700385204400901835865769956336837354497132262316023819344595455647095474670335932861613288451950770134898677223809512169614213663068646889026249702386832358087384403890266298538391998166599073606680952253265235975910524872811582209068989172868343613637369714377345557802105294640319323256990265539978352235790684561852305986958831672982349485498254342479210910547716327564109885116579900591650609558760069625596718857176300650335493719199740075413314615687077177978427772343959116472031726275172145747375902409422419145481848256225665312451819843116647518804000769970253747966591037651622251497786052739855469237152736874980703027065687043861026326005656670899942621029889585945465887882912548979626863308891494728864855936224970229122479907577199572401825802846870512037041098921476505884804876248573614335433960985437622080437497525482826144513355205708498853533751413075289869418642922457758776447644039769733671351785060853851965602173091270354296164769255612123637091408645632022824112197201548263389183104812232036850333477431965344538382859814298499095197590167533312116239513917960593116059843272881698610256523490371495954083749717179275867171062036284816610643122264098167752933610450380020251441529601381565713674847077595966546513960014107197594751287671398699261089192135770929213503310785974314203184419298870350566248356510530883674195618495561908626524486409361732583119442261827148964691483045831828252598001835343014494703015900518423860263950382306238637306634933629426018825931804142482692562566978869621780599303749569969657101126765275501570456618807036741345755427765002736214105313881570696338730009500963411624944857845902391431513304756983029434749394452334879187710004187838555867599391006639981200349875220736495167342835169822061379319411297620434629914898088646288250043053400606818654464698725737803520042954834012509232966236304627439312911242882285625114427670776333506621469095202402383691735689576661672562169062485755327383074937861556098685976256339200304135172495160749303765233145408113806538999572107375566064739627161284961628565944774942173959025336927963592013675135010195664572485571933348950684859264700497386317045601801981158322081273539903091628667636217803877928596826462755436721156082717898054680160161796937722168798737201418151728373525534718462006281325983709521962267591851085413828372921257398360613617083777287587144136738914353643921128877101370761050152013106949087501858220143640721283386319600314605963315948819771092278887182209837572803252870451841028204080185741374959287345353520688645471394604171946647217930607454786349468493614976388488475213468765749829003735510474113080663041417107551703856129202097300212296206579501488399468833138726741027387929359784943842386709795738426158357279583672340662426437492043966760629715033082436076201846523606919571572539579305335891310429822051106391680362430614186428499789314687328823505402296696945291020248310706280590510663134728187840439871276237270425860117718194615196534729655675492712250446766670471131004712707767137285786238211100526938120638084921527400485719058368527593830331532912841032457967452987158511592242022924229139202168330218705671886568678447679835877355289850367257250745336459537694807188916763865199262257543102165104679009665699201235964180811269263530455583683427082148738037394657313374628536546245019318608587101240989338056713952560155196370321287028456356357313258687977283083985440745049729901787256297722446825478566666393481047145828406807650696172580389049109850995967652853697116672722678091523793966186092887468071522785494048358188452886085190534006509617604754374381199563733405966154696468606809849225305270918163955511306093044138537317434770057383783662331410903450729311006099720573103785366232257000343190242999893102919218605534598132076408391524715042795271228688439980886229791246024165508475290834461267622779545544641286251984622381799658429770246941776736130585918193415227879931629112113622296301235294506062462601448378173988180177552428127486544268943698658221524670832956954195753275432547898780631546336276373492261024790869961953021052315148330429426701304529996627036576579037151280174003321074125372699385873068449846995048513049187653470527512367162358027200400155772440999023182893078069772596195759426369103742235138306942572738928084199231567289124657099529622728851107831973927823413572746031532955463808913042508185734142545121609948568619875645474598233033981090030106158612299937664648380298285465024830544626512185442611637025280412128543704164272120358996650355235188443712423223272168149142644932088184510922281606722124346903175084148848523291025938074117465559323956040397233689265329447433522075295801973839805321035035353047556230283846315526197713415384410392939412534117979512953406917089110001348594806764425992531034493880391727858044197482987999337702300376922320930169609309029838528431933019344222804586258131938324748488953894113061301181558629155176393007160474636534547397750056058525435392251256606096073123517487269180627608021387722183669967674592157841876072117584834038783051025715557515693139045553673981271494968471869072647713676368341717828197375841026009380117454085953164885530428173242881688802438930134027569946505388034905201964580722373171587702996195520290424460245397258419593081850464381388414124725301016517380362016006993717872841094576895116713554319185037865445136377207939777261849221904074342698717700577182938208727620955818328496957934519137317782206639341184051989412018824455288307201617744826169154047773484128216823930246450750152699328124255388730572759744670033015680672480502608509186482985964380708576099455023082971585252575816207457696377778037866298702508402273021534608170198657368142319397113562391756276643745724349882410168994525588002664708323940512437778177188593132935885348262916966403742102791238040481923705630133799067777643433206607290763124114517941750945709458396417105421827135269119173853037711911630059134739070495422541606498021577552486163897113737329474183215030942107311668393673097407132273611581537156999304156341107865807582574597717669442962473982303563497122874824186802441684078649894012968530985009920555527674896116009611536845893610421404954964833646002100431338782035169681354172622545802264638142093428179804251621895303225657919844914781631609817631005599666014257798599436329371363431243870208828580664468782881518593066632700610583933407864599488921750608015364225416131896259137722574548619316228719811060196157606856036594930178173764478935365616052904231576685736279749208344747549922753146390782345588034211568130478240703304850454749957473860029243860173796054230174805313101475615053890204996419653337907005003208845342717452920835914270846129082556569195506833556486112840242756626630848213778373690987522159662881658328846673900151087221206358834296930482556190153892542823620597142620945276860110512884139862905775378968334678853901846708149721466692234064255486666393511501340554106905877861834323218272603939648255252310445734578354711405546077455803303107186897059467800654192301429270069030095165549897456233414442585242588678580943463476574490564326170708835997112398545926820516096777338246444753170264718440486269542296333455032945108568707587810683886916645556448818729977615501756626324732033909488894106736172543053414249610957390906010744279727596132189398247107225544635054442642756659513020114849630659777212332320941336235194740692279666586285660203229302020097345282511978017211146624366581065804259759066252426226470706623637066725277662045640083828004624340382739543389296700628695751602709061677717382287092431920805411973028042646826649981472449729377859456357890016210076037173959196216760578416459611604765688847172580710406444512371562202361630477050848478995697989420714621846597411087925757490519666254626170271515703918830064156172472016403373966409434343018067461149377791845346551920598555880278699123591506706481250699285598688822432249321521587701312265489358524190248085722750744552222267471597779316114092641184194156478178272564192806697644687951492996206075611630084902159330638729212060492620830133254984458543956473809470505711805729794409296026797256724331613252535104697658382939203041521304654302799247162983302509170505215965323724761554145796346043927985139890435128046232399717844488668595463741667388342329311914118548022637771489837462282862598587751985063304082642559452282672976240441448232315830995302136229352986229196685954757597535860216427485921208853808858235372280993361666068348206293187528918428018110271506859324287094981411197843841181291439832867505540793014332782064552112983195534554863850998136334975751537562875625325742986229101149714659385063700401318966606378399264615682968085958764354817083291537742902268489167684921170828972756450954369406742606606131093804770119935835057206700996896943725539164149813513662316545958752252969823391391284771532420225715809807782041810686544020214896112217720966446230800001065712355770517534589076674794271103158424806828176237343579561150309550025225824907711417376180880992133731153908385916176113620227179955687179242044593455907571212864754832855408412841839846767338595934146450700511291942638406263998229077505197156531926109234839342673347870298442148778016973541834814773436543049651436565926655646044325368807040907884464364153098085093228940600629575726661149406241489062606633188132492724489746688011550800960445715400775215977716683579425782703331376143228028945432504883012259256660405699934605389628050906838785419799084374127713498641836647043835599254603919791639094209166372149421307913558971204816288415003815151593364129249894964032106582626099500022870052279335385272305193403024991451061760472082700417796510885993740269563756290470421502549145949595281546962581028523916956892122371622222801751003185662724580936010658174781171834952853343173062813105767541219124917035777062379689884511108330656808031042539588405543072283673642770053311540051265451146103974056743962947984109213170615324816752311560183837607731107214240156326881483356715897675528340730870833781313310839212173696724348859140794546487628348406456085940095995092297773336092030471492652742290623332574353911823825233775910692816311068010670554518010072560034661856453206682161829360742951850418921746649969846754122279895954819485070054682468644223263934942019817185828485233073467153247010674977027755949201645020352274586357926396407339812075882631560309200211031591730335413448380098509915799765739676835247859665663694933397758055180388036242453448359611673607903001326378812998878690571343718384800074610912169766562956049739037980571730220253243228282229848677723026061758825096309244329236671052341084143594964901771187572232289389252588350313259941992253232671371629848949570767944586640863757589666509429784213712152909389466935197577056453748669451561368340988025136823917792215038878171624683049668349454566660288344314715723153233053475915432373395975647737960149562551382543469712913637869384426394385455437680658763658617950442357845480646234383964175328802848346645410620493952714013581549442546305221237500618102076392618039465971013374624145943084629315661871039982638777059128148460469105011782595965972053462802387137509285043120670999470641558567615526915067271549711406906565354200123138253889186480122267850340102756075555690556292727404924641573153333955093285925318651794685431395566993676172521111469178172281552852338269420212963821076976517915736936477236380671918291895394178628351077811951788418008337895641878647525702756634634683081032725643195808708686974999458556546351184007442191261686047295091294961869603645340910486818472383314226572639179155982484797397021074846894667726257017851689207472042853109027641068126589624920095129136713137529083379423386805622355066071126892489312006372965902772196204132399290245085945155223842530381983333437074358890507928323687116747736045419305943314275050922076457053748405777266960318515030343199636806664152393914895948618179774253840262089778599783195354355747655609798504008458324751614123037960632946107688788826739145056307779864537086847027645522961431693262743520351886550397755408510943403656196850134776075222871697714194450574624503169724616091742599139194061920684664887051914111983906495089160616319310197985650921796246822753511160433516376912117211202469722144283119686016405358237734714928763016668961412367312388699299218291053080766637037916078418816164033755731314931420933586207551845843630865383368722839023772268769800486479757994830377457754488880591777413673679252965434991431217836650408040984606259575978585483392978387151489641234365483122959598434002325965037980877587753622029618493506871942829060300187191700826975993047702555412878788549672575209749820526345205971839777917101155602488839687763226117313021136997231643115969857773846767761374607821388478635748392292309169309022911692303198757709484191478486255156036771975859631645571636353124192244285494790263999952345555465790297704964531252281811364491088022342450626846801122743938043281587465205522270411804636151336525886778519178104540928246033212411259604948008151095876127505731619435743939187096943582119809155117500068572088826224645339210589231464959028818756299362821196295743480751206344884251985420561960422803769956860113449227940796196452481651018904510470168150714989192083893093411169798656462548265187390171249533602890964311896465869937709908846512476030432252816908287587777601114331982351784797606638094573464465816460478167665361212564933958242835361216845023996968357716128152036304743537997362042793598683619914823088543932316499868370843394200051153489246456560208253401373246551000366873582744185926426797563234790443551653419544232457879921906275116118490244498669115736231007108223556418480217208281663537565015448776280788321015717055653261692272868656425307917174433854900512079122115476206457929630689045808611485292234747906239420800651434603186794934677134645228145729734315028163997737443662652413379840437408946828842328061118739907828583352202195154170934254306080219134525321997300310561488842928190338710839417127538594501519312744716929166782041589462458941300250821045264062473506436422236558651919215326125315447000193433108025486604937774367461913771826716999593702707986016347828151756531955918735024301120996897278023960870898263352351872442424898778507399270636774909314401779775361707546768959472108494925191850577810890305490308736967545525367033479670712153892441046828127278736267950867954132568653856424344669522584588638844105738639900535853997384451480459110527448926511899460307778671122475048551735478324593035406809264587452592481654527503546925882438993192878038415240629075218439766279348050467525851589837026249559376795146147640346115634479099102927521759389396608229014886591961185965595300356210702264242787549856278882650059089454436481086489216738161151352729181717556973176480006859745880565517487407801856019300892065817780682193398986282042857247464225395174000349261585020077674509094503850333141427529765272748562247638797580240031564690871285735586953096956190201328768061759135369338844025848170249818527688930311127853668695411088803973183305913814700962991171679194915966249782088630948706044813579735159254539095767626787652083714507886897794967581977885451640425531847416698745990983044062845315690264265075114604558842054921498618377470248788362882531829599030358106589623515127118466915066325754583568540986089384541735919087100070820874598758777540581656730985349493612124180007378367440750718426314719346314681553592430843928679023302889012244993034323505548436988863424335250563369735124765315588477115729502365587093181103617720870813901909838805337015779301176226260882411228697061521596781933610301808694567468368173231972116355846083156261732844031802678168988140741589806792933782673630599154577036100057097512962072764340006653761518388494256457661140106679200819020275229138727441446230685486215574799294106562884315586660598833754272001500767574143289253235945123390395676491421939679720951161933408066946288014862985676182067097607146527678250686765113508631109811450852554072124248506886332764829331775505905421004117975482248371228049542852502957563481530920246572742274443054989860970116331796214157306575715215482106887582151753175577557452336118704510959060854506731728704215333715388014406158694463693152847099918477418024500842662839182011305178202126202041595393331033605461962676829554134549387182054568811125339910767031886472472993746839566729328037740067410314674129327175603399663452355623507386270120058687392501467337446597357784208899318475271521931714185168295270070451208329684684701615693749934607566135706120168931458683400459921412679945377837884028625004685687370561733237958118156841039332035797697247740895685768116707399892951834868786984556918047847942647482563472347079532658619723301890349813454060059575401400252444720575432940715171234809569444631833774602034801970874580242498195459597985380267938106227510384464804656093871656560808037323276921252587196487634254621630782137720050873116268215497855134341848772330173889738830378424616739763735656828976348921666018032568033934084786470993674205476082248013630991111781200900140239367278695467718504059832506991124806227400987255239403964753199539436964018229781651746720859826433686925491105614048444946093979849163237980653149824732171020468285118807667050615500802528146663290589954551601779052767005771355421540182877891085747682870863256535396514577179408747215997146766482675948596259680002438367158995481734517273569718209344681672685470562107186585766947529248651322952567660567035626384430378859207611768670939628132232592871704916329986343918885418626855143971786277696470803578147410933753039153027949615505428856989831438502605316004157945956669844134813680853893231202135085471253077194082850674558432593235310186830710626142921407298642130082740098635091517645486661932833481880583191906881539029408538032432737259762346800610540010475595699563969561873967225968703058790384140684505156260451246576671167407520569151337993643315565021718450067356306409278716026689622631373674497052529521680035792767933363850989270731490477732537859237171864061624391959251475717213086031081575994870259304926534448379395428519992721712275516499322379072233302906650476674800699559809679013816378440166205873884288487184657454019666687705735219009738475164195772610900325459983736788236027555798225660715068400213827789208608161667321708270717383176823099182742113916035721389130206815876623034541290240158998006648492649634366386749275278188370263085893970959034856318013768926125986170625359365343917267728678280237603980220419849516674064185918967806600987822222461068958600873206134678744675128499633618622056883962008256240270808416214704864197382888297870668903994667983067129347017376560333174864432572370895370922135574265206540484065578598158334789105514225690960568655220011394951912350894347205536808827712150133588150488521885604885972115540971291039565531027698768544134560980860871950706404016930792436410924077386823246441489561351340628548455355193717039271238808443878571880947902626607805507196738483452431002042511167796821953988627071359763490501897406854751723841035281517448720673004076338433170296073338200798375344504321342302936071239243597125581598150566842409887670533928913997627766535982612907550310118421997771770465011531374688520234833424859518204855005660077389681618328226759799483354451425004380638613312651297708017291170737544548666974109401099418917701429594889058866077784548495452421145072833998935676410479731945666894463860197233290452848920647874028126862371263977540216887346932478046902046937138463275947868149758120929556973775659930880276531297533102845996677504176848705574940919525527922061705219481024845832728271423659831669896780390497209233810290151240714776518629068415412917980995384838928942122825696708531929494959276645598483470980223443692873926381663434623447261044947434063541765402129348043438538730595004437103051420692141428376308408560913710337380603675347763454639791113665806928276799898138776944991468317622851877263407860234918683790804536908366732840534782711223073440535676499908999702473225854041963844106605858506337077588575402670494351676105557728263110739834544036349712295728677778682246386290251155306408001530502289960061186394582277337140164042323826775738546496347496640576879772858015307175760970896891739490153665032719339656124849497840658301047488533256595357542438729976899440218869977764891943673465747900609814467639031535727435272208678229706927432254928413607832424186228870780448823183982004442922447926234782754284396721909087022534461230657508579430110492396755739400536412987050511197266220299531241321769082927499319869760708157575638787933021705199585634523329330188425602394599725746606161629563489117025660423702477112282309373928479167924912394667367909896908556731069119513468436876066377460586097123545664686227667230448044144497843046743650567294715218810387981281067821528147204416380115909671843616200336814451926313989279385622738632988786923922627867606758537766528514929458107210020136525110835209000485323386906965542951675540003875695027263496249268834728230193368937584602403602571143029827518316530887126395689413352642053356598710402351463375858692539093713112755376785881315287803597791261598305393497145962102993418908006658739060683566318687046250629399842077063085029086040025468572258196945912040784136453338782251843795442384034657423849429038913099311896202284373915071904994114338421137780160587111706816462313313189423734170949097271100933017224855051567461362869892127402738532673051696195889142014269975160726521181295139108684969605828217539574599863678687188655562395368491833151737553277679459206817425972185826538088435602391511868991837341372847764057236228927702386776922438237792156835330724710238264783219205277581976300958496610223122474279402418469177601151267501964150204559918443326588444818489216845045257688530568966688272459385978302236295413187740382310975642341499015284894581668060607963928846484852891102474393403625015717064207025743927745577638426655944622363025576492602872685881363984554320875895703050808393987055001229410622993030497965730194785861594270765861830597070488068923845690890946921942685683115901830348243886456190973266887246167796604497896128376787325707293247744532934520265984776613211380898724976389038750691713191338274209174868489540009697171893242447303981251607189875190573676322950023231095472630332428038222045091353297908744163488787787591633805948979562758327687445770002449601577056537331100016553683246683555405347726902878976692107866128428697164314978195026021259382403315126726789093140274094751913692834935832437750030749949874956110038622000398836300416701852174656613912840703161526807678636156549078874470332574049721358213175426854509684408994069938199894673367681543642149016016713789933182546702511496095050967328113106765651301725588692686472911155277131870288603459966737062778364451099389784690388900198961932604705360779059698216854277220976044768413088189811022010644920324007095581908023188246054661641152694682513756041470144883632134502319806027717607980375940696161315784559276568380651561201576166274782670030240378700839546809848691546114624903544508187992310600917224279940974526874701500931977276147339975851476640328264576515497295809153351424922568935106140374099016585486340922113525269501463261349987141998623882707436349116581443711115895671307949164429782823596407149854507630958193868296311671516541996008980269445646049209668382941465499675471233518912800138644954037710973420611278330314332527275640643533789621551703157086365609889465208789910612134347929384968661333512402488594474163784049998872585943690699807754738841438579106409033783773649470194654409697569708707113310242090176096838601952529995681466175237666759959372917912976933731609440034261993437607828056754965146298503607711757582628725831233363374375728280219232652411397820656522828859539254051472441382396416707054506195822864442061293937308289947214662939969395432700673538427987709766819023721846262722716478397658795751085951397475851384836654472865816041413589453437247944649583365295066129270401381269973749714686135502516178467457156641845531472021287387379501480566027622181416078464717123865694376297838625475741350855966409240606634982511751998045418753608053774987764927147191362465736209565739849259651329512523046388647769989736091848857184020008974115409637352514012636923362684054290209126474096313034134067387391653458213203154801828336037934336128989550114218567454362077638493092114073157173079923235555026191779500698103381302239708269397601054084753167361078436216492917824406996116089273983494030166416023664204140779363388583149183064872885842486037760470366663397127988431836671867300175916635507033448812125979898465168794496604524092232879283864579527725196008948350059714113359967907564791855048872920632952993912163413834408331666210698744417349161176354292816156643163602984532072844556908636890965996814390000723965151659174206427447575591356670250307141860881121252058972915653364774839221633662878049028514448590349703116302122360941400545358006332070448939480810777519151027318374039450116907600149315491084081838394632591427331666601887388400579705150724915111745286180507735695115067522010402702658854005990716084964129559618712879585827457596938985363149431720733299801366991950993163654423029172326405465928677850957934007896719582068120557594291445591303371360163730342014257149752280389747282606128411020246525077908521985755580752609012814523082450584352937009035902735590182791881862738954555474869320873427404327624042637843708541385192594747570898715871020872762787291131172285618597374408643684696720007018699181693586096585581141649777128581848132385158144591062936825426447864832303986129240666839941646169739177057465706468130501542706085584552060292578897006974661443823462592278941729372438417867202863070712968573431074218813230394864510528412373289415533594947980403465927310946301113453686400492782147169348868360285660633729992180465020131110804160802778756392719765175665028169042727442509495285766295443637209329087055130395346298986179072374594606769131269382176686521623398161638781336536956562740651548836459285198540714919949984485911169215374029864208021060237604683188046791977160036682461968768751028131172145865565434825284776845672819588823625964970736022041997542658996204626765679833986105862049395115378748269535055208527624308204298795082206044437918129683143470079384819397830139593999870520772524533165194783047398087624512884565074881253589282068898078950729312122514404846434581649919598568105024261663620289140479094200656184305593614628647032285581253079706269859727650524922772771744406072929650712364851204531289252378051536360247188325047433472941797660192308707085105730339877067681799041760444941227533567839372387428657272493354783377688676662825233569420357927528603313226826067046102178057677689039418352868605244992516612087381792407034256352961956640605806943579012065006950555079501902740040780140701156705996745315410663787965360194973151743284184494306130791950330540829432054946914912964512083140165191913938963822764220871055449425639242848857297901818604024835149374045114401793923737299517307667504488252655863518181015369330763238207249725025155503692012459268222227939687933611333838158152084871699521895514925581073376476542563001675879622648320245111236425340070778917127305516866639524607280811696732004722807064381375430904164114610831368200511270823076962824756923655698043020286356063646624700165299098124374414669191610234860628570021232881725628859946778255650632132741947743924440847387112396755713165448159861199350066698577281334092375742423166694237201875147413141167909295360651268935868304574409024195628833073403099333663139099691150233691046993410125780011466280435082894191819111214824449876183618996474742950760132114164630318981075025561218923620006619675255313296170696264970377040021014241284219605658525173600016553211548803856292098771205516393566615629653393813891513722288708975593742564447724881775294523763610298436917618252446842670796490638588803565373594153292524036596040899480992683296332795512243541508739836345726924553660753741894666267692315171865337696229653921875547810204298808751253848361921285907108765214933452338622816668179903542451730256504355281441363075872428986471151803642199982947334140298251498798710296200708771071413237610476367500479205909718952625698505590362350810819081040521595561841153273637773305193140197999730580935768274414784706695777431839301431105094199427710874897063003187637897780645015560873327216591850528482330701776038145586188037009747217213328419497241627989756060091463695765111139837506976361564718711745882776531976436492600543632782728252428504563949641180196358151967428863452349048213313668348869175073067097187322235419703741301938854741623497252710532033467788171601188020333353115089029684906636966050101445986913742276330128889995868910086075003431526045166300327633075995762346236028884576402544863838901389589314277286191169349182738379433262546466239568959306794522867223834109345195465147997000011967890589689968678445092046428726427520623093169320025254798122832718148939135974435531320097870952777470418526706182240914918858371234380004109877672016764234247549440317233947424167222564572062064831406875464889470601888364882547073592022084664204856845741391266637088087779349556623431126220699797241279676392991142825091240913557034907524868055507390132796422926505902480694039788690425371679671991224587487189084995512195510819067112927340132772281811013889602581491747603445986682250183448984156917563692382709944025024262541683851463633062730720456341998688964403256712930973389458405107984170885999246102919685748565962346526360020588304901004212834032092071745857491378370898886234880021075488602455933996354682535221753394531878841030369442234143138863323820699754608674259711160787372421301011128469410846620940168760182531449813550911716471908429345400531171793148678849585395561977970712618177693358461079070841107416172898241506463956710758517155596853659887376672852432624262346775370592732853034827369494071393103792096090927383538638239595845223018723467004572308184557311362856117179381598714152441938248629977839034185183146398094257401711382589022132890007866110731081066253108160855949366141669341066351530811482695128210465896878537298341828673910472050033737351540473081553986208368352543941853086630154490611002208296137802896813887083297259658009482449138289783614768203476004602044406717819183342581684617571026459061858140632655511033690257697668583189189996916248803766020668321303533004440198256438255717617498524553121184347507472673275231734031935627827362874556926320433890114904901620108177651139666801045069744509984703445960038466875410369913457947810772973317673918540301715680748679669679858750770767724528134115940244626091502327386138957027202478272328869414270327730030460042062211917868582019835645128007806355552884571825771752411240569490742716510585331309040035013992350447200753582846941784327847621564987045852567294006070740907994158873863089605863308701363418155117231954710854842059125915784626109467001269133674139847587622773973057754172489392407050543141496586565360182420089268833190393648956993183111072355693943558001177055552435091214718995382247137248458831341011500333216340347917610639089250110880696477289930782299036153666715439650855041240075319633035499431684320370345221339086752294851347353470451707258999467526254698717167477329223458088592312142679097203028248400705866209431680921952344655462245205778832503616473119537644717463900509206920006853659836578040037048449020796862278177688431763577565881744857875447854201142482767575790589857972875163337622482254218760383194913593205652453838973496383690220225249579192583439693989482080526964454039967407954228321117025490983162773241612304219183963573574556447212305967743808120974732562527637322145538122199166425581931016698031824285224376809516562933620802386419966483036046931587758495728726930764261267399014929976661351711154445549734367997810894027697895130219683148417848576657588344258538386768345990452057771436160848833265870422794207266529919610370871675304747741572420974214983150969370478189339301271056756077227590993469567713382183616047000006526856150542655269234079394962981268660332686371341642204772776774822945061512971570719975626037346896647674276463759814492807587984974806739137547548518586280897333257813479094235140125836672032108391299739610176900952543152476809281777615437425975242323919710440798414735359267744429333311297902727681359117739578235216851019192339205089390196694153630289982631402553258115501190695599354996370561490213236367128687344947394752301249113951162962319712683655957320212034585234254605195812313184195171941286927724967075163857963251502242208752587710888774308793718062955039601725951116179813386716461658509720855084585087696214640176788754296257517424447399119911581259778721732602785335815245494125704076030407090730028520101218955003909637225869728687782774534157269986245381383737509752908755391490045686507408046266532407745972033370376796220531116437948395142804699570790181274415026003627080716874962285927070239514342637974616200960011836020297562277592738494632615098666879779725005981518839196045528639682801496190283118780352685306659090264925790598734832650513158063275386886889303637593621045826964344464374323676116752397754685327334676054949109248469614675630926983365445240875666152615411936206742992329810544938774324122862700872136610870530361000792684233229792139194957223482017621527999733241248766138215928814510649008210979996206132748067477655420212786064410591964113483341643876515770026102910834574626221630702909644306727132688469848651159572325474559315793212606819117142422615218897512377554220485079809592862936821801473242161418895163112649799666070815235178318777879679913668015946858091003431576671490391051820574174661404466840922761471511760240806332635719428947487801326085111454552899199699970305540705915477478567682034526361689609697323315028404181185164708033357029644463572271619977037239726770528324402705903865486490731806421234203576780038003719712778164842739801767844263921697258979083046591664618949396934439484480804874216614297284619196582613641709603990788436476060699762094951588125047577758871089523608353451515761868369943588723814506361146581782602374569022564650183773899198934729979354514668413700097876272382777162117456989137669846632440203099095917063747992601975486266748112721482176165512118199803009153418043824956800731020972407297489939241280043178328716010558645249321279028287775796201402716949554727546284488604593743537941525558537254918743476182943472188104873222451542595031073177733663659148521851409154677348596011389762621854614597760015175443338667315233737079043235424334943001192907135530372039369943122679478863755328486240416284714776366055631691406920018442163650458948908715289326742681771422601007948680714861877106906920074885792288746771985694772520545695786863617183298350261454531949034246540450966194179317783187083994884070131803115651169158080955089817822594448746561752453654284043340345122451038966954391783805972973538742551312126841124387213310587798331070336449822071890638802356492068285745341708650249772512976112050656879294459253406606696293886881939411240704463914705913662248946465939465083694663507246784477945678302110228165607352051073521921477019641774916378586484220859232872137294560223288836879148121182498836187846947697526463437530179421978343433422884838121724100265799903046527483057312807812411855292374142928092489617470730996801251610066761093296963378279189483643271211257935928671929900522074607741847922245772558455157731480321231995414520399367443082618282746053399767143777026721129180549619785335065084408018616195333376598698864995166239588013208116179565946474818998405497701963908006926751291237959158557487675309926697224809942538807196932316999785639686924045126538446627690726901116745840007184277808673661046960175670896649436239730859977607980599084841561592035700925424489252105315805634883620670735859564509741073555689815524880829565531841598556670013315355609699931680039559818173261439970679834281672791185868258043430120308007639164885045006380064999318818642993126557760936080027281188991898747741771679691037965322070800721663424394414151288536393320068108436164875667944756938184048956617144304765799448721794896741994496481183758954504845249523463499001653874437265331026112240557016900778291224742806993893933292947083288267285869634929339770932551817383886356260579283099999050683614362554875433848921357010314378166286418474643975498273005279167269270868698777386394157399578679987499549806595012741336079587670974437787937363703516834076255329034304201562303636922336218257071978493430424435710014095801226856253366156958725820859937062789177946228245886794454129139463731488721471277175351700994081636600399748761897044394216948528798715680740457242508433045776166922987433075338299492714507570910599515647762508847896012897876211734426719906560904977192940525947045334316573067406500179691190989552037179328619430118957246470539494498116832566725694159033981635053828864936131189247751542320490992078869865179459143400609402933317342623780105516369729427656982505913442547173747900315558283569753195843859597344394437724032772515914109416195210747806787227806524280171860195439175930789397958854564844532404870520976197769057069005674030461896766127317558697960415743031716061363415987151574257797129264675359591328728132415283078648717515154981550158161751920280981732889390146127261248522497209417632777416636092974968142833994223477648648204170794671404205012886516325354902620102500601827081008633590939768122129662396993960608600396475859786426657439365110837853443878888082098472459258568366136632801456943328471221379204632663482323159841163592418900440392582015288387249320714495278000318218777803072959697519402293863716723312274874490172516500166189379987739670975607214265999748386114438153623856329982866075285177080008651869107111785488488689101514739038998030901459257986711080634369397874778265473403394551596676247904647940257575590536864346851187473882491760775626020017183934287783678353873579176615033955114776867847026498949133222795012448184187183229389264038175678136996402955090439720230633952391354206775639830553150165208400346823427059345157082669396284488064379342340247166239651182142278331281479182810801040849629228397471983891861430920857608674613819673758818915509731151219183043251358048037361686315501269511121562878905137395147070273624173525943603265599186759945926312262967102878273170078788659047764712075765924413354722844349021705477283098544044997945219085808967856786749312635678340799087440534713653037605219187016860699418546994196948286897847740554075236990002453294505849713245186857702170851146800178463829336284286938521501297435932833114097604254267083682203327993032595589852234247832791616206524613412787537127130312210281079362566007786297856418206833341225672489808708955713474767507488690847356984727391145949239854402742190090656681972924291688231775725103715393521427637268592525423711561502934245752273499160247751348456696241945563127010744181566481145174530063145567523404570579347800562335554897763791110355174497119877432762295725312126074850799881411632033642714991138045226403883689766976858281049090410659461376325362562867867339267244447813294067829927736365459915858453345698232286972057816154867862777343378154500674023183652130863281949234081158226064016588851891801388077270076228428732150746413693894966140489918437217537367617790187312959026240275257247331770813971817010384971376164104905420365171797860237366322463731672502630843098057505943111299272063409281376751012082657985581722001333093630041662204427038362539204348062495719940952218237752195582846336923092261803286231127961924384443922584522362353496768051871064717444701003117214877162981481930289530757792331081390923955811300119099913616032575117287049772096940785416930351212788919141580270830894264315177592479328760122005697819638326783825035391309499116374369986282684158082997650409662778579876184065622415098826664935027128480933908721795324930404632815857649586188330746371843358643654668917018807835623949895754460731618476709654367554072790363885546584633103701965419138166971070899199142187859153873103965490551297644511892870124426286004996254830255981105804773663162763746461440258690992151279180252608727492122784524918518003829231024627949264652565876196941021889876882030005355331703752098507885583888880200396054097919182232801185327686429224823164155924152018564482832112035367604481806622155593724588488281766848988250396033683862578644279468243152618081778134476535157572753888146605592675041148081982578541099597251381734833057432319338986048524608287601947076830217249759786305291760028564463003296651659584918257744041491514890486111043640727636436492750309539914094375097688930939151829793207260635299429449502257781287975378325614413026069157732442067941372703719980642662474888678198240172929822465102177329817723271394277396957954779767308542618590906294580851827993194950610595694387026911705569608396739862916594630082687226781948209174149579693649564953199420400986916524471017008527421223927057528685880089602928754978446587640825041824462881690572829554841374147560099028967809694643337324149566503884962403198664955979432231959514612398098948006830422276378305377542701809127661820022788694824571232105267741804222483873913880885360447894621877514607597361958119578329684979044110235984515463057758958359486167349904369568189852841192814987143486671844105517379328678575924802013868794144448107524722105529822192304290071634478810915590268750642898772580973997023974415578463858865523773330120505307801971274095139626523448132105636928052985659897338526663516366034093607194353517177506168490590180719807058590249782348377164956960103662356969249308235714720244879684662604971214846457986722179292988609694019303129936188456699015028664190007965345672095153994937409932034025637742516001342439495073066211104219924231551147041474298366683545366377172523416726724728689970303649001453877011910131613004242451464192628314292324176116103694983265614510013721869151072930559235811001105459882905115506509315863596312173361139464764776346092039745144081214222264677051949831174970753829640005338683782284338022069545460764154355654783296045586315585606646644543203352863801748807808321421533121886234381132733625310697825370934584710030517296810671816429459318053360360845114126047015007910031755807719412440819913572656171266523715618857106489110822151045933704010002811463872518613790637359557297724765594237638259072716943570660034310989940430798628885402383273740848919207815482872616951310212671880273737070655161680096663964441604525335340373079865188602830040099305903110131609849103234995024105923964044313764228380030520827679800025082143564198602617255482880183934296554066177249620496127866316525001342846932085604253974018248035001718173824066185896827548246166831557118809615158526641280067213558295514763341443965488070136159412310801540948373550671184048856111201827631173975694232028474360870705121369192209451249736880851712387264802461118787366411340872897431245364577024674216722154073089975916150806242618989500788962383458854370859088311608283583584970522708074594824033211055912020464205287833184006740188305958965331746225635560941711968144894815025229929007392182181375005860863360343485560045466635987198272130144196886037123530508218696847601000833390558239684955019960230500174687372088939677601724285812158466569153783962117071390955556022485710412780459140900061402952266955579669371271924251945814655683030242979158199863801488057649144064141064826337550250236428850073903357605489299533499370810457122237350751490402057626114126625986097984360838795554103338033599319392860895803740794014893714187698124859696955946036375397791200885497397919697874187898728017452263783505589401569518855131724207596840151962754604756286217832681897438366871085888200726648199400135728243256074784735703170555244259254971695207236853421067002889522818121164688936292915685498847218821368119747275233679311137692876601403843865094168274340184427124576803418161320148310697756871373142438528488363544618870968151057082000139183181332231668375980119491616915889079388373810566037794597272714696256152217133185790837254211577680354004856998502306259628653941599074911269762716985034196336760819157276542948480355453327500223242799926437723534923861820706906256642294059136239775041410976477582069201281217175282266389732935404128320821469276802087205025241141826345863998234042885473190840787038257197658015697106904332631767816029620125031635772140505676282293400589570787216942236574439042172133380135273996554133522247689592737455759499914022411006173192057584200932231994990122672832678597918904561243709135774986273618585105112955430314397608962160571645193364047382849783691562168655497722914282374182219740394589966429021982429135751462813733657985447847717375847352821231779445732915445664828638873062573552150612417559139628846167437721125040363030713878250185459989289252108095716335425477786435459939666558144233438564179310253550576617582209919678352791577118327545599559103422262638551902508405921254781059834991876479941919761582917709873004890821947975883525322571312059670932034006834700569409066647385165479042674792609315040071726030528933184774983614308159452541303723296726409631460080600700690871965914352948984669882041990888448734786862904582290331896850374614765730892165791625142107414783177216179244021119650930834392256941181239762873052935435152153984296661920866385608957040808893577752269290551283393344278121002212266200729149574999891688519969819638154874471162107650815917639058446185598278545013561973629021132495635878059816592897918360260553246745440194257560863598946343268517091556172281230923075273050441062883395299925021024160422778616893961834431148692047730295415652084572634440669811687071422022720021707442886289411695761419642604878977614652521335180557462649400667435607323071447533533328426419589624693429025437737905548510274194455984812825626861585396862751035165901979354980144179413323266411867493375229686169563716347662505289421826785856995487038912648811406528234775369712070763671096251442222468820004321217067580314594597281865916180520529033446343504882282876344602942956506175789987570421152593868405102391299265393672896785542552079680150637203356810958039506592405952713849853010808379638901409360371735112406105574172790724758812956249557162098719378202556352076673378588983485944736929095134891951069506393789548776060801395434828777884100802530486732669477492704122161492107969698357936558850560703764687719586586060914841306923410424224467752782392859315016006139698020974736332189904777737847326299103035993816156484079675128864655746612084633270300864104291471538680756272963698242373615592212738889880189314603203426113667622459499738853186172852475568046162917056625830882652551883286657554259467626729077109933428148548306706025759964924418151168483948777076461576694878467045891729454801826398807233345429108551059338057164479058913957775672806369447311262604032215258156843732244023753384009128235811244615768648793313915227760378969886406878379261530927276848881062597148310095917958504712888064781057575408611677779085301509221385676597351665392396028924513463133577454829393373810769158115295736017054069289231512604103289159604620581440933335122733093315335570073633749796640016759830141027606631297857816446335709086471650256974045076597811163320319141288930482617916063860085356972632459355389915331870268290268503122739001817169505431699899948708720511115863040178974136599103859074950685941751817021362080773355631192797416714918786524433552273458631149545082568913755790700610717358878567472584668819909801365415447830137263534890800062643281136651810944951156983868255394412274785056254012279171275458171407134133036088780117861896507839402658660532385767558816864043861760504493286345957127265593707085405924395685557992699927686335266417194792447606934262270911126736662989962147012263647180156627221775968899638442990881398669476294218147254892115542793050101347072746613693782745541005012523272305047964027364899631937738643132865257617429311072341203488042599845464630697098391536689857042176247456391161021326073793904035275933294860877253103447266752139873113155177203236607694855038245924585125073479480600413036626665266775527754308091279762325851701984574778362456299127580876441032801740398758752831317544280013077720735088286077679054708226914962804117080734544175783987712979249860653695051665134661850990493201431909146513293009388812657337298232322406999282901711525592982498290184788289154551048905394626214862494452397519296316177754616903550446127784299942941609596161616396527028017559340244482271253860974725782038690510197452949536492171436342967723548270600728588260803498728509190801413088733609976319446198951718386154190307042427962586046618818242043939713837552313516758896554639020002528438564437610806599451376949792634795795619236863588125966189343040893251646276822952012968033953609896040011570111041508022719824890088853668741820914183427792210827276941939645662250827560226055108530303259252123959087800405704509124169918784522311554045995777759184857640150525451133382901835838112041307552386251268188330565624163577883534331891961382601683335861305610009390931171728817563875789483946565254391228121870740605986782329713042516914251885648267189216156587961351140215236916545784164813241446129905717019306183651499755794599138668236239525592505007830182654505796400124474807329489809441702458232468815869193456074245716520030526754658992071853419309296229556497632192982411409697383259085857154352136244088358883877908349511838541275208772614992070113113276539825282166697414908367229052560336095418561505723572297328739027761184077816040625364104453386345793778080297850198485344073531786664805649246587501496273110999603489833253212061499028158370050107029387855760761657794208075294075270706710271229218294930223627903234543441252759064791784947906974504513384242472145331598978234666565051391721584469678574056663862918276128899762464207251431694339290436769619299171315770871845346749213747553561936703366933003633997543926002222941900171477471205853253926419619647322731923312789923131748930919861938660136783140045171047212121194537454270364272490895077752142560837567223432414327362540790248610538150049398367599820085029742778286003744020196858863460770393660522555720446480879626883156720814985484865758354448974517128792292728301055434645171105388903610951157945298772936780226654486204000219312689978591000890676165530576261624710462765768472620477290729647296564912442557714435522881453056469137870091228051814493705438134297639193156959267479254938326474048703451446513643880230739830174356744469916512536887952471998358693688556429719501394931350932654425219436267912631107304964295356145298609662359761496470426143721157012762873201140121752228144658522934008467733487226768625115584374816280373707796036521350336476232504606751535799036685945327859206997250334865260294249098640940353732018812722007491979552909670095503438217396743670020835494114253814923715737927007300682898432855574582812416234822018511547032792389312684020741363935608700904939955192409131303727031648315156021729155693527591975334702725895360959864814505298487313548254325642096365623681334054125293795546002175872880150955952223982698174436619399110752552200430285085895354126538338404817082116086406007476133636937744478564833513051601258748300743027236759652324517529259489488512368691641867302088622884697128205398467596107358878028419883807515228098281749049335925348076930508423176955103294955207861683988054986168746683221048191593186685503333418645198638706514950171957240291666086592670115533629743134203418499192963869019377248104054056858662904197304609948913310809724328225795561925567649677022472204587730709918843891494026633747138272287926730238230488694323745207895867942636300331630292583648298182718928055915492765257609324155693483074662289121456077924560857031998429175379418731280796058181157706675817210738033515381919344924453624483224937330805686959581357951896584819138999186549859745016751908242469892461577323827782320273356379586165239453132231616392975474261963944246293570567790278621109283822164817429217516306529236507327423246844878261303181719145330815708736121851257707111112677058313582310905551090739510706681865773998853673259620009617087751086476848369348219822268754748219077161679964253442918297425070348229619196186275299119274886093531349915425719291888037341311149305326523661137674043845488970213123375936443271915484995958951769789751410311790395998658933865911911051698762265652864254473339781138867784713651450325117343367091510854044268754242156485877156709900863517573969921248991317185143330688761855302063645129975575647349662024593526464362522657053420043405822880229693810627676244730033279779621697010431440230648858326679254317288012673442476420106144419404744939737026389847756333574433674969557434793742007425785407290084654376234623092611255099917865650375433636329037647219619523956244681719723223286520804540820738712003357565207370991009810862066513341156116211241969994086392815541642899007841795493946344610851345127745244795311692224284875661342980623242504047941277758012152373852087828500885822721125087905749997031003567186277638726249641148962387984191080030982491159714817010759561826401492296425758810969957098670374532375252761605941294843104534368030093394351166926899834629913316819698400248327377944298337090304212054239425098048170596955824147716775731020754905544823971741742718737947701160352476943148093586550786072348352583877530089789471782347827652243915958834209001855717004064924452199052316093406592099604999947644126114822366899804083632319148506467242207317409107917246822488856419520902357749319388825366665232454573324691382113526062717191939675788113337774569577040725485086307243794216085853245153621947347687204729574473281367288281046085184550356134053113406463898602717574603920478836109502715316005605086963815054600577300087436031409575937052263007808504844423881126514658485985128415307306597523162545850628167808048440554155912704849572514417277804144707035541618366722144607038982022888104821045627445704639554167124055105088874003115817748945406582733999232756563953424426122924579754944614065955996126873477057877440962138480755815863765501974904103705243808463370335513473000926851694189583111517454722577996718886752674591982721636456100640698839125998787925674123706810399404298968723656368647970023504082595064082361367813014741897910158852054643250188959154760940282865006574157549666986540426638276979271088797736499983011450348038933310311434800765569059666452843947218277966005420008031333830092642733557276625796546778710599328462685747085115528379987967431455825520585711863903908118181467377651421557693900969930064153476695457466023184327964876999387409865863108987765303149316438698090680288234713702134162277030203853243917814972190786385294150422115573438431782575273696067771169102574375513240798112862428245451283194603354783698451958508862238888514896376903840651286751607545029114154449538513186298504167730603282485906521655400689297424236758173860433034849728969566359134463877650475925192839715523381054673619484485525920042282658028503961237055675769348791852457232099247931808403755688294158894962857526132363384811990642733657156229661896219930840277077341971530120133190681806317653965977807011449327064061445030177756390750503839831509573336616176123444007969677836412356874211335308548370898052960893390219162291850420453216687368357459311070288345318422579866837944285298435375329797148492435366876902929494249462526715142908480606014183964348461555366245069504692819625820783622455588246448469531091270516565681013914503073414906727805702011276064974970479044890748311898166431378454355009898277817531865413079531536101528733609957682636469705998651796060292713217085760921171534386892598712378752266634385585403574496975698378183777955847304639255062446048170687133302769593033374191770241086920414825975319591542944543636072764591245169969545250408381379103856722253642058283852377473512883360291017775929610306080020126123688962371298105225301262626985328651865910425824377773115090265688735671664117574202724007509781376559814603648389070371062996498773804175695264330489846300875831582952292878390857058229155225810696523988842935228563783779056581678078106941157042580176186306195623255029508730131214576892894000276063170313906190425758195256892509737838162306417533372908438495388044601176246021257089190503536067294824765407658457486761219091470203114719720592644402832266386400674737890277516322816252667139201322764777153106788765494534848778806470208760373425219775012339042946507158816015080288655883745598031525464843627038581098987553129689075134320556107480062756702371074251464961142672096736340197700869941042929536328798173234165053027454153065452118457898016535966079892646953454926387029090544732443512152568771843429658222050947905940485399848609821281473861696387859639968811173159535826982397944371973795969950834580376506040314705854173416323403200194017248698779151015168625328604653849103906889653533470357406984188996289303949906050834875890151913855776738277239753770476724951092110364680953261437945831766428264749388601758604129954950036043668616572128247181622961545736805841694418371936254234384900566686087416187793189163945153742434624213878468389693815859623528451336958534537750588848353130169831136490176169486656747598955602813786340304245920486418356584232298915093553422146180718041534210764008830181167703426077654632194017289094437737942211973728346856684628917137968720607118967150243438271553817950331503544586070396645436118564638507492913402231108205431355502126217782073545493257496680280328501063017756044685535160310189924603740771425917057690033179745467043380527543072260430411602032222040956600440544437156386753180239609217967092840214313348074993931982475154406067159995276756280519605917980199857358418178959220264818719274945628155963837614077824165082507996515516109481385883796772914000825284754261099362896972747294133397458623126290491334418539903802903574407443657549087289853185691253805348796857456678458876620667247974078396281083302857506522019157999913389038668245182279407772568270830178381064364661110471516735186231105090216511179366223708940406622654465669194762540056893378109238949434872481298779704741452680461914126703036309263136466479518259286232563837061609504393101724518427004189678674164462325240476788094522984549888710726418761903409225998143550856563545369273363674865037585724031174998067772219088687209783859569259901852281704950002881491306447537113039799187607628037193532610945592908538358888418865764720693518293549507878313201673979993393864576422926711464420600938888069798791065420001831212829775141713457396994557134149134114983087079957401121872780540083063216752335180116308578189770211336183480094791443132773380673215838556674630757919839704835699997601104694850626798537528933305135318132624117393355824735832227388558180895635109113159403188751508099215954887061346176466575537432450921350648134865079068962714335306897910110430287357887141181491860944003019195044688875434240871300040542685812748970648115315640633169162388694237686161143690174428349571060601221342815015658353319569359768894783888210468452901885883397289845309360346582318863930302970280543097052256672199538319102222126919889621262299840101332238491915943778844533609167254362240839967696241681917502135944212713599289961564351930379503259291540903580886010963034095120888882128779840752953516341718134590196765442571458640748805757416677114791959150273375370652546938731448913981401708890582184171074920638159355233817938985019734712189196367879193693475045985513309914880189750569826613533323111031283188611842526068057599307201157635943626739198917385639133376785922208352243955603137318848279908501757708756774781937603880245071224224988734152205841103257379964584168598244476192972329597111730541812977307994839651966212153776150277476239839180641583658150262187752796625787261361916704055672012079571087200728214105049459308452972571313695961007190801522363042978721825180938496308558380436347216842476072781223275203128400962139647989374411456652847498057957674985534012133225518155227385239371850555672272293945358255781316861035232369280036980000445957355785066875701933268825607312092943194569504625078706246057993474361659729820012128494835352916583893779638807092562057098693421821236560687623794327049141287136451051299463000466653321651962437904802298629169221591051998520559631717933738926459553458488858202060134698351341441551003771526304260919508426848181289254858598185354453745924134809530069811191497379965697738003285835924399355638363492224068976617226408850999018701812815243208707730801543907707997602054171018265520175133530663937704844985871172781835801882141495531951639237438780409181275234763782105600437477172463595611846177527801693809492147039155322679491375524751337823393293935534963108017191891861216794373461523331579858857974785925098828584693617919129380225064062156826417024848598457228641986655381325059565570490440225010893573394765502686187492384952380880154194518724722569918610354597622607981764361153017653232802737973501909135702510087247991226759104308794742515026514859676933327614326233692931342873592051509021523224947724951276449229635200787582888064187946848227392687116990005537075676081093653467811150505450271943046825259193527272354557601833985608715322112117246073547725158160399484944241370138582330439414338560669779213187065003093137084115297463513677350178144373667255022596184654298733865750092795854431486310562241366643491602392650882600348980031116594788322355503074468339833047683121665015866215079176004987110657819127283052038332303593936662697896854377560117973298054747219833383534598242914734577546610569529938253630233329623160567471427736336592250366791520891370341342789225641368423235918800313816535947742360922850789766936475753115475382664095368388056416498166578414562189910080227882557603733798319868604179998472269286920824436200013452635355203135977473774408428999224395510020270888484610296632003880519630802832743033199670218230360917822240597545286820957597885423866556815964187216260364454885302123305867747885968801800729151611433559012549045074632549988642472405188477886577724539378457505104797181304221667262299462130482136025326947016586773184369457142953815874754570296986687725427431882396785808483794873958747804990507530225491583826202126979941274614293007971513811389934533163413466736616060946669095121946262766800149633425412300848482689304281888272179510271830116578498633360274294404134912884538359201076738532059028356034030113641626971384518223321702318564540458883756277855264822141712164655229302151375382490707356970656389711501010181177469561370392637042969491927039584864558005501123486936280003291172707882179468062310610224458428597892673457189547025535968909978547799877857943388455081608706624838885602337059571568225905264183176037196281613125816347486281935216246739503560147258671734021347117302439282933682467623051639944308751124016933642391829981643177239412558823231986895711020596356096352067468527885088315462743286154551699489853113896775939805417562973150305908135280224564640737109576298511831190426800801738693027945444676715600305201513485507801948575506658760342097091938421711673043538516248439599642372546221445829264942918573577394851164850202111160600910316012897643195265002922566877691216421613466984331712842095326828942206284573163766826427053566815394700905010610090699868330800331952932451147347271788815778349547824451932246233373406902175048292971308365634452776238432067501269043431963569475708560247224564418113176307787024754636449906783232746488980262434665066517991339926631739361504797635631128309350276792734716083967553870163171206418252233548798754689564744714832437083852286558265109158748962419988226321033737250471477898817520622390658381301311894113644720981148500196544281806200312498550098992325870722872335329752809359615100970076189471972947217578062884511670204156601136377045531114921109228613293736365359337276640210907691246672698514439174358087277891241371068630603234223695036770476172652126381478182377747528942437146803131952223731367960168713824724301990223775963806755680968786310730185666041796124241446908164460888288243427239957427839534316578288241489441036708717967294027953222375887112767709532225356673929018390407710571172562743930454624273517695853907204501467374815114373161358579171192227885116017289031848894943403333306110081183976062595836957898538221473276288598618397731395854302603764112545710587824174095933846748678712043508324925189271644598092972416577326167403537727412466625515409118296101179279306003328536389702865136400223389326676834917479543371145565332175801307175037144333075510290019788945763360669999310994081428785545825005588139620925413053516506275901585232985856429965017961303090412670623756473221482138087190463984992819457092843086742140026919023063854376954066168941737938039210734924756347987225948076150107206988738433274424754509013022721516884618814153014398095607466272380197394131642241971129279804008599614541935080136182099344654523254555445418215884640492586640626907255256821831626435592710859621990269533873943572510171126012463945475401649169519785683612966591414977152410570377574371732996090783696917315733965920202775083501486490415145167402583114911637611857005890313400365704734755336767262845369893857095609750811474324817973145748598139414794470354050880967101325705175734504654633329121021669151939282752415345698071884882403690858646429448008894266758005987306173342155144911634350276417440705345446379284167351478300762024830379670562888187378586610199212376006249981043225906867537571080810965686581180569354831907237439352635858993417931160963914838428468778290796367686594473006683475274308062285579626170118120490017610148322004198603324776435615302630983482239138433774314976392024214107710040641628373781187997002200782908252348258444108962516724362701788839355387004577100583102998188866747403931645657785579489546865271784267337012725647647853502617554075019328612067138517466878592677044021680747550364793515357958755821814757761724576747172533256015928816506165771052172991083944660317291992554442711578811880087529916059167255686420736252562343541195591083317258175307340796088906681611692986737247893161959196671671338477835751074846818650167352969459126656241961660835116159666141363711878571550975630530984323198502714587157085122999351938990339957375912372017630750475833736212100908155248960160224077265485027814397519769524073181500578018295155422192263237189218152963338176291104153381207341002036975030737264219603651518221377149863297133014961643495650972209605471729685632235658126076759647582463553842954121097187973169146689297451508349269860180870531830112614594599442639421016981442931332389672825415655856578710544389212026176751255861678940872383631340877152226510905397686359975187555292247047506785985091976654046256649095257977913129771008633105826876757493223601460010876725284606792527656894760442852504894246471980447863190517901768701945115842243601568987745832984810453532524802939967197379148716636009097051050231101280942764193682320950967277183251959783679496592323009737292125365927861529991963244607976547218248569859371746861932606444795913510310259845406156400528798525558262930628633197371770565336114368549936136970768816427760015554668237860507452503568286667244445137851794388026780053451715729657287286573266202580140747241330082285151523039467957738524345470619250156507980145360579078588706311413058894718683737838656610140253300090660876556965878879933062598029569885576944289202811361109733334264385458744097147255620617076953310980197779182883998596975762784821293794339329289317831290019104950148911328158352719173362002757985966446806281461877038396077272120751759974375228015063738648272463616415207920933398481988795412645584849097288693155695316500392146858616180961679758120358180596944136137640001398659399472206126761035973557198013594591731480535176586590415973590410184854560614666357754753458109557219153247504509524875226247679086140688365650458550622475119744299842020226352576432410806845128963448130830979705552784421069853678235170984198124921822655072439019218735482160195765542400941333764346672222238181945008543499293538802955317825306434203300482718692338311689144475266378630524705911620619041736855937869757526373083766785211190143518036509787926682767273580348088222465099390853555340689154203697150711136712647646695156517177838117030223526183373140633562302050684928011891393414269716238529798733094028931044062170544804778079963882420251809357387719446353385966659727449641642826739155505183430314368207504884900482565195511318441104859831647158062530486567068540279491391269813285942191379929328025841560315634804320698827538972027510323254535782432641104825534086297716221792581157189527386563645388322473355608799895975224974450217635133693236884730064395527561590922847980076038651988278227628982258165547106752613788334248953487858003261761369286588874141197647660358368953636215716636016696694256523201786195889126081651472312134511293967373344999186444838749003422291231303154285292014196125963392576221647756974906284738766754544953154833219618327129329226379460027313110445598331768550308259095210677588867829000344090252768070319334594700678781099517740539221571548625876408419116617215646855656701825676703399769748544939258435452166999510908713312933583420753579629286199834970792781325562726219225995113452092956312047859555384440841706233864713816423160923506554773689401182341758109542957359324023650883628620031528846383017493206463355952699150087045581231960515346921855125552402121066723088468085809489237893584439992324346256430336650247999601027617324277725812577353185067082103742322036692537788746214101720859917869727811050404672926447129912822615644286628385354635371247462244176748605510672787550862823749171730460360926906330480680934215507366655594588263839590992637553545594543216589152966745691433285233149277541462816257794974543523176601303080845274995758040930432260875220592086120751003278564835272206896099449517564979617133054318681153243459762058284872759958105631660889704539046676215419168233316493105199070255077660413754346951585679706244070167267926693391500130823619481347107362966388987815151872011633901824567768160953460653651904618429409691246847388606210657454886143216497035212512111800846343459972375336642713315494016430398504497597587027900369068535492851709165190747512786497259027289958032681596256428875007501567804642217440547817388756856677090202846236324519798599825772564327644328892779788606809584596666474162045297581870923188136207307285138897120346014117644846383495114911534607347882790032113028469990154522102023943798997347455962499909810712878259938327618969051778287764326205493298695887620368878415915396431625624359695447298123304152062040450431838733752929392305923634501981077606292329298138635258619785765544634485519766477171225169942578183241436722070235974154140021091237266955069526242162799662106479868169934179272188483788622611617273332382063989859383497710132484464365515807039698979256568571034496302605912494798515888498652279205981095326090621897717743507989750285523945115696575266545821086920260435290712630409240949199029042477748601991547713602211040100572506143552015149911343642077541009189019098856702285425626852067252763458664459132576754604585396369578941645867606622667000456954276427059861878640295645315741809417190005939175879161633292196492628258307195102273266173667001132691386954361805783226170847874524058546809233505102491835702682810202828093386877702204508093867540746975324528769964910880547834369979302412913292710158889805098322770114162513567502865692468827262607646827811375537971317835135117003999163360680668732657377432989223133114002103715178545005251783344825734506356421830988980582873215179465130689852864815892200964178705623916234237184213206935531750915341297473968455479188129440411901899405046182088630635058709323203966299674331840402541990621084093570986182840255623735701447394191991445083052749646135219725729573648435780825285785730556203059652165568869189272139173789638748484226340244050787459022849895092999980087068691225825430216276966482578754251272673382211105751255091088487756089060762423444475605733063462082983321698019901567024825199243024418080405285276522327415964583009785416445492793605730186422886025148960941294623017034033523401058390471289293678593325019969497932329104875666340088276650659424706870939857650757069598153118779488779045930914285835532045227033694077548720478180509167895529458322873499759952669675684941990834463817556461513506887962896753713709697281234888516543631289609023874434698479807024830633807007611042042251974369524298414324951476201652578221854877956621537803613420261083268090902076014668981873269658740284603029566942302710965025990289066279100861234042332857747951262292741180451694918085902628619370676004046373709583191366219173367777338585675928807307748107202713050608624635801998247018101031382861671854506117191704776231706908871305234406551636549574567684642455926863947352181930609110812293094128734851158837248694416009547633926889377990814715796013849937903806472312537807255664282115297301411978212795286500149908971869757255931555846690166897729656241763007092482190566943544570652168234270862190891879991728701819237409550670664922094757029479970782334397446078918498571591467930104674406212185621362499575103333311356214804018350670838157818946001863243863406994544650962173792068329950257462240308942753260099497592422734403331798465400637828067367622920093354898620179185038243001213486282326878521205703746959091069843187996438934010067096860440308549475401839252946393591467156678439848962624899032085795268868461328426813586346837584005060406620825931619175198007258978220426414626924967531540994796057173318085500216442836848695249445000892357784881867839124697643853850829735716040687882576255836689195111083866055240857900855896316763122927179910947572660719258193825408952548146571391892961500371054219827816018784989964070178618275750130158039314553647542304659331238269763103279467733975529815600968158933117943535778934801613197358486008670636601419591620806153240126682894218887780937167146517189431291440827479106518489518756163213816062735690736661239260121822750807482280441137646002254054343748187759444718450824243755681651972176771335663017064479072879588465046002737681675174602473194574182922450433758871055436447876082732889395592788911891351790985750943121843236665528767688137055001708916610794829784805508170284640814581447148415370841985142175605174646728152843913953851387790045104614507446418961836419766360816205397170331202133701556581202857212294332755707785149061640649827018534582080167777897815070084553697056528024968626435214757031337160453561864658287681850941856124726435256521996833205580234688893560547510231122488091396562579568769091757639358281095933656169438040895258888127585122808528859143830048842725378221756724931075331531268232316359350971712955422666399511403390528097124718495379578526845527637813324038048082586212034561050948533234051806203191859209608579318827304608945990277458246294385293440473634538142622397529351579099929693340752820152094495166221989761991349881879308102943021735531253889926405076859875698499256319470644451966908371120218445422338829325728423131922915211268423291412830702043926685729997927113613302383612756415979564796767126451503787578058218866366464717035219679665392572980365759598753618494156073203237450841171839948070175728942744483865113239915155697978604924880627012725342803219049196048471722633184167625511496991553707281114746281042021114606985528217419519424563720147671605096370897401059385832461950817368824112015255562164748028441318558892499472219539797816798992932920311942836346735631298883353452177755819234372552182810873082902867467589296411886767724240645612399977086957954407412567494484033241949145595939798248494323692193531866639649466708207201843784631312699550146502983570941033512773831537022418496934993710994700210595424144926265287177422834532240390292188424096750425081095193670802335037221472279931095261885308060710823140873609933891122268056810939016707691613301528817997245808351931286827674714365017428052518176049874225851611525790104191800754712965952882157483049694288569375253639736345576709228617147143923546575256470342366821447481065589851137811348483165222313460611995971738537281393974105344870628972407054355871980654444093327254813076148017169181518296879920747691404693471537382910067299059110008320971162896319299423324465413805074958881571101198813262718292148247798802518232538264984295719944111190572234538844145486351002899333410051214039032760996626517232750709898305907641895638289925209226834105850959670000815272132938538164000089561642739693577100597132549305610148849980027930270386858564698416051686983668378359079675958336473258884740526005055736774236396677466315215174136639495259403283570847086806405750116723271684783168168237353358841867380504326971005537257992926321690799298556441695913920460270817510136237528197195182612886878676506235913475611592389519646621399016201668662203781985550360266620033220279729704388405452599472778547257662701335379416463795720971630158680006187503517429694900002453652347962033741226566754762983764323100326378199479099094577625814049120991877492716454807390614656558847277564699254152787052169147280167683993045751242485041200224820965271468531167106126400199398545739724136790894797880961626992042389580642463681181196701216396229046565445262957505380766317641839919368368345078293793935735889686676825892307176803034487482718474722443831090827776534467739564901846825136695240913429514234140404033144239416943493388273782673991312139162117139803750839474197786282870377644407384126322990581508212172441190757768962552182362069507862692558047848434510217222165242883978809124678058931800533823782451279246539757949557372339067380396010798860430621644855077611420249147747321307087841050307753955131078256823187983907707309430372153944014441176917703295284617152093291686476880594841668804169114541937938821287687779303209996206082123336528115815785997862566493250838825346278533987771491983650146670852683106858742345463055773575494841839285550458095958702172167550422086724094950065535126275783465125940125201009935963350287786095863804261455951007035885267041169517631878760538718024133627368558433050615384266681760911371399883857514673986478139314710399589495905995825486964228782964453517782259978614760136845618619571539389199737105128893173533491766631259207898241596778601684644045616136495993369994273713757078936319940409056368951738269759219422042827190748751037928944006963724221882932303294095448674389827906969566282226245873876248640235060123464788362786542892824642629819706475138175344946179413731185675197612825945983786297145127374941405407152128734027945203708523206126583143125393709420832246409939239908743065774795023023837931687337995616814588743261480221264399266328392740266013208478551442092683322586137855195535813629928473863437244828519770621782073464782482595204376485049922454171512096677281510763855921195121630741369004849267742466224389983364127826142237473235070525555538365348587031381443898656130103939018673003127199841106564748937741707938158289961691471724387572951595841879448545104775826022763507922696585873123915603426335412109328588616682321166645105321514185411809639094353535057701733436339006984504793072487067923834030764807597328821853585268176429119551714707227850924983213450548879988380009509527549346263419048740481072910854836003292866864452288602034102260500467914131690800457411468770809838438031172829627619560254160945493301933948646531161982164272277464527192446748118352135944643133711006856031009459184216368960872565331029507284022897316041018374066720932437991818488649253243813890579676740431370747021138231405055173109256642055300700338769946496459473638600620441424008424541153910675023375577261986746441176028099550394665903925510475552186123310125359402093999801665659654801314878015687036834825160041078291206216522686656356433074444611514068086814084774034412103441858607470763827877872998839845151582463502778676622441278134494699485756930845648429714883320973456453316110766953956475835710011030970127035935228575840612824180094091506374380968300268140163447247334732205296427846769238870912701586096698514566866224011989157967759993357823588132942307801267870176972601949688183476242517462363448190357209350465329974790701760133466413347289627393937239862521064886525269198845642397572031784011483651211026708836768230295427789365516998493319082248479681328502575667614110401064983195736827144914918973189609972907225509206354643211013294767648092420177042265729962933191990606623486508456614782678420709883906744433116320618929250846392191492022176264181192562079212818380208018473619881973118710097545381457535073661916060343631526871382145825902096362558589656321002663997704952581834156326225371151461814821251406051686738349950686763519314615328452248278931686263177955803339036254078984714411924854109336496685142352019871152351712944362720015303715413278830943894780400392527198259661901790521915566293068374896219806313385162007887145684106332401016702969512896140371613294729437208152710175452491450984280777262097628141718586171554529287361177329867948107769133495560481642212285719053145302106630416809410944842633942245262948044241832721084651483291032082211529824437661979821753165078622692242238725318255118428272382725017480073926594573104012690287064439589712091175430183297262144438531810196744714957329930782927563689327954469293173198524020993915638872136708102433642701658631689650263312796872042596873660915228520675306065410559500864523704260062059587953515564744396709276350045073954810932806084825199173913107662652491100337789744935976850153297160692531681013606410808648226364581297927671591400159328261419339113155964559873254761237407653349683716205900799171663884778663860162514576283494588720783998803359657295951916514854902414855087221544212990675743273212978616774528938276255330164066204102082489671664958642904704809160100812110904126321308012934747069347480401295019630832990349383342296036078855653267254626404494784760922221406996424775013265622625717969770887287186904360114235370174330324727813853394619810886646164004509300273676061597758606756688396027401862096399744032802451875804934433239005546095718902776059189902001299611636296398449624727062511835147351232367751735774018209644169672153168151421004217982488847009275983065829522597948186658078282597375601033398822892576826656432689758101240344535729213174745771896901922444570003955935441408945306239845187632571630596374904635029158785675803481767764092666081867085239281277774106386306306841952157218630750287456051011438462937488283970441743608083260036238869828365101132551028492560452515499551799883924125280132650698600689006423450113264261712866160975644986594720589430791756435617978257439195248486152192980892564974245347815191292865753724668848454755265169716856349101032120676910393070501539914108112481099159069087699765533752378358076487465149409171179329699648116337049467121125047174053406891050022721701073280232141392194216236390179677718566073260023548873259422250935844390014025543285933854991155409868176145328142976647758212966860308102885225996086206687053020615593281519576521510412684063535478533742135282182672911985624928445754931310758249175078527302594175754336728058895412764807851753020283403152182749557745330999287887847208337578229067778187613911376534525782690986407071353398655658573595264438221959401511677266465690379412981700115037019182699770154708529775551800174395468084695695229219451512369953831083937560861621205538109050057225675522428694481237669026269214254939542380415799150599539615210299980737542816199709355012436590286057651038617020554469587366635934370884911474265539379177554241153927263373595043532282461373150658301105384920615219238470636199631309464531031930028915650674113029271683566073281783101095593210290943291620090072388242726888964579917031693431192982904150652475181190326200490596427406805574760742913313567622793578393547224090813353071731989562253247655825164203556473532310147309693213811809317179752837374747380875412216159995104783401911186045936524343778813556188420309319281488077756729562990310158751092936749283776525141485095902016994436399075073289746555782373898813432758426051990571161045471948569241316109849628884365570251098713073917309309429350167196189235653509123730292541878434126663800498433586715986550060606519875395936578521105054565851095700334615888066464516325922433120611995395211217963607429873832507752860596160145447977987667486703053404904991342127452210748801894500508023955658682926608975997079330737871776715247538966069804878652872362602196682462851042223092423233137191831412221900082267212610539858131371242827035570720714645319633237364665365155074106211162387181813078710824160946913569016669815451909508729550533017528294722516400732209145303491325604395247378018191524245570324963589914846174384572254961413118115985804230942077684079741247312786815811558424698073446125636786679913142098133557358102825238027597397524514134983221500165951601736439229519156626603388162629878715540269365834572737346647728369755482399082586030888757609798138485192214494983859894010982900816238608640150927584404208761271964847017185120456488143514737691257803954673355842962765701329819171413727036968148329698611269929952004007778524786786266589547498206423768287917521026925759303026986860297829196275963090420207256022794513307720805451671554739522222700153793303984067501913102552714657703532767951285358481415896449625616498369546720431147736731081574304733912165158556138543491282136233876332539563690897034376046254344201094449780672249820916216468676105238790632233993165647887535874676259610392824941955272116911143500611678341853075291244913340428324982300955266715955859647560740121673105244857309750236140531657643969651677038645478987453992276681938080618731349321396317628698577826163835580940100755450713299907340611820678947852557259632880253590971763108631771510364596804208054826699723719456655610259415891175203707456085731462131271716701671986597758961137008916084134411104122408097877179859685670025739433309206764448416433328055733507700444737560046997838224288563525353160332132130551657970452866528415732862393506926651531719060268787817036023316322151495840041039901475170569531604204073649269885123469321842075714076218737546748691430845488607172396924577555529595979956913878189568494883500040147725904732254888719852827527666713540139765972716335990356843077668036912720375475913673097229942459730334004967548187124048610938252652061042673103809343820741345037083224815401175985807648758228889946662830201828513712806988087662671234314643465873014473014612270016954821113075500474709491994288451742811564785996275324985443898795823770317022124108495044771550662121487800494969375610903975594841184825279840597212837330669607812907951941236601969088065337889272404268345723718930596166778906182397454108921263507166197022152128391777864277535099561714597627719237172478203106925334663180927087151330512681446101639924061719379088735258669949960153685528712534513420890120290321344173789669968204624276075863431765123224171906998768009154787839870257812759381374587963829939661064488670929438612882392480396537660832197445354114028953744561484894465132786662379366092682440769608665574152036904737052954504419884969431238017182469309112383782183836322927589951534371315345409337785981071875394811780211726002814288129254528935564213942725049703340035392143182970802146920904077173594006503551885379160748837795511307871054135670160352337921108846656497051201362704157863746125279363411951955587036671192896443133234639464029995083127330898105537122903696106345703860142739427505017056026694713485632038710504352646786342106562880324973997446852565155490679629747972885416008663517133016916498713477623560386259940088387921278036513363409624858139240870374570417408785319903279972592917183223612877242240126176578367775158129734096581590191060547557164179925066631614081570373421637717868135649625066615516788973590516226474345201351180817076537268832644300496846488902394504355194724630312335376393751147575736619169273360033482178460252918881796877430573488736791262694654293378369598253982914943714897644745502764683827167278398037085217678136244087088040087808274555154646054121069048088051240144444374259399601327168663235895490981161717129956501276325873792881641844744149517719301516668935169588078909815758811716608451894112115679242857984882045528584886119949345934818732493242687551342355214264121005546198749611019710103568952617304321993253866492263692100779213083181017672241319392200813511484839846120628550228354748227653069222794494925218656430203352013469047612084140965723687014171363538587255587093752333395745805660497328704810591541933626932227786185304849856319562090155873867857692205318013075047267289193677293002056710307738726449667225627246357726301459218893489738290018874068971328264799351412754910506062066167816903853140319417912921088720130213581411358903732687395366583847934716181482028611556020873609589392495388148012577119895109092415692779390620228893065454238899028139490837223741381870988188057254800646311632342290752716394190914690225646626609128532625042747147661046820802584077417523537153455019303990941780795369542223772091422565739317105679265360452006747268828473490128182604856222247402841827415100987616898579872610288251182944015416273177282273803288254658483789515531657958958855332058018624871472175756993168020323823394820115561926334763958481243519951760809922023963052902814984045443486048342314896502379969050817859928377488032216659693970638533075606703734168794547153903658093024238583456044287028184188894987513270892111017321390804593109950058740963534969526383772342414473387389927769911977211238931429374321193380787102347018732489013469676755254023184012957822135006841827530928477016639895305441951318190550121495120942602451099167492873967298705007667567896444556413812336650059075156519255985571110524047268342145606890375600398532635374166967304720938413076415818776981689325514411242479482858784223051211074904435689660320396599243150110701572045184009163414901137115322390791016816300500121520889774532590758462559417778788757216104157979630923134212015596294228368077811882353331075495325514415988076117227524631005096585808443189254581620507471303681965117738325265122521543547715578860187798581502459866039406322834251328056741678642034374777030129150879312124384131503735519443987076642108844304147760245578999111784867695048169573783899779568411777596263520563143015918808520872144748946005330911667543315460568133730474052256284445385470531482328331669120210906429885450901013540348006146027273864521616479929229958072330799200165434479264205433787006796894265274174290921457132325457503235553168902909435277922967488843258271303078902022482492878633327095875428018561654547776248690587472462151641183272702992968688382135896879322562265955432812669957994596668896657492646969452155038521996722522812746986622740815297166875243596908608372524333123146412648309056649185658478318978861319706682394339777931070943359892944612610577098851600473455322309914856988834213472033823736940048643337801530071831481453544194796703034554592693868661716912585779642114312803229244194162313180283317574795760089157480506739407354093345806672614696146854182198514179649880038250629279643178918608113915449601593719658289094186643388423530684229102824534877234046858132732973024890503120647325469296332148213268336106938740016482491806396583320758435171290022921120266169766186819495219346497339621747085235947871688087655637844184032689218189800978830519548362469549394810791574737756979291629941318629660712999570413715155730275290495910064928016672097052977953581851295094332569341186541483940434615924002652472978647576867393234205548405436260167589657553263699845760341833917510478309807286510169844460718005107316232104253642606210245096161081340422124417176315131845043926053044304961712223491088564969371847551145927778536592622060988500913906156380129240902171570795053063060977956382399104331346534973218515362260999252295068630850394821281711226173478008686804915386594945686588849947930477724332895431317263877454083821915201191240806296368012458621915752237242887052459572804575255086752981983752291650046483356455666866302374672862622138628190635512030521976565111801525138565448115301072969706288427704555332721856784297518233785749620975990808440801156159197758150380318567120908084343026256265133220031011850402681147955421428845542385557328004357679165877603282292841511084633008449372182313489297442769595064993978098880026400799166379111315483013627082906564069691856267684881789717120034951041552737729350388234232287241339326886136607077131995840902422178876642991403973226027870091340725293684957887788811322924321572552124774633133530952760890684192642444093287124323834109519526430772359184000937957123107911546130689388459608248976019175603333135519584941683008825422554422369511983282246027612668501039499897580866236894575205340100695603707864973176538168344982548904710342593068966570363570752902434251190375069319101011809612926177147594936445286928973490625729210029551523066884260578745479099163143924519404765990600648996475801720611073608667739906651137562993737337012647223552499201470740022690431644200129486628344845303883554453297706450400095862565661690086348130149447275143163172991403873817901380920085655823236372204360839856846308500606080941645403259355780756748261553103978310341375590090709623357357926882745041787841938843585784793316404435306768025141386690911727295668792864090725872989442126725719893831707594397638744380550972398548196606984718362016276352250216574838693332956885439259146733295203584870347423104496425689078044950898969293877429323137066905349950738812371976873141020578500127709912048737766269979322515809480167799629438467400008885121755435714220021796206848881243023110278399020698870991219460863924005402286334354565273141399744803427519248299881004257329653993693024667562561221673070302402732852684305285707920817773312412353088077212495272002518318929701560920224177109781392247771096472255775257667654758413217562401679749624121722412654169254883272560608236023563496978063097831968136741833383457822297798436319908406416388491941084364342510214794516829141122317504496613169311288665310684721890903794236720173912918859043033785456378358822909056892577783233475120666414020741684843611366211819848735121369718829056523555152649405896142486668520458756634498437153784477292402724031205396545333916946480581359045380991603891059318723839069974984320688191601584272391965565926351373589593998254092732981711317593346452282024779842449319539677768100033739782233403193118753974417696051173117321457739713561798514229409648627120861046198152538636241972715196686465613216024173686909515991977622729426760459217803425155094718451813381949290623810826540597534411537263183375773852179678129001147879921658891419534797202806189153468322458154156529826894990606295592299033335106268372946440861540457453957129921365756528032056830994122311174860959757656016392177793638696411145641927745425203105182083901226370719487602650429291418403053456676747879727078869104808164036325867076203138294334428321991165710783790923932795506139093704969214309110697416784630584815350089775937049839889547774616495605840673752047945788356192792447561828413960278010095594116676616230951394073191627366176461306982406073527481724437856905728559027317629184837756753883329849788668612250494576857242861059402872961233490943399674494238946409047148629527596343916748175786257364938377960842579332868014828641030725429676285118691951384438324120473445267832205490047145370129335640579133760824240987097730530424110524576698813871891863176463398321092714586704072173230197620411357286497475437372129918474870177316983793488429283040486775812551831739286501039240925802187671254248841697368330019152109286599952486381036004855793005566884708675968075623824218393191546720964000294904302108637063434995236825858105079248989923792510410589187866292446517897648553531023933424975807853263385621746931243221923791603573461201047971094081804536464002223903706124886601810776050811296315205562057982337442419720738564202573199257953068171535287511219069590509266370221609063647754528921326771370529565605053546395848953231394179730396730135663738537353138297659249231563664413197057899951029960987993932043130265609778500046612335578335684582087442707908728278181019509950458121466491096906324551393848621149390388653934509716052737035178944096028227947434825434609491818434655408983579828564889471634574314080506884202055028642680839705972828593367465013989728126464669871840212808822691849293598230848565791975144706506151465389878219005876251750591459372524647876993107435927378505530255166507421416274291198863989901336550939693969489044359896297364235640211266484883119591091274254953895395472190364495643248135925642178462746354950345861018045267613320255666213437334848927204119928379273875679902786882995242336831954165412655248364191984377122307109922079875029654609136622696177223663169177397420050244277016674513735913223062782615446934063822861361135706487637767125199724498674285053685676245678587252271489268296317805673134278590198381959284638591435425141548390670701973982296508138817679875857641357611510395311078631210691769457171974806553269178198886939627602753688202633438426349964753374197562210172242977119968401085288887938874505109182520328431487610912247337415100581872588318364814835069769659512470824664144777731200454680977620600825154610448043767704563947256761162692514618249806214531743730079416479968187372044894873445201097474428440484864964495571333629868147027387932215571750413180944594142069245694087282104626493504102636127505224398396169614882487091291817555221544216414815149000224819359917809839453858435405261274433256667547377601106425817942052520490946471188720828840527946015612817442787481764498423290332894984733032924624749394435138381634645701897553546277731518378535475782670905707912508597043271123211867334859324086718432640627913871136618785560237294006537647948647500578210219166570865451904982876350665092864321682207726709045007713187422294791960438158579575176575988873884003578752873757788847516435990077338305159801140981246594679247554078365055781843162459469392160017803446145364418013177695972563571352549920789786961156568459310696249457563282490508183479584086512786468954982597421733518616121235445384737304232411929100271055974212404908090390003098352602781502658962334333860509035345673387184017455000286159180457945214963900571327745067147852384873781127017125968473650974394485529072683921079045512555949309897243425374263220580879410575246999065802094365702597631076017433269219736112544380808127430606901365191948204500177564463943369333016550550827104280096764250962373059690227228886355363645147925571310574370896383504697002691925287330770879442474825880184481857721749282823306367128455132823842632698658431987022721925559044327659545426114628556914449246933447984913594018041711357497301030924434115235109697041936841373979840845110609371770239299739260733787905405257395590844622006071499013117371886222252254691371901337284817980463478406921626710201058226234636019477718532900592356730814335417835220008778481454354169290140619075279577317500093227845358634513276369167028505635785730623830997724272127490275768209964019398265655689118487338252608576091357383994361128392910611574914484830178347538761478538674922365452189143311942114901453658537302244225286003256729606423406912103554104909346930920739131311589101126377851319999343981839011030179826512485617085645624569598597476472372205395946237821454047349060140069891150737550692882467272254819242687079573184608242553223148651602614042894415145381078925396666722065039997833832892762950816253494622791952054311150207871662695898649878563122520194984304778643251332522730942047046206363029065444031136706141607197684595824144319167866539021275456709192848338177626943802388104111999913422976397019360889289338329414928848958017427531250627854651042299951826002803217984380750337790184921365300675723159335250887599138385535839729537528705204366740661924793918127014226062241980170428169269029933608130437882493475223475808921678520180833753013780208518095662553827268405651333757196400968646235559455326894066870309764088904146929554707733630261015828992958366042078662867835447678555102079016915675930159984798757002193987518582175398801415954273052738681383505587731644337009173489595530394946418774145870469423226554064780749072647910262630277340015950698207939916123755159814264086861471236356586648520674477952012134639637276241881114676995712582593211206489691817893264004119779999692377346649110597010647841719427137362784885888057764813569772613604263959733711118146359871789047819204755830724866588082376103330202245116117517013741001247417909330006422913052976779358792085624107991217207542663005003905055216574511895656893420601486114070463432492398920113321886399600779265667942376310490463442036676721267334471041084287951174030186714480084880741267084430298998833036283117066766830639164903488572060396656073425933685884787234305695861898843913563845324809287687499475958362614967651135144937519188916150942913616241577415650493901711803728224579159615031709754442579467389021527297689806444139687259726769113285668260982353071090162799833357435318926849956423803453275394868111578096594311105500830158056191365056781336896116391938808797067982248864638781194807890150104680437171167916099297363852702420765930508912356968878315829408091562754736194887310347857087630054451902570029630690103470079083801451291741604458438415494675272234852660665287390503606862953445970294916581716936042591921474949177732056233201083641777236737015989061663315877010387762906292205080038273892249800890463375883248411494375366819714467393716660563340862276959924091077668034468627973211322713046433494417086216231667344078049252524432142352000718708682498907667342207475757277473755235184681453614540436443608590876792999170345081348514249877202459657264953435588590726049293740749672004686032703918787791976610577993740660510685633737068381575660940365967233250935489310489797565433453504618033389468755106803592891587804266481901170313470003905265585262268657531040900073139858812130337361261020762682508986847164952197809025696347830658929456382263634277450174230931739139047228576646703604874037852139921537746190892346916095919071265047705999103668373642278418750646049866757727544879809054954540661957822905691763345309474783601940448465164867925437932288411937001736534446339788172048670724181709725981973399948095043964575233847737544882238037790215156118404295637075868147415877582813826915171499973613559517284524324526693421279528538864214338143340603517620478508328017923666338191960810879954250471169490917440323613645532345281815500871539281312697615332791471377715996670809141694352312194773996427841411950440042601280541285235954667998706120762617848031723287199618199438558550596159730203433275912468416461852321871798360916101230959789677790352896386567100169037585167626089840968158889862846351397970842371258283463843443857819251259001404637661543784440620888887844923344276634854490012646316052249105618154675614834683000816762204497003105877892960361478699953974743254768132373137058062942016205429531132408550313902540567491401285748750790285096102940521985192590445773078460375936310408932101805267988969066924053480071824419843572446625414917337400807284347494944922534661218990522221202178305271185957641707380228632493649772189731838028491814426485976432352547246823741001212253199315922183111374675838569575293972018723327427147358317081816985807760077874441146433078282327490783244465090627712210810584489588117693346772565732285030746244536952631219198121212356386473059968185975637813934227926938568940763109880366718823463406750283616555812295384781101142149799356742436917818092148598202042489627686692171216572459506092603438438923679403851855452974569609884677201492161096070892242289914342389175519462348667444065414155562937787024289509700340135794119136994097994980548125750686550187249267475803520318032192116350294762128906735658923178032708445731810560685957049586007564382818307386776171877475826939939940260905433410044804374566574210312957029558384384223344124596581351575855882053528759005867499427682983347181120951780901811120826682224370394416119512297643071802300027499767554025607973794135798362539706750618792090278306729650688402737442237133754162174881682742806633970692413229956139119005314172741354004618148889751790740845150934615085671238721975614261737273264739107385799847488204023224378120232833231289917217714824650691989543902517729425431761830518138928458622242634642305336643368352001501623938122303377516091675782532396136121842335118239134914124178289757826642587557647348904076340159227802640218490037435499680266385073991741881878087615664291686651679629787191947567853678952700779711787774935717240142593735692333116142132912345098029700717760448188519601156861753537527568839963395719616812604344044322383636843034587056520158250152269932931836069200232972463961725556554044855508554422149615494190309976432337257897738433918224144019670126858813988004356490557784270678181187260365065357595159021277665233910567133742259377874627763575892009878647651653184629362904904137785563025059149151157610505226220792819143198092009508139361979523129405933674980519082093632561936351613830956770340280331076134489963815305478378416445973798263601063746730717260887010245756734120743381371936198054251398666408498863395784892352729266526211019135259338620021332741653925101185324741656014912089795174859516468907170374268112580495791236246600322844491045549313005862153506689584345502462946481288423972040638290420095384366802861880192523693228504109818844572242031618713244749140585919051426122865489546655924985788792073209931404970075968500689385098530357510197677646450858457351212367859644365474282518339432648911948987804695679256663811544672728053063379183558521191103560522567851127031661868301453574082336984509904136341511765398557686140454302449090398240820427164476343414639576999376689354367041155248816757059583900811888820255306071281362850773260761672264940505108554411102618579981584701090044315386467708085733436173606537108344025569312582181261882375131614655588293340620692402690810863518091424204484141765864220636886967357372763123124656356015962863250125439736000385645297148555694421555237018675244932992845858580104830180643968929360804150369388936671368013426799752873799091153459793265551078856745115716946986763930310895541399299508697067161527192276316020077210245036572773022524305432345943953800068101883448097838950074102500911691611265453105486286125531155052212409273234728526312072818400342918320791521850345465118762583786306012298749574754257684687914347419781020555412950433332772765355318642679436869923665239083717910463111248842191216925720241340967511160392653914544762204571034340182834343382469707832154117521632651753504626034292559871864895754825742272617212582458098426158265564122454567999832267977547571635128884787575129699079851939521984839584756757014426895388510062889771568433882925959518058694539250496972290025419609775745578656322601463890812025835989570683901280970669164732468535639117959128106593154647120546984485449965089016108939487280118355254726781203095007889581576923305647296911689066004930173533706506708213977992655192098225872616852383669390247981850886170755516659704678445798396140914271554782532828576164331867535122771769437214864768552030813974663382096858338028571482219760120339169167205985100869927135074078296630051073885855272635255774705252858365692616615778158413453667785101161257677489144805551231128164309380271276076602366652980011567721600915045890803262979799615017326467069159395202328844255887192487541217090761582599181233467333139353612362557904984239657908656270257943723380258238848605702931327079853788627894808232874598249888758738027109270811150794870857207171540161666362722446043269601090792760098732481218593799886265052008759435712818537604957929817338624975413304089972842531873028059503598002549854980068666230363832238406648690405348139906904829115045754212197590552013585744380214520152304664309027130620355031533914004569958334077344974393484608813259679133536390480171646460255119844688028849263103269972137320447319351243217603722710672680705621381747487782706713959310856616221285085847649042130723851266212801947923682431699370911501481884620421245347620747803663574752555345519460573375180621218373619423651269861831082171463264902171452000167907942284670871498339883252527827922048928012484864216685510367656774994130186885090540222535592491328592301735572278481098339896778168148353756535363170219298463268159446740364513386632809388816133824291784901355615821132391543278104399191007407875360242810440732630875656964336073318815907669555274495712210011114930744826986388577042939392473029276962417461204256197019752015634268186565299619836888786507863838288488342269932084037936526581451763817291243203475905272843514897723786596201238724742540385674123571025090402125611458384923699188325550573301882180599688352772463007526359874459032592905768354209395882425822373050929348845138082028327955558210213284438388763112558227472453822801864072426641292050579669862924364396330096119113759730936051770253192980868948452303896869586005302072547232055173592923137487874585766846402731961111210739809112123147637557101660432235557189838432062819326482109653703108109816122995142188781237605157147595457394254206522008442083522403754358279643631448111994860386884715170512619449384374521606788869290794436373354475601712974965165564174178865545400341774402760864075051806368818603962976918252881682506799956184914828352578833347975504641693010504383990800123675266537703822758189598141746115799576845260147249980789903621255485010252962622106615788507567776270433807194282244678317151095550101459983148132789021529525649546229386566981154037157114477127909162270801545301434983521641914811209178340785222894843978420436785758051643171978052468695656277718893745546201635008691257395029391788650411277472559637482545074363493822944637897281398545842710316763408946556531742289871309860869823022865178068060679365360292794137479238138687237091399381391151443005561671264038198951253034894995695079306050729354304145736754406662775893829170819086152679730350624962398707582837916683889181951934222801347379923420441143216911743781792627714412431530572732640410809402710201097495800156364211497886145133445873938160860948639007628021624860541076255762918929858187799781735871217342317978439626418748428157486138158623282637209440915439292827610689692669539930098889245578792292533913962255341204073831648945210778343111020897832519224063786702088696915922155646328771716167562134911928476144329223476948734235058648278787634692444058401172099157136014170430215218217670437149537957471180062866511924364247501697094937675663653949289056315643515417551450207020315079388125552874347684981474522315927389276509731791130464104102217975179163296524758721484468944512079515482868519994513568511142660256401322581487800064644643549495358585323756802789816963924178118182674864866642320510985568375768238305064336143265191730505774729048467395317248246397375761031264611015665055300286749190165539834139036012025283352159404865781162572411060803576607310934609435237785695294289020557971433184043048014875437298339174832743262697211995598505101454658299046384007273024430608877005112785884425348155826962360272465805329521377160137075608415901596819929844215748614777750026052330775176351362951039246760418062161547462558705131263332943175841281493843817886798529566241923018237799159221711851786423657905426562384983513486720493576280870707985195362777000642041609832309994933790440083117575413505425814532197648572755439818601898851239445729020455103602194396414140673945373010566461028778864652412028004752164213095354192426726719172102330441413244364786233463777008847699059922709208125464593592419149220702619042844602994223264141673478587911212128924907867696762409174207055025358206143591074039163523616004655656592901200268581916674201710438810097944042474434997166429757779948899906372564446436377832650384663047235793161557227155377934724558084703790066441432350948048119887677429185325685041615643800291626437380998310602162673945799056256169916489837389420890204501158962336143939641318179689361030004067684182158118553444638653802441992434891894214193104299860437446666571981735478648643870083475990198601464892632659640013800387878207873572988398567174761694785052119799498213113160775729652245126132120187498471114795996819791333937912061681245855771655466865275939045352101451909863775087502986466486081451835220508369828083591997036770138702036283459556360915712420665164211285050279037559676788587149503519591902524479307322719908612670070366022136405635866145873933714159500369096943218114745550010768628310913623981739737924539784591914971568042997630082433883009733016823903409793489432820856210477846059293031051781702552337566165904576919152322185779926941602758450193910264802791773618125397745420124088637876099542368498269743362301955623913708093862273970192805391573154135832747924050591453342610060660839416358798881147402838072227125588775356144820185938296080658097342627358427803208065267055087565227927601563421447637403960958448927996892346390238481355946707861906092742202223752958588482053720771856258312537847932184635591663757066092713726479400569039998664097456033226263903792265622178241211712572037644980145112988373693747131722991075520562293752604598217506515039630210048900502953112324420052689516500030874989456506046954190368377524139231033847598873797483187585667714602604879310382489194838275340998665603335530799044453059313349695808257625172640102885283507213754821760368297025764330981402763086800256803131817497864230559969906951860710711545176323733365627661396530388668500439138752326145019290832418581112233488564282547330056805449767190857581055301416958304874749161683467391847434910072307687865133958240826822126744770890498696627491161965874623580446311315578703338428397155319142879425697424176218411918286470097791881194796856680988739146520462440472948365567391760929304028467185175341601818633487182328913504175849978973029585200665960731669035149653269469624123548090134087924851904145542783055230321296391103805973848930478088625447693110500427848689442625174089491584963301702451995927901226291845089653699078905889917295987442718637691960770172770738163357526662241753890291581457948324904686588186354094523871130573881322594965713137037415633541215453380228531472460694872642632372530721322662772491865408653290046589734662634540542565112178512699273183662740794171976848641669781059813559415636849490885389431662969661315657734528245399318405565833959531363122326967846225932269417453054475481762389147250227630012033452508308323393008860812159230275331458113553344740771751869608350097860985801573691376021362772497731751568766173871462308550333187241313903753222416106687262014799986487306830120041906506331155023893453235107314787210288836134622884066058043799313117885592984090636327752270628610914271054600870093140871293001265782134875574799019448789304149177812863770269607476140864622920297979334739413655384563873764707488874049367611479165906687378577815500725866384742862632485932244617718542143715525489331200468211235940172055006463899358230808925637489265139677090095660415053951265261749598411006216170355071903824320982897940580929303409866634274682795417385817659174873704360496247588542649249785425365275098509136042385676866829981909591757378503315289517839172837648804015664967730215151739987229188564987721795765299495451492656617571910093892306345270485765221357694683118713943451488446003458222091152674391143116595237745482255290789135745201002515137163230204498995163258304434735389349613844613357663830788681127067533807014460547818209395606056662827673964647432332712980095256372536839348002750784227938407780229742125011392143271337691880728343474170869029812837554689053250995288339576587184740331895050356943201290706202598082117460626324668093089615196311041539681158934923430326938328390324876113750101419211028129426120381586176842852639217368535532200690371411119122015581040148054452829534852571426310268832167961609047983551177500081627402941171195549801264440449205705004351625212021545000189323690038733925566574523189806260366311653317098042881206421902078626621253025299692624671150509618595557996362994667970057137740353828948982081887411578214860011916673941842234590361297085117609432809835556017645381832305321386080453126095916532590476647398310059491291280822403771131804317873846092332508852403778094678037445608175759597308750367233610220793795299541933259122530821311379332384999199401334051631555328480498556874162529308764981439807297024919177495584619214323843945301369842270074715946722866221317753853887708966799896612686974395913706541392631416063354171290708587326747330440829372342798205424405732982071420465432516367941698685120987480302949724036510687240148099044266267384451735170515068788974943687649832064926590448161713379950372663326338178319553747191154160021515240383806373258590969619692828637907411110924179231924959636196958466454637521416522957814001083194101488570564519795905541039034330553375101452409175361796853108909724535717462433742664020729300620168107019704530761095606258434137661284565912928411013755321936899592932985722883825315556524816407482232754397486300439163628052579096342740846876168585416919426523307847876829094339079153402281420263628632101392959449229070922906932200101315958050875682515164141220715771801398137807047353948337414602654884283549942406784849058241005327865935250992216989159766212803289271305420488138333699223328641698742715614051742788256656936604426868994295455142694542376514618309711044564152851578132492519091628453154639702551226235773828852527192576579855059704879583443571375000764018527781819466871888593907600577205293190273232431511653638124729155100030926056582727687626103679316465070995776803629000619202931426993811725810300621119844144493018402188661063444344437848157068413245823589840902064280670298913516742476321224489805431104486078933663169667156586440692230096140117615972970357257787773743949643037157618260385513767421345721561152184501763493911298657205304381571972678608346200602112047099471259941208107610686700035519604776390941476292791511109446987505389174995614873766743264446775228427607218776655130871408149320596739287960798471442296403937887130999088221712769288812454945015404347246153184294551617008359768402202825518636002411497568532197746358160834283829262118628247461802296266736756187323295752786913234364116169427567294275302308545023511638415053541553265101354652916556501877207267698184452725816731588588397104268981704043822508339410206955286852297789294288656821359743135774734144327871791843807668631208891752439618125913214032613499415102356621358130040903390063051782797748417314364093661779595057136821476274191185083536910714628117912678290774037121930199047437977659226931608647110114405518192845524685300646433033501020563146918603216909556627769677730654858005673823640834087556246084977306667578882782754718431160231695669813523699285405768240977694974600358331099258070788752053902999705745750706500578759245310645177586504115812707335815548352685873325308623988786435230700278737658366196383310065984209263470298162488186379254220652697298701351728194389223783419254634249789938453590065411062108196727927280292175473101022455333068474335357573700019141742422255877849629213370224718955104891712482288334602478563299490683808605673690165679476167863564609964753535458577504039258910756094282745737533026560922191896876000954728639306619986936788973057032220713305810184158958266758126573277836995063740733457282442705958976494454208599045556426206967244174742774322185948296860320504253071396401932389579742803898081729020424580863340303811019550482031836391058615730174255466735817880955482284116223155038455290749950440513548726497970732012599711633729452782895528753826513362066525097203587018004259440525725507323080592771071739209361219369824643220437366016404153114490133970648746308831476551133720889286473089834248628634736079656182792285572382011417206940644706918093680286876519172008231181480079861065144563064137049801981933789698854784037568041686788858380383583099722336926597607661453457379929014631897099938366152331829907597569280003419462524837818827879271412475617217295129889626798468037160827468174246531634732616049591557295107796481715441407367435482512197949341543322273203614803651129615456177982301321277071101175767524245263898989946189922659214883683036005187190400982492981677650363558237379170456369971918887623643074232562899079904747922564056904437840063490944133869357350720302741516122575942174897771148366073901078567677965778088780839090829709569865986942522275654574462882283270355336990130729938240998069372898890767890202317395920215954361739427659080749047828093126596567052325016981968321303315026688135444359750515661926183002767619830282849894223058246397767471136761101983569722262583887319790041892456883359666074570517972577912967726251095240631537869034193422648016302143034492740253746074312162282051366234161506974891258565410597709899380876184643073788434565044723700439456766011327267337753583423505071380044185416683684670596240034834299375333747151281424844573712040160887100521566977297422510429953693826505828185391857609023395419433931669667883214756415251441643724546982807719883075985781516646229668640538106118814734861700554718555657878235421892232607213781759754993635884561625231832109295365190554110736864753910511687136508203515019192330934894777444213379184825065917123772434485528574147839072087542204145651370415591217414179026676350122730842769174912476146572290305245446027184802055777894538092870620724480594148251581797188737396737615258033729558151269499736444508072012419015518285734113789483551008249398111946208460441380598201133711721104298612769108481103359522328151175123383979279347449681377759129452087979094280934253705210784109839005548330732048629211885596406262488957695755138085057101686010680819942017989806769895779715578259607993228089824506829493105469465689158886100641247350550406724558670846276088114158242642232539790857224086348785674835120446853122536433962935453411321218144983615712758968536238027945527559408640344087397270027965064098934585381199357279223981297735264858709708514828783909091122480356845659188809530597825149023105362700978670537881605336332926796513374950027737681518734383971425980891671715412374117159385880780990205379587375007592806223094721983535831440237540741280056894891321724196548195082112321601389094570450275497358722799230168615712847171704404611482506391732127694396813173612718449423142529621212246246209896153751338869485642801366913289660372103772285362221647633368748269117479353481523394040484015538250067812004776893463374476405394440771566621974618756212473387592909971178136714268972624735579517171834782505593850002893652142194073745068332028932916077070190352615327792428007450246498526385510009884682910195260871958919219562527322294723960281508179835352970501958242111198383145774947633399513745894990382879807782761940470781426517904792297268107744221284682735226032985913953690709733531109489600112985967615121136916013501172811592236073270970810340927819868277152241804136273165233800848174978267188207750395223131875516254239755958988645682864721587906153516155489435820563155657823021285641299263548661239547399713665600201611737239387674194953500326048774519272403766242322169540167269313170482323073083119320658430808440462910992839391604631955930948854376158062972725917949769310815265805773495287594079554653639933415395459647949275038428074538848467211385627330433745121641608262759388783725778032208399111043906956946320388191971063099811090420119120559721142784885668540034601381144004594736122858358613307501038920264066355135212693532321407919788714135680269050805995027623415745831467054676350604228535893738808404908152136728846487800157455992489311372234590137230867831625771618285526567648490777355230841520034135714529122432959517004707095124229050075578082454844829589215410942153766773654347000004760098010137444153708943253737046537185801597254977382895045599304782207893792945892499261571187972164983008293024170319899477532920139115681169086033246042250593108833812938689640377707765995578780208707770820657867503351372202480502177407441538510841980707499196535566089040640162766246178540050894762159344146458437425449460183314104912128638781508322638602655493017271144289777694929419488874414170870355733751924395844997893365927621527725018854099577941526420524329783731338400499753384050890350749285280263802485527332346787665043552150421135919321075030714803378035280478095264204438482736289529914553392494218206861353323570428341098522268753134792084556021651546880141547345756120144044139161069775341899118092406885487660934844674639348218225805298376635630594622430422309058661484710323607056629451600941757297035775138301264645531138330399809193362438741358805505592856441491658797108381367776807979747376477184622045556090756070733191124219049538418699997396889831226519732624868810576100467668828553963418829947612606535679944265647626067282535982595542334360792986048730688829815842984650592796931374270064010651359151018447921415221942012544336788864509575457712074436171458428832437716653764250110018911472174218670948993824877636736047208294177921088348432865290488844842855923893724930190630181223941161224336597507344792034583122238291089900005929753313586094816081384234728815875129702390206738357402532249949171545925133620604034551786946734809673317616184391875700808335971752880357600843512696732563578326502658456427012853999997052734606530798974450438698305600408424533042940359252924050829058101926943003137385245431368421114843108964871294685257373073749790735841812423400675935859463181930176198458519447268394089212679534057948517776592393690775368033977722877704957371097424278453695601231168862188396252044238989110912138957738481444674289028446832124683684526185814808775584759881410780975580169470012835332976547684138888879381465509616030131602557754880171657363793158214532151816168783094026284521137697548363006011788732177089123405966687579426615069677801933023232410192732005718553185933423267572173120138966070223602204601094005188540659444940091033249185468168671185323495360577093609789403588623735640602976143752682207309047961628484059585458266784410568245997270820105135193830734905535125134326043271454199540554557349652477870543872915124476724097946688810899136066281178448074752859573748538267989992863989170928811087159584077623151399167163489179610765179673100183384636098211056183101023294826502922183649115267599372490046015087518723237452016387244878628489407393778400827134212618321926936779287095732760824680274094311755924945811270509014712965504371395595879368603559153531573947532594720895021821792441708655530264285265481369561778256862199954590058872364279289079839269455154464064377665677542352137861994765822619667557204764186257658492817557733590080811241039631746391760255559462413147414125142425910719088421223565181725165076778819890327952750505410843038142811353686179222138808027901493352721155841989578958515795483472975610900081416302184283630754977537352951419762414996055775747133654190960973662322699604922123621047062758990079611089995652665294268218253022315707199599192170822082893578825390515140185109702810040161053534968393688382156616762702405485780614593565391604945251863332446893945417748850383443274067602029146432545894231951389058561404427851552360922907633722984593191532166715765295556439877318956081884386246785248684289523363193391218416916672530649485468364999321564146972180915919715601540909290933551570103925578850136300654011582744895713158551512017045309381679502448794164585699794233615552401144791446719663780462265547591524743561838287428593652292962904841342198521162018215789561083416367511502953094328363793370639423867659399228543378151673724588803823474048047814104636839233562233049611867785486774807586152842443237290677336498334087818261559223709419116340787127435440410608901806527459554615151097097896776711484042976978201085445180621432818214714778227994525142824761729841876055186975056390668592501871312273321350135899142497169661791729943077047003477585630788251161574116973013281202115289590797743657143165464488136326965246280711592125139431910872140641648412210663754858050691836852314275178687163108746347453012195960475875826246669431160129010317774546376994063960476930258282002538225578252492685301168233807484493303234446243502081875715772056936769105973254041533952082595258163318839363871260393113311990117550621403250245272379310604887689261642049629034905373396935250802934814514833647635690377860263157425718382511677407437388881077080459251310002222433935608777771300578363247315113522350887686938086835543760814499893788160349909332866295235486735366057075268336886039376643696911118758618127721806415614215482344541496071611359872748508665783976335156934115861853289540670858437634292106574286603899125636729094977722280424637639233852460142796728886418545834874616092278160812442976009359367141939409631430153304837401353553431618376394726896592097682872178883043387279656646678221364436989171284933023789966480656494690375687592178233475505316664584470096748697693179931246051109147146162619475438967934378634381835262879399796902985587508978048093273819937652921697211843626718536432143856690190798987995114368742640346891667424161555103860420377389076986787698996267854703100086736784698678028014753998944577722452569861573977436506064565788085502472327857038454544791605518325569219236469415941454081962503600640943869995138946829453589671186197654396480030971670236364303153947074067109537195806510572041764024547049258971121518316042086239167416134170929723142995046432315521168595653420483404464202646484654797855157793415463389730071462294591066248213623252025407132272398892762272263862246650159681570289666304868923071792894414394206321889881795192887880799556051920665657104603328556752195688298153420778951851222695357039377911031816782665718686598105116682968358009936103284776528001999330110466420833150015757728558972496125123248076000018518006086871094415723419932640765729496332273700147981534825335166484518663434945973376097994450610215496004082566903042714879353704161368586512638874082523300149389691653589134585523836109252482585630521530322057646611758375284738458498893959513440873309832179417225356793580775330643261709337645003126261773231732648277425787342055917004529241073618156952976406896055980532771914569602594314014578618668603474197917882154238169404416656035157560517570205739185677015689706588306902618013567901677834663189552712833749825740652985699980209536298303977325118872678597358193063128846447535841550320944991913012334346504267635334216703560702858776032679786496428199395944933097918113747093617883771723510924364300965311693324240343844811364076980135424474253085418381435785604156418518487340891436277061482743194886975014994136803768204695903538075953342864606282583943490230493049103255106566964686081324324230967169258241328400740845539692436026283374091565135739562908394888762653668865005131992356503050945911520207122136411887008972818838540582056017798832806085366186877878192626939443412695708360295365859284655752729834784466338160024596871271647776501905726167183479803522453512878080945226481660991612043962345510660671294293080582564459747670892636687193868851704640655459006889325723507580803543872808700257470305797988081712403859079271055068011500303864377289898339616662011872675779359298793932244989086468913535375684855781996348507055159204852982538460104790275098246290929196478715553714583346216551341033362700438370120193583882290154219193105798211627115714090142464534722854421458974471440912796351609494490301570202078861774630314152651864892325099917569897166945248262990693500691582859994914998607867892339775542389600990801871184425800937913159653878111995844492316293600495234070965468868149948552671031220093249280927436531064861895282195267204461343614936998381229014860790048185457618254941892245591081865539617897599958840257077648947285286091115870496517391881398863396071701570037409436876709081501618158316784447644048554374323810073091280003752083443660000300977901018236522175220682640245945656266305948237287609749808280805982317260279502675390537816655419841294539263884780170251086647731933965593270476179545286268494607049203736666532789700573200486426602705723155980038743336567149627871430103649042938018563053480900356910076142784628590511839816632899828266574379597488664586469321551468715545755497822962739546076766009755829336638072603126830804630637461417861886094594352114128055445837284941459928422648282533268468400949879280184227210569623835558487971998004419037513234752626784612575334020494165195556924805349669706759814892444185670860608483671028742729970562611124280473969503112789319523126502377470951496227837818490636938942202139435924051046478789573929706236254401857215890521722459909790909489971617322015566240446692125218574666464446708132147890736409179166347217720958291184624450378973443348761562461616095817218839056430608909354015672021187708060302000026500411792731729069993028728308559379974191620730010444070714813477731500344655297471461864000965074695476594830801560839608983861722774894893614578770146484758714045173487132996223073276824088403499937363109158502986504293003252010969265732007273872165763048120455161919366946546090881897969921521979709003375435870619044086334393309767210972988046303228353561239348749621726527325921075490971659644762210782049780097019049390133041434546251154891228229352462491708556929442867359966654577602349971585420116239838648546040894907970610423353097117589688497824429392506938957120335474486878335502957724351223699542389977698911263639030136788372385414037698083752967770979193086668150494274751044748495620631869896922537301952428477199581024055257561290969938482238525652131736729298674285364598047456406868750826499385411789849200901769893639504261285245845907324132450987602182740685908883673759004612137004465476934077721301508777814745461843968112176909146412946222629684796486126992240574030541228006186614968137037554935757848999317451912459136395822249181151224400036080074353714597607815251892903175630810926759175348641013938125655841273669935351040268743020375974458211890646734573401463920814837731996342291604744476735125967739567158184880672580108362612691155896409571923187537539083317618648755544469314243787584480908529731293629062336719602013349537793086616696439759483720896522138780068425946595069390121844799646154366995700566475365953330294202152777043624060002999816345558482957526399478292710938848255508759129769022711059344338547733939209457983745458149082861464375370564332680078339141240419106557905032937358511096918857864185302136951672417432822869651932905457062042613370080159316583064528578561006608539378055525882782510183465727788735540971675871099763457722710987359644949581806646121453832047176232682195057990727976141582719088841724186218063990032480258740161432306415969066550230678317256783064238048016552438795620243273686205541036919668519396099430993589913324353033104792689979300305850702154505254515236128259513355502533365604145222656322328634588091397221405776400681830434221898872367124355670938730325841761238712751189310363713520731175688284384100023062689259111969507864889895307215355252041154431690911173224792615636123987836540967859046418518170238996456867382027273021713723004436330720138792910190421962944062743878860488139026232307387019567185744678880954037826706165996682979124442511072606754306025044464807479412620997795491828000929940736434988931565746687946592648276584594360876896972086937650122305778146250814359834496050614804749076033454251050095961953568666275790222030157340116715747009642332127363217862324522986525808082921453984071226923469044409125520597199835949684087941596980229978704782818581163080704073502682021679958217381051816850705184983458237569236745353757953385266437643670650610475618236615817555080496430832197769889445280662900759380823228371131030870434559334508526236861674806750847726083648303464905228618172273246239662088928636835775543819415608500423220666334076838646666978853586765716643572696701035873819015759474521864113162762454962494450638289292226708346925748909509765299691191132374528679976397458710509738209950401719484550471792210643596543369868307577416196145993824365197228502200938387455032304901019321277453439748060709041409387134743561669365332950158888552372159806643583893291263319267383225679306621668735877476509444024706799017605153509551690408903240120690806658442361183670526754550163147602865825696906859997367906827784380070024825875638891640884555798777512816269676825831455316708759619950626021011488124098343512710057820530232106030112466300132569231774217106973721352458002240468074138761802209215646654755829415948810383468321646664230845752770790268772638700364043408270547553513758728417783682577125985991547164026512030941153905240532160800972956277370521704857320770876993557940830134883871849444203420848317662757025273455968151793627987506597588263626810562774220634496738783038033346303713707888049401427835467893504592498852937757118045685754592598579844231020285137043435151524200372279223669903417575730767382524779336249216418764780646955000477263886887467746159642660666797776201910810761374308778384393389808210173170891457715449800933710001622638399656856036012348004534240793708339335930595987784424898516752488910185564021031600375771400549309802274947426974202338739790925192143488740632136514461939984119011042863905505965347261405812883051995432422003415863534222121647740035178055377611674628279398261480139868977717791607638871704889469750331030523874233927373107283761286503437485282705831442765844746878362756158107796981216668403398457045960611880964595252647040636665253279637583070537305679130988832119974123172894068700449852662295890978298955790387873875720163025414070923805289671248500276059326186380242813421146776813696902981753030623703442482441336684701257730564985174565774085401076931518631953479544422261851467854281348329344731234886013612860167154297277984089668667966427941510432000293357279546626971451529609328460610622543197440997944092753433697478236268030398283375558378073482345285661382033703693827712047117568228844541082855031497478968877569529178414156152525533906778516518959208967805745245892534531370763084203895666639298586313753335607761999232457588025245101397821906357197710398349762722459864853238528074703500346700995918157164834098610392060375647798108889071985430414572684696313730174320522599622705143534502950229979282695653165357626211869771535141058120422730177105292419819233555263531784942220195842842999223698415779810669178565335958724150795556115642309863261747277780778161918366208686397404045695122854103887984806879393204976794253945607533311859320110625481405969716414041763811640989763945667960835821735170884487136826115036384677099395202269603334864946770782271403648801597499387155067026964221773333594209503642499932271887695449156136972970771236862377157273933783085052088247007402877585419350476788827792327114316892762956025626829524575879266600505623528821321974980624202054344209409883783408265692258987186217790996780105130499963390716429641579299762751676548899363761269095388096406822259345328128836984134542534420742620055868504426688245659063643985541040159019734410531339511866321303678806622128620973933642551677673823182000039285215370726440392728154184261041765849751794282819714328428373884145859463548318584548726584371505633853566311741979407691298363130522019971663145492114805576748485124938901408255195472403765202487047553275400797598731062860140746882324759775809106421931620528402882962079647276755584836087778884726380687300735482249471784074145224847752412644607795924662116060795780722536398051523125733288516503460654737265993988381487577039500491658574061256222165266536366288916150502231481184835521566105950528153167759825292694571491188224504332621483559663157223150300350995536211220419231854719092529714563319675614591458969937490346514430533228222278926502022673921541866221356175106698069212483023474155591079947094077504386154794041258828085279842340907876732621414252910882809609901197307903412852275016349079638422449286129909437364586360208449867525307548626809874133354734643828037819123431845945357632078670615659447615401628431496185044902882664624730725387836078949790872247284954708970195926845815946367733243520265272812158273723309357694720477330894760858040927430788161512550221490240037411839067352227997284739355763527655595140038063985704948260066335830504617632291518720224425555104469068420900037721288060783450445440888700314912036793961400558208382363749227163229540214240321241172380979522470731139753282797201654240922750385872405981542441841362083098728595601041191161097559343206423998486651278431268763082468519718258237992709924260174122759305396888417578242067519893275222315692283312446026021850278686532943866115781018519610459946289883293861677342613492342746755749670340119414361653672255236046392678982849839194934816617750944078591525134627375943670892398821324318514079240565711841759810290006607748937501017628564441186801666475677852538380864520669262506283825052634503659619011598310991305125927314208755236836357183612895796540265441747035959334113985817072574652771973385218241518486475664731683423293691638627956849191969180752066392689112544242159944668517882826383052197294885679682955179500735892796177729538680014525971909395740586979348337355138617169011538506472887090765420992606349207909014978854165928450475433803663975146667310004064807735328184504002739363226467845247687118640802736839349898811943523906757598976452125479004958683629586278316850206599893613933097431669262105136202173869031771643514956041476656612450252586374977670077495481682817678158418552315596757965122314240832862204026031131237270454599424488987952382431025143290688517267935652145203291933704678909237667678710900052613045483973282650503119164331976041113870554817215609126804582328438616852419459126219938736475601558249265044341021188722994516072922886820162950445826814599152513577639048600643578926895529487653284000252711268788322859059859983438458320423753605515525949845085184812264329950272802260921463421650177223730345757969245124757662228053905416902083133059540962745222598259757782868363556261075172512165756799640056263957107270589640216819559758088523785338708769510615061294966408869978772475499936395100695648216486042178495641922676785797671597382947295311512783227006433399775507766663101354658321378611102939897109033670571231198885842978488532409459540946475617984642809065610356034745389803224682468712339984492889760054360935270911213632579190960799196069515653471959840646872413425654715067598053250107412590077061915417524052009560128316649981399120509358805035229876307374053483230089834068770594232278865143347682231905090391277530040109298710645902854572319796323378576968883521828431435725708826638480482010065260154103215004504252024038773165390670975895166696440581028650179238576867874112535754548301546286618557122429448880289524410994984446555206976728575842526010725356413210680777999146126452526489763669707515390266101941848192269008779031258649538306322149697748212677146247715815786658917483337378830600360699372808438003813788702154683996216634565978729224582260661697260966132588205518374243960269084364152962881429090103171017261879359065034106822223112631069172258346061609472292905366824018220646382624265124519198806735033898844606564421353776022347943237225390146281385683859773557529941431159100141119627656400152922329797779804135852992848145459555663632432611935540644895191601474224387177431740212282451640980816649368050960333243155345765833103741644748755939663843593651775533713106156422096438703056104331521638414059760199621946691812877787270480799513976668237692507527043107892444645140700603101239256457827883234619113044965388708030256599256022414488098280798119637538915679771632896684248379333018921007909043638118031471774437695826450298640252719774847717535000141735805089939637635731876305645763968962937228671893297898610734963570463357743291860553032205666121517244491944659312888158305211302805102446025542614185434309431255698329943764937671645853461082855840206105004191633483338232184561345023562713163559939666851996156395470113982184125070865195238324704720613897463296685799577708794850031128786365955953411438877671031776694154485221642459796312459204132875413949176560899914827028896440396742911043679263048250057557799401252148650206309812673697362978480350078223579623893400115129901895175008152550034150011091260347722721884464680886453587350851553466945078338236213095712309056488041881496773774844291225048942504743236455667198986073345772775242383438215595236289317332140107811010062704177000508515035806097355807707757364258530682275271202362584847215686300835717309466532048929620541293928399802220354111494912045512133870694369978808667507646982990623719234881202168295019689740110018242327174257130820632709225681518743519579444948070585421357038614459704572464225592913078451206493989797091118666868877823870974062557255563619193992945635039321673012799286785856062001982018092965455754243066551645567816836151330697701734675566473642586823976786752906649362070001001936508174927341183347203332311212096316217452382267777519646708421645796153978340957554517168412780929208961237911918218562921683083967479456730627643034409650776915816959968779902713138264750562165007740747793782202183966135956615268639060920067621804480437620164877377959761535036604045582006677361637930403936334498492439461448963569898183784957305991909418916413971826502541748326828416792241633719581988702427413624499699071901997565657048479929244319959898624974306346932645208870615861525121414401759735360466718888672019948113040320349232174511804458327307097822407888795677613523698151029882595102621315588247294060307897934114949833931255849282191016522312081808023877324671799081078853255050253329856429326942360252403601297454626594517919478748016370668714711906982661025270056369384391212415740981388257826227854707919455182102740944420017080088997052261295908642594468925707942061818657986296942971284506523151288698851684850795293533861469994835452440368583692335393348690041490705354980382971086182940834898799880127820765804882330029733407238982993922504813503167531335844604204484183599554930991765126285506068035823986706311694889221563701558680880504223014549407710907070668192536515508893743628407113732222825504707665896425743775014083701473031876636223239910828938729905260703981679668439323631205825249973991815323202131147954168929987916608703220179257831021713746784373462362424935559575406012358530101409172115401983785962105129463739093564447777951533354050445076075248341593123705912417424452037911087529664240503168136692746115710523757229096882170916407603410580995539548211392106077071028941581331223656085440817559841170241094628167554057124288673110748705682794423129103785600028140970184997461381931993802050735907162499186119746887791043937539867275471981003863441499551899940828540370708292515613591876472446923623637446294398746997878304300394537745057871431107856556107312485928231117320411741298738170795175481821795557082026787946234807752829819863615635588180971142976275474447334424795500613786432643292271744853715959288698789753487714965290265985075667212961604847812519328404501171641928342632107515256721258154259857465033628229236074013353740297214348351414428629466343543126741611238082974705722909854751103593096297909846647552577988230870612049662546614736150350985091592392844210122931013225807213530681572512517129053229320014538332378283998234922501237789085411131969289085236656023053189405105773323791906697582271946176613872697788530448715032851208954801221515843211765542797205696370428024610624215773913017093480430105295019702509112326999126874746540438352050987584294111667357279443661779429409302519572264126114944981763613166029106585769750063277943125877191883239601128312870463753424263632312361295501665776664133776876456456403512723546219667763893544422374453513972138002580104381074396772592142107832374896958394674182175502751948992102675050818092301930635873915474936975516154219297833809368066480542723392040196682236627066508252840863164323845226100236732782875456449960462376747359191416802667927264365060870825758933538944146042389216377322124069668159442070189081889559344235453088069497791428499204413004340724187114994985020904741450766066139508161348954284743378129637228954513474189362785016310471615906023117150033760267893003425933362389349535015858512306263735336463430590790570176551731595951980457663953745199216531499988436868585296928686738005436718874306520561058158868610548365975863667033240308891434335083506504755707617873001802521402840488231894452846672028830178741063711651125720850182520153921099795341698513859061180385366218407344026238054022917631780016808169738781289404964430345317540156631181080890658422524073158074093664984893468878567068442113085032347270998166988231601918220172367526612175847589968060762167153922113383658176450716176102808249328641730300024744598487248149342390408139425440567967511443879411862789603680868965398877858073029134900033974121078979475739588010339624680190025288516741644636070203848263395072119708980860158051835018144813299336954098894538413779771031589110532246608154175022347834696515443316354139684195897609566448322067037284323861947368862136912459742832798569732754050987928610768002084700871852526319980671561658000136770713511904226391265770289775852066622678904268078439782916290192913331147962417889773786667756155669149647723687756825028864607600298956500759215842003755420091961339145862093340489569872598231954117080001858653120161384666601186672423706585533353902776034804924312473487766102489651867695649268543630223679517504115924271153599133107369745918633737749482859572764492218423921558712407341505678879733163128617291643841500818193422674174712435139157219003923056763637758395914259033218624002206628272744772788118212661529178812677281859027148661369504722104295156384489377244551511547252934818035357502154182507251897973943479594877383542259924964541380269016819350199868026688970927652708058069517018599268151486876204708147000578701611667798968184564150705664005308565024732952385371159371681836409068207684081027207657933319215879552657819056241367688496054394828369440807970527342033240921135606251160733510386706717704147303344748241425004458299915272455013847471465237257297846445928360014354955025378747509700638538231038044542730760834725582787731351202780663508397556937221503761422801294326858659815662523071471315089382372000386595370424247110486389759141305419650621067251042018225803856053147710819170238502551916135288439966179066758784673069258622168553420529813326899309479469320322885796142870830958847258817209332231842246697868481824599958227567292323431864659969442758533888416101671832249087838273798162271072842300713520551321186034378971799556070514493749368517479420133225549808630225830189790534502810513864267638097954823875406317009582569017459563560564045909103831413130919741532491108929795674714958210249982556472212771498377481008620931422257823966000105194750442114342128222322372197042556628672317682903489583041529361668692836534001315643424421200975187972153198474335222943967058588039464255724322350762795474610868373224539475783801156610212480786802073924726646080775480860416142438306092163111175236433349246551123268502029169817541223535947232614281480449877624767481296954369989924083401220812906262103066147567579978389009925664134371409269581358340725784921408057039249353297581246967911237041593699753323958950191168211223532300795693998807456483779947273828584548071998520523090800240009463795258313354399741675143476428897787307892005660042174124100545470363459616120414963277666978417001182211954967133188836254399516057941710557455467235765266145409745378103108431372261672899253492742844425879283816862689797071867606232626250897411731908643574677882759616938527858162324658630828138061496319789901654452425761958839914114730079826445850770471266792363968557062451822577526942107420607312835722776918416700192313101570514352148470793054329689327262369609751486745554378182852432881773386863422564419112775919762568953999845465664884691488619985347624836418248108446452566004442395561623999017988221795276389259451358963175314928839380129567533739139816006066815489939420518308054067291857590660173015519106434474890868933549676068080465257701834261585982524254725435488646328865878778295881804280421658343526222920379185298301543420099239561720246233013396352582727278494275165960557692264028028031828028757121340320917625762397872537338434437874814584252870686118250624695333276421248489599521036644742519158244561535298876782162954357182876981389180380533437608132122623681251751039294941846185290122410507064834014056372178474541502218200872193746439160020523628514369682041315291018159790549191873983380411462883433604925508679327773719775949700115158253099387923554565310216884077334505546692883505866762293583063737765272968767310733858363381769231831892713796023641493058518286506669511746193071214046918801320153781044641563442004029867154780289115839092627786163902367627362499344811879327134379916199334651678399130476170303184572821299898485690615825842472328586026901119968214587104707564053745286485829143142835792767600257677227915257403044888009503257844457016586270960924427596040017051782215391386898827925304426956313558372294016868393002686538380289240356380669836102897416334623308990893879685203099835283517547421116632927750285851000686399961802061472958254794800976935857078573084477371272237949598502756833400425642032922561818158047498832679419007546833992627557134625898431133079080670424600132521415971614888915249546776417451560703946689168858222641675557067111377088092372328882108974967440265048517215491511111510510751378458055294298524511846925893816134328667035484441311139462202282578723591307376773581522398827611473628932626027738362100216708529186573080092734885823747271803206332632345182997048016591670544600198752565915863214533471141480864404175416253651377780663022515083733395213711657586129264919202075264707602518400785521886637080575096518067593529721192060417176990608134585745053420063144648362980005047105097026977941338620718152651688165708114745212407814787529619975936332452158663221243707662337794879033560008362294979697215417379343128739672147792298325026641259698586058983829160983685631743486313275672167777457574737693757221049231687939172954435693454159255586237457216473722468375727054303229395074216933349005091056872902490804346214617481521770166086291269902851351470239083876957750141572770110579014366226233658310350003430121909657012489080960916900518433359873887577463786052419428432667567735341469542282218302044753101005751304705699928967833071317399331844416477828653721793598791157247970786462486568611027239590041815692072966032755191254674466745132871984462614519421090885218912391510654653923830193587287131650800847032756347073800926366065822079316310497698646764061583302450760974929944821118863830617901459917388269592727099235916996172020806871560248476747902048005963462305367648413611599156565188510478568110042343591821766062118874214330073151408769980416705955480934764172923508835378281900046649927560197932729485977274974813201615695385640449976234172551468109784798871915020765357602307019112318498792553894004189456696935599382773806877480633754372823232697486480763292195788941400863727904639104436054983563096480023695445882690282362910655381954949557370932713256585117493061188946475829801886827293876535454372577286626588107521309298548979316757937760143312687360946273111616488176278678716648178115461175075802579230383632060824447237836995460175877554253979026894387011914452061367891276316379112959293080676839734520091373284971706431832404422891601756954331672468315138277398821345644964913640710689228530420487751898069235370146809366619862980875515586138761110033138620729169982954001962358522542938908705428724234608722837479389106314306909785653243755929348411797107213513590929799984081059420452418390318285752168080435637446688739099490385906189336069971925502164809968443164979397415645109736498078662606224659709529337988116425906128742262163244245820244494575613644726048752378960403726564567674315993199441044090773663014192425334201422142097680915983715354089812275694585115808221192139711789723808023810289813916788078189221482280929250906775611473406415714166327680268130357878135086295565009147839265651136638424633447938159736265000812562359208529345816977228182260983638515557032888278624043299750855576554701055260594760248602958788119458323263399320425434398087863340859427762327681212424416809318581252814299135018309801199414072326748445245586312817206184195057587127439934573746662359655443236027554701298555130067858716294586452030947654331956508532526451901164906261189305912384429440930915957910444679449358353081922190981987530891923576602377033860878229271573141705039499050970069025323413075994930838780020097038384265442088008740619174919179500684047508161363009362445334689380807988802732311717487793049869939141922504250059081980612270948601656870490550323554701831005379997407213935321666729673938653994667633910292151193038972359124802292292799898057181476412577290402859579215534211502452084764566046143403901294010339109779601173573326373454076594870614050985481548119519699663849983150914155829176125326565845925187893010376513597875438020376765055942530844585452359744712402005104914465623913880338275514889035748401701942754239484328401327328351794250907567908758917899461133777307519730615123672089298098132022734435227082229227580071980745713646424292228085389638746801675387139521742504953009512027538831789227168505234878728123829547231475164753311647753321081540536075435905250625458576764693889514838334184888521779857340045799226470602054306968181713809861666826924658297730431457682143435933695729440711515952556308833768193040936991956687513352289267289785025669469392878452843702513391894656452314818466140336561250584524450081700645237533023361003021755255560901997538710776452875342449868271918120967814132407864713084064400239130562932866846817075162611527741558467123141237947838216593494909532623762932166045855047778179807354629213092469273656869100297349352859003453785139859007101783426023840513736567873908491792406771264938617860023743472822598550799230789344922734506367401159074479933910473647520135022149218665552262189056962389201633619244568614313425405424145480849484413583378250103559406609145317754146034449589108325725747144717334084486158736768180879242568910192553988556529243983790577063324076191724330561259208946599718105136264658746143009445885729594188621178932806521016981751797623643506839197333070241744607793545160307859466475491086584284114516585659682678834936515327203488053097347593768855872219370934254626298618295915623679129007240360275806658255092673726762510770982323648742140027778762017152257570579196719912129765294504198629063788763019750324185029329174321002615308934729686418740419283475848234996397795348811324413125753341796762533922760710481929129063492656415579678552963331069253110551869777819895496195572975387559027565867307928801624962019569942891198706386640483513128575540377778879930185452487412815077675829768017593990369963122262895096661891874045824250492281377282851206437900548113597313979444140660981188081036676742787348287442784518847150216535888382329278124986175635411931641313039921856704311172059398879234244899019665153969285429386078041323954677832161669902633980956008883824723580811795461621424461956396373617174759576445907605957348921218995787866719395783500257558389191337340190791916243673641992076033875123703017737745958151302362518140807464003475760693623473707108576341215776902949931013609162527658040186020804687169070430925366719093668283744733062587307420322951302380301691133335668652920606604352139759891135004745857841877091854034104768123926812188978520942258142358493089966325677062100901992508036745352309067902281807522030970523085272765021347079970597730037412247463566054187232902245075968468675656239358759413373234340077913924213175622266653801481507873782292751486127469273852086578541861534697902606452212635903790524874211078864250313088776753182317526821344259885299290875457569884215380912640100322617813536328469664409586256018772558118094642751556412409222290337341025611187161665937247365426918821893529500312433470520558308941247648237613596295062970009226646044365146628036856147318704941617948763443074172622062156968963097413020309483992482607154052374227618887359600163182434918999028943943596979059128552576047762369596608021193295563339728446070633955222202709873795018146439188126141884284757861193577403427022896556311094427739593881936540381993310419822405177409480588756100553300529573666180969891668523152394465649784368697419569389824027446447227518338293861325847300987888266426326787954676941372201612264692914586961985379309942533676590606941222050146812053639348997745377051698718047660992966265627252719868515402690300473460142332463822140432054600935242725290724024252480094160146243342852862785443188271004962788896560318403951960105706458012658741230064749996960994790392179644834237768802142593743460947756797187508599306610877365495371418755544196611951179345942778459837775511525415750680925957580212157526653185565352392140234422220155159521051673333847526813043685729541723463167871837786491557456387365643931145418629004268921534265459265631135507404203705262015394802649151364592848351550154102396824375913056849216309206420496247945415280448758027266608878197215157493663202156488977138849479574399671192948371705686922068600986765810388349428573150809702307174926876039677144280411023364409748849723693261391090453952065884367245504019163283354655018518432713719607223846218572919228848547754048224005391833917033536822132291435051895965538772368141750136380880693039795704220320829547484785027092717719716555293915421268032955312694108013212865904151555555347301801089351417405249792066036717497986336057462529399077562111764026843812461178240785070306094300102358126648950981496552599286283668802168471577118705089244490398794836550817027532607412746477133217289541255100320413471266056219262000177069508091841806424787273957969260118809868901471807207712179964776184385624089856749747586694462027950126279561356291823461629148313535234658297782372283112142141757205073704640087810638358666753076966725980982724254136044616011778701140693325296625093842811244003486331720360400507117182090270260346593213038009158085429157090581021918481875473422542103721849343337550386296812042053053018211556041413330030207754756938630209057227166475034246981070417301082574281086508294215633498692867975548646951518694113228075153851176242731015079838513315056293954359117754248886438328508260042277709662348229049852854005076615091541094555603199852066762131164591636995134057613912496589005780194570467769306277690404870932916417011983873931142372315029417890705710648874207638787146753002695182235117921199557881108982540743604720113181056994251064923707780084719080668720794867328411453334288186561059509226384396840314543607025729511226435092223263468428947635153192743395412413033946366302081322891049756871787530804350839379498671476959388334932990216024895348250058454778543240099171984273990926225068868039697563327665131148393756666164152043805994465230286839640490904937456370130681077242434164529134949832064236011418922625938420648443724277901702696885811983166631723138749767860528276505627048390188467411638651641686949999761139477777412731846852735087390883575712459093118744006888840080629380846527886829997837088175043815647814360312030621292391928642249377669598054439808701483845675423957224967023121994780028397380667074786486406722764520298308528214096419147961034216331297930005783030676349479599203139879949264454174538768565024205212297416323466915229294285194059341217008227182692106214230603704712790858246062624151543828347348550032799577340925414421271873736184184371097938184082513588220634382930771659795580868517038369551690458378264852465499435769983616379961979474281019548792326198562644701309081301529977912105339362722389596561557193605298117007140421343059537115977057186358504400217666861785600333704580464026843888811792876153162999007487714587164381557517329559439440939561435208917840844302725798583608206926923798321228009801294415008815284452346911722030196134269760644899755040488380056839735480118135453032810751542322358483513186255856491905236271214128434267554902963450870128014644485176311819407983658967247003423105316749574811803108651081684319637052540844751205000694635621138058057390514102439312207114009207074574995803621133523721292746311279613497329181124245555930117513175883685764628670670123406562921193049588516917098264712712335555038085241518581173806766488126751306960475195618605555770263639060935116622310038806612105647436611513283465682511761023557520252387470594008220960058531283755564387162681166556826752573427493541421566651988699888403410140043021796219121714054064696352333730628813743365754911636691065011650816473307126372612067779974572737972116909881556900012354542718373255777017236174010985128605622143361626085683013208531922672324087472374081403137438088565405877286202440726517942155013295719010617134402070016664804748552853875723738053998519594870901472761754515657698845598774166747894309188406617001309661945684560777823792963796005267753207191822545470728794647763701229311694297563763943675504535449571178908410375669946146847938350422814644568682043646822354110010692657931885898020728379999728320006531002699303419398638264409402219680498895490332864033500285224990823463653843589816539164736960201627794114985428294319574402336847710942955231210907419798145164336958374193571087602687059492101999893729875301832803308004914145258894558439035069157970277606499192440105483308112432454953846747522175357384467580171081821632653027083734176325015968832736167683759884132882878391524679593924884519937259483788240309668993191640531675890320736125344212388001188220070942219839899942179656692851553354725628233116825320117466919615989354075266268470057435365794468631214592165142205938213798686189749343088950350663240306369716021644855186768917091533867357387238423953573727825030112577986347685429176149008402981901053535464784870977232723019169346187581148622029255175849356958467383336511166197870586445802640019471678658632782146153805907606316484154922991065836843088404639237978024226804182857381529683605232795187050932465881717919745612658378754741703869254169861243602021181908304343925265613910659703055720374738018874104415677908534785445673172739649371441843638244692627507707939227208737691468708052419278257930888255901759378028564974609956871082287966758634694723016714596270658549366023729939792646658629193869911530599840242881494855873200229052657154758426862291518011756688761324282114781633229611827938108945128565628382935384439718187558347484018794477993878563224323769941196441155086406981584521072005293726429936670097148470918702860086895552327064922188165787633620575499782540471407441485143377498853041373516706748920849002633659219776107125159643542417187134183867768980243220734835612569951525632733355826516827431745834447722808298232643031626415503875345215457730065285885843781509489728220107548785488934121704113708569656232693069721933513233544599694198447006896994994790377198819902424693347986549955433980326897991067689770477443733012119124028261554787739365204621448443032142041538437414105413534364645879821504707237144390466582934100974460496630960016407862632497326518550124111476632891577289200262585480910026835907640339535992837298779576440339422203655412586839672289013568331534801111899431375242735194793454302863761204800055161499978024017414981010191392777169472142422626329333269978611273705147330963578406427234757687928741688718419126828147542208678478239990083750332236773083745256611991199413855053714561778598962594953750806173814374514318443806277689999251783398349144071656986483776800110230313008877258396082507649001807661929289753657789138152801198963005333984411351090737709859600173201859362987676760269707869380792030030504820107570783745247682037763852058006054013405517712884678669160111990335854599565730194747475363025798767874427597919712696036293512911006550845376450802978632893217607567177177283251520810773343594138452132117968714953890128883609641468252548422168939122324889673571552886902014907602582857482427873148108571924665247392044071048117255582900732620968593382478318672280206120061558759555521044339579019613586154283605818244840623670673761655915586460446771940994261184714844982334871842526598744332668043294444831806842200116737874341202082940223927256296519114192966688907538065087762649099601310825858777473504734471302489503048358578751502216501860653561143282549568176966819228390523479798484211732221995089188647423394225334421363030271466637160075736022467597413305804902837370983298949593851115427393502726546345556063484537936082312560961221719066367441761072675430342907235246425990974133520700844218063063947042459349462796962770674539417110762313432045810163846514657423832803158264494122702933102551090770283942765238941709514649295623212263601293744106448126011351197895520933491942652764785625090447496694465702639080663965756370510503194447965131804295476684211703407628582574302141980749207301864317831585661019289734709366339415540996142658898115377759071479354586408698547866189540380357791118164805101289361955710752389813210238542468500691815757791063832160630708429346879972890311869201226347520434399652599792771144524443046443536192529721212475928363125225006828665759650090427099242977817568351180168209545471072743454746892954726881461346130860296973014780499482216198127381997180732187219155906251450201689271556911206948317468473956943586334375975210303286920703766803785606076351441529700339759168543780742516235032758255310418087199289034465934096903215182875038316360038638050420154265316192041848946432030569413974190840677668943434928000108851916213668127293125226602176544586763493482564430244342197815318839841947560254808223708308178660862063614772627739152742083191994388303987781068730037805865766513593895152011748157583883335177909891001122358410399318584931260035815213776573718430724464404048599487241613045822859799805970647802800708223098908633791385690710083027759093093452640041377075759076581240123905680196539498290951114051357293909278359584779318883010903515122005643583828357036961635622988091528940949962443765304532471586206154274808251212968203529910619746692195720962868918652725507731792445202557398478506351538224057377594141155851011893496065537887157723881178769661285875833355810639897996407293031615954389948407355436318578082058151199272942609968534490040665064723798477575295896174447539016002204395848413035613957019508549432807817030158901039857093272300664032727961019084517205256168849151870089403113172212994561976652345350255094927792831778494347823573551534272462116297429838516068114096692775821192364737032486976005979511766572869340213556929148241940146774900526527485241059722825175199877631627750458028310059916578119902962838091907013257608796258640434623712897848403697452502150203807231289199057642689800445005098076658221288872705401287868205913141782122478562593686926089895480984099232519303295831069233826616068085830680030425606955387289224469706131870014935885063213697088501721779148580990226065615611681598024053031936038320222646952167188698458026284178836307573083908789654294099432527856415732253314526980897273326297121818360497924163646414369634767330830585861672311423530229419588686644749739290498768526442252764020647120155568541106721260459085358302433030453948687901473250269429622758916157329609249370288677849009467970088035489715781583238302213554149759340223450723959539717040783424623373909691619812440451556401642652657910067161709659396709350567128125111297443771763240333127576477903237137316606873366765822597455691461128723252108397634129334926735601604711870520319777367067727886977217205138670606919426783496685590225651658831470592181961730568999152854311279847728743127708495763733043160992329107549484634004454953360112863997575348629498104195970168006578927747050360018082434565498966278821904206864839586320623026215476068368288913385700194036033429702683554852672531187538929309807376350452786254644365912521664961156772632632632322433584001240249971959713100243331278145807084430859035404587631192412675757752246562637322998003944073827692904414281007921316668894745687409402950957395119329299524471942979176977209286868208618163079573373763768066538358754279306942134365205661347363825286412368576701181657846076908199121710481581786749060791395584199039245948888494026118024685996564003427291431615702225840460569585059622129485205384579043191862876783878789813104155509145769404353647715367480874265115230852132429112494779008385817090806818060485449797826437996882001713992079281372445798948969977762162499662668029365991249135192818122581078550796973199989910727546384462548816939331661147638615340617428467327169438419895081337375934058128566803755457765304509332485640369310526606239409469757616605762081465882012787985417571115164805258507117255043209276081853674720984252232259861644198306859332130746388762228070317519925517500933797854944914901583150764628636415127199299559984684103592896079646618482567816923838656883548689092700834326399956282130325506699014133574797905755855498156583525857813224223847195018549864283333774466894362433847724212040576532489025181788886458422356593384879220257501988007356028043732621588685484333847434082411935803845665440075305779956549143964498912549410550283457535152698960842865766130093704174278166146472366684398279254708564267369384590794846581829837138698965595893110620215932398443822831564585262769048539478020462151545360021876762151999496194005951036962800512527165687701380268380472331951295798457276315702006609739569533076460321853031797551068619058771683126842017346632963461112540745012535496376103844854462803869311815778416251539139526229073301129803486666143621301667025183533053825657656152265508410526802568065472408203096585328602467547111383515747564183358722103802027839508459796520377155593944700157229994851790162836770407346451285493103638265336102238037172354485044198464284403567253798174762964746781635329823167195683337287932663412573750711733408001006835075408126566474007424109316844338875282669904345876820655421229566904172841478925901913675418379288618079296392104783888656269747632272980507896450903523579173318183228005377275247837627661332443505321265337774903849989521413501830539665211728353665833664285457639122846298431799433122472368955578721766863002220302950370067704976199620685953661020757322177891500928854955072854959882383964005819674902976841311827901592127667700216109418805116976663129147336029292951837126217298369619026518225079121257181998165456754713812660796612055033976787133444922169059663110811185943098326282529096418479018662643629713794783574669943644595608924800932424750545092146480099279727548731986866754886707159867685963909029000268695542620223314048947584648405910145865207866083525148555704030698280005786758598735684106977204518938842081797718255305631102884850692343717587827986144444269894389798077142066985123455617873757988689867018759926397091747925043386565162681452256599188260723072974280466426467339924725770000897010428257078118512069806732333528189999019127404474325031205273809752337399908843877713912934321811591416361676430210619850930356183913909996495486662198025396147908124120830692771194689479288122060727922883747854462756448451766107484451746973634534982013696133082452270135293726843456078872285677218552356581650727353837946168738989099763334455941927495781221259651370536909416505475105364396070859307325685457825071470925406811351232065143877963288181005264564105157743346280247891526297967214190568932157153305224554017253516033152300646531930966503197330330659157222188585023597519038175178982455574081658723307132336338556591475064297976180415245361952709519778539360771512022108594270771483928580233707689412468088993625536660029959151450708322319623615866458997771004726704400654703123319661881768402228276937383302294523355476569480941819196248494615468567863041612396920714125478406411632385009841108763994888660952391226294585952060700597803280768888409113823123256822127428681980890707425731975406278165434487444064774890277351213148964052439165074673759822812778637107195121410925700643553647637809885133626730683165295452340669432462719736113092055700973690457216068025131929944001573306303269603387629212892583262801894696056510571090893514564826009332300876850726222876489750590774419267268762040253305219816792710350885028980353659089552793570877189715784568987989166713635689033863567815435478443743430172832491624273212377616965069373203371565482658573590091886855535861655671585257772980327936641832305341427736410599819581331551846349602551142372647935217841785799393844448908658406854112276611571402671711256207434976648520646011025847483515339314511893503787951283021095782519272125189985505491879260159837122056189164065023308558561230352032541350849082506402201278219218197818730848274010225909486121496294432983083069544166816671226464264677645719290192975710176678570789420884861325098328266426596731161120491309334612266447434057814372455232396807839008895776967635625897510317446031033876191411403923557451620302394184447803313599570245259358753810745371023856280856253255759010047854321072116252567149473016383975509551848114094143815267778722425475989435972433370102042575548878687288637508219813616960383640303758710535408979976069248043853206758149998402945557200801336190198125944190491703446925577841210300526186528587338701552257870618875572340614475785704127576484434197620642664024723806413991803656072348181438601195963220518002137746641499761598791038116305251344028750459405667594483628139651075919978302090381407524515113163321221001275699324743248746899330506925295508180773500319006060883416849589667943932152056532617213900927264706352989622047824333633768067547631920802148909215198824595401441824591760136612493984620888754560932226522756475958733715262584263666002954934373524134486831652308471082879533833746691385285091430177620529773940831174297229773003023916307793227397099343323206195969375440532459583201758874575371221156862862428614562276199681822188671318752168909411224258628145495033772766431899440063095478837800222154529751409721338006581562517941188712559625145238062074885428019327760838066973171098164588772770924295920423111549712945400066297070682929665825769071408315577632732441293464789312978167013240884742405078042135655870380481763808691354962412124696699918913614179034779760145646711228485622470173719728706087372086250493358394331159775677925266732937204531416591568284042836092002357805247515429235056575878480861730765229703870644763155839412725075686674043107064677081342177816909846213734688552961084905052748344505219463269039927407797171819448561089895511528026018637422306460776698710568514646815144715902563301902675920377184491712318269915375310757762120047905344271265586889433593477829200584192503768916188017852082214669597597922301548150745146152172778425578691895064055132454422234200312178314264204682631938623641429419894874227809714201271849050445232372392289520910012834225278752450450969447875279214421386986231158027488756508968599352468288722157324055668649589124787766229637629486931714959474183509888894584034839848381903494103341739799548993835831021586603483529195123293674083324855251025470236936881973244295645486471571358642598558805328830423785576543878933439898167017806409093945788824641653241401555935205289672262535439859787087396145633745777834610152675822798567781587386366884156238979335268771772944527087324977018232716370973796614239226427140884281740697561347773204402317463228648826539586215534965384278503563488766701767528675153580258245043373378294510038714626697953944177096236928644099869005705836522909643515638478927969298046227990360570515156696709075797961785791945797899759256206200831837649409292598249149678285443008765145165342359731057936354902001453815081135131963327002861745436731869786423902056733687675256781356772738067849828827577746980476812720105896203971111036334024228239261388538568337669565691455912189858307249779864770188493895626154590057069379978807368389281058200460425729733204316992551337694652370974373653153892603172030399009892585895857813767245921669063582302823916036874029446800028180120325670513135829508623465352133773786343971675145778496687461239520365254613480839313655959528112068328730131240700166958365828735348753243758253146640562723069527347228706653095407299231426332269883926641447490605166042974642591766253005579082742439386174863243392306365001254276586831185036229846771933305829561954905335717087324758743627429663539412559911417639404383178142237773599979364408052112868788510695121512558499424431018295965547029218819601933081035196511337719932079869898605002194492033549370872244143495373445838393570825393919800005621001065946834712331609137897051718881616798801239134429475540991495949753273435848002129308947844090027180006426892818419017923670693727863268518869503309116365153345331591089923089906214881420466233706392658983124661652801602986673763266200835444971852424952797207942484837592652920084731983139260468427542221573552403075715594193190681668350859607274653429236662437263966438988172014080328825825177483888133340786270328992144739468763519454281555443441610417239243045440248141721495762058028461430766594722957827395070909255332868606214114962548778934539692449239093468781133647956667596298424800128750553184320268202375945712677256273763194030979386179869180756005610604292500629259118743626621103968439641550056707470623929199182194525509983608318639958419016993541486930726837128487086830172621821309113552281058775520517311930360430961330526799104703849650688136742943925877405690211961103784133111523858569025880422432940277399268536133624229129936685388247818747995456934291003079378428773623620487545525194542496571078403732150353782366110542718393908833149889699791503050249762629561422530053867841306092675437574118716665939394033445037677471454462898393061837116692218517189762582478603936505103230122176796686571773862076307648786685990725198989098381279459958390349387201884561451390625207599368006446547664972704248889485624620857929290487101190717956077280497263839523471909775575807722328222072682215539311498110984579118481144844861266053473949282078983269626011947747373274527483781391503911682485600182678210175761946081696804629252856039152398327691112018556922768714895709139847037187648989798806503320995809367157111157414939353419378446725667559533760658116829231092307860744869868213374485438391187906630232249887112899207884685602394568880191729662278801848768930788900692647220762186246449317090225590916331349125660728973963082567956092431616178672019099471125037678188801455164927333612182460812215870803510383274904463386910979455207194842464705474677105574966656249927067754327993350050912616812933526680452639363765353790876013793210108034038202135890752288090461175858909225786955703496576040441576523942417526870410115735092283023904413707351707754648088223801294360988135053658575226417869600203470013277997342523391715138069943788369430033928453503642438246059116135421266324468706700898680319836996797875416175287067609653304745880816400113587964272806627687243442507797407131355289907960107510766401245893802743450469808253200415322788718372584201919511445394682501492406014795456732290003383978877373851375325365500329118637795913756367637245775795381001175896510759147840446997981129401524055944573342167296667912203239176342533575641534259795428839304735607925824073336740193288774527187526422236415436747590796806566558447963441746523140438735032923921475368665409708205918239537012650525536517785259718501475299539588407951258151777768967433322844448614816207047485722741805258359265752824807161182044580224414921578297913183816261252485092937412221578870510006294863740080456337918208491417981749044028151159712416522085223600195408644159722213193696233252645513349538032487223361080431284578069182754540236990748185143239226832302196404936444120013539924456071533482630377068131578555936626201053381160992476958972908530355892376754407370017572113315676820272537323503285701355101601235321186068402632812896767788591563775449319088331739255283417770190823501023449083190616204974209626081642220523279592895618390832248408240289048411891899052841533165110102496711536684522390034642053905879004898500889485640372865651896836281757298628239381295131139449547941463198695544175918648854208904226452320635544850455921629220809844022037700113186022563135081667461885554899161741159800339799604938627972772652328995473711316685296683340482245163782085059836860480536060064538964403858755093574001842377024289628648502319730760017765671682622284078983949197780428137443966872374056453693859899821449770125723356053441644889379207201542623530356782303208102881766955438903713524834789003419589128170557009259514678735213416333984078215092793020165373792923252192451405188133094661307389853327805317670711659381838510307765757533572276631720344139301711502684474352817734543912324748801876921626310311767080431858919179578414638798383866338249504418832193478580444241092772420359503148856602272260523240082684954754690608061443485578199259028592935176945733151605844900610229548090542644565580156585502432419559448468677282734508352409080803749133908959590929827546036207215236135998411230828199738487639964325784210358206238947583240437878458459967208100035588930474858898619460002198225907375903589510518746780428275861803393248990010692346337058730786867930815647973336665460101753812171236265218357945747201139069996289384892514019378830145883598857946288066336317823437567702171685275045323404021938085713797846569975323794944129122524061712290947425290930457424428424042769830607438194535143908771896689023421581628067730818875599026190688682963627523777651322171536662407335803539480024981296519113464975958578169771426712625039804026730813859308832689027430466490842902640124889854226584287901072919242692182782294892888372365341298319032931476535644515510909914664252733433768043995794557877038907222026342116555070450285218551302558946747576763251102024819912034037458817693305880134659464031012758563967097470448897013336098314398883414608699166881389515279624953235087827722223326372572074129281938385729118485097689500986943180590328731929394538292020799763622459487108520697170197779145542221179237740250932747936442707505287038711492484689164041791172552350961078286010424750422726277667709572258600953282554735200865522700496073636964059413544522226901674663142352542843251877753435576264051303968432586291490469594215677691161780574993081205106889389376479267995220071988073609656397320684479096374671299663443657322938157715732645127000570971487352627874798570480510843404816422472943526213457687726945052712810416403531707618916613536907477441964478523918939674202008399099726114023693532188519138518188740621573759138980345322445330781738026293592463409423206001163594085216859933203817669062637954034200489627896266044442557005530664489115613598369372714230729573596636022029824116528724698362074417163729644502012567955836711305495516138540417384184146090088496136322464117729988233252917114082846121815199516069473014714028813222942008646126935478074813455116303078689166002210026623828850812208168674573511391150089418780632947663412263348921024426641332995660788848723136658271295078179824338561881065101868988686863673136697306221682762753627236476435107529386680670868947662445643345871170858812079386788562960354436829905425795414560122737134907661789618895059406796867989184400736334013565534687723982483497140542461300136862514395901755271448504520834977894371440028231632035665150755906816605918655412394141055593633994977732987869245963281795837634831097474783078572973347625110220432031241736425698631513107066623449464315131762802867770914331046401503714403807235380947804137002020130772920144344572930324888597507050693689896749542483495284503419299373932750881997987405838035334614757157366330517738382078745550752563928961304101193116502544270616714442907034149538245708210529650592622721731264725884318006698748760038626224507372339089687962637126295416622821695653757241966920962306616295061468711151957206600527701775860317803409499941646524808217467841986200742045138951259041275521965076102954935228695072693124049395436614559583469134526326139524786974644139014609723864400021088111834389014908550996740460532178402231248827781777177411573426483306435424425278880443349167010519162017837587831219195261604268647949651872540858624871442754574034284039403819036040535027040003072421466172101753989873563243328108293454430566153488200566371379924640745092502555905762390970845566403108508843606521182961946904708733548244582016964131304367207238375768737385042861029614347658117924188779971626498773091692240646047331146144892660933392969175533140638065600192868131170069292780668597067141157407559285580682258791348394979636767145157973152272730552831125586094314046491891764783374209198741328806347458602712072193292014624901529167131741245231229869601896000432222199218918477445539965525188977039057585835432572442513546465613969258830733782191012463540267814926837567247562819640861981184221005054640479387886406106079037635879038367294399893327510379790134458905105033701730113307050851630449047881815654013026263526057496807515810763566212930752799873406701212835013143888906520078613829106096411080296120024744448518837770632742688283705708905880065059663164592944408952758739685497714089068311419802593156317630652216929288218695024532452622125074764654549954096639853251912749525507752940556343326466783250596594290880412930778326094762383210086482944654828106590812464469127928511077481392921469699240066250174437555563247261205731866164323912554476581241956135382099722838614459338129096417553275889184932516906862037321321910704486155706256563277562997590192266379339690981342104571295713000465510598562695888745094847535183379990426365006262596617440210633230814332370936559290519673320829899864008200384180961005975155427734023515066783214841688458868923827510106937331192363232909358140776605136066036745750691950412878817275909240503095154802194722934363770104955608775669339285220682796816669977564636416649899111302276907773416005016151179042594692188931848359702343377387483018700399948519707689156356224507280117723889273556433085950221618982493772737339550456191578703143361760584882110578622935213369207020386485072769104686998436566985412960031138844123613249767592308394251504271464808236586476326994203532959303636317797896721133903345953588948888291068754162379995680219690771388492476396637545663780745833349645465084040360967323054578228388869126825645222837070960596149943360374969461657656342353445374367041160192239777459266900429066710331453915917408709244655625238838439701135391956110194425879833135847292437399900812775661273082326997363371639156465873447633584798732298606291351109267819501744844721526968527441402759214903496293908555001784466554161277819508706047728753029244689614851316546450201752429593442688373901547177491389315150742205829439659491732687068944058993436718434331698431529035608111220513395155938865225016850809378221155722447277876552905522248911688660886923326621668665725294969602252043180353288585942575710677293748222613340600373965745321511402399708902126548923861807594924817471693412699504428192485341507210897007274203888572853850211804670541967780688040014475986078711699067140966425280115512907051442638135874594538702589848627926824934142026816944620434014309297814720408270125493828884472106757068849127682617688448418046508757718154748442570332821288218841515827559600410213742912291766986138877785086632213406999686528571706790332067000887540752713593807121967511500677927904194245561990112380185766287033740333832143568373565387806603830246823671051829621531258301944408756338629897637404841798297673943016855865712091951149765535645453447767831691399479646052746744101635006556790872504083923858974463140233023039630098385362042671159031919760208960294548176931975854504151998837436796099953454768253600163353695672335050076200173118703789408180989656560452984955619624066966662904777260204254036226140035064443048401587537922247600331558525638827993896892575021818341030503737908435708393192627672288192391980237177277207553026106459890286324068454539239223861899273595558507315012106517627984396756620240449198793359576554612081800534683174817006143424132659044053184671254447150405345755948586959131988462482062973239420546615086343658282924554401834983737004770634346726825255052196990214055532758725601200953481558775845724461695181880206916198675917747037611197834630505142898199482600767111038778877297275874338241040138562732384749002685457036547328200708209426374113412444180801409609486518217067568665568655009901168900765012916708583803796201051418127239728435979054200776697976668301328308773455046577215435578719720672333285369927612421861491047643168846074561438532156147309215222851071930232765155400501266278553124595386782251447445613824930893504847267833665236544876480948898200152929434606012354935035046104148153313054313525892434556152282646671132837001525872685747281136169181429362872450987708207734218986444961812241447370727114618609926657239557371789205893210873242289779350178685973666552335069621063484842113117024351027256565368518994260808283305020827923895264325049998200750896507640873757746611857323114198544872493488725677368719430601017140559901875675860993691589431324514632942744732830815469283797402479181837818237422256877430984947820371764805194899294306266029672243530747542658476603927780075957623402823539847909542973204807329105011521764095534037471813749920079281510039406050548025791705235127269335555320766992941937437243225696777843264521153615917790473494202707156768297764633212137116416098031282788935445724447096504884415988217670267571275033837075242698790211457902397480559259229960251538670319172773059651794619612281594054739665563052205072307356219575593545384010760783824366594373333946392776647737373960543152981325577621933075035461884914677321948736023702061800761842513616374858103000540503436125830244699390180197224959875589222063701687745097923789903136224131292922007383606869249050884914736421712176458924882522797826816893984310367070082193363798410336756968139750578000444142481898148664634312478074114595433581449552333770080782479257693777702074333100255054751032101649205930236682146674205205714645352732674365361285454739820251627841834045010494081273671532068073443337991088448628194009095588248564570942881504476171654048581941037101532808103525319494770273073759754339186008456464235405159916836943428976216306482247131832881284441095734178435468610940499865514940141841196701815899484997346480580136190496928125177960928418462600368671612201216485891280306991509690359674577739196321820039322084089045252190791496106032418584121152269134733303766715756048340799011223102766850058762749083194915170526812846686512971724650073214080400452980165137497251284653811373859035853251336550513902522365435687036871183263642487893695064803962690153817872927839503463040572353724214302719776373410023914214967821433233607871611828645455394689759464730386430470696563604435551085258181439980493165935639044692498031286049578731401168104889395822879494102364726689371050285860460885760464294005136074676664367788829573481995360866546221144134511759945768006304088985707152897323140657545031525683293933894197592583803142360038012392344525671013092600545758571752335550769050834099333355164947128194003335443013390279623420007465269220597819953894214489633094378223074834609835061595104324824700879548130590172794893001088599845773651420145745453807455656808281013245212464943228163171939845679803501802896391329857933707792147956657512241754934506110919977463773808373071627794669995366952927230525918490377700904728296240587713457234393761675797438688800679295466570641411096615937316769259655034297304588865160981893267415913442267795278274928422568713413799514167108643875532099380684689472686753105083920245907067732359440411673259960313453832154015835287296642650852714144575074554596714679569664899178238360761768034158299603141554266279168517924092929824564352132555833709083281771941764530304475849824501093261817051446337340993799703196357673355086970805534216815759927168363391454732540272303635640911803931501870655134469573734063753262407105793831136861600854879490676860960304261326406242692711030726555382668913863342993412475751870971822480575885485056743410971452068854706411428690566148502682265094419951406298530214583891836281760378206871361738046364783422837414240549194008230017608464585111552345388211841541039926786202475175070775574184407279270369261065818384200018854072975632868721231374413197470860749213703103775268099449767615885639847988917841737889203061692858677558321416972953474729316984867589093615846659625887048508148673348091089826223927125520314286743082171970649954162060344565732922148531066324003273472324106523765665995436522966386201323691492278389690335902399988397875816669320923604680819947973286748899108761741962721716794845298150553655514784595064766723833554507313979981193819103489818911020940668114631913910804927065660389152256410965049517719345726850254209114030384531943681625157495533371652526557279075759374145953385920704371116310001845859086492955704579276820338698569778850052258370172477286344414702690583485140469929064939750497264208213831593663988795906483751365890341478934725353738837031049216363329499056360286240504885340586742900445225289581251696861323197424624550105653325516988842601975837070572820366563077734331816493499877906115599275498095235193372128766437415532485020186571779811242237306130463430176536837330255995172745383007623964257043469878364333798474437878794739011232614885236825511909842700700170575415259488188146741910182988653785660104570743314939569823643006879874051739014619301149934366346391575746893439884553994754003424862383192189678802103697073593793988704365482591944939684522722477770988385309478818577447539993283847467475651890817089415273767165550631145210155204771259320854549093273422043580462942014704283939593833379956473809584797352608137448800380270474628175185227051824421737503976690775756253974339893404511157636798766624072796670188181049348130268182230464280532634979258903749018314180404366422097201848421944202766143047244545022895990894879599054041484129974892329369323510113465060882564439402684836704118459895608119896495963969243836421807664257833435276567447167054482105370232166600397481722249986624730904364047158964454766609504220728022443581410140708873079025455353238167406995293363592842762584792572754005442503015389795416288429853477641431220661415981950706757611840057038734170388226020492794563607069581564423920384710218501168078067551694367452337833477333634670417566405939931253914039826021564206588344047655729034155936505432610637232890170316840500422442006019402507631236517410977457029829806405187564226996609091959251692544660691171864933985487982601153616018370407558086331154305646714496977049826203321155760117434562552574798785523147062287907852930121182718744531289988215565357119700172542726931254013312772820603917662197332052093879107995634591589644266504419320302946980253519956864275645237326662950415428889728517145131515627800570504140886838789106066729461890910195143984206385630585530895660512438741667524421182246105248813371919072751032997250188993351155637491916620981191846398572842968629862333639789656542466510087128591563154764980302031580041349809594676642498879620536935242809833165229957276167949667765660261649606955011599499622591213787652415010143405348339650222092207205214959124709075000362755937103588514962658813499007468713854660165168872619588340057005789348168536256625814024116470535271244831379616344268874309516469190380713634695797006597339716930305654653092948167542077257854073435722454914112657648854562865314711486018529264821027602571284901885121150997514343714781502320310092424335885639906140029562373591301939138226990201640150147185585839889778361822151630130968422104463453897329040322829719941057979082938398115404485040075674801865762222095071853745596295443713796101571636451873979849708586145248506619846842115241551314732611490614918925161299495628713671061177158265824207298619952477765338821226341461682916459816650592928778557705332092871487387954275438338982760072796795620829322340514158790059100745433570005119447410327650263905800971528514266556586483045335997368946496434732529071224425390123197024558126740532098976629197053612351222393162309634111393444054884547692229877688973802756259212217158129154122548473830247647071011987465117967329226543052743402640033092776225521821799482232572838259508285445790317288489418610336833529403544207799215719129799685310792678879445510326461614407799961587559834762363802744271333833649384392476658955889731348407026832961927766475801783091394806662566499647250993996182554478743633558298295080981113011885602655107490228865598752950873086163321626242919995933027813705710390889032571387422977188253320342427595369934686188194066434623817764395470660240094131544331330938599936450634799587626223040187141599554717652490690726918018885381177410010947444082506171668317116651788668458519784359028781536031123018671373126721757033018049754050960334754598278124152216230806319601504225771040246975104116450779036757302565468454394011958724648517566668595487139688043957091118630215036492494541937422904427708479201011340644055017532235928693959728454242957244113171079559080126157495123444210368033215262403045710699709858724195765233379618212545534347044713841439456665994379473581765286567105124939150305798083683053382273836871470925683669190074435217457885318216900385607887769207774765075786497109956501347175747645004849459189103832472583502487816618023654860901807519344925274202613902122041422351640968619585810266973865772131408303539170122747366908315578648097104911854832604734798761386716905403712503899443581511297566149555596496630747704616541124414203679260166920152181578717773222761123972029189125145674811245686962000191325522798478107699152354194352250918296314441471944544966079244533224673999168259734248739526027980970759387945120557411723401546966006565218453219936406170388931174328121941854026194538469379125483049067464834795378770531449502107630865267492553175866455561179417155380780584173940164247143997234918465823371701780796821988476168373931400868009520754002480391336083970292774215829722037547247934014422955413471229914655356135329584835544978509458517119824366968061120919942094310778201556448812325946326810295395779331636799565654050248680863786009277132270759343191184030426197393974060412803856178269241337260142936955675803718072664542163078580287790300359686142128277087146788952343274504875155449657035933666056885482648442856079516529007394986375392161088374633115532267519328509470784908283136352389035989833753526275646461227725707291264508975790401966792939875100649763138794136538219743921588294876364014593537430324969342539696120338395551193960292808342724255480405443527183741284219355438576650288524786974818575745110770472667240279193279203872149125651048782449954808906232983841911903978829916301228728040575032216881560336708377549516506199543152721539100064481798510904663922241811573206491588596400825111641174264788571538259260931390442711464910538808041445077821389216114606795853145004214151883792052292098785547417099591560027628523735293537439728684549883053136432297591895971055281710175860432761562658584770460691248979750412008826902620988496156387321117664648893696402534903587958184223889626968438308538950155020789682113946864992905268387234328395182958747883361051811206209413053866054160387912950772078048345844856752889033179857646020079313995754988524482800059053777728257179093145515787015361448406950667354376296717497664168440828698501438471402192523441407856883319975684173144489830554762664837638771131365106337155104438500345313958019671555536073237638451074727930295120835792252786743664118429359522025398522342342700748785847719492610185679491374277054393502712723902272165222963951069490060353686723450380359438552344111240269044223554947478308148569142508539872172530786211682317309398281722236987995671281258641015420153212752937851901866454151650834802659092978570528103532446334532449716651752647785992437406555816784336228581884260467535425327590297868921033947272618193013430661109035946266616581683902532067465673021615887839660708282252206431303732588995799829560592397807629953239217928739375060927488644537747860395029542597111800779782722720306521595194549963494335167587467879262636374013373034671523077176243680850528481837657037879155374075912858301827551690107974038254758243272974360540430520269926162790331489631052698696208441347797173630341662424950011733579284549084669273402100671128416707135435198495971497391472155151200938915780298527066737910682936631646464104853021462513242482308465488606701461227141880387716463612742036169601748800681322771879454959198851333067051433876020462120014628312626998986360393990879420715636709862964490006053538072027270991874476449182062420681317773476024095243889208636061050687026898824023025405452224336384789918876491527712222510669832585911310372662951949184091133470484632905462028052217301357472533280103345934713897992440191817043402094010277132344659421230747309688731316690310373691658910573406554319719384653060858774165207904575483581734606646599587239134827204606490919400662799540147817488499629191397665107244551825658223677125984529585754333204341308964083937069743667072997948987196564188966593244653645755663210676556700780382798169601576122089658007107986168751832360785606261853167697333550451526619752641220107123461823872110786368228313181532873986450167871531086877309534137507089739317803449677465727581112292538151899755524249584769424373282192129392352087567522813191531193803295345920901852931304124659430154927140252267958807588903581852948257016978797932798500306898690730716870852768384329009437762715549714757493580023859334298833991607975754977796992204471441763126305399412308618945090280953932300847086399025072803201919947760019829937312447907673852234570908166825020851704010589827480462223066081199801773808524110295164713887601474522141416753125341810240224385784190257985805354409697183189653902112138738876434178157858580522980209432387744830268193357698164943579493106990375857054882864506055593001991283482464436902941486545277060859507379051460380421389239442990575581129360417610836097983607421183375242974149728395317951568124625645534626498500861343252369227691039424337417682271567219174287036295833125710073981241978898706769476904608659533408382823503302497532530378168271755242221185867591273469518947374631700480822934112151931967686217682307016045636595892526340875293320750245030379882709727358255693331279412617693229613892930232412385637840740431892186705026096122066938789105797555380434041379084650713442086627121336207305318756148771200275861835679116474454827347351444459175440645993492580425865087846441781524672549778221505185839911881605902124610206652265932234884510389750662681166283949901316168490015150440264696323936156003003341887042347306170348182223875153912630146373034820149391633384431012433264117747595686593838601495315627265103784167825511427486005068732340545467224408793204032866247456452132768793967846479674346880073292599510083050030142676580805361754613309582778122053259665385215039637981897919898630401713291907448022430648384388016927112960714240325336198887738862146082126066282315321192627977904495999220637853378498076995870949824164259105959003572219078664682995237427884919389184586986231342550524124417978054105693854083574501309898289660071669298088190409117536208676331801780094668798737951970530275094311275986440268960993838638492719646750212152812871288266051992703022956720834879382177917860290461205661995837992088318284763671063566004723101314643768915992874548979216513800075961276249717976824370608502217794575045769606189524266901233959182615530055285098654719068221003940746610340487567066259745367778884595838004065496873081970948576925389326555709321932993739891794294261300580071739544447876310097238843557750723512851520940555934345378608185033794664227234201182345768614622709334907876421205441892548094448689580553051805559864286389695190447395037048995263643113445818829665765040261242400294809109630602340740848086782672307756511343093062043094741449700687922990516393851114346907832326531340040098160723075351118313506589554107308082303699242812121871803586931504194795070067791835663241563111570718834440527629716229816073755276800821688241604200818565683449798370604967827956134730246083465033011149588861366337118207140109593594449917587133279226630479183167102012645536747832988674101640506185434294521583153299489817966153714125074660519977407395902234375543426655908226300734642305474148643620797830794044307150020014075670470650478404239814511145729935024841659695558767692447016440598917525339039834565187158463207652150900209448639760347411992397400818657963232286649027644943059602469513354085276907635120276944195638235259475031454282086002195726525689031725316867230187156784510996067642134613862869842391723145954858871455686091998408181102438610999477472194840276625313840775066707199683150614450612591147203325151298287118562491135640751490592932011580013319607616265174171931594348242590081565421598794746957534845941749424380672906608703205358220338027811800359912055597361894750690405847768378371601604600520887391310131774524434487632589221478492540622229426631120722215963436889741469476170122031668744539661697181001653184986513051414374411283876558051121672973264223805965051950286208045682235523907773159230940008428804545429771883341718165336698114591575887349640765083136361639020672747941244228005013668695518819843109131901663358615823004112571770362361714991186756022417805187978712649267038682751215000466597696885778114300525630236905969891756944964003736284617777037628143834820019997039084828922400382170716678542876547254474521960440707013603421588515262277299126361205759808504943613009135833970217199437997068278732233433064527577529779070271444096260463732928074883227043567195042559613308537780391207557755098333603527377955479270842484155135639761753049812169950748907314934936080939412019482752991425677364927997267483079237427003443114756150581179596360830977949553764653925796804898018962362989482931470906816096141866919962793035159777946516494419975606935887879096890253697285795170538080362173718677652966765197755287868074333589623831998071786860944500559515352360394717952630261486595589023583469421314829869460761537672775459696495374722933394603003153916084876452738326697321459956450112349615069283723911745410480606685525392575075107923500101114644982497556096101206990021327181886946828260462519165951656635772001592973197646524708118634782659664737977220958304054500222386890526563287984960889499191508765246004371422587672341102739493493021338860819927222110377494721590583022156824321850732323338972171901145322825739215784933258272003270160714983250009218692131495197474534006501386419946971260054169692660722355804919359205184916262594289790643033722956520646163112722395238360740746133795098691223144564995338486935078533455555471320942387360713214248887149129638175501735162060485324282155136499530277247684812625706899955023528391690531752355313617762888570726116722196691623022439854740782318773363564306668201264410932236186298328873371385327157251833829124515856904517600945483801822285269731200581621014199720827710066104353752472742050331606653681242894006834267166949618248197804554521852932596894155087136975274820721862999412945977680580822794009838823478914120276810646230978143870394281416402352310756860208769579178306743664445342865511119226708453741562006448246111986559672432004871495400944911637867662876180979529390083503061898268019804768757125964030027503290211854473436989864967215280228145669062418799088005540836274756698154417327990003805759068629421034196605769067523126639997694291859690476956094341195652740708607547428222624118558637243578806012880714737834474501813339501457684713036902067407209790327280364489642984376332676319812928743581497517896109179938751906286713890257961929880284139137696171647181456956157182264334451482808294893902182346184656496255548170561197640686470694162900223441073172963174953168262461822001170584854626546802660005239989858880823904077209424952859934549530844080260241243552012485117006043777476328180605589557538265159400346365797600734523809262414607817627011952605247449568148800340682620243097978718864311067983302310918647724013670845400801853903210471145480824745392079768058659556425843398074752530411846204920169037126843138957602833124228140738994394530365270583520606816870215965000084959406549806642509322059997247877861031923076589471532879677317028072501819314077629209679669262130495848597208490878001780124323033820847738950082518470546765249962800085057501753861904925054376480308342559727440909302720824373989325511577441449874750835838424003770926044520280650224623993034807072883736445383618724800921366465512946409489690211216324251310748407964940700233905246894226276734735291016104222803146044087000867812218306602467074301614758502468333379843114333645684826291991824899699389040490449341220589928443408900264690367804484228098399130591832507623133092685363663761473382243184518435415564409642941061334368203380702088177619361623925078918388985183518693707282623799391757764080775253439146423069279066765316779427936170932919917687395712309254621252878850451624525664773485019829836639118166141850089838224409938184670858494646346917347709806462428035920986161348297653918618333809967311179581574646563950900226461505781206084721581298353966053597868626055427054790911340250944908907486752878512661799070954487311331808534197450489819776019542814075720643967275852087727057566846834165172663260167672511496115344482709941624217151410072716261374901902216589206804007421445241275553718839544088427534007605303880569500745963134067137310004723331094941523403505017533504461335631229061018857543261184708006117710625074243960476453034287020633315243760096989383059137141380807074705774618089340767925528454335682538133711814156554176253892319172417386773888523517611709024738556620854443549290069010822901970538120930869608152831660915502337544090179733961543431577017824656101420552684417492410727412619343559640400685300692191338513580542593705078483321161998539802534855338430910345673233463744217274861621311584191444775320290745643061539182781980156419011635665652833922453668001944333362892307733731548895942679909105395023244494462896633562290799827685351842724862761653434726584525070935803284509654063486983210166663925138292793685574649449579485013894380446641187330024604064415287192234151192601018405137687416032166054054227745521324673159675499931076717569252725401161722187681510243349568596986644819361182322405575118913169604289709770983740071373258161624582675115995928615055289243763239450652427933748576691857289870018938381074685241720604833447030168431359470910607639657270641351217494471386433527814731338177571389755652531540297574274520534197360166336267107684103312017739522380333503838218937075538040987069978757934989216884488214119116728408151239560505176702081914872562244922132429593627848378382740469972926491002118417516180108292922670862460406386890574513025418322514091242447245070583915248193339383053672817501158559387613653631311761754600260130415202812594480963115215454672398557037271930343511021431229794762847063425064176462866293870233481138566935955129931934294311678243629866365976235662077004386297278895036580460669553580947466169893491470665152625924882869653267965177545620136755789611004764849035087564780392701697124214129179551663703251450289849718395939303773983764395380494245087389105438063580375780551059651324477027777301132735310517953332598502272306158015869570625974364730212688471515242613762557764610806670364961132277669264420531142485025038947755637497910490112110515669115096426997323291543986930959666778197894597478833659623355857666330943372816313643575011318877421182876439160265431453158391282099547185789019355831806132852542245433562656281155125536124457740552875641128734585402296602453038065305656483445941142690364303784870318587617159909331536308845365278600529424581055928077112949602145894572438852105230065659893745534327297378896049834606261853097084343684513163289825026509525592771255627876223848125933112300063537763032816399276840952292155789562517257008931756876575301086556048912978843648316496669434860216471844011207577026854733173686833872989667685882715649151414016922791527552764179473112001829440929122529932302663644539698547437253148058029384783801709493489049645479170741315588231413473674189001427471784654843380085441475194728348657170317656153075800301151455301987963016895890752144679195047910167664457567424362383944546065461510536416047886415502392767017963370380831611425082786249524703993269126797559565377710352874933478829670894025499965237159425029467617627635473588164522711089883767553603855577919634790115127830438437483570126827797218727601405877965123998474100312007623720310909360658411001910269011796582058859772581431389961557930641241416512691330919095952424714515109339749492054745629649937837964756260701090594435717392011907953645534619490235622379812728391836971609521192865049036240677109578289807648671068323707178081933058254951368437897800273302354355335895188738570671609483642864576107370764877205778954214721434115803366218826962535069509797458841014881835027207954099048116424847578496045055068314944443521939231381672518976553241435328033625686873571607313859896055629268951666504432252017736032693183848500795356838730308787572925588566103323276468072148087891312602796346442265614221323592930529683316924550435498519672797756078623100270901453030141657834492629835928168340913746594392754549912393489587921584047618571990154996462149834378176084265282933400618060600505237790527459481975499056314426595896141401397708069996075445880921400971568320029120657456260658223364296753549583353146602392001182836648429515095858704207783600448948293012145069155406426887190539028380942755232715145121358057398808165274668901739309733868993723219475136362116010910249454197018477310710518078102494017829791764347206611073310276185755496530053895858490783230072585290557164563318283757394657806504502686292872361796667781823542759241282577081713279361600315643519105554244164486054545361766713913934218289299519694608704201963515731681958657415966135562544532013789333199814013614858835906735913216204080360055183244459623201930989094230962228372637823878737848288815236282184797169805218931854350465471426454836837453048868248210817141678025077528462147476937585324026202287569238552398655536903906679643455311748709641988830174995468830566311715750694274704108780408882755700715588468210550840588362713195924397696319973045231697234394078243487277627988892859980600485108831812023267369960173291149710524275504387910193401969442846959427266757238773587809267526414766638675293764395660011670715796005766215906962500585122447874084348579855921205590013861819099849092390941585302179777107899124759020287064338637148302758663081976712011341173649142907983558588391495335489189697640197109729158275606008121371667202510625856339410775906698209175037781283817700807328792109298075762573532123444553991104552533166777452612865715660701583878378493590466971935955509958338994781974448619127528049389098280101901749780337229513065911962164748369253645357628728976672483057223575688907772627686842928915432125387198918459290377762227831696289891438579639838860102248834832352018377021096051352344004492623405192129714610619021326459047468873639879502338200074950535359099289261724638986197583465175657569859592950574253297867550084782861199100315773262817055352338348134544545388785984652878159091755437561082116218819564218063014688988841366024969711439963490789531813584243006161213515745889109026398217772244296760881481043032425956439382972077447131005396143807817823025443954069682286906267394445581243031632572474048621553067723097006248154823466760236753044942474162887186289336438173726643211191552211166004133492860371288826093427350712527204152540783583702416292622733672577905594591824619860357990814209044463730294277306084980934879457374811631752107276591502204627424527121458383576861031117853343745795047115489607851891632700382368034642649551553256899010259738869340189085445128963618852458181677935363848026142588167680200025647543898640621780264179785953797093566814500922531747411365152897500405595366222731316765094797552004881922324498207250766358736675049166415585226327849323160204204017049825847525458304902288749658804982101267461962167707271996502456435805706779491389574668814212276213850942498917990284629656536095746311315619886743422792104916088292352019007524987892749749889590241029639263958758038454101627450758531344857023841299253854133823367627255295878892848627031342476519559533432462889428268722342555980624127323008376635033042641365553592629507504051173405865154537747739689845214410752995756040761989774280039311586644648652537976791800872762706399103330904104523992261630543811348536073285024289327175954066674411328985891633358201490230956900005074669033633287851258513445776141062233619309716648618355502766550578920686573518650668376850450201639248262249919388857002632738262440139623510673447376582817943620386784119539482628156316064449417068244576334855524213170067448539942962612829935562500919338456340419722977724752636717130117658988786438336392386038698000302229518965224248751298376597545529257564987727938829606579887281672947869369872390673259185812270332925936061388410669611073367637747418786292615288604463266148478287769897275801239087350730642252253584618354198303219524333698154629976088212766904271618507496686634268938066356027507074524387711342845340981387237096727189676756814187149544519116665052474533259225409943758647770139354712676632111085673515587197236352716934223027731934126037858343328895781899128052597397972434129157183946976526722165668545179258015842463521037552862279318324407322819638704647976256684435584900746971703160092429627605887099828833570667705879629912796268947538157462612044440198763322841896224941285473541989075705473542465307285440866893241884475980736866627652159026457198883189049992088014912274184367239244912817716645965872641085414090993884015539752795186528852469316384921697744636714047653803583812050653596698447393516088317146117637865245887898516385069723708711413235900078143460674425644306162709862411536809879927886148261594828620579815846971310611850468828217189451051498921532346055253258726063213870961460911003027739993130238150392364859375417110489067178924852271548046998195608719024219920587170203331626254359861404972101613774845759140123655365568138935020792136226898254420456377562089040856632136995063126128399297451732828371937142485148011000978158959770778408781208705714905768278809157439555563552791746206203017351457658867841307753913148033581604066274116635091876543558700598021337971744233216582203147458458561950934989228945023481485303102752812609359413342109072479907508519585457593971394155400857532196114378293070622027912019377131971941998487844917262454655741742212725849647097611763277806820565244414600476659981407126797614594612232663056465317717889980650555743803507430239717954312100228702050544466161601629561716984885220074881391473656028429368254163335978216047395281506458968902465579888849005742815790582573916107596896173734347380353971188820109211194404014019312939234940372354746858833622445110233900550305478542879644414059278742324618217561105943613305759959735448666977191655151416982330204022536562037906282140272145585364058204940831532854629847972352354617807632181575148821874513954248173768358238377981988646064073376590235057382993327379631187952522608646845599277903649941796171342452939302694365971224143974485112941823249924870110070940948642544474357257959182747962738957334592722912959505608510844937351426650578471957754775477441066077479529796264464298523359875457319350701884655026958609734007241355698433831057557114274713289234953250778301617637215169043969966414104700591621666624279194977336000184536390518980947750337289798127659030261798757653957653610322158157007551805312464818007295043840807097745274309314256227154988050714169558266287042176662264657783558918183446069873321522845849945606376465303960801873550637660137222907873285046774283923694192577912865692100191040486521366107854281779494479585698012700726318267167457874126454791021907151468630730768421648894931890999036544025916420224601791620394008005624293964433670794273461571854133978834611325112425447562653587406969543328920470333692670040119406045186423488326735004852909107581283236736103035054040199113457017154013688121235872104776491070357110866119450589663884652963440717936366772310078128433186809368932569920211240643531227013518912271166813192182258329023274904182311577330082982880418535140712829313874042210072508125812171755461716118534131893196749985549817275149069530765112923173023644378189560726343382481919501106318426598997792454389370668158357504048627039849848789409475844559139868836211167950305989416293455036595098916396128807380013749542984827223952407022637969176816718703341815508920430043171545296846940586948779606136967137964132036777857337893319787271221590324490850782217505835736288913310289655296981369430958938935756196960350451113547339675358328886808627376672613314489119488217811699548384024220588082348122738770862382939000137609916354283299664411943645698458420102594334181149035278130657555936089217991588943732249423838970713768104172688860187229801986014384790361483327188693178185588259553760354337948091971972187776906958032640012724560185652546114047755233985149000295427014751537202738199773308713357729691252765737481851455823442698262862707216666966649127835641235257888970107132657020523958555000146109309822192743666116810843481634372775777057211060529908720053376863969839556417171567388044568083770313175793207391630537444774916438527960889232490550932851886917697357175908958165074054065488236406916727822802086040134679762889156774615645720807106337512222708443850097788274026608733931434036598469640910564113763733140128545810801236508104407939102402256466038677386546571895687759085060094079026364613305305082334055215584191317523603297931324000660597927055416756124503301181628977699058364107005585767792083598100394054501968056512758330740731198815826738855488976425250042708930711142820603371628482891095358222861604579554528392384975961530473106109969510151378718568250317721740099551313711383413584009777554255385500503186040949385592658226415121682270926098271222940256486471518773638389165606614254317772765630719103840808698616998824830391645354603480400464893212474456207976834002754534813895327790253933632842109966765191285811142257214369529206364989288770157064680200605260165821407761701573704538060479315294292794628397888251422302913943410363182822206199052915053771504860500497680895063777365921833849286992865973553143445154523300811030587711290825549738821625687277931941505122545380744561315590995282810970020139608568142599308470587544021151820621467851039648438444230979160815276800758779248608733356043713664775920769316499263493027101192349478867737743066345060863996403293327210685385433422046575414020038639944363000009180691923318017167696217680151905987698828715753565261340734347412154608533658960572087700302713137666065169127722634131428134368107306291819071057201190969094510638642618389923169855265153067754731299027109253219311347057133319472996380218618928690027907405112069182584118729602305928526529140060268952515982601584594564602838376849682233769451041100464256747791037580644854509328012308441435468382723044927011313120929492304076534849129507945485526487344489152453513580730357987635622468792562911656372910894048665279703346626615540456872428759537384477709138354985118982362290663638771000470133536429283852283549588014322498527708435641289841251969312296654649454125202480462464136643323789963196302174757195718810249521090464765701343987945192753406956210051972067682185665103831506961804899667355000716924318965279177600227520429517141142072852956268610353333291011888138562241111510872770972990304469642182359437062712517722492193142621426909232143961336056983330131866352174897022798450839612865118274849950404580726504874369256844537973939006761278958206369718177213108022500191957380400296044262876182260168865642966893517176668671558621252380119244174346065092124175262452061149706340073681210577995503167456290339513669298964788614998769296079421843369125640769991600285851437191249381282818422910659210165897251579099513324756528106404148754764690453124878604698393550718409981991641700164439300594982903893685713045226694025577070430029773879306084812236938541673333684279279480126936780845027397788981917422624326219717166675888030161387187962354859023608202815546355332007529561064801038394287177413977617778960777294315461093207190519912794806067734762848847336286630156160459118913799383624023346800999909871775773027278399717289181842433207991265264611394245372613149891638133792669901162002497076910985252324527506397536448620663164620682272700025788984548217217458122952127868597863254272420660183484895276533735390451840655383361263185520774877742925503908044875780873871370652598152851510062700480765958962495312626571930493742119058986961830712004608818517086799301010308385378478206383621179987382867640564500939904062713422858781002362424515146201093866260263330614939222851886630802140813684781325990185733301192458084037394877489653119391693114001374426390259673176509458197118362125275075308233201656634929598638692640001009514928891496669413746683552904675130144892826198691465973319114085590589366277368710535272914780284179405341835598842449572344939555779230152301666209805178079654534322796748619829829178573020696191112215426584308198320650953413816448424205170921665722137965799231921264572963222206582986841451204545542271388879500751842445910837722621479513929875386110927937036043610972933832431797932540573240676209663220682181139246528509945613035529813916665890221659191011780157453144240777372700033609861347500424126956346158174849281189274758897650588358940392270947384875762717960248402326707524395613595988489928520447356643289656283307660466893480656761323504580864780335557161774310817259507304316555445203903187622160284365251546237270513989772292437335198241342679602817162839855023483845495146988455766588052235583695384647076193546242744311396427298075239037821761032868519590305825372904137124206312487247531352306763143612953723800960073393891102123266705344095641106444546711194361080165508912269670395443927695960811491338071662933640415917014598599823207205796733655390417808983029233111372142103011715238971109832089953667667064766222046643477319741785962375931050683473829635553269473163849258439676812244732663351864517207547638157073711266955554343966758191625776031392353838019611647704570151711615376481859378549298395749423146352985679154024186102110512162464330387288114329007209110315233264862170020129245596097578081415951374562592711740650413538797500379145155160573447770611665551715474701775322673972477345281152332898645636526893312877042499215115412010824441276013518871404735644040849029488866110976650909927034712339063415009569695999177792551137885016713485215410658832472351934741270723939443491302154303384990244535249652839437120872637819922645550948703749843709182030850091408525308313195213632748580727204869439641801334678650356605814944601920635317450457126710233272251898915851740571261946593231841355284229212979117213042104480926154921911954992531053865138941620557505327901824294463917732021417565217109222432908875391453150469482543731699627445885627726517530309349511609850615382737446729760998646346523904009598349709423058703118533855207399711824033513118907626781648684516691638197723677579115589818322010054708409306914150745571557907903556260167117322412683294282300214917620987983155602440620084110206248869477271457928091771917616440854592239884541771881020155855212986080377269386767191598785194213981170583740113087248164749009765459117478293314730061891310994503500895635824406444838626809810965776812916965866106335691316962168526205212604323058246199851745597428056549585809720735277790876552449532915225992275425980958733112284141553146109075763267938443324129499701800796517839745829924803297640658108652217277503645032744196525805660460131942182365803680249714503398709691785669028367771805838477833145499362442719526038392720040269639729054975890061052590188047761042287965899845338644053566689741297945598491362689834791116947946882061468994121061644936328677870936065847940923043783760544247712294235857000564479101837450994912026944742852524318714308824566109483965586467542140207560404234988250907818525307242323525321930423892772846927307195916145486658956159310679947392172849217051901150727998652559790011802152573002825364365713272421100272182487095489029458935545890219843293561301515673375350994430675833795468454133391995460719571599976940456298501961047165617195267305568827793297732919548148775399437785265037576533082027585120453479211967395366366794715060200203112559629539341661018524655500345762544233248387841734527757132750976488301435043238423584239270225322663488938480666334704565500221248691940411496186303070546870123348767082337387738057267346502799081077601341517717585459345490183979043631884843438477207544546148048011239898231135514697791442807728803388791309392138664497369120036997591978185591722163494763542611431803207361190886431897363440541880694948368924250458644082665978338175427312152723705505716928139933052147818280511493198557697840526961508598477378225379479731713987306664637763750919619616047277544070559984165655862608059573931303822283268756212463168178754044603059399370359482731315198349736703523025950533445428242914552203759352110555314040464584341714417108560089507500835559278165571223983469619170383654611205572483084065482606566366019856359321781810092189604711031097814059268972550555432546543326006520747138804088860061527132625983023861139339692466098533968314403681152285291427007604912844496742366593582000196132275744147516079081352347132327550383844840388236543191006938175241718618137762696797617183079862481339718123839726349717988988597995244598622989050571056174517438875842230316585436529679457320379661253637660678163250768778522708611732071640011875844268857284975814533212631385233421947425419162702903996478755500732843585033358787777904178384753017613103908569563114678027408385712965945774723351024375989384448611508409157414516041306341378462039942799430862640140520167711388430816725387665247837824673639040376504518271386271681221159027375542117392953584305832487361579784623269667647228107098998921399533210265144087102702809778773265027305124927947811752710688694404096155561197135666481785083850802654539445944937202155006629724315646264596210884575060029519292996652430452363068914427089716660407021413860655216827601217378407978359781928075839284684862625378969972948890759279251317862547990274723755751852222650565287591789330820254587277513637395556500214671016686217838997229799737609042883401780461117335309820775278531762029078922583611541481504013657442485273511289918760196360776799388402433334029032113459152930884811708284964627493143613423160743113073001753410856551687435637606394659719824155667522131983872305714648106182313070018922685222487461466999279854826900988302864003714447797207057436747217046047456695107843335867121112010505752174967420845778692075352070260416932038845833879472336269418163441676039081390474636246202742840135313389444643700298177621811646445386903919424953110051233501355834427813505348351605007231480544169371732604397548064290012247084616368066981231369414547601832363261257483405180776419212223687888833983323536253951659154557913294613893515114368354252585733174215740763105385298805307706414992825466693246243331265957760699979922276902556315401314012509086504173616430047217581257191504921362312257136201689354325778255021382992187055147196345547443255273525210024571657495778380239849828562697238519358368770902548701708179183594221255652586933705023568849400319391692994907296412477380048782442152142832114476752765344304923849935696793216808181282650188989300130362292562130230476167247340458130891472016068299966637675946200976722505056203347436094845937575725133596795140209513154939042062572994956601366870633854133787891831377671605420060614779475415600356091239268102928565064385749888182034716284264450322656316448414022397486642653201116102197750541626019994624730224394377770453645529779576906923076433631252928283819626009914600672921068860987959791268486106239676791621407447032958707495155194952289482482666265550779599115093238445856877215195003761255981510367775927356703530294299175960467652305105699421841439027913724216618858032545120517029757244423824995258998316644150944394467529289118615317360892620652978438199908027225722202453430181463663563311469621145096870977773571289549724467270989321341829923013877733545337630287327762951142132637049816952524231012750224146919133393054064524919799515288634945077455679899737812971251006465514586114206365832169399644868293311097003290671946447144628582614231830717506438004613088731971905415405706863959697008397180898169581957841278434673158188845864775969389868217428795447388828609914646786150621626424525970445150561887291347078339820976353067782904513138830169050855869731773097600046432191376509289992712189698146740569254133335729201204767752954795480990444038766717112018882774483911386403562195845479193162559765992857915372493928124974066523730198753704173501335048374729662918107946222280977865347243925092760646167468312002382478111299845838708974004978469418995157910527516108317105477461634225998422670256317962115506947740893567264916715232144941423918363067749091004815501122580756511800336633296068887370950649282543992365153850217403199753933258877975758238504440426457893328072090602002979838912508631393527565672451424177553656372969473554960466703538927566966079252829636199042851925923308328353793005991359936965766309306473354178459886014619209700097428482867659080909191566663154990754369035396018901105626645533093174837156476523509055464078340972672795713315307767325473065684951019733249414031698247255740774290402434902981500244884861776652245101999368692124738913456760650178536728162142369104188629908027801779105350425319907038236556346931187827744498366701925830905746414066751981407558227035117626653087957433946888596693540633499180915137804832137167353969974645862877045439106992645054447701024636657702761515878701600958011314610302654851133006041347252470102327817601357447547127025233574521771405151940511753524229763055948514129828538021872682218817308395977248065494675392095622142874567761981296098283212600470168189375221175983176203849568747668894560595326043447488034872674436117320009867877522271955816878995598046043749192682693028036363281217025765134190602837330733330482118666382304963068513366298949788486913514144139064108584856465040875944665510607244173428663491708747493181471193904406666889054918884477791960779560941985692657371287406688791701573945508381704762748916226484137366247706027772330703995173001271754295110322693843209183308679715127916725501584633549520862278323507250346057291057227679183201705439224630269418202999216756125594818878141344157776381815175791441608796321311216493144929810962677613062358773218121019900970432032829351080494216230259593460121362305193351854142108393898758015232854373116068766413220459896140089263681770268814061846812536092073640592854202516820004035235959716792927128274125300872227730291382941379964663244465557383324201154398103990267233192396033073604749887344815222363075145309215820201745923006207096697885380880082835291268255714614823104255092621607646536318151575724812430254091961449843124922505004553954670777043705594248408547691854846670413188660820196208047797589210333447090583128216206957404020489727607395955348163944487097710152665053573919860587572550384473514739645348713938753094125922049342154448583398885906945091245073265216380739463429128944846152864736595488206456806162270929526358562873136312121620544472766692488029217272970025168504146819987662566997239247980391371341927348815437329633515313288541568199439051431361386105970957775919553094734756855234544762576083800781100935210046893936067945521037978509460328387201101137809091725354572528373702886158385714693385958103883865077840690616823784899438261304167847080102294387092388086260897814880519051124003240588623602622687296459504312398806196199437880231966515604637670595448298950116512985383241174458823983793257154530016146381983344861024705336219993464281536988970306873507005601450688084511309936390371344173661556810219498630013509097720833134143001631551658080941828765574299291531249855846834500997642636532932088923655849254862264383783948158927578577704670600217811013878301558275749199340828582326505549483317366815002519152171604368008895217481400327670055359051675841006555738158874411527366306367464110658535084180555384385018898327092670871916825424052991150012425537544167063491104953264343773103026159653752659171713750567783587258134947074437786381082882440167100128786204129522770084451008136270649613597009516741425435533208757822939643753142322486293945917175937684448726258952379628711167068871469468329484323827240042036421659614859467324458202904900920601822899171571709014175168991999491697925292618171301913350516548626533229922047687312887867496381848652933108151691106566968010316757240447470845626987794538072968908484131028125849012741154687153835602263901006176992617153572255953203452693927361139982488671902916597193348727550777492973868683251573612586320038872034719181140712373786156228083082267514853483472431539306145205421476803820341121974620126316661435564348629681613319359951592745255271003184366561690674573672173164274558856444784298323131582217927412452525307734801725010016877958223337989950588630166581833917484951978916754846188218185676613337214973094390989491876405315682841694649715807236236606862863591122933036414107194547766932702455569597826118760824548675475942485526526807688876461785173723969971251358320012358357919253938400856543329647828831014601680279978801584772452761248987175689622545821883236108309618577551581536944113797851564559333307351084332176778212437337751865149558431506579860607141679800474194937715797033618448445246528445704864554574634725549192952068428547383871010433074272509436686870505152892049885021370972640174350276766247853988306335631828489411567571407998264961492730260358076386687309525462197248870752994782071943092530356064675159144981383525094032633375421494142015788604561124263745530191267571257160730345290997019679816575595462430486981787344069696047543009306785398132992725636433376168119704443092506590443558089498770609638199415040806628405383550645766857874762333058914523028083876541601611288358382035269200129671575519868674802412368372254974020097713889492783481190508996676491663387323328952571264074459507834095549392938237594103145604050228676997481600046224576910991571423961176964399130567034346159109572989299944314380140086238180990965887269459687429920075730438252998694264980801206968710127768966918733258966649056342925024524272752179918738684032426316069651868761785080158589007642990038714398659929827003945733747144898295724173995730647100420914257654604447595959622599940830344575852563428586100262261425333537539159512538168941098632660728880358503856519663673003532225572957869264444566838170675263410745560931591377185618083561285160373818844670644693528055743743397003559625805182611297970314003831117732806045152013214079288384094218151944564370170664579186850777032182167784560576088397661026429503003119672798816200100737180440444381981011926313665326917712576448229946191230241352489245780904780344309216750775572718558662837212306414193521700060386647572321296469867050243177298460293350423305918844161318252206636530791273368390716615802658140876092316018617565669889222223977565517900833614900154873483058789497545423010788840932853758580246110536203895193662409920261937795136752246832883122770864408665531403142847972605251169072763771554843586844864952529460152809541694039342486912911043668234961001998435181772378366713954495720719755846399343994198070833510707178829682245316223408240482727303630225213543483105897596591581660118369035843340110193447336341647690348039368226750396172775025561006625046256799922565073192883577790208734798906885943754032073879099821740228964198288603665940164967569529597379837972093973187720975503138533267239953424643882130424537645199890912144150888833722925092281453497310332212743579528012377585780643434208347926542287558172230706457918771718281731787580395060445681553916029107128841909535175121930139213201639327230259920544764666426691096559720696114263646495580607967712151958055936619179355235716441720786131590616261349254255145597406011700136167337641025534253395605969828555040711380100345222169684020635819491914997675072241927850640531510404443394423519883560721820207462545598710037370049377780464802404921887479433381323001278465977053025712405682442910566082781089101929072757677973697779205168876968428163237141733942899036675529799852347052591321116485341279348648591098497425555362933040400887243685591466515348144901957854881083740565161391523994268199968128697085560137047917571772044696191971591104116020520055276994527054036478818688400902383038766396258094662153057952898686225521901096420024119399571271460777589279418951779693695846401505945742896348325236060245059198995172734681325597988327561274800383840243760331834558093047502079846011303908797641586685599937972846244167136957034667910666925837988477135771381924414232095237782848566385245318595301101228176508839710731838908749242807863415709738828373726585722172840632228778152217474341529891388012665996248477513212604041716401347877849698327058182939968737402317147214282248110351747718773069394330492766014046714111018286582177380965642853226687709072981802509268500778239695506833821133977808348437752128310568973060456783278778015545738573943996353154601292430994806368505991233518005258644965476716482821440454154496208952335934970446685277438133136794743074906935215735260123344637455173921892413741170323848834152770988518834361058807460436485409529176568431164356639171709412512489239867742343652527431468432957042606115897402294016174096862041382350621502824309907884734036426038202533804444841748264991306382483194619284773056679935452789799269045160313569331375780576637947808539430359388913152355184453332822781092907883330231634960672679112387719199222471157734471117547615461960805638665922938750301583552797344619831502872845627902778594329796568572178472398873240617671307757200531656343551115157818891733411899841785057333422879518661242609555148451918074919235246748533228567615659323491445249661916628382245088346237057838761705147735509970521325757494658822152117428939332375993763270591783777623154024384506173864748210172086258977197063869922335588388753295551203152769269983011266261367323836553149407607429459799819132056804478481821215909564679117543741409855645620358768272625595192708993621665978177035850603335449901823972727548720081309614247195186104955328908162697931862525517248267683806511502104588535486659509498060849077383672411047230108677610295279677717357105896823756659775386837461079376487929284402194276031970066497304385120162562951623735130197989506682270696487531917761518635639545110394254685576256268371519468405697217473086845016973207877333390253400937500597333166099185272408077179685893308121140997157751546071148221968783877236738434509429338424953635514864333646310405019953387198984394563175199727355809751504267469705361671227442472024337901851525642897546405265216750692789391264000024476577736904350055132554031740843420567864172896748268179619232749974564213756590797725627943008257949364863434846463061010639028654382207564775333225123435268216502555620789277921964040276985501530502799384629003929799127117173918733755520481090607866768844153992983447509895316733579477461896963841569881665328321591580824520134603094392480766520127700186554367964118284837515422906622667199540289216926484192375347496436881021128862265171920148868900618594247132208896093441316610044888968961391176977956792907322322139483871626357420676611960541508398876992827189129388182956839500020483994837884751916717617980133352216030325050196347464144150504037538375307539515791140477229231184697873696125618367883156217841012870594532568369603637292436644812432050113729428828960981369695467134488366102926343072213621207689442794728513824421051006911126644462278657297365307405793643300675230823187546071357985389111372220321259796273060450830639839454919421710817478737285395869528453084795447979656293358827030324261515565585055494695874566501611679263788900962248600065846265914535620418619337909221022622891328899076147737453616954827722288339612513175633999065890003498535224082454285683788036667831470504996815155291712355539621234478637084205661592853829441377891125844673275466838581429440683704389733878039218395091407029921462691244225295330938500352321138700989657055950431532175889113014344138533477599268398730502602115909630042594288254676042787302172687019231500578527225479317327212299530443430854568843068294701495707687835341638170870394884901236379156448023802507954334127796018472854924366107858376276349992549514019852018842100447128368032109743761279127766350188797858520709573313891915172040511132497483368876082210682336373534285011412826232482298989095213153727788413450955188611923692427816970089685542031310696317515659197753721294874387029239499217896496459963176360655044555250027836559181526832702702681139522189897855738211078084122317256080122021338250522605112347592253837555035390683173329444506027192374026064263619237345396688614492635680707255521921737251015536980215665187340220129772707590722552402707037682152130153810742888478732176523752818164818538166043920331114767136467651918299722627190961660898219801678152282853518059997730707453453957793925741319562026038535522411185843358139785048565287212428291209753942389573708029388131242176064445649570280121937553625727908459387940533259337994324070479760212917141318572086246629241197665686271582085708653049298798091283801296013691766288924738795454014216568504838301108314748608566492356668927383991290317630666838637548419414435006224735209751014592317546684245624285175060554129244463726775076718228846002956754777338703506280263185498197553340152749518754940023811180013527853488928897089168581119538027399868768647028188983204781244701958560664508774524414964200678692781364626923129303221712621511815646022168050571122215103457221889307917103335279333890360184639313766992077500702112496943685364637643028926520239399324346641748849181118540516132789080426193872088810895706216117399013336299524083948084641910688072610421836539538069471991665928368095122788750209862694168292346396367237267977602558306570874858831895898063867143167861405711589950727171691757301327025693649183374516470241498852808950062245137161570323672086359416207429542574579408868318550538294907662101879090327190991832557598213606003553970770981701839026680484938120888563350831408787775396212153862084515816715246907396251212422448981540594887148637012275899549864695572318471525942964170482658266515924236010772812888139454486966088879862340409797199966390246031540893813626029448434534864810675754182072198813497888308126848698538041943350088012915732103026191599940583262868659192146519892206965199662167843644727826124756189247495491769964745382932192839575103429584765171552066882655918966423118238062668944163320581128296182865219891407661802177579423036510657196741974973960999522868499634305596548279501893793956946652013577726494389269248393752037256131905001383069851587175048125794677980106660776408084646842616686130063749900062851137904673309813884855621079141814381528247180709764657331864139176227529734470022837739409028961185910961983042526966874649122335630139458192508647765978185312120960343487307545173013242122030188286154541267160350902502453118514815974541359821872666440495068052131295135344079193016726390418269362946883521252098315150506058330548242597643292811552746190174194060414147817978566656820738091252379555868097084203223624991838441334783818841221618801517278643660223282361617264159586040876471412933970411326451280221757050047049018093918919628217148696761839585337521712556064946726903129506796730072312454607801022792663995743269506848740224606908669991227695578013716280041994539746725239910202432928755701184377350331333569145645628280479132343255563517813459019659957136806448989874487727348229991343757241396147596635260802037433494780841861539874113847665731959750940283118001573371984523718873289543418828389898046451956747588698769858637743599543288972730695240374202175777485485115212666874321308288699222997803830723174238355667923033890680507815930392296064988493945430831631380932263839467325129385081442218823447712400577709842948050072721669407753273077332693868526740852808969934719369672118432241998451074149333479847478579720614585363592992535851044279137607904493487545921884909294458069557244079442309924171505673942009752333872312091056360009663652451528839533082150376323181374401203711575620193707018892712424346004880665754458048442779808475757995963453282619800015437636513894588927973055273213663822049594090834055300351195309770041513396543043665760298597267803337863158761621270677206714365907360707309187069129922421519510593946241177187900850060227271591708193545976993605873709384792968364582339335327763680127027603066201837034646865317662439691723921924110256741282856826488001629478975859382620054645423364481927183358464673785105500000210285056121056550288663146234191139101987717687636326560094650405034141965480500092374273240110312768400943731703293353098759612793553460827854948213539101853179431669925169512826745167864641325279929485926263446433621353447681706780375635333684283306131217656137200447410766797082109973622018226865161429995927313109110760482328745668729474599424852578196480224323308257108874827929460512316545399730810899210770696474605720031716736947238004538371125323397862225279780222910211007526010527045334448925085814561668294296268670660936194612591943851148475640299174964014359873314572108600956015583117384875057343773358802307723454047536010899717864947564525625378214948135756253925727865722664183023599952748080744008399926490621340222769583654503675314129614934651199990380815521350089873994568062092088304652681035368487066515061914013092821710388675889224880147094953699157319282638423056693756099031781535783606133663173797140631931181657405796692832648497006023007281183530479249552987432741330711130592191291514796975708612983398529903223910997141126876120222830640470010644522164858551346820700896219867731393405894853361427921959110310120511104472731420071216673730033291731729509142913470627122308048284722459489115416335797438891724274976862012419377107973790529604625895768980750056750402231731319677914560955909452373370652668780290556787008937147420370884072188018562310361122227455921415497434537657184717350603285141463800796526690946053343463954555200294180536378235689367429655710335584985796355555837305010952811875885042087152775346280321890367593255379335173881701279730140614161081867680778992575217843781769972253878712423414724877317636676847606001113128653503143343006636811566708528125772398708190582104294372931944551114663490146791603005287450806468382492465452456794295050942171817489173166791887939581767178393637800093664392513833946697436222425203713739111154152914070754392773032009744940577712438958190156406599669261980010376007708957602726318239905114132985573490243876990515922037030680530819724128857574901393915234536972714852237505194824014872329574714015057930430014168689748027789697768828994843554039198801421446982287859779157448409816891331206467867094510540904176464513133528702152274455810227833389390934945524124786852082351330253626113654850938673528953326139465271048701731946949385209851038519830624439388472905899902594011905219297004365232778255163727960205045520946723351056992790288146178670770484536166514641134129044637578671051689737747665005431076597542556530874859659647021808982228460581553680084000112501628902536667889877019284469625060119931856404493657290078798188843869208397118068063293330166451825312139312755747683284794296406288552004186185184318183573989036839434913163298974926693470246125500441315718337670987624465498154008274874394156197280689588282784412696905367254973305146225808633121885797831899212954922182077917116131941733680228149209485640555180449871260251979382405191090068200228900493385381336173125962352059061284321001584573883880719003502701491877788953166254672394980279394717771439208604698004086895097686053210122053969543553759061343351720844926355933063207631747693544188155534024031916448727468468501573288643995984228253886242398727781063497692040613151545921408602025098955623576835324843654673542758367060032420611526130188645294659874881798815036624410089803243386118251413490202956507458549928379011417962502470552798029782602788733681965188528533708580826496635694799521226874491245005024339877189286606994121877036944803770492211917853329066014049693488574635544657014979697130606260592179973880930663751989455402456543182003304058283706980101716530756462666911592369957652872710693275388481486889232450841163052755969007014982111278098229709995683331348081675650514162941368401756339870501633426886883101859557566119933086579031760335199086126943629453376643512647679647967299331826255706113412899219455205787999218379849586453598599266887682527781386131518641620354588509721025353410830711975283231313095444441157878302342350738230107762998147603675811589726154050508707104204676822457765258356833687833005666892849669669108909449848865743758660222291624250624847117331367960674825018141290642294735608056767384603400938318671405194662389766100907176299775783700403909181306375406463394433435884043542301255267011145074006849938657953313675981573146685859453558528129159665156542681674827714836346389735823957596762101921210533095818552555547713501170449110074561179510548370623765545290480415532679680926280794991074368119343752194469726737188943229854312178986370979749234320222629318179957379103460306274890496475575074271049716649792408739130068363058818089066604675806876736456235232573983809723825087261149132447039038182070329293630502792161587006740008897069984512860765678524414164321488054894456727198620342867976961273925638806102651847920171605954373967712492646131152357907258035285344983428672059245548436277255934902490567141045150484781409065484901278456677294625425866769979451908390896410383932040124259329947180170308963226652776795070743167409048312687971135514542673373961629187191085827310794899870671598887486267878810707897052066628161243662305340012189809659593785381891661193343472361130412610531993146614742384078959073339929731151581856094945765401454452186993747077977682881188963232832238658532721233127877613563808792792596728956405600510358843854337826190571991003908877640737986332546955243866588520739658904085233079628266321966272036031111591587579671427940832885781989443223778658215459956776446002583180090580215684959732867046683658464562723594638942302279868848265314222085447487358126655141043972156325609982834629453974680818400353414033342257512200811682849183389321488642090649068828235403138203096292533141152801443287431297621932033890385575305286724931305316034089663657341666350789264674840481916781481774681713859448084529637678526441815717392141511387844875891426854459531757292635331390676827966035841962839161031751499297766302702243085968530140160895612656320591400207943707566242481157959609012262351826511573924227232789509408148157885118038678109293717242811647851903479654415453018552624934439096824019576517571958082067188803722344434408839886021503548600282264691083576629085695404257928725236868843510239794218808280101830385089357223115096573755193508115657029108047002574084760740492710693582151172646272430925551866136557100550916335432378674758878787146518377392623088305031127781201237897127810490309308519719156713362583994884855379534372080605402884520795547891224927891906862780455946439125680130619431888360936741186040444245367153874753884729008901541278435036980781919151597554435921108919745192135868218926816811270788183258586503760567484114807203215157342321676170966831765693828098789279785518923408963405464691520769865120193213145574222545279057862169152078294523643332962875013439337018644762229530952765614661722537425451861014939464787252084094236429726479781530050719260383272184934016648693001423074778479205194932444815750183213233173866301876022193456072464837377859102901317309904856269549441148414071004921428328046994872736812857918490718400157510157713766474437025976104055502245048532502389752181195220199500499873705421950406396500968018085649509410907188851916509669360811362296739227222336531241893275003176292759091380878216054455879031187853932439027491973149816695316209042969094008408955477826647571299197206263146814941805536638399298869390548364932969079217909222050178402550542657317740193242273198226881543207766210774674866726949268443243943759451542540978071963523235278208623399223350001188121026975700401276780855896630603335894444187062919292612849379953836957042078074292649184449737370628102458455573356770904981801234478083728685853007056188756500317343576393918659847294325164837100203812166265424105587309284259370908630409981293602673177728236193197568760808101956198008360264430982251458577731782828120190564122991824161027406880007497833459812971605696725641879413277018065036883708039525102452945598853592841075223100649222002425495759766417253289107109858378793110449386645763409325113803622523284773476738537526731433919611383011634793912017126920347593384723941018220765231161149034139557147784669696225780503297807692482845736212584312988302561385256505458239367034302563119608678298932496612930047711027053901579987056954065993496698066012357000741693900155648368272878740989383295346832817426282378919046459232502733706250504030941431969746321610259976847636564462888498163018556972511424645152869494815992095235125348444788433371616418952511208141565287350635531782320968412620679906222270961012865609282122713486227178182231273611901831508424550790669924766556382687752371169999810076806932177663380308072946672861065898324099076652484176320097940670435982397429794809933801000353337398205674013862845106340823373355594577989406617455801605158169347451246299608908457509401194986575110963084862840447698339400546012894608683202183574818851258914407698989764133009642614284949772667187817138218195911661342822408934433304780590907960301000141458388973321758283615760489147480772456642349567624470267029574032098285561246602368334603500431107372023452378462880195803840162178196571541020491105819338513459807790478024013487443667156764064834728620337730344905390337588597064390186093228888119093671330954638575985126633713635457625934402949419501709459657178842662781962929242958004443585039296782150553557575869856012840399246349111380551912496861205268292689485533409403999549027883813650163533355398657641308320619781685097358275824206780809263005564438268902603720637305361541120762010078782258892009626990998753454516890243527078369764275084060987057888352797084163428466058742153478204822745819838210136343056126450070097048299836111265568754222616729616835791778430732140937649085670886399418877358968109351566358400046600769683405154098140833088977016285495348761054033617855981995769010585445652121033144119934498373283096405638719575101543776866134753702269473108606424033128048856476116811725099351401929127515482718451839742739751913979041914280706964026688001652100672046565238677984071334695648795534734365285951592432089849430619085890916696159161531232310026894918258933106235690464090648429609542846954300460936649949281573803670779916139727060675939056680191090125645870852977234298303450364367370139589875033513589777389030444895148896748293604461664815643785659479302340781747439292584226719655886691878802578932069394529288406160590859312346780720511161629237456910499212930558841336803684555340171050664053421944966200414253134864429565732872076626116617335421027192472159361402129731010990799639328278434947031038025841654807855244111147691446068103289552234057960597404467538344389336362817435019787845473117428065303359758228714743246966189689768687532148350294657605625577640311649843568313221334549764542254109067981719622891691668002592062013422418861719081411254729051921126674399091384735294265112582336148964817469246381660841544350147445718329148070157630488343215278417238742429436332157385008423016897270490617426862081914591777269801684900686565293382634331277467240610269188490842990866520816418277880276059754544768103664689985460024537103561675318088229039696669577481874734533236309986094319020852900085393827184033690096941078550278564260614849024285205828383735341285740814613633758664327153570944417344136381252048381598349054253726625874688359535349239575364062397257687368074648871099224939804136004138198192105044996595768419798150447781650604493323915977227745394595151523687502531055756693552984641226250424889223396871133931438824098593973507704961834933836934250159012079854339995636469692261063331317881068998474750109817619883717031659531058694758311775132760657988098720994081461662825352085109020392226971364385447421240430779189261907632506690832792641196306932663162194074177527684699644943101201519993975970239822688565567374912436630558573034463784929758342757227153894118018149450428362738002639449931287373991383866575909467656100365984383158678666866334834699710322178849761892888407805853930128931566107709102792810378499884070958055308925840752075474593728032933376691043870661899968944873432865456230251702808040937198425397651810483717767877520136708659916343126172554058873184996567382076907099377030687409116872354535607539431867287707093889761872499320383654938711975209474085838805792583828423501777027359167903499664465193630089852663651879646129190924486481188175229271043821311569218492120099793573289745553050272430400544093794129453031289482007781165275591336270312005912979717051101018253247430152580321906871477882201192504038260443569853607886860387923857328796129647878424807900630407117560350416707284266480249468741598026585628536078745906825859112564929172034810240545229629470419712782890781750558500896511378991932303290254807816374697387273452107132815434022332037529614760021929930473111686698884966490005029997917894093198662952146399044837304683159541226141204038512926305066048443774594612208840732787534013617351378221022841724882908914533632297160614837413327443677059356571245732632178350739348011635692408417175425656941901797430771334728283972447905857921498551142887814200540977101875494116796658107839391574829790253641104085803023035390309053187158357322439464799636216470404269826222548477579160313778953760770988718711012840329254780119265127458160617102804474553193322950913348296237860680406338796456384903222143551269027260329483792435720884781164846165522490401035808788646245610038173902249446737314590086227025406399042748956443034812827335779718158960711904574352702336294829143488543354582302263622929387199500819690862931982545238139962112650134025580276672615095030798225960165678969763767928649519346971337456571335213064230692305131007619461478610164170435752159052391405025631754861221033207020372802283955259500676106445969818972409728912227544246739759208595794963217250592326452716652446088159621960414107261441232932157817957726372792949030086693059417030306918029037836694448584509844998188782242636829193741873218961401349832375534069073792304813708310239435948475969942758900004572456790932693927871403445313615651203678697896807705543772457903933596675062513728509599844364883618130549540112642875064222111217433966574258090871330968339745100929600158774310252786606634523224057711000395737397171910410385692700120772131345736092844914898223332025447270702010110591347180659840403395540703238326903171452963998396750997435503504147109141612821974530386492576749253571904340544864258268640820818354612021455751943742024471554184600035490788998996046832687890435425711754683377443600460090983455763446143410862110087909447849016278632980510231929911616869359154406696576355773905911438387265553600128968814301160664455092408331338356778389222045452545159395303126419101284804825740855146131152474207688850592045803682622415372041287820654980666039433211365558446868109404743609327384436989821767684801341237161905649161350617746150764810275453714075113870713282226248666355497389592830095124822170549598213070446762830441060139493573858606943076616374408434535142887260567972180112752508803529685052339393466923277158422662922662314037558216877803810165122458763664778226275450780451697792490527347449584796989135024428112655891105257918160214091804778257257419144842748514115494823144688095655386197135005983534841420491424643039719078909904941860364343070052726148406592706466946651357498322319280712360783644284006488948546764877463406025276577260362475333377090784651008931745193922803158806985418362674286245980365505824564840899141240379777133071433709381362606275279284603437124092823259396739678891561372300260211280203166088481100407885929590943400785360736322951794758062390740123821226825583357013189627301318065113083289184952307377590874851560990659881859516700298560571353841280866758916973866769797834060371857384312960005932506672739058152121336412083752073033657185658639631748208390509105991136397395599265860724284771545078985379326451364403847955685691717539676100171811465890405479988252706733256734954599507884529719465398999225767400373968411496491795723330218441604313685612390354141945446906344424739631655639435433118916288760916484514142924155855127241955290878580948741284953187257383865396232956840140056249643591018099941638396100829750061567847022373050309568349603581479513347323047854721940859644935351433276502413903830078873597190387605509283135925811184351729142000798141900450759547292725474230544678862999549367619578403900082747592533230806661461678652434138857714920291759934719737784353192493797328823524445747014575352062499698787979053143577326289874348356131882180051424620070028610388364057899700410788966079164511671241019813083043248414434389600073440935476539243724727467044426595045052707499286275211790340100216028935674557130242011812777822294751724464977928956013089832299541126615702756744325555585006328333523422270256664018358334548178416437633782422312644497837180605030192051276715012383713568648757943200624080246042791243349701808788468519934278953837844289095644440760077960062570538786869785781783826791977451576842382997708364827072884091192270597541881531627705904305631937481324016232285645411334602229120250901665084806503989202633849978949114052138345440397949050887844893563800883423012116163694198727224131445503159076194068657617453462856644344996999684944155520632407765656105202290283822133980278076795926179223193701299340583095021020817173525238406204607160156950591806719482989529351118679317793130582989526759839211251285654569519636865109873383399136246884545145926785759722734175781366888232947634490482900784953858980829714462918869222920154308607686425849469662662404450653116952684177343036132381470063796651984995005685552755038158549354971340281063900468756425696676581475366531590096428224235472855284765728724038550344917878143542207592194006324913312057071122150504336232959163686745103375509440662565718639257178817070393603181573564885203298704206161187657601461098809255400519210107438728485971910388030153304957695477996264438213490722383804732680377438629260463344236599908328019031672844007673624121822225956944215447026152986044789552737475134918044539057150749067361733364158810451762757615149542787048315107326147165268827203855011837332908712485018190334085580641136524722993859934851935749243392143041689638562711529573006266963295986679136510786394928679716628629410897761318548170287138508085713008797416534083963272776382390740724252213220433204374967199854049484054009645005999900383765691543152884406051393170270672295598832513091706176368031785001436880740286602455253846817665669103853820927581285667477999760031578059784485705794301934946696064054571089388165451221909462479937944950633574571005791828143148050366930454537000194156469445516491434336705156969470849625815760517515159099977082016906996579651610996311540209642677724787171207398249046587485607573840351896061031670778379067204051582734267228388989740284739035584745973269212755709216552218397921570204918564670616642577008062055840660500129208952203437074719739996342858307162039269337621693153073670220384334783220286738349523261211799523284145616949498017563828334345302595887277621319559246611605224065118507420446544296356151219276676412434022566224891758320527148602674646164981584521699509190128421963858662075791144748576564893622352811888043785961294952951044401967792836388948878406253405761890890712395866772864786979094255725074817367956810586644861093679473148502301534121691689330285004128399101124366004161259103629069254690397945750072820475866785575078423817152131281732931674823598442976208810642646016801524865085547421198968421583483894254953256663561095534589445736370651750573282700529553724802012751795695099918172029841129877122282194192667480277054159470721675458301339383650773591645336250568361774301162729816514258770629903459783667015207540543077658059591295736636204682900157761440671710857805569475959215002677102270286984871555339622549709872659711044656870047102012462723912835524465111880645883898562613901344977530804496182551576412928950911731010256517063016412341124903122317925334615811062705657931887151522674623135046660734235595470454570896651883959756161512613356638208519244483512666762253266896597419821699175059071994925003121681888895473777339704363565013256753442441570644047863944220261347819612335846917979493365782341338645292092677767557870380588050612898779854577685724959140649245225877119715877821211506074894537639071057800768857523536350022973079556805195181583116388557645041076995208108969602549016428219380879965574622832011685569829932622421352584025598870194238861075229468097719385249140583896434566649327399126089715138191876696525950851599920535818643503804649575020838882968907943737191980634376311971947904787188376086266403040610057084389169986303447228429476840548968152082912987484066632711396415548696651839651724858986982502255565065296080054976414509305443207463090406387898799621275025116860018721772924343822344256907299831115224278369426420054438584037910752788503897093399567924619025163529153738790749757124337507835748445741740638406308447202432322824411718570883027838896678523704262801916016470172422048251724615037060122660148886742819167445690641178128215284071811647293073906141254410337992139637100655723254269106901938556905427700705099879715311857346474194434759708633128985890642956787620713389037511544334489261255151377505724079057569287908095812899651878351180812405497310718709727307082402210895101097838169299513162636267943686846260513868856268487099573636392504049657659599896078278337979683204106455921937276221786645029761242213360384187819465239250104472684956793116270691822999001509722241914057150256335631074008763950318855740293969630458245996714610986989386559981360161583902873766519884793362190247237057899473170562412824914100641275892236888965038103862504314582077412605381969779651341689199750632103019298507488834383419873174441749570754095453733707017316477535016410753847926962090484262174854093640096791214798507857524044149822910659266421842871453480505155891189857800953738263761865305172609450477232711378152528634351979502488712135658292769775018367715708082009163371627754134372000020724346422989718078053779400403563502286900458250320062517712288593173382303137428207993909347335846169017054490631243310231331207901777302636136205198328764548824914498788114822580810669627159854359272838613577025652193861541242612122452105619028205554283387164879688016161845538045399489354468795786052584684765108020496486664983946681533391631120560081621014636260488236339361305698471690222188543123854227538603877087169909556607994773206179829058516959256907003485657430608100783642382315253785908456793513023890399653049285579994036837800464135728755910879609811940072861752157778790599468287211465845474978882863367498951310360583264518469267532744153709437681683861087726102670664400151078544519441610793474219044817949277084811425738649382052476622129521963652477286990049265439190934816033861264707479866803814745104536432096954327933491471357731674671735081437109022892101242329759858236707473642230654190719655188298087993071188993365145010437899550110724991306570711122574176421102117957252372912622246662238810659380037456392075458555370104798323384057637367638578585641025541926898062957728410767807509841365470264615784279064857278071888259820000654129978012909129076995076241381926759902207050708381721432669846140736211773192929534349114281444132554250211228748694456206426474444812581866762867478720480751951836357906001196575476924963374199659421162010159392450856616278954076065610570880392691663571320604930041650267888295154459347076222186492535043610807875957317954671133013118965174452667068622140303562641426020024915245936412616477580265567619367874209617217251142925004795630799933569453405159449024362366421712546626715686252302797984879685194182819433076125356521087379843508682437812553652742916004141340239638227479415879555888981991082601750069754068167228043372362820435815948386173837179119088993462895013264073888855171728921769632908379672710970160835069487959478994780392257353343388669336524507173131996552341201618577665078577082797991895811036690743047678343569891554469744997207793984379229297354887504667478034739243298828279592171873498182215050610633430613229974693963928964237459922288238191224991964618816380739902091743145210756944647049388468657737575955078888626590694119762445492835026573725573081663232888802822725513114660735751702735323830046615685056596860347298755859215505946201998760706802479618754391811098202711031980370955020465898759808389121719455745502311933024998684161051962201093767551622877982342493737060553132901812518853414630554954861081079689116054547295852336977200573759256441909443298681301989273800819342382454731568267236786107990191799850483900157857900309584552808826697866138767767080991640976311464650065251197575602600830936322662359090334708224921094130586412900347310313528380648774969466757414604409578513115460379403268310834304446776117629801250944960051956415076078291303184724090321318204715238648098035390667556508701376728441081429953983785221040809221441797974044700346393935164880292028375268866671207857985524237654946379680809403121550727225270544733751460171494334380852582153794408364183612576941691366796572738558625978506321015865128217887866750674215647642803618403005363244674233261309285762965889055691851789160433071631963390090395556193560887705809380344454824747402983072751074964624607977206422195687654857480424033658036435819747237288236101978693711401071835270272990736374944002578651727549968175253960000412446439761535063024035738445555264645627861641944282666694644503412669269662027438217526566163408110439253921765692528749214614194726031340966825216461295459759582776913621754024158409240985275903876550087909644544435984786868269812546524824907637765293718937304119805802939486015670109419816850372461718991598657012606929885808864302683150831845664185584747038542198103121202921029681726255008070266343454651882518772740479421582439674363976999487935071301165253869055667419964667447398064332669390918995878472549467571137865515072407998893020754547398554934572344089085872294003800198072850871618666949977637906301452832010899916564070221311466329190982734962846061701646070507013563499630271429843788994481863614250671985481070376655699518053112444961902134082392969685017868979005904338854873214869207409172364756889824343855557436712955565477342838155436289142766382164321230883827112005436261147773140408631336916629469078523864505416497041773799825268017865936835557035916857619940919329148283095981035718203422565626855605672273156222623606625511043387117396729859518525384736791346481885850729220385134085567486922637000687243218462884118275845989618278566293370762448547889710199854024829238167752294846753938391239078895115766612554721907624530345742531620089502779974816767950314933449616885964844147095234174228428256736981336916285952536262827392963590571635191283786928283458918911265229430467294682972545096583756506587810816691908960705266685413773962891332922500595570024374761740423802438342970082726651551588122973993342317107411294432203282473856535934716193409814322265009282205549885123378509719810624641051473428577892924997555421829819960338093243990723088720138639151977970203709964139181215035619677931885383026297011736097760673473191343106847654355489856852380018402125907639560004366424460122973856029840232514993974074668465105297519112082105071810546576561987398074152940413095005029371157476750073151709046230477523370029691116630730397713929036821418723227898048684269690423837563917432666373562094892291282958120761832240167665135512744883746786677949439477917940049900258445710077249140260801776789767503874674289238164118303090158538537965381675276190807933874929937951934902973628373620986667906745551707779377821688115875068620421063705550524506906259356674165770260509803692299020292319358051688377392748707651699308701789861955299460659043876592714738670472946472061039925663739225127091177867424733809068509543050725161466360293715021227376653680293809779769152408316091315882388802869329472454351140952209852380985725993161248807058831302051907674750430547424735561260297097759962056739799082184786213041777449442123017287655705273166768009429026159659967173408758722542272361206470831442408061282586593906697821281276544630003333714239214638613719745874586503558928443828705909755774152991321753130374948336900850464137746493874424884134494321527942965875108878271230326896098744072331515782637365396361332329891818374040991867297470338990048119042045918890842574334355204703335147018598271229607478146497493358231690750502682076586549754607864905962172807457478024270340186099104591989737133581679474497906342292635748598539061063669766869322589483413475123414158339086808618049872596931570922973843584364316227008185944003194482639703479371647125282195670937900503508566809750933218021695999219258146356881870659760580177428695498807106406298698126917788587277747722651583778996315841251263014974741033603400424555825323559460435609881189800481745583983129462869178851066292756569701478486561573405823617188027970667847579798816675737871812317796695858549003984071071566695469846046060600499352136805854513962909747262270363009892777440232303052282392472004130248579445645234397560785598560138009505738019160374058204360363984925289311326362470191664147558825088295818437733057321500682250539440774961516851260560751709951599994289712156799521814231013837352124560666634115492799458729515566700447728141365976044158396716918389635661829975828789063770593054833344780006001058842700454147957697936843415600465590281666358495925400272297540903844473511269509764128029867119790705408538026821476471308749959957715668646299669037412521901569313681716020212329866160213439910401043493550316982259891668913307457450567973212172878317994537305395097266911138872811666164687422195373174684936212476240727857399256523054110657957566763070590505093325067418082226641694243799768376224677674155363274533789609054677907755202780327476643775202631560992069194860476757608524533665483646710810768693649747119352767997973197176320296022121765763707061977404686757895959274805841729914903063630773384985467568041230071522229094451217228868243396041224136835136213229957134509276931541937342310067882769141747491241896554015749350046169870157535407746650186394970096760171882889819645711714455029725674618302181134273844713848824865984071682480798969316281710097128190963250510525836755047851252861666730976334146730926063347405764493500016708805231191977819613535257790191898633313431430597579919383613589032940274191800033251161474438808155959428430148129364627746969064971835195898001569703538785111624966584703323629135666484808174560171018335704570575854503905645624471787294852574079307054209063478390932578788787649539312088774811481516196100207498708381881081887831945339196501624415377097994435131158218364768110674256459088791163463019182973721970282643798338702467258078749833997166150184272784136810602953115054252990310203158042162397236895328971326854406778432744268655757908693512876368597233576322124328943275137842338276357786478761682709259306804471122564897425524508710413101937943273894603895597067148023691390624811690059234802615911453539339539472952904981309753651091080291160579278050057971268941318192550557038956365557400749605055638242792000881616127350007825212633843786578982453893891697283087265839283102974143636297448827756500542444823680040645980991275255611774986934530833128193549428455961154622894315886189684770927635323608470059993866689183842702439294842708722789743802574652763168887571025889500235378405794635210599658103446505114137501014499961733385053787405043759637079156794198144766103564890274878778345368371268247105022266929705575376764041375636819384774165054942002938663741308102371547662976780218060291415715379216014873093532368238924543027206810745094041191244885976550665082966713200688070680441690987347699898252616987271976247608002449530283274487146038307056575199366775058860482998812416209456390919491892605571369713094120227262897919945182470501947052107318868547520487275132120146983449289539487720518289296652997771311925542080420099961076379209695223236257672202629392146041028945544480397260210939260163528369695331553678479486471751931405835868160615972512124149905445465007989006534636301820972361756053101793226813847157275702534288806893685615069808198209549058725195387794408515762827490840602981103871048333561467561683388256167226911814136002792496930980452845584534560145762445153016902824773026720535926514376357748309281210033464067452605319737939133096835265326572932514618610747323252394207260861848405066027751440032708623800899786997584479345289496587235886158104893801177734409609303884736297226639469865884356458537895185703347461473219553521542161552531472386351311566590504685141048100554576297250783978418363692095380695631667203999120054710775537472423131818115473735732345488735847054041432233120487774935840851789587151722998988624979384618663393636922005717576258435865854354828275183239363071630986624612844320643281036307746357937423064364233264166488343021118125145866403616172299817951716022034104803871459794369334651113739344065777022409411580398910305501454972551024412221274308871331083278466478940645834707318040948826321132671170179036908939653171848529877562623429010076893038120883461983492027251250650601069491296317621217002315841373006971841001512409692710024641937508146993057512843023111970507859049079714630713995675313721081182415877202400285424943846377706590514843585627807730822054890434064929363395137629721775327525354477410671289758556697380510170617934298218512403078279898924415560715540109530454162929466812643532303395601274989847819661247977304136015795041083350567064594175559854209641100460706075648698141342192221102405025884022244864410695928551252676768729466530046952517641265543491836036253278407429638218435787646331399126344361215193362182262348836973538049194650694808612480586299739635270501201025497604073647153952590829140568178968539988059791013211093722968581496089038276125272941477900220744747998475310105053381302068143811170811849159594328260250383138732265408888665208925757814281221797025716872041386850896892551059282087033135777427811550970735733912755511110760986700693557443108062460296163806265945831532030936923619375167276417529479580040997241930414763678283621419849222337517523470106381483312638873829701268658523990400212476515710018974019405174300808351158338026882437570830690238364407980772109414587114253051217137882302062339000953637579022235220923876125466939621929014958240402679642347162096823981315739106795581414606766966345403961563232908980400427506345513284805621997539431886711293478889662808664819316089970424629230832239280404554626626448465600782987030940285744149099240993068792902134624293610182959744949514728538092505284744941824770793194631610886118924083671225505823281190289684549912166507530404368909063827137482720848147336249974683101643347437553922834542494301038530979165249987031637196016167489844926115874335380617030930487205762400353770136286177107289187428849072756378580384990915797245956322140184583336671162197916884203351138336504919422937023907834937927953622723495145610318455136322463241485638705902168592584042699528329431576405129490911961423485218986623615546573437518234804298152650405262681550353772214532301932561310289850190765946873188800856396840396025199037299267500706752885615065146408594079919505557504179751166173327917632957974207908071498451729540675327842967670251862595432677356086382735857346259622288740331443183849068482197470572906341737026060513624442707473627797860810812804858282439382751316460244659850699455494889867934860325189422736066411428924828138924139816343747624137700062510975144778094281214491007036378180750626284442485245846870321834434701707692744746135025032083234392983969272966673726878585223994537516235696335780753334192543481787606385121463615891227303286537504302127154096923011096014445000975304688324099285233021244590476950089320080375003450852642902523374674572392976481639592386216906068299686800741072073483710582216130816815435794589571177809386084318074204939721032871827138074131888610017332386349406744281568054288968432307044946171665556424453993497771492548032178099859908935044300169895901097393655760272415827960038989710737014848782848785506841215421542532507251471822345116122938961457213056446056199712938602654677215983669419545670996571551157161106037060560294146671463683216705901484438545590866904032742134998304744336282860296526537185844847423492627017788974595865567482396044736179450563119553969650595924495917669874021116766879219430926736238783765407115477877596340420735156881508722355058770258731792981449183589869291424745928566739116726503947019161840667229464987626272034199446191355416229448418273365745859954191002193051164629558593665492990846044410267638607159673457846807615947894229998420484474422079284590616615438680505596312426832112926558530417822774163161214246309815652058027740192662863473916571011509776950615137022638136969297941131471571521975455849050158159834049087932743919119149670652174881650322796323681604938724559310393538831344746503358686944203755034571655561746244459273584262729147391062473831448221286768780744566805856256491075275260660178197584602986202214281608354124628641606660811266375484621490235783490063995998939413867027356552672411445568419613845761299223613476399923156320405820999976412554755060963678509942393886578322553725569741439474091589683194286051743571827495208865110920791022904641821123914841320128438185985865753604156652761188207003944016201335820063611671155563020895183594305027185796090219517307589043016807700694868125159487324386591450634700942345539095810051608273094537236221734780202313510364541331564122166908168520745320362569522890176339973182973213180750053000405673636683315621362702393579701458603070173899083828787108517812698448987658866705470472041151586781767467788874910726190152445981854306457663762207480366470074295745281923964742886085077012247379750404772418739168991618341908750971953886710884841487491660837569011234833094719506102095152408026657172203512978723071420112190135487476201707208784778743690850015729931142283994590627039242952478017284225767677229959293037659345404698128256805217794194136632275577932608731538863879560218807505983830723594383247700415036174551083325779581339618691188465836130793512299401874956139318610368593332236670394139538908456835859935597938655865886718641039919465082567988005680718968042942999916863940096000503186444408877189880032564696626203367173775985709173299597445069842547147826021488873524421067646846943404251468381534688788962797805528820500596677234519191335815473270833273467535700159632698514505926200227122412085763804629713701781981251748075501730274708810718076144693963373677297091125574387486982922362117525842611228418120668294236095832996861015939420874885514776819457167137755073155340212568723922460720986494436899806058785472660100360110068637057441097300454370019089050272235449833881344391959469099789609052991957433178491308000766035991147691269534499767901966040799093418496049709259849802324099241733182302465799021242793143526438219042006490106437497189843739013982476356709865190286665020680697810555128288089615385082495465268801644450009082641790950385203183213625593641630710328525087033406762824743624983084023609907208319719591534233959375252494406007074891936358210556974017354313394313440830644937175998072263240687456924575020136116815842016254109300219404437856586053643921177323234656244693342410762694008455042727268425406316930869392532694452576453913045121060185853051443832808337403038788386946869916800428422260116743412317486333043471278349645943818865929168106627837538300757104743552565485049608985668662930195661952390881494818659918396494924351599885995800386979006100901548113225312269199092453669336100818880069883182932203576573729950256800845564046739440243002222913998766055876944526023902014249257078859537267496337004533276539570579725086976190966162040239522601015409843462842458137223845200697716730365615438299218606331992126492398031953536707940220002644498195804465453711148132405434998557467483793991839364955047724516748990417933968929207728310949800049324325879082714643289234607811000045295646853163222071481258415328957591391743934348043313084341820035184180248406451755032106609159177514288978161949127417722066311937089062018362626804243544539425139479123622751510680014692185442066445011774970656660032675083509923912975044956711782065826165089305832360808723489632122729891075861441142284002248670501914568591900921316490168083195020447534793389811804801677716177930191493411025397758103623368611626630957008001401675656781890727861625823923288233882072292977234994347689844194508956216027626405766259335284031455235742320495041986405630263570759679450210033543769696665976213708543297744817410151440538582556508728693889618024296550419016171636098452320808210517845053930991335644066169077731737555659247780285100219074453931994318017923579150764482555233643012275407046604718406247060975875354548194477853791020267000521226702565828203392333580823404915801345197976940417007068361649790959464921589734171669150836906849160005280421281048368507646329216085762304132178118078653965943219811410130234874291094787449969557016160239692284911222264058447752885864729425849717633324452850789650458099199861172421838174732352102952013977911508985543533294501747155148361509911416277628517016360452669601143306756072239533160767928289672826522824254766333493969856165820822270808829397586918362161379274101903003947258187708063015944502216404100909333523767837300856061334827553331818826709544065084324501133876146607742570820076294046703756689950969128449142655135337997772246095404929755608554636695094117170305908592732488291420595224547668720651349047890784982567758634849320030616888263338103564514627686091268236248523329774309603107085789170426618882473648626153314964157808805693844131969963488528853169619136816045533443187023583242805526061106402955690394473009646483542040819113598727173133054115590123017929619715194438268440073071160404375706760548228761430084624478416054696047293354538261220196475660147379272874541455311525134289945973732496815685690877007046502679221020999277204973801856341447391066004102944663782239746008543098204769713855251975501785065745857187120814441408407986538600978480152754188423446191156797345246089557502159463980448904769643495293886874876952110780118686731715429181716250281732426790582943558289210464180597807185044485355242907803087009608500278000507922373235336876663116256987363060918431021067209126573534759505725985775773693500503243911907253561289192017465759985618074357624657310982185535285735095508463672911874186492081875656421398746574970528813740634904407527333043114120200028220091642106862807955340191379298177179576823266759879048795345940449182353980591516807008199524660834084719691431436426671718013495969369603620050239920864533491681327110973763422791774551795520789536051231408902393361624723487486601451951720360456636659566681067590013705657647382914154188618882592254052451835165388465659001483812441104279392805297920016750874751711832493602542776194711531192978414885154196695730270250116882862028092657571604789875508386709556950577246194330208787855720077589766272032916978796995200142842480549918974621251515546078558948554335344122161341209245064078703881127407433073246170836388155626791124252831109620958530787879947610302512933809709138775034527331047742449862937545284687038821396901423002616709206807856778927810308636900429382292017385929619132130916125261663089280003723233071607316305194786967431747018976100571561106610917514771589663297226524942945503522800600688831311560431596019590464645489668406503513458440674856731728686138075748633693396610748596846560304557666426121655992171972324158991395452261445728479264762907230026284549762944759076837536456943836118598203497328435845420448923581653891049294124356771133829137512034252541411235945737922225428464501181045290489729994730637167995090242778793926968471058222336492012968617612826867449668187508898876145877922401619575489012051689671503072816992892898790149094563883237239067623211320725235143286163788830097664960222680691144130665125810722578426362273150466474904271962567385781385337484307006870680510141280042364331982489679615774810770207471362849133016007510361715936383222154453608161820259303057656430558294079143688988438273801182386858286990773486822979895944817008558786458988277384246129368508175021602697437067810522724206639551789874553036480636988592196327162446207987834855501302008940966738149206245756869522555195099454142414814179710155628209358067632590055083483694276954047313140692793080929339304770809008737976164945318472709873302639158260181328546744597446669334590639549028388961886859971840968159657947065656699635692676118666354394699560122137946735532542516208261364095064879884598944707295776465888650191850723074324878580127472212166891085545791164203278237834907418324215695322814072907110521223689873791669813445727938723107855773804790086788428357372155286203837410657626039908361140052116390719973872121403719619087688086172651825983214435675187696045693852246331885408638813477093817302274551737975102817918271745949335966976361963917690777898631802915099883535592643857597791431828962455760819302331107995166741604452972954941610004733769915620211022441207232449119653473630558518661089554074434241198603539766094452699170680212550359419469052193816221945026191214950519072930904292434383914934200190301418281511054691439312950057508605977027348760313700549919562775827460763592116660786306072130945980785287066366304642752977925056416392962529605598057172300191088829861491409450516729619860282067613602407725370597912833220264804393053328419253284295099591130808734130645315171041073937041216158815295766240392153423232973811114261509306009516378502757273787838966058517856037633077444463883567364927040883851588412508125884762627719996365666713167241153663418245168006943948937977496360456685310433613244522053616625384044202546635745396240055951881467850431122091871167474482206445024658824962562602114595539095492927447381675762132630198232266795684192025130900089968850693902658751246411590295787970109544445955684772652093007237881635867357011386320608334630383295461344787057089345220393145198023813030529332519865594374293689489674689339300046735714755657019343447010551289147426881876586724626432989924946657893531359445769280346154611894038842640351939977067640711488746875748007499321918177403268705792484184700663412141373257351774623762621788111778933350933333251427923040569842991637092887189377330543323615145502634303588409195592543258422485427258793521341430073584497064584520726124836033370762410453309804075875133882844421829552126374628480756443317027273161563677699847193276523491433032729520128419155532743714503424885889745426893103215066287467890198504151252622764717681033809307714921422498496545400874475182654088492410446438385448926687652616045072324857880794711217231608450791601264531909941713237267584261555388397162926404240545135293669314206903542513725343567114645611935970637944751118178507732324544083780168784617676482189293706606092097062707641425358588562505696940856131498584676145138869391361191765069126517804136030034132661575770635877178649280097795175435239558649835399797688705191335014640466646462780500618665708901996881530171916342056830047586705474250446835446753381596189315985577582353728660511276727675924991970531819395982485530977358142015975392856268923244523374514190047445330560137015245546278784628750956801670581109840381938863176760012094757774740150937260561783080767367940198964776024351991924734593991882502951144626092098794402061852615767523430205429898780449894138855477325728065848374234796777650500636130817187315214541230256934006113881621498026028685153474515188806345442276600760114135828422689575636427033097488395858720977766939937389054572178801396519043059752605776421995016565920716776878372843317008191110787109362249829619219374360333417466175284485767806491528675344584344504574051604273293401749456988854292873245524760197592706339006895875776021052383082040193524050230938915475468802495767504019018158002138245637055432317067600777516135662271469451081729931849201180732650017880111704711974137873693769111753692672047098054268006154698075213539195253497977394775442835800494492677404226210423312008695268138321970360278534773850594797008635650507540823369956980807342190981607344661777390668747784504021494420262497623287984740770392855250842282113757453727449056957931149751587272707820424929236284437723807786088453052577150359309632349751956222152259650179475347046697150698177471534262668526219052758591434239656094211558185222334345799425213012328690626648637930980127660752824719404308136044312899868257665978612563334329850273655005382644377142463319499009823224035995778853421781043792520135495327163652169526695110164951519127263262885563510520906500599954279733673595355856873850043304076731814580597225851373225001380716290159174905981643127816199601309607902979482253722906923974901398277475618773937520889053449026057561407923139389674633695439839848324719162206736318668635516802169248581646820084013086171547638367685197141664699742076160171532242790926285447555684816989951475364570139607186083210272208675372052543870604390829969278038103259907030385407966620136549970467099188596184944243111457856079017262310651963593567569066157590943064475230029501095823775366503286753199167775161793078645396808809583708236411933076770471338684589590101078549209644708037407644334776347487931137106146906221491382899386107913986005145475590935043875050386790868744765005548813090785809172718875272143268852921354347357824071987005135136225492127565943508769907112177219729666757481913035334415471005895794474966746511188479194285508505212624048051798591977257117506300750544159818454393974611746044384857019750269584815470196840253974942623336777945233144953023102271193295451480545854927580794634517880625438762020800878510755708782474908530396285558031065810943528642474026145175408165814425249868642653315860023335751835060605145372385362346486266367096936841178621317301879266352244664031553180977328487118787383234330399819735840291039188329664132360319980281949093693219607821398698925058140174052010634213316703128666661407560205923130262743250021325613865127097269151912654385189324567912885122791143380504849926349273938562641083798087893557388224546251257644275132886615462232440691197487853278144033658759723361387825538101386981668918396420251085601135160702681769140162084458012385516679821622010713160159952583837494203621896405248490683788175151303081393741639854616287633654764322014240574356423266190600509799206946186099258945100553543709381402338747253511039097793743286594606572760748149060441517824947066508803794929806496882274291806867193771094166780195821294583288567868672797445934741851678141549761526953920082222267083425394077471792947916328910990213095659268248080982642971091962046099910326990941717481476248585116883814076597197290018779802687538489548272046476326936687300931084400085488974947661044038296561736710603856445164398219611911215444944182024917805559575025166095914674860046875397328769107422076765140440230182682343314966527372454462315674850300120403870989303921628804878561613077565672177518512968394209013251354969604657065681799039943620754926593186133249046959159799801722293681811041011259874435605610302223690755468482839653403154765959451494594031764593707971708159364953377606031335527635386484627321985126701624664853218545030117494846317738441977695139711448195804304323458958337977841409397656583407430843655815553583802138233895385474906607496438501982412866839474985954379642353719918111930288581794916954289948833098792024266204899551651898408909846358839320161079261071441287777690518079774345804138603191109586292931988711568433047330009027444465455731553745220572156391168913015955362634332360090629925089356415610031790923435977534622187268955462472758457779172293548117026248006839619095135340272965519932027907945595474745112370502243946513874014883463521124158527943580710155402093778156644320921184906201157714917970414828232493491044195594425951163235984308783386339001543881275384368650926879871199786330357216780825956235993864917556135630743269870954529253142611801136632370213297875733693818290521658647586364015672750932414257541746488512775528826070945749034133536984304072849836420958149238214305895615241602814814034235794539273466204448640651985131850603505292226298493043847937038337957152162734039402437574294508714036848977429651265810977418712877685227467524676946923436098160883382233258326122236923328285281116445127654103698944392563994209323101396577547211839426480043139281782269497311225699635031102167125973324029804057033485429896101668872249755001845524734280284928331208801910071336693452262187477557236761998049634731425944153989369952111434672112268559363128426881452246365237277939251224924061329117040631449589307119140796976811339282398836728322891233674183416098521196136350307415531988113802734056454052322737937871708481364521656883258798430784146198128408110403556675033944311213884268816560403011351720917760204131405741755782944144966874952453045969029612318101039086726260279069095627710054741062411971735758042692151979630836468939626216448220123407292954903040242034924111743421496209458508895817559491344073766067500985821629053256614222332362214816906591952898763607492041219981819291187681672987488697698618455951122926273979036198606687959941712670253133695787073866827959779497347502230845561194629810902047426909976405309144042120904374949127688236122173103044700397376925642518700449899327032823062892842704694755825614131442679558942409126151247657110293586238270764682264690585017171382535624531379312479918791084686314528759096790880436590810304040620426427651340147560480689368752470803042576435753672687909599254985890106917916001308346007265730010582273317208256090174442348508675380416491964110743755626723236863879570887473164933829569328802277137421338409413710114966625281390100443779157815259442455653919540426193980455456040008393281128404948322801943658433555970965101211509157178078302311746062731183307333854114475424507174993951824037136225226548814284127574025926972353345124620615603268414786229810320920172443213958830130761595268775752323635395140385162871644135357970510729517445118128094718442535710384643355116414489271844268614033726251255575904775319422194707717927040692407002389940899994951443542413742773590308575697798540898836185041467303224403962892144839659717744146516385468777957887654920038009102937510560781287274348485377739865484681262705435663763341882375569000427649407304777392511221469330271232455947384379921950224249013781956002236970798373212103275160474982363595961403348419849580424853783585010252666591446681974088058773954693314770599026974660315822521286816200978126013277443292363051121418411296219488190085782752654124002667404635958312825701186998856462910611011146862421191380103326014458541126964734601852828522500458521372453026910795461088112211197889916552731603212777993437071134862289087833456509100565243412812680743072483307243295363611359825349415534065032150148905950941489603784439030396962873981890707577104306409817938611240691191873496580907793211497842273362712863357113413794445211697751994729503897030606487442118299075385256904658888993833012981247717114959190317022034182006086097576198100651605611383916817465391333053303814667045985045793161701296009752113383433088605742065787039367862378174370053338126269572654121026165093481675880851895822261801654681532195991532925760039530051691277797820871173076520569598367456474048320839823976060727408536404389802895641330924907663406504837932025851178556285855013442070005713041451934035761243494708666920094753670759001424452316024146370258973426604161772113029700290731075139268902353053999222858663234956097366150934880911779721641495713676696881032931659236308605564121837628385831631870344312592697195152686416564879503818163823763113396321291309357301310232978244835823892750868579524084570480746036050991472968849565333298685109352754639734351814552711653140762919981275535499082918220636857708778157110147099018314708866832521599586124796040772746198797587084853854273408720714313167974694237959711526754111611782188592676156290646669343961627175691098649275644959302775944242716759682981957130223483009244254273355932029578405827464650202056030796030509632322304876125995442519176983464242750048225131608451370867780537655674833139658281877015882476629467845876873800827634699190689372158191372642380036150603162359550550285594971988040670387173246756170614949363732762814388575828557718159788656549478249844748968120250488942089666293941732173505443958904692503330523904458743627235039776168845362237006860068665094950380715363151843084829936665093975348513969444811845008168542490100998196275528457914410386972569498859567009609121884944375139174381906628330395307509440805039141548696932277912259131695014039643751903169099488465277180760293053800191687243764070321184042479342358685006555723661730931495269560207358675218908971698222754611558257202101875014938590945578163507413769042106889773298684386167382673394772397967686059532904553658098410187446858538323715182022535821655056508881178746642366447920368086505875129017082099650228758201888957886150646023519765013143597967800224976718929037765182948423832641911197989238990849619220650501953050260922641404571801988938942687874533768171457818504879377717470851285085509503696685615545125028405727144292898536121710520454789294881277938176370278366996656859526539454241891251662110828722580220747414473571120057852344067316653945429566275720717272490762746188872235196799494785104496395192608282555198722712719226336450339498229707696287000003002165554126624410666257390443552895171449885575474768935500776765956269696903324133266287028658477040810634555099919890769791238887281795511559110886407512241689308688411075423441991383475556797331720380386919654609626261603602713935983326838354578298478198285497041527768829433185710484897856928534881869420068934443068959200788374433949614812810979437488982203889669098351402191927128507244194960423819623213245716465688961549128828876669682209232764048037891512264856482313168408610227274259257688469357980712568627048561213106062116010149538677572173543121836541996245895797858613349342619416304651536802307892411461078940102980174919107368525163299019415603293250398016559869225154125979457687145425177963797290082942023075211254300782634625687375064953016710130395105426815540687176095221637480188550598118929294437568372659788986090023665444693874290305530201930985791453676501471607898668506285994772843060569338417607163806580942887668937563212690587904321312892989288502814661235101112017373372311063054466691723623531386361473490948197374602782461891482183490925895305043555960389060181531579153105161023943510863989592107362730537428437930881552875397658065232302710560347543433263888698905417806127412271632851283391728760587072340944506253481070536599003071169676111497599275782296255685572155956401076004094262983817073965007955003718003975279322549042085270482360689076687768534068114785866244298567154325571917287862574585451780171711891357779889570165059613645328282527887873328867337845997471363759601493622148496712126671577470310953208421400981463928090963776966080527532021644198201542298407502076733611072029127651183899672431312459675454912773556636921162660696182918139667390499339708742265307862201276364501697392720805920150079741087187311364947915613405935873286670001120114362929267490592156701964935175647324217583451759524251047856646240979151886091139521800557367420556509032118773266014877105479950894006141701169930636841016102340025369632505344503924125642157333707777510599707402326397883659967297989624934503162919776260807666337673221832860469012963237944287325002395292344913635868624421849151183449752702684560274331742884882764095813015299976637771959056315464693380917399271041369957579350895270927315353703132788802803331877509349009192307802279472022497551844552583420332073480280578881076578783311399683413019356333931432859229900022673928932843359261644176729707812093891022518692184298100200663233176381427458839423017269132899543045305349700472513530533618318585817475832724779336677631465176805963926994767827418919332577995818643727959146675269660671824486753812059779698939903917835076733177039511317352884756575692222351836375427851377978509294744179713581041029541419938963356454361487851738483893858188693989697561801538001516457138513615391536143186055511217071906106591256499860460982325435421395688459880369712137508567652693863432541843226958501036402384878434406115452707699558363358805471146108910205417652751170200538775618914479894526980941852499355212019992749711234998291323731746709425641890789007499525317792867493829420087195214335951158694164379126165138644853574525195063723675029616911161611671825793123626612910899713788644355846558891859112658102243312266081034814839539216699438769202784442557166059739658059369096116877761428022520553779030442017316805377946841877186007338268791619068332495147260973184194939696246613746896308262753658579551770601748312734679236182483485763306238453577904390334579633962118644008629740310152741778934213804836513676867754340121997194376956921645891970487077894439910409897188314988008122096254794975251383969123797837897435538866154954407299235114471647973999159113287907985454435433524198327868450466262812472289011742599007059031173024250712079926615672993787021359882852393009315745358976289185904930577172058069407550782199974200257781004642083530260405987536271385209615326208817206954328229942226628274884826057119415350878989264866171900042158170551223867498970676570909193481167892537002588089338176618467268094376317103485247264293233487939804369442905860095348029178642350103948461627981585464853523878119123700593976527359985027579364973849731886538936552749565180688644243373691564300533498121886076607587199038384358600329676946043667154177026641652701197302984046591264613931937108073250928643483282722824327871480410475869679664762339517544891443978403396540179183951917178049082357599776271486320596753292895031558996691643976920034843062633125817925268479366769120238538451954767072299674258017441120591172172090699378041166703436170460609794054634434217088057552798648693469416422079036973801411946026766671928495387483355448644092773929166067946879274869348221870842252320830672262649233138350333264348831454961623191717929622048939053962952418866488825992308430771350211434174314512709640988410257755188639115976284286915273483258695050818292095038232609431023096283259792912867028177706858703662949922038570200219231202122001291433039262113266292772991836500210827530821508879815689717813028982045898076172367785128412766707490415318254552731179551737090751264455590580590094903539747275865587760012711143156091870470812112082894250908283785552403884163496980011205569300062227073545081212783613243061451970772762427957065767633059251249138235773525330661243263592830388103326837616249547300109130968364750964621043612242868077455041583300692824168637328329506047548701125359453065842891740070262119515698440485731741463961472259887401539328473373396673638045424529505872378239992392318270908530153409533936958755002883293645668051803885178101142269290992382408481453297827648580598470815293583704329259442412672743214152360845022680452628610164389790997135855996448886407508229162123890272567422079053140627434679823084124278809944988858431457921658940276736351319472009316974793550596921958310262133428954925285829974941242720048661652796883534596257770976200354729266115473543412295783164083501584906284559935003813295134568788972353222460283485484741217623855364123783171577499511900901836904713707489291087875387271425067336436716435820890112645359950634706060431805838071085374529472555106809252479547089924616092205889656257429826322427400257100637198798580207266175046577033317599030626804571769492054358713515720358717971640681788252122410226313487248062688882225136628690351065715806040993255833990645224582984565070185626843266340789773931862073930014386816310082422331951526695849458702974975869672247395277608441582783496951126629211319348186634951349929276890510495834614064433091507351446362796600789472594694793737252108035437457654092580063505659692821563329215072945734894270578767808938189290096289463235602114950208093230972165815163533087511126409569144575244116379665505320027340844069606132023235962123006444150010979997828857838743168705464091061818464010816597244279397256579059164750642510124113244930087514148862563041402119175085780368644655192014340294954375703037683708105285451901163020438666620178241610184050183859919824998077662116102463557084089793975462391276693529782397627536511341326466478200967091164867393144848197887814256957671081820158450734032733248033979087117089637339303156867112967837720952467524894553941573930805672850810026619005085685235800055977413041245809954202010455637112939588397141184537609999169315246384274989542518221051766487864508900200713746274354127671419934377349381554622895968541810937983699002287888447950647048298197077045791457719308786301964713975426402133409232235947274222124744351741993798316749150602104349599848542237802312583889024332262832897865772861337754761181188279751542584766770534156423624158381168028970532343412359773798072336453108858722337021354761332427020316105852428871933386959827299397702111200110366484093407931493421678797670101920251423785554670385168945305649833552729850292498171926908190304479761286314204230946092507887641426900467832106655302778771997050908847917807346096737383126586513929621736362811694408691448986598142095573674301797835027481281083232978407173236186674536013611582456019204555361299415538915962343335290761726276240825776828858274171300174079932013779058575516163391473815859987546894701842002652464531956325808130401755868772814733564043265184919744748225303420110317151221277433499156130215780623331639855102037579342279072060996363256109632676084689930170107343738138143770358100218023002168891128816360321640678305103560103248588908970303133408265149700402404235025867046427488630535654932957266421008121510103250415834458971734258055751346052682602842780861747469857666271512154494436590635578073461391521948690468911595891334686069828362324685118420731366730094582984879624328623776017740686788700685752608633166284988838444992990031275294671469979114037206723996847629410924773198016658033080559902701640646184917068449211004877275732890702615812543076429418920315378363258915428599021090750381280653895892543453043162406374284254469630212842275696056410446915566136663238589344284782249614639580340548367937682386700011597693950238962623659204140709494688202145767921178671222972520346604166262634034448612432613452341797664369671521873520935453765108930965886051634847256734959378222417426058902714551635139031437485239599587565866622233966580406446649692301330266991545733297568843317825867917306458309637405050698863473447251640353311381069119038324573437927509992598020876737996699401604611949486416663375371741582693159144836774475899130085040516628268280529855650454976093121350641162591642538683544034380947856879929855043448341882731568880887252874952510827063569294294640698729703407633626873322248179594639782807273717520044715709986041304521512289635748674198692147341354850103943546243908692701854791226239101613648832766714880910328447369065647419709352431386447439476910163965722468445813609060206016666192796712952234203234106794201059280771189351913735641064499653574366577385723673261363499011252745493428837817500215119950474843486137847693326025850678477368885611394430998813283281166811871219422521045469350495941802869220683968257736628648518802066292894975991549938234200289359951014334274955185859308609339534717748105821357679366741388145619466076416952309589167916242370081472024324173751629123076690516272318149862092140834955312332451026993856287470075644363325245923321237570117742419246902163629284515608539768375054025486396182316465687342670986212102970502855492492374086147431222255223090702641157663839315654853104395614577986889228237461620567646674127620049647090345305054384516769960256611459969588134861553567757107186090568559651954861992080003788966502756419386151675728985196241877674019059881090995376206853822654104856635477032854341899602638864739334609598873769307696143378081380518117972832512758435250555917093849648457797754827277428797935981286340339868592845540209705754842152914428178973884165886664322911220999134891261151305717053693057282206111441155692439684229780365319840899656622846455353082695773269667476190683543132677771871801459124166532328519643518035045054551117447900429032478829230869039297383381717132877476434877300864242080035566344324368772038568934788795291268970587864569565508397304081077224169015661340992537086666554651134925248282450236631254586034400328825649545606331452397179680629506708324790566146018717793900065753380077025659303554377485984553412077148836172197215445333378015132322171194382280275851085498981229888387150219877617173854216550497363336852118406872765114669007443523928561018365062298432264828460758593759581047529086166744073873905758765635696721839350093103221143409566961687727993688906080486692214413974717633056433683723362570097105922280000315038461964207276517167368527381109995547182510417118788939792255679059434844651104760089187260805711128127198132486106181228787947289408121466257659480187652992272735836015068122257437571124879794993269238453614429327454017340136402884215773484377802510072499983062316322088451007919819023078628512092700165977948092820023258886001299013342949590194523542216059207114074894562370949613558245840849228010340460084728423376162011043745337500073546419502683539764981599121658032868520609942624869004930323405768269617618339649675450182241545404229824747845900097220778572693415887660153629409052421310431139150692600967815963223658357733472125468351583228957697544210122595317980926443823603446329483767553189803923208299236694898460470173718232630878541752900822192759949741894034755528586790676085395270285711460116245863404406826221291238521203595123000395440685171217699977070511498639625255987471891445323556594063310954545137813225984421935386051646355082154733975805476986072295818455156214459218616234128803532215836087439375786771600963728803310659533231302458149206025648195699525647022166840177548003566275969828409067868268258297374713057384873591363195315180626284855488305568833958815144633043302622624946381066267113339874027685756307213035890237508490394146874085439253069807413426669162981453879225275141719007307354043278495872791601719141578105948877584255208383420070805532638939728652721460133997634641630126773193737660452590924399791825235652956505500892344185791042704226789127397426614572565025090586230876031289295682435193604674691229013443834737924778080493307851599267921490632867443031666760847197095996974455892470294860882613637364866330357630909444711668235039104670798143103867718991914426609298875212119320044815078248270532350796471895106328830206721580424234977975211688231440517574438921170491619616957570402742781498739145617317240146063688571654762626349835199430948589804470072412037643726009816334579920948407266011600874080655321122081843364497853803260620879164250133174080354293535513777415783464699978498432460705291743002714755482289822657301922467888587921357461994802482457435078684884067001902845363553239407836959445126063824630972496685385419135741095251473788207316823227316468082810048119692243866617404116845514293775590576096181278054322349926654076596734973649588253590998543543735321449900561577735445607280153022459004430937076826310213196160673953820637672288911040831960557516624705702492495222731743342910109779872156742714854679400207411327626283894487709140603768619606682728318833796738622964039502337064976034896185372793277433268714571118575339764014731978932364682515099997885670710892393867920104681713910312402543198696237325693445866758534910526936607216424177938150308102803098769317765274767605948518481374922282618282982840751457616508566702567260081332927069317654957398342980761907460148663476676658327867717698366562053005132678268687664297562021614960346966890532371836379783830132284093848347192336217062968056685569946851659030164660134766457493977250371574902508676030803769572247652366937763369527065292970539696455740138038140186181470415386458052139766448341373690359738655196616883456128082577754057957799573057120251804680907032912218811509405603598044975352754382540098940829198762218320547901998882760478163751409180398852269721195795768280570607694458872577824213137055778095294489538326128398631845074672237948019631526864329251691178204532975496467958876002472243786185430712892346050165033984482119528783157817454713440251630597977370137516194485991383776952226385732945659096977733562422666440279057322220357485366059440389616717052918709818998406493394722400403526006248605459177676260253767398334359133630211294695188619239772303442898424490763192703487954912153671572238524742906651039534218952822054668720682150920215824913411194599216229762572744111139296289169266341925697610401947465374742870036816121665814733305436162208915747383384299171861690352558899747007957394788911437646862803255314097551463894228311891633086194669173466972653489720156916376486682771501633441747134651398215800500681860225812892414760989087205355056283359187282036318692410045195053935871409232984813849125941096700328892117778482059461492410167060072999096845931560480593036556748435667424415427922497410978889156137370975635763829700058975308950971802394392374431017735506662912495778834214975601018661767910735796199130545183316183166434059000428842103955937739260870869587659842584107367246305586630046424599570149577387912155360186076058823059377101990292949847874238339499806877316898449195037327678509423502126588782613981497588874931517290399290427515670620588330871984222918885028538189524061053515316449834213688315789761772432442951366386558950576472430572873639024424147209885530864698296187315819480085993052314945950352052957665977772549941536457063006949170642120534540643180385265098819442735816621929469200817925810396146363219685467972235856425035124228470342477326003764273344726512044095543396676695456313465242884313266649727934833188801117944184856665043183132622312102583057623141659996452165566823474732236444956568946397708875378669416995720287503210151472802304053539265372459294585314671609615452031422352794117254300587902114169543153506289007070366095305894489027095926996742069387825024076083000657644326849559118762720721135335338669939396099809892795031782347213728888214813216275621932706305728341618500437599705323271067763235266622401277644602205942561684973193671319307971183636378478447454201883466512700781345738974877975163365344975935174874278531785315311316669342076699353848022270950490499602110718296010969196264210158090777647014296548319622289677547261347773937442870213377994179635902303662122274395926229747039658792457036394322147742680509045570002685720899364610783972405004031518785256135077161841904627032194712306052102704090370335070020290946468937309449692751859152699951885383411755186673816469087203924545747623994441176728105504631541995253018602447097530856142149633504181201735750927037801534163589123102197542578176368667887532028402760636439909891510512135573514266162119114509533438207101817160984201875674832459949160481235395260714043298272622469522893791088437056552439714565411357029167353245799792544394161158008394787391221909041527997187245454782707832461014673323328746803898323990511028672895875851997105010420151980188898344458689970729168377227553904640292403766817062711664528682407251167644228300429582019841049930578547864010293045718235099390726165321546868792693683635531098803317398871181914521039384661253405644549309494665089127687567957601298235226050626994984206741152420712851509336334620339914626606938114902284482969227155260278998831878214237135121188569320328093137158319297984261179025908793007132680287595847993842301793367094979169520640289518642175757609934333386421228787704379784649503545832759386809230810916826354450006461927185916723060157940659258368275744776429019246071953783154247914740231510985534604263223660587587833427599102189790652764709119869392483941482194147852834291013041206700223650760325019386974365578946106979930519910307370489419293796586914273035018993785663534372255044535032086212997936797940727139511539405607958251786275062727883837982202923093405553329256308504452523142860667005699464281300519540671662183431323202394916696071797412172324832084314449207283417565991398344275879717902903605117083586969851802347028090253128460245545285891518323424194967062178416236370581246689349709290809186157734311798262218223691902150489532616483046588309119447726159643015381836153765716724256885274502180687864273878350978556678741431228592710685578305353308909156599389522063522119826435275339161773419002809745459759316129424531690376400881948045035373540649160731392685209911627031378567062936201879355796314771477356825393594254813061200496780796908152033282629680301362723584594915268843291024908697872772502647155867660759636413116947674846056762367113439988485415063131982231938810575353763611304294195727031253537247156337636551517496177787328050628866649605373411796243599372989545396210960349727712998439014917092469051369199575486317186871462484476553381804703415795711790597781215724038658685179911404459670603605708374714283300169324988650085421578818527775125775888145823868923296779267547385310982630816514506032608945282676877817445751778496082136965814058758485118800829045659590184269742154796075467865089220992404256366272553227178140939143529508049339050757096450751283446338887793022415802252267043106149722818973662297344692130389304430611287320053055176183547496798914713662585349411891766741972362965864383905635847932575294435869932867558437111920251895244516992944604594939394328773652352903929659618681563283542330893524158242986629245328114933174230653530493965310497790903057634188214369741062220087509443381015445064425547008541899007588690034449234375977713960138096500819423231837846891904073445017371794347830471661202695326607435382316873473596325603869177258599665037119405115834426765526132423298811783640500662321764153978468323779306222491015899395765593570027405663238063533570040015307505844604239272698031342397595943612704188640091784961119214134413117681346019988182602905150073930635078845171077724308046093152136859604236725627155577262293479814095022055397404745471117214351774917134913422922605467599517130314549014220807712990075534067544708993088704978458414070223809193837838758365369799032846070017647885133601074525589256452790306457540322836674560054225154171605630245440671451353417146007255316722771052290537266514758225974455249540631788103130479803377896543235951006038706017489365417149648738739245900540350648949196101325176383534921670106687896136100640829195401329520924088451486822433112201144027262078543672919850599823545509008562436576404759217121669517181773027037601086546874745201956537672755062707342466067275490547737158067482834593235761691740458151238317041631977427188754259893416411387176992515573570932019646566469776200057270010705085183766560478391690621859601010468148303702315363334584285260514961049029729226334028677693411969349264985524703652477013055093768898940943777331232730050190200187793559571537917484812620601381628175944057016356369994842348613615047502642317358103846471645210697072460961862179132626897400233303942403813199207830454410400970590936672917615454742308613357460877008863008315783924344634857567886500751681730464630878000895228794016601535164800280322792861887836186899532713470168202139414709816527268069863763478682260467720228831546111015164868774046121088770421773863605131944393151296413616835225123885887050837871896635589598333684365221944227281896114783093667044814914010438680250419274881542420713703660889943299963606172619279350499131197500283785413959310496253991686881406840533344955138347633939667837428324606959643212915805853204342484130806029617601815603270467051319960882513989564141586852592402866871691272741744192647555687545671208443662892702848025134678558210296002777693971480747982589885413981469144705079588676128139172247982060022590830561568228766512871487670294879439894414883386368785695226437015332476867583588388022018947889883401408262166148442706590154331012741766854934426941583428235975131441792012702476626869917376987006250471355625059597730946909580300363524132300314762584165952722563034926075131287124444040938752572810324657477906011413566205643145773989244236836604778353343672674385286869644838362613330571079584526869504611339100219646698490885582806195540258273063144977680437945237617997296526214190041743403353700544472090751722917455375673797887679388321720785838754921720466222481441958603503139338207426969250154750500300871815319285908556796077565281837154266070559174064069964898702522276006066424086677501691042300873975609025157247536099369375960360581106566340992587485365537757808776719657320477317130339677976672316092751721335974115955619435933608928665575578744215833536864617558401568603125467501343765256692226364428968542285505409240701718028031981668983258996764199339495764215865092769019836391864945599056850423137751089390262971081223782585630667743799085767263459823825410959478504642384210881615632058025328230815222142383865359657493278989203714966487818710689063216875747319283281216531241523097648503388342028493182708355182031551356100686336585536842577787334478365258826738524413285237672856735845667308484765863207035162129112075034175916744238018448873836023648964974121641343111277715826821943607286705588133330600875975843656430125042863201948819426325279546955144923004944536867059053134627688197265141601304586400978358536168327904034090059565201861137254369536424021708109497495677578956614301361766825964542477680146973953316880625869891068564874910507191968919783568849922378398234367189464481289937128621700186345102343811127939462388862130980260136644399263624290316600647935506838396450262026773319083648509820817385304408342633653316509992171182362154455178775402351737522609272694548118567250896585707971073754083812802805412512509983973953511854063634121017892988868271625826197947575648037714614181354191270873260863164333781919390734132721324341640299366723861972504900750513569580135957696744865081714750073721942128368162176921599949403401801038770119778757418372416367727618799577179528735046755060576648878848623866023722607547415871436124394626534415784593562766325956944138012824623445764347718308922451456898753019132081754053890207659856625574022352886011303904566173716233136891662475136070345562955215339740492908760303268490258328821897453064552204061010842280875312706028202471393273102906308072925709386092693327422857810837679583784569128650555553109302773262560412391212361963517534609132126238787137166689228146955818524133250689635257487732897216031833520670859611619938849093655643696148368869656405920247275916365997105850872247577368225552520654173544840197242531250955259789284690239037420067906617387792754928566229608030700748024456798446085379290683771639385074506677797943462606802552294251881117664613131467006833370123176866513709301705795944701978010193062038515754564593896192367258657253687034911991746647601086924253928827634341445820432409092465669703501334954024659104053966029900239277773651478594676447737277512999308173556707701428334372533800780439694779774616560348456113632250180121605289068148892687958292786129127365916575736352112599382091197008572551095134425403651883983909637518380750321043238464697944696422730759022235894028634829573850573370203991399561197369887166662020775837068402029629993821989373033645559635723900015988103209443169676710769939082465656153033596861607236205366895125794471168049286710249237742797293632067688119805884960162684644255828543416765573772194251080650874725019325219210390270890654608351281647821553204731114618749591598698391134588873968715877782294524513721035127138993781129819636647010011197100593608709496379228945611784411361532160862828180440495791856396914767659294383887411580616202041966607949950999535322938159666726151585001089830012487783181494005987643678770551365791525450278239388665909725816660483860593122380543140948569050287876558926298719838309846467830361839531491920372389426931040539432732450950839967705494579918438191516765452189716089074227132069862048010049012060956175497340975710897143760160934651473297670476368677852977386725729199689031413362888157493573227435327863084469667400981280317975688732846888906680855662567654077736986411892589454698365335804411333735922240695751328931873449337608291329779361499551251146897802605863749861323523040614892633234802843561464587171281774581688866491352639142807847610357032873794341656334820248686310698959293782415906550311872930804545422266523545043482786766495640187037623477419377578855930970781421849366119572245138942032117833529281807588358670493637248495654447902311427715693801913737915208837139570777488835082073750957412146892506022127950586052042894443724063342731748741267620846891701639007681514160883383375945307268490532744383784497352831104026380476833975805862809828476979963670302271842279561909614303758990502642451733887013601146034331265471855360348364939545836434967917549070273245193943686482111031918085307082395335073928838616673947200960402848383944556987514585182839470477383861119833659972808546438961079388856170124734375202873940814466882716528322444245246861091515668898486171420013140200472113312845654424170998195013691076482417604364416926014043443469769240371258115015745063551365311826315366970555013093431902841183065169333215995659964893989597748195524137261126374130740260453631622927728332368388809929499077458898520932493215348418325259511863134043486876334767117542175985345010002554421269296074288099477844531946833547325341853735070306417401035045682672924042234195457144394792598572137674142582147675195708341819538446154486813137424227371665279036260635255038306196155898423442481047131770776447108097914841203155149830850717881949687566690131491715399409627465620449633338637049762008339671268192675144476818105520140567951194489278083600431265789091508487717482009699664757695455409288935420725545198064160874980926625610526112721225283923744958887770410239655952368196010899670949228605579287074272790401070728772412578307571217503719463562768653220104047296660397117971741848888843229671167999289894631314673143105888194496660644707225500807183560914148502573892407030049452641019986526319302209745401917236438856097867698282452037259419199514991785131387782066250035073582023881108588565646930180916564983931754017481522145095870958338819797882113913859048058300299038307082257762894208790142423330368201768441154317957637690720944356102307399238809535916708177382019926829680724941701253439455067646549233931602224191739955550269866083293095646795980929065118318968752029973236954087354667833234090959602640186626416176579897370366271088671543056085784739017597341174964131744085989012016216790045181930661617881149592143293447988832788858559632444723943692191360159516743914527616180669698059934339667244266488149825738239888792809937063551787178805679793843433264843728317565463354557173564213384530499366125044255280401752811631102406336466830930882851631229890094514678098257358938916767924907477373736481229047771558998740037191318308562012076493489101491261809617942344982933491723588655227820967566675503380459970934228478291479789702838976203518258823274807576271399455069038461412472505660330450438270106063323225878586381621275583490393821929032299485787857123132641260630762503476715854147995559515874641083445776879776931535909107929387604247255636949523606128956133380753303878934118260538918821200513490356875734523456883324772213429065947478829802341681599038105583948898325594347704591760348765917770268897363068804533345148868674959059803511693163687659387671717400154868569644116048502911349737261721189517150596203841973265684071990609668885900594315615377106429754314777471508417796515949165974927624227141458604014046240837118519664505571654226857346697266294454548350807640191907767501666610668853634601682182734082394219275157054813733536415667241522592078660932332848148088860652601982997818470711073918562547230048249884823093668544831538094792180574117286874941896113698205207935365407707805362397088904394628110850641500040848814742146042596698869828241106661859642590449621510262256618920228974468375675118384048740800373095422924430898642966690967127236198581376123893211819824850808305101846761213504803951235006996478721918184341788282009826525335502256439123109026963046714831757012728440169742498829142745499800023524419491607308585969238164892666144244293938004358067487046434120168495813662724715036053102793792099492608660748890241699750700821174566794104098954962460965715633155398627157102134211242188998350292208281617646544410523241009831083211187019566290317609373800910113672539543226113074195614022827029474827627477114349859650961918812159150805716351131066494960076282172407482453005542437257158465433450668311167952055359658221814724150787207980885437173102827848710373845038652328917443702295173414116657319192536442628614121666386119280997095425311187114597386836772113946598258087927601146337232317194618857440173889060391393284046619676872914711960718134347844488361035817547218448430239087133304165312426120404253725388243315887625576471087376703297387016832660976240228769848041892438149838987305676873712396982146878125140613212326098082818388078537439505098365955970980907114426399449214575757917393441512607317697401153177097250304327249982695277865613732958646169362301257865643527041714473496422884712834563280760840232280370735975092669874150198404348772488099042348252140406921213694183644338609213561514448559227551177116074879421090721403287874077253999365500310962722309592737833821338278657341444370152934410512661939844488288114409107718034628914430828493201364295647642212219664914363611581881965089674185323866653791976871634022569538136254955359629711683748915460617361464734041451113131643235888134250181269293176198064419901913257417871712653545513804124063887945023928447988720605075756626840475704576128237024151646394183814386554659100854101439069578227419189963321607587042179508079304343803129560540578550614777690572202642261185886179710536084057402402580629797077108056652474169006276095671257096829821088256955411335247378316965730500489785013141262674473234748084674353851232844543947736592971932944289204902600801241682280007345182115390613451352041111665398189942004993354441716730646482769986954919970734766693800699318056562579313074673136625807310727951446184374415406851056262306534669359177698432368770099465373073182009660509400495323724843419697625305153266563923766352652721162867258175787129993005505191417571383321180361998787560914421147209731830162715092534197623389462839096275195087528272676564729065089039046188132135330339198766167044810369656799320552243584692896353863105181054086134969521439686237869074872509095608782850083752291610076667272526534200490563612853958349602521860255426677952515869368901803125389920176466488035389792087632625353266471418344821901031108110814771570562888684431431291255079212831015245407117838297412904584648338507606742408050237568665475289899601738775326187714283084388322801294346568043308920711850257129204102931246245050322757785647415364555699078998886144039867793532662319963878082264929412807062081228306306384590200119823556486270806286841423442717383614375823103769776836106935324663419694791214980445927710044365381787569419785184115695053925317218496183242989117724259102887146390595452009348393067498495510658475786322713386390698731428737401546812914884598769376952786406566560796647712088788316243547464145670203505582826546636847643187910400998187130408631079823032735664506185122084766975418464718945509987567985460897226031773841805571071654764203492818331695115576386054149295375262081585895249696605985282451828015397702416354611667183010623463287741580889092053177863208883114784584570649581006925999316121137665950170493061094923836879530407278085595115741585173220516871883099850484561924047998138164173990973455543624954529805617203324341907295083804165787062302798568423022268681415972708651156842966144666298846420068761854570929032943941572673949918942095332835916810544444775652986255691553829229906707952043961021885934472914147429893853666928134191499639457984030160643415972392630153801974574824018832854985607346891998900291872632292967409625707388349869839158186736570807714795747332778043650788118874104314583972611491071322421090802129197785244394783180868497447558607544351203754834779969357533246638480883797381561348525163402343001150420381891553557657623343958570872775280007696507591233037605821510528612045583789430568779527627901237870659646481240198085396657134538615467415187307395582298093631964371203531113532449594164774551266766210303503309464784126919615477748178280040382659769535527828332132288852854810620308874089029877570017669765517068787581190079707151273387934930052637946218555492866773509235949922198190886812654234725908515301675070755324105030746571537847346006403178956895327999813186147887963415113272936771859342423046782445132841548593788658951241429724518067126721282834911724271576479182376469750519712131560649194158308127465840287019262236678480152099679704805624629508936866901156683163090830671866408833015910022594220135784006485761439408550773945668185132921433164620057196236896223302274785860771362285118778865093964348831076561536975115518514786092076032918058943030012936544826171497106579290468345479882642514170639075627559063777985171129163861015489651064464741901171539794838135262332132298557469875743914291090330553600158861989693473173431619145968069281057612348577201528658243006161826331118564976781660347115654632122102017384906848530634166965794067837019605063251775381456773299319861750535822754326819436822514989590842832118080269936312302610465379569353463959287258562867389419398597767443258114487393725531012207521805124975581511781631266667127955998254091166809757876842047428564970060543272294506415855273613852136688300243597154456875629225698995068240724303822627749461343586360488763302126299015257519644483584436171544592285615634639341145867313218994939695302496762500581021427009163435864947892753786394465659625914868324317468619639455595170663001613755722258818928573795523821390548827141718122356101833596376984958195216282410695753574526395448012898154716407820275685474486938330144091654959063017170077453143063086351035480477283133043290706569361757848246142456448890612285285806015469479730684953065136502949483195805490778827618809567261690017297569568208564135195636598916316866382680001204151753973142241256188577434394915151787739070807638834967306826613466034690948103606682604452020350934072805752453993758366329383063206416050361482999412660271180769415335665390492410142664701508158012618070466439343258333751784812259697624453506745296107972985870321317388962093139470724237812493586800958244977318234365520913762365629602477975133200003640266946136983340853408278690757715403459105875741150780552986769143613387974364469510717145483034023185610583447412555391269321023435899622416424684504667754044640327670724689113931242370332343546036854129778593769845690978558947430643072541161303941751353148519617503797134860080135702242677132966978115567552551020127722927139976243639782707203522708786277725141157619319865200297357907745644183369782279418393514454641312493583911815359234567549089116107150270614680977328538739331927678463212795770547940639455149298627749052224131382411440221792315210788670758232545901073522510929563377095086562408671252775029920972541732983322689396873429847042249548305829048095074398691457056485977356450813667659946487391598586302987818127610192241614865547768849403627931281191944258321739915307297569637175729352251373741675177089753924973629924427524100355622732784458600920412017447684316069289669358441234765434043267555335059530876828925320170729371891338243767405803343077518354174502066694400481000523281720588064567534379662657785203724025105207737773604205046809159743615025420341737348672572874794097999035916179312405577789933133501364370470908417231555890737287805817764927075352747471909875702877965318673385124617815685594103664893589578956960886330811612912600173532383951598994194834175918608332349159049525412526430449203768521173615408427836322797970410203640301422774837133189995355705005434159541314538688613971947244196494086242281818545703627012842701522218211823798190957873181173453018971242190515920998403354276282294728983695434359859966764407840944587949133168650561807797973655687032493044229534564067127636850798251578042175287509196787504852559360299774173850397254590906850725147585657143562645649654088483474524041436225475052485666063782355519463602824792490655136674279290239458279175772031145431103072779228858666907814175244411076350823516028337259349350175709940823908660606676727097235657806229158420846430827276291324942328799447825507759170553793584281046901674342907188839759810162658740023821266518471186406846791377093633096894082055471677095303634717986708872846333642414328083731923809787599430618266386913578524403336266621038508846828357016457025949890238697973974043917035975611452266894359309261367789805819475213699232912762163698778537321440210438696800752996110680903006415750089240987480388729797074544847817605970580100264607094780915936664763831188842964270435496545113890715311914633849775152336917419056531935955527897839771306263519972158374797700842880977474811251132400384182712883294244618500569529928070834097968194135007438991537624953261406737537650304837363986597859417053514485982054841471374677182800803206728801613014190567842180282308419594799370156703136330843719623079654643050480496649465832428779698219997404557328518704256064317892209607930429628826980603021901417400423915308104040445686898387077064994975428734515020050414939361134287526094375101226719032656504932651447599644456198383488158693690612080929365946217456062339271422322233721511671168451308572636551957323984573164839485061882932629170091331664938021234780456955781162069928881086227906783434244369634397943524060629898914085302632116562321297642781895404182939653204540645148612816691928367349958319918235827701118695235112163670981414237783805660341828822125799237795946940829941293146856083519843914316271081536576408480548787342368897937431919280478630067859042174603657816718986865284603775816496511274272131062331122572526405815820791339504230152471403518810199709408933562561183101950285048432857060101523329823045527705755550912453184328833548494416585198092070546873046712712990565607264633856847178549806572588669082295430493486304663766188403766310073715240756694510182378841526770996607303965289050680999807401778416097411546307074782689892329345437046346083564119855790590447160242942128917999104205695538258600771505182395975916248429725515243985587222737403136630395823705240811967959424626689669395995031798994161708597198516702358768171611858357415640673832362746426411126022505580518268866429490211784551474604054321465783375483710783111452301189698186319311667845684503321079797449318212863042306645172730351211311632866366550791811371056970483362564910521882884757527869841554835436645287677559694602309392081303318060063371546195622805782714939083541885968810111014192339147225927094152744074184800431729939176587660707944245479881013151331844991769969478568589036667754693074441933462742852295461557869741177390529956849638229647717563635763494985576545438194364458183737810839582931816345200331049902956540590364149294114075722543438700221039977564679564947349596028366621635329370423375914066118086219682614422619141782094770652858705934106519629831756305800275844625078512846378146550655277825802589032719889849207608626293258885292674707866451435382768606483493454964140107552949185450876315135643748892683568615608106596948307263303357973360111945957227500318287112164857663544522971193757239281694921517111206343107905269451989274459481714850516252958343008572560070366447957527184393243506953789869872288219909696129158115091825444221104990079913229277487998179484766592697477656388785509209180296726498702483877991421271297021304716568407014828656631967834893213881663877406232525142555235879822826959882075760911330292153937239102097379753484449688117081649962405274069908650523309219298375944523364675226418201681170960479019112046195515110049446787017805068823172786553672167270267464573710240262314432695193647800713704883303508596743975273204722552211383291922410458416665933079548155616374462751952958848998627137814574033787326591078954535127130986975162088072609818377541431288652580676866905080372068164684558981332553954130763972427797114355788503709799652286857742284360353758810280994309903505347342236929260042475892402305278006776172514420749473841289140102218264487640623907055025119984869024185627684093861673424312110059495210794011911558476446365142893097028328839408011624121197921878060385024504811509079994728665054453251821714090630063975012786786977881518050034411026141542533561390349795000325600228756200195585946557419407502492868688067124621943920003608357291832351668845069543933970374975826497219845114457077513895437145433943206794718205732455588659650985758995551495989864302459134228873581174542988062831193861596059932870313587489552611075559227463829413077386840668474816164929912583653481144280955588700534025891966076024223261382097418352317808028997033939207336519706885180899767991596158687044652881958995950252806626367630354216351333287793550295059698339142538710122445731288979978261698799529940417300981888917141965196566337989246197903035017386315934862440122143579020166772293494159023923281586147522287962778954776909849686143990237814184884529258585552272058734059923335960234837916060365771242622679054351361644513530959212123502800621631834352282442998781272203613308578485392978430771552811922335035000466372585701647618882372945738201452027148994740071172698883785750835260794503469502429625814532818153553687405275818128720989275016578027265962994988755129066547160114031730135328631611859381643687611428217185156778908081186614770113905812465812037343386125759369136130320243349820646749145738594568317821030948362724067354502923192055352507370984743178143130060216792163574909072787034548709450687077099595149708692410225377726961328772701624051381888257091854839944279957931861185086373294703414707377727955779345171755165606877605477459659839219255003351940652066575696639918524579949831475723659686397097184022124619861821781466407551703916165931137012431852617784912683665838388335920391721541559532934966991950289843688450351411496136521012076788191416117249511569645131279065205931106500321205002332513008098971877026443329835675007507720104830416085221597062105759053345663611643442866442989042142910465375096162710184437709779448205215377144658965475692850276483827814349614118560043180479444302483831522836506197562543439930725881185373047480242079918696755641439154855529294616603452437802203981598921324391163207448549208822790943473893531148003025916071888015494101918261047357791968493463710667201323184769995699537395035669866359223777700866206277696660937790924128870257646079560898239527263322362349172610387112405908537815145232510484891205907971362629300017153465774644967724231880234377850278994709955735300214922617589945113547430637722973309491895766179839760614272056414955631753912002148431084773314527812285750660488093106788927993048844241624940548414219639114467491771643906643870415270869125622366400487675690366756785761681121943213996094613357512944626983544744736797994257718166789939189954892039065683014627102388107264526040191013911805509587278637010097995346378518316258722030576845034063492467045548188649322632372791991199049427183725730414786163793766393737061453261550607697750930420689163657539325353359232786726479672204321466228181201286803366517035323667533585608445957208145428489707916790855330755486575943597264799186566301009427537782718297969444134394075938471166032465152847557275138970451728604199507126848604839886322581764947067411139517539974358941794810542932193344385392149973523974378765592847265662266383657933371983295606862694191005074884093075997463487132379795787562562320001292437847537152049873769753962918350099843851713028866659126671781530740907281371514579697786050757261196506720244926480280146136121255768263212353786684110626749900082199490357940516992357813790539437583313355854280573345702134125997669941705046022495147990665773519639392317133487293723614335700733205093626026619266100392929446268806921782318601184244620924325262579423989634753529539854847453226304785846241788922046866566968283552000343436467322997817877384120961384991672046288677437544617080935680197472384492511731478287252023223219554059582564014447370402546709785679479744104688653623703675353901250490164716103046727882546348581808395374551005384919684392415527193432020408415526343708071714047896275504330920805912335911690734251459063543485999722284172112813002255536511857388819688460309018342861773919075798143591495488108149131361538614927301397951053512481078796675039964120866672487240368502670293417703076098788944503044129996208250510545156174715555831417212569274323680483055862524983805622496654513282864271940398826462682110595200325012852777120742585353478572364629629575561254267900960932163992036944359694466107525420877652668281700396041413113617291707706902133390887089958502584475292062691011089786263548010228698807410423544768559298826378892196478642341159681607421602982471113882741382507329936409266251134943616169927689523836253556779939412661813634486200007121087126387493981196760885962162249524754411908633667703647598366492630615854402205179571970772864921966994906936054918168777699154445763198860300164665070879229656559887619984960442500937996808370314031004212404374780838815455165280765520564044522346620186506872263908476483607645742206520736887891057845820278954813854837039487407423745503351679936274659559972742230141723852445553067417894431424516203410377353061637748722469587539873354428144618688761773386083678852699875019866228059678079756372155348730169543091431869301386990898329758871346652649098122035790697392157931775154887037992416153778903061553173990643465964401440272994733789489870852529141696399778932331150498179194979688552221329428727495085002832646800698124098245833230547166227219633529154072363526471558034366683218792928466355382455045463355804797103263241699551920732999503088757829241507399006674896465503458687946451148231003265365480933315013750856031890690038793835261294677921562150640643342285054193421704475817323166631857872250076809046907860784051980064296602494684130300301367183087115138367845423018548215249827455898879734542113372998976448011475053368467700059744631147758853539855896961428082745669405584575934015241033502120019636860972536686202090564917221036995913573578515951160199501180752896350617493418182909101449375360850510858610925045754216083647274704261498562561986957192200581340835723539303168720631608191923796579205729584726338372606845519347213784198267668660993969811226848530338113967628632015743136918058622933183249083062494778948994324939214867623862141866078851493682232310792095918108178933905779206767825698611349893646530482382756127761657196825292975509113423894689512716142585311311610532006088144306108935104055450399346359075511124309420898687065300332526789358169947243037023755187400529784584142174980241715764564313165898623557059194404329155540098314046520997694286491167834336294850966072535199463195109909367984490651373418054437197112725870346319812903735881265535959934168085122501149944385925509172514708532609424884527749437577661954394971198118777097078806931487144324437285111946733069416353847037799737046218204873976237595739954149634873983760583185852112322821592496191744122906431535658271080040835853812055203959813446198975363369929048142714915781260494436030834016424703271955236208742752594786597001273834306759475800026884681750044176765981624306487166264060136039164236706649640757408549837542796929780739049388661706651677711474609874379707765907459654522162182367250667957386667216336488981802552753303987226609347083751824291780649833527942878245599181354193734912433885093631516532757671834347912738772200605084547666203628893968236333140918405403673857381942488397111179436517096543729187134555343487537277922678223333279555605525755066717920730714876869702146141956544715401981209146497563003739979480928175483512516362366093036003145945493397141220466122894627601429141167962766461407642074667029152992630857997872596046540313157367335711793380471512069623128885238051758339659757040813905195847944583900162690410562405179846517889293719301194656204274253006306549982286923792664612767946845549473095501943504942216489113624034468699626503443622595309143167855141332682562395377793901713803776382789000909372106961835331106629318463926624565828361461474615398598777777771071103888332174265998423407221206426157416954247633760560621307061017993664393682911024271933128076482304061429898090905822490260226845168210820044885484525873935436138490710473967402609643494931220514252005770888809220060639925502428060113090382004325929024725698899974772012166097068444114108366400617153219952608878049171292589357936955562042807220618391705590950650315984401012288705311086971129382425965022697502204585063331714984077307013228500645886734422346286152563011236486990998339846599267836166123494374539405941318159998403396018967946370609685839058070816322326668680835827083634115258319846393690101807621426837952025536623602341739845170300769199691467584237366124401206613500551465912796966531668755427752572343767139291915814371313554402543062063390971264811901430098661496710842068418274941136151022208504656055328631519500777521726368772957146727663861357876414645312374000030404377766696543351751297401426306419358162642402204850578507325487071719782895087648503529749253757444302867570788502700023459183915835146078368581433628874112168907037249594041641763049217543206045362903024012263023708262918487977704415986965538683617289871782172333037981241355397823535307667939419857262994408155835310592399696926230317971684777280317587287810752197166694302747457274389203659399519027318910936705435749093818536481086882672440121405942338442422315029398137325290424014763497001776473921638490626718543408190144795392588978354477842934956097175012408829229164176293475855804047328714024740498736398723913217976352230155952244504531601123427008929870200098796031616013595887037341706595930887675271058738184494065156718491497795382967313101983910391552598990174110318464741115447686041409605700064794233783002359936111276094387661928680746635135068411101148217036359210617893720337949095580434678536382056028712893506393564013917501942532754546814682001175774662617918232032855264848315795693247006658350525100220868269962043876042897030563450873462088770658917261395749968145018569264903513345467274883889274878380993722792254344677600874032250617407478912757160500992615489363570196320772112474104397994426365569010853654765150858801128756196332658599934954717265537669790827405570760885770093140307514832227200243214704541741211747844353096309703045556135285419249587546368787369055076609717951441853848460411569261828645497938712087607681286521695931777665003042095607986615172271169876957608766753970236997957281717914237667986188555105689740622573413278165587075094112597372536273532141121900202504401641508471196447471999420510313511491778878212848624367015024972315494940421837984581014468734497090295092437848312146810832115092322775380278903909207562309517626116704975618772380285589601096016116370870763504349149559432546893501543828337565599667230864906107059632325856572772437900061686424592525986986381358825258177770082185631729872576582855382402069279729670349849075433162911937817436080432676584265410046409654645329205581765925242884300699741341522484081333966803867664181371021890069241382575682303062600604283531590614119877315986823493322093320531499979905201574594177457502910478831521924300075597109033427674706332464796938120832271872629171149223140201491686386150427480057283203625704577137766421070526571196964655723464251854328152640229742371815223286233565857656319777013556618354702351991771799931377420590678284040473669341242057722619625662770618420182613845617928137701449118158200885343382121569233638270277139462046878650943404300954645799960131724226938936449080976973410965398526007212973162613849712846223230720156092203297843420564826486503281741919362195296589536601598022336613505507419851754441698392854622698575371600062897584327235093016401290477345268880842804202269337973626127740090469459679147105468652571927435654486763018343402090368586416103397439769530404291122096289666820479071732244470756225650727610983087391244622211339608016713646511469702918141083769142983046280247733167093030831833876721670254394495936221920096929399433272015797200366524982660071272597312786818978627800793913542058745740095056596282102921143161398324717572722123783503017914983439703382297712024359295234357685353552166035849190648411130162879771350564722390040214712669859375682720207248160425977812170668063945593770689950272910724651928225852099385147800616945934352037978823629077444309355849713796809510070610703854987396059834586794876573455729500592943268959855517430264599878368664108586169622000887786737489999296153985420576981491016063859191429711146603532668041349822180534726605355413794968076338991317087152925642204238320551940206910939647590841086801504197451333298604237301990923890924697643542778988472423430652120957419194431874289985358498727802619101338823608838737334546503256567388579715652507165004436668817593863264122109686465420951743156556524281158125503603948708368299963585364691614803141424235583078051326638274797059682887784130564109772614682927381222446232822731450796326924663073160801858353843308823224722956430324672210073271511435564097089538879405112308421077671438449396769559069264040058720937736763626221971972004476443095340167748459356807184360657351076754371514943510618294508813038724329448299218309775125494509474637068444236656279042342748422637040402514556899176711721658206603564151464797820908850041071097775636294520831395198187911947728032088837053129259893494031253432633748989433944334491633221579824552334533754698366861380823620426020822154788289007200662591607517418931654489457649717094052560998510746211705526205294409159590081360384360295936275461608299490594206965529023453562839699797882916322816985785884759902016706974713629446767946705887952201843766442800736500276294296218144395586238621043705559713298320099084978794081090279842882617415067948469170986052197903093596037107812349366858588958184156405953590863973950273445902494839063780259546728743620757663819265676751228313994616122286638010787689288659844079041664722432932829575427207032842626988279990546859826221782209312644992482660374233014450886743681971874659842910202422990487531737584088642251311954356379062999859210382597503988383496960466431552424400691694066792516091582425902725105215930874756692654768925202171720307169735515060693088566667214903130496638771845043873995038236428915931285357206927015294654809328163021834692948492097806786780929478737206778962470433673644296619774147838267969491428100793315981160298190205971473581293686672822170753251429046938255941023959302510955351118339826043380968096755579980240957733083799904877572493614236658026576717784673768292485745247555993130259261486486348699034907028058226187116260004858834166709943607911769249155328450341663310650923288311126463407937305424136170038637235337729399389907785912978388778878727535599425928715476263107920598752174453223662774415861863235980510260319454846255207583561557608443016000137397274490093482867291961231380008350447821114752171960176705407495940334905309281079024550807366154742929128974410460335772470957211690018618211115774660738397249011830046536023757478305190643439349267520415050353561884949112587211643890069337835336930439490638017117160255440995383907710517386648464694249755041922798486722165181725938841954365752936242481901571555095081011939818438428080025805562789163446072975840152162060589366033999366486283696609180743673760196248897443374431030656979318796187288578128933697316045981654750032516724610457101076159707703817363833828439458403821040137558705004489549126038545701059784085685355679774822026929926829216004388131100821287557300420715311636825829594350806482323064195125340668655173298918555775615748149363604054721010803966505942950740224044308782139017700085471155713244772664437158284740425178784761381777386564990723694153286498361042041174221534175061679871633813628303044380249945252744077185324943508393100818267538281092061666802045805099521270497309846495956774761274406134080311315078391568080702148567237422023873474831726874649430338363707985013249906648207295827857199668713737530554755369313175086915479987619908754008493028410897748715751145393981290217742607079999841619371407807716982288760396010009754862142909647614252875399686116109487142147957964098395339319444347278084740811861026919186592307707476804123469154636749036764141877310804543053599940444255822707196616910523369742895680501179037194191477698826691314737807650196434412978185051261683888436251060661936908987848221567353580353116389226235932365447952407372732722883965006215018894987341386471415416651308527081751001488628094255070737783784426042229078830925291215494439053361414777256383710011625820860483727666738803119564722326459485786503398013304062744945826105162366026159268408616401246146547061828408508514653874152589552814452174206463357191713004826670184219218730175081911480259223587371716808945837283194276907045442796811739581521571819586899535304378314869609580877015488378523607634891345150885029688838335694965625263939833161792343798528939394576988180273959813485896013297672374366343367550758215971496049457574359126249362156094714383189357405188093794008773342773554166525784568990401115130965034814896313087830211592376814459407536534800487034849107486563132526680138275509701006129374556514457487183565814748955855499603448713028512806018367783363583611628129382650053642152047166918328505114274002298673823671829390622880641646487884246150870839201533091295019591831247476267914665894584690788878116812747190963716973919897780679279224238977617159087337247817452184673715217989880830259037383921986140889005715529678775197395848538854161509632328885937274726862865937520116447393805902348110726156602836426370541563231959405565258054372204925479041723586033044555023250943489061014453639425975226205418321963398243086589780412773700143389537249924814203533876766198177085194519206302666956097892625399719630668238744022972047246691067965624477107100874322343780413639824322273746742594569733069838808955251007228199462603568117489797141836890996069598228695230385529119390603016035403763514921131930657121118796628962251296285971136331442375710287225824058306513122209163401753717925021207398610312520047521632260983392927863223006941692971442159152811557245098164785964558451082793608793675206525971310474223030774538301061542519167007462106547245920363617912283663490664115640091549611583686982984465325250924928617041631844684880840442881505198020600214575400747344962957280501302570608764619901908618351923892770420087279490040870467317487854498224248048784654254700108290863866803406765027181190904899836486367899987270834654506916920911953521891173367447790672273403569480449212926244894611039896297194235646370887159397863257785006822053877737321073436139766678604106300234324128314343455471035864315848398625736925632022383862670737324361902195680740877913898122700391466425834590317027280307440367332261084263533421201262061906982965909240861431526657298260908679273674880902446386091947991411414966196255989285275845095955613476517244916259704696410923469592765940916088403166480745591923138494271480111293930933690999176988006216764588338341775734670303716576650497815977713266318388157706624625773753001276724103826046127022267148751025997078557510614748749448061749952785024995834263828721771783052548003195596677529331913726263904560507672300095598912207200307006009259980996242739598894194009148380315786075179134543606006908988099774267472338618327325330434865926700330040838837022246997131561111359068656492741551151584341260967384919038736997471366810802315679763404699458773137355809962170692919533904790911587379827789508983443176515641381036126684338791388556601086792889738630880949413126141371879752695173804197752089435536423821984948651329928909107048412178285999932160267790778153948144446494645497902455725005284737249344709681067065258485567947531309261673681756872543514353170437237584350998236769341201018896430091374494322635803150000726384390485217016802138285598539594019165194359147087466690410406268050618882031398486342416193288450477397796828534043004393493783553323738082888059372354626471012138450938753081285893044377924809417924877914406138348759541636967724943039298499996685135992806896761546603344580446751329498991961473821699566667284398473723264915041409238599419102289418040708029578381925285301822682251116421358204742394912770931275704981731337424293925176541602357975089178966231707966062086923195191399283362020654391255919674077579588116194313146191735717172978231107820202829485278527142056529813241048738099335181713563570169860393685528545333232360091476674253852674332104800234268453492063809113910907883764761603373416770848975721548402338610132384329527002587323834743656028947957753754045616477693918982539060652598930407360453476906663584791887464069147356991235165546223239712771259040014922038336252055741600997262689453904634234854839222419211090885917681895160601433290030553763105360388639707861679552186412397367062874709501476356087212673384673886185243177752540651562871441245942753959645741855274441370757661034032842969299180954949256491199500222696748633325710553226747098365497428676077687810136713452397592212442247594630488947365557471024725014451229297920466515119847116356261100982185513968230024885308327197853956905725482136144275552444459677253429443755347396358570456537857694632345594295141452351772601559500087974513702882462030133542050845014280069280662967993455289572564756992796098853812717060514744820902005802290768484733201204408655408360958990289298818257367037018837579366326867684627766012434955003959892770698039044107181258913796737993050912227426268394863606088939108469724214890236699096200045260281827452452713558599429946718008590117770863236797390208102028936131575453921650699583428986879303996302070049131266169616267515798270114658569742603321202008811839471902193213573292599285531352404461450718095705953450940832915571080294816652713948130803516473331999535626608297334127668933362498265417459886886675691301407046152233668109439396475695818860865581304448233750096188725571312742079526377823362209503391844216689466852165902559141276346503468335193188152240123744305641248192689572068754168111626778309282794698771618981806228925940045934460990784942528155156519248194359912474375532213340540158766804023287166262610145104424388777317760237074115568728919930134727098789736289534593939428984115054044540710941795136021768123601477870740661909449580228959144568974173048322505880901897081211208024127774270001936868196283348082420423585901071923853477349287320330418093302069594397565044399685081016580604902034931736747344519540976011161452175487229794815359516006005905500027425403250083620223348313060493045467847023230722525726504618847835055127848822542179247333428148503717563289189405947374673333257727306407100496562401329417235180532411038433237115927855823820631642685165586495411860254801562900863963824590731861300419682764983257396466914286449934337982929961849767056301563690398208688016205235592684028072133689513578140296183618428871463336362425377835389219204685523709640122842972525968717681574376077276295417209759961380129731125539950786066144985300399617979650772538311557961042056080362627108704327946250502102275993859789337008419828067852823667762167242987006070199253373950160316455680069583771044438514597413619176436413211144840905853592874907683261025565643718877941326619566650276053404018973902758977576995396685307806001977071251045910854585779040555209065670866911826626587094160307422449570619462602240878191515550883994884649974939611961872881309619629322657164854505627013247472538172665178557425069823144463462382382149903071793112077015729548705251697986596930897875724755075554308019560588578032494241868760252956573445032866790264903078662507001398415357436396226438050611044689728434068187845251642357937945117329944534540219821387021017820180317697779061711920166847351035674435551070589374909999549502203333291327020108052791981892855724366272492662739930422325890501105118668270141129398287355909947880960337804915780795940656125119686881026575957301350175135588607820567511920380330959786814451935880495179066841642840501303674550755492399952535021616633935489147789008370864886804026913571444118504018521225062606282305629028591910015726207021075523083596481079227521778045442247456623404515734321779797856586014732909313656157514882344252667955210591447303446376120267706655794460897083409787108015239915661709604136091946806445568605292931163061388596522880720465955337837198417000779536706579768950148591241902258576390692872767655956404944065549001406260866180163438390692172286438669949508477312723334813679008530238148804680490531103504412884087435644297403157815207272602471117214539767344250243956798554674579297145489657305645162286921363292549499897735851421567434782573969975695857516919507211748364125413970965904588261812763347228388480464169702284698639828243003036086204865859223422090027411179669892430700952740863646527777416056431801834699409242319048053976488491094264526532393345484822173961667778581756446368923424926621070151225474631650299252788261929421386482780695196482902355115534432620852987198377136298701462203194499327184435954386452032288831038731042152183734636471714463785500387727283357849597229874516744506326061186828087563634140424420434494627737039571881178182257428151366914008870427113408545039012902585824034054847100528403499671853350490066938939279336842715237687458669606228315779394113532174900584988798188115992665274619649716078081471415446325820056505427221116097703654165827087475120923797750289615349860798367200709125028840324444024718757084691885951508500350294336814982277027156145668534156302085034993086570031059920662024089217054140988639168857591062776509659044303153237359059809183930524836192598793799111726559701400344812845006885726205784773553224640243567225747491251756385532403471402222329842717771411699239826128079505108388128981112712471484762411093699808822701024908733343882662996669332215313477676142426761368600624625590578477031750349551551169332400841910449766851501141364063262420154728152880577865526257376819083810842807829500055189294487727286061498206111433742779435335287240868138978236317038378842615622724505800804243543269809066243536490293905800797997731421540500313389461781665876347728304876840940969920623657902362155642750021982040912167231675058412021994555566733556589663153092221143050736829664450768418158232047597291274949039107283756659379389520615060988034740986144486326441015271685992997442888756529732337218472797141868136596653472570696912151880529678831069946386124964502080961537687262283375170949816886141048070682199537356874113466433848153444556628105838349596349444633665482699977895914215301098764334095970433591897118223609625432059216712781527406453347629401545577927261127144317952856161866495506047149615332294744974934192312550259315863050202711536093412239156039043230163501268967247000258736136380207477950344239427674701265138672767230189757479237789713086470196943922789537145792353102550683527460752561272412096668102166941435511060290825767156990871718881046982045097504441125736414218494514012414229277188213608113967253763978307757555783233695244278586759982267248769408254161962393379869970649768639012465993983294041805545013239925513168829102805213166223060488831219608328419669859409822213330518282000076609816509624321807275712116883796875768059971581399304837791138302708212965878273363607336021158539470159529045054995529768957233385934900346241357165360291286835191875669528786500573253829235867242199104336645026364483284044568440501268495405792329882509968170315861817499520591021202761407110111173321324880121398524291306374741930526430266790254677465431087652211336642547157577953918365905723709445494693247057186118106401300784700432344563073131731829858585240433934147938013394240540006847900430138371440734754272899616287525041704216412572263409625085083217708667344199571972999911762816600112770237271735113483397978469013184483239707211992772031869434257464988346689751832584621531401420378016671248177748296431926163982981788720015383361393440029764943057982824401748103277413781388667635028142025647781847586546116673897270446090876718971493637214333923486763262823104215988525508793502983358046622183803048620230582280526475161309102806563676180658278081313051037121368284040619909981533968122615773055388626814233684978934626191828284710280149511087873323465633016854914268031477411047227016380428885136996539308386790132753813750680406341135067086810520420380913923672477660806027354435761403877851699405504083199070589475009649261076335889171677850466961987748724515446302132647613996796711824918085352438251623997101820075790763558964978419245806710831572942398690942442472637595927380812199519116100296704942639970431922458292334205658672909180156342488113820217172641933206128449572018792937372517233902121796347947955411939392645985718213357007565010544800546779614088264024364062126539514860926442885826649456133689331003400623356905427560116510571961498599706651410424513305435925715576735630828898908942932025940919848372055784865761045902818708919320000771320204011981627230190273222852134880224940900743597436561266348388299753822423382859669113138122788071639754039093021495620859071365077834347166506580835590232051004727114530214955139858165436995764548051737784414383872583839000349095505729122556859317990541615213519207346672612550450047696654911714692275633252140121749903374976346103112038582414987712434230432241737954643648564781321477058774832777328855354512156528928474983964315832539980544385392953513351193220225071731301554711844185159792041184359419545221580762202779661509428427509927086532918883890922899505604462290488831647301276055562826658283040031045449739512440891557445884115528057246315877568448113580179705142918837860705023217586774875863194557872302623723202556915947513208611810835516684795488972088350207836634714961653861216992484839845506422117303280395754549396053368684535284607087971958581218849172033082299026019264879968676724524843394768487264274539467666053031064466395217249529417979926623091490293355825494891172855321774348587916436840372923006907364933093235223038153819025884516496224822988069623235488929176207303414451696995588574180057945183292134314058560188301759276888408228924397711498544412184291700386436905657412216792554856315439203191221671431051861070380797067092610368022919897301990051092563592843610722177817012810996348705754488306450732616461969932255159445688168056916556315714073456011185641279742302376919538693357649694368361000083390126392846051528488928121504112839092989329806064061456386609282636813390259447871564944653329797228160067318086607788208379470805501904272042788102811307831607313824112438035534209829615147219691640872807187244614482112346703919433138433608023082539907730741523261128212905047792060852391099493724315563728274986316170458590381382878270744005457615334918174810788899219857702142994916861713951128483945320394047075882332075808922350611258834409202257452988035331467615851559459864451736800850168911414226791112236776314524734791566849028896657972578268602205041369444600221178545674406472322395720652836267428079027749622192214392765286497472548013865556985365335288020655031990600732981079028224379258665288068739639999860879574871278044986419129727575444251302919828230404486106570016186879917267458145771866516733959439781699391634876071405583382720171793840383400924061342223581862957448824561524173585275628884631954054454020184499376457264644631959804715297699765968412743427690855410368403629704241877415241233921187621084835858968753169195597958886053426378302839257162688444448706833573618894351126407841770026129789053854155466100230956689014787992965681904365283487926090449690344345690135177327540049934030148668237281866717629983646653440488120876095091129885034068169484818092682912826787345097420735002228914467582492210859678347081065755159361986958038448231622292128156266577766940143452900647192098667310913169251420058493552765775704716563042493702875096522183040776063701183606486525388914710202129089850036871670241568209867514479735777312481042153539813888992341147749279318361783437726920246371760786232457503981744735669295751333769953921942279265321336754907585663934267236529707812799593167544244330506154819401404233354053900215468126914227108179001010321143630308632247935623385501018138852788903628100904236986045184974194026828811743570221430817180757639366424598047947943124218651106764192891212950980553913204086502651129970972245736028227426104662721377853420466298029250011957246644862978459680566061284591054882601152958998579634671525413803413908747758273231120897630164981197567873716885910654836256343695363130611018296334004068468662866707743832181466332070816798113833873223655056333041691355235211859458017278907385206184715690685451726578126214977972576579317578221735591165531132436197388819830486166614119843456575325287335232081165423619964963796485807832968009327836543693528723549070054470532872362070407251873395351783886310004074639511776612456696639696069410733561426973051261566403201588784149068443633873711888228743353538040632208921666738829019202954511378098926572102863303805242884516055765822594119910861699474594658735269955925412211088193949347177230068571695065581138734418014740529614997593332874194211384533445497786776001688463343995523312958459206767736452607439735344437379226577540760191060524378442889600428243726553155618734050558095930585213917462297536073134948817522479647765624376213043314764525602967447168421654292997392630870261078572937372181192825156063390720292455334574573980384443666920608173991412447912302879689212823366283779807432524546824781280592174178705468495030030212172057399361774481530694569666117614337866030075973496809429148035188057633796807387190741631782417846284464434101485759618398555029863794480726878202807664042957220628548825279968213701779164025646434767030052910265266245108887884570905637543743711815167021154442858933744959698481561216359102345504779570922943687244298395355836678854253043533550610568589472886077260626745242936090702973365488966541296438629206917004515525389105444321926818652197320764644194828321247835722698353007460794385775948408177483186584706831957826435995702558435729034289573634083076381061562814161662801693137710229337641512558886523258459703675789152231703226910395613748487432548856965423219023394444412599022195964760503007348008828711232250164234495700703219000619964566800968136635580542991682136788597023401555906003327386441784330326031030859119772868526943381659565563345837684187498043647285898929217160553455788672344272931686690376510534335269859955403959981581984149699625004048415874160339856160348726686675757778186051697028106256940485369944796335758676236698867092879428498904597213990892909749216388598273115419345772411974830699171738282823198883280866665273398811900689929813200172456794375946874567360736480299411173389159074040549827416871430638346901378688588795585580134329691286732087446160522828826004241726395994259780876930287375397256332026362672116295691110875367989030686067566673163650847378817490396723674126642505637488180915019174237431833745591720941204330973815359998052952726220832381590789664783211314504962465413625556914550295847708248208919893610406673049919199232076003835357252822963741264182009301154751123773746961106089373012660648488157745552443426457065556785717084476407781183069319076423567558338305827227557238184363896869829164044682719152918113501361677337898604053896616553542245982867518477154344298657427905097878797005995927473480004660311112949834775064270513825368405726771500537492240715999317351535716816650597316773641344092414369227691270098574702098323729889366916183226366379303562589464425781255136998557712976401063876636239583658576873525877151017460824039977791460066421770828048638388043883401338563359665217179316355423769519917684385805558215449868607075414094078368555233934475103647099300566721186093362822467424202670600543094615604566258455760571953042326645596576847454319724089693695781375953040143969465851079831683271979231141491408796213692059788294447520465392103534936298615867475290697218797858433705760802098163302349660739796134668023112432060534380898008114167914877945083651629165133537525330149626317477626859569779018986846895166029569584520921554434838287969167836374428158528492469806801281769068079233126874984390600464620836230640364878568536917433086255299761311351019966232308478044139860343436617865873948839068561251707975390064358403043117239264526978651614207991510262655247088619538539783159860526942893578438777848278198772292201189448272160608017820804562171052469421878380121247799667433370616596928190239060919155813444935416428652826879417626090021012153550836021519930124904060850106077561826090325225143318005263365447736708997365181202057108204089658121388272925685411718591593672161823951158126900554877409229418315071553779230209283240792676670150818014094488993740565268516448162181774360415199505581497035069904650464695092307711669315006000724165714461811074684159194816671211897766586081159528224484517236548284459930616116295908239852335381784388619313240442548284561845834190129999069415542619330784214444553674092031867591871227008590498450738585134956367062780222166987891866941377140428747149174641707888425350457013537162600133158999339303726841787662911997825994667019041402127955849328959667637792768260304403226241900354436001559355865211389659199811663235543580013860288219021796232302980697471845000852470753194010817339045455895906623510276844309159211661928769837254327991770118641148023892998450060341605576130118218691059383723389795007291356560096052951511658372816300194139268037825453447175271772558482289881901658411430446707152050564942779247458635327970479630075551168074537336861674452815611920777002378988645455131870879081223608747269600742449525481959293998484250710911432601163364494805550293443263450028129848377736103028953417993906475926446107684051681181618628031759317170306865272755028003721970063640891474846015786789853944924273718393873988993486455940723029185970405654812999381244918536673033542286061546338165044056650167702844523305396961154039579082879884772606644037156038575564033182062805214425408884964152898450097048501370509673905906603485099123991844892989453168823675192998963862197640984889526303376425501584653211465083631941992870374145171950096396411429880662568602510329865503605431662813391726746447660841411911896220855849816261848497224970808072140443284749451315926670771695275759417288626600665195508865076412452653293136266980811909166618395531338505739081411418777874119925231807416452736528994492247713406594515632211966140416602193654842393990343816859958264596648573222346771889930389077754479105908233949100035690667767257119405992038138212649307138947614226942093145358137558983785436789063604356190000833761125354927967053052774503059330632244461053880842408439515120271627764105673398795037851519389491595023777872261426803800786478229253600406829922249588974905867562039337869850016404985590609412473230157482183150075913776623637439454643868291330535633428060285472433805506419723700387064632164244375857149445928001429160912347990049671491235025141701355230127841615252101927799788955057704418890349341094103621560691887030380074650536460599238729488973142395866899016217528516783404471632711777856621689120950164456458195632404063314482533134115293310414370151055521647712519934567348266922802001141775596788451169553345839713412863036134931167947767831624675747936824861820369528883968300763348211305921154355640157378921823906481045588350296145171534410537455355120453078429769481731946223635297224692202218809162673841262442937400719492497728855989927750749633534984009689676667842221405401573249158346608334428459109950307014534043187069789095709537643596495974116053928521068987804072969211216520128688858052078400071633164428877997303636796222178319702151884983190320135153832458773220357776299261089998284997141495304083606526801923138511290019107271618779076984105086998046253891829648436001614753249950303402128412913587049553949334188559475527535180000952431201071331813455571769993735508858281603599136583028490014891267142447352465531701014174632668549920157452045712156407580715902714354468674917078299234468696574886369360113061880982749311398489277274408533016685121790920417960719300993571170794637470057722803077468855798231648735876251126227802917351360999962624630677959097842455100439228859640803089495055047659455701300072168224564893152569440357287538817745957895665453848346664377579313895915780688312793489469351887149953520360677675652956398087758812960608299233085121541484272791268493985230507574271616462844156333617105648697937542716364538629320881497038122302440332171279604153161572931426423602800537913278062645149061927018396951735404707755383845337392464200175202977398009212581829534799897559528229868847689686744658398006481044752652775958993579373427122021038279584980846430433420419698611066785082201291567404435699792987014816952224560076746627769990192407521437907143438429508409530209913961429623122460913453094206381299935128419082843953732276460587355957740137931929470877933672234253639753938212258780498053696952921803892896815374592032027188720234320561172097762676747877457324202715270490231002792756695151565177306661483262845446229017775420731856828870639284396000962659641198142408429307965011760615421185836025059243001452909759762135786679698585397456401908116839367342736505209925167526175382406488475208054674754311358874985372452229616175947918013665218512701337756052663231931546234136126943815346890135964858866299687732005254448939538310441613738225514667267263244281461717317525359849607674724777679856336868147956373431850282087725552067745521796729358189000305788494908110370605011827674903898905262188907901562138587193813681518295701122865724034551753692426417978231465924925444086115629138644901737183852439807482968439358097184017165274190762490840339626982081749983639651640467364445746894159322465122198897125665301107074659041868849522516998101843477529768919445843003811353182539785934519074082574898574056017679061256553269353458869254711403653105487180113581574420703544379157908956124351789388344285196579006053186159246546069624590730055678294072291003032433732523205230059404195540013758439365299516997027601969606536183530676148477282468004145872453255485540076984067473973894201023292526552656114373518600253115810095392040485591914496406119598117949216044660915810619086121386059265894398496583059776694114608289888002406133928303163562230961907679526941976940329051825013345911918821360502941722323074294409210412197871770945657067017638411889297157948875324498125355078531240058042534837197193601057805292830507915502858049911027785446632397003684353213931065479328403771431387156253093765564688240309778772424240290497010664053922833193357866875761988606886132347218950536694977101960889423569285136766111568421165805501243480440764241613641249061408733511092149402337663944080809230920813618463882535738819494217095881698934967245525380158364032734203977297688107308115924235029396517369596189546796428837018214672253206763835658815216529180099189149426180285884877018298611042635721801239481652067445700007065435161070745531385657557065884645553564491605572134263515539527771472307791504970569403842188059544589257877642460678708893353990915419663621516416537930785971370080609399775084820368684702415178014368321676728054713356253398189362810264732758267920874635733026781585265809722954230776050994139762024199694969239662891535719762109156015284565673408907027440217031554509135362969003363070819535925113945436719523062032955411316033690202878485261684146178491340387367066919055535816429063337151190866196853002826585767835443340217404860229658463491644298123574122730445186894902810245425498866630345813695397531004306620970546909498897976067527429694929158985132222407410900025087465191521253103156526795847090388847325138503506863818564913139998466272907957003265743400728620730769054556133651453741533507714363308024431958208409090207342704029863996957280299741379244779575643409492940319952461157626932724419140982513063798867636569255284983260664059085453406706119883599437845532734350879623651227361024184061544307171614015290988820762484432492317472605660840107261989114855173403109546662283904924440141535512284075302367576759227879476740747471108782442673635865861138259074493230717117548649183944778868573134294746567410801000184951949201828799468416650993401383703388346057992720474387275715917706138919707428713147081579706360616645534251024119199316382975826505138814022537378255486398125474619436030208309358387534699028197299148183534006572422820059744464924956128371088814327529621100448071471345494313866104449819528676378580805225203968064525605605950056097541418455961975155624853726566844379748043576021409613241494215510824770903379449261228038008612624003660286578476267315687130624414816160936951594971144086773424598604358431019465036476520065985753390142141823805268439199090046828889648072123625494078700282354769556599956168437062197234610421430297612172622047653731850054422142017578434572456735671273431972481420560471646958518814076180626433618567314506215296439136433676128127262211690039202743933574732185914547119850658303699074509574507257519538913434150075297701478185619337019923726615035163317444328111727994666597667605449935050243807296936302329998434458812519981445609469600805638660199260483763923042765952371300545806161275041445336752578873389230866886602289448908110712052215178561398135593146246756736212222168331977502369798581125062744351545384079235768149461492691106835328900580489535270214184640855309290185042265198630694557142838233775229971898001846217631699520009926760374714803049047809707739353964976325522169324653064209245577358156282533663828051640337321811762684053361385834497435828624644499907439444720704007284902421473134449925853809970455789693921537064125684640443990475215090419899984657969452209799344208774044765191439551623661872227159431401952816216448587638430401457122544648298265616247760832093196230769356883070002372622666121577076606440966418607661476405948027309781003909816290695810524031132343888638941566512925397149832267516906295820391058321248068391130003308860615842658814956379425044079173421905487674698546427392592062679095678028793449081083157792362077963877814738177441151511411817908755329751270435118593357553924663152883218644293790670703849617412413150469774279403596690816586018590068026995836943966618453835440796641898181026372359756907009343620723748464270305823231794906403155857613765926501038434288715332119438763774257604739599735122844969557512804797156247879328991461241742231883737316523932502418113595798950411681628178720211020971191194985668871803131851412333690476848897648965371124389777681599133223284709698198737354953922787377002017057745729614746139198681901046574038163613881111023818552718882595582054567056063142633472735429147651749319357702111311348493095795008629783777748242336611323967392168484239025531329057067028293586148510810348074365600215459386430892069842010914452063891940904581444919777953115654107829333251082581389746622724494395722022919969501458725222525348310609688612653469606191009870635587111628453552025802401094851451633620130287663168325395772568088802154195221571518394385402050729441823416450372020843006600687881135848108315219661030523693469849992902900523683636125624175652609245824643845901794039259597770486985622766259087658406661720945203467633327670080388044661363827826103984453432205775466268034140823657522744134627138896138857485342371897684681230531441114374664966958847540017638260009389007159506154789884822797668056778075210711674520525188847866687359936400709916693272328755645767473335309063302576989630253741002113923542509086126788785114152087580743131098250646352986245936857499089022752432135070706505051041559607433191523245738035003099427740591283853364758253267987809879107891543325295226470479239237508206890052198044410581227538136593211526728056253521230231118967935401847484614299247715780640945133746962570586321226712644293139026838432899212204166151594220786581681894033130606044119523660830545091077084816505785539609674913400313526096875473739938325524827991489145354456823163091805157045390718608277025832712335278437798360477776062767305164850818583378022650292819077695382928683920387108258726206632006663484632454051686728913282946111466694348476607567081338383613679988919728196830009574068628368075869140976125570729073356050234571615008094226016714725590866953299844177333931513987238016428978160049854688606797797827276666164673379556927950166549949436731187885424114954122329664759074498979865018934609986868134706012424966237234456263483279559203434443535327182504775410246289239580196745217263826714475535527771865954378339594206441123733009542949897668645634049352208329428627866192208185370723380913065558497974280668899114664234130810324709707539082235085789219028078643545847349410784104518538894271430266644193694010130732822703714404593601519677050044003942021223181434332629858825162052430447017914188825702897559857414056599125061154459917570011977218044293562737584809135979713494014625823334284967513812629589370487996329169876843313399412362009667414706362549084598049311494006038041975038323670111493574464244885136342240624849323570058045831989151080176216368837105096117265351437539348019050692655689245167932724654659410564075565831159770941419260883528951230014485325924308512114445784648655271153366245971728379782685246354943980608404533090312471923787767802505764777788210719669975492727498737093218469604480743477877270359094628106349460439337974334811802965488963956694676066876233768652920912981383177934250155709179803593792559839783179699211081744563148543754287314633105694495262177080005249629795907149027611906577566254000671894926587955199239457953390491036808299458917568462622964435427211674646307295530024050185717420093789766041804936702587554807577246087300635320501580587760162420191529550111440626906144926523585864148240283321733050966538042461752722099829775149876436566220292222107961586975851210504746346825373298632610885943890307349192917823873555855034177683193021786332781564465306271053466802419773845995229820335322713655110408434597355272027617343319546896038470825722791363111610491568369725314778628353766346456937670149682200920198843959721800033732515636493947082604548726903790413896748109046333608150006053631929091912364466356810266794830617446483313947970089481679935287306591647028952690631659063630490577152809876217406441164630186425881956528833153582368522584997756791641841051650324720567211317845446525342937454239442297628276267951775535518794175032441311963642539856935408555137389815373588761537153858186393833582152533762993609654800667801336083624095350958402488440419649018999481680805156422826555090324596198038596809145522772194323796186682434526594425412350663503953915813213078849388545471302106377355954197355018686564175747333323365245180330750474857173886746287574432239927494742927482142460564290602661218093471901190130666288816726071642299673459903566296182209332502244113140324838263158326150458954170969675833634634964475788871162262129863752332580565999418597857474002716361665525268089094341539932350186708461253145534591123447405827408274900837518689471907147203637002986688733677721007597296781794200655033864411659054335437827081760304862655104078165025145737691875882946188601099168791247053836067126529304813636306367867706022307463363379078670528891659553613894397139870351777117283302171117926204323622305718417805161651875673510533252611879565190572706472576366727166819224687503654324004852425594364138649205111699451896978972140770835806016195433458334256529442073713882288865839486881637581125751693884346995551109595700261865639685078763212491083790448173547867444584927367125907291443109623222735527920395462195157189128055572669080436376571321064201359837866526802968316393936829698642341285868302722989693643728943725069327481295104303745664519705126230263121434256225233826805671959088888795234619865960615964219164595213501366029125695937440276831938344735426773803019543654598135712447319043276630726355406894073840626220226853736687444156605683799068544660489374102637203839432260345141432740353826054727676266049129196403754194734577850546586161230472215325233096862755685969032523863277374847194996329878737331150261052228088055589362525127466781389521144372541079074660527527440760194719752460435132401058560943362496897456405128334795806154816226633845050824717541626182860869831021238754248802389474999732867267888920158036705692519807615477713704122744779665205265081744829594297998997443376601886239957740521078922458699118469022046747497496192313451372074256071321188162903044869283300684675748805571233757505874641921498674881204325023429862130052677005166526658274578661281907299620171642499313025017579423761344379561261545990647762286001048639033000413130688446310711212297763187027408612910955405548073974108386948748015591311332398593233490521054403320076323252193599569957481025623929855597031422278002419743444371857307174897793801276363155890641953897928903333571755832560279730832677543534667281988831494062159159215869780191387304704993971922875801316999187935834457618549852487877356823797911308646260316181453439824723075497676049015288157677766878640657016637899378457547729339475440995015422094751985046998247543227393338312516305336478842238337389783698367478257078516942654933487709677747131372783912258721837343677850535514399793878249301631765749109362173502586103136235198808322640144862783904726426882548887999945095545034854431868643180240650441613175614230107711286507864954144974542609956325081953442810143635295455301965216058308046311556093614557136951958491246811323494283658678413196904421463850953532207943858228593038261164270130107509989138742454698560983758043690015324212573047784464132708395304678725992458619137110265197411645225697694944460837436147676396668318736951260682910892941935541168276397456820501016371697867208224253864225816493112526021964159815343266171812545852065181528170776107308147870833107690165618696040867137092475055123910470196271430365618044845471777098925356690246546950561980368107664195234037744933145701243476206030448825261608347480888999087023260888429546133725668297491632322125470033248542633758361058597707462669744776336657971579576474831485791817047879985088324965341346255835478948179169271005461762640335008880658003823844334653186446811429414356049790807253301298184195986081590664363889768207212969207132951254823833419722327212544659090263992136441518238893471390382484957622447039993484779398362458007416043804563439925336665666115261751616535948192238906995680040244209547618283663075915708899337731792479872730091454438485153949954885760607079064828251293323144984135090674343855257578750401952402860898978224083925762899684036511770054698696924689148263255196073586528706095674871486814908045096771383372165161435211584454826891877440676645329879716052539504073064394151829616782558799104197411469707942556125987935616250413747893107223121818791457432530443454109426652202529543450666899614179690970395681988074364416409248545599338765637631593725610597915801199344272959680965785507465900368636071266129100183204229738231785663372655101463707919983715889679160277549929911620903181298982060562952924118760048235618648773503597600093261496202678048709276774415512633436761158545259184910437166724645642318145447719733202793899347913163305642359423541870725010329287175537229004333426135974233559169429073962044945014820757645433737589787372926386395078956922319961148790164503522401622450176782280008814219594353125678652559162633762017807443903239851064383160232894572755645158101826084542660105611240840036822803008241312028665602899971247848460179254438480776766986421633083114719052444692666812983986670128711275693185274065511368929191350824848547496318983080882299463748674805291314590975106107891952252217011462192348338076186419615216305174330234869581561695414602834156963647520118716250441248284616218009167936340658186043207482146762278505201332627563531675411824977393833655282584437806402561927241477109031882449295687451907112814861978795995730556658909404615140109052862163792836211402405895215942022276180017043610540360222008304456390008466628483488092609294579863014221463816963483764710832837109030543716714389024309935662755134982770030959986795824422600791275182468588239143401482660392253401530487307781885679987291900407183188005874384813291360608330670906421005143068671561939784329219842298605209043905438147995455017074609211361278119564228795500243696537106180839364910623869799677655310053987352125851366537117477743163955905219888893975663913315333176881619195784312633806888612021081974739836828072487925024774982200749139083420064708436816566906007262865991910611671637456810467207651504412528351240882897919580458678933462303143079013696854992961735631328364800188619395525868793351174882904551401960029835164795162563369845078592850611851433891602933167175846746400714146206926446379858046050216476732793412497014977497673715869968612765840403406737040021740233473937365357938876719190022684554341524908313550865533317818179147204414774795326867752875070086771992365566274836647625699500569748258299935088246721139574363687215367958451639056220430472374366708650244106070270114114016782626665687806548396259839089767445969494405729593384658993000298332693092424689832975102214795660639630501849109224362755995509785509596873790334924601050312991877370869462785945351292243714571648819976565271996233237528271236839899102566006754415844972478933512280691190125632897606881286393625513663749630100381335914198117201304785496071291671478251624292490004361157252999539922011551380672790866647692017883218915196406232817338021638427001451127105648715678972879944159123434695314608382096846495636641259535584007160994846060882372142258526630957055562522688854107473318325319729903683776336015747875668312952279239398290757851271092391814754120213850544529970694893257300349776720629872158226508277233756142837567600934160707001083329621226566983645745847820497283306830435744556406015338765938455930854414417686863843861432505090671639397096167306735204351463481903346584166685178199317457303529825690667452762114390913131671748557416890940261015806304347186949573501796438633120859288664833852988350278213352231136896677180350570775795120004835023260309419912016358472745944914018928011308752254028815088234517695462878237702414363614701473527839947584773107542783528259869545886887517716454955659748051854813915672984928363086614211846501948007229847785129121816498077709519688510453795612273064229808450209006297416812211099907372901516623734103842974608548621523518667440693264171032367439881622283086447177822708933081167890336189946329242855699482522573575050314562879835498339480899605761102395464995228254284007389017839862744270263688848122421640791796909298640021001599371833685103948369183197073983925400549306253099862103119098491883306824512463223277155723382952380552586432446567976534309920841835540415485058724975746570387953079613605700719820102399422117239167240502792756090998648100419982167498730108372678658191825002969684385997778216806670425245965159036768886949091991355211116674190000655442268485253054992152706546496814550269229189688323703202434978530925540225601011093437032679407681694919016004133179617354704765183198030880038417433782123208442848690550381146532719935181366336786214598310738178205069901236395656689341362935922829871929134360226173148740848577388504208677553108235193966133142262476093220730183296342019490170040729121873923815813273085972251373323084159912817733350955638583511697891849005016097248413262288760562613812030297616998790576976584656297947698206392956828992057349832853479309036324939328571652495890016935995829554967795817707402821007131176687102767514622387919376886031560090090785101449123446156349772253084132974450821010225569908111028968682645153324111873663398363026413514861262956540014749153571260312402007692499990604768294542160469382757126075374779965958757387558095821906210768744441805446998902640735641624498025254559123563349545685360562494798529003795776564420395336613965661379009571945380655578613584158256972117703589283710000385242725994790999192729304852011917061909338419861521084404919239846262672283087081489311540035504876192607122639096526862156877815806867135262236354338017859204001644149783309309639968676214578158532056219411373880635806299522841052058910160535628197259502766406026771816687227949119997733908083284011329727953210949277224078776531586787558934012969003124811136792533758735737144950647173473597132443783417307757029765026013726454221712588384778789259944428229585989029333931464206639937126746106161163433805399840672077608379109972982675053861199365009507457839175918219897930584229673930676390422275641068389721038327764494278091345226352353415305744122701937135357562766315620504452706988903391406545830363042599670853722079487204738916966529807931523989391286068310060902471836801163607562576872021562354639961326128921764328463375755022772948665671123113984676283123523811907867551536126465559461643109408642391068251525656943980473061480739874132283600451692565553293999891807155403761912109519605266487076894376141772111489710187886607498686297768597434173622817450092592690316615752727506207799775428172849611047018293836962044722833715464830253068071933161605403175820428376000666449948363488183654957777382082004527510387203765287630054315931683770817856771441096723177092728196315447559689658988144462185932819477455602611750325904687537902465497341708929430906888429101906093191180733610666525228154470231888361739679541239013190786587768683546850699812762578630228370619632206764912169277834096997624956751506947486766715542084613636920495856783469803955122172247205686920317350844584592894820444376410201827178295083733876514753900473208348562955645470212910950443512299324639950546424177260143908900602061424434816011712509839140379082817869436707149536404521256986000446695181481249499125495673718440476484258518482591091435846168555984168502970352318086464344084331379007549555713398051627400546853293749129193970738704926793601881688876055685474358575727123348969221949208583634431940285973404188453658037733488043619125042982767443093483795574178638058528327779913897970626465331875351256825416624647567119910174727511641395330574422658037478218261788022984706298083231823329847087698785283898771340040259347352020588435705687360709053068796128383253651599814006816978360103638199755131172797526051411543652640054722249147249821311478794072173586162448516662184582584971723818082284366277738755457415732123957773420064634016937155596288163278115977250322518564645703685500532142956198720086362599819718858732213481692196173229262333712980191618881917544116696920613850664198631362947314917316551528038538155026061288807990622454772567844005774381055532826785440661825402849996014701706633719539441730363896422311947147182274087643494751530227600429981287744314857583287305252416199526644299956286342455121854000957500488192197987308680605170844249803187805721384949216716036919178750121833360972762231483739476625017470766889900026085797863155381433672813914351690324415742829916213111822504260952032569721805586922485362057352459458522954205989936493672180719800008117867827082201237104410022915977495495789689287158021159049046897649113017261881695457466113634073454602732193840154869900318013289629914474082473592222995157048907250258099759976195705446240279942845665039236550584246517933584771302417398603241461288448016038596190045371713936002240955683288513894374195389533259260190229481549572312245856976968739144562192888694599758764509059895002330477698087822206178423440185588696161403522365943552506257663374706698661851633392395732800626061934076082488915723028868868208680661366182591061403679043876820425483084158833489225229061162711167508569034438813306896960887278916659731574392650567124678387402234967152306341145155803308637069224083151507151538097964734950393267586417014003647151884468048219763301403887010779696523726812417772246600102911653197422706497717344430970983886000993631206378966316892880767921910543680361096525246239908677576613942451051865261774340529370687119921845553710049819742894614181398594996911151726811917223632450952593663944876954113572112293390830356683506437613358930110891298976658462075407529674776182755461913091571874403881154970091248839863596158589801008852132358385889399246231873865712807098824646914430470778484855199725471504574706782072165287700851968063608129259543924429731221317419079629664494228065696921099507803115709726245458296420982392718567364899851101911789047639409131519708783524735539275903996748497113796167688770186926691914616555094663110384360403848136666176889376451069157276640436766984259511013643907697192962507428654904037467209940947117979205289720567911472305582720948592454106699607295964731243654285799031551185908105337803946123363762094738828786915166768316014908085286996166818655697628880875717872554006056289555013560676322462568415520198724892368548473378152306005782396177676567862150876048673134829090125021360202920348546524377223322781666891968761405341189190860772154850661900852754180700155273239349684087858834142039890122620408366675545851948267328965715012947068421177361571633653036426981714170936486864266808168154568091374474554886840488481415032701117586580856108102862521404556087394162858774266262220666735821545050725928990718711098376377598941644380244218152785152358802515477989262251088138126437218205465077230199047597708286183862234391327645459041047537811152861458767949833876062219360039303562452965390122569245527426825200389529463773710263833420655326254909208703940289496936317472690308134214876160535169421720207405941255115584047772573430064354891679488994626835930342846151580172235128299146635101537007598236384364803043075686323290993370256905756655110979418548834791518259224696565587339546677020727960389501450701504233915404851768272494908407710094327297404864649159726303855524636725778801471356843530967993373399895931957112770267874050319466822936981671153960082724264783208018604402789179801627326142158138828513652225157100294676436305979298914489455307248634266819919463628960131299479398083940147380919139112854560490019471020608641878734315451818477448247994356501664503812952090294737847405850582221688755879856868134111311926155651878020674607623608376284783945565809926843424206903043828801514388290591788439311629702416653857813533529526628311276951077432837245885473891762859849689233837052082870229513906856865275425208763563162114934610478131155067122321752928429996477175573961849473505596490218198408781621739842930751001822538963198444782937184381845322403357898338923370082137055995968232684544061616859585546103747988898131819636718854672891281440686230915471275546535944466615122964459019054138827600243327453059159555137740394720941788917778775295127361948542741962877739086366117853942700459739635752958447266856663665836606971428240933039944773035267067130993299635391895438839953103457066858163823979412449097822799253236760731318349008875948745831094419947498548500717534034738743839106584184621579086517430712567908877714469456543014353221210771941744838963250818400174753946464648151138806975858612289271318378059018246204506555659572293170347066622708221716417815650436755481530510721691473623823093373531330245432078023154234331992276295812156351201795518969455033809667228700874828145214217951751537667172782779526547730608025415647336040021281193246581135954578325058705266833573042109193759501018943205773444456258564696744696961606463412169483800960976906901907245861613737660008506581134688456316877526062695562921689499702608827569758991961004916040694436668510853276540470493576920317709496376936694253620202230141118899706848439035561223996882871758038282086737064395817028907340644038906169535468733570660555492745950323446297885334333604596522936310127692935320054584124818538915040990693450421406512415648951599170165297841576506788625768740557564346696129735763834583009736892773945811387103720340297137030482792157045494696619552103514971133674280812913422540062394886687648945365882615944030645232502394839835378828254807485960391313157208271897455963133087563174641868571783701280591886674492749018438941565733599687961577361338582338867269942455099885541039512623343400395036628893754110516644325889846676855194384141961106039831174614484393364704622597533307261860005237009744794715038147109778335561100013231399148685567878717926983405328564229115385112759530362877972746374056479959229153124281310971370641158068707958924292183719620307280401876222102136046009338819478295060406375483298093783158915619401299148440803352178886919683265772178076787350286765449835715063310815113719886424581005563854517729581509052560221666210204999556583506401536486385892901909001140924748104038590391892162781117953473466381924437508030551933877925675451453305008419675768200736447762788709153937994221831272331005454685875964023708451602169727356907690944448372627992732475810972878544042002181369591559079907543669402435789375504564583785095348251123520902059284405142058334994023603734193231074703548644298390394981634917380093460562640706092387692269885674955562341290564644208393983556853572127781297225638142941091528933564782799160859078352020394011206446119927119045280813314196569444325554065871342507512151039507349408150692863982187845657155095494641600716274676116361557339712585843257437099608037341124026257344666746887502479542400064004881698286755684073026798416104492001833561817510874969657773210851017618153285832367203376405226525931530659042885362633542305757636504310622380209246728831647045600812735703914632776946165599470722002278168600759848734840833905008735970986309833720064150826738491261199199888270516923039750284225046379765728145053296153317020441737594118850051770322065636925200783351747431137683864652685959127732512906880778468023566701092123065309813678605755203332110517505982159987993289750419801678508476933139751625395741711534473941754118955150069747925838573605415389222675774867379488489115346708448423139924791283831293225520755169571562419331723769517274288453662059124386009115387236455376180961163319890459450001815852928944789227321816351816430380347620991254201382423575000559664512135764141788363054702307968027500514004809688836267695055945007159163130436090435662191715095980471880676803569805325132431623381050027642354059562055260742016734655507304029624546085108002516035344583319384864849442509959524279953101401781216253144754459147861591070713490308657291140758498513078853964598853035227020493677198334410038064354931309546712108446324479671372572364162488715437745731653598039135989584019167706070884751828528077425655243616472025955061996449864197737260485090980678541714371743027515568879371210836615411714955071334747207110744148858852185315925310443253672801455120242611283996777187242352434087242306010130976201847287584394665122424328680482931688685518610430361323168403988424116184354169071488429854108348373224762736154830460425548605365000829800884737913378694401105384274631713885662348697949365116932822845450656679005338616430818155287825490041844985142484880220141150364481796887283670672382818237010437600174673735319707742240853530103213004493851387763879349771510523954067772772215618089206664297872857851664643842265630299661525845281481454087034739871923015447775686329865550585279273576110454104465658978639324194660204017556329896372213656436831732204205940501159688359335219424820756633621222485416221951359004664709411182882834221383518849273736651350069178474222086485177074803333786546754803439601773653048336186821220338428567102815169190513959504338730978859897585740260870037847754823096472244511493581878733087373007042156165653420797146936750227135166408842775509939549556115951863795853696818956360854519438758671131098348720021747358377174250236454846737178840424496588393804789056571865288692643486412417861261276841739922434066556328902453414340842157110677697993901825592350647608285687086849406200999307687729264010265917278430840155645606667750202805893376519762943775015071425382704111938721958103938092770629286431563108721155007869384622310009793121768716128224745698579314847185480012227774980022159856883740388624189430242673720628855074377249353020568948822435075818652586474608500893575411292783192812550672042272688009305703825000339603963411888453410629212990006705490958560445749717744858582854540052660034358165281845831538479736654088367415411513566866332941556828150743918126632378540767638502209872832386787209153964117415196080849625929141542177912495018657548194275130947972095910863842750197285582890989309994391649947464261536270695819510849702093457980560664337938307034692238521116608497326453839599355248576409428790117559890925526489456764288123194316511490122518254995245233571267749777491438471556790746009727723698950884026001829779235270844203281216876431412568596158078505619373818781422229076536181542162279541676838519983495017038201980364221004996277713298797559957836009181272595734488333135919541882268723254825933745729343127818090623242720006047714298420120251777789328661586131595353322797671880714226844852675522541907158084875264627966664617142564967820734991663242750535266104532232149007689987380200524727086324218535721130922548395026845524248696260412159505251453238292092629371345935979387853395663899471972686727972804623448282507476806553111043365075923278300433938197827256581115385910718191783839907854658017052646605104899713895522419424107016846646200850096297109990742188165933800041948597126640066509783112115929362221617667867923680597248737754484568740514724693906418184032932100533955104834512099640385722226348925717321456853299995113573623305746199317853760815717793604543481750365938815469469713561637284081961027925410587665622048629264218322402545940385572084224240708434056504157748972086935920227972402466176844013384762525756126783937193211885061098018538323840686930700094202293906242521967277597028012824567832359344080646088972487407418327564280041510335256616411215308250441045282797004057911477375742652160287802685203665349806672965259930739230676159732240904452497552495380996584770193610376171662573529274673513011554652553666594274765441191815560293909944853184092961195496392783539254435567258788372964383371601397421736494731707062250226608533869897522682206676326131572664178562688327299448646786735154100567699344464418544582845615425205071159239988749076968552794883957970723719847892523526148106044576212682787980455582610219874851942442973995540391674849129803340159236954477575962775799120185694668882004926801658344317808216765195452454807933303252646751097788223474731969248303015716395955656399226263739219654716815635431913396374869059303110125464328552101006120996284475864223036219235523150207595216493506587411135629199523046612645876038574558171836327154098656415861872875863287996151579418722866982651840766733648911991147320292263532491807738841590930811201610730332085114937597868813636610203131386856205103896063197253713584921879416855564780417648653828029809123782447534922627269823934472318152251118892242904812424911568300718886985688027261503145685098299661321708900398790959950564490174046045488596356574824591062965796338827144570186416503647971815390744737639167707697175959330595243885728811529838989656733484374693137059887860835064574486250502640921754742257999291480271161771337169875004006470754723174393593550582214755955428179535737122935780115246425735431329849406911984137303782799135446507403639140217687438950769263438255765650743712312207474000747793429458796819660409650301543780016167194391045558421823485833837246583812752620553887501437842252441565867581315850785682470891018796362757404464008215274146012278128410341659411479286583021732079293079717711958383981366681582870805233480227133958280931044662407842799335443329450201345394916073119874031449192960478091579742351419111828463443448126283038777761424476088844787224695196493725541183163748788472024366614786546169060905654776250784748020108422481111194167075552419641832113986800523623187238437407073827937867714971822420085175871119112908877064018440556861382514437495350309116115953466374000326787018774057987911608808984209549850413221140056832637163333631776048810311057811736026756618063641623826613840999117600425185556687450905818971390825535596961437230137767039985542294511637025055202237013966657819327295546777920323867448175668933804039062978184954006670206134321225813628445239459253352442080429533423374813362580659570176458944070823497219152176085757261201770233875901678253765705102617853313985720729835234723807143789602224853537875626020941438658915238111430844540920212195678170145842713134821266692239257891599955127065933568457245763872506011617492012858351053841452182979029442207020501988026650371369289605199755324652472734748592552913018570587301322555267758103627314189514498831478303488781708540828382436375605981900052807969431985819301441755549058900147348554971867533979304396945219454237678017342053942105517254995398854626187080666101987587722068782769348402918233919365619507512673386084596838819031561757152868013601793294150807914971656359880568021553385254013794131423961149991294246034577308241827449307977304974147093338223067862535985801367412558521349652492645209906304894107640899430138738376118096190249508143867238355761768109714982131060749973525570435592625228087485645287980741025119893302091266894530661774400089185626760709559058043915749969393561131501761677823306938088991831593898849570181684636212712179354010378255984251144209178920295773948767186330559218567595934213077678128739976275433479315454526623259692020646510015699007083640213011059835096828458332065682986207068107682142670999773338908152282882204089923191816134491617313719889830405236545813828539231276607686617417709425251528440722021347676499981705866252186757907531003145989048280545271761819209939099411401726057549693845909872173495850819200028924519489986260871707150434468495981275216004479899238511691188966557336897536842894810212465935858892641462538610978181765836285825425682028289183215117677743010795321562915194579476039808211487844255725203904421110140185784542795764528260501013440447173837087291606392611136904328410857895066635134434736451958998150359904829474234890655595437846020176052220646287873801880070140253321336014114714446921416834479878908649534463100829846445640153953362423953504968352682332515517158375035507506888219219005402994168411622675014719267570381704049897488376749528860898852003188599971095474444867758842607463499648423288502005874369975177791787206199886150841734621874071089724247815972994289782531880679625784965750469518461613726047892794609847872674170012775594987294777453112046564289144380080830154784748830257767452742080018455483558897299140316567103917697877198901788051039567557994137382685113435456224807045796433199786886950152480576274302528727378845395104352739793218778423235237591249737153030924748864497315868096677299844592241858896448117128488578758759733557256167328375314350005162775902864755242663885991210446429806599582479685758632790659381089732144344625646182003981045313146341686403369083248940564018572582631041923893224510462799213454259704007711967411899702009476341095415817256015653599418301451707027555032105205216614745893333644117069742940579825543003084834758531727615223784517778894488949176601875767973620513447995972664893570841763200840950839925668501570588540718056871757179715548169444181450978528996180156156695475666460211315547924617428761118635860096354516893992119776494253322734634443634358205626675035033225304173915911451644203738475684803785053835446443052613889272343473635977135184467981363261607684013340864574203393737211192241130180270375960361129887353382430543416815635907999217112779678734982181771156044781479673140796764878946994026994274631101794662576514910673200473341348643114596014570386043016757601961138088397352484557204416357998497880531335539154326872053205040636894542004548523260017176834421191564582038563807228556009630302188378425781371722062209132883719363616314132780025793584363698119571771927848116354901989457212493726963508890440399247770126397710404582256208479420344736843358915319932678735351266854662646658975220226487405959100843518570473590011248420477404842658499970018757408576187562274294700697864198628656030564234894894593713541803321520789823943009638486395975738522539396144375516915104319096760718662402948766320004749293366112657977770485345736772104242635206962965561318541413087004725892427185025240181213703739008132352344415008659998422645101206836254664607842459994854225722131460367798529198143266932310239366470174877218613570114623452763239764712483538484641298514091513996090386420143671386425867548658544198921145579259393340985931135212372152530353451984784937927059946489094754076215645975353357768922282986534545062366291679003213015869895864470910372144047192984716327147423034585050914386307185280408060957249861517728552253078254902232419766744987619117262204055467238183199741805450160503021799653740521220682788191537263472794052482043394537163624517622799520629585454696104287210185964179002094814203844477010708244476574921885108705462534044100815438366507976749431804113085168664481961422752024008022170185444615842115361746634831628280897380530330746108219363707945022840066527201001942769425294893025926313210190171488549783607708793162510436598827808076404020313700658603232258141011901567116801027789282682165119928036445490605875742200454954896245635685213649752470316137216322897788543328924549271537524951269291029567955142485780457762014495842963031631529258649904371805981607313224673772508147705857458428614951889148294071646635110958577290670878862083911088053009317333735768246800210013057216610493735918826274806006008210133905839009349926343972155564331248639720100806751155243181407726099726141764458728231100062830662936660634575796110344448302784125349730865381874736920070629681211817649836697325879531659362785963048189264448841635614459083941513638301704797176013413070037904714867405067518035630218736285918199352684578512600055103903838846980380042133526681993362197477906603507963476668202052880639854465119444770620399660122737598861169574772796460075193375803603977003564995819700617688179385413325458671864013140347579048894552097814097184710755800385360466942608411562833879205319014300653287054921657001637240881231059770726457889165810985906192873246184681446784953807959920111510717745931146167222963063836504750632623102705257972723839718261837068336787608410534268968228339449629779285541944286001260525890430071381398613510284168871312871764187595347135902009576645398137032790791405009948328032461047725532620546407551489777907075868025803697644378562639778739118339434229255504342980674445374527132237262262687927075814614585526533830449792741361052155147358709879789822905379088845296206395013344390186818636984823010726962358166981812719753228375579872851735236248575483693981687627346069939041751783174233669718390911759904452421712123910245190288480055347237389070448792846610646370684378817283172012489317355178511113346603833844499482699385100784753589399213298911873438971151591103146979273392346194732129158671786197610606525797131548168999392729224900911326271558707621467701510582407429308865322714560191161966366446214073281525414034792892961758000803368253029870958434484770743944809974075280066330631712817937272397458348195594857266136048847861033581848763911742865806952268147956479041136309606611521399818389681519632261371716822776852619464835880130226423952970142958323676706132712519372597743712846767223259950435983586328892023795508067862813939738733338730597036203927810591710093595391354462519278065839754132026889294190353809135710802511354064258908900327109190818808276128911822134420923081047042952290430348386724121034054149959717174878963083371478033459232293870427272790079585581731694584939308801960642279119934178096043004012882077446437884270601270135857528699568563198613778489441150960870697664086395334040768901746817403256850491462963414957649001715751018859196480818610474572222436172323639522911325624152871577562400161399781360524863144627808856645380547523978426381850591229958615767097935807278707599742133025991419128637492899487878017369378098825100199676293517909968732254832968032782252369994174985762776579432456357670937278829287651364643685342104756440006724695177889396873931762167722156370345261396395766099878634092731921479836423013987773024880150287684708683410759368612335692765571001751194284902630689195840409188457636978157128896668465780534018771661948364777933266922897967377741593610235343463662867863832287299349064910258722043039073557946787595739963685439375940140902667194327518567118308427742146040244645879702875367815325172999709896774612273326041835728817819445333813495447088437914824747370779959356356058359101210898768644151953241509559824682747517769457322419147197399881279973806567723823306384914740001116282032122788794653985106796961972931216324895071507861797068522134265775416768701322474354897639089291644047543021165227648695281287024630644360429155864001097211169659876438484041219763432634298573787942922665942034907282087646961227582599885917358887601300389867669710977784255761086760623646239409413060899262212308342309766174467403615075559417403367551574339040240427715960391557775511304859712492999380131123960613258194750317143755499651692943028298820956869306046597241789785547920782929699575494700057232256332207090169873664448288983205542650969672519183337688610971103909526173679250794421333410089759801655734925345982637781272869435841343121883196895135097966334686350434127673307650572713148733718664630842091721778311949005442485392912956269930392034258476772057752699973790976290276846448612341929720846844947907513973509235972560639281563532233631855019301986070614361795872913577646222561244041188045315876090715443999991186526121194912819367295975268603355837829119154396582269529117984943896539440497894924154982383770927652092846834749938986991253381712619283151138417755100631128172938225485888259069533134100413403773094197770502309913272938960239132503847894586442728674835500162092509819359962762947118062110681320868328744644654954650022291695186452801198575519807223737865422512472580426647152522520245575974416638318805734083068400174074407943931780677446565400474829443895526826723509087364316408520395919474643741091367533958754077147258312239707751595596866977256703210476563592802000279927859149121715392976927927237697302804340831438007387385367165756204273977154674458591173834331198002888005172308822484008052201821755901109879989127365949188605068791711067602510242565746399356690486015987194129915611274473750419324197823029023927169630293792601115959751767356026747355649467283166297883429268187631495141122894098707738623471207870639361865706328318436142969866868359143171631159922588696236928363708157471599239207098847645702414726386263927840915378229616030032385310865149133508170587119804939887215493918884765285837482368804484024342345939615978996116134255447031619634802313086450552850469537589870224816479503172153892650204380136997391688017056517751656315814980697848059044198762746885694975002863630302731725084528929738557084883898352561325236134463421523640178588017485664696639037675871927618132746714156350899653171280842810833071181471857556495699865635050514971170684197467865837818707330472194113933432032060561212138169632668270234346469763193779101162021353211267177558908356515490327329644313823533787895423928138111017043145216899495615525938291496514515539556613389737451390370768264021948746356882126228924453757106471917082659118617193220048055633151928174097007837319008990458065519709766866668119205435367040231729258741964201856076997316591332990896180833666352953299369712974325026521006399915102465948317540309357652150070366510671110756458241810056895246096759941145218693521375746082306229137262290776916059364480098559507774307926638320685486830415790283562618224118574258891636214061905096038278750675122048830773582864780888445114460838649804026494461178518466566778302649845105340065687270458692727768309776491134926775549528434268035489384283252413902513089717252438957492478628149005391260279855132678047151827675391810043210462583713968281004717742714111723658966219682984936257570751398553419973115402758555980154919020643971639959611926674034162652890431589719029595225800819254467220044987968651953324661546675132487936010248606224225264984396911808832643677514058749740887153724898951473207254123975704100179529158217155304657719620655453416283371312278025410068607259034570395694434677085718538204186139491093723410178874521126426725565789259548252980038715274685075164568332925304219879219749232015457578304317845565768909749494860532511229686415288570237603546811654443417267019013480050885274143256410204365115100053567451636632851280546146674911320934536220192639746861073406264627035295765661535191198422322910502343582404753350893190929365915097789689252630639634277038441627620622461437272313572547730585429909316658582697939274428660356600686313925122253159805006000481303679802535563334157657307461715623037827016189240592688651701489713794835247685428688479793176688337300682413347742886576515062675286938445785446803595283750271344844500042778182492670577280919773863111454699642144330845757190229407341089025541550004776992401146229800076913166832358385040824486540759702765926512276086968326378343952043664669930554050583996034579852696263490322053833679387107662675898929618885916533913284783430496840025603188316538943408366535618136846632545367478107638236882393730510910315651710434807639064363010655442069001193868754317859399888982851247932341466653517025806639013574084428734690461436598114404835819714062676479082364517211424005492781013617870401424615488965918838915070836555361378616445221832325019071614509293917508470042824203502318896925896640212030875267577760908132975978951329326957169551580260926662902591414404240516667032144876376369771343798640722617752678453091940250006870314247851557020520504966835543539101305277283553462080086456520245020994344098897881447179501179225556798919744885802235429380366014870527591514078186238119416027980985616946551181027662196538411619737822454517168397620200756502671520227074217460344372931896513072685348084265467460890803303204350046563743952304967686676281845542552009691403776104631305781039068061720719121263594373703794961534765469592370932224133196618976981326286173703593558576230084241752139399493226379675393262763220559228425246770237687204065408014322410271321388887747953616391493828176168605583283036846082261702575399468910956027742642733817658124414104858118744637230908977212121735418616850574749384927402939614857483909945391955013608231228205463323383830079715663154536218379527252581475224805485320901827255180450279218491204727054925656123488792568904790890996321684866885033940298251912583541435329823641262273259853171211085356307875012411149180856879978018078218078291493315188603879902221334466846701749608153364489545624466350864186234625829583941556311787023033391197511476874480729735999221436007404356653430566590473357774031603644672468284701940012282807863383410099375799741926612489128839087974028077032701816736072571545960100019918545987125292611776166171993131051159739836306744582589985585463111639341143971090796107253909299713600789716514243214558414770694941280923580518118298895185442879598988720804736514415162824152241490248644161215309820505763346123354518855688298946311689519131893194071117001201667019601323485348264984019912085866088884091818725611779354259564176836136354472782827277972267654786778642666469805188368894340589148479614248734193492902322867679295893220712305719898154585735033752381645745360014227976930683325230552272681494177967854266664053188547634782229642579907725595865817867354969755936303736550327804295782165352647326134113173629194182868266862576334253924152993782683143335355753962192216214998767898575918791534556505936320990252628784859437061166786489001830454069479813802823581437530174101096881354728832269419385069818958280017586589928377076731418272583364692652889472197479434626934736925690528180183256328866189434509720640502778596990742488161426186162091365805922553955992096470242721257027379563520653033039678777480038172876279888587966251415772737709705745075893269388861089397797427358354564102576409461110732983135069514098749518546423403310884497498302392919927570909772256391291940716129842943710293926281337931976206378588753326933070086982663415088225437044361894283533539297287899555449132848441020859881006080117503655771971830456195443312777127365715207435855514073006582859275529009669258250956561609971846288226150759062930340335571193962613472321065770160994029217065373023022235201291111562090974740292654991572459454114515747468845604815816158002232419072076310174082812499761947639879742541188202438006175090767699547164876211583304406328076391510406088433673787012074081503866970110778309110843514352008208526822936308117733741968888663376219729788916870693611085461360049608750010865615121950967048721294673277330595032170315526131058564611945822692735910482521481887733737599472655861474761957285912997191328679532987111908251773043300460073468498913676597681097482020472016883791768293706598704129678575937957846033728509446208535287196549030298532429563961774772849665755300775551136472908150437861155596194575598745946284452277843699387154492975887647958837721112739776367462410747551280031151583015748713353801477004791861964853444589563628475585162082433088483945631532716800252150364519095384810693339712360495212707968945932129748553681275741275238943577361510358084557167654480024144931556736200718381985695624635748785966711987167431098497956288103965354706190941848169739090312827494270085584984061192989184020268591602230643989925336412384900576289215595999360898478548636849680211791149758949721778813867812296968543533702359650953141952927521778824959771494905655128240137898352593538781444009627759025479847353213830139810685794684221126763069306243453735510504530297520866886784330300947961231358926704122271045062532639100834980875058829877280864718308952328530857599648033491764013662752833076830069373413894954704923121629297986171206149837012446376776900138586525649145274976011382991967413363154217174029306671141788535029114164038252570306040147284610113679326371395986874741797569597934354511469312159960247912130923872925089959203848146060637312892790149562633278103334162979179331832654202918567214190892802349619581794879223729275225730451699189729773382866570234834014404911649785458909702501010770626641767104190766256349812771775202637981889433857889025894240568811027795418259698959467473615558878221817471169062066071978555632011672108747477497646559789747249236968364041684724323443360869848747356492095174451761823136424321742420005541174121339881859994877701056930408496601716941086638765152174697771230281123133065613891146390482548906598015669375912751417123335552518751936517332511881773332812847265843874314163967233402794931010101889634180287535115599640902207213114311224065813755813187272392207215355997025359504857558152700095999125849085232515316077220349877824712019731617467261207416421698022262525072356618390825580182751675444845051005325376185783272323308019801285920803353315580887065465391005825362102615089561611642838639958497973054802329418077931657268653579089271349685241205229935022922530644952832844351649108806608068081182318925438853847130319306602274758804045853082004879406176463113342953809763811812904557636413592589970037527852617459998965425874186911027504787232983699596735301457439244361568498041931414979861984994097842950828593527654559172604287727465396196500495688267127230016461842053882943178126738232647903114015664870853262240949805469937485364732720858916689965359745716713461293642207461664143233663359405712145344779449535307495982161033947471414396297782738494072435026711256716613009055121056088310082369270040055812867097429893828711469603832299330747415304626127223349390894836491178468300962132576146212235386368581118118753916759980540985208302209201441361678536532564675198026516268785800486434653915413035575322047805329850890157284177052453290283372233406109211516381003626027434834449571511405573699225228691621120196792416096465389282758287795243588490934496219084254093059796794683711433890668905166030686860289216719120996413718638886816294522176244079853303972269808593364266861574462124538384679765896997319665694116221772051216649669434277217428194403795376210471411250163894130943033258487365490846976600186714243672094138764257438335841823373897484877567851415404022613532123145160558348735751244677582585846072464058640367795631267731940484288650743677085536585731979207421603905664611644590682883327849229645409116656216084346116472609967293696523525827015213348865767449123330073026054726524052773717960257096375797674679691005257388214777737276432342178713689143299545197680474054017441383026416653171733178325709133854833469080745988784827868268453001139549322661472294534913880766855121017451488802680481941102493971901778150757683545466636829141263131005672383050400998066649628320823258656090064441358451724281946317993108464209213736966366714920375857791360523562831937579980019652920891470614388117795225324753527521734629455893209247503647748140041418819828169786976680209139751352764133748802535098028971445067917751586192610030751092226689177943675829319897256019422052291240965743214077163749417250501759348696345533368802875369862256615668794238977874797974375961665255837416057201165882820627020558668344576157267038837830462806149347964407846917085902796759556497548119691454420153989795900372650346113261441719413232367808984538477497157439960107099089392481601851642849370303035595512330678653120174086671195769793300071433442376261399364275131955203407109438344050063127342901924330705299387411372906212661828702289895127557090602449865050933368984265842057500678202158691556482931840147299945373363687020027891070761913362178782485050856655976533227768734499302514597646676918621896140878441677081960180848568810212840410212303303741029722996662293805230084791412215776764974659554200157125511086495768652294696912009256836474206314077870488404734358711375564794057753369353738729984246301335197114148517127076201958187450628374317686858649091010919341897959350626092365979237725322031575427215007811575084766486461245024406192875865532736772771345806597893981004380643473921800964209689350524013066638725702204519753120906721046017488585842076588057179009447655021977207313674551099901678225434465565639636234517641157141390291542351763405495931734626025924539516838089576721031217574601624260044171478672711635238995050734758385686510953541979895881041042939339119136257606535837913119294909507287106659650479843105179633814524546448149388822888550952410571369156479667920055299271277422234869483256665757047981590058077325229110074388167929303365338660100823896434826610181027504717656964257648660797545730786373819205767279396040612965069013043414785268444736309816146768004487521469579599316310393723987214114591799547191791351630768471183757194938723977926829363678739577209709640692948806043562482532479396524148419512622484027554192456102573336059208468517255224546694177099292506114891587998504076099719638188400239278502615364143958963732596409353462714625724102592531570316742384572720288738415650238228180624912329278010995084204379374230870269023999646327999716039598368731203610161952721596266849709049998649183650209095456251733723230716132267075342899391548877560944404794533187392694552253184043503558105185017266217545098542949796582423255296055410335016331712910484066234923911613605592617502504231106514203059706228764048502351175210013232665959414595752378576413223498805596215648777359669545995155209507617113763317510113654728834223971218338985571686583162779394653004011522839327726513973477019214923630288319964724576577094358551023772041977881202072322821267787799938097340071522657637474977201585776070019876909751042588905669547872464380478078936555365404149294280375590638257177309588558100230166414322230342236844121899969991232428262602580519785394915772703268440948069596087264836189931837515455174288422172336692534606596725696030485018915421868705521593421337271247911545302475609737391072872074579285057099193637223794661068594269216093990019392622053494905671323679694029059909722292548604772900824998143843851963863355731857489495527676568654166228853293713795490534535722509900350233036973319897799807656087098669451791220304207186831024728439041483775395721172486651467208178450357471408158822608988909560467828486648713299176828072933264449575816353635963174575402530343646875832135643882416692007662446251014837299826162525612528218023047087503344623664981183755911349615744075115211483498216905311408811495725289914514741577325562021514449747569738674228310022641783186835022295607221718431963527532231528056304443215711378162017522815009047156416737446544669073975215740927719210410909818493517718692911549802199116759748119734089658756610006877860446546344715423340426771812474555357689637877329125248564472899952926457802148469025493134574775621640465875819073869819154924961341438837469430288114243494387984425614412208997395689490410751111761276673702946270294900609077485710895618068402808018764394463203854097386880369710473815676182646921227912335296106022778759453582484739330068044524951773583078979185904137520996513899558666215872470267330735621528252181219103122702748359365256718500558612258466742244306653510086009550037603817707194116029644659350416309725024181360032529768051128839806412821606608736549666296539981384211783866148457892945080478386316124651736399708206282987512554127697413487305804634857895061609402851057345234656602631868436386197951806911631155859004110457529630785020330822001016507550751077934047164656004186086907503372217587461448606274556723091811095717737434559819279756747309678290354434122784510773320068358624222328290819035570078551883060726530933671118265153716721298610432741823364729939414729883748204432586299596398595996427246251672717228165800975636022703706976517106803358699137777185655943426705285734829449653990044477750364333811804032933849248103497446259939067105789198453177726843350129741331955936437146177512892633045269587442223594291472537480291269245639729248614678458776061724696512186413665872142454032717406854561597702752166134947066002411814881845192480227898149539728986286725111636528850293496723402624288944797463444711902579477833625824766850199736553883330370523915083300576107768041338502185484172385880099966121735747047868332281579590333598911581100363079009921504714246940609803828540863142922885489912422493385227926455303868014238256684301821857921615167314998939277522397222222212765845240914596049300114394529782715123760606057412072430474634253002703436338177431559204733297535119029858294709659661126811600603802356594352308875494204243063277526290405652267198857530973853406151888118873998809064521077375917717204772702780052920691894016341756540611377532965176844362575572500025230370621710670667936412834913012765235432422376366725438146458178411885472403994531378746677068880802811027018038164653707740310017765610367203172944414879844937105079898558343637806993666129204640591192828399044377482142574345176573895256296759519265539046870298200226811358156666565598344263105671458482114447026279310561439478991192314797962964767613604440174538991218453974881047410067977571268084739502474674041537454869879784683845024824457323433256709823368838285161099883381094461754705756438752620661106848660146336729965059832890184492384642708098132344642573414591646310982368789854736447533982686585639749483381037280972821881730088384976930065406941288647679969121251578577090180405026121183560177700746527588545102924296765700825177632281267016018487349282299331916215114024114757037524170852506805955712546561422148435485286133249056788889800797039365779843755943958846694988568730183471310875869944312935295379362552093391642310848918141995266450972586283827854613778077793479158448944066169782507804848078192558989033782712913467726262727409063957868534483987157809442577497908008905156787809136554897560482794583500920220317752752245625118248299040534611886522166293989094709080497792340077621517685630059687238449681228239936193688371110929702828826760835940987172191830354533656161609071791986749122789599496262669387800866033821061057280888718939775301536040535591680941692654651481140723876737253394579004308993280275841475498186921466457052547138849804626737801186837000759378743046144355536008178933599345800082872175922550457616026110783949859264023446018565919653979779851363069695098668034741404756579165583908669059200432795308739375539193872312544328267718839035399662884849051178670851308564998117165029299090975533437931102366711588451774912946921354117282673338394015588082280459167248763276436391329168658118334779974789093997701271339431295107455732715632066150748479590064350607627380162306903562625691769235673688087753927806502838490853600488117736884112335875319183879548296419212243982669927801692556382279169724749411331966218758649878277832995943715312823125165861841015404529856297658030975001359526422318001936847252998978930014221857252121230815542782123940761752429404001717048464957176119702580011906455031801460544010220726819899377733386799802796467976576748641795022459411289601235668306237584529792305831926626834380933440202799331433048434673568501811183675509711399624690059282359344258576971638105702396630151277306551638234867983835765927381046888188709809678127147329330285578054136568034428408599875497496949537668187925786192889172552366901497703320245332631360205339504507722380698337709218324560405119820214645907824746617638513835946811932218380486623101622541458585328700284704449580346196558133127547454912947676969540827193197824086498196733559099332319542463254840897973555477697858375972353480865066576461836418886834771352339809562463887382925623713951107330964742989056695754389877911685501743240585302489139223808660262455090785224052992799544571368285143735857724582865839618261278398148989254059340509897108990017988526762761514203402206978367063932979426145138787568342197811138399195594881420807850932292871358115871939343542133487909669505562935271848248702889390481345996353916235189173105074760663142536450823295014853423238367080423117454764048719766050271120959206671176754874090526298518335065150700026979948888782338714349186887394412469622959574068228288577683351691696467701636767681684092578830330610479690771012593277912049496463209454793433066027581294029125740926789514153498047255985518059374059489210791685481637882109373379243829664697626390133191017481227929588899196045345782248021920214607118672163727517921393219567797304628224869367420751162080869870338618772889494884333764292330892772909723871978845400575499664088937914917092157288504567404408013074932841102353986319037610092967961997813708331737496863502010883457140182530253515890086902247015723212699758464456317817013627785975557832839752953613374335241748714362444910575648659449099491374447946435053670513392301190090069586531079430873553791330292529333680988986233012331910926920906783380621195863130019582446648024541732243636928353891675271254748514846506458108515535903565512078514861262944328710269014806971815929365466149257012652442432910460281256481370921701409786371810201547138425956952383706285277728971955142711403992700749182603972358665440989277114629843113701765898245173849681696263745650269399012400417788321768194477079061212791521848668658388117151118473089913918751409634547422628090183834215672736237021941451424686516455599027473608498360398005216215000293816560500267386271230543426433288979089445297092507259807776776781539573677764248548866760250300502431135150070999875625318119589942132446755316493617194661619691863079319393071376678290662453224699645660473720303553435834762671014928422862807526571243860050139396992584533737451507782443245765949878997148937723744536694768103500996552279792373535199205844714554167378693953537333361686841552698592165070470944431259010370838020402087101852200599179161255331416064534950580272533816763661709279763303186157572459214148276816742235693882917229521856240188078673398834587530145326677084810044714855579521566115028717503855096944625452538264992672406882990023535732856744212103177173753922027992741113864315159576902095381233974381255194734878755008110331729203237643889358605182836581930889480912375371970682725649374905684628913319466021410063311505646515409601103465138994278178572655239745973871638774037045619116204539901662935533721817684553837014873414426264749396358193732420950436716147515207247724101693859499556352079911738822103471595098583366640313427005976939211079837263963847106182468589314812604716066709505794629299259334968367082687623001118109213979083425473080762442960495450970995372756937624859938998969870815920782418057812274531388625196075310399870686203890802192084674992456655998875061079346174833249592647891278908249477269671228254774122927618254854842326575336675679898457534916774282305621804039365136169838892337519077976160255938673291398372749529306127013609864961781656690085794277455179767388668357068915052686424949322734076240861328193405220627236662459686331465901902287465467603597622528747761621490065720631267799756702532904512074904052645701534205066415603120162423132009280051939888466806164012657423008555761206050537939163713419794554124151976629964968129471695783077123836539185884901777109434672586728121623199178940520607991176085144953984206160997051417498906144871112282297722743966356218250093448939450212913616243160108880517626203795179578484315817944512158519602021205242158709090950963905050995886910644937869133028475230439022629395545843734911161506290022583175517564772650497226257386936104875429336276061174549490394152256092935514166571226309821573803302058282629971166585250920907209117922076418270540063104844476990703431508737362139858744923115078489487051087531789769429211026815148633210860135447483312379567203781376248684008370987271640182024037395841103294977503869153022485156161429611650871000149527052855801231581064299061605605311401575783615405015940841302347235248347043109507621041158068650487374090578476253844764256038999801864962851025990079493982944901154934362562557962855280212416125073889722367645977082687230922910322755722416410878829618048640666306762331292631484732368205976417824485993492002115750409523899943919070522228314352976692215032023370694802527232778553154768467317912457771108995933214610121899469898961349202778170429396683988954767610141463099126162934576041540592004981908686207550624076236135787997193963687235452490768534676079934896564134463851719189959200358978849562735020846863591020545784490203882114958474611216153146264683696849941110033515544604339477095704624735260060981269769131304425154599557749379898077222085522854708926991852521021893827981017225585650591736121726872623651645115319283904186915648240944456907182472964104814722784340990162050875124515848541853555165756043322099628979132447990671218381093814172531632292031832162807653512422794074093610800818097716501474414973261454197235048635276462696714386921850003088821204053192384275935216641817825990114853045232048559789090158479828772816690326053059484205437555973045837240285391206757808658939176882862517849351644645261721521749216213724981406965133120071543570268113241930770438341691906343943530681361188468523631232492201368000404099406186342854264334912072915251032797678564351751031317893679310345337378119300039404822078374826374722989643984506860779080114466590328453280703702269268541179306364027826666952416517420793052564331858363473688732829148937483164948646274750306609404486927881640440260178308231159182443793773301094797762695131437811760477736908052513524518545986040384673220010027283646070131232400711514025625631179669479941669806300140745516768717809145466824767407122277641013288110136413625677840996302159230019355735184404517521936522531110235238649121901020918910489214726960702805947898877883241975540484645330432312107311259905382151634055907916702085205868605859172120013245473053849428288223000118945559912202643092399130511089714355177937264956524392539672231911056505206519743603851878227106908746855744396735420650958634954743819928265603724333456627350902455433596666707743771810388090895912243522557477025167302003955121321112090586782535787737603774540381254085784440374371728632688874033474428273761552223119958309130228277020597773116840389463397003148654537537377201975697255265993749071571109036216463698193332755619037615166078023344893528454950919985349904012658313163147112089869345019896983842699249201604904515887386657808852384526462429366580262425283520549979138744288669448483931791972747818409450078127171445938013599252524138678532437481922591904962822118217720062982806384680810401450146703851324390258737382991126018449396991748475890429558105945817844566663220756247883718200503204329589513538882738554111182540396679720162570789062694988395246406985802990930090783087273816184052711262452976654945435359422618943346127564568202370627208688692042058640237148261280802129872404726245789050957613199593004341608428087896862915379956353620984752754469496760402129226978301568842224123137240187796670592035129025807282661555805345631497920241404027138807067391021126085459505603610672469839350627070909174970902128910137804714361402507747524842606861629225537870333433113582863301089008582772554579878013991997811667004819977186790621200111700743182302333906194749674999568404361503555752486509762265454947774426546378609600736900918740374916094332230338821985335788664693625579587151186136470553630850756925382652963914345407786660826514308969248921913796271169796765659717678198732524146159734519832077233804095262882612008113187851093743247510805218749616935125455389026167960260158076316171705506435840296225405366127779606084822626873985339982747928889227854288544238506510180258666993569190033773537052903174929683235352957287600489875947827500653399088248535318845740469852611609323444547143537567576755874509005222739172426691202421002017868973245622131760786095118013729730254434468904507021529235285696634277211760201406114773322253177271065357773609291195639227710114027388621463801793848289834621054424183593958637908211137500882195119735894698376943444513308392523230183652033565485090285287760144562595959435698272206190701593153644909743857796984091900106129307194861215918679776795498346017154679445432097901754072335899575550924715825708638427344649507005799240851319810475355250608060455539295970575445819693943163569513908939765873239193646434031655707666907957911260334432473275756233820884701625050635431260373388963058728416460707445700827763568041679171148689652791908359841280043524695256300154886395295913322078097355129842575556294204996938487258124235815449934690738345761432107076651669433488830334864872911805036275559570020647871868079795907377161159485615609078234489304518932308661734216835794976075533553433533420968237703392255747619466877146512090739862634215335965767601831633349713349656805681916441706957450058422118990663006919758968021513547628384363360559914217280244611354957191052914131083913698313244853220302368968423679180717008860623346916491442590254589046991080358166630176819533947723797058266364093147462627046058342812337524358780192489783684075203678897509937171029590112266472990273264455735885048347749310668647850203113127272080752920419861385787450883965660099589897845291300249837154276329596044862524794768200456913035595801449687478887261834212174485285946208770129053553995625008796523666294558094039130315490876962053837869685524331980771314059859127110931246482676103117358418386439936038304999070535125206130876386478872327972079069595240507125845142671883960336928231977696560161240114997940129813914191695006483993795364917055728663904211922901371064969830831157308123547190564105006162163656836153327772723945393353392788264339147536689000015538301324857859409015475037168671896930166037112023418686104320746673411326341300531772203742417288513910121343896878793663289452642802078621119245769973426959929056125526524817565734174740190850470079923383374634049323369459327866698831347939331126391569204583493779168291113049435986896753936678909054825243931129698942147162500908032470056656625934324096379394332677620497245968247360008726385871192506543296574904016008613750169984899674054056243003640251364512285916020702757090974372589973273286474167429204206796982481813269297600104821926312516234202667922551275786555402853092687838956710221623883431539310827155763146689917418143058877059918353014305429779166246180640568849869784863070491461940415477880873714606713966117693090693668415036184782943469493162181986163805816803842875796952480212840613230057499703974262539699490035506476943760750901226205369972518113849701013452090123751467234673539250441892054778766885950020051086783180061178764430640976046625450310684324149482499904787075156498128559447799773257900384811942353579565801295173636364883577678988672251882675255856128587201509856039591444328280224099319076900219973326167162136919972953633707287561400154398318676970117630921858152846528354588918441380491702572149663441479316470507551412920861301512283066824644880123775147161074746577062878297803753515086959706860142822173209393803738566627862278860321439051167566906681300626096873014060710088928021457148348558389937657416131699532976266451154783219710815998559343035281975253053307313758646547126111599789181594323973597866305157273838981724163786616670708822808281841221372016174099841840256149150896648903779517191730171547191840108366949071901659273394088995492758482113256929769473016325556646312118863049338863678526995523848605147260058814652957698836734596230262254819029727364627503242908440636401426962232286447169392705428594895827954259387224799894244834465684806626467394504098363630736130950851175443337107480683411155663496487276852963927454059604900806046398309437571746954765830634107764860436763310951194689946197855925908392854771935100429980126314671163838994894221505942489480053843854585637194321282646070556718962276684449911164424389833459702471736822380590062340116891285683740243184242213531152803818713483713793969365051995726723736065783548170206173771168497099270588289983584898434648815984139844406134293322758640071380337553958259818128661947576589612807069284570243912999772869381135442389747367834248610960298601585599979111089799401464226558530948347823390714764341397937950823338018757106934958133421181719433281644924247068320151487587032423209570317793310109975975051514698857484760758538121141608168389855840632308432805969743131282207094130170221617276394429229362210956280970681533320714487238762210245084333837205086904618132386977670712621780960817385602460048189885625678803653612705945819945976666255837135789712867176112275020216468773602309984945289745203486197512748383680743232546224429070867706061886684584033432713053877707163050772880097480541911715826957119343549641115340403827040357393254726433844818527474744420519231546292653780873750293054968639476233687601334473076205276932713248207986464954134212663357566294665372363695790556817230274631002005915132954388486270838378238201967044747729612177418893665606539272136261111388527551872073463582386268171921593542607812977796107456416847766850045055648034357542224203501244338533366489676145780930693890948781822731926428833141613442277189489208143167432227236578084238947063529079805956320812464978122102367842231805074611367512562620713950884823810917113063948450585815392452157483481694413330760008673811222046823919384371658228691405421796388843104251863203974450570594333803650496901967276986670889830604396774251968249187088831705441958502098439384584600971146715039193579736327283423663362170761969734509816095218002616892619356928665699024954600962943929143307351151051679272518570983312960884294595011993209097327888759264796844567961255817663649784137760358026508110629128659695316207416006146455081375916529841640426293674713272200243265443517350027589379850775848681006323781545217626281376579898804462205416778032732013702695550956705979567985404506223913410337406748130496007655945615147148934149315625890605319995186094605807337335620440551452551102233242979193250486827126686719577298932345862488166667974629794737554632853341879302345118257915476810301092905026364352772163792988714884505315631933787868426632455848757770656637842901301663940146589931472880801124441680054604806083857729540148387503864570369290594351936310773679573779425109320132192156842764758361964890619969278643577455533607791363142173768815203493321328530925093150247847280103492156052026666812899580605735794845414418205489071008169732179164378592642789682907460908233014396396315749259855908908600592299236934316981439253790193067945414362507404098714237587766651979389504081590310224722502890961648571537398982527761590721870883183591360283251431153367828709651566392784214530751326519164663063050253142069383138821925147175276896790270861280181477115240316593113099803527271297684025606886734323188416848416008126890698654362965231175472884585017348460921536704502031351195230484990028848588360827547391341828545771489973760885543037814749630404174763932698531267878490078362600668208864532467859485854752609266059961770344312453358078407991928576331890402930576843884197966791515912272939538122498281807989525113000241873011096638356870024756665770571910321027472564681216703842894966755803008962104737523701788888805148069737491336582803473314833110238025279331972216739820962687821291912005161324817182186815079178473581582355896085322255338739429760245021173899210267740773945921267372753900986811422370061420058198608464605152018962100064794548400699288235578575040223328797263394532333510081233748286897698991640384429942659974750279500399875301327803698309793717609793571065069026495979771213517106521582282907781114647804311033726875057628083086460487463694518746179973738227503433870416175830417030855161722549058456210599502661794752826276435144763570181666907127674354708170871863977097290849843538443099170354122047380463195989827475113859870988904886676881617701686487687946619170697913515711610879455296061097505926508666875514797586255021033295760267635040039591865857400112334644399709732561256833232013740360789356153807427188033781512818509306718118664006403715558843899129465034479808393508480579710554289371198245099556467777752160427825131214448049439478254898434794311010926684547518491624879658017437617849831525126829937516953529182070748722395733037867227736444650483643962434425057550564228707973799543259074664769713321945343127011950400386463074385799400692598979045755778504199524552899268058398128166979938447277246202342583445802936101695336778788515341515592109994348543300932411933540044934430476396918208192620695552532290159550627753754944750817489058837185870211818881444228654614043447606490602271643877215656903946265730699687728178886195033991270577161370938353355894388403343258494247076667874313461558786550275337446957949694531162501959666351376972347080325812961575869225409575926764708169117398313743806433229434589259817441240379719013271383455136499455466438641300821864778451529968600573487325685866944280370781915962038169201649829168525715094600074144896351297010735324554444915045032440199783396948985945329886642684587145614873173896572706670557786975250932825599401901152065865800139663631381878061606626665138073154434281663474522391837461804723247844231760633798793469131090466871644008348084904746225445547369985772997091868719410556322334754716545260292173004465785428651950471930749359323514600896496873611947349737136671102652136708140519765250282690550773262823416683652444788987755782166185747598355760337392237474163126042642200014199971234697850247530543063673666904990031421640905175331683882772672868760407230620409917533146069427220128791610337619235218966027974361171039958673770183712122925844144985940655441208193712467945350257294163811987622866028231789000929489524057368108953406240932767689075234042790111244111901416020517683794776797979301064139886549090593647227976183641877730515295833896363371825112388381980074584642579794815326565705556617845077723344178038313680266423337190712276148854900693783860095355894016819817205761599986872414294827292105699166089658735645954532051822987154436215163501892530972854282175269009544401657712592661641939861677894727972558264203456427181621469580016206133526872483620123043020952210750320940877513074534320463827979841757029590991032531127634423500860733126324421351452593900645231845995790047382781047296624613524045797360503010925603814263969930136251880096235981980795149612000941101458693390977504896841321335786410822220203438080670495342098995942353444796236252546912027541922941257987683810644322378039092193517174961307786211495997303518994218053833681255230609834483416497160673953075073334865856005726617079227324330879773813005263277719733931760765398474791743643217571982814930111426484859503983999415125841356265000607402638650766854970846260027141224641118298016264774809821120610158026835553312627241874931485453486500940734627104412054289310837614067825926842958001768827759765220758509079789955643138488453884437516959532357418118424484080466006100776223418940629956491122804432721050659207990476120814121168220079477406707039768932711559500639468060592739483585356734691986528990535606722535904207838407406237612278381769282383794817277144399137869553014332814473827030886277314242977809391702966135600165801808516887294069562768985152075094269004238716872942742756856961691580931604899971190836440617249196613528575035637442496910381800832058940819569985542891428051316702636235919242952791756517773938416959175192536581120377231614591614373600849508920087523702862689394401017476009003891425479577927081705037609778526535050020302036837477055275411014735012493402310912048690294512797145694751171676529308397531420802692207190659664311203004799227155339146007209591543197648349760603768577318290485345150883834176284015548088855837101546717239299671519059037535885413918714631201885154843009629915126997383793453483512859896112770893936795952586921063893760755178849865139009790150894257681080620092593304297014063380250766067220587697813360262848521006259812318442420224022304237599737713238409331859125792911876628193011049311235948038811597713412663336666042641081983251354556997431661388729392387074885009028440324154099736619699989622754196618815437822218852418739530425089508372435012351857748090229562465360532775094569266455459227592383877771445052245120065179114227176352991680603662765112147857238751284529836591294338749511618065234459314457998630990881123796037806395242885969730310880269296146796873065033281697086256001257771412232362199962163406761196469292591798309607953683352275084338137762369672286205806482914691265952114555264150710052163189005438320711203953866444204301561348749976819669285511302065866017235282795715609622359751360144304791820464642649781556811792892418062900681767608470225597202962744530338408742652123410573680018643626361919324403235864379538982522503449891841616661352761395483949174194764524740692210024280879543596321239048879260499123275855665167999265508212937450055852937109180647946389563177075187110380151270138191464860697019492668630548352625547575711132440306818485392691087238507120495210063250799256920695813082878759247808548485990330784572576495005760353809696975579912344782112729927583726346319963349441338138563033025094311960606898447489242258297049445580453976970820995145802331735878576252919663069483930924194183527283759005754019312156921154285970152595163959580416763213636644064712988235421485820117618848077303584085252790387184636331903707728906167951010424865904327273121511920926292680165385575344806164878320467351713627340875171664801420747523816134646228900751235715895274833242736159053413501432942742195270621099616540159081754993904355740425055001508224825564226493249590753228019426445912029084119826287393998449480172982427178746881332094029614813856921272106149038230990263447105411156605774743780496870317976340653662910054494056569207599309207558188599074364494122199270785344416376950981794980342690623492468561102928202293594203473290255447444245104114804996394444113185052198002394790518409687154163001342619897555043218404446643600807763760499627585374316734795610298183296953588432295977715850310064073105103278459927735444060684773139657231907360851829508435004473387852365818075411630819445785910208513080891016566450013182796243970544986961826118825701462274860260467988541298370186758608845886294807528760328916528411520279185557790212939955297817230623430036070994732291328458685427665609813135180614875599242062612468853408817617106292253424038330443432605634842995119813082598744424075836576113432835893115686339975198100796475743164945320311033518321436838063726463656593094691336254671539597774055023182229746102339111092575359828168164067702352497400201672054183465817177046036730802116015196522078199860313483587576999296171720095272442384331608569533258476100295785483404903436893580347238511553282309828918042746471368608531670093727235814847046784579642862698719308603538964516653488529092467595908647574488153439287314153940009875940020525369857587454523393201410530573311913187531353502060002978002767489428614911064517138229691246340188106468500826117009878330114571276322209053468141429951030765193262313108711109489016432923817129148321434006576166618624132994763683201459969667718784584131127563779337522735683754348686070360429211261515647951974289031816295089675755676826488930650235494048459395053803481670389451039754851618716838152817057452084376811807870367481232141488013355137808108588408531497890167221987601587346552857269007654578203272215338749284451430779980323676358000519316556931486043859114515989338143494525550712373212685455400243252800178003247287195254337936586716296826490903009969731297553233240842598368740680547777813807828406803812720457634915264183158665536314028178678071038920848585763970298673290260447134051773560431291347649626261462445509522960769694157049994776959896655185624993766086813444660320261025437085735397792958850893404057588288807056932250916237076888206995712722910103697979279742081282096494713412294794463329247884388633808394308785408443173665436778975115608097061175424144319177886438292680882454474760696703553263892347208222775239983120952348576035024629371405054377935399932843928929363273262610067157141549314639431877802480301013317117696853644377305419482669773704661938509079467904279812009983616251927073911035658584637297378087221720915648093990220434470674933919248983349964110304917158662549280272905739244022545844555607144463330515820891744280284287907623603441358190557232725642452400557521509256119070967722328233036857119951915530689078061592722689752872858017941989322163191543557340286457090555568716960976691910461539377144254420287178531802913019662462426905579752016662663601210983192856732338085649203806853460998459091372142690841578710526701890521275353125855754276745740976123443862556411398026543812090108540269271562491552112154469415161523068257106773912382887273462587230325920151246427659037216564162130719218597656696139502419694671132455914530918719006811429679607942672842637541474459067037285801091614464505590674969138001148188366104412018269900996465983705140692888930332586148869513414749725234516834988124884423841684910111822977495248624177926599808333081745099678385986204485975645574402319190633536415680692639873050379671238704935897590814228480770177771289238953591970152479369091910382499949178761817456955514669212273394450539346626090332087939293479543648870781448588717181266874639647937872840094605922239541036038310644941800930050881118955062544299737872718486908247852442217138133225181967343971250220282304010732976949423731820049899678556932198391195972725887586780065516201366023875526095910418129332932274373435918440675414731977361373365169765888148870900517726652916039658362375247294783419924888775394576393724325200615884615000455487453788970196694719569508004261757969222921118499208597749347568138960042702223382922518272326480223823533116236235129377603741235651467555651266611555714150975138937747620769965715400649987853835768717468906469211352664893802967598266628140511310435988837982552238676008427509391401026668339483516193234595540570959677453891956168243254930024280386838995116139664133569555200985492423314458704724934972347071884326647284969676372367252774985666726422955857622073699578422524940319846131182558133649382048364225055311588720890818304836256253342296470203490493751903329578554137100695348431060771008336699083677377122835397519226799305524987123079118145129833809587831340944876173410562975100914483224979948037905596137057324800783517851311598145440845891556477347001682513246333550941261085897910962844224437884328492235821139326026412296892404502690789537783948850584632695118372133162829616078551178295743416287261105272663220781520063012793198191852379828419221267943220074271714018574226650923456996285188547957972336181734809230409663060487676883068572906879235541806393029684015391574457668742156516061765678344060459511304311915309607174489220837062524643247443631075158028958737196264632073583681111579268136620576101426095921265985654106325528125258161522025617988509005247965836162214684587594729412192289087025682244461091689213203558132986093213844507662566748589717779017227045876847354620057754276514853123923558997963327903592657160740462678078681373788568936636798637770507892144388410323315601277554427960639759884854127773139440663871866476447306531583096209499238629711937329262248364502146378712072688423471628288210626165391476125294088902807096063198588515501326428022847864306657894355782438663475030109019037064009307434580292058627413483137765919614189817068802076893511429975783352603422673076676299390159657810990862892569097362680486251246107334501180677061869301165330173329511831100890583882912347730064831750606077359634526421519277638085391359068087093807793505422532935992135411570634166623103374111524566068466101482758218325515199889095401589619466928090187281223897071301387706060717422214271400379437702265625689260841338922578228470312068267368407256428045563765613141616701048911119647197834809805354106189399300547326060405419874607414660427382723526727455359621507903540048495245843252662621839931536654211670266522490362880087314265100394104233663325252462141234315523673489924477598734930884276545004679584193212163477674193514893928116816210483782536602973598086325289039084255920408166858144806060280459353382683029921757438373120386998540604784588891782853788357647289999759195160905429790744882671365899296944545332896414034143504126241794745460504417804864680473954915970842817641159490596068134932090936934989565847124436997260477907511313624412081448786448897332623517220557985803984836822345686136483737349015616756475236286699852743382952377707031256233344573455388428507856592934992826117679107013600659331948647839257622298146125441335644460150994085453788253334758608466533015458307232186064624662302028150567906448862581800533269313009654996287206809981267645015520261631819999301916079599359185559226147203682471134061079830064478609025775952289798011022098188412670242092272705306669227261295278910551420791301917697075346815455097217609221600715022750610010273988835804114468383854338894158054256308603273699460791273685918792491892092157826820062343613104281178107955060949734373579512364422928326794302646014862795141100606836080253752340542923198930014480119588100867525781489527438759301797365000096642234387687988503627085201461748067145363249721951575277105929888188441454981380818462783717238356526651690432637647132047629569854208850273765886129413520298746643118951462285743276189742841224223505073360804470320062821730041435428626728873000537049990146736323783526294282726025869767767391253280203533597104159368499230157022368699937602038335142909641260243141841494735284707539523197178951419208168389795612490829918877121641010476394971563380789228282319238686161116420877713484676339981413990802349830660912585808794110638670021171247302487653537365867009711047984962041739466909382450053788331896246626358093124099469335252501290418409210549210895484350921059098324741359170499369804849440057617305463331597191865201148724358055779476765049383912600346563097694120181390933714900823897635346869846901233757684642871625134060328115970474924015019389989397345877603262289299056417597221710315832816664266990127698181083240646789755279159870429527106557326887804865583863133055697715769132139816167274905490246318085773201738244689685571791002911760293938614282390150902713811927928405881394454311194157115825584093106581228609744915578591731692739318716910821481696483813675420886772018978002941522821159411767313880981281680504503187111715990624868810139671360781317227559637406877923142115728082542583446018434361310789265305030507642099718601986821137552084175560407838471894357334442920821022304111361980734513421717123532372408619696236738951263792110962744854222682667066026359126382482694861182640710280456236494473215693126988418104635828987420186379699584057676282045075972667390504429091466653551126929608365919151311763039800537635866661514915595555898625887321937463994584441985180367467616298800570445568649138771472990055080211766753972396621720166978320379419598889305057488603330358920383737755861263322015967162409596464110925698982196002757434518740571320820584847415209844275639771136208405960217265749217342686610270065606115202480699430931789116119525402089503309834594613360295204812414957987522253942124721488710963357279774592143131213972382398746763393886517411687046394267337091569074421011170069785282421718369675186323723081994125518141843090549197522109486273281260357046230497127491796664264385952641720904848896230201251619555299157388922298703915426837217598866771245165751286819389693078769452930884109187481793413092356245666588532589026893919961545374754910560563792735476429600451265780132316279749665741292131983879570643212325259238744032756792663155386444045803954642666893155662023655453898828757988734819210151568628656617631382409049016246645051700393963425171482004696797619372378936453319838495252522959051973250535266761550559730064905995047398805434357095154144436343645269747667318344598813502125032173564122937072150220833557975168990147447569012124654742525795814306637516818145766636447910031591304179800623942871858271614860026836189222344939129661695848954683702592567025872166915624086151178931542285608400126879629945667562878778902096193424534477827016776320913141539533890957010718521978984366440637916097622147076965773212380467672429613216048067679483667825474602765728501843716009292045220707325334353560171126601590170439783584968070263847703067437595988807781718321646639472986758199859478651977969142597977631647303317512468206234801005787794542348529947466436124901765263159890438198062885842715281834996516223111167088675232802944589017116569566437493347947799370286979419910837349038385320827610584123757868937876791431044120540322663802807937964020187338109804384963306247320225110686692594742834991220581231629168435312082973199982615701963574254986791964854476685128837518842712529284046124520510730969024373499949933613332799098537012457147229183475173295927069690004960939511795862312394673273841277329921656347948417061009609816424156605102856637350503400711626055459821884184350183246791171427320323120590851713809629641104085943817027808112486776951112273091343415055169094444291396048800610725211601656468310728985640982307079324137672183802925393626777721333968808314323601482835194732182337641182165858792814915786565689557514144240028442131806358386243693953866314706137175884667125603664465008750702816817624784407789839687201513520754801426910460539634341595193079031204541652904064349801506420401271925943862934335960947138418338550551444378267879744098252840533492689889922254887241089373020354089561396155874897021476812622124061300719700679064045083265251509517703685515410173208486391105930339365999728950063023501848309373716005442222731107870239094758036985235444349800079501328843999476095147490626193845723135975776575970026147134108258326920143368311648728436081137723203942122337721967224861717724985923337779836263115460951023574238491748285235432453762751728377841525777556399696560306295647214113451919134303187042859553985904563319039092549209719249109902513670870871094368672249924031083319174617718032901316715974378980669484576606710813235325798677359488850032640140563637431597614068908793645454547468739307090578043492400848412876034725725119875158533434631608321999223436448130342292074335849966999797201482880604313425276624115375840218739438347415005150088468719771337496366393592441170896140008254605384535181230491449445767681958579074975137496697510385408740770708953474430329526249884710129731332606125192425707732949016812265709264030545187774701820856601936277491438877755798395620946990636943298441676521475742494140646809766457084081517679380805585183513535585695239760505405481580470692445920749568953192037954844007806627637210370862068454235210421136552761854465894391316753209875178278656555849453181745347209315055454461106138047661970654035964462838060518244118841981151920514769030580446771204301556048996530651691047251082110601803645040645512677582919855018199602661172822884647640087470109974103880064818475919470049006319067847791203934548266440574955868630252135486438992474138123101434283585115843650117495232699304379256350186151500767716226078414863396625190863527162422333155557140533570685159846387102788706146920276589867496625886670101661015071423014112884442133937818048992899282371800819379963732228256246689822188648595925627316198940895953343500274240037503816296177961459890354155583861202722489631288324824222192734361316548025374510945683484135992564479678690874829048215250356715637947436921768985448449651253055610833753472270319886800404327286136018907169905479809659710453747072988461499653625328123976114323625875705173566923123720818848563833463041029459142051540386150172310722997208670859393212593827581880178331883545435078871085314511181475003263930358382863517732736170203407797979250847702188941566847355147527331949981639862828294091642722005304312610805009336019188183369017759299863430736615278939033696011305910209368954000585673833652482192190094535481682770470770092129426442929271518458449126317243461745401746210748103924051141874001207380986987628049175458932356587939619218226207989880030791189979464880649538732681569913538104483305318225790869904546534010551224893272855065098221945894072222730510793496892807401804101314909526521436364970696848589999413048410524122355864560313111433095606483773876813311079155696935117616308257825904760461251737661506104068332203410108781631107355891884267282475675881569377958227382421054773121124921907532428700140080604599370338378396741513046930572874259434075577646408875224686182972027069424518093948161525775631848846012623950501845643994068993185372247293059835178236165218862450827745915217315681900610208159212766354052005116466483351481199309574336291483359763347329051529681730900129936679682656079119977854881893994813280533893814002509990227292373375992325297073300495878713709667260188252516305943647982475530007629149312374345883634170954634263891497570107330976749785786073441997456088120774247056827286670301799008796194122062082558633235307569585283512878951343215357339906525849813414909781561950046800848345455596819005230151888806233962662585440334683169244149771938858597062665957572679518652498738487390070517636517927083469994463910353998426815407070024051022275965446567001516050519638566728899294927778098008073160402595499286490285883971732595376885847090162261597783682534691429192735345825077262747207123345708059640696209166648467774870254190400620650220549382733762374360643737795580496289348099186218321468292318347357454548864322390966123843315996978926801430387614760215061629020557547271927084905742334688279741652324782896548979089528456180974941869807873259804620470919006774048409871843344052161112852405450758371511306707314492165304208824086747697737565803923863018602742526413289011608357814386629724605521838374633690594760081086566629950195261094148981824916290919803701455768608363375651052516973565575091782274064611305736049684419490782568845384681519280179897511693158886152874707699119664501819791101851867368364860387661221910439829161157290957266772103299980354842943986404084699528124132316577317780040736185882657674132592753168823291414588476781231465269981015033659158315453887771855171041926575300942913372759030517472934227814101243660596886853730699534615387602981724280954269054908003913282975722826905411046341464512343266867059740499723002647268932028092571744793262106083971018937954614499702242306141929679140441379945705929822433840814664118035625226368011211453491210842457377280625602571268513989998471011140867664230458124835741672679382310531550972086752514775996579130702993449275355118139638305798175477836437422146541634434933868052188791783664876978157245469666707986493631449763335557307754512879966076520745023017065215971862278604969915058296160635280026535320598933585157028922952336449006187412771347439847189671247178603433331259901712374636049096213442128476384400587247611915914979245528272119798321266125299476420043533123461757294672096837049539830374951101178394774468494142428192355037180466543627167626729800497851627248158372040595004334145953320374885042391116287150484111696058483444157120260240471366777993275713343420555190651771419177886331807425563978307492980765815490741939043940855237879332935114674934213838941818806979344115021351494002469027049584854841962811776462240152695975198792530476330896336791169312121275509220996172155383504449630182213819484339381474285935065365477135154133000264041595807041463066747550275900186333220252122069216762708197486356397345010086991168843357840954569110169982682113633583967260996136065480323428469322162904810077247183259880995130324359939943372169408757553875845505145917866737667861888742646925586328294962315197830826906595414403060395817579328357203853983129854443656587561066586045442802261130711481573123213990464686022649155060613606114333521411941901971726406201667052967186655990664609676183225143387225812390673488098176552216791834384128445484722022428912652959230438330816397262461880800070610061301788867628073550459727546959523238525853533354140963010269470424944078403541983934334882697098528424717012417374908080710958123421440761479088667434829186339622823665581574464812072969408936171304296111402070011663047976818281106586442886055006205941069671600288596501149316330831267863565906887556021246937962247923476953227742878270423525708707615905395666038507837164352006939172876162081446952327592115789094241278646266411629286479645270539256993138455897374879326148454467193903829873696099190701510551090631843953588692152888726904844808810080328606417058809190948840920263063401292188286433072371323717331109493810051311728250600149262343855507157796179406921342259283574502646531702652029015265835727176700867404840781442775727460471587225351249091272579063419761155060484075504107165402555809009768043966996639556754165613443040384119441351869530030893295090308183301767657868095100055620209797548710873097690023865835023267248796397971986570850019661844437378804440319828243173735008069136408979507623834963381000539173194201270457802160419699470856517480353415752451334999000390875871450549195721362680028109924650191989619003566320330497101387849660011187816525834676056085529398867245310364955051895503128978375296783027650136912954717290274642807122561098424524626957116334281594350008134478523413813004608807715857892745060162280826097999765826330307760854431761441136810417562516808850667372642695978181770997525528614075912611847526257023174948693158941926585501623586450562502225361222327612113380202871453459653185399773254746705455460976119875632135618654189678040169749807378699850392238091514148432401151331523609413966066487174660851748433821807523709499954597784032766471472668159406343503517799938703172635446636869332365003240758116711613729602510742112578822729142802800471481228426842821045161004318277248088399201343529508383390745256720797025951656266618975934441643187152475306996355134265070691482567620407956841975699356074398801412163316452823906128642934271755685145631810824022401639079278138321872879877504844893828904169507376367270771218397908789469799585001009573168353872251365522259933508668128712498672992804959821547139415970120779344277488779244975857876511207440961733391970493868722706005666405217671910643886179279886940836446562099475115792548813468298868342036595112700046054890895098655079768947031994316608480506173413032870782255724425068565751453684163706662199013632749227068753849148979107570255937309310550610471808541161564851680251716568333345304376138352935896608358419052569367674387668152014280879391805713674644102395718082121546992219971621557642965238208746798252390586335016363826949953946368918859288591612097168169752097347367150704426540671750367561420925199639397608117316604261001064837124627727929966341774660280437715180823423091900837933681275095206966973058081340490383879253987873273035616374108281158767000322468536601334552599109491995592253016617524171913471229084987991766068074554722280874554060625341939598056883550920128227532485502961455361185571449946252905677530165002549388932814289927678570832084336627337902000087447945656860569223095056346928590269977437876126442558679344605345240194618119127992331936133095293836238568687814566370827478442154634396139609255413715567800589348333641869259021846092043012616166820922931277612240445351402148775430211387854883883541917502640671360756642038983812516279079079016609432464580391722111183787611756240194535793963696138463722878490137438252308226557624847963276818616544145207061057886494107508371626130311221954905737093472395522396270526343470931208303280178285052980638957136459589881710384404571117450587601012381112556043139018345440260133899172662914744838039377222875042394240434572157262947735620353244908345294482000216866555424431357560734366375145164522554538345917366346632888898954504653382542929699496426819482723397592550013519851295194039637117572467588235895148009349120808422731509470079055725941064134244165548983868024455734105176305925833099497758044974232906416663892674607718937106847109215465595661654245596820713687636271653476642917106653850939272510583403166873523174761708867467749303148416271785788969847755510147220910842258017616682483880881686390834844434963430719676644947671784071499837053523808881623115036388540341583689706327792226045265160585171637006117519308106473509754443904065859806687513470736749837448465734886309772642590988395069635081687010484352895886080826704202308601998720040208811120735985136625755617925708122292905257738322351335117374914185538844044545121158472986251673359358669527745855377718513957150492976004128379749207585140785481458899903427952722885850054869571587809420022828677265430540720270550493675994354398841321827501493690071729931045862876428978843334877684401654140233944947954475571697645707750220832427613682039671184848893590853387763300781616456519547977453296214578138146587381051294067220134772733420785638336219971150308206635220941477468467988677476687195397647861053350925725233245324564642010878545850282101449443358674998994896494287918322735146014070662792709322778123829119482412524843099034349123257546224448450395164382651317323492125298269509002073176251451721161938799335622303248207519442740640053968730753875010668864956754560131666291177583927565726194723665881767949923959188139893288296279922558974603199192518068951565201968107184659554969529810627905617821691345583688394338425059571177389066537635544585559472681638766718649813792547913161678420979460593542090739246029780659208910778099372963457132243751666425155541689356590366707718062934377473986446006661057684457668152796853375389144503279420829551782985197267447782853896385263165089750954869884539739845857264042560564631632404768887165841916043121419386930874368665975514128920457388051417952523770524908987950161554799446286885092906860861067933503732633418105303503501853885289937659954660063536031183717350904647450546204425407752029775010446295554195810183210284276291788574880846501546998274843725986782991394663511295947232430082984980207267318904455208926777850949836578227236913555823740460623768404244624549613341877148656548284192112054985454450038551065651825406189632443487921976901626255393626377423556986521951152865171394770346042397575531405629760433101117886923416310748276350470400576343327718341707596746344162925082250914039927651041159232953000278894974387063645711281107848131502212100669548334511677112453537017132070423921656388619247353005325239541541524799926594714897043462808261927032230582625394983296251232991943963874030592759086207273036867881504542019660680477330818975835699782405258133818314673822443871996642420923442024894898133769714782823200618887077684097530459572216540350811758451622973403894568742043447425289223605497282801358315522150547395085885383928844100491302449138317637413404128117180802149776452253696733556325232131372572763459042810116942421659718308755767406469909180530575513800718105821417403672389582080317341072087284505450655577417320878581425512657844762166983063133298645814518160089984029504425761618302305516077752292931591921012779501318724839337535240964265968051713293594790662545243762561216509079993511496091323468303953845531147940338009775888781151564478811529765895952477649884602126512953144086711142251540757921483009436330517072819474481212082215895377518099265843062802316601618081943052631817364102730106203003604209734012706700859721695803593971665165460887820746055611923896977435188855949998644415809882497761957860359611430968256672683739712936198923385497817755170922434308541679736303901684569166658484176444905595521533715433882174597091668932895125228815615809231876254815933956071377174109388947583117054261154262464052150107437166580311951886002888374796117069500214054268817558519160093119246680928377123023701706518291659048829298692201488212312382568880119458188873041280792217401494219100066848359202551073307175204186264277859636707139766381864297725924311723422198963241943434419028400539300734586090623403097117589732003779041461413908286422119012829179273260911168044663111571910124916223473913736387959582239575270762065395256169229121502586187638341596325100030535191160577079675739490990551481175788676902188004046827826796833420516634130977687939136463705989838693696627906701140635494001172230250123179793722286146898347836482050367929238363028624435472102929956030596539162603378057972391010159820212324387189430699524366956363540166828474651289411291230827702843731079947911856528502632863025877411851699841433020812536477558693092434559873304850664977867183775283286319678227825222746908765280149555473000423574351138419103267964686339712275521478967490496936340074017093518356556696752552018482164000089346827371428878980734729917478673440929274536692030925693219552910640028104440312528977691278509808297898728361518141827869098752038194118599517008457777678652323772687138960224915053247363127520215465702704664415385889093633848062855187069613925573339881070608120004417986458172250012054669136764061322687471731585902360193830210818412726490000458657385025449279067278500577226549389718653624375627385331436193031789846687708876865246661087123571378246815690747398219072321516054259658151214340459298047153755598929174906923284961582340904476628580280115281177769961339610350451777032202525256233417457271351642384504763895207980561547304261041020510619969142919840914557055748163711401336756036245765197904880169487637162731787538019788264703778933678269751574919921845846966583255244039644818338292104271154916799244880610504782289167352307511310026123192162001851899227904707354413385837056315677179744183180277949115938953336726282074491350405993387858440472940278291978561051153221233043881028530191171927955999414370413170635510380818190416233082425287287405339838648132737131131455584561391083619802195808651403667758665478626627803942463417956982433944480775821808830728924550651679066987464267322213568109374004108775450712628598573992753914041963305387472533922942531883731435849244977098100067118872313048832464533526404019740074903635314271116519949663016996665680452026511758278156004707023499784183016684556871991572795473974290587241139799720687276222475401790223478537678001283172249940078213869422454946846971127485761949725262581888231561046414215304777182760380900242730141014577570818102106510847651198797079046580862461525174571360534241153798071075118373620606083044546742318358450134743783189900022230113862839030728560600711977491590433057131788637667934018603180816208095564706539033050246876837170177978506207489675919689527339854531165327049768070086414347687340219917722132938328704697003838336734165032912710344651631260875602116356040997465126014058818214361184950648627193547937788203978623673401807477236177525383014470918042029077876242046328679164308107740579310866990449703234003860260606950424350241454851673911382920904159667256562682660133827812604729480328162877521746625418311943185940610661478624664096830381467778560213012706558256974471829605389143252314796722794347162603913536569589739148024318508035274811454380907583464885397553076099743072741384249659745342879155350551034934505709539183514097069002726479574862882170316253984287820191703585028234474959426460669163045636331356696607404144627449857334389937483477478076769895446656454921574195788837233404988530639079219987892257070660119947089339401330924304272827376811235829147407728670737757474075468054699908734809611880711817976731162071459585402742529190784329875761869758582205043131774977013557948479823306529065224978418510192300797083264057526758424725225662848074747933520323539048836666553361466827995050303344074393463941844875781373916418839060326530078774340783849895411438089503315001221697014981446817390888349643948008087245073353057434057598087621045214915522704135210378595722575245059781224659274856005053682808307653885483465292860364351736289135575411057037405101493321555204052058832558360196165126077360107954010365435784872847198343048365935120824604132109458867572367187786660390693900863453652240625751747328668183739522412354751377629025349646948955037174987621352092830266189994018658397313862157153330342380748121167444365948300878829110343200350993555361185828458589799273734107972686147994252916313653870073395220317883435008253265890451798831848051994891923089724587599297845445628237974545391286906941802883177397394918287937200146805863823041454029365391769844125623742501491295383655223931043204312411836899149115223474659327463598268365916434743277632534325383279612168300216768688486873934830653035258507728002835983346736436879287299831124463466448232355396161269207694241590544023248510452702585595665683848926571082475056171572731548578523584466484380251882349440438286914434442181171161734098394368634800771437916285671491574418755118679792542541122448691609313316979990583914826031213264754751799825778814866988126259388253843446988574068667016440720966415405072458328236503992538406005277215359068866255348345619749300408195485667207801236316601834656504431438837971545262047388025816261469163449490453982228674531128552955208000904363301446871422943635351302970672531622493755801408617264789438166775036160607449740689518002607435845561136725742014318503585450852195814835307142453584079755790889916753911201800249445145228472242748176324607693077821549121776940402227789353369891217832595675481186334212962592423375972382590687620611114103131300203987743784322950688436408534164856724925491708140256271702198980456395397455428940330809630743008926133190685364781756894349066592462682098100378840594245021180583734714185247640222848211020620029380824550195766390711012932901668832230221233471277669028582604514252518666322761682815484778280429240740260903322483942644854337403231482345234369070830011198937931932089493035138092501794473633551364163623363131160756666899152337543427176502218614789327878623235398259014750961200937659600747053800776652739481120991916970406292082286307355448410421543420359638182828241330021254314318497319289287415104999089350688061544156639268570932104408434061274030160303255237797578924687487222064082279148182862835200186877524538056253445312945576175302088249447202057281890280054627784023631482893715942181973718265072854774840417547636458618453759849248414083278478031135848737949518418413398639201215133335873360193472113768592039328811282598223531099699830628743739535496065055120385456251830669493019424334071543290939943467671693495008802229594299956232396025600196405024579265552470362631301662004091583785058070229956460070270261753509467084384156430184965081846778007757656508697278696670951487828428457989160440482910836570688527555567976467258171872067771094085962333785533595346211707982599161702235069161179548805475381185863987267384476277415731051415294598167433996587886257695667027503524056614095517575887304968578564712620639426611309101738153224062004920495639694658141983257160692972350342174006947662520961246621052002393029549922124518021676244612877550023465835269244660807148857496513737433107463714909984057903086659356725518226925291460628258870036888668728861087366557385331883875770618762197639754164197780845573821774503213919598538545994270746048787887554180920776496928571863681898855689274901578722862554911754627063266208657478871163361416829031698038552078813623206551570372670970340439804069518205343079052414013719115640629757049189121666452322840414924505095611247493374714415959416171251371847409387000834220222465852339804905268359942306241021485389698916462865216045329163095625894642742658399065009408294036968022594626026395346372439809051662990135271874599356914526814374236325593541158700427486130667160351263646812117654371422548933648674012825243440004427082882070150620730077995165719191857562235211082599113200575138883321406943835423849826384416392930918373985662080893084814209604887297033850010321707222307087977351462437380004753230617120273827686343982687765297986954393583643513976575049354309974425256403744886026678305167220166449553276833518785782621500029170820504618886624476704952038608631600453778235372733219389135911581947027373108417594264207252539165659467019028124329626811220081790817747465636549443428126383415306697662456224106978276844821729447548927334303140721362180426166752649533850023640682294598594407167622656114238051885246815821023615513513714470478353894205333302740274922486197296333780991106104062247571046408402809888174933253719862655600761200666980068004499038483258494526788900780704490649179881602280065660312234951403232599401517661375354197899191535154246449906049578181327434074589281244936904566714090137317691871030232133158595045104910913975892975135270478674468656368478486990851446103261905848514966528447626510457961520515214837584602150445730726558257012651604305943185737420640697977902066212602931347361643084841928288778091384079551807365779155521439515978916335894440023264118844315525440972339430681569993983531291119583216784779987755136391273404123745739996136986029124144210280653508960091203707925173832310481617195859031384037834766789191451460346131482018169204078188678405941559467900510712323111530787293138511065719990820131437750441591571196979211062797269104485482532118467720163806805748126340204819018546465415277022682456932033392447175189954216324559145868830412360811602632014347028479604220403844093587484714523398723944351451078951157061590040977764049047539127554579013278543366968674920365686016081643431366322346436389225269692690424597727680478872356330528572075534302111781715187069391235212409226696128951215859173234113747767655282687311123403441046821498911009016806835676133184905546740072657313402378982646076639013051109918054222533890273852633355383707262517778508445023259635470337404598421978177448620872848870311200936032608444603152913729159846923902282841536775835493717046317767998049510581202128698487578925164067558460111809790868130149804105974227169068342623969135157421466173768476375353043054934895489498387346053447376076606568538601576961530395242800071537397151906034579892391686597112768079118863851424493081515946287461085712455049402879520752833275209678248875665105348871237954195415483842948969330064788986357899095955248709803938182501305847844551470923845318104045316401856966983910519503476168559855052322077777046578373195491295296484553423610286348683127570453066250060567233277980526861734752806430933683116055439168717886106532958863645592011835564259254423713490581044594681752237458159559170716140253707392156726562836021331441858013660798981659835017858513473074912506445603971179160861508345181080009201915541671943500328722802258744411630323514747241643129727950691648990353234960654936158494776797863151949896172676038711391959995276144361771376129216097459509901863802829704963263458837091358861079755561945589195398928177538952504472341260187057357015337581365400284547861045890512578300240029989522757220774053757407341992676504978968891310993076310095313857300691716459893365090751287329550278169953583277525750710266241748549338917609285763592250443782666167983627180594348980128982456527545335934912343468433142160188704468745375772514421437608573585133825753314339971473657376633744965172711768696192481334863469329870744128195762349418739314853365020514542008060332689076475971172012670506332035721251294608566785148031148639128042752956238415014473047464866286784691408022435403078936615574998166022320392596155460204713978977203066738011089889104724466086197248129875637459179984057802105316288139765688365166127335501528779866634925886006097008619463329994876864871472038054789143010681416145446296260660093094013308447002567524623951063711592062722512008674137388756220962230383569798084943511967176274151734733176418151845515492538531093330735081070259248903943675606796502448074542243822984804384520580413512909211198035373758346900979022023956565259323253966428814993875112675460802160763328975454502257578140370975197559503907535066081067136189479717795723868042277086209273067825496315534130183934971111315622881348741906586178098238774197857810307511271966193749124147960974374394172335500593642839995929462610045951851562840557600470831564398025177954955362534579084577750796230360451846515108676329143654941398059198126680481039454710127038692187492829392257384969611480204233466537333148741319189126506184120026631819798187217420643456008081127012616584480642340686275545298345239712302128907844080303744705779469648848862667702810164500940330811330774793809226452790542460538888697154327437665842852103110024674319904342816915408367693075461860423569810750585986257184237748498329987117149550540795347140265187195675095008027486815766026127217284783562146783258336793798078686926633954832972887898007404776424667106138868594865794516819466773894960843871361450419810456293957924966794474540273472131730596499388340474190725026239253294502702879271940585491231099855787479453665422861268785605978642339927246545284318003016413853947982654927970001617564521880763468780530118525687929142334419772591690458756800957729872984926287189420212551164661738000263964174679271135928594284295606925380868922127831334649974889726101027313428148063039125846196338780883933959902500819354859590617327199483648898249341271602135384842746633637562932203409385780343342090110107010215234727537862398549431280579207773322984930695998039301517759039320689722661990127698427910140839633591866536504708831213579305683540118663958562885403328492800736227768463223701375425671704266164739577422176399563416956466537785840119658830607855830248484720310583116603526625371958594539640201546330205607564149852100464732455496780536329087870772260611416816240650255955782317346633569491501512566630235907760481428406704309030471350456910589985664199670590300288727235585147362079189580083377282719703895365941975318466229472536908159721607506990393465864890624163011080600521554015596616454969101146326487743902186000705974873017601818293313212685180880127237300757026576065061771009280358489900514655614503311392388479369178145375068537929466589929473893194314284814107812770815622309687719017935510269350127204103392259461446492022608924724909823527981428074318236465367328572285682862516897516376553502104121853559330273051341021673114122985463633072958110612867446386873072785333249255529820080008849532543158476081154406045109809632146643727698282253300198461590215447242506850806362294472907664677821590051008050061621720125117599726814993195023801800580009928266978592108008948836542333227159950907143397325939952504199985424094646471051658391876902773233001268097952673034078181597904291489459042958605873623781926788135527283816960829538705801392691562519962626592719386286189270707771101343024682434545364281512894350338592448389585356000912098911605427369169023529096859540956302756772721849849202917769819237520554848580258386551374180350166559429411240081385559075140909040468387118522381478884490464202001176346944527950111333753379950383831239235599465973061124634622975735871135321680162205026557965577068728441011495742434520828361420558262305721963588698891947939733033586704512870348137683957720311543867019204785069238732676367283137547874377472631660310465824781436633196618880435289807073765165821855380482139248862375772388620005110928986624943798400975222974526155003757914398993762548680582738887007592179987781520956205254925920576811626730182783907211928334048462033685751301410246843947942896503311717806379132965637179441357285724822176208659747869840614772342458300265098861114308606022467229005125339406789157983180977385956191696614282462015908242972191480788843028715346791532081027512413048186917811113424308250929151188037397346521861246020461915777137158034889308384534421599683278200390344331986533012143338250865299551766238308639679363871992883570133727743823390190984934009249499791168070486665784162598977199885017786405664558292824645041013553367306937236619095334403072723025105703240328265269236268720011442570806129510304983203376262386928468768803261233993822868075139598032014496313050314078400758858271825882911366209373133836095208818848088327793564688053642068726366615021718919039059090010325597835492575767259867149442189569131254624702784860196695209154518183185251983333691453673046931409840288945205207239398936581732295406912113502284912831364947753675592175852529720166356250552955522385812864438204478189013447978291969300588883551493561981731056353712258781731151787672813194203461902554911784010332059830490159522359220844020716145565855321682051087578483494955048096785289134720262084628888564966203494953058710564109683717332161613814898955415328543040123872851399141213721565950519783669808998375572308124816133726416308679440722295294346283670904500535415444311378369075144962153790601369886948949849232010634759206779099038928787244596897445943811792707370721823660966422382826261675711820769846488299959794585321227305908626078058032291099470268456498972532663446098340997309915492844217307171267914618338838446857614489371507427585988135049060264084749405118944421334378822079418271680211706223858379138461698604162658158604819100145594646493998262165800103822194525668868109428443784200868473809167892899427358419183396530903548161799263852979450886525644764924637437198293768786462272338520138192426791078397313744284555010207091466190751478152518227728959363055247694933314086903614524726956393748864175072940086938567786503560849220816890374332566841637971697328168253172965556766282979163272314058637532948369760051491937620743607083454135570288751280388389497221607165468008946219997287294855364590038822658164703770803814181568570715057012868751574516169549425243495415966857493486532382379510063127942586213669522458219746090112572192047220434729689799067119071624787125399587721193687865237014222865975659423185396701333616667897331273847497671647182491350821572551384967880778071369971039310045241467403458739703279042531768375842741505710458735861182750895978363786924879027662858936255968761126791271166631181200307099203038777139297411647406677847401570252598630398989702757248910162792740062047600818385525686680642403610234189329816746997282728699316259955813446064261931251703147654475593760029520168656260678739170249993369941951544128848446908190865620264941211307374570280901354718944714009750458121092909886140789871509107044466466199157853742294926640568320516031912775165045467832959399871199786488336037267223364469498482141061187814073501359313631585414168274411312096406882301479802188984316134097355462696780873201252308777747217357349132530446768010120893218206587851588254794675358631889996866651998925305274884511358137297882256061048423639945314173253861878386300346564015201737712259849103651101362136066348777918737791231986855145888771081579003870974409095569837108367324765809304323671068266948246775759558680409827494256376856220662751313255087118001664461790299125699705764738635237946268698573200378501721925606672269420176659372947237645846604876374962873234429419273380607646389015825706088501925884956076189937167997652748767694633713592185778115690521015405633543045763942788884844645945451551119073357944699394713040362709753691837928192109344014582381151113616602763405393095783958176533724887562460601595326766056023745862428727787944683737192345011700257978082241679307814583237093418250989548801558056744940642991399911188217460203023989469335307842446799574259597023490702704101886443548726748363375097112923602596116570081916787442297206798229520003853945117339531978178455169938580904209877898589405819824519934588422413220764400610487314860367453149018754705167571172453575352966109147465030768478021589198883936916536119689505816419015458244594057689883992106275148237920601874193393624574291043013430382110323724454348278986618034036799822232307154778002725959571130589922183673372663198202463259212232120616240726835470366673453338460490324919220963947304121639102522137828046608338225710926957335999725588358812157507854900981630344508441742763226315624748338799096123954118173281128672344549766183557269436949612486820999466285069095594524608229773286009507815901756492168759020017192326857889929719887760007161283305807422772781173795842740510067583478568384316292679553124661625864780125097230696049126457193638585374137240735591262696730335960376633689606893749325804402555105852665764332927711120201899135084933464677729256816887195330427998876848193028190415898834749540993309588132187909889314918777373246714964989488277411699295984694185244462126778752427215410985402428020740496826165973982819211767443773774098014181257067434916469319956852355055881924943500503643926199384029313003907076538144777059501110425756677215321737056466814664867137894106750507665656301999938581673780679661480967562164342254279003808815380097491800397914794366889926056659245411222557015869409549310706254272654751104229552993782047063490844901984020843419811419842262841766947907921634864310597356298901367653460678415691675779948641300852480821043899702819273528054564358676041944339646393856152723937074312713765007278456360266047404716718683990691350711971615718856058237051759099032910086487393333355466143995605264165684230618111597303694978771995212642464582715036949527326585148984371319103645325389026555187521296705800352793808367339483600545034901085967943796392734058151648838783450638426590999039971813967679484254619390379915924979204824733860548706022866827472219249228882563030058786953390934458803994926991993605676313983378060774519060441743739535350282586278568770534081640978498357428273455668282561987544851832588757375857095101402528192907362869625068039335005280930466698859921380467556049259009752801722579719431470341759190560488680425763834720270901880608087848367917640497384076541565804717247339914017659931806064851758551565299790552515478658414118623441022132271042587123666226958471051648644581899819532533668391540987763714340425801706905293564847976859872224321578076027657779132483269148645192509055062941639974904920253143649992660811951426133180138694129535323897042992401814979478193800518525296037548638684524368311212269628629722556694697689128352198408589587957867786656183831092038604895865895948394123381327088713040778636096970676583528882150910156900656748552693564493995413278136038699258869425548214818198490415603321757669862839548111117299448503295480900302174365629864204402691058234834156067687423622912244148121581661185219535946124285257018354524833966735293291030067827999318823412025303566545359931191357976435116020489361251125471680742973608584713284727363004522537941397063356513681140320953930527196844020459129011762316192588157478992667216616889379166700043189200004473503380601670524727641478987225798533085955714231009930851698312311008364913623421026717850640219377967875052467112830000111508471738597781179673825793608546752126214155694827398054683581036859588913165953548093234523691802010778848858359473502869556190143826269278455669892816583117792179366627553699629718614366339580262332460698867563085161931364240698639611531195130392901808920693258391858838208436757878584656484567012199123098506825736935799080376874196734298251628272087930754872459542801138441906400480208939761979211873830719145619857224813682522431308897536153740511747679920160325281300839891001800506736440073255711218235752837577646179692026794844086961946697660340383082316208164336161459531708547834844498815359128666360124536365901483337605823438295720516618614235746111313205925532115445401221382717650829927098598651608836954368978800946381267730073031984813538323451341021956085447688170908511989215875361979430852076547326500639997825598680500920978969474582866167155810179833695251240801677744386818816022964530565621096090499320800251220778726650399462718017717783883585351233765647635845256339179413407676435869010195947345375755808734900222174715021016033823702707121445628602296018998153270403241352579129854179659463595656838421272416866702523299007899704573409260258844536509179451069866332933982859973586972479329812773396941876573051922886722896175622832211397757418006184479732364882784164215147242668094522434604755120313357829910878397076619743571667194195785858175464211128210768029711193361743135324211625511140637048803623799942434359089868750940541343672760455182790881600075220886458305713696674010657979806121567815636074848063400057847248177748521477758600800185083745774689748748716103020759533686579524206947491803340408870885882323695944990451559900615301085852247948652872491292828935545964819176796084395064457795043280266709407700915713755804003275088998194744131047588095841061902328089234268712551046719370651898971101040252425758011924482073714253699843822901309404300609010551707741239199479064301713785927178013164990303054906666809598215342713964652393005170050853063978624662400705226686494628350197408699706163029833217038693010610946525650060450285456405667016107186643845420897181117881989124973443437343583527446778834780775319490086785529971876528980009397319631784810031864736805016625337651342759959922516032124262169953133643018993446076173965777351649544245553092924916967300277552910178293425913237881506454081802281039307898234832166508259245965513075279185256052282303607080742357797302720485409562718395731880590031691661254046373314842758441143934818038963621184686888377479743491053140347525221850429740020981557846480353094284725972905066499317301798567323939282302545000686718242991076958428631846022745299492454315526203558799739760279768791876318587395435265329510819606781756201145407034872789137014407741514568429779049645023056953810304588430372132041386865424650513504028198978347745307331071148889662163866076854152168947563604802459317274911290946915906493340160637913823973153904413334132654539926257919712385812303961628227667987825566236663981978119481732426206091192414288147312190289760966188496388173050017637677243495082742933254223224348512392798366297703540927970643436588123644535107513713976946091817610934315210740559371181877850817957308005929144015657993709373826693069627162449922993761277501865329515011579804813179675531372288217960305326185903302424353612799106534566355457165348746835294989214585957640159505589089763097492717466524693854869989377727232096609480674912329591860695191273556688215665637893328825287556969641344711694523720838313226972880449177766589356729861107066378698014743969050187431435417622752661390871225630802745789665780375236515715066688375419883474856404692483609932720602139220756449685742597646227626974161974597672431439086182328634253285089264902384563242911000623397074147929088566505605186996311883973955160635512019992760121705058698692279641949716430266245241199114975606095748710086767745624408089100748870839859401233106087448284980432240191779991946483413840852086864105998292266514365756809100965815847420849571384236888471302379209007969715931627690517056090685212700057708752122793329670449707239643453203556797407544126997818755063694776966398738586211705998809867052215737636907747978552950087071991710726789500174297027092116612290376342586164665340551280808103408988892637174698876133561120746628411519019272342097442598159928597822537163972916071098323780840082329391125740036048707172096221759632781403842098559148090904282095113689907827899856462530700619613482414814249830404870612459478380481722960265507142710879923992770796514231123955305211907997214349644713151489055086672189128619999688471464341909198294774958321071246973803271461654672883807548339657504092392417800967037846760557665857791193682195404833187953477731252392073418244346970713030009605570221785296532984695600689165024849363124809174734407162465239422030046900462241806356681369950612858255152270994532974968735410471148297496799723262980947658860513350100107626678646789471738098277226445257732146177794106629062499614686620459354158319137577245195922793581109904986971050820330576456692774767509565473414522652219125750257208869061267094027477935565614402937827286558988803949136576836751769904043254806326428628587682929104797769735297897903598077712342389784082221511476722622305505625855530465938457575830702145904203553834724281610026101236222063940808407434352137228983137837617423560662666287919113227487818087758411029902094621115364418054499091171073443845796290835615937575705577810616158977184252642630806060452526828752813235538165001490461967585415019133198823685957865316594921732214545805333082254339558702453512294603742975442485773830669058430440991434742198226560711133101683552515840868167643803701315780613351346222120494603048627229424803424588292739394518845165973028664235037156115931098567188036784680042661385312460692504147020325053790714390757588052034568725555247414567826914604042600349327914229813915376602111245824311050483569419759436667786415290269111584234744602493699442039551307120392104283079765916081827327352410025943276216425209652153026764298491514483128878213120900533900958206659343647431943474058224822457397329710083562430717299896226850451564898797618309692775102209509706357999723266064600214461139528698518157825536402085333596824221995738932077733535725081354785944577226846192929913801742873069439894932052453533810834600859689651932737013809873206202893989019508848522284459710756196630630649145604568540805879826520074035953293096948318790929942737235582558715016515826202089016989040193067747287132789679170146749815639422623511300799801252994897713017201893261452649996877106393424700238907626392281833379907297107277949130191267506795394259784516894173391393203694146327588630460464395779559491560811948211453561469238562840155848949012266957965197640996440307751164014648200254671233923465399588859098355821926631942678778395595820494043258561785438399583557206942421621607998086767288416105010900161731001402819599902058894302492020286834329159877103890744647980334457115248422086484025747711970213054765164924560701184853861023261293173857345436998032713353927184651569748087659228906033257526458185444743319885486170072098951593192343476758504078213621108372273645434325577530932452731635763858864059262428695261794772324834630118405489678940434604191452917142067626918554965117156211244365945412372001134872412730603397328046222366719389561502962149017380325588851780530913307945946456634709028845531289951595447380229421252846806109833357313362379511045417309662382151768110937554388108147850089470370841108975092923751153144293908036293008393162214882530545564495668604387519743326597236227017329732730448841225187239336092954212836856545098423513712460097166932981223502191688404328744632154114529021747452672065500323732338153587929468695067240186535088987610518653080443292685824148923914164380848572991953393734721271459016542926160256021002291720275548121175161725872151252074215244490642728352592828130368116156024890823881737476725448439887793558500324121011236491754105695956269804336072524509251456468393985105383895584966194625011498989515976341337432099750829255708684675406279830126653216353316334519289591580731339108258745689305550769317547700154716744887502058050689746534480035474310997427144674875782395257824057400276432358830080212718643094165194555956141721202279567604474449160847210829932750953790201864599187847208296663887948192720637282198113906796648024216849405862067720128689321912955591229451870366272902913166816902464705218458445353345617403944641196028241769776875392731069239564665111476847029550885438388811121160971910347254287416247578792903415715499307913014630154331862726985092285145403574321031645015349966936628869070058745987597113206737271684521543478731535257137184467310654582004287816506295863168424856179086583477552226382410892337826747691529824630723632300736475833963218612586370207163897059096910165147672156581651260443741280263602576758817242176853093597040234543113999432123343446294881398353724141080497591090841060669360159448846162024203727243949154101250407081753081037659557169767277751286811323217073936033302944892750024734260701782800103233594070258141351726003752737698501821201236502098185276544432834654671522965842282556002994998404817604627291100900816249580310297531429134503523370004859628402536469552678488337282758063232410048173357627481688572673164047445358643770231163331539492753439297449403325502089032689000018792722163044340785805518709064663672474653106017435973840785315309314223478842496446375238512548764428435790993470302286626524795636876528707456149698389741975590472653645522145777466826464962104708334869015036297775562341688667672879409522423248860080112989271519468624159025379956460710211913782052033082283463306584931203248133894751110812591310765180722047011111714131325881692083337479145770750819392321421604973147382155944258143538607257771093813023413413566321386003676899799219975967428202255285527815095657934257370044172998762758040315571924668852898655169782682042395245390422780239445762779909639171804297133137138184915195628175305677134905676792891625196357868575375957815649802137186954717795832426984981853736972552107595825531300342168495821534926049030403641520584474320025113855369211011060233146872545720535221150674134197205746425691940490612885344171785080170572300626413723529050449323170604011729697446681936147209875712566961418228311743503126098552021741328046071248686063219199548486109590213306136258429372493692911662056812326106165414720798614842337991622552385723295673339013784749655681983846883541255043245827112282344260618953499863984825127440063405031306909940594403725179929568268321889166574785033196582582983688313561630943958989563039278554062095382557275881546467040283070266004329029372518696093105203248446205270192592977318129145210672171447194043813742794626581219334299131907442671713557859228161342855729524717817975313287790884463838052466674350693727789948292818869468718290136756650798491325510452327089603159285579347004364494439602253327034786685509393966739227925944254039074164753825458787904783139753671081322944908569759154666793549826711459999642330291644870335010641421579582569841287656739352163789624292855111909053721246517586537974033504009095549040114753225732357839050770057435084019480928107695733165414469070890967917506227409868315354350859732847772102498621148283218972084472010435999339073074495703055940528322072396796019314051070953954497551683445824075241537640161635350656136264845305707541916229842436890881288747556898902036380190910850419674642432876506728246400040970090886612170193872075589587201089129730271549324007497576967920732523366802880408079528955976116485346227330156497442211036534393459700398349623471834514803127847406091570205765984514563032481340700151691452185179458354174325230339980351790810785176585040793738215306792025684264279006209455929280235297064797259925141504015365977131319206287673957299292873715641637177397182073101283883168173398860516188262204897159991244087384304750350490745608220387298929865618239318592443720721368530240688531645438712134651454059740116480078289527848145338722399979990170317055693163875967480369150397168360224023194266158001683776981560761133763469142711003168734873693795433696544744925375999774956267542620114816882276947493645304733332545945580849558138213530955647934370560259277652906782806493527381434984941545808684058000713169077156450166647335071134392535163412014534916411479042720285296278836479361675048784992900047860765561029871004499055565017912498154061059063820433808011463337078956728563047247562606185885772742331058358453771324419839800096716248382536783074217459242862339670626403380441717459489270143023766408514102521317537679341673229060652271900760563820579362983858119798093120608350504591800580799669044533413968607387339577395700895802143881671199672924611411136773900001103206847755853785870238277852139753018253835516065310876151262679175909967669830063384573160253013200662812242551937224060307034878114141073071928942751297589753795937782102400291877749409153615539617370784097351965002291789076267154485964015784472720540544676487719436062446807237602580073940774862075685076645693287518226712455569060492926530386106487485900343511268938819521205671152377769605485174184096140697077235533182395012072643114227905732627270914819786200589545518311152133224784378248407998804974647076916315977179559131074136959727659580398102685366608784463398001412675522741143916427787496120373293023875242634244011493619685399740634419707120580645694533922635102911832028776226974227622052120682367671651260637895100584175347106909083142487326286526432961591860092584228650477769522235728815416604559719886509358221554763180957671367421288587797749700040971894719024691001221999735734662878970100961252190865284197875994148586533079872127704167239296186021527657158489808737092357633376725977285684615966260128478512480083520871663226672378277709833001183550945304177612811305488768193664710297996079203179340691722414385889612859588533150297321884815665644420324428730066985779663817733721134707966673905758930461762307661035864286876712616186543989270904226197714935929462799486015100550427455233251503804857766832462566940108244535874751590310768571711133684387591116913649569807641451770640794596465150388593617703010941985538082596945161762856499725844706574841023372031511176258120229415261649703924620187087222676662936816665553200046480157344559942619342685447921571241535757087117602569817211312255507127187697988316852005416604395158302766532482739821453732630119585093469204063032066679077409886197923959551953793088588179623491252117489835752181708812144422291292798471295461061037271995259859101101527171618405891227941011011262696829766564964274432434692292408220068640050099959211897420045505223745310329685618732572028256631637993572434457443361435521742611939225220975886986424733721056937561074019592818332728129276136354755351906614959232119365634641141402930196756383185677532868391143616186931612718759526411699316726028273567504155843188875948273919690480155025415103444454363392431860162790640644403108522082358131166809055108591740942120487303686803480099315752377811318250232176780925520233375188436265063230712394741141598804780830311157629880428330273639821740349810594985501854005104543962522712358611167287145260267859545901348654437733101087077040249719515566686891058704840647970565116657008733065614057456779983575621584924148544881478801389868044711962877326569747298145883947132466310668579314578916231244737302932522777370241013447509859498813834740646363698112554657350303447064704453330984372420985128973808168971415654222991476053905850972412006958280095825286997845687277113782911222629662686171673328415224472500206219347869492815576405543927482897330004434232280000265556335513404112115716583475882825049424784164118367051667943486135797387267701753752234226218443649362591952980218377872299335062551117372715186835693343006985711194165246059107231148094563603333986660143610437508715470770738040463998448807021213822310143276789895986520797519079331041784022348843933306720003421637764207191040208809678281082715519416231021942036487491491751208230820729810846284750825487087052421827317403013137300673393336339784699744720625002536166560295440264843498956210624853590929901773984757048185134837846587865685891558670815626341901864227718105287194467230614331205203143884665536235302771595909880970293301747402359693469613773002457561487812299722606035759197038283507484032009340124862367108728921283878976334009929540883607122158757341552012776308663807715753255550496861549348568749332084652406138871390904744363415231864257032000699712532291170380867985273232767288174595964839528576151977575523757177417343984252692973592647879325250398986144136962248163748427116072436761165518835318722450606196654951400100887765813685972455137698982143517104785715310296887206690111976171613993466128506751031043392565548814081940111351511126172625132183668534967310429587484201454604377254144915831975868486152092134897313277196639367467072238845889927674563479673565032275590589976147850253041273853149229031106348777389454259313314924934826525760104409570257751762568151751856250142118339653543312097783090414271336871222522802053784471482606388900066011404978856326888257306908200167707145421226086831649160613915503948582943645231213136614480110083034008115275375039513803442274901842406620656243011038354870706919882315565241311831249927336963474051643651106867039129078130738491516619907533928115725220454091073189269179528894319055401753795636147466062547015733533629620138754904463591865400994430523316919996373139660959108724165687579334121092230864660109499869036503530208483239794919935075830141101431769285580994737444367463617655789107076197128401220337043431884620923608498404932294680470793099144182310161137637479306062211065735108572829142706220001164043188232060200239858256906528683621450673472500255718912382052411197597599201106660272027943657669703631899245848433242746229919640499469089211438252075404482675467924618002512174145001352948063469752004849374330062795472557745143973390767453181350383247137374603092487688851479195396556987990478588381532964347645225245125388210758742414520916943416861962919672247363431063875390122464824199968376214318292028396694299182681926833985629811799241285026751503358847872030209830145958678834394052401404996864641373670638806792165345144137047639413723179784463845939087699038457518407149762326641523751395774164120428813485923980248821287412100892585882344627748553789990293186543428324026438571183524376948608756416776935530178459965636144338736646012011293988409980813123256114866075812323293087110589140128561115863575672042797722470222646590147520209919775641586828412263596496801307633722905469444594203283237985993382672598497495162416325537780715061090411625244723874242935830300274871159273900997799110744352025785826316690576756223452475491700801805321360173547678084967758854163764866474803068707152666989996706867077824245297465427593174121526709943283193759935875394971665494395505223847436237060002383154509826359238684827508593931713774936622888641902999048315016740776082193406020065856133299822394956382971886887304404626290975900220185717870027859595623854442208446175453141888815478490379273448423666946447328024352830741626358809489283633536182891380152518084006155554473005283306555637500342673209077470156394338973480746625597664408854198139637118838196970748462449940427941074471140862021466192560534549104152601339131307768497940279822564140965347176167230103645659131640943354876173085955811635860657467067908150801743367645687934690731829383842429752970389864523268837661661115374295067101472127666615388872020262684632811584280153565009885587561250827811083293811439916811876309181765058253411910375634448265293424850984999530212036750908959221813683237502930042065880647134885044252419866125615470560852687564153600961879541229666178508114296541109979781594025637997584242529728765610224942499792348040559789851040236077730631763455843796609881298266704001239355589600157149372297495083243854102984170919479001160711353810519305670503121019540334836230542045984865754406777789334695323955940818093279537297946809027549486058190037563910806331498606926658290640330848660332947731575998388350434617167641091435588309872583024590965932220088186134843300213315731839563047843830473235242090497876641639149461983661120825313502371650808943034661176034593117397675388432587029875091863093835895707999903088690848215029041796901146771249136973335085736008082309771615147634205673429786340983721257810603326387955291732831720795571807858584745174288239076667463746308023330600875167818321900154017342036588396936096907658528926007223967047487327266697381622665400482744625962748159481278291477187453139439396646855393700526345360479870163320372084294083595541403855119167149875402781402684186346958542069329315164895102597982952939812773308090049861416640691393200179633659822255770264546402601645335959001143014068256356734682090919189041150798339312887923802452797999893473297956934532920762544901118933882038554999809327254039508532634362592413610951877225321830919618323187296480716167846788989723425614068928771439822734880178117725925721103612794402105834726586025837952927326567764698679729395415841233534189563547316401839595350911337800907905792682205178427937705941441014114042041274519480478448821663888936216299360407034860053421408279900558348316819451015437086918623014294502461545212100070560680289382397499069978232131646789456348747107898854632466874973970076975739932395701146088756388583755040880444780977191365333243985314173532552847091649720441124244863761009016596158897166095674039193690319583905693499923319053570773841958193960802951885184525030546590507405811413599233674572849211701856901662311689449172587986301425598933905068677530940035375599133439250169705245812327658475536598604571637659663909999531068500877044086516942722231256543593609557093652224785147070726215758743628551135442183042132309321843945224709379555600444419943709217170482871078779349056203466888779204219480296836476695251387310573864064055152703612886768014333751550021311014598879744141814529881811941426271263418859481301938441142296620048829676785250519048735785438266461190484692051664135180605305858436358187116286514457212835322520172589193840046644485005972957057549166257249221585125102271836594343929962182724021377705550297712885759771311345732729172390378422120147601177262143893983823574750335035467707617837006808863622505295221835838667533349533882166691561658459570408595859976899428761982158305794675794772680348214302909835584931183160909106718588501535780900864053948856187156088406181879469686377529269117623446944604154902406553831249455844185555220522980070555753861948612845463445030887325426751311774096118229850477914846497688582673320062061073327649686324635951151626015686471061752442096736983264488062827339785982544658982622406106751643784355432699424804797352791814442215481024115465473481613809628746792333173812214176466728479316980935085375810016307072296701963978206836665527002855226201995977359148095660427355490608489574741270830107132785454312250551715608418342002642001074723953840777668654288929482503781054847126295552880143019567753606804473252789897787974272288568784585702574827336986299047542317165729586417195109030456286263948105370016523174759645398979505530171326422839110796184859975473798387321961385424942427815176047663836170065788575331600073773562734497826537931253123816623245947826195427812719327382389365104771631091393270569917281972979300273204489716635471220587083180030395799431034536478119027394132415202491889603790262774259120128359046282208344402598726752371273559718006009613738905019242757961744623029197624809434499191448550756094674030022696996642311466751277709128752173107361978009012746901346472204001794007778626281609254725143561306542168026382385723533346258700128213459426118312297950128335918510294665323465837385454763860341347059817651715994845968265777622420783080050445026875594904614293421423023665216683635119395258541897204276822377849634989407331541966409450586699900500288116978542660653150769177184574713643383354715947613341278243768377537413392039055756969280491134215962354812048276651287910670785693822526559939673748796081239336452956255976881103983917711809263207489733613435101231716710095049892981794105871623475449854808728902007857278951239049825230045366499946481481308285153655532988932824424509853869294986574578543291785357856594364162916495817864751353086589454035728720578413819417748900560156461905929600540408623083711450065123381352395605201683789732595573865886913884309614363348217734553763465989299800282870478522161222347323205937223417705438401574374273288700090694778065796692405293776308291797801431094801241883725192138799095932026139949689390673403964945754625807867423061148476645808261161437738482406897663559662398839755643223890196462069613529263899779507137667849975497350095208335696804998386343074170306873822591595120389708871758472119609089896635794840064954999295697145460545843679553648227900120704780170514983054153038259590503721856045548344025513828534766146663737112006349881775352459173748354675602813830102213021353947264237050175745875487847541680810379949696389120790613206261756257807711711074509711908273012403828586515715378206705730566228511600535853221228049548975907629154489261245290357482382818952144838657808035917152850469735458394251131903520666923069625048497163970255137099201594040188135714776754086856676514237745602215621930802761164887642088519005231366213008460334869898093735902466718125674107478588054069052424101939554431024599605478319931613310882414344809160654738260446438246035663378678925302006951625289678237577559014060141096908740951250685188029978288224159922952350638515908641397194311128188481298225539494189017804382742134468767967740520413711174862329633727672984715769156272406097092281649312847080153876870450114139953979946120214253511408806280569905346711972125634266098716957159033248386061694484259876184761198872352419277836468201878239770760262202101137998222879726431691424540592712606570013750060063229914585223576237480540225406195280475648111869172379865158417575798768499125953337687356289092974672521872469084886128694058453406219219035234627891140455344863945144276968181969191276871258821252496313767400532657364573733057063848049757191623120944571352311640258677850838827790011567321875671774144777419745034915695901858310874065160595534536476889712155980037657402518824336236523252230438792476136306847408402380345158636695234669433046993333550675877203507124873503906633077009552759373652841670150372259677894071652365641268158596829717134513013312584920842006150813495284260514367595112800190109400223915368840695267097728811092426299268369443406353704950686685961400632052674209994639606199821519585810025718308347005594216149903640894588311290768329447314835066833613492905837856393875716012856214464408354780895392043053546128187819134785174353756568963626599922378871068995385704092908051434944857141678592384193049204279745951788655874987436332983393492667576385234629192604860775348423961195319926629354131861663988936999312982009220468571527459100346624244055154535967784299009333278579647048588583701520925781268151665477169465282395985569201619012258964522684031343683144462322198150393496979780096483374396977627117974496386722385646400438073650764732897594403242539995467636117043067363591060659862845032751624665298743629459325660115968834453777264853964791214611600457619958006114669636316026875697632966007688686770212831824271619319662806237634111892269081441498688211827243330735280768218911277024105191508332817169587004626654605898705557125467420393507820457032979261219139580513602314660916228187554800064400528856286449082295742716820985592035729932815453544840772041888510476547245517537519575153837048931190806265874293933303098884831259192900678426252181580404050714267885940132433650404195747066102703330467719298421661085449290704834692079192005903781327348677007351379074999146715223237098647550215797000526095551620008007007653204464662707111567064784976908400838187059269330309106359585669478354813025047445226073365191811154416492955088504747963047548535625962327286708148068500718856885442791580981814447696995492096262199158494932202794256148249966232417382905753786859276157321776570431520882522790548842658721530325305472204704696696842652732810721964614491676764729294075883560801424966775833265631025374866246957524173407708503892753210447864900927270197708592244796794852337792232840654435408363504858937802439088045388481086499682324145784245893422174853981155669790203462758092467623984280472358291591045837960671352193872741527857946989554256785661332006048978014048696897482183718469546266369868138373227402134432837635919352191434620449019827408549272293534017181650324456780609378629519504242968642892618500941124914759615606349923132277067938281252888187776405572726835270854036117948448284060734146639009149728664573532773422852890737146668571276655967589915606063191153473397026656073107149533943635568701328385204976544337987850258113750917070099775195751325242911738963714509302071171729292649813926063381958605772914706020567482030415631194134709813625972848237579737045505352965777589186222751343929075191129378132949208813563189437173915207722693411465431985720713901049886472878626884121420621650637563725414780821763202880017219170111640416524742824481817374549678751250906714869090680771181856650587362175861701389846732683255104778901360844344062099398997743966227034364977007392044940141692585408646846900827874348268501395424594589038894137157274895086240393505257569069090608020779103595039736385783723198831441022290425536437352224309748894062552434229403023950364132619768182727768734875434057372302323088267722474284269250573864549647154824804058146211910820073958483091370157940279398789139931191239436915797020045592472154857746785605126967264847625874683539930313726496024252672596094490895412153939681148145233893870887154675770164790504711769526939166572692202385061788758819200235259092220891977178669316791504067722807940783491404322804747544184201347633144041373874233864345524581517921274744186136650226483375777039348990089182083789695410166554836042207629782802051230884478542547271894739836317524721917795456185135431508900552146306633003292029649495488703522696914537258333058213343300276954035725208378669305186245113980718413804879886266559521234726224898305669527626012240831122316205537823297594541738266020911133114880515578831909005784765424866366210312541765623508339543907025830767236664152357491634911319975127764472511243632191268456382166161404527479372379766405871239007886060423756272652640091195289877769651511807952255792717955623829208652708754179767785353811434331790608127466288652832861558219831276230658204607736491313497902820246139026856879957863937713065579346972652554661733652077144419974786998420454058559372716949427918953187122073336759830922815125344495560169281400490922963869820952584229666944934984291106578281541490452248441766893010216381197344217339467121458618772320460045096998872517624523072771911522558247113205456878952957654464678776226208381576709604399439722640255830561246116810842373040228862209352539333072657218683462903756724677442237748098011615992066999700197057891256495811561727482187953169549372738022614974969039963243623773906956585397904949114862801693066483123071991383322097004297426701189152697308302118621882619464771439531926573620708223819803422205492207365262885684206558877383362791290152104993038844458292098185260003629859515063486512982843035296759139395909673660665864555066224759570306467213533068808849926151100476868642401688368042209153915786480410475220412801169921890908003021910121425568503161524526293803073179885360223522990557450190717155234920564745926365300575253914632361343486037152228847505362822074313942816958516932484832273032848428756776121816572986838907162734372558262245530796612824739717417048323776612975539681193972667289749564134702501679255332848036109364893859232428297192002231832423315207632770329401004227139844962486898194877800933413077851807531530705080007065677496062218584187452909616331439102919615185589914847510967583078264286712924742976716129136540651997615799050152105187815092199029353659830335468258345733220798220289455974423925110786805167266823656920419320279858007657711993776069301856971042918549769821356150625637133459776760636446978433866315063255684278488864420818041539934321196620120972929481210913627903114253593695879347611496293185986091502660935688294661645385701549065536924771492574481627036938247971628497608707894164053246652643923266322593533038068212323422264016143450106346959352538059227298635471309951208545300243468301620263322921091816745381887562336272055393898005883196622913105143362033395084874797545329511031257119291675208247620402525090691484497712341668828928588907380999000000674166807333773672053719027833096284919398638930803386613246105153643885771719150266230594693898700109973294633880647295947937775766254896699656824420146847912899368345115421026563788147550438731807266573469837857551285952586100376390822702228697209964124570541044354324674229289989931915505335307565541941584550543482245629138064591679160081575395088285259916366469848664530691097938979460148196798363054106945395578911796895933831232543788447761905476123040414963680912933440258862929102569483257200290464524124041256271990362586806973356994579176026337541369275687976057387458094277355020657984971093540884155282205461068508547635703632604674147801195603850351191915044374835776511859494232018061893260867792474686969968192845404859293004729246407350624232623190123572458451243885916639186876842856496159000434815950472670419079919259876136004212556434277569044810996123940989616049027153508410987507107465934473408613305361805016224748775141669052826947186837061415293548738760907156819919629614622745605913629640635736781508844393105529711827229757841724512055330573688839339841646493742082680033161055313152420066589412685258522484317273532539594270892862878691820748332631653683071258864912820637700529540738933067179104738511950917106930260397674954782422018329492611816730077812585242204304913736536023554746949151274652209606365307508756844418528501629795483006721304786499117019315252002689701371563854196953722276802246517424329089771290985951847316036071265567077808330672712657619777195165648661669406755979070647293893270591861232157386918746105787840891029436586979732074609301191442274441314307063220994353978985762124845538553740648802964297495051321728496008960326042217012091562856004046519280391408864355916671534620071615991487649619670479498156608006640749010239044822932991507769543650233949114007818644054172934330971764024827330328901312284865652860850167452760537166053335680445590034658900067551065099213363196165330634510073504819311783288657023802200148307891306441229823137308762769192080675003440771757893250175452549056247832492766553224818042672754131742741678139460806116290287683082465038646690493064195302826849985689558693782679409997351234738539129901760356028189773840953837549788895445590105107244510688590178488339172773222131969076483689984097330940157565037512460104234407123132878352217452871896973215894350387455452303375071075197887578811149572283605971521861651118673445561863682276622746142393198951869759781907181917421179470027926554769089431285288296829650161280387775435698914507088146880639568342723514897918649224370961752220434950398197914114555888821858572785798863061341577211543305451027946332360280614964237115994220488043198988182181758581918174773597761982930514672608063664884932890809745874604112348798547985194940255947925741762054189828423661206613881588553983246137414449079674994837247424103258111575437959360256172667295589601150622923595805468795703495913584850547559912914555769543094865140560245613860781507521183713382355889818476609269012414481440279239062359848725908948256605457330069858759736841382633861283736025387972990744943033288531535062794977472004758413995234019807061106088386107770239824020314411346865019013333347118442062658282167473942878994253724304777810888137407761662050077607996072782866335382520880152717995979232816788202078172628292159441262382638275733447492282950088559066817289230376220565705901411732387536477877845015287652904537472602073391129140733345093215802046937365555765483086960625665349248450343650298980605461119345986746239456374670264579470925425033004832841012207850629207010112925315980830797895075252183222115004813705007406992044199495657949198499270452396262515472279475090313055345253460604192804987207377851768874824607765850449054136376164242262732086032399985382891045299428573757430626141308769974491939689118441650383097039272817473622015258188845052106665114424264124799212453524920722420733325517477303680821342731355632029758428028209231220505907585847923942518995748528885735668283913803945872955086537298963581706946382075003578742463050097085761528618036628698546250269806418924751323933317020523532092614820428466694841309799324329626188360548242744611045400457620418712439290602007765800995714890847401694140785598977365436721757530561531517513287983597846020077994301254999090342202044562295535618129176312732444813786921363372263208162644510755976238359564854516795410831973094300825715344302567150976399490463332522764258222872391984870181590281322725667556972263282231191550034994309237995977385029791420885161712331306671541048302980602065708369869049982064112051826016342660035560660902547636031142699766954644051750664026757529146793300354405518348941580571265514547964685010614237490492000149408018775511249520447515559468840538246972783929239393701399387112906102569362960555342499444085588484162694293446937881492997879959414932617368669258476301098991824461719499814783751618845930977455186354589997642219949640624787434957462632829196586797595532279034364533616314475191365046822040366226661055404497016724704936579035636722175776083748338545137369537648837087064756308459393917032884749858311073319503779739299730189844621628222189648660939627457787064611805543143464091738868182262981052384576728427252924166725573976781659127484260194366720435746849737162906447293426307056944165368480903264230135561561648648988695989130378044746643026869933225487602414939433102250490454166041874125350219613007652698087837846179275203903906064460557432353497382224113074261673432890981318627254961104859537828278850687462053098964367969539304523140116845481600617097109278431516499521323992567083706721270104293841828489152535709762134911510747809327763070488823969508054851815634750066412207829100181808025318432934107800786474920092455522411863708460555155919437384597673467620801798507634752619024559086237593547745369229228485640553183792496542081946872232558969719382887015418175736704923590682036604847878161360324853753773884372829538612241671632824743793989705962172472584383494158780615133136741239410006868499048048050076296782843239898549717012278299148994524247513322731542604821884868246085741390732999641627859129939929044595497949689547119704461763386245142087946473091015184672852369733526362444449324350130818323998860834153330262046690295362385669465266697877154768016560103230887332146274640783996217756145329076801973102058039172697539739786548697610931479968859166413824645465417457066995130138588153246497775760331949003396875040359181448887306843053797112232431365172683784075840369892429281227189445933418085184324765542176096157249317946130496224376655436319596785751884566994744433887149126211646654250771393258561900389986997262586522075943901577151851050423317265154250534372310206436061217781605790421369542086750609816898495184855922853799813009778058000074968731536357699279071973901404642020402029751663115040848632700442677997662293768585012145923056768371183788452161547545030688185397844879699937392868502096676641746248163699034924825592215898002844692015396305094112110789256382242237969244915873296585980490334718567140171571383672075607708722614534480758216700279191526946110139988424402503415109761254133387835729665215066307211425006484160589664291812226835077087058728438602758082905128567776240740822630109032955484642938061439473713111372273913570781297434057421276466396405149616050358710314214138457294784743252629716785389054732520948617859836277054348770471743261859425646133534488816916394326057493611431319196450866550784039077291238727949140329589318661094507945870099702650118780490111741219590078383594190489130621445725858521430017250345524832768330553095044789901907843135464570802474745093273823418849531904714069209692613903707482311272355686973144079333488665801791345883292495601538228513032706688382412213697024898900963629645726239661080309751729191564917693590918746746709374799713722278575590095064765994235582395104752779611160552634332554597437419670689379023913478344664968543314619482745586201355142592598031764342921181974411986225365222418646661003182039504329424260056755446775414267738361580995093036533393909339763218568758804096323639029966894423139512879263884777839494734906096556341614166212741525891217172455894170224085561609617166991285296115371277662229838131409022991180914491854113086480203443078962534553737252377662394557567513168823993093366006785888773204350869086560786238076456368199691818958150234697882808522351232439779300122458027394362973904121213688304002742949640518513346148160508140595023262783628538136550825796082551673606466271304852107526378674676637675304755138848875249259494855860874352694404058283749613440709825051584003891080129323605382454481179824479315417767395968225975021585103728006197861248743225011855863729383122342427684346628175927626581937788634962059259486430680489833223601958225167742364569233342722075137723580799242735049180476357740563976167028267712440424886630845339060210708283739728625901590143411114483633577392992849281531004109829549214398186455521818889044564626440141536471413832497592298093271473179974280936488578752588210533334866953397669978577712618895354429861360150262971371300006138680995111319833958541450395368200411380277862784329567449171280379706577298819432418049143495220871174169813627384224069095386118147121893932435429969635301421250574649031800699684871885092809332186862621949535517833644987119010111249643373889944171992969243731463138227092641077635946270119879222037854897769226446408098352333012450588185660148953711915518358168528879170820251775634091474099913140887085157885633443225362086495603315354289158778318770885868415522173526561184359800827666320454116256931730292427297953652804343759661783399062737157589882139986631725153414926939754936629697782221206326552414296890208197721302472257907839644726472873054487524364959079343414473204280897379657813992592417101999662995871963835770616860821032208169218487963580096669231926919808249250779371378612419432899547584512190474649106954405330892095568600903205794079714791873547366402931818569567823711865246629028067856880459786726247663467661166730666222612319534044311873307830929541483292622813118881727209936960475883421198770582316598750692025871247622662139510197588602895044332008229535168481752240641058874561614607730017397338342385387497330190648556018282870318180548250098081175119252277736933946510992958521515856867777233799440110442350472491590936371854585085422394994380287654923931018146522854525178491801079507683148618684889235976347512639607688104721566604651774367302068637183323933774129722173651446721498734438587784775837982315820504929134666122869255424470849446382113271336539116357319677701196506371649536339687989141403358747214701370100854379648996994419982618472865706750251012528348467123624465465686144724214849359431561187028592684283974400343254565243969035549487222941401434369182215399296207544461839997928061012315157899122518844030667211480398802513443040765068000888270608789010917185180425793940407426135552232698390340601398408490949087333755680540834256428290040132519264822401997376096561084398055821186938927207694457414979632316225565003561701210414460768277955966358338170470078603651695264327556028222336219994308045679412915944957243933598280605338895163018136079148010859350145468223091683697328639962321746597859493823060477977445506326093103721264295760834498158569995361792747908697637226957734455410930235055876850812757568391475750865707897384216779128957993264949393379174762514296933621940426861270633679280040596657235770672591727217847487262822589652973843916603240657772489091503507500157114940057619205990939568909860382398735321439282975661426339216877864710264210389567610513178033041418059179906758031260116969538680676201119060788977175320348312947182257420878846832560446893554154175271114357806398400411405471674772522684227027917195887529834071035269176856212644728497857076615534667767107235901166718972366517201939123472998432231098067011021901263244202664702755855112479694186406694032823244669611473083043161999056393373326354608465841085202200725412475781678335694057082048779586014881607369583179353545193812004323853109474371862838944866966204293941591143516330025676527573694489923277384479640946268966413093890741494568461952380802460542441763392983314050836789972933370950862802368262760184465532192821727505002279914074773815512310128117043383549799324148015795171333377846348361686985401600879223176142448169466225243144725580082170867931490123130923626801165218501719030940802542885390603934045204362802788162069733885114139331842252244308962510991052892328933825912313364141597979992158590271109414620064146682580323028402240023096200068666343351468277809471834531816304682880972530790590200087187074161620904616609489882357191986458583527229930050620880713087050257133839928365616461504106596423801041324990904688872435963377793124376604880014637588102878280487007789615607305377403512604430045656894281588058778041553561129384043921343687880461815126533254665464468789049637350560270351887252778706911356030064941077272563584409667447811615906226524846997850310662129134277984405308549128805287081915949829130990299289346329876598538238381213175752778502910386919679361866609844362425246716655181296435619843532699564364733421493939225475525949626443607847446040071094872498708510520645496530161956459648795564812038588970712400507357576147081681022713436256396909223049210535761496978723651866609640336072739176075917933455283457371961507837372252493495229058160427023849743167281940089702882583485437159600444400274616652199412869251526931545273911732185198177599644194795067608720098392712060644079507157864423375480077763293365913756289404270454307338424468554220581498286669640415793152881207694378395147948777934721915359622373874882268598767904053270639180112348942322034722794395716119802161993066000626449233244588520873060450482458074230459882896824197846739004018202175353790349215491589413308853647586271328169504734245291003352865968676660586357130455574237523208220088623746211963862432542064274679896957275056156301314402320749904831667408087508582086680096587356871111237698046253070459136774911987629499570541709427298742453463515601986685380780507139483287628307327093997022974469006833562489188244956453830305511604467330665301283360884450307326288663663355606170600072583463759173041518865114540019114687709415461238845372804277527244367646128915127554843496917166000917458210899532300215864178328822401747913025437397826397105824505759074835105264157507452586334982696197975467368936648530049413378722124100554865570242264048278165191848286327460728417431406207835156450184972450164194459475540888434616588668755006290025461505061949613828396047290460563928715621858367883563226504328284753053531793064526859135370050757637677769065012093111766847355506676430006468173316938845414350815229709507032477234746391378563223210153067280077602756723872239686092098344071941239792779560456320341569931116607125744863109816643351900169901220497269223378357734720354158094420047191630917676919455112796901100018392970201471922251548673281263895174983805862396202998087122230368659222836437540714632245953732799815668835855462369571135731485306997087340817188989454460491097236232842534433919939435704635599967573333924789084657662234221510725488831102686064642942526360187088028120975298265740902928099308252035585904403187700450634639461866595409501686594019858864793642785147547379393195289273825344468347858525877809149668700014000467937612537055682345352804594713116879847774083482919484201918496181070042949037564942160970596067854150645561132652945957453302725294452284257290974109304560287939671011787003105999963519707639131515681864366584919387095477722497698665260742602701990496325052894502693106260521037645552706778706783671864123992611743670952603221751127589444694034578205286727414771763149371317733081507018486167476150299040578307946710085259971282263728766504509828951417866049864721560481791411763194138827874375373807228168237437242205844044032076050470896283850283573556499435325698457302880322763788527980887737193600962076832376169466284948442434459405043975613670089936223837698614406132533901962460657233911428777337752563642633170503718284160851415812325321233084711467115230228908520811217428583380743910996217149147308669275047122499853838152973936862862188064792035831846062633065634471910758375629201014925108444696056759791654840127915797003481584941011591037927987191602641245818498810881748361648786056150471087269671359938333821987764096928528629497061101769818692133947902379373608273155450336395020366687649160056499864795032155383888069094931785029986591873684698376711223228244257300860181173682696173972912790627390444778518892967391585800751394791020269640403920409710264280548463215925888783146969734444763916612697202523210038159420238387402078557925848947816233737401065352511503216182868722690499291719165996798768617786865762281759649529137248338281454968246567410368185424100246703086898932502307593701237102824395252523205943856974980407227961105205220534812666507584194160681490164986263417710039921064692335091677106050847883052302940121041005765670500448411292859185170764185120238255142466504047643194893102287472883095243142607837997270256632799945512754894570987147761940682401981557623933364848138895328392298062316204067416281492769022756463063998222507813903502578374419166829562506115926409770182062991438171885536254723955291935783477218164555026655270848736562897875966153620431435516764990620437766062778821771332556302188963429853852881156269055336423473099337774640253176301759729170104141485023692306183812146399646573559952520882330853144325478119843492484809859701492454678031773018251991466014398898265353338606459576536590676074200030285058745394567869700494542106656796254080529326333669551066260707650546935725797704581014453006284677907846410292841792253999435164095500469545692885204499978990122953994836579697218162063266781224836299649982485558516993149006773181735787170770984896022188275362383504553607227955237950852730604656341039387591706494071355833311652981613669947108481622229414204739140981507958463276003226453367261148115706014248590158405100676041376841461131543270850987090017495961002235792710155515483964984168519041174266416657790212654452747719227268350355932362917674787578877236821812574491584185545451734107267970529206372777218165440621672825420351008004953308889833837887970199445519939358244667120761111897729419914044733008877175702988725015677431970045431162386647840016344499789008562465814712838769490691176752266727195352329406295414262325104031945691007182743853224959304383692256255346204089403259607607473400691720404373472712755542561097565713473113033796278651421063194498882167924221576690778870903343410824723473585104349953741104404415766195125192257416994666824110476948830984958459546945254472001505307297593581884527914107339056201010194662056024764194999276558026400792573301366942340587502216414243989244079006757558120049117824015699629012319239274082798979886173701428908398120764453521112050519862898701390297127874479611384874598199634895885132302645958681968110670026652334721537919666250814158383043403388224356969917104128841302110489614832494565462051353929402919755921382723814700848433642267149645824926340632502571775166511344731335559543621122417227025311429021317484903277454185211619247720795416698261522307766472214662081455201989330668473636356168574197514054105544462577294640959581472996166900173590713612528446642522973103838162951494175696816445448829713168251406236573022417871579664432818050212817272047267210006425181264858084919243401769449112349272166546487057538516947755833295376514242761667436399827187727304230569947221952930318018471740487849204568114717073688328572527782522875031767171032536287792337871344033986128840785300840348014796446411316624536237987017279455023159427749266233860221710687906547165783193820757458692586956528271922469099639154700652000326663405764689559734046330165287013415094894215612739544654520412238956713058161551115098110014239942756889245766134676130040664288058272769659370518822178179845331477145071393186329921677293147347594652069689988429145786087264330468557497878724699799417224281248850951624573827847659182380224630807214656066399732387342275752787818535682920595096767512933766840694466171738007097406761345410312607350341099860326870462458319656679000839283770789541520694942503144292685186700781090925851144678035108843291177488212205368683247013255604304031516758784089512109519365614809303093666046331234438762726095444098981175498507638027109425138634309697687354458045494586755956121425203442001475053054181754564479673238666664438241513289985102768747245956450228792114704248790810179000297415315097010954024578145374030035631093502202587103006894345862285888737482969263029700753500186788659678805942790787567407835167343593431889019588845287886599450540451398372792570645916139153738866324044098505163811741700191283093509386700538008638453526678512074940963162139240313213021547651706941136943973977881602350682485076565655209826095532755204554707355050970320406084062019542287323718000554495546625531386358156812461428502924767584766739877504169150609297971883625872979124513810312025442488499862398908103949194912966091621432299981258861542750488122615944804727475151078824539174706626000780164276021658759990374467593964088421409584791122909641354007058935219810278779142945724435019080486918234234672064756932768086266630198974836499695432732909945199498574651496055957124568752817159049008536743011380513630423901461812421826184646370247520544288888793554128777668308669352191821092762167240283221180217093609312832580088721895922659556950967725627096900355891744258805601863071126421861052233650091081887977530471528404718068169118941139710029151517380774446088805050705516257425308684348883743132426402572484628053815018324157199798133514227973553382262337983382064138886591612233136757919054553487562767864723450454279834815354396182320697473789695660024440704506471423878258220608673449460463023078625576076514102920404109499361192190639896437205933050273987044712506101923806995232379018934717349421703449418695176978528033732475084630553468835335782319583026822009003027019875602840782641916197530254730926777259080293188262644857746012209378600416784382966205534489348518103408981236005310290874117289107693000578877681048401821885793745636225995487741105475207234191397413098369119263185096157381113933111050349841156381705861220016252836365183733023169638040588739315070847867138833834275544984946761487358956836279262706383902240282338233431810141040755233273623784732660749568033439979197473137569306463585981032464722710933073319088421394629113859275891163947299428944098043325998086084532301611833986639677854149521657857346752555478002976301532357073757832904789951018484813201649041340017047241613860716678621369921524640953778186463810754675296289012748226060883001280784740905912842293205319817646568183359164355572865537375603651732370661423689858924394547244092279987272043133007588849239036755418859105444933531281606079655339796907205410647763594237447600729358084250530385345843578827522669812129532884090830866227725751687629558247032787911323532724348628503945107590490350934886478071630357996497302474627260745399340358658825106174655855069186091534567052522250680766806851278979738462841465838142153665128634782294028642400549352656894335296501684744414367062322147563380103217947834276268573248540391858416569256199351555413591507742554784885082456871081861794853138541447861174791094824570330420911906686324463469032694054223002822141235108793541491349781396043843341311210511248931732721103057646035637787787322360972965805890113538377333179885433754063189340790933995183252706732071325863086536608457392239228675669697642828312600375589059656338269984454308087846850191566456151066500662234144397307258622965989268277246575107320952319174321945630495568236143085011864505267387147982740102391703958592229213134421636686191201843199192664061564646507239788415480447279488286183430929647468003930877360755085049458336019738925911760416432806917870764504080065786098692823474430446054242180955569539354649807733086651390355063292526080552966436046041141398282244704899705361064155152038112774218040169693319828731171449208138186922484368655683339044288572197082152614275070331078530434334834824209278829606097712170699462777729184142306351932466514467266309320046602639242424536484522507180541717163647382315832017171244936986644362483532945724479861422488447391875289664103085559438503412980404238174022539807023425181481708565248265028077610645348689458831708471746556642822758116162592036429554877147613978363394090408180559695135933207380272661135991383973621772987553483615728150155872322009525109901102010946975106173161567551335208542183368552605146721763002902781854965814972062449066100415359883878396343454763716568919725084968206684412749121015062859001113841134332462046674029262892025976123683877978533876077003047160274564584884211758140928003878369401761123396637916627128686037295132884429416788766744794558018924792550644727758791093601848431626889464363109522580308417687634599188844467242635993011563227276386283703461478961987478591677146745628454240235447817706356825040574363732108060959447104832525003817973933419255938180049332652582774416791785095908857423375908560775415401338906141896274256159809534444104013693520955195224376198221614382019503393230689322183463264807260996579394394220943202593957702108491417031725632068580495495102714968902163917759984294018331087568465004212253654416486411259188352426140446315844790833790308780442066472609994934430835406267934081809359553252721777475486774501268269862640871999531651733150310728309227549736490019960909538253065268332772413826109127141968809907690109226085805216223702952420042725882406526098181620847111614196276212975085109084225280992480973459921889028179014086254526690747592568184624199994303831368422396974651141473249576963954678719822557104460961537459112866913316328590845624260739129006155844029053577958526219655001651361464480771268359555776474267226082510688779740660929757175393185920930746180041402664749313462072116839925912135456789299069724270304040447731624289776538799620340734034083748255083449728162662969364998206392069935878189067291297520702004117446742948069237160036012776728848576728316547671822820413909104624738355557390255684784946264232709156408117205408034748627821507835141051813205510860373922261618222173520641705531747549319538353506867726213855064976338934509397691049730373135964270361551547688285363483478591915683850119324783122981429378905651379791056910570251397369312994009672970373129877839212205060410225670566895888517092893331264094483527898143227699020827461120097182912340219679529648822507781865183027356006941628431689998258433346837659384290684802276760221425892790679181860876074046519935817851994218266122268987511280597887589293126964353792573104860941820837632092478721874308492904158067898785063194511587741756844687490704997876248099735649216038201322636253093957232904561128416398709585604760370308239445694213348390615321172627462442534723910211777594725655742187592586255301879983051917834377230696344312799401703286574711024049984982729971858775223488966094763285953222296084048003391325706084441255982733997659832458300139393531726677874603706551512437330386331278677303719513768194177110954129588643283028034976594652098628939110244967128147654970263658256522549102830638777673400795956690618091595919064432256779793096038872414742679138428753905927769798294277415071589326845409310686585400074503831655287761801279174254050161137525029686161031616994933882984240944268153186687175228431301019075019738501852730866244786408674698509725305092918739928915989369027376884053337019937988998308436463124610393182182796524045803835845556581941543366934794555520673553578349919569785625131383489231905422104061654874093278050079765168131595674210190596858356380256916780857283479530857311264607688904644625762451393657515116647853922744026720749865188567562057361896104892444145354921039296276703328643664686745431049174468054689280148675146144541483594319061141596169406810771188567267980713929878952691366794326418154398516267376435527343601610234820989111588624646819799593634500588663063585228732055113544023543739561867735731839814265826257408508613951291164970238123928757180131277133875634398295883282994903250195874447154048624512186588188451794011224220903990571613881738892663152562516568387051679682294799823429286421072051929048089752702123945294718818314477880683997044522242380750656841170754295882300785661485513449977263840709768581804904979715179052776160981141090614157623863803404121540177481338317759952351072771255200154472590517625663039578836937577325754495483747591833984401851765945783721338075112025666657220870279430415494044997388753256836844138752069539112105955312641941529452031282605889845206639248516232216408189175005945567860983010237764720701512049841406563324014127605190432300463847787136514803295001678681505065077426671831599925254179136816933716140866372081031383877777081156889957326970987400243440846429881781876461474910308318608679631468598301929193360855139187288121082448955916366430429227656159681171513814496213065078550209252599021669348354036698127927046853647224054797443129441794517257771337562145761782287041907800260282143178348323887518133070692863818188930642098783154013053999967935913655753834427639394739552387539392571831720494990410859462612208006473845162364778623106807532451518303510132930894961624146752122431721171281997548782202534992615100571113094420218850481031427452744003573436245789046738420662058058477731197337531548759691066680108900719486265395873103467613800263823521466787980268532263818410152146967474732743672082883463749591175160466200562483838423725098151950700495815448662775283152565375024253216524662620639983311879893582944323233542282985690562217720186474896708739351144283204687987141877172506367797971897751899124577144160062283169369678842241594296457422829025813698915620724357876863736033143902739142446797086597500424686001672099283941790636363051645422632894802038819939313332443698812416965960458041033173225701386194297889210552158634590784703630266894197928032818987415111914316029959230974500411155318333833412015479204997163735321162059144901393937172111206850766180914824664056201437210225400195968563243255549680946847692196300439953241137156533215033887093361849536843655033055345941921237430147355554840284914588860034588625000539233935143144880807120600522246325213257369992170759900591349994269132259314018380422770660322218955204769171985744974282346612344350859749333238221725686101872707558149883869013261666769837528554749351629900532341297494878290885377497143708094459947640273573807266020270727983822767644462945483963641598751039090419583774124577943235166698917688607919886049008559852344320612059205311374592203900228489906097614858889807432747294035335087931856100345680439314020132656382015297166242274922735203571946460228643666703742137117012830540339397350379875431026524415546162333677036197256372351499886785673747013356246984129864293266698125722247527504357701042493008233061039235737349383370764286082272820642903752744188403885588213965624584797584734920551942376685163970703889399292469609446511162927807062770185760891841719105213244160738494060730983385635014858952889960480865305994112736296364489015630430653035403151157722898395946472113847265890521809829168545733730411001115472831784570112227492235556399971772035856586394164663750931598770781900213838609596207317831214528902938153941486615940769014593396866514592368675532864137371266052797838243715903112964720454849863706479668292344906090215481009202007826617331301149221865012522696559279748518429009037930540705240015391121647393026875388381755137959284236103120436333091496541211182452911620341977019131045582024827619445401890589553535170756263545644348964975213463386661660686672448455157173438390434550982346328680726656954791966451999360095179681942500367621806502456233828340566571936451880462268252379462683745786232441573078473423014532044458644337943669721206046823850172593817016556114040648433875453087989613997276426279276498744039376231908279328229893497751220092941242989420815445022623419344213934519505061763681065833740864976192456899746499465275109714480375457056679639556480693457262264221825098967187405290818388747302647599117575506957301279666813843044445757941701776859736117514021521302051378851346505464934320807409097489572106117221269159694608371942687917219428783401693971191691981749215228391337174016848589856963244612017872011782209876843903907179160237781251260744884021144762537559114112808056395058425343610668781062104127744247590767543232552914470785386836357672682226047088166029805146203745511389656097611359764830569966629430294584554036021459974369085262900549438023259813812838835112806907125763370229986502924702555188900420385986307774021695206569096056132577843571432423011899128709329453446392218342130495308513969551952803897610609715477472787211163856519504003415084975259251030318815695920192246832091763581182311968280331625395870402176423143453562369564355060233563400324500832444002950102094198158124802155368443250081742288053865545688744033684919496355752888546011212592230451424318005217647115544943729862781886106229369578140559779185848182842553976911377222319916200200429461005986989962591701050616079263050232597353723312832723459278603481385938734809349988604992039847172475565946771264990750032239016697630780894767314234377336243849564968879195905871693582342304588322204832321754121757487160930124276968415889868485221492854021173005546242038828573897929419922568447784331909168048414483897164685759863548138069610477650904843007214029385175707751372042010279890641678586543995732180994509466976949305565539915205425345864536004829982532150976860586707684118254058235186102833206371505547271046253438012575325484542121345004010805065397971738245343774854611224045058814031624010856081812598780627401418659784986807196954637072080231124778767333969349822776669132174099557021818912250151757785916551937441567516039746336358796042145121213410861365769399640468473705062937775889639075396221759209649684304981214708240701298081229752057101587214341986530842346999648207504843725921050617953700756363881570387439565823344089895830991433823835219659014482927402024004032035421042658028336271214372998923886926552439651191298681042742045728485382491935922602275355801194530799583146338258736360699423036164417598741133827505094828102086275411554357713149349429555451047193450970832845454713495321334860802813224717211875719331901984048405685748293983679606500843602845677397096601025043383390621119335653810386041680944579855333226787550886004048644991393812880054669964352090049848164411530691618722904732222953697450443554835654197243281600546100477063462227018094530569183092801332008696141068126242915600162089704303730469532937235088728453228512178262073412984411967015629394347040738172890208295258298353071392338727015294144723149064001505251020299292300178299208067607121535239544909005980994442688851375798631619831430736354553270601205783967025107552132886188146946823513427159146889004254696344326252627434863895939049248816090282572746008324949296645466751141151321100841265082196853030305525610210178399012467351167806081757118133678426218887616412004816558814993116049652466300131624595974678667612247867427232183120989546795139713770571847111172182441736030700617987458170281009511565088803606329046204048165105823595211821101720011531801811585139841096771574119220979886508065483086180396655376522076244343172892809123501416780074309801176484654983083878020383112788704163117414620564124129751872984177698307840186659547373862082299751911690266122949328395093529067705465501655265726297220903394012736579701121785801663943451255034644314958228824235529072670933501722173338618102554004152766257042620604805169301502101457622350764855076554698280122366654899295613756570131068315461446621879214865059598692585397817395179608277627634132507103555516964152488003361567056625604555961758122298435538783925289512290785629772965983795963050713822650456186397696782792629814102887316318492958477714309596133101180846439545615200521366359997471842092980103163468202279587644474995681045389273973833773128157033628565579869991057590520259377816115190867640646018878208407775026804837370641468422626080390675615348434470857098657971087561245819379430234722794622307244063299841042077702598309226734060708587236092857331236073947124341158705835388056428346252805957075265239964170085300842378375808304538821054758205509207119534313336209626453268582342658363503050952833152840823764281821730454699291058906915519041794935055722051312529130177795386985989769205062839068251648004822512881598718603094029665415691647172369116996402877775385689409044207560225082200235046234199143059098958154858666830464786138365013029714098866013714278548096707304779098363980967624201141194438460836035078322424540205662851302324686959396244727387184834091559192624976276841706474534705919803756159033548499018507108117208058627191730727605111178353602193177389945889180843996644522873588731350560558535262099042415631743059223922399024808108983714408373743772788877679139427615222042215983533689669605002609619367312182361076813096252655097064292483326474628897514363611329205347680358254426736869613707823032760500086121116676821096842850843636660445814110152883780855582914366319683725462876561661777413051230701471355921821270181858307473681594838465658956338728974149623735134839803100962862724877108810007128936518273976941395289564185266835612733858443297967338392127780848580116401637305534888886626314712218289703523883176584621102387901055618019002289506681913882032282924136602232826530476243289608608811380593484424383146087990941552449557899166253180177702115673415439615926427763014563688305439258472353224438299745068191777922434985811430983228245075325783967264472572403488572733625535019579688242789017038638299795484151931501330850488222668473179191308181989873982466581628003854101276159485686678340826397366110073814678060766008886039030929835135261229444839179101584469344783441695367032773200101352834468920555344444638745983346952617411518233682655714202925843603827985891775263134717361009329807997984184258226248261221225278377624709650786938803389620915773577496124714784701853094777398114800642541566461349593816584246752293153110168910482159891380236916498195687074988490819775175722621806832926607055159674141362043226307799659508460643631054092550138095677640800689748691014870313059019020835459730904127478491815928024378316747680046530488213333371549668190520020510088679845924756285977443992110103312969642579194493618820098644424348780232096462614136471628610107353387313275372828026212814446432908841599712541433030610677661934541713358639691430446775853170292874723446711997907935221241123334395154152575694283793284754093638126324817781655911297470173415038790124685073259681813366171391718539196221024150184281607126524536196747442701652185883926238537249400826457992033805201025255885583579427136636144577919156783061872121609079894768724450973034026583011202923374594017616134799385348946296528349200662476400680261642933813796945747519589647365071594740862182588762706073909722726576261096982876431537837298295486141525872814592671648045990957541004745082681263323204985740079889109211476226915032481348001617452019148770587626203708738629807723251038532912706217952865752061591188266935613006281144897867691851648247768414441101849912784367675424932430537804567566889845943738952063658076191654994355965110527170958334750166481173393846025129739334338712238539769505886654946842994534085302658216981564973604872309217638856006628563873471350580397483054214868602066457076897696048105814565747463915516213464313723148235201518717560824605439754927043860667686644902861186630776779416516148242751064206424704572921534510687571359850052116394152575142206120840239769905294652082928734484618678210398497181844852457937374597188062903355325102434790772334946303218748150370915231013460377103228792739230722426524959801533828203427704673584586744590975606585814593607757539129041741946843639743075712689869622079893931606716627735769722034301356724703903999986426333180466942192742870969942346723787521197077237510159034413566937716696155189919962492559013180664628862573732948126210270840676817389944154656459335848608345868007640181063144891740253771813568911687235055758078030697687709367405579259211847779486673908318540601684830246489665558634119479610916213605496980416480572640926907615756703412998363079543664491806503978961310008154251849530897077715238817240741552068303400425251624593024687219263188826647984449621014064199302018058766181721053160147330537659448162711420808598208986095806234212774601466855885662035357814075225764204578714211843870971621189814382011561374466472946889872314135830460568620933122047721019109331581592759731379194182341088063168784882709291701516802256936302283920315115227584325228480367525264994210109802610490831636312452307251574879725849867825872062132150346940514623849582475279708620777636175113339505322473159746460122809269673173365443132179698954819630702478278143755767179947372701276052294129242726845553583877704410618942924863182489735675798213518834552039736272011092607036157886161833618927208878844372346882464850745161085612050363958659381022863757064055220713217318610817802525235799297681394586382045549585722805544097018029807493097420884552756493075941260023166487456340959865035869671447270953813429109817026751699143755330654416237219483474468460534047897024439817157446327589068658996113313515903151991021218319167764929235417789407575105308155740893829328941124920681895419642516589214262117954220067883933069624484503489701621306710321413945984268084846466027633290771967084100265217943089159595820129149297926593798298478877225976621790612557613879190497145970363405376751622900852945787532670201557864905031965970972455228151085066209306118564498271785172679134512985297686866633167250768211331890509014037357902159836441328015715560772338938944534868597837394418217339698388962706767631699522270584532941514090228922230915208107961930222275699906181678311663864110414679389763434659474977738221940629133311053574333277829469646406928511082962428598745172541051189453913451850379555324684949387554137311187386487292479562406003611542340948483240004341076103556536419274994279935583182470494118089982093905875149270732138032272170849448076312999482783270003071251228932815045817224490525295024433433919089425503329834867456045137149361897898302907915120440070417292779642622366295958024862854789782791864303853809315594224950265460580937411478285328834850589960842485809228279335846888581111117416521773766535734203718063951537295763530444899092258961162253040864571979930291824865433361297693543062576534862937821405141775403565549096212485840857212159611461437271892518254265728840436795732835143461547878060249878625286513512372947491627300723850653634854273739211518798155264374324095271147465304111202255965792428354305814374720807840393360120339071614848423801719964961409754474334295792108801485303725148171468678454698017337993899936941301537003368532381980917284169337604229090216809763164895825672595469094725275206060494332379190219200464240695494380364756415987158834803486022618697971639112458093801307446038310275849882179769479217941488513097461233818360688386590447987161992359142976891580941169836878394498959281525141818477100883290484602476151117947361644545718403807382636159867646099015795972241500518535543956178394494791690890671329703525362924912228597217825216886965769107123470127341040916225803674993964359720318409437613032802606948466229371885532984611340342804710618519288338528477115285967241212256407624390599675920046017737444827296525469148110681120939574457644356299581177981455528985946499043846612055617643124299864114796514557114406756656026239624487210019203662221755650827030116122128168179632279367805488154375900215389772581073915537238955163144117253148538265848262566761801333518897265715800388675771844608951887155312831430062830307983650192914311219259193665869391766077665149480465525686601105180625253141127735758099179096051258869186945305950764534873750453588162522175267044211283755826641768971130064422563963698102299017193711734200246906365446466964653567003806405659395616675396872890973342497028680311613895456284099901686995512965015636473904526769194301368438881856073441950624282836969475246822633039731672432450760949599607221349383743675336281641259419267623293135739539907099470662466711324538155243884667237163043209101294101375486857214901017071229547811553508316996175581272100836596815935473236493521348466788929377201587402429274260338928535521973045710665630491204461383680766947248385477437431075719070670842862797554696922867921422160390834746503671552958359704776929519127161358941583252281313382731221619918525734872669189396217625622663235282432545933266140726479097366456431485346649580273164959394383929529532418371017706796058758942567426437621049903257725484263214963523805502599076311872058018496044030934306044994905787000489641886685981020859197911929286912635338234020304209009585405166546216601319965283853627401410920640026953028313059337926766116966509068095465843211596573048543025512543989993077964570058093619192173059992884327794553726730555149415041954691242944455483615905567024619407658539756050706528502964474943133934241767144738098670597899967177608038147847993283905807039318661351948501480150553516896193179097873929955641688700775560430231136554460262576884962172630788818176672431738087745869864477934635416094176796366525178159850275987356894027675357742039135002873300566496800903872354657697530045920915203712232476805029141145186091693163719691745212077875546679817502073803031167475427921302910443896305740458221584335956631030894660690793256386603263144197686903321170151588754525761284589708701317932908601430362075189937887288921180655498346425425418329642449933521568196877518870845446425844567836650567273534252411045837755587138867674995547954248298185828281471939455802609957904294408657383531947199185959353334840182362995993628967739347691734868233829618710557646538692202379543292946072647087296038944677177477598435148245935838440762646237643251821264707169537000660664727405868951421261468176812376808791964220023762311538435156399924807471288170682442794405831609979219123456449065234696661013605864326404084796648841088647599215812441605436337968900474649830001100550366349340573543696148297249469341964592063530165355347406841515283659592824953311122357582862040847175067897835916503481625298580715341212898693373965889868990060232843190788448231736926206859091259897706670787704750192882880314406632785943739642636893038821806638316455167117500466527972498826411364377395577734722512110318790973545818840586213526910875447940740729002417797440079200850159231448369136224966965185080510841231893065763493497380478599721164678558081603025456585516997711602431612086059489926495053289058321214388740682102309424040025541810578976336343003655860218798079261580473556949204693560251870969775985826835087224264178477176429117269115563206892249098276864967970005371711410250629754531288218380144491077834938979132978631849152740432107335360689662807990244335189287300648902263217086373890441709561133556051633184704853154494919586051973219679593508513472145111062134117193209677971532838945335196497964479745691019496658820480932835188978252847465139710183888547490386539177938228646344970214882141653870734976282022770021633017599408190923848850240141700003175273412967076621154721044909563221513366487586409981362581524248528992755282968316230898560515021169830259901948757054160833418808185441208332007484378600137416246619333029593649427098593927486520185011644476280169437064462503791943219595311344946350885692369694690924463770248016260584910560700110029031733322758518213364064769178214148894204535890755218842494796055748158179750056909151722123042105458891211387602622158669369266602824901855045851894652394182362435041884881994231170761709335138950466249291940346192654210933212548704882492517477547395661351856428993095557156369445792022256983696018156076408080117016085403048606859945688691815366478845830949503359569611283430387691731489605633158035147910651877234309089087136562948732934126013956505183649346283213183562264418958878662489930282748856916900121386143804149948653833824314827969467998766928027184027853583315234342612368156714880672586977903457477222358432350467401380026918626878634146795737162676857172756692798589943244961355104014654928742620956856154679494623309971295451285447308941322515385768838983263129776256905338822226552274006057525535145476100152428944228591393509605698581152063590693724513073400330007040900208293952098523498818263947847790073513072700660734898936030235780915006605013935495812300150191326716125614371541386492212297774582643922098135882343134470771785731513963618169012330327251533821771548548685265037194234255657514746074039799607299307617527401920795450350761697681557073912131789970844514393122639228397106831488921329037136977852103419676770313065848547340832700355296640942392406067462511760464970041434908480551180241383732623260896057690881304151667577013180823350062728683247323620649175748108595192247211766099410539844566124873340600173272112511024026132578974624579834194226960696919981309110245781371014891393895002849680521298156171370057407693961123450954534918727252843852332004437976468156660734140171616787715478143472791245953534153367235924193439354217262023010430997348526105505858190164648353889769594746957503028276163103699043154084023921720623662690474953159241873789712929065618739188143487448811255743356670506599049608955642594869033693443187998149959210892629494636377307505056422467872060392837837212453879656553867328138091896858002052149999187489348475414957033384585892628553793573766939732149369161041132477054575894449410932232896689976296872071066916735325428386839558142637635285900904292401048003524118815579315384768833204047899972720984658485470250183180772952374098322703150824175643072357055051714657516334758221042131255532586921972655152453708048860426080200779866362800528898326521879811487337391517884602899158256332805782680570415382980763746609013503497736157164105638092348643175397749934028490129368086931910453055619884476021670645494720222658104781217366847422070174692732355371850702054214157589321199857595623370992210808592078428514507420862624383036930249406673235644826001869592013269054031203711561528709228612737119697676137964558986360705124496100849805409668312427409745712251570353865432179922626713763557375029940991174489600199207336468125803436522140395654318901475005849000120320365004426249932815843008054174721430696491936888029870337673055636119014029164143325584167399694582121166570943824711456664315156809823911352051855149114814073593717231005342663031108138697092205795468875354726091444009334305423260491168011498796521180405383864434330233937136606291713059072938987325972953806217477222659908180531969760194395069833611939197725620941359757187115714382435452974063476913621384635568806532230237393449515340433261961747822645243894433947378756200334522588793760632822642082955005936945218104724051388754945024485076640577981431197824765208325675439710527905885429267660485348409832901939281620337822852748327490869943026868439096143892357614865832409361126202286664225871679520346085420989676731206584805538736109341542859386864547603267297963536124878467146763981254624549819048572323453489971225894388842459151853814477042375100089631664708638735421676407342279520097227238218929367015064363545779647034025898447207088406895049821590628615270569331312417039267580682375239276451263073989903222802188199520424826673675759171857123284147661535077826232425079150424595888215690037856425643798302076269363222080879396214379560669811108203017014440585662845211450619681287752544000264137810032035449763118847338404189070151003227350232882501619552598460212600616731585442630116235971001423514459580816547223439124909229644376743690775132253068880882633364873629353543575469640325983059530652301541369629543444457010926511748366508048053484222539533448306211448727929514118464422661290157696676821764949509520343123815226365887679083739592101009221032055848642447917733594808128527137012685257831197437930635829376946933013558953619155662877858689912587832163310034964023967846605218550310279813970776569965377564171123121382005753014397386697780016672693193115430434849570118266433864377510577342239259034028390453676751252544026740045903865486391355761975260446498543430409344751334330141793292222622248020994454134241087885394072395646049702995704211958974022309763865406028387551241475051857343335629174018422826632886777484001316198118972958204331250305591505400548516474588311194922707442769306947965121464409820771432262753673912191057559475276046405811208957410118675596004095435223981637371823279220562743669175010058972401437214347377986681993128526483040342304759233111259588954574642748569191747141256134609585917134644103044229349728301643226756958947422211107850981379952232740367718451165671361292036669910758596873224749845558462257358234646772684860840353216054316651029530369896538070657065489357629261298537771620366803329526099957004558452784022379584083663313576809235054315363841072042400206704114997732293023200799100741573661056170469749369448311685005302119375969646749880330846972239968044049469066669545823253841138704122043589567762762672915648032468525319574928148035531545665039299048010957764281570887773865035270153689989716500998263972215444704059041933929897881190326807067080836017565751694976579443816986042348189309148902665635355842037471253560292052742347307214889343033452751560250631326165577401967210282163770688768299237817163993895446704364998444521057223022267101158449497927842727996808380436226744207196018497173831037495030340999393655976717242390862233862573518106897253875010613342668805027496787163453683933212741670773094859825189823557132038269272184812521695393598556641516793587045727898106577577175746050716638556055022424016607591894542830722692381804045861525321257769852475474963743299856856808990020402528608952187918120145761177056031796127207449839968557731276824223357179021143300660103621962107220491863633362497029098104021606754813652213769351329147670661334995708609101969636738647301140378763406246355610417960369603322411933242775481263099270091552465742596996121534251184141405235497044254005289223956454698776689673886143846757445244778459618245942566698530749158737202473681809847314923611353440887750576456805945201992099700056150280593229647771295606732018920713183264616285472525713932434009721159458746689883918222697798456539027378610406065442330350983448744610635010202976276417377203576341944535765189748374151764124298495428068149741001755751532797178610915330411389960447503355200139770681651297401198243071747420691332895681491006320561183387743311320625887761365421814845803976235999706998681546106310409325162748352839777412065252794032968949334553861429000862568796748930049590059891478902699097207268578243030357504546583891371172206556467547870252543261995475323081610773326286581753027461289686332104550681673683512744264008986055548247754722780679667610749303614857466906104093512544295427693613329061189211801125711118921968356100691883219176193073644076742318378180774995078204508429395670780638690560303817664528820756452286056120064152950502917766378993243663992767588593893462750542940958490463984363724308573884073131853021955710651612099468507952561759499026313238029652547850243201402167434093918905077834855804189305688483671012341630772023537778343837655412096173180394243619267878847301499852749225286169764284725260609452258846828171233258808997296023413430566109282184684237969243423588202808562149753846858691069376239963836452906597752659058680150267558626161339099471629786653672718592224281336298725050261576558454838107818219721154003308671356482390197606222493459621543627213701732251875744489760048535139414529186684444659512494617924749837112487773315448919823255657570041307173010439279658341623782734196669005547295240453728950580738308117364197828040955594224975138860292050116225929644347123639683346726474409197743311220008007440910836523439538416984123426264531258779876588288814226936840119848352812090869361582607997936833130257951167972827956669892517529527669378132510841993023827463288730867925633381585848652020772322739186834697542982530054965494480755213215224372346679542778374405278232549512849070080261229908427306591039327141776906366380933786147900713969068919790512317197255787797353131764821109948210345571810977520122599600629814643418454467783147170828979589335860058054400062060470893342591533445396246220143243261698600208676908181086946304998079598352846378540287978686646885637480463657649646974652059104111703387643633244741382736759637349705731707869407617894665299638204996631521629857304966828427485126900777751889461808558631971830540697139781504434707613815055200094040882933444072156199382543933033890912111000546781611810186395493112437321936300299622879654826618752827123413524784347192016441700667573868829561912463763411989720304082018667528452959990316275665337368384355099658558581534768655062125651482046245085357396824187844333184459962669237954126206096631665991369593551998966828732894561853991378232407895905238561444503106935922669617537806980231429106184458854408545308146115431867717845713853023473939815860734058820138292615765866107832491187058972018401053537249341079529139952066358910296628382443299946910720465321274157677499347000614977806576452686936095791276260939565828873453700135713662861473738432161999014348206025336803968187324728213850657673140078670104352810005947905625005507768412830174031594893008207072986555380798707877481883665776093869011318460423049798101407318562624291016847953923534552528638304332380731207041307664946589018827844734605984527934552620872472167455136427976684961919767305670049211542860241854490591905088571965043046891688524247217910181073391372295697935262138878056363937359959270237174033015402885842188210967524051587686551147705673211848045713596884713226492869546307376275910019298370506789697578055154997867320439523118227377732088339985122032934116855169567260671751527072252002373715656000202004276749904097653728378939475149703875024669743682124492350265904552750647325713372258000607413792004296532140284752535201548147337719707255934100455505548175844187305949029127840047836307489235047969904169012382189228003826950484963865355783259848785344679836282283432904579468186874134402614115118709182471852781326673164394233017073179199528585204477074135853090048426307362578934489421674413978275396700417053650990064994685515081920890783293919477709013742459079438508216364840901005214507391677424491422774153146752920371449360453351201420678858531794903322754192498181289955804401406358768128264093066152950891468588595697504779492081432844329609274374247688428734903689148747058449323208780407797362469538359413345282380590108506159345519004515807088690978916189063306391821292605674470683327120534250102802327605088992750954833380996548163536301648738896998418988512933753104221596281885447763087849770585072164528438302621548852958241189139616605691305996432505026222326196906295426788576749567533059023846351571014475452342916153553038011441625595090631674647994004283318069675703676090884045049244525204701975428912495556332456790745035490521379574340645890915398758531513007212385432544410626049029862032111442873944027303034268507743433053586662054924312772889656851480910824406574119067059028181845688985759434023265327401288115458012085359285292883625833868915240840105562518141479669658691620057703367457806538950351864268250286289782673812494068577732072153885375686929222851250153172148772231242144067907018276951879400811915115829310092254950015877448433128103096485366295664225363556118562836490168651314821272822533313649109186394625813249941394698381817512445217801325960412612608456364928546206118066971373382194880797353255125992428600856020268364954424365270732198474596847164126667932139612908965179369167510083097482858455101706939311112545138789636125008592789369544213979652247384817240662952976438120904416416707336433642328311022435255591088789333144340427279493625275663573229232398899771363412205377090346009196446652716845788624291087521489045053711727380144845040440366943131882157567607466775509319424952865819506432150199817235666642155738244800368667697452261694890994750872308579184049797111286195965126246334214169134365487078903076064962136342047742664025368091677193348131193432672972850920875587301161640573521841322798184900635374263376168903614460348184093895028256563833539221230783214344756352442361390982845687751362107438217704571506243404080452794117068525324422577267717352947176351614855787271134329678650333467050158377871654879156563229463280492052301946639533034858198454344508262711510023917091291497159168544242207320848831807778729510900691694307980915988283456246693027570422206030240309830977177312910163778060845030866065941569070443291282048816689482127526821641224654619335120415353527804635296148417782880731486661206104601941055100760166723043348426659953975440298030062749350965435077303292338788522916865291377755302520542573432482355069599980806481833696432878524390131007765757971347777940602562017715965979833464407774432094380333896068202122124776719109751419092998976054362605235440020248862601463631173144882971567647804754691890797872168395595607611229292302173741642235108331063360303121224087171436426751354849681313960489246738620934880835027236441977024624510751369886405801936635281436651738224414300291004718467798982217132545697748637471964491791842897491196533968653805184584667284793872437113392577071274615304336209061294948099844155757261951730035170414575401356552547902985506311106198561100916993711686039671006596320348379944947052491553146612116744277819337201144109775104856084229853733716542735290323214215933044165961989145863738984440646537035597744001019077999695204636722053515185372338973595021551107157964040712001045908974292847996115607257447449795188147825255634451218721748195046840287539619336353219316203523185246610815308477315169201340240845218993549494722008709845414654517691032281625140201919973905986415916050739920356320363529625990927557824942237627411272027219637678252262649858180296032135827002169845247071025763903646474691687860817566808987116292225658411701206792432898328532072473027714766131281685799477006087543377247549147445390098718506034068040291056968914326691435121153374212359646548759637103285076139121550366732980822571755217947017929588875520036501569218730363033506278409135330623614407852129964845551583697147423895980522355170664447385047880594596000376791795694391023745486792737768465322357250033281713272551503933010802069458079389106315649654026979932154365486050613540061393001079424232370842757960012947532476957654226123275727388935666631151853442687234653369212304513198144038447997299260016330091756332539993849978037862740199264188969137408009728242934847996088489334591257374595781705567165375464880160049074693031226572301319505011468289872136946106834306180213017710789552366747453206225576207646351158104439583881015175968950163245464355152127958678844943866671689986940388918130448197901019265809815593933263495659435283901796083265345551230843941956131321633993629050335514944986666105688391307908678188630653436056017234361712886340029714116390746652150545608493019897609365054157813031865087057021050325789309289157327069240160867663732218475908805022868241020172716822961142712697824651752334589769348169914074217590975282215123820503868026350408774590891728074797101521674177475068639459178799534919269597297256592998527969804878121471407776779656429859148554410051983646161245181842105394806153116191431549457179875926537135715896874224974283863311939925262525731995040457178747274251630666723467968410842820826469506579275584919563501388554677890173493890504488218783181199913329309167679117142432179210149553829072081145533858457217210242419850241587412095104031748402031482618826817323988434205110806392645561018583184326916398477732688398907947342054600423632314538661905518169278713371497747178578870910045309145566647613412243358093230292427382843266933945021208585093632530682460815455993003520756969575485984640578130591345602532801986906666692729810829732033767974413129176500658488930674999313067322234724155492431495265152558075394605674600830719215563857910544186880390468334972116877857104134792487084191087545671817104667012345700892537892246423839163459176877590022674214542908471580153148637044972574490089850580193552501150825324012890761672808586084000816509001553308518602962933837248214878727642390444656377352092020012043675067365066290185195638318732705352338352683800216531993696029985179729455267402834436738264393993741510129240917089352016467665748675221506061721792505095314642690181082718430738613845059191425851107345371487440543346956819344341489145380628165150927505508876333597465801126494131669518322258646462326351359246103707080670726821695548231394174441776254216455254126167850520660833081465385391521215258001346361223062503388032405896018567386962250668405344458534545924292403059880458859047006670780241595434736760314081385187850992968510588436143728255777909331042725560868889192990206715704585886540071347803247621343051128073993771476315150799820607685357213366751128494697363060059670276221370287689410001488328510681577160854573167535784318985047856552854865056109496770744339055942323398299578778766202628509150806324135875259764297086516185313708395679218941049053299621316957048671890800259308292514849511386615724292401730420156458647306927945163700682556073647435547210115887393802450493015322869764303044333184005824237862963215749622811952906057901784942345012530585355427018288670514478379235140114570483430143068832436582750841317676524243544382194879558819444506363626986710661528722611631083073721889613638911563407798021662753756452050439753232030700167961155272245520424321049931067303708538895166868910538502960125752609767277602068318609127459314139199740010589269262818919518307472380907860434160860972440093892360731766350917189322872394647432869585994431194177533573132894066346369430393387721120798064435660993075122299830506114986676774459642959112770603963571763118024350601068605769963255250867214836674033532017189868493467739607080346231342903769004044680531925560197470491060252794220172171807367189143233557579446312763304838793092428081279177308978079270005049862489985359804950074083448176268027679416782975475994963434046726397146559585230160016062532887552892485911347030545811056113199958726521708008933314844249992239961099355302947532322407848749305016774494202989092041884609548245281076362398922793407642917974987407190458821299470106164721238761691987429486137655955787393953472417901609628408041691303239708632924951477771522147950336459435300936313831706536437747624462606397839445781604397056469422874625322533781998332080686038088089267790228115801281535270638590618073814398740575798605006814223215283884366037454251253663731272530449458137239855867788651315735828806115635255329937548691927050416257919916359216456434288212707317463503894309001598581861557494867548498324630152718459554817582080228467579922976741926641351737943831240290279916101092585291154513019747520096498346384300825483651512759187964389841949872805804225660358453942863617211521276202833918617710362961015316060852300589641451360648850186321464127835938606661625204250167920281041528512004059648767238755461189842146226772055826312574702400592145329700877580952749609790809548275844720176201540380429834878508376136369929545695568041145376525571820044144817472274954579427697718539584730148053868510604402852422178908033181521064006700344917327532510746676569433418400020873497665972673265901581061259838373809349755773383396309957628299482690811451662362631962582833251742702492155327208993224482386254949989933776593716311464390371077839861170911955263170375831642588148796130947312913167465615905382430166362960024143932330544329406602997462795931961293997745184165046713865741182715875914657917744650183995100102780029653505160204686621365843038603532123883967602102304444074688585703494903359670211659278382712809187739545095228477149490156047551277920478365510576577974999713548702326250061929231061703366445985089340523995948148207221844268352543010480896901964788519076121310652856641474036445172653726077980178134307775625206776373056998374871177219465185941569564102829584515092801520091464224620952668916061637134321592606756670286981441518070657253811132609062902034053933719878497991045120723014510848446618995276215200697392436630178102762454431977267836131524899837848666040597473622515053361384130374096867658005506693632064660362543819193140359348262095998701968347179005469435946860089563916521464295345851443739102691189695657424053552147322722044159078610231186075518921636870519358407057108926201476338082280304072477210166954165786687533485591047676933602541622303994050097368905476600472169952095649096906330080095146913543089190503849076941907371232969556693171451458555483645951409179340370921870450140907889639434502593734668351520951394229339356041055632701475223334727003520102807449049718691654352020086211894727484346095995813010440017761147886416927902256533972944924828186583466130487882608563346189483904734081883181728021261918464326076903407214051952793742973290148598144459610982445620867915507451901768583933526263254527889258300023871898816340642024808394917655517460269237036314851393565356185092709694429203974581450617456280876643776278634876922401105920681959027018225608962470866329447984648350745590106895786507263383195277362773048746029395253102473074592807246048483525482324627923965044682234283858444771567583469633341033761636134020590554745404595605876360283796429365257060358778404161602915522749032530725556301077702135020949194322190312934510068656684479069580223882066367636731169997857963319953507585147446524912877975697333397774321648698639351878019616621533218598332373124604259911468344276990326663759020155959471831942802710398202780231958305727627024784571980209932064358917503088835053764109043703141765668224860435732205103552837268799954441848305434647122671971700614614687297419234324552832563557320552361880983141650431614356459441247129965350891863648812255867957409889941016758071104393048721970170118914965465867281601306455788072374097394052676609738459061702082486858794486500781833158692493213606725694337422827230822830488243678321529172419339341029782885058635141538843003429917329783978595510602195613640306324272479575656115815859940598695339991542789852437232528274669338512910019882358573653046561985079662777913592504487402216735482852385640777113158101030381714040292291458400874459241520094929326076092687790365818232123203432826168990836464129999246198004916304254759558992873410523150971506020227167098782629874422714974233595397860005405586077712817232033102612609409996242594529585191943912277697777853828419393897274464650679281796730364203052770986099443448503435730402033370429421825556600829652156199056461443491059561852304775148950238529270404336503934120663854780067281266510326328307143053499368014096645334718616293849816679208411677128765714979885304757762189710822359908737901804515322252648053993286442036678781486783840826548071135492920538431330630660152039086233902949248365382379117805559370986310172219274218243510853574430435289229191500294343663815067447054697147352251697062585401744448743627502949438895599730385289384183448580684834433776175180199061331805663429479590211405142077117986760028425053701281349948830593528388543226269931598028835790884383202212006506480535760404075679593016779363728049930077051714225498104095633339910009827294926526279689599129312995035640067356802860571239013715630195002198090567773790522625792363463369719816467193508985475071676869540326415107008933774506468936047960548828657510091052471216479539369236374586854904894933548053079972356428768239743869532564301925949408168963678526230336459853307181980292897864324993589122963527312270831827796870419317993717496478150632100627291749836456293906027832473564472087683470201426244429772096352021530276905420739837955704268003000622285504086091827487813726950905418818293070324044335625181336963598173418256968071802758066759383117197589483539540037227343945274029275665509526701761328219374031921208402249966641636204945958168454067602515235082428932783109584102151098432212594688169700328322582857080704834512227618521822413066061316573302360521523708588902764485281522507464508151283788223444009880198567561160676512198523919560666088273140343938132816131257982558703226781527813957708420373461905737494617200804112985194354629132017854227798973178517764832400405014411172201044682537486167782457256528829279420070193716739937259087389188757321235979469917243572577376839776145033937620946290519543150748687476984248080738947216569743195872548143447300229828480219409942620130396910001731460287478107207065584480018352593356276625552424100733981559784733485172185384010059675146910911415955277261775595172444154986772562128482781582791733075222675594387061078718156038596387087007135800096846507633720618989479429711226037049136538653484437308418562127364404914513330130057397738116094849100722748825679819673325994654282571791681420854174181966128521223090479726696815750868549428075195432224912304542272866435293228553428822278644411905419178383138164411180103047832381983263487162337027741854874237126931013201258808152635807142848297352196612336425889313246235072835260270028446233660115827080637052759970466275524186031155579078774445226491172910916445949279742847698279178100228494460876582075649656709057290672243030647045704452607325771831032121026283317650845867677388411210147703107153698910166532774587953549550178000129155528252763642319551928304192650517273068968205138236175865585082123023385917727645754745484089250337805588195252883130105405939278504918565418639698042985280049903571582621678509957563884585742277021181193466747713950224638931096880155503351068277285959605017732409726021434955614278264428408955642546581958555316935260256173461402536816814067267579009236433624555160955124996961398246589703639699917497892040808442793158746790776057846975161193111915829746687938019471038193361232228791716971624154167213433604600335687683265765124547912730927343814107209918223245154558121682107381533580189060457798022748269877398221902454579299920679128164141354157879074465953390691612294462525098629493430244228762391071797412934186437557389566759211350794372602286462123255108240481565001836465068154893235064283493157325062251142694205756813241956889300177642707528612181241568836014414540237022826471227918379925709004522764500402600915872297474757767501188998588630521175907075720685860544680766878764037012260614308766633654933474942517968904193812798467924555921751556673915426412036497726407296785047616819073251007719104836691892643996910906351096534464684697702124472941036018668343936221839648025711727617397940056505439603674749665888575398076038107180890357693999699789087191792104885815046543507633885246875706211730529582103713284247700760517298078207030586872796615906776644066212330283442228421360460342862375197419064440657160198747620588736103805453670276076756843878738082603374358417414809041092128054811406137287975599357936485340136157068525123510135302446551586840896852086610793970668878508064087831000686980997180966445569483919213044139200066330260211329918872755670184759735145366822193738027073227738430304537821635929781209904728639244158620944464068809008749579154126503249385815300418322986779941466548654082323639716867861020007553959703171660750130138518430575830317587171648251241728988037886489955977838931260582462627822906727931755067629371007552411384958049672041797229068305548609033933682486977885776941851259268279402737245765759052064427378237926236472962081298879844488408399124484527276126590326820396817362526943165533570463188086204489053944839840783161227502768852368903616703530876429587305249969960706767734044038619733118057256811008656014468610686107711517184758611567815084798647036893338320015631090967410154033066775705151982663468926667208871710411797394346251039951439591047608593331100088301580821235734519297236269062036280275418467447760862916439514408963475791745528174417198074600980559222669003100601904139568765975706525415194361766292055723591365426279786757406549554816317929743291576560248647725738888860259137706638111080917612096933105809880186273189439223621440323350253388172083909956129993131225851619809121269578002681242951227062608658158951486066772123939332715447693075343009002221720767564037116183331932955710257963306570106537732491755861090511876223163856467974243067395524307810766840600277484751748477660176770686782169416964037047915589166014915981648656548988442452272406542734627786139532339663379333647283454020042415420219110354563740720618325249798552819998482782544503443836723256018853477085094081568054403645510437685614160489955440519806614093587747455656728044963927536676107690279768398457281645344093718022303613014753402135992751507855688406268522904249750986768727225309206161410224705402958143858390021477807828127981079765351836984174393776992495408545655668386773495747143607761162415626372889710231941015598200461588557522941459267782035364381099582549021344928278106183442229614544727693209380096670023800627523410640535007344832444063223623218053157115818607268283216689028887469386770799913619869670815285033519197152859740886357606181804236940359885450260215827851462252748112596714464204072355293148471398569084979433391329433904717934359878217239979491874203240380631383169196945634467657129943497502359356009982802165623636713322611393873146166166647004080204294074557435236888529916416308473383508580871875627022674901115318107884342197283009776635187621186558389475833797248087497170596644773555181568615814529267520908884037184255564241754114191792786479941821866036199222139520018267811267601452545717021939148338357628489500585234559387455550176952738086294852256873383025538742457372881950243285049417019074007413231278946569462867434827544686822205015752694323945879226508470643769362420856812226027968748682415055838296596026469182735155185295571856755765612055848710732918440690436761723051052846430302914940095624707498464977468735117287700738174632123156436510242082361308915778231254165265257780104276089451203009665465285390075085359039002213962199171796956434335801829899363103876830712892134537839951734740165025497193128594787533234219310147061472408649911892679098414391516985340829865062735077300098345073464828248024949718485618049610387092749341099189623562159723302411680865306821946616744838742308650310658187734336379478265625960013925376152530145735488501508562006966089819735540007919183777202016902351718935343585277796912559772798175581860478927332097577083500617953491548284738767889278789611475522361120535333366269376031156976433735151844812241981139731160869480482885073499033739838950658198123519068150966862698506082197591819502944384376891238984182980124914360885341122795915296126339874896983558964280435429423074781173051662449709658337465569848211686261973575532934275081334064913788519806269312484301774337618982272820027065070789322480131921046581037147163953540163605441933428957719133264402649170009467224071007974572257061667428409704029221035205831175790790647788267286078288597314916039155860749889647351294405880885736731837643059221554663635676414476569521868507734927721823888993885108145291842090498448722278961986460166793508306619153704341600769918170269053344537961666501661157674801438169976518679726435140397406540381221964159622129311020320194669735593319590138077661884306928418964139307627889493683262970484086601425792767133524128042659562169211854772491081254745552105291732817013363552510194647291555232194649059382105073184621558475908008485818289170391838543305520129160513984719663079966401356382487973795012200652658798337218014261327631032940740349197481230949430058937667407257134128955369693747065786890142050476535759024361626412208140142344250955207513457116349907389188646687075832721073914698767143994235459416822920168569553429801813438663572147863377771600788575057505222919424349689232869434038375550485585010094526461149329481299583362737226424620048979820146791523818323116839620544179658294411675994908155930653779319596983921613575014662807538104058716318850295248991774270140603919493455761936066594122450580461865513728320400142787418640558316084082908968713201468674732661340174610310148385629480034799924265529114067686737037241434288988535361138353561677247741757528348398307826994824428630289002343566825357548881813415212395974350201126660679385936382535691477632247814140461673332850295593170587986644701666284570011326658042464104358862608647696416523550331135899533076603075424594550811636825091797407556468173542711445044313585477436507185566136786594575595307276617639304629486437876992449010370852069588246610491375602430807558898981271423238148090036374784329884918648053638259859843772436797910879670759353459832676603147469584666503932824964711808469868270512322708666051732791870364859771530469360667121493290780720128763415346800472261019713626676476911866691983267385060190783691839737911298610940075083394744482302908853235088503412008385194631200531837197865931991432694365751142817943608271808092248000327932164947499231508695646940513388757761814902325431943099831345335555919643457737413836821382311073968659981867397350613231461215314059535862322498894388373309355699008467481370651222297361487679346995364971421947043536553883640182897763055383448307218118946421596911186609437035297291669707222447284472548349462298111820413469435012838320493183014562354168365435875021886488718448482301628331108939662756249906138349485686506960307278759627057728869083202517310436892525501473091832864060503257579287489939219551497137498825988745860008714479903600187194809467752897310665331495335738216621021171479438147907797002284580033646280703326400874409152067573755598088849921570196078471666709521852213891322442056356332706081626888314335502370304413244250417043098719117104329219461153936685637039637299063096631571290306783124434276239417127802989635421749159962485935960151148838836299849309361975181175076902060848321622000234612806963613181321301166781828515162319983209512894571038849869930941712731965077836681020861937289705226626465747091735007610699101256251067709256788419127342882335168385369720115599421191062600306448361523334654352493410612392735988883785826617608857691628182423790600738624783617276475308704065809243132334837064994756137608221525637019049638399573128888988076431171375556934278494173640084074470103260323666873408507829485542311041301001283437533220152228548993950481120864133161048433119226361864967555371692801305942303158766467144851463536644891491433795636466251222419251314272671437389481160711695782759380090497548495142902903316536699582406187942895722792665540581289511427939373564040368577121352337538875764775140328132019503651024103889362000130951677032971475201004805209498764351320137127895119622129546042584582791158346572177801987999805711289835328813117474339976237545273654280167905311677490639685711367166634657300654104443783806866266984196002608153807356363810914499987513036002091247338317514555922084818252693987568899694810650924679198803641529592938945916927780051504350003639771917506830945553467287901504667675797332919888256781538387048847388587437980611366772294472579499712680679040770372718107404365797291414905111073737179331283924764377955159252409107768073046407662852570044836375041449050540096475444601787430050124516266801554720048077196471326911388017678562534875067820941084089676712344071232504503624249744420629774331225008304497077987644305420153739952412360721593787694886240416029687765127039361694210365075257062195526215673708320905226509188903062288237259775739591406409228534465447544154223718569339964023700190929402074838893172229041405931061169179586707705719425348844637746558097655657014814558042214345662056842531908322238223391232907311314852273984296300327834519267509619452781551989109069416760001813708545362544906056019240916381242342535196059479008122797459235358425564652160164931106404381614116562749948928257322051098070032992690098595905768866124736549125237463950963995711672614669973283463929414271413239496620298010868475662077977211476854972630966937478824454535148717685988775436170694598789480308888036816469491604983810465683648313067946335751253613420715674451758529803758677189916990064346885028022321421358752432575661666415171842573801484635411471074502715498261820310937004382735053266799907560377325448928808404209160681226926706157128017946943924056011855995497721638537356043860751491534301153882243738800354960584390250698494171767948575310448273914156142447505136528107338963103548089619476785492748306237902655645569787481509716172966275900421204326757819595728165804972090117894367265546023309476171266079988392157498585728824606518416233490463337904884837435617309541374832949570131027664518595281070763346502064886575178973082631491851430952863505169296812345302784913593631701578927673458573088463995317920488355783950816174923610179808635077440843317753285129958693015712793629246140486660503755780108640464994530618127874421463005349005605435666738085303210653274755237387877176394609320136675138293226229998358330006772232078152430997430719859706977930431745448857143187986107556183891477276615900715665005242498157436841179669908496857409894264170241100913312499775575875793348652667056896916916763716297730998694171349335161824966653780751177097532304534878716621656904325344065332848283506834652995159567466603742884492524112877570770319215806144306876865862631272316778490002568336605319868503916115258277127656499635907106787490734601172409788584778043602055238488633505469221593443651417449514056910182932920916956880004567948481471774552500557815458349797864846304152208069915157613334386680173124337276399586743642205153332413994620871688674571080056412525420757054702319188583493094175809415800983849310024803331152605980702509896090160064921018186547745200815849967845818237244495602476752224134906730911910923268277522892165062561491017036443911882251000483776622848860260383895830872834157413026414897445969317291918767799706517468169922283206737550564289634124804358758673031010498562418207405108076651053048245127200556203739130306838057262264517376841460123481684450415202343081384965661191891892313916366755586441284870923996951872018745294103037092673704256121675160299410390528816133871095945133139240978028681153468286243740052210377597668353366627080498901273582197649830240552900188326480273907636874856437303671955584619543931452080504552474453146179918975038135087325077422446912787065973926705760380809744461333985133534478409585751354976844456216571168000228635790336134332499766046013886151264308855441671524190489046376652782166774358558431063799318622873647319203950869431805171591824161990556782509383615540759879468493132984651201723754425916926507730244061465398763607700931667256395657878538814246312605812074317216739148004124251012719937154096354952714461516557038661170010812037916598410121938319393329639984479510382257289446883669568311103804480847952288595514486976900721364734582614486839837626774658489371189527673429987741636122770631325556521474559468455682680372434305912038477413192544981695177899772390725691213773823670733464415560184129295183632034583600554489991284711588587221208569778206922094245988707992004572853316292447253183560680884308987412305237507614435115642971869132713892454573810428410192329377260120729686996420861350387628523798712198368142572806628347404164542716297745786765076734768370462805299248032002177320620514805899882049269560241322586164922453881924942763772146504044037405625205066959165824394568479508912424101822988863560195136293850747569459465641879172886356727733398526154771797416334920708867526339740767850649597059335255452798930016585477902576158897155766545500131380255339759138365735284199611898254128923059642209709147048250132637043789365801768329029104884623840195498223488117362288029823049647919708694995985678761462937046593773162334648122116842716230426955665931947531390045947994067847348873103091815341709818334247544001591022188094780974494041462953603147830160778288705648957227046650667210113794092368051651819939581289509510576987609203805927216068260701212325227255817885423502460771475780458599450150134479002458036981092878125915682774477528895353948789734367567891743335442480767290223243355565827171501448482582339429497692558274056349753255704579276690456746907192824062996437239944265050786650670034570334949286382557562323944993952012161459298719152829113373586105546439601284394907266471636564736339931939448850172256043403088905529183449716469635586391041549667879634025981494369992594883700276108104984726335640249265139491150178762235420396250739617913785312229993345821916388523484572439897570846207453256727983701460651805165805183511793087799130806757437468481048973461955333351058344712725868980642120914940258168699643336523362737145291245164439662013144651627733963087208271295418312708034408121772790102741673123228131751732237010302853027615486286736417242039585619402305033553631750727939688455574232855628438143389601916976285252696110928077055768037192247234502478838911815405241387348868901379531442457054929145703817511629466192314096164698554173749179112457860679531472988245918117816430130048616336730879500819153412534123391585181686507650432037966257038046487701655827287208577041960254261861709553900296819985168154764059376523637057283303283290823206096603645313775262122357836388684132073276971094601581239282530095985696778941203963599533625924581562694040750616897362163299565580437138917157820114417781078002247426262601014740524713392425340291530678396640565440066497912029593607961343951017854611204884471107934020823117031515626665937865252596082485606392347950704396009197330714340016437634388316766680669869911584280159272952536828702523630751571326537293889058327410027535442148190490615873149917345157842325226905949722440650358537409093791393241570103503190430617368502124194052323706193134633350369970634636584178788670174810352039261324637455530889620249319121683008961449484651193166750819167754932348916531037841441034730872293216440092030850390867585959171576781696626742166142848381310826076130948329567706561018651036166987918984114792199565271606219492846111532548263323402062604471621823477356852730480496617080849179295354945952949239912207062231457216562052913046446664283090880756852579829434988592049056674193626329952553541479846977266338832472622465780080782204618984520489509665346735638300258955682346491920870963485952033614514434488224423013894386432043229441889723173503025211139748870225888678586252709077478529691992793810937411376688311041119335509069584215293063507965743562623941976811049061917485326197915790418528277106868359166693021611454985472836292635183344582332519203582272930731824511875650317652591229088632741266853128407581013116357532446067938971541046940017234965016618704453012729218737916157414896837450152286376777190841111567701613003720999930035015371632194625516906074735326939479658165101821133505172464066601858090154947778051074608139999452285746349795718625304314822077725864394943858307727773091052374227523741550794547795612367334351178885052366421063071794179841216003677343347802014787824597884087881267051864164084193266313048442481106381540949770626518090175670347370646954367194372914586285353501690317867784343430220362755292853884588312260105671079272978605442897643668901426056784733865389893289897884652629192812352619005863664148037455310356253600013684043296344859906145903340635340253990196869092954767259589396931173410981409010905850206569046186632323445850034608592655829857691275385105515877834955486041771382345341988716436718879453510475741292514445913166012869432817153156416962073525029008552675940196979995430707831085760329359597457898203657126721037825174661465212295464742941477315879252850707413836145482849339753431545183621615999868717410459689163108965890950887967223484489390543208364748480098698467450071478510789505770935243068513640139750003041349649724508648128581362600401055601984683662544488279710805175363867160325561384344998395897776351035398128098231964025387973901774935939897596935822636042747242818282391246953956843508329626683695785826007957388434969003915350897470821885600464903577206183212270706888004473453722962690696920016414542166437375207904540321122322160710949431343795403768210298401961536149520468882889458664074327931261320931598382349390903691894540276728793019749718608873560169932654042057997572998443234487287803348444653350675917507187542485137833808713313373053627506683996179172504485388676215401358823557718483379117062888426424012863124784333831260202248585068130563624784782578555581775263379530467884281508545821342124277157274740447033459838332296625809748710457630175220148345025800686620956932548792784273227047963195150334823211091820409264322791833078847511049598047930568815988112304942030268542232450074569630876575896712565488727210943450107502089054377184762397227704040748899547753084927192703830314030611229913131909665871171415359579966499087533349262559312504784242593943781373341251952818223292698425743815018349506720804061847315998945278901087728606649985345115967200574999177961526213132191891772079927635872749721692407987492788263682698342074890243812759796123772504031128539072479495484790764850489516965453848937525317093530397917134510886983272712615755211239625546649045870887458539189437835179725682440008389352529370570586099326573136333882090607354807023416890989893589745766419165406638981957127638025796758798655009080780340751656702471005342160054655380936063237669786542710359679627170009276018312112183639365754739361991496308386747867497000645703100124625349681201360588289582759527034712016692151560249194627451096663396890643417801942096384605214732438511126547247035419591646999978695253082438256351700849274919098374654260362147328103958121925783786681312859420913011206974402215571926865011092140475551070706655292563596673756964308254199730110636653610049828398826961859468019277620972343931673972574453871357019397005750275038594550701543658211564103111690070584862986041326725393215622165860610380023444765202587603278646813327683044374400273381301152584617000534134178903044947524056590617722644057484642906134133091665569143680924481985835762069261329226893521650788327020261875392710432486057438217854696362916975705003478715808830440698546378686845604737953218405451032451548183137596372333759106038946258445503094830724886355932408083714613411410980782635688641652134067063288886831938236257701106394839601041305800457029730072314355720287255436649860012348735205742279208306932856611953477854532794424571249790416017495761248604095530619373140237662578034940210808625437118967271968041942994772861059372047888443824923605683419141292659810595444757946669118481566827033571260501728129870717269341060915095101018552000977420233658378668464622714680880318546974850710212269913929648941214772040611321265908877064202254263715383937903971201676861294439201229550604562900544545531019168787424136496545220891759642929368386405763231964062179076697857983877865221103997023187310249522585311688507980738060214861491791044560336365828885613248295325655696534042481306239766034159829695665404927442648376924766465958241703172115854082600621577346036231846867333965927776754083777041210518349233927342916701653789588259529456914462526931556857346119427995612543600908414926850134430860950207253808348755509503003592430783341335170195575165665627805665589043119688232781970157847467585434258580249238822796867608581630557844181823826841516038098647138856675343884841675090312440871695062735015039040189073352819524879062217965360598315407484176419688602817783110918067958239509296344446665358771830943885534029363343587009196795778655716461169340463281550825897304502813945331450157261826728851807975542762179727593747438887323794391857515118205861841049908703368840614869897815954112036192341195578934208962711025695418790077841740205054155763250196378859351530087264903318220083183976286455862247782757828028482531355299040130500655777947316463535877705769817043729721778285345865371617011995429635895187284447950143204334108172709176865600207950784839890355820934992031151416957869740328894313796027422905765166290880064385323598371386336246999129887835629562722136294955808990741938451803270815786360595272400037496680843995963542781821958317139182057611141427170325842807390158773720458113330325121999348892020568854904293227803266223267715634482065088271831722887680568985251756599478809922684652440385283540161101603163567020961501552512494813055667963716953954511184499762559591129608700173637301868736855274651352419596445201831287653264972239865042627905704566378521611608352851191203727450230844732686890569949867318846498046472059425011562947870661169037607961890025134176551755802767992411724803896976073101681634607981438827278103605134849287505157700374899575308522366322875004531711276257667276906112223495110846004383155642696048897868412145464064769498383085633127778574828204948769462666677791712739714069083974325329604300745882462112479580261556518777000245751787535284126185105884248543016963969086601541212830697347602088859200104725169745642563683412377778040841964467617049494920742718183393151827567610003064453428183743047574383997743675917906908254759953821517582877595352333975262190976565679851004757332272125968027978270932434056963971299466521054106297156632257843824728365357071943664700985769889151132463434698669206212906185856138753818212811869638967645415228231607900423967232096682730722848482287544866507890974067963954230173441397114332602066047058481069355695466404209652209539981803294912082009433772413377198677956658022224919926293764904666219209726923408899701863261711756236557233436444813284194222011746634300912022079730495215671751700934005367742104086674174400194004325232389696229213853695413495217071055330849100075968416283763786402221283407761532690447072446424257300049262596693865448896245147935922051630105978505595479535321134427603418251039184845605956662070781110986332989467916397401093416509860751264486866764039988695543603124719532100642757586693877065366622536660270670177491742035127690329574243409641504284339985168954247583933503252522363745278545541824178394993485617779932330572530613028591720296284517828609909338220199313338270239493831595134820182720331632825804735369139920525420426424633950072191126552510674576811882139117729012320281217846768603996380878021604444049306058830026582484396332402649085487196997118447547118367661478693675078765076512578951818373547501552483560845436350720019107869791895580501570848904433260236173889712727893220908066435165350176746050516619817929844440860871333870604695656398860164621758949471350676085933037126492884174694964370837712775065431937381473712178887214167997652550997576852893622732741566146132706908818890940805723362667983382079680926284343540861965043871937948911011052731906189862727078259752259002267658216190921248139411417558112041830358361248624485086113528343709624092289243249594335012856647294840300303226405393330602972121110446899955135865446135927490902673787810472043918543463481654671357027832836614270127386895375604325864121956853156224579756573475601748085333160767836846054045465245721607331498136193371744183536977851629885351503517775073751863711264558095024031895346064550228060629302449432986145480506581046086381353112685384464449161534561967067440058182414235368410955816213755783922485188563130050621951118457203528320310352923723312798896303369382704559420818739577715897612086252938683092645221949208600138432349968210298247640368956390268717561244176488589218844345013500150573129373990905157335304587361159090127006767963974654714380229848500932933931212930995111157601089543949146138372203235478341867969629081974219871944275051170531103282618622038326935317545002411537519946203458791226046879067961943339082300089138506290662143553031093568300894717146045667900370751689119763329403069236177917096774699123114199001311369702514775102124279618942597169336796341727330726705086419158535686139746073407011855973897216409002332673539912221520694000200008544163050496593057849873436128789567200421526111483861415771180291597807192029033071314504466044523804640978840846165354981854044175379529435202025498720208234072434457772017789883488036877724198727759139552088084035362354025640186103381201845732383639706855644108510055228607500160883081073364253481522227598785813021168515471963407525417097027619287293133819929842993214801937422862457575149327300228314820949164609260700392138674970936816122133424625385617333098900620332299296723805652193856769237117211574007179030457823655686166749453647765916451476552271231359992194294499335621608628788061579279560513935388041125342978972602037911645429050632289160445526903253420176647374019356597403423248023066107585399740037300818972665266824850490803816886756342828804318677769506736485864958158170901561428340265276441431797748589176142539006181647428686390393554914211954230817769838521252458795250367599167380784089166743401626900941091236894420511442090354974086588868440581813193802831321950243604873417219832217719472732167761054782880038964826179618779081250362786898600360727813171382236548094380177317093727660618801458337573689720329164947373361977742640310654074358081760615341973580237762983977898877084065541043377822501924019890840160269590616460759594587061311513313354326081817491142790151038310059857340979634314857296823363265346957159728130721450139893943798057448645140956540674992634657190398743777027182934130353659364246391615246876360024264662304889684910593019413575192598915932233116529811290116917988319574340628223290962861253159787427520736311000372512110851648651195571156508601379119785539116669514805210493057625000016828116923761462844050508866638384108955083135757239993806146011533825164424366906844863314684787390085472885545539895342875519112884689682709375143947581043903310953243345740510360194309886460502680124040159750007854139737625233740233680353799004511945164217158796798271067249295038519993381190370573992647985226073549911231723674844237371792518959473707879787786810366899577038471096854319318770156598195924571003961751171146260786422011832309898668169798698173059559964068854845505334346280429136964485139424091329709548662540060296884106036603898145846454799430690690796173331538874619809309243001176168560512554874824129081519217616710767126832119672183936661771781452358270547847342215433798047761850942654668945633167262438312337756673440125260500125467834042113318034554187963451939300997711870939239750590549337845936044217710293705001841754497523370144338522830826863569476953506960163840480804514944088360808824703218892394837997298580125338213779508295452603094075981538851905510500445047806916150879501957410526069242395537216282350316364285669319273620475139688143854014037793565462719459989806249689269312829474711692010168122829597880584741631486008180594067555787184159677874251402762773627581817015169304877010378053202410015956890962916484606796449858716156123609321293161841014702019976332588480734877423461289385946555602171015559648455074578033899091496954286540702970250646850657254239068160191991956083080431308833475043123687321398683346117139303413179560615861247420655297127647404211459906715615083045243799005326921733538801878522184505460283875401394270887239782311981377128366467624099136883964727579613489492837090859310986626731549150239536998278113956610144683237654810602475299513996410463012454626097656468737095387242376515697471983225510114886843309063725017190907859069291587645511513026189449795513764328172894112674376900075845886727671325859458801850386821798480882578356144515349845343897867531365139799392577859543504466957146241995951992751008602633177745132327533402736859218223241615711655709502743224800756009555294894066485190078650484713785249213932408533898333865651024258823538207865240006860386616447723538483296816700617948223879789115124515603598016643061462844244008177069149139419715940866293744675128350529707416977069178773120885579603906310879178599062702035045073697516416723642675613837709827500615287018656578003625661185038741633255149742883759382972528632104579682836254385651143994167541544410970160681003713869844158151677129356372652473737481120437906639485079726838180798362097924745633596596197960013084372380130898016986201841864812091713895428104531715362574085222079757691746594298262773945933313557232775602749373976365932784299646209115969342380304012424305848249380183373548156336172698709566797703404507740683311179742732326614369729618775411166451245872248065174102737946073320353865555518198383727925337200176814722597785447975246013436818010475630416074624172225900267880808647690265102266809990944459116658816637922945031787566975025735607710606758227505815563139712729771322173479263656353620519888213999736790308038091441998173532430099009752555246794084400504393140634539236933672004708948317987001575900018818769729579218752460087287915402810495075761000919138405204119479884895038603845525010621527458625107391231783119903937053800968251298910018104686470815994263273770737230162570992418584263539010727812785171738632525758309173577167315563760284490941920010351353014125505876858372883348039029538321179884287405282455987981374400954995480014453070538795245681168340784664787308682647975096490112046287623742635654446418505315373413615338375711452120824275250172728580751481743424670788318846979183226251839015635033774593058644324009061729410333309552630723244789992597921110641307822089380416507345362966622471894975775063540304269961694596823579453511128223440365217208636641642986600499474128962041592835488172759706882663048839956433369659091144754002220374321765142232678547681572374657209456567226147543082196767549098739773841205612685175181135365369083081306655970046439895425630880096548276661166961173408135566637772500857058561791643181479422637191113728197309016414278310644712889149344243634200717181407354905082423869625350450703777922762442253623979374872631047994885453338799658577671728677187800709968807698048090361030821725694616391020419702707543997897768221257532375415751742033752468766669072005896079958053258807620417738067470568315926891917542587509001197132956979014178662951720390463140196204261816850497155871060372917721221626649318722860362752157756603203888346537549656182961103426576425596550454079805350119923716601924725436998015364936624530239383280015905888363137190371294353400847687082065619146545185577155826791903813028767219250196834091460792702288189127273521176459310437148214683858474607366780051386043952947142236087690661929859782128307911102359627613372928127450147641662154225729421868884525381632120730473333620021185916997313671099177121410198613393147141257410553757342387346778528821972680440247866927308143602037840155059134914999357920651205919158879564116394151351089775716059207479417236164115768860386393569561807673489884459635957433688010224637038293411412605967104893860815064067166477222853076814786422476347672473153994810497037452698979629124084888002617409798819332757096229571222234971474197886208167501955998298504217140189669258692574617205173750860087642320376258390992304503273886984042413006471113653448138514839142838469465469949051346166664846442661496522221584232513953641277040947800349031906950134948853481082415917742943084500017122577959775006554914908034920726345205018103851676631364916991456617076294428282624531519504889265078616682360272540235912563304181188844266190446617912133354527388207322721581694136109597540069046959581179543934348971593699403777192616386429218577618883092521758113432145761418117858276499847335987380708943558630471284374468971689951000224094463647800439170584440796670146429244045186850851226744519818934300282774555854565070338128264576294170210471904080147201306316879543704810942772412811517032851666875075739357987686571924603367471177221808742054685348394275680208449312009493844174429267035441307933096276786968718971751441057807498077576653494285562695572324803112962646629038892948587858398911663152331012126471226083912278897481189715818576341749743767513799011939682446389712475261713192319013086598297457320142468635365119742328944441969314809678225354665927754449690510109572923110275006485038203083891538196476985531502458460611614425263011013565092682547294763976323164376890376737537662346168450011952584242951685016501049488672427309421186002118459164927752269968108111968004969505387604813667797554362931048998884831092125200665386368418685121994004455188134216298764543793448911997637270769218317541414508164006817964727957045752010963290991248387479545764145140456037763900466991382124841926165871340286740803061850217950037126842054463282736777585943575566823860352124640627022015232617951526369883046514402874261926640367941253506223359007865958314198820680343094569215165342770094241824004087435060216175937301182135610322144887128375711186431609913893876917006911085159047632277563873213796657004210599886221272947007886951144580906876848959370222763465242249098016573725079569353386478703758706425127876763934853587642590497475417234926834076273053282825117787602228522859279996877666274519386401963665628528093252418804848021246401363497528315111120053557466874940030086663796265855303487452716653766223707884510469694821856836833194782688475684472625402006285305795317621472535735248485178959932896895066902903126209198641145407242440119024861884701319287928622382966922314576605936016504994033424001766156386497880349458929752638010008104996374846451293657631897900735368807034225070917642977993929149278909674458020779615715426737046331551083777966393238187655555999490547473228495959133013060926248588481689433702589110522119649406879032432151318908443159160939240461299122479705315380692763176570482754839682486066348199120232428317943760263037357002142360402941177337375133944767159210831600757231821004942912080652230500324186297865086191865288488182521063280130507002177948353320547982360263664270479973403430072750284543897059260090850767147637236739588451781180958745021546965816905191775890275993914999743136696189648220558664890747862976794622061325826914607809158568618645632229107384303292401670184690455135329495988979457940428012646835388732547331457328012254029214484904826834839257145156240165030355920162893039885556657178537620452261070684571925599350879185841760013357414015232613627193176159298068128414959289307444990944732223559204574153477212129834171650436157013943912469805508203534574648337476759917758432109499869132716812077105483109985817685287899026271940858121393789759636091536584123135965610202015148932023471224245698911240120794444294736238160578660096387799765396908029802992006471932529611559994407395956302288811889102965486866048350553484819772212834110379610127565865701277867648353991123310848944080231519720204757940841595438527740310030601840581761755311428694466803604499969009106619866583250735952094660351588188621017487087155503999304561740393046672136804061841628806766468180636700077511585310419570592540330353976014920692980475615718175229749590827059954214589244085921887086177174702925041080937159899156247900871174212403831551198639648613824899288814923573724393314888508377471892584747665473489023273412424142730458248159927461693018634899442741918357608759739856441679941291411359179354469076151131166367049656772908039210679028313839394990029600202051275634780883728384501531021639163414319587002968061057628793118887078645748855810492789818514173237143477813418545589805474769296085993576485657742756624322618511964462871335793378085577659693566375408340965586992346766567542639490427330438479599331174622699280833368899329096634015143000049727220397034359187269699546124849581560322970512391512079024742892992189822994901858096565488764778572973965425688101062803863886916611537429100919901332869527926711577176974896014309868360404160850620219160566470568963841820157281149266912199621075310078648348514577349732749734620668025866693705137041299192657504742415735565780892797702935805746087763827448823815874214404383564046428003535786060889276659226627997608443439205609888504143078814195552730774742027422107194674351433953878747410929255382027231002686950602379632240581001241813207727133723285169797491307886498518230476059299435770081410178821842906499331076417293157054772994930018270700919927265433365715084291556807655699605358385810195400892199724176201748428525663447878696073821723983793610683950811582005788297571510292238305521271178738865457531032938561926217736372683953554584415042094190410169366961221791864463552038709932229261689589909569947899067496336654865622780391217402535417381144151238891934853682244430087427377650226318251596522018680428111342960198929982666710328016535082507369363628715200963049973199393266007123376985607392957786830075756984020114599118099423828087296276575155838420150402986150149364727676794678227519615731265082418851932933556209294448898999898335296911730583990952566715450048551168010101266352688685395116858226556154693423441276425340292363650622199051863229760274903639224732434402974716894852996636074995756503646359357100560869536583096746956322032937884516725618504833434183063793600379943091523418361885430221618110061968270316606904398362451666280892940661283240516494383479505123560539923056961934346613607605288568726636530483700230901630330197582125038101071198980988345332387437426439867086898724134435753047885322833478704992538108719101845733038338097895475727369633135060337407775160090611449573764065716713900030420812136057242410717563708322595825637437115912094427399169934366477610901357303073621066831988966320260623348175897079890656476234623360203707144645567035684281510291431882679550322430073036913870214595092078114722204302646653876931800748072425230679761419159962859632716791462146679122745450205605041161384948549401816850520191437346482310495232705860531079719137895346106897254694575688388555551796266710417099830913739290026003383887379669197501581845358519161004667824792144248474275372789197758851500872267531266300919367546340376034397101287250661069018100873140671077372040639902360408617373530711754459625465818363670735166720075224077423855377487608151002217347919832238161969800774400846054076450600330167748906016813031877720664509577958689695245962295181844106884351563250687573718499931094382304521419662364719779724260567752204678564278545686899487575498295878425763498849554239305749323154664512768766648486680413272721367156886554383882333732498702122811436402671004573030206541078912381143195812991972278276370818990228875494383972086359912621482333221165907416755554755649735966063681086052262486200485127500083975447711223027355536216378080953446552034153231439968297122972892115965001311599650191844635129533477486829839228518582296939503973465084127081551053152513981178713302966255346853891625397867241522743864036600994029388894660891655207691861920018129938103991317020014836707698639638501921414010748554327637385327862257619649811663449926168493897770095094052926207399139299812813039064378869036126452279940249042776869138771351891460203565748189614454947362845791794177721538916564646575078294513962366586252466727971630783384259615677072524818538166569231243627936864083588855159815832031922966224973285708806385754661819454311713717754786816764062997818526975154074927755882128621958982062312650204057381265300889011397949233931655884487523579749335194455066745920904583215598263202564293819706457590370182192108247856001476074597505431565697336626894004002060903242347773815418959597799733290848253371871526718027340862706963105262653143043892761745686380181062103978452685520204927899701534529986056734516607622894973108593729801749772915010464914646560227108893105366728424685389542349494024467242441748115141118295221562133278722329476012364515171537135829852913616469421511675534075181073245204935182409231552349233111711136500003971312566444444775799067630568078497768948989889482224959639809910100301288911967089548883047636149338917238345733480382724362554473437989394727679608121318913849834418806024948506216011758916809765781863441918261225446631175095451868602163139495336752268068573580500218153179991182600835714739322208058998259348797245596316679181778491029432299284681326741640479172292876423243399422691951852434372151310502207053217165219052083941199165823831721281587891407214191486314040101744600941321902597698338911354066222422335391930476197107621627409568757178809046433561652503718766264472992278016711970440773745976554849474107338417097087765420743677160968316778729009682411100794647171958723837360054456824333578455711020313646286400816250064184639763306782636794250157894023393604349303788552424068553542915538911513699660964898837668153139129011701358768435660623708452552648241931216389182581482388292092950506949031499101770944988875406026370725264356901236394835704166179298859186718105414238047792529772692645556314724917032486776850365303062541718313606431526404407453448835836930057909427836512867723212573729152896121817375754248139379951743184406943346317872802718374178960672443328337298918619850616324231390401838404094421475758921416440115102590937485792535946933874426939006057295014065761193407257230090720704456696287583900974533326082438268655272952566731052348866073228593138553420818631011012436097254236391369070391966787378613801448291326362459348742353710615137050766348997553244804068682137212151004513571414884780194638560343539632496793336566340833405043533021467543348089568909207982477048276091665445755215756884529172297629006933838213505956385815079424736183664412710294189217118378880481873721592573617324233775712870333957787065150329249481566390025226344183512583857318624755814305452873830113897396285202712104635258125639259262739833401430730436107256949316302991496252736179179253555363758321833026767548240705587629556230102851182381400227779379676868960226251579069082040813228398794911609234214971563285774685774573394125976842907888952070050190276320978933349627436767716846342349449889699524290462581785611049623393595773813251045641656171936847871229312127524059322635720414466623883843228716238428690547880460200290078641667685399077433462687110048647118709851778158503729393238781343433593264755803642766218487982965485776620253157972032011607071271929985932776988200573328475441741359885559606148403580278727634604661728294025148897358657405622869069569353869949668159574266480187655436563929342680832877242598561671429554285528293897285619141874606263548260241601127279176335703815756021272337842682899728207232929823843214685679047627674421348360991089281084587822409314652136534283744093644205827828100698452378053184530383287045258704084888419942810380863113551700002757820765693282296177708512185736307948954515226812035983254717919712247280165278340440564719923204911082159090115993881769524481374994469892614566617482735490752158255523738552275989742326572197754991685961928933797370291231447788985844022813808155109314551000075082089804716373412603094053629560816024058578463001985670750808703460222838739130147732074535764805830748791936516671866747984725230528967100245497175558792623868799407959089489280117946135487210458256283674307162610159360877524804058388870176486542721415580589910730249133610926905900375217617645853768953972225386293023091618293250535621637976448075469898281087786922932590142256277194150582956913443312674025045922996975139010458223706362833358039733376780970870987033965042916017305215348496063174558303993933674938165945630432300494851673272780911116227084121074625044098248974325420878917102943051727178117515780248127352899516311346832078792561569620680562837755246245796253326728303820611989948682192264845820306297045413431969444748975216578973377131715496580695578370849872449022028959632362975391121615916407360027488809988454414811547396501484649383694926464024530601798563054837156332795378422836541356829083207463486816493812360334096317683172749996051256156041838886274359727370974368153707414669869100872337235948592715749885968465465788918902874866480213740338152568257708904948493460601361210281729133808403362885288256043056912639764233658083318886419789617137594911607886212979229744717470459114064245398416159026094621996502555862571177895257491474823403068523040163098456675807911079362926239325770854164099773955500700013145431305028753853458518226444425240496118413758435552520138751100957856595981550370571157022229300922404720403698883597606313267033773503058898480391111163302267480315113378575537387311765684304515030353678860834378010594257503836228832733900080096250731431394505700499878948325828628601914197642848213773619128645477286309794044979198617066590602841495155970391429267605231716888070708917344321948122630228456228333412534100680176903379057535380950139778374344941571733612519465995316148539685729818369202541361555545478298564522986620130846602304896172256732911398813168025803790462677721743755286249272747654197066724063388273088392985324869217409263361669952986005861293085656817627408370086990111116239663912702932112852991637532001480169305491136003399468832173838678588949067098173532941490781457306366863248707679355574194459728795100549237624653188819466213892456862976090719831913155139780866936961576464664958173339638979287302078246220333607953746513457526033328847740616775443447607965864422728017612348324069108639678850405395399719090254726245150411373967014748806848949609046742894772210528369197908499302819432966458053955706045821858344196982996699603112937234882790584635844951288461475961278341212164750853242115081151903109256665141649478739768553686832720369632110581197412815018361000471059684074184002133789164697697114683902880014318915811358983569615420311892998297512629974035856055856108990142556305075162024788734030336655513473843157508744314979434520153859838988921342582738082310660937422562158786141585090633904389138407376356394680301322900894711994123940033921091407602915049795882908621454234367298263460903995737267545904034748585830017238424616950430321708473702728478454399012088210705042210200662236299337603969843652952383226461840585563537619597680885236009746294260348595523976133936940758339890029178432955322720745408167443226026109599401039383234765116605055320323777774592693730195732589471016692988919293922018302268571951130709622497442740326091758369571771590784975356413378190392973496417365369160361231841403087247337620311699806547398374995708951218234137561012677948082397847087064400653809048818559276520297876116531519895123078088160253772742218462737888456643303635189583080751103612132371562214850994135805953841209278410614917115351142650496753238119326571337449632280661609685491932802678854280554466357744507661286642950677291284100392517962523256670984044479905881460310115450134506968640781231066110891863414216374651903734141022537310254314014001311160003881435615860400910974102729487665868192486947653492374553884354174215863757485019546926020771270724673444169967024500171647275352080442680402610930119131646670896358047239928359351125623200452803191812704186618237434391633263581596096137087981780268576295425453559532656796304934595402126566159322327277624387795615587108881714469205444958185506718138333460304462905233656112820059399389442671409705696692341526607433985454838320075459843206747251360681069506301396110970965378478763749678096079695593504637626440119426503836017236015141336456523647490093877897505785724443607741422262174917792123668931455219660294203908733501233177665480742415611247357090545228151196488179605129383272274918046947868523376337913992217286521362898971996987688949963898238821418349669261170823014413414224975909389710734210839765967186942895645289931101218336726206363767425831582374021276230156238549329656674606743915985906212879087927435121408111010391406199944654576822680672754758635224514140250180166845436017821508120013424281461062818256173580689351925128650933863340092740349783493423129531482433372358621605877013360481927977847971697228730758649377400709155191793391475991296997699605869439375391271853045059541670272960795910722475670061986309927368152520721994560535216728946764379557969483350841424686537752255532095027442056872429080123719126322709055103640636937517657291007706162989696833330801055467487324980352552290069676407430852288719938870202756850257845498974246498907291534906702176032162715292808527056685030799833087775261312918625511379031589258845226310512252433861053336519186524784475454581214556059867282841010433405053454602970767508249815250607854428132876352204538778643043849784461409197515873138515810208250952943104914861356793310836372602793614623761071646015669089940489293018378966548384057736119571658304147204665169631711523686997879813314106009902334822015349513336178976384682764455169113042707528847745361180962385489440702404144405317729285357322499959761910070940598609726651114820706553346179364459309609419365592170709122784448700601185338234741051916767639063538866978322449977609096920629886291910696755651505345852905814115258714806591103576813978979224652050663368747709373437363229027845065440805734621111225217221140475010470304983367220428849274676970159585238813635238566803192589207988178925381315503953968440054040730101765072316387320424961001036341392306597861705745046022382752558710337021199892997252606026767656215846858432195501955164077228476921241691006766443694746232446351003797052565569614849694481957405766878777732107633171657521533295823972255654880532515160334030524328153818112008898333002236613081791511179092267561779507200000471591019126700835246164254739108833378753581547077745770030694775298482616322680832340274433530342265377836587423405192277490066350385321909898537042709850150050911397851296584920420064287310466373752309125993856961868967422604065517662443548791611626493154176776335495561306451321565707575145031999772746110081665286800700300511248702623723205426754523170715454010697084026984365552531521750703240966961587365032905328993433765956482823875232000518507672837376452549134433087590529447960841683799103017749943332218481900287467671102034459467542453569284707297025492273669754732657110864480062769441590440471950751151650303584830259806817806964062751934350917833288248349164228591759078800404150661446705492992615659086157934927592523142801282478919176405126012538398577090541831080894393914240564638554481752707766046427703049827680066584999855276172089770278305967620200480929286256838549462859576221686738204427564813172839858008121524464328629344222743951598245907025586778362211351339750978562590817233103673543926808314209352918290933891465656654001061700982822031176146228628621095380620248220625521183106113947471405857233981219744019426456026429906708269022985454109405733714697607015868521668171409813464782442505515957869908901152275578568491261274225727095685288317574351226230537241997081025746570706709417919392685879870308336449908307719489915276702121596689510086023113938535028554381587679882345216799186218157888687456011411199218275322637205644999302333958107508885178958327517516424033244012347958494274145009487251564844149379719439501137282816552017378163662763214269987180715943098253835337176788745963492734578148014540472176009185872742592847862809948034238787076600089010218683143989310816483568390420671938160721757187608615494294542779082020281918495751411964811790195551786170708833506323265319123617964040390738493928189973745317819634186383132304441174261267970339481258299757585716231561430416118166272028273266623230886837599423910686187498366080895200902458674272091301276230890363459692043633367094960248226166728533610281637048927235339787795293327762910735009879295972849870577415773620335713410657927456449196252518946262453005279820257846692475377687742016905149522287755404755475516409412424944004351359360969533258428107526451961701461101286775868079761815203463721355688062111449005316549332225711493927864805625480798117858926553513878480476960188471402895756169511312173056163399752454415288477894242694123792334253230023137004561829935247047352678057233132651291997756281894644506705124737425844733873891074865922307846059862279875200196221740374546091700904921043360052289317518555012978076397521180730351885971670356219514249024434829244144985590071409235154438253021059148550108689948470252449291629400538261697020632240695652323032052893161418353507956080176081888244688895530063005576891887321088206372651669818031774795187068557090320559579729547357429585703702945059459260432262570589637378260678833450726896193008691493473639570340784110465112188155577124960007010585016376470524205515597552583273494581650133375559000088116157498447196866988817670120474166119482040673013505958647031205011026298525400218103917806934483317181451407643048410484580317331901402325692899566069806964063856511740884839321030647776361442117415169001156931894909208918344692876604432240910736385028939012710526890941562883431859500265701573962695130253630808870264368980941860462803935487312288824119751603316828133438328342285074781894931722382322591941844857456894921337286301727164591010993317789554143702701985214955475468055040812439544777898676574497301074228965331980578367564836236630596883723018549074990317643899531470463579013009028035877384845109352051464053126154665608531851772354745348610793461132382790038317733869951551324055067670726250860258743669616107182443518890231291844186838949579819965410833635222204472917258099627196013901207036772945278973100170289562691536109281434806090453603546968716762816349090445089868495373841595322848529515742929538868037553523418760106890863146783503711247189754466716341966624228641246947567996660658131959928801226829468736705990046761479409138304102189266406922658855119016352971154096144809629286280568517225668987008233308477753872554660302169361594010720572070945136757610283238804122515473450852919498947769598683219181470269070480109423204770730714126225785903995138743064419579533750113070325246266845663118090895991148746374873202730542877520154719226635009934191323209858577416103041080490084932707257936341003718657780981483560615309538216337472931958220724005037805496998459396448666877676193023039242270878043559165123390101449526791605054394003149535895805239479432036431224130403536281468888844828896600942386348428817766427253885801031270116359905759045045030850831281429004365914563299923097698360040361731990034494434350526955801918423754863847635237979896904534785622896902320588126012166632276972379135187463799725108600352864962722713559506974334433408989312716886882872300812521572321220030490350723044586497562607545303653178216689183025067697338050639604054634066664485411277647136098611578626209768230560697020168542030686892606375171904351853587524142921321007740574238074012032331339018939280458579499120884700816231616272161061488758649834334380691168221138197115364510711573431982210356682725445789562183475240830064759438540748354912373350945710224205792654570733850232627103265281123367415091534616868877328226437627322934559867607622199004094108698681802341467922016831977526628390827092916383680741803279968279424530645769373711491657338688168411763131226979414165268793146122477186919099425771575679788356130010485737198585407746398097860422783793513147468201397404391149735394392392822396980840701734971941917003591537536429521836809684285205470190946921235169177882988233899444251547208870358487340085854503643240694699472316017439613877750882725600445199213957459515170851004667974189911689446553826513962958590541745346931913326027918794304070176001175354593251311902215415949707457536108802460699868489188136424067507941954115064308081449122540497173221665850161758678122150897280089577674434436281408149541780995958031692973611761929628766395435439931875927648704180475610697386446504502446246490181281994622168949231762011527839819987215447215949164548302976168944445716421315508525559369748110651145517110181513057454095683856258860301162816297324568709655802275556197487162457837696198087412620456712675843475787583084269487085557246432739636439868199046178734392257572988424457673534576821622053016817069105200567612053551686961291331688803179251266303207277383140532116222814191855918328066445029616505515164520731483375797313081697095677044499681326368044112394990339375456190147317857213405584107112815241258376252986031663832174777524513278526231398549683569573565431529063916297319315757386974908613072332172516757761379154021553992795473254250199096745836065436468897538712888171706084518883534455018987035841981496058389595471025339980715620325228137690099746705252768511582366660047916916720061966839997772548920807727523244503736174376760202592410368558653438755624711775669584317816604384020022092881409326659815627069602966873986426744961608671243860444891288874397722530989789723577939790589553064681541024559330713193471838060755526859010705017076702237701056741109011791308331013877010257993639176930431208156651670117591935272689245512805978258038603514874020755540944202150003594005602412109912681262156360516452530878288840803487283041764311898543666141929825469229535232797369029020461245701881546404949172238505746608032932484671338244676685090611170280923804596773198420621094609831763296313106848519790344303078708701454277197534696748027330760214077643810204616998873933571482396215918434398164523665387424688201875279444484472599143615173603887694730367451904365337276080090383912406458928693225750849765376116764193504879892132887954408209724594645213668810235778267895399997538060172081312492515227591392034334775705428121508874918918818372149334660067443024239298074676729580794020314759878948991463926692940700610908649324498391530905936476355275316833761238775039849129615772264274514264608008156943632460695541772613401447367476529294906374068233652104920953490361215689095090119960515590941963209156216272902308424731040327704923620298922923610130565432288083347940908318901972898676560120685159938054505517285878469357789577588396288042261207918513754586504161275833636996776031413981188719084184989398186321913500429959761569393689994536836935521875866112750292109946934947323938055234105285104892670410337469523959082682993479025750002406650627630494681042509868162016430157876053774128931952759050404049343314685471796352215447643830817418844359116997859658746220711334227872215470885066738157628521910486280493579707167473824543440238671036241866307975238307910253120923906233927996323615827700926029874172449223592774475864571805634257189429263770893895161569707132394132252204384105781143582880857084675233822335280284391175272183538820195256043625679077076606428067914757291507116860233645200301029685420637008414520458737292940880318420075934651766737468661034574066980193207017836370212722036310228563572533562887251671783658694772851839468017379130887719662564281904169128857718671616463341800180818140025830121175964192919383669747193155508356857050425685902158056694803636397088401608744844740455530018859104843376826846041906539746462506889484299686626529455415179495922135457096009248000048424491702218257720746320033708563427167570480044180681219261853357840202059188762830458539480751428023864314640465609292335305060642940475716972154478827508491865600864278051277117073943394146242386893653331980708247355359234090481142545551939906062777365952027273473613801926004015040058501876125768047692517990926132764806966007440665927126266554878748707811306734024036474231237912018497775368055588605994831537248337255907078674974878810095019381751646974570813836109980415289820739393209687371505099083267734069413583916451879680512315636241944654525325523617760121755693913161947025181407931172851286884442297648120221427246615980183547407778297004971843214770924637945008536594431327737452921889505368071709188080861742330460880630786392335787914823559553860304145219400217606238221632311380765495424631197311858941204893203371286417492565396499271606276882312847823143125744627422775851673028729739934187101568899909116067671406169637612533173587272202059051923013760419181775779309871391261636782821485012174187234039113691877101487352470929625217710631451407086376254325958884519001930511814622724060086813577342594618476642529522022518275809263648689681256541289024179642237486370817568274474988513169148452018196953767078418323977903550143030644170394594203169229268581244135511451364986149704061288967519363377131313371572184742343018829405981634773339558622693866007947669008100556192775702279953316321574458957196561046797143726854776007794917532758437341942652238952373319121856476722448218627762020843371831832095450726085055445451532284901273633649283685941809320419004113200266499855265145154027155240575783932674980928553389522690897429929694037337086601324705727151893145480896006910811075281022942798549540727635434299654835291915166388771559786204827204023614225910393257871838948513188571720998554303575765191543306325301887645735809741386751964761589330788580764076698923170617307038363801322104045088706597093020297740726225543051885965292551795847175049832897262114215601256907189917774240521575052981309624838390309383312929348923903074385646726288960744181362799561046120810761495891177771897195983760683081574853946731333239042302468305536561641170434079101261699304968591518566298807685321463623924711679093223932541257928770817231910481324601217682561904998852404194554710533940333108333477212608753848107469736617977297230040279558232133227662191076908827628631511234694920583633672048085114054302959470072923915560933725912966034152971169361842170259164465552346731287931037505688009782634391053132674594792999197514730657362963979038218226350137141425625172472399703240073124906678296508529356860829364801603898762274648255961068601062556281042966175713709793192122882613474496590755976106525433551927339497966832854159232379414757137594164840545889257214425682983196585484668455518385013254025030991708618769542766119699549141125321115023351684907432213587101078542490733831763735545140514599151952848482133387974922732552915927329623993842600802631745785069799942236271021395651677364224410163859395916589395727949110669607586562017425018185597107813333191820423354949768877826124989981771578731385959354771494435855395603276874936806298002017151893106729765354404952342312315183955586648913794843458188295278031463086378188879290318881049512490024781186332090960473348347692280226162861599738345084530687106059486738287903370506700889047510701652882172264703038572040003165907731690543358103300057219903053386288011415381174501080233412297629587449134756061259143227438910187879254567867969844170964881701651937682403958739512761584407407045001447493667821297316892996605363826106607483264480211909329671526296493963791982286442524852672242092674958794337072870787406978823792862853691424202669306432423695124048778785897476572652966221232314401514895422374713987380055915955452083004874385086718595117130922257679785464289116142347576407115526660568547661621484134853609674435670785091011322516670752319398893089441569892971266777068645226402862905089635902935957465915681079710927790108954978227035442174220719747261453877143753785254828395213017154158479063445802372152080313862879298022161307144898540723363444078288370068822912122652153099297788042210201798731651162682957302103874234625322783560687934060888262774006638114365196666546973846263228618500495838292562577246683012721222633676855921427056563492453620306102154625284131191397002762773496125340949574612731969434914964828465011995136390846802851485248309146229892718875460775489565286356063169032695599966777633423690625495290016183098940240542017940317081472452634264184487321124779153055357416822041896937431765101195153834908026736177910637411875491664502295139302288012906058574983255805426035692564800692205774657164053528239785476132254361181607758293622484454023131433325389142298366478296421042340905064046457563424061348286144951991645320156281094710162112770324632370793763984779982096168088441365056951687052003947004534915926803166178700262196062814909725967398795851360226623921765755577546625177312240143869855036446136276176752527208848473128602333626499747239558720522860006362830799603949725900032700729485828174250846480289321337894268336108445004414361522552754787216289694855950662245010365589164665938570584532791866363435190204757866366505665236398895592942682412817079942395526681541350023859752614646755102010830852314760214882419631233303457765642509422861880801072037313710238665335549721286941588039163046314739063574147375692428830394144237643123883394886972410161564326902908150293615282560802855007386203986005104588401328473363242605270027585935211391567802334645024762610785890984882833611749729759985598429451221714975913477254922390730071433322049010602768548679071681637368092403925756140027810453268925972055826041130869278210976625108396044032131687193860414245585687972805833157724800902575804771275295707269915369352645226288271784526300542187395950972776370116862075430482221591674580931309821112654546612410792713118876532055937484404524975439093460668022611959190109175422279886379977356355644556561464877611980106508865634785073761085425212701966264401042427588405974453582256055679018763641287918333891290692213615756084122312004071615143325711785678320654603788605847104711970696316616457651863683639625314111244423008204962420256135753084663469717179450040790792147204736501462369517709226013627730224167581176023677436572394847270299337881300039213151932594246397379973601942734038341597205938802210620474859627892048574271737717412286959757146631039795672119166209627713816068040676725723117542119948495286569757766154433253210302482331942711259700619530082201599948276571408895206275302239605183249284205553989129428166315385121519692910415639542088334690939800445742393061343591298859784458140971486178348665748818305911843270214488951718911698473447707815575480424348158189574266662590541572613981117033772494101023953471698949078331128467506381421299921179800156857131522910025059062282882017323532473370525183605589798231059362361499173873179957255591560816176262953397074784010981915832719683873359352025543297109779388193293726342879001249509989124849640089001565476786428709512417520352656102138139239225156956514081787012001520843325837216687363968998603665666140270617199809570517201910073605410703625307119669319194755940751449386826143940659778229900086666531480911694487469836829381607633215634766202296904039071979590281714061716502068295392112926729400677897323060803626211115590184847404839504586672025256471506125813872528589199828278840374102998844807077372879872942499051060886677444580234252486600214757522957264774388132544864932553833392483706535966584120694521702643592881537924777499884810939949229789450042357027302113403445611063159014854603758337436678341684314859844453627733873986598047193987141299753772543501329689503165020714345561541097574251412551410778476713979636381113881025552106728622814848180025302102534465969485070667427197881890539204655590838754941455487676076431003996134589077752093371192947825491191297155973642049091728448788639567901926214573760308072437356852006626014684572025968481295343988984941502107927468234059680702386044644670147616316273305110038257474668983194708605506934701475514135607608393728059177920989654131130881678996491800011889211789591970096054845207309991032987577983513767183879398220610420684284538838747743475973414964072717237084927451001797787685734516497019195451665706379383322711164654872558756870646976554106669462069128810947811959193087615414611230787633476730092668391969273670503319752828248719442237608949230544831114271956292665718359487567532150710024254540361265849243367076021229509417117593945358989530845938093318952181360648780653492502961424155853856363036254790605574590957521980975408801445414075971315032086421044446875942419434233021573578942496524756001065396187798598699281749817371490134699856421189763980645560636943975782953398690763536740586618252305282318142265170276041643058168630333390731569915492744335410298485894524118624338659036578719296156133882201284336557775547896055932470964268377695040864403504375801202209499494247231830622435707706267762151296224402110241533727139353457080241384182558616630639563972467657949199579984646074806794380958229293390151433443892371067663783125325845264695729829106757092262511508835590589602185103694336518543092112596494893104764263935941219568483464113201423224417266741144606208937552473971762730199648229746798354569220331690311742220836946362004569983930874914599225051987754368123990359844676648373686848814754401150109671873968878058189548594138135916768501262013047154925378234769559368711568497179160302149826638110984331896409406790829914717546558392667626212886927710511679770021882455824726117844767976014924737954112216575305527434690217710470410190446429575480140532075304559241631419413097065011561874879055522507105222039084351427385927199621492069509604941765460857320943617975889535152218447600990927591416670303937352479575533905112653088269925481538000983319121830556759689879702341225373268321314080551135214782582673770460902120752796599739175623483963933909846479171271587185555631903976191573631272627402441288531681823313158222516192714603292233647166733274058581064959427971886198524554310554959932816252621749367232780487881168665099367350629192816086485214245635745517849469239189544428542205388545408992944650197031657609538904713960577982438973760949317344281852484895694989369713797935339880525774569714040592516088616236424353622579705915142305386485256630601977400553989494777398863060496032575628059536705014824372589581011595535252361649015890909859546609551452551073883781540734288658103804721609993326482637778141436341353041175273968352856696703756017192813998856265894544442285451205722702543960971969370952348117553595519388981117802881968985295282261042779660255220956945152854231632583046830936920650076848340478544076335325487717091031674730511535531365728126257706727542963130624664484900381277376414918493502646210539621623960485195315538252823179999488268070849406272463390940849762243136077882682640264757403788740230445894109331506892409591263950170278709188001399517406667128829844835096022537129988034933726656470390870080178623738405251390801216246260821059638969284986288803707338879966193875468428377564439377257974853527808680112608456425565551402916316706981926244401214030600217671774815699366006374576027392422986905812274385761519108140095082035282163427486043459152690179052219075490853828685727739965713936706049169783453475489955532402342453252811954431290669777837848355388234891521557644581303739221908718199330496173144536244890117433330107808453752609152164898302093077592322754307940137566271841749868846304279577018173765954476786824309261057688147820452215094161321017824967453431182695151904632393076121925214080992259793552646063353610455675140854604254551073376144456199084294078585597060599573383973798784158194376346489979950434199089605825418552162331816462364840970119667236809696225483045743807447971941357436418564485583755091176709964230034211768501334355799613008064060284751186851898464283488161696701464999302058341750776645612741422938649105922011740363441043069647721045033298533195918203773806877728204720810002428290653178952370102193081945686129811405448407409918540929078080515915366255089766952733619318106635057250525114171948605155778354713686114015148225242301933849445572843885479919241495093413897264007185592545045021733933995813260312247829313440921117055408226021390693835679397881157169371226221989268514146548407729570778654943698385157533935646754630776903436387974039765432197705684967388023264642007402011788327497395569049750955221231317587644517190567865033183984127141764090878015550311786051712725422511436939916360964916985683705608094193408662280763795866268848068354833679271717147312087899670451675064779399761590587401921764220730055226333324365213416354255304935081115004361043800401441517055192029157239436738721455305056438371609068095203495518706901663962697264686886048807512704736853311906780170064805688130460727024780934259722158183487978587982544379395569555209433024456587089413324486240407476365814958103327366920403180651687652928070309053595022615720117147544729112846192752292059793386161848020850472456805180715908771803722342866813181453713697272112024559853967360268665618720665647194114405650904918137065204745377574548033771685817400478285358823118172072262165799973684107550576824345770323611633577600862189609225785890583361071491130589431322259200311675614629662935254516688745804138976705008347176131304972332192154589076404629703799716937369927070673285600611596605990499035772413905608859819101245388807049021742354423553736088968024400922265573185107333403361721505500490891770058391222160742149448107669517805350735938520971725324151325587170654296000366503925927784880833337928757902376062815557961443202457754588325529498581534576971506139061540322700813573666313684008576909718558766327744193247665034581314431402851888326074510126429335586295852739622347379444066763220774993742920669839250940894150083591272566896650635697341779937579858556095368347517877618709191359009724634195474485664473244964998924678838262378962955959193392302711046954133395634812325919930646542471200633851617450856828065238388931609611000791524503800043204867280864414836725853701586547267194205502538555319862871579336922487379786033310733073560848297659754439431340649475545952847458480321259067352961021343281381447897059394956320739008466047741659876927097069200834606110688980475908130887354759211315015602108140226772613523556630357079147825051905721999252538552608082468612166965945735220413129424912162137029551495785041355515450764020409855428379783305733635629105091938547492223993849104284056846207111885829710878240541679800823719914795766402229452482147036699236487277106388623758437083939532641405485110768190314459328096567578337608973689623481512242892803528530180023765847573287770745946827640417048436319418123265218585597639210463542945197628973308772005852340433948448863260505970596380391378676028399947560677935308715988190453397377246872639275979816350952592823535603128707362581559015507388177162871718152302964476089636350597276587854814044561735126599142253936770097775712425544825573026284006029732151695112281838192471272845690318502490296070087144721009491356639341581800938933116504695952877637277034058842448508442873757842605369683542965052442492944408075930292417778324892040654634275026130201554085073484681752733799210191749222003112847813476403394155491741201811364414974114200080253124602937822198201553665034347278288834819044584310521597427504764718211073606912623511765218809273909911836189377554056001567092169299378422181984807802107490593832054305306869280993694224916209022299820096458000518262130449729754382322677366427875426245814300756687203725695346657059518591955952024204289220587145668331944197349329047948409436362581628607211199685476946215132385722114932562260909854948981226980597539307243270540874801284264299320235188201593649286825981116772061215816633664624838562546755666309054439057603146377940867971133626027476778426744097049204443860107808290874352688142150641854363298036751923064914218593019307365114971935237484011317318565724134659198611607465947395767994854738552770118895668191799070133965792701038302362198102759434152235495452724230637128414731447504608705928047261585216563471575400797491489522138514269282408614475505595299263296977621420347296874154205215696367280899064311291337080764785782501004169888676847315906725839842770611435430053241502903099496960473484950213816092026380028237717874237864197036335108101379248740368588691253569911160613950173347266212849789820305821878499096408454429647645666163644344456932698887295931146379577581642563878700682935624811441078625104438179759499152828677341054174019913554622520367558002815267454336781766346679087190267042639278551721488158849821575381784988445896518023994009329967011478433951675669932307636735791332305957991435775342578840267276134460622336673315684598548499742907769403021366288345661364141912660051413737476902610919860908688381219190559723204531032564370401752933741296688590627096987407849637427481977777378000320509473648661184775936046925038588638969073384013743823070674636905595868206394787467039381206094991276661643996081797101750102854969465718331767235075068471375755061881685792029459663190482056254475431299743320847835680214755984212551054412789944957915691043160878061717902731747506361028306155182424923007538452893277725352241816174379337033324368723463484338072459756588646118190075353481493067895770736513777871213219606033688169908268006182559807426428084682353487361453590869478116160442866184235503016201622199654753172655792318931478721997543290065682409733926047569377745736263797185338969970341932692610077490077973957364509417225132054764767588538131663143975270947290863582550263779555462332134868136061942872305946912007114760706677564504909079242189622318983271721976767654649746642223590575496171374834324869119402913538418469166227239771946699132550267077907740977684899596623667619373257635899651954713319810012532623239142227328354384716662080021301158109529733077971178946218424699761263986132081821638682118196689327641135465573831348351616150941435318975863928956683646672211675561910984351691285948706157426246117184978095627964979449372401910052424333029145332302665067602156965662423374803709330131411407576969373913195032564078461497025845275807570599146973796655229467118467934891678103061310923085853587162323917826053403519285077621591148127160723974513795181345255272397110497538939855905855821315394242280693768967496016278206929745276358708267421198395540422886683976378711269421723029501260296920924156986174597469149285356552916378463511937911821382693726501834969243080894931060459395617908933267942383193248655783574386997220906130772285899776683718382361486571700495689698874995062272007050492935982127456164605036149572023138485056691661045981819165244342066460134278525255103156546884284732897709923859384404496372706440456886025372639307516154002693671457551808859128930109096595950598270371798126565683887782698273528543373345189536576845474233328828668012650267688226197371245076797299486569804903022258589814372599131474679384060235361896565595842007067557588972739795933950762123399043542145318861266420167533046103163292726890758087596125273049431971802560446320967656599796306906926683104418279437622720781999858493310931876066390622077209626354458691835515684205338945635765565017502766509606798033842456998488819322199848404538213792103595792002252400656666555069969371552671713633117452965486629056595664446264010642311925085772007831394131403094419906740668059522504807071946816557493912864581316065666571492762302745031878849293822874764099047385704507325730721100252368384595981707742338039043262257585263125321673898976591379665935194087582421541014422914958967724664580670375969444257065087827190515556969603761401570268117639288733529233411109802873073666994567993684070125715319933324088757662025482387386069764491014888137049090880637149684437911660473955418560884428333581002052988575732440554428958109947506238232493099282585809956825647513496162263668433070408286658012239218127727952934143323860696499372589819453745410045437958760638458580292418974526170857586781267565331842936489353063489160798040198973307301199245483159504836545010087209901993181116722187455064438274303279373160700015993871546530278016847975670255751171735874303813738320973453342847286152158902403296080455266204642904964791859730705535444599957240700825479923765616089092963789640853742907586878750216303006377942660564295650824047675594531284672830626176605072125822061509195036116767269340365935585155981044865541612582902666377538244228219559984106517493681984943608443913792945261226475439195803264813448078379803379340494667791266994348658423435089895852872503374893559312762865685068834033484994319599165292324088403845078286978208479317028623252429290536359844435715353825815760507076035824953031294520821698686923925198577462097059015742089591340661382810794061879179156308652432181773819433791008735684276428984651312391761663763104109689343602145448958798623849022258002632715670602229226260821766092319366354406754561251726872902446724395109576921949281339420538007889601860826804653727817158888924722407032043470680381007989088325950524844836746931264541070723211127928450877220390755683757180148695316558345831260564177256554581084890882327370045536562142205230502106652747488457048993051813969243920077457661835847720536533574587546448306499621508985353436093236772459373941537586343658173823919248667069793512595339205384743892425735245733343275165575740874350342770700233677215971179584923417892571889750930747756961438262412985247941877762630269260965731931945865732078152350096355107327486141494984315615457908632011809643786159043564166193565987573425690816863431704288920956752972937254019177264526264280240843357731623901267593052093921436821696554308201859164911496613466956123850241482586936548522987363834781194675868934175056688994720327413381236088069635515370923801493608144539843919357845254426606138103052741927409299381234793942942836335243369273587173688645742587559786703572594082171810202844081806288365060245051725238754984176648128816515362225552911272464365119660478611836657869197702727541904717643548098896648550817470088009579044758143704108742622321758385105578091633651062381993063609121057784728642513518238990724597958582306848408115153828607919243587275948184016358250336523165557940502185174077466481226507220537850898638088512386436715277525260077715760996146229437615788129130403743045021331847652784514883145416603233798113292276005785906409733827735141345026748259672221541531874383238681748408080938397161326730816148936882400751848317183406931907899197422582611204188052879684427373118845675307646685288111726313626534659768001943968259575673533479988534091477855222663166399906488980985128927306596992769924157661626004340999782476827967904451892929165019932602466566597337655666034512495720047310486724613134686309609048271291909435846265495595522347069586874872614153915498922898238387941421981116443970915294499020235002206520751556561801297586583091099293130833399230621937013957690535521276689492532990528517301545449649688662011735516818326894802474350127901284083272676092131448987268886754086080563638462442364293453686709591262531217673843442068731379985783557645001024177560373498714499017700247571651979526272685435413456976017525604656374591312228717682392157136092750742597268232196812100568385962061232544217651259255621258302101785150336844568893190136774492983358183570447515235267672611112889758432597334832611554592282789217036811656411384478290137220336991103900494164348234643968064893001656811763160447010319931145318108116172810679557462224639998402692146083241624720072327968477528667648799355608368310727899356765659256750201175368384337096015409459250405410335249549760121175294847317722750453451016732808312469856361741239401647701848997882244314293482216441216741841488849454559040756509823350521389282578859825073737077887151085394944132720553332070390862944624881475039602512292448904213149814147398068340026396667700772773110755463939757393652525674858163826031340301884334985183834955996318086199074047332666897528276011026130828264957732033380271880331949265174120620571409105056127813362399839607568795963985444166778702424099521310042096437301761857568953949567961220896137804472818737227185858524649676880655243830876727149579809083459240216642522511903476936181046131285819327874487442772744862490652220247435155948151071386611473032787412282579319461396129898576600642973881494308801849638584846097994192070687869939223221574508294264902466309346814053508705557512167900799952653914794571393578413525976087947093301121650720277899679729930043637893453781548682400264163556150710234098643929314398729287075978049626035124858327294634765329876971803432615575427787177910386280919123317307823397893619679498927417094279745451440559086468175045250625234919549211179532628780890408419288754187552467778066640605382305041555610350508298700388950985731392117477189421541789037670954688906609176056762004465216246927344533006489395492839265278252002324207385993175153744311683799216191624911041642577560640086388609534446869446180080638060219638460524215181597159370060414664959728459798003862843776743898922809940334944072173538366582479586069686513343710386041035612864807165672247051023647276725349958446053924293037066585752377304283511031596963927557319453195326723594530753073311004153945857447782009362261062335030166259943000631106459256066257276559400988203523144748451499277199807804701378027041405531445111221022528805074691023405560660084223870469201647717382105854280540242723414027511886872255255372936721486443531846406213443503554079907844860639597980261155445652731412698083684701455921328383615081179498599447240837346158141573242550442088203505582834525979997521822603866450978842961273484643431368405471711708620825551544140748256505957680758295131168736317398348429481022200615629884195684446099296257943686642107394130522210693330251372371685737308140314766096564893910036493317658778175532382597973942396644195851922837410981571711623834210490930777289495452117736799885977968191026288140631201615705451957572026101465947151884185873820521256327573691840238038171249954384605289783203365333443732233586287636030322301789710964934079379154319999788336349002990103533490916152095241982801149258262928813232470279932158465505025292024309931590205341283568204277731992259664694353552860138241953945457614918297359389977260667512262907406852317426134221708928600578043589461939130417005732657010296849582882715826200369515320316361466065353254991866740558270378410869160832987795675200378698694140420304490185011464218491856333214363569269221489810871444082548600447882548855279257546678567919737285747880336891740080118633848459532138123275596175136128143168415283757538770315150999966089776450889111036494570688901856976868214368726850083345802432111506222163606180449541897562462661139904584767809663163754446402769399003650060222115008635795084387991115768606042798063528932508987684422767580877259251293344198627440382629201333320855639157074640167029224369039169297918413623689349780067814697466232573864779292686069013456708430231612166712764380147598802524853342437585818967192882045386055545097945616407184725262182307382210542742038306416532966560515681357271836470792023700972761556140141457580069676459271607442968646393566834441255389062401950802692527159646862723760454152099927159232420217402861599084621816879586855026634464853439445405998249242941405372055691839589759971501896053229589294944360711223271793920130363794001864658978119383993340588245334574313154577386095324421139397398913463394036978980124537910939574459804629271148782518805290537457843559449101171823639833657937540459086085583077122623706393576035849046809975514356527307818420864358234448301901659821264503285621142101035076656368108799583775000573232507595874918180768154539025049739808108525138476619207950377537415862599573924971464464348284541610375498695623972335987283241608371243722402600790534864506160347473681663804081607365912571169774706140904952899191723645682542625712489171155910969686530000906456493663240964762371977610236299601302285691982772246244299838177823667286861176389199577943116343076678766460581340922858792835161447290159835576476426491275842772993250662205038027777778178619807673214781312226455788353607071036810277410600326572898426917655995283531734677656943502296739216119761824699864446646235233102471055936338613466884989594864200441488203542365027292043709730045185328872936538117404831620302532325162264174732586835830056163416115486905502296656537608472549335946224521588381279597115959288036706794189307367301049106727489915665691269978627190411202737269913599340778067967625439113464623366006704932695328745210583609018722591136947571793308624833084623191851704040971547950963558485960350760344159594083495047674864284670434603673191406537282202934947854233988318827777378084648491833157702536525344071396674870998975127069371191932843617581017346850346660944299402585164005364464169247569203825105872886311977773437208285239577583817330131203118122483968471330484222087357707739129709853851368058024403393386767455617601396188208482347742628178240866717123640439281707867294995300642993575770951532151814963282283452973570194651739734376410635597033535652949697822324500573628041521307169393650146633441745334809994569251793895131143296330003749570124515575895471278112343311951904868060169191573765623842910012323274751606037273904875977362193164187470337932173289856639086623292347071763455670339776154552447916390897140472176175059879778159460420190497598438099487079674470554929375748820593563203686562458562774696900663898428144001749199586433878250005705316662822410798349841207263552790945246676836293964800956106110473237569681846845423260345468345552906610674434098429322990141223075698464855644270874019995741039288597204936616577569602456594089249546143066448808123433427733851133527496363627275293936258072967954381978678266462095746928062930899524264907987429990715346708112151165683971414841285707494463366734505681385340275710253294238084168166702985809448515645907446598180878458438000335607910265858833578423605406983675977864614783309822089315780448506196461185429339610587062861755096611312555799469507336521954249788355312394405761220916307712708607562505022425727225234828009886608361672123873041016522743818850097088893011259079056620881710967001975966948144801526222819517693185145188554793242897778663990747063847250610978375761480176587428181943108813364691372950627971242445847727765308047434170123708677879465148184274899060360118561173040585405497983760396194443850615909460191122635591243078844271082224778695700833637388278168030674726050167301898631449548932089985325249748025539205446679893674625876034648923318802307353799635896453437229275544530084334489648579749086807830494551686995808609402136602082018804707267794079121907593999950904926118694096576294077749113934041631632688952119701418643230400892742127120109648276664695495144178756548110631953461563112369047658432433678181210017682858459787786184555874396827289903468155978124220223771462794260391597775815911915701087459655901479752072365095253681496839776474571520535479702636906305354942962003507511253669888916622442982467466823914693446789987164335425726011729088303339993907757319569217225265426185290061426034155906537735840713998245208393776510168387749045638190578553240230001789653183157683186763645788273757489575606541796144807744789479291913803450954335920897905010023971814985200327522481398466281304948180850675353747182189819888130049749248594704989898832813542060599843373034732562150460762367804730687021159598606323052632386808381637306026516702709659374662492720883761693357192472715375524904584079423353910959208398333235458121535830605893905333940942912196132976554171859069632761831532342990618299815818974119008073755924042510488235187365807244642400265685549368591290908083110754964692434968721269705024022763312095168860225003271357789114282186357627138967301022327344908554340814834137742882977481677203927910112297293446612489464740894218095866281447030388479579112697921908228868209531084058869149149331676918497240864967469897325147630000298659018756040764826987011038683019696819103080509378557330844412141807365299072025684873155434111500868857652395203964756227410494890373320214152246434229982763425965259482276799495954297225328876895284013522780785912596172823209686331679840768720768012981736259447287294394801183430795401309137795716985337852366988884280738624153899744196398641016587358169882034738432040383105242721719829529383317743743932200482034571912658420411823003338868739279452044048749507865133379313857808676677341574182028151777058743889984348610736999610771563005044325543260456495940114932552666423753795926530701669295594426671534004785386707642227581505818646422371790280424533761673894522562871993820530731366133845337638837075871689259010210345253149388559580410412788602580600294275992360690274898415690565762609596976578389227041604318726164399882092013225367142956651496478393264148754121699199766686587794617327022384512219185129630089758087207619198400427920093500476495106194942775665539532250634954122455595570880421870606206667666585767757513323392089651307311986491755863195278870298909976579821397356958813947776140050265263543595796431138320542786394136454619743706830873729697626299058654890175015411535372317987820045317957680471788922029706440468981800173937507175412148322895800177062711313030020561273894083583189293355435212199419495914460126319020053265697424389476456991799257602694229125502130697937628043147960089495299962429428074965770271907180526438012444097023728193955269992376062996593756346379406392104309744765321223283605491618889951429479866935601551278538771860886231241133493027257902882405618764730972293541227242391714967220243339648628568939375946849981019904436589669924884396577813627654873704337188134884792532239170683121933113717259218466673479252357595468646618338157390874421160157318028389333286032806537061948258824988931991230247305327956703327477951533728500817085014645909115811723210910924205865725303633442450584261233134290603966123392962192028873071719203360832659856746489022711920369726792541468202832762351608584857106648577804727664431671006317103904776358800808731488076694398252310217532857828745878645012635779637517012573221257392168360371229645850435039196943594094278346575546150325876287296940467277839708945094091822655621532953246035402301295616941640966435276585825927105480842679028631667236685216930879516974872395378006507133510136704525439009486268758415867658419442266471392035043211112192843432894145875104770093505973630762535715155674330258376732181311375734593347356654720631627242145244019494313115374474889968090834358349063145807647671443847598781488869428087857419035438617741739074984711649680837357358949855641518125273394800381791609176387161184762498528859001622196345729448095801042951171202483877235104091216050384396546890640784304554195509929303555149075118465092735033030768417107871990531865889005554951925100330960521410019212401456740080940328322188995561863461994086801436082584850252721248482579913718165241190192050677943371777291340088560396652075082690304345130769211660390182246695990785968944691399822823959718240670828034389794617410885334182262113471124364852439993837273719140407895423762130138423380312778041801783334967521232952308863599618101662992443103282852809358202710829008806674930129583871636485730072447438837333527944482566764414009982374645142649068641557751336788926894979256924449302520496295594175845267901483685095841528104867609424017005694045628087165421512619519336654831936808420148751987454463549000528600144559513221539499601604018330119700222716556610336679030755207188764769075540547747605250040947751019478197730347011459853328173795317705412119056938594813391123524460941415479694245218539514759936744001392197934353707050074922025427704164383808469507434760660960365254245986690706805094059517592269586038618845518812587374621716625114400730355526210355534313347366935869947399401446324595410022387002498252841660064730841820395605699341190509361442779311950767754258066267138699591756939745265537145728368251673366603669478052001103346229907962219237395792320006046378336194352519460486906566017193817347487133659015456249003288979815695559668920016951053727664404266267646434026990128226738250358361125008784865396563492116293076485966744494755249342476464289032307773371033179346960758244024581305674356251540635359023460056157269273474916273033328310201224964640107536669607043987362053861416142958438979782760486417633731212095380387159960430982210586896837691143511562238997873126510310567475814729085648969449079748629818014191044505099968663659391529999731574069891592642928458962941275165097459098978532015855351869387106700143085392742163086358627716162176882694772716757442429519879601553534685593670005747855449953731319265405715553589676442246304166387364724280017494323930482076023972162918413331776156451590444423114082672034808566193712635211892137519281245395550014242039858220375725440448820525842015605034916376921186321957841810853155382585641926765658640204809890233492721061963934504013039308447041925412123027600908538715401159686924488521411360674628825519328151829276566874953447441394418553883597787705530487874699761207013128137761869693988528254426281330207639352458467974019943574416580839582188503871609026024898594579666237097083110000906141060240456510925619040467630403010876995418457917688801635622887638932677626574579493571281911900131054852203007909312515453277678016719861366771055906128324389830505983678717479289788761156716728232757287118716807205791752849148462616718215760852731132905792761536069856778492885011621856406082656808977789313016832101994604090920628031650282469715471760238828494556679780345483251323454127845379071560410065743830446310908171466954977859967259779345911379586851520725886348452740945997102638012295286462776882633427596609317687110519724709461965333288679829416551437616060857249227022828593525754772658796341573274995391418978187444705276955990934996796539595799857709220111314456749940099081157043691391372687293891490974049667190773041165530713308329213656502147754863629214662213559351643008342045314788430738258100170561519903447971298019432654204448148404970970335133863144745093087057014675066596407246759628217766826199336883699026859337328124888890746035449414305173822169692567574942350245891935322482253702705183944402241516902054220959135302592590911558854305534066726506201994284577342074896846922109739796984218328148686510470458439813032948233728467259286905878649019052985242026187176430758246207661297307181104681574782303624790516695769131981072228252625595024784776560435240635864971150910116471291530867471034785643612095870438755532625431392788374761278627996812312834203810069661212677380520001489930710010423848763395263128171168062964835141010471455289316917495369428492104253207305018330417540152143370811958264039870594702868921923104312629284816561495309950033300461947086010766934766974900832427771279721778541356205025416495049822099527086854246770319934993598246630566313962381265735925179574638820322109849699590298725540749482993125189740093896590057360862368276369553283653026726853657568467128391071988530114832117657063679804846644363855807611766417458482128587086560010049820795559843647767369211344313516827080449920869896801870108155749519118282539639937159838092697309645608645346532856527271168855332439083444361762209011586828607722267079694144107770210570526769889276238185381745661013607709528496618558931081498567474265517679071574286489178616654012828486051184693115450592790018811232397051620881708420221521757798320765139589637791451685380721939203681126475892412948294570871091490546356701025228937637214537044701047400788352044789077941153996065695296299021267787309064843525567624636608675751638406591299802590540780833974596514698440798722867300502517697469659907635659072335799872018566051335392038376194366328464147776309344610870473961860331295243738057023007659369797114839134377244831688931928843757708256538206228061577192489810064409471673134746187577982340787231423963983623225615427876438214127996314128671039274416616587208432296654187259053644346575510423172611627521364623651853650292147016398835011976262646558209747242496562952281861986416181406161449617901894094003636957407663348554385833597206724912513693742709704568940928226369763013694548467818630273107770140441926587003681184105064437063045474581027894256438249909696369718993410099567013699929001983741830957019564894970698772636784349650080130442107335278890612783044946976106617970241338630739914465136328613193853813897350083315497935200519682872801846485018834703727838702791595421812297907465783580749339210058766499212368541064938088987929428206830057186054304420740162155875751851430193882546240024535104928102015736435036952459742791254154029204516607238234658785794031088556350735095734059127311793725921973797442202591486219055160359182196295328780655639071561738123762391591528734971171859657882558582094119225774165152089615297868542768508047507590959679028887248484759512058857401285265754449696128879457160660910997048373922325678208736213228572430618438669958318239351781480416776747644602035527304576310706904940671883425483375431127852107121412084275309986765474270618036900984830733626698781240185768435030050116197600127981464784890837460330115274719518252828429018911364947766082256317583221165876338864480590983512713332514830258925734277976950112621097109139100939583273089441447521761229059245324272053867620216032534687724260653890767409855833255801787479578159897198648751562950477011494242238545485340572287537931563043386694668634392321416728036959909015526338714212001955753047421541641679648915957034534131765301311253953949260348636667250722438015670115798105217087133564623432970921342305133737814025354625622085633709592564890100051924659396441275220979806827832091240745285816230880869391264101110947090184152113797637884320335749650256790111671934039875527213778084305505571799828734203680477053806936472838836746909912129670011149922556022288852486873312262296360326970605741001200876624466577779650093497027628256418786706572373399775091909675870010243844831849936273596981460354061398980510413892049523190642348568062921977136237093286569621789433284883515239047343183701882002085139178247660396057856915287133176356009313619320230816006409975971794796319569713506507653070835360967113757744267827962962004243881634262037012907376793992236952105876573992791812344501433887183562417733341522714801188580486729124373442791283333769190919022074190329956770923263554614595769978300029178411087348963273880165604511553381275891603974531806250171733712101097219778924382978580266205020612721330159475823569152306825727432637090385613766417855456356701550231301113870675128989460064851570229414654866191570813610171243563532636712976162873750862239461646787259701625833721982875911239066720587595402567046612006309042211892212946394438754864378089779302087902607509978916966807528547054682369613180123826982132332699878061674573508650499849212360818784982650101402346872845853929696339630426006933479111064380754013956062067709266883627890191382432792514680093609618619780873306562214974856142416883571049121750698297815522464054392280760770777461424478243401903017387844649441065482246471005732695233620161077425707811790582686864071848887643832804295217727830580970756897413305434428453925062520628319884037412302381285072360520225753726329840966374606656987509914890662769588643256623912249491699674635723365802193045136498384820054925408158735232492013339747512144798264671104437023522843446438066337106112017360467132758664792673245038384054405140964404214458684605380456318385993516773122631048008200151614063609743036412663869209491400753108675645859064426428577085847586843863871877834288004673428307486735386908503005326257169604252461312555023337364103928035175495117412430399095986291509494105456847391339981423007295193026229358512696589021800857617561399471385271731764463586957375818442095680175620418797676185513274036558904735199075789616537172304303792070585485442385003325091121822340496871063160009513368014760641715270851238837348116079620544774652454787729378060910143837977864540327654023127586024341775277278319711964591755289309052633721776366085533036785037519566458172704938283854399321404078374406954376225010431371476135402914925002502952063135265888733499332212648831750974925708730514788424109469180461576352825093432662142141054754371169158614352448194554329231540065673863833341057829541219800293118623871547182203167082953541259372296422674385641961501991512636464529313103073994367888354950818953838625230670084507957332906003865098532843745075313322387898656755755195077155434151901306664018361739837109977909391948699352538105425589685438877954864575827977239813627706138390291588798663616380973408174041696888885650549406459059177175529561691104070241085434577601023210836401857632413713720108104939171654966982008362136019557568847778261822677558811886441735365305134335683018973794103594905505436954387118108285094364687164296265613779183270759368375045102097353591335129359293479716666393639026745621428082912510482765477144091347391783745975245837584970346440522607331895252619877712043120019195597990285811335133330172690879662748635391955121209648207324479085341136890118576105600397949644754707142380336184677603934654796965867463235226147378247658903636948100724336357685759953660038572089292616698321990122430321922753162383686411471163366243457226763099415686226857703708765534243294203930906447539963814943407707482846375083768340466994279097638780539232051097237967034901368372603189012509090095290518494229532079829403881557340843313442898888517837397018804730307137544889671093228727151797838406717748170147435325290583266288765898524264172516429260679633787821947515397210675567053713764541753004681319570831665129688048455899946445309562274254646351221677823137898651664609916823570418508688681455507217296253900768383405156928495281197993160314782829668241305603974421497112995351996112165206961196694954709158233744589224654363070072932919167127408419606936903419418472535634927836028509857791353971881830906293389929309612824501913900197229433975419494696669311749693763240269981373790856239806097388209374133654339406716122781027438463697949432600161801565431630932055137499451759068524964202255407764816830491763983190143203220970426354191616974281389065641171266004183344611697541879873446365069451607009325420916556498292566385177985924913024177858010472747941744549068251523791314094968756208812899908920615371780688268355246727239036596621249916863958009822878086197612909038766636744603582329782576459479732615934195712541613997704055628312154883286661886413770515646801339322669111489016526174475622174685103510805694570455317365675308072721981019523151697896409909277765294126870558209274850462915923231440020656719839148022739590503884795374108850467463847662345050325335307267112319115741660802442576240367136360232240133802797369854060245797461966201019639814910572436275970957799264980770885761129957558957398329305311450389935744570221768714093058755864718555222580392460720582999370753029966335895982027727035527868985503904222667984793030489397441765973171781722002632324780540474828947726122581386623687194396535309296466835003975868147024578150210962378954331854973233155460459855803218593128933887990886744667261790530193057144725508439028419690647772318989491230243592984595848230911994013074649792346974161591792528708531482291805256146323916028079088786902441390290798769646800380851503796275567507507210173932400861963782637705800961969445570076271971374876480047385722322585016569321004523445868843740776562512929149801437567080849604688530619834287381015907051380441418703744562758797349240821296123436837100435542005716033357893392227423027799556303885124555695972482197884593926608539340385598682800358288948456236280720045479538776331666790362635348850067819788473327817309436927656186403606767990840041743874121877351483869278309670063566599548701473299746965611832558119572050318951203958752515860591488470245690186254780889026786002757906711240295296934786845115381761136052257678719700708483255581069407248395579121676730963050125630608573058136179013532395965742701373050862208074924153776216484062121730496577029919222005893408361313049623947099229890249118498630560655624164671739225705864532114977514688244907329247703743180401483106289740920050598682663453888221874605255123172208973429304949168749555320767835027685517736464330337087406203258086693879983512111551292126552367464493295736318292574579694829394324852614651748039960381323771635625471486492016556387894794936686437312991226737252863635880134864067454477288156568140479698258099931622044454691602447000372129175421528470551080332748327955054398548150875631645796668972150128380309976551704433681427326650522917184189164599013304584138735445070835768664149962085004049227794629307220117597558944175936488686346368233309234054316459310517857645929569482195009360520113226460055444914113933147212275854025490879639020295559516815583204060876876587336904613479406216525458472420106004927673038560240415834659375826976675255605737723434148640532010016160673624872307130584015865782805845276672438404208465099902262727263690696364328766916945435047459961290420652537725729948699645625396565139918382939239945341257586463982762871543923459317146264024321716283115643385003052133932229202428416376225686116142456743464182548749012391214934018645847915480770599943389707078491376924682154565201228116865418553926387080065207232151917855449367104212114069029552184540917518557983377784193159510753380170297849116229477775348263949515255076108272921858071050622637614756630913797379312380169565354826477866011742757082363422688202317676530169793993160354701788812076744930611231189328728863883761187310141003313807960786186577348611617524955557150082774171675701474612592907788699445549972734960238856844989174544078605475244782873326342949544656740645122212498415064707536389647262003172920861992749168668058618397832136792581241569924987995824893119219229339230509488193080076896171009944858243995265228439728090506416047519634030496015386765187314293782186723080992448597670950314792029228037070719931366233070315381173539513462221959509494916821072819513586768356201473587588233041089253073384380499925230111138082587186377239358256393232985177086853964678859442167127450084613509219990185073629166352310382893295112870549623092986249932394358834491754226031373010293209875384213561886482553900399234803584502026210305504564899316883140659506020194621168270856524059577610259696123077893003847250913334106456098702029671101153426099973708091031094408148744315252850890145211371446035802050569219403198347847589322143511583407397244312916032704637324736429274633166650279638909588380366398712713362131359728000583318470000884082283225480104181991970904131609640534580417674058602737724428416668449663754654306457800627681902686508179797301932446731931077383241813925415965721869409744197555150046614633461240452897138952405542202895204117919333404429970381922705929720281587945976899023514691003552517369555080655663742917863542533799422291453194324883438188972516985626767990465488786154259572689440443477769286647386003180805389710282108717468590029261620409049438196374461035392615162302224976704440204402416435484434560237469975580636608104828488716553086430277781264997905392572846108144107101938109889559589749234348041069404854114009608426388197475751572633291093627447875798297359846570176644128002281101604939213281380201486814020711651373835737926123043197705823338202275169536703960940584763102695963358666086417659115834638914111973355756860033032876561418418836131375435800718168203139451582054039497654048620162796265440803620635441241995239462732984388387304090705793309567861371835775734784387708425680946900585928789266341428620550662346975325553926928415999415668828192504366498697696253561466725893455584985881771891974341795957006171128690979881698788494878612027731913035465836100135070817545834812484611646978613396690205363112256360958040361877105140675380858659421736720365238635876861640527990294557535734343738081344621040578808269280957160160167633276910765034674351379165576572777600632998359963527039477068737477998903187287292734027608360688402523732895769721381941892963193519561538857333078585673356252848774318800466937235752444326016499301262068589857999193653003866785342542536032737234455398581336276731934495041246880265078967744459559241787026541972982525188181073572572086557213349913261198668141480094657802688458665270945179156603697175227616784413729694169501947963579672798899596478124534840940592968048636029207419148835324498167779023179215798372313209060101269052037846471350657628050033625433527291962973020543858428226351575352512910821679158669214146482187835671133320179684633499106904978764613308897353965543156202901070053773525340610252109407623948163295071228007353726410422668876337652661319714329163209111836763031185167323138033275433077128739060928304125606964764416118623178832769658920167008074725809975953892623304727810563123267631706649062606792459663019650934255642269491177709431072352727867350409457815945575865477296171142115947207113967557300997515494954057226199963224339023657874032254606568009995486737138637348200811504404832576836343799469125189276247801213079030733495765902825445226035587183288894287240136609478740430688753664078564306492169069611907853964333159079914709487516412612543421868603660254657734023684566139085031329558373835368488482071432430686228882536500631489512069278675686827290130142878071778335668275434077445680621332526604054400858472544656902723177919644387321578446561239253689195291603617869386266414291014925750135737117283043842629154894293701602601864832789815030197169323135899583057311286811908357391182862999172738600315967572129919126662871582748325375929694392351799419914629953612091609832708472099608330998874682479242146704950967494037485269001766503680815632558915218001040499147796938361197908718553570218395728353952660711675998684698140120358498566998159672019256740979104887652004644348791373755477979771828955716900781035249410809492531790962836622144529024668373505886053796416731237586489607354014508151146848426577012722900736640940024674483044465119021556061810473539452715388216716090163949456386125075490095178593632138324853529185636536313614114157004668506709752031459992427716950085594193288469055118288742006762328241297866222361198704610907986944257612864618086939838401019379530708174926822810559729812294536397045846771956766291240093020944512581954817741084818106306950169842348157117518331509917273572168400759229047595386132914655370038388263501781872956041781960436432282372015961515231045962763954157730400095906536414508898371788357386929982845453765692371557644426612294485325704511038251471360382105852488884467165571919958526192405517899105087113234755951905836152554158707020978295032202519789426639872669383569540964725419318851792893401145657336399060956483535121873124088571696867672928216098398999313293549735508668331833563078989870552545182007994393204062881397459179190026304037237937004754973721593907563184574220560151710805435854677143640573776147861924111606553126091707057109375413835570691318009028211535799480110996185244894830350339171671553972212446215560252545449762560619796874486435389487476920620151127581154415486948469572921072563584427819490695132824162736135385476412806051472956235053981403329494108436989577361476746500150429278298078322906500383371108410016223656324685458707893948704966818848370003488496966540583080608911216789580708362336984525538710547607602173532574525749617202694425136265806398236971075516198005472892442522330559929898029826965318844669660613451618764894519093688566696780136196296990448853051429583676527470006184358911247886065377217831083419408388077028034401845478188049745281017653576032690210215918483349093610394199336351887163260316968892472055931542779752677714824231142133367916438061358303047079759502661659079978848474100950791170985176886510812415876615629610729541616156242598112488225648274751623077013981395729559854539113021975266716717142667773180728646024822965196164643774664421257455728921205348482754931782242531792361370303556947692717155187728299268944980036254947583303010556471561233975764326603281665687922671930653074049944931167932352536426165386015235491001426391138526324626858054654148575972567681031403277143176747418770673397813439652985320640134534291124243397756675181164192635000107063918683371984701293993025373520941978257234296180880291122929936724457049085406948559740620309663385498580353178114336620278388789763605706502224728748546724882555909994433004161422179157877683272003333855408349163313821697181437844061113122939626403643106720439781310035059526257753558871343984210195347214347254507948201831929018524836262113071930076691993765267103735441234058538545602880571668824200642682671688816774501454227120319704107730102090554089352365771202430326192887515819703858466114092139682720138909212853019108936675558749477410626906304701963660064352315578142785722477384034879827196281887331740241854267631681343498549757182218717108953130490726932916779950621587649163370268568535066177215435271141351905243749852018701896139598610958442195807497748598994825514813178886548343483334635160072737255421876519678560222565122444703089014635672865183664325762575685388457867259707241720561234682354570142281043692628201589322856010967799916284366869800827420943382978918273810556635031340244227676148048421732702282586436455438153174116640632049061212916053693316304967504329680909315311427146005525055177240541035119198932319615352445312989521098713442434116379321637191318628335002625398169654069623696738414040409040603566368974489206106781914719135464230307634242385341850871419524196097413831146424594546854542223248940185810440270557148090386542358139108128559222262740718881341387258277493948517538920749265688076868814876207569533659210752092729563499247666705967888111357469895174045323117515444637734294020200565041016298607478125328716296521414119061123895076230453884966478591837363312319076225075948587427125989639803015635823887253190755503690012507902088004214637627320121585854379478291877948900164297246561667195881196789806672036689253912754485404032411970467500408943041781974795895948656728086417036702254670956664786191809567854664232683131704090036062725062267315852669244015477457802621410810238274052814114086725325520478805033048352260733470700813497774949070670652979824311684213167758849362646727384637197068848947524212409564502808562420432446978522618828414212156536152835270831518953555352656169389862646012116877788181574605879192603837579092642612859315100321233189925803870333536721568461988162272518462323853093726625290784666117329309473754998587542479370258135229945666767593935411512825415085253441371371590320633412265238524045303621651429492539808755625753267073287937105027969500525724229634494726887394763937156945315595735050948427929819800155423017891258491498957175282991636378470600231553547732920473715436907858172877754598318769254976602279618808573103459907067238158102215366061034154272557909855811731027482643638846325034593467328424032754782883972152740638465223491230203176383413054771420045307739917710577471531377364244240620822373179207944011026853669869315076557726696624573426691393569051864004303600950792698829533313467616619566204892848088304994958487613918810486450618102765648926894208040620736494739288759640314245476975156857353342026445710344814967126143868346995753995241168643458849751249072207243254041786210606293731888696439844238541889105320194503349370635329105913721619514265469598265444900609304248498866754371657980856056544838313370631435344551056591010672783164906929483703621828484302852991289450345803598141904040413121548688881244060899182165824371911688427281061064629199126048888914383788152201150107763922075002323790887439195582655220378841477635798253439384098684083948474080609787732610382935385078910689216691342534042670193538226657274699576365444118992791282843977590594292345127116354630831225913374108090522504173898686072982431446471116298260855336066292640543079124344943704016756532486745657608898831637541281782485498275129427182611359602491898115545741595096703579868887001910029236349277303964748801891627054583321489509982950519394268804617957689302550045046479343273779923088190339994709525079230694016642571001578953259507798308683101899238395856189074704224290800073382574711698074538674570885301862622014185876842217091895747489720334001532845980592485449858850610089943768206825615510358201077364667991848919801478736126343401957573161421047983098661755620221356247350197674915138074055394623863057101562500716577897981005205524409848666141653035880882926797453765899160008028865006181546811416705697370392836828966782516328559391370193801161438174389210707653057255389316458316784435996416183792186569413890532377135404504742406310893317132179603716723044140313381986296323403893393871555348033276612303456668195312599295628240986743625562375311855262658144888464451460287726864435586439008658404683169785027907863235030910782567254997771633193421695288640265393801056429660625906440500690507976186655666822265192224198927269690141019879978487773040284217338523921379562714253031387763566348415959008065264634143946355598918617721072438184345506480028057703827540396568419392702848212049689764212266807497284227677396231094562457854626102030812567056243095559838707413187304824227831281653719018023728913813681085008147575406829751650714636446165908683293201789132636319388435280656773118526644436789308769051485190075138333706410166000450936072182945260526383436445089792675677601652583786421115393127862364289544140936581941606540636698648049627805382717359553789255094122570537348515898715061743817762538794424118007406010184762652827696802406680768105124103781554140692976548719258267987535120382218084405236602090329738073632073573921204602302458433321116274726600688873470244208838163405319739899780849026183633730208348657560959359171627193662133838915370107649465149850003284452120047230398412921020459213242228970743950163907805432374079044916963745849243102551604674328988829651594197905113033965625347422601348114304112535223573479894807269814692836942956985143436423954273661485284107104520871598441884208938465773595895612230200398444803602857592874821461621337163768021675474171563805358867159431991303885501927398631787052190139359298477947633936116845684863230744978451693300118064311254085949435821494420445072891684294618045527700490371509919945360097010537192043721358582918895252679537908380163652193581387952034622053297874210568284687451631342301752211065006423022440606755378193282982581045700222590944938623749731785084163454543309196304440692869438305645748417677615948552929673368688918316127082621854376031224793707893732459912077526224133117813248119702804128148292969100634424795956551348153865581129766805739738693895448609890821340953836103417366533998399353613065729923582180141132282962301034278353593480540207974796492464233037655111947315518635537763974363143834660313453272767203197239110725848575023635779428826073475131044420780202381339678322373236208852862281131560584697486838746807443851600492772278975660828643350453299261228623896713549495349169049228385684025848931927007992974348002722803401779710951543798613279108652295854023849552379124215044790894513381211807971557204227915592222878730803695392627932725779952669410653746955000249717652270798861782369757459311228190557533073260366931944097352745159425923566593205501309738229339827056503579470697980106233984146000012158949697541275821927596906574188083950824153591043361974770887344266939479667884662220796085663114439596919844542640756550133948757902791850461257126224294057423303247897432641783287378216089908087221913686204433972046015099709783297652506356280241779058445176471461927131736828415222982404905813438482934759678248785055043838933997153507534930827400636398031042616086972797711166897908644571684586210173463222671400020258769271908644333007954202636592791386891176444784797762689739226229487110038022666748160158349068837208438370830527833523344582262754506571171502669216761802724842350342253887519355336589726519105235859478112483500978933627181232792806534294981309615625191525804106036051477122846309473072582769436983462708519042094959694237108864913495916122848696041128934004017944706408345915646414155690747370876546206366075642600273505887875358399747277878059597084114835441834907535184764737790822603249963437408737148918175677879270450272315388544927714972153351863858994190418055301630570785327844473670097286827923417323054342199593506444113171217658335044409473953574474239955064220428627383228704466668262219103381979931675491382554582290407754156404120611554680073717738139482711595786696639262442599648917935165558160975102956491701506162809763562166284373725084537399694107962592572191647900194815241802121945088242837336038026959205631862592065367786144811191321069968547761323435679826001056550870964861056247287297665127403719165342428635085233717713388789376637206893279864171891057423225816583470095720273487062513132035313756326209403268376848353131621616798240055685552343112357258698651627086777326939155326590473618338314599290831461887242659637634588578216703253874831615376053569822817550217180777435008945537774170090024185765415470147589914047632624486471274520669092726252198173642235926405617139292847923083899792815548494470640072022041690153818557841638069322772044221018818749361313489127236774961612800458979379666884878737136889631504256344800074506335357481324316702321056467573081398761047086977571217889367192322202966990046060219806305131592224759784611158828340842358014664315112065002166523101429478613451097913814738152577818495338657666208422637479556912474673503694030743479167794314709448549664262227813459546236094852854791193476534393476561041454008502043572383441501365647643873259837876273420582163114675976746362059613854054728086558802068863915285268525870793655267313584562068229544799311244539450992638838838475812687776874661654483236050212747703285532624784222701413043523179682890276686605130306308091647984289612981788247314183199178897860284083205008671704344007687941379902333941991240460399257082202645914550377137413002391263283130679560507177866883966939639091724516858301057147105553403703528555911513528265143100642866533960196729919014692590344581941476080406419051426437288511077820265143446363025829524546664570235669899091930435565852975955459833023849292122822316117244611172928117384417976801903007156970718955476112751824763259389317706034200864549048191396382428006387501096537165988015146429990894809797644525767394600369578405454975490207746532930813687543905606055885138452186342822645927485437644410464425823551524566587435946379611887108400144052391295197206240068673388562866818807912340908950028105703841946279105199659059955032255919850947806020501582629649276635166594092890329898593116155408229296325936674625950606460412024011367367636420157368602986224746111988309213880057299183989233707781898483444812578771967923574071811324221133867931189897454738549943592099199669272423945808140164963345005824108632059380785473530685445780663006169810314271462173488833778809845059545267327237873066901510518707679331586536684559963422438886877539018540414022690171616794168088892723320314892821401972217387692783999432617378258923669220884043257139851891371633819956125072803120184809105199740866880298371432433784058028304248298812455581222512297278883976757063522337856144214326821305223877926880497077696356290820835660679302060923357680703454472545775473465555806425852567166134262619769372300598943623094318495622612161036024187956904002633589268462880153704394188764351873455400467604350346947486278802810861169825260219848718985179357212319816645972018729231624466769909878611105854669977918121691019337497449089150904881585021548123691636746980911547087045133916981568552546958302042601920642633866992958857208244848538166575234206671182902062244722328652394074925379952283395402467693723476657938457227465898511346650410451619767946366297608654434799261686970316256072280246414352849629114493881110033245388654918423037838430979688553872077736538189518101046955533296334953207512106212169994054235864447918256258229454541637419059359823808767646284715339742719465627458904653847034976255426976943908947955594010972021859085464590434519790799239105425803313534369406675788737787181012454076184321798542894425063151841053873024838873424241854726140387599522382823338397749163994560884701095757868138142484399724735590305102742547393869566832333520791898316895751745983340305054213615317128892171599962536456372480709003892726081242909845207550254089095766693090589794640643918666872626592574929326760637595623982066585246031061180676741448516427606050323294694633239189028158896627595462329529344132092108600902553141203877173324980284574253441354841941334990621563534130796490053119143164471325558969070140723674923341090809486596970881393093359352042928716817996251175463456802749476460227344476042092979743547304756615851493957757417071184560193074940765834392199363446407315657384376183694899117100846765698974945872524318308413431900994658419857503666493677103241711807842907085686093972586847561718961230059483714358414160536010762454887477372970132406265980301283220471033867190081213916095663210327124256113190309409816129857909399036368521554779538239161786735299434119225919427176814543033729542476270849818189494347739949004664198286088858697550124306010253190189871710351955293012314620285835359244708901621451781669272236897311529630554724708415277231135450449043350406838433586129315810417556114213167229088794722932121425939439880911075269173355235809902064570669683044717587027054438339418102720448282472817286886255787792904718926397724376069417414971878115071418068868590288022448104728400898761648413211331145044396380009331606431876747549198491725267758086605948986769870826253037140951496744943250773664001261795844912606926738383543573352847273066658200212057345217140694905564427829651306362404392175505566305629126634251490892802510419789388321079678281359575372777619356617381807591008902965685784116575813018250103449108012824534631936526155001072085044925700535306838845134410663289376619797357499799848789976340193037835046791490896634200159355826391806968400835911309545617417820760640000126784024329484276776816145412029711129344658401572046465065414109360493627863439261826499395632835610171365124133540669666857285177984185709225337468039473453280543555570764904696332008276251717146220484729264341283671655906696800374717555485015020281797410459298652693754240854790149862566509863866215740221046075699803328762890952447860817737738898093434561071986715711217540504637743337876126946915009393841869994179832871950371802725675184621244955073365580523319299385745665699440143803815381816316018467975058513945649218135234488688948819489157158202555995806118622724826103876206702204181778297509586890445145338507140526199119185031311356590487775282686356580913762253121449280029969768109543448070030947103876969686250495915249080310409952736654577287541274340759074838413365055631754880832846474693880917284723070681306987183463419280767337770350183539447406213613279972993742915840358487774323375686665343779909052478246907482833789960479804414339089313272462964842076243427636898138597696633903978001146465856233977658290780054784358469419586061546742582052008849113246545739906123577497535432431048649812735726032147251820824894841883527263951890932999910072955669142150554995884325240843053945940699850634134499678770908545973904193505375813884390650292923583791539791582462639750243335816295713988089579187404682501110409446708077958566821061221784702645572582503207245773218445190976926905793531122833710370693472073811336154007936918626771715865340171322145680105436582356184064995275257684588459763448523684567689484670332142187119627316259967766802849604435640408063902503122122552098772912102554429096452347395003078291386703940445369942357389527487919945524559507653464385456516432018715759259479181327632998124844528629249215244187545439585654754244751862133561893075457498166433496298893162884195633265555256371966009735349561670241067076340496050787549994240513073600039945626684880610319990621896215561139479064695406135515251027843583895662399618364235015979485691526493016039148180373894420096355810192106230444000313982396418921302616886930658892595714643467382403058958930002662372865239065189788820877916868789292604862848495493300509369811064792492130782410626678724194621940418239048767454947802702203316122347821481535125311719296901640821616738215609782452027911263980691971500003878224538102122103281715765266120997635004494355429559333656449030598922249160573163836114902497476476212193092688835224549317452646327615742026464440987779617008009405107418486788421690067134172957375965906566549804070858441767580190026040140233649089104404856243283673749759224964090749655399853701751856072921597159085948072779750856334863384740533869495724033673454537176916977881178623961826598400939339024354917715458821374144478997168829693770968686992337768919545662108195888451705736600035018654900587542285320160921307767157915834510698221138798400715706825127823925086445332213726061907577912419921359137565665170615011018194132967731066741643640357632999942248482532695224626534545553500701432562017659647245181086639337017321972510056171338521500310230288678041479799672582561477663706601915743228575823924278899495912966889273760164288851695066234009906886236585742864178889994364234556292174234266206180733306170030697071533583382752555035277805552701628096490863880440896215953563076341240197979261439934046881377371616007717541901475172620526823766906862507346804135165684770297222229430962885136236828240497038180613340330356754213359615664167693437619376432212766443660482431993511263392506652646307782907859210262838982910739007183474984998481448413379412564948400234714293198676102730019996523953749405959741757648579144729223228005328846936884538648855195590855962545041826585949846901309086615830508132013402422506713088789588106783684909774833961556629243543289181572863559893691602551633340331646892395664646398494001631780485817197105084444588904555134244990515880073566369507898695937773851130255171571551015393510818126279501717683212251268745835796867512840947091015168536026415827019054859996639249700692703174998286918262880040287517032546358854189897131975559417707321838209665380939329999159287738278513178700286747423502975469923734205518806345070713765347929382521798727893947442277579335196645774226818950832708207797995308862447727148604425992252300261570224395767362610738155092043701818916183174633729174803124020812406146204113875261764597743292048800132335245049904126746356951247886242188895485414389641871798646018335328611815906225355304490952463578850525382566402127276009680919955855033247964976193802825675971876574889209560585579418238259054329485723568345397608018565885433077102114846215382740966401131846944193349746595171182754673184770420733420437210345243165365856181966912741837503156866092100979664091465813402671360887045607902680533441274289386119351168485751906602952625293171654479498485925466900853673716412712303922070945384061556907724129237920270362966611514450471955496285735601581855838257089286355721431104810472934137589328167029154743644591633119226678215783693827558598752418255622538224706572854794138403924107995066872655001343785727225074902238847754908409408371770542658676341533472261973318610374107472162196634830035201156799004818648556589624942278112988028733669101501835182353724924544320223280350144017751788692678147577520709765844859933479243897469866148483262945314937594554877667121833225314378976241883592031947021278783067895365866394079561610546689924391720924735354828338088316286696117089269864140902956922190010810561879990813103924356609234412527333301231748936461038289473883943782298762415555216846692209675142692113267337706350812281704334359542524998139945533288754957925281726088371529240761292564486518900692705276955043124799629815150567385819201416207715067108946499167552280044251275923000414090545022600589601384093348806875079931583008509575468974374899895128371199652662362343926862620370931880579630114376893246180860496432427770065089478853580395515123846145030540420371398872093460032107267178523628387027650920900412809608092979860332519707728592614017082042543257849325360727210881940722316469177429942300575952638812377057577627644591339277445356003481723243908112541027205485987444244264857972954393893241143779574935259224418369688586542239779595825317078038805755757760958932510359572173663640561561207193212404640873571441058083440894125064931134264664860460614057134573570966322039588733815687311122033852188458619884003503636206128890464933666599226619024383883872287183783956900147512253276251329475942255318240219541777582074110380521050781550528127414108567225983992900622436677683245115488554381716746782584983532750929667809972730776581593035909191375511873190142285785578863434523639323302714875497609561684768057923633140973003236287853478562742091896145072001946095149230507182375018450399254399018657420399261158877365278856665791845065213571103805092170256583097920119223894445273274720546121595401263233873049683236175486114613517173045212372268514657511026469211240358217900394327927804339673699718467579306494155572662807766841177532025736140737189684091824576480955164718167740391145283180122992725282992902073430284676769886416443786130794688210061564705825370567895905470121540512162205377889752081017289770272737350274931939263798054462252794071865557624410970045063634547367774999090435122754191331039409525390402496387718448606517836386738234203225535884125409137130467652755721085826865223171092137042797908095644425031594221011867548655541795140156699867633597077188806802512419295642215688142595076982635091085437910944423124347755453792463700033622247004188852933311974689871094969245369435932471649620721146461695804376491854028076976618858773812655751099918036269644195869654326324635618302662635892527779548510931206156548611434527071128418391413938483916802619718355811499593333759544733754711826408736043340875030899027257878247340528108133903867716897440845392275652804428675277193195575025586633704009705137268164202000141776999636865171695910800360137155364525193110175524360257382274431481487798613913151353274086072026039988411475192280236851983099063928398778278557822345248999263951709227362174341605657865876311515036198694108508119720528652041162219368586013191933185575876038523867588720211008959179301711105601653926333020232295204355588261920249199830949931922240878502939788625613529293457901814002096514435737170378990728757833748699746032389350176804205362323894929882430110360331362828029347882818937880832323006055539684092686157770037210709882042882314867025184801952656842820878020077506606896077644584986019240694484297605241856043753359543840870898713331800624706419748935203386369963624223983095570253816934514334845021504026423087811631158416692100049116422013697444926720859817479731030517377858060667636920910389567128576282476673236756093238612678632792122717007319466388332478947680514438768711066069556999788502740253190925143815698596650349484436251818683668509757585869060429520402938330458625734869823499362533092213079345308306121755752367672589682661512681179841336142295872742908908911903719417503905888503619019272866830403083035741172705283702493784745029158806918155776368953690237742694725245652876570246085207204960830840994243937686873149450882614878589182440875294110279577097731011611185033106933063421291908847512738106760546155399316518488496576624338934459495434931296168227591142252151260867763739535425532258210470757016341332176524552095013662808072847026460344135927317569039913897183400903988875663685027688855883213229770757856947345827904029563030823074464157071133972366265524151201936256150690239002681687474370188774853443890094662322165644350054226682954171788396104800856586671647947820194842428867947802631391889648342206319760199294906954993805895090012192316425909366616220381578259438691881776536841249787894543220462940101100318508815689522860479355354315593820745940827485970936735885582135910802957119162817636264914611920436865122322432127446079956737553424096501582513982984417385335888309690511964201746103127529969817248353782184690526078313557559396180346779730279624687655763798322888279327874216963999346632394476140750786989825862132405281921996175267952528766669400108307613127835550532904516103243703753160921352298196508218449945301237049442660683203989187908466560109853031988509718870141009651803264703490202350824587970744723818839535230430041995698158394651382896390194319199195903235395083782587019995502124682717684214759632499771212109758069908822759548892736220956372102042345035916883447563643542263162469302559006142236042435860458585116261193903239798087243406578408084384241682094680053884937057462600467511940842183968594469340831136331051539644682043172900375714487429608273151987793477279065517130959095417109139687633774924236997900220830447505072018323746591799509817799593231241507133574841300015550204389898333636229301464316494614638663481744019324522450070416682404259983310485584783713921131152900894495153035902701958971637445666045458559788107777199585475957796688203500736610036300216783690388977306383366817946111849268871210509816865152199418845687323666442542344876121937646993863358323895711825137158555033134066314410373441700746494082741490847462515546860675177589885614782375933229956880150442623562360110478232424257104362593081401424121851340020177527403068825062828982814143362551596034199143751497596365334481045841405107789804193612806552533923068835142661042437361328506843714758034595539346156898890283826883886169444114241098274633336062532291073988763845405959137462395512334655915801481654684631766239898915667559304246708441273911070260496400349103476804538380227927165864660869899429317795026384478326317262369085008830140566988508101206831834932965147659743105011429532515232632642872634445573950453684943323927628979957817190707495283952323091697000736143582664106992612495707334739433064870572397445463859817732032514560178639615108557618112717789613670386321239819710163830318386393881481266356530606371484046720647613107523430012896167754476966500957616307758300577740489941544587095869084101966687438146565971470055164350553360761663935231734583026798884640631597255631708885574175721911022227187008316596805178399295999707218067008851668566607705039886767762699481174346745587239944546951819738086893715607962614198963046098484610077580659558206116059564061399105510857485323532928105921176699246764751358499736192479898300305199060458086010304684694564772524933360262522144728386905676187133899485898046100262044950487150961241599502407916660938584031018913279047613303867489490367224197240960084888993844424091070196244954380368213948659094823173525956636844418992893088347263530142403293904391619805459504187305300643603708005796295852713735994696259874550963596625195504753097394471233030619067832409024900386365497511061011639151055400949764452467945125553608503034211714212177393044636265709486044376736744570864687085204408774039051817226512946708394868438900064218752022856937392453849726498387489649875129154354202064851570276427835604999691627678562466306309692424208203648883510929122425642376270076423573612203639237464310480265566992879563331504885605643168576113173764022670668264387723709753450723660929949501558252302814451990600769827590470701270978377430671298103538446466571976509138865168222722531672249256489988256894501054847847920532460116960336422229784075197190966856450629270485411495206534005094179280027461511086780282654690003898137188040795830908508665895392351391073024535990494167061212046943582338736235884844274207195812793099330330567255142813140089825755631910300431977764282698547137543702154630588217241838638821928498980124806750419597765638595833763362405711637576403524186839175698939297646632909271685988515016069816069435472951457908459475517094600670376768821633516714887960234080764517560355201713211910880151483528389947900160910108349328110290281803964184481983763138358297839196217829139314573027311829431165432202232170497959092162820019615713482222400504211692635049739445314305284552365215729634513313623376341805577899988824429357968355848397489133087096140581398608204711294970819419395717350043512585927215746732081172644660837688209484923766794036207375282216899687521888448629914047070896257530742148179177671008060716025270622410596424664999629177966494535100275336903176387222642537557392886100457083796177528717254011031590646106480256677678125318573391617064595545931882744484800293897868838444926044458765326539522457252807601633656560220880305246469951815424814501607513652061765334907345663577180790762189018589624841433239527373191580007762854687126367010383157504435056793093730467782062784176775971702976712232040076741664192286113838497224513292036558880019174626250150889345940447371045230890786557527597270479614884178750311755220519161153513747609637131991982965372394023324703850264040677560033292688329171463158822239486489089011761051527522807748846054448845086206664562132258201642964772869734727060350257778347756789462537588548865263285196646461149281102923911168898543275677931320885924712607842140928949664589799846299573687753951395224114402495548766136614251054339074060124372019407657838434581445074395595212356222456887737260098313925604947059671599493384309451553898307261107982173833374505980945837672699303630958445495616539072795208139169439170063806488313096994115073115123465558521873427065297351621795939750979254785184091129843382550861416350040164180120904896286507187534606415977091922303746017765745280311741001724544132102598987617500841321793452351582165948951829904694437997905363573016823556433886819579429539548839619896800247798867649401492144055160213763120240888378076110108254685380617343715470621087026141011633499208463302171044028391268354352558085735012398427837081499411497022208245272213395777914235369106878477944477884496163647886608922018500218710683120358110196529360914488548915159420153848943185423233678222389611911992617297988803932661513879819040033593683842916594792687614108480215655060927168745832883678996180852917153335065367136841913886633934391231371440716966632475209634473268677952734926599076790145792544501109176237913294166858330105012734241955611755671428985783520815184451803734767379649960202989205606182860653692281054927003313428995234195056780018061189990073596044768063280547992049651923666655560662927160403329765047746310080304134936014180466094071974099752079598191581272654266628844565255440515214403420725144259782418798042814126192801530723944404142933838264836198897011388999546691131222579440668103032800238305337633001975325168907600411877872294780813992392752582396293423279335168388876939794037498684739180416196930874466426427292882753361391300293729748500958490829263887419236289051093158690728557491272934457451907927055377026548768046721127943839113333290958387152224094062610301138076748349608330402257533392754569468649665917796203327084600094873799877471500145915196275622550478961178391463885721131582581987215867059106151281214945353946473276343796278520512538110904054951571518686674258097704897992647755206280922982292400427915259408211252293866405338981903336517076778575512397286682829861562395289305927919510234590193297413794918461771669936709683071662396380838007201887027274150163643819001315988681059825146886195160500977554202121080417372985113666198778940364876293650650345797839428743791467546373412035922518973274773255302222751710546782745001900696283301424676454583005613191481624309340461283861924563319233390051329592690151412826225297865254928790406885125731759289055930658964231903353222528178886973804547941823372165976893245101500083355785125097971151748829866467550044024813612546465543223185789670910634737552448969290169468122729762308719608536310672464523996629330222030507759916064669660266872768746802049697089814349236051875659449160253159694286493391941314728062972988851430118634007224399680397821002551991970553370304633233571001804991352494239935932994722702130242120324202749396374515743965380039772409660497835096202158025449009699798722404998011390117428246194221649650007208635456775290464695359205919282322990500171599410399107045682152176267492187617427164369283648342051922514534049679372535804914222531025825136447267854568449316656285162848980040583920874135382667818471550541093407356859804032620750152509668695812786681890307220144580025481926052334876799020253457026085595741702789330703475603354245024103281509852310176485462315435119322208053457037777124871864822842669153531709409841040305551447887036906703695834191108621885110747867920119842788855273924410802138134637458247178014061101331847228351645026318958566126187855067435739695412304291740850882723682689740830936634433207103232545126041106314188793734560977431940282433822303473940244755916084296422781496572421216116791921477369146046594333555586149911088917709876848246335413848811212524037086911522583185767490645752486113300292616833566678377968293385759604643693991625298458626272803896201479630632838038341966585546893602398387767394608254891308261231030553419455716133234331839703693813831213174366067369469332866255521313674205310572891978619086374508909488445537336506959551307675195646883830986071672022219010120298211495770263647690162357560888110995734860155694819291042877345816451739750415198758754846679810813912605614775364231990675583389876818460942406244372445898936059109793704101577160826963399161255737160361760955066105690306256642222941975632425751065273166282332504250136513487369256597829210563406583834753950995772164846352985407835012163332627818511793872043499051614570205246585637454883316985140397993448455052156420371285089150348395004939255240923971401065696577232214876334922562935787752074901910321569547081554823758200800491678247213529787288416685310921492353493663184633575392711855328758577837789587961637053422036627516667328845040069951267743818768742005136328288627428423410796705498217835709094538163373354215681321070637321261817826085973551230585499519536724717755497954352747053034522092955112945191293660231476380641160789361159417048790405641489499803158035723204019310280990512368850225287102159191931158363474331789043072161284531116643953786280821146147995359439464225906298827610580115781264324478849450949638327459561534494302136169114587419773023383982206729119032090322650646126277396226174241599192676106004044374726504901584655962590907138221821683227482209057422996199536371075918180495076630560987712598071811485883634247747242533320258284808622346586103502953051646997466061281235377135677082520191669537911936408410235459481393987361562682431356526257111902616251407069311073813801174362451465204617838409478955230191583401285738132734807120323572340587781838081789021527560487197348630926041077036576846731810951651514033756021153754120818638054873697510439792652853311430220269488048507738162900941728550873604943899865502146144836819043877357871338594741689160597520186226713803574474779654409347310769234466152958057211950114855819595428285147904996199899981714071708005129752185580167235397985879029050651762567571181942944524409817761317426330459491051915082944184971379386964473117031255274848406446373548117828528306905799386919806975120147445283050923879882228782806241741696255096681816681294310236859429940341970497030524214554978114917298209030885183239609621892901809410787240364329699498198999594889196813086743109457040474032069156312400696710120450640718198925082341155299756866656252388894632116744733138791081095870547998442709943868463020546417413298867247209455030475484559356633505658978567977349933569907047151686321294634299613543978810813715006816418285362732921647563682332104792634846471132805079615387461971381407836960452059486273451846307215428083773081105184345671272166013672226419342031361987062318593616104613874900180531330320740112711000004147578809717134740690815658726506342226665711235895451767349274125373932137532047794519835483275359544092424615932354559274472724888769334319974021093873247681037521928667066367388734682174318382385113133796811146551143590701618648662042099846312358510481515917266893130234879149688502241135254392367696587842129754884870263434093008362930563086109014270756597515768119564287188385098213835850388972882715225411546740018354214212898511372461528497400005588445718276325647077343797337629007305573930362069390840135997760380391572736197610252322889271270842152292333532013099005093902084577257012462482526926449500563768022100493734222465197430933651289902548934805521159116947850060933439724537713962413897297568251562901801636280561784903384368954636111721633727376554431891000925424752596511811755220440272891170504528040972509348545537536137558667203793211583019958805842219216057004939174720102849791823897096310806391986388216530258875975532407553766342634824242945230307365806933891887863542550368486550469240239131284061072858097034403762336716079795587647826340750113998128483787904263514735166240186251504530331193836501247791042312731961472349886354734547699928487804363581046502106163767480210104401000926589772603114881580399269489840871331126131574676733839589406612289881862480186369737735857966211902664187472884476011930319966822057096149144544182245662809180905580043932892187252077028353654825266667293677610369843516887486646281393915117314754615545003290413038219901627589167939277758866530997071713733744522244104694639269577902835902566164078341691451481735541398273083271708450618521137913410637851115821094220277802295758138365281154673683186333873636698919784524617830267159280124164122929009480045485819076932948462558805040735676140526458053162308897734117171439807515050963877157838630778699774253290064188264612832241506179552934085302132907687011941145608836063792670904975139992271225856899236393056464287278173321179391734153547424520175838521352896117170061840593588633134578001021178887086248361334520844094340536419151906063206196860523557941342897128079023115982252733730213383039694133166166427270330105033209770859109253691599698386535688239860744686039866011239223624246955809823310161806846523359200161952197769881732102980604026648702177544550288763025178740395252073266011208762658567443759862723473795666911653632054137039944450180706523509429216643632297056967965895803203282428479449867725430922742262704476534261259056934325716756977426129217193592540917177778586772127325824946993559566315665258902059562433105917277520811591542311168883329702030509155935141200942590929862836722767834574590304027219919809089322828818703051396414100933416931344933704981904867324041796961481429083483297436808135121927570821849263824930778012166532603564012055231788962443540652663920867463285452002474945358875889645265065044732489373487811981392077868038345710653990614849510151183680668943558891182531052222138508666384701930070432194230193172359291261828534928856430968651121925127980218472923631104311189179690396609688568865036765509938720179333446109093609830788579159686254309054362487294014152006659561613984852466787171663256200300664341292583023859703066718670656093631360489462142978756176956045271738586308217636355898395515682050857450420045814405320522808169980228031350337169645079865936923865020352603162857003665789830277987221007036951270029019263417635630834276353476598762737002259610382610455129955932041888113068111080630296256634175405392257048011507210250243592811243614265546260256611404995451011461097629582615782317003497307755801506733011318827713809212933659116231103889101492723748609651468176728256888905861198384363534452510764189996173364253030537457983790479643884580639535325054410621880170495374420956967900463898909509359875157954940559904074412664172793723382364653099075811681622779847182974856360562480188605087337513533619593069963342542357608517969368179622419886209965608657166499490575294168236121442331451311987611845858036281201479240147711640449933164823881801609183658919439637977175243058938970729450746193479411611878673918280898508444678378042812721471377448884336994083705027310243253269033295873695430397801700059979050728711583609901097460102447524288461598957199432533430872546567683736460196621871903237492493608712041663286371610490504966363890365277477958152253713917039898140232509610853586013049497798479800806682754165060828000237210424903582270825654471431681462088029644119825011553026913421295422743441442117321809908084702367224636885429589989869693948498090560922235179204450040894168750197757277902022227984630687131267157251060249000992052654116130400951998322410475840341072414494024947086543943266108376744936831142976571755244376849986689305638705070489083903450620917409988318457683776903245998788262189135174168364215150244023263906892299265626847656083435311796820878897550094783820160435884850316502714324837938669796019125771270236832457628728223732278857966276363243236078594078724809464832267491304409602818346164768534348001225344793655539337121416654048461746687201320522194943191456780386409554594520428115216205104481408906886693522472992810689889657590361108225317584867965919549588488601274837406841035739622148728375627630119534403976877954841956022206010632914878822094583899846717595160074943094111441165032160038394431931767932895779762886188346025771141324466195105081882220475014412657373000298577897472694434656185762509821878678999158086221741907259856504415922659284963338679176160348419165429082990192291666140092271435142611533533236622458401268563082200518149174908663855401995630964436679413083455800395140247335732146443962027411773339111254487067094880311039505237923373020301145145309413631379890986576966276472750233634187812885478285591532069821876361825469619826408011993619087316647590518444594220335037432110596213435156062960774076859514741999866536665085922385948084939788099549284125414771889939012044476360810438951724737363753888967966999506199834825791956282014400101098906287767621980602769324135337882976188868198220203557104490952130923885494241200514297280762511347018665639363302799107561063677112794569187915846740166418941662330705557694944792015693775401185113475255226385126404746249511475055243889715225482426554497012122224556419665743503540313902227286522417334258619694505675054083352987281406211886424564437389307485089790763493918462545081432603002867343833742290838934173556406106045972408096500367533956931885879457230029451199690028546130614349676625646121132245314378161722978353231915054249891845005541444327637663812289383561869862796679682845236257529131778643004820921908240047714585693699511563234751661843862655654072001594791439553837735727430647333934467853924745417964911801696970396933487872114918339622896075388972258343197284926445904924334486693592158426689758898099810287068141097308674337687006748525545629202449531228176816491476105532550427071717314704255470277672825948182264387225016000650166271894356991186764029575224303272354881413012133874589461556828704171350246521622821654205833895352925353020045514607939789465755545071095988625773303670615631248389016678660545276795465136694520300023248053779240539392699539805524411998437037347494389539390452531508197540646219011977350772943157827783174322302342344046030847588608366084087280929966572707311930444738694905138241893097364642200671309800052505615767307660812350465987703489854639991917547965131910219503299211702467360856940608960107737495493746296197447076562391149321819975724422204307528093256504754256501391619209781995384718086788850826831820597973427487303698371827119947241433353237788759934177559712656421465951311317545354257228884498368043485027366271289301548946426067832736248150016839819015486774601406358611783094937476764403122923895973569851790728467688398146802545966899920727993547472722991443117723776797301540273604054311698420936378719857722579158026923281391402986531278468515860651870821762249474817209763343968979513125739483765138408383172640426203922242349889600229225557145281075138744628469144671183794356345019855857513472791509194913861628539276329963626189658782987698837537883377996005646812696887566864061264369787189128870110340960639268556351088428404604463714461126000654400229246426818147946843427333917767841963376176973534875126775710385617435943173283297038693564039866971281409045017211785642368059457093174492740821409473157014899438180123248168448398775783773164316328842907959183387872418187974589138103106469069417418423937470446144787645384915725718875705318080967753266012519169216628742755870317988772450137109844697105291478137738354395119652464364670460585793008261245466761332279091882891804680151868396538972523190936039912528320072012902029290122951854896435072260802768184440735238367854246545403482030597864452010617374525855066101078200773131432488185294802972040573318537156499775722575202607534686798791436679939804124923890474761723895408429951824094660834703734262696980050867527349150532394803024852989555981963592850914085869056919206257358707718626020817357869053567123795627343193676028429662172089780851597739186177064707370143915641050113414922149672392406059468479901192934842971742244402985403656337041923893403700173725115434452024436400333482467458580476742536864066959116793874710914007885880278761389488137160567701907971206498923605816322987549655576986531574894322743497698339706977648052779014044072196576630215056917244139315691567208994932585448594681309509055558842789613693724703750814248404661044196540070628039740371418376590467426145155420979469798397378712684141518081139303337822631367494516643473076436825269274059197252750526228956043558343450672440838048145328804931923146555371884647893191664625202062571377067804750978681857595375503688105674249093906923516719210448642456905377379787601590473361239207127099254334088648782905889657035798412639281316696501234096053976072699140827974953468570727438736188627358895877391008850648363108831386487154358823234875424797347228278456396802588789468695261828015870617833514371786021752467265299047048230313771431321228242710087979774179145881212985229336178965225684235107073887635238383264757194465216762691338057707168891079280458841733403269291362962532811128833451563999328906342489443228722238560736072161330088782101721624851442866477622153859291106191016195147029320345012872487185133275932092645272781568160335493602666242981828536633635223159794991614159965252850566347507331036910848511699561257150370702576712394174775534391487719135207216195689887540940480373689433012815564391276854803491023532342127596927633248995875880468949882953091482285769412857202760488282349926201688498696121717262997219538023397148925865035594334905632756668737873105132895051218100248047696812445429302504857196412159482994652988628543290424429043296493525051551973763906836602158216983189703624007508489083952593549065788042603517210534181344692591318686427029408401501488067378353726796617106116359699219217497773404966054999524630126467819432576334368475792352851939618317228927075031525396027334874590542820106090013448898192312333760617134882221892549645854102705062410012646343280894123149636781976225736050062343100061119027026771433644967879790972141612859875851162516002917431133935936661836852815389238388819595737315282299490740113813816572736735665676314000697509569260651713559839282634161854275820901083749395102746430630659415683884277253123970246580617169562839478393527613293749989268823204245634958409975984464398975873460352484934461227392475924947817826799889623247266690218743581473670939347322338845543405745863139771949639611682419711177801161933719764871692315234612144488209847995314138227005548401182164002451444184402802473971277514945190225497244208302272647629183407838002890351650760674028980852156560239629361898721736991493746799963445402271910866440876628981041504907526247781824494062563681069680589705105793209660866100607682350299451605611277642982626470214392324079897739759632650060744326779909582156191544426905923429554389194238076916671210371617463418320844687618827327105862087518042520800006802665255212996535939362228545703815943988291913694301165686794358909307731642996102623457631613124587674241173474700972559303861306602229157001483100434719488584503614331553320669362967036024542436731332602148521343230404571771740233513340491880465878326239478136859398913557258921115994851810903660197079610829554806475778332024650759510835189875360187225762037751992608964071405712129133654566166691818525926166607030812559711270740464042817261936765197662354603134728761310487242587404589938149948732587535507467059825829116999302158051415646044911181506081873945527385216490229206925865011739644336669979970125108248330303221886526067855651051436160854863849715696092620244577373051276915831500248289646790203824831778484060485000024910897853578174433790955583474549474439139925748277242552158367399637959037255485292049353859223467187983917482665322036796794125273422827312627649859244712510076706125754876369154633591854381013233854542129879757140308929923193905945817591310365894823337099737697854529611316520219572114167065826693788719798611549618814824486174368525457233910293078779422914532960331136499757598732822224711063964442098038796529971431638880788196492465742015549014879062400995202601568431407741657986559719928095080775593112066605999841479959328469057853400847520999146535005630265399429431820208025904794551218677181322449006728420369676066296624595076833332581375573856981328912315182110623739848592524279346519264403108268126583126233618789176057096814222632601568031063835044307443118998728212436486345514977880043029068886970334448520642128323086975241640232401490705949409143842471465363070960038381242741664155377342320528371209281512575161918255499702027666618603371503756855554785271614587513091295920548193450994190288147252762586551670867159959061944548796649180432625163892608946922982823396800327439511160119128862936037322842763750777835195377740719314224140709979248605120309825143399502195697062190477403688392079957676289514560826548004354375498025714046993684574295693095609787267270982032997293403637303934963734222590975391133482934544781376382695000077045905747102318701457976590459523793953861889642223159899697056211182899858990648391114000535527503867544427192929403647747117336886729184510455582262162238432996611849954076327608067134548499615327837855888958599527947182649760318683088529385510102243892202754274242138497460118375941767773859406365922877856040775870039613378305707904858224103363700049541400869877911817610489685998068431431562944772055221392934662078002040450797969684703581169213401629932869638553182660071836367025776878266134347670461413585202020590388850104073505279393997903422857979304250605473453618428719863351455854847927802766347812282895679281219829973816884301211605958313732291494744506214798562515673949922601002352669554363604548260849782504166956096723381716612958552962192973322524881316367079936105186661810898715783015688546717109308593072849611102551863879860185458578901788749756671103748649473410328145483688844424970197727505224916988963193933450903246260692167615581603170151335273313963805308224337206887034092681890956157254365412883086799790820544456042437509012263683518494543872104749596313718730332472880978190970613486252305649519466907799093515396152683250085259472435290327285249747683560359367856087357384095880369542466931489192444558302910818724048272381420382749417480815427251802339116809692297995250470868333766397928010374691127018324889352209385844259058455130697062924189011975089036607456094445516026247520380871407064596095172879073855946071400276239289806052429923946670766191144026667450971997999217616252896130540485378812195036245711136084216890916955422248022478891264035621002543657838248298385722026489618363983185783929917760529041423098323528795183537756023623263548482077647052387559708075862302635600956885002419755760774742773443109337389270904500218204503283183935609151859046856680013947808236976908107423212268041565749839021991879971730560467147354531727207888647346447088846206283881370727262987401769151779469085269688990790833010179339510366166267479975532152105937741966738105946637238202681209145650320513711053372161325481030423687185089986096148398023841277070527419664709790660926543781446308806365977130390231701357733446408122478194407079321136460653050405072377529171953764989569480313656967268035403942589823284117195114972072087348071287823328639771890974824855153358332871426300756040806488350454084413262962157937260880448314622826463912055708111546230257651566557667730035309959176958139087105227215048753631896472149563163157000972366278980463790347093601849080059561154953628975498917872631714723734926965446155987779679051563213568800729015340796064864759352842299246433819938053357035945580720195795038814861649081652350698268403220679468449581067699666383942279620634479120218481074665117535186904207242758615384684729131710672616931977399240482677093114903964353861112268320551121505655514240125298528723932400658157592996700136652942651206828747593352962086078250906881943396475521579224747819940772691988321758381400296630826125536299904322286509362186802316928481468183561195416290482334765454441085727726822060364857378807724035000129557307828817313438757049856803424052308837216764641109563522314870797289663170047042365511375698461716415576375558248392484418815064650700371649760869355148011092429711141448761583296481274354349362404761353009694313272493221269436742718215286118034389131379583683183818411121025004862805162932672010629859926281700583562240395599521619780986198103888418068401598158982445649503533448766315142517405465551585265485093822005148996961916271099328949329236703622070057069641088539021639162411441047132733838854922582421289897905864753126984670832447828807674933647509964752886990820008275851200172779125806256449235267735932224004286076232491560093069928416806624710494006291089579390508754117941082706226413921885447284364409959070762410979464293758233386517962598851376788478617063519338105433283222865405108138843978255447199310337907777079802596367366802471947515420656348655436722234071365942916720767660715142989839158259732696185673168487591622210775101155269921675248226087499842151923056121876857526328715012956616365911404565335298753554336817808040675092541529387124366228510738973072131409398489974565029467482890983473041979552046101989173006745853400273292369709289727160283857134621086185179994954865447329473720161200393589958946269088644264038344058505217846116926447481290859786734703329018002735294892727439623873891141798276254553427147210842545091995661586354282436881437540171131379047721503863788410537427344339790383070813876020613121106183205941008578934112077014362730623173737300622195044907269310569172644506163675633993641876877807940358882781125679394810841126193903594877002587376225274548137547999497075382249678157168058741721573123298512795328078389938115375146038403717703845538079468318535244213567500592615258585181671891787050007041671078899675585372558159100834636033754411639241572327731455902324283813353643930992470915412515218371985288647464227625262049809838744910705572053046498871939305387061894030639035359672235533921460154685163778692120642584365356195163816735286397101828882226676197789657451232426969436864988574770048609036250993150371081158144052348483296659384942588022860389045547891757564901623508915089238770897567037850733081041082757890416833479882942891602800511561288267421611378608211663026168648899211570403190836430406420365096858398868601173415297091523993285290083898066332238911533503588511721023877898909738553848351502944730732597008183621692004423073089562130117343377091202689520354132153121839137186207329994065346748623111371356607819132714977058373147442893361046862563747119032845091805919768623932055224243666429236979425346877552314891025101916069553396229076471055308753290652594820765330459252306361519110315303963258872447075957690403096769186154466242785614925676023306552122457145729552446631366462196065339672892471953690104520203558376433066311172877468220403166227551785002083832916126367386934990271032274728008750682237891210228148119335324006396971701156445759507918295250502190830095030933118245388951973305084322688058524912197975877296020746881877939868222587329578653382505080471527819382946634001460036367842146640131828497979905295196502224895383900732745457192957702360038346819426009957178948783713150351798017968181754993850669935747049590415771520318837476110644990202024362959243085280138556962199860252008566673459061061615173187268264775901634087630410680735292198491938959529396715311841716501488083856162423090948666845882788453433587430689419725421773375780652645782876734411915539900352086187405656103488072622033134437344716128612971997154314437989492589416129205020228703373284810048092119469050867540212722222277549678799476758703614012333910099942706750657861130557225509756310109033029212427034269152546095426577305263639801817632284719962034516637717060762650517088120231830728497764601805471811587708891805320780129106645379960993007140643378986584301804621475253211038196002471671691281976928300690303899502984468459833855559369697925251049009290921056550290256390105997445094979775788573584520216865004729065355960524344048499940934410522313955331727485684883531642154415887038480434358824524069313167240438454037064087840667163576769807613385383246091749079536207583932276030033394817103489320048852400650334746087272627517667097363681396175298832138562685748122712315466639777899123021660146155957212827894207262325635717030673065892217907800346780635977801684435221797183307624138799201694090651214784884878648094657104342068055836652758428994617046205177269173952779882448471859113605691629545590277069787860946164193684728041152279666886828360323030049788386128959185031238491680183681285487564177852034837266225784039141493669125422095116593244018148902468957253675330306786301983960458696011207111231439261044316596926194963991189125357254709504282876771478853367035406893378786760695963766861360128803022214497710640567630500108013002684954000154280435404786269748430879621079339736134675631567872135637689026488572731195704592993647629318465232809725926592537900678731996045495502808771482539761708694046679372875502957086156057907955923008177289023881670476866903105585251579250943168029382566086638680316641160624926100111782459763142784829786825497500203361074123139012989943987758923684577725880125008074112839808353083070205250023056451895992992593635358118623259805398430308878026749373780737842532366607574057195330870568943593860145549272568389477618534006341262911086104831415010123682362421140738646064323469062799403120795341165531109436886819471965954761990309123111894379758338549493191675320677346066175431780802054289350025763739610963040521567240063378441726804469763463100431267731738771313077429431234728469624806085067284784443913874678719971079615939622426833227115519794734023508960331008347263948785254383760224283798597874684929187965303997038044694344370711313355892513410205290174397237805197893693780919291861973417210429666593986411018657483875901962582653035583264237621332971685411349746976238576802917086459287723509405924890068013324281535079021083611773251154161449626574305086419623080247421279676307533088591376450218900662435468880718555397763258963537496726012743807416467342498408706207743565625644671839622427763034884847197250743147573415794808152194721799158073414016209095818114375611203668110897460953421738888503110193628902206803526899598855571685720290452273291934608917733079782340038353946806345544365068298328647900490912510371740654803839202693514365731205458755393195606619233759207268595454453346311511821124398412665449653265935069579791036445637108908096827803970072830163633549464833137507606996882575382143378148110532061438927366928975958831381645552021796338163908814213346489742852470734240694512920483351383820294684158585047141402891867174352812684825974493811684196657253628094015703765906355033484540576609949651990843585014299808150802167777258675998512711635388574461793894573730280093297112467173622102304109774166819171945856661120137292283728802250813820023319029544058917005202070834307701841885360847503544875254235158246166788032547208661898740993814743566489232902600265892882195742575242194261300132078706045576103699195405932800387403953956425459246890589830217912593214925196959731957390342457771926609035170683316127362288801969947463775099150118840799064926405335630142076873420234181081713854185058036163363165150374666098348723756960675666222556141480840579110022730252551340558661521343343993704408996615086386254929436517326079080704178601880956782046858473663116248424154853679336045773423605381183373364879606342886896474175688235952521159352987430742958267038478957548882035222726218533215510703387968868685910324701340451690006413380811950205862902726888107261811958398905687915616800355789519264417894479512173719752902739410182350425261636721045286618563085838868801186515429013201915596761230822163546737166498947756548869092573361152539301500140843025730516079537421541268315227380858655253151179975677580616270953316897770507618798664151069966569948849305989712466235023432980055806484092109129074260398091908183623889968054899447111775366413473027341181108399777175472845933229635862129187652888113971844932839288288815338704145475098571970157082594724149888095434511936455857529266716820909835127918114144485364272557466860938264663469583716014605344026398087920433652526698894764174717662696154580327580467652915785052750463024713691189514589475789131919877311413477619389980516991269416716444166028117753828661048824594663399992556026194437078489440523174908042606043594104825758848110347220736198913964031085234334522017072033357878683610920331518489247932886747129858771118116692795475706152566996610581488440249923358549410364506673695685814545865443338522643730183712635385417499893544201357488267594029137400141193958532498455144605874062551503383690867998259959586159824993299288145136677645264675894377795790092224761592674953897042859635407756728340914571611213212311883360417175515307537861806003697353234617318592630800452733752364846848682552324649564056113748273619552711179419037721864538460418239062730946977916536410938256891726999293757026420037719781344527835900126217326550770387100195128121263617612766762876854979347949379985571547955684345021624628415538785733517662217268514098704800396128700374655106072550529588578233842939771495873999788897094099240988814253459420813661449361224360067099571869269182608943115820058696839264921785777979525690082042373406121951593466514044360861136272985951839519390646874135256847001717020499581166569231468624583847732031779807398363000613987959783118864113064110970169556707340101629698571297190354735321879467820401785316588227051099387228361043197425587186124362879367456804325849897927401607112526629428482995821810594768388179009356001949923183004460366103780577922798114439923437747745872881386984801729927583674967783088824726316689873795760567177681876126973595732505626953136042350673836626022906070672251376750306448617852499699439553456543873028894864619390471130082624526373479728713495917252660314011883902844511257283136054046910992386741790590267277472965113459296403566075116768875360506965867835106937669374725822117814723847269847097354843150301342920999237566856712548424861172449807093750698187450632436582637300660759939349494264206772009150984767287467191872084635839623314306914594830844741146653078555174962674486960175388254395137265687961804292752241208678426132202149501328380830553990449760687435238155841584040213075848704702558596500267892518094081776489986508550467337078900783237309244789693647276893005158368418477841430448983183628404876183620455129008844724503737148833027516797265427349148634781132315275342343095966387019412421798589866498010691143951115333455515128751723747746518837661461651892953589205141357941161018895033071198124692280132586638105790844325065877559283842845353370349332619039143336976795831134458829414297015053487018277429709989738217127221055366534251498768885922534613604164153239643675010372654537877980246763825500078370408066989956062797729263259774670927980249494393279724764461671676426320315819702319884992399129651938079910913649352521473758345125320663246863284258169144727133376767466779602413085154256220669398988820217682224917420938793378031474170285388138905806333914062093953825074902425573934491955959603401002831140511481042342925214578735883979791235099525703036851935882206474203194593956853530670685168670250675003218875889301893573415131245870957183947054217245843216853508030091626008091299407184405960707921748213026258913543014086731182043306715170869305773135881773152772308681672779201661670893993168224847573866882992654702359859848342198444757380502871804581557990346174691293228473387037075485688664461801217285993422021739254609170170037072440073273027694612356320818455735368412388865978816734949228526796193304804792140558444039762523698539087060281275572700544960592945742770344591647861402960905902059363057988966582093097310953958520285910592707463025184542654071668027620649028185569941288567704955898575834407204212517506211981717876685953960099479111129016606602186814411254103509132931931733235417073576722916460341639941330791705296199623357310440357064369615935213824363705638921304183733149005594035242790997215543154167310758528356620653538224677683331999073530062189429918324423569086248270740543194972809705043317109225588316057584184423026010077964578974918256787689892160309778404410933593333094521327955287254744462907319978133673093792408831481972673259994430458408018985171045993901186189757718661562506526984188943143337818369443321980320773335539017239217264043552273528446849377691044142491023936749226698366827547605118515042586998268758812935867460269968140427321754129446178078456709995905396770711027273716130944426706379384863032373515854480812092598658630500421124169078649950102118510179317051514795514738786044195698417248714886691072080323184132407971972612592392685567185207916377615532296329355498579648105596947690280505640974184729863860220319231197911069752611693296979326280524427710061007669672474400098914112286130727143598245762404333356492053397131427250579254486521806790830323617478433154756154861825117894687051310278072564909220326784926315285837857956741662055703951919078795281499520469822566906718780546406668512173172907214767283082994584706230490184108680735697879011735424061067354441119504801331856949968832958753261955772089720738523484754411880621175106635716223461371406312840596772600637671435376452304155941180507535271421966824009160581146615805374061799534041089245716312499548926791723330400102481845644721328775184947495027090675139988685366761823417132445034253464852975448074287197753556681576734946662388753960233021790956340338587985087338589974612826222211921385603266270720820757352220767578385398135364348609976981784480982557073801343769094580898356715569540353241097834992800841386625925354520308587643956918848028867082887571296539734557444066139263964923399465560492425835636033125948716781919448750126535232239162160179765660064097143348078354019490472121628686886883402891889591265132839416495612922337268983336404273425363011918914633081207299577890975856264951905369817390501134654399163504267420591821138823526798039498053147624284384210382468950353422952175215698643462864277238296113086752594437838948288238407045193600636197248102346139439981830557011702358103784443468811789035746238997756525581713838179894757943287438254690669507323982171710467155803653558053467853958813767918129641696906454406594218288016161952734812428300384024252505738442341293138217186798993093047005003485288728801076637380189384989381186543799807597541272321865691662556299156178871562468588993894895075632829104612660332816881631987595388461963979326994578965319808888216904690270811176480421646112946033037239568167623987337985173715983989863297155864992415451440858458258262069451393894502366275407311241080140250741104838026978160802701768337685713370457709541489522836595272757549461118739664785741990613511210025451203054428017705028790053994895954952086832773776316059140287252786631601830990948382742087285955175625274040199850100658172447910409382744688208615374444297744495218940388512119283118145721200569259304093887779194009575178534368035371410091523314004148046532407416555610557806303030964367874961741133430601147080050173546012161291857272394814413753086317454271103969981040330753817949015270353064518244467393498771279594587369330953607077914956216510640818275206483444691168832600129847003197416501559160218051593590284734757791667302683999266125147293981587091121794558430415475230652409149901966971730535443915321921287753273672616238022839238738561135312110084826404494480560720083883770405513537376283893314160175544212554216840088682853475494120002851228143149876447051836074873305072656908493192611781561524590051214968931727737264958398738612534926142849353610574735471484627180238845691774085390087776939293559588015472330254325676925151861308485897217982486476663897331424709830576147692316328949443737322003845307558146553185791026657944573614856005931192827486404537302756787644806005628107596953325524890969249176679513023974849076974989477227476189549877853725552919888670110188991810616281884849612455363724831937252606019615709375536790949693290431427929363892405127980928185114839030358828006766794661425498378371090863542492753906203777221368117486775746027472829998548447903548223000646261044467834800152386586027448182709598410969851130105925567513610601541686477187028555522324482469072243176998476270012838344572820003181679915001672457645001779401525507075504804452221256582912997641061162507682855275889330794455802657918507098907334691436061664046089563821405954061470018437686155323745564527398349059824500143207576794639809662760108685028742914004426302217894030725697616924670399031010024753278536470820226316424674533824639152567897526177582725076925124883107659053966639918030829928173213440433578465796420601113541620545293612094717259293966100376937023920982407982498123172338010347470403235447351758300659942658703239614765248949984004312355076094461450297294217160381537143453634147091011353453673089242567117097977158511504580015873331656441844117706864612506241467299736471729137055635550306895810283948516071483369145474430598445565484556208766218030314469966532696610980896006007560780675126434390598326077115794317943564151758837984341241366098310903709356644296976806728356955134895331216171398371276352921150958878833285177058203181300284636862122477492844414579764920030783434745772679802332037921607321359330258537564326026814964552356039812159346080217935915248248228588530358316641942624751598423243105761671936070388912314007148973605385997765458420366316794583952141327100573990515014602567693530225502222405610171680939173993971616344411570646520999790532595976582141183178277198460872201848160512766598583449224308837289167423623580501943070166609117778963228684198689279470309566743793156711306635184374261407951359262829679742122961620571716552289286868682579757775440819431896638962325963345003806233111310259670901677557428241729269238531508419807764803499883230170826157523852783272379573255284834746423880132286755698147801445243900207547576448502818319771063029818637041613470559114938878533618423847830287409338655290895463384659610723402317552072252372761666112858970864457757639144805456232142764211244647165579221793570784453533742503584613944688346519141633074210712104679545593191566466528679685654762704066910061600490872007501855952513115286324462345469538981639265504543089265791424034960637516859147093068802223710912508641374318971115966678067124511351691247478251129453485928094650560164311977425320242817630598225130194721877917445056707443232400586261108647435197759729302081803694917264464985066126200266600123437343391422729067979435362566486780762470700279842800563226226001590847919200303329322893855124787463241053680837499829712502333481994604870277922132658603269734624629661783358375895890094043307751732333374595329081078792054739004475961406762572628224496885713796924403674656402724305752109547425427324905666052249754839209404110774177767993326201925858242943253693539875137902320649172729993656589146818265727719421131642926728904418223370257200145813507074653502172563274217552455385388522451058355263614941077086579800274979852913821048897297163389757609186702086144880989774462206005137515922408127440439414904470097525210137361799087678209894998234295123861624053214004751892739173477074416354898579116027199736847567482709134989488270762648025672317553715373886556506240697996136092578606529416321371181683280038403942326647572246134183590602231390593912884960236564673172224967383925785240527895411344956195259846903155279792339560925451932300240018216195290925387070479853512348249027627883440830356132084664536055874898853569292200406305475439673271941850838520093435260704735331757208202340143003851931959186848368666333623491989451964781063419898672180013504399701375405941536844293070865364897483976031603753735308831928634354486201069097813239079231100844746905467707754990944599531252311081150485685609625825920441713664500685529335521033911453331547610062164107866612710847031962323008970688854835404623432213593594995831681167400904008392601583698098550899031544302259754264892922115129793290914499227157129757602698645436044882158679057949707896884141836368294311405186930355393929413285993693593104690391911940879956219718797638998460709494333370897089192277213802873209539155227362594417453388006718930376695063220250202726649374927753145913300092202427206322911737549695384100959133556708002942164377761734179211545217869696789232213553705077839413380186306811831432286659469168601435258543291698745351180070049441243241822007805359857671183432513193910231617315146037710458324849077949085105865363291627771062255000392766667233008972025985470274808327329342734432334349494882856900172075088006898282435896201344506885554853618135246812137669922701681950080036234709707922460665557979590509016253434451437911676122104700212118729189597855933667318964605273820695971250998122301271832983616851956589197480165735419406632083561176918796906819330451563116001525210854294359296672934161348919859724488626957773365579135544694795633860850982235348616748986188954817108540908216989739788660906592146646813137911857462912954416506467811277722994463952607090873479956714578614340901439740610120821069936375381468924387593851215899704242860306031791408981377777839829761103156607489488858129115437441263373802733317734093125983629237285181993464583643142634539658609568164728416684385465765006690680561370516544666546877505898274845156031424440884623365681605130874663255496162497992600274821883853618041248409364210924255321027990084514393671807583624406194055057606689363410145796969371594652248466996385313365967182472440305975353616686396698353936514403049068169814803912098823368266471927116896548800494035357205674264092022035398321141871534059066302191711485155330961176895612649172460324612861271426874588303968086919116991943525350772775587406348829817572075284217271478397526350559276100995947920282397737989903092037278395110014528432197701154820335959109263869930767714180554140448389409161697361598256492208853973254123504288145724215935753916656462656223906501154712462785771894073334358281765029452150393497833307737007141832660632027322303249059058813659456580936652248324766469191822644258126647101851680240535925838685775385526280435777756671917695879415706625802045316794595818545000973705195284312540712111422696885463677459350708264767348709899598441593435649624636259199927166104410640780482502112763171535891106603166970216436288258578664882767970685536123959358398086960954594994799079655282502704883677247655619825531978336782895826007589736171972974465481380999762596020824548727197154916641725205753160900926118713385906988038891886160829267853055351137844469696209456702071770207192358188322573744110073012224707641236271247410359032903321145728342984648607068857294903380157512043117102962837025635650640345555524817559520017873199123301074341545712858017317527367775378846576743934756134044612813519420226784268867780892292987578703191451403072539669144062419462701150599008727748113674751508314897160952607268723383575937800586747266721734291930198891879370981704807948531480095863900105375204817514082412657579158411997984372687698021953906528967309562495209993394932156771579659743725082190540579023976607330906822066022751719993894073302362888299914800093566870978995379659822636098666294828339601849748549545152102217186328189115736147690639953663565187366450309983962545118037331922212828792765339104231933902306186314184433182821793969951715887432479821883812818690451335048120772761692216889499947456217912821757883797409838480307230956472794186361010345330841172081068630172081964103642832597098502283642166314661766377852079541764994825335806697078157984431991508015474368898856706455543557990525026595204245688404916576535956042185509346790920013098273074343608007387628467993029066554350198481277261583327104013586850858994476194125327594707744034481164038926334770702251495568319097789247098152448315081698754230752947323875527355480133555036368348403558190855623690441154830198440480110127203884061015325729020274616286280938606266173671405408247440140147167599663398046325338291829960932483848179220265967778389655595962816712057922495981102921653820860696550845938468106762004523344414483238352642210565065816774537371776198365750470073595268209832072698345592104666855977768161631838826762722127301536531391768956013900247696570613545889156666278864780206808876825339094350117793218140571088098454691004080796357616180300609382052050716240851595528740368600139760956813304402192491071008072435657192992516964110192913601129735433900055664304563843141389067057552232398126679048639852268825738828116044996294336822466012944094151485517464351254340678337551038847678289753340238622767106640174108049616098721415194536158855739306573530934416769386932317900500161181220740347416039798191672350126016541226109097824224894740473155625329155254984859991799564127799453661569614161770617100880376726971957835409925043808535113315275198734042587657027269959362414422431043662470752347830574136656256816049838538165451028266746687719623785256880057960662523747096115548768430341184398226554116191662609791977573816174835522327584528517283756503424823393787039082822751472396636379503295510408853969721364300969154180523180933203633600694176744102211983549111178125186273637256578537341918530453651893641125262265618305319578875639419127321337923204795146741906929184214081871554476455524102669796391296778390329319293274528147491869907195036414792067063782073699345121973859217488370930681906182513355300033829107182525644860478693771671901145465426744990276924518381252932102113787641000895829736369895639377715709795118332237008752058532768284696819988847718064595172842765278839464994707060070489947827563677462013915816835353726168583095966676567276209099581252047881438970746363961056840078944608397118862690725686635080365411507534896193640017279638975916242804945436133903878016914174657637106702566680308917818627974221463520676811235428574811097639313968602417532463414300791481024297910135413686897990160443852519178180023224694339726243559315465804620243003723482019255113942957919787394013168809801650935302932959982701166765217325167345024557409013300331356710545112271179121414253592145885138209472169248556447568597649866281923920516368324384582226717248499104888563153431849164834397818521369924744381650613612740534246442595564770378347095689017014251515071551096981653614132481849181676276910974745234673088143310565513144655583147319563235631965002433803195218962247226555797546958964393951471864556299387536382144724151818317062950402338518031395793056625897025166673706921117356746903188545492145905801413680610356960459203850673513491296855819989045235952834019508683133728558513172902533881699326606504520775955146934655288607553197910991968639442995456742844133305389102480546590452415586999470294138758992271411769714363322453072026660226477907880693117408365833376216451016331686747687321532534259078598706007901233907475951206447171136064003408254014864378390319221954475751831919497428423219222721412567486294613563606861270844614853585994203063545485480154652673967311618017459580216930442656346262167105620292710666017643479132505541618428325189267162330836382521383651955065724500103922979838874737390739109610522790801654930435430708512190470311085864279665545491309826189207568532667341012148981741790029521131663869881780568632867934931846161966612521337543127005480166048854074686151711397309098240919162047432308026470048682104903992337312037530673386984602111790485196577874955068614001137806367924253253892467429838694676784389411876204724869360773189043378627147000557246161634647006235614785244304822109436798946281128509667674858229155431658524276552437804162362507623619970366850151717155926354550559986147110013932324307461536227634677338420837350777801491795894760921472655952173527294371925135621250714291552090828408773448249465936191696542307091272033905147845597903115042610945602948137237305875560243416109691517364663940071243662993929306557538322473767988534711221332452177020318063191472929281551204923021461170789207396207973478872558700313046840364213638250072962064155136790241826913699618202950116142103363176835515804861058148486232884385130560824563861168200377249513590234568971485075402482676323996755366638969189134686710880635970746578977572742609526660944427903975953984634036153909530805957964299532975894688337737795843093137995464838039307756943111303672943497536969006009232003712033506831558084381688236368670638637156000696675064573874752290224975096401600262913314234673905839727224461442587273983311178206329400609981101479517137302678080985636976508130690339118888165795086269823339607982843944019019626535565199466438518967359850770045006175369032527768241196500751989781911954908380249421351226212975831359541364697798218097794775312482111144804415941568168963142370854270048045873681244676288780777979648446141454939920788885445513093846252626449502691478429182564028907348957073554676194233166119914481236623077075816521378086306989336822826722468562228818794732875821127547936607388441314095617709130691947337605018147242320975086038200452218588088776571155114654852513927477126973536281548470842634524935723659933555227506071628036937645348876953162973427268855784457155057270650943214098303802125834249249801094677424860873739947876506415625699300821371413936912401157372941854303420264589559584450136285252413758118030922903850671991890677861840110713671261033646001463146171067756963167214437129412169830723335053633861795034254183120703551298708681341630912820020521750266065232025921471444438974267054158652032438268186601498837354230292832183594185389050768858159819876430185226958052223896830187925457462444233689464748398115989770107399440792409663779481063076080321407970629294541746455763462907565015399250162331160650243575489376702946842053641236763273884646490113010824134985809739145636431571314615920551199244257933956597588536212475348875810606537286494658549532636261140168896370211258497364974325576031759565376079052719205241394107881535980358845056732166765007447348035333362158780061349442341520741366211749362589231530330676628474944336230723327552067403778757829489251806234023645098662938115605714683137803785869302004567045195549928768479648171872424147075107769910370041422367381957559986962083389972922079147743456543683771273045322529042688530076191368091821521522349382557957584258810113231111027433316631048699175687134246649839745540027348322972820014053375569375077425308812124768663379664635919132837316223778497514111849215061065216196417434910200415365325568569861443446021049450521815591231641701064570775734769470648306483062493211485208494423338958437803451367965040637263724092024635335639533620537997125662516738334464384440734958217530334307670375551836361172690213775505410791673158213585765542393404382275586772441805348845265878674124299868748909588696725881264232261100559893268445941109620279296866149373674491685821145314281114972502118148283169682828934838767755050275640877912556530068243698894113270039017116273719520831172108117215822530609961628318749550295658756218530522494590453983563744915463018046021602143048371179985760330637328789777954019866214906491533449148234107570983564153681275127126422827893127853186762780370494945851557140661228214288790373037078965871828012011284509904611467134760512280540237817139423004730095912374648729108847597182270924004782386579833084175910655991501651749752286732687511564802701346261958896365767516762520287606599068467860435056412055227316581507370950885856372757954410351293882009733301570220176630146975578768058253077728094376988230482381461604027266414439820923303596824080246238145552240064130761304757636905944136400516593145542316841387606042888060487828331999590634692070999521695169750383570408088723443761791240250407193036021371957329080709748668096284304200695183448761071199233783255648334109941947576193702379433160525954794403747946832149638205868021577964224026971039983504024560786710065597160296640266729588300503292208260606670181010171324645874137220575345053691153889069741869235548634293799726540522873057254477411360395088962972868499116468422304548622908654091034762903718416722049732439485373240299288431152804254263168959497014733315067914956164160318288492769465893290128050737646152234539709676193179252828311888544568173669526643077769632435866270493552799965836527997841016104265267359376598954504802784465532860964659692973547710434884849144460152641159849064040672065701415124493275130788393211905876663667181319976471965405645521276679983006411583872961043755368600100515696334916514498363835882330380001588759668280217470009906310727354682367709077525919643203764954757021770340549500658366101372045186306014757108905327497825416109210589534442811140011964043567174144762489592951267332800448280385357552240707220186019539650769709351562997179392936458590315844901822485711523424956757246348168199976678683110135940922690269050926835579602520437635537690912445421508577395665252810025202404457360160191752056669010150761845409025486829053368177949625148950328024841363197480174301996133238260837410617787761310266849215073270653011063178392393176981157415376126224936789976308962865320926620111785317761072104656184201768623798363260063527755580645497298867036806872804148152476177155522838330492794144889125540586655610328913472969976962550044978482682616674003948548037356831258321832748398221707936982744336465607332440230240070836035096236493198119776468458787944945290991789666347852161420661681624940353330479998239808004187057024676062291735210590762287163189728988210005004568519865350208487160116933602902317362900021725168350244026575068629076045909149529904019737383924033252042789009341206527578047491688405884449015081735712206264273943253061407958712486077505498253935809245713522151274153008649623757722512898197008252827918664406791713440592412041982131012241515818593408155489371631686875914080000925608527238606114352692803063886382508143912241732667019118432828984598683831085139836339714471244995345096252929276497922130716197472505659217614616684658125984885043216034597263567107231575068648083712392073651343442306251490402503059775896980634790340328688565690448609096269912840818251169883013732392777192601286397086494425723575370259917793573669620977501306673301454752113223282040939730524789471585066331634088957327582337637569022889237542673877354949288746885797816803273148616644605251933777368252649011881206932425639066678973045022833574917104986691203909926470997958454793152927765570757023512837549630853387130142467618677984823524309914039914752387020502887743234171659938960858318780544929684410850686316019834830676585422748479333038949748537854644447190266875212616802436597549842713821329559394148537062792727237393189257788800012736800546000259622865667161639223221063322719388296503602483239579112789749296670814028974922400558640774383381306765903749622003175374595672359876796507772420583992546935934085060570439013424197350893817574594222181147519640677222799026336378614660169750173744024891452147535345348349166779271144701578272540970623438203743603196933590707103279645030375531598939368332174470535861272810135611915500426481130334371283787757249191228962246580168005855495920026964193465886680654261896901411265057104506498411164525694829253582621295304964455178342394110944042117685849356650859872827857130718719368613567706888156095604185658435457213954275988285250794480026345957905815009233902328253736104135830430196970822397415168304978129465575318997344115265969953546634483895903652171174930032962335865971490291455373055711699650252768015938161970097358716338048962638476465732066560933688197642164311578502722845347218918323032367828892895998875740800000336571424416673278697785356901288627221309987116705895964734422691543999414101454950484315568209017144323242527414157244529651320509147922725826528986777984922587586039097358602446347052306246131885870614560639930962537083428666089093059336203341107753579579057815076709390441657350388554507600027455651907386757899186167897803301856129387418015422883121128729129638670292861687690574270935212019298483351332750196461200092085238802799950066986010175039870964642028108086742062128037786391603680809610543903030619686606118655189812215830869548394625843741352770128573650221662555883253684373609140118073099127859770889945137807411276327619654641955612422465022917664066413057719386400679505277976644788060217932707968394462492718068402232824449186231716127211100819363561157835719669579655055436836327597360642924641179987215154833740443210754430173859107598137403578295364231064301421386728402536039422312572741821836387223241234992538540500885551532010172259863175989263860710896262379380242632491213907357927591244501035439671011696292121127935171850381839396652206518512712047956954106474997819227993813115809694537387178057367745565108051104522489725111017610178681433440482800892607611061421066006757175074443632413606266663051636527767321623161829991461791985370501829504663543240067221534918957104025145201754938571014326843212243933720702528977876269328124407825192628283759241263174528007134386425080920246617293474920955698738828231801579070590906284173017850370435708563060896474511233255788910533515582413732151377569094891306258904960263385286568031632668615711121826662421269712096747083655125220974895982425484009181967972953236879977597002898685264127332859736631108094511864753897922878741837803859170153059767728647785747683197268456857914925526863593781922792473814963027114042711687617883763690150880261989628204283477580494825105791670934305206129096104784558836667329002373064415336092408426516915774479794665711058222911270390266968053201321791808467117356976714783819505123156446148618867548275022257261002359102409629000068101296982217799298351835640011308789663270916698407206367600136212753753138164543292298672865272115341458948490104109683801202301289774526798064173915555399986018290183972790261018796812759666106073930577227752000302931224969185104672470912781827633441841435633158559878383566394656534381794796230640629233653700057663810257683458072629277201778505491801453964194928972670196385649717988561502077851019016472150364861014563241687221309575700396347376232399908004358033523746177338819232688017156245081472428633650158402026588355253771932142434213499942668301981051244399161245641754646966820777006204456626321102577195521193312173777592488462164983521048633670190163438355587413006905533148838099814439518219144212118635721717773947590485799865182079343744544911195705218212795740390018690994822018303288099374082649699808060807109181167596929038129663942097539741050075794955003496721873980658011289948721383594573362960410064522231532002335041357095892112055889145106331765924791911062022767953416183975711410768586950002677992311340622159208521998173380742147642830089801261336663033658465551192469050604063835562838689514168112417620988853365556039717911279448489452039942769641174633716759219135209796535545875965528589081819470198799343518967884534301872116882105475016197504847880614040609743380075405224928087706409993042393180314616239149868781661457346537612436777455180906752277845761612648748571745060397021082913666668666714956072209935834240164957314876502866503816650673732532053657664244205718669646699704900104555812905128675910178516097468847913576674550395359434347206355128682156567979157324121200756815099499352825803305473096905055548582760017511777660670803301188760045338764709160059402477065813047504033979514955391500377178791327430546470419464550091859499191875528559371531378654842789421118122535514288534240034622562496805013908536292889896604480611784931645249183296374762304646825098338009192201595554910159588227068337614196777231013427153966855046095068271064016687898869122322090521811624695425794220177271733367609530120833244215117629233758565870804677154432564103125551470251081317628804058985415569475787493507001695169115755898866057858183881682473937974122915213124051869650844615701038923080000466581749735463457675465912381069170523244439082206458852533032504920243429123519888590461622280991578067884555256140882280047008578919207976492263043799083541495021266971958980338589439462752413533815667554665199496164172338319586244298266774417820996452400653555260477598367655242002209191180933265531219606344552426442752740616911659494564567272047391295766735486625983737801526524130837689183250375517605896484610325417459320372255133743654817521501780345874052011314181022404256809317741721141186186918848124606951717851257313821604001034068563461236153241154151034364227027474301838313421396337859153691049810387495232730506190500738471208230141277412768941790798593206791658778304285633701376624149082511493788944839028989134676803293772119165453525513965774840230593495785334509827203385195506165218136048270301104942457393412735704216718673187473232280524233754239223007852339606526825890405361619679738744129619711521626641144063171475553152392778976989496247995005139948414320994679685542362861338686818952530877659065840329052333988997549262303671881209726082028339750413937142759104411263617806567942674312134060809415168143744383770905168731004821329814749216587093585245240821372969199983693402427298521178636566370773821073603498789654651445685952688802457879685833987225692640228147314014992453910770559432652061621248226876509789886946425639942805220567863685797499503766275890061584858743041756879793605689572824707040185227959207575744911466334185894035595708460209693266315237431682830922022235285763225985012729748078318592378317604292454819363800498948865632590064048832600756828226260047949327804465633991145437039250703185976469784339577809640822319359151954805900696150727166384146927707176932303504574328842121222795312308768018390104087550140044179321867107195412566628555669071804048932727252217514153704412167231550570371067915445860917034824013293594096665829397902977390578958032683739336538541063311970517522327822151955409554795941472335256407620569764883972462840982166007688513148504468825778838074084237638922526465372522844799780391234826063106242212716066541000033283117785070877999098250671528470328016175538396770991124772919455291941111387617377248736845164003173673307140037854794193471174100530963205427510034799854347577234009359553942235709032004606915904695440731919808680534755709316747274303739572053319996300059169655156962026704612610431111891567953238173137360062944744325984620149119222982187680937641038972607166506129253631251093889525812899727278122912377106464799290378893026184914220575761767614401660051296889914181973829262299937318725583790608100149728916949462027498651448474158702954068356686701395070747214662173198059763476784956796313157837367749569613737419938925940738931521623989630358978632527052763675078179775451406706497787879898901114119836548569167633572755544820155409998967955547831474510080045985354744026033563000610091757301922517833296888093131884267140865315741121636899577245506813235690351031970521246581016208925761189889219437593245705806136725464080200447008372185650369859512956619111740562114781067861755335419241107941339300137187213794420818287883071432539008736637140098711381211030614053254196944658313289545825868668045585604544780906903870934169640610019641049037313708653452001313890720816126139040262665630399352664963896421726593228914620335957692260100593283249216749583265134853300625017059811179151979941412842789936758850400298530336019846514589427972928919347483817845659406292724209945020738945324433212947473900800303460856896307414368350423812834584373811447446884176416422495550008185475942253832233160987269747827028884972159216061550076511736381206181120540390015322756791600818818259671961657444516219498889164437666292502540034759903695391799133659847551872958905390811305283607022968700270138138055561306227179668869007759798249203941418514682071118633300177957683913605127448916045049985435802833630286785762973959649823967926261828089097829742805374528768149640682394083086528546421286893051766030634510095537957873263175064620802377501484503275837572180526965931102103635833698133352096040756660469487167680503803716467627896738937604130786540055851948925721630641178276760943232297864123941290888898471390690203641903954762606397946377856551928496359147689857761495294563628023494216678270414989287275318643518110288062408697438364636994180895568824022452809896399810954810013999819445421067983293063230576530278419098519377009158573175452378814429060280020943952968590403613964287123965293459788730113419079499293038959071571055754730122052787717381777437240827754261636761486489457646224842613395638508151283627967187413993218481542675462741775581957248983616683681484679091003438382439092444527116342011863911347762405530789936620528135053989694458464507325082630892946054887567615607052560258070659793037878759274764498132292148008652360042503510680686912822307422763666811241036197654229277064975545711788663289665224339331749912237762515530088287402650931347202855140642898969966801227137263705642335115045892701505554461120138015837434887158900075958705148438959988369577098167858380752289489575253474504691339979624789090587821142718848619996172086959575687939294224332023032834838814066039994068476165926741636907901883243125974483410245206781682892806363665398415642658664275857053674987134809820120626749287072179739863826900289372646412918762927928000687352758680980758576118761915570938084433993189430267482572085525606363700888400546109122976015209261807889801513737336614752894258965818809447067576218384256765197114856532852055721234953573565000731768149178162929050203455857583284205953252891905385835093117050859380616398221694871531194851036998734236986880146655966943672271281004546376840580389184053403288646370741992016992622411345016538210663971995003822376072729604400593792733660302985420216861231628319462162846872740958348913487881422911710823917053622034576801104759065078584311103090925447697181541121246092936306763715038792115660659196735539508038537986603256938055030331461640135579365116271777679554534125133326360779630073879273850005850615807312313918873326796761674933273756663154764384553617765791848654310392657089831587842845109506799411295116934423845148720415788156145892515834396562171170880425756494607366791306440185022434657567593630506417477922361711150139703327839667318518500833559090527353334363097660376347867202651200592814895758124338035955169504238275704479864568123119133091400930227538597725201550470152500235464961447690499132261761978376294802352491738592087141679778123271794499872354382992948969290592998989759295962723941445856975833681697178691464700419918009849125126787243158045521681581869904197392208886745857755853880510833122942533930351721133443521397422072533462533452943110036617670797456967299521884503076254836786363712191718361742784892488218498420567953160314370058840708194679444616629495775358404179458047436645637988120358063074369458970730307618132546723067361690978671555648693280563218766173962809260117073268940862554414389796841988822240302552069451189197482799108907935689939645362493189805560482261179265784511725047396250648273231678377023061728154899873300923816452328324767307089583250619451293273853777123768599821584112948642536692515035561672510078417400700864340592492376910192486475484605278705115869305192279088974122009257956266539040987357946110093421508179637033391697708853749486400309320953449031205543633986534852037134844345271723422575121193013154811169534946423776453609835606301635735946864785790573129146432588796242936128948673842617215567334239330098467416424665386477882521517030129636970800661270305249734693785173921563939117157478142259806575080001721004261448273169770102984060631871923996246811554780898200218955306638368822939352251682436121307162348624722551313975890685825641333013224496920073150199073140766218952112023104410515197088249677503000494925758891225609278150746255777978216175972599766326654383595654045240279147296755011506235326196691514314801758848221865762369872784611602901238364311698924816508217500715094103937970876372611373419149867267903043946205851964113017265962937961467773494178815362757074585223553181611746905245281803744407419030503153386330503729672754917869566967187770355726224318323478054415195834250361335518185952358719768769095722609248434028849032911117310993698636851508873446970284091977815304317214141825187207759241983058625285816565651716161728847486066509303441510372983953722304959175756397243126951153187521745547299957552396012666580719099380667560267421386622840422554407096796607846818686878419713980565175491798555648803485435312006747170000554002680592158205732476211549058230856129431741489950546452045809466039558554029021302698921611514415988156416327191715529019231035679563730706037476107451837000089643424534953666848699373265182753459366326436006605313431388465491011835809232505377959604909495940545444157409818868983638611314045143691623587209191695136978325554903741492696538200727211640848907723367216127027985710570249145354209246904127656898636664405066196906192179133344320692830797805773730564409722965697969830682535996463451770398864336562139469101375794095415402844381152485688545812155472166589722909327386581021614360676680715954539470950373626526057569224584350089606528347112296258653915973683937125983438800609331834391248138341892809027621594733489761360115969861839982366075036140034475983106693196909134264433249407974762680222895141494015546633314579947999052053832141198506076321728440229331675959298352420182723077086672965121113022609737290071359825852109597461508943302636541076097491205582404160688938822722300809607307186842081696491962831227571822157751613843993746952725771485964042277579246084880112147261778890749040841816407502428929372599432794385368165573018144213417022818347014147798469078164189525242577213008726652318108953550249209239779773436380628457497604869602812989582767753038442244308818447539297899406827971535151446093391865524742651869435339026541584016004297261652026478675466449392967034626683894078082219339458123473198951804917920803172698675732466303107532472208993999997080634018002228712795192167666595199054137603437594719154523866167872712012511960595613420605692452289179511008622314161274378831289415591640798427702368711128931148527851195653215688801267926949663297658667370654868309245510429241250429773270818020324214949268387290872559413140261003639458024810357884811125282927138380370338438367972572475527298737170995015546220724867415526154929036381226645803316682959899879770761702617385520148009178143627014947268672961510950662841366597496865517857702385685039984515866072155388011353435105526308559140213770867615812163776973972695933023100053618342681724580418023325590284220533014285596288405506164883525209047355203798226073751943472543346609822507465248738707453114891429405530156945777428520617993818940401537441013886179917532662850293251776577415522243327592137470921042956781290855459230042071281436166510166369359155461535886992472314904063212196645907953926614670248067090854087019718840060279688921775308520054843135797249899991862041419020317550079933212517108722212298156853508944958357609682451513225485588296305285057882976380963102838642333149899278687294420657693460002920891670696535674552065007803335934857139038216106326275455833108589817371740560177092589801720738637330795826345165901598780249552838207351355361642227969685466218639775547198018173079976583231052556596924442833162209737007306083602914865042315552732530861080798973962685319431667516945202390597797083700233607695844715866336693449372144554876091213624634780104997134780466564445476736037686787593108303522060089113689671770621060018879647603678962783052450221396790778176257380137720185726081495344126593294527769510348541812197083133447837503316390558441406812219150557885989032967756090324157094302560824766397450019334840237615916437295393223283171445075420147371612321777365085542218149247413626047612396114952713025019760745185298773060290445275923498579818555158362332068884601710035777876489205732001370882740976616014649082612371696384441237610299111513006370961085997571510272433514872086806585577414988646866993811353667780936574822242388066807056792568588948596801169300395902304188383122441284143140272855746830530970771930068311051699711883950743371505398653290513292685094015474357105460253094753948007247359143304277409505758851000396307428990593014542828922572743463929227387846993323449741226244139902541909943777727006545707665682644699148657684355655389503443875905878957749425566104511457425522489513240671975915339910288985855033165573910314166705716193203480888918692894464281968943392728389688252481603806316145714587027806467533114903024221605519066622716997132529204280969162582857768169045426584890366802310851487377811867862679803566102931654595466050837377555322684718815513781537602477661570374590403013605668561814955265307119614568004042402914123701434030039935733016859614422661079704448523996535832875727209859623959138199924112397326382788066756423059736074017725494692759390936224804252902904863426477148938799597462009014270973805306552279717190857942082122220365980290045214383493681861709095626939244102055657161710126740686089610943384170448895604378548228015733651847329872603636891317786066418828791555764563606598068418199415188695746851104616454217757342799316319055399186957928676266976355494310217502020021132893512650988850887301238635236135526203341541275935979265707121316109554749159714527438198288614664790585186438459979138249514037606168887522034415744045788885980039763025040557777766127772697906394207000765925808175101105585129497048466751604613002782617442702572942529864428691935250092273908195295481662720125124454870096986285202301927606698547534584979910631631686340689404850165797540556844006243345730787766075005248856827908443145265197611001783294497891857853303365519831869570565722310703657578510934037020620007635559561386627189141918962590816076053379435931183546374205667730513559673771585034713551774579521349530292195258225282098564330335587264306546266338065510549260336135395641058250573521857199339676035891941748406715828397949767518091678410570751833859569697535984563639610027799463758125428124819219694642999791153330264552381638223211803595710271718679254971319927089035556741857803429774943378903890174274027118064224132000058880208228913850089143074128827064549543986146620677015667222337788292931297570630984401514764298207292686159861278476860854389654681059510063622958599163606610685043019382841646845145082004477790525851018929899526903789737532311597824796941646682579849566286283753885266204897653190604581607497823340939453011627615037161445919227983445148279957606653772190859123997083895754886832147212086104594589068012354001465607628039304236229715311853185134235599733652747331034595402870698005422853621921055733456356396667395156557613347474475325743458204834542586843096086404027807999240276489884908384711806047625257777976303925777430225387388972920842376707056081574403397693212869268530218456942090576588390804931400523827664186926761267679091279027602571123543027338560263810568527436244291851857255609260492645088312404912191476834528464833848906261987412017531216920495237066757369829445549468183466026890411380773289376568798764801911305382953579323660299264042643887161877055165921969734403818387340458245477449671455237651696458713756432206377897032190780724832421363553694160155660176003090196473800598159589097085718303260868844249107034069388068418502875355813455022795042469810720840573472061699321989075877453782255680008156126831594147086972613138354069123678688282195988125320199913005764957726123353697255583786157166824423524660561322107477319624742817611508191392623161104814015715199255799806785196705310820435750704880418946766977780619695070251301798544267180807323233784379192574301711243723393485976111301581445910363455201337094448321197659899085853004717359382992607884089925871168553707147933262357598666983003497828298737732939533958130163244119666102628539849792586554959842683603816070037281338919766788467058118933797265439687539362598681961779400032016125640185077550927534135942241737858776554829591791950165902244291366873718131885191720886200229074600906077342409562411439533073326898929769789831612145531681564822417529284534432730494543759802211802529993155652160612248365868324257079469817091628383824143398035618067963112720594740580523028660301022702738618800133796177712872023971743662569475095233376900745662663740273023722927592866448873680590654568470306163100783845624781193298567631175123426565272488193983094962052136299464520871430690938155453393338071634326157051501766022584513000788846896839596586272861993298837248946603715595211765581815628627608190630405849238680816959511693911634457774486354006089142329479504912985668830647854373080072165363147052652086498477136190625381898978931483443473706074818400310345795149933397427276262488418933344327331740706886733786885144250736017180056866053608324120230475046782202412878177182235838275240116622463362007077349430440492603271298862560699207655662198674444211510131699763705818453827995897779011539420604324651441269592129020458603111523654212307791254594826990310978336087834745651964782385789970202327662103966051280550489467355776038967343960825229106668804898115843857404017009660957636437628722533384306422026843285085033601384533378725433840946665594970971920842304825027322707460682215464217661799804464257994527835455099880006366815713996162769752070941867053699650340671013791773284786184941290136482087610838111327631948513303950348073976801403173071202972368591191568685955434273528299926768164905955861543728337236332139613642844623080671579278752474364276832461156842955430594948463131480079906306156608961905571409499457039292041016857762500153810122659238591692512897692293254959505979705494867558144475866296948933941507214522469191131975279858367980117650805974412020223918034989793911342157421047083359161215754274887201891597113898796411187603611801826437783748695578218043139164794928380071731465245259580211849294817025136424804808106483724814374685492971101163753591311809513840140674127828917169364673914929682306636490949808915554504442497508984049327160124674113242210878622762294935311851410039616400049042712555189406152134718470372978598433463369839366175388755203589326766562265163512610977255156036615352584473161897749679177561765606738337095652435268566045188014819935265310876359097980031186790986919703614460206062320320784788009595160768445060276976613651280866249908454863023332783685639931949079854209432939041071786228179212592633852583379034824646718138020865879813349761461112965702129981166621227210998887383819465527715797564240010017987252178650256405141000701501539501261574172969910156296841912281010585886754014546666819990093009118371594613527862894606740789663390931388531547364716607306338645877491466300868424742756193839826754499482248413590873014083159558809760463882769119760880617213744303645978530052209558385318948998684701993365684234911170679242874378017426419864701400141811558619395818091794838800226705154393617089392225005889312970899875313351813097556444940271003911237430208141444737792865507008365137611449188461451958523352286842520547181651919931498903014921898284113656070566629417367045518887223717599835687023478849725727417993892382811212960166582965184782458444859339096583529381510980145487883678799365574954051060056302225988236136926970743802563726321461373070045956142131390001186845049044736774056058875658792901232109759929282597761321493621792107887375504758028312828565735134275041542861189794625635320222508174321040606474659387198771220987106368376879568039634719010033904390295868026240244154033399889678221974879416447603315292318186326157427124398971388306200149801807003211873428489345219084071725873508607528751980627595851909176204443060624391761121576482444664443952583482403578557882385771042590354786145106474037467645973178328374398076306296952703145363027925110068053432746801083754114861296680285909788387753604315060802772535076718598043639748398197760996805574129143306075347398731090718989754378589951080801363744969294396638449175951679354574491942298859925357037996097171507729761059166759404099163154331143230638288327637029225219814094043796295678429132666630994452422418223451442164042141417203503170377945985990299953302054801300313397782239752392543426770747437243528325540157023445450713277537738052917111218716857786161890393130343915202841322240134488009862990728937650065676285757420108575404975734346810572507625400219336783977702132163555455331768666275144966190651873297599860183795886052275298287266769393253837838529666432553353831759941859229659096466469331087248951727845920113509489476987264481056955397845537749301840876465131523770405050465360273304457149796505749235890468173449303023412857383388770104010900742007114163112285679061085281616370282095016050654375213531512799809731415499561246603322056285527032807067671756572365728159706383043493253604651308824004834106712049101221002110388989580047106123784232494963060052149401805825749977646479704990527826378825625178832264598727251242680982865427466253748411387479323677393130198606859977716155034318205545635510040277412130164378731680036853866896953945599892954294868143880317846271491526402537507350457053592738658257123118291674192047607045176333159244476763792638958511117192067273149346998899732813326531193387268370978950763461266040964223924222759496135032629061365005682600146618027425873874057659860695879044395969016169646456646221778553608424885486760622382199260252151978214342636246646947795550588281707039865557174766122489539736590772073390922804909670470156981534266446529079067251546069348547273525510721761784677070344579111069201349042808504312161229307913454930536068871187367055410898342516036433211987133179092331099152496660821232745363200835706860819779396521886919509785615846976029905221884141672338457110377141212939823566921042835648334094461929258369739675355829679760828677978085817504370279347084509871610470517717098128134620125263858924008522671473829264221114040465991806288825672846722471116726920296334333796879266790531036000817900835838868935781370961261359557661207885545923145952796445725558678174160566253993361833433093670355778315174934625630641010853288518924342281586076322615067638827770542966782485814658441262291177324208125557157897914953570277510168435265474078350970129059712564450682380293786236978520141914005933954410581949502737959349543772838746224918397700672927075970577597934854900705523976364640568315656758155907691939663294394540652804679999776921472922542640096588717893236566111102602997464534593465115528248354398688733843835583874473384395940818887989694958155180671212019927481479721072465015875971654950579835670799966200303072494646793184322931886775923649214659848517314851987399850796844859630025827243880710870596963517656835531624475360707729468239545256774731241710356980015399151536555497255067507221103872118036365152312933745027542424725774963763521678934962587317648907948930322551263617104720961622486583621646510493647712413545479207645326935773945728489651403997330006828752777653513535595095550490825272643215937361032165286712090034820337794636931335726921292307010660945406943800617790741687572903702958424157919491304163242664789815629807403294580050613393238512731230789556629590093341517000058448978296200365244513418644888177493360837898789424178734066963482009250710416999748032087578098654105622372248685749485123190806413840715580353558950393969081343641652158545596707517588337160189828779554436585943782196228711571538275427942382215935291657051846985413004092295969639331229891792248261461842377657595468723016636206197145310287674465375672115086961056380512938937547523312878009669409745336782433937434314809614138071693267089037412939327220976692174320403742848517701715109957630208073544075952211730817270106034199791703236257840871613552892635260663041804122785910383902614778456614906210327345578369081752253885462216439819735210484883942388241108183942622416977860813853015272845084136222858396640905492782805657837735720255775919171431563261204052389869079320579593217015649469012816767976353947219934795668167268431839980948508533693244305854634513529510461294409726687771594024467902122775066079126402446960874992125725114649271602611435782837684958663454776216937722562009206349142007494326916627025428227985626574644483291071590428655869757677735242963420908982916965945650374050817432802165239614384522540771214123595981565059249716382295501607349135282350497147179917170643980175859153693246570480035311057027895103681911437349224364105305968800119955971177226054185897218402838389560078953550442584894329703922361720348447493024998750455521760304068139937074194573391653334082897196671984714442178753301612656748717736865505033497313804086144573702755847426955217937796638550569814978030533602334510519717314527433604336313206255784188284099639672560116967805399143909678075428128794349197903938010776041060986156579623447554901541609152758303124773886595659328585273239849588077627902350754901630842771341955881981408778659770879702727019766598534033998163695675928310917153411647844747965971662612190847391264531043727351518923880988223212601598137817333578321958431500015133026463127456813766220785540784195696142097963105689220728625445963599199480858765531212496035039051869403286345137565683372359274587073495928721795806320961457600108294649008535223154888471081930103389039179880049766957078189167468012962301696154076869038878713080011459825182198025895369768371612874623534795012300766112405437029558211503071573572483270266600748569809165724886255344425554827301037373109714611614623414745024051952679601794937532897996929137609316686122265302293859327632593436153259097464455537654469632077960294714104185098200299337066379373608344007720380142179972774524485057332082648281295373181901785899669574484442067356609821693404438473868133966190763796420459907956547806628745511814054474738126783901125878192782650290228848388526406560923660797985469316533129883919126745582657893063294546908322464725086731744857514714622932887883932447403092849934229275717311227524934623518942641760856382755920801442240906502017802018885069904609186014866332365955497228842752418988263980542592126017963687576019293970189363235502314410396001547034215029703237424871484200030486573343319903440615431960278547937930955736208233590488263918935329179132178963427600789831316993112189594268464356046397311841617152593248981004263051543405498642901534137492458512341861901647622134577739041548383670421282090011188015790652203481273476033600278669782514646512474780586955611665532571510476596980901661254290504125232398776609081187608869934361410914133477876064027080292410213633397250646075466529089991758316870702350920568023465438437270122391984012539821613459800988870012791011512071632792898681419158507123703264784610343515363192736155187515058355676794291196440154358951872315574823185039014719272887399657422021736618736037756101981938462073729529234722311809190079208579896146770244536877264945299899215837725812165845146227802269160564851885051547790441380040371051956893345674824610145714848029962904386736240293662719411823702045403032612014100448831927918296978181264337579581338101255715873815660281048637498931333333085718017304464501197471544418233419766888977120659899569119555129938319985969133359772857982151207628079016317094019977222949574970353935666412691791129791450469229670244628395747984923002614165158723247377399409944197867392973865157198343028047618863782186514754456744281266670977176660801779911832352064165756039191199706985316042368159096072585648105490032638124322381066303526854183441953381756969498189438428865563716686683805469768660681611445466808425595542259088571164931733907130070652083472664265923720627101992688774978214625002083066973213945222447047355736107463638740502372447872803268046688683493413708359784399712091009219155747195521078598394450503581281093694266968683594975953823725028557618793481368397833439774521096298966639682747921002893994696201866740666863119486114852166453578455995480349779388658980224976952925153419239558220264201268059122590664851023122700432303580283291171444354919180685987134148998010178565943020331444134781353583580823309865430953963197358387208232587504498525577480186474552922678937038294615141842278714707184975667434456794384312052781148427385453726570600197532893831758689631343461234312967046564350095680496358277600124816674433088746334264758011284907609027503788915489376979607248192575012451272711843234007653206514579014560879379854876462107413667593995518883433819907213987810665754951103104820376751745858139632081121767615122527564333791406381997444092608765475187491166556905282804011251051451375709217625967887195436247095269614887796453618812255942742364778538889371684954245947402761381637914717894162037445381820454511292637264733421960452517645667006677895916200134273823854867434128106939258663277448921485078964999879314331656744851018614413247973132840881819575292057473168986778596856748694871821708892636629645456212062224335322768070550414589823366475689590365868033228205906190450698973975955246181581916886243869329435968189649330820440907045115356940291479743090161387939969005619132835984513247208276821796237220102841501167368890741297532269382134284483717007700530730613218932390009460814828411331683409621463274905072676274891785405719276584538008654018481291861847213186022756786001224967011143124910280672171274063953195791565936919272144090683575283937808435842810908635039046245160170988436707785032743020997623337546663402689336918565248663170964295679355034284997757328923501828689952130453595090668968355108694669956678553209428801650546190746725910972330372546401256769922286742961107299964738150311027067172053326219877133685127860336962789202747573282059359092138523857692064314250436677771214533739854628497159678771564290569557170980267740041406038992075347525833129190064651126008929856861712987311786282342701868887223885587681929783013747153615102191951855547205661473120555469162259638430251290774178822259808739414174958595439290684142918814219599738723742951876237091148421713786991705117785122369321802152131075604493870516398974951751135558666122250251680635162128824236566726676472620962582793287860808211761809425399846211571302830626324317412307636299583031550366121375949484590824003850930056746928904896170641555831038175278508560097469328586128714018021416259557345224580991861586930484206382501186512023002154414952258192580332755806658135337011982246664228248213320771265790413491538522216817338012555114280713886448296333032052328322431266379447737108276188731904003932550252058612736428876719714749954593997305877409294895582153676483568574555660242011007789098883635743853088480533600442644498021110824037505368892894613802724474604561633986443133330490035609052626821017798409829562854425257678634905868323130267071598540464791977669795143902417199372367485440219306304694620610261412561267792936836819736630571070950075181521523897205980410479696247157675365142329247251004818726817355273136667149779060118232164919261709795511207747746218749760193623467016594199830406930822597756028831510044569963610820514901616988013363550373449687175827745501734064807552499716664173460385650347915942973756669425855209512553327484679356843065552268970451117309367682939379422517299924629044079236792650955475417307213261917617801812383280110688021866834262665711970924603109244455526022883254904363461264404346738888108857230667053115977225307618386673630020729799495622738433578703316539116271413310583432078793075562390850420754696439653285789913063081967640978924698561212421089780901918910738207240362689508115251752440332670809689086201972469914306152774987795725368379210219647919667819975535356541883373890040542006721636929645522285437416624793895763493873195234710871391809892526716085491417021683293673055478170336771437153129018102227307973566907328582372721842148362088862124716772629220173265526903244649980668049790911546455387026300354987624605672545332810299075601263476625992460415145208748433885817550804737783960275352205082071790368806721824559360805271631322308304252320685192910933517734520531610183903663291061453667539587453967037539424668127682340990993994144965311642219458033070485585489379411817359994153305065360546736087466666137927231116290707950740401355918269557928606127756393279898209186791611805006379897635249876495386292942473304860554436034647697484154809212593247560617414633007389698107163055284434989269829748069968160524933661417415722019486621962222565726147210071580740742021175830404920032863725409174316358025086469314450171716931986103617919106304470193370740390900645603370448544037309440027797556777574150089862157903682305240119304612445939161715293892899856829152707124122719542181643096825095830669916957166184119469473500654329880372083689381093096598233131474930969800043509488752882416299376804426946057317550769595652016243113235886244193853227692352980043349956289958189168798582473798607512804577281814538538151874038973388123429543786979405806757641329306957170714608887911510888982443924760199178038080097129435548529891579291137708747794357794603695305517658357027023487500001379163048716828595559597118648655720244697449400757092569941351219772914232857814248184664980570458399251152221263690690159842044754181907312793168373847392437523285707196733709279685490983339531817153156670189332168641315494719576055223195551991721524138704630573169773521648532903550962460193119109799117904777353254114783706145401754304547002817044696653551303048174320227409126392795889023836994615674180471245350924602076544385748801020152572738948193707138908744817288957870681084847182900729945255565635722021922244999538274155604054468361476822469678158862674379004022229573809505399695324484243688089336243232637086217236076372536654108025935554337950842264999989128199376313404254531112633893377402629260471014490520732976246272788952235255315091557569780737732590280840640625567975790241972016892965631266410642541330081003843183546278267489491066678581523997448381744822900074149910587220705411875302282448146919130889994640345578796640857267269643660123465756976490750275009618460151894699601848536878765957876378665198939976390767745459453268883345775011420677829753055214253638643450753780770526195683441985483389051449366196374324043505733113786762580585470582892807586609981125114545933927558480379626941765672477340466366813982384008178428097490031572408217045138386887974836294516400548593283686439528089195435969313597122857653477159554460546540699083494720485010305013286549176627530808183015455887674634285107266577895347372630136762024215736780695602779050244693589112985091012469002823187937570053096970152329981477544609218754343757531821777562018917084676321552564598875032233438919758648400509203037786872671793247471856647721576047019490590495755221321778825236555779082600569588376100359402556416403949975628666727499533794261293825328151495834429308679786632054196214242029188105597985116439044977470664932659363068695183437626351512345210896913449647210491081652291345570286399724415364689116312211295900158311311251674555487412694072017377910664912755629834205308812192877557607701299668189464531810541048114439138716681286361276413246298505909579653861142064523526692810760483996938611465873569325865880046170245462000270961916806014991471042454623060692931128744050000031027987409864474861020429858179917972541578910866267027021787798939837308950354881721759687676465982121832541346674666620109609348274166450183801654337309059266436462562546550111867845781066827119217603508096952842923573750431409694693143934580538343976689915553736720429127040735662617428754901951390501092448237328946975654919093952122769616172613986634107155369320977955427487190140955331899616010305010263947520440604726343447894640121920934535246840683791751284381767187412945766068241655523670221602931611924767734601190917770430389085390909264847017751876605024917416226439994134204369957562737910975413796539594610692864247746534212889975557582273674285893217662989627636436444425931615378619209131123701703805409849624365609141687442363449788258524067532656836249123476321299645853362663206736310874274592795948115343006205616782938058047613943052960587960388640045966808180432480193287217845548719635176112345043857632927011600973550316304918647434737911927103651939963272026375825069418940604823051175523348092274529297066904095442026980277298441188534246111952108628862278133484202267329497239935379746844123818902518144422949426736099451713704015259788346539231248178568544579459109672743352262380790776120196664102442945788489146295277294802482450748799025015058908088821717828591446189668250444221573980102830035554567079872659112008260275510005776233345687893705607713399124987221650580245330637516344692181823873473284706655710475912611787768319230175106843426111467703974893957230201465841419626285335482607619066392176269735343437413183761770932775941487446247818394139999740397278774922446117557882875157710783375410817707783987197676292766674549982516846389120984620088749951836661249716399825280673176871542128202406039096407594706330291405807582951927869918462012284991948195643878055628451005978599619506212319612554781188956258162764043294091127125861962306495123597205728464557174032386947266683544042823337766230809708019946267796005801340146064002393914058091837851277448017584655722004753988223909530688069487521246283928416551823104713958938959541159743359980535960963801701389652214354292570785058910620290436490440544572434074022526382224653560738507527921617891680831797231430009217299483474756179776525001581822689756329238551975301862798531192213115807724384131900738497216520017607523793270523106368781677835857737998714124881042734081097916089810991183422235238680743277738510344502456714407585329464420006734680861632611030902494700134348108398959410281337453975208360561328237090895109667357910799071263594744243533299915206942707461474336384778775122369408345504615649608683020114348117010989754679821690235567131301836358810942419575155940354348978458872575050428765769216914015331620179404257189168986902429331608851538416638243824619898934658129339826874273106194234488338687902746101409303396614662577237542715256668959596447010916070662282621922948086561402276825255055285509365797507946574328194689573726415148942902680052248583462792420129110032506479740265500076074482197936953402052916045372562772802724079147271344319447560896078884861709205876985512158000952534698920588311437243386413327411633627246005568437345373966598347834127688722449235695634594497940586732318428374416001418389923311445999442748497983625105688013927297222968541648941168305878611266072414546372852805143906189104767385480118953797340262875981994925322590565415985306324646333487099508324218373406479024265835637914420086289625041166041119264072591924698309834819995992894709077182410360874568489374269153895832157433371770612314049978146612469744258654912555110689965440702010299038031244723397900429913545913126865544786787767806597643544276608400089384256135274571002108261972683592084306058890370753874417911333698024642422777024100866533624955854518062228640031034940748659065577311587013016733228102041935276590469714257816298548840444506028561843526236397805192586373559379705512950871283512216199200321257969543605668849324928951119202537199447458760991235946299752499693477486224852538165747351706811906853165572780424199989470923864529551716313507101791899360000763827225228906387958788163746891063078970481052866451309866439488732130537496679443959028600962235165146149806478587657185920093228563843287235756192352354874084565520645242951565268223781204953910995662816312537931201288462036163299989180036176597097252376463636934478766837980885390499888865359650252231580098003991193065062749065361414371607758616879488348833834706294224547294250855370642987329393574602627409350711818049842096508759446615152184416637011917330818963716001752166714253259520778018635292886271489307192891314934919581145883255877832994104489044748929911642949898373802296374711260514823692929872137113742854903229263403145205896247343001616961780025492315916621627487241137599914983444481567629416117229226055119069046368590785577767066991266263733971120852655020157240704619826368833672228056711300132743281756172564026052810643673926507650931871939888854137121941400639727123981537816925985331961081989621604579897686667427734228247035620838799883009532674506996747293496486243661711109093880616097491760171713556396880747682242929737579138764118911145298891755235933892071594473411170593452758196283553692425643429176904997888859354864599083253799108410143608083926045572316430413663380641038531609639441932641108713939679170832854399811893148046653389894511047338921234609341208635594302636346097123487580736425232155621677250502285070470282216452961573852473490152301358667071905206097478077955886702049808581480535812635460526384473085905149178785673460469443097333748179520107564450954348750729234435383227233928296376182583013608680253183761313574660490679346881590339171750323656892079161795673307219679663706684293286735283541380546464700031221018700289402833687100408934932517456195214973282152364919101029427563764092010572790250674524469892941574974395524203831745663765208711966789653831006917665349074133050193337042994324157706181838790135542271433459090200655813469911321321577848936816594012319274303546894547210459895756122664041899026254106079232882824427782079565780220305467830768282773424835977677842843909400871929104584440006121148853605919399965905758484816791682625111333519558341410295749449650272872755694716494547451306729611939836007046011312755353859930264970415542208585559118919415948157432056931154149235651132786346863527443455071694267873837659119707347040394807149047684205337602430403807385723200451129624924008429692581347634115816421708348431050479175207730881018996648136106198349664292206526564229649081495969427185896117820751513507743221904415218671413766772218599765195884972378525440144931768113738385261628042163372474674421931273698311584337445271033687459887037698079820153148128521661059404128005979959224305002989689251338579307401755850687947172250965864161776584708968148508066542049981075609215861058948121429591114855447743908245114957766183047227753249131011897800048173469989018964547351195033150036509581543439227929621750534123544879952191525835227922953633807106631253753507442695069421629002927772289071121443821190698187730985742871919690778853584535225237056901827793413583588748546390317004520563297215007866124257509675612978715501085345457539275672069169112339785319956122764287986946786439062870036145533849709866914270711912648514709571024315725421514275473019203657793315572400891415458731054036185025327063524669536715104762124419337740512236255771593348550634750785706464988111362949720592848755486978801878133573834345858748078899466020087984251101287510898108452662910958494239162334412725118184232517732893253812333216966598925032630358888553682487227790843928167103269295737920589946893118368400717199204160856361582078230015573599412772664701188833562726832293203691827695166034926640426162331012669479947504601731205798871208379919586267498338198998958453578558980244206805558194052619968919509587679858424883113897359771057317043678969267397802576866699746497391277109991327472232066436407059827905074719580919834567300067442551146530244105719766735164763122067658551809743668128601279937910748274311606997214233266246124395224052189879297872029816973903435920847734899093280451651187695415057580562609178809120516809040716778619607838203092122968654097200306876543822918578605637532980908652256064495966520888962278338889069743287436489511938718455823074230411492630438294428492332325298175529354501106521774675914992030783869893782596702948758054569643981346336453229436123593143725567594037176649653289701627696977643525154242165366995743564818337187362510683284986039235662562606014747287031080815271732041489527441093065940755342295151325669595818027706821869813306544667625192539232624218238328219607941860714135958167990768120816522924806889799450660440892918030906740051088547485005935725801081762825073077027629107942961766672878454393392886407989125944040923770747664219421271666906694054806798817989287420785267450013863631165796886130343894736953944755456329259216365444549643586046451991470102790026374017057937657903709141028283202131153127215604711822676061966907609031804752945773209445596042363388775946676108137009851552032243514707175127734072339026456652821951267249010881225510311831557512026556562037460351197635407632047993426900811554651078144496838322571085530498157739016781544946573011222449730986319024021967975312800076215653063688717132922507331323672791047903322801309242712330517023595385086411983371895286891035002139487768922263369375355249595427592369814589714599539245093207368751395056842247620299852253044939615407617382102223042645755544230664056192666028563110971393859967339704777667651897301913000509061856208919632523729166415642527860304398380823510628948686260043679001863653222025155207434181612174248806825790613976967196216304256160351962592994386088534190013410630460300270883091051377873934581084858490276821307354553485898007380471005914342884399152934519609917665169120429224463209395019440850028395401670958326770300029882401178821176301228154527168388562031989658420892138169297488137816069383560870428584221179405733300178135268527666493881684485415736332957535382082770071859485552253061832165940051454179368057254057137044331511825989126124541565590662710944101530302881208124745840087114165948198164810884893986069279335632502777108028664847662767282325469704384464098973499001037946756652599617467255290494222061603747236721571392024710759481637755216040368706470351137394047396330672561046698868092623404440110178447808357051943317794538198706600790491364652874860953067623608642781025993842867778744759750309095015163858388519600943215192996628688167320827944546048782552920829661572236941929856246941493599794748542335827932552175280798138428689010415729026898763558766174951078188465658366877175449031368334423200933999056331222117084927972316061619011353536562938101889829922865193890409414014994500878155542808189662750561369844839299337614006286491272822523618267345975587646651832210554229849365782907857545979427521069116806271728337686645519206866617467564901194437456349255862541701866053235780043368944232610396596342855045102579174764773291640435408167035428048458431814636715464878676366922430683237127767831269669031267132178698600160365797668118766658766006240261619517957164673032001725595892433715678722060488476704795367348237112878556526507210290181589557550991217911585267720833253992814691968452613929290362276082049017919939993691148406893241663904707296348699681373387378960219435467205899562339710359850434618686347206143857257945388284866186183187918743431200887028111031163063884012806092659237254220691681019566265187799642384486357112837100922752305078147125881579364722300889494624428456940542293998861227448455399322740154920404884119669377944853005104180977068666087751655511099268302570759750464714118443805205233672079185646284967514978887750733312078194291662618705338155200310177043996632651367206246661331668583854249117856257671124260224662640875691009744863725745268255942074609083087563817966747554607202918560163098281340210263071892122755384357872215607407002401633799579667565527100337187924499354613259643139030737006135299555924974788254333786479455015073286368968322324093083975158642526429224352452804619855483760246811394751050699076060547988573188981676977038710077218560606339318258278389428107218344800438181416461957800506976867390821393103400694094346937883504298435393821612914512196604950664670626565787703586567566894064248376232164710673137291342433473211323352535824973602735244144480734592410218789761126573102560945713829111267807392735167186725666353839966821117124253022771966661991306693612951237774549032045017843122389599482188160510624202420865068554180878323575461033490128820136266902872079475368313404111982827720817756396718432249943564826889204608331067261780575147726897556512720804356050870784934118257739004190578559336760366065404149610777544270074551919445689750661023824707061201171545439146494988904767459071725507343590135498739167247003940988845523791747547721414627432568846489124273905239267501982072447700769437516145963555908958718879710417569874231422151152245600647266593031440792010410981922259044411585417927264561346866270306138260992981166945796687599269030681714976231024184157959873491305375491866324968343365758487403049794019136438656857908931952461379446417268873335565705174242904631138466122488900924306813807601069463532949841757192908465755007498808462889495539202228307014496829556182939157817677913442528513786677712782315618880148376737342128405973942672002093589672020138512321229785265562434836696675692702131227486396644889432442533490517334555637969570207156550321615754747236658110436872719942928338905553528433300214635680273164626681253757184887262305640070541386803143643110767520079048156979896142778175741548947477600763593808335722939252421693652999051750496995008552582337592268051518972316357502163342127078921704557881293173354594960991803440729965497718308824688033314313461237307045500109795095524311805647030687399829773299434741128023918207960983493113172758165058010651367055240943354623100893204602407318556105903955393305646708587474722626121624354539572750926874515151680713761231948356730742998952775088920294166449265113741599204875833604346972997769950149325959609761178340645426451807979295426718620747024868957446005799397260154013652101236969164186879566621459746700567550470544667726470831553651167881520048557620217206302732607855786996873455549216298164286846961567860655738174174008396549919898624662194570803896553076645041579429949986012009104630671377100269252309991642601084222672986142917590937564326104949929418970005242053738075095162941674019491135068570130492953931761516909677793944653004706859439386016083992282669283071713894633876460763739703509604743310285481769871448848025485395005205375449464103898215287662821915916533502137979316225846287057462582293641550251742587281478779811975878144559965068859279668384877531699247567475504942681804599369843552680861941979976818003319429185939711407535490426938545306995197241725983464888344086606523959139853342728230849478314921853804097808143696930415636932021128610783647984447172640618774896001474782013349276117064328926257356756602728535792598647305675005001433850375270540888192135197855475403869478046961272002243031833241242064169278225848856704594825517730612911490799695019586209440987252945307997718678625081632144226295734349296296044255335644385109593795478784214491080003980209409924297177220925660704425672534819013660106821683921549876265326134989565370305084964595785086557111302323548850820325234110430088053958701126497922924299916037157491245807779275864856668370285078231198902668450613038092569393226281398430522853373600816361075362993521663995544420191774751733431585138240620004048567484600547577038593249159359333718835228529221694131300905732293269214413015665164738970568705688056418060338668579204490634763548448269023861478923823714760997249619850591144918138564731366297808753141832979390348763082925946126027866062650513448792563649017183720300176415515865289946534816028535514719830383588153370892441645208561154927040696427464573236274918477064743849960416098420890059451777535362377478225778194717670463536499412453968608096796446342537567981367207971600630652564124969825211118872353790775204958966315916592918776808274990981261168695642010137329407822657006141797244508120332706127854633079199849206791208926864644759990004347641825805891897681470145681516825041053350776959152930677863390715804823087517179999587199048714102349875823760437043950317519893403145893939471773334063367398655750628489568219898982134659309213197280212626057218054072271282126797727583488850677327333673384251253580542818402653514409951792250391311274195658673967829028509018417647286048344000533628286149893844129625929959471691685434532222934659787675813426280674525604843155552444996319116217246331494776361665462471115948784975614277033890913094694864356513503140440248001332158944104199657513263268393422381810529092840357630320377135575654570077397356386317453020520139175450457359198027202545959324779054392214178630253458226991841079475193418322767735662242005967959685419310858411250551761259531278257375913732184553870242806980672741091044183577229036313865723047979575264462852042627613830294854047204945694105261110022328324595066471522249947110536888903233856724995975149919245382288207341263016838638020713150336496843706475014574252692644167611578756870976020843246353049870806346091736020075985861457564390114094384914612226994354875895435988982330798185040832549246777236067014991443647513197722536987987611102616862403096919041683235982658754629121033701896987885061255441553109125455790442193055544669193847383581345153049996736798224991937992630701618693595651687131547860146289403186607676807576300459800694590815892880760963981717232279591269591906464455208009236731815706258690532238834189582102581617788706166093837242179510594918666512653566442130916223476322440892683585639801013264872819601512629928838540942118953255815997392268494413418364240718371073492855647788588340355582711192947442130075308164311999953171664172737143797201296056103315935122267569635708996220181405997521895857474138107503271346977806862784121090403268663582784111794037356868574108013252690295865426527214342959580153876381360566303427653335083050318701765038052257918256543513539512366044994893191657717576946874110772339442814234345357099056262156856182636718669882441921764795037461867882170964431270059769293483046184719928706109136773019402460924466527106482800639678651074328820469335037607658736081048137282988546275245369556872891330104333302376733828842550353627280363545063997672576952719158581391225005278188813206247480220061541691707820862609600368760214174403685917227514099988633904696058523802705833487137435739874295670666680817665852054418410693807891706229502526073354690138555927058121626675300022696145521854314441667067634743104308592432199906339162853830325568708961291730926687162208823573967909189152315248823091606731302345815141409522723747531884020726499606917347255782212267991220830345466367309259957441349972020661196193034223620219562739106246672661331500689035172096282269048199333231275609741490530696950418025930396255691173563478348859475416127473038220172508282499145804615580275603592121542085935789916299769613629515278779727798290297975510703536609151026581974470592417423894954493942051040430439306591920797797560423634053868687742059954797759119702747091319346139733099723467071589146679966278998490579806020925885002696448902592582469528006391241080293624053639828256066784543123103462222414621780967971532651827384674937435789639133660183608487491211469645305849289300857511189204425055932740090028558887027297121055652150569952625757486871065088568760299692398339876490879113407793222057855032375385241457634186448164181096668911132505148936544917804010646557342407129389435173717861454650239381879564871657494717158704703927819666283438896151189781067311503366656275050554758676245961773672599691420520570002301150475410922134608982753675926700237126466447240794951825330986115771882009272520678462443918608527815450509194339470784918687767440886226796534424303309970140515864331043106239728820178042670520322873555464396636846889564003500120314340798120817325171947597733156455114430161538908193397127674438876106221273345914349711137574156320895793970772950664093655882462256196340848652730376786228228745480732021544816637488181105456534280954926865639284516675466661226667542841044828106154767686631493662868503328635232858013212049242306444054491619036882311679004434876538906838011704343359000349889982923953281128523658021139677583526756691149105077590573632070540455327234321111195965391470986401459354668875244624090514538298287208195979689024035761320047470507157322076016654746300565384135959603960776169368150531999444570190398606701638500300867277067890113701989373395400404810851004167258628051993057589862292364641832711468899755394873473759161383957986057745072009641339546349342184977853207810328217243607292664002071274118224757557699827228644951929000141842485725052146968250051809234391559322236182765360297657456535228010802979635814488732921628467239408981439465919956011606558832962645403793645362218481704062920182673140373510475789136984042789318535714252171589195864076581455987505897811841061463205404143674944653907728504694559179507616560085435087547292514951231858976550883825465861622314524392059741421281717817021959820488979418369761629042147904126708309543958261867718741130953220773665384820602579511985661262389280743490153649982162917960344182561349668812479665870752529665945631501621315329553083611908671983749829628483352033066918424976285852119630065360341912524721272481667635033366728492574434841513718292644442183204069970261735170742298516096007745413519968527303736112178603326352735685618940456066603560554938535615749466145291334140699121985207338834553170260522247800720675292647386430876376383637577379713100891878293491677366977463697435803785727216518023226015205522320114430122154935121228920914360765119251837426902533086295447670195170177099894084199466683817210275300650169559552010269961507823133002433941915712845439569788943606239696729531548374539609981463779326535561961882354815270806311910609875171662488680533290845589088509384110499102067805744161071163674295147102651391658147316204396123800122906482678062055088825891138723260398706942933238722040002269850472789143470235443477796351180054081096402589458727475421463086231306334322519383816070280254976186547330003432725612064095568702199655262484275346277475456412635428706685869738626016589789825075204855134604694631992547986232381595367985611352627737324308306322198427835292789604356474553591922845280837717194426307794986229838540562898891979385633845222420171298938831246831048195038127144641567649567790908153002281097403971747755479933014808798578923544835488697432147828009117950696800302652982650738244245534732190901463519868484506206327887759262873020483308613981958161131745804851880534411782246521286718108360705084274621222517342103493650335732080168830873455285950561016618995086368459930846347387483821348337686944032345803947598693376967611247801346419187308643839206935361306253871771055307615117968996196669678711508792424612270774509801739863731835530534505483579688052329121588323458934085728134478859689817624455811579518846725714368349282347366143937580156372319991082800704836503539668739751738354278933936967313319172650441823766101648434011857278518269859663031686410335103675391382610496866088653679936396843571905691673741757854035487908499259370364188205017458259442272040617973745164453154381870568469091933629829548572614754041905772576795373652367678768617725739118109142029082712489362535368019819828424294607098059367944895201471594084122350634393500787460410653802822651358091123605778696973737696749944387536843515425469056410364788669888626902207966516361388356932863981967309033061577003567485635709975575565595850988020568571189727459260576232645357485263378814357515911284458433897702090767444849608661900779469472359409040616064224647633155703487547169074770685600552757693811289458164376558637040135273018072587676423881317593950288630221823829160560380887298048247596509757859916978634028009365630098456516755189436777451069475477915540957151878684240948261141085483851842546394769038758499177182067254115470962188369107638032657149591236157796732785873112451435958515509426805257071442629131134069028972959206091685057587882783698491843114386790331416497791168362389773482495874610884928773243486428781462926755284470912427437605509684410083967751815357254538120393670359346025061632446651480229371372478527568441252912186256566556659849248738671205362584338399188789710637386012336447616554225944697265542722615645915180504356959173628338062822190685317142252794642060689277118698260927005926493123207840101701118919849780408720535512017257044752996678831897913777254492828190584177015658899714751119085731844731877937377319777464768199564088974726327248699617144966012240081488157294055488984112263969767396903768491277723662244155276376477387108880157891444655971196140853761156611655053452247153643539743666934323519482600162020268651298854647682015236700941009939458796520318909627625596491261968995103130410375433958382609053897149413715513717238265909727902764069686404803155541795553914662581586202721114349535805221830558060410831724509660542493145081681798287800909757778346588369872819542803580316012649763718236808422393453166367475857542089744006440239475466948488510008129324635074210924725817286520841745132862521106651409428148261475517889524722485328586846709998326112886634137208013626588303903428834790780428914287541022286880598282503969952762824477689872824956073475450645610443458668687365137092820522012962071554592501346797101435668233231893380205217695694205979445827048349529379418655961919661746349688776092095186181981954595019533253567035766729099492385680703543714395378601988283585542423690935150819730724302958820832777912680815174228888363759721603897375714127602646070297973604490989571835395718578007130416301193033608345703349733550332267871646006577178509430496849751955845341772667696024881545420848364659634449851900418377534902511942005305203626426720473431291038256650404967300090654249675804676328396989714587337182275764908698950724792988015755731834512448184405936193560630230088638635925336706992545456822896079140810025296593176181385723006998243699336621900833463453077397922566477000621643258361488712224281145745675019822208672445955445540338474649507800077732685729518169153653817020729909178500526175422208053804032464608519437720473202391893841090586476950720292454014300569932722240692006760480546870853342676455062236657782798150799020750241794291344834378943481002425361566473368370365787044193129595389024830341926692831967957125981667135457451729729645068825280013005612631388959696389896729189820648649287304208283959667391408281193827246856032876797553555182174861481752732893100367840444071573052052126519233089345671661976808429843258136667486134034663302226211100593021138908681649224497506947955880177450070430752477104277102236622757596985365669255485806827908466509222438098414490857135792961859032581588135812131210306924448050497273494943260475132531907677541399045585472212809090084415191008970916911941990237633698516566067685203990074850280855545629008636611972512408683017897545319124136766958432865131812849693722899832665736689697466448451695510154981113993485189369646364212377773243091323224557864325054783519824178466079881496136381592457255793200307039451601372675132644686391095455647595601675899231569063200869470058892824169455118902556794165017316397294614167698363129225398516919864751245838031897854689827159688053691406210814096154567309789911981044429710388904890252484890647466939682874433914868485553912899830423624339597872021538845346367018078069467000002052999696694611515608228905519779511822816101098156872220565868816267527690266248259141053919996844601340849771013051108286779561885097761792388567521603327983759622015097190092834631165310926937554875902679211583025200689045366238803505955941589871754716952685309134791002497118699130709701641168304074687810748395923160768222848855007864931468888756799014513408764114156275263653477753276708820983767814503574794919578802074945577149266493665428780587594973313064433101663742131205500847221302851832467820550508433483610015216264687866907236151769892702400288528562874421049006461952858928123322239152847717392456580964097495924080974878063272239305584603927580811514492868922989700824486950497112475295530620356737805469664634791089054751502247563988777406304266810475951474491127458367060559039859444439228050798801642150992355400234032883722022410678348885233893844806605600719683700372439225778469137746851880175420586820926601003598474468798114337963731030467263509834937123499063006498978187754749983595229843648748093165604911019157576870132814611610001169717908121309462657061968532908214329424221144501905763261576975687533026566931790301651787150260721054970346529971224953585300008268166821644996154902942908049367418358107082994460658181566785386535761711993615720613595575206853295568411259789261620027706198838855749539656613183936817894034591976749799313164131253410212322886474200446270166565580100734586477564472220551658340861715839048609373705521352680812241215952570746573668042566136827221728584358273785789820274550413136858801785897929940103651218196186613039325197594128749241410436713867229099289528814301685897565468005983016500958708883488833015064044947112282697630278395714214062204182561562655997877200602828454952777104284934354861841289587440666088563122859234729678385982531425248193282465101198524032487456199973801381624415495293921178354145889724272153496904914155517563606004169216891090966669036323126031139969517756647823799987007252514674709564743486115784429489716856580229544714073043024378374125041456859007877848283196480297519955777574449604938007416870193907378062651143797072594261426981422695155735111334481511631014445374682114988444592129632797280776178377736433130475511199210597040790927064841428559801738986663831186135369114231772887297908220302816191369985346305146975415395907366727431956859226662009901280319631141185745479844220232640669223387097315222981940025705879855304916207641264957849343761499377445613492098765258527862802005189905048130713614336640507125673468234231313040461078636941037101527531075641086592968409755829274034641387424372432972281500414681979070774336197251122597887158160721291260736530127234640354363983451899568147744667272513673567445137034888718173441521940958099375769155630132863476860577081093845771063645434986787270701528337525332163012642597025712902405343443301639030870646203148444132698238332638420575399958969934861208131424373346851183653194833483039451738303959877554401753659151806877058754572738175251052125339532371012091810448513172426052985259468572890877749869762229267004267349955277942846158924202971695849236450906334178813058614423077372062370908696564986017972888265416668477324840022460291392489350831890172015695842213824611877309788384192261686176742202268391467921455447152594685114890168099983095531607709445520140402586895628288267867999602259055182665910845395246856066652420549591061699554023037950543106100774290164703783127434236463491808641015838718584981349749843777840136051694967470263782437516545763661692949199483434721209769757264376086002298592076601446522723695211946061813617210635806786346526944752997274888611826927957854012694365087340552667469076547296927790952435815747495301080531542478806143934781442773598206207849353944961797413394855099952744590569422983449147295745004042210339225185337043152124013739392586281199323477998722872768265327306972021038889248679872521618984485209739858773201667663715714498367571667287756673212495807956749772494262697988901239522307158041630178530980415063050659519352429252378344675404277896250617648212662814511179179084552666348759669864373386721865293772240346661777990344374769767460553605022963977244180409390669988709847487432677368806144661973321617842148895642636920420153294721758709554202588125085495707144474743045140712172300727826875636893695730545389244602385584201420893309149158075604987689661145485642281792189923501279198895617586878139838278972856054053623049274320042285971525959098365322320001549324173814883964087681288325634279982753272219054071285282779315199272210707706320268806738335528917244119232439799627781961014334491616474520789991659291374729517999942116951030780610985211028241092872717862955654358697922789057748351641391896859428014603016034327016012824164385481839843177108076439784171262306379000277424723753385880484448642122111040654712227110903147750797469969083727348305321265789057531788408257502082198988518004545906265791252997370156903477744317770397125029658964639213035803241666095659455534176971940168666721738915683416231790315036886052806254451564314501975342052312511384645226796472540127033204044474175949225346302493987254092087633083068756034931054324093471963866939828054210308677177110379567877206423519434651322988797769600605842365858077181271148699701103447183496810128535022590303792634080791721582879273857378366999882610874348379283980597287529036460716268169795226697876714069250156152725826060546243946685508888423081196368445425856263951205968222062789899863120599777727358608201668869126443680167536756760689002273330331527093482053664411135515941242686228300241143897204848447786871953629803099765560457340537766861186955899800796217892423876988150608613111236322555645516621359129331794141097872625243865068151166795632229822732989433687923050954491906468690039960182617533802219593923338043958271369004613327585535279792074945763736374752226935608540946677192846138292292993594566206604282197431959605761863102361979987423939903239389533339946713063166466206750119645164138012010568946854474453533489765136883906720998365150838174530239743520969650648725617912613141903154879550324940109279718542942901988927559778937344734483023234941314630443947698092765035327410162277224219361646634452458041981432058233052591524315769463815287321854537981765574829229938406266351358972064210414411989337089856944866003144770129076841048888309875448013549728397613009792216437115726896618940586219153480462096335393052446019074472039613654242999333757340864258628474365149753043936934334916384765571811570737904909391950095146377513873309100302598646094112037734315239190961387695900707935403281730996489918997016252870878019319285057931318849176698836569470917427958703352480677743047223741333317508712562525053190447833984484856724898997802331695373912022695689004021011747168708988039934130854027405879659179271565674636522811364261296425791983472973076837867184718760569325437434592770665403681118423252966079779596829501013320524900185591487299281680524427720712231563841207248695300752707822644093733063706436118996325371282045056193117859843435123650823215253581029922574568912422880876984283100968094368399217937106436878239552328314768054481230540511654856657937550579476233508274169954815530853423906361075657977670511775495852752456221487199782436397440315228903567709747655588938416824012823141932700332530619940928170579965587217661292469459372193952516082188713692245682631283778617841000195499378420095346362148208877956714761952746478499919555380574900679436143544715994572270216907860615978560048667325535822310303395448338987897965487673277350551123913806643431784649854933572143112266647185651601117221335609871435706852321477140135104264746965461208129897953365818649812033511772134670370415673482583659182070398123207720989166385467067171349355898878545888440787526997724095165860194502629522323844290606546056702993534084583537125054647884242842260181016841947933527016159327611856805833424830922860356188474559856722207675368708483273825712600124952984372019946005271704548175167908005367770145388986000732471802145804113146853029698435497284812677237093413601336012011855785753956422404611788287900407810277021493727019703895013215597067329771674284045710109077122587422546872092334266635218147890131190960558881479237203066810493476065530117935607858743849605407817996667764325487384200759815350273689491962642279392966040403281040586895774379658957983759579710293689689850187088394401397417356050728612036893415736500254156664056650288106199326248107452719243752188599263130875827176930853057636895519239552501069589324925134097713867597999101345265815648811191622931459991024302602659895683011545694198790656623989717739451478293766199330508369571327510885682534130883351898722720991802009785859725582610004455247782756684907254919136863246156445057080699443992452724827495053433644667566036775671507589885750605954090717344300241431890396821020558382184450802171918833377738834092351991650282970005119143270711906897626314850553786996455868192763500349774606827319019570541144953218458802703310973601780549267136721400430852768351449573548459866102558925586033448507831470928048500194667850233674831105893547109248222220938937247516617544268069144837744959191429364359083976846747818144148168688711679885122568704074299782976544319327046377131528725326760633623181794304207645635056826283335171782744376633411899111177927532051813916405037593439305347691461370221347708698289575817695675365832631417122893271266465358253816694343584637487448705003721329499562279930841836897042000150533918142617403029012243275548330271035033387836005588291574183064065204553862597839345705723158038618608281538002858003734213549153223380393933381703019169283431214410262806147801960111427092779752339524289847799889671142181448883568124908850562933099550448050638313852852944108105222176638799515532517311849828136551269110710416051613283413293336714041054819516472039283303056018612920547575081624165776599822394737440670424244945070909417883676942775643769329468832115867279504041120337429624155473454838812619499998137798288210915274717731957694710050272957583803238863736243982642490233690677068892776987764058858496823380207022224874887887212302759486968832345926098900240948563327655976272537779140091187683409782366863376112938199549240781676628261550028737229961527917402510378329231500027051190676417324012651397955828765099778280268904479971178431048726368039012604347648804759877280643801798951396376762768946749589159512569978349284078733830303234536330221875229505083948992510329179408730328649615150169031225403379535019734358044188282777908835150865169436488520666621566585428868065689265211127478687596467488579374034043780326596418834771671705979853735582173046308950653408872235455995608591015941448735418555296982140376017869095933578916154390999409178450323379358317838329859405872445617732719373265041461792699350062318348022945442684114746290118557322000790811608156583987235631310437826991734518164296674206457381127990888357744733231624829753620766029500579811269280040800849452367664657399553822219423564266834179448642414790348608130735270553849108339314660961604814650821703556849133995447856892738674221222726837080356221465030917290716785962731280605885196632456065581505431078035708355581569659353820463872993186867176057771563446457771353064662230748281551171321369099633133305031501769859038073200232747862652116226654521004610375103157437178249509301879663080692235186247471652140181837357713868636090573531656680383208449824998288215437807654601498072087308679470229278181366554189526749481210548857843245622679215240200097860265843259371242484700457862478819349661809617214603181241329375571966558491321290776128266236088248915778305325629838470966813213323464417463986315049795642946457236753501640674136154945853851765935269400221042153164403181438109746864176922421314049483939190294106812789416581981921705106311316155965035790649588600573227349855766889967417974215188122668899960204636193037945215276992947589995218873345926325809025393313934749609245778665898539495168201605050019404711479892618613062070561808582536311803139036853045156202457402756411559110102312661608595970042765239192920328115049049561923826926468126216866089494507608751903533611065005136321282095984183894744009780299787458711482094718620793563386787128213413238195850179844363082324348686486646002757090685378774705022181063903974251924405324924222015006661581795342058435901235200017383263165879412165738937423868206277477750790696820770210555282827519547730010206763298135578307261001670891235236228398617432058345630591393856897198976028220350913393471554561460975454042946057062814047333382265316156517923243615299997587314236562328923507025055318987526004126317655568600005365414949036404193238424433215184683725011724960765984181812200377017057413546952599035111590594882948398241195955855348912843336525553194076619138539980315439010555275096838816749043678275945210013207613089985629586007346975673711396165021440342666994913410982874107483482924598610151690646742049523310615342956845479792207564072139397771265749050858127722712291386788915477100812100500652311338479682445997504317246859304370131072281933563239185556650623952306588469746906828860027971140284597298163000660585187028774183301110041953842957394066558453922494186998251713183589173317029628305464337039264198590540507491613140249477146164281519711323888996587715036618014865868905449848450742633561155773384585125563959399236437848598849647326847424340239197267205296486210749474421544447651638195633963505408595438749576973272891689842328884254606187798899566113502969157382854519592920459245939516724500417591808816156517748100975921861232104983582040807856891812926857531251693440191818044398225699316218795536730804262044085947428314333231838387020418687944509623052409637292869008447970757578104078824479811189055917650385187068377482733532324505764703441935476938578716992154671786623124234650278183359885867525606468616673428411518048912103587031403709787562466464176693636234444177095752388059983539276329309803510388255111125607870508647452591631005769938553634652620312693092150385219271960403834573533980045158408899189069554716087957589338616449606168671217438519973524031819596277168671845667161695166708509628948023371929948723402095131638025834067088471777525165657291930661207942575251108186457839194517353857224880620692367926535803293267095401814665589665836943203852455768317108770630806589065850240476623319533449092625621058345039730030067725640157339497598020684481373406808914495816652082671781326514230735879320063247349204272897478740923901086313371560507539919805442085533320156329529042630318803605872086445710466465682999413103320212508750239584117391325313546079768638293399550564449101397993536014183239809138769460970708387144728727201390405862576779454015990144212170537945388366096441651276291331085781996640108991585167171044775418536240424502461663897347103146088970442652031392333492575579653407154247993192403129590276836336626099526817333083321558442802542667223293469267230303786731812630791904089164413923854793481181489939262512898832647714658663136447005151822437608249655726712471872512008670636195090123739019525563603887873864811076020863476366727770767680604711240066877571844220421847743478246538943284540606608738912747440923277196595027966199454768701246154856058190689805532198101616143262378336294498213036654762183778903139273912835475583904996030074977829655455086421036153163771239145769579120272688403063786863070593908093054383030785503198916960546867851644803415101317887129107880954201843170920865337426496266797622120491632155440359233006134337370203400686518648895188228882407962735078213346318318533063155006403179861821802552691277133212500259859005139175488870999470698392552315148377548181419456641450378465908463865804256157128939091355110457057403779395197121768474646932108212314515827922956774361684718592205239982728833658148564248437176662808153113702633393553229639809117164435429620586878669831172071168901347452620642797944241679985391156424254561089390967603888071424838146180835147585467841960690107072574589750345257678347854329317511269873004966277129593896496563842863496234342204133823859390490806665008111115552756059443901674153856584827675939857874658515780891558297938576034446836597282750783173808235555296277371036992310365955175125707613296445390743021743457816696204338050714283006064342104470885907427461740536122143575905791531610386572370840541234692721325641647951340999839642805818442413704406178605763449737115490115689175803582286624554137258030535494062670632462123085370968976672838917062121207935208728314641350663693469934338634567664223171703198630893603518273392678899678028576061631268659600087899229166556885934033483071604930390513560454372032863085558091207181777606623865478053462074452449376239009572557075269568600340639422974662780311977525139723549154775618715242982068093750281258030166602299435380691734705290095685516663678573446059449514626415258346878695863542586938488962457876602831265465203745777247509036056648687720434919182737264755275706669586243973983096751180103799988084152644669962402610673365050646202870391918227994757310633698202912203403940618652802942699490450133798058519054919037776300587921473902206700533123089125338341812664092658966664382272792860353883834292147926503294245430340652175239071823844368220456656293501575012209639952731258749130306048805456772767973214964829044010389139520686125263216241635786363789264266267651625990171024861668902518476237492492123897429363577287490995621165812022816675292433296107723327186897077351217095821832462833880063501962849131041179857814732724577187575406870943666706830649089878182667967241562908685711148448922602839821156304835449165842097279224307954109652554830125202028514434056302686028868878772161409537967256920316971008348846443191353094093313271131845841672653959901209753358064813423359930045218135387947984310931485742895315755383060869999132355512194083547135334464130906859608682637981408700248736667952474979954484008125126749046323408080351851125673836411187363205537631246563418947183205537895827656988083508834884926389542707785375883786932090212033719373872654172116732540252045340643434303878468167607539579056248221751382836405733732829739546518576018965331831872704809885101205708126046381350020753405257497049937936498739813967308851695493484411685430040413682820226217282720538539347452871603007512751407480331604600599445637006692147026040674889457658893679786114311180638478392099995116437187793227258858306264557287197564101557277982214585224893532847447845768047788549729948483850987232805530289304894379803698811418170394328503072261552313331993803004146546539792004925243838524483707056989824684273732413330510698232761144722736973008808805619535330792998119447356794952915704339836042759013869078465808749861936578719894435944135373277371748968226139489718080050638285844791799977796656529399142828996339262742847714022011548682239919674966330815838678002054979241268115266691761912785357312106169395054636915190051544263691967173175903792604974737636722454780586963775039741448885742388917991508712008268558056591195583140993336499811317697581899853262295670026447761518531604662094219925689997407458483052365590715840895957821142872158704110725014679382326187240758972723667673722002792145499964978324289345274390403318317012263050004836187848542662199250332174054364573118624495254153026535270247457040879015659514239900176441823756316837843255946510653558805872840041213170183839057331011107437310687985134918797606607130762633740972694648297295455770849455407020559707855316138712815581062346578690848490377148904381885476700445283932963399140320428842572405715060863572133292577737546991306269884291539087613689070289611868200059791081545905375463472211773055279229387324906441218840068476153686843084543587891322184180181458005570512777227053742130399432490346870127422004169959796777868473564428805120505488211838831225061225493155329753106912458659101976403243271981991948286220071829626059225823692590149007898510401742029434255359033060406299816022505477162782547048306894543527095786339902876630397838545732728152016802537302201168275217626547731799464152669432693098691375623760143481279436093139235936325122802945592541553847707222725872954733327241430807412979141408230495810068609803362125075316071648918366265273014491185702995847303450620582843484475615443065338990786457911333848221863076031858704557134043829334709057427855264287886706150520249886334786229251957584859707991587398844903103402493180305329827711814018640395912047558854832356083903789640464276283537716830091892508221313510259219233157908491110562136212920494373549157546730199854493074589654697678819308734012012831501786129891172216484685393090497094601445791737152594785223283518431225547654068770520457320391225029266817142745878843313845053692441610116214130521282477615222501515066933289988158882686716311176995994692977461640543133622887672744985970683429444300936256584410094250382018258298994973028377729077928147527526769386762861432169005114560350436389729573955027687450955580729429034080048116706646709657037263113351564833448420194418424045049885849022186971349891731508175711489129216408370355076093726776290374563534518686899224450522767085089570084414297524497399797193051236912966004376525277563365143994899685398925526556485074167546313103311725465452913359597688233847088619048713080135317083580043668908379161169362601657877013738631516927513199603518047608699525085882659683346626165626998472974024728894616964329367369696477327970404867573934267289151183921329429999751780728866737846008428784142934767869987866967997938209740468798828076735925890261530450325881793881113201956274197420131991620490902332432321313541528479802285185296385767303664178726796454141650587949516155280238296915177119523196496139882661889037268528746098769970865463591295043672320500963421787514689323760862515939767082694194695875647352575401597789307812347691400703498163433566513404950424716014199240591276221469768711413938607461606047235757153786543481502530035981496277057906266868330486433998486168672022369416820168556377837916460879827946556233561577302758619532448001259309936942743261306402870610700476948167501730378149631935120262551485653973285063283463552297960226130658868567779552286036836758548354248936353760409272262607112221498003739685208265304785197053158305961900538947111967949830982170216206600630710086689705331229741383685569889661250851362803170590504384686884795070162336841346975038187152437807575089924023430932264418165497654229197769781866661602156934234071284269553128858483318683801786648563738744131524721854740624700255738594115304871488864250544756133730748587573340840034836316328239066727277000975484669292757161626884453065424146470082335624115763276639089268900250602577656139285110762684290777378436445592027193915420603204796330933450839143105547855877864408979278951630646784542709585461928462890555492055187539529677111332190949324955777712663048471372758562446517491580545333485923445422358296899912495160152721122966460603103036786202680405493975833831152743282698828412057901266176159199980687544445743116490165363932369500177955952506283392243564992691985935875166950351304859776654099331174548172196675534151175365605397093044310660942065607657918440409291886073461395771109035801652382380138843802304496994100458920758420937248750560858534882506916531053316938706988472291825847378641948748089968477186961789208194536063487037341890765088208649659011342438962504408476911299343887059612859187578916581915368362667713129304932477344765764169166410807654276022496790196295337132244915032538489679126514279654737522200404988523623252800742721555662086872255855249245744565509780390521877609859427479792157901072285730080340066833913150250165925171583055948547526767854651481412524574485153321869805943998032353784093832666914288193785193771548177134098289890822607372821713065114194943942027370788118608913896170068640952373637505352869274905245941812274669265606427394200928109735720380606002454391537440352518721385262535114938031816583380582263553696924417276628975377171278947957032880379709759967878342338144648516603210981354043884632231110064634597830474662516404253873509184227025818941666659099904893876275306191826377024521635849174753688113543125184311280413459465099178628758034788903003087925537416016889865060327223774727599590414542407255436135566482165407147993864536995847288514956285994159840152722919451836080461885846504419501320420350842962876025946734622962488047822672959334047409631627277853707677379460087428539560772102236804841974738137597336684749937434115800271424311280352078896187366859955928349769530195712430757790904348883352265653541084292785292567309132533771585403196108857650597196934297545877088637468519904892717876837278353438016662975041740781894707803864155738398187771727175378647787867470120340150391859869705157054020503387195893915132114998498101113823681053360840016561231338806540901884902404241828791610651325938474303594660636382408614618648362111089884979273924391529926450014308888939973188703405801801821932253757354840185613433465463308289440433725995866205082582197457483999579443331292087422804869329204713700786262542362615447890425455953771290450413693715955064337396539067703149065932289597052326434192652271723073921118294992234223807579671017864892605368084300522355204726071773495041459703855306835651145018625809021409049212421062654454421682455302657654959565488755765849169558399549013082236313079316045738919646751025295528537079968710992945311130946177633900424056903616345509707493625241846572965581408860253466663847060359784393119986209760021600038053694805464780338402783379626115722849374617754702396589973529407840884858098363211738369236952861901926189787021318792935864065744071526117211922058009316648337273259795659252145147360156702634862367114458768956345651710398637972436715826078504493272357636021988544617035068934109550687108959430628793942787466450741990636805637039174855961789794098939423350724423615641234782631243523177921570688607724172775113358479999295393369425727422141349899715242323033269848364993355227252698491076425658956520335737507374656835163114747122016777797317126370761529185388146763199944759944403440288677738592938618462328926718540599840698349119557441736448197333618968908638547423265416515150677097257566016398442980769337362376154513317878835587895965211331347767010734770785510135669775986664708266076995031784365206324982287816678136023792027471410707869628997412820597139590729900902279409121733710245260462887466214605823998560535682764945282933674964342611099099589154908276134477480184777174481826318640352932269352625081124596160668253974503465993787996560783736623990748968652957458703290388410091773434346688236268080864081409744786463544196281845815177004238176795219287207352404542432774491229115089488813224736922176745601448171588711539968170853847703905996550940859660269557300719531730774632141240435856861060657900739600703685588756645424580864025501377417707475692495422720756399256154932467038337010768770714480256962540594901924232636054166109235265293132896052417843605001102039828165978078997865174664246047823030630056166256036816436476180048926124246816261020442534522991225223804340776590821480624776521606401989426615504325569660443792966597247218261144424451696115328709994227931092533472715335701299993500647635327370023077086387463997102586833231287054645604389701885576108329719367958764300100890149216999660058603178313856280826569558992698588602590645090874672888124332157715062219101182969610932488248811559228260915589120844217604105656436248816530094342714006514728369871584872526416261703729786531876256408285825873814012751212060932242501575976669275478549310413376766276873360001425889519764501432930342147972492722214692887991213350050588121966014384140245403687684175400124202602746725047064444756509609705166328426288500768739624984435405208913665634616839235572699626756169277333373509608295797958231726019610614075928898912135895046235432268760532742665584284602542733173277108326744913931832049162683727882509453054010691621548675226525103667574812345839125699467863003843294797096426760676985469467514649102929847811911578083689066547058534532990569491113641962287440602602544190199658123262873671477479125804528343719908136116885555419375514549759412467247695277355599993717591267194070859968148392586058394022283923448366369050706459153351235156493951589765625192011200953371997772758670482611917675497447789161504932202719564977262774194980810688598076380827811220023776266646649751975103451252608894305177209030870926177823186476944724771042867867179391827924204179651242437989076092047464744001924208891015291177699331443287695519608423046808697604999944123851382935817835301140566623682568828087102238616468807786269083231566416794055659287737003082718385058003617152379549419258180930070948679157731719077351317422498669306974917603518412372960324136128295597668474334007400572271563032600764326954668178533294183003548969448817420229789463156594333841849464221073961347679758796275974159312697235140844858431684582487911249898888712420642322701381007619864289781044207433766186552154652606860699247964303395304993247905487227762355829839009550113863517988903199312150143858732667407694575133203681370426166549981661067156656100707173333851630402961007431506141579195313861904134196364814056354328182951255296073222120100466726241718144831736779887890300534285745385447789010114842464808283418939570551202819190066693704223152716495254277685489170704609749561257874052444594954347800778827734968558177167950231810350434429286883801492923110407134434968605633253096088205053318498329453826988220902922112345902646983582667738106149257606296891293258080493347652781828022145825922400995709002708937099480363086706131534165580935485539341766245092867549466787074119234536674025888962412704374303655580573128477147435801057793140853967049456909454868471456082855152334731136977971270970646282876165319956410588602326803126797928798707885517909625835773429006800482373058463396182415686625757711445623870982312386594808109804646456982339986370139790287642113960807539567209517020497959496208488105078112112892468508109095605741358253049081490315200339369173401008546677543463493195622728495472342099260680547655193691529608261129617861031140949677991140576782628149068732587802777888666915425757033369833007030619589873319347419859361194788801019874247276746101325389080988207824210468061178664370950402983376505384284643275947930527541644760817321940378651421994254618179187420301257468890626005757179020221285755157261095808780822243177226107837761917934305994963234345089106929618010290671021985375949490185453713946674959219833481312045361666896888508505979606847556682540681996456990538102628598326159892036795507738803244726482189926166852520032819439434509353244268005176747554590087660964289321944159869634060099635249125649097926147729820987754792633100193697171572266196709083891890741744524277145134746961462781490861917797393731258895978135673265632998566179094710471897707542996214817411639838605609713994835750946118823754880927522154978544117730099378614684940443184475057619043536332144532476165192016815055721769635236739637377832332414484744336718390344312557455598550102295893452683051454688102373725513084847168599713398039611577772749595582515122825744367382174713203097989213360482129600301211426714329000249265585957477022226939968429867384578390138852812455151466964743567775170790704198363422211294824902085191678011187309418849262341003041109909283883510353360942029015884489360002967002154713692651090478980003736845656309906103289717150526885445485059830873131765246388332343350964836166854921949907639651908431721443561894502756597879158381825585775382425897153324170973264072197065765249157559583594897675980896569055022302331913669431523155975911103276528779882321997154138064519095160270376430489583724852346513563393032263329638578655338689810855619445197358905401584321613343134241361056739092773811751096982309119754619555599429475923029083267257099188745605530772000042730713156963287138199843437246842302103878189773235442556794252823157997565623573459079804340261076631915354411375306860724554649975538815122063411141916991710528961529356298537685488822019887338057185528124747958616000622065802653193922744669286522644499574664990143473453540810917141568959558301252370567042676608959754211123715046919931017247767441097421249029002128576520928309901679321451435112217214415877342481931500714365375157077886877231836603999497339404932941066973726303612786666025041848942816028669141815509961094281792855787930375908144737341287534286307632470232522789877371036837887391368065320721365943399329830178314129587335443095793421334663056050432351689476376136346939814484202042694318325088759489415663353314178076789778739991263407920298515822878048515855937565366104000393090793914984234597504498693822075126826170552545331174144965145009161836611442330479369140085141421522162079553352538880673113162464323548722361942532804271788913649032811674521158186816815887367653559343448577637224592605500889557869766959756954276608329244632906977655026227395814527335744776059081389836215853186171304624709332658555332383972872383491679273906405552649457582669190274031229449130393042766357772182080223668107727870642713336923551607283608179824665318056212938186686578224857353836972200831397670011076867298691734739759682377779036454664307301640842127754209547333999778313223106626626126899185789389269428721984232070145127118632246357081124674343495969344248443348469499864795774473806414905814976768328545181781692869852965946851146830955912838901096193793308542898826781013082606610649330782655845142728251143021731850108307681023934933910253830576828809921341104918911406003749999755237094641414242624663006403449904352098627344851222790790032498082785850190456865301889663821045288589504028451812035573847626130676278834987063495913908199737589561864829636122914248934450051686544494840459339000422973354300074193843938666358392145212432199497995446607821289932181867363589528141947507805202090624992084265648252607759582366348892191976500997400353295749188071128423687594993221988048531111251254299869193020455446920943586064286231008378855350139249090930943349782781113571883046944722527731230947234021001945350742196407269825016292832520571096872772969153719520435151543770923454741458845951526163470371907678206874151348769534091528620353087534359673287607898769283684082014483807440875428716936971690719308407547738593914445909853741763584998269615206794172951572742541729642563912832937162179129485457304004522314610228748629409865270551179095829245177210350472772494540213440373774097863917516597881107297339182776900393628618846461988771542851095770256081581848270027754589932630116638790438210919897579750711878285699396543398242076768545756897465882440422993130027753070392841131633497075536350105935052741996490832041859089724664388142487742893977780696396384816212325706913107561220198551854315969021942183819017177480382272940348201693542166301090535630452562013028060443394716244940857723573667535906498058107893162752506262106266639645207365301193096196976175402796347659869938432750557898649973102984026154108216455041962326762160191276335487012795358225563530166870110181965272237309143363122650105849768854517120981351158923200834014079530774374046002584336284282726566066967317916953098274463943429388959520951817035585279362935056724252381036364507621751829887683577858690183518884185564663552250397922674809010174430095669367626234359614690509689387493882996417144511245289470588822386157803391739186765354685668160676748873831064574650438568319355583826162030161140169009390947784434687551533396663766980377249046968103617662807119570776939758823421759521759117219808468066379915100653426553767303970632450379633654902668327663939413497834557356381787668245083041114438581119040576966552458013111642289031042237277897986310348247534772761665011873587957131011171615505191197606162889213467196604529844928940177225532993533654073296619129194417740016193661063776389069954514600881665306573429965140382003612559215986607284776853609431668186965723976038432623364567385837290544802961152735834838126282491783588586584161484653771149022284144703043436532434510983468102934197323100777577483420024325881435608266513018204997266248718572434698324149497695640514779332794661309273521905807467448143611360663150017889345612102074213633463697578637227516326934541502922946151011464620634416903392812807158601135879382082055210262493176365414450778232045643411508712466049724860410074489873212742424271613584387743691022875171503497120817120784557170473726739277711042263933770577788894060331460067927214182635848391863088218955032714608356981111568938006967006322088666598968994511829487866873043596275844174322157399501176745487255445592814182079611675771883756208538595945824564193302646261030957906558662934925176230654327717440022852565147394297164080500295670832755436453476818633058928567741679682421712925760373663589612877854922735839345085591242812332131547296615414886723195241763588189532172278304544975056241537355793770292784430709704718576029160226287436179418788297075880635418785456972664816346352342514055245808000712990782252602487863118240033420445697749667425894687109830052002693660803628121775095749184063484023140527109443482252365079859658092114712866300656057014978190439636506446212933465242883296749467944850320388845821176250361601445235802630084961842877501766725056629499837243642159498687778324814921185150371800505802809809766081689798839568869369277301199777737939184020613492642471833608731124450660979814250295669642962182539346913906278695007640192311568415703382288117736785447815295362131576477193171917283094336355878045790349513246911750609664459657179083987834904152416309687036639276513147840264326574767706671113719538461938179112872955965567267971369980545071130649533381894382514253300383558936221124358626796181046613646712055717710557127141061665933705621726745498504694411671593629810518224964737714227810928463565531159544831219383156747354584576114611972607618120890897412675032266361566781846104686443864772794806484390465291703954105812644510496616235231066643793130992849661087012560463240456009609937021208196175339840948821518932140875752446796933384675383380273004309968035740064692709043074399734170828716680860607265946809674028026634415880184583823155125547999158149427900667707427237614160011944392218476960613096581695748304591717187199814168923437632532337860371035799554196310018125916166790801813066730844297480047023886965018919852820572076128901747973127956975914165912307701421740941194780642240194366100543153755914620289524249895021025636665375428423782137016723201907319440894691120780177745271599664304964723546263608740405069832980562469808441140121662029892868603004859679821752197006512621261118193278142000549191652145522417649660894491415949258868182409942263885412560204131272529882209408632061916930164281628067880998169312973611845861468825553791442211161927832442812237657249091191161641478355553759585765823836071549944682535328375040713740204594236086802378459243842295472397406817069378342141806822859480177676122280401577424116636307297291644465200770302363909881945205697779341978795077525841030210697198965047370146262691761772267467311635911261343435245984633266297953373933888254419251200275311155359721531261137956153644126370713565474437838466165759009915674178303500631750412323307498672994160199329908828682329275755531429049207781275508214045459068653850059557438317483310613730179615328265759468993680728581912952645864464854584582174097183011706797783452884830922962618356742329663858146756429208443709301070630957361548540555425904187786248753228344354467803853602066786007902930431169602368768357954957530833519410023116689354080113517523256886018035902701244134439075871749876953904829494224140784074470157877200522132990259451375743286435567101542692437549506336593349335618520021021937217128449536286572272783457567992246551264520617501019639683270589097977598031880067359736790283455215234821564327597105194215687007262248656906448000593430300650777307181053515145491467238404212109949223795329835572737136182932757602649047587681449463605252985352481314719856508599161851924191506131837908623999045403316653323855695532437343904187924150468480002902976519602463345364702056264907080728926575467918348017688756711440085432516964034658106925452800941686942397949672925978464992154190422860119122411376624477166930945304167044126361413375556046158380447150449496457126014768748153944597526214682100818105343201926792511936183452363039146060953767937869084692509487570848821324486758801876274433192721270408985307597323074518961352223637603673173881545834341730141288576600293881120370952742118830654339839217220711338251134302626017923930769961722203485550506298652202850768339299124701202301712181166089790056283946277736180975538132217332555891377155962962750425752642766430695193946528149579769812818849211651613474447166742133230609111170170661307101991398169943258366935905278044922240095171065069518985692992174295157196768846041887642476845494058330943885980841392719564168115460373596890526217493419408575752193790746692659382205728656060036547412516895064273187518956456846316444226704994902775900193946425618184179163361095197445834615447327135543500927155301742207731443730412611506047462507030998955863889281179541029401981174918632405261048511968934240344050949143835702376158146199102675287025970615002723133593421922387395629259598356508781288521632676560939142236279653722185502889819828963008898126351187286951134950952592453926318848962089599218882104414366547066767041484151683772881379562755776227424189729238232147105315547531015169295320053961741050093514084730454852749808765599072244678132267879061599179096478903890847664884838027331565936413429101994394834333266349504993522219620557117697987494450835309081336289498042313472397190324408357360975389483953035595184144767141133799923935253732348565316181810158433727023304173782528222619311997615845208159053644516112918230735415918763473618961027367805962212422284190052922018044022100790511782195465908769334985051738684124135383635418645398763287549199319672955794017568595074899675166320921923750284626987284238245057219812174252672653669211071356479913420763371019797538892437359067617926238906066634878472739070680127255919546729742774155198600553918377239493371641157567638672182114498909713813928750394676584925110756284427982306003212341845169200210009659611032304190168791088219779088944377330534440675270183998477590643677702720658678578554696483437891177627619230541271301467213641185605609057507816842683279087069180739789690057075568416455522412361702447554640382447314404102660554692670354608627663906992739336505475704576069330820927258069185264187707014449925491224081333537442672392074890323771674486015720474932734325019153754109942041611957214361052364647035542345698211565823970691128009817315491249030788230120057061679077706335400313595161058573764914134514109620903182896274923623832551830836909325454308691313075582494076018575161345700816294999859065710948382444638719984527643457180163976442310613300203152044076149190075790639620506816360790180401678170693785326565296152104292525061936843943983825963285045790766411510978584303672978566215171502442432819146234944043643909329026831943810373660396828466510789940743787084334178621051345372964362944434656547267112764120693956175152380584042791622757985403846044462350911520063472219781391938696685817534857305932340128418182782289369735870746902406420593717090251534343390793411408596591964409173353570613063017034200026031208036494163238935907861750057776260119880322871103629088450140522070516878352955119870784245628251682586063836793930905300092481197659309712579610552647351912910043501881806319128408210722038599984609133236519909258640019486017627160628964356408135816689586979940854899617244949809777672739790559671612878620751248268543755927334948343519266884725614762446358424035795151125924431833717762907148556179364349125045625520110442288993456391593438739927499022602224820912751156062240495222223132395224925107900237382857031770730635522186228805577951724085012508535780818418662953052703468003282049782571604574918263384435488129020670453304456222956812340417597687627540486597891449541332301721802948508233287301585272154735346131819156688149591114591813768700476725658066571155626967862270582854200719450087414909320545927365403411578034143364686928900253674499510250683212563953206593815959354082526272370988642264704859556729553667930049294691022378897022280013742720167601683142616623997394523680892552356692048402207575409204029430387447735427214464944426573264830435196070600588628895346563032868372889878853531697754230460388343351041482624514207874421212563400188630280281455334555781608438800635410616146773503071980091494379868571127974304996783978418300108446513325358943715881374651715308768805443181577682279593409074278767548634908633736732980451006536763439442952469965306091077362488833509937470989092284558230577428599756603476441701074701068589475978685183509175548445578097819109201572161879557715764904448847092614522397358899405415090318926951497911171130836619820821091308164266701555506975431407509771650607303467121173956734714384648608072604121243371908635369118098459046522435848509689777897622928585737438058364801516054598788996786133354114507543653545823093221708804004753916542878175124355976540099926381492928415692693417001143604872675714048582844247676825937098404330278662143706213920718532175648276028340540497998206055309396779671331269628473865549717426004514182339313496460820094480711220130849704503275022877901030624210975707207901438439265509194410221632297626643746684449074012658879666666586202384741316077227344433609011239732473351265291617711488413577631507935977429677008887104696067874503161759013883013650423900438648199255080162402161618085542399769608468006870026459240689757784289019819700252273861826820420961657547231484682209073031590804090741250005707120376542720513011594915079553817420221751417391289640046313536340875749631256705814639780778771388315641907349812614417850573930084572144789609081694058087580899172955858640269099933034593288212390410161105071860270540592048551143177676317808724589491932595761790831403439828194791788148170085097764035737771095443973888621968400595850961286448830963119123174216608418277425165288018405831259734035075641419025813295636538078465737050724799257304087765695481664040201380149038590485838152890114942775252177014797052727960191091398705753408382931032445816225073705983708591022941405157984419161267962406906190085623329577235878889716340160983187740550619752969108010464039580300853826981090200597630099571166485778429810569813914542131877782562049499737726185420501980440836936794742800261824154213139288536050523603933014021393129843221658044713347440066855093794303193425256643634096081150660169028515214319222083115127116298984964680227445360432706459430248208003850623106432876584390952154379384506025886609032492114616477225672347695850258770764408906244384761655299252950008143614272824512965154915367049792659503621585315324434883815021246421039115241558102666418351825557755239778429463765530695204329727144879326555586988276217692766739882691857520460490408692060430315162818300529658255286472181071863025613589828348127414270899766813600450754234383689900397495670231473446697329868207959218986921544974107491868125839179755887054161830706603928419182516658913573434873462258065399708487254393662869632467219398982820547511158078206458365999175693628459863089351700484022903560740064635559102716695850776662925106835810235466705990858998926050931717549753962862262883390830281609967071619433563055853293726730569024676911249750815018541215894937291614163042132562726127241387434184054408706248500110533849919655979155007628741246889828782196595173121927887022629988139824403321339682669346622919162137490861904362475848088861004988048593117065022759882016773459724723540635844736526890426662088076497567388883713584167666948716083841592174993893241287606559506929919567643761344707596003111516403194795203108526197217015160494378476606901637122422186987976041023151794488169438707415841834852024145927246069434701802380962268294120477612593124973260468892218483314799849919843170222331435758337936308981967322574961753355758243165854739870063576734604650901891521360256335906344125630034625058944931466747257244447116393524385392847496729576836342804414340660067005527289143431946647719684698997104704843953328633358500064568015892659353858020707095061920261067740585330305567938447166105388294518027576142919295835679905185631440971778169767906726475620121394780929321615819257496415368385476535175622069910733033269122639203691647954301088977856391837485246225301347637521203301460195276979740212524492262693819416121676916767917612599956876724001721750009126604596527992299135198869547271189590458785791005971080611239817904657047473428645284165995908836630048520775882028037115162154345216297637232136771955952101494570234141020307963311921247039458788337272139025387734000426909817507046990566738057549416382080782518909781417789583331780175318293995031458141928801302548090174837691112645330496507943751217412321422228726584233188388936707624760960558138924857238265796464655928776948620262529100744651617135593361907305458464697512710574876547957401980269806020168471683995823481580171173560827972374957076875437828896025555649157846291612668767084209456414052943530341137323370325711162403565747955677960541639665033598971665353066523699818246719719007626544734736034867072321949659053626335903166985730814250769038905593255998742133061403406350698821080840070495565612930363755099609489044514954056695430006711007106940473638061035103400337440952542612280915454336505341646026681552010631423863842956432610071409740470010731457091277312005188477588368776005630114597458926678906769480643539044443849706063881536901064562659028403703056571272306052880108477020427452280883950809355975474523532498010110263312443365937003453313523149131221842712317140699791334167862226865861746182150832719205947318741044223163493055703624994540060226366283684369148583987876006972993277029441619336580903336898499683403154712363252696189402891632329053542637159935100562084122661052376036315056082721446454111059213515266184292972679964895445304213875365354226843200400646886750819258753659239332348548323293087711558826791819137672655237134948676800111638242538197148124485972125682540317726640773496356226282047995673487532315239115263888233153012192033461440419282279102145512438538812574210206081049879809124763646209171715897607252309585694921394475299672705685381864236055601727307727641087434119946334646929920162563317164349761855692069626486313082280169373243002937788462360889794729992867603876293378633244208432027650050703664680427778239644294096427002648929830878182421959264243574652667469943780038656766898877490755585481329931421646846645742170321921963624795901893187664281012848486681538406650490319087169096865440218335185642988166128735840405869178325604122033664157607788245516278373282361307503123473543678558134978173271498185984426751406843487746792425657343727079006085425863109966568183986503310302739899522014031054568542453254229555417004860534726416422241379041688118128906949605341063625134002775188601870267738853104929461110230903691190690059406523660334139541667405559778630556869569827179766240882187050712561777106006585679761583094825592126706636417633636835258935752760362133958791470219410183407216146986311801873393075909607180975467739298187643225305738095883559569099445366001271583929379386531391606088833803781429519725641940217267834072588363799079000981989531440541307922971606723221485404685589321608975378413452733346522573357091619105896724228270352742629836553773728842377646068851184934044093610044050824486471026074974109240062016223733790296522271347600196431884185295220180555339520111916839337479416284749444750470738836718452985829911082257193697936392492423134838535966078206134408436640725100679734635165225361540439301650246300451170174013649828777994948210809707547511540588946881295978747893753062168882681796329641551502642768345927729857875233254584791617290414385653906809084214621363367856867683611380673215997185397648447161971412867155334465575070462528548640533352637322870361455796411657888427703104079313417644375279487098433168327287463818523078832910159118112604291392029571910274448520085272135776487623186085374153276019442555873989503951832549752615784609860285021427123460886300843081655676495190932798851158607025263844193322908963638051136351043494267312598571215374324851134570463844776920362509643775444493228722735001073306296782960819292415460576218450200301818841503686088590489145846509423914666759133522805416210295324442238098132881367656618820606685443506888169495501169289616012414379918811806064230130599418483147483774462473292213049858098246082432011107540868269898567434751980936410255650009863639039188936989889151212458516532717160457667438855471269137244656368791870385199648438378613724136918383044071574032231652480653840944145305414063512278774492232962481151284218828756459718386608777830236895372905212913471710725183859895640323235654299515946517188199399195000826413260103690119469288045626602761448736533846832124441076288212414507015824583749777412402412054917510027551164481966785142442660869268530873222756730855212754091188718529034867286986022837185193313156256896843381475524975567609377452843730887057694119649796752297878924518598933514535229271027931515986273361164008522081454147496187918635754129333061324713807948127150072898400646459666458874110597494988416687945167735973768207686852810237235889432177257721673895115939234019576736362966180425695178996865582026364195943670943773201559383240832367734556352414090023389977575964090621358874359565774313250602101904891194510987033774835176169351091543491254378572072360443807081019731480001772283778684807032427710792118386006672480886203515463757452090117038787112099720318500619787689081654177876407544045233997264350716851266958672778006094357102158841883650337640808630207216755670550341208311235336847847946658239666106524123250237305966095801979975577942848180400420207364984476503753820287967315142984375131900679751378070826233873352109230427933378575671841254227237470371961263264166367888947160795561025175320738778032917367811337391475062622948387074181096643023595596422600296617705761919119835348577500902104414888502161447343433535933887907415907409705303285537107618382647584505232940364129651150877450622529612543824643546828642978893560159604751262625622333866122830736717928761679766475106518265688881316789518139143105771242365721093509830236359456408292173919254094488773251999836388711646266447004986039149461502823519014339316352588753140003716719125812669530972151722790107960706881307639303240528052728067369209856147467457145193877152059237948646806134929651406431550510710696881337095200388090964756385664262940687551349850877038501757502539375128175656491335216644641604627054070136519568101109551801478121201017000650997168333301433109069636892782142969297691981657843346565446848300916433180918743783554311262676194985573228542398871069141672504186609777435633927987727419125479912074202547296141702609928127020816149880455335979639140384961938156559776305105438505304995406164591388911340664214684904298285646943433861665045040116820557906498219804652826996382288903093761428506357117136507059510679053579711472845948050024095771494315854319444456663731511731974301355961710192169396880037763246192365577660409351416440768877947922245263269444053128039520812335543949029620259753330314180154823667350843806245902622327785289106475865502806151025034730295209928545998990878398531223705326731202511651774882279546280048954755834905542154650780329914426931413176153279433139887192941549183909077935233856478658074097254987256777839949939558474564490088888605632723191100301075345280491590758946063769810219657582239948341518730676314630551547770455268011339346138123306561608205626866597362719779734902525736706738868296045278045372759769676577374617058684063456771682482663598665139977679674488657075997077312030435476903530120943181188107693162743065564234222274388541118465101490197751840378452181104664063999710576543181983887546034612450285260121331289513488011448181616775134480665790405927547273232185521713012832904460521701520406211012442729583313046769106610716328333755088962168467135338939713771556408873761761279457180958185914705990445911537109238068666174748126783552002743156375947215373633393182657640380475478375117927771427887650697064805528564699813402439170084347811003147552428155557437690168111277812403229922677981788692639493435959026455769506377440201967708998520463505120836819409768783199303881862679462495262775433127529702544097347752775719478468850083096234027618149694232589227237649882050252475313126023689970687729029472133781765570635125179815492352804854524690353009462898130478459148581638341845831001103847708760513509864577128615589025959666752689035608601598160144016218691099229543479715746536234516104322786844398699300384544095508329836918523853514429752726680049511348209085553275936831839288576105675274664517240310423119465725325437804634096349539529446538469220634892508227609937550873688907915714921887648715039714013073148329694060354864324796192943432958222240385422490126571587373055898425254620662446288677031586966120457186546195163349949370547997250150001042950623946009941507740872596396229059507284473033799571197816871450874392767100598767456024007068496501566684516079300265623186797294543877756442124661052452901574080675841767537370945452333185187821869862904187859453189102553303019384820474051280363073361795444505206585385697964368549730170035652361476245762947039173308182950059741177447609856122644369341588981689082345457012662227275548769592034712096819812084410739157187290120186628148231013694055404951414464757605600399279028215087001648206161118673992709510124626262984518964664954145596488777779931637526224939909380413688406294990173235368972636165131221211645610849476408696545708119384847878936846926040325104958985921125724282895715973687140687527107615910554185132189867950591602179888611671012995747814422524957215578650865774647223698135032955885555874285267909578934544656210625616624872021727345182663095109270420948918861347100549236882231914827760947730883876531649964194659614720492785938686063567974180395539642910860616907240209784804089137390547511018805680394136473280115115433771929410517438258175759288618078247713952980548471560970344193896821521767666549796327340544279308208732053481836011718723023631288313795376808846042166639748428312850178533578577383359800601532990885923274533985590681560750235740592939759031650530287257887879620573711571164905952068909939528890018969389965947930687332453629870543064371200339138897409314887234125951023680581979526715358280341508443798728750195935675075209301987643379775994823847712263044005105929905400531051808174358405432866109786208033554014315545831228083017652431504716398261823925446975574532044949822883288742235063304493189619681576696216316941230022435756415703912778766986089949429591491289050600389292870821005695808826082955362412123407878691064597466163712954718425788592429338755915916142396324198900317295455443582841715950877304477846942327425242720847977164043509916942057914421002319074488324876672373967882991785173060341769229228084683062608656121796157551535521249137257592946397796617925722177483797373049206191253804495383332404903350019361071651320219060378276936377780494714700820698236331769064813949036105484713791012563737981630279813683059506363399073504521597335595824107907806576421003546685469890462090566618457437404414525761426092383658226549837322920794993869108554848921963184505472345398498438141618703401440028087737138424472939714618076208999857577579447533227378663760181721475907844366504119504801897321294478797186120203194357025897423634126127688062488892519923428030360527242385759056128912082650167373346864973852940660968067803378987120705598293996667139331243895306911552807892638040201495097097876548014290640492694753011105064716184474931535437745350146679481573897587471629601732050001302530355780015077614107461585153703435308237598932791074815074634026811494729470381871950412368707543563771744756491910373532278280320075537978979404748494942679605928835806842610500114398686259306184770601585932667345188367504545003546268840276756120607627822089853078597772326898220040744142906454221564933361423441699651047186149852122509685455003404376463109146134469058193815509740424290517151073090461023203815974623441528381447968677226698856923091066485390231531917988564389000849760974189443167771949224469657333058922687461250364068387166803190340584966172919482063164657103317417881730850007768666388463885500644264465830184923506885427631240203013243716703806283836859918128069734722227738695068392550231595436318101629471522850041607324266413271079432999807537408441532079397332910773964242854815557987916739494448377699225105813048477624619912087794735821578277635417799261847715948586377256652780858506569350124093211158908437939118017820865388585694767460847809276759664719892205136481875508067376377704548080575692244218329498368828614725755648517499845706000088679976912245659672235254396040655087651718472758286073192878272184594503363292972364612339975506253147443202582112926000394717668903465601320502952820659673073593820179006567399109113371852968938820627943467127638680573503268953867429126484289806977828799886975900943217219984477188701960217886435702546749436177994452208273696250077434339733994931895286119462575359770735818057114935119930366651452227207997945836356148713906055549049380134730945932448528374660910002361254345373362376141446792525979097770856842555100155896711130331947730773545121455417196057343506002495989141750014931222639701136353027211700872954809761482230512946694322653875094958867048426598666724361090080609271010771140723688883389833557815794368338155384403499585993489660417899053790459421998134546246819168680975927570641530219966915381995275912041167939625565212958345691807450067278147962785250150063610976397305330437111626471664785362353709777970466919212454140150361433071552007316503887631148142313870300830975292373202009295271634310183627971365300712209162396162553996639075001925635975609872389129837335994267525737717729541471073700029104571102994341545786894743936933069751985256691617007806334274473827103161842234236136350255629655700374463869345108284570566385575951127530708991391646833247066651126820375226482147085410270388489447299293531996671902761589452008615419697203755391435072921986489777636615873526278159516086453337142712405102534765483087336964449635737825724416928256656537938425597685967093394676726053272716002498612100482691565827961213156301645961658516553952273603667436323302544625337457625569140697476909661811149317400844183007595358795516674274724940091816818352371500705031823988607181736228860217264765663870466348405641407218618652464434901325532897189632946764386220242094733870227713245353253082642772975859889572551872820011419654245594253692547234362199915574711398711734249305805808386808326499991703538252648751669756504150170444376056813372195733269313562656467202803697051778092630272805233739137314531574105739807009702481556969894879721783906162322838771152856633981523191665677045666900458190891521332425960012658667056461881223402769628917568408280379808604973170997955959944335730340449138815045280273245973369998154666662509619612939407062994335855805728142885801251273707121524802243566577077389722766049600818707224336920273279341170356793574380437867347759308226160404456527911376517359245860965766265875682094468618255809730295193791158046622434744595698166637666517332223011380742262301336230538018041499630901889691939639661180845660449951901986748799403683942913023770537198831488570651896955731644863937106113957652114738894509529958624272752225133232909658103563114193717342211025790278603675172164576084346655914664673318399750886700580973548241729962342306122963520587623144613534448973431813546202662818822568395676580307356161083444167677347562766770970141572424713375035849155830234212079161294423924700831483601684673950687485833558058200469632316040804673702798024065067007406414748965191453599693402423853652395107692569573205538069112952876729777544003380224694754025670476113324403176223029211279091957122108816396986739633224080685567357950100376440241934793580720649551244396128620665301281842123830177907608492744590199458183386859130859484129909980893652520411358010381580907489936537544294446538644805659976521257543734004720862693591486609054227937262666554507151297709222872828647244929328359414455889292669671025375023173123959380059623957858374818528335628403431786373048659709123099102839174723385801032307735410244248241703082124094434432700181610571458677445472154464827092050912169056245404421283778883642674321408925843465999034505541852280184459037903143296270911748027646236049795802607353428536586407486886432812319322697126497185631789804915359877655997105838327121124794868380184706867887194732922643984604620689561383934762581853590690805222990031867571671133647545382459650170373950811109275773726776529247385856429488611280574719099117990628525899447774339804687772076411637047711242118359127370850784164992343259834606975494411642392535527903152807501512220008252579344241620714435530952515456390205447180586854485879289804902927894214015158395425571177465202639863650788452533447209924089422901328788266040108925232667841122630849065890839716860997692146075019822255846503397613140158423288380074911536429782047510053234284352342159246172751647418373099675754209757285869211437546586431630181375627471811077132911202748765162303634649165190054271996723554395985999334950049576384473705423547201135709850050471606482615562157641278064547805620492882203323579911957624082707655318654622709764591918682801097121272941119438576493724515535483312280762250135413114462790484521664011405236889942926830750888934513503510053517893301607000575145849511638143354497567546622405056001242882334462476421076813190486147375967338730773209405494279953356437073189598127166584314488632884509303820943786482696410557246650560759087192358243291664756719368441979619462748702890411572992125818825332395993437362041242438291303457707609837834376549021576874566976531908969760323599504776862793209275597693538369193327792139760319925876254825006804320076734131775481497064087220917918974428989030392366727580054422644221359370348930861804173271411483079675479229836392639438964421889711425362499852994189113161523610086625239671227731701766375497518896401396773254465727135607011356872449356158067569410404777787297586823358088107749897472025441149062256036671998060118533020469540168572835028296735355855205436927407046164084102027024237244396066044715343471220203856725198648501802992644416584569925944172150720176994277484012703213978172712611367123700188805477150408949880716842032446083157850347263727001081118605705931456660483587805180184335983586530665243691247742198626568432249286530001384344797946497652770791877758829626641362965081958521886728883336418773785206723873429346983361466034973125745197688662843207759038709341631991931280892214692547670650044321575000919213563861897773334919927592596433136659401860597760827422225683711663076730127168844691026869684845207560338927601544362485958814438957324705671300814147370072104242366800101777903314301053712208823110432127229749612774677383655935554963083635301171892721431174972538272222438948208611225985941979289431062502781038994415227908319012307469484042598816282774585801392539820293240702604454141663068920234982769208523095412508149707870610718777967940833974421192652051293507775205231416602299427751749431197512650263797137387701466824722257612175870536891242372246889865693383110972922500191859227905677031119785949568190348848365796550194566602484320348372711458213794739974330737157702557410884564710567655050107434296194529553483057970379490252884342883536787006858152668268394061800424088909498013340673257236716171881469762651745225870816207848134053903444423955966783423665527035993922610646228029773054368556785739671699557701175037138237419033789075889868819586818395464570854060816756626856970752707742779715202011747721704134911216127923167215010134117727497368862895151322593939424245221022593064286266243162711401607425228447421265462870439428508811780618470201158371457693957552818085095883484102244727059790714077975163306884976401856295979388067130872062708274356254323561708269512782442567475913714838303037158181115696750525039126619886524782642929211596472050328577529368750910751479665756263682342463201643122923224751651325510022784641643361047705486949664763682375024067264284470462521439848663926750169439060554738002644489497134041415585571496698784864134106974076289401849853954037022866441598115633508966265330393443023266176767459975230283253357707008282398719509330752787883833777888060562602410655553952490740231713338841461608522791006486224680564273167707066448976040070930914646004759429389043753290233187994194387921708241864920905712878878565077595755106643595854253975496151025804764079193257178140910815332389034694364005280414932462630939541715976401818710492566695086825579803062978284291644864287814832451597454929808362928704574796888915597784971052105166842295700498816565348685467674616578440448091590197104334805229974596118754784735884569313387177584120344355403813842778304425854925688505845442497197988994846495374223167347966105910735553416316809225083793551652634636426982435502887557520708582946292847080881719506015001108362084325077188836759574115703402689970275816254877439479900468008811459181196876320374589868176789215074966869639150462042288639420373541250988637303525808627256459663867584116871027071066951918993865501305656537900814006379384604556551178907696778293124206280716241955117988944791834789613074745161844828651277248183958414629081052543254531932060789498364647594463392124416566135708005774554191834695019234797030534703238567542658688175906904419397307575622729698858315920047687820857229327449738304727882388779231604514312476951603823414039066071643830366684441495729278523493449678870475502603732822545233684516679224068279187207853490154662150922103653561563504691227191371534163042592894556385547335247909270805256619410552506074484798450245606645075966970680106440121682388712264218601830440241271916876271943532386032148564231883755908486078600082110541358408068158455457636984888618692958329646249130227198542704331623482080304949357620101908152784571282030749718139183305945890335355624295825901555405039696295465381112779970017362415886673847387276572943018853068498937628550568301177794545488850344611103692538473553844510595641132017476248545134460545146747613005199420491196508163727044570533922059838317184651513143586993692000150494524888659943779238935241716492549282192376265581019981651095082341796370727463565469933532326539710501042653033826608090609247239937704449497668283816942889688293687282262239609421156333181146081947940083564136830282515883276684813268079359168363235462270930534238715431403688902573618720010120482894050465452151703744362466679825771604593147463232145096555873061994446524398621880165539699661316527831847911465891484239860321391652530157997734990942207683587475150081865408072318606356497734370826745112078286426453723328513055514245644289448776245275939070043795157780794160104441575157402336555205742775430077809380189933804087643413149246289600446026770499813533228621621423039018283210109119133079621205574502123733652436643447435194598396698302509727617544006996756430038340414239208262463021594071834842028948496002916487216753445421462883428085456106401950225148781160823084953363048600036015303418076739399637589290552679576101352631455604427826588365418672523138516996437226149254252335201732576194661526797666508700829223730607848300360065732587737237060461589198751287205901280479385433618930017881502220436345471226550766737561276969887766753940625763809150310201152763193250932900338019197063302275890830695741042378377128356676109266967681275992985195640148704609029461326664355577162204317173800177358140200511813269267429873195371840118962001358864438775118705694186313569966927740486971289106210118228686553959961238982246436942686524010030303051438605056475064213734520464332900920084655661764604975055070639233026468906712116558294506578903966012402359347906748493568667640598428827078190818700840029419655475936466468290913884092854232213870293966453623378848678434658020246550391759713192579870123928359566140847243363045433349494493210803043349202710888226573325887779638429223935138701820478454525929647413631797259559662809333534187008306546260437895384981287015670981371957769935461473977126063447716290107614133564055723574210704152242665949964618598790279982886714228182565886833052545550204764371776614023245303842439259836668558657593358199652649586818990177156914140566803342272321039357094600311586451946907803431221873776458639178958407974600707575911420064690952203811312613228885953842089744369456840890319165453666026245628973950220320514063452066583992366178005679918269118129297540318846402386944981182463215351352829397551523353227835331299452212144659617332828576131888399187834566852067071274473186280340372786863375856279138387413729690063358349584808642169402525187014910094688602198822986912039866561962468563345184604563417640530553681641183445838676679895926533012061766948152424612008701037660144232367308631932099337328659549716194643431325251123967308552860288727437313172372870996254040695007336163255266945428930609111142934357403439173950870714058444952098843027677081977427130888263397979034949006797865639078115941633044881429484843641300944363348764595336127438089916344051708481224542640901180366110704671701878536918534601876946526533430117694093701285114850025889566977719614005484472596322969924343930419838893697783563127502516788697567725751783180909526704976071814861436935939508357119684459923967860456061355956658959024894386185680999376170519399095702820255841951934874859223806520331065500389140504321070653835983885205438046776031614342413989920800703956530532819681573446873425190302403801648899819660641779230357291152905251717878528307283683185703323621120870041862639582719430130819734289067166410337634208084220946606043210365473622951274908608967899898417750479777373718612130092060563902059342985036185172434974339794005765802104535632820695671517028442050758687635481443627602688777938524268157514196444443871427524658291517422418654879380930307366259220794360193783346804608913040782133951199010898213578873562491436260365302441772024569902753424182535625473595966416128682329185875704618363009644574543561881420921043360552739487828531297307453291109315837442615752830656284758690293082055763549397925438834742330555715137149772849441745124728937033574581273529277481076576090002840255941491164126904688940308555336936559301995511786805925484534455363733833122963375293749768492484182785155855791017137887468908298348226644646761049467437331807091761639321135316229238172343666782139483277854052014351022208726984295243146694575848532267190224340233125917394038919715232611376878152772772744206560357943869850557450927609164186531851267784537112707923216191307822861539491526384779081870878140202669094559214470105648754321378031561119086774391270489729536598468475784785814606409636570084301560925994700267138309661859392998163023786151232177716371706700861092729218856523598542675201033524082275816059716211495656906122959065985887729679173634690302174753845877462354909767438940340612279841995853890093683321731851742524478541329322726281086178512275052695633291005954588072983897403569709109762996954602968899907476907642420629618188457602255386628652018610677066255612097799704580114414819963742683744888858904455056674557160807906009870285965282571836652803706762160598777987974500625132900597854836343211556026586237306487657225770965140179986125255487646916853800562943075001917016324266597173888134611988993416468168403708729566277759092760767034556814049273487469500330174103632252520766215827898760106928582396112315376268869542773321297699782219490976850227941849169290379652657547370930276241210936086246418728800582422373733807682035007356001397385357513691910396979048177641549242963453573675111600974571699384038346042297088236834432351586610371246142895686512958958097079927377012246587485418349166125403861870545775563737001165224692011098858684308502589616091411141660232245623219521591989034658427979730452820769152713573527607046051234746802947383208898614100491155234430699456923616937748002079394711798083474039270234948589425616068700273999963575269735907313215067355798080674669092350296928600961391329723995618273190151969192434286260457202840879452495624887568917276907686121538608294404554283805963660376585898172675754397035763530697209210902376737860161428989065274045010012214612689111530797248263329586685184373746952937206260797095890913274684534535336920822593709543124412615468511123045324567962315595474767206299149000496460791462930527850329450190504625446326810356710373542022691688683887976110582520274665582044785561229410226756328460627965064530758894061231755738227723068327738098097052044822471238329209482764481963586558024113076184220588813878111361010675648906605969082197485551125896548718595263727864034943201554539035649270532452909892845288070498776081169018571350287056931759646286593751619190080646365111850896835199637872190228604496256848917979911316759749733518246618946267673764395549395194661631970543400020210400044019322228406677133411913810327262556177456686286438552892964305767561348437102833941398766505027244178299829952134559324385862837600557475575151581575851601536905420701092593777227490953672303312025376561419535964893618783660009193758677077942989748836452226628927741276854759524331118580578447894871348965971434148943705525185149819569010791387413655360295735265686996561809021953984521104143924976979520692903759322264579983121504555864200300337061214282594199566872389193689567069576615073618591043829414208886133270611123155168583971511227919272229116550447242150940896241081157663064612340520984270858954013182550336649646536360639680650885308303541776294146860348402414101936555594964229606036599944243472365590887742978159973547546178725398010842693002441826743446605154048106146368912027876357576800175985906852078608886846080088792240145822781872208156271525954531603737727816501790611396590500269002962795182982220190502105342297658216581072186028209336960100230928482879959921067153335327323258234227281745748274168359485401775711877732543311604153477403377795584250809013049066759544792252784016859244125750278303137573724891512587457385925096142711867306399475519160866778539552773324459111766759358704741092578784714844219213349790610132087052583083413483019919177410323098671998937223099741805127800793670953316607163146625202606117900472075943548268629699525598606747273853573797284198349358239948281885852443979851112154310369883313956613182765785180296508635968369773222709936135382260904448446740402720952968178988982418070213393683430331819930772467379629808170910592145806421529930977593500668389763948089709652440317038466982341538371174730432908580327800915610901573130110951871834453452871620514928708543619624093801484177905317789976222136339619417058447317781972649479611975630986818938221355500367970060577635975523433926057750219422911968260225514287315709904776701532570852571841260052139923342208716048611506296283844499983861552570310034677220473063979236652049199089773322737184316467974407396565909835376718938092134395609982645135540414866017212906535682214447610576921213270252976278008858315896315999339674259009788068024975391005243092509395258234941959356969546808437588860401581775295046106081324672247800395041421985142557997356338639162882925503085208144841406292641181417914370790549082705342307128794215339037013601590794917166158443220062802354771393588580499988234609214602410341153694921228201704357902489161314267053632600608471872873642267124995251090809992046344423099232086205097691940322978754552118509674851574547511715449316717704699395934860514952606870654870606105489530438382009471348014679162106084557161848940174453181444445781145682168387060240655459625517713463664196810659670194011544977559462640925570466410074137943666956896138869697246897575268357372625316054458572457880372280869622710846289667718864013729177689847970415339346972887265019851749369908741893396812506812865087146953554706115914943590170198939043505704687462785029626777184659626872430465975039692184695163171648368340810809440511503626605843185707250050415878902567134170693678111054363549598907621227958459025387023845174672476247125761578883318506928456775022637579841282052631855982769973037309705691388959177297658304678912448090883862351287653414215324679792401630346078814849955855889432278145269497423230409449581581478895363296781005174637357219217381648020810721513889609230276997677809178653388265159908529470383287846064036108550401018261656538396794555815020971309241826351346995968257572463268787790120235979482660181118458778745849832748234838476238346100641158913982615369302792299436054120206309792274015200334698403726494134968003780428146525474959111847062824810958286938438803738537201965050472009481315235344915502978634342638781498050919302889054604772858029929579984607676988060484578021059805560330656050274786100034314690670547531791909157718202807642584197077961590796227226349680281864151286283581597370618941148279125722795365641499850861052988230772997720589605439504408326228145231999735652606488725040072932638773118871338704828407261844682245853599864130751686701433767743788288639124500421042234560980519402214153787460630693324497475493231929980778200294504469237509388471029472632777853910483225907112494473966003384098982161341443976565663439865222428559643984813908112255748272439074329512847513014004372008125888916976187794001738645562667866099144949525499265133012105663531697148990829099363902380826138100302495539383327581893754266979438371382479116267206999953758659495044532336676270115659279126740647069598060789702083248826309058517951203098600790629910380512687506884989639295159974602781918772579164650382060428554342885136729085214313459537988420148670145217175713876428831639026407161790752827824059526212916380001791712717169266846505818379566344725634343931694868561800513621308919952772272204552995117112873698162957320298737626679954581966353411095058852289760172060180482095201508923059969206564741540254668924789093610258423715438257000873802116087526555229237370909919413675233133170827191122997688838850095576658424589536315929901109412214137868832956139302524691551506997177257293734235994090519566614443495083514668866754381083940373149428752865913518344400294554528241507418944026996176601806281845027323817969270407245372001472523026336831797980606795918474575070117194060448873647426870045954880163659479600492782863036339324059502969568778335019747457384869371045239386682327578840213601171097709014995976939717592670059104480189348112703488749433361749149600270824124270276960574933807848412157406399544680999644797663219731289108095543408944785304524246119443872964627771250011640860616374700470605092821783464492319246201092166997679403214172871110130236444183082765777257249786033286468421929336271509882549811149838168354086922053570937853222049882119515910315516195866676716352451388146369506982607556227746075131842506972935518083480766310168279980662617805321959132190243272297945244107274291122792960778896016276827085871700164855412654191365110364750117906452870766319949723246430738068787130550554186429777310696997326332444779896356538183883139297620244721837830413743472967161825838510559800413663439931901782160134218067430784530813871462826313400667704634363785349699837465572921898955177447908212911596098331641748419990845495809183453626994496127104500634585108341783204485894460211223644891225041547840786341276755800716131347033689364757762224771114075443544525822222968677608583292845075364354875791346826741958445569867486354219629586160546970051765606819476108299334460526055262062107502944442214177918643431313565554422880568585556790261781448530669926672736349673638152095330822257397156183843348044558254373717775607756215374567571988674562698851811850392301718337449360708293437738704896288231055714316944143842286670939950434600315188969178474289086990866675226775079593133052457106118674931802905854445906516732997104577341756125320742691020555591853575937176959385918813796703475080036679123490424546304871278578819596355316672113084796398764477025140221669040777438594287825571506789750339216017135154542223031293476761904951030802294233087973963570848760933910488952472151196864672383582246750692333626530005516689215550946695627456549121264060904618825846202024032091083641878363478358971971380599520260619633390908383671276849405352431879409924029628395627312422377121342875616455900683036818386352072139505119412841071480393689975304184888642798281553197966264187663939918642149270998319841192505333095096773235453889958917251736772987343735336629992516410001988506263953762545581030126222307187632025660781041151990954367348518403137541261333552537991597833129828143994607438841537507266580748789246491377876906663452336892680989595506431286074153469516360898413484315642657196953248130114390323910488246411470910408347851604977413831584371950341888371488169960362317575729909393875364337483277432751503834338408286412982595832670758092850271016544176950082264840221440471590936752948531765266713205818657613248090557017661114244081138167033852340583426354389301497828196673209380086076841348343765454768667020387524463638407828944875090257965974856019240194765108037976286671167719087330959055021379993153845131079530190263133792015779704949218353201330275679989595228715828512675961486013403440458809741052786327897711386176744226263983479351827801127878040173882382017366434643180516162605243728300160380422764100417727515755717994003039257745406958642465888253490693678165850744397761690235423791801841936631387443245666711345229277230044342770510092544360034122849407674066321773577313942277956237136799787519261572526823335389379302495863347480762658108729822287469764644606709900615021858811432853242818245232124398824935326572947520100303506529834045429417081562228777182155684104263625516972668912889220300339451110250350664758697087112706373937637521751126102040186716986484621901117126343447826204384914825418078790806468356480216211315249087651957158065180576698765088694156282922691672554806270616181546519563927062156093350095313663404376470381412836868872455555745626011133877569923301585313482431780505638076045305090307085315494791086529590399535478599284547497779173490414509139649727070339900965716560476561489853075823851093736585890561505998476930897877963154091617253346842366402192150943672041584931724928492766945927564505732840974433981088891933741295825281305024368573287181698017027443312702467426949352363106113871630712535747889548469380417062515900454798954785482718826316865625311004285857347522853292419112120480569822202123657146443999943771548648119794844740310001833819120331432689227183621025190872306502128788709346000816337266024601313694652462837787181065897898170334996846892148265418098872151677317407588770150176962745613612843399667792299647254433512806470658674412278585592804195056553650794075483367816437392613608001341264793248298693512716079294922469471100003499294686344920244300524104613213449970157971176510148386193899913624406997863815131655164494908784392674941478925225291056133035327184953737969724158070302247807254296986810421595373505265889318356626384723873146901138249858838319678249129383660296981242102861067337947626012522529792391831395238945270630209469221830597985227888246042961152379847713684899029118586528685679663613888683584020690573307867072782071036901972081109272057606267711653722721626404671752129581489193531347883204876335013716595586177941731889935639340481066258989017987702517787049760108499693169144265985672406594467852884776418022583151931351788309627583623111027309382097015601779711710774941019842556890317470454115436242925159698523474802209792739312744190306349321117964570454492667454726097061008028048137876873588827898375031494105815551536140029553673558687620991618394485067872453616109649564887575678616206844532974516489515682164917806455067400941389323021204727314926858521581199223258836516417262902563451322079658375013909123847873192673077372581041322273869192501984831775020462160427856892801392811171020224873726693332294053028435140201070296594577538197029506007678115362628389517745841478637441242834763613640424444922272234225603851705898935434200234657968443167391898109206623027458673244247751845555040755005830959946195311512087242158076217257758260947327739586972582245028027230248458290818354914023483446940502488121916442873511367409349797476543551642135575548607190889311963093091274563504252137466660791280909281769600154111374928002006266710373587729227857041676447440863520823976285736611306112865026725668926527083405757963459768632800232565916563365696108948599009434667921782926933309149013080462918815015079583355285503086546518999302705496090301555074614235061753149230479834796562656696883537711096482932466659088042104075258876684323014392540589609944082172742395044739559016406077550541243228920510416414730843920266156571289018085154393991049729652877406066186829062145530972714363445116206603908662550820769033169916304635292768567538814572055122285695770447139597752948988706339360135298293887485298527732434096295179273502459991175971167238191592843061703431765743699762332392485091785100680916389104304463637000124384696711909516184591752587782999887260104851202360755482438619392746034400990983882765397246464222299004545476538749409723849556811373455865581323603132637299720590398972142927298257537713575931668859901647065472965611747621327910242888825595245539184043861104086085644293712186127071714077210231809691045449262902641506737897458765500098723941795833684652203565373515719544169202313414724839440656498774820809135852241477514247999057909147421266581462726104045813529889869232591161878352438507863314232914299761708662328861531805645057889639886487297290983232094922767279959944610299650487740490439920720528884056181914193377687970861214628389753705850493867918534490961196750151171430900687411200257805028644482001853339456955632855472534566792903487518650837867123485921396774471209591806485152047632806078051663183578171865352053019043620915825737340373266643324811214673540105371377011209157470701997423375384425365492429538767807021588060495864599594242598182841753517945636076282954749922214835609943132585492578785042705986077471703498442395903594189342583487959036160569360196640880744950094333502264089774047099788812680305348467166149699736216816182514558454680480022405685672390333319777977769348787666842558435665902285827168566064689915303741042901543889018212340108514934787059579824039029614879885029764177259189779755618818778132155078779270152850450762733188242862093865392678265800966341792226037730835514126786320958402371024130715085268149147787969068105918778368206477148995262570598156646417691592571535256216418964872028421334304577213103370631615521189890136665366701114976639914696195301428874140888994797931314645684084749779472621237535436536985735379696042059563033277936619207508426549788558701120032772596628036156147944270025701409229974292104246520436339650635714328456765117980050907530372087593051031482313484959947996496523491748972105778371958754780887121408371669348056570347564669865680539220150277348459008402547845972289857536948427118643295005899457236752571990998589919607440455103322684443246548510136328502956109198073348375525734863637779263527725472473533474324926888244384287322739243089719373197697419835395167872190243765612969688508917842766106314455904473852148532820706499720685155933141185967179584340695896867249818957696295944669441220404911853191540814766497304684132007319033657210217498893622262879541223501129260684798556561588121176515490522084370309686850951165829963668796232552349509617543039767711393256784208281716010015348389872110846682826023702556757184798725084479613497195325346400378373647588244047132577326602740503959826046684403756008560301640611731187044680940715364392727858145734631746008141755995539540944683009092615789965576942857038390859824852948445083951351782958688457005217584851419165724750128714884778893062385669376991388527123825359531534462835129360168892721672555804688315859369866298187869728876605753639886194178928032813908140580743676050296198073633154781248474063561135257664767307888309455060428064306266466796108734358912168170657815421300261732412023680360577391611280654747355053212511781518111634529470555420458603295980207144799640471328122012814477247550766667860661525438654090333021780480432226920459861945767953944157110539980001872217285645239951374605502014343585026865472109845971713365772964692884755972518935560521407749951217937611958196631319630429921566234701427255650300969029819736168810215949968539175957778662287249333766243855944162708049561998014813992219259074712698708180707212700905649248035201977138049357926956947558167420987246966849300076755929015476393548921304289110028738415132447338506850221807424588835525086077121830254566413742052479135440180327353800614550276442557159504290161985714912258589112914938238446674603435233845162293775578060026079360233715723048338288333722055466342497768004167339903796801898342947753427340890695978130136592554692256383236256729137470333071226416179381978652057084643152785855850161737990755463036417664673295998137941791958842700047732988043214265564494951563093698759147903831497443758912475688239863680408386279725813320240556674291573487435136308064042432275602850006533788997204853217931596325485431185754491318990343566881541355140456299511899817978195169485099961154024630375775472930706132330980191860682868858642086847968451648538985524373800589316544147451403988853458922962342606224685156866807171843293469854957269035975212774202330115093467574354103748943022103473575017577163429918482496489727394874248446547358274424432870096354667330944937673507286848650055060361114816542671029676400131762950541606440522440065021873109110286429761331592941452470651245741788004556133737891752288279303377430412682172805091585294290668566903131351943349979067580618140128429326146054441052086492189682322397765520452843643720006543479869348718722577048879786051779035312012560971778804289580829236109256208913548767259077041991770748784012058987220940488910381929987818789338250174139388865243630843457903159941907129528974074023740590084866192988777770508738382323431221668656285749242147195999711218176302166253703875167831378646906455948958593187864240154602671472926766469652385878678154656159486485237302661907219228238877124254004805760636453253400230428776950822616978410612406283773578300339626189332596407119499625648491558856544273473537826136991399855326099876756843371901922965824654958153411387507412057540070970173343004456239756017222706813203971549754926525613974127825334395694311116428937653058217251421273247120123863841287747672643143451350902699682147883369524742439691377486690121752121733023891452666122758461667131889203007800922022070105733761701129864654861308211295744261294615431395274749721813013641045030601176985740286267942089887000816151129379146616062682030194565789676310441703919301651871529480757222177796104178739274371132852012238363509015164133963389543700172791806704711597355607800536724581980089611589424381060374152306174185121378590749768140598048686657648183666308594385873552911769122818151675726633430326229854280663374919362964764416073339227741799073029678244908273277916170762786753295660074353283521727426141600482724712216432880224893240891006960037704421256094186452852130527974931689308886412935009280449794780297081014813865131225339816326348559073210671728099903766758160113814159358053484439518664803379488302240291924512231947424275644160923932097798777706394833031565862712977464533481158816173271840849566663333579697260196050528846568947513919590326605865517241342119585170466934816690301737366347647437830649017739523176184672793765498323397606993152498009769979444879699510269205657496890805560522787404152195551816041779528269100571721892702983512303048749089934712811240025051809587644327453182140936470785125957540421651926939711868162026075115636515531335525561016242052796763977363891557909570674622263379274960846086124697241959800588797561903766367284231586068620245925203434725765247666987168533528838975294990458854819201028797069962057339047041649817651876263027117344331085954460818666795724138014027839316543783796964470172037855655878582700780508865339988833311817649526220044079317665138344504451448363472088814924937927215028987958069933362500097623170614943771725536398070014148403883736601200158892533558867620524869405449865566219541256997195646526968100901466579769352509311060964715999817919923011317777915985226756665365252871283901346643141653796319816675633551486050556278161703618256944859560842280036430156819911128465843212802493643285013605403679009267601205550982858399969044052258425276368257515035111162904605985206478211137967268293030335698802642398321382045364190344509707872305883691613698168918856112372493655878173677574832564249304898208828442934240985581961458564130272353860047020909509847653865574280862637439683126428464451210577784220421803555334660074618993570775605611993372535757437354423079999009893238953406713911734598444652585158399043737914332368956072061150531961735175470533447139566540643805166506217583827429729534921539156792344668213720520949742677109605132161005175344353998490345014788256730074170485562996911716695646283580790322890047982558529933383738923091545985280835799916300306252373368533467045117966535790345141748053286721161041340855165430638983991535264791975457096959978119516541845263224329559971168029936947852454045914416617470846882856198227380752065553773430836543835044141570460387182632130834536337613266423034724380162577976640375116815904723081453147893308071258702061380567607038897982360898339440725261355584264419149842618321136307521242153084962244813595093104745858936455130190256429551886586733934331220395947413090571392518221970976544458767476222633256119954056795022813054591982003999559167112986093125297231849881703776531441954757443711203816888654438271304072151049952869300422287242275313341296936369513018756620399187901152926829694598642420226445748817380552263616151550628692639586561568341322536691029129807948197042834360696253249049716780293147392967453751478073338049391399854521591489092254017744451738585845346239767295237851266934681379021988997409169554613499791446934556097608906761190207793459918229569860306288621990990019694599749195505210700806528752066619474043333932900395050675602487328873538476418405331413454359486376465921006930182732544759263811244704313926396695616972061419301872736415515789906719853518699816512896590341114430923461306444111599472863265788193873306657447607917911210978071637750319149766670366133015237336438474666968795431065668150453123254281074540796969833012131523113677316654998534178138818659983128225172900291073878894953826019059317406101204298078398155684319107670697130659291746431848770498712898095274794978231123570382686953901400360914933934891324448251199814512423486152548659247057673256143147907872437791926935935721639748039096520316264691878303051296337587750836937483205602937508565120090427261886193610848819569628332425796037835925740176561453125142190413563893742583064252599178609661624236600553566433926873408023095971961277118588000798939160306231564240750893579545716238557604211998111112323512773848863358832325708148516458442572451690700824605643923596605524446129619751691412345229088831655546911325595681980729336185060976174526622193504433943062278536964660200897417263203836181852418570003444066942426356577015521995941134291337626583029028408477147606859068540612378638715509993992525298753038559446867501115629471611602156587868820651047454195472230605831136743256247643149857100105936690480096671070997007902985489949330152755440413791149463110490738276704553863583483696790774884521211490004207989536865255227780773777590561082795719057831119529326065779450243076444931631631808442918776091313223162186454352720290518529225421411467848126960908273599486237741904126906335168080421912260168563294131388331151808632514449277131748598615009229269312553790323464878013617921286109118559856076361205524942475825165975945282838713974800032642885731843921503741454896613565326497898494552344700867485228157436648915017846829700682225366783733354299251407256953994956730661380484031732689404917745443378559229511357686661443904916957227006346784545264188730742660582483286524461125050470467647452296210027705189216867658614095480122132262780559204793824247594351772594645512803778761550808191963669828648524700010366782555841154478689840358857401594461623452108005757008695536634351159500777481058698514599389251214686738765546472855717495873073271470029426862482860538087304261321843628771314859748483345594058257256523213530672827897780166011449869585397561008951690266075219044298278865543167244475066786107000968283539939072219220281217016131976714884960120278259189462962547361031629990676016946852796821935206462031527764614612356555239217150787277349432600584833188410345301229782859968815105609876869283480113060141440942671550358744404712738069925209817127669229750747399476900129881103919710214300662949343485171175448811899442496112539972334750630396125844063356435583715982131229079390057680073525887564117772706033302241842519196998876752966625395317779007097142760691730553102386356626484639705460780538523680811231617034060672070922696038048895163439680551517496197085366887887517384031732518958004560581896869393323168829474203465700743839123981353866568219303818054073027589442899919674356732830504312741511531078495614520692840593543142147161025602024781017389353519612143573982364338587218688731751238805844257454175674385692645902907598508154790465567709490476239491302425481953027825847076109235022385185769875674599869213345340227628367529500262237515818879447160471287844999051179990914869815597486198026798297176793335399301010333725577951628450798296997129337833013847726049388900711981727011502645551965511847223736998758852354273309162414621430394517600476468088413706544769359672171326507519705703157944078990181367241257669529001662313659622976447297645663547478002680412127389036917744484749586093729999736125344004937372990699812965674811499799668931859127260121902011845665129967977471092698998943963385024943967842178164312841665546962926604843422267633911319602092408643056763021077239300544424565127223502053448814902778040138891645562806234093081163027087184891509920557253070851695218099408201245387077722756021352492630259543966990639582171384804566721153665463454977544844322410917606375326402621436743578406513564394838045493681692816917892955197299004351291353198877970893069478149184358731134069635743172845499955838426106927814628704158060455759157079868591934457051061470509416111718837310278360804960294664976539505657636985680660051552623006361537201405702362908513282029752118714677773925082493175200212059267270692662655920667081239320427785561888626929390883570536673668370728245951071038200424005149095611257070310805761119080039410553091221882615456924846526825654382128529747737040887207541740458287631446744532195844414128811671970495291318526422039532850639365679072659709353738229530620392133905590697517850155155324271921497582877870742577698597638758218204263626695324896924162780115548396241887503382426221040628962729569908935837740537776492612390027742364267699836677629237806394631363373392095767092116162033329838308628133303987359119588912261965591616221981658401286795018311430359990915761180613750649637683100381455889210449633738203510272998085864858253245778875914430991352478842462099885334548139794594159055621998624861923534628609262784252648066374129756084964264997118494079117637836327801198112992080899305167640522146768824534042660237465495492036906093912845739289897133402128222134284509494021040912935204393296768928581050709919759809196165332915425229025017715855191740510818035890171347037460785850002581422627643593185559869962150764890253902578031382720035586281871643612976574934050909398297009487136302521029519812778602119444655799075629241425571571486636539403024707117524815798818871931819893665645448067250825165287258631189162253273199456537559168675158291920061411769237244898208365829654062257498261103679626278768604102789812823595186539429682792593998070439276257794477185098795742193764811426152956936670410134566421645923733599008112329397902429127025052660456639983408180745341323561618958634067016644334388052166426468037897132983594974211972571788075142713383564618566623544697771762874311846916608916057113956691839750982002725739433920419183422699479777778529132150211012388013201489237590079066755429537423940687807855247007607367881633591542380032590725974370231991778935797220059450002653466902592526083106818785901010980809083133218487394993410712350023042833546549011027371136964860692638540581241849859768192835501851361499685760962712691297335408614562885603046627833037251886464815053140941409326376272968910110515007987987860375157079315242572238380796327098425071067965607965090013488954812900477387986006604484441792623071114840323300935614145540561536804956320208180580756954880837303753602888336197322425332978724241974733891658737631100999764970296667643897986104205177417675343914216844607404913787856369054886195481623687654693727102691341848452792620618272570476136213130693374360194663786065518517992396864519534642916070783016567354551192748635097891768276485290425928730431586275005446318923813132417511890029348660978133609887440326556785916348103598485585065409935604559468598297318191366800575910562883808575398523028861791075146385052524397929462298466735195814187008141031035353607631567681489702105389503493397528180370685834054076934298348941307563783740408810472564861336720790238599738135175267128870940559187292493922081155889665570536012799282295479730433675394117378745294086439954554124657410319362611123113681289092158178055679229249658418388193486627320706573321674734666917463884870756865136187026386983574473874602790096690379270738704385125319269737378731990229370111454505986759292289179082903666305238354838120525645181908874625798963441278906759694067869047733392993847518923267990158021675187058257534400556434863961509347327663657680718548122761990738774743716261836724571683647849214103841491184202957593955573191051933704827716526418683646788430664382751054417700656651412490824517245001831429816717577596194963180440220738367395311387498401220915327624194852518558209048102872490187161296842205096744074031753728718436934250787757937178214145736197755464679253183467225201186856036332547008687188096661040932470848312142926555160288457371845217483296615138874692579451872710107046527537477232851806335618289072325576641792775552844742699637355607922183717897999359112096211717260786309830261560048762906116896429589763901278438446410625293112070179690241468829338578939029626791177772337912761862435002803205606827386989589355504249005756226704376166681537383071763865081806281780635591680934897536560100753551495467438297567510556780189867323343584626166947184770558626282761774507653228321001294687469441628124335867664356003409095919701259922905577426596973999705467682108085272791193889900911190342275649568653879794296694107867309218303187148422154324239988632677269020500131205400318210154797001781901787098815920844411010666798509041132628005374194698055137683528736713401049984123812315566653204256221372340943593022860675182383222413844489127823475972302818255555294627041345455303843541398410666978233475469832616280211919470694166563689146644949258246206939473102914372173019466331703579303566410682915066440219228012733856160332480142676745251001852733794111506433744700483113650569209796497116435786438209431864546016948664215192078118315632162523985643640449193096623673072956624333929528990340181585292260489080565910894612563195641210286076300454685674162892063015734317875363482310340925330729049686634469446544068939671169175438083250409910319800411204950393104347200904292777919770660131750056255986182490485425442232199009965928848925253696498342923135576344081557451497157347349554671676584093918160677634451998663289260980466860327548087522687916768268176025539002167516344230021750582678194488427498711636368091602267814815404854412914306790214002947635379363716968277568705003893640275079469539883693365944416430947426539750329191439270964120325956202779609450423137897929602309814530022980726160705562565864910995265472191263134448862897741972912671904914779873136427422338761921571152553496800593199707127703846945689119952138456054261919348620896918694582595911204264449912520900116622051497955835413382378667717424509265915010865457348791931977468977302918634448362199802532876005967049820901079742547890306810859828556943427190555414355105595131646668412307428063104541062337803477207843770905368810541010907446406103019078299832882817492246237935848426551598841744951951542899901918519023642070305183178695373978277969695890215954990744892786201656492275177479730668855362657575718360172582061973848189621101625705742051293737646249222637771173923958269210367903457836436734876202774204820437776941674221535816444369002694745862689981044619670596137332113751300515962281179762169019148705053203263048819915455393961406782771711259524904882285956283331701148945646304827488890096959503307093610832417804776824499862537014583690876003501181952699015528345417766289148923994657125857917692264490924768418779665804639972745633334121500708746371498445265459394587337365191474348153048078321653274361974843254290461204242634719467346642359691270085085916587562226250585016287196880197775853604221054486351780936352349517204456580887038478565936718698226267871492832866962780155007397952869525920650024067250889853213067133998777657934362084323666547640367094733034813822144842508754566211726243497429979998042332102831768365504413500267483189089834725591838802220234157201898834534603186948365728598866590241396266883338160351162354451548938552198371334596085274657838633567733298526568547799263113730747891402928235601941218344447480776574749652874029016166599076319205173936774046559672365192972892062983169634625776459742049585968227605585546190875179840040193466725784267895406590836436118700739673329629738921691881080786221721456457189602382616529770419885060632451420103219562711847695155223087780165569574356225247735583653865491045802230148511207021532135002697073976430993613744417481100494113657535389068750237192299175401509588297734005832354638491561133040295095319407228602962478633800872966231829376105426995361701139363332340878735522564267610297449535393849352711760462012528569026511395589033834945581882851907948728729782047873784688317120166962758391994501322892885532156645378318314141450369192621282395515627488753983722147305554663043084257307411925580573630401680523083603390811009436662049674382983141740287384518837529351208669228203969535748073804713597771600331669382394951681454575740366439936423160272732585419633365324825425312098188527946825410921093343129998166523136275900446739382090444515387155856637130222263849500825417299866254893197747123965798968885370011117431993573395712187406171155456224887260548192580951045691806772977232092017118900831314817220490311464538764130947033994668018067755173649896284601484121179040173525213088956174706384602590727809292134662562981009145997251602343023189453984912292102360716572143321777876556413272057292686837582405491071623933012034372127598609843074051391850633106751825011338840423546718341056632519803309805793116443168953068661453233006362512881924957526390107691140481370320854956896737550622399960150119321664506560146709259100567029232319643168743085882626646596253767879407492123229534073446237910405524418741923018360905072409185468290260562949971852017729823871309018800436024542072291315392009573889654165783671824994366036860839390758817778058250268473443834860205468703758522251356907858489895884825572656534237200500951008626159596268684303087090123096600606350247019786407583346889668688049259015906307930295136352572042711946210803116303423874708689481498063535435850061426344939869034908872573006403907587169614974879073900002181064299813543992200522713418504439058429731746311935795197955096090304530493289909750868382738109354989621410737996916056366829353521761546758873072289973413436009413410521112784359968372668330496248012041228935575284488247084278288877583136755758378603995110179586675245046449608443160430794083249530589780510408798497705718031487973057723609321731331394229888741057038107452043568300645043190484391056069258735690599517923169800184336611125969649672506240914151465605273178848758636767377545040602220004193003034465381122065460102122561053030039628301659709670621658180383235937184967700691164851088676039498033708563876518882772821024439173521122465894209949538046023859718802054357933908851520569298326767953547747664106642359727531945062323700650617957879887934134501860487181802235403637190149073007002742015223832799930626423700760606476455134047520525502769169823178109799925896498442029847202243491635421561719734044643118484044163083202484395648023695122125715247495906803320083039735108581632100526016695309236055430083387630886576795843700561647318399745032519843704746894293901562863925441212066533163624099103617331697837584264203753828696499071367794031065386578843259438059604942535879301752736602925327975379567161092100984222289032730335386800401512525909561297717145018365475106418740487162709269733227749629958178030707831798682124830342334420052285185414221871047889238513927869690421818696498507903563374881162904196383417999169098435404591982210718801596647351747166707170501218686526528933677081662328614927271876328490659154991841448363360751196223033809794170017771360641566508659728998922546027281298337599450136548295835396938226362497471309699365902672403863689101062514706889996591782942067152599116835993895354720529154049083401021267008157786762378227738757823466985206463066814387892649635880100996372781947828536091095479699091159366853009110119061598389237069697153136766983408324142122895468728720414277702775183060797512650255892126507794643363206849554043518581357595601153850990669508718120673122891045748284525296418261177661506049605133005747158600972307853899309075552195659481646213184455975893520145544594939301327404604767149396960962875247439917223675746376594529590297987959164090971862142159904364642574034993155850610849674866747706643885437396525203106328074059711775808490133518082812792854560079253838229217117759056130776761068644215444035087579474431624657223668646447367441107025060102623095690342245884641052574201633814150227299060273503501934665499958397450100322002049803783514713118278336719496003470622437114295226740374761348109526081670066826942419425678590835233310252286228032299205436004209002535138423507866138792490436176053102290166569625945682688971127987488662811267401835049911511467799346184584605525828519804350739685284263355997530748968949442399944191742124737794138219672816235995454659099394578968185997614726310079913495898390297304245227201673718678915444638929023214906770372204194708129973790296126465356423429985196359712783596086314899188852654173309914833910078081098040152209948967109426226556994990390637802816113805793006514782649950128394062142790596361313137875367578830588724859317457444534194734058094246989471816343263139595631313189229104983874130190437310224975788822697532663909184574975670915909163902351331671602392469178584039108822168817927823212191799158813986784095548152470557021741176107751659125072791018934080268545506083318982641967738336045735677756302938577923360773777416517423218051185406853393335485081724613208251283314350661707634690782915964576652519700246396401850546693082936525760839348144130863685006980066201457399272012650409676308215215929300846536786101883977698831798918967574788825052167965242816647214379730250625638082603677325922795156001741106116811841697261860293731659559769355298649548691858639349255217818577029227682001403711967772410050701636760175042698063569012037154081460179895390056583521189402041371901524023822705367496648089012578756420069291778694731278752153326069165843648376699329695914367867727275910569794296160691194090161704037039430191189392310160582995713444938711100288518822650056520553757624776753322502688778050326706644734797748755920653985372621765502962423070226116829827570288324218694425068829444109398666462484011748308830609511558463118510963155398558904421908065464576301630741246077390079220055146222280712806799921149292886602296969260282286545095908886313944156010655065157323177364527026044918769619080423903804470607033864389389831317979410077081860118568554032673244704363158642077631092107291910651074425712266960186973117626948687617940856574647459157224414488351970063173812694956615523656427936167383459663551469807408603866843024827613782766918848219746629085550549417149826342959968019724189592924995292423883712113600925253942381457231264794431602495473524395763597370740635268911760440404078519833566063895191597005921325992989300316412677734186223608517526780787003526851052370160482159321826446282527282030497050664485128541446944601238653709100642424076507829363395240394342002293043721739613046561723856992195817269392240572130955693954244122124488984411389799946644440413511932715006204123087738360370459930179636986955973958596382988407414791838609130315974947128569886086432060096252173214845250029463402396486189299845012285029434688009926544109716735643661541177776960912083836115590366106977975931307874881825343055680344536733383582072508429365143965978248211550102266090612503561459767884027621661997048797263917950022428059378867306508935135196693178109388156002856492951348029256705900883864439744953864181064783891936286405192427684644793188413426301805908165037944277794896045935748467308647648799261686946530894141507514245709195729276232378933041039451300713125914402210462521827172493524685468874817307407569518306008335434906797729568016225454235470342892803070809406642255497239891015047821443331719242868793553547919213845004872283654491075258002073253519016703504807468011610059288992636265666461806201898562317510699461970828464666865048475165070607587442113789193116605988265328082451989702943900448749549404195838273841997565284233395515193344908839879273106261138927243564655257215194639245728633319605521686388158143371004714596078196513820092231922473362895073199858136886102939168915825586111892665138823042179877259444425844476200942512515682477363236548847752881097646053201428470248032981774286309119575288159622720065947463029807451092415039624331159785677990747442442494501794137962834333502124266150941412040262632647161471436655150380723166113547801403524766147044683999864775647110086658890494080302767938058154081800206164517222758509540443777939666594445804744393379577157644092051622179415968343976642448933774056302563310506427803409434460190888348021578569693347067942313419408902995280951839471490496657714305599004163947013198754534174055327829326654809328097590184195122263307518176393805863891138708817484215310357430114018399668265705186927003516592692938683739153331202549275052631436809169572435363807938749925109865816971023693706559578429112793198515321737299768114465921084746676057857355889069270902489853135182865082948990656475684620066773578271193629309153275152901252494137170068574407244749141907639559367331213122248947830338071423525050762662640989547399391220083632821377914256009759090467156389888569602064275870899966118575628999316286895980158545580070308897343772308834966568208384571005499583943028665437506854533021769033240371241772637858979053187706954363618287046530730795238507858468958865244550113998515219568736949866567853768205294437343520474549602450464413492863217591960168299030215566484385727061244978080012742772209317071976615258989566447732471892536061537874987226001983944084709844228077715345935320662108357944738547141814217984277697586510569490547802192315142010540790043985603260918702266535432593748384146381219701727210302679138916014585996584706795183540519159859701738135771809614040644186592252953402943042288017394136777985264865397737987231172875739618518598291699177562744164548446722993024646230193993311015936229009773714027805291211303125399591345551575545919702565199855847809037442846793107504450051250628279926276188883894739275341607515802385870566013870064651937524865016061930035527122913276530513961716394196714305658262682210981993785664418196878269129242730408814517132065499861778405396595190225976221495948270967055320334635488422984900873830393532222351240017885966263005775328934885705163922007524704534501064054939822041684087277720160871290341362744257613349111663325480506168045433039745185613770620025199016407626812473622542620147454296992129237712526002095103849948772470626235402095522061899354945675676609399790365823229581774271093746494814973461717460670748740089701766766056165128136455400280236177085813294112742315743979070654923584677394643692208380614579133067248298833354278868987871428151221575295268149919377459403248295263515615821339761224660985550802532910639360409854881810254086564420278158026118611546112714850441026236424408960960460286469949330580590629276314883960572267622936249260046205425051758427177327674590103748540826876540033314745925187692132036116919148966412269106220600373067240955960494689748026454015294543214972003499297401421049505836926658475412196026271756396895112603590651352735773898054500752095524723149110763136694391100735904910721185918173196567647930757171164511995379122647425493499256677185131102024241251931965868775231297746375082610846768671739500967654246774412999868871055899478991479627204166198609654662460497107017081994316352002288309822842884598807343692738924002191116702367686525510780375857825275996959265778058686486895356448960831313089401787899040934806059511954505770026541459300396424893308633477384560225376494612724278722462913124187283050505196882214315767423500693899626900774883826858017757016290473656256296657468257572625695865477894291848777929157550140123122120511120022466880834337199081683366705098754258428785670660494110222580031873125517462704232696326973055335994933800209768413145935810757466295437152267922669510917085649572199930409133811121924257233284795961470198814940299416782881731870750242792107567902393214404999368975700680797641515345041494987302097028312554037463177977458334421144107877308004570703598662054740207846929214234516722827312742373283544702235111968790410360842578225064498924400049599289929288576249931800657196832640592056093161817124366893410318779575893413202786637964043361260948868949811869785340736657320511332901340307272142492660859069404061095312373098814101820833854812905248257142384536459934189083975443150648691298889645923693478973796060260276040763694747783270140484427488433552675649502784675554955694082339015076227995829120397399475038140463624932789757219001744102917110608542195677678962969961966704327977761347198339587419199876213544577389517202678138298373535662399838358649242872185673669438388044541647577427954433406693835987324883884253279366532179683996232732254921385280759843049946750754849622174944396664663039783632479453892066268654694479496539767818396488903672421621899927187996310846380512159604844123482767431450549043992925375496248350687064963915638121075405990164282105955375588898915219565112297291319578074804865145877938543731180507689675415491120027663606772181455450281075049787086537384420632706695816952755219711306554023885674464690460764394686547784331932938372838407060431484573691384165387637734984686361835553889238249775672710103877979593278065872716978450482364765393194201076342242185668336279209164387474699017588484305500350917733921067264458660902736340217683523071710542857445966665127855984035202468518650668591786633708170097460961086471964383793761738496878023500754061190550024478109570910994369858148579002020461492600280113111253877311050058688769115243366417027584021451318673526585756620694475885469170927237363280043783620798093746585332304341689710728212236464589209312540448557742878917063405324420738397483820547572123559960572050013030513180869272388545795009214341865960516234445482260016991718148205123178101956784537910056794839826154971369708071247871119492975604582337574733461798929792049410060279610397460137581943184440516121076879909164001344242583679887895814432710520839855177895647281933236575382740119190367749480289347453927058150945013967484323217887198304780180690989284781818528895842636217408921086503174475518999359387953457530310784868113962801744326176508017010891494188382621718886759259162640213872492735410367185890977645226893455548757475819769245320592779120403978099870253636911402859790488559497059667271363432441337439321186014457275698081680543433717048487922439407951264722433976788386130921192892059189046721157859929709909085655564578258759980491204998605081762871596793217662740339243656593415540977614427436660010185643360031789156882187089963497642671039015739781052287407223604624063146354715493895017033826412312039325786994645168159543376291865135565665785952139279865207459665493215159530955705689298425291130933208633603425800582137397349355885857827337906047557546826739336002415372245814613181996103429929829403064901941322942758465995497976925045668225595886327430472895464083416471323631229218387286801652372165712382364337304905407364252691261211402305129969205921418572802263455074441894045985382290373235197380498802393680099636115799719234439194360577384125755486233258627608596380067135901570657101718222177787202044858890454371228187617453687233365419012120933554937249355707726454392447009827913098306196091092604031425534714838763183061163518751135883126953515964248229788203368821987432620107063922215421309632334312189864303458928028878574025111731067321798379243028811022940682120212613054719436118600384992090300333572600433230448410130746382833678443441888126071143735999913871046474180592503220463574216944861750659609939442123425099322910469719221084096392970486559597396599102447053080333907729985057967781678402629712162012855359816215443268172592560183819042537205368776579299634388620370946347553749822789858237318570633123115194711288348481092563061182533451741726578962416592859562054365861671971696666666804931287303014390590762673924072142470680660884719755335685748916904155095255315872891126838733387418299838695403853869115680810375227130181660757570774211404179547806002931923298010832477649629079946226621992732728513581649927691936857016374716664918738084865458693855215664438552741244123334848434714884564363088704090975171377935635003888335257915773221793700604284502718990059541446737830226748976574602072670377003024105330348518891602933414721209479815504912056062244457030233594670781838117025829446679786726723446780284424524331229418382373549583919601272961095294755979035640904045690735035454655134020134053127688548338955061114573373687056748188823841344278807281974534209154696499310133941715011065358336548519311674784378347451428227581870792156234726143394177146463601528305081680589509194671154559532870785924095754455498286303820725056300865370261227408062610562190437868311463974640751099043730223911647436733172879944512223901330785894987728591767463201204638151274672449388665336805511875638190264514283294828416756742980831930027414832492167367661400903797345023788391001371835269282760922618005734878288159782718984504203876871360756727958570532610064826171817242111394768633960106161561067409700568506999204400589004474269146419501571230019624739975348534910339001787043710541766350394135885429432484522587190414102368410978070699137725414265969803918440357224636279244999116070175745976481399911688298727869928960371159982795773411455590232816918332927810102575681404298129722408662818530250247635988427260733425524260136056363681327438259026237507960620697641075886981436465824709977615141695039973461600174555046858503685163399048942273017802467504944120664887305980522755340060203162011780932278937952092498812068202875979016364606692294236291996154124900278082309609373859078112431442487205733652267939600184494255801157063151714580229145215466406792538225437003969581684814420817824073487403038056328810274127267429571148233070872389482212645214917212891365974645444304973478867054814832072448112367088618267251728603756263803276934333361575663151881089447660559502398462700866558096281743779188644343384119621369109744571051292844754804750327650642208691435288030313387829295687646944051480274535407071585987938903746446560864101046480379949513342704162234769280455770842798010306447412368689380482794968801781054330928923735898034026749500597374017138159390903115209538517338975538559959535747281391613791470578968808902850022181872858745222017566282328216614370662890874433676599825339505413350121681185755148988975482139957611430875536340076400934168973234919956559745227689990347994469125942253678651416352435553976599307401945037415659303160895385039284276958646492628454742316052689992337578514589780690269425777813494279690134370604734401488104202809887976354098599721951517598069417440515950811162552211043501652099746046370123879340515525723945003639488057545253830917490111620068106820320070962080388221445736068575478501115959554560894842749331887347980921999728068225252910993776476557492579020706921771599001807397124509057601342371266102214032262286226833958933220463168476185930524187943685293045169615360536063067403453481865674021586237902605313547592001931857443653393905948711294995399864471019212449430362099597688261630646206008047982851821711325721258376286558579536333850320401086285344096604337666288501399653328118206581978501389522813740538409365428229301596930783249584049885996455269512879622446829583182095147343712710259662219755286589565889950196066233945736582660132500477712665203338694055116377463347956900647598094638954865316581647279206415748067029932405491520757757974258671818981514316347776334052150752245271309833731755924798423695169555361745320594565568839132408885702822790904952236073587828517034111729804922848935252982642043479206432016403686309109090992687940111644843841357474152174098727382328491656416765006585046400011898075704756407387526390000059020993911090855217540211256301319852697017892379144315404403057145350576113461351088642470993337301847036312282541275526633293148169800816962577679769960072795177389642808622969494509225230936879429638766188925377223130024449470719867308545169348377084890462196035381313833636386530869907778702215605339654997884575813031165529767714190904152930976882862385666212226426540929435330952931144099116323069493865995568560462671571800424578239462412711960496509959513964154295568079988946735173215610213500412528432766434612425397714852096970398240888480898572208304446314991817540679201344730149703909804921827003575000874317700036149514112472343820442101281131971516670427993928450991729942370559262504238080036674809167575576182538846840073356728631605476726181429439643145252355330867172283937723478115080165431065620525274257217221989093791999254933601915410501577346372665552076208504710276233746007071420663769729529746804393924082581476689416261150601553422145747132068641479454201153790913161374712033501247062053339460790135966815330903252863381017327935667843538031332949189187358061015051373605260516813723977333240858726045378408304751158747719221631200006272675607778763315425382316976841185435011054027866736020525419007865917107439683999953617987129686850811076494127905868498007634866428824273342076282188609051362105769653014543264601255180121811009678781556130195670997943910072517987031869998664523732441673751121826527810505266900685925094738364461500867900089546520972241621310391749717499181886126583433141667428953269831238904491873908485998386523584766620839261465350983336053683486080452226495959486671405315702284604065130380629535629933813722817282081861102230449416569063739865461877329360225572521010358449793879352986615103526291340670262862251423239019793534295931042573822488592690293926579497938512604026433692706615532205395197299449714853654691463249677554027722367610525884340443114424822391379986131935610785807315382293823335449648692099374815305976409024746413939178430497233661057932202392982643527834745797503566212988308972138076820598416694479228949596253871344632969992973476099655345331039987441829766195540898106615125144396251603125399613382604153296181092346582160778390582994063838759797873001063300004291169186681017526356351143772053842350810968405416694473438265438312576901195843764779253266553287894331653639452902500720054118610676834380425777722492243276069666812763705784203428832957803266424757273938437291395695298701087105562200736504705414390537722585422035973711810423364179953102108350427131768536045600450549172466547941371473866595553365650142297949903169212163609279913718350122599186687436894606810806748923907870596891352483839704716493529209346296777167147986417655621372105883041989425252069831214192464296436990170508030473076139834860973526910805782919999305760842320328983482756073665179794533429541348288628844630574694666805066759982606729563143478502348746525375834149840542374140823351252079214174640233822742117219664109933889532670646283833888317942080349173201342579957910531063865998117967886004053038846340806302097579762421352410356683504000378581122899671494256022731596615286364322617283502629372606587573637560925979754576274086799341714517460879286527323933213698188116255521825050288641689307021916597598576829330111197246244555285689139852898713873521111423277168841345741987681455892115844045230563253119519888919043997662217773624427649375498435268722574206958037059606319407662816497197254594893376064609293705474074466646631915291557145548647702781302281562853515141099380738537755341559675413498311856618734649848419308013532749783079509112025287603670894716019247034664965671084322259386905000252642817273739977170313962404894382836068738241346252844313256567242956352389178240601412752192906261316387095457574509379270235647581879727331023324370101411564976961161800045381091171299123362548411320714079411386503671413230720370875560422114040377411137108902422282780166663901179036875837295731170229868428202775233716208953503047211761454778495382045487040266998116165814273261377554760641455609165893570912032510741732529216102740958397746818934907584354255727066605290637471683898178865938686584948647389132680031284995473764844319523440444643882626793027196272856504116518427179102735573859737438165368847199437658042848902755731785019282168388035855687241724745230349572750224779943384315127136834752338653587471952176554046200586192123381444457346095550540214952957402384749150759588075093592571938591240137931419933305550090841874706545948963971354646124207399518137566296556413941169679391581412581550417335212494396505483754386069113657172462772848959167017941352255899558675211807589877920888043650465849928357373147350103673162370835531475806000810718345924808743084054457733854431463441183375889941401282499938343035464528143842107444174644281109658664318145897297097839972060024697279860886755350385221391380327446593173579929610513969537551332170867431440689034955669003553406056158744449445104398173164313251139239646118258163763939980179234866050875077333353826497618482224800491595551170117619508334687194330571899720426918383301121304097271831878351102728786398859773292105136734087151124682614656372455625464854313183280874664963199721421455407664946978584166581881999474946987740468205978543554817964437277644788260437496861087300448996526606230413293430979126051077173653504131454831072986874001936297385548172925659903787804918906831375381501971648542934114375843253020947023521826880754968447769092558830680762240654834094358940129062483242786203413797700259242985770796264666522543276405793677398650909119568642803953730173413217861848064606563281274202734940142336705493080602823059858421682396448088936262771935953456921145989582928076622624367555971267638206056414552697653109999458187615267727497148420789181350471684876897553437347108325312063918539863718704860356796540405762572224793487527467342413291123812640793029998449396314757629035761776739285244119487496112032125679846641655512387971462801996280398639502590715947145518377408420334452652371515710232615744530040264608292500570083508283583911674804542005768010117908247602732406188996949185776910438361567934113570241262657935274257229606048761973715783250326453830222144422287854412782959666704438751625810741510462196353141637147509648872590268774379369266392098134868058141606953880705259373362267620965401938514749140966448463380077156676936830161833760364444438845053890965350870558855636352400260422807039353260213975597220598530614246217556822886064920864196677697575490700575778271259045225301153419020092001149367573768706976027012842818754017392413661604648841350856199886169113241928834505706855252929446235718114702307367688611642904388811166795850797300943521478034612660160416634843416597816012945080829595493082912501360434764019041322926325521125029414194527323086708290492848682216081349989007080249182619530191922918068562463410660863362590594074772975962285568893329764410487597916577285920744376294171521039257202554308893189536655683089461818214572243796437179577565361742749266525178394201625272642482233721638143215797929272643740332462512502018990830736323179782991643039688098345115961372757719190092404324926228510244644504163954758344307985791205442976378935314231992319788986106419398529504292556110537626367671400413277915141119681809778710639406664337742546737078089627442414188599485264901560782119106792924584773666102618720451413736983479181970269481490236576991605403196150547654977012480362276928851029020658932047421317381257905941123240119905461764775202628701329969460170565928452015430289452763693800251229159194872847500579525269789216809359840493246844907323556187567572021098504287751971053057588780071543553461067815752073957833730651063733983040854284701412737170846111643062169584693528951827311088067780361251399761352157819468236197820697985235023355928122410889588043836369532777614644380272154683185698259317186178677796821674467115502399968933167215980409166573075974228775077325765623529761035144600542232341919142394355208049059510044374736581840741501422483727279866861445524713287117471843816464660333065671393213460287056200584772670718453479831298006834409520135884697224092753806347081660726043854158943804863207525105396943208180971758624079573324447993057745845127169193008531979450563052015096995379850143098258216580443231373211015826257492467464770753490413356962858028300817747493477459225523377371486169414085395296308541539218161355311548271947429057570359509925981969944505007259126929110818313019062324852470277007359418983873774112138454832068599807164347132568260895197612834434966584397647699300337167601276351556446315810161017699548963895680851367356081156644765671775869351817281293689808621599339141851958791210216776529114598584649776571157672512641692710693750552615903485456684998183697396493044825473512868095965485666986278827893747869442348973325980216244127720684664002886424854962678378328236663975411078071077541061828112025985382461969275953697711034553993190497119436608934180021432536460796232589003473678644218593323962255118492257212864077100526784881248478726063377750533000005196957808702125614140331155625963099723574898935959239791878454607519535369826020352306661536255790683290650815072994966641487757286472485120514248241670222633503266353653451019868716355348490087711628855197431006429929103536600237193182873336121807504744394055555541848164311178039972044701693507477089333340856452958516522756054661543510484842101298865104922169524316682367724352909459678703202373921945620841648749461134818660428387041771038661016425404527686734830493544680592612062030128656242711441538295941249953284232453798858300500616261289998669994532844003755321077017946550438976784872118052469599093494780657433110734463320284844985000337545131452765383596861431756175157003595855705528880013558887276069298280393016563485588841144686683796328982171886669096732017047552048838451684845497640830392021047838988018750150504037988359556719458071640578198070535410346825090588696499289970783237459561379497040630734275020189812707498783494569469900465928428337002346298313941614782527196609676311170022470309056773294242830547143334973919389900591481600017964206617591057711808939018567365639286435673819500646960814944744623910623348227236144699908413227857862845966515077148453933381251682746800350800932739735692217279866017850464616243845358719980163446399406344724514308017112247848740442308285289915063964021894702084459403093121756509262538428471294364298151896266109130167346942755351972244006887841741415887351449258822833699904480067931606929648412785739113948681307607265702846333545572196162551997201479965099095421992924841393790159659048436095503675065470277701132109211763819443685192833243048016795273511121623514892095578025752546526870734105659449930663802445240587008521161965873316124430044045634518546319671268436771219818224237014197627919261051820282477310734436022972830135799417819752906463626980493099053279504109314941514992724312626540518561364759914941618553481278082699408826999588500642280215963251727113844795843646806511681426381509172409627225676774055243851011943175019184414029045830054785128119506251570926253797779347153641451092209748022720220570133611893349604747933633383701350822689147619896999979467251563263266779437629469275988004158130993470754136551682792692807823739007317497386521388522522403424131428126416071132980127491514651334731264018996754129635992843161579609589081050073888363619255352123924284350112247461669106430177937977567622520857132019074119504254333217367296438003300757783530500810142688034107190282845414945580881006433624632369956067029886932330723106022961390120552221769009524075482112295825450338968547808880061712929598677505469735717804729495877464099546510461706890964986058107752770679783556255422770559106745141301496084680133987608308789635956055985134550385859700553980505353908281922418366029296775493669190164800045417619621400104105749285357669435034079719258194604842767153005022021867018051873832576947090219845348276454296838907722825106796916104358957566289373982317767393163896630894320721972637076996136905705781071706109501722239049265841753083986072430242237790398151275830022392532017684288882779092372782197373167370473662702881238321792713880701049526398613355717842240395499538815655373637390689428612039952932971217390670265853271383397284004611807372559170603443674528105709249265136470466589048249009734040077502173030002258252817231286957874076135827660363243575106323243361467040010278282010628389118576873817917508629576902877048177767495714979113772940802106227074622472931264583878835394475707908121875188628584921441598899397428405990942583485487731551473741492893523576926107333549633590879529812562222416646807825699523879821240149111138785024718876824813695111258491332370898257899021388486904096823501377527102680528904581206348513014420367994164194363652155958669062152963974284803426894829359057304125871999872497302041190586649651535780260302984862388367697283850743286641989784551833191979513498937657947509579618025242704532322932236796207603974633285967401449563104372955910525015663690758273930976628365643114599045961238694284292221469042422053148766400253935632176175913313175455921222476861344438349168986220854152144240376034174157809780855755326316116381525483268582978577288922010854768410837841267336735322594521159419717101730815415286721547058520637985364735393565298300003011057543561729920623135954033633656254651644420744048541392214761436134558479888405580323903798188536306446365500927586930852845376224487744868099494154173728717108425379034305417614902023985713547717368088134754826706611151252008172131261800052374131786443195333034437224505863201264627175264608801257779793717922130687838449848228365373735358393909051667500069696808177480163742877050004480717346316446918087904298919141093790984316669159077613530787659948167925810875517966893699823287470500332374569941865587212811756565384098765464987940771013788102409061128795453493903458579996376290453903726029512125415837201829703940041913938607101872821969724208423760261829755117727322688416828219775715352912141675757224505434277180991280635541114013762513165083734590011860237980060432640603442232054911857526227781678576227926262778560239640418708866969099198390258898351514695047179747799065126666990003842634356407120017898363201709650463406149186907866465001432504999248340444146704021987992247134091539742694287765356509894982722380617199550018220939761319593712681101163403645479234651109211974912798876703079667776117145398094102922408700624491502629105811894511633934113940638949657446023107814742479359708910837163564792836358388269236746091492498215454205036468982539395085248323221081193527444888510538289297258776550506440686236569749869637311470234848651387684904277592697545583637298285845862266096903108578896145443143882238898435628527873100387922006991357232262187418243357639383020957010420324796446815693894710778174623241466939376897760273469916629497784295735605353814815939276972318286493836553213033259321319269528868719807868621537576747735839140241089167045712700463526101327271384021965595736358063511337730790814585736664007462845395336393909791480242890214945323179287998134406857129928584548769173917434631629595088713925920160060566877860567539179271016683397338870048701507986800342799228500531319037163158122751303742260474381883591724256704624792520887190479502629187312138201918894753451587235444248283102382832095715281237785684277363501904596456886190917197774830729330893415834910532229607606681599554671131253994774581895632573679245487728624508895613538954178160980898929110352435869777933246778274441651539318874541589909968099798620081420178329989626317349426951557781756092104768896706496473187662200040719510735098274480072522117958186427819600106261376333868898919806240376061678339500589085873548807903476397665940888388971517776241951500114587551778161971271690064919774863995697018553161258131352759191291256322689059381845318030036816035647712490596203169425925718780574008423538461809015067410197532878042018416223346014857361261641804836367180110284167005845193671089947040672365865584720330975322483030291232885203345578002946924251553775026204586707678247133784771712271216832733544200476381147847122873475407775198880640088403821279891627324514365396731847529907379478445821512831276537495360270024209280291913281444480591041886643404857374009479656221864667790823982545713624798545346608552186883645913814541429674263213954609430249700175669797296079234168443815293947859742617657491607508089327136692326468658468329499073142278074914605905349638586184954104292745229664743527601893795536666451207156376660086184485808441683199657407372492090670746149784233781008302484098528012417987293731241001030228410468719186035787720799487527349491891985554535710228877693363453992708440761233694751905172646858442939962502534339569104047066426324522422418408321888539603554545922623044670868882240387931341192795078339652532987005263784528228416445410643814875464992260430426104106974090261588717855896185910886808892779413547024687764655868607413647560320008495814161456172338798948135380708913711120325277034193150717228075895415882290807864783599310808285776168429049538657411144805897697718718496685225117318077153029262011044812664270531825013290864996436639018441184237853297839772468256136156237937733722346381294281273296240581185088592399268766227148692304371883043773516610876341577495703472261857878511997238262510204090581275740926561415065202504489772393981415802516454437538098606865698553246235108701734538856222657825651622106116325246308390913338632952836019026062771476120939254104979232000012356994025647156479596544639825720961784379956946035573498276429825566141169176232456306499955372499369576554741814210107981367289411967458530949377075202403348819744043225840569744132788859546166889285283411113082262712476944172842274138074830742301161162486845631330789108355104646484417627032470244387574443748870743719498985064100399074571001343795976653661836790476589959737793165838979119864052905249224145735509792756092705512946163293635470758921012070228636054412258115885499484691311489392330489353667331120957729938309094859173868974332745769804594670869096910370254997324740547612683695066314116876246433691302174095703677279729711915914821387360163951835975989017413483245278406937269322457243888365430739471251555617515078199120171930607158650156481449995266221489148667721696441502784445202082142331879881680140741684598070280316767971558312462413342959501126775591468428961788436252388590427819346945586747610439172829338148443006226573937624267881530181676117767838933335937398194563748164590806714314613750671913134378265053234056898469243764418452176773670860948434691797777076765605958254803317135989440053453998025847772433969159363260389149230732820659727289783204190926125200935696252216177542697139834216894651633966824039520397814727031305631464162092810951412477396767235709675924233442947013901812241908240551533178441827940963235192874355112559347156771240302929846034150511656117513369701911692714825909814287688504156109826299810483145078002277353459586069352829693472694396983973869576263530388376575494471893918798405449178241570044494857679928427933703199981922789067366008402008347342339234167870624135155394972005252477835253406565040951390443008548597376590173550814589905209296825384623424836377235180300364228400940463656110115960923797275539778835453693246898501767539617576244059103996753317887714199722455100313428249159824689342475641764918063967894081016992723941816941424402098774387469988624316333026954992312109399037677787965006049776886012140355137341985942538486804183561940838896336576775225495739709364584117062935426545831311727726860635040959326768200700112097898327689260077188776369323684842499231451027977703262697483951575638176885995043865724227347893585987282478526067251493081978792569032734772017923981351794988736459342701182627374171259256713570344410966221857635907712008549651773437070635734815028667237712360699664740371850750024381016625938354070317353008181740466103090944834696637932696659872295036957157723860419334934267558693344170683122437153276326170959219220061003539972699521532086750951974325287790910599684474197255824332279823634470357889519187592656149873498478423042152644888582081418383584899215734587251464055381998581809159913141574296626571594119684920530478812421609851136478428053013011951673263789068867432425862081184583631649608909906406209604732433540604508095657107236526486799947148974902080450255368824931579733784879793476122677301780021436359030284480661618988252232541157440858527463437056158356830863787603341030563329010635073324124542737865399234087440216648107693067022338358111699056029897385588726537760757071332857424446210455658389753764772695113429308082019237321616185552546309266806480732128586249230495425211977707590823778524563013889974610987004739310963824444288913320012088481874187252840828280037531842993490772322041018550459970455627157537765323549889865203861357689259457923992123407944725706313534802827861371576520653460238896873001273202508933898548266785381759436859125957054630556904882693029103902336160179944273636432055061045993315091800017407258400494271069686912286730892527943678683471090761370187018875332722792328307431393432177551461070287949936857310426017340291738690141195203967400644449644923955192723696538214114575856067506704566687792933353776124084869947309596861962784644477751534185693153268239750639464507334312227662752654063407494171173674296554694635709361439722120912549187126144136432141160488018526833609663758186933649755797297243459944561761317172445379541598863916430394462355428820449920497418669461692864670652909414095831793041626387926442106221447623680759978799560670339348011076731064352386908846413422659317811842500246376543784593696060584211399021440635309055749437906130823076375902449778428940424471779320612743269833843477601255934750066781118614402547069010407401838733090181315486048768373216850426151436793001610999840311427401618617716583316100123488680798063550745391796276144121962459590994365084261665313685671385276095409649647160639360910328491286145997832454333533119021358957340898035888413480449090099540596877911227627531381473423082244154380649093738868706165598928928980745698462479490351223514739373283423240848744663601390602622763003141269602424735811441377387331354173274088117875233612989172729915011638076205770612716149308053449651037722827342407763703546256736574525316070901831705924607817500195728811056955713636514866754902927314358047129907102226156229599026333894111305358952143741604151157187017783083355986556377752835256261273229798127768515048883285830370193558368222492589228011933491525230604937347328544343241783820178781283192908917384930672519691109911616284542163623510451595474612754581767478155225471166413603739459375507790234528906905559603105792974597320393935870812033677665407587972353215503031332737924814059496339673880093305313475079875538364926529028074226695536873329419836411991848483752383925055558709623159073449954648036932282344170613823354401280965165590964596295962518122069165263334843009322049917533086380906458612903690960791175151790723693931774167547188682347499185013230986944578937618860785988994158759357131396832859312091104347532217791352520365482230549734398408444817788830940097047588954021902848311726715284792818268801601451448042266784233123046336858708516763176730704268190975127850819857120967355516029176480830320852318121748969889752336450348812268667643905622419765222310705595845973976575264024974500480736659867492514777478115451518283580472624208547822790549799538598580876690630933542370233804933651344838496088247382032894881674759887878057684993226153526854259632547061055416798602899936015279961305477175973018779652529123410201335067723797492947206686576336807173549486254230781454836025597322512228560802735038247619766761918875749920782548774154702273076108459484693063977886131653666854079083774682934417222623412539637885231091918668264861657930964178097000688131741695539735023521950790331344647676039415136633889330453703466417420570957136229345020208565306460090421485898536372337590813832444134631409752742959114329967967735385217714156399873295611684234292470689565225568896680737488990894247795904439439933410889466154083393605519418353598158079350177688695638621235470519549627115555774618612429713693243669675240396524310962452384958933251475346014618992072187540259660364964737897710299042392936990926157463022148003622527580084848004214630025178086384438107943270765800703980524813427869974848979708485718293892555287648479698372724074069213519418414132296996557880661983988620054331864199471655683900789391864827833738246119105664626730243553208770217018418890481818753939099378914021756987084481468860018590781533216710690025473929765041907915405560333683570476096459878209286998512500800427080103753132190901141021032831460313141936952272535663213842820478915782768006752291641769121644480064151030479283423009588553484415085562550732818632643155759558880162494410498063649554554875134049407885453470800918031428068158543531307551133530359857414748409897722996385921809833827601313032380099526686942399235143822642457128487992017386268697273618461409942044232882955810470059525219037575632569221453141251015699345088644089285929804009574301672357432691796772175114221159800284897616807861045016148662335129145792291131042661248571104361589175764199148862766256562883235921757139558182752707857569117709194082741180886668401113907997320141994657705666451201890049420818706864744256085505517751173987788787099984736987957758722387890454232274035846429230718714061892425329766269652243417236185852105570807245125199914567099641702022593099949186127999639956859370392824666701437209084309850438212974768714580799524150449652084603934405913862585892068013095905153630560595619231515771326689691618786128031947352822310014567423699034624189500988172981776994299404139835794886163550349355654426932818761773066849165306761158129072487987692602430290067698821983516773877422040595234199507737168861696165009471869236985531355900146324235208076603486329391172339918134168027788182046337455431716022923454303484946425397042877398829411760001302877620549489610053676046449223472073615588291628277064420994144700679208010492364728346228789301188361130770981424321284642576400844342984949827994823960624086208558888963548943816844254461025061536743004614744332439466540927868954319625136639413416661585602400150438593386977349730068948977643621234720112291486721950897825166102286976449426264076534305978669847604517122845152714909930409566158647936613367989977434874794343007219183524778012591725460806826142219285840063489724837750508374573420120527022941897521814940360988300725704014524601240457105118560178367346762776684576447362744263576594951254193463764621037076254117801379279230655194865431385375733101378772278781526555177671059854775035916746815384047802573676502618491648690649636659318141236758297756030269767272592521480460277523787948649053940191179602835414118130028938778349983319688968260750463411985286431417832906086091416905385406236490803150738837267387200797380340410324253350688238823249956073308082919900781491687414889587636367854377300339016662340058013392870944791315676111042665323816139521196370226600312581210024930120488192022636518918745150493274809778789491270601871005359825453545945747043625722061455540290162454233684899056921570263316036812636724077746443083366020365579184596315394423005908287455228728971358714747440006895652620096494304679255185986700184991352518911739109043952946818988522979591423481778635248917703453290970998675340536835284609818047421117539327119077923940543136516874689595056364404300072137434904270674635034455128817613770728621099730762460558545397909959343563972365363455444698042114289114158650678500872148595383334730051199479840216279098112202518380808251395020304142174993131109671258356680541785638445808981873009604539024267028953899833989250330618281816201884359070792729937140694091406665922735672282000186331414009702085768761371214052193701967987290474470659553086104349973727284273476754507574077643661213371385586279556405408254697641135070064870893753586024940009407114852235851320712034438651103935040048908583577592952745341190298502683375350434803433360999943086928624963292280717875422133031017784273549564382617930918873328561293338744008311977004407595137672384250857641410721516983816641019681007101858050432196454954805223463830813015028281075022252165791884515651726428386921938324331160688101425832231868930626835616125776966723110636714927756628331687644083120208559604818369663265798488398792895568210659264009900685194864620405900532400045678010041611143024151189422409071234894612466239045736937741829283840479106758573119072353326382804136821235439914357566286909646177607944242777906588520561105481719489533942270329205587019682515520626540498019857202922338551665822578473030964506892630135078991316251752989674796064044430389630365750853858712641893448370252980538956916976903560515075929050056125978526771360299409054356264953056431810903821036610374777758823856855111309251500826119173625020758810974962022080095317758937862790780438026755871560666973721382952045629041291286559518416404508112906281431880830425960162843786417625772592218586479876388985023068947694555427059771388095109759449323358788938491766584664610661900959418380375496571748290652229962300153723699130931511184081160841170544096722745269413801378091260239493452752580064745575199330402902243442720421987059659359087858735146605024667745911052048738480914375910312885008195695925395183379940398741109325396504804698898578638747649120282295835693365287499409357644402217631403916674877111548474904507889811176730766071095766278002793600275139688149812722320675906500303872919265170439008278326008529052965274418010577798639211230817665409600374674922090237011473434971394887624486781360192713668611847546632185824107202285623807730665830788789178710551329042982325185045225972532942696146722118153354524718066331953429218253095710863222862431321457875553419687018903047673676812243473725728825379718185764988852553253935871167125493601880622364644406015192925811244439185681746481065127728884478178872327839556466195096777769768721606780730964308016367897443672912924699106470499503605990914367898969681778287449896657723695193195116976933561288917929548828611476677001587256852990753522500640364724292051947859624998638055938508796065440969399245277517170827993840193656156342548782294551519363372254351943550874171401730982519239610387256923111451643811845509596439237923254159501393061627072344057174539778240552954236890064989162695135482822626528629506316563637305244349121137931016724151676360081049112027881703577929673124234260201082418643994541528317338172754123165818557655797057096243517676991175449315160033386704816044651942121487900535125575670540895777628931450561986581047066734931863885824384917546623731793695983498265252263499082485540250888555195050693058941644651103386842535873793959988025879980550735221112819601941063850226686179722000431126291524855195594825197810007350075372081926601761106532569223009307406823118312213720936049078387433486435338790783197545353102978266868667340333542333300886574644619576285623041338109705781972370198971444370439978304696357347334940734953729420199797290590456872342771074646422886699369401262697228773269611803435425306203106054997902355388861201148035270280731278841033961917022840256185761127594920308312288363921259748167114280163063336783463993351154816562016924257429862811453657492896515086539659290168046471436038377245340284502628812301415706844081679106778853759514360618214803232845700820319561859457932284208293707427732099483676798159816751983189105978492866470284352997298402101494611142178751683257988558867548680545816168263179034121083645366825605063984667390952228747040060246835643316176646553500946642207632841366276279265814416840169478809304947416118139595232405553532211615233647215368854888070350626697363527417888052043394076686285361673846975481280225569147377435780946710303810192015826973420213474756962842209251399143053793694850015284780968995272567915924881379561529600924354073342048063263809119311911968428997470620633351976185989109474192911317792594693138092747266530163757455502972076800808683832278029430011177136501747345586907080184176537911150753463779597356458130410226367996906530737106078708357396509515201009067650536512486358574216900001596759252985881313204162489073023675903157353460815830052115158445006696537463222296343526480302493659100525586499779588596168716645067881323713050743873331119529096356144583098392601001795785891965545657562383796149118111664644986315799905625928474594871173133520126198314302764012394853821528070583813207295420066624972279819604117449188366950292526845774220467503040050936430389541282896329292648304170897673954656179531098979202712031608207684540163524976786830490359360629058547172392816885261419834177004838648238824142232758599543904218840938997741702347213886582761786133156007319944710181996986728340151263885417679368478101999891431167516195887357943955073657332281632395900638794545766320484204612646531096332010932427812606083071798387897508772035107510524486954053108594763048748079965180373588754971730532287614079228014000331984890052665878995368919922874375929707358102155150710007197353322922805762165185871185650943756057065075558865585478114128502815074029024457437548409885897808900822220067674003070610534495397598122546474697181994532565121372223454847440614657048523737660787757323039688144098377942376107844495667518945652672455896705164971822699166433441441558247359727085450152185293974099952312837805258924747404864508042939951796696175131211027961339922569765657047006421090879810107081613420009733725351032289213607805492132278355587066921327335662436168401850945526745769989943352739825430981133216153434968956135194355505331311228658350424564326327060184166803484514266928327311997567967965192116209949913936939514553528947427656153045734585952054675032837823563646003517013381805061494234804795350014972087074730915886583229548173688287359705521885670513312827821409714378149831525539797712043133797260428660261531243821174622991598981207223453901407063097374526313247859841585949092715522227004563827535325977858990531777500045478998340294139391864120106777236211852715507813580192606008874170401356843372958423087317219993953385759514772088506874024187286001364959096523663528527960968257855507516403859718027107534391473991533724191952266635494838545150606462825018426035784468064169153586252595080480736810679742197338096576930697381215355693624667372691817973654355590916771038767047054737141469429991649279040823871343783935371742606723569592438302167820621946055985742339939812110483445836897602177204434694488389376234785954624710048676255583393547213989915174688340725166351747821661569702870084966419970053042197124076687252844105106421243319120695463664602781472250613327481460477677304932069038021153165931586018322693894126204217308713626168080875980360677848852349273880296942556562908631590449334226503933375236237049444189597028949042025444748214785034455434683574395699648648442533858830057377215169960819936269504186444610716197822549791979392366136644965322178951215830190642228721364602954076854180337966115394513021808690306206821680529898538452218910844526616572171471788191677204065006434871681482359707401641411801437518082256716707469644460930962751597987832382915017885028392420892309835413959428473384151668527523424187849533835065188838841196805701922718340091302090855503677720791793164083024846585219611987025722150449741402885831144078013638257285562243213798620334819697346840932000363521033485581909360301277854559185055937209260165260385252625403662978354780824661174538329782790769165834246708984364451191865608146043030504865455011570326371548075862379839427068692070389153299148667275126287196117865609105258097098808725122623457221499039970680527591196342237927235999808251243494100869417409962328936232101598440722292237872272561108317017823983165926969470576201055634608792544335797382775945940521784585295121888936726991192036384483378944249989193044178610585108758045009181321981130138338376669048374303375078265378837223102438862472282127769816021942914118924689759548197429518408780167468116503210144906977612691686887251444390322316740783668705408357383780399685836529890713088664752405725622575007609085941948672001502964652982872252481520744391817197012587752361521401217337509170361430847036751357788702857978772705129129770917606978683914315168537207002833543928215434278961117890849343486794131672445753629269347657424155472610019554809012998971072869365925426268808314390809192541162688288632126277191102708834980577846691095739047924846553965465035088279237301826129509368863258639971359090635601897948310354579601549414159651027922024475147210901984560477081899214996035837549923880645040894537945858739552375054726169013311265332142033067521988918059809280698246586219608120276455200546692392354763223988181503452380262420942201461200637771591186557269876911140339328513228486981605179101092282653548544743679185271229399715186740765880165504179802014488639422848979733038767957144885932928884891046351050938572539694297355528462427756764751415189981609744208714926553522753006084206066741617694377981710371874503422898430086286645844736108592258088597978639775375983991553417591801871443055432957489598837124338082530625059865172559944820364900716750417496730889827766188657486206744774137703487304823511326629027669600671125760013895515572129000283157044801136430558372938917023836882360818626551536508213609113150406459165824686687375183947365480957477931195070250276366042304332051389463272794373755364345816279871384073788328413557532230716289049636177061080130164600651197407369647126135647611153127323910254073679647120869534411840312668613222256702648554487499232739591200069147706211870899718253041661274624337984026485779839570639770443813686262803478219708679725996803933757926407769252423964281010618318204955752784654411651818976062000448010734557000677946567328032568459836071796824627326217176178659946895704997574168732379613443647179604494951241704408572373017304765673838038235646831515690481744114391743606127146267186327458544682690856488651657867698637747414687553752170019325046335932419354040163059723663654212655612910974460001644885901248486579917394718622104761081950454764645592340636941187151374094052399423849164031116984955033877347838321952139578862416595045579173413173927070115103654223515420332238573041867919793902646893251441241494381049978479812158736180373096284915431238910128911927953338629651896906609315944893767224253260916620468675134030259682243001435828308870077292288266460007352641835211047689502641560709649623384661543849510715162958650006266922140260361533362964694800716696765018684883918452304628964610444469516537422636452443268514299170067052818048838170958840838066108893024909271431273796385752903108653854601180548993088621418523520368988003817683210163253526453747106378187783645715221285602385777761079714837622905091124420538831324485226674649056015469542041374975715345466375707500119893647443201069986813939355741369920224528647733585820638377068429378539368366296067931482305240943196334869463192729436513801624094721066486933344103975606689807165070492409104113688511377121428807597823908753999179979223901678173154558461005006426137079241188451117362505916148181932271636499461147735001391844912368283571328659918868353430765465440104283689063240511952892307381585226480799668621955791602724087893929787873931804376790577938665928769172194005317476696648391838381680320175677689849245317525845504770525429765732458525891865965288965793472155805626234712940999629802440759474785661756854809904791537020015352257275331980262384293134282694085856668950993202159149320429812468856611558292973381515914797083813831037566105992929486499747460922941824063445612025152200084841169101171757846988829903756753393135433547353899581548995393101231663994250222001793977299961819963678597276871838519610219263611956238661791233399281477425656159251713574754737757799177922975368884833483202060526485907690462489273457151780279330994981651232577097839227293542336798749809987563509042562598640984280210915394612413418140235678773821716773502068211632433765339612251953546860745508783628615133089595928485238159224890142093738313337426127731490508041526389288259253213357211749256607882533070467256754404245240834576331051727579822701598888483398258489363292539606887081658599762392055159321566375498739979257208727204320629486215132615495495302786340230794244690622094372405891279132582686866264429630909595863010452454850690927058610670966365073594431302148062101425879077283399959353151236562291917267734097546647437515434009972807496727909335976455438430462996251121787179408261470918638741827735941911283497931326468258733329466821343434941813826381631070497850043697781497827906152256574740020721334139581081379269687657274518292925086331157933618957405252089835169827982213932670238306484162119755741780581051806192511259457322100164478259808224277135224423922694771110337447620795438077197996534530021634138921999591630085220668507913413912458048349423865910239829164282802826081926875063713658115233961526969173099364920838985586353867384115039977545066334732274674357691568991231105826971413089558289005160739692365793034199080955464037606398763270111949011046180141215632667674763099275350962231515599433533092322136612423988291990406784586727457569096975248737473229585577080950140127150672597584920344803445114346969791451069910847395352653852579457351428967303954599242847020362561401497769889183640851429919526165354858045044289812678650903356779787422630088701042532628680682507493302696423768771049429744630421733545912272058539746384403467665478272542185955771313880121870653589157238079375644804520501356378129261280364223362970275339259349723451942686979401323882471560685832988898249393804380809104015195095299147211073882234995147897872716084616963074151851162981793054827559462582953211664903656616800578333299108481167322191843118217983688296407235823507228705011821626917097425441169498096134874266949601894027504397591867959770379269888314484000861637943292080449197000897804982820052440393425396150187621501948657905883072939443591025561074209909730214697975318525014638602922168950682847467723983110939632631500132141886301972641987849461583368583925820079266702501467824052202053881813432454343986329044918944857894790485351620819852634781486210280973579843985410696388359852819714743869210294874713878892417491243211016504269274858422035946623540721065364207012097755704933446341610442275394155160713667372698375739563382965966053980576870198063949936072100760064020893838948894194943373573646010186928331731508940255328340361389599446707592447963684576200615907059036478124823753114579492650670079685610309304535861997911858195474671602685050815763514745503811437192435561025159048395784511108970045942426528494583738526375958024550499776120151993356647613134417206556897886273844952124370642435222938784617148124125114079258888984173917935551779227747729325520388572126478817620617153206186029294735019313230830034301032491086185064981536483170794925650166000111950139055298553514314917346678443229595321594729294966564626303561053548380823964016133301541974861882983170361814054725139478172881930517479265152348454802412404881483439049998769155233825829387310506682168616563295891303941094059549596896849123365018206907392680124496177410141209643843426154018685113137716077918100860362765850613414085653076552242034775164969628744068003558695284692453870809112578782355372786089138673624357793738003163041613882589511458444577424098003877467041214882759510478084721130363085194255107140094517095559709406583653851197470572234931188689727883948323414389653751912546733096676632566178725549502237432016592285992089720997331948681219297264073562674291018482753177067457528184170322063705203197518358402943394572218953050267776055778116932597995140089940189583515402973733174240085775965208107134249888583522917369854011128348398482125908600827923781842128754832947665348597193526357781577403900229968976467220907320936477228453705751077241528449186556008827237646092542811692080071234290523899393247561252909741603398722799332600735233984481871902637686806893820568839097157285443148798261377905542506547156611031294492915857762664403291757013908355359693037052557249493477053980850115001557271469895133506566304252014903399622149389342281738643570540315341446614428496914795828361579502700185690045796232442725802619546812867087610454883112906698674259207572826027125176368337234910947271006766313140924003287684411545588446628920414332303994547528737634678480176099307395142460388103707542903934531805676372948338303731408919460814254300109574053051982529183756034590259447733723899064015225731016869132216512497911144727498111187519028330647716266755351322357683785183712420858203744957802651068839195030148993797825452307594357152446904706091345475678039577919826344060927778253585361374446868454732001772362830124635606996168555362679209325784367809055986272461469547391112938300569470561010283751732482484277444086920340663050389905106482328236836042716343542048643576689945142801038351966207808861755272785803986101169445036837236842473554358405533722547868397875165798254776581738824931821916425884335328222584461995036886116175440845254077036615384996892745019680666329036461828978995131259241401776931453854507609137649671940093342798370531809311121777512087521872765397561904319521272841019408387121964364533211027796385496197741315766403020888283589757325060379346302643035532423429634458152156614845121334977975572098033306582211359970468811680511276231610143220244435073780267462147727184814862932407721151246914376784633738992691091195666706309547750134712583562786465813950285289677438295028248460425654507545164920945800091410943939241967995080633737786918961725203049667125724511104052719882626192803718258330104480840690937159688298141812522366167474821056641422236531095697177982923991984362552300217370059540468874317702091434356910031474310090380630730127129888183154162542924487654391256470741045940625284132589210291959217788531691385991970068373859054461262573696022938313241269574654081705028974577209689664914068985085733825559689390707065222729020143084458023691415904620846279809588421426713139349623524201940362657711788807133444877020807923086212281594053485972824892539619943185982697702599825743844817927229880868047340419656318270291118713022954075815837708417671538926740904919666942514471955716759813754590582049557738040854368787870880138647181920042467345011189055639696731826954231568992518743904226627990116956571213304872857070919236901374125792970991601173340012408848302660737547825666128332855496847249948940899026546707596742833201958401607852053991210303966865145225619600304715998198385341198379556549856485159270424596186514584171575029608016094185477633289680219224689851745941904857018785367772070697513440066121309895088205284652367448903382646857371321257673642341173166478484042591560834242007774446180829488101013165565706175693446394278075460807646884635065521030044503292921366162295581167028613072098564154398934656110353466408044231728358705732253085706234649089241052955318909713907464138246249062205205332343981785413282371814347024180259020359442384095518602458990645965277604379505447645836946219559826992021943317713050911377133813589081182503550033461649279065710370009298049816034532129494525844680337999735679158831216353834804377439912183121187301835303811568448056008073796268515287984356839006142767019896155605335154953527133138491713530407988477673915567891955902561712314386350149429748779049024005351633042280126335307111848206433877031785442927471801275799856781277626466111085204466302458350229835527051813105569368134410878803931304343149152201278007281463685494104390563772048506902082029432708228732403376330148625640154302841328160998973002343924679346925017614985119989700744355960313593071680221072250740678143194421500127650994270089724903551263284824884069980451994506315060630481018394859600042143848991297744331499815099615993221658086196292165498245473069092515144392900561511692313939158155484689331081436318937765626415718064655197754766186409680840966580885921797814790329990948592012042585785914136120349928953774364975275699965763533112522722251797375902700223539436711397891315561850471309748523781570204351201586313692744679328597556306209782246374564831873905238329590508656352678187106148416622636418883209875316098725385826070379863266380521841991205478594719450982099162948223525042094764951126451627494879568003926872398437718120674624929797130341573699754024931682623809223350642469951244510050073839682263986049797596037077878574354871723864072294153606830125250105701942020200817744566098240062231193239921334932553439757236492628724628781225555896419676301041541627743344380298042637735280021873107703754442317496539234322675489377429187956046929200003019251195193552224238541181420340343188125254765614332822333883691949235904038800662219200233115147930340310516950715597447126486326524356237674112669695095552084975835601701264454320486881773309129537830262862193323276741919205783681199457304480123428865512552434908958426962282678106540371476453612706239148857398593633465902898871398504845507198427238188262454888688678874386684717178604889165954268715230714649420285027489275596409703031434506858248165727873640829199558775530570340349213033561407485219985265982686240404822147036264606617166364952349988205667624086953679107374728281576865429119796441304799152705772212599202217918379834435819937461765940635411350879060456433193454393473453873976658880889288023773034360801489339880389549885010852910647212757938403767193825717730119564741605469821080681834197428524509607390200599255116979838215508426601607456096697646063935343502130725788090614661773967088087711582691793023718506662448639926634384783893153614125364712866904942986506279032388470739340514418669512747921017713398218539941079515829153138672872334657822307897358812432515113068088433651528134163146870901497253916100650489243218471535758956899974831452780111762861763005387139381227908846319879461310380434615265136368916954600017026353678821897610873229553028009372068671400844633069193007827030240911658965168915806234773344046992262206732236213964412713056133580328369056226636066406837371289911351370760041454584401841566700341284618896050619986794853744622971440730250415980550395351177225976613597551239549988920872587468294394223242871385796313141388861963598995425259694828076351009103002614722893039485776103566112485491757377916230885722988973781723580341466177306478699690674749086428992940523779699715135515261424825806980723894444203063181312360584267238457079062349615349375723187675396996572211203051197459936178130408897750411200168945626511696792063322660385115195877973652651515501766282369299821698861996862179549518563249688383355607478600660058513041513459061731189940648791235692251908048134933308295817874144240911018329471061434017267516731800867688667785169400386959112418832130935369602715176835288564401093516457102223677697613946637341420813997352219172109270085833736682333273192324369922938955340532023340945038020131692324812311343087333662626701498585084308425429401001598838615151833540441897853518512409642577406994556177777576832270031581905881924178490406474357889355350590928087108604700636870126609879989676529637546377913452256722522562630388505466843880128190764655303547066399133168596789233815396909524793533486963673623532527753308572072000853355725802763713062439595147185515514799173299148286396799472749660128527584792524858709605769388419356940192330982926403867645213410664720506675960106945297416109892771130972574666074201494628428965517263667622335235607895940931919607322082917070469990924606942955744604711282346498976136646003515457451349931237111870166186939306889655451801906183014581892942626880527317507649922813776737622846590028793451780959028834285861819861309306095298298423587570821741375889245900780067024398492457363084493482490212201383030372375459128119791246798462733820376144705466314057507464292020876302663947360543074245980687788685482568953178294190405001411730501997981394231424095786779126482626411630605926807431929468968355338810473769416954005154018481480031166010644214128272834496331139977297918082908420173049481160826763741737331237127043738496988559132119513665788372159612073301348733122359225613477019458224464760693533703290330210716086927251129636849482725502300520704860699281028242367360941702796203112292655522008251225744320745317216064809026257784666027370843206299748995869479744571752772140447908872956925498547570903351278644219728476309914055093227422458121778806805575103173373295688929911203157461216131666584309834522830100254218831198959146504346351303954368862801345210402091852420242343635328362514418315831080339432104484538918920376186275909628185378252097710983297689241345625110870969436384316822044437543483862637192785051575242726114896288587211931158626620278722703954684209355029149188665542130865665700082546529562755640116524749636074785845768322377904606703997450173277900935486903606056008276031734463669793533193153833783667683967533251012757479190585588142464093013164311658162741877300456389534805765775379033005903822358816256953006826758256235846227678069699581530738464558538301957786228803450957764181729039496024222188238280737121178708356735161318066215998409311821648220278439849392286811908505939607631197809555624568176400774463052763149732135750855231489669710876473776825548462372584192019305551804312615606233394268624057031701491482560346973511801162481561364738709486800007994263668496990186840181639921600247698740297127228607090648675542479666976870231871466788983205006431723639219296861719615919901390619310023592736124195702625405860380926514653159707792010923964493715161934124144438922603036083159743454726981300797716343262026138329880856577096902629884059336200765655492894911496289401080398133731493488985114915617800305934639233686598716380251158650967003956937885615889846802038722909361759434234627337010229817297362778683737464107651683264681885943863921497989395246087018272041600310454026866973793106615339526942169245299187312894257860155250032488680909746482526159661213725834987572912922410494848266406056071496740282840863252791122289122563677880349173982755933311309514905320672127297148743280721668158000668500779273265695557435473554797140524418328569845559159563956830975536095472790555811719986813942715681810060712632389702241655038844159171663390954502961149417868083529896540117077448210310582675325816939611443445431186048611825705025458256088270551182760802405272561745880866566546897994784761332656826174298740161006423435913001896677044554545837836405318377282099317646968104135350416948580115438212874469340522887134640997882483514711822057410491097928412669159308454515740909785547400142329540627981207402407802665837481199290851337812291641087508174343001832415704079588155249152371829838740946254274902723623691741744000201629926845783988866538603142253468921320502372734551572426900764726188147321735432340644828337193857666321424716887491791125082185074843813393926180341988963341543123964913826029892010858071280067431857149969516259712782750320319143548346274758438056626932605243338013452671685257208277118061013399735094863717995234128491600925570988411224819178095002751958398750575429915778706196705042118216270896861545640715838590733390459356502786091383978978532355298280402387982714163030472008372217230698804622273807257515439198836903742335600840998816372635188486414576575672005782766702697200340134930847490774099139135926051442084022877570505300060513772108277156910481897171532695519946611731378661841154114122576544122624468521764656360991324589308804266396570978354137757955830233083028008445176418946133722104538811021327956914096697967335350504843956509788129607632641936698571601111305430648305688937762793040244776313222491104457194583020801008109167047600513597691512424719099155887096035078506292206573500186623614463400723953678113947277958675372389834289298177183564846787222297541985572911504148651159191952325572585516815786887326890308773211462425348328924200574303456770553978676908005138367301643836741754538703767138319808914897347752388614479459706859607344790615949970532254101974328141138168850676990906678824237947104787550983328597890984807941175903775169539688302396812015700176373261556977083153478584784856306051202059642464528479374344028497034547788515659179580992909441644327804133986308412015360026872002411014489732962905343331440529442548741419269013719521720894211966802754093127492732037796925194735336907527991500353921656142431988467656008995788576972255562333821716081386149711578906678763021330100527298763691414731960053536776860070922386856852325317800569507168538004003605121214140224526991130376897030693644867259911556276759683197537467828092784204015334960593499075046526744690923755945636733581149685617354829901404667583439274145459653523507798983573902188263170887184298129197829710391429310682277683041348562659549303218300995853648227184569050930302974592657205146205555275078603920221565240658710806808668607163136583667773457013204832707203523664584188913160033523386660885496474360898843673512951280334412176643057010188547640113736087429616684717926385467180444757234320209421160270018584120552225939331507905472027731515642346652158547270511237404976650443668099705560670486102346925980814600584900402324862795770907788689960139120411549440371413565875870222998693857550676151247782720550554827476469298985732785644785131227454190738773570810964833900469238580173767057765904218626245294664371806117714999232466406408239733629967313852951282336032386562989192592038767281642718357602733095226357602812841214974954700016684519470647365927569191405800080311623204919253142182721562549257748183929598101676806112723611377071219426717845251969476260765652526848656492753652092379934911796030206056346615769163945675144316473383345343114202537320759278801967828843026831293029483274119188398274239946024696081356241929179395671472082996641908790006652679485978313339354763110125698168274014017154599432071098442050394410653560032596551279098278393486138108331397641423850387455313893915447295184611218370853526714137680169215047982035885619881841245106707040574311786779204993320705821650602425005585021798724361734820306924378480452309152346227820056665684382782822262531015310734065912060068684617642308719030881270864996488336290717542951140088065637092168966570251861250705204248587560443161240962934642457707203200945839835961961086610092200289552403550653976032691137916804356465521984717416708698954655500154402281968281191374560761233284080893715934311489805452731495001373408985236092800407017614526770807871250103492097460803165643792377740667048027565999688943929293799752284023019851722073980650176736025673610436438368758047788839002416504738489170464198433270081812278147260985269779395167138651315288658610964218244593919947206527369768525651355354960969314140239191653357975709930667891678021041097683885980010978952122734099384061478008256943375382332016245694669927549958431345106450363073637970071316890753693373469468503426469519417970292531134809399944029182551895451820733890893312202201521796218082403165093767641684717538444908728697458859558094277948224899301572482393605021073220199285028021796165288754346493662628392838716105132938345804202304029610846266543226965563535172715147831391076214825190831290389636131890994898011300879153103644337406117373869055616952442267847582009791706424224135118297156629494260757897488399413280280568586825885313119416306381083186517332075819719685003926721570814683844422007255373521619205481191674790872167548017233610828865388416907655143361153147389249641892000617536016281094963023799892176044623836077278951738450312986794015703578534024286003147652966373400580103675723629569859847488995492635963430268272057530993568424805170978760785858007459358855010964530452661232886637552380313336803171053233311657950843238073435646476069385499648982674635999936702442303654547646796207012982751631337695555955092793537320579487663755049814017663358411126186567840702952037396316450052007684023697048801553428388449591106347330634610970190491797662621685220597167943221711806127572598469487526789421978983297361132376628471611806853549589129310824133049568069919036063133607841436210050715981335289726767118875767039414362276353731395991664510661726679177316444536334138047237435315140804728106267653041746728129445055831210717213709836438118806485468709739200284807788932241785193940195123548905463024847073662171956221663912068087849452426327364778982029136390357407076860741073580383156121652004735297087522553817163003445388811795012634272700285783361459013633626819123575613928851787399991895320300887957925683215251244349171434582042859173723813349411982146143484366711862695808598172821149536880407597935943854859229019685310639982280422911587881900741270089836744934844985689011325760645215694004061155401100923895655397439985284992700974081189202105253459781635983224046631531111653405275654932018302065329898629271333801089058296533078268054739236993001294818617525589164884034636157647429264398522760112077891870914705992567909950429026397519519686171341996555010462553560963824395075014682564266138453122019542695116418537335823160148819483858081709525674918774594876906806421667982750653945804222564141306374749738765019652737897820751669471518520471489581760024456046154805030147126611677776467640379862374959116993929882171350974650797074563572632091356278421975131628282032650899748859162348810812221576223877078748537422271954447624916543423076236545045497353514096456783115695644184933682076232171190408039201995385734461871201819584833015881220497192955689832070179956471518672941242578241275314140097627778387782491187240829991257980636451290970353749420610876738840454224544808127920590559115528141704893926566365399149313826760808924729686970905031425580000115604888152476680398542720812278878857828704534610610752277369256525676721952971146873209015210633353899047680384594027910872807133995052171744722698831726698808170322916911060488262166581806502398443497515715019015887959052087104086396463901274388955267047419300869724482265000902049116739709202558303063394439172668593170276388623413252533785272818215768518986469797178094445793941442047251734345094896557534916725869869023637735261761977131009688154485245030664870835971470281914789626797911573066138068511707679045610580521955596916985549254841730479930517756332285223389113569949508178404740280146334997425769474617350066123338412039996994764638085826950575790081228385139592349212095990237270448418147156569745351347354515156661495096661884244225939682650631738006637657044630147465800593799435147941871723917948156768864513259965703686076271082759500994168362819775569669943848829759564534163221996432239710526794238315345765735793250569550918059570096582763140493832483443363382011575930285633235490265306284579156368376241013893493742246141553710114256764237231784637269702722364382535838956233209467790850756230390220557292175587380087037823545773202803810233324646570708355860792609454709148009810468152611672319681173417381094916881692904583469233954392897652390408525268406229812152664646629904564818443092812328666202333208210849946054170300890042813514833337739639823536761127405259045979902799399254162512056262527524251811205238539691142656265882583699843736870182161354046104246655321222436279188302654099670012792669336122179383068407689798630598607636944565374824444378978751842577474909207508159955013340085772060959104098097784492789732677980289631409038683835476400681578232348183782073169373345391758617708507363803067628401097388050661411167644158262610541534786461820973435835872625247272225571068689970509478764821934114213587504371209860804338856930596722780798130412008196971062559674441258671684051188128988964305950231624821640792760058674520548376643819861571780296446058175151995119794127176719400504841720453210371526477408560747923450772509564887193591812110288767562163465298082094582124039949982116403689423282179743189057042542591022906609783398730151984422379397906071345085165658950213847529726254405623747290343251535484737351925473897553519500014430142127661342658884508888687188500247079748923475536857569260481180421671220821413452114209489984898531049853627186124789693411301117630518519526810979747373568992135877062001926916666915294967981118111145287450431887160504152797896753131857021178764866457109024492399502251386600128230197241458542950340920287745293018088126794244028317908877414898870903349976721839570848669137792805592198908882026100672564221208793251763376129840459650984649899410604932204941615999499594089573417938562765464264647386603407202711711371103688503553403267329190428874953566394922010089864509861196722181224250698914381472765903821336457656912790899780578457413572604263683331401885161889478654202467495300769382609382706467209888133649572354337801348669654335211850762006967001767204060443037015419646892128792078743044961515223868984986515690652434311759683609321679817603061759821321803080184716277453689656094475957747843936049752023601502910895184786498143571731626118327658766627622274136614279348918561318810588425515771150429434513405703207685239872083339669347477369459430863349624872152036749021039984977377022976089565640954860230853125192691572533211782523697561382469774822645042281479175014418741376716565174739557345594675658291245209566934713956606661894584704601976790536300887657685875409473792132036357198108021565662409995776007045099968201457880521065321467226038836908522189498859652803435793016318315102066813693734600601735680093995741557419975761485540635220345612101390074774946834308132657641517743254101714396758602758305341422648334825672826672188693045178842623523793563224247831218434852705494306935578031018097187296537820099990463635447463240630792861797710510282746159851574794625349145670682222378878401656146743992229293430184569622004675917785711746117237977337274165424452272298868595888788903195661579416113025010931275388006291588792241085505028728048747427231758459751990914434568788303717655764835407111971372796040047341790014643925806013066469477115311009524158946809552351639230703927810117074425615033489267581426532106117383640130808508928642285242953492349735112935516033985321339585883821260619576516964466839701357255564337137620017806082415383832213012705806250724841175752131247083884811313725716417378846748242353362411579193071459593743350897521986926752672881247170853441179635545933747522620367834737992481348964048815198678563509452555784880353440418242322468200893354618213412389612172677021559298760860462448209653352990917263263356779861269461657119385475833071296270050545409048049864292326224288568629904598332203217242196264710396386625068111933712165038578983856966249079702960716473753033603531637478807342982011366577202638617786725800124493229370775881793450662646948492480758070694111966640597185880166637074009258302171319315925280907335222058467888246796479363144139953711714928239529544128227695466526269648191065138539497495998873601676079913267413321084765913747523313522124330967729963263889953966663421668951517794596363756609220608866211988875859547782149772945142840039854224999831058344834501384743776517369476316979968328697266064499513281795481222740034860112831322081581629578160935245988857831018220553176099056215818076649154170281353235315699374384372487220957736124195729039781747881267801689855015321896126220446081680476875979402077666391219932890548673337447166960779610899653934265689865444479885119309797113038704175801912485634335987680255142146191705756300528209357210183939477194891784246251452357450825829652263236741440745071883524421939035782592709514820068154340546470657001674495123907018874280756278517660442311396198452498659053551330580107816855364346138504191436500621995838349212165689817878083143428121408328488551015037954718342048356080187772078375944551625665821663285208078212295908626529478462337885779960789682660312803056320773268240093832883383829227515209712153336595824978571081239678687995952415723393204341829240815095152464742501029706448084356164745234790520775549078153053916252456548013713391878156479078282846772408179024370588426034928211184817762044641689551121858923088387553463161962536430388721607766615845971713930527265922351311247630220401469117455268495611446391546518429205315993732706785810332373931807349357456111566172760851456110121069866792431314872838578344081437761912406053530729020963707857063411512761298378561232504413614568286567926377809373477215139107178518021567618716843973437103660883474835926291165737246364729523284751564300643220797183246380362119343090819671404161933572231137705596977312025634581012480774340471514492776276286489203698555666929821126605666092100961776572431679900830281532652123207908208837180800892076207698212982670423290132889772220581634290112463894055819205806863979926348610546501901422260371877381210693447014040965018990950767352217046759555286452780730199776719854600136935264197388338592491565491040566614017657185075001608691270474022446747272057422224626870930011204590036103035352858642643544401740193476437386191832163764453602723016148837738183743408029668519619124719919298039091594256849245909326921799225979063695929515467939762260294268837467724091174533865244864000471527661326072410845484013478149869960575522196876003841700333561421719799913212349525017079700526527134178215529935802792898464127095301552352524501477064373360948967177828010547963512147685844561330745465377524954643935884355701388595240424045589055945689328817590681709905902094639344235954749912524829995174315642861703703234764825978316425705442970630238276495042180366360037173305072163542105483980040022716957176683555310592532634731309613589917621533969393189606637719005990820144557325738038260579992055727605766614641324583212725206571389746448202101363993429534742292106791031946934989088503452125594261739913099563764294363075026265048577738837727445369658047393347733939493684458738115149826108405936229163892820781195580092295707494768797710437425176596866890350454740301876245183072851675380565105195094509090604200571004257658009871032276800877445088622495432242841956352544919553918079982929582001944736067026821306167470802058727802643928607078915354652849626269054960444494246097871665806667417832991011758248165099121979221745188191710392982815902125293921119129225936834093940734663171781505236306709879119791866049006636614100706031711499986215710680383405988664161266178699898117204677789396837164543235658235220628644510973682985218919259467054577643763237138106884248119533025161444900087973142989779578548330464987821855394047593380111094359593417372052954519252411773843435348055079821006020109994038858266489707235286439919214733796578304289237586453733664768099972752385169706126781128398689409596004656290851117871777852874490734128116723442019366638146095532653892042159682684953314705086317884613911882395502568029007420506270446074861700877141161450008953371606148485539259087246036771240555014345065445763305307711281202009967154580641888521540187825615904345389118240394008258507768878470589376526086753449258990463770192890189685344090816076349974160447696416421419672253813503726568214903274945641237691036429607209009350005841446575201618707872809729125061066302884198819585865817279860231493618345468220401191334632657365291393727706926549505469751844605027104025528313021310378702678213773897186183559967761520244777239630611603140932427056299826773469233728567865035062333496169508042171450975941596144250286425224469512092213752784300211842814171927977716857784689139152711834466688456494803528662821674569203598953399826714514687905044111159820612157818764612526742708891615836824480970823133871402940717847210510093819699843669841016294949557201913110497007434426560972433738383820133989685479342026689444822380042965586346422316723314396852141062241642024732814994124760968582474427523967358235883224563389535223070814499977605817552461567135163410855017375779887229425293440938703719346096461360262812160752463558427092510196965155618853204823856534112893475195590628755326660235505572864346464152425607677206971183544644389023307928786314933394415262182385390130703091633007447173770666955734288115736859990465717065790974505225031327710603742947899118764311636149467923029555089861363398343589788430444711628758221740413322571960196341004448762330676287110756838661983133793130667968846252431600420724731302473872123241852166964668856469673065642149113810037738638561828817248871339607331048209821392878102601246482136033580351126749703843791649392258066077617314483447782435480191951253754854240152155816579336087362530423260746257356780533650504048152275473545570662944994304432626592506735004800301115618279393659663799934445963909154983758904000152364923538381005187270686254840950520237396478192389492443719341564908832848488977258546179412139593199859415060472564589404684243399922274292582117451999499009181806092890326197784390593147944806636303837981058536987380717660671545140962829322696934548690251402685715830171678810162642010285985593612454001468220493345482851293162039454262322245095865829418547738825667861300289545250847821440160862820371362921152562994459491048782804374315833735536345517193702829424895793086445715913646378101372070912751127034662865394099620750203398541561533164750670495040825412425056617473404972612282175913141277984288664289356008085571128555435553431316501405236811139210863883816953581349558685580052734793026834908947211269411191244579089574963503395663377181860463531619981033892808070448322919922522910164253552349813377848586343729170881983212219357399205964579330836120277441576866077510799859972735424887616848112196229377382584110245662578876518570484568747870370661199808277803998505862672281081146799345806406944555022299823518752205534832436294050653134303847134994932676821111600400771749527804627959716811499124073810519152303944862412905791466002819377520994363087159192967749048629977726329436871363666146130775889824533889394517850210541791320012913365627880766940983549240154940167907382548519328987609953903378554399710696706263707690407730003959112658946683381671757731024622670065784578589925945711558773067693808115048493140671001271174388430293091563312068295643884603981279085253017505703420457089274035234109459766032575736116725589720087935046836456273221883173322334638986948330902128410891039023047055355504195306563767754198616592687517510156380996880010267486654697916552591327890465435431958379003042572282394396338670432867835798497416475755163962743635043430467703135886321121850252358002898846017841057521774922495157221938259379249119584450467820020206472078154290147633223632660142849364344269695715019517853100242930403880935106324142157838929786609460968876566518609664853827297038430490273990601804314010062705700246393076477516635847151984644709035208732364778273094644121542969546125679603669014850173539003470555341414039081738933808935217706103923066389395210723598679008981653132505483404143812687930143652346901414854705758055903620740186661971181463367134038105918855844492627323189059985483803189076917254150387178842292670280345503486353888391331160747289105458468148196046391058942569895613947060785984769859112191272403977641161678349004587063871967585111312645664399764488413597512728480108507790197995010449834437407482257109638186878670501625334188800753465283915966052633971619278621039854403412574807088021067780047952433483737235652664098317979304102019116277310481015430514695501226982396608737402833263612305138873187295587919756130619631563224383025715044560130982709791701630505707605857490139114107956868840079589751045042030630853425864047097668872354745477954318955970121204137965278453681155491241847807587545819254028178139752237096524816790625140490674499516349837404150610567456553499131984434687863910673952461071184605156841882005901275838948623611785051622503972666422098831212118692279589259482518213774595306782898892260428417740575321838770746261651582290999735053880792573067272035063552834390892110204734746785771048171757449089697662856611129092424916880990292823134824279432739853014199593567589405171229856767822466459865845655274818753088087002797172612138278057855023937799363860308360208273930220579963131800693417472654567802209291717720036313709139193034667510856735872334559842031528666299791636733656436334162124898027698921471568564422947052073716622200613493113728477936407564399803248984844329527461667204078082151895578073270328866514765184544888237279648991713767553168476160243566901557744266466190288562015522021994063287537403123874092865245348420262479816853968064760872620012507065492893411161205057896957922383777607678740161578715821198979770602416941871367057737569978258957596588099695577483671960563063515230089730724931769005891710034606962830221111054638588357155554854003739045272645714588442753749900159871366490282896044228394537697504244753938164482956970453979296467052121492403818044257683201413932114373290902591934001779592427889585224373374741804899934571387559650279602771804402610607488812929595450135002579429735372059328803099514539860087707663606991499630732220889274605560806812181084526656270953854589259929297585251785845348820253691142343033209161512592211323991064329607866793699579189628703808370014539599238422467831183100219132290235412549153565405566007712386231156831730129153964240646870499808260654705748938385407871147493197463095843613894597860752116248546490644782598114313199017341546273423197177074987332040988405407575207772280429407090791108797829510464552633979381848650756677824304630187403025845084646054294918573564051151322515539506981892187526260682598198476758064113203445548895368573493314136045999510498770732735124252495548448504836297244491334160595157578125269179609539562342143523094112813206616265882009068543331149285303175662631208750119609127871751306967281974749815508365738024853166163736087128218346016217142495950914006743670551171980091837790374214329305285872326077464392762471088486634668191451238991516776104972795935290961143014253982233611833480245778289258351899608104611794216300077597057567416883813767774897754284088348186140209846281286671544220329485512617294089318089065541230599503820149175507324272389158396899743659708964290429159105858731391248723909283520734486732220420238991364670966433074236901954124540149299131477847017136376291933690767435152642725216001281532553779978433436395481886939695569766509910394498875079336879370808079656679363487114869760386653592322774241557161110643690244394602010181208657418405998451536502495096349929294889793505022315811304937227524053470528217055872788469539489003560894674268557060317193297835272488471844563768448445965340603505671717698182562649020619712606962565567107601040673680790119098376266597549323285263259837101419283180675026277415787674303584531988523165111759695378209421752758555357620489067358353806488833936079858988754962946846536895375329499744902884493487547831708798566077738276939411425718512132732527554048803469668857007368064789325194129130237057053646137067937017885613728504616912134288255831132298267716239314597743683019847877861713517473257460087267383573263030694467749919629324865173653836498590174093691660703050629917227397095590630643712240429869065820230182517392093461368534632227595823734483940647401368729714297170938405647808206886924331634786352545032090656433544872535577860445413187238122000493978837213874039915039630127708457628890178031047313234167990726658211461659440797887583610716006986562214540103130471610611312463224128563549101451681553563999997577898944023223047293178670307126314873635891042818309788857825413107558216643360922166322685247557218712894347265740033171696101228524315078019253338388278967568903467040047736020202112281830916322459042430586138830773936742778660425982029018870047532934824748008020355233023888594250016758195124683766937197963621461121338070607309056167038489016272663301837719186681132827430687921722018423081182300990209501514362341748073781176374491895219029403323485345731907024601595380271307532621199970032181201644011200072349026664975741729509910301546379019999617804659669815544470470633145436024958274375881532361752709885244517126970306514136156963614744320305615738489427789677470300002746682600639153035249810810315893600647025819342683042754433352741606258636701962843147255741765749788819734483111135535333774084267650447835648144296793755955420469692183347742370317260205933733541455727303795570351144036929845556112419053849092335005048885098757720490801446380034254435131452261089786828670559777909433403543497486628548508549725247545982929903800511172091159182810904883836575693466394766976321317122708579819664342835849013549850842205592690376817996544304270843721315957897984997315226330887545918839236908270152959615110195381936684355765382122082514176325428347910287004647898068249981572996505198824894123976036526250156604633189901910908479480899394001267400149756468420460630053756655473892917276992574254467432302299898662704847692081032880863086556921617947326296749590270332457186776427711792361456237690874661630028491769695995595536565998729092416990630770158600966388688620649028400627304616242675363692739883015049495124450777251743832219728991007647063994364217047779282747502788759196500111838980833302184860559638089269077869612884934234678521519927096162601036191247945993319169240396948927526353310642673122912867159152404073736227919907986373106811002216704532866707091405545422093430427380962827336699560757124357264864959942191700925701048423675968892401379567951432561755000921584586486258810847444763370647306579975593466382636186682183270038741956877869377255693864934755061269518873976974541130580230009337731621194033113408689458495048230418169178154669718190040817827943784810647209038879054535187895150384350191686401223184596944293008702509592425657521607017083445873426346771085941061589687586240610055172327192284818115753409098157258485567824040325422189832121886358403063697533124425692042061673761323620302258201722849732763667690673010739060503264095182424525721241496076862805636338481312758866408796820913953599225550537588563623254017638456174743353614322128034507834476228436132367516744968836646995775012512999664405785399213619241785147739307732711084948885066347553388869023804503234909260501593782635934109013658147112207384457856087213371672546894631931635763590955112756852705394912867823609010628071778681934037075448645649584532292579303365066325433611016056049015623279073837353290824735243520366367834261178352753048943275963388336905630885921510667287573584668137512759143729433294694291351092892684668613481989074726777257837462376698519113591461843224944061668283209210164162672589318833292860267732790008752824220215222942078482439671954362425146520150374440805933610704827005372838970658410603490841794361289144455851092687020893943636706845753778121437001534369511372995260196055465442505210495834972216555641862630910580095480118572073959781118060506004357220414518129306371385711528948519468212185471954845456986031030796500885473441092345250384224544330220189487112440325751837992136457702320978900229071505257487448739619816351248321276069266574124397669015600109962705136100419878178516511092292965772323429277143687951880843211177572227891680620388678275458077753511794981974313256084618989696783162942211489489220340205937981238088584076762844220955076639506072760271892294887712647831006424556061834541212259201070481290422020557927141871781022817630225898266053316485793672114451240941031086618622758587273032771497164702571528466028174979345343902560604931976656516679923239288008969466519584293102227007359314733460978293063856191775411531331398285379917117562113584890564389266272592353596339283792389183205586474000789105296170606822896828430433068026908725760545838058014870326108353971844626405285128387795755923818101604681315310561918907379234798835389208484201727160990133219835341647042821480586276304931162897728206419814070044240849501510503902727811964451149516502462314963260098427815780577803377777035780862301601727689507553667676253334044453307318472989647326675714498501636791310176127528318547378328109888477416489609265718800328320079943370038267374528767882367642366072562234538376202257181304711000477805645792034210529977268423249800211125707513601543847489196878474038101891773347606560330496634266437717089849878611571968367375640297508494081063163212221013881742450690776137836921252612583232603524858100190677985757067483808771901135621125143053519950125279995228085627340422380077763754057057240035083867520094552490914012781224225861328528788596429494027581696690555496941530003904728649550385727845279616866777200763337209303972743658297078016347690329095895079328789162283189227317528955410444475701111861835805204645362203174195668757112261001892432674325729756577720634405715821707880463613592549690633444137390233087618219611971561130253670196583936960458421944599322985680984808911540548619653636000668196977083094191906340835300483808846556011726628733695765819714339965905549169391563778535854210464399728445527778150204135946713358912858103235340829246699766923935174796922752563542015489099273154305711390534559304699811757793234598330882668489060661569727550181663360541638980401675546125992988953645698683092268724621158510586200318552263647352256437883483644033934460839539356097783899528072334929607281661573600492383775242853533683183437802377266272170530993109809414709210816664401655442825905144170490880326300868863837672875061406862293256973795375354997508084857688915915816551357694681958404326689335068286099938853371941299768979658270222839347091477575120426766105178144483210837898558137201879859728733112495426520463417176940545307651812486472220248659153432269075162402329438039151278153356084798533466248757732469523521064234231207142500684229375629539823220603445146383025492595232153461318828587492540870265676871521067171423943436737642903572552052178708252985383060369363527794375673672117862493582472972473551306835442909487142039791179814517654920211788995035353731020319839562997852071562911269910451163776212761600970400461219587928450829949605922079858991652679554670139604016712457031372147135706381594454915691553727940802697844743086928691054530482910545685102487540400377315542055098857765163367401135925467499876339326426908740195092373625233972901154169382537170228083506532368663977417210351594145837484171043748418260479974027692079537542227372761233343613348330442492899235273851378894146625679677901688158514439059303511594621059384082509071467541227033213455477329356589925064086874096608157245101984409773933869537703876595862952785970303186616389262849400645777478511924443907844141248301726045979844262625110188319661677961780455572331405469830910258384831531912788955021925785504307473849048137803615685799422473830361079572100317280323806294718601506975308892704714078421333426539520349385349835116586334052172271590385738599237270681856588820175367593182486469255038717255757853209660537953865957348036317062545788255877498680399188729442342394569203904173466651692442339296812876243896250377991643942748149087167891937593521531296916592507612866122518887562778203576640762913782900633660537326944210443084473019297876245144826348199627670936866747674631495262753952094940008081143607472063925147388152840805995136588229689594244995567406848267138174930261875423000330558274299384992812359304751390427074552453299591840946091434999534822706553440168841750541608914776856350452669690251003669976412133491952954864031565320060541629083090397695279107463350269680685943452834702785072994718622447339569945530725906951197826739908072752832946192697750054100068162664679590512683773162253742908791559895066512249852618706093171502938644158263090079272335781043397161911941494236771686883572511289872942521490346586910749146760298449098642946051210414671898367789920326836584370273421519131440025525070415027433232198355457913594771887703983348163676779812085700504750115075559229648766101016646615293476098525837791295138656037486987991258726951069563493796497489335139978630879918494685456007128673534171377311969867400477373362598731379207615307491255538320246406626634656201226889887444614482082269716002573849709733826357121342541607787860105598004973179878011542803426740043234400698877130723306968021584298497303738504353003697953562335580522570105498323089320765383372126732098194504178227928117676202239660131599806898163000721613554870972414965831422775585438532200676893912215403076937499797580034611198041195602247092772869926792248444931425621507269268083253099008564262258718679791455759662130344811382974046562609637577033946396818463889188054460565926664874517967923533871637253114045415505830617118393230601476639606557943564671583674320273242044149880717315330515767689093555067297032901117819059558857538953593870451952707670220738333537746940304399838989919842592657602771275934847065902801461449950069479559704568154349950736605035428000798732870200433723162627565317305696310762584858507694298621722929275046170297018477823147337161905650893880244901425110800142713963832808077604570003073676178839769879033356112492162704083266320397929719978315626359344991362725613500856444568130921469866984682131967382694108005597787785449233826554911303245453272568987225239690144931969460892641826567779550996697529337050621985262196035205865627220733920504496822119872295196985702149162068054749244373029702539661779596061115953070201085327050147654625496847063728855441622331241503070544448313174492413133868468420375530743348078655712303636087258245240210009496148876603258881820790132733199964350139195792805576727176686297113259255449490204760626841570468993877441568457350929248237527415011022861162122690574041254596640022950053846426979514355534468458023056368734404500704625472914267363159366032920195956891384014037493060879471979411992863634018151534682166878933300042288551216958185923595968746845294000357355054198664613706432751695842698437978798132238885980021185458166909864002363343282475813950256563647822620913221429182714355070486185164333346313180923581953105370194628701762209587699745862427362514198266035977878644180782962251363614400724520457337976010658394451606299702032620725607515971808480533046574218916589995225037773994066320369265232827699674066965875939777471769091889320445588053617952147560872672549458155266238034814778937673416595282871192472413363072761621115966244368900582429059957774021259004349312613186610025637735950427319315909468354103812221913230373894994774896009956116076255147652294650262094694380747665593247284120031451689956595961237763841675503408377654824149092701586205665187631492140552312752131251440786901482684712876214643657363835193317949034006553736530436534293113927274377281376972096735849944837582916566952378333605860919869957187222758337790057987220030335648625631640545109301411621377448682333610558734157622587530475736461789561380945022055586569778611398733507630515240321320181979576595389922328152303429194220985771780155856865942893030699754574150157625155079590744121593640413604401272877262708189837628848914108091471014308364594302923298293548896649643712481186171230901781299803546351882408621072741953252861108798731979364863007179752804376360915619953615446520025875571676651093657756087395081427869735949772859512823286522486718657506121447424272280540480266354209905478983280243861112105976185021574511894441357026045413012865195429371947154835751057220852322866730047418376155152085230286946050792642314062391723959445628296985688849470132623675027223584767664365793292248198237715989352028394340639824692470757117133133479375231011787570723368265115915577951943250553162361913183942374222317838516477010285296964281357904894754480419798891064371887057744161220518103386787835207898729644340312663061699420748468004126134292716017537785048812214566784762727330380302580297021221305198065163897080720028239749065791358750975744074679932535008358696555764444283656505528349954811839104735134421158728217399857532275988286257373297499634191776533125056857531890187183868678824877674833372060110575716850880623461507012276156609117305448460644653573705506355932387364635794604966230415960159236595118139942022818923285193911672200236089409531866675260898944484322987541278702083073480154411731874039855166052797771593920499500834235144078534848572611225916671477661813941543996560456174815806807814313015577122657192971286945641413210772830060640511386651747483538496473496749817891820797377539215084998825842847761980307719811138039262666144781078136724032846136502902951897669689663939197500125597855572920453807468302514363497520647389928024673519296056895738963745306457549930505212994902478621731773927886836258264429831857907283634425906719326230510299150317041816840864835846717992043588581392411755152797110743083924854537838028326587324361438983682176768368745253794620954063628702157584673332834107680822028830540849655669675009859795325478742238598575704975412803585242976566782832145647099981585379750779567823331566609416080988259966665390942465445198662816131263807083488984894859331252756659752218992857878510038203929405007874082605712626869423478725146752374084438331571166167489229640359143236517190166870991771971826122900887304251235072873341822365731821563654516267907590882713492007142746839623954125304335179908577961332948586985528005608654054178866233085633092945373273664008392285370218962337173498597726909898521639678291393345564841430829255699212001258410807486120166667296507420634107075217230847486497758280787078823717018865915383691482820431888088311168363542961099243952408796686621638655782516679010083897219815091927684440332257144452142321314667857748400682937543894876999894940785260399543691476676267019371122618236249761655475077687943290894093239937494672041815255830696957873021409659156345299718579016201664617644996311854268001431472315339971799989184056646111159999735901485995151781002359467408371851719155701473470250858805624819301666257601311151603613941484804558057744490580644390137419037888665581912481494774594525459106918691863147694311635929690031691079796978406232464675317775133939529698470705870604803630982675410990196074214211439876713904589773664092734341166414224289203626893183358493675820689128889323056953124931715524184203665717400628088804901836408578407890612517256958824737527533986671372261628623866885080393568404722044231260127052468046080779919482643053021765338421064524146477497723226132828718392599619371233618749503582807466670977146489611034359724590394427984371396578179892737313060368781967898535636089267063562770830316018486905425420442827978982149420171285929963107106420614223464324121806586824657418879278077769175307022527796313227519082631047808885898740051315791628068329056848464472875007959799602199011614168632688400616271380512788694549521871470722033828447262350282128831110008745440199569543267200533180342563576155578829051508748518685173601538143138302635021739654020518342911169240809764178159504238168371858853902008131257111743519765795349111462406658084562006203375904917456827821311689272687918759237311721161164978754349404867708482124349497895374804902087812061210796674936661439932498573625434108996115541895786204625503788699847202962823205067929388812748100039738860081097437461628245724287936804893417644178287967096256007072210183332561664659961326148409796192371507521044479970784390896037949874904356677545423106793095769952534642720789893275958498140062592117135975710423953740271044980411748562642317713034290207750897058351525498896056617581711861892478296402973235158282036773008855675932338233767091682314313603238934702795643613454308138871308744410011094415815928388158281731668160667810808617201593231331106521697579324808359927717515630977502024193401371824395700491904401197236041323495774700624943733043410681831510340867689916620880503611625169709960907635978519099346536849723349130902007349862514712749376806521538941971696100088143846487402636486932770219528218305859730531932466449602366211076139400817290183081234068691636636480585684350400242294549455524116486109324751715827981848266648861541523275879065194643227028043175115685500532553461598770120863402671868574312179063478058166860907587433728334398442409078766948236300414170817649333442108706202709341085042583607876676409590716861699004100558178181925708811312489626172529601803107938176814931014063354743052767928843708540561649517145191867734917643810828383279498434796386222809159067317153718066919164886724993837996571543060566320254901544679953854648630199003820915117694758035095137331838314068385014669523600749347550603400611244546445240116899255422268180817104563542080913478965468245088887125116643406300457608976687623124500159722646117569110582615340844020672266364532984800119849423547360696492416732827052780116641376317792420633040669345284393570502193610248484438565863659529559772606093666399636590516002784481220999596686296216705692188448173943141093933635193515944344479218692920498277841647232984549565211132338255471523392139026947092260721378327183830851823679428398078557962562433227714215662948530890263055581609104088888121805973636445362721087961197122432885652669483708250290906881442322770167362132631030430478547643648840576823801069922472640266143325029508618794972008809730642120399161965498909707072562057531289388410102447901198644034656213065522461867841888550976719666293057414342572552778358781264393470783396521417737031005938306335686218295906762914117399233299798495181715629379244142586540711947047581304332969833646002075862153430831329135972538634772906755931284132658340385031675155219476461911981717941107585841430838062900358792107121875652442484910135332469653577796183791243965974070576595269285241985410851267924978440911975453946552559241417200113412578764920605847709785520995359394190806728432767440963070758959213363464012772968944019724956176633232910104680364944204853248609690087308768320128631767639787593582792815348115224530926759464809500260338484754043970261421956833295523347231212852433286202676035102479161125548574071392687402709296027078857774748985881054350474909845072642730256530701127621311909613663136548821944881295800492011120037314781405846522633759149155055879560580495983652861343632523392965739685790582482772937806671321917979441223793845672580641143641628418199726631214525977816298525633030649909432767107908722894314924613360572259398493109339921281472201992592591639828930829368411856707223619617256632943056297291220562741072916488569320648190254182432313391316908265268961158970246333197043720428831993682474610733282618182864326767644937968543816384511502865788356511804194102348841299661087646645681643422384813098941337238417047605940557811642743691470254732105149523492275766550973718303922208175844793575448894250224244315056816493717289430653173361405915131718150793775673111414383595246035750035529750580298638287761856135723287342048567894826016292800514549952079014783723617008101210548101134731906374301729500912398167151519309242782346278519919712088130173755829823800985101949219824164510414468872420434607441927918801629618003058771160147438521109016437465457081614347643575885425574482140284737664992113563204287311116035397712470964526243559180414900718001771516637592671115288063117847252240050959283326559628261791270953834052449980824382243957314720733381541436909391422500031614807140073494706614017866841080897394182462123873018512499662675149211358949374387052024492653824564970889206322687810934342724673156903970600379876308900426647381111557801173456405863307507327115701421318411172794751596898489968953955331649486273278949234910936790956360327885847194774142298116259698986606979692551047086699206493469342892807847777274217503013103385791375500327072880139078006291755494257777812135434626216423364507420399314797155241690357076969713095521886669314083928006564783019099055635660849205213513353895959098122874164243887911121361685026357029206960693676322474001170197763716502465486149996238715329321967916598510790178389981762571161775016201838685558690377343635969508385429084343333921791348963125149990726891448373421724595759753946177336987267892847239839583574750926153397660219984228373490227971239468252031658880730779449601451558669559892631229211297023301359528276548178291831976009212488745992471935223128255844988603848008505858044778813117832153377375730550286715074349476706827180034020045179736426991570859302144605310945767383365481780169656467953870302722869710487851970727538023960704075812241085729964278241074716640925860207069657750627916578333391026386963997362758699558768622739768304466256446564344113405927441241290087905673638371050520021752760071652793365591916500832096455024798105382455546448123859046669008606089262287820450571477109129673768695922556660838568735477664525969787609810521909146497902175487141772591895115115456491851254318980470886748749186330239884214904461471657328816464856936145713557050277592508453140478551023251598553914940621935902742815232948623064879320878518071417032588203923387755059147350633970017086812232277764402889846811875225927349381032232351537648775305951243813124573928706908289973902192307413785125924225376435110245786417370091719118449393791724027727644884196827959059190127332021367667551441861820531411634016169210713587583278264863153360593224804562653243082207274931796366274061683883513833732591013827452773011880146500949412206742833627312993501254298265209945984198380641574558202326455866013122419529772378051903367391399942567409116665856619074403979537947142941930959539911982851353481436070011755843269880090757772921502359969162455238251643209713911276744743245365279993150583476308845409857484292679480677199109005948000057089866282240743400537879382314151647511087740548447532630939484817169884658800738957237009927636892258872662490578861653221380152720714304456967984076491531969088727091827292695893849483681353794625741935527423259152347461933767475972516072310453569148909850004223281686561684833492906088120632288789495829299309506299577850001325224356974731656197354894595973313391957321610027728288883559075089522069418463353053255129699744859147033681396094812405905073649158794108399516631735239951956412872260136070686288162888761844771825557028544777955126360957059320042846703311088168536317858664499010939061023163775231266922401986244869876288678332864817485549640990770333702084626950843620701264023611636468679993954408166773775418812109370469066401073050927177052785860983394512761155284821215259739926868772562602416833466179177857940481311516469303540214141149971995083017571587478053334519072597320720663728724046206539424970415911913103138077433503116334007244815135166104701489129411810026446048004885069686930251158288383760822209549675846100086617041277119744587820143824556215408430825475221948955267945460042518527835021781296358098835451669440786642923145309758905204518817306209081290130743440170277746386585381478249611484501599916760432884989332610281558784585149635939953870277886338506412686898713450720077874845357025802474765860490652253100544925925334917643309326685701940839511941293985585490224660367460296488896226931014222551168373242212807292340112417287012676749581574545689848307653207105747539657066788623082657093573893063624462642272311892081369136966780758882339982411422337446161950058400770113936497158531993399108410019800510269994484113539945686028226830571411617511737114839141712503488772130168923523156832021300752094643307399402128837524073233281178693872475031613607564778109446959843871208305803910190384313444732429004251895211467184917979784954574559318483838226704686027163740603836174167978869253576652486266952135271908199684146673251444751620486544745594430797404887959895361017990235772400568815936703263317322804966620378398148946191320089426141074928288453759777762049792713490470615326691735240284606037529803951547435466481214235319059331017988140811322273344330839536273353552784921005735515816114797706195122066414777382701964375611759146095038706605778462501834194437600648612111579509387828739164067753337829749077718499862400059805909008905288822861561243790571671564858446992194465122890869818361653981968732108536943726875242606671856264450089599985530195652350442699436098809187629846763316330380150266168219581838941323839647623017227145828325630018741320238818337993494759523105153224511182611332208054407851206847029406049623374695981242759054122384522931051833867447879010012382138040068397393718623115011687386965128056721934284424766570853696519504323681177310078237247020886020068167880599092343115399070733756983931822856362999056468979695907605541320889648629069715445589906388529366480859584884524880621700291576164500035493194453922253971501563063588897380363267806505505859028311341094623618400730239943135142179923973480860757432074875840819823307447189610985682576951789591593757411819905942241944124651859004903356370889071191698708441178160534432410574192316113584970809733049412898964754741239514136522619586110391782649411509016539667781481829700472398961887241477257408696862449061522578605884877392396707493237293372081242974730052337789972104861856542165634660244149517985590454636570313157266859622031014622453531863609178682046065604011592121298583471911397265025005748943428705931842786539504851780855916584307523575605545553043104987264690073634306351266317136054142067937930530279057595397204252355785892387137467028128663325403848793897924065924348673183896223070659980762598697841736757708185120942502088741873277891657183661727951425822421933737001521074011531357225817397320604225505247262158069151133182686301565084032630387450470069099371293229609123954731415945090336348222492000971986090602340897754130932835868054619303947326495089492035334469406346595165922465521484258817010652031723177339767092529074933918830619999550984192806084133199680269841663574535907148874123931247461187054404404888645063159881074968241124073160490977372321785937925746032552132044917463145644963360760163655683847133961349558553020958853522872311583341619623956141106607198172085659813965847835525127584100657023522337719143772176546678360200639704616147856142943971323267273775169899726599333769428666531993555128760561826770072590055869383568328066062833479368199328452962954974181471528326021627544405977397084901551235804800863838707752343985612263568765700695546060897764944207306761461983281091826827122664902995623839659400932821920746003684344472764663474672774932699708425615958008169925102873934935674133282415905557897940352389239392711095513818235105465498548473586142179150913026067767547234182199869858805223317395331518249388110808739724231880599372658046410552403710002869634021066605615913774473089391312570118111386056149358908695222571981993147422165224041309868524914984997479986192645747704863673537333880261415784100748877805271884274492723396854126239272686214190545743905136585590939123785234752453569971663557406966505277243713240139896325530169332912479151286734801554227699688900764143850318394470396893227828619117294611863061967554569563746608040005889667127539842067946036843807882331391565725364280868431459226788490928178034842964553022406941935589952329438003784091091283029931854668110163856824900949624395984953045440418318169899487151027096378549320884276808558452238610692509041342090038313855365356331060554276306738946763989319961036834723430828342303600331065656841397790633984272436131316140065601196490591915107995425836602534356380378523760247549023869829825481121463525377042017224702810920645075878995538887924461800528787736135702933886136622263562241879044486375430177636308651873643302846050892854272019960156349327292026230266988291295257207109482038510092875999396801430320234972681400170795472742237873486764803166145816436948014788266263186467886746172725609796133525350728950486007508611150495074274209396083136089600180501836767850803839486240811379728803206308643316068346124628735473907711281315045735924398392138992436630444606443084554865104203651679853023377862839717813175507944518815040218922588680971922441271370710011066258828818787930015465728491061375034904273042778056621108184242213928408357483828802029753947717975803966197200133774100712795080797489940483002618783309223576668940913165754705833378553284683353354940188827176427796094105650911152714653457385144133136173156600175372984990466200803034460143597011176779069189229778301118370009867245830058818176546608741050032392990527267426450438252696096583284782824447403994194455068731397253504889633271740155037770274792610114919566620507650380449552765309212865106765930677704366129845757806441189994820729102485323503701122771417206937731655244615381591223765405386169481421065806286165047488356933522173559823563995759207109613218804101279018260464430217799625616671988930939281434891813474019420356593827506892873564970249561582313183926120517783881716000728209554173392125750136584341696342904131965364390894928172869412935597677406261062005394812673590907803683799408095538849812854264777049486447901629695256739406181521577585495478291178053462649019546858120661891891639422981285233445718388989292036120072163545828833242760390074822017278808802334859794928417567314049148509386910131011113173097315740120254741932954753267476121916718410904127658737171258240850186422130402563773178354270769292514624025641243906228385905236486254686735647518829095544856702792553622190764962039021051523490549468928912565942328435444608496552595493230000064616377923980085518350567272191468972889924134162930944338719939707388330645651766582358124624913377903428736440624649379283138785532278973771951640162697714282292399857593687333380005722250813782242925885355517452415215232291382819304233396724089722145253840094601448459696770592997360041230076486852702402438747907262766148706297188228344270667567971873857667829878118356716221950906267093179187080028093750605677092631718945170560200914784904181965977767675793682031827649565330493380241710312760187309814164068927936777668083157034444048749814889712482681442863154102435491509434328671590010513967190119978253184796025452579403861731012485101283283941465117392978883841838603627994217043677804900144772830272454478375527605817565360090549626199938437839315150651666002166211106412775584188742430440964245395609728432830520530120399271494435427433353749915342229856863093114655818593817785584660599290604213698713907753971822301557254573264731079091734640406863888996846827467912287240459442044103616375369438888043916555273873933156592519903971344053841159593881158841809865912638764111131959118584851696036443480168377226118700211358547862031360989633733807189566742423391421627173865485215823846550077700177980079702946490006997270802858806333763669666536721834033085705151737548473104819785440347487432644007708075736857073737189864237192383279247958255952374274451623802375329532092464312827236605963022524356687273943057160682964582134466527039702530826816793677997279839619915992811094346028206273854190834124742198427331332521282893813861051374894068524263700823667561306522127362122218568586467237571724395574918140941062515920514306570934099525252065587024491533462564156827153013307393536524890883825213441993217309947769852699258236619606212366389560516694529280318704353526565727044395713073102994956104818167171549569311678130155166273904481952390952120615020902324374590025134286403756393468795006823487622271794853038919761533864847923279712715334706076070891412540145571105830443407408458482295002838668170098194780196578671930232156010181285634420794277612602462892179273472772386518627258989586392114870739578573048310300592772378390295183733544246846030511029931267678952253339815876867361800689139258924875618800468460477030908028344479059497359680948326107711699240653643597104006739139654321459774733770731902403853925134636327717794785904260263286217343381020101061421856729503239188798659257075137345346543284331192349554474532770842858836587985021882803027254596114245887155250558248928835608099065808914205794253936140640741735427549054395977195273088195863866843501277596816352431843307375586540334147976788033543671020637241038546970820393002817491343285550051543362498656144761574882221859259359000581828371100379046186637265619137210060694628167679673832049821546990859859961304528310200840090385027790500010180197119119272185201110465547165264364477719712911254295667846705431217794906521781020802284438202316299890385386303174167694039430107793220779920906731253487781855847153934572109651249364023894588035322271525578937306736488539568351132839807379018068362441525603841288688638125943307027849445410531521097789254157783023201067243431520188468736220341739633493572946507283351713678436370221677948711483834917089715117896547870643886648784660471768885491559766716877002591508436241867186703834975602548370619884299974821168073429309716536109779727130044257285566745433312823793646596106771364420569551120680428357890937853452876252202892734903297134727424740049446342488735388310001783814216702317686727316480197447779361884391659308883511288230832542133501717730713185609707834728852884326763999702401570391409337219539272165009105490833420301314882872915513217102002605647181532855458867297101586771757869753236771664307414804944209598300054866750886426161445053209525383022937565595837064600352565023423604645413768907459343020707230762154137380876801825134053133279273039721613929762717667918309530821751534610215456614738569482349366131963124778256417311142848521413851586660479718990046903296904548697250491754291348824498297087528032688692001889352637311865630544036110282216168374506076963745921434380096319181230576171023984307445429998880255997451088087622549966728896160823861117079173947474872262691172591355349792398802577205823094165316558636477964283806021658473121534057534085992163387839001207487185268909014774651336216788556430863914963219000840033947291786039828885498852306156398487298055901046167201533863893745898156404204628488593325759428812535032252012454602236622479016181313580444701119374881545604318438643587124635564258312545501184101966521947400787120643957883707289804470500056868985219935269377039698996418410718060986174352590052542115308512956584619419559593244492271457953780610107549545740621555343011590066691691839119620171072757564764672075828955022419775584221848067708517803106927516171751751523606568250260850594367326362746278530077283614390013449225137908600278709468300016955697273829921715581481257716520637303895094048209360128675719714884358664694021170065182461488942505472307403835106499686586619708724774667789597469883968723490554444534382448508595930991354853466476250838397475024652272696857130047379153561326440682381981285350441931311381123631741777631713255551098067018080939987685429559745535137113885249144580304703422407169422295569028513336278352333723358401804350082989407749273239860228002642980484596671218742177171515721910586006702313488025445601537391008066415000248220128107197173240824499929445756267606504029874804583065484958924320468110556696686272661231924612308485701391913297463416922984872192639271048824859390161481572160602879957358641453590569009414873888917915368675179257802212550563937693390623509731060623011195765347514299512047796092248503834128335641234925268166717885909426971657834315060691081628466915859667633042230077528892184112696971704770872106101583051454958322443196784769899712948063029360447859316282770340684753182797777118888796141964197496849729692446878714339446492230351922521511208144431145190727957064402944314537161119556061834051045469887648796449907235278986009966326434286486061478425340611054933802014805616734745600090025191902939793143316880862136975669646506427739322724131677455956648371594525540818869364881282372032700568129707285445140692923095895019692463186939820193072778326380032164344037297469715629572886136192492406003319566290478526043223919732998685606811484608368257051397110959960686463575582861561475818084754287020023060400124608644374849228011471650405936707603806318063727162398248718550060295819240084125375567308896690578865138879624287777020779594833865448509332899998605262091272688643441394156475133038569311458481170136967481478416497868123414333423634668443154565103396245275548602336283433108760589517363462642586996734808018629740660904158082766769828992426602928037104794881612566421898858522942223242937162821784340736692909952996734636484128027584651390977002343456316885936714141058281255857002436272785901302593955718559660835305012166419034462674322478586818169661085980654838230844655672661825510522958984831909419463681947439336457523303774781266434850256933139055246401336623301062458416134135199404637910981910081207102090429436562367482930491075093162634156464703236010780277463768931211005403772390193991047050218612310335251198211526372280480948973163820624304551165040755176514562628206537054383217825460227170203914915328930037449678357142710214004868600463993553827649790684559956740582553814680963418593519541016749794502705768356199007546643156127088279014326384386799046683743982665566695551527756199951483869138672122381561429318207146602950575566537722948653040203079149507210894884312420027757725744937837760922123860714948617963132870400800496002484521057741054492724827982581338578918906724333958337427225453224079030110199127295265848040735387057520033931343374649962245908391026085160272417630729889514035904461077582224257931265896793018349772868236339280226413578974916566669539082628201219607870833871644236339578805427226540976535819260243765186489078143609693178130406612266036835913290603942772810490913809570484227877204994568161400351196466706888171835273857044101380574363132488250221311748778537620849904401714230216417187371185942325090092713374231674617929461125900627982394095976630442939979185450046145821100468274285604992901662927869586341810696912689722152009547452572228836349187643860046202425227893832979187770504634014085349048722446153257956746230531697461887757631207337389560838043677118218248709826168428621853367396520736045262546642792388146902157344104591955694492267289783273916265616677794884634124981095988094898108596580889041593869554437657601952605824472949184777268643823809527805436362872991100907320660994911624719131474696618473840979048072446461009262513969619744505365373770092612164120312125488583137798795906757586466497236561587873135702739243165581519378244872847331132400218854581322103285692246968839748214663110570788700171623593501160471739482752243528944251564174184865700438542424278662658245423247448665181878547776703607717861373805726610199505748017876736798044325367858306445399858000405589150742765331102125667217752627421931306493894709049001287190593705509463327100840575136577196691695410232041539125403009795346501797605039327052087143214354344034746326566860661111121811767421983961693262077120462181827739368433294032486307013019939721868381126623961644747104888431430244242010837309517622163102076437786709721083337916229334665603593060892386708792267158343697137169809334317904780718380470296572021419151801375384881632482173835260758613990126719192428466818216056136857349796810632401301926952019091468763439342186242212095411831613999726584952910075821090022215144856037041219093494511305343991416847001294041836173665102672963111989939065703352588045152092135233035195802088104583532395882768536377985609097624856903787120216021200875891076174633944975469426730618840018485681080369149130312744913476695912800192056349159697391745383944593574977543224485915598789841361196840451221773237563128735169421841194602507213104371865675800968289055366368204036376057617500677750891767260776385820014226600280320357873545420533057377157066955430869887656578249827121209540877857142458250018317569850958376656162926701691200048953868004169934953016777243129442797873181607151401752755660555534857363740342403200998284272808344847430524328261250612651603723798325038383895741251902043675336151320880867855218228203400802222002644688689878405558716410899907327733256939233578171650349980562027178646173956256345529019725050676761600040913218127240377731229851480509582624170702490274473940238787896828925926081942920193877396370413207388364865244287452795225156059943131337369604505695764908362848394861565653874160090930989461874547360868035934665191530025916275741258906141364870955825064627743656171855811434806655954773169105220634228384515601018034618944358315000181539215311961181015719078381870451237284132083251293955060413576875414595671541317766647373571200146684974851144862795866024014762170990099014326406517910489545166986696338941799499730865745351262100176319034184716113845002428197946397341893077152744839830391357217312979404211879848706785343862334058537279931389072295741603120420715551824017481435176999730524511118929635102846233582075568291290609725096190390749524253975103290276265337588788193326298482591701436296807659688242688346213912975371607317238158499780335562507205347936383575049502444066934697482783177696546910370893566617698618281925031973998428455715364949085196347846159492749866109147601857922956376151322755061348721395927090874725842097168868970146765636318403225102650737052036769494589408991824053457886319197233502344589755304952968081391917322187621077769482815169991446139963209557873466285759564236997238008869917544860782379111495670059296627393390830847841456588736173646845351185070230918834133444481432814996529500524928956599036083124305733923841821396389891814834247900624839340090935853633695151916691257011538294622803396647429709387030366574257814246149257830939110304592310423036220457613241071807390206636209786842448015179099912168810866506731278749343500735444468028672355285116664620072663016059278675349900742186331066803709955400107913984194967507053160835365831461669288916755875287369285806985656816181239315045466856731722757159809955404729506241213752767388566586771166778615304102131835978100469903225158920607041696963600049160443682357956941101380883325180345042893391593541718612667334314008189325976805092115952427648986983225900442749336347515469755690633073316196070623723639084523388997540170802790976071934721571857338370798573876750582965148702057733221530133197981610471142427148414367608951060818902965129489525851700172543195264008259272413877765304212709628096758159575172175594788763023164958854176969904541826682789504992544735029196968023343559252334191817136576319593555811402536789004360062408660130602915763178421797972334758732100833983818381876112580644510448596059046920678042850501579421769241298502673442010066665421802823302619073025223579916623918162682990369415833635003442806812438726377699401229283857605435252847871515055789417548981655080796045714639492975929494567537365373469555026820408767719773821372231274026310397129629879025268294867164964918075527586532012979316423091083653094658942424684303809707952629822317100752721612836261582154864003951378805955857391875289001638787940853742621575493473618630898337506390056232367377120761209291350034803613192669003324779631147633718155526978936109294508985359432341631364657198687702005860624632063071535299300376340626854380187331471844936730797075411148595490802509415711946948802652984151719737300344231693593052461539961960669390032893287941276806475403175313028845935632427030499057510888434104902317345027538569400619189267348408331914659885961968260305160223687486517481225599795219380652085204968072296936092909185886540712537533511369142215682721322596086647244670474108872207620268380925371042095762441100178705466831861047723824188854468217885372446303886739786866287178006968068422616808950935502777565777900228729953633403627105840551945323481106965187918274519383184207380962838314085569127253884129741681911437229583768529567648973528245536048474676286138010233097617469435718253569080742448364476571297306102086451744595055345317419048193305920960894443838758707235032978529436492287636681551490172169492598634833118876207300417828522161434040680175431633278915884588119959151138560793543792790857508544997805548218399032847727666933206984537808108454427815662418627550141357874896308486758743213627457605497872246357956574174904906723688731067404529074949984571590133062331542189041887969819879389135726975495673546320012792979223021051834933770619965733839952368826155190386870362595140647646246791492471527460671478829910653629310026343250356910214175626660406586835176867224580819039741065353544384228589937396464413889504179363655684049869937174493794275004451060630952592387626536272854071294154337452344134972733369319142297703229740061810141349487109528322747155862068970185411732230658670676570783510594209008695291429634459233830217354975355065437315941236750865845794478520849281234568827548042290067235943437641676870961898626100585167592937553228185886682850411514037180206432967277220746250069149435278600966758465117171247050528554978024225873886305610261027292430112175372277054160587396495444994246614483767000555796339525468142217082717435233641363036560514076469545064036645268390456966851089172903554008510836127110321386504594838168703494505444111198622180980237245253144204837924275018428645628981798624654932723330130825998355697471162805592394095639511143102370329799352466484976780579819786567429766517924727847678960772900561450072305628766207587729570051070501185602796452579140867528435545243351372952701567148545851770197855220542513810432663985657558967302072245030133353214500081491148519996312958274645064298458729990205982846839424809238621515241100790412421906121677001633396048726194219187973581342534107142492479097743819005933466954178830303636438592435034813758723028582464854918464688288031326672044631984997315296794617644758382600880597232008949356057272871059163539290785988569815402725536021621202821068407172884887186009250682054942921079147304949379866002270006703590468549555618425982423777107715995464971374690043482147112730619498196927243306516564986656623401238723651256145233843446652392616537634550477353838578215562810268858320894159528925377292504076509119762754588424926609422520100345035974690268257309033468681519166389118966236127596220774685936265138983460968259798345654160517415495092038244010314216958812671834593473365817068167293706479782029297473236037986463073362342590436857265649782952126769020171254862581312496843239189584686433710697420629816568675728572400453315999326690629948882692853656392664556242588942156497429582792397752201489458192597817549380226063016138882329627096131322114260259107523048830980415886506242684621102121823746772138474538472549732863068698394595896917220363686513762851522659745341496186879600666988615033139082654760931156703378157571099468454266962574142720209837070974384097819171281135669324209249563071916288271450249711830746338920053852431926830063634834838677370997745797998870208124109375834296070026800164430871185427305468703889298683268167711987139139014466080822713369863273147484065831470688434802777083527152243000524752828921731327909545252827730603555734701626240896175111138297297228352846280969443087915831444879345563860363392399023494499486026230743512450149901789019211582752783606517991973494881566497750811511218867522930207233096987877160165940041194510896057915028294477042427198831280591993544013212341725616893669457280957036985827018190548934568814402339603681347736124458445128474344975737167448784715751863277680123137768815306792171090112082306364667237367628857676863451666046362784159865247306046812243789974580647128265930440302379591022938711354944433235390999208845579395528008652417790811616624679291880501897406720417826676586299459260316285802605081460911156434081161640733595652038088114309424336390234070078149428738020483091084205512822385661909950562634626935354953259334652351002457473392696599781099630156444913449423939179683079925545330518027752735502831127046452506282969449317460672742479355648400359192404091080865409286496302107465513107386569572998175865711309323643998697886873273923212261548940061031663654526793603026648241889584754129584918685343114460421381949828582282408704139174870685985501425338924001331561714040265579229757028354092935549326715569938061721148670122287588680461737784415578800174868806126946026603099394359059660714157568469584022976949623087834652692049037563404099493163512729173978568422081430725189489001273433957796991747779025676317197543518194314188135437107449745235501878358109076603261564163632662177952989209279144389675966175910547705457958581189869730635822648646736549694286798443617341366259350777795939757282483593915971852792560829081709983675735504943299463820893458214130962854260717994798016578819221127003404341249527443616643721575008532969195456099792931797606968334239249696205192187751303661424057682794312349227698868879269069567246278705304552781925211544213010880014118125118764502509739246985971685978462204243980736651177008044987889639624588188785241441696185644518109649033391901603558283027802203799868153843139550097082181456314987241384149755231419543579213096841121275065654952795073007695667967255306737409949818826766420114953467172388993430626483351002344550037499257405155224276564245070713930280565773146194200907842187857572196835763450410554038559776869979684639996497039793540974047920893671174601933613183498874056789962354659684713933758756877070970344833544220004451128635919786900089532644311844785108459870592938064994799607553898815806102847604637718086732361991688276509656774150147521859648268311800582355192474908328364151582160739683732943812429527203912968564716833668686858379739742687681617957928566760685961229114371609395922759947585970177094316766895588564627606319480465787032174919516868984215019376624310696348174235865362882663690459929955626445776866651074453110852055820071471659777421112230684813531966428904691144338340060014423459202177412607707893317674677001031161287837634915978202248986312062370533281236339390179612490404598659889795366757488887246951541137075254899421326416604912742770950946960569339953113836201863744753258162218907588528550259028359103049033447983783680610556661342627393044060787010253393822947073318853987600941541926865676436423610570570079250152322235668470085964713056512325072686645282387299539556389122151974460638836921338035898206885840329158782538946510508803353746578948966273087345760184502718032605448301140266756418504255055653931244182382644553991143358215330597434357198514931392343999829093652006654035484879080571076799646943537485734597111807680534920179216833931917505046698700910605130557345340049486445517143812584842204924341626625517254890911701711153460503195506585868305563974000804332607414737044993586032699213866038218562178556837306691910642697141693774164826024085934589466515546957836779576164854811956691818726879405324376400073199912883641418740942332483387036600163237007592622230479131754348615876580411598391946445282067656275528586671902665766882019464826954754058022759990445904948866032096576183072552934749067555550169419206626524885753073690789564395952263019291637352267912738119533698332717712773128224223915550776577981489367929874740499223596688008374181531328883842280677739818729942302513776153709767552439185670872108090657930946002482869903724563931717004714660877663411956364878584536853819463372429121053327684861434892158542657184074104131539923676464959295281856806267618428793430586710024852437059162279125345201873613157242717349965397524898068000730789877206279973287257023080907798777710684213884347399145849990806753018804368948229291485291662620421493880106503187023319704844735349049687314871846938381939089983320097134741280341259109088317232487042357940081206059162847821215441144998568765803291635907933356887180740753152825414727862297861022437871045348395306261623176076201583825274766328769156654469310688513003509936756245385337638456578132406533843235771187981313750385334971512289563597721680020252905326971655728898929916333531926356253828338331336846446628685044895674030344874401720326877108478664961055963198738975027234073750615733180859654812903449667642287866853322686009242278270156594002077863156793367832985914714544062835665336608326817106344767321021875189165716854597422239981385163913500202754649765909630265298302172986528294184225106236566556810891163199574426523215069955988479206327320285754878277149513107558842094977437582324827964696774901875489106067436926001826623095699345285884938472203234573770615092281848106906902082758215694177906420266576311722072368793916492961422826954385268059610552726766017121508818030796858729730742951426670863578469194674256252814895047026833931352373665690835387057788862479811497461700833930296105420205954312162005854953098509150684257695233622705268496937676397605926342025470098756304547592925249026033149362685366919353400486933753695399356420262595048168033617151272625006569659598283043254905207500840742025231789621051745599172690936727495068018252590142428925772651619249842393566703956123925938412730431129966224838357483598489409621541015831632257946775458084468380345395241947710494160522112173015522504492489070352003796667248917680854523840289063203853144788329843531447514164857474571694334945523421383823272929289714119045408858494461511242216732130602925430747309297223860059327998735424150451947652977372396014685082458874923528743063095612740820311846805010786873812090358232516210760992425774133585109543049694481742743947593491310428958885875624572674316412454432043933270619187343316738349600675962440316633340419078235880353585759636091586163826788750147413498883595055163826575690955920412718695706975226624147382699349489812054988971900173004056660842730607103834689956802636931133634010888727297375339197000417510297938403500582256602778604970348739816080542873200488633013328085980478417520451963865181168281641969588441312540726069561548838471898621524554304638249263852022329550862819434492469232443247041390321708928813017867755429853468284492247227541789011211814744954512451507369314869351523065628464302635864461291501932478932178978621371181094356897525538834999528551200447549658722598626919342222414216260662498920020641500195331143227816147408256769302417637663190755677129588741413056411507783257090808198208684866162702088708661518189473418100190594961760635916266701399771755364616157822489408286826742229589656750998423329242062854001497871030158903487610150814330569219295623894646203283038391721197103864728659067374822715122269288643762102633233295287535980053570294433164823458043913990765732993331212727088435373450898523422451745205418517365898943510866073618271447134373033835804015659105200114527832117643105346981492536191127392223591578156154705134037756285875375883839116561414503140085566415131133169835793977340721393130694233561145453987033782033756419549724367651625277848757579277186890915790470820847169796897947030986621116511297287595238581135404116822578345383986642996510022056202055579639696175844455498354757736722594121500752983648306305105827626500648022967913196570444760070842633733168939360040256872587666565591571019572380444847883989570132881979326419189669577569078025667950267291837838026607498389960314077314418979284032008836321004894736506116051008399591581447520783497488091753116645703863166480519728272443242927468912504060914241435582822346289261492981274043106392067251525413369770572370005100679274990067891023304787432859543267671435525738797310926477699347392880630886802320087712395914842822442131516991717128674799412080569790023756328712871091884862762013805275504950338677783705885959352650671777372888148539887226630864182883862620822772582293874187727355012513419100928800041720945219061653463652060851390437202163958026585886991025967681024070821948350826417154998754871135319707705705607421845891140226100920000697116491945719337268148179225665160993361190604121007372544770229944767363451022579012120208918183936349692263210111644608466464646229239814428598827403036915575694854992578158697003795369638792729289751874159408908934322112453345232973257844874185753237159410789889242623712592690217273664753417633953089405250189854439002942307899095684761696472688778230954448193856858300745819889541959174952847237915261773913580336039740675068426135920410999613781568804791184124067573795920057866200937370022484995145858587711808053611001225599633827738144376744050839363352242374967058051423656223408096179465361001698428993102641371052986832685969796594848262059695602378800058641059262304932970195397285684420570630222998452060754053208649474584452678734288103711054498045020237756221080434349897223017486401742957721941387055748867672519066819680942426831071687138225358471899292428280156974655641744637377337045965603055305804686785584731786939814074462678207579147354273122129462019980484690641201042591248310021058172011022776268975100652206824256091132585204199791860377454280076067317225186144003767163860898191633057436314528945476521508978382444906269531501941162070497683133138895402347428928715943249512062432791030640184820358333655502423596767714613729588634850506662952363302084739686779279805383335556727449889318817602414048066162930984771615332843399436716445874059235899012801401434862418351721520858519303891990579657347829275355375954165020974891625332547742748581831378756604064462429726523487667541073132986884646988796180730354321627590634381699950837511716118327652310155879812810324875438128255031457849091311270629545638404316142152680294272320430221638975981932030842822659388705718092740228358610216213196203385007612533418255820294520960738722141613942832977197598526303630460882195720801934333112031051466130407604691440959069829194493874677641978061615242013771941953130853490860805949338225322917129191921174867382547485835797794371777058731659189541539476769081805081487284414811081232341916715239384619876740827109484240768845726999703056026606881605816583655694786844832266229205522916186042478269709188565231340204502072329355265904635724131702527166130650612564718039538409278657858095856099166247944685460530660171487880390876119652583307294218146281265800058626362653961045472893180474698108504970168925357861271052280927675598169341750497183975671591182548377510124982561216535458449615896576401151453941957268001919950278120766209479124337252457861625851828517101080963508754105956586964025938382182983620681718435835805253715805780748152094773580694911254958079811137552696618740699308069453463969890332807218446998484330039238409549761641023164410916471486067633121834641138229973034108501424910719075242096729030652534832210044659129297739592521067333844696126139311124600148412805257458951912486073702166019473836613390053709561453987815231100552047668522834883458063916483067375409850925481606349367921983949049368607350625627838561170241014447381321186769834040305735099289574896420180819355413602426516571211141375168169549081853608754900609374053324035023005712175891832903886617969795813449561428412630097913717197280902231462389625735492761249133463412033560381987187089910115115230459718034900494337212599467001543435315183498126731363228653191481640246737113384019262932147668660433598074306769016078043221641695404007072848083663345954348026671471124871642363739658873565708221108409097380856713494842182692189463506887156683564967941709220614189615603252653062120825405173881242166366675532332118694391429330796894573454057977838316881703853186389216948114133126971777649960432397521894950490916406363899026243727188578069638615284317895447127253699993750826159680207351928347663141490370165750764645131111900790050663876238848884057611738149409095264235248499926573064892109621886680142707883836375965416817162453729625673257424811841202131740540569788239723574179530386209410814527572523475872905130382743048068580976640739201369505498449474602286410339124958935837492799164853426445825234828707427904130340222461435672733162162012867564255319759125177442929270736789851759252051993929423962391975579892033686527418208947533006404443743333005715310270072953013591832679367585912145565260309333635084504564692853934844404304875630189321545629432073207004538666289109483219958843838752005782958910629337598300140696792730722668459652443949994178534931794604267669666614305199177282174855249324772101391342578704851000973134309898989025452247576396782699534250744818440930395775585481027207671465444104932881540815010496029368856999008804298925689288808713639089494193318310886693219090657830420147969444642810332832983304106941837313300204319844770480773036982224223280330284462926147691884042427957080222355182283410589821663303149499673295979446623238809439217957289585194997871051085602256523652688593454195455778542182898529742822583497498760936095658116221875032342907724240712942482116769316312792708993182117328252425306286241964122455548901588466990586618714330103039085320180411204196373387768666938503243929758629124063371513203606476075164075544591401567667671827610187165826689328269132976856253174824010035207298959993757445265107787473228516779420565016079818800550767130631944069904968370121517911093573215529192294310622674869921127447700887077481243056533392887376116996313939716381484895309943025860294525246751019813837606718033315326311914496776670404909744991259608497313857205751937639451833528546574715714033862131502271092933108065918799412920263616893208801517160386494312325217468554049377381694488313553224847460711976366187050297801975438063148999002426949780290918105371926323824469738014759456780399934395078073654305405419672351396083019924268115523907175578998765494284002785913430116046244229086910563260771842049125391695461887229127478902531288733034380407379772680221920212449405298181828353305631494432176665961556278219013480055491086013540106495092698581323360235077169002344394989187540498914426632940134811244703860632307150278712564295327434702329958480790548018237200495738742751910256197694585297400352556881964807593042545033869409841042556027968982052887881725192989168804276210606371628100448788588035737662489098159052917195612256295943594978469828851051583603911073320290648565474071867965842483045100712907019966787149267249780618846349096746665583157384004109470344177128285272576198095078810620145874023446326153346540419760357317522906477219759706076217849639676320336723499930759553946697491946045511785800765635562539898001298649491459277079826445319549294325695850507960190378504000769472721620643769072886339405126856218694508420939506437100909646480810558696344164466483695497722373845649461923314058866664410334155297944615218126378456758556159758065502852804336282082891614858950657029715215368881527730672414471041328976476848529689857990478600323399243422623332823198538482175582857573862702116731795808342233442436666854633648453507685632004692535333757299299433232589812833749043609291559069889993652731231619139678860336524479013541936917779477858150212574417554751741189756691106069954569567192148918475261285452482769553371974419800950213423080705022172351146577326080327053882653052325053352682039678139091056448519915135188937664459929488200219440957593574201771769934755080553195333338429491138352917445573346381271557203271401403095724642138212113506716020588260079473900469550807862560766388542787737483724345249166787223297384128232163939456148314116534847569757939539186745483764305178679945009763977999928533827204444130194093183897130319198252721079072202716351247477795260180251697016804116673843035112781785939964143070752421112767374501625711033995006493353301415040234140975435240249080922843281582950899942931546979315168496749262199006738266699225830183954054543171924782403848732478017838451646125375375072383667345445933238472642099938065381228183062783442571054518029164750387783010270831627182447223491328494182208507104558798303930712424750523520486556164832734692828694998165668900600672878482669833672098324537163057232829781060820356570256995622256384934732651238231624087166027660640178689416921906199008009440056168669521466777447139911101328043509417916231706993861269067660678774376187747380761505716529042107724193041823765553059720461590385398476757792899302950657244087971638809320582169824983105756964654687288901290548301090878311941884030798081464927336881588763351408292928775994611614204105479715815893944846277942804828352658818073700430421009799628690157888389743009904737676104072817109494549250207691173221537691432925160671965537504592814646844727840350079699392816871882428351381693341795442926735060675097063033906311787348717191149970895283812927117666404518328513682526796932893412298817690531044933915806628926003648069953679032930540671745199244549327856435706284966524092324347759128375437977801634276646644414611673721444896048353693375186587887156241746435974852080222004640448624633410889009611324219423478829049253221415582273966074213664095384589367438115143026742275720811002011240209573346715113769201289126415749492878959292399651549477631925354280246099262068676125145492067606491282649597651158049749648277026689017267206257235164279973240890249169147697352241187957320078224591251864211052834227828313074662728131878949388949794503192049078343295168189325543190287392817872443392370131460309018417975036051328758891775357258777951091747050810902346592289907216545172993486826201842014617887835958656618953382983211875733204819274079688411183303454341103444978973943049076335944941622502915543017582758761456096551374938291652645174091720120492507603380805072777235821769351625404096604717406375808982409414171992730625487735669178452082063523662622074227045254056119844227670971808195807953509868112406804003490872326260627214966479243607890122911392767133355573343392024569519373804057873091750228678935794595520381322920545592913568247227960250449373706156732305154109351104270478754497548645344545693449078353673988316956951825276249900330697460517958401679523704460464849319875694731420342229139523511168235583559835863822762518164979219380319883593766569291222512147903357922536496490862251686008304966324715819479714172002454600457248934125087937523811005378115188184690455772658171652069520607769818345497458538258996276951052104901264812445590222103585859053872060755656713004101237284543112742885212296208366139910641726324917557859901061923723086514376708554541640231823224214444494031265257688879862783802974207081309650128964722360021083288626799960184113705826997331285023639104363225746916737900705135387382213964623795871463041741251069046710657106088988734772773089192445362194590590836912752409672345890492821639860813702792748615426725417876626566607211557162194679916028406460023223356201872436549958091255087995204911871194940584638865944987800031919649794519670482199159554500285771739496154469609129424936826197430635046407477138307724697249338395433828141626965305994640108756446828590481762760873431712581767391086930004121489132464650421359376974618081246612180940621723783353410465537405390888318326228084729741464522567792363243904034320732459974843935440878590071982578478616001721426111170965205172365572361301839998035336684218625690930735418613023290842650400942140097047003596190119835594660046171423226601365686255029821036425580846751756603602500624125628450656108665636423156832947915425815053078214789966072618852138128576063782835985250572806919162129741888419397786263828079924625848408480912920645056315924959288774083676357952933731754795300139989658188558004068005964916190631704834770179359554576837441595382396915259317497391489470676975847226968831562099813906123696335714255109934939715418484361192503933470228299365532277342328924555174207938688685867335831660181623045363635961739884874160149936677943117801230509236284835361899333512062863373551109775600541085280961128324739991947272784092064541997149061842491436474721874253932139753914792591445121160609419859942742434485758272718763067226217827600076363336013918533440735461026570680821336914653416081503489203814862652302998647878309801466751069773892252524530545332475328701765386854847958065555038317455010257807084040276567119153353767576805250955244503601332062327134405039656365810613205252278489717508203509292294791440101603307907940199224307015261856113834161800192292290255952431085630291127647357349487349154870899356471820458952025873240017713577562947132275197632049513468277242478188377315545798771643059062236383843041879591395686425154699947173447210003204280063857068169390498487475170041258104614994089614308535806178639677883331934055884313624392018436737104152421982127088538097290533282138754741195183889624846576168177631087505993769021034282700395017046402468726467228229914672691016352841713002862161810623841588492875575876706904233407167539896723467614470439035963105352095630773002987550343210584063663682960540159671926841256371338821295205410439989266875983779271076698392902898040559201155744478880826632507848446722690228981464880161447188385828253829976028970447083018551479994172528813260912928504379264039257043106752974582658133508511469557805492619899217049685420069233243385176015296506340583068640606950575653253418576670180034336882173679258899738160606314009538700573210150844344969693830136717054500011178973382960383939460879749222810511544052676330081696125435461415936271571289918431683001797804979532817835546299880623077109424143219750611112289070142973614472743904654837052584916095609670056156399137991002028949088694673614847058292600870012809084700820135183882601234293556390087484214932724892549931831579847419328805772225103358585142670106402191403782199791435372032027965257201571228920225464376962184543933705909660604783218189262258734944824979507657855831514846154155260188797647493402236752891700262095122874165600965835290862681608183867015242180912171726933611401939369249804621938741287388921768330071159599490983647699056554927923232780576689492580990877417388104907700365782389605094810449551974456565070059893014586647985505828643399474669394154864453520218477972439345393283390233278281881037917307513886002840300957800487883489324902601439004541603654673006854850712828593833215511509606456021167709486329944010876562548839403954272356056771302561844230283327743289798940997432021375812008205217333632319418758375156852874112905900287834781495388576977188987744971316447095406086113884654488404051053450597268388469849647484954195439940827954294555175910103647245466620529255413708319792053393573505145725175537959163508744704735813731378810010704053654617058907795722256852331575964033714769767326308379515083069830634158327587982392078987085437959863413102427662738685405313779923730753452500734768415585567006253123389489341910095032293051897399079104280782043754511805592762270444798500021317558844769606897938382378443006218269716913460165523826461969371867261992794267439964984331938650660521314036616493524648479213040362390570866784975417953296159608845198113484672096465983263091296446764892394986049671485833472137816291299384246263456295265786515973036860344520724340107781531672155485979343161496744663329108479689677140692448022619364899815769806240388971513760996523670732679360001674027435783506719206387878505654253509018040077301432587029840559216690128676474050172355537235698202822055113974726222649521160142299595134360891591755448710005356164082568882637023882384315913776776546669258090647515462305175624987379273926599192927171374208888827559132920582404400342321477985818168793469469748544692022569330135609572759743298802391798407865844772827655632713550273963597438862185890489369489595952899578988754152125779670578933569923888524841782165307593104794662191304199013008282765769470953277501978100057934082821546790739108828980242233854456700108555739518530090673221309218677225167218711756047383520764603018389027815482099152851059791717429964031529090945827261569724925038422315260018824161634026169559764642223036599579826393714104463531918290582519691713932221244621390862328604149958766992968791450418711143754294992990919454560103667739650126969638194588437134541065282476209176963418352830888634412864056828545626956024785417916250696374058076365223322677628343209558972504995728346891984605995727205769674685142599313374201587338072399728031205871370254746798649540250246442982728640594700750825100441449688745443697127107792376396248885537095071991599245887498270814562579693409699771434912164315924236676450863828287323404500599426562495390863330823773913252901992989276835007453008229483124712678648000886280136538025058700146835560653296450621812062170150507074607107607207262400027344759735399096859078784658326389809270830224903153528620400417365157919267875186579646855851611226409891409580850198646716492016981414077746014887644969717792278260332372808605908202628248483397747027693810303384277355172516619682716096328600406192687423179985074828668506763314609334695340611065599120577576005441616967532997296951439246196951988482586802375832470575715757514140572070530078309439349198829496651014006388150033478764913683689478312415847079704416946141941746909760017461211934469614122268277078598489960843448246151250030961810129434910890055604591761993287143870018594201901435329420947774499797833625961507964315871592547163147569569476620415161183101795829965580104465028865872919614211654745952566266455350947686584590237180808463576318701832307889033207873307349361895280505535686180938706553951282965166941043500859469795337084230872666468130751207752442499064594152780219460925359944400377371458628667667245825471860193403705777116890095694228976282532799404981974853706892156668660089344118751990010348487896348337825258210555812676120236169032171077509778315905525408972688315501079424981782855922276231805584297811207799768286152917762163656279463465238790846830005961743667064350033025372504787612674781845812241010530523844102854652012667400428770232303305720103903864128021317556286164370457945469510146479774152532372726417071753562934027606269697396836400259350666599454676309875442717182590898187931862110815037071203903949234333059949663385064723071147450110026388440038553929596302552369143202392943399250818249583101916353090160116709088831902639521920553904216453085487610837117431777882202041616632186605596250952648790143189567093899142719590205173615591998092369895306619979816043906531802055448840190830075737701297462237955007769400939858231357182446478124467467550024658689910818918551349781160974202271455882916606490778698694372820466300701587085471183956738147789004106668572800182581210407397019597836214886933431412243906779381548662516920210704859572202275172955110306009379648180876852213512458657944753273213995725027582044305516498439185657192372382092383611118867574106951327592348695036678632954423240134268582780408365732594180732408080882553386925260984170706779975836135390145677065764975349488523177964652207006862661004483995506330003194010691570491097409555148349298035712877812543160931382491457311554956546271522142906789449413428976389473510396475169522667550505825119604826710465369119674729792629095536209697065051506978591921374145728264793371615066683945311237594645227827350476069036696240575895151041852635259351199514409395599437102716271617834449382063429244059044419859358633289285386904557081035271827912817144577672132637444923982495059600373133764315796482909117611319541454591839112442630833325053707243381053358944121989475298449700299431838681660408793793934217882934140156265352039929964565596429174982091845161622501071314011334460846299406250255643214629486740616754946197540229708465638538378787760385985025726353722064194372930282884305063738093475868473056395681006395768275421301488764103706898061548152259688095720771797024740237644350005974421798102731257379647414200584850157742726560457386317081597024750888254690376501919117247515074381202976740520042374480491617467579305249815068094298992328564886641042502607828143682044204040561359823242036900993956356033686783576227434566935942844174141632479811891500726914559875696880517984202768889417415955322565921785929389808091218906664465129772954316351598411664856812918992767983255564474945072121941054895125424736474242120482479808556597638775706174519330784450189192656321654566196480437151576032679783503676934322832816947765489726798870576737034769818601566529581000613669287205053579429584299983074393345170221773263511892435851647778307161479481874096651292503894778855407943611515411936628907795254016746757726660644782069670188225509467614394343501506646012926956336741999524919115543826034729925656672487635651777129743411067700254531259276349234568242944968928559979162670406823338545898213200857919466654157192865504824078233880900837058139613716636364295008697808446963473552754774685161316153088739022294670783592861854157994838514304143940634226451412671132854917224495393833581171291308341373209695722177512308727698599260925266816980848782257563904108018912354747734328110969379882666021544131747769825834447877792340256661591960801305966124350204235470217531015131667104588775297667144376045731058401406911044279967029284688807367966909007916733097592931783169118469753164657786709545355037332165944157141671248091955223800269179067804197799449755557515674264354376022262389473022895480130877137361946087107534068080698103886037018643052037841950228124376621626292349040571680662234464883361560828754204372204549867973444910756553511921829780866632951347339416165213393145403560992258160323734779490796536349764239378659322905797130176617016145235810161690414160550509895426308063348232142259529818867917791048734368048337727468073526887528290163654026497055354017470040199987736212820846903199065320204553204922757673579531112819292164736268919505521004518815365670267757849272639126189670183466418632002404071843432919713613169458487405213936285863013282203803984652259218138244365660240119805033914936964194423177495264556594089127445236990616636525984907905942239734070095086992584875167023141857713034791083717367819877669916139228347144331350861567899486177311499318192512077381961818282509959208679257785763639683266364758881036606027049946205759482450444356802917574257866496451365353900329745799428477874048073739333115692702758530219242672624840428129376346060435335898306826995283570192171284661387292502072086747460831679903456981078477523764266091442165149192612243008935522246945372337003075113362515645683277307644746142963879565694680140608878269503062543014788903616663665621404147563914152455513838760854609522621990903226873732613918614565834477022455509708919645234253361864397783357158676845733983016478532163751051221159604120418623529312376196247020343131109182386441202914500916476341948290150731305671781918719268905215470022442727368995041952865603874853863783867996015109273185684573178322172536121616079214289706021321925865103109527656771240723802965056455752756459073872063946443540333980003686430599431460000360524263557298609188928448688549552495123478516718909795485670949782517496358159833150709295473436479346661613078677746950002075920469641972458812764603059811637104290529599281894099657258120665638181606452716510300841636543159657447850320253964465165190059600383926104714834096958647290087483486855702980854595711223618623826274765031542346155332514813344012782407373960374672911903552600438498731786763175767722626605392432267328090426339676577878263446293934998122238289552728956768863546326763823500968316767032061644177984087959455402735289734991371504596859996406190146355950456344598987791440699153627316185535828830942800145163912707431481218740881865079793857860309972777744202217843513713117300760496360520077533890630097068826458236285247773544167730351614020944679748593728874304848676144507878469866791601964310352728783461041968778277818757308649093526449395133357453498244018840496812992601606225573707792947455438261686089547260843912973876727343105407212369815362420857948904531029168863482116158558318494209522191887682629240360911563909593238510423975898153041871682308483473078377524529896140182472800238359770312840251475288601710813780916470659932817630304966293364569866159246227066913776368713923403108252439281262789874994071119971897197609533417669925059715260907817451237894641554842819822801376955991979080312400158711983180973571805830675488220108410316127371711839537225005635288509359091821081340411778674365794171474732290798905854802696466880546326078402156363295706763949813612650720696248236690453314418912360005925404130277038107969676170747900787225050905483633913910050322768727291219041398309322190028959243344688268311606985970251483370451382920367986736639781318167049116113563840970688537806008383662096864518928619978198666446228022778788051250506752769676071667965633491263682476626187293173625194000268269170185545188722301261057147564823536696671169727301521128082831335405580645925471229218242494033073992732564089324301243393538212674017654570724091696231857627575679705054379743211045959585455809067431721667595044678492599224856532713505953266646716382158372260450428152952587270524702305627307619485994291503159294562292961725257873840704542920575127378830413027275401373789601989146366306298059119106910148377330374071454681564002570035418593932327629901216190816747399449323334277102170164128893905535001063138461781961893483618111415314856038200636015593627461399192753137551747039872840498708175581713532551457796334559201372573522547472190562073740132648347176854318058051021238953096339932627423887446341740666394279088045174942107815302025561013657979239189600458844334775019115885529016747419942965528584523946201770182942180826960682939410454582259503298934501180124475649199118825088100761702874568168565480660641031276856831705243440410610978803866196257296257367678897160056167014936285889230711138055608639553693827720106865396002488242447055146426739566727596551328484571775973069471728863777120548754271649548891566532906118724393509546757407887392360389924376667270989098011566469696176533017066722789677299083647637722059802329547569454514922026249825644679126608632414321799578060086913791200778307656651395968783511298688050112206291898795047558249042653508512973867749317008490725749976638982824608647331940127452965983297358006494920341799524163332199778333248457324617618708349870176098469088697659046806904743148265062389019040379889702235945190610714901739227124861130977046755283137064783478199368008254130508712017809361960698875486555915190609328010686615153624333701691940734948724373768104156791088255164547397080358783376278376430354626135216125787594157059843380460686881558327428569438418664978132180477070848179497746813164047724515170012364764414580661815487173627857959488985835527636393381272615608496933559206387683281102976817258510641420263621330154666222750108554677130920824058442483630665568489630754391095333005467398381439525211409970913400826614966886898147890249959106292320204941007231518607252415580918386071986965466196277867899591981299971293094704321149463460765405044270384586209729765972818186768559269780142257470067479150752822570714855872041128554406697947270300036778710041858440629670540318255140164568109165934104506181253656812386522195148563878028715345742523051936565201201213656962033688884995650506501400960630739300747911769250442412090065937429051805690331667316627365917770482198875448899929656537943407091007632631771042830925228830399952565602131996439888947793146030363259022203266766903900527314624124500587380894986519150948380593459762617092046371243919929109729079328019379510267853768154121352509593890353503419206824463783051071903097968101749286690269710334006140109467387889240533915540067239059785128035185718244494554873600736010016755073454428268606350792317091849771243805710950328685953326184657187592163923145754640118011766134225510336390365384452754915554756861473113710760359317148554006065096053344345025552645618454501634532457692635812923582351124905336910483115383174865572426148277728490112740906557299571075261796636001250785468843264792856349624263254099926988554659502214063142725366104995633829431452251823576967158532579094252291567861096162324617100700340778895840061523840612677953622788922388154948344746325279744565954214596303525733920364851428968850767346838645866530235566410282309501784592209963605679254843092491838579536379105914359331249093995850692117125856383054462966721169444112777225928462855516661754076884734791218569004846993478452547111886222631992260936471938867462702308194946465626251368570154255819253288527453228906704078941104681815479578444591385595749662003829918159040305429158446290244011866727294988464920504231830596345757724305416405268348474059902430828577696272563408836674864749027750498969344939875616494342455045734973314015494273478213403761617041800076172303785547355902570888713663858925416257579290629255487090675415017755512288790420296905058912798563445941552871867164693994193818773247829769080922287735461392681988472061815819171090720531346418654950626392165691127353595955745917456189065709270959095075012910319910175279211331674884104168304409093205797262639468443386434532500801625222786398828233825160002470568072156176079256568534839427680755498733884177865399051489794034583111985706258213064209977027073857754011983869449195799709952757305517568316690208447470075444990904010170305864949678611654888742434091013649356657287196931628470883722994583910660874826207292989842206772352424476181442142928409649689858793906868366841832641622585786304831867292045862097243503198468264357754726910829436473049722638765565774559551088875130281084267347523975473878000366206097754515949269773269630916401388675018949335999129332257850393438977252940313720428188782449287095999101473756252598353833787434148974625393409261220559707293910196204881269784245779029949512694888400867064605258457535677131351174980171213785030443776682690967137151348519175186826277203705880100934838938824247073098136306384212791647163692839329670928953495278079715939845193330545833186749913285450558696171000789364938787725028855191843546193091033212110896854455733797271644136023595856510305211910504617215451254916605055752394754022138844288123795378115801389932583744601944870087427941857580477384402516944846673634322357601384147267701374539887512939797351528164409664022798900022068815174900482469395050369141877423134784264802873265833538600196030598088634403783396287089038782352119493524542243238180995194590689923366418302562420801131108987851459187849043031774094862919731698917138000885620437522036986573096567342874610967781831994331486058255428586520950264195446276991981007161464383909363316148015158523969799117635650468206556720909478043378842914180392850635921124854759873611032363335019854621998051400596568076216170926240591043978117963109568922319848405623338552849300347319726116516325329931110628125960540222781977479480789769136046363919740375429808607371714147875214615549693054654835221479076504798257242909646137348133016465990504938509025494403604016623966430235826909047145927643345812499665374915390762233647696218552295930220985850533644025063722554628086338936163520000373978210435897314751365748090625486478828789934900328212243404944125867376641394674298399691904834509475805182516603230600313265949403702857054419050226192743670422301253367768577633037218184439097480712774124860621172334313854687260465326327936426897274802754550984016267288324446149761131380699544678924118660908004458873066842114055725795686493074956664458986423687615966072280930042166984865707375048715733979216232072670046557247066265811820176069821153395158341756488283734236601464773439064473502033058222223596693135385307477642117766326815631921447043246827990912654410168126523799435355894013581869323084176208533438187866777690424335457713566792821787005812863628783068507243170293162636945251437565046864274786157562339568324728462648079071066386121386669067958001187649067336259957186281471583525715964218280858538157481852239808071903577307599053472269505083605038508210359287165306883357000195412487023146048757866410723684117038850673847706809722045719687571743677968471020102732454477317227591292556971825986001557944410095511947986540012051274839440107971578168244285655769127318791438861534268401995365675928702552556847687648769702235230744678671475846843697406623611277626542295821117129316653438449512264450941317366231321882160443885494368250708284018291447044698013117986406784432689743766188917748179888018121090838122507186955691890520607648614699643212895091698446596385754794924995572154204518864377940683075712480745669020708009781374775993166231544543006352485463205517248794943979834572391963733239682589118928558195327508627762843319481403560569977680919655261442807057630506415063224014824582970545388343349637871782135953718001008715553619377977183279642392566568415831197732935136724008564469187809041860773423313303846829632383875455275266421827147381923074246365946425681051475104581214215231151426217349946794384065129095891065462792735733754642757510030195513947835997083326090635545174441380343258807363302194893467263568294589113595058545720597652451273424788927692794170002974482223766939341895155317843551822687789076774125743959051788380057830398113292130652190814257536580566695895297093351562997346694284613633900106831302607403659669104364910333866398742240255820006409771012871500637547813933879129743457958040405170759102635998879748784673712289434412095571694642540355263876281087686939435416206316988738722601431130423094769879771307202842052580454234931749589980376061771449149786915782035478918397988349262003287840228819717295145196245103982452349156268624647128796588056783431051881607882905999008725241403213893715618396936858201286409516526275413596796450070334992827638736667138646118435295222967015357431837639232838074757332334073192922730422801337395717691711364996772548023007061753587638436406161650201559977526239215711379437228480166764725894986222083397200627154851521737974605869380325252009814617171761610340987291689739653389084429486106850804570157907821692325707815655927577165449148670946195087149427984440761978544992762016018943488611118864357790977041724192544064646781261384080988230654718996548839326469286264415079514693324725185762709753368630862669135480202935484128263747851301200898866147651504579668018544397010074959273054620305366778659850882004206666398175428381975829035850309313046124585653316289044290012212219846253210471617468858338064429324946044131967145976929406566573399958656567527093126108567488403259753968773575426197833561702920887275122578348042880769834839613974077616134856590049449273418220683664962722645434649252383608790305624432298098353350876728340460489460156522012895467055694721056722768275237790404259135906935183817388218298028364508341823999632885966227469773093348408776269474373580319414432058578048215235575875092900711113555301404499624242371246780345840237475773094330197833945406466778873621884989431753694772561882719522094310631358613678982378102674041175991535013037299927134656198480938575576646168144469817601218208602047779486836048469539658150361977002265202801570190471124862684846029504367089425205392892428633256423390141870257047768448995113582743086670308543367288694610132347980381779769036608163271750108600000173547502793673057233528926569451197832618316212623757230909219161545574844636488602925425092614238932600471523415109514446007123584525184787404789621880724572861053462156280822294932828244800725528198755505757191926788865430425072835138220221068999415194180353604359134130486446261199688531484254553701259039230481135796621453562260927446717524852726084281403690034764850282090887720528370653167415675220550426139463326173191111952082835501617798090808657020781825931402600907600024450707271053502853360539839554809599996709787557522705919963448667373718773535962534735574313217818478156416559826149462439919167727881270649729691850734492929919168735353006928612769801931230055833508593902959636265618104332230092803232704550200704351539270271969355927791953779472556833337383384749426153159956533392658827087721011593949047444759388052616241848771298247020266384995922547430707764656103339630544023127959759849921216548957059167278413792764754024957613433808146803899678047124995182330607597563904151896684409043949358943903875236915152733124062610008130739919430733219411478225648394224370169288016769295410512303605631159084427008300137289312815513820716984312010978521311453936354144238617573085299193407859523233006128531746200804022472584976662524221140201203489299589380732360747875142168977324828556615827697270223509199457428830004424208110543759345109801354185817526494168088952323680792146028830415964102935513432125294151786864604102559975993890925549493787710596163520027628729353987752193640904872392589589188175809197668595619948805265485022379573793173768359707114965422810855770561963040705315759277997460487750565684236047558006852813833277559994373982517967306842547579367554108584066314448803472161638195295053843146141799766508745277262692119570286898630221481088654310375525218624381694734181544833038452803813738055725106944757502776311058183863831199670468493409160408233236171470896631678101116293970304771086881368817970914711953259181542870093241826424779418769535037916608539778406910536667523833114927395514280445879515076253775042725297297904979065583516535442843006149392860560298708733720935181696313081153152391350306150049229415480287321498997378043735098161700197393870905357248479725834349454112746888311280616561802630476224368850741579693454048462351511520706257670714550197581495325209161001274046808868646742948402512869754327850090966686302412253550743634043956217210897168730009412660732768964730917566479790145121393863230145408473173707684387771481059079738537861591221239558123981022872450672190030957135262047936738611662884118635362620949313988870602993113383474474844162791265386619732707546606811178352277760853093636607618540745518438510062501565786776713467626642981669634299203927220177937833569873893167326315886238602992734563140477920005941862162555211500302821011596924445956373384110344570803242168276395651018168573129134523828491026360164450649210087021730711914189544913258347626183504415607937358298497706851658540281471399112281836895574511332711228578711483543737919808545815736966667450712698763540131142092059153951503430520317608051180209328837612021836941852487644238027730820433902876754811194963581288080287752912656148105303563648365714675864607139179317140178454064983450162450173569719821831350981660112858905698534926254661275827329075449808757384592922619315456047546255135274734866311915573664921944765942214492080544173545700919227310745471267982212148641197930521475794089174807054260070173337108992167718130817094149015210722457915389624159655090340697573427667049777352340463574016685668773448570683206416513496824019430933478855527609982196657696468252521493056655787619163508211749011730166994485848794012139646897762864039496817784775206026789020294827127756089752271963478253533381193527928512766982182494249080721897495368292866100813392412661023580501009540686909799869559014262777449171354929114840184335219672370585271084683462855017969955082061792294237322899340778863470349050560344900302313900173063101931036918446035710438984789429631227280931158429706722455846310838764544902074083805434955708361823329896085315791030355497744376751918659096093938197763469553938184272249584226364934738985574185442244241430684558290002177545355962260357369080857832854844354344893878940881580286003195514593067087326455002751583513624668414878425662889861753923728677341192441927806141164936144385562406013563847523614586714094596987419899879069495041285211684639413485396099032263325524614650588208929166248407905263475350518877557808492152875531858771876700858998957902073186946522706761978867775364784072730555642165342884727356249155929187039544682417369791150987232111516508374169120108870148250693336402575593174985984512519603739429943175880199795375795564872906744915415424181604553043762348917019193340216352081133364046940518935540986910645694732188056523795424176596433162776422703971823917870726372982094522360209761640324337520246007928248802441156948690225469850954004936229861053800832890916175138837091651015202309406901894895800143777840573098607063666035503388942149348230408156601241915402618648974627991921812988721133543832118564971094800323975582764620950482883599120316891865680748825482442042439683787185758884322687534013201291169970583258229455875398012052747342837388656134341910096796779972991178771319926181547612969841399141182698893904317159552130596626295513372070061591000833997343768095117320184588322720015097171593226432766226401773868319555803007540978620727105368687937175776212372172511656987854086548953794123130662671111100268303334077301935430882454308918822110091177237093332059445796560479278293350222034036603512825061052569973851921267848353985575483703346737276290207928417071395980297678792406707459337313631902044197246952126530201931768295810396153328820317363045332148446237308892673769053210282485189127758392188346048582986967023296343702972479404971991758001699653175495245931833047563004523764653851463728303710162275168784979863149562100261458238063094360933912703040823625385681406575103077785011501563417568659583915641984524875325371114816493183841457491401531006725272524220619641713750403694031343192834546962758402999619545823205032659537542385668311818579090345521624604831461776069536941904407439470614156650084122628563340087943025078875497225595068508922025035046706382740706825359303177960308706907648101166550567924339094264843571013882859459627231847010421379858730915332380136215342095353348682523773494538761228980088797377417455756174414066251922508206047313863996429910791592080907501104709605813636704687823366892066104027370870937023509906112617298034496622753735681270685249971222145294425867085828393031444091620009611227819857748835281925616086384865727819567911492395755083084876898225772573871179046817605421651206873877698829069995765287637449701649657373862213912757861246824666591739820027332821975794621279816983648530174282761289651405671520682036123745736206443588619496144898103096432736166755194664634300111528044523479080101835339077534893830411921058307925856649069674350687262151207735271492075653870575980153191840729269795837552601939070579206258513386061012457042850302048394678777737179454948915774035078767544570480506524550711880976094315439363390282504935895399891655802187162659128883255665807791351856790081697943116792761321236642174212591121680507164061466299477218727312186594180460581192897527083166847228910165898711760552663851265010621678223141185720353233257299292928010300165844680560979962565415419973625740748025028875040509779663344501028836404354908476897340126596560433657907265959223871807747289497638620125394537084403278646207620153854966238203377799118821778050440053447832186197622681593184595606635106278403153213441072275044099196127658101600510100513247776388806166551650826190802858157851887699337000986711874173098347986121565775909702210068618983428537461439729692383088132858829543469173794952099525547919975642402533007310230615159805867913168952320038244889726622641453177177480428298804807189035386717509967167705744447180723914210516832166984648579946197031252340546756363052419154275021008234611505926906768691476627251422298743146190388587362735534294781563970498217443112411803130105994862268472970130158894696121418250500824684307429852648909954700726781806253940856249771156755088013038062843395306631759646583323724751968961612536769192160936501760678975346493205303156173060231323024842092385675026820822393863037063740811438337861794489087149181194063563767103701411695426436015103625595621612669057553979251592307919760151347986033777816085943497484183886108751477168907778224156065512151653718286973642475449750574904917858173204094428441826615417465895814975941548261388506958551868865458918852987736176415244397960444494114108449234436744593597185127897561419003916660107047989134783321647099901485968823798624762280905080834356510249906885742926935968704339180038739576553183426541987056299231155196910848120487829539779360262192834841866093429203819809070197575343007015975457013967132102969065514225912624946367581915217772364274443674376198351653453668304015023352608035188939254208357546454729214234495910074569827613205603561128352394865854356780258094984180930187595313482672755841112277530382683130718385673882608646439377620525296276734148473032413546732872743336776218653160265456709669304021172763735611304619255758810407575105294009716913999368176225652036223837580343684962325590822272239903343449518731242438783913745439512306910664242550727772462573834131843368927062239566339652323699696521171217386392906531924098293188786112714232474150967658999856092463951050444840132365991437012135815994891397748753838428021205763892156012596133476406748692328072320559197008999431657650809150968550943539528121459730170585377120456655890619011574538482599003733017960425470344329718569414301018508929150962703401482892342630990666975586306350992059296418236798428669990180742690176599838074647883757603396260314956657904361787204484200649565438812728251393645092865907241529377738032622392528856560088318042133192976993089621131580742902876476186723214230912457614974837823251439135487354263317245257953797236722746194648781764084920160024712259891865626087837318043576210631932649299009254914045217404518106821882404148350552710866780611981678320687160902497880991399349325236655313252699723698885898516387372827819452311021024662504217790080018920042592032835458034081692827712011006409697852948228212438334430786787422497809177736767887384524488680253260879600743404337416913671823294505135091691722908341365478484055874585140541097006331659471583725377927377129761109547239352692540102919685140567158910429166779985414923571656175666742665148072691318979365717370979615057015586283449435427698081215701001915536988944698655696057432213399962647026911407187486590053738319227011095720598994495955555893187734216001366106836967194495751847558877204604608912935180195118288154094377556369697190404999814308804949552262028240242107575665463223343212216716754085313901587611050658289181759639075607926058294882464294208584241569597358236939417531325962648542519870664498617847720304589545410803364818654316085295424398023898265288577551399912743304048266642516314575183807855458986668319491316765053786304590178860881449685830360834929835912796293774353402740951915050740243841843731645034036811284409812926837002054066284502784922133583029933189567430207362044626247999106453308894115402642512792885860854668157610152108087713924401252801484662249737396329911396604626701154796496358289014918793477287894029898869296843190065659176491849986090326368025891421135346624394889000212936363677420376562685883770054002899936728832591781956871584905459073371353859083735682807580400041073593228641019922928365873754298582422840825180060252619136108940991375728115320405316736782610118121480138536122909006503027685742215635537129967298836971221716970767537497939244346721738215315137286304958753626505691354165903291853741843554482483826281397217306900628377181174602025658638978170688025740496188503658805223691405731585650540550559019257012674487561195885203736547267680950473412279590934412286195790785352573054861618480022003198081824187313483539011309857996085822851935575093417546587508186744260892109153537193095397101657004320041074494760141364347056275541978049930861757991696694080093312752309958298482863309847221544582694640063062969369906760096984428931023804455247176655021332754490490696831767546025718151958780285366228214190763666938460924431708890448193972682997409979615577345634063782571277521785990730993822359584734972216214960238538444646626674060428431945238618930190204611445383016397057289241608424480322611123406351895341864949223157354651536883784049328265384018232321215955618135925267885671185008567822432895132667594259916696565060910805850865341256431875562832003748701299034011859529209458279623655766763914008899657325362281099623006174656945896654317909113392546447005764034756317033568178067195556664955019120823977094410406003013106525960468018030128255505193800436223822692401126828042016960559964448574297092994125499724673911268667447366295457376150791556737202182117522017284475313136911741050395817531054533227478326495933362471998856023766815208992404384833401700283157639077879317292301320796992056455809992130263838201475522415670188603601004059064708160372616956324626848797764973959059785920832875281325160665955573771140991583516057587038006554144349041499733682730243712925177659442855866979630939290283551502710819944426260157885114109884275360235352976185750359023101798737634553092896926536126295009969963302020176983092976384912707154968453841611627364958907468376808817376074669202983641766534761422699677249248966905143446747457252161702383369506349302584262496902840151135675898846676112502250164015274755864847010934225344272974739706497348493843173071591210750153689534163689813157447572497599617703723149753373842284240069118923843918649201779197057678705679803666932400704950683437877973249592287670066210066365279275094910902815634958501399881052486528815115997193394080109331287441112324072576359599056128370847040074590535853662898698030247004638305223687803232101657775606396921356937568864863709271020678557290827794115861541256279725909805109781868513682600860598643501750541456499020677548916902201403149162907478237406091966634950422392379534847583947895522340483710453814746558065369871366418923376421738974516679006711867133197688143241692706525514293867270227139351570172024034701976326033532298059408793242782059585539620495478911175325744637716474094949877354026232312058474094667423963893672279831605342912210163172865405977618963152660070307430784087146794913800215771779130634533082661029086663514974559295645132196763410334293196770013019577931553088264645427048111030184647077842065621691631150723393967920800344005547448639112317731004267479535192889902782253740450211938154425989413553326548622893744231958936614719031479643385338309583938611543003061065479829180013222970818047228747050993313918724202345691485947886660038312793009619788259967391958713548848168419541526044029153661292239699294237194863776648837761980397325066002513687271413735584139341220684041502425992024710222282795008578203492816298713597524455784979706996321558847405821845975611084019537089814880586563891218463452287026021761468278541116919309670043168950288195574447387733235918688030457041050270458431097996513410211739433065272054935278917945575359462764375073647948368021533978577015161940381240717267692717459391616486182641855005212585498320344110507499515643905423247422545109479875740547153234705446627667581260488026474676168676210820176662727730334627082657747376102624742965151112767912162541657944603706484344845668435638651242355555146269857507307477545797980070251087279138668019111932219174349846136333851300233137715735945991989515105006892795843881505015083686189587016801213125079123703315312449527987225165767199465872796697361395985593029193505545294138925193430952899114745801416382328031179884416403181570836836009317420613026475694076535091972606201421033029930170877759849825101199223653152499352629116808545598015990455994654936422930062167323538223485732716470954626359539226300505621343191309134462198857922524957500506909280407600219167398538424216104995432024065668662666832891577229195543017809823970944119304117723582176013055934177547900602559966393815947586698330941937840290443353631704720670643283008260602516540239311858665771402992438643485296896438785695093029109101684386546287325307465302852641477767134447254789575746727506867238677179213479907223276741229921003751451149264311014541562185328761821577722289395238290935304105690025662294990890510189287096488357559924253482590567568906856747259121818210666007720103523982832024876354525185145251187766490954541356582311488418528589604614813240051527578006004872095162949571473101171957384299238065656918549632564254664820812095265874324859068455776229384962330401276490640486929559170624931815706867905045983470644784857704075013960639236555897437250017589711128034195473627728591921959786887618449716773868904879012802152925627650651721116746635212757099944657047143683367003432557773748474622059623357098382060755280324843163378327960203469020879442663822513428356682180705903740541870785758496743688134861274789018250047592577137964773577327168835673394205609618146237445827790506898712845977365198508219861982972373568808666302100683849402113860467597972010558091616508066754600387938339890437766056382478017827928697372869429538046203814925971764086257650082653904517750767589343433747354815970416771024210001935641290176227567692372515239970821506570206404030640521123670984298229782125753431448169961458907199395048707685630879727305389121503318647001333521935864473429344908222479747581131631763246315614385409302324731602088218181126008856537675605416110953951662704740141904774298956669555061806280943231493501939017754291346444788491671304064450380128627955810222247974211656883353530342588090488929067309243407994473207188035172737953705077762303407048470474262761459393709585073741377957308838690960386543277085233682964067150805030656899815712890753532224808918651416837592531405520993943508478178444635693514973551325078975287644065222282295722947200386456771966286497683854461270378445680453135981596290708874367674149177531964917660393252995948684827638615626797418010112400181129594703645629033438777355406571119738030640123350392982360589845549303480247851135329224508204996374099750805045464904957103273593009016014539308603891669090204589180631099778388412438416012716557314639610512643515502170344776421764886706708330532353612820697373425843501619943435962789755466446570519407124929807407922315877295307297360926717689718145691568507512308157324030112534579628281919943569967449442415508256613639282704386566851684836380757754950682478107061592779746074239841799267596104693179863339331515119411002670570171738113272452693464812731817022661740934609502821538021522112261256276917408216191405061706475887802741488684054157367232877056168241624718037711505847656143030836074069978593036902245563456558133450131831349667537046377250659373759571980696617887175330880043728704094948192485738580835961664927845270356221182725822946405935394011398597552866482306706494813465399073381542051345823313717809244412083998375594187029989222882328685615688185894583998307047614745949362750596557433291145999201336240404129500409421770920063243090908114126633915144113855577789129846051286271045033662334719466663950900816321551659119683074798877087584461207867586241134077519967038604536582862381442047627657550965253214769883994246455344216661436954230159125232965484149933586037650663585506139461164317076201794020784280709179219582676927442738448118667797222793350279093438512095498636643829186473762454348668822976904158732210460313569531461996263233440790475894527006479251335174598179178487340552386417500244887345836342257525494687701322937347659781991056293972833025748271846392616569834558809239813461129216376537530431964907229035604448546152344498539550810274047584477512131622934160225250478122320746926932504669718364810199221651837267803910122069494644893440461399665333268845136238554014250984837148325003787133370708148501198180550124544541367188105558874337533559445184574098034772361401723620446350238687139938080484652642456514611494221123733955756418580856047058308832570289733476694168824157868171163914482815790446802099486911828221810844890018030621794980161808777010413892001468230507556379187575237562485055006561773090307371712747523855388657373761049370297899066654564028638035938035334088531021708952442338879060685973493279325023771720572279621996314586492755693925320295608492442013740728401610558233770430612433982650903592061850673126675687041881499553743005113082297431045078578392336153923012747367805096081041741423027581459102472898563381650477791766545866936471224113268715802011398700991058007771219611745020372771966102635677079781855150934462744596900382140699450381974491639012247968855473242716832236741697485916488347342530199442815448626369419113753251800575764292769394781261088678830467907596983497113705630118373351886140677225822099066435818637043164364444922234054650224029097810119894454433136414542308701492468160922223674548678858313259507379214491842298650421848651390676100358451022031719443381244444572153069233723418506787703944289119771049243367403006918413582087992386900448876292500422187104509293010241918822808057460937075492098637941708864589413926740916729126049755725226244157299871715829214401095926030115374250128346789070122623581192462493170762607328423425020615727800254953229923166743629163545973352321837858846383303398208996487344192554930466531249976793209860010984938965360820922502877635008663719494430914286543836100713922331357004882119616400619919863620716068615116889534511985429168577205150856032061008902549101576450608532772792745826695295016473841747081515772665025160778906216784836582396461147947624540910920719508369719708315638312759633110217256835205421732650785630797264718964629205963165201534450071438948486048955471958962773854360456194310217742434108899094430269585573169513686673976888416546017678194043815948352182916314830435563503082060043203347476991773562014916037907080244965147655557311309729838916486445753410033784530141677124642851773632925597834463116043787799572022459394546777072815116377346735338259352630239757034491500766319434552902462233014870033473641170064134343749074507077304529580378219481324744702659300193941174544829604470569778454851321888480931465379644985183789213909830389823713073056694351820811490528116594926184025410581192608092532053879195406266598889726373660317759760265699715252614936803958688987639284569852142283224558553519048854909423234837278680041838557031285816431419427861882447227974065906712956857397751880142356528078243358123505067973901181819280848522124088954017852938353657928978587161275750144477441422154785143213137988804561201808857038036193385862054758447080353839109151844531858985058695002253209275869043251437781421562991471651417018869231794102321231784912560151736585304609480733056125699528185408511217226319103732444043698923519775357650075452909892525431214201177668754869616987415214288775867464698448895379403482761956539861680572715845058110545918033774876011145994386866451891009027793728285827341718259792454656146801287493127499109568064571116266566483429150408030606033908665489790461325224227975310309366829103949644919627954905171655722092965609946062663113694308159722377511767018824580072974738720879052069977260427427466719644052967495819542680464941333962136304370166785162672899679490653949793274489639277871164849976401313329028490506325363720433420165961851906876320870453547929458803508321243355615870052812348865187544855041080750648900654419203555250778833093190817030477402225417297111157931669178447638571792278159853443172579654361039447952080845925067808909682055466596877408293790390007805758626372021948696211299175407785845794024368179771258029636593944740029879516926177622104866655340310399381758444448931806644287941801716887239909960733439934127961335798115532102287290012133230294341524124555854142996174443584749398627711709166930467796112049376753596025691038144045609204792502366730228599442615477498244301992694953009437453453132317999984117135494734271958038431402476411011344404246971177239391222400852383469709604952048200019970348727788710204167831811262844754641813836355739614340755319338468148662435374109203897236950226920216920737441847847618009957198995365698569327052126358966086181778124182250697561287758468525080946186601768390106641121015517065323503839295673515412894401124326194117264484456891524819884152479812644616694218088416162082012483918910651463860433686812361928493226424992843024653474648711710568969162472819615273446046944069432265333079799982292212265327668548554513443054081836440957657682009857247901669295843805036915398070197729300128374612991496644113174210860591323933989069726761560297746722467488780134384922263948293149157678318802372592449351019948636833649160017564594246671452858164652443134375780324891081784900314266205179285632802604385847407473630575667056451211114707912572041107935605872783347099768180655739180842336037899256460316415793923589996770503938558683050735218289848205422774080176576139000052138955930951754210850624040382913301025350822005337162701360084199917163372723460262626367456036346773255578600235351325644835515954819291094321813752923750274341069156448283255769407997748051349351139102040858760039610811416612385078124969276630211744454527066856647741456314039435077321561173211130012052563744564837649180659959283974575925393506058910950882870088362141782547876181628662382294505221316794461058112646234697337681896912203793531054995043809281137716975442034148487378664952505733910293536152222598772351873738704694885644274653866609259378800710104700677466903941810308261640401165717899154880203914521659739968208521297723317517410530321513699277130168113321536626732424909142773080513127360820542952184353661394121779102767852655684588754623072218351591912026269193681752122702283603626550870742408512182513385300860473850728273978867420945393855031463679690390385486500572502415903995745232055656685653383261192040539865581610283339503212728363378657884137560610447057492502915159264592638639022802658247415551721311196772829879583857018242490149341020615126634480974953016730058336393405067197021172715637509801346335270189036768416135982836742642921442159397944550707117538773970107514105953085333441852956538821534035607209665573163524320976324229258675591973874036360378151213373679140416212224699400062676541390489265081274722239755668368794372153899087696955359952380336181242672643669138760703811479081608009363462185862298142101918121277426662917364441429845815509010485527086616876946109527408881132026278841749146675830397905794850039726667395811695932243210150088109652895022961481199071602895368697703630486647422193243337127880335525694989986735061429235747958768485770224779180035709413376017186156960073789675607662249571386205456553434870795891236574240458015652271997463104801310946941244640648931667717674267487727755228242300177343524062891816744221892360904114408492288578266787832673429956601880100297581279288119180103269804859440493354656128880846389050664683321173773229716176057371657995545472627556257053253675959507327028180780834533713752374309529858826887462609316971408237837400650508380658277697493102693121604186273589336021446637204374772467221950977094426483052629055716839901125846545697281013598832643397216077688520828538893006556591669658334485001514877585261493918996551614575612161849033695088148422749740841366859495701842648136755207704963645737113648263278637706563534854853555209000664541223293814475953106193209423282520753393873708855345785733348328562800236515482176883766264032314854037605768150063027846750079647028084831678329481944501387205183398589396970958243835628381527690343730631156927793817683187669374612651848776294003526393653299679358384150779005269109461363438833772278480033294339959088409710775051691597877935641126090569812705964824855539515770219186603202374641581003713899318859390148071378810907642459623160844489766367026454229144981332488586305066777898981698567946913148434569658166834292491795682819356182028957986502330211329032558416349968599174079203233446032124953662543958714463772576864885322037065445367126159050860676335766399415437144122041206555814614071624528052765849165732634796866378992300840559320158334416630634124061041028596579965907713360902415800478134136912465322084288561445923190461791023059493418947703116550264729898305144946740483065828408458249200752504569716455364095862575235581148369317955135617185871801822038247533931009300466529532693949560322685594180257910588065661957407701136993622517383005536321659834483486127989673706936860110360912095477123561570638872723450074515438953302370032093209746192483520842384355203225701958101041835506375893799195072929319017935472950272666165941272124499754061518752574950022179019186183875361407238028263395921081461124647618185727291911644857452220817067380904276942537852474742661883202260603068631004489970176147015455378947255151491660521247373334289007208460890085125711593777236270961066781496130011298482316257739696093730637294837876077951683225361098342152134324632196799107720322161721558790578927147725314703783583950883582215400193003729759481691196539167331750260785320268370002051356206335051807926182418940035901564278987573656242435565021694000407707532914215166148775669045802466759633810012920186806335461561648894424590141337377088607797202513298703443419997149458232452875377823239333512151844379715418528162964745034290343215898495867042953966896611524648345395700668773790298796811057758580710727372754419802055221957807965071495473057018156579329891527379038921840410430528566122024577710247837198951179243704918840613916173613983226090373558995275101153544051277777424154463547860331586826531478454411647453503640271387927816621654462152992803955089588320515048998092902859793819373553259511709809568368367077442704631629490317123337030788392152574676466569567794926548464839474561745021262815071869416091635518366432053390265194452283481166886850127037805507455459379108090208493059170953562938147339074234541932827841034365207416925857404452778565060911158252399481264858705129404682744086421349039896036319242375494723091499499382049306883847136552011247367928872890110848926887339435820584785670932934184979012595526828463712359917064992191731834869935155651742314534187266496781545239300811061017721327153522461305363542273833522485651742489390771750643009430506043472964066430666277128772351604678141999550747416592751869290964032997656754404555294148861202484868319174695192546380336340859147095375292885446873938991628529060801274704114024295058098333255271801817057838581781594410008411659573421340959665845147412364944353375477793229362805887432147285434364353153048534722866513761428964241174089688870605963093696136144203708182106277198719147229079063587220264055441206625392599726853652539933875015710716045629173545843949985958992220626507579338172734952953363773440226888292592897329222402460501984719393268506821145480021218554675887192921704583408513096423022838246372529160527280557234480818688012307495665524531082594195454897857018776320568476915596063168507633264033121878872178337402382222908126002930625213326604816824183219315944981616253361153204147857998377675152788614768066950959199237276249905572728493334470141050286606732212361891364025253829459177109970634585235311482452141256627797298169806643676958172554269809475317394016871371564810644776437626708924165710976211662726057999616161732529665550523249622914836471643361961739831828091554715228233645667948792395418636434016481141497751856403396313738247489447586680782187628418445741460089701747779170208122497957987577239375073831700658790306992268670232676447288006689291289825458241158161031157908642647788897215037840668252275618433979156503013926395992839146590367950497929303188807501570068540063416586506458008285556265727528440834492545701813178613879680451480654779017398501416498975119481811306801421998605225945406486100580585093163417109476709749380551335211371025506895376193874310612565630765893798208323833814727263871632383776372710873804103854649360461295499375707616502341487149143450757903647943243591225985048539740647975421580595221518093738378778206069317534577013533929753764285842785712985272706080508011808715873776127583967331483209344095463874588030817131034036118461845994130990036122774622989682958563227889590894975618193209528083055184311792661548449246235427149829252143910469970725726242119727588955743347947709879572532024284424431379692142169015574767246806157652418508819091903980338405872598355265197177521460140401270812695368579791362771392096626527843624761019693767892264334665874793641496650956332616726324331464472164335350745186515944567129196855353392848024246767212162489899952959680216274730917138942769372517275274596112919141612383503601688014224686828600542848122925535685268459067210552881712942375202769679591145587801487285723827665396624426680145781371486797936841470849903557838647432666316944281936640228874398337404663386130687564799675222865565171522064029732721703594721533847127325697142256889343275553776749269661897947298820349420910125698704847881723667628330334412517762371516277584511493391153052980495769128520409784291116798573719861999394349968524690200559906357459404962853732219831778324602148238192460328061358503825975167907076227757831074403797513401035936930325233068797908786580699850616970473739412912425113657155535951707064261467482927513952745139015751918074149667160416446821496499194158364504718603227724788680048797949855229512448032223273272556299805494544334562886810467056245382113262593066101057799766602239501111650312226773155129691759542075272239977152510266022468387294133946185265786904680998138986015212990275712385512824345421598087881113229676303523681411815070973016626613243077754747677405989399886349752628930175214040781964739660339519132505868456463784229815262271004787283578673610056002125136706707267423400963736237290480959931089636585022192341437718023506406754849825491643686158883611178869797548905501973196487769207531877469026558451480973981681001724726357555598918567864403559522442385424893810615623263204371066837336390867248808142078144490000954600863022405587846809964318107855493621019673037034853812511172063910163316958250421899061308828219740557682624286485467882134950894122889955813287741964380995544747255380666487073446911352105389118677532646489406495597122320324947160247272863708995502533436755447809898356530477581677492056296215132470562972632077534640948740509812028506595849644469417703984917653693781140439009107155939778822679352289141008622130046262627409476646233305153403344352831108000958092162278941635510774185123715434444156712493213122194419011166961170858685930543419186905529778253980760806392093085874412225566107875656526633830644697512548954770695435221857337685748371601266660005001860607177975454041501025807658347530618938485436983998687503705626677385342784611038371019912803130947787423520418693967906922205279838994036840666542808595993238879323068193505668867496291290095094321248911095566024141663897593379641274804236243867772034632296287898520406349434452174645552885383307064523264903476734590666152959240762555484977371151623868173607115729729193541122804068014723104846236113596652935699306965166270831756266065875299476038762621430295387894093297023360479990458519857724558228517819959354713799677312305340031858450527886702304687923102595566308904260100495701366825602863760762573714294789365143069339727916500437737557223028552955420606216924632936420934828040908252541586433391162200011764983435856094642627811007548965663018848259024949182276048591525877485278057770196389418563882781825738987630279352791566779277615581672794508135432713257366790110182005292043938090537438367455965123176159349711200148807012356408647829633256636960150647791410984863166000431088553995384261470678887978783377086528262089744968375884771736717145960843729660312121162351247169282203244569882698345018586169888310103172726990829897225684161073917715686749355684171891607426683076359824483604401975591017470050397150877430865320745971966478805115426557603282458056189106837614712326173681451191121185555528990521479877854507210686840512445691045615372909634980353279672003185401494009994730283424021257277058036769316120994238304512456949818054938056626043787180962612355160811719859577773412357965877088702507756414232923379010650733534438273868499211837161113503345588638896463399157696806027812818067656413296889940153900690305385533001068415818194492387984449238948867414110591075334430515844539278756385568180838350489335351039705313768037931318606907354339405953155818052557133131768223600000905254329264053106431958986080887755149884343317436661306598386809209411776392708043235299802388519711958212880459762722981320671497961955224739399374747156653625581924938675134247506263561687436501584919611133515068227123613262021034910399725669806074733499084479398174209230254648389054880718115009834796816220137164896055784573874048510421825281915703261287092428125068610381292827012066748687527896777524051341459245741686173244167198301762147130250424923431840642242201494560768323666379225793683650392696742771867057218703269721979903054435481055412214562688199852932712973192888266646126567903771470968252808130532089611412300923965111262514829761308234303990013231249220424768304400858483070218037287137429467002093540193673119725307383348271571486574054609647516303592684520866496697978495159051013540238037396904645484246967348792140124230313744777015724173493164645681499754758384273919909712538190490426685020432790103684119501440368651304280703264452766115705704887772972008000682955526408148411431149864811128770751462767594872383536607648756934535302115740301092899440857279618214252666323361321678852521373345211126639071874884509751523773581847641112647953981854119191489754850211231233998202498562016968015093104590158657715099947061825134251290521480366333580931039445940484969660990148162910027195409552331566992929325708931017005868787833274665700313085423492524581755196091386824087620071133264692609667663899903208755936489741046384577709845233631570333511696902142670115954106352073389705539827659871109451586525597567733464123579969572482917081905720466365699588874887130629431937402280090747324065992715891473712069812468510717868040567981573159307041164143755289699595330398522071677043522295721050906908391271158972289814587733461714961702535534665072069380769028210312595137115113213470425965083835849778436690358994250094729463348342907436500081546411878044709055273974689730219643136759102277626365089917833186307379466444586791213635549066438395467153488099837543426497521796706307789712619098797130912673261340247430936905974820439139621800325700480225521328417286490515983225276601686537359163832725275615251938896148999537521445338767300066239941200494851664809413743527302128721809004685431149674074467056515060261685088536587132223992897472173452208925463476106463113706954371537044889157552198145624033428724353956773978130922602522463787443005389090297556228611997350044211472452739193773156131849166361215548191148101559975606397903321527888135639551939528243410473096715618464314764594461491876491175678156904034253579575660830094392033134658913767443613410033357079248760578267342979552769253300002360005950824075924704978988453966010881152459393069098665194265331874013237296671778383271777499866950782225007681502024112069089944975054327717006062119444316601337721933965496172434600644406222271117144725136526050121549306902509298124057356210286947854243241631840962481977386885841930268705611881990186472243846538891481027321908249461569663839641266521287352418545913741587284997526146950006175981849809381739618931840863549917305861383968705321830928964251797374174903372610332494700137889862717319406159439616625002851777723856220318721073723241939986414228833393427159593105426440767377139142407555758806697278694533408581573695690942613695098933974140733057957525893496058600541759722942478783748523111042820451341385452212796348888770675734271112353557977306563341146697203249867914679926314269681456107638034346021185783516879657619857401075483616245738812648829190726215942910278017204951784988721112998455435685067037936588005715278494990051806632037191590707588496303669392149429113563188576586255999092894763349997122276136562016144601902374659656001630302269398055531356805454541004059883555875490002599923867205664722450810870170522038149733001181650090077682419221265010084913148635839219904143813702219324273780138958107312214615121360664876827356195897673284144250260705264708386746636819396728648166153071907927737846412812343545862255214866001813009366108679221068967629202169977997669049015746230270470267896209991818087223594265155117133000928147943173410369528941832481283341240323560182083388496691828855123136064362327992998604756492272736023534144320800868631147522244209852379084420401070639989659299439855719211731759110253127962417709407857885801813999161437310380909533568170844613355739640450821286175783798122518634935104943419714476323493499946719883364418339197214703961012240250787595249544917564172592241146165157872598128811600744857535017871561302823961290926677961737718308482773607501037471805401086855278340781735450920288389351533376022011654518866763107223546549259061579262092011995040822410480291501579655041514323593590679930266353779159057382741305573284885642448278027133675508111153560673397596003049568725003399325970462376295717037394411723863954997380377841414652208836864230501580945952089186811139281748204687792969568568999509782098877893556742189806463152688810898882202430509984982618985615088668487719653716929721550778414317988761729353755939596476624656442939653845919623483414184143909413681592830626119519095336900850343066378447370494399698046437587533555258788874562094333169408392039691451246010452927441211307508890238357108109271567292398014751840879731289210105181188869692769776976228713918670294093356795362253533916038291320374906061842530397537914192747105739954310859160303258070874421091468199446383745243630218617499328388214093431311599165722043414814454315371133124234863782034416934196330553295874353792287105188115477805206959937758617249815614971007411481443304433065487534919027668928650679590970979894379006884785774763625029389538021696086886608409944820615288921005905792124327891468294561701777215758028559315210617081815720190475986158691551264991298756600613614331645752516964066863635172250188153031889655248333921766353447458879799042504973965503884784314865599721491906825268494782790103404112979153903681119579403650393057770591877868647070594874926038390532004489226744830127531617167645485047797852242789575701981087957514251085067621556991080600464233789894229014824778079929175202474937175661611747697543790672368056618001615501760597220239587010239434331753107121465529828773812129200141351326531809202277803502726948259942742740760082934905933837449264642518976227942431460066267779210108709540324043208071155464396132824327205826515545911278135125984335766636623867399217466647970366651934026485817295087214962841761623442180726401232879055908038013768287464895483498336555780409704120583400427453172776698128680326120353232858003058606917815626504705462846228966560089604277671314537278880623245995714709094448271793515231751490781707425395417124970832724759620554786031175563633483177737555572505323477840080931400844244628317765463040593547510462847571275703535826134458142842602945824809102011917175140887516741467115816621656413851074364717496824328545585299029628771973348485993204126422346715657663518986546334179170569329720428498328380115718308912233646946639646551773789763531389080081225345989034659443400870684109514668537230235787947808793364165343009338899582092270845409730339744578335030941093622772088346422379566527756291645424577345910871060380927502724097075993966993646875052981470715982339105309632761660932631158257434940146472114384153001578121883423559146036765509360705229378924693757874307931450673653509174171656668190144223389053871301928493994122295561412800131715226357398729341267250671457363723162867442902490265367074875099596381510997409324356645057147888233956345406529932036563360088436094103905732026906504806227853099520919765747935158943241520825256720479813045366567957300578208031624146997753622161380868737938868193606602019395540481719977135802669911579723263889934696479091945871618491566782905193132571530868084160620706195370651871039423330061607909908634826060965553454501855709803890042435844680998313643185955934590295219570224275789164566274062917427374794121925265832657126048188317937534607186224221030707725636495984912686861267609633176130525206173347183900204800753848762856617543454217349012777117946898224393921020080243564011699007893278106729307423124064592302600404180223006097466563049592886091275137524755683218468548196832564793958909960618588007668228216708762803358937502801332064202428960229948668450790202745963552833216478159952514824992876692918265563206786209386237328510470036561413921295255577844835855526371714365189795552266669182258375307934729216681462453488368872885910443673742581020771699839259196337502904821060145599099610388630708440782259750310661048297785485032912341131360902362859589237469909057156900232163734572445288204884251699225419820438116447825859053284251979925954689842430133338556481891905614353643825102868802247538226139532489726908693190365061103408744362341501114732862184442160539233115781116580640491952352894590362408874654121169764798526559399582962805013864559278913512061587909958371822103241918092224936919761858360657070055777982695149282333337298868096132576379713519305410632311461878224015131142393426284021344669302052383805373884671859855456242626790783995322779373298840069877544114948838113972706889114557195474854475846744068492317920341010803535528390929880327120331594478340269619609178980683220752563782951702837169222944778650948644713093557492854804015421173226220355992423005048804889250976904776666199088723226138946137663783137027287124031372609734242003064108035910198507347134866141291297957756920991491156315363003220942250173574953444980152653891036498975292134712860796200687114565080009612671610734647179668191031410523173487931595490124902864180649381881347570877783961719223822669457972673390597994745095034900155414198978317377068708608364305195010297452396160014617670675649437092523421274232724790855715662182673064242665115191099097001715135633334765613136468515649724838651932736033554630595270724810019467616252381604327288670763455614580982672658130564276702462037728901826382272146436581550336368265337945223900149948428945292906653911367977233042445607177933467984462302438429407416337462560983082631501006088052768591144901663175654709962893923899494497691460456833259568390469236495751794436614102836408541310192373419098523222881616569199998441051488135027021591722799134966595762653799161514371388321331122721917532748633490067189559052115897963664074058456978021959067510519048560020280307724739459026558324310162636664580698827349687975120998731556678159892977064804183664426989105648298678053321992000420611044142491919270063910341353897746484792841347898353588349155298256623848012220397702228633158859223807050038776913962125149094068068508615031238165857408107682120066788997285715702055342389353558097444623645762106124227377827037466807127256829186347295538732219010862563815442385594654381458374109478133486421413914674821784968698143918001208854548194547107351313426370393375890238731251853008634794165175797886876258010398601022903162120394553411224831705489573277010865462341640710838590419889895205893478849957728353809768591001290107253966113754435475329064857463689073742203083712093080600592092015199452556422790603094232007594481970827419533291492194992591412999623808456464738463730531227742522388857376995496937132652030825487167197767128644095306516343376103275788076889594375768811674730346655238597297146996186693730664488705803979556923733020936499184037425345887614055784813451715579070914165870132563924802863951762733547117766060594852125926965899751153688590266125809142053151817827461428245610064779768839690684402599598482314417604860930494548952270200292092321797233079783124551758159217562161640425325292773149861018731984635769700095287899597693642089129094499242369030348670656132130913961811896194918472905789923922453689196269060892770793562454199440269579168471044206507934929909442518030759317331303774699030658443601797950786837450431838391303968354099420567235359594005881426970401133937568612636904026136133800730196412630918152154853739651985718244363457252755065858979434149949088786238822440099909025065248589081950873500015783998838797249225686295100816236189127163582532863819654711132923694092461779289207966382724280682848248415688422577485243412395837391888088909760952047466824917706634963381790511476826434590173977722261125539809485602898917970856174990657964760592743889604078013218847973826568379647936295987224963970002736121624115409231146208749398559367944162068542551269966075558880824724664653467060834974497798967030649259449719471920354550994557716702849336292956213713170510682103976575590144810679031782273326535381539703162241108154344194819965259867654543397083451140276444326860642133132974203888939363673307853612069295920423543093436916868248270390062726860716231860068045210453864723220131299160061458539920219525268244186077620586572689018300567382386888587318729700782046172190830938581137655083775583700266312357620129288937362010629018478966419800388220497625400199402391990674588604770113538289391038526594236280393235915157843343918194527239070323887209771728553886970427208800564642373101313781609269240040868674508185977199448288525561806198852285711520484333486412807087601062204057627544357743975379099704908624803233965791744576188320718234520627011071159894396291066725083374773994189130907800623647581674910734021168248864493542088724799861834638480691737307555406767502707038815029173139358136830120801619906020611036732982954476804158321152341853024353437849986412456714870415509853056802173801532388915636365683965310807926424547255217399187428467781826380053551718916323738904272653210533991381825940381907652419260009559036927869466442726223238537866896962056445572582926409448931777305981702216495376603466106736979283979485790472337652907361913460308776720059076240822303699028050927267809616505204039696691554845573653756369004141890494265850624919029872155229443202269930010964067023223088787515541841998323422990215450875074103768152650903809695368705758018477475352129218121097760810456035885340175307069211394924273300709586618632424801402314058639784168268235890837732834258022028432479021411686201328838426493286509871881134975698738300907680691573111600206127657250399100461803528200531297838176464129421193924927583324044515732940379833914823290082553478166754639845126656701380139695328675159166204581015851276403994994468867884483047258599968654896612809183167515228300132491481327775027266613952394486018486830116491163255911997766300184970374283859811820120696933851272607756916193684448677125192357526231834827092075599132165989535543455236323871529375579594255690683117932635818748885777894207553725763968230691545493161889875290990215114705730547127231426905966100452654395521415955310510144252790142606982570231884108490452491093499282670828351093670887904741415523905782277280181130258375877440433509645149545219901655019825600904242567695991044723520409659917642409985819632643455881789662376115054425406700568788610308455592667222491115396858956419560561363755630222327600304502328145659403863703425946636135327025846229422170884086087838472494986788221709524150500366383741516618811965343547640407863178058640816173978963636273939431798890108731434206096216056130940055755911342582402776370042916396861499321125293732424484625846621865999843790841007362871070293631171478550382793834404862278834042134489713109893223536325146186895252384590661762766626055695656035931587890585760190584034251941691855439682853975702940466885154796648756616083275002205438941605270190406410197692642371254204508119888953998430602366367361926362283520313216949906444639914438999632377021350935740708971389766003703157189398493684218650275294056697604749478485406353336935343004262883786026326607094034773563706511615760878622025548215853338575471484285427968543394912533833306864533501520241696258120930893829728682794909145153197128784869484079196628073826808971496671503204765169991865654069774236774691868196987743479962780840946365357220394772361534232360137912229346467416771183646114022395343938445736436679872412466199060723104584198285625092377675084846333085862654114924803137170087904939380202287687942919023187163965507736995612366219699733175716600942593374864226215280883247572656989645197460197121281208184457557961924135163983146733543573973819439533158451197292372881719223553012441903272625239468694191256178869893507728000146332435154570395023148047774665866707602869071832093460309662028543449980466679495069894698730032118334353725429870432848021702362837046252180482344453146822111537537910846244682472863464379486090203929597399605059645301506974027952302348346017657928465001967536639096045973432334721509329469252363926205866357588532554670255460658100336949734455832172238245390519858649344787537364970480204738882254684314366805680237323206678947131075312450801721688017362257899843155921398323692938181208523963580270872055914029540040261524409394810202243189662247907254688685249884275761386236496584047490084008460523935432302566517841598658867676473807254162384345497007847031218409831503417192998992859115661549610976381306531537369019162468061554370789609766169588499524531204253695447500282930406085155786386736835224688344760079965662059161096373408824583236581062959264485934918291413599618313105899129324261531546064488608736456649490246086490523225303596807959910266180193738619701583382324241965170425917859483150219178668353752063815629435785334943232285520950967534077632283451199984154934970472046961529238896016371342439659239849413831024569117452102940060245533360336651623075988781923999351382057910784444797410867301776405478295985253121163277397055591797288737503037043683515233819649715025416829874499925326623500431056406246916030399989210369215531574445325831780235410343651506471464758215765101020599538286227577459527430733431996597938883484091449756608275913671070530797659920453365718277200093310371100527974249990594154231681788981474479991410534462022059439811659591054700571221740197683385656645211024114626355834322549953528361725387108916158037690709094766047301519432266165358023273759088728512693033267580339586237029356877212763946671720807733641741665902049051200490097592326478854100106165937167535424009992459150459901861446346282516705662859200676331451179573100767289512490837889708731361468208047648412598232705001429601074652150403271884880179941477332801375426112689835324042407838250577592761763713233742948071911985413361451408806051926616467381449381919719221095686345953032651675963196105425509990734774632023004836253167759290292379062342261067011358222945330380642310797163923268759266287259908457657559773251892845477604113138634501633452983650872840541849380289820816135751596394029762334987121295166099831218609642835721832434738673086208105582468927269650457479481049398691946784707382750427525637543187049476168466295489174521321682356052788899946978046489946698113943929940633194973858239725115939977204107664226930302361981451006480058730266283455464754138999261964960314844458261224110143710060844961537775366161212433304085933727257519980685867818537245884830554649744027723318701583362016706403546825797708802344187221491780939169886611081314114241276707293026489983389862553067806177511317282274559219028786131784251567389998562003003844439840416250711954365568138855587484005277972146405447749577104892811438528037632076092705904224554487811726570207249449582869157917218304055937340972398595694121631409778700297143369761593882695482969953117494668752529758211268168110831167236209886983025181895959845771416036020924119899774783314956160866778504823622460296997815160294477609338788429534479893863020893917575071553929971692285454746097477199172588392254814817956914786800842075828131944055249332682908150858656565712927611691075698131512171686217602936833027193799928763921563529154221880267551093578952089966312290092502108535290983466736847344176078334776897992088707692696884636164290813281589578711341844824496202549420029216143817532602739050901300172703845888264232798250032778059230612948991882687716994532644401218125635135793354217218578586465133387851958906927396857934634864072471600237961533084103025222651815310364912059797311541449786585146326291495637189920408360490017856416116378159258300404546898291919236635003094356939592345908363442897191801049689323637669900082557379040847071269277722411314449411980953724776633565557038454725670949521071874276575105509919814820843126524922693535427239600476488757532808558530947657405588687530064107909908400244386905854926176044994787700347598548520713350128505066914365940028827871265814699302040904562773630948144640417346913421348479958261912760954615533019898689423818968468700733783460939661847966358797820495340735890460701812695090641051885758770185335889389397392625268420264446842563789370315967796302160107927697755786517614422706239357891075300631922854801375844817027934605696163079136361324309627458928874005025487833765706588877069365904645669341304419081543524500895826662482535539676649456183202644434224367542294885261805439256971805793705679397147264930449519325497015727517471453747877181045702900833785747811341527251292512368923735012634619687625749161140802660073799848591415780778439803705210721541227680736435842747708562317874771442508286528971579306489470644060728817251976967995595053501380814261330051887540409871669301160437841525464702564587896720104278346504552675798245374769361271510109182015090470223878597117366652675043148381248407823420078582820222005315375163114554712343337820450643387325456746657499156033028913570400100164278145122610555708311551291011404558541901876680836663684058422105137687891127513158666609104008187080027714335639395169233689293830268032397334489260312165940200863597449482554223263437743083022317029698134287738109004187172135115213650627675335947078674476491106144576341925096869638717395068701016545194171913088831611473626735825077347594303532487993747265284807326948853509262371202266643572723899361734296343164746828512589041911536635820942210455699417991742950041691049717393604990758511740840434315013460176125063627244674953073619947112006393645926182602567589232530905745479622407635985347048813793465570576232213100713635212863278702531870805859933873842745238479297922495587388317363922852742646649563712579788008884783297957283182228181332734777532872351284782902641129729798891500432173135465529925038461195778020079128809515963164634667692859080406773016055785921976574124676458854100653927157373321693269248777387827225687742477963744168805865477990167539157452415829497740802238830396788808033422055522094192921270264704351477111635701187513855453725071047586595313336725715110501764142687755920696333088299509178792413194044497284755188729998022145364487936888150729420177339531623994068597678721607127177002308162606144710527544178592720876804525322097882238997579744160843072217854411403632595158820872498501321689438412032437801663195050749546836680652157980121118326809316618675161163349045401201531737915669844100365556662136179610693213323242863158644019214626659675839995710547160890389321304513747343235751163534977382698105047657337240586388149144624335637719141606768080572960233987646819899256701205685025034910063147699165879489190198784264934589257292928492723124339308591344163120374843977366457910958458606783444623808832111703231840934750988069094141750615878155203672351389829613480204261372305415456979734754545185344553923448869568133517413617086045268564193884417224757735385678247734128933469634775958774453085652859182696569426784400150991828846379682956640756511007105782566604511681211650909641626202186874901428307166006290164825929046063491181230026157132521121136238091957177176382485626088479787907868282702836980140784453218433616665615819670393891593117442216899086779903122694760996386857050708319339111824828958792485558389957547319672032281457297449134939598681787353340691229146046065483928605264747392629892627529871423704131967706811189674886346796355206537711717446907591734595385425733691184290784851154742385778290512633260159147001608374021714028446129478053111624126808394707306452062543247108372892604733021720109931139168605903371416272216829176317185770905443034975863443018681578454483177898239240548725328459210923400860597362211718715286687603818978635053506380167295828167993975241588556490733471716825290582237324531329891688343938626800395350714108395494675133583425959681056289367701274075675573574406558702029682947240041513071450111084707974508993180173141592111570801581048050292168098826311369626906039495089472476565663046924632545674268237485443319373172893195317739948370145588941109773358583986462753948586836535075997549701613529743311395987020726400869200285300616777454516977422853792915209050987712931522325493844074867154113368873878929420444585348380379779467704692498736363128848304892377472077541297779047311802590860279085808739917885762307453258155818117876720095945901845081149438599331034780831548218451514106739211068787167961758775060400236338273904422922795387265758246126314824458939350079268962103577963249021234824972204739192148022333190371247866426256764393706434017336029950244495609400498329808407018311731899046853432566397020123321422530644109288602540274752471909467000793095177407499850287918386187661119726048117420630845236391214595804784863806906707878631500072709604460337180449068268627054478734506097250049696341177379116968836700057262234936105298263549681642232197964232578783301719936128750773078143075852613895148191695369536085896517971248966079149566535617445401163461834783202570717992701886743844387225726964351367824832308235073771280487657026494769216062829435509965483287304736632868067961225315318943738930059724038649678039035788177212867155034314384921022357526037292185739970005840223616608417313212218767696377912103992373524626350468250780284548044902838275645907046566438882380282623870994370891528753943305508271590541926444542293871196805063604359761231778400955790801678549982439936250975769346832833954998786697847286091408013168472879716882550132079335509207847287783237791825854897603337238413461092752439627470304938605825854991259877716211891534857623978892847864103158039566074072011591738616102221000872834552496731857174194262333830932702875793314003353827005961733047317674169779574140356577631302703546316032988460966401525006696976990431831918555894873997926819591237279315625715409228279384659996243865896246065046900384108827461395866046419654165804563947501194228581446629985214127744312652981096438134521339732777433192500011686436151996941784855898900402479861123699601235685643112587223820500562606249258126711997456399544372029134025458022382193210955299855722489352617530936781195213607418653172101502220729109377930698370619199879000356811613754612674137988725558864859572167649238721868507996380838251541904599909582469439069926250329548041930363310428756946510441794483959410358651231938972294165033627412395682774050497179139375430408557426470266945195014290968777183025342570130245617768593691997438279606155603547577825020869652878804069326489348043178421777008899322875596468918482801621061215861241846325041432345700038008411344701235938047048885693247721561245230121974616356167385443927394763296166658521800786752914891380696619365509010852316135069140237148380559196486598950154884192996403668275316464453228829862621123216600177635613974085080185801034033249364744702911737219632104200961089050993761417827002436419155446835588643685509641353738727446440186503223598477451501312673532350557281464705255286031084691899863683848753015014034750477007439289596421791955464565530558108143971925568689169631297825100087910505125589126616255754600375909734646543507762350940343612996721514642258382771071810018894268765930884451187456021952445694939273868142829048297859784732492356468082135414367479055903232056753337880321155060918157157008902260914901084672651019265358698928156457182665136094457861459375865761917266598467328181582169479431861667773956551293265143120338072556521586486194381388952197426557700885321883847924023770077031818961441056488734753048540803938871001061336685550668718137981480337458994375336571808675939177206411568203528570796972166953305875170572688082897173998739479266901508834858515342742055821021993896851044547618819252258097814763305919963505133368644525095659370934603073854556210534176088401516024334948911822421334859264490754889794697698695020946707254485451755721899567756525296521322584641442578552404678455107250194116057880974659442324983277854298501375906012290625684350920661872508363955745933405979864841976218820106365139924008236456474792108078783024212541524373156339765840416899201729479702749039429753220479720148816710634630815589298859612830625594487531056201733759755083255680120083098733342863249467518247681535497422370155852344061411861648681532168013533407766043727843637412443518920586312990923555610316056501557789709566224846199497018317039224400669265370483767536113100035447039349665422996027754822786894049129212512003454940189158009060482567587393720379458365037999951964432105415545796209937720238341132253427841076323816684094659095991705204340357349698447583717086744781766640415756682150456548491016694621848834418668250420759707696452670876092804529548443716206489420466337348733513502586998480628774526347586026843308407104561636672648317735905869156856600653874738505714660922710094179013411689124843921357473230585054582331139124607370022872143030152230927298010599144126210477086633857591154245459510243260246708135002901100704351844865073390210104247235232592049581933502466295825477593500334928471475129787627201976022733689731615724991575614968717287147777505699463157501413870577941537767230866189884912031892861740230804078827623208980518804368073943120158563761858097119298405511563171043615003674193452376529647359913216456427263468682901885757978727147455410386744731149121672987854451257822737909016509346965351912295248851692591124564030917544082945553405772582275713939433544521219936021456307260398589518128209896274384128044176907932045524968361149139404050989941777902929376174741186662702360044975803580593538856259374899412289744612253342047292523471313454157394518203994265891301157297205494944263073799365543780326272564346778540105410582130255232365950097286954915035162866028468642720657862119772527343023496050329530642783984677443609537211199229615857876106718125941428178229551434674648275932971289930451409473890391924372980521336598088083071680950572581849665061416900534179738621446829625226837236335503701354211783157503602714890429585896861300674707284306697599787560414662894343853220811487745379155019335777482255040237708774851084161421699509363361483524339273844973433088006666959814917909366342598372431678961964181896356927997359510452520648799350571598155359153448211810533232700198040464092325305072987908414128010288043051800089865192160168956845096008947502154777028769483555752978069848690310959769372318767895307073949636096039337445430114717148082373337251681977761262966945993398914665132443348839650928004312894090679925455053326467362149930191172154677428312973367164269296104307187198833258475607703922898048705081068445330680193195521903614743399039308244300275584602424929053415373372094359113789632581459193448761744136893861390183075539370613309911101686151152578325722416418587567966699536333069580672413268180898248586299348120571233471974627517495133696020914921218620160517292711690401398348374820091880940784555607634605812008273375352779784801873232178499565111111917644863562077720876025299453009909324527359860300717066118562364340541404137248962696382895853474491432873486000490074381621922536614252214612545415781192143633990978651918095095214729893325692897957985003361904258638455732482501109950923221941490306089393457472701802755615629819172579206162735138455884334241704574760473962648873744206197619995206685359777215013319424808993689169744740769038138727678719084578550850945126837977061055067867716119618046682255351359273045831665324267824344261863246116518672959762672220088868993393982499693999348389829806903667177016462792869215245423984072719975535765090962280950580601623223142810144930882122225895179418635364350818603679666413903032508353262502544061693118661859087839384587464528809108946625224322292689849713727137713636134115515053047398368939983068826866687232482186872751472458513038754290952706730659185737626406148959276651783225769212479308251480920985685596138985274748983962077864165058793609860835368800884676463548352739370292824648180981942263099799227745819681836973993900357080512588865519364098853844032173887050353096309090202138607874601766693977749705515756947255263653551509421034805203742794971382213777304051119389181581712513664320120451006727683348607105314298133722245728022076652413001437086720013194117859235985074678703596513061528304953247330605678100547050719287300560741288690167263047484408743439568321082894381570249255678254981979539400411151063271778568594356842977946223755162446426424656649938869476760993568041108431144269877948121727327131141806855965740689176227107455319090761066213931029883345909233527580819160715460091467289213402776830791236469290879269845660011428759098799935760130703450248016311087479339815455065530445831737036614003086272732895600875325033965794140697448441474001289067510947686751876552449478142516740585655991848869591493176418708896633085828177557836438887265102934825032746531041148888438246915384196729312079015785402198090427976344307494205796845579037307009091296465409547667043082701650006028450982059185854484270955745678405017946572141710005894674758311532321293790534177915226590138854294023440471021236206425241932861983626410071486017097863756891357730988408233313976312037604986487873705714433039333274388497066538018841139785074476558445171828288722663120508431063652709870247097899732639702453573009311802548108486987251352422406753124450787256750602668149001628389079332455816106087449010801790904342957196135246557703755170318714994925677744621400406906221526244314509754707724054956757771815113948026858627024658286600567844974038521024939853961237251969787066372150512952606191290187011212434410528938146699684468759857367925287153833498385420255196815454459943856769346858820076119670243890925099283258946904912861989603801128581436337380225213647368721734980271323800068997859995786832606486946741586549882971894272935899253102192405998224895327048792174819882608611733641286998242117646664133726600355706971980125893319466869734036095858264053425623878610259462627746835107740869607266110452484205793722602950278404170925840284237418700903275856060044043875518655697698271757386433679833940085560938296617982826869404370562903217267217433207278571181082135613287993627856266050728217260094625109034683137640617572241012060280234173025749219641023888387919589061177835216144640729206574739064200594772711230545622554127340311895955425409234475540184411368736154697028502696702792110183276032473186618991603435819081950535259431312690422680982445386865124259678669924276449903377788995476917799195257472098858592480436694901935419635022045396666164715876917382045659967758481622218014854344439542071397469821102748039224344723228703153907167214946202599971311493728374704131668352139075350341530847511635297169572393348274456661763409390282575646541545014240632526789073146770970970395296869315823290312623970270929463084773936273151795058250509276036930409922159521654373556021538328970506157118658025329059229001425548391853142542857068140414757716883195896354669930437588011027852757135860984065223999393792549651811659199144507321599284411796655707856196913782675376383325352707138110445306796207381883184329880864643737575232030676607448380751894712684190868229592968938474298926251207780954320540562474430521771598057194984322791705890118797924502984523302775898640277047691761353441918630379556213360482554921612439848821264638865923374020969541632645274673647677076282653884376716239947097783023957592614006817796326101829746890623718196140669717082448593607945586121577387272525915999090510749968233422980769965743239435721266621120370155005944684980696431538162834660245650005438357103567999358090734813105637599658878849712146852960937858149909982951827455877944940629866065867152355312109132502305498054766956098573400355653147978652953943169632555360244778875510765358419162017972868237439493082127058207974107626035022124248443526664221039002148722664215065216864502747923155222303877711710021991228125563345451133778043296131002724305783610649074795758477898224451208900852010367007528588703284830951256970321751263133575556783606817526638681334550073196014439447900620224977217767303731222648077507428690515231795966559667603523208963740529752498442003507098849574791651606667947760714723681691886673647991596563853307173971589892985851330902629319539570858502376953566592738457192413009861724457085049187852598679764977812762670209992441780676887212173728874076025815216188829644082084888406441957082923270621074844293742532629952410878969703451913579817625232648609004181672990106572823927622833053262255404244940386392323580471799706339936261984596393512012701472190877637626682270226370282203935037308362107549541722550281806067751981339093019818330924953860714594861425261354914401580769059450154632790995097647858083054140045325433410113877610854215953670446793014399572096852134556701076579385489106313085803524617213205835885456211487280026584290777130384002269186381790058259338215340539803209397776860290657615086024868909495449689921534597253179604179297025597701989684257134088481981750675256380169893923650079546915566705232073917069835059994488431602384056043600018220461212549019021672000123106227220554390075609255147574432631749379511867681040939662319205850219109406218443660125369854253483925965358962957650576278386416724376945359740683564237315751566054758423810200350806521729037893920366448594693680188416429823372179521209907060359497383520736696946431410381416247472620338710943716002426184286164596445353615020382280263275868585489935144253790031242031100743993954112389077829353348602582925408009541627702773077083252474381301080077232407789774676575798352360309011732969865829003266565492840861065005673300369127643457431778982378361572713203389886292742311082913279223637203794672342495001201870628743901955507563963773957352449775060397129560595383529034615427537330496108665869800395966921706690130538805122603266249589770157903594718435491998487011703337403809775460473679148424665860833549360900637745106491057539063128976351147104487872063383661361749269400202998558866536783577374145460893200002185294551310761586256587886175425501822188290621438539194127206424453258612112300158690109523943017268111806674727183270731149677876255320684849669540208165156251235376679855350967260691698748919564522635300209545683994970034231001930774158138957788426921913495513075380542518967623185978152607256486159574719852374068227219000803334033025515297097341329577268846702011986662543879550900825817168303476828947743420747111035783196543885854279782129756566806847689989396311386915437183709633056303068380026164564440255674153227132929688802691039729915776565727730633883834536203775481823105583218743821067053244049821328796188946511755381890029773512033622712179210132816785526481287134351703553527799867922072704220780805437967589430887409280444172408482010083625391401352429962838428264110079963176175957821581193117450929196729125466961427403175098523301137847276889843986694354608865404370364671219938513111872369890613048708407204730114216714545310297800757025324907607608036791341370736101117014058562277277478683696868184837477729696486563126675153372676637948500041495256046970370968901707620423073871165942178498831885761857850665708157577642795677717747613140034054783640164326957770351391036482264783897479434146258725044376594536786375342732681183679594411180181760983414593045683752905431468039861632904440852887002180189773533486934336748766817470593734880956433214136608184365638738633779248350016160131560511017962724495593234453590487399280301644659977786139283133010945723429700121292304776789763111623814333182364026112050887119004534573240922314491398020415026581588895347085490132283738271515734114499333461388638159560076686507334361569712113689938096700605130937878774275693273269716397255386989576235036046349595012724491927576404345987980613117742064479830229797338282003974496677556050598834644958285911094244506418515180045166521545660204324021351273502512071734904197665693699778289926632331079244560715149984448761924265493756845028525780666795978548199899676665173304184238867286811310211817161263419246398528555173675546049178099984708258029564100547985526744095784787180209353940940189770789314412273097911903653770861140039458462314549656638203977966015609991626039554989616493758607526730660267054808242113062207400752934073243534611247035006162721609056348813449149870522944106068884709777797253284835451330728694793684208754886994208427385626401437529767451744876437002939996693054846898512823337711310484711413048183838987908290688711868409849939057493524284604859382390324251520795786634469499598779396841898869284432644655342953077229987451397249625912971787729627173717531007104154843635586816936240851465693752156444249363363347658735440918688961677305033379862197488345167649495729013263852290238529584849247756890390382865828510929276912902131180486843219749161256075582804492060531950522148043756148587317936015122728500268413157506432326113911895651014289365820951392761101306853536022733799432626692849610188590297391483819895166385982806699455133184258331970259961689407395854030691482099372029420705872355695373704606827378621104108062494569660649528787543385256374682195165653545556484279959390452628852267527820546582617282179137414138284177408200309895221179691519668222566926237200667677057321993973881099542500491768344982991052623203127187075240371460263089690584273204158498140009691490719940200514920611442433559981812658707055173042180643443836681859595786107499097869312221665224811426904627866713384335311564154381784302114914605555085567800323611834657080622158354893509229167491942827575718423537834868056598492889083738495458979940950767877195736819819610379357640879765833714862068962847758501002316656579687472478912105253818249208361661482096954929989086082756579197046086981098443238582909332045045379248838224770901511393305117233414080438170151031399505870195108172902971625920882855776245742245519195514921354223723642565947814249798191292578816180176747721828275900864715048911559345468048028533348026834391962561523820062081621489296446696572988833972682989537088876882525330891089140669212324958998877282621317465162222484266230781579127678578142620738479212358851877912254839618279207743803187783421687547712525360401793586247179795596177915175138176887802717023079968775350994225666434625040300080515996058386535069006251572523056742422123921620401846650049045467242366219963471727253110200483571849293880923075627107725432587763413723299409862528311150718746075399569816844952679100979805370887633199001994084011652146706538397445813622620215675940567709613278816570539224738682476956498969424941885508138659449636082303978951077566108759367363248782344530621872024968549479476665471217924732964232229068792616925067559225957092960611561782084754622973450425565765971042051076180693609108550020022147652138835897216447332659565830832856666584766658531844841890488664219914418146524104067204791848694295128824424436785173354692320468874245421541206123422944690566327296380555966615785994468023017562704904598440351241318208394855753967756526741851912782852563274384709359994450263113705713493590470502676698340862175061395448355861919974076495546756775086020240721583946474601746302153288928540362619648157471863853242820212082779510523297738519620681900088660403961240983103671998777544171924303763565329606889790695822581031222866226476507913005370637561574883403525898401226591875465099550099236454311635378071556366417157875804363928320190742416103600605044013111137068439392360156891693922048787573556803600029641066950575681509988213245318498156094225614896962668498613338523232813047973788653339311104444035794567514520249351409969273834524361327755297610176253334500493289047144720802208861986473055258122513506341911697360058146871841083462029640448927405972397854371041807850664425797221355358953054726688040993284269487752104946201584433413627930422276247426335393687362534847188276938699217965642624772220666050758846847058212033777689218216230476517052086546067186906855676704349528519020252863102131980299176087856673109415723011384634102717061209240957066302189078965092793886107516253844251020174848046507124046978984373409552183244500745161440513294429190930307246883223050497882058275972986827558186789093374271282984344873015303677114503690150449200814419116920609519965057074392484298225645178555773239446993493322113928597019795601943936869077840211906333661241745761486942161695358908449903255852450974984981997308130012477165090125386300928040249513477850990013393397465899438467829533523124460547238894896502892605990148997622379340182821285786962235128404750691549876550229960643500437179876038316860435303623587227965345682495251125897206372368069398906950019065602405993969005362560538682547751605016298713458358840425731738738447958281751017885784073063636862205922374631523366104245787737157076167055540764697485448082530264155570729217278009967387320728380329095307228549223019483408732138942237099086697004114406934425039074634711106278968371621134544496755696156784915447953997205046261623412727386831494272573473154477802900328224250998984555822306096587965060732399722698674293982667099551419954768091543494792258498603951119035724988084582901652214311396465285201068797052872355526810608349381565448145680425286229711933689325671082186127301802725000474172944915421486925999556130718398937016358446744054033379120751107970430314649278757265442565195586281225015687016369200371589085642605979859343279525246885230072511031535465308438296049360350250478946764542292179292334437672250794388407916532994303683140865480549092772278571193017998140621608668802752819177705851395730911767273688964749987261410317978840632762598956888092741846034191463486688598634047453212740269284964735770725617747754793903190915521279979134729762126929237465617225813427428640180879862946567982785279578143149760488508955214527941862391179545582491244982312256229951056917299720411556294506523636464055425449001668346548842790997635524594981598765273353740223174807800185780685006379479997702297465078405668996674316521422096725302409561225786255936014461430767871810012180388849216350524441920860357223419122459728368987254752733586417597011562114456905851551696343076687294089135659680018159817253519733664643132803043775602493967762228971703837398011368695561252573863613280784284879853341321109014141582409737033982221851684403179328640563244365230195981876891565944249189701709403583143598465652385689003828745359253691007097948208400853931786441390601886585985643081288340213117496110463575869922627891531428493504442284110528327869619902772836718061099651250901189361215797196779634442384714328092222276027241264168751416275007341725155337892332448746697975631695649931070781743275727641504316978582291442849005525427457789769601680971214322469675777214332963274580742090417225881468329317972832593253433053686890590454706277318096623130878987130936865908108015475756835719622023780473634888755110802624148136674908618871847712833060658753930255091100690728273428342684470501491005586627584692836855731032854947430699530086984985210490018242015426895152336255175063102114264295837711404567750265429622770888959398229540672577450938458269781264033850428501454661603671225329673889273609546915980648375117498534234888340286057441876552765715976059052638676753610520580105816639515638575378683074151872775104286343899984600673173388138225838406279957955994897142802964432687742305531492104697422122060172405350507036417753434590475249415435946273239343520369470141382713871569481799400528738593350372297239087682185766093102677418415472528265044653067659252061789206167062406749499283539620117260406706484223847207006569493608666779207128848943273630755767353745638212139380479185981203527141140447438670957078781790706875347655296658559497949913760108003960873819680322297764464163823700175138613460606572348652761688338183596722944904120329157436596465117975381663976269276279156212947724346873342153412377742142175966091011239044066546864065797386190533717979681809565025262291525309493396535244953870303606423919712843365047783378399132626942885867709623589701370390386349729834552721579727547154190144602540979641525389096782347805745945882303156349826782429744580790355706438000663313846856530870389892142970893374940189298356434718084154362669102746497091820445824184296515871248619215333214720524582132705693173523157078731825076343595509385476703070280697999350800078822810659423232702520778959434036880447367353967050544723914361798788858522085776989092334327179847822325458026950038613409741464025347548157890434707583270393317751187483916229164919248248600313325709492714093828988632774426830943897403041954600965644552281058595900653950850622128193696879881923934060653318601538675642347132625595080717258701948158302731039487237834034044218860591038299003824790935012141908898744222633851327922301156512706381477189792226781400346851505478279939150519270752199844269993098718600182468798778975843627840177863861058034901870917164914238205131195946392771153235701273548942127522523937733345972848357338496150407154013759597968567503526669967884713976574562342094072277390314884571203710873378473817405165243975961817570642653385576481702281292205490518932272895294482260731678880562123228580126549882510680643676568043339532260368162454533757823221258321173949071091404685245498706225800054765446364282615017632733985281835809217773815475695168346117343172081930763857538915852487177597450613131703935998384238481557779727334169222839434814078813572309061268964871741370165723938498917216623866615270261377213818415227293008389636221908524654298868364129127015596109551111433104380125666327735237429768221014650044833562489371785790520218962903797154981245121869707802828596461587110247044515983284475563504004790765201886076509780241590110164980813130748723403109928951717558341253301673435093627168895449100666545803707539381138112266030156090062417771931750190404152452235872110560775033012174718618911215251890607361896734353133755779725901140267794257390499326322862197945430690602322070964965566498174012362769256070872408775920413043218439550824314792734276479757862547140291823322618789341314204200758097078301879925792602954875992988833855323183083937387752898183632435814909211243433802563900635435863333052732783227270712756857557631672989438653488095484563911502362788295627968293729512775392865431277463884750378330430423688958940993184349330856307506089901182903130567288485719898624322652852747522174017219488524455985788943582267051817091233276308732289804484401441568541611332355373665800027213546045465583332825314832163345887390149159857846581720877578563459797282927195473670059136407657137517044606884877282322577912317422970341696605622923572922408849499006951564850948120997916643432014999821325882113892440695562849010782548503511671428290320212368918799265463392270232386331935486308179655049302975499073531560618318112156823981208068843819779291329857685411802248007942692971972930822959268981474684989044964216854445252026464932586741433494508643518895689179688427176296936421713841448813542598431793071330552425817514874840725047742543014260624602835597488443060584246707294974335316694610488679623541388702132156898127510405103832001981533201091360848796869509570493754302546821170486137397047705348544724991175485344177787795715159866994775567377723161525345588809389822684017911762001568295456928871393951909335306976739536093267545901804149556824693237955588536370369332642142945106708284313142534856330052503628636759173967487457127789903534918435774979067237929739841568911557173382045694200872888182431477499187640425593954258341600186708675419354934746504008439432017475273907469778256271686454409640417348278864288085323539387442924457517657641090155855875901975709646883096683257863044138141686911667661146420754305777467449050628290621549634252180134612914304307770388781328759392474816447203892772033433821872531598294166846127596027293221519467854287255764880350293118120040340746162135467953422612855646267454760744535249111000771510753973430276148682350229704246326223967924588509795244825071201244703897167958311437742892777818732189856735843977890147757386481051584040226388290449275642953086824500660654195825530496841673960310659925354655173814965151458692542561478140970386755570547398548765454235737171441667830976050570805458558157634955063325597803741376160329256690056888803529644953646557733643008167279684377235536459264561219162895980811896726282054540561575401664599719180086658073160921323237846612551700569065772251227959738707229546670497476700549382502842158831797753371918551341526574533194425083700928488826691521920468153011743054447843179399133651508868760918312004472964810473504594960294953660893929875470387866084936396241561167083184109526783388139575872211746095684494115462122976872556191832111827012628110413869467853230124056876205364210762558108387403476046018977296117381929153561228466717983931615553644852515728470101627808560590157188254622791775466973312394881694605315112704751584796382968544587263021215840633727949241118318189480452841744166400475011474453997230655534807835363576365596621856755806515479628259376379506294032892588773271150483802103470711919994701753555243990135885271933085703785445186349022343427727225139723683290063122331448549905613079793535843535707559750116272228812690934629075235710285461871609287846484928100497730420782245158454278585761447223875578751210896738337934740551744343443696004241351050865310984125509233597118672550602605291654362449093848185990317520166832088189966078544059908730278066748650466466408431420305094085356707140155917518883916103141364782894864736649020653232694960433858189435148740152455169063258749636933965053269159087539184172325658625228482212823691055589044738903676861859010416382866419175407038993238415297572505825658030491097193760416418579782603164708824443573535973898125324015971531674729915921912450788962251603719180133480424887483307190703582573521719301894604573758189936921844943013398349149790618603666936393285761474894531622878273344592075516879708766502046093037498199843754137532882357486902273246297260276128390531104676931270705672027726237669174136964483320268825027430871311531593470655192527108604203119827050741253620688700241729539867363870062602976471140422795182129030824727308895620319211469820228765440214223076128943038496786079904339778266246524388860200447099938600496177248508723488376248201719546952099955351682887962124584496626416656978360558799884149291400840301250690627553558403746470535957874886036579020962505675090696659784375824951489567642167142158309088299985401970953936168963740408116448691173921404836244435348944830409879604123969214636647983519563737588213992689604344738661617846834780526086497797205134442823454369760479962454248215079914211894928312268981092395011438252700215027608693241033323871965724524821393250407247762768146448538400340936643745227274598342553548532078238844500971152075499208467803939726543784408801218415740182590679068198218612475105750328400764235099454209735831137541098816205169047272948621364339906218294199693175668668904278033489230394849712788675492636589136308873669168325119120768356379157101300032735728898475518319945132644986609592896033901164779706255564508379440125024303037490597777724787104873353369293294405876115615515875390170271413269555388649530524677256011777419014794301362719507199647161532863084154480509925447833754199815089360515175570953096582604611129646318033440217156115125077474351925810923033449756997371236046355628062633149996711725809143109694625998831267632087158171422348417134582093290088853006676281756579348956477099614178235420729203971543608538667607498359749313592587898699132451501986509141944765110544352181630808272707256678845686062218065226191348139929999691726813198617108289381252174518007631186583345796484965474964038022613457906544842845913544221471700600749857086383820031709390184210641383273171168749245381566025515791932527860876545415392425004086874568953234928438212136584265038601477106393670194175767138640169724892924108388337709878203692790733442322527050326699018784262952760081093707994743369831882406273869643225660729477661813570593272424894958655591010959321971948029875706880438705222386296955717927271736833798563737695008433338129561595036550456225043445930648582347318158177892827421407652604707499524094116692963366701639137692486511655516882552468012488655883809010256930878329676236050628204005076236756074952851305940035759198372503585934509055039518579623303591145344739530304631691774276561336483155833558037308234025367286763961879104002276403082542835480640909789583416793519039928257465141949102455742074796698341819603086053149923261785271893847926210702337881549542369525183111530682525617693645580367135932018567712610318018700532855116129435529652242287064347072284203668896587216996236048581882053589435935674958369748292917640251099561053441723966349508751664789880281818869837296026310235134703248513260777025059727353657321945903064254286377853242097535203301358848858775795120750520720262993430661970475789560935167000974065544463890718197209654486757053395245577154868292558416812746328851421308270014341392130326932163512351144147350619506849843586424826880718245738703316424219215477361803675217601382198630241990938435577027249819450389644481850009436110277107282485511948080430157639829176279056603403746721043933969493544396637334349052397612015080041352675400229232666350758749142321119853978610153071616614369364109417605984507710544303386814642092796033953639408586612970633910977921946993452626444996642177197826364374658703285860253113880053636142563160236645087599884996811273813398069808927907787398326567661031770818019359022373598026383917015845833538937569891085140963159994379742461774692911838496322164656114052526041071531839756018544557245923658989759464269891072850793753211919207063468340646436451986791817799037550146378041483402266928638816440522656843752778535163016418310889704799826822846001961657734873069295194841926834346528477652823470197396945492958140873715244293376777554054359238666318142760828128188198121048653507121871074317679413716012077096011889245304047642207709342653721590484244134506358926834198233419776772093998260433464339256117318919177502252824874304959602687157663225671736578177593907209983049696112572972757054724720517122345522951231122516833993873137772302484322724700392336287152199737545305920847803056650772667139873111709048108240978879931310575230980691136757474705965333762051362097784449505978349680495251855611508065025541547794516012538987227017009841576323022330808386620988920314584606902661411442978792340675046940538047970494886533908163032226027727112973870358625351259080317033126426694339549734784054831757749810089167613092587298381179098480987451653386579801079761472414599441601518891421594495071906584805145214983810330491512277950321799303785163226934592651958661182123415954815213922751411628608927212276627070686741112001595144800952528010947932282786081474303548806384080441692579008527410549683685150247353453893849050051398734201427381442635246479981319150661557576306887716997404096439160083192506615569608819241731155312485561104684523165923073105246478580013123861997921875600247553872319164267810963894658116431809606114667236640838555886853246607007240280919034913106467123205395333209662242384880098225889885305564454889281323745042792428304212730446092967362794431810364223051804491874962952749870421422323285927484990548005783179976051332616330158461205397740999609518680204917128312119146369942151521973507932109840396487016453048434188615312003951057855914914422968443359131209343226374460856641396218513885395201247763879576010576498509027866591946343254469115667885867878805719649976670757468286989393327893032922515657057951292604038101821951141142346413833211558906746216607129500176991024224688654334045428771785246002440617921274659612595775929588063362283705673350471934721937066357204589552420874057776586464171883913870188970497272777860101805029439222912399416406816344866034320075122691834254914265783869216075043875682798614308532267332448866130668165258905724530568070234568067213620453713418884871869443749202457151389122829417229620608174125252016535343890718577289653805676364305322242278987245551609105637990227771632183853884637870167996432756191741892386210301826130503694438500436833923091673721601639645220614055638951274846783885560572322582640741709781118238607645210243685988462794843294191002135159342249827303510581525931312883100397554391377992449831639961277254442280744047767159736122793551316248101857740844296920791524415231436952721497177814896036651718803140179825641444416170487611366634752216645955305532889758039073312492065347296815477899239455064452389672540476199761079280379907420620546040681466663358938825838453289511364603346612553579126902856797838176869291177140165264087588238733556099694926751387422426381388147638940617432994495431712819005788510055746343831080576380491759774380596606338445700718063707014382212272025564185300457443248469855701389509043133496884247986901067464767309846321790975230425896410422136860883283362726665287082781014926149850748237494236605884413173666917269293213150450914673405199800539942228012969501007510263748491573730372704463021018604630286889402687291398472866770729244771068290622710629824790105659681385715489076870856425512429244155503361319856504935323506585774816721150222528129988977197800744033605505017167045897350625053271242138805164453045118354540066527724898901217005021226416821074411851269151397651156859013232837477395843605636112430668742008449098302404347300438332419431386710703893368845480416025949634422037773098035636741997772330560349545373823194680838408548276686437901415971001533666285385422301766839695558142889966868162496138662861856242047662862749928575871211999104047061484681589264219528437573771163187500512161752645641680580494324275401903408738970178737027914139391660255132601805803450063790710639370736578446910454251480342285801545970600597473357395438496491694019243011906006735568955602613899549942785571864812165645282684510433778522825582468233599184721653600330069645574938826105416862947785809989091471916500764789377287272896631819610723934263453340633812141482351322896204771433435312593649496279775277937148366822045620037982494610497830074712178797849634644794964559894690337159479539279211289159948479730100513722210993262789680373605795668318722712726796358524999780883657701439860672328489356267553249653560641618196818265382340293607166627541884449842558742094221859507144173896355357478687489976602497749366397718780458563736183442734610108218055907226563440725910234804906983943349715459087697139304206982381533412885722116650639164401546342747306831004006105654595008196121820351646061504388397378190269876609369073392109045597165647796594731279317504974348787321547073715454415944311984517257442455275614358452122103247753530019341157480391886393115728046388984521348439490903674543218367801502263082847829315400827780493718002127020268720892089182837150101618311227203530608734758017051252164213885153078282028793886504698212543460615733493902377576022617334130688784353702101784153854510100735334449086725077282764930357353011229692627606112116180220403185819033864937389681882499701834206009859775047587927985108586820939867849848794515117573902496376784542750156328408974800717766427374975350552563215113984650661647576377822728189390513200436384958684602793221650190670756380041120093076852155927021196932370055175767896681552914131438994306094695977797775369399170596057209364416061342320492582247604566061586848841333687465430282482035184854125785644745017700945631403800858204043694424238316106191916243604878410417189996234888589525196673842838926704536140320514531389972886725296413241199292642662016834402203824640056699712789903747209908318247987275516101918766754768187601181370880729772425675360855855662251817644783515278099102868885269064372545203970792399337322627370378712233555040301239667820871256944669640937862725309354790695283983605340196660930596086857818216476901472884307010893526920326889843382170391583967874824715967603374522842154592577732148679209818637611873909107936829093699496061749715951532207192481782999172359328244840380394978456288302988450830096026883869155380370026052270965135741820018603828153964873944079998957049869593775963371963164081234343247552496498315351962329728080823819057258314325009264004053933280626236043190923886396617058446896425676996953125645233254040679005642267175158646440331881407477171532112660735899982145434840944428150913459932863972390173774117946858487226449767475397849072551462660192639132373728660295079218064985058843577948406152852236733909115485787543887701711459915272423839948249828406803603267738696073138946569619260010919814526545183496482057551173497272028127331323192179930630103747324498513057112089064215045947031956831710109906710832619889852221832375835722066113047137941120259646434082003077611730204533196609089198197301220929610428465147940990358381015039456616890164880894290507542277428234437753125834425105409798638474911726346838990430911505569218646728249065723537526108957045613563448985388512760357309816600410035420823330056437892127177348917994210361165938107742677384482804480136597447413784339139558257188303098706271619334506607214634961295098996669102428459882134654267158863111918608425699652086374759391994063918080088041037831783677650588491210292177319329659759838563430177098721183264349421915360111805634406550322967409698731310792624241144474868554000689256228929386200199500321132468589102281828886616008595132309073305217461529527620092722346127537097777799085002790304301739658663382193497087409946107225313512623005521519601090909549679427406885620935533415619016301876080386248913380028005765044496353931115525226931687737894311307507500238454666169345742935151860461419489887526481242165289673453657630748583227546116696867609859526804393516002375474568004245247065827003311640522232977604353457592401804104222692686778288228023098919704066870131681853160752709401312810939529144130383578333544018645831529810916845929862970386118292461586978721209134344102185257814471129266952259244257145189641691441653000600175267823570457320910571174517437639359408627986729314228075545961957035072004391468487624997370463445891976986150193856201335660247522139897137107760127044299571673388761269872052761974599928078609137162146632287408277253817924219379173013118612281446950936181231769598989183908154706623253888857196967945762122773550417269183689599222653559535459565305836361587363410525852888308544775625411760048581219762355705879469351201047057728234456830428743051435672221185311798444891442815491545758674059120761422251015610884338598763537280327675368680200066887795337708306372018459512243567682413238265556469928928595525541223750189389771255749430266021699299473439462451043549713346823567505651127136203959493398238833651310587012144661511759109045412562676906747386970732703541119686391954552416740799867304922863909714607311262080935305349610046975986432105204626122520442460408413526148342471278396623879262867982860241163830334006999638710161736428701716875332974433336070488478652969844988602256366210438231476843891673692348245807378951545544445683291221128149687383465546676255501752880346495828306786698588833001520891898855485699607865343106499910354498473621590302609984097857519239863047718680284729912397274350920375334722262758683608738200735956385620568215934369841580590658308688569233612677802369507388602267929524916785154999259522545969365723295203115091203078907824369280276735732564320009848594495818135286844831013666395500110110595214095686381012105626993714794225348254586318831771776499705307332770659201602237756431324570101724810727817997884863536912512566102505406776832162065092798129565618415316048520345630772388927478050718514275412989520730716254460809378543580879501772397650512901728754944493507984183878842579962788218627419763264073946719159041752406336290767414136456086150344204247894628450266000597375643110062994551741604490454392717650265426388565133977592371364082233786536314039709207357180437821398357407161476120190117227450393610614623911817345539613346641103486862471744950175133313630263959321313268923692340445564541054279117409157943310067656127991549423211583516943406202285293765399714591916402427678700630755164427911318960232295497479749211317772406723663997327665598186352462779766838601476785199378478529849563440231063296139947166126857250170146401794551724883844625172387226072592079317378674426543188889882230395105852499489328381323728797465008547048555770435904732952975453683051574070150545604810166102867047247661345875305874065731703464579473853307132858918735932996047774465005502027075922066876003490256383110128046424541946004768499170259121363932599532227914305927500914513907255553393559180068265832012113141510970204911634359816501598668849568930454220569790997611443701485145010747011842963723022817598737210116892234637412204788844487739010787777307712749900731797603612851556564777123124731804865060882946743232965867001693384450886592895020431022506151402825762687985825847687717733865827757734191188062782451655585130004405627922177493236029222603627817641353354208379244426222105299444202710687791132913709590630685680453173803952294746017362104967387471876878942419586851185030708519190917590691540287134917073535541159217153980780892804339634171567812718856041425526977164462132617265123216546705774900792651478996412970683902190660995821464302708622226087561916384443030295810963704659683479084371055873638102281233059925925604522221382903063264050848920151878989063463323562400112285186287084136796517350747198459656072032290899005022363948918093280875533051753495269076678938732164682448113694314759598039437127205175043664228648871482680044684559880078699261390234588778989197241212969012876708479453655238065778302569489933658037778067988398195527063034435631525831319374511529559570275265358731013864921648697381683626668177083942309214882761229001057207014529479981092733922976953704271681970266944614903305862805044380900316171099637999134213575628320144007074610543524707078824794228737762549004549719786409034538369998430945305325115268391451690985611100429918858838343691148600101236037394458492665244799281904656831216464624914882701639267337846444378568779250900833540617542282113724187227315743721338278541457962715559388730094415344773686113363954908950904556129010648042202356546839614386258766125363418114819811556539490742733669479321490041069245645736399754127677376863048612422138736256525847342055241644725161634898640423832385809931652908368362900257649838414575140937192228527524365055627841742072625916534579200970399065736406295809660408327243347182849548655031963757972531820920639072126903894675848446613904384662311267490407399240370024955469343938767031231313421886240340990481704082982108024802960087560893611690694220541316358511644203057133708018821056358407896495967255657971308942352576458279315670934947507981833071427019138062975117038256856857960954987036886869431014530771829681660954620073556794645439646636416188071017134929163555679968412340474261188467844283463916520821775345504070384915292006680008742358718232032157099920935123169179273382161317960050120141977512676504342828847726422658175302896623968587397920581223923122874751446777819515501095715206388717416334080185541039520326375710570435146823138868911936747392696232396553014006428005471190989464807395071245471890782947671115480232710251149947235783540483693896623315391271877842824914496232184267942541854188946374085708093631695064535968645036154463801175782993734561583358744322212836695112384628162646878724443395006417537028202749239545354269234443594760548029321513396496463357321118778188699839823593100071430492237155131349314833993633825481857905062975561079156378404982314897922475617321509945471517463871766934345845932242937493075960452475180842943365318120602014110205285696408028053155791749052839905643845521132181119940591965952835031833805260638762331969642986285539749885447710629509615616575100276979208334959627144443817450481197105621954913174292916599608874230029359248950601339400560515424528951078296641839224235029137306755383994042933240177288061981975082399846787774029580530465266968567682134213955051713780999116728227558714643874895813558357260677330533466220071943759213681088875150338422658081667709442063410155375129116447233042186568795944242088934633673613274614648395812230498221798800960276615941780957316957057640962513091432428500963940452621147571894632067610167133617920228535549210918156523095907797630054173448254899218599889517213101330072142689014006252823616023713890755437707491487730243874236516898668477351877361223801605504009204604289363853360142011429129907766340291857857117016885853991981524856561058990758981218614311062539318660111495237830261203160015087487656439775621548490265065331065682594425072980266468029042339332117406786432676341083874422539168230601932806873126847988645166492530294227883738984160103010934495455339637310922276005302113810748841183916229588663032563336366833217680188081388209419229306326365574193669467521480332013666105291619714293897645692985815089611356658498043421951512694545490181935188167544476359843100688121901527232425902268193399199393002412461607364941782127724114925517369265508477532601513313444810878241715485959021722732874659203794332117967283541855763325989670370924483544549295590804762725944461267416929031856791802151330968588839920743105567293560866507407548450963470511695213661657883337587166540463908733208450519807580125485067367049257559925242929234204585340822735167424639951004870905806932216415929404927182175960174503436358520605775897224711032359129409493959991130047020652799964355885382325974532656991906148055032687871658311220252672205462068243128946513345074361608810575638160276677384533774663212205355938369695470354338632420658451504750159784718422354524177794915718939863408579161215221092357909553350187366819324200795145812444096448441140038869430973566796795807369771257519067707170180695494008257270794315987369281081384850206599069146466461320301046433720003681027438513283954579776846127454404194725026503844928966089950228464510014873058137422477668297481833454688815308008658353594682093705190314317397037596260647771528124519627144029320417607461913765791178286771161221731905174292950325323064746127933834515218904296278174884151588393827178439890625845795940153856386942224936744628592872941860226776840314921733762774825590921765430160798650775062477567308249777784750912143169375366982568228137798963125720985784745302367474264080441204206934974856167175055229812962131194351333060739521920451316745767656259397668400204424482771368326710702402414297850510581536821231505187458666058934006900580602797198677059669252479351519049962743018172118963879144546460935810991861372719221284570021566483873183930468789463323189309508581163335269052567683911991116989603920284053868103381631316243088560834424246541939872242040955215439573394677851909552953373525212563097900855820350222874539885999641240613771662027065802982252233134611786416252263657442439664305709372942096625281147563667230977870138066488201415269648322983240091974772259280963287569492421947052070784168216988434818637251428959850815515360024519996913328264043017374861704036267394456933569577616657757195319964286552538945900651560309873753433332352605203461004138734919329063006112204211264376172039119120787857877372251659826696844462597575844515219291190961315119540566844993495040069961614794436542898943353172177610572844550454458032373153133659219649222502446227813797900822436482146652569183500126939690635953116910702079636590467623263249667729071265541679323661126075778867188773675219682875832340200512935106605975560809238531709644447825835058503698961255579324300968997582833334376229183344016435873994425423746922425855594483180757932325361559798650841902356091479173821318510927134892692103401422191695370682511605970900864405889865262907663499574069354139159199714560217541383170488570940261398229184586565427805026534695111064150735309665251283649544638509420680257605570772831227446245614988832243471372324882239751150571109288747622083095974961327555892924264628433111158363543436129047430110876900086640475234222435704360759481192494648886257826538547542094644041138167893163795027269491521136188821557570009604444177186648421261902116380671461720532401050052834203330622031355958495809755248315607275333424718335626126291351330048080519015726916572293986024581066106798829982050536142481854624032434179733209553477897853786254893936330240656819151836234671608381778812271723872331505266661887116698889106910249938743723850516542153273755976581593282982428357439268299321985136110052006031014512232883704628010284708377278012428025330725329746646339802645462422607356817975233829087748435902831093705276807321676857712088522856395425302584738186745269985016401484982674115320669465736412529226089003525391430311265525313057198851258013175021629476297589576778989789929035188046648745206474962404137233524336826309040644435604821579441058089696339368251467326212105967585123888071693988266501753068303496820435008481132294128264150486420106560376749232327424096108216236040787970317402297897318235484136431396718503111869625537057322245584979246113323275814656404839923755909974053351769667197946451261349755446518554369710445508478098678631776499173656666616932409656655283513870395193592006452274781150237019132958189891374084541420414842333075742417302458327442543475099412986475616776843297164238237815679210614027144774277891195011697891825267628186228664258003947275792389435495996254076665826040923082315796426175091839799452231660026385622791104926404731702278301528458878731823494383507414829102351655621517742260828934158206624400126514890566376945075078314988188005027292513023791632844259023154089199463812368553056045039549518345742819542159792821497599031171136879417302841334584947504835616997001517522663005461947954482302277219659356462979599473130958552249953468897950645443729919969829095099243060411286369787901629572553957536513905639391245214679824839009913645838802190059871022341249923110838649876980653201341791926635256594697213970911179409270679343466184427825266415548844636401755495243467156016257954701313792897800636720955928713192087318465692894119131037692879984717761088664315323091606048753596899548069078453146640175554498805418390272503833416833420229159617416751017714270982370988995123583910774808104695979345936785107706000150968357830786131712472590916771752679486663748725005374885875926274309055035629103477779289857856609833281707288514289563757763139092020389812255050995702858945552358561852251044555677252899422707848733729334567559633795928138166767375958443894584767668549564895803847728346609882204374245614102100062901175575782943459301736626327729175800722834495287609329854693086505044690059005559480170561423330544895758668437859111978332114914289839465284733694226202767926933288668443054879851700471979326615069214940632026854464875912502635005089059514845914174640091228373586043800188640794424096725346072336621054579595749752721444348035657794811283278152332894678804478059347945878285766014740264586198398525231228570974664558044230044831970332611730111559202008121775948917938281916340154213334303062166160681023056181921490356292922096237799359911375442872142258395941991737739244797706991241074708903512949099924748743507232453755872767167339537628636802195163564900883053971776677271913832474667669011268383972589067173598071208871648925539495692353700246737565391586420167639423630505540809565327747152420192285085760560141734885447702472805721715439034683736673841435002917822076785395163591572789123623248416404680644213973111859536683054435689973569675310067178346650823767292250170569041673982551968502631198173926567877371000826584903795338401961961002378672783522957487282529401267441541343893035010218585665720071882775977292198470927350607475150497108925822261293224816068268096392351460086686950150701101994434358686044001550238026885237232506829973180317034875368957123181449094241987120762852113148782783378993104628061868074524121065336170657087923409074016139696514596814538289325036389625305419409419690616986153803219706599136657099201626019600491614429440818009109909166515088902150104672690762239890126740178081544177049017062533159672986703334704166953219604137642067120715463963540259570764080640337962889267468524789279849882635518762161442805375241602720021410950389377139547233899962346279534314468085810043802149973570747061226765816304828843291865129426257520501487472952919335454094174331756871173287461431955544246313122922524778406484842770124157873015190651676318593153789077147417340796014388558792966095954768596470744606087098020888113518964191337090775234100292022228076928684873762331074541748586869278702414214000588766179915299046049681361664271777342956712261908384066928491260008177403869436116342249911519654223965067318010144202416657082106496271433043446099897627228558950402365952752433096395006034334947189822813543439866508333857170623368371685213376526564772811578618933184792958221434650737826512680787972445168228278996272654196364481361347726103803905409590775277522745666520182478735377274103671045741586258433447934574140487129470386272723014260210565984254261448528202804847577103590897811983363512729860887158249482035568535709572936032197071152761869007862192932052527400901844578645237630519412902433299093562283773103371843520755812780241266860032031229935159776189135954960938025042184087779525109569963819179578604177167023516290358479279928871102768633316821590715199520854577439538622251224323034551602150592108313274884179591875988312228163078705434616330562858214024336707323184781081605499481185127300520776780908957644426873894759972815667368899152920842305900859862072031363887762119802378414942344748391014593545259855764178591995261228824514683055689665994779427774783705297407101465777294039789080624765216552835184749489982559545423949834672154005326213329665984743863613218293831556657779661661323661203285674831728002707974676856321486309339187197887993295086767551022103132082194178558710553513698480368466415550248598175714867828422166659228446492220868630984274714333574536299887598726986972130808282732988492516690055687135099656056090311079522534921427818074597964703826359546140149907194895466155437852608460781092766796262057014505454968324518881598073818021177991626113945436577139290732760288787738826410243626598846605153410471916512345894767040738329510832852551772015519747337365848101192843518338010320925339936086081861542171270085858337994398989826661825054224517317992521652368458168764909069416387896144986199369113131310994112776118760973085244100422441645673992629287440344904782973182618414419747552399825648828877036948126422194327106979643052024174014087662264418156978701803700534067509195625610588179955337089441763060525831807844132531374325775611257467678327154319222155174440665841579870357471160252048513289514194341036013085911232892654595279324714364191800036611388119667261054342970187087319615075609278520590754936011493356569603742880958430297511727321156861965489562014481366284844103221098385133631551172501637041551980509967009272390215823270949856688857693187751572035033638799818162640085034030833639744409293380929211596368728259887255868411104715411335012862395343267703976364426943797562712669511069741237963538396985310086551274270322599301554216486146809610990599577378815160902883664939477352384532784119951080791683877077538777741817633429220520051828746228587446001064352497680745645061251560707757658985814239144578923163487981490885095376647255127743363939197814916276602240268777678582981032234783595741061511530675192371729879590571815122477809715458627198440055204742116436110468484904259514828306218844691992902592378815939939180750360246877631921502289841133838497766791229968770674586647139466249977939905575095722475201225534365895347629567249976053901536412033095496447681906484326960588943066699676979955654747626501964774674619040607883451979556757183077063734089511156788459126962517668081261245218671514876087791208385542681633051113312676986066407526015460613674124391081553141031857653549580943850630221291638826340970517960262064318355794963077524636898335073133965864104844323951808465819193772698443585078971061579439583818077937676796686191298192303175792643115143271790824252851610697560964231206219336505750945151547745721590681773326672290320830901583171278409237575714554403602023530438024114103195852995058196784437312747269778316037222602635076635062796085751783093107519546473200434594309181385941280499869774473575194682021319906208912398901564126048708512400162310372398153173224741147037607816031160322631441787066206749766197713537574306441738738133170168462787001914965541267104167788027410360615082381097754823076973708785810980676374005544069667163367439279030393640705049311683502020153710958357159341045575680966989754183843967246391590219077951848498816456370453370790390195680507616738749656452022581163102538136619891254240674361514916583188327008610753473100497350860715259508709261681051608348326818389842405676651494010064023183657064954052729233401806270102492879228799891158695109608828163086708804549040602159380469312718986750916823046866338907260463220083945206309536276553072055154978133080701593955606725027637039058008296357620311221430616429492234730254364118784902295087557349228081757299886253809270325571528266564292527927498878111687375834271265873205910278661328829743981105439599236076390817964991809038672133016869874851713833152019095691111393962538980533329111902102500543588621483788559490649628271101407155814325088032126394456964233666847112596679784167952246421784100957849461610808112870340342289991091842004538380171784290805043324329929447388934715661848887556965313941211619517037974915311472125411707947737660618362960796099660661522468721996319684388512539240870469572962763624234415772165788136830497437099467730308412945514421701221319627110505495034420092118405654962682901113977268704351831585780093323210558800886040602508871065203828829193819259917175694011505047625307881720589118795777347987007289480707074783441341963835285628114649416319507249764186251261017521888228381795890269973964289099352077137156172550616106599105485531366638200156336038655620048491660554340479237917954118401154638759992186706309834983641930321724906027376717966183005928983574232925193299204565776239113886333969087820161508687512073512487643480642055472555685504224168490606805442024613033942605987647782366274490765573952306626708736240316742750444680955687053720203233245005108120505642379390929168097657651116503350829346675212327916219828773721141161628997911202278341230758866326539926614904646062980957561995841242116211755697830577268558210394847104511139102248302644299857875781105701837125695523976130680057027833846090514701942508902943782520643245792771318149190949662077526263675137459805310483170052516151019756095553767709120573529550044634904450501155082654657412759429849510087850208349233956886588317744873904505724783905030647351280049881163063486376454894250824054015358692039568679680638875836667330048162664454376546477477600485141818748816679292838404758052428784602516530500653729240352576396842709179241314604822998598669729612381367598636721901103521704452348302137470914921331284695757617733828806308535870849168190533749324671095128870804959384335885403786670063344995707807382360730697509485623444969756710657347580170053230460790082563266336475543389233494156533652708775806508952831004800912221933931304258666096114442331670732659503078227455826866523803240746490948569774866507907145210434612050846641125972967971060510296872202392775387596967940255016272138302365621590454270538243379997930327403682968032611328208107198247236638746495997295963755358911857106206035502209519080119050781019105593773726568705537724776337913627205075228804931108594188979760492517814525327907096064034916780823396234997902199498223858994743431367934465469796364678279193327670747207994417867284090671102051269821560080315844026580305050000979285748671226407531044149428539253239870807522837098112763803461269974285542318388713967416640950651264433279080244046609721346068727543319912129235147914603109965982648352456298277094012840429180579522849773401716978896864576125444507074875210737664205586609711131530776023225824529165650987652345854021072065096055850492223288213786106315174500420557266880596129228454480645294501408932035195633303260715211364855330199378573115980244169743910286099580330863823818822827028038437880449228424987112241131590571816707948331328404499067449532140189989586237810664826023176637115991824224409511371670569694218345092553773218057820470548967047746855782142907397321490781525969075849592629463242109215510258467942281558671645949504295962650966362491278308793185783633077522391001075865971842991546551784378049835980055626515248432628504577319773634325041180645394650279815889406573024163942931489385711858785209313317898219037006726410402897302959461018370350986823116031562037392858242706102025577861816821472777831920895025705503195603676509428301443280023831510626776745294721969152911397949415824356183933725504184206336627870428398876243390561527143548041717562072748795873837255234372605940718075584308971040846362253386168534968769204329481596819675114034725131523967215500569482850485062253209733134621917949675160791257216178989520624140100974585060505867661277315345843274410202430352770121140924601614708603247927514079171230064856673464554263169901706223295083595156086614722559684598210192444536388542891495143742355571515682920447474539364140726434539751235416859482420171077950015886444431991002427656024688344294642247410946915942423779770166317898844287774362312194935525533122642135410002848648897592611031080120002408251719819598157680637517653778940120826506605411160522929288914463262158872487413265700720657062481530323962490231929014434029576500079869540749531479630906056920546873433230476508646488037469580810623710044783409208647652134312786944636432764535923701381380124653841890316065689737669739219546582441529056544354624728054707121553381236972864123005201901830804724631087612423760763961498637631763496567719769480947349154665710106286383705761060365580953310928471233874065161752544530860947315311151455515023772045089616708271609807334618930392176191100159083917418733125233390684181328613457642650846082780373971645325412363024240499370959609494148649661228662948388179242625701557142761734750085999585226951560432669178036939622527777623379964196088621616208719636934599557255841382812906328012795326399990008796391300579993870256230007311770379134639216628786954428639142151452965696916116769219104922602101056550217307096569832117759729116514996266795878113668236265024126145140715710631830766900088442394481921502064397981977579121295754931506124346783864935035869749809947834217891632906775616845185945215272143596491715246007401617463212029880565866635414434083043097225874608941591622176098495094564479401790468033881950123293987016801337560143865135976169075296243218989992087368501686606323706182079082826284863539935162017571367251740990883865919576790318823973455527376428823316965129965365316493708938279712581344810725901301323593508579472613719516435245126725335128776357373554929982844709375521339924965986540136761788706169529037334558163891550967889768759672654418646345339872519892194453540297543079121603303716797237563297711919584331424876883238938788598377253932574738470207357759799356457702361781667853987833193655917999311679564144275936309637808620662750109627573672579575067478377239866602582594799131970381870002798878061155152326395002258670865777450066960211042213619188658822187756224138071765187696475283649130051304902643364966876032207005297927460420927918815897813026036022453151700013633130716347172149990273774789002398639741056323995921216231409984135556627486280987981918214733899670968119683309224265423245903177338816792111769747094353003583272097956283126857222150559140941610955463217286686740477830414806924642419083460462063523114610685496915870528774365324902428915794213465470626356857521911674686530261654969885783013705315576722335882490284937022103154790364930319853983943818207994077175757452397302313672894850016025308987531034411224879186460406788822864383724057992261079436317835943100627856168269097251704391487883939992087134064641763919951665876481793145998155661718339371417739790875211840669542932607337488531053593163014514315901229848018437420605310534941345147319219914223706250351965658467485303611475861212846722159798654659018649870613980961109228711582132402049539429946768624703067099491735853852346957656013774620894418582186231889475265804223240762434407958986566528691595622932743102336163436247413453229405683524437759672162523962338331482088398251789751369494515058179334280160258516670424588681670573346827302734389390618192584836647783053323455413401507695626977835666492162822900393039982532765269079104078801084847506893994268364337555845790680518185246654955312461337664824471998579996721381313458478562167942028007560647291882952165991300058711639186727420523531549517765400726340436268094549719317001843761584976491178509489645267535567937292869754459227424820447166814091698175567829384040954916774004642214993550474905229177218234147075483652684491837878750376542895061403273460660537175741669886888796613137584114669041531719395869051161546858423093162910438685614805445740332234757259084064557765076933464149095553104592376611042340148742757598363612873291029603327265841423530982684099691236671162938915236362286905869025585997696593141410882081902124377893348557448745958376652854690831112365258688911977504341207306531244948884777762851014632461280515593659266340261082619089667765729662206237566952332221877242784844238749735462617721080020419088564417066261273878387664960361075624295824677282378193894349378120891964372965985360001239820213629735521431563763627236532720339213025676943475629846007571950609905350589437295758109651877511269179660143991382814583679768946422961300233736538605335775917266194931290114277405482962046051805868201928018716566851559957853324178139282654615816618743425090418182443474657876650680786033309283760812707289730406916499129219127661428225692542565096647074490542847462233118142193773433118235190281808476827675994288405459154754716391449979846544206016137549502140827214799601464840670488419304267973319562346775847384500126659496983069430309950926800709239764600130240010196669136115379598544610324351331814177308465400427421673996890873309616994398441928845142375128962165053687397827853180291309247948064882368323651275544519594274721871377849147668466168934721048701125116482750339552220659546987288502586687290917451136320762026589915619825547613783277925359835535333313836108914689623004919210890467746138593252927444489144746919809184486195050257593074694744379882329941256150526206379121143308031591420815296276579789240205844573740175240284222509371937563477515110191398809983672900300832275975339124581338193067432482209109250130089288041119577383835002246637692298498338804641150619064541063736352195790083463916111648498767882454880846804860545552658015023796717821800610763992290041529412273206973267595369811643800851878413686703759806499781326615924783614036875697423955979261043071788717077033908431729481653815877704924915524938143238988780081337275055652132526954162136338774135013649292090299551045015458401060589973638654068731150184100119764380489914888688311202017774246647126863325235161682868143890317623636554466810489023273756067585271775933859357837777770734829566087098573299746108770078746452382813480135067074467549898624007975309943204490455900559841991753039876911343428789571533767443997319329644843839908224446810090062258185142955949825456412442854832635817889752202437859446820303890711573804572938401211695467069737792636160379637285192259584083784260868104008780384418709744979886129620562545115694896268180062003400628906120184839645129043738022050147640581833249776432818756712040672637155978020879914514290177535389915421988274770207122975798865039972631062494038490618083591983489156377262601818055460521202319706318557334514166943170996061103364532707769752678726028279627817278127494753051871469577951720278755499913254686335594755015230816489344301341274562466776167839968798750295517473444681118447820058687721892484242858417081814701208031096488611019636319717107753525904756561163062646805137204332798927857377526156861801664300725844088448500369473534460650634935058758097960766891807451263272651449771510150121063529930927451890069835626849774084248119833104541381902092089188330257600214665783657754094371123550849378593774239562146350361174098126115704295252687704594293592524312165119604978325373549352512514834958139687579092409106281465413727783118329246809519439198290624965125272032873814263965619638714721969389715298986273741591994704475135398556644539114181692213804235563495674368256750505040641462583420438843286843238547560002350542260588928610279382033213651674306469018806547892799480995628935196192685421314303112402070563001752611246132890312558819139487128450128276235620654052293293607491484650254127147569388531368532289076416425915123241030779637953335444933108928641208517189225705325967973604577126912360745430866076056892876772636273522473744345463530693146987433903787528239764611184659586201074536635382676327561173659377584634231878185222181325543643750313952326948847190617573232818009446625588180272781614282066407280706611637480633168252356799811265706099385872166380734263739196726806359018049090924820366653068002463199350119136787795800351839422393305141182977222541527439722805957935760008478558942398192633999544399081794882700846517316185502129976947916862770706640289512581339535078859487460174994030259512378495724845267108797720532301243850591491354304572409343735108141365393252150600998781499617319645794227045194796776271861001515233316370843890965535492513675466604632404934667140311119398760640555087240827406847723683588639609555476829810659169182311879997409431046628595077632173141945056791593071546013009862428748935323233671416216901143896371027891510092633175548467250722124029320685118496648132957701924257886121772044844702733448595754614951485962400895023573319613314855250471258327956252234641027616591897013177055220173923174071399022388593835545331681910015682070652547055665442753315803033927305640351690715046855064988779571259972532589681268586146030669067591873600580880507175005972864476793959890709576265695564822231059049266207736780607456663645257227088980636098907428210391855165275867633844793943316303712029986435465242993858367825999208490792515258130443589180211884252781006692599124385346458358429204580021496663399950787373850837423050000464841563690666490117084498478246167086397980924879790956260963573406552091480025969362497193416118562788511165093699407177979872930302301190406625462631942236111672240107844619428088772774415717783934054245882967926301350889688013383050701644910314564546342674184509681168456911398394873167618882519788031863394331358267325340702253135726953026743461574086308212056871261494902097975062133801121507234612839550951121056770150848492021923331858314052718127468700014299323742912576507016527075163946942063801836437256752872720370208131981353255110822017335217974635756794833937440417342780541134347484162378647102172425713227133445801377112053584405936367269494131022876210092056941703485410367752284330894698028965090397898156041864142634431054156539777563010482838174363567337175611002371394631469186062351968840499303213136059984136070539563955214063093314510293010425552031356318006267449462724428931851482797585812324813164146681180817851781305803610114489448790624774100712056379293756323256609470593000584963191889670765581278491961547736925406138582339192857328148964087517926237261776693884831817852231426152148759356167229935273661859259824082234717230724916930256987084926392209435228059151992075170225322514025684136390556938229728275183033922274459914161268637003903938469553735035200147710122326239125932850683837717676191195755544251526604156569193027000351495597424591505518180569316964055377877397536790284852025695763506722545289407175745357337247939072512671030289963522867338931375885709262460773938392477921657445865539733901668172253178431336141380973598787106337171904153079358235979956757901719292975450067709245702465996020157437262386173103923330624445967471532984793875195193891327673461643178947204643576808085045567871551018026787920781762888538178421093777103235192440676879477918269679608282267261245466294773571866546951033491044300265565332839803202865699716033166237904155855763757067702564033156478046905349791368007955629778180058175366739877142624059542928796973327564947446999746645955730702325011498549749099650028830147501668903126960065075906458299791159483453798910704317466522349418433610291091192860675192076720004998628295783935925947644562136476472050401698709651619857778623244019779304522633042532689321835031440560614920986238861390340019827512513472826768556561869005809973855609194461036445454915801196305050972722476165038010707927897266035586929722944226486833707514600395318812661637973738318217463201244374170222254258420593289719025454165737627029159404924114399428883229494364714630582148764726908353148058099674893002950625734975123879313160075945552038255237198963539524362094699597184450214894472138949846540176359097435038262896362990172279504172420302622392953907586185130536702285649010376913474339957491144395892537025644078569679408377038435938962134744948635006312283117569621549791568008524393529244497696704672813894786424582814150682842274151640779847823644900635632662767899024232069840064629590872458337930722362955200725648892536809020013659095248799296103565700202799543226969537265260614479840987522350861242375265467885136674801213909335898458276979486075920993422468756820594690008047010595566479582597656566141695711884365811566213936386937773415826998500566538860135971874631160887719704683918294500232825511209748841280218861413527827421709021295693590925145729596666202500352528766474357452456922150133262020053137356509080430383318289630205380676830137334885409304057392494299468757206434911448442911287706308826029397515681490909292715587163141136236465349497787168743357364494529654886585074345165387202319532119308081205185563245888163541142197019557350004753849639891515079401225928679639893076713184936346814885683460441075470601155583851482454322926124382391818176572406473429990687527732352756248570544322430716439983576281891874272326145907576643888918197676406631106412888772653391717462558107935094828256229451364212694590353556002627955333387585412232786227973389204587308386017450296241303232048747600882877398049088002615023425973093622619132506878308775912608264457588679522160915392200398901930922701793044818740109677734080090995522521045809564079574385320343117548744065889902407698259902245997655874487967237443105631963732636432647450138175734155669232832907425327565435740661498048941999607628258060598374630647055431147151859046169093253279074110475242625112840313021637047643474414348507490256758279260776717098484246311327816599682902332969061535394188131899184001118565520756123596923130951049271857666496373705600733242366640841672221584233184685990667522008620086896580815807431449900256331564136620561705562617259522705325318196984002598687692348508134729051188636384192155444442472847806861465025424059758204128138237541236719558149458390139946327387931451399297049149528270925588781766377135903628515271464093017322349199838497157166805656780350101566445036430589563580358983299223804732272720709895591604853856408025556267893960982331166570511216767810450612077752226134660786325209876887419948418664037771916756947347168270478617235994289167737256323135011210176165701754650566740639142161009393823838007817252615483368973129003231958530056618362978870157784865425799905529502708002989912198061481446185829317710027443347070717075052504111863972816846428192284085896217660660571088267573798917707269429425584876112819028096434675242520217571631183794005359673318892603321003929550014200153800926049938496679925181345781826659648468926180150129877409600169550732089012422910800252624223169478172432741307504004338970083657179249665408449043089994340503995180689723684552982469682562463417125264556442518296101876103216340533482758878940835614321397783229129175954322337599992071361485194916842238803490839375731256175445791246005170631205202614671002837984949867089192843519359788885835232050965073657618482484597089067731127399531412163599999879183610892609389179366635848298238987596823395165089753022217083090570331743007408644081441903289566413739566540349343913971191281425621410779774859800971967058933088232961466278004996109571105960206414625995215145857356748916287784265344935592181806508777369862723217690363715754515750386237130975214164322718380355470028411038844346272930974323895756515795940765358820884987698864748298901183076561997175936046731857474090067825244037991021925948403256866013247593403005696695025869313792017317775358005034482622680012677356101956233186110526845920104314934487703895701612706813923249180601604950480847931029763018243104281240846122228550643206879270276890533619027597102254222066335520948178567017187621797470493786265738784243559476693345906308932910849585720637314861890992620815183222000500768675535756539424090912384571077923534829205871587182023337307412135170548285613502289005312129130162943853678458218925330969911761498907961647877291525847327207280744402853902170597927631886402060838012969318216071931605480782512569256241975487614246629484431883050102374054141802639117626989720286460894380665820066041031095758020043258295908809249175236865657690960001648455124825880273204085142934233824756579065166630988070494788747117101903253167772798237699995606460758313582575642282433686148518726216657306373956781958406480507638985576016219490628274122172373078437412400030123158640160355988589343285281764067974434250948433450241072354720289839347741894509778101104711930272971608967639225119443479014239996243991902064494196456514997488327961514213058503268105896335681824867030181648030156419295470276186960062744264111274476062916406253293717829157266455617450131395645984975298949150621945531835141417397095759969433329818736935363368307099935737877379442209331086964494958807978467068708816520230645980385032580907865195877228204544571708198731563693122229577893275838472155696649746084198572251860081603129281402665942537157438332262778080690049197508270297325508352034191534675150531628224404229692862489510928987740186292207683035716198952226375568576326246249281851739007072697956402040045945769933005261611153612059737989601983154765115675264447127439559313921434300303345908592852025493295066294713663178291347127545161287251643347963032243756259006463398945402126770494523801886429428761202710183175438176378991957986912622378377534477371687889862313245299468215724210009607298704653413674502701054994979989808368927492803114707541370649423051938895350742462308977002150016018879944663638362212652624603270929206320673720363597173712395190170356807724515210033174126548501634650813032824960037109884176774279725889246159193424968512434789868433954688026444867825710301984029568973439511139966580651734533251737573743158775766806260154307749269365644545797906111544036860559140484790563109401460156715138693047295192787468622392602046156169163871490642015064165789296039113895587832443114054177821928580498997394588446678300774782657516358986269036699312433830906295519972022945410014335052852560829101642920203751057100461327254541306452600700608353320570060006335143750348689062866975727122257356730964379175006606606149481705195940587666394772031496631721212818700570337574638280513965332880028149399755508640218598824396572747196596369926623808713655339391386068672595730307060981526736365534155746731200292098160157446004392069715602512624742073937110498309079380009186147943159417230639943929349535900370951039646965361065539250139267230030937210960833602382620304759205331494134338992642373445611701919636136561769666503289172276813507481602597294107840258819869318649108396327573547085738727210693116171824424366311390302063570953070622923101006664236275033969380830028920456119192246086804003825603454445370530514740605748641444370977917450668135326022451488778364646048155373322130045315313255567313143242490766543790873904190324518857591762399513587408961415433136690784982405751861618526137186057084728847802790259122364522663608817494724189941736816046203154150097446767347959628238894444911044358186411582956166315701354049077284705492823092336094193581762212858663681475049730710460982500856096155819931396526018879636734502165975719758073384259318113394600008361596463918163474622625309812392228051147923536439683085248295562405773472195396976572441452960686916572848324916845584387071927506003468267026920626769217337756260826699060860713764391712349965585621376704785829232286408188530436999543453336707011406738959710658870282720178970356841423184622062715096317822794727705160876593392668016165948389992001325576472702876668761584064145056944472029913451964792321151682388934028676803002050512236486637770845567980669427738105981645644535020677505672697542501303712599047842880366481832050191028522543304489895572575619312601013772964848405651105447831044419683918894038281190430927933744233495097193407713606012328711701218159914554231960822306104504245005831211407904014412363135629857420318742186958951790875368214905997124543254036348612586468883764234627953551937477967512236314018749093069183617559720043158510009992844121299018979227654678726328845436130387971538469449722906980289480779103692936255392826633280645166157492669800928671357576893218039970329242103411667525782566076587369279294030805280953083021255591500836137524186043138747083725195796045682118141854780121352363665728590993881780746149934571801443758774361510659879949176225581432558465872617204453974786239173877328432219753575270125056765311851806647684900268485739774808057164268210304423539906443960883091821937013551093454254515597706359471385885811101497416575315718654221657829512767519939846217218375014972759827990199163983286591677434387558295615075811912043686817273246127997219226677917630704287111662509840589085982506939930111461891306177401057249094623668703578463344689354507745858326322103782395508218408747033323950182239829644417723257851650055877795896826027021300588601806369573315006945670243283107987973783715773876870093258471677953309324799308062007579166855985046797856455442400716118533980233619532400644400827047909186288832014414057280012345066721285209721258839099572704993380292855479252906913186155792707530555924865131197994426761588259812520482931929282292958700675892536183332161495003591263621984939134384270099260813414122478199962347887367310270626543766530369685547082581812376552393105443697959318857295510838209058878369470610000512985064658784415167620046298308767892805472230794118506747686778147297855063163192184285626085366604200935094944343090140056302299122860008751003897632959462280644761650625677111267050850043982539243879887831869084202198307300112625674956783890246113687057330852301850221974028975610173884580359104512288338220864775592437973040850542550660845781141937811118908835961919876509506084507060058514005783964431170582348628979836600143340834251981762874104993482701313737309090481943854209455772676518672748636330061987609412286760467285935318788934605031569295631112090518392814453257388558979067914168670344877839845050885543500428982390637429352916618284906369355648869268663100593433539220837125099792096371441558314566483597925987201085641105889280374159720317432980857297531472805463467579750305782071331247695257251405521916549417674939052402148460872654855356317345519532864028369060348515624743963212681349060751370338150148473637966430644458508878512159183837496452928000479243665108215571891022387168363649167956322780256496496416670433046046810009181012495917517119046784730463256579880747740606421557453755563894835309279396453104882877502889627314267227067150534666367706934469265170707630647073517757114168289948743652242867489311389405634990476302653192452188911640920707541565530260660853953506116561319423915476368297394258168782535187375026360188212003532149144844662288127432914443667064154483707521311155524867209347708073026971273090893538311505007054718445629762392477900726438071703660961112226098657663367000869067275417652890136026039642252761078927513343367227391629411346177229092631054500380726855623137571933717248896327952202947267937490943048574578684923895684063935846694332302963775977993798389887873424466023241750066773388529525135082501423753410822937155638733089574252611428278300723768061402355628675482929980958568603735000006659201745076112871538261139651327925466256673931925019589645206288558932638690884585824736404761826338349317054214906443198728381261907467618826372520275859932247926709790725456088437392116558286419951394693533181102904021928058951579536992615086185357153951202738714167460177562638505002747201405312985299798954361923533756014476942268881762315339399441589427904670094620532154485939863274129897914035315096556218322933733356777653359362855246383215275599872799392657011085711963406534971400871827362144229796181821258197583559805272701171971500250105238930172412876472676581219853242809150298797699887309975537729361087170343972819137038653879175373482127550884690223980052904588812310519053155899198089005403763761801119745120661025243758273246647545463629963652689368940511136962917451067918391189358987800363075599708004099166884679991655283657041271576250347074532270110812711529205374824892992319079506711751597586856221823315452827173376689469200252766801771441210815122844014932148057248862094294000151226053769502548628367335114350232071304283601437193531428680481993054458323335415898305218902815800624048849750861888763832604844736790115574551658974291545412836616247282453310117081618031940175290380399751000186166600801779126175632199162104597377465188641595679712827038425172418342591769241646595767617977529207362147092193655739089763467049296360062864430855026378830578374088233599079371698213037246224787564417808939530253600409483483432688258151856347137225877697147894446885607672075025100239279415009390853868478018609996449171280209401691833575063841616901587434530339425669256876202282287409787925969559737364789865508295299040546519627375527008697416558333216404504230716693970671208653061957103695898543376328571469246378547252917753645949142041579109573793434314095965060814014311946382038596498737050511777305355673322282442744067363758669697303271083243973472662297670821567340615903591828087908012465644947669972514154986759342424836175006574348546347451383639629685641626577763847928643523152214472531237000361578726883553961163658273818420477242050814838986339579101385229513206256157705303282823232604019406183212006833095002587009437266521750762883228063809858891008619134321999658307901709789999224457687127449825382881005720032444634365824629140906960380377209418663410434976794430510999600955986697143003857034254996534280507144992324995881524445026900896034887236392485594423751149827895867504359814198220913731464271870701505780830427614985448236578262284543230307284381401470333555293835289368306101128205994270098758431408855407533414823096637943472114456881862288964066952036149766594849001827974491452842574827088363680421920472425596304812974453762499034211043532655464030509451382203548903037868622948555346376811403493457901662744160646480891607428685699609917641845976453625950180682690794957364377156868305184809967019896833874536147623751113734175393799326037492782638269908431628083713692375690404552590621493387393443940481133744762532493995983866404728786280899341169231125132159719045888330970275379697147241750790519127137222727131376568697071921881613827552533316741530763429626399284807563705106212210543944694461025364909219718220340098597994890933945480114928223941174118881617891295509018262252976601901641625797409006701824082783581581606639370919288011790222730673553902342295194906566487601530849609810058298698661444718573825618580645914530475683614029118916784095397983946936938340348105446013857164529009491801275590780427462518834227450059941193143167136674996478933595053261673974944388313243893134448986979272101230806619570614454363477126641294945386513937660289397513418328432291704831580921034113306902234346130822692214126893214826431752047860804813876507559095861987738054921619080847875387403876326792145280809887364164911907341733074650993090642439294331290793738387325878496035955277734413115853151918731416865118421730879901330498021205979601831052240469681312718684947005938338738644571612560945027283363343587211974427722005727655673283907080536903496399838688451945672794066387007557087532364392091614108873678107072154936380354402064910640124855281200244755244193110659109673460593466589217285335084870023709704511708973786386961275811503649095058009943031220596907692875648591774081235136303993463418866790784531142946219635369260099398297454336138945815857458005971204474806375677164477400314615206622810908069266208183387581188652774407730816400808426451727137473274061181605538623419947037222325887903453515272511232221567644429337855278088049549442564594899066197805172973795031954455109984935253283007017646737505965351808243179195854430260611620758837599709371805884761592528422559334910897893982774776965110683098523214012647349940011723738804283481376558684266442216741616070015964546518003751736627850482042207430051021757156193225657313491144203921597899604024497343747745871437126856503358177015534436355393870694547262463508848444831996381016015298532365431482984931203128233668242983618386669353528516257156532647261482572181138086802237556405511235870301511346546859108642800229682540200453457136770876007011978563565790511173280389353466441883697230251563312057823532322605899559584958864363337925513052754680931072011471911961455595226942798248596662285320518353966851475594474149744977944206049112453835789087537965444080954553491990000595369550811674792099621797128628747494412818855930132694587503486813381436229245777392218345397082153014788930211667749592154660221264588762777279892508464227115981505635654349716334661757258758506743694046626025031157617640871302970465041582609191115265438677136044499909993426980095653100046076279074029297830278778563275720480816446187274241469766892261308288501904995881965917924446747791114862309516453092914943938099623585742193184775009308362766929978057551417846807688619948988342156185841665071094409170897511211084682898383490874040509552270781483866936553362208593690114213968550574044732355788512050577151739753680123538812673656678117135508115311643866772065020920183608528441913543302545577907666750400224016942899130591991891190125375352339718023823486010015095543836251341986162166876459452283865736819394371981852651251144606169401201022677572369655459506663399226475051894751792876124326630655911306312750054850322365199896463792785660694420480621359888437488459689656115281811695705569842918011302718262573919521881057959303970194821111821235887394442547896377360150652090683478619650125538464162824150049116536094367313513634680743717245048971317253946963997796365260309162973826786839024292670889586016733839616218350385302954988038731721817370084394880997304326964097921133328138428842820851773523891606919051717101231612329709803698519361396143343526107215403804338624727448967712885504745001828074693533292293554385349916461131288453895919423187113946446703546420010215531726295589621497216270482178073115560351113189575889525318703520982577573447105358958370433677443933813473492599977217729155713156927009800219807606377120822106170376191208010449096688040954296395014477604187658606641377555405138553744245977087452733227759067158143475496581411612109710745273147545191002333917269305432926080764342320521745818458358289775949381682671183434195430822805036594365238720611380583088650048500975026593027199119758300271375190735712103238229119614129669570545860362663403577226136777155997307530153901677564898212873207420312291352921419844419761227665648786069142588175910510820225095564151302547885290083201846265505539151032327670371563300908244591151356459159380039655905245698705965640617749311411673429903878052797104126002467415995045058557005683971935924218839264291933283719882083869477530339622726881362789710606297273806269971017421982511386304058801601609713388436746406462309038364167638714062535681111279291351502672859423036786605482059821040454888698011977217471389236460601232384630221407896232946610075634091449845493876819110718388394543253346561426236932416305587889446852302157599337714011557130347029800499684575315716606277690023638960855043003214788315078896127817041669895190024877723521601552651901594121005652723607007088630300278672877560934864447000123514012454760313814995635762498227607381774945614582240410449624253025368930888411095613060474878901181353565566899152780365169089080773758567059197248507247108111153793681262902222693529749073614321212000045376407392333612510581297377949524387725093277066389257043560414052547404445468660314530542067209338036322492627284339453085511869734038988852569945114417821828123621240194121998959623884285230733183188235637882830779559165174986140460373223751096424113897256304023460419305937895861407914951927781501933876983467785694586936676518944760156797356723752342175582088157101265532096459241541024341049399597632162578917981483787910571049415733497085373944217849075606465914864558281778975774934557247299548291096486755906314165565006783261801591239417220286731840476859040568258975699352480757637685145783496498881345775216551082983860220421228105977532777132914297322695941554039550413926274671058601266223318137796314052316443003720990595102572007676171880377911791578106348103556829666075739331727634680557816146540320151317850984780195197019333810471539266992516424491568133198073534202433046244455886457105414021910438878608350405782087062903476189774584663848723532144987997814030424619282244743895293727267527735346720560839069440817699451775484334817697238966696406892296147123396434862785094818452917548396717598575233322160699923986691631775369726538199821206672054032458655452249072444584862336285839796262308500189589321432752446138442059590299190943101341648001589673656089849603988099562076281141186025851363570949672793235507614045387138745516053330949021853809869159953067216008339709022283329261205185003369405729490670923234442133352230399888833911691991966811109266208072801380466953692168013031247298438982624855357786703194244587627966124275089271849937524139195409687871782063352332293075041697031625582807289135783418120535612690098041673306642146496164787807717536306661066461563241640815236050022121870379891215268945456785985086019888469284052125357124944794390482552963242240172737854324682855272455874215130086698693863556387637082100055245000643774532604435419115160833539028263437948239875329787273504477319489347352364615564853222116555653781271212261702800026538423514042790075956695586951449566088383782623929923542337994708309431360934159939468085654587932135584934952656502100238864103258667455026679243752295108991367448114492604790417192119627228452301870565861579591188297331102325972323354115017134350366801488303698392208779169713769824699394339295680126457508208897095625418867641483518303081504283387490132011877489308930581313423853715750429339402673733654425626207812451133714766148648810749472317419323547273708815120227996581120503141771358376236972211453308458667506405223605165670552815811456957346065135077571806225744828259868608605845130156310211809853063773079052433426216847308381561327184884172874113640717749500082481474985332859566344556940266869627545668289315833493535367398190667514913792341288566938034439145953974754625320609109964896745239855287247231539494512703671130931276372092418726631152960669204133865923501925824974029011053399681477498498142822054383287631528598905459089790705055838643754561368209648780028034716549211832742074158374982515777675192154320127570620253762595218236955954999381124129850742153752562366259512049782987843044122408005983856069431543066276031992174940183857021023364668636590603079824479002082706856639509310447642416714356669657106032181771117218215774039064219231689725441801801966180981526021038817409299705839036368185158759042565191470203621564407397664040752564573159678684766275332932745545323379191074075067809319109318475247335762960946291576093188781330387247647146202994545961068756378774119458455189722929457116345455756759179261858277778009314018814103522794753051492817420437916336888125991744086999777911468300597020362576116646445700883053630188068558004702437480685450052883841313682008440995590686192575540763820865407898681205320728975070731720424702106066702506073595742967565794611014736604319322952316233456728584345090481008314606461323706040701554917367670800800006818108506680044259526096986871291840845144924320144718145833189437581763570965379332643079448590252936094238225732344908228340046335041055802955075237237711071171990186411124106494081404537312765997306969336119023094822525923917845510817152812116130737321623207220737143827613589121630498621934495680632594589774860978263449514441608793755661666592863557444405941177188472688816573782349843928463007879856788157885651676085854639587264204344918989866995301330839275313446746910520060835778918939070787530342605825287798506586217299031102393653994611760109431794196173678928741603024677747956810900921240418179750402098399177918484956266912614627888388703098311580457925106029948811972330039978457162006121142897480409726510929234515755975290502462718418785528531514633608286104837181930173501772871108959303935227264718106579790333139551635832504058346696038390336423531675782141475084946507429361208542584720514053682692287128283429710746748707531382819868517294148848861435836932055058789463291979991938823297196400044253277006102399472314210900284056601827934758016692198511297384258658857516626407354108252899174308362983884797901885915444834385607586320337745148928063272403439495226965807287287225004684884634554270068692158041006522942721008975286010110657765658246287866037493537121331773218738052299403673588600115716175407392021673043529447360620520525141450901156797138771850693195663441020723133336590022587523134687062610966946235483602646116363116986653251734285384785926405320050735311874134390748803611722292649788207341302632575423704137249126418083068483811849403351784609125849334769077732506857232823106815931147289419613928599030827656410262707163623734947184314194562957779597442283764447757272605520391825012876735737345086827052052241333943990830906022148906733164921631136607462300342723221694441962078033824305414201559523173338282916707548403020100247969613120203204287481612923598695272514709803187947728412077475913648578640925476437463367079259718654139940250962594639896520200586403990658227595862511725924053957299771652470514383977481472422030368068766915298013065363405688463027180535267269017635392596821686151442291247011060697012891297120798375293180081692250081688001664799159923735018468411316639026652941578204472862781294603449751982350864601964996466378822770508200873690396872352417307199078623986628955382281178984231321677290191382384648229461613435404334165544724912454941608343506883861951831021892674232628448213457652508237166372430595241717571617157413591488102286898624579226315067261430133909908594619165839185066468074121466219374609951898333571005083538200424720708226664568353293341451958360149792436577484414229148488867002913435163913854718592745970777139775139311212962503080978692498179458331351499751652223117021379388213951571741908276908668619126609666511677925480825009032731253457633390587072717208673572252914190613944724056502414379789291701924240658496620549678062202247633789601850157200697535915224515054911866156339989597968533079163987378350571678891766360896419490704650919138030139615716300704562904283937093080732633714296456653858839348799256618504413672234695981227693168549316178359562667223384617672659429198592666983588179640334930908723968708028485454281240834899877126001886501882598762209695561786953627196872544423580820606704530814925117066017196047772251275171771576198502457991584090189053883602170187435880018671443995696481593039277856224498871520016705487107176728821809756439260946397685268522935643167868825675187040945830947477399987160198781774926758310350102325673262708451918298835454465591586230852028656849680618370707117161526266162144027124276859529165155853412998817801685937397759006595196801710649141329659902789904522681803993460910718828564656212556843064381704886088862802780746362879727596448255285565555196445266816425933682998526837252369699143350555009489775686907071988800729981046338807877712667033243787821112945707327655964950884961626259405246218674455372187325493575803776184414491701609530977161753755831299470443456706962752549021396348168367807833764393551867335747722556545650420732995640673769042811022127144448506729572463785686906232121693604103519580534019692346029493691763591734377113420376768492117749506306513547197023210315033123313298240294138891447970042663639531144394517687236672566783147013704749484624625821752324400133167378503228416665473240174516157488671613529168941653786002709223198753384080797529137088571680685287851929943759628602457871180450083991637375584130360962033079342352728515781060246670004364079109739181817751189519637746304595398000351089568246793402392216175914948798912937441559274593415455315960699510620842929409193037412323639565757423481575177559440356502563324834047271688315878658575751527750141820904677351430011755976071265502225751778299873440932029954257906446365072977493781768891774335886026307923337488105964714091427332159810714063297483291792471157869021397320426252571553061933921435633423204338930138493097888855648995191763233838365910451692613840371906642887740841253472025293150687228058966291655628240170629977892411948553750613148003774418653814114830250912216220914652938529975009291463775860756137428717351792465000663551965907116170330548962781117178672232497903214875611656390843396198626527989401126778330945407804322932964041383996359697908981399527139801561377737370700058898894094268334150094104181967315670258570643872478916889884857008344231163339186761477033440410989627652480432537579046562665670400110517955931762453296441032517961073246686972023861947289208488638423554391677963588535174166999608608803678590014547378659629754158610829576783330877857676317132585551378547220827380560422329628860008645978132267780194119901779052107537511740666834975810253674404097491476981230145501676732556637341943700928927307135290470536866894270004713391543701646403817358944336305697462250491077100369953649005185981111790275506197999328378123376436319584024568683978364654190948925121480334750530391000740863219689694536057419506134002467571491764862334872723464226509204667033774756391521769726731016301949419711009346716675133269285111254479690635213085561161916078463874762811930182974578274758628839809789986751895029985698661935491883928794167975764291813582658124806939125107008463311877500154769058492982507211622116929567363394692175198598020656275501401710220523155828276780178996839716876145103919972602787880226141234724449545981700579404128393103337725510488649164343502987321000391267349704093007807758852375447562392071392397436689135013399308305478032175695468155208385136679371534472463231989101753794682419671756137487158581389924164272881820472338469422379578659833695424689184919729676107383474606057697754846342020089046753945824118005849066617313265203738077317763191542637607630356097102509005284232758774389352086169723512349218360386559311289636791775504257228668947085941201517978957200613312376360409528198109164822447732898635305675051144350201997952002777115855574841795419744344127326278898459682588044561149700857505920413946041008270832320988482123829191023610350757153587240812948362380340703826598348940799728293347512370504767647579117745400281453409745822765034033727937839419826377693985185590695463916169988808759565072625967694630005744569765508443445581854428025027715747137635957069079500549555445621308457204289889644947644360052048500356908315830195774153253207027645795614900538137538485442727311794541936370454507464056286470066035907079808376567298139097198380644425595559323762161862475293550774055507463716084432461468827910438882678080754649738050857174333485259298710308153584110820350302350233273379645980586148855243710167527409524905027067689181448071957245060283805395909390045203249514825154418971065026855656140092738909197152995616429700428195999329483529553101714233320348504682956234474525137830939323358673476178772636583791070111102294526052193210043683194792329654122542571434231957738472351728615511852616666383104318168981479169649501593840144289271778949950175116160583542691099587701215115927238050983194318658326626528704800949215785230230401422169989561548215423897040576143593804644168870666975650129024926804410766585686474077536875777676078908752753082619667478682287504780888429149392316752245126565682943255302617186017711164628625915529122131387846278836239318757763481510623012193827473742897015189414482739324125940578860206198584295869305368105452785533119757468611466032420806816038558302363461761936352997951994321298377222498701911661760996486761577164710419340014615622782359585196850916592895966231262413540900180417802348277734862406451713441258907116275033143654240944789511766502616723357211328344193603174661559602288852003176040011490134723515433315004653427759032174352242090652401683752520387704066211150951712880768028710360953285526883353468706315013479056617422001924846000165492554633775763095039648408538672149966074502749110729281949747581796811471498510690149593111796744822650074389220944657286127750866221143513758035062716070645358322604268528256076048862932045490698152435924891680591205256078125908826806801517033495006360580215818950928327127917787282370004583269563226132944243752412889282968327097883137775561330634555460425888172462533941943228975295112183543858078549340750470904717092236915678111224967854578785014695907068830215925748591716326183064277635523084662761571499874491917909882949705356307950906062929705985387535245621992810172630961207719014007959640506189534966465456934927342835045615979944984560922285984528046338954252610673642743164693619686422419931963483822953010650493989999655274809621032730735081965088443564944455005906977815680876075053724496360375547084535812555215822505063514301987095957084950683160744306878944602193895830349670545233412230935507263484766185586177318911293562096513755037288540816339630337356095067516928538310158254098221680458978236423510578979929347743292397363561319752415340408654017873166213647834863755273816860292748381307432032964698209481214799547233703719324435555916764349402893296710714090521686980630265114753173879811646596988462465382140179050150841829336645077520645786897540947961314041369031567956003104538203590326971697848126630344551159133570183958739748756577482457364221964824341496846035911907593416591550758941734310595054430384303614289524586401993693301644249754743915609456456524939650635669263267434978583271507572434940054620243491656144505643441883342647800627806884774508567648333913674864905125940077172084235477458523644580329443789262758931785116363647210639686569474679054598984055169158676862647709640658964088608270471653174527777501032850433912005116977677848965361802207183275353056423517773201435441691390565913570938450062393198052497937137757378458207282777363805227865934865951262255671684451853276736081714960555076878566553139209197894864051840563139737476849872224672923208402309606325922728936989770999398174060206767333630340796776430093884904526109465716098495150662836449996170050280442443907928906891884840193228365648994927536051735806096724324009444764359368698157757859871336991225099483744558000182479957763034245349032763103267812166808034894351888999950545620480188703278081097739485598946801091777973341566848100859847579863112343702335340785124849542491722582537127432602566451699384073367970342339203144510891646082531863129015782960886937142922618807646055188213832523187271088281869296885486652142948751833359889346174280211460516321324512983993437088539522038572686488355187943272095403645697279920047467484805809419360879054951628706206585651094648501204833081354011741411670906906841811377562989932845663419556554024507663743401091327251937684175742741741117703188661789642927018163614390468261888057242056054097125423112822752087859073594049225010431901153440244386977737530907699295480770440557508138135555414957527339157660644128728694916968246703012759841625029826128921633460008011901445264005347071040925555260509021602008260612558358670125357269504749237817152063495752633305198190661890961400856449350703854790444958653847684281116647235509197100619476102195386032983474414997451480364542388685524399895704764565837380292893699634412962164559783657631098846300880185629423301394119685096698325933950600249210225934252811353849726613244765935076482652656359507452777355942506654290041042343864458036341968111607280984001706963660462761739695690584743352962960652542632722761027633316800173304276825865061474504612881580461309851678826393601628706631684891746161446756002411396515100370021733619758861375506411677319629833689975540912266315992882790502239139631049691773000215912897200507603867402769550122912627224425927389229551324027856874972183937195677486966913338635913157404806963919309395222159069247125792020513579045292697715880636201227406463936865297456590025176498532191667675519502029101069005146181276274263104770678720517547449477508654634546410921889675520128161069897787168701127065590040674976462675637318301216590317223238083833660728887247232872973466486313443715150198635896505517835137877143664821697933077170874756406119985199923566344311952189438220381996249493651986427412272491753490674706285184045213300861506558966658236471528499932019592540697414330864735749478586213824747040141120314036660836868128068999944901977194341398330635292683122299131650393196022842532175851212251666855354523445465299914096200751842020990635542631816555318839286424773091359108569015893590891316533572303470454421252412717674811067195684171628216328650342610917405645058403555571611153394745954762239492143728177011562686838883416465510361218666463023327070471049871999733162440179448225500369161405555975542340145576300019135804137880407098871782478162517519926506556478776638615124403515751012496626584839564092765881702837612588583546028713211371202709470551890841575638578451564112795465280702784848478893798611423885550876934149995098663925194423526008250085064552798169705038051254288444986552761964387818177560604634064856600525770968923282239918262015237163962522584273275536332869418737072282669084354606913136805071361298285677965825254595822000053912027010917154752215973872367092506430340639792165174631813029550860312955554131341275372129112930648833936360562093661740656739493198535212691250184811356838044151892436007580704792802243696038285143947404952501057258641967033765364902493653938989053512226723602848332761166538212232856952911642176368404240770102302835761857793977851736468778274731667686025618164133603960379739448323933273423272173956837654127349528734838615796330101544797745088757399511602014692095717930622583487813661412581426876129253891723899339852702835936632342220468825521230210800446600779574424333329019766431325455474408112687365252287560972008181371999139796274372910518667369518459828668118315686256600148146891190054320300757502220846114111110502720457059623975836142129146486630261164210388332349747411560968353789066616315691778837659318381704691989305501510450827066836416358067505579571772254773942913990894495679422446511655747723319336583815648191938873142345248787010108155846577509703554764507281979639541882780979923296905344235879690012987250215770362406547782696382221752533639976141681155774465595216489308397549512242686505763013500587363973327622564897123584742264178509705474867574457850621939303030843402832294692842699881607949547198124706489728683604352893667202025475711503259656344000461823737273079664989259113735174319685149108734113106310863854640960358479740255745343308944862838247277290127039272795175682535776643686833600161112710799405198869258516023726094930467963697177532279348352898635293811619417448243524259952359054290767874423686202271839771713069779965063073831017024602252419868684607669906673038685580155609666250996847410555306353253921713841721449684345236675351535897422849690441965743126760340785132288043899406452517513137986413764038117659194074579640295019328952659775788742355870437421910396766229379050838324726796090308805869638806996110094127183118549357580759552625212609040491454098589796496293064046664819752695837327931138418993886719152248433473030628729203754469662155971027849578215167264926759779656930734361472935149525430064416552678906921186192229145341853618679189225097649134991546993495771304049827786303360279342566803420141588213038783296044598326770332423909308629123210561048960269788125871159702482568526682794341297993072858606868672525898507127455272098604149861326698060063472540526194683552214594098527306354646067807841044704026531897076827901757422546532636443685244477503069213527091576299795612306928112576379091228756490018331445829243489859194390751824742548814584051366090549423921700324473672355197067953867205979367086671039810345846128208530539042809144157271393907941223414957208533801376421060008990463358032234323132905749231180455608236809494640680658635960422498203558923330159068046125137524147199313299612453734782916746575274799207371119939674438278318411038468662758951605385590501074795113528997931600630040437074312799017344260619013917677256870977912606750114940449808121113844040070025557604868374366965319344435491848289177744598765613916617306096809063814116473812522506948038906878759835252853309130845232942032246130131195795418175534104171433766671998330922474450323622521242920274475474389792373375535937975572032815375259680937749024808032087613598348566362698576140741527325789061319624705005940485104488848450126446642850538141671148805096673310753510156583784413954678750159380328467355812660231191996168949882042527474460732308910703795687377059952119477294063916198332685834610444007156109935289379208150383995649851232047106039414926293229247902584110804556714373293655389700719437974769772905365646486897838664072277315875244794166873070487444979717795060253415891240452662571279799753820968231653708875309076775100399059233370255756467742157927421997307947715032699485487061206866235737585635770447596767167187182578180431137380725788665133318213736770501861659357981649674909059338585206256777325533557317898644700891010021656898246174009732646662760432144779520342254690639842120063274333403915915617049297210456360518427240034550258445928291762121844969396365441273044613205575178791119839161341031043687833164615531608234488842793266138017648857694746731316942216195052184868657981828792140531569173599327999221576231412857440979711365861540415213661685614219072805180203819968984604709610004165936549766093061490621173510568036644385293702019143972717032518146764161146726442365238761316115366020924535546330896922772878454150268291408503298159029161046017127051972544726654169030330010482677151178282208593696588933279661596239115790309310561056113542097235990849948808883879573074884553933310759813872059458903745214271190217409523609864845137677992074447087350155254047897810061205218281146473906096046351402581261628370507207555417451518711203679043860175648928112843359842126432303254183906626210025262991939782954105663927975320612352323317158916374844295190470591973769985426111500261680462314836667080258386028223720079176156670245082663608025584334106055841505066691939914110625303816759780365530642873627605218080209975698639785147948877096413778068566197044868853509137058739368068201848856490237443761382886643677622908393155149764022318319077811819081720358892795134558473884592788006480925012907914838431197536646667078100016360605243884070953935990028362210434547632652423416600461409710882111493903665427870657912091153637202970827648827765117810201760220924775999382878642210838119040521494620677761561482977745297448831066256531057756923030430749036700119033634710898025158875313558867637303317310279393778442879301933451659670686273623233748088747009158233004040824342067943690755498477295554040086567291294149383673674428338086849156224681662334057103942205841622409919883283452549765072703998910004741266136539736047763424095109329825903244708899794764411628867821775395038906316017607798024577951631998133923564309662818422755701059641437432875003436955195567508851649896583001795351057451895576495537828917259165439546413427166000880127768573175314963550880114606341435331611189853137055008059555346837460401272594835751969702421438270593361001062752322586483389410756616569730974937182532169041514265033788638002231704335073989519417349998230984558207660497036859048100151385480707800224527880716685255056667861307940696082403677075025599689862063187628464321354011863378618223243508448714325966203530758308641164426934776295905516694557262577775507176746964438842279805899675946374305770031502018857659759562423959635061441041282776921474172970031852683644409109719539505835592601527693996888205679496259240327944039887081494263266252557949862824030395150580250063581249713894927885636679290226060143034610947269540773471609712946199051634064735002942939424090059247495547035489988962114622495633842708527778918675679890753676018496506692854615514454376765978926805628194963168824509590207594969503636779024354817805446032164339281649118893158121113946195983058941553202208137139097577129787930917407488298278466816006099263093445847805486341436394074422795493908315266558540729732055823811230009681014359079059351928187874758247037195832626529935449036318971382414267445599554314856017077828761429182163216139888566906887808825400451025264771970459689565152748434007013744293554003242719500703857349428767213429072535334851111081648900047785899683938604085854438960155232897698240470348604427248993008701135013591317976587915881407553383852745574268776673450476757458695299430723421589479322519889658191317228480112460248642632261891135180544703211605384004843423457907917384622455670977598592724739258775781591666500706363969845999523481040004840428420567610873755969774206071383624217208078380460500873662950758509343462373298016693571354302100583030446837669676514940904200309989124497409992802382805081415539959425611976733482305333458772219868375634145212289986111430546971100991525134245268164983857709172404797655746320669803655046383927737925013685032586479629197498039902798609900796571929956027597331482672008494897101323648701648155900988203315078575216616013578144701063145911634526981573245894068572585607167851750014830757643867959759223259111103581852726351035088660315928483208384358630988122021056717623884166988552497807324445154514278747666042238790154150825008787144164377170543678984825755784919861177871366516305064451548578657973997246269761777131703035958898846752692643183041559736809370421061347228869455918336633060248970298458195717104819669585101561935944890903861393657761198567739345197605561045654074472472881366136246994121985670470909262535995391307110032378941794295712322407216534801575004344510302496290218106215154410148919259420468014322557083157388726930244560027691206463855583805423321270129672605556814069553243645610965973421643581637125512451885831169449896502509978805360161356763389611525908542724453307151241110889549616101407543700769561419129405334554940001922930573197118950542403771995001936396476277928239780481540919843650808856766723665123596891352517296652968018613191137384813434370986376566108624557338858036439395721875062541861735420532094058558239581826900817192878127979459941475047168010002762699190250069015196172329329688114851144979495909864636621298234667037227210028295964313523216806443586758230660094461507934693540638820505544704477054460979362131969309003883973525136187317000078264042999438639499319610211995321920782624592258628011976690488702184363903513669094440685006489000191062842225660934048929101380989187833525736286228080874042441722153293913170678865820658968694179258527441845570903153451895265297733990381341124360376429707314146824337965954202869228754715570515269329574229129790788008384568996611703549368844987165121278629792270530198803764749525988927761942754590843508346951948484645662690077315263652432870932602376765771731157985948626300162547247737703087658232887594220786834086136866155474196719598921665915135974883450360414571139140749113544377737367945282923545864533853637309004604045388027920539346841051777164444096651879473020643862965148272958659384257793912302946349493820372323628343933871504421530098914041331167515426311921344066812575800823671222102379999256300384396753975045767768504015662871319891044799394407774070799016531729775959224780144219943202883224292801381389381814398302241500104687713037374477597587805255569033541127681378234515768601214529022986024180690500359171751247412325873611937286726778323883807195300417042872831946108606158023214634302710397524481139789852693958488206084874800120855378613386066973983141890482174794557048233033115735725896135319799040713809942333108949500797252845550178229460659648927193810674736378917529507950328279820785619270176487034422046070170340068511580574641994869001683904048544426860469941396010867275684797529311047033243436220755960064269824085191339081059571491263387507660586843323340943539581975396391267700474065118820867563234015441344722430165742961620519861910354186755014610768749774392411097627409105715846535430564355550016914389434963180552467935062221478864364646773984520621723675342466365225070922983967409012354503537266785569964119859669156991676110291521835941294941708212409638673665064204033818410634872753222230663482717696623137260934147544076269777664108560295069232448001043858119803370977076643249792039499898120423021681488825187617614818908465773168022788432084098733115843994879346216780379733274087991325822463203316773833803911691693572816513072827198127808482618090184176204003265853933298759544626634203523718096141079325508558303147505997764647931195239599937765235930796091076515640681918445583548375767936279658350909436478413269779425629302713645940984859973544455712888018911033192035107400684222925402517888762801332091629406717811334122386889251179844679195032925403461343541070082752272961394257828681457444606172211262104706918329936263179981350087993754096022038173948984874415019944077208649404094050916386856168080137521240557475435958010620627205273716338777548498260217626242182205853713383699669447397652004893075393909493456032293693132847449167249618285435193807785063546517064687449469617296477550078034808294438114804503287859002000598708092859053072611279934199570498731835609184784016506193739697945504942739245454165561066075217075782183202454522214503227950587364009632483765588034492401536284919817159735854369476432784960305071087548533603290798794918174505024489108329381760284398058927979564187039287500165368455916264041518376080197659834288228705359583184999554549772597265416122316708438821646220841980106284623926964642494307341456316110342826904738245303219261409518947485799750304200787940788628792981645262540661052545152554170602083194559953042440923476502598901189802206369451495567633687390850088365141731627789168478487754642202127264546885440515757232193442988157035016683746728019671742899962590002193955261701941436207954358552246773015169009927206382359076433617641646043880734214392049876520632061285810111756026251102045784674464124167747023116825755125812117197011518224371316589807183322844996252562148230192993524816115325184548359469827038700973674000020931179088354850508465144044643310458597359504843484704966218736745943240922786336199495473053384995487535952208348258581471244060282748080694418979017860921281979827928665461234213792147600113252652859923785384549746469308176046019157845660281687601934087267018888944577459190503617722228172359942836964571276874778552784232985446382631460232679506334093016972701563943770360673081444310253117398198758032907711860227833072692660910224170722202525597423389109081572664880057699397537900166925816151655721520411322168293915780784793407927233879159435729699647683646142975856939287268313391111363710714110877357288902608976528615318145366192880597113012566768365863799098177948366449402055500116401410929207426585404528207380541962257025933344474649215937874422719160468424154411933653936507914244146189365535925022835743282017777802471749444026054972459896428612383239137211407314352646955885054372486784647882430581989537862894506270654953387596306557641823772334174778533087278750906508007211300869433011173803107490820924140899565919064232099100293852267697872048200965037505553371898808244116892301210399265052537568025469517430668008748306394710460563496799383052213146462495910251511593894390177376360418973711875217372588830683431341170889682636762079922912049735967472833015515730936130419710889668665418651831577194381664370549875536839932021362572261468279378715025992258441320121046960321121804036170516212397397416163832180926802408822832033649125439363522617725165046425424370691057160210240213889312147728209000304442916633550882430018784872119903058772008440845472434198685270323397151735323756407652002344910856892891669271051637499991184175567454227855768142447528542584293050175156991174496116347593563907447498060498943681340526978020830192155669230829236460778727308130063782628074954646248506469439560035640732396221526358986054728052113699809289991814390956302561193972533584761173590010634538528109728774527688908022216241600941902162765333196829929285951404027611040239402849987736937772608423435998844840110222452379266400214665871004561996325005372868393492177569735117450596709098381083247071487081057104684790097587816965992082284792677556331587904662586863581571180820477560037083158653297911939914337574353410209488638322156406702755740579437196009917049072622367103039582567888796405843014382372065787174200356355045485354354147746995116620078277072469771229770026767332531402284232046894547800972005228322591619498815147741563213583305644091488527145136884577865847132210091129722489674651956818171507143708514562183687596432790684452639579957883607289380515758084454258738857685781752285221775420786787856469892984199605249285484618957550620451751139625727179158287313974202871869137703010267379049864235844008101441184953639615701532400446209415332077541430348236220950571489923892864036927524641067553821876483529573270198939362746375075673395741066941648596208847441191265386622797566593884286030866274899704091812582883094024783650650343874184805233279573528261011513172905417146043342998243571797427545012525716385603292181752107152067979018291058590398396882744436267489210378469366766655034487164576891996131026709336740587728210411832501436954245654077611574880347785918641277847813598800396350549872359633229518299845456597610913877603840481833070334284718466444739906002173223227012484195272491742835427385239976467276755794327999228159803442450306266005577719117900487717683147689317014129719256166645350961853402976808454125734715003635267232757990088714674676260370197652222622307456058311540803635708895071736262491616049965913701071727163586498861543752953449763712659119146465673420578544605469699210784344033381293353189249674588858846935553127620949972161386592660250606139064975411133885188662816848705505919978470403636288112399543733673983832457670747511981387128952773313160255788422575473724075235029984513031891107757905627475538345486933908833076638962958614413524969524927061846465912386887161319405875928403467988501679611761719985698758283099621567190755091556470291559510002473652292779202712535760526400638221533399849180221202166632768957683396670856903290936902867966436859099413269281495081705167811462247103968326590134666058748158149151272540258338133073241297772515927560190576968335625906752983514396691470598907785633619288503858469306011678112309853274190524816851779321690653529809008883170152186124378375042011702438239154153758354808007114835305238004152184527903519513127831569841119348418758110355538118532744953084190159109357823924346717555639498227254203342945157395964035981676132482351438474956268822455962337654784583356996118009273979347241875793734041479360586997807581646903117794801609813076054048954361691887091759396058305451408035352472303060645635324129555734295323249673301993860391106469699950810832417159304381050057377607654080278756463404546428136440275478398400064069202661976692773303182836206082689549826226901020251264192660410962465531598453804808709375165057820553691983458313727644358590789513126678636571051953352271184649455843456577937174309128981990449073032342162716936550453079775570645586427766346333139336693299582395147629328378197058304855519113530501659764785445394372821770527943273416977864423413532631505567323945225581694074162665117743445191864221499443442575714695595421498201343840708738442562164834806858581097080851436579131533666435450750005931430295766082231221727892202306008894439915834265341093313835995570567754121908271442042574605784225703746938807086056297503372143152955374019580958996703390268518486225101470345324962975893987743894402039445482915097157970812525510480101201774147128860081434337130067596085515056583292667529917554160341184397649232182450262755133883799155425120203100208172050426956718868287410323939915831146463454577725548028609193319591927791235423185191029688893707978667057577213252859868445635039670479280456238907572328805429345229688507556133172899061994497008736891943457686394514396600726693227621800792307692190826253687254287486760831790697648307928185317960017773555421443868430682341748755290116560414415023452464802849886451737676356729502411978313214486631093272062559753129308351931325694694852755141203902786091676912433145246305325544719939410453770885607342371528421653608734032056255968250523141511819311472903475726679576601017275877460199237202015265439083443571945615187215437569329677829192446259809531603100223737856689924026403535061439680336595862096546692329786090336719374442689647223402153187732425637576432067043556502099152403375084644536281240163669545838242759188560391520499738420247515423747516053325185789193892408766955306062221005565865278793013310597959483312953491565596667661412680412199636493368003382096543610027034928279024397708851204232734862689049635804498366327296189301603237031666263587782334578052440998410402636219396726011422827066580711779525404557737481922156822459822113811392391614693732015863172191227476372792492138369084335742187987585420808970462363828719622543167304830919734247643846054554857607979004490227241554929114639472716695455150836289965133455178556166476487166374682115841180471484506513942264124119058329214884078720629808038559824947355677635073741145344924079273737328182318847990460137279449333349750821973669250641823032243400899954753322149580279224881746292984086228252107505310837137890988495137874985440107326312085975292692251511123997922789269699494746902234853315947643450776427475181494038948891857105571866915842362156305525323607351850392365839697268084725466384561339374360896576382484216426132760490482722016450120543472287324482266979286637001565089354525474588044247291553070322471449935874277734998218786166274819049188000439584088104988383985860223492924401046600537014797011782667859943524792384399843322757387295597182020438397091877689668192899061340264564976956275739092082094020772399167181591337345206914424802309986235845925110987573909024265517577661946683162919306071483057612805193428270861446957705341612188855434340618633832938531433757280715680417508891424556623466777757712443688061468011531512415655015382657013692801084280399414845322023700001488242484597809472189015996593255639555120725441748275805838376885884695539426531072614333547839679898041840985204316674745845368923696258585685035629755810514624453340819392633452522695829545572826494430067787096749707936726369591457537296658317009229515061213551425920956998948176539539575499595990086839581012058277145840254103337991305860420533096253676983644513639421684191400422488899036401675014050671456677271300639033107754130243607081861893428576345870643404467590489247097878904028870833960397453611042028348233785125630200291852405303593101937102224041240888423076667611161387140053622609569906097187537915402841163541429373395826788859054207997389361634938351659925627898401832333069349282130850416482803109161471063998718086039231333377805979149690767851210994725721045143705850491148072676852138648456960995773091530861518961906492409722978115720058443894313509566774875114680052676010572700637666127504627960048085527549165335120993596811493967558629236150875432946953284081334224866102318061227811928894409020858196989244932722980558371842453595293434433329158477238935720469477743835049079376100142307903297247376968326353459373042195262280975150244274339572834606730799753824069716299050487694078602010390033041431893254583373829279794758394933946020125737205274559156618278871743445163859157276205650734205310490084708289278576413148365142828071319691647832307144140009470915661180667883875936049861624412351648918732253327522583419858538615870274692178748161764017406667371225743668310416032482895169957814837856707890794343205536103942139171301631201573166237229451130222671235946280169881923248386289910373316370161515681340973823919733144069934844640960146584103514331720762260961720804523546728553938254071551217494024359671713017500844645159518072386432535537254511452079875534601600404270233301008865397152142162531387296955734595719547640840823139071414266966880657705015767409618012967648941430279412195508045761681529668140615695966025690183470024580045754826868954569689351421118016505253739551518589908037991040143668090397061751190566439606930181047577057070095917361107909255398618078514317670629365195526281520829709520688822895549495672045875612973355780316347345522520639285706834376024245958964523498620789962392340957475694794129182973465032672296816706591243188303095256886532666832505369591374631936784141952275607210610815388854751681377062411452503627097361869632796223191225936416709042080358224813428605894041772301100474444995106340705994561970676038832072348200448684446258485133190236576419184605016802090558365378237921597177640922168926418035413072210898951116270314763318852367947772845020902582672764388071936481895645157892258494054240168207025607283462277589670502720602685713155881682756827822681990596970436147042050623046625348795746184542414685002519134095704826298868349645630415928074657786597856448434963792776194176318797377382938539821351165387412459780509241259688024156105471542362481812411301482945300812295377459687218657309709232779748377460046238190495392232550239095581096871596980470784992750995888892560346340331314827275574578240592129596201045880143857157043249899795948187771364791825183429927820252979549568442713067346452333624569754230777419357666794700706467043746549184715606386816992267249423688407796160948409208502466842008149988538536220195084790980932841586620984962038034509216726307783036630283531678287462820313912773618789723421987118961743450161256512588606330647199159173990172799788975057587871664960468826183862841190424060551018464434898198060503719274428307645910186755958205739718434393214641087714146526743308358311405934100317252972776702069861696357568751008227827850974445375189535020944538161892226404145501681014819720014817552263137525234899896009030844004155242693481259987066911252507659893596642855552240164233844370190191267337817826547268580976429088407521950694717913507511156649864087170907139819797393990750951048337625502618050930243744851848843983461396262589873699397427576895787997477498891830066998921525252272519837508261645290114356049998430437740928543500053902283301255628667927074194988470921596326176109265163747368382003617859539647117857526712917505750037357335783523190564585066899064925460636335997068111693101929861850754803540337972991489421584284806877130294307899509366391073283397095485005536968853323183086357591873548123207951301094134157516348966835498684054125091025166179939575575550299406919476413707575703240925335129995118519037221759336305821423674349847980007804124231147332045149099364480427545671676648563517114107515669258047132985041286073800267451223441574116704903223140887620091859526458376188969042997970965814063319933665440502892051849657130829695130217903541474543571786390159023788665001684809253349210067165930602564250717060146027220002972180235290157856866726422764583138501482560245477983808270020652081691307029774770641081644482846719577780573176835055276260949822463325993672830723577059943885341589940004587139754155008180250509124979550637482332612535652569369679108969251327120271936761804655827234590250059158538785020696558858138262142607656789523899017671558529081350564618467069906861032566921906612016580566594608229645091666495366904575831997229609605121803245500118360822883173732585701406679732468503443820500666763891266094253280586578804327217346204317744503296584487074602622133183571405679373559079514563669935623417139532783680465326008234271184591547796750937149442657632329443206022318986872754811885313331228520637333017843175406580961696293126128768032021813167108791138359020298035770631148782130961075168794107681914553930371793141208059825969371997149911112363130454396483244300963472046240851568921667588200023378898258755324764352063380005281178482897230375890733168818923070951726923629110582750409086033325050846814871505960183053678468177909212688705655221888101882033962305929549666875068179895719251558073794732381355586859115347851398437232586570566173267669836622285099568217338098190493680672248756009738417704315205386032303740987211995214114713217836863567935359914667208169153280917669296823235353653087633171601492419995024382811920139700052851940726706192461394468622414721299325719787116070351860499963839101626776955126682842356895192777025341294406768002470973985542908579384446239031875029195996882226269487529868144125649880931341352241635052284777591242911925481684753922759424756507629358501587098762127221773370647952879647075165448628470633538387951604442051449272326647715909523967111646066939683833443916398973412136782098165474288936469513311932617227389153481111183987873253364067143053112453482220061696794066592802374431327927812661588825084977011940919001534524955018294174319090740891586272167247805521033392837750720260807214853413622884009779280848141507358634957361816728311978835049105627272366504720696094353111272069598743970171471356529084116433459492371829943826672017995676453491801898721173498858820776678464922371688795391641711974290533607463258533774693350464752705652515416519623612197912178305845502621430835066853757369114805389722479547750702621666882344667240558632586245948681137600923065665256156347482100649114672420564526928197548267700554678780602027526256258881820587929772830384880508427496264043990061833991151106127033942519481811670982526471480023237046158040429107609770779220121163859567974198469583686483928750316502583684509472530125758261157446100532427001590790171223145661385308190247491610922075850005028164406758968265224628806169894528999281886260878425658296821859203562508820587444376392908344755658106891313946156737206993371540920596344227834731076689330821388297460893007675025967000175208953919332719340693433392326182909792489252555310980840624117395630630754423524770611757937407655563390297034617148742711157543206779663334170797469653613613639356942296818469543647935133044520844412242831489874577682422577707968184605286859782871451960239511174191969784837334087153726727928791078483512765561751245711034939590688456869117574004420938571523220539369403703452521076073646906457311213896699127314718716019254576175463802024439725452317304090238554846069343983195997068754486317212623787298320860452386625808892249118077675693711587029666902248265856396408063700295247281126992041114143549845962032742562470777539018031332950899259394161497518736258637875439908035151758514841692226977947716336666636422221111910130388087493962021045713606010164459464188095974238427811447711571532836991180261201741524075438694601128662860300077479219068083403117399022045557956722600662686097029197291108471226766790682260636828377237445381173007791049729841945221436315397219748030545713466296857707863268385339630120934226241732903855970996272466743381179009685829625183140208569213125108731676917575908414212852811184855608503334091401463213432363960710174332786861485367936215007351653270277946197764928881783778962679947437917905707831158603882923063974416541678829461030120003869263745132997937140464229649528749794022080283440701589205948437352373277417567846291461904532821542297452440344662450879892715398259287103481063955098936275147102263262497661033518018857367149119413558939477157612398755484037969243630698107473577708248690142927590286110979630854291264404602579525264125847753543347276295140071438340513923478894352342866897682441453823407533635272494587587550533277552629603917030418919463847597311361863694914533690423334451889821490845760604373545244199505840378946810142293512058169415815376173274451056704930964559459169148109959432741793206096440761011747656865832939583802973441202928016559883664934252440148862736970540893539193325054971979985358173897873121527480162778252099409591029006516371294432858575939193277035776619501891617772719854301757864284245063359496747925111365643616557764601296338992938245156189795295367719827154810461458834467317656866641395081317765988071913885459909800262337401097321405831660318585124862745999257415466403947112603035989453181546208167794384339775075385959690978314069586444754168756411988993310026058372556845746123149902439803842105330197463768948649025158875668749538918410271808697529132711937155548361195376219062638398957144579711108387986906175232737930023729266212234232629045492615249017437932620412400465002190277322924938718608403571315970289418288629346818749263077143602764137345135300260749614107222713511554225120670031249576248922728986012849806794807327194636623000812743093521108375816140753583557863642798893376239405672595943093101370568247451809476869978667446055467252300768015823457487973763136123506990798717582725620164905807996484624966124387179070263512851280440337773273507270672450804866390924815022609935848000346183559649612284187189908119607198267230602221856227588746189517160627892901063331954733891538093014772874886547319255313731865750941965777798895922743852677384512353356384937694620867996939427574221913155880323697048787984599294905441833210739541793462889916491669267379834883038731372020748596086494194300421956261583227152832676760282668417646777899124923332387464703970014801156546095988335446346471706130166353988839234852077867947026954126278733676079863996930402562813081431827663747180951687472884967786232309148648576715695998747233073509676838804671114098855361108957744283147853036638587493077242639693339439567195670814495460476723730625105838891926960822954252886702649557176922430435089926420288322538264033766386570002738348058641906425010911700482958533824523740945960251733762661186639068948948477815151094294863348500315736093625009501132874535818044319604829639365715292000153808606231152169637382096407872988077877450052388162344737140944714002802661563293651420291941430985977749075208392652472856986414803556618701957919053938004929790166936952102616553579265085446112918226254016804703027376134064243472839434714801624087867469862689665619600282774914443718934129080767599071418646838186265415267646315443510281026846963139770702656977033380703623678507361785617456283698137962279072027541803073391986483611996073435455043293431382214187412214466441912914143490757381844515390683101297710612602885126438716917494057686723596747797738079637772048024415684723448189130961483609371725071933178018784106297915682829553692123476603187334853397139166476536395503633850163858635980229294893114029089597804014912767782255751066040720814570933180851857670040993548519844811178372830498036478287402389688277553120843893030247908456795740048278335632633650388907249277876820554905086656066546681004526368979096546176411197708933533994848061834604063175778044379001405237389055602070028696144745033396772858986604967944008678506889007436210587092208506232981695941772425215024289697839823754253956645567888264834991690138431039368189541808460833087330740112375875533791374851728763300044844292119874805388955637106710229659579983758360674767669449398972551336069381835855650628089950834353610277740483102857961574191840266481725555618391505871270437867443104821077560203530372020237307620482046830686288532546553269529548516868363621066384439148902193385640521882795014720722279613981979738208419295026077276947337463907094802527155189872710530622777222018987346317879564565823127435980270286728999470039438013453757236738879032637967520903714571237862974533992089058276650923983416444297644423360778446536490900205933877074234546918570286686133034361911238104525422921893890342682282020611119072168672631242155313429580720525834458831077342065179520664386360449326685547463242073942844308835670791355137142775450314260041206173898920755322080668353439918790864634751399859821723670152138008791985271457324132302358640045409538931958543186897763959522127528420811397869970986782087184039461436646312855755997774594231048987601026344993534866385155855624106791766920047566071335955329030979436478460824493859796893370666512254782443378928544941113369836403467715935589868634925210247998971515458574398674334137449837113024379405321200962022059202901262310643796734554397830065345162998664739302711353688875128966775369593589941818650808875322608324084312523724059287126938574649184594470931578258781081202977377077063353948506908073267593039775887597839285272491211768703223359308959403839760569403629156382266829024007674454668163309543296084737332338851631591049626736145238793863729727940283202253495561406260520486173582556588890662154781943438636108558366218284961589266011056123692309081888706618611998296927438072301841582750443865813312024828664319887493599068257127858527818327535607676096253331822687530523795254584052968307614316440187672953853531247541658417923127493075738748219348938743008399177993750831229482865957280644793870069063088300839162530873428937870827888820393320885029812983970812919711990202484243311450516071499096845553719989282777446957823130471122344156906038420734767079838663570747710688550782705916962542386779036599192081786541990775691251253289424639142039238733313415369188119007846527487879370070680004437494135776485989862381486802036127808606491357075536215142513271800099824437026022394289085254445500686847402258767602198787912240355255281990325115187576684902909223433833742877460149983809827001644479229607822313911672190696711250235867756364107947209894775198300064805624984278483787390618943410071763358189206835242400760262267835815528839832169805840502947332493556840574674046848600070673146410862910112088770934804378172559907636065838386980864885904868019220947674697597915517851725675720129548278678830778648590168474420840869178064173403999836113779861775594009461929223548435837203423019425178088381144877901783637548673156563260356604992825294392703061868895605757963248954762133167022220868497641956283150687623435679199326006074345958419652177496825946136208881471003410856824997170042389421055616457394169325152635616186162581284772342307647472278107321200385889351067078106408527623562460458848019317943431237372770758610255321514710195126470341893140292379432174569516573574002342261012936163883750533746677506888438909372565529301947087890792873099431618716548470188683344965350814219386237960456481618076719569493221390145323870422197159920118691337535188777609658926981370867809854860925627261604526756546492131503779489350179611898453537792530681905206472591080648183686092025880746632643530919401805892749199487001976947103545089215161838407710406284055843331306700486497297565900049968944774914168029943652399969360297021842218971915873736759894394555261522890783187887448928263047676512426071962195057244362478221481706742923227712227173186864026681679482388530083402687226750375750938824513716332960967811194430240536155381464996064190431946378717646566633769736631762328728803807459241163416566362462554162161883273451077147924356198415446886899930659076099894549300780092550837341485205554081006586556488902166361312026973189740463183122594762675422290061747988243598623140830515525981773761354887010707617524373157140067164196400044832376667075820069578035789749179574498131325622420045664812846764162212902525872473559277158949878632385253307547191180899248494346438818487941553986102284232889825135716951140850379340314144205275294880993747551375927042186078326913951753643909947702528523470916729332083686477820216001771744789799220846937734934284130214479584784264166574373094994700759011227943924657520655083401128456443205932706761285012430358105376472400895590132628316141137124599189885240676091641666497020624136432659578191453188302128385681977168932425318683906029557305012254589362819373148885965209056195511994110935244245246042969763624459813942468117686841233920626740637951729823247862590315281504051007987293733198093308445567525792323703203310274614328895897733707883601700099454315574561421998440135605062583028055754592664035682193613778842157461452629376030633942629569755375344607989906831153106604804379065567173688727596752067062525135995312894042227698573623686560992613393527393647598729166420501055748512922672538737564965501857536369548763324218767656716226993833823954757192634251168068624019352381921381138337513428919669588831891315535119975153830652657988999016750446628474427872275448572349442979464231022708633797165733490956229086908216673866512630898160971398809563558482572296869590719266589433241817937411707670199853489609314564753205687236184057425896638969457605938790232795965973668055218662224624590516557073570921504491792171936815433521964862879988440430864397625610502941129148549360762073060367994444547400572691217373683384608572466732220834609160610399476456694518751554544622464717582013594777283395707097275352664982399563918528701022316518849792763941059145563500646355470556966135758688490180479010136259615604629279909307835028798400271821703670885235634652396362790453173545896548653449637047403874805972243631844982284100840026764961767504877181536670197340362544954647961679604833655333055756116275490760200984910028540345191285597975382261529401732513989727149142831498514695635857967646886176527522765418422992749993732018322490268405921249664613147329299103860347696020700076225344480072469651231306183226834579477117046590288774648704529890649060557105611309885093809964787512961792222430582307565225653249555432724123515964270374897654044975341193526350503329490331210310887442172517401486501827283730655253331157487233328772020815401531270403181248705402445661948667828412596345711897815794028918404513814282851903027710308691567888997708215202870392973705946450671311524055566819805275789762659555879787392061807731048218331483974422786044032401113934269497466532715506877005690381635743544165139108524527046744656942374874016486422062902981606705574445845532285857250622860453703124080698829011094457622312997888594280967010837047087983921359178324317581950563815553838374400657519291044883757886551010348305713898481421091041734643030340265432640006636144757336788713867576247163722907177684877187451262440681568121369382577940858621911939771023941430661558412536799801917665646916086790005996052384733811627454063881127334817616624945095375089508943756406525090467751973566039513843176192086487097445184333464524542836520059327220267916516841124292603116720703545102883773097225749957336069792678297732283148884323816562693079857533137160337666743532563326489125104995469258464803544289290729669517091430129302616535572078321587418254368831495760869309686373932274672917656799261533506878549087913560345879995054623556673760777494663108736871125085705014662525215041873886327918399129376326872369463705206136844855168488420717308186614274611084995213848245441747941791725351277493975929739505447121220014085652953749938153424026965743416350210730638283674125362953015221875438309776197378602490507092229550080313633584574472849545593280252788076795217845590976012365878007876663415332959841742558602234454802611461331621960020018593162360396518923850672142669453885546037900852277933009226395831108257982312457496761155637176003698314003504746278220360897969509512071771964697721836477281169932631128158864025124673855178614638200248646187125843640055394771850386576962357253230333296556621771503266971052950433750710013354026189528872347668203898664319608677521586423208542075219787998520780964565553970582441131770605691097102886889121197849172333621660389700578137593373550092539596016071068522996968472252086068229808344322408076422497894710953418757071351278993057659096547761144414158113922801372557480123438933812499459817800278940647979621714423582457512825964779240624748763673617462908932305936329506389736377365001626839537860495247303515817582890051956616300782279903939191771401130345717201517304553789779640494019742933435838996188081892707636989473697795703986530004806667399721665490887352535538328120924469951621295372580632853638074416155886748532709111251370713860109732513902388262665839305169070913456065858618289454187527984507276091936855601947696288200826912934869323470782704994898299383242393211023414007047734857196373368146363749314048701691087205692077364808553987556216906163065039958400334021660495441247823981149565183230297361747596773298236477361514374245765127781272779625623719222817859807174853522455473628198578972594841912126942567571166027295868017370013561069411256841669045293178273414812856870921974663821600759492179101900840333228487240774440952250545978776290652833981339627548369625507674878669226558351050134808094233054177064790393035543400938219412657140759175208416853847403874234496023319759997860355611812674028083983794833569511223031259600789374307412369500636582717651669317636301743401004051429687677111629551229138219104620167784026972014925243394352975279139018722393613161838968018710125241951470827894350948867364191123154427511742929533308514888906350289864442526740462743943081091799686582705004285138457160707775662773522639670996882493107915812949978878727770332996948761452087358954323316410040124151911266086264803368426436345588944407469587269939702766544188022873123125650048556902467023109008398556979759805644273907907406816088602999612013168056028705382310571296022182661772670857619632072880436612946054095657034041171496083046985326567177752191850767946325092995439614004865888903252452061645522374228795230820860694832372645924534945746757289340897295792124918298688966368437143134045404253960358906409173417538235596797376671514829818718561966822356337775964051928809262005979837536747892936934809073107543704595692584900483034214126811489267621811063857832527785239491437823408379660358396729938164612754478793361476530803731156789222077983991926734106137035973008361777508694713299308949981572932871132936659420704952223473061465440943371597172801758084227611027062198559768222147186706415602348559668921342875365220807571069048047511135402088552623515806935238952550995077378623213321811021785551917951892159544216703016807018883841851554298445157344993498459688119100439117935704747521335212245476673226490249360445198830863470506733980973883424957668486887172008091933456252266222614945067624175570015065128551397747941751334486417778354694165487617361196055634616905424815384164731371530882237535039145091463830306153982582916040545262150649571189866809038604992624419878985348126065293684686696483607252234057919175062441676966988465270805004935142217848699027456775114280491112130009247140643777434685843806333774132569431490443705854279323680013144707452829555168683384751444324601202204104787172051292454369798013183109554549804963692776676233476314792874758837697955476198777732622201523825907881712336159614996935816146224531581579297307383925618008547387970044189153014525700385562618042865780512316190407558849783558352592149124076150427309941327058658895742756301031256566138666785581441026736843620740052354358907253444940896997904013466360832146684349192135408457924586679803611594567104187624472852568044496615777535100597686791909112262350576822086787504631845850482391936727526504249257665242414662721689682405359273646203939213576816073611282674088852049017484738175765320660688481941837681563569024258753484362523642949304226869660564728692561605902740606556276167177491206540553673720584087396734135116921006391501167713285722559514155501199470383744184235347482039009527898328874349329687596475887234770719298131698506324128177726340505257219626616359340210499271047431043457157892312085687853497544977927840645821963781326352318579766556916335094872345965570581233111711877654899923998862410826560618661904887442068655974878543108817817150159797647540170852890907618241052589430167494499478753723335987275833353601560406874344875312019080643647113035989825314535708145995727289280969672173804384615617850580378996487377748608927864843899869262293100611571190918181965307818110495560746198258086945827700594997911976995807784640077078354114612474787508893490412922080743625006223664989954101871100461352726642323429835290861727695530298247069883659232827458383835131900729522012483015979700210319771611919402222782649673585912684529687202180735531884709005572790644489554692953193640836285956281814269125362095746927118594354128650785632010188816441618895731938690555096860750941849571400032972902174271861246360040635076830232316369475469563496701871168071078929831571646845948676634733282891095025424018464897515742273020676018963841990439631395205798446195839752844458463915590540133392828764940486198395163266241872489744728472037265500543602286703757941471169468881222856021830000962902304199131699419178842383958544646962027770231027600877981016492396168647665922356525659401221167674883774034791520035504247924137063249803903315868911277356930838844815893869694900329672491970074677942487037490291259388155697589386164928995102232190242236791159185493920937987279520046954915400765772511405280481661068202186557723704122776388812808107183571987774161953943542288059025713263539003796271667174735951374687681780394362913576547615172390556777894955846625924874065056141506103477840535743860191861764714843373525179014659850550367224356133806108996985711109261100282294411220850575674094171176320952905799852386827894469689884225370512620124698226246002812088629706478533591419105602099448006531393901942603911838979975083972664970529964756333134193752188068660702848757709630418006090706187744810415093899056705036672688758959789840672999789114212516218273942143190613301260622022777720336370886228757482981989583704285198924391575616773799152307419419987192352684843736243842768798323798652804857981125912963947770988915251651864530223263690458620903859875589977340642176105329119415966711822199236128322543187034032506758619550232899069158865271765325620669294561807327591047492134171639521788355741750578724995053879845586142255079034161870435751971818659023560135036007343905108996524690011722721821318786557523052624197975129486985140241934352995629261136475265894569939567498173727998693275959581825125453799768235179884405106961825755103058904925202199225939114622733737455123958506795382938121909602940748468526449781050749477857257602135406167102222082680225167597826426215885816744405963428443175316683574879906147756322984037876678620327737267525556495650115137990366821203863881171730275159263806751130092505935751959015898087548529259603351401861805879012696848824279063176504882092225662789521723276954512779259715234963716852019710268148294397318550319208841995937703723721014476917020069540105783805729880979497370322068935485756394213016218797688941747928668697040499371361616300405181267493837715123495750882482921053848620264017379709096987607826562713382656583892604467333962330366402080504343564050944566093386031436592900803672751053922190906190679482198909416631289595598594458117143990834739152561858440596269667325827861950502968363124083247379783851735316317025823499177120031555567550619890102817038513189650646665378705162682858312956736777321095278041196861642448599847817692384926034003176796670361502698860129897900245998444879602006753173173725513420324876011328162380920551665436154079625124805989062425766190968986691487998424684422712395484615834507620171963589753485366391548304534760498704416026210856316480955829791545893217822168079051391619294404662428331828406242466384708221949055471666423895906669064311375987163124107668222006612218554960702717793416814441102330589321257118083519118956698699879937973982457928277717577673661658473478550688130048712772899587654030213305455823845160844516001110703073291798013366543618329999834025271490616696719199203058254501883702714835087376499417736665604233403415994140594070506574274050262902600675235406120737632941796456603236619040292399138125401293199300338907073672521149781004041161458279560919871572284579741456198436306053493886981003048846714576043388465901025338002415051174432361500336807985266773705334730392260652170537234535104701727888400426647128982923778161022021034153732257514019408147631411627409251756813241274774147432937574297956013553389020372023474013048391446400200679634776214126774671048814840513170561039980064535722332624300123905081772010656813357279105493981728394932399891275089920090341707450547638522263964431139703326295323790537695375954234148291917441343338616668933311395005378387198573021923403587425724656791939036547024176502440124013658207874967924889647363031751154950197949471715516412700252834848348438034797036330240198699891854081360646554023361249840817896794792311878604713471972118326134073964490537851821999326777118095343035975593972485954634725844623650400824241939520571727426792549341136700201985313852175261133036973349727709924265320523195149073255938536243584794906478885295420818655147401822958678018863611394218520838314594179955049091236528750363422882548185141111013930105655798491967191049775048339725964589962931180141405233841900083971124227866141633586798323814190162780783750989916078469136949304691341641525481152091707009220451968132459827120338740812137621688426625978407817496659109192448393723777400039029270079794875964028098686918487794843683453294245403483685072612724400300681069693999836698588777589353659893332302026088021086777011232280358295578271492797208890330134520622219693990501462351192559395160528412289888373908280883437744877785277009874262908512501566924538766730844236924047191910498206750020687918752889523169542482056105651669706441986052328887189774751999753673170233338758086702597182023520193191476758690841220106219391537161114080990485706515086802380342868675622522348675053637833981138607890736139986971125908353333876926945742718503274942985389187773121267334842043930937935434117514250919929805292864361771944300716498239881443967779574480647059497017160495799887303404646028668141370345900380183475385397290398929561334683795284591310870735504214809663248213748433657455304346094132011650356806141480999015153382282519847642243147091991925651222247875381708078545142902932189363232884068423189313570493941126393238167255970673391358930095578602890882249643619624886988479279741059467977888320574969971553234017113875346848686894052926174777927223058304523985411595505771202854213775106124700875224002407584660049614297620246330618615918286405363884253357285617191977345449881543807355035218409084998664620333440127902532898207275603544740688488327424024709748142342367609292346817386364880832196620936871833985510430782686889179939647363419971871470562195387693863228125169535149223751239617087452994492258293787692841723750973880248176650891522807129127349146966507081376845738346378919996284993428838207884969237200851119291537733460156424492290181132949582018992251488728794320891250995843704910326795473544812713647580612762089819371774355063208599365521136224934156927922954857274076114387872755629079884395677168191299693222692014809900193394477937201945977674021204530340615835126581932653678382591772149804923107883711356356728076135540637071155398681443522842922579847240459910621615998981466152498658376130725439222999288746263840496873237172825350754264999596665318684326427148361326235435304558404833375332689788567413508309110323007759439531641782084100516728568647576633650798888219254585874630586703243943705230766817818154625735317008314334697588997985325504443396415776783454540819128238065304236113739927560986565281050834780490589671018838337153752550130340441821276718153459119000592141726280752922560026352009652298817097935956786322526828626162136390970919529252461708265863093704003666449430468572471292729644399194232537318007351880212930060938592206700235991481895286721076038248681649409192160048065521804414100285960898626913178230017315286862593713834479510829155929565880082313577998065895295823942784252789948863163701786865965334393443353468932521085306295835107709977784731732986638325941375870987455954175812258919285819874569300612995457070949581618120392915432040928093952228434109735763406434755994215274425913008640293267445725802661813145771980900297763768782905175857678522689016119585100721501176998722065242255602165575561061122232515596916863820655294234427141535844190134276123395799270350241509325235779853372973844507965695191809340501825288100424195736425164864904186309291368131531417716335965276653446650239839095550440229538523055933449240543070620300715416841596323822157444790393207317424803909642532603613965584921036198741254596470791509293704462949472382606657056254506383753496874217582690138397446811679967277992315336552339681075996788477089713007737703685868826384413808066790165080472181121294509995594111773028807258103600595977545707847425739150952989135613638810803502783439246626164316753217763493262696388895187352164731949243703386397395330577961613422305620298198512089519284112550001466745796529663196098917062479333813732737119614714545229127400197129333414050756974493523485671471101537125295879613984778736677959470140668722286209942656772895967331856323596646669853724826138862862884772611417407769299984134201865418386000500326336779257377896000348372821941421745588030522568180997102738000787538986042791261119664501279257287202150583750609028836870405297954742013311496064778300227048769301885632707051712838662473839643563575257338601873132905002858097294140302076890917332999017670686347657463995992604576130628559102308951576781843388726648890660420706164544382319040349110147497540302034373352081036349751642382846634248612137752621822515642013149667980625170005631160739229921253826933209821050328902867242723638801090925253911819827479629318880210739088772319153341778118749577420210358263243570130039999790296009821612350575775528898268524706236897814327350139646344175277229611563638622812222041619507300263288237648288320111617113552484121078305351425307763234533918074145335169143532449025106599901610182736359405951191150277333574665418852345870864565531186467926194943998421591381056339317266151105781259083990041013899258465316298230694541029421847307114116558437607089532966672414144803606674740920558382204993036278129262816528764312815965790430021556880953878081938317066366552079988800072683272418167122041743893782452470775092595711271044695806026966646313938293325935243305952701175302985455693817452139986645106801201304451422824038301159200148049058849953290736553258761339090295377110922817918386513753206555133375021098711566622983621454975660190857038454470125105571808602929603883476469543040906476133456601618905991741477388014370363484429085554675645514810834654576891965607573945218238246227931322580769402963978741621199022886576094097261203450985152162214185489579690031918164440733716117888159984924276740264896553319356355392681934846575433608771882479157903153264675345704527372440953614663382213196724480038107428061702389376255075122440747344686097928654099636627003779607691079021357817377203694770496197148967942560274504000768636111257128637990708746372237414469158700256905339205470035905204519626878734989320261861685707686976630815686651949899157610850581766732719137862827919857867838225428804276760307325561992039197808265203804960623092221635893364918725866026894537020355600477962702497427589733994400693053847636039524175366544264234915452957144079403433318347547360896536536895616227631988327475926024846157014465754122676184059140677209760214667445188582979488225024196521076562317189618843799465197448079063153514467337690736516563971655645931159588818760682677184091843744705573084693264386987289165842618022934308524782394729586586206209347864910065417991445187438377142324422885233552598762017986932672754843809796664577396860290835913697304892659702278951885710134299986172717985289769059434639750927918102620163297359440216012946067409696873835809167078458689483671378179751278987220437136085395260662429605062705876228192995523222013004600309448325379039337759042117373046194927010598950717183371401010163570972073082524231724437330977866475952208646744888719269819715416797884344496902005553973456395059567416720486203126755958180081691641290482618381918050935749845790818207749053097325215725534687569960058043545360799150777409412430153628796180474931521472399418224673738210031198365122348526297909811756587859026255569321277545963066094961860909798549609346326900929680721612435340178342187558357772112147049465175047771879525831561350102905426106135993830624182115953980940779491038059359669647229356206915953142222152845557938914511753304314352648466340418611345404709567258036507369235049070379079700977905574958784805838109217260174965371584317461131106257591282883865686504480667791654309889260455457448259983361708827684320984928887848545932176811087404152022611766430909687847273632730396540686521746096672361646021795760051297909047157967621526502334094338980705151963515952717375256991508305991097782804436186965436856380216545905904579830853013268089818879008630895653475917570123108455311794183598998763258077410721758311199965778108243537811188698796917523280969407206002167593638666082246738658642225797585174458028336309058246818388061089196264861458313513951525880633712842610582741350136051547417452233715664993687419418113771304735364334446984039408841500042023941769276470948070402381563628711882471402981930922806652975955824956150418493263814419220668543659312788005628881143096808239274836928595246718138787776600855507748261534657545127483230313709651440939128356197533697932940331448842820024338059616824319012590788096643844754614487975929497034341064499459872050430005663499715113479178703366668003868180428922259707855289849985071944975061524810949524196171489751684348637011789769780694322768352096648873365978291919672042502152961423405875789935385811282686180767794725170596018996748883373731055790682742735897728693216422590357973247212654611590893679556269637738370857523144726154472931418455267957290039000417773133263688826231897643299729710087897531019525659853721650258509000986027053697466069850920946134499652706616433655951411323371482388235146476068973555137537039045803925465593211451537304873337430582043338139943910962406334078217298093206103922576956782241009141830339071090066537896465445890667644387269184650261834238544593781968528391958717206406913438255549506411861089110190862812402967234186428418243891431052768669963668106419264615006659993325510349343934453399276229348461412290414562734314763706089408995575742469647094589486198764485183690046131389288681240885996975248663244942241615755438937204678933175386244460884643175752787166855386978852318014255663493325165669348623016051885409478038914299800700100550329756498751398045523705096660909257864596975314994818951805405548189699170660544332895127720880130043345529307714661243928414287438620276446265645779305402953865393745932726045794638756580549284940844675230857260926115057856159273203792020255827947007727974114526936053945391084585193541308053362637648768110784557982445311680672365633527601196207644583992218332339744478473250464525415394303333655659222340783174367168008888608387191730294161233736826120242304341191567774677868566449855576040648555063544019449648149077800764253058011783585696171924682175209401606723522131226036831127299453631292475342553654274981616727487516173057345209711329744905029030090151278472974017360928185992832071863975193648088539026970930864365065743221647525280352017395773046195265951705801402686386023969286777287693937406389380922309477956690110801875526181548814609157496903512678206109532627044445246935978845279479516775068151627705352983634198360035444696660826089210665014644676998598286208465238202300002173453467289365460241729705540077054284613187267022619126315521000557896443387662920117628770769101890381900328701351299499256184815810433960802864205020885869566741897774364499200361714316459742332048012968551897196612180352973101843287559266466521611525224721707429564157999222183150817465394099106922412402627052364875340449955923702030275169981409757409213448854952395548826089067222741042964445077316147495136861803058926361425805133658209881189674558029428457722234690597067720208279681894945624960850502990906215439422584176736221986354406746081602404167501562626546740969671588870350982053778489501034894956419481563645897564337199604734033321817084138523957838423433163150705575585361849802983569128671310472042762464487815765682481339302970166268669130604199482902100181921128096375130384164322165484599683124505969968396623538681158962879102389171911291056155767868620099035633504188503079961603140489193367083846399877020097392880114447120819779043664096943192762915482609106795997847947428843249509736641325960551337093991781632176281154757570451957058110578200655017912749545814796827985745466616819077038377882007844832003555574624984583121651923615311137320987066888797324707044557856047754057312848290952969690737476260275491988839139315978713347241976603641814803066016090668252733151609870204696896096555154893353849022688984930240748372597073237342909254639598076769172650069444719769468653392628050822118446897995602932508660488138660372626714192229247426527099693391582194691989933992094175506627191438827595332169334621609917032968736925087720219013654774547347583430361111813124956649823642891333641516526354696192849765536070120146913729836193180430228394251138150339588613927221510779900841593150937050856582902416296156600361440381761164304357298744291018333796052066940151635000760165244220451425432108961973791566677284844506222337834241301992785320726999387481845593521154337033959670648742309888977418384288682729449950850404154203802882838858564724983235972458227299145322602959779948800748936634601164113381499020739778872121413838473608629049269316989164967775662258223786535526846785879625769690983384925471804567165664014598043010132856880339633866096974727768094028037919371414243360967595314129839645507275527929652763658379335310375059866679837975231942237304344144957157576637359373346204190479123119779047965537746619150986127009513708421703069274387375068969130409427321239634413091667985643627574767804501573597013298865655617995333126708968637626303071215771105947110529988067634566650033628122484767221689545700832805060941514392687920417488331767339060732187114868242478457668302133659323749076866636205702745929361620127646308484330116987181898736983184568832372572350560771476096732826184070756168011296445838862999762746504835474144452996919562602017601359790095695961120516456932330626413177303009603007135503297223771002965397035305347153498356443801412580450027038234771664605036135071603080921535516945323676298849618321533071999288624128809358915091322904673582343826276368469335486739803828078658040676650797013277112892981613054949573165918504837352500809799280875891657054252154813658819946925317404763904890963237334998460144535332625330681872501903044993105140572671288322828654889497265124105760850132178135168233942702353197210296413500558711145341398177615520247388063052325333424709804576377671089039952115806113240919092909823321136892182162898294982673000431135766832355362198630213581654750472591329001462152108874345695386695489499158305451802190158819852965482269535107151158792327010595232083938404670357465036670900853235902114301901406382774385311625729403789672479398367214493615277917720603698440767513644082298339461193524048460037970538135228326701290814433163760357774705562831814380349114506600430661322358527559540212087404981732115493782186764432969826586868480118583710241235134240656500286723278663359940356671033298926767121179080030229239674715470860133596931567793207581297449188669402616597205478650504340916271649614470180269553144386491098989492751706653336762341465194236695174971646716904229379910661060564537153654419073452851963010924685551933727393837295830888892021567534360007704286887774055425780583615033087993796413449858698153378599841308483552243946513230454575827428575026491845663047926150756747025808442194245934764708898729384468801342091898693919281771165463858696904499563945947579788628990387196935201590315839148172805714427420954680513138111526443021275058062305799070963704874153976475175367805363357425080453310601663054262357077327924775276266617857704530221574193847855156489169131675131936215088040163627089214902616378309358913691221342078616094645611227241206955750379432091265626553506602985326822204210270875753016684557223573875197294973069233414896807128814585995360100159360702325831264944792001606795694269562637626650728300814772898918099643708224519932009156111154188269652923942236004273540279286766632857371242974150204785185337366716314072998187086033105869897965029620736378253075205941409976099562500057685360306157935128284428436435611649068401520921163551713989554567278580728046285155663620242459516842079537994672669198717742203280036151108398692942304612276230735555356518813086875818935838557831515976797801217216820196455094671914236216894805173140217541723127233045802484699533108371846451982909091589754112439250551168852173629984099337599270982683794594065099081640432289074634777282844053544638198937286490358837834320852398390217301919452303006965681249867275877370664631024714020707090932343374475600434470696170317551280675568403838827737390459819549485638056215459391337761733098468600648186284559737135467541433985241450721708303729693190349438065165840308697343206458779460229437745164482418940817718893191096470724149677808179806305080323214368705401530395518289807103973290073323527379448641279577187826771248131481948805691088980858158081038586794317346021666474091900314713528946999657236304463250056776874292732940889835460329035769015976140929180091705375113517592872388069320901436464975769440407162339706065543568221812980901412845301933999677346047872449717532767377541962446702035236522860433717112946412039628254763029201067692086043907640535503821807193205347494330593381879366003592628968720387955152847372051901232060201772822388924285071530917935785503583522868391607968978073014949758837378730508750849238002729090685596937960992020234681858543844500554222117163178751077578485815866430710222609710590197632413001095702268685095966495103964417941821261216800312711418195021880246466033528418194088661926296322390443913366169445036846074513887371785023732620573950626884037498861432879905611673723839209500893403817623113887410926541775622258903108840271694732651694199637836115574936111804827737988743666895868606192075080766105291674156823172447230062295128438057965429783112873624525342587834663610638315027283937111462581937024082921690508819494865857653272407015537984138227668014050408435023374607619845415098670375987671142829669344238915301971581800362169603453417024188456317409724133202791224872659753153204882575493594161888036075479648039410672187147935141815647604085734446554932220549965939463421340091811814824810799876641590247180014061852338337310254762327975111733940166122802072756025646480136269554562782702439478801343196696062511388467551648786997852866586581966633214578948304034854598784308208775548732816870111738662045820586770990022099534003445127870272701083731433784098183107053975996218286728193296845069091492039564657514708079045583715661984130590278906496679825679453147358260002276311516015865692379002815594986239648265346047482037372162190078263863071326954945250880942302105997020935642061671649199819273631286679944622689150742684328051984332671275557751903104714424163756957302279416404574249718544220351589038098489360127438238867695617305011513955042984423638796811985808037323344967384244321478086977274800539113688351321231734324965673258219751656986119747744157431743589923822044284632842680440585337135006770755887571557932224395113467689652179114631430332324826201373136309115085050094476622175553773759461193965495730763281457275561129518782609593190738181367317114575975543233958718712688714347537740730479506031242951969784098261964660228052646765970516305668064731149214544633298039754039318557037370641242465718553359695985926754902435972834351073226266842470653279725145704885418404999979689230743299324895459050354582245523114117551662034834022264354096690690421270124717775199779882805197332597278331841129949026755011855979960750526407278084048401310668401013756131394582747529377025664722013960567345052612197399041324994133041724851062574756507076477088578939985532460147350961014906221800794535942237828751760897786449924644847688393957481717830838992911376426611456259727419468135382305125823478762441066711408259077877727256592622087532716192864193928897261044843641758843497860552244971218601903753825995543252887785158977365610700977915543959622649756963266092502949693572356026740839747233734416017083627704398140761635667075167938376077559776859920198073997261915079665549753520721168149307490745379106623462999322251615724129451603578673248756325227239926256593651452900508936031225126925842198480066152477215057282818923519415095563658749533007869342154417865169824036846374944205104940761473041180539814557800401233659950168621025420337802901465985469765564956444904143134973822160975533641047717505186677573215096704380501321254275206151985959752881704343373179492011131031755267197221330049009402005322747167692118614171554078326501002892680739994502478907822482850996303531922090141001554713714694223776641494764393855989486251291873347091069371772772109357644809875735896730042555030320030291619189151236992583238596153054782524644029401580563381586897325742487598291364195343108324976291175394328239974147368687181311728651640803619961763477753986256853322153845639855282235555414489871119717108532895432914932463223459700250058206502427385375046946571778069200775406865960934780340720866598242740556370063362797663882379629532487099427615763246099895021061724640031951099604828940524537534310907780880174384029021490353718618348828327340123639012769518300503281679353430062990883679657486336803781158085050949572824681498029597943440187487264961874374811101111033030886407288114818199990119535158170739813362331827260629832935139490356294621979297798144144292419846054458293626896817582718930217327583110622631299401030985519732571576021679858011095994319638848033541384068783433680986010512033877423161820134919123702385098957031697638530911683969514985970993853811911593829667115053875663042621102504744908022963733296021666123882811908564867966802035666667711353472258461137626865424236330989637312546959164934031140006238753893690110090914945959429815426433149753084029214066734913081772600578877063600458781522131896051209411314659259708423321170092329523311154474430414796855517941827765476414982589357748408400711553332479512134270353710494120822644004478903594839442382127889057135578817570398787593610390665787265659607769724320518084406682978980231260945714112731734918558090446415661026562520876500286053305469686446655009655928995624690658554583957755245288547210650325142725461645468351311088348814682803019252413543587151223319670351626389320598496328155153541651956832838907399642274170328451629643524696990384792194352508239207731655358713607670655642997741581774955188511969166247334399378237513836883679907713576281628974207313015228132063938543634248800234542002765151734726583409312640972987397842071080443743878049078341165239626466234465489261005815204930010293902907597854462265429165292529451723268912203396849466606947007023640857411819890108677098381552233491865279074232065795883036968494642469517756949749414214501399601205700567439189182377263725236306313042194215660419106881248797740521449734528418527925549303246499091966743254198309533257208503294162561660136517035427549841086855090595449138461515880592758730724626077419499308391569348341072712985756708320966704666622272870038144212945362674648358948887814878890684048632863187448972505347212192568173700387978965748240086047943983162270617285290663174594288551772018326915545132800317766680406095043357273526827036356984918137196162911441814654435417103261458089263998658844222249528391446349042970196776804318336565065964653899585889982734339990188223350002597548155947778682092540941873845939470516258071492434378142889373424519563545194613042563795178026053254912788346756527266779737919381332469228779624248141544701946464082124624411672297370610423292431930182837756720184259776182474574306304158704734061724166204170844124288706468669041282150883987428495568442169327535535413209563522827881388623597267846027605488571805514339498843393205446616666840834845003157375486875231207614540745422087631316833664653006509720600249164259633708727302926727196537873404000337704723888410057154882934519692583346940541582760534456341421913398995755274598836595837135879372564206208639737548539656691555780649079757195374400977306278353333928851296379221489722679040791081825321323844872490860399858043417128848513336977134880655690820825268843191368361875599835222663099314996324229600683432335033919030675495482069970849378019516215229767595557393427928564698575691499639039870556709669808150882347471766964667131276473543718511441201259001144727755342223940298521661321879102949825595125780285352988019678301312521958755907092538318282490197309544027205290518530604676622232243880670712662466013110035150839615202590095693336585866082776892310686258200165879023440297740964766158630613967946863494022900616669827706865752981764506352808851533467520216132226264535709731980026526317102480802093340082100513066021940515397952681304051604393495790566154883309951530761610860298091817981580658146039224171675443903515433650367614521731854758745137408075227694189706386496316611043940013672706057298772036363332126261104180068043292398012852979918947451419834095693245613390230338224448390701237213607409749054374570370949818475837034830001572261934584878022014281247542008437062972486388613866381434353905472903379224257081746680324936079886537132572919956779044540932457691860615286827155602398743759618404573528109270254900074518050075885235381948125296701800281169720577145173432328873010373821722798123516689619202519389850573559469476307930555854249253333298051312849909772471991018359065883610133335274342607973196715467972489366548896393670153953241454601089796449120838751619697753006931893174504645631298889595964933910539830798872405566357552235599297918825670059437561447032775655985595670744983877280021921064479094412746207585181788634540937444811240230203825483882504151790225235028966969207668723741920088022838509802504884332502405225744464721739503984778000631617163966946435232329546362828594534178746257879445568986332139313289407885381929671898634334031946842205963630716876523898586118563225570454774282607795241477546837465244140971651168625762690023252763325768559415160185928561312630844836989997264083154162077905958298592399775827307769176940135864571267802501052809426096857523745851750372178039545851218539787491576233922725511195298312694446643141519843345612669990803257739562110196121692243182787239387769172075389279832399836057643819103265983288802607860210553423979847736384555398187983795751412849515368538370750395213297493414139401190146691898099578587304181973501903881117506399573081088846633182940268194887968499668757185999110465503246895106572348347499857853877983285714831946658846082322880247661139895217326144349317528959802474222205776228455904160910709326217088148797400401991828409205931400407171218731138832873278785771204550058652761247122606717433998894603114290766574620981008551790494913417220753324178056730983253355000334449423610286393472143176968380884233625795645627953780813244343488338813020649363851488582058459093466275405489569802864438251672094052807124714052723941849112898672402850158587853314254981585492436688319417466900904358025902399428401088380769618482009003927726319586648501289455315485028210261769852990525318023596450098753057459109246748416452673059026328969365045120296850258367172826195495245917722158260208207486409321967164007697187711408015379006696871541110886634399535956224512208496745292740467267443682873177630161561764267185160240953930167122042177260238881125764888527652857534899435153839536278360214063809355748122369284103904921321971849617357302601623153973935121688822328832073744356581352908906880711175571750078580535220246556622811078872167407017192750121966173378032322955128387083830031077068370862592428204800825262559728656996165592673081538571720416114727446153087609083054202363802028478829823769813915705394821674049742333622098591143590344236351998832238994711965784982914564667959559455133372194254732078065017325375582022530099815378499314655284925059515312871677767667810951405835203640481358081124701634758803227439298321446189128817997632575233825425575620786124559719541067789400844458743894623580786276247012810294446685372245422952321690714585762237869309020440019656244287125008677921009063797525102828894910287117544302525482449947317945997935494850214027634907259446547189913714559032458645864827171690191767508761657405422728204389614470851595266590367848839954897406916747390418808126709353859778800397002529150488094420400763592099138539326140585052023947152411063339524142722358276096589788168227000725626185962399133508521027276445643852663310775534750679593684193750012077745911599471553833988696358758599220517592947199556701530457469831399193327251355153052882747681223256008404314195846965708152611142059354552750442421293772241612698366022831447813551748868738087704647969399579064131932336836031404852428275588280877517144096166299319105027048990852026267875299947734681447263750369196777490337228978931864556884407580643595853410704884713677762911824052727465646045708240908660850389619789786826872136292782522147477882442620901906826569571242249152085278775148968819480964830779346004461817954078146514042956441999283479367177715267281254372564425157572317535403559947861691852230023154836624986220005804482120368479614291633476841161141305953651620173621929140509279472548505949656408159393836668842298965577645119131088903306098288684689657322331577209079930390754820387118904221930505305246402043090068198284419261731121596470828037678397546827049160924654075901854227824678059147021761467973855815045486869167240225693493394612579477431603974596168868351555547423053028743842518524708890012452574273255238124448509507402264581854237789075498375963076728146771474397951820538132639865726448382589958002491287851501743711020931724776883518770629144252411591811129931485073705886492428074272071406137503274665486259004634919878496602924172196014228460365550129168035848298728839345566335120865142931908409784521092125856489103232985250815352582527442591620386428146291049358495330784212389099158365868252236237344253374776765142601635768177712952921278143452227830648432876652632509439859725208414917341261850673303794251245400487852827770786687734019918770161793125666810685121604254730978980190854462661235954330049247763926502997323156375995541319624114889544725486514972783018889334156378641946690161438951415109142935869903713900192070855486480157975175062061756632926219722056231951384340396576720261147802687808401143542511773930720777697673920373060742788327042694240009839994711832116722075123005111905909127124501449155297051843605564739273573005326751666737283281202409631039874126132066692529218332679216609721647504994261463108081616207001029965379074436229779346486781400856732465345026456988670897474395079452494639443679871751893581591866141244064450959339903077277767288425187142601124795439269001923979337937084377190244335213044573200163306916275191133373311579837929657757209399653029837315659055368352277875824793023622191903295674443128133322303126859663532360689845360234398025303928200017613510932937275734018517156464973497981812570836295123139353952168804453741824745359023962640191481725409157263070488270080089216928022343169160980843136251545843254640706915820235545286059625535351795610058487880951748378378838965937760897043373566519287729180447879421090006472771963036586101389191014849858587828857250544589197720826959715315931548600206634185556061484303903409062464834483081859342176546727067117112011893560421648148438081869804329589236865314788882292348318237302585228349573693499123888626181661315305449739497353856686273098900488340896555970804064000097407795537409086672738757480353318219530965818620536356268011294079278010921658261956863088847962730235658603264513696703438552659556799328653006404947852957692793238831056172136661338347291983920268020443936261926564463298027306114887081251545561846262404205493898229378789113700419252350251947601988267106625348330065096536107962350655746063968231463119233297641293702503674649595823891116717593743654361785029727513724303668219341773286708490450735119324596738136449907052767589337670988139103352409031273406145836070019849942510613606100063101853852880623686403456187802759262002935290205330120017952511969698464867744743691794157372559575180378595141937568524642349183723532618560989360572371966565367442010905737480165703377990220222119383850337652763411866441708742071652303473449617439576753289975333868030245599391217147815135401653374295868716377895158363603742633865678973691277425878036355131207374751165396796051918859867096157070674358525217704080691948274520283279509587026474937615944344180323611709475206806885386301834181661094466591207791729991073302767393168302103232744632734897911692098529328612547377114510861180362449439397256788377488729891837074434649291933108765232846165447672667151883399101634675588458293176932710255152937576650952275519628068514247354460310697751292732354537387443031210920385581519047168578625795272638970471325074928831560232470717790496860426541252057853528275340018677988662133145260770107255774818947826998565090826167950771980484021011727670346377189917894655647322430741547347314040747703654604826341665701119969765274693381059256740461865589104799035912227983778300043315082467599807595719158222537110584322993661611444070230439023204435278925168837196343289652849235974584748778726704720276436660227307712510377409140467842372982009555206833537685138486065062715258390497998625697849916159901195018726813241252734836510589173644187624060899501636129090354352058234613635946827410199301655837479935449162591063734195662701339386489642759586472856759419583741983805262071205384067205875440242177702404425318608315205272970218027607634697334474215188633350454577270515916859780131985188246103772365961818820773414317478662483129547354526285993084874344501380320559535563494334147774969324136479975184684553550614196500641440170655786898236146040443074327241865799112651312818596930280644663795555031557161041214123617538293706357470861558580194379617329373416800235553220379380633921732923942064612780974551803411750631013953553296524719057364857573228747337975559551126570950690325733581467718538942227512654356611625091495679967720401104921296052577849423501046435823072851411172397462752319424918008068871261188912656925069881477934177899636392344722789572066129636061895945064490912512973945315521230930120846375584925962376560262041124468342443717750007507117618252355552890530912054196503449474887396779727987808552114579132800757223682163932926541725844225414568034936532064061554656381692718264844372623472454398631733894233674811705648152634624563593380850557292016990333226744202754642718785502930015635731872054251393096119471417018260680653405402159388505367611739060514290690833487514264471409778061427279625049753828571311172942164174423463497080657588884957317384875249691499311321423110426371005567630281656840201623401849668332019999834755599034875925729055769456599164707451573581024905696107186527263091416745622863844728941413652581765948179656348460121767166433941484712179200415272331618111023003149960440774933688730610926030018695083585616943110278556393546764680679302199144910595951782071613898601179522842764058291721947083002647884511417995265757811877856584155722733500543537398024111643037374783153044562339281280777632869539892191581681467428202360318666093204278334390762514926384438565540480583057128401625707868235300196293276101102491639845102002459156664642463656287492316066524076226103879135700572266870966225282608159337310462182499019427954111493561002121955168970144246017083941905905624393453026588018580408337218777614931651757456670553804288611685630119779038890991276414365999640380083972753181437956913428219174609246452608921422844163392163875623695956268431984068454587340252855570334905116193384353115603609982154842045881096741155045490417978337270072288250314194198526531273349033097273368209184922064776499724481646761333462566904336620844123603661140905312544947898151147875625845394568903351962570185824860024809776899778563825648127565715385737540414576457345707331161820263397065649429124889115491921929187195408049850297618384644097471985255713572506815250061769581869822594679270383996012466223189044013336745155921573911307556255801875592044819479959844937936786718730894377782860439494498722158088102313459561071679823681809566964034164593030730616273792906711675329660257047477912348733667801323622944152527120916490231889146226590933854938248333788189596095914770410732680326300678065100163969701648718729946667231637823910455030625581196960813162354875148069951973824072248364098551581757605295987599566848804110016422375867307934733203673474463947662364924337658632438822989697434110367099253800895647096663290107379718081183963294183779840440152019088077393403885191979287698091249984214351418878870044461667770858455099134614550576342011269983406387359864447905089447444934707994262885277849103682902201058041858862559709027799379441688981518483761502975719495419447346050729332731081691694495098052420240353597720590078802921399340286872955282465550471943355697911071528441650925580150939672462176206018144549352611739284773591750390455727227936056319274571004379349983856565484303808552095979703037282795802405322527164277458094910322726260836746151058016490665578382716801215384156858926060062671330773300950805588243585398862259202931248382182454231153374307461432179293569672113902335538693628426989704843829407772077890492583349347482656372910777805364114279067798469727518006335529205612878797071368586103531145640969091898956329067609069869917761478476283645672371867948836690483988710335613166743188412848290287678440735589407457776189256248760869641884187579810036709242351496000329222507396218817625768488266900264140955718676232155819284988495093602156103202614492901452813873617094908490912927289474056601256021209853333398801412729582291177262041878212939305790866936229806198947270014118269566496759177599436110238589216322101996777675130946191018426044708972690662811363481901517236791995909392949946641402355873394410563841189907079320537888892108136657673779590370201736670944982663243163092887995887497902357349802922023574409307639690985045676448335188409012704446764865241460721845490627740147144588287527060747571268871262657816674029276112355237353610324099103110376193957954166917535917384562795686493242365332218984434739101205408022518587689061166956049487610542867535103536994940727533936096005416837913448910898430486120697494104055891677008031003018036007554573611757541099785644370516166406216884565429029172631498223822064730012699603701344217729044896186224045849895995012806700107533790499133433925028461930657955147110259691936006014118270993525887681469528305487881353739745090561837792255598330521478314262963685967203946955503464987072826097390677300788612011884830711801007451255364352164800760318490777089569795224719045743233103577713464083434554934944997899975709061465206823639845392660163637301445081412373477736049734912361411774708432946920979016489970761114864439925967169880344000709369996877714118656713625354695813752032945658624137701766461765565569839867301690503057167940816889264805932830004340923112261044205777507776186158930630919982551654718099738526759338693418172336137987873004346826273691466004690073078002723428550563638199117946704302255215189183483956861780518195937586836363277434454393497217699997947898649819506514207825870714398149779908629662196031569270027112103842351989694855423529307284857080218971773265882160879804913509869550339570566316018498025668029732125086219904618926352213713582853302346942656529773963160812763580725811565567972336419541048418369177727530625473458417735144715892112836916314301841615290077178599314914790887437714838886526651218338350249208925404734454158018705996710571435113206314163869651561588370019764797050592849668345274378625863573291634772806311089199635637790100993414695303534584281405550374302417487095085465719068191009397006672388149885744840023917536687664576953257161888629764029712259536732562406999744926863936836819408947710177193851608373636128366454196114367813012188491549008254223496793736311494333896688409590540990298084181347794877097060193636654151633861873880574929957935972863307059538169613305956003777524575238943369631242172497544742018222156439438817382323123863181641953085870117334739028645660200557285802088062665003679880381797533270824144528713008605956961894711331919470392155885375939895249291498109345218463285582701919610856359674841495652947444093656901194031561938228867037280323666674460272093704001366049393940716737207812387234823439501841980451143691513610014477621646352331455641279404071810454593314858963450310933994639695948477673446636744588350454993063106685067609180717993098874352295388978962331854329073666938068411017419642448097713234242671892006095626894926563533353908006794084483545917101378153571560765280070400835173472493641052563626785902049091737588635649322545087737151339078359101595640671413303687542311318235946576764726988316579633876092779689657612050652271513817214492517263221361536497186982670629395960351928442585573423824298405959068329696638169226490199462024435842426755368005152136816804700489299968006395625794921549214915523896010477412843515196490305312132797613047351685879617848523558148523740032204558929391712316895373427044272310288974752549035924618595258609215883442233310866363146686230171531041802732340860495421083145203969032678417042191510486588425352094985662080379322635898478365878345964282554390410783387132152423213435109888940157082989526196817715072371452372331545470682841723561775625801693271331941012093831753356867692868021397144687940774710939754366232472693715156348445295413325816765677935528131425129187959535716903415884748442696503984480718876014213914493804015535481825263629807765365932652157697878887489299726804615832387485132027703407121716672352540831538154555302949641659498616579933029676321737977321469997532135822747101932633455610025093603273272048921931247736034255251992330828127514116061145354402589328318056664799020466975165817549614599184701959226045862271838215314784034497536810347918341539819966160883919816061235874250541524252797873689147078937570508661318305145973828421221093231250944685949620358516899054865134845386768013775425311583943866011925525101526908340837400332178972265203265265799844101431574717584043399479901723750389790911436279231054296786797836378820373914284148255946102110048667470069232025150457163004924759668654418769674780762877630278285693256790915718694764261431884298001253543848712239240698885005020070781051660965225656911558316355549583200224952343295052160496429618611086562570129818106830476256505265570055729820292415410824061095543241786805164557793137713713899420996298301328868202164011500256293729353415460099273836083605510184801918370934018282636413878280220809214601394381251899357091207357325196086821849605593705788213189500126276368147622539171982656415910720126030461389392565963527362549664102459834273471713808411675001531255429606323089609040678316317291691542736724555321587980339316746540027128179227098049317278204530772417162003643703151948360726866578402589896085797032050900082929718841636841161390154176105362345361670579477915747601982251213429490430545233479832615226504028160036350853908472101020703429969647825887625887252406120485781890164319747761276232600803987887478393137811439914087148420548234063606635467138727176912872020335216377705057133899150545480097667834453003603211354348232412065512485631810373368723345168290772928103059041334709686594912884483794637035185733487744674461055819816027441781825965480387744069291772605022760744083512671767386373727489325888156224863029674085050424541862963641554405764283774661646330138092569642580896374180427040619782625462918035243414751465659590474953756497668571513279624983126327700538615361503495277707147189473191617039470000537449058342990416464871770846100444646844016250401987906091452644960624350423739654882910568379365923325517648772789079426772316919262759406416354691675223599927554851815353145571314110854345803833582473833033124647643926409697575728569128423424997104565999649324031847346625800137800170318534685388566594462103679095603073926935436759528171365974045083874194489490530719615989104013957187226158982013988104797323426819824319035661295225921498606133403702642913058565230295121135199255466168303801321541846326415327792851877517556508320396809685814613498437108169574950253396445981854517342322666031156495840778656428111358833565938557030761547621859932851899161669537660515398680140570205550921313536464489401795925326671621577402851057962452969455743449112005868576493769444043410762350250149019364473445313632620267572751610450009245820727441245019861136160128550695868848003410556043879882084383395344352576898888095791890461571164972798784327088357263489024379943419858509989818534882711079112273741299614468878259464960981287240297272008296252816766118369378128223808062970211996466739067233366057820790969698608332703624313185769142524977539009945271226343135965158516071566442942755164015029893638543430169577275574470139886178746945794114228427751260028116137752354205702067841083358996338546051183359804079287694414079913681074856953200870234357913124617007715678127589635837703441604629369850330763193855966129837343214336378990767452901615084533528953377605462010048029839606217999168876278258542285236900015660872390641246431273201194587472485374953642492557534909179589196363671480557088184691502373986884357459634118339027042981806882095994243397304796748315668600428580996982606482370654466763444346061829567615848525463315746311011900917991181498574943126581128302908435683633566282555482101324016457649572242571884376937629007167853155006150609316622961045746491270290959530331404494517340883162829957883629028738193482940817877587649706564654192649986373728276978091790783602697746328143314908490414866328566619099058477924372933266065682131974109290608966081901189457895462580685376065803618918474411662137015904009140437891147280555971508452345112912511790862275826914310537767456834792814375213810841280166381073872925141277799022985460595218838948470688321272520591599890410276905975621031267304371936173492455302585206812322106842463740951929246281671952938177805130001475084724895791965894457863923107481765871972079496837511156713487213671623851804858792676254096255848401829694197927637496700445302026505018428471500784506206496622221304879232245874678979694749849359102265019775656159644986098284478223016627749275626739628214586324828969241901824292917220170481838893390458239457769810074287523227866260376737141442097604028558092249871054158951502317510094137867415184295710839518439353342098564428901922993447993092655604272840341966335468740375799457496539065343181934738127146294743324925090925811149398371573627136531449212913570241867320101943131985178489537587128256084754639808265800035609253536730416154701040011557930474169720007326399987212702471446694605541244378836837195529286948950105157771741223063541012732974465192738819505658937407661693590992543453387306959177825717984311388438151114801088834106071070195037869926116791941079063663775843313266244330419917790549332105047238566021270342301009441537204543670826064298264423024501580149394919067653324949773627801573473835284281386313510330676534669130241558454790436937556403277029778805366427975261327249849907467833227213818688012627625531868166127143810708899688360985671594631581155675466155112202729684925878395214451664097565188769713686130471468574841061610042842596111495552538809384181525788939534650048165143020837530448701525499336302951881974161190928439565954319817606980974429008590001109991820435381545402745741587984506403907547481179133134505902813085073480979883194567434468405577410509443141934843701052221407367600923008799660925198548920003262616417526934344281826508210166501501648972046319283340229202597380915545687788640937301228519196957989563019737069625120337691266672921991228893051260591443554507623860761011547217322369513282049205005618224969573831453211766979544236336298365107073264131432606589133062147593292133837795640492456415432901433169112448202369800916330243585681136664690170557593590928418553616711500667925452484756787268159094713919487783282628228395518432536705522335401901218067268187988130820399882131949893030835209702894302715201464684857502137217023598252046454974227999088775557704811947303772083757437182173430442481600626722707841032160178602757251449366027736560684615976900391071245665884682723028081020715733079849842270910809734040783331085249893516163267006886395033159550098472006886930121204823431787137742086345392186930284128801886853420934202723289437632052318732933007231097159215127011347497896355645595209812007058024882228742169629871150468736214656991448558925939954163887239160152054243568944660560649031468146961011555857224857990573909611220879276415069810832486570223325728790192686985863480371639473284364759266803952661508843406812947780501054006368111135354537950200478942889742937306633588951090515068561383627009863685199512627574155868480075991971270165720114913534058751984106938364561021093756763566636835605821659466303075367123924251635235720793398628489972671810338652797453465815159622055132840751669546392493226684510241146993872627357801785687265324408181211338224076709530185024008306893514154551403846912946786111809261353151271349712136707553118900620002297539154872691349063535498991680844774557681387699233571180501694421000891159900868708898323880123888480633578916066121506480945178833203843871196513647408535631106022193733515707937594215763480258271626149696263015547489921727554117861160499438302091897682490147517740731358819520232863123288490170042912323941655185008351767664206858817846249462173951605567071422858301271920856856433757413151636471062971354995510419054866307449155629560650278913328845703883067045005114059823604139885300408170452940575236522885960005285102814664532148785214678757041553740284242866565936110061435271533600035195825387661035693691180818781329764855369564465382181760479577806600217345176423265967994858126256060491250061929603157859569970792175320602574194992422526204057957839141238328691420749379944095431151444545507665423127252220243639889762231535445097322785067015060275139216745299133296322598746037353106857222144432659359008458206205056525145047211046564332441060591722007714433562492421230527538990827590042279072960686349293438441863460452244816923054290061855691178149745668066639148772366130746603157937812732486930165142904427398134381895887764443340443308227774748085304247538453299924910013238579528979047081648424807668254120168247640644601640212475518949239715328244328570819652542398142179403323348088025580428601427143766828807372642647576112951889958650971816347269608482936170021507819648886823722028741659222662399161010050521541870280550694874208362222326823348496001612511983515801978215741103705122354877774669467011745442251812617512475078070349561056877263453957418992275705520383879947528506450251488303091059962616603516965151595411881421352602141734226163471576078879398713732118349700256180682445335700195365064811329609739802542842801515407124336852682041022023316416679678614153638202177358466822296316848013549046947767049815134471583430237120589870763882271048182828117675466526165206564570948647317888517895000059448257904515203559711523664693951985464069351750792714295869909248118816326112410047168743946082154905928354971756914082156444916513717240917523895117545758419136257622483226106914435356901388257596980436358756161773421268669795842695492567634893063346999818686197621463269898538575580017276937930003580749263558429427795972028093608940444223649496953317795657938724361312234193924462609394488484870973317960823776796631314577562206325136307330578672954587407057556412120861797993249537744897718009830199672474642086925950170948830086442754576165242294734425905468534091969602475055899453972835485292789479351200292447564796835571925658882510980715962885184307513611744298780588060581861790823663164626169217515274422300773414767411021118087717216763631638843036947951798066373910480930799180905179334037015320709750864780565983508841865481977834857298143337756583222727903551656215467112524119915635112536931479975644045922029996012859124460719095001274904494567053162985453081108829787585866407654336599264678464801597726512214873896691347672454049143685720565979884098247270356717943530798432533364642227743494147248917394910837282409617409504857183686393096414233559799192174307722241633736285945290291614749644491580966447236252509574818636699000312562124077452202253057761796598616478079848589346796158911984473639136979908836706097847415437155652228926927769493021919928355871653687520095839079782806491338004162461620277340888555131728106925822853353613484095062439091577895335275872569593912960526302898753737114178691671551410865995105168754249419007895664018056876098080188754135354992916271130540630653032241719326183707652429427498276639889365464222249187343467406298680771561769127077378575889236818959187725639023899963384986790291853041717222762683804482387345928254135865928195615898207573999122070683815475305278715256219705128571061488266682082479056521922558987555277523547062653549988225467080427394233937887383102100556844193051731917382071903003108650086149319787819711183748881868806147338097207274591967889060988831478477829216018597706060248276570723519446203880705482246622112142933022031838291182123465864082437362205683699435523582582751413532459474901547990780834144472642728426428475053728719559995524745978872643215196705337776439852932339789171629603363251174672783754700053782012638325697685593040386469714843362166073098996991925428981562580570322867876145253759454606398210496385889565047996966457477584266505366759608345190506617957177708815916847320634461871035442843060114301770824772942970068579380197951087476088019178104786968890232834771557004782544681462714927842378414804808392327439553964480781630834611056879955134216397893314562128560334688523123653464075185245168218200238182073661106792456548004662335774826848599888353524371655105775138950552636031621693647003001457659287405619067723188430032254394024078236835970088298391918993694219048923624140004668422883197461406345174887380817614194954829461091879947326489357126043731090446207481635780768598971770466857199134181683464297519707816460068142491312762596094650315129299406737337808906269281154909808877198943208437926217442260893036777509744429284854762791193496895446367471011150156660934984357992193367446533073109361544578158012759215342448142553469324634157659872650884046395269999312309690687527289088663322136834094345824016858304361963190761354647485328737608519661487750180586286449281014592008973272679495275388912658295166564877550571154472101231504209756223466913982751855972374819125442652391543157081173329280410445365450674498190121108034253171363081303554081152146994729754127457508452962882016524286626094647822198936016868722042052276469137497914736111558082253195122590799475027813221989770563324209644552382203116928870483639593099390221185803306006811279011877152059946683811122298122788109781034720358105921992548359087649102670390922391358658692735411263039635428262783725182988520892461257386691667467755974811326952324823643540306369122942938708930866885814095845946400312805346570311217942569102283595489443362436840959768938790177471855040087026470146175286860370402442825636060427102132207588274908221634780478714130317114893583704272109314842911257297570381301755836585754389763763529248249962447341409631418272166281345844696140547506518221963806063077448567243919955246785656554207389910154580472351212316787926902164634265738034667167165125464470638791874978174377187720352063767606335692957513117385501692102064808229332625363892284716075244754741461802652979335972782357474335509507801637498788725904991010195093161301332735417188733509102963631837378114822736718533494069199642596760204372811351049606315853566696636926312147359663054443484822426042313730213667982571147991002167707459195609961619276874505893046745553228477089807694618851162195398383646668727731406743540782943657969340213495167011363295145627770548864153037588145510636677003078721343465692295288675434330243541833341579596287885976795317189428950355146266150830188510603205635525751614986641829880766603467171551912927053268282959847729139659106573678454617484668764289003092404223607848286800239887057842099325771219712125744770135215086850786218850528801104581263449256643257768896596521680035487874226899099331613104701659152135417464302195645389067019761599123513871987360779190753239439890293127976580614514356419778510513194614050073968642017372141764243689429571658290451848877052521593423691477963361340429570912328875965400470050379055690208990740308682644928095243983868514338324261838294755006487587201849065875467683877715926915236769490727095939864418259572320479397890286523564525858932583171644011711385122284899145962258397192518228780986635249728153461051936459766320049165992905058571649563935848230508794811437968107686352271796687658232457148247186017848818999436450353089938544108760148003732785564346090049177971925778068586577356820608120286963163670854848342052555051954888380443977425317430621264633321787042433270087419510830544023048516600760375831986160724665000121155640995269814609368832360040859372936805836300131931660074759483816852569086952290675725987292180271255246315083953462701865182231862324784273791980561360648012773175756469691245895940038694492040030223293853730160929895382538362994814217260731459715373328681796857382003196429516984798363015378859791103862667797595441827609769705034251958012091889237741269374968866551684420935729616677272193433668099692108881311652930399162015773799388670200369269060738089085981595236643690123094273251158679276608416859896422320545700402507696357151004800109215562165601923944926245015629033661335900054371860417917216088722254296579225928768125757623529955395848057186849957435586104295224726386207825745855463385186752498291601994689606275507178550065372393622924169623098220066849661119973222386758886783366747020773019714966615137125555059247154588786111650714781149257316806243474120569378643170928212525362933043871878945252313034017022555269946277282673394910897864523122871117563010240148112915028507687264896203472283025776560925439401670354872124647759857650653041207460674867357234728202682697628082997488114080921762270657153355571686997919560533258812265182397969536845472669704341046059099772753762663918742809771983178869530484829969933243473394127177245626049205364896110001751626917541700837008813981394788529444011054361641819322390835087325136010293622145156715521337590402219646935147134374227299777972531469592331995683540425902907054039447958963974343103615003403470977271955407831847571807486098848881325188102450861044073068929724630955340124026419488970052365885860079035665435388471351574606239879628982001114397870399376282601832654882049408276125310246187091449293467980525388312233677145590783930130466643471511147806958308056322987780834379800350168064868184929590854769617640714961887082683270300318828903294950624747071884780383885317104369591186678193219586867602335139823187270954748951472330335548935116289568779298088220350779987127323817379901647447914823756271956381041820502565453669650571934392140721385342130638387005361517794198142894779984875791060265891793797128371899397066639038757606053220505696531268664825888264200543590298187729725017118914682190316655917738701502456913343955452851483380660582037130151721200313115785164838434893161724916590745514616699310897268607488293726841002681620799062603448233954570096658987044879573798617494603447621493459266344315526194726433580256241619077499228119689162803412103998770756316709164373357251604209287870712058220685248001656383807829540578672536082862087405866391053015364538024152741581555840363608001130855883526894163276889384259913861974321926785573527938687342600072443847090914785509733635068488749758281597020553720706982244319510911258588523939336769640967254590755110751527310046287063398554109273173939953787743483832023753069305855587649745145659191941778722835254996368657887364079499038914308323641080974650290096789417087312163609373414554976206001135255430517353169413611297079652164527233947737551293505973675280402061327580706311846412100671608168319341159636096458945121223185693771946586272363182064431321891300909842668257670080356467433047640286104184595340340396764041044598481970077185096144715122547552639595886397690482789920532078768002362394904425839049750548525031128662352346661445946470376335209486650892460593582773407886319860005893193050697985482026069605064225517422334758866176399444593120143606163099545376958979713982319386638507769011053314516602042039598056543422751567645122588035020609744374898195105904815821640172532003990268789457491612537581871133003584661720251560433292307598231808337928416241907374160026275572974870361504133650434470427484894007735172517177636939753114097989588830879781912007785014261558144679277667859577026064186638472255853267245732660880339052367577954992954806369590694079320967024128430804260582784574945854036279422842513285889812341769582409594497728629112310757836274586007762867735503127148449440541029310178104984783657842418876063317087613577856270747029965488875549468694298835229864553965989542453127179993796671346230480308351062436648561564287487164456353916826653402737750609370991541328713848373861862320823286108877948898947043808412717712252338239353976891413033393779478440035045944231253735092969578354188529928004516598037790379584046992578044349737999394544785869254812150789226135366524668965988169039629309897229938024127869980258538090010757266847312290608522265558875842928678783762394078842440321059281607486452244953141710412821275966437404899185236448637181735839715515687802894539968287200811285968740945490005521216071176538151470843520148746540463022750423141125827971608836680836387936291709611986786597196705861311398559095938173711402126863342856146175111949867377151901988471271979080818172753466950110856728249078342482196382472184444941336162589214242997441319458246763362208279488550081956697624701512958493063170189713418661001817921493194395903175485329755410059110966553405272114915941933101457475417659486234716495770391558629957675066979825457680469722289574298900831040356851899878920322130413087572948155480363159027432360780845504684240487096453520417303131735172253084405468033873372408915636792853101541206370727458339829003990275098833738831439001714295767922874403616956591128196748273672517765351585972673946132481787473565140428319914066867556642301864513691798918903030454433643654462478563595272599606346189222739389216385255297556965671064743040708424471282164632311470912222198062351976541403284466922044024210449046926136838521599814259932591374386043051057192034716738782021848390325501210703477145084024681384717690956421808562398375953517344250276128624227967142792985050429520904025564843782529626184895701300571119640522108247331681972846697001487889300084742495955347739772785841387785677521423897224810896682318355453173266671641173618387984206116749217150025248313515181969370670389862162761428210744474653256754209758848713555397066150065108711845055475538089615549370178932252716531390651993022786374394753770411906210979351118277980712272823081875931143711172033249325330028862595325264239437608159918567780876768176941346180303733135100973096724673533927022525067837834903726763654246092935136950269143207928447182326506179939195175468127967531906132673341486309609182250660973795781356232951094242260965788926080278056554118629056256621053561479678688351678867248393286677108227935134318024049056690578363532633304394379277528756217027154377711179910637756741896013921068521115676326555304074860964857667500478913590639327648452969106118119428863416990288822824771698847393365092444596515986923761489737157700043565411310392720829342398860919301241244951355434846322923632809289308857643489457860304735277563921526038674890330229870332449612345440470040937700688992965951084640568169333999867697363835772618312425667532789547191368602773726425308868250828685784645399616461768946585662604264112272586836045669335430567369107582657436902222064957904599727114129426694818990847531923863420032833196416415019373543523394368129324080643121115885191653403300886995247525359706286881613077390926510463061799317100738952397295677680055884592051132205994873375450498419165216065893819768975559755981313253918769681132728242034171472474495914728883619564639266875311540298084972603280559956038006055790724286331080192330044511943019228714530234244944694363144320052105793053663044517229315138545962590634338723873348750342562903167976980444940188286411930090072734676226477193866203825784156789950504689601028587290634263927140175669392211546225869975548619309080636730575992827601846509921996015273831848142492406595719093336051708504643033348772620622598178359249429950585189872609761578635697572289932031776621218787757778641607713762790328014623204335003872573521976732234508158548047255441357010571200489488923616389293202865365955570030424189009101825211095500765021334748687003972641673631773365020263890487238916095043952487239991405925675198440054102821949008782749689318858230157760841661783283082893808873228720596081929015831626599846727809288911896740450615371483181459320033835234784124117066502003723691975361508366130691671015490868363056058088010366940549971400337063961107843835675857936139483952393909022836021337745172224094193237447066914923396754550389442391668168278910126082382414826149782772380130134929732418131594066221957614865289302814367838241999277797609236706467800994850580709758425509212041563820736021750378369791465785190531073796751598738291146074389892063180964280985743549544588102569628863903110628874585439123700669709081471819854477944076132741627153952788216559399615276080545992457649375026791261966858367359086830950951187407270869430879590170987565738905643488709740463591293306409125048778451178191873217803689204773686690918520096442937142648354533553742900988262432116372589284561403330242416428320052233368542194449506300555534884244128583072106850332106316504268893638831295428472220634203967718480075415551310927139820090625933463765610467982199671379874929528037246286447931054708282932601907294103423845132257513879206498398736458918413144502998295556902359957933714606038610809216991944206617110543579065357351594146038224777889467843170481873337508583844662487153496901987918712117697531134888323854950569053373811556273123274390671296787800386546217570786970088849025723161198932641493469297254700120442115661436234758566955168637107008251936808170625697568469502197837189424374569154125602998821056380471152121793971760958517639395053670549421380598356228058759756163907389484362011840982434356495190919275630254373461414417359939212215224858380457973704878392414815389699156804718046518137963628381046033043961575251485418736724726087656279069470641997505805796860703239783659471972235791089102186414651558923161764543524213893764862454081201519047831746441502939291949731942513873008000040026427314781733494540516897557808337937936864647997546361790003398991615035793377266212970070937846088429682066231721731066561287780227068831224860689595654920145379180184041380971297455125211436631924153021662354929867578985447483449470187109547104875153497655399897738728763066913047912718618601747519601380481391695635274202050699183823213525069402848688395037244978794078352227007060220647464494059271408489942257546160021614409859233164217201510378395994045236222722933126535656103776677224085249445839717852458114859532873858067936986224751485979345642366896361305290536080272226342439903890187152154328407123213523697389153873256047432315126150662721180904689447477530686696887370087220142122091886429016429463537000245043057132749052393075127848757122639383514962858987279743605062560865871388072915714942737344302319646102453283321938030943220744944165705898879455946777141695585477869824748137149810542179371693548597442574323636108739776145694569997416261939100196636125851165206314276862690991868946949928777297449942757108356575397530975653792817919368747352688679046352301300201750824451905839892250599517542482108607856607041394799502115919408311836589045475141563770340708143031211601799587318545404285300933208375465364877486483219771319211421408710783621416001249492350276042278375850442063754510333607795737455200926672643634557482709623965243423816580647552485454014824950364241828610728757860281292130203866698385616705916219268021083390227893081727936254334818825877757738182656795990690384501173089044451454134933702059308612119010826741500054925100481423104856482879334822187972169757984706657906935073001498627372867846084887995082903372095591177380741886420680146847854336299623420041121847631482820153576509417933292182498299678981323591426374877191708182211527034262059348367403562149801140140516644929488824861543310655903743744648065789079852035443963344587521933915385940210952703161243873275454846323093266047013453643625034732741872326691937177427491073092187521085602424073209763098334441512661640989227432669665481422933254592197702032472549845024290655757210448815201829616944826591844485214312242281884793820967898421685060044891943044942205544471132886011843185443353889608139360025117003765272248149634707506970089136080984104220192899804295386643613768104832123427800500105883406272436266290666175081188122342079435824180574926998568543694580046263767638259523182136800777616211727175792785633032993987654983211299682172441912992891759222189311034493595749188145156887478476138763989121750904407729389381894575431721479273317191465435359014271398258745401835651077255726250959306593484198773096168527733386825102441497973968220118624812849052752751693283355631764363321405635853541123430291476780377944668407851949524816186273023379575450264228117840491297948669689813892822923000250951260517805318653639741172674801408362927505990477826828446223162765000882576804413175225233197553677932786378569674253951002743887614069849032008469419207550564266152161013528648282358393447653458966711909748017816653863050302427868613956724506955736463872155761962881544575705585262068722997963426651088340415415847959182076407413867823605763949177611728156847850825075071692719121072915693633200346211625922127475398224834221214665678058269995055362280516181241682023365149924519057969663107192263723579216821380201101772237108115412927066109057436279653552272622640302230294975842786569595018443174576450251013125281036690393457518119424371055487838426645159705158306611389695707777212167079032594014471498893179378037175978196711428019849684446288084374169573675451425628030194840823491264785956170767127509516953574894798441443116508799950666058113435173616181199533222732641174024587151050097861567431798939822238751488698666288894837147045930162330797944608326701203993723952762360335318871815239379179814228157193732471465162160743949983296712947725209983593135777260176217917880281585153007260586693591897576009317286450346220238058899148063275752350943047182604490475339543866755314274409791325187543536981243930756685174095867142026075822812993835494580713678528627976564701911751797124037068347025061803529955493913585055044243063632116607270087606057067140442344798117058704006271008995338551033214356488860397510190333436717104393997200540231047720570753920931105141361562125722726951165794159026104207157602586267662612731043743326702593233774409598350533251377084437671204320460568593772526414449843168599338078316422093533651637378105879295294123231039548277535831463440798930998718593651562929223880053841755506879790150855118021696928767627316416140067903171577510611575330151804425884734798429381587325707584194583172952785185274210567334384683240705057448293702527604201009018195423816797520464378476153324142133666004878822305437604746870148399432965799920167903141022220685800878771103412129952681466029734480291220058834866199264322231856603581921489098774606120270952861465576878825999942559986460232387292919165169156033986723786308012643955802171419017235906655089853871734618069492372575336053208578896201305282165197595109223249235004821497169483190663333242239492894104927531156835685683644986992440432055889823940451684820521422346612285010955886646202391414853755635993342612584124300775446594242145720366657722787133113695528634314452489262170393831677321483639929916702212551476973234981058420273387172072119405306624560518521803854989794035316655601602036478898613229989782292561212927455522758590854677777640394469438331400471270772644344188916251417398771127248660985004027887071590485962755429820813199886200731182882057272812316231047495816435801072262369979456463516637270768187411958919711329991465727023595191012136991751250895873215539637117805194406629021165202014134770563650454724643804142789569813791695878121103615706436489295824239178199871710665408725986479647390594987131297438501288271103420022381412586172259831492705773385817501722021541760868637287597201414965667140778681436712203880228091290521823011355708537546197478500738462391303462067817919356643707309108562220485210597499524601659441559152645044817638880556122522256523173904291335246041166597288412699228506323471723513438570420699940175432774489185011484128853979578762350642064226266693961369371733268925510975327723314427323373694713993472846791538268382348525050925855811204969632765513126372979234547017540018786673967804855732711772875698933976756541286402281251107512297521463585591377577190391518711239204940824977901918190606774998591035887389269321987729945018714013415446194969222590487561534707017272320395510867398098882675326752270702123133010025868344046714118661002033851583289471207261101564054038514612138659770557370217449372966228279472721279042491456479072744473745588377559653901001110918027550953065433829483656701222116539503118215352245861210824873027564016441191829951141573424228904475023687852140400392280651182693494571860435879783778141560020885423907975759098183365076061427907668220031269801486680582901292113987062897250002360611098973005028301433950706767626999936486571530977420861548655888706324809650617386386822002864443257189676111140145944929638349513344166901327317627586038144881155927245308825286589538619807261050072297365302271956615200700289041097408577994621430686148365320465112298893277467414791928402967645615104566353749214439789009818976887487592174201916450943283344390763968385124487484742506296647063835233876221357879668259445392173483837756030039739960266949258147796189584598864863155844764910635326163630709970764355444553350779303817919564885767807361743403631487918115014010926281051253391369872737625553285659830473606774948580651438525262609407460606320345085363085618902343503508844077808789650443247254412622204125518333893909059371826985523155535605156047457565668154997807644493140372079916897699435311423697970862316499590186764821665264939354116269772464872029990641994773215359733640146600063838681522713729684083367587925280262678877932020662567221669670773208835483813066459461243007803904688243210020361461451742583106424288249708824834890861332673200988479940255456691511635428639889779830287786674380089655843621565222160202135707347858429845553897157823249806852287256701871127733171354462812749151414478819883816485496831881110589623707832022571593606279269113283475521956908232747098040355686877796160969722678612051931460941693489289908288419995957246885564026761310703620024877146238511356502833854253250338657852409979504018102286099980882661290314481810199377863291571187952970581765425163003305108395526166989365867918035225114370848640631050558242418519932954055321419411081454387960335069564058819344032275520473987494446471120670516794727291536796791810574933744955328886428495820987949686508898822308915012688123293588085136149108602269456211068816981206261590605731595933232563197298049446164624173806974334198509213858652840246357555031999681964860022340408385524804728216066920764756186838844816397525282501081304386167404613502741756155243347374162273601340679612539032654361648672778692965943915801572987087858626881868654865771295938749928627494442942587758096193311878916006216491566103821815345154611965450109906109309558201744273353752045503312458369229370742076818114721624556810148650647373450056062252334074197097119599914595225070377708351191144289760622398508380176083819676631502107054758187648659563120501597266342874659116378895569782188994132254049478471053829060810158220253655149047494494969143942620979684762340777580870183217073002712407299941813563866815966967425934747477465027998603282781070084915809434405616316187964648438426918226983786910336645093484799226250635422258158187101582573049148261504184147384151791725938506221726804377021194182236482157486632122365590156952515552921344284209897548600095062014576254184049869978257123826157412123604099526724960776949022571725125041795831627111022578341113765183101018756605707381440072787087007581120372634612592034429819752221902088994789224048880415384780614336618403063854729729833458835895930075689816345534126464149420754479589773833413159233446800864572419325760314837450968503029700806241315016122387074570556574096357978984265100830582029298597499443783384912441411743759591731171935077594419519599056334761843421964383823276895610332665666004252589305647275006113020538496563569282112504874365840998419962118670740682920314552597680369457798247668996646020140862763081736588007371736808175786212623722993395446677608339978649645345461466255485355788685787889887534010503510207366348286308868477015793280384546884424170809938634868702626162034611124564225181153324061246033291367685619791637792344788738593403468702613922937523949878966792017511150081060222070368894699010663575747388197475266447829568849203183986058422171538302777707757570636886716327018334910417870245855563385949921156004958892885036084606364541771680866741826632856443400784464420102879379552189557564561757193577189942503560068097078766545627587561897453205684092999938478133866725335206390852275717777778180044609741053296437395098164061564999188689824437312395529865897730341076478840304444766710462735319921527190146487221811812163997759805732676562468712189462534293801262405370897554910070147273617021832685114587254279499470206961642557140556890916921834604002229293580604171233544649343652757641463978077251685864819736457147813875300648952149820406275431330525432752177383064892841225993185937223304309326877993643732230768243174311381132509932376145461802530981475055759972200731793793935713232676213526622067288774038445238574087584851945507790511370420805722826393112488142670530386434656090889796041410992841969494483515176840906693598072938583230117821644465889749309596721768209445079483044976216254639524300363640577531705541174650027076790546424143471426963873711113039622409404301116844196918916012715196659632615986129743741891881974286966420783834062145006323761183830818922462260115972036884238687580219067167858721408665001449795358055861458999701715445046067631317887508974911249295094458539600051369652149736097698173111705667507998225942243787068202587311106004532092797364980968155586952560119884664431566260887619320990671596161070117693266593710660462665631724589752072756860846154106934228182529745340277571223200654969827874966519332883945470127247784289628772530638493088583359017341498017872946624848622368023126740453237214804556962571054664724885726863142292198906338850833759890040604586589161687987142835943777066567077170795160673805756892065360863080825535648770888862531753420330204708068531621609976812594494580032480286866338041070627251465246785354514487933934025995257768679735865513658332940694741286831657592170803247301509586550781035460300446878134024185596538112839552220043592183283032824748709271485665098166781107390176885339426335394936940259374381419640491718747744545366116037110806134785550525641480638010099924269603438066651966943315332028921108483865106223318705494735890076487534537905575928403245902811449947183270686733604612739042569183631411472173760766034496200974698264121926657998800523674401624345322480642178067938118904062246109760541389757367080888035290756467214526010005023995109368569441710108275431859350470335886324920379833244658999018699714553074031327777659937861123040083052686523669369610625964661150574942094349033122423297868285555900704652114545929896240182461126330770478590980306745382864077128909035069204939059199710591661273387412079030344129008471878785409396657460682489959802971478773015339511258246551328981047635362258070762980275671240529344772050006179624043465941525046901980172747054771147234937136390819106276077367701885815370920810128869709407960968551022913068813459488822396461440503433226977002324313984175111525527563122975214452530730011917325903489733382438954917241850415099384197525115841811749139474878513293754105537261790901475550447313032769810099325348578054755316892709882996157090357680743967196850211712702670274019135240938492502871721161662294174697651131688962674082659731363696763495666694455302472836717677723894824192048860401581142785300557396785495532101620474045923676793177184916115499189369796224243808672893546030622479726809635634758088650439727226703819789563847716442634169022214784949857944916499955948890916066947404298041967066208689258830550393689325267020477029655776695533104901324423080503825818842460402275029617152096829734854953630958062344543153236874093147718048516612517814357888277731637559045084931416526160207831137646415391803879200248526226530014440627623614726593470261452728353946523173714044871692169508863691111986539711052623498523834969187781406122319864078206831470297898056032056588377685786439630488730700620722939055893124517314099452199914131121217482513388159335509730976077550604767200631739078460829810080502732963338302849988574265246713686947611443615389060287511407369028028444025241169585528335836877203519903164477615351097397243485706322623297545926543167541631411618364997937043435628263471985697874526065011999531852873605749451807507018937200836688308114530543116196006043315389748639121219263614342070223306706851590401070439569195194391768966293687420860144332969452979951455720542704732839633781343542779041872940224503644962208102172279686954621738527391702022306115953912099439011682303512424604388784427401704094941242106304528181101182748430162130029652166856482222849115190019571858171317476322160920923262587864001646576919880234573993312771032708355541435970145808065443223173002726671746791438040322270483433573535059803536128066531258139274189935282629496359462544128895018601978041604894786326513403019971135307228141049392065442557914030866308823650759773057546150158172141064295323896569922156598004375368615308457269072012041723833461844768890328713195910497584699307316071079964002748319522469113706994727318701278939126351646026166859572480412592208159761326371819480592910987609856263755898586584546366909851515711642738235368897312195854469667413234707815365364019764295574370973757313740402455180464474625957602964410225313208018625670465213958469805773840186231343045527744074671740066066461608265629547840643896358806203467645524532169152751842382010805192277935866372677475198239290181469553995222543002422558962235778789207417985958601543890522971003353882241837122902651388796526179754958697670186664876841906771979016189065834497913139241043159859768288450199496504771206372599776164723102999103759667386219849962673215825426227510463999712611889451811413928118635248308658633867820046875500680620836050418117250441610866718982409305103696314867508594405200829303249107519484367885887185753295461259639042440257902214513929962612132098908220168978565060343819207076422231073018073029558337718025618935351737499948859538029329987914769954386211202938045897658377365321497643110249546594717696244266362151568467118786865996728627923910999837604251118462189835289744526960403445167111601371482521113407401887421210985601666868248726211344276925779367652572312459783232211051063423809000211074273126313946498347216240098142502946431791479120316097498718025113282191107735484833217574207469662028504310271906614838833476633301494550262151840046581614065572564478892671248959947468348557560300138971688772390902268243942594941882784180875276677777352676021390529369810892026766265451320222308942164145122587619393897385789972060007468850528882414726318338188239363856385960326715548340681301492722338671713587921981455993192511523121925590863148789878071823769877636122274639655505398641444250218800656353316687055057032160986804993055661702718002351685016737872000340308520328601331182993808754292455471090442502943922722142219619174128778341365502164929824813436614976604842950124562422441695970126453513850444426538524248531553286478486746165028471290884948136336579974424925706616102240577874575979953727503892525273175997453973689073510792457788130545153443078496180361960539107851591741363796710552093375067606002431660134616167022659579110287050895773326052123174318382911992856945503158468373495291216824672253362347746329899154547866448802986393239104282894761008701659831169954777687996412584056778602402502082619643300923429124828441047369738168874308099466481059411833809413342625646194212349592277730296853371513857889967178724243231864789919699277931333794429095373108331730198400885416904504162073536294033235863739173299757615388095138577967839200341173726176758268093235131940634415187825358919951992557554278689679003410021151473355210010316838595594747968686321947130235205598773322854102123633716272694416184779027014139266479912221860052450784094850494885913721408595051633078043328302872276024052409250793267612818560015961337863884475604590444031461720664964307630498172471637169514154414272862673921387415198954220631202991398682421754367283756826181744801616704800328448804866101719346256347353902071492090865849781543706344888003698881961857576556236725226840580395721232723262156730147369109991973293474866805299767173845786717827290241214794900091051586065560876570337343755289685799427645393294271910972472575222086862950647163906936760111395660439009005438811621665411682784942910908685948553789227357594062125261164120419604701492842655751303329300830167329090195936388536553934533919733122516671733050712642613748272692129799470383059776691769921935852116601991888193916691979668772782950067541050776767316325506487485740635714875806688582887255181593955837983162859671994443723548484011966119267190622654567143082383905569840397108293509781811059162323269230825752795590583105483500575379487411486657113396343881559997756098186905483217987161199856478649336558857694049123027340942913919649394098074315122595756355799861253375365777746532429866489761481060115835830125060279278175437556005160908004704524991377746275048143503688860862561882387115155363262456504528883328461711176646038874115954548041259440464708283447021477468988904951097185205024758421422202891123845667982858521774699854361594877651190531006193810717678845021372483596675892926624809314410907901640409472394876892350083658490599479862251583883561504809563880713720518101706091587053725599094128506649984707619687069563496272418915802390262907650134892965777655193811982876014776943705540182487175325969438794803137932601855186944714880783060116863503744230405824553673489083767583293253699435648078168979500869070358212008533373302296778517214723897588887922878954175050455540367880320259572356890888983646105679095137518231995824403474309856490026794048593292565600477392611719535396812665036257908395988180541029557807167661056717795128190109500960568607830258672312935348733762135845677354299054485928312602779788298069632543998631488165552567146970521763765299861563372633591559409953844260538514979921897547604931925636061017395151091046484152148312046830361701931893035732441417016253944560726572205472034148118557269456266960766082739665889424152884606766110285937821331492023854822579394420070948636470299925316593315951402666239580192872896557032666692150478555834088589974919265492944035765348485154583045367660100421334152198165611428526152008784992480170019481110384454974058755031227374929802226250256038565011166979712013913225772260249993980244590494165337665508004013613697938994068074002916474656427637710022233611958145343333729826862318873283595732148636299736640583489502302137183333858352844308310409617596161916042078333694059467732856717438750377100276299923856180659785201910636898507471338776899561687636435157136635387030398186612074766043949075126912926219825415406800395397237290594066524953738915332926130806613903863055451015180738976751976225976651883164768432575449887272174395524542417783875490140941943483599759367877094372667010058015318170495947412801710477078616580586464395261656489338570737274888153995821513085487585435385164497466440368149790097187061588845849359120772052290033773250076707772676472312613499258479054449037874796449216096636513345201010772415593200367935762768147608289862979707599684924092060932054883820155650401376970740285804304117327077517744392221331637996857541859797986900373790298841114612983647457093930334658821258310162211703296836951743683632638416339061109194126940329477480021689778150136589512670833305128700819029954517240635133922343530957591671671183514205823408649449242989090441509192712244668185544866599950154621945926049185939528183189129381802068675326965843448340590697090244260803407786315242830983452000675135095607036389301997347864102093640248737199594465489618233710312204913234940679680567827017654218251256794405307475729984018794450479727612533654943061362245411612385888021583861976643690058255755077962079988810378394694342479170074774559500414841409741398680580884664770908918396304484520822392287998545541409371779466772594069270667870073984535876313763046949369635061539707035289125829624363544154411936314695534443698461392437541599676814786432766957499624218816183086939964913191625152654574104451730165009346481096679770552070639277772898768320334080705883808883570829940436010641399383423373594287125885857287966952954297462183268641616374749320220984927152089438152078600909978178990218378244902220654745428520642103602446357253227489356803761500672283731476798318865441335088387262833653244855267794959314702530186780748951061641907934243577607507814354113657219283012886058234136288486806257293520945529535351667070593700810386176465296858169427825534201189190277271778130403156025167676524070193146433027314057581108725479871157103793334390442696482325710418521473930323911342949036583555016924745608393936186598511131392270082721242553628992648063095286767148990670534349783283621749423221356833853243728761796761590289787074176368739868340343382297656902095944792654693202152597591869704938129302708627258943567708319670809599103359587815841699562515812930836032149749804536047502217406509329135524499573087748380213648722691632061849443414725870912763291505146558235279907425660670903339091760496234112987058815266517465138644225141908860657492620846132130078076343304965157197447428263839870765529733211865936983435009395686986761550592262470980774909586249335479274856045764622406669744307457549915785144646706054521648696663048406964440195143550369311842601246323956216187957254867863274721116188978360037070432714343930658586363174707996476804992294513931598347460327794954751311129094414823289514981169926139330211839630468018462882533597789783315816584272985798339370889553186522935875263061229754265506939846064758466549387660311930601311884195526097871500961888088473166208918348851723315052945160913126143085234546152551755021270498923815569984561795583847131098444087240660775361474151672668112232259703812258170097630051202309979925221153810884586449964358304272827325479145576400215823845073026052608507592881274695596239264968505777944743641827961858978314816015077273496564710505241211255492366753184696229499175062680897411540811239868628847998755399518989133309366825426817965528920669574616204540510525702688261388999262807210905721473602980518978987473485350937945461917127426389206017978657435682643632785233970122285824910959788665040367437890528300699979921563355337091347318980270423050485878522170691179096402947983775088451835807701952890048262128747558767663709909395893274944246057011082030452430490596660361365092284243830076325765902663151004949398424619758493488563372743689925060919877792066565908910612367866225022652763443342482509955756856635698598177018979628431266902237493675840648732750275980000135442812008818510784185135607789988292029412677647543673726595169764770210616045805427744210779371753965080312665351529253069297490787005929711469931458047732518652467025616109030850619720293475720583826984434872114015843928124882443025995181531809743620962331894383362232813031616450618182687640492618230990379574807317578939242897806211932389277520866672736693162308357910023747257019668560612378822704015706484339916106708291205717739729465641197225614285352477120814215029573117364802716261164796513887031224580606954292254699345629003273482513891731518543525638442367415322075703417672105842077613140407444479671333420752718023770252968792763473657463797483855391119767944093001823836940966612380770656940323689985004265664409410252798519577402767480173089798559748953407012216506427587348842133588232800437212209303945625307625893638071702707637330608872210866149105140027997467096361693120201898418558352584169410302587612457007639523109590040692183939663156880054389004268667912046181579965859068138024768297776028385734982247067007877382354543098577308967905432758662251136945371016301091470548357058262937624028176685108537164211711348140678755427901587072744104849369478982970859880908433675957322824146352922413235161249476402759451939536060291921733459056947932837591260978307635997379341191601942781866357620866507393637223991401649929020168116934506622587488272884021706208522157333937131549215968343961185744712373621732626024308329053941405983684388443923936200776937110010671829487271032982023042598716722178095057587689815929452738754722314566369827438687477551582761575910505758492882887296505167957581998275086803706849452809765345432930815974891004512556502493944652076531727457287282753017733818443708128740247910087663615557234879887743670585368974118398992553378071925066479427415077936728796303557405789831794196845324668857938121716711181804328656791145331507899169071490689813286951162926167058518539036280859143266276742344540779386336494473947912223759948575421807126812632185859179312981853008199162601394846042585528052338925225912663836600030326181553111352599201462256171493343744307341223793380346161412190421589214235260176274990879037443766702449719961822086691827562004332875802133588188667524594418223092209091946473712725811612561972314630647856744460867141355709128966187112926351243509814634350431474844459397942976119320353918675613571108605699937190553475095374838553240118381413309091780985906832193699447330137641592582104304576379110722289185958384946232583828163668200748562910191891119437112540370595914703055272088734076358455745960327697202620865149651709011872568623639120530125749232756665924628310315361404459839796447308763895171546640096875407923597045109765003911682336837785528448697966693899974689953876318546765294883346274419296051233914508907864269940002896486148268906210710477086218039560837419738543523215753306149975195235181394297946439777129964436313448615974747944217640623146700506497186083905254918817153214039763253764640233900964030766552607333035772722581080880592691334938194477605963542861422580518427864793924046817593508137842693201436690824998434015062301720819929359375359799890550082808344602665477220146474186998861944797002151774279895664306871391827326265267923542774976630981042617690767600651086521409006048483206927901738224182938930980013571151345312492441323692781816380164608027656414652905054131331808721313625899136664865555968618059568236882936362460742328820344539813171694265052267266190272509670527532404635808100195873387120296635854605260529678802374224106416760599359352837314093425772037212661747593577491789889048283175730040507655230756023372111003140883430094550562935151877586925807005535877248505152573437954888035228324148510783961639770687190420619716952852228352660982179310805484011868236272644104820205528522577620417071382415233354046628174327656354385965788969661187521947582312633250635142979340816715095007740601564993450692104998133750536134003389103967713871535033300642901026536121611626187362070940200876223029792600863693750796518166018528871681337920233263430972632404649149363686660435244823606080650035504465765094344435745834228473948371871059584462085293492283102969275641794491495561501415894046201200947245231306011388670224280008924693828135618282906941186016970682488254866343790208552247254537907365404866136593053616118026883436749145872325436291787049797565038353705574997764645971333200397994600378159314189166484622579139233592359745406968352878761592963409741129308156246583145376650511266759892919416678299602779596653276346218071726669879503140258017435902851285843557507664013814187677886212658316688065037973704283280606070289464608458334379271746676337158226319461541165666894306357994543890913551359156801842130804805781763882314873729405222382028864751472958750556193089544163049074898211936558837335776264397688806106603040840968435694414600081424251024529086736057151445952617596190350894170297073355851294545626469443547493507091955467922841983580969097783862913293907025188685394587147130517548951468539133297010161297735767345238609640792685207719058313647862884638136126452333107272857459727239216975880045662960651195574651423065874093420162158860513105611568491090013141864401777483344572982718971546372769809600158225422477594807614328125585337223101404435768106732315694277150432385961815066424303498181025317713344080253238344682722806031840915216855278746194852953898203935714777844050794441138870002574687798015990864462435878187131165117398375754122547687439976021417522551366377124897645121330127074973787336515550821730911247818568648019134522047024446205433122962053106051543561422125030262706680346565663421669391617770491865713971693919221962049500300145170319424341794841116023956066493062831164991957836352309105562398596042063640515474619160638993039328836755741266202012436277032615891031912951217002837218511432034639319124185227899327429583625110154313467930150567928179381650928058152198828815352446160573995907693618296647116276722280604779804077609071865932236480910090095578000661245732558371565847935775532974470590874443560122906822509482225543257988239919617566432871009447925591762938274282883164274768008327975201135266071202367710342744624131968641023613891828907005292140157447215838441910574625662170122893160925714137374964408705727759660296919989349187256480082698023911048130413755236985674631477940476689900832629285460657548618936501647823483348087993375053546561511442637297998620313617888451800844482244515996572649390968404715318500604659604034712550444175338516104969273485161406916309515362264121056808084906348237531905387002694734827699230941137436887925147332576412885252125518907880090509883508847601137352095931167016890233501028881096596114624067919557326958739284693347769943887532693807684624230362672596549213029791275220024085718143597931612835958921419976623982205521068798438173961164675841215765199946656585408170091620105917099754258732843015946714933261639841806543835994734273040319585493409798966365947241983967613454176870699404356916756144934964061048355901893352309272119221755882176101306515831528933942779657564040108659594312125220234301315449082679988984226620295615575676240813140074965062318924741109211435629677536751322703145733657534670055886338570987641621206367899982382039928223858288332405222192657206502767133139561761459008275931558567681390205061091977638660027222665235223572434705609171146881816310932898802978613325117161108638944091710126162144533513980550491522449890855136360567030160318459732289440132124577747432531091747380460404638099771103763536269703390327831242202287600327845234702386691204237018887405338419123246868560472060639155583661369486333063917363506152984339619959892125443313856120309341076471873672899812616453698488401762240746887935503675655947794302774719045941893564124794745861900004202113688219307987327116782495032747205924157157678638967482064373746834660017829556446919849060357888280831400273556188615607063114372572258005387834896033937106291656931479494043283109861552699813527446221912499302157566721931332337667708962565766129663975469782715441273382796029732601021731780117196141259066098977847815650091809503136629047242447506654151803369706935914351287200317103417243527283911694090217985375754152012899578979033692923148631231223277331165940721407569104542793036799318467203683833854492723133456507785962388661690226947753253968624074433605446245091183140532676399103811911866814677410937162673282034255881306917499053707902108969702695494353670062996757284582772701704344633895252734186225548755950894866422600505100786732101147540149795359390778101416953752051387761952413225997934176579594952546339705084253276136851331756534741685444470574274522237205353763240667924363052306960140441828776566063307907407449912868896668257394611785441632632361778792357493109167806863264569669246407440074310422974134557577684175862428748794185444513427428383104541576934564796413198251735652953586108717985190128397630687579803480336699996301174007208029367377129242514693069155513920959238578958437371299430185464936746648980145045871265530478675943106605295961992970659081103489093700184074866189591036056100342539624355215223012877312455381798711665964296821412934461519877198848988197585259506005424791405294194544605122934082859648455302907947167305249631457777409704614572109843616338911587115616348350658694033333864768556477479508790197140762097917219436199827664991035767975835819222751084438115996038179551827245343663668662041580742645017947926933096748120714774004030674692721841617491894770068141343798108335301408816183320627434759851080351547923121757442938546711959434744658487648138428063698461519108477055669283445748347474060420396381057821483724433407573759293046760527085146792895535060638284542780272530018242721907653161135949321674001056208142669538116297463487704815270043896935007316681720999010102773381774603244502074276600842219185938630476160580535386351444351524440058580371514387915421227980595524965051332139380405402814720683251165949213499359288314304599101810620656585731435713664520464190066997425373500428389334423228815594773711449803116502183401079811940262601948153723118167766782897537739033019149982035467295596575412285490459487658984455906039716709196860389292007869819572322851610180259347451123376071448969631824256969294234274892349011935309951743319029365660044910086946386796830880130796089379656793863560058997244548158054109052244443054653897040442141275396024735878688132160934132461700370311567471579215023878628786461423333607800092142226292722728441384362374917126147332212006934717886275125839759473102105388814295370613056864223294365189295117447241799140819242395750280946880321737243046233739207476834489727013670420245877392852947268769419902009694057253863528555624440417418749925481178284031193716550432575587660501291812155026525218941388681426921883377622592900700636617037608565678225478548032958816379882285655060050939814194324667572644913017768334300118947953351213854122253509300215182506191188204147162350901615737348105175623747914576349835498689172099561909264250273034528968150800230398206475907472580299740574995313478551667021747023539968064336610199884720428005319746214712263643727564885061326152465391033623508602707090900176621792302661630413222366625956320507307925133471499245819977910558247932475954595861127800465229641267961767312506621560086006870499989812903267185799619868806581640977769190356745211692618683922246461491870135050827647647717588137823251742840486456818742434422220509502719161295979532716076048943309015748482076183126606974543309243938585006512828596214113833597065839703029194174736245159597928951511381055476902043825741375187777225524304625841747767885990990216717470670632763765798088224845043194452296806528375944593140833807848036180701058851422128841536200722532469403889369398864636651763711454948481906600852871922796973740778330333481806267387867944906027435023859851623496130865846400783070330141532792944011636560866785980656965293241097241513613532299443952128622492179166789195974172901202638503971933608894848496516494480227298012382654661364538156153393118982394676572818228871833952340110282693375579900481159974995886615951133441179541452880249336599695193299938656002738600377815081884608879015605377870070266274864363381149815820612296396777437693261855945445774103215508757957495394087977693506816816791649955274745500862579077549845973490976627649903151323194291285292203600459789554592453239736202803423735024040892251304407155807519567250692427778131504670596794636445588366021538139694737685730173375940134333356328614196760649045126402629670887519448712635450103920092065031283512144172197722409549222911374840106048715900519851930734018383355104064002978491927104315474331356693808078455094164758326625746093389979577511633422988858053227769505645990679765084210574021465984334319170261575769277681546370937392717579308954570685843553208710012158182628594407838114277324559791479807431713795379043691131493662828264928928359864535558443211591509240230431232125316627378154247797030769522237065860506659249365339768698363093309695989953382900688698258658197431752578120772146801956119651225525648670630461026756440399467247823430950181524314034705701125238881330187071714661297899270025001518996187667708144902123492921219599692307073661555752344433621729452424407144704925969232266910537749648453417284794070894305907625361136169379194634570844412128599910281193399392425579623353088129029044628215702463375809344070023323106521956587441766205080937855499115998750163657507444065056745069810765389564582098736043534265062170442190781657088185447892275984155263667021681009400785972017785383263489241414528575019803276133083008411154170976541750335621812783425426254029900256984093908682278576616590040051394572722227545063208451283856374298408409669902593459171011635160271780683633605585987647658490278605026162162681758372653731105893220843147354282481004147151541007904031811939101477493568667086501285491392570599584078695456433309554564907621409797191628466257784264475999911805399488756306405348715848326548388387198035027713298792624907670055949704997371701745380385291510947540787793930450922464121582478210907605837577138768126091427175188720587164497373073552643984052350148722791146784910099527133513887621698534866816296451386871559777017722119376930400877229864180563102077309348827054940511208932485697485176858240582854345960737677003203459014741550773147048238362603539098666920183954548073863175619749694990088573049384116407189093165600478551374214170347740151204024501878594743263704528524240019139440239302694256746996815018958081829707548932369528468618627027915963144631672348063755437212581762463545994657474837073921248349045822730332861217086676899961060517709842777792807025747070598903078454310164436387008580198174268325644743932534586589707112338380486534847703887124523878113451312019760034770323509966840131347813927159866812158320731266480883280164861902504495951574863082990557888837518077058989196724689089229096639858137387168955750903778267453161554151951387223603114130919290186385591442717235517607754989674129749014694903854176967726780609932811172741755404166232036724750629553307980958664667307893415419073922014880634157255961803243099681795555670013681265096071625296416637151436209244353764414744540533976742671961290428432652167835642579410526991945628503723748817671500402595254319789545007618891063412819684466610307551488838258763777828174688809495949612313132439718534162871398086393580039364218597650037486738190010225252904949845902820192962738280576314818799397939320438591507392097118271717891639421703800067009815176143752298408100622521713211138734020742398145005566953867476717561983218873648107172503413430087520019987085607706438702522146049011669729373617565256012539684141780266965045491004032211362927242103663732694218667657050294973704602793060299468547669966488719975445730652128014486885626924519504128019861306407162294512909464427040670319539666707013746681694393560209288026494051684438550302368513441656285086135040365543901754274583859014175248583312959420992961104563991272242179606551061305586065391052218114687640986995915472439684695510293844569411882615520193942159030089612970324853524635427825949161294641026139934741343423986900438818809512393583519806803879665586918386115161301503617093358107008593682401780318442616732031624927426382661096049574061212429464149003491857915190147038626582131434698869066407526433638397925488066142482771022938617211758855933643667864798686751911845990561468266068190942221632370142105476340549357407074635500205232892870021663363213550539672637272402717559074436076967735903584470311422259652224815659373944750352434923892594297771853710971475150996772528164826450839202324259419477802314280102277003582991892727250946261489229561946670865813096850503590959053828154377652106009050170448876088759143643631920552898864818396457123286779782113466826170050333800637479618948575061812413687591229449536681401345082659140359391518843149862536435339240603719233422991393656849801681152997480827432265066786999597547185889189029582514780441854028291965508803856673433506620836634519579757454719927998536940855757965386865745464902852575167416214023709135397726681748871236068053825377272300217199570407771878510782270868093302116309324888099690313558420529272257726598119572017755672760916139285837788578921741010047432406576972792581561549780849080568637091496970834714730348258655071188506250782411038055604195438165044417359238122732806066348091180066864274354362657294195576297266405050524970182431319891063648490956115240187009103578419396482983889375808892946225023575129500786243406680882992352055626515139068352508237986926677699029398427153132718633839343534991623320513063726486781535241994781485160130925821972275564929434752455647718412313922458098961861055079772119822029952602359420068703803182174163330313497959145904065790992496625535531782449357473248255535552413440666528597432399371106907572407674892612806608781798399746927474674794347642925879269736053084025677381084005328685934546106167655077175686498010658850813000743543152744794403920205682166308275589625580390643030145095945020741990492389675418692484416803377039003346932863386870348087813521622286822356129462306820894715786110773886166102521299045751970248984838938264906698532739390293795128540898492991801534163437108437020178788659847886411029853506987539166189678757173179880348807223547867087185858234362084100804956805418757689552292233200928216530675453809863146911076488492450098625418009798920100821071582009691134991209096539807553659450641804854192002418287752752226623794158419346030699859207840696190149716360929336975601746363366358066300457145356674359748799200274530569679429453830071091148046869290051019501102372491703881481473543888016165518107913757642026463616573678170175959675975005328569933620927394047738412729606552607414772416198300001697899581551768591551833293976864808678353863742147428071454588664022766740114213098188574459891765642457191772473589882838535200310751302004629063903119658520270287752105378415334283405039295779249928189737322214287261416918409938224215197282145687308493308249633897020765706754835553610332366314363303045581782061066319479324810903051433042520584230624353192481271393889654875289499842874326757685603307168862215597706789309434101934106004860213707402183432802321581606614515173960552369852352124037999754702047285316107641030549056336515405829236885999900856632400581062272109961507985682951648976026518277769737376105524341659329991071798242279929700283874530277656898649983741314847166648026400735500692392268138998076630588167269203639537699717381416871933472007437963201944269207948160258782549019540046558392277605089282901751903236873935033942716022188461452522491373041630341782537769369985169465461547562986075817605661814921230913182226697008364972138249382819848577149430323256014730836966826560079113307117355275149066993853038029931361449626209712500859351536393269786535501928524698169976682950103840293739080097211133234488244312408301228612953279180304479746458657448481871608710382960828120578709917837061865900474206581050329829109759150262409539554921485781651350007601274831351425188042698098981970769855098126209204170761548490916980831193708188553908869335071116740959195940314199026635245621952526719614134427363818944944438048104674585693503770611755407074680665781426688713617645094247520155359614656272229013586762198911684637039906490836967754443562733315755148172323798316887195166877038968543911939532423462107605201588730473030667084496344164986775167172956143424443724895562026375511367047052566368698093427145647176628640002185794546841348844940877525185555866690906395147592183705242193121391175012821056871944567578101657205516818535111090076635258808126999604222212145601205443748186966711627938942769037467512007169320457968554373059338226113135546269689826333194092595912637308028392199429592765712287587279642656910434395065700380592360841350453053515311105828380568596554076059344049441740706392141252561127169299046442043401636340898520395123468127466123707520969223943779843340006691044580162017281459922739658731996928669367058928114583470483909043774054382065927817047925714160476498385621323763678701866718695212448134152410806661814813349342815045816438686953748102340417076524066722388970978719694989172762216082545772252810632533421151033285413028543359663660271778459804543730450985017377489337642925165452781688038500905856719798952699653286181031149643914445614379970777419153939288603242203662327710826257798239076783929787849157948890914419857146006615857609955153672793164254506414970542903066023592569632028966881550624890454098979512047299929007069793460847424588461873080549418176656650584605648241967628032307083433669081919447262771577854764100374731635047668965574635883548897956573860921309679104239069861163486002393545728694789267884442590875113435781126589718140166540056213388883713679439473067756197309611162853842144351197746610936868489828032956043757885223814745877866890784488007750103243734573000796479502647983927526394991413306983641764118822108627649612764464769854584018632678109968095084050506619396273070145594517248979102878285494045486051866304152115498139531804663526271511707209862362870237127466977643839733028994594091334096254652735140182401011033262798492386319129059095639796633581081825867237687181421574067147228070734527646361593300707137498403786687284101184230355054743391247092125241268796067771174888092717380956654228461947978748285945016970870249953952186343871621532943301785260481014977409763353499765667091998079688946439092584858081752841209811179704938981302921117579798274052405019570401040187162439565969640471106821236119236837360542177092454410434989433809107976376270892291329091182159580540031992546857226223003486224045098404935596003054641178233019694031076422973564415961933850008167070296962094467084451593513938938401354753577525662698978186692051119091856277991525965890778292056194983749913392596366126338511776018840834155425085798786365770587196982350739621395499751154473045947848176708340939061025318423463379338708080271763903500814547172612484776839780071686030633623236747062296841486390124006490497416329658883258065175881871034253476394769969945583814383789250859196349189668029513115826385659755482114596183085786515083571192574579995777601760237254578538841614846901971699133062351649765718707663561792260511995135855751958894820975273748051196996288060791778833538297903206910492839335194683824917067686184827454817068805648517794862879045748761059266920793669060736084159487394026796655759444814875131375425535154190957511591819508057284749460230819432082451515240314185663317754555411601476274206758753956726661080570232400493377935795910409196564838455110818143565793718405184569681711770870218531056388981142031966665212149953415339081347362111963878453314478209328974167280387537239784544835957547700728317774366585459586772799920734824440650899469542170496128516391052997110087574948377127310997057423531505865090479091990791067494191927470231403119099427931331147933908991639569908220116623297790899878391805644044951402519829819648073323387314374837094827836841067761858210152406742861339568367159699394233453238429415393610608514651820477749731262751168479407710227684647406521144229234838039676454871074779121629052600641051805596940074079265642855972777279969491169973831997991764838439114223437432222230070598536165848401127611586958477492589570925435518771988203336469151013634850925148994919862285079372052668687595801790540330167924971665525655275717671105012238314973475638004117428030167105838633080095549753657849251993566189568507563635740203939134663321169136603176887104558278046192304473018248856281399524098766191867138755037403822393373046029489601174616142676399572719003524207098742812089295491686545740059962655390547721288811534914020684957735735728242308894797705696052315852089754498409430579540015950174075257127331610845157755048652867037303065592658509203252502252850248391144040150717821135402036325844767301317893639986238321828260343065926771379114466365662760469282239102087165323416723497904759962058969681337151007342527047156467790314037541424507082329582616272317903179926828197036528894678941570714154950570165379493814302043766558206763177523475412933304291760513017072217597324801757076035945314721122339977810095204511432395186193481323313890789714378130660998410242062975188388702967391658078321050542998491082330523274612015149455101671763801881818806080724596488910727834624066971377745091169374521510607891142357038661275262667285238046191371035630561507746804996170434241589159071654492982085020108498545781340284691934219671021349598872279321298663629885458042032249424698036094512527736001367137819558123373135195509298008188876638653965153474380950423189345739329872860399322366335501288839918247200139757789632574285137808909133804390525784864603565287201924029066543499440610900763491207422981891551476889033961231064104735330001099179980423407039360649396516176681142080271607537276135965690989152557052471355941812637587786591194924281209424824597800704354100324066279657945916348196638826285167239820067140547196125119486187509481374207234436402927266626817180995233480687611247271442451558533281437565071975402246513862206466929998891932826243709354991418134055608001224426749531771607073759789540835215208425721099921921334744616641649262916175324658873741736737575887055354538537883968506781811176813814434288893958411546868418351770850858661234490943276227546050068026635216343780017452172347724980122319599404642936718016845862717340417194116183711160549770640206665990577307110408273631912128141819833519194808918373382588540013474869981598787178111612050260442947153479491346250670724625952620549229501285037691549138652293624098766973424893988131950060832656869186558663123218594826056643772768511323882818020910558614540586348631727964218501030945948072243346624178237545494640361322015424312369268647800391418677586283844859031320958669462669561233174434267939130147407966324491824854976955327041442429885936127804265100242114425853111440818354855694046788854151458388741843402860469364008376049658373398472190867812423160833988436272700978933000349452414841321403954551466668781232729578939608304602859656817665947922559398847748765503936045752872053991592907655211992143105067932875916112548249977306331130213900044309589217656041834785020702372079993978049329256822984830355143212605113439225144254793434978387296477831703895589173280223990931335756595132339170057287397224836691995926730014332833206218961233434298647885065781168827298420784792286784728036516032400207321859222233340974912310650578276995393960374883365067867533955328961066833615028818139403786283880713353499188990885298278564115031562506356747074006066098716103404546025107011943192026033947155240675057103906660037551165144017065682601272164125084681347351356548352775379771857232543873468520599537694003531840613909836126131797772482532782684646683208955497255125981735118768274178053888664194284483125633281164653342655941304796722253204164645236115316357286108595451037746584386304160719881922202683816180580875852301519205623349183056848371608395671187490791825353952828507210178302617512784307056583888148833469134433240647584303431613361069921240366569881772201986820837116815257757245190125495262376569282858014003740872578311492095922016534294828632246174645011019460634382615776372290994608032125008681025731984432802061428149071947066599800826685379356622977243050401937062523426417218840507786326160265909467396064036036578749697462948886774260031149323377587563481193188852922596481389522798110965035130162580919687211278219171274840687593058708219255879649915498941284987818813999460858490119827788150474782976519314694803563659850366739189061374833055881810683630131124582201077571261480302227960705070017166560988675050902533109985887575877549097362421166766895055273029737376501746015489372215243526218506561558529890083065769623758085597945789523169534730866070657480763348480022351398435102021675561527106272452672433315474084176686699782814471382743737360798847887433062826104718949936215267753196320299966747824247324283539209726264741869209608444968950531522724393248070992697344073673217801711819049987444338577360390472532535888227607980974394745269515775912368512020609920948492588212569195031136932995651773995307688357620484312568972143902468511489155696558559692841973000159265313869448094566858743821181103207584420431718093825654962676871088795356081671184671254773448439981128206601853112927585450753992584544258734316979044375457123404948113417745461620411704471603430549342018921831709306176197295045199026862544199154684162254199103630676878880645832831805688018996160149183193241442142536518883607900549682025808016856464975507440519370494125386629310936922806835886638654539190405238986830430266934517231298685971339747697334230952661802266659224026323068598372942585134524780507561011400997040746339256777012935699231566231560427294406217909032223127061350380385672883775047224948676070408501347095436339446162485419393684777385115700266773649284037170188564364474762452240130250772624033286130765650808403299497529154145086514927867221660747575376098615047181251058731955874568660049880918645989027628864792137705708605511718869989874017312873196188488068562764669159554297111527257780396757977435712816860562376694570400367881431032122066225668306659406251788719655359325991708985411817745766975519155200801797119071436549703818520071529860926034365973809362939568739196171869367597563426472385370752615209318483797897559206683760327660616329097827578323691951346845097389268533795857938805727391923712323174544534323043886963235511098530086780527783744196771838073615063756047018090344136818823083303393167421521941888911509294867506838073243686879780205144738415085534936783967277290202470523763264113112355956472378683011494902258187544775177547310082538666010071656560976801146427180170586795735219248042038499332367659166647496193000089321481592835367486906187283347916888178135013058068825218605433258036657934140361472396787316572823462742018483442627779499478948645546566417795839455848116776851944344653558664412372277432051309570670936711373830135057363437504803115755773946690709499506880363834665375090695391219696668674996891763482630064271202514511199729558457578811027132426136949778003545231890377961537263647603951223850087463152909888465106943495649160921546444539851683483404102428758774419503200058674904490863577817522624426426207450805200819063326066994680427926012747577360646679047325565916048142921415408431632846350539431008806432610471188009591288211583964343685349615927774249038816872174829946174679719174856021435216219023392018451143377379979204131524754185436111910660762648752827940724530693493753169916924868844550456038270000043688411935587320149379208059373401356420059032251569379530102555083951660939403076160972709671187067625089541798908499325084392129305960160897620147545507607657573112870314369700010585099698548808473219591805280765942711966056665694655763014853106271213798581399586901834451738198907024916795765736813946761813003829756484658903539296981739886413667223751680608493050283634610542395930022063459403502715943549158917948115637071307502590416184835205912926385894152735293676897560566504526113683213531610269012146503672265820536746921680305194956907787367098801345232147736053312956688863116683171001466810455284735087989824329753311416255337790175388846373309287288448919908907279881957810470716690775356647454223771244407636659174021367287508432100405614995328731922926369686927592851131775738417538073658802623962222527647045480118044751011490720410124416747928482476350644531746641574320297230192421846073648220493282203410465305056128242000467972150560719560356023899117819947775962702736575940605863432192356445947058376238872776367214999542034245188983634645093813182032883835563296014829302031734877051940809747467645448480095386059155381862955140304914071695887495017394366248424963452829901592528963013640436111653308990110132990802746517442248402493447399314003275266103415500907875363629011535771660378241746377781451104703401796741668378580727008482336157411137350082176899153231416939432060317796791817300343840271202816453668666232831815394406523664998814111039729279909901237042225316422353260339179790790217910612713290465470394616641324757690690103840616413887554012140582015500331410222930348895938086447716051281168632743789685114736042464548201454830577789809872137371164031710815606919017497098100577173034261416390417350836410489991662818137637803778661050267362486201522128127875185762772974563018908194806275992746205309477814074225714927445538522139023353733390622702703740229755482253486845192131574395342875127923213616798286412181543993533466044863329521705071193732147747860805697804172768637989038523488621858150761541301456447625103829582783076765407202276428251467432647936799131760567258686612789268363090917209865098901058483411382380389158252835214185932484889579482670956067527445035613757861261608291319193988704914566678968336397054992647147318294243826186610426085400519210682710365758561788143032765284753213810153623787841505086419675259992461907832518557495378338635168703870229901525305376911244355163649535248292500825108551612511715162725566829733114493733619195870817365029008708696629560542799873963491521695092362178887920992621849807951625624090573017753179647616423633941441327881200188254551867617979429908788151599382348224077217509385440814879734845590368585442948880382801909533457875770355588909374379865124916591123216273515777320073067085231099616540505948005518463166315958327973240580388904395912094633709781324879981640646699331364647332851193662983570621328245651855568699384665701648610843630768872560833381556601420252763220921719673979195191142722489483252517651492904742032912678676687442850951698498425722881634452443676931036450563183080213041621125686703928703706126412843270629475764230756968310787415884518662760986821079907160736474748801208737351365024321030985032878288404703189735354632391440052282605239413992193470584852442927758035013380560692250846909369465253480455865487911147198162121352568445525462114986633791428994692955724545263698840378288466890386069868286046723435649892355895257979553982153138213972094602383063638989299807627727944755324023041746056415609952301239079158437071105614624857276597781612169218680940840041268027002424628683588107530717617803632644131057973564787492330595443352493134923266137017686371107312140633092559885187384287439015444211745347983262735829408497547765261812089628977619731649114438142724277838710112581026452821018511856140924365500711597596453077402497799841791583909018279549269600494172423132232559096459441608022743088099864231875668064060433917024371424251671732619209412173117651346970814484254785775757976499816028277040575741987021507478364630615240489770076327105031236938825435818298843306172531641078391579307971675465926910824782150601786402634442598807211803190976033602459038964488001669500873446662979855002311737758733983438889678073846543817207549630160303653909787557897984580924745115562681525972988105711404733350176280647931334297916355078623248956526985496085399333512247756118195349044103716922252217351485530352195482701885420999776573067763068826935871628352309681507872484144959865611427300712720557583586225149596606093584807209027760008578223719800945860563587409568492307187301498024693298598887376044653341665997922083650352600609302844797656071753547443592517101212329453484991307420516367136324328122302679542142806076639444412627106773637020546144771261011213487470442946817877050832014478876490996269495357100740919176897827902251321732145332665062864395479006802560020988001361563408924015941711253834128536211617302800808882035047656269326572830195044392006658645273284814553651781498780719977928182599986009508317338110950335189126362964107640481185236765752130444069922228691438614912987123768290132467411951041791337287150086490990304188670695835188920825464146867299817804539642046766518093763871755891845155884076328017647191686499094907078592019516300092477938917149636221175620427579756707969960591872268200770408209832770983654166999336931818755820061522501662417681606949250507545041430213818014807279785187359413924760338526285220356014622974381858620467479086185090775435528536239700192801413271544728833370395954529300627883529165507744760924858814858972911819524513476993322314936167789495920947207302205448248904499114031835565972477186865124944555659168160649357619177254877314939234948113948657865058262221990400410930348953938895479327033455983417544002164137578686399573313277180862176210688405719596081788118901277899111023502476246801989447166049553953772434684337957454343156411874778865296717887254117273124128215166994669856939552418879594463377435444888180972328957586086773741028285274427772770319660140183931459762223949973499014490642724315198310408896242059800801027826341798469472416241255282039035295850086905269337165942398848426133238651904216846196467993437023552430602321831460512840805796656878243388780401934770027510684438015937901191821557683267622265056167777580687829865795263929107814833155972665933057479346060185076603409130694668848183857031440933202256109768244800338685276481930144611701779906230538392829945550658692673311611748913478937178885431522867119404549608843488913137629654654995863618133570252873214442368067390718362446712282113622239737737881412126293052377718863549799913236014594027187352311465893773688558721890126567868164488732644125275099653750665437669437005742510189391801699001410259858757917676511508830083839472802350637342583366868222154826739053881978318760390732119601412080729569488381017180585675580951158924006911985186436979706019292112208217424005598885325597522498642030034015492734098031750467290112066503211289704927476525388912727370500376014720085015139499068562959052698110775913440643438420094708253318920729064262240098986425783095914749289866062584935897382076760446367948505358313880554913948398673487627916514098509407056747332098901867930975227441919313011031143017080169056537525337358634665867518817552278654582931802357436088384832718952207436915265733581097804509049128430917342223237171353543890441041361676618637008034533518068258172226861709813564237895492179549048540859720847219803589552131022292796640856609647836063308168592000595393497722565397799445011356222689248906708225019352870126980001170225931085058788982023108363011119459784169264327934260921468098924080946392326754450210200352346534294764289153232671708174320614014476746480337638970822402331181915743395106990008073628318948368953632451426739572055360042364660270814139199312433782638454965292732982303208064658673339646473363128237109367067272108466287821028838415879546499389654882969422557031855597863001578166895956594114796234474619254599153299941857140197509150574061816290725041839759467202340103820518338841211036145714312483103868532307705898270597059388105311772438517721616328457621695734182361542687282035214401254379041387369475720710369667388348070074794649428485147855126302911501440323006217319972537172320854865009515288826704052103868040496001518776247016172218892938702423142219137349735442771518593849271472308541185334381217245616743418033710979868260410934738719756997213921145274593698268165613996614997621287793809361610312755826299449994282096780596120581417364653077823174266650727238595722920186292262090341153430954394169314869022715756582488399581346923729246531377187619611342248745675061656624988542639595830803956682312385000077714053067081846073011857723548800646425343512885475012556913464287153610631255750882595679404249752332782296012848452671369626061840500631363658585635963652599052005462820367718499341696582120740845588350606998315424278317571555846751353626701857605129351926679291657808625966029261181341122703560083211941395655519726264476515080884175246197581301898618309169654744408836502793717831704264948657338811695436485614403785678194111808205352892684146754559962970088207395283124041837331600160671204283383461359494458726839580754118061339620289318369885180014676396668966618194043357964298978450672822504964256143935503883756877492704488036851964326221064626617833352996187487139990107762305554990738690858406462094681292873333178374243511867993225374776330697736779498230199882854893957158803013994005277282408288053877362012325396930024255702870416577376981338309700781001268504941362561021613678643908038129095534485600938074785757897611251472479327725414169289652755718663064688972643851265571733897672274272548688401906735623316083121733269020712225011453880027080990697690082998481884383377901291560412903700667550621494493451403959747582284960078178230006539540189680388870289112444955169264902106284545787000488272733862692600075953941132092988850605957033161524576431494483364108474348997226286796647112051476798106623310163021011187359578938010939697296096951564881572772468635775476497131337894360981492245704614733831807833991433684828076242636609262180238851614806224824693130428694831487382340846291574706296140746287426481692620192970010198286644058510164674443297011307856812964744826976021812422342162579761225668960075994444980572312408317332332163559346627003405640425347127230410972415133648074746734045192788215344260858735490483620027849412935337542243856739863379796818986630392647204720445540117456791406994104777216035555499183308404514161356948197554167027951650868207312679505200839970549336001398118354387460647027598226519594556551325626672962153965371723918105137509934284907134823031749991002428666070733334995165816632210261393573392269862188859816299015537170465663236174869370174746615024022188971104490404627193069175965507026755208634320398707587993058960687229644308889660139440063399527526701977691355916190802343153772543171477598587135133247086164542536399580016632019186283665577730387982943669627613119209867994420441622300420325573286067926751920946307442945209998860664384577591531702824608587809227590917863286373004499102686826200504007979236104459231488823066212823946694078556414922327937417209937241291188380273851630260869320431763328405341428373803093323665554507357708005516946663855117102742901563022099105409669554628862341749700048061849553541215845110919624642436936443429345608662235875588958863553484682477325584890280680476244427240079461351907093078318173367796611601173757077450128886404041173005280625808488786135430581712399871562326198165007529188686620246375447602217829796389257985381676501509901939035955503924626770612202786846658792889680256034320664870187167337273772733923678016959267327459707160474702100857656519702843036733307000087900655619798759746011596318333012408988080064595714983563000104203018375408350266854880482950405400244610144267614634013042178816598882339417945048157464537382618665619426220672253789694396061558855100674114162672267130743532786227453059712742891268797208597053752871241297274357691326238894145182754862852790280499530402130951926759902443763914333347029358405165740279669408628047559275110059391634772099025265451991862609778161010640681751137989770970999142210941138676541379996531234911686057851553463743127309893464720591648568779353837870635913444764546935329725711411800811161547055218568422716531212393382948186145574320301440742675198929984811005947895796320656153308836103622865031473660228942107926525385009790049615661919697805519441947294633959441553830801494076662858669168186994713199782230315270800769177416929152158608410166003193314131796950413620244340730122080834650282621371178900322292144952915748758564253987870320876160572932022941378113945661850442492922180034756830046307951709064607588760837303430918729030814402678427566569064419389444966192829916772649058069611418347474424532921498552737823397397690162080015597647198834983008701629764528487023626621325135876117052923593748658526765138350125621212264895543794515505842687332627122267725633849628121059871160805985206385673138850127679528569252700495307758197690543296981702864997234748208577171831365492137128339085957251861001024727364281276165963458260163897222730272903441010848724636584032232302170391544688157270093031466128789845447576066154970598287925870464325571882895208570394074878956838773196722142137708929253893189163160281801868682617883987165252862903453916735650436893148112636984755720257852469796020654174717700227141873050536410460069728174771942958056944834794371600676014444165437026439209491881073296779546916177032366926494365754994884600040574894052706429108223120207241639638425404166155212633817880537907129821596612661423755542890977548467993393402836836787667395812237996038489887680917567693133492874108120676054397741516877287454768239502842097547167178875436461174651760797233885028869354097007831725519288554407316112192461481896825898953965251634118409444226232991233192901670647684683017082686755623115934306360712495482789496472158894804408731058267742281710982495798160254557071806609098722214848321475214296040332175245323624163666736463025961377866961127643594337022739733478608649184868195138883216479644664907618570826246620553170652589782977107451075779746230631404487419284554170719370615634930315947256901581600531116967557497421246129750259459149368717878169841645161611708313609492162486909146139853857065268494634473057284889612423456693882428446013801053609409342850678570443673885938152165579079317466069234019442645052838517662983874270184018910293668006233743849812468831210931114374193486595820545879021608225968619035110546884051370230804758503180863700341886895548563889903116254232963835317578119483006206731476135095229142775980696742620870089000813654201225337408485066589535768143903049177208063804982454605176354490197746138577267878861718083596795252108925490299852747993862187120263953837068218709219147064929543768696828476123838047520082021975908771638598639123898354649468431147929817444970049521074993382610124796553006829872225391410390101135099141549947076802180704161433768897033536525233823977033418154405955996344344551466467177766316303346124999270149381827654917818832241232024779802073804193798055965933535011992648186830359126409006074476481871128589877334982699137399294294357982900763092641714525400634701584033773386617223790928516056849007601098644235713867101764343755975466300323118464248310101838538483236545058339580737796237301926822072804499006524157173058704745297727971950387294649284908101080122215120887199342706868651335454101792036813230575035890513023411881887824154742753707883123211756997064989834235583756696658601654444641327629619173303372382139405841631724513271076484116381782918573963856378407241467906814759244331260937647880051544152430150484918536128223781045335209594198930312685359710010346270886218362262277882819720790424099197228143818536123548334253374159887354686407161946455852859549538736457903799365277565309494913574521245306962970582631202606852037810342370395311787424128031350380850389068057120435700048597360844861769193463903976328654582445493180248074749698114624951052863414600688932037496580131402476687970433520364098077014406697344874766917975774668109000787285530637930494455860756613407424838824295762531801796363466974095290324135159811164431190440640814140959411013584702746486430026215933837723651711353054769510391761527890299926577307904879709581377496756209169019979672898928246024533145337013654265862438240367974522174252744919626000496117831341764074009089791592687547206399288517140990964715977739991866885291091960912922006160961363874499965438827900401121935779177674587037021463500698498030887681511252335878501016524075989177699804988291976549253835078608999059252456111969290797969642898968982856080187626901025638957401420817524991416502969959788525201065948607407684060785844490362108184186476921546317857112242731302923659840124803213740813847766081845771731097076928104215467781799602540749327146792880888010008689422574792501112222755220012506576869975021978762890608230742576573532685550971239074905887490213930209610830738382200351555384492356678690045526145069824781327406100916645243653854492482599122924240559623954155512867032072134201732482877384839602132812290780016994775117054401869273543341498050394152360008969220610329352372745531695738452850256253049631415481241624915807772310751793305841304198351955663994580752069198316395057956398461647644922958569613860239261340174770733161218293044393817299465766594241913889740468140219064443230104346895909423064282906835633346088734041615815963600644201148572219903820602053061348905995008572851546946273689411613612167908804456620915927590018075875555321428913294282890119842773614721106396756402444032727504100479422376262075854475321319300795644507087093095542603950617373101219692595377622747175803842377549303771567989633048236742316186015314495182352698750472484745897886910764491776288126382169955275224609650578219296169933619528505106299339897599327586666702103450749772255911269304634786934984461405203925371060911076308096314791599508920765503764538936795016043063040288019724176633121640723709412095853606238558319813283881911089446818889182355628073840613431218086096807150108498680078238907137762170986469680424106788993030066479363102963811855890867633679838083639678291588902853306899590150223037226260114628872730030472095707558124932106534483418608315204802980323296701291210641768547186986010540984360633655426459663699763263449608459038527700962643455088790585076228174678093113982136255121215764112438454110192953932862103489067986042602360151012388930775854081291953477216779702841556579530144444678397339630279803213267965642521224147154554113570717723032058721767581807278969348316215547894801936948950595844823536156622832736835455151777741055478839006529119649572064247725399527325179445404436430797303987254348918134014713239520995865167522564761804744091764479137625214899309380369695478556373692732365861935117869870088098421350786295376922462997500952344193150979272329809866591458210521361049685064723884620979734337323295860164942000081779189840500528317592497938763518149707388317325225952331786013831256242373095461422099968670714313474341072671819485716025147997381619373490856212504947841582244811743051213273860641392420412759441967232803707345619369956433085413833337470854229167603556248435858517911016849779733184877255997684091122722930893666231360610646706745292957949698995522445392926567268619065328743352535304678550722713399829834370605784608446897162747521382473592668110826867645033361315783064289030817069990743045997711621214347973282410952149801344598624705424349160449320407780544744267778452613926256000345171163596925411175431867218056754811105816162086576065043274610454631166242618772577384747773264981124895563757614684898306074921610637513751456389629987865931862062514817936970252062850314578116337230695962910734850683374424944365439930377296709735012262699969165917109350146471011352521548933638394613384297980778163678652753162104451739560677654674828990419995757031626778667642978275498466987467991220238795934313482506134888802925539361489055314207488179839299459876375400704969790992180813642862984825689547264352494745855787743125484976357567561330018553586963593296782056653388179753956207122156506692369377823590060418792639751814810900776508320013638241962957645839141826343612039860982028857899885483038752715878354311333929658617694173915687730618317816234611282525664820590961622063136216087207536072123578445187402266316862970383424438403382304453584603549604262935719021308398213623693590521892222051903431841150077579974530635752436072822056450494628844922695676704508698147216714959039380849689377914119170240834854743537729923183428145697175701393387766947091200714348111463340982108815435030985741446355711826530888160965844129825738795853825006836330672416262075842410590641507960338960979557438884518551346501368040252122655998793578883508172582089593338307496069840333213506511400569113111163581612766132370451452744136990282850997936079106066302028538716111400219990721279546079504457707889819766318476612709376982131468439760221509261132103052563602754592316067722015359726502823802834788878080734352698606258166448711720620972935400619110646242525601317485224101707801836281258964033803275318568157903756234651333209265224160617871269189851594071404112814488499542913857461702105677636390534190172349052971316645368255258212332655140912330830506651840112754029849180854024570792990862830062926831138854828909027650708476156811336118542703075088510018768336301105795174687864720283033451791385548490652403984861742009078448523354684650762614798007016161180670792214509159756709998862589962109804233906274752474305010955054968395043333704068912968506391260671514892414318421672429328599980052649351020291201758122018765431904931253714252644264578453143320125558841643889628457312388707908305511224255525664977884988966889160976825624651540863357530979246484510471983157243381512672362334093488638901697274430034603977109851991490837815251486528233361234780425986095988075208965477508246769227459481128684258994447529651416322645666434613137020541152738174929614632030215738924166030020084363003791653477980548030256499661588463384152278527197629385312865493042192687013947724109657979196519682428500631150933501727530914761653116113918962814445873364631949893255824607443461021494953913768597032790232296625128837538595961486086171260545331950247329268284403489361907510163491589597546860743552286797663264018755999503585334424160923177503793274790403441089710576233691800712252114930131109090602260209378361622616005868918316816295815970561636188104279914907415705290020404027095402663720697208695202259157773611571908846710649665132760950574170123199200533036464793696898087591644357847391930876570592768375251924918691204121377188531088415328078012467646383777859183116670863453465342402510278437688427143356528520501688459735815911276261594711189270154642400823245001364285276110459982670795065516672920932394417512904289468790163596759518895098843689568958667118359031713991324132251497513303761098290033579032060654858463489425905626597184172771856432949540323222366029553806539228153653869955981352602710897155132243709897951449200439766861333751120888928652785155100949548547659118824241323829292213369055370683605301025155526973399741254327603203141721451249465843852529633002795655597226156343984982320147967696842374287756109385880912178173330627122951782791793190221986795627507054744745191425360793504734451182535983033404866220748102578794973028522700287800536759661292822076178968645339956376900239017630861526113079504258540529502056627980917424790188760175477831202114073948567565118642647798897229259958009820358371943699755517921489789489440196110200017598042467463424445050581398807918209691145475993073333620355581778399644281522972287414849992915520571571485537301556069870254202521773966828162650595772921625210187892649689676157608873215935230958469767870179572425795539414160472237235717473764339402837249966886784362688988219833132073873781158773901586788317258897751188517682188928887340764873493851785437149754708308497341119153424817036379815651728921825476689556268957679215051623335319831721017481769430533210460689565260697588827806326651377938366433813885394050408029517547553173290168296332591509396613363165738230756408928986700570423528979770079853426108737599343348748292169994795878765630756992139660834615896032295861765517869802935971873268965463568931125666722967900046708573196025871314611769405127968695566064119893837011272086656323160668516103309149360812864231104762646068096516555405453580011226047861266371764805102539082791190571773745849232540386998782458275136444583400655668324083375226309257239691784101124675392522066489808801841191030592763777125294697629705692675228923554504459770861735772003276807016215976762869793302074731065690342209751638414787157371746603359736009464445197556914567194416956433295206428008596509602595291188345089680971419565227628163812729363846839526298012290009434925106677362036819317223232117855227245290701983194604955907680310070180673792479435149392958473237928671366476736150102098707599115923552537882097692760512466324446273059181255647217026069311753273485403542342764524718167962933573167403184087569481402510648235109194324851771820430198675265753806209618670690652842452560163714963810655450278584847580622777375923813187630205647546226897491464687752465598617344915387372988413797826666625532198672924868111288788166146760517280471996906447082307539159695286873145605070946425944610698740449621487527891146854502718705853527836156730380010316240921093308022843395732294421154989839403341601887386407654333131526954241785151784458780127728442561325500621324479454215826319638535070914611981565994880777674753852889899416748862018072210214472628920981662694876233119194409390549707877307778591703231999014284447228814345798189161892641289746449720672155040191316945284244751663632320224691910004896911393716208532515783914758385466270868855942848697810636205138196647207279597779318788742673811949237896136822473712207272333471563185612456339504594867501965546698772057483590550113697809719675137402440824697386168570608749386452499177096728986938098665329564190143599128166247965234015422745079565315201805108535474021738745419119056985258918289385156874924259609425769694102173800703244743301263749170340014699409933472538833375882428173025855045254479673818289658977429282271008468466753782007902041251716405689197779318286479377023087716987975270609278522611105092368731079206790808597065641258605074889602265215071837283552407927641239337860144520169589045738885405961678001544879381584062278545657976003046413381529917428678415076202783655599979150814994563854951304249396996249782439367565156606903493982669320583632051354867787847599572614042880891755754029949588823493820820024252062061389190031499525664967941465486267354380371033013331221092370028299474924663869853463741416849868059396883987836042711747100772604797768772163381098042769857933717594369394153549294442937653734429010393829172583742618173545225562538188192747444169201673550347804514902944661245046894081484081101192919737275743159989549700402229583111182174094346043242249971450488577402017511665782138673891235970744389311911091363555711775767750358000936418496083749688145838774365063655194724166734614047942585594952865907222892825304457772886547705780234941629539988870487633063906570014160304311010851192531829206794449815694968610427339581803940258344869398807703325191937739570879017789718242860617077313418352439665830437801115260230693633957127038043846599423725262157193018945683179333759794934211900624674572995642523722937754437603992892974816699620515676449220273725159597406946475437583651076601944021752711704356345586443738973667789061467133420917873769557131888431591071524033093246713337317171721023346820670218760421262087688941500938280960297121621110187940848733507798864232904004492194600301796045796736645099857333843599471938092773545186188982072802607339888210099216642449883790308104065176984296100990209135679057550457782497744858129592545181922915026351509129867893499922133430543356524452629394049039945998937264560736921849204494147493712491342435019676727211474518358257454908472320939186580427116852718307440931013178121060857508378136362351105951813501479137540634700329349797643624237412257680013605298507775155327307659126138674938966781130276276764096870322376998654821578553599108330873002871399674039981721018641109620371495551313799328320479708431896343480927859953074287784129199404779883488747834512160961405118447102692899080505568054992983751578713127528217419609057726947841449013703056159465757496706923990809150578538321374171075886616087309061967827713788196630150964942984490940105823347917201929162559373681405240538834390411018515547665299531712438907960180793743626025131870476128463007786270487191630329495614088290371834460995279691462366440359681106365206673929507176340275665427445784590712555646033258683364001361307945108262454887394559893128301790228829032898591847017100870699891747408572640930267592792109654693903811344435937768666331746969950847184456844641494334294095665616870584189796296951561610448361621578903217262846060993254277913340645869634765649722713148591458984356060394287709355955254996211403113259138811869880893873569088030228879847924691680705823980458213179927646480342260149353581861181146892185907759169326908040428775103692016244704662030271676018378852705863202093733751963246849389467052858383189705535293200097861423680456919309444810445519690866736568949382457251138087040241480522364296420425871298405545159038875007413096389746817480947494332523505138240979448033309145738497958549743137263577071343215453231765459617772275422005155373548399346248824437366946261669477790675018445415272925336471339951110490259758652930504522268396878962245801871422842593321479545014026600531661403467963695329242714038888302560560789974325978020174724803479307950345555075665726495621044777949156660550138813699039721910476753283128393967662913695916367445319607676656841838296429723101536141672136625242540281407846794936330321851737041413837979098453635326783693462742341157102956491316945261252057480367298341229298370113288886972520487402814635449643505194072244445758382467901704313413421831597906127360805094220301253311136993825122425178740901651377750716673972854683910616684721166056673520748054770036047882693219542434264621673713490144575747199853453993901092367390932226052858624028398836834198837392866625861565435396580666898994475371478720821145452943878574144448950481057426496854572783100085524011490912091008521006726130253177817427382974349565852442975598309933206921307400006439113679253233427528930049266904949182746895311413144691069596881480922346360342031617241431032365721146588105170058546267726942108104849150433632291925987243725869789887617693136949073585443480983310621078125244786353384315013175839139561207964674104788608259302251518275104678571324592359736559466868945758819762139857292189325173451932371815337996168890953163873329644294534605503238859960430589169798773492557792735339267295728786219763024965924306096302963253521761811987387215022762494108654177752631781639026755647025950643746807428091903731487794152959033599043337706301609687541480122884460961221281192798395205460628326108987552130961153835132075861937831365701821278004742439273303932742474605496729484682293817003108541784242183479033599591671976043951648470428857227344933372131652062816355410605822750740126532353043289231776460459694193375580988231222500859946369146236406726881467789070565991181247674557120292215869170211873890380534955994418454519999863426543622801380848187082289801475995984180600419764801317326055177877262898302241887136044644760925973935730545230206009641390854171717173475121847825731748986029616677275975922320481835190867669549211121106246458218718415776067488411556358324211445690997114820397965927312498638160082131196725297320487582630247904570550661511606098130777680640683369220384125212831689469037610738290808464970539008970978764737312156125385300783974002992421499187351432321780347597480132681491668954049249774605551217491566247099053533878595082807509545290956195124770478773417730649126776613977802582406437392559032012591120411736317805199364275154080494039109881093664119282960018737831120729175419340245088660425580227710338717657241490852806063391135685180769444087570380438385167814337370334332557005074491554014681784232456162490835772398717498549794505207216724673916191967187463439737772784277716551426940137063754898518830302978750792544379634591737997704850690912154618190832443733688449993634724096489863166336993485976849907257999571516536708106245524245100480023036201190036323314423307665182176650566305893985649296773101033783371394123032517241758166924735221166446184572169787890033084676519343778861249298630014869461156324738521471331777642784846182062741908253138083949987028361160140424860884063051536572100408309414681107049094224518977649409207604531398141514951966569314634091748895974673384310267982693521520025009340807612346123936537339507523466746477553826832214899278397333653367801059295549749415928526121475672604752009898582486915605836919488641550763933277504984832536390998410936997931398569621327171019440613267915200389215008367602588168401554324468549337546120545219682680721478661157850034285542188419146631502737066423600346132077469757114571148405639580193579139840473641820551500140124329065150243217271269936075562192385345717649333435468206212189906468984653220132335716568797822068849585716348125576569883517405169292128104029686568700022464316417893837279816316802217679657189721508744073177224474422526211260411953784977343305485918103894231652720649047664911549165228977787431157251712663782333066878838095045698406962766107564578710309488006393815312885988782214174378362432190695249538886341561758698292590099157882766566968308213346434966009695421608301691378055279007190308975814448700952333517742317708481376578131323826281677208946698492136915941937078429384401776451899175298667889880845706632527336263199981418547136715098370556665125087073050159599582648019843915950977436902453319556146378153511853550923100652297709351129515474979321672162080365086014473996725844061890996094016897480006346163546057028727967678625608492470281872105266100042143840515612254546264570774197811006523130678590270613935126149182900437323048100813961514912660250149875844019865288008959895287225296203811369259911528030023540486517196619515954680839801308264195183534946960840393219741407049607662902910491935062673244357409797623974347227138383574679726325141975172037142542450104072155802197705240561455617495459596822735393450629577277778015226338753445081392399115616762789355032484006716124829687375881856735411776000877298460200581117348254846837640935051654742564450605546523712121571427368776096208326500709971974008450321020500874703838095182574040368186601198380017672309434079495420954055747805219257727684951480733750520862628709632385167439828219126702620633939926889887114796517590220092291978756052080501355392017763077882437306309225924672306781309782248095614068775552208557406738904225105929851721441021654871688507946410083116532016990383251032925327326679264446451700297512210393767239687873219511127626355608721354720282931578182009065850648949068227106625589144935525130237657749097095153709572007464929401472250653378235242211779482805514427437882060343534377164482205856609322798083428554060431776963378735216509628972897070529324470632672713565468130138413500143431015276473336315677994002517039131460345767644528275518992100215266361497667252508972713734194846484833773750593087901788768302501658374040728237259034872155829281109949967680057286733551748666403254140611560602235744718964806446441918132741736425934429718217953962430504151627585735922198118959323372443984306502104183866813052785088236100949805998234467734378419890002707312293327862383848322359404142050491448008625962682071273688415806294017830721102657248866472399550487779947578222524763867163359381893960446911554398358225649890471863495607298124760204766232289837627754462612692294121104807647406228423003218396986559953733421584269532348221300628923793400210238854554288985416804707089766291681680724935706372764272607809018812266759678959200569692373604509405386378784891092933006986792415108841048106429245318930627506542890483707106536909794694794317088312787362391569493402514997987174561744118216416569114807530925651118521410084553408180752318709633762153562670132098878648835617976226039724915131940969094567360028080059061947533712429136301855550083412656374511332725574206546494613516015045303364022530439219133082864555091940641162891755472296364890234858205864637477475083634965943964024570418289946481691724243451631040207352610566515545442160941801492555003917951998827175250097178423085035922079946247523926963906262818658561917379087517023060114775139334139818574501175750995538178793309742423642734992345815313286735723047900202216673203546897542624024902471708671864997607224490263507891216030852336175905823990801521347121272928823952259875608263285332708475727437889394141621208659083856272687293172797718950341830298546473157500962421171297007769758477979064305229075355077913934287948874925688275244712830306346445183141960308400770515755804596634042548312785637278661009524175292291831236321722157676278890413134572974859795726419880244801106659122879284571150099345272299955224056014040794938630806161973919301376455388813747193817253343027951720883028128929804430016160836215792994640929535438197879753840110142358691147288597838576633620277326620984873362962199426153414139345343513949951979475501044964030876960899196950177078123540080496076598111263650516490593321397353289863181390488095521328025167274104146522639133896876485705607657788878167133625163325945868975548254006077875642702179172729184456820109185762961985725145318458042595196510373090987552790402009929463731111362650565467490958070307338429983187907965951634303169189756103433602817903513240028600332012570940878246930715930788829900148413094106869094278151166966909209151234458445172778116204069475048554330381074615771518381165529862107570813096327250671048306226951654268821492288818920047481211121900814431240173334369590809220405094270007799978936263814359091625539849946781132823866888038688555095094134283728000324885950730354079789614033937349252364298282941943337906900493022276415960971023066282200781681829360871739691141686908712650532035228714790145649567237838353018039737658710182911064098644818164461091807922760446145896488261929491112798971687602873954986261597197846481191657271553794468927798469741822087580288973617237050846134421210569492950399945168705626596452255927051263101333503674462964962842664451944824760732137194641620515200234851165614775651224787873512245032414617770813051334559400983478973811835593089099350967346542803463104584133992386191268193063014210366362832486878279856826251731385469535833058694309777118121837419941631064095256093780242428679000226216739349355519455602770571221272814244453264865726917890866623722184928206747563495242713232270827718543175424181421674263423237942411734707017833734884243053208437421312309676751524438631415291874612663142954464794005567898577763083868289183228844945478399451788575460546522156435559773320171443280949670756625807452185410614542866199207866082554950903156174104670919322327135782688767547211921213616632844951940049401259538340376185791995736957527815672762750506793787201133915715809468401971498478954490408388131098153972643732694799892228737848370547085224247632777266975187355109394969253993145726604921259321539703031992329028494296750054829721663422017867079152629995241981527762223404016468043341236343035687734236371245409765880144782899219396064342972201097727754521680184519444433972093858669012393761562520083001328896547865341563871371248137091261601437507577108752487670096903148242962745699648335733525614612177393815924186883258490688888328944761369059909799117192683841658131164151182976614392319925821428408503007436761977514559200962391300073257968255357072444018110800056824891528333504839790985062308447553082367571592261322494221429922201346972686637252058136497771917806213051430289503068255266354148076452007997121928342924980201723627998836270568121393171581423488066750342520911687616209031273078755761506131512443046278271830682474527230099068110370961572766201737203151729758509254956977881360690406303058657333266084611576844721395489820528339304968813813616400363998158945433476960301766574711285034333515351381161039310569338492474944117384055750435845606141366418545134686489227045676787355057873178954500682920167970414845593983859172933404069645061867114579035337780234896448028247483936212217429785590926133199438953533972273302251580384046866066393870588688670800544865433426560832640440228531488180354962805241034085727063778301410436836390523463627993332794577796631044593499040761913635148713399717217576454945295534450317156386413777411275747171816750911278115456148629453873139490764569234620896885381237596248519143617922766822381941316238570620950399386628745216940196124748963550030741311837161578484388479340747241608977041762430019733659697157734471952870293217913809616209580666508379452957005525889349613540037378611859314972281676695693980381133381528035325967654070623279683298518522135798853107405852108502420233729019859257844629390641253641404171929261559176894519402612420500607294779556546963530564175343089917697425487019987664964103897074820390406503625163673090682015911080648736460154774456937975198929181658855764422221326615091435764561967278380138040068687093651326588890347382052772888704453611245513339225066683244402188460690542005201555341985105269641092577671490128407268617142503709018238692171460377134134074569673862480527192532121953848965858367581033118807480523366923571161371857754215337049231729265284439613798584021968453351275910018546266853693999152455142067856968031570112387228843035070199138014159521293987672959552994420408738852392127378222148263116538724457773632951485035724503768273833724122015319773511255357825460857448435123920006994427321443805930367240338268793488695584007428195890672842109483655460636491055279756710525101339053348961742892139163563197922635270329750508155479816183932569810236574111193383529226812139371123612457011294995773338199751562463351234429785396147128446104344964987978918186929813035686016837855639946580171088712470665878735293753419716855678765852110919252657305831546093575278538223805478908866456736541285139590336623455592377723626722819587270828319044198137268340264411976012447509878811384695734277478994255872674067795545392173743814799589162385379503469671480088818304773086863726586994437347809646478001398387994482270105002254553767638421263792788318163640133838299909946652037143262921433425842457109378078072711061527954045467383640988555078874879197589032791983867189269233223027408157459416608331898185222925555364352279355242988297531211060889812019145491436127702487369743378637598380880570154200336789939917332728534003444277247084169416162904100056752691400148139614876694691617591203892231123705967927379912437635395103953583873870973968741139552096968735823488127093157121911140068117197391153641934449389616528557365436583386461783501077758367778043964883917356438194941131681947258787816478732783195751872264013289953629767755669577745586353561977070011559054159261051563517977285179693925923745528574219202258065147055855606197630469061312897451237009559691250414998530819828881378527198832449285350878746115213328781808995841966492924995728294140329100203683546134301801145928077631327071418491422921107478826645176629361506717249011326442022427617157144849728702428257047390170015770476356529527076579630461337922628889017850696009426834490345510444736869962519633942998686375610851926132787147765067900967752752168110985929043758897977960064027573124874805571680470553513119808337860982133950393703969108316162159307322093336170961219007027751388713377828286706829843360949802024711847700744029908389079006893458924893835467262239067093233034509132300987698413395390151273889469663865215656850838567231459309081440412836918421845672439296918542171203689889401490315972630481573512294940852275728762410116348698830416926295004926551588891710225259612811980700264367676084776702762660535104803991410962715880724943136778637293710667320424915967902922059583119525088951706102647624652867476996553212946100192957356871811628962850662322458054175365952154787634592065977017295783021416760127174304081087581238485354416342142913157554968422294701514432246556822347266031867523338620677503988112655861198450661173056372607101677813609308371382945977482710160158765670017415056465425644088770602164108279895049248048239205501211409540789716287685072113408178149857182897836206554097462461866467059856977379774639571560008883333794433836712995970622396870616131684413828511271634605331226773678103033494541951214802344243345967557584702116873218575789055180709034865249592136346382882016832609221684801448988362213371191725471065625815682932464445816128862164321447778391237991625553646160042863048944878450126234979614741113449438943282330188015537292268586010964054354632774394013020232090682532269682656983698562062324122609695345405097812823452365851097073790851839585860765223349497664210375004644564470584082017956546776114052138240999282313671450722785079623659346746517619691495768467294337476392197792623665172883559822668468259531899835040929261281946674347946473931147245394279961587366336051747244270897019923315696950331491215727317269689224898636861089444244170441860873893707874206936642858099589596112054308735759035782925538065625296473689676681530905971241315471029935048615806852639349230176405548882182046311518495771891206915094090552957116551446614761182471092215119855415978935700119757184775372803207621862545764886734544882107616668696094564430697806415168216728661113835938866142048481632384505084761840291254399389371606136199687425764096798986438329222687063062268555576672843425378006540968746606442160318205291357778873817586732478800584749528197649120807721023212982077541180152336468534820558295657117281665458564662035829265615829843957661785764875920194388978377778975763786818016039056408492223716418869016323983661561773768307271484536299385602879731944234791908382379897183845447587133433955466067944908061790961150594581412587761251616022540856207701346312853284740756493982209377999591479839687689766782541305677331944558834169831370677879472464718882685083456821115930418749395866814378576577212475445972223292083055166089026876859520372310944725712977600473549328830126528162151038102332792470758927206630894916050994087250870361526076938532232645651410965203443295852567640799762630498508600695380771743539512718146446868308614247765556828328170440434388577715901226969296035893043378508706401210226757170836398328181106164548346559040312964511879490006058169894646866513417085089919487091191907034572997152151320386533297175506336089135801227821295082642999749112170436466757191882297844199000919163587231880635680895334485926358144059963593574785496452927523215832011341888662478331083439107610377259214480058303727731495318416253932218079802028555130812281829786428438163159051891565677135733219258921855850954661425024968093905168039848911888764770987276175908654673270322115618693240253020034054024381756801190658207581139701644869185824166798559556175688880483831234074290610074509918723178188514261281264465053261185996503240241163966994289787632906542337052714227114683297677021383175403895824985339575481029494401614174130696747855821354081206098303077323297601143199356779714876904799879309988549421277252939848624521605016305347608947543126607752480852396838691636394683986180155356704027389656575057030618750154213669292852991780070852291658515027534729954220418089618261190376848381384057927566092460701450113817459133217034527255567706602170462362151834741611361918344388175569045913230867944017989192256241448812243087548575504797015691871758783644030096567182326104034662847410482936449487565120629907238190041133431992912620188411548440920873503358160505536341024946231736739531545978534409029779538541275132273995606432766297876470592994196153766110399608465456577311144608498292939940790785467665816780274078534070872396099470837838049811728288648063949191753590547871836820550476096339444147198094727724777188101645344285300632840570249307813690547123711722107674895336573972247992215971171925174551317758435075416743672843684295609051284402724304503158362445641325157478518911241642278181396073408318430611940548829909623049429117938123185843737271260257940466329633371051119522669738449348615852214507201867570402498373458017345672457166757581452713200523776664589735458641700385690602681510770172954625136723755732772827827052333134234499317848924970042450158356926187999996055341052912158926250465495513551825900181372069847022190790709355294362037374056876625761616288270810357084517473361129762710929210697305648470562987413143387219466268943824325807824278402633028388441733942387166410591466069724819330949086210520755639043186301774695765700697937156676999971117670284010180115355881790090901776188094203250446956862577411811631233396036748752975818360364084106958866514225811711162878036571077920993753550992588173885812342450164092193310884932622349871183278139596448034237972198107519615126468876986284523931257174620584398150826583221245856049166968534882400472433954303578331696689107219120764783785200740391584050011752357251366319146651527850851196591480417273566845719131275625947991396054248555364803702522959097174594722045882025758777608228844842484383606457494952700114373901260580448671532881601697117713807480445803974499419577720216321055458114398997604602315122191660891454229064740675834935353936370394073598756490902251665360217250398103887571971389015436987516329306670249103539244976051006374825455313981096896445407980424062570815567191809535479898516168740183654106943696324470945626991902056810677796218170485371457207201528869403752131679163117323292060758050667748711954715098720940998008949930915163493440203200475871825212397816147369975291700011331390433061162003592730097747306240817327630067792418792242890568870155507931820163831799606461746977827015233396808060639425097525347755818584069851520150889544004120906030444434810940593249502646148989651486675276561933386942419121549745756607916590605167417878763744454687106926981358554019767581968677444496469751259509918237436849794871563058566890379245123933899942124573951839791692679657852914017741257095061095837862326954316431497579217329217576738530884856548091568898165805406168895171169192084348366716286312148502122265016199243939115805350577790989236893466973138505480085373154725729551418517981996460118106702353529437840792986772802507085158617647559919631956254757783935721781151332638629154685354711990140740133566850616834108010500346591568060223454994186535753124269965738160318041705754393247187564341725638897673936140496806088444664712751093200440752819096923587564493554978786405965578613305557715861062537464280587958980834353615967527939173876057056504620932442680618150984563144267661882898468195703722640959313562116303879532885607018610240636136962988424710754035988192623183854367952050068527579119258013388213972600098833671934170910808871447526984145871663871484604970982911377321541666349789381564273255624063491118474994460690079613651772514549265254611950919684896743254465936390770627577088565450462359703273016905426181229108887045055116770808229084873701463351324504039815872314124891180172000770319938058626525230195020109970758451198395981495037533815935222583362222381814035149617034054802755451662160999855278014554709830004225566869191799432916759079438184107973566402498416699858236503204026653434432963164922837385672121339692960707774258071182113310533963888457982154778276327030601587182275191390132879330488624786601409160133372876080944061845248801672478743870495588495167581302599758733308563350548165419888822583543756212653370864290977397986632354015196953151491328940813141216476323264862589310652581807246840820343045475544073136338232900878187507316558037569891151725130961017544376821330380831608960809383651570451097157996184314615229678404316014356550955825684423011623027993718825883730793527788569417864327953597546763542070988378268296785759493418972779749037696427415851180161126549630536625887767194259641433188987488262129006127624894273911230702466955689388639022859805836255738514835334233595456582730530026997789772930917981362924926893782551508442628475427902918760100802951138020894978067391966690098757383487886525790299592815097088811554807831053370272484113919152301846315576044572170117237238866004741393737390692346943597772599999528362228636115307074040597823799605299615966633855477793769004792116387128755491636309911778958094006684530217932148043755163362222344325229155440434582527344175551486291789222762224837556809927814530134696736754908800708819147481204251429667904644383733949042865317160565857300984757931356319951182766747938505319873141603153359162875131664866231680124967653177607633677084204218327592303580849965882162441197673081870628703844102678184175491780770766479411231722322440072522141603334934352218899172274603391469974367288258020805965088488640941970888012046160480406477024563108168204848542548235537603175051022621082856040387100022342730997499779490443655104906714808856758603188738895812846692947250765285767194092490626726853101952513696564753965392733867523435389826374267821425209342995374655632057029517874324842958754219559211327707534735063319050024704127657099291915777692396306959057685280111574796895321635003253271503069039535404666258397252389142697261880324379319862890642736342749820215736216599508228837122866084645111273387944976870516557622456850238049277400092971910672647961467238399112363032433112474654129132451459156296972259653241999201726132786753186252410307882449159052447409179696773079433639865219595081166257279180434703732986779576696092036126019541066242830818032964717642570127109576163465573810971125096620285961505270894124022572779054499736941422264540445055033356014670577274180079623975911272750294863401031371730003948728911230445412296746535152033623535706864766927600038372536899442148498115839981423424280565647924239370427651105564509870122812389531207256689875766198322886275813562446466952093316210115538012859282032933812648801217155038039723421762079718771452795549556250384258431434292123454867751835931149115191034457743660157173458839666586155128076965662639025786513714734183842439106966844553708126874285728117812058583907952212297867647394564007023708600040198629531496192851708468429253042176679628780172914425183719761770223395049133741916884767392018728232316058303468322793112541714894785200124857221575158226531435304789257633435157524247714934755431125197596024590779110991924471055761597558720270473779847387823210542520072249434446613648243555385489600135293274886156572180155696717305992617426998265006407979140912925020941991084754515695541293151957226043690208363359468714473901600699828187641043912957893276555917419835333910711578226465462253507195604176047988159176737326908677850226719612585569053662723314801203516693908051843572007158701060758301083549089624090767293461869384304564948949610457973299429704494190615948783334757236614217979614130946198692010207083217274421353224394521822087255157592902234883485683518811704086265347002090817736523673404800628736522724825447069988594231763320091809862211194331780159892000375278255748290185171715493719268241814154470689743106709226377410169459880952629976781734516120515470424004029039852715860759237050190246687900784008735447008474553155919120237153754312598318564036656481323589893141206915155720176527184896095314388352564897051794935841634087984336587167985569753237427132629459818273315441758845401809552489280875610998080891754460467545589380926806871859947660018639491687604582038846362906879788635419239908203446250179146286601159990413732329563394321717449348038021207660473183552138314829891355067508572286065604663952047424351963342519829148920184891758503219690862763184486376014352018648619854207055730620566856637380734894885583666834721809114654963087138717857948264144337934199565746664498688572952821850901183444997037757879668499933076814537287355905597517215388334480340016493413346602818040304758971983711205860788743588365296342981075739899727240374696486592681416533425267202651596019025952083521276073956425902415814182190335090426114055306781683576927689895948559098165187432573777431425515637307042243984720457423056347688521417966376056488044441321864454421212095035981808207676037932806789395229042331769902931013810284155821262978865769573639153120063492011311218592453154945288379363028251579172595598607742034595556202894334779525182162049373539003511732405385945511368593468858049503182863275932136387707241453936997266192402686326028222468414205648288761917216136268907133318366836507912159729664496550374431770304417324308733400156777268356321159329905544268204717188624440639449968482925860945503548681387186640737790179914377496862881506684099728743149713908391825181042957625945260437773898038346344884681011679108411709425129479453249198712247629660976499038639015436977589407006644796682661333113248297421483160469576571794012501942045260305452428364960525247111783681547433141199973558801640477810164246037254185642603647122405141047328235630944109534440818210028864837692775716686529571035680026418120650360294525635832352309132402894897222631434823104902859674387705322795642422299388755704006536603458670131080958367058476345110108661357188644352549073269524476348541837926506579922641694755286983186700421741642447185354963594172187587921999896304614679032618077953674660081414190141863965493002514247059588439151207225377795907627216393331848517609324647378798883670438005120733464702574702634534460613037445099396583729258058452096836194080634179946606089042360100505369265964112737953925017008898204562448206416973780400735322579450756442153883576508566775631113895842802534462954262609367406877819002356089448406738897835898387900598459969170625461259599157593498742006057169873374668147059344984023224898657417981276633285014423596785975427876593970322211009055802169028969857077376572105217867629295464142158328680725825015288293888446916018752842314542935575302845740031346258209866128918731351430062172034413135618537046250932209813611068638860696101283145521528164304332032300049684184159782535248879606251936531187791951338827995420470669191504398636609669405801168324156268423068304340596962768276311060250464141249767821654890378593317624392559859537669621901713678638295950206901708016244682348101358378626115857375295095503967021701048307209243116598040693968516418291508024585248870121098292348963572330847486094326103528403119511870418796197365616091755350169030819608855633087677987364943112160596796510629627165815994018986349538278923269432267283541690350671742317431505769264608023674181108977615213852978605860254822748716834942756270565021675637498117132759435704970068009511778756781361025726030285862711598324174648937239289078451839789357626896988509614336530855702501283549326846933297307508338735968492029746945348271916512948114021861679006666954485621864437240740964870655472855034639947644107015464804701558351291116505073435079071160175798342398656810196655521595613013868854985732554482003441583163576731800017554796141363774066403812260408678140988904610000940715477285452840003620534347221425626424016882506402887847230100106561219084068333829890295300611625265645255105129393316604599774946218811689607701922353836537792811366809717719675792440729490336035074841661701122164278937319817493287459527942701838827591634550586299486286033222422818899121809406207371281296623239642016735365504845436513448181239619340572688648043664114872044548274083172075015922542040469806553689498755560531208706485632464080649237597120766547672153337412601492547422704218335779361025628062587473430838686078613061824860470951833252276278949931398107149186716312661054567377039795782229638385995658533052584761025578883070075962919596450826186270927433127633102400334383789357366928634517229148556477557278709156012211813162454680951685576379454015290658365966059899119582246326040715261683259267466038604495860706007922821997170800408535596877761755257670122897074338792822975048408675900860105995498058844302550147754294202458459128818785342437348970779786807971976811222328704843737364107233684715086568621226237786321843519605318372816440575418465931777334161934597361622702836975492910270983017395493376306341054685184870186906489508513156250996726736847295496660631451317914569275429584261708872274529942493001163949428726665145186209985308295501933951802170415691004555331070205560937947301429547581842124405171307322669367119317926228245378905008694048649468277631452807153890463062505923127933385135536170150736943852783581708994623837649548525399686952401235125377299514870659671705201763343818183159955080351166588672611685281968405130813154132875518828425508729038042007180530838096504111351619493273540137568411713293769148148494434261002102207655293342952282243976036469734852258225048425160832844495330033561106981330311017852528467750927094978687386011877048004400552729706419424608019222518020601617142639452115635486677222452332126182975045624020375241472705876039746630763076551885705274993221867637429369397830100788040067288733850386579123249267592880946338047170634284499451234145002811385059035806657268121516618166599438304590958698849722331754325666831445392490694066811728885974731327142875755149797796784909879668320197526692537354179435554341830879449834561280673551301190142639463030010829760748085865111506293007317801052933586058754181666824738558513097015618054363473065962996492647108199423395792046220069469205969859122191311725191588786529014871122841804745322541573249762025052704158028722848677864702169126007777938311108053987686900878118216904585642204904791898790781084653020571329082947880905376007607691760365500125178971080279536834920000859303142896477453524317579203381333253382995945345598152665381898684749331902234920023689200923036880210080666348847706130225982590368925501678250987676709615885518382969473003978591000392108268152310327117702686656231080215067515807553703223334823301593439164420650463344183160272021327170759780359116312743519927654606502465443862332129181510394147594444125725817571710196062678565662107128358155829424853902480433446042346548249212059897351964222038376024284914183190893121600250796020597378724357828279755799452459272958190384822560147415459088274688650543367428339424955340559526505464999512133363801200229433985259309505283415391932728300560564776421563832134372620014120609226069534732786105084260851371693589130769198603772613426676059383146919116181988069135813791653050220045688801665860959847177447981088124190584943781366782805934181225701602505170459603888100429478454031148538433637150909925627111340099210616448691568634989902143959558884303792584079701567337704090858862285958298504005253236984785613157980558161569422756090243052221700212409863054921478932892031597595543203186853212121167578452596874411283213372581971711119227678592103608512438653318116236181104235875578067139313571800011875504405851067137064318385985662157201756360300569555681617447783439739719347189924678002845064261055841416058335336114143987400406862385094233283513442156627701008850732778559441463154009845382463468179864663804841243964730406212172115452742150285801586866619018688139512463063156734899884398758516862095092221941617242011617319633317574256746125829741533852696719630264128597050570119942071280853676293771929567060070925687666524992641581632697975853064146445865452253811206426690839498758463125120653062980322879013769002148063688949876652090098088990494185112766512301618857974328861391105179203608705984469778977875340483831607867767913336883792008559006824382025017695797847969966755314696491269018908432586563791169398404141150187958682369049583300713242967841593940695290873800158334701829573783395427501912136029463095101946790751979606372146384727846088715935325513761384689500314370870136497234157070187235642822277046529249515505395599579958446743553587823223406892338030838074698215967045018523753532116363045708486692922646001654846543564008985581971443813340010482148945625731616501501486862711334837097627690479860513040005685637730690354561619519751392477703801526264883207023892732079121935713866896987633354755146448059085219172196859106874037462523480270341569503133088713641676905876981363358496735746930188253284770640227582088659071707399174464120968539518947258915091695284974761026467412875026926446336659598733963842103738120312582697917299274562165796114634675845518343843216732710038925546642426638721765790488516402624833189623818220513756856691603549468357257830551881341245254357230128417751331722135983779865127364711886076924648987084181903568908119276110218235928807138010848343205579278837783148345421362241644382729575516696286079330384626618109163489426374194004036523161680350249231420760537275165189854108942460508182230884587590334015300256998975251687271901574656740368007986812080184232582967539104758759786749045814353750316460816181167501625429340665282576354442525132781262610350441308996007677643125427019285862711189134739802667739072425054845299751324299676973152910377241145793303810008435228846137247151896802261828316028594472140341637805100318105448575691386735606722093844298026811337963580052817428714208047510602185070155949774494450639921865298325272501129338158788093213106085183114834674992221779097786856465984439688774289544274990064239886013873370749449282351690744907408310663759062225812412799487168927043021094608612808844032123068325608868794572281994066435409941671790789335373551487352191569122924079816089754936196924725743031647700201993174204813122879504642365869689013505019376882274919454143253139294377320543283098844596123188010120710076858068048059787914375182707910649065363015215109816076471765122620660087545300787015463051593206288095447831201910467740486896538230323277494019620982405539583110333129824844354744273332067965597499819011701314708416424103594605053512148759302066035664009022564738106139174565316912115265263557965220321132581451116014837160569038672274791160309290419091518941264333005530479769968269265935029858242998941128991056646391824307766470317618318023810660205196159750478600285607402727126397483015183404116767478551763820844938936997351997304140415353954487410356574018095654000001858141377170610319496520969796710700665837790397600151869110955104586683615406527680740578093768583953252780961911182348736847173718923628572705400898277481852632908777687551789269260989956332346742101597561354190138511920476872544356115805522797687403325284053037739532310522385199054052591748596212320243525236432122577805779395030732806881502045398075054945222136557203814013082545818945251336580921808846294465662318839631559530621410156974014916521976245448329402274267678306600464410477647272708086539878528321776333963292077540629021665459885473837902221923638084235436943851009647702025297840515015740631354380233210627382914040662756232663561595847941353544297039337585699065104062264030622792203587578019249024695717807688312539105726761905468045116694214752616782780321251032493586909313240524161446603741019442027593459162859270821508292942138055394954200832944804835897264185442187360874348136542619480865176622320039355041569672022652556013696695735329311092782578595715037940837670578084992384222659787639723077165447340160675016786138403659309908577021261577528650722532575326934791554886202900151407168130664417428019111258969414747383177317243051187229167911407621657975051959765334117598252797898217248695203451544874528094844833966096092185697704237591124779055548452633428551194967277207304648250060134124012750228637849691973711295939418404391149262706155916498571881096778280848068279571347762452412559725141279145979630341637877683387330231666046769169978934510785530474421086626491027313837874022663618287418324156597570388323467210605940112758350175894282704747653685799128730257982971736073179633089616969339876742162291287784090551823754734643543393373740484526483498037300770818842956497158362975091223792209959434346140434428573113896009086927299171476261032745713360137411186636683065579934262597443035888424305135979899771485586695437671183002246519200117513104244428632808640614687039887275369043882471204780781077340270180216596384090544970885338179729205115908222774901237368565629113935442177523961645364432347496959293865045318691520856197310569217726722215466543377800652086454730204911144664993331759992369248077487637051591383501112183295191804601849130180723796410867937957157328947954857319793264057996625669403852517319508857607296870128923550704558597039421924287019430122373734626955286722868984980309552565978136783078510420576814540715010219892136250899209852327964763796504827963128744466454402696250264664923164333712181581291660367049191926992883474053145282512573941965137261137038285864880077961839585493308604220043181312255038543511265659433121930674406440887945382304099468736953425402887486913645411315275022094090797826750319700298157716554996972350592312819734981801283490621235735574347153151875867382031971985031141419562382263968281650887097140130759929041177225289341286901616380331036039370308186409668559697734423147562558405471607543892187393531496200496357171030667012491866260324567117444709922192157195347943681577194202695371192153003452057399338991177512371600637198198001360557144597394129384141799029718961459550820769447878373941190819843362729799036330860502626784957016973499111624889657499029950801477461097552582971066658481172672255302198359144613203568719532192983022127075670724407260410397047945803978853039918675168086250699864809614729727749346923706955552271948814509868546477984187493762185684668043426913861147418774334718990536346721566927321018850265487037212997546163565797053288853003775179814801660913102989681963018086226586895657536929276555242651979552034427334738351549805801115728941201007626624249463434786430606389238970434494301005426108331203805895147629880271722313797143196465184125852208981015629149852057309492678726432249977479026429653845810229635843401183333168372204394149143449626384515940524735126120496868913455322061823345252195672031596025473076735183420510375012224634426597171198789138648313071014350694040061321031782584684098617614925714573472441010614311019467978732809093751805999184542597385610713196860568050688451238689804221071536571045585475562342458241467754643379760631788672866638501926717584149105109188187893708165197556101159877065062890204195393872523442670128904788860867867895988388098219853776312972124314710164447046609628533325181141190413803101038817769100813334430065658396753288822863276596255380471561198447856593909786244549169874624268477162666336459287330488058098465611176573394031781165132377785914476685902348155114468935721939016546951228220541965757857121022921858613406623894817247171010175294533696129451429119563130842457152954453890063783702941308120792260832942461473405820239209408895133775788826875828988910524223061508905830643023810695647955486158579164923052767490344463118321883024496249897889430378659519784311267484360939080494648675659603424603469431721077208662126810321725716349261832486519149934381118228576313346346457731304946190143650715500778000904792710369053826176612491522008608851400252036501783083215281273293504111860552911719511130279175256505539814337211284078896523034272670422549229252398253680111367285866002894178952726718685127111962360774745363139410397689588900466897650019836643710184493679277281358785990317638114819803339736418508993486145013082416296263354581141439173892501482044350775980760958058727731892176433505459590696262640268478199608361363757049533490569538277385040625770029075557105501739843351750503598915270648276633554290769043176838173254994948616308016056141231768498627668294672100893272021823944947759217707408141091526156251323049614525932179388067263055955491055092463780482005612390308874011739669668038305934273155389335913976442493912304583845064218147902049169675008235616996740568074560099490900630678099346386191305217981539795878936879701906005832539903561957426013518636280126351259789542519710081267713801107764838599452583926123347674984366679052566355874634839308982842377881772272657631817473159224256641705179570106238526761523339470035260966667519540284967751921951348671086293469805066513508041321837128319851070884939895905549229915169387249766569619067681667146092828239949928321443256516424789317442090847233089407900938822485498326813742573320912892231105388535877839003530334136767323570798174872334512127575135525270035169921839631712283964928046612472662908443145202666048301275182883678916737511828567058499433794394740896489188009601203764013121210333069412604738832690964505385599397750117428394342176410634523468540147139254130242575150624704963628402584065893267455474498095244443938516519800300684312261997294761621341781232671833330440088141728232650975709409636526931077740803953203747711689083388655357437446735464101316151498115715021237733425481355136192091673584443162458255937980231469482868214965152259874860592218900513557365685617959585205798213205992338059645197584738422058548383618107223947230992838437848660115519106321204102014984142906678790176791414283435633207897719788584532821235741431202852873080965094992475579399195293522563382141122471128458401971922181478169667149048622788442245129457657900558551239773158974314219082501174640318290829544069982375491969374408334325537605728655176511460135398596695807631953056617201491301884367643127464633853051432509983445289254029635524224662240479614789606340838969709853940434334336031366868507655287410184412921038024861918233087850077489558469493474337333736577277845171058074095036519531122559925884360224056745854554253704699967906541303439301305817201360459744849215344037781652791003647274141754598832430439250449997672523946729861231146275501018002503850980444408672605872590411172506378785449100917882961199239948782858867590021935418952292477524588936668772148085395313523143666725886244039897363743572650666312316277931885911677240098795027238366815178690711868247936406120985293338183900793806232292160965075840697514772795417749478563592432789349051621555492657682708814973977252468541268023626184930748113959730727345492546628953439886876409455186003703583638367322832815807490354638269546266590413393182051461839255710902728987615644592375792968091887545123372699154310784836445725691278437084868861575793790293539570744715733768691276360319305328209422434088521188867231439750742994843969171795706203298053620517259310044916209470469114825437644793315517143288403452575847437940097589616803920272639045206059281666309067264446393330884707891942767427650825991092997702994051128695649962233936780819309832085009077214785891671472490285095817338429165907299618620562139837882575320081937290403943804204422012720338720265227270258178115596411562386920308009381126257594236512678387658075561713090255365413238173116686393179738477086928985517705250430298385644169541594632248360137423192555986268969125664669932059789061615431585527514589773152405104976922502379641420991951030496969610314912572899314412578624459875729637688146918685252864702094519271761571125188672465720143709408022300256522206561695732637319701739592659726059768552192002186370428116062435683647026518979416929793922841358648030591936649340640899606693949115026658313746574062045857721314531644756907003757146571878163735759479100401376541392215727780954127700671263885974911122675787369653520784653049410674248994771007544147028728998588244661213224092966005720932909388634367266319400414171758157034642766972399808507034521365508370330169904280330460646525247930830255220181460855582668404003927140342575372810092099165844833002080241564389114336388816809183408700156383726199811004266965977784369411107200978976793557358460836588019449660617956334234229281787914595364462914168239668527431059899118627606076876853405965969931507787111365264732650819779562254834146180212362840474598028007834418102860471962827016751985776557864268016687989113443168029927669068527046399762456905026370218164082109686466570677907196882869715207472362034905551497212266913630094995713030749568887980268460657234547488079957448541911494097766440111810473955501236472699598137482503028457438280163722147726034524281340742138491625399755035343208569877489225920589999457596269881960727566778034420210032462874464474486015343085488766191477726186293105645698768846781057847015493061542090994382414707443434910267280657190387692175311975773571283788324633263184217606066022030964535599772262450357220587623668022740001141749950280585914694648318028753301140695588553334266755675860077917751639596750861843437866199382622517993359658896606766638559612372452064941521298627536227515238370947728840174599661436531931955782962672992460267679644504948010502671047973518273623998942550874026905823510531251767638720098680515069948942575419544567146250551647885612773848431515032666965198811240827473128150946977711303849720154588168950682672012545969020036397134403813523927372906151220387960374796899213685602633132006262183911602465913192494643470455898993126630425674061535822488103530871090878801178564227414426918124067942695269510053983019610523531848201387618376522723133824507206724975040554809054716241718397334379979995378503607995707092268936723674113446511098091403598869102936802285351795427213641636556315538060019999469073118676619295354242425779178562161557108303759422589820647206925480194087063288312581179382728092030917165791102257273544417491902805925968730386200029404669961252172009562637559934715071770170957392613136212914862001148454162383130269385049603995192878481190443815083795161077510567230638303513292575360194928540055347679326342642880629539938961591699207425528718509349814016164293909919173830896666898554664407696952805373994095777045634663830772452710484255995954819401299451061898193584430537712234233753033503816569655091579386157946850236301589414953550998697895968883359785786748083598156049472945468552903426135858539990744928249647168794242787148292531877553273053436181049928492528201340585564409683151201375496026109296070845884957654963540162296678321766672694047554361945936229296366099427056194133711313243045193456003952553018688351543771644172447004193335468674101532321835408328957859238241100375753061022179288258953016232279172991341310592996296577904279669574524741827328345634212825165751243617327927007363470621734497752174680868223557588167827704201376746637961734134102572446293483354269805730016897513122650531631972550076651117369211933182161201966566093485710867376066954250580216758710449011156072322319266994171962905718869416885365752724785513354191156741459790068049582422582916252665651178284978150696118038122234477362684158516529538793127181025410561643716471929331297755795058999181092940580727366880271167922294963984769018593115764394973035103136739599366150734654828193681816798548066683877028719790049883197006734014953080199237884393353769653786542455369497635199568942336278317872617057915699856209566362392529645821880906658221323650870779519240743127295695631725661058009222372409009781814049679340945294848237032521379701785554780571940566390000339401908560982436588190407689236074178199527182893603353045830464740766332091233850098897949361464811292741331024067446181849595829213720038171072664453881177694642579933071250598285840386803386265103854824139585005883038508741757606269623655798454672358361061676938675459137057997709582164256496796445687001221162621708925784996249244264103566981129326068231730855881992727736908794135382957369236515571406986777394224354228133443930676623579787246832018026675683390608861802879245868399216362374500118260906905420657025682751554270209729173677640339362873470580070859667920195642647457098675816688003041554664953377315351235278671949018138965017770215900972408319209004583441052789305663218410767404435457959499466509223751656699754739376703275286510193681507161735695570346352025637671850057832302572364846418577073933759395698898826415661573029208419862852315562307798880791695238057285089011884441177717850812134164232759200516636949023008324744851357324454385911128012603857616232808728360915499877785312642370063079734805121755409936843211042343725768269402320967867190992682660623473192590030745518732691395823951682332011788023944583504029925390520188831640838853719457606063111252559615097369279380931138825466377396665794427081232012260530099597075903637759250191912324828827919159487298928734071021523004048902596576025769043244223877688713419998969583347646678854489570548922870930597458646708797305034110428179245625271651951645255499172689124139933257138491137103458925640281636906075720416218981361054162090657419099786530506427176899131809914300964571710722224931286765545238931915668005270868213498923573448754377231878119344398344851555277122008998494857251528584499769929226411827629822529361508105621958041594909488681348326371745186008160941933301348618769083665452039936097215882242757048571688235400135287802847286643905638920075681579745922025440364257202475274429152284423073794394436971777104389226806996546399786101923337312520104744707416929928352199782898072457064836196049349579981533354159417674953425306969025423310766228032647973056030162038574123409042315599864918933695673722396616285279360575942633611107435023991715651676230724264910359797645833925662111344838345195622034381164854657616732920301660879173841942169786486620638624288255553258160611796011824825380731873061242716008984019221295705762430390524261607586430095456621012596150303783170911833538920844678549435360955934001113832776932729715190055286581382627708215841397252033661942605600143617796589659714912091010851220403984087641903234719324558653749511648309084291579928099452753304211574251015484001480045056312534347966551526871152204337926267794432968659899662958223857962862463249984502265287325317540967722814623123609442812923829814623638787816487852879871348619505522541505158878794142692377249677306873520236663580134266962901775901264063634456570445608977219574390957859366802789310998340597840282283404743146387246262927354523573974791200396121150559971512236784838337062448333463683732875853404309040866435283660562002083074589272957447362268677380776790838877224267338684600649690906508232117668644505650870087152327297039556292098488255354974681517091513938103753883510265692373768880322622325816578784500672588078196394665692435293258825638321627624063392091562904339668641557588380134630353994705184624564312386705589202639731969459117038684534076524154048297284113545671700064952655940429582031275635603850640853719191033110367169395111431168563073981468591695421045651756093777120069498366328636866963279986839942831642803761689277659978264772264954242498871652426894045026763707692516444809243918407251618619582071442984823109818464563814473660317178868080079299769569101150950239441536967509915495021793206925887664154748556817575742710331515093974996962793808814145657196477373224064309973791449859537757303255289804476098386733646223769949425595867984903232772154678367002657894087877387177017726100866730974051555836458448332201106538727500466904029542042202149418160806472915826171052289744842234122877869127607917066542406284712712352945651741143826765316732820263937824842644263142279116594761039415542994872975324655371507429110623785666047696610602298218622699918328117210580422541805579426890730756600148630077414315930977746217958292175656837725557822038198374158024581163425253243320409725647192448319481018699543625401961774237824797829726254633828503360668902899753134482599351005094186250770931823579128645914253764300843666468434659259594830804951644450208945549160064231939356001102038060845569329669785206687736061615539821155111419338777833726230677753328928357937848996918272117932657194530205949565681814256385892222792013899833468845770645105984580405536135635967115482457867468820072048579807710123123787352999859436823659043276539133753206633098893998064080270849979289489832223547346968697612155222557461061203687104975736537861589214678157139221986383599580682990292000241239375648274532305343422650549773338539391756556815640839985593124653723677884846456608988304678942635955144187262216903186478368720052720299823180634035087086248426142390946494406215156651156751708241572465342421200925762063269876861103927520343419572512375990046376736237541526530747025423124812290222119600421213463223623630814441954172215512633546029906754411531066573684448891651468759040123836855762427313138234666869839474767911933291258696097707592570130672579228494709819479976169281552898197861092385074457353749947235617966006564004262227977697792569904033955759748669699014300889073584715221431070238003808263639009056539516132170742345515223383210754190020308490967334728151932009732903643107169137658467290486237450436424641368609035365003662170981208977987179229601739204166036557639727837554611247481253046568308016289627353045143019188448001989004829476261701506658033822278900888010564974040302392495859974450309045601217632488605155797386407993234961479965877688973396495467731085011623281587436914259257061838470475881857681232021335866631488467771205804263173260766618791337941721432335316058461696852475569428050713089976071298167295341290443969527555087642082538547995801014434096504539190358245313159527291002019896048620322522099878187008252012317582323394852535449516558954261348315346162181545677864395695086895051612341635076564582744981950566821693217205794965120568703179389831734507925272956159997727849692641510987042034919759149067597782553746290804491614807386814317698801290391043059797185985149637578809687171561904157074744103942141139654680597927650794844230455219878353865181765437018328585488831698940040756911577125395639671826620969528291969760755595108031110892127644064287004177259263353232585168342084124872309606734385580025825014280610429818597932092861619828125821590959170476832370923154364799712720093707286621437039398980161195169008487366879262929127210236798938044398853744951238497171518379232114106590009108355145493789790902413247819492633199057499306144269812973745857334350614788583171991855159922910234173174092609620443251659122322364403223084413175447744072622060332346543499017699564546532077273797472940781897899268389806575433572678952563346686334037992635641449158476357756193058312862546165564246376756421073801553165718114901867442014319016444357480426104235563212545726555634711613561206030155894698836033756916980047729099225341213601775648172906386575297436537256395458861375106800256939090625779742466351661581357000993591397393497204315099262817764172489856163523514079066070645941095949524423036119848875288305390812039341547024571690318372138030775335558181655048458620672694923729503223678106185078802127611094790615292826635995134010675746826898638988374091369595351772313014153725155061327283072150953303719616713976964069127445700134292095987507557756532086551067911706124748442378937710131648005954283165451469874111912247758690323949406065949174565341941532316378430222922918849757309523995582363163959095097985429311661411798809144488274691148046135256170376991773064413598305093265311674470882385746801728179364698636579509745634949018944371502676752057066120949069934377298414916120956088401275538994391551244292547191517773769508675929674527600870176396537610477628988501249807568569326281028555177533303172616974168133243470606787881869616501504193043582485709740041158048693119680430034964966638385508035002868343100313954428383610335834170716457316840900336967027532532018405791500215595775121198135877451514611959609707469336476772703759109134771172211033713841943093396358362390850053414109894180330586673796533756136712266403010183159279200012327162696568344648041644478540598374005274604704449147996017189802883466233875153576687159130282931600653096286942640019817358426592449742060118154490010223332666748958257553483228724614683555749063381662528491658461631829458905371539420592502334738141505495421800087238416290473135744344857059368534119552806732054082115845646916464194135651344659552062519473934415552656577633189106316156082629376906630991531458885565260107154012772903687703294501184032884847644792666819097389474653106524300871768531220982546682091189013330080705699003355267898178530579687170178248393709483790646687487868275118673393471801699103651434793026415891772958404674899544606198465073981897697121366295115365961310091645318751524073600488566205686457339027406941868144394325350893601891931138419470993835561015540049608598909907840630409526347011635670663757764313528502447988724166051016279821731408366831708582450681085575166241750650846423043420448263703515867813911224240285521373766921877972039303861654748113847614443124229427695903665930555945053573477668563267105339728509267346023084769456990567879846985248908405136575806683419400789532040848259340762969877262271526131278278855377887566401246168307495764910850709322800444116774014198730455900873179651779433172410505981132315031765626865461563326094494425049527591878669444419680063354636085935081911635739224408981265007671808967255198877055170344965539660373378213942868354059838194658498318719608643037588638899558844304821064539616073110124584851285099123666696737947319582191850487652190095659413125298703490237429546002038500726769610689466189490989096385089726405242188283150769170948657951773751079368144935423789416961493504159661920047946252893631080618954820422406525208698956556810244368036461603434620520491707255521762009461517605814166894589606709661608671153997839163167389221593364019154932233094900835231376370966111330987259571888134523156182214410606517513949515752913608042921208024571158345296997522677249044671754276617170113423880989471167680200152697378256192035226999557047147912995538017403461307562238886427575985962811691807373085046684680972922566820711260815980170955344222968437879854261346131205794931704723694066891664739679628228529208069393523093687851807245501537509658354342553768141592739197068448733867919973046463931855641601294736781356203107974837630291436899136474312775506304989843646181241977892715173165194403775110075057812242242303662659912881980248102857581621049728339578142572431761271120850474882751892475996767427814154359257768422043607987716812291946900717184531110150887522938363573331926347490824789782846752605413887454647860699772116449449786781778404490031206037279741178261685141815884651884858747251120795149033640200557704935748275410911407934976608527602296350493139598794924237479406089543480274245636543358678120824786794597841729352567817204465176855055920502242699316853597764963964368226526543909291921411695380934807237629293415389053613901734414241940486114396291447621772779443393443766811451181979498126885587686532655996902045508737433415477987865427430006783692192919866911282654109015263739504728246627976963330852643587275819376331880631835478760393326483251252074118442693414884760111283965837110158563315530643960971711882392953466026819400202899827682761568034494132746358862221444432438113891054902319324932704724046038814847984305859866634958119966649551696673455662938048983122442338110145920303550944810150691738408273645176513214705340621632856578609250167735488501785266512980094305684964851577221568931308713191342317216915615820837549442839508847770905922264487455254680110209270897676835261979742557758487452296637013153526343027506513415989921368786577626668444153156560619190683734514361618377550214248851907228572928008012969908663698394707996486015353793191408842189617017605481709052114362181604398628626928103899134883705796743698431763623801322941684585966034448525271786649684775820867684296318455812781287066413114946167231574371008116544386218785584133952084927221394472356626049250880356177103867033217507845353751785554786176460214251117113218395050116694814143296425816623084025345153578197776946469507553430865325334556570330663688969595029497809083195721292426865272507442179864702209329328016580170561058896520775121433559586376895353577876237471205718200180377985198657875821128425946903185073527623508502733925675059204739969000097808337455985219464031178528707982469714473965414977878313704232567500813065168340914928319390622172938752426538611727942173426063425175320794422514442419420222283568669256155350302627538031357782284374622307074751342474590193324815853845653697286443022367190999999604571820557412792290704710354091312246510158434442292662653033189338925199843353731409571183065655175532510300286239229978507310936474418846980584611250045210916938633954413262904853877940112440454973257594851256383867906619197559222951154998557755402811822437572023450045840662055868049351981935551111168051679178170721485475345527614269548516063858855389079225951549392509032072805402801955465756879662633026860486808387061031461795675817649081181528899450484172004181513060268780387661715370412633641159419057135659738948205447657083003800895015249074608202365022503762458526447429396202607869338871580422852519777018072343177877969150459951307241202692966471030860049804026190672476096051221713767926948692132700219323698079373473543676298188135369446592638204375943797088053132625757523948892482571547644286784950111269096845229131125266650106362136783307549701202061196887118500981557845851512167673753633471019119306852357992403439777507796371758141143641037543648176361446244115834236379505571955963777734276131775599351174146247357270075162348451223471953022097959213079270764649146202286256066628591592449604757260055798745520424722983539187246914207701154246897256566309530296100214411524515880453574798695534422839887638097430177180341883212944611435015697119008809122076678651098626307525119894162549292366082424579216037859419150501509492232373712454839165114366790703283784824651845777009868146399553345158625101714040838835192686551653048280433656245955798732221479230244135675565487820949569581537175058849561319994891607313420290113079300948466826628569954941423732554653854188386512504264663758652112718100882149454248942614770903334336520481750044114870752043577575261522496989639314640098668671379346522185372340668819420298998238622175299896530396766099121990729179248906354258111749479066561985092535341635127349874441246177607202220164276471647432555111676385228370345071906249297694145894622671478279959320837006423945972471917381010916678351903108988272364519394754981753021414177470488304947929684326591287449297748122782077517945787490664128868018937834753704592400112692904540471446632451509986600358788205465237553877142859642080007132296366422848079535452307090436808252023480700698644115870188712029411304574324683269152014236570212834440572093791009993930212134574084604606708588889592796225187411404615095107808035470118525730679915247528890489547654846734114949097754931154341534652758483486861426529864279135464394459284415693378373211240431441604144453853722543917356917451214438977823785562266361976110562916724655621386583783604559666460899622197390220393585575924880883783853402679957455857431492674525086784775171283505523705299315208355144688761077747695234190125915256602850204526602542961443613360148285653795678865169767094803276167160097313681105607611006077682842388672451594157246683321397344407837791376249178547927601815985948541965001933445468767330360486701016466798968453859002790622019434231527130240522179475031051365960936490238412390376751703993608636117794881280257279334276644128208706754328023509280709477240884737399623365657962209801367719828857784028281550789839933482328381439168281738628150517941395022675113237072249098549401271697883793144009640826557419673804160003369369755290966068669596508676458762712538787533655441895654304504533727221274192098593470658083530178881917323301469099472233177788493697993288445190741395099551626528349899096964052320108609174734924990150226157439227856205576497652800823259464351006953618357199490538924191922585965733718075425632917449594613653581736644284484720941568310913357477430148895100970169178864257048516365141367101892990300422129029901218189185286168082268389840462122043891597713850954284954412395419264398704988537949297181471595836287776817213727372331771155619551330390305070327153671512930149255500980610644471492262255546650476857153438302383117675760870898612099364517324925913290913851963901895398591418819593393569760432061916884948965141803896325676105880430524850625622172019428145353419237939727060616138298093628370271714794256672111511098126084197167218530807782996372331313756804406644449819683012532461619370034034805820012978955505550561735443644194922417549129189539294064618254558476590091262028562430502476603689601342355029538891390865813223494790197401824278072405011237697001446602656729260304336048597481889296691947658671405792503055032431607880492389593474790519846063046342575259086355605382595128368079473171808304575723272727788736158093963081527749841577846477034584978656779262967758168653965514196243267106388860653142718617311158022283711725010899919574828232922566484002646335766489682639748206323221680677130220362607564567777577525943395540790700517435439643043731364913544628732722780962908477743790037268224057840286638478397738973309148071129901024076810854277878040538683222975255780331118218906197527669418499482017521626262377332604120671685072922694809515364465909268873051227911267094389576502014448007260447602576708417251195594625919976821744994250404964532172040422273333979270640515071975217155525578892682939319839563415497591840545499650894418981707326042296556528516170563528567112028478742307198190688108435765329735705018391923160327287468896964388487558820816281684891283538822661242391655003518731511496369811314324417227848729812618303668869709055127993166098794388040599793330461443475579150467855124838627367210007053473382830800558612135000111096667935104665436418279730157789711887515169824538580615047912262610371709792077681530611609446742089359097044559350520807968068975274766176146152585506513350488072625584608814437762760957109039043225700280174190472905678860317956205764754950150589198195837774785762506234663426563845073145959940826119159252462417163086527062791054414999906896752198956334419643659160249494486058104960400689204625916763347016229153352281918884144224699880363590510114592831667378787786735096666396729131611979202594509519373263175753773855686083285801257064389975115035616502789313099511745135662064660861991535824625156273612659701884082172881348724106750337154069879066255266937880275303985830854895353212095725441214174746999887735637731427143070894824866721554164355605455514121483922150783126757920612965331754928571793286429989448874931618854055231837129760886698644466390582350300149009262982730198073112175726031166922495587956868713061164866728831957630414968497538889175788841452407426889802169356293162730683383205468910096256054979396981699681242045073859409808493612792472438106273323857226190244004188687585719800322173413716494311280190501889586858817864104034167765874034839219840081229333046388345678416541871202782038309599697418615829738308171032908965702784830601750325174078449156360306846650169540075171280745291203615502539261170351536537297839808330858236535991627800542680348250116214446756150949118629264340617519910332307257156971057804970631637382331414805327116011202169903173539976710020526805811551752189840509290686138039708410113155998953336437540246635310180702426971760756830236262693985806858396164037289759642151607672781282407141456256250036117914161070674947606107214622730095255304320782422174273687367184964615100620372437544881376980839478276966311848985330549027131328991992463274332366506390995535841242551281274629118948688385807241077688653900172159583347565183283518306761724594466069405986428276072642478515934844239505335667691718670250362943033658229086428333921841466787962400176262741490937997000182830762489556465324690000945560095662585060038751170793580940095784000099009058574116286692150925812194925979831230378074424267843068462465049017777072448369634394610562310320093855232331849619266999498647055804074250409292579513204799382914768816283237924518501777214048627668304244583564827092167303904362697522580562809637898365226601321611655716768956454985733739689843118525165269587304754675499303633557109874853306625143331636424852209909732562302499144158668521222003401045841737691792159254132812638750021845422130871114415541862640919916192169975519060938590575098904535124301809804156742036797572862300395229706862822488812770523858086455053971280313248892428504119360188248394487383207102310271719765539856891192311857402621816064985191833952808585402557984568429556430615173079984374445699403530717895707724172565719576539606093044091451744325712620226451258935613527531309806057768112297817310461178201043620047059268570372749606983505755880572654777466232215545840805628115973651269087239522073063877560574870426160354512995170536304488954339893118057914195055793108604955499557622510745573299923245901572859630088632078172657513864744381101006163994755164634670817587297984148099260027374924659834928787719869699662023898766546707630097585983419830874997249569969332457200294485900913361667363680882864546011837732300446882507169148902708175990720328380969844897730553909725006426534967754074658394950920234403738821911103387365488187946411476367864650689906338480186551648196306082848608598856583553063797137897355357052642807869483632746682486963588092462374336653212520148143341881199361039433191704787443976763019614062790666826230006216798065443365794340435927886755279059053368342220502657898248259102338047023178672676226717446404664709510767184094313025463954563277708537840959316358825763125907387709546656137720227442016261626762323570681027774503474895904203416385899589353399765310155533624011566294812719002209301331442091500900540190723863187568657720218665930803383976349531234822838124180207544038998108948276382499083781451398848814375306066744969082826128808202852703393919824626864251894620354663789509165090557859101905963560106271760261641419458824421074568732184452043629474455835427372128584257814942555307628474269928786806239425551022860787529250830193878207964395583300403411102192954070030461754829119042141806611182791693115575003436657635652328234680497020642698980124421371664513171798416319967164909744370773063561369265628292553198488522478320129128056038596394773441291133262069934033995595463754485893176048251800535709262581703120223025976528424038912500808510400663158776362910496603120551250362199084552424854845403171236381446444513400905282321321739430582449847093635076238287882284444412281409654811379017824408537552129135069443224561830599358886663922506332402599131869545372072679281716464435565909281042569384087543228572097736322148865403615383774059239990025395730436612716364937809211226817619277386392363512122532130320584983678622539673811018431929227774348020174048320915939807862931390940370778417461570243245427947804236963048166245245134799572562596837912877152254875295791372504904183198238077101289851548691409896917112458350220263945679658531292584990117168075162426305932194361583329072180001887081258353134532771565284676390118470371155841692996225314112899111922499034046074766755326663791674303744833126266351373730452810585497433001249052226780621720211827528094698184171775491787711834039240385313981289980725573323422125614463957888412085295343499931638718397518871601585595372130463125732158715651533456056153042334010140041130350536659241149826140587815098766332428689056504077197710482895354855696175993510532880680925737322349235675539151864976146429000197956167813462027303004014893300192282124000457329412497659464907448061758917165619167397830994101389651836542164826885907640059822178029804662322930438114819216103243433971714920856428726634448709402562043975942921743066252069263389118968542848345852972424608902779172533282268850931898214216682671878179712867133564674393009648235392777573402384277611007293390659884589802651593905858514819993736967469398576565474977212479095143419154233718395808090573826685601741945469716468201492547439986294580529011041369788326278840012906347980296125817495810702925618639698520734002528216814424863099864892202869713515327435146630721490407791755088338912001304099639661342501442847433838601312138186558227353418918940280758706324818810230893355454228688717179710858678938546775137796389486785306336474165717585927785977304773497626572551998524926190747788459748289220611644833843848530234835485629443034760961974318055187154990437627125762251929240382717397319410054987808608703568481015842875804422839777531032868571028329645852511115967815700735445068016719319918226329302732110483970902993515903462311883832981036781774099277382727226433476200616457226895562381822711493778811370864590117180329029306127970391185485962068293960266961958230695007055603287472530857283001305570813293573530937910386466113020510341727019033289381904304236944808009093026111197194493027775442417434651289105276693286835819964914428779331154245481017483134854068761323596827699839157023969406643520382195635954878447171118397533151782036301038706119656054238556633850810380408226151876627011856175851428784104493749191320812211671721016928778816809654350616816374877816430519803227576999063123836235915840761639866052686619842525357248323685986123227252148496153651565183487822524359186708534203295286852773080454749897248501494369586286374449931775002421896078517543754746133203986049038736903507016519558654608625828690323588274701192791328108153457060381649396344397481971762979923677203531268802659695155145957755603731089675579913125958042947105495251386444994666302574712042474245188919589144776475039593167187315273626899931467491300456774355673606487202663892710851348407373692483115902137630788628151675096596903810306206234236629380699711389486644053857455306817485077277251597849527130604242201148578879631282611112602535957924356459542052772528454556267763764541267833847120599176973778024322592297234198813309572723432902959270131980081402612367167132048287282602303093562502855731798975855226454487428078012074449114034163123677347471910582133604400626557633706672179446258702728185788147105341848334965402568213100786817220472028792523744935434694831582489042877215450740484277436049813338785044443887934550349723146982677672474423629984282909881853194919601634335497358694656849005181675918510698254682225954327539497175004984981179251228258780681077074228238246227022966125091946961323425589604270766120233842506410458949891819503034045458774508850466747433930181513986871451759485465040002471410835062351062665543849534764577464532092503619764186026120417357375908196591506591898672613889618794034065572282604262697722502920061102017370763140132769016109390903445406805882851185159077056671362108010917277608269429521009906309848916594555174148643469400900127007895792633385025992346479094200526312568131114374748740611507262248751042663244475526521372447551770875242481868439551645042101764871794867416834283218199990239514326905919443557666093289133562298864317300488445313893205611911326414537022501406964542886208981459252872515153415523468120447856591999302079209054593908769182055675387988240852446486663469449058360669295334855495398989692117260287906324992545373124623865310996116657598898191917043759300216421255836907034255405618887543698810083322634746911650360276361482971677279164835757362632243648757555777237539370345983097701443280022375312808051546338425076718030100214258443364741605555344894830968885159472841769293512570330698027467972719781220907875801236249170428859409586878568726443929414162953392643022176803007577394644535782254282772239135044868950016251505660223225303218194340314778641642970264423712773231301376113708905535564189021128127275643122471786017671646522983521768294763282121278907029327717966760630888951826136554847414150156944462553583707920050485066801295858505510516442947095860848008886706270731171042413991181832267551689284974887353202594147872945079621518214040848365322574073435578916335844200766951557039175574955204425495511434281287412809450933834401518965651291564736286536663659994556769262426969311868949378041930550549331106899436551467500940559571261458181400198965957140901666923337923155067855513727830481681167683543582947061809004567524318129673541577049194015250136179231268186444455582466747692462577923173093257640498599617079225622943485757510169311223987751120548718383335640164533144497156161638881385420238731353613293015714068984226721961936503592852583482281305623817162444514643757574661974247196101193373259503152914492714001494773175842092929781978570306732316762698688411672759852842289841572043652940354949717625605897790608431490981289436009205602399482995467506758792449566241068418858778278302259897785157640158987874791641170290745103478668724024625208313791853758260553382998686825682234799141107419226350497235203240317255415504962807149989412754855007874761786260487259470016421064052140552900213982405128297167258335282241844895612773258624672680329621192767351125293138016381389803339103959337448258379386505711351900480307700917541339841879309940150470650461944827560271786620324710539924955159681809918281215392458307332393154669403872081066751654052202037046313861391745307176576803588314423129043342046584017353530616687521196668176685556157180755020886013471102844517142847434405896123321527104500877876497508466306237785869051505895487964324392562461933224697917464163565460081413018049377750548018974604470893524390755839481266286840240002171089694624210883778236044575195998271201745927053334674399830334556484185663733283718238995761432593859416668099759776632180073496506757219316711143484863748090003698781410824073488026073429729678714586193429883497797599726229356569113731367973087288567070811874195090996081880701794408139619836515305049050410980763659415339612247605716941621062916945977067820796786229855891877376424842805192922525470246391532160112598343487203970467264892998769556163466558671534540794258623128935132129652074492985857027941460972200642081773460743163377663467513006730798006467673600328441677129959020824066066008378724394706230749028141158534854669055799462524811390339881897421252590432021473324793701444510291729304031097902476604998394971406838483418655105304501355599147946228145572820479683913285055040499593041535018669894162314444153864145628144154516356032556826241240111328070562908152565435982206120503728505060278659276760518526993883839814408127363903124377481092491075705386829662597608959381607063284846213565891943165433238946610393167816650027735966249777539187188839908011694559416038592973128649146177561805243688973376849161143789213231366906183800395145076494893905693254912405473623579660203906649084185236459832045620329280087069557841781848444266180901464948632286292491062585449137399653311988351548427794254018322693774839105852727947187660866931979846172497904852320229578896541814451333532517043550618338318803415436301156515926004389902586323152058484928087207845368989116341780361220727890604515967949026808949428693194781258189942482059483628892496048835639356486562891103044659834376410533610368956882070410602533513153854335249316938342323057686551174946108900504772547706478233998747473660581168778417781581608086409640184336539853048393245547873414399566850411788709092291046597094990837792792101165730242523203353228013266416471341994199077743889579386694877212321829918788572022837770685184834789440968194910699534043175479112035862022995409288618723683082007041394281671353200180424491922682389788557656586117307640186110917901837402662788946277256948475180830758707519219614119494437471166508843574616265651302286645695819004649452553328031136273184092448818479532533066271330836710155090188656053582364638010499392863587092350565182569649065970272134108021510172931442489704193760697890684993481702977861325697596299485580289905514364479031365375556241354943053249812722353855571276589654830355618460641235265791458863768364313533589516790787701316669204908575453362575327406671683768399783814146325383252724339037509109872655083216133705904701706460916943732827427963335219984826121803739463201264721169886977648296584518761325132966685984638662893444301498321703718473695912188458625128703373547283639856355027767689926511910872003326859320480234588676148855264046070155382029763887207665880275261974649501485241332811776076627502529684152629889544020852961082273303785681025131838021110639395637692119165521469583086834690105017284385159205117472972950914966131303433070224978034174282594101230491175005539086560422815126898827499437844777220165667287567651280401119665216824356578284174905874474082462590375586648629561708104677750871634968315369463358600308376648141930806958452127460430706807567928011485836154434531829196542857885437753251925383333982688030974012313727872110166644883821163318950378810417031471989550409736703233692837925071707939914751180329601625650361858572922960060454273775969055103909586183167398492994820770599471973646893511879002162032433945697334706410633687260616785618451602067480559121373018680368483795288105766114520739603971191217894690466245250765440348587672126934969072968248705423674057718838040675076680786268722899719473246815196095798096852192294117646551154501054937103374267201355469812765977033505771157549894685474910061476460218522281484672453481020843848903812692480784580751173676532718771637629853929274904390878238144698350340764065649128843626611605569101271658929037859531888070062104093803469176335561987390014278273197318902185228981815438714215186817727390858173888149183672166090735095965769672443608947213486749900519954454824191204210891154799361162628121126569421833521974076785419894887542157518649438137341804220795748544948198333123346731115248034486330833834482802558303119885008575849166912310019633884853215660209690796011870453712811015527389474875278097382457724786419596755076446922399710866145128159132377349613576930029923653187032369472926185493530455460130849824638120392409050563468140007679912633573662725504584653566556811033116842697266778051797013110414517744814665164213466951485266174210990967264992610162244231499917782614229895889313591950446191293028506853784983310784789623566612270231035006126934982290921975119562431204499749765794501092434916276673421790001279998633325138645696342090004911146233045898794495333684020487479241527478079461286148713509652842280754488401591457736737376584282161800427113595597409986550137196538195476202836656695220363344849917703248585340949294006921239262688901753669185302242018038732516551026445325598410374004504452114837969402004897580687386041531644978868641471042968090014586056473504050023074694436802817617204499252653808944411169483385014092422999988431125934161113526085961008972107497866345243709365553093495410435367618480425978989660234754852484352522432672751156724779828716357925999956448726770141837092752213095758464405859442778802791195068383178988899163616940147836827079773649948637976415330738320255467783911035312919989374465311096879055389073883066994648631495827262201608757406293456409731588639193035917206429966309212578290816120075673583294597276912112959587351505170014688063284314301105570630477625418721754433519083071033394927336523481394842576940873405629865918242003181063108584442679412577090268756895670947393659069301204400692579413385105630823927351683234870184310148262058684243420160654635413356088089679443696604610376748248862708043107778054989314652332983661558740277527078911532389081272639691081577550116845350728965656175242083624335238034759746820585621633160754802537003603509525853611580039216434734758838483279565769124688275290363135967681574890284583156012286110423450903215415474254173035586412282583441518582709270430928507919524303929481779048464031449083848933020775220507812382568528232325155222254457316290440779637440921691323594444439987828793772863900208594006144944230384156506330915395442993441209708597307538537988010336078536679374267949767488775001274150036123214359275756400852508926766109125419098516124300262479514469424043109184100484174388245785895426221202840487252736790330853207654412207115281647132855800312910661901754381184221857690688583274754224827976001375245191793434050260595556343798639633474898371173932780054133513548150601183617454412920224177795231957242555323575891278896868638465167668791509316779952578819872740161497318079251944159442187615694638984255040303062648251181004848741000555006766151465574514097671405611251176172087326407344895602665392975067905469570823410925465564738924998365012474498317371620053525957369284579942639794874166249052653042908404034257051905857806487532339644154855868452320056237960161248671628839460456304347172277693815811463285017913091265365948747837555276554308424275589876419245864309117823250373800264653761669534305228548638590417704201866836306729383084368544024830263790981499980251956054069312551271108992788871721242612312648910569061865324589650641223659002201634508880717411149133448103290500570815434001295249063009166431784988131774824548895334574928136819602701522837645169010419446568426279097900005291662355074856815893890253606723261658219283125759162457209732322431587112884159066547036470896417288921792518814919925217332341499295389836064269458243888696575890976211183106822185872637688273063449868815395842525440314723978546836716370816353322735153803311360811322399181532485816267602969617600542725710533355511155883891021368841529405695811626355405963139420205447653866165740734636437018177712759407783320105218355002480309718468097591040604840823547540061210908851108494943402802620659226743384991439388656979656739730738536926751911313526844381033261508349143572180736529615527825809906761882397799341656311820400028039245195974225932815529888144906424805442814764815862069602594163174422006667973704158629119285081957148951422087457198155270743404781237902008583995222431609662641391404983249837764398789261392216604447285339336273788138758301803329427133398915072060978522011733306853833363319713686590696326223810038299166711434806901119992069442609943995821167824737007717115799207139169360984028220641286658821766565797508640568199733864407698920576440284644426176961126065156399435482604975641292467875149440967417727087166873484632204781170382940593868553167943215682072963419285255639562713460996504421947495699549610529568975606002948417395852342677464980995702414184655575334566389067375831522546043489514833370887114202081029381758187171560872804597235219537986888701881344553993463948775023922166504643987387325774455447673660496900428354017274997108056719617656937696422747999113758224660014211189374297814244994787244181862538200045157847595621265251835550388557914399757753364633256515733023119907694868803352205671337230822858203690050669586762841311257867278141247231629981075412515931742034363227112512981449346355308722150600754651124348817245246984652677425353979811746142698882569346655691377397613583187250656574448664710819352015284705967854090223678774168726459250131810783861078184239425487155928129409348792994678351612751638530244582060921352201615004184245861786418680717323472148288808255431321343381807980427183715638726985091447446822984008898646106647586113616404094404544855936784292367018172949312662230133699415237766003615396850079423287755180337661775966949281468809539365605568948918566111747807298521213894691216404749396241684381220836171619898536776025367028337459597673907980609067670972409138791592503435786544433899224139679602921233738788705918612990827720811836322279512450956991475136671452081219396416217732255862968022811350447308881559270063673703127772440776799616489721863578126148201088419940403787396216696311025028722735171440714504847426269645290434272073679408675163075205307351308678963411357029196407004040079779994927220022012992870323766174629412379954301234052355685284182943325328813524094756222651453946027308347775248520413478094990962543055281597203348207309825180470966606200202371428368322707541978441447077481298594469272372687811713942678431230225981087519870131736540970673941514182032714511446662641641451263347340384171892974679335929033359011206514801954522244026761907830643815677532375382874227045057884444329312488506841615216790663208441587151518890862870974542095355255961204323540531360533868299657295950846611023847818429082503522632193857700554113605438151910057658075727557494094983721834730930026573136851554581843276965512307721708930494654416260155243537021791795134732449681061133841365929267298354313068449377834586309417196405417940118792489021422972573764219531121794258119880925928686559747640280489792499813484495184818114603887715474814561530691980417203423238017515756828159215494959866754272821336742714256887504810816993068445995917049066883748119242395546359796989158123493740699720684713630863542722705543544324999515617236267998257836527479899475828345028409767577006123306860315087671290738016199977292262523193462462526735641320203362997498455307233985997346437604064690188389911905192398042933796862995308430554037959856261610492748398469452900509471637024453623173596061676602116549056904966969649192497532044128683251050208357183023962898613497501817995066742462170803311872217157593257379557467611789143848876769096561732800617563770732600788095461288640830702825217868846292595469606746041100408427626644131231820183176607207532290397954657032280135631764513058190712506485120249583984399278555738453707862027345719059356125258556580782718808623543581195011740327854109578987351355520744426457642158955241827169995013988998865800825510820488022770898619179692531952876968697906380789519421994367518062012041071048666581788257860508625578907130728351110419746118858439268504460029685624502900687529359327624009330568836141519796011947851104049614224046977940601673827195889873196882347307487959797530782638466989268238243673087390864241105081069555942479030181279617694696037515191644959328828451715330425705143532451684468683061259053629120282184757097411596223580618063612703804477611221618805051205646944500846812296548559120888423046457432749100369292989661286556918883814356352190253966821361806206836687399241496147763393263861461726592284065941613593522546786198094347384790046474524301441940236112953869743442067897165359482884167104787519000799154834267233419274695798359465524926939439917208782786802869471180995756562785319114392187361931059842634660642248624951789760699213419574893167038738767109484744390575933823079745980188093590586349484431797177627346632761132266695257382383250282761792273693223576093642746028618467304456776519571409146479488141148858290963847445899269182938529943491248747088176107179316812072648030391709747528636657779424287254570968430698692074578478853042629036526892027369410033767041359842225775968256543897342939360146672900982215733912625672767584744738458475927479012975452126105841098815636695779970702290133598323179931017393086374377204071392893691451779302703797031549627182519447891493168657686840582756502375351222071171071139692130541396006881845771354741974949559014893840450096515318633722372000053355596449699169404489968169027859735795096360553687950640561001620408035749244324112690372589337985313110133768716746562855780220498868990027223155721773723672567778901385088811828470596128359160487185717067578975526914770503890999161121892174798383859356152056738557899359074018464843488240477573134800693610657026950176298620988875736924426918354356492873425896391352893459864068943233691397664173736001104716182319162837974585376052251054820291067106834762675997207860888134319902423256285838266634922076110911853806620559667812793437202149524253730153639820048097780815640515949667520877872988848290586594687920911999571440983629138814554500310566954801472059494161135936412940838723295959881252811179529621835423601255100632320213496056182565088776819057018451213120460230195143424997250634303304987338710946545847577543553271120259745237802313103642553632511853614785146901284165362711930946395948931507658356019118395879542217724348891398942780819364613321907178025510381397786837363646714724565675737418499422728857439100813309395877939532912641291385653692782566736991315362720763204442700522987280486183615686609152659694357338514920320335398890040761584798930488223474316592887795555773503290578232343121128777706139815075887051674137555976904938786355742623032994381972095952773798760607429738613560586377272103582162737939056916546191864797580575493233018959768073839749685127966715185569042287581305299594322928851887541001780229697254285506396945551166243016844132990409898879879078783763658266654719719533386383639679113421484648684990785934627179063746493046928904985956647525058778602337320326700714860648459233731552879839913065124162949309357311868983778215013885398959901221869580603862725901491872936022504851243454770351348174832893653134399365721031078890395213220548380679309414007243401769968086414861281639708789952221682749814101677914140619538819424412332192179005376744294551913616598241670536644041934512862324198177637903854675759924661066284515553773455338956917400284191657978955899395888702139589987685684107205182272530309952732149785632585247291490469817983945770305814759127218456892856401281626788362121472804983569164669090615498290530555955943602698360490956428069230214393301677112296637703346270686971070730285620460338880736217104631811990451994793790502935849636162242686820458652127316350641004658266976244101505294374563596109458760432727420688660736759976086293736466835389801089214290062447640785618681515186734711017055214120154942331882069343181141599976475211632480825721710019884943346696543381622779267512655158118992685517115110531407431081906517857922089918014066850574444684180644905311534419491318953112919163028335762361302405751246386159051255051605174643048443795930194601295488065637550420052834936244189996330668462690085871189625451551751302400403449052618018169556918013885865763856423028680677845001676474426761373699370434589848242973779032453125756735574817691817298832026626595167113811673243774105735115583637485437011526245084239762557452858739205381403461774897164169882381972224022962519430560404299522794295887134629662908952746628713886191363745329098661459064076899438921057290017869636138186416739581321840048240384143893402652859331259801638797691703148730918906009169728025113900166080229170063968471250967486389184868445816356984716661440092832649252521198132655881644799487566156653787818945962155182872558446896430410896077594535653086092119247811758110298026849216361294630501178471936849608871433310297222809499668168683992299423931864532516900074822265898216775139167255080847717729835999333576207994605987763015746838814096836430328170594948682312178855746749056706666872319156383786765122235149113510877229415233768376610017218281114682422399128850937406315996223920416638717960202572225574569200846767101526988306228330523407357887635270014439853645173000175388085624454486473126498338448755196562090375330874365287397954418236192889708933080197412937917692084378806330968306320704090403637444467411011453542938480342728109539067756935812531801885893835313446036617114623904029515868719944043774538173098220537803831820151655499403846844523849448645467100754558958420775202838083626273584576971462456875111061954639608148429514642211570071773214633042954142574716261900183537108346773111439151875116388834772417602597325153421219046316661549696584115058273189660058705772442210173406339554243912996199015216308094373514907187712622652511592069727882972431534373741808120223089574511730441422086369493016104857635046083672236174455045046072357263716966855608754036351074536586790487368425085927800968577345597086569549494105306298991332038451720568616240387149932639248315243375697233726930632252413763806395236487557450087027035219570437338167725313898695887959863590345363685058529554295488380538317711013663329863435775532099772939125854241535249070336288050606727264223821087760088490228260770426054051063004367106318933444508545545921216827576157060444816208628033167642933543800994171164376994340142161062920137112641605915264748617342032732386892401670526086596425651407267114558616753636530076612534620579007494956647747475976728282529124040986991573615521122166600007361357557048788147793401992072239683188411436128427125889601707126631719036916879071779938903747642677732540236555325400100967417603116822147308868371342950528576059464942235643037148997841666903045436693613146890869719456106171620331120247318335594540434742618400487824374136369367071514886670820875259678007462266131387056239683349364668687389493170127408596036218299589392499693776814633050620654190369937711131705707354537442177950879487010750449867881967166288232532194658875854626427313042002537357773052454543567090285237749233154038795195797611831380213242370746376091834204479696134168784682645359120835804667865235645799868699910455996254213284605552274261093356891846680420196309694220136531382336312407510207973851677947283832178381363168873496214923183649052780043578743570090666539637937289273836947937883225419329206494006234392822612793448080924351243754499784862096486647054930634153250302002941596812132951589846140566009279478867043139661519990094280022157066991986906506542116818518147461072490638109147931286632442371917617415070423375947632135979070358115223712247020168879114233632312573394030490988850641618608807228320228096955040912145381253133665728880924482656193504274362808370045442138731893135199467512063888526715636338196497759232873873696234324734519957977607108334846665329194133651857853132931008076226235213345935710535749753683771863135403799770280464563491190720320938555279457083617043720869967622683242131287941738131085237434186306869105944833879166753948980865341561848647415098180044034439670505169880458228586697581773713920170975829400911836154733756369441728015968199823553744626650379784460714786731665123672056180734156309732512771430303099444318010753402487692236451054454029167259280888436114936612420936496453608223183875649870179647588453495503020576096685389605636819837928888639786243975785488250343549628455980646202392581662209183112099006466600268787082203646512553488545750742902138069852979238948697269502877006503457987922755503957220683349614122869220201338262271141467340412603878813679696261060846843233925925168756046234212791597414866467701005137724481660886156472470319723877514137909498645341753891868520548523870816430205758503539444079999777074011141723749338251292977793735146629194234828661928656598337023892223001433122542702386507243010692494889074735563113182804906502138479588586712790026470986043545347618280582442896384130609004244194851224827770302573532602882827569490930537606798967334479587104661210289203987912710085016155194385626646948707308829066371326971338402310285976934676343364591510234283510352630680266927896240619885476447485176302788266882607722320403555305562216497168069804304450066736631496442915984074201442614022312042111953124689951665996567433056472883940451241782379834602579377856460622275981509367173865938682509463975147971380195410064687805030998105963668117537252980793643839160981547196473382545749298988995663992432265270323169493467861634030023764611305383019839060207452576893522286779167491676282957343811795665406878758803766340799205298246415301406638889050693820076930386324872924502528879698529308491290555831084273236270873207803475253714990781883742938034514804605276499576620408100144400284287228696737022523565008322991270952453304313163332897888441659947236766526831518601176180125647276003068506998952811763569332091612159727633316136495408461394464048305055489679975808171690474050459196420259631266314695000366507520053235705701072958825159537625967984422959676206899725287618374324849162531119408291142856764159059489999895454401417043327212770186000699027870692936773761161254154812361482102757615273327866352831286013767005969591843194360719864262434158848318563207439006588020231757725044815461071127014898785448877069012805914387250424651204128738085897240463658698831328698411578134343614834034523743243227101088854920279776710940804467956615312037660987858421740598803887420223885600573545398607009632930663055683376223769531037547649744799819820849454063574565114826914924144430370063173721608551503596573155746174871628546124968289508731433886467458591535776800985046908694861572004722747605313521139363910322578401345338134126460502597764828374905724058639179805510156915747873702064520585130937559761219373693810784421553150012416837620446842242184361195291148910790740073270704952982167817511168036039557653113627278980748819665632479136853593680545633527648754069248110245177115652178656627047854293779991741279448332297469960267054197905027707618948394460436004676007467485543165147265032183661412702384015023349608700795434749533850901577990574827949697604791869939125682008446933644249075143759425565794825337719125298989962246736801272724563916382619141105674110831787186525052384612214840477624518435658260305753901531189755373378995623662287118580812590321444261860115521314021215566926459023344286239306385604904442882148136567748972427367660564679205611390957108915404823482612732510369435531872546741294544036810917166549048847376159402524765992556864023674240580712399664544266710647329059086133981993039222612924031428637206887373367452665493328580740018257543414615208467468973741732813702339338007434923761126533155250443551282181320168578471265425064188162397509933195992119327290110060877529374959014093321706842273704358073164549059048702108421028226448657061351109935689595826564645450403968861856628424591041240100835204773563696932101099858552992895806505892784134475434008423627287055042584391331746129282020469554154517943682042199291918156510765162568283169768226388369712633016978149526737784748613742630232179150257225266184469618157928924163086509510495350155038777902795963520747007948313426713302894472246389453444218261574871536254242554192622706501299978937147372753797278097290582244287390259550952835854251800067930460317381402369875850161858930995914467466728216252173443235000681604751733371694882435860147100482895498967117903738528582353289184319812999953706746664585010445770913303331253829500265522166232489067444005970570397429673312588523174974914786968775967930219479985375251813158143935733272663239392896295105440917088822507515648420502365070946380449243950963147028817932798946453784857822924981754340387531070281770821808996109738912414477977197460859782516894675405629289042399758744654878057367880097220450194553164410889015391812299470869913251878181502039113509040130647834682799915219167485884895956184543085839274202364884192065180992329799370898063935690761761227220668148877050940152990846919206123871933950260426349480622929339011846411266809351071823035140621163401973145686190240849828262007387301586515959925689442400678596448667803820713139727934196388583218222220459683935735476575024703326668029618353548833540431914820966078601780490578036129864524075677339456951766088653847303953404171521920336075975303643319839081271325927087418355237277987214617261488432354734976367314376348687964225108245411255433358046561248551149586589674692224271289197282859717775355094141780362608355228430678812737669675457402820480747345490986083343031593594931525046827622478996623602881292556694503308801898790484730581787530361755481262265628834097552110196760482378486868495115149750175141820564244619564916679681004145993007197101996288595875968117215947446209403763987723057274865708266686280753692223930435184281623166299990760884448562537240498639381068967939505685838856646676367010951348893238890114812024386794859171745789514912089752131055602146391059192071032174155064994856374375975760327460660694496370062938014385558258084414037830925420572407795653511231782093383376660911442301833198460849102386879016852217204463981971372925910423556443069536591160307994760475615069987742819252447973047646698087201422435435347168593325910741192343502846426783802877320706536145468233595772939322334699785331930372433234227299679178384023226099802241263287845891561966375182396855149942856929892779168280995969014131844526901510152100698596272620298989286424414734494366146869115829161095049044021594947359874479655402515956894854005291939006536028844454964116327597209476457409569452549108027453305037568905546414692264631914948067054473616252905243785072540617412155732389596913594962245797326943240700146949133339354581872204777791799045392887021518155748718738214280451548418767315048081394160765373011388490705315361215397240752871450141633186773953046713273591593780279856927298930185632948085642981275162992301417538577413934813078251517222510820354342953671719948537792528596859871545501342833578769853698213578547073465812446603167287765727552367865346644954806244618015567078162143343652662537759295324873198173241079760411803977369976854560853421302833043619795283103405170511399485747657268915537968369656075498360249853503644065322687997714178885473864441603670332082042747302482126778709479516356038737068595976148297842322225263027490026244097802282348671522826579864359595040656919386830311583500313654613209866835905627735730492832134409096568216750619062709958353366518161592855314681731547085077100732530514566349396105408759836019220052289594977482339616756324208277100258598599668071698406551042953136726563447429654833315391640211754713482768073816084514262646386424608800970149279352525888718712038491920004549269444961801892997385847754110466312825950608251318388804074644273616809608902076568474285379307966675163655776009815078802137369554483983336488680771258962913024749985502642958697258541480536459908813358206005304680673290163963774384567715874773589470060191913268595015451398111985810950345500131787524861786819636998360820048340842647138119555724561619764131264120482055573188350000397468672761021514868664121963235164886418315197510410598569233517463657408257791629489702640691736896542370766376276554438420260113656800803824864315978135034062577126066359192141704860528004154311730386087444829384417797151015094416223912786659880876015626608556999909587253253842878549754831738573740219876399399019558303505532805341421284155850296147289309805951087781364474583920496837014701394519676817152487494326504695981435191970804543362371103903671295424067459204452392157778680872419049259211876766911503702526128904814728902042370699717333832683136552465689354702446576199234785723176625177685419111005560010646245665642704412896736277306488220191070492662719271073456986172394217348763751451258720078073397100558462353155006058165247493130213282401421355312391440840050052078819159439014640022644466626409753488902088739552498519044105130632388031547227710334493671521683027040320984233977336573754630464091490182127803338813911806790989672973081230378833317815962396053046393907410797549456695154079040235478220254659550031375248630789440437095142046301412061070089020162427526087952308390706586544090931036882064847855305860757892055967092269220333069197017415977305136605821605926004089458520979815433728761979161823134411554997415638592465511577074360959992812312813507076243695621632622164944476891013347292569060769006041990938142802132520408062944925668224031990788079708321243470482848575834532740826107866971335164223089510788834707535284368314710226435627489042322381332052206576044934806582212315205304424891260539103461190595685653795439085143625570098087661493075649233336833602968330016241700672038418621711701506074836947687218047535448237780640592363789143295405916740490363063416416739654059690516630566401503018979057418684294256983379659936951744353585912557892176443087136901920269247270523893704309586880013218086240960467599141950190333063119359762740983483900193808633408007342822874689436784731552685266830299172531755117100018168888913769424569872801077452191807195730425322794833882987648798281421296640973646788349639566069158513266066097598715065017725463113048590169639362065208504034500747648295646489501445668401178101348123052705618663455844399876194744676087406514172471905963485169762841729620081780378150038502588688886168116470681601805688499971993262459938657827623299333922820382451483031224538033438006540709588379146319414532559003307678475109440829448403194651481072382924277500751233126054189430287013959611820823301014277269888980734285851470562047159429439804105165701490994588387222512262559430818211290657449021138095207652147002323028835814485097692418771716214112681124072693336200353915915586776108874539855924079021910861395631186861022628567255011263720662583858815217279821067668341911933425521774093672659484270306897722109410257320041319048390111400792474246220550061350153429860611414878898729993744243902093125607141499518334907207486507916410407209288203663202544634712657352574058026032776699603326629812808914638563319039616380779253208889826322209850471645056190911138068823518938082559232757340667104220156753458178093338990273726706861117345037523664794063738777852502741673863068540109792088872447674368230385354335290589100646183235839274643033587365375293429783207054406948241184586081815423291918731211576175254587688708718437527478802565767559005889633845395394653730320221762925955777639081124620439394966465619994562341950107137231456732817832543340280432933904799469882553492205251206287521386665352846704375968170754678028605395015902600803493700805991841438310569591823317573425360298648449845463235099413752209685359221167879577310867773403588839388644056950848118003493247121479819805705873643245050558557921878786205771915425256548673324271335318320058456027841858264979719294815197139597983796575147201732568561901736559470119467566407292300051743894509120368330689221060150051146094810273295879371866525049208804057644719546318250550732561279361154280895726159223380857835107929180777643872746880528977715961945687767011962350369258904670466194791550785345215058407266220005573180890513785202605791141920075713186202747722277299476906069764860902564461098844734517321226505007398922607884146895588372021676443475378879416329602249869159068146818209137930965120592260245453084095670902990831200281737241958627013597703349300461406909879734959902336282364313883175852452429229657435821438104925030786259000947366870814710345686990634377557621660608601290379926427198537623858288148320539298275412698037342576188203517914768987568016218095204076265881893673742275136202267837322315353637105796753827476298185229190575847000270200748798544407192824473841445526221381665071729250961108875730477630265349240893303634103883176425152169065966968943852081515746145935527396698041056884736673679132420933126881407801853149675060612667592599431741517192411267340881592577605670765115271219277922764363199480403957697701019352367748141753364275178811667455872118875315911230607518943234955004998944141014997001980764388704701104608491813609755180419073898718798861112681085933509128352627773041764474380961660122778258066707028458794633792108907616129786064655161949659449081568867710931245443492188719682061615331748922081516005729179584470455599737948444291888829257389741829759615994161943356774336306217150353151748091511240740852401450167962321879104038793732046469936901801685626683163469866559421828748046690575206147463138258577709483808304079526434104101159810172069598536667191474121072086561618088578180018415564782720254847494983226477328217798189262497574115635053061075634896733825961278121353808954250150603295133237922675555155511665584121738162673659130299099167739960037841674071158378392546288502876646653017597427879308813615823898765282752866916138505198592956905863593279457193221812481715265472881922992983364042190509920930247832801624326909923569772580691626129458977302182674128278247709783043952775434274181824584051889915550028939964885870370330901237300521357882780517729825250224693900035507691451942909931189073256197640079596918439516490621892632162054827161407389247626713850550060277054608312396720263568536386263523520391249647056376351177532792832510379948159178847150305243704039199189666460321486378599075873102790242931128388692022814228853901190551145123922961351694551932530913868657769396519638824132088181056298445492927947776912258010105551498638666896443100475453725241085708781193403637731247038845501886906793953186453221752174715959932464861253721430026179129889960552677019957595815672034990550524289155058095494583369756582971534701480575299937070569107140589146803521502847176183814946670972008790147288401107802842497501993214890578063789977282806529928826634743697036862788396498021390093999097267883495577427186598177679155883057728236499296138703915870427798710832650831581381550034674046863657077144007552971397080573282273555953051420829043158750384308889420196385979264644809694607214409975199993048027689812977981388688023701301015362180496886197012249710316858700375090557903432248685710138399893557052225503394647199703954313183981600180229393036821648353968348495501273199043892686018166111490929964810730915846580892996186937121279658597900053737783136457306951123390215871139892881519948497911711483017226612510674674694609313452652849487452196391258129974122818381167329597326127260674599546606413191373272784918041134827418643924400827774003680612990748253103559613509297561466294402287413495887099623953076159001562371060696724049071998332952813301289898002881814803771821302606904269432104894431289589488070600450372923789821512764583224377377819841279094200799757588979248576606849849601331105404540139663783523575168042406855966739056604291353341835668501041510739000878616828243516406242554580919815736613481308984530776120493012943787237729666312143072411311167619854032987549815281856423091549316867819319658400913707882670919015033277102961499848957341490928024493593280960458714161373702519217169822708980263505384370576971272778161211749661701637303512719880865019264895313505612832686117702632065562547080420286712454202367688073759464825045392185364993527462610105143976671735509086422630514032219073283092281072513140417552449400650469993524863956272421899502342236356843486484069983637577110128505800716922293051402949265247015085068690940539269468048574444371959340379438413554604766021203456194342212668662150165269832573970160565604999247303672400186753400086750304930622435722856289873547132010846074513916872137804910829769410001166522830706875994085053625880340468882862978843586990702815896573671550767976610791672201660751790692704686158758979762235895362378179125431844955610473798151298443351671392150339758753461722061183510725426438331954285689739737799045579829665277173058491354212272574988839325162838703601246294024535383861767832055169477231570034555497169655428568476014748577695380456608604102321954668777194737350762210818331966110722149707651809040751118111295014239874802514526413015328129497553355355392698870796253156685252523392446914163493564704419386210884530049444444981761240196427696494988924522246860295351028726149157415380190013097335335817843798757084458416925055530690466015502809744633533286972883570559484597812208318717663565632998876802666435465182445408286775315091290009082049160496077612739325342639279174851694631490202958654487644985358078467878969091562226994365282720231782856908423820201507733981387940787788906722195149515576803074893984900178374507392878057811920706006762667522356252501846197332818316428307780421100356797643976772041937736748918382040296331352871568205134857923245280588284778030115569873420914443092360127635136709038076507481113018364578851302421518529835582646097744339462274252205903000916436332561510554743653274237277446385477140184754077160758689116907682041464718205559093837840861994661302430131800056041625770874012113252319813842118800553224727704729242674612481917605280777276877216730541372097903304500523024468487585310508707808427146175980227175000106131868398424472358969835634870718319268748474935461773711950315753642166552374866736089259823879031721006549498248624177112296606143596924401752365055560434697957428360180029598946126613873336524633840632097484387293713234716853451584976381708188916585123913013923548565036377318396841128575431620849496307106148132181532193045005367599040323793957078556033207438741893819625176475194786273864363337965292642054791160098113001977196818614237822635498238032901220168818100038347039975640738850856886876772373103172687699258071107323573432767966215765065577167205913523679160697765131784242711261400963041551324345656291707051657408444748416857706199839059456002896607487026344293102521393973806477254298539821415043827388658756358652987347082511704449620574245587405074879902945807345611692834249363061208507429237009658902472818321034775265738098764496986310874208979442520484241820569529154757501621156241608766461691280774971544901283771298928724249218704941750085554584217342876387376022026036004793460336166481598238717954606427737381573096459778818617468910954397304843760573270780083369557029012881882852270331433602750984294708237599772585213736001097396511762508382620241681059510658032713345270885638496706782223956326888314388370063599931631888166653535478019587591594174987464026684670485673400525141094927057059357055064276201155075551713338060464776206288128407409604703609977339465863797530467490258576362241747193710165888210882038335685537875460796771057613729441841699613160349503278525005646925175911533171570403314039753328913521615049529177103321599299045265716124334031919199954870562808770305041485086648482283018541223331248340461428188716507878323752967889851482269445865769613477712897508199917535313798483794658458630042721670956865432263947419961385459802143803724436246903110162749780026475336622861209011688652364112192515181335516615835709948127167731850325241618991938298246114203700473220165666200751429592446389900711178244536941347323961438910108178837507179223210666549538088345284068065170390194960801347523015992592710146942628855307740125046582402869734182519139629383274515997068456542482245144235845839443441033012833743742811576794111057689741524990152360595103945016090113974883236398434274198079666268529509467497778057097465813321725306729610179181774106368313962627582244162292473940414460665761052599760927677286103798410268407015149990410609444865344840599098668164524416552921315884617114066580184244103418456008225629240209795164903478918316184308506958700971767116469510648056731374785776047309580686484954264994930244261951896164893362620931182814852645501300056325837106230720988297958957924590650704545272964511496926894663121629474562264021357467225514337434758096650331206043066199254219481713062369383194056010898122459861637791632121841197500166274692116299834186514664632283013575285629282570352310851889875897949262121338319641213166126555901169501618010380338405791167592631702035291807438408613850062306382431333691851904747373942262772215498737157165687226040296357850531022985924561542675497483913629469731487661940208881647707711078399273222310770793693332028003388951250082363911923679756740415292077640871857530512000664154286200086306329325178094924624594676353434079787312347481896427245761982576791629921489888805970781777939196046691914465522930661501348903748644103663337217682987821143912992751509810580884538363177815404448772538229348587894109085778930747143718003660822988163006722804851410321592144671399555132706858148177656854390364084698074642287173607943599465923814480362859507804396852665024900311674658558023863840801148276613776584997597194832971587913164804709488817773023033130485360376503423594171346749506601803749440159878415463375144906029500666574693431468816772815701364640117086959760983445189887172616401764667498820648459227895988513721935462730690859350374337154330828155698537811280215377146773541835934567373022958703415643663890191500383128321809927242744493315791609306946234219196283868780349658095739998083569733312292330572431212444025046130525491536241844073738283014664948904125922053560602780717614474385100675911650374895142621347004949466727359690845818390716249403934057964207956688594013454480170099614262585457952196225866936692031986535264414850234135897177152642546206827507250578645907277413396897616380837057294518918559053435316475439381617605989988037963890268149085612763955019554015558037237138154858547873628986809647662144819201345759280285089370835810969093888268250101748940457167336584857378570936893712616487518617010548748154994865039168018361518789730858695500203254303717304062263183326955320696558495593116869278526597460092624548256152463454563146152302518487583982661585057272712281171779280490161297877040647687752373026131898743246918572887733149960678665493349496247468662446995643993339585336379035962538590799199770822672887762196354441602890351003050175230452794905918570541987370228956138100807410268110342458857657496924870832440251517493545319169951594685767426155720487033730338153502777073668804779357224901946725798578015586261574196043879995942502822048651147792727010135631921197658251907293692873534529910983428780726149834141713290231824829970509012797802559388823990808925290500114039036467777056621602157819239947238035673428630034879225426518747191838235538166491147318833480558828097438932179849757956873330799545322275110712120972680665319611737389517182202561126823651802275239260596015808032325960612202172568333112342645589296170063350054140955017569708953060237395777868157092336750444561456791663977995040735564807996503298115515678576114294596768220885025998279163031914007419038450613758710306296581408476564582376634478890329921427630866480014396828464898327104786625614540250548449659658572257328286411098320201867768269187399777296105144429244982856040782065275367884809154378617955357967529343408736278211584788547221894557134381345124567042416395555460140677768364689782471216047295816611243257221734943719278378479781346795085971928020693746976414592176582176463076102785139742317846322217657416150772723935868959421747723021273291547937964867499307990870657512926392624694320577754735508969802825172083952947042024597432621144433530465300461080954337367618593045877543001372855795153760356966974415518024352021601062361355621219625633759401780478127254013031207595964244525752419917330195132046484582307657477083189121250185595466611057698393213812414585973070898481515894809750893437346358875590139362387444778747949292187519841756822343796768269088846751726778407677812826416289917013736704427037105243975175378334996868888621539732353162810467844652955491391439495696670231086551073361595802744667335852690457236242060548621418422181202700799017707642581356499809098338436402912559159506813564113443297847791867054033355541621443653976057108976545947311495988109955561746602447244623951442764708626196397654151983681287261819261055274922839865565641725096092435764679842858060227527071553838800678177940688545867903699956627672484237656521092196149970296024947948176597139625180913599624682480590558713551637669441172027606833911031325295260625901976447265352054730437940755454605995885781392747194356556574032455507273660302481205281002475403081684541946474326865029585653837485140494970386233571044331489136383222018272656518677221879479457222459330062475563911152148232058683726870712209535880100183139360591584665413175530779318387108634766046976013613061169210663444480441188444765667091536081718638135234869229448525518143020888535406502023934914419686772375411092470341437605995428976809128806392165414621186201678030665837794926338780880100877918628319237549857224502192953255865717836229049937144415714233444147794635858408437919845821977945787085073853042863993316339916938122382899156424641794119114829219787449201054488930358112769712423309822683170261392842052437047365504192650784622666599894676712292072958131081888724082429127500594606327183804833868690202534872664234794830260805425333251680104143053383399445647915779045579806589828623293751193755495603591587598798674430007105542347832733761758595822115985640697077491547333124892325508287757059738833194296491307055001268778508612423096143104964181324824599651461239806273300594048882902391146659302585990874919280928590514333643828461950494861652322551904223572213289951818966571592249430077954379489433390217474639737429643732179526128545336052792125271828911347989289361362823376065262035258602683668759962429180062373950664952868987916734921779738756712250284834427498675896331729311366933287008725652240382892175883373318882779407865334408865173229120161725633740980412004954889416484479037189279635467863364629408424151732531004068145120645878971898461642392214272518854219098801869141940843948677538524848608807622003708443333385704102683772810623535523927207943625749909227754178293030835790245792663809639721556452952678063040229369425324846456576734145768541842708976522220521770304723071905785019322047193780019873087199450890293149675603909546133414733079547506327695240800551781160043459915363398809675488480973276688995477350006157916205597929796764675576835189937216416028911934084984339563352340113914220224024075166593691568999481119531303862878636987411849448106729753799721055234166672477590328049363710264033802780858546557799098607520512075451840902348955182696762523327721198857676769681335143671487895310535849623578743412531347162366528471085243409203271461336550955162550553230678778994221179753366186818936105046501991066280038720272991691453059649284096331916415739733140449396417752913553640217703147439033167960696312817787702595853784820318670739536368863114509451188733634038369972309703741950260846207862245640658662208171869020930356868594743472130377021510000902475118595048140986838842364067962397977923424083185043454573171337930175176329540482052914213273689258725895480208652847935279168814159052873527037521890022797482961643046580916873884711078834600116971650578864966747536839740369019208474453998178578325026294384144749976059255529521299283234694540659329085246929355941472368629901410536654738520866696887615956736368533262517640808857910108994239091668943652030153586207384207856520209902452336372369863319247648806554433112976376334220314268383241438273347697328989370935956685456202288421391150938288394697643206712611064743288162793723127473592569517165183250172920094849800593722741751246343443041861868938296016088170394122769008022783694992102235246109073150916457100157043843014312862187108530361627757104621268631201881281432390061954508944228315680071942043855898054336747052564024332629695197926496414608446435959544992013296115231522054840382809869274483157122066768075918969777726726943594080716839759040371705880314624505399736294308782282087475092837910307545802750694346398204381079510589548160094803880148344530803658112746890601537452443125283686027855461777690269121307862763682834211830858259059888583877749557872567144307696340275412112975872192631378818146013298130696171876038432067425111425315157436878259865402715211892660867914627195125362882793583556827300512719522575642353414336727734539705815118188916890402159700705107842042557052164669750642396327659554395433644429974461123024004710431922968753078054015890730901158293738945834883431099850217608276553620679781681935852527846906621520007398812512854055512993420056587586801839513152746575667715763512752052574951160105426356267639598673048826799361359351852462940159266382705122493770037077831087335446987141018546197030929483814909982790215319845216522272068057283512398786435317434780306497894365087887154073944767466499166491296073657590942306538853301487700293794134292165455460432685747972009402881988278312237985573148917096788847315376423140182196368259907364077983190633103539787088584033004145267917624510352996575995057377169238453498387829187738878552898550290659634746759590793467109553164551620307366226461371968820572470578783013264485677239635565951800045309021741653953868894452284332526833145629454309584565116781626231377857229006188560238442977998522547198553181285112757080044875170050414157403733337794938263130269200209417163514653781809040387776912865025601566966615926054065412024968976225425765560746674061136268343665047852434491005937395318123141621208952762114031089828051056379225090837007264154339954478446308741026843945040754237594346016339221023598499565350084761912912680615633632580346003859140662805973835213575129273017278333831326761324322429809986004639623727763179035578841710124288497321447214450550840530824843983948502054098042145398821319793541168292661032600020935502069095577558945455620310534122882437059941074029135866663600704681878592647777477425854539759559255868525372045539344570705570000005597645795812625883219629010669660709044910223714677368521984327958887652458353535338678465219597865792298982714009457927940653775180392299994016703271355658871024391452923756438582270464366244372816994785899913260376323310832947749210493175211312937161667474998274929680053439837594599494254026782030582356177551183858960089698771076317463701455394320526882942354195982261843660131070266678658229752589959934885832335097472521771960781942881968805654408561979942465246330762230487982021581061376619337157429366730341233599324235541177086911942900161394141894880792880050658723199419566757280559997894118976804599741990606701286840966181599296942264490905387023622002138310573160768291069982566120289273767867968600888919252613684363429637835842967423765525971401340927789480498881226745674052364873498801090084811828730034752522710571830272796409464359431856274351288599321539644680375964007930250851176982875433523641413741574853935587754304879480632112083307623078767928084004071915654368862078545573835998785357773709897116808074496892763495531311147691192502694407152334742952832948053318676781784365108693093267210212513783826402916544837244325764668849098834566566363300499785045272295494412931308243935388976940152588018873182592473033160530644880894090391836830592711168820242908948418789405069429502231479015946476780546203991775469418315527246364952194033452609513609247830960367524877337640525198242395909683445434172048581184177212563932759557335128616260616625958350541512893948053975919972488764642745259641494392970655135238582937717289273679134951880760007741610417769666351072480152066670619120801599408701127342176712420937483421570979779167654586009262690263401540296299649174551768860021865666099218685967558256642165051777857078171265658150665543434923121182163459620579237841761369717908475177713171217173767253368856725060482981057224619680810948628882057779137134825309793004155145283814346207513904262366667434615388519019726708016163542782456186963900339391935666965492877356160675363675573647070696674174331421531270006958239550231466701970866384221415985787408276060401549958544417795437636973063377342065360497922831015713651728273750232958022440314053670144966659183858951608406540237582083889231777967161389768421273003363587872161783670581833513788812806528445996007227377663868610571428803903542033911234422080729149418730672524413816685237529713519753101326114520763777360862799731647054589166645120892157670555987950187356130727910900757392151884050899524505369042410307448350743299402223326514097561201707713000881232588811977122368872820787964016119347363631630855077648710641144087308451051351487547155261401243492893784704281338618132776471835382142609309490293467460011341906772017381674991109360181176072889170307359625746901067227937511368040451445423693740748116468762382837167332753031054549597637347708181456472565971642830671886293755580019757721194723567772594689646934308628634198798325841338296255747583942247393749528131250969399686948897034480607699693418539382432875327092223226316807510003608748748330374582924121440617007859670429882952989475165319372236525707997669074518248213109197425746021750652440716468693406780860467972819866363682970935444584253918254241664121744827785509117052295155544547398137912854470512260104129554878018087167763082327327733070421992481953810633042765283571983986411541811423906778094794342175715179971417996470977370919407776236708128945249802606505331670527226448056416238090849556773819372771243487481397081771844371705370391859127892891893011031140204022683687674233876445850521348638809289670225478655821411574197633088606893275637821853291840163913631866958968262718712210804365912359077872931025907835757464540363963229513540836523418944448132338841328251181335305233223365032944639355633875193217874560599949814049960029498324699414272002285326482908969598737113806279441103824411675027760646413192778864959939692628745337820355522844778408113379809330182704584362011523783132350879241107612601109503589801062385420610237395515786765043235868069415544067914541872766069106758738476447280399355491646047679018982893493275774599161758575180714512881716026497702610016073501373831050659956466014039839393300699526773252767878286381992498551867383432803782621221320798756375522400432752605621366349766676179961232264606598373223380352226627859013349076805532251524066927730182975044594139815987419946658721130748281789932916738658548606302228838754619408410614324432962027904367758837862950916550134819384032830750600662175155692412363346000337315809067828605585062347609507060902556672595754688766547855780221138010169489051074382150412498043483167960525269643747379963026646652386138336805537913303716212827037226421494528818510927752246834593184160022618054019335360871900931720158499501590846685679455709484405104447772497767342842448133727687725911802169373018434667034121485190904442360592142569355852686171896817467061223907602158400118294962384858127031446035592660069084332191251633283706622756128191986393209481566934535692219189484715377188364546210345920439642885496915579681023629130038056373642361993525753357767871757826567405558004976898083175954197379925636722220810965974460086733130064957458422764129859222525279386336189720158134785925957414529152507995139420213105267436386929480096013674257592907652712186580044334259711846729851436505530857254512178192820872122226603930935640885829477836019159129096583264699661527771681512227803951675719950167979304980675140290807063852801963769565465077564181390068696110561562967289158682789367590476975811022761749139097042222497379518365959152525450663164765996991340212351367057564894984672545595059230498610480229198714695099948744666099009027199688064022721743212512913064420235251982211575962411708777468863900212523610250268046442866312821923185553401876223852197331595009763739802984602919752078413728909387162133011942323852669156689259364033015001777741670939665644711169401442429936875850191582811641654595624545359638366977099057046376440708380739537506465370207922576214048831135627805171140451248436725507963625385121246006357777863973756508558253317700957681983986690222024624416087064111291673431426145048327394726633240447057513217776321928947760571636273829225677850768746449301504096776914337041953882554899443861704877114577144828871163787715348685698164340261939263773934034532079302775266937645324117929331484833107817608382370186609102766347783592256014356372517487867187150377580937220403191758517668495616771760058043729106567452473903800225780142290792257723380539519602432425316420468231161069556602377412896915719267977907857295950132831352536517195555376379666824599556167577399992920717781802119793529498941816512340141409634956188838295730164401466979160439522865800084897289440834809056821407490389461404519561015843993884320148530951322203236341167898201775864530953938575931734189500690448544109603839122746452573822800134021857213991944500098037762107304913255375738288895551846730362582751369074633871700190321324453375080300767635034502773249710679154025374782973475050297998095454734527361746090258744874295262734273420946204779233512002574506228119017170480938939702079155889261856256581009144214691520324536876585572057090582917041199848670811663564568627603435142758276187294053344892385001556029690769842112870906743790787907387968709681974134907261971772164581030238902038982426347106198908915467766042934011375849347829833859666182047868366535862941533961505822788042875782499984951082614370565624595532984169985456233649779716096915129866711804192524433266682692928105530682231426714290599919267867139858819913559744428641252494657093366617026086187147844415309160587566145341904426878063764987449205420437167320313974551537448067740967615770644210858573634166642567699231978151525858174008259927851396404986571985099213652279745608244528458916151388940514751565440044054631920596609929725180886556208888839843487068861238369318907207860663736834560793185436880587840957024090742369767812262876463306639710951105654818760613220854826754207336514532914005411548291988680110729954572804092156377793113861854220661609226971824183775290843768224988147842782497340397146243550839035479079066947518868876191270455746829465532983768891480810158408861693834112526679647168820446697691753395964778056060058736187401231743507669559189953478736813745111927261749153820521105182930467655534434882634772170025374609223379866385586318409509586437521629674195509431925470054202966986052367715497641050219956439925383321640430740727166323501435168059168149704201797383837301613469752776634969919342233795505454682639788534709632875455425098899283239564361228754249715962500538843259606842139327961191700632584408822137884746981292232354622497971918046479335522187042146889317553622241348019772631136464274870293948736054010045472521130531930038282179146059642094276938386086962005204267933098429061873704200243225289879558696813381936551264312210464979911698730389834182329759729393918122869010734203391992461923911995741633571309042488591254104965271403285748126175305325062004889328840005903415556764335006536048883490920266887060657637472079993691483304932816381084646602219886115454890948375512991868486891423734580847920358641053374846703210406299906277423335633047341073437436073981022506093472856040252582516961529202679888438634625984924110042526235316520223241967518176287372760237197714220153180233449845127313474600419989024726834263195067528484012477097712186276151736766168929086006040375181730896984658784269097614891189935581970601857028913625174070415800050384811716577617366337701293629738717013231526444679966286324604550825385490494293279197109801515081969060281072620742392591518968560765923654722171889125606645763994381280731803030104370589150392054998545529778638099262558042917768736629972490390827619124086556898531896913465994987263602473437428329570693203456168171071846978913559617495906193783842167708185279042908625743098583009120679002981896217072992002454883494306135332561618528351380617587348502889009181709968824170194461513653343087008279548922805921222419951624784503793432647804475970215173974049759178138377207776638578281699877592497302995447408879684226930900241994734205034924661838218242660372246598699941592565650259064635111213663616310124355709140520537203630969441307615805875056767662800087156685119156117231518756082817837579757651351254954147658015653156068473818379764238010362344560398136095024766636931863434416694116907264715812449975544448447803607273853344239605310428521021755027780761103075807791950702246848342257131172844000269248490898446040396191690238100715397040424509240803147548495125106132477222640833563292808404060613815637068180873623605086320367559739220469181329350959749857534949335168332574963285731925835544062022592277664569580987249386463981701496413307345454544913467456381865891429147980303630960193041958813058376811886596026702815761880944745524920743370209062039278003170471293574866485255991612085005751367010968030862159803172617260164857933720869874978436056371671199245872716804927963036711562328878755093512131900848466221093902086611187522096056731067600428322299431206353582464528844436086836771909927302049321207073363839803268773127887912226801850077158420872187843727973167409961050930750294205622945261946912122653391847694639011188915813401815382336787000569709206841923463444384964434490996406448075142850356654881794681758121574889433802284615014036929574940796322204460517014283581027057155910571436046691763857143726104525734774228892704776002421767538698069258738118685067781685888965052272708847519384067390550610910818526392108964617249159466992341435201826916673220749205884699440928532205674767584544640388634048269994771002462682909398172474316158161149434656040996164493854714641291234132800608532663420456618251310228810209645315966689483781483085491248627958009158299017863582510236447069840832664712201918847158970005875108481912585868870569864037732096726236601759194614215293143299399595658006638384240870060196354236625099675822489857985149288559250436786495949168297173126723511390192824023571740709050108013220683395250712694663852181712164698902659367708612616440180826503650119233641402552860764361492487454020984238722616274179966520837335975326419291699849882968177364670539086812906011864282651962263050713561628717597266430077776209162014549879744930301184740014211461510558821864346158623220837567744808085514122429608215394659601078583838651188690792482271885514664633346193830218372798084018104585990971825120732937400696248789757236118553837818888385393498721883366677811243907931657860045918936542048192522557264023520728368230566537532619439069854102170083086506009555835377533445127734812332801812940540262322561234048454898917459871823396007099847243289346756548788699113734389331889223304555333665262717982524342421631158372815843414946747176465102588331899497598501760078039066764462942300623222332179471508087023175836713742573017136467938864481092838714224570934727257317888612749579847696074613799072486396907658373383144003228209897855117319401130693652674624490100602792107164538521663453006463343574583372339462866864697613655857375236675056738533175521288287582087977070956430959643748898473928369688388058369438932898368590535411237092603715604604501287971011401664817731468885624939741860175399023922887479618330373158772196083815521152645641805559584214299671287345661044591260696162182955182349655945699425783431896035940877046088294138291453849300345446376311850902526729808514628950739212101712058166968997591840880439180491594777695061942723942207570870695157642456288893417115281096163206152619951189159954032409520830931495047101783680061414591615676219875736923653450302718362878679808160431226310298022339255018494806786785174017814822483848883772367357864191424319003130337253065351912854256354500224112612456326654872854471667368582111662018107617219484616977429336266755336678094196189056162577776833680183218415029181128702010115798901792415483511934329101414734633079281531469935462933040345300145361744417912648812066877026680554538917522501260867743718335357495826793756125088942075450437342031450990488938841307760208582676785091762131579250749794031978042384792512158620803049025797762886134249386945586171235811929941683669356817281781121042302646039456879603751756626034177876085140469267882173685742152486718533347209216447086398942405251939056911689626309675397278793203538205183662269211986739096154051535469935828983155953371729310012749941035469521906385591567108893401375334294923242624766943462374366339049729109978642914994752759548674241588897331846770585042480456295138377587776645916507529888566802794118015549181918468454928116629328617902122567688970175273120273867823859981892777234539424174023520272434688467788111256708366514595665854584138163639461476446409332986591008759074390425962198939238537433255997298189526650165458640734587402937273669498705510883773706124711722063667263134802300978230874097308373063727977016123669623190027418987854451806462429889154845409331130313697008382926903328718246682761257980332341280311921593121955534854236777989916860988761258992405365987384000264316610239040614617918790591148852264286758550872410168168500795965780060159082041761094992226766229840130222075934017164998844867244052839274644383053049846960206331956820812377398796390865735643371288937239495254760740068697311399563927841319306344850862748991801753333062934543100183766342622500537704653184357902182730845913875515148721388077804377016776105779212858582820109571855783761607831732403677542913146468247186841120828772500226624884327001707852367265659811543312938213389302250797300635435331881207944580988003416749821895339654948181977323078190293262948329943426323216274775104058389733511392790842308163582301617708754503289627486081742521176599919334342290511791709129327679394058177412494431905988113694930647158140501519754055385520800472093241348885974174554622373488565092838498674450331670916824890521404750458329905963942252072102196440673796879851133216205295766633337047457937986217111519017253863881399992459429886950030450162338271000364176913673020340771944981429255813273333588716741553035636861379162008364837098579764944227821709673534559821851217371782291139873998185955197820260432233687181905367444873269949859944177113638214295613840705998633744131226125477561657234381716555633203544620923357718121699800921121780868052267253212457365720950252239040463546101970903189153861697783839404697042428391869357129867780851550005693839020622187385552090550314987180342943166138461445026728434823292803450350087420947372529315559202760127161283843961625070834973569253342042907799831660749364764276460775601338791463312944284928003505209044255899958975405721168620046466835437604242030574366459303864362562527789418676759874444829971595880263364041860867273530331120339154607566036390652149457077265765153963599869823575199284848462600128285176654279182818674247537578252571210510442558619297534420394844640305468071887093056242614380842888509937792838411684841443727166354641871499720048629126100186658580655866600299528550412893559129588368012469089141417052314876966200667665172687392837128297882223400355738371196848485559222634846343157015109131123076647103288312517501849602685725336052050755915155659342249000569211413885134705548916327294340199143527705767998228919743966587168654095097556316266912547944164385874266128288513703880863465224745268124382873600783255754807899399801002758827453916746753893924581137158981402176246990744101276591772513859348039029597722997250815110455915966543473470481961336920860399170868861978746575608975079033064622413018983161586086311605695495733261849514474466339084474922243790806049135207238230773776627342565836116541995890169611158336685203857039071096174579396758999023413857623997170718710937138954338159299939193575360223769785109299355754823402258667006911879443826806132822193585438589365328606942250983596365721925611321662537695072986029927889447079951986840954181477180224066704218314028407085900722882894469376744635555069165422353214886835996669955239012872874286737654273825308772845212191316376407183643936987347747697917528776414804596166660561054716848487806352530717723611179526170485627975224092768525084247192070500122276442793334986468460481907971541633480691054874459088834812640783479127408937657438381135944265549007253989307383725216655821458217915889514970954571120295350504057165097267944935333756128434727379327457460981527627837352336876019526877481148784639052322448996721172939085888683043806128537812077309546072489117152543912645491302508009600451431780342235116942690395246087011833194636721162572411047286116652283751471259038024775960525827026044854635844419203330613997028014324614133526444588412197974742048003090787860796901192480644626256459270019383698996062357924012354997355792981240951915784191358826159999954263279019636171850173215523086053225701375085281804021375867507135089834985036237699335222049113958861288141973849354388141800663133957833964751302999195562479415874779150434474413714206278093243341129924436463575767503281561476849220709469373125276785408981491922035864851156945142073341937278858458442364935565913714359535339376778152385852053894988312744471293853186609615051299110071667806407983723612481071059990523310311817506755776957824644278823857427160234263229389509390173496182699619302189776149843280795436112878869790276279415573379795912428547522699723276656139104073613742975729889494376848186744766437859377006632362903562215741812294555449432002104477368243891106623731811410420206332026249684918196252123020107465946993616193879803892284527046403246747305312572726730203039238173826768962875828919060313791745687563869409978534421012454925161555570489526891372237415054101833328555268819284269903242425164492569969489043307786852767660045988708659958139753907445873532675414375574275688834365826500735895875271678752126752145048442083567235217088187815793490960800133482544201881905793307634447104097335868874831476757592990038429759940927541148776115246344637515186483125297766575191702407668315493068087277337237249818766208613572317511753307547734238401668171717954728313991205490344672022152358418183587190756663904576218883502536338399639821086149627451209296151929276624131685594858560006716642455060557128900695116911706536892018252430537679032620704596952181125558526210663747963375667649240321002715456780245969429858949084808726149976333597534583569130884270366739410392162129377155440610128992133063189272686574996503250382283402301637512757632662652330910382539183904406449373822818458728184728994152130147547936639086313837922192852699704053685293256403949956156926139850273632888834126974545749853594381130401115104158384799431576389595641507256116731798962574407541097506087565639148558128736506939154292978950203002333249898001837749783690347413265896235088793299736214071394996002162360754140286676777315325516612592520821298854625908209536562608635505244694133859733530783009553819120823175028326221512187345852771955968098859605998702926054856290470097986544202665915772719343272168366571166275372917486858281038160303642674403428060577009457913566808922132936861123458868868682673754638787358710287528222097044912955323114770383008043176827523968784108415520860358775409227381118951007551464034291656371298643734071521695577205947103470948202398177332766637638775337162065107171265963358220984115003437298180378157676684611304390318719574378733098514450128330827937506678639462256699266511340954379802018382720811714525526453599234663163562252740826455767391495955963748074349556619770014415380246747335679354818839587678673876056857935294951545167545056314590400329246403715023771108972755489680228911140155978989191449731923921032760279294079970792182167589816254170986987689470982218366997259165509023374970953605095097888846324544015878548215295696692788979468795020075089381203523085270054253823952134599417401171035409350139865031008829146889120935563334036042539816416122678157419073276814151532911310120108486396929127334150106458875610308829971104421920782929982437718147207519467955420871803481721666085440945681325853289831331649317145886180073820915148326204114323170555861236564984922011006101488594780666662926685799464783908729953085082579109847514352147125141540499148773164627107806730689127224514336098891743272731826746117691774610668545151849622126380372267528098347346184719540672482100683183671792233832743623084262680068365352427779745551041857651205025375044973583108753901986044423176368919474395544943717586949833590855169245657487322817532367838414936585885688854657007037617684132326366702809632146431931373323161553322569651184807244345246359349172627270450785218634181462918111040636137547316835611089967205986938964294946596477852370776216079819890657060278011335328471551052523591836034299702147632952184071625914669647330801503880422843958279360150245014909417457375465761007615157939305901024081392944096299717637625281778784555722589580414128141181121240392128410833615507465241683744433181440161554687506037349182757048523945663275279527954695110113642146478705597013602134766552645754858700743714174321832254012298498197456481102110618684076153589252348932208821527472421984706443381967082169421824944214834862463239264016243613097984548651061101448949272835125878313042177056700420842311255760354853194188852822828387473794279818821574504827799936264765930449254554133747786654459080196507166589207154996399279591991319151971553525851562298718988725847222783851997376685606485838644258361676218475682994842812596536015564112079344318462418390365462380205691414484641564053574767008259859797630341046384623365146995317421849416374239362809283901973845888870440996310182995212644158843686347310024683827188084976435436764950054544280662889290930079270392797899485236640053502753111107311438172818486973973105610411868686415851725405412170903869182790175056505580643169027842285672138723380899407271735483957077225621517779151574906604393957187363032889002757188482724740497302532767597769011578573998634844003164772226341955264503228443742127484330188704382072977463147690172740933976140043589302785160223364002683715193104400452685760235446593208533937050638994534625105899934789887383093511676882923857345919586220646334550317290455733665807190605134566304299596099816837942992850145740597448020276077229078077565977620072877649960851901451885442811045472076173778786985286053097505278951418518997936958512453778244192301186762018423596285668167539938278177162392834537149294489488179978201288441370582930038522142991737465775046826707182708185060023442684875005984131699215748278503632165363748369348209295370832339752526813795827871618184865156685165370344466800174159835368714409788990441869203807460010276352074918700817454298036350497080846814883059576049878324433366314627904062025146677460422670335253481184616015157724516440913574925190984578722653008760932713315988223478225634074415914996148143831019817566408594749517980340653894440399763251551004604745182276634771669516801511857836920614973625291891436697399020032790904108432466721375896021538435231214201447895678292504470651489523144610122476854055700283051113773097056404008696707366824001332838056638090078609059710639957007072091111135229706605889697197378480068988563639147236043541194790164703435378186184276326729764455817814630949144594139047908980058680873685772553662007761213936223740339627645835956941873391515957427983447740855606882226294424932701899458796190906407626486834245678280770100791440225744577543015904824665824859220457995206198545637192598378363805857735233357524076338890273682130897301987182332507618872627009919013604295334564627730552965222532391351777683016256247361403740638701564097658146789374018466115881152123773964944790937529967177540844107584388790417330075197644819655377202348356667389485700738379531364499861444477772992815611657506623785127221587600113992890041611469021675598259748987772168406854290639318540766648866077966974466353374703835610687282155025748612965411689537894159281538494681788118889841035351563416287530731785092117914966892479926856523486394993711378745425734205782022309705059712504877981651656054339713322449458043048313953463997017579457859059401815208314551276653654759818393824714334435962635049919249195001313292354140709480972883737905172820808602174543722017009949400535608709736538293824788208452683231362536854699483602693737832588652356282672658316654495857080652013641454664813003526818219941530225271517846138406468432440227457276365679167826509251742046476950373292551405629097442231639377491450439486620763268064692950815574280163089341784373408894227065353486232133580688532683100278438941833687637271141278457127740903212777916520330593795778181147262391996275840900515761234183544984429751358051174951669853189218413223200863622946446026958395394167213049315921399693494557707610188835571374260962009547133653367688661902997025291793959721735379690511359256302221812361992324670738244278282076994962419018987177877999780969065068184488151247293173683217181869834760204319762619961497589791050239550304591058479737586113357891910920848368706567121513708956970395320330545472810902216373103761498356757457998106592884415317801400465901041556485015054188599984957029347793589642770358911136736553794442927859393298501087939223804038284209451027942346707440638215882923918221687561474932747260295428626670752749903383578890976192790912317915797089887761804608172223134495496562962594525998202476731646783737282566142450126500987424874849971146611587661040943518337046909770355665431416445474007997911988194598435238115633052153062317249518500311247536566375079817980604804938555025057738564579394077818938964387485168215686088672000052533745935466888756937646588351914966030802822267115986354623909845674764693121458748833508906418207420659590737394818348049206465102046604109682587674826331497297674621586808685023683749745665613975884949177545581543042226052110965405902361402598082825765348670989683110893079062433971250472797837138248933102279434484883155332978739667120668728499182015222547350431605364758945112588503941967400092264570460359911989450724078253779938370655525866957020255830024697403078974382686059048751998865577154521496229982391163481593707198286867909491424835563909635232036043224365875261115875008219595562647716192000837529790348344650566564602446561426782634469723022943286988837600737723464102798032462296883413408591724304198834260534120965571787401838157665032498535084891476352087517824027811467038343001952540053191235231394355525891778155857340330937031799274011089749805893808269130531904748451499254980676923812658147344148616324549464987750373386022952319112530246328950933844145046950005026135939543974369713100739047226617810460773563263079171740418087487903091171399092692883773826370679359936558916406351976825088846096899470796053601172088177547657424314372638894866153637051447573121547750304847141923786707049313955290890045293310827934535792191265785794426491475753889329722864759193611732134165948791534829736151200404621918931386590535371808694139898537916121889278410042055363074432817879966979097750855210870201148581245146445116890789265071636163100431751158888871290206823857040225529654604918269016946298971530392941373855862020157800710474947676375402664645346298788226605719650745268814387562021599486772003599335605826627826440915715801597600209475037393721233474394217032657738961078331729183716643081154890439578241829019686271263799534325243303596260654462339042733682338040935611515907367291525896060848851246244793022023620609013104702130188876580864374817133682052425306864948393431540713174237795173587210194055125377011839096712088284606780275823111471089785895449394972606596999862710329565858179463209469653096509457748379154628929640592151393223399026164900257629473193769899996912974953057869754641867768304948434129372322530549627960160243682446901915210090642611025823705272485038804634216118195331246610875651210096860974873496401569221307322612442740488355200700375292889062352275593529638802496779150642223221915985877511579752585224241865088967892917028242425898650331266465448698205873082054363734913325622562145629627488952984584511908253729835723150718912897799268878136366821900011670456336095604989410758376965377667242155799556590263242785975349929942350661338784262823506556831647759214260283947910452655888222804912978150565526374480510064989461163315036503019557786715109709950866222761261111046459157973798750425955945439390067038563310636216785752883517331135307502521409834850494382774638575731981149879189843124949516833470740651409247901873602197152545392376364365591835076718387318193188384607902402724909871612865589248095963775075026661859613688165422634553312528026974740931749844768153611585423094810386881946051875040348844985283521038076798371273288915912410164594238916532346060911216334427083390382127268092593038422945489082998324149258368220707436953401862860400282772322149889419437978976600965519593907836964257467124152361108188975999010075675291127983346820868066780764862891435297280282621335400938519103694497870626616846650607757882023025131627713638639723463741760837492797136007918717858090652295334339652754919724000515689206386767749757544760614780524542246119323228417573711912484002400562209019936594723150437465550846424732926785490367531766181558639111807805158050972551012494382988657429460037538509843993602695976691796299999453377111629934884893560692935636800446326239003188707960993055101755013317373443937719864071038968796260591128269189639134124974808522825537531673407818099809384526426701246704403819643607456695324634287057096391257883697186692003970659916449494726354507199160136268733549321235000116787730343749566253136779086828570845431570793165957165489491363922803599869235719459656521212890332997939876868763367838295040095006120486712838949718437019730216489318234132764417600588006030527553011214328809675946202373460607460631148698050477806957283114014158641156180052857717715844632354711223695127882181048881348837857751758322968322509279901132328919377674055946309095994692003228916574876186329661460540035943544370527226933848446350871263516690233777110146617722080205058258580591764446106442298154743486293724093230124093132565546225729780549166185199396732171090735804133634467275134443610999399867955930553918110635734298334136464852693465579908688384232686332078647868689828296596431910527030975513121569411258047681561111614006824809820073801435783404020096009877035603145324904257974178269436827640709265120701832278724625121276420080706272808062948390676892025418447564660093817817981274399020768821108701501787456768390917589833994355916631734175380586904870356572640350926638944745985979221156783186274729288208176310783610127792112820464128564870367104611300156539513535709237708416910520853302309201484418096384454065145189387736693467496216699808227224120865320699101477851993157723584437557100220752297213935787069954314664897913666228035090891375268024755581372717210788651308484402680845796733730866963211552561999285736592374505037714856059473346405737133826351735095880856657152730523050968241669541658439851448107192502868872559450212555655294362803729326772494416189021103059318724158668530810309038767568988599574592989437063629731597259490268579573526445603781658498716272595700440677204549128330172878372292784105096141484539394491961796330020367021775167135559355350705295730818656894069951427985212754831399107580302437858639810795372278356423709329681440222548212913729184036854423292969952816406906767240805139057882274654363253615923539694984926698119682044403107874006149362765650886559377396951155462326034962482465789638875701236726748401419911909010950154437752746415798636784109395769280882240409597520427233947791184659877164819328913399539948678876994812099569333177934818386809533372626816831308515878162178033674183297747158237985701860860986551845453458397135786556048335597199000523412404925642872292364506604245785666548035650823360683771170201284639499964868543476347488717326441231865858316019980940129096555231424852535713859664299255942882458820970123274387076565830293300502759942371944640055219212202372029973148566012411343109640784630572978666358995748965844248876829056481621762251307774564266373837999629625141035737202788673773116383037780366300107333340040170704857179591976615879506112869966333850151879599162302827913629881725699344675377816805337855056023379225606607607504766132062385444869939483091448094966435863174305554627558816489859952801219251952253921108123603062762976110803225419424511659781867335566073711257453914991145142487123448909478407578821459446476895446573900605758800158192074988925678161385715886782692346701039811598803595183426954267172661052303109506709118791889136795199363823263447108047592633696478083938065131021343871719160082168289614768800623755976906966712853922317472426071551721859263830764833099815275889648434110340329139072401242472458037907555359014247674943348812302322218793470358690404203119579489948518442953151315042230694873495176963506514005002385366981968935117601884620647587666884371938921441086046540531766976838641833022157578620738706889334707797147398748140735299593861395457219171496207563684759690056308917901979795895800397767080931579264271027470398038002714015842861571740216886321656615251749682168217738614949747917940909550499762112023492797917813913723357595090612628623349332140255094347589413735367526983303113166833416452968387391796313122002170524459740804631490193335138573381649034009793535683982261360237316524488686078596501185890167528749181762798578460123829661962862566849391564093800681251102211655093747444094138176095511846605675338347664090937935851667295560371972291679930784130791591529949808851118717158253342969290676745591332150055917051407502913411996792080789430263724006024186900050176352598557894277957193711192977805246448982131392226367346565189169615473696578512004305561663958430926551179129745953699447713802602285910910497954853676344827686666003307105190043618342162574479983402192381649736542061317399590615719030730401114072603761450301488730475863118898290446881150239831811181074979513975419567024367868310792376494004041054485670478018163917201584802280696983737964938306525271993148830201704594691173868079524097909046204718430191907151576244515959025088685970142077515339895909980132332521627697762517475692314211368912543568135636778984595270536162297128898946872828410635179595750852163246096044426473818281705589568807719591167354611866074716153114393569065285368274191986391161683636345156639766806459268119995292529677860635523730318892648665322970457681124263253411218628779472538666020251108244749949728341952687943782948110824233991978113589453376355655444635205141357424128894113216003379270624812701457851121247703003932634470021987143898561939111059116035208698311133619681494261493893720732220595489302391492588583362353954119868771699547192531045054260919833107191477141519672764255313036701854497134362987043756355815215302117424075290689476837056807525001387785715516091647355982119934694666601684684935753096426065017400366597010954246825950621619821294462633194538626671326314782255128399682245322507125403224642692915924147792845012162062369533348721604187069435416725896948077697923296847382280823287586077124252521309857664946581692037761318649425113559250000683031238323141495764522172381628458860032070997861382063207045391988413377044991606330187810076512719453042939095571285352658010091418811312369026710027875823750959090564387362256823482506813759473818700198980265835218266334787084311444796451228384374473429453907288877929582911371541003688916352187923397416488918172973581031497895381726093823889354530926412163329331051532281306515952176424556390407161187828578432230069540217793009244818408057029698042693014456663086851493826304908452428250741839494150051685146529338688585524099002658907425857139671633486936318846490866145953697807349310970438371303543525676780261658153279798588427477665726382337221198718805569981343420915723705052589402071277498855676759738146595415121342733488382750064629197315468542750102715158923426731752569002265894501223939086274799432514226162941936758770889637663083391013129737804391534763695193584231751703082472595100887291005735335303927240624649787337753983837362444647237141661798422241172100742208664105897566962878021099965333003614470076659543844000141412756319485194026188900789896730296552556881709622327510153232581943839468239752756378791899102905424587299893644074602292461262282196425923781527773163164657686121701616422955465603924782640434328207242298991177656842952605150524341351594951705295736016571412008987011803817297504462584927118677305840475523900442609878856580158335732005457217688887351404392798710313865682529652348265780777535025371491238698905836203303717430858664333956441937975338912214535014756729395521980948056915510767762126157193937575122215464270195880502170415979778271606462540028179293020419714518898308914303617976178422911053873937625525789282930559514748940900368635365873239079094276576983089284169778050513302507204222205047905246249123435669234275408425887647436341700068788116587967581671763193899803252449408707357587332092903392879988544120647429097032268474605523655943389729112881930048066797339706099126198696379514607820756658659341586973987069412598569286090896414178701853396826539434920403424039034866864904611601424358592570961349338624032793778567180813265891211088130034311409624976015922010255250463012426961167311752160905531263256784442233718313433491298744695160367893390797256025732476836910948366326926468704466532685740669313446046203406623135274398260784449431001551547985509374132371613810511916567957180723028664053889081120284990765503528881082286090033280863798623896730259808785718252664710113911058238217864531110097236249890472814845151146358305589624188823854799452995736530522943593224057999758608238390315530659674018639885644779852020610703348257847163908191307890031839091379779601634647218389984189648168308116678480254770888985705584365380765618405138291921922173192553019057441702274614310545849945128119980693898494517688044680206828734226422549046291149320141692769555024106119434660202113893673652050760618527061315574460911438263878189747350197326317178390042193496720854226560435722290147817811996201352672733620433860014728316765802077829526593392465113026493330944010988357777587290517211781255629236074521868716700371786921763158440678332372356337681893125681127926500778000480591060677976775678155352742246987753382652290622075243027980097642695960757021573023581713722226806659041898664069269613140933234175435887379640515236420497241752139134854825832783041507955426828754570526514719560489424198321808024592275923832917042428696288265735805199417210333528442340743749204872241642467940763054435017146742867810639156350436747684469548602671327495516240779178131870686575278549710636696273564107168804779149591441616635823601518580161669485048039492573785295319847448040018964995523823552783852050641506555251811687133017339241747329855941428486327720674659124665281819924024187641318178216194669021719532167673096541871518143576117761390684910862152570618121695879303119197782111988250827580914044870684592837464542300830443935307436724108660692136036322513180582983619880034219788755037227595511356082331745472876260500661469525966746869262074626032897919961503582124212406035432096421430009934186149928247619599472517332694688130893610558654544369916782584626560613547300088782048837533562032309717053336337094079300546073871068819594357737629371443641682160005917908932121550164092824528074036770651159273355431553653264319718151203851241653520808520997581634984020090992240355415584940595302821515712638188284856803441789968616481200667339318489895430239608129190002385383972524718756844734734681633676821131392079483485341803589356441139112987838787727407454291907017053440349301671609792654308721152569089683914822003956089570721374414952795023330119556938470502013666468953303104667640084452533272269757944554533699188353351863501622708611249861073679145108989016860610329139099364184114304015907462726644391707853100912703442207152012689455940582470601978623329496758655228016762560933448343491614179856152900020458032460586219000580352264507820075326337381390623400490948354759728577858759286866899110214541093384255468061827605689725168968149426938300756145504619442511618012904067805485354425573586600801155975593844522599172103817980309061431760595349186354888833811113020156761030730666800565563234433568651310068019177214479871719780091074968777870682873571189733041355485726690309023545628261023507863829035716189111100801102660191096809475823934483338504707667595429912810581634828647445631354669543707129914589491550245658074509823925548531180031247352551177763385140842137078473318891409296230423783056165382204271089023592058299941139580195458662789336333443702585420543810152747002867267198106162564068685132861451626294170423234496855421740530991678190292969447092283277240963896379802136322353482706524466376165834313902714016953863641529601492777222404007243015783571372553994737163624116068519945681635197717216039733094322283356027612316767279445216457169502184453004024720663841486535741162146743627015168262081289641099402506554145984327737517534206408568537414300889458910662798666381373027186778138361079953897541812608073013402188116337646322195430688438606491192534778357791895112372286819800102156289891991263033547690230317927488041169967896451904333266558223152587929179395595258087980862735730596692422255531344939993694806345712152273115089150974751136817802156144993621570974551292204760977924279593823400453719107095510173347730986851934532782104396698911034848656495105083272379183047053174986101315626196121885109845388357595878550439229119032046667587415612791878671707041047089473982480023986165067967461892121281698082825103303363206345996413285299440405252956295475140712616814656732396615352641175703876750565780231296644418717076878302268447704313587028654675797461679723492253475043217631789239467036766862175732737418894280279832976049093893895634190063729581790651900811957166679191511372114693676940517819747337062222517271340486299205693732494676292780108574473440698642240806096952033764915162435886234976572946561716404387282421912089085565357691237384729141216406519444451641822902691819369263183633559294053261879404293965330115318165703925523855653352946308794688547179886589739802069376806828816472233451667683808856180471848633028541809621596614448839328606958600345479010683173032573362053564001577113876516586181571686515881301607597484025352154643611280221742102945529734092761762139286580245054748832120926279831989228032351979393246601365070058189906724252205654293310979522637537311700553994855238115978163891293845396114820825313612298302038785222056248689618215078903753959674732460628118614525392768105378757708855401315303050172723266910485880773130926142319447111683791539775990279290284878100938004974734393303025437674523676218158543092725724830265349323604753354559476079617506382362840914317380646591796658268325540674280673990732949625052103272627511295466976211655148296467296795587416746500472108510283249839031662881901406040178829579065808943935427374993778722062848413946159853595745456315528919910090749719440194791186290754896976221475833172575507449146874913678639656676028539939935666890014766599626875441167980084139614149784361342738592885876335322417698133776525348652415015038355260853903373564665759815069276578645339268792901725297394279460711438465643666085128841498966970980942676455890104494730800050519822203235131996340230693799526374057362397426242364073919520731264368476939650399870074328161846472959448207965283846386831965692327932540945458635276072205435304405018987038216485654573197592194802497668264127076859308103120214614890817679200441827814775552232839166567711329767609809178723641778905992863477398350958003948649176737522416326996912728570438690027770539755617176756109579790233530332617310235984929822417750475090208229470144766439733489247849202337999932944611369851055196138806056351439413001362807749664311409372695752218321141155973219652119103074343954604673852964892888158564893501703641297237804768173504717071734973104577558912192804751147239958225480055349852622665625580951609875410020597345533872635117028061702557284978578627172582867284595570679493083557285102500858101826715495277694725416627496766368483423632273736056806161128465274730407403503917442038559511843654490651374351460694639066362790693063788183437060832979501456327617502629640691652083596211688104666084089004541228557500329947094986785964928209903120109705588513109344414401806290009097844711438346651292841553085833469605250814216548910923785347692207585130349597670977256484199422497314270417243149286491264608977473673694192154793091168633236338003179479967787536722532212846491150875139643275914036840007996102164162174273606062707720439489170008137979451258972486115846953269769971108399895572834852205886547372267031963165109740477657842553073457154522792530967672214656999831332831807538267178324028761618770521512798351504300821548648222861337434403934785589053682413244270984576160989916649585605231694256335411354652156310616759663281059966530789544077211050454268773245955020710085544949110780349179589188579669342076176198584530282662289524091037445329633373574102530254074948960383569130151354735182275193228100892761555459611978549220004412519714089497433509269599526095613527514290352255516343830043190417616394813153105757224597771044463908939509314927030947076018740093104931020500846598267430865261057042808416540115911143465950950644049501180769203967250700350196087485349849806656360562044751084877772810181339041820052001910752524602985724897537198566521630496971068345362389533728197381028928483079381179836140232435552161936669941467802798483250049289180114496735723903844366854153789868208152346670336669164195566676787796129828877323013436369224746544149962821609339788235510116927539092709994034046257088622973329282644891633814594452613690633396105156239493005147243288255275202724961043154466834329790422856611461695992040353932737671564519089588663092126198288242937624016583586338886257708843546774328313746104809361500378112600440246594505830116649638276895944968522914728442487602255477076078690795855630938093632095704879830109483415804430768620746443853317282035739889814732555448540905055151589265760430045924934019863613326599660110476469339103714768530821035807748565296944531990631660026100444986186920470503441967706193383561857611800475540547463685397606552497599425158174689773963346586937141406079922993187709834769446423650121861797761566880335375936118134281300321093241604408051603957226158971889139854808532181309396302696598295623344138311866261447701918378545686380420551071568111485905695675241278619842260003773690057766781603412136597076468282787266618162594077355114987907330032991629123258932838170478117097142258900259378014812018060483012396774099173884726432096376044257558604242481186718300588494514525243441760586417978680475995444792115796524598582194670218121537577689949433905824524832086907746332185108441402588615468636521511490268611429909171596349490812943192940321488667151778301087032739797240578702717820644508066311109046801673150059079286926159589428991160789271932226335807047455837509975044524600292373193879112353903208171656448824270106535167084922995568009489033082877027975851072811247323745768085793899819915433475421110835676400963832957642182407403460705042072334066220206008398058107023611044671094505211173063245407721788086210418848775581898401079970607537450420451598262000487551538145097960302451290365201849538193712128714008144609449016644655584241204381548949139045077013968410654829859000037844445881749147328284059397926670525142558227169475237633390617342326857567487408300268835455538662114007640183156325453527891575753417801382231580237582375496837432759013433998767924880724020517525702820158255644987290610979760608481445034653156645092671593124522845249239356542310034077109236122846577880234550651101755213870890680499660449151421129815302386057125344575022063543380768665629633737614776849831049983204351736577663623719057345195403642833808903945843082448771252824416488377289675017767162234524029538477155832257740053276236019438594806656493417856713184786608120728610292168901796858975118066136391195497365089017257031843802954576780823015411967223109478407575775092016209497724003460629437500257261304637642388887739352746001230897548370926883220968579042008431985399342744864934570426388631739537800663925957300273506863192132296970972948427260667881058479286155504610836103008214082258234921029939643557597096756507663602071046085268824468579283042973046653468954313042676378893130773786766142393399969026367135531594755947375239724776862016982485522626161998984645885378653669625708275528103507589309304325438489261263209689150072524931414923139942682145059756129397685513994526875308893290473735503082049407311202880817104511249066024794999053234402718755246898101726242420625505882495422805775567868173348322651293484019393077685637631485605939387413887872236220706787897678539576804961680863943895905442241964881280482839854953813580364386239217832104950447145835261242799652370581192678793127582617922084140760335237823439937530328729627504461812845295299567267745325515911406018450613204003396356775661803673740301019806745170811415924992146582235762227874399571027641981795788819217927307866169697179424106938088368526133426925217785398095365588693947033683836754497660084948997691498940303039127802227022589854197256456570189593412151327828348383931066237095665026909980924029448201161673997388562244443479032782983206602679957811953378020660093667144168194689069901654356031965930285225378149548809698532875707896514058781704784012372131584060901769944678803198335849713606537763000264800409349505286661251767436958576827172226382093930389737262934958074872408276040457692527310816428859092110487164548094791256947491092607745741270575296759226550573129612727876473846691670448939319942453535129965742100215428397212899509340540230946104704183956684275179427382748623224644798888947938132330965752704852051552425455561457855711351965518318126464627841733745729572251760459765998018143278103790543163853943716672261193307371744217453454897417093227616681819311404100153226840564424535566364492600989370145894813567472575660326527077443755495139671636346750766942237262772138749988743826622636436645719544410329548259572549977636637304300274409597250141374194941004309684381729879585296638869528815720228604782152436867790411324394634022029612894902569211843648435258142151128773901673469977554835179943216856594278441099267422745560736213976151665198686242131263657682269017499842559078490316482901168945488022935871612223356030511818436276908696052980985473948894023176458094204215167678259230155119115416933828804736958472790176937049445964128690425366630280063330996035614115693145843360373223252784458368563275791500427033488361326407925194928617252484701384924290057003927182441874300345955618111510854444194901594982161655181268879300183898109573780484464070047848083820703211855885094594071908690489333835310883370357232563017100230715493804927729289298535699217975525772331535039390357679026482178469855874092908389766239147303399576561446274348345320142293100307688349216614293458729834752492740446001073089816426422052429404229276968677486145287017889501690253724187441770153793466481186635303233791348878997402838237667927961558731555661238049889269071967092905818448612242972550571966307257729572231631231186118116986013550341636716534546868503013746280979873566361185708486749869402154963505237940103132655357856504132332152285131568364640916415313210330198514594807860474743666074096280106852716282347219754128830786192018473291960690628764536157607088672466446968658925856147078934716320996014873186380587895381839825838291182337302355971279706662973308857342888686566615991367481620471227215766433484254456781227614604878684102808294473750972941790503216513365823306879895418239028177956471905469754644919603087035647479655343198827933438332834620413199580300807523032618569153356057359404964503373104546639818554537819959905478977657659328657677306938638537815435751309596621946317650144621121990592366321488845136402077491786751493925010209137554574821686535201993400052881145260820311931270713269261922260322366185335775948890617930274303145901628007941772288899131231878443977851741752455604897968415448466079000417398358644644868998121367644032056210687395770186688547588161813546374764365929385571004180423643025805474727570111214926104530864819507107190079503242853941708033468783341955970790225448293806751399473659161110674982179754949868918019201302167322431134612229200769529307435331980269092623925315891448918144464562301303522170941165336711528885118437415394523515716165770154393775610273720888121027455853716817286438813981289142290111797940799971583984763822994853741764651885059385020359848671371400357122114224459910841903749804910487418532013714095827322370856495574841026384398576926263805466677821708647340014940262029591949624243738848540121320532839287462738414280430975137389307888799666654077503075770493005611439760684841756105938667024367637238352575661816307540051235860585893217513682715412829488815244412692783379436930720738783569157622139339175052915718950027834253386898609732799244962115997989566839821927990562619026292981210184063027986250112249456557998780415743585202083824710810870178062679400393172144240534530127605889603337570955052935687149966931191778579606412185531114388118753525047612489851387038041977032507672642069161831864083752315549108994226788857169097596295358550555460396678720677974746232809435577254565930706010384957875125434236008230350314039387157785242204644850885079963615097001287651991687328740485694595069745832811290991865094853954685049328442006069252533346773157532240118003116256514515351669830804071129957816831404488217683485783220209332266599099362508682765416045961568949723563127912224477233294112535246439060174480745329695049280885649663449498409196288574112754252917561649646731623280565639604867811600161635369107978944375756777756799123942844931997846729561520050018076949796968171276013174272872870533335629359801458035780274736708875104243434622301729242517882632347995832458081698283955303207053208857742687789479757904880293688137570340822541549343370460966526617889783178011269515123973121180704742103229883429883570258507138438867933699657343439139874870618952640437374778524787987638829477159739333288699911415890983029133514605387411480490165387044692173474240262049959347793191435989811420883991190460267451927334846011115513242219549265306055587068175304829471777288616548834800796796253614735713073649327985073480216297764863634568708506817935271021354439331403173591752763844499936076876525225526140973251124387840657459179071701615633176887332719254060117155850541715725336464445094466364267637448794097502262438294480560417572159377183664558969826393092946357988735346693642953117776880804633962075498205270835694914854392832791350273439055363162680320869921445512284268185149605784315571137741635230248248457257486325249225974516859648773032762764028755599133747148383564658647847082886838440154468886166712085424023925735193432078958032701057957354610987121134634635170672754671759076250494987794423761967843373907221268229711606456524193603460384048381942637963878461432362345009851052069335572379643003506806612596424341871041064574511686549576900663097864087139415127271896084127454547585873172520329596945293507715735590535766377826996461208696017675238451875523155726736881983697780581533960780393230694965051503463030455033774840710414941168813416385330958193110112136603026381822565937116630609777946824169099022721029641897608312600332610008743218341572369440655972530176040096767901675400091043698428653963546455781825951319937393435017683493162842866627586124014303473603097127077899218079902301177227727931438724462310947315738861868821521360875627260973145029834711471032890528673625778595052246206786638718185109854859581612281359011015754297828329164762575884929764348195201395365322631440046740330611351002065192061702326837274917628691204405332099628165534327539115013311282017545009734561647388802745785165981777707664660103303366584520709009618223325553589709168174097061128561198684750944164102141641110381725651873936396611000063388005733754600983271869842527061597505492749243487584200179463823108862115252448452380658986135333291434586515964089176806608657800221654206292714959934642252484295985376148715915433737550773030406852201004836307606942225484883575183120624591163241926216203080240771339100493304900782370563449155256539358464915452174274014611962131494367216848109047977009967939629591158935062146216432226464712023788729616335623930772790056546650957641889604183685864507386485945250214833423450243904057371987697548393444043583102926661493233915049986885548713062692076541316707870314747567266169427874620602351801032045333859395501125867923314318598682189536875662560781235057665527500684468928472037568682287847825162144592501748169412584277458606390097476358911193492458001523037051761139539327057523141620361952692650488779824120245083530629847365607112253356617698079527613725506619499977896787694443586063665251598137871644517454258605987822585024125021605411909368216914967406833048353102942792777450435575600253834998616092994880848073143624177353855332900051930451654350439307935193440240843245003300689597641361477316345965009165100543132720547467084790277122642151312607852679725202480411716853461089692532046137072804078348668807739614719158424301713121311795483323600031233897901012268808529046915898627183643045716392835066535154577921874248127214945431360996170159507200399575838899924795230845357195364368333358450885623414460217804853088511951570098721954409050602498434956898281427715653077302314620967116458449025906329811145400690679411314914194198044468331624157475965811166507964229709497311864982369439815979213657707233805746600048339628353082301278061128718237447072915913828696931566645524683704418028130355038612643729920737904186204008345071294531121082866534787588712227161363006041516227471844201923463017732844319221875214947196411999340983391492599715385446869599718585883742465513757564302833107495873019375798078084048396046102435615467748522734241474719456565075322018651170915505311860903241776051334821197646795025057864075856438475191197881222590632003637237753749472557401078692552158611370443282378213023067933578424230479550853733345624488007621878667017938160052004339710582682924856805230115495609150482474915642980812413731628289695168211782097226316964754648688575143900888073959777413829615484013614507804830904439579062147328818925822203133591358983131003550439287632855189354075842350321831004533975309964821835486236501230073707588820159187010780738299534388907394277676716240401627452001122563651951588988992273711953068152534480933487936815750770769513995191646987561829391914791505419454795591478087433466416501434527248671285585860462837180141541326456300419706004402333106051227271699629796142564159510586205120237642677882156270366745456781873007460055176864704405039987294459552273034139889375839039260483802785719902688835317216079108006993547413209328807695686802670568368080827528587763191270375696639856698113867290489888330877879860102882207135837522668093807052390156612572868443617799060479207575335675590889741280571112479258985520069119582446152825321828409436479098007337154190223583899153818623784834489595078188502382308775118103689884941159279775804370711495076816944528644735281849383831130401811332909387329725114235165946829161678008676990832919403270381812368892776572328670900500250710441478358369544931053179220792600833572782463657300905961696327719789588713479266286897965329673113653086588558455535152501781968748603374905477243497864045657616853658356937699180331063593952007071912707586101091464646649205473492330710056647167471171704101721175937388693735929092907722682533703708257475900456797895889601712852522331993470125306892419292777261747701611551744725226249118461561453705450635379620083185655391136791163948251015445173293682177156931903118141295856706113601750406046230599156616487921475778914122343754477185721042950805669559640683405863845430456616565968476271343080375055575321644752212447955590748381116834140332412320853052592010191170828596022732853583726254063799305300621702017883937846979366262072582371529898928509735135130053571267717222638167515143490234872630791940186047272690745752706061739328573460899345778693522455701597048952602267857678215938896453080247051039276856074154055952552756494779164154600844683760457868725480969967548322344105892995946769944698351645214620466408904908165966006285120412611629256672518022466390885903064012538894453630341844157698062917211215635920501060167352437805858419646989219403665431744038901232495382356384981478989538733674816216450750300597843000248137455685684691155566606529464708181932192756304108065451811620914971709306682595526626888534739182947209617443598998002948670041398855713231249395432230442392289463819654318638308206978313034072701827215552947381497005958206961375274484328842339229950112914076795261189152434195586412170963864284823496738226482068242453244444958391449948004355203654019703379837194709250858333318327711039247714431178032990608441557742913627887029629713629205247927277154860987855044566580585584922130444291115192809389116676117666264507990415179289703765572951647510634292567329382382847111339672926924920576008815173078361007024551089782636120143734042289159654026344396690553619475707537372985857262369400772497985357178557459923054902221492028415493931351659668612283421464456700261034195071636837722685136855465544705640291779632011514509642485323146748428811409560179710964744979982156592980501029537109294380814908551424645832146057407082075617145523490441663736055284950562783413298306182582903189441812744622590677304490667870386030033889100892794320039346208454959275515641461405570225604767596074815855921634460629259247736838977327090899415373985926034870812994155246289680427249023808985015046858448581255063001994130475794350196035565189487194799868398892337341915840116844891075992732841349181920463197431912078392429843471835883900989691807471655864062881313994695966049892092723809721580889232864873518467515208794766009409448036536499802329851461148258333208508544330249474704337384796259036279982524670764476811872656318524756450873307455732118813846587144505039835144541619739888220144979618712888491163107601639410307986001820092072283595063072496672693601889723327534813722526979646081385758232522854414859369020927801492740299801986589803996541735245880819707172588638168540894053330348596063305104241108016931750950967838198029543303723905086291470086223307897654155693299691172428754159995069592734260003852452451456544921197382070919225557963798659462369943895679500058492709806480507957241459790251457856172813749362151704297279601750537526819978395238550188851142793866453406934598183913422029807217330575277935367344298395471940963087540721465717854244922993145179021092939306350998687043301258078127655105097956602749873864785664599765946417830572141668355287833740097884770362878125697381908480492123804732891110026120092206648253480542929843519244221080300030169837114381727346533331061311637921715406412339344954048481882402772155076692709634592314429376137681055173350614784382430007045267896751282804490683779444395498411685446074178236646707761596473420857298657587309386486243633373755962446559612469988543640698550690501936332397307759943454417862947273663927423716316068060035387909159832439027571580729631182717420051098723461414198894938892130695940688246290324062762614943743288653735697645266257940053938617908884421376626753322138687371484426282812969241158189155559956272733238214891387690021818497901315704302958489095415685505541749204586665415404699026894014574427364974924101148969369834494316029519820027606409207242997751161133865801446185978075892335535511032324709541548001776139389306753492205292998091828606284960751576433439797037829274670022471711533789525351308060575870315060275069351554734791257538136229045466585639039947964850458808443569298619022070624994919048684515417545802253631650265388825864915160547149302227654512458049030037653101910477194183214679162308698537865495219807811642556619696093355015886032782709469550974795704460246761576653935206404727886749477785717411864696984352632705918493892061949649748619871765072846794911788437549385426094152014847178236735673048912780939976348564475278403566037778588329383791474208843629406282366349001853544508986398733067903614692392071707087676662041871302686213224981161382769834407540616479592013775066851655438097245510473239089080792651017971171258285848530081098258210892824438973208358106144578395659811448127839203959632632606313725543308304515064232896998772365828583460104541764354148080996449686754323542071037544105533466727214174356908990359847741277083239060788124609518232194088355286035114330954641859254177540514158168394159871808525777275766301895730993866201240778691068991984547546929779404971116943977818834677616520857078659083904308158710512751538108807552089268518649600468127104079873248984342761732175093603152038801229016522747544574789722743558460309988633113116478711359341727896509927366435840197898133679954796746217862229071605671508032503579257865909618639917145362794507647042700811931140740796337835614700329995233552643879374475815878219161578996825743943506135781344188881600595136950310308205764232276563054390853249870681223265595427778976830409187430683382711507237091034742630121665341208712955592337912235027462263184304753248313869268681746943794375635443170711789769257967461336726537679797394026539944700334196072000389570189063841389210336754739604995246496442439811065343015956316303820715256125403214679730205311304947102824159020280861677691118892974998762324228178692163710393956160126987770284272523791360461191891107815750973914846180115759549199155038334413196029391599948509329299359539976899572907421265012772267189542657265753887807029304550859391921046891390277804507121722935114601582417825920216487416765804607466986539438478912204768259510177553691230799293670362246146970549369178554020161717080866373682032735298899863440214248264511465712605412059888851122880159902280062599864477857154868605341008910713301018652722386431223799334102016216291711123504080828889354036072440090708404517463835921042931163832513937112759695081158126329527397075828756525833628248340095890159964708129049867844847340583749452934141739291087937965389788825950022245004517958911434666472198091907858995753233667037272532985833655759014946130223181241315263350875958576981606287525917464147006028804126053932641027190978438663736995419897262998032491287372235129467761648454261737395766109930023824165624183251945412610863921007285896475474628397662307098256598458336470107713680229520851408299525829880510958115138234312247690715109824898367114190766786109425111257319084111284752579757007741735506812891295522383984537780319762347795977466630437769152782912171859110974403588714931501093425552016327674442454111524602903764135191585801594761238196325878209435592768089552660763979934964818377351331446468363551928894284508047528518829817950080837183957191124334683133009360604971533372591058351285203831655262872526692157168201760993164950125608546244125195305229993202854861631539531053366231834987198716712973581480569461371600492760851774131231570020991538712316375826350072807218785967855694897962619406778849890836027729330841430005511385799072929783904331976005548792358763833343460781624509369650851608575989564501769406558407178944567998855333790498310076283609424199735550009809826231357002717851883780702553059614009918117626448813863693607464290665258264666795713857302435139713422876451024067677783651617306099103163934322567077000240768378212196401425978319123930146962892541389641620834438808362110906256475701212053297815074880473562031725874711170502803974624802676755280601084516504543751983264996070632295270151783639739143489062663747901204975786200220032023682802996115760437894829055690849801190079454286022122887805656552051142126600725979879199045016506003686976868661665440160504868482140713480580990939617811669991336177919286910828966692774074840634646663777435127095193055391937670467808619811231428541126269859785096964900999218086750744941031653509616307795757738352282484090059180229072897572822815332756313626796223177882082894877162169310694130057479205994249226607666735217135813634421422750437539104707303154644047008075052894794233948485898833841448101709436933721923562351972991729496640452881501263357689313617251253549540454038547720625891537703117517697877416280685935515304451830125114141204918705296635847180231223922624119973734118521284804405797863356314833139883981933389097219148102377056839090506371998037075727581947843941541990426338345259317853177691347501402796343458309519193635601923320120957704279195437355822766101416022358267168404890784439641281583590521314386795419622999182526817414108827509983737091147503621395785206154929876727357116081879063968210812941864318987484898489243817356262499500297375012507523380034822345993416008691678949334942564310547761558195722118749329153362041491603620654902674337227461590363433983232159290181871171933520428106274016918528054478021763829362872302298317754840533794658591596417067022839624565565949468361738712875634088868745150235718129758031546446893586899669359764823528719655372555886516425516551009300103674011290018528458121708300370946973730361326833717427760589332537235609014637693270544008032692774098736780553409960747160855055400126098800881125487684304112813741821614329503313510840653133671273686253993499264348318039108145252776045985147972228744258627450086884317868704520045698277885490056218651936479425016538379581069714245840219989454431864508500455304991768637006214395047668452430708779936248810098671954928989111219762687154005312505425632600885066093721254197849445165795287467493289788576636068427181931849704739954099181673675036583540043435184100462101705936876271984938079129010216573013802041758725882634566529915017020980123850606442824062733180567133469923782210555006250882059699711528064408420629770325327993600793793529837404443241517634935130547067468674836748834547890619220032402007836581633218713825944899807058653546451966227411303334140142872748886348833350664508672977215091331854305165178854992138228940189460332532638962768761769135230959900610542826430149112191939483410504862674209214035759760859495386196462226592754872343565875239505979757272068055507469188631422446226050127038836347849269218188033753953462847257075890399862017578505105596754793302883244008522856678065801170311933057496408719884743248059848916859423680529785496507629978039054972422336158705224267834579117471499766598748556659322384431029868501221703217498886255497254259257910269810550342955811911448503142482083262841505980792089550778863984267624244546183766659590984985970110297252478242005319603172841821553277026149522945108631294614903396563687544145020186392715453950982763092911083450721135618213727165209558001094125922563962072366860711768353776778674529840151853850217530894558729785680087490245409415642487857754493246496557274352807496615053266938162940839012385278787627492180374263435705872095773246665369491227045532217491190528612580564460159064537415842088482703869716184981551678396083113950115056789400433211172997646018972601534403885695224715787333694400934266452155026166279040840456155371491019207348638240192013479055075751898247011671509543071044547073911684817566892801428725111096096022087709629313088288358423566053973431353829500193737653158448856648757347784486342915561994224588639480296209222425252019727680560072476708488709082658183575985537963311197721073687040782366405255021817446297818381642095220094933956825424531821353530016772185554579240964956598108829649133423426118828826893550599148118747036266411961198223088210900152162354093940921676483527363834710760518795319949411872458709769223679715134152440333454147359149069771878171246843248941808680625953099267977870031721933145568072490249677012236102523490777087912620844232272476805372122629746079180974203382642744284360925767071173847759083594996329575467176783493275673047978697400130838558564903333242249889467102085338409816287139235761053565587776698191803901320213246667000849287692376443234732851022050611736119208053903526841969663527583114741415902055021509924427452068596873553590927175209842150172085692165564483539831247273764769915313661402214008722848014426548641716174156471260630240147595159247566441505712017011517260606263715384774540329988719507529915272243416166911261377541089487097799720167436872442015541364865421111697992304684249730609963271066705894912134192649439212794978835260656009009229481854954225387692672319792013985428630063766481931932166177464148851073234202989181904399079650538733578325723867393563182178232037168514607154686241131930439238270285292905059903746214531943489783353550867311759710463966748148554054051487637659995167083274986808779421906988048231035933467975845654306244177958287539310576504652633179783737111368983644178488019746601084373490134701020984347479282209238944737884233545347480032560604629381474569138666080404054219628888632640599715067039738772109461177887821068464643311526743540565190847444194218189512774974718702947528902020310679884500418450630375696346242705953043665627947608075064130643258473986073637436672562549611859758115446816912248540867363957563162162991780881919998639068366641388037371695246151002913804774973529884539941043703071330519440911400838219672007531478068102912074421880880471794410485495895194183170846857975705331906015462000582965166497895607737803571978867725203429173796560583992761517738423219169587945817976909502785286480634006007301454024278526280640555467510345716630340142073779903929492401524017514688018032472818959852448083744014189104532229820306790642991197157398164844871026695733425719671699168736438825732126377259857337695867118003469744425736599128115570799808952975335483169114182228137598358018703898801315914309561488514530007093641856645952421224356801445119645817424604582301821902259263853947253708557422955871987423955237638964232013054092534580788119336035109369984106428199092952433332618415559601814201362924146630187855856882520023691453976965259176239939902825403352086860461907920276367894303728284114290983491234358260521674242858989277569776970879178897835362737536630894929327585414214540333129433471755904538415799270608647304740969822612745086667658644399365966373335582472317274065549602796899831154027280706558411025093120857809517234794327341766000300495101575671260861649396622036350978221350109174346286398640424458325677042949213237884655935559926784372063662314657717594288895160032592941782842285816526327567157826390879478862521480244563148078991569023510358131297494105648007320258298643076209321685004425995426062702903357063263293581807805820014518675062808644621716360711436263717507910894347816822641955004399601707894149367002560375184853833128445853918152075188344241507935352452342135396424906222494453149099492370104730957696972044101989922886557385748099054058463582767230017952283509755453824936679465845485131568436796148360451949772539551860511466821838197498474724906190146978923022864447623514536333923608096538339725567783762133559624716025424203096755634543803054881722562771635938381709870246728349038285277491878495773495793510589827696784820175346337706714365968105092317172949216752097704445846224513612649080090242763048346687505730720560932586879600293478320210496379260082457601414957065600046195800687086228585650921704043507248087969659563751189687758880160753795875123799932071884867457630264433191028609791397438510661706601253222967735826568982894396862716567868799567917757577667249299791682799934041982850002741908654790860604758613200265478094382792997587559059384055891936125761074656979452839403353711229660531051496906777513135645893330708273286904141950164214320819096314625959118998580022093270081635911517670544998420417782421255324387862464338633112148837530080810880123404136779043209813251635009823024367700458352448083675555300188274680089547461212109975407624740240717651908870617671838763882801434980142532409194590292363621606085136716149283408914613442144850533387737994481124660156794456797027604040036861180657417737977097453655691919812581697400757205930378591984008388491238838488011038066376336636752338439102774769722990567528922144105204220758425800708336305909494545667398630979675144795552898889509853004058041153544761747524822714414817030683979908590052310906753607096231653626520233454461922869061988852903774401298788357842843257328176856426017961840106118491950664945974898231033761575152482422891525793618618301036028292614616546623182847811757511899664501920251854391811987544216977533738836476985116760112747720039862542812099109736493723372829440390148677474251452505489691918561654068842317976673013695278252964151147301392431874938753087498553436505246800396905510675822783862871288626259043375185107003762700209300305803224198222227181773738196709022326419018885316714292435116648941881729801516731003690626201731361946309039240915634688043754590900385202654886271137792891056104366294730790976936219563120601124216362838938546317049661193497384626466647140349434769931085830173255475253757089080217589149270107016782655246974907723710345975513928477240124238954929294683116974623994310143933055279463314668058540283171640890096364615946681267199983366625713700761697671702772241522153028491233856743360010356987668020398812693957375552429743059817661250420091070018366130851375029649632544860151030483850826428785414233289859365726771357170644203741473206478466067361881563887231145711662070383465709010876664020855909360170369853433890628283913013546523525692229156418927877122205658249772760121689002636057513772267223444038879739979390031570443955809049132530578562109687888509471735021567903095564683993051930225225338689885123955673744317763786865198579830587853565628404521321760057553001595884216302573074909776707011276309433189363269433534157701728868837160161669694788740167332277983859664874343444789913966573719272237785829266781570903443152170314927989260826222692091545626487140271161464295212990371571265676284066139661046007162191882883920462774293325968466466627263708666300514126670454803911694326294677865670860892788205360519347334085753106822546740199502155947822256929248302763528315104317554110179982882774796851960523573130886506396802297533429908693826267306525520889907020835528812831761576142588605867550559832057551523263140530504959817064146839202171814634254441356749334257961840127317936075776362407286583110038948539385858037111787515606715135324103108250722840277887421721905114021065140139153316333761780743646781997302186043392817805673985305115312862550364921820054695455954411008788438690472136536238103845268283652362719017813389092645654004006399938540484377459022810228965884498775527837269226775627997640927403205652701747819877316661243505862695197872444909976949014482167466679130041218696929299088743338221291475950130426352711413942091446366499577319918880072006656687352274806775104211579329091006623883151856018548498390433191181497585757503756672317634840730605828597403111548583316943837272906578612235304447405076986149816181358738851129749566895417261105281452250012032884384014446844411327833010526759276958663938775084234165435150020403035341236313025372442023649546479328248954149393182551747612710830458416901592769609951608117907783497739598082769719379061628182009246238982217377956307727636625460050709114117879650500611694773514896930107014154131066059452245720144922389529521232205817119368529382596402602986180423860926377851144593555689449728798708857009477412152691325711385154495275628777940340836180323491523504815949422908422931511026177705158626002062241023609196114249478217212648863235656595374104698787430377765905439826982265660887883128689904207028924312200857458763100713459042106318501161837397781117807162536436766026600990308952027841714698942707925819562070867084495605225955183705636478243572757733032917416834501856857963846657312842900920785160495281742183535719839447766144244348326975237217406660302908853471985148517109382553054412056808903764823968954458013906159660516028532624444148249303736458798836778728880468861517301862433392142194699703256189288392332926508338698228221743588029830706328949248249254108292182993315219199330922439726286571189798429711131701787531302267148753296617684035323010374401386979522061197130011012634198843968785476987074492478651650845951045517353074267519633981606427323994462824378436873216839923380600540166773095717602119273298793008825844118827223825059371824031978979687301496584618985076416852426315339711243705739251004616924670912689296716800170528090261126517568698025274944338302821590212455368227329992242582943783005621522448912721589389146845265921315516365129202172327461553167055480821412217764781001129402064952398163611645018955990550057186101672586754015082892864011481088993132806778218144760305098193887338291788606268924507250372934442144056972200228605356235909157224664134584836339888900799169706589055514022133724060396574888242962662917445663305825725733319790977960398105063705482655846342100360984849228148292779881439909529890395789460432890863182830137772231699522676922218408388407915422051368826831172081214484236288764384387834627681581807510423855022693521766634900326278442955614357421936437152506171685851178970907704033088294911003925241862572677074472080209335774224266796268104739684326719269062477853051058023812120708074289695946280497416807009783539047596036626577638459231212301714220684831637623335738835380067400680745604757910845125264622576694958377475550673901405841920576788105139135279246940425403645659946866013952670070438864675830270106680932274017444144097217851064965719631221119266608347824584370927118181260331285391051853203064311565793048852115551708643026440276582764279656347141554592810900545488679365480038901847148793624536800367329952698315819590741289193035730099539886799774663589806407699578895939891627628773285346320060160697610284990692029081863232500275835477120201114920128856361050105285879013113211631913996703402901096235344095545166873436864537474628832421710913467378793145972991571913584549430379904831667646549082638053942263915580059091688238321749975492975064761428037476601546071209173324232888199601030394059948819716091851003304583391622198891393633731861763219943367384741545018599583549999696736101194524141540044936220610058876754349377643669477787556527558658267807888234285190199582105215714814124604907291891858933077694944370911858133332560037056328743828352873242503561912692851213882446792377924427884179452358900896349131896376257407357418018759014623855141129560500149697972736199123667408262278123079146310571682100982356583597360567926533264420171487378029785538051056522113789388859492009448409625279830814392784397574487863661257614171145228357650099787284186707157474353792654428805985242703229100781787208021425540086004906376814439320467898109819773850525368856566489887706191586745764376633189987109801064616606409602027606137898659410518585139615332315125185661274086456580355824218067077940615722047644862139148268202613947572896078846125919592444089886328698892574234635640919466629167570312552741692196902562809099896233554576405396783020675205952728661791293327273439743702444971286302764647810835104188454400243780952003808940293668472848237516365660858621368132832978253231476374349908426571735384721231483828575443378753068715067084237302305522397359102366590794695759439215670354773169374636309095995523313582667686945847051293244380587985722486179369678767979910362700333423292880634585784308675274429088572801444666201719016263979079611149968462159172150227175943247150745718498043821919451694196953871749093429598993448494810424823632378899291617855166518168960406968453482818037923136268730999602602142854237675955269319563780836752952508763701148042398779274436826767121340902055317495018523517488779801276721803670922131083713221748017538991236457865437728943994428299342764851980026684556755318484691236097197915613639091444338888891137014816452216097606245403725504236995195828488916829027156519769689400184262847604314776476739121791247893075050654385402123049847745059569118344082886126101200991031176651589692572939287192310362097322268459122267353078273502548145268287852477930435010229536757716403883899610354256383277964087619093224285263045724730865371989950804637655082060524657979766242364462257613352925472739525922494702826317268159796523729364901069026707059762164364279684482525048798649051752498531584806777126797928442203891185458837000664887806130661584663595768655084163911072425991109708685649148027295855910439646045559263705341222586017169114832015202432873946282819480162788931150838532898427793509097887439905769781980340806051196501131578179477256674529897143794034165539538116112802465767878342439867764529285951784442582805024260122884220284419040049949614899198796096326445259936424500720282272618048555374434149953265776644247877243273708266936631185229273141472261523726219674517096775938020567935092830655710091885668773703119298312078909042861073659053038333370934004905934234399689254029035706662408956289147472349835642335189002019100285087460081361955301965665015300527736143652110177863187894413165563660986494291125749501259902112282999933059115360300788459367365700865862882966653240098019648154605562322562131784445431343447450194441601030502657852606822772470574503319740037791579515658097607471838183821349169550033658503250208567845478029652007497791296549869573496537263591082492030386414826614336813508263810566628325585927340326660859513720133485249662193738273657139996028284338721620297646749715105217120177274568354183738899233571640333767393478983496596481426594538995965126843143513006159092471789115605928770194023979835933892813371226061783337752679382850240661014070694997634547509834604744164400245550496069878786330228707502376242725922378840877510785158288747931020023962484670604593722066512435190400103741216577658947820347570639261061856954448010873934180564596362068615918273094484274365810427499886615036362082739037827250503590375923073519221848924509005119333707650640524960406724066402751961707792578694690505446329318993896786903891137724845249499246253225789301625827062146090493603992390734894324618501574340354977988478055065579633726779400372773870849826798903923711318270356586963856795343585997946175064718709176023390976591240026521327722234096451417232010000747258984710657181162214032189871719083603034368826152224398145336607710098395886412608866139437654520885481480576040492559129381840082418718526250518271360203684062791277357497778358702345653149933446057883663570834413141880016200519718244799878087533502892600515556909890383032837164527890355322773463579919748153572291771851761684723354623393329176710237291036141995660683193500671855471007936482476300341154891914938241688189041623712900989187822779910625621192964419781944143316170037409781004769843650004304227395579750584592147062483445058249034660558555130087186870295022401453234990317109389285761511323007546836826052771611976810700188858443827633828154241015857771261039333645022786416061487681531894314192800208015294740997307035146001285845876258508951330911712670157848614760340724586767439132454007577638578585172217719301971853880021530942362168262582764395869955369363010601160292258107845945050535979105214387568893941785532039174489390264648992578890898940417507038013071627415337024619081749952209177224458991459130922093566387412065356762070149873688267104239727957027687251549307815733742043541577582017040128666178940544548314304083164120446279328391526820904569938153947648159412638498233256574990408510169400903600828229792740614645115339350742555257834852652223174939525973884767066304824777199587728114886813921399392432336224652822953365714049258462243461710148362924221245358111390633717606241038518974195294105748602906727189527882487685781101250718451647298237254018620086556268373715274196097332838776780950557779350205731375986790475955909493347036070539665836576849610749302504104339990399014203950800958292878841053387668060993843932242622599735321938069885153034986856366602288902460405568179482788684432001601147584856697090277561903291290079268117404596550259854161970323890484815134976314372718472044464511168976693287169702956911156672541420130618495613969964475922676418182916513315108420789151968964534933697113097959894009497930786981063747121598068972471262091550977552348073210698796538998175057193466796508917206695086502233067369887194127502432424033535822027499577817626219297711276685395559087833307849819494110940053430818366892866640036863231879810556276409510336326021228033944776302602901017846314094741301383158809294910806938426989753553175494735016242420677651212376234331170816587902970056789393117687103564988676261529739727391950955807885119302066342365253347911762997232697101001341332710577799367533608466836165482683161324284230892732001335158398987513941414209799744991512330626839513046762488545548798186273350409497379982480948637217643070734638100436643651235495238392541848422406711447754603233126555168044637470397313807673449634713579025575121400840844144153919617595512836464067724806842084920805959740017542582552889704310212257873345793735604603530996434676317857855634998628075621749423738964008406109624636631116174383478593363798457419363551246185543813218680339850579194607524752360673359091859193491663310165010905310781426715520621784361493661995924014287360248558594652286555619150756219837983231055249303403086169756785782670641860970578374755994874050658436207860533021671389041077155607316602311872117136666954508918360720798113326201982123242938364762172677715150398110513950555894940589632190424428152111990966692995753069401941964626359011030102907654505392819807401664754334579582279319266182945362827151725270186099451617641939825785529288542525767705035013148598996115311884309777183597398494070334916872613365454309463926439377382689364606817847143805388684911463093418945916041498436047099834551526925120646740807365231987967747306715595001760978056170130298545881374770431872740987431755945521071976109463626680681803097400715581536570535375139909968188954881174724201890804966220398089489598256371555702399742240964946776322468376650841902356598077192961574758072404108819784595522473993340239936830702096056826670195457310686048458739103271299891919649563821203969561534077558613665150103779815040945074531778008939082378234636566358539913603774577263063007025411652645434941643812250885248430879535711703841314118542293786153356623685836474231773162636326650700790005737272345831449641978887369762142208288158015381535444481182159606044652466083046244290967520188430752143251081250209432086228613856478590837980938145551568945278980279555087066164623605623709186400051130777434563198535651927812905684651253638424034100550146291929075021728293170380129989398077897521847653550038156851494676423523367861655938796835170979073568835891855385719021584000651503566459093786607427215691296905484913298924656691985174497521704229264440351692789714713951670563888538064235440908284671204580682020101672238240120157512384354274902535899531492495673307261183474081358375380910286551053118371074324676851887988434640013500184313288777479731468229803894827633830076545343009772537369718482167064717270987811866513668831239900443233318696089786246264920137430007313037323375249630236711033251215703096077416855252911874041782210852408260673721487983247990372308838041062584281990593662231944330112188691715221924311276903202874182388961317561227147131816818149391243702625038307398318964662190139701253919845280722027553291978214942964091781519271518344663138211139011577235646439228474084616986363139272203577072983320564250769984064190123414076994549574739789083240130010283181072451200078912690596628951942044219967002204809544026381575512950070371298981093643631772179093990138991809569474977118485916360048486927785462117611471200377480309996778426493588427127450562135987829778660573642620083630139487709537988429267973851385829447670189287902917800449425049237430999903673334694419138891638788978140296356565039960367350647128656748839576540664374449822532953395929750349063253986073652398515129726439986738874284313552901803624380296496420206671672564505109747482933528870357581530936023872100871419412644513733395139785490390639734881378929295248018211508761044149805987541862030123790814182076307134435377304910044508508633318843649897415948275520179245103495435111532055844809048330127656728472761774719864242316982728339954609530464484368773007220922838861274259762720236751135294609034238009221573108995915670976896141791146281109675317919327581629653101845368404437048900747236233320292004118839799482842469805796432215458091559474911130596296472536265205162219139340277633386173772037087703638545225740173504666216525061239235469014609661848912024033509133177597780343828759502800030443162753248140216709082981042206571275785495355495084400938925153920087843316292808262402657766686226045014360947698530127298261180579897327741362578362037107195391842904743130383599143263555624256758709662452188799588426069245104937873396813809576593806674353903805758135800332986790148141989405394421423291895261236439259871722164638661578472029444127352093115217591429358287326155171474506786065113680422141418239920441212627458761371105407154364953901163565392995904552868704373808388551536493723500450991332329652468135714456046730854615608363739297666219890916357042625873611049991054926531983686206491936309154876938203370988324624940192333510989463438957466787235931535461437664604979528938746371361269532387648442433164777714538324374047838815127576807411227225964710819937035374721409104885939641572407890219896466437872137849264951115541116428051314344829723889614419559510025638010447742638827624599149335927407896218987044357320606985505400478289283727329245632709360829253067506350811684486311242286269851901147011576917260891387145619824196454279966843342605437715217909359543669952093810899738501245827543842122890554546432068204849113989143899724616876273746546844324574264458113414509671411287662372771536046328698104070260467723911072639694911012343168814595835926766809141982509076513741583698232424428571078994031899255885403951003903304839476150659600329447789897097772537666942160775796621060303437391752502385287119221655217141978094665868449329512639791390943217014813574113440511255404335515922176457020550135204740142859071777783657166680717083226896949298103096126080899884774993489849158569938337884898709286652568329230131115006845960923212294393812100616902863559718052474279523821841208834523301959633799784311301966520928967980789434171626847266115278102535413011618820081228512189750305475708871732905151412968119696573217326111896093478593945366254260275894181475643874507590224361026398013967582923273091710076615881074855733187205921763793119346454037844174505083131406849824022362752826654301902158241831471297650024700351483617706144287165659422078700450095374190180118093497556572005681229944686845725526384882877827916385785594293981430263814671819754557016375917652967883607532537824536875876803154898889740408139546989537236362166790668644974145633839399528559023389500472089747482734898428088707699071349789456427778612724034542394038073545407814617873544152867219138042826242135442230742111621308187383829541663160358199105626370832856851983604124791379384249518732433536935482267089225693777894244105726574542977579122123105670804920246904856589639557606016231498096106305426632800835240483393965742294895340809191925816135073183948228227282596783410239575660395392005880814127404047763049309181941550124174078502595527255437780396143442188721324309341236291628091041050126467014398981631937074615697052347229386672579182051683678451830959370288468925979469308366168556412093712646269838537139756363431521003842227125497889723388681703308383505829818349219340867232169491298758231144999726732466693146291599994134432726752656203999519778720011568142117510606944289300388937429727451645569235760110194468624519683200863869625790203937547791220518006778829820365903603426864248945502790798692677043760824399939125076406983600173606519477222475214137350164061228222305380032389792896960404477685601805213686717484600220456431640984146666658318966216184751975492688244391898189930329898496351192405251607329191034535644153431046948934910187206423974122175955558167644768440384232497454276348363469089666878288467764885530484301526378800667392091022697226020365678678304491292441012555752596136377685609822562479257698751421578350610299943891607015145906319856166372492810293067116564987439514795467020544163440587579819026201113241887817221029892457200415950958212559742969824266405587864538021059158844459829276465907177238228229342142718556271521528953533687270129655892420615672134554838093069288549272007765057541176244409319636441673568393882485539245920401839978696157202718399602629737779528937172416663539746011108670383653016925879519134589851883195735402030959258657503125349412034196997348227664014252590903156969045826090949349028535350074190301263958789455689046432642234400047236738612434617953908458534744367453805045108418404792984214103973441381364281232439966428814085364694394029279665346541654124664251925774188390187898660618813540014994659786570232213227911872637943764878774540693964917806503387717792264450495226130904778554825047836561821636886731673410961865967219695109218888421828491006481113648681567960743617384487285687047764745307288991771170351073296416538149538213301978196391951053248900370690087265360490967910587428819840038892637726754043127189404828582317260069763380158118800485500991699120186895167605700416617301662011722797818730263466598655990160254218610395139231668895876165841835932455076765852237284610844428999901629827938820454813028821629996577076627715596836501904385942794838002994771106250957468062157297819484910781012944881258775703046391811292347983569098600895358479057462186215072240853154957823539625331568683806489633120377623921047977661095552796890732884185811081475527306257054854997535526125292818082850266273380368971933767620737633603930562932227831450410266238822840916171311004350944741992226138569547205766801049526056262163808942725813299047622086935060099599997570165598110792927802144456919851682902279399753883568305588084841367017680557850198437338321261272407490344324511776293134956361176580743178827595826419473953034604163145289644494940095867588598176326254290722428468957760986558083287663452330246569405029322617686663057495312731657267278677423970154583118477040153172398824422101987639500566854723828486497896289448186141421862860147118743064397120426411974523148380106514789136840677983566773296114146657312003967166368421931053108629371712118840560851769602665994973469466514899175947776573737336537545246378487759634374440425277674228354020772624252556360458691951999613117475099350762825845462910732079889465628761092327641548223196721181971972995274875440639815953782916338042664077169855901230822794424316080234409698000987970110334427594086314434361355496383456267462596802585128243940071058818064314828405714296505517023958432336772165255405737039754960289287788444996410421037968707375076810377079005822384313645465148141693328890266278649644761422575217690988057502452699479475244347700496602847876773624733461520932536902366514994535327834074448494839584959616854709752053680300367197503510352406471123445308364194958846302647662047855965535295628745215200753996296538815999257054117717576417658793435573221577900224505067515302934081103581245888683021420396195706015205061698476902743435059242422294649371346123408666589402124206029769388570700201319301189865859039126337527252584277875525034453410433515469725986816892023573172705317997304196032532224772852308963464420772789763108925810045257764765968247335135092127268784058001998529051926912319287098264705273931807683654733971848745389361530193327426223821252235863181582325185685938658324005064815652985165348794182336682976472939538971003510581809426008857232455204501315174643531229184123164863137921091186018972650034593040814508897457651225304178479221641065042735184632575070304153647588178035730624260946824914243796320244360456184684929115623767722284788728151426778813440520054857211385614918399941564391140083214094758958049196997524689258204302122987861864131133968104394865563819300771778919877306290812541871567684837866680708335351403721861663475083373010744429394856387641897874826146468717216398267183005471583060200862771630315987280561138698562005616880804318023290075704272027839395388671591410443199925780650241857630022581280528172921040326182138210074724977190026544521781398640889817824941015633183333349419007223528609764363675858421802161074593845944332222941777712810812359408662891557554315823207089002260524233758578345251295954736674934093180205876582457402108058388687076708807847761107220123708560083963305953598184388251509489166745983329180480638265327836351579422624262895508746147634601843732180134517449698802184005253650447747555414601762614300194124615479810225607648486068720473198441151718494578222426168455583020469449429605974793925656671702168926878260155102763390747973519414736870024266770409438647894771895261679417136201918600632801453271087181457249496288719987878079795625238845096452993812349288855941430889275526667227710626494718321429028104384021312612812738317465935272119854630312815082845732336709048985716076561834303003847909145498419136954296202906099714123942036976807212852790865962549125645339514372846626642869568252818052751847740422927917510431454336247496013039393569858976901270393567424405795301580582008794576082991786251833107360255495991940002862483968254248472804241760325934629069715318173970776028605066683768981666245945124460322447507491881315463338323046123637927855816469690958474116911339075632664437780932759553086613514719606387045005133573531278074594003735430214985111005021872950116315949559933551641843800906262842074054609188361906973086039213097791697874592099726990058878654680811230816920746220025133484599690105317157787202919443589421376080022018074778312314902281834901018548732822073869945316446584654450871204572722432629524187769830566699302997426556790068378009752296338143561465912152170596059017709686318618513874516395548877901764926015787272951758888809870446695100844011247414688834478115654506033863005339064885084076719917062231870215260637635181913416964605300174271940650829201234175375236209144161221768921113962934168759594502836044517978547006472671258944967459359017154315335346203044141282895200464620670008995948242638225782639030706314753573195120289532778857986092339967440384963441808235344191288926909471798135762957469250539643486578514672981288094880034917728772970969750286266322330213220053421321044051772728774023180697538656824908639661578193557481664493764372967176940595909183094574282723962759264467821824852104197126367343523320512782336854240718644647770010582562590980154070378894158868397635742947268515416687453162938309385603998081420149404278976337379358834466799604736763099918545202203787723324611878507719841436846813733164140465810152186947842008218636920398615160898772769188883903075093725188170258778108869792765809218371639700282518958848745962432347970648936881251401714144965636486847271342717961222867579682329210390513730053998816877410440843412506250163611088353619924999749122165964784549094583050491459648800873747966966342790928469528145222760695532915040955714618983587704998749201661087695601934216809893596857489524419539111407082163239787496871147017296976071154332535292291107119320629249301050099612335569269822695247766848375882387978966970632043595281411831154902590100844026706396525563833140663713562284889939151790272630236175708900682209847029593383953478360340894737819787015437453908146763252320292108559329399918872832569149313366810422909171366717398270641110766660235052048422896335138716571712563827914218097096228999388225143744463250950736392370863787882224013578291560523892794886638738712269658544017626801407666191741015994096584405621895950904308355858859644751598596364758598257086102994000259008141233528092370291621381265181430362774879608619473082473525975416753582895377454559130709492472620841039904854244381499952185547908570023193477517267640423757515897729375403362140556169635800955507106300494170678762003738933415956986954033203234258753903783918645575497974777665296482168521762129709460451350580036131224782459309841420680927345318986333103240915644025757722107855938811839651463212061371147461074335339235369874832343493866233216950021319621159546802957950174110120410996890148372301189595757221851030509029520215324366917968818633639645735372551205128428823535895851292561747724182799629498193216076621396377807239648244598672967870467307936731733064907568946033522456975933159012349448767246554492597727194802989787187274868833252426048922478230984506754783911784281870435382315948297670915449924349916465075327931100404226830899712885696085140890495761685814373163544555272734719075188386608275324452615353544347594797117698103464560337289801110752785759103140231262061297133845054538788845245670093379311327369773026095325278525122358547461293307840204534694739936682121741268955054768415873480846464488970304148642637029582590148039566709020320266477158210583946352980870137059635401474984472361067950981387506448311515687580446161322231843504724340436697365151585782310475116049603626390074873000934198056626104863049118861030474844643912744533504032362745994611171605331564884606099451482106261683236445179145133950740027381187720789775869466545853887091740058458330242147051212801481857802368334364125181769240012585018180272620837468977890310517766823854970514474712895519283634035254902990096862332672731838206745792766334149247104660976276007184143525661951733986536109592411686294938751022248129923504237164012744716139251419035774358556226712875453570414983307103297919146862961223216435695586386529204198601291427575777309612862419274083466789568361885442268709083727535308789629369665011110130678544229967385304231107202511823579433469060433695830004201753739705728050764115426724594535847576831908487229452391562224144521859670114916182065414487840866734195709078579683263472046249326027735499143427586858217573749081306213192529905031086756069611251650359624255756176452354718774317571007924695683660345170804781008942332303107995850267157503373390756730702431673022071013365519184402487517839694553853872989089141669149648389886541912078301431672271829861127959944733372359145826457355631073185856161244345776156693424901096919204924336068760940338978472169871991790168221794217447054423935773250272598504075036461285926722391107311987816211055156251585770252509426872091674191827378813669876142899216979149362137983539883842793706889760423694503889166704779280790539034190377166565804335471991558518339732310067514387591626444094250607690073234953051180141588983785404523366004516867933445118905677113795997121096868400023785713716980511052278797089807402284334945356839984712784735915988775474647640740735761306924145405128523746668340608269126227324818694872187932197324009544375999944065658084141494381567054353818675174915531971652409905854079306585837068500169157208294158626923707305880749230845148283124361280125357062857316480571342091516063124023539039088847059590653089585496701739021197148101238654915730222195027204499962630281619252347335402936106785712265796030812657847561100877599989658058683183720005654448958016189791673004229581460518408903465413759076973072562689745682205491729651519091119621820140651980771676825368331922102246663891213383540029776139524566784539848622472565237906842279157313458483175536957769862622073742271119831989656570322354276709745108969693595538007494118669244296477260568684421638116830842679025234687104308142383765505153150250865656070506930402672084051041162099939740146574645624153712201011002748553687374434931257483438341553593261076593410369000018202067367400990133264804088622143113281442895682228647825399741286351432748726392532902368907145116326997576837250888187837497413812479756145165488993112088212729819805109187537141202565072879206049200992074784016610628699824553874787815864415812376544445751277500051493296064419772259581228175713813644319718848242304965271510752507871412264544172885519609461838580092581274266292095283631806400519108153254825047994363626453315553170709168356008588236903305145282430014787117686445481714304806677480979188706693438072955672186338945017663988759577152194828301287585023754107691474886731383535864528995390809329090734449832573831248357066718413391943210889987560987185780565372513709024774434954607209037184265993023379882761841672113067063030766443880736949499250316171269896160621227003025632792957376543007007450077643396786144107526063908365093310005838942313074278834970784108926132029894376864564925447947003558503400539254797793250771453461635609405632116771856308780066660014657883872950891587390432562693951203050021750550612520039663273349993983589129525860651265172280725015172660441455329631960101226472303515254099587285685666274239779104864729827159252135962894741106381336284811819609279526662550364565543723250782040522784747503172911159003721938740342649812569359903426235766294773062344403930047557780419039536431000720491320999853885240554325133775769049446154487288032153671301509723078831804829814603053479688314340995396949648559053817902214712832537292448504188513635000275748384842929239272428541109831558643563168463047948875248002649769001976383799439793120615883283883338427946376910127949792960539220959913102653117371540241962166412498141904710737920524909141061934764653531174994215870160140464692485488253647989499167282860631609661783049659898282438645791750113754257021392399079120758510643443406838192629182418149022779534138853399104446663435651407924401205285226031825170940043890097633811748873554146398911047914126547255424076774000523459041044177921829818000187028698915235102347433375318854307126013099234683304656891976771742187779449663872397165369724307480299235974164805304373224634870394540922295198702604663924015959671152157490878418797592562662125153866068215012772313417216079585381760289963933822814872687929124083005899211952137127691799346859406786391934136536351814020871335109976107116693898331902206389638111071158154010338215798023257253645772026908175608819806829009565153281537241765626406145716235413731796463013897375630093035951301388180842270991375628652174917838975260330822827620881238015640229435287064065908255471678207109562009746182943672321981678965094828461500916600687386977685819731669440327055038050017496378361895256316201529167900946262450568907530944998856834551336669089173617452695172397681906209008065347163792695114328147646779229086946501303076651252054633477623569178252176100914985368352079641801647196119278633515377242468776832645658402798639139459961909689048764348261549759482709118709911432892831821417303734199956454374022796433376970437086929614084167208206439451191542601726491698729025443267757519139009457948264991062126419014086104822609618851747157377790424117516061192046385390103988784800850552034909994334436310723566921934699462337004063918802827922382685653550172666767321177380573144592041183283861597176984129495526856843285762703341343669425905077741587182429162211923911803061235566697446822694288407777244321087456507490220944751403386269669461811851204480353369866554240415241965464383112836173566528673755670115693058049397318412575777267483994824282503641780751993602477526763436282440444241129777567682808902218673847432930058497476602863876275740017106402018509207594081884083821373486560712769573667853128080984587763821859983555922975588874490447741013192703184196258513108838606654636547885013808643681980811492693889184148302174696710213846731253969040177003539947220838103942233285777644533029862486585158277080096247074909024117499660152197302034351766431797887181390015804543455858957354005925564327786457095625757863033954522331904239278684368871392885829164612593175507646650494872392787557915822224911235210053948319676363391608990522837091884380050011378117409065858663996518739782095253853949188649436074475160030357656766916472033586929018271779600627772437215740764316590217840556925662901874839963038068547086625766388683337102611631369033748320976383780253847064337521238428246281251030546310977424212383178505034317943528875736372567027906484315608786988149470532514507047290935921378142427912683302406559726181459788421627222440211664615329575471779573537406226451111430500265078660864231087444538595783823971128580113916011975426070648768205293030698435403548214036437967861637174372920976854604242672423481906432708327749571318855903416613656305243828506300078410349773240066799524096975362328134317428621599658666943121457558355028877299527762388608519786912170832529450794616909852312066284289910129870307303070222890670356387975836305643584912826486938775284509223946136923816423582212539198004074552551350492893438391173060231899223311477252334791151579081176026882782545690717669481720839340377563561887036774044776855192618623304424615118087271196171877291094076057606255374006671921352082271788347919486653493397743421871542743482579074122929104865337676893127613300470599019855377197661438483767329979925203269952421634336818192853359462604082502934551469364571924058671704910556564193514824986391376262387775685885843781465091615975756291971675293685409039439598124044920129330017207380028449073632812077878681229669785546016643451965499676339131379578609053666133164238862410826362630542851426773391920264210137369655086424145977288725915516881342957282435343369463737767583704314091085899151382081684320046156965204645363396116668755105876311465893435232462373706765660744837608066154144855902099439814769899946492656271104459437740834956804181338443075897409371451273723029283162358678350171419458710453619523714143553784486415292840818484486102674647167835135515100937797094475540343709069204453531751398191387075681314912160254542145503425076701573965809741402246775337956097747494468458613645928676888676009407397831942837249742613554564982605992902718118615389985776752078446071155179566270376214614756860549186174645316632055797717163480309307063970428783015766216987158932216888291322699988055596932476460701429199154811876596757881553729223423963191257368355645897308604269723196914184058471628521743645728646244542011021405371653298690312182497481213579165081191289010811338329847715850018962273510141045193049312610124212253648232287500209943280099340284120947249321310042069796208627018460582758244281552150755426830949678798707108531182911190775530175694317240630459336693570802347293520785794888654667501038203915484492380937643723288405866499189202233043385468982905767005705915162362821500808012500473472458159881010430801822270526613226009613403793505991132257464934775654319673829673486874202571124452189009965080793237312556366778286908751469345686379247532773407957730226941345564681851130523608222193265978518480684501608751686898379315357282431414654296590696822010841121617033639121310953376570798678943737593901795535417547029283027281521177168973929655282315790508969827006290276948449101370130613719271319575216787678342544129370072632801403122528952860530162035703618712750083631560826731055613027345900218307354306094502444046982173044060171070824678791944182245244810141106477549629983349960498138464081110197843981581930140209955315378807158932133051835872820857094590725735293251254506928997450348990329299771367367418566332550212376043236352209347195170358396900730309763350008795479718918169382653133932512521249181293126113097180728534741164647968788484751694504034077881437540280889576735886542902083967382842988689903581119724767453642560460926060784841558570139043505511826722324632067767352117735667480109651781028605120174589908195264174714299780822699198357529397287922438502080624629961542527873602683352027374036468592174578956745235452528721802907616582621696092017508809101308234568324528485407408512808105535663165092628439038311965581591785009286332626174407068522673837581229139760234348322729999837176212280063442162619726150037645444490079758785464814338390970305145932034214845289683895899203250291256322059862252213263174708330850522014503836925676732977754310642783988447827945918794981628615338172076119737576657597097681497346485786465057124417508906092909525391430745896767893537132372718321342749540422703966818341912736738988952385042787584345672874205841514737226976624688797499407228584227047995637149764916109704882636067950428803781335265081941165486499035683930821660733645504101513409032652922455983335840047629909798951460963574356324412497075633696886132937336076321040106380168018430395966119734935303673944165565813867525689320286398217977572562562273523987410708622215182332456364841414965778959720210237372807648102431971139582568592547756441014154335619534307888294370797666268995515356153042104316980844156967797115937901441518784148871229532323217252395967677587448085058509279469507903026530383133856113744836313323583283468887840544945700188849814213473001742578236460635848682037121996108140473364610840789658186597915224355274506629668031196035450901248370443278014624102263426909501164239482340956074421995438135520607166677395429447634105728019693124630046045747312752798130301401627585756846240754118285660402660495926162134100602926158227693694597035387935281870634318312945181065853435880258611780822534851643860238242162707330741131235128979626569281863280012648396078242725328396655293586937059706049585839023762033373988251606872603802889020494005848852984209733346713445497714245215378515661468376429483558359165680331086360626488704558748923366013758054402139959220196172179712688101998432758598938886910152040421904880935797403330837659294100993586479832882390988714011856664541179820627332050025127410649133239735769562270059507114880200428371025876566870998763826087408338110722037936333663428825664254638595364748494169961375575895017263858035334517670304271982024726533014611542552375914818476113023570494833421990202074725810754683678475313566049156893525698448621901500290715481209175190829509472488816748567518131037372088798388045490834555725346164750889016947342623730722134189534001671697262002300058838148562342496578077297324411312685903678107080628091315178344838220915520295509229958589830246216194745542309338385457102988605559183794880620510558351842132478461538541490680227214032418985185718807782952076349496223419707779929623149297595898112288368122743604145243187687568898899652401188398410594463033995326427669291074459639112605181928702311013245280897165663390716076286600717687309783118480356499638942226942969923452815462615118158510549455778683426608862709464040091373423475684100327222465764102143714637315056105523166829042251657251997003104962474507998737425690919619410058581367842652116458441364400255457879720096732494155306454432071705398295871475720645333640739313177946799732038364247156207301899044460377283727753230124487359770205078882140486935768501279506504026260383299421872076461968560882323566968023504058041039123645250755086309217735304597079387404314732262495263424016042564196867512203950961264637949702734467782826277177514595182254090745721236874724782262635906040423812968892585390529730431805975387086882806523308639505328076649197296374661703677879605904585420847796687212604042272305611147899927236602119345527793124127977253690776920532060347362450986237469029542655487205109011683195940205194517712588983271764201219852582808343546555318120398938804389214077929903543173489439577559800326997727575178152661486046290993237811996885378932053299469466792165235931837044732856168009478815133600773154357581897442428444144987924238689954026289490508013647462862939665472104922587641655611950887869099987611641037841530980959049935296842418047427250841530520599752615220312362540621690395858910835644772231167140212920728332628582447167396268214167382927310379219591241676909390493459360535063155573513747312136284040053048335171697358039135169971830008375315622089701021550373304169777719409878651377199568161669814076909217881640904728392553546139917953254311459598908289732885632306133793102076893407262472009679700446202305818833866877420904625467157813996589861663902583032989838709236694638563536116586586615755674969078302797723253034881860287704990123176576306773214991698526084481880946377387852977402230356549727818679162544436577520964921353301232493885325238315456578186772086992366369921437684728134149495322113211702871115708005255888703180845869804421249040232338706247768877908976626352531869903280762748336912226981428181081183509167637237580172879142556927059461005969584051609141718784786898125906860452436011084081844849636962877257615221470252891782400172057775605942296594766498409075953242317262423700559738863925892662391858989086345072266279783522754510707609626915106952641600041552892177481579114909444656477266363314265405426042132289902791424695589264813021137033173020314040482132640077993331587545822688519611550123833036198242894234091817544854184714558007672204818947165670761579276776012792900929505414076914641192448178632534067972758264142511266983793070674274024153952711535227132321437345677830904026751761484367030150215461692805466420883186294772467970909338112255781412575168370805714879117903827802066141856057553986162288245751165762944133558177380316510949221524866561172867156370041897730910350961008081534292524899942744327991656929704520649148360447586687154032371341696973651393921278436073457931558133197271672248823164274336038589346030368147337488245327554886205103240579273770592563830640032929884325717004919665819001777493499521396819606640555296263120957384537191069013018388371966119910690054247850223483192733929194819555245917255835223853821432145374135203573489325098050629464270013569642471559089551240954229510228466543201719070838729735247999822864831698148057795482006816958675986535024111751859107025102710556710189180329957245781253668349735964719612696810476519592569545446559651430485044745077187221909097400729109733701523771525602714340149419542183576044087135226013734587652710306667068403513691174649827753062626485969646795121752146323921368788765162358950563747748017299379290287225776629816121365927421597879690829208646871519497741275666948137591243596135490313090322198853509736283481331877815688241985282840886129767430583464290046944496031410564093209128871001882994607768624972036345972648252871542815701401060020493753867351676359622070694328091771152950150185980689352732521033717604381309149155298684166170534094727359434709028429529386519454561232474160077893706439970709265400687069390662230605372933641704782134523472753296232669344803437555775118194081100823351748110348874745762644668056101849232164476675645713207312123619168327347573132401283102152989841966936441198782077289688911126585112131937749602347138650143310043560036124360414088883568507333590145983255000272366407761096430310871107313055902854668006873997906888646466109258642712545781901665332295240459726455874882554524338379538953176467203039217893769037103188919753258136815690991000641021574804200023162723618311610123982982120021767381930838523819092763403080724632987364307710886531612344178473806725383872402861313699754662039099484295230252996350042195531803884661870339085684706161290105583610650082163849125020270189522575495059412657031157815065680400164503302605153400931350125729077132173404638791166844572169296304243293145030470190786445286706239785916673786890796318813241134534952646446332827695218185849505632227827344862153632432343505807119370091420968558199111497369280638140387019147576407425596090778082993584514429965988934004885417209355666985066840587262613123735320555499457838299930493593441158262961575314107564363510163939395314220038117940320735345565223029514765012050248021984393613092351357562368293454678992056202962536008896181053152272507440968058744099981622246490970462825519134481425060059636845941018669481971410559194893266002280245711576932556684241547068464341123625895121166903761399431934040111909891156298039197830884703746798711593145149965868143901573197185639898219018872968704463894444851713607868622876182128512631661110913971085571758557747176242755065202619001146005702674445137604607246506341570623512541823086501203014559590862145624078647821004052418145172262599186764083970653310353939503917973923460541340493915813281124455717092103964551351762057490710664121205711041024986966714629777350617482240034996399576849871115370967700676919103455426651630738185290528184727317988223324488245262767962565704534967083452858646993829991309736682220045265114913105087112481947564522142633314946377047619547137673998723738385086403806609654791948838298340989827931483279193349087386403020018449915933201331921456391571401579032399757825980841748233058045786992969611297029115836126166487753974642457934560535314893146601644013802756962220261591451657980229567347829403160631648677522404299136686423233559268488007151619256495994527674444405452832199655041798474753018516229999267431417923876976376769033550429452644853152223977282952141122846486948318538462054763211333854295802756409932579876735987883344534481373420021446207905806636508569221205347367749863763574264049546645309460243785450993323736267691956501726406511934762299758957048770028894433566821902498870462814393691999553979527908333205650305037583280629297116265906008957690172706496070174362278761231799871918437383998571565242009233921144231380245013458814228907847750048910495295916967547509686068999016534354595501206269018935635582511751116948532790732914528508178655635105101390972862736055974593298964563734428216675371284890149120184784678559831918112047267783437215438450138978504726895721685168960142071320313534814319866732843698049269700155315181918852652377109079727470106878522298722134715543412373071794949231170022659580633530312122263060938456739469171991617070134275429008403677592568237475115847497356891406912193116219155869616443866713857183629610166994220276986730070991821872505452111831642731417538044313821341495442306583415058841838025513004680206009626566501580259158951772502547164180562086614847848015021028515037392374689174369839576997786156111667000379777749809781657707603437917950314695485609184043253303842375282872378869269903185549936384717847860861519252552889808105362692717717640547163302289034145312994926799917562172926343374776152345023569038362356766940084497584433574572392492707064081969778075709400725209222923547961571517307281317252399083850325958413505930265376323177257994405738571418610515379712494004438691450799565894746888637709747402939713228867806073063166037469437718690381755531538876366598470349627091005906027250377044985113173409531822466820742498635018344424578223904084287400357556109241451203777784936673290727525004263383996182120171953818534386590838581533189872337485977473871803076343628273422509836451375504716115874036185523441035115320249774129387745019857362591242499724877005062670533682489132765973180887512524143255228360293073373030153847736209858801013855631176565730670359905908133971799410862708303986681324480563264976423237380059797614020140439284320749071767677729781876725064133845222532771695916824527465656031012435616430080962856846598054590040553957388635494648476191714190044757086697502233594640306137221855657067161764145488240723864337312964096646403934611705822677778904809808181984016239608036380644328611030356689184720060542223563248427719442169826721199357094357203696158290740457394741995318425788985020967276427854710893575316676438187846119752840895702213748436858531837973623566802968682471024267007690923799632169035225339303811335335451903385769530396944795020382424615071943429186002573032534789757608121833297946776140187685938446926599912008068465865643836452362943305882202910760782445975708070117378672187873210510211212373068659651289734619505089093400944403579062887665672317632457245105051735006290639403998836633849060482003017824449210659517343896766207051874762951031189023053470797439266140156062113401569840451685770196270542138517800173813640100275978304567981164601171442559264398096949120534264711217690145498448702012087260422775442129300698357121801410542055463916001662475100228638948596173200060112988161134312133553472067076497727891177823749328885179228002035318366602820386031010979448129742275439356691216923417487838981286349059447357756027626949226127444689271760631562872438433473450859926065263933835727266059218967202127992469919687833015704583000886410805119340122637323695801968177472285519221936318939533778763074786305641668650652500472323605150041619479860215780329121791013547606187755151786895068063948730689311236175259624234307141793596025337943333735656319018787322458421097065098929816154369109889775722329878750476198303970075855061332793846764122812659200318889960103415280630329480328821238581141311117971672166166062720270018096549870614358008267233181138287779138047709291949963625883943755485828524308469995991344803176729379443089473265202271714070568197990357920654370859160036406720688998819404862690379441003185984743035850302558039207931156516236307904760297477217121556406319132962960932706792111561606825030161090549153390491469929617458295551116636784092294895075311628106997097726795447871304258117735835440016993521352099615265866016651247625089580912269605280419842821936107887031105901714836433606984524355428021217709717494157841933856361828483547658720371056662084045079067607977570460045359604499749229788922488758085517472343807951803562184561864309665391662300374756237577393142304492014280335027230811225454574249069553529239711332252734770102453535177785002875013300167998817973355214486622653297388099943253479866579658540592526513314042198499197100538943225418159752430703866373043559165172269475461925146805559340195235421549678534922139070294979270217964632392853647015993022695034346965465324521900694423455379976681816357851860043752162757318878067020273499140740554046749188481257774678351940410875826998694210214108291344571143600700438976611239902984866418000936453433219040217384726489508481424227501936734372375509414718500262932515358239704249425377288360596488793118962034189639658412716480917203301702667982973789010832340725988180074628596722666540307578071339523159321611854838399731419766408754239408029883444448520038387201316364160566383447463618552829161412138067990751851212001030312984008823712452385823548830302851789888699321186204737094954262569962274840825064486385771896897834823624131975422316041666002983873030823941572848762418036335233324786292035833946990059194962872354785022240142910476860854407376383321880082997774326086240156772727029802525506512699133102374960675807898520127360917667601625230810314017534374113521431989333346707730635623386850157150667971531223813052866515661997874472379468552665950124120790860596472459127434784315884456835958064674941378662301308127722200905830218970169983209112584845993260274968891981392140928959086456431769088036835253959472246630334526565372947808204554187782900349288561766816098802462251555087334040327060526659464683956333033536531022296476764611098662375348091771466158347786587907762325656954949908971093122800635479945348693242765206935526360322195150732479632010236334740291119250444315044234228774389641680523052214959308143783321047946348597715308311982642509400239639062869869961365887821654354176680412309622210667392483509502576545047381302806415800360595045580872169918639439776307593181402277375638146791100075553188396262767159532783213032456038021219860408802328688405212806666531123878843991636901713751208792020193811378771694279750959749700316187325278212577683926238574805649654177353185209874698617078440848720427359415404783107914026840799832094261906158300966007694000209328606310365213944439651376380533537935427136790097018774124206042712984872933085174782869358860061779580642936752735520555254668096814316050483203419159477418823737599423341237399154378399171695260424379362192707964794267534300766776573038107114326660517686585930607965568173342219640728996510517936657922382321855611940451620003504860644868110906288938905118293617410408508874667008823607555009380957033023933025977827831312120576126985997353353234087532570555311644045908980792571878441962115871782826372233085539673779124652141824622460660596686258362259463934148324916326135827851394385081549602578561063736644800049027394122791368404823987977319456247290503231981942089327827495447091571554711823042417549272936227261626045906252780599757556993079107704227338900786159008907956051345521990667757239337804212504579238174299315420436042820131622728041055642282880650949205575845438979939031141423676525936248840222218881208372838421499508505856655916443505835161262546476796077831381126857839295688675689015364179520588679148967201250592255762212170061067312465802526665792109267787044527669145052811689331088905013880146679785970249137092475696019440898853674587775047529115863916015737767880570512230672052298626377806911406474498544200800102972038704517208327966777807497001737404082690724126284595446068016321331971224220612270240934386831886214018032479227260055430852057481199997934721710920987317947876781577037645315199899268520858856467447041527459326673987288482011727155774339701558767234347144413155855875983611444057658547673867956313360169772890824348800295208951229505509129430290724829815132907636195575669111757530292536693039565510498914829372180838087662864344357039713482309945806092485451814822331989839039710810638569911708690724954619590183375495270661712329090177260690195123067949815233031456599123180154046155659995419995968556969352774335893462919228389647699647873644652422001290415110708888141781362494148560748907190257031565419129920834245715587935822688957109699993739996100127014959750545160143117904527161323012679536688760448347994646832996038279136368389765212805719017768973070585798724551316561682835130857572873512898600259867762561292666277397667500642556371769786758016541708090952605519058884915928237781959649574828640295316168883452654419128696982280769103414763393657354989376276287255229126400417249854332025134966533731955547327488178606039130741652328269276113497397547792922617680442558607484194792564998882889483436674265219656419655665029378557829989238156308751010584274943509501739410527058283292254545478210981171587114610532933262075061153052072055808789077273740109085117150023606909148395289478833202073425547135675822110570918469992441504121213005248104256553924105419015086828136722993798405476259476225862780570341480334285371952953352989644218220019597212601389668133602107900471207091465700178964450225073964121470451927896096846855837833556112859346364406029150727455245164052256688451486133055591494610194950990852157606679541266089340494772984740180904003199194629923246720588442081970229697741910900746972930726309491855040276050864070884216012312625354136080459182465582294258607723512370692448717074451070000452763627496106124805217236828015315229259762395982063657970563257525831219125725093289965905998911414935236741803953823505970185565728544465387334375211570731576448723762710588371229648149454177836739987216660938917386521049680136984670566214930316078057126192250169246506547834905982516604269688029558385011650474506946806063699518814223655838521222919863970729045849523446057319951443860664336732585528434120367400865278704415461599860034436573858200183774899165114396196364677412162087757168045155673834959161859762379209748507954206405779104926548192301389405154497577017518224632121025210272525900805614404669848378330968181629280476987631802963455693220865766509074897848825100073915609881144288566752958175460765880900407796024407324399102136138481064151440761816664587540772714960388223743561712169982660084345657525060844954045090801541975996471406747514486471246985191347476322107195892307144744680483846090016004383680039605014839052818693281664004307007295310328135023688316886973716030952298037402347205636736746114652189877716396501098263826683217613074310414923167745610636690655941825495554116576941490551103783626785106340284909336358348583458982785511555209618432590345750168374142823596403137554768221668730185889476418604609117079849984554323684743743146758093631414241422267429256906506806140915908366674760786570742956096814625609494007712617123900341192832775003016991270158660268526095045934923771527528819019662132825587229096245981403962911425786033517015493989401723155977890143468648716249070083380327077340509802613342635967916298994241862324372554428899191366973651375825077362255356463014463765560760241317288296881519786248298092233575402771029930932053030832610559925968578656088561797741631480521235270434490759720317889977134438211740267556146247271938701269782193146629042358402589305819143458184394093744983546035697643307915736328972581591829973314701724052888020787609222239509970421070820976024498609455691597860214452016032126220370675094244795429073004569088560173610990578693637833005625683441916564140455953215189033263501035624472360279012097717416169201235198298962148397766745808513441422193230492667740069555423840635355695520422228808037208284483073812175291186474700907294291851391886416308438660025391680122139876733780062389239546035570065506328379789807843863824177426481767710227286042105353017849357530215330432282397364471249072686822521657342867465079286271190632788463522073242932088467184601878318007884928792344390810183005263768116660372954051317315982477952102088937937441747785351762762564768202601330397022980042900148790850363095939115237025500153302743996692671753656913764320838394164013884345706463871834699368095511075669423567621837480290212562299559640947914030002124041504236721525360951720271760639925617044984714259180676915722910295027603916908810741897206702886777597095678802098581067862685388883819104820595554971127012673939474418451600327070150616317991812209637937683299228452370307173951823103449190768009581141998220537021305059186668172045274178268656039892137009807079480982970059398693957044689753970647530577992977219811962888849723365652357218475262178718718995535561103302526545143349471048626397979278916683744063663847330591068087286423042499018912546250051309279102282046401107691356529163846366501547494151480082746843914815191058817378135621037054398317857948969783949641590026429496578240021959078385530663661995208225402581855695517783509734585513286875116595552264940695294746794253981699155901101957093234947907814450505318940936639301293708888560964322272556891300601454528241676181619939967396282318990610630037789170447793366619304415709957062606022261325040926201030160460523913464136897814184457673583189439036996019483000626252839658421957736884571639569068146241124570407315247841710206577795625879370672257799760977913269640441269233321211171667068206648432430881034382653227192090307565144852275218182186008105676099052521312294505183145552355554662697758166158687152426212442568724731366884379629846993990284670541419416780192607402888850761166678265339051252636459884753888144441465860369226572295327730268191386882723886389766058654646759336516313079339109533649241868344292365832894932632965613951133544638141237527567978092081586031325198101669521968067287725545024276744523118901303594767607321635632386520785336407586005807202009311838365812069509600750601620200124232436997814057725389399135438875004176137433862685198634216051322154542685722812648181335487217290119299176133343691528275415305821456429689164756571485162379208132923300974423886242904809666168413601667959565239313311010572499180583699475073134028554192042740396983149447095308197445478540287747213948384333875931017978326640084138862946786628910046094943667436214451346161100461875489667901196263853498229651832020426828977211714327927691772071245528239453029445288517742816523646001617379989988628734190143618658835229267459487901241603767286175837821803220665247806278843720763981193299160018063255099109091405549859482115350602501979883000611199759588088253715489936259811841132658766219931778441276063108741406233005803489719548699275966921723587851685376016687524613799029856776730437609520258612086658843897364728725343089226847195274683463617109234974263799371307328942679722692192592970482278606833192956822904564273459994208476422193317998936218271880389199123263581532195288285480560499063980086433611282862585094565150460773334402840069093551441028070548125271183069104287382835436295557253241047307970815292604448735745160985181368200844704651538438867879120011293532996582832871221244863447334927345588645705777189997058980607369683371472199529747359937146420076661899765184489208877793738974718155070724338789984930516935987573051344702326881604862361324607490566699678882807866563470332810830971592292964582872828951774996938788421172797874356108139767794908735724607309275860223566292488584488352581786516688841651312525528134284398142146658412968895875237652019963514770555963269382087096737653773362896338436325718950742840389029506582968177403715942841993473913270349376336100326335708200563918362182949636566281179002852011793312158669118300864946179711119436656883265965472053254738739564685794380302142175767782434549466281873377251803510548270520527248813636286361780995274126110117149513155262988335951318644722820707078003785927298721759001557911125358709911786359986912718077642594797734365228109480953239375120655161680505288179219497017246222573028335334771823683816144797307499377367147146978044398196886308706946847137320321487786907497822905620331966171866190721430890837763214001993307973029191380422117255056657130208146916805388691775898512994265621561816929615440745195417577617042977054291016531112366504522782431119460133087908064765286959828289729549228349649723705514228218839399681445989867561505821411962094016871982407694917855746278981368908442729607278333589185878393413402312715324995051864153299068582191989566627169849754895296575127737792236509491253986809886806263881913568336411762055604036949090298440560116671978334545467602621509915782971753558542451474010175819968629561804194069019045893850687149213782641770680953051654605765990984514489864715320962682251770074508845908442896962029489198482203828325888175133772316230448529053341724669782821803171436059172569392203434689505828944436449156016815845930550073603645672463534809113065295224219217619560409687144844525626500512793847160535485502113588987589151774741219880711923460549615691816536849043357252932762830212341623320450237577651885867358620632228132756618489782463615397344585235449307542174646222567965091664345360728735276476026768511485752105531404188932961104495553117952013048355103813836122603726766153675361042717217058843264080552502874717144025213559586995335817363084938104183797716994566733043335781952499420280496156301575237725219096741243716747982112307002665990293462972932431195887389906135525581968128451785418646429543749491766177015858291499022935324054766817434173138273347308806771847498480338481523281474533926873848321270881176865821353504418672634176897021205760941086260855627377095971718670477882641218285336676034625563030643131127068681749594058835555256059935258458606770004063994358540203818619873841157802682724655403563823881943347098373196161852569772613554643119973114674191640496144514361716204414340283201565242593439224590793096036193399987146026461078405180036623122063505714083139494947588998451729697841591691657983905040117164809471972567606052983456708432675577916978961908222379656717155805413960978572790886752546173617446100935308647273774112762056655387240117988904482517189933143206917766857114353540173077176994835610269256036284003925015195772866480346571847764894552202749722038150293843043352210838516160358677773296729942411389191897230852077459161264953994418872868358574325943448773444784259973415379661733501256843694038785515074106414151415138020167593464333162486198560294916998482094129640726057614880128101857384644622428645534081282807602763063734304252020283373259434923033909864443909879509925454304811990486890903323125077481328408603800926829457727356908950396629770251156482200411727439774568863717574759029189188037535513009550204676869311567828513169833152018313661906591582949942675229672420425571601384432047397265029694603789323821560155478014782180904219083823146416593706117288112541174378488936607050685968228998616881764091690038656093845202574172079459249085018969769746051281995130088011031166123186578400267019443974837854563714272295589745462579427165700740011622813261183850111362740797455260317253200339583619888904107187062227597887145757881575141363398077113990310176200388835221237278985434844174874028345215075261939118784190565390001009733682118576137300759997221549526819458724471884690366069865557315807531627774944082081040324224033128219406589875983888001638182879995558864469369355002895093366857757938901448060866506473695397739139649573796856922798688048456319310585961176946532586529622092928843720486577370938064174261286395221880141321215331366169874710136618919415997929457989801269631165166914500373808365411221661520405527039504537182055950887495570676237039424782931053799104759029811382419704342567767182219287843271998931456528043391878550829418280638616291095062385286662539708718599455829106846005076142346275695183757563302634457854393225326618984776061221338965181107850796229516902055979152297680689219437761636775284757922145099917363516726641654208715865841039733475166302617564362550420499666784786828349744239738501287491806553445374797790787060672479742465517823677424538641989717499369889200337999030960067595081931487036024552200794771826480376820688104466213809561296374472615969045608614447933873932709047188978735749039450796473949301578966597834962456716497136978057432792974467995049445577501425546097659158769872160028183524443377115553281699745676738882383751337039979460059427184530375102603416693324236191438310091263734549650571800127874535870277345641873815220746667175698642679806345740785288108774654979444064513316377062331019489134602622363890749692276961711017147545463763271815636411070551864419378688856080104516303121212185694416632427228029379552511362429636310659996893107935023144979955311677418324311620528880653591713204852764736095201880370746936803807273889208306410976395826337085966383036460110324748462910098923189292758442550947695495057693986406417609488506435455566742027503794751355865485143584476133044948331020328391146563706733239151151985997218632782124020577627373634141722341871387527899907653478831011884960716347366270210725896495820192708690621430379986526284024291821052183878721261923620284736551902302613098472222797856084410073494268466929900001503926962062787906839806048180868199325039197818501024206340285187704225783562955090112078295935016263428627410822119142843543436713674816377018013613670966780096039609066003466360076738902458962384370185074850804566119893330196504441349027311798480671227393239933806013347264728616585985393924174731846789466454534095988588486002154534709000830013173831286913201113976602958333513649753194385910659671019643133347878253918874857409246325724169498015184599783356381548830055541748082618743341956889191727694571206532026236227848484310035101364464180286463169008002476926373572708603638550432768544333837633195292816677086347225486093435535612945311354914603469740896303262382259636589371858066153504995490240962350620545633696918332024457280368561111320104233636787489274394446497206128717139367465966065060565928346336514415385244440140722427129077229077732671654567689515431678610719795276665069608388405636417748955460875141398402317342750676158417908589323997370059103735086272962878084632370854789668507826594652146110605002778385889900704285492245890760650176894431910176101002311370489071744692570790048213131191560897975187409925242402156676069433212412801789974165593744961636166095311443075913386062119638052649069443310374901109593151035670289378137170933416134891274156312004571058205038848583632201860798242030032460595446154839760242548776444168846426324251691876646872505789741007476475193554633494706842397050715616931004833382959181354429019195322611921258526053959886479414252376757756384119549356677063569629593507599989180464257638577507867319949219947704772583146721480590857399683624824178056848004614543508503459909786569852033633835134244392273482210095572056604501291374581149568741018531286193777822954829778493743618032916913807661783256257746227700945078884972730960630092261883962672798966852512106077250176880390629206589499392111352559326128244475149660321290644205558338656976651217073868536963577248472911336648103897559685965662826334231280782130812091547513298919321092999646153498272204479247805374960278825036869060633106789785509233876142437661005042321267899840335464200244490193945459928462351655221794731880399945488316729591275946176927742079901465344664211778967411622184041077251563852076868573651460824720926936579033481151778740595112703134755297082094988943661782645449751870955827041462220639736429739545078032891400963477685360496272447236150506289313037198318519625481340668136787703465781369219167997845569334498881075114939421367975799889683328638414467165861678298146822760356665157947310677878956309586576040054282664275964423657725851913605221472223457409741345758677920949984639628816855329115180893326720927918088544227423686406170588040075405905069859514648782161042314324899271700417391154943569627381435685833488056591833824761942741646382397915230646266974873024876543267754690625996890963501941927426186971853807047800457805866728149332706103771284210162639172608293638517415501907873838894774883554044865601033528941218321064195120644656887533246678001738959571674976765018381653488006012043396676103916746946772460011649162056659177384768159462529334263930237283507059935438594357311766421408041317658958715403954807260455598824165643417175327379143541063190747180989707787543265936726195161633311195984302077296603813596212844119382173955869972680835026300769562676952360489526620883868125507818320385726174079971595692588595293193622379235920504397550785085900789783615633482363039900003550025148439031866565142642271673367239868562532908259082289148013612193951277003721149191116875054462574764769013478480976628292168080955145695899168785129550760607244366335817523078043608134546004402001527434527324257361419957293750215161053788984741515156390560525766051036584780175328663659612160494643358776100736894442491425759877575736211303468572168967631129268161581761908868366878629763188811881439825740508125407821357730389245494285056602632809598584657867312254350831556314544830471314694203959648384520798929670822787297303740046090595271539363463373064827458247054508841906135587110784051082520446626411377732005506790499393287959148762962963512012932817208387005764310192969820670446693813304816279154225952878528295315358672172173924619630435966882082009845714604780098630401180753147786437533782745330057416556895438429394636834368650303815401933019218548607692677777056620007377785236067920686401822350299609997599817103245740035523481209885463116050015430816438777587456015989109211224908525350289086917389925559185618523414169117257523808263079792265124689958584383706443279610249045455360484297466986243358749932551874554834190171823297793124990821949365193089368665969512933413128171002296522887718019393387011260692779599743382853539898297527236623741342897753178714245696680262291433764434715798450851007940852383407508122782466754441371988777793734999154085869823748241576308285600246045656295175912048131281095236115921083646582437557282673013827468149674306647813443728410351006156973242716609179090541867388557727905228205927124009566634169741755335190330455719568259904366442937607889497243932183024551999975781088205606367756865151521553407602582778712864073798293528355521556287321950523082540321417653281418939695314613384504364549152515562522414527140337725669687621175383355869837153184383511520443599262168309252813059240863029826710772272113294441926535619919501490996100264320413336728381780841640174941274825304476590226350102344629083675669351450773398715315163636121121865968829165471038552394032138108359406486478355754884127805556605035934422751487466466621670022795508789436475308374733383263554372658844433005598467581053308759602918931805563721738068248921527597458549788884948635065439917658097461219724236106020449550499666126905258721195593863606082302918739240961118528011236241657161556660505755125388472732227344752492983207973655901119405873071878829788935462380783390751773389286618842223688321093090434624737395463402848660876452308310695891275022960643426579083185305839324339086255632150582073663429935789107794182699520566528166652215265497987439824228355750764274973458694637538346283717368450729306046987578401291413145010308315514554470810890702498787086644728338624919154251785731651916930076545447738793948166889436132368520161215831596744112525111546513908929000787320457884777262379952686632374335232674732628701469839671863064941506037346720444194676820501267770094292297311183580389131571236408585304381376731649936186538817042225277531818214490833428494006507601387823771116617918182466400803042393828709123376202038236187503774985418818236429482384081209863838656637493953011173768601685314527351524004830449499639371998274498914181048946782581380734954616965475350517627119011429379985350766958898060467498651157769077284726478812393447695502361807359969470711640946330933855013862458287524752146945117725228408101590039748793190372183840544434051329923693321824047008247182166357885963136931190094783513113431234971607263249729786065603751218191841953688385044649286719844681762833199433444895409473929182913875667310333686075580704966197081688893002320815593478131946109128328929202756299427961413773972708725495409326323941825949442414765706418933643967114830575789119729125352301213481528851355390312956376243067003319211291274295564407485377973849801243050318998151253610315011955927883183801602537840107592701766797274034119831113347912766563293039305718640498619633143638430729995766518310007700298928194088422256884591566232816963483294872070290081180902975533605068329673584218004512808921767735643433693550797617966581913238489034725444555275720655278999881187262337283955859980951483234981144164667360368539399909225636047254626389063045739108638680954610362456900963936281945986656374831111885589917235810216817791601464220543506573820738377156446427371945762668046458020185482685683365095847960581720919175345866661954318713817223118153333844194867040788081123649430330984920244400546221278865788404692635175487478325743670946919284157918665421046061604150401765470598710063656456766523450422007588455337362140418281278764643066446949177875254890782429668247900195528759292872633441223487077606986620743939696104064169083871298322573476586194700839547673476333446218361645297002109682964055866468511326577618154151408741946417840031374932336970711434981380590644712945419353531218334004839853855801414097677163751356026809958002158892047518891790608293557946742451300522594401881278128436854303012960846727721037389871977855927495866879437280517438284602036595827390610469710813768229931532227278997772312123237860123714245836771918666921014232616483144089573516627183136040949533612211882000899782785548277526615241033233057355934370091153273231631440177073314624923239642599018596984500050653214546824172163220415273384568456274221895001282592783704948765101288141811618096589573379955876913199695458771346487253683643580181581152866932220050559221077672449361873997645317705209759917171866144099622430698344071769004831311977664004977075300206926000865925830509459486660090388657375345818267889037004852902843163321863264269717903932168280214379103250915725853518208833367654700340170681432035322892717154832241135570159837492811044767835621970959901361892821467882264200539504256657907146799534117055083859325132040410061208618313630713312548430081269947122045215148252362040030804741101091417934399568314485827139283607690553817251654730451910243139495149216426896726556510003042246848497561130696051068390988234379514804311438014305709197134627178393572320066698631550645980967474995869827584668026116490047764495484416521131154616459849764312956423959908962821886096629548580198353576859954019960381908340606699833383733250139882748661224292340523315926813499100877962094755770530743156845958773403690239330994344884234409439899916823719099860196654187884125665176453787345787325244359306627918649269634265469270176796806688963772273736474759477089190205166429821112291040003546422725058086187742025828297176763367192833425085500998760582731770224612925333364911520192335270899345396906439918295759277989762425592611760071467230482748631953930647601680368068033834792588732561951138014905354389952572250530436827147879925632951048560564389539357219714021177958216882384587870260490034992268574942439837180132761265307897964807883233909174821012961402125785021609517609827564828735580022376574369041349869347609293804489819119340867791566844216449844953099379882830520706171444690038318393191926188309659688224930851134647891358496733678916907390277145444620972433557617196840506957940358084269636204814036715583437343134505523543969253301233280495535602205890942034418246932719658212401228300484582422321718281991115905679235586099573791367244290638161750599835388754956512452594294722207399358970982765663895477351199231984482636801123597999338794981724625614401107962716681857981764397411788591178160687647525384553965944646666226907938309670581715108397954612205328083861899232968200788029486199470866742804747490922203501398060496989761877650094880773752251525679016481137546772754086222111130675980331904180017141161338728959816529182634017518738770985294881828121517503144070384024811270585413807718249946951765525906806739994415579775360999165685502105986863324026404043184587189367239558648506635940778250810554981047251485316670657044021411009910797308116962048104246622843398034916495069916163467019117607738419487734451106340748631360523198962349946752391195547014906826768091866221177356349432675569380247552118741942674205361973592850284917226293408330481969712111283143887412444704844046670234828711629210527441006098381983660825452597290754032491207758403781774825877110151071681950688901434781244040830199028436966132379751189307388210270604621153353557139171264453060923219538041709256805721918201549595030250702960101563114899084181116801182084677184242384511438204075682939227602664575686710227672110253534255193063586254480273151891239836330875167192953892062021124024594994195117442211245258516715466158979529800750466379114591223449028108522569398908450096393404506703723199744967126284964033122169574296167158658928526134337293133772825959897643023963884911167458638703627168900917604455097177915620179360771465464157982843584609232498831609509473120785534975861932476232551175969518482760984460624870441358036081452714077818851153215565527629204526342397941892715778354775068391716248337829358458903582122104338248153532385519154990059182426071759652716450255407715224644939456234365133673301145820685911442381333048979788681806755260361189029305557467268584936395151333066404083303487330223431283964568499915805751266637958193168998787630865916264555015754999696680933074737918181943524566065758264589521988271232679042049595803312482954911266061555797590831781031570523089461952124105348592263247823541184491162192394501263586145503485819041389480904126567067282110332627918334996519921056470600270852060465504916534471368126076571248590643210500990089787167466869400891290524811678149780405021465892227498449256194800577745266450150564969806395367739023509488782305608327857319406770678347512488930784618437202222491500938132127715978377173620721172770535643383933905458704375057903696414881853530797772099031471423201197463869098049188415022855638839478093224679623399379816476919207741502585493812086097794079709464773838887802745536876810521896973231846078729811885718576510801074016209748435975600123877320066095980667510455983422586159919480835025883923875066888182757735298504331650016114715187667968025172520644261272424725649089780263121917455395565173929054942067758241277970454610459254722596227372749818093904783271771956797049403316998235474066259677952381257037686694607372417723010640569327619457381138905838018843809839360687575753886842273048645070872504482659966008067497406370773372816515056283415832175390451773010768171257073048065677018476271298612391435493839235951996630892828932684680692648563731524699455374497765176717312880228900037841223800368841400914211389579062705533951126405370621360207218591280943262068678436700598712246553781904527430186029724751722087247273643621727727263580637044570456723313737416723890372878000230854732843090715359586932528186427353356229560972121526386929701449988890399114720077136772172383962588779680891730183623147464899605058804473695758665245523285510960029379187109690732391273850637679473670299454078360655808716072654433214116332730605908284163581090402408179385951924196294057041225646565929770214814227692610939823647421878746131923495490415665430122304216540404061666379599930153502527927965603269848934697791144986552897734424699912677062885396773527819649262548443381349190810919966287290997729654750436843270060976592366136619703672951198808718238019812236277026234787764789637355071546473383659532567881383843162326641335278099980951018097184342935395952204393324914087101790783440955374156493178439988972482461797155596247460029413445781305541085027534526596643903623903185336384924352770158185554528296492066326781918230476464834587408204272013550750795771687744094373192713562599087695873276570319530371689134297433114885726257850355810077538486923752964037758564057356684580070089571737545645839672167585836278188524674932888138392659857227568879315965118018793529148685668348116542464293391870780083979835237216414359980742042208129001755264258318826835345124384493013160077465422588677758588081878934482761715314127441889058738841443917550140377887393030717534021049369129507928043386510193968071964576112333570171040065790588331451788591560012489267043814337056803949976077273399129523828414424112094631655158326232632210608803102212136296294538961673557276637429803972192025223546395917899974441975080619364142034948660185047347712732825902647657252155036220382191790054947986610843007713001392389955122164854642740558931632469994812593408750582856912172195893932755057312484111090591508518061673451010672781493558711271587781983271683694434071838607690792181443461119233901053983765597950547823344554937160407461080979048826174554591028707124909043660191672012661524601549616543871524211046838152072593868017006546053831725041752734395944451326343962264472456929514397838065175813898162296186885780084123222518584568720814444123137082072407861832723857987246908876678340845870764762896034678780914500441998608553126251737700540836883847460214019867709849307808784296758583502101409501159331861993381859889758875289674396777582582023011909222872101928101830970106869441833300677726426856651074217701097369179197184397713025792139339631679895556032032366485529017087619104935839190609481257061186294348195611440957855611783951963503412867672853092780690099062953133548156598950815642366090837181253359761742535720004601140725697850927639002150942279896354332045846799940301070662293629919443440488177719670301191901572224073340140054080332003113409060560884476172070855906273993945728372736682762026610942305247116879813610047698151191353149514573850526701913990278908946426737537130430808768426579373483046691008896812771208365260164924064506530294397228400396723609517771657394336533956746953797297902948679661666849363269343378164670737753103995515986729885862547649175961865182812766960369972799948754552197834048746030155137492887101139034881377840632308708607508837311978148705922906856656698294019377143082438686747745342500703059919872105605356329253561620957329703106244439116988526194664245593756527183347302815409420159899375398952359674020505098621895319130110875956735318155779281731579705935676400033163986983700318338052400773995090801214387570717173071234385839435785071106073873133895754870799999238255576147755856535790901391323102899619323306107314184934049942130289414944252821386764776666537954238886806294819686308743615775166826325270894088380948387974696190261295506433260946976506848715896161355638932768376744103594688478961868017385012675672185617605528116030325015117066936332631752882908127085034856342742005681905282982024602457198315744128056960778742710619132937325941458722183559743488589330416676118292060658583733541789735214375519025783791519615655465276534468435726355549162480423557022044069885120815460937126993722811523710487509495205827619139227280292779872788934028394355359163650006362805184664456110379536122459122396702562117321358263157036189442687380821933171653064185976017878960204677723767292963804120131650375264573321502899304276795867625918191543196606376496651187924796173297060572563367905146987325339626377751357792070613617623321042030091382194042269479050951264882726935095652397812841564946377303878073688650992233253382866815638814258352854397589292751893103292988898878146827849613503788134980298522601019509524587800023079174440451281921304869139222079427224233960451866439851944122498834011902141371043741294069352552950085585377132018665627553286702262749435790166200658748160891744704904080423332148152964923447432319732660072737756001018265794190780429562708804274919875970539816997192995744444576490539603981177662682605539740896414921110323619268899409843302136244870821238596936781474304904481410480225093010452347482978541721316030747785379201091736377673317166870061273966202418251149628273375056661914399123791478851569867087382475408449923588097854782152698331927805355759420436101944704698465414010207783224944913776153558834431637250328084119582284850794655872907600233822336232027058406016629105040329590268399296069616041467497953240679639463145284707951768690012446226769150686579499218338206633548537799935379702704825812172256133481823860123280668070080990219550540365917323395741423903988427027699684307525235225788599353332529184179340075502005092501114491699369003354906466989548533955555906464186624106913892961069794931772880063657862036457574838114061051864310520689494310042395336917724585896409559449519807273378728372739847465171435307814913139561742519868392406399920643093769306755055013576881308503462761092514949558139402372960223116038199378237967033591636816000412564273243610453251307300401647933280689363517694033205051065672036717794309763895640438448605743688942012252335898707901586116570554073339990822363324596978880575476649303236311834517116376728855603520446314861793147737752490147682256378632857824796563262574286585626500897222860240757652519808578444610381609854929358660477261776970894699137353955207273906409644625073453856917135315009676921066268341172669595276409542776008467198101254905968775790057795416724306187717003817145510426285692582496199618803036574837057500566600366243833131809754582030665297673729330709527339306638544185507723800678043141105583888672667078927769322885370423559700215507963932294639086087093514891973121195063908742869779436784788113677370089878788961727058278968247545981367360451771198248325498006587183868258513495751940502440157243793380881522032985805860448590017642295836594128337950769810470874278702653329337738701976873017047616664964977761924880627526700911269334875595578136144926672145244604871975188227026566277489520918156396172389001420646107733205950438128262915928068898485353081293304023102679389023021583367224108931119894925072878040692963830076037227215209509727220241370588744760784705743934412598883145798728567525349654120317577463553447247004992320852383952551495209778112073369720360551549841074263810529562699104479204165194625051921445303039058001870574594364961491168572164741264501000447651349788921249403071077661633911972897252967180397719323050270667615399363590983605695287916208524553513608187405078511212174551156679919192834856454954845962817426256375153652038954529965380984334979334393860625132500178478830420680557032891431613478873911358239546393488356745940181769964835001224581371234581498845275448753753707374129233146104481765373515636554751946258862451416485734915453109553410735798681900275802859436905711836102380448659769297222288761325530301972988112641569173822039705460296980462179213777829558988879844677517122152435335647067759384330715853311941835280527417577017721974684937086385156275339939181830419382852871002267908050600324686053802001408659704841437503614010042064747042721685795098372825587773704335465140068256864247640461590685169884347669959075603928952412131883603245213027755903414327624250576461976892211194060658913470437704538377485529661195371388557497281540877206140021461507083923173610307235502088079784923581461388626850397884861931162317320888266639476893802314518773747643480944725556153060775342802273776067794482714028667105245319295664324273581841738380906266186301753149778476858108818055458801038269295952982771203058004418304521523719066379592423891024456641024595199759791862588503039516158692250623059186099191584964552279275495416248026327861756267704354585859028837118989737954075092331585717179760292083918764317492247084718908283917331101607229555727613795797054468331613222176511000541766670390835323418753900944577659475402827965129201735429419576134666038642574894964006652378439559575509668243547178719644313649511728909030904277134174153297535274998945748066247635065996109382702973883452815180832328734729515873040212034421192405575649845932491899687233354709282011892551260697390234798949399437100359319855895017215035027379614982146489260152025908580104206475477619193820416635859178954768758260183634036904339094435133709739801501304704238246369763736750361600635006792290445858966737896415141197508507633447853251389415514349106681473885734450256372786147099214307057389461908134156221135332396807785577479399954191760450603269054747310688469135195202802026288640620955150913233993114414891896211561805341274513952629811473798417407710880109405423744685677508173465784342400506235592056503308491820067142317502466463929897536702999266331441192678144721609243657656839565072886900328166042703413622770739062005609825268610306902179456128010769057816092762080320346994105585087264455297665524323519057183627214412364290134305436806410936660529127152582411039732051020391601332715917488101333415785065494641278416010261814134451828884408811422839143919299734957105121267839009230736714753159747611316189816386096121406459363610101230909435221868554131138361213437574544099721150441938785330502806851837123609889698424927344765628192601214410268511254794954696551482545222055914602207694898943227368473841070864642476895113277408509254095307344378045766252069440845080933456554621746504088327187047766030014683703236730251175156874142751191081572587321593119028145513871435835063267665580077036856527227522304724585983539808346445003959433477352249694372268721930010808673841685994807514336763565363764534493718045394907882447776736047571678045855570399952705232609848549947610939974938620582351031138907788186370713128583279341726255595116842993726727981144973271119625537408896251336748662143954334351069916327664779010627620369883979341248756350633513553881734217694740769917588702411577564010890077125301963406628879426053039846867966806519125976508139465691781067444850207589858924125703851810246634240521699930330762793520588506902707166890333688271135238656721918623224281377858831324436750097169949089171940514490551279763069051292561833853266705237555914196046614287102041302704624039263388008943309439064394727962109586385795231996103548377159065420803224184157416100167003844686324426763829786024004796143283593076954503218833118718421803940197644570073903740911541375420179267756085048367221874024872373624332855724966204483277070483503032587661626654722944384408349154043225312104873683910523283272770992023472172012033273506271886524834444623412145628033155924724922003651191378499723591180906330769388041146564772227983749460952154645913658963837660625043908316403102439802005665158038292104291124435388788428442910434119240938972090275556989423254785704509771038164211562123352446666446354065624234816847918550571620723550007476707320925371555604941073602379566933054778099858580468352049194603295139944021811824878919281860531788336289659812813419464538096033765792053907235489299580372145226587247944359771859061563083021949708558730363346169794179553439165952818624545120242612294252978224784380471418881035631040784637208256143997636940894873053177736319313486056557685474788400055634579675824731521108326336146590611543591859855849603361862669281766859664515993901112711587909874907324242124398495294298858429177942463242565418306032994323056231155005333628756443472802343606111631296182078709172236959078973984293250274998428667690224045449230915537273864387267961616087520618485026320834683108663221653567443263918477438864287295413454881805718926464052128964838373152388764167356992635662582038887885813273636128871230380195302705502222920399836852646926434434115689641215678297205037310938688194061174436538928126324875910434953669365691077803921272991270733847828062918328546546255005031948095434376194888929921488218967724446840336566115913454873780872556287157773169608599212202186186226261800745778834707609031190422922590265197145383396873894166893271894081864858915911993624817184933148281292924871682120363086010578944696149611947090523555835187521716514770377536417357741638913930771248100649300643514924219766573643218829202695158618121590181274650564023827211102892661108742570701739446189342422335751718439487731296373958594075964584725935380117845652181430948342978818909451299815080138204745842728026404312691400683280697228962746367197083847623538378486645042972729246587490928568699184503970996071107324272550255195252697254330755971913248195202563689835288501370463732039889194620436949127670967075181738185242407533120558175655163787729719888157143330544356797440649126136276560054492073578781668871991488021501340948886695283521204639481011671740845089063311688210051087008522896823285481000160690226055376970171562837518369405774879661047155047520103970410122507258943937156436353634135724180695976600451357157496689937613089293642075736569888781141596628262444998251914111094895022666683958050572327468277732840692502771060834749189002246037839107324858389051554495337529603509053982382744817317308896133543514564141249753645587408284824292673656384996813940608712960428034164725347266323363827110420130072074780275121863137925209421334499665006494883702466885245636153431082182526113173773564045029187894063100595362971609695227283554615997478546446359802696540825835329833153022340979218290721647342549975978967510650195105292235510985750813582360363333819695627185425856381741050756040220539266688296186503044634659175968836052943967466125604700862096826852608877212841059080518526455259439455942886141346806480331014150304567207610734807599709349939669442804477405988311424348618683152160590656162342583779238292224453802877872124650814291101714476177371503190268625152517204282260140565528115977799512861776513180375128775695130358680511998736916854853159741877717710734666284526905780794584125294189400366104109535557924143440903296782213085477539844664623496630863233748824572359193304558248641648213232177715843362514606517247044352288581887828459929054333229390759114535473512363481680888182931627993573585596226011953611967735967964619623305574310934505899907104259155703460849500857280304571001863027771422618967537759959532478126805724909756871686966643967314750197572698250387428336141576934076955114368330609794181594022058877341505768639803083652718813513508500326010323855393338569780602298233576528163987121540678788536885740780562104553701543834737549976564079095340272970816532735605235619448000516236874375611428629882711395645549799226407469291220837131104004285431709724261406778059857161417879803516639262827833903392173115914908871117382423245973360161870687437058875549533514521117788349061486291294620786027976144610691713759186297414597388804253813973680253797331767233809763702427280050454112527104188065680654017568815315791070490320986479410997133383087369573064337054186453343962658750990521908319082598011475559156459876739302537927830965296314281612765969652006437846805443518980863564936724477138881835266995214986375190607174418466799092369845561057283747733661665830841140811204194097183909129783000803046380283167692836126165209787613441946954129620109950311540666289147689923555937569792656534141966151591430956941285955464580030568993799986836233077669701229058944496379163121151921142634318856121037793973367581637844425463575018287019593713945292262984141182888849940185097172488698842139102159756946743894374696142747389553941430100900361414877790282362379851857409956684689784854816482662636549376608929668745916666212235617349375112194767600048360265461277195662967923821368895966930145764632412727083954266023438128346353384536009936225353465531950761987234285847817156762981833746790126802355267377385398537145252649643318712523690006967733251076552546564401230166326573099709594511555805571716190233203992272678598850930338276794914370887303938232333677506180222356005471077450079740489247825192302684257627198757112743529352818713993089293883396319960954681991064014559505284514631536382163934681136042369825231565680735603263388425907704592710959968609805217955621723688884189294122237003051860853000804128937642520455766764122444081263343401785904408722613602027460668584220706066196022787986150769129643479282876238141902122074052485567348323293730641089231574703036478068330701282027860210268238936121842084476301713069207060109461640215579231030013886605057695711708896239415655279808091122349431933654459979830110164067749178667854565479580235431910845774084809948131832527130587467718515777165256069068376775684482146643896036290563371956074196991201598964242221405966867964631134599510718359307341632797642136028887888570713138325784611522398199993888616538052280301287853288267338045842321509563966247864762375649727295710034414498448421776341104850971343141874713704393980547611975370319771262340573961971698770946169076664359576898602741276889410099299725764380804694218897644368010643734108098136251274426327982711993350045606829184216308290611149295650369375368342599394534614983263995191956797706164298048217511934049858506954362532962232925320052187790804053356816137819876405775795386233137804167441346138779006460755313199673734515152634822888380873262910472774000219363394737563196551506434155950174620168899493586078001803320537142428858612553154186874915484863668094582768781101641549548561356975173525638614116743737266462006047067757200784053922096619751046854380495908580334590785838555317426540710620141875137170381710530601551135034886305782543022619212946623524854868741867607464014976842537484860411093144207872888012923755113365363761733696398111206048616275907796619482779823647535866789030424848295366448938708950823521428107376997340746892595157829505481451988468948294838399516012182656336241013759356450540167959847253956117856388330687124976923023698255403416648343646672149543617588879830489494947704820696963008698789505461659979904594357891146562681935866481005108975777361544389223111123644908270504129603841036927562574833858962469011196914208787184597271415887190943364719968550654883667581070561540862117202698296132468148579370422826794555446493943695624821248232214192325772346995874811563472360966094005829451303425812046243102574034447531668188024390679230550433816538636650271693016772788971505791287525426161317005837753093536828834244045947631771916130864707668875058394638611297135711938865032447634548869868762094445390974475398415275262813052824177782523695430873986004873602588328796198648789525877166783980277582598010654015507174434212202417615102519744377327865022643882795475987800762498183839540446921052167564266232629921166159636932140190872240586992569014134487115837581172084437501239055770751308777601115404799913094661335567993594039370990480532102715025463935146256905983705086572431043113468825843780693163577959150511114424989776284025535205822864466625177171591371944926124729164090832939228584851930982545667832209081663246161304138558534944298869622656268131837242914131292843602677805951973793093744428631893334726900908482877653102094105680186570736690430720682957968503187692577984980620653575514966386963678849768932688850016351612314576008997667602499806813343707614230471621344426294165378962670547498128937213900529256610434872598963893546381579881098745108361332330369592863231400377719188512304082219905045512323370107393064961164574992343069539953953328409177658719395204578774642966128036901899152718954024873451529488274732896671141849281285613336465755635750411871160570089406893613846176927114055263396759263308407406572755766940354882470947080731932070500693611087637551331314366781163013850217223984931119994576742257142961766208963762330237134213270867927890186213061867183173323781732708429670139857382045604613636333002999457048136472840614211375088017162515275380053791745439703089168598408764962285117802251391727195468754397927427405366280191378222322235797517105305400994068305070834002007229618429718281754555780673938261467495217284257063100392362114375831765836058072194639077127502108794584494449094329473227188402206001655234264789681410765182581577325686519921396558988395722953143332532669605931372036918442584903764000769965835244597864651200131225319553487755846171043624129652950329433398628872528916766032310309918069206757768462462394773978475939068834806123764422627486054990665602523439172880450014705263056311446102349105410665858290269078032979350038429720549555824683090919942411352759443724410077327690956817006615553656239842201213487942612535116678779399332152705920496244523014041622382204844799402848521956880938382290068047592039481613890290466614615793141358726680949743678295310732828666574618910923874155704957258136924597367265573587719762132342284276284500832875416345624807113544309023982898673430659105334801621930421671410811889524814064226407594092931870498037989125337359835862837071056713746333263183094331576634612893018955163373156275783670576412483038018898826514228572121808424056456051771232418788839844314307355698425561348404286254561912188049157230896822398864763257931248890491342094117763447526110888704789877240719908483081479595546861606326448118219389153474088818244498389431216516864627192714636353276420780857012707522687702644258004888589608498593900865560191200689113309109650891736653634053661016796142169559545087321242533525768878810667833111743957537180081559137538863669682104101504933361898197997163995047281984139436486606676377369957859891096314631355348764678268011618842269071622542804223981486971840186786511578003637452855748933634427066140695680149548693040143354453986957054610569027638493947710747847867364975602791621483501359184194183544653305846042822900495956703193807631268687755216554473026039183118482692927899352604778357740454621934148071715057700304575753975156815602230922351110249398762619207866540393304479356376889410194461283761877753697957136326769869253039937211303791422363066629175282550270158582789880783024177730365448856498324077126421272152451222525294903353742174608409803681133246665023066683062853459928586698699711976859354532003944947971545695160139791335096544480807685352570634585094362418539965235530740946489020493893467024394972276155208295520342666589668281242763622170780262462399480912006424466447135602641592310542099389419364370203835359306060555495805355675388978234198480469357581318445768695247941563585800243767791342242928744557029385677998049592261443656879711022930700837202233579523254260160030882141732039788008422350845076277158681166268635544710623001623827020472862359618177102971393361902230474829163193143420067987674116126938652372900905454447446845336447290450419112837514554739068490746712167382259685852065929319607510518868623822112889128434360837098265193774613243518650258823205134206570737621242807790784577434943741461812504182759948003472601842225159132216878707189982186880674133118755585902613283839956708066751950255924993268794534963247604764501412541308738745778922621790668492071327750573265430951441296426108403307781643593794572372717014275398936501448854645400069524300937906813761550964137406184599091419656632364113745951372335239200821655458614816804040841669842695492831696757155659543994775521520886188600121916250088397248777297355950611628163240116183219169974853983659731079739837211351489724605304249103192473663477767320139969103631596851603852578326015733818187731911927979797876409533165009049472759830484129780561016875099735417095092691749869645399656849066894804188071568365214559707335630610273623261421143323847562888879188448231987459511492878116954228634210674733417285659552803417153938662648527362563509616855506328685373946418149801867363839347437372643029769401790540906621366601662864020451777620642568886330072086259554901931574211711920118039516554440732318922714590534199815782188237963526376158243256550844487563866111301802272944078403621087755842514851198265269185674464443366293499848502356067425141939741968116448089902688965099362569388978582371328431901511751112664318464475214137579663233065872209486564909125471021156048968280093138439594309175660530147520491530282667641511236685824096248640016646885190878770764821762416055429697880959687472012583512743642375416996872305990938081713754753344737418301261926566218944703717979884858950646700379973381327399762321114757121137407784631839029074833619404305286314009687427202365822851669144687261337321632530567974862677342098659434741052604453868364943472222602177714280744172863274660682522785170297440857646180969256660556235475627447939703717762435606589516493361620831498566007258292343323037541496351294448135358662113186859892464106952805032655989851040085913386735938249077101959491172083836829788595911878923032518460499011285928756438963953565980544501624245515649630412405325954704074904609239895533695678803739697809959661331814777349656096200317286570795067660763402540863914450090414903791175110505643865343557982870069927467922375030991960164854089586093289055262383068970690170321431836804401830911064171568548605349895273375157080215006364807602921609206478506947214454033735492870389878927368114095079969775942564574466312558547061448091150308933911429548690276705268833211109047596596699277669371487592785385342941346322646300149276772194621163642341824950979252604776920499369502867237466670007445908751845972482713344685193740681443351056015645948625313432008078060942095171400250177610734622672221803086418483562792908121574429759743028359975689910241246157042528553633536228804415624542038980429548243453416675967940185746228136039595642851958910988253105547479443516709906717018832086439993617273762711627367448416724416033224013114908985196574411691535297387279367915686241669617301519216491367198378381370242688841165972384583419220771371850537470451577004879640888581473130281317473783156644825827474805241900134113020147320103345694984035167554188415758748253717052435692283436733335020747687899220692325364277732103344210552828662348379467663508191131901726043977960145668217462023207422254685737046819642873915302595228682466239164746562350738434690693178517443870439120699613931519165759615656526395187555130835896610397686859548999671494676402181444366219723004941217003260041659381578784877200869961513930855578238859971976373628401710077170316241804797032129818979073266621744866978495846862791047648408560296098029788154314889109394058502835740970712853668838572085583443229425489461749211038571063273350449427864992964887935163076706915052968573393116240490258569734630936577277117934862275713910248234595770974755903013430576689776866634251323708989274723116858505000534752336710300707398970157139526523128961451805547000147098979867829472657532996151459198498005099443018137896133824578291322585385243757883891754040684468822869030982269198780882255562715134676013615897802011212331385489858466109021930328865820733412859468028846952353292771641158159994800518647703221482392968268087077352030869623243429522762594237908341940711102144681747893904325890977355476576025200180557497311786036176467788102877874314707936704751554524561994170992691960030115283655605816608019498799072951102816282534916031916395978328039148508030367202734207934692941246270071795149021867829966313560717874184769298158835222673044234966626340335540306498456941040724677361196070914921915535482389532730876993553837779729440436130597258416684813197510611855336293312011817530079773934896842474196273885510465451954591094332493990290107407571340366987719462582702179191733426294779862475266742040727656822833091955834230452708501920999793598626076166138430189659616555815725250238475574715463721987931162278115223846587678383910534104743368906834842373825788341179729309490372861215950702820224729829311055308820742478678704410659238841964117478105125821002430605244919523596225106866495880006704674786685644071716828652752242598931824344873387513028727769177478872120403305389625061542395824387498169064247143353940046844806443952602106273880381280208819660850510467654089993593231797453639683821742910369727391599016090758150488568194013559397541543766424448178409089281342555616271561397347594064874937767268574666151117667487190921594999582471202772630225886955846199336739112930228478604463266984247135146131079656850132596116451281691494259913872811728217040135164593538926646111667664485746167115018793653780521740908567532874282507088709550997669379334231663081365831972063603839133713407815615508495801826304378523419722845142525110154890217674435793047515512296166647381591828938693982115161303657835662833804068670627085570744359299166272794402108612370795312421574666006400176862075077159587195276445970624081080858779949360071542380768633967780041448857442444741134280941180084389047293268023588527644927890160529895521782663522808448638829099341681723196086306490225886306776673380001408840951079946709708293059416012556222505897021682477811742365774469951377415396082940284845050845949846090484544879938197439392855503737689675748079258373747643264496695888623157902121616880004641264479571900070578755717097794223813044008011272181238441873066454661813078118185690507759855035453287703611041302519343008347846805856390192869116510615694435323613724061070623228805646083642253120811512953999315254959440459094189556020288784642244468397074727859292944669843942031330339509927381178471508148063806102548879595837705482663544132572085036402356914356971048241536313531951872906404196286586405421748679742603519287790560359038317491351513887845460018993930597670840107206141260969540042588900701931298667337849099617418464264206766355382871702061363114754370264774458619557500092745707780318803060301260758054386282636605969498216838432055737620201704598212452342256010034297285668769348682883606410690099594020069487926639242275910564922356085515003018648233985886041846803612389830289952263797364289421024180874694643274908456958344798540251683530748942805664190958537127465287994718744120667838447126389624253148224528469931859298973932392710161123785211635427308816550439921027877368586991174490881744360626428322849949594506165619210978565199616675821332334712331958519913391590762311039280101115291893150797584434868206468721972941880807580414081662049198804786151426814988942298835987274370351275875909692109852549472268217835997639411325172407804832948645284613039570890691710847573598849127302959357952950564134836779725206483115606410580745361151133745941208008030798138586104983955990092382501635400823269955374447133572406751035441391252847972476673126385088566433559891406374965894349318640450909355338584912051891946936359376264431251591750870827257562165372443141519458626697358793336849459705596891595341339710714359387035027314133730255309961022045794144734117062791103339921040311476557696585653470648714761380696439621690352002421886188384712352744269969443033175253728776425511552716709435498985609197623612243707783846876213243940019220028623892508005823200044953064281687709587337401603632637805009460005640526314635060571612663691383344324434516909535557673394376395925955153521700451450308623710831068643878315744073029733791494256181838593931573652560098140566387297764899094108733352771104113179031200970394410496016338660331310110567999973473883379404482716093912105234276582493156999929778928559891609424690473831058979592290296402094077713735036145697677424460930123976889417523722490048728012182448172882694779863149305770389349472642468984429292508308658838532187477323937474127829549162909013805513526028975308681940126595879185685812189002176860106823490744702042352364551382482426446891096951427677653313648853205521510980461716952820999967929762368340730937368448713185404733312860096052289171397861373281082565362867575348368673098006655676713299263981972359828839733221901865396632115351871425814328514330660651953216639693566135546138633300832666900544528129701055258077304360553665615990071188268437889115074197467267829754177882596834788098405962224673659664959988252364945823216213822909269689134541099706991777826900046228866550022967651007447017609233922068748842552570054038806595000089165997848067573710001882831705600867861385716998101719256217440149220328036826062183277651628162069799329300408272999983240522014175886668075561088439667386917544742709696264490694448080105572086459528053755219046484316854999151826966124396776213779303104970018556448594796491123131926214742288430839261499505357933037423842918231819701927467543937161251453096762568176901782567862933275455495924779131384731680867917264510856149940394421938032310888289794315224092252933995030255451097058319750913358794969920966387148138234450926779373429671311122905468964317367775041970094514538004959708039620171959360047344986439096953650227605766425894616377183659510184148268592947503586356144867496420912700585394405990701733335319438268182963834110219014722154891240021889747854677036636592097296776751887955704455484859992443183583378335755405587101630711665524227708483246654393831266606621828158427093036366775226841776228000982210429197350495237027174354252026742637514702438152147256325712496679311187686590440000355943264892240829081620837383382835872627819170737396872630193630137595128156345666430802641704039488566350527924124335754201508824431613309974711331150114196665889791574728213011544424495903960890156831340585368861091491815389851608956971793077039191503661412416142657152450486038053472315150197510479376860663593445532945227906646430120513434694966540240553558096901749621293480746598567468303614139689061133823501108813953486650418139616221743541970416672638256190095673791848883316220900552028228417707595579234658231995132267189423275868036250546164200469097839997612163352070343223687538140304240728303568793563562253603227355979365180117359232277810190843527855896644277554255770272514357222871463154902657085422645683055909283648150421678302583767191496001956440916596531678983039965326571420566701568792021344571778947687193081341088161349343575509202450404318468996352233780563999967623506919665532142328845737643970632262906190951837610159293027334605869913351981625775121435072201613646601829880891532648237319281491868899098702630211225045588989402728585345581699301661937462335988250369544287521197182488295753501269079022555088987509184027549928541938052778369442748482289147373308417616401649146802087583038644845629018540878755858775926877872604694144059979001124603996972352422288427534696345833813465766021152498843843136356711204406790107836263158201730691982229516371267955233747544124416864831838216675942859903877036701164842385117759633953559495375560681709017584267202625743204148482170651757380566671388930802088303509582394388283239428031742333521814601420014451985653144041136423691151298065429107291802565064221429099580029111658015550006291054988454720651870843206822713088889642957498142980945446415338275234284084753316333379268193224650502227320406529396914939916897156517561508277880725277186871985225117583425662110183023862032269790986539368251618107961486172829517957414883841177409666142833300230159129529596712078474332374973375596788079783709344290447090377645535300784711490916165834603445345042996981600770422828987567258507208326784291442065039378800250727164179739715654045899835369998421528407576376139371879261186649787674342399179180233147866209262222179961223355597413982765591709216601874485073506539039654238904978805960416494959860228140406219536987958550322671736973039465149002438407734001198374919185695371972990238619867980459419868324221354281036251140374617269725604125434193273529528760172056321706566952053617643001233510706621028366848139247763966814285353917416691039599267037893583867292102037245109108867206399291601241526486869931598965768567462994960760602015412462664603658066581102233318581227517670458729251569714633849267295115683379279194578474376752809586197815746124766237958367239191807198216969954668515097411818409447558976030593701158424441645021214460750754468408323907221414899531304961594483922945024585460495739548197385408780306327297254416950051728908877832820134523715744839053096645788792547646892813478557016147377248236135148966472069374723675613948068755581307711554726124699304697363149542000969851053597342524203834859063056944706745245425492446687019165342100145321899907619610721645798432094295305752527124516166776789315995635031833493798798803751728093610996065492336427385615720294638837871252117998859677776607013735214658660031323567147071341681158709715131717784988085178662958838272119314291665447538645910749220923066437011103012049563361177342237277569655176661365269201912081547217389287626751247246569616084068442667549450020403746769516331181364391559597929693275773668219980807531209029823675266774301776484448981694488434687258532958808684000085562323488942605031492672117946517511168000857973820274239012271089049646388205790662244847184667098656335713002188380290591404353421854144740246673810983561169620252226758282203589906779541764482942436762855605243522658181395609315009167103167075268128945668992671027456757964560096480494072236188640303649712131761112793374028486148702940659607513721118289297882234799313725616109070759316869074204612541662821798955346446385559246348295164499204433806506311881717281619873260316145719600310104919299393248557113118597334649197145150095485557870024600285920959573904869804899659309071381379919134581414425103389514260908674726203640226721774039634664651277204909287160615405630955180069754320593402091834438287613208474459550682085078191787079538823091914409932505248810356185342345869443167809621395456242401893074847651397130112720351690655244509465390272383445063775840109563358076899578069152735594592093157189676760573687797945055850776335698919884704244130266398640304589639269089527931387793814423980786054112394389443948381402686889727763584288608416395905949871212891297849130944457048089516350632876054111776713663801960329892259228637201824967002871617078089396943083460991195826102094470162316853431168347818440425045514968268352961137673692072330621871050367522680679402313542722992350703658505910770446009997011024051146792768100962868807108841620703831289502111749626812118540820372563354310719518953129467240270669242509788498788043612115681813334791798742086745927055219570708796640379408851165246018518830281501051138473620232470821054953259906925819632975971230310900335185507043842957053560835875705800275057016178190500166119752725706234992430300816915560905525981840857354202144159892736761827247867689973510999854997493328719080675764773778331395637092211503463504190173510260984392893524154799599816301211326653993868508329472591664984767493880642756663646781847781213270584229744037091797166678136872206649787151372169510881681193506035108500458327133505295312554808038139559991851556678504259534293068454747310934807730492770199162907292366607702034307707515256769588660665452780042766551717505323696759800105557730956029121989716041328844144491092858968438719864694572278575073208555988652301384294627950223957734728571971064337846010412383283040217318658667434518608840614140766904866145724590470267309563312596398574361283742939623215897531468370902761053629006095350560580506660999989197307362033894430658411222095644205083480035868315015689051539878611730643047216617490386571670963200826412403144047790546779973652187214733743590324062928341690547220925758824502017974827922998726221839436037895575151304783393716849062608660729302801039650051237305299605880554876796600875333678509441641022199131808932102687348233460394579278795541583313146221704243832737258611899035273465104373528938779074939223005180843663241698450561171292947323624705598805063348531273161781161537076325983450541116191184264263834271785962473212873460279859057537285502188638494422777032414110217031314267547648332295522942862883859154194575841455806089003227038737579371552376261423336858735614409254104093672406589153068124653178676626284379131941970325512938282740640280671830326021419413540749712860217548542427988099275150010081719552939430446975674835719897907186149175683843347154091307296516440959823777789597509674860563109549554326378011130074385896720239565912096403399518075155364538301274337385470685596864305654354015184470740219822424019221937622092837204099126796285319260797915916906622362290220264639602757186116469237506580237485794553539970053795419545441838638532105130900259826220320289095867770994744290279137303845323409588028818336893467650434038024002568860878562387782296900762583770390961673032852033158412958000385792702050233835300010215362623632099433204367315991742058929062449398849254788502048213845711860963836463231061909525724610049874623497239063157993272386189586959904021564350162476698302987941011225564678259687484280583626326665198669544329328800359599654254757224164177854008629449481994067152234070648961757650361497716820069128676874995394400358228859920333148287869309868600621952857820582815131783336470728834533175512927730809817981462424299381916044140445024666425587230946204710127318864535722752229779729922056980320089238446378824606163817767576237721564863560610564215180125119113705075562987217930255329086948672168202858565498760897982979285867240544978657065407970567516825368000982562847799882754707749402628003576564484022628607613620424546477031024687420492655329912507961766242270095346788976076220703113079053690142439481672212128368792343526808249768692681451750378381347200225286977577868308371763576088031678957625328720953090338715961497671883075376133399724142368970302202518370678756308142093545247933316890062595706694757159810167149417667231065323764743713625257042782405796320632552602982480273828247581730254256906191135723895469023221811776565556765813504062495668070139780911886581868107474197820890616615854550050863352395809184006339384489726092871185313670246447027267653042181479094271944893237952950281594183800347995452168849467116346555414981848870057636628129138163359417408850604179590383976790382897227163972916961254376807125510127459644923538012235347343561990452845560357063086813552104263047164380793529779989893928181827642074311266726330497234587981251392422147486424012094046463247237172678307887488513342436925672216589113221737841297933313776769644530062263883885308780910410080633768317118227053334822320901345095776830909792955478244954542069284606720305963278495497529475596785523308011620107528229600944501684399371995234521552026161993947816527735134037112041179530432882485250130442280099236030849289846593321538921377696705924981978817574211520250770503372459417195037752063418891875827205608257319486714729458550684138698071288106724966109186865017048018562452194763556156303628014446000369596881859282332422916580449555419677053991136538928192363642131696086524700172825542516105566001141038177011665363039069026820797351510170107457834828307113239482213012774284013746969767710608750933838003035634990598011600301127968210028438543282343141081960253504347291493927612449911050514260830383607194699019058545245478095006459718933791485114528734284481617877152854134397653350506238503421660059023376080953279619885175624966014497808032686519894793763793168518731082180296585293568623238351817109141814135544378060224480867399919350396756304393565232052704368079239238865931445675585590478458367856081798422530672677923123501467949760877056795650611007016629588810979875022520060900098201736402708002028562155181689111625269296677264699167092391773086809629018062430367144821101726900979135122358272415438943613613876172336767117014438064768507579863910914623882603781907999007005366208575283340942927627278203762683828479689727336101356814825822179045583325718960692267006425278118821440101460582431992993603857728018324805745355622941514606231955110884918186560283542456560972313121132529148683702096016951482024288558951212573376555407085476611962995454770242566149212967410093124146700127297317461365048845294257829752671727555829798130257399597878008247677555296850273981822938594837091874369733268826428163263063906121144992981253994533807864892812105167286749528163908083675947773923347984696625439914418254247416909108668342881445444047042891038338261839108966767920231791617215339060155934608772283926560869930844839624942240377089944372766079116365914257439092375410330139831088506274805270824691117137227836917994945958340213486766599018745325196003009478659616789070013926931868395562744089422525445904439038849351220826996801328593720283964883941946822675744121669442326722351515267381372731169849237766334503119633570281396549300416102094284473224869125610866815670802752167428547503260863347350974977077177985541729087941896489519110305569325912629496629096666187004365190741553883433566663644190801950629340014509492707957988977410544874994754677887042537377491683389976524709832123218751371714910543753632939135357237057215472260821305389335701134254111321486596797450303638722750392673436255252932915792577901191434528504545011890035601565823189280626673252042224675348440236682026323133207359295457462201086278312195762276923428294316678022417853824533933836838683562062355237459889074281901536554849478622457997175230178079565637675238558871922810396097187737216553575029901916873416118683886852380384925483512833877835157343389135808146865987029895665566932619569651391413680008034774754422268911543024378100893761258147207397361908502108725657256455117140822092788030817305658703058206561792943490502409172657127348606232072246465433097479481671647957412696682464482626238006286180429738876543226715741744399135517041552258287066842008770940773875366344194258401011150785316120898373884907534614757807235346297791018466703054149735335342273484110579331613669879428673862936741004861300074504820581817105974993951832723750358120956408305020304316202489940976960672520842802745484596793547655432456053902800385907726120623244102054686236445825056260232329240186590854088777760496766615217961828623383026648725093608397441652380947997453656772033752703105010563097785639171976960132463935014966043732533954594803848019588437213701921731505563350412069834471638123268006520154768413389691016503113621600698310523595934951076725691067013761860482876629815257690692376013279504057034881115856230553446877938475404591818318066345426212169280591188321920210100872805864490278294897037860997011670694881523466677512674831013750451586866248020939165105137513112113441519012001445006309379937601615655006825526774979293090485723973515773317122185900665534313173333907714227089252130602507076314997569964109850977984855586991357650904490767127152983329420006344426419774524485703422326785648361995287325510794315332196978772389798672311646073633410261291289505750635768705642451888733586774273273200880334836548759143986903360992635412008421631638636502992369930876525200046006698145281708907207501837027542509887379455027356085118638059017819584041478183167342856108069224958789195739085016731859804496758674758804773761846450227437525323154916323502270277607357868447332143945712530246802353126891794308839385987739733800530085408569918130959465694555367864052494864426075384634360021628040901967715977338218733125192045876848843919050505818498377969439273080520435645195064256870373228766465843276220798221326948007048980613265128850020637547241921691972347042873318031638523927794697631037657022599246237691834965306598145465238960818494859524320051367744434071476388148587794557621175474075220613771056882871483113423949866863280186529585474876663150386027789284498510250893921088929600527193870308092985755866148188837093715493904616150743303331926297152952012037518906798613183965948468722376306364455485942107260936964812820297262438421265451173233631982490458709130593827795094052516895995352622884669156591008058310786764562549309083033168974345397596928055959114229183524337764187146685462168575932200503296828238730332298196475339770479435816507254102848558363732385710941198441034478957389323831751558065929355678718574977089818206494739577755945853612569289149895324691766212523309986971347820053329419796949676854007201303750644042284885350883534744461655310780045729660210706494506485745540123596439485896394490041811432546106659603624678356635118603941753181044699670497824044089565870626543070662137566326052634431573867154906111835637753070826662206861745216584573861097658135511586777274627757943716053125411237317615859737033584505483623308116393335407850171431444195556843816101546312687524556910867844896862516670757679344276536792951638937359799991219879451416589153765646246244306458777834319853160586929658148275417104780103461886421629581554917856587710952172411451859559515805655672233173891791850122758842307597926675032833343978906032663693658740349857130048852533802890645231770835409924893898070847071872042582765783356341686508104772153083398397771206204704446849621809177504265985773835288094610377357438658817333207367514968835509871235321767370559509922178324494932158222020035019013646919394317324193081846271214627540844502182878814133495664012153602157799652543028201412368765138219759541666338789805819311794405721402812419136929504702146240036313340608265377409950674458729153672378938683307422286723551741747480828988339879754069761427000522629752525194435129193987805744581640988958813215908399540210076946990155809707089669869582298717936459361023661199803558831228354469185882585670203367367636817775088249836042688919084967186305143106540512882589360841321129930205604397566250180386671196884392802630177219411702701396953592830254243920208483288619035377485014195392990517914174405451138945876395105367857279675782873243688111494849574859931850721696737595012596374748901044351539604294584330199006859326649168595649480547718513577426544461846967447759696410021059133278486792250934018831777761841143912767924683394064873329908488458757922910036744839291678643591599234531556413153630550566982092271990359647991671055431843024125346744642932315361729582940042398501345644519081158630842451650731251932160429067338416637152676336753130534462049404033569958224555847461924373292305615522742962012780386711374573883677951983093091329598239722973705265160215263377007314627981931901757488660919083379088674260204660852348778503342266956483737603151397736669319171783040605597246868992572474171555953834463728008251286940664838512824412984132460226429651667561697166150236955649882841023268784214156293258902574252997836857301347032983491243406949635469331354297430516874727665337109232038966683403974043178750855733865313516249647833955043905859312877200600931275187843475427560857812349878193710964809014741789964070650233145009654287676142089656939917524387101320623002462624785929530478449399535441320481718514893345047551082197911701673484349158866382081012090712746961481766904778006672413672796333764526522553778175149966189078028395373500149819552388026254340235399008400136268512787813187071262199972038874648248253365241411314912928037342954468161136288085688909231465551484193289184578825383589888505567971750675856879663960780425982600847619607925695287686741610268589520783372334392258932368014035426299814264229081605912568429840366353012644241933652654664343265375097841957449410674083010986747460674956196178995889157069143036147607010577214864056820542893300061868091176636519389523427672706762147909976691750139375589594022321624336552221026196251218220740556084989143450023521533818904988484440648011187277248157466748324183931073731161204376584979089086374092606312435085506824621983520989617071323982971758932726775862626729413935749120888915409798473399660147304060081918524898517774563620882090156270637564466089504328935592638699977495478650557440389652141724931135191760829521787991434243583028987895019125319723552329477407210883124269871229065778612513614225642425074208237641306363708679947965984237663433943882510829957098351836882440868204521229381175241573533940553186867399633771017769738777590116605455805613216273414117967426287838789466058032917950076785995877687069373913900403686601996942530497224355501577330432837995349832630529577325803561807552911652645272464142045528033382608253041219370745912456134457587032333611038634890550391929955696439150484960090315302522004382229606846883979048577412995223530310450769503441153900716110601489897524006198605890438951729917269103320529755565864848071928073807689644661732416110149295426347480329959581648754303373412823544386868519713247518013179245298144208793710071916977359550674778842836985665670740980504962479645742152414797632684354101808365348620361423522645745725856789447318587467855068981210354614144688189727169709529519931749840461497128919743039685992923109532739636188365856352493058834438481989495378687942825800158326423174695928530835569026099253253640878356842254477464130219926230014396993957032095138566154210048945009309306364878908327893518595080728065055906110564082987605809225692322816904921187557314431823833763882714773790438987976393324972570644131372358099981040721845396696672497278375120651037570634453684650341681506620713504222329480449743448543106548416489180903592397745226550283938390793561908563863558218847994935216075960799349976180329201056542803104873919668763214861585127983559641354917519926484228924912378512962655075210466761246718549010462066031941686354944934569365880790829960599686637065300199082470622189982301574783734185673416999255543744312945908349106158470903835384451154160733364206868375678365594966172640631631858899714587317228150282143099496623220030631947745344910344854969062358502745913804285465363831080369451705947418612688124779850543825086686768618830056596677755058225031339840768298221474806324917039763360554747546615477163814170213028466099945496514518560422646401186880196412529723996970922999903717783227277936734783833608759504793803558225657566458825957088150746780516458791308597501950142225022315002714265066519730002235161670691775465290318362700664740572131631168633769003142116837692133801824536792215699734531810393573392249761035329284582911106541231038426845502162676789313010880489514178886744825597211148599215947745117241499880499885948826318441484898313144974996813118705814040679380724985009357522252245816783608444654944422338052093040899802898562311783111214286266637067891764275792759225846543276441817295716881907465954098725902682710956522678912870681016572690333132431126373907593208201503103317510068474693530928298169458990774181475568739120230466851246734252468831984453250609010261412845393550664585735928307788643198955121378850267714953891093423268329103985436579553085148252677109623617906581606146924524825255329220678789080476478472316049986998183536288307949475523171914931148678903013110224346318031936690840982348742377183993245672637765578771704871191769651669878288109651331699037895934771611495044211473398652045867059331929368126754668275582575154057236324744801233025998524847876378601887670995945060397664875534358320089568173896662600150729113121079181706197290720671868545345806917616273055542408033132649323020560614474693084190744376034751978220961968539688211361402777107075709345135489117654669876380547874486328082002694110396590770295065984232693995348808913758614338108929239785484524540093992397841581311492367091800045029124245208801293703670405256546488224248879845334570836882630765173890775738112032220716651273849001521899129545192313086990185412073864081522554467886757009731019779488361140123728477039969076538938231513240363235226082353974666913717630628474139479632747809636607203902156024125621049933210789043262990284475199417313051415216510579553651714999982006488305252838270890993775351427500175947661869528115094414874743373743782234190620526019213895929718826268282445659128896586146030824569607518793256925394321155192790665348502786358224106996090705911549244712827560291419168323955173323853006683217381848612810660770673904362779310315754643333446447825577746610025429199326455259537716373064356413069917741920299871388811171419022981823687814550493608396885459641287413483238504546060018922828481163139667701720883149734452603507315501298866870250300597505140523761222624154039649686094623258645291721424355449519760387003240296154759751001113998653653773352740941851083456801343589126195598406302997105290764777491424581551060195217542081000794975727412634282150921515044781917041842755259049123645897798672278017898726646680055226537304620552527980796603512504907483384503016391233482412464223361907384070157988828839874506478151743505187742896582174387158874037285146591809958145551619823693663708635821612578105540461296906547892933364177915774011822696446320638860701239198593244505815618287815800984914529881868015416948013373706009703299200900241131053290891987079275378545014393012906684280038522130827472991804136425166510528900541632277446940558695195545283198665847340233800045228424981542815017334656066563334067154358767970206938669809667513328528824279738361921872457606046787146106828087012409769915888711432676773470783175303144546660503364947722055616548226201051418012180528511441230646750057043509099990453855232634883378040012942131220310525137689277509476071865290012011871329599164026998057850925721081038821166434083366219069316848071445931471334196933277406853946278528320940515713946563257928722508611188083107711752699995012607689322342829074198084464210916450527863715145822355078381545706373383047017389661317747020811096006046109463367173234137767523239893298312652340066909460351441160160344175021616966874265595063526878574012883884916875912570742138568756793591335116406638229301877428116623737245197535920142202491296886569269944971308976465920862336810555546850999635554649331201157637442520200850433491251793644177700856240214971868015104652057822160723369317207334347316093549348151798742004307170417637148321339972433976580138169799568224350934569241619693952675462219544633884461400441080478702949995661586621196984384390073234821729131742770733510970111823386417852195928749700982298169576234923320360604875813777477993712750489094174068441261752871925019761858105053545329023963715092417290157441477388034461398601983667353701740709433827509119052823467430482504582593837279455544673190854719009760724872675019545083295333230480372903455757486361416886424364461821663916810844097618369248666474376938597167435130292209193804589427406076780976001992650174323100213158130242361544057427964838476528553910257329475122405716343875788837030591681693333491530169701211706417231093978791202417724131037192766057115300635411798483611854027341649462984825594275161629790485078728432403200156775701717557888211744770857239660317375389703589973226289714946819410157594875493877605256665733949062413541690452180067419297441245882681559112557246954860720414501773461749914375154731714158117940584112548862461938789893566863783584163369735016953842866304193497407803093650507885453288406324371025193182660457258703413849437371094754412881304101379404450554004651479429865021124867050574235324847693571226735616770878911916485799076398551171957186084647015221104201181272878405456506756207081034436023653329552781863379485699666168189220530572532784970757354720657594169284228662056900143246583901583783925018291961823667158147804992236468090560353260859822560046749204075778067986053432269873493148037115758211721882966900510391350735678849081072075325043197169891902138330583553371482889428194098059095079493959139573194275246887190725184576320214097739467548130758053652369061840910287745051572817788506358189066882636854281915505941639873679520549503842915275425619086558372197787304806038610956086044455623332515955574035751519142244183272599852145277850198211866375885029110143620927404681680648880781328998894443893604276886761155554575447788283844596363542167101379494015653580585504593138400531774313340153891933571344986026792442539163455930697570276333035874255915791557024404966241169587171732706659252104367242481637655797080020037670411148131512204141138801516165386686534099003186792696400294076079946673799929101508159981529215404599373518987526042835472417415269976134682504060344321630597064827329419297259787043819765050881300573765197558233261519958641089966075708265799453492907512054082573403311600510095659117208161348989547126709141036259445954276880310733950332802291985621435120038065559024385728558715581234335545786577552016799330321474899544265751305565346042363441132478262581141242690400859427490210804627923477616227339988719293133583484369199229460545706676162710189243631531749056106816079336841808701882414746571895740645596452535309066499188124895030825323326153420967764518319362316249930250698619059011849927985494670595513480308605705231899438818893927252171962473574614684491860431220893679555215094337711160207550301914270258753741289768274427082508436298389893145345230869118216457570086855647235076581097283935963692923847158721608731875227126756534767310053348854858234021512543687216344903514109197387208330839528043310481502897744511424948582430944958646980318457699759594627704015935732457933349563283745155603274395952348937858422201200447294328517285801620984821253839048577742942863279514198026240586254194141598630674695107914230657092067824721749991498351379749785807660546022614619301982305865684770942026122190543635638698844618292126420305139379214684818194587636839749777402768220495211358684639634615249004954636931146997512488554088257544129529862383281153563709722942392859051758917441721373021801877016070040311502481360936916936742204789670813824022469298309693581458045255523698417772097042720377206235371566328555821205447746774771715731169545716683834065880664029994929468209960498427122475459728651954936848822695474293670153866626780151685684778143912997775841830860325847904428068267411132165741503583846328787452641546048988066251453799766497450836891327791189232201932098216919355549097292824716951439496122620055156750959398672054413315253221883783437452043530999165815851831919568441604602280906506861702350892975713491382816006859503624358184756633347286006150103686024136958320682838009717816918927664144553243114276609683538062529379084499452768803377422376384160297734066237713173264202648308862250067273114643278944538605507364754718139528902722225360682952419733748568816400434393501105064571661714122255475438060425550333060831388631702726211234567412927318222400618512200313459213298237119775753004392076784909217102343070093660017846345774383226085574744569896328649086073236187001918516978405893888314198316476185564985327648029273206336284248602392426173056449918928340459900882367767171988536364135547252610541491889410340861362291486561737233802619293585544661107423384296358014754852238940672289050563735895902325575529953151634114624580659718156791593538610190758133048053423983445828623595952872263514895376850930542995113597141874190650575882267445540165750123215472338810952844600534326018640827078935475107358518538725288877934352417142738981983014297475489080450990600074593404054071888073788474248726574304363394128875013491926760811764408525119807920814112711625810912143298968997408556366322419872980845476544245580432202214221437739372314457386581916169360683351508306082114662495593352016583793501059823859314200163696082076206418439382911779800671515878458372664610019896439801546303836775348528891863054911208437252774059939335285089428657885814661053813176458531798550409457654338351196746640793940538114214293913803500563952857773328728103327153270975280468363454014838351084297493157928459351440897517260632748639463153078497116554119340826026329176717192274756721086783265953608350349602506245023258026527463040673244695106229494887839196679833366989101849573595559100436185231654697565048925046221839787924412800391640034797464902825891325422291464618122677178263628664285361793794263340970262740661697224439323900235151463880881742106679104725011597957382352647978901248131907907390849997314164171629883811434545378447610842909978060525654973796136635046156799386936580464410294348758499548641815357003705822379663885369043440532744276410220688754189841983372036821586045609601731149443484265251178717489608501759523309124085498895550014093859420731660560075875776078831890289442179670476498137036098528153784536680774283474974058989360880245650067086728782851566547991789089487591874470500302888131471521794135144339818430688369471443444740959474103902021961025020166846517981483711346664234449595196572224190514571521824614724718844378871453628453723498658112627706480170223851632220023091672045205353744672180205070674388532934298391674883654746032689081030330360142485480340121596496123675463231129930102915073155600709112896988970099659586324732253616727267043392854663764610011171747222307703532195124022707028489022022358495056249158427314729529565685472326721109090413157913154926766567456329478574573124690434792428051979563385325331358924470091928871189780710779458481309700038241501742223444587317348153385544784723764145111944642854306680137168701729440505547297758465571187520716037209381417349238093136254915821729371609530531244532730684218888404645051005737261968886255148700400340372399877329685157715768999051591600670198990975578060308825812629344335456079283377019296067061412125940211370045629378016834620314877744258827665507292878641802078199967073491065991690142037240361783940956121839398546941057144547305644577094976804525887605390197113716398992924852519223695670653434235611837588044757761657678180309694048003885275549038741239822880362063705761442811755504222204142612412424490839360617333569165608588679454668351986650097735268205124439280577862063801223335431731984652737313036178272104273923514844676663963714397915055327684234776555515084752001981448489198269799249715662301280705055250501104910978972710458700312333543255660616496939099869964241916188558064586130541181219038972935611281369775870422221666683776336221469458627764790803496503060388778754575119325958174029475592541515835525802061691009035111917283114205935047255785253227929834764338442030451435635520980843529108230475193663654342325409491229148823807083237923629824558543998044126199001087309972953850944004758244577004554124848253822529720016542327471090375099281828145536490910734856045735083089076213664236667775645537409606712818958521432342909712854949181642337776193353177267873609750820845274204395882331472380161514010210779547813650856128258341797015412040606724728079677881907509446626425880332788634871718495793723789824253699255469530459499341305194450432073774843803251684708523086088426437561272370908713613658592495203174433538326147571060129459908399801339504079065618791213717731252670846827352255033106401858107484423649480715590748441483834219285748217389633045866060490730861330026834116394003338921186617697180344934342263752532504388348352685348456678942329325487439931338528904119697001440231547433010243100022638126019022269057030753977167050471064210589923548361142344229991368319404716142825354414075395852720348107317024077243262614751318945066225253049702955471377948534827945460958107385875101236366727183947244684642349199972920375962497078922235801127164994009550111314155699948082592718605624911949338280954712866515148633938429529289524218664956099920649639186318121918611746745694366158832335924466227284295468039192181131662086857536924483959357465087755782160512990933144903523464660970014043589072101394053444969519145472997240438597348896509467193632433084621608091581540170713130051558512494206880495052228283611668271151321941196105155953524918628926787143869088935614208375983666936847740794322796439040421562200729376915218300788694372941932887502556997281776899760281340960458032679094630772964048940737233538252070422195475429251472509807368267350068287300618042040785088381842035762633047797429123021327016597935496363307546367868174650921900091575625735325038600997327461406438321746261354898935401538275602381002027901534761981690325221286632617178993147047149608852818543119054579933514150516922269960071259518877099929121025249240035655654021516414462937959641706875050454840640806920371906581873235042696259895624356716049493591521309706426043985797683018439463452550911195051683184364414663158733600063629470299182215969733688896534191131655753921468082423484773757012070194187848179284079047027582466511251475593313716037166956136012935474179876002545915274747518071213990463623552832897162712977968686593584122250504196351727635368078533803021124988984452772349432758624295826418696165014672951032652317315260514659379299617110565916721027935991343184858790870047025287358448353542997864811458783917806679063005942431444273042761291060383048853524560693817473560526876973772395681349877626453556782966029522183727426322171559568976275012069097526986221364160804109792340266539034315014274142330532590323938236743087580386248992753529617517605856100653381005199993816075620175691530597782542803300007413212683264718716567431284855904789155942354459050176934893361121807333103440265869074647018711784134699774562753912882815839791921107463207275794689016246524480875228371065609552081328576247225528865950519732798940680255499546250455180524932159856119867368852985483233475325543694345983073205316148770653706464180510559459874682831619748185290314812512789345306700119728605544503516658346645837586360966491413506595014755262662877102449095765204928203264029080445802684484475323679116189813695228160193079746836978297898303430574479553636342344952831736753258566457639171743310912041609017594648088122168390113657913623767143629816680526167405169330821125117508342948527113744656506977028320641829951119246496981151283228292755710170690400653193042860610824497680851761398232235078887658231315788769929257256221148335511682909936255244506126884627916365993558854661819743386239362380511257988902406352020717798771353575047285517632229590325620685872353146511132856450303906877152073348574191290765971484563615264660792984079364246894497366034580315318088903555747354120635877102833433762543469786267500441372955551445433515589095760523657588826157680672152529003376239402829497368434886555750124363833659146034012463474531495304345875851321792759831250017581829712628570309555542844263601301384828240858569415980758467509646542270270368403836108900673646605479947522753449749658858253709225195369536387290188217561102750043283644041925678665413700626438393106169015618816204306429201360634089727675627113003027961435805564400594368303182276905736751096891232467344449742231605249960676054116721092709485952233679932433778315424276985786072189736384223744078001944910687973962969657154965744748820337799059725812828538591456562522527847666500267364347777968896957194541045404967463518685691896244401263346777464643223603924045689229860926781697212456365182003352165670723541465119101431051091795497419789347592465996514224817888323399570246824371276882433831619987723080145416735366325114358887120168127190369302284407126651726880825314187378392605300815861654341271125470026125873185112573353097869672683199386127369741645016708853336152957690957132800718401172602846046685434929796042099726268602397334296943231757050917243063151858161193117519644636874899411821607009615815572289356668453554926577097692789111177651088820298692176807607018362825426648531638386405531878372684496681131124736864635778504674588131377956459735322900920487631269410413857425694717294283559468705642001891527704692557504025454243382695945385416956776642507978600053018243502840506237156135882370289417905528718328177435691184623267712219963942264303285126334531552705069945106949316172810938748113621582267652044622982841169217553092125031207397045625029719352447068788029459475059237643852610690730948548089433964636245879445881130644883644348321852952767236781320722042993926951050028737826498846359535417254756976261890144246728290437051626532020549887373818410899528834148444301460448044982751453253453939429406758458838954903000232367833631571186126859496465475580160669818256944759939987464334038254584571219070185135122593419573095928323233289569393886639309723049058115364242044968391903526358951033327037279736981592399898395819478973395556288914676205970947943849913152918356522425206530613800657542882312488827301089417052297108256651442605108338121428281939371244880137214313876983562639740467773775576751657166109419555875489573808989007519292840019250788760048907324010374054912096091963132456961309655087489389305046545026849213753214317007559255429386893345688008742808572758201899409183212491645791396126628492692481659875934581955170224259777823465364547546263358322760460024209555514007512262428786585270493909773072727317173001915412331310449624278242754419159203997050778659832959250183618567686957951169580272753215930375034140506828570718859204382892141882596995312891444254083072174072044008652850553960735895928290515088515520741423615124586460172649175871004347019683483798832517107930571376587006180981863032185053641379420923490868721443202365050239646508400304786647680293596204767934106901554642782755427997274353698631772694454274374826746327530323287610284759505269904815118644065452908661637992123923053429677343416936727685787362106783095705808872782764204291481440488522073311678658703064029173697215772368811249225397049560600705912276831899318992341652885936449013755637246253327839553377153302853482956041319308102826174952270601828656435459032251831466657011021046763887090767834952548593987070680982024012664479364021497663661962350654298461379758622645051025145669591094275800589349965564469635018117810949417876336953897189128406918615311091995259131797126996735974811157812268576718427821143470291676740718992669613603333981365288465644634544595390974600461521362038260927603799320285152452393011650627742916671940378580624387921850017978476305589851908810878925243033183204592647488365700748838421069252045841310910192612489395035828376909678186288393538220775148761964245192466042528156313393830564021522331436126053975526779561530701039313486451823566695512706905078289349869366251628020012038506720722739388376844688953319167753444803972927649780077763229601935601117214176285847225614317585363839242670648419509873370695793479752191220612744431908048370998024338057382227044926063502130037394330781614638588748650852168219741076841630235239015136804885840679149315540452032508462012543623682392794195000409729321926399555093604611392955973733783077707500077859336732173930212830281138272212195242205626164986001764606070363963199436182871982381522599271950148534305334220829650613162480773560324044665114019980937156643314870022894271806600323252838322430220014117243254981522647962239471865779496985768054551558960390231176816525577743802632681090927603633935535841318342888331445248873518059299023896508750108559124342202634875942309606079685711117231405369068548121348274238516948797637115934739894747577638511035880776489768257264751403833914719924333932867650842200896266131809261085343739565214007898487014164945712734916304458974682416764516335191393255614261339896610314166604676897633817506311751051404102668840610533922010029816252247944791973716371414494354782240768300453177130910088415083151210211542657611658697410809624078438402565033759068785761291100681705486023372537093223736084553751236092571594484743382589075731876730568748587927675777171430330290702932936669885482985253001064688285232684000982449585959014728329783350246935380776334689704612858399847282130392519204555687949535977035677914035877596488626734740482461771916819035109198330853525895192771249297981855569035798113687836938168537081716360127089145257053635716808500007504793417456242815525520135832318834033409675158543251487358415706445952744537669018275921912428065701474829715271101202775504799669821680196904768617787567464582656761841656934185133368800723572439057178991386113541968225622475154027899170270750261250558516858479520312719201686921244138555743459252737118827172893633312908891318341354811144556591437351455183348589712266954268265198308410581981582182006588384913956274576986247041047678613870373191830342330336141272083919994287994584031718204475063318146113944619641645945309957986330780279775817849142823872163388896432808340170960329580724959609284124301442809451081279153374989389640054316819133033237902521326287141588357139593595293915334729327452702981698988832768068755261143793862055223287172420503567481983611824772677228572600389164277435162970010116080579202698580526559015519201262808606387981752945833769202484745005441542090575826449691099339525079264950743942796707204846970725894610811977532439699078798022765846241804228252248113823622789056214763190597037003357280601479042240425328279154157053233839240065840539153652145679152111636449408522608414643320681581214951448881874618857149872895825361711243934017534318216657395469711456899622343922459203571399146724126821126241902250532913838792504375331487390803250708692908757236424767996619735611602474125433761334192909960736182083646450862619595134400178558555594296813746144672727375307180331778784055641508533836045673806607033116109020758439375650088323800002786135134872039486317559981392102074160037795222588309887238710023531739897362722877390661979551139599653193636019412844819286162005655262557022033946612002343073133912012375874862814124396148053923772157199809934473966891307262408674036680880830417564312328636512347114119803101894282425318500601620515432131134058580415165139335984984035171386691136994494201468240422555311721772185137657318349978858973280277415359018606972624277480390692024497625057933236184857978865568326167203540061312205987207230186149087815579652902726671692003970987859078174084975707380543409306317645538691324674873512279536465601119113404226057395784122346234690933675930557597178191533652412219258517406598811182400702103115765649271437803668775193552575831123443903117121823868874099639629787019047242882405029316807956656941545109849601878963593534763813227733199512319049966001576265824347727567598827847891564478490499099618766966734844134684864114217678506315718095162653726824325704408621560595728627031053705699434977424837237308113441646174211016067737404577528804577692601816783877578661498321976990088868730412797433345018818319726346054989468204915158472423516293528731042812000835999440680726651310831940630878055519599475107974489834377322125734113240228579323469754040881510386873305526444299574583701845362675849088433791156357052552297462496735064852023600424615658254983940701774615367472568439587873951421514135996687196638170915873901970774566477885315041475935008015867394931467312204811011773400033658853515072568188800314214678429413800507513847845650248502834667987129066610734420254731990601159837738714332110574321703451228287837901840153071843636570597778502426711694404626236437213642329123977267777278126080130025908590044669331348405802291700639880487357530494764451488367680252564198588618401271677316933629360683192896671208378602978092474199706197860083806651083159441942622285056642618290732132602174497761704434051399561089477088269199518192980163847473513245420251535684516164713668851582034657787260135473708000899808875951397482742861609586545429996264840775187256885536186453082397829321050405219908639022469976072736037183815724440274945282166135655803882469415726607667460403337346421954009782806746734509472652645537521013922194285632030052534553945114952750418402208723855451161445943960195614440026345958164230419827827609909055602411712907201131825689756121131137475023081031881757548967962798908217737628304129107206007717718490933364476129421673686361610309665087914789542475953373282061417265854158503316007543865376703907315786620206804667835495266187506590485180190155489956592705608422547276987526540693033610848823314338682285903383656704529011264939383990477959353626372742823133228299943876557222498134667356550110829924692948471792785081959748950979839805247762779193361792350455141246309509370355161592021197964184040567128883713950813672486515417166995855748562648766180171262060043597133433653182577006397960224470166716194424895135558080918654501202232584612765206854874237545830437844274777138072633561776314457099210662206051152801258467997711883717460220730448036150466518140498067952069502810621447923900458862418632821267138213658069868327245952063530939990186391981630986844169465183111961444419553091430979190444226858787959809069371425009851300938139362523479339193540092462023012182489954638021099592677966270104728157750113771527994269079228489634768406889651005139036453325917871405291761964102538347225003823222647091883757051738021243443710166051330067748057392952570425400508329465400610057749945285694110471128706342609552809570558528713253754041941407166442033844993073458262960994961898628456677214910362569344770735372378348148555586359911487428713863917691918028423207869163268889640942508527561780793299942408222446896567791890450435604520544039283632212608052100495765482194609465554663421406711982167892503537183815714753313743322923325827978762663846109429900937737042386349645373856684037321610252429603804583621585538914517013504644286415641400503975379812404189632590042203549617326034893095042510702961962022351565836564845303380413986888245492583617523854981405342184572555869075901208066122348845009082131076842069639021165605941565219448722870629251434323038003738141966395215811030379712023656179224997774240792153128622073660022576456088174451431981189900887396486062817621962375379122909546316049396225207922634624911256082305779486283121613065152584342065094528296917996603625886955969193979448787326501768263156958834288246652262647703347416762774462591016834049073348582381237110678071593148424156497486474490259481463214199415622313117244626175463727758422355433554080575556743140080752683695421429713538773220473603464992118562006339674107865870124535084889691475674673448640002657663958171528947494446097337206755875361814020832552327052733859202540329069143252822199167012764455137850112476196170095327557417738650705836083547042520876907812200776960345295375753311862992420265142165669782719437172934737919714443131604532193563744796665999544004883640500038380956020321686937652333697427408466717126384290710786459997383019595574464802637694604590926744102553832907065406601850283362243927207803410619918913269942325369330284678195334112793965437178298186603487566511691905453640065198722137978182654874532005450758478740134926016625072464571358708804768746833609252274386556052320514041945773304496307242672110128003742021876321574029514442068344241089133868364341175578650761138998113400816491510308927257582025241963366922081569451928737526252822637116892211030654960122162217178902501710735389979601706341831879028225699402026142258268612036495982667537616818708940624101064335037649720105144957911379657722423536304805196716587678540435493798009734336165076406939931329680291661782019188116140067564263894719345061946072273259586711810027141569973559337405092494308363472748786808037755829724931817339836666767684762347573713243146207351443694899934258202733432950112981766245360660563000920148033669215395244763205005642672566143854805967195824720022907201625180987599279654472056163310300637091148801879244960231189872854165151615445266089348695025678410686374140031222394197085177532681771309555586198164463424870175768835061733205683882045344055083869947334868112021495030473634954172448917411462403854991822632543638788311881567917581183606864519892613968782013203707185381407380313657107666890382489376808648196709844606367632021288337187309151655560002497349304691167690539413186502435188071853290677107543453237427106161679660525377538670878147868682098121630157526222388869964997178517259594029645720545294986734372925219518054744139587208631105563312826193937015023883519445771832663921105150834681740579616353017026114585026216029200968956340398928815407517197424873318482135167229985640532858617270188267018044244070380391519357357647852126136212082486148460343151874521371207858687884800817429581691315070089471528538878028062605909454775498938632884801901926175872179748809121189721947762510011219665976458774634784975068619783085015702475109439125305904376621945567815961448915025649320240354765677518326974658299838836743669767207560948840382857885533442515175410959268598779180121998423434217159473047036750193926670673821500982931263506315497871876274484378395365992041315784669257489827702291085832061012042395474859558959978499245936924610389599634202593220192966316671100108874289902914083014752290238623721704237123615098297314185947701359123757955805533044530755184375064483190763672698525482615599440083308993303901118574488115382773097338215831200713443896814013995060662598489524433118924301640186095140983228838689979212827796047519170085300304975231014175398512217195700386321596377813000771427221947480930031133124251522141570578008849718022860458342650166553779927526045951250962186798464564548332199315324859963821777083788395473864815176116010960834899171870195490854319515194243573527261778744659133372895303853307219027919888730391107084732570457888486287633698274412743448306247011195698566039401849235160114511171923724402698700864767695422586925225191647632694230094158447861718728972414598136929337200696782318925334816264104285562804032860787634206348396256265649604506779292882689269806158815011857075608795242754370489227476250406033361639341845588600611878924202750169983506350585390261234942204621694880181723610660548579684748961714979376617904589890013713248396341108739881738258538694723762633070209079318692963799832829463143590930755953060293190380449549794448906620532782376203470409063580611944751316254716642344271840537700881271180602008340954451269912333456032994407788706577169371032837325723700120521090006466820460273686171746364713978798759035647377708634713412488834592071479454838990849695026303137579990616753873012238443060408283797370112930551905369849543439749977662533848533479626832499914971717389170140923715449645477207660418565657745284812360439464113081036958965020294908000598677770548908835234971651757514934654334811920842125651886036560215728879276219970685949700822071552390400091516029362114328411560226964201754957120246870722219254371369169494691618795766065197098253434801869048825151642699449782419250080224226032834938598695343579576211416607309371819706835536293753067040466132671011331971694485011569763949141638259487387119398425910931815436320803261748065556561339273736686016796083485408580874260877987029211220949717415196923470398572822368874366571040276264370754435630828769340212974167929893628979503670404003497209506025361462004889803449025190158704201532223865066839881041325008709205783952289807848023280691112011873324227611263443189372903500451892884927389525391361202350178804266593753790081399497288399881686117883869891733077880939203626060598241401839796747868004159056662911949925563641349614837653858354735597439754238154779570798738965972503639324277858995962069205651020467410865955604966120935197770319760433610371876072374574986108037306608844425353382921699946860617572580614670646105122792815049014719573205890037719925461841011996871845261431481960746241764732068894395755579314394208777508684291394507782700956301573277908565483837580025226913730669949107209276744573442295459961958006984201910250022954172993712104100844536664590165483909534356584471696953798881466149450809083610218503292284420818198740665183563092536231331155184641732720498679880266726756748584308189670210878264154423831119614977605542103910220068146925884699268088489712391025576119631942015129099762687356276344869417905289982420722351287752500415350758321805216061194322517562449506016104734606051295411714332870487721518981758829409803906286096824512701903016735881526799782878995598968256013623058363231556504480607318660495662316835238103487950629124017767186488778851998551176434947554323879960303049204926811405509768633991769005617328777257500630690300259762286329299267135582866160780439675127996309751297111693381552492126712244740291980976196157312035422879445562283298012564159104496157943613130369858944408683480084929742969926033421611759900414371388006843749941974505597871795910233255351494184919809906188854100403619586325234573457365122213071359591476581575262739862716509147741533228288665601010801822343035621853498962449682560125470109877567111184604453715593858569694041352020302097782123382069198134749106887135666355066121391907829123091000677348799793985929420382061585640998896924420200264609114336307149452570949008999106922096705425593291872733101377078671473603222077025339292575337070214479814672587835329034010886369397467261322651102017708739422971673022028380536256595003264146838402820050704870948241796391352739055538656835469980756068382769046460727016197162275820858319755733413822082211626743769583616556506954118598398905565883335402736695071989709686007963626163264677126785461373690074745425256976937894554359595518788291862899280834707522415318706044625998419510012759099003166222911485511860511526933645083603519390920453521405196996854504770615231052164281021797888013768674093550071020188273538460530752538205111387279660806892830173628599572682732182917334279708360501566872590148540616049941677063714802372154012580580296774657156287815290874026969827952864093487390166470241149269406316985349765366130861743716540224509933175787972748555486478681754554715619143841784129173695253698290649038284806888380931372739485912356142527426790817634756909446520934841058548255064014517312495733335948234067015911775675510242268989658179395320323938855175516784779130068670534819236118055844396952354330057568306616299291907330872048892322214019793581847441809380706024660988002385672464977402730780071791701086697274083937055101985348792634956906280430153460128170676156755529939736423157800416385207402104253828227556801917613676944935252358855617274203089940408671983010784247191640509866602896307411060672140556521476540297068875793654223053313849192968507815346248701036606399354386365358339415944333074814950263703340533972357320062693535121811544822161237638952410186513070794954271131460284618505521718926775875077913878542243956624976695981046807371590638663853519539671017313553549807636660905025238195173747146632457034724599303778854269159117094994546946715169833667419199510316627959474951829300344552535025276073147539165878633722713161387821618752725229461775968748708702409414557518180387528123790965494646456185632041999788036489813850632326625269114845025397466189500336762137523566800084793720117926819188932646525064465478416108766791998012364777971999900997185677213857477426478120234462361107858012756725481839526623459130860411812373627618882107361638033584006056046682626393144007257659171431614103670821092012652716281136103133314264068761561158159533890991754801352028390363756200243867456081814024771392064904322548515745706978231974643557103513373445032933548908176551456075205919204521897139477502058197057840177532559127350942357508784748466691964631458003402646534831280565023346338491321180743335559687893956080092058221978878562690633905316896322448914748929670312619874392852736690091076617775482504060894037711114747632202039576614418873384278187055339756589064994247141569764813019736570660523584349303631190974998753218627106373985551133430878442032192057248786525296736242012984886822418656419515880930295621299449487301762947603454194771021421471874585701663339076897159355907148544213190530598549193582214500646562793050301882354934217948917548715083937067527753635035018690604500185628213954736416522857916856552659907001337631321149263034342701917798210472537759046425790708654140940345400346844079902522427890164146897610307425918351620996113881882576149143493439482279923681617652779412998066098992787544096025542640849315054113652955437486141462977923777370020116911129619925424751949497657434619487422490059775698431902859392033400893222824072304491044486911828182437273786308187131172153743302429533619852721246763582183112990585946915968934689085460573819070229531647269227931318006715281695646076803873577096907930668791151629810443482315319237644265038848674056088120360785849761443663396695759215475906979036936812058875729222794650348221886590003310110121885730703746263861011169726564441969534255900039253835427523517881204177631000628372095074936582424955334276193126060254475219356845309468565063548352424408065813872974629629904375473863583081467706170114486033943006545583868061758521671003432506386583310146370583051610949724252614805067886431966590023492300177555027386693163178951925710485731228964463477987008208511707467002732228053027544767637133592535002549370575939879905524096531091181301653615963952306811850852339429995329051139576737517836623735904707312755838832354893512557943045896793656251417745231125518342129367936326354334067793902873450336318342786670964176286499451132878224976709914596513657784522802902304031116570503197909207518089610033545456205185391783625753117798286667141290303013786887094606894222702058554647380871314827254076404449287985888236526923034892900045628925603384734646428341098464359323763732169030946580888589690135530838038523191599701855772327931560658892873657143587552927508122098555842446076705292471793423095490721365511106868609240403599141990863072238349182721744074980956750411197414020802539078515111633343948227594365811962074656093920011877862244245544263902264005983136847070708191895936207048156896568822758422913449218676798521226418262079426896805425832455201193261192801591313985706431640786502014417158519083222004233223161659469046787050375048409322444224622221755266726735568941119299676356200409696962936200852333959243310103254627803499352811441553141401044537018732454153631991516201788897583762783419696376177336674473626365885802690836179153819991799690457748578743910713707309587197873800956807523052418010440137975130528764606343156154489874936069897785119564443625808551345185914998248370820138189506564877661975173629781918321554677243878335253115842157098606622209465188403979032604141739561986063589594783258175033541864035405886209817569726816616908509688575852990013580711148107313216020666263701519597273306303882607757474843234186577345032493987946969803697453032231497841088985582764418419111238462760748226076877455994148569159959423425701444259484957505787882210319714944227414055782345101595754210404114692042510344451362606906372418124346458181876294366632222790264038683740420168199189287327517319287388207494073158852110264206111122878167151847949418907503117775932258911748795531074926648419394888778986100934870578856599412556335696938708568264610240327998491597317644578027646318228729466423528505713057129168556476754886017273827454496401155512292292128904521366343483348953160120657329062776237553931226366397822126768758672004020373398709381118827409616658502429666897461035080462254185432307193666891419524183409771186603277229010086510876252880571016937064648427206518681287366918409016779929175330808524078460941500426376789864169636348352794927882773888601695752712970357680167594870932337687794007085958763561892294314531744373234153783011947645428424810688672415423762410214104296943359885718170520620569389183827579974620449394219524593528735043637684861049589450370766323436828165262493357257175910795528498769494620457994196687426933192333198058627818263865210860747644898753797667603161759544956604459471545510294036286624392752285082903614887834213026568839489742862974439209732944660126308472766353079099892352033047900407167684387845956142293070519747863956596769900040454581734672263528451236769596485795159729644404098391459335597987480105989115373906698876655350183248527254713074870667521698537702275304553531779741061027812356725342692205453202443237445598730198285723015872506206123687106457653984579819203466738598148430460753147702290830490108609313740107626041677741782784918707302055482970790241057770033317127207486830853277398742931651786200311375312382845361598874905387429229742571986388609293583559326024795374997469573998347534778098381164625539903619744926398506661042051019715324955487508677586159331717024633662795738730037152303365610637987440019313156822998598682681943748054402692316056139510221135844433759662954307059698097504178253945234865837301322185793626160627115092574380496542281055832597155018541473518811388510069629197123357223923788204941991804654148993038916458593143529854055501628788511122947315488227615471722341008576289780992609445120421189505177169814352753729730704973929512267290849112620326109469837988501592182908714655762393652508467424423370664991100884041290425900585645149461197480842188661497774358167675596610090448049297126026363747285741392799041254039285296410218887222445277909224551230240051976374107837262043775438021772430569505729213187661374132208197826997452982922552481191600002165969871927945058552787670570718483752607235047263410472667257298532118489549618458792185595211090414182748250873308724655488737329956492335760161150239977712827773395613448288104752120783935900444226082471426578000436607628097046522480220255475395527350142731182345681273953067467132393875217019569450736154465467066306384386840404905525668585729529902625793888898138482553894985129964523338439156137630182058792817575555410448642241984158945416103616956478484444019228801434753829927153221947476487664848563913114451019971993509785547617282492565745325116834985305491197330240766171189321105833875970718359198234724871674502393596935306529411661625363341787788335016259786866325766134909273705967612222904206730310136491503650884699865721342562680283706353571600387134050087236169688393050417028354506935186340139345443827274453064847382841058011511466165969471932290477202815383419891360679296193321399361993795667189516420922702919299808178118038598443762970011063804415775633125107525728288662419902029324051764543067081870415225597472846338769561773727443526479643616346298004837108157940752948204737715913589843555642788558497774470930110952856348381175896556931389710198171429193735208908461445322221496035592237181255893549136970833714323482870169631095263821050014358498524020632658274699641616945412321460965597947447375820760055029573329587564899618199010648329997225979429255008167541156176369405852027756773279520657295307279418403534635527683378317221469788527056385499418454780758743379003641320230938512430364862027049090810540592078702856853768485850269937540878055868190298675596474287144483138011785885654408433645803330274862593319314110809567409301358652583200785550528848825259348806957298370460073854608200670471257016455163987429906479659736729307373751223533492074677703065150442514551591896574303780425777851645698344836156718147595418793798391238016277816180459949624488488932754158980752363650620294227335691949697517235748820554288763055865951938229388083201074240562973720310425527915409668011841868235412006426689965945417533463862322067433628132162708028534726312916078260807142534597829903450033360279619604850160206980542355554801409444891268671303244812747652414426077378451834354758195945791245745784397518947522214774621317841617038176830692293658918962721848853664886500607006872825666120427832100111531864943358606347293353836817147298719540409563285119258012298764656370269178799835499268030035403538470442327457477148373348836749127981426080371653346838873862398247016020116932786333134776947108698357061783404637848392191194846448896384247763584889423703574019300632350807939034233098666132924488353659768976191949598339934047454863314193887223246138496949281619462868159054701171597805352950715379732442747315537225324863075182427025012284848692986144805883058087363954308050860300010443929260449946076243358158655641038551339475390045436456895431911415358154515160994333987013892306971830442794171016887841567517219754647689723402089268586786637785663561859647289212686121782822309874868326745277391229622833523449912516724862152116393250482077460148684411610110007072963333616627555679415950081937547600153146346270367226050686401608048992006075961466900895761478771744455412177908718407115090316101254852794871297606605063883965159676965874732896215600531731708258826277956457510472809795817184060297824797063567340535095508907950452859869712574117313509716620359783746682622338130382034927275691576269892856024560382028772505660541493763844901705985852786227415032841475534145640064767905316032086633115889214558068174529067788237469640446117023736667730326547406009004561812682467170109160692255627956807238263401790611092380596240727036931521059781529847923441607239819671576776441535546825568944881249792587170384260708993066083864194760476261513059590860673664287954209739993099412544607487193227578222799401806709381151779068040033421755485224446999889354473564605692943719809652602541440235229093593015674672462037382859521970787917847295636613032400660044185117636838432332385483281038801640158016800638129113192519086966035534670964009935190143526858214310182137025571622622563354626270726510958979652001013479955348223696465001925981223060165859529949963068907918531571165285434937321436893870512152311895637485691608483979148182652208538509991397605807471959705621585850871865942503816146475852662495388201853313973346877540678087910031909308064527051010289472010192418906337253469211974195409275096588395456723619358518924578364223072581906704771443311252674445997794978159748125782279533701909922991085371878862112913265327558620914097056060189463637221706387759079315966845113571061960117706707500218560347666330352269864089596502152164268139275211646269319368489567180029315471400890663852973952994715275146754695952781540652791154260566205496731203097755822776420997205871047337740427272367017256429955029715839630342185232821588388473041063442272868083722453256565160400915116572925583488803380139297106596260909450693258099457803799235915825907105550457619046852894595789255714842892440344193083992842123946931539460017008883421938422529966668924132648163117023597446950955604728104307281216563129643014705843652068563281161389898573142496851728938551550345211596625218124708240622152430436480679641472433877231433258182804369971905739133823402323880651651605846265342391667250021192025625006915619419262993866329407190926210663104364125318552071200513318490301863962515834309007120115982213733196538894240441314457385509793412610892962736367834031492368357523362064231145946415330598568671684600519715730128715024295927594209787560932945751326187647928065640140410815286680315246909516718251998892847548307196372494327237523690207760977453861809447547014994280445307094731794458815974652674591906647075062569421603916823307322250395147345535961604018765779687751600920541923119433448443157078470576246499605556079002659120687884250271822826383777995040871349946751576113511521027747627765617672967183804588175685699988826946828792677800223787142008021024484573630278198667833744692505886396780982709571139580911773958528249518048034097007651286205834408967357431065495809388309219697931597958332447389012826072300124815227901645192417722506915139233488785732859246469894954191930764529843437112337914820532576904878609359937940445242561125536472580222939573487096913344444874930907893360827428833774769354462483112673131131154550935470489328067444421361542165376306086378798873551323771582116141761379663495581619927383137862549107142126032546151081520221692204662904043975033392866583013778827118272012119435109064356596166265792082545262914346129046559105068628910769575739995929617611900116378088234030365625563439585557041537908736337491647430411930764692967526425365347090215468096925402455575301533329724903766357811649377825525263801203480535976958837015969556878110858571440329565303835239146370852466621711956596272203355120293530212390118397362998091042191972534556935922031883576226956277068649879690449639522916937002986024936063404911222643954403882250354352355337192983139887632307874596583723196656588925862955040728363655965523303117272660964936298108409828624741814267953807563808101120706937550430863889267395102851286892918837891207044022952642566874134367652483251425212489513521939059664771895075079968003599880445261236159632336682519125652593079799096513080162479377042370800224304278018407931057897568297947063280285890750592076017523419058471121128133413489666830859725606382796792967065527018690634009709762065162140951780535639928875898930515399813891340379244026036545279698001955989643101192624910824222874371280740120694675897353601847542142758655708105074811253897043218244257186828403500395868995698577782840683068135547157105164461570954035301007230605960684652409840274612507758222469588371142706982526046835369853915977429157946647131814189563898314718123403047354560640372026370339240804652603228661348826815570337235764398073363719830550205256948072468985402611419454081020312620169522005751089381516119791886505163294329132628392216514011407807945394779192943164445871608853536524266342683734064200229298177285156426809904044245049031868502625991235421211432660229991484463078776045990844017498547912174802851013836158118534269674635531485401422534977381897915703543937425999490534856397099859348388438340795690997068435848855219225427016930595872255884605357245417964280644501423666552651866366586112092090600084234074951465971702645567601696549147134884363129103006778425801813280820709389816114883960512690492163648467305593996592879094095131005042233595175361669061577188151581606329513488550988866105099227966117324640199407309328135241473850517247973475562779299304808457165359167686239475400752767930962241470157901167507298807612219438197769726874122099747590267521924904543515134909921442561055810342601600769595925371873529280877587908680487646486919422003607826781884529462845325443012929776268332658225577219847209633382630864760838837433975204907624273018770587634887093257959183602918560189062275041087209820907207419724903364612767587364786653376421850263350458128742873602076559450662534878335664478098806167129991796924685344935805490577815251451239142889052665233302970270064522211227272513378624215028888984273822046132949752129608459459703451556491058452333514343393245959981740706031313835694529507855923241506082763642181396054052216230274025628511116305039912673651116340065107196087815201567192418870077869089113281872700743770976621171660218919526186147306267952569723680654344898257227162861205376998706797899296640955224826135078028520810270833114321828380897812320847845645669347655554757558814260079128355144928363836494186616607866108431713688483548231305353877704972033702197633857752800429923920874698813269535270163374929756084597971864757081101638666893487143345110892962668909137587150691843254168153147554898120856023287660668846814611521507682452140355719021340099885170555230336212726478923749424494740187502142592446239759511923228680839149081601675389217531533557947311219656807323448406038026860588553351471557547191479580110663084598519287576224697605387766447452770109505754842542103228006218756750556486286252415477997591510752084680006716958116440905951039733260951905640626732644099989047846277542883623286014457768507426243547423315795382952086086731545427692072798078550162332963558121342999500101445325423217226223352456293266194735582816353391061641077910455037531847676077398660901764730311490152437311559799378444304757010766222909598691343131652940327179425485729559275538378894019075591547067215792583581100851319062915032302524629168502333523277830506360599951280509516610426954030947258041501020961022635456273119439026460854561525223110492763479401112645716733548389340945369075526902187557787226540691143539536554243784391330018414253125874083197213148041821010523918132179881365007891429654052586348035411590676417179285922687325063312184285600624959019823500087566446759986233565178014456804013942964461013515527438091290477659870718077441416217952775713161724174524340783867919925915334887200411232634879162162463120866717158861543791914881234604475245941392829372452759969278722382517027068332573486505393754057897554490682720723285727424547910936686428768908130911789699050472825631016957009052953818635338166405386362456578088132628251361395747653178659626884920922000685566818734466183937532774082741547179203141753053727249256912110152635674202297941481346373450508585182880407720570207470109964722327401090695666525964109070427995594654874312416677489509409526353816062550763119158108587259699514011307984915268932060905464011575473791367767500853810451290539259253510524921332985585130129518465881766269551016741800982232543970990581668913314537114910448106337200524322104164438862250034142913485400653125372373295616041375894668044286006366207181382673010802706039101447610888675853343623728390804886390313295628892999073835851244497075606481904198187284944725397680650341708565183155222430369668360063738995224665462378228037793926093193355603359728372659570042288811055955442185553149454587433538377774301832733580084709614293871898086602209363588878199259370127043592885831263299697336831610753723677378702051391623046211599464473890154601653408090621499403349477458406564080118418126114152707805445526693712361024892416223608692285941514355704376731327349608224359071346418012240940505346042948824173662289097403276898226578239568265905957806608184694093028095757181089585655608368295098678798838092112192655091373755685320061028575509568905906250761030451197467242316884215849635269695322767719018948917686049850909504491969469352922543488706129757889336440266878677912784572576438262001835223663552031059396391014670887565515581321493168729028411596126253691361179972550448895710906314880056057945872802101974874028927627365228269402179713607696201162012538379002907855424303243095818645817013028206517665327236221947383122901618290061573277437464920767506735214422664704436675489330021932597603741921130059919820940336259268529622522307236606811167733723353461846612894372320853753397433745008052188883537147204831663341777692548082594861406062583439677776150117019696264048962714974802115599418255024111299189977221080002568934671694918458328553380007710526763741260661397348072823850419715773922127577762983140611384752083509631527524387976999209706798728262183352779183387894221287208956099624845737330206820912021395924298656646837060840285128220885535025725875964262204289185431156528101207506341797294970912646975169675169480140547458931989922083294662480416016319330986397971270445631926524589736416306388937448808512490087322136786584768366252279119328544314248417162876848527762115510289769050136550916047022164224586205158056355224911805849212121083182413767898902106773827900475733001324527066172366265977338435476046598354943356284136718541501294906678471490636825056786406476264189587602110987048221342927397730268919246695046990521043315145276057481927531185028702333694252100181301809138080874486657374910652510003118002248947513138993174222383285020646861370500846830534053331553644966402059674058437279913109703190426538364190494201092608720682975940919447499189195276880209601409738804309756469018773223761802287891634550142726237575130623103156687421479076316771651650388193653103444468126786108342072721212096677719523004316375988514946530416083462531967028081368671772317772812167733659568412186072546754880284191571025568477740018606187020569685922069268086268009331692074404998813108944049497927661549676567351162882100094453289012658729758169659377644814065534009767608836456913368199295427415670685469813197416329418368669393824334649180457269280105173450326971971296847374422678130662148041237174750533586657177717138305465508840051544100545381097738375730334853345210101472383192878191283420255849585968629487818156079045425663453849571241238876026737297999161741828126532825920570658473741444543556752649894501368260074462510272416318668386145666713830826722640044230007054938578619937938238564010540028658344970804304870673927671501954649799610681439027236947393823321288975960851393446299888758193268280785869067032541052737815990340357029067799690672404955666094457870603690278155514867042000417825946079838776004957645486366959595503651421862774048309064545571170430355678324353277182120551007247714755392586622226375125728276973987244417501604195846069516237861979330845621177834071264563808450260803458354030507499841193719250681028872561942411827103215322789570982771060938390643527117589349359799440982813651505575927115296181021833885015811666749783299033711070484805117351846868614401200445541563216180825121072861590821558646903823434240297092669050734668011301013199581892426688995025209550307851155072093125501427034245524387935129639871744386382129844619728881513167738581810060640662288739974839074018003560089158416878528497505758842423402417979396603840647351033185014513468929710040323811279462095638759797609973161634232447220887293094139328607051173474607950215086478638393329758061467158606048655162685028313136652693626082649390933836173345173957690935909191925950152958507337984769635778829314518187469275399850477031464549449876042818611402081513963827419061303913979225951214472119166736526212785863668537456335889860184745961206944279768437872722365750382954752709971593802042436397343885582984476712888813109977441524732021224323822004485765274584086624956708608005775473203017261028585290559787281590887584289925388202121346465911872457106750566268464832713563863517401911709993095831249490833801131405583741173551190325676940045032393455648911563477084935727600880940975790543292822013640461465494430649648800713262376137784115700389612562415917956105338725294964005878362663649568359276349581336676627847841137534100304238636071976282986017752833903379292625735750922333763302008140145745177218632580281429246362020379968050825224929638766332477849759019232391190334364665735868052279909843637138295212204186057326923577150784868927456790529063491641178683057752687788018140509269209558897402365060507866026328254258838958351286731877760737828813770351857339846295103613937961240593532063938633937613914486771573208981119857601248908537319230364837141460605978748643617735805796534315020817004924652438950940759001763727609732947417857786768157170178315922909284656428059492505018305851720391733596881063498190277170395997471312123214450251335315893104739086103301534452533089018666783619197447008447054412220268481034638404241092693273305189150727895191382157874352516133576910606664865636906055944634446945921973787172814054558732447412216586408019028584265411371192516206505990670992794621863652010779198693139312455354453733956798949942302835452627821583718124122692098971083095011774688336447712786714825199406986966994859428684162592824664112491998186018476095300817743007354201559662086149585402413521696593717554181500582034006804903296237292095461348770382328118771108166864436490461842833474244652695349877596462595839466261169774552306140566691520574486016842881792626501811311319475289368524219921700334494808763457767746764205927886955503365547604364337241227047674389376935398360114739561856312142122886448484370824090160545545653205318697544730624246176343494242126818797083881347102521701227197711115953145880376969992315150621379181242356910902412717240214020421115466986734402001720513262594890321942329713080414263550859084980386474291400551190263040636622413382563445672917305330293056327958091355847404408247633855292720086858299232609143397131888292534794672129116337576590228190767319403745423059851272749670825128553722857553967966326390610894369960503564359072404893504861062355553730046714116527949928889422509327192681364475994720886647109354075462073407794942907590551110358051009593778743579749856143977455940608374537511457631737431026029682534086962687014464368379405131023600721207538797921936456873203281028183470266037083144825806943989650515278457392652025009364318099338577373104010736452179640949533577025841592754672172655442393877857102492093616417663621882876642058760551311633563818604477066554231497126758497012202306341354258785325963158444260244470284294881813845524699653994219572677654528541098004072852887047337493813037931209098209905006893430259613186383046061991383674029411115369750802266600395107232652186316394820537706184399577152503061421797412398010198365909400512106848369972362806437188761642417042735379903517156511092952613409918810899029973425215714928722254361653330010662660602189299594552667981506562171614002450726558965788316536162251345520898910123605371303000237605270690259088642633437223917918461757436788669919188195907179530050328608493094247887478363900478521344048006131454757267552171218270065503831857736370194528381407181339667158057972262417026187962766463014550063965257698100304131187984666210801227574326314547638640372568014825988265647378566999403490589985481210011239319702904448107245180045422304854209996189740231887928469879844437217770930850676645394282763822195746563769378334569091668114869328739575453550402165412567648992500214967298292797348037445909373697093531845719576598374687731647334265023771272944019997369645236879665823848917775572032872865551176086807406309022047152097595104912511267280408099235652375658576949671235626537494189157658609100204845825428236926203347869987863511460981039370416189920619355589038348931194386539487387458800795232539237259334585481386241907386291143974195481131152170184391524075986473804108181289816229584212996294382252829884186644371096933086076670579541209925359409273818416394954586023031395678557042448379043307010329050451099407579848920241172292711783063145656118299235606294972365484091286729340236353346894845146312003751899572793458474948193612681948971608908008939149640776054162545525012522783397178850005870567733934197407238322498525286123912773645071196507518726880043600064799503539299955023580645970459793568471267114333331091782019412205422761756024079822053135460996535784909128635961495628368818937914574207454965652672055647223565314076222236979607174277659798032268924013199510117075197978403128957209704783932352876298448005940135407348199062781636904346854092706510536571923103596230395286959259281312309075005205512614395779320060642694584981917295567264657090252432642218125797069263257404797537198424676172475951398653703703537989004771611034483439531482402039032288585790261703429986939566041114299516619297231177402993479129933284721843949303606262978933044149190766160859614255331564028622285008212722759000853448026928213965343031590284961333064649147487129120424861073078337033387641068123708517118062814781549383084309075286751407565793253665179841398983302599128218630882371788435737554357735646018717242768524970803284539800785172546672760178438679743663076717141498196647359927456902520670347452280832342427345717816112594359905874284730612469041659703917855751715117024758239411743731303908112665367303422730613275062433130840467401870102984832640060769365283949762790983647320536532297252041589329859634489446908005649233696060157409161957470439846504843335598832950290043033547762319408401389875679146852544696763485984339384587120897539930194799257994277340117970731944442866162416142943924147373857166557735874400425825877406405662690657079189886031642604793562052642635370357574188289276802867592055501892458297043341589591754880106829676783273768000859756620223881990288157447123734003781714392213464774673530290409798427511208986625063566130008968953434716741253636113536023668785753501990093136967831393945239922689980317592077812404497850662173696476690863260455104074389171023752791564220758891725607531783242610722823935194564175623582703366822224009743219802600443607529291608336242175762798535043502542135100140067608376534271828557853517033521489806700818371876006922819161423584463924492354149878096938648524057469507103503828713951699417250218616242719335913882213255415923995653210966627775675897337087675188585143886985661785261261878154817540871853158234119258504582369232054468716120687600861888376754786786988557287722702915936151539967495642598503662587301665121602915328139711685357349777163491368821492167864087784860948168882034397468612318643736843149614068798530672131644678619145451545161876060614361270558634793406787419420443334807274036397080018568816849918787505298540475291661313919986311172578274897778692620767357220078660166044089550117633735823383168435509092240567489257954179665601605141005528692139343469366854212751253868832958286177681643264452854407305471283871537804741318948964049131836594690760022717329536706390575091425425143493557112196745745921284788080009968327381534370012206045391281496192100085221317067299602405281137344002155030826690558865896033842208417844783984946743049021861533211938917979314286413317449398746613690831463287125380226054133570175391974478231447920708559101710590628653803766188685141730163108764838280171697087179191575863727961400481015402855207064319046654114308007389978731207617956375805455620698735476129949536159741492618449637356050444612465947491178947722010560937995659062145481512265238593383157639021284707010068216314335388590910349539141772212800652987762978172968548728504974108292725263261360382352554996885021310149058988154434845195052873846567143165415222962032736442110666907228308489881539014126553206598992489889377186397488250389117198210262760286055111175246652430675687061189675460180606873135937404651872436400154209040844688986924753975910420431686291768572580932962318191000925556452034981177921619010041516244466302022344299798425191186086631565825557466685358213474105492095120308755568018566201242151032038227276602126967432164713954180738446642603378962009269591946651264756738813769481828177960101505436990300882672716845470525100507701464203931057178425194754310748496909143745496117791858281492532429163859720411325156585218046574388305632335247478841395793745619775244575904037012005501666204544630166150296768007763563938687804981767429726488120993170939929200340890058593133597137729419245853054587132482321864912288760047974152414784123110049128102579560559690721029642231647577073201641326111498854124154114936309010425767334559789516331811052180999107360551252623274742411755236846452878673262445936718938671247494415840169875686264043807457434608158969365691101160503805790847739325234478118429290237458075137484346522710407385830704804852972070770358702367897936049048188120823101096634923875747077665739090580236836729859330937811175699070645815450439864467700014656068931825633508788492659364697065640509385742644144051959883520669457458565774696378713987057464864816452996690671093471346996035607927580656847204206113360242117954375807753555962348678992276210600204926009393858438408366186634764728821064229796846098156120281920528618335614853893905401665484893033015839736344318219663627231631251247790271233458523789410389411466289757591284353445654912739910363714685020958980157006220494575102571294303771140964158515010668821905202201671591604683104572356806325054506506299960600704225499333060642279693032946287282965330004081865309961034733131258451585999638362077813373531964144588176665840886514272129255331974881960303073901107195663126092656005987086921984596001875062128374116433234142823058353298559970359055883299487147778071395506757317570340530191818289423520271787099667089942019984374168143358153095680547534305063128151276474439483524344624955156784450593604617263973930022073634043508491789738825036587387629070206175327141595380523516736781596481193596763707837915758792081448360819437048667185651487807467707019692184865071546592643129000719140707715184844017722279673631456278730743546553262358620350306112839897045291130539731525019716754844219492339370467125168832707505091938328238179666456581883823502520353314237620081249186067469803343867033604073205320575153048895864308326431828671944322655546103253825703382075717561311353159556863280380539473278939685759620304010551853359711094293634123177496010839291421597089514541752436281364081307088185542052001119755355860535308247233456587999683117208874657684776275028329409438845390163038341635253505910842672943101803283305527458135903858151072095753198663432878741140143945719648241148282477602006329285321117714495568540286040344402359768059899497482478623943199619089725679773722986261046158853148209423428185650202073991542755605118850139836806379216613871394874970559039376737427819340244601399436447927876917717631104727587784780127939591557924434610744870668225563321183066409155545602066501104556907813446223358985185298645734299412491050554201352979042256960926379446560074485872618215257901625271609733914298070583651093223462594207135197423123374831664713584817436347681918211720176592794107909466692249929871595828292364543223985798137161283268334561007531512096749317565439464618421967024848140124614371144852725429621573715861081705789238591355942127040881244805075771226978930590820188810829199153878519508006002681276304438600116917039109446998587205464190602496217201970239489729287137489997052054372303661556747119137552363228469992434850304642584060744298845175706708983041272141935782506118576070063869201459759318885994651345583123966993860165918861525474805403178238500478853830965036899796426640997363340226035967598694731242445826496535496910414531800517405204781152161776448791083429189062615114055232904860741541512833631816809220968060884260525353352434196390587131927534730062028201898652234313110170359459833138215972104059570710227208352483572337296932043413021918780018115168918648193519240100774366907204606448232353259657954368046692442434039365890431105839622306100405650520363158919025069054661014469765846541376863471499333424555510974593749179037652267226133029778505188832224976938328159285931262500191163835896584067108417986166065627036903761651469876628405407715541751485685859791556123368904732280224260247753982345928794967128873797844197257832937117627498846767652865232638113597950376227460727895938269870130103928403848348489148711917802200916540014113451227273139296114893220897532495049683583723195192353210583037665027156628179894202189135611019263370047002289014008240289212708368908859841698625388656140676131181012249561167717326153164113611622176133239479233202317475165330420939626514396305596306505685685580275652207346131694026032749817597461507900071405589520852879216158390597311364859187027383938739092992826107660796261071695465712655335267719063941596024070126783537445187511091672567529745088909050063460741414671289099159755060261737174535717970650216984834584230231757695068038580468679889077697906169812977416736643207491561991961024351708757972191907283981110702619327198780524441455451471674119382535021881731923704996999175613058435636745778931339955900633571694812645573618164416586662860802650027329992109186367475697125226473796976061961070946767294909665990667530692286008189726569589706204115993721930169978943688154735559475915897146776469528883103434999421351007436386155368975798029905408432209068014423937874323333364032185773568410369423841016565664955176622818052572348184335222951166297238844195357192519194554953033545616386274242684205828982389593362898763137942884027248180149459323083879211202246729884789997566174941386742520605881072341835764673759902163496521862406806793640395804295704806196499851531662717155147705184276765505153225365206736154676571031158992059440731289496331241361090517300896247460441133515534747971729769410309604946989601282624021905771169313650497016025297625763658842326872664208016800705612488200333444295881968775109117975803470731161682600868279326698986832868415389633298233930017582873529456558777436842056758205429614626981051497500613228724005324054084633970181918469209208617887305041923179995883183890853209551828753366564673405474722024780417186977614861995072753154746078183700493216846349181926819077294639861969714155143108260593565306341146884364844427091001714255743473641564045748898407283806893712952525316539948174738363880756692544678569027375951720884069397925570715333149334157703406084960408894888896503184317391712871861872762683708790412235077113778013709262846659265406964155097856431941450104671366389987578944376222899034550157887702944569246190318934300518244773535809319142627871483126464059514644110709497603506792723631177189966387509942213641165027804582356152112950462146246612808481547553928702076625856703514379962335813225885136137284411117858995331124797491556489262894962155664531597444667931234947705228776470058035891318278536864690982496418158230845940423396825318544171044143452710176205222448315963484240951946837563733735262923256594513986716819279766052414576824809357544384064075995282487939337764142733958307653486598293262561088327222818570000711258177405746437822173954586257137689605067376657250907685871555578522739931663115329184837742275973071822735831510620293310098537516235733652766832138298604287611517042400491980647952164555111187791852167088563970876222846178669275889421106291861749698392707156357329384802414045657562024856140269767816839862644281657552520447113709304073861692253017943544264506866061212607469015237424951797956217023318722068560362581629048666508981089181833394239272246897042665456187919492681360923369844111777682374416380149615982610712079226782406028593376710617031845076529933120808403407546890787214341018293208779255208787061419956729282869111973518364211763164913110536636880125801286900585318752647187148447653869576517322791956288717922420225073354756060882127748788926041609336636369443152334377540888398208331857362747362863109585328105805442796148026241073655381964793869011839974067773545366625254939800926121041395885760587771628144244341679500559099091438610941209467670397290402351275537583902387842789070602361033066814202285431539588594136637340407644690901743436429045741580043362149316116040604662067447320853435732964697348851863934066677421374895229789774029256160818790054972672568430854401503956228764235902200645667057395718119498917494457576792729976159230081406033470908049567560374047507655811016437052833821778454750186644485040858306232335672689564844311940114084896179903609468044638401937501610974607837991658383468529544876852080247165833076904111198201166617267380799420980794667715791246576357436961506848041816474722514421083919658852793736543206777808887333012440674592786759416949826858774848007777120600752864905168303823048571386343611107758594158628257121998700968122123606567626615795451004729251539950630363551873502488385865288170739086174786162377266289142274593068783982320131418656411398517907851139561763011162041187542938461891261698634658065612375670628012898907827376395234425328425864444265370032696906883414964220131659205695873081850639866893822607495854012511492437655668119125789199288743500065170219233222834198646048875440758929034467036904553408600314396373376085576845666353888562964370674843823252969067483824190386783233660732830293162526327422632245585503867296123976502310293817362479992194618550898165427513307019763556598477167067066072867321871071632834517289381305344090992446880886939063158268375459151506698248598753934535261540096597698945070964134399539809577783186932731234953189962429786062479645383123832026134179211762912069856248759901310962126850419454537084349433494447361537412872317637414695833268057835567389756482764317683064450654724990018978855524772057017873799432939735364375575244048847151889334062287049824766217773746629792655561728582705286855547445686853555153293574564014402043295467407674356935980481165215788455553097787665151159076677291095002191660312908720180746780781637569472607032818789755573589487489686004624236998979655704609153825012221281885987669082545546770980811854812857799776289922956214248659297293801193887530193632283141589037155941512804679868719400094915912386260810096927755670725903447601862522911008093329534863177109081103751587624717769267007602050821251880118607387962729249963483391854820314632403055994763611632090319059761688648167187553208981387021488698455546869880452419516977903409413702872031620360982230728632339375479507249176952741927641839595817383267279516037067802520854857368934423313866458062066652584457824839603439392916013337626619393169346323034145020352032979098307453482169284996608832566493561912781926555624005001468773958060479031396957913898518907415131567026744782486683312660555756681393465744650791747711137576264822134634643100165609205451257685422644881819743238234657559705185362490013908991941693944322393404341718839466863610962579931179595584748011117539130008298260664191032220264735699206953281788999085022287352067548750507739951072668717757749991351562383577855554665865407370895744105492338286230413645097642519538960454129947799781900970383638799731456711250470272973621583732370861352678383334609214032268914229941786672490252678421210228863270874823340163463064065823288095674408941905465582810344345810954906452677192097935496612059376819267018329893864736430928633589252584193721077457114878794005393349462091802163483503275875884750142909368920301134938556619191826730871328486693051549228577563745435716386035799804264823430465820248812094879456833746191533102167723738226611329884912068670651232797912751429521653525622090846392013653727654018377868754812394686766395797010120648154583373786763957054710103242267962439176857329345990120333116020457171714363321399519935290229902422761456857091383022141621293487404879172378215200669713887807595222524584257284670801174813427643101043021040170955740519034306926301725625428315905788604515944263658747219876026523166602145102489827264263768653771915258485328337658769024467026403473816489621985142882053541775120323965633703722129125196989264771215878218529323814945420386707185114554678374416439527338252310908987771042068379043934045694836465779427196615388515603165737237693726768429792525216383081320985962667842174576156803953560990472873739425999297417965307427119342060827309104865898482144593544043501150015628572869714203128082000606385115957422435970588740637091112229624494857267968652555825651652110641498112113616346808618694578644782732213004784349027868199397147270058846039595648980347177542011988805026983398450674827397516075567584350762003691826512074958673721010355455842443175713940733768951854094141221845932711383123442757649681180611184898428151729744192854358275955863762827660170930635132112198373101798376225505685765300795341024846768598593478892716755383143357615166795390995448436941363663094089835529650938014617836245011237103711349346210653826230139584051994014846498499810284727750407050623093237515167484454457584459955095795854919631340353478728223223536714079436592324511135116903453718004218687016653190290780097818688843423761746865205945969804653311061430914885860721027694700225888999260433209898851125236763872583837121561341466042382322249181291417546448768254217397521794733422645495476970622127546734267681769867012064459589504045559343171707841183314634985652220519574213031881660032434986811430429235339650438692945659703407369982689692921160559555447512180491383350926984746156606192219375595379629111227372903185587424818282484997373447576398155371443593508495191097316185263219060342088142291247381366241898851663791469224556578541323906479224390593799468908323343136509632878029438691051582340610632187498312684074803961290931304459412827323710429420449651423225126447060224194946847527270333175321004930952978495519446123155722924831858806309755792378366960306217446623220553030629104160394865044165826622333998610287024409756290043485330706780322806570312080938848895800353150041018909163157237580282706446400717513045112008948989151279980840796797236079963789516808660376705625636055918226873395828748816292462020929346921071386477374037551684272453777107176449578924602364075788111508432516065646332796893518051900266137373374407498459479103760265954678665015311194772073359741916230883085328413271060773028248058824966586653615650783667458406818171958226154083489072411102633234343945965875547842795246052846197099447980214103829777316619443388698373415261548481390521103512695512739664929711940546688826971734490949392907833353984629332898852149198706523407797572882411407402339387940638195958823481229076594286507189316979379809413763320886405844502214721663405481487455643110410697335426477210494969389439742800347547775457229898914788940625364960729547303185862064686948532200071556607575792801942101843071033533666992445212589025237922451281255854606840982155873706398245688934227196225252970083782188225725681300667997438862552077968023710205291982851307447446223157349158466227240501004965837543287092428251136755217169071928417836193055353655981715376751789341679812831795934600144631882398960723617807686885859733267863586181165723550076230891840802048626966864851083562531382370370824672049901681523439427042458868991468987157978156348214299128502253550624861079394076722707193681094930499178081991518498817809097161433661607181484746148872878899703920137216968259450039057434668790126913928324893351209260028246383280631328865835716725937920514464221694019379174811071653810244811157402898788047284234720024576762850000740418294518397473689462588175210551230552501213736320028276632319920260913031319730811982873258452053663228019586847109320706046604128569422689543834448349670385461190177102259629745527183876009852328805657189629462880166084700044907259631721614967124143713860456134574097544412636026999035471773347579272477787641342705609727705408663430590028428130814764369599365543968428011310220351452192220639319342085285422489029803480213990828756306353951904681143829053440114495569330511933334830380950032468351308674723540659011568392521828534049392485413685606132595555554770057475733747358954007554197724712580459213795363516299676145263534271589664375508484339239341136063628459323759028228781754485792732109010765003510813378896298758647245685070044517028291540028009454136738793520953749675802728485566298517906271534334539034183697593463460910962482438592754427052263149193962313516337785046980399145985145139885711011762267123535565643379369865018776985788016884747794797064278077634745665476100414000095687698641641557576438699503343888926104368513624325814235995214665961755003576354483164168783945414832863952076873336380237762254342146009157123611063111268955769380992280743315701043175086427616621335063543451049568589810494726360276197159357143509964440878947251641387249643229292248016376233082415630001239896306779427947215062737464971347209887511061781637355169446602817312725198730864969430563125538948966724411158149714683238853914279018312202067278365274737316314083936769369512428495394808794788922124615839539521517808687392377001105400537054860277519534263611226029220993890623549640299758546004004181917161475968911189199512092980661014111288799067261790092269988889924632368447994647211600774764954669623433596572758338102062622071930044119385883417911622171610455644214849588711037947432174005755783773266211282283017916309146114303768375393910226866143267561730812897331653182172822271914498311653996440905255703316306826157396278026328816818011067642727626926080481372784335187545174838644942842876996836500609444048417567272156234607958281147238460094420279623639339834102990602881803300319783180827007027043111215462103358775632005786056498465372225018949534372276605683767350881331140988387213891538698192267033443811827830130678236938107444605646312494560980681210246895814434292485210374249395555352494974280506855476692393547874036129806870915190009146209551173222480962368553469030599911497158930157282232312804859063913206848536358916285780370571600870594342276334164617051265292257977087561702832179559517774787426276187427422524857393735577442038545091637952056079243061500859432167981842689757818251721681355462654933244459213338972649164146171426815725684600186601683171822130716572021700526439366879456905667460997546842520999837239161915020286416820504881308059468592313882750558953505789632626286425823507845213990472497697289966235390057005613980474091203172265928004137612085582424107324517445848384910372532930092289301448503705173327239806990851625846834236038882173784959359942131343594343488451987269404573316423168423801291278229191996958857667299400742536764072612347874576129758460404283282931184266076825336716582592338364975032630751838965817012867471242757774741094069934481035305020983889832284620865202477695467031136143156034127941942867871798197836659846229253003777515717598684838632507592768312667302695803769225560462008288862313746032528017299877483287759714679630685097729103009955964455687276392692654657905481915466853274370287953342685408317778429713817721742871812942784025798208020179182621619207500352075890678742488250132353327867222747314266036702644225368024157740095619412115129882127065065551304935156283936549582094799879230505929751339142312808065937393085639794526370319477458161835735241894600590428309938685114010294955607351861542972745883327702122230505664788204963541995929164470432980081340669351175653299770405507013096304355107121077696691842885399016351378164687044402063480387925414733375419352499323155701397699821679949523566242103037224307619789481115148154759604655869535558652056345792878984234552227594364687214995506635405527484937029857363408610355595881295635528772774217406720984256455958823167643389421353401999428714024352794113668795565425445262718745192773304769989220411865327111795756072795877549603042181467625453779404192962184259766387310673344221627341238078215781090994830148811316183163164215859281031708367397620287179217420281354229647077938316057205367301054602020120329201434631820146134552232083971871917946051362111008767865867002292446950224642150426407983318681651431317675061985658158130546143692180598229394522749511293087159807977696314964856851079337768062951911618815721785068429559097871037807993534773716087574103081756292131507789298935292538338274768061328199227554651879226706973649431109266262257392095535071059793481869950156206828688534112234204962918286204680302403722527336770776910116665587554636904369952644268694641585088123645109363229254405457986329163950267113134190609671284253183060468075922118417584999106321497868834003946799959496218509372510376352157753965921886338445426395044634771577977790121257853156122097264872590859423565406386817097286177410731539660974302521963092445018703771345278197963391596831351733760128556350473456847844432692657110594936881140767822664598106897569385888908559716346620282832902715292826680743906445208411060689431626044122820236254937603042485457144097721393174747573927302636374131994366703733933678103019981553317443276385987036108125688915420844978169161652725029827147121576568766472355399465407581668118962651073587607852865513862585200957276306835140239420923818258115181602628070471994919509128741479509500142305005191484994509354913074244584956823780682882197950500971808904522203629301934847693336179697891354724660534781456395510505054767527348326087559150386015964702541076135727576318006697722673350841488856025856854630427111084551266306101517509589987822330212432135923068943209737169578654780050275832104602784452378894693434096345975292264658761916263978546054604404549849527851204947830692713134416942840284912867447917968453159794682224604369451973538302751700552100762807284218782287601292935716596912575191425892197734286929661566383093334785452469231878653974149490597161519803509399572205742222273430024618252964114701158815177219667643757039085326050633649275213339996471897234896586182468579143621420767384546860022245410010368248368258523812576760567892683861006693197335697641664476963573062292614861645538698270635993223900421642834840073349830506636560836178651533036559890420152906194758380752499717104914288703224881276494565916681129294282748993577811733408264228439185056676062110494988179977367540575603244150712147947281782305911273030925369015210898136305919328482684301074239593915036255980779631969651929906824291855499754841583441496426814648982740485368650994956394736973799822728915857405169074418988362270423764935933864881346264668581527470691246416787264444462166792059550346630976466282884589657359424504796077938498323138143952775264402633762882630713489479171145692021340312426907713308053506413330507388890487483534926998566358493183875749121407704334527918748443270114973030709830754430365230539686866773664371638440791490430334584178530670922486552252044588178640278661296975529996065623589978900437867740825171202574318269620873981107999228280903793585585751220303098445356801376171280517486072395215752000658283306208947318595680865414509047949812493359833787277864122046942318761200401720107533489507770292095379795019953977512818858175617236097082126053354432698062404626926590083916668555480528906161375151716374038512202240209027661500446164937941288394613050898800045636605185182266195510815184883020246291999214994378832585961974083682633848526915344999876188923075783125202382850533263394397291561319494985890599403981927362242130687481978138533998545718227704815847439426008512236921484619151949466552874076835918285435792988948531518619179104507287681580996707203234987855564374991769102884446718530888367061317789621451547820454472252237093883096309331095475109544997863339717040810406392366886597402048157048681261972457002430325577095729821831286744162997843318404904037827632180138756056955902832837269892647685415336255934411651199805749443249996818170050553363445384335374192467456119129516918843456747989844978774196728101273255138605280090733326755576790065884174046866995826498399193060544515258301919628357551977655143854417787574979616065343054263320977570777212415644133295267088971350887145091008474313766343522493214474371529352196541393087598108467005396917897337563165018424519285457347649818889791930162054313952831930635957743513724709952720685027168171280357993631817649306590983458547958181958030131939330961517925766661646901062785382891944208229968202539809333587482421625673092616959731188775037885012440319884421977157970639247342972953142980571292642383945166974921217917549252547528325207940044399096675524425133674130633230636401541898661066682214803754656652048122170800922788327585395889691436453434216156945230404867007071798117912700747008609642201730697965490858263558048744737008900551462415513476247960370764962775300785179827599851150107194038039715359007754995510397795444616832067407685023841644844710897506819743551241638070797273091931840972366635123766937811618225983415117151751645081718681237778302720163189014316283966824814420144911124166249232963867539221868279032016152072284613223569174783176335406118230955184720958269513184631482355327178900400892850644058165808071560202276964301512917760602230151776929654305342008237351966448803550828346612395632452612131786360121825452558059775962087812961910643930324627204883762033846855553600010065381857989895982292949241233035359940557485741093645699933586630725078504369124837678969020180958141256782121496198947629636144698116641066315611618006646302812603702779299534013978721168006209171221304319645287358124622401836201038929832809531947917936267514819154276758599441845550962626916689897865288332579999306226144810207945828080819550989334417144935999313700701062443060587218431872151140459908967359505498807775922601675839080549042266764048154393043136736533705862077863910102236448946030555007541528489035315934846281683653151027135685640835543078843679106755328017271105978105891057140256202106758950421951857555538432047955647060552372873179864581937507038093126931245004401388359980956215185248344017527233504197038329904180928073071263974083854564479990586913435383533694436177041612279778156918951108584814107905240979539748896086953628781834177586612385774034782157413733483679138800863108083369269738248107722173957087911979191956469301662789413911034357373116213519137230646648086065674201504388904713331767334108623482149571874502219764853502796762359656168928990562889430573478205803136569631817138790826710336522988640226553841824658824574298591750359779547741641680136699037213867150786448033048347981534229184362335865337214192566160377444915630175562352782531211769122686756290883247068938473515116676309945598704572327128814085336233774560166567332497815595404201274039155405240451102015278061227650074660802405179089880855392403328629176602230705959773667160486855903965803619803015752524586569749785512036108879915332422506067820797394695931240207525387647612357166214809545556250706376774259790890324177535187826942517820963613889775281622739834167439993634278347177818254234242091215026768800185832392647970316949196951279091847121045232338412759973689414986329491331882269758419212879605149647236817655175639420342969976745174823673888899996541308063112377060393563302690547843325226684153541249716263893419681667539846918743220996148201869764504043277715604903623971347178285343312865547817480097116187232092216147283144678167913378712585634489332655405668925819677025527215620065474063285745565506270211358300856403312777870033962681593321225502490452851684052720097239363252217010113779364299041710034742057688218763023159626007267193082155688393138525434077415554475778494439273647818955562951893788828042986041346680613010724776394585418889709984012243990477373968715496960259347810091631130422647692547561897528597907945834598709731650769592782636503180861329731942884374011854105705581299146236352792941191913675669144880218164846511850226758267306031458771277288869677539652577050501963523638019600278447177751496939879087107201138874123808920540909645887094581941006195500009481259837107410936017249378254437781371563068507677438185851244122204575090662778704104746358407343780242297655885708496172463077890992500344935229611914860143803141823611677019194225999625981985427492659705743940340245902989928288326378222604820418594492249916798753535497321750068240901213786757012072029777056048913041622480233958277469032851297839382232667107611207540100306088927320075143918130865211963944924851827038996410589040435375543507447821939124557172677442243768844945367902459735880221736066598276511356615560875729301498636553229169867565884696969194746552552979615866873678979105476893552207628804239576421873738343733638563089751513698153618899367893291073310291031756250651644118442849034610898201387802845989136710982848965151621273412959341390321629213602474417614359132099452005297543766661255018329041934174936750304474085088447398030665795110489865414710278408985602331629859694298249315664332413958931584412940014889111135503561160636594487325778265331614170816964168092919258615230477627740316442267827605251687494960256339690209961308265745881571970701966725303498600469423528541564642874246428580708596809290883655546999123616063026156818152707598921582794497524137398247056544724590501085636641027388096785460734937106423226281371220849898232640800823823876824469536138133446003181450673686136231806266545787124989939559536139392714158143775042507706933493566858861413018291941106400774469348773668660919909922973990768577459459374065728696908897555046736661801314063202728288510470351517031673177597622530113857111773216051177226257243585907579981946466802446530439636894150427731325629442623961502579433557948798242793817479829145599325471310453233690021765118825940129584211811798057606934880390804295691037702839055202589810674546283429714501917603233097545793182088035694654554521781333460326523478670213722063083439579261674024824393619750682842583901495631558901934322063755423070210991820967038413036352624050803918719264765449638929954831234097622695609671560394228901497520003337864155103165795635516687466217364693131130460798132388142696242261936697257586045859483758092850078421928021762275799545766229281562979835520403657096733485243810753723531273546038000554234734284782415948253294327984921396043812316706093036388441207737362883808332686632784022280586963385138601907861871653296957824053257903315385399413647830038299426176253834516086390469517162828598234707902789649605355472069987664693681475377431039710785657216266544037527000230386252046559077205694986068606060789651763740158856557522184522071420731032782403363886192013759972208701102673034544716949565035936372618177238637270382675580609189815841867478809497324117386819325286748846797027566236533193514668095184731598866880577988213853434591425939802796085770984325797801397712953180889793308893882438314891038399328317214925559242506273834829986338955068469584559865454101364433139603398567919412397292679267561408314217954775491516303716773744800024110079877394384940156151114074967211831074481726730045223900907487226986076115482228395981891753493992043207046568429195545949030469007656143515502967652037843429726604630048529839846012189764096668433727897672632090495449932770766135288915608994878322649741148821209333311151598198757228863000874269646077472440803498902714329533736901378843430785695631990492871809802220154556298157024605025752079134145154199000043818074449811802286949837238711262098460659758258541166903691178411222293649432419816812214866377237576156505720885787713557174959118774232291112062769814302171240717009913435162199209242913334187382646297460669025157001039707659840653360983237145734112806792715325029542543175309751960472084420434580751679402396303260929853186121842478427836369898526135289571901056034977810011582280459306165953382193946297259781141460943284065895048741043799269012807491295714284050644892727173841064325714824739143180578098297865682154904484493313107055224925225973113887762804720665586575501136331669126518605859739038227230887652225074652715954543336996481210662174163294873450186171280726005792535984152592531762648410668322685373199990104807257046246893153496664416612089875010582590945007486074207661280262896984737834188728937129891930736831161160579753653357403322666860574327587366347260472381549102631153054324525100285283181898710726566970403270580013027326251617452293305369020360177967711070003215077473012655797788330276580025444544052373710987938584743338253592573022190425900185234309986653421571824247207858943176448039772869150738062669009345982759735858833887946103781861837413561793873528022195475171928014847200240796072900250278087902366938060906762045241004085869434834154913583882595037754082325896445459372469959396544830409901835942853729966803116539059071865410341861251843674931625785874863584847642736778839824834841416576169818679633352294252832133264332650829350414136225358926310756976125329965198352978703042190914487857429304896235629084575511415941316593996160362133429095890611029695679699671273766935885033942533766410099284290522491466913535126422975637032993680830315436732637341661725982146441244110743816796984886887913019252727292922878175147931759148561451917192983173536008745877785030369238745160251774751740524234399856138384046903102733703472579805847495282496158213911843512916915983224402801622353895463535191449237975963628901119657745222268803214690135906272604081829591505186803827634314600743477652529549008237677567004622839307960368893834188239815365662750826129982373200274680307670657894510516725007553875289477437826006798038592939858422184374018642288381913573641485276556674853618991690833393757980776630595943754151759263185607259642229690022712263408798748683067449850840446364620933140064180533400846407857638484630253483509856738609952843222887194226243538144640459883873655964707399876699521616300144760567033458529533180958575916985397334516610459353992356693255009646134482911791679167580968169891227965474409812689125012327310638377176831289704869163029846682271019903889891263227369725488074828690338226707340287089075017596292107495901033081690154313837905018814357335685029991164885724055069009043768906105968640544201052078066646292943943915761476786182174626709990083395806046739557438940542960216285634270763837624062655924011026382413352496513734684055633331050451672944214509584143017954315232365092572155522265529942307651977273111388006006742194607689767366556245278081264113734300755810681389605235133449548128406127935803426932588198885825870218684772011759302669465290395563196865162537710136474199604340036171613675386165951400446853090645874403848819580326826664955680740171542350014298686398567781963184728788773327915931181792880757430977515657326071762796374451057362120865843635038850859236217896419108710449674899481210512389684648626735189767505391909641650589920587495121310951793037915126371800405698432388060144627526103661175818634048491286623600766169225974759071524656880751929493208274929151738363594709376235217911824984644064603582688418739106229081233753747468991231894580252190014140123732027966986072710711680591100921085490364615168664040638284501951412807877491230502046091767571583511792099299118788400584680700138190514946227543709491367052543246309181837471451822486527624135544265166072352682267481450016440608937759107998110080647370523330979816437140642287443039357440339334232271721368155521569235975223180373323687997334268142299752093760530990409818003821881606583697920652608328893698260424980251748938575180030577462472828587303203623575922678149414913777553035970446846424859473911410615653889458681544206879040528148936674906408412481857114555973149528648900941652516130974921841038340937980161539157095843077215245293363792053000564412676946976027132428889439490652461472966186591299698363334131390242231038514026776844670132822556414412002247198101971322700693172757625899864298782772269680800421507948883304125958486103908586491430208547095120815152415771602677788147296050227335762682379529790558352194797166136669278589299856371431035507178779284350495859699752695201023768360539175913045968915244529180572135010597447354316299404295822932770393754684089478138897538772916393349216744575192695259906024846197617036504452548055255729543600245404225589583411493544794793210064903491325569900786130942829239401196209674065630574455049027975027078196083537255489614703747254378784647223492845600637338610819577085227212451836049319520067335246881084608863381565589700783593206395393776484652320508142785785182050060833623010861165680838596871765589519571588929809201719130402250292722534793380149632039488275323832015381395897690380554174543284384538687531128809810925853704615353140879353487631554398422330202113654954707186461654237266761211320912171642605225834129706333411754639305268681183417615989263002580266863291236595407542337236770109018079388814154416977264067176702408072383547660200986337342985595282893362063122577803516260927208149403506375108618064514032977881719839236223035628702568729547975853812022009010826774566053399086171113778065455572910599346637515989087486725186573174996646611091201816507651332126988799986846516212931095045918514685817808021470005999361657113882601442915929759833850170188076969429753537031081216235782446485664766865967332502096524292570666371466022542751583989267767677237555916111564638727338722213184368951795625077007322703604140163672607408684122340902219016398575229092807600472136481899923413485884748489736687731432079782836889683429292550890242958638643470052281213506494669875827641191754387539888906783128434753229736228786640717297527932732675050007447787465318379357394674748934529950450707676238095257155024220855380217431324137128601062409419384978672892663346307335284198851631353062983633665787825803112694607328676080470471329940623450693628940210688454396746494112580333301758937481545815419875806301871933858356097751883938053385647718828813438573788117698690069836083047560320328742624049642206804862169799818536842565005780626447287885666986801045326015946531281169205171890391248583366261647260167555781732491467628109863351442588718916210747515732625546625733324720482432899752038913473098890860624345361371334669434042000781640377382713432024245080622182453464518954796056224961246483995834546031868044344803131177273301814176785531440829519569378428379896408668345966639030799133762780237665719420885605505276010163466386833449944855498794706763422269376343999406751853031977816941183615117286904925776325782107693968915057106197822169626757532645830383419240432344541008016248935796351296078251900265924052003804336782536438624163403663713204584400992060972810140024974800350560078506554482263837905025838692630801414245674321273948711772492271403747671618244858259186419759285487711051685546831809214163771400392670154210537035600519196162371884552947197653705715241048906055706727086836040299983986390868204237409354031881416038505704146394804736264655986079885287644476541700911727628021889522114792016498728742186310308527318057442179682210334736578566937309208816239601261593344998374333021653045969977299236697294768860572025307272269294745479442786592992399943982845453518227081995220298712805623346527294923807939599890664132428147549492138425005449243635121678605540065031361025539393700942656976796342444256804867861352831284526103658890596660909220594121519782809127909489846087274227960817602155737404476013695763348041881967105321054025776980361771970277298087117429091405290008379618699675389567356931034639667479167877447684127998149885591342178687032402423788655288528663675335772488095763559542972258550356309972410321582179194033447474553923510612679270621675186796017556997919051763255794766079302668706094338601757112474121823956683721767119606981885246890649551400858933197438299067297578565030595888319853285345833567783768297211846692951458570185710668573658783421609349866733643840136240179708221632464826515850207373290336300330312792702439815309908506474401105798483389146688771932490418926777987318405280301068867495628135244662182539243157259550351802102414404337119846263817556261241996426080036403945323765469617471221832423603020459485503154411544644123573958523084012877116923366063458879094334495418206975155419901631378994335852350240857771115267921486104348260244991035677085503219382535639891226234790982044420092003546239659873666215832501338671204134524768269445034722858517664971699530889712898766998546992314650721121579652807756707667263288550206319704176999694522089475115100685344621499573558711801247504275339365117394570096351919569907315231195678332921539428791804417689514150081781732283014866729696966627510871513194795169634628774529212921628774587408600032350630790484311292686393345608844293375605429921342013494132323654570704424839285404053372293585345642936582595852667477523991761254202452125935529663618196320098083380047255267994522250709947530063014258413219820913052644224578818315916174949925780502682428542169580741181371125430805680438305566678347211769129355409405538241895627697239922638416164047416292222568816833960456452858713365212400749983918118937046963490107881063776009791870131655884177478596158511639817750390446891771328737808194746648412049427824677403627094156520456907012654930046335984686594589733121498232780576397301800797249558450019627253329017698951579972175839708263560991151267997865462697238088273598695765422628444361730189259156413953449724141631705070110396066319796376398504921305641817508478104446407654655534398713651219920723799570879397499832610086685891068483071923348541598979327353116022486587547420491793658362310302667067382676516017257677237252956515004296537608350942056760946767138997639158617096218900181623777468563503499464443702371691754900712242737232672289865250307632030426975202196585945015297959720671721403407270331953588729866511916066046060731816469848931279678059563764224554143199572973009496828611615591043397504067513075211136141795022268375949047449225081773592451444645951461958487523098742896017445097717996238723524653179304477726971314435990955065663327365422622159829783146878431042507460654020551310106365268102035442218420007581079424116062372149567713153668032371795596893347451809232849535355340720689493000628200320222587421830350725042778329477223157754740900687021628794886953329457807369308744051658241482671919728073179102335584684611728811410695193354497924667434999871577731308534919829659044563469817198027911436559316914054196738015714859435231810319319447379144695694728280304334019451432229560242817631906833761206917121906744070096902206547416605904528436092719790002083561489445448043545810441881046150198476991482285740302168372954046867654986233037028338211968380217166555335423227791215371429228904009520492338405245795975545809435112978786735755043787237220393908762620972228289264935967856691962341836155194193856398160469762914588573419987380423069224476939235137482987152897087725826278780991620049676975841627501412811593542114137378769921182839136019962020189587849137671369255752044392925986449178882149607396946297085196781331259162949542289787105480333644641081627631480504835793597479559380886659990124715604913796682361226989421374539279062916850746220348280352761323494893016458447865044092411376108588221885074586852874120888376099809349549240330722564337933165603375614773332849630857655903244671743773245918931898734453210304763521704663307434973438219390754575148985666064377352705274077275871302590440060691569476812910358119204803768777037265787999059441879431563840162589549894750248536161802067765134898267664382240258432774272910338294378299001833197875347154265399840879979335624963093834518629033948900835922304032848269059250862749721039915289726911975722197008428319535896620435420358927315702189122104580980631776493246562204508117832063010357650518158371305847362968041433880399342656143179620904698005992312368152636192508937510908237820079137786978073403419841894019872610800481931197084912862084473673141458442564284252720586015799999185555392832272419600628008055418406595536533624258483177852449892431204076418968865017925622069919791241194010460604591117332284983878066980570496889697547568846030768833136395043887706419912666171137366924312293785157310300832033126324926116660421454738127286503946737515383794757700317018814250292108120310451033515582775288191889072007026687489484381449941611303134663396326127595330176368345253345621784380382507128485539731314857195268515399124812991692491924633153541505748651583892535334062200454734918724409367567009618650283643167186287418959908135114508778136429256510015481970385260937205933625382248325125348894110071920876996507690783209741739628262129797991658463449502659055272887160743711851487885316217207765089696252455207988622361904349763817279674784925918538048360885889117448108273592543601196399371438538030381293710715923324020617563827520411154976412352059848024653186945615559401612648546965035840622640700411324691641239005356923674423545023480978951348084946318335379834288376559779043408932890824726563477013544630218164639967524781901316643040529182717607268942704310330168749060146805938067585090032400011655398008480136594848077517193063304083484215876515301758845716323594329726224090166268001432872591338650646032230494150493362660769206903118897099618812870056898253246823711744084709630567758655016487896458864060162170819940215139051940527031000920851467651099104325619021825567761134162294009071033274613806787354055356092935557315940497629521499029769863570862160963679070890680271357681418032281411535312394393047525523212414849840456656577749962262016680584640070014778221504203614942290855860685452350814259848572846810531538942916851037711090034511423312570577085986520938281432465980715394924726860793919453040590997161053864237002151410460446213975084012254637624651304205175323898633447979336038754023363844462704514649086594200455621298908997017819836603008499424895159943996785319052141441649015164757008738066569669717271282393447650127533031627335484220045217623101280073885078967564331737470548655411969526578195828171789106694286095130998278162684161354884198576829524279637945858669255901506761050334404671418857208433869935299528013505409554109822990862799165329042984769510431562190535953126030104836773945803356191707384207770340418914116237864518654959849068838105206670226131763039398968376501522234347037040873300496611108401448485857238399778949105881302670052920321558818643160814708316198673568241821817740915334477846123684905340363436063346587695083203098862377897352120158521382340957925175151282640566978377287094528270293227785492784280604471869814093143261933267980022570128752020669713556357132965056496830797663940107843063590148341415896470868164442397332645599289317323756659305617899833776034995240211203718076489987567826902782433437627537855810144447994211032051652221464800104582005955698551899663537550116453815065206077499386674636079019915143595678636334527145810602006544409240156338069960485799054945341608273257301568487299233964032766088699515652099660166938136209842217412037141725365133485465903077712890524272044250154341468241572991400480288529351526914871071790704511244283074775252870705092489464611564902395271215807170149420438913889102570858753636201183625081750832016965260132694099160079020692736215326161231432658560477344242341379797682016820266593453103246583121384490258584364814946029523734929595716771955514483722082095341548303341055808242585252922377664003187989353679936859104295765337702143567972294158901909834527052999054123964038695170666326508957802329658566184743150924860291862876405997887742160058541923330444165167589555318662518734105211854764019293747978399719319348647314267886175777427769798248118513539919497245909316221325912611186988542976081040094778269126503584793418741653189006993884698196253198816476387754939106831302234794490429317650318199517352236082928031828845069029818826166828894175775113005463617596937015464212360515937266361795866059039005351454346432664400232578307632466505991192414697132977300275672310876997142672878151524655699415587163776408473344165257264096086245935734414354605675653156269946352839698103983849054810076213511940043637228321562274073576717754839114420784442801984842696726597250030740371913363866189226835199343182000159198457948404880339324007045977762752154314697840143763099943287535245720789704745430354538083891059220463781619141144857113982905856207309778236554034146761473071172927122184538740441967787396539339516072121035966499587046287850757935256269638979646524847761703803656396531445026254550221696366193074587215474142068145752234538506257378790664956288108818785302944399149690081240082560811506713437605927748829436303369678388808693847786181168007191610358506107797384424012759396188560767433761078379077321739768427119848267346947464027059319242082405462960921630322347299998683759053781793952010038233778647783370398083609251748010809970365656785679306365965590842454980485487193853344972715303590975489483813958257118111514254094217768423766124105673350055241622925958247927147179964633668977696425741456256550111966443954591845336656414745155814800804251142530412294728499520098515180584046753309551010233790009034981988946687715400446149595536465303254958683971276322309458817520376523944681849881340375470815103441627953572786120752878443179967696834686782262228211699222030494981613453129748251865198124622451915291308905299084211977392501667422631085123095502505605105856338124398984332376232715686387723728977520634606613541292979446057678639744296903152572975139664745717375303993712691929201602088929418819441045622057203174100942730152803972758404252241761622891033240034919871000646182444880859431687197335128815091386911670978614670547304831309655334111314658301093519092986607408549412967469035618791462376583922735905000580766516087990369877048710683750492583644885667601902379737236358472218188735325833851856825115510295973842317876203053684717159504236819015294621175589757820227479723529976188438876272076060396869479726100758914505477957854858490925102174166074347049926331958634334465029203831009918628145746134204277614784854556532298459349247274377130795330458983685454652707290689468869448269733329989698677068994292522819837873976951294553602636722591578626183352962287795635622369966563559890200971221293958486839106817121435883798901869374825169563891931543551046503894163205176081856899586830786692469780890912292426611266510892285818690818122023961424216227870802035036992805979740071658746183207279200907050777391584745337778629392398786186804845229733600718704490702871119256982260271787283187669235256087635101307097680353750929878571094074382033299572736927892601701410315065971634068846715009548057186543038439673940099062182936519061650660457514427950109173051223948091313023998788542403801284105423954488571189043273900903437296472569078053125726082558927324520632069466658680189192762909954330213565371924846672832603386379838056241368758978695984238062653529418569434343510764945073127148623865106873201755939830651978897878778998173532327248543647591888153966226061013382757300119397333492956654392148647296365365144906105768072250123160080309440442758156256328206568530218484748365612269506676056751401517274760955524742545531717301615929050398549584695657424757413501096302085445252645640917511954783878354451127680645936628820968978938146075241147150501954363145945357532757773827630362238154302736347322644931367060411494082641076702978916241612421387638984904992207574991092162330335217666628182750623182655901489345026898953617678518903695875636595882194175188836275256110970076245988642218413402967441330861332837176580657151812275969063122779695728834412893352685520941092475097205927303083405152255400506876563259643803199223569153878233955890141850677277805124706037063471603543643413644062912258435008379274681546804391659353222685729105509391340410260465319351225404325408309372867395699404577044588534644247993775921939809072544037079285760110784289866965652510073336066304736755615035791833902160441255473106596497299608637715639435847153059135838983166990596899874209438699048186301479110300592754267840030072969936718834570043593442773876444229148730305107214374839752637933987629921107743351310540277670997988280277913627401206306190038938175898237515558248875110157314650803509995811478348395700314611427019722649607305562517051157921251285383793960618019213114130357348481700251171958117345904604932551616946698749486245079241006080035588104451924219835532438869435626989012711520450727290188304915182610279960156746133951741650876106097515567611396517938752290900821417409129436359613627419266397034114208197115101560204606961844228292153446440387035550613726974555135003585014237990760923761685566087468582089525470554530069087360721427510232664791277674928360454127057585347727953812662260966259406776753853955009808657744583536947110132250677542385209617335823964003995035465650396161373892939849069435368876514632951380156917708355961712176973716791550481682682291425489636110065061949862368775447911508122622442606946864695719998763532146498016316564879163647490317473561689139445386886432138987002223570744243896298294512122781783522406226230081498115831467893907711383161437898404769234945529160199688222232078474167578853125120309904250372866925149079193282102057902531966049494308076385135882614117851574269605232088415067713539689071751097395740895492466804866757934009246614443862853625940867144889242760720303868211394366622917156138005281137751783508587704377607112883485206451610856819550164120806654183678059160177826571196077287561857856835595098539288513056568854844567422662393083236417166773843588260579799630235907931524134056587514876564774753214477755424320669560071150849062026944437290122543214814179790929410912049314110884177123886311916020553621439066804201275839743790141539580288144518510342936390363005348690993923372314618839335916978056948507619784476361388547851812743377625086467116178202661454364073230717452807301397240528365095241824744215213491273680346117805257723962927262231144009690887035210808966088879172747350701988501147596482661612323814403417362295901629740657772060779225307275429007530635330187557586842011142926437411174330660081548373556014065291964329697285394967327411853989253729802932643727410907977596414550314111842934646464101516125188123531684391126382292655830151049830394934932414956375614419145399754851043293116954528044073641170568578329816459429281851621919456531192954007352614693228108987753621999778565213747238199141102219484405819931805157007499861990991604297447111367563871200596419504757382969121387370075831220993183165927135003368055381522799270333647815215253499742233065350513402329718182720927205973910370537046596325466868720165186239312593819062936333754465872966886255537688935934580424512219704014329089196170794850083066489560068597469472622724154144957513617694466642896749001830496700621162713425113216667741067586373157458687369908156266908487505544127817448782981225602391081514647017819580614940865594384813703880842429052983186165367521207719798134234021925897682163373733187605447005507818952483767565919823726566697458379699553069923421250119838630438836542742848234214093974873902912736896824966153200494265716755317886300455460507067960549220654327585044910968274172745114821749313993064144304625524688741993803811961076170496903436026678479646271401577349888853895628037141299407539020519390470698601336024741812844198127239063033102285055636113642181522257826875519272849331472716013319800264213593605726777618818858527942700962698773784515417258892359880882918955639655439750733177592997216587443410131869974158201959026142508009917287616661267977633557231035144564817104884633473434941863514381319180951468872608823750874301161973582335609058739206837601995590587943992633431704702591815038512648226616975082801912390126683440548362026079451301165648651492657537078742782800002627919027502889890080770141074977895988798561087419613762741735840990273830043246579133797065813977171964749413196570704412691569584813517846768345155917355416988920463548248528947310819060862661318114346724296979270282389324273556346741747542621610554168560938369376296022361163598722332311499867685741111709025949912113694211820730466984941005399504640928700951637435499806496078244603111250638248983106328171667631437552697165322758383841581808669320772166867390772421308950196954779647023741050546328136489100439729202235869159219411313415968078492284246571655157786679479259856389653770274713813588937691914022149169798794685375074357052319979259541538259316808300434869216737103586852939183318162363896525923881849881436975300689827376137381522166556759800494022106625181982271762387008577319032052771932662756830406740399042252943193452642020367824102816308637256442398021207223542556437913044374570928499714721214603007515280181769574287853517243965169553718147075168011317251785478652291160333504087840072767175209296575463068486383592613123913674033213511132957283383765228101459587130161671564496440209364296360328331436920040585284247928710469074969191452066111129998844644849292791417195411251343250917878258974306365528566651595382114525489092829217723376886596939842687702458258602243754301188654070500742824957446243180665834233579504873198294857849189958988014552538205764810783179285496766604006963936352798978834164647228825036456476177550386514722312309766848463549675504482046231323763373392763167369380050767401672188180936485558519008498229114569168973730654209187441946477562893015524528478015155249943421357986162888599705532721627224076894891840068265202520007088738538737963250328140798604692520226394837057081166231824220858944398005990827146750694621237546998883583055779389326160287640844927186929282769616209570932538586389686901743655311425282785009005220636640634902414128538884586750148231691054261141020592868596884461953127551820741308607553290826782528950443192583844145587063514057040211136966464917829824495862193424050481527420312062034116203843611508979331746273040007586196052250285037632158011485561539127513707563537162803506039140394431727704796704317776789183738338305554479154146946260358289440174556624921729776018521681271366985065743305308129454081769057280054940969704082156566984566931336960865158960208422223173155967777582214377101687510429848115378321362578987067382970230784329717876847791811202895314885186868213659070308626644895682897262110086153927686711557054585127227441540910210620756301922652190408703229566969183432195326807596913879812891197624881212565699313620538912086699276151644693475880412934770575591916489208008396604329442631968260182557794711135977235824582187186083712254857639561697452026497739032544533361406288359939457291240625736391604358331796286949219660057810209450442113721316321317130678722575478421710396311975475935106423221090607922825470772991914562206335695186611317691973394173836372770911552054300246661548606938900485146723463844084424258397152720781895130365674716771505167249885393969782844638721257786158603348779487114049928431024411102710522988272739111880629951075457433645730206486463039235837179715844947909382325388171767841510607162059868661667020578793100861038707047461628150699036611269798381487932116456537730127477213255620412012236736967500750862190521663954905789377817890423625085013156398879886628158757474674110351393213156091708145269728324736524891264964982023229241384647663899038104206720937393223495047834572455710572854073472409940197514047276418822865146916513556376367346125168645120577941402200457708876322793258447874094840086160209350024207285959145075654431136417488971182833602275829063179759132203366954562250418258498632432406396423798919363564446560401712524267014066738439144015549367360844560587216229643332593557783199554216727170697649679929679617808182390064972752659029925335880692276194513063626779479371591520485395863529880438445094730449657964341912475983049965422565975693488059579256267941294007564842837398246694268457845798124783671015998882464301061495159344705056083479761529460115017435269551832685378013166021012835379668748784958757332182131727485398510408800220038589836581627539605065569499024936706760499633359643650605151558234171160182425735077579873549741974820026128411339384918808747634855262004400435065708402317137516111397304731510098390937845547263341515898281195476008651567181743781143296865757926858882997728475082210619687234469252904716400424489018187813543995148190831992804270300573824048855985775936055961752244607000466759169208350418020240127198328464253131078488992562723364300201700614007974084117771861995634578854671202805028038416826523263551827817535581605425642428860494582541848333943615842072101302941485103866391698813586295647996348580612184687200676551885060214907805826122444250496730645536608133732269682375782664728397754959624911528226027063503139151104856889951130810988841604232430133585206196757332633525938119165708914208264498655810959955100390055749031262843070374835553138169830883550003434310102644962418503137421328659877056585366809964011460435237511723149878873777709008204847272656157656767998935923227721691053937361825354730399175956630468323235975951641360537431082673549133948639118597157122923416418058446354517946432162218070468539304248522683703134128117778940669160458855863500085004932868142006378486753568165174311632233062763679244539301474992025997278287225988425590079476129013175945614447491093515583684645549643954070691867689220556396722862106033952941878230198893084887839520594068597520688104056771466576893077220999114413282332159924845720172270051621038914235028489356849592981170709768040659477160590457280534963017750462560358298950489816232738105974715371215004836302882534616641676812044153205165169939308563078958044911593787247233594310958776252146352916619227131564587246307411509227134338659263814042412894604781451641400388972642668723466741059086572731911847263198198697887129764656807457395632888109323278988946692719317093978288424407028126245536798664658250417679125485897987832015761083994716378736652689024320389516363472962226292106978640148320937812023859287775078603725519623759188373869129143426872493121446383376035966252309947151292038486559410217232490856497054482381529283952750077982220224726214690054586664199295861376829547547530614206381672792404439180310819963622018510043442817597009053052837867995959857307593916116405636407916662742045424881326964176922564797223607624781299161327696096514377609429163469375219668412168989938723767954693871412415624632760127992169532643989126304103145058279482629657651719171344757655592865404360425431922693320805841953820100992797008419181335753811031588886336950638962130759104121479161480894761176697235560779686241117968541168498630576991892559011318579691342531702275687575035603368968655664726916497556814418959326818189031082213915482565844847046603742523547697874137090202332808865975938771897346737952285173403701002737964861874690717834103500467010415474274070378171141374828121658708928151746652241396092941209005561558044884137046371542395407269116900097998241240478257319144528070857622844668421735607446767979459008339202058605517156764153473412912286333433077638336376401602252091416949431405242128337735809009078283207161692089514651607819652858023736865567807334349738108165182069837522189408396247140322391382795897063288688249990489251811266721957626635558703842838415641456636020800497713316097652086897233969314651727940824347520019166854181916301758066888240998088941124142835174840625670111257451932604882962598473524696937841947041069756058252533450980727066454597636994388920783362746480394161485030933153219726987394701365606169236200465998488819360872615595681591415837986346063927650246950226895366483271396533207014792427552110940581838798684838171945102044167295385050978993278159537184915118730638963586532743235922426862410261162154335716074511994645870319681787302843079637992730943269891819706921368504026059748278329980452777556501845526533725294586974697450564423652361252620862988101756501138954745886771927710916414585849875415267006722985537484887729870648287827464715841227270018017285494606685687295545364686305621668199089730047998526993785320459764134611826257914011935765903042832533600422447968527518327346357074033255096986610958073562358597606811814785228036051929508936117301142600974051126169977111781726277574241698138465108255564397867908293377634590923058926629229544247791275564995830084541270069817137714884842000217753921682239072750086266786469040926398153504548857466608984900450936970667128884101727023333128105022183683953673304760823734353016328964516331582291717101865746694583043232429340675276498969292775351958670625306221056928295445485261558529983927241604366599336320067888571709788410193823642484649653942903461947456655787269352912210549191401242166445889908010542004608942512726641456530953488785628165148682989029897155557860207052960878702509300019569228624480936851899062873077778033311740131465738670468344510200565021360775380210149459757926662815211548256808050206492260536393562247188306118045229236621525258159514902789874286316802188600874333352247650372811718404005646422072809670802564252673616195563720479623808449717846522606743052963222739907701794695068625626602425980225424920932308214206581321635350083032808411427562714133245374510565464500571244021921763730074224092579032322186399840778800148794042978292388935711083219202671141762863507080313690439990540816874210278958062590568566574014430119727229244254741419262638530485869920831989130873596083664485030275184445880716873100985831844733433701581688246169190073170699951705771104753803313706223704645151107824154800260784367685422254341528240395865715510714265323409161009850003946416706754856894852099875292600045289265173526062983093352159829386147529508518272573672334419872456181771636936697612567477381312716803517174035121365062466748393201985649129712772857826744552231005839739655778038255299029216308197550814265654471688304064107749458587467069778201859553659118262677271611945393593852195206821419186517540484003309420043023940258809987334394944721255089991516386957086635891149097715185946444511749505091633129078215944328502840817283106753516526927576538612769056169533259914720019956275056084671769521491350702871354523378625642413937048890247553297862381037896342501320381372018739023389605439801271337745907913989763186774420546155682325271110969349302520230513464124563897505788292952386984108803198698699740140869779344674205173644451679182671907440845305276662649371602739943878558914118560018062255103616999041451553644767861725350874744790628013865692295111506216854331905117559796240116678774629320877749018792316058283660171888364466232246341446756247174951688287016072136848745427836645260709436895749873092392649256357836783761667211397043230539325560080575957342851106931305142068052343333184957228136086805056797469838130403410938138663140082033367645924314964654577195924171458156483540204472673098632791407561286599677764381199010504728990914715123091409369900962160749995052784251340506220505255724224905665566230459521552900575978294343196028917829769767661402637146099599479422299947074861417651531210974636417284086142957226650275299080602076162026642619240460117090175201844171010612641879787254949425477378858065997584125618232675699083115775746648834034024327724600922723394404117873473952613586071060071946713640081511502179891174621989302102656488212074596062260894963420649323779507943898145026863980652973553735963294188506578741691954557855740341970542373852776115280640363658647680325073599832795925358460964596190309300358401546947997971583131308176285724439938570453687809795167748767213189660297481053611229033808232192469791819645129215903986596010166305813996234854342723558895653528910362647571519419709723389590261065840625539194566454945929358821591994739879193009840809517663736985090259139173698478679126501782354575760721041125060643660792619275641932784213629770848267645476889824759212828381349144630459801226913114599182380435444282781414084316714696959447826063524584999568507783734216412683912383599907887750640300031568196954870405509127412981461029830329387411001915812306273996564773031168971816769387333735166375270047542304285329105253102599067310859357380819459202583793603329861238181989847654866089680437166957113680656300314267646705028892580903321794298047202499590604410265170614920306049597035030211887902013266299228200177451116607483576497016319266267340029482032019818901935316384877231485265764190043591836410174094305003157159684686686163755895427276324541394057780395081720189221091603181563022753036641476885419306403260376822905053418016959374218966932815074839485223651403048902483999212504730993569584941560225476078472018020376697331431787226708317118226263334245084567023138938864521730644547318465818340032444170761597628356355937895750151255023248955963174581781914528400215815637898720732609972485723799214818166930490744476072649840285720031706331578605397869632301557146051397765698280219098944715364398202219765663681310010252423770529015972380330303257133182666796804983934925444958054240852968516806927827083280405194290506924908823116223953860091438180481563207266786439009861605812520269286608044014919634493318457381938230492835062265753483688842054287674180311922245075657131157547187804551738414857533873868672736149751588762502386256676469540154661997668296711162896666566103983898985836719306760132826901043970130628720851028602576956082151770257983842341167198276577982609719399106736124725993920693233600368517592300441732618815599658473601113469789609967279672554535827573661294500639723210950706372697807085332090189611488230093929064561380827917994545982260230739993435040257704873441114702683429067762263639710712961413614088872184672909884638614960760998411553806951179240991739192980893994867275538281654028495360101145838348794351387564009098199671516584147138745598363746007116519721911608256289321973703056532292661493542674013592609203014008015978471291026899058429466015198263342346307315493378368681177723063490482508837261320374331950670217435758317449442482556092051119811620121262074662280954034893075813834771690533318458054677843735420411913366461163468863702042640250854847760079561335153961978982698734265326934377426122728711790532272343645377620001507690814024776782101156924500712531691829290170828522021715566157020865583606881491313092887859397056709142632052912342269991128867751510857171047531740818076441220776201643960555926753657786232805180864193499257883248965476130627145503916444398354894004888100260282636477560523627424471394012058314621131939287034096664346173936472524698318417388007618649543560627124884206115717945953680192347056724296823602908874669341298769240833504298962318243289996881463695930101968072614363780288387696447522683470387419048006739611756062088748158868652727718091909753023634703750605372311671002237752301466411303304908351137528112618858062506391817329841859137119961970010723004229597932537514616095445439064565189023850451943001136722637297738262836729988570261604865762306057689510395645834866837175707667804476216972452234414493864851328901428672233877438962796175411059953563938362806850663803063748819136742952085369953619932753709473981442782799983275541685128888832314364049185372338182839846040032343198367904266530829556490322922502582873126916830666989079979314768690207714974862250951683752341164222813310721679450225255941228133583987882767092081865035424391932195660018575022821016542724106069231601362210459807349937268002723993116229131898396473788982523232341018216959737769806701768205408306696582149116279936685341100534445133948012270501648771748920344117053483145512552171065442842804094456495562214476092792940858149911422561853200255724894063669096716655340181418105922091035545189623018586170339160653122643542258965591144136230422839727490409674696128754301238391358018249871664358441420934718903386658931696005872657656589354293367072991573510713010902984543893090268508737672387345557867640916612542530556952094110424907740232723254588603449285327787094731128463867355163087051364134397140246778915894611712109134520092509959837543214826511261578784425222185527793015875359641003991927729354966631583773920485980971709350797205974768569446595316227986483942119108502512313765850993338364855177785625548520603164610131827468060338923172356395011540011534173382525795133369525724090393479527305655924403241656972459925211585288138608635958040118607431330839515295489375628128881067008902068920390581629179817659177332275148104582999571715680530804406368555940899971843040206856539149182098303369976131162577141142052887438514052919854912840779793540542786802073651380225530477914164838689822255319680080470132321486825419130743743681001124732670311338935691946605309893727846201191611745750899116582288508192175928143263093515523343999505824214248097171964861186111735904021895373626198299607628175464562572138960951421565483645466560995774504988284324315204009787703101529134565419968966183907184763457220579476618615596135732557856505713355689238498507756345908061975939740728804053760609514126086316504661045510531986576007042061910034182088187503278701868030486694104075473621695450031096867362685265746343896485618179172210876575681602424157651017859122760896381081542493764549545633868168386311011629468239192408685283737997294242933943121944503781164207093844067319924510195330517588513508519205617184410159786441839189376438799038384568862958761369324059919623665297284163568762849805233050288106143889764759276368755937231488135561508719616842306243969322274183161878988737617497625502285546814107482449610606386961643148665474719732993207988438334323049921171945984389817166161823113519183891025704358210732471720497967598593036614407665365151965021871603893700328410672743732459743173661066010192017176343548974039608294294198786314176578373107481624859180937079610978695074824148902772368368342481155153982492713725929461741195033630100923651837957896101982392192620658171227280861660776676256957273909371958933159448874873147128814206983676974956964456360101835861321827545782705523543983682146536770142434082978612771643117788796513026788834682798388855032800410107517854347047060982541026038211662833704358241939779556580699585063622816344528584949078226588897077591856803300317788899828356547854434665317593456894582709942515971577725506129693430507910266739091768284615995852526482814697440708671836534402531958181900643924192124981828947234361592609992171808224397988783582960220074298606295608093707562268141502175533042484401141381662658648805634653740093814887099244171444579998270036880160640866034153883279519171313252604706070995396450625476627509595945665232373435177747772463314236142995687333493881504616413857856944250283743627839105256840773187548177598991174107349311622493497542123239095788926356683020146997116758616608459333521000773074066266403978261200546176110055476221010780944834528591655933258066832664943966196208325163579726143313123877624674741128223108736654126556921938481917733778128740853709283120489896743540352006572470153128838184943689050187478276839313261647221127546199466358077359795296173367284648158920958816217007449981850848346630470676254112301569162605874239389188433619199483403287640585774070081424016434576279332694127663820392542679110613398192383616088835183628673182583063628919890047879786543467813369798242544699013168277862491304792974094345804155537033755801667028041125936136876461498239233154258696115262017908372358037452830226710473800997646775745403942898536489304890287220519414589780481588463616747835614765220164332236930576693488717492126686443669579384037799003130286696982149791081980040802631610946862100112523001216795480458760710923136134627696466286004514514239207134986360779502668322745689277598757393261068265523332632225464541949306700715370004256617772914200306776416446151249443721081114578475501980942249665691901283256808231713810228600552322174459816690986808620070029247501237564267899465695364881188560555780096572198998036681567059765315688984433980169087893304716659084748109432866215624299571129205295984751175602703415898152934573253271301546087316643753966749886127139291250434907065117018625117567057570438979415887809365720188651466159220790745982854096117211459806240764565015789533668306799769944499463559413585287830637586187465183973429322995186884859268120392836540508769632563989413013584362074355757828997525213515172804460972512071986866029761312509297280018298418276426107681252594498390241728093161031490096905263688753105298436107171920630469024678691392017119258233378241291274401400531849743034015856141966461292446290080198123409060563462293466560898536700194076964598587866031302004213308492843574723627118914308571708196155329822430182692611386116120441254885730336700268666645399765946584285625452136514741335839571860930596242693422263820770439136424910645501471174232400365465842362486570669669434583335820273483055743369487439500943147457807144597563139016404576521611501400536832804069473698463675537729625246855990798345284248849741446072704871533242492774003677044590181227650137400950812780749530233182685396520576984520233025293462737845503986747692602694534298605416673695087967809144740128316422808042492859779679897964352035429113545832738725427406184745432541486553604489894450741677595742310240766716771107910096664187149650815193532400640222985674213624709228825549483436646774985336399803489799231523155409140530012788234078973424024572044369949949668213235528984466664261900253375398589727866289583710311822508204972422984073150363076422240807559413564609453955803148015668913131241380567866457117225341135439746848380678967181215361102398152525582539201263380195815566359419233881716958902132865252069101500320608460395119419461056946563866649243311820881027438536963761094937493686841181706566855665455907736138507394861483352699550172875789965157766712243108322884506469287263443958158876290427673421973626263215137450019080487639866851594511124531438578553011597104321995666989400995645943485603063554177630194436906633190070465839095021475446479120532165275946367915497652761406594199683416355846041994335633515308458212557584470779923242948123729190426923055877111125819092993816226630976617118324445423416076678340906175719487602905945714460813407239808268378893080338527603281003236291401818690051355436878903432196860412400353963434788772974991610078631241527647693870458875621043263985244810023165314801462053195458045206341297541859243145883710918736394782706348213066100396999705617331770537212047592160475011646626348033514197712093518625463728013867946547337262135776825205578544997768251568904919852481116563561479413117977295888278062357527196576420390744937788521285639239798830014276530979784987886163590379898581457190456382464434493726172348124753061624550723208163218406210996506829209113186745458067488562779315946803126168304991558454221637042704185261554449759350057896374402512173736264853789197749747258571664256590071711058508642024079940222325515324305295728386498070738268479384063605810700911774333190729985623048370783580824829630405239439965139774382312072132197431101278832792415258179431447717422171437604579845555763053389426821290649678367499569510196624554087446165075307736335058218362926521557331040144687438402416783920449145527386508550127892749090283892246617489987733727541277931428824236873822733364906741576455342321669979867581193613222804850395099878848171110942094199607248034660094322592095153757730656879987487108148010853593532014975582184047382662460735973236253280270538585256694003177341546667908948939627777820158211069704060051839061984882814712830326537622364457904970469849628878842805509207811324658738922965794185868319003652071892111879877771085252169729591783745482988210097156828313510952198392573378111663391670913211916750117555102500522079920679790387470187574169994751872399864909235136812831148993607187841107437549135761009569997909851515714416148038676879444863363553409412458530425953381366501446126215695570087633936942862919781478482797373434502016254015843619330575595685771729011543323805956250996596981387702593117345459699074805032705245448767442669044820419162174294395553297799652218648036749057447367814756987642012080102299252380000685842715560473886861981227482557781722602243483949539002915593345167067850154146629783253169662948607852754605036132049604593663647595828632005806991878926015282175549710685172871743530665003410846636972424875198141388664574988424180825727094706050947888340206155157723430783681762104739603611803602427430750661090395463100632664979098404684445566155154757873917350266319397930556325031068909694279422777299884273129189571365382828691079171975271796105777272419301327032831290860088146689949092126010235308591286646634240412879715258285770564168667276050299844232943610229028307963764942578417728973060646372476353419166481318698062086509882950664552793299348268179969426676954015151983540816388036900643169038758699317510822199294621477409082603905802402693704222947525333974068446318012961575802315292549290966970181570582751146497836384887130784150573631559693007875270227155179758162110200248554919720708732149261961675464075514278506107848604846304542354971399140119246371369485223147568322060016673815924521227874553569619985446454536402047450919411524775509403607148876005486615096180847251321278576198631981582855111463329442984454476630384997336786934041355915810189140387856355938865346438919256348942613435030591728484659830817112113727232528409245118386460219955029640264885133474269223761814232507186534806655180037922249098704482028026280822134192525106545411767790614690572496693351833271818436358340452193609981992003269141568113771701907816981990472989090151721794980721136428551606651434581858188369543781215413492679443542918466759615711866622903290340028577889949193857330342417356054998459160455435739593943646841102576280988166767095191769062773352940622198888096707166644416905693612111052863997966066036017844631706562800354651377416556773590336316503180161558485591381216801347778568322293670958048899884592738110349761908589919303737910557827345234343834550249821723700511041931490868041214550259839057198709993431859157042990157943337161209196655420233778042348163652342644768915642899842067336146884727789598398668048670075363832490509588992967351312040512817263218405593709028573345795416974166859219142025739907303467978855862944598442746410219051186936576284403741833523673542616516101550686427874258671510651642618704260532122024801277885862319729387915667493883583843533601957398661095934959827950132983419313448781484355055106373505989281640641007714705883380789574657106202734085117093347582388543886641785013011788910661143058858295036235072148313254362729562776223979125369175938119267528894704238420406853423692965834249080070200548749421078998914608071067896677039657334572366734104396727257961806704549639721533091604266500350795643380776157194706292118604504176440749802324777033044663322620389224101720491416146652311549078475853754886721933722634561213144270547854373055206586062055243902747095954606179031999811797307729212889530521575889593340655580428106193763024075350225315779619185984375795317793600723046341538470374730737266084793065884984908144550295350123421000493195784390959759997715608740579760415810227810508808497630110143231491081094081189493180999416366351786057109088514468641070549550527260013285575656506294878415001506005932141476470166326624756889824363796620161930630435717373854904117303004358762583498143157991875521178706224211271320778848629791258172436301691523311987136765873786097274388762497836887765596848254475289618989447760673202490782229708077519180230105707265407116426328048032542849987416781809984923241197088145686180451437912120003851388809328728741385763406031185313751784302708308668882950163518188450983608749819594908049692009190359223144042264462816748029227210526186166813982540030429600627351336967195682274486629025709857621308556050081479274463644867323427383144152314997445033081183408162543227331465389753823730130516047780577490327014031229196108906604695919535529094137792688021083516942456603967756990847849095520152173812597777188875716496404826434185117499303235996441406291189673421043175830612975893057965207523601428672740890827570163917964147773274927572559394268209506772549381804043689637587241202558544900035588305758438391266414082621933774104658982687175091128764058193282925959580919392018519737532467777563741634585318578867795935407035659769200383888831816564747307198756005544251255791980935579631883357083535788050924467977475519031860105161511684820566147591033209389825991301081915432420797060703470138670802901320186931744381533646489123670338611830077951306206979312315994438487533046573283996991636896739736776543450624678665619391961197443805846198582180686777702921172188811764809841597879107549658372990763038639940201102804677100824448550680330412069530741594957382338241611666434314725015275426660472972191814627632904456151992139301021385594868072599097778720497654762249321938515491530665644065311947584695568036577175232378463015081258466171769647010246082512604415520736701530425352204678450659706154149693376382592991370696341963702129601431179426531936603860725678979465751383612873197881437706630816572607916454955957423941237735275665698121935126504550945794100739846282650359815686406251391077070758257480287608065439910867909707184545956416834465114042878478828394077445454991825412702314932010568658479217160461735337428990070186514696456016676355479426820074695279924158177224484946713428669881744268703228013596597149078015003814048615352631970270121696877677502123969348279482679314919866681597455163479229215232997213802379728940427027326499420539921324045560626797701308336465262236813957965422185108878479694860535720746395264908157410456153601644149936181102108851160371272198154146099249057650185878861026728217892902679283124419034692561349885769453115469697285013908656070637895981283141822121606808775299275798717666955216288705501428959032450947831988500710836640790789043714747939214657507583434769691748546787534610594685560035100839878211947492557900737508489645471227488593312158030142548587677375651907657525790331265586035148922300157816848277031037598724434868310818072335477701058081956747583299339482991722706189165165599483876622379633461584232967642905938028903358325555536229767646254237672856025395332578558085756525082960666653243796898837013378879854727735976662476705488331908175312038678278473440908717907861142217263645468645530424485383438303094603069696689079739410425580281258581900229257085033459210490437021000085814076626252200247408082672578866613456680410445611161590147585219213494243733083007807727064648486120942182889954210774050177701631623747249523895673785482668365318684734378839885419544211067283260766146256191340941567891867198182294135549727118674370292288255500570966951515257954861509951221640410866265105629802208095485271064660376397304681082829377584323224163230279164744855238359977418460231864626203062966764068719682745112862872500648154825549852272713683061575262205106001272562141492070200172374155538159966482235418421158669580949098878034299000193654426990429899332481738822682831223842027122128050625158253606542352584089036067428153767845148170119104722876180090467499753199327297732931226029072184385553626305358227592329845777207593821648601110305497389398743973145741506860694900505238345965074036316339258530078377686956741635042879306505165962895873364395812266958653352048927299768482658265422763457695679760855325072790828043307155832880230038830641377000813529591545857651701673067364733291998562431082371186573294156418463245974835718005422226512531136678235944047236780022099136579190652805522466487067523137219663778674710576056461790721772821209214518235911661458237804781645250632091515136228090054188269669410996387605825178513489901472513076824896626893237080369582794902834439895845302430496955818833806751727022126546439619304548101253985536275610385361898458424331779776115908948715270277899352552778130233516891506882700829405030799621018477428523104601316923063045981782968535607908056858957233411626859813705654869095603060756585993795362088985698107153395238439169300365782280470069320548984075963705031279418135044075224271384146468924890960600901074291571296455026370966446230253596588121176411136603039296400874587346051895612062265588444451660378469097314851881403954828398692122740235405249989279930395471058186752577871327024387115596505165526508263697475516940563246671974857712001033066301403409018913805495275781659041758549439565789154377778148910323448839523444467536451436971254824987578083886172730056646537134167366605416120027081274347873103980450597488247504334975708127191757172324057116528905083111452223555666618001511271954768606101216367461056011805954765858361583990279034417488165074089621459515379975728495700647356903115140594357679537403578715863437573251200357278436234964487030416392720134288283182833010230166830247542436937314548346226301682991070661803668937392557265645500654733829909358611841875577155224542962616564114147449115906809929739001718567123318042566758597216479624873190823882321071238529322014412434029024071520109682989148109634059433268904300663269651690384265990736426407205874334928501073209260225481326506733836977976177973246428191138959332175266723800260691478580054640984710615892619484192541197020523179362412196766645167405375280589443251223233358338098903967284832507296344940795811075118076725801935804247662101784217419404367928648958812818040346604767138005261294325853168656114566412492905195343327047379991188262015358179756477100926872671848918037618762060997800401229109349947241579563855457591141004854414604771974048323914822167836670050702891920449584374130018754669934627925423412110484060659371626802553676490691913446741130775246028859714122294648871872941801527255412088812580429547830395181022121241757179898575334285743441983493835092804468910078841830288993221829176663659826351433721412603155193989363708585664261367091202628069449370568384600205712596192041332252812501249586827262267216539059289073606028312590699824834264807801781291298631306073272941004836883619841917610836948702674326189285460375773364553751218844995703580409301461221142319292791566571606030547643033450525409702552460322416701155269621301959671140691971761887839001547584034411191994598861098246587102327468725620024480045983546249043805295993931850084811696799582975602387878986912965913234681513826340809040692842315105219693799850860831395162592628547030291653911180646692405076813967659122000157747522571171958831963154824529531950468227282425733255131131649994095920791138010782673140477081392123568141072493068091679894462778487431553322368073289394228955984480248849837776590060110734676864194476987985606673998329444896350094598698095588401055468143066451843373307138551007022906715087079898866227405848964125038421574805052556016331764622933151575518284760377978152944390248776551702675647753860227750673556535538938627593746761618767430759010958133990787061508414741586406979767819402372156181307087851534934304300757027281787777574972774804654390814676992817157165056210651240333556467380257552690968342280625417638244662291469357117451399820336805533429376757913326385442172706107293487354939812417060660875262746872973184174168735544256727365068490400180689222904623871577401552065704891627271948077510109318074122529590001558074514926243378074926848536721784648182439581374874351620628852175067175837764961450532445436418319063713489375700695292106260807363217521630563178178395400665915350103217850514674633686636302315367130509390827162671712016451181783393381172162832609726490487758606801753247724551303368064497074381728718684053000279129510831814118006659535239043807303791558161441348268892752465616198209432250473953860160557199920185888014867941272030588927399502350673574227633752201706668741500162152925736236579115675418270059209326128108699867134402368447390028007811115629175259061009233227237948244519721575368150944472561218143349833112543848419609229861154726473307419393683634952818581409729216307982457303146792037800600052116027903652790457997911429344874285940199305732231566970983114951090836998524667076988064300153760163560766903924101832837129627893642612545617734595816133671409772711705561607758813212376374603429116949082255155022193901648204523392038982263942741211350531012982546758571407106061735049483083680658341188562590975684104230999797935672331547633973410253348429793694254434235968858098006625365787359703484878731093546665798115982742492211986462928795297202517383872814761471410909212740185096130702053145460295601679197499664943229803413186983003378538293969978222748042543593436996890498702545013997845207571985804591934971511987068465605287100348402343243851506098418924049365416191853479119353272877982879862101819153950313337015642568596669100924346333452799396177896349724249786435927095560945311642111822365371069834181383801698262343559736337375553588253717737614089728094389464191204658955257576937813707118930833198443882798656803719368601345162707063275243113454619466379345181198192887541808346670014771851035793287112352428243312403137860092112464365166920230675580535933506705986361515997389208123725061155872613156549848314871620086376592256727869476590237811462773306970183955322306794534316768421761395572313082061764097412819415887868662714129267183787961940146891197014270122103802933081990726372100917632999973576217749158607022140726146852120212528371008952843755170186128931786282969123278981395514637757405279034263794866481595655407899654737800958326869604888384473559357030816001731084214817323090324823731402039318215750395791096781128421100959340351581453655205095844964962224605110257363115184795845415977962828433377249699780507180122126777708917573341522491000207086841663825463444636086605540871631066680712166363993299200008502785605859108174374416334355404682517690781263581725739985159246077321700645288442445809792090390131474846496918012089913532544537857175905038487459732019466229976854361635412376057171079638005269568919171186419458786873417821525595525354637851868001658137400614352092072487940487910898982987188352017125449068694856700294671000508164089854386024763644751007073564844858347576904668922633937788921099300806785846712942495567580987824576753747227760066880654378136669162615093573346358730658717863974030212628373393635978675191138848540973145120809320427987651689348549603525407406925099061775046828963943728440506195908493310423110269081768527630595361079134859062240614082309857639466455201756694109931208355413809528085078975457935558966264020370860757379250648828136269586307835282238397960598871501193074761579645368726184198387593937134253034849081537809670543767494292129889611352037646230302009899015085396690044601358757271167553449181053394872415516958236560034616208958174719219776731513246084640928183390865682095070143186562849082619921844462007330891119924321777408941709307857508058560736677525566851719518065880232760198180995961904010777285116232018724743851640188035278392760107857260762110284947668674211002563307107742866119494782846363673780865326986955407678465181301501154461408630176607256704476836592962277178190118538533443209756368903070191458876176772451965286167680257329924665399357120362517922656026230922749080091978395910828699641080508887106988768054505840737435759339246609230655657987287748616802572043802011335059675366233057254954759643913288840561722396447266168071768726183738557451403417330721933740967963420468418200271811918930868245603748669947192106982470449222763486642026938989188873719184078771614540526022358535471406795746293842751369553416955267330753944782910838097573207178507784234978646615707569934466367208077650530742425572586039050944037970518800046395252043814167426647019301428922888380710814562227159246876916290162666880637081630077789281428710133746510423406676858266426071351587690098465585612171217564011706411665626700777980668184608753148034852093760922639285447805203124209650660086043862419776892495536713952302435495436998529792701409508301787770531741696718987617622329202318812948630873945195768291894104371001213577962634966888188720523856254957753323196296238183135415904770866124595608289153802440790356412287517832364027013301847108988723017315084406584406251626746021390258272831394580866079770514136064409802514605924644321963680603971442287631038234058914231116152906638426836073338208362665178701498428703531530236088365108463762457766016527060731316128819616295555342254697446981172486960238595929164925398876216047699262204302954347644123189195102221634114530909346614734784727110569959890862055235567019081478182823799212166783873147565102479273821089706334254389680013902634592553659600028221654560938448298001655641095731584504720043777640709545093896410750795708813563869838768302776084527581680868707140575238442943928841880368908516471161695340539215337395498588610986051188174599814259197660690791903443209886628438110477445468793654319872506172237490233585544116446269693539480088239832827287812345764512430019473846647750428438868990099986104979336626463950956860922151821395552406565835526789078547471363535145859244282153879019145923055772835303661617222588440967116359531664655396371020901136111485511998038631838175665021152774359853898491364677862470206332609297717808724343979541505689936173182385667235071038935275083650357443129718060208596440907507657562897320812035364538352601703794098333144763703263370751877610003646620336342896086114421445767113306384624453504320513761599052046686835483827423984954781713009437250450257130207586607254135125629346362604529136090196330565618456437421584750084241458013723189274324576490078518172791896091433560207597389349629474892121986742373084839462829699112524808532476866852242200573964631439267057277683876774819535211027765242308795663780717942156067217686838707977512279090284193002808686475255207836919004822519234084879977467428004769925089735966895010482491363034037351118252809189638464275615886173735436097291647993913161013503456262556273066235819182143430705468602428483717864954666438313890337830358645566119433302621773288082162829181816868035143561669751972114648741464390381949474820199854841383303952020215080158887083330805372881527072853123038779733121068596600996612129908674061091376938582720266780162107536838244879156374911414628622306601594459055980362204702989575076813070428035581492496163298341141191681722204130494795031908338822896544758383622378992304514179611823650063211758642528652766380670034817730827205518397280176218539235013894592493896545750732267043956867880313514155265933170131234697076596651727227536376892934611943924610728982954902557492055604558084278098858858416898654098101156736872953722381955440156702937440751542336062301865635293417138518861790316827680994796584736230583771774263809270854564054329922719011577126144394958107104550434382418724632688800821738921453644897194505630278334685758601116460720838836183807272720412320100606421495555339907100848415335336606502710148637293247793643412213899044401684689253812836419645724700998417932714918217405373622690060903406044225570667107655899221974654268307082232411663191657518547475084885909575928897082825759391315957668199216906619368257656188731046036609836729647975410584077564426277034960934947142723952267485503503740920289686033660583064746879732021444007553448140307778090967632514299997841248692058807722438831203809546818105480785140879967301911995387294743116378675323989171101839598979475491472728519182698131825695697434258910221590362020016896465823187728584710043572074132020240185661710332168951596210924877309151726102058098561331974711428836190418599182105764102501902606467783002366339481455765707550829160333189668398257086114045967984979535675733293108728757278177770022530848851499458574014007450317268112246151984679277262875270592184771581463425344605868479556587753437646996492836367725301373655361675057335687552634959601002019771859446340715585494856838194153880275038679492387177377572215741585116881197385716318239626546964600351996032503991851979861900238539271895409003521767717627108383633635051437421725406384802068027634136837678442812669369717217262505846104823812832083901647166960435494015003103339224646274272377116433584974345277624046376378306033463628082804204492757872460801721759051547816865016152868139035772103246182578950323916950249999568495730695884931653360640629213942436372029011216640895629027684880588080881773580008380697784965818180805806418970649371034019590135242574780185814029653967243695812081902480782050127263549048749182541217098210740847555536832164991968013471809372105630863619886027418531160749727007381711284503328873413916783610811225989717250382942553931602156188237671216474183893641622042500451116280222837768677179169934227615603268490134285654482358680933205511093126486072876913148242366398710868112071945649768360126849264401319436655927417934337591014967271199029845942776147612073247813522380271953773193164516918614559408757074146232123176740707009094783706336287963458105685900965366580325744695011939360420051580974389594948406731957552916899852423654040984236044865584646740019202909485353294238265132384315037937106728935673779120710465714626268865012990459815628053391249269543160944915953314272071075981930425001398971047656676337490994790571307644523232668461742412137476917953542768956537766617515863941604509752908069827934244395329822053193472865284389755483787571353369115391136916672503143588718636660681991501133407580917637593649193112714214470280550095818407877952690200062509513094899870413798807207851200718072811659585641958822894252541679766387256464830006343294764890434262611796345187696883900617169341875852012969493693567495661354420445817818761463364168361694653188582647849124911669433721244683635028521381154354261117832449403959729301213198456396792250182017476607994700939160637298515881769582603893714883891037008393559122693687176550039947375005268039257230627249364614599935958660756679459602396365253763162530783438487843214363157576430038365686041892006743016923646970950151664196600723764591345358292115123399625662743682992095837199635586404706289915630740872850183083404974252172335187614820504499644420162374151738925152834946008798950486362692541712025701937143590068691042695055580757190290747410951818114515488467230285008605628537351693242438340523494644891432845645938862465320275880513022080020000519282322138263923927114417932252031941047251351282051499982351392439174079844103448555647564462264488500498565081337637421970579910480924239128993564652368180117575680249607730566486190930525941213133947031141638789752012622074597463680920292351159300312914402221515454725308416230811474101991996110382691474118486967865818131949968850439169591071322687210576389294835340056201778827665370661035907564111591327055405375801515640139368921131805916404109602156474828574565926315003977178052564509658783286122248706640925789376503657356631222271249742234660781550681400628596693369164577887658610233654873028024824289540206835333021597736176134937553657435757848246138750557414780017469365318589295519188834389248722365127120984691257929530787545780602929793153659042375713307736210868954678217867718699984747092597739765670556294720649125218233140166216854183311938149354041699042633456619906153392017955126412381250661985759593469019486341932344863042771958318181872361382555023920287687449045000500013835694975051020435169082147761793781588870485697318323204333565501563400344079673138056512499609075953542948694537468040999544178765631598447618575028862141856341171805444400436181570197393771277001199774940798647381181856814352894009887909858947695132264892014139550548008275830744540660170521088029194510623086241504594939275690796496064842093916750800802474429807456510970063869735929422611862970489067443832554599982524771462722572005793854137549156292613320013694134484677294190558664994579489138174978567246805075647243862145708160731294981303265767117421595464659810903590140775754231992653105937999121793272653973441282932772572049159514494558504829333160376184420758456870989962914357311339213269749654238233012446513854257663875143073180958141595303049445949781569303995233048986926378155750378077513300569177639210912001911425424568942073445157025916187888724387487515861549401780811134836699226418114403015612282402541417882229977359122939906375549765239905318722581534030119941468207350784275480304953278275192085340089553387914546739344089679056047819576941013251113526895004819428194451974250178786439534142064395477696430518217383017701299977460086305349385502786127060211403625243732339081888512604703398199382537315105149141747406194853028537444851521632472398281980532927579443842183294459667215562478230081359849940291156856498342699209543433718446956353451989317977987121964365433033880948117768754707427190700897661189504286133061759252967528048999918341450407584054556730934673633003008758215058641593577726683571238574566055155758944041365884652957615632545090994448688715238618245146405823455945802111713801498791503483768934812020792341635487459846150807842575378579848113041503629104865831117475399948090228329556452119609506542021138070944031307570360443651084381214156270498940231560647641318657270741398989055570638575255708159411914599333995742424445915095046065914568456442117118713393635426422683645768537862295283026014456878793348952889600563447185667495595077876246571136168558354771671100372902306232435300047281872416869837220413906281098260769647348933787085757148040488000410355396560879809786589597744080077450779860380670562552199426407827451840892384809520470749268767202007121063080372729687663592642188328210596279715257970973768564110709691114848353829411029353778954046401244155858259365763557943771711804267138115362012149404243789746947015480583593752914875802436824210490379676738967275738996075775846332075134028254536739129469815625242338302464284993688459523833398711697727880983837154314354895754161163824633729512505753310762081896233603755253591084128952150712245990879832650551623234339272132341307563690516997080631256701092201830278853849136727983395319884865102552134510382467270616955045408970347616227034897564842623122455138830958825482421788618231945359724030095959833553968264834120440140098605478889216571655860526110806113887417683284204122639366359946940701832420288511074362926197953797853375793220732847729070872275569391931536410866753256890090398926898660543717631494524210468512671104555756303819678530139965114974983072032408802980417351214767268548556535299246751914169068532335182311365879787135424721318164533834281851320533309161857962922173249931461841164733315284127162517525777329432593960870971968130744008721526376943572072201136389841227198332463602592769850223476985227048176393797924825884951239913286021452469084320984139588417047718897122104042885656640161396759504353257630954083868228708815306027459355062232420519092443141309272719364988592628118262161001960012504212627387366748446491888625842552794386636299658419602753472418530353620915903175004563319523765271764614043408557386745375813215243269605305398690478568323605815772458104536204479132122605968983880249756728826651606590463205365115518182587588589868598395227083529586123507249552932175498278193873415411120908890124369204532099208612905242307085240862310352245086464261253319402553610972584663978248045700825181975015611414207489589420675195738922309004003524588357012785369340683417532837027188363707439335580806615045057191477244762614980906496153739472487370425899434052810320737039942057478880782793706308339729100084511961068176832458393917023266609487347891654129295044645932268256218995050554421610618179626049495751885242108943972100136106942953416683171406281401872906290410602513335177091557733459980422551101534157006402213922189403365111169002659236691717983734532103987276622793101989467049755278953868017378200002474794307870074062412618572659798195267158095199209678083497123330174013526110446135096554905747325943424714715284373979982196400395270063293747783652353878990244758379387656824175912161452859724220124896982308974511703036458092807409002393592595126173850543660702541546802309899583645431259047014435172639745255451345182566731208892911729563440224791220265552577627218617872582034037252980848904722489340813087722634562843982413422551872029240398104595012084517452915491844844904692762862704777721057599774320671999812946657075022316611618143829177610053845980336897450236232448228996430615725225995263379128825328856035595052710845085114960208151294348185835631338197334671452197764448126119182134720235221120683303119748326271992660808859792030983803854446547242151636205736819613206995444369833323927965096754630481893105106111186004396929301722014112345209139093817038363715776238247909517140471876120230153349614648213328387561307798638019276497415966632511090463094264653875347382394611607266087525642490323885986937077031820606704659786697290774068694674740439427683815688523673531184432411260568034061918156697096447223086818618268625281360383133836884518842192133582661346128864609707759859598990518220809896952306543575348333231168747807087952493395087236253156076701283677125440662107671856023597603365577959353558819503791893761321369338760394745986599486074043379540320295125682800301104651706668954681508977950056896312049464167815258718302867346650038029925598307745423881994511969602769376219571026650096238546366328977089537878774408512008014531707625061802022009192558209257726980338502079542101595269595963866289572639032122158021311096292171989310515557279865246460656428819949534672487212304589954320715804947363864491408569473427680603217592021883447747291872582416857444931335991703197181329602028938475041083753348525005204192439926794477477017320670808549373234278418563134888440134921263590630392307157597498928052781277287828745658523510575106048833947519118086711886403119511846271425517649552860464275145291436595874782369004021262895850205542760698168899762440363119899975638469803612129689351488738064058370304095383323936065370414704208167375920839294767011023863443149830399127351034416016280791640089428932299843133973652254984886673121491666964228339603551892655757284459787076495466696756952796876440223084380831348970320522137351463243675900918339040315888331276344893330872910188411293554532447147474971856388581423630870949480745870190816617554325833989396958760727282484926453012169687101230842103529192699493256603228698832578319787109389899116770667480636769626916456678987086596160052157975451780744274795268090015600819990258613670312735591183262719916086631633697926219133348974700787666405537904227450000248078908063093259417157882041313978844623535076484765339757922542865907478164304974083106039496337396635467834873917754991128042284679380506883355740359346770907568163515717433790101102240971371876904607044183652921933252868279345882358941809815808884025770711664456051507010217993511942166716870533019703642839186535842977148226240481833700528396772715648577558760845340621519476790022660798086955122040310198568650094456704651225727112460115347184416953960132293076642930690198908360553783496136395169521821953215218837063495609071537222169830894931559019955736444723613605146818872618646610343533504799016574553499270523802316851321303321819197548047370563459865540981483638815936992136049054235306984744194827714201228638729008302552095690379539390789665610629929893280065753197051043613725769646991834024870324613183203045104798588914985822275972171700145533551462123747395639874647936324086462826944275320868967024306632558115152743415801327415153209167136682522945378403713525953791750084969084492201656106016759928118697189097537645141491521810645454791333084032181374577469273226105685203555827091863213082167061929559762439587827751759122402348348973947871510756142487683703479624423476448225020980509559748222203049455968457125118257908194924610581468315729726990451800373068068329878393920596425139006114221520563912415759706964167447068395311875872912806496926552924625442732725517748626947017900161080193980670857409030698045958514297284554329448176831369921057997332548981157428222972913333525496721647837058433699008758675480417757372525973844884894892003075849413379130396912837780233630551308671731651649553917632857233346007901996939952382694776048715617348930398853306918085505969638098182436808551465090271252983503887097301924170436042331171060627772830555660081431375214339858522387383227366342874721481021397038960911944335400681332742831454860093884411094091612540187414257643306189318105412685303869924988687456916221507345526235314984790494768222197478843487573403117524620378671950411536300657105162454553332660822806491528366457803542919086680564107296855446425079998604092871202138850905990603507433364137676082626769963037159924574065443220249371010805178954944504192303956940644404640866588393273881908773673766527881693870870947782521126168384742954061709762274224798244840922157551907616614655515798623203060329500181369014233087959951874405157006531609458572631745915595071508340996659612122086320699757035649594916200850014534907963608743740475222233592256440266894227027199312569146563285944100310275805505104946983377534836684902058990251747451926072987390132806766862499282462520981160437135600852987618439599168615590566677457828792499197837684617131869703147992632105263633166881750620371262606981063692235106513224240794739672907305631666915831207466537758881468881349087122388283609090501718929988785613292141668579541059526782410373252339404785491528899812330787433106193522415705703503653759991853289016059126762327367243915970299080669095085834116529406374065508634977362759161454574025108923762242554002597310555898247758671648881271715067435073055665946552866839886512642377819497612671109810523101367856680068846761629419004212476438062352673864023438130693738357246741496734122462052940661050939963135900672357934105775067214681697201380392196780166160351887111664686216696070583973001158176237916198876456177560094937114518892214348451303677851554798792726363124353496504464729199496920585115391372159421923744162528192939859196285064332376939214520576148522187341325025256270239140840542121055083527559944582947109137220855029584608416534443499078083242321545857698753182151559253550965278633909275122161458315321120642275283757596607926257683042690161029282345250151866609862700831310011181486830010607699631485889254378571015939222213217400983206861468538912216738542636283318553362848503662795840176002642707833536219360837626108425477035745841258399496202446668162010737795211522166276706400067887342528294457862037527483573496681042415480061797836341134158521883191475383286415112339934256904804458104462787033574891199457854626280762450341229355777415445588657760588189289030578746291883346539639969913475695742848897906961829670708633986559756999141133675188259720002072793252120770270732919356501299662954073057710223000916093393681828552548920017662847360251765155798975122836440429371931381550660368337174436859678333716249632499459926928065417209840384067546936146224404870032141250523790785554248885199706862592675190809831668323250560682872242402453483316338643728043263156235181078644240869052914969537125913089701570286523036320543779948457845859306850240276029456194393424699045261396418863376211760702567241022515105925200292791316765083158045199251094034857075242292445652085189047760804736213463421234180541843304741848051842538406667260843989669983981755507983647198217266373425611568540691729237957945240617403625354073590566605520329834509698501329510411425351261167059078116349989733832870095597750774976116448356939807081701849762166048534632473748688526174788448716955364559842939459599203205645434156383814590153454050044389418710005646050159974802867634843898914746129976135019507679634439515857816987171076365581162752768914913386607019191669152613733181282821418902697815633463449614262953200846620650725700484856459065789882730669263751631010490853158427089601227915555013770473229868398202774494426924637763233362023364959396949051294656245536724523284259808702835493907339766543555698743269429549788848316080613659825238639724332504398813522620052096206275984184080502100223404443076178258809565676628377865241828167091232982776396800616241509832957660452855021121943977895284751001061648308819908667048160945857286723651969195413105411548700300901761135211657354368471314580078837814464755970206998280289655062261984737690833882526120296638516314211182703600927409417748987580119600887569281396966038186741018407707624089406993513251203729829955392713439889821996929875108708450813851557591302952910780597042644736514544370601038546850806566267621281141145856511153049486451134518546986785243898128174560600519260534269340903536801546463335949034836276562774453042049936227894952223435337534342173766028589162848573742866727468982800990731400653111731231395480528024094085236138546231291063349831022342549429924786086539378097988625012731376022595817051366013020005760670535643524370493167329720794164223444816948421068575531527785142163154244164700969451090865116344731820229283264982838780584174124911364344747406869790877034282471325304342945816443021376593530126411055892278896557848014203437615832330523460321644908385761933115621551625593993713481666607236035587509409321916959701526917602917488960114896051449631979969730650931711736364855235927644061989187278202914608061735669862296176272322334819871230577486599830454887667402646742207654944811635323895600518432756427689496798073029730181750795429521185118041790099570545508120546519051216287215302225306649747847766765336037164441679016032451161259281527350041474764535139589225136573886557195650353809298504570440420191936028229306659323271527842659270009790001101392340461805903164536503540098227025983845234370941596402198941789804377490713437553894401753422152292685901743492287004468285580646090310793606720755165399784338565144572750068502299613949132338524190634634127378371968101567940214173502264866557294870424001119629075573015338842803738494269273938876520861962039994508877465216310963793462668262389324250534374825343578641724267356532415643825979660581330499709501048090272706614122146032576025594645364742780381762047811532339107347940838010532280191130894186030577269222480815083482714530961629976219440784224069894731219220477146038508786881718657982661668486643274185129110907166367510071417201991869205031118358865284431196516147711726465537291300240871066902262770640165071934130858040622028110441755314887703763971828127984685228021412126193255159904410350515864073719288882223727031443020131525718396923938199088428642839509356152551014138912777398449537659249715957203032996311674167510160774704806138205893068930748039145417329376154437083938143196850414846363947899008521973834987653225599372293186506383542942888944422234603376416520744487308876210866491818772020116483209660697430130464709652206120218839642884337335514879307165219479901684750804257085735165787631764383295991929806213805580761248158706918013115700681128316764766330246872546430758616373955682297072887331272518317453655496624524153221342072115613747450006180210352486608554882779776449832959476114723064777450915022671330440127341056451756888060635786998119484576457776830669191548185297513381493186306512162540680038051969305641767349144513834907971695039760179569394084460065116393046145037050590492277209520835861325692016105893384387799459925103000761761432857335503812071463224579792215477741294643972365629272016141331298197714009663841647217723683398823601700851903253242374806920553594783751961993608185828024155709851414865303194519521823492893068278573639938384560898510452383048904296668151230541948361860677239021165521718130609959593025033094220564635194693299101319934816279139246571179015757521617994688947509152495262239143205703662964099970863264556638853693435732265388726504571970240032433564911803871443717449570433673023610091225069506670875756232275092942574736998083682968658994049020766797660592948287554685952032544909994064291498412701857708767835291221332722305308601696382737290529044455530367981658807858112595082716308320830057950387738239981159054644279185984262751173110559481296856704149514205785251925294753287408894571720365801599160770317427230595546995676117245519625328959637600318247026439288639652839187299945397567256559272996177484602858165844199288037138328693534503736761972270891324086566152865478536914460047310648187549735613902737686505823095149150917202557115677719027081823380583674917329259777994639435643081719048472819372350683424111495672203834194248804080829978281466731727119082949307783689535922690136739551221578897143173661195895386091785760576594043488937132667486805348698086071128319301925540373690529017301301083630731090164713660759059471211167986666316054449053317231647526927402559294051330199571195937702936402571018348396911951266704100218170552918885472757670462517013370897236011891094388079563944069409283938451199885107686815636753444041535045916644896686929999787699048692292200221734677943605057888825766712176749305130912689323604484692474216145667334135938035410300013779925130762992367177441138118901750013930938210168633387669949436938133437976791569845463261283852923661401315008336883086668637561213869033779965414163378441718459825021515909613863868951219850369120385784439555826269214035398645392310744678588847096692447458180425302686747507135383842025416145045656846750927337349527437913975543130785254269558550717298628764447582213376342212385265366998195888669814148409480787663691848561674917599873444035124476095817380748674247667485433782796475016860193330300479662987802470635694865568320719021186853518957727712964580680151257786677797291075271686363359516382547261697389229223549260205938666317505767649005324540484254129458800838750218905719685907262612501849626705586165802760126480804923836347065046006207191346873436765958852808268097854146921459570423311125293885029945238661020757846596053295045271213932060452920124956529543570126613857037468702676446522986624014047867570274932780054416899123985378249891446234189000604973926188017912065927812263118741685096436779134362271145376964628307306144399639188623994638415124662052602233015821330157237730952813166934747553675597790906931145883230665596738571608480360567850749941890697034893640054186717189943543950908806990983195535580122585454676923386171844839261620071903133238182985265295333978991707997918932709509997872719697504614011834883043237411225000694604705637188323461312284556783906598115265916657463241708255322422996776215634331610797314099302898748720871080463755282787589922064706315855019010622329347408522426235763877150345142778302162096646988904416377368730843444484106503647214077798914389460104568508321744675100812174561722430600824040239259220472042491943182107154998523125761261835421596125945693344672014404360684833994726467881895579444335822276708830618378585158143369022783366059327421354680985276432432216600817145931467527180752893689323996101963494041752525814122056385055279902723938740521041335698104195293391891988086866668430032101184195858921645258606503259542880633988572396302880108840897970876102372596235900732457658998343860796575996202414774685256557606511778456084074387528917824238121876869712726827154570741075251083836820088338896828643232177065414849705909450857650336607551024619686749456541970551202438058217889313368962400122601100930879220289177297350026808931727911143353925120689460236633170818709445613604250049726432670094221897910866843130586476442237118911948479559646503874049030176251885086443094494635858669584555156636760183348759330578131023076109015703695703223053957054633874906522351701955078481135094846459068121365924310828759678634786978069823526044898450039457200763329505173963153520184196927306573000119093441753659079026888522969629079875109349165038480586006408860984860750688264938400112455389138067841334445129474107035553664354928996802124712805322811162998919605815154990354608520218658930857723954745113274860808240159171091413077540688436030829508379406411062108598979113493076631226870122729091789900706968939145852997782968144152233948199060095363341882732370115931553179610499826380875051080126044448973147629764849153652540133544052306430422707379197461906481218126048034454574019906881497790297212509770277123846551030686898371365708517669557659787556104132485821726659541319226603419078319633623483419214574931189144058396929134175214471475071901406228622635389097253199975523417988793609509236117826115858236645150619670043386848524885629613115722357309331154217728945646369100872490678326801234937548747132635229625254389381329392216846940836803952392808981021691153206652071594066695585070586395230129118785269223493029995213095877883817456682112413191127324742804340641434468530296726777929684830263770282636830866232400500709889579387160554283208457857788224873090817972842474450244480506994835392288042647984181644501140842209536469831521120373295202698665228022664325803661829448602222184075594115451052721307942096229377452856973089985218787010562737640300649031263550757877387778194679938289365521556163427345617946924332783770667696749799861710170887661302948754487802724914596724772221948120325482231041604245835087383473451391602212267916568271333321191906191678937815608995852135673858036628247241307676601143288107317115831484837330750135045028082329562868999717967941592247793262271553298373509309249288358140699170227522912007246179875579383312841781853398184544397038370515378562058166885556503765140978479562413806335112921443381981525339277940729951968106530600732186269146160363574231724127594454310261380795202285168374796103246447918515403134627051480912384653488105372063850770868844441405080914021147549218626652000507248663680026630195307267407377367130612337856914838836799492021995052255881512350815748254359226310474127050405580799264925666023192243754617886590906635575794791236075851752743405529578276789270619106583392279048732215866365095240976183181302733728203550182913801988687016593732566210498142657495913825917085882755885310340285469383600716359593234726309498142916425041088345522418257080404389493271040096915486323078334860126854548159243630012687333087992447988806947139099830657184809785349018646102971888850425860736518880388461032437343284936175949344004587294710484636173906260084530051326752531337132319395654163999693323706183321255142769424407313717278027941929188298837548613472831943602349614873849002198812596313409023055771121289628834572655627190804588496709049369872249594341457443842694130885890732627006382219591334288528781176649920200838555579216333581042425479176572843298727890396705783053505264239893780933307967256304784447669475975640707023454877769766055758119665797043643517385673991210734072935793297141996225751771114079861567421369567664278291048700080196109853870949340329145402883225706252397341024772210077363567591487271771426996865316711765038126081953378866740676991477090867705720314666697627872068066169264205442988768457788989336393429707339790599394232987364056688611938631894582847808062852051796375342716392077271179509740402466681575749343717678967381412144832090264341074299580350301589870678971239886482911764958699252969362835628500852865547076618092080168433806920379736506591078579323274647142805112462050344753363832527119422851212556745643686168699381856140602948944209486809489972859267995437208261543162986641512103435421236699953214061629252693027020293222184725841051987930012243689703847594102110289012460505249082248192443366233489237318023630554210400694249823701149025268803582262346739103538535559175816184461585684676348757042201548994698937168926813212181429220955111995743884569988441900445935027921734106857726149307520845954581263813107506519509854902989893879216712115765403215899367708867439646341818543812391199815793267393867848599108107458966509462702064115277072821814958278908893709368003912386406621682625679118849948034847178363478316459139060930248690636937169992405659890132701571493066435677163308713995757818437997833701416957469572151535374238517907340044961882727016015209933195826729968213093177506734980514851921812145331585090520586376833619251333767441089311032384944295513542975039698463497858566726858404221626018603723377571218488385224200936550259747870419238649953839206186236634264977477908271478780197724494015659107792123515371470194259726851476433503033259598622915434845867886628057383803377572813024583030932011714795278525551916177910194490088691555562726480661291263276091954220705102420984392030495076406643412505091243695270299060236155467801281999667492978900583376241413880685953621417351621961679658908119118063939134594037148123860042379166585945564102024239120985790190026206597752114840597857667997247316045189891114896034292967180784973977390276784737358100189401195541996063474296920365336184391493364303161656176024539659249641156919966394059825048834926764022960257308158535824601751276825343838796862065423747083550422029677839728741231776387941046404803515957381690136890211301414352172828446575541278949549671073886543011531506114495826987192063345469903873718150715235905427936972950501185900634781400540893775922985625872236941128360804462690236220608676066889685586100399724622132167157165972014052756502345965340826981784485943575790819879139350333237914793420848897154863837139957413442732789398363638714745365439998936692282985553505316258500272500940942884111986893377381790654860164122349713916421010121150211240757163698944690820085491372400379003698833132970318236735240999063067993920547796715157649617026314808542154727993596104966305303165969004526934049250962110465217839872423151654141824655316678591859695348217710916642786640411206224144521632437748967430121678908440582706519083235064734119988747026034846770374689765779062542863786636736866217700469871041786834851912566052951042955093391368460638512729918891960120180107521839274256514746040489969995479945033820344247979960826840337365352066170088839671207778886834552954605860888480008113676706616243505367007128699654420515259607635508986657008275949942675285227092068226804730319149219655674205867446717853611904704337120377680616184828164706224832514566473483715571550950211528635329750742210489888788043397370082750058343830472383208907297994652786896656178728718575545639651016519460270071858292299165546351382303216304494232825503989640902937864338852540749518493983916974049924458285032862350788194193529028469240985430381536419521522837166852476539735880925058567346657702389029045743576334075222093659504269701276601106748593109934198052926468442449506875437863105478350990786039651780036738700881081398086136541545194154941418536561157653838895309615216796660259145793758370080719439156135941524474115388720949629098876900174794413716372421825834191290031508055734848938460400987525466991287676626866851511580098210226001020057708665037892405734149862253116651264228295274258263275879493288998995391500460122718572859750002316720234710500157006915085029310626907301102390903829422535836369157395607477748354615133824468101233143396329290065957056069269323649374787549349501142034267499589247013814766768167173769680649869685348051514365860897100407528520062147375965585582432507680445389935870407288225464093668271171686853160016550900260274154960989606009629037240531796761463406505688250416156629253384242931651506544332909714280640670524124840176544661142086510697634732358735809846999121704002393086276657733688866220266792476391639341710663336916243811424854153887995328036568222610049829830533145032618241895265172053487004659524206241394450477014677426161433510383027559989354281919291962615630340741186663175856604149615432312588029088127368062562900493177526405605251967026475407109275028142925204391441116746183468958385623189834241494828100577213657099105112715997331630859435898686651822399142317278706323091505166413432846133200621346887522449925407630866291736756930868280096025367279537294319475119032405619891822319192193725402225559828340594283286617404481647046748772829588485580431133319049957159679735611333563004428958117224970726794137190277423408493735191645506327447930750329149090042236988072020386877592384140984166178919631783855580302388799237341568548295632996515606462727117855177366786984158982789681063004272586548835703140739293415150428073800001330429412015596613224433518721757519194871834504831198295592196891814444511840277426131551433783134517372510135389952961596141776462210913794733956961439213707163111408657089590125806210438505010175289378711183355167277166248176247289585727087671074324218831957486618549083112479437411549928812789424239032127718347228799066698352785289192372676773537877866426880918229299435665870925643320282978987865660004391585993636244502630079171158581124236745226775613817079044586166315095914278733021906908478263685471144849678481481609695714237662692298516610571806940528075940435854731095696808064577775377405364203202937934672192957451831532754660983660387404380198720478363412106500036298944165423267319738997196480361124994946163335577478108144134109827398308555073730107998161398349888898099631127952373353375313589506929986624281150908422977875163508626318374269756528552587475936476226791647504027942987300398096831391817417030016993218544166742745683151481476515575038103221478717826975792294571097839808473801376165306855403030884985524895977263638317759451618520914872989361203501320936755174999633896914909078624209463049275638869459882310634387015472907917305458509232604992250447733581341925857978991118967760219010862053830163231020554665031306556710760013724077555344254764170895107369541777104443368968707159196405999961510340866196737793294566481428024598726108157692810398537810504199919350615766452576094012267206525377912012880324191058810680566471125203114424177206922342991345878754019520099840432039954072012879450628083405714877410572394016575840246456450517108108443491907891840099531052408435327218753425525652830709798842902876294604014799104644610979899284545486244095569457754692963132439557838744156943151182475836967424172065452704897419025536468490895260324049735584109844261772622493669001108780357214657821620204374266977728957360271780802228763161234411935822741997250897726601654854705177877629596571218074699461469938613323521807357621170986184523119330602053774517410729586927707296939000186598016851331984290810708625417429599880083293848919530099944220207860483812118869418844921220130682748050904789316196095333340186549686392611127032464158804377933107116166038795130007546079848968738658525967693308488829143621565346780236701026043864091474159867157508391793903065353086059002084437014153650649804417269662879762357088391555488288683636943878430082069603521974659649712406471710179556088827800833205097714875130382570789601307063594664711221261820114019203706576559670320375382670971344804791145682784771152635908456774204382165539063970692028688155869826834848109355388669321063462128671671784132210269290176530673237911427640836425605973202519334253155859824682591575250845720573271688213330224529324712197086803162022855509880109760170054831353245343810234461432780985391976404393216934747784134679840386669873895717591308424025383169744629022793653472703762799547461223522274074666225139775882184780133536300941039585694216850363409760336501240567687453055958215488013300701197056621517678631872452893340769675142455675547422268505185080910012354520707076674602631470759082540402854085945272999187420082444046802768346766889148404994205490791181237093196676764609074467054285392565721816618775490941687954137795158466448635062949035589306377285347553742323258898268297260511648765197329171963574305242844171939804103662390037143371437083283131119319379863147755128408434108690680229861094123297445580342956752548661878906546179128183119900331514593904333429607555678666014806176286247258001478440729799009408479911572225747050044428087615615406274205024819421737490552943039280288769281255768442404685353789747242034251258356109758729198978652739416269023206889229303030787178874427566285790430117261099308536369181803675853744152470857948791148003007340826134008541208192569515279648153657570806058756058738334465121770077113631401669620646581790624558345678899383244499139365063327367798327678223264321667153599903461579585953166551894975963056955739207928945414959247650124792902840622903523300622372504136539437921764879967247906959469239487916812393939429415396719779551871129361258063267201248797346321840433349771230472496800424180527163801981762027241705454134434596189263971460215251814064964849463811087818834811376751153650260220278679134573717968180226494514621053904769573826181772260986170197670604834065517103301218819117294119762527580156087068650699040317579846446040757808427165847176997064471125273238436567171928673139370200497049448046186519333152138556941535525475786779301630870307128262284104247514926664694637865871375146248257053639745968879622693391193252077807080428512873341629072669450099916865026692288643248599666489820239339019631323032074964822916415459853826609495638136926001076691158492095518777284217719005535920305918914069259118761213669675694746796426009369346812930273105391340464486247675977675095442599099322133008376889438802930602303822920816840899475527678658342732252343407430553055834447063233086022855243979360592719117585779772895979050947814654738856021091214934617740431042856004529623647776993470026614920134735712907290723136894166184777308614231831654346463916191903420987809032254593968146732670369569117806736469962649626882325488636604249932623395096910191827208081308042372459874813368597928294634430891145879559660430599622201970777487098904716286733322130183884126278040621417503095613102791142243936724185973998318349738663871761233613300679905547244945855863377145058853962408646651251952308988480139427518661397639660002365701766504345973872068214130032442915077666692171649630231647955423410841342037638252191528911943840237016686627804963015715414177377876086433378116132830588351752052634379768143114327946360862953619696796297497320782769449802767779333888818633747669065862731906757826374737182624026696784503019040418293963096060330252717969343951078797791523894475577317002532539166784162767679241428845898163151443994708314633107019166007382898946230123817386271858214254295588373099241699863058122797014966883147365211542708723043181178844662525323930234789403646718569023174972549617779428075886156331085206430019775039711124586590521512379017922362673954822496490919861024289359650856697849153241973634551568184887898373578079533719318334495144509578249169410316124119438877662486422416939358396547619406352276988961906917910867378946294376793259619085278562951381302153719552222161346915325308647648082839574286756020488712889630919225828226117261055323515010986115736126230991302589586636324525012985111009037677354001949617986202908562058673193295773705435049947280746658690881414544457895445870192275143162841639971901687128922720594962212945428108766038123007168036991309273507090984360855596681213569336019375259369655328640832861476853474772147259660588761934217496737608300871349973432579544067203998079845634612228999072104648540737954787631789715883746488557304126299033644220043989687764757460390068410852426793151654499084115214636442469815129170024460643858433051001106706202734643566017648646877439515412504498405278727498025679704696975801312639065653761348650316628156593403224087008482544396075434151086653046490248798254661968564868079961305073818663717862083715699477667676175001071374088710712192417566376357444910784083084191065245452130140052910393805631298282522330476794426497347401342179845817362399099348839290588796971372675189640027088267739349193253730791787633473271322981585758380910766966314021420636925866702676765713066948172619027298951836198502223360399769837292142803521911492099840751518614834435296200210505863056714495717096253734340495915838942568833923859260309049477667440841163410676921069329105321982401666104664133162995640794559815986982499500924786756313861979866412923580562503425185831066768336203976197267918028088062748062757297439657609336059775002609728469831991411807859595910942090520875508822732082277479912182043345084932298865682672767832916882117676738416557197802583779873213222865585077314931006381686893133435983561231149805065694322041059146460418057427968656006069486440770152926058645161072131449326298982331589075712338578318794066822142928708071153785580806157426573578378788831677566605713580400684494361867950253425045421997425755776926224562341453315153623288290334562704208489902990459039394983743091449488328877766608918565705919981808825453647848616507735500199407995665928398102935802051360655379628396769596839723484837511601495159276291347515787021866341423678299738778102069172005848077292786524086496971547342010718062453355380556340568117073070353323743507538926380742262502009629859201775500632723478174201588933708088753838950889671733574345764837637049130280699002143250587003880494977419912492795941113055998050173267548517177633331297990945391285577713217322654572855875016160308646838601531123654447630812826104613778661170786377959698395996114799999268313969173198712953043047812977113946366390230871178246450157523329660414587691245753713793974981068508326048564484366553180202211624250415793016663674297945975214547040204367103094333824832448296835596156666273231516720920176324192401742686458460529241245348068068932892808312564873727379349082746163823922523213653560572002187351149106996738030493310905122559653986590214000620586985989455592497108118676379174880072541506613800116973217226127514467177147653009015826218743686486578554143799381018529420099569683955366131276385535144650909902310863787399437704773575461170396870951314801370761916306178750132076177891074198988416300521632414845962737538941857742201572838594050519280715250162755155312470165653327292424247956334178891777856791804510181230088908874043530965592229755028584710838964888059848523482288249526425511593602685632699127847901435710785537688343393494087206871776729038856880504285273624721157595399902162161469998548033274588806520063573734039928357603265692751514409141819932798813396303665821891356016457037671164480744579554170815399151380490954117324282469937726518236582608509405390298566650565040182545083709404229817332663089443988616125742416606550928306127899863664588366672946294211300281129340698364386479571786781907195882694959716831276603860800329184428917605475069985689524911355535505733768737969200661614988591440935112580617944956111464300433235914475084109784513288032438735718689940237001461463887266085620232098176466002310697683225659237559453816175151898107784100445796679910655849758773924545999347012527558709213922361837364941402784398124081424919999757912017745081743293200817337122433002278982890496530350014906270680703719340897514787645846854792822927016998284024499354943173944419378958209238815946771274275379473815617111408563464065651770952651086291250580009160939818309785315582048853770414315279024032532613458646809749387144197293304997405552289374303797577411799272260932497647013151767063479194019408319069413806958475997782833603861609497994082436831183194872683963600555489266038726042729229234225693368695300274451770000122230184761108015797054651667882243556669631857044146346831785622793962911910678393670103285604547485071716135121088570577047037248893379489865207213044982034553977990071279382053400033797994880481582086787571439979913538513464805298553530558046389534171047414823089743157534331651219765930967108294556843064192589752711401039611189020860054020284572167794339271232435039688422781670826067644999107740676222080891836077020280754086898790113161858168204619808390629779937461739368174511511880030367510193158819866841051410278060242512441909875108031065770527284933636351554645399817218244019596155829647858945308029718138863672980540528174034654737167750742796615424580611655798315462280564936140847433993619571995474485399384093518301245068395246520966469670117372518515514222223456394909099468029278353493229878271449265665925435910347266294190298511422584418763726884312250510221503200088224238505636916025888932439351933633872597936575217703040366992933910480346678810427542397070623788833378976494400040894128561670993410854935262567037960705389486767301173397599224605369597738567443826422167548727695744018581588446499715819841381410707789131577204834353272469758464901632325279376172322157160867297839308511700748337725943567509994888899724302615230464928901231269752698671696952396410653017515018424882376917163265470591658088302778507136718555493942243957542404941404244354971213797616463373644668671521212324776974362661176770314507271889337980226592231234333164904765257452325319960269909575405654676048477321244037548948012854716161773695605951239499369805716974621547644454325226066137922573043252132380530762831054353773173790989802526123253056876881875115055499814263132210323882972765409197949089879301843676226915567547045445925426156191631800865824869160282254203955625032630539231647816413582219350366113810224584683410886723930016164993883474339579840429225225179851714244640355927799366967198437091607539638851428101212611032234710611680170201487418563075387268107937048815633848888750143867923242259048669269746305396088262116205133251450908584113483644950282560606268198186133064841740337261284505361256070010058649022689876824325711157033209616998511216300650817519361116156782243084737369682463611048438849855323959612151016548171836052917628290539627844689724848625996430294634459409463805104218350043692462955133791601224048231152901630997645465855239203908503820726694600261981044435123178209470735296516195279734780716433245585633783875342931757642469334106911206191389819544093404942585961441984663749281639439178469628956268949194670531648334303926542656017814016038885055470089037291605843879047585352489263153555761640706190662395484186083399242856991893244853047832007545057536016249031643429008350110734999858081371608045803335525669121287198825414374038118202438730700398270474744042145140980283686518543438508197267399222958887393390567458783914817814740648460534256271699403346877643626098768770939224764235507965636862723953208646668597279714421321268249368043175566053575433756216294075586332671709200634075290186205537376864057120932234504628810980101859956925452890695041858941229322848261234768516245827866293235706089927601512029916449320545748614678000311950216701767419706387958099838051437366189088582931384503623973520902816165212330559979068511623450503500629607169193826233072971243666899458330687835096377930418313536237749737835544010321601772427907654542204821921068948767670624764907566361264773476770377185080407704237055160852622137507614358445874139356850030194520300689252996683101947926736444284571256963780210966920702950470138774849869959864469818517718529478510097453343514307022780710853627295782402151041088308100715806468462599511947334384512786527381471362109738362229014797665037893714463976641993092154322020704684950392234604546169657556309999100809606331125585975179413559308898665404470061362384681875002749555208676711832921447315374183422017542325289461215262558197410109040903954251859548740747136652251709833655603029344448620189360217900694670639051646511766004305994898116261222638878795694683031568053129900303404688060814732570020049217277783984380215278416136321426490122905941985836289643580317288515187399145968044621779279016099445048945041398458873861278770809480117004647201248810242261825217675381277913368851421966303393131496880643756028698526832928496855838424572642305008893365086100993571707644211379329873884614973415176607580417156069301001573348666648974416145774093720273092944821768725395110798826541254358103894833746077001393841883392336501936492345222361235398277886671849465465284131143252349352440048143939530304516302662888382824041928297685305004167116270715390491003666565324711271406273088776593805019226316470651610391514734363480087536544683734927625314522527072592680943617306951052239464813994675920520012814340457150524182421274012178571214624020908303142803120940614615524613463612757385918307025651701433953899895525678399261692553651439975829224635350604011284894264070182906728348483238205628895239877657442250612722307382445281730490318051696385776627860582280345249849750737390798014939877724472391210910361908789751110744486748195547938346005516858627574453700504366833019874652443690790911026060089778473276356231461684907935868715942201871271593285047074027922153905375475786493420078626698013230710858446374870310943890295268602900568842545503541954932434338670200833862058490109582260106532314547398095788952333983307797493621158876085156563732779031320168048612324032358195190416917547144964024606291572397757893854149819374284328434781296297841314421249431788062365460772004596892026083381802080072572247875453266444060504541831630075678830053052821496218349151884506947451918373052008040986977203671663182825668262015206918564308808827775895056240953582986770621686013413721234631978168342344702335547573219532661583509381201766448178119900471770058618662794350085603642703706299181166614445938127095641499672728378183848940543142029070246619797400694067908911061745017771046415629245859809424661169056602773340727456657048737995705349003793980993059260219719606235375521027605320711794094490958150625188267203809366331756353640476759636605625562838162341508051761707976692904107261912928380247670861727562412129169734034567742547123297858512182144659466685884115612605352180696788010222295006466742476585661145766397341716818146257406255023060351837938305453608162096409021170624476530790403072871963580010433955952939620561562196385126342195552848897852188933474627803720378966128555877609790852863561129798974270369069593921890381513920526916280694209232292175039569082990006901745924831711738551794756882365025069438814357029263911154774764858597965983430963227597993172314861586107022831544333071626408600721605378689555964663431382849629278178422453768614313438834309114936506620749047344359443450375470342725183666658992933383210551179779260296315869525436603067034356173525587446628802775768003295155296857474929524531361781657666447782737922444736555739554676476758035454423795420601519032739068837514707685696072570183991801521214941737160879291345934676416485743303539690983199301170329317618716513297438158114955259824028922789580122636747743040901391029640648106654626391218930671972557864444617003860025310060492907621046331889353177187258766839952025054766496667256200739948809312934771268490680494256657214052034682726350405784572110710805118619822791537050832578188165610303724227689638664058678849129397576685359413304751760003578297170869721402943281995487330377673221738972340884492915533639082553810799289822238131242629895367215443085023360373714806392787207226494734069266539805197139925834055906306929956009164349903217808404589434273505515428245892435387004018290251700203036411695998132380551295929572903712242120192819573616468252001601399923257808083181609084644647129813331731938760101547348987844177577603826662816795406563268782397371985338896517237266999892744295636471230317606358448555885390319247846816947818271689492439812411712026797663404210973823850411352969193825052822700158455073443762565966370137446167498915093293861984033596854150431607704146294857094021174387013596776088827918530861640475553866697872786125421490350482727872691224176657984922470001139838885449897845344182593157939443278278127488070546005413172418216826935441521335204281309865693152632237318730773050437521711365719128232137102470172390565639242473349106976145306458599152264099554971322695582288026100748831853401960295975223613116694507384734003740051646552385564288634128404131469259828285144335384573931185135350813726683713853836887859869269492009942686853775919511415187803899477283985345985319539785723735866187038856047236418316359235934445125191798649397082657524599241671367357293516214908881793918178241784356807892682699598325007951516133098252432625265220299338204930498203126859641083862265296803610137147433941300726067037175587939621272488181062942158485658908942704450849686270691048394718195732042389991973427770941387712173591881339020570279099220524222568374468505802250929716869017861760953381060629695050118636088758190407559814503566949661021977108606543619682997063404214782578802721804716285232497005169328886079348280448456736655743847965799245879434928901423509737920928002160748425541546510129414993871765913103515045395559656091310732084509246399770662428636044924492665367363774027180796717188568072976410093714827639037746793994955057092756780657757279854450907857770903651768378287572342055122958348281227879788050463709869213728177969948658727339973969347516420987391161835926286930458363929438787191245697310739527488809149151107020394265283690881968563427936270235451642893820017333003966721760584966984708843697965345683569222252711197506897017532274165058714945733705075122455626898309523107873956737138064434173019338411609813038692167345971617423947028348729652450589358458342631940153468653627507051021188480319328504584244309825121063417999918875035759189115989387808786480793241226302045147908424020590124675620109636935827127601603920722642426713738013095014263658746978790502176197741389362174548794635134451833185667017327564740618188025068876966090229629394664001755047773074702261247623208992258558088151065084943254468190016712938103532180788188933154242841717907216089304182432333116998899857182733606520205716212738133270457308030739648945335508840202422317924372886901758811676262593911254785509055677691204290714600382191567433657349115028804409841365844039406538391339243140245525074692310958027542278545564484391355979582336827749925982382825230345094807507843124552941785211181123469925882596978090897574148220258036360547725441830879976619277036412458110166464693122606189056459513801326375364381761009307881351071051307815332196239845665027416749689471313590547159306807791860236944123474283660766739152475745840354955036932864657971153753672315583407248814996807063272168261587801233194633564735351027014325711056697571894285480742956173983364924729232464954291340240016869204514244824339624347441971163008692724224886245281564686626199792204691886890149178700921444444715504163504756384824575639940152102449893403275127794484296568758506295782067612325171198962195583951839832471088867771986635954854956393552948847504975220286083814473821718303561407363200115623420217001261254920931726045689370274364369281978430989724499898384031789206820964678682850049832335619177626698872650061100919834069349275370706018202167612331196598825824306606677730216615435552829215153134613285115231229256146261695165470880258658657240471555279891656397076720624076777395008637675636154950141403732892687343454681804805010872463775016059937824086768895195615799307333037777618354818264871367411231646693912769668416905725536062249924392347750617691346437217066240486682831681319717089058486054439310557428575679980573326167682876903624042842942983308522926115886800506175634908915148646998548057810282347827655526366890963470381075336316729777238772165193309542819276957678969709447058555879802131288051268035956618133350212258003364194185109695066814456085089540364723745706472062536104494710973733430237507735797438192747002326851076900746827495927449487627108654579744016530447225642651904939942527285747306461320457182130366709817445231401916109251581756648020986252610160882519988301514239198633852130597433711995332302385434029989870037909902530317667211102400110142920018617729426483064816364580068925663181833343195769932272232529200774431667610359404087492775220180968031328487407489022224945451506992164727613803995093091005217664937493310127920648040030868475771025648205201013524184405522743652730763285889533109691156122175400487983394858816543547658401812861409063655370875653034096541359643287837314159169066560994240804406328637815836578864065514333683214868010655044666305907639028369430263172135393137890261578401346538734760620785927029602287771213794160594446542580116325982236391766407245182462188419255454372891596631702782187315800676514676440960913727587977289377633124458859310478226451256206705542354086887637601199227763256191184195283496575042423386960240677882069939805810660884730930270152066529873773845344835111580986233747487020138379311133880963233962930055082823899425543902994737199534951410015918252965237559935900251919737831940378335413489880158255057123322498297239868879366206868180375333110052424817985270284042972844678880408384501152965050265318241340233380431305688018896515453462494625903580956725473068305432684471958977279023663227973990780507417828721501610065935361895912669345426175511336323250145785148411897330508696091458674765364459872674903374346571092281817014047331413777478389209428257609362632386975652751678636513180524204810484303415505565602172844667147395160554378122881507811062985471494395445118601995446995476193063269763945708949294552752401099376061722438284481087043451448389264862890546146569511608128103342029615338912182744401040845193331230845849510570892346308797048704379831348202994819099779378380329795377193204671171695038166169833274130984952945873239353976233133552833504344042328697524976414187157780758627639131610431360283682513695575615735828632976215114686241929438733183458051532578040688123506707214740980873521409557828822241880189524443993338223826928496087692750257365563994945524382462106791237539354485574021884971778843430409370707481785528722185038219496002402429264659012454936615591364487443785784512749651926529355491887319314706090108950229041380975371541671769201316338055367556385299352380888219999107125616495402240767197926085402989286400168734221509388294432990494596216484941503310308905636891998569828232357730226969834443556306201719682545662624775958497758172349773191219192915673013641026112794081711273865720948302936763317282278436199778622598531679851780543841829919437414923038358857682294152072587714894768051081182146729259246034824576710831813934698496392063996798356831063547775765662362839855565326105004452757019271722658690304644699428693366294360418038708617812477792958140661529275037770140436031281584972090826261227763650493737460555727337922029647226366393073854961244311852590372624160556500091928261208447338342304815320160142846326355213354909121159445933771335487344753577145374200594072993255534817785704281408789239627605410827149926209759867645541101250522006701036099288139874084665018032637008180176231325670198689620016368325184803108297466857157793505190464671518085596365932481740104289139294785401238895859772903840601853103744486495625276171488086602723889977433776710666595323642790285844271254493143395203108434993302744859359142619445480693005697372689458684968430048553780177814376114572164666964153312320060206460780541021842297537642427067384152812046791839134744472840519158590525321152278261307654738470850441816949192241673404625301576347420216637422641291290366972494490322326645182189755133025257810510803002342418172152466277259968253230768696743669403480092157719612838497315668084953811245361470564210436838182243885504843417393715563608825583445751146441027207892022755045861125686108408813359031167431065250344123584390741417470099712833830758997951850301083942622011976615547571893981660288722808691331127662536419045092205264666689560913585927760312481457302925823980131809326925174945783331454201483457139139399367757612928794791983017074497324358437711092212169940106209170848601267975629899038461351577283520190520352915146281474362447977842033121650558602717305083662374483055526056166897712237653133295218778080102136825892449782703392051370145998068417383385028971243977188252051697217584050859961126741854852234346199675860730555779284347204732781994504989896549069419739140351088677231040888427457650184166638858963131283085490564837102804956855369340193717432321375528363896508512982321099888048569334935841559138666884245155803640877159581990011233754372189425063580614769357107574746602059394214217007190115345039985936450524943941091443460000849379336995980282819869516330124653359632329439267362680611745642391183866142768482920592688745960790447758216677616750300490974546749623119265664016824866469255282947339000782162450274609431910757246234263758371240588149682063558959992440937987500610196090702587342322717130759439078978779955861225646578536203450237426752746421619226437830426977597920271763119584250399280387137248783574960528639135894815342682428938347426841652978678679573876804054380391966636741058806096042401769869850825519977043813704184191953897409149123616073073790608312659455739574883128301069506645968417000981197710348387269055129625994646125982827220892660457738687187215479251958654677895687367718497690321569267581652404921802183274643126975269565354279887377448056152725837997777044615768777099862774203764870987857705411809660313854206100003858870531475681244692826224125075097387830166341521308223029788075866022613702916832276670571736736344847381740746450614302936550523867374681851590915315640725272734725285899350770611044831784543451768740823588027897501180306430285538965549950206621181886724774173888573339475658764037075782763832692272526432379276977013527901448349220660265046896664686244322872718632149012974917754311769132647039642516995119031671627401984640979901120420784798691230554462283108700988972155485449655147563245100895292707277478981878332220571859635401607719549339950504428072052002774776611508657788326477002918497904965076116085783506908002035325655616562901290179842675026649415865018804266166978604713367673625576340025924721204030056692561576568525989964463668630827168690039069551719102561250649844421812324674628469953690482221339553167730561881672857186550438547829155252895955323807991550028681919314234604023444465969533536919942286669376225246928477799824435737925422952933148061165590606523790580316862155120425555383035367166176937020772681451045928627192813873771198456821023738219927019077930428882981162498006348419272214589781482533267133246619067075126947951077060434867748505882620591703531654338125259267496547759319563890807962790406417190961096734045006489899641935593085288188961338931843203553458646879910325518021523217300881269098273161084846485354934116915726140298852820462658509280317251583751857078298974627446242825361646639460629027223856394740323221553271662468536295379089884469918598410278971267004271275924947502167590360051789032104602575707671726838156616579421866321835014132626266905611189376644923359730339094050488017375171879918016199014913681626570937284318209402507845532575233802326821043717103184157951394508838416331869370300134482097303203557914959506631916366231032776074185985618672156179378421682652854052604005092495051639907599751610280896242968660644168637799692415131364065133053219431781642960241478646672201799734347585932497614510261657287737797730249350185759376590497145717790313314041429649918861059715026790924737594612176118594289376414480591677015510215688339381687410458271320977767869065730963438689629903576084603398562794199427422885177380290694134949191631696729867444948472174390357227660690226155984125875084631691094918065575286529688840162775529857350646428098556475939212693556710680429983660589623428510354014246687400547792125430321789155954925242904980723883697153798924011094464675149451272041840629006817882620549690885646364366316292060120362206722893830994288454112137962065539720771838802447876546794237773831802446443789071098220040164984175490163045275745433775138083018120111206349899709688028212920633196029617749944425994193528720068104641340069564523887143500696073025174808363017232398891560359274014517804236420203328749477414421601595510098871367122681217706372866434082173997343305051606027813896491972902577480732909071229422636026967839397512451424073532768982939125699631693006756280656667989186582247675795767226333079489151460290624979657349685945783782396566198717505302493409328943775205163985274455195702751624264411654391220881501041222252284484188997318484110811413839609203309308278708487140338755060193322059320474284981111699068811207736255455985676228723950563562257305857123473095264062227303318416045718298157198402958205219151796542077009993977292050647688672766660402293361965324983033575208533050323549456342654827437736220048842467129134262784982132639411670420533658981191444532415048112335650842649885345588967539463200641557864821180990705626871989838142484552262035178058885248901749427502298793008933952062803534014301997311791389813055304190033817224705178673617417954542366323003308482859403723799356106382475635163504875404884275794830860813379888994101110496964790931898079039253250577675259596856183471205801321661212774771532416674594272816367015091645726693568029953015235507632974712115373977840257646911727532878025861489604294494599290417050732786471536071409801186305827121851127551939846851739385654457457080865087408821865982105705133153407574676254615705622692620875379397999913569406521058953329523764422985096752980159411180969014856431318734644811187748504202029458800702217130968384104837763838378856913428021864954012583725153975032058565836190938817532311847415152722503068251858801997478033451474460556383461949094809121900150976166633409887411696400510424272653858891369880826541318043099869366120599216885658240089015700905274646438827388689930315033536373430747880245262990761445246997229728521580053757194005520046734748719791664132767798202389840059987057037846714372092732764259508733109294601433033303291216081871761468950178919415819728234341130932817319698438802345918124791166101036590171644031711210196051845057953927008737271141916194185256381628436946499510144999112361557751938025724358005432487737626516887999258639013918558103575650603965119683696872651806767831040622522922297094117330346562011425428111034432285124892216902618102491327336729040526041091030961726691470333007973631151571587815906788761675121686965764924993973724080582181823024408859016039972733571859393029161260802775954487234923042828315118084418973561376980825784957453153812348042160831645997250330770938021207733791926376420451919036467759140051024042229462740238695383943795313325897197942592346933646470854248814231638480686596794352610408252099033098310554615835493686612788973949387774096286714191568678913625065963350314037944980380982293000752298510161882383980039724772252868956806883594311877998806960019024638554119923480747539678933412978090860760257807763440614431087473945322333013865099228994932852819685404753274565289295124540113032227945483639556482949350238995805656189915309376805902188379887676770983828578884817720017896412881648052510983829316606900786770404203267271638454802895956741249165148391057440202223843475324348810841258804472758791756246522863403571115535465404710494538522953262439701405537680604505305302788168422432575333184534640259751429013415007483203908891340055643014121859949989011615718426443625852726248184100515122862650658127840382712214096429657912191780295439585738425416872240652626636557668785973229992751503002978258585032242460955235726094347724377277854082465344351780927569734722733118938609473259077851038327112292716299057714778494585905584102144648836349709212453838237327656300181006263633203917059941222047105463595930595678750693512483451198207120720991908642049045195802132583697660942300337154661825370453422369248168986199818248557036670111819058364242306458398863207790842037383176664891969777539923312580397933346725219917404614961759274129428091590202391364744203506437309380899850354561795370807146911205336855482161436844324289318035721869413220529501966462002600391265626710553751696399352829113333673666744878390469326186421942044487635046291821659039587036293973713617156359219831742213034974461868584099902861491962058921850580149158047173324283635478375481658536389496270420344187233313847043020615537730554615872912942127773768242925198662600059457660703694552088187830207462430125168278627473552522998884395883718691301093833526535291732776326244807601285893681867902340874032870941937027812595853014381636420590115702356691233109472914332320535314903251897263111800326491331916774542364492547832722708225651873235779088030503628247296841239632117392180590550860074804226077820804275931080946984799529348157979164148780063636038567906050590404638438359176963204389859914183175767137112341848471330888630150970119325766795405111856205093581040378450868087476511412916943224279259868743324918817214626274554291402953988670579072304740424134664640448414564618490139048853088528204026097280316528226994438386518399961622217211040227180831919231419757615606111342744378474991091915267002124569800568523787201707340911598091961175433968184809988876909280772483935651497679800738237228486415858249872095041997317591413406894912733881818750425763392520010759611091067123289371013376753987680069404577993707040814677144067869921282145706978519359769709344610426813775522793854109023861611714086301212915190225031191335394526858347032989883572139789468777262091376406126225078069505325430885646819668934164450692932015305764021804737181169078927036205593699457580669631645910996909600033802040309898658049223335002881687961531713543560560533357142710462794222457819326744764366269023014246868801951121763128053058151331278947381077208854529218618713708882159666836446209870146978064134462368208246881675494350969507897337561895334737091956103488627542959867223613610928328762593269378394783123067309327039764410987711610326634746702515013484997081561880945122924612548432847884636150689176361978284314030112375239545459079215664362880962125160448812568930195560941622472204952575830559256481251526541267049108131611279421152493960922475103080841492860619831192311076772245029656917735703865192567062332392825146483366016198196069497484201717352815964729216896162853075721592118028129579760003530585776222112776541326411038713694677705086451114611665035006711422427582597555486515134406815429101100632986567833225522439422806149521658898226071805830297638889202674968056865338145753226359819977337279634012101992662787996344102123378931517792180178319145437065298505953297446421203457974491282452284857847266169389412583511284172844564301311300137735430217212188220564495104447567187102907661699004254961118674582660351225565131039942250985060687760733772008687414992737605619217011397760001137351029025591783670773082312280423862609321664345381830700523668535209117873015728667822782872419291256847626999592250485659788962741071451488586687152548296427896778872086352721894426334870788679712075166061424837273073473374122909076023654337666639716240267777801134356966472480441300544225560385313784682693191175152438032395350658606205273534042621703918612600652757403690263544734681715397849116571328034143679626484670229093386395937201384436262675730456617800917253339985439998854396656312465333120701596803430005247875002162089432114438233210380869381032984237974604635119119444487671541318643679099807255605477006268619501110599344560414139861682071360571699531228875180620229670272129963385502156621045305290280770120899643008959025179214364741674610664830210742441239161958969332053733965002307941767162396155547628238675812888198480513612498492858245768099568938353910808842701917340346794051601865498920115137759349106370438256660786512975100864447081871556511082007748680142477248128960643956922277670335766014336491139768192016965927307998510593489964876670963257864289639012453234001634949702115913750485377536458861888824258328955315338160503082916554151937510899949425366028841226207167179985867877346422851147736993107855145879176470598593243201614930864196926209714422414249090337166084964069187663424159465427344650440938102615614695829217328896365284913486646374531832031405939035184473139364868096300094337997437535069738538194482423572252006396004786356059158538343916858727130886093300914320715410793160412574026694317352598827697720046485147898733739053719130659226019839235554444889648800607840501447094903566909890195806845009247438692669729388777902596613394789470903677239636434112347829827191838817871441513326602229611544191950030863969030153725930655469090795947170491226622711403191311562250977810505984279691955157406983622031835892918628561487461681092610015746298770614202860421539144551549992731076240813796717353560752966156764711309673067921523399877504699580129329286028328813748419342637395762003632759819203679568943036545194032179718095367854051855062822483178311179572392777544725410380169534860947205979967195357699005544587537762875781832987863352912038659290261490804678493424302067932375617078014874660109333953913309254252516867969872624859520087935058633558800449395042664850746639508260614759597071358937837733400445791248406561943706673026218619143688053361242869054771415220969204547471101645067538306258989829759491023824696677763755326350994801099802958877286981838071207343407122860010229172292364132702627639464996402371835623338887860454322453919506759035942252032915658472699237163859091107663523461537608551216303876734312152251902391157276112489001211076290855474139340967802319997774235471897651598336517191257314870560688801798907013177706946956061817492663568029213150608907457601190677414528413615964329537919862091252528520897073632899646839287756751371948019618074812249660313447207816437515227762884454354939196777547806430170711456811725195312079896150366270905171055254629243273089643811304154288727262198476190671704540658707733007814905569934338899318556485397045576503333918536289689115393812774522230652888129311605376251527320265441181745086790905371702000688559863569712125470057209467497864364641674181489764143851874036842883318280167609745184393751555263579132584759143501560065432484172349460226571816690850294241643278314605269776346725014068880949339646373700115379070006745427105564910553795434544608478803559727983747206306194865126148475330651629802062103596014658034655278101776649340434510046082050526467836842328546257858791791680745954328969461770197957471024738994666151948000224315835133783637193706137097901818090135242675720498807032904123378674218606095950787237774496849644362968091766163175334902584868356767850898001326320332132201403821091028949704606825007117243408103217577321205172104929169543316105641741178802536564980065085976706927170729488753793127931783535240516526064395319831150207734572502489714491211916154696997214475301582680403915636395730856994334579406243150612343610985261282782033128355039515828178663282189558193387676934531163391665558289318485144090631348647860834336724970726338993305010603433518534746758141262538678325938840848727559464042868950029699150151245049363798702494103875377674052029896940432073683611963947462725605565877064729326699756088325011537246900112886395814916235045292767511490665042754204171561966268059211077768224509116371238752012370293468681936302106196228228299305302976843870427361280441624661524347355203674607991853261391500649146963356505480850721331897378634381231455470962417670253332018767178937829987839775420899119689283907089428870352061645323020730786812749104865936327023210770290858193428872270828190171473252463302017117386960230433319920835627472347264340044712006437103694521352687931542816927186358473291889656321385604886769354321354427874462478252904154480948398400914680733301223607674817698218616254715262985898464071945058167768873108908498061887390580267614991794182451054578307653967628019381880778655001950049154444449192134964848530744955218781626364194144997089841019148038477232690902601845308094001468907267189324840251177446876175325165500713352428407449979864546468769148138633992204668443724488161784843184641262373963847152927327030133558957035156104202646499259903432809290774386416406422494858107895587343269013870265168989002136461314730715990638607768197001707100966393813497400067614476987202852163114524819261704990089453112401166589237562677192530249877236528836012749826850922256972164868160208257721559050176051571649048674974848716048157702767029149051123920020906671501698555706126859717211801865151875230509247727319983721144536413760324057365408546503743736235890670167341945928756982620324597093320901421394903087910157237739906145540055212737843263090245078628620546631893570886789441164564410525811254201628360717690415652883151039220241940791672177888595476942901138003559680294584602463107666260664590105525733608678873189031971468116641203461655210431640639772616251641193799621909102279119510406332593536104002790373770840109329953285319703799895929734698826352805670088288259792631264246907833337276929182196443849401123218455334414700100642140261051958061243598984812781336028433888300820249283469714340448472932227002992240264904377418114991906234470428534247429734108907653942699266477102412717783997403893087179171261212934173123086981588548503741516453669024823689281075300784693266506054112830813655363232485993753336699676433652953635225811262269168201161558194138711853064567273722828691562730576460968787603389092819354402645199642960863291942700957463771483801508593870706365217876097480419775870802700225389527656840717378427124615213686084360014909502947102312521023690548047161205863757824783684531303231875039362023582772120522932067888975733233395737521797895137434662972069796682375882022815473476762168186242349172726112148411578616576238483207276399504986038836937967633157125431787267343657920197859779292815991752586590306889149032944875618911572680736954233375861008911879979639533439465759401402216156295184654384678625132069006055348691828749655711425060455441075621312519043820388015423310601123562595024545394469646581475648153468365269097239174512398331244562658116169514394386834678615280170127242608941043757414243796081494501083234757885101859914369888248447474986062562704878239440694629321235183000912312905501119398729064072055797553952574453113637235383122653046382454327316357780271864201413316351760118313881970722046938127474145980586560706337917009908611024547431864974413067886401540711620963199566773376773068953704748622744048172542544046303964711901313391923685709845015675115358706458988236583946298331342787360731872701376194162596393636692909442997538892258852485013147894297200023705868192192879459561901624349144500995253027791513219536157997591064697799116695673376011668747366403544116365990607092621191655064142247755147999598309363139290920954152135778151023428648388708037599253294849662796532462517862185027477398778123760232485999262064773648560567100224077593592592898468754475695060936953486775635051243705294297794975326093349611677165913998749456861436479066750025732043873371892490020986788207517978770008433632672562945951148209485202673543518938819984196268075470871254934499918567916867290658695120688398466929516422348861358929580186902120490157808867254092857879810742654944944910860904903928764565594211873669190812493412961708114734688369956732690238851669936613034390904634394602286953601051473191266547669413867000927893415240384529357538867312349720013253292075136755299026023794783147078991009564104229875632228645974529062880295680700934588900641194259149126120585896121288076297292472990173520941306488866883229299974875299484399757709386500229031584109916329787095786129855529815505017310465585302031594908591026829497293305858433914951930820743645435157296227193471252293739093330703146501345880385285692908358224241765028310958141923985177352432845708607587004056119908395956205135661958217267681725694922002683753052163810263993944709215025441451231246737181508815875506918152873021394046260855882460149646764748225732088034550349362467759016042755879079486374906278318172801395509312553725402714321938430427190976833840111488630515989024480522378758023344791888255312552971726862766119666377705946877965291417605192735301594286959192920672920421490168153049165537226631021791310922733335214006149666934488346932792989577538914571209350968015865827454880472765173087705592256685799575287399004115372821252788288308283401961185240235572448163368142759370945704051413685525308175785266426003366465339729256892329753262169673377338770300943637175646215635741066626367532550279272399293316248202421584001625553399668605643510595890475368853174496951695533443110658868336992703712310232366991194088970082748495888899320656448959902433274102430563681761799078915659156200714090254859110362993046944295240258522318528003110191093366574755824061505348284248623041764499649693239877138187200412721945614900719827676950189474330468791344313413769400571086392925158906628981741764356828324498753061857421540306452092195361818219559592748353481507509049754294216972081719957970896313123625649257652915111057641098957257397567120439793747422476267065013126559249768173281140243253946287643814009427855113867726181653484818128392947731467106659043685444994571026172873119925692863530127784186967191246954331422033133987185580131561973320100813326642254315741674124092388655752286303857121217629555890737629127737696756787816463724590488125862916094175654517407902120734642931650855840321539162567909611711665216313951253646880992700679778783255246809717005545522163270910756574424892083090430286828254941996664156255536192334475901898183312390680947124387798655274067990794510162846792865583451472939691906512557368533550342728753276268364527386302323584667548155679662660396397999133231725580615735983495732777918988090074852980870691528556843065140975070372199939941523113804168203536385195129699497716253967748933137893601132248573348193279917017237578071283248905602127062002197778311738833696114863092309687688663246332921669438295326933927409750196140034506600041565287185527414037063018018152308286836233396589497827660056174033459854570970300035674070454345017872024860962281060401496416761937458208610363676791605583190804364091107746140161006516498105960441973680344939098208750952917515141028930468021426402866672476802740794636648456964423523455775009978059800086511329610991901031143322495841460242523352496268466274206707587031146200396207607071196281261857994165368837858900581207783468959379193816744582457897743829930585374630837422154281751789534709218846578102878393151621258175667008000852992007241986910979288038155826920389492695587626356501650656361323376813475644385776754619338705559858419028472855292603604766022026757676159389215454338175365057233332530123730766849470551609333179530879107064374602186403526481237708230678230012100882566471264301354872336066536408642618978823177194297548199687916995809012628133896706014158915073487077089220443472731289472868997658899517275318021674168081499092476886720107388353352933690867737067222680226585729720530981002340010112707085246495636347716525325051242217799193280276225480447687782463352263150139628052381736366722495369254302987269801333958027701348956490449488043038650935784017223052563786113701520281418278333045973878208676519865749545807094077308554516039054513374921713739681805360988647291558595508762879823141350148465767854089523413672893795531706099695657492781303111817248330980169557072934574936960027813050428522461295457155304268277898895882007995344013876436567409030975176764305611262589941945875162946993422150057596410182951430564744864983864554320851546290497208835785644093770114777985513475422888863595398407228722942342325804413907296237247424283629829897948698654553860779684682752993887776155515759367026755711310355428059432061158806666054178784461460170966959411521979024444240129021529778773193942150197462871161394911789860697464117825137945750923080382844786378089634557533674790873612884670112616695583274467627920606916405423538344220439824944909393726441249660297773909350221154076485792104876455545214553082930056458483379387110145660876818745513053755828070558570192147022353191999372098465107345069208034110234556725657810721505663674599853550092445152379716737801532284398481375747242403750059375915679852258432022536363405577872126211704385218708589928709584801190778282984007774905245397143476133340895933625458973400783706554514281468316158848123628732336664465504142177905356862793479299613020706821617348135436653203951992054184261502612684546520599718147327624137589209688930148276348042682169983647429904066142741598185293421910959204712908821057510193007182715494855555954447775848154576781685478845301875715138218864917659369824046220719674643911680464997078625038417452219486884632483913629160751631887227532911244205156011871348435378065403409510351199618783917289273932962189125765877778480241523969574530264291227512746780770541277109260619187504431785964929889717852152445203874842650929376858528521699375692562517224779923284474377984145144096702157360710753116421605445837585460244014893566600208362248462905407569933276815953026556294150696588226904406213078011491076741406388685981380674125573266350527071476397438597968314003900613988248820151122873800741089428475577784217933073764950844479687531542935915884606944536645894886998789105528358247452921101398352568441285855311486366861223946907737021077290894186020777348106065871780855399068531211574022526852858499398864491388100863086502843120580730746533127511472471256331407027017740128471665339441693560226268573382325886572371199753043081998288264160420504762185109342867135967410145713730113981602242655724502197489321988514354352102095421352860876575042170412833688951789302737185453430361942483029063268152033520680611712651393108497546094838232086410543728074037939669572642320002781837548565407767644707243703218583146388964718123492826746816793881359907357227644566725631069883776509902886161360837841624030474673405293198919679231889330625999918835942450120661865659614751499037117542334126671007350181472770338975665788050523665611687634002053198455989238359199592592873157418505183466422941684748720378911196794020596185500842942967907214453206433621068278481564129294036647480453699052689544406919510014153653301283295634531900567591860559801904769600542948226603556389796662639292755792187290213957694787834784634178001179013172417607258983668944864588848529314542591556967762567147628546623391250294142537668297786157525560965924782545122423664610874654973431400029530732566896276561377569149881745676514367105477045183120201268158298187282828182674692632763387143721551574725752116262303008691918867465389094030548987318540386718366483564844311670506159738740182665052663675835876024968694046881777889238768620859158536337821036328522532522009254812337787493665221741583237824019977666332369231082786613681713965440294055317692212114775077021666135844989034299452256570013611904217621807821606879604233894607419633228807062845671745231054193332449192785093324524399191853055903340702617564545928389616614221700320130696546091280482426244649012281489142439996253514361879742852843774437584038972172330399017095720774230105545755003793128778023193868589366354679322236023622115573900889662423943395439137223438008985874576410618668795267903513957545960623781060316984723108016445586931184229721776257171051026170571369800410175564369975020364257137947065360794024471053770751467072718139868975974436785501933419462767370115935211436683135108550282258810452876683510912781831807685929851358555808298295634007589010696527681552236825113152007930645143912592499725397636905070452375051922210375177188567111439298358711712817295892338175600403016146839070007198059248111501042296563507990964918662215298642924712137420814593548829883076255074237734691169189322440220091547185184331890582095353308800645686075101323098262231330714316432305979993792241741153087581220425266636541113384989050734799427348085224465128625565100427077416641682304989148668547161125079508614216275611714807166519321695590421154738446614715713654059683850696301094703702577069415058399934082557253702249126860412011415938915768344352924772351362630558481011013113337147041551086838846830264044013988701892403284500816305681403669501547725742056658705032877575442848434264862210521090066070854275465457764222349760183664771208319319677043882023061001875183545797644026814792222474100374660605963321074928107877997353045620893507598494427408766494112618334758533090718446839898402137898402612343360241618475813437462787989067634600909604769068509274807118240420225559222262233914124448421744521869128954772395648038029654331598609736635510203231971464944420173028201294661463641549892752819601897823652525269864115323176839337054026334373491218156867263016040048893193710855428507678011798274805311881672145041338778944984934346519833427984727129878756985761162552392192872495343180656496670866952174284724139186245901065744725004666951138824877926786680760564842840703556975153903587692613671728717273628045164929629672563027966512160060417564223902036405702806748909423056077923285694261141221114326428329086085536943768357198629954764324262032147854141121974943740675532379085934965294009008531342594426476088910984670960213418675281608106412325660923822769602459364935583388366971625334985965875962944052767742689482523526464488904641890727524422392369891006262402561930683739350161755543299238023130675453141161523159356638513869829428933798571712876457875190077163281592070709728890014259791503145702369478613544737044837577112928240317568184329897347115798386796501849469185951809678863467346791315970427895443835167464770382192940654702779047198391894651668506968760331322137763634338652052292491494630932008355858912343506175708342501460347450217568666971434612708567701934389843224292417919482998100815342623615407281911848989229103863943804523990238006006367460368359256452738676248363361400155702631544094831952195420711281034294391583029255729983486174853391462203527879452328541843558696291884203121428994534957769525084660572254530451594920045924878508782464674245985536006525292695742352774898155339260259061438235446259972462716062293921037947833134242867061638452519869395818419191315098364566567721241318404749857584997609539540009328614701814015913504388954113777518959748334279584377591525791639531935785910134459424410390816887862835819952138222096637854294723767982631164143111383469415206232906199066383113503507872519400721306140008058092246259243350918898105701606035137138310545053995882695811091967970612855387501981550927424484441226877373018466568281048043953453468221591769449927635676785934331235794963026447319832863074372704203151176250166151072006792404779432023210477352226041922084247442180581564714801228041645033972604710736318855565258389832865818614375744967804819368148666031798745354777979600063908816382177616911055885671548047224074665286228355181397359783702087223534618555362151945512616362748744839085552043705349962684582160593353097685833983317859737115910517433401324148976049569735303054443098202030557436403255440797653594206001188970796515830027967121946067452271372784100058651414423420487901857023153013820164827575039707801989590436513152326187351862191811201318276350922988733255676119607158084264620948001676428778273728381187289556138545808924684618874841601535042371745582608250839204322121486615334949581057151949114288111653155323324564169614538734025822345172677326054404674704276729883620889035920304908149627432798250935467527951439398731777604778922016987128398347616481692111930576427445279951550303028069721104111561518432049171774515914433207099556094627720023014776170643169433577177587051688627781807609707234837351625819121477441565552377505843024860132695968148916272329477154961154549629999865404565200310348858481123663119595015230484637515533198274066419469871107283909592914178451206374855938725537834472817697669452507322807318758073193989203281917935098754366624189909096614570291281905072656349403526135365026533507599697864308239665627102892921634013479634771023334385426411020798492090867498186764985047710434308245402797177377391773601044068093238535090924358628276240185869986738005915905589585686917050579407414623489148129631477867209815131720923795391262922175613331811779053819612903309646944107925212014133694843853814631866295220738784656328597110764364572537328860542713139725006200131213849155004594135331164983477287004600929177346855426394233493634861582779138356664222577399794329236994196565453397698266426294684015176753095426172952042133063182280733227565962846527774176402699407482449536943637630221180118277991629510714242189020763524066442251550383358779465247437689857550616114279652045195614040356936434531562483668734336755630122894752384973359127055299994088329472960412560194589306919310123955745070682092201989420777432309283644613551697384586847112316717004570322624964806141778901221828023502926898644006970947385400657234877060968627257307968524903635848149651210239246869976068298537748689162239279572655653736952447705207166418210284978417373506196915797935236644875810793213612072202269320543557898339116964228223191670474679222509861555750319872179121529719568158381662305885550377613876227462365235402452160806666398083935715888594130767521902119410897521231896445689709059299139561888061520878318308208752780706009651917908880560181003630654851160387772564508624553332546798412433021518681917412856943966750410229118477464591569889686664930126786772955017162903995790970088296835934954172548927885070320459478723053655060700536069291220284256621375574125566107146672658210810509952527548120589293285787545098306383023994776622440939352157270410309805580362616279870029279897228499846136148553156698268512341661956802650686336398241940850693787983108524905301447907681224287811034054776987402963869615266317000950892226377327722001310651098495546923479813194821900751968976043516310393213787970372991288231765546670826317251912150958171326453166283438863959800988992366433806875706069630409796142130635970644011779060492089662429914234754862720221804898131829830113543643573124883678915147312412671373798657659276808009114874768257626980600507402089268691357581668041245730000065279908774877776807306229378989673810135095690785556924516512648093300011345742746509681920349125413129983253276497280268789714918956630132160200109334681523324127109731109252071543919282959053415446906679104353929043456815313771776242660208235988527248440154470666794938048203919149524848354283319134985666168900490040346798168937709749071772422404392021710756833697702993309626233363321636496861322222473375269881281713275082669740428382295018835587048354099124729493423183479075775827491952058615874225584679781512504162060735282816212409540251511071248044922893074507495189293400583051115268086190103600878861355783171575614269162913209994251580591909564111755850838354418146228084933095967252047642505012419460292487666311119904855041565298103421069303353673487462744700914699413952357113879339073623892073011993705354174028806885014613334165842682921895423929823408593465907150491372810405239436746566666439290508640620063057139987635725654698222740895613509537235398521568090556690386485551766330835232254317787199465875686655546694473738017944301474899769162580149804225558873517386937883390641804824819121591697406990157956759569546131817333594665477343195888643064106713832975466786530342443160100717445332096167868611597368179214459198628979809375706136088180772253936737802968548501973374777642243604561914684181272860777018972209588112852842125035609240353221637752679855126032107557096927194190158931045630954051404762701795396694171970999591078294249176511383912290344579413594979037986894461442344123272214816518920472412740072957237110124491575726626669104967568940991655107145713604873702003742482500360930328751893422897356066660950684408421468148591894585586086379123475061850297514293601991149025723577639381909191810494347113429171378432809852573191206938422673200059366579778778961204179653398234718848810375253937680140022509687176726978680447892592362597312791539875667704904120161736891378783645405986000360450157661841514052137209006402940682407927674052209005659928876259438265606173730726852172406311617720822632338886245647108347604418945806108557673410080245223417641859092890188093279493077785232488226245230723493972715233846582408482740447354846022709367059965531688488183314087706238254667826538429160618399981563255430692713179628752027236319603550823603846125741675832295299756412384631785817172062374325214526329189237580965850048560586034906672713737344194352959819828982466458549275485712970286119787504959702012645575546993847064374239034506007438641362872884467432308156428009095420474003751052698514472344428982962873684743085363085082800585239713928195748495962710594349874678078089207897682384118796884298664293961523944493206638093010759404152631015337296211177375484018835532543771966575587581771725421833255095318499618498076558518869222243560131797744126498509070904679026102086677906541498100596190154474358251612735217865963012832521995435891021194929706112382533105480207805610988745420719930988754159152250507909821856980481136751593135763241451557670218779398091324757461045681662840042737294404778627542562709455102551855267966468156153662851548999357215266003772442436306166357789425498930538572174567360677234834655434090336822022157407022705132767032686947679248457722488355368215299962820645434663107124730524332837862480726725813287314052578935873488317885149294452371135355569121947884528036725454573708326449714220323645225494926979995721524502428362282373691971266253946843652094708785676869166913891212654981164564470527832979010484532787796666212616595897548949255886965630683123063934022662029143973824741901379550396170085874622188916209120145366201449685156186990868093548866611438306508843583125582999667225011619692444795377319014059919076127438156087691590220481871317846326437327471347247068497629943765892859691738691889817841762452320681709713755523590235463114358576627157653222200966819451630883168001161647164701210154339559600198866994932850279469317107890241911849106217601151169117302990979232640818755326347649435229645675628503320645300751469975349044981270608748440693837118012617599138965242446503380812371063786410315718108230412331128719604485039193752024226078215584872815150410391041305899680625091652312650445148181816443576708557800083223374940965380570037723606015109435987854873366523166031546416542804559239586729337890216529564949474937592662206279934911744314506808811667903903825590290627885401886735307745926387549165615589504037962283777626931815467479572543469450850916042608967110819949836436887249700779950258265145349272707173901138950669597847348135606960877376643485684074877208846790769016972910464623089895173646197594349110555323944419563445415700215816189066725832682498323271782862721266462642081528793723294473217994207512191731138509715180749847575247118290820943551116542217904740757178469184546056679946298979843362211937042170087078698151448006469027308179686606936461208994896893296987546689956611221697312059563720733185650851369517195091646481027996702615528705732740294261990645774257207643407784474683339167490503187783020439204921908524926145123376506342220403544004751097783372130056786460591150191371972802175371676267751236535703266351739140552050968467608708826500676470688639326155836655298081000337385962857280306371836361625911256505924276726847174302237837595581994368707701613699299710895463891971891151306415308928716871173467020953207047181116813337102619977743436992709607953297020165744697967447519944951541864993867823074061449602324817299577656425462942797869886401107839696969376645285202657356533248609028756021209586901599524289657829901739802548368467579851812879917733405352278333223705126058986770695075324086852753993282779002722327382365590659954940067938713407985561841893087977516108119705705770137992416319599702282779451651362436333564276364353602549736969271611664615310404259819725386035002959567274405109101681339080998556675299799357833872935836165242586994176113365453377876051375889600095216612622596358053701327967249918620440749856107642218892251597271896076758679046352124562549222677448500009995856610983814596988813936647826806736154948396217871047598779279104229163534507474374336128392123853337523718006945453710136605363956392085740887002161844736364209541008132883453019163125356528693424733910137753775643070818109070898517946263737606539927051549787733902861957946252264302176581570286645895937254939596715512733543256156338938948114945702819190518417715219572797504016393017145081066425984227392020732119675765047514404363972220582540738819882590078027776766041559589796910239435070374015926793730313119688848784451133666550594404891343134271458059189852196142124699146810486091707394892748976584998677842195687412035386703430484205843117342873992082041106025611716380222121669000777485472960161175501412282853375716200361123166956583399015915202254847756975568110258462019178952528590205100050832680708751807145691571421156001918997139791991267387187534847552103860145478966897354691377023656535996198724138861221832343070713301624362078737399195903760650359237957918286411515902692676854917209175379236696340584621734186768639095868297888060062857748860075582030383993309272893597017279693316719772029831841789928132133519278513555431916200763331779507378681712644843356544372673991086736625264076508607551744131158367017122511708422582623830291191638643564555081006560925584191660008278782441880223615949918922637718549270182518053381542006377207355291231063759829804998587106418104776503030842265176075243986429562328717434104169026152786265975816489596792169316655533257752828241946856200429525584445760885001523724013973780394773149958436716202982688117602585262973285991749472409568212340485445983267552441328320070723086209444747880533875470321633996338956559808467332554650082239316516250047756254045694682029670430607597998912398976493783398595746799758877108062883223928420413882766048558959868563341971638582092639712429514795857475508500915608071660913815771510611292926355207396194266268408958368295068799460422416620171552580342878667590486881209566994001142230987692338269797809967251233284240529403732576466925856292918137043138866933917835879721319688354247784494299190095142495382629519088125950226438126014167836415985758930923506335251185936266839853452131037046015545652317455455871581059255188321093480308718402355982952737462533924078064801909029544724932945939180301006689763594841070021004302945241903414023919267177023006072912774983406645392428322523325738482782539674654979496498369549042229711946178204334305089902651255152599459427186901482400223105196583545471031429858423304746364237536965957311295239092009202766859348502798642091511175689157600135630433440526363096434421348207575199269192142303517965312660944828917691768024795609809347745681916682681438612266270603493764247042577237316251725136606035056281550841146374120957477901849224074236245705792265599246434459791631427713312177441995372265116620305376504673141226504850988939634108227649845235336723365349369301330876348495261012622180583906147441489336859714030847900907911938676164891725747647621244930257679315502409237056977419363099837045919819605895882616399064057526773659244300776739478267968040558773578052831723618699101694945693219289731531607819295100547698501143538052759301398984875038243185352171164555355933862613238574371124600145621411515328296799678859304049177261791808653767714208933644355411123391725510087350664389399085892047045920346056264154410671769738496391186182548327359482641517404069656150085373602210119217742965665616483942180300921046668873329642191888203299902648527653168751735773288207765443129900744234666869901861990994741678049266630205955729141555841163119861596433084513815713280080681530161907833355754042650671905238075113809266102166153810242793000197579220137426366859830123301962663387433222000348042293200771440651091959945704729672779082718889740771938196239195323424495668906327130915322480484519777854642625377934076879235677056595259990311556878523281010643295209557155043797726907192212621461527243701132833055499599369851033682614485477396035559577704915154942338209208134576233541333456245372589929353011226007641920522014719470182145694626629384795759703199889850148609660610959135615213617769394761891787204051460194665919487653940825694822989315729655044096465125116086903582106020125330516889865277367042639289692588165001319335386951121331909843578268476217091436113935680965038862822455778410241312709617127751864559518796330062844963492423534866092857429623423475135601251527269022831541273571749258793823718393615101576753103912891281806023229552234311620110974250751742911909934026676869401608220017179590726240640490006750787354965729159116792743040270318270630144907857956562498320833985879464312814956307030451730439440984791274926621514774849416474733612838360529594708799744527932342194055264153105191704792501775205820718691934347748890511262191670214714680553734766014399915589822587577470810595776231439189132147088215967766097591498434568768250595851864795956215179376938009619531967127368184605671937176916024243641936184618711060672787054302993942027152247360011541838243064704532201859782166483723202264951849715387707559719287551890699021845584701570158612156961577491135607813515378418302586330244095917671524790170558444235954995253338933207979505881072552879169212908918022568424378429642399164241389814935589433123795742303207245465390618261428087032096362916393324781414782954858945490988208403351188736555245913012016076251999862369165339879323502095529819767933193654703322627116986046308504005917859919158044581332631480671135324102857831138118911490469328144015817320668682380678783168549809380632273468282573122251007651511257777794936277774174995547252790933186500837355515868848979844179489564491912892706090992432436727277004292243231975128771916055665253929376158427232402086307910922561143232082543100988999031281565423173692551051233470741326015314654585175762250395428050372793277347807418640308560116319942168616445044920034537184273911078199774476115667012598029180063490578755183257891370303400487160120317699112169031412762370710364096535604162285961245686527149794982003902368033732334892969161084805859653284256615466176173100328401490635670306508390032752037518433464601630286308800632114966067270771018366671105042558782507403277938471955888396398743962162500563581290918350192064330852323579331962327670613766083598320571689694094704842276012557114987634837294691768564972850298639740147627563245674750373640090526124801438278855647850046150906595391576617736074416575538053531695302180674914467962028941288681854649496795232430649934074882056032797668236440804621516212569433200896003573323925831490325441819537053870649847438014704821358896723062839565721306538766985364241574179231367838364491573697599341272337528241255358656311400843203180840532209520907149437321835559775600009730784357033843822943956670328545256494954352589707883937611522543238091975751342113245138778301780563232146498387284498636497543230034125465830855260653568703433671604933947239481705251322792090968434190391701478687977887352795829763524357971989506255574758564417709157623866980884955087606391953682445626997790559692234463279555200503264494906613663679843392545120568480245218921941570836008383848764456016057438530200568378429959766233897570057785059534308792250991113142949611211695880647413710396245695911316853579016761258500616980751508585354637916434616549287871712595913385277970911867241774304276728541051706676808567065397254076514468233363714290545706415277757133589734769029884421524497991304558082597092847260594663039681123248983786178662075617689818425225206208167482738892123490817173271736689136874090671122425533903348718313274709728251290365648276523140836822432884194678790867054680691306314843880330849880643806365100203925917169213633777809677070898598848973651277466548552082794751826825015116835035167749280673829299626213354823276743454135713026135431743984322895563295867379500766240483317710759717271401844328020844800264520776035171115557003804419394913604772367181348755321819688042643467441769699629550882588638468620425689057794488252341149265453818970530136645079313692236885445618361508206279381965445194479161556772503124499283335513912579064768545989518968110261718859704511721664502907296983792675082776051404079175455999666864041063018849006448529768075690710369973290339749057480716318786784585020806525571923272255666786111351429692070932387601626277094731017772638194211464631023905286424681586531182648802166078634937232995219834772746878112217877709782489908248314411895829122856167108235233732996939076595705708309374649717316874759924446161779149673132182020212002914205476178552532596606429501612744012080520929616986087438286613740579692792477126883870851344413235550033221404972872559201650414321464141998931987769658371912294522781032681056517494872692980647459302204395957502384095602913754302245350265692938081457516178662555271798926915643437953342465722213809957832340134990932886229785916675374920069087143837127721125400043656207991954567967207120844161603772733066648104207047990903167913248199088947073427329794056929545366510499558990050237658168114261412430454978067289101496019324433189039055556249314118990807479281926800814152689282812745572577663933422853042358749875596589779980003288767083610162122023269169292426382440215063783904427595845105921677756925378861641034249025570566720374376211933031785685803981813909239258362738040339320004219737813008321504402308849504776478103666622016564576533781445628074071882710112661434534869498287275952846983654590740984515106377645796151617326816248718544909209705044440013750960929857514779528017930087712983263182450927544740168300173076184491262103163095790850872239740141520454576710517932922169162717686623864030232917933133515425191347749417025031994209369266001236475565902060965382148981984126595318361915038272046945098375131432231983801031122628515097114306180459843451844792121520317941812549156892666451026723169178405168682432180185385438102064402096796283385960867391450481293286233474530194919852920512650565704308579137722300149021069335390830075660518677637162136128267630993710735414124974519156921801758624607855813465289211085167273853836243228208674842399144074691226549665087718850737817630282646073303586953246237235739242593285888552397378653293285959873003037191509092376048606567732283627570484485770327972716767803253905867982225551268344357428077737472054244190569976817084402610422133611503085002000492271071297448011857153259021592158193255604374154975646832193591469962788474705807701042395443162986211279954277398120540601067597113901122653919521959912042939538349672911857402303991076002218344251184296643222309934741408877120705199659807352356043809427845232357271681836592645232914084286777291349114924418404009907880367312292929634684478509367681079823599337205298105461569118180887961801837437165910120867796452303553016985953636788561338092003486799528118124722447972159950254542742970636934583272735149352484794158276440451633568562186500052613784516745852816334387334123978978533005356375739213107616718120811849481120338638898360290489643444754830794351899340997154541193943209242258025509630093998989296116586623940368741709277103318262009457704779314808183888812804439714863800865577636805661236296573389308416351459898503189761389306518179495981232218630571496195245882087946004785350666598563016289469545472257832921239518237362693462114314082593527596977580504136165433244981175439124627209170052306758855469313427007266977607270705940222565296324449907810089943946710300883583541634828393312712699895147064166578735848560598537629556803234201466876836071099075328433016736152149272489794052057820687180784562622045937060506590915630592588300005117526290303442564961956666640150695063174564286466850849324443365708037037722196250220143404708644820705022511006691205471547119681570429538465335406668916581184886237140137628766479448142777863299765458336861793903963349619255485263412963261257069703785886869109805409934457632448520318189457439574266185280768865362568789729221831603224885303438995852197650045962120138996175962643024955960640689255873271884692703011069537460484791949171552731228199703298751093158604748497171882828146097774630372268474578047957361354858701244026626915343377161045635384250974401722021199419657006065387494679672033325177001662590766599607874247225826073308531173041575897543343582266157337909632161578970332338882154536354733171860793760756491182744126321788394274681115804517017462874733217496875667762098705888818452238532997900451721483458148039690625979769177239155539612754240331718353794686868830692328890370503758536121947676696359217668956527957529120345545253191737949521747471042007533973299069937794712678559464709539413349004362606627697175346532787019916330258004858512286381414763029926193835774773791126096019261520451904937819629805744915465177284318829982906689771061114341110021524902450759763333444630012677679638047786581220656189513166872854692658719905304798241542691291347562342979914905167249893535839291942070816303266117842767252208467863690321949793793791869539128980381332116108743423129378322760325265247330851553939726540877115035498419126280277356630779205745154874915080302478956387853445815068497683805572328096031805074528553260072071731843298279699304641926908036524834511394986907791139998010100825430762216791322164289113154213623593148264773123889545359431668946509858587525165730317715464311705451204306987982891065511517973240682923538975036476573093540858679383625076625547505430041299248194551053336523359536254049525781260093182219785554568562105996603083823194389243212122714289291564010322325875606982594512289097591072701071829308241372842583089573589054677239457078395645117901337377849775963856021227442782712561852402373648176654331718802631576081230475829065503897414808570047058291850017112172324405819216075272226811701613373301417639414762182659052922317252574549293078766870416150239265389771078396968703594623404949037236034427583832080460548538374958076726194600958791495244326195961688042465365042826109918502282942977164888840832647712238434791094072925787232667186001899683531747213704156117556623529265268649375260343732683844370198692274906625475608441898146459480295523366244365373667167480520649985502627378695060850213478912872871110546002041297561549428933934067987987129061273669693937632503273106290325709189946444169057616391728930696230404484255646298437079075259339261243494642511367401816886822123343585379975896588785816880861268001849232397871613379558728474180920302790271230063550259316419893703737803872589156211221800245436984563618601795438286164419580129747915375374125004433202698630862140604884036220988465954775424517948194155859876336589174068179895342920232509006308896351614921013827276940755647994344140947241608949865032527363630257146124399635125908929371233082534297786196899746623484564737480248661214137791651920009156441775276199156420783901568277591810077804848109662055102721135317678477952254140059634827872492586533314956082433966346841564953476282327828493710323056473665828879223001006514143815346307417646262883947738644512779567590050795191679383676864858520567724330569986905347340942941096611971297351502880698481646832259702508434948959067707263019248441357909141169608497198439471118640930006026266338830637617770951606621824962031216788712181343783016954229822964548300776488829388589094420685423525909616225846107573855608686480303755559051943275876086961067074735817401155369418716206177573318920158199839768135143153092207745606186472362492860729873599399141160617061947127514591497568527757067875422205021910983763603829659837768152915571216742581546575001086276944489749944383358651597571413215615247093782216510128409059188954873667365148787006624556410757174055891775881614694025200730533942105249680540022394892880136960195939314822475595744962208832939854023122937047893312285428888205048183543251164359595893177005439816331667405832393170513191569506852139632803418490044505902590360917198998938776599554447167622104917049758574170719097158995977533459649555358195625075893244750938183513887621861091358554905499412340797154673643253225890471875817479577910946366047964379283150639157495114557092623974524421621390371467831912610668541082390802039982291903676558943107574167703120802617652103251148089008981186271549645373698826724979907377903776766107645956122341086752031517946888032916558615733193830442670794462405389758045005785623716684398765628177508835897732615783886563594186079943848677608450073553785152192259740277979005063298674155577345672235364692966281793849760418332937731144122344194113509541647827980429727302323547001871016830530070824705943740814556267732838129750198668265487821895338863872575303539777990809800930251144100451959395051562291319706601539248836689489556764271063958076565719699592937973712405093800525971959413771421448315350724248311848835783825409245964457411083107619138028653931522174026216961478464757991507454373617779739209783229229199967729991505681473223169525868716406252597322539972531127844197260369575341902883737290997880144792874912254288685602597023695373384996631699108155984039420280200495812760805989248332250139616795988568390133210697863240165555974373469883023906982306654980201317905860412283044889902382280164228752355900536209775397027237715500219674664147866067402857443799336415684335693019868257892343356608577937612709772283626000135061678987625459593102937651067600019071089676172105960019228594360353900512077085301907038243953756282269313401419473965591506776037975637542395555748124052909394192610152323138876273116609467824426128761885122946517957142806455081855469583757662138298370502102826360761962750685042972602035549276786576328003328550476451211471354664944420742481579955006000067376576366432420247057227615286618835226140632583982143888494813878554566553969668162327029940644610177706047589066496751327135463016557149491965714274750058580361836803182875843860397746568372419646585350865532637261544487360724160889549019391383439184581569335410067390512984941771002080287483121600073659761676654858406301562697885453739995400115497315078199982050958423042822166794254470823251096306604315741652747586792352310229741140586345537544660844343304700248824796271100348149006003894292370384402727710182010315408127476318145668899416255286061276499311202537822395502034802496199020407366724472598498294415204832644074829163818538622697098285905413572309514220639916649124990962772283358030302750763187778779173774836634522597992241260676774477362343551289466775318979161275957297738989314865875066003102587541333200674739048657688742245083437741906651192370975104592261584753827217146755336570948656208128505639576091987134908734179786802669258504894970719305553816157526925789103445540056482748408719298833817627349309395933609555341165751281654481028609687007498924470073006974548932557655703941943424726580869930991647869200987968849762408221644097654692727769928497275916564469494200752487413918330832229102824321731220414030553086149486006371734608359026424170329218625816790710947137233148065476631249351080978497738451235204697157741752171616150171431135382741430436120637372944797689180409144092305028909956778510155866751582937389161360399132101621691504567691009812237352025190738979645070726627686919622316198475533981432041815649156499051175580355737385465807784412548241054594539498957979743627886914016561270937910893031882808925199075178928135298374768227389974126393205236803388849108305177556160681426691124828855437094113119011019429662052985186472576230947881410284842348788213329410337932594059791040547460855151922135412366232403363876583258810223852223819488698544988255462977049172438833655711989937916517006247639351123994470763232633555918433355261375946646121062503888683613526383375118125447872492786828324373251909718199351145000790303898668752590257680680168752776282473702191087763668398899633013476706557730987189284018114025553188602748427580306117432812690600866127762941791803510868482279906938104657801402175848457205706850303075521333414884275925903816774784648250894803394954293484769774561820893309850040594871159958996358538933540244796428291798929470065140399744846636735224010884692961277924249517305737763410307772893511338629379708753179166898897141656059558041725352263536762034430413475191843050549691182508400466945290682956700018435962989808402365224980422607695960449143701871485273356222898801431726252016894229797323444089652002069791864700376398708042870695729262877136048376047081121032641976449625665354148161536954408608706171973073067310488616325240916390048181263568066683727931862026711170473654945021253487797267931869554596316883826126489794593842919309355923082761738588965456793228642336762299596097603728331197117974800071170565536772056018358572738410397654083275421418330419701911356998484915974576547236432651929104953523128521136090733180006896248549438608995645817337622380817219811774569479342966706361107088223096925265446874767883182153361831252687350339247814525810163450604840523976123317740945869161016380798194133971921527524257539146955870460361261140802320690352050517483749533556269945635540250633570218208272096918194598382150120200323282018164852061231997804939652512835149922756273022920688223893524241937915388820557804718180715748422180646429737921640354767788987615869446812673708965966810155962409517887151278906994453666198269052239005000763397185521123102710061847817001796732224555558078879297497295055081984106886726076094450338384930984854607268902402887595072366909332757707048398018857424937954224820405052637555934180095067629831468935704579665897803797962859928167990179262978602823613317309661593665114868895513759083867337864200935088188420983056798054274420672862437030336496258733897484648445602199484579532578722810115892127388084933970211540747225734638630414968417164925943950952145685099169791380430270631884721352968959957375996690332211234776553258172542858968918070998834472102114345389816807891711627935403873528721799474532309580611468782049867652915610867510294753926517186445155376460947732589740898722325896022579768492089766785792936270557732147157338493122112833110568032516686820010116240659576094616856578417092424931375522956232231890854571219272180777378197900648512743401483478693932580861945467564171833314932537065312469653387562051535879702579685042553208573560124676569485958446560900200008902826879290487391254950493616671092767437209557000239551896781649932986794069092030925226523988402320174462411765549519554437823658050954071612905776481923516010501086431647933796005185246280212624010641675736811641823421414092097681120417464442765549035170144098205125926012335820134198425736604491774283905568172300842476914717078598920304997683008655555450540978673546765051082961832851003278386115869163890562542540888795035360744716381679229137911392171227093114238615365432774836229088154711038458524815833619714658953482440634444444229827265945339173294940525312781232419136599132289229545981361096590505602768734563826743273069906255074134954929951908149635688782730446144607952139790791723533036901462544774994872974308076180371500088942042151924666477725318117686972891154390396654406988786301685972456042249937635298795774218429229054407429087699776794616741255425698385122762158458868826823203893802451106628178552287742951019764795195270843161185396961816756155565544188994299214817359779901578737398060768882170316257578106959114832168603137815772430995736801377882621709048217043196505506006225401160676883733819984366622999246799879541817775652082461463629798072907905640726986869572780417100383809887899295815367736139647095422905081363907310837373188420834849691349128927163774281380385649220330894892546809381683913027010195313065596946111706187007434277090290344620272423242404915596840116498354917329023519370514742630493813369655315174776490650460662023281323984194328478579437926474406430493059091233617073717451781381243526617176223124877009908932254060507188969300203633535399841768164464230544013628668130658735262523145639395681035866304248943107811081988142161397738280494806036622776528004672813983366986561301542419569602029278162144328792002732684459189313770441710794539478040599099766095770501671317560942662932568744905012835648565562193061367664591613833332243745531253088813907803691560522394075016370619133629534072218116989173187402074906309197396904670835737324050793982853823449171448483108556776458579394800751334754638213247468109073525548017375580140377903431547979861383107825672480360066989795927061515549099190076660764059428032509257934577217214218130145811798993186054667576654518319534306925720892638518410431885861078403138077422299569051319857920071400215583987128193160376125662224015410639134722526857550564157749465999126496032140253080938250862743772147497996440327976977614573452693609427333326645353025001577923193086069238587725251725339440322982370044036388038214544106419562052751529431281309861950945281422828259782969663726213582346140332006829260548441963495462461953416818873480915614592190315490660999889744859356196665703418337375587690853153816329999533091918095974433271549621050919440192175899661300993344719217234406968636110945347958102174938312392903827849461678743322778844440668424473398191975867044166073031906363424587643705550075745752027724820671147574308353876092938921336796987086409895757979621408700842733653981643864767159381277521247198045789315080989092173612028853621900313396636384652194463155072647065019559158493604734312421619903166586717320502586614759274386042076814210167619157832291025992933542029366486978127365579146438103004927768168326951920906256875119592480743233315412177666184312464018121742342326177686324569249575355724399316971849123854553885282833084236341416603064910672019430930161376326990086681286023036515655459799808895162609450383308268503227810598661291648108798530937310298653166156302887747208291621530156780581014388011908091164892646039190189125640571568829959355072049837370744113439744403515766729983398957485841627415977823969391970405158653557822149624032703899822256871885562305842492189800768879682957667507453754184875207782446115053024389435965046535574067361462148379291295925941456696577344520643155126821170120122029892757173873103423439586466552015805986418490742256434820448203029196663750994843869885885096558435736212076963096286432916700000148102573234210914175467885765854332441835603788072211598813235222685656974533690722479368610998552223362330308795772993551735501801091143148002218747621888365799847272098998622454704276610229409781469407339473701648245787919648644035937392389710259218868824978469787116956749504273773649536015409827368921133405174435321095818681142522576468059478778167964087440199223311028419483508742861567175667972551518840092405877426201874932341355485924876633568032777675583994314540458925463002934773940022824244598493781014198644949939612780470050254677715586806501836757380053934190158479179981974270955900030382236168406571177067323405687430480747829121880405234827568350824539365649069483732308456090679997970607165945026723919121272553908103916224682982815891610457111171013899056425550789592385114788069292656552405517547600334419174805566357431853160510282142626347351775595431698396525469991826470513264400031506902718056070529192469013800914246681624174283956346191527313402589177959845642639094043757874239502117854996358876349614930786797908978058552249155788044312889992808397945513084857471612996887522791809448304042990569864327660465868929774956140800262540321765386913227707852856484717178693570879862640207104632591905204031005239363038482998449025034982048623746609272185538094289911858796142362045171060303764444659201317482591110074208275077485930883235641239382003229194281433326818267446434954149259790874162953840996595961981521245484746366316261231470445693035059585324524665354582587421785196309190922298737251637127191566382649508051845366719980913669054489802957926905166599176292842879564697532539617117313383201500336981086817195885653332721435159054431255379698227426292832158290356314460221899848566823416650695002953973702990429908340060088661940733156083459354382588244004475952147560411554393742898234200630299329824728269254005582185784730396024094696781585655844910559205347375002782867803860649247515313943437164078491645513970038177609194248315953051471684905297144092020837667998379488774436504104999745857159930354031064280801857794603570545521975623288281891950834439023670883309615937384171626235528569034947558273244758152582042966529004559451903888344056739325582727985891573032814281492060866600597332563961546462269062348271888077743263487385946438662930678447557028742567283230371035137521337182386827974955898227006483758353164110339164581649489841120657239798023444406320331012177394301783744900298054344698407622398018488238882478591167043933380156536007369467532104042598460812855749483571804363019497296656260939888349510009008855951565318433318534358122969575924729871114908725488140082545298986597848157842135253211202445514298383480243206540953213840853440353019646180762744675512317453014044995591579407677594738151632640525781917985711955765488914873478064627055474887861983632345661075612542647191466535906891822616603945828100045381228902927875540002414941622578832096098170942980370744645623581698277242472485488094536917532766425559537470983410927353371225165587021648957744754187984302258852587750233768829550477131270274214109584765478326499734325185994901865510728110021404080736568535082129760853577953428315341504885922500547089310295443300366234264289251377780010773528212590329279092732780831607102345038480626192583554436016588557604175125804931133006716983037016872038572668543058602013392790294184494526118102129672192164300656235231070501286448871363695082971985012420077795414169300770963656531130096498750863896507861031023887938290537247073862605847832365225011975566479091169809570467639068568859922525068386052199546553254530566675631736904728429145408633473529745222858816656525592448741135107443001760580129081780757623326275383349638886305390835321519003498189931817423504378442155588313172500782194779128983948271831126232751261468275109486083177918905404567815110217101895216582161970253081483897035369827476458935097492234135599300771959592574405365770433008980436601471151760565034603654984926765764878831913368583109143615042727071015856345006467599497574063549918013253329720831440745631855915676736938336478969450478060475700796155251585180533777942456116840300865765284586497529621865184549547537246780684161112533413731933040478337682395152176232347809512525456355117648185512892444127509002272379894378897769811821811611227061836891190297124620900451709749393058654211803161648790181946221216597123049297947058498622455634688806581939902879960634367834469212138444461164149490369234582485418790534799918853346246774453138832007711806306113254728203178069533643722341236077938990517987958677926266655551970484233795582404660888363817443663997399566519743255527260697091504721645232873587562485515199949575433657460662899986267208966945336286809228890712299084813487919620955965012214383197755207173698887500922570392814943091769128427265031575776760417189795750544562856853487780955808037849954288208942832832014815272719170478405218947220745894887388477717007061711268599125064213349990278882991070721025435249676823388571542612623264189503536065993270329193181736654883915652062752753237146172477996367527725520520905470022536850028225832375883093619831315323427115332089885246953031512954761856340600233127849330960215387903769979531439795258437065158797250073466401603995981523570814224547233206349361687703259131973795372829351447367098772900532074151733090060323219783137461401000561440361819742266158026309727369249587304210247035916683943735085464424523836804763166081482602552734136562139822664225746205384883640676531376068777512165269266717749116067908502583682881878346028304612483117892278372110512985313573448432851321683317879876964602356560269242505653249196371332542182813483349879740276551110465456321201084082172710135539197971986920961707870462400283486399970268397185960331738234119432454600277285549717971306583129344134981729700485048476343472601757757313237086750079187304026264355340497293025242404105604832639824953455767779622222275299692137252584590694533333187130905469754517443647877519671617860629237223916535037359050429092193795922802911362899740106260174813822629778428335518273217838356685371284369858872911978349755911743197962950905528666900547489004103350266176777046260584822076291323513082446419463979606814576664249966625180670405482412529926339289713414572777511361137794669455021893780617204914781011159764582921585433098866918353931843764365180706531646156060559526853642667249801814911249237730774275526163181275588139113085441985787517508465569913995914250177678206789660673273145041693383149250556911658773615759944579576808951971093423371004900951047160991392305098160713504100068246878211230516988777925804270542849204233792355542819202982676136022787780888081550536706810488508466937974699321239446226793882028498353645839730250185149347957556605012857103402938175750174829551681300757394988090633800676194066952830117240194912888025063292419283490412470821620008838688498979678661607841047633653041653732682201505442230065737958098572711765900254576309234916437536739688019064084377716383671406238666193130499083338715516359336501843164618819192590053540263310526733088876041750046133123758811561274100128557244313945160564454056780051624507049925576629252996774151900144197934621132870650613751245190161397033153820684994767185299611039094783872282030312978542461114646256341535194941649537838966065260350258111773754264239175308728725169751036308425840988693758731359792697002184845543924209533450529113095188465806682847245839486415198572388551558461683537926004290842113366674470030366866347553944563796812149581214996240377392372298296843228291863475432174372702177931128745204870867091060986728607169633107687080709251470958676979327842588736582164747573756875997622946942585153558688683142948087107130859029490059903553348376861566457236836759428564488493251870844195422932927338366704138863583074755907952911871261206801442823262177256533786016546938682210187716059752362104762510927823013890167684015801150562435696776016719170707582311163114732751624335855434321365544426618922149275131188139294391107960783605805960716685021794732444469883117575861230419874185974722282930605216822005526542264659309708535608091974036024401974207964981675669976218499318573350605227549658325500461559957719875209220191912550102208130425568998348810650576329936281095953209043237965786313591443011368928135965854114201632868283172826535258991666046468497738654069733112293879259463165241733854940680072246078868437373917913961834601696438855373028067116284051789997767070915729595778609223098810004376713054210195244664666595579372114097963805776169802333226171621268878724475857610202016631647379215888043983837966412460492717696480326235863231308593333629604977368911217270275930452017807861850258853398505193654234822813166759370314671662884690173992512363114431088932202731738218921183600250431341274147835020985748278987642484172701175809133315052290961680466213331611827721889962437128381811503981367678511265194655794321183756207812669498548580532887543137442619875544456606795890208517587611145969651258055458659069340701950493524438961449454958036254091711695693313740087179973882308989958801652079759067443400801857677995665770824544143800735448838104613877566081921744205330517798387795283410502986022727263876395464362464144420680607443664247947884431592515434048735178936943111649125786502378408833893267827901022093851985897781452636157357549958860943733707007927906423463520172450146461622819865224590664444332476714221050416290696018264778191731026938270301333275395437562169184147241430916301552355524464564162673811823864333149355739768393049257766649424211578375484432644824175532867695561294978701837475070039079717575172317791401933487432508205855166598384316651934237238949044047965668283807788744622722954788723470909192857633770688708288916726262569289700233674533491310525790967814896636216142156217585717044609789281266323875907101603298262256636573241329244642926955766140091463244062218134402172786993167849288237158940454045634725286839628116175973726990682669591604697524989132178707108666711349438795858276029510762649925596244491079583895277824161588764139020307845800989159006218614271396617761136617135359298717711034084945822167186247044352969411399358987891223471365944666604173517556053914593444164087372965774232261167899066971052449769434637456956340139146547400009316634716953291295334451052981549201219248117313208729347077913377838056823681686266080182631743360664586833339779370629907717441021994773666961900558861881703843466922021014448395746738247805468919335014099589386634646045767556922424158004592110026425842211947757324021996233435884299872120232324234213424711088870226158527491898612859550851651774306871891946765745795585512616337269137981016908387041954221346576741051490011437358477567207199732780301472946115639590164731859401354671750903810049834936358506468445310759437673194502285686462133947167882587886922261236424798522496003917137725563125881763732837332569053492037395732307359590832456304208054021598887619925288691765291171538914693964725425673832912391403297399709144136694146619229061820178348887174565119922997948230036023062919070914638788773772507031920114156417032956298892331740070508567535505722306882215819250300090315947190104946877072796901174068267949113092324676511224039093138076311538027571515595747847730712694869073490034907893410146529341592759669941192032667268107756289295581757546322413968644465163171975584156042476648799145094415304512128934636310905223498948647166192797123089605126725319316042112280652764405927692158089751736368302796147962389281326011679874986228668233945165158940101545423071479953339455378813635748698257950068854496107590144068385180339444018445007463096560131680383417922703905447482875696471453155939972946729143646259791243436581791456367533280886758672542779587297204186834736696727627424242643228558922789171367878530042662265269761311980367932385945511942056067792542927060155069015981079067265175549384882351336349417465815863165389816572752598976330208976332758792125710417355267295211272805469846108334498530254953047436937399980049503671478245857153893866004961377793869522041273160639543919506652153114242797539313550340481005090478548664136068755635825214483181514209510353109238774889490516432756321598725952236716635393725503925026946285276546473056911986817089793197031003855334056692186808997777666077037070674320899090989025075672816665407801898141177571598061560914556285447894992537248767469551674952157862344408941662234625076863710307865779557974814227477086702848940958063120474450046404815635804506425717361410906012799207299220243716674386373766075279082682461586530489309726453657182010755842505399569832295143175214522992160964035242724853199631353171679264648168486239858756956437913557279657319942818832237451217812428765648018904160683651441940011127838326645350245065574206978943591438731716809655122611308554244798849403063511937823036308555710010739352682670148233136067686894297480138920995355635452379341437517561908755800865487091880351468316834797570921076823522258507462187067116071908979462312048575829108123552196159991946582961168473488735626085998521648846299766334055722956656296358476850060332473322089200040872297544253789688059361604735942447851280428267055095400902149461002655465260655769147192432764978025084048615774747625995324790968353001527581156600185965262070321886151811824182748821336957623543475035429322632276291257522334278256091082688484956441205294954915295670697427168595377189464847058754844483175720804974876512088360828688571343670971474305724389741129302301982060320815550902494345709199063641878153515295457775911159769817776962883318501296412517417491589455391621330632591258807977486598179888716740354246986672390908302736593302048125498566707112865171270863900960037256593728189254372467454948402741849430699723692450244430460725497838524037968289215029160386541549256550327415252287127604309673492775860649602208785117209428867192969328515490216720718084900793182071334751552590603182005083377311924233772736190736335270128543825622249905616921470363288024496229402969572430127740658534778117633138141098597121385961690487946945731701726533810761266671205182863507542892004221329312925667716583740601144504923971690888657449505581061980675268131737582220507591050033911666839780229774785423101860790045610633006737282784921113318497425395098707222343575589618662190966593447258862938805419665136688709465754204679330938034947176703302305197291965038170593596621558612037032073692399618707588578059272911195969404255077784108468303128007658996885050151274450971188547304440788125577126717730747898464801846081947203586556711216558390248052687321540922760675208312031512901885882670672893150338638895727640283854322807655293638102555733914252340990813996113978808875267833482360491003877696110679079720153389261764361156186292499519004354084636615192979570183243903909480673370285245933865449885583278135579301817191981438083896001783995038299056150070680955878752468609895748361454044112081056355011339301815559406641788971286705462905592807943967275655158177883074353505125295313281999307326949379016188448802748302165841884912873798467081203078003946075288622301847148510009427321544232067869596974243813725130796369788112486944753229147316977412204842907988791834416055308890879594907849391731339680450969757757438306333817579616991686876220253869697028177980609440167726986591142810561184046991987784131216797328715462328931355656422383578041151084354864453914521646258094230561361643764513415397083248675984834819439620960367745793382396603232729898630353805558683716520397537009305697570892820399525940657611751221505545749394181624373555983505710055517909330786636544171283570083573558502881114892445404996312744714826802268183674793784566699787811046940360695634112394254484687978848280547188871708090992560489620711288399856705556924450415115238842220073472325893845593707240375771439437194037625017303381492893845961168929513284293620562305508461375648601125795944543992726500609829112673418503863760507840404660823673150282557203372287378089318612523420345365663187123666247995509612766663139357791789723013839178345028320127339502614366208700779799036456462276811486145916969378162035981118418611856229124130021954289171617848661595778848918237234730992135629328939588425203756953987896407400951744459718827277526845278370298088579803824089916423091586501391543905407830210822530706984503194570690711165668770453014579844958920883701726338338896831212812351718004798936023673384707670855008881006833646010927082564470037142014011294237378428916545474807500060258685165288133113709765790672202647818864246895992438965360867717925268839067524465932819198946754381748004585770734171039412154392081432981181241192862720928190760943933323082022376247875964426170255040562031132930152743524892435556142429534360238294363490371049073391020816612234666971440277869036049744403370826387339282070025462070055131412350612866130117860918852735908429768096078370727353557740854097329856382439866553128399625494143061769360851979583637907693143692818962229956304416710666149130520274565396268107192575605767218261592926948327170480279000419656927560598516310778923195671718337506591492407646967551602667620244396313516211027046332338889455047023733000035375055441451908302739635081207965075577207527543058077454944020641038574545905867162219916746280888434954001661987346277226905896149791014359704933046478573966792630672373828373546415680833121725674603303138987943062736232982855192956782382199863673558140571833703042866442333496933351541642592493932658767362913281482493462684409954253863815443217683601656688243226575857017755944726108018927720653502615021016788823710887824018716449771802141350328235190162996644249034558810868604629176754116390512662604588542244997884818222053934466323691772877076476970593055742135654346094925640686360670049801610738986529733257852061413511419963815596702582629369269102973967300896145436972486534789719883482979793324198650165661148395298787278857621727804173330045348765715495687405801402896266234271223033294129226404443090072430037507360358918330122527387855103563924499441199291298657804849196947365514652210787588306794136377932007162180285127615351342885194831902677421828886961853959838470272094960754041927147479733167336541380871757020979483909652073867618536504636935365020906529894819898372087856012801707279668558999444622098225251992715978587580188515591096176796248200924394293958629734961459886863734592683453769482303239208710227582388069257515367756614961338013850500533507069433770630770344509092690025656855741219255600326607412911981359893132909372764303476666159626396037510118098784220806137316827581160936804332278122428335464031798040051013342036322816603468110279908975417684463006471189326331625541511190577291519801771380463995492690951605501812111563342384079295804186688973504056289732050459536262051903610570107265884465614664553543876283871515498692323690343902650696259570920870780069926388066071160946898274256580668001637597084829737183452946890320795158776981213164072462895965621151662654079167569688497685792188213769980511713943767260968486906859348444686306754422176143413041275515689652643436144814806824372832659595538738952399729273670196649918723750672899616649817791219516130503259054494847929821796407008760449589214475753172304496727645956552719103994490333937099585252614806930864470318136467986193630684222041512034640925132285346609363079069515382071927167905905469674665026914037732478675713362857162551699596698600441915712552923258665999031273133706166199434031580680260615369567897259311293390661055912652643417806632977364428130731749019014248438315589251721687566159714577748355990868270866802000118859017094389438028916208250812752190113596429051027283110099127499524391406431293248587164718151892512212517350421233368484487411005435427782880955209091254866427373109958258480257145850207688022401647719440300877666900491144383527173793408655667146755275748669942186361710590286669052117850834231097869838304564038459864195854190251758297505756166177521533086109850580733961021403229998062757734682504440096359678322586078556491333575220093457365538275733221819550527855053398803254171846024162508863408902358864673280210040911399006557247823365181403574001343034985757362411409024861722180668741687440280598196878899793237359930186855584458595440430820794885625675820718460701555833463792203843717113628591611514354628274671965904001864922726778167084577400877499984001331432101073390376855571388176128356930067753782289489803258967857440871559487674150885262413364333056006416514007304670725969836086897404321958709118807317457652508657771822111513435593195082378377480857784564478798339455615094920717657249293659878290069471793727486280218364750081171609813031153504322957244654987293502396686246762806574397785609689751165156190653741607103236142729635396014358699951367126959714526256276971846941986182500138529469432682625281096023736329285460219899145473336906525897509902885803925118930748977179924558359989404729288662614465358847803829171633611824379166864732956775775097200499763414505346762317799730894982688550248304531076886188210016001269195043191833278357803899692573257281268668317901802580108699816199970553250505809402784678119216568845432955845497847599657103108399432499268502933458205479591467386403358394629630040636593461141396806429451494320996822178771320547429597009183242498391849183139389084520139191616744911220239330190302186703391902911487602570610085002219155735105117185872849920195619580542445460078389039668594893696295858697984121913349576687528919014425242491411368404663365625537397487438929844869477868980715940447567731402088704863058312941264403025252117673051100730865721005985219286563377168465073626071536444237325011965734803382586913892708965015693193025871531626984834627096282795636474826815638739988754703646545792827661515469848646586670449592074033685842832730479876733179992490108137071850549111625791590845352766185030656656511717806293687023875083922923488728468506572009401044253021106894487182252878081343172729732306631681685206452152084471180582683761707695484105209857233641996453017671579493501772134720575714964183436420394928147804505097608875607957797018490018732283013957721435556456258613520638164809705881669141290719874662488614388409721274192648272060382254866060636069399627840185282560218505001742288856989811494854808925276016876777079252343524893909715664938076435705553382869064339570411440546654687822557660315750762465035469370269835077126307034054830263093355438672748570129525046382731291436302782602944209399013359212587975025631645028177604672999223706004906488741390152391031191373883607154856221205678840549887156579579288225784645236656333372354473312102777257925811064035445441773302926467466206189733127597866733070323653444911423193275484206718615624505006153411049425090402925301663003630984523720391180667827924820321084479874807317497377582179459390588928267115788512051145031822245294811315416222293002954778299966765471512863992125650321156028521858773533361953135643094045769281164735029671176393370973295695080301512569266570477316431102849556672633121912858741972204380239898391097540497349757304204215674889006768049399517135949334312947736090348188978673591521890646885717408067293174283439015795313821364572512853403068096688014294239225216155586036756044069562480381705325432547952599192053480476587334712695696839318628533014312075008630839820817594139462278836455148919698411959988911247434993184093553839907512083634033369154623457592017197791889023270005847747926459735216303384156072478544780086829679036934588456515364959415393382193461510870758032633578859492348034297499584244592508656588872092980542212082199373483601706898671132440112319963861766136082028856462760694486620517304387037967086733215840887384754669753182355800514985186996039799633896368244016798285956355857215656477512754904078312082706109258290041573074487421286137208140028570927082177462110290248151027085193276707376082338865892894070712030880817154077219119946669116616375865854926449201410857096772221803958073981830183286296275088893768604648057874383182707682656509955028152724262126926192703894987531887422642278148976646327804617437537326325094504484923696856083527728017624459222899202132007117546389543102247251020554744507541204617387480394879486163745318286373644282541938487118511431727365386391151713813991811382090998113545898553224497569543912207064841350905125111943624719665577539804051975099270649543321636519259942467417889030462656358352550760183963596041792335087062328958783093132040967910342797777185391525436305998331148532135370175673990465774593283602625283136183977911773934469928953840864313050269701531846186246692951870692661465046974361436883932336527795809313399076140330964392786825387134994184890582553357097859238503515117322665486132203455599207086247663682206789615024834282565873272009343445469532126757985038393188114451514846472288444182935454203567215098626630815052440911959737693109700771373671152316114737773929513593987801044317321478977800547768064316674815175136991018545327108979971124703618992613829536604861441940291292309616947668314038240646425542652913213221776964763337926233017269734000170050424962604883768200042241487403034447082531251582790343222051936299217174629162186039847042976149310871223836023624336409657764229173988696080220757236487284348175398486319762814274158516976527331926842616591976482131249551701135224964937171916299748868439057838761440875880827351312012635326573414025173931118723295223910168956424797795207157362108914767163870747391852481629160557135385180330547746694030279054284207794591437420320879740835289103054304542121616532630295712087953746402101980470149585255569407802863313120470367757931535049214697487126186876320843526747037448026780694335647601286682744665430871450215585421376304314499407940459743995849828897316171763476944205239640569894465768925742014253132973579690225911336972122777998979909959491902744327023552136815699761075659352199656821192969856308880134790687596795448842225213623253907927602710291985158514273810253424563503036637287996715831344363580092049182277319181655303867501404877804117768626080830358881844067357579064640173142242767425561176973436527953817929387682694919171700740493496319995272038008752298768656600556920753618469669813974646197678127127435394129238608567172993654146020834847974245162072603154813723695021116651557678284625579585731968994767572526624036294756225822690633099152902351410878823926018914268201630358113329600147307694767430233076003938188169236880221345456975766992499207495963406547010279709555452184128774399360519014649001638023427326984235984310318433685214085826418934752027920518208137679114737559350658891156071406708746786452073432637335284325183394145847474532704656794947276401283072593339980333702183315582888923039515358771951095008312488521765922361554016221094080640033200035565399097583280742413627044060899322374593392455001453932535665372483854387492627611502935730509486389310557373296332664801103134083045057460003365030963879633953487159441932386458229555170181032883785614940959779547685384037918475666516020703190472730680450125498732942122198528823403405763269564239510934097954479541887239926479533953572017875872826429450435407559364657619702570543282380088378182384580733825910976553679699293255295820485103281809200312413063492929097262928482340228278333163696161632602271933243203222460652807287282578669790444281332577409273675635134728941074483515506161200065174031234345298720940365599809095118611829038887088142602465586368072152640877138903605202376263910631495991744984769014958483097192603809382654122674350040417294290965970895875455569607983863352167853005545010779571073450921552257476850259537102416793799367372718534676226966093849057550251517851596629806948054251389758948851368601449613950847434530864819874415604406938381712517982110806462162091890796957218247776140506883536911882795554305755384035339264338186245824944120162531691729108149363686613286943518973422370222223736895343845884744571350860541685321699813387901314226634065772364524901310897422588225631763387755145800818611991050996557304687904644176295069744310037080839697591016391135959410658874434093281196760993332947917346935878624874470880164192538553986518886380759892293067681989791298854161691841410368997260807288949718995462714369949848699508808494305572907544021802362193143356917654558458939364111775922488104995170956955634950121872023661537825024648367588574527935726366366914858884723705704211504447099798933461549577974173385817137432914417379327807798564233003875288084896156431562429925695488184352757080373262451358469873276119245439149997421611420551771335914644419016064344745263724182178378659735783814243330441329421273483799368262022890150539753901569298239000185675655584479447421870262654036952745285151668371333353531954185291537183164693634629369771423075194322364615935669264949387496614587960429421021125296994185924930051091276778390363261883858686129087395877803763263725787782414858813360900652562266713630924995467142476024651531648312262670829879165476851469561128949980507991244932700191288999536759574486182664745643782789028105171207554974626163396594748906912854078317678867663243468792026390556322699047580319581863163025426486985492413464692945278769654142036859729118751138924036728763252402942421687727660033178640762555004916797133098964713384807402822617532472458035095854699715137133271966237310705373709556339518160864976641554855161526027115260562683135287115112264208401909727035017074622263230724790201359540436950645501639231527581672697003234456400750627601880319645698338196182040642706159163088876289351367468145101887053970783399003551905659513720548882184649193661283160870199175405270255801462306130874064351689549179811359368736529578602033215119658913053960953453988950792838074573159336586359497500076883828068589101723844999610407272733906426445091388691015778058505825130709228409750196166363798991796048025870916815643983432731638875342160661003930666309900216446623495030816022600333812921708101426911154603013219973645390043743226852076959149244037859944667244898855273422584521838481333116835138658526396982672339289401710987105415683524887056433275459391181282446826543703750191338139864525914139450826555121317031067773517261788309365709963348922270938078968666224846752214276670987982931235396671372471740863138765575115519870471340753282513635799270621680458171499077530548237296412679121958226725890782802831721021193305216135308148467088641172901672867917388271439154505169519446433045058388098490439118366362139916460421403821200409591943669286324016663046809506416280500821435509607217675062520146866470118868151811426991243361094479802738859647962501932766620645618787040945116377196079684379598866862239350186495627727533665845791977350295919559301598438503003655800298533997550239443565931367538160528348514236481616464974580352616881182118906479426227339629948651610878792568178550238038961635993366820120317774860632662019501573477185599947287151094521403826144472087468137567906650149946014443832534343522268673711749884503921081762061415965474417323781163091510425726366559600370201645767666515689966197190527222700876369330919881754979606181699545657335181865466596317543639250821996554399864796012520557096259793153641477044449652696883776019606652471612453703526416259013188028261438351336267606728144782941755675832606164599078808400669494282559381544601071662203593434528771657883914614876488660460696063593830354474466632408232084575027490670670608087018648146670541847413310978665557169554887460529922099234248331190647373928430575283209356563225347317977649690708491086458112342535092689596064494199054434531617627393169722954943458152067505101564601226010278874354081665658721490168048634545023978505954372179218297038141311493002293325708361998393329031322953735095805092323448912185912634089909123431893513987876051768397174824401729928070771005757419850606402164827362378655802971621666924950677331599137747284525044639942239869897458815792346174720147378104803345866088207634203894958781378056907225160304888692953205700145592229452959647128815270313860972859047011467666358265788652883197404744113476611442739208272515539281130738478882137223073340710385483420076555653048864666171294919304701615097236016421460559992771816455635025446574121516297379991388182991048298777954964175408226584671282762847102524714653592103645324472900172562063033267884278245738818973878997384569147921853376289674667599148614203368682319839255543158693250512049976897348618463871975798880726096450408663666127350846903118233189446771765248864091703192934733696298765221792769572059912069701970730206190819100449964094729250899305974712359615234176325867251039669028792991667969992906688241855527963742041422974971406116020229451024091856060148636093289729173079899346247800828982817614760460899916828691348787053091558589323078262395734333837714212784553362681150003549676008773504117097002956743854583662420146978345325524249441124322611696629804507047368745000821425708625982493188805747608812049095460970390382598592444475948177619137705433903485811658381538808214775042994302931907446316556692428222050947817443771357427768815904552693383694869513658081004587655324867750749188608773037775250826250402769256280190954673126518934236769890723042138455627978754535953990559439739182004332588805425380016393329070142558871179821567317523468281777145872912948809386758638462230869639166603395957074989943167780877934305941516690505848661248262193189841011174655256141599749823381585631249951243740682636025603292205586265118832879836072292318286662703444625767958776208164049147268251576859027796918473742157357793833372028042390088416843599737321400131066721206174079023593537525087394213060064237638986204825708418034026595009763364328995434463818352794545571773388266882754066682629237483600571058341362214169183248751163257321036554406950407663011715953534460310221960618737562255993550359615303273578122970851344866729603083846916806117479950363184939018875119554097135726623854785613258557900402674736617109217215849153757969029559741011638492195499934890351865868130358572393507233709241139904664004883793864194271348523496569467569842685926524729433971988561614482786601161092312346520170096528825382489042128757681634288834317969306264521583512783807221001361158718491358952954593608385083745878397852161418446173778448873327954681504707292000862084991977172830560600514445479800604094973261813809895841209783661323734912398961953406797219483512995769324778334031681203161682589325094103921392357314045288534937651658254658939321030398792651224120805604123755203866844659925286092832381260633915189559628655213686374721201252016703694217424965884296010549815708605587302355376771692008553077498482501429166702749536338116064200191820636373628281620081948254085645469994911128662459506594292771577031609413087194953504332223403262946370474094505525501568682437391751216531535374671264454174667212004228696320858456041359352167974221774667795726136836507699171098273687870324969116643045312789078335256102857994389649020464755238462117018176574996623888906621631224896119034587526460409355607536651613728863842409920495545143544822117711730701794154029136924510717936024198718093470339205783706795545839577791030643852753297035980926015865375793207845016748286649411748289425772794828370197032228904878556085987732713302949537942096219869765196878952898402617338998575721651280891851403638134766499077453336272540485817447512497539116084075970511559478881553885032522369622941895767786660712046994234402009272533544937174682443265415444936609572510343476522013667082658346642451496376283204988110835225042588580763384913526677569789679550053271664981236309553151380753592534330287591516083604348516041591977686951742056453311684607842351820288509496526591501472256104408542052748704486280724141356986059878184995097766407995602524019356522545266640942359758853610869712963985067705970099299844504544443697229840404180488164774763558744825697374950986175148147603157862263094656470599675564055495235534288449412033020400424130753865786951334133384276234677530944647538823733020406962646144508864111858041404076554821943897162413747915896605743376361720607748407178415427387228900615617632424763178504582665076278578145853314969841459174802437908638488271730758251696841628247493284950548142120782850650329781116022440068901971799969652583248171324530542115482493020659451945264610476751186626909754898987967935188016741905469961350795543235629296617123256868502083453223154359912845286474784541426537953421719011443245181873319137701203156161719245973627180479292310928197112188187484560923927114789129212351359787881022144968009113618824288634025903191236104054660918126665908027082080416044929124397923706378793373646540584214245336212158127611597880557477092397596263911872333032488810509694846392289937302399560303510286450592695424995869570304369904718468288359682553119418311037812704300677250675716671548490345569484535598679870578020247805719200158934967563036793227988667467594016475063836486066234352082708311567585437850813733630451089351642052673194405174951562815925349072834769326390402292499562658552327587478231006831680387419472614449825179174421758094121323379525050928521985758134734406251281458597493098029493280701662394061722336217076612407255761775709074828315311658125211624813924054545494809173888780109555457314634674802569493290608896991824627394403532513336219714647639759395859265173939772251590408451603748963670410456880633172851340851569157125365480493746868203266380847352990517109389963610932230544602390237438946324725166092403960959561248090179245141626067686855277973169381819236479988287307739976649887811755749093684590847565688176218899241426025817725478876582485757991413410245045432432083405015844984657863457670126384278990000111902162333050021221611012734131827731285171985716401249466153141288157164325856057054950875066700259499804963069022153752688727636014053345849751354362299258155970244629557627055324376731436465790079183015805730880033351870032637255472929202674251525926471553817240950335877427513195079614910484994523882100523786093262277565201503386399488754860738412708218426207879949682552259132103039544010537818323665199107054067504312060000771024815818189074994119832907249777817402158234765911069893911301763259192265042310199365919033412120993502001672291648615035097239907254739549211011826782072262950897261089826094870126878451480360821104435518050968598825241415197653982602152752362903886665469905750993521740621207518089690442724645766893421135276509620736967940328268813284800099930805994581196898976964895159878233166914347334403569043011915188115994721093156011529854328421302660824891764755957270994076520714121150178315518422321750240499162432144520933357778855336150150169309322528550518084332122482284886023017680632534330218581984057129351480863980140903392646912092423345630078329717649258902835098523931291628066758514809945080345867453357445077497689357831175429642374768591244433369024704207812768618820185374482369119606022138573760639294579982560746741736284642892336796353224609896938731870388044287285457625642711388946531549983780288036335450385165989346094366277757761557032309195910940633026088150928853438290013578046555447793390652216022933067765157940222975353640340326138050876390858961004693633877355537643402470432146194547673608629483794931973742894631753328430326161692958739955197497289558284294736313783324222671315606698799636529063172781836305901164394506546709497656376842272813146163797313813472702452648333405016424872416749246547865978107717992616448132523938428945890217614545231123243014421947452710583496077839299882601055102780108722561588116618486379712458157525794474704725684363719994978495418687645067130499289676872048815626099493634669815318439265145955714571625423970933356289205112015716319579893468487493124469918998283623561960701205408133411563176100206479166976268694152627780380803238774153479554194618711111305759188937520853599520732416094082760056611334322005119744417194878945534876348493588632617276613405112687632938670982239051335085859432016135813463090477648475547353438171288347199341316732374484609656994842177909873837971568005377337386161255213377195580378126161721544903728665840409000936599565479214760803729651797979335492046791915476294786931106877857128798014739211587319918453987285815920598969860890198773969652305097503633455522480292336421066469870465515626119616877413273804899910248527611631604221519802197207592294820212433289663719142450286330881473070591114604083844922269406913141481602452501449828370328275146703279974548557467850347990395871893943681377962186198323301276118362499673801300326456413299679834579269707779456124082774073821377168808899745990780660046643845500884375153852356465078855722944883481324469095705108263690602774305884103970528343772658999456943290378004415080665635454396464638175214694670495280043446031160055066348062457620310931711355715712354353392700108480879741450614020558995965008508316092818533619573914828538227280787245254399621860808985260675352115899835559670128584746094100765601981130354913867836667847452207475230909638774471897813217513793545423871139986514346551284114388340817896054235792452989142242455077843585805251187048982335247603262138192212489511368170132553014434923234097663287742247372749604078434257120580114838671790127353287997027826528492186050559544101584019224110218651118738027923736930227307673686158261218704234782535123669222063526852199924635496633945301915633549297181930013866994406693145110120358514661100028474741557070614482916013562772144352882196057272828830025651439483160195885301782881197826330392257277377447107122606630294673484487409273280050210071355198775639267918397690438535985245189306420441053948241355040915061179732122297290044840277256892210240083558312301019684870897558619471238273632226170634591435568143402483694892066761115526906794201373277773070313083959429058872880211777102528327165609928888805266394574573097274276074811675363485408276938520332681132162809889755977565379829579679106116421351343818849599670894120504937223287130601215587070735838241486010346550157294808277522219199150137177237495542671328075303298629863399973702229781744349926632010499025996961447743766317782979239827445576706864165945401864141445775993083842728989779969064463966670939455783423075191501100836396792304703743890776662474414919127782315899780064826511147068132758169687179823815950765285409147318832152481267020976252574682361532622765520419639324190125762802878655623789237421012534264297294182348440163407072716591353227912249360115738431787112286420719110803549291635025806701140651154372330850504451774699387608697807759738284099892270558662465908212146517840551401779095407172467570072045040382616502161349631171814795436854795946511936835198309293905201127164621897676259030859548380363809780163668615910122529784921270232907678274382870598222512105063939712001769873339188596604927977167625023655892946313577416555980497252096613277396028072377803432658405296703966564294368285757371832519797848977565139002520477570028064550486839832402826854849266971467613316865081467240587798515996474883331847811481266028017797582893407903097249376667141080591685579675733379711011523770218915836519726196853696174980659706463465119854749355337762962543591786596367102007190612897112146702470869980304863687713466660441917335053784331100013383513882233626709748232237714575027395672685389555717788675528431776708811217388782550291611305924215270482021696734325659268953672799874150966623584313531799793305176235229922000252671413301780295553566607192366461964333815649147475055713208516492134370044886336454760521593015538840292464428156807214868105091037429702380676030280255358042675394064562686492787633130813479209417203159193925557701531229058963003999423835261693719686900133549286246369170245115353896422792852532830871122149532813153313315470142242956781760283194908352606517130377667286540704202477655801341234608109764069446876395715808927708927813814941120184422853025559523441053643485532474055312501703878126993309734996123419141844468279598959203687637851521506164247872961472213038293582839540177521379236771521408805573479019540783281633565107645253821063171727193759817787073764110847237848986588891591847631887450867048729588279077078830463190957799992436665576948485271563350497180549044942727246853561413965652030279987515664583028762160094701071920095654402432319940022643636029779944221713055519854041935404465329588711685453898967130002856415224270022009319596286901165399742479185062112574163232167447267937013096760873493439249605393821203693071524013599052978113937486208403552558414702691883600483924560163877559977037239557189165631691368434748160062971866851417839504606367692683566387125511116101637564684871713991462556892765844649798931945534990019547908917166375502447477185849873784952760438180803680821016154609208901629633136908091938685579154523607665569162249668950151481416724823177231782312660087556089699401893805654735955835567449403363456025323284121354154418292630026348764245463241020791640732778877211645692907421916297457184015451430755922835568214043833740189143381961885408734209019095688946079292255046922907376083762246190876508027133017416294765408277842105449120374300584095639907700734901430069479609553946891933827720981730348600121975451924570989026660463126889817955414624277879511294652389725412852259274511261605409843851214196688489542729917489223155638945484002086934274129237419590612787081434252090089941819524186452680981410406660437979942243530152399156258356147188497781513097245766052300079271160917769606935526004304998829761387396763653933076947375743484279975624970934297991929062074624816784810178420204762401493452386349206545578280731427858482199235116846862627445449586001435878634667557338391957079535057535202220938234279158627447741054245163800427822246496848286845455484281049202350228551036969320057998015962184413455114794592664634101842389936815772369225231107494624932302226324149140479500195237722474442676360440553715052055672372820321514640181954238492355661063040134537841817988180891950778348236112546335134326646047074532449137758638442584783866285082859815952213167021509610796475926525820035862627909493671668055223709520562794144011699591545113140725145817412921316117651399563814126015230514369717293831218110278898688539827827083928674259086428151987143840983876531026132590944896135770988217404634538292668499639713011713074069846305817939610251830094432005088508749234293260274176395955008736456165209405605590701246158399989995722513246942502568267066616513062475572841771721800739446236402322401527275421319105946032632644407522731895696732431178873605088580053337113833657369578093206763144567470398177759732261783016962281367813989173587049787212069933654625223911589873393554534457924449822592502339730564528612748888745104351541956144661519641451413796840166533037928714848542692921787437327948298991138519362967321120057963307106824874424519024591613614415565213912148482857262707182643339849830480308377108002216973958696740025558797061659032518836444598658146493767829376244775843088213396426007733615130961754593412743507268555352369230841176438997367711977778182595436899402501771748083495684604795402488988541822849440011973878369199164106229893193529802319778538068832667706344290455079160909874906393265803922822070123852905366597827276040421369127984401138407928104391648328643137994144470191599330986086923877973218190844200208740249223977242059210214746433395807900942148558444562298034749221622081714181175281456207351715597942807918171808809605567928273367135622350816168359890312693365740937582125072258699889012688840005530474520396772361626043063116325027265642203897833509196783442124150119429812165394162543265019463105049926623046867375016300613605304562037270957505772115629601713090968915385076378002818562157254038458434757928704563723918283173406387593501313869564326950108245713493674208760353969365967147756625368098071961597146272051855576161187385413035817502309865709563866586393115214183998942999228394759210656864579458940960547627395661082344829582683427424376154519336176345248555338819128345722671309820709785145487794667086109200650207176712788062209345188601839362312964815021404287062825864014862593147027012970711601859214238139877644358036439836862393410692100556806466724820470104614817772273124235313104068172681016219514601789207320241730962109574335562781745193010597571795069672495825369371378523616523723685546817098917225824794198484335994688265186269548095779120072085619940131213229670047572290068121829765442076830163789472347330072799200974557687301176043196012508708960494510982869001630161529396501039190290126224188322359839533476413125202861219106339804230988322320671873835934013934551578009069250174563402291959743730775975297939144027214819172410594824348083819481099651788639048792780353556767254373054236779214060041963693142232033775781292720362060367078925830744031278094186696957099588821978399994068263791528023984286452097563094973010469161495757451208855897837662578559749166449078164252135093360297460005768503909122831856971822250632134126637707072262123375764271240676422347587102575383608578773462021802397523946969258425283367284561364608797798980572063485516036676471821524445132355784515213475806626293214737221960692900030839034615666289128869730507034074032786725703625560172759036219660607130692723686459901377828497735489586189110253023541560815248640683171112867772199727985630913498896083965802845741591355495865429868393588555998471948709668530256530229112821297296323967655943282084984523329705748329667603826614019171769202538811315030068813329351953963264613647708655389854916724805307589165836638251792704428289825643838356068274953866296608625371039947741324413934840299788668130739092967358100212908144013593499732031141844774938909651114966024953378640904944688470006942660127732222014347581073657027947048414738500264948694400858993489599311694137288647842734112567381264998329392009058831455144755824647075734090427444252963213946258269287117655564518054344130618811404887237405454658514431940572412581973554327125622586565854397021470573125238140277688530678990353332036826274799822634656709673334173948730590963395046791865440203795743555493736245229583336252306216566295856248316222176778436976806030663621088822799593038996925817403611406891628610906879702664007826125738458654172334174122738575274962829885517913370431353820592101206654080854938513766910439576752434540614434136391054645138871673626500432644494444661839105900317276259581952785757206156919732433501944589701197650352261501878429536636338784591195916755797198583095469058439575504755334313715856931066479629038253715967146029625797694177441287587790056923607225794981353824142478253139926424283645190262400493076634714322323397266823080245166125975213910223295639805990247077527578184600175152858074104248428834937241745533752232158869017475355558994079819787139390594112990278893877742739045548155139792943346944367027012845202012300131538697629764479846117335219049721394428571976136703825822663783941667540495903823627295317318159215367856076089171604059112430186232939240881930253663873000263125511666078233697904772750368889983633527923883563903613228576995531259746417961918601018666421647503773941986108946950934451747709153764485236858775629840677964380480353693651512798564161614680766109616694927913650428448293844424545687993236068002947478254411550391068179389177427712652665880594392561811299207361269142047688635903003124829516441740444122913856794921280101730683937271394025687981300691089577608266751607798648445254668127941120499597605652569742072635414592652152631034527688230951266122690163252083699890447257165203932845869933192467087089627591281179137040471217090368466798019563806109666507293793891774313137074344394333504015946341190694040124179493059526565265887418787107008560921944066367071750427330596367491062743582137827685043806837205434665125254109225243923296676154924338676537046088130227208570299166989566938786042096627850208337048806654488626436423766991206506021472748551507475491351536703186134790250319333666690000675746538142383439526515028995775156463464687615996591991353905444599281802422689955138813403575154768477887629165872639993597950802252347827881306286954280020701969866093618483520586165251219064957300989638632843784900606477662903040447856050353623142301808421125673855315784306388618351020353004576649368789961289889712308742661026384366372060659761342598145186020462095563486351754292348240083921201492929790174077397238753569463731847689159944911835627509169771406249787425555590163941945197902613626916888182725132832679745600222799237333197518091286343905568187700181288383098895837554015417475047756468348915352061207585034085779945710939226563965923417684435853449110011253005535411236179219492289595263722471957912304843693049891824591289038393467963076463247472319390091601137363655844028920067935371963534644586184548396542029638009113056574457300631687309997740324583726667217081844398190351424938188344609166193207154209630460041965757155623115365336955386366106714364229828792493665584922128518442234758281798926602886585440157351596653267951963680061900469657364157949652366284835029858834006247913341146499635399389019032369911754695728052815966544425379721993379809466223098753577742455043137899267054769378599264807681588431306777756117514541534576139283753963891969906182647505752809066271768985681080131228841174479570469440929202985765773080878206408720833819773349083184459911617850294108141039457969611175386871089463358243527594314639315376679309426513660456656596494221758547313364817645306265702304132141149652178190300722143107963448015866829130884957993531320134721215156195447609835654494232580753974351562227275667818724077770807441957496994708639961736281529659213365514905502079434998200404050728051223707915003282914429560463494111820498489686613031741656008049256788376513383872201615045626995835607172621470040122533896484447259543004091394642240087253266078438708051468178092232689472073803127841803661233440739676720100456261303863436937322734664971296224226856025621252302820261309599430189037059020295945977782947581632043769680127001412812719586979906581394575863451034733320974534911300891571313568594347128670637886095840115588125535469245424291773950822515402542781865045217469695870167830832694597487774354406105509201433635622688267530478040650926215829552272750951603081564979368128101875281803041250045128197822800134918644497430203960028209603044589111420878868785826289131378326144836238167894276234622443705245223150141314582294800697648101343342178835807326189844892436726141254523273784983414211771631629177480874725233014214894221875061763709970399212447017687654739092084672242707912633192583518607215450447211627277544057152487901708263942102873909679631411655552878647160268369340170063525248811488251705128754380927861499728572995165310679726878004800352347236410684807354731281277565880936380245769830171638441654858104807163997171313647183463508788461993266747367181769334115740272805506674464012635766682888213003502892971299889258831599002084502705649678600836812602204893063156725822936281575325431820467255317432555926103562348689521491393426699407265596211623879065795245466780145644379801809190109092245488219675995140980816229140058563351182975712544201055689570936529671391849628866579098098226727322157104616550541008385527681941489730304733475224228339733850423585362462813889487738704980576141945266390713683406383617592277849024472362650577908043782383581637820212588371497967760206622500749690531161040333897582756711075811853616903130982228272715495912498177754766341573633644852991173357879393113899589174393185294406233035329000104032994940937944575525292145495776010114315710517290810517160314259048742287115689535850163015573220159708880176573914556440054692059373137519545594678730960869892557102908454526471088245828324845548934913023108639259242304668555655605068403387143899032738531833825550470734786520347469260335626192281055137730916297865836357718560465169860669051834024379701779327152532050510208081417938616654078333103669801765923722141760058004226747253591909231804896638355588477960349977134612948893831465072493606506595275473643823403391614074336538690857116205415578208748562167238830303191279960830926340930168488485434334855311847185140355183015299089349187859620004807703258422943733015623078820691831598562545530339606098006276204470280978345445463472787600849387325416178387019053984517175761475467815637049641319705591203081886567019062629183813614562704832592916721063298192295832203992736770866821296147518398308440003341895336407977133854216876988960387402117881832671968203394175703200155494389092956695258600600569568775604877722658335623202203006277664252316724245645376405293525962028848861622097749501547713230759288712407170141815662960393427058578937729698909226462912486722059940845921785499431261769980950587687163774938131584129221014360128822248757156608332790566094928478374494155548686882000882856418959217778879895297227525491031486024210809824551825901254228361078659525512127517605084612939342360857923582672349264395675092608287325329705803597248149777784320612698753728790583788351666457272315262550105388945694520304827553019278964588744341254032924874975293980989489535226829029691636788990831126415185919002002088000996227375065621796707289530753985513888313145259098827809310371488625037065116508629512969623326136718552664548901943953773282870730613283999465944928043671395921247106313911478594206033347208290792875964960162930888176314568300154985946438136023211050464781357565614044985387881158326723087402942803732297377096351261121930776645292868075536478514893072792218886988127558779701439845342196331825847631019585142001553274339873574401559050843291460237392155357910633745983551467751884217525341951608957235666654059884125734803819882723559254307500086547196934212569856256306688989281248146158123253952046055090960339568852084571807121184755906898867745843445527554768543565181694287615631248905268810516222258416127513874047461992274616584306372913653978682527360072363874382511343356190324303805519703529845553048280894440845625570539893448683959377704699383020771644740277764298998714091970287256875610848750420099867011218433499738807275181731701094507707228614276243070419908436484165920571952182494081542572675251067015859310360245559664198651071211795138135527460670323787857999879210926811063664575431936520216385459569149707218277649258209973599788037042478519825204092881931407230942240698633762376695636224927309610667339678648693004000541218348705975534908001155486926659133770617796122149639679314550141068728931885408991393080267445581981096567937353011882695020672292932027256483860071714281186336998826606539637122577057803683970147343922552138491835924176834730783421376373996283916369112996977853073029738865683025937658052027388934971441873571845888416174013733803020690075926136519195122056750837099429830408063673367979190035157552926924482553748786606464617491471905616097487314927874446481830819343488800294678886458124029533000057844775358168584662845395229323490769144007646560243945119995602476371819394995502173415521370898189502770100257274707861546306393021375054425691358683922604164977875607013399689245593168718000578312636948899035860714706611771816706922541631811390711313836646667684493993469183887186011014237216444678661444968551072065241867616886928075713041552601054692571686604521213655933619872918732972645749408572315799705930194736348453074922198816726763342986244552289013275950435181103863749555080396636452727595425828336118882067853234244801869832757251888186590849204635541162235835113697201058349718290966963097091980323919373272439933532374941124750916228302110467202399762440392643282298469857505675297663543153634620730706731019566035012784357085819148980667260417060456779613018216545594202558488673776275617702911942526522994594504337018688725434600457402517743244247414027735438573756949904489407963452629515074505741866041724758261980500168557122654034173679055284373413624773204386998765466287764770688660044642324499428152069293574408441104829992683859637764598608952728716629368184105000078034502843128041085021852182747547347758041152741608662560717795497748021585234415629539202655446921623486478371142305935579708087391138417389134501375801225895020218521738614805988267433650624485116058492734512100977882916648128139092015433596110362463355141421629754864077672819857566064324468806718180044586714570235115062941902765261279091533831056251489435687525153475944075944124851537354499770749961313276171062108727394719511698261210757443998753857915870686831840414723277556157168670711608341805932644770605908087917130381669173757047638649511502347710655314694037308346541314075850364167090280535263935198489257717248758338820912464686793548588293778028674968779794830020418507948392763785855881783871647654710095652594184305903983538187916091148848191926981122522391838243616076457283317914463306238511401912455787943152541536218048793590568320400795298776489536257198839266983998421273604929556963400628551869515022836705559567024705648080525443342595321846609414610125747414143999940165167498047843422674086685505358250177702500422142133462793608295697517961073624189852117688565723174676760851618859372616439404602519967576900348756382664691850690118163865353865350160457467875698399607448978087846521872942107601318265352436794966004411812558437652626075084215797552199457758104650243158601774703125900779386659496031495237446155234706717750221360752701546939419128913001845447801129584870321525357267574136404539841335795049448921902304302911932388283111700637447812107286264462336480821465101164714349977754110049394605601452413106575377098289196370104291447198978339403304865253162308452045956267732991985672527516529404977228580527844471349808555894212511250486752400387080200864816153200741929726362562645135612749052322977574266056806335376031018090716341976755137414904403578280048065687736001716966820129949276859994355252852147353999258139777214196366625522603633893780515795284342016557059831344495922486890816779188260263013731042993665087804173381780422501352487490354623541339390985752924002151269114037551857960711506463517143451529774829349380396760185552037671915048900228590988379947191879811156572512766082753293352311073267357425857353959210426072418439620823787675782937730597032794891933126371494134299394175241803241224329930490374681283552024715429613686291157001173089921045959873163352606774119105286121318927423338234540305116137355263685734587936896455834643076164877118831093692290735694076911951500467347441589841669512499068470382563968549919206092594902680565933462833086346375396447574621206959010932502487526505042688133043296175992556882564185128630325013423684791778756184241710248067949777748696618681290837933420163525062325387845758801856717016917659213553326659116350011852099630721297813415688121445511139368043478663656184949849341669948059895018604072915667006162819432036024421629359627502841273646335084790450809429710832050998015696464323159729529143583939439342636925247925423105247411465356388653308796021558881040692962071229452571033768665183693846216146800701329371205585047608468311354993526270739467756312100757643925510733304659540424532490149076647993269301089706758930384163826934043269809967734790429327268529554241092752592385019833658847810370739195838474918319487334681090929272964368964924706646896832844432221061274090688968136111931847007440858462881694206283764356297620944557858172748095017207101665414829703803495650619808221829257595087263607403292640706496940529308966596283699095653926447745664618303367820742219034484497821104191811252638931402702982040717422283197406328798418578600414091555368114442353475441612867117764663136116202106750707676671583808734397325314895736632988125413883607372479713501848614369039815114222537207408136589500459413465030555984101149521543530425587220598641668708763833095112325817439461912291964521545130683837296486275867855970319532265567475530298997308945526635577990895036056167280714409092078030882736354977524041730530070900247626459770352564755042017740010812121570843630470715399240174979683676610661543601208090656548519424320768613958457659068111238117892676115415981532662801271313759337595613085639501004087408654515352589764121427381137612144011921832447958836562343505194872749286394460564450965693956460809811813107762543233865636679393413016399865154635503985298060458498527084975796869420395318396568700685881698885050972465612681094692700801078705403936151530672652671872631468211154522189500372022920470348253634324292498813593420401378792618064927814014415722174971265112198767497073939266495308830575220684591990335232020405142583606994329708292511138098921870570298667923004834527115706360883202389851824898135165684865462801895691463883089230599981515658410944237269607591030038666978938479599259781768232183650089180603781423876306037517163645488514386702614434241507473306921935024944983047644918971433695694851396369371768102948221653962449608808683009720398728913634840500261985175468429957484215716519978433926897519581877568647204889852703932819995017436548627733566467785868691874387995791338143588658137234047406446421321134040191623119539993138327849981426974531121676323895001823963636688211994835093789044918809232965565679062347739693048606455569945073024341937258425049563026942833741176525845658767382058433262936329768316220999993215469779230375682711268799947866317842551632246958725448325669635860160563332682416258006090044424850616187164521119178262269925497940711900484096549056981119810879159003374622201042129739625166254252378558910496951618849864127060034931643443073059233774362350138715059635041796793261071539811720884852544451507689951328869416933573120885087878861704388996393383405927556503042119003475448845144120343090847295277013825901597347551077711623881232527857067899564007436346944491920912946163871730688219957150171215762785506311825268534011481162293271073404128050471892031365810931426880928777235516128977816453630147463425077966560250098760851465910315796498221990299872784170941604842100648663634074897303597880537320121600870034948693609051538328727313947912827165782641884595075834431173827644281570173782958284829164673932324410760987551063801797744538439634900485036609110044526918084145750615747728186459220448520858181580584343969475075836777556936812142349718738058780454328035635306432173878051096986130244368380183658550540842963049633155691138159628736681572701222784705276615298685283558521064611952377401530759073497286099418781859997118980396074982871154028846326244578784612104766278424312367437601141430700260833625273287440841547473035722046945194005809288054404618518448281378178679545565098881700816585961731728910735790679261304586429655848808629120588730706760123739643141675805260882450722632324300901970806044925648905082729864152675210161633201157725297841952185099814079755055013716496035852474288785043515591406565092044615397067028295794672067543621053089698355939231664643674411710337770344391545602579243313522685583909434317762716670045571547283976308064666908246821045335655454246312093115953615003174225408891420209919529075554315043478557834565951774848145222591527284155485823447075930557434395675260694513457522190701905837895641201611273851198583791362358383858367598552727981527302217620573992305160178712840696730490665356982710878644203619685087538624048261476600702540011948216510369052617393611221391802345372635658584528191282896905528234690059476381140854177794994436578477553709393164070353313780721470149940575685094815577001174858485232729034806979609989353977053188545948677560639785937105248057394421749241440667707647530123375016735360820930722737896257102973428109523380810855283071045823087083012360097075795384390722651703634340895724451233234736746582620462233111251751166848211792354331873668977733202425335229585545152339329501336534645368361277872797015070938129368407249787960549109700333930481964548567077841668866405465099187747687900664121613388371709008323148217481292970454934634164838517434175154582702638871363858532553018985271212559933623487579493791358300042009208595122474680338829179357190026538565477330622360593357751911702926344197346379064633669848233444630790351533547140179519403548432004452290408812389600028296178142303123651264565503945955459450177990785032389505045674502655249516141759969732606432537247514119285598635190869865433672485174109033710817907189937315080836048214238446638156729377584012513861864989887753956698447821773949848409959837865885948151548728219847293942029018745549481915155645092395244843387836185599074375334663270201209572185158602936198001624724854877379385613981737124625270511332132445473945002773830096437439627937762518907127232493028739841926610393721306499199078701418180104650750222708086225533695889090214325456822638081019068606530740434306001016289389541541850123641190226472726562767457372818058360471416831840656631181187074763088454689852418521405348781909001422007011807675028423839702522205090425441240330322393394872821236361302551277714218214926726794163987544325588892609562284203279653088967648531811403902195281288224367370467111619296267456404066158967118797382377417573056020469799642624906906895424459196862754138728034323064412077990142766066181625405021465338681541896495235440649314389643641278176601885219546351019845672390686719168461239259464740479991518666638757080568855593235098070736340829508579930785601983387950736312465157506479823388668104246619555846051004803864178128161472948121380868057253553675889837688975363852776127270186629816475394738892787183775666101560876804930006084613778661210771448472707662501021916763541127475335650412042923443560432411246566821370787574931681480575596350586307418745428190039657932365282652837076607646490336144689705689402441802020965508460233634616620930201970755122016753707158080640761716656201703411032401519222684703035972939449502700357755819242397257243406252358339536275877674653598924121152943528084430431832509306767087413853304654842394284672586714565961658415943659959885945065701976930948931805734344393087594617145775504630130838097287024182576245361312449630374154376740064405850940279951131047327485886035612235256110170968336484118097567515725340698945309342767185197468238737470517327958299343176936552980194242640884018534254646180847481718806313783887796651274419687846814645250208239712143596088526588706499376871053841244906710269011367558267465110429829122341179570153081460567190148991769004002216405514156022793814281377191559761609863673607779873599253455393744180991911840382317417629125316581834537142620291062806159876240697785508564951075421623196633003251153718699922646093640091824709102101726243545513685347367582914592596594727008132537605241316875923641068822140570509831429302712537587641152713309320132210393680472584869260045047264318912946924651258400254471903533715784724970967248318169834182794503817913932635054578096732856314174274522440383120088550602247930361036499488093726880289014067512582091738588140740107878373432026924454126774143833082695810761234034882676827198215140206226153521995559147253888649387454410539767837595743935911423335873869437836312316816957892822608490400159780757817267375436363705649936994179665092219591983100026617756903069551858874613232316184653901870795109488174653034661574770416044869859110031899491389577268806781284628699984822340122665208845768707294371456227712739279962678829508216722382519430754755262250190547178299545424439497722002828903187444259506728254168848910085402118272218116220127474746830133832324889460463542250736381319356739678498972057759903194326770828091246127574644898668622416949007261598842315600694098224664305350741878435096876378455508945524854923397366925265815864321412381973312665292399157938875967481371467763505176950090017502432103071131909413944159270864898809839378408641381200766159911276999383371708088760741261182025926393671177554558335179816395099752658018824858186028236015501804116043912690239725964939416359641105543441369272574275143218715038920920516886995877903531383660046209898323794419683042157181508790309497583669594419074732216622047759502977602860311806351247980004243371153505055585051854737674362167394023933277857952392233654656552204749193073460055509009010796100025439932160408894334470453564319882335260153592388922830893688549471241408616644642405815418591244382837339772771134476365483682422407897455875751328329586998032047166379749759716660857394148295091082140476744926197815273541668685556418896801256382177976552222300684869284220169476662845439106400117020768548559714107762436170265420032038639924632513946977250837392712787595286342108625372325593727519797781948054834392336213811088496961338425949789806057735117099443558992838349936564010553202303375749211070750774784240669029189083745131974788888300321261321151596519558126882702888379016561370961554212913517037636167760292299061334433168865867713507772598749106703896391521666465836962724939233086360221126958001619929387313400329733615189687954425045421132253013861350790416053916030434616859863054910467186222136482943947611433791873776210818414900063475311642455882244633835197911772123920839998626075961768950740739661232159997718516530034115373739562883149354794775588144783006778520901991333062584213033002655308844988858079641153115254489813381599114537967506092791401515849549063177247631319459828952406652691600514934469806767235860951256191280873171681106630098237463095992804935137338591430558869360420496633099253747091855058253506552426959427935412748976956208384628304021226543002411270315807465584706708836583754128803236747650953921840329529533008172387242279682670704654043346235273125035938686372190683961288838943992722484513194732152587923247322025328220142108598603034749506222108551833065451623849180348221516995863073442128304665802804743876813888751099422189618395136109049750117973005438556039934697017680877956796083642932353329137363498220915681655343087078052909970404501468916069230055319408991952577371798768874272604381044229446944127579751864911530198870764375195836319745197932576123825817275084540805288093430421707339776755462412547137483249374096909363281660771537992062280188564600860484872830860945769250312625983565313145761647466604270545354263983470389235085443136449824353666654196592153962498661266376768910088478216183210623548433027366176442186756735107616249428405196918097480145221680516364107869671947468964569673013045926106176316844676511218124710601274428795836690583152769719807444931986832928264626312266590928226658424521330934759815203013884672831664183521222386636642802991501893087170907483682633585143663867441492108538589400576704795939036446039847553388331722200292855338130061459995631388085177755596395897153690951681434327149591801343246316224537725624545604712482631361575014191807089084433030147523043581495549992173332502608784309203030038407648518074363120004712727298052781128925752065049350161211538492592631521075120898559738784193449070798760045466005898683478388639418082440003646122211102360570041629168963087865698912989357628288751697526785658613923219093736087731108604535994655541403887196286505550169086678440613553291314200008018008139358165500610536684186617239235239531001836053850114762951583349370432346083632104271889249413951125692200562582081664451553522259056510098090098991920040683792664482568745512318085036347252352273466930717308607730701895435462803836740662845106021378516004125859852467045083446333196556222397423868538751863874796442133044703338975321481521300060774830104553070125225298029207572200136505035785434006966853151120567005300737241754661984620289199689276869446203227107061344843342089737826590719103904019761346230013546447631076031741086890146815755424290208921060433610943823785781001226053622930606554494787863629865029167331977561117521697519837985212172176479082013557167585910890859616397329178293637822983303119022004191885659475685259292915061564155928012484807042183964379645467230574652071542700371008338174203588441403323667751310208982592114305565777914408650348200947173867667308270501630536527977342694565953521015394219645368091710496112307069009620322494148321815002898190322831881750890826414798232843571903228203592386728635043533375148182108144457349551228298893356287337273420491539944854345547332270056370220736700580692574693400902447218129326086166283435469224080334069721741571762828418516700090888468423599967280559443188181151693675753106607758400946773401945654030787694706381939278787249401739071012273921960469039057967900874452641917036714502793145033349785540060577791900364386500475835161509039843094969309588257851144825336974261521745753424150065890376979640992121416777236342788466589051634274673066531877000658922992809529933197197464056402447259552293456407522551221152999409373417763534105878021355270328935219079754326241644182654490339969540913092471827292885856481744239012859352536435471328698434158231346180717919829278802950068724839753754611272795394942229191801419073655799767407773950938484721608923235847463184556406885317311088007717271069266324270203714169494351152310597274512010802059019603752458319838701150600376519421013600882782743567890903456159960977636325980297247681349324544525619299361473862446570401835685340403036581492951589752602893546919366392638910841666091707310926825962699588373789204119562194506715374399451827103231068473858689034918394300699275180005772915585538956440562687340250204131494411630110989383359883009493686999035765637376492789591334279421481909139812584445001360954459143632635992166186289804935515718191861364254059784467294380347756423663459154796791600577893723138615903757984806087678558853888813324511782103247898000556214459555382656873709918928220035794666383003345894743955735976889140330265260541269450811842497658599632375318092593028575873916648863965596686382621880633937040447605179089479638298100589057737184709738946763405686916564833143245560899949099748725319278260434056850262623460190326820599013282587964328229018489423662363356097661904440758472004541271151807464195652579307826088572194271420466262675647561829855816244551385856691066659296734573843747279396411453927192731713917863010274467867782155801022579012249382446660936498143211319918663883242031070054383718536361738233242407659059739709905875681421996232879159358889754919879007936977395465982150723278920615709310696260684421765410510990536457182193395898106056449910832079700448031656832486176956862777093209205543374841790193577170836592970506115950067940168437281608658679098514422597578994060702944961149656886817920392392607870552813702073725958880781465125978807064154926399656904795566295416940073695185554963442847858819427439281820047732120301906729298616626802257793303480881024229159335714545368066852284075107890526306087840073074144909074720405120547002595278618508911337503438474669624791311149596826660297047132197897579906305148897271510847447680827710731775492621144087534818138189500304392071810103025373980754677206583430142095015235378520926938204605296713898930919639706352644890551093571810966458924749898514561151792597858212957021501013384128231045433877796996932306883179211617049559869129336992384584658996052743417734272831853851604217912973166562981706116157329230404679314969783010581329171172042912120769757106604184467487301007402457361282383992461626841928337157451846222418800319114136173575187316565896359420103171939898859676903738702187341727398790888128736828198946538594863216714626846991239934229590823291186392447578961895814501577198000245282949861857909607828761871131697110382210516176682970484748888847648861406643805650102686671944723197372298788297791697620207228958755256285205546565298152568280008671362690599804462676563854404280647191017230945500775583810703901019316402579287764594942872805101649677227599867551280890272659143529464443022189974343393543582898397682625268623337266971959007458876228115151860493402559545568774664049023769178096035242075372733874564881781573739110679754123068646516523625743415206058064033531209048010944220842261243804076935090099025005213498418292425172565239536672584338252504359037939636723734308109230021827565377058475826319145372377407625225878787616159195161382659953238975917682042228758991857309704742724794803594111990146826082394938628288378881517403950949938750655572882311842449345931194253085989749926250079981038331611344009063185928545270981668320408834130697589828854806183211773577437452806087839102970991638345167545116805874322449906575057148781207799107531268193206170358652758639805588982045479559676138242724350733331845934116269835559707744437791116481354071212791426321565563958740460027915842970853886419082629201464799321488174231222533798376959051060447281333716444874865970054054710868094637661471703512176078275572885626282369793167683834463927720470572502977248205006125505797897407444874259208647033222777859928981247063974044868059490732314571430905004552828191785953087198489167430651661853706275522501235128317977950702576065732574184208570231664895136071326641621177594999190699967443648678494365860702258720467738449202104586211819227860159478510037279721555043997838600630845889054876276054861310335035091506268536530148119640503816695189626377988050117772967376427654314578096424974218540086452855166746114404754348980531872495298772209292557144338845222206715311454797737388165455013875272003823001338104390098995125540232588334206146741055302794017329980090334692701837431252847763346377041973264982519932608484126041476032345593809209267328245347514006558007586517588102939042720135497145946424290011554008384052343610899326649656593293216238753219542801515946182820609811294381717126626719559914862257202433564267866877964073136858656599950218910474660696595600658143731312029045178925006423316509785881788362308385683637112225365642394900486575196757535776299469640665955463295776762031318630415184743019249510615397773747957501757388405935484455226941159273942991644800283351026880889810163098716985484675417295966292598900455255506149951952770595748212829249013817714760788911215763152987467419771687443780807940746237532590295741703305207679546138715619630029474033581494843756896089830309844974685658661527617343142726700112990815299243186311037933750859625298112945142859304195671278271899394157784502382036457161962713610678826267246036707036697868708055358869575340367474131839866272917918514803987325013096542194024253756534991004623916966559812557410285572847822279490792986307739497017860731942622149226633780150076253201262188513421370796255391725569026591608793888081138982268554384601011956714991112986666479428667907253922256008467413936769912454233648700830448280935651903486477744476698879591706346282132002354490728357037707129749917153304532650397546495789960992411722474582728863590600004767141083950454657500878312011808973668239580144801016249089192807236972326104452268990428320116200321047970322277079449444164078636156198668432007987183062145813967685248739042744390256211817317133679857754348659443761871199683698377319265634493513534099342189347011913877564897354994011523036136462628032137560928564058578284763192173331062673485894958357178926413218483654042762021628197764203425110653551987438407105293556016719128524153995269585722268240137512408958405491865275372460319091170656529181702469180457653203976257872083018944859485837801817680303386610481697576756603707840923770771828195865965419261289481643568417808579873126039312328011393115814805480229392487953940852088231192125590429635833112598002669372979352269568351362479814278337882402253003502388916807763897761773229947357068996578498035712319842557471295078757517511300443348338614950439125247547761408171631490309699628172339043013435227275908816869708960837986349143511085951181925083185755768930298312527425291291976772155839871169199431710332529342316138228874208797246466959464192092869624419451436929629833916791325110465467467454797307411804981288496031799054241157331993702494607796006302197669290502508327996331625070747067824119174589220825894961434605527392369770356506607018135728066800520494530876622555406987515771733928395404087725563229774628949314725147833682809515874012668041761133582123301589478777645692096642266210571079526124790980776758547731008489498069532926775501146715790163724511727295379942702365755789092632217310222526155087382796248961010786249921670833617282107082300914616759889100009462311841894354490620402140444779360709903576779427089865409424164986101023395852961272377909439046480424170744558670145915460206025603404690833292945438366684950249317320350968300844239939295046751584572810746012760729920451143719896087715041627824474769880297279800840694375808816844313746415744830621793877456090121123181527227197228704236945211896334122576209024689542627050873615604901904355011039354668277581867666215340476534642099152249294913527367746696731042054005762302911561525827237916032166149053035338871522072590773974183159637400010795505995310713779423256824248945095828024271048043989918366776968239490625589269011510410825208306269263586379464314687048451350597552765858521827181937829737722430309001658129517046910477992924629772170464531732063875512264700722567493655154106811403388023933750680531819118004153848618377102353741368665537674511278121590161462426481225136367775313540976595860452194776553936456430003740059394986683892477157243290585226796593340195271165018620226025588294903181519241248468223762061294255339230695937004972524309979348865276216360329786475796746287985719090859930804642758654194067813714835266232652666756960009697763686808800073003307539686603430923365543313515492010870065337571330335006816473371582920250862505259395212918567601897766906748731502128613675205110165600083759028612446881381631500303755875048669742367272185827704545380050171414327096764330476891861345491190559202518784702992875510003193293843970557601307780242377468555024392616805289238190789103003383209191675848942952406707073130989471008613906108599670828140093125824361207235957332168192403359203179283914014978305774774187920674660268900243627363596444597128070226364398140699385768007639475085570349579183574877160247646282106928976528765172105533400202896478382750479694130152015961232831733159253069249415621539081937328145564828564561961452712364658097833197808897460009431190974982935669643624397266402926676069946205284057676406558644331853432116862327542121576715760178233910391075625523397289075381527783956809051025035901832798890928390661659937974598246219998961868158562351803996243654829954076481829693861980012892121611948752525324849094345544260221885683939395728095913477714152094245949883513737231992621261126266714900883527669033100231480687153822930693372483262342494658000715335900370529565528324956816048042703672815412954251398730672536171026696373658713253904486613199110614510444477222315771985933121702534055626069292724871933209408002731689408083406997104185009929739917491655525265322105651117342440351130302217294138811527187717756384444102072676939272708747710242281229696554713446413249567675662331874764021419509963918505138472493636942164897619435943479861038254653006860181778716365362889248266650494467589309428673535949293623160530819706741021824872125278883148979474995138917716594239670377198390370940988663279094749872795030306148374484648308628647079779180877483137985614410999678765724100746580106306348969006379921463272691806574483486029554517487182717932098960634067149492757431346465559611341009596067720673184509086041555043273736778553542135650225659144305932771741349092927180183021079790129706525613113076684822131973615202410824129231292657702079932198625761275013542801591133440279015996469863699878712822931515447561477723097028718387560243281262521241018646280784176270991801259975451243533743266055209091926762850198820819565460275728792410060301931287538157921977866820249365782190420691930225599743012251920887192361241596258634893115610784939818867115499605100433639522027257114483422226713252394513005520660355605707974408747069598147562844735084091507784418346470693679649975112714540125473930759002419161181581889233859461845545340866971348325001057496733510580307420104848894337848631281649774155841486507124366006167534490495179048438693205716312088027908882111990757159611703807008864829273666709178742366320443811859667687227157792876954331982005682336159415120155132519547868615568996920913157028689656885912430161165112095720516416096345396201264724081655237508498784416145659765163605928200758367293146504534117817888599707187877230984061948625848200668417794607253866740590927981338383772968048125557926408748185565889918546558619994831877939475982286999677190738578192035678649178062284251542558908382898121660608873018474511895750571293349071928483377183527307958247570928940477298925313659399280718941585901405297064416821534034625598576028678715909469184633329614646277091011772837477057063247746930698207723926351383421501574890507046197986026241637780427739625809508019332223105274506676881827994432785845428022626141712212513542902502648077504114619272489525042711065029398365460571468876271866641395432646262237835982996908961254495821909009701656318312871673839728768951670602315991073080909854037095090372611370207993808818989216719828856040564125889160926138027929280156694702142429231342210849815756533529030617302763776079540226948202689156679084243594708519440121081673610644823488925245458347827398953292941322286170568375973132578486216967267772755568318816760418150151480568588918656169304072584371212518009405405241604459129073244762015113649152754795100202228982162819922740362131837695556884751159292300855388331154089152751089614511192360996434013415386889378342965143315388500734930520533904699329563644983069021103079797937694993128731008285054572235585319148742897562382681387642046084399632487056716875762400131033221329567959134301439390670491049612502890601295814479783680707796038825541018662690840452553291654894455921572395799624400459561167418021592824276570340574526997747930005588453428482626126346757428643542455373645666914945165228447924081854038978572662890341557363266647131338522070140012044349128314378983137684367422160463819097506332377751861112029623718206296604747768878243475202888802953666451179933985712001699139856267996935140227326057294045069976522215653267674473401484947053379677718108735598859972903066921858441231347483805139942628243134925054966976937731195650959519086104174346474065725810939544252303962053018884397824733828765728556000079606069658611875319001657971737271433337234384113469792815508718247593816327946223293410019772522740248172697905517480095688431439557161358831442938665350750595872971460668075448256439012094810331633335468520344134897401572300094191541676853674493064244809944375974545330453886286691411922323117901099161923614456075520212386803306881639127457831221259056581057198290144196657193024512175832048453631948446093201392061177793981176458777783977846589827557188092701274222098130924727347917795676312928530505563251186010985229451374798254136454054106940828383806567768480673127322660335941462908502828267834057230198491099243234642617095773482487731595716774751911446968220441647005239679363468949422415965649390250903995681567717791907917234423480379517842264909343574600352773440239576067449081833623978936554141034409756179071037961520912693018004650355349890399055143711750962207026829432182264285169395081197963378543448782918759746591351396081760937820816880739523807150866510826507468623895084584647927820706063070486168566323060192094998728488010357634431253336131529227912663601852506559817861026511152595292247463615798300883127057234525098667181475068514953072474848798668145666490386017191101521034585094505228306683929672623987192990679274136802533214858999780104940859049869036057250053765593696495772612140157823039550258277008808284022751447769895906280864612660341308681006014914442567259918249642695213209355598640749130510170337289736111136605126327843074115617202903539011599185594724981715025201060153268750438581476674970053532402940147207247377612407531029884214287191628637048890333665731841420551685693683305241409074846641035026107622129817234013936357800093197060774472208215175257810566250408786800149896984652101595168960125500471796468861977144168270921161453108814821082266767805943620887062226113900879217403402263503000638045262633736539294136265682871283775664070288239502252843104694389242162294915930591761045408886814125224787050793074091523061097423585011785638884523115999034191372119269138658259073301796545093613440749752837563419414845907471597661354240520657526764795302458262240753199559785992484160067155982993350058778996703829514910430305188637608548754207302994914593512348621239789440396099887356597393330313331484966214655726419885879978825482520438579383635960578930734438179347680898848251990552918207466329040307236327555285123124730704996626080398696252115974265934778558595108917724677404668900359943855426888446524465659098617925646345991092102463131951809201370053421619650158658796388509981069724451407336966541779557367724907536900881795396447334725126156448775879150932022796352998585056728712153960161585156632151584429013607909612053482302100490902317814358339799655854223683773372082498077930409285543764108585524538182244727119071958909611800958841261676953385578425656185372963793026466988533916390899324744772646815031115414980646482817866223558817768528937411893705907186251482437393262170235065510483404582717759239289828248935519761504981533126827316006798845116279021212592113361911838584901612571594278638810361952298951134999831971559874442542241411133872432933538447079708031246000406524497074739219166333946258134228770317522812057378774586863828933485813003151366742917135472620822136001463766283147477608065738681720326757188744189105148398293529716785113897853114879402704594807471092353572464596442620306191346377364298900567491689572808255527366869712915599203619060887934730645017112409055657515145414139114572591214270618711454535418735821818756113094317619757839260406046674082081259296991551961497960714529648265367502036124319797063511721844045633787604905365984030386747763416863805790400128279483771617891446841668426825287230671006227234411920947610735429506509465407644171859301059144584387651625154629684750755163314655136217436332767667374265935580152002525128943769712486874890655627645658912081080159947499108249967785662259763817020485604805446641255168402923619071949108819190148200962061966595303121461205458753124236851263789296665484092787035165635484809762555842839456094701362099071950136308689991822288619116054617091496931292150831570509676987117823272616301385995771321541858649541483129818570534600093962265980689793232760575394459594229018651573680750161341793087936867715242679349314855118650130778489564176132679873341640154190180751743464999049011259109622834087610457856696258916527775646199894889210676289878514548157309238645871690242514632339572913359912184643481563333551149783703860367237636134386482102918497276404583640940572187633995149100623501739657750203999058287424802325319579906415696726797025045508219024980795399859138869576484132096929520495549362947518420552175384328448111196701451780205780086014820306156033146284267715146764056697589454575747441962077772053680270847146566727941204341912902359155940339123348688038874291446485054323805062955606311683681004387149044559551044906206539947935186062577345528385367408146302426080194584924716218750815446566297177358235728159846217294536964335989407125480288881918902460368496613392797733548327753768321126136867053160468937601065301719729891428901687254022713385221737715238602248151382038383227800901951716414020400202822160401395235944940070504375972704108371623370492260908591073671582952473595635292732764515340501027560324030178474301483248400305146091748450268142832845422914766860538220541941653046277583252496144560670199456607779401179867334359650267014160033980920338731547706076007499378199224811560918406460503471840889302438108422732800235340386695048017889385220533206815009721638025764299660540128036980236904281514886346670919148958897304734827592032228302443276407288381577691946499720315733752696962248401578796305279000641271927519723074954509386392180483028137472630661166238180868883308219778834808271790049834614489546070499692832001772763581495464534260205886937895772621330452579781775529453686988699912854943890970211017142755748546710846196821844095986269287491905530101363634823904027207509083877583394009541342986364175688819563362660698217200113212491252678205580058774626686661353619289064111951711882085647980351150997848101759376865359596406063551963390357417610230428900940959491213710506475062167751571343286058056210817649219503248838694396032824307674475260900132972050898157643069429768962308934524618607853731570576234993723570265140130989998391191468632712573637068807364471991391797937911929518649214474455980987379723764719892857075145892979677659577172569722898822311564510323967401223324520406292210902506798585382042189580785557241806735057496414972754151149616229965652183344504707173458204353412204330365464424830863718416016777397177830132797684969717804724169822544339194093585210036896113319809109569504359951591123630301452552747522470378916575098913234487308014199802562623112902509812693679953702442114459010107456193804121286742536845066025917113537532513301741463911191808301481115049669492041896768153163340828831294197651524362009623217251205716896204464443576254254884884164881186402752526417942849747545471634154945269013142508055411930568663268148552703317197217768303695376134158863220592649288737348044337087711005182601342624433857410071536194929766177080458567229319159950500632382656365876980115693183323299560893774302886712830204347745055728200378587716943840761052093923834436254201388692812679762148625485596901345462104688473369793182438909867886843013253785867797470937699714691433074864661229356206264122369703064704851200850569190638607306459004622748791065172244735300482770915823845234240902270126612299556032853249678865938966542234817914002369005312159873146402106553832013797129438629820032017594480874001602979266302994185617960063228470367242837272237120119711969404121057840339207304081069476032366650980062993785198765570753064928392418310168602866987474728505983249154825760424500592997281546039163113672594568566100218087420490316317751564153500808894260822432111272173532931283015922972886793250288426414572930364657247614543449765738795657734048833473531729302249671551818018131837248900998344627660419811501766007738211813302320701599794605195521191377986871545800898934174618706213890306708449641555586154043576210695266667388633657630508495186677437798087021224441231608478392546821234704423222557938875298033855305938203883411566233313608795664613843027257201969531292387546503220631202965185721947561525458931446098966498118773423452261179586275395312907434449415669837241560266504862643779240610310714935379855394154694645589294385436894066232264560137560905566825361231831777224774594080637464604651980897984709357590397024270576088359528071100094602036957375502244908505298462160959648001521530988168972485225817563323348121227149342147323820233654831040209793688717240846422249480142171791140149998866156924825684109860224002013540716626681988319329603597402528482141182721684300089544360638670488413271696126183800334119304070421694580463213075524415145671889181315851568153149867745598480550690566158520266449363493839251335284112739796294187742283176492997348266432056342819206039587318787555002785777758287105393578993611548656324597566017436726303111180491591627016598537642711217922550693158078337205786149366481269969411424482314931588779228784691138580928337269930047459100161129254297940647389174565245802427675828382475483880503634730608350345287361848085429385869336349190677584853678208613629129796442081148313178150365760145813755780755172801200123459703842470441912491859960508442757824346054640722307449100719306082131690142967233628910597256285076973484994204483985911358227668877404237199046549751144116440302902386187585546225314035473681972142423087249892182373463355261739753422377609723409686334043786084821393309745665758872602094479197653348402286189728989335214873626269727702368669373937762777945056372288793863222690683772896826066213001656873448004102901829680024777345644905462832791478914652472493691094389751724169104075594370343967931180152023052342304439442180657043159478690267905556063074558798949552195745033292806503788726494569248010322147012131319059704485705588165705915731030607548960248169338448121706647893669775519487876074799892713725076918456374742078789723676093450496038803596822820963011509302342041737864781068243233559502447747187129593263175529797487397538790580975195238509154902016471106553479545133807444033632437554791932919747469195435616672062425164295680013533594876414372916063855701498893601547780839398005335078698991724562736509087870705272651292089183221816831763139746613553907688644421888032709521599777645879077505699191357561402539507900482712273553563104273181580716544244398826618315823844272216214942622905024560409063358202697276831210751128460763398264752656068603849522951564201343575329769074761008776925255659125749169169170241099456650460915631686840334721027666826823411285990516398629235553751727211250611092881168444711006839064257431529510036348876804484486668327150203246238914668538695933084431502934897845507271143555724740273167775707118461011714899193265577890118570023851414610662652400890627129513226012092344390622726245484932790864691437030762788331296384610587918867563248145689114867695129513824280282567030689753809535625133571664788141114848564261751805130013718214456949279827903281214480450349997660378605898787105959672702368055894451458697060538127858766915136411959693259087345679071469290925250116189550573665683829010874126768743314059330497465855737144711240157766418457999334992756972153224222594539772286710030003981497958708263419918869513366327048172959395305979398201902117079116905777535923630470520824433845809474576787312790774066568439585960878352714952965891113026867834976456097528144165743032344451208820188626191415464737470595200003639982523929562293185404528405386777756330867202864189713755437858066006660869254117382474264740520987133164161524538249187598534303899230888069585240996749557022306258090227339919540057883709094957723140169654404847000463379515700494009153844459708849008603409558759560858155454743218836553281986325268118634391048891180773818799173437141128362931353764167919316018098014205932200650534918124384840908606747180419154379982658971953579358663135381599829966641448491705921575241539976412363340677858802988845254484643774656605131185320854110935878912496545807844574079298169935391544758245908146095585495806910525502591072676115420393279202837439324142641399788099757104557061996853242183054772093117941349067429000469130632548195501573341481758848936309621673947399120736931170647466435269789573098965033059826416981702322793506268929457180821442311680770061133438371112530176287283700984169465334718112393759169734990036585825678663403727762563553031045490218464868432108248555594260387765818616313422880430381346164653843927356078416606289618601344888068284627996259473921042009449478429849073391672661314335645856564248512079436113127841983773581039401658172797849357876917414906824436890490422988178140692658842716624452784559175485886453497942421433698846018201232007115977888540748562806101133983602690252482902040996698405084704003794698735180810204278846107183612782280598000177035828300871412878686225953371805502593087917408902871222022045029095631654801422028414739654783277337773147207904490544525011432039788616267031384649968714877087850062442130716000730782801236789880781116127864825604126511261872033363859593790880179279906439140278775260387404177763078873431660294408296469365140458585021725528150799138147513505412510939857022986756238298552724564491721855299312538809063049428970132584197707074103079843630307721732603283942541900566423846091156749508339552422535986430745368757610816821707406852169461694857689869726082865892258617158241524345525899193042711756131030457906267175644938721619180667762635761749479895536081550015235010620511155912923118164696785454117152186884502652907792978428398134445195813201354813585384373190490328428117798554611997366186520657089776277344713668905015944118234562440686840796141540323830578722689034712618923221892316080349322204896274059866402395798837529111876926096337525703247730031581807538189424586791374072283095124683552199033905156146540652100369712032898436199886872281555812448223284754166211073003553028862226787465472920609062471747449502797147692050100147325154468972890134767433689538379535063697335495492729532669125595745458497645683347626477159962223865570400610427493129316319607628671983932812749884842949614554182926713613716936508048070583662519194876807877731451877903209961586615334716173937548004279970081852320106314781073286663655277790712844669588825189205611778696593849697600858550985936993630292202620778244388954493316680456362877088244280138572421099146279873743528155450082530056772182291952182376451779326147763399892181759920334320124647298646485478454230026209172126979818767182785688674566696224383106045645023456617291616090045227784893553923045956508910153678978805133758143063216264307321050434839026352249891464594840452825028456284176607924913102250331092855125919126877087447997198318540950683397634379231661400162021153153202702470766450963451097555375307978145204050067438128340322279458182187373310607343766490734602595522136141395247100877928405387569807040825954536360535317637590816636658952400930817244720425089961899884576275510035659491669683406491641471298369407688205732619005560743149869894133120719236715500771055062547952104936208701430126626544534970139092103601041059756605483988279143867861555050914059951700085893731334857116926537751523386877220000024835466318591214431124435683157327068138888899398386654199980936148896372620041566674453723304628715309312111559397448613478722918562746838633287820237680510275540780227035425483377963996104863729850800171576481939086328828390916982834060964814482090522568153857546641789966644401589511376427013390047742237862993618118702380202349846386037324848327032935398060700860830153275413301800829308373507799118861153688367292171535747291374537353071259880986810934979502700614499379288991191762405377084248073597430981120346484430044238598177958866851330026003791314810281940951551298579303727231441556945455792426953224419209028655676600759229357707563203506649302797380939532544231942248880310087531862627455847071559751851262432634186083807656483428042814426378229212160191217563378961097840404821662834736333931124175861487187729518436228045561292083725261469621410647942412796488604461327167163389352033854114233538095659980671942527632466613858583801351863527674933778398510367471766431877881016827176592707167035468683256385380197767345053134647670646210479166023587495556489149351296342177106547983920772792708863401389276914130524957073468364549511508776171351757556399723313043897756650645229727614825772402974859738271958590376703698886110589245696342012834448375596975110499214942975403160406992920486138121714510327305445153312482523743178262251376473964761415648672108197092236270417199413473987608254467617423020607745059015569658351314492649503873631499606758287044201663272342119000038335484152887140053540944480667001083882813269316283315761037794992810422092241917675001605990625909747155837962013415035196167414757760991336066379156024412937270720695504577686724918877525902017800437402520552379604615603901258508459231884025791953849312211010194825750254887505321197260442460678248319641650246792555717095232486527493014188451347854514389648959823600484102825151677400851744761354922125148556002706466218083005715106325331097972600174905145433499654180957083149542207113131308312232020545701744858417302070910435272986982811615733395486598497112030784471776676924814761709724107949347849830564481077082606905100131188180321969958647767432963198832927914370815064414544241933718491141666391206469709084118880012673863587350985438698859888075084673081125640346897723414718001319376729309022046919019594291251788985047734504210146543011807879796357523371878818972642041047101706769738641913161215183128973487347487461002852197666844934537087236771105195492431478837795462753168747326543235152863646279980761511752591370189625159278959426287929861922076559904277339104395236939435756429409675080092733583793558434498252761008793649865573562783154669299844390122427075527497471637956402629456301445682470648022565981836018842316512360584657820107437082772671359900317475751026906593671185607418103469605873478770583790545079548984131168028874587667873680727870018951517313655355046390533821357834773510790341677339127623872915273416085256691833000838335480748730801878060508359702050957168680383218593680915352769549464633306303884450754955390659514956205664590977751641044294808607775325875651400066007520434014420523085344016760109469989977655283833787547908204276476476541225929886482429243253265422651690651682416052390582699623887238628774433338936685071630522096228568464897088290777619529051986505774077536346851119823081083742653524422726592180476586278247955745665850592748171984977151168674454686083017423655886979945655567515584971547310503581134103986343259595207087363151184920328229627637471621808825832576238746587390526916304804210876781653309759203072121465672299278433341990329679203165971757446373020731189745994622047187774024150291918824610172099073725302253942487422482470193898907682707074565804553671669669129432252906849929373281681191258443505381799992285216641047740624388814579406067854496137551716829187175940593905972373442972028288377928031529096475646871371153493683722967454544099932541384686749960346022576927369926562859883948037142518709302287250788516395115418531645493856791902637655934396110437361367128275319083986166215431335667955273433582493939248209076048645917788882163783268637572778936831513846152901369474508572958809213765373479084486184544375651754652180453623431490916570084840362637638964068283145699189760950921171285996637943593924066250742248052352578679163854553811330576677023420187371347305887438116380309831454887941257923537195699551093945382927014148775326280896937977062583109462465887152292917236547041230972608795010868024975794229189140855859438544590717128293854103697134420937479579385030740878936022608766181056854068424516173578890021000623760986207986899353106727180540188005640604248925631684606972594200141842975970023137131202090599607825031187457405721385168872506195094291558729948520525437866900062437810725947141402534596498162415098497891384994586017982647223285609421802527559671731382694107082919358964005308256071580818482156070714308821645591789726261145889096795640992707974937230911721811887468573219067894030018817442008520346277849511560098196166361924795027622822152196511604111046273469756622011707395284564831767292463638834970899726518015621258232767419855775947292945975901438193819426554879546207335495381469172065495567253976495206860935282730893873104073686667390747405489222144892966843457929406605915649531131201297363036093710714003899623716607565403153032033641776284863874717139735478599484479649538015419128455531373818702277256380770019453294258138327502097267506685561670716352783185774837832022181223327531250547494809825701061009485819986182192195348566118640730831368956331507179842924057675171746161805666935991046230679974844965413700275209550944888427118780655511627467446869516194287887204356287352028235054420599782840327135094476236717861989736948298782510945629429775063838642447079552347798752001764011387706244400858502476919438062588300172385353435187631600354334462685581804589190396548439482395317552366949175050835736980008797329687444213173075472530625996914705072616247044067244793452302064363003249984239783338035482898372998728162935729662134653119718765630077689800665295063782849948297371976214472243261957468434503701698784263221736855465975801474639246523789815488157420314372958463316646201764135524416657985721031918625187947991794304194535580685860260932889525305875714603335674994898949928656524341637863626506933430751751343161439176624279628869735249240188564817395789838159496753195718511560996822799815128581223506263858976809877635382865082966970451175448923258436009068167676166993115137998095288626096991772888349758523210971010757183331692448972944075318786563093787424121824089156868239983765203114829929378437960966754546625409217489979910623813792943765272991508387227799125729844246957175627847116111980678312273343665264701796678526416772168732382892279832286838282260756204107209082685333755405156185810551983549254891171680254991956348377964716196644860414859603508572364068151610597535709959608306906189166040698725811995782255005655818471987991589998884393845014624312064945499396284723440190197072415154692857560266785159685693227842212310134923954152937108975275192641930587788075176315771732928921498156074116617011133547710907512100959283266095701010895347480586631425782223245601809360021666242666177305495654597834898767981507315285644435870901668461648441675500052957178117001451884191338877919294417291460930818934351050726094900995626262829061011064601068178949280277178061504955090930359123928206320097102032280937581431232730170170644486066531844572058426961800698847445628578592653727150250836797109488311238731001000906215675519733660825505440167310258294942960545338894140080363431801400984381592190626562138874118497807381206636431174197739417852166373680718983439010266474009311195663647873833114243372052737557467425609444252896899437139498472480863615797295347202005577415933136305378004796706009826663589166160830845094161350146412191148040773342134809071428329530009170113919592209947040287848594304014341809923312535572571564719855868442382974006974948119560663532145792919007710303840146588150661677553133529800022893952298414952621142588289339987638667596752394315560147837273774019939516919827094403320884705476857994197336454065722570916269801397102032892251666875204616139314822331777840756037868098638092856853345464152929265723345032316205819240095122048718701438101051933615523445639531365544290421565593765262319426363000311193729728964181078192195642901957965918230689151964676698898743917339695825571634668517149991357922658644934439918821682564446140446667773351312898522651848756833608042155443312290576144167130333144642631393083673346294166738717850136144004801230648476387603226534555230872218715359266221955734119671996385181343429603570191671688896212211482169453020097794060638647623767229380335773958620140562376669359885513545844145909269423485638981881422467287860405293624123928169426886467559723950339137060765655523234477389203222784834950016033628194146290102707947687088945976319265160216161479369646993856753895388483158139719123413433920679558562261630024410896452024671563547889497995083712160690061654171565563746444625175076509630782125198904758872298409263882119689292750961450346775368469841410171968874712649852676818601550785560751790811403108754495141450688983872622659329180363957731305336102631226812261469771789890010036289523583458417449707022447260912719193490022824324104545389590292122861650538037743752074981247387775627065076416572037517603527037437282535795499157715992978873411270788269270079281577020982171101524557706103148719129921216341544163421091885317968310074512461342011569231083960789772083189896339532868604929672783074526670733558813180009985195415814889512449750881074791072674945652726122940415558156510236286057475291860916715526619452270788691932474540770386288592008696908506275141696579252135942854868392893257286474211355316618974768367624882184331118979692293390618511020193565455173959704926196395339325043752120613973593296114748789442360084339399598800201002747692146419867447645204820744795296406244505043336146288655441368227204456325592967714915785840559846842890020956881985787769571126528451567233846391507434999066144546742040421340162383836923830940507578102669659577114041796624832398718486353262649045203723967232905787022481049533254792238794395098151585648393510411119826751966223830885664383249621051511948391846323795083110986018819936289188109533944861595606584274247044466559013115980102667183448635407910313704341754099006466010899879250500182676757444794703601454563527273160275199887425157487999678332445189381773315992617824754276363866534470761950091037634656238149567107215333446438895858527776203064697915971396829269870263169464788360950563770257508844136501176817501855437807614318075849067318565142585317619894787813298154863712501922897683269425907355213774401320643195295191727416995773465576327571025920568442121659121436965082838372472601660459106139038131290297046798016822671233945500761773856229224777784346684273116436057471867012812921034413828709819930499104183265476272787843418484797778203150951829967881003996547001211233372704284416343682700316597535347734404861617926000815697632593556251637657510360777721907717124660515146960854787451250939016997904694106573466340284360723625715940413269770123366982395003953027803937825684689705993426297514652612360008628500539628229192449254734078964464306791133946840660102947540150413730082519510826679981602215488878260498228229460082909995865439165392995390931340521624399963548366519122225593892494675188285291830426577380719557883982864261076135323106812242606920938296396727053925720259288647662228799865246650363694821827026521318297747000654085573824743050315034618293982300402734912075037858612494108821558117422842218100396023191690389780511222335984080820980703890886437682330845293954184516655448186757020516533309705418730632598806848910060713688330136510531263889426973943143470642839333074926481713370654583050792323536987761185843947429049340716532469399333696595238862175249905053096593630372804924761699541595093365750880321803183457972256227594239968577018057806334722771303135498771774917406775391068508082889782834603309266020728041814372384174897142342208768822756348834779535754291734407228983999875895498466224450362590957547233394021671616404766613542395853838578042158922971342387215937835949565984911993012958231623869134574483556741261182868884661296329703602495569546078725086817680305350368163996546831094919782614510654946216873328097824626386040532713416198762479353436925691039438904145164368409010795019241477375041127821871952292656058266675393011813808186133506439751777827067658657544310480559984423811701487527636993144288267069694205326890188094943004298600979640756649301533182493029178075817260777853091907158361695069596608427092094333352173863433873311657822550207630000362298916703935691722651994608535232483456379284453710961004017606173814393231851722149901515182662704912032899591993741242382025942837069143638345541569260503204114190003143306834214021463176813847099844919143358771789743963931209454854441781587644511035266742170169246690916871557036583877265466667328090122224428845637787916539790670378492442248258683149972552383338869186256862679234738610543519768911794219062860270282216834567009890749261268426598930481724847837487900567153193617990781677723697055799432511738804917688492433237640944688600745500892017848487759468630373925501759765854792491558252319716089793759989689239565579229145489458649161322036544234106699438697746425540192225680750089264610959798909024946162040890574066547135149325153214309172739773278733088528662420527077840930802401160031286953618231707675537227099645122424854623881632633752757969769902940113159753986178200817712970073696258538161985935957369074940605286031304354325487816726563098849735259564024057426161918445974739229438779270119030267151471583806193495145480592551045987472741912427487520822137140883187964257325137236772180514368680833965475641095262148371136852977517726835935986598873091199953060390727576043701259239308638186166239808614070171844698589045675554865839052439770296290393261613221096092504466144876706934234490437522505705207241212768516750263495144814242355989710193866101732499302021079017711849895258964326826462873755046238062127592687796183405644540109542892377269671212902466255553667313137957605263139834646059610504064253485578502130410704285288610492244103551022590863198515663164267348603240689810629795695848194717615630031848184328542348048184334643558451606994985634205201565266983733667509904370396877889810383877218157165163361246267987872141846488792762437375366563155874873176553642067022998468071210598337380521034589621418690088548673443623557096086651204274945920342937835093087852128036784794217458424894045851506867063839139524912066847612177196120133297996511088016756771698841672300762410314770817130129336332890504750337286521755465973318397363469746304462149395904436766789236489142604558614318090976848230007787535429802290620241495140778476036010725316681212063417061684247607949926247331372416551163619842142356697370013653350730081584420012183790972758096957351263011816130793769330774131636641738890649925778402953064310030098422462622595683388123845353865944689226469668657789704360464368673375758940424603462427046799175866611034466803657350469864803000563858409142149816653759773833862117205248726200089356547092646118699193287585983459928437757683748272674886663908963367006904498297900299109691737854590881648963098315204648522868735582397813214184165274784757470304884932699577831315654590699807221609818193020425136581919718579815350684643458390449985973360187315736818243200626869783826651533800305955378172470249859971835025408395487799512784568841821704116765462956879166276094704702014161961975452396585980252855401419256566330526721342627368232550487600176710837834855861203198750081772260245556957618295005653067998345490843020337989680391205738245279029863891311118257711775951334181450704520489772471001234317196412019816510501764306546026954749952163325046971683581105578043780780009677203601054691664566527343816860475632302550004004739169200990364719975861512517884360715061548185826550629051455107912309768774384655053623221390139366433950009750645403200757465455526504012560552506291214587734331641122368209199481679143474762966018504779637471630208438304099171686994200503101523878056646568516402424026928134636372800150581710564123195092956638276467678825751284148893220371749385463036242113812793214863198701930883626747325017629721843339488535250004427251283297918209021469205516757394351700897409157002804897000216373854685123778425518684554824649952764109126120502269453623627352336668484937800338388922999266344653946073948241435042152493298147067299967240186450483437207576540869827109464620383110343744941368079253987232021902960212970220684581033909173318359946179423763370635127962903589146130002734713049263045576488947464606908190957821573028322365439852116930707679048250331337228299289330279023524485146287430265341312864395596416380327604339798788966652376515099992808765093547742812189824825520383570917079434691358287195588393810494586797241125393110865301849188644483771361934451737955017739021118790080496894336947176305940051797209202946752679253860741852609997041596095528237324638537699968421058435703658982771438847416836287268891204933623711388233892060502969975734041883781952409058217646033380567261054984202519316756186013472238105037754051046482563560834535694730552744001975202602381633663959339153476462946748502142019992479979480407630471703378241695400047329429030087648605492597501959078066042046454028256845583386008489997256115353555972469757766147663832246526844785222902432418336310212067057652888698070045019535608115184976254737939447034652160767242971845481961829784659256648191876248313528906177335859748850801382774811871300592812596024652596415715304818844065299244792296200679752466912559496953050142150545718907788838499741441797726470397062437234649110289738662770775446436263185599189481140864514007576157274339001351623016642590944177635257441079927144052993958744408186204861088140139102381508990841677002439830356141899958638253578598995058357869276074104002662306348967104174056512058868186731923692096907840012392305053181065458283550976948477179399172811175528271465838453581456710473021305296078555708561971701663355416619776765222700229565294272809854130623145302584847579049137562762302024965487904871888579801472781914009432996246722016989173154414525202321435903924165717448624588267933187632629872477171970520170869243186106203386916498592364724905498326383760713963342160288545209691584642346438705898879723311359539055844889398761351395635682917215180200829327256434314701743155450514249682552191259346779876336005778275541731462157883887996207240891907455781361513580017703159497110700047440997750714149932763850058639827837301282806137467552839671214583450672021725026021890718520499553386890740922309439559491328692492961321443856198468050942147157655484434835225204843778777838038422012432365923457312256122773608384112395017107675334570138314325276758728209817930975336310469505910925610277948484904739566523068339716100589268736186352794961740122341247185614587631769574789448114609957723245696691225997480932307219005246414906034830843437852663801649504905968992200610695142044381512639145880735106645912217117438251536016116825612910636969479964628258003183560970250527107023179363934036606271718412842261771055410244327172856645952602789937988823135273154428224245453898302696802312672456881425280490362401329653306677537938427864294769420072431074145416747894148913344566121371502712935525031335239973513536344001517720725963703548731548255621133021477025777838623716767397301453475637398478350191651651409400077124691819477104631206700204597707304752131076114368659260161074822184633087311043769979902186497883231614902092504256326926341178031454027342948372827982704155318636160599549988658032462038961618730454643887548644972502564329215596740729297873460962770107565660673080216708070283279482476062971472605650820728357624767625746429167573366689881934171158634600609235549424702622868703806045611245728367134303106778700978393935819695373530967768643506140391074197836429296258694314017543560566862465265206528727861833466406656778921572498179985723907477501307707935009500391042426214192994179137387275850733993381550956667014465174639401183319952316945357354276734567385014635576094219050796304655311198068821672068369550406118070425138560892177073348280381475740779611525352530030621573664815714821238305196911146941409629331320473337914085430850416060179563064585565763086181246203758930231243684650323393319221685528761138292739534172889551908840128135350087367980437189247919698045504081212699040113385113644593938287879594604517489097938764052662356704536602027617809573871096139639684653455996919626740687197634907293726357475969306093089922605733527303473127755125273537152044926209700160126854189292133433670659382925756816166233447370738519320731695130609790018482349574528798342559405256268338889003189202969308377433476860084559321782828357019803483527395291787286797539197629926767882075447595291680499520616761554751577694626170913720598139981012858154989696842143538301783418135824067574032399647998129728855971477718694498353513540144449967627407122613214356450314461819122759740994676080204257549314605674684847572811454411210372447287402769548092875303775565201818572262205410639231076426544307946953161613365020043670081116405339676402817817681524369861815832556546920540561123799092540768270227771385967228012574191818480064067652549634709281880000439244931359097405184685306700611966541446575045486313085006388662838007371830661654017014590408197915512761752270713401433420152180303035477015470152144681023397356811537750100407962167504857207186867631872420839737220554602479411933039329139053530123615017786058726942547855147606631172821823463263166930519457128418679745845781505802562777461799532909688581273461658289028516786460409389365218345909025889792873021795206049706922156077103433538543634724031873835886032770494175683322591335595047932641512340735152059020041646248337118062503886191839343212412438268899935666677661876431162368709056461898808552367287288808086469099080072681776438218095648154470626745172288496637788616120586168516983960008075137157463110830120381696753264905210403082484366148075693435458163979105090673564621420739557190195055991362469885175006049175344110333679065011564717488998398750992643620873384312794428402450076333510106414927824838187122748019774870775246901146783408361468065666257607694598863777566761444675568138511721660100952809246745280727471232022636999833091701604973140652080189030198016241398548253932945777208068906387188266235732225739366505005392328051913526964312057682408859576876676930508319478633456694773605208392288952740110225111633224361747163609219632276042964929596096926043505593083053253429476288688677722782239142207419788531986787915411791309284034811640425757398955599438696531684774066161324618031437275209791411544106755576035718880077163304355023802943499158937790047281354659547255303492717780376594866839601850766919950370824406881552284591651911981274606259855728219287493835608167466736692143869559142014581413745261394683371942688797876286307208972339803674126512927451052416493670283606565856618899410592640570694502742960127298655696985922883608173194078811275508196598739134225976210043570107299536545673190632566482263866678579150657061486110058111552281955820981086305152600106826340476411908034440071791963523373081519661196142758748804167963878216960299726484195180396127770392605407066245542376999055510816806170116886779422679663156368786269424557964905774297541326984110163318188990046712340352529361146237747142361571868728403591726176767014134023723290403085821633627882310292368715066529273029899329409511591056170108092338563855258311343202380847645374042813386405465853342465445121094329316188933900092701533286927263940373304398583524505908998634198265073242383244207810906198290911515791944807159090057775542346060593707501266382004347344039654553650381727956646373087120132510773750305766790435061901527706289457919345780650529048753013416037840847890209548331753184950430606792998596867462428674639590413845990787851976740735176866709466401967419057775598748512257999649018453838336575533798500168018977807437424085426719742274298796386068039629458768105201093344804444960997517343553753562734925865541286302732613257628847588708553508032921384822686921200328609037751070556360590341224848688276764348984647439654511997551985494546638537710324261143850727082364256351807902204080441707386187737318334906623732101186712255495454930284726422342329648119896777763469480950896911520867044105809196311863746941134692716131529266271577130874502210147211680943808343135902042056943021397634260535463509275088528673783716908061774504294857332971102904533362331433012413891147673663770650117239556747048976834829588609627355396032976988949078299115070905434060007178873825223792739011511492757876743018690554383291652428843830053057898413257924413568482627451646087310249416219869616727707067560946386483887777906150847212883321198660668007911372377864349684663578664342682838197281846753881118135964814882894932847300885449680436372762359674363242764605018605621265642817647100008718235404700223777554643413623268718643826330193171742869078981523954252918548255831660167885958982900612858126188384739529735262578238038803677901676610072252842787485940969950344923965936273533129471936834454674559842248705470531570393593166291798054617648560992062290775190896974538667760062204915325160016766049189415068725217091406476600952900765450536741682482308613990231900769462602811858651960352189858375093227409068658343460087766184781745011155564987736732799198464615555252265897651703282172605538184869042144416830029484711691320675720717854197797720667059661514749467043373282624429373094651256055497719860448390683204634661003053262750381143264391618655940636278989090800734072248670383116641167448098665051732024349830198784438750643797420140234268522639632415676944155435918606934614391444662892376695399199267914322502201212481474302204129304702718659637382484152220142677213549965565952861388282086195977770009605243178672058685483001534896234753531633400537316949977689310970594911848580247834936282632551644679982872426330254341628758567799814920905692302509900304906953914846654168387012221783409328187633741399933270290169119591886752098202487043250893123126184977823159751804178188665943473002577138555648776542977108744667670410308597367934299227411259489256149384016793313507771833583032798683887305794578819347017526277618563050937280309695979626922839889756748613844022249146372215713958862782302942867312691759244894227140907901371771273803913065606293819761873784743268209750086421334361564337763479645750187548052198683813547500160737782907438590613309723174580304246975870498902603886915202140046311472069893712635118778522431143278306300027539672785442365917519718674749658556264937061195469358231093003038701838648229212659285469945446499585485526282510546204904740376519095792275689067927415452788273706520721038113433590369515421619092204976227884108667175427408696971856243152239548558229778546741915918352071407137195716206568433064416353587030090969129488159707199466101299826085734252270046476964948603654991361803277297581137200867434445695408416664627952878444696235818357885901732616581978613118329385231585907180018790909377898749698042893700419995254740051497855617121160382503390483230844003640593593870654550965574576763675558075160089608507254919854418819778374974952112835518232237288459917424311283788886726080643999459007753517308459502855475769960136401920591649833043786071097803777814312975265758224890993536302581553617852498938995912039809107568776701848305502630964426209024048058693479521370563168766799958944342745203541325060426272163187745202261995794268048013859737793732297697003058130703919145197918455402481318840727747173729266535209137811779003046506498075087568109981115442359722867510045518352493241127709278115926313749669525986395370152292704409898146322606347994860054248723993155244029297705028181115008460103122137054304611038155209461552171209444098720390773264635024522603993285696960524954792480642498279855674075611221094853816335427378473759977527941638098749483359875603718881576738338499348359418237666279152766013447706552452922522202134086445805521317050667657218307397752370062646397195906637733293227738806203009593351475087934548192312132398732042360212723995127554022699112116330156602538729839680258858195445086802732932309255288280759078406722528705715446655568508931992990299556352935702469596876791122713750100446104703602878252303120740162431357256890858771412388505923818993342134808545169684536561618204751986933793028384612257112228092886508153397883071975219235069491851605469812281115490184321911359796839101887969577220770376057007039343256600804993788499286344210067648677251970537503567479797728757298332148703947813167102044283499079521015939131314734012446316790958158392308811210066487747195800634435617938010793238204342026569007615897286840965496152486823460808907235864315105368110365426760385656219096990457810543825259021074654618564394093797933380714053687192121307157149718533699021163362158108990136556430103026122123096771039506248591490641154596905457905449192729879537653847710979559322565652377321568172574715773766703911658328188495354913232044526894259312439126734263520029441651653889907494777455166320747727298327736684805416304213910931143153579566827335655989702970368378338007452891158163200483946577105707365830289745299488896928283221371860366460776182627146146956302475514683485020097396032876242799308497377063850866536013880177811709125108612893200665690101582874372818432356243822039386411309676133371509994409365854347634330824234305316047759232311644373457334831230364274279751544375107597773880764665590540891821144666705849881449445816370546707805760690861742572791188579518844571983025035951786020234613203577041637162926784229347719546536845172973012755482613872187952318582985136679705254838855801713686350936391547262055491474228058724288155119561849170598964705483375802644683547750129235685849968129911410081652196030848740877910716372593183014207029745194837898994280146321281541791701786007111128340763587207536936756950131328881678021240737672417126641664745710741786948121614257261094207832365560317705912456073652919227883606678551056525757871077688401858963181392379071071940397327101130608927218717428628777200463462793186646824102674024111290105577557852582226371927459413701762029884626009293691641291275248269488731381969553141055074033385599652324255796318461514961204009884573327613743598812865063381270458095691634850605629056805654427682522922821276569421749183687070021200298302550173582671912301645586508489508100606846631144236357281001115633869083286819607140769923535271436714689109755557236167836794388267146931556699286865041700406671345727526489063612487721379810859955480974169939861315398653105597826099901711943247587138314101077149650292931707925033952429475415439568998387821641978576256959681720835721333715980590144268017079272321932260821513252234932372606303433081439547152193538466453337491719159310078067149765461356032624605948606575700382415182972647630287747788110552997514355687083585338171202271705256081927434657070814390696976212076858792960494193384257163974611122831462363831254425021548115229624304489025421804659945595183968936906890844165314671307689455729081467853419385221923537446520385660154765840722540139116656529186766248145253287415624962589361787496435673373015057000109741800345442520787518009055491762006753599658195301970548018096670192460537838533579225627760872315765905478082774016210411254682861783301133655967135871271253050014024945904415813458393750251602826173779681674478947353797896837352110808536463011794794192526261247671158782956682236160037595294108983960099234571095434190213570223070143771219709947332485490954655236123960145771308511245816390594973901626292911938134962235813947515768865122825599307247797925239779966559090946545907710084461916463765450736483773380628891358939504795213929859813003830163461047085054263670569770659675280619014282304015574601844219943722937924980228996603136963353483415562810706234741261644971161665655380227024309189440376872442820731242724482282820239705438711629231085503349758449253586038713906525069259842137387177979521494909916979247162083624477797072007446725755829160322357521628939217733489417659167572065641703703963190281018710312986599665292609686638048560642721247892868184412802706626819366124700733473393934333390641862487481448580627202275190171761749941499578352343161878743434271806673236157261998395903752976714856422698359975550716011874777000383600180286635652279635610160878197479078927617043253510055103932659934159726310085235262982563715350485426636808335450269286301110417386457427612105451117265453295064898855887069400665244645829679269975455248511343959053966672401391419026237476334439552719488786490863483408353297726695111652869542724796389810144980584250270135576727687131420069290250797177878952174450757960277343277876506050739720691679746347999274857747095347646726892324677153145846487242246394839251776494085096118697199270243397839874223827559871784487148958399455299527731796108718337460660467483988800951932991194126352000217099180890246299680280208761824670692008068100132004738153988699704240427053465805279140995062079733593262690154206670155139068825850777319818539372490254816594364259114601572831144814835892277894519667789038079412182720352728397551557729153116431031226165831395344619782556549388773200818584221304342731925135523079448127385427208320535057860495355593108479514777927689767129012062452461341168821613561142650149667302003187909278977169158522311462996445118382254617594686074054147279174420510201276484312497616085088531141194737822310280122663585564351115281196643183292128501732638274953744765666397966151946695754502501601805042273724185553476992866639036010253943778866026156738795657099926681192056861605958010014915578630407233163063252016162998259242988355055953121086549808770751886403112084645354349431463291873537432040077221428510935347740089449934173944527476533746975778653478659151453704348718557591592615125284283638159050132765700905464555830613210247275624807872338582036715242315676525472984109553486710028591135301031666484102352419441262971300142403005480901309564468805536516013561222551536597782519710676522922901368105992974988969299755253509135445549470096892818810862080998939206401461840950042193897320035314625174982383006247959112283090517035909836563903354811344539125734474846164521691791790504965571583207441070495593299729490723915621381429331600167734106792328802438932860652833420877233277519664311772072778063352103039335914610964602582981090292952663351145110528795962844211077349287832496544141534115127584724808527775736550478392474047528545525919498390814546336790002368487623525537626391822396901945007035034618108916153887496735919792217570935994926169825971567992681890153664963127214872005611802060822298652141100118439131864898376780361033362676806683523688339118877125324806454081228835068534248048918911912738817350981689388548660441732141489262333971730847262629770749388913368268705395911434677821217640755160224506477773615260872083586658311057972361703925130391004233396429114996185426363726855109389716415016878014113644455594337058158378520405947688214130874323437151630242584519628687462494141191725549304378960173228323250501198649057593850006861699443885357505819276959836874354857642443525452813925854194292628259523622473759670141785430129692118683357403225188935493020250314426774186164809457159211503856455549790347230092022702993338523447549740034688685998480893549632754412715464503676123638840412709414032505403841886836273498503983577268239401831549006741692737270769693627308053828572611640795679806164101276077956881855936139669739678280628889308848739497769201917822086544640768040922907314932319884216655828758164197274050980117938988611340924429520164869227633598555506852856736662241774647305397582644417025372532836581415751107280912523788448093528124630922101948050527385240921264128711109219125783855486446203772904991738975272862752891363303814490071338765033439456452806522807116248193125025882045469866154608921809929923980758208903271692760427288084683675720212299590775680139142758233255265248053768735846923177057935537531183935527985441413700974572953542506796044898093327755177344710162036970134018049926124507261234530697858190425867185096760656126403866642896615622693899619275044401436795947287733305571445211151873899937149661053741420661688512170763059381475252250382122366427548546190222734498080051327015495602961940050488900343208144558261036374566436797105339807624213856618597616137150470076577281382261403377801965125515101225158521189874062624624245276584261736767108817447239394625651269535742382482841509761328020189406469806104681058191819754656338500704509644709941798308653120643758670342447655079215984828603311216516376277353170889027339706599400332288572861287740646558906879227843255163204453375031738641948472062461803894707648847442696486709967246166218851708604923777412103981818103716613579868579484738989804441086126507845334395683338129820017010840217333343767575044177659147257721578923337380887975768900181513092734555996490612305287266222287423426672250299519783555228711328884404268299017269974614931614076410872786792064883242569599015449593940435189473410779456833815833341251451168541713896470472270456638636827934243258528348795181348295421616378682151412360514892925139194519317391905042155633522567826223129257499559133001683593699529612513254508043240744445116938194630392419604641357912705325264447005467378752166951213652891035082832602576073949938151593769353478227085144841700153817694379919898547972940851433149726837651278340589635223296461395301212236566669504984806883291980346342932803783312610688806593506148085094047611760106642584856588167677733049736312218526088328842733596808823357437091637533780226953017469564704120151285250660811723188768498660881512404253387712355830768906364685900325957983691930050102487531901619787797711051864713615638297709541354610069906229838165843144360319437430557392854045768608344997277494169193373809786646397698487597573432363650783314681857083523685920621394460902602939392017913217438321510555564600472045994312295334315577004845729484074243360008765742903552858673362519783716055027487429269416408432306721789192423956250642389952478706734587743269878480795318359160178427961135248330915600780270606707008232245273907989563620993319001547529466133296442753662693017409997703932516104355545538846971680658046171001000157727473990265262630397542363547943092702808772910060662956016210805246613902780249961008272551834426304646289656847908012872361096460937692323063308151494548780020808656943411299651826543266521782903541088298191832915046328436668387420287760614330057702940983290555689361331646662576991546904698571803710614376086085952948304682380732895289388618160353351032572569347351238389256276945744982115566054030776161997416754303318611858848887995254801066661560588805494995529371314571796430138889405549211260192634398104263158551505317950687134091476706482891607089753815321681459565426955233488610647996391118177888443970975733324795650048464551801687453950008637077961947933776398472887399493978239380176812245896953216371093984322594972692532850249208889415748593871110471128026661688707992223104494700774136055613314995204999201724254838976409164834285768326931171657367446570113197913891644829025132701150548486093866261280508616094560391414095745146552853978670009716311216576146874899260968364681685010294145798633481458086957960538867340961661422147715337168564352856185272344057795455768811017850183409558723427960520426027990112370295117141705403342708424072985515578420868118583146138188721458431062894659256652526778619178177982718817046059705170968582509209399537181426525703207344676251206560292369715729320993560589330908133681696230132690650593243938424594543098074066048687995996983530906495657901508653409548365281837516913292844574739764124031287551287078387502889045980801104385993043287346805494514097249136196722977940796470911843890668166182440494333650358616196452982641821153634976473848547412359385865984273635138867365719361556649748883663108675578422928363825881499671380260618368035946184730429877588875538922040517779592920514152328889443693593427812212690438506217000283617366564894492154454988748453157708619115726153952408062889342840742297600555335736415845247733504328145036209465903438569463491553616898048496262160758204411747595233395462695800708159019808399148208238550330064420136958329113080551710075753216674362941081137704662758009404866990805729055100495534719682746234205413078541884363175063878032329998475016244982146040026803915791285917937027366504031634806725945015144341268620250383729732150677330192609699701630149919901223855903397087062698509360931270072444932085708607368571081325397017360538283539059897336376821526502742709396222257034331826151175416491739134089494547126722674145282750951506896279475440562936455582672808948221083479567939241360467217494478231068771933597694466585459799601112272276010558411152179030036377859223258053717313954453730507041519060059905878160741112077657496511955939131872542102804814695300937885399242464312185475489004476139205943029987885055781276542364087152594823336025299628203203997304803318522759592682415442995308015211533041554367694460478821470004892077663263513636167286870292124114643375640185387617282203729379590919268358054497419614664528248227450460434515409143384450498522619940234837099417831349082176333454075719869232615324542154928805128750256653302763519973199786144038133125697284010006957102068299032514855236377254021022277923003116904338398717936881643716998672086486100325309629379140697293424341735958142431373223661242498729138226932839241422238814565617557473450273303875559792825583602301438998569322989978457672984927533006184059914066062492493350289313424994185212275940888818054311579764174762121802479441065479476643976598996179410426181559076367199987044604268251856376350889814778392851217510898902811811647214690574997085567018911656943564076016822082432255292378096930932123566923929352042306282805353495942169391058146488322748820800859307869654115260908175237500709811181136947864401345431057795382360033320322818028987975597177815467301356652632289262511570226098214209915419299626090595729524562565934386398773479859897552296638920523680090292555725552051774061514074220654556061816042775904948655483201379923640882312309779516177599718427813798744006807516112983053667459219216183071431935982625797782117679593182077213203529402304097145752091795399788512289764161749811339046549146706152686791277340264733740806854837074701489146934001825991409985911005836873112004021561465316891468828025657539387485008555810894362472103357386544316992020730272446577239818663852663067537916501138069995300846046445201387955881407624598310006840837058198866327415294744576898333867607053396745532562594582488968339755167571357290101339510556223848467517422886782461523414891307007128425423247811931408268241898298373474862401063776693847027268577519826197872556645199797302680957243000217262179706196050027985654488968844252345927720901158356444695646098503708625955214463582732497184291449609199901658815516450466602368076431259682212898022034024186807265193295826403021234110001189572119168886988260128163513054349194591629100048074039357974916459620004033996494097010766521168579589527685248133814851815455143982073622090440789432555861220735130018253226335933548303150326480388577862114268194608616493946269213782542048983062840825407358877468701052434944484391056790798175400729389571910109032256330221335169796401450868900811818137642674372758381485385160041575401974138313240965251191113696161707651435752786966193741524261549083140467355662148610360237883936044204415588044064108808012286216714441977496643549110599249687512231692434114087429589620742433485322790796631605039038694521143993332211153262406692640535641069744020367857345113820466835593064282751230717470235209436164362845087809075374773155698966087817250481054837798787778429540164757146687586446095956725174575206020493727789932751622761516928040811914501202809034010159939714553493256754618840141202675039292480348661295149527473300842880167472670523538420939133778214515869028431277417000598679465365681434507715784486255136326057015397634173834762746168786849254894108735041606911808982175206884334930098278941313927899033369671478385082177444513407767524596445408614533210225180735240871154812982692294313443174370531990585591993077045835999259629555432287914435275636203892671942515571783433086815788341457829973134830575466261355276830606842785253716005917839938793105028611214010533741848846668146441700401371724495973030660216135590335910477129182760936714305481119260526442517243969951035672365314183925403026101658377376951826355467836581043874571550363491359909525129263042770304145865856703458930876956003553813213023433703488243297968267897898608249638675619503352104072801501295848568489289503014636257071815176235422224200390718319321100842952703808853129420007600787327953451563030482587967835979263735182417213901945952311283872462086489073614779232962584108139816241056349825325974782000834033654453068123138612117384868910000177077522343439576176997295565138802390524016185644325827602961131560579135872809733156110673853447793255095206667055788316548892229214742104172815358134392402108792760942510466373155980668559467526495141085995847620388451693057779929993810743408686285714448600875802391894933859476545068583194236502207997831512396860545656151053294621213799566372633848851094097490195076539781667936828663696360638215520895012474232845697724950269217344663174090462711977190925090657573195670645240261002284968787236808398955066154219690321315885031739681018485269881409937277089560414184032447925355801454373778307605617375870776001516579632168626219137855390993686520369758064373084607329157104789474250566381353432621887392304833625298829802390127632852040012494484042469713038097435561411917700014133467307173226942298281917071094001289120785133705818741790820001823561414313231723276443566547672598438513158436639799924799497549147456008968928542141364055330502825554934586230067041613889820654125051766621762719606876986180566440439652643381525142993828451250058490734756292182274424648395185030472221658804772832315463867297938551621470904719985658486621721091838986622127908790974157504597983990129587542715015417013836968243546738842696079447341361635966876953302370144941394292948281332467562815296639475220161955932254357773128058928788093442980802803642789778831172390770084989071456094438884063128519463924786938029488028583739226218861556132328940690647072673939227435969862390228712832959636341085467931472848397445645009480462427902756835627258297441297026247809981672620491949096820408629249598025982552225286048676193912168886132454714672323948656650892426321872410323641367636809021440443602682109033309681654867503419203053084155213091312925641595184763592410178956109116100354816710015478972539628288428777560647554945578584951800636257837971529119301034433040158371074073819868366295206090222661138432213927361742443197643383028732862347478939953761114030949037517455157106847223947925571126158228188899774715138902034387105671152074765460513866374338144043104411916013044671402072105592275018480011812484500288993954838194251633161157833441852038013166016797651611675223363879802416127579997073309264272987249017858753249704176496270892704702878854523649675919514595835461160651572044655786715767986932842337811548330017686348060637888788052534606000013889071388794762885891184170728144588496839445252020124953845175246845885271563730341538377954315886417229151188933058940806103457048236091964881160998504187087239623353433328264612849425496060328521279692001929396710098338368277530971378919158973331853654392821853060273065205160106232801448653216227170147373135049301472401151222342495433551329339623068923900081541487257419687247747622750604122625883521428189400285591456009973145584529600096619627157484186144874738362833502905524033216209532799966780322908533785779949330454373583562377167182465620195950725583592427554191482869565439076379959296887248245116102096797701485800353157234103087605673432716885647394359690788055216718748520900746349230347798549556734953394578690055209065210803415536372901309635045877094128304978291121215232598265442540363031071855696145243124079321386070852446409952738494839414849595594428102669416011110308199809956925742378389692418754023741834876984349118604027626327335544185158935111672887322407869772759253190588555341795812834803839141947801657997571790377827997828517410374289456675037753519545279088611332009314931456126457582664493650373370213186414248631861583078027185590742962424312748359267490071190696990612642074664754860235361311643929962383943041592154480261527666423206835849178624389241637186477481993654900558615984482567639386842116863418330153358894357314489197563068356920442486463606614515537378800913468554317237356860912820803005979080321138253326787055152278250260511576809777613593408774451657023287608748767741019591709359149010900365646031111051279351485481739391917003636605776963921878775901620710576177473438488905353399856990642972992460210887665233650071986478436753701074592789804710895948251811617870731309864905295607598176255502901649159649225662907449120094177446386552466914741070854081366364985578874015985698821849522798256314105577827361076815832705818257855592319082939275647728319170941227071265228341812947143014033507744922505832809383206536985603825931641293778654645188855167087827596737846950578980027102629938357328284577532067266649084087438144734628085703318362533379076455979615500535053471879142471755122169466784648403407005836393064417901215018387267405880114513349607788505997167107301635122859983827240401747547721053097703133126311125687784960056773254068579412808427272019861910615687047251980772756469368004275544976004195212391640656610143540337960482361827322050275218976396225128128878246771330696484445207711054455697850676717767697350432088673306851998034162525586170588280843464869700153966340510370996792817346596052344527309213354454285745022084187845499830056630952918651640417295580188674711003449695626320579473400881889344500453126566717620483085699149335022591682438860059391766867957394193130984314805904607711406441545355089810418496402606582882511789230441744450388284539308118098522023305468353855966181888231895206851771559524595277040967399558611777937563010133457800156210718242500371374521094869104102427815425358057792509686049282748599405795013858074196009765847981447848938169445545522252290301034123124240211819025503664988246588618660481990410647203738765319578421171749020741970158972650887767498260060499669288906544573531630038642934640107815167716737387920156948658277801936380837372032500373716609067484708939547773466564326529519987568741985432104944486430348870032508537348738904277685935768083203421911033188479443046321914664486387188246739340799224227183712065107131891689527512051446698017330034341083138934109068547059422139398550592843354741995768554395998522124769883123003572295006358382053050825039839769378286340075425345779668113800084118714316388926837624387369827859792914562775931989001057851886548956206749666309601008479207941211325281075861714467709703521034588096643144776600419240705753408145906272001054109351989400334550282713547599257588474559551294454666564336451804874982072706490781207296438004501749451024482307393426836027322794425521174735132195970432065965015367386681063516801585563251904357804778490740987660123001954721841216385091222474159246912884791294262324243658088798371472926740512755472700246594680062266015229875817246394378567647981754712929430393846922575556232751476292993582315158258051235941817793821223767172555205505829403037471992023991597822508636853407569581481790324444868716148608578186882758144784854578672824422359094737986298649213134573869154383996171370162439919490664100025357631587261805624912772258958077217509935220571753812595762643630534430049652592978207662688978677052445270477738473070851137470722572775817242600387144600853886792427045666526731601274948264962748258046751371997167970334052162489018156840405896689235445681752562216055891223401795970680012684649484890134385625767739591090223666900969336101543283342417599442596659968113971956914002978294374479852592211612111127727384134006146292508444991018093969841051618789448409975980437121871838169077355426445428849923117722693094535090415310144863505191259860594219158752677272129026165912310438534123956571844599705786191199206057110720048558524358112867372347430243381450792349030350472553262134799059991059503157922872613706020115801539642862974517598560670325146578267211988625056408973030968806696821136329653718533290995478744351299227290700643684205522037676232679169512253323190074032050713502133933646347900937630555926650234700924122646860970024479231852573615443002090737007339166406315984465437711215787330840716444589029911178549439592469241649504793283748960577056112970759765246195409376168938535884024146127298639334129722777621835809191834829347164771981780993980439822376536345930120108062066669870663816079877549648289026299607285792090646810369843485841976560430117485598271028720582178163319065617288809903186660020270803555826220944621429311727116229845328306610552138551906239393663356474074989494578447656433717558345172508293747446790268248187988266536910824870499969468192864047127150618164469684504104842200368967419324621893261015998305585932375479573611640259217011928087177083939576039446945444842936034589206134352916362348392987311445975892435459561825338748795474074810124547915282534540064225017983444364091331545343623578525695673468328612832953379330818132931268085308663718810516847434678085264199103256875217921166752008637093122450542601964323836202648103859215640166557395699657177399474063652087294752212656537802302448347685338834016840162365592175513971832846383810183223190786831756866363134200205560402249303952598188753431956854462079167355629859032077051231377915305810103966921292650519297711152585383194747797665595309248247496394829246989120387103891360541972704630723641201872880793559614716340865708179869580217671010596741682909689114338746929266677938068604803563171105163746662153577223825842143447799612733801931635904632647484706914126838010641081322249548332782242299289375896977725570818018955544989297740503773939220659442058058381260274122941099737440284384963742588272635133807146381260086557976950139020942298219419363005007066809156324633485956872796030284777615008583545934248856598675233898815573688183339210352613673889647950980709909215593364564870832551812814625437833098030245067830383817281566402087352749818703774991702774314818404979295190978944075693510405674909438213001475252678822808862102856040973100033516528277165915914056123686766388496848932783407035972665790322756132776325284870525950500603122881116806180024385020944728268730281851972097056409351820249274177232979809571549477378909286842759702933259282347644680230683662864791926422403027476073890039591879628929812550856445308567458063703999798101243124169857058684024019991510476296016251795216404738377000712446226432511478075443107701147971373482110730376531766806463266898191396286864303840407377839284111740907350658252820512157234352301950553716585026017555958450939011403403781716562904389671245288918875698443141288936884551169278906349157822108322027397625161082498552825913064954195344273862499054762235847842204078786372353852635040162204805300497681915607795580093724231314822030239970989613562511507783444280673251617569642853062380023573072233497617439698052919047615017689736450776506170342028698342176281583923088243766353595175543438665934948838230763474268551065629643544310579360373962729015309984086289195372877771559282654890491780263438226125803925754718190519296557770220976959568529126907357715667059021037027867417512369567311958840308528345708689338792302317661633591848202925879305145330932237443550461695389696492820699765274162996606301686568451682654183230158102842684276830023023003492144928969083351063368745106644640865297771786202143538188350819107671520424695681150727545382134308353855140456197561221303593718519750446634714612011561645873264739190215896073364771683021136314252403205583382230379182021413292171805726059716856670166765245835916162494568453686589091903256897315842614336280869413269849955619584597381700806191201473145096375458251163830933412068098363159086067841177807544842020295414796397219776912653539275939338778512333384415452043297593372564136698798852714289881291341737341317974187602356353308236773619467300502356695216251803357840396091848899116241201899145767529402729023777209670101644421462402070705372813958161882505043313871947507102702726918461140869531963249188436401950295592341933457222042203908694650438094382020463173117629386956336434766015617361516285735954156602857394106733308528295100002242426532382230268277193528863439202951217842602007105430925758365564352895647099974125044756825966659441335469736479872364424692110115842618845903413003599866454497377664895076826989130206839586572261602106747577818677175486622015636873431454637882977301096086957319333653501941136150638863231050094236578373291542692060977963983096504814690632940347998866480857339485926722565151310095405623509991906432929127938385504725657287399326975422082419715028334861227679455374925687759055412002638995181756680181472435122666926080261468661085623131059344401892829590716946108762470502465110653569841861761712200210816725901859981511480437203495264134540686616191014029400852763807229142198102628237767202022743914272133520246245804720140915448131224312890200843443164013899076306618227020327505521572645022835853738529335467371276328424850200921846685177368191969986916719083558839514836603163622533103432326489750264176405193369638679253541120157880783042191565261859833550947769379880866838881289023802506484649626526087418259818821230430829391443980495181383182423412718210392818184330902740577237362246353851173774527605478267592865307359526180580452126858731363462603183653265403347003586726410242622662136773472674001412262771856839459776602802533683281750100418370867438012710984577598597359334814271981468044916039016392003346365114869335214489623810137951385195496223837490186431826742550717584807336157982111119253151593805553600071704573122713107946794617844646994842718594041248944856544565062677259738634522456640991865506973302905807979965158671826591062546518517534715128134556246354959951312756546718267325746315968304232076279232532396382056158153084998879930341016788076037877181742020534060199525098637998912417129060729148981209246107141517730234809405115173216985378642626242771591662140399941938212666843340581181058020910500097311176942752758025261062096793402600255654498508850866084719623420241753973896629954244135822703859848132251320416649483235744094269180909264535952298027147687569284322976832929811070212573323967282086602947613345736941880168179024268245370927207417887658835974541578825316405670336555483803485008059312161107506548208318006064996564391903620611071108704401103655174048494319747870934554270965338428113374974546098118516690382656443625880770847175114452749219640795312663517806677286274827963077162236330457705621230083901343689932554245293437750530033941253388748365282075476423174870778893089986936786808658814747057891259911131503153395542564665574438360588122448119900972211312575485147859019130652467025537732076615628634556442898102034707084344466025559728957189741080138388962808189166297171151204551776950441757884521067294821596054842458735069520258088666112306181216395902468045621206398125760117838871478205506421706202835370381699652179808821390736776418229584007372090104991144272183535139944772173950921383678562388199531223395735410972653897513964007599588755535481256020685151955194299858059460231418422980512689630770199397652301718729208548411776232554058760711284765752569422242102035256131644301730862718923548349585942074356995569250277162592644397492861965440613980352648651844391400766757861362315100899085874215315943017002974258663538116467395696091466346039060208652626929122562405151611968891478786790131142630224286969397940026087311086835971232628474093599265921150593493046710057981224184443352786875269880820802000931860252169357615195037593929222824733066820009400543101824633096981245266673660257039614198082922933736475144699896330259257497816863370701053372915935096467409322628491586392322320796632514633512166534961270296269419075026889510664997276137023648807798558490809348356684052127075032366889064284013928533923713974158844138609588928850111665166724291206234738257526550069230957825642939348845040361994098996675284745941700855029352964202700865242445656469523488411587265829585353687214329184045645948646960668076497411204041228952294632871289528873147764064808238614095300649414340697365656311833269603942499964807231026975907274016721902829301485803489270356134273317348944339095278461459042102700384439430944350312238018003086383297354944698219065783643340512425925454909721671218440448011761461627149410441050844768829360837115592551298358413175430862717415971644956546101213516179090580281964817110505531320906982633978362127122026876379697320509895106632932476983135569334263173866893306863872588341984138418623799614097912545374502283890582954917266001307201141041813046488374365125845017426628534242085410492992993679359588726811708495092827457110519959948073617209067349778947748322517246235216439714039851305425801326260817437260924646267474581134375598672594888395029931959930782540160638972356446131829702259052444132574655824458693276894002182041252642935596116678480067308024439449823960174648514924415597863432593578293827899949352577326640381633134054548427622320362321279149133624787232635456106470723399708869767956755303067821251113496294776951158156713612450375490305767677672020862209150838481892244117078695514055877018663911782929578688597242264264628629278471080108965417251739601671491630838924828660439574751122782902987594704514114450746096848249440416544923900952209774801251262242844158949953758662310812190287298364486975315365131326805118258113502471102959747581039222494148112934128650798421223553482825336437204842409809220524810806251389706614019653759499248455091645133142713091907867211920448788593460279519764917909449921878861274470415195764882805805611434064539448895609641957498045800754378696992041639854237761490444479326134901925433610460246670184913358602606249338625012689114790788041721127424401688739641334678848030258807755138704768458636409031895177827111503786356445301656469278829983908930230191412263065286578065581995371475756363544416182951123293982389574996251617270186553570237358250537743300235577982576445364630178070178940727035161211794815627991917870407418439338741565843569453584004761150863585006838119696011128848235307965196586003612029568791753257606142782685223220191692871722093317109862665265808288406805859114770435792713181099811729402377310210725635073393849574700072736792961612781506800638244102278797025075724146775415474999390155608218494727500995773609276747440857063201726253810667471857933515421950371389010197812515231948496314986264986173514128674551132838802429562902873131181205554707004893533323066634991668411732981567489974994772641591703505242340215289724050219602598519283569483541159238328420207771565390242038468887330570468135915809286956348047998005963185150907259485762112233248057832155592590626275689354153244015864639534832563401936367462366123838031215120854728630076940027405866112516771122443328165426995129043583528352438056014948760994071452637484538793318016908121198899477757325075067597773186492324009718008931708015370014327033626845798343440506214917838729424330085664102475899556031190806731913154433338033769024722621434476041518835455229598846386067278264366153497385262505939226428527461829299809163565525827918914287070290903389414208846599131674440406862267647189578069627471894419704588910898947068706876109635052619935462941550985780388616849535832978949561672684430978233751781278503002345656656020199709969467006327229755091500654457601458351051647005667400384965777361501814167393479850868550936127629836776367629737295469419720930075880825673397810278142321015997351414900308086961932872580156359937396927934906253806907042236020023807258304908172580825726443009967915196904888087026729362231956630932761745038338145710015343202549118303607034125578935461098511339519259709174442039341221085788318612056673696979740701988401471295775391001253199755822608028310657352849816481368513044577301004830070425573802886493853878235760656619911170991492717238665120185652391928835689904781966889760508986573608285449396436451425159433165551931145166438805995856773807274866185883955114913302224574997392842294535094474837241771920323823738151410543906529908316838280096961275703010798324504772418223196206833791043068103693676400997557150132449643382261597522234151990310508824033152929731043144956530821287873993782031723191289510807109951003275500476445899006747357045012249155891569419664783956152436857446998599726161488254368039512810971356259906994937683957039547132229756331831650153691764198655062153147322115167319845292172562621392841119632254144659890942983596330404931632031280193228791042745385586600627751540049548421389184257528658151846083688523137374909884012932316980397056622436823011688970099906177740815576061545097054536827992426335117837554354745256415095456652905340610659231870515304349193087808192276716751142927613152736567662517446970859438916127018302567888458543085595499959231805906620813571078871002758727599847363413005515613609701825665870417174451109999655794616845349327546404278753036283925678248371428993767133243106759864653783223399375314334127568444875468070674329514286245931660155830579874189374259164861922024160969462100979653610544334385249282484349475852328013608781126170993679953976788662662707721763033162178044427133283209429464692531982107797377239570959153981396890284966723060866147966970971332152099885925257360949267030077385562453870624802177551112596118325511298656981048993671685015426126445396526633231275917127495437786889798109835407909478291606454680806031319165213344639599710978087936144398526536952651656633642479343640334615042432102318355817386190969758580727945904257485237512479834984651417005171366828781861247229764256703127029631287965297796935540661435453766445034809916179754605495911569081988650561922485461890935482695740838312453638278845711905638056146400992722300910015112316676652194084498983636148810093175883862300533893167736002280740012312914599703216217153784929858642990665165652791385691145823376088859970968431033784354679883027301598217357444227443051081235693796840286193673459673702481290367474391678509945348167549589783937787337758976656727883176685250646502656665475567854184787129101874321477279778770891744902348950130652844144366272590510885359960041055373025616428232117509742081273204384290159565078373360962175944238172112938791863586374623357770304931955306102208997837616219088124421313391209993306914553608454173615311649699170432361268218470700158788884786094797008069011373213818310213121534487920727378426400964325511479033152914552817683134086438122726477556457566374679141393538835706497737509517528056664001151199334930996031208280282112479511969075886339279472914186397612079040865154963296867862356290652699411152551523360408345086239350089422595429856263611937343559824169658943449628429298362660190296746091383898658823638353814277174354500140282512376047783466345085663342716066578609502912868574707635656330174668231392449245273483863456254030520813447472098552432543516221783207769856971253184906152193853090989492098566220234031980917005480832423899772296552955057565957753030111074276134317094529527688249905039309223377669814221345802215129726220571705208342092308423972374932527552513973672165761591953038637525653967567065251908813990579520844045249621691477098787054916222114833376803980729047776932206102893094867248151004239280543845380127190305963884757119682693051975467488975416671110840583463641824401807701654252653242695531036394325518474432307339685754220370238781143895306245149399728392112851409346437080264138060846661974991082755573408820084266024223457801479207863198134783604078018856589910922179175327262574006900355302896371074136368977802003315025958918896895621962392527244539428027362694501017469777214719159802095614821996599035594054436847674129291025779329382703626060757226347833770618936683068762729530797377326194302653258148267061991659041469960845790167653997909644132373489999513332620766205642015216401399621726148936980161392073443307736630130793996189259429647672587786518369271644582693911190950016541076003100223754847744047458965070612413806298955310571147581829175827156817523809699224161095181637262571803803850200349274458336794410479786930683367361480306231169593104659197622852996192123169243779379788124755123433298324254105996869243350075310077912292324042078806793805781068867530541285065305015497932965939874382387653232396867773717215615034978193901293706729474480341669670111112106393505489623187640201780662531094189067061019760402185621524898048536566717449876991835498987718695756145618117891773926905741244492495852022757971249988562957124551386649006863561917967003306905337602343952986932703721116526769594984206242519137035022198861098986107503142809823768054234885779526195923063198935581471066650061047716252809034057316008468654918138063005400812584060011120769140875564113957061998459594654217928859804652458315082312574302798041511187686914835163888777127006379444458657814107540148630015909374894387775381371258348042811700752220652469546002227807450624352913189725104670678961896858263808057348543152787585503712436906980879900925804410994505625951262682353274053523365540221378008762012929485208332983586656808965978666616333404922967075120358925162534873025654454732416849716614919257320246723048090308850054683981568123716027366648061394086304617269631569712264589944662399109414007199489214797893755621174538481122088589965328467051593923615517365579478865811269808886111720505632082444267094197688709054524969448028143675398036213772202936353583108674453226503972164517822459940179692808690934557074479735531426100990422462126929351105369660138313711037808570776704156501394421474135328146904938738063566848856100810941013604664103448867879384320443706260769150065630968470368210101407024353077512098161443028554992445215535421150671452518036474466869554950846747983539882803145382101124112476068721931444580636352170001376676252518066185318541017045860154789272405904922163361435585836815855950035759627475415204515662643426122851122916379044210948364311570432410360974438671492655316292894051562398322186441836226283324323338705499660071104556188570246400556149296114323509494831290328458545164139373080455544960293479765350840376722766341989187765843625390965877654771868903582691947889865337267117400950714427074222795549657724030491676418780030299664814249054323031720006779953828150552542099372669620054366238631725356306861834616106788741002742865973744147738486728706999342659661766636680352008688305461454587767261381030807105764784959458062891974487961614026305659195790032852852501653545009895200123151739544094610250571916491408290731054451077947164906787292649864578820558705284268424867459227532737559660213807770540164544963948509348682728436483633678961860581838330291241476214281728785649246619548011543622768777758043711896126614358375461644933228744768779286163245550483135511103076868015376688950954128016531052694806854623961353259304469472559308684835640629183263188630261685514223335715337268845918025228583030889016468489939310915711461389364515252926570189768409456901288502813113932608199398956991758489356144342277215573318080492448276609369880117779716163863374201983859500605484436404932710974084611424613866733676916560864776582456996966566643553249827058701192023785056682315007737673339782967478114125353957232244259937147815147136959276841139483270363649918977533899855680601319629957719412192677633852133804697905463794211375233685588140904395106834411818324937330124172536288645119586302449706526878476939205543538494111526255012891884253928622746325809667989902311585901513234101520898392785785494835399178797679436073918620808500120670968505958225093659322029527850675729646449449428312807382915113285926490440592090871003869020899439469040623230207495858693175496262001636445957343692905920430306441143367755186662771221711423486468524423004508125146265096320217550526967086906313348187309023224046475794244418266369719478263487506773708120575350342301320776244395312167500665941695423682533912795661924448555107465026633316379879763817998479772271253773025368559084961944744760292045144131188732120748024941599981078290159328575136683627685704118299136562709152521469125088927911176604411660702111501088820940587224233114479612365836661235021415158524186788786801384797322437819751235672607994669166110180644181475749507169239937864278876356467716349793312673421489958234528489117372524229966303759942548405524124840332512550677824516512883746171985956195430786643495382600890311568737639389709311033284913454592433445736728898011886845413849524813074495049691832707956582120283025138316135737941719759558563449183040475601217395302364211272958547026478490492449114581182622394605332385637462005456673087264303137692580855163871309080887372558835418902994825646428083940047297352425658164509965196280639350581456267855772861737158300714923010828023853913017952080217097783927024204529924878240474741532771805666721727555713570313770623434690916153736283494441967971160189874065232522988117480140457798977521600933421256508883509710631879812641746432214173948238042349085206990449659779406475139035428196561112565313369101283504758671912769654470284689991815583332197472705427958056019989794267733872773836681376760120318197613210197974454936447628121077437739001260196998039509735287165088322128864071338793785883926874123702666406097650512234689725352038395977443842995508319613502941805411185165712017629600489825375921552003018110719792230782984070207719902028962863550347690851379115528671088895518803733761988974071367192998545792148669851095928367504591912144324384099885801342537095067655701042012725564126446457853308764370160600744101751232808658494729638674986048454473055766533662253632158049443425132310492140588815957410556279239091652163449575927512825499788705567533146608057645481536428930675164775117969562935710012473752642733863787427053921864916903638357022350877984738945538896372527485854739763693288588223040600521439912791681449718083876865219217206522244690013510426232719453477725284290837543498881184945775860382046911197865855664519471920559718105226271494808222287052147084329371831090367009679000900236967060811229547878557768683882503992965931686091649957953622589528758995838374503713350399302415015982578193127192300576266408976984759774760660978288800199492654669448631683746552004398609745263721438757510150779763705159424932592233821322920522636445435653757117860189450195905345356148849262638648023459902049275690074362766889045259200409862958999114204899234579045019827273220084050122134315521331368143355022421698209586158056487914597575577003496916153846107721044458480051727988459398954189003278053530479276594475433886987049033786247445823977729164251816900385138039751463896420925883934269988874629162190721566623422593124929054037278676516991736978156114680826882834457716293089427237073397766063071794220537316406497782536823762197871401959250359543636499023723530013383413441193849124472594175515633748842643691288340840889378855036600658805482993766278169970387427072730323931335879176744082220348837137287276403762993675939916322144013431241865309354062490485794955751915295173651220586017884411423391221524199777738920747808112916690265530955964639866896166986786498094395025007263377679356600109687701940989139211641750860792111963382067361763463943959401911889328236086219647664741177723981893762064509615600845433487777395537420562117335005180053554805541135392111944939748586172926729075602009194343743565084951000994448026054482548632090302488064477203657272063736616335188421137172246947712153036779938215951601399608407878967875631428662066391366526318315756977258925645423279210035459828309820824233667406663039909844515472965372945844432675380716073011136415380806358405839620856756664139231229488231377168968755418888784614394938553290702313714459181769159823821830552358837138213619313100724688106986054843398535074044327208513683130810593110190227263235005708505878366933192168308649775933350498163661014170560510175280881755862372986473327805297421690595047000091612284231460775731514845642016766055059697430049936581436088900478052545309796556129838773650099252341055923678513583423215939772862171263562903587969853766509599083881111437421783021500323350638945356775871872117340678367889499589619342216324510018627110616429538332035382590485314677159561857837047032153668082430922142419970206572021936379964445813611859688274486056837277739465884264533304628497761195136460653771115536271836510195128410872881099199910371599458594329889443891255293872449120325668530508962601683464490708915358728399868638145649093805591990362468842075854583932047945017869652503607405547943819041341147829517445583963664520468603987608028673192323443107404356138708201493376288445825702199478415593775917495490846291879028459512266244885050729197739445085010733252524969020426387675297887420811311002276222718056235337005202902977142926572434812441357803547237334024430489945147057672786717559546828486133267445561565944897475108772483640917154230469691184591595961430649990446118004375277102883667159596862890654469177351789410355438467663233915011883804661205920773340542737505144659935518006480558427087192803238180715581596485539860828104981057720535722170206397869602780613616151618324526499829743085154737397885245945980010476600418299862814033000384504761010565857228213664991286196298384953023027976062798047444198146013259437664168035385948471052125804829008266720697456655894226748302580202602387718565053515200134032709886250513048457229054342849820326004627047930094817883237110741780259910270074357396139242195206197957663836570812131932802170036250143396090512691329221496598359724111587815935282167317133891304911404490243516866416069954742345968081252065103332320276372232633009838994873917048326261247642903485140145116909863808340694846049839587833155013935295114998540430143836962264352426470591101394372554670336873351865686722987706701840432831809031817333708697180549552900045058669993158876136743994667847761160217637397160635190472134900531637468126847944175447874083713019312686069217637610518136774720400265016479362262546180029330468975634536971225952244596353710569314562776659708018046011533558783004432016639394603186454000820008582758985108014100489591718783332643496589247079603034280564216488913020219541685508970046702988495397748006184696156010441739287426783753133626305152130476023723520182022146468887614071452395981717018707066670335678427565156697440407624435453325134842232743492117776071155230983695000589701359491939008985033982260887464660595797762437335401617849102744725981420917117888027066781209683482385317411039619801098058443012080649430696959476859437567630251416958546548047506009525147000904019928345455219115479653930669172003180016596577397313606394046723964260931521005722768812693064817851812794530861599821803350199792873338002205605685108494739328367270735884264282664932523432429149467550379630412578537475622120438951337655514732803586959805636802960137001368720831509173095739592990644036490404637658237914271508090028628156425968708485536157207609312166919116899570768871066408602359903770764969817077693688530218184060646992156092805140146774294203254782690778379327192145357214104100542833112577366080061947885154292317646608367192422720374822759581301221881045576784990061831690327922135565492735404100811171946876075536514623534435758541424713732704558052772736555393647075054804805354243383398185259685608438155893732745175548279020824353939721694348598361448229031379391773339306466872715413935095930783678144205008256232258031061037231041435448269763444549710977754719751613482117952232933695126185869489432784052687913030395242755842360042111968237411009725796208754572836685645619326726331598401984934209506604053314549824504893794442099443174240415212462885260053640032077583123273556853584632416035679434215334104627747351960300467108931665279243583667900433699581839830648572893542268527131084399147387988189342251018831328612433125288023120040397326179306350858338802443767275438871925301685220469214192799930640553288475548291447985403039771500650406100418355715721981191824980608578098919402913884787284921140347414019807639231165906040443593557589702060479510115335013051982791038712005067147244954360014690178150954898208700922592318237071119117305196053302684957989700910584831856118082669714865450456152649962252928131845278988252832555515125727521256414254749954898822005887653327274660052960143908693324595441225305086575570987818170983570192519997919109724423971166294272606268546474992954575695279010987204980879688931267762676233139072128837320347023372266599108240363326610887250654679565156029627923923086344633833065144955263029792913530457556015480718054579511803250084393129309958033496593996122099360430681980305871248266117492161878678248059931340480968486778758254524607879308031873116678344694220101824202209505495259392069328751643856992083143447434478328682577472517162288092250909070773177405053688935186962221867954151029909811918439655105787352829360911748320199859753141529806323545271065761397680649573302198984809202423864937261819132999308613380209734394587963131208836721618520715481834783712548625515222567094956053302040120104740439615454664512519363950446818689154530227142229741064305256246208509071769571895400894783264399450345369427071750043061991278212336216960071173265435854994526292858634887506231137152349321324718158810801676186801162973037023306725698633808015570099687449712382416397463550247651344032484936669604666524446301468886918563093160272486786894147189531744512375737834581551584830328665842965300288211159751952229058849650354486847955066632643340512673179455448651268664694762756565361718298365594816559526119026414161821210552237742627258474191601438074938679515517474310142147313195303080262549498898081399370039360189544812797635548230413487660527771003319928918323442347136893511218746040660309936088785490701482776350157811141966170619805594221627040620815093218167298826347996593720534846700210170425539687918190167587311268194419081237101688149297284772700662367894711624880158972521797193626311259962012977099459410564205765559721574462280422794987892443033206403398212636659064827930696190575806727341809744687669678444014502298154333033749704578191504043714389550759087992302713654398517233438911666256943080326888651157889215161795736034863185899980132070763259706378842783514208952163943690907779511990151303469419093947435854731594536678164224918415297560179852618575871210024444032169336446782015121242383879954067654332350368184722065443503461951313386054780254222653675297725450595501714254943838646610513119766224219647763502747642593824754860323844387231866216067680054654735641906637536188085529955045963914321453965537873108561346629399969477409684958869058174444906760748284104686794556611614488715015869495726687261672850063044618490033797308031528421860214490611180937908307587871072833004751498696153682979762936572792796739364862594488142804482236807491454684203471305099198652272477717217525808840910190445812446662509374210605510064903655249019556625387426740362159343802098749706110850019015286192331294309539421505141840340877100392585870037974937719928270819113539985032892149041778906398644576505739368165974150733048015780816944718161137553657967173790574067428516515554679605825582194832475348827104016093113203893175318785286622582932199553098259256884265165678083606365890819752588143248377327672201002358807739669491048804200541525454527058410753749977430720934175738735168015807548226973170745963804077036822455960411569728047357605848196757709395272456923633456959979349117888528037799558262825762555714915883879541621932087616739995857972273449513674595338178961245115119974633923423086930659680202756348161742258603939291391542561902287808917660153154247437417530200345794360510727771013058438835432445187305567628440254506718505874358935347832072757436942905034824682061295690767048983473047759658804497709696989193924629314650605510733204406467070420035877556928175428000545011696619574514991082526818467078034493380922357163558414908385125625861638928701448327632266421988490696339660665232754922277529950961112182437636751552136357607856509996739716662616753174539429567210359742157067691668831124092941691970919555816155047998100477302524160681397568336530038036618155295488032557827042115084199468017465369394796246111251084787829289155414143288158596800330549222758174045374441507052348113885974180194311889551480577854694479313590100805946865162138221772297916685997680653810934231261224884954440825672483735561117842481971504255670811251771779883229863924924028520269580975164959844687379797812518560912222555656813490004490363261234011989229078832186991041545707119722451798553224300804628174578642514579179981873875498680672671811464216651371513882177291789820449328625571220428359317464935243386818730045901392534150926264147100043402807643763161734891101244406529587235162261954379924259279293433724453733680118729793302627582143227409155033290786077751116840788642285469284147049130337687752980035987952211056915155002851978647451967937744934495996229847732449575792719864231986186177097142788914098612826722505255848395040718190792086243599329165808929467888007248115529704576969782136806615949141331609324310864963320996391803831623039079629339363138372198349265403323633650093361051528859760701644851821234317136656842873793345738523794182133632707353963292644156703030514902539838274264314150416802134400657964148977266974073497412637697146500388131551997157240612305870822812051309394544001137365358350484702598314246991424433121870574309618357820126333402421542592430482429472396420770587107628664114967614479005900753382734221827636210537678673658011150400187391989096273003602828545591065244723730603921545748452842577656829967742945973558970130689727464322437135845035558627415738831451288689543153489177842240571347215735420445411379887344075881744201090019368319676897609057133336240203531820569854104569662441232051662409870717799876620831680867872116507707008793330132443708958312691879626592743150330505494324824096860040064343015162227497090427956762802005705120855673030864940739912677671288372258159546244121415869160401829177380012494741904867895520268289957923567202916779379001128888472477690355658076556489366111672129337335517742484733084566827682383925929610282856663458449138030534273144411215499573273329948557439868723577093985498620097330405211670118439819728293399282521739293245953157675605985281036343291112574343835763022859366981061781252818977678835862848171330347694048820912832609458582803320658333545683851603623185277200970696692666765368732610884612678385502629158353356088773459202068780514748980552858464039810393851357240608446518406219383920217817688721332954890588220477887135636581387208215538944315092716479251423140688866082446065569019530281760190229849122039174829080958109117050291748337521329023132316806690366941227615772870841943437047524097835737845949767709746789852167577157693799699668355840999308622312782972550136376518017861730670259450916977551243399033181026378705901694226364683555558949994736893227338683106741611077265571248675681850856718817859022629365941540610089085268616631941205559454782916253874828588307332678779165138664203213124823317653427303426337038244807469841158869020683794403931683136701792861743478704833706110460049361407159491240024017411172881897037366117598823568795158507126402888299296651421346850040315228941969512960439652923894576845558285535219352842822088831077551795402249177742821891790989203637218148900131353844408336671002156401353453173102230974116584211206237982102494470771280897019768015461872320322062551852752540031674103851388224273772215414573579694458696250035065614964601740556037078248478743113599837996784383716622729097349295394181199133838072847900548235257814108374239255499263074778627663183046599410350101696951231562987640413569774628041156350578077342795896324492165987702050755259720873608070125198801613213893850944176880711805648625970068169076765880610552499256911140011270785624901399609846385700014272008673877225736622945836496094633472120473644025538824415973168976907487966331415496006680915573963119396344000950812344618960810997878173081142813404098161154015851153856704896209692852589777826405003151577067059029608221949841541205125892449538795260423978745181213684244847353565857749173730222362005531407636795828421277461037530999745292505102351418065492373173519811027647938275197420576574517468487074928631033616302891534583157337268292435415860038075715415416774298799145214880089512367350477024983862331483025124172359598952228310321737351512215923526238439470104936857732029028990216479637174287434142625520679090640040355748243569478116988781976020502488792016207036627862246558582340288038643115293570724815405056031821297747497842384062332925878637606625360376810979981174262419594557982181446881781830121745880350993022268662494727548695550613425946052788757520865424814553899545477467729968761193496423790855791000458739627109746898845267645890352859453330602192199590417407137353770082031538172365650783952408223472376830390325830522659702252426824315017609732665498741209782619208385898026125666153302601231879323979135633238046480095699215723228515796773951815352259690532400974122922573554443965883048236724254161763633107261154790013325267833626127235260322592412806200107721371772347936016083809505352343428259496178115507653904740098898370798566680487237446539845895158571308444189651483005045272755658510150687318001383573361007555599193083426933571947845294790281785218831227898530993781173248938960566830753291526836850325055556663104404653012678465490467892373140124078393268856140106948267452317556904902533725104103784980833858482323309634273638832763244390829808778418243033904589638164891457504957512959484827298506304929888676608779850762668792025938845692982904510661282809148285510002364814447415422034493326068658686361511084422530785095490788996198961621778879387301074348010889424158233331335040371399182630964677187876112098887475567405874416268819181497231288257657666644811352086824261046987467672659469290575071863859644035599121104883235888987233963311223078878961268911958604345874423495164398718972540672496945351616773168459122213997899137927042341267338064540094023324770676001943277397415150252145677627390483334912245110344903103461462266055040484370081339410317540042157044110987108853991546029463919379137342976741678896522088887353620256605519129730058196707948549049237808707184077588860673509338371158964578515382429328515017284408562193215683411832009811153705156220449074011187986926559081960848261200514947199305911778410319704223341833347904539469318363799406421313653609228120320716512820763675976622799438041838883665078381030812363069337845413952160208313908536435655047172977411986396502700667798868476610322861607235751710022255359207238772945704747828577032006419189246571354885699456108160191864550765034133063430110317392667939081020110439081804557362068967185646732039993478760711595471156620972780059771267888380963748867801027438743247087437972915012396288339194875571147529610586899587851781463549752985210927763614008372176217835982557855026801265472795510585716253419646579072192637821187765695779641886444540250792690745130472219172652727991867548133118933969047549936769519156777272734603621435294716629852952134377537643140731468915872913863111006753690128480343924926752730559459371412459401580899875621985090913803779527820602569891549525479897300968224387806253700878771359134466119460248999205510100637509419028836339433888422228348761132342603204888880277857362958419555447806828317742021096782769765941371278964089410966168049696938124478377966164979676765081925028493194980750463339333694187552048672130777142394834212297096509371613429581818949064846116144967140813724504459402358545989404909880544954380141251918863576068804201864946366282222435975509965810432800728164405988786216507460525465319000302806603900666551233556024785968714488647998904011590216763646809035475327489643451130936693017475810477770877615623425374211668270748290780788973688901747850415479522603250970022236224765915279414464317957336816458528979651954138958155807378264428421641563275638488874982778996839029835151903347964033727914047604520758908298699420600876747171304611942733188462975740724660480585529920724098335776633310175255867107531244482201376453949472474953423714639604104033407007039939620107267350442267255013952327634704164446411686335815506465468039717532363881279955490644977425505987436576493276239552576867267059176584631024097281175981822306119862650712799735725483734598713310607299037837153514170558674183877302856167378246415835593515203959629057473226820388027077451191104199165982117314234678650259724656249375486659642059505127714808465102856393110424383595569579499467018126784354328213589037313199078039444251428378926370616212724798791027075939017122332047708057144853887684285889012643748250293030779595174935376594573931306036664907671038368550190570576152254160671669124244907011589800862070355932310518389670005045531892215623248917458256126936761413286993670799344238704404112897308121015726849361351517762765477622928868674737218173845083908758117305886721670678218221684233990681447219819233768956748572613127760674584234764693524519267340741147896305925164763947027680946127681812401335514018614537594018253413885394667098097006438311690564581819546770419142019718681800099183321863935350356475204712664650129959294186566501597012966081043334117661021230756688681835541228828486301122372148803452669283247186284722317607500733213250523621876357460435348794357903367956601466481018692267070259428131295678571899715095424760466317005155678333298556988003603664625269339643382427102753483499958875201498554051730277457546118535691025727728322428082032645702815413806963026710212996803656191972538898967912687250712730124251071672771102959227191590594324211088792407672499580768763362625282837089025728764630522972340298900263571759283981085960330070774878532667227528923120231601070105962760648343866144931250279966319698294451941447211921642284961274877519460595615186280215576491596734992192142336200723115025804481757176870387513565153492016738360585607994151585394954755472084597376168322795367889638633535947074027223271674107176542172512668811754237007261196615636907367107362637257501486993783614744915334008576280590216699227400599864673849066625277724410662657454390595703163173875334794786816123395878151928266071312507909679653005069747677953785584971712586891248265793826087115874570753626941483514128482952764528675636441398823732769655283664331878685622157238338907858041897833652791981418382375905940205051567830821884846632970212051682813946340815535200459172536202477988599045947871699930433625387479964086452911344252430523806759742214283809023989345105171130565453003280648855500865201098130267916791280231965185707530174858147323064913797233022728761134289387161911241303809268527002349063378905386351775683029974864962611381230195278932414081977319286284924384428484937834634834688709429744953528263682214291207693293836108917242284649619611423335191893288257070989239479219870888697756354780865343354905090220909015405923284308202880849333229054129720976186216210911729406169188914662655420257248680140501942105114928493003856234924873350747643674075999457834385306201177730982393803105959625887684075372862564556804429043418211690760346186559337036543167410265240209867014688075472195608613127762027645798269307328299508202999469187257966603428052609856333243398817225278162599066641053835210416350426502546037708186214401749316303445636080919198598604066255628523524121782745437827383361851489512386055644654675283399534448097138870803681071040972625651629080144936644806879007195768709559991479149476547415147626646438715469146637876314179159929191712761534416422551421107869727729238081376448966456010660113897445952415864850208617560792204015855061568337816751861357790668673527099096640761745769400163403795970491515378636890134561307133445471345045048902026302945354594665068894588156567104782779937649420225492206573359489784873910845325488166148906656698403525091262907465499204899783475889214587037517967893324458317766021041644875750786702991444849023713970334540806562580708210894708024648378597673480976025274072114333339596956772336818271202914942327375125864257965911746693982102414215282417767374398645732163341844163236734530706836034690487184626883635945407188776432239063004302508760579676360346004763242729604975265351779377729535464674445625872999920461007677204024239754431240130470398737770004476417867986039523911845981230072368730305784925851275238966710104839005727515778283534199699017724417762176163265114519321156830302530426167284781015920650333001308495776594550824588726176927568903632084020638504136532112018236308110028279935134306880148759628753193935748132714991589008815039167165319515897327191831263304078434003316282854424604352229707515643428715470678477192731473813385430284558439320098247921195430897111837637252535812570391606764638706977371435835188172222599445521391085069300189482627388909763678973235751996718923584199586937504040375332725643552200447458163003448033595657329032625283512435910918117502866695483173929651578867284409683918650888091864570100150432992826782036178563967031844231559951002896507783548658425530903061885823247400979805563661012378581572709031557713544317904585159186179173398984113046599028659764478290939962687031248239575351924548587011492506209226614053366521929266616766484646664975988627067290016992357431962561642116711863327693322222474603164250361708067964254023601072011039903388394816692197811245998731004280150082978532875694505380544443045843812758225382924929781235003494445635364190811642923229581519186780845468691288559472612370766101747884088440155230034264759859606215347846916339741629780079404139018688410295958627413031227041878070037172181534343817387015763429665718617998138612044051507537998189104159846324424102465374001137253426532288851907380012384398996288622958241815980190314080652760484769894004988961375068610193968611664763980692068722903458907977844863807909985712706201057563316169198417072628358432630514208696330119777139141251772586877615550340940364097096245930818282097564972139980077908230234550077775379937445156449422107133212171656260385336154243713842865596177674959955651249863098398390188551813389974747265610529554774792774580666146710566573534971679485027401900526090105243965855443502995866110498222526795630584631506755153901576601338302995755475626812000160118963852386682741710508692290081030988446756811934940298631402532063452392386810069898142214924205701333220709912122085144989802243856740207608234373818879552739454017144590606166863927251932198966876095049782647495378970947948672833596307218192456908856960088300162908774851315509850057863574679721269765554563659127301458556146810434517532237133686083171145893982540989222837595087519246590253299419656710701356941990399434574910898057637947014908698874949752039232895471523681115686562373672244446181366674004125257157497061125031678495030466046238187924837851319203849561061808088567538157686639608419582960496549550654218408375313352634027394708070935394344651779779998372301550388240627232235669698006818024516112762939381345483238224357003048132830340004375873902939458206788700497270479701994436703775751161082495728516757179969927769906662512336651218063443209519548217541113291439719699855281580907217770198847101458432873816054320751461886402555452059505110994566429882750556422054907569673440159837870207638571703863087246424328145480534696719709854859780044769533669132206195227938339767539382108149669310224447505612228715843025480951815633673224276148693816022578326875905391740673336872578428017351626155321134331035484333296966471138654136269304048213345210598569761482865432294920386004284786172642320994147353812545010082034176929002957833022011037203220252226791143863024054868342591042595023538851625676504718481351491894130043774736074874154560563603011573214015439609375191668002334595311643917473124314950351868260754773628342547501272069785393832854219407963336611469741407108872221116125006072262550035257381832868333116365805084837993046810322666162234664208254730550424335391226421632243422021775257836489055660450010631924455536816018271344664795496232721352256038833983851144384302580318831368016024059701513303274024925066487474852300682463390014626473023495440724410934144424834039124548960235145868982475451662902350626678933317419955019268651359630176901558834889231800619919678517076979590734854704047028641502175444563469391338268943424383745093332523412910052047989641709590963963056822342035837364510835628801515371537225115487232553726997745940448809640905245033333286274784275916084905611058476276113851293365171249593737663014521329338963750265631144540113165687041448186892223044611364415792747291109158522687707378973186195294299650572485203467231027734167731772643429826458832882001875339109540961388610992485490753487431985930266578197409175248514783785694641723869217851236107919746503751819463857373242578004544826062583516532256170307930339462713339380451995463070780186919330647665434562665846679258592008524221260222318159077123367080197331657153318351681323908648245679031874302703217651469422457845280965269665576426572336136107100526264695391491048680364198504091878555808597488358690838054283928137991475475067029554183825941219546972429313692751546622343429949006785120999433299237344070399428793084562535239648771182858914715102492318954075203559761330310599338188382374550813373787659111832276441679426202970047798217602510716110298883949016146812613724071685454463661870544320777596216870759316543513465964010014196062713336202048105249018154116137285162993519396882670631926021737914190291487811213924789107257364393584069377569257947183482136890965462391858497875087586703964550077185881338551627010094020015201693312631657026732560279246944666147800144019860303003991406961818187239999305919147758301655363789642057349483719304948796302972727046697354599437485918668090674805732268724212052415049394475480523972525549177709087816984099999077033346722924645562406217568842105670555218627169802971921737368475173150567578207047339036879919114830910392892315918193810088825710851908172988950909560448169107459751570566309429787030521709430603516949952103205605884282202090300791863726696025902837167123803983043894814393108587760923435034843192357230104859331720991912000974091776134055889851900584709491342684880243179316104484281125880690481868636668631199377114592074804399426318571170182184524636949871249303682957140965656461272096316879983768366055422330893771111093779852878060553238197404586503982193678369592644193129735712201183962588676963609807329286583552873030675026654605772390488319872952117294452738345648513788907228717113896703480182619579252264140367794018219404693277181478404881087861855514227201717897486618249159717422338062829648795548234543175516714906561528109692801559060082782940955031990662650661562367746320068807010179574297934245355083627551564939598574237897566785447135189064900756064595988544635569978785321742671918456916631835597424418443947436360777182784555423131107262022362784749462944875165627989553036122984474647012298980547340420801696211242263977479537665979869643537411446676538200369433766223906980964719454762285780298812527503597350459222570566266434128638649753646711153972516629901002619100940183956414568846445033449357776747969719719258172230633867011213032178042064633037619993070429147670224156101496140717743612064265653756977234353404437910167968244483318717308320352559445451525546129221001680644529816066443398458589227760155097816988866961275948892499249602538253634717495853690258261001680094811165636324120488419405065847512111378566964800248889688808878497540443193415772548409937704884368772902188436954372304557720622409197904449350718908022517658612636412666875766440947218721077017754270389919490487788325662798484105605566493181236835247879703061632955334452064528208315522943057530586042624431366208802879638044160415344615823020043981206078727689404148078465160596134107016793320009831888401708626011778271027894178254501074516680355258957871611976478185608108210629926460337695614190833568398773280628254163683007952939392641386323088548276360231983793880567839615769039842088938208592045402619384009868367885319454381188896830690324112417081478405545886175460041021203112997454963047472759208429369458668228626767982956887574213412618768974288398256641417437988001854447427298097176108331190054761769797412044454340352648039124106798701656758846946774341249791211725962043585098004506345091959616853867904632190000606425425167248105356150115060530568262230262396375419408180568783072998273184419579752124046608676108790989416775379193433091055889457273844761709650708418367392906674484162352870606118728688136835019102612805081548889930512611523455953174737998111442380467009191725384179670590606182915220407387982388701382943035464783164197614751633310655838324074471559474990637534280379954932205493057996158745985047082689684516956864364084921950982039944548062767416413048136075176056627276593666652665844708769726892233599639132262992838732710163344388175759643611919349336134049110465963103674701898343082300956257002621488608461651832289424926845271490723270308812033672137712546131368160712493424369178753432166449815015083076734093750524910728181520816361958225058481594506440831071883210507837957346096715818908655850843664505455783997423650179500807578012994623238502805967989455138153076171890553122639961312977593850777647833597240932809771393032979542559401318645404577635524828057260878985236147626210589103550373085468391335316898615995634998976868226628371334536030029188964583977509954404816095317133980685462577981107162703087063996490685391265130970096221644690582637223285018178140075585420181610725178201214481806017816611118158122708245834641597913516373456983389586069935805314178142107312280851699846293594999244208906973439202602540519354874925325353649724856320260890439957961327772183045963610257935857812549476740585844586797686858493174242564942514291997351087598553096017032027373195025413040292786172795530975728391553551949253730463811611154452432193323449281476664400407404815784971724164986758684238842733056139842796147799647727443336732936603426263295659981524171309259561289786068843317538597377729174859943278576569932139813110646864391986534516568669455531249630578824558388998917831198810018571557195980508234742798714952529870755407642965516199199865829939360807553415432728623086204879498866970228559172908657778093299439913111827952528599353578695834593052277321469241214625856108262054309740431570022711287092271568290977553520452275894022456863078322189201906944141108684288911671287487830317432818400267453205546073976322311155804530141943616402289382669309371588135790693129300777817099079722215924557274819899060215788609445530373613689235927104977083123704486246026544974540491618878040042401018037662448264389522128771876592776928012976486008313315463643128750250979004613784148355027583312840535558403343344198527001522970801513467567618471015184456596720612338813858487269411053849732763843663321191385674395263364474368193291047388275790135793202627709762703838010649617631560043119003069772788117783980313702847119606202764005675449332307286866229227970399093986532471921615822459837541087159275344006914240624590182339744853823901351887672031161840243984891960412732014458426298351804859440468629243273125509042639646774112698615060894161159797262882254153915462165533584573767071298623254938456517616878556292070304358073962123794949513565180272347697770772504174417116104397078086719466680093359977434400477877335693710037042833964345180503764216738463715478283048574475329635284632268779368318608528885877395365443460279873333612367152367982165563681283897774883301702024481788311877250146566739643325451699054230624770779037077076470621676295033455870601109457532285542279458972713104462728528077226682988596253968767724762100800298239313825810615080700022835028474636182650535725654656653463961587412239469232852088137576516579774964670493176864141462120936391083290367330408812432822259802769834084556058520171166593017380218401556749857752353897820326427914782799719734114861179759324639872548830933679720923543395070444047464181865122921072540928092823356092975351159006990589669641713934939959800405969149345773587685460523264934544675878397211251592705588023964356232472077821619225831676257505790782953700688286307436052262224796674831396654719671374481533102137515727549367037110041204925671106394458108504091139800158671714952013396566432966599656953880558174720432160854371831954908108411502439425703976327647783455115326314951140813595986876602378692144413732270913103331036840977384610573676932777614941050401327317352465378205471762009896301023728219358229137600932919740561369625431117324075146967519480503254646963788630014268566909862559717736552951550005369740886753159554601736957491182418265988484504475885440224638195579690118066586018669178881314273850729324321439640603857362752724715625344727870861191277695862570219045121832390420428277265987345881271192720313985322734015470171994072305212032550190780272029115873766503798837626899125113269542500861008582231451812181320868324651366160855834767499926303094595388385970031055672010551571170286111130783175517778654810641507754216851329859114831599918117763905476250081571536273511488017355877518502291790951641359316793744160892963042668228078465366926944064010302895369852852106378662949060364472605306847954481898057335764389032894577895829155700725278330906166679966555603288627736251362144963867917985956992665996381775028276527359934589534906585973863862901097903427771512282196615775322650999669120664473448499181072294976096316442010045106311018726069551586972214811074414200470955016550001121914655046556380176381114405542582903257631904419206948202437842389839719977024784299432200756618668413590359096533383978800702300033529016714967625742881271460174959809275398462072451376566777724081327084799458071298266558361548305237192103392358033531328800212132835470347840421214257498313613055266782767276106077891943305656285666749172490154612332571711023593891018230668190976943141803547313105876735368049648465020763790058471434176706437665653982036590455793960733669584731508911760568927469332935850774296782573613233544357856246104363183697579581932546912943238233494478211774566316416112057455511909575208076908570982854350037754767123898798845821083265071672091194163846760483130941709762646323110753761824637652709171732154148821719117619924807672319585465319389318349846967355192600217568492624148769810513793622558580110229036380553197106407393024767793626500706439516837962012438942498565932706385061847439702877406748912199719061755323009440704533195467230184081074327492925284291229503218345650661872222963827416845665199157055000369560473992003175265811748984655527957565717127111469127633977509597227561472993927874234896551869897283631418020183260429627055893191753585342343749703748998766557816257726946191005500635813039441489277367889743390341646074126993316648646481639886284650166430589946518607324744176702796053848507058242468504912091525055847693187465622779434138596091741093691291708405735381945574012104549804924169510734575718964996631307015604890918512671491528179867134304287053438316175439188710593124768114596101770106937164205860255307446896923605618570969483166772733067114602495415920394073178298880186595717178752832982622193922310656114852652483086491456541288981813809507394730578344928999696055614571981790778491968604555254891180856571270773455908972945275916707047696600736792997167373577294796447474104623617029673461442293386165887691266809256924520331568295416739594015700408152251084996556519968017103942992068559586945606522473969535876270517344894655635905044054437809153155839030041536391815917580107600123303294984660055137416071692088746901267304634114675504464728609805045890219390410480076224790135889714627700488468144605025711044789316854314167223553693509157188154830763035544036012884428592961833912915782396202207778851556574063902038254629767012141605512050864948869754338181475667161617711119871191103885228750977701808394407091597610775731294346384834553441490919016268783136883965576521508112094013201130896004467629558538403801454641931260069974877701363584452473608853422922790811314131713849972607658971995924487244511055203867287972439057733057064700003236607268175421436132368579709429745804716694415304989811529753156020218954941382955099329803382957130397014761257155915752376167894878906424938375000093549660464516729246407301813725299307621269103729274725368969203245611346931327414193551729040740724710462324863040022922657715680538883329816703480521526660058855172543282630608180277913372236127455980148847423853761656552523791522959897022414036809012052651660634226601798993258963289043153024999400479720453177642085198862730818804443875248092062970266130031314124369185274284860758776349254747164959965080465521061757569842510678125143342468553652143556634367227486861761879605832205639004267562765050541956625808823205793344074850066501064530759606022187798147204070712551189539990259646166405819973370607987354481552070185027395820207770247474453771800982312620247101607072523478269028777894578398046378555346662029426301951186657362422334346200292898599376988896467042370608186061335161502957897316924359183055001185626037016313376912880572274401233266570397037669633481711052201119658911983761449448108350991388741986959875615294691440886196411050656089845265184463787333371140151647212604790882429479018727019207510595971106032488222522169556465880801355467968749419776939120133366250035343888674561302617565335552888974124267796539264743700567669856001845884260116437435456660670736794975505065559182791246592748959198774133244660246020038324129479904192933153554120986240140755044181451441224297727065181640566646060546815964748998485866427314697506897721483196504825274857202412099988933228022095334644728267246710689843000563049432773605233731902701459117324984577930485563434693192994455831334866716379036497418535358812467899985994801814714728014438806980041960602302250778577559702303626751119913994381021377370939402007011234702488195227155356490938025307995144505671183260162070241040762094796755934099395745511577454871599617775037096236486251825962025055611903580083609007658876237342802255560674154136576815006252886156527951103626903998098001774896790317641837779737585497848942044691146672479587419328967244929208250853864228203075808538079107315778332802466434763153410757562183294750448130956954137895890874493661106255078141613213287241520570291026167503429566068659815247967114843377533327620904769982232567268649351240394908892121865298565087781473103009188226111759985079139674143164325534457465815766795010994982184410637238002230260528946902052293168020457750325715450369973146796386869718214720708166587895235668951117475911690619381344870546082978848476225312238733292152373019389398687937373321411422362667348365466050710595646052442121648691622524956854553503992643928209950554642734796640405121369258623513515649705654202493914291387261939371940123594963770850139060444131888863720292264990218027646322138195014660837725712992193250757855227391978029649266262798166305188276854000984758041089746717259943736941124865499676821864915121358152516270674478791898719626706529505743769148887245994851614699788064022919916663970083804566988096650629863029331243512195150928102642134146998972902763310936373335955351304731756022748794376056506599132806861577624768333957600067087651323939119422739844000235861369579642837016589441980313942741954035707087136570752965704786774973782812313425184196080561250903563428603598371707030359635741545622338247219532024045864471373609321793868041459766192149278867811258020271504375851455895652334016110309765291658736478518356834873533382467872505198315251205796407541478378823098872769251520019250505333664690073348757447962008985885040975701024738707787742041101086944266935634310992606107258900307174869552300058199242563052965112234998235449786022888381567695341143258708113630244874048198083264164866672721537961287511197483888510607833400943844639999934824300335766101588065446348048071225396623918042928234887999250777277160071159595319364217587360697778546560364382168869692627473181634705198818296626640811812699397594545652935441397254958490628142218225669462003475517335659201319897017966112262092582092260783012081044591027264146820290989600076500905136897170414655850650247163747408061331561105504629245371929206956422790839278848762198610802920335526765619666943697509314130988323666512473347581994041937642260638402903218156989220105752196256033675827559276744688903096729066071203763399995706752574115193862958874997068854178201451113471559932676503824814993609746201411900892049475662467476564560155326109184907777357653562635518502988974899772959021802879784496906897080336162144278740413013671241494320936631814645252860182071630172568943983503307886018156144237134208245763441300002608280279445545936256757904883114100510158723582439634755219296924899352154344627976866863913958964740757104724664073962101472816684071778060972363618508389545334334669842066833397823184195235320844674538006829267636519644138543943052722004229053062981017305236774982480143961408729820836023841756848781351548031049520484054334607047376100158448066502460274050082524635820241230420297010601972823832322954686899518622710794952102820386894239478540663328914303698202174710904207265468480102697241507663837696102463071784626001563710079337335775053300978241606324275927506729751966235170969840375413537859792064262307277339414564882393892348937838130546507205471348739041972075227734702041237561989532724239852182266091263120005669645906456553468076865007697573468904338877000455903747063134624515756635995884193402145296538086930854731697505318825377689713120776725577508228311103846660178260061495596121584472182309933601768235206747817089643248613335736930578441663635462687256590057620154707182600634918581440707927798473126190497506003133443708402814267962966654102769989499878699937940678502850521303017575443444559343422646494333971838123149619114835585265170305836302858734236890314094337541886249809147828990880647984663162583209879047099938249003331081947248774556971792315807272335473643040221239832921601700882592520009710388014825695228137987617498973607565115698927456232540494818678561103995111522711533641452452736087529352001574770408553001017830001455122678934677853899911019743352930002454916909621507249477864023713914523375013598215952610131532338827272049582229631721421501946263413811948235177769532712070338143722165829774030225403943631513159311088229407667326304634291937276530109474894812519196523873579386501724261399972455873623432371534535543457737769896375184200823152333162060576787589963989335827469193466336375534804525034864624267602368952478719529206965586781305304103735436128188189772468440018560465417863915202668470995447479073119829392969387306698787826811134285783925891942237226482147911233222786281997860656573486681896485098862280333961234540532862343289392521528520875588098580036958481159601985599498697333691441136774134196485029849520150946217519618874666788563304572503234768525292098455247453201019763699510039926324050914392387690003352308466919439749537972526750536098182372743527732194233945770596799867262865698343908842232684353249443285920240298984063467849590690181668211209928673564852014574289529809231766681350578968896593728995194669183704498742042020670664609828227505879879601511861357788237932795778324942201640916255054509684969821855067637513700932054403938751177397709824454567278257965004579028834800078560137869799946453273621229342225635483444061940876808397628650796849828415930608824637014022931354410897383587930476488140743706924072982374503446377181823004041005161252119383033741447835587692811560359020358847458950340135448111425816945294893154149188897865632419206865337086810250781979739692763504375854621186250917750213307903080313273397468167550123765867892090606512593116246649807331724695036868304032854564645865500217769450767051121347174452987493246419098868568682150819161696203074072713388780588960695028918483068688214713333520037065371881599891761043977664716111613495708342005509592844451471771336183562428845401126218515194819495376532782286053215920217512955682420563699649070735846049309053561218762117425543393751286693979023585423747216173015288485504064480225005738700408998251430317122496321093785855830173943736203079634109921886430202963643795208583243320952562500863680778000360988550633504484865344238634463329023185337544326322944043215601678894355732863032004800944519751175011691969142276625369016649605913581430682138408654512914298145695987942731481531131650151566534406356744863764187850755946339169005407656184098840106966629562640912858698858527489177600065907490527926496451069306710091419238397535351685007989080995180818723650792199268262250363856359291611596076704417333471496617453975927844623591097294725804318693270472460934013243459767761741176976858372396021036779881229832167897205580716045991001548879255424520669851410610541513546412077414889164091134337322878205938024637983513829879017710776551930494538835068754926584376419481960019159356130889506066983265026212893696373867799418023548302366968582615954756538641863253034777982205569349944967208064268716423694171204899714252438830270391883104457394539608108266613714450601860000332514514928280284482313598264445222719644612704530184527241484615010012089591374671347967113430341783050559802581517155274061348699425789924832835248237087661002043388648963237572034144441557669241049399794623420020014752514053305497556510232810002205477883055713424482056235779642037987737443161695729962966893874985368066431294041313640887840561226659919751477173768512034878522853888559941903482214169539152197396460563972686100095898057636480727322338794718455573673581200456513648514869511068715308056673861049573803808064897939065682416552602377683482210829160227711734539550080077805692836809151082907326369495327252742837032591815916068896419963033332661961837656868964829478626579169743687850012811636907648596753000965966747251899669448045228271849309116520457224419562406229886857384450039287160578422389362471890024859420120423995029299338555757651095041017933860693581671269270960172808382820881001180780606191502448821062869896874693497946402305579994195856415330412201406482188377755972494774156136293523978006522458475058264355260304677423014473235453494712738014232519583516232015906561625315342263305574265093715437503430946527666038603702651486640967874113025869288390184386626964231557465362866908849850819466760466715597816322622590957770641825528881498705363213191890959316167375279343193151145702871689624157438184773804431554628435786051964665464312666615295853197832256161470821144606792439007949844696300653476499080996630558584542190964836817037062593415466790618177889975365053016924908273639202286989544125758080755921463844842118064376074114621257778852519569526630469830744033969119399407092649066592326983216730023546059936615467123120131537078432356326637373345784059444262420160723497827656857718161674211073551310323967946622141097335759020605161751754043282201360946598877672254823309022833251073761941917969010407591726567828610400538310494034082286746004601063815340551842376323598056449450413478243062868250459056887218602711474363831142131459093341094702511930135693404521908351836101882649264829053762103923763808807354330846594007860555748880029991303687246032963227274233022046356329032065755432640967129175416943111307750460519677924333019114630106212913085151958908761830876132518798690130190496182703886234606949436061472829775036840470550868256506747822351320137294204402834196623546557741588799290546929165127484240957162590792758711670894989002081759971130517902181124285415937633555172602885794305029921516265697106831016473168997107967760679933746362147325445454989425952850845689006746653759785070923470310265568505193044284438679952731991988603623982916716763432934463592128532701280086126718022504386501432061058353592423083409289320280782721665580171041641483962433429540530772739353638046429266561035844303112580215095202456836561063926494281374089535095475848243533023920941419507807452337539759380234818025539275521148622806479095428965559084568538454780856395391980159900284051795392663055733260130165980493273249657426777548859881595959501290110145974780037844651492783280285166482759745159138550976509211680448809232581575915883518036753489108786064264645194510617922797711014786534886052105606147387255324122997723366287453174254935820358480986719167926574565782649275953978217240558977652679000453890228590504522722414847811017481829455886381797710381105497894871320785798739247451772379912126496507510490652497731683834498514705457680835195595956507999547364717909199551669091756599936101078934567948913552424094959232208809589134767984958857319773237471882068664938284809757143360410581820693678191638868504929326860525658525850295777230166993317459666354953833458807036500947253788295832293855057156238760659386695956208396213083602939927200374575331607344675574426773039439594513197598404456171643122198747486545526099947831335133215153286994062885110081833186295467118171722819461321895027512574140731540386852813615333887697912829155526873442423176404523439332316143538539859480847006288454277009000304561543321211822411197670364823119040536191313218345101027562202933053952406060599841728268403165624304991177809540982325753688900641283529142848695673086623809201693208227808248188175405055028788094819562531641286350542351026096191266368748306710672003248652822010056879926069987087472035607770728140872363605490041070138582542819489007399750146543144119645654518249634758404041386316358559656690859101249944725072812354371606685113770788059206582333578292398988744759950536341909903042189211183009819756214732991718559637428424166413992950859300173989094182628161592266402049439792632029187456313944812895520277894220614161139119553543094419453535429632261967929823064984590160619457518079436366322646256235726977496806882029554222267556289616034911595872322025713012069465454234245124407393179236338271875341062820003653757082336204121414778285865813563237767238965928124573761724794400641828404159242261047357030348593248820373422237655108567954203549389511956079187353883984844560526125387538743275596044077021774894843403350247026435577740782736420470698701848017827334553636127524825009541970678683653323254250505578834744390608738262082118385777313044265229978601529745964575377314610009714323635455496527775896627920714602239591883502894982839953961711276136054342042486020754411281051576195827054928641342721566972671436746321998562601682271014127840181687329266864597687442389439871040749750430295603790780170543363499644104170946226480242941009892750543331889728002225683605080076301753930681591946516684988150354880866068205207299047776579761161801030743613590119900101440259020590170259382003434901024989658136600453440054560043940781443927963421471076129449091107534716388381437274342615310431478819910457320965856015036983160909937670409916692875587068178193340272980677329478845998420651232288977026848616757638272634033035177336658722766476264232178546336253320431697861483635624683197167291302947047032836210074008046286495355097870199406656578170145531080156426184841566628657550571506704954600282512753472208706496596062400252460677089308845148123866685341830944397769008845640657231092753696257875677290948861292380689870938226701074974185380056764618256255999514027167988429906422649608241672853651035178575635684785792756264552854879203522248913813079569958068861577051199671430954057773874013978296474084665178177196324353120263976849147674993221394602057293977256866465659667466356746098110506711198351787896770465457289159378980118975538522444093410451084638514963335796359746466269514157738867080413223827162576463239430957103928930187682747971270985000841713324594466033800956344991409711995953348554470103089666930595201388293692757139052873564162831548493753891432803688996145000679194194587395083466049677183890524783045368103451050042423482202577660226003163424670876398446252947993097630167790539566078985631127419699081597311941330128336081961636433850659933458655061258422605552702715998460347865088521558798745191882271429443188538791718074044274728843708239624447597298905477904107902610638222662904962658704360336180673496234421113119144302076394909810451769982035957749347390331051912440767549071541627137842432071459434818453910088554245468167699374620541408801162168513726976340043852910294671104652512865607893386855312037377221876835896083675536831440092667746154728030189546587463233641861281668526322753076236952891920587213371997119472462414145002923285911469784452540253545653187190463262684652803380882004116717909136276534679996219692098140958863346100346318059182897142087967107865391535231630932286889350831367241328965659248244517015588106193011298629583226781742647005216369129137037949928589377820242634915361310594326715697804194927929638815097673176310826248096123618217642877838109795982981680496062850551328948062444031944547045429993188143642158816632473501168530295584777277144670686517749483318788642028379105792584485438169698072228894730822821893210925906518808500818589954741723147822042781521125917545180013256805041793526996803192636016482058163564712336101373335514818500233316997626974139506065656299091726157675712796311900191703851666883848836482808828956149654840694458678730287345186333599024981052227688069354767097558734121032439177368755083138313068402549691454077976036345360211724928952239444015245746554448029574315358215890399076090292291026462991037142829080315823675863885749938678158395319592356867618663472770581360984117799288482261509162708020892568348815017366205004355977394023047131306599029609975726703857996086304260586786136924907317481721795582242642000144839572902543152823292403538887718952786428077972591334085466911082953688578344373143192862000226087689769076052522184828068201883317780977411211767205590488694965209201460888920994225631804905458566428851895725108475839388428109680519682004969500050999654752287857438502798127471138347471603918490129542894997431816074414987373023727459460499798138896156212080497796265754442223721768192979118345968357771321614333541599130353788106358294974768837225802383753969907161176725248380805228634260979566514009615661871596656172074787820419139478912691230620191620532312901321758679858816447574949289086608931689208829031911735618490340098895318101985893778097137199513628767202123480546721731269688491033538638126567118680325979863460103151258486751231584760628360668439726623145436660286805780378822075787130030393788221068107077799869371783539570767900914026233581970646625383965616648582431038071747685416689676194428029750869881677459907311947144704978063996241996039980025619389647359348609707364919568875907570021553896162621048852508256458854665529602636504431507860531711197244882495910941626742261367474042445318971967313522914797430539813957785805769861359914307835973785010637860080916915055166109204770248214715052485932357714708421285650092256112382678861827367392084812075172254064643891293351479900118943296740684101230864967467665041944511353042138700916738098757937231360105447061064961718243480022445231193506684193088147587561172518146706892873892906552858197714622926688677687089589702368974441667809020500892306514742258444194558363921970251575905851347635834001030035730068543299398042920929339023086934700903667853985442266259187557323739259475902931745177387494735757438548051831944078473679687623345548239268487060508307451601419054676597573109369138683485755827942401730562965820378638303155807939349903413074292684041197602004457067307729746541236944127033431608227643037719470006307010955725125452174586048958687004932443127042275313696717311925229570270313171172716717965225670275820467935472410844640751289891369681260692147725163756174152065805164739729540339878790943947323656183056456710763683670187692367385061577756135385316098938212812512936363037878509089983903613162432848980740027306940489258401374218239754412747127948861879417463434494713006200649465138746164337080928366030887862587862358719646086544065524175518044353294435432906589177107841396572310000434307506992682626022466759668694806023749381137625188373891164068101795580385436041932079236094469762163125240780778480169126146432768583001014655191123910884933370032749854671644955091632463345328169771103276798542430029307818725152864126244534355509650631460005879320141453744784383762226758622015227623890076216801671835755689784213515108239220165622315164394839636126406204061164806687485268081883815688883380192361661185718166038794116903183731779949471512233174264578550062013683323438800739391334667782613495883835238597644527224899766100681600778368235940656601181480068193465990713191939046797790699733052436006968756462157303339645265031102963010958220410927684263230362330256935418287222232196740747679985398871780901282614553763730934179837517567609428891131116191535265959348899530973817389888824309030252097786311807138034802325835395999142047019659419560329013136422162817660840568714036796510923535852482108816412281382222753915853849349726226435544066740472307538699687604240291125291109487850594290557003122086873482975659648978632834738025872509288718393454794180434889276570675544439115028402081248779629437055458375882542303526407172435709913300130407755062777881561518431074998059413938708376832555630434070923720387691215544654764793948225465498032333004776004776174354848723717061513740405488820378701948931178590557564238536263557625606910848730815331157868471575683898701825933125679380274993592556299280491054663501260677300995142617172789692577014049391740882098073719504724380564118164164492665983036437299787124958345853216291782431100011855022502301658660058509853557343902963464948603755618071417115155604372297773698087637159028047345424308124599511385726428967900901897570751224162972422374451567636421256266134503046376869014051870714838081463581420364044804598047085171113815855795157631126668151574860006528711011458150996324044178985818640628111518642919347581419935791030903369789519207702079275892381726313232225856990709231586335044526999342791516325277719931666712629984029654333103424498636365119909645632062784391167240727056027494871883818502258932731251811819998256741958455253020932505479877513077490804147984760948948087792798196016889805704223383874858448883788646081849040876055205734013241581334468933269187079912084865684312641347332483992838144706459769643027472536077653811344201195506511311001068159795092083805415252731992600980922497618746101858440318538588678379380106377648058862040468165151696247423388700929757785613666276196701136623484942688030842641157632359503081237981572633282189448237431593416732951064902600672719845603896275490430246178824597741866306394235817073336797257996141791532088220748123951123701633568511653114523953764765672479900841833322007782550608882976640905405231636009685390585218483239213010302433870234944268067393289639162308514039237012058995402247134258535265068109855876149479165241755459017071113999195551341256902923113972142589822930935848338401315199274292973629947104849622533860327823500110975281359876317679027255395328140877412116805355405848282277965277398169340544946671921784852364162666106288802784499837016683590309054459171397590195030905186323043095543492346566968007473165007959160093260832346396960386915753126046970464435844327600107046405820347877671772915661030885326653862215451513047450279412716636843042484219118705482985818053831252237399416147405292210337127684259728837267858989784181140703384716205433103589865556911078722433179783922366826266163614974398575377605337304287790224051158870897747495695820523890725757284233154544186464822284694385889356959461659905554317929849406148656922366261060080383912781007544377145638352544858697573936024415109695234058647325931820095360686352427771777399631928450852532134201596774642288980313623463711200029287709635461053785999409545258586501661322087571557495544397801108525702616011246839480424278988461203039219985665280784995861250587520785438819122322282959105117831646997496761962804273003758236109009656520991750132627600111639953236790110511849701490853208890624154114088350905779678593464176380427581681279260697915122762063878666955816288159869739761211201216640540587344124314202247447490617476574775319109188733022346597422563874258869720091833105949185457626922622657123371084028715948238153527834839899080161051427613231617306693295173730160849851434355020330680588105189017345364748233436829141743634958521138306287508576517604180439018556771694727616129401044884880134531175281305641624287757561501598555252924050123612877142880890672152588845771917019596518666267871349379893873719537417169479805980433047315888026449394507384772565084283412076198144903777916891950086067277252346478460012331216209631437588194855512381832283828330982690615920150924220842451477962657488974481118663275840736750708166237639567574270121478916256641854680750374329266367524372051362109139350208307132919138653850075624459780084898073975714587841811643262683148827657071370292120543052474752923072809786743078047789888769045257455688110872383098493486723832729108160566918287416347759379394813503407021701967708872227200708225979931197057279372600456821393299721860670765692053031342066022591908922694499349800558827409362327170980509000695147705490471726726212344571844511936716219396731007669611454167623207802708085784489518463112414529024063626563254090175742396303283337792669816121050842646814940530205275806012405235592312643571700799443073035460400410813416773674452921431987815280525720002558176121564453723709933999095012558453282548630281626229303999134074793231942541258929553705882144339698712761619616969330726549455327199185794521299965913531705865772707862875728852125485205985247591555833445632973447263893674172389110903811952867227835674566271843339055565584219664740241389911228295164764688362044642648383372465578401981036534554745589420086176105558383991924205157157730224073953768276029041201118881606750201624249381861110423420792984091045476139871636400857950333496261662493114078995534742331112768231711868617510708942741180417216589252368727611336272863599354657572085157283003881192467455564703386324981966587860152933824844522158281138724609897693482657070305979794312370494371927227531181432633710866072457496042277607434451747449180398488528367602589464517213601871273551906677138687059430452721817085940161069207181342241814281728506929671832127063550019155818620164669907095339510637010148156037486074753734788105515808073538773062418517174219441994450195147790648606599728034136521287276159451803030760701634918789927870433754768359832763406727563405901221659711614901977633889981164018900390324478880360412183607477752439655899813313655556384830387566209755721455594234310103285619693946538757468290256666234013677319844074722984805754479348827710354702536045410492625767619207020116293889082589564644873603434547317606129463847987272295701620469757475980504166257941057599371358103733356342430145189003610238581721172946688526887620983972627476169883817595927422039827846493487809188701439513249723374610352644675401003483495698672865180487515388964634953377047132057089741241818527157463319553639675063679989165110334297165549148104906514993807931488451300082166884953597610847950072156187706038200834201084359387604000311194145535262900973956862051165064253265175620540643220723089255169884285610602153577475116489513038352839102765224101051083597342805792469960078082929428561988432712893862842821642177831204724154753474385192114224402808426121433187274351289323762436380859700245628651667590863661724907824060366424288611168736090157640596467174922806727020940226316361908557751493901605447076238158406435040110546424968883103092528324950746682666194643255580222666405067822091099729667140602999505280881348094106556645575407817116799999714030584749559700791187856867561311057714364306303446402650706363955300259279809210209781770968353117211492812747416351706313362742005338186191803712410317529961598517528321332605920304328942781733608088633756272998889646047624857870685931816003850480491745896706496244219362258458064580802652923887428785801195995528488471850831708873223832710849997350598273347304152181435511838131224518315758649852938503531351318894447566927418779630912949481207533866678180945582114757309135520510041731928373088175174788162846716739807404177309820999544078644542479897115858819147015215472358559746424630307143485691771725255514396588731348649620321468447230395093320646751980844943027299390710614838511266400627914720591567874378457845209372074213378597453585507234628560814132879945165518648092478725890809011788864785581802912339866540251973941196160553225462900954341216193925622887610837752978972318016223205912296660869586265490437500827483108637690845709861120881020726222341228110465411916710377643380805086989681036223167473598085212793061971324400623771278878613706768033585134556125488585579767105709984618488036759393209327317057550645930649713497238559985983487616195365730578249933088850870774577243739673862274633295531900601143612895211155390525541023880700565006147812016352078728367247735968019201359344379484362597328086099771009650639442566316803363366544917301918622011466922782548536136836554834020254483970322077707836202699363649583954549412168777742233589689759524563724043797465919551208182097724311031257464795150815237098707794733261550436364582408636046534775464259564268897113886555140625456503562453548195047820331064715018517723258751141653293152191210292197370381629866518047989460065510366870055611740949930844551794336037723055811194380510096081133754358431034897527240473759801029958753922962463384880490731578726313738348122727367386725665373257876807128458093751008433083091724781451786763883741506976246625364664027517046727354731022845777658292677033536671682506958608667330500311588874691819175687736234389266060434094467411481024094611381599507270723344900381453392245264798871206535862517392702189267070332655534883385033316348671973178040366829126526860577224331511025447085809260345143227185049002084207428706040129580273545462450836607818298989613875521742829355190332418556954104215254084028814995402223817732555370140639776530157215015557995493117919528023062797509309265932964253164696803400344685055170254463527568274387430643777494651508130390957951686424826897694118873655321263301217285375960830243468000753733949391816964327997684151819057402967427150050837423717189993028587911533547575821950634106950874097180596753573812814715328997292991305861192782635100413777866347504927379330307483579885982456199527886530371317047662848839089504788714215991035268492863082199778572359478516138852934821993475491067807443015692919012044990451025936354114927143691560365229658947260698519425262987483755372871182228779805575196543234602611982914754462754714466628843266610158135103664574887785586421932951636136454956872377054693304673840001466791957504263615643044285224187385771583020119145001712464161718393875604215168015069247469651981662341050554959235593935044446590117307022166538200707857970635943963687689822186503329311824685562782440180632134419518778682257709872472798683340139023377271829628856102383936890747109583880764524855779523298447134427040727584017022561631177608672851699564774361033060080690479191880867450569733628986268959376601186044272833779845411820106781427256190788555596303951049751969750375365327888317393496389303255500524649520109553124682157201757001561195264099669271315196749621746624761185139481216881411463318839746429382724263037448396980862709690668968004693830586869401512125757353379741133698067487351725068318298329899987787223198246871765689269587649072772760144774699962457274559443121859561188705591910072726034612828487200745570787155359142251546647882042441547062750745743661755489678074345512860873539989525501865874694734729535837670644824019712603923337513354657295257726846307534609998296867248255392266038293914394471742537280447682550921502622607733467231309080621540240301481908390351550990392203105195500158626927851774205479696016949289854371980909014964505512117669124538852692655452085753813743586021428969370947354981274989457933595112963411110646987532310653791658328419475532874077920545982707229379706531186850311751860210522731662800101450360228229305812915538563545677784798798944646109134236976503969197601596854539539196926525774401356998893296059403987685246223654011781390688758399603478251966154705614585998062101671491307368223356057077141813311626086834308929301062246330938645624816134530791078209974208718142008455501759492507414492575655280847267570521490539727843790275228039245472386318117018617025921963260325539150487170281684063617373648581293857804021214098183535469912951208164099425544535705241136799969181319196861270219116364163027406113523565261328411863399996039607512766707802648232028031015182696353310303879879326308302509785334911992505488092112561649946403468371790311429958765130365381290943485614111519154926427206590684973890816438963088810746950315531081224329027215063074513487674417481864067328968872554295352868846444223012167358880380526212068089919415839363882370751386487758013405605528238781988524569898543577167962517768207073017963621855397137519586903081130500535818711518514814344690791154919775674712360307036068996378600576301826929037891986966654421182613272118418981996313795628608075028341086546300274921360256164466624993351572160350644371497027502573661582405080386286260112360889452231627739409757056759371351864876101025939706789825863124377005602031760378525938226819269273041348378382725776960596713201504078199424385957966547301589669274718706901306465753018471077030358479863178564021980107267982972254722398452603585695198700437720104738390443304629261646236428004625201223274553659722706671199278769212442432377421665174122698554227048427134064052477361045334565857794418738476916963302809960812855722698437422726839740608192673367559844090006400603613415685550475159938882333533779939796841142157092278141677861135862504086409342990882211415540063266003139132718765235019219151709950942754332219646400436611325682316693396277341783155470499192105543489456313100489064393271170886866877499846235484893946280979459177560904416432652957016168059251090635459497022271518504273641068037869404451382862827396790515872473531095231758704790307699640001835567557075176426243626718334505247540222714021838237257120510571560894064303100997506073831420148190955145505810855485076535578235927660308365300843462660777724095601986904670869742739342287858417864996439743479028751723818954001704031830627247105459700488947107942704330954185655651967158847246720612712555631093177883233453590974846191920284773231031477514909099873594894443513528097855030096797096610627976312175954859619000562676252415058694303477800135247982643165947692880885743656489407514321168525156658236979885072171367703830104848834930010044272391176758623217375047042263391739192828229497397554187035634822559576606294260692400235742653437931596640432304524865369060464437443332936071444736951801325169091020495072990774165046024428186211708739280699128708538868579430271220120770541189247866086437394003048740907456524801479573215034579166713563863935468040549483761726868703811140309557739274132425653358514441419482147637642663544303175658541211161202110264277002613891522150371344253591178006452298824195828658554130771436188847674995948869542723417844952621544972498189194588469275966373814024532128213497039999341426567231628514433600177225298611518396713958079140136156608529648710385217054801015713928259387906000351464201575335527381336092344032844712788271400250400708870444413122200082342224140874481516470237821061074700693900260287566584950466901808144502220761578505676348691114273444108228368031097627092182359447798337775811952886162724520325466939454768555300597572409275233477834792808563373955194708171515956926590232285490618476251582534266037105540274421191038661531843491815610375645130739952954937796740055859401872789944765608991893099929163274386290775819311805921083181022763827764585811250354498235068402762382683215914675203282763250493950641208603539821740175916592564537594251306723341354716392160296950101382084666986832772961129115372969629898364358739214000365954631721627930436032443875683464948482680243130848622541657790727764223019298526723008048312689357522376653751683902233690282744978641477553852767973629840574785419748881193144954669592140482723006641586485184414850209249539588844978625269736016062611833449789686426279172839587508279688286705377251718381044536465641896035707965417859081482084875436191557006164313560153567147513739216125999480181422588806418278326468324253246265744974433630536426765762954377615978878668701842605238306579363852257153945921793367304692420041898147412538353961995504758748482150354285154051917468900143626731578409593965065467735404007595148014649979003481799490718512493743328772442099353780985063745103252512684487254647908600436029641136480191833692707184051227394139438490382666361392929150079430220442334235905899630502737520968943503469849793187706492404870499888027316040057016517385940295684544816218395460753086426577238498236199587284119131113298522040059627321365579543726756787331522126860260960377373353805260177697587158021202523872945943436020196386402328471029398226864320060014733012748136822368535583603553415756543109117308091146809241439131479256473735337186388545538525229874669421875315459004257420466807143709197791294259912254009157213988179310602675564866056133395737348030117001368907430101127087112368332267204205787955683818272105467316991406606587685465923297258462575196112095340181124963984834604266850106228411515729144586421135333689027255926491827826162607873790478517316864280446859644433337326364204636024833146362304532206947118945771944299391782249430187649474540179734417593005603849184028246119563724807482456320929751274567169936782694388713525928963281412515593300062787855744039309138556124577948704931016964685556451970530847203082590210231590991104731953159268308857297036652506748532938858912306659075060387113182645931354822085931411869288518809568397631918253665057919409537903014938343891519778191407852620537916285658185228165607662948626829201842974843299990357865813081455367544474583326803975582794932783395982553826301644413268963749858266428542956153633448560370854100588217497888931950998040209322324838310964747640866899670712269949229160652694207778759968550514909056448764173113547585837005475227012435177906627001230548334486056237226206097719830009866222164989589620731491425907799870343835960542242412270538196226253834765828808963437252988790302060312840386443833288232198511760327033497099227689160371139467714700151461032306084503785857737524540948930898526530942889558781361332095707563351021503785062499459693304379410519039921965845350712021803373854894772227268287813288691714995006752847413584764235243160827962320319386854946989089387416623713966791127099883288425491592094681910709210225913309281253096552066493488111665628800693254133568818952756447095447098567865888380496483041658109036783583656401087180464642643299614602105757289214940676617409082154848876324190303327372204896085115006724156811999471274439967238978306120720640003283164052233638863196857115534201401537205782324818133154431528627986377968409749953249670147119280418598921261406039111945144581867229521223120312350658832491428325330403954868884570573835096367010430420077332944701321546604914883278192972734870031085038891244110312825381424612083565585206794566963678942120333555967317779486785118471917281184783049441758398176022331194687851697683686754673509574974528544828117048473471364700412109922532163227462831677246563729706276605040463535013442242983708791204106785363964118850795653167037374828276943330095158890933855666241200502207883695452785023336419515404563903519126857061028087499896927554258086380498477294329468387936172320286946105962471358256931343944509774752649219352208376516778853064550593687367958049251624021662951642223391803622911266071568421437334944884474357003913826762589674530370128314208545651522133549086113638828314766599665032893165271154585078245438219310878720684966614464548139528222961227528226623412555259324569254785996294744557604460331935625424403469637200981964460422751149823577519770370886802765570129237939789488158131419544754532847482154585924349438852279169908011255568181049401735660488622772500432780232115122891576873319996910979502917401438580876104109599788126261090883931756117683093172191233515778966049878549974436395918225166643346461910528846928372011720332673043126340342534719568244608990782965319388361295716920765983654660247025153424095028733329472030877092919055339429771477900127648676986081147625807933640878469168195672209467331500928157417053339160119014406221848040661393367138293527402572778198364614101539216970633187590071671738510751744798560980265054207678652401191949572734763333841752809977194645992695894120212109079418508121304092070214916291938645241710835028698970094204479493033868576596579382376664476521013138789737277891016271764177464132732194317112911890555884215432733279041828716167764608927225030994234899029322829193691631952023924960905035115747843260776303878432572289717145060628120077810556439602487256546027327729456985429819697583112789759774960106053383329973050684445140047986799966161111335556818732959747907608230788440345216168927943113029622888793496835943140858171857189001024718645538070214268242608157798533009380885155163455851614323392349836552508570766967120857915893644619030104080623743539961843180777443267649854361028080482452627109720516510478777436928468580724945340707388284417987089754513645211438114477788248709800861234229881874341720227079175450371490943438646456573722387222800375248687764129204718617896191764468535180204144053594508503409397537238543740632295693380094601855526533745128727360671882465174044900719634141782010504737532277321894933016053432649562692083749084833680488266074975473385579259241245256663458253860238540409287056594109406932115037200454734273123258155873299967914735824906346650593176229006141101108508161719089430998671068533095343446673856180991791699981706959006620308699690471548545018922455091736635244883615987815664022465518670352800424717260472739254723161528440084797438796895621146842782614979034328420955089132527259159731849578805269864459367840213134412970601730607609119347637949663724309863408971568704260677346071053425742423335705634573272730585804766697752939642953637625259235483549910062212547820114383935797300570989493352981728287890708511987130996575241424695225075469304371343417839510959361008029132824883850776356459168772649789635229509498283250720887482237646310901800616683472946032113193699630244476916814709545141581097161944877590888197734636958268216493582622425354652822230273544829701082024606587331456793144337857335838485420034991619063669643239402235875230081400361156691261653324275615046330148586930146216395063633961623830895568288009945594891784199909642769570598372776847439200979045069285354366459907613644313450660443502984670068816856015078631703125730457558601745304350618861964015339969328761651896055271590939121972282823969643070420891523957838559473295290852293208464386426159296571482119217874709949972188889555992792466941738285157673340027505261455691695819707331669664400979299184662518405569688789107152635785280769163502605118380171445802986427713706505560101307333924634820168959540363435536225139463032983578803683909282255412270861963399896348776705034665436918606355961918404124915038045533577995715134444607361168771095508181508885794681600704075846580631887479994987868496319454221192914103283680657567382087425086653102104000035968393582108320297291481398243850112979191589214103901975334419230314391053538757540704346724238321139351308282604474401942112961014424838160351796872979243385291121976368856654990255379025578253486838975321563947181797395078212531373266729066412217491389639282887062962646457017548639834990385803516649074531972999308535972939328136600906226156851741341887985002544161412795985550466364587251211559573848065924770885713762642431790336795481525795687504807489096423065035648954312561282472202491316818170836371392768705304728707116662590914662412951814734831378318676562109213676554371806572043810565998453684901727242025938916202145693663037788959388912396988928009091879720382850358802581769310270540156379935774487465716055126763382716773695746283710507322428185485442637843086374545950802651871285193593676018912035355502255291779200392482664738665810932108009840144141766156359226712138400219602775581603346775201126155552464949877349452397638774389695206335263541870068408518698280318651863187658244951243308933713054194977930248403379531560201835004655321333181755108662554713819654382175248084324454169353062517499390277875041703841922063260609264761220428381094343182108271246921231098671456041025804021671954239349984242410399465376185908433629407861881415350470508253518495176790709210903842561835626441794433629959910070979333981712297188819186073870303867917287685175334238629753766057620034432983710085535771329923354533382361096266325880589152304480076399905663229673390897970128310889256884781254532443854754489937903459100754065300160277728415906277169204553868469371160154014189044850822177415892441660622185656971495137982668869887596589064129412135038837206226509885996325856076441630775285776318979068970184196418040889357207620115556853117604959568028715761869662303142977919483169730857515320059894997840356972338562198830093361950562896661300699922418964002853114624967495428100422543638153907582429798753849317254400170269775797030403538456303682982249158999732243093826940270583135067162700670713415082543722427255501143352301452425024737105386663235721870316168386313051880468806402445861935591628149072113596576630849591080027714010549664435682369243259994111593430380530120227763141192645792547212827863839273909679621282764095270726349806625192168496812718373799967376738608960779703298576350397835256495584989563101844157133386354079138333720240545920681992558359999495084173727455446227602101268830951152525546407507380719151061591307372734879791010143685009750623573217545889029133887915936767723303045776326165383433210938718899836176458554682465935841073729741720542842447540501459978471876089881458990376659152592348457943888851150044236552590063921466413505844650429707604612678003348739900047910320577899364927948884767974479794049537303308876948064479136357571096893509932992914993903188888538911151046674787715039350575432060516995227308579246545381263027806780312911769895228738916959394333971930579513316434180135255687862335414085760013296058405383246159937747080109173720960930077724356284682567819230789905836253601956727251198309284926385304518693435073218536681019091355896483881358573233988838983837619490533679068450380315097317142941575291660946242258834868105245276646168125489137837463592837142993851407267102591145001946139768524983664714360139454009109753193222534141610458830188382542073875995830202886116040481576598019549019850779748274234121396769140158393274688095663125100945336617750327619626993910069794275516179111559202161372438023113246347525860131515714953432316292076109209855601986780461071295721001233957943108780881146215708382666808695423694680053852807733803581388501444936120381543611314608354312199381829936898099052917325667976016854629642370596961833972653525604131630018452179265253380739651081631040343705115396776953465312618715655374650845952783253751945086368615272552620897687997974867034450367050275258833650906459871684872858945314094633474831136290844695344137486976766197796828867012854674116002907305628685159337644673464208375692357112306155361676643074993393536105738862708235411879638850839479366442572610209898739547984081321661953503675701432928745240533204847908961857507780868911828864377587771078071350308780985901415981732224170601940535349731404176812901409161943038766965832708234197084817374188611299934795340471042714861639847237423294369099793781229288546179991669608648703032066757627156782899637594368639385930130773099339772984840122852820268872687379318015373620924597879145754687691455006396913836368238408646357693342645897569886810371066244724797040574399366199887805535041438084004645506761236665351166902044056157302818020330465046062463562251308138276204351882591402487575566568178155690232805156909686599374826236049692746750256055175074311257612832942230224224764848887093042866215882369305528285319346305765917967256947889526143295787416955024287519113277334919305532049513494243115376218889780082208292529326152825201025734147486229205483900433504077767168867816180763128826856110267053256195800415271653125071086063325366799245956225247831986738630991086566683920996847041045283404120379870609568002589822194883078225423498766410379037216718166258393825477357794675344758134903128241164074262120004785730807807407477974751334515817855116761864278694156530357310583486708908511688432325636800790903509130806140297960208545346483296990991029569980886032376291823789850592076392545298462957915500438702463269736039677731810956286352205822890851629728872333184576425198436702662235638991314586573274417346786930952921772167838746279812342841175939902119481729907597175524693149384476887089068134026561239320221974294122109767595620120224367819554373879285596786357255691037748126933828029040884399796149646218452202498475699178659850744234504421654390173905192634929011077349398885468622939958063083065913354737430487272469928133456422047425005890542260623631945939096842288299255527649392001523089067138425125869666176429494603769317611448034611109224281445249307920498389957250176227633398333691665477137041826231542364427562310679457451722379643514812405703267727417013445156152625905238605892089039358836581197789716622018125312134511727392123880967086171483195843082606455776463217800680983781761857743410184176205041964123589300786595630128356329072324722684161568311044642489010637165347106218069474201260947296576238707821546528855962355490167132260934080011164008176506019841990686642434184048890226914359084048288006300973708890203467518087158744551432436191485924573046055624353813330344019868671357218074959929470059446658000217054853281491616643094508494431852570025355368124749713815446025268083391693063714584778437749397150077904821947560596672627684819712811373194883534594860076758723191349313052301612442032063770777352605491563082899081948128831227280900455820171108328836772319472645906073510557255822463872279878074061339563778685701099039124041193290881404459414847387822806293141386508871950635520604844048996041009398826561924662258950146613926607631928747121786207839477664496178906897265956056915304801001258080039109024025055300382278288395888077265853580817414263444194796817478319854469140478102546429867318497468226511825682770733565374079633501497788652167495039773144948279911373304937768682110994958391041761296891516321499593900334075118990149009955236789106132013116428384916631713472412451738060408962701400605135331806254083131029663554437410839141938182905545712383696222887707204528026130625240016392905066208606697944495551065518852266963340715866836634409865435479929981971818938406637504943895563111662547672805107198065958936384327332905785773981505685868464149586071391139585675338574278533833291476063171834939516161017593704458193077985483601174090966328201110168799224282183012234488934578974716760546971421993195745107278000653473890826900225124806844774970077400588769944061377173830803825395634069668704960362645034021128817835537259265307554856227260688482230524839203227680929243080529680136822841604301604556405348211396091194495734081980449420815097963785574011938129773637939092291762279815080606281647337985805312869196794777893928499818222973406425799243961222359442746985238360285857962990193789509817968826693286178446809723522416464475151674232828901197200402677965419775883174927785595461463769535599636183555671393386237393344626971369731475109915574062407129131339540181765580105201817101439664499367369176879783715638235232963822131254496473746906880864437047642416378353028644912405788291819832938394362938365399551910294572131400055310760420065219706696039997717805949276482187271962510501416078345923870451527335777955404920768595869117324250419700964580825268162670624845991761376665176867351468753962066232482197028770705823937408296050212804094037401454568955449216655943337080643505428646403791036124892251628192379076821417052402038249246353701646393087261734638108727489515685958558404054991699495970513230254742234928473987250743062646969932160997650440947460597923188023299038327067384698729369263828406052926907240364022087714614806497338316066958640747972823507657534231116663071462334758176149904425010618357433138145855317579475147041806869132182187677189909957821263437499744527793057881684968838625277414685439600293967853672001149466156188335034414170231729873590680973475477180073735128333685440157342629230562791109932359487918911883765448461632730903340485620807257581350669057120738315583623922527220925693077574313044182697572627990233151782122158654277030302166223201177616479619431842993195955410564562819284112801539185950810512236799286926779798753822455887166677015005164974364983603043715831079123932835743915330855802676738706671639180239798369331204387512285556223862953645761257679160077408176225142876771179297220575224627393827150231834239974617730344526311474580389892827256801806955539167052214697526473758811072294346994874779132394930589793471976856596116896234823303053223704442524775194545685805912546750885352370493294089978888184887327748634217188917003482707552717411486896244904586340624086092385608200313642807594519263792695282964011868601380804965945911792418115207602250876902296856165272164833482673455777854801672990631661261476350279350841714143286405680659230917695370756907483967851378562115265680383494079587205664058177445487217300191488449917494133736161057711338012126513079763193954637229098161036735374433227766428270923509168322582612355980231048491009548891928651318543764980287978690715594129820633206460538114704598995003551564460431791453771651848888349119553816671697664417969739610521588668477174533576637181975642513790152812359978954877158378962986775459275902053222407506497929620298362129971405768209642384343568910828509068621143393104268304174337352491749196713881455777906968302644588963855220274332037722962810847746547799229810022095024494020795173941494775802233573230535282905776636676718618147450722786171021189128088137353894645720666878149096208463674714661266972217249805885815948723327601830912263570868089858550866636052806949924632217600444762473826495298596840255053652844766100714945287244998042290057514033194494010407906242486359406176414489264130535136497516095657357704496041543507678006952881734096431338281488764905230667517075554408526488705688849078250316634191801228113798996332573742618951814000966558895802913081257006384173023312770922954444370948427338710535015189370637044715097051707471864757798823140961834699465880819570708464815522183060054017226903152780778301491795874612851708552318034877681019300581654020076416000508306341639999136722949700565933525952746114199829791425254279004561343343286310060290349378692118244704322996205834442105637808233371298100161984185964330249064397091221724473282453941499295004118041791240395485551139960243844532391818670836791631229381137161055790456371965426569674044453206440590168356503671804482207419505509379957825055051125384428285342053019577860768706693444218703476529606406425316713834503474367722830221023103315908073007221242980173674289261902940083195504382098592921440585312996510434766089987236044472030943145590013498468246808897791296434259000471301056751729270214774149519015559332478378587937301873099765718437813590186401092136617794596908228952042493758430337829857840353162009456028765645437256873801480898628642163623348616471940563382102784040772502202761974774691371922123509238532526622148489908779170778652619459947517350997232451794072077296934496758304500073334514249523182664974610083796205993163910913364358993747230500566060234780711149342165325178015125102812542529561853766020102281090907361330644433866587164478616074839776211195587281546960315141321230503065293831197288472069211523375652136319541142407989153545982178048904902265447132954216897469177616428381684541302102625715424114319900260838141637729249461610130739895503242853367752925946017356896966879003003959559601151920356326915802868528110948479649432642375647079933792226414234544036685544079467347118077570028789274405692805173752202373936986309713016763668498689173074510430351291355533699469425948867286678677949456833461962429204770722034954961015026241860131904087716662517439841588036853423854404255610484850392077957330136274552237145429152358047719361885251570842261497404883297618321289251229955233178738840409688199032700185549830001238562268218525516610548337934673309180513152637339925214215003304517813839092406431707348980551984761572413060491218686847961724180164943418669668142300210776332031795533480996722899078299616821412930021614770344037274695318184894978249361044034260494596161654052871306648048804969844855823851380731234064333462729676829815966375630343866413983928110894072101230987214321099608420810926387154863307100638184946801034612845260593019109657484772607203877609587186064558650409940099208348235512489065068529182601160202217805645835628097357821933321814826389628167395624427379809894233896112362488237818061220750673046179297828402321336062926921131703788959223900874589141952311566091803402520012517399170533676996818960662219450332407359323193214591175764245560459734798079680757300096509945069276360574644765295002019711614941884932977049692076316886398896184930676678691561700288499123267241564964585373659648546260828983985050772362336385215728295233905075881818040894532937675101877471402534921513541570518369820836618947734572079001268144470099705023774730898846139422607993799790167587388883934818033569492062808751941694275648839676196828761791890410901685682157771888622533605147629821818298222275800740970763994980813371868155722319949448806516373646443625948648801113129447150171707100096663192228155308548725894290168891364718470003596241708643101279576297059635271646171896188023069003940694167188755139951789516244588011013886957624904109289697494786060928226821993335566327184193055627782670229864251432646443980947534024885659039957848224755966692389396746860918646276075951015148905809673118307381910349506454356411718369297731702581255862690489224592126596526596547736340804578816875073800865176562499621181220838281273385551516548655009311993448933368369434996824728157086170978227014986357546970896762237877443180009071686180677497155768029570691869993823543930177032738172479025220797619476250315280386041296641976610611363591029771286766978959352359824973614566019102879939669971227488504177747834301523583942640713169681075001321001886529888963551540298743547137202925195296574442611487574167390827277721614269957721284720834571258430795062830411627890498365286806513451730315634096541937952814082607003101718379890076593053981227145329546302947968780847315657683831363652357878683340140670335559783420139479954957466036881012779062619485210642540162359491697407608148902424982627084440394239041536336120597236034698125345856878055294782191388553852692004943512870247129402462292713717932843395860929825547366173650251722497740764153958465229090707709570339686994740311006350569643105064175611137233286547308017753831069203981207908480125534473224361703865260367770432668090507460721019921898773588253233536928324036622459710017585685715979396707403555189770662632949640537763039315469050103101706904408160646993442971918084700921056500773887376424091905024717770878804711588762389440022792348518632704380139778868617002279748387678551875417326562684051809263073413175504757192692524596864470796724748956439672338295319433299779668548871440237403235262867810917272290608677641853147205287042186185264051451270811655473973989866304629558313642172269666747128472954413381507167449450321618613512799780000293639794334922503267049817107725095928097677157997454303575459095970250844926820284318859938073909159665817828407085940566190848283607781693670157463337873174910113485513300727433594333293406513703947035112917143676761528113990645659915930601593205369163126088240297623205496681317428227258274320930201696582706812756492001149041796216096641282580907675988636876654546832841192368249803100956134903666187969442093361636382355966753798715421482959630615615965403771306999980401767927123314155533287546803808298847721215056886888849915240767765827944961274840099554678541538608815301651156201660734541009221606382346254708944652915808170747591961225597136865813186894137118137744029623346061607159591879667128559954060357694792526043561518782208448368118725807686372811391084220223848088424262734287372502331581427300418734496459776246368910114831131601665178098651672091572087888369702462723998106112373499520260720834586158211780293416894145725278588091574547389464455049660336904763318849307277867799287910159333544119346229066828624392076054607259938523329635395237327974434610997081334866887223107676182850448743130740709932149832974779912844974543051882180657278830235184646643962467999126246416820050545838048411844316815478307176240228341229404425290358475932930500446047908327443945420589681307382183089738080669771689569440356376162547301073586063722232677510699927484061867163179443218204636147305297031286354706770146300106078011454667316630724461027600416995250926681782142980386546977566513072747056518456244973243443721808514083585797666385306593892713740259045148626666169078631805445261120887820391733705068051874524257153518115066637806534839815824155856064749927015977927596618924274284489104057576027433019714842954402506402003606942880234954242727404795846181570707032124160553313027284803681999763369773849930051452602264324386929615985699387028582836522220965546871384083295449559175086790552788324862932525288389735384813941086956842466783561801136989062600458874735819208686149470121195682867920283084520411251486056457665473652805663840801251045097654502899952112207180673660501136248925086030183674635690659018643582178667307954385496772390333013048508156418137755361485880264270939682496907661636246012039039695115818330656872024525978304901108950147300054718466748434458522292274451856391926882403274548054443000364487674487829155027199283209804631729673853725438797820659478381616503671684575392904864307739173015204147981615509452697977834441492823316854653177555570834559746298411366276711647134898916188134530348434998769894339485898539877075389824905190104374641877154693281076450046849565672368473972668858940292091971163710617715627843924678786701345977197107890008360567412400198800409186447799334571798279028983579878281689034177312651488136290055334844213137764173146298716785603961641848980864501761843286638313643583386795369726609331440043540202401269950366461792770685209961137198194979772628467585943230682309865649867629557435206995080178997361297465117925062970028667145431480798597750156115455399732970478462907375803836607564393708617954742338517412995445489067718033643428291908705693038029877782472402405428079928974856380356267439662150954292989581840557497401768654234420667075660127555760714131528006091715865290869801890722947743483561118239829924698239263118591076918548062341114782170251303683331747843472506427994298215191255559831778275813751294828556881000181219292057164226342745321920686990041121882614271534396215639638587470197137136168520138373724463387671598657462167621747046867877578971105666060572183884658571778076597479434418219369150864932384129914762051162523690985511384400713907123952552623491174752905838794018267427407336548307196611948156737303089152949551218304911359914408965894301476840103303628889509371836563383584157627418768641020274519072748180442228661184915610563935732645878260923958096634305306082284479606974560416825399306319776196050255071996107774461069120147434454070831883586064900407271664249565831914444871483168391718361950588928704098222512057679188449987950726154206527865888195371552358617968012624483058859127259081112437908846797531444718957463820353800559808672027920583509992623393817518446502007439369827028575996817130832410660230120632060728561621069873592668173752005421825160559439462567511718482236291237051490065334912033410438300104562310987116002966321602885433809889154774905105762861227127679277086360650752805553123398936455347320702014251552107484754458389712588750405298536149655526672910536950777178700879033363620565188217058438467914688467571155830204496188494649662139736320351653545036139572739141586447874199556617177176220189999991143065321800810582902630292476123268026219156154465873354101982446489371996869379591196054721107911463348842943370428527006659134359925535285455967835844793904700011483196118567640106013938745978309016312132287685366720581973692206121129959904889907682107216592073351414665509182291372798695538105799726694246632307536523648138031666040796195805606095599081589696831963991065310161409248150288017617057061671871801629100142391758600046053067209886025354943087743034507340986634618743069449136681613074633066269644727398019642132144953971384442120404869043430259540936636542392886094536553211570836679670988530654558594838703237170240776289427042455158143500942710391182214291746203718528230523651020202253630438138596660401176572917022347043293345511414652962642661318557769184696183872658591915488741045260096511361112534350498510957166403030546774771763360061969192095366282754185654269750720647871763160406046459803730123476793233249901883732335666406382429123186429888997173755084352209491979063333899038676603546025561860221611515974464520253734897177707926203696414606892419398119601546902770041597765041302126786340810223441685536928031116971024152617391877722695222275351315934260188012153209908876453258692446744262666796398215899788864158655983230386946854082020063163146302639826952471649559532497079543740367166782789487835988789962228467949020859412234360741606982708682680117731142187619368207224702903665811623874977208577957755286558877655812796097149151256300464079680192151964630063054944492881823888030191514853898016131379008251105194747727399503282085821870443286126748977272746025753525543673850898459207123714490176865515953342476528968134995326665479558363698890320681489005371920377335350346423905545546535050404151544027271193882826393960350637545969109034233789008006986743552311473294087776495600741641146960982497850156792752476840261486037787997237353114702175915691304864453369665812357275805603258487822241659464942802921947805402377124415732577666268538237296726592308535106570506204395167068281065550881321539975846287932588351919831073654553873318324501567317190387963978212690991096337859230827542608653239760181821463351641272146782658113693939417305453294870339698112049012212647802102338860706974680704069691086963361869162858470167010785491687973082276768754922025701581065533181661223091067114759514164073302500597442257621344782940297360048626069770259886310722328595448940966312495534320091950629272309302597693748275719208345872884044322828612120473738324546410011548820310450819090624259631619879266505059027021139343774183506432207603182178763130346051141010178624545515075383140224054973298590310838120611907944388487278963483979597794270778462965580070895319834943484609922602113891034845508504056255481757309140778191803031244994732515493208972575122923931533465887389612726668813005055322872864253845541616105885292861595246597547050185924839999572637778089584909336641108641940350700122612886595509478601491617075624891244449535279457648050518761511091623377935199034946508103080152607665310363349926280869744930104268751339966211648489600730087385098463721987291178418686513406428362967205878871488747165916361956438040969006188494044087651286392685367390601123287152874035306646206291762166381505595419367119372247687163163471508217688293660496052780569073561616915246423413178772689220085804014650473208236642498063817429540000808261549136065063104313428817552854681063988449791539646186273123426988780764399519042800169325205683339856598410721829880400066555921710012915999907111519573578614565520623796410631827328866481971939211265032522810149406802122962076955136807093100561812273873902343618125933808426442900752840441455310421493708608719151753598435914089384894219025709145337897103980127246610708322354722062459580372679878404893864002323287611276456931950537762914247847071947613740462417901290864891407575203987259076059289147387136055771080898975941150564874728632808556096151736441419537194632352742766749356682609655371543077785470006868695214082156138785787675707381429380803365040545105710552150574022677534753731748475976016508501431851656134076671442319164115250047999387430079788354113083055156353662425080462447541194030813941066730145252385578423921877809478438486387053527223868532675440616701219225281148208005319425864964484901141764629718280451337754699639542105064970798398262508164255122155571297723045629102545222422729366754642089308081744089728255990545428959875257073992212446240248310815816997873524517428337811428599906476809090458943792044489435621652121848827527706163431888635493984813726629823490893105824809160541840941013872960456254711304609936961656416354080509241651737598039219482039101274472023345708304085716544785953576467123278732408743309409856732577439177554684953822728402168476821415211269060022859617265501010749949158038074544618522152076250828220957612065924467467139326878940063563540689278308617112834146599823615888503842338362014857619230665721360544002629986242353885288162946931447370013754424382518035078994280086828660241365140308354950273206485968994514355922863035878042705828467129823420993926717065482429022761102318382879801940362306942764900561674104446135051965374621730008315164176364874560063741982480174189627273007137045771893448443972771910793629416775560605185943455290859786960183476424500875717404247550830515780461158800276855732067317011755173937414778274967167581669952779611862079978993043080979803574386453136641747517871882881135349417609713505700466078400253972479067403375211974176092413783805692824685744441527184060616433244552355054148960390788944964212426883589782970872655675703618281490981451642935898322335473156526881271057476091908676368032604426024229464729082657628891994017854116966683383392067653584529236683462681107179425415158846044754140308259614714288764356067114983030324688812240619389646830087901802867652613763792758639862073106513612076290404420838184172341516699545896798344166722994598495983029453518038810404856146000822247091934436466996827017879928710367676464038749755650060896308286936274025245246945819773780366003792205467669575024398342465153335781144376695784371903472696311078376228256574755766852533068879107092969874340273431127784396430405389959842803876361196069821736186926383328594074753652682926218716633846311913031237630727050998239086609204699876464806672360693249953558940884492822927591272618934048802949157870158953689252236042203554434088239333112450492667018595474423374090406503109832734090605577266665169910604063121957811674753965948111791222494825044277894660396655132589238525331723482996989216978509920121562561820875023637929355295625419546807561407868819630772178542783314857035191284615625818119843218936650940285785418505802276575546452182670871966630750220886386895146550006670046040674045511178415314037350960702670221694614213121904397252832720486413068074143055515600796550980602821149714915854037842996908819856632190886078157357860142779577938199155635093976882284688211352698323040128436223891228784594796384415705187157818413604203890421198754447355085326727355146324609156676126089619732648367730770415701315871170186068019020195262575045867294515365924970188449598715451917505670133477490941393083900370268397438682644306938992533751536917840097129920910989250295657508845137526527460978640628634831312771822117299571035419940854038912850832725878653789454258123083565276485237060846432569993590706496892934036077901867866552114696544118625556059058332836558120876223808385392831450149459207438966563532912461996999392846271529463351266794316462295656519902966100025794969505593747096036246646303622537531502392224254948269435440417840967195216357160490955226223997121145395409309343447263315394080881104958834241530024099747138488270305725495540119437936378581184196004234923906694909833066340003791966986869908668232228509609911751744641867440102631838616275787251117593594121542602079655696727115669731461203439811331441535796308001763449490551288084344424568332852207853948582173536636600807268050408250035485196582514166249329025852044753095512408854341503667663309217248050459437144555665753747761606914706257042717481652135943862425048473069126487695983701601161459308379714422802172919458919183325583595903396876575249156753492810497677521637375401021653560250538744994348134959710192488808468056110222383958162638381773035929414675479025729527438397642249724822317742134166171322884530825616579559780169551902161745292860514854058728900443364331133550866689928747926799477805687955289592995962440885556322977914334428411291314210276802763782292077591833598659178818808041896957714447787823529874909268229203808455136918957908262397553275042113593158460775755730361048779138442168448185119331011490927243418186611292267421147708384705316146357545594057124897327882156272345057168692953398421598412176288653767868326248492191111135326953534360499531603193711977251219089920416733796873589399237950596041622929358256392957168022073159931358505497045089242315852084295101640394925101632306251432437506074208820676655349497909024276621234486947869580683123677470380980402628646572349215786326351177651333824933392063408429882262612722913071456959938540914763599637907385739517105698591098265194564897107952744182155640162372400726619064804163825056829729121132717034954457105539159354025505710423986292838655191473789568958132337920389854761149471776539733000078760782881379322502953056330890720532887838844720416770855953981478164990513260079933445814698472864662249269533274535286267875765385586083807547780449021123739976530630951878344613424957859394336529716367170120513043515327027331284621787667016517545498731590452661608629178776705566607853695367658686707137936637004789164373664126298206898877459847704381250864837290269011496232770188856654830446596234950413849490362006480770436944645315577292553858164304040500099097215567958837743297472327595103284186042648597750690311893666601234277138254890526967095162835044911728866472212721637971146489922718812112573185653712961554189286468928391036788413488152986752387222891186506661732004789306069129143945811420483171208271653735596793871089761777264883061342806903809991667525790109294967740475154531147907558540328668607408725237305047822833100472304173716269222395770933418755011328413509513757733730800560743388852280467579313120542014072505388999709169604464615605748244681776122508046742041752273346168063976345643023233640181510825802926165634982557158191421784311771380808789361427047444172517760926419849520557271177253303518269400948224779361187389771195557084574174273005990574640222377234857926890798726668095581942820328329868462991014109607885002226259351930083610282509826253368062808344801178298176281749780077847459074937096306920647204902702533742817013571987767299057589347608103236031530422719912875016965818198652052600628511002764246801361178295253818159924492754159880649913586805993302034380815922928000677601558544740137322908709571001656455602363420028529642229056667454822242845677380924895148417712436844296194355262253691117849806955450239740491839290643712360534346354623940190873315940321492633204835482970941811266818813222273369733432884437995751066827932188001698045331536563908546832049603750406337508855773041595149458770111979463600069829775814847025376389152009084453433092168038548370840463600403226288873543800808638766042520151071031977968578718831116460921160726533189530969063285783285085049695892605384576043599438414425769284967610371611883236951116630659527161994725951140899225927820245664595548235348232131571555689630589616242084290591683005898237463639907388597480440331051234644768484004849285274461746784839655288711216749951497218227480721340309311789656688114899469027138185188016097847373674393635631776022328204323076551930391435662891121377561089107276131929609407156223520343805486469078340034196725239467324787161284048081034554001299308542940658654776633187185522071127033083403109620847726194376234033528162413282132002652768962326792803359719031482478721018518684195039089638293613940768736636241076285737091871391007150926756848245812721842330987003670987258545062704621198529862716527385021331330186086623340570907363699065088533960587921063187120498716395299163263040823519341857582844436392286702449569026146208027757253501748805470482422559815717532092551075921357741633258455969742298141330658330933609227153830114138236347820145879368639703642924392169514644720066148890251113050785333561963509048256288897800181339069171402327346003682872155288123885552951804648037131123410586268202960612485556897235584553356430628508022329913956414080991325883932516186686180747394692276557086351217180094079536490460339908884440398943234575510226671628980314372148057932595267009508674549580757686695391093002666952711200872276891218391444302320816611097941478485253127533717128508433689288411374054696980548979489497600063079241379405655296455330575989335344521278335569670639393420001741218167342335955338647704477608949367306100131559620332938645113427784244420035184839139950890875137204508709320202201042324083313445657308404828973249966119970756526251280139051052407590544964066655274164069336115381729609593966814894034980076311229296954661937570322382444613692319384343016741197903279769507261243972782812060554173981066703588956594915649881431332295692081948917809006004760056659397908699668787037046578649727255887818863088395875141019054344254923516109180957006350304266020965859019821549160692171743938462951732268680454936102847951378484968086889540315640886885396460650064070882247899820607531425172475119483975454545389874084464163738389522919868746883013276164896017498474186354938831741914888139129545133355764112116381421962923626667276914083431222977239445758422463566704976731444495480752295373898890726742121156095607826876270927787291347090445899262879234536213302083914483962032408672878412163075535655581731782885024069986292547212109739613617759213239909817222072455817426751659408922578790032689193221521446513726766722433339344306547928846171403382763588158566760807863469437839488218625663519755009447533247991628918388768339292769782395125491252852978751927351434191668945524706862917443624794835782845051896005674804864754406893700374295505375191620678621712891444644841629474748958882109747051205657371178024490847688982540821135006409316841922061458893757398761668518651524386521980923313605454363247907783342447683639222564475494983131312002469703363639726982235805417811891303391083387280864334380635350840883145270731956335601348619192844243689911420401885094531708504992431458663456648993047097149041197474823214031946394612614135932612248814607112586354654536726580707332549266551141265150529400782873885684915515874663343759440324035888032843027459585548761294000554172446899788401855870806671170440159577201823211127577483573621016158950505032929330223655082816842548394481541360728691312690418554041581583682020818487232249561303075146024834084253828810639190192073237902458162658855842689634993649091074950034574800608722295964790189536870365514264764756764324474358686042082804234783122933428435660865118142113331923266338298505458637863524990189277439320771392646274870727352919348875358821830389789319074351697031566114615776447576335224920177201185784738521177717048725351313484598720834141890412151403872265015834142954845442801301089165149560337352348885724879224292465956705642487229575432750311517131712019581424487269059498080919971237397435636156743676976458479893760152734559704214786164558038576556554556694053762094882712417377962414196057242819797970833871989691357328403989867810329568240171662798154851226017528833158337143521609696513407392697221501650148118128241304729234992625469831286009927929271138383248923237994921947410578630236447421449923714761158760322954305894374037152570365515654523741387309006509658831273642437785768982105056381277099827271453783631815176830184824707040042930643440946424248022099505156080986561985870890266512994518521507695207605369665268682237794401200432726261288256363093896209576287704557938222136880172650210098945710747028824348332053920715374451265413060763721270865734044913902366349279262771189091734899041615890409084952374601112847168233062295480579358629893279758888968690043229039740826301040568230000406169563791244488248348270403554200430726725467934435912262620647804962459340775821759134035679813883334807378878192939308566510489553986643813422150120940244695702563938824272431371522908254513854512143390354716712937745294621313050975683176044565434871139291524317766238693414121026349743226861698253846733057741841812048738921142439098914306658452049973265998399271948772549086717591210974290713057440208687465607917291055579656839695119643618633319798777931472104542618628390155719113342785469172559634860859285155156641676707411499121298204102149140379707142358065320161436391578411192139049397592383083643590604694180201707931310291997293559213917612915679892330978066428742020948774929811937742678384922429264308264601355130906017162763828355333583537040147639722236588966923733854442160463581430318168989775356559916321284404846230935712095277070384231434263639568947097587673931643464823662582991548910255456820418159169233782054688553184176256824137969142181839952837286537025473363250329914375264994782726403622494971731792914311240348142275915967197365293398977198302643984917652222897114104080746099659632952939940202749079941089280606877602793373783570841389290877962063574818768348104986538846768745500391847655089913544992569177925910057368506346666643347476843282461901632122994080946497896581221714983526318757697601535689639861851079049655679099464288717996501600438347419188945431444654570320790035933344626886051141048613245840065493150705530952348142483061769289760592071408161211874477010816479441275598933197411075822948881181004448701690576836875232206035966878978808465282994693604489499495776712427698347155061862311206931147594900445637855175550470094848855120374008734293011189938993546530398155910596765170461300566147751612590680840462195429992964014596639347305407766017082854559701400079836434199240865821569295716118765065711192752601168161523410474399138917137833374710692158727673680606306066734613333405937984431354989492045993611900080952832839357830124159336616711493230994293063423033450560881169968733967433182203735536559265105945788084579033603083936121915170259985782179763705214124165191619038275863238413296552806004560309291001072866376842180070797933066581724785415077381327270992627009620587763834527494886470468573285380539275161484160343510982439778304092188577708723882158874888969291757260479172167308595833977131944098172663435777859257981782587462743949644583057552651569989483980080703970636888074946944126310650459171594895045273205261359079343441593399084941763261628480396966676361177987680742856513719486725865109145924456538333008738908397161605989506051045262105578481464852601533325870717697770629151138629260041881676922890306383164118533389109233344268155818159687372361577199666315142695217165787622417040795063440235669395712913287806319112017088069578514199441437141522983427811584542722424164416693767278899826472764370928377666320919519916710097342480922983519369335867290283478887069128833314623216219212715856944952405463137456398176708923413090680660233099402160023155922340675787094088960799890881658849046483854879644131602202760791182854114539739846950394906740392407247140855859390906067807667082513012459979091865763064376448172084581726081487764343145238864547188152170379041976316822839629613950971689133949707504986352002454875666554512282496206377217975246821643405863884802424752669831455857348685824377788921944738641609597497524400079331071466216858555387813225390581716987819143263905303807002187627311227020930888075226055868300729763870121267637698647829110775112616651296684780061064136382230244514763970109693937172639286235954410826930200608481896022652182314058368762546856290615246593359321689390882827693769945305956663219210434440382870208277786380874210150610139706025202683647576893179344796876480354630051182483335279619931788350576547743256210498382401433257726247641397983717185898249736604613182566709442183653093653240005654901727165438062504259631944956672489337781221209944547966506054621988878592903041014205560268897603270185830737450627336346460687577894620604236045173102963912589324831412291800769645359375905929263814763938738975575260749582184127581402536366861700594682594608977254078557493955734901955077951587228015053924487848428067907318479082333032709468214062250231611889815030127806665571375892571444688315026292029490746464756822012256913934416688512197984298784307074397800346022251586988031365034725009572829344542037751435317615469247601331426273282720618503050817093731076000763877268980317055528669094685394349137144275093750777551578364847372134905824155721615026747588314041880105872785090564000046394332488216407421384488384483760666743868400844636442393932695579227987875990117087008030147774768906980063404043766510182587846757486659101548305698879323537416546307880938853011445844062466136283438984953443914796478589091835317780341035402420162262100635660938743801704150176537937943972996974186113031162106551950701855346946645821300211422999048515622192339566175007024560846426273506544741273391921117437899075892935579505480220001242486824844223700950494587624417521605793556622427978597397420246705303383076548289378712184066994808272257218568344930419308291800399704931430815029673451731712735754282135197100053080630758620203699901888246460712993373173379873491134933000453864950883245427040672742108096377887886801127561131214368538367932080853175711124762798364743249193030147712613839179988463320773484846319692350400927376802970678614192838260371349882708238429865383459261865091245484944056376134080395850166749531435705311845177814970790054697699335715141982031177503422621057217436591658665234240886484892088820446247965267813044783554893934392154907669290932764655191772563161239755636068437689972568036280469191057223824968029750621370259903956424920211966668637533735993168365323329828589712623639751188476036985912272089975291276878808283612333502526585152137625656929050757872322216690304816784672798630180069953166327583935648833119999555702181823443112117302344340894799475154764559393547292567632672553694171498481810572986084598157061794038211732658103206438657933274479283776255786989787897559283206941167009455154289514468295314009703256902084632658187242555171229414941332424722031284709378559338743207733099421272116834692112796914494349091477510418484771871730362800315922481668577098358336414151421657159977480868684070354566527086473223005918632324550139719331795796328091102853831288164554229373310271526347875488166959126322917445147340347649890322389671919049515908500702581085805691790490313599734820460181059343023868991016800761244592867481661539682660319363306053108894852973555919611442300252508822495148544911750518923581780638568621237970429538984215604659647761630556984679359581618405271175765973236714207127267661003019567675520639158493249271379051098071414746870680446003455682204951171539930733313990639307491364344282755555616898246177166831249127419394880003947287175033953134050695011992159928889214994643058424151667876253235783666374447157480049155072289156218531830770764069141851241924187186608535269162601564640464547535020330332675324828241513263551056470650710475858879595886960863656039287913889165636163346698626255485741864029018925325085389847485346600698516030624163015058296680449132070692871699509606477029826366062530493706938235873173565485651371897977633947485395040111218631748595587286704485299620204834025056796228360780390907788582509049288691691256652113200977261410676422467020293292962194699728691385085722697406243121969863290206422795685058230415651011262221334533072445670215797180813188981003419744217497359827009795093843867483170136260951264784705277283099043396350700412948829498416954770059139049333745231460184366631772423083916236944403125836889581107157516496623446749395404250265182738933005188034621829099591847596521179341555905145288011220787398131348161542605950946741371587165761026829883544248388544853557268538550292173432544428865393375001717168999488378257527945508884068188630043078018075228498692315802140731210771017703759283683328421770522182545003837433700221235141290373344439663492472411398964670662637350861092147911353611485666403808776266851623727126783272993519988040996758148357473541054938976209300376927479237159135413668958145136661315380891991828354109518769410411224560544219233515518046286798879689836012632306337753558892599639920404530007314047909328845123737721845517743315008816622100400289423967393928906488074139456406223400412467101532871289013348713626770201698804870942051125220985753326393504998192408685565683901018360867716155529156283282807081705745860394777150268900197229050895237086305400370839249671039610861748347920310728494574346354914767937271104839359822782081642810245010751127978351243883813686590917590297330497154545452483437258957242788917113920443748419842450147656371598775748773868708051336558942812935571534087663206327614277157163932820282534164969604524186100679380464751483023735165061655085618602954025156636685998371952569516103735260935152580136380514024318704224462983092735344498650276452680384243206683266789654428554994158548696939551617112607121178494122445339202031562836637600163374097320910519264538271466746995179712875018309646498162186839943708893655921049746702175890001700949905519552909594745601940723912203663846945641186449012485381213599061195776585522489363691315860649760996245970707337753915566138775865378398727853486653664325930638399925006621712305027118513296183016942945920615746111164010160300938460631014134214918715030730547864952550781974435085857202640209316612480213635522547249209208432121276685573606536725890340066013585983937121553291562796271978567899610189003310797998015128708418421367557355982146430266447081409527338940076197266143279199493487333000557668378315421087736078347736826281763439170197643683905470545131619411521151584232847542151084087519202948842256466079351573697117152579391751466266910200797701022422647759901383813114227884928204424064065626117430824704876544105522010842988136502569397128802171671303146237694237943059238553683603129507807799958264023283189565783324370374687054858740961294755350183174078364908268970899646924208084067537142992244819839636800629623286981287577702407648740412380871554703321094939435782900066404863905275141113731727251685604444587418529895630152522499764499762125959353792680869210182848450985697251074934518351367396257660436193323778095138612446258211920442548687578025732847111649595075798772664894308667530237585724782937323343092752677050004078032879244205563584722628303887168059783497094135741270462101577756024385659672460941510106613120636825818169166838302460453894313009869603451474729753058294173492044988996354997014758350933680246244989266005749230477245302694156117937790563096512401430755958809052164440380776294009600807650372137340300729968315169818657277592841682498577067844606002586566409860290899911209943103705615033517534038929605849578357271296704317281732809614662883200200415702952480117355619158579003972901276097072222947672104776634870569974354778555494376397114004474207279200939171299085937662065024564129654338967839865578955410710548547602853482826207410579350791089496666204343627306789882610873071117676701348180689198523527442032780683708869220197249304027930715099482651038662260932526273856179107448355026593413364813683813008167029273796211491889956948947856202436230915009078028325231088770243843395237712317698110643812941981928908385423047885004251055254353856512663146911205565273073970142715491619377978887553394433567483264767865299211690985063952691776276204718340143862900438796231021655168009161363203636202277289437537047027185888053574035644247560855966441629844034880667095309316386730627753319541317628416599398889843519849131159971680545014015500122116279029785130390027282749477360272546385687921080212280887272034121883068116275062561484969284500120303810319777977979253340418281881888350780886404018397999430861082955520895105526663469855377300428820824542732549023322923807123441227582134814534606577345701721037196740132793771963873564326638533113025986727981552196359259074951118153915696724680025400204955474914474892497960214277956713722820177842919868988595937546813384179489120615958882676875613030350996765561680267559086202029466214476384149981955435475153585902042428404841187437274755236588784934580678830817834921718635851149979547946095646300273788647729342803037926774186023428941220745301688804750199754528387756582308176815879501488206656623619185993704691584115790843014459728931855823820841886986814451648525491299853900161685078822309204223509484798001055255633270781184236171320825162224816872189884398791560647494465970610481405802765519165071772061260285752789702436510217898330118349249904203374924289216595590306537032072069053755918747881249244157995895238558636704372690540500700226171757133379123622740626706109132116107536463603950989576440430880593849706174473248315820791640949492128412212120600549495147564068487479472054539538057446121186498071702837572990252698170383171367065901574088273799155597828661252043287751944392452797847650519574175885145573427982743583964697653771618062733479281951278747103447843020783372290759102321935213253364131762481275613227187395013138734734914027519174669317444996899292914635502775170630714763475210823307335808027490625782396025087217176899315947799258962878358282114709172184817122187241021601423619155564061653965291207703069491770206421019544796078431765296951805115425463760767156249475696247584653124759890974772082511681926854008920761144945877786182003204707987463812434200817207786626928604204370725302793318726472225705043267168815652024469163679048995044788398470660107878032861781398977248126861789135769082521327558301683000004012587553676200672665713814631659332550145726818905252726704298807322335363730510831693215578267345520546559070399353653881715593301649768469983893995720081740663546883012257927080827762666382009062339709976983788249887370671672232339485816014101192000097383896199202460286396722370305169630894986742213429280070178953981485652600405691394315343148472598773358624334268294523274980423106580568479056920466301535447016206572024503974987899539837540547216577535388804182001989361622731243623769449058352571452991232328028695148767792440219462449162705172414698202807428451325623300968571357157057621677334297956762406618500596430929698006321682937346432459123180726439577787830073533781512411608839033333605004484009413325575110604318222964747346087862314411953459055123376397905039298410995238503661147533914025443368417929813300775303560509055729394381002499030277688688538256905332018655273825221557201056822943127746254528585497009239652088418826440779301938904894707536025116572985061035065103450131747443187313811096250519605573457574930356595467380156639611782782022887396602675944885421855741257118207670118044303992655155781632242740001653326964162944253307987977084737119348024435829678064431570382204572034415065587417854606887498761259828860573365700567595055414947732415059308650790381380082424310687588022785131625670347011620676958873728491026781293662448795128178852118653933393491066234075432134395270739626062167434509075409959614962469927292764990088037810787463393353370526255014490888125379678635291845410755865803657857731336525887914381058012581141432245596091046256137784195975456903678293250909169559767220386133312450152361608238197288698102087175964647135679508283577154296362584368546576614594823551821923087348259243609273864371778474747822373466017097000930934554908798092017951372232225772032005632230868792365293019009764261851050620008677294460033585174991373104195383192887001872793501013751454154312793436232683933331165865577714434220027633487211693253548267838437902783073117669479516454056917012353528713058872918391906564451097932521792325209104860707173604222942529715334818372652791259923947653767676094007058584023684692918093279445313759531483387115193363743000833769244643105682164287727990352044922375099140735578698019493215957712566421104775064727702832006058984743744438443187583296420716944458882047141667917274587990134414587294109061694573247134230168154158239871648340666485625487547819950437585615064557387781856205348131437494646156321838637394354311383428146432087109568036611343292599820548240054438627792318491119189385873665739884359558457166856579615419398896433167465519340535394214204357223062017312132308875783814066935416496487466686234885400335824552286819596644659735003193361119638054073989995091259282450748117226915439708463844718284341350036505213240188538770330251311421547880762411334298722898912787156719833914484281254734062909405472273215689759878124204584165368696321363715928405817263784336307630620691335074478603333813188349644395402356814453963120101287807404939535466937387446109634923507320545849279417857618991471894281136058198671092103902754534544580847272849912519849073523919750233682985802358730361505171878577934272935783395419052219977735823978267261848055486359255582486613165024320273415344122852851228608633495183737003253400637584482244728435630472318990875140759073049478971787145918635803739151373110323863233942570637036671691005892553927439689133508590930757761710886853134459167505428153947878090374153500349752965280669871497657370466475420277855826272876823158711027954123320834339510670373826363508298438753807406610316004825030615905453671472375406758091047000681205061394895163508183186689749219363220056411851943464680225117016448707159670578606714093740745956109858391960618138021055412402371280504594737584919273172894808926588493275650637284439819537429049491278585217842957551620178633129177872848612188452248895206056317003311519253514736097441286203342043158139720432139282017924455156226390269919241224354671244069468242117453975024639932743836266212758554450710278554139625719468120418041585652769242851994642498193638764100427507646996789872748038267489278097578443110311402110561437959550136179875299601250179828000405630148534751960765062914283932675130367931480877923926092493595605491182222478803003817051343134521514748405939872408163225129054792331048649500551722780880835329272267822270568158292978129616341719601532000447385591132006883759790252798514258573886461940273337895403456478291491966210362155727277066404308596663229349279374038776865840465848445924004908536606026482030517925837550858031190452477196393633641616067317281322573039186416862290513698972765512304764584809302566916989090783604678116736450162503870008049895160044154594400394506809746000037826641628354400645935349347414634285780185238671867885356498723687044211805533102969121487130290890937533545363237934322627660873089001908674467153686981244703464295650607811272546221329679690462370484079501714955554034902255894514716872448789472464482831457304302195568851691590430919254368787629661188934835144973769187301272095940110832907729919070854590081391745490568767122453157222822880412108803668466392236074269376155925242537851461656201662557123251810169855174009767976841615499570849642106557900523508772064431956339789367292452514918178390984925831453466613904558296262271589743842584923532739006087634710931661895251982315064336936192570297967143814162780083858753244057835635488018974109197562858116899490506652862793699162633140048317254662951617749911279159638773441044455876802462685582835745797086549058798406195169171905952509955413577984869941890864189528885269012495916377667477726156518686041770170034307521682272835736819945927525764306264819873926800144543167818938236500173977856745325124169165234374799180894737414600142393176770615259708655262121131608236436445151721340865458590320531851096898401784908723777962054269702961760426854774013888949932378414475190087278173195187405156616344003627000287675728516001732205905039692963227506730216849294575122309029651082217504719038056946526111067952707896950214429519530203794162762035913127804450369635585663263073938209664507775031400614443131895813900999843320736477158650282813963249762025804114889409290311339047320779797091514841537647618501965148794925946802614944634972128181786426899523444051557184792639210471010244034154403957944468392911167369378258932188078332369429913769465025661941215532738644863139892496269091372084604920231706209076316796852663148592575574816509794293667877756475112509791166977863334845574995449990503456450066293348337801104211336318458534055525417286718529572175145317282886384678216343839501047222866206788194675209188860810805252406342437804707105102644863890328031209594123732701265579939346668225356264444060487096262614861290920408958401256515476592514089902519034100633306651359375221903536427511755151863103791612423448515391029278898477693523426435477068889738873835827139317232941423742852997284569879750985833243439191963989791040807046002634056105987911314773968529232480184862019974532225637577280703870929453345542670227097487846617261638281707443640403262597585187813275553344343250419562910307021010295770750005625734044101723486704372281261633470173189399583444176255693389629395082345725602863307898325178680510251244786295237758451279345395782373777732216132720538509620447210425991281264394788796914068610686477039226524940950755911557646905543029221683270310826970340912534453944968235451361359367767112994649004616120896907942743191050105562881733949846255431205678947447767055539154975289626833740690928050954868287191299019755390948173578087229181709897220420180807864099431771879644180146038569145096165379174231786905844890944338731356183690497139031363649560439474638671270615865908992887411010375792890022679669166282709061204710564436131633977279242406191256155932293749338991962918001291717125498985643164409316818591436861737987363836653159460873507310730086163608515207353636565535511794866417240202673713366637158396296113282495327684719047473810076837020913848237020968247982917812212149454327326220818917815803686865194504159566351532063321864322895439887344382919122572097776091620411240010697017749195474712356694087918904236051583339079908912947912371087126059883700838296873728076522260018781414735122744284496444683082680176464013405335292299548439860533181646446898671934987755541375670821112605369846320227428483254758580711062264179147013876506426381261906177172920309632274111492464824186470626876178917168465532974970500723433280302013030396170115722235575281838778789021913174014335111416420693031481609368839201584596061296552736557527128159716284479900816823205003556347342067916692124671325957082904799338998119122969279811487577694452615150217244134265027994157551837909323970402455622768019049198370406120320405462749983782804560900442114400355021127459549853953870279980219700436277389548517963692800271990019948944087631306105080078020546119781200431265164716720785164805962475130299743554293638690195805362475582729302516434922105607825469119974139188045421888309184410558375339214211858769763646796156544148393229011379710978983812619711091753872067083374636214775183601262061273982702362367596709634793561049585822733080451239724579037050527954264364482828110838726070581963391417060103579541537171070966509416085326964029077851509558151875620121240791917560112740066182999968639687169307825920460846850956643285594227683525755886936222198918444473587118484493644901394494962905730876269375945056020570167694857269149074735828445376709109481120444523204606647735684624761831951323118268316744804994197954896055607077576705825145568262226704860917376072520642308008315595885024642332431226134089892056817905943539062984951806475373414345770088247153828244142475437539492715390792055032851206355539652492145856786336688131301914995573111763415541277506911416405020931230205158860197490720882863169035987773839375430669872474902650493811553719587566844572832125417371571531226899831797329838491132135165441023145339534298788773347086193403972016638295397314487915730169393980569456808610813010403923265543185106093438198549698155993511846652022919258682388573045936810085375195275596609134110245643572851141852551533262086030900502634092634226292555422414295853940595718388994726210443186940493563132474029322274413058704351899867199526058214669970142547984695093512419095489886224333710281786706037807459224353259199505942735188352963636574496850229545395286651326221030913672040530619978376625109532214122554557065940049163530329288389823431889003985463193101544585198106844396181722403040197777343685746184232440441997551895447706554683337230914057486038979575968016405387697460535445580663701368854658803135644105727065916735359642094523809320589593123748605156812420039342439912191237312474490200925471876305810968920112621216005661502197808239889824657414478453338586064793003200096777945685513634194256750478632586266296478326771684402322529793599646207066338023883805297011692232080046602421687727330456206618957114986523565232999836212723101479654187406480987115465319270992758669501156476106320148397319204779560215692196505202106419625673900940212693006809361594768146365927908117518421714820608301580157263658277776937884690482131069229805809788876134175251105400547128842122718417055370100596199807574587675503000058072884876055370845745223086313529278832126333506166248701754428542049497428856982609123406720816221775948790125077718679554388553186099651108862482975313755790122230824582287819651388693666356347418302248381174299454620186730250390753447452114732532045268522465774047543509074821267876541431780033145526806991037001483181320306443679405381222489563437997986860642237140569290530451289767930597773237548210205015299822151182296805546427969267101234769524933732795573777340048083263956501993811445200439520052656140402557060438325934927932387630801930222197246641898515091276681233855586058029928654609510110448778710059647082740737039445526851291663398719789709995781347989690451012605868288918313947369805528396313373183067301083087895254172355727737282545537115416261556096195656913975786530245662585119086697361160386486356754884842856430851186862907858629245228511456360763084170010151432222648697837833244572357382217178136729757645373816531575493958516577062624884393894166371419702659066243134667018307514346625641596167103070159616064238204364112211054213709660024157053234038734135816440315926512298949984397268930036660745834529473984602845576385906114827700523867724123170382708952475175404624042511705274984185702530536183047819476104559918204882678534893616960745970408284823296410721906219767256562709438735531623017832380897035163635770224729769675363673467808071377816130896942545520134128628652462712940789615730917983079938262262191711754388482014301775887801943444714518872583456002979680723169369698124047473611694496867092000785200301835913118251387982878066915017174692448894286537193965616641691616219299542582750639905147878091193469108553070291674131783813610021437130130779447362973280424520378689164165874463529055313978299894059268044983137300331785880531412124861928144823551917005850619911754630834908525814443502826372033691753536913531845891416632829591713521901487182605407882001013114300923395608233896691596123419070882336724460466912693897959367111005493709476778261332471591528925777957432216860056851455510316696423191266125186313691136425561919311472803647608281469526656836757465151939222678952143128132147862122917211477740253668284178000949554001439606644951688115831532816272299519279668066044664008482212024707288055817914569398565083221751596146195297939625476278860396501355000103778368197083161877148519698047764940572796334666842057392963803230753594810661381261482469453499878648938208279494167224238193868905024569241981034267192530673227751686249181055351190750858047261174105593903185065697258084286033487242407540703800735244734904471456286560702261083155863873745319183047494099731445580605439712755173974995773465818327368690752600312631458084528955927673528973693071375110804581996488527133172317226145921113490012986835957809576111031476150219381073223290770387268911839560301542050315760080860442248113379651660973068786171515066735924574165938082016390603070722865499090713355138681473998703187195907891827871106214053994922183090947501649282063129436133903647989703630291835231872930387707214608973125180560409086436965850661999394583505811306834757272569791456934011523631737151250779947388630140315813650101279924928081529840049378596285596253457256369630979563086165104372189848525698932159298810119791833943382049298038114803879732940669762944803012133089468941355129677425514641745868105841177314506389460581024941711879895121704708048919587550497658979883995651672647876773156356484038120196002106584447577411635997484319855395680579918953850043438250552133884001116299044968360408568062643716950711549321987463714812804999598488980603023318335000520652341513203113221696982517252309965053557329859816144252987059691051483292843430986101634124595514973521928786281097994875961191256009561886147440853602798724835527952216144119888880660478571713733574998992891837898646783831357422113760165842844407685014993709087373704557651156147078220819689978735654712444996160292452413593401775951117300123492134358221241128465735241099533026051594484502485367454128939293695285098507586758886384289342602231710328021497080148287393437421563994999534457392050642697527192910810259855902790306611289161104947411530778832596185273182695046990005739722714026820876052245938049131086907830090207183287746509552166530237694292004126967432915004533535634212595806636852447725701806384672394703833088689778171929901858616811088196247429607461633713003717492097328339624314747214518687764743934141453307393873868511262323447567457637528058698295886388009876623518970866005992741019758533954800744189422393367182285870152180830598295553750265379522721815318334849270925677805777146174919957102192753360595350067464396996376565816791519757180006098424690416445634622538651658782474771235007567266980019707320313392079969730919923260643498095327732784557708953057695819564720890700721210029699438737940664435046504715938419579029066155879524559270666459939380196698774813242307467258102161193405416466419117077910853311616426336487769066939392158985486895900954080273955697188920236737044183108320301305071743098816255484003171455357311332521336466392553854475288865293059551731324239936017077566904409663444329104990501597464860623322739270123875187883261895914223835866853398754780355802396145142192483357260492826416524751505204156587366761450095290563235907081839178614248574800943459885194344487708454957785956509155275956531978040700235433415829917411473936274487966359571627722374239307959389759796732807908809321528273019111854470647161699244643637369030425028222823812515172373124680502531313443564796613561154358941030458544352692438728491021333860795667543847605021970873395925590395327991087174416947631225163246554128442710306107974094133025072662142396762556380247363529350001802695453722138589053096017835071946464868898563967153455041289869822020934657474181485215219615087539005374922601556985812679260307264793742202134277755100467101178273386230682854654594850421040463594904651878012651947724394190621812766403693144466076150717295320775874903814403569539712607667629083454843320202640841573836868686738941216996722141069336945393086133624777890118520543177575154135806014812782710407309463594340083530192582169452156169579482261981397043424486244026183775335262154258489631182417990543078332273291867081459237223271026456587273125168425434318445765445626363453473072146650176252228524196950223713443776834394912686031382643855244571700095597270314743314796586063413998637901447423838083762500274797440544552494036162077285379288726522055847616403457542138183545761526862395056533717596915083960712953057930436117850199047181339690655602331698525563636299500808616418331031582406351050328987502972122631017508173371605387442529064906517283938548041556132865677694432073475163253456459579864737505230751892784680279767451818446080712098720213511482228375187828646217946909630461125529861271305000002904873645382523496987952344461446427833220764611066851373677240230252284328478844432484758624315759267157918121263918525235086917159632766835049133167163441172805838615344238200819094529341479253077264832326155296420679617064523739807720112241331492750687821844609200924341558094948612450560587994287480035364719405693727626550016950111925596675698306389475554140911549030105771449228088330616317374677578244001219185017879174031768560851583359584630181538688059684227561776730992917858141142700509391082107671066628613438654844974682430250255350802322531831592104642178546292617432795835680478941655221208755919628973277186482530360602977230193769957996879742561637286867701733805786023066876434655047901955248130960905923765181772826791416720839711867489465039001863890561495261682643589787618897717682435267219868430934220863822249058439099094579868788082835099031146843852117819552892654883727039340599182816654346100437567511281099307766396269756504820633079916003170287922456195266655696819303885914503927438606632276675467339209094661582840193122039326656813691578490790904467665881015391626710510580144926460094439233574183600852982520492480911619966556585393343587151270027167734177385119128924939549241566990458336428744973173489081042235127858365094933136500047787997263984019004509264817016280876092419091332877418509037975215843017118258747299528819911329076549378069461400395178979293019165310816546661684567010300339313854037797290914298804122033955963564738772222446515713259565808633454819335098446310333147635864784400893696360773652588907108025110475346899975163172760555802375174575355748897814567135747857454619745026076703384040273070915011671778594789011807155622895478640323765752615331129590883596642751371234914039639329199770967595762966053736818826024865221701098329420194313600742327168417309903448802891195573354361592214196020242059286694888722231551541193946037591823515690974982580763480629297018897568131360061546586742123837157176728864886954466159531081281028384922920642770966304692032632618368939750824798178571764538416112615489182030595104980832017633946462379613700655989937819623222575779230861684036168890711762082794814296939296986122007810659320511327471777769745270814393777728595357456881833982106450242548639421743619566964527142574938876755085062379963779386745143310444925760884574989556377333310903785150972986109771281097948410292514712992079544339174022545910899959005782419425438073866414177752614215558639655980044823537587103998674746950809745041021898557412064897751171727779889675393041059370758379581225921635081060507873432149480409825678666856521280660488030239549536104937892521135289536817149264835415117261949474025784891652628327901271162701158376165348585458966859814029613897844582097059263909695292048027718594745825605249207050437870882758133464610045799604804294479586673464272643363761536344812415075384868343387524214770699655079685252374793474578634130320124543442593195493043826459711892069112232992280980577696477399377762547915939870564219398599762291115727356538559000630489135897882603249570561278853268832385418251685736848698285507783321433033677649340807344680077785614998620134643240395209138819330352689825938542286407311474983467416125215155204566354118781929891232773260895045076287549471960050380736864015937725931716355203278801836484124895236933566090144432500822877681469220638269991556704103278916129759136796870186606185821597002547156142022471268628394621184033751644888573392684744434384361594197306501292141409592167841797183468043074449503304705351153506744630883828442553950910978385225845298782314893439953257310741935273097674188207962028251451422791347877825743632740582510122701444579305576196546133547889147874369884404372565479097640141290557428707182634630818584745171323526351722711995887080094469205236328808034712630094471614303079794633800450341283255448109436910649418874893337349852026151978766582686289833637879808860521397065801815762092303013659337519367008538271103664424746403951492240436105963091963354471191210320194687580548109011126697542918463607511466493036127145677550325290863663434421389630468523515269279074777624250263700462520410633111254671913361235987367379120589668387241705294552406406646853879871607813643221894377805206071744195031323388552327118659312717283089017787512880014985578071310802509271554265602042496868708015493914641795976572871269250497857890716957756943497226809733223020362846338206478492913715621878313653640573564403307590218196626276631469941154786320999372450428285212994082436591143922985085696941987475862112568474261960711238029893646567044663350407275947820569822675989046064698305241467525935456939762253679716279278026362315735369606162232123914853364819364538078716241035566184341456473772884871480837037968998036313731361558017214046582320502089469830552349329654306218902872236163450507960429256693949639781361698487981261383758996438099202110621115709567005821224922676154281412002369394017976322265665899649908772082366413529986170120512939866175666114835398540205080616735433168643456834040609811337907825512338244506299826572723292212484629209033602993192426452650448592684121478283631236716366127234638032280855674781644058790757423619155313698334620186520501393639561086417894503393306087956158346563433412246491890721317686718746013917571686026000060473872871444750080325462070824791992530097055048466057215598012077796443869427754479758736226165301948596701676522164952419270702275785002177878889071313405716543216400595745278852633990938465319773001714393262390733754788322403650013456404583473804246361377350153905865750330387635599280723161080815398241072296325410017923424540159973149280190708817695594507672842085921480374919834996796697291891494359441945180481576214929522504543720046751172960800685616568816384229700628198720639321039353820300237546712043305419144986156345747111616853928694515030442136742352038653708580090519907580570457241570338957948281531286610911970893366305329750625126331198887813560863882234345510579600153488710144836918335516787475884428701178951893192380690403716179293762262171938107788112707828886050842067198112673195787552129724908351547776474889163194208586460377188408849973377418950125809861610212880765146195226463098730147998772121646972137561824965128684257440911020227923454810981675331630782004357938359613346367282651606398101766060350672189569490522584403196894152536670690518911814654185263950965312866583885461773461104181045560954086353159598195651055199020641283727290345916485583321505509236288271222338684452643015094867476110963118863649880995250555237739828746976270965510000987324264579227266473803031408287903949425419156831977179492065323891153920797214316480626348496584709136822629512915494751362739056386300022503867104968961065905081129097413017241513746197042716234542415084564204779388241595608374811009146472831619430827965745076612293703252578371182881590556827737685351809772152738648557809946392213772034756679750433720315360244202300663478479403429636890796398814933319600305489584883802953492551993187625755919051503415494859581051288380131350890418234982866114404661457662122759336037081244530570377914637668192490658356664500666838329015690104102291035490812415709727694211889333880941470732488597289697345773481105162985556400058484862483986358915789415273903106393594888909876101682788160283193618029688102311356531564665893945720126852570129864495535636118661206139606680431008142901532423681388309235649683188900244150311698320129247775625330749627706191580339689535731588653404906440591371035280029408513912202098807027702926529799873846537362818622511090028876391333127871492556669158971591254693133041131552781850056658311131397470989337479174728813875307753226276348091833666009465207107857275118056228043182802725322143557319948427530086846642268720200124319548131278832495136556776675470037328910348741507576724637175172471477424680853138810880102460894284975445787715057200374591565760252123484948044364233631086819497710179240216187861212652347448955600375290420895938527720804039021731634849724991343976730472201486114317973586679155559674613735145376857512194429131925313865403361900753925411855688980043711763333703693349423332117385966292507297264906548189066776086254014036093391023993004914860577003869976912535641587009650373338949762285237742149908599590384965170689390657011820048473781584450223329729456067368219008420233163816418389653771406968526702385301055652180346702933664921060677361798817531739623285631248235932518333593115539863898587750845213813998914412742806288329974735908971674378967814419453478443490537523482258128538006863184194066327844907181619388967710908551710275133381115052835413124718189287166492163809578185512155221675817227863101644190448150479225235833922464556619567188776318857031566331276125833739075932937475372479491106503173764918582202054175828782713190950286591089536617680378338969759572647248728493242164572787836704661851970092979162082381539438557637883388006527713916035605970732219107437186065093241736082485434250347196433524030030312749521962787613378118559404364114039076416077388997164337831840691131784301004760835421746411759425548805993188836557531712131610771337415210261608475680262148109625626497094018781863120609314254067204428440341315668666241540677881459868578567568581600616119348371992136528956278336339236347958705019077317108435829231617934290689411107656815122060439071762921990255924808098578158090050041815200826920468847246742104498660169859978542036387052870691099348469554455559066318785694484337659857929169849107637704792589411547275577677732653915307237895629297733294623971560503644846745138425603687139086151782729119543496827715659172206269985781187319649745763606922715659536365218563864854181200641308120429191097991960192856331615045262929041972155728057991677608977850841736294317314878485121147751791151635461463821005871676602038652254395056181091775119644084516706884087398315845202114141593220627917075657524112138913243834322874928547660761632994669611181450523728754381187481165423795481643115524809070242700843161327693235897893222611781454960308798656574738081300587359471953315315240708453886701175632741651299183562509801336364873374693525532944032407900155744708337036613532574251935817343617913694792611567613142465126679288423446930350889809852297970561803526826590280093457013101319227050265485960259828311204871561811998442637718160020381120349165221755102942898343949596255042934948327389821209404054459320243769388455353837910339759122034692542211205302272065426320757815250752731423265014807740108929036012474732976539902581376352485121406347493045636218991591459599726085716773722064242517834269580549041414143824646469945182104352544760696428046352046686493962974605612215427826780806489688153905953122238736970475210453904175610441004484102021647325604106655429500214616408926810507906181420336711802952398653593346354357485301870355526469651564105017668683723386233385519873822934565115344385082661055851790519344666106291741757999322890831699859861932994349628532623527313262491874071449179843517510307933656303668090818336655559343211993903963569867977251750849894549808988921596176705015026472352208325551553933639226935845842359162621285643578630556453478801678172685663300427272897299828422406380254962432539496308147699490719398813624055939783927252724396744785140853900950976723068858830483574696353620457633034312040216372943024040245313889501009966358974805908700237137577298552248512756898986723352818716645564393015429189363521783318234242272627096859437473093772580305942367294509679582015035289085217587266811988726270750598174526766972104454269670463749035856441417460366311002243921833740517480495278702282434967866086995309483930333922414943326845222390472265100963807882337893011019515849930060171287309803267561011293814936026689274658208974488232030911636922304363390668322269271892965215037763364116924398159202228831419177457316879465623694768931122499614248220026726507107554103690039791454960371548671646165662305810654800282489646473427445911877858668671713585490850073184905244750289263517947236350150813789498739013203211376984092122533144766334974621107142902844517034182695646039388627881252832015300830666554297182292933237832650438873801468097202462952306429943942562902404907330715699090684613761421722669761045207343671986679918882130039214100566519216054850731933249948170507143842121322021933444512419580314414554885731554443358088534809108443618768845434894089137986216581049536533361615512042818762210025759592159311769851695971267002334908863766713937854087664150574673968622404333329357576836908396177951659181270632254353850172185024307175600458034337654626143805774227784096207193686791525719169700694788233668657295768985439709595208319621933110570747618323931887520722937637059158836065998758969716848838183016664797352895291950157241523699122045044783739351689822655122677995142666758688737971532118500838917749305676697617342660340193870621765418610075136232724390614185764160329460427882517418430830426124047883931351811664174640565213967311526396265898446576309796219420881157657615517261266608391359903921385516507532658963908627419585855570640807097177373581005360291350785066914420151512132934071883638115109264912648343745506498473950504666052449702403914526608063170103161562372727952340055255970038205121577774462827802157292700360372915904510170658501181243325514646180016874036488892999321470157263628383655556786984326975026513051815679077898743718184486003510499929146126838254469206717464388635412573254407851050633362131323747683992599329537190259072284573617504203315286017493714023310193667956121966142360886139803227486498093805841187177277370040175178309967295860460668714700641785153921150952426367012173191509310261231392573152366432190723435859832283294528581378517505926888460114535312900786474384961133818768297080244141076115595977359560716953294991443418017790924161595141381374400779182596134065235936015858088988488734257278153062391510156341750253211248010857384454042320918453424351767755776804421803763834135773925105032402730675218347254245874428016209446171508613305434947924613699320675108108510113343739098508700183006965514380402669131601313870492846839124175666610819193674803533100356107467978223900591008599226986477070933179753921013467843818369855488398378616614220287081197309093527242100682232489761144363404608665049310550056026893193122312489536803627062618461198856262874726380320948433056177527612341106207086693802031521855854985292068837502186915027995322675198229262858358827476717956774096171007720482025086534639104623329570691720267961085058501410780371811346683603210540381780619537307812601957793794474564672757546647277540381410845666368444784110775357750482623177775070991421593448062642670490318422046613628437645233521725864291104635524216105712717833330210076714675322169148720777846740681091973184244034242828415096495557083299865442798115929251802640961449516304072162875264507328431564016872121475916169598393806128783850129067717796083036125447982227581355899643535068685656160970928150335731176076700822022567036284734379945330254134875301158697821248149533265052824366626811317812198347239566187995575967705883123576229654989744537287266085734530545806709004921115768116873744780073130974974300504724118506349258714313270234121795581812440516724699829979307553775343867701689142290287135334621880906809710577575835025515911805944329128449297807268029991133872778008566823790138610926447643373806371477157863864090691897813461742541923480597586917166810383362296285049643829299253083932463919665359678384276191879590659653711118730482558666009096331428595719377099286492240845219475210704369006924652320983993054971659723183428529033450763270433127728493100705792926479215479734929239161535477736740222481460514953773799990258130352587842790817071219361856039415335216777784307115870615612418112033319878935181898907267694896377986991867266998207648778854668963308242204691637780609201333363758092608161018221182050116909280904379759798199108207507929870636168138895719978317219534414550143969497777897220000150925336791000612735886276847239024169423928022601289389854747727476800557051306429304574201329980059551276682456360198439406922436108777179099494800014477087927147090702497547842960903873142478872534007894585798602468515128068855155750535693555560986502993841355348083821540504583807731272722150396757573000792448152508749974285218710115002191554356652725889774263709325398916789353025011201054388133015151976726281273247087443714390908423024466546764238828857548318088690153788455396309683335998919297218067346440779818396789136855026257095528419200256649665073238090334408102030993650866714642671109266541995376343624733361780685164743688199904400523226066691636191556786490411374309869535501708644763345756813285999543043395108010819683888464764243782396221183713508530356030673265236494902513452685833756107333634922570485101950294772160663913166776436407482156203232464173334295704024416873883385754970637302793530743388245674213014781588891021313543396091474296475846035529639264797931457501161981871310486935523016176091728687831362226651651613460891733149166646846215887897679967793922242526145628584236680094906042959269736991034347974240660608284987894784602410942544464266070222307517322758330961145718536436257158728695358458130074887050109568462303360476314730408439525205632772881262035715033990907482133220215467845837135825276704363965329195170533466307353836135164148412819300654180642221597728787317605758552513902682800728784956557292904211772607040800024420496245879024479623945303719803855653903384189624581822800261846283366336196034990659625966579077364083215827554702357993005525178722139375743527216696323922838920365897122723034304000568920723883688486913133506335306900612111260551219333005929103756665205235797279530620668755257140594590636528150003767917003593069727624294374749339572800722957165276533504511259494929170949619725042613831034883668901093897605849128356779518138612840469588141485553916279404770103067788260665870345965193570959128924268915211336810964665997942147690422219766237071592638174574875306927221144263872984845445612967783495032244405650345278414540743961371132276548065748674649914843688781466518958898040365755264676022268968569991531087421037917584433164285131464494897697765755315487233098491906769011538132131106970228702064225451928377788443854509483081562818986786210128600841148508042250995377887349297518077068755137605868225630812637908706370557632658223127773045070839649526785146637265500729724776135411203340682419571619261386646795687055202014267158764865874670393157436383676271869825525416153306933374118776025594299785472282363399741615677755870716730989541865628946439519394655954673105528523179783143255922306534381645070360691105610672746080987917987494562295960070037067940149791368182851231217089127053843036079697934937034356811077493314970748095302903111758714210757556450702979524386515575853094363922045775750386675654971937677907640620512164916396443676539876573454663365691326415693853306015651045178344946756743554672269768578628134788953194120716470748150472512038204521040916441930663064294311862504295313920210508826559702459387379064170067154299771849163761171329407462913732061667295437228037896222353970453705796325896950730720728992725846911454321606646457769337785225444684243492727046890234630478489032737124098224394625153775981409661158283714547440064423622104677550645036799019801701902768427820837998099234967277093029385815013958181156904699809212078418130893878858840579251491958911695578432819979450234743066730666383750387851522746141357748843189625878051866799492875096453950368505507250607569163635406583938682541727908218030155418255071325457340141837811319278843697516862894491087187608480829269140524884210174794578292558759789579322691149498854427319362535431289135134995305594151446191605088536322432561823346101372838697771441608513005847823522846268900299016197170875356893047777097072880907436324342820290166637620084528169397428261784246266810505596699459776135895622671217914376417278161597249813265087893140897242001426612597515843352274081076892647155620189556489782810276866090369537432390872238474442229276759679375699901049476999191123731042401360823056725855380952303795499550932206069506111559621367636935371568372142995694019938388504740351974851246528562537189695745362002916454071843370165082315619272528301141175227172676701812664619994576488781134954859313997109903318914192904951232506575742349456007802723559433988902884919623886539070360763991163358776915797015230322738702751443998596981197145966925401845551571376368774354374592845410910624593871800022230323418216248479658227945312303932404381785548977045627157437685603694734163977193399511325870632591209206034549254652534598693581275317741702230150461929273056370731412412943348364537303927799770978233897485445648632232064032677050163995901931018307053032692064384382220237417092087946688592883502541255102944698168197014840628352079162155044618794907813387377374564224774506038159638505947212445205214376201382887882232305343644099840132171439474267876687114467041842710462250066341457430951698605367354920890412403940374040117896562740705561632223478382986336641498080288139913929169620533123473686288693143080939017550117828386232457626698277684109339455650583083888833994684677690682200890992369950718763266962617978621987107391155272643316308105483589909524946865765700371735207427805357373310062732449793128563653763248715247222148355730738720883796500416621773184442207937937556528049361343704125937680815672353830744420831499468695694337109109086273326817322209537228024206811493838494793109881077851330443400356299330444680260391866784274436607917741847823655647106827543704730829114148458422225868498531917778111500205089128307118856487518334953877287355797850259700147271401253662800825611619361616428746044764212798845727789539442966580752611295103567533747836067335300988886621140125369318017349924021574664770998945927255988826260831967850898633679296477858801409030972571086368031888986596479600628802242077470640215747928172269718057473965170523558256929357635046956219412587093234729997624612013486723634467409943167855595153086497825603276301977705280316335743062425715736674889683262582479001127306469291719841064806430320331324194068868503631035705763648397804764448393818759259721693000685780383967182839596469624302520169960470268934081169156772646025728243266076249150869815831792293980531131701426841554157629661125513469689273112280976868390933912244151589234586152396696734448752375720384661386610229543015479005054824278123419421287387760552799350954487276616369184371057030894045429157974662216503894543336797423344282638212942326371071001030579068025839112059657716735306466372705927583277487183612922799468602335702167311071104904897995596163917333939046553931171194824064810810736153605102263954845734813067769690323285828914089226624502086806035259034783813954354965076146779039159889670982410697495838845181566465649088206244106424494254663815695366581212236965061439014659958373375337769629277174036141744764886157737810347909970943620438285795928627413150737771057828469530381217566920705752718087118141194281910592972428172911800497803528636934253458125571559055957758902662659784858069941498219599962641788042320020932745765785604844173000278684207462343636163277577514491767016607870682228456589222487397946782806946685140336068511939205649824606240383160534002548312853504109306699891275454702249236051976692905505510215603510314021107569295385960004466403525516456312300310742576319848023533490748679550936528459703872508530400967193740272180493213218216983545194895966916522041632009934688677331898942220303958591416555566027213268304621224943204147132165761489646151892542580008013415410998156753903475095168033780527645997414531492740523528086587757071135509080862379102765904356972567384085626569780558155075870141240304867583654781926832544584562042391749769066431384905359070083428906585337404337613824004771012060945295831589955415017617761666212594870581704833310392649099192348207296163070474744956616304291367641230580585818690730935104557707197834775577329451973512291978949259809131131349852605402180847259490893768266428437842576359070559760683354258729421055541213509208431096967128225585057168880688801099979771347980906301692005379906143134713523565323360228335762771692925225044795527631859342468372684948822169221976824570255115284881745999647585671752479483818891661035490189762927379538978109815878714983048248290155985863242637308458404670828526143242766124861023599453532822672293596753203063239744563814065276566469731899589044520698277168629841866307112069367267896509595546282686154626484399169149563308864476540943610007339768228830389712999358688414461618551589992439794022317671889552652935946458605273399798980190888956119274776740370515009357185125924042717257069204060950953404619493628588139259129387702179924483145008113100024823908970932156874058789853080813709899870304101134842782812338029020783530424856539148060708249168359420245180748602946745550509182133288453945749176017184803271315580879961527347007999727942095180113179372600915979064160597757103318382911767334097076254272984241613019672798425132265008891132176417253752051211025848000943896579185090112641433512305506743914889111774365643967093541591344226456526808734185750808645008184948979236755507351082867818051095205203155049375875590515976615199934224752780093032056460447670260703629573613857627794382776444856806801533706109968792360837378252547018349272000832774940527919975694640062465956907578015855528099792614894615154176335399164759032229923307581729144750129869085154753558025277813683642947479012163394870297051189063008426338460056057231966858514841498141753626474675370409820024400856002275906671921793971570456057513550068220613706523705243001637688193723637071537661491631752981614702129728950810969424418770927866759234688641356441608088828817053256856241420277380229114126723299316461591068488987499741831495519150776359865788988413565541985426086846101205313378075051860993287214595715342505024550122786022342761582675481465351714755169260121470055310790710708246997451612215224640245647593627516402994616406954164760222165189363889454149304372969632357562861827868025873109841204635344840986895925524452873762161517026291980112755554708309474527517071835478769013653920639815686354271026282150782894950708932255981920087184920808804717319381043937717240193159373121804652578251001104328855090971009428512399894491298962311796953902050488750784179681649966630127583949065223983290000375602231014320416580477226550537632249671136440490415976907220790472087633525345023910521835566371373522986316810670503015124013042341871285562641742632163897059533698880697748349286856144791914139863481014840405753740058210669092100856858301678348823335789355341353369364900379800777575051066432625061512081287903364437941771450522169834206575181489383313089550451048906825774629745912122661230508589890855485208295723027601465142858298324287888021650794377460765250683236280942234109337805778463510193561180782590499721375170319874343346707270685786177754301846281225311516366097872928629868913201801595971101933009054360856590878229778160751842344164233486941993540297063841768049430452871760341831794025123623238333466085467536745578539659379693791545777507425574031874623633409018222369349974051250810396539667455295241301840755646818807248560252892213916666444697538681321524410572888291366919956812628198689954038942476017966960465587476809826350929220258719594139632861910342682269079706381740132329932905621867885232547322043570584677367901167781267709598297703379717706041429598904876560110924366251711450951403386957043714722762423962565692269449771343922509234798105290729080902241668406470266878563886540044527699715478713242093700839424209856326963445532096985444074674950110287005995674197109083232208580666510582114728082729861387776599892134527646782883627136182527238078338444806896023423951212794974918327277497407487215169857631757402572581080674076118612676137923355073384912498829410139027241926416974144283023214524031983341217968349666819167742552117682128190343963071671666342066528408839672253875431030231266013796714114246943952174388432675125336810945810752835303889189171351816718254097375430548480053162208980331332357992096244732988932056879915688598600697688001046733421967864816953757271186564213242058089789120246931890672916038964929550083013701866568220803448122076521807981066091639482783586382296091044330357528810668592129968595330508874484303909958475085495276827091880306341515542222497462617367042434372152764967409613843119522042084522831595903655895602673466130752913307044304969651687048616334485212991983544523383075486600782253086928894393199059286863073676963566765235266419925301686828787399011441776129825062293046952229265628539306334227797223035083376988501081577573911223832491677703933836511310591708385443334678035799998949154821212849516721889753637092834192034867809057257085073593663706762948824274726145563855758623956549152552830978326409474933058157154911892634406170060290306744142409284714446460109821936811528449136395691285587415530117955198389565536811832243364225002182198142677533128893048020996692960178629671105892182053473705019440187579552962158044157899908132890478861750816899323120293786444285691186792292743026329562455574859340869926653335221673775190147116504771255657147296007999108334759849780200081157196566717842614110357652594984391549181636443752518881229045843744947186074962945565340515134515759562522594562972252224116762563393301514255704757998440564072913327417207833797121840666726527946684112878355457520047431512896484207917084685750191516019763510476160369673267984753838264049222607771245323094721574711531057056507300231012462709572231369001704105330906200267811356009006181313488195755729845309229856762589594103359041790336559390390354668998897561442903767053899888699288334281536468363676689176367820716791497398800442045281666254368135370682594581789229109428867274020893752221679094125770918988755828604876357478799524725466827722901974657569023351565314794377978125767438526065599899234260794721861689423475943071151035976053720311432824488084861410942999765650999224909861577240334013580840990486323167840174067791378261006655682345686113093444427166795401842516064383923046135473245714619785214824381808950608710920900017914093944013299973308743853082354052848454085071976961847272021642048992680885973337100174874432441672725699828778465086154942601179332373996975138955541126934552913068150244079366008181476283673765723777365353375949412714768322866619193064693554718285392244332793252700457517505812072765312285164775700781373052723971642221417149343723096365356374867305105792548923056905260577172279118099715728330749650595159818122498203967990419632479358241513037989695430902426013061509849159232544539380274425964744792034473714177328990197147986319569956176181494716178527510067266161083983101148025444662484403591701064010155777061098338121891858752330155953234183695595670167459944149348111600735736676817958223022701929141235770944106369904238487516029535995220872690841361862726649781975190559153959532892469528338574301790269980929974449595193603361114888493939183655735490237031730618239727506409978895880307271441659460048811188263032793578096030913303310745939623724536330112027257952886858549078334171426642397601344517742662670568719576224922485466640205466832732955524489363692575958509599371292128811373273971090619629735041489385825187900352263171349258503257923838968065221021770294514036115267275022384545877855698216016456751949985354302542196153966153892521519695767971289744176193616890302126852391698218329035824940686526668927083822868955696437829885984000084813399818388016492932905254696404013407287771957419603743107747655825693218924167363835728047362557444768840674283468898385464160936579065154305899008465981448674903851655717242860581596116449412736472882051621095341008623279013438925651534266422305609100187020213387813519882700111455964333959817534443391924266610640736186537808749591040506854638418704241926894415060261975179587416317322560266730390306477921158720381662152337324893402236807339602116454689938022254265598853606194865316786876242917964028269448418091912248858020195941504238090378235371686959307711081391122347802716564901672923962002640893979481371444156044585683985765232968570146044117163464787043649652354561342302993532856346225127751715670470869576687455679793137793681895504836400432815655352620429045826818826670440723939441177410784334333163886821283786409347815134571208390590745499535046059367033506211361854738812430055334777415324904028702096055234160726335274600747150605039238248693659042842458630818409633022170271185493452431695596352035869568615660131116411971894174261714407449717401850860364325904197342538563658097292143927692461775237025712332179440298354949799511859551506397973330593016105492432274793078351168532353497973823637153334417348579562065092421494222496863591346239021229867551974899540428678590748623769684538854737549016585558101311240037702114184595098294075907820894200566649390939973094471754972465077471843266335180203817174140241354902281487335253116418129278604069426658883795500428214269323793692700080368934786059582324009495994819326176966285847287147051318200288943085264663534672242996335710044158069978025466489870528169946005979512202655649863209004297978560067961899208270413861086907781129386545621873747630792664871517986176227203768994934771363557043600972502476268022679011722522232369007331522942709586349904412228121937806054461544814806423122459332178758581588206526952513243453212225570742615486391985554235134907711589190029874248530385533262996844632857943139754120380212134257812865995955124532408180141498856206974844061731833777558090976413584513515279518462098100722289303082563393272539926533226020204971162474901043488870202796053550609519836079532619127522871590335062394517194171978316562666813075359580082152805624496214015355201414389381236102433792880692355120637642530855826970207849162271316276559700446811111839050508354189670181243808522130507571085850838354900373647650342004723450982583742456261820151592952907798477151997845409278244049641264644690164849216832959488086631398948862508955337458434066948098689569219383685693602001183478664963028119988002993191763541780328200329854244373159707832179494207557596167264979241404005447426329977755888873924448062557305840674105814123776916415458582015558243434657397016903019725328143479501814552581231249879384669393427577521248241530008435982697170622142465274428963582919028015733489488284735624362022679463433214807452679958445207912298983421032248739888744780599025125908981346309260379667068035764541282607568032040415000063934696240149670786021605930432378865060169635861763310343011594531347727407508667210107729798968076387975208948187033358163738597732419142433178473077063502512717664388091230425374680526553372857807142819526453926308672768402595773311906035328315709039156578363731278168864867716377361729727705392878487920126664734517296328489596344216776599751352534349638381507286484336141309013014138801325568566412459506208210000161794803834573738353914568145168589555275586122359743452043185088406898907637384862306977585460036160752122051734801480774521504056226103776245942095383976964292982729742595363092646662598402325435653044663798815087901663412831016649604767447543368958539043634664110721464986995569802381840757355602927935783227145937738471732282888863305610325093849263482671533051188041196439024561510342939913109617909049642353544802468586912475357299857829499631220003718980174568104257220061608368962909234181037629805027029565064938241115333235909351136927673640848809473382931698065468494379098144617430365188026719775631112347310467889381915586494548502800422465347398226370055428961539724703891048552374905825676464530973372506291409067200618349379873911064550301782789718360119016060767220526342396557369244787216238691929757431127778961020300312097813212086183127981543073747364864229711205003143805810241714808376122355746625294580658584810670679082412804642611323439560790806191719421188105468187786339116097553457074098925089420813460985728240291665905637557103414795863438565832656151452026509080228745251960892362065985427743755104606909673589171127153450945964583035579357959937887130791554651406536067900143982484844085693854789136054848244635062152186947332053479250509501700418983691218401298131239968971499104252432183102680295390329888518451141158999313918344030126925455406470666260389378618574611772998477618651099427443380390408209447197619679924815185096128629188335534352952338566673294133507874741861711404177364635640701891752852436925285016316614627666987510745825714747413382291289329707872314815428316954010364424139056857126845007256057444114709735009982913770062904934846918502061703827122210874185282886835024958205229845628724064275965157370032952591079702673196077706842117798637622283299634402569500741564843841018541091126661857020809881649917404736782125094267063752785748801472873275497972098404414061004988783483847480466018466081725458451307399056391143337330030622985452545448423382995985970834664259388933498711272802797759545942753206727871827635660532544892293029687984939874740738254559998532596718750659388102372022893627464191269375980991958494372783717576805895630451318534126508843084197412127564426109141101581603851607634814228082155357596311160371081626333992835690703878111400374225869146288297901900902911542258506545826334943498621687154854981846974643197908411368103752665104439714229529213840388779256569674323609059953677203623373103221528116271424051116928122277946633901239201028590581871262068299335950738770065262648082229709452782132610320482696513908945612906276553285481145978918236313231075932928662110896475341293771610133121651819711566911341580732869957920912126472759670928412909408002175072187803358067467805655586833037967151633095314699008339966594746836617362502720942464463834806350315683789424623940513927793077434193652493489982491365887445686956726116048515174049685696514788523552605833721561373997370273678790773101531722174517771685605631350878811038152473379768391842622818036717784211305976502705528915874485941578144516046931449331119045452342845618964702611540072719542360650991151151908932063094692148114986614068833398844182543133278985315238462850128580715253250704116350041438608123041891408684908776639125020913477029766288697781757307466244657449823898654900838089675467809417481321230217654489237751007246382121748106627172100214848904728361254803450046884713926970717311990669275016512741227920180495600700935322586414644662142928184430119929907759829378624012231490267391133645859228965998547493897341072319332572105422782060739298578308355051072240833995525382219432345736463583905162569791357460469974236019375225314013934394334324169073843014654911559624154024311828475827989861401016469463998229732015157004327274128955908916037651733585258364770663236652823249769438126456886163280151343388624609826551368971138442260312894907915029428563673216787428097560437801083103083334213513534833110007678655242019809388027553266644514298971174947617675779439768598443525976115253493676203888422781997349753714935683834377587265260735018394438902697108370832908267945792255828669282318144839841623654553084632382657727022468901798324113475797729500207403655287448833443887666262100802266426161953662674929362371286150891952833183512273998335444717132321611060886644635827249259071672123095522618813071636560082838150734535582121442430570110256616012718218984261869345414123259364167613193061488147615196717722418200472647561853502162877628102026375115810315696091021498233706063571099449842102913083148213413646899347094379272159717501320264922368204491578327979132100396831763129328440746677684670121891138377961558275041050767070938416063231913060806515059506033740624680330351636926048686482074061512912299089269450499889544512199734857278662999811992869545066832660397755250403977297880227727314264411296086727796894191318410861469793297770256155789574242759806609599123035615368411348245898483860570677958974801350510319246431414511702411262593460874264597867795302999343030907407687154844909850171896233545082188637570077933964913087128417314369933780983997541281646660286459910288367427593710603791649185192378731758430774575381072150486917938837448414849606420535956897872739474551322802311580910919018644969045134057820140950891379476158473413247953046710246895890723961874217436724872656895948940997560651441826606558653087941094255000278789281031240922345479200380001486970972698651629720217689382424561101551639864502673469095085383230681153793283683306027945602769094655761248670656619760524525679554761491712614187861467868758040641637386326542669500146070750345544027621058046534243899325034249466132424291783623166271209776191002145676833304638190861798598834165807410079309542378008599456182738055133307289238239962241765626652625057374135305185533517300440825330303300281305785788356935189799207020622787826097438264327260987877228601507616103979275694354168488868231392325368426770466757178711157662586467911338644805689854812074757572647410817699591192641539573167295823094782515900950822044464504363061584085107564438524164297603705474190591127689136667819913110155872175313553814959573968973159339730070308392769450346089763243667469632482382442339159772827388999289135143032806848182652524408998229492808519400433115463651442101081244126091755856463051758411925314426027703912737251649016082799501944948034498303232056021538615090603281000346321014260128407614895437621593874301325267908934343291857632090983844236054809040064776942583980390709883777649823890534181254919680450860316013396831614597542094556250642633061349819387154788752833308366879451863326895223977909403219393611901478747049901462351998538548075327909871366879404007842816668652124226525404906543811039117798163254482162488686711308905701178071932175242548799942632777289362324469567109705387791214173637090680030571349654822080992260595063710662268287169568647505581367045659689314597256953002077694512036576843467596806311666106119425342357919765089457737587315640783758415189512866341474463236694668619129060303377670943577182637499382122137279807992115715287239657722137026701766651242426867179971892588835012889594161549001294285685192379326762067981283110010611428989880613748111078476507008387162249338872982549634602821499102503264859083119621520653303592575797124351898425534120823604444819080195379215537896032597390347849376231261120167810191525105955341187099265206324552092795625303601803029077880888931707674020346054404080221719084002869514766196920255532369213660024997340584669113701286271120856005081507722010583045796834858613007082117229149065118967056176591053759222652855917309879043943603302110741376118227461556324723434826534641521549816141078562570095625907666594964434554633331507009772823327414716736903680473161295879726310703039369043133586727328044991252056309577910415362050174511557156538018639199142350232219628639151615685652992863737753193560497781925601372103075053517632357951528624315054982081290743545822155206970268910098710726110394854551085423409444556677673595928604300712735075053803582231936226277118866763917573130579749407837883007255207521651576960971924946892124139393193102206675698673991686156010523081294145622278175142814888286944907615739914367137765301698924863526850216794825292712699282723069708095288461784407960143687685788571019048429711011616389974744940698778916892882497931060118418263730838217769365103525006012218346648701847570007186285585486961143632960839029090404435929172141068394379763923469698955713872973095806958210174392449208537872783496626073401353721838364590638330968360666197505868967703570209610970534146041841571226617683673558893060525132869731387304811299594202276203101325673861313876138911823784677816877032704480853530404753856475789737716828287331994593475142714298217382191723724903096277372510350105122438793450918676244179510026035038119619305854958115334268917120286386736436635182619644492923612173488389306575381247449376842733665501323905254959299377890952890621367634390433491122244878202818543618171674247009181155172063244026889021299822700389196776112294665626296229581742183111977179621812178971544963633797741150928754454121988150648567345865456845052696495364850024604763519363015387619305848655220481947185224220060242593218568011250101803258763875513144668859272775583268805272587826216035967823093385355149806065419757272202008971185977006731875567588799571626956201938294285459636775482696795428707644936409259521575035127363915314456977049937169746977161770198669121994191452348210635499601646416581022898317660258456034528007622957643786420149095813728009489037789745112717865274702067515685109950113519567907715635785205615509044833154640750913854494621584440834257553185611562911464082614089331783606221737237845434822907459728611247220243470116225771813194145633346148254432334817245411377738128826523128090274290044317792622944574459085143004830116513236409833826382889650141107981700226330340152607300488520030574596940760611747555444913779432909757621029997916067242252470740901793811316452092019286261842739819811933719960245322754518744066180830592027397010726550775035610507119194792166531336588571594763452008434181010672190618543430536145260110031820647488337105109590469331369033742266207539238300074863320961848662478632594129796424399997577109597727785323374204307604282928971624830206873038834382860320163338914652535776480468084320005562852767345021160996701734371050520678023802657173310783324088780489728355652892565325029794811194212095128748865788709775193612702510411564320932293059430547693599479846235119616403216474789419046620431000653784425438741603647141881057888478562589057834017998264032785906211681278546562764240733552492144277339770582315838538573678354392861194740718717956729354378841068026245648095841942491033090758534510527022512556686897527712213585287738300488182194411401955224944470989086714332859021220580912292551839892434274227087288225003634981407007859550044440148804474049209139892651242439573954703742281635673232891443923702942065618794800774072283268212006220445777951098027295533770410195654121977523722621906541877074625697366939631107061885452565573169139575599038079489798468179246005522714608460319619220895899686768869118702129219987954532540532218378668244693395993287234294121408116623793713977870547190519312109747532661410393493411687876243978607071895752315224556788558118890799023491987580598682216462114261060249234128025624995858831145493566165780211853048428306754796112850971985022630371052537760166138245430770719002611562504397105426634363851324675314865512180805336951292331145958909369167433328970446556361510230582720569083193010968628455423733966764346303541207864681103705177866835046379693146957633000878015627389489708934495081349541313195606863874140056477744998046340353953941617169355283697356675573762033503540715131620876787037268885661334412995849372224371062524042750274367461366969395517003701966784228061853439406609948620438171915106905628854041668942542077930517927661985980007329588976683850643377591489514066221897637188503775955786309602504612228354632453075815413270708093217560094937603002217583990813037949473839418748277753367901957227879909519872017458590265560752036189395099860490166702830907872912189027575943792567428609847836770589968154827658429884347469900500688677214615651757816047682161199576845035985134866789212181513073838584767656559649585697196256997663402311036010099191744334459664761734428754360823653315177071297836326628953204056258335664519345398451573890238148031649038734676875750855238916980973195919083248039421377680756893045429709179512120412529469677693958539999387264636794592361849395867946250832182593623534919200649508177672360035607943291644509306944648594064937757833791077835185692068007573952064602787374759167076245880760009596711823220358722412930515495456868900930450252079667924101281731171103292428636008623447414452396691824677486955010787571825745972277381716416022333900124881362517315766930813043986826251671576500958452649479326119769839898065194053183507173111208053273816355267310127338871702968921760360922184259674148981058953976163467272626216122269013016232431717726589874083879737084303243375390873383977064647763159684582357854435231986642896148125794264260667894220193180219558930499919834876275731238365747739509362856192658912282404251815135559966043767059519918904604499095443401825452446948393943422321380337826135950251972427390624778353920943584049844957132890634002254627046876499682775836164828150214534759040568607962252899564572544214041108690031583745984043467052400514499364431916276836243279408133002862100160550682796688724847853842187892978185501062869867654586003714337437655355845951583375101568054557817255839676463989878505262037036291230518686749770459766640586448039281293665847773981241957298784798525668523294964400489562171416989500761514726836584795770213470975443875557568459323740593892258566579973593683338422061827200574171926083949586160719147298828224049526989032053121060167664817789716420624277835239065950112396028961141326818396860717871909099586789982655868086532594356418845785580332909622193269234574000145937497165328595190160497312984065717666227597101806206154500675083527634604435887729936117753851334474038448951919275926716552579362756524512958139447098053203577592786351788653309520474461860224580618977263564514447639496960189180182734977062907527088200198694856611229544798198539204256073137556396783473602389488408448709773713606930050143369811037747765401315672337261659699672360497098602425539618032844695187989306439228332719540199765099287076860341096771924990384666505451973334497398474901247665770385457098584361054641881137098883118573306745624944181534227821138545454329387961376852988064044279653824865781235720186088890628546584360813732236995713800528873072475527702128193069510339090996365853552492687134079841821022264411747489030710513913851429832907188503420167292048967244097780084432961067754207160738850291577758296556815497753250107934588115468900527733799608528693059636626625142863225628026226891113212440389610556848746810039436985590668692100121893444343065781943942471198020993846110412247452038926319697793889153887046019082705532998530476332323646794171471784051525593947718009327403579912648822878568647118739364986107478035893735797748119272457337038416854003923019959238590346127192427857296225246827355647253922580155895019134767109593970480451429285854783530013813993587956445322939523020491158851893582630142007625590752301260648282143651308974444098712800625159358108779921060600413601055977315148795689381114888989441906026830059734380905066136385996948961265956104672443815518534089646283113297156231245677739021840392147612670697130561255336666438738111983335758142815287104278915848507948173271860813678792755138378363560511650483620097936796494661766271842705889266330266692149097993499284692538587946465681514501213069477613228627741194848439400880553555205229904909557635160712949145358920228999299186729085283499954689552751451077075463757959363140710369550178330631005303101975961788999062347069079488224148447200238861268157952870295357329741870882482755188265548066495556247118245836057631108843321064872522116989581399012501721562730786384138585607849147697581461299946491071114482496341376712153390630514745309202920781467516263737985883597916810872632130731531486487322907382533893958168825237850073287097418222125736339499467230175136077256181860928949387014791098483439123389244805905366500547486897150302472815216206983604694530013845181502973587053442274260025447616166808038141270870497233140667052202770341511037475804295636478056696736687375908715815636090037928517266016668077878256913526357876585555074589104675614402336466517777323780643903910496394897256560504974108227087894693380752916386155520852826291516340050123901712132962312960722794360202750411744459774628978236654295945150925926880002262566673977959360548536749340700860172439557311231606219095515136979797977100860124679244395339274920365634018405652761987419816372376038129847229777782290628865497572809308354430650212596696844215100551664622150023824591938654809713514907402388071252151668235222678579858860982821779032523946844419535234206904280960559982788699072748473417043005702158831096512997345849881433465032123084285883885558461706269073309007223498630563152082433384395794009416498970153480227881066504838770697832430654671885187536823015937459590704921473852531301304653799245098977470638504699093101730463045306332939987829065158944188858977692614271355225997087272835693071630988063931328845669446787910191230389735407480224390288109966920315278842663189137028812459809584957739401204597029236913588475157509578879911410148177752056825409263313307144344537960001761736276127538594454691435991190578001858622502362776732184314226288339139730167563167628790463423808283696196657036059391530629223063284998287235720382882769055304661981728666828627940564098860021326365167360284102301316822253327678256912961570675237299703689167367918442434375264750234602254728409417590447338892700577577303707801735641411563619705564752795798333047295758696609628988124245221048296769735795198144111579206223856139300743419926652806377232108112518015566983376006253490090716125844860069655158172806326291109737544318032699041957400952341045468826605043098088278622487219979761636519256063370937660895424494401096993116398425644868462458988622099260263309329805098741036090474394017551354384039175823007539359904597262065167566084961372276476860577234499460935804726620505458369303859770964271217824228460765033720222353101502764784230775839201167750065544244619416585111417700982245666851049437377047732745940867936933794692076288190998075794076635545923917369115469311079085878162488900388107328961315655992289106533101259526382918604320979803303655520873173970035900895462815490198034396202139916056935141017425173387113378598366799751763971612249469890233769009708694775161241312014775698465467468942763111950206742112547699840889973603278483142451073490884514853363639770158235116455563002995301280761946539777830669433831011977531999897938031457195655562464453361574035887836762694072008319254097746947368994200259571687595324646439115816210603341012963442248808777354616042813088962373345146040606108286351601346106643398364391950795520779230248605094764883519812435891773228498464973297268320052445673167232996176507193551668412503406601317575887098181553016825900492519642601357709631741875866483204169673366181887362341137527698675696262508619753170350517113095852030915205262826085623644152855645051663707627048312487543470710698191463657949496517818460144739866626838403740634567960206748274260930084858839987376349872375476164317352593553550511667755441110321812927406557123130530838584408693976362539358479584507171232529497796772181314043218502818919787690490396727788967720772359588456277683791014198406075672527947835911634031667854933206760236633320113667629849424278833283575828308469864650216044431715381986845085559938490091855802520561023872167374917393100966014916821383881155017539258764988059409647593206265568416193050942651071303371944386498497230387815472447611948822639040906902223877075927116829730716874885427392145151976570788697796770679700221520605144390739500018398473126934620953168841268691741366485119544473623402275181376615359130181761887538395406467686611791382187331822954492885920811694731899003289501631404372227347295200897389493097081774379328836571829894230508911426742130241634988484843137645347958492365911753523991814111788381691823024023610740258674020308848607119953517697198624041760926004184954966852629294064261289675707619920369423336221160596115288186395643071203648702307844216928937844496832739564227330851950923027173210776546585226369313540435270818795984641010108859488358415538642687527749449775505366002962628749777376471790079475407358806766313413626616429454464306091510807724356945025254153155344189565933191527713438030583381097953603642676215092975770375116808345726212863652627857294146011384006705618481328135481275787022972978488889906898436718847363323746288165366472637332374167369739610679228299759856692600470455149587695871949392615680659915527012307483108388792609994902081128546138370094786079546515827491681656976781313311275431670270021370417650794476748906641435694563832835561853283089392737162613034448417486577203945815263415972902510508850758744182642289786681285039270768849244689835895422498534499029547489933707786901950435979192291909413215416817556728282695491821089787621363382595604795489100775118465027685758156530060702812813188948018144537417133494599936587161571073325184873712505283698529098026670724423385856853100389999616638982193919409220756753762737718159947795714446071414441747154440557536210623970850821405968472181931360848962914187986021919826907944615850538261339671520273853933374767095901949072006366765998293139323088538819469965672360882503012493570108162914005047607628985107478481865656239598605133401194826351199919852801360587221196993719280466577385976268849271426763168107574443333889990031538772319677741549605156170433724564086151622724434363839777504515300147318228525006566369766734614921909405848624852428452364911854608183934867783474186179638139846579807990065331783065144406258655427948769016625333762737257934791720536281790367235530441185570338972786380761914209107508013784774141925414426142779607471654043071967177205735292656750618580671157023704209919458188065016031601986287441718025694666073256946460629349231188062325623687861018197411925458344095212951004108038023638676041791829893949343753580079626019852412343863769436233166896699124384324131533200919302006637550792912517327296492156178243581586720852418927193404534410609025708231373961383884186308573048380923644072279789213331255113907429136382405388300888909575569223101270441552880877783338697342347248059926611883395998161277306008542268842811744598083349561100374439021061479395816186013167676693627590417167453954375297199480723337839558359770774452796056732468085370233902169640162892665193906921186483271689543229931333744083987783515712165270206924424522889013780424191529384397233395448851993706354146174834496441959183802730431311626983832112669143100825156262071293555010890127886049631654468270393910500198976666180150433708791678308980777836742548328556688120556409886593309117512073897676748467637073262522581679395023490442325007445026394374206499980952221071748381931963900302183491977538794828544070025351528948431792687058079378008955033271434070787024165960231118425584911843181941767571838342117803945642502339478157109426700928648407200759904650670972274966161499278543641351978947485756629790676213899817158616719325302462430606919280066987128576966121384137351470204140014929677861688531430301838313123618485311883840544551326229308496285159913764445596589062282942378590303501124024754929912033048847177968862956139835725766947874679822430085703667878773494129564661435164453120003410649407981715677456688318617954917076038476917901021658878207181139306661055448408344024552613610872750164253529737918987531301215408617111716834652184953712939021801814669059603227304554548082220795804591773604682038651407817579199371407549226988929585317523601283119430641535786359815080070601367903796296034522493765916544564608853865048718488565181958517353298329640212511702780496108464137744496749993077874705603795834163151335396322636903202039318881269885962048857277178757271188009807155004392923260181863550978351703441804731873589353517093280886883236624697754613390439648206691393323100387231655243053316983462041618533600027912305938994980090306160747022587952552168177786550473559975907056433754687533249993469939507654433872926357125918711243406100906659514233783804197739640641641380693503858794007950593711299416922986834644765512956627840110043598358661220019389377551125863730337324015487934411680231085109301220940753135338860115426072180085966479522955420543186555326490027503086562504251200685596840546009589805923124644541492529260656294938288074716775592507452174570418112722158584396205340151216759901079590907294556049496471295825614117811652189709423945537814067542855214938886411836513298756442623844330774194856992367488306397388328511250368807663586513134685344538509908464312458121125847997218136172604814381677220412509194404584490010479242949709419379404379843951379692420400294095969937446570134498081065370846392268745305964266646436074349320502130414363769752430711449388470079318125603709888823389923238748456586678057608115443810824917927586841212131528676252388453249823148780299794513471435252666833397955303993412812395397770170826824763469994117531303984930378573383919500034674452744716669794308910845532594187370952346196848862398961073769526189719285575788424069264708597076688988554186263965843700437723031500281690462296286723749153751500314619783422230168576465642305478596899512700489156117282241905752649692470755402852677412634346003297594516623025087962771428562177987596365255812262332634647540618021548449637322253606661751402077748518200555965912275769430517144817839603696037612250576488616765270239069841420221646606777039618132068853467204695566590697857896253350196132972515465306085947728335939224269018990768333012104853155671987220714043750670040944260565778747595014365506650336257322281265018337585126843665791488442366666311644315866249834117842849922882073921018954859636132776295354561622322235799381138959374405258103024500756775557086364572059744771549327056719861683383094954292362208002432249352602861281055364383044914744158875051992938682472251989708228418266728609710074333717757409765907418284506519041306664925034746270562706889145031810874679248469221757789596160711417900989452853687537479242714196344682430402128376085218403649683416795899801746651356278314573529831729608884339455495860297102066166877499266861932235696003760949268521322767851606657171153722413771806736437592715561650960151585611827336874590382940902961353904757474583082618210307957260868848274253223069742255538104221832505777993828962301565164339955394164439032057901431955419250871591808175760100118493838506334998489408153898568602171150561956415231631951540216939105296987529761165082446048565546438732441651076138800345238370843189092247217139999266101263606480828155010260491708771289862518399865875764815776981489043679313206162583952612066566023850517284885218062236528958619697523803075649824542151334760578720140393851228619337556530470833865119842904516169084556392430669744376876819781714312290803866748261842735968886658562554363283612528120411508961900005379328933702484500058056555261460674888091171265916675116212685386177960896273226626442774238972082852314985354905721923188882201392735315490731013286723667454960218773567949329766787099430348070557426766035725759691426736594456318237734365116181195477762810585104681726773303570077860335285879529298000478255614395376156752309695813779925160406216667080676715707796624995740297999097959580628423221927483935091599783509140148947282961493573314677440708576363002016160842143398182487236598916873106234101857349218200154248109846328094477427307799326877541948806106288348535965578024104602553535065526670551412498911916555844080308600517778799866525351171938029720550801049335664227818769630474664559958337295491382433425857714078025696714235008573817577752812676093871393766162161807976248634912604204975781270205473840865641886266450766233425094238775540370627428802831627119487607922437635716497648005190741056497561467048953424103691985645678710365956815894560191292870482915087712492713224148343724437272837902209855663642975125242720572059044971207569105170401361902245158499559435134179144201573901804536163242176034635627148459369385907298511783297003614253158893652461475953044802620791833098542389014086647627797781865572175598361145653361760622182989545021193588665892796211019787571652564170642702989601083425666243978559415667825907348004116501340369089581330350752365601543743320565208112485575692388912093972897590901843248461365709478068408411258535896179377519692298164174288879071395607213644608534241482816011606675497761979870777043617012487374806442196525182942466837078105230374112279546148755416007247296891402250097851665005244875584575622385920878493113531950243058621163737503552456524837514379784219691308838104678055343544383372054308474863108061622861098080544670395458811056609538158874925147346322764217903428668472369135480837720949985884058659514965548221702679195049835020603124356428527041689076432300087378265286998134585836067559648658273270482721870098657630974099625795642339468732182864176168973356730732808980162502530022889073584529433868543376686249974850318303181366250759575048176699997950051222929529826530677727785453536984008505148974151193449294949425344248322967085564209010243412354580589389777247239633671743552550975841892456987354144496297094382598815922450833525125693752668067561294284277305526598751271988347392290772519861646402779929970660081936338356490099432271568862517070391551930052302758130420952739985367197148660590530262126638837843488624764331668852230448690173404729440701396653124235222530618086692366351576933922056987922347193939615802746764091207409524839576108006232793871163645658708123117951414837343149773341148667217827436578494356319405741581614194860577217717731475014727101272853257723526296928424482307768516748725621268538086770574814996149471683817279144091900823860574397998247416373618810767409476130607995047224064620008722750586788307314945583014666049246600948719751760994046104151745692151027513043024014464255038837290068921290774699325352698380368336186564384928552680335057177331250338024381384899568796895264188222225102674006348448508131556085104982654226810691485425792177416274364258333305841646493820735922815113677130942671128921284768430751047314100409388896398881075782791243735322193360029519686851569700316399174736079816296250327769583210521431998243192970273723574644106417466915057030902818355057331504052014360551255334450362240828834760855535271506737519582578024823526857778507552886053898272523621114109033473013798039922140604500137383391930041711625107115385734415963282879940115660585678559115346415637009695075787836378041527784081930291476500623858723603846441619182855396752525663555022853204781560361248972152880059610708544820209128887541473381840493847735695313281417584828569089888074501908628373895112572714634228655785551568135546746029152953158994062393462063238286194578120588559463003228383143056349112891073697123263037496127353802226688009836186603809589757332035797792150910818158273429462748200815098906649405167047181194556142354537842121803283919224602143381230782190364435061070468373361678313363477030012123156897945797870787343634496281877633560902020857568985737446660652996674606125010775094991399044007274117706519448305189565111822560862621397114876860307943252123676520862879702480089218066745667131201583409082240031460105370741484177437387051103923548046437368431267587056872631652332250720641428656773307523551494738251055214466966842498164711427215868063752161693783714559607683665741451343405240676530181480017401734003978729623743545665457643365812459253167743584709549541646750658125378272330410281023293697918499015127085870415577754180354154140161526316551313547436941065803354186914610847530163119263053777994650305341871559080495095219890059903914997485894072392880840615541004847160421484583678373535946247728446810536850949151882750337361453540170898387221359705768001632593354709750336836162105472974490368431133355293818003015488835751042616490080423266225425945795796974506801662833839181100678484191822144237597192346631754904275474094707343820335457318539917366735119911822147639044906778857631052431111278975671563181507785367392424181974132555406165172546041395638743282178704537785602815605155788365667013971054744291039153664425305013011952152695551325794722935204821046114343381812291339806761805245855726509329051930316622599587017219755468711150816031579843718657847473318576090786108510983441699330171997860395286823928897067457304071249552882468797256382435539472819750778454206951662397241825883872454315135119326413016712953044665128255752164754388319186901563765023790652768326146769409655657910989528472770112557835306896055717026435782620555548811751468365683916281237244944336841030276578600042495356463240181563908010987338500753845624199573265545086203666209492616278996363510538393348919719863033275846901085929205293062223608581954333695376003184715096921934751935950647125802852945785168447136422959898711215701329935687134060625386539401864123920788382723037200432131313486555829827989051031894467761893533161450303886599889757824802295959231089173928769931335034090899990374067166998013367262502106075618392507455997720704146066537209427296896018351498967328825942567212232352093220204774792994961631305825011141323553017129134504558409323572403740698220711481179444519968867096181273353502079586867050612277481576015824358972774819907490351450048646859109172894733187593826864059852799650154790975110655669306778077900582853695680160279803980012771721066109868597050268526143605006035041005537897348797164645635277944533692026193887917714553603489254378026780791337085759232683424610800423626473482524997957429082214370484508243695471135108265782915344037443646916776764137673958072011967742550773395615356952949049430247391274954129971435204069561333101192046260014006648510927414377185284767897328857241280149843751015047601881724525530315342152310405014775896337985318281754558372270734361493438289873882545164904984794496405721067083289043890010223403424001998659587040989216435565942236090878220091277691733140385489778100969002407584656445853215792038236835520402220120860832482505645316304370895434985521730783130360599415920235882107410208336406305247249938561759679767443693822604482096190938092539140737252569020771082272704178350774590929174846464670065867107131163879219728112627466694467418173647506400611486320510589951958207487017004974267675703856633740297631550848140374809696737596836029789619872174099644101037915262674377013466695611078967571870049153976228401802572157882659186827165861008610413856689226760671441694746379968779997741884105481224179758202901312801134190175136037660403781929247045030371120016424178172362377925394010638673057701427578325989776783874044077542174783570239941186412086842199903527730984574265530972356439271726282757082736305407542361830931599394808178155809135794398258618469836205180795783587478908833409271204543649009217594123488723154149193272269001736778454478678285263834860555823312848952453962095774660389182022160613924299452684556728088339652432610603833912706631228468353936514349052191429748202910561180734181738141472835239039722256371823057746765048774948077362786508543802827870328945350880826753859413258944372304429282782029798421011617620218172005393544489731175163808767771962195879403611245490823432306722839749959754576757422987655424287849346852429542620559776268897223997773038954470466453849815492224407989579870642958847476239296977189341138309681969022892656354209645917866954145556467007891377436389123134952517971175802228055995169905435920902187103725893867868596706000674920809051756993233156274982978264352540988406824372906544297782453259521236579665387738061747988375623041132397090307554677706949555214844497803223280763181749072103870890074229714297846874997044858596745361453501784419983397037036705344223189610615823871087456855611784647310556722824910301346298974748815678622356275629329286749813190830518670997649486658850034758349841810467469053080573630928532775814141623104751540515347804004842378166569550808674677288896668733791866936940574026006418642585164909362577125985381645970478237123787561308022954823611880745506935882633685287928741960658484046743018886486730799954681308444085157766519097843328608358567736821082393026382032820455574968094638548014343238556100711840175646043653900640051157857711675889614512842697150303054768937353480799120903576890158205269010477789320359309789126675933349695775989459226642279469829400771908581606647161651154771119867355641019978919851504720166616037515544067342739080306595048887278364050841070567528183696815029387421855750394943020506514985645013621062193372594205664215671645096481592384717241816630984777443553968156664922859540105760259415633626361572518129112700666063237143846222272800591948983414947520062589763280680101488030345582473244574670167240264298854477830185242984056757408963649310767591805959947968880103964728458733157120267485715295300677263309873834150357886180087626574611352544967165274171346582913574814139533319500731820851303018577870205970726279141760914263716675762982233684253899808649726809215000061516025973480192847844929985260591646160718675861956638631657250321083598239970202048585966205590756042508487648986881308955439238011477310514806575291039126048391562926841727287723323618094402504820957485913488768433016976842888335039112824461949357690675672268297135890218113522057444100648215823875690308635886091362326308627091806478776973033271126144842706930948833612899583826443704332721694794670605205569552988582033341822712002204404765168875939386847150053193028861222572977113246428438630426822160890369208997471663844518510452107517645818177457299376260291474233814056359295535449555327653298365692020056272599894697725572771784065174571013012938799035406787536923408649243864026325653692932824030360055628948233201278359484634815724799283519369319966325838429579453007633964449416490228983568984561217975840815941034071889558600598816396053499755882067348093157747820689516338868745802109826974670888903759135757048804373411087950811845047100754367174970060941187556555176180742912609260256563585472990587695831837047485500498574285439830885367478477756444953740742041660819785595273302365547679086209517869397715906978451935921290280969355579839577525501285881260176299067151734051772040095203232586936040607363843156935176853801399540508535876513576166763576875591767092817203954399131158601895021911527135687219653781268973388229559529856032455285930931819936298443291391086750803880520634422981385271739926396371909205713621581913363889572663695602440710034249884952514499338698772082327146573920622135419393931892391449082035142403954726950664951376924411975285681178974949574651189316815098221799879440234055313439356183884617601714579215843007226785975490841542207186365807380308154184666509539796669098604140643167233478077045321915824292016064609716291247461215687400118270316186431300304604903630283546891692411544228088337925122655020554019143487519962458909726026530269190731363733632705621305445306853612549403620680701196124898537016561522472866999494882859384013645621380053724096166192906931789757248677698829499030607564300685051200845998552597669296591095957953809098743599539778825180515166548907467233513549688340349537832154974202062199086183142283944634848461086968361210408118815104073329858519962453642621935290630331746767139749087494557371771126210634785221621837007681995575482248434451850391751078768311480509550636674205957902751287086689983282861144865372804463910357955298170449256922118235763960414404874353308524050357334139194409409578995512108461913839887636724758606864119177993023253680511304604424401009647980877538173481375310749832209943131339721620654649345104757233777473294961327114874728373752808037855960937384765824143985261485691802148924888040989307510179067417136764257777330109082717222318105883194869037061233164157957944720473725620602657374870852973738128296614102064551330968419124726360615817039993808977918850074446302399540248584953897422869836897110581755742027169361101342961021149494418561519547022617720404501767894677451072102597654384497953411895028964026041183906113747257569359719607565416217835005105925383680257546011019404780938563658662556226743297434069173847849611799600919037308141825029056041191473654821759170469774098868482969463910184103932703061219644312629867844921464265843862586983018464994105013851849462542407765804907510129466266341891723313532354538353328022510445483828087167292635383000549014331715590965445423776270381125586766276809664602171419082228057692775343681897186584496869356131059039957345150626581022589746720988092144582913736398624353817250051019320120594479397578075544655921851724484290192821971656575373786846665768583693461038257072553984181987275860900380271521313480732669945996381217360915170800270605444005631180880018899958710949714383875390604117891874092444009415658778950221817649807829695919985350166767234455407506207765759116968671613049228957651671760557773185035054261291249942586809742252686316605729760246416213844453069701136840587491185136482436183517065132691428593595511384780003169177099054766703311846714886165787497044644873981526124960173498847549620030772535624328206057352185434320913586605415293598363557400949996025409387039492311669189128373717464102156336919889117248037248323669407837267881808098106546579853543928070151900260523278467988205088660897246134211160166764320887068408531766702863291360567540077332079545947728362203853867457238412771774147707310058317684614335828416656162621166972352598733770991576059472276052966807661546335039419999687314177751070026312689271739593147416885553719515764385428920421699542018474973819163785720178699925526523983197522094781162129906957408315423488985802107257757387967940375406844653448339279480776973718651941449595792841052801008345276616331251357881032762078297989960135562660336384440368366819816140035853286644462135285512778826233047675540345460780171351680591536138721964529548097402478961415106264820875341867179815385690591851309968709867293977558624658301946673362495999681409376560145429693844249384513787506216783038221481572816713000871097573609847473289422860532900561326845642806418799668364638694106282095762627491557343750301634733562562587406568420124321686879476129392833653970961341333098797031205080493804115708112268680300315396918361882859905783714660811261289857476293310492371946454440328244344977663155708115862783182899584777019633027263115978405501013856821764188263499214028334361463782327156778090989667293439908173127013430152864202951338793381308435055336147909710589601404434063320404580840539910446151819256041115646708696862788632302666269089856354956760286217450199917994696370914464139446178762573949277121368039172131229111402186111665784515215004836180374752076036485734934921393579369085744853588193160027764513022722128198529985000753221439686966301984924055591704691567966601933463329113865517766585849954810374863127488880575677010797134679517442403924325075470762871246440275258938949228977172613111340325717742245415604829402394631719498629160406050432541094424989194921338398374434514006470239919729094416900951992542842125100316607308816365587358479254849876891957824345241491749228261463245159408830296570498511991747358447150461880441344191800133442219713007979076777251766350157568546373540773012522243501452864281296591360137054229070761072576536370718118116319104481370965019814683672971178574132158051263649135441108380752013913679575399918533682250207610934922233387717955754745215258847735732186000098805474639758745793816824480093494372751397687164278497849566051072090412832194078521126520806776493907549034593570499137623602227927252916224321476366134960781511577979964650032918605981416345497681594986644311224648802141598895022529079919635402484665379634462047041789851489914253119690492889205006702445018589081237358323285531918695072133664967773386189851159810225987752020786171028210218138903611711077519228104848624992123108863456307718183679104175285827037137938473380805921139440703231113774679769713067982642006528266829333754699386802239643529460164952910752101524052656849687456287526447432630922596460735235823173561232455698134873655211358939739378445604353001394169255776142669656657366396518200665862373841029586554746573104114400916047964041015907469375912496859104565654729762957073871300406687937392697805506498385654991844353259679000510460021921865619164883713232755662027469109933199223438230767124338054029655766301695690554779539551165368159131154478952832120309136808348876005281749689710142585978868380472045726355769114994101157578709851812491345848220619983173499035894959336048473757623541015572386544578498363272829395086347823732357455471309964078538098737228871087519410437793468713522255423400867746808229922265601993446686159210045449844243876595602938822231310158933476786868368130140676072834782586312507408155397393955252752213986952696562414359938920030012157359427055385066807396266642311709985165217526791336795731151534893736483193064902000225134937347188544494237093705912691697715342418084998941289149146234104272146721843579819652102042683702060785213422641425139014126242177975442708711879660869925998384241448668479075241961361061029719635624302008080076259828448998369706978808090383632776182126072421199502439797667191085634074016413231193075898392276208376269649167941371639458114369555152410353614325238667258126294884497196215925483027429312223819329607716804691993176249558135596847299263542706288899490288674936848751374011387228953067354043469616530503775299874860126764854347260090884028518488744251989452087400156305227516669959545838770297449677563696812762042176810983482743633304818143135230572279669594122516850252514981534054774835168632436402747814357503154992639830540461448178386485141135126925197455056101676035397917135202973233966579734265740524210745473547221842803126956996517270651996745342471633975673564993437347804265614887397647787836649565977207606486503526445341425308372227149779746291254907720016784547574037666030942954554433593824874075866338014326420311163786105679133695910371936080721847463706278372830249865871598145638364569015833725764922270739352524914456925844507171221777923692266970471486255554190415986327101703660410787924382685473509762854077599264054336838393448462873943131221016223021424344775261808242675005216870771965924005721123751425319142251643583633688933934318070677495294902018817025455674704730392398707061216012228606946589683806381257060319767559069381183963024833830473460348498242790259755562634640229389665789370997401665897602936438519290649986539047728877650150970090953027244421764543815077081920058248155384973402220103972299594585335615908636198247093217863681590615932543481519080848502717903747388250571720269996822588949449494365355548533297815432841210831730994072581804259185422737944166517382396513298521770365321911265228910455878044104599383981860813541394466652376522739256885564292043790984138177316352609020115104722399785645589580806663480500273625604557708643031176101294202537639663011506999723404348672803009699518240106650955512569947802899936387304147097793215536764905504312752095204328957878402484415645121240000715114212726985245722648209908594252120027422581332187832182165592616115858260329963752161392505420349339003466734533439514476658585884634691386574181464851033255028462950448345224033007756298760582992330110060409676831287231566715159488012673535142482253266831616667802038968791278530318874204321366391042857115718764680332293074710316845540447217740766720549446536245338521736423225998209641870221253692912871279123466639312980077181096879941312961852790444196676228728324214509579562197993679523483117127644874884502884547782332867852636956839795900857304047643674522249122100325615284687136849361512042217872112204558406221343996337100780905735148243895013598735052747417228953470633371533293710409315495815996499910568892392267881895748013611355163020270792805974414976743471767172645634649584240183242214020104394662890756792357679889461963694283738322462236423054826903397893862082392401554664597097259420764423852086501908467124592540596018924180447646567637478982823782042129182285843079718477868189643506212470946107375599326314143118378653471718555184343753481560580687893356234920355918773414784368698227639823578667883307763732690712926606041079242696924583009334390102010588669559295665752841720781285233132563759772071763305723668640649308104214708342486203437553306101211005112834514107117132201488861792692835515518088108877042840098910657387286072001121162631504129211700937086515430268044573697695947741735624077967546832526156870391658526498795933180894376593641881506527195433844968870034695861101208775534202397469349155277197374338841380671462104779115087157015202124630777959608201407772128923045131717853255242853768349683951116715039501626606421079110886302215213881370575149510835539612797277112339743648063780676193193413621747945608797296357680898017568124682375899765309261846195922380297770761138730786290175383850640945096259031144947665214540499777345801470766798705600507795169237517639799237991949782534049005121290579686870423174563285777659311272412757721637982359749127771743871252078375689142271922641155818588593068598327764278617345795427315124226181959975628054377187006975708899632095602747920275858261673172854530592164998155718886733441242270623929454094180322441135368037218258644249239043450524605907821654295028872293886353901306915165871959617857059559391414107979160113405904260847651674588718559162467798172656929931399979315276413408324944811479724462119013306510834642749757523123279967123000257153377565148473197633697324788696536524623919741844968889159601180185657674864384188858713656159077642210770056904030217847192350944076765288154121137238303959904717963482998257744886353959808041443894596734275050926698663104093741222682335331447300448291444513272362104927317423627833719259692281788870377821104561002860443716675292575104465109038968435030980788014196267870660594561560902821393196541535824709950566060132103350124602012994627534003637621986366612129131107964930358308170175966807478563139129152632728429199637691975955341938005656094598965071239249055543576419186939803408254915777742960323545628991842664265916003040737158780854193940126905793884378589215857949759323242220807510235229402327780588285120154853195850916736743580448584269160131736028260664211253816670709022437296874569364119708131993656805097831174572459631654807590243253244714335994459086730939770020925472244774934306509914156714481467605550627768055342716207986536484831347981029302436524707365707243125380376934044597686721482534238308466183000318343483353737191379638254846763379169934486611444308909345392737590716653831334562024668651669418093972283509111710639868275160793219876447351598451161760473024103439102656681498032829853717075980610908224875428158222577961326301776769502291362686448980206269206758369566329909132450178755002869298705063941001276415623878758704522989834539729802748094965582009280758962169826176330105846400460477169553623686922481768810818534899590647798061597899966780396978405576669885611296462144308087168432964692543889544673540154113827062782425879640689424990292846623070645494207970851921894249708678462377367276580707031272354809397053400449469481920439847841319063065203700187595285743879409476889904532564492534227622850994427989119399742614037698691507431274790176540865369185454954269446322821968163371034502682607081172123094148749015413805237229824431491615088841256948953121261982889780051552552488350737539564080604299460061860510390065589661492671259444424090575913957939883475695534210718316494115885124390649960637031464653547206443648203471443601590110483684145581379315947774962559985676544388737688636396946054571221863119294942749210993779550696325358220074039514954635786140461211309452011386314847340337624951037601565319097129093580643744116474989036939260350782598250207305886684654239215424044155545760367637719528953915014264605595897789215073349721239697986911974288710284712432779600922861882717314411431539973046175192259546882281377170573576176219340348247486051229074301872306361706983738252509442079079292280156592850508024707139590451272821992350712483137319992663978831405112717279900344539107189272044155329577372361161593805943187628333867326314156885375417834718395114434131849639014672792502685809177617495989642391618596218061320343466841143963915546260202435253995279150534732413761060215192913352030719178592193129208859118795152109729732692885507188584827167470953128140287970798983737342192041870484222976670560740347435748243145365913193481715443347700537950034151921528411992727609601545656620262694346483066448672376632180352019741097265878459963156765677573364761617875134266355872113083781057453538130862288632842610543544724759409480015629558146937730999451585066186932174667375274697575695615317656653652096524150402629381895427605707220621855433556680411857285771305030857270105639739121236520479408543042520789696804510807171920459848174896511466612913524521126967865294995648275860050247040695508586636296654256332215975382994935453287432342551991049238377452151109714188663776868558842084228229779038648135625836040543996258798849920324546965851190246228896479177831158607350720800637670548755970311773520038783445435284569685669599765248293506485010984241100808669187412625479705984649112533645285522256289547244181440783966375054293387129201497309735257067618368069151159628465183046901577170845447605819316776002240143624508914870941400630327864860307276764841132880319539483004151292180065483699712217790623891505123910944063605992379113031804816972421036700348515480600963827584762503985621799447471444921099254097089269946012646973397432685388248413925947355318387489562960189544322493824094265276113244220168422827206846077771571160273148511101742381137054652546936841597271802662708416981865533000132528329773965445347810261593738951470664682296957734339831599051527477872151269602437194505121224660325343156370205642366662171817223253966704200754938737958906268482269332153774012425786870891154420423250373489435792412502960773876505301255567892978718488574293453411540258555495814401569368822555989939413278677402428904058070398665571017072148131844038522341377273368431152816343427619206876652586678676082731939051029309634561127914324248702591982672213277868111497960231891521417571549535877970025003371248077906726206132822250551565152599648620879300539343093475999041584208094206430252217034307873815211807353586648711246496740985718150752527362343891780167065138330327676328227462917743062090839380074782709486947918821234633750967224281596571409914233789601529452978882964130262719123834343874432496402750768125476397921486894271674474467990829134898660055848527315247316668108772231452499735431425185941509606683205419093438186217927597466661670340401848168579968500417226899348153000858984429783026277148749393388618481989778524842735097107862560125070619619652219998401031558783499773489483756040669674957413872171315634974284528786806150044434945318697749754187564210526083954905278559618865990748759586928920173969198416828012906974829385129916109834601371603358287475844504174297500782589563318618375706584418297682184591026952259432576402052477094066803429532972922368177720004952345640299805800260118503807915856542773328368327695737627123711528271344955565402620064363844265552008739357608540980909663275616410333831322117200962394512934562341009023925001104851328736911354847415744208023903536755068666446706222085299808617968804994128775628265233300712841128130162108943824056076635347817522262590228690659708448719323280818026893215116947605557328021348451490909173102794576368925205835819835395749975213729475000871893587796557107647849887050226527268051377273761203458628355921597296801638546368829291801176093313507110504275146998561324582325035434282426637538824135751104167166346863764831900299864018865968302802370081093521076548559550762411705972135504582516958308536064257953825162751222122401360524002636822577922235075977792027018603597439332299535712946009819360566694021118657589441814217004186973213674441140657680906025433169868905552929567493033819725385894531764291068550984455362347759565391747614835529838093312416878679885178290250378673728146964982148069465749872096840573425578056180259685532182746775786376181255625479713833183235231412685118507703774171993498032936773200170067941052343255849749302209879291126006119578653420322430177457636832218836397225012652686844635837095618093160931099646625225053647562420261855005858755593202910737557039640530827459996703129646568321318756213092038830243138155257078168252870431254074736475514690197075066661000115556216689309282363722691581423860084846761327148117176787794797701650448942709329073372567815234995962307676666065314688487083663572215847789254449011923442743920803868224346320476756385564369357432809423770654621483177483804870445885817923860490648609881751891300208106412604592371432633207751126835642630904589177931617721028586627744025672840125205063147898314456919646792441980736942090102572821567856795016194995976533226346769977962669480726971170997975548068749613820889310830747388443089911301924239621270100247574906232482493397155925244792770965827400825410315477017730785373571672641527895486350432577513246043877019644192054109780903571089991530802951743567009122226363840834960665661917308775105611553681802982404739298463762548871826355600657123470042339596074455503219334869018493680976537003444611014682359326027278264576323159924909000175883218752116599904501630239394851594751682370970158984522330957328153478584053658814377860525053218614365376416227509907259463500386004377974013484997148708559068080443161209938839530508880949536048163114448879497259763298321556647901851885573815977937425987149835451328618435154825133048826992589175419079467516295542604074764251554191696316381106111802101062736219828047497627621834574188816646853889817436478246806438220900283845436346276845285007854285388828663217184324012925956202254958175159343992860217867390321087427347049337417065767861810706526809142826866095460281340716225490191121645272533541812806314106696148764758204453291166561056515061496083731246516029041568706136806067635071344047107220907856945535582675654831131721619468507748248351320127480735805823357232721825846551455565876693780982142980876666908041985534885607053357343912506807037701520748410873353639362153557899013070563800985467098022247636683197759784226423306263149483504986098277008073416951062072371685521971945064984839355066250433398795933166446497935384999917156830501690697884716585248038274793465530654667790702722693569272806931654486863525703480270054620427314777863320683599463553720336900808574335870420813042148114931510592505852215951802280084282434769234886029310686691863173543653444965613688009282414618242853745584110491935737566451960375990540287140097868756246828197583780535034872287683404343623218418155321306068130879690549801165931832251956000749439856652891935660195566207404530017029875270712810684527555114343299511408403570860898784051189836670054001608108473492255421892213754524210126292694129213024140495576444916340184415536880166918154151471010017318167853519687450087823240694974862095617351710270709456226792945498732504640938673600403406396063406906139789626513199835985209773749634851569073209683626810393045872544864015771565734545324646919140929446695469769516870550371290428420377797263972557206298020106420377816935032209455251692140356141016353850669057018636034233877429029907742365102296801043172157963145751210704375429982886416889009442280022806998761812161040099983869109574272832420795903705349783290078601594829227135922464433412883908143434931658324679308725179001349318734559490991226161421441295436360439222455376854522752941962488365900447277518839394800964232618923689910089012205230032919191298765910851634926989892215592887669813701728329997114057920548143008237777619106833967708928274811091109205404798040405850601210677898741640638861001085797667172290356266386558121588190321708808678626505309158127496923363251373124297342737462403104074381086026467175370659651242463101345456453751778917212966580530577752746697052175807784465814550750480576828285226425107022016627727595658510754346295500423700380497564656906685754332826823869864144958613987052866770643623267755813524600790504526596535995848180436716710860741937371262922555764419194680143774847754884841527928417271372295819282099777733882727813270833201696206861083467627006166948587590758145759328791138503236636605984347853885811726016899849764922552771735725107155485749856319209356494433373261005172418206904331830405575684991180937679628452061471530270476368786836260077357763131582131295670739355865300756332379312409057848143481410852722469777404099711744920409320515952998071878702896792820994491795421856440102816183262055229985267273904478035572846637974138661117723141575361562614474498770524835242967538109674273246942490577801945169372413664332112324805291526087728533025036356235293490434918587045232983201512134713428947612556608814708082620969702201368976812813080210613381458339378129908110565870078242805748388881521382822518667786682052380190526115092720733632813395808017464105119502110695204030678593596164063504747150634651123282135385909314549979116323584976909984842075008431454776530211074130947948964243945506923799553818815239343759946184223352076784316475500947411395337805227876674751486717504318416001296700510296205026344588760324630671558877748266296252566002690890250600270821405800379930910569257676543987338964898912127249463695334522395824208566776190437232884083923368201868493962655629826167206328745002576562053779728690783088304042549234308674847823165230586174453036367127854751956006000378512205347896340106287648854136841528339078414925804260063640736839728011537894339654612615393440689953376043653402892220297813622527224740036261434902782401944917448003840891695748080890688067808617048107056053634318754600334510870224427754921126136573922539776562200378978309077435124113186480344010025342751773636822375078448800422165986590756494519409578501484034955446240897616092610705726894271411540265679055054675391452543278219272402259689342659159489498849640993040369942148280908506709792161466952406365170908118259380243418281619334094474744565370907105818881164840354548386390507446442219536470973770106737899047530219800140918730738645035011625782429126789043104868445963341699399987349759569491142589608799543620696216865433303122121658290646047990175531441189676697568856918608193575336371401812639235147112892815769440930465140765101200636259276808564917273916126936868530084326337869905118524152232396466599663354135599650145184116265988212115928994401338663946116436426524875002705515024720090067393723632593927270528116532235049023940993062400125605383060879213335382281847744460034979287401440126994910369917331735264672684606985324930373889456351463388904063875996609427323192365181256941023473487486855964254387703851412523539069475306994918117934687178390159102660384758462575094729026120979167343979315583126293823863348121933353083377219556642611597151403748234187794116483572933334797255721418154961737718716245365964445049652494447532146460412016593508823627116451592201362359848664457615959621128079290355646957609100630011340196404050010777170097357553255540357276957257453888704166334108598597021389672293672279565660710244745033636613603216989208860206811017580959952580834860186795317644745242596539898865799108130912968701709989145357984728181286572057630270049707603727128185535491225411933724515450573871250445107045929622170523021940007801882304917262092301109947315163624278536534892332170983668290274800837765807294942970174907112641398555756823173899879928472098011595256464685988345267486271977525629790577654915412721775784916990919487748471248240097657567232797402657453227123110556961595599173568844843293081020076431646993048073246555426301307287782839106965359627881146117062892560979414062541211064265110174187708404492340955822656680261939222116387315090436144596214195370314948581709227627934979960444870265024635914929975792754642204785597908856690643724918665075960258799232626545675114516881519361836399925804944971217708568847155095422371870548491373929671816512665669891640915392263546087935441017030663794942136378058073812327885361793707550706956949578668352039066078364462799413495117037143741636002690058042973250464980762317585311232808163226579546006037346993971436212799605382738066739417943601092060976871608200680748043332866585774815381658632268739639238227883235834820027587443718024306994493356502329271465758047468791059623628231874142003689242565762344146919121461482687981506461185675537546449413552629304177657680674722271213108913742211074505910480699881028810992871732884780577839597039808405633070566386146116795488926958075314592146567502454180770007707797635014258009527684399647683027174286747031039259783682210942129388144407522507027203620501833605815910612412763036205707338397005145137419561412400429489042891696132754367739307304849898530919018736392976554057039961364941394057057635984354769360832729195427746689341865294920068649967099543152852198378114976462071267135320881758715266390499087099743673840834240040914011593216205922246022495569012261993197920808808085734105897706447799779409713913089291624098806950191595074640685602818390980842571898982238366721976942882773696201857479310137499251438457177164462909802514961941642963325754210874656444389280219679034929751254293855968986558499994404776583866691558762226119212512140459391201050192473664232299710301861991725656516109423858154710822992101161388513487471021733233092984882159810701894202397588431146693289374020025413900523415686753719948590776367406588319287275555455321628534448229471757782696454437116125895047185798970400027696548358324963923378534070015340602878025909163972568868038054533610033294141858412788506869767461950242351947163198591768040319435407356499208911353302925867140586616035153995738079861867597019711981483921700681961307856490076693240435278858538280758908129346646144436656236468732659169852127499464299464544027925344893531854423674198964791760244386155110946719603658510551137411073855762523729215790425067598084026349123682983481177867077168085864426729562513873708196863310192271320464988907383660630283070266674451570394414656821174877569242174694282595951948826782093041061256664200187819913749790306977157067907867122933586184211379618240413318016881888779631620901825112484278972762887687681634804612087679844637691614725741544003638417414727829643934371641414365047901696980380963370891319519157351219750250504436810207399952382834603175109248161527260037305331952023859586084105491569473507549427021899702740994014447246494115043989988102000298605796876341705738748342073995155695702220120396846461746529663368601013867023796610572044284174928216718994925653905415440727353324112568091324441774734975925373323088526508874258511593745137779000662325438158770762356102033610615588240252422615763935057834111150392822476370772409189461993631472737656776330654377779956508674440517260837213202377947723818553632174377531984854028826887783684047861335209718196502035418022196274167113786502580753988730263225182313417784382074478848097045763791452506787928228524347009286956505562028852372416422611922802761264313840844151951665832124310471965779115295162325036948137448878843772061171125241799767914466834353413404931276713408353422390564242929302426711459730669892063079796277911076866312841815663310895252716136626536529877058673529356798747613486754268290771516577139644111301537229914819121293621350278949099447009210974324212344895493879529187018164199661835560067227171963911811635507538875587505587176143613824329439837318375214351422273946114795706431881322448494237771802681930834002344981560865704194185614586587387843579962406702996836767110316818869077278245610654278095972059053184780462796579844333916668045415001572424523984080556931918022742696080942772931550902844103326867493088451306950232352089602141950676041804171478339499759409131771735416392841724339368550321034687222950803764368772599893407157404988398723699397283049880368951216600169605612031033404371162216668030609749937226162219815191362562104195174198064342326294242977532998968338523625954373986051058061361950589009333922305502717263258801394931951300548601757426924400629299088479786189385186310531856917467173734557620533844906171933025247353123482090000193431576482310049311755829659317234610973538780064944350020115071724565426477201431160929809258192304854247810082760162172217606256367483753483724194289302331999082409924781807165072136347845456522863356480052051355575948248159830338155892719328416196928246622208262627317419511351616373045885767432947204578637087424641458307088176990649946214933728267063867809363714117661758867903378315623350933098847974491773433173973416853191452704075809287010150493589635541083589037158503359607951407373913862326425292398214659692641245920780982223100841882840502608943027706719720119020653942091219645818774110936400996529168024271654868254333971541040390618889698175828849888000713299951107717594613204799459020631515684764592929155235264995929951487840205164852118039561689257429014843635913986585864615022022334794474380464206975757311077921043266116567953520301571018984716084122335787758477661779116265388712220658534677195664854375266457887939867860714760885015140445415400607041576882623853654711217167079393357362154743440330035017616815545441126824519536607608434130703491862603000303045069620039163742763986923541207824785617388048754626890961743380748987852178829741065792374270750217578736856953899691085508881694592255258677084334584952201478847450637703330018692379029332637867561443418482701604378586683972369911899841344291949595740095130130451623434334492083587640419485273537557692680194366616951665564424300871025553692452093681321306963196043274028466676502938333594200874189861497167316556839767267964393501493362299695065992170822182709493544689726102156419641076114658134957873429739641811791211089948513634093417872698128520150092172710726932247549611935436456143268071440415223534565226482278833332447598462122549093733135492701763119732039974317112656047779527241196437940023646424960716685071811895644866113172384281858373900633449248865868846843249479157693080108836525323240099148714569428624875532404109963329904450517678690880606887763847489808947422008754603200873755172606194210783980648258490748519282071294906292815400656608472572947514555487545399160644393224700524178092028210701436486024871034585441084010557018082927420527487309137557473500878500380654866919703643494689812630477942922344450955135956221284632836443176841258725006766041210646242870020483211719576951510106169116071775284794220562146844185979211428945355775121735879545322155746570588570910081538895964598006782032257417185407259577211348447455795160536365500625627819226936506327391480753848247512678876580727391296196621964898489548655017373434054491557490026770494941635881175637580825398669317984574486022113875170379262763069092111954286786068541694427136070560523400400131376729431201848068086258940057483641852161846873295789260895895463324449038395079932850477563419370604333658589105073587317819348777871780826006250981400249653272604012722151511735217332632599731897290547611736442656416811308755320676956950189369297535757160630720373619029348611851847989646249617272914453815520535747961578380074626157531762721525396305523964552913078032011458791365895102190312674371328386511707614948615860240825073525601275075378329066559018704947002712255083222362988142935873751510720659570346508580822637647391534471819638763159653053474175660960184232604690962682174644848939697127982661038602025496283056391297506624816356466872868793109850046047693273384862406996338139883205126034668382417664174279535623067572382903565690825436892371084042176511355452388917021738927283961214419851549233953595525190015263697811061738419352148755367810286354043200820807918465109151508198284797337701070628985977300310540993704984163972970446621569893241742323183016227110026027729699108764689614359745345130055513140275538131361378250054561687906077171740506475354716957878717541670281060123207677709710065478992527284845731759129919246964087077494718030657550068362002046938658281436475315488294464630786459949985861632923090999276889296665358054748068366771339623134902931588077152933881627790953517061872738561806949654177308995991357319646562678990662917314927591421083654215532694533682762777785518599224754347570542345662213684180142921827971850099862084343362908728350252665103284323252766912482863255297395938753138394279124561631370331690884911880429794808539592947442251444529753929289832131100948949896355733530843526914703082188481710192587156012191355112274806109823778318828621240736298195374384097238411635009519746716105840587411255537369651448682724930399820936064825820705407397417994066413644376884170496357546628203935004706976993972971992590348739096072698830481583335481827162839738702495311123165246182187442951708715811644197471455222199238577642775563734641665187467112325526968559121449072055937222275922454259581908930234579342100463232816082415306548355710761896309723180706581126585145126680121652842635874277531847200827101229304481005504911302494190803092228052719705663322737555825982911695954065593606333562859368431194825357319280625661512556672825211685428800626714784401381049763727768236304757058105740151997532767195010257942523551733043847707310462245246934991654067084460871565331391489856641604369032373114242494354644353967322693835627562137127340728681064880741590523467504671933751696480810190766754785059778690236348956114577167433062497021065522745642463962767926850884671322485442326794923874116036904662353363758913475973143397858442539332208854657455880775864629425040710472843714560521574318494268992082239453633618401052500942284318754622290341906232038776682545255315211267915299675515811045588056553645617978300784840191860861474326077630565895703019042296138462177823297541183005358544823703169164067117935892921459763303322471175544541511769503340990051320277961815366764235167382859732599139086469538214598078901816700681840700914044439563650745277009033589816315958727253596612377375993853071003594444121445386218967356971907043630095204708621504179879321926004826790115792725703801428505252482778460081921395999258994489838568768686887876252785711276247501705976390460428119987517755906729396573737850700529208245256482971546141570233865548695080477907156264326106521205023583427896486698964690394260835135116150872151355334006722115335975315460058149155836319491028313542507829810536684931021656123417259869949862938003916778338090260113362487398074744459292966983619463001760824373803108223859734184957569303394671779803782752877974207419121480413599324708042424045579472575067942545001132551982017173856161775959884804657056553096799634750969718172181870805880750402155274242400331608309329586160490373676030645116331817260994199096265573147965587861842789096278680269743610253765614413966397728723583927149950859993169642094646360072019496264887131545949949914195216653849608244657633970415450571161447313268772952245058788686362305714852582597693203534922411217479839801287743741675316585470462237144614478932588351750704697192500991724485947573456838847353007734132182105765390131713925177456619870177241739517397437789605808575563221248801768355087338000367060608537254731095470242862829528817746791389618275060032991832614253107939467073228560852706850145731778915686883455166395808811005363015986621110054852608277819904007836305423125811698032380763412500912233071330203232212467269866081597389399367465747336090718171318396561913482054012138786692633807868664741151639632626077597249720321494529196326786285185858136210386065520386050463393720379177300845385613324640739282727364368590572372726336667336406486320909617545797408082050370243963017494849355375321326054989710856933203615626857754869190138676721657836602518438815587734394756291976147208679899465479329232732598967195925649110217743688932594391416561291313479692499490990069492795732495072928113197016284859215159013794561412862450162371575629331925786991246717499928890772145053632431831673226937051203358966916756453393605296413136256066373102268706902587701250146988454601196787308933664734834293591840661120091387528960007938290078360958936413776038446050608513209738326646562097870226940899756044675251744185309759844892886011023650312798504929604129314426796528100759613106267211418373016343031132627667749097828684540201331908497928574135590963728012414609618457441647326899701831497591940375100682838762796745705933353293519306185143505632961284393048197202587182664506540934317998500827447760933068217264124164087445187451306012569663768059435593659267310848616877549696070334714962488863119569413834312862123654879896328817318875048890530510861583831963807427855881631198849097052477978485748787690536135994972560357615588092392091136804376078057064564287774480705951032424785309136288523799998029746491330515842966000039132579331546436959649921745938244346613421362010243620361325529147384355308554711217941544725468050960316236145458597245166159718780558684714159723437559998049998804425538313994786337638357831152510012985369042892412819909285501587692184711266356605645109069946735841909314993700611176847577219094700857138294688025574566701129285525694791264959346755377404930771577421710994954095226633974490737029977702159179058512375701928523253491171419548262261596370255496894396480411850498837080830682913672929204144437397379403188441453516151073409302735301636860540754106952018728126412640415736243308223222755114689089830830199568147166046577613342626971351098292490281392971552912189384561401178379708745046551896494715835561394562657294444724317810315465239168751597153135217952090643696082539196771913157629937253041809248517935613498284372999514312859136916411998241764609215866759197854350417794658230047147800148343583910307421978264043590938248099612238583030067008145228511150541456194450111960477444350539038678663203479610729331001488678596040554002326250211076286625096148974944642286880420796530716320742263559932630310887124415909313337368947089153248936406316953319631330967261315057032945647503097956317264746352179967287134328034831368882940852946061063555987978406233455489565612121870120694514128916677290615003188819234168808936117071242029758981755161501269359288481831413328482827819823755315607447680524703955270179192590650029994067017664944758393738121292675990744131621093561159123570075218174069943635017676754811421555801232553119963403093456149931041663052658789942825766969422516612748333990692666554840316763850361140640347003077582455391906126284567091134335597115968827042338804518525075381341250541348960442997723746451847967627611292754320665309677214307423903668622891125883558012368816313127435865745068892335751519457009838614411052296423278624525558655546033191215328748222616667999904570975345651294232377616428654807793188015880416307149180635274300873786212006214201143516912809509661170476744296771730820009142224870417869383898734133693311592781682991177925420682411469874325484667654822018907665703190243603164834616044822849537046486708113222419717908609121160437205465771120104087338268317256801094574740584091546284651515988584707911768869166437321350409547606526220884087930503353336225831570085171296566108507992443140889797107605860904024099435375833027581461732231078050581933883335827158283636272365703566773884184306255999269427159555460766938198176653586899503146623314205671754989692430236622066444685775589210746706965725269921047256873579015512840448342262790259513067087232754996420030562671844889643283344150703213923726154439990892519170225846322770592151840527639948576360981761592517513026329406940752831809070581070280759380244381442390805605097220822301119806418652621196581983528913156054201558540476884957948286714388566907418360371159856286963154204447608355971444532593072069725257532700500058410363504398127084771659429653611947321501864644441717761677177100009746881019887084351143786821533831006239740550296765496366147423540482002612893153968865935520231969049234065925625782342102525239862347254562744538066947588967205042374754396283122397488108601188206079447910996277918201873725235268500847350429714251415443431542149661072829320782364714720146967325492874917161982489656243173848210719566616627329411753138932368557715171189250243266417010927569940103849046879210015966332617013139377625438950695404181927772351597979149627210468052118497247183011316949911390566762762370872132806899607501464343876862750291248787292678320839795359578661342735356259038814648962601156945589611267107340690579590209968820938653962913200043375600591514858809360993437634562660971053118609298584969066879207270154582632322526620089151684715765187674136340383798152785349892651400059051223497183049866627473333186814654445030813356825450084794149819294037497339346636224939876628911740334546523049351126621468993874408879276892617057849025865003570009690839298760515069784239307369351696151241780544515193022274301188978747252530561734884668962906598226925471448348412191500997669701080679825018365896974873362191406722137884770231099325988036354534909362948125829681917063489860100862326472250757504173824627744662659758833231688480219539772170634810623807230827815901323085146207545914077950612438715297083910621179450723351690842708464217006101610555610388264031695242784108297612988097636500247716895166757754471806643450429656017081955385735074822980155671915584524216311187477449429646490548371225053050452053762688929071344426478331865580884283575220258689526649949261092608287990198134971486267541418002570165952063269508806318614822482250774824446469644236553963168604612940050343809417316661411166809046353133535581531663591222785520652383338860230673702936254279627816381278038782919006922942935693522715038623712163211475794125407305781293898439647421973164120579302234092269805937312024068659501878282220346003436202770794098136186105738797685785134533669811170372512505935520001280996626426105018175238508627935346354761365226298084910566085117729807083304519103847523841618237622401360970958350516175679380069631686564880673833222650198616821339497381539400885060317713069910579091789187827130768427733610461327602857402737259910660192238396352519466412689853071722831170420845283952180132537931063149458153791806287198519880838195927459331961505127796602412322706628307163569771443274032834298883158920415047142603432425804022654908195797653188758351993217124127178034013369109199339441447677536335286500945928151412385163559884135769958408882555727094079565295843489540509311259450368568515426403221609235527431998741919725300023758864026876996310582700990259445432909465246006604291517947161628740837697088910804785309911519344298306062208956171161825154526717418134091136316911029932218221823853158572463974110192418428691776033237317221186526543072672880941699570790189945111713009742386660696913091999309459803317070688163593458995699798148600318443441182046242208080967208504377695377434110080785986904492898712191559201518663874563259884815738166171299703882040586383201705574428898207187460108005014114051355491253336324009591640026896291644077416899856375745256066413944027662191796435395727409578312819796230700886282631803565056829118100954110718718863075729281896996939202588658749947733532438417552508410663895105744314740110056653716710560411798366455636207833449499698514892699024568860031106310953665041816091851280499175693994322278901668629823136401369472716359106793622663302723495005268109049619017037288169337615742945420330330405302291576619102721564033114886674073288059473746092410518198841208052834215150974285492395668428309175649156414249460152597529279494637356087859598434627449500921422383776578963318042698385447563031046279506176686212479762630083576278586043134150378112876865174023842307696043499578884307916536049507836435982156993618657223418038083906947667193818199540076056159620907089937654461221412452621725798685212911404037678918498974056484612483563239897294089100308133996033856456339951363028424441109746267161532842484219662033079450297368681734699826036233624057641008813754609766801058157156746086752785493048062507568611405657624279488724407152167715657997066109657539551402178733168592677002265982810936506951746006270085154691660118831892055437163450095013081602219677379911139223638777043269077078076304413945543067779933018300062204204129503296422654003320432688588881720517682693015326691984496286402458934412393118655281154555510268097895461924871882735019366868688829956364194080920523370245818510861549403464345103063189064704633052481925698255845421873953689235967132724133245055615554141941551400053158033574992112818148757716025614548085676079505767026790769815547495344341751187613708844942261817449600585731403449829511616716964923026907153587031453362317277391039753889176157257591836712349518306989059653790703856028908304211006620348013647584502131144863503862306999729481351588021627888347088854531784660347019906644753530203596291262296636856883586336393053667402947884111213916314426467447123381976658466372906258333833871425003237636123890296791182824918306474683441081399711064142709892180664822144452562131850610753339575848057582514471080777551579619584818895429403549862360421514897951720803725112693847122799674339168040818163121700909558988348713479252958649202285915754488645266488718278554942009677853042248782626728400567257180699838161817284179967047173128649161268068633951831818000682253138114998222494658975372155844313842952871294057080838854446287941691666859324371876055606061534735656923851799804589074777164392203423471710811829438045110358831171635549563070308476267357573060484031263193533487452235979555758096268839608174788977715145976378173072866853983908124218802877533256080313201133008717596881610196409778493614680003443242269690704859078790090771649155713999244671446067237724520177244322472128836652865416203730046439110606140088041005833689387360157040270975238611681349026606032863684613137618326278534749601974384787965273606629742145742017005630710300006033869794309806940869930961940549642288375155936321936390341579651773551493184412067336729161551669231052429071964528716594860767710409257902431669219108071402737362271076026115666479366603210145285692425372112487571986519788985762360670035561400515539800390817351538169847757727200267097809575261425222559853028410600732666322251392258195934442076361909461162691680897664901844697401878125451395239503573505834610855205508655221406815913795455301952628425416144471710752852666586714655259959931589799658827956608105463936467712489054047831872075411726314451269303407051716241104582687714351293578105598644215232996990331284944330622957386199189005707139391250168598246268010979159620857953426417422590724289840192767400898989024857684836709375665784771812072086974255376176684655053694816817813614424760199294726597898736614072322935632174373515284930213590578810217595123738560726814310660911873015205737311381408720412827438709101439840709641798111496194278028873501802089073694542408945523318748360233160009136778899364326948757627332834959055461440513281731979755218039132142269907968295732368956966495820477833814310219442590301129501248357936474508320091311274339716955178209179339067994318813330926738201138268563248594603558235509761862485940082388427710168222253146963063826626998659193660901167478641425417905689149549050004747319020097590919443111919133217822456254105694175786343615032080679178515573249196842354235678673006297931378459268695636524457124147604344714093548534656490024978103986919072737171948954191930571863654296751549170318151167766713025305856445686581908021467689481013827187395606058956611586952060590024335306277595031859572911084638685926777912329323784117611085932099311972591211535811774363290007085526908984904262123077773201414759166380290818367669631074635282348365441133225113772267037781797478499903412768998088013965958429640371931977243649655156875748128747360142528369522765844668088794675855419454530394212985604302548539433961167311887891084961798247508147906667209950183397164987488699818264579793282678191399004729668139250599004101251983815070423660814145549539745209694828477195547908004851908418547297356730119863567252230600394973625790930752034577640882598769564826145537244911565176716374354480213343433976006688130517020040597730224038306593672586767699895352956212029634360846971893999592209778930461637193443595898189708157496604666827958696211151920328376918050611411949201296550147274175997489568245648587488724956082187870754400934646603587117678266438161604777744601243866922727372612997967366396162818111133352098397322410949542012781529586668230905803840511645987359658431966154701093515838220673455489686920603231623437851193880147910838586216043942094893682025008334420576652702650897525986357021735538563086397765311439141500917948663295109582908388808843821097335012072372534193650884388410713949387155371062000072654431636180552996528936248244822135997722167554795567419862839217890905683106027139100835745820186012985456895862000116353486967723783569906433691964995088540306668643465353971138736603641126091610991067948758475268554922369701631454934918817174293353556481619707701154272380388231037680042717193177145254414859659823744420467751889232327023314689440339233042736315790051308396400698131753710007465345334189439695885282511601790576086354470180150131858600595772928091343987296710142659794257037284506487326567041202558688899728191999382039119951891272951245553593866737731095821538642240097996291298543426898123606223065065201044047070080793052046069952109861032400199947806567992022337876667254351882295850706808288195945565555070022671180555210921778911579287186919189720790656551947141598731443889521985951063435625194361981639119475384100673870375815600056646709164196062055491193992106722212306712745827651402320379619039272175585160672657877371688363230507048263618288363177147839955742242636697744198675822243676236701929100024192840000522488111852564528245062435644845886964599818231669995600445572206589050721876157027594314984378413936073115098357907446405972131610925072000571101501992792974427013001930697213102680502168665648091640233494762604223116306255366997557854058420524636039956096897388528970489566671386219018181315510502143544413788307825125067032160762672686527793828617230194904989172840617924326359159143764338721377753421332171154124957886431483070130290933618428247069730868180508292964763502111509180269335322426791881219165463512499307644612641136115035311519741921382205376722945907891879038607560026426037096872325556793132999275743843834353527145061336286931525085203839937144473007910274122148574513416512934956977044681925455030852413657246714479429254867407284997415146770638720981506683350184374003017657349994583591680184390465772497294609051203070868131765685024830257946334050623975413880916203633594570899937240718963552885463340833827878053879096952945077413283785555239134030480713645445403619464336984364305290008752035008214224231518964031361188712138533454010553130644537989769228070874160433909876477529698565490112757801064332555236168424303393955457131955723852600342983088993707659412880828943712526144427426108645693398584100764111508493097091893777791521140228600448967136475217885356709687566622237107333436007433192052611372352128365372032811838511581626048740096861824052714569388075907205655714757399234431996184294987069616898335324837952596226304257307738689602412137798109420112567911931169609832449386653474019299719705486840693227172805080079608680887492861943025870427995991392262758371984525173814043092088127958532130562140537276678581225754612984925659431215296230518346757972460259819497768261353642296345578989907148876707117870690913664236616567937698381812468474577766504458071197064131193805812399000916383092940979267324500728728818564982132889627561573195117384035223680080540217680306539397237859967694226401238987868205903255576169905282703248516097387611870769631987043536406298975140873920690079915623955386883058021892028619517401046179780495580731880181518978588271987888695061313538582987143125990316700352082399039763572721254839034462643991775830375012185356897002868756730549348548483461945099356827584627524078117320719944332588294129042533592857223204735543276500529650183490328056012141285450401687524472199442985675426467308462352910172964034964778086930614288094310030257044827187080085850259412807946025982425706693938992183859784410001025560079848580456555855809746542540329941185625210024578523879900172825960371407273820275878614448152235275210641192114265282132400517065137137751462475307199398094082983507439470140287631679237093521829889116267982128530293901513809589856078809418242910400436589924312050521516177035607111967176191034701527696988133652298078595468826166529257268199340583866281655453014209524225369571684376748034764216903646573719133513140965532505529048478955908929343190417989791862479540227895529144438938886694303431009094301087379682296925136291507250970604899624887388301823169234431052585456034301780878758604125943003693872774992605381119656625392850073319267543325737234327650575376821308388403582138017197027663389547908641320506198882618220555329375469071573692804815254946150665784222614554179309833954052491129711484955826925683200719219644158283450737422457222836194509605566142667946470669247989480701447993426295766194099428938918809795115519005064081399043417693257891109778058839344470787343071693576443690569469201741073698397273691619769707160598651002724691318578519271268216148147720080651621749662620740247736663202998953571996243231615856317443551914938203848143935031429683538724221889234417942571236939368552349270057330003459161460712941034851278936118849228286341330030123587895582589084266295685799177467412006959401042339261125828926683820348571228321064015585993858986645781369160449170427109876516165917415537056688066008836776070866731438184499644371635214924305169139709722494250379345387790161663056077524187976068974953917723347465986620883275743503168649426541005752888700676033692141773685645626145793751749827692128664833461465217879076589002887460180037858973076250545671732899349064199364008121842793781579866694458274891412719428371273024182185369712761408941750263507465883575632554888927376623703856633973091353552456065813846555165779817573346050498538880232245480965185848780277057802579436641820721439805708686478596294860036203636215045106472354953414371383339451730784389194650941153487657764076032463301092575585553138084133941868847784964288703624508570522567275265746209294018163331508116300087987745499213906623818960376813597466807458643635990973698276583937773242356726583720548718222240083763236072470461045468321289928528920740822768136263980882777331720192032131563379499258659517074923227742186961689322483510955958181666609006777738000351216566912588837687964875857011816743145729378608368677615273101268370798873727373456067627760498228563828314107503572916798462420517368787596144527944421217787872603510693793327811001211215881367227481383151215431240247340212040101621323101839769496415585928477280659034973199990202335907876100670458945054940702430056540781302952044973928684412731392177549650818568201512302703210309711818323760834542924089156609834297493420030292771218198425392840128629865095122543273532141954980068267546006126658801259565019103167693320491462605662232235836640244654489171535145073478307569423672897750920631527045957581825794439220664098233477788399732998882465260624818621729531322635439352131825147959214094833466805057986893144819398111279693012256623793465067538964493273505870174935177719021800892221327331405597282169940845414554975501467451549199348261786459764017201105341764634416409562698058712608190819338000352289255583513727489952786734436057472079578241328846633359190587525487792111244812649748341945533507058736626911312516685767079418691274629046749100221924349222108380458905729623109168592478302240675736255729414471423212452966633706796952173590634554008441247307061417785948234103987249640682130002078902456329384856287730250944305868555134179066562923630443962105073235142976143538104766044696857504708288194416109028602723889507496479322019421923794942513405037962700240697527996435368480573884858901145232252589724808132193034352208998910995611631560315387916159153565813006284320312893101529067333965710701996404392131306096289986572210475197588940784040475694486180309964029659268231845702154939578764017006284814152784022369362231642032073455265350106813513585847266076203337218643599794962091754283611677921174387448343895894414811079268695327109389540793473393985128072709691157583205996297944919676785822365215974122082165545836537452999589559032122976230221175883345370164347683715190485384663488429073706895589160640701992096835120909453079284974196727468423936563098656688087256504593552103501224656936689820190185887658872046743405474427334542137302301709023331047352573746899115610509750261487635182946163861862363797694926239601515429255229778943918291289036431165724191328483008778143279457217705055697266183790049765156378582039754139670100651597700318118413555950680898006669526374906923221071047615382658850416070555774674412769574123349776436147819086643619185753676470829803296303260844798514718955517764765911896007906644869555343200365598665499344569774691018925703799807789255601313185425164153496635318536415896906942084929099716480943525066511033985003091874353210758988518984342730753029496391160839436482220224251375658592339123033712210298441733690172918411194578617101667702641894397128983742348823430246088224205584890866501147756012305142202004752584501185019592636303853142292503886902018646266689903555802777393837867705388834111371929411511460106241723927398847165408541073489082024424481578719276516861120384254996087967506096852165992835908343268510801525270950469672917151166890702750393882415704029063324475875321911576963082655114004867517015112242125692379877333857547511509668787577126899566971015446417606560297349478577631413686430733676634034906143399832620098075860579640465644964024110786230184806643201785141265021702764482684140474586879114519606923737555911885942320252316019613155304421373492082825094043920862791984811991155333179195655137725288346791447396537463598185885850019568263241716305727208303928685190506754352670201288504595314704699965936486008913670542061453390272160196105127559480144445710476517267647935300574514979241166488991882011438270071255356083119564509349868956484794723188080431977199911974592774756803823433815669265094509431837344080123495110716018927434154306632003044003506202293781150301169524714584026759045747988806217551725823949506411798780597537841376954769684511031815792992636797925699997039492267978630499859745606845349913992193153939149953626594376018844451453179924128817676485710625828405868921369882062190018053682098385196120537670007304689931104272879417299099661749597568872250204884649556115659292918243701420433923972141849897296406570762253755957551768923720320497205687456700482320931448442303066109336958947220605115569153912139650374603143632771711762544010615141298977416767482464738816049082087914556128117455128399495062985176328782972031971033408539840561062936135972842739239778085311925954351582495469462975010451091722271337947203344164610460296270943170757445950255943924313299435168932978515183226073500919533081332850037074526382556532562325644668047904068978829426757030842068777884841752112439660184644607686910712134252260715341685199240510857310200101364495459373626477247839040992484288350502584113422760244682797944685880123736528739439785913525174792804944316403255678210143183179418472089494794224196515050882636775174676160198922139318848573152398173924592418681473402240436868735791806966522303922623700586059544070830278254503515703697409111354264717913302362369000790160144801046252342117483524662598124339688112569837764788701801595455118784255079483595024165462280938834427261763585998058679419688833510052284214303689243943602846944929404053834048700950612442415663440767396258221311044528265244582782363266230186575487793704722249191704430607154469715505163165076334832292696860753009614627009504968638874389377818988205133972829205204874844533055693699753421084975347058529879534887447194416097215772048942361230451098566606249951675864884476552135823588229154361237895169702947616976037391807929512249385950658731401620332102198571393502239809118354393728622429108965992563640426823008491457819535793862220511017646478159219980653023604648072797932467262785774912948668174814066242377904808966436221144041703360049959959757174719615099951633193953995621994318016947457070792191307026440160716363522953064216287623764221745755615235751233072340789448536689501785622656259444311620735118010294345936744612314873631165310265947133099147416990517289951245615408541882790474541874521409303575464674886399856788071297991402873094937522484268572212240382430971557302359849809368767314527966259854326493047700411672124629977589758021535480344904468568225573270592397379475503442103301651398714391796955894969145182679855883597067427443124566316551110743941336708107898280247581270910601489681506951879895617526796455665575480121995632393350921748779832645025492095494079986224740456633023965797088478609902748681995624886180371013682655748410104206604106489379944865136577433713784686967204017258576328437948137227241661342905242387200587937520561714941013209217842876943173234557328570008767310548460030899707464846635964185554225489256271125513005698468698720589669883364338114750098037151537071643437847391000620202767022583345209015792796258965329590923542126687532981639478080596254538465191567783197712742340915804497514877437802202571502843169240115769273332324832101053633180762438368234722044170368884901664885946538719951463391599024237385401882467013652149774931379977338739792786596384237512973124553071790273995940200315884367688561403583903893310663231059648812484025755984388199533788953207615460803279826898068211015525098642928590392176132775621244008012601300599942329546179375777011157868879789226026756462570513036341439763235784737470717410940130893803602342273929535543587211547314012746882883089929478478747772741263358600659847277063363650465136497851267522673122152956718378262633383780375512419834940766469782234928069087570036047706929936091235731500464916417496537526663466169720270631244452698862136998159726295311837221842215959638049537843123303474566859429047588416735368747983363899258793706537553164555276539987896961349429696373428102540429441460679412248998046407150021794314261247817716587615788747563575822111875726527096217504514241548058603263896711606215307502069485554095223680311837721008462862088723227645001624806000703867322627668801514705884737613665412211535856152648278856958407322365579174097679767733640930250378954490700953442582498643652968580093512621920786467541585363696267367501039029040632212513161203450171938697420577045472153754268953638900803535931118281739319486843847281601970225447951759795295173492774674545031716398583812566762383964911294407192657167117690817271535311330935437398972987545974586871120532603444089738339521827573358818410127770951135705105581313053908463860335140745659570289539280134585423824784945727895556133323541756133455127903525469562795646646313111511527981021192621892698865672167524302860584578002007151414806302978656296241385543050180956681914507628244462805078348341412590961984512087569414218215216133226240619263918793062126010956822357144095141931849547503443991913629007387423244243880400785417500762451556597852278568379418885295527800624366665632457975525640417880110766845675526209019150894899164415623940778016765029863474559815490078960222851046061282519219977275103546391499676097192294126421983060672628901063074165315975085243211128039001901272255676812877584247209144466522005877861374556891854137238627464317578756184497129825672855030295995566462458250381131653176252196470526503814920057850406028532380525221660782385654759855179458278676474526858639468896249801456312510431014656980714577842331100019335435153295341022721981792397897315872689917477270047522244088624400411258847758689392073808816128121922476653181011789536833338366838919012667995770785154504150158070388423515160137943912053169686920174216981049396547387386510135980682307181318640106632919867981223359209632661675397424875419070427996546307358655990857501058249498688914214168479742736200967560306661313820286755643555476102491530609411639052981892269146643562283906928389040033434240355143569524717832922295915472734840651962086892341310643350288499889954444403264289700812481403482561608437624646747512390614576881116745316322314680175491309167227641317847635362822173063931555987455609059208590884692503047121519597604663644588850763783680848118512477905731505452935926094743094236257942999615048789946410182569894097356884391658469865718925954858558098616778793600126253654929378706315331226059760976452974577743499849722735387335832832475611983109428312185655682508318456912306555112134825847797676797180785380279002643559750096963760802635180766902557998381143873426937035260406874127061110211346413624831802151009178401201921037110658885597546872737695206211127888779100578782960407357120131586073498418684397351745748370630317237607196120064290360267119810296511457973865295090743201681625512284409364293374264694669336734640954859051738044900094362331095388808145748575570853022706932206551148882497606286066331499079655393905866897243080653518508343264096353711430178131078563643970526442140931060437656767653189550295554127261136414657440090359965515372680301088267202788089161557217497856559357766170864115101834657274532742545285729570570194592961895311009339832523671486611266310421941719697539043196561232380583027148801063186982912431324895738956447214207704614277035096086273670556006326676483273887386773899659567231986159595105613912823749714474313792686831522632737202649041093418165246935838884426198714477957138591874005233605838781300620378816970875453374648444697010930357118504239656695962354372566973938998984494639983235452518971634344150144560143344873650002140174166877394484158935094952056985239121020329539310029255976293193772087332847047412589820096769020361081436989176549402175702251287046751444048541047622569465804291361683163437650690801012174401049954551583889554853234489791958740439380315722882419121427688976693239140482507577928335268537615842899846345190600167533229049119452956329302848178721874198145044798598654591785814562177785206404653197612254208828896181455786013124402099636064861646648536836244807952659992558929581707904290117999407493071349970361956423867606992935762003434266655058257423812244305151911165685349596727122863318021985827761194003861364181556837393294290475106162781798252531229341857376370274134471343095419297175340166860775253301299255355246114441254305265823933149984082856545772550775530935616681861420623117672722095729992485625945841875296138147072161891583368507902075063601032243235456025550362350262601844092412878361643953784158718161806548654769250781210531003543169554605480261541945204638626051364489486819317844306183908595257875235857813495894174744180236760404688777605442394098471511919911375451956887339628187851891650970847642128223250477454944945857343900347782637873508871632159291772467196791913003147797718790542272694829891922515149408794623959187629144150123077319528956479361038878680906407117873761286063522453433603447392681190327973887133918030831880433691098038575743846182753070688841971161911571300033045910578596450567294837370188287573073982807106672581396990279114608764151256646525117928155201195996701428311474813314612534662523755835577002960752951429296172365882083397535586602589958421747939060841616874759675054071362602290300091606974863600067348806730830908156475711144239009814489300571073131791235484022167816741424928732654812131730777434436340890906081337462813331457764661615414219756933591315448036231978663140717044751877048295636768005776804637685477073927086937793286726283896043921445321747618912900410587010850715882189062087909074486580397988750547085156546691744502827807142402695879783201964692347476349993772486827518052944462990781921539067404553781305494630077589095015354297449774376023684738820947677179449843367111879237852922188552135819986726031394773295832057934253941904801846330418465065368808040264534587107397564706802971780985730535517839105611628300153548870896264644059625092386693348845016157580533731970558914422145674712256951678431941618854394896068792850238559332449862904746519372498213709541762876039168483611545056224215549342247607037089198563803830934717652394318041574940753335138345005768097244950654976667685718477370180785134493528304696902007187137979994762672544207668645406424336424283475820988888964950741943134116476183880348148589842854696997589185225434548167832443346677551975061575975194697625073132506762848939040610425392475448955458504502145108752598266029295687460917776628588293232629145255713856393429885115980438263455359687646218499938982952953242735364546121873335041562164081032911218595191281730194201327594229549093562603275893386437056495502920774539799898149933434638758166328025701207866382243775314855892889429704307014119246286615130030219126950573058795806872143139640155668396848610441773683784720761436791155687305458721469456892986029803485876648949172211795873198133523515954646037199137824537467012018982412699501596546962967322839707712115051599045016248285235235766837953571623765236855263369988118391366297302077540339519083603526779187809184681773764228474453795027653471542832285413351337705664475913946559566943263198038804286301678711636028215021309061021783221255689594037117000382362534255409066321233486711543319305579607378301068971731996866157552367270238230290657297357524372063495351143430931275059520607392792376519599293907773697716822023971624188846301098109863448175668685792364792771799051584616531548069623031302587636655649649111897831914341376490352631301772795342567135227795916918444575538247149311623834317646671676810917558501225238286315499575855100674839263565569244841929378014504626664912688079739295109891608337199609821540501009283334882527290294133544890753987175837478620197541534286463517595820351501455434571668685731238272584642598751201804045551156979274111231053586464784666914391291927666526095518724650451976042240084320206467360660955653732951054953823544599945206197324031664854304729551678543512506223622749897160520909035298694465752888779056828632233383597550989397722849834816303492501419540874345987641592077984786553698797106008330580363969185903583974327011862394025105594622570804387939611689501520741852815808690465527927080296317740434320245639211511246765869967132301411994143402608515246668033910489866663023991153977871973420947124351432795970369078945241903864548737707167336243361819135084118395799974314908568239025112919267178584307217000002496548730780337241191004118357767299100503903164505184487122690518603781440623109515925492130031319055753273507269169986090921030842217618929364888779697137525664519612718379732331351470564669235701615353529209621764643820474427622593765129685138248016645733526835928373596163391567259567677073782190299823995182669580925172156475581082464901688103759993693515120069433858115469706981886456214110139872024635999494113314659951129904028034858764337824742366644201428266673227446739962865395570233670364954272313705436678412180728325808697618244457661571943393700580087119382440459222756309485230593508324247071353698736352099580196093875809247086503157975852393830564876069947261081439709485188808273140040130384824606808058722833835668104936347639129710871389207103197493695747169868651067301105679208829459665139102504266019903255924572762099826363606926637295975350754970958393534834268938283604198758174318342893126794637576029316529620830580279699062767581218084235228530814804072874570980807508731158594483332193619976136480774485553614007837462214839326741775029459184620696736579700518564751881036082746986971510896769062796688778884295589848755916096924873503120853590329714168616484784536514284489543035440904190022107985317087238998606897007939308197698890165476655507245533449760029810683524724799007178631860086890274536419341196395487400175303435210175173427475089441864888280199435707125678486558457799782093320514738601730291076657426102052800927711720455733393014604249014404443646814020934947183464628065049943682887953768860508403729811815380174022539688971724198290656000228854355400827351591172032141852042474773165472245138987680784578372384709906450249431297302797374983684602117436959169843176551693173796827130121046604697147450509719647230169311791739473066805677049691340212115625128646303420479617212354214611069655029754335014491842756613464559617880601548104328198151641010244976876096252733841577454349952737370236020643150092673726544959385316235346342008577004507306634800983993298340852198752988093189011838564399361640211386625972181715765077682138213761746848626654446156051417670255084849437663581562615915304813734981945724459037126142319990498070278530219858351460728631400614104912362615810741892189386625198321148866556702212927566065241759527819473427481683532028980929352420765983584589486700843014144454299358987249796097657961891303901372572864379433421590407810352325507089273402698613901281955741848434795897035015817202328612651906877857703933365216391863734334933768698091424320865207259308178222503150144918660910100749424982034847980865843487520256012074858270919823149392098681640118710302610415350494640926308534194186742699663851242609924520786994020302540240755577240816990174985955113253578579544267363043973955891569114841660942050358565683418429085456650243365184583926475117814276160608147373238730612058937250933883630338014732572272384987471119510428723930308604085140885385599237263754070134328187816266210650750769663514106458543453071229156357481473753659325763561362395958640942206134429151085151221883148813128387730282026795501775863021383008723418470949413672152775631407360024963543706001683584186397245176234763162754662832383996116371187274645442943715191716558516856815408565767580559092255598905602672049142578275493330296561225998189128019537715724590433355208819938081457227917046924603689471342786098535047168413236301368386136100001228175347715502905082699112192550504401453393608099865101032932532339999626323927377604054358562356490458318151086697710935558366064169208432357284517404995079469309245917297934321098295054671333561728451737682629304453893679944310898188468420416372696134281835481284998935141947381436212769172878307103378662083267291451904409933897695258310121190621817559078223684260448118410752710049370433101555080055778119925148024861166709004630641781025201565217603066488687950787962075042201435555770062325074618154077125383933035375474683986836037884259215082557675009813697290006893757478109807438113647882909530495026241086970395771931177250487891946932577379577283871255329812150226973175424213134706354900630825652345759138565734319649415057585996375120592068070547665574310038737041942036606261072545805042715490072244625197384150388890066275170353475643784882299162857363074840738967873404407892830655069065958726142055580928367288149390062205973148783998648001691411207785087402727990039777697946308645103018338633740650118907069018448286637457841351414799182126761132877901431907991923600545403801802596090755368363925625425115642751164962701943453487940040105158908076974100654056812600582482103433701035661399554207630057142001064855986588772206831075063476150392451525519443509282334593761321769847979185792024524750594473016966601469644974401187360724761865517243126211834729789268335522989689603156983223922795509660445091076854571742735100835063913078019551371500183431831851572786635135086160010903731126987991268772303137067157239241342371074744586369046886448363552130619549207440544493350943325854846561600246991876930675946872314067434144304954407688827000039823201820041136138033922045607711086978381530460240941438228075564028817457755006218868538755874024533362365503302978857992744375848610037891151436394657819357656552250612164031263535241772578601134100753006497348382872439795670152469489968606610711363168510914905410689470948250335102995123006348400237825943640101469732968667858770933404050610149149206722450125171836259401450363974203133466708841700729628081515735189004695524520051740762370340269562800798687074376929718018051794045286966765768997655665311318038590800254312325600025873611664974341229812137462124760445386855184345313624344200938810554760691768221017123768495402285558875643548680560464578227158314465497124951444637320255850648593628159898612873745284946123228851850712648750309248619107976296776346192345432302604982796338414099380203890224899608146975103968417280383978855386103029280392629916397334974844686150864374635152783962124717721302550644096320186493803991501536807871622003135721161526219814681037163748416665540508272606944271199454689938476818095123775029183344553374604586074553250343015166165647803766593192479457206542124596302468428778485309418957161039711461212495883442471761190644151670854802237224059506131721422253395997265541186842656274035148815833563040386454123987509555570624764583963106928464280585787297661926020795564524104225233054854944313328801614372148230748830115341069031173258303371340496706600589410591314348943970707699006769036922258369880088156978194328194079638222300453494456347105628547853153549244463661662418557962438205054477462752768294248576798193913108423533229014327884973672593507467958050252047481198997725615869316622433718293869903338787499625154935411273000031164348764122966635320519111448270642122415561626334986959107599380572097874062205656885265356948295447893031393216408624229314255405591720824369364395798118700786077614800887025254306693780529386467937808977090710071363724214478685096840495648731404995114170234953653845056245302548757943812454300196901881048422720638972976460847620244487646720116331123632233944742849282636179899020204432835192478164092581967158830117776263547812283412347731424857998677459536190660334570545159896213683885055667599581287859674252377273360715099292587729526963479193111201411859307135229595801479631307767866272803409988540243064987704845625298873784487530292527020498469921863169302842953065358719179692103922012716477568800227079395529161518752365594205211326139075964300238339484799640925818962462737538329168365984665151120368313205495842194786493975848785037127090071819493279253623835020940897572537608536591393490905358323917128521806942956967727810135120253059678163424958354563691720435790017000075376919089304302253395093419885019454149797948222859364281688687124923506005208884202360281254611382945811576995049451345559356059568749146600271231402980478929558203831048439581770016209774950951880698510846423279973401101789867963720668229637457325473799943175745456853651972965554223501244735876077207311170885383190206093948242466986525203794739531641084730360303513227859674000446791994943352704449690710245448679589979866867890730423187144753366745828565124625068923092158524682646456726795748458666457517615669289194303130943879445804808176283909056271058918319956808897879455204834101834728265209543278305603592607820789502647822320592108854920884498640208566679395672164642838429696050920931879499095905634565352662290833868135345582062268769952503477920818615671780401281723718558999426864263221947677631656139999344960122282751084718129249440280078731610425018408244776729006514188623156570621060566964905812186098410733791513517749703633881234920499740783056184746652774166341960834994456334647682466303134785285679658921094424762216589695029826099983177479379896912650723207525389271772325250181818838007594114157059722315608429676157488134837608317298133918178536619527933250223443818581852567798752997387812801698024936975777909609977978868903968232506859156761699669861600636629676241777471133725454368722621415610942133376375203855944053214399828564454742749188391691742688794732542875446001121328005480889122106361703860658060032668697884258245436018290506678403253439638019266932355083935698994422803231371925150237344745210212534309680229362439894977816151039787269668460198203974053069817076186738462940698125885317195944556262251806490111272432649390199434676837522843429705389427407790936625185290497998376142645682102313937332992678241421105408632336099345116594446624940205743814604719464431587069797304568387165571943982718327535311593137517503545555872285419842840556045856435615348129718120340443684911367280683422667113364420033774097191262139840156632157444070271807400276359406155716524907665553007300870464913273644845681796311632563343179795173572115615940249774266095567172917073719470518315922520214466297377418433361929913634473208315270258622771470900392112181420188981924883670272635461118041236542199150346245804853015182198992928124306980058733694266085787156539134453499707700648945008677587487777561755590652451669705879417061081706984599523836633747108699343729444085001798470502267794122824446421556104072097588059420405461120308313120849181308931747095073103134032840336415085488317473717697950573454873548247321356558044258761867079118166985318941063789457588267976570709224209311317390447311737697357548017893825186096726107426018963040474559762286283418498007104665621081771423294174270006773572104542752133152548358699475173101949595070215026378992150712966670964608030252887030803644655386605664151927248207536458513105963830830409199817306625533289393446799112986594401821680644313466378831965586919326171547409729324541831402535202095685478614952907655426934342148141958689931618464845169177528120247162950191851929841348900257300155080405458241416429774193857569845255363627463442501356030150439242872889932249937575451884733139891124935409714107895345334862673309496362018837137265620016805573085048983267920455419082256275165110063061637550476941091551086017300505667397265817059187745537933374851024222368259619786776958923001951072191083232238868891109032139560582859969375274191379650313703627937897872252024480870311401634662346065689276564997081076079535527903160511416501372068261238339775858173540186041096371927498314162121077784245862413444280482698860033273642745165955301452560356466305606554814970704730870467330441090478355256861049378216338539904746342139995270755711966924208417526794326643256079575286539596232702672262711332719128632232740368399775298428639940685742746056802113181738948946042766830024342678351212813598766887532305578337625913044684528420532000178056005585936191649371621993511716067727726063706007931176299197282901144802033624991379115231551318094927119457341377648182547739495109110939460686927666798612676635610852017689610954473545788372624956895687952669473139997865028765135393629567380975569532111581081380564546774473188255797176657585025863892638731694068769291233377060448391894754111882270199266811180089317726724025192260449213086115122737484613802357395695750320917005616767685829938293191932721158099428848040420431944386668630820304935163986077773776652437204849481340610198792466108585801723447970271461548044674847937477785320927415185450955710389258877019078609385680147742993525075469507303129801178362369969792048088522179412435499315865058794797938178634306086693543686763958793866009907833735496398045434652270654738838476525831152418563962036127040306669799495856733692129609939373043792807669668747917897349380930666286161262801611118896567798569004531062818604984205759214495416432013093486746520178142566591504308999046918711376288250337432785766727044488271687754602297389970136188609811032688383846493527717426463851043758031667188787138537068046763585175027368050467271385207561224064071248652293757454677790781127728439027986983837098276974161532828795508928568864957594638106403605096424712837422210508696332752001871276195608875838105507907641815597637148185993495217227350091218281441463478090492177507638975096733049691626527529736697043705532829280553525378762457842155136554136541988824560301168949364652965023283555252603222672614146397139127412128569695559795391272053098589116523021927411639093994035503580367835637422253856075961106629844368976944578801357360323854958116072197077665321188109521055595114297634946915805486375178369968983757194045587375420602994583180087416995697217121197429700142475518028577206706498617173745085441991783616869506450544927611795848265093498455182322095467014393483132852043628019645970933513015005276765181746863783609065640285870685829740429229798758435942716679432125384958822516859540031018957893296585431157691168393235385078979241142241883629943933120960450626367394625454525367154450764455172499934419591895627439633265101543034835879138607809098559537650291536410569454076100975134463391772929772865263490303260210582162556752132049281447878726132438489597052597131228076391459946641687144749187766518692187353675257807775282859805239832359448173370731492867458832446867142351938794310652147543418071772217565698583835181373196050189009326321158911493485665053382164511735025965696152162258576621648758295286359723551992619515557312690203026934156090338887183990905151060933036834184794573409875474850582441368898945272418038813788944949258758358205405869697329215920697505508228217289916385338612071007273342657875664804604589789730896622642933145457473407303782433830329268793153676421939821841793149967688491313993280878051203595842345304560727854579077907218828424299430726573688851852861441267360846041396694235116049545829166034908707378553788281653602941458009575418409187712400895281155202059004788613342985493556947542237687603287626778594850621023777399221734170456195304556807007513053439588925684436079112492130265967588503317462536247721902253448425303982992476694525833203062050180737681805138055533013271318160969133653730023534520995709389544306920153274963517000891238926395297882077537556318950891765075498026134336565737223259807051454217106589506935057554015473429449141647600056548145985861031258379289979286700166873903132431622527638711595865396678023537644605221618222640322979107287523764675396892844291617596752765309861382340831668981966670371585587015246766195026290956524288912345870798116960196707346825767686855426417215180892404254407476417200026364966774659555811075037503574221393997667889344547922154528799156469055118164113668419326699904362445245307353097341670052613712121931962611828780621826764810998342300683628625425322372760722322512744377478023776101298143825801596056551223839100530667074648378048305862305597324178425709193396439998343046882199234670826137580515448830695882670177566858167466572375903722724236495563229634905102622774254767185206405582840926835674398935999476371076213687108635996944357733366769328776268016084432188343126480007534845949546698958462973892751665810818006441856572508955254390451361775150536460503011123635467914616227916038692828429371288435058204949177078593190296008861808605717234393364606767207420302439639124016229398249533486652219240587368744115201599127257886382334206571508507132164990546067263223906948441004312123464063901927963045611238058450773162358118408741280509891332398000153395903433709434671923626030466597476095676045882019807620578940703085718230688389008979885629010584994354192595835519475345660926899204778339423468684622571753134165038104179970376595275840471243386352325842871157902214713828575774715336363351266063592295040928038702028776915591372971756087770809714157278376811874391504466317608947825435186080225047386328712696913616939060280207662127864479328272241925255480486157957637952588336813744178823645902467017472269143698880691071198419445513115025213590580828983768763566993270552633522009550651396973047444292162826187709645114136226082204116708091253692751002557725242157350933688451520272862580886635521385778385858663662436262728185890909021265124602818322599194589397186380932045051194763803632710266452729132545840209343841945887452517824568095530696570362236313610906872393244197346607375822178857762701502317502733523994549302845247622341423083495208717060362552073853389681160690702320996771415863247525179605908870737636129486666690714258048186084250163437884483781078393082655130140923438872856817685958598033579550303744541436725362955840088324548232065589859672404184016750919668148965655259610651488157498809260974422219570131751215507784842755968464895916539577945550427611643532594144269016474972244788462327474536398576256515781807664970809193416705381682610055746931325106254478492969988855924965500792862520548743889529045430546910136916428578206162564879108715770135288396335394976289807922161963373647419041800755636594177957020113683988278603844771525103803839702390555709523210917679414784803852478704071529451909709558416529580807038040405558847006969304449588336064335510692400623842241189641213509283960878671274418847932003814449998391745232662198837054491174318643707199576324163854441236043010178699367340576595408167523532236840761654175014159268350854129948808713191509742303152451710295468175935535974462997231667784660418556175939525426400158127258847549673677086037546485778063200766587477520325572102396815775341136852572515082637490978213260376252831928716409480276702416533694751962097998722243344570300346903544363679655865669107665290825625632059130731501686276741728904226848707376277191774698317743918761407721731019573670415239833881186788873655865105076530657917473235195525697662080118419983455313628453349100297906951610605534730795335425646198118951580864907709303315094999224880952047149018870860532660727767408390297817675929893404040903506403380106550219625872355674095116930684705316751094505123664272807458168592073617967653327062760154253711615001638664998436907230818948372408054367146409984819366709321137426136612981782028145929825645222178925232803939671790484641248590235588888191841272230345884894423316494363980851961562413626673457517737836808991272941608040882568850930676445849449177388604430095329438497481187126924918241889021127892948905275377407598995016000691037088638854914414721998819359403406942419603536487810085773457440898523875852995504148921601392434400174872300040909748984850354548693977846648233746008430556696201960283735471610233107071788466719156217640791914217459063106501609584610106361988244203079114191849609452194561366189973655337681108394624421076742344176434809650292690099307511365098860937892599270818780767764379721349388840137518818615947018824774998352174079131395639232880111461151013732871838439485774911509845690219877537720532376351922214704583871592125908734785843683157340067735459486429966606485710317161631182537973648411092949291989788884778140483954208453022179402631889407278057873077126043911622994412612877736553308151242964637294886267924931023133328378856165667361415270189032941991415695513372005795577008517725572031730412326892562222990351929396068491783306879712627620469830373003287293816261036844194995304230838587758127867055051335381702462499919270238679093995474156001865776926632403355608286095862031713714264481604766317619765272040636221993005162690961304031808316295392266452799722903358794341107393980095191982601890999223769787552449825386099164676008669244058352577337228418771893684004172977166167647578261057648700699904639018130048258758992887249398950101549478584578761878292169365939489841388397717133718705146667171890546196804748695967833199653636364407268745499359823724313568566263345022965288727803774550308771838941031571901187363689227908590299268421614697772223151600004898400364434349970893952886078733718726988016376435760483342553568293759491778574112221233566782131733743749558192749235060756907301755160327535748908662939816946879507933279243815605827202595595179576454751669142846723164090746246734713414975337569189073850473934571092180516128473857734213672920676682877130521577721414879278926129963913749647784947006961539621853865846327517010828627075290893564339983881189926293467495911475710814434017058888708918229051691252833528894934836471247923489511298426856717833345241293118450419583077950386871482521257431229301727468520441198335055755177861700381484255827284672483846597810366127103652670940393984864276595396326631308968884155852141541599660886864526288533206129342891720741353319227366223571864599328734381545670339212202627802850209600775729102400930656792566535629989092788337393260737108678310256655990194415304078833939130487216753525290358357418774924814085309352194156886099664466878588331235672041252998852866986564082305691477282872087448896713061527067297827976622053714261223869691985201317201724571587717330746593890449578711380559364336258399753513265892802861856449749934753158567336859972534929813739689641627079092704629622355451166141897102432301938174527970373930572667521626767507195512533655745117176349482364034876239223094778032581416185769939444787080601498607391441598668476577779799634971460805841663326025332460051830993192365960024031690200247167495922698867175003851303590382485562784965842335761695708026190001633162744702054074766720297487476729501078193438527227864399958531584414645803907393054685234621051080937139012584499818545895269870883174142623717195804102587038808719633663907976598438795286465157170352960962986635286869620391465990334738813955992893741293400280425240231760023243628599151415752065713532951053777869796507243882520427943575576656238849637083784333419968388604684557938885155548077984629520406532659681983812203905655071783048485447680329703431413762014272311557692183873839933602047112531585136226320462600671661009851971661983690102454184599766228898964689264838889271193649873874706782083104241492207512697640072208871510050816508121088841649247090840159737177713921795621804374604062900689681419297320885461347137207314284255734456003975876035056069978139690111018009550475315689959863240791918250943940047838733416439793591128550463263199302752871552755077310916858504051066044067391223640729293309119572376261116020994199496246451614019713309003769091693813406859105285316522462509470428511516179686812340863603601419704034674546628195363132344386841457407746180102175303751481069136228284537018412083313273217019113141551769670228016185389808435442658373267107673383923343637636064309537712852467063387677880404801527144162681284390543089276856890408849374393718850902216023438655357726368063361385395500588581212209520209425991098533710730890517503215237799602385512654908010468541196660961066400940851096606917599931478882525688308337657745897305761892852956413876876685123560239924426551407850427616267177799301184054029299699980065083559343629478447759813508635483671258743049993834259367393470581677621378159132281760537662218895080454311831112749844798769707389900694700685871657707877265098729444605121743060913193844092746981604034823560572072327877300300704474623773571167193191748563608528646337116511719285299271948383586205860584646506901908760739662981126812405028426969699609761596930419787903555108434936183634458344406370940651440015533465697858884643126278376371603827138087459690508546513399938069277533545637695159636938697854383239377039145022423336316627379241428878815089346945196740080636094100857547026308083696532352560160180036860251222679314638499741757475227285855457143759046887169578095155177820136567193848521546217870189379860623999568415667511172211310277002824939943984198392862995846293205743482776186927437741262411893101834611220608058179557201449065030257017709188233799835089616273992848156812791233348424512111435992472258332249409449478739458633325647269821688375316956012842487467210461993212839025191332743089262738381660951914826284786490625398289500683390337656026575675235308988933792142315106122307180768095797532386915058240668456519944862683881926930154639636224849725292685145580642044740382235047770737388791032339692492192808112901657908364115048645114219736373071727844727266577854000402883878570156454582262191944959591927190382177130794346374458918358366691620368641694981631198387191903051548900102598453907691586814658750287922059397833987275106721629976890980870305561090132768411216039260686208552315454535613611305831369490825798127082418159233439022248635984254083571952424419919065193658754818892259450951167893951859383906981014581410872171828685141898817291865478613711940864775109328483293711401101586718367480293817946231005103363808602142936068830471371240584452617751389072810590528978463250082879943532915604736616726049788784526898414439120584049870372508354523125429822390246837326504110423004574119751331480043472054135656389383260166746422931951502826549379280087819106236430884278798902220047369582296840945302958520126246705862717853242065045980412404752939204591684352802281638081122294570820449253394006595598593273650768827096282006404926712729780942667843814595571541760023856230486431593313709473345714800844350823754545580884117393838653781586811528244572393888098696978052312974600427729807905279574312753325554742775587656815592013564103982307146112452253931819388229460568860269383554240668003956531769280404094886708419527755719796343979454032592108398213957846156485807110942786242158020548739446763497527510306107019545474012862941583154084803789900661724314128156690206430068815963417232598945327445492169256877777537605198392724837139093333722458432967539833743560389604759991042520651726451681679102567957889960327300777258559322301656736089946065070144805804758037228641286016238477905977902100992981787308580475020222439972582440453266306284620579427922287941434115799069513065008848537443181570333295522976709975637673712265022404593940665481865197329014537412896975249991608210076827745725455373200925030879364386355774317633425514862349398330343816502817494403849687065678005069513344272142068221635632907842243519539564749436254414662308109992733050713997853323523240282725488794839756317832258787957182508082878532480478560160255104584158471110069158357341005274906613330620302677267896553538033799425318227510149095278534551400044216206666539497604019821790342093577869588401012806842190692913937261611984256011889692888102631510350159978716548395098642031146404036628254356714681254486296534286717854513172295839626685753329801556463969672782142459393956725756570787598833542961587443268700668625573669620478509871887694531598466486892220787498320468021796670366727281203829880028054066741798832001609920644493958600819947826296692599465449435425499031746989093462761327753674003272958064490426613621887727272932297790056915200310024860437602006301878998709111071456744870827776173344698348531779723499161622580342854343254310321631299263432414163353432076495442877858586276363593455345824631079895073840257671397019301921767766408799539564667545282913739608626114564837438724191105099608477634467644155817923881483072849234104499368805075361922119171667775490433068508205348600370405952017366183193579040953404191575766032319942737490429760518781313273717730075049761130508763662286003174428602699464676414201170693285305441602934588990168151941915144871655759290553927532275247624145302242562148708440772471230679268557526183385050312532021546346409131168698708351248127389343093442611052308609574831824400272153835895407575076229447374989084972246897578235618917806313408945692501646053167969057036213539079952229596277701549773241722491092454908883320756154670720296251491980149953939749815246231041804827012228622575397818336425315665747125355046042950322704625440577891677467132832829735586736902218186892749074366872872102207622955303861564313925639006648467612951268662074643325981940248684529962773230388770197943293946253424491396111541353737618079737013059346486452935960859992695887953641797759844375501730654711857026266271566928530026389294123714581407628391585553492775505027965972916676508412019072849197345543254516704035141404424049527552567895128990793250035073131836618813835854143006795819958738308730085038653697708740494506581178730650072104259499761537444098807241708465440767971733885105179336544002281374937290872570057318256030476622572397305657010841477506570946016596988634702253869940973004228292506166438057880061419556516348537798715811741685916875900318917297922914983201717252089556661904693977075601344368285842610040838547410589769675592624915458160373759520260758090020999042924167811801998006869084084726491491629059830971779608475742693156788930637968537188090711167640544814736699834807915445650466150811824535537041370268531511670084510645212049277233647376634357554135669979068473420661758394065516229531464403481316627317165286595190789339702282383728201746422927243935439711687523148261320871990286462482528928510717808992278895724369089167772641993861587854565801099016756858751519637065658594834819915697503303971507441668920721832788345405053000405509464674544382262319467162489403744139808032430182855954577927647353079471192680059876342214726079701801848038354144561699909389774037161030107585221199114775431735725063485845848446596024163976971782778117316447138326530093010202947687365873764523938625336980207593182485482912082557534429937663492890690996562016654757866106025636367172328442094360472658240446015630410771631103552841624751402443722747844213399535257769463415133213468949081001612452921612857712414320337804394408449599670727265063339899678594722376665989795374669300660579927782118285965907041869697532859923160262375694049912962775777045597366776720323373649152177873167574576747612178788194150745616971954929527772870550619344778675953813989291176235816478227574134689930441867063241663570794782104970533624714100657655160339254048182409064733157585995684096138672378368481601579844654212391034660761213160119087045988373093402560648711026358293079929385817351333593780903849523120081808208925572447962298829731923113929758668781909395919537222273735098413192270681802161442939957370788210620550498593902398921556250241645009129588315318615695383147845803465407480639652152031401129198048134997577591254663487121913111064197717012247731140397967886693042201421845606669819662732013174963991262739033723858485717240684829754153993233101552307658893921036304825146970312904374428187673389911776587483165967340117192752779572038034198800891009895814652032567091121346634436099244355464907202530814942759475474577744535286069873425588550970261981586712448578755471815379999776512979337746731208316065590632749820495875421537458346055280613921898680312612822141939813222280036054202366749842001456115659450993581899827175428760076650093014566063716406409302269852171711104979030185017246121578960030610731253650236338088443238387247015204720396241692333024858017834244078358160438886806925269163909607203893089648053628010133648202478011282267473551793172853083382468238549613779472772362680455461237473858147393875561124460923973273200491447013226376338696942261523016177882688146170081015196973736813548590033850013141403351914146320008034193657578952514224223019611426926192304167833955974037090964844598358227787680658812513498453722729516150230713164094647648136117707329171655242587404860064127787398159203422098011709704418372882274870018567483555748955444543006109003185867928946871598853163589017631892692782323501110722018364058635466083449445439976073636879104813994520002076056311880306948517715511406023063772201937277398053576997869126519278983880735894960471487696072443940254949665446862830210238612702721608288668483260422612242200257868612052168003977439256911408768168648713023409908055866412371664858464391924171790671196592838827733956195267772809205246638780955736765724948827685971645393268372748624261371469198314926149740004015524908530944851138251806489338943675327791091650261416025868005914005709183344669104503868252739606925927313071244055439168068810796062770968415361592791095101469044904252936229358142991269990932007619457047399734659038946584198031900181158115813941082334332158826351161517778515540540837505473814105238056202888498145889448126878183005367820785685904579932656744875305145030843280160134099106718586549719311544934049957397053874468338198003654022180702027350490693502279100944805506992099669820081525298065769016286584272066333994831320680871841297844562481594960126582559393925181249716362376482254179502736312403163908901673104000509887919275609186107425949448032425244886990820494591781767865578972308672279115256662818050343618606799174728357399728703742076079327051040723309024555838335932594157534089053032228686737317143106995460126934661546136099329311694667354875719707481394558063913419273976043039525308913998175224013669511012734239631708949747284146153550243911767545642211390249245731685462355129857047371615883637191545561587444878401303260409642846129341455302620621218171149546377927105274129200663068183449050526005094852739620464874086084992129669172600162624710684491262945432614534619536269240489561605307346518759917003615928264411597788036620671333880858646405269635826741222067919857008426646160425176521520066279874388637296774003616473357076102850157221415016305529403168755804221486209470512769412118273424151818506542242124622914799078018274061333952455327727649712192171893602880697220322880352832250645295026796887683306355868862119354897448412439154812428764368812755763405293697399626026879911124067556164216955510280529866004746658899882459022039935781509718482214079450645533148516810274699438986706794781970597734072036239770209179820410167811474534530802389736225673255147542618457265195122352920144003065293272550355528294656151590602128102378327876118182846468556138020226299193432058505559922004228954995645012899585389514418336579977152132583493118599169466991461911281403681079406256249350569822562198129249133845314384821100973584006316394750117100433717076972940681496665416847245820478925037937139513960603328416169735708702446281974976094688950805207153112113630043066134477215604147383975409977842084972799893954748951989445979802148457268977512561584785073211937945418883666483930669781381791879149961460607411058517452164196450180644405629904782211990231671165656695208170895643701015961044336676022550642741677399752465092228219837798110490534950410191459562102474463128616882635064277607125925993670081844802700987280319362337257343334475005467016861912106489883190625827696997767548578074988339708063724070930615203182957293880285833038272587318662459967572935458043691168301333259690476202083827149437102999915337615877598836389444143352463487165685893307558898271666999478881909775594030199396811763114100241989751289657889411588100237994859439662348718208822374393903110812410767355278034087157054212585796999815932979961188106776325047386994280986164153811478965972105227544949241314179967988359451258450085681339269044036842912567476833594526369441414845918891959052436467081701888469953254526041155284052665629832768548723938675963267302097246840279191881299130626258528783305944274827285705436623063201293538585480874527641455389484501344608824280110131911570163764909770423157033806866234772799823277015211417386969857105551129169591308587016499354416276266501900484432248598486351317160137106893123736952337062265646035912482182706854554464811943527967562654460765425362448727224038717083159737523227140045248242233288727225035029839347286115095738443772767531268954663985367765468984093035727010272704457479914071013792232240728741316298297393990209489314741044315878933767936468025658601555585235630559554600901848578998686224795183097248555392385039580147685944367611500701899948453221958538749548676821097426330141187302204975319578693768386608638187274219388494569175737154559294023790800485891070978088362676141785002771380524022621333961813131001387252619335218681379194374024879463548422110106440342657855202259993388183099447302659239931992794389415067211529679365721880503021364771003605884957319284890811318553451078014762653607463092514976500632558222172533783548429106972199557188721879721568750609995553472771016110023959982347511401383570124259697820301478116765161227960589420476672896431923249510815969583025421298893669383999735848176515865996895494673295917611344889219326355050433898191342147275270548528364274424237787933172747069573214893156153342005015255226001411722383015992539729994392437389978638925674299556274849653203421283185840598012699981846126740779202833649313997625904276943396309489912619785237340500305461992795319824692174539322258686237718946326004251570294658369272786059963094076437169194904093122970085451107799801530852670041778482719585334756801638361332533111088118932373596431940529971956846250442229441415986063949082480396729258458679380369154369423127232591160873687837141011510469638940938031602497177426994921368683585125458127801366621784155356161448457133360676957259905226126064653580841096442621740523693866826700941999573021148449925541288623262272214273069290529799257517569300682517657393925242230590786591833267376617472565812314866121391510270425659407924094661334811584569982992645420414111387422762576293484069329282598397764645925196954971492510381053267338678525785003028530872419459385765368019481378706147237829732551696220173344255809263587489008612106086257079040969047704631573163592546088098585964826340272524426008433127065309466097680408307768536991425726396067106426364862864872374847960233850329361972521192350885391676654865138558544551730338846764607873062091395643825176158101009409458618631296681645524524394362871732793133829926264038935881916191035121121153104950290948095954779379645876152440760375515019771851087370222863975724845399490744742139762567846431077480919299324623413469362446463949516053983925249940231344721310664294550004133553495563598015878623046022259139859227738611848510224293590035205332825475271498218176124177701075840303834166988772914963407160644539478863022254421074069358988449091449029867042145467702173522841121602652201509158437234786218249553399447341695406393529887875383291853262583954633200487122143836691121942229211587473284504565740330882762021809779596904647055794854292053210488573666845439447082064198083972618995064186092329304845739559205628752518031324000520120719556364413941512048359920565425703472373941371452788332413483463059828537015857789947200622021577504646760478816275896541024925398229851154942782011618032732941998483408305323172686885008979142865200126290778083810157464136592039307418804468388454018308895619185544415689258792465798321818539845133449704752943906397718472101876296779160719492305213005552662743118069881901438876539383843373754598186669886771546361162268418717822918501447780758835693497407299892510702133480424289150547262611064671281803201697385863772198769758862897287434765983608636151751318980565678576104359617636299537746525706887742146555299952725685665991687058700817165484577794316955984867671383225314668636275575501287946062685905871376097675074355250638711323660425175791485495721933450703921987138906702605441521148912519569280805513101183669034365150459513618647046725620441826402861421214245928706723311857427881302345689473363184950738266930232815073418661721068398922068292084159290464611740472065362226270362742456647721540532675830942591238497349584344506785466015737264571477662822666003447273744440537706004732249697972728999383788360522703138996863942635753855544656894716527662803743540276328534186364997058835779755957237613977112790774867338628046227358364009009309676032637880031580268862392843327685196847642915313897120475794582132411184381974914159413869925535356476944172534050824221815645377783261736491515393966582784266212009179331253019477253674775973350226743186326833755533820033745892382922732595364964935284557627715688707225377555505025764837004833475825067334980480751341432130567528018994802159258927716042538322020556953629223843414105960668695900428715723291195375045803454467980789609354864802386913093924588129856750697248449859359169985426439037386225570567971021425534749233610320390494412253036883640607747865979915490190774729626253936806657283186728691179883232812650310151148643988048739011893263859995113550731333075169682074334101165683304719497760058388435811543447592681625811717780606414116799545502312372097301968963979781663772230884898899893967615641166986576600203929546437576113240278530532323997433415484922033006781007777651262088460968570234422791310422349924447601778300847476646055342376195429879841015398066615394068131477720622009313524397030761037448724833387206139006073532525407415080877214027363816062881952198551300858253013364974093181851043137264902528731418025991053247377153716195863691238934573724093812307885171748550581511519066668181251880835205307206599510730363857565856266950164737488994696614792078881019462869329227477385355050949281027926816202604658671282691952218981075410774959180167741446165213324300474191095961306180960806409286229650700673369548093841962980496946664739254310576783536775034397448390196981820525145992824317749842937316796094613336158056001310414315349881542489047455472197101338002239973457652951894394381975383822118657943956865950031366860157200353006685500219216057160606096982154922513506608773028269281471174852005164193171224993238084549709139001342931674673012433047824714154776426083922959936857159173352144218837470849278388822810943581498838402056826402765186332234234208187419021296312776831713597975664915601910455780266433395670294861994438393874346834573691720264068280815451299215838179492228130490230320392521355668324578914790059560293075548439607506950176047228541168832098898005977197498591508572683541729205881633091273500460894829282851897493578757244205581532971281588725565413813024622473765607275268314811397268405123992309715170979139988136457934532546742805988846367133925362019785937012403880506105906530235713045527194862241902689518778609674853884037262792861504297875738652462668301136116893483737578805283892819524089824143062123249683987796531188060750202149449652237945566439304196679305630235328063918482202098555024147380366864203982817471759679114070184256201080649352980075586476185720981961654105481308809670049606793227054168950785906340148541700710536346203006487319759401245273070721738008651477790506611575926066229468872306539022696933867203107097077276570237500048030859730799496464292558921015189134768913660269372586331414957487250865830861742503813540380046848011330836554108765995679917430104450537111641924910080284266293314516178523767290219757547801349876972619121318862084770918038642258991016953443650226626130160192684823060267027614109573102618126953922710419090248210374848833829898963459869578592348048489807687976126370645673734195482934512639822824326300649259935826716952133577960861441208443036207851608427034399102498554354338138516217071985663444323656684957181510668653439178377761722072096408234084353552892045596389438247344190909669888238680321616077855657197961714332678381679727101403740261308555447945775604393311238005198014584521186118122234161405984960424626741133983255848546142022311076314844048630570613321667560566674607271617647615403790411405062070507108209438597164113211819166992635807350794721537227419969212560466492703663599749738570221125353701928316383654978872307812381734422640923020811352710657160171921150081204272517552347183540593829110444598271874708390013287547940683864639226710743974292446693966659265640087140977783476557150274408880894254711874884566059797074474501236031754838650058142224137433102999995840094127826652825069225215297421277761759589054695295853629027460248111489715546706464645368841180729058516472143468206993039032693301799168785386191608036060819500633501479119046016554917391619192916195149954521963931974208340484909470226260909058138342431341337563485141431472066727873928986117490865269883774083637745577134493142780597756741396563881905692836997575923504179899694804012351527666130527187258907644897627572938353060563528107422991159454203107081655668491480817559292794985166816237948221735422488984160419696424139797629381543266993718362450106331383339823112937780057255918442559300519509107113839426993143600260970825600984119611873998057363060997541084244894870501578848824098609627771145546828154596720885953555814843021794728289228831471437443506462998661883668196736387412524019001648902366818255846178336328596082665809944704521426395852838681693925586232001596155564899459218539926434049989389865073386369367996833146909768943478836129175353488833571322956897415302692975473228890663807916072249541497950003340360328343756609642764958190433584121600738461085804475887396869987303636494283823450228146248217142334624201460543051404333454715075749819331420975161834851975441418425478735139341292658440260083905194180068093621997345082039207357103479693658251966295367989370513593196602649424469850877198738150757325451499401550831223413688064055769704838604472647307367190126746229096120009814847595417289857854058623830272771530291236960543006517501064301900325427082225914222080841869492806257751189850726685966904222693038687251366764894002867157489421392669564696382302431361501095232597462649114487146167767947387123434604057694395534973529178881870311629709673373840114448852303788610869564799750419490621701551593280143961098102100418001228357331689910827742314945569992037641186679355036088709255941704430713401607716304609791476466219522386378146580677481269140763868177243869758444035523622272711240447878473128524027466419236809931457040541688314007151294200286753979903794004631536726171201022789008214947691731475389172449583514324354802923397360149366481643587463087015690907992790651160327846249403354032948651702425247076161785043363403476026102086674780651144637035730086317353852406876424915425185465412788089890211825124074050940445890258093440552418227715238225233033659522685453792938700964321743189204085378771729487733459170838575205914999060197808111379186523170306638423144895039367671855044913782516688486589300193899864772234627409149842082087275103040642061318319397075122711001413996730264728455132825309576274647962432038351778263848373061246806933249072588680702803114083344039878656780650985046245500206877045004526521482843877900060831607655157661196411150050039905040726885633103314720395624836826108386139994645344145188074028161539106940774829008819404528108873249428838939874032595471192780530277959199682296819053626392100018237394741629155163800416769198886918562369696020835067057673833991797979228401138239002671162387707859142086653891823207970933923119240703727859557608443904124551737735785556588878145722989743039388555119976286024451670801294532816536311319440388101645143326511211229794672292835757938221713393292428899912398118818912393504834767105749021973141555412652036048231558585085501520216457165611157446531010204354946421514783028097218262626925460458517216180998235531099876521017210881262194024906988224017891660695451202766467163615841432806886557787840120793718653575119639450697384737110226508359057129024008104486783190277040685635957180348911710018496158019619866841588860025105977544421323357538232264280184706445051533953744893991144619049196409124612457707595431991715305001099556837766732808056791750743171063009979957905559877813181702148473963847439368581261108756968070356834294878822724012889005104367569691193696188131391724203768374322705516097738768989796492300349018221521199642133066421528855874760552086815142890594415712295783369090813358054249820888156030791793081242078253259766603186149581831356403842177954213913830314869995400297900888672674210223615940575340530676036615449090951649141718671702721753414311925270794380179729691545392610178196282213614607327491633495883019776666357492246571134460932354689617514324431541801012712585551274852135719074046510675073946655085493626472867524440681009072436209703737765622349783770988642997433985946036891933768548180779457645414182781185190767816332527199609707735944764505056112872491985211191702991643081874377660240206082052751835058552233756765187684465492594013469109341447593578426686192789898895380974975351167600684716783471103842874664873892759034352611364455545221391321170945315075286542047207318438374061560742581676801535514956010116276788938314603300996802952243838346651472760472429416467534281671107244861433805357491081919150837426979575396453436206886706355861853107936206934173228916798916995875075196652302807774990973559275548044343049804871184436094482372337439040929743424519272163471777713807024995612612534172478586832306518014241441698284885137972869743715876274912607049191934169787945521700587148032969868134945801572572365591910999548836437167320877829238496516570611400488506557965260604634058085986310190970293201647929335657699456830228002893208243406276793202832970519760602750857083011681323791509955259732083723009197078362426615279049562073456789975483235105966219676113466145627349397680832925094338930254659571074885431981510969872457329417217408945450988248874848885079264739645314869030508488677505553854756600404698143124210107913230367888007852054418423760157793964971929319902831386337827291730075255336379857925185066726384719110453179029346647393251407206414294509766302342407036839473605527990970019233569764502249609619853828997909220484227243679142712039435419876448226933219304126697776661062585245624447379708761362107486512660307167387220219673197160288170553960442805032450338908623842596194743067478595850081574114112081935314329602511062610548057747629663200000307173754144230078628410817681989837990914157870429010321629573232652899402203259923000337534715703407224350973047022230687895510026851107245814295879847223183154203287338088177485068962507121237003331378147129444208534201083645766352512619833969094900298209894500974406635852433393693389702536983504591684656887018419045116615573810495843256108997147396620179653420897083482166306288539190779563190097573882276870163012426316154584520862374603806466333708470656154242080044705220258946345198169428124972578176569385234840128014612745076862527673550664269153246152969595965380338046086452932641144435564000723545277049316558287560502709525331700098172739630620517607268259362291581334478732205525989404235693121505927318911796197746922727280704139070880206832066535555129898178601691622631902036302194638781038297354479479560663248044422568022879899941657000493800271317362130991291246666109511856069418845079945303209813923522009820542873879569204441507797427372109033598530185482306530880121245899050491146199287177715932404850335075970168024043092237216062229605290811050778781615943584834494182967480346083696831983415557998881061993349778459079828947153333603641185425089230332863632153431289833533953264682373375695046472565609655067429562827644442376695892065552241781505888815544790811844145211885198027767322082224310959205314026540909226127236005318636298155355244824847689895367165275778758970403496378945257946379427606983928259737353896744778205322201440316957250222765873367097657260301729544499233468369410923096626286517100703010457633438945984969841368810164208505438768936873730792019779146348602789606106753416883726783013352401177354268059227616343991350939248483855399909471075876711564023881574169518740530332224181280615020211753224476991016192852876049335864467591301942974381231531832922861786510416376001423605111410750912768657546504821948776487452419652037004432539249771776369532189957022287406020036014458230671996081424952698449428308289034614050244080480041788924749245485451001855745374755378112103570824423952031190237074433184011219306719843321341014088467335522357609498193717595165891008405341545894520718975711025571367652100540022479665335034143610094553550399188029036322429111278952344822674690751136102353302893761803259037361322830918369470973947568485192544955530952519555207675277167996597587787743422639886805136775006181075649571615379150205113964580553353213689991842526244669204714742468807233848764848113774685716026236051415983119055899660342879025792497842017409528025766905019357222387998876732781581892213816833172635972571352484149333817484369355096846480848066845590948544053559245425886148136546353300324137074238162239941338950936802797285957171575434028662014083291456854642113017843359990335033155051044325560448325169194919339345439109741155457753342586239618865598444389464863850869655098858022164666919219032552389354555625432855646646468556931735695719650246924991592066845756701767272808029275010254788819881918027366179469814903065623164832625487106356961035259118812356849239306802126386273502755791057717976636125453710559714841520706548234898941453896064512370746390607357421791396423072596255262487947323207335988304565510000350631471648415404408996941408616776307142078381571409520905572005511017933989601161592367042946336081183187452180983301891728521547857204025569184676056582601567589591906225033451132252268691363657102970257594818874428886730371807042235167173590791745528944422858495807881111916789342042655943418855588614420386771384716857418143787779900910695531401154877224969575716245677566668865030953152405072694587399935829516487095291459086424915525054768206744326330757535145810172513325374809965921004682539453054364325415902871032962833363667882625654793901482148998460824577353399016344005781861882467540008769543447349307900854807575288343455524113207497888150355347203531106096776472427859903480508158745839770371518832121757219870239903558684489771209661328144283167992009369893536667420652631065020524760401790127289639766101802712196191024027848684633729847750264076980024788782767127982218646641130258731818106338034375308993822095036641530786369653671438859148935432718421129153238447734031132689470768540080567656438982358542542835867211077947026056395084649706363960979791180461660082527728259400216275676203237885150955866226377175023472580239366949133054570883304957954037102996299013717499902675097830519411396998001167060832195763183614725555835740779849512587172003550947286819251524984867783118110984702032648970515391046344396506135239278713823067637659520422599980339519000980588693182703132124961984124214018448824677970513709096513184989415785630745126202819085924301405920667627014431204426922552437212558353460452817343713836897080865239973832304943422768557284837401259437854435759814731808087992610131948516087628751505249224512387277732256034279706768752942271131863756119567885586984745099634733619068332279108914763164122510720253972922910259029158413970091298552840847598373488566925363534076027675268450070255151010695941208847226022041987971942692445349731251989060377694841134756324845663704616847713595960365423842619050604443409642585108676481364177358544334783981172586461636664993971460029692509810488679711373345354565788298211913596682173373302479942520230877563810290171015476555579787077054000007895151650692552434214865953970826208500110834173899499577218084494972868173230939811932281498769348410292801864396752294931838492537463849339608325874202462458574717295357506064365216257472340144766625547598621739511655385856873648595040127028079058641622837172316050728563114854401456671511647848577050611817830752668872405697898578993433288799789810088937641091058612386888891353654830907536109453368561571046694304402780515936428507312276345604977471386829153540526233995663578844143743188663317668787541780109555603138501292449123972415410313358595701570424418803832494987258160174696501592714473021394305182845490880889110139613695402099326945078735602328462084763555006172992245758466383470929172320124298472871131155690834647003210575792781264297554236463117582739531045284640570208117062802469439636069942442833084873077156147444432156944135267017755332588970074683982673183072268627999742820028475149773750811478880911199165946980092756013956933741074133381023602525199418951627395072701190364964012146773846179419936896681065609241299480471021753129930169742105179325153015953714865465843345125235457629562465570632706578347398340903262648998713582519226425675355233784724779890114599442484019543782196407718611748574657457717423352496298522472297506082630240194839432234218799952008574236530752251875036452017591889169575241783426745210792677763690091302886244674814283401110719533084991927381739357179451980228817234039889911469455457048320539906340027463991723070162375912802716510607788207503196655808409500513599469084593421014824257577152118627729327609574770774013191195417452427921000851477012493613253486888017253834792709983486496181092606283777376069268497112713802253047911050788385626974130203336546528049927597154603601663855308409551376336444177947293402317866119104916470066423275910791378143569520060010599393348425907727039339279721500804547147328324395568479440431091236416399122413334630749388354589145404120500645249426333351013966226320684761439572818871269641332898569269821902033257715273757569164220120672827255943222858758464516811821588248160535184662763908691357056332467234018921283817661653672402392698967685122325636456043632781647408072579474570991101692006941394263159710093027045383502170377576766517393773593615178597959510447520372571699890978408898108750691832967006454317598527128497088806809406504172009467538489427290654905778122956981782774678888218556090071207401481099558419018392076370791523804359914389425293319557721131028878513399172356247718168230206754095733963686241757675418859584757312827389154171789862775967334583093554202320454853440441668633402152472762313626400517974147130979185028511724987195929946627045836504277338414802361804755278131744093456454390517969567942503246713926356000397288128036369618713484835328769446156208439297541280509730231352232920732738471938519639673258592407329655914676015687703458379874796229981311633232031067043059252463113381141540701395579856427587818873683743680245195678155688017706994165247844211451851059893706513748546685474598067630916036835823272502434358369615223742742227395087412435969760256193045962017836701476708234156667740799822704279271720726100122291660502319575182742999792691611043138760221955762867904166893665777072863185235769082404072550083568314313631669405273788638829501529325097963049445231835752499145400397532561592439030032459641768477231283307486330649390047522647219211849157459600597774326293814043755956058361551180416209033715670937112798230594868318003225333447522186368990642671375439947905526066989077441574934743310279258093970795241949274695372487439132900164969826902277485236716690852149367730200455619729537840756128876535031466016222857915159143780699923600548143351466253972546877517256609638781535592899627891509539241472449640011318336107791800107712872717727778181151146180759578962390733592171281151873995125314263988047371278631516316297643914413240411966114881123814229481131618067615401843516703556458164463303176067978226101830275221975001033450039776545761993723137799070184623187753626156086873039941754145960632310628534348331027352293178397574508737803615120235357379790079043519469944536844728618338592828715493989740902263468560173872370320392007975375205728687482586487745138716587373788465337137892505014846834856228550022910935643192144737093951974107279207819668734055992383115909239047243896818022074878918743362930038555404125773053040027822513224995863522035337326245797286493154669831722024502787621209396997217410843104615958425031728493885090071023424465955918137682349059445282693016043200527140870775368940600433623473866949411606876141476984457598223013710994726498598187581337145943156261362067321906524013833924875987591739935891284280956381793240441706276518990116350380811441227830075119894076581328789508686457730813600698874472490361588461387036067447656421395830089141009897252010473464783796881947955392796514156661825082476310486888788570931001960165240560655475870907684460900637836905305634077224819414715469288555786235586055587595777705345225664921163638238669156760496950190014510499576356424177809986433346783767622668086005565908126144730060430601003580548586159281113798805354505498471665600278031504710405232837484366541600403437030770227266737360447553530710579617841206708300940889132265918868712678831419823120758937601387783464293011340035486108319587319582283039341359523414948215943374278833100010017783723976567338168460294999890912614099169688875913963289509107522611623892139989775489746418256223779777719501900110566858933221313413044243951524623844450724346940962789830496142539474701816736166270347268272685266941696516691512997611934185530375382801411976459513964650787740164474598604970565300175320665076579110036219571178228216886472658460834503982329659526032288278577344404645120374009117775099624517078169986998715578827653240761181164050405728311966800285456194050426102391375034628088366373599285683364675382994606411672274866118852669409687548901411960101894013216352096787139380640840149729198202370956938839498650744378585995086132559326809268865722715820032612874379790448471281921521318334449235534433648958732462906194253914004499626757196218992466595562595430935743684148892196759719854885788163200120083502523298092657703523174319987852445951615801107463742642988038325358423445750575827195917854348458095600447506614554683130111704091301205908352788564776599481677221326731762661651457474199123405319864459036586569172054573667152453880578314883967629274769163009594884564158894528659152927780915337460924919121014348573385519228379261548828503508182628452991299586944222656393256516524943209001789927948049161604786242314239190542358039352190945553525842563718449400794530409768623464655330069301169173104264215735348274932213148606245942207531870031395418761743692907848223828031282036014136343047331662462083708195976725337217748636699790266538803560849649885728364643522829016209442783412931042398504747852524859441294208086036135052028399098716375492343881335906637180292535682436513176006116261388799555245707929143507375557246208399818362729486043050083813212323032688261718548506933933046884255152201577594066981347914663975512661365484140811951080826787760269515431022006493377313192667857866376025952562689019369337455634472229701782835339804930617399980107492525573776466528293600497064812938556487938397157358299615225731417490334503112081710842980670346272208996585824490822451792873129772475001191561859009974168557544321664367332143238263114736279639108948683088880837768849574067339891344760227058246585253435636033659642577363175806874329766448853086414620909828704160576246649736756626576086254998852148411208975186646197526162113346876223994050103647632450194702439408516008640426214807250038181310315420765370458490847011122530302230593909574121998960814856632336394923301402480992347655792335221222993347640492810715384555355143433182464831746512871619514705721590730883358729063218869122931218514364627109433130434155715546452100699832385322305925691823911637400700795565006732813620012040739237769219463006924250839051203204710803719433886768454946920781474606222181690081373014207008116220501868136598652982638056240696399221038700009522761029104952022368224752904623575618921190483353489810789272563810420913900673640041129742613235558963710155504850077186229878175618028709967164354647188689077654090085587354193796844784143017131953703401754587897142203794738041953494001942289255738913373458867571655291327325024927696369466898524390122141441515967906869619201735995427366447711248959801690294603836340097970444938351553112103002894643068529180310421535052971904020190065567884500959930299513730986254930878287379537554399950841281484793167794420328543883425681663908212571450500363033104889689918103163689615652867573373096968534221533238055573996611424069235019431587251189420780643045422094152437975733948763098833684606712172860514533712688502591813865217188122974724383807728390336366723206437513678646808814902433348656999483088440836373570980421796283283656222204008139190886643753121009927844180751107380664994483551430506162306632878532976966473573383908442765467656289233240415418628054450395549435833762811584827361400661540095321909582604550765171765847048720050207794172160005978394092126978852227559096871383243466442061341537323566511401030930211695673305572322158582016586502578374035762588004427324454264614766490994558002870397174986358781499013448806940972549457145535771015932003338903822481258976309995183902585416914285363409441618834616977841424433318019897435067749250042907790834719053738410226387183908705003303625388389866654151678675209744569636574473881173785692241911817064559308910538916725372715426296287553623429542432086568824544960620278414131801452676313601832487028566569284041916395483527357878599538503972329360706997223300480894400918075346987649782860635225827586391289983560965916833577529312211252440863043463000177342751372065906567198334133772979970989368679717845694370574020137923199110315881154589759090862003052852484081814518352563473167033015057722346059334358086556698985488527384772660696881160496319614514903871659574589346638274321162004508370587709443453624164454029128418051043210646769308992405969200797387438087015404835005747239640045432240008769598735222175655897014499449426804253936353857756147852222513797551380796274221960155961102132833534117962743431063394252491788674666366131670449363694883140360989865462389854261372604397041208780136537418264501333765832931923623465636948551648725317243276684251622085002885139314805796707560181734775659644388417024164252857570766159023074249896493628932738154590729274568928468463991804601768858509376961189132563665076599766928832621663309787468790054006531030329293882875407616554805987973144559451185674438237515520193832558187987205673914427049932736359029938223868060719375473032451204136374631880512669494559399001536379535910545797102931120622076640414215450652446157908690375480450049355136255968079696453002615907631368436269536101106087051020130523220579369999179297352679596422563457208340671947439862618077261933428564475705200547398640989397786260531854062684604179133377343304239531220244459995971077178327572056892164509357495376538986894295482417197386598605221325418128579191686129114803222897838812492355500953440159036935478254454032189833251048959849435955874214571531661963609694431708832423468852635144742267055361535304614387471796711703662430904818614305334417927600141224220560605142469812411062368121635128771064001609821417007021870710763190153430038848384019442563998872600512943005076811634387197443794612705005633205647397890341940334094482455590704880001500662482253910747609308619030534856427180564902226606651700337747144238212963278642065366021005233415818917217727116103035371909173520873446494795886457258595932437062022304403545073105206241995913192704577366012593877238469183852843217648865504391655844601271326176138729163931811472835389744948639567589120851019151823258122332927230693772796743143645683836097057076571733586461175073750211333792618969137941030966681399079164026787759537448651897934564314020141236083194560417830750183691618879800191080791166090664598397648394805686006846484720142136928620952455570995926144968743462485744038967789843202224441266245198807717678325617234071187814030561438129727547704630098358492619247276415998333786117279025717459555230879591054231944574364612407349272067597624469020530282437018103227910626834314599446148792657121832502464843705070002802853784746626502124017337971266940836068485131767588027611941766620216475285961141572323717293679274547763617317959271075055104648678455650891784603571459441841823519652287128745910727769998035428028665914322902417295820559092529330976570860640837867459304469578358545515520592859809755380372731812343154151949182737856298686740049945083694900282165363783058262918025475912043300784397762889801362163828559586761106510930788489093198594754409701973887112111350398363963349869855089506146824624932816847987135477517465656548194194034946705676285970583651678638770293705741590451205691100748491896758860500524444728088830919480879478032936015469590061822144091947515514397145748788273054550532353719499553737571057488588254750462716844626347951414538948729637162938558552014113984684586544871316975746877489444796897256660991198903027750439478169137651414761554304932648149104902135584391494755019873451260012658984715977874727011683668482010227777496943298725892194153025906228851059569751291164073408575800461234235115374054335938900573436475910121626893655255807061866656120892244126880052085229116983595060340528790599635729146625421487973657606240878605848597180591905572478204213463640047493634043617952824567382992468390590016121738854713335000071205480263897559778539847445487581584288421147476247461441578600958075674987889374574887832482517648142668206145080424735394294337466787659115896105727547553713844582490318492251908224551520751911070241913367668339913185514724842356131226674482757129402108627892860132104901765785459510915847879190871696145886073863341746715045745351395658491582514795604795113136924608319078800212267082312967171452615975200761055410662174002929900895617387277131881127750490151734734517906917312410765729756020086119593085172233662159681881925939301316028584199909235075263242017479321141190615299281661619324249547981686590689311020312396018086580684605174322019798695512837143747840463190907193825272813049637041885903522427742829829728866539129658820050027963578199589187476936125666994670645537947117649645525726204455105639208261852770090707102212903750142732642600528118211946626243506108143542232653841218868939639444043968103827262365307715646004495248733355895882807077709296003332516892189251499248996682282367051864139258431666942928223334318273024532555165703608113367049762793147889777498246224446801479084498203089397315184031905077856311093743284147973379433868450679990060235134681742531654549342212619189277965618084695683144501091055501316216272144650345585937243637438601218745422829218409913823671567578485403897077363182143451221430006156617447342930646310618978100190020955216955125600334083404506105057619804002024439400551821881279106248705328802714842840542533722718358435492061313307614624621582117410817108878309712543404004692695932310936060338738202876031133064668243705454663819266395870057627963728307142312199836385645639026891189056382418604535889867049874858832344801084450144658250344025335759200543660956779579494356169273496913576979216717384195875941049231962098926122926491911312829674464831219175763832965546491395407951079030742454319280198170863258431076253602631303677246339218793663593252986774412843507205730012297000237867236406018800123353261990119192039640904828803470575791141860123541903455948677006037425818517898986697866942965344079072984394251726592224279478022453582921022025090097976325454881585840454561847189891533802887898379448833219866997550230309391623048425765029403151472837557230782502631011734488952681727803967682768653088111983248945413894110200116270667383751633485415158108536811877099563449283473048226212308788040261222651866497237186708393224278458146227138796721643525926541985661325018252611056366819076673758636614972681524810713720733525089985049302877516691513765103449359025037632628305040906279450383559131508806994875138344133259821940476740943581892028656332049354468954116206304152721598801853204259493089671044278769718143707548054758416987348167736567034665441217400886372907857081131238369429720147000167218040758850802979537617977949030084082152492156934684107308460091642687884440516637742318912538616004529145239320273452606959515604876265941234627913278158290358086501247504780141305100634672874654881111603769981856701262427613807210961004111891081848372618433211890308530255556864982556846561695923957966335235213209653868020145257797219439644497649467787590002441281630538946119979073640245096161065197217509579175504242215736693694534820041793225953728910909968112645455451303541938714423696319805987987445715718985783657733944061916653724567231616313820083559019591519775508328091332634375993514889474399879211824606352165328406092081790300484833304328291317201195751254873703998161276262697784691898172270708384904492691721597558586528395720355334283267092356724405212407342834777550494477550625598992225099194149778346659680294542342242971216762614672595203543634076466692086113060412680232590940737903030564110426378387741850677543462825406628019664804140205766288851682508580294638134823482974906970639674670394995398508304779512621757782506051478761594168677901425503036217670031135852894493546784395494349245526843035375358276208567602738431099428819797573866394316888168830305835978825316767892752121410202732534490684724174614158246881855639160209582647256612124224642653167713419569193693857130905654525078120936496943355945970497715751001011675708552425770696888454214620621499690924993426391134827741935091998084179975579696652559618374760460863110429928442443473049507764330343093942452984418559950408711407920814058268478360067239494629562131478756757382906459871550879569237664043256708750937266645514243130533582583366814882033895594628475306048724571859514597132452694217469465630159901273951616626444150996552394362117058394845571072398078288123937454124858754585434882313566730716512239471778014644311694289311323046027620836461044535635543288035275099999378832457278340617736745058643005523801413499198130178499507023890990589378403444664049940215032060563972491045472628289810590062653103205770514129347878628281616613366587190429722996237251669248466096176127719156787241893871342958211705247390112810856173516091852117076270299049218760489684731307739612697242525525100124412598229278145173257982536799965607905560920314670113070607858068493718041415224668771268753946817300773794325754404355320547383591948538081948015557913327119621025279773699124194238431306925143378562463871340159428050635853800987619938739034445356293496311143316133377121690140662729091387252666550543714368174308724806581612772451456683652358873376431305856864441341746660146232971047300544692139498905056848199158971291876586301457762625815274778585267674346519356462563738323602199508278555974470670913823061709841636457996343613665706520741044259995326174713966532589432575288356992296071554148901962639112734996236285786678641392711729616286898822209848159787343307282818971402784722045840754193153805697406988787296897499590130311935719940740350611738985325198363469065495418417800076708981913212892608613082659077274856426581919599182354196083146577494621995322158501594258352030209428472176693038643410090480774019840368600513577903971666655029504811456231805019754619172843164361079305241150732791074927921146380700234350068447647711861106874978609389733543134160398336745256705340532251472130640745265300928741943054318552604843090203261295526036982677305870873208459197987190706725418106204932349243097346970519641930566152571925173028969290292231842524256554907102755928664224049589470308345953132146156287255189292722444603899420880706078357831405609662492963784155507475832523189724317040726168461405486732849599820717534637124710247052086199430468261416378210422947552433195887097559988363405154714957717661796236700941087668248786996777662887688633918953409591395407776995449196750970762978050551806678247000143783286851796481200465235067262165795338043056062845749891142869056233407922566836483658281787720086412517159465641029003515519329058754446998999225716135045700572844274013303743552634130853664592803079543709725214800958005180807830375993157259021285490471348934976640421080203537313540756023427044840953184411091274675318627289895863300064239315609575411343901093244792393126518627292218984313945926378355148365765492148872916282657316113872377981449475090235134329176432851910167789405091207750686667106993966187243757351884055215278310072512176801017834637582395794170682363985676697179025948241922132288002985787833248706715489672737469352365215040763177531515239019604736948371358665532587013131991846820084532456031745198485927475475435996795772530246016767031152346651513315327144050124247073340345594462748103631144692999224976631316194317871695582096133887545883542444402760525492037393858461505326653680208150132418841938903226805406426476683082903205722445733843141397938144256825362874014402587024513696335026314585649369889586610461399688288080654084881739173178992985097115164767735857577313635539301679223351952625251629376797143545291188122625564244852308778720916387701112663105126182357560347137171630598886618022533518567504839947769764893321574052884874909528543892075013208276193587911801389146966155331516114052245904439431997920721589879013478843381874961978070998845036833923217148167130993130810452714769586585298469758610502842799446112839339550826378019426953055735604432420627208905320311659006025120667795634053969234441005546471018661772721346619270188656162656677386090978103103555604936064409009115295540951501577133240372661348989376055117646458803851125059805948766013364117139659862927051895731853464535707432277107956481602393302018906062226808081001087821462529844351003876062567693565636250188470876249686768286307470057882337941637771252645425802041883463811924333843224337986243444777688368245501719654764656091523486837174935674141628128909471615728754495453492588706889287151776594343976979010663237696000394609916262374071695964364232365868488615306789055413816758677015595572455759777951795992236280488276769983096936694861661492984574758294794467424160496434746353855716394615497552607754791777178529402673828383727957218243741152695151066580321338560851930339480832659022535126017654265786541164300301862814237369776778616388530714499135670616680370960340981056074116514749417138782728216709263803313379480199069698494300636276398132064699808628286877650209335127022963413027754416753230341623790299062065989508613638880798614988049010216503534741189989509762658507054373472411963396196198008514180326810991379654053054798650066884717353137224073215426449844174888219889550571702218115180337966714205317400224275605177250621787677927930432867507641891441313012286536938974563968023865199548705401655174349574859245711933012749985925073730962738638383708314256572650344074111331770105513022582343507337205869975148623689930484893051833202595546797226120262969952267842670859524214480390401250521244735725096649345481807274071320439399958618976041918057995563150872117351660962881048629451495472364602187171094185656959360395904944364836758275213832859069065330358127176909859928863037014939685060997958025004481319327971052177021654046630324860766997258846898381829149444122749462438274777192806860882040335316778248522410671988790960060809898863655182486273193598407570304036681669167550954944720568913249984906812891033860854617394805701090062535846020557848645784850391264160449637747969918212051205312857443044790972463750223722916472153318364894119776056929502848506713715560155392581246800870751984265681425247646709103306479451251223761461332530446807247759771042241505457561942874970843137720350653390982076257665255244207188843425887550905259378478261796175806708482857169119444695516084510202058295665170363750110857562809664849703287226296815622322055897495422900986166790683955113899470447233824423151039153404230723772997320614554794135070562989272742205517011622604577369666778368446898997341458424882269595155648156408282599885674939626352853594740479045512049490605507071445592959867632909644467308966606567118991756639311457177963831137665035618358667630215019176713226611871626452629754396093345289239704473437351133395289361957572584749956669412564887403285203679826921490817374270087577234483691774912448422607788157270887047937198979695825221655486423844320170124525527724383256263606339954704799491591603281461657938303878083489728791346854265163776905041891255911985129082395257488782980068500622212454496922170037136689476313505614950120093471488568506728031113577027593477995664410957681107281410048186332367741375877385025072999559940072270901260732628133822267153663502899285632771456112290741149981216281249722859831119224726866438891494901816682891820965099652287829247446430242027637338390085741158662314310340230357283000304371719569088559532556650469641093200790138044458077133895757132106188156952606137116425345908020555396969700975387248803893971293612721871437290421790784440616484758498732881991652698525019117881214437364949718426773247641098061156208075096512473028592026180014750148076592355301867958375409911419272984815201276016547530398554363469905292131083450915005047883957942562818022129102054949799862068280159809027665798958997020482764251992118209940741520474399513587375359821002571681648996383897996964684524107090824030746242380597369920533854278820964034398985270008287910351322802627402214966543396701139969199567881707524295106310929541936342204131759154711083852114982829951761552951088869247433533949974783059621158868322394846177761940622626889983824089633258612154814276043306411225246177955946282885782332809798647083414788400508172969910772096598420985284478992242434395006982129243994374085780292907415366897762233038874813093391704107636970463438869860922645053365381712017706117912606678994427601016881283285878668036230015971721019295094414739283663079275911981724459345467585251331919295871837820478511664123149983586498624205692415351179298926678542878414981704808992087809788983464288497648997127823381928119029729565947181634706306006055164826519020482044390531983960814038055053065962738131553618601810178083230105061467152532655744585796783309125690542998457052826615151682613928032354153953727688815597438388874334470372288604291239053263418499219822194960679115785816546806783846453532396754409234937910930577759182223526481812446296341713170941876812075087985834592811905152731758360534229552253833980864370326518015857086097037999846076935588160918149872457839628935007959791930900670349045748837221103671211555895725364219172022112944708739164242901377602712684164722280494451149055496594621336516422166833178302153385314818786384742658468616629762518376562826330109547218972400243208012373376635269025668160311607997335766592748412008069801566572626278390197583722221878515839835009541955517153484585809870623386983524657706186750924127781593555540941506047666470712645547486072120754015923133741957411405743898365421488512709982247211886791904809344561081099217996203378725620664835337452057366829632143325295061795032314618687354905250324835923604853437785819013121155710549751933651946698295761693304327288362720557401872073942330737452629999615537946597630309158604919725699173474666754003773097708434915261224999008241406316255678248248708534743709932930291159647294256542359069528121165886809875171738008196268661879313959873546939939207452035855045892066119188882818337180258258326797945419303461481855624152263547583131834180398873696864073297615795726783761650662792047467311133610398939659846543429499855239506945171625930774828164624381551329607806949083185675691995125995413814866804522141792236210930038923629062711175098442904529468074576522351386080977546180682008982925019490264538103752694582003273946237500638468286083797307571540776008406000991294321426420379524969479837246059098242722407471539507303074183892548842206754967880900838712804934326278866071357949743403975509481150505489038177993076588299006634318899159595952069275858325235513695991679647095346606561435790132359226296037657887157942674214819104009992951784786154939142460735970720011083172702109109502826736039125950505537753464411862154363298719753835064630446951857558704969097415567449251099326425299676556806844562669093289736662983264683603551186748042203474960637410573224976396519463727765094973483964019951048874413984228324391393146255273044481251991088382952044705201358266179269971743117037903661729538174833315984289381082970569835914431362048830619041060207181856417826190915673304936775089021453786665435825501604336191850015489795657053541630473569180595507248273970661333729364562556479220721345868129347950643669233496856540994295284593300742495150464319413276390174037904998868548778072765406045869854964308608010226619590210506955130628136299851737077708735156768543319302806909607791607869148369145178412552119932755161805666132489563368594722753171018370996633959332602449848036767188730735236172493503498313300033887598166329640392117914287312246156684704522641161014578777832549407544057858923490406772858539625508247771075564027226710487682713052230534351126578567119481041586782463620234146734195061658050390969638270453478174617837325346128382902094866391303584200057451248649627091941333918873748900209960003333899640907014294097567765168290676204091837909652357663092774983001310723766525938651572616203868190636257376053410365525697786823458570594517698831245399636853623622455450834905105005923908790962871139093555369914443686655446995635368445124152822215707214450908662901954082575642431712087813569866809405786348895029225015556939459203866774011464880038221236625003760907603141384736931370400888425012010634382115455756275070951619565324246730760670661642488169190781779674413115122017739088412243491240284021700850048641177314733092714523937151995087447826640763904541357543379229796333981203538089797550238088206459125307364630172867054341711364006505159810946535014858665103900055947659267185737195011320035954583155414502651068880231393421402368099869297023488873417786897563133955880408471729804770428264628387610237367554142707440790135998205522396116358775763368762606173457009108120015243537114788330244999395250489955561503240753224861899964158581738732024543829610300769240275836714889134408031291884208371751647400403670722992780619655357677875718863138469227394262633877683956296400818279013164425733950509390933610992695697348735911524232857855361386419441832015085535896604798410711017685837229443091215261126718718897756886390444351499639638665426250746529318561032998612610779910993375106161304053265252246884367479654922078601472983431322008894180632578653070382641505058673648928781478161785100494853564981258169040821647114412729889157911594681685845032564249562589859125235358889295452759605419635513807627514453385169019205874358566481135212365118343959458294050468296758822508350280387946319456855599632818591049615325181456481777747279932458486300819684688269525665454245146157032939159141217656887411464473815975898305347163285488034191344162849555733001477493632893836562103607860627296481664352533260168706899073894050941000816418341347659667886364174719521950247720228383365237870023867012626454006812619861185126765188194796365264169033923933114846900304093182620773476204062929386761802223941017752493522623760390946093111399725735448309781103380711313011395928471100669589273479380523594408760461553193540866541832264739089887913969906906602038268420651389910160788799338913285298805940675869480352284761656956729132275734081092447680930043779019458499598530375634778008082973158999997238048671837781863032866069664275237890959336028036546304885489089610627740640050776957268294022714963433803146993561019489940631639226017001691662808593987404372869530777355154220568173892985845360189851496348676936063438822106890148282676186728019423057426077195066288755059968246847611270192862656606375081075698088197989779553516557153612596065161950489386873033398056187274870644872849136048575501321878058379179577077172976264089165053398078903327936984565531259123917166460254672154368603398902259391338115590967485422023968023996629655804139675906075830932759888455307022740915619175579214512812654707355071236030510141083776207956363302617780171200514123657062178861611885205249337449404551653385016092500237689308454135738671160323870453555710964665309712761280058016726263086571524130668211803193451308883463877061786626181198787910001164685356089977677019952766216487844963301590225055010687550756255584085647304804013112562516464194837276927567062454510634855455293438602236886198864568114709283954744068642148213793003115994583536305141890600508908584863693022298769349500666345500447900956867132379606310223581104977418769299511472600603977256416862917574749778599118091616663030535544705765131870615759793496280552828749526366613480988986983764473379725614025863192091704331868581060361202843579768278031207387736753143003123470961488862263953889001456681265625680998459788322134811419360940013239137935128110381500072449208628274663396817082592931360497892051758200069506978319261933232848073687741836283205149036245948618466853145197612612876240837744896749568723243403104384906950141135429031685530296296899623981993261492030522367428509730914069141247119717755188625884813597482305465624878025101445311315571217573530039604098707804486815067932736643512420378006234352321943553194434478087006722689292565304162506529906268972494176845742467568934832094955643313793800804720005401867786256134911398484752340004189008005001818766674809458045154546648618876311404299666903005703500859672046805210105676532937290742500354673151084932610873238716507075780456913824861514341334583049660015421700104663575125162034142891465947711864231415427119939857231119594063163432048701538592837291608070822598274194593857785807159052822313648673000648950726379851659920251647645101946088138364700964504194781575845964216738692708228639859901425556594138014408342046054162669617699786785777019306046557931474881497950718128285099585609544841421338000151804278785564814373337478974791519114255113945564521753600140690636387571938518101260911771008700906053075645741091947779678904697610632861452445267042962882882565541246897858142181138949860213727073845272892641319362205735600507296126394388073478457191633632742889015622912253721267220945316524882160703088584921756358577278029994073007682507761550401056180556021288958909974151166207701101425177545499251331849920948032764024775624678407351954091412776233718450955783173277466889213420036402605124269409940191213246601507570818486802676306771990279511928514090200340437763832966604423747778933857121377871657852344954828423509516948077793385980542699747823639362611031773527863791751982752966165735149165537893326486974755699931178021999731444508088416673228870126034504571494083678920813747848707575332244188620707579621400368178484927175956828252012579031474033878500565215444425090912285333716597651542354832244381780542397629473293581564238554449861717918880287729928433851712610342794819339604016101717636379080463531069827450913544982023047668705977054776424849186841868642361394833807108011449725962540639492081393463038217252504049638261695088645368054246578974335250528244044645602872450394419761155119197252188395868962642793090599875830756535565298966802772705845430842325443715117452325636578921388774724699344334533970602790576269334958480763426599819132579467130149987436978252052964049722062157861110461092300409928546141136362220778092418871584096557903062402447333758739418022293217758672697948271938445775245320714076793172498883619841521536698853361677779142384567943246474435762586560197163211639487723087744039290075267628111087933307631207989636813760621508555043149831331495239738727255065695979362262586514696556942726595440440280318592905416546862346432046092505225147207665098031694921093243130486748015539146459758700337833354842577245668324429165869879109909083196358270908466256387101810442125504707746774955770555002183179641059881782816076312898018147665427564777190349760928650138005337946296519902608030475969983857684929934003309910972087647775469771378695045231031987457564663886864866887574271330678174436801315843132384098379014474612573340194088428927414813944470616092068562865955585315309668169340375270566497689012345949559754688829899748742585858816032855873039535310291864671662701981041496760652049720036928000690664970245587644489740444108007537358055850698791214494668317916321156859900599689677151028290220631233373074918192141260966911344009478385886436215790874085897532445070102646984230302599615204762414765401694112702312166696812934455269594130642713610458765288213139545450333304050197901618839088490437342486400616780367547815998818726424694391126000198494812407775944093861478631671088748256695401385203769181835659059875082509108052350640342702384203638607169441745438566907748223322858564381638168067666453955626096518082330843574164596197567990658725594161439110806777258121817401011967005039908781965981494320949779636060347051912459491164427133553448010078672489536303865527174556335178826752352374500367877977609225287940438319264375697613342550350958856362118282531553278990732875957463935337950010385067918904302169379816252614288394857805716293691132187799361371525958209910341887714031970049806433663919077689739381007197033463561884661396474552441344333068693021364878511063510618772145248306410585558216056846866824792097232870113955770580301836245977760470798473498533944234390908229617912904222886647615097438344034517100862620266326756053824907429385694865684968566244634801599827301691285158163389357339632809742005721977134928767256176567082520190541853188590528250027338928202958948894091901188640029023969985867060952376651933547669531650293657287699710330909413169712387675296602448665922574232960789008093666287619470638881781182596399416492512424550305868575581663790566468927581972965891060999524206436754241211928620699907467446886473271730493098080847070838139363307610950236242103444010663894962476933449043149553774438113720232263756638334709268746048039263514998822977971383131591742012883701628796419212163140646333292810256643823031689924122436089074621794895890773045789253579013647535777749490351313129457513844766476131183229744810893365755434527160146632752674627004964885085576281801042569350658164303285069970363304366675205701143093289767975490734461242379523849635081402299028675007763058927254304439986700029828910998778938643547579190132773093713251839037581467816513245699999974807901787226565062000059672540553021995032480950812890560525335856819312501111631423659981830893300960037292136465896220752477830448150121006417348408940636315810897253753199782545519856390619455180838729538164064347797491303062691677227425113609805324536302786296586009141186573922752760967211821462646816485132434219092465559782246282252468799169385167918183166677709055175596443477203512129129916676384207754783190452715282785628857497731319856889057614728830348949736855893972676722896110921370396424900430123397700847141819224609768526248879079479875722825464773910622962709022077371162044546308367946777630497243871038351108698545149981475083222184802066191674476667518481048236238864858556597310287554447186775071084811732435220338276265415902326362964698499377111019047219305629860450719094322986166351901306303464247123372693283303475829349577692338060846652631164711381846140569873556351817553115518811998754157587523000100885593230212186160528616311284495591706265017166272441760816704816976720688843415004128347253700278558256073813770375674033561929052702025793849114834214758237393808933749497525895840357993002637222595152341326245717180656909072202504002688355352766614469912732476398446605208705713845474762749068028733563895582538974941801597374462589322766889050151157454135833128781466448269436153807269485308262728439330315898142891241882321351582119949646026172411918321759156098938155327719484966273503361400744754014860463495672798836259786673320303938017807971326557605760162341123344106819108702121277743900300677996739079840621123540055752275316776922410502245586991510525277622322105278251911697706871108545262472924796354852205409154837790795339733076641395332508699961629672979068960656782262638278164755787409030981341779738546438814198074713738747023946397655266507633495562484356214191977319808651352293255788274685039031562207388189737796195931033912946923233394112370678060636400743847393837302080243575488165826241310569775012041901496202523041108794400791826502121652975112055901665470772186315054218810853450831180472615112296632878966720120285436961624677907737422851943860152203738999909485246733746776719517987547757893504428341834037352400537377047759083610607568517420798449549750358822224929023310867532277537108959707721174453353600732245659226112607536933027129536461224611424552755547649954638559378030504477834603341111723349714800661353129808956242059744575120928070846951759753458433400712385281876941804723555863979428851241126655942876592233741642555854854042994108318154334332814266250307263348786762086100031527420818927515766445828043173432501309472445712762067456022314133241511771130594711661960359048755588389076074647786642202266548014548871144461325319086922667971751929707152243145176727076361169564584981084218162375113838236356661611770523036499559470066829539209668288218784914288703792193818847993062131154822385150285728390972560351693255980034932204957938519797988468869688601451714539534505573006981505875118012073525652295574115807209464673026300278932552636159084684079009252536693057360862691379940466891822824713305106277636755759173219226979426102282071130181476104800101506102577557370257539728519551419792343529012874798391829475122489938002750118372361684318122238144978374941821167801921416578812599550665545304925354395339140268811996134266673841779916387102358629918968931389496574515570442425363905968829651459570492177198572953376038321607276441833612382439243444712243755757305650650069984672203790850808458682815461060978190484734522063848518200230727399536025162025691436253075302971920516196274626180802605724006572732743993858238532976113869602613666005483356888354324515621793736207016922557006474154488037188683977228714955205518018650467630603220185980876304827539806135778462541578705091685369612371027997659206909168078243886226070946285834549865829950965604730873557612818509285647823227183722484398084280445407518252812345619396716125568212608573969925798912893975245177736660346080837475312523676384371634523757928648916144711614347445124809853135496344991108838206282467703724504179431166785371864611713673948058593850162105653853197356890233881040476608886475210784825451609471672620771073589399421599768188870812258557614254902826955237176220729544195675683481040651416823642782737027271694825176921775713607841163119695173615756715378856133142105538705747085573499075910097628818632326200264436002290586341729911914298677771600434928566553984598823674798795233373648895952190858101764052239087126395674576541346650174340261930139386981188144077236014821050981263010960703583295792654064770625353954361542903397060419849223087635006486619365150956286391717465090812911356069814051928255033054790182383189779739073263725475447558365828248761770335760402853291259171942855679629673450037981978894275894702095397264558267086750687942957734200254716223024618280589704722857306140346087038924587301459048612987479823782022684874836233883882142470523976788692650968181322271267627598855656914765293006401327829975498855676735007268443022392106139196009094267760789232950923752817784211367268825289379248004922302879142594561024227910455534885944550643436409538309690781737148745332847978247876275806024627119701028341107298568673787888673946943078477562006870551282153339621997660759137330357316445134690050833774168496333921254230321837829279532175307846336915333879245825608415299498862657593361772437790810099836593263916322794370468205268919164864915155200377580635902634747395893646616531608179882338983873452349359467783016361059904515776315868104497100237065568632940947129412264300582675144873692429587592336189241325603952799284187242774140900236541779668203520001095573607174816235749042120261315977994096490922432940747553392358822848624597046919653339702967746520466392203748290201041842143576319524264781857742368403493971936872351779694772755371013925820969998033901966736378863709218685391611315646501045880539917140477300900887577792659684312621401002779961771118213485311594458734135259304308158781447991111035483985679761181250569217059133332501137744660206730558278855770907503957266439221082968886721632405899889660512341834557284856045299055328928872155444489840311838465437762461637423145421198574744701633843517020914761042315523665849832199946115890695169797890301965240341733575940515403150487320422671531511478566102229219330319850121403986766045047110791306806454510349242468199363518224147287653006174241379787114547377652714477973933996244499437296384587686488180363939972081116127619920799741760019841216462631963816769436063095268683663036989056980142491690834651292949961144484682941403639582226072394316789514361215173809731671610678269254418656865646044856130437511252332334332434457131938611029080074505909135255993751792259106519333832023420337634053191052318235074043665706498235824848226674384811055981088720899666823427030744488662531966145585542772130535000240601475666730516013140015846399478981366838857914483183177874760869927475294408358312413934908182300244967031831323296821969026677288290492893766110619947234526341754076314522239198392271102379015063355661924734399250853432341817262575670778505604393431820053002868563456886176954672979217258665342130243492029525512459622078325803587862217551490604516323003009406666307258306659159127906387266048807988728732716026095030213933604211034963855795400172551497170664653234890184744845251950004007767459483403761958495344498940339747627599197909937905385663910679238336481910002850141860832566474300010560438105115117684707860908714606239039568497525554132646212384180299799701165868068032760018922296196937210925226768788233365938953061954049316904842597870103659373430443691108941944161195107642178010184042767423837645340611679684395403387427719963804298139325453522844337601056690982465734005303925033041205256678896417158232028802866232920041302231141164980204423516191925536058606301514773802524691052136905752293836686729039784928857444037078187012339753820075337536850768368882565663882024139365849653141299256716762322324975408755563059024708691176353970114796454061088856381005688477598224071079563069596293003842578947265348892157932046420371447795211235968117425010692902539495036969384720016249841858410545437551359135867893237019627225966056414974266153323095903827323305337027939741937394559536213528689346415530685290830208410865982715681251491806256814918120217075077203996536977164065029005612096430116139461554737228525671004358512914133071337581848010385055400770628269160068886015766586936330735118664335486423228895490937700281503206142867098399145462293385401816988861021763852926293695797556245564539728099382565205745278602256095271137419909597772019382136087564103002144479251321383532095454634101256220424524513961889611692952780481503868424183570431540894325030464007090847504669525124261339861497966343327495783375715177465938938938240688977735231643171768587352997604127399103083827127813383278582092488775218093992179303172099572721843042175354050361596168273205756860352775691764779616536977771650476233683121374774602120419754373073171759299949217475738137794223765939910813013362355219851011224157094711242937060481001276296182875660264980699270495519489746622381212603053687363222074787554283538306224392705572365410374301366555345698136252232525128161135491894371986505642602396322716263991246052810681144670712075587316419432393663164493941716612097269934169211298993465932484760373497742210581744658182068902589866092211897014892369186192369855548619742249035445711412632099653315552768924657075993693644247005202155226027510899438921935107365291534132449502838780866643413392705626374170427379461731295572902901788033221772180637319877517869884239800825594623007131130053926430329052924973161267921768810899609335306430183481000127110600804251857309149309799924870361295967352578548547766326840133894857729071465878099570905171531689008047765451724110650112703526429394083009192554104090631809144706977801682375151106194404533709740264505900241020108267764503722467089022223393528158618266986858723328263725777740996097702794432323705755397768801578630285137220736641236911529145329642819647131666481930714417958399007191894507387377667425778984112779326822315488437629130239126281336215282601122302530813474071339584839552096462933311868226381570089452953265503559625739739971453743489928839611418379594317407188736142464480022510029525198913236927904349525198166237163691036084698554516926887893122917303077956542289156450447460817953435986917867347243706395605320901006941733544824554451677910351316898854652629586878835819958796898499711395894047813569830674989012816195955142756129821990337015354177533438361045031487598725553836787273641360679926508306461181758221259111614337687767403747071493224346972416277686699728252919551404436826798640476589069118530250932592089452894227531496196641951904791782415695945789934592687230237020783392644377765279284325196445785813261614539683889768944857431990242060479146806536775393309966611138242441455143925911199645869826844984216919075301722519900106009847201233025586475676665626043352406529300338565136705104060821986846016388116557965186589656098453788611408565924873165527659034863500648447844026419693458083619829394732135181043154215126459838928209781828945075642835594138595795107532334364988533791579635411675800060120145456919229099996761824381043350879383927154542589488015602129693606358990070377743978354183210750818294515386511658613879826073976307216898555171702290754663992319362665611519165625309814700464646970119396090173012417742030553661601589745057454402826922177868230173268412081641089932313757352614191182670099091677405855436190858401185966089352020089805356603865218623255205746131242978201111380902869431134076647073087292969806422583412992528358791653552886301354152575352169192783353930106232486816972611403853560260856397977744725879208590992043455628340848891209792341823695843779345736460295421680681745688424177677972128801894712721331490508967819921387851451617967592327477183091261026115995278763798327982028709414494633085569371961666884730106998264169635322245570414800875950556536370503449916593229670745218449761936674460100777179847347671899262154432176750951849505543643044727837330751534972282202964674257042866883295598403411610656786653910180877215754181645123068006228374511140011087026620218226355258374704906531650042480274545043470324384561063022890304959278581898784059061835089943825281137049968181563824800271735973936823316556575448727518844549584061169773862804404331865055304405756971325064834175596952792696623828210996079738350663103811622833098699274601659396617535755567514955978854366783011923328608523902712080705313296670298881538269375040244337249168332105826404055373085505541158196838195758697769995758123718212418287247107996399326135902118354031233490933007617991910574630863643519551198848871270910627716851441545283038921117071444885779931070128254734359549629542052826990090800675554130313963090579627673676136185596371900738082342769551906611670588743174713026284743715759975090718143348532286374098814405967361938452076899860962336712602182496548877391726181911637471643510933071921174782904678074397692770558402747960942916743617820173905735631719774060507704260689197811724368879672896424831396432432163685829251246147554622948139789311654971320305576508774064768516590116699568839870236307253445134294219406974684902832110605945835489138500196658424756005765662142482711817750738210816409259735245869705116669079600750617689707150526034736013129375220839999913617104711545990228233259765656834656785045189107051184744851800670752456789572961931977795843753743496831345559022476092797585648205685666480252188245169093641367603421240323144242286417274820091456505770438431227944813013495972082013104299543275999962907128506154411611043133248492400807045486819584045991791400752838910549403484794532533311236384532867662821474569677891405482747101042762973528093861745386494765132691112263042920382705379862552378662982294585149772186941128417882245809294227468141736159746123363261866293459889555972657337490181488484824746366147515694303916068585751499940078916992445817103266227210799401071838980069295501331149456188935853881050785485150680999374847529645983063357925344854599675440122684773717045417400907597202745637859851161810499963921887526192445141876294965911038179195180806269444465797743938801169036322214201213353800166054583958089071196370882935491561543585285232697061611443049514881928155555072111658899790899847429572746819900597643697648470347243506703811952655751933348410609891534132823188479322724985384231321082499107469881740089874905818332061542481690030472043097641376803389774176670750954998999982007240257055799287532739779668423112655059105535072992760925275496141675803453735670314755306075976576779854418488721181366944837085985757667071109661909577808115543661699189594110148560763019294943037749478169044294989014454417717600783457880221174857419213839691941158212764687440949535041176484099344812949036659901864784142792500238417577896011237612517173187276013214918641937034546127198963599798868566937733376053153978665573660552177032051933731324863450828208753698359730761455560130581497806872080955290072908957887726643053324933231420229125209371845649857702965652484553846462390701698727162604794491419801750338403785779974907682380353839331857363636191336059827738810689752167201189507155501928151207204099633375530676577506422737534307884142093957140451126129795050280429456705015443011093041354406865719440954207582974268514493068232918132075439119006951339654420853647931451797024186724716360684171381867561938344755616412154895686484984730751287480397409281666135754384873947581545082572306689800329184743970510803713772350506112487387342903727209297815528099951334579554172539692670015238595001446228781353561142378045178512705833289672503196694104087582682075341284716371982959373994952504334415650531699501648944799464290514436076268101381205718951149131415476546646466197445847696841892892580577073923863945334573563479048942475800688696980445221309274769808626564807311995143862144628792575043383508134449559179890700140334525763601896362453623135218850415141111559484979769232400554101191844075017461271772079320445975712502282210004195893873561599011161626656605383760203266737949696781224746256169256961067014439922185951925507848763033614457137019342704947294432628939154193937370943915607137609044536661473224972372090810814847886179559950215832271768608179634924973474812555407822258616265317278233477683629596157136765385560461203380736556012586461970231044236493318120814988282388806143173686835042825295243951529931025561651687478204195688208417889627755421841702328847247337286111967347380866947214934101165260590073680778162172716346584465248546307472477547012509941781186905098877997086431164542726545346520313173097328082606832263203688985222997323406444865633830010532588987314470253995779555489639941090740985171375087058202226612651463122427351316344087368930219304553168926732509388890703293115394248209416776219019090227365373035702699339016209524842328554476414052254822061531682221453743368273185443550827962989790365010241170207149908491313060551586621977942341936355616016330631043938132589037084960376769407853495982691246239679265281781118217967298532601444238677101490565517465723302905831063728023806009240244028407339748943733842366539497228109488997874192684513421263449534174688401171318110316008341377527352335082092243280147553028724976308422800777386385297509060825176773466156988518181322957820094046411230675983107623760141945412993378388064498355758267425691181470422080983553487896023885993911510177822636522178871692760664746545167347210104772712682037203993694418378083410228639847961953578264780048945761354082984415801588551640772545949552546331138980918790031092128517695134194467160813889517767596249375946953220453987106905140806391518942884301366062772634688603652691610716618335001146858762980072893626352796715114593098518020117158196448569659765810464076020619743835760891936560014986324275543068326862892331794881475280847712775872293061030534128740593990215292936075516819109521502858283419785436851829380294247151202656401023511274551462858176846744369527787537526723181847734221714909986924586257758900258773881292325728772418170416267792266723526384128969539427170165399372130053437848846664023993114084426101573635675342803519475499677311293965915259273991875500541713829393116293176548384876063446687016787127741091923992731149608131967135660454989933735117226227633642793097281668691226793715701900497414439802064303662512228863642090811117780512814309551667255838250438664986650209542363483029525542025438491372635054536631761294601394055494413485269574778792636270706086365016746560236430771385099528557173775684699225253475843446408145703686099593868798781164693704491836754262449315070827375879982747755889508975208544794853501010266517843793143718835403797642474902476166627969124426020937730701836400307852746571642500987800248001315213672310946638069835102020849045907330829950758214738870551130920991472571058119281423532343172965916436234983522566005594984275492150068736032578509738521430482485678664473560193811429888304310340309278044509451321906401715031767152492321203572539200735992441375223083306725230881288882120862834660687310621270870331451759160363662860880130537725831861986253461157669119569081249447437514445843172771113153192269931717969357390789853637830038467677276393440221276337784522288140071025228469135714011333071598665171357530884506453770846210172388684813854583239511038765773194494560601009897534688722900048927969969373473354850176433577107567036765359242864125024959392750238897191066777648327594248343225184341390434492740296310774951343087746270330398450830775149914208057687369316645443752646468424165176199900656707936373935789426988240718177555730585659555198173164533990102772022471105850173455617562562144857900634539546374374028633396532341146434941199012178862096344162210511031225983955267939719235799791975540174133645546250096349283187875726862093931757380252756456341150972305620365633684342444111845843192215362217459233600035657023437191430518429774212510686517552116106125275315809363893320311385827277245780536938827436616128571418489037393783982680966284636184674483648320129104636978354446208614752073118170850971201553592697581228663557653481585132116516750497845362946413039871889268686019139742885516645692843034629058385122967277669456211398448278480293131574985691181030707718182549926465079795612176854048820964800151695398148305400825502320484486567968900075292178196069950175870763740921103743198369123855252148668477271177884854415524501445429702064997676778725016113623057910948012962725013133374858533748093877106811072688958094855431256137151508533612357240894607187046229388494527198436403890763739800885176380033612404790979281412216956918692620039666773892471348616654036422875778899689050994132182044146629737332954972500977762038614215712479358771896068431225141580585155056001417716612997024993342920799975654837576863118130334853099894927623784023305696697109686472763520829254503511252781692627736775809995853804569951957340891465878309655624353304307851525941246945445440989635215884616223918494812551703659107342887578109791012303797844413861566380033335655046675285556622208888721737045837230364058800868167372874891349482207642842580692366285732494364192302188676052789885313261900420949727704611661898062866349162406542446061452018485472802704562885688571920611546551159140568799202212001983538667954202483734908274634674980607669747560516439160218069120915440396824677389083019867060785147666827403578487084390189359391300989966801739831793883405656678390287646211955429781082524210640058652046234444615718816012229520582767172422041541321429974422021460325276442047370591885493328563254207138482288508157518311217587679745025740927046305053533274574836838490222560561413083893617296457585882065715257533075228355354747533057395420563286452332043201727137453952855165420399389132018989530568996503807812828914401472224871035953976212228436916198620555364862751414191833127376979012601446762327533018672138244001634481950105032434258791592445599367772403295989952377242999371164228944987061318510691740908670641639322910420919149528761876841354875734051464173263454944762512725795706413473959955444913577669569173161427718880639557481260014073771707289203268701847095727537781126510368439109311829793437044397375167411065343938725252974647641666502578023546955353178691022771648630741705449260900706418224814187868963810214633235323390060748127586646281708762584143100109329130532217818202989985331642570147875168683712025115512735230753256847397225621180390831221707431973971371003961251639790032287246010164260516338916358457878605318927630699852876407598870215242939851460545821513809159195417502726215807304470011720049565923293186131295260145916997010538847627108605188785704616410153156488936165525304522034146741031851606035914810188159786809167539243561448152231496921018243264831542183075285852739322840873154909137617199400963682149865084049606300541501456215456020975215907100772393621572208371344395607886352782491014852074606943541840763049240776202355665487786786331790005096728473925434383633100249833371011453963614799120409370291564876204716382803076310745197039292819862516837822530875617413079355341611390804790802956980924396059404421792964578398670557073076595500131502354876909187124031961742197547330254863489383987344609795998990384494161295242679748423496318273742437582522283837408012259521354722117651516340535549693731520690083396229039445192571385969240796684731240797905335347614949379639624342343541658383509493024220657871917616546541806709028045134562674734215011740374927834549088022869205017036951032619668870704766081028733518002833230681127169760730802925311959143617450249042060957990227327522370180264860138956487348089658053184534170531288115364065324577415027190863092241093112305877991524825616123985969066562102319269188506187395764524838627038409212610705269695315902052810543324158648224115764726356921007473635553339196342951374816215642154351759184337070522075680722137401133960067561441918000395455659856547457267716555889347145510716463510755614275028196406489962448134429036387584518200429594812902213430315870696765790302248650479665432755667323629802655330178417601435845166946244603434993081616460843639067480084532862069268251804195401975896896590256294111716714155643018116812282217528699336859481458528342848359475786500560767065986657022605188338552194491764767502996163389237493171896159029814537841627862388838049592172477244808658380892983946136728947203333956471768171289952375850733234026946343802257109602975239817586774993190374021363532281220534005134914977391557106166293232451939043052361224943122155891884939690431039153483071248319844527352062428384858025781379983066076069208747100827790238304024247732336890156206618996350535630796615380251696640087716437596778252794223469948937365088727874491632266118380898606136257862219990209462110840244453513037992902106387732579016802221358164994059714105851016025683208219429996250226133814512267184361512698086870429275675768440108223143635787772104678260544961680966704020849734343953774757628291151098798699304237133205076178800113532752011603915741727159198713839495233275292496836000951582401402782696662338278769596811099896365102744253740721028444525914866149020967931841413252540389905968055247552652399819923643556076414965829268531539693485886571414227885757703506013117729855729239356969790529075340993699608593347626156614326064780777091712715897189468491923286364004010529497882337263723767884029861096144238704777269343741505612698975051311179639753240844226490410888796626230506868014649620741549869951701262093466085583962718942517184224282892276377766901472973960113136789944321053121525366776990898207740333354307023354692101383108676377316385169903064369222500051049244043255756113009469773514361131586416775991416164022282102920762643310749250696815088315493242578885088232451425133127231135486691218072246399940415472634614347822120193904189553185567576449967252703365042727023954670467239818218039849481961754194182241944649361933819567476097597431309932497085564524356717706341791416381294263465155601616280447200835419226038125729752419550798504385595893004892708000248306313630845533369621223286137866736696351968128919327477170795714763268370626926283483046807518704630841351531898813639778163183090151962867168658171951856535720356570793187727790372159246625588281405310802768231277454864624489992297588436864258485668304447075412540601242360907050050444769063477382207522045447184798489310927352383170929121737967358278002981600104393006995181823016151635916466316680043032879534377140830662747549649175026628876355301749598879050034010721020375676048124098432708429326856034592895277465223007721812385857162231388872219718310760364456047635036896188407441499047760705989397993382406866559917461838600866178102288647267331251611630899200610635256434998014734910851448158923738047033245642507801253978501052600322676753477611108600104941150005379009167219208374663620823599518472498721332165761948788903025639543258556827103290611177446527473362367918306820916698366321803114548683643010334675533605676182770140921263260548688598967267879981995900159698980338776569657571859259825089123566722339204427560785555965663636688399045777530950815819573225981254628224510602567492646485417789057692052775645443851639999327872829582370228550302032995362134095827682477956898589709534594028140480276075852847047217619477817168553357601158352106394055631495431946672055571783050036068245266162206834495003575714156819907884965863180159153871383512446839665702157164710499426604861451066236997821567433727606174316111912513880296155356110211023295279641236220690988912453735385417349220362953310975967415339292422549518295128453833012493512325904525067781306651221255869343662496401294257896725099250489474130164301079541394685643928203865006952649165543657206464289063835858344058890790726983751171346834827647936688903218118764711364630101132490246682679284608452070235810363390285085730625219464900464481839061305129206381564955893319696177063932826502044802779185504114819575404673400691948298785512489100743712073307371351907403804315508124136344729416351953675566621271027037046438678222910451862644730281230414459503072613340304753648121182334621440066847314718432356599508710333195317918956204739080307880400486205038020533395259501855801985199651299798297969984958180434666695041984693883905290611681497794034453430582923986343170016729833380470175405925500866725679362314517124021890828986551001605678300352577853608466753832587875249241107815033491468172311647578282733582215956471787066157241262880551987733950434641711696651710725548442517936703904081646123684669525396017923167298216632106500963126460614188179226741331513092222184975188744127637874180610386242494788262642486998101929860245020227845399477196534840082210596711937435057797532246463844965254976536847806540876013905562753908730843757635642518041481573212970461324400033880349994230061483525434509679304956509109119259534299506777667133100342896124794677434440855244766364543223317553405836755126001342985825111083804757757681557208252352323161637701412704883823029876399731453970274914171489843765977082622111087897040182284355759101977245739041054350219666109854101159201213972589001933345906836793494832259965075230501066559004460331226961160463377051211134647194944405771533450558697132383900388158403655347595159280350989617198720498927449366254751735684387763816030868615160637013597092192662380396592025356280134552604110593873216672894870013091778703194183913025690014585730705828322261093185280802291954341297278832701851188320842513606423828967336290267371912197670337479698635578230145395298964442916143089959211005945740761421774919449424354186532302607587353843628989776180759605111999426944133283533406586748583865942668722733941468769324352882665251607114989853912673665178064241708676743719581317284365893239180455174651783844557248104062919033603228414099393505749037181320270445357416485332538114025490822344700045900762707795292184538427652497557171393575014040664820603020082124864258076250809305785420594596627105344747266653344228921365568023487278843758731017102945440680971722203023662158472548209149787464638160200844989259606133047824625164181746576552287665498296975647025295974148844969214675018179097207580835611648055731292365882432062093310757293343085265440453359901563181186726229943011538165009478049392547091366576255903922065115217594547080825214589887062800464806259832677896234087955472240993872708540991260076207145875734727396978159039108434531129070437364461674748677856042553002355075081375239414651636914692052842790714746345975624218023018223408627581641424440635794684928732807802001617482361243097239653653084374776646210272896840825393572882719632056317934871434517039951637075629262154252320654195481603962462818763542105593965628997039797168732184227483839911546533374046635087136695075647557755368916253281452869120784316796962618511487886306283149515177666019273611390504353223976148848782193461296271784319055261976546703337949423908982710885006031456587215327919162341624112862063234752830878638692111295842497754402877589804997162024191423011836932245383953293150718343537292373066318250748562796523697425314675820560442866763718257012323204070324258389632455418654878555755465852103677914787811533296038779042266531707259023082294745842439410666537911900419773851916145757996303172442859391400996762121216546987735826326221719539875109149780588773210424454027756328720722977206208137257438982087659201989730818463390309038927264312136513413041943050722367834469656472807563706525981433709981608062691101973275588051503648368329050004221239335870464154265447136352812428833960479662713942402598457618721200895209216714899995183798750914587462564790654061785759602752836799227722874131136625858361848825017096059977995176497017111394686635283117746312168714576426744956302974057646218898490503757218983046705985314336200040585828389248414618190365316124744630055846052249276706994988598526817635838527235063753748427567503030624289229387184676362256081398551328410096232017514676894285663394995638533885928409265452723901580116222847704187676706720960699173168311271431069845649996305552619298060192168812452247384688558011740479857199267683318794198294338833315128599613144615815380723953771240102099897612437074594863080595463775020659590017649914553505021937371792952204051154311061135744903330531663922923613739611747462092098795644131159541399742220826268145511411954925681629135914333514509090686690240178141360663693196661371625593439565455284604820370263740800746250843292638020918008851533160525796150062650072152063816587683687269120302955837207860912094746603350764554219873819233579162653167887211683169160323216397683752078066836901002175850653902028901329743534309774894442702147017876811772477314940253531286069669261224603977627087718094837539235721671906316284338648554869353332833840584816570280293134069735115193037063544519362513118005165329991449624520619396350818367438396737654360991339774315468990584516730002227079032409705519918472301787779160154178447083128136200071803395364756488248644245912872699021495973132481361418472970223061802300118638852859519076702663959516071058405644588910948780294899217531671693799380595102353362129617220292549441640855173633219077720622661139728100201751146304564369970573922414116734673352447668683806260846406864585233768306943315845490572330126106248363391225916570178237303986349458223126046391916721955446654122308263119481705287760238215921890938471886802073348809904441861226832712961207468007918047641031435727896002477480291384064651961681347571980043745802446410896356655866737276446840817656227598727331181713020194449374630256766474621512160060736105174394964350683832152285142422865784378319308795911869563493193751563438913530647954323505303276927307101408142734600266480282613568439618889806429962171022900741302587518894797966149382736780887451158796893923646563115235111588568990189713546575061935562894137726114021792662850152864167956553478422134287892643644285762636717977687513611842038474675602061271719901443528705106354486680848058239483318092363298451024359653547166016896310032703980425727205069032991334393622797105295695387067277733015051090384976271282830284057885582993309026200807251854308978324146837585388052729823638395520057233648051389735736154719111008591910737923736675045593488727682316815958944684743176022108011465832285772545243075130608209593450550612037187728362867420937884502747221944763044406350544296016852058713655716590064633529484150652943574374468189112894193641283200081841021974950738121063010468443360349898234655316530200070295810000970354773825342393877621958809350470866029168830608068880168513560422733751300564250620194116237423571935921166123469540044633840734635441937318538258177507712924667375122604973652293069323252204963019139207534118289138527903395392678341430863382536909005042920915831736542080594205375171109635228350737758247078824835427032937941486276855876113361178743640803426311589400510017855059704062624473505249879892151800915946489569193323789372416996344942628327436693625711317092376362648108117400067770391632612942021563214493964230776148695433673201747648809440463930695803199470484330104750869583637886360371133315662131129391250438045947998324714443151618780785403814480017485001320105648191362266842477738660294995946414132791631400401948004023478093924018095065321423297523967114171748740670096136317731621371298539479029077679278774273849893157529629620805316787273711431058869109862882715621036716644126737926952488095278158824198032320039641318652725272055241100554206035544103739244918589914002203758848245085046342742296297528186072202187421240731175718492889652613288077570414165353280189641169143811079328604482200363886917202767836926168246018182357269984899106353342419807773331809137907130081717011297515802266833122922317649300151774905662244952228251961795612261982947982052758334465394514452416331129896054868807496270270410604617750959624305136129648919472440522502040687296398208022138475738677992992567563008423157449926284729852320836174732692344345587705785646752378905985576035272983156470992977390501096441667121035339674011524467559053024279898545459069161353816657852262272056649905565078197110558331986233947194081126077263541366479623631835049094215777450280343343413260502020872696405170837945889629257370271422362873632242162819210564323637955288241702911991184078323419824732975512955884154164676004342613173167699573086994117641266411745125865083278494408653186684301746093149458463428557599380851898338123715620519202590192539038239915535107790748509585463736640498722840686605584953524322351903706931386747178055233261284674942894383339167636210283588584309717694968426414924091290958535458411227086231414505249588112803773790764774310629058659884402882276513295934338418515615922697135226244431072435054628483502191241505881945839842920952965200658712876375611995979791181900020013440083424153642330028532493724932213511918709882563213117663521822265769459558683709201114728045704219308202623375729851437848148200318210474591646651430391493703948606448123317784757250585492592339631668438971581396972052958370756915682844893695505257323868476615036984077894845620849719592645992055220968526282556010398708242650266560769714875760684220767067056017516089535839048728043082418737753657103880175732403726307938094503812458465701186029148789142180155986200836381032153439798509977229181840875620476599115793372973457828439988576874637618853749733948267736852000249835651943031564305436641751787866366964736473369216201955664258922058680247792489523675049349032676013980465777954144898334834833102126853481234679821712110665852299811566929939544202491171818133033574806917204876993890381641438692564489171445572635825779240277533630451829621406958817250150390890888801469420581359231871187709588269720246217603287106285852505429636335951979580948763463726403543597264734316231987980855635910140521100874328864081757156961837135776234388581742226040917422232032586192314823259040913120635526318579736280144728784207874023106208796559350385211355898431574603117439164338744250719976055477971639914748589680001280573355463285157711751243830738887585919327416885788987860942632719509334151288418670129994429771966039492599980957641938258391926254857500683466743237102149838263442514997375752985811867020558046821475896907012125796807458345688012064655030516246904196862319324716612818376151378518788130171454577077005810426708378984345712658825772793601752417902212534432326144411690361297956766798493963438260848762860554475293736206424584411562057708295467970748046474615320844463843325568555805328370142676031192243465389100494078091710027240551230402954381611048934286682007716556253980197448090406417086672793565780658723851594784626804920554236898761018995570300282151881611814455507953308286671009028559349934292882920751231714349228274509362605555194857779017598235845241509020319799384198017555849568892628018695647904510530647553433506186456670640133462628462967913248932291512172355796899921746575936647150095923193212658070535842935005861185480121251373859428219168804099282362565563337735943896671024348873019136082770447299883972792277178341903802327766651535183889420849355081508508796258889644988934296483787454633573257878788628020559173607144680310267943055241068385994034762610040974117810912735942169052153289874475428259582506259478086555764763969129108494111600279210438332359834820577046837045866043823828986258565324260718368561069693373168986356405789495023609492476142934799327893611066596734366853655493062571975400143625205336562973018871059890731834520489132229826383798738762416332651005525215989689069162061510650814712066749083325067159492474455814094737896884819992435163756568388255718167831883353387881173102831649431988548620095717434425453229531111241238928430753102041100733901915461770392611045521836823620086694567378077758418085520278437313792628207957843306227520355770584419208470806698917658765358155706441970881945369668318911520096669455398707740363554617094617519787698538070784612778634315615462540721308195165844957407055760153278823881096991732353558845063127996243975374889898504588533273882387520756023595611116261528179955788777119200174377151040331339482482232281371559487772149902842735656482612960329539887877837368160582428258267561304934831497934044755783393296531431522994436048275051045127197460949601880542876797347717553420594539306659543457724183951591740431807323588549021060331046939541786942063084764264911438995096947618581383821138078376113081231646274894143238292081794686819063063202113885098175973383671048011951026505737933523481235451058260875653234199723956844059830738775985795334866573756434245655991521911147883246656095732979753313129394565887075898635229373018677997419084588188653489419773568555467270051358770797894276073349782217831902778762497015330964596080319812125976706782004619043403394449713998242781944525486651662203285111773134890447611350631458252143956555086840965763923832869138828701008491017464892634302508266320846370134599918052605056726620095254353482983125500614065643380034891602775056462506047659760766742508749982541715180702533633566849938089153238565808279226778904605037601225785778500118090748096474769227361243241964953918840258968119787555633667337497727031954250033661417124900215473284373234115631294671890171919188669363289298356905520784507903392353395082657088548800420863970472056140627680172428574228104557532841734788194537403366048393133196422460187329860543946473775132708786770958204176499399631481280965968205739297647998901640082079712462082760918428901785921009792318079007195723745862081347020507320632075065872324527337811116548287464643207366802748713363991341517194802930209340197741100498275117532173693501182897859930666123724545021204238439814532105772145565989557431410673386152420269388632216844651875587278920618473082419823272277253190147089660248899028221296063822910342982832707889025822888445633271157975980522683170238895533038871120951665881505628326882579553439521721705600702769528719093235668253319923578118278470203420402405089907672689185847676797778059744115884700357948827032340807686760873400626184636343056337642200762536001502288793376838729756535594231631395245680606402270914914853773933140228960969627550574542326987270030581520172742883517978509128392984018395884826339867083888907861307153340821714272551122361962164062703136612434809309321242466270941125758297247111512517374766677365247423741815076932868757031113439152435773524269824615735876277302909042330118565964315660681763426291178756067152801153571687341363178006750684810685376181980315466827043038560470711843587948022740338210421948532270187853919273812750515162983539958983796676480845266826857162633466414949958156277750788780916992376704429057550714932503086122222809966430485388909352161587015666368578860249418709897068471563666699408066767389590184214755626213303324419593957443737015675164155723749239894366726407743478350708818905013877608824976052247208938479144938094980901560427317313999142279839334517997741609816737615135765268216408347927944114619902300889815151251026117691933192077628427387060624334407350226043848140324835748109671170876776989190460642284541433810371474636835210151370308919425400733295818419483092787068363940172114233057698709450814956303113272172420876999364889363966416819626338652313659697383950511237805879005862775809110707086714227253949023552808892241540417051603356695346187429303638207678403028887387911743516271097438594823207361411660576917091421306499354258239921471422025844544190557919054582354781580236178891733767322434834794244867174546574105893120722176361856842038141378086448575371991439693793916918940339221051527797463081131771606597057205627898633278736696660065516312120525629196876028858244081763297123972281421687395070225622203869629293849254282135960635297456707548229712334054291945139652287128839099387274935101457680835781970473377545367705459614434864525258646037490556965476135001630348483954180471495366976121495301274520201778363880990977553906013557714182033662186974597283174213947304501407777529655648134877465651607017530979753067869530599200664864728115445769936784273627718605723317733828549888796558184445450858040005782861949705418808235751193707549614100432167046402832479467060263067838117732248808894033316667468648127679152408599325220401509795785289735213889475384615444565004160006161373576825129320823566053957310292393880992632757450319799853997518566648980715839874673710901481602639645428687465528355386188098831342995697181972468519292753905207944403212595680169264227802892467719870763570904568683286262952313962314599619197543138077633325182808140664159501555512554857909352685431819597125456903787350669034574124255426567292111519414774161377836104183162491577363608348382874906550340140441224806684523434813935710832035216412772254464196273509651859373770061729183719533920733820652589498860285822942637906391077809705095271927527699863197980340309726292917477289695276269540597665640262251753568772283813591280091650230382509899566567545098366303367773820505591774100247398035220664830444390508821938762628370843325931538432733678858367075993755670239844232926094213394526200083970114093137159685250721509059977950896367347526793459945827483880057417757423236937109842405529433650499357856237549050319227133754307603695356149082798164136512725556673912777135400875802343360733371433707742220654369518676289547591318525207091515347418870300152545588256167460003231724988989587021658682523027387980812928566930264874336392392976610609053148819040475429660956192411498007642853420177883356804116714353316901103081479080177905212393260428459997280096576998719315248734313955815643361080524237681691390493168037595241671216664003604625064605436809248521255528494904632196642015629085135087095657233884346356332903095237675687515685980160964492958594063273571580830739421981919665219960595077475617015394371391486256539675252146882765024124242936379913223682878328661174832401121195699180510019099829743809834936040218062225632063208124445929406528869765916196059248245580143003393280507949478447003790407339505055045573698968913011142084642540444461784643341179222240953531271152360199800576181980855565143093913668723905195892105893842069916641318725591035812076516579098175337488649869168615813572995451588043272645137712161663717905697783008316374523263304444994719337501019886984115631352383094532790612874533698585299831275022903686556221188753688089484077340364818030426241919372990875187093105755011670963548720919428720299402515925399229694267753537854188413721595013401390321754619045079177227455414052741243245669175971640370030293297880086151454717315641989321710035029076007020501176360475759418168070220616104621042292303145503027755842229087342336649958140277328465139853705531062880893327955194655941270337422251154346193193094627263559473208733805997909193392137570744168166920431067775052449642391022034415203405142914179791666268289209012201316704889941320604729957540116643887807293681530445023648634004701694929632683409993383668276366619159413955350319217514397719308318519289988001093369428057254234502424441122751213488735705076909783822120324446479856005259489408384494719870244231377171291264421023685000370246654053975142838087118006790081903738456731182230586309381160705514684788960672341931741456069289033500722010056105682600064220597562016005644025715267739155431217611807928312533312164827947979554523780053862393587611700547905820976912651923873452230695905756142763757070722404402783992063735140407343691661342338700380151088820860793345799213923257349874532275501764447419619621732142781006170702793990150377402932900928333493785577399028049733085453524078574622365851153529641150441724683033208229361784186347831989999515163441483799252249897413404309622873566828959742889931608004007488348129647707710609164576071219077568205219046448986655843154241272691760869733375142435012209709812650555375408311124123552737766771475850732585431636318911858118853434119139420397652000951834552951608444244550390207367719828344182880899377474028238973012284510242639090401664413559423111823769677085164080278547730076941747802037943449403734632037586408687469664409710894136675081503246377680155073096876478362765338241697294471692426161471122403901826494449508135544891650189088566563606659440492557621293752779110243625486080318996629449721800455955191036036927013225222506906890693546154845927853787454348385085509025640326002744846184186040051910513576126248160824699547002041813732196064795855415799593735152900448754432651511736186362119605563782791556691895620096160043924230017954060674880215215288129014324711209054256596800766630152810960081246382614019406604615532650514280949673476484193884931801083413622779695692345779880383776151254613018718229230044345206442136660487710894064107665061460366548618723937687953616461444043311032670160469662068609595417608446672418149085976970265366187198704641492276820381376640413111103530030688186502002461678685733258289129966083305920067496746422655794737361311106063480607644954524715993481734825268974857985189459555532437332395602196612039943053549626878948363165518009646337083993320958541590456465907216670564712927160781764401410002882009890508871669836721907908553937742384766335251279282988065977492430534107146336228296647640040677200090455040651974895494692724026466100890239906032460512280942315503659034486965615761582673087383382251581050874881781150136556774425785354610414314725288409678751600037455536864081368340391607099513732344679112798621456600216876627716455521581116527315494347213328484339160943261551359708676313066779877284047893327585000653690585706149685698884480858513790346968878005157235497309852965293092971665237095818001129539270239995721920070781049187515232089699410152226444519078331571215154282891038304372910838564097576560261208371084812552150579271436093754007764798310079454508456594829012246127219682495738561958217681041782259197870690238561785071638171431661093483741335802807780982398183583752419799409998209316583003381165327686353156599962979204791071183134379795357896887337373222068209973958957629853638273235697868723633380966854652741408597289579901508888655232995917455348723221150969511391503888961146524870002262638334873911256071976159189818493075549699215646498024373979174350740130049212401662954578688039919115511271706416345510723139897281169073259955380869140675667648705731462255037307759374836067064030723836645102140138985864447479052191799013644728363508605379102022643813707315098022095060829767151958976433065840545427856618629691765675465980206178667101563432309728711275127147517333343083236997026720415160165775983355912962755060412383902950741891217667173909394343422739118515861311252858770675858347877131588469530396335040488838242736678520518443539630788986104607533889441225602545764596790799886266741354692592340856665841563488665601106946500391169347060323290308785162579729899042072391839020763081434179955529440684365359572624609747020578279128305181976332915251757751018629225256441674438603035421779247143577213169605147358782821140616019784001829329783295948478261902176274832213574133177870669044150584515065109047271261152942844786800551446060658674232803524845830786699626298957141608685279408303566765307275605622570377387017982305114858831916447947196184436212611836274365247742571436079676852739886327000850661251102533930639549300459487187134376470262625775034546978850199476968485344945338910801979211938075849803535919791243296368719782140286598210944205131679168457314870064542691093174251432346094385487904869758096416777639338433872263430299177960194673367208756693706329862682083709300927448587325740402525570488133399750515134868009962794318795348761403727447603424082184317415778939911219603867368967542313729790447500819763503905743327510978610265424357834011599894988294645507607668556139404384422512895269882334893164792323695881387100488622664773171858234822774730711581824976915644592020453678420350378298227831051680389786376582790005032009089629088486145743030375016412914030516049762954053205051037495657276354213886653377194154442283670983577720961751851888873277593553570451861927464779405186413670815265969778196019407927611661038306108296553945650724078959103530980552641490080530894817565310326837196819206326697573645785376398973558435750401733252049532958478361558345858866183331800948632070707286963255388793088590898548542258305469174520244244514431058380199751185299917866078963392380499633373974616349373222534213844500981630256505481797369458132176358610553822988580632262146727937614692570200160699907598124143143604526075733729438608725369738676034054749472620106314603974880779211142101552563899971124862659457163483234623127027422531426512518961369502470399753431746281669011959235755050595346513191955118916022430405607563400941484319091090778631136321511093085786627108662669472465145195286508020597104401027804771588578093748294584213573231194943045924600007810324843335587302352321901929362540087929271792411922495447111263094884872576165366295967845687654307461703689135850835970523981606872771897668105170986548979976040693130280324977416599548982278246843865455992151234919018566605477727004738753126400406848646957995206669139152472816752440401006464882998150210039353706305817209686297893941560338751834762003373848533744077842047108133449709826363560805321708974319230529857789667230715983524211173819419686669095068847896424203351661632759063328218101944836512779509747762591010557899267625598842238022800240835764453459703438323069456357562389529305484922329557324837210721780312758029831778582431342273409004933582356696505475091566520624910973188911415360087879799811486649821360930567681578519858179519866061704413282942764057547541487326889222050219989754307246038164098441836267201746443866930765136788614775596160199217747175414318085485896990965690344507420527996012352306835931744707848081133883547610737430014732347087787422501815923509113448699261627391610283831937845065443269389432676040180816621961174102699816829119899727865055378307983840575902234979895034092207178487179618440042533602751322778133942257141368380774077351736847947334884048784722389032489247544659054548888686828417502982340702739093984188557646026400510060295012613173941494529830944540300361648090771195658549009104382949410295947796364344363758322718833102480610313026598977384897566529422473787732935565859982358770800603367249007014994418531576904807425833717448154640232000591784548754121817106782196015013953687684673837566688609996469026798883631014779559748465426626812673552683371346412154944140541568329668462723248521395493270173115572927475845455385587397864125520378277513470704891831432332358175447208231532330116241935761622546990472063959965152376695926436697137706535630904093462735283898001068487885631533419375730654982057675621554241037023091926690920903223781608337812742830514591314742787025501962981046500208281596368266929044349574885260872537276097810366044594675914952847352165450958417668736332197491633351882773124590799528422078579320370097681830677805627325346755959582434650873839385679195149923179167692003242825726327058410560083986004375136271998832690512905271093082052954022825557888752368487012874975489454651755263469265320833015749098690567775434053385589142780519751995978569638399595747782663058499848051258601636421887621533480794648143456760626405048848573199244789630482208611065238681544298811793073259001931154343909087408315260239249299567840042946012327905097922994927759987292672726314286511903897404249591755666870287793786314880228160805448449233166371210595109375815090247696737882719308869577176743979802629766368289656615292615371202924597056463379328549813824910486732426238347217621334813834807109958708897231371868489865936985327537758075669831014612705513248397425329624194019955035747112987607636167144076802006056162655246669580496893151602053017560438913334673251309189702881578776191772838482376533549535466707509415301929077485822443548856793545002085940502439263969049037928276076995709161368445687740030030578607108998105085978849421455946593184141636764698255146446547806602967037772244907173585048773970464038525941044019611265242646686077288747692886468078812264852511374741673574809315508438599028518485063421792496430319111343241904556673729628217013854364185809003336798577170124607700614632336112993301491166978185225333286697604592837736727606373602324833582662614561399982758350627832366324435167470686832306019722573310866028543137014228079362952537530807930256555964969346052446830510280823437414823838688731533532052456813604756395310101541814110794529490152057473690824866183047627106325720565088093372268776195003190670046648740155624596595029768961611113997912672131613999917854683069242055058128799077399412840373212893221133511549245274477953818224805178650039310968539039434793982715620949486382685575655228878116398198558749000136506401555127875133119201205364839568153087667152474175887240281257246076377608248670734953694514272116960548803332230500499156359814878273559701482976251987701766833760690474562710074063785648207090189540274342247138528186633201121159214558771498360856631252800382946453162524728213886912758190234860560316094691179595027257894709158114117654824223991358750369499448651702332284845651426047782955095350397066696495260757927002746457218917932995897521192230163492012103329612908615493213393707078123359948009836397748464577171873002629818848745101452405492401117178664080815568278302890369928713899144866300548485875147726817076792971209902460735429090847029129733232607568756841853301297551536782809576880057956264902350309142057173605555059599019270181460194859102935539982581185561784700094860535662471733759493815150245135559729530680854992771903251684194251160832899793633027363642355538108360341899426683772762499184529271329572753681762449459810753619893409871314327399180607018130067748549810639640588822797899316296498907281648256045822286388477165664693277970263204678204717518945817445743831296571552896163870465820635933123907754683759614580479773454096019296211177078068785111849176599507391093613534105426706172763282313395201015736471586259385018193982158860842312417413233221555731527980166515015700241574457544920737888340381402301449694726104436565338271551856228818594382112410868113155888789988136642857899224566031658967030411011274440412725480188862911746279609449741885859979030007260159144917266491805881613176895850313514556401765986446657249600996578176343313247171837788065826309284490378272482791692193924979119171158019251799933010135160006315996812312233424697058813717521397035263470742055157009493365348047864886082430477269247161878453332812515872297228525977999836765944728801954310980435092774971145841619149425300686138994799727833281218511597604117547208264364436594831159794242128169698088857772952685141746671133258796214982052850624985155250256583019383736823605798154431187159718599235271589986468181215827748336401616765787628724067269025857203118635274976859160370844867334188921130891645940995831947302160573445201432631391249557974605734912261886669306706596833229014107999468228116635731545934095520215102945376331787519218086726541418908921281518483169570800082929554567215480546777102476669692534016107346368317887254659395693746669550964875696590757430138058543134819208696711176571897458163257485966308448465103231520799473762118597199085956212275135751053860365635288587634838795356987796595457603569508333356379142079367681514764248653938142493620825744200406257498228560641564957355534576058438422008883683671844466623571926788354743988807190951042040865125642947165556494254983231048181764783909893166297943670932166463842357302203626956112746818780801172251019953593892742728585847818796614653378625385571590484918840345000633167918295624153137658107424996900987906091459671926579993656590035236310013441629626447507914188304823927813500560951602846449944969902234539053742150837521214649069178951553906147488703952382804444922853220414012471367756028920150359064833267222710166122498426985556080924959885166486028509305160487057102105487949601347018291950531839867352682890583678066142246676255946241240401020676094118326149377570211992879960144473851163695493757208448155461411360037280376685788968834602707662979579708780710883065048858734842165366382031104811493879794042877217342771085435979243902245591794437416809086176020713615143706111171343760579599350220849732203323776014128593011696805038006066965908947220475576066681129413259195979700580057837658700866751887889415287846182130870120811722619954714891843152376638760039050372001443941763824283546681828046489746296285089657277350231618503152809398884964696901189856505753273610445737813819456270061474883716333767258794866568702447966223690660722954433922437789629521558877119828874050857349145901827224637823212989648263153034502558614527849888516069703303598392713699661226941967925204645863223561152288259394008129747016357084219534102218227550898551857791412271963021227761123058444966922813929293758292227634337024010876100182802830400797361516801655779161959483902441857503771888261150247074315096553981957833359431653553351493210364794153051263300410186104630093574449050202715207418087858134594818906151926331513928804592591022548792051061413154179599132879840767023985019624706689521300269869727342061058958094759320289736080280621525636394207455820419040062808851618603128246832875283541842929159101838117019537287817322455658651549074444256653775584991016702246526096558931413970136167661883846932386208838296611484222537107391952449883508706674445744901112574128649566051491061662923145261699516110892279044892854181030041283923779458997758835097502432036844345405119062708563546683080485433189342018561577034440344080207944998478710116675365009650500119191325636217550614426293887409789363977661809502238382877767833412891097272650574996989324507578372380435401844844753864819448150444232476603864374681546540803817688919935503086326476295950258108986143183658553409715420018908925720452961243686136738516092446040213132256686438323842838518468840497175011787254100984155002165947993633779914816732247992688453278177660365879127432141897425233295586893544116055850784537415436925399634739175278358235792553121279084671900416367241466752542633165929712687593269453712311773693215430433322984353140511062082836216514961782464097778350723961079122124700367793617177174320699112618567848937950766346691620241889665014506973559582772061988398398227461052181953754729388063461132442164697236688185072017968365733741092738739202762376648769024682512567517105039423287641046901765392869283276681919090985417737051791967646608746932522181619981290318653024383307433410738347457568530881271115840991066062321345519922156300222633356455770863078093453830502314224790193744028405621503141795345939635331347928663596531853863488990902274313642934153970354657027520405366349707420767737098520678479279393434213638949216978580741148557233454875102303307848152185674024678667737501068044819258463916517440922733361922253739704757951288403195242302582738220314617403181653944861051042616060553342618718200195624856020975512876866236406457738058805554433127599697547981517157182192553850881323090274997040312852827619616358712893719077527926509770951132804153023173739351853317185894392683074807808686485924883031548070004768289847245022490025854090877955875258912219805406527034500078038277315432274134520727519235963842673647988816218476814279178797855214778884840948316504248419299441157843490499696820973022855655878424352795239856671243375195602384507816505687931868647235177037705992232250425847909068721000990841496336781073244967393431228782635107913817459147466380777256611177749362646928815736405519602831817625669058506367298445437647608600069366244242985622346437156070151771780034594213282361351422086742150125678511462821399943599200648606225182755791282590817777420236364714608692201669043156492674757711414847846328428286773282756553041364985910899375966866834119650828397635527979560447335645741880033424475592906299735279799541189391137785317620860136996973201318806607171068883803138521835460747898217625980652195101439231274172565010979504968236991361053438627473068296866800043253513722025258206054346666410088279747224028466885991731958566468444629201536761554960606236073539138191544402561812226651314033521663754539221979277707430182164419197985526268376488387570147589434126574695038225191030297640293924455248451732257742701535162105292013269541267622267175094991093775303416063595627999973216362927404491471067897516232683314880544120068883094543191543352429064082207021674009174788033406744222680087502359869505462348219894157320817168503143460781506302084597411822132100596834780041959261613360116745519177089097312269579613341305737989784031101706321847085776740227241258692171330523038441218193815862368864311957935924398528291147797695497607083706936186181684174126954676585075744622155538819085177387212648720416474753261311061686423007206615506226887752753709214687204150833211795050808911288402744201393322670838527281471340214827217718610125289951381595511142309587211149475670691661714445358417416353947580196181753647091449748998192687454955007303624795558078713321036957496578163441614743669793907752723394552163907141155590710903341331816420481522322226460944687060601501840904990644001324875411446686998069349883280760714024421150213258872059222291972209842864069423972664698806134039729032204732374543959685794245913513812504416265631205810560140637453036333055663490747394455609348606112370872697314847333145520932117343931739113516492695467492711172256931009687848081943014937943468200708907099125329376722682620699580541033356255085700512411373780084039817582276123435696458628983790707479996617127486613485167025594710925506406638943803071840980975518803137747274641731047777022373146868235681303584073891252078102803834007148322141192872631873960971949761730608818274186443002070524351533800092784929628507973440986842855104791122975229655098354671095583970810854199111630109830596259939096520335478205086726695408852456908568443324724771653931074836525310008371656176851561454775033011302694287351940181028113516209884310157663516367627202315469757119499847524541720019931147618357778942361535616054605253522704588191640510381665655056505346920996716652025374544470481522277359930907853604698691998355120911090880351463768583352671777706885168354362437565005169038870290244549423553221160514574988469750604792107463232768192445460735254178737741083426726407995596587120566929101495904219161963540645177469134801321723334737894453170643983901888758465609523543172343107770591090298358098290857617721884954068349563975622711197655812990241150646029005188969596155133074332263336896509510713592980612130245554466719937810777016138666768975199554684747307718295894446763918179136579469273085297262824003700863311765259580523144873097758398365653058531049326839318755969158928299422898159683430977067599186068942929346827185620259563654011178502703037075355900406868718239559733047482687653265380738409892172486642213600848216575365838235464247079925627279478416221762962170013967307512447837676021801247219990767601153407153533913010092998376226306754904332152113424462681317177777778052490399713203425602577875077037917823876846793370050642880932915928900568114905139368315824082886107147309382941583050478902557764490197697858555954998032815821300215716245143280106641367606489077550179263384547832532755063350640024794633655683253106627891735607153893189691521600950939355499087089825939860806439704783322974942415376576919964591227493706741509679739947371279382895445171675930947622512428110839395337148814947190495761697167976951845234707694769370921508800964273199022867415426881290357477504730247141660830995878856399556939625693257261726201623536780816005470739064935194052646704833336325886903182017898726601168459745907134693213308440910002302422314568096375460614630500069158906918293624949577286084010617187686418013335323250950534023401948980092911323071420175976601815895535023693564520926676690150459043972469202771237367672555439573723925113172885391915361460833136371884266671143193187485873159276636166271171982541657361248394288680037451125019208363990598747000536098853348488426259115797866218294549443061715546852361686089959277149291609378535745306080576893881021954971400940554315973094304597782256903748120422980981144521422120066273871362025712374966478222393600009688191455063820361588311789116450377515247295689028258500687351874702982766993550507780073674704454676534284635173179724999057435499394817452812118104749589418450467405717732271551583525258539162399797452284411252050142171891959427116954681549024342199967046601224314709962047514671707935028667460187317821224481375320073798127806074168162234636602548063952265551048689489245976274811063955478146350727222538045755157615676109020410720845541035311424931383433781401040986123366234740208356268733047601230242022985928046970134919848464776275443268696622328317261658349253492674945363201679994295205864561845633022531258646232652002007646893820200035011030135796470490678372104975889582448484375424719267412068188656460860537298626069362436770674494630223245339706530388448460912876500672774399387295756204343852661064720819457606731407062693110909754917933405048961669917897537127290193251013407031257868509567265471798672213971259192798627633671341541195680471044402238650951311045731305271133688280534526702886777940372364268841272837283250582724808049316070178864072021351468654259451335664156240365033099693944750570068075002199630105941658443900085471528532867366494635413598486518581921837420758672178680750521414620267609186086754848447833606230347959263799081674896526515624155447871762745051553872519691345371782495270278417896358472668938316839508047635007586070818564204930597676829207663009889250521567199806997198686351322962696866241612330613262988153390857884128376022801110525788411272137162176880289771903807780357969008168790796486430302725134907073388774389805768820821157682451281239525785549055729081582787937329264838789930880597184716851987852379898657555049961501517248933353741626068957337099461812254896215569262309539161023085528653705220363128343977821855868560704967538150856134110229787553496683870306122817678880915737863353746259580117740974141798154322061590996639070828499831962478634183610451155488338321180463897556730440122872473238673788003848168881640548822113719526715612875468795814164532049377875199034215993317919919772787514609335860229103328535306495601441383780109532576954256050725085137588047769352246771658124139228333940986643458522163687172275940928665267330598657186991025217522837189845058950110586160730413008608426797739347511348416703321404894355392732991487305359023880897622785510705633270118496707111674667059730520632681202224224037797577233579445022096872581550612552904507755352687379346907870686298445382335824073348698700695536822306703644555696882747941928313467685689489185186577558579786842199436569498987970599672189542716618198664179394238282196604449368914631638010745834096587752972425243535632586542603737806403774916214877069199550810086889299729614418655813151599913604289271016124111236968883488697322767040515247711643424242395624762212643147386697025389259405645290862361308783224650929674778638928653369381607754094586453466957595366835140713569499499216141022163552543556842605051790816286837085334562565585611929716218830591259037328032591901638156761865955848359159066380563264412649437487435216391403552102155748313980257864856122614556475991464418171976915683018741720400614309356446666019234276979775209616720492624787087691504383790053288768626885970740050047045191386819937412384832017011265000326294435201303501724767762535213387828261753320399402036383374860036483548715191720637565305259417120302379439871167357225961276365330839285902329543195040917177045348473378677800992933895490519747104470887985242382240339290136825004454028554876474940821554706539723122486299948132516840657785498876705649084992105405303480662555691535889728547776043528320439940954487127952302689095261820138701669334123595216246377968795325026085227173205307246364939072662052791775444020558154544185874275361586855979351941832515633763539738494347197254259528818648021824429995052305915898092393698069096292422892959558539347050181227025287660300732469075260541417792068275814880551038085563210127998137174846781104504261005241490847152257047881892030531587685585504162907665131792931047348091683447182062389655877188081456905450377650293288316171007898449554252009717149158864036426582870865105134359952350676237420810449797856693939331487826218050377340197584561389454401953890021678364682467414705059412102452361160159277639954331623198103219844297109400972005702417137815725230513065571381234653867490410885821294655670370592170799856914590108210850458327827307143410330284240919675986577245611691569246886865159993596597177737154246296750103894272169990939692180746715668113442761928568900320293225240926283569938373265002058517417534337788373360897048760881748654616418896148236521722341542887751353996141677052628650914630456106751745295115957323888834186449764879774857952611765720360460113015565515010579657897038723426705092539576880802891418599438982915086554946434610654131967538289836364646739000474228987258258880492619417829361668183900783002389359038977369154951520940656363973147625730792959200715301136192344884175377759302792395681244680940853051506307256449800288689761638273436225919068245160044427058881463140706877758149642871448973767296895383244104605608637995880847334866654261184844852526967561117294359252187512708488495974594098062748812301837501903771037269785803631337409913500532880369259485172515623654139201435753250173648465800302663599098932496558611996824146874841387815302494947294720998687377914342993584723176197381746789090962655755593235627445264638911536406178023132639105620176735061461105969291253314516283874649363227154873609256737509493061843355386564504345485133899345791643743387317807893442757221518898085917809637120431864103168669541752869475277975278359200158104466224100781904751650967233698782603737987072056065011684705690776448830383404392424416497218951777251177506818421739292169532447564713407727931136570381223934950057026149132094683738690711100275515511160973978777911803115148601433228309068261683022391668678623582075522859187028735807676542846289725476599225780298937829523166754894563137555884577813826863829539840291775509119232739446174976301088344901153021587982471129530057640235852530415885212173687163159785395431230346513083752240379419287546319355078666210763057346947788711535086118773460395106208359590154245787172337131919109825108703596744177686247077279959259242493658057785677506636291860855260440782774146469351904071380257558471850555196904545120234558679646581913284065038370998588178099273740839549579896322932442249770035942850924268600296206356505724821641830246260234057291666226323459792747373913490383226881355862955850794316212894534447472635229390047589788215385486427343607946928250776731051890092113228299123637972346559680018142949703755323763313986900663033047446331560495351463722344001104183983156709043993098560361112740560731788261112387229140500570770203653844163437326536484426204519778440860278603304348358252100957890306919577151299264313719363347902345184759945542265883956762698410795838917072685995991350848355901625843511556338692764585489707968764367161704066440458315373088288764972033702587164691338470457082131606217128100223750258182839580529381486087022502343003875936432006589455717810899642510614103421504342238178409996826534904417439049733568094366497599873834517398763225173136859338497912325868957936724711710613706925267223349198389187515523031436528917212572461721901461840136225671904322573117887719247034220447330461493021169957377533101715519370385364460670167211110774901959963886857905634758193194887503747776390488262942362921076160891920214643262049069559403147455960177458962455326968790431211113128970316081189075432162132896313878179264933716092410154134244081387306795127680909630050059665658784901789098786920001540111827138629016686617887054841000706871861045182204536512944907624961067801236960128453293284771776263817550799838679073782037010399554679465055079406910650847581082264152511258212123158713054259815078717453322631886142197623626452129332208924824317207011984400721656436399267955850322583528753328439574272497019546964099380254092330698170419594078064242703106707516241331903411942239688967292760647044744991266730833519379390946411269689528347760634544913732915609080877315821880851711644417788203897505494674342071002305882932678889807061861107436607057274447389744388760280208260766512984787719337277943384414092337021524627952420391717314824829156523160255040268838213120228533234385596810926425913411978790150376439634720452044597840857789446833947053779187614744523458299117315406960774982541583258746121644948122844015206433379077936379505019259339372132697495539862872559670029639449613783707000867603036169404934553782559873974047391573365051842343761181881555796015834082569498630158945057366230897127307834421318749080913079858973667390968678244850124204565649772440888280639696095629766056391076080873563718175035863239809681069226056425743432085470312151971300921591590796441047076516342035167832401718132651514864491847163257736119816421580673424594007198167126837655091277595471073554513754471339368124138246427326093116967450246666951636954362585265541644728152277044257931974768362007265242691146965450490910712526822073043077897418134958676096214638589948191289778553945838019988974326737783334397345125694003391394590046144677181390310949419381046079358784775872018091541643880049042388417910651211863591523414069174101080105802649922914979710975330215955777090421343200117662162383240680360004305995428513180480805356736089602705083199476663220968358829648557436588252261611660839624162286957872742230891931665854826438847676272946322899472896582036255957839807290237173534065347311288662298683194902363581673253215762685937985853324998347587330336211100723377240208078618331850562010615524957664897034151149059552821782932103069234711653934604994884793266282510971940937099551070543923245532082214106096338589937715441341648595221210764794260954855308867423063501694814516619850515228027805330214919430814407840629758526552995500764001790912265196861186747472443185300632615420594836532594144707829335629635158275632020701834162571636280632430450050169905349195329016352012873857531320682008862198492607723102736190732177007263690352820103739302100429307599522695917280325321797377925717728993836941864798661920737126809409502817826910279604934732717757047737005502838163895048781523649811697237172117151380860324714548602497611052218350298907481225789329733682779096001364880819926083526690680786138803401055374596547460593696144894207028685016984316847365494481754661169126955733539851577265709670022742733536969028928365853806808044362478403891750111314357572466558018085231530723051281843932125110016949794039346166381775621072424301771996822556773057171994194020585668988093340457606520457927457778238112405907591143601483219361355218920316712956727201663200136456813326497512039691711928325986684083674728059777685025283907599607676633795319528117907372645176600556535590452227503291547859046940344266848385235024171040048436549879834292218273909324620182485303006555872214547687173686079046256662452974226756302398827012725900165213190626612312676364500114085871421346878028681862280034971954057813278389150615895153196133835072792617344165882868055668962529666492453798197140105117109722754697576253098807922829927564002862242516134250527431541258740179134134206125722270709271716921458253430213091799380591354721400795643166684244510175429631439857264159589495360890658968172975990727328639521727634052113426460077035623985025753588501975008794610632609641248642591693037072844323375853619508752706890783107878443791496818711108226537171973270509889414314540895455956229300669294933455648983768311339496224335929292507859947240232247999411891185403799259112576969612996047716807346672205568143314691751755966278256507689842848949955213799045291974373895003889838570507749789235964626404949546327895315939975617693520092647817422118739006616630227165383530358045175947370489528263666969990997745200279246887642691777575514167539318647675023016907728565335101884215377116056093847782152816497865959286397413423194455175724339650331915965999862697646954906448324740629729978947484009273836849314919875633138877641407411366485034453304650505627530021037505982241821544685325030005723902185408568874638682082828055859945249197153107022045727637905733409146811320249573803235808946625885672930177898712807112162494604711308841478190823315858168694733196657322685159361670754617100539788881780546524706410628988936927587876739018812270264244000494958469170641541275723224550550020339416734095026922542178256519198001059108005750348341535616211126338475536706528591125874439807013685910655795536562933573401526881087243871402447698247231499923103046695914653817034508834776805935448216826035106122934480582484436047368434479228615010429862336529481593003462518212326410737223981394415701833599806977531493376822263804575795679036622340212737480822986878174280809516469285875389256257610057555941758195976208555728666468802758370010742656574876129485391043045646087501932707921037399008773590926885821932749195541352018425875214576962341684617252100252181201880125947120502658598019198877426833244138253596290566913281755955197801361515647623707405479485471625898640021303003338158041313241143578903079205411989666277756032180623935575070827636979648844070861090361295215390579433900212636736207635211780618561397266610718652371099765703084654151823992071950336555091558068345184116899451183176687603312246022732562654117094293563039271406298903442567518864557899803753693079452485973620138614048878339760464971295232070203547855601259612453708138918615236584102592700574557727622483182871542077546249087518970752318143087564022012512505783602507418543492033529014836577601353669736932341716502859661729087486259858113699570291742137161361235884131426356121950783892665321144812995830632091744837181058457733760356254779615360473301423165563635206242220004290900595708830931008896700379045908140416623082721222127444088832080574753259565871861482615624776816248682933949372999030269325603947992805102445939958288656211420197166363435450990205424441878136400744250496425374371357846760299567784007610497014034259133645550275504895826659497720704456665633663059876752014780284069694203858257598571066290080795270213014858121543016259262078261188038383915780323680238690957316008310545823835659530442352206007774683829002538371631560874782977790954738316572252548313552404628532956659626290901320820247157119662005994159956608970907591714835014074163730761474876966623928377407730213418773652184950216849857103965123307560880346461274922833803402846750660753005044390753154584400038252762289163535176675948447084502701707838851675417181492563917745709197656060825948264729131448772721381656168422578052647375542190630568104427873802843761621885176016929339797143207486906654713755045131835588222957394368099706172305086901668531976867196505321552523561763645678644627131614231898568642037959507273772400444018666651300095890772007181066466509140141558887628892302319098520471959550073709998638891518968378754730511731489610604205294269456760800985603804532158968315157776883951816700965075383941482745776578540047712013191135139233513495461212463465672457258044273293830929717925224136813456526259700928337348898745147695832089488313026040440168964089690733492150149267313667618652871804135830981435001481630169461441803391906846804126243918151603386845177844768120724864584391741862358626850269005341382736953594742938947639767568332399599949596001073375716033223013800238780178423520134324834955804091516518923893962879323330194315048589143931019632131834513408649003512671794590519324848245233478006893955432282242071261728157786986813062280186008985907211219145931338299101041885620148099421620188286123342861294375948606792019891741462598537109401930942130500515524619609025101309647362628749414342519348775562602503486796028384570019884178877255403732585341282557616529918164223885863607365539350031368404177498942575615101623737289587218455220442241695792964459042102628761531710085001029176217116457151772304427725134275143589826700548643127768200803528720172618253925282801149691965433886955013633087967469474957486277969239113810150612307882841485428804478692442981761645652023778264690297271894884975702500030551305775488975756871364452774164089092190782281120360808481755855387056898059139858651985901992672511086019861406283045337466202406317841279738562947881956277124898768689071785405734780976954293510790398385285319958008329570562636083196440859080305357295751053638716890807584655923153221363611370640356374045345727317768951013282389439821976127496677571416329396581492983171414855103397311104372878051405604259282702499803028129291608232818778129335178402705466546804398404031602994012996674149563463519666165143079058441244532780941654376687276109539422674814205352614030774921572830506287326376158599702597323920809940359926987304795558614926407704404683119582599112306054966565044348448163492727252342600668999391574372892935161734502936543768384656240432352019003853401988842634068677920208623184319521234424388929976467703091674085619343069881922873474356517135262713444316234212597394060800626652213758646009394783879232715073907312707652072834253503734851279850404174034168047905985936630696692139595259155834719713909111699469755479841918857529724429349946666893611159997749049760189641061389675908613473632917133996833026308427764555707320079599423478187119937134886985571022855592902650538823415598902412917860095659909832947893627498787614445073367880476492868066659297489781792838396085538958139709989818816221604717499584183346609059533184898669355784543459083590461896093061770107112050286213121849849127514887050270870646242174996550416781122807273115786038709533814265265817454927389832166498979340106497238912248092683368633494661698659926856976519551999922421294918436097160117026909078688625163822664599148765786936915696603183329474518598687065258763878742931633911851252161848089137800433018435985679209545335647619285223719726827697570701030347416704126239345199017654510657529134394241647691873790802195731541859916089702826506551489482744058891318288183423573957151038519066999272577744778140531350581900668171244515127997485157399352038817766498960637992273629102780869030736436708631032577887695309622779949012716903068148358617145556306542201977377746848581006078627798882281417915523373792765514254087910165959743473120417912975023175252192233200717638484414825619519545957867863562540446537131084783292886896507899967238438831836716707873964663549266821566300786178947299777166766705698889494889191771055803014312521674405993162658493858685220894371936985644724845515660958257483516639849913570239257312553869730339426504277886763338663212543453968512642988456204640390893752964600904919804865876752857225992676259966016067629416308425310208835354460688621171353393830213299775709026277121428672475332892526123680054079735998201285435220789796745203252749335579154313722491073286805658103942279650467732085606677692231054789849622234736675389634859714564093949587185156549086296796835435215703249313255732375998519580635119416897620393094330339667126230662251978033983877162277315167848724549286732620553940062359486128776499957560323350630768043351839826161490819721647069129668844149390705986064245456465706452391786694746516239986623040678508169468620137480687262419178455216611907778308915776474647384381841083380907439220418666767464482124495420529222674932051497167116502089922836808304398134807132062106209009263928362328121906457590398577300859834963856477646380345108840824555819375660131186943320563792883277028216798317320454387857568016145537285558199349313835961389590841172572763259114147095468062286049824788240505540698424666632592877242144737840690682378663044241365947809630489901525368880871498381999890747185276676405671565645696408153885616847646288815081108097359301209036441261731986196211303655959565643090686590190341292486230186213979111026351661745294823201428817153525430200373273034242136159310912675567386160261177457562948402976734418392985021586101480185893679014740913251876806099839290945914427296074809029298163398373608426009801545688498291377200033825997078320819630414442833153103088968174872223632218095674049746185170095209368671346111480843810843332679532601964243078320858309563759756608282173977783657375333261651604161561125704451177248219297658356677771856161620123112505234990054830100116842823261680513595366399247496221003540213717087616647195406723058601470980796177997812629284324106247328789675931307273547355821014934589764488367858802183099492437384696012436855345336381086545473190232802695001403673874231735035461914383493738858270936420013427806215393847553316782842994632448645435537651237737021102539863326196665193210352585467729174164523523495436763135331195088848568282717355758912264486264541965903043028929923331723188346403532399467873435193810808817342628897275229281607006090362137490002473231258688224993260890239221594331195920645288725523021957049648360640966009271359475992724272683079164928037164745611450855648263368663081481743822031606511482202083030394184945353727029596618889888403662252262016559356319878297680813657287737727606119694607385396544844626322627569550627880591996408101840123058100148196012526601575133612851789588896399147124720627850951352426176694179639623778291361689434862413367546526880741077595704347489656180989942872929782333751693872479924970747774646223420402025939278211144686109134212041623570227213971451202324458702239461574398556056863030150703740125665454359352923569855091195332355791993418507732781198384048171994639261082237421239278029813965145001177553318402551586355537935324256303046300781199048155697959582459552136082714859395547598104209639775051599965337819218350486018598724584499975016023341408732223211767329098221083759761212724281604107949483369424501168228455002749133887737624531302645751038855572160018685059837243064205300889244151506239405910269769547133857297879989979908547515746490768275826248513626298524954481216547009468425339526711755016571077544910287455837105945200356368783169877452053198411518410839593313247521323615367480103897758010350945624941347422165440085826364559591117005732733129993246962063524239975311820943024608933968872230834953114351689656654700402316787289599570548297606186852702661091953191445977293726768407336842271328587766179797636796727609826672886120556108193622256323929879619960217803440256958832762048392115199047632066936597541974096805325826885837230598501541661010232398228392271387818232054260773899794945855592726596628938026785401241628784925723410480231340944955968590738540787940237681267867872890876542428804097495992358193695838391981844398359145536896984641218548748922953467504496391924571518044902967682726857278496016494349187068540653845830019503555873660367301428705477890714997027140262723198022927925862523568523375046631757922159276264343367790093160959172412774199642099025515249018350784839187292490934645894469882744975612037017517763036209028079008404004928235990907290478832768758839195748101612446608999985354523812191232107164371097447906581200840114675258894194498086868434792416013853195107606259168063989644679825988979735749124757095128424768460943615677020412811244108991000359614595327623790137817612903870639583067617633218669937173699033012665170670525026354231566246725809783624958899844454751522396751952407638824838308499154595215788381645116492377578067573726006153372254245816932684616770700591765780840654768502515715007908677807728902817613021500177287717999014245876800716106937733557075749056610746490667358302323003322755282067450791943237021021528124055781507424837495591396932085500100988431082539574660405517710788446390116742583322933884267692552965458791036941786114598242528246013863226699247033979262444034190058887338839169222930387416175272698311268554415036656970341734034681328566824537967666975766143770192876296604607609551102944145501192587308140040933385047302146207749425777415702880909841198293140718330433176854138149196465099972963047792530097619871478896861387957363490165695493547169564744222550005807982807475779729845324045350034414066858574337421786579417330826788428690062625474881616206882151284015771657401868246344359399778039001112835986022526846986641914904258917071746706668686185346749784137009441692598912618341579845458004087927096854447651630119844987355749196516183325353592932409267314556502053822702152000508023374816278803838088387489878482972463476901199544835501799557930001591046776320576469711988268215411592322120281648762551084327288569205120273648503786631150994976536833051117330904162701050064543110562312548460663580773930957596216826784544273560003478717864429607689456641149914423520854131307372166483099778676240829579821718728445514946661414791421222472346609125687432953817224861548144735584092695280856139821543472921880457946740161428567453435334031678084429267619677096440896268636356042210001815965517049233658178183115372958181530103136857954919900378984989838769088103661516590651190496290621786066409293248032868705497928274048493556775402493794886663509117057876336778451167481765520323373984201468290436395996839647843618345452498156001415887586438317015715432810529307184324330548446754778200423958393760211053841710750931711755117525244360971812809813630760867925502804569425355502833003917618436888246642240725829532618875821235634395854019771122433331432588519372621063213562343355473916745616780046532470315373114763301220952351752029096903325852272006909371141471907770281332560019126607317682220248487906653957603014621346789373426665651176540824000896595829881166572339186711680378843690965895725512942653274337575583460751576272899755420115109785361514441800281292668498243229428341455747188544957496648609327459347022728015542323928790796269169215022357304921605149030763200553244126543955974321571874050545317112329067013799337853135268561593745018077332236166753883674932069054760414706282219335013165202404846843769217394458815890124732965485058628699332458236791966178681306192044551161648449131708186987239607858111223013302085237610845569717272601179356327642814622654345440155665596591790014592883099004464450046915559962533769724635367610737187423860015625131162933079967005284442527266255272850925040859574599313985764911413780767419288577068936883930185861342735498611012885861225444708051113408641590053397503358227500485669256542986146537287840273552751878874204360193457882975320477075889501906827861983493136017468389695025916446473376306340473759682422112014439460758438749650622344038249786757832118316687897286907994605857284350371999925956075317999016310140902103899038659767582903862739291428180984083953372734214527308065258805004173898796559651377770907083954031251994360862218754998576213718136280998116004622979723403118572763558804865482233350471931887361974842879962689376294215155631438760205025481662903112313540763124083722359522948667356717459677505773154401158124551386107080756629553471553629160726030494542347854431881312923031895334647207192726998431418369667696265410600714301537687724473965850185517534830579981019962439392735504074695177654093386538296413494531876916252638098864016103087867839894340148542937813090830207879581325336166508003448437585717165465344229574223067137224182654733947299483645633679028725343204279012077743553426743103262777784619663907988743113208196175617483426239124224199851358418863857111797029227020985462088112957673256137361450276158091755874721631031053855302577226775664479884248488380379397921466075002999907638472184276845214926507570352285891400695281735427534070398670091044270058747648488641610316766296414985992469888949021410582261530724169181373811637911949962504296452893060693453411299358771839935315094860336333327086746622152652264956785493622851119243232396364958745642032396073615433712742854733267262280253056140600857743562016121204414402327685243591200632947231948532326553274335619426903322784749548940583396157420767781584538057346750429558838858121365672362660678301946831993937230149748803198822780642053659327999649936632642006434076593077276668352504793706803226462307627223455046888250802081544610318251255383642093425803279416325091629396842540142004354225855135495788302483159351692423422424531181902904770532998076029970885472468275027265943082978966368882736857673869645975854172802587305891156486250405645741934463863693677223214020661633907837578486763704013363414426192296388317636645319774480826991103072622973645659315515114473037974609648346922369852084933435242603629601009056938340217265487977183975904516433015249374017390275752072175015008235159305597718762601913008360888601785648979301934871028666285822728958280739788445813156225626771635402787635588307887939073757298752188353763912242348098180857152968455206581974458734505953181848633694872222211362031153531360995118082325883959330648653666501893337888094491251940559301392811716166112488859200961124056081344867189630709105777895049847524868320505572261977223554033172133176450862408417598769380690591695440224686954330562716306332967493708126613778824200923167096735643504779625200202371116831981665466411429709524527531258860263565150285828703346536018315746157725877736282172653320534477269793445182100257368751864186995608164680785645487070378133096524872462965621939114035674963574364053246629150756180164207767090525169822490038934116744242936535941767078386845587003459786673040004240774502587725390576018681075586253037433097441788315220699408140665356728707229997934086263302713312025195638039637722273069256955350057671758783407562838917420047698631015257987499792474029210097801077801552418432213178942589324867703775556601640066525426375616300695137259336548674276358973778803082510101546452519082712253305629596092178296069946055250668450764010678933608567052870060659830247547364256402297032687215055513182676201436032690527142398695061104777353968757479165998339899447943716182858514206294249464508326186431691951539424340352778559104740756601567091128991710177049240635520580343207527673875950899873642296081922539705276064436776868389416584694595520584857643357047231686590183867745819252354281547302557710652896288146150711272501677620948818136556680245689457814250605700114737749388423440255177437322933977270099627329399522219117666966247470776160449695627767315913803270921313239731986707634219158908237215485432757108245460033383705353871267928141132121724946456526260625805966355883140359677558982989866235338715633114241982578978827875911346721622928954101011748359855332562510443302055600045270146804343609465373539067281831224501613750610513365586319966306942859508761417237247826369423512087526234631226188909280550677736512353087182955778875945466586800071112156930079420473318169410487173218794737333849411347216181260485390888457591921008657194907731074557528313747256059347251287267474359964113248225664284813329755791630145026119894712427457205470210332931761015309534261868931259687068608378256373998505584675785359140047830548720984304405192748256916786769587166107430947606268759706197728383940314939556656675335460257216939483706356910488132150305627610820414055312986706856041062841220177608890387082835659832266056320348239816745535031439755784095754174677915558436762189631134403169944041597201443011687653142724978773452319543455632282670957084060243972484674213288192583235257820205346978477416438821829156042040276702489544539381257323696469658405616173164814680032992596815308788179943933544043768920775815488083636463286889580219865360932573889992892147346772067288574690470256991676123524796524047905132305068648625996118122076206958426882761949239126736662589501621744317326698519942408512543891485323401845402828373317947208634802461501790885521069236455058279140083101714571393306777181000793509728043022463830939843445164965348585601754261939188890637624027089502700513883696915513703494646482475540658759932242489640938872201492304685753409642870688075736770438117752048179808678839023528245786073125725839573228897239281922616937428913868591641505025347097525509043967285268095805848801748445429789854092258741738562275569707971425447095394286510220280467271839776484384230864470639331869596875559011902906757368407272320729417185386334646130073987456971351747963213596338661407116049157421491971651853974812592215075098158023922490308080196388729177196585300944049140787458542733034877935138796227113025815456599470869295410814485167699522531794158718777916065749670219576442361519408789106132688028705732123033160780774469294742015437155767704312223964483075093862389218519280682351526224576405292732007083474846135896211654409553858653245477493219218542206610723377583435133980755557692016092349394844985546381585829291174334438158880624899636394074035543845119994422160497897279032800846037228469511873894755235913652990640938244872639170425943314690211439738219836905827133886744589884217307847316664102645382764669606186299904054784774805086987753463622781092397025183983109097266341660145069573656179383668753620581620724502732910971816093129190910064329691816340078509337386394197892591445675902930673556070979334579803128419121295211952922129342029723692795228492757031449749182651676102166973139589249696952698060188850888900646080809019825754796115706296583338445299951210947736305079234921105584232191835477620989486353342690124566818352641452145526811532955675811286299847672758980272977991789128730506390456392335806918169561851793604243164796841431391853040895862494417678737437764734236732938457529205593171709204457384073832567901841623540168622269276382045132504992432821902936853259820750722961682027178603600177551169070788461310654392273203977221755802245841004524882187380596490784986159493292160178237329058181789298316997531014834235579114396253222255407608798529887005864394404927235568499758323145813824514136305297056225746987055080424466033282139944040200754574187748444810120052818118146994933733394434195299603559295739891162904629271763232434541792475416569170070784852726192251356831893706248982545284015914337693794776826908837974804612022926387847682925170894531886459022656715946188999114357618568697198151608696181681089544000115808772187372862046130582477540988140972720725037034604961856648120203539010882736311659197866729788818910481607112599143955862103328649209998608886275262861537888014804527543256061473533946856556956362794865543282392260844697863780859753873732349318064388834846938766506452684207889277787880243455567675617072607920953969742290162300352585136369052493897684019858722785434441226372535725815564995730952664648576787251823549300954129764039933325428434366868090951738736291958753349891040527950077885930557123054782871673201222563807282931334233461183505085405772615047329751147587948121864521015846585507925946298546122685039969492446744811886092148617658523872101276743405241132849655701695901387212265484530082325328690022699678744626578777018512000749793508501936132866179986430509272694648102953721031671969031640879926921357195267215591966841222577359887793662091085274732280523398116547772129727289418228730226676925501580227527768429824411337682190026366859777212251233436663385256217649619765307188975839378709264338845621176661649316183750621881656614293229235102468704281747525192671737005165418549649918791875326412863551700029077443910075137813809393465244815435267130300002476088784788054928371424218426732629687337526237416013894446130918461822732310477644046427457912002197029798971101653733317002957905141824686517975979884414234647768270951788319054422662076875762757247927722461899103276837421004246596985316922133984795716551838528323913278484191327191984560025435013753181209848973650243734000700969807448056092620692216554330097303551117808675652494579491629748131166411296814260614264497102284507943473488218118442526336344761326161771447269793629112216392078531724745279634980987829329685872148476669400580115825896082056596228487739655056175412014983754770025257454106305499831243080823270592771201523499290524010814104183531053735115453845050775441562493083017647298112004820834812603837570826496083350892555796224497321501354029476322184691754968326942435732149534941037343106556719384718475951620192637932666713012771589036398517345216272093508702514909400326915375402277193239478489301703403519500972792909079332895879661117446767355121870277758045067497709400016165970824619547168483830897475795345356043879814527935165663691637630872983956283690080622691271047278822284393098224376177567832597546372320003417216874966143675518734071624284714877746174870004146270138832157299973186290068987932043114639612522195168612993561279022204280748069066508123821034082447266354801451394954143974942406780232573169654802577958414886830392081907390309260509215250957896578147803566623979542696620419133407908632122138236328831401502408758055251423076442895160761623541835692415465040980979438655630234091345845747864883710615814361072642492256950113585321484724415423638667772517886695892312162606017283062188304427008692105100482926949812826710389042380458859390459199056020721005548214106867794691608098219220054928353963163362093960696965715131483285013930994517081137626342546481347855910174961883475029000025296874366516666412595800954733452439421893624230312355627878790202539738018354285938022422490126527746440650562604064188320975584636955181082717538248614679812563362006849019108771800119284310334921579293744689442104291323792570978281470537462370585321054583998428522242086799609724209466938285826123298411062666276528025982230485478062729556938880214093745350942749599210304533743626675961437827130167612166103335080663484024112626646435378273925969885263629580974659472624562483757264920123904354607088118691107873177622514706616010604425953708667985023770562151906972067318558295888883514457239105330325537440705205376126404317373276432685149393961827533958357204460627133998042733055297327068306175590578537247678171595536097857589102719965094110051681947494987153508996113427886354193817363169435356395518494200001392375290346095807594804133367038033715847817124980127211564960076668378312304029208571699915978156414569551571899513275462608173053797768832735400425568142007571101497387137909685783645908646224584981490158332488207140281605585539265591775048345398356000078987345166105154465030059425707818743407948517781876154194341900057969712926687016368554333358149638526120254705939619866385927952010196440368087610834074638145222647936598356467574578437663117299023485504267038129618323699401155406594087164057174845963723959352282408524911897715918802523955259979707928978659891851706496370340095393572309359162500151034442738421775704172006146092914620386466028590079562074095734533288730697897319091277929494102232054303856347962191848310017337345725574997124434094753368790388094957239312119140639894486332978120728758115945255726671465559515099262088730628992119853808404997716229093316079640327980347834545372011801771911388424653604336275506999006449371433656580073766982365692222747797231637354916066430896737185395028331572338958762817379073408797234264602978368016586157188463318558021629711319527791610332919853315233970330775208137438827609455993989099408491828445173294895631200075319047776176464468816455126574558076419141686981684052308425510383758115218350257868443705616496677500713503782869233690822717038012643436415629097703438333726123668738215638146882659853685629804940509663040179357311873116231917782923695508376439531704359570698212770424138712404556376668481772015935588007392900739930229207567933454574405907454477242945515273088808656527904295581976568206139818078354392533474795086740848909587477608819951616947193834498735434139187175651929532075225333463695434633398628343946496794646751270999704259182682959130853525562575193622984174490785751659295986791667124036981313368392244951739106828909925404573665180765573889288779066913201975698929951387207168602044765433999236597483859870443202386084939442326282662121842736177764495521089155804950633005344912995491256954951666757937868991567258100163381301155423567611165640800196727404394390766880000374804607410788961892134025180110462515450056947543487531838428630280909853613879886682684645861588162101258728436738250434504647695191608597585120528736598280616761698877232988810344966632363070945646286979839763134041587124166634175734519742781790279665315767503281040345444406934054599681043175021124882340994492224009780439011200556127961091462737602031950955607392787891975680186429727427432638216186590744146970598138912780406408686976570208553512467557721954855451567858151666075549960120268820726540635722149105224467541685639233264146326009285422250048890184162038759086255337300784552521660910553887764470524911452920063682766660379253210133218237598770010940004744401979645234355691297287945649911699977991689840781478944837413832196673938620300500374120582412759824045814290949634603662915015868015489634180762146056355543005554162759045756476596332748825809709036241768362163192715676422663553238207681614425083925430411777301280877008440894286393455658723141391495245656120730780847447701917333548331019625267407994001595965338328153113616977770053608783671585596374796724162157638403856967178345114134336602747835763374075901802146779104260983401080848572523370214498787586876924385481111819302281614846719649732610276120713962960147471675384951053533807704818390180375057631993611327686009426472090885990134367229157109623785251879322463196655877710853492621287134766608078328558750295102466796331768728169188342806145073238834353016725075355162122548035449687667047340732022842672925791038636004542366579298614859393673205153290605681737307516666884745066736690143595294202474856902062284308579640035849911764013698384465180465747345357756253180241257171711569949778144995288154014197819535901213030660034946361944076477110003961613395915035798469791925601330800168087628867224742984030774811454423832647483553553024531612334735180005043770221655845946834437287535856007837012079928663114153462300909518324582365448888225629177201580098803500242369294182251538270178142717626505617617068443951196566624794990522768867089697174742271592589701964283456044060330762885512405042148644533674259515303548183010462338335633356175132465924841455085375075548609882958815510148543240612567814128832724282040066401077578975813786070436950997278924928457675827742320508662205015503796596404962493531977139268265171438296612113607787499923650173220955718571878046370888318818621300501480472828213158209777027921912693069059530389302805270961586488792136598361129433105557852720141075544097165495830060621496441693848106857624371003485186983791598105247997203799105433942437801089773047875849886365918109824948263813042112706730680721212275679415065072024555101424020480096177358947897332870253579179990779745054305693481819420859080759021736539141164143394852974838789445596480497487893064751024355702724882996575779254733623470485612343799184585305566852141182150159461190157343163453155730981213380901332034875389353146494169335993947119347747830150670519507485372336895908303541063596857885945888267354315425288512248161564937456062367669464660537544570916227311013515928927962970000667360979558446461902738409635619106059152993429748352736135410107601532983106908701529874272353243588580486389959910304827641238279118555992436723116240843750755133452418663314773695800535239764410497396593569943292397370790768055768556075350073818132540304731493491268921413508682342613303825662129279618141089013077578069128484170882277122635385632409087969890429242504694512374006200259099151297210928847280404140879219414572213200433755632133588681086643443406390488386393554221319540987688566987906823669243347920051761710793105234289678924728428081012733524429078501972324038647660125668858366908758392072786125225095919642143473233496241623980237019220808441836835806996824760381714884918027169398780625091862398090774948973176448106559013951655074526985475528962700203161681992797501501487807329660933116900131423354558508289247073701513782003338644422158667094666505560490991138492294693704171599984839436552945067770041952125736724602376896289347582042712777245416708936086507178973879111466452784881461602918830305805250620714339806439451942609971496598247542124089077030834731019436029916419912294701582703294459970982812594703163253272636793550150459170973975988234964711939530886236412880867215612762230255838390985798668318790962449321830008799170084462094317348056837516511622889906166155460104917645826161606988340809996508916957667478233924583326198621093546722406933268190310277692944080176665334807193380068996940567421230398233105897509441034802876804628295994947102366717223328306331445742249253826227263085941697508512899584071905255677718495764554533953579045638513480466128698574530031240785806270596838500865098463835555788375706110468553896652086123043084787877690685785180559216264410169770128633981222799624005286788100457310904518827775477932205358470548597711172006291909584874714556459639655447211931968431520300389371772810870322711430146876676290028861827284995286983760577439970399141522640373830582991901716549316193164177971060502342548109421057186329392499499372322591565336231420150457599084303406245622053687194009368849626669588876009040080960758114488953660479985910767938551515654393963137867464544395624257158286072972139043061584431440978888480776239148733029531897146071668498173725528871726464193102312124928704043711301042263090756441638470906507700054849352347898880118030559316938815835122871165660117656324762626958938348998907154209993479880530576283003275734933110488350142343489551860595740726520946459782362643700436220079826829504680495848717412651982122384039047346401714294115419663184143186601362251022650797435687804511855929775274972161285036109323340091242426130745173401387935947684027590858968169028573160250200425277136472317814872790882765732264120739086398948520612443634595752148180486341170664982993675523625839988399694823358031866721150285266367237410046757343011052033378251463779029089121497341788778054605507858574065577494062244054705706491440354144067351753932245465785311974605645671850344864624282103934307961900448939998647587323011200544808388864381626353932676056091982727588357996001528685620590938096558752978148792920627378708464631469920699195351817136222701990950682129992986055156537593700024779427014789295299701962866769142057347684875271879630087888792536460665049507956355314967318308447104641453646812036953915711429956407253783080919249621072251742661509147595435767155335129804507640247646147789169593261464365064797974053433803578598356615060497906162351452518037736863946124548608353600955042139574211828363316271486907224854930341291092664547767930791474864523344169696688629429770971120521858441378947169854774719167894137146589407609629746810097933674075978233888022014029704250781244781111081862103856719281986872038431906124611807068054481095860369951662212507988651206131539462501534264314557846289238964388294012183847965236174695082783392437177255229070207776081258420458300423903971361469144291345082568367327877212793001193866667553766570602949716014293611409788954425170231851920055778532319699810099945038818221180854215304733771819462881249567687640841054639564064703855321725023694187408648355713710721797179426133114605052426709178815232310891544862339842289149111479769822661010259734570873767574274989065972551814635498151344628511147695633875966861173402067447578505638913684744281374466993954295622947851526669207381407904374071451223516496814446032188691675412241223689054039822579945241036381630323096210044789519501177587349610801660214661522090748656367001330345872273143805661500646144328489431179631801069763692300310708660886760421495106193779802442191074103583515330787458932352458787298115575634273102465326887372933735459654634550818925017365416523384134534567021364146684620029539977617357234242113205751424715518983425635047306973448845995204341636904991615871307127313634384210484194222815885576865633209129447126880462774907536703446686996642414359592544474780718974896612954553512222991753087493210835777681182338559578999877553380459926712627990446400922696218736800119782085649952251096712584471734682489419747423324175568348227411968186075296281432414407047425713970771381786898640364101077546295978150007206056452937016214432517880407104199594623125555435960509797497224760178677009537266931711686622604117233720113789216585306592559024480970599475758526336741453865800046239040245211233543926314088842013460728987729720898751446123534957852819765443166530296937617333705910997019399253574613624583744951878554566745440328707851226583085221564854938891633279221733944775807347987972241211934196454459726807612690422813276282418705017333122904071568974757802555253574235857610112876676201523969036540024280603129128316831762086196044487810114478837943547935868202687232944025323123634246145751999450266223744157657475796884695923914739448870497900843738836640739410856965756055959924425594728813875316503506096738992360268824221793124911453885511708908988517033972161014314238756194778051179032714932258646920991899725774500975692416437937471967969196198251948897008136519657990827727042321917124470031647616719949907985291803788134296814161241762713557992662750378012365019416288927913265358531814760041014247519515310226044758250274824368562533910508989293286428715610340702267339193324931311053832782174924531285066723030285971098838779220775521820525048959451272057561861459219254847651571357229653154294553430692943835697146612065749051465735210577940119694933897371031343948897430799865666549623604151946069772127021274561337350809186799106285421383495086679058741100353984293649379947981819508281808222236191516025787881368705219108339452650916588469593148702910416728289235466793612689231792300692340229525121567300355931411468758403775692744113272537166782469843240831817648536653737857696272236842333594474492763123767829041388042947541795810688285579467687468190539832932438996205856098206741322468266481433701831400594876442009733024303443698506130926532140216646877564869425634799805111514123754417497572961626163509953995214352400350038691262977395092384389642828202664543048363908017321541932024265556926535549861925966616278833710238146058928133222307978066033720233383432765276985876549533402272042200855124449088764935007823234164960020161121912763731008776297025464722959042831274170750642898671576732282420832131852353880750589686458531716119157231782003995529560033032557877091337674947589697592470451313096075533416985386321941624385249029087044813861084748451538006355180744179639126005399536723269882507965774341857924981730322122234476532990276625367518518180008555388429347672544948288991333498844060400113955930369540424000979976379608616580114383045830985714933184392810757978844027713380118740607476757464792677450896596188231370526217703281408806278329354034638410279876561525568154578634893866483363934545083460240242558291908844436544137820186796682545158395862666083335356709078176984564396915047045983656062876508142855401053558702451120349250841418927438357926093164962501363816756551201580134038367012347009039246474860143188232827305616120943292724564957409182385570751229193804838984806516894455899473966028465971641105482781755271231908868766860246941611689221518660534949349033424409304803935124525347899902754932510432399965492076306191578051386098881136111311084597676423741951046431813651571129158482806287792944703838515856496766793403173056764450881739249080153956608652511007461126962305603519952394975493565087463988198220352669264639029464944686410248683373559739686049308568095331945664215588692899238370316590950906421548758715055086509402871185370363569072553297925044933534411108424778420050824861832288430630674824550367929369931327856492263373189653633812410166376402519399251116484902363962436795870845185238905806156546947328937316833960572599518161463017563014591810870183740554412887317345371081189434419512220893302782549964163396430481673808704291777007269095833524924906045723204686741750912900487846364231236258966502331415705639587568071281231303483737403598768929259188184074730235413574906194116798686564031874176560547950735288073663415130198401076018235713080335006084452110618017460034439067295492760025138365566930065668213962602910903853685039955849543892945345723191821738073128158030057964985655706821545842337458748807117945192432829958754830813971616010758150788667367895456349408466861559831782784985431712713060007854403129647611338212895163357570202094816853473647718885531315135084273690479896446477514458276174363823568311046918622646299432494310344176833584667973434418638349143527933636685266403854636088601161670744274771468899904765911177460592784164133153559020119311423203045925763766080820389936611052624507041899330211733699328803950894173202029437753161462898436930821399372194715935518144653895313830372110680106256493499388024584008096075898332533981898203885405850778488882955468836826763921045130059894264382933958722151183174282344983622026197864748083412965227061156649985687778395789618902296250831355500585465869183828931404137401547409199840339551931628419699344999221302525362788431461848664695160305812779141011821600176140870088477518823794732618240104708644875513968880396243713440463321130794836816868593037277543106648107094921404272848484286446780071281536398898124063162597243442666424413100393847526167498712981020567781839912152666519485214149279179958718576891961038844213062419299662690390939604908170324064320808984909944654691459896306899233728615414094014977364728314487506592427013262263594053371502246407069166662093730088315551633427982480432453540701589869600310529214577511036375525207013294324526925285382732274380730539092376064131659893234782930415968956915601835703772898929068982823027784347771175106415643576223956306484476743522275800887108967221925957002070637273090254842965738521113155075602603252626484092989712103171572747142877298633750610397095151465701341479112440053816669726939475637101058545604490131342362873705073974849380600373327744632870767711519679127486919115008397197824541237362768641619352043471678991192891722901373553035819918108295508565318177381185131102244362491540715720206411504752295160143078056327873358872901948375248875033923240201226318345119134204978962095901188498896957736881467096662482143553582631134659357132289304583549853323616980574954273523502716578998768606486924959411086835399614426023003697104687231642191648979107456280184643876476582191870176839719738700325813045969091897409199269010086819680880709026907598512009813193470085170875995612481807642472857204532344296903132712850311366679412079393353558962889002170910990753825439919444805246267539075260798426987562711089343362728872521328453324166669164767446722019865248219633978675379700252662669532991605517671832563189317663600621101290033845691744964044355141650202693388911137727318877808428160357593166579083756914579837425880290178812359094790947226432824837662655908386186960401291075425127862591780967660262220802819089741596434730165496672057704270220515385028937288089648958363468565081767358053667911885272028015012483114100723794782618151685700289620342887295187667586229861407535728965022959649239896907324960163867725467172049161531630071877559623276805640268931047557628294654796020708415236162559307881588183560765406557127155183780174981828968703288070869642905692233607446316976592776635543645736612593779170195980480726899589543031620213565492424877426961204363475684246352161551973016279504280754015620395368654873182525364911200633960694173179319123706346833400630332682894211538131138459484362337689592857774176311758960989868320972422131682290531546430909486231049078330712215694869120825520969698191438351979590195621272948577660853917192426259375227977443597414156485387739642855740688582401201545929347570546362190696100383883653562522300200962801458119873761020207519756065989019196935951108981242191765984979089912914135851262870648877744435239641866812097174096636695847711901464514995293942975075461542249430805969245761205502918347857077699564044472702388772279277911121976063911679645250505655413868081891624173135593920026052183114666179995555959722961260081545739566730343630000405413166591604341073885691052850070749760688320647576175693647142439911432640518672608823612816508546160949986676806255433936103946527863074757988055057281303001056527783065685667258095267496937986548612143825576736843514115748518467443234995427655287390821332076414589836142651842845739990510072143556632946136340285053536441534877363649728509510452370590040226863933577841475322189324943442426641924244358369786278245828188602793669000038012611558284009755826246386588028755756945965990195797046696768749283508632100380206807996568504985392038729029152854684523189591763091704601236998081113385496895582020769329229434442248792064212142799280124865277506567571769435549545822213839292123052756725007168621314640150089340472350629080004354910204194549884253766521789312467010456907068630787353657668385442010063246460663552818230462144789135134304502829617413164616331722893842815738844941717540789574400038490779301662961273569883888789333159152709663325355519263922867288703806441243995994697197345840556166809495996555103274661797678854443977062701839251957628384382235643992174149565343174194726854862397889365312722105826669729334609504958471979439533146172842106698592497139724484288296281945137659399231211321006977013207414048874498926704010833420287191699108772255137349513171580329054417032178783715787233851161983971956190696216148131517419031088211595558528390555238859339919373965851022746575571135289664745939289758288221568215339137842364902257239681384113673043080464992947432921415389196558167209864856322305342783136356697608921391485429117278781286425890202803455195422811763620935659365668305211853051568017701156615790494337329494153266215436533811535129319785069296487466690790153082238277388403201915340822927528186847576988417085872212320052713977110317119359143994763847479781697541413031752676114392995888400317930960861719705521204613156515133697847898561378033019160715636259346466664977941319070888610434702605430080348707362088460175438568874352371983991521375961439924661862077073471535486305638860117833065829878467390985940851901244697775941374643929903311836703202976001893793715562001999535026085120303369144642088142696195468381714708321297165624293057358490103926938311454084054669484522906490045459279255159057229612713215622784849201832130056070900971684786497194790694205996681220028537442868319219758989138970519583115506048727234576255993781669422507113891920305842201733420075459115120147308889001811021129025817263912650907644566589990162929929939432107500308145793693051395720256560360086013864557917247056022953292167377568763372608808342627957186610865050343632877607011311591317898359592765375169234244923017817850582257408882273636509039248195134807333699356781866675830759667192199104056508104098880068620614394383618851643371027351501914341928159982424320987190645911465129393603472820330534194899293642871316618085477769822365902461264662466911638425331681102695864570588689921910644819475619454332647219388886651783131280532315640989823137487440983201410822488855440438713285496267590063909478151584463746963348447620684684002248789350467614080505588959988440097998803464190033573955357807351728462430529743405725857132754653814535814109483833687043463846512521555679503512262684516556346241659141232063670981473424310283582445583401403570908398289193489396173227192116428336225017917407231531859920764649479595116012476231676423498159408041694759203334242991050429220705728649553657543424839770298835321272482972121777327288656145306993566480943040168755832548403577564157919670459497545171081149168251283673256265345525129178330226648813413366393856961980383325623128243865638998885186432323539821404137625569981235295400789593962220460822460331997201469133145634789900479462962906617875822830478263859543420169678355757552575836684181307770944395076449901371176685162829893877010763060260546311090307352877078941555764995479658469808406232824277320468768260915754094514016294296694337566127642585830216870958474605517828992170471374925879928939080718346023941725034351411501305695883125222762203243639014696217983111269691660494488901749999311578316740710134826619112335390435097029949340717785810368707612869720941216457589500110820146346023785759265668632515249446931694184300908276838768136670825336680205142198407029756748936235712859031494777637319374462681717053334190350952662742719634739323718163903662752091258892545807720837893790399426938179462075960170987668598121966421155301550346423043065371178223629433632772120202520428367045777356448225752431552093787866917834787030883102211119017903555641263720766526193922690521382644639751543099630760222856706581042912387185348588661655887214993199273078396956165125737785196861898199820839830086651227672312614021448298826124673732322457817697024087620988862295075160401475305440786097881554556788739009652238183914069712553006272728131604018000618433926711749498286674428853338135613594056134454329378737005456661601521688084745637727944276283580460901310641954431030909474747593806593607302000036011639695722259640040113843120052532741727211554108922533881009612600060641466272195784665421691121495757409329016087479320441325851940841433789313591314450028226479312509666647903006072119775277626487786118722087666878844230891446945305979279572582175434454077088443702100551862428332699947711062259948404757266022945491251085327814276851992927096985087730249850908217516490966424641363246719187176730086297037169452446487463275670936097021699777710721175740491809768500033792478475002340771888854872819392583318354162856877150108165435188912215355912823339010318220711307868908893742761393849565098147616500158931696888033449136612622005196417629122034860759345377347696947746938985908791157674921965519945783336564965285803126276729212450445348471284219867932002928690857029115088021619377123822756355972391914019763339143652435922061398497782460675449924411362882309177311676648969484821531360401980691533701294385769011591985405846848152641795120164382665737124593645525086570741218487908904865939959275585919497572140577746381130518448200109822712484338109292077844415470496648078883540093739360033770110456303366254611042810006842413462044462810478290303111670612428186118554176936472848337547436330546367850897620719101482161439167027270864996037788328850559809174206678170849834182941632544481893664975556204393430398387876428109960515168955017967088459813240709387614029698675368458256988820406181181405095399526855856052890149720890190732622490785713693860982329945407115533952999132890580810957315865575500258310948236414867323470499205863271226641663109457476484776270884215698200081775980888741026725951393954079205779576814108285490529908086569841917054788010247457596332766120207740979718562389717141570973994802697271996607443593563022883387124934094894609215695182288931757710158354871625353597142998557014762495653101082173712264503084851786943960379332611191355748562209687510052895193144578369873541171127996048464077846931317571461531937624996870775629697213195437772552538626314176184755323686175483654497188182100127263769959894401115794783263750450348691602758063624508414120233255249379491966053453719788439930634788659510131890362460753950995552142636565027096716370973192981547721215089446001249185258765379851477021718979826693639144971448692596765932814688268172653118767222646724885398678273047260868511175577591905904218872336694293369602938585612541800223950828455352818979039346881735618852127976474512353008251114329828082435034153610958029005335654557557985670151631158743258119827167380746186526720058156407321945904821662790009333082640110791642357364909732705090032898185030094815706776659882014888142342970628929085707003124666348668567134033456533247132831576311188258782899993519555053510344434692288394980103088296312066149527170125735031081191042737698886563317623962722124955083894776384141750931795751224438403735611712886386632841524955157253660273427026780279412459682372712265193538871029250538154957647100227343670286858050857261898958605681529833211172090398291358826616491974907175898437154686407080557846799949797599409040687782892628792058995199659244786260625271762755492339970759552948372819848104519212575039491279671818002482896290167067064613715461050380697178593815744214387763449992112213330091770038023471425830298314294996430053214137286823481813010950844066596953546521945487762837860825435620691469248456476565103963276154485252998176167327681309626340992112803051607832604465857010023486016988790919078827274463972035386519909975683261950865991602711555993572297449684534121779509021661036578924368383860300306151535673570245988797886975547480159619524605430353718557249336801102826567929215488617717721935352987565644066451258892781363526805778871469686188821996844160159747403785323083489799292116630746889903488055101163142532542270378775925828745384720025377598193887128954536271259182741878611286653334764933330846270020184609755454539325227236980064116994034968825698461304376899028871943688116967810555619887519108991338534937217424310200475385895338233392728413146587450408667916512645808774272114758353267571125389394219263902253642345840626727029057852039215102736859136189735067713871106923261431065579853453582646673488187415507424856440934841223222376199383907047461831899962946145689512545911180731672927958425292046526934550941274607994529127757560544429787762125844333164318244592767084490180889221567906483433491844318887589539847114196100233078439179299256543987689033280030698829863766029311321141796812595287261653105117314918791324937372836040468951167584975173648161690235640989944964919730849592408686244956900651151036038566695066320809389584202261421915615713354287443661799181587589795208410177985030007658290869916836007716678199725273237088701560664783684851959202301677357944428290825652465973632730978779475019254666421720007144385729980165652018181557428378000305965334904437799779325327019365456527366979633158038116894158469110057202696603981489403521207298918403212945759828100223522170590764370804661934114109613073545486407461962327453899896252566854496247269840809161790674933085546483649988628684299330156876683766290080285082732108956124118691685738935235057493388652304064585216569199687118794292986410162710902486529474876921252759062632090716291919922595823769422830482873427460436807922454583463747610696954852650664879265489933975618088755190179633149189677311431330690586470387080097104884112846217121466193236280792273545871239329723351529789526193023435053755827326703093473207678441011740000291848150338787610360543259749167460889060873034572906928623636766891638316540313779845314667802107343075387029334472703397735654015559677068795145164338351115343710809829826513421200684281421707418186011556384847811880545183529164258536407873482534206475181510200150860201488508846358114028865611527939142411227300418805666321795908334491891965028595499790598941675136640059557065836355741272183217686488196488520902751180866418671960961181753593002403198091266141043571748648196423513961627913412982132691995637318444767776725305317978030392593851950321316863382937689613625345963535404086017893625752991710775598863600422389438389950799054188583839571338312476738402195231398315905886150994304673255512111700645465644857767339948866469422609384965305476398559045071281029709119230660332359718866293962845484974019136753704434969256421625544127847362859801500812972972966486378713742382387096589176621797537693666890258817698168680094716771198906131544711056943384621784053292173679340167987060358358156282891179658401090518883663665678193507064538210486413482852700124112346743049247751971101779027024943226631268457379083944150313858010502923903582235099503185558347737256154035677447161384779122108956231715162415936579209077457738485682310327548560477293834259569151779980866741420098357530657638081037762787113706697484094831205616376159981376395842535522305217956002682455293932461361810812249346305978873595519434392252863593222372976311120540859225878482765989042704689035899391648450629815221892747946976474287954345005486029217720195120127993270644616233903066071691743613312733830792204334648192302723901432549820081202045766491873151319540283749416157655284642287826389045639992241914648238878599453347285088168084904605023542154645059779684682832365537300258734209888750623538170926341716902432912257374186568705423155105906217410326188655764596006309326751177231411072306197115384783462833739855380206820146295337474380008023062007091689795552881497862731409631524850030273275120203676520075309933300488913238922233232988421095116761647993012566610791299008426792950876501317515920533356556947878625356548942018868188703880980882811909578699686272611715664730578910357615999590965893849568445778485413426729432615906664063239156271250093838930609432739169269529602645429579209443589120276616078165223479369966708718319712804188167301712401663736724587221021452711230372111712974379793187834423807279015779470974816580768186479163390591027828392253911761607967925666904893373365342475990917899589213374862058623151719692354747729122393869464440359719803498265173761214451548093343243223577354188768066930999403989913291086693095304399586818094195594957566184803629769273950902066664458941661916751190342563581372195245741144330166967669022439079852238159023624467009241775552039010533126985367773982456588182114099862459313758832539586428583103667869785203162391679373569658795386798975888804054659275589653898724238638804042758026397025179962094989913013883968103575012354659281221021625258516603181414850878704397022078935370979894968575018002972026464025933424518340235701330840150443607279431249435287334153417099700302440308754906484799542828273749618271835020831491678864802443650223005223732765668120478887390156648726557359417131013511298576596068696280154441901376640228511832579000050851445268316462547871529641807585810471545700440156077094725192671289101814633293636955909054310937516075576410586213398269549702535808753599741267815887810987037412860024079972607351579464334961518628565029372413913536691810430345707668658672569083095896108421694807552968257813096105401211668763403443198268988764680774281284934070269243612858777981827477680754254901241420647114240324667985551556000370262918964869265808437124641063707928348527673077825762315496322004251078915368794308941821765665445817405151431420111125097942311228428457121222933698077411787348019261501914340062596873602478970808853070860169126481966138017821195234817514478207994557268748941977095827352806945164164675252014084709201445875720147954004376263566481923241857862040125110924567428931393849934124920489624540597954873525944758266445021825340623167924560611000223879653943259326967587346693247701184011589650319266671204064924914867006911363971632833048933823471032028932001719605500108012414876410089624075449258248182829474261274873042313716401163598173604243013077587151562735261863968564727157403214141169632236046376491022094041826474216688586394153496712559952102135216925000977293670423471355180865548984396472538033975180058024160060885372921453262221090956496520734206686691319929406363034487225363900330803780827564281455223597597510633074086424325758775976668843534373912991250442926015020517155081167168174514493393486505228611016385393942937071320846468913540899460507231951036496414157084196739690610094475685240907178233878975356094445521154153908631838049787436486621463226995296386725401286315406362340924867935334812939902713518637972916197725339585083805195786350423621749963183220842451578785560491177527499457050093563931554233760918343583887251625066742174471903654664422536457779269575469222693532864764649515340777219091607046307282478466428919608856893792730612607740441153792260646641782803934232921959871594448530681841355177236291858839571136594940317776849810427680061821541598109493916157084781088973294641338027832446169741391624754872470730005916383056465349509951489444312703257155168326801301137866565931989013351348928729575201792701948773296513248749007789919018788504446693192608022347570308300526826195418981044462334254016089140040590781320046950838030564291587429893538816032678332948143782503383715097762018824838856046764788601722092435736635587925853912533671831131722484942301117246196966030473981499543664011998426416528087899644027811909989253395050544517319435252171702408190618266253008007947654217516795521577065002672859616044269164238896898706690619000922172360337554868774248160064166386081614878792186405492454719771991768201270527899229209981937789401353225570540024768566222112637919037085170603285376371407337612946867758727209334488908466510478781242730711910571072298406060827501229573874385147509857639124249445886501041391738774864581590614502811998092287643283622308831173648974111978728166085826684648496115104078340139404773409514979318642708338338808285272880151984360182716633927081879382992945128958968371282006032664740117344815070714433488583156939302902997046224011439809006917569365612397640885554465025986879260791379372510316173071435617689517678207517519742131886242511751783743602595652687328015026943684724028343826616860346740088692830284378844296790123285770305364377798731841739514190205688778798849326260445240260350181595310603277463076673388165740881758092655279776987928209308160361300551352426362021404928846657542623254510218360498856182585653625589465312256385967817338460154713422144654737043165660866245419293298266523351733048234761700339528036305008478733102050527644387058245617731335556789939202081878043056481989350373892011146949772277948152428978960524126386997310908288420989812739745432547567648301031518155123675258935286213831620258754519731865202536324588047334035944103718417270286687635314009357200514914578031726895135694139763356576219799261422849800976836771808902836346431433901441310396469247566642155633838306295352301314728567898675277397418399642490246049303106270369239394484155630335634988987650161036589034968375736613073859083981387175726956017668307246443988329088153384576805930736000610257543719570330336236326676517645735025973544947102512510848421111452728166745558536137142153396866961665331794279822673952973540732430733346630040772728225100846417282296059094944897831810598226479390136828317261821021983335907308157363666166101302432694856844273072009772174161712570553712202772320511017516680486918551162977217607329361969514211144901907183692916273841900649760294413909249460365248242482617053225397601952477508692781798972694864607577273773280129930120275091312824782091661782055740275794145115779583073073363135385141079289861679378162909729720434914216852262029669465156429682517941955835480922531233325931815210037371962737024725380566673415234297055819124027681458124012856452477357421062206899223841337564211176550314860422155235799681412362512846027713491881689637058981903611551083404682478435953951037027862664056305131139466896043810886627533699656582132085490528492557455535294036247407590903328267072837163550760895523389729018319512665472109776206332265933775628960745959575827360362011085203678766044051500877478443886011023167155612545162047428074062216583503133568333957157483326440351946396886735093808332074323739134919175446304578747309584544482161428334973548508541698622548618853553008506739160179077816061719738053224157290377781291189179420633545483616154826610169139797687971538413515313813381619940821036708477431251639304197843558417757984813524839828828491808501435575322452465048940212132954258686141575412773098082483836683722156891441411435792751867561742280534335757620031995078600013005933678154111855477075085994648936835041109817074643376202582252509072001649028409877613959723208069862744622248095385479329439479497255587374767229545339783873488645890224255039351077257485310962930372193460030264620113390948898980606978605845050051595788654288021225975158892482168509748067741407220682560025325302604777124189716005491203132834137286302105176945270788263805662982118291032389146625068489644921946516696541581848946574557522797515349580589798000656922459689461678879188329297804558826258825247267226057572552669976009153539279052744737980588916150108041552017337179846439644075155852077493155686547284544536700507905898187222687954919284957189897229382942678660227142614536353734269633392283226327191097951366532481759370274444357102539529098529210992955066189520986383906980372091679088369035663463520949778779913925249050484393854111587845546879342458051764596545379916688472762877900143228619411075719139221280292762198410049705314044374677185478065909681282534279435258504720194536416572308749097378714135635859302056277258213741688958674468717532005482719219858174593288707418702483852595519301998660734635548361152122928355884845122337649669924071296278901223396759570897650159851642059831435167222309049738921037002250722133908963888427390660556135190367558607285408867396005697965511504754623881375556844718481549577481835734610009076158742080825713484237903854666738099664762536972251808249985938932607085160826941552234223545167307691485811585959023009295100439946393430050184037490662361547528101443746232013504812194699973370060457156219913430405201676020338710729294376318588430532376865423647304569544281420367243016618582413807619202209492784832607490345640231165842739750661964339860729371930277905674582801944389359375492185270397893229918103289594661275631715202853760745003344031645172615658360150723180927327588399275805580719850103607465600877210217718835152976929835925119720825762378906349192796994341500618050819856130902915714078100569723895515264676674850764660748278299060763893606780005856677126929884156929612423658139947583193652401823023341085537281036829067822641554878367489009643146942623832674773941113184659210231084962172289800838673880032827784637755539409367928403652483199788166405876940309604114887266386102482362951608535732673913500679833356640592787527296956628168754547789531525880131770292924999628627932056436918528534490677402854734599206483309741694519392498801125680802865648588974902192680030866916977482451028483340124383603417714233345728744712943294028183548604678035981234611782368787742420959597287542636961765851387076922683658034966003241663861790171855551446006053457947059436411986412928122838584543687677985066462048341719112706812464889102384363585646055355254593051363164661358277528549755433766582942791210649812221888922933121721263404429048229786229358834306809401266484803506362556094077833780929014938013155623593757335284165407294437705673052433662872630593962564863418645425478974923340550653678916666829157647641507545933106916689613925538346798460583243174990481028392044669791162662891709871274345472036056945946181406275136362595674572524572736063333968645268314870793128323355007040571535275993130181772175786817770579238507332309505115248061904753354666039524316424507092044882968384128579970349056834839282104043105270107751657094010490569665334577887660599763958251240953053719456203993105113034071239658672588869625923752675346029624840172047558962092432636702187237273276428056402194576243811134317622036312317397874878124691427806384820768803935396626858385316950599262827917320822297714310431948959725023615063315522764563902180876836535132229489073926201504143598204240087826788655579570528799927650482801846501497214400685723507818048798607628665761068046494205537560352154094621068818752077605608663542162202697210775693621370682354730107065453909654237624972300410972632713017238276674611150106062133303611124395866225304971309724273088883791472394490353753927135808396256152688710683529058492495214177940497770806343366785057074244731361589230831702827951378277999834526532271272256819609830750821324200290230520272383670536069483474207838419855738530843325240911572973963859199561103844134598114775612895291630033315363837430278257943973953764802089521812834380262724866823317076039017331192972978249139327789860242070457601314150734193264453686607515979368977553951415763779647761603281849156339776423750171024976395125440971216450237319307535695312819418478281345745148359941993713842385163396534428702688417867449477094489385420843747826700851917731839261672373464868370192986718209062134213510507483429817970116590321168733904768369330031776532600334153583780437891779547603514830888622966022837490980966739670175123941445733229542413819775021057144193060398945907472707453480638376571408398316472723951827126143764907357714447191400427407663622517747393618799530834957950278770221204031179142512996802567172238006202732780359869737068051362741486771677234055641398678331034980567863099415181631836716546646792433822479242872719914353917615394141335790078276595966299613590049085982466345035131057593180480190596481819681113611075407605478939412666363689423311418225301696383377739756727991824228760748347540200831483988267663358999899498844078064199192240065535665272761861921206610170387588056876693285727372004560517956286274784293021549257924688695413424413158002401931880129141390551867185406058022735598292266260543077186596218160140456352370801831818233043309198842743028681431084401751533399969473927822305365898914583193786533189184951732542205856838393616463653019839580643290963437372594258997357535476243963602085994865763607573592141044561653820927661616449897795882572527817863467755701500722128483652644670326570365390192883719915697555777433246173444653947907692227943403465331121828177483156372273231767026020914340824773189079899791129307567465719412679871877233204494460363488728015789452305131680449396160293729559104292753586667054905718616481862231247324270545523643472612120857832688752704129314953353484616924698344185662653582549503274906289994326907531544859567448233005201846351848914128380615696766880067691913145500686368423213145010774495956653078826662568774842307807074040278383512668352271792966668210864918710181871762883847442032561975069615319977040700020009814570520370451825111058969799970275089227307741164222794988403300578632174577687707883627762528712280168385452810738426439886060367569867679686662601041675712807661738133894438002454808026184078339080320065426151929548596479020836713796484857710365191558688745333280178623373689883416256082091599410413542040978407085797929520642267201843292911959149308854928251207580627974883616146831115811382458352126288449465548791994218909117965998694706647464885069321428341386369584313104286489432967563947935983846579913937105353311166749763173423576562412576427230247495064512964197201556897724516591975740273289873969280917231360538242393574555995997599135695381837607414485577001477926129831902364507601267140351802061425530253795277562875170092734875043384497117124189460254583858392491029398289220546520325570588874023291662947284769785944912428201424860608562782711616793474143259381568711793775226574420121282935759876876001223798573430505584624792749962246874872411233965300726620491743717130428858497707581753706773235442547570135357264515646231240587635638814198529101279881279063174781334251420935617962612982663682740101941969397028215789605451185963542071549363039473574598349940073711500174081918751072005308320012081083429350233098052009573050242259939210590201184634388881695788072907143184698001440218548147507035278675928602811037352830524205969420455982671949558991660948856928192809146209041504563951641530298199629593898451703133009110422883064126584823092279016642254638897329702878476032251685696910801227592714595608766263006876801215235264016326643507361760502382751059393252923528975168371337760278877688789772757837454587480668188381642790462201158175404746551929214789657159928744711650226954757541484944522766451821582957312574313358270948846768057947714979569109357880823498239695103168952324581790354845185627997694849053806005239832785301726185395783258925396039254192197624716396499123616617356854218895030646137538588502805334607584109599630495086230549609008620477041624606482582830129276436655234497081780170275725552525689067615225626218728921332818679331962134677068240633607929613809274336096137593204281275851978316258421716826411241967204637652780737203088528695211577506278225838997508117764098865716828712842479703095602676938025314586906386159832223769281507624474090860665494922106687668399831297794838526790626133100916205133061349400919204035351533058663314698052802553095178289403163463740831314552201054764608270851682143604730645435484955732629912721582140903385560500311833768076873862732869912547956394978366553744035890517939153549450768729934748572643691384040500288929154281784741889800191494356268789074150473861602712174161333682639133952762094440289180618949374164731411999296222716863084381544570168324351794683138335752975098254923268158282009240815420678184294096984061583702838881046855122753500913758478384703403033375996529439781855300159521937452933058582019085992614816882064489366693567584226167509836718076154704709506297685174566365409571782900398372922406230233043868990472319741685871462384703544465598107930276801213354273355574389402305184900454412980591683556126341935005374601470588376180400755596920617908024257914005030032292600030036120562493777454336945423833387454598619589570008782528851063864745064650716129902516899679061151282098091718746389430207517944526257948696418519187046440612728088753210717510508016316934801951350386653258538145032259863697359764910383277076033677132508126486148325153112402303480342007089639128718043293221041510734460812545158984845811746428903094410815455292414965008466705443118721326892118296262745365032695473435125110572393730488110539813161106656635674057944895171267869630149310208805384483219806674019233481849473846157506509519236603174691488010574454621062415651495614214389694580695396994268709134007799997815262723587265145969823310787027517926841124518189722078333308339290501120943145497938986239604143280165750467965935584246712895906978320915961776039496689047473004534709352218326307014781651698970219269789524973121860592103419230791351750120933773803913697597623360364065439564622342104606379601538888123503700233575641655190580546119936118523758105792533001917906237314050816134502429753918466236085821340661759108753655023911404736620218462262252635387312476247239869714891418884044883576555033440647571757126769817363425361596038886401066224722944389507592313699195954425529897275938507021564295911533092583152644400456798471144908767609954864369313962214322991161765541869651359102056794723167871635693303736084036840304481737342218222621839752158739649262089261493816653835133241384450559492470270474976237729076549825557832230908172622777539250544597702496045304784849744980346181939472942357830186041326226708033139180094418901684326200244269324878587838736661144352972469252311070679836552666122263268854761159964083932762030259377658860003527887521909531465987047461517158664745967261342508158260791989457928159830761903350992955508722031068678730190438692266837816988044975055868005173793897415529326308698622958336071766094061887169531824494486162754680755394047939280669348856088517691606768601023308993148123522998000626828942389545826471413712154072475335956161612246888311385595182339971084334498529787965170316109750440427320229459768370310176000154032055608430000870764276219648852209129731834843907607666763842442009029131065189596132092906771542963434508961149880013605663358514276568407538304244885324614696648314460213130307642337792074926537711158945384934743446286340493582786635609451888797482364964375040691361567196826761063502519988361894896814873064363897807222346626959119805268349667284146191343873203791982307786337042101051514454656085655686721130063759592037306965744788140924692994477839013298614611218076456454972812877344982717579922287253552971861285715844413083827053977809175112996875121706824096741597580765918460827220784478782945290754950972335035530173566060636318836476129722200481005787855944416255270789197347998699921321028731114430783422171215730906764803509942256781591941350244634857083426019851674367459405287547336432073238010498287013979873554535737481579675133244882803722748752187379037363120780768607933660443215084632981358295986545645270788460177206955878452825167446098862799423236711618553261195991610174368326075143117873335357003456396405084814823069729079661309833823745348073328052455494799391440396519422400796929694206728842454849132766677198237720036870203891505538975200659681525587837719990771446861072462749406074082731916321773831023359768217678847962377738236816622359575716514690579281478650540672723687880725101033116294914586483192167418511603131880722964152047527338122588341239664632711474846650793946118453739164112720399177998408979160103778349443126709658875699055498544477397508082948328306525890494860504178616706535974026553244643720066077742584923006613214242008389813438270751126908341919904065050360764689838775731937958430828608079391628295631641576410188589420773353873954505905987999438133418322141246713271877305503332431756252215588260345136056130324461276561645301538231486875033939890539377169025872132280860357191060897752444365712931412635338828244919448799217879383276201452484204224310721163914412240322152785789980717974302407439906740635502377013814690680132630963854470341967636353414211143172240428726633756868068087466203446725380404928152651799967428548019727360013993126872909329803561986066125729324282737444820598633055000769399300838549427896414001315602708394325614489505709921771641665974869207187068042891412525956573103495278427325945312441022495278350317043377895627666669912802190088440284020593048088563367445910445998271221614667994562008143725111829923631194323984648380112513658308449533338154578879631872905543479716925751805956913413042151343089321658938714525618361205889244617804710586591343314789868371414199259897757489291063725784184526233301657483639063388525501165973764918783967327468731565051006232167909668819380776182011156067437569474562623382201136512437997828635363393201717336746787920968588043039359844610835660838974384693654977641828182486276274005395026190084781034533211032916643860171415651554773256964346049886403147800625839294691900806058370941312256488154877631964948556918952127738937338680247660116578957737722035008061872483638112606051209361386844856130796641120703758022162931324174069729627473040443347572018589195752513689511539864937156966152852056645032353636135021106605095409490300438274739381414334423226037613231296784046256233105983557962797889461280905473824691007388900812741537381824409572030934763140122601419286921465555274788844499609109974385104242372845059250857669642368085043371921288837210519749777461668865040694956191731597822989965472414422800304939592267810200469975040879173497052265212257504507555947548565511200918057023670533557339560150194039968357096100426652956314886424573648697291751642026232236716445879285270830375372620369633051231342180111384173731218561374538575759696340008473546262244174128067667658418973708341593608267675149052181727588008280023334200940346878439810809049175728456340630994240236491576986108013243347402637515817606341545779199538617544907949611733625923998660926213028283300901196134524903879037569068857763791046506340031644033280975055570547085963827010986097481627665904931416626397194007757672350866883277654352828488319852896288440670134132488644452850078551190683691103337484848824606420394173797685194620893075583233316709799362580978634260406280660372772414086957218927114158183759233993157632173511956181040801608033313164617807610220102844974251774978341075315461378537955173862544005790723642038673273431608121910936183629556456287951535660492180529253275977048243479660111294697823188597242952464347796780426987826614888785536336548228297166540300553115865303130836311873729421758248981240057364306911193365728962289511144177468279608477017570862229336633984409360934488879206051192641942433174774959400807270188735511412131080409215598982348716850667568741478955239540880378709485967528085219914211823306907221552740708053090272685654573744520694920064436259181686130647431252325764761850564756138135089477823545802219945547107735634712110464501744976597529101693103600255520663992789124504286939949837172748241165029245423117928359386495660947761929686573545802230705067244250958557918118480277769478087292403478319899231146764787504903964045798813332648163218305152494539988983764485744196425160175963528417858897031535325924757569197179501551152282840405352212458965392283584348027963332780456397019352652918682172036623045679903663974504617763798476704665717794015937561165877729477774661799195697488672925138243723146051199178678143073817792266539090998206170825580203222309672120822733019452467553068139310000738598193452936107964239234006698613790952186207600550227385291348283983864964634555964648726611340552927226783409951836147359459762711253367696755518106033063752273549127694771829845915241243356458448744693701083065688235540840526428428107266951044034351413543799265119563131255675032220026300034644041790426951457939618972901331595459000658081453566660458729785231310802560666605031150060451066255749499277946512488815755392087444696549386253747477492427194153917711272144387856729392309383180621469516830832730341744805993994962675837289058209706561766668221742870972373826440686513322211961897262823056334697316226831013096147096694777269093908024374280535174299038505566131915590665144325988221096631592708466682979726886906040118224429716895998258541968529723259366036394244142571311167791933618704799374791881468092501074334597486369138900371254469376581928347545406582406587842515541148519794213631530600616793120003543810391809746344294663700921721333750363624182308765997965429866724662041391872905065132316732609494894307461831872670070364676086805064647161990992410688834952833496149265051266822421888458209492972160985858389594874701893964447435843459123862916045848728759467208670239199278052267116440951119678397917127095438399672674094464486773245952224968026859141691347495950978410584108204973449187808473910209903831288546709224224143697041645770068693657947675869324048472719340762118310181457670425467883336506883822103804778081736533433608311885285622772084424566194916178808318840059991052186205859980675426871177386151466248308090474821136075333585854320168273845203031838925945357482024267324003068854241093382452465941924953885032493882711841731247294842812700238212005294127485055710875856948613090099234329396929524614183392404968770411103779688886842308569668796439744676008728218307961993513609335964785745587132370857751078308930953997395475598881317831065505002524092675491563684685289973181730940785201673794794351775163202610953355265150918071027944827287407979730230784776157575879773980312606390904050546527528928127979817411219122375626041588677319637362969198019363083874775371102527254936968770172803187073363735697884336969668476931542827144904290656318887545712639762563559319014069147885429216788322676732522721257907769908808593160166577847500005790572511488853602158844234089882169303358536452815138589854052156293378103222272683647182363808594410533860761326237458964587157044462605792443486684992043125969539381752842362543962356394054749948355958646343775184281377355869207987357890626218185110194496067613137291487071293610227623730205907881896868671022786173420579464171338807107878316189616801666905443263781421560939487148215130933943734942831727522091531763715632980586843636870920363603700381732102266243967806749696522926183888541038799384391243969663551725762017691409621243911514311498068583023319490905443997103411445679552394257284484695510431935909954243874484764845551969310311047447286560726310698951571653472026855053238627089969139042676856423799318574075983612277961122245012030513560138730217530882770111345085713350740882204592448161338749760508022120700539966415660481645145396567247066016943966047675006540325276543064361631052802693416856570109705948296661631230712657410172526181228302102565959780590990700292954480916841483006967008789671837517377695627909477464243837269534399868706744987779940833149301897319281548779004389601990496622063033652064366885411904099841467838722207322347048626793144365636176537399281410552763817720042589494730557535205433529888232881668489385323824116593505379950511833530984890258804536640739745927923182355226989878623838652236082308275888278222781439037528033152719494845179109616432054077097962060627906350129169854293164625396434587665857807120316646755512011509683858845504843195953811547419512771763695245027174573378561812174367218867012239639426680887344070230086566382081427292540743876215928538800570831162959616573248083175904119064484135126094593684498417425982419142250043778560393619241759061736368084926220700064234490542214983871182757509762783212356139656837518556057406668245664497267846767344461521699044113866690504306571165178696770794255685627173627748678247964380710749789162132187832589398373457480816664553693806232746959626088062495036034785880754097125863916362184720693340660970198481085701864871923686395583360819842310875583745500569989569933880979262387606730582958179030322159488820713301215084988280856457439339671696568809514451720214220143404149562786538104708431241366640840770861997562666897265048853024369316569440000279092452005573623046380365187139595329339486172953484118020948425089552127842660400043170719471521013976683756962603246078380880294687452820391900095298957547043517249999286026752337713798468387560638124418589264715873923355941511728829033666128350936772896815976938595354808100487231930567906530627204760608785680525955650052724198515774416749111515963908627972972014744953773988281003810219644520805537232727464734778860771988665291026436918873720119626295760991715813460330025470844680973955005844862483836078541478712886959580495441974247398091407137269536188824384053435429813999929474746846801634504139534344492884065711277489726958320765354672144324352398678728656839605398318387743386649263500530964096293943091182939531544209457445140350628360335568266045547991187136174963956274375173504520226040797892860471827055489488978511414177204649695226332824515623635653739705391106220167592232562947573346879329113271818091458745657777024724118711600778910994871689991332323504127613804283344294484859713145218041836984691978951525875150461048393971838374667890409051368520598286980862057597432655298977529703542643309006499062302676901094859102114700932219019743985380758161794262906402922562456150910863707401012693442240961493399632551869438529969907444083555670080085049654055992031847971794030254505898529090489625500082993356830271748460790523726254677981026436481865419529366644287138745949427528506440157782614905740170114553127321334666755226566517742738342347748422251353097789029806482232639357125886128107887423144733792165798047887143267584797501026737037026715865336148038081846991895804436620941123888653403417511023252561049154565964418630806270630207267506694768035609051419713293681616309806186249644779753926535857732795155819276995564571084831687252673266801997121604851089775332326213514147501935930909501049471912316095090350629894728197390511563778222078897892473640530227282859351844842975702957860941845398055774778467287441496928856544262323142558615960359660721412287196919735000878794153232327101399065046835982206205542029941473807338100927081245977122301108886108512522214692627968186214300386640512158408647933182227301373715437522866762978356895077590272927563847462233088563387822462567456524322189896127521804908677206374894788974967332897556763592309779828811243030667905381418820204676527521947095781289015518036797179338010984279509839835960980260461962691871166612951860454532667547980340887197014253236323919571955700597522011340686299556433844873361286696226507322235060665920350512051322752004976316814488757885400016348237207874775432696613983949557805096596314613171039626845752296942351383326057466344756259914714105795531083643197859306170358108871239174888018217373167123829212922037465616529760642912145248186789023057562257422537759139641508554570905268233422320635507437579483608802839728902717834286981614092341326584421863077686590859008968856749990598163958155287896999955947774185548863995852415749663444497141725952412930232454080108367060883147897662685853216103892278894200947419850126252435419095961401869508399256137620104299030277871034757307378509682247420091535471505019334667657467738584279207501077754443975021188106840637761452930964675983083033605636258362971785361879323278049418971545860877507659171023507327348624537508653976051853776140774625531732560252651699490470368013505428685786541961287407891430083966670609215964681082262708949794493273315859704425522440778763677766101538996399017480555637063954951667235486244767790440198895640733512877425559422261764730994205641884375851923025626668774005527644261777518261651929672477014535547930209900965102316154994883318412731947634995936050963017730172030600128717767120616268076757440361319821549380915454965099522491155598362532997616902728360348809936410468229002660057140680308072482718784055750090212618440675275638776285339163172878963138504266667317647288010126924655197407440721058272622744699464710594319155873025607527924091843525991644157344031598169867591570595584573206655745948939084077123476821960709442339352263024983771556168089057539318833754043102982763160415832537378294567328048932568038285147726917122391644552934561856366920961919228237898013672479679767707926598731158200068111418272967732610445760395711834121710971275298972701626291557292893541708429664597031855740509188168586295436043497068765950384039852001270083751942499115658827468200105377389621379891844485145893812050389226432885080054334806614833258892370294417863890165735771654588299621668380456831803435443116555803753474238085524923434782217890068474372431206132273261152072732544142605197354738124255245029468009720695717227497484652412905793818297441512251451485888130837386400333637474166998307051267196349118902283589417659891069551381035080598319759123034309943231933721081701359859724448827814130877221708019485091224004202967920865519385746065342047861246966219325505651732001424189491841652729980731126808100944948635873239698136563123019832574907680058585393370050437090524005433032867591012216748609512472105424376560180910162579621568817728217721424195860463416579529660376477962353164077918694560810719648982945851606092430072783221425047943130882851552070483920005500906536752095273758393172373347314405142132753698213045577085813759291922864106550529978985696791435850760168752874697409283931095247497348042184339965432517296479041747312519162869999341014701888766375551966213601335873262628966501887971086768574462469989780277396908742763842324680364222894783220477027588304205809881413042130518610408032189861581577711062317139043014970658148349117633891104563643921112453056279979662846787828368630301764734230433386297036327006345527335448458199656117983286063089330277628057061134265249592113272251689705808740304056455893341943552833675923159019702004260338467503273693963278395896321164719078221284524769802420131175064887924125285041583652506260903891256139778861366485416747462917491624271402198938447301689543006435032673958713484781106741518269100859498882283960908978909706773559909597823587952096468687223621266156439542788050542137942429280321637061967616475371655784261366357320232920202428559864824283785662830636581252643109837355554036446828129078535523943379731038907515606086023504740531884333551399513178152458719049813832108536646523097492139552739885731722861208323000331877451865374606536739121153101261841902235463109296552291924996998013007926021938734362154722324134948129482700952031997824750858779053913453456577444397039190261535030835143595772141894038529108393270489146055540170597339300439131360795799221664346783897125363431391277334468265221378006868375884649951186044765739629856159688417888434799524499544470645791167963250544788065481071014952287042947566949285253201561954221323939980544444049161350567312138260713242900832750220635674510930070702443880961070758074152892535169495497491019726417810048503960492247195911920461496330971913706242449698840054595025264538656477894550370398615858863077215615815984913473386193347458703693447090037551033370764106781841897618378107845307836438615065115923897834002632641190521189932047169553600980523534577237555498696478908735685370850822286072022236710611503606056891622735235706274773092588326278862254360816685454965835657587309333666426354380825804419880957858563425110522516469674240444942519495757323074350345621188070308012429065900105514333039867849601848912973920941255470361782657141633074471473122714703497974782613633237964590041697803917907644971497812317144092478751082240144942822427227059142251491957470082924389527355600982693652953938141852301918926859860315099848663464048349929219228547374724194655789854144561774767931405719382580629712616420673078054034384653493172474475326348799609626870872578687521479128498705887578224397101631262953114362682978489627127550110863382081930923745935192410323000515610195991454674666814627692255560626779571613594046365898162300011739213173213049574630745148370442530666574182433212087671639117216429169717431559540532763929661465588554460211465011701227006103738361027068930369791536232188396938678938100193839513863578919151562956636840580886609080767546739603616404200838695395400775631183683250296177288482800214578218894133774307890803558256945004861154931046580724684245720830191845462705907099273059106983205062645876608395580124056327556531274137461164334961405137340058192667504402081398911630743250285140050320869569178664499702267593441164246549984966050720972525373343101811352586230641371367230283953160918319376520451406486078690214537175682608343942500113729013678638150431714084841355338400424891453417365560136871379823295855232263353109304130321601991981885320204377392009380905337870042269806061136947521138958103105132069397890472326306467624561868039903621334386130797867938672828067727979722916598511089026760848279705913478017007869959178881259601697876079499510740358215100556507862931127648023382649527800841666246427272553623580696871867440730809613634399562980360674582764292491149314897608086344012450582777457211240916925101398481648486111673111794205949489346260532941047394270451675187206908788725162462011218986061996752963412632977144698876813878394381439325522467740411867194994749888454264023222853941359333926708535305285901261830295823240909594261483377037009354003783512408965165633702584531517782349081585368308498859793126561415041435534629637305841088378563951464557871769746586309106199728859671209885795482370540222916745548507076363424822627758038298541788113734890031881277685682871593980953043314337894453607048762647563896724172483609549749984215425317106024083417900100875741392671049792204821424000130149889994808174226010248052113010563971737718033335704498257123008986430622802940365146605429971852171900203116128027951763456853083811201948340407363573420972028388755213716475292214348807860832231250157099212154522750851016635771152988099331989757112928227243662395496956383418310647793031800359669741141610200705755559230904551850716764044490868688630729947596776770346501073684539840495994768623188709855104056512505832605199927940536352296750197598902396862291285060581427577838102608090751382247844380875589920637577843144145561474369515146458566423752257474498201926548595350247844081879718263964379731472705446288490539279914662663344242125831991042664447092011784333875066598667947015496756464183818605684071027698646109443419006745598441033620554972068075654990007328629444307296537174067735103023916984984443692721085338810565690856019967138995723214950108228510932492815821309498333296729387309067694666541282566573713960183470390279600639122842720442303269218629856389284622464016298262541990509200125004279703387122532202390067045242645510154679639274253916306655167393077554603671954815470616031915136509359334019859954785201944709408951944574212813391716981131967157680112380887206901530013273645229981640698533287948630290633276244486317762399592238112203914154696777383769727726290398118377057988120434996563990361244063077959819730610677398257779186695254762336538836887134197869441022760425660141671540976746297722287284894755695349261363788353826470553582781518088075270106563807939774819001423313971241807445528912957774419252674712621425921088990130346869121221748851105026189081245138404808665211903827302482202280012340217235157641486813675238869134721070440920271705526550409374040156901286540379413880433716346383555466795767151230535781034888406056886484488013453321914759272733443858334184641246690211734466904741135348463742774697351224433893937882766737262901981294820591268711870653444269730324336765222650516188410588328024356566571970665029294695369538625231584530761696078717171341026108774661450588364111529508081270640565863294235471361741734247145467111163802771664104553316278463305943054254097808825418010029344440212594461406314479952534933183910681966131388816605349347408965389365454188867589366097219055801023533376520094963240597687887906930265362426086420508105620422115923743378595826246664310904775522673119996368401937139000215794260014290753424069272336680979181112368504042670099106175648490880338844218310843255175276842757967777261721051043732052917667406923987543768316773168897110155473098610856646141028213175064706689421612817072220992913472568717029777040363219963857838912990063831804665145203735502125487099997749869882354202772744652164665230315816672065736851941618416464400996343140519455406600280919118634051324693350996282914132874075125313589540887999364694674593513985982325446242772704104275132817333967443382284800526969039792701953861531941199885079322785963059415814300065633028664344258167170003390834294666684325725382490110675499239192423027876986957917396053849301129425170090936630350185233666691484185675810565825869361675974123210047163371104796996448112479562494573794089670730273241651303732835139645803384123041096481937206237221075887292308193495463845571973283190648765736608776023581172604290631485050912491004969314442339095150125115525653905081829612826726027046986901751489356689319184050809126268070653904361431964645701591106079121370479683110145446766231260561296051834871382526155313808980956118300270485017340425254758255608354825418509392255813241016410882011398691456726868191505417350928607073045470775769415052384513557983536400285775045496085302037352790454942393041358836320982567067541696475597217700090783731320516784667877370958557832208781354810697347273963933497233066404531572709133689032279735764195491025028777168500082575473395718668033910101696617163453235779820502504444435056221650288518299078054564395209646037868257602336334263156311291694083637159661822695542493605868269868609440969526713122148763865064835490535675434669143136192909219694452149780524283741959256967098497675805032338780336337463466248390981642817172553764126632845412974056367307671607182534035961231031023787590679713896042732860283893743050409126467362636463876297546883961675247781141992308329684017553125673208854071557519397408901579203956107933577881084603851975736730325687650685573356211257384356190059773104916351869245260919577484559755723953505189578126771576417497208388023472395420244179177689349850258143333751540858974979774327722621233523403817634084251208007739962594323996882984992392212211536247504021624264957517930624727252487150740738569692800615507675599214246370144927442072212874985901595543937298980120490700793629814219875656398323271843756461410052561589045154340776075132771224590975322975659895050572407047400501332150612168978487790939545492604277839779837016473900153357671071135925227108144717679758567359419252638453162406013013671261158397425568321739159948303815537041201358096933780361719956779480040200162454240013426142670226915194420853951879198361798508949648733811941728775642763089551690383896619159455405741464053107696053030057303613054585437128678724511019568665733083767707982356191050933884566300293262605309601310639940134052398939965687655874268049383869740125128468211474753237247389614130420273028009756773291766845245582189558000258826547915807445420370771858019594437111641675438929798839288504615664296008488911759152388783006211880722138421364638932429576932797967717632884359960134919444790196651758088413487138025772812167830525092945128786467801879368294527251297536406176393528979625752070828499648937734680533461475696671010684235751095212098358041625306429276106121750489382668375646102809885766335632288785217758116240708224027357136402185162527645954553624960837505223923696188985415528366177507300350429796383596213992688325577119792407336932890762115608658100768093961719947502665090058760917861832886868955551594480195291448799407879700181904117856169191788051902389377607962413040374123542902027748981204682602800097038820430924949380781646781345080695019748276974108825084616413633983612081047447392716139377321544363104287935177749882740441820463870787897277221769453301692688462784078923601712688667647728242107389477319364577488315371929906900498509902427793165979965718972880106199257416773711621390326452309360519693223109449850718842470862013599391477445829344757816313280982908287186498099358727039188572211533722269408542381794573057257077716907400756410707195298927754767276208890679219514863543225891137298962178495177935523187132646819720233196219430579298375152902112126624613639954203466710684013504760961903260954258148759297545112268018427019214271928238630514278299234639964830204700622879079386653163773688646781999187988072905176364366670644116418010981062818372837382047805602093200811029712165141189260741811643790869389912312505964058107074621676344724171963278479094772348652273107621431689715079333406923343222918026440463953483861762712750925237012782825587007966293921114095371139465826124156844642758670007933411760592513606976606588298488417837115191511883921430786517803477333883873164626037236842871649560215290018826611457825510408267453969868401661115020630328874244151017116646089680321325203350576177631001266414388366039432718634370087961896029253797110244894737324627004027338441618437769250644279661492905236555911685127071972124785140449070750085403388214385904796330880433307760372207821420697841047990796327973135798312641406554126365100048558890536477567949335582224727340546002405256486503935193382785584675709147737125157979712802267462548847990612973367579016402677271243278569953153714698114686709617593869175694183165626471275675628873034146769637819751084434239303172058295330090701007222059012011960963207266785499482612064516130112172715705136467905049863203810389354420152056050509023469810301878323776627166984268231515007153715069058406046118627181464245180758409273470912318657528508878990768111513160262962220386979841598657596398763672738554898361230022000686484970196885471029517310130428949878147724985336930201323883925882376854388438133201458000912862883829816630923963700188143533520850725734851413668886555619728684131508008122830669437791888024957169286923608511471698847750410715070910313260714938002421023794382412569138906410942904005266125604807806320382215014019611490523714892081749042123841163761638299274536268542079098099451657029003560540608912777427418606750707255789006750606865680064107984892309263784281786652244587173681898137529427381289536884230878841461334238356605942575947644372022571127154825758296023726753370887654347046265013488786691361108286032152409135199558624374907404842243939538957277693345454804199656909232244992905846543014099069123902588350954567749142083047726351547955337767955024299871617700745500311256433256772777699192914254237064460933675010125163370480454981038123592288087063533560128828725886772998136348610767946036623551080730606411329438778539508573090589619924928947037850059210133403338509761626946354257838312350493036543385159746700245053176466391281744968344013579168867421199242502454731314721277251517749510854596328811310801064615410248070372121094126121303596995579964691023110409061228627046924459608759724964651139920451015328545611323451736454091123349468008119790775839529741019107580038639712492602085725728419151456663384248451587048704256591810952196085796478499990533780303766495476042453702423925178128432654395335722548349552219576321781624898011355951905072372264360905394649658756236183729606397373275029165548180907748569979498264591658053010360434688578830967167898303175179173306912859685180850233935717593092739006110922835517995013002620076538828057625933640203247708741942791215427045062190525786527342294389435531755393614587377753394516508400398324492524871354132962524726355989005747250201795175191802183454385578883697979564354870372367833611855559612295562582958648346664937189233011954008221886813978470395270810610837096217938023968873300546601136665271466123903055369495564350636714273847185819342655559070097528201358804923537917366042356395671654200269898026118558540215221011915110327046171158595991112229402645786154765337067313479290893754527522809848766028625189037722317086741928733938624368524907841122685436471331260347914019977792524823710482240426660732012480377715616928998225334445467354978261960006707420722076284857232420286289232925181980192890070459386469199037095170323135510930805034700665655126681056374482562932565114052423199423939145870465401017628016673251497543059795473615375163933537798561166706430061205933660554265236240432824686184121392496171608060088455435842478922482181248581251213648140519997206549273239858902196991723268665514991984185379199422636967252296625445366033638660258306752070018984017103553732158662293471172105224436502126230927008955566183843266110882726767007847948191318367777539557230555912027289817076855920132493271669675293233186558617547286446629263965310391187036989128668573475147312585216624931533174535249508900749876209352593066899030368760910479738331315055808226562301626804002384692548706085495986513942464579454609345354949583794687561952729946277347020076047822276047889819280495607455764532050449612821048481185770079291558399857508186051758085183998383039732095239732863097489008720064258307326579361551244955430832867990771989447028226738454839070656321459945317302394725198061257553921964449817088512965260017589511581894443141918064364642333795938821978867691320409783903554323965307150395242737668908238644534962784627074077905487159334649462409717767616939496448810104502910056125021569873337970471576683526162833409670126620554033351934137293779016234717735287567470578270109731728746490775584846589388637005266925765955303885465024200815333174541242463182757513804857634388264565823485355704889543096019860420930116097102436261152944213153982831422970098664438087532138080579007395033847794975117755021625381337216577752324342267314434576856918945931857207365320187023427637728233757950157420002041873556933646851038259835192775424277417374040569894720759559387720755663851336835751147975280873609132042134512644411681894384321453449230253242366168029828330611847721051622783928746886719477361460054079536000957310517149211499883613079424685404556024971092615019036727900601094542996802352241175450979069764916634825298639596169831769943194778442954822586370776696746821522203655810691833096620651537646189297155490749320996834060102022597703531358213230583621046862710430795820226372033839232540370828795910441786223455687023822860935203549106744578502309115372192078070937285008914103050911805794778650203803913240776315147147340911498793117840967359918419606825701738377867191561432364085885460854981293028284235303006011462730645299102771585822047600378324367781915176927675521740541183596285939995027534811151055957193046625797556841312204123476439579046650978547341776360877997696428642322969456040371450442254843467525544496166158948141886147833198542903837936687955156663853842028234443616507036782108994338754650802945097006180963303474290229552690938936691693758124400975928876697965664456766069297436141824465954760505057530582735941850616766043646000836536632750972507198326906663387015314184324515646528070310462216183955619664879429364587322639310979097048271294419491716833715985838938467585025063572877230956312820469655079775943022788583193042659249921816362769167554147141469629401296661030212226994128407696146729676098824708107278559052193299456346546010024300101187677433483143012966397091661975551254029087298620240107280958964664572508325500742121267254986332265055180331426974723567677458954719194016174791882514352445176901250871371261066539782250754980996136335331641011353362424886298912213169444145244027840539599398075371725901379894563504366476190019730567887453813250624148371628891284951482138799082487205755731292981365700665871556979482535184853281356513556007794334987366458031779805672719017940394708888834492536809865828396299035520826900205611278699980853865957136403189384047468840756572622788698681432226598437328671265004534640106757585848921187463174599836917783549676424746553663640942951051092299935158203156486387116909841353289999543063887119753874547132425085932012229935975889850002237289133221058202966117829010130388186233528533896378600054014650904792519296652353892298671103802358065312934585029541405464033988822818885592388976122814360178102449626824070414502583944386695873914602396588986896299020012901018327282504606320314469411736268678854608922279141672630143504446318719863295235080328876668043237511520908868801020674753601224103285010894275806544873344051433333020373290894159382944213421773094816652298488957921774354839859308885981870492882166983090198348911091869943113964100819921519673714059558076195859423807616033199595341978678393127646011203202937321695655236197490265739453635305910945165880837964507030041196749945482027908978610798840150984792007101374412485040246318218462464651211318706248251757884021107655698448994230913789504685206968842074342427195648223021373924595302912684249907498575520845027260739599229153555733567400874454495189867593619164270583172396560204976960083812022709040982486939862140217605549715522595972470497748657409554470934678685776791186891698904584430809879501905206404948840594120280840015934904208334407815169520438498586587383967569301512488167217664823130148638651574528686745919440289779837078956639387447437637490040797560983792141631108494500633364893188060837419048097957331597465124653037216523476501541383586480917886244360229969747961936863976105565047748168689844929887138133863716668279373008941054925161620617141059241657824749595114522535614799969646212285000843840801017052229998043075106971330947100607553618999721558207971701385391491146543076177563160290948811330546028771550845591532646047731841743610214683655666795249886591954722253275575362691724710973181680370216979504799163607857624916315935677298136527420975039974895860653822892533010872927167397243149522991178965055310307271497248503006173509565940561452710392788331935590807504365671498466847833832664780920711189487701395271556657858022991052413552397170107416429147763288935559627321348623176486094003069522728115152833737171577068739206030597954796749890445843380493357140882442653095201233775806608310022561008589123130662561863978522184220111890841176667308226833442873937676519457090572934512410002637381034247183725155098535835585352326261101027523816977093931170579726703776979831086257471110333184074539018938193205026690777353957588364534157525219247680953877589798487606196729818804571093163754614133430343417951438027721573045956509225608894934256206167471027856199842615950602061916441680372886303329948212042156787584244913470367978401222646636543274023191387816863603041661623843036660269001483193896199099466768940006518357939188790527267069541351163517791260337608603030029339186110920394462753031226110612945760163218648997495422258603596837943493458203911046807460942052967808223762935908222334042102965013772032558669720238733386259981992076301605526268253150818825618219517679763080000177820933413708632758922542385878286912815194642624867547404367354228370101591614174808363821286349333625054161400229384903197783700182596740695281124149098963230686074518758511996548731874187881203503768020858041808346067356717190546775448359506096977230526199641540372510884918723615188370639793105782721445907176644870683398549656429863344891297823666709029063932330639868416919972579535901233429489181877620532875406750855283612997198264361357541458390789214039270098455696412541305011339217625636010437626622272151473129031905960662733972640206791835403122754593184155418901271751619308964003514931766049624879680078826497826690134155852395970039754473136381325934693325007310797127466507504172407345138363406675550103725081519345040439886958944617280033086186678459069594595638582260512712923740231710025264035755468531368574193005020467030202478299687431890040151509035367174103610212053977574788111771940430927609786973666663669325059607546157086185679925726859209871442582671456720506314096053117259840426299172794879192123393903034028215288584419471681065900350515804547511770385611953294896154322523179899371023226365664140699261368352615702989492993632094404462244033367164381108830598915589436854973119269151257757551966592172653806774798299294064652767237011343642479586735526323404886258430844040231301380086117638067227085661939328587782834120629672831501978003963511481017477093402267579880889959334201798072737646747998857748826632859887867580531010284281445136028538193170549815582210179688840379369478984145469861292018694868186229725515641765008812009901523928386168477574591979660971458872729992916415116478936373135661834634430698444222551964131910813862054966186231821812727828030772651021673564458297811531696922249410386267915427581365988369807721469625874654897765027482295923469541260937774432930330535252097049153560895830115939276125022341596398174344289484172270158242402980611760027517620354645802919360439286570991661612362901609399969690982111716326602797293745303908084796201269658593935221410009438897458945729063812127139282936905850846401333276013058713645415732695143413790115077273430798470253425202180419088674646441153768712629758070838778779944556429564468447749831973455479453999968844716304097355243602111388055151769823189471976250139037987530890384468282104414045545334263586006961869803519779331937294814166901277851018785268480381084082662723963067985342170355856044755927549919469234233900628396642648046403729797603996866819675380132389745101881849951853055695950362878986914608765876433611316198926306751049749087363734422975419795167282011715458978267232627492161569555177960076596495009594984425968103369077121909836711454185494633989276582578676714348046252169597609820810341464222193596866973222939545249988447559266921069043358704138270495996644893889253319520211888705387724139155265285950826364767236797852546627618080499004604095768725956811853668776908077062323716973440930722286415432476957207603375468214311316228898261707650060634640066812671672952095856762118283671787675664485659605101768605382794138270400083436130291605288570851826337318345196805475672034020639466337462116185305444491103188552266081441993916433368982774866829230640556378155387018319878052626060258415025921779286611190255172654268518083231171311880471891420211616519171253247226504792733644575785160016739064325416984287086719595386641303007060664344534210970320712822566983569063623375971312564220235792434239171848645313203869338997772570845949328779380930970186567277158207327043393957270549617618485837441166814130050277030633204732759568056205621808555972907391472981075269789232258988410190638486277209897818101199377531326270185861876860331075931714157344108843538913241717503120862123593869357469796917501127261670698905798742465454555727195358252139011274445752570802198024187756214507077121796205001119577528604765213846541746946183060490690348643438300068822300157275170874401078187358807223362740876682771339844406697790617409403064143065664654438404512738596949834514866072276505986007393591567083594816350695163782500027064526736305432791406067154768475025154724484621549292094275451772053968523659288146930105823705288974656957025877975869341810674519925053945305791292745566119466819797714974864816465385246126993484774899043933961285164220564118885782618604687785744977163829892949485154430603826228882869946107242159308288614698991355098448598651699912717949623748392454980354968038800370762596170913796498589885187302617770226603528016429122936034320679963046165152706331759035345377864734640439881252165247599670681670020305755542753344773778455345179637283646766604636731366383381475474857853865712846723618284828727363117157382206452187665905658606497859561116486807865336164828766215490814715359369256041935660196124872187886783283841110623609137813502328959376296737381863329580939557554678947965798631114780987892101736299916605666935652937486339272657780888021995284089995238395929734933854684447780798328221084177578192845872484195692393090471828944451823589535733649338299297494427674361950861394154860786711624365284079112740418761996892294901719733868487672321127862287152364716514363254703554335490861555242445306011890653582385594994351651463898974600568105220979159928340657476084984149234469342503413144993793562895702683803567971335059715319773050894250350212947636830944547065375502329442605733441452922561991795939561350027851208198585977950770665645085895276675843998804788048941796058572373571664286993760953833319416107865672841483126260594561670786233368251484330435790823557359279026698382827088905107813697416543675640938625137695746460201298283188844800394301867647433221325473448734668799226825140163260189068273632649470876408711108118481125701269062423900579948967563173028728215828518387607631379185752895417047830560708088272135242164830655283946333524685874251569761317183633731074727920345243098340257368821783546966460113110482252079912053038845921913101426413055646763880476899396030138584948451714056243542507864722720997549223713584760988635523827061344753210590920329558168112217280395419002754216581635919886171095891988842609828397417733148290907566349253088973104003769656906526245810837628374085385829575994372717523485850093942488219600859312353748919601162802391347017755991768558625493156995877302227398806035199240098336741142752738896594212128507959170695365398525874468611247626813971981954245854489501310982628189324312904745845980177089077115502229504251127625466900404206003627492533592515906984347489631390221402706708499145588788554632454404991212972247136415882510467616704176440383839302948133215257206337252607805795502162659490748578718430531203897050347452481765699303988034177732856499328358561173210990186299390172785467325731004762524241739676970456886780421820652996353750906325504430615216496345427181323244781637881667236756009068094239666896033348356722476998825513799740302031591733379871093672856544203748179943276329003739833968179704707939619279094025184356212378272707674521509938814730380185895640780431768056513572793105625319828829918909095847312903207251678242325842671729257027272567470172679375137203898736023792167270122533977814685778791186654088716705606705269698479571080740825405153233485189552789810736776481999651576289816971476459755733463603687264847292971626635607871030837725201104536736062385556385076421581277717370921394541300485651476208700941028868986390722959167529543383693234764621830094579466635566726260482566730697840048591081233843210703343063503060998769852164016168233993656132987059269488580224053698656679708565737329435968011974800944623624902058380386401268509155863318718615651645896220975153008755083462359593129808996390290171378371773571477380603285182780249105551083743688344153601545086914296407993429676472494714021665005957813467435702292995561499222514529733206590714641379822436765644289847416133226660043230883580897408785406621542069271905766644678750090549489262614624795601284598848515547445200533519669266398210235325720817117035942685685071665428197579453160372962313484532734475115929202760350851745519262399144301503921253546255801953079575640006008401437519182615689200893162270332852494121395857376201630381750489821845503642172494703784015751563779315286932689343277579120988954384625729396078432312317892320763820645493673608025593091952904466651800918873951337057337889017909626748325835575378715336072822364559085414477024447074250148059886917202653465129630971389298525838700845625743961950948769392665746210072676343848016200113442834819286023667711568229385556927620779643659329207134316587655955476545490321577055887796121186828789937703658325990460062984627311971495611853824286472716461784276715674946895206789946295162727665806056653551710099812436638945091448335146375531315631874273261449252045251781571411820491062279145391720822749257771168615124775282646427453216270974522715511504584617476314581033711065631758846368416273284232244203922521477448873580329437274017497921099435127619354516229769892638090615891497035172061060545623588931684334487748096715217794069010145823687115361959504099388683300382596696538612595712471961577892803003521240217875955195587697233042422282794114465005845438460193332402797894450349011357838550286259367251065507091137232410056207320872790011049882609208660661277475490949316743040564566393487473261680171981162968082528462032087251584798982654754777056022036597355841668404120877667070192074893284988161688970226215933844847758778687653043471456818637967251886044008831576349494481220117986244196342916192105992501282442399190047736738487266580806830133740013294771575818060191511850277114092705214359363146611381043245025675605789400539778740985527923448432390955569587765681375860779926476541854630512794793552496475915545787788160862391874227496512839549685921829615490273042817197849555898705241033842870224587494329298501303996910850800704967541343694029797401622063916198137107669422958225728458446018034662662988583924736111502134432411240823197177189372404859461983163758705873616831507747546540238003332399100659714195710656273044668311570450903663650381512020575302736710615515794774478263628964600332208040095682653358493779376853977994014359147535581441674379134479028552693440168836329715080331743566994309598910599919124135390893758654819583282114011270037532704338245852680099647591615235262754758364609520616969450672533737976231792520702070526333312335028230174072511143261620584686620033064744385433657117134779927419467236514064680856829798631876545913847982491504257033996186418561605436726606311132180634153779234093382185136235967487422356385640811525857159565944648669632166481534323643354443651205786431715098110602122570809965330435893495234219360077937790565675208747403507900840235808372848373591661512300774711041712368601507312961002072557493602216431888778373809977049816959271084434488380739629922509354947249800482346788917756291570361801994308541063487560662147518688569589396578690811914411350554868442959043528499992945221054077036445911603186449027704366656115462724795999081089392256112986851726873248828645722915711713413095548041899746403177152055138548252147570620844280868323181296607576530038790064662007858903437829087306143474661044360439593641875837638562586860778540470008143677123969804985028532222874863740237807082088004037148070375082732988079853461143282010866523949730518868579656706689041776890801763396909429128425634499475536923835348913588751633195353429752333774769962889522571019520092912507198040007139780329410230364515293119982105170193923218112821526228459164970799774124634549984126987713011564395134570057401454661542777601297423150684231909036503331235405823501312906902409684806605019995658017651140982597309644600952983073438668990228118096064089745086383459526496229440658541247360667750049147629652370339489568703579351629942079983742868647163403449358743314763839652212832550785079832151291846980102596275632215880610877150087704598438742860530100351869891329876395643865322345516526554930228042548077254417952748164682790498485337009633299382354633145832237637347838029894609365877427244814167680069164637424170240699198522020968915164073046523298358704977703515486761657127041284396826077348601340355828982277588471866715941726031824134919570429641697200798445977615325389468258253104259071924278275223062304407430040342910829478779098716153448844999054076079650197581446750919922265934108476271074559984276173845085486629708681397177502268289671770888254098828323187569171846609399794543510041603757531223917416241128142830648064281166138423324903759079732194764267251034514658661940431684614510999939828055829246803222374221222485674508828451212530308559245139911760824690412823608439504676448466695720317799855794434152349618547228836524250391374263157971039320828275397480713439600703913859823263207772607261313137554828145740786255349059378051651405174739509513178955141716679721939326301562069574890325281589650344028173690813763675243216347194972671583043149791482766440916771017401513055982978265916874286028895940810456016369864459279078409293834377766923466265959619123942990954943535826077681737265895229856391731073357000695099378245555860298236701998567047587278296799268396735612168366632967758338909601014221065238173948054460856220975730689932785063018530570785738727293825159252335130869563354141830007175102746260131602938030856970258898071187603828878158725270743463022702867001941038675827513895252769319458950175650391791919364302032350060755303678186291953139266118499253272612731861362677273192660178167966470743993522812484557828985233325691926223004415644914885850645375238828257984140636132676674226258460274827765581378202130906013342056807453354303679840444472512917883673691600361331425976209869012605842724280811857195638766705117865127918004329048924122381266923094570389933449588217718116518420802143578424073196205403646383990093296541000883080223194685314674457278687839032274846552481740649893296799459739544233671775690072268128885530559712519445517329617163907910565003517410321160427079634348978290304145563505266036076387058785176906806023856433986005079598058246554528736056551191162949462610325578497412197837003312209594461694788453639342257917943082834091892649882019239529795989529226893176470761701734521782360144956932105860680287144924022755519293444946183053795464530753001394275783430661969728547737288603038896618407851500318306987737478944793144481827346493464242246776390382831540574581963269641932445137728231651539480981745638399130494894723890966119962814937160013258394012939691806102386346178976881341153655790523529044782065171892648215696361202216080665369310523718880157916954061195546968312868973803015205584339656721475684062793713658393886599366558140528317222201165578163028225056480576717191610118351630919664905068981492769310178746217584059145018164421905867052672256193816499689038891588733511937747900952665028747696563698120671508950340620190128446790489697945161771698581717754829007473322527056124105475746170687097045119116316188630487966967207802075102399334033073739732794815792297887024506251194870502450554439608694027494802117890085757861138581402893817292274419353258318262559369703043769157502564580919835275269014307178149765625812832931776375258747939317319527875362333702549918854865590062549857702376627256909501923785482134070100836002659597693979131941895852989632025023526300609212072943018193150744663146178059946152364741908627355782339343788750912874898665216415252191767450291793295115144138215231694654036195903624077667109728964444146539551340213927012005606581877884744345194299019476677955890963078567502008228123497502882670039005386301137934637608555922372338086444999841104536391653314457177344178409308186491384768566345803952939349826662139849601472653158746656324062942866766154274119352642554369939412936664956667617626999941609344162887311442301563313094702509033888548603922291546198310835437060891745961686338357663398244666190096280142885049628226874979238597259433226885608158289054786325027608244038467597760885478419955935827118586154024234331460263602800822763459650688191286400344085631345764209734343555999838403698495463805764876583442801900997101447919854754491349627407029629762098408272593261261988213152521300039143966813849317056949488854867289893979564534904228853879874079234638213892855143623320351491180267867067696593764066015729433725669842800590776228196094765639326226354883727207535114699072540751663753377214574130657475288055415233427588248529869950483454414964297615391095412619750335341693329092105501164229026090503246464259040081575040498815279097651425374726354765868896829129916560828505744786771290280485965785572533667045716464772953585733541029516161676096529749799477320488434084227282583008042559689176098938285947197701618166758245816989974252575633499469477386551343280080025676171995028364852667569634492835093473964277296890634719425783562913449251930360732501678144982352301086966343466193384093206936860610307197198079048053808430529534582880891761405387849626106398328694664022925594386881914045418754404772265424063633395133762895199733063380579526143736526585819802442690814512430094508750258925227484241775643365039174669037594727994258268634919433980108336519406043647009745821121579299133371955123521373156078621579112044622697668993306286937042589264534240058644373088904554561767830894472145318216627138775336464768728803746711462938243142164639680877157779109684297408497541527213486986185115087649032507220588619804493682865139239332694719581211523027750355066491762029786870312502807524283792730309057449484514144486009740847129144156557006905810697743412054641630860236063320783498047321994743858866608723513604539301324659889310143249368083698551951543421537337832418703669839827844402396408868704478645088786945866483328583640589089308310646141544416534002241958540656346175627888642117339394920534096105040184705062099860943509523546737245928747720663281394060246160364107617654450160642151357621413455312085790244759063772312852681416063415713769996742212303061432696642265880391986940634381793131211643325091786753888392368301372759280636201681810224574171585032973208964709341060202998909097798649491573232967991552001609991294911088906677795646958775836948806120084506060136891760114648348934421674691826105803191154980197242086279633420416734455315911951221838383305469834331575318079345482762617242829404986002833353843145925749315649015076042889203103664839984434545430889068800217220400934813924963912028785393542788006024495649003936352968946618507133711288068920791213241052314398499974024182159226773098304978316514829128706077200697441431993020422504468663736357046205425365295754532010228720921523232030794421680917608686992702398964983602390576471850438492783084470091473328085108144259773563223814565549510326604690218597878929736234214964804623199237557649852479810839467639503146020540853784681885399269296705748121420051186250167870298054963627216517355360852778778547212219189840102665075134636866978182007982541697731292376858863887761240156757940469032505446159807425765271557040214782263222109036121026614320936965664496969864339886840515053828104159735953590069595808442337347946574607056221506203665696992849659518229681549090297047474518767808644277561357042128158561355294399870737063651434992350087761472880408773070267026747890543673262510214125824984541076000932719119830535195187570736021353750199335685261373730608103163438486686996667011408362060168678629912843300286365365519090654516951437090538343702854018967048179465363854664696395074387500742779484299262656122532948679103748683657850491074844139839552919912463952860880006963391904333939614298685476279942478128937942628915432704786195651419303985825498551945528873875445998674966563879878630907077893487268966331856821979192440613395149323479488075225270887506113208344671614026339846833230262776406010264711833169518110907332921949938274755685307063280292082205064786149167532393661288100270998374794317503717554113857573022645902420334680274647887844479407293420014182954854220100616906473963791054168360069207475365778877152393972479204592274365234263362264959941975272142625540207247916321150161270044997307049849285878779028543827496016625464886972708702643964314141897998519560748372000806775501354765449544296007455932166574963269743384385850663895682977214299132428228051674656413471107029450043076395443146069796860194372235582794415856893262189926038510952052271311675261217105593015332269810470061855065973940849656525368009989311932052268908280355584865191496836072727769837967846220194664245615956395245300504006486987106581380615622302205931182979978745026969589588407899364716543836170235305132686725659869611396217860330361752346192826227596942645438515972599071580162925272480445416921715204109459775477210865097308614652983344524408724314197403778672285160717569118153611988265677096025548616620862421344158554650662169350819580172381996453290814473402722267171504708572689153872581962771006391068670025961275922284848417837870422727325472922856094355947451893831296684256306855480973622168003707735670753716325018018257305231667105103252177020652713999298510365434183654749997001030835012415525215711156783930701125927027698128001010146807663807064689943738789373211931477101616598868476179715478385120928525025348243421039779578789940600406676306096689148542750562366914447548472211381352845828089380137833517752700326581406469539316842668935663591373687169390436811156979555324590810400668359021180310116468198907111382647102487621145117403215727375932056863763051463370915062793257498984699735780614424408043292321759534888479708623571810836423428980223915408274629096443805643052704818795013643471891667193537358323096601135903507804296706339585941550022033815674290653545948708290752424333323434888693284288329267510957648617152589672316657020885422307058520902290873640823757124713192166865110707742479232659301722232867640891651796686219862779561938785653664115998663828129139236184950417392703702327624159904532711644519008438853818758750796759507170418289160696874856012039699840429616560199090818269668587306167485049473294954027243941359132070988336664469493753825796811727925742641627343837293177870195959519323249843461818460793998469000735166507542685891036126212389684523090481528849925085359466540474667263156104470268333423487151166805892430885259492872884396835847833342303643182604307234210069417629290537744311441417227298260477473108342642002682928122327200123437174027539739815224194815909932950928080428016717574589135199962427384982692552822604652305147291189244344056355154374644452423434226655984397919088621672308119175653213105854993695763588666474570883726523158213268622738074963344714464950183170445116267569670807368524268764011166256451190245448730402958872381636780772615887582279582921688715110626973212584846640124852083153796331119006407146399051022572332396341924282346015958253649860443267446264891023287613403747429679643350633507977139949860464080451379180978685084344615993027437075836696804239678830143654687779942044411691267051680727616132575537456046768861276092132452223331395300268343752902495503518472897809218565618738418644652473696346805776565288470059825886073253216531294994607536471293057291858049572749646364688528152485377232790998182814623591497635404526976124340411423498710512743464691424895333181146188484480007814098147801960426290560170342317614170563956597014736304443858127887676516629217763971018115722324565741397127287535312655154006093489508980708246128012196332206112547647673481278438277087513649720623527356616235980049916654676655041174966139192711008654107607085358250701129626198642864098161693846983850788653688535021820065263178961211122240818176283770031564023580618195610293046704050787168231502692903379262470326082626262555737294290219042890797356301311436198558601029197260427453018364023793677630285671549588423534047352935016181327112109972796139352119660498845461825529616571832375297736192420877329971543378425968452187510350984396505918679415233513454292383111461085760400778394438641289051420233327686863450143749707164893760069899331229792042500393993353177275101053148426775004001880099616698614878293226016945563126347550005611544229694412948252230923980811366424893304788383746582863779081380120695190445770181652587381593490014810368883451092262158549390630404210911910189394013629745833832525857545072019557631272611133741726579734717847512320575717805417935445577761186768682049495521365314644431924356301316525220164408461403348211603242968022907306824507758427823995450522379695143284398620884552996852589556471611397513162176679684736914879513719509525154190932974879995484070777924225293321777419725113905074076754662455391133888585926319624955863235384333605288917865762990407531334063681181955544705888815986527526112431122824617515378979978288262074190145553274684769743508119398960873944736414629245065955792472901337529269811337751773384620350891825889095048351123236752362378185810344650158282506167761289316072464107388707784717758553559076477818022833039738641410995704527890440556729851000249450481526558689863522785887716721160953351120047108144699730966934352972855673882349830357468702720830129840443398316535976172761052343787367277796311597794383098199811509487036662882205334407447498882046205671480495205964765753073752485394709122341312908309520508209176156339409909034048167805367527992172494666035214259151361402298062658120486713414750754647539206449605089876528501597807280886129634299495584566437861773787919095620470976241653559172092566787794029069483044621367390549984868316276994395221597828311137469168668633643634799702331885490093006271397083927885262342674533801175277047897443997089472010302601416773874757768828293433034180515811754975819244040333426926582759776005704004688267998079148201994813576653527209340788036436772424138362809961923450926118979693226089381549389689120930414890862524858423550447608561334876044771598731892529879118628055038371230373558135104493858778404665728453429167830061298712587181120757781342489897193245088609348270864284431042826845223772280315855693238846248639300336293568279235460058634887239389092214875854427845090559566266490899921041531786736383525710746579566320536329273628931151711813284275602319056472234888099555187107886567502915056542388327696956961209516999481437546923909447696213190524971797490678658097673859825428893868893613416800298750212980214436589117427742499703634626649664051641177689615971906369137015202655852997768244592989465868934846644183533753335678829599947634547301770403494716359914654885435190245136727849386916456061830262543145091556321587783502669804811933820625672798088318094227140255012893077580812603637239354997388956678404428128935404848176911459196181299822446314189885607592594142482978956675455054374622552538924389622624929209741492987031903084560455632498405755631984167029930217624283760063508994306607350632398759560243287546314913092652692947499704107615729411120973170989495083552935982897066066602874686520603003272430467191156744703409742867572745686762171332018452652187800652868878279356137165064598870296612434474211201314471148388535895723386624329610617351105620681005848272294674299523279344510594950996830847439828186123407052973860934354082631489853684437351774891410569438132590004892653073943013638126130679583793641513146535728288513554311158282198164734575967803478263751981400252239563732688673426251481800922849184470527737278717186349455830977136478926181618701527064799072021538740025032914650493689074442255808277738573251990339284093964742287260789317955974794983556098979691302314910781618528893930165297085892238568946555749788534421311913117348200219074725485295335206117246996542750835370746869424549902314110275439030328542877785872730805059241220057924023340504947215998105888258845051292699929371678330136657317745014812740960599340821484586695005455677448717172969259202499903854166652035000129077828268532741488878285454968910780709927288427930444138458853114016559695278928261906297630364191114531889487526010405673231674900864741977534195269462458483732378557574659357241823927348030699959358529045369096124036047413988157688237450318996300996134149839177536776129936519852064421210703850516407398358160710316185672779720334862564440286387885553603327843928690981881038347605796654690433614615983153881326487713014915392660861119713481675431393959601909219113320959900712505143515721073158769438781278979430577190557916362417099602810269382329298502335923893850268580057422228554171107302852913853402939065106337100238942074000490727507817026425433330560496975986629916501893452230610291312065392228477602197600649518748216749683351652170596288551986690949819892040291666857486330583409576725660999570906580722714182332380106236203433409029347779153922951812629390701135757596114319490293405812634761056417417978427300209688849404944748280263180961353001790857459296242292904102925345556373349784686284703254157679856910041886107512552268818032586028568096108857726437615606900117343542133643842632905125967097178830165363811208084529219814867791939273397519105763755480049250607124659234944100516819774779422515662353577820518556772245612127195176730426584739234600761200155790599565319374138947524060853510344468301654251599051804590876830604523751310172173904393692930146134064659932884245195164990540981213810592799125586528699977615381713682051301861111081694311015994558877487737776066718575364734673512168185736485798512579166924472299637297485184724224936502439994101637600007469362490436682811612784314756103656546067533457054243429074013538560877506570962483136475196895844476576514351716733933008060998883066352060050921701253577191788066457181026559923257253956597908812289511415531734401400962729457931578883686616829062379109278645167652173187839323541393215690615175372018358850988033362750997091898763085084516502907113694652980888092996483904822801964639816380607243987524689783190367875548127070767739164311512946081400392729657800391085327593729481595799986158115221821121069877301904389812904599342588017963354080523239482815148630396412963083712568649711143979032907512597647958961728009616040862415708057625477410311077599993416031783967640205818539586977475989288945356129792789438201027474102229503725105210245021955183701309669821823201708861186168316727689932628945703554727216993857391023892475638574843824891292248148458259807435261404108514703737158045346810118194411382101992815892875252654686745419301107085336520912383883328668544228095321160527905937245554654155087534197556411365092132029741024042824158994079539442094141722928951059127525991749171702008632246572131344565075971399458370445137712504057000125833337705727868364409716779337584576445758708596381503870969790687157099669118688558537452554019127955049356403393044576863635620766606488114693657973227797854042643957777104309928366005705990690729567725296068133984184192041553541931244758228169433547518076636099251842554334668939326521082663979572972990185745538096280536177402906792753183781051907224980280166492694442756524476094698572637859925014455815098893933471122452461163497287380826489076963979716627004453172365837633125929113963840363918450478382119782068294991733996328573566855774472453131138940712102502174809615314764890943037158517260231758224519840291037281085072733366583173529468297275526185429783085279877011530335109138677354073447729355144258083314677137822587930130148276291460068872214269279833375116421303460818770027151188119812713665978018842269090981847918800501639374188751973660373174509722269891150825021406177548099247658403682423368796892361563816645097188985419041385766571813761041628912586780194135551894669824347271738831682380425122387307136974484817189433016986993236420835644887395534314926273626571097739710901868174237390608804109385338210736335475101739805595039593307362135941311810728403220155293477339078488535415038121436270744031490326441635894288919033563544619655420885981488385726887190166070181967279949648397661810149359806904050184833940470788385290064427749587992692043234612450482446312989072214195911710759929564152618005129689576205107486672723132269223815639722713116376567774356629965427425248310022564484210611693874651795189891152294402156360784736927151952154105082327177252365289161865518085435707367664081233160389338331886174121485995147393902046320186043956870398826159432097145323636353966834922507787873383291109080646168619837220282707192164608102021683292642903128208234036100163428945508596690356245570115665510933693375628784135540173197179523536416416743728172983671361129368057748459914999720684303667108891946124244576248561676286101743459652064843019635056040929115369861634698662352335815172340347596239099910996938465453859808710322053508934686346725762894660107168790435893067354271539053176336333709782356915179659311503975873958170041142542305556414684453016006647340052793288525953860517255508067911312409874925860019515043159962165429805479824232873197029099715699102339017247420690060947034041024904668345972329194893962310913061404745353632404838275104488424752792779796674435214882208349797219383055820856368118090515546074672781971974844561234481110613110945013262559744107366541292538912176275349686421365594631884428749934955554984240784637200036767209802968182523315796662026990803547114715291318080267332621607549429409145071488039051213814386957861787953084539283598850061951269718041225997555918036508915162176102474404650484441410917352590769465315753496452034538529014450783213023484166174716540506147538979318771397370882233942301974489407375014891976941274931656824864131102082103968963679965307074628495215965371991188388488145698501590622978702210616000644997558262438457154732332472037963584664324006265248767600870908862598249527364532554186906071877469017749060585749508721298960559133637656311562279026147629426243123139491833646694940119771559634510090301822959541239742346507728427800456433696769294419747572954992544516277011664650236202954819349501646834290528835079451139685700189514104609318443966952455012103650083611469366037569729144217908010366410003245588808276436748357537329151263426741846896594109640001255734556506375861756276574828903959819060798815108030660426173091413211301041664301795642980062297926729743232273950765133268705016154885710640929827648837913686111980123974539080614529324242907856125243079291498829755546837837530466376846214297702210390079805659641664036314096204801621788141751210395062387850440121366372888285054519576232539053763634769785717191208380080296083517730460977238072545638535759382559599157059724031138053843267370479721338753671448003234430562187523280382985095043632558460719617347734134271004108072077423530948055390504521128141584422629876648538543570388235630334287875672711352453165593932076297708396909792492127798902550506442782334402931031573490757665679564614650668407454162904572250373543101844954484647467358634218322289749181290408096204363241494548417305026214809192471600238100543739833688750931186557413616819031469558998005199805842052016983215168972306107721512265242913530851824635484708539263590762773151578975093071233512781022169058726378716127911014668012508500942335214108466611835323297762173193160840840021960556040346462792811689098955026187367451132587740428954368446335009704467096359290167437830555665537957360007765624521258248079361096912336070435251378424381292481668180883885974495611222119207341573843335688227566960520072834489590725503178282013091221591156465970177248293813286718075126388128172500557775200817435042112996285307634754603561166191112382629076401927027229378817304081145197898140330056814888424758578438092723824289939977653420627637562043208937868895077491743023989814064100229310828714975951072058594914611626948622752510719214280531427010040898972933652899072592085921268832915670315559652650300452518915570209397473668065088603138915081540953257394034468670137345331204867767766357592291868612433145675759703800850902974003868962272727623269604756981785539401476502069166639835904463695579620138681819754155254848277851663528746739348938992550584720261604588382413457063810656853003299866304241299486023974205496843861676847327484651582982654357820678764693995664991186441419931707451219331918643887073912617675593391385303268555791401467564445731169940846286957444693034390745662448105856253845956842923011306309327867935655767253304917825734347840609971894603424447543939255195349174467573351389608968674312468044191947036302749530661358974674749876884624241726267105550408534739407019779259723022597097158226379671278799545665082761762858259541816955457338405865237893859927038437420112559156439337655040649437994835933383296554137405527473181705965727950557887448590031016204019044666375207003224314746898547054090853961984895097275367341387616189423017678627187429138196697156405057365590925200866401883063670966528077332442683727931515277555519942821347252203586691752962036461940157733817075908699683489217072011393474644815720630364572475453846231721026972949507073577027315480759621146703515073076341668157458503152418314749514332797809240982916965904177424321860913690623382127105401781153900010034726238074926888001948722354848388891769800623826492044982254580642437793181838658927780917870841709156507554622798219963957653998812166857098543768211539571152464607066379442140099496040356190903585572183661375837034242171868709914691120427767232809221492895731318844387456251845816812291064808787169903828006747295041029821345051073821673316535273731905752415644853404434015466291191400406251415798431108059938298582888814381680439636235990848310014568334783451837008761009831992713773521275981260433824245946368574544077899147444819335609748449917330153832270569095898724148480812243617961594803021499769060490172483917680910870880178802902571931070790030236660313446960783081068614167083396621241668695564584488817001343332800921682159656537101169157342622978387567915962154538128094868423630036008782541865800933987465428683615421841993192314212981604981666375014590749259320361302491642649233264370942916906231232315731128037989431840067525303841281450893731168641011327219877639357470287212075595453619841635547442069844264322952792961033674166776912609197591746923262001588364724007076250589554672858777021887402476935359924416510096088930190002167774970797340655906807623302763404259519653239839844713751639931790398018591708837175891589308830646793150671726215439758590832984690724805683110363567884748698305697448960469549108451774180867864253505098117434049211394943805732711983888758995913022687440225778844738273647932145432624992470382891992322531535553169363125832736945950008226369785851230480313271485837909576152328586035121527281793549015090848780798915516121451878365106062791844284207084146125655168538420230667384541949271035451236389068357055446577402291759447517418108890061421898536163935480844818968875741365077477942100548736146519290509291197356181751489068420982817417861557490696816024118812018292826447084011685411951753056473101690057974104768629980485233740270113939106292874451726032387713958366771362461028094156560319741897383479465473782671789458742344594931584912112101829406798324785872303859245636150776131529328481097669124771751099003922570302004213994922774242917006162608369641998405594733013347165904118402032360343273066996544378991021614151183393475174881709496218552452625862347814159149200007409086622459428313249822613536661751386614142272248374253909053963098807778046173693312027121936400865225682012220446936621562048479488651222351791274433239228377356003799606173682045551477969570896453284517979992140404927691394760085803880027924280960643512838110649926331131031155986036213296328395848862858093482548352949763250818126332525073806306518358809154977443952670588378532102530048971973987367640071373704328655118402298888460227746177961443552615463116323188062136979035736884595219343300691075111781280456092106337150595663545442955768652477346448612367555694126673154042179735242584114853928793784536495811215288472005063443471125820468156228362096742878274635643973618347349776582029011676092975331451485941067544088469071931847196194355590659026233076947759256853269610390656596897097776607415589465917133728387330733829653116819227584266902954819606609209614554362370645185559294959725425826304031724028960931957660629871641990419804428810558565159257269567423248925484865915855761818710912168323380563159880203286696595272932494494119817477238786859914968341268417276744888772316010480748835443243426190884560844444172215492428110584508194016346024035575758460804988922295554941285230965234525432608169773749162190780517795173598284939676944044887631168517734070691174965526663470044148650204822566808633721218270350197738682528742947664389378410090046893324600424496547349668266864371947023774556484684296644327340434140427073277490021539078708664850330985515038551236190934999877569672241659693885095581587134817266266006993666245538453597420114429860790882716756654175702566071677556633554324527302736308193240885721008718957223492832458892723574983490094766564708915113871381578383339498558398515090254843065221208007414313499471409465013104659199010076143754409051673595777320971679300227339326372007449965759157037589915015943600249002335654413582409592139119154988155282448003429937725368824333968228037277496945436783793266851579949306864727688853098909939890265810234946235581130537908518179374353299978098494557875456929067245687826653399402155264259110484686896963304654990341780571061260822656400301721725870398524463462053977818835935208077322623727212863637870044317311136072618312841960247014282320827985702349874510707781472989935204715434995082948493380276610296848857489386837072670031589001113599866010654511255123923259654427357638055434850126923743818625654655774619788140303154743133443401407186275670150685939492428816110027709072807507997105526163158368245434639219129921060114520967024117323848379392397381256048550411837063621511682550846881115000530912242487078139594726276356242882382708595123946060336959507590472899321238054049956940225339664188435640492292370532709694117891965375663661305996515199568077288104692231230129850331708609940680876444867976680082961929784618991787407771089395648649432793859360732390204376978385554295966992484510299251454949620335658601145524323121949854040612315967125435910952573876076113494010480549863016387844527322434053592915401407298361815231312020067238273533248309953159860007815495286238931378139915194332742936103403758277398954026111710671463558066121367965840207608425846022571860863210180267098038365670476265470472586974590649253756451787750041942423356283574052496725127092645189175907995388592492238370691004289081473431658556753441258701718594189913048773977882064728224532410794821614255419574092793241332777533322380034855325400901480157591485227379920416634083709922867201049075885023660893597851746923293633504363751107413843059361267810763135620533492383574390949642694445574037970572172441977070337874177376824090794261351429584578098176635055479637127808322305049810551846317213956221635521992158224153160826642294162084044467028055070865034345824217374910374395189856115467427426513615671583813201032130427659674254509267639697069411405929240643135259064732125945863217588080563467555204143882005027681807236330560492501092557551045455670773688215161491725591299994719944069571051204003224006505261054090711694599867281333014409030688874275688265361882429824425485634863721099301510955085352897377436018643675210098609061550413637760426045473175126499096419638671716133819296256653073387011623984128238193479474025977497093169172439372741953428473399936396985341366394686539181418960739639654447974385455017616867560203494000038749254891853640757218045096685947452761289377043822693103678861271560825984044938175215478236961736048798463726556231984686712031747991628539584922821764022924661733381306633565097048871205665826882006215674346875566666540425441168065054990954590546024274578727886485233370527243170318668949258794350984064780544273531845581270518289020959297680031439919198134342984440219352435351791155573439031608782861470457737565922932731631132741070127493071675427653200906330281652467814893863943237259946799369840481865095078238242382059003043583366870931167834429454836352340798899945281327454903207780413369694246927186613239152515044016326698459579292393319575254169486741313755887919431442839392681282688010374805916872432466720441773711400921123696661425272746885409253926680321988477952323504200030488860080538241313624579794655541622627861141471603528320085098788822394062103024295047424807672972611501681669824496942662381755911743308365707883743631556908683334971494948550663317167284498185784825427615940654613071028964313213741271102077294207625406589313473454355056930639130391161427016948886574236971514033449467747562160197714405310172722861008099170960626144499879326742054936039471701276433511000754596434223800106038602203613791010493414986310802709296150378360590545779431878976186329229615413881719647952760512490464361710393520832683698434037994987612869251804839865562599930273955395794513358693700907806601372526676951999385011090201133103736510291788012493000441112646261922872255959025804058222631794852493735196089463135790611125593882920689756032987981699920200623801709459091416061908509758582042474094981288765454772176056404341404269835628037741247733359460613698671219062434497642842610147733362131497288070698023810505956279245919748330323840082597061770180284933333425245810853738342259686969426307470250532799113172069220531498530356458197590592512398996992982003506689278688451382417719727860643808509002158613879695924131701924648299965384915286130803236422423172667856632880199255334419338007948923832933516361909327139348845448134957210824255803402972911933573637053792679231869356682922733442930028987108563537825341750537258837304292020091752956394732166593396889134959188888741618702453047804044346376798609916090271011064312207610779420866623834512514082333897669761621912441067707579545896689929858525013848169559644488830818560651588527959338210478519209789079489544936361221013445645580957726228981223026013601409488611617114609785192265324419471311754091151199669509360168185704132805034419499496002450141198782278710797104745433854563365308043135144218582725204913534255264355361009864536108708083636550824163558606059148293541624651366122282505658863420616998471014978442106570671870095726167969544119925260136582307826584955508487925409165508639392247696833585502983042348125890105243885280562136724226850012421855731011681447985745010676689604618913600326259283475400094613256376328241111404147618159460384330571500538536420365315372229334517471390849924232548060180928803330919050254541178715314613619618587945870190050826691815770079910559086131344072797304432762783891768644876413099982832058832933340813901154003625881021488147011643197676499830927449499888799163859405510402015415650686438414033122528350646569320923822092454856494287139302693573087974276927998724317493778268758445530997728580678941588735054690238038860650634760612526336176028496143712664188532184653694312672772273259511792609486964885594797407757125784906534966175740535089570380329552287929042350565696156676053082162717350530376853325262131408766532463414318808418793434662991345986168302863030822073439410375992189654341420766220012516225332492295264946814028135894200050015679294445576399347669343904995419233897152343809621500156396465594979680220620665775258353834702169293633304837977007849702705006004065979254806263125314911323226521749778783850591266916370984615309681970820868626041307166522874424112891063986721413807152403088770854428721912968084098178984778467130984101891109953786195018077733084307078149007380350693086798178058759716018437188209975860206641815269663014447363829999476213551555537110559367314605910565070074926830393804830550144440305075621967803053765306449765068845323553292118462986713848553855754832028828825894217603010970834256145473354540305631822056626236349200788879910858395822275134388383698738379310294114367700912128774448779181882786760934185186342241522756697404135486908376656667106620812465912672466522955807768304492482381676652479098585910808234072834143451901254522193453028401765703386725100182940630037476110412830375133486847990190475286248677219057328990771448972773915675503621087057755051031241018386839407627971200170857022918499363909771832912164356031212044314470689641597166662045623839643157282197719884031105883556896488798321885681182174553106793903255781501696726960609017021258715126147641705124807811143592124969377487590567715129883114373475635504897341146595594232144306921413629098428782693336341275597516963634770252684813293577723020486262003920021600121875063784403175893990537281685496290923797342183226851526735228656401670388544842020923568758995893903981944482212126834308019489924086550381760668389804939310277104625374813287501806337350925579615576573532073484121295105951550731470262278289910247880024865314162797769891534921236133923318593707725673881828963759245629473050712328812008763603384850419168188474197329269437913287316506348357985395531382220526439285931196241606737634703681507894720926521207016302796506498395397127424140125515753393791696107143800810789098684258500251715842025243816773764274795504840271186992885794796567143488445141465572668150262881214580093197982918237511306280330003194562884007065152209055127980702151939255708789784529976567505138317035213974399701000305036992127404320448402858256021225162018924327818214886936928873368572518039118870657611804827824793997496986833019114409241203731005342110902302733400766275853559001690850189648697587178059031397645968375869353133277002934221935938618677772272338167810907471272777305410456706559929541585997883507330222609741278091794391708464809358236202393977596993515850390063574857998470694247277241801232297481989874700275749516800338736769977701532994323278546607749402478789577812634756717065163114144011412184668072523412763301106346225546925397911810442113381069945932015865648750867095876598738133704472591383975152472428000967322702428826120183387827658140539023170491863149913546300341919279255595241756720096229100459418946492882362780161165610442547180798850782502576070439180869596187719605559275208533736071281763293098656101524798287380491803643281771606417816880109088425368458634335803091342081841562566193775773820943322690352655165373319716116161960435738292660444449005735383488156015845194005459450767783051542646905390386155342959307734841693557685087976554598648114963501118336711896783581074771671736123481592042529370592085395974275706173521738928768650389811529260824803791894594839142523605789310890901332670495328308821281319436155809730735174014890387398388096504760967007511250262546302101927021546140721878970350762732077987331195601624326250121993332307896601155806416960552317038816829300983465251092992238762611676642095365071220647766242994836148792390315538846094425717213555669836153164855810366573188726949734889344983022190847005570391107873865804713086499665118312602086736268154651916099037767843841550160560447051769796935395168446562129731709219720858868333087149469529755137591943992436576634219138885722562959051509014728177716372024658683150753630022615229227639391758259799255028483640663986068516240569898593134757167583222150510936289030277541237111874020634928786466109448639010683245608361453727849080226575614939523832348244033487072445169664792591856368417461994673926688379606728725847144861959972795558969295534962039147160278830799420822673194792648464604316186745742880325147014531012853476600788404845039306916622523525834753556002946698141206056941541472340200318774657302615507954637457106513465255698642206521815656714476757703293172518957128625183637063682132099158449002932416563633786161441148809964517354960775934930435915708861912198181194651171120962256187742791251596069384069997843265037284897550074132506626943591560437436388489139894830908742926809667629486736985755362401935349427723033935917072886759207909352675128552044257202909476920394126833376483688793211349550612341676474892284187922767535662207321718770672088609034971830931824313045173509906297190802316809870556156578438885160527690288581038063468102178726053116410410208934021965686861382785623348580921941460198664310318972208342790723098379477102247331717214806126829076896946858416050426374959806965777620991264974102143819710649273228777799097560089348933107477092592207551053853090151097713648981435785803668287541042304927677607459217127899432064650088857893685806682152019064485502084359165451801488053342817851281766907958221266383753850868870333185045487202219581812589133702192645499410078758147707595717834040561141473923871323453830990514591922142469411101312648268745060551298167266514840676902255353174594151319601056700059665794042352769238434997705602028480014864161805467465909283698087320229399855875276737471203385052269416963293210439465389873607321065932913205410086250507443441339786338988505625963560013145432090418627392288492894017371039153745247508402069415085037587419275629310117443431653346187098301066581387064783355008392172124928295552335118639850570332797933464646322417662057634068681227970725089971995744490757026101093838180285285411762647717921182060771033295809369588167313264603624328391674652857219359557891274442765184872620373603785883424850146163886027677034735808999498099383506139593969140726934152526294048723400336771102934660911993210699523110816823020132725090839294357738716781066367103061204239252764270173866148854718284904795535549169721050880519773552251580089216243306752093528581755596250411173247772682709617987435830700264777220782741022819455684505200648288445046592010226554126940250527904835645266255024193140002415711311041746306510736126795610513035647333296471211953865046442616147459054223566040235296665289999425541478244102586080568765499396166829842513594989808904641336981508904322665367003929048763824260785985463443224426491402667480542731156382113598939645918942952467165705577528608631682679148217280108997775654929212835000254553555897190779632686273444994548656243087433259598316350717775006299348003519649495244496750608302055923733806389260138515110686168129250123744627894512043124940779845585514664752192205252932830967370505468266726748936454260167849611550343138132118448182989483123730632577882521478430302777709639603889498174473748502337838749834971345772495122610886043131248216106583001583248289346559188164852289559515769220870170599031894993425330007383421537138301360450134221800278248345365299310946976367733509277672771692646254934017352411212941548123011215443023494466478944636538215776881132572378127684260085905447664935177022842811282901604955699140266323155492453364256949136591398960812740044835668132171689899122517541396033617032823603680953308686146888575641318612027311594865957104574202455673841411257701858098917243940945714546012770269343814269801827145238559739291630323278613089985928618534308451194259330325206600537158009155961484088030747093819113675298189295210118040547782789537759335322481555145627298551718837409114510938099708423337261449738943532458156913897940877255448843290760810646713889664523614734963372921171518923628489825446798969799315742802885269109620301522753607436830744657732678614957506800848083700267815156464787963812254107060189580153734509044648999440790234384877090697258727696065257157747466341415158429557073259686957632134129553475970262418932740733301289416040315420046253884585717750699444096578036797981649002195041745853554978248812155042660873576525656925852597297037107184112762602313495474226174709389853497228044998091419103695362800334616462364858951912292900315958270616045824125752203890968866158782214440527568774980993166530942934140535534340031149307134252750186290914923098625784680495166788290051819028532301581121249564763861000347559058677758646018306415987170396434463355301932779918274229615067114569609083438195742256277380224042623749385075585358642661376444172465542930716639611263774109121830888947332724356352530415137378571875666267438074750391622692646678109935891506118581661179670395903573898338910430379718289658400807102612989380625023858978721089731491787301898161684386593849950378855228815873978588079638695435284535266886359613816161195468215435739742867010003508760975864773910861595627828987626849618652472082119028813110072569961456142057612597655785633646195870213446620246222311823311236355789495993604696875890276261278324579979749702649423335688207376578863842061847496583278347444009255855652231818008488828933949577261088588558990713135605638335614047013359154951130701797944378862456246209691542378698410261554022328240017198611308845483536572102455093191527443707980732377333563189938959793112360357576631352017480734345598907325960792176672127162027841614330612183236090812594122174049357823947306486562927501009010264755552642206102373625336700077753540386379386673730506339913850884012616638156055715277469322552436708431106344524261161739393137590820674547126213174127695894390347510375936289206624443194038995482938586089701817637682721458461760932581821782341833695388518352071839558884195066168967091438213419091810119132745873821786360017863364945505845522961800222440836229113879277083413126927327182465728518576590283178580223745948503584029542596153662951965741343314069752704994766049422200517181170656040817495644240257681545604929704123719147325165042080516106213413164574383508028677407617883804196043093214586108819928796689423213810789561163817555414681606738618284545019710844108672004703426026866559349261891042096728297005312601347502402882820450361252324341938785152125350004663494677082631641679631426406851448296719877712302195535010458769460247769714977648614535629272584718571554876300454647039257290470783290002716002048478131622603494807716773196275385484878778006897453934209916819221661715433194809874703005249680045626881708089876540561395341809437245359732298866638585967899090768082039469185503695699777060187318438110389356480062825549762311927713961334707308761783227232222261934429232787289822740643922346464850543890086403059108857744233478049019687388757265607070054575720982953050667178125291088387248406449285765752193321931917249369966976678122100297611185033045742259867662326706440667274036020593602884719415718930147874616776377060527503157919931449944333190143757150326101640900687333454499806704890291050080315331131946438476630286382346701816291786008675710524206801214347466658045830038810611719556918852428549752579703444565349484494850377857595874049604860346916841516174749279973191559600614138360212845293245088989143757926777159498461335987519091889119453497473183576097668087683297353960776803848716219533462950464427240125202384613831294932877595200350107219069657979544073522709465296476866139028132040446354911906589463741549860639676116706073793580948455337528517869601147490907937689394231634784958700190509312200147765401467603065163298605958932680577910063432236860666275123084215181599442392855790623494961190575260852440308455585658008655059163083617886628883378408745963832655602747779267448848349740963502176454738286657982522745016354201586269803770314620922061069870854855785116356258145862905958722055368092578702671250309481398218373037105627098401405769490262373096427139555461969409757109581117478721463342831618423155419637541830564920412203069724926069464403822839121059345655739137108166575271223352267668830818283409304726284563758824292602054546395075479843750258912699970571534297683970818703222594087455458970388616710245811008464424623551181524288114511486207382386845609547448716931457348591566587700785672886394967322620864926813533536233093104093812172743668743287232811889590396372796648402861667778409310484082961729941885845472161869276630285832641454147257647574930003796544203503174454879339389428167467963772006547158514668115684429951586491710712042708354293822649699559116790548462610077733589720478955871550074726790532110313090172707255942849998118967861822912482514418626119988553924759431720005801118359251319042683658498034799076384223909633270435495313661888743765563636237624202033920124586090515808647619719795201094296726937453763734271631854716585490474592941882568559821742667243836986795713645920208780730767003316350973233887096520819923592966503648476249388108403058933803283442629126414484230239534276439895781863601613748973256334477649749749543844701196880645010604014195257610863916016153958051434309846045948682467417768276602661124113180223728081157340260358174401269566925698561933889700648705444740911598794210224399400030637650645415955024587691477488435067121389619442824920441459635949314324191331324221604899760147854745605727404992572820061065936099492276277656329097385129689639582729563511080521095825862458780153589533931586611843947992259575631666954752600895613969319629626621352999090415953055952685410828130232817640048297493832888376186689328379525528603762764749688512300155443345500075448963042531871114389092388490495024977787333183920862458820450767589975028029954352119998344832890483239979950613248011492528209214152482041876892534050200856954250111487823393907891412301865215742761614266149563627935472113887233009048894567262051697686619805225154121738453796959567313003995874880191950015264207305877209603466709188886588683732037070248714993263758990740004341991972311526184900569948211385679024314555922359990423910166475341636238060555215429744409699683417390252880507262722919596300062501004991435263807183743298492659782616208579197376557172537875377123583790290150813997722766198225607916483720408298389008236375182108545257303837087450218113244567888914462657266498045701093410166017424828496712821534651623838934428084499292429396474867881739712984411819921776510155512182692886868847985149702975981031083654911764632181662970642435859928347717337030672730796977494519385706370525688409752799057283829064083806460006051553775896574676019209135073991699357896564075897879310844471899499449471389999216471161641032149262338583576330935467816809363892414250002116422308756852223688215827661544227800403214905758401575381288657242774487340575281227285825564482912993777648695357507678677672584739824331370783592849580980402963607923869255795309840862402108357682816997473926607731936675625473943801925987860729683504393631269438204420987076522122834357425480206431447808885233544335112642762434870639254027194851880679313945204549806839811131827483179566968155359256822722230624998451223423916875317875684699146886175840528582120651856144860036395014438119970651661493644503664501803630921976399860127978003636600185579238072367660850738755441119500708556203188383687387809044923639845507205091891789869348960524876685972175261526261107865231991011688545381737571937534109771492230353559647476379355790324983794648172608355536007159436527740952013059498543494413035609854873209057375157574904337225772111473732565273748060164958807888776054681929740083078348312686762027804411941845709979912122626046592416910555006024193770280246888730070273412367441658345318874667460745068534117076972780871740565128930003661735866323184228786863117168278232757457284734465330715343276414211587371490600505470448855171473224411499622326977269293617452451285012178577602924991279117578353468563120659124820685640851608066358802650348974426292827461238457850856827093722134197266579549603820825070710497685432431361780408185481452677936745315003097817727095122057113106310231974689353260455317409451550865281232456404820461619312565646644542416958567453895513438898375273298057735979675879093161265687369006690622431139205173985243092221772144108360614593708701109132662783339790859191952405089227359883052374774659763185018993057635987331255736111868310541842283353548329724228526988740871399968875007566611459394411048289597216105789509480279933051180598479671326427167711719378234135912560539054686079314291037499315256835186090573397520653066115641697427068882327698819665625862094356903670031362857792540375884231980748275397754762786736199032068121657643326293469848831319722954741288015557265790503976217915294589283472302331809532630826718896466729175727744515492330201008857311184681742285431425916117256404370035085478679321663913986392065639260478773662002323244522810684229863395258760008980194067972808268245180326914830943282491306458549887239466685900393759732842266983798354687461668619301206468405648273423302291101984813566569222414148554762901761023324988450675238653846644986113606568666381515086734133115984045463951922559128388105865611622500407375821070386507046118911030275158386469974306054008476847054371707073731903207821383594397916305586207655906543861408469784674447549323336098413512102688798677385546012669102513239242439336727699654377736845379030898917888118037070666369355156803926089532717284257247445556389231368536848450835495104066784623494514131725661338245735744629138863721921804725330707356137574500021734214303713953122493279387965641757143990176780752632666589021515962233323663439104529127932492087036321380507329487219090558613647516787952523252841425769788665123925956807228986447637426509612095046482139953449533672528302928444464421395611167339755691799443658305029841634122065202688893701313165652852053779535122986583503314629678428551764442696625644561444811007406261674748207702649287988310893075285148906170430610193618721160767005170323013953988918510299762875536428417188853029610885455497001881747058539821036922529904137355957605388927153241708855876637292626596413575867661922816889086698203886024711985195695748744290551708257649988432073401935613740271900321790406399402943968922729821904397893292060221079597802160345358028706901036623211330483233446558275393797691705781658026878317896680110064880239324008950383281339209431098338724789496325917448484977772016949647389979028854059482782738024074528060022350435335071279918976187895162550845656288080239386492810181949219879145803858349019418228610292352523182535898753100009219574281191336991767758176573243363951267551447798648374426445819845786803531714103625943445027786672778713034537299023942653074346678096335590310174272836324869594786913335607163588725847150481662891177049938120263236058009372014482785413820290922004085689413918698260973884005492945373720380625323908775502664326070359529793079604613291135867226334184934959625108195911085862173694026172439997953824278391330853656777642259760957018653233763392286911835705232503788576016281892564849121387752143140665452555145422165707174714807304244523351618128202303798940325987186447927433431177068525629527738907874279440765800229759187921852842390433938855166187090193385471489042338127919867721501838493550695442034203160595576377733136747645198446187414962039836308342412121330930940662303722200874187761085380197169396923809578104192600037674374384121235166086909659558350927101752130076244312030002859510959127187587051189710297834744595085404542519623224547028107712186913337933840246414225361895450687129863154871364253342005340977876661558934937315933048887646954559616750225918461037990268917037183654871744472733591676699042808132221333916131074827981392182875898245825227808294716618597711186564430951644463238736209529927573833133416428823011986224285169315063216310218558050325523080181492319893618105772093191651678425157264456718766854473000280851290542170357694100435820228728344713739094062822818170396507574937114443688158429461849538092643843933483369102180843656497516253703560635198586106750345139373454416836256614515198448542087276085358964971622209418140727675826538040816014944809243341308495460116402010202008000854474826799576737328530648894605605336267015278021189177047641432840235873593002725356769730604136122363596173777070585994366556684059201235402683849120449890034579971835778372799066182784702514337479237117894935638009670375317262046423470675418735259012377212451705557180057199769676190144431409402711267459172629615553177714327120848677169853762649298721073057540349689452661910877786005399498539961880015139608376494035969673765627177288112127229399338685071287894907125310538524151454883468131050098607600427015080832987732204217318437114211979994680908103823791542457176273236555245949836160673721225951257970192192609451476428916892566504554482387758061922680238655382816455766773643124890947936874061324417368878291274124170856496458938617549936954195302584495082540859588847343679129097087992144885234015886500268522397618816262254416890610547749063573573327465199208550846011004696427081727160322851602366443889051729588562229213000364428054020008518762843268509509087931905528812106095682124720544947320152870122841884953465943813278014337824548340225026857282506567953327188303690419743663252906625999545579657297793776012782928250377530375742691356636675492364867094887571703442765837416214755452334485345492124877004307262584362183632986308632585669416124893307925345149017225417835918321598515165567315276895975374021752752276607685609962150245713752739019272297486967498579043671293130921656008275883836683059159812238929035424900113825082032626423860919030204798617105454185261879263597999483338015961055877678347801543942875183770135711963880297648260060855478643242407139717144913059324913128955905178271839246027478518677454006810126785650907674177199809594676589010661503423680742298209787798790294640032455732429017568349387353714154574187375866850814935342780156173638077860246320784956031138819989993557372101538059155030564420627310242288066341319508821756761662295355693773975123853698483588509994084688467335076973643383686279063638221470909673475204466602262313909767430342651672551752399063319367566888775043207258115958114735361541687840755774368503876490602688348062616547840611784517804351229659086780415704861934566630274053079795691241782129083206521334906671191199639734276078757927038211708188069927522007439793359028600450340922422708175145616509967413794808595352921232481199306388236264239486189175507848336248624877990565200085772125329008190698049481380881663395328170101689912625461026201452539143288437197650684866126316466460889729991113486339482947251892321433835010457049363483495895886695884540886888577283353032627532750162846837597425783562328143729840799461541914695446318963335329612066551866440575387237101393004577732825380275640191373729211129934510638066848201268789156098145007444053196422206732398807610500798603451738655278636309835911434768877085877161496259362457006110254997655855862084883735343794890240089492893289202217102301856289771246173521207023481606662570058686611442192738501764620179665136703186112777137150033848801540255501491671886404354034589365260135440041317563523383152012818781063919770254929386651331415647356640675493553220572679798403648697664568806300471518473920213772296941919475187928431119785984233204185030279241328139144587724706891397202119395658496418515321490710143635831767554757031715184880099553711344888297083875843635621927528247591278765463431287485160898310470849462483197296321780297856403238402787498012639440150703867482092547511216950604328656464978795717138248479823867401118577759341049452976359086266327788671979147933071338685865584211556116401938451197667645703911978737234346920265158368227738102821494823847694808776055787963548463371297496300323650652462150182757765280197596890988110710835013363657617611748509510957688416466042472007472621631364137302548301479723898663800721119418289886365892221368766416604859384646334212334854753184841065876965950744028127513548598649595332340945003083197495884214810520690915817417737122904653401074507727868868383252158265714179141629813440270320373442040589962332441377747544673270665601999277165638067986444734483950563016081616375685117085979436748353958443723846337225116759900261901621502544286222460833954708814415433604609568395988604739608753689866364918097704930460876475784804656297983688797687449638487603562530876097957020303535395337750061411499643911203508410536051715164076606076249083317215975626738471589252976504854621585195730877962369608085847887640622142635145874025559868978763662691707646730198080549571475552875702294990064327018086467463466299485552750646995554132596467390463383437907573087689183642758457989179560319542884439103721802251425848154531187294217476840286104092231431064608406059252063558136822232199622852691077897563707116004758251042846281843228628678070499087523538727134421551778754637729528140905486427949167873279926492164742629307901951725011881992592882121192932590980494655960944762020070375521265345191891313762260250020714018026182687383057211220500699045385119705720400600201381953067260698176340344538080611122329546633729139482293969909889002384784527904670770575939040237605643310576360772295461730262923921061208550406131489392201266063547236333335332227808375865858836418590572734987681446254427909394455203585352926849905232617923856235280903540752096648023881241687087038676752129646391518672924396453284253351885366786431497923261087910770618192275325572441759900377618349385977184368607876787704903839617282747243959646236240305906749804156217680139058255534208982300923365848419920590786524529629123041326235386182728428274825974695056427258165981899616761738076724765299036270489091124689979437274437293179454667590095542435553957882499556916882668144269116135779406326539857413802655114633017162722743003215787743982257100866216145815097107662026345421315524784976847654410270739462669673950925833639118583412729914055576057358993755889030649112682289452814360436950937819640754243624453142785462010289385324254028420363821629502272537698669181265811872619081791039443591068987697094274042697038935608321363708373614312049783849434206389039051522823272887175490756975848362756700214397699406080372986484697307379856524389430020251180055248676393042785760730297518701028885853005212892723530188447686963698853362696519396154561907987737198523229034618110289749519265576164867066894416265838657882586307647694936149162435519599567026929096371226911142708429546926083147302597716109200031573133035987481509973847963325381807252909706588312111440541770529094439473516393349864260838295378091171030287704179353365697672732564043049152360143798638244365889495049430534638181272369340035355258921642365649252002734462545945089884572437508088099791457046618374464654764928787431569813556440896069258481478760039410865859303235494606005545407661164219866567236350406983394079651540812435029800792481759305916493056534893611874800373490713883998366207933763472690500329146454406469593934906338084374870876342973980763642555812831263544306004674485013343603642446269909581053590038706749180136350570324365425322640378949729414926807108927715005198933427810932673764940468455227834969102443721014512729120577212708782192418639258031998458103817754558686369540889361074303376720963810521829888656518766562006248651117445520525397033572158143414745190310607957453701652855707631936128918170451629403584712932528951653092062376842436775130703651298263845036688504430676662227685185226259259658196090996991768367648088112220396915060288048559084410706420846469047132236272317867536384881411065539318453694091400855662795273223185735883170617884907712201311628396333130118416178795383365065495686518450716331516726289639556963907579887858945105433275477543389335927718200226883797878744555503484048210633871392536608620081344249961596857094168410924127998207126957083254804675154003505992784573638698595244101489501709200045902873316813233316937739170512355025687307661331146369419995271858988333867417739656670885710746681196378797206342920241140366262550286336517223914421415636212692075965657653241514416977591884455470715042458347864621470860810547138334893335857789615722128902723841500482203393911855515147679792311996542515103523677836923982541517984977426398808369560427436941645753238787806086305654071198615209620042393308174751417917415812139136511803565392143793932174285326868850885440287961602168236204657090069605542182964889368047779746366863129106550024403687015857430316213721802419019596567040096263552787541834359413593126126304233179076233448319853687523836101757891950398992262079861904468481300132209001654983391397316269483874527547797861646577035196749916039132312054653418251104935269564387109269271425729265417640907888903414535841755723563227268637882125178654139639941128779247582104820970671144030728904450560654097763726398601144763860603532785124698571569947336446557558084833249900119155977095470908173512778473323147774566665494984559155339678681322574969659935811430792782928052823092491462159915766202251310772204826040536918865874457502689632048030954750318975849984772263792972317382509659041650672565963095573938433627975392373856761789158719547438414502941558248731267625873039688985180066070729368477826995722489609303057195082725586001620694731925063561312245619201433062386184903304171294413295711841575792371239349412925933865523015223760181473037390239134340343175183367986239852636513341999672887123107158787537978513697007327200879674064016109285700443782971007436875720455031098743027666270776679830573930809252332784835243118550339526919646838480144193600738495122991785847073383881224426048832325803309640322884534425594814536059273932126930635091925634322431835276893961104589341333965715720071129399705880035646628452953155672795878453283519207968701187935420081265853492021214262477825607101020146081591011149441847295575667212669867077996737602405662683644061312395628495137011751886204833842606349165119214523384045912728329102839593844520420601319183882078485156003002631362059101940671175551243694527674737402691445663711766144778271575050931450592742483656103875643346505455205124422007198254773319219896214274782513332119315659784316724984058923660068751435823642672269956858412469296841528992268333035762162049595174729527361569020968200577211001212227010503966431831544193067612382425252467209223834696753596286805107673272083411771679536982578895923183546214461895234575695031342091563072906995953457470313642848250545852076298795516204182818666997410078285319248201494168711371311964967607054949879628316525958953817422596720253520257587715645415600012920123876436533806279510775702336937855753165217562746552363993885847260031637964264952127481144097859740639765600331031456123851236810848744980426478678876580072768960185776627104017217014504457997374151915653810770603661536630367078141492270331873303495333731137654969566268667145503766129973540867945878772368991674428727473584051212906945237404807672512754026425999413058481313657415647486797697733884250679726784915366574126959530735271660490040468525790230946818697767469725607091160620225909920257112908616302301635239014021449840991273610643395228869782043339485060254568643902901616229320657738406423514367563483643561853884139636822162849130490958997130089526100191142124414263446936797746587519554674392349101482206792852289823278172312097443765328762774128232321560138390411836358794364240140663211800425033056199679186509197442771890751448397094596540143430099585029163420608647368064934321294871960671959484958482609821520227898335914661222818990733169237358708977235379034676731672202863180048757901081604281032662025660629935386638238637957284895777293041430135958066601448115983230599389285381647621199220975793397475599046100692603518539882542032407713038535649424333404151799778183641526168349761854675013999788219449509026200713942175511870284185012953299430342212607103611001017002937124440438213572921756099177354046305975082438968449186270540518792080384456262863317924989497648921294936232526987716469735260336369971806606754069458565401047701810668472178263580385452865762876246498471379537255494705821286194826483661488500653705287026763824684255367870319621218355509296082083566874860164566763762438722572050467167289501421196797899081551745806261743511026346953007362578422795124092412366735235317770963185810704864577696293399932147107085338050705978295458133620297392527190527155235353082222472081728613884820843405472343552313129529568141925557571310158982953102591619207812927314166157945752272355591828084029484601366937065375146449282865651048658949387681348594327002207446770171013476941846522307926820965212827188823959118661262326007853508270970880628697060784459250078615413292098997327409266274535808350945032017292610526876576192617254963113866893757341920628739508473075242685716660144362798067809388350381853389692639985922852002685598135670054240213998849622613832058834174557110572731320433517085394786741848168666043521283057340117857165375856786562964653243235141076640258728338881929327108216006620695913787059686142261131825900486352484538385851831486177437931506472893513361034731338327443954990473745865191646185102827162766188825300072424817433052080570563608058731794658653722973208450796672423637106903303100603139248479899351407115750923441584992596736412862789709344756447409222852884452027035282034483884757787028770743958262537042831261209013375176854199266426155581595421061340741364982016386601987446303598031442833267433208732766643271520646818107712834265476874500150301663919603667217585030393468378407271149438404407659195621267285474542537320132788015796077492657599646922044059435293438522602497588192088162037687452968563949057875651065732425694408174131318500832116698391719061589203842552353382488232464841273500927607445466233632759667455718991643826129075228348002003115600812682590557239595044616973432260056415729130972821258085645479007586581329087346496352671158066968496341999328238651167586977924420780680836592698739992999616710309652045324376255222959513018272137398786577086058243771423488974737124765539746312776078495248388275778933336740058842692167841805849167873850042978326315651992285735150326868626803261028806033254950394199514213897766610033494201558281785165662635657897264860682715049967912263312569728555416324256355576015379181204906742571221680294528239945574738734416649892348858849832293398697049103387683565170689483669918244431727853621733613707811246747531752008842892611691724385778228220682100497799648347276020219588516554689322529276788426674373512488148189857388301088172828109344847018373687532874187260631701486787304766976839427111011660146838536727665174103703309630887889527315799144318734708797209373567033171600197414689480738719245941112244280707944495498522323246111246190552526994574555896236482199657640405148158119484084582582058794548490042639845983729120138068416469052766739764870087534113337225825191107374999512868717790776173397287685182541365233674119290319205499288345945140360495062935345009859459676852729066478835199983890229890196386447413723130232421790401341162659329036042201847505254018554351300465169158213550321282553846473370960015134218332320020164645893912034082322724869383473559308735788696116434122599154644297429595576005890380251039607448022514252636002351134076621179565331829530236835196677443227069247589086810234693138539182421969395369149557476423806780804159993436918024160270663803140652821359354527349809251809453795138929961869888517422706362839682788189807759331448818957591509056938585470245066534853533026637134089809543942398493263895791011849398484477485978280491560737556469853269631563509801264131473211882402050352175973368937889731618713402496495330908900966724395448561191938045632618831962200313457779013520075961290285201072952840324200683063469943275255488267955119639927615695995130249442639389265942000560946734338805576481908838766869588154885229372234029644871389350545553225006076997037056487341963519810430203015387535788861373636675913115048679371770546652648453455949062856449241651508971369094723428477152236595238424052584962547450080275752682853906847776956537207127461759651803712183705527973791217210409118907592944385611364191177681679882640794549815424641175388566511854019905528973577706930750016238034933059460302833216434319446513775655444334426889543111140833066875432455155794078786357273421527830301645163158579584332710647837148428404824661641170131339839213866295653540863323981993778334588924951593497690219894145599196084939220467772066372918358624048222159573359178487328784365897250711177508406370807649861996146127672180339911964853245252477381285523031767179747882785847772902806405938609997532741634155488261933646839423981680744236108020256324937101154512170305857752741957057806734420844297526204673655872610494212704115817378160742818534037225702776826003288011943887023673176153827811335488870802049346672420006582246062219000559566751843941887488968198295873078314490667078089177541682089909598930513102931648873519675330433843679019564564423106096050507747549342386255905334533659571768734475833089682189153154513763808030043795772785648485856381150700940599850941545462023922341295675856099572471048098882713730008546859094918314379035709087556909559704344509089177173974620925140267063872517495965769940051113612010536858060481338445349201483828861926615354383976668024421361960235405469859404506707449613039601352358747659327033569875428462526623791607212876352566944258921602418452600530950549236525753143566550014605561866879102866481116029550019226676789895316839706547557539155896726242023256652632893901899428488140784153040419787795348345146936133280766938201113132983179172823707279114937447113322397986205204940980620369605137110390064225248249912638267518882476723521078900252557878481803405968907722325023838618220626581961725297032497112313743702715462956021416329722622413593888346545629737554545492949031627243164145392102390636306080030183806171924750753563227318324880866017054887075814396238765741522259015729211388137558370757688071415733278706493420273675418490415465798787480457648012461169920623979673718521085958164049288668821728317278375015931987996806483999663123041117724652599570395331831317307772201194577284484029107529210262398886773688046809653387325264893222355372343358448955788101297402499772965220138809015981567445499891345065714118729352579351666208426421355449096965555969882626212178854991987601731275980251488239682149846559914548143987417465271325645152985953369158522007460886256480570097267519463001480171729170994696646924189434180550823260085584552287334213837846384938487144351652563441911462156946232599839889417390154418169944400590403370455587232514635685026948890173554403683587118153049682393088932138916235927525000486760825874667853054658545424950701651996999643969478507435850783333716343536659007528889740956646068078788691258370193014510132576082966890461237991955137338549214921840973571765545558449949012703934163579794147602242935347269731413964314659226256880097749240317898787645816210869979857655638890541446226909162250599489839892979006609725656308782912744253725278477497546284162598187428159383008085163517085396307933097806902879558180935167428740580905430644299375228032441694524371065474975835719420660277968651427557400331801777251243825171499106011297115813978120090177256094053677580240457260829312682954444285620531334609405185943754404158997084424497292548608545156854704471482967591245634028773115900660711740395294373790101968443890847540896494670102390707889184802858121803317211887633886195571847472192567769535324703444996231292367699400333145230702034044312833071406636584341327670571871119170158564767742381772141999538692420525973026891435596296057302070361878761291375951225919997528565546228299123860893856245255651438702482516434551549236520804856362570008568685026734632010619637500135048492496450847890187145909723037530412198664325627863975515990667884641115735139535239081458845804910182084142001434910786462078376452336324922204504094602612127950204940472007111008730554741752194201834823852889954847673727685922548004699543153404831538830356454786689519568248795030222584405153241452354831131368850540438145408883148161859926458292673940430487764778773544856418703159590140557663917022313362330586655751896615827003124286443489094175362587904141805558881825808182117204215313978926642536300541566886880739188191516015165068885497543399124909694479890475552930295097188275252485573060757643583753068179992495220850428636457151787018873762609541929098606401591978326434472937470697624956001450142255253610516932198178448840970366174681087626051053447627301498112341914670514916835747062400935761219002628706928806934782610283655556337338283465504005813782438129843969865914709447019190639720350386127839006544855065135241781495174727925828311558769058563608445522538271181952433617981402074801517372172790956825585244036773567366209531064076791404277312091915251854462565147611552964962250892054825642857641647772773329992229793648978430570381860629997518012024352426733857914061833059400269240216631931137167635616204002257480725352189973236168594732404580229398121389219118097092304478066051985798854354059532950785966936603690812019712612537765327787335889478701676596901027111436079658592914849273032463526052224271082542823041752404783065360788338978723089565399408940602221902574770679966984023753981642453792526412650732450635833160406742737585361107082441436020757778112397512883406327068876336938753222894499777932301792512856583882424579205037951593852123256858563048918544025038416049148115503500051506140729280064046327887111270269543608984421209764369084083747271728662998699386177941380546459534720432712007748659689307141725983430801602264781870853444574490562474716435588667474093911392123278726794200472979569125565236581615446713338931681277417669725790217912684606178142771521419389447138837649604939210442811776529513994786449072143623720692673588993871551630463190459249459294657281855074787249857953587748720307468723810317481872496987244952982220670535343698449181911609682456732793999379496179077441974388987356660410989765859238459278583718344762630938729835628908108763510301742314460292389822963968100303318013486910604790187347051101390258440236345230402033939714066951709567736399801024313621316953063839769136745283623657083857345025398542906708785195579938323413520896555713656183816323648846080039519618871897077763950380157448287508826700336187641770892362800245654508708485829144712454690365205353394798655889798123125600222801690839664848812613917649883648588390302780131246682373813966530669441128957513933518839213631462460597440405860335113762096633052378589340517072887142210114769888349184731963504252639725353799602531962176367256808654329491755826343622869603876392739732409677463894229145498996621976127574271847669240401367360176515880268260461489587643326257926610351328160065540247788339059290355746003363801753987963425367183899803686372215368753310921112586151539295107373819953155297700300836213681348961451023278483873242343066429748053866564067850697083299015344667801513983482586309561083151210300662237535237168933859986626071554454881096194023850907519437594680975395924345815460163761632634224268356321067933644041764088131197668876881470589258327130766316417089531111433878530727917353801893269196328567215704696777206830214229110459592727579287511323914147088105611683734403162586683833552769190133494891967749538602881946514029725111367792902944211377836263370498204395939349782472250582768015550993847789338875757027691925413175064316878112817983655175450732488108531443934245085244863093672086412499916866386258880918394017132982618640541119575533490548299833541556115084861879641969427789025390608687184948995118655078667517696699937311018049746169154257754762536952056617442327923012562227387531592172925486674685425710849423599494149267653416008714704605885155386147390804096742224155997774683557518052645194446827480869004061050817908819794629121954671743545037398344938842462106932686682636727571324687967930239010104411646742094662924099240504243440707199420880063010230245570979586621868429659758234287324596356757664323542288517849753388723190940868660805679711456439432721789410235141843274678281101830935543178193155696977589572099474020539738099677233468457424577404806491247759966062992369106219171401701663379061585785231720253374699887376362110533698923905229240402225250339770710232259062667970738190032990866454669506580597444743570591600186616399511009657883795418973743688127080606252536715263519154895931311379296705581882520519046715353830961007099634599862861092660683697555134565198451215012321993828530218609748465882678466814573322140517905522085876014199362877071976058775454912316827229631225240298142040295502911272438980398102576628429806711679122458158097375021485374666445501664171922307170409605490594283857295968782663196071844733886273721574893832271939738730522787619866908456098992201348130895783139651471404079609312526719410192226911645708834434348054528521706506036719591407534512123061175859102494031164170816649375487101467177518803152480911301358631283651913929073982454104159187666400090895766093143390592731441872919737339037884499465909366718624816695917165981159642539646045988045775849305276692064439210654097475669798455224997018709215556246066100273311512065639510038164808944725461817333047924836961085553773960350499346093919498140768366021813187850114137623394966995324856945137093271826988648250433934820336830449827130049733031540838544596539395388510546717704202316783623305529095232474861827764391725980943583257205966389617981178011816301132108387614079122448083615246158629206278399618164099266332706713128580208814840157064858103012706134604615770112672444752592692989549121781530801386804760286698384116525293552376425540179319281188967807312399189560899694308083624135977686909339960690476782368441868189084402267723113616388122181770138802283044261220888963461434134035607951592442891673037644317967626535357581796367946481678341848407499510037827167444100928314421565195857328612483386140511497050089420100468045818525292771331138054889313020979418384052034395632244000089774837005685010816486349744519569631306317603612498023570717795354247642043694177401543014333728098699767392900821392861025299013504453738366220477619734440122282809125504835312404619231073923743111894856646051334434077878838842350242068689157138042510167844027149212832743379925627046040836861998737510045910204830999283654021047371685136569341558707564240904011526428624376146734983374133539480482519487417919148105660040498843899800718471947541169278606988266890044238394353546281333848474121946843192127543684152434796345685672234098069797200775832578178027692829054494973191969430818586608720300950913106190528602240098321937491010579199188881185641446361906267531939748882335928393782871479021578220037443050132191344094269908200288479937672298811683962664664094893727646674436469221809741878280571907034219625372380107985593863302352234877440770450504984495758540735558864797678192706215097162525116741513848815362219188810381200556072418141814719356370193323512347621718290683080542715650980405799861602575124709084214642373829427498153623564144530400485710321441805239877648124733668998759638521244896773901268381124480193687770768691220239822605162429397871177586285173865850550519729898078158737271776795740493782587510912738382465784366690890070546615852247141855281810362498227951780915805595576840164888728244177402526644264022333345099125806040079931198235836270878018245661640559959516915184397200295741052718454896409285339735119369273604688205503913522843797420267735810501236620341626115782102993219889012479861146703236774180216534953912652056251928984743988038934021343187828188204481988357555687359931887934745827183159521569395525690804431511388647109817684039581732572983515842174827933043321622720255413164653579045699410581322717141962103986489289178313501318310107223324185914116329759993686987449638607806481993041603632641253305134668017406410286628339433918934760438422893615629133720090878922394688460615457370495065596390968267973235549239392925690256887368759149244238794831794117893036397605806834076547204623520706674545682446976416064507010427233919796573595491017517237643469269897474145980018477105745108920448947329224900594105830957756921992512900271203392599566703995490828849241582106277829794121650272810802762657018117793597018818856488426285243871437732799968696532663125696019396762827212192113047204817012142012739819869134618971513694288107197392708637935312797299796854541352255899834390147537277062311860133780502299254241757148770714899392171719989196567750460367829262651856236752371343772442802041729669013570039732071010344808493083377784177632566866602545565931664849783980922053903749967466418929225503741723648914277567551299552711879095128463667677808035695098236430254715784860439819928665867130022110309649998600597896024363737834580538651099898287039289504915376978126960010821091853018045438697683377607073996810085268933491213402404815447615837493862576399301056834950597056381288185860385404375781400031776026560363676805773824344678777056805681088435304458295632392420313495636658789042557427848172755854350380790393921950180606835387079504988795696359830423255468139520063621790512366871724114291420801789515871774240431671687099329859834550917062850420403055369545251951603457904686749842700006487364342784977602920017869489564034671963492716942740824682852427636112947428528268557782245644259675028450989859701519765661981761551697436729865024242257020993724338688600992503719989915815409865914902471354664920440035782640195870128170375820486264182660944300169559514848595704182440012479718806237034984826496441657183657022127383009240105038806564368354281271291771825793507455487711877224520095379663820788535498148526337497804992404999827136931208843266029823967590767821795640366890471614425888635880060082994837129982577114786898187081599373913037615273159942241567095858085913489240813469325669103252681097744112973361068867466413849833102085496909007225170545204309083202974347450714442847482530731570796945375016498981155123990387011493350601099481109597173412691124953958807936323353373316299342077403557886177288411694531888181649169663044090491585300486578486916919089467733649289181147164918034393049026397175754753078547635382522216022465456849476231350562945805273384060719989810937440319262932210438670958216993243087305633578652486289532342004825114079066107276306437209254536105660246869370649272444331452732419184080548138393238491631334352427264528183364702348364162702059996231593854837330490283888132683386473854658917540915797378503610170710873528837490971769631219179633018095080226071129642434212825540522523258429145769737100765610069999069683619380406460081522018942609732885269954620648691473123205416231189092172852581384963674467319965530430683085277016521460331201071035525007230710364238978677672184873811466842256100138941466470334122659845693554884587644317905035829624352242648865343360024901453949677200751582694438934438627883904930128421913901376807198821036205055432107719763623420977081580384088197359348930316552732756411929407350390201153514550182612859716881431535177806906687211080112282632511429269655691298913733051705224091185989959846701981213680184538979108183206944312088334263153059748724125580572825225974627709769695691505860304926038123002851390156950124115183759864267483667667444891977446582594249695869887883908200551047870574637201773518774119735266593765413245943874313480710047261210113786292815102739280694715707590844983510491571753389767101868392508171808107794039819236460630739000029085161479556840367806598111890462493957391891599275955067401051154412082457456711308454199129460035950636288433469101604816750004864490472482838969490482175622717116720110130213941126506329764105324477074579220923740489092275099861077606922885593636992737219341281051423712494168035321226812225864035406782217920547954253581959792827767610329538448190670733351714680340798295233295171867674373826373769321620795232163593983648686653955221863668092738606334336427624765827050048420134046093191097048875773157509841904404556986735207930120502386252702874231159443184941930567702599649397491096505155218531283445049860564301696435651109785687083914297337990719193829970796107210136315315325584238224199162661695271965260786721214862384932790258569495706278470861256111749117913090607689058657021002528359719755602857873837030766089980899213318400477837672363435321143720472578163068233465640795120165910513830095019921430098035170215861527241563073911718078140606557909712486781820207823781938601964001526335463756427731807445147873935889625915517019192510226120687902213656815897775542267988902640204336378420453022852114581239649178771390313031145785424320233819895565695959212638444651484096002857122178563629798480960142062716826657402103312962577157816544561846077132345288971645582528363919658378923747349382678869448430618282496965704337009439673873766423498458906403806158700341979995250732248491319563734237629318827871442533296203775913873864999275176107883995672796717192091645339728353537844973663396931199570462078451919136793256145082571454464719697994273374768478998910951687665173707301513436895660016562591422931875103742522563512782648159668334205891886694105352835733602534189102339607275592986065258280993169196996411138366984932470025559007975648000917703626344705397571155578547984189792206142708417120778040785644882382977830959608210217404927662613615739668211524286204040058628271084567601660400154562345444214071884107689701006500948608098365347136215720173807245541614213365484434128927857070492042138765720859882847929577460035001104029121584060992623257051657452933745655599151282723640783120415907767386423823833970873716846482831584399973223476151527460378323487081155109093276890309868255958272394247949342898055998788686600478874716190590307266060653176819714008670562645288717899931798586529308023658671129799686219053772652430598571834774959160960006573031687937025491807458907037925757033342267673281680301808058452990715655662266507253748063774240137494561814684292099514551622638525770617052750083995938863112832774152817492743100454217006920073561205017056879911450266336808867661445731278066745672953298585275835191284751879649386055094806000160667084030596197422994256058161776801769531839495941176017560177533758393128623027015606707556519680765877491179390425955172065359290897820495061797326149158672816189307942657961512183442322016657586911560330566221503768807690942095980586646306305316968857982069134211887589375502786337221663793134359986456958860770347634643083301780457182208011571931929790839245289483885559902387633066207431792566936813945121354103725676906992248429271416672369029164034353759235810573708740613636647236592311195110446353116330150924881592914581612493275659951068238590445798494011649125969122246009126072323161863538264998257110091772409517779995971308663443927184588936905936856664383062576067518047399904719306097683099251924496184773395819154364546247167264546711257893933553015927892202751083058197389623541376412168273939266459289910253959640431207419565167087512922551913657987830745672295961258998890268569817316558614015249015361773472085855609097393500248238212120293765335652217407667077588875652012248492481976251474476182990372440475955211943753579542440198363873547989593373068066188903519353672499515769106149592680258001048959596470014242984297945462221946491081801747339332254663505511678614392161762168383904760785445969129869835174533169835418649487307990801818461352545607449020669465866954306202415745767630987074450313701552933986572461887752836120187112055736329404786225767058411721691078684911249702750734508787305519902063328589266012125185771914422642919021430688009918154206863961253005902311947245401578690967958637959570246894443285461451271274484780978608031842545985009399796403521731762826519332275055380010128579239915895706530750047377750696960764603960871886242723634091827279828764295253180971057703665458828914759713292633619496004591908709628236240052284505763309103447590022393712613669446943451363977296250965616081466353668026555623086293483442177940659355332722288938968521838826462805818995041846451582553348991879885001784710100114103861758965533629701129797850927808400306039216561391148622607056510589366716447788653542376440970577841364471433375736810146879684068220854959742792740287601885261682115848959579354426149231730603659208459397840356481274940080270379788191906933055180191580235753168766165328731057527114213448412845831865266482310113255522839275475432342995311378780157667679271644258492227054321339859529173251927936239021660278901062042580966629626813278729539578506553373470679882532115073009452394074411496915508001787075830520512403069048779015679599847983709793918674729102176274337928907761987040052403510074815008026572908221928402425556331275203893699392177811501141107486011665938124118695024281905225884330079505142933941462619637414308927767555590571433096759729294501611407415526756151154158351396377164656392283686793592536662532029284735475705342472432125383149376055513447364082306824183818051499633194118867320369216367420420819128654167988033566514302959251750640073306516112209489338122571091749116500426449149095432970625268868903674290041606228896198290850034985575723789006268869316499829224842660569335636246424401463779464721782603600475485010700359372971466492397501813123646742085357521447681695099267634923370125422192174014488151952929167568513580777207596600928668103501385621168687091488469840537045912075451364924027207399882434852605466420979589221216989986037558311486791436675843243174312742144402749951898830401776448488907633778108420255685534364013978114272754084492252835474183095078348000746131689848044877615143134223432072240735417867142096848442577805792807797564979875088503939835796529427941871364579759788565167347702553924528487480822890304048223058134573359705791899928742786800294448567204666771965190619084644760556711838896772496153746332313338302042842657683484282797124640475696316756360011261642379401008429332818612829243815469763429015730582590245909188553169754748651653665890479039144064256634090986701756379928757859059337098873660988345018920311804240344185850268149354381148783300197547901518307343264905205911180568731113027565084822767155972363916626835242881785459613589363745214618995912833964672957839338745411740941318782786995504344786404850854223845502000264416968040171369346068832068568133395483818078780256858409695097114223353384599675983926011271472038592852093231303492600454938945961794673872541664862828906368010029511332099164663679402855820840493055324667876551134343338665252161938115903692380881124853365244927732618437358994478190274499716148699319252992251003350535514033254638335237914808583690596438032140568345845791131564060565048793970318766058713329862730107021910537740233874535080348733020400945644806635012640213158851423886103343166681429893448269884988037368176796067210751593580417912831362435311104886516260295690041191612600243743077092916943442435956376080241113440473460613457494412412252091273049736581590303017922484041935780585057722949134082290713621688539338888684728501715663128235831439885236674519108505647927460152052091757731852121581243865054301345996839155698792859027283798019122668036704461037523029825180295160347393666005688427810505759342074329466025054905289251647931396289042993635374315768712531778013003516819716325999278673207612887486947926865798512282537822510760779424048847953260267695710979729897543768033171995237559183920436017482092989062211626951927232031908030365624549446218259914074417369758034062978420358394484745058580846295064864701593839088145778115614854712206600942737696390549551386383321848377348487873572981104947726101918924305686357279189358398839699423834010049192469167482064152922522929387610541484615703033048884031167708337826983937842427775832844606140476159238381869012584710745663590146286463254464272352804271895839289501312055441876750131672270903956515890086335158809994567082855185113550410315549889697319758670455627798458474527020962044905911531768783318450283464803055190805566785451330966951483540929341445410940255661720447923189624074072257635938237662847589161917001527060017984423979419533169398903014331463037002129896420610865659139346622797005832917593832144534532355808635971028503711088633734509080114425075623127335521778947020121039779680953007136206553345821620649297086401087036347737091323905144243361515412772291272135519759382309065396566268575872410451264322116955463260055013319545348522583057559130984706248618068438914236263057289014487567602461081723335301223908289840551902519681440771623519782530421649830291826764366340323469770422832985965500895514088017119537379129040223602118324260491590001675233220048962774926702550495562580402485867783013201467495901027332928093638485051061071877959536421591918332509130717965627867246643688373062039591110666010152513342291227358723173779803219883540125094684163318486020993185840736534515409075881928884208933262282870650058621629485574110350831887572762859985664430231046608615929284195382688351479695888205878147239571157598262649727212181983998515926646061434466222478756643897516924459961782376687468537554197771853044113422210102707609549891943486551603420018742834883984467643115025626400448948607825534884751598387547390483816419559014181024794463547871750660649180183114867239001910243380695615485100949401795211629686266246071677134610858166522644573934303644390332591847213269885082596490013938346297264702152287417575997951290590795088288824183456683723052246496075161297013608113299819032625997103784036953978318114379015598081435877442626126234431162614723013983904231085497094279956178639359870280731458381951491434389715722047854242624018516594975535729478183312884111984601641951229846340996628616705520389818387232198043195315729215017317981489279637572463794019972208172012688317220530161004032200303672802063605083242233148637081913215311378881345332598872831323135163524011978501744215210946960803644565484236991183048116533331139319995318346442494340164629677195695885428639991969458015622742757529514200897002770770174419656139661071176165002581093030279067891509503755176185063697129159800269495699447693719248788938296818318277998371436857902121506681289814663140707289876046736694170845961321359339418522329736986667946144391731647705185027186186304783321584845123012538921075212567349341740392587026237296252541531761533537792006935506090053685519669034349931480180609122737113333064426313649881268971989923712263895117727790335097225551906478660221784083471122465403161452926021038224411179172686232244904304923332355930829976634078448303949084927410419313739524676800595701665284482870786878493633732655157798959645598146429864391054208224495088587790524969303258942347191521292728459465309609540665040063920763094373120667622009062416676520558970620325033879965579844989584499317986851454841132174093672438838679654908051299519278960713685115748572751632813351093136963951972131639780742021531569892739712781792916987558470556848915129340839636696985588046448812660606310830301219134186296982752906460658274592688008529893174635728425188497857626047745537456584818092008333445548925687640839601524362991293879486056558598055588456984983464044244388200145854201514784997110667551570710351693565418424156992432772522988238097082695103482308349597260597047802642252592760332601187985463811618604670355955629483374701974780142433151459852063528757219365207895324575136488021514533609350702853725228723022405446579787716821943746161236880405635982220241348772271893260386904261794755247170482414359610421128654645219774718619716796701395881139695390387278951124052674791201611515420710041916529255155251445311746549450693811853866109593650169272475182640123322128447752115595087985849982213147787676021121347695789164358601747782931565860956892753581975932580910623987790760165916255272162140971506961141320743893399460936309720413621891486744386222114326965068702000515805226391104116638688360430800933057944274408571808665981424562420263504040009328594387230159398360420601321209555462374995279011803863499947636389244498584621183930749065836199230978033329989221130856513607654133870783827830257683426390199135386107040482288069057522297376832288068245817438326529652427134971921013586028732424553856440242014037690037490693047955325335752135954530666552147111949950682542495370143851714981208820659547844910583767943622783771366040422547677003836325628397758617978570929762866790150309048247407626066494318099629351923854842410648247516031801723296091463078723515819085690797905078462475327111686604134415856652116728189170546499249052941978949706584762721767026237386420676279130898746938908006585765037052959596490111587466212409096359965613479100906544676453512206175748255530179666638281571111330506137947646667052962033074133919557180034990379449079122444329051514099997635917611625735899021029056096294001201863807312047512067620746644692123168911470062223882987778303760507751262190330810779334698858789128834790592474817513798252292741343701950826266959861736381120287271115826254362772761937138117798511242553949479915310072245190626334780371740499456837294501890715337051111064035815450077895019057621028374949705518308248166165115923358575035119756498178999765789013275739527144619841957615393956093223490635666782623412035646309005685404059617778544915016430437156800988152394521624438395088912175259106122085011329503198838524068778094641584018128343157204783164160465158417872905276580895526080194484570878088606872599030523120165870460409930387988749867971182230034719622203098750280026560224976289234112834279792136596139376806419285374064329471756793115996727396139081613445193413021462682707290348828172652794068150991695488885099358517917230610066279611766694660942176951841003637603735784279906770150508382003571821220557474311896796043420645894412046572710642478691528795284910706714274287924253977624238800488915182596614542190876379860873972984095060527691507120485329503329595385352201064689959768332096468144572153631490284174298874724633471311095553653665189875320232992886926644294581495069486549918091058419754212525414139031962565840826626801704727999987456759894321589068916250473709887361477409169709495599228329924745275380502188461337589922460345016994116862954420752018830793492039496742041582467614619646101443252991681890142591717499063028108716977466904312887512958924367990022324210687209366752538348076059689108862574769920940166176170204624915157511421128239458871337663358181014252324110309779515554245405952068119050397801974580017895746125015205852146372246982908951236002244446103051433979137010286536792318342457438073229526517717788331940870640371910608372681340520839749567377267789375817185283940153878398781576692764112562400808095025437324570252383134548794495165646963981482328498075159211442225754884752666691605303016960722584018746262662366055100029096312644176788246796942931962610065764571838351101452553409155878286220761247984980093295642498734097699031251919374535546800553905590983489838438532156543566370065813726882879610269733929342347825286013028531966922883177635179529780388686014024247425387793585888025375948925077840901865699642471674112880562889823617772830152541741331414971019353797397454984353750039468287532564115418189148077596836286835851429205086443378124063057242057006325412572050759816419879856132666704560653420862935741342874605801817539387237065719217036607543671184517853656436353175828638195449913130063877256021938931505078830285746468804634130586982997018586034837924571081198663985526499970753486956160090406284271028197122965567653931894102169136434509647540113774443287306541589960507904742257818829147218014214857993920663594124106386222546790835789958351920666461523813532000153503285404643040981058805267464000138964130010881930945776250787937676099961958383403238271737236252066047949433746056228752318482358715292404708160266341809144708740909767805906408925860092479062748448782973641432076401953273618145365880664153160030964090513754145875293160573071601406730314274622908462040560602241841814118561608443005551298041622841055783530667828877043633787342428914099566618074100082792727785272067591259637957561071874930924228476872301263314052351658906175832593326545671003208401885431404832970935146868205965425927962367015638438213411122462357764552738810189500908679591336028226107536602474606245234413234357521343358422188464679210560535085096909045048245933108135472224198161512775864392344462280217134446643739403463173486900710098904487651853996923828248589018080482702779530093112227672649652524822092272058370634200572860954843937541766366547256991215845765716269721661585924097668024810892354595995602858856397583310910394627275908267966151177057401254334645135760399041251777740562061252332393666308971932751714704456476299386053841766285528197216133717204214049412234001809520237518889633357352572599980167885412230673717676169137248779115198426281586827890852732579879836833391076715098433411268398692923054079118235457637800021177793191120206678873174148306506656056095941220554690790719438422228896344819628882860788074398495171453106453592151150108179942767915869300794303808926892387297232432373470767206081947165857576459459988425716496424502877557383325464746034070834838090549467928348990686010782002070951356150876057030906162737599209588699245091410125352534188489665859845371470667559597282977653691488094242290802385999820854539506169197349248275464546919729848248891360123591003293520328204524596341099870533733867473374638657384398651581230106516007649715140145597906202324137640619963104865890969872301497651184510813567892157990744372798966803415413470814672895271940188675964126982411251152162793392092750476938917897038282125009148651506171039889467929381031414559095659988057238558524093470895841328509858807622077540717605986866588371962735473916299320684165336300617911417154417975532896582496085660886800043029206105675983337818771291991657566237292377825132417653052512993257889300319411812082573230082604105727498220904794031700685013928611902577967342231619584317088664993576691647013981483581619637868101293157869743019228228016613634751377156934598553053049508870591489399460904404302004778058929307711073961469312553304992869105245711107625021551485027275940803197424886407716374741969500921747984903800086667927729864532775425883667171566110071844084950341102280467238655774477999413779248386879803630860003980112666630561794815413847145781266543209600906325479357109064503851473220971908600168053573976882344603962411857388767968905673923854637784776384228385644483116188806066472330714563162379569130759846903659713559882235929200398771376236855844725374404437794619345795887829618398097412592333036150513582608367354017987160002699578627577441513975120669380271881830330575889361222050637236405653939273524968040909485900987945488005651203672674441068968418558136798322825590472336067433428714713592373617978151260962407086195166464437830297311139988720976389809034593692988113210913689971143186575020704946128063779334348350371646655474111439011666322034102743366846332526814132172539775633519969541167365101322688553725333338643977628184060813958514592194238497531791389676973973962278499244305220185417624562406551062735169443629288433531065150770939056139899171529357005965735644007693642460360269137630939512078566008403759784923989942494284141858226150809795328861708063670486468227830859619589469391669598795816823193248768096237076970166637570344791719126956839002626014463297287528491658548109157625877878311052399940232491366696526847312328201151585629248206513263092687728109364320742699418432386745566816222310199238763397046491992727164636489374960871162722268663732468708076971587327926259415708883555154849072457618069064888589229217260879169592870158622580376078688187508134943821617765402332083114865374584424260954967560763951084295112261794151237972215600785764651387313232515099626428980614365553677461479165934592048213303338167531087209003359543607992033743597885492885165507378355555440877776559409420464750968042912235374938058478793853785758465579455994173898032891903100160980761183615606531874798956589343518214908105792132329267223434952086750302479816838070397423864738178195604576077987388351958113813407889635947341279233031974670381725967680635076664629948627768836345178998705880889461710159060339817265873772784206652715854574065451594826782681331030112839308728704856272353715548669010734182631481579680366179277360092446858856859497558199400779760623237420912402228819761531350297210758430272673817967223354205854508601686748934261201056754450805268767300034309909336198070779250414969348039052463507005231685223287585694779881375491407853876999903961129404969402278072867796180147231459750912179745891015464904574375533430072378957096970516046106430805468197537355523387988122652196379375498446826076022586536841330313774033790556351193804327193142214279218741810169853928103342504811750757129990473930158212293515734476326596907243621087675400768919161539758539492140831282874911728003976282935846287091067915583647808013272374584113575487231985368196216158973967912993650656912789220932657909817165863617166616626921453991283969726752715182295111255402990547635546351210337032495016036083148698045211784126757660691285645085104115097529862859423304077981653636324290495547722977183808520683543238941825865903971057433210092248825661717448480953913514202599973591982771714050068661443552547650568470043019691115622738593217750241369137799135002628646855627423263153946912907571172579065639345159479292166899558165554885835047118359568089108898907182270888610971454134981254530559524090182619695482096742448263227116682637255791399452245363602773318976650771425691095189431732166332920587925683319150803197124552140430661159781937525712556529184291310457277149468635439242568160837050529461386705748639797401629148574467729589080986676712311870046217011331879084575874283001860866866768207036537576924224440206750838782200210555339554370270459160872961626818299846500714040382170836250263539289962843667731285125287908082044583988513467525390613357702176509743116974994896417727396061122188289452973666754795207602423994620286487043837054835641601114136210296505064994202072310906402520443255442857651229317712789497483625090755903690309688293444619937534919752134349062027982407020503598893701250337813343481004866155144645717157752982678542333190618983873728171683565845257185383450091442148153489407795689078650037237992723020530872041114910906833228091773932242333255383228259005735501506121477440775866083606632177885401859932865832569564450511404361857668008691734084277787696010600023478771421925400950457199600738104981698944938445303555090326784986031718480381672918705209407949917351208561322036027411331222193817171794565520205769958497137468296850532718529686203700681505542065378395888115423914443301270592603482839059528889915700810274733869189504722371334777269304097240358588537089620191744810530872585699411957339235114766854230770513182197335221352770877506106395273231739145379923636929085694141595410535627122368436259538982121022619489073085618677369451153300283747161300442291764464931893232202866083434760836333509897325078735338556147526630188651522716256968279973764765249017365366430028700555814789182722683012938570973518840106130929278259072854075424138910412792795431649652229173027086144292126127438873674215473703631093611867856942621923819058140240367859070735104000905146717285335927500852403036987235811107872351783070985229718758207118082132190255040136082060418680754751391583459623384833306794922323927713688760690016435639447206653871285033916031085812498559717769710803840970266000941623128255519974850897830975045415642940201000169942981875640282139509729311733697536315595464417848754095116444458553287591105509793771870378890005215829879447786678917039362455215790523373936940773102587161186553454486451029804686464499629656848181476993211218378079588730920596818475423561066847411388598772123637694303099810581107731630919521402481143328373180911142833764276801598792863991125930511765507695593617259360119066651573411161099010665865783139556761393071979971818597027427182234169360338939265836149262036606978210088210040220763409288762243199781696117723257890978897991705916027952643410561519484900347263690243233254349123056218691652624172565646918087079647231459993918193387709626195267678802351318423441555321106773053144024377594929853801724506480175439014681494893036142164629139856292250004290885711870234530476687333619445612513038780622290534267846024579125089500188867342469154100461156000930494571612687721037552692014108489546434914799839233278345263284408105121261655582234916486056188845429359805152478945991653676407999541220662460822537766201570241162077158898230880198447503316649336345231022317788796339449910823459762299290498102863346107051346187588294611045259562169586967779160742665034807410084675160982404980163655204451892944229429684136621203697968223560158795722848598512018710381529648698904085848697826821119772625122249100320244495166167599028136046459030227258702270704025695960857211667048337021120438043883992951166607628052934652421485360434164215270674606384789067069791258721423556454940816321261897348385023717881249837687994965805705917272564420099695497815193968011416574676335169745566628822501193616407990997808571455946932455967508096844777764046123451126671383474731262718440257110332420370580534297718179354668020626999728373628162327342389062708095432589742354199471068486684078358219485641242445823932363847571347711945663735468531651335951085477979427311716583916824019379679650706691456497473930951459426354554957519877186143821887509499702681726706830104375445708442999687946175189755982149338908208696852604708492416172728939183615162249821031214374233412888419403497342400772396582301365044923662203544406921526046759184096955620761637011510724290824972969427170741618252322490980908106095493145211442356699307969515220496477932863583419259600390089809723888246184652573068512963801705597201892503640969166263198959677099421969996022668982047634056460443835278054346459421202872711364476289423727518616728542868907418856655427663043650292311917997958733517770459091197163910906247598963500748179184992997915202721085729403613039527890331933105985247004911763559156628744852936058615360084617729090304701455834400147237302204920257030663756656567987840150617180705430360809612649685774596760593062201473479032487642595807082203584232404165274763646190617711610923246536509430629989675452136685463702894527480914431875759899464105379600610404759768346278818271376060873637380206668656397209299559687774975641515918721296868397033591977956490737213883118098250314935814424648304259478786767179875189661389429850670658467220631104793517137718372141708040480526338074468891476724342766346041179030610200441020804924062036264563973259159250559814392677973764858908018246586614791584806759827299022534301296107043284178149573524990677025592340833193993408675061005219612370302135146080320871027825005534836467515764328450478232449380917898196712312858250271242994614568210121572193663778182278893552466004114435862253861346248748668503098502939928398428213233929034066973527757117258514516535124621382146789175515735601487783421018195729266799306415573120053937267680350686655226820851457946143696809105881419774856091727812548587661075759011861817061742983471242662529571547604380257499048533838041084636682880634652827974030669661286621025042330767567230373890982619426365541966296012956996759112425828131335139426792897186903831862244497147406565985708052557343354676897420706146996915248232089219169714536168871583919448588987103500910485205426307741289443222955489385548963283142411867127655571755723835168501890564382048160482391166375596456978407046195415145672899441421375904442803230492849340440840426663421031685047886158801667814477284624562996499588028361923228386247630617395286378854445829182064894987397241981091909192028961051200893655458612034285619161992358850881233770165681001607180357598485056369800256255561026592251276497323601161068722585239359924401062597533870012998968356164936241099679659358916940335746940191226078426933561098429660604637828464671013104755789169794020103780753022933586928550119449915041615782381800368828045747056329666598821563667821755770603805617411732867127426825153736589949067540759680191418688349456914884241315942276792276483049306228388046380606677134815416319974844801741398433671261775390932863911561241111248353588260782670744688179281708156126557970697558789298906108629746871640570929407086999344526855247251581817362881730384141112135463178236810060974673194297835927851716218709072734075841545083178930086056471047272747152715521840455817262445162212806668707647315450863617657587597414082911092636395102046532912288967926730474038171520518245767816683828662721389316452011104470513372895768458805853861816590869338797585454450312237283618121085813019347911459323161905243462131007886617853230875846877458413598623110084861292716973914450697147762982245692001213287780129146166063722515717493093206940302537284185820308422003896850767547009172520684428067834384311856377346354965891660577996825724367551234726005099904705541835600653130801591378074459471362590822130803499366206850940120105788763707774058136318474979996551801840117414055556499274107536112244231326658960790633076987999069289625820024900078768463129178541311361322905626237540348153475423790136003278207152488327834041642423675610967603640273427370539661671102641464647987558826739046387900122955860340137713498099766293605650629019471692949381969953916405144216512726365500382139447965277499791932800364759435577118869398836669944311835793505737610760795879941575035545284779783811560282677809484236551077782486856633890029243942813112612027782463748219686727662465271744856026899856644227854692913407055446519036898056876898035166876910512295123325404540405788431131724965118413134282176617684642198188172255241717156112985731482894267795134449951326123097698691658864929586488723041198206114916228400094135213789213981608482929421523515032655251769990909291227997702061835496474363031547821396145200851890988889348269062350763495097228888361176277944395524542307411852095127132071533626966502217683095050519241409281507701315690869744908953686021605928697840351817046086122334460036855481939336281002206035602548410449156820831031560030961658019537339264393474035330667024349973202346638661300115594192493611868448466862984865139839860038278173134654831723378316926813005256955305369530203783607958434171693659178842620296174771769620209106829206125388552574099250613521424098453955713899547526964288530916724716602747078675415261219706692480310098508405082973719835179478339679114232925158816655948369416501689367134042627475066603050291682163684118709312571164982568077262009397960806495658070553900791761055964054984223018526049028422995690506339037912472237815857033678035202032493844927740051975590018045880142705129288751547290880024090424598813600983551087043749450602973696141396738921448885670236380525976889185755971300964579083289584519024429855066838141592913954039199536211169604797274640778538415327638158027234188394091420498269931243592839232719910147927407037864327791607945514232570379393863974750816078764553983218598253973315224714003780074555959244593288682038998223310333154271419917039261680888436954958820750025594313571675214319674854615771198485102968264255773297564448687541098226685201341151317639317515896152364258396616001046982749805383596780724431678766316585539594032424551985679421728787674974551917067007750234903103156120678721700082872546049791362611728328722008437717370266751861484226287468992345539622278201948343935045962960553888920684731930769966793144784075052652757147293305755590598285062895669544458162322636845395587271978050444006003195538558432402320800645653049035470693162323642674483087208316201125765215299333070641182827070885115948301149111087342438812102006394288145069549374605406575825423024722723145779294802960499959029926149162060177775914508307167145655195329854491119096618840941906160306209777150123768667017194693503736322358427941005385924463579454971871579328901308591995607428579736667736923994771150585897695832159522888272706557803431532310329886952193886138549745828739741662395082063009678195299319585091733073091492696279349704315720069739852216392650143749870290676546666842914686548066261556763972466855223532238871072604617742904221009567085557548023571061439874807304615516488493295304719947647691501633990109770574808616827502655877538635622356756169500286914666117880997685823019545268995169487891707773595132974726560365635502014235784350893162193490075306263415659521219303857799111625946124632295269388757766156399314416002074715550440857676089022296845563245754975697407174665752836682426049024249694848492129353383692700848407873972045895767512883053926757609812080625479367529989577281014666762846642676069272113297221601283238180767670160229351449118318097719384972896758884956162237981455329147069920151531984260930186342847153029234852198895149787588359468189307362631150598432360169138207223920502416504234541088120841331210542930821629000268627852813790347608159263259792933561013977685614564710181420285809369369768925129813721791059744523967344652216794032378251053422285078253102954943239756999422788276985726639577220126292866059899244420976741375712544674845008747919539240226612325602879473019017541670567756145199003229966196368440786944410522783312979184675320015865341486976739510043429212464522028012168195442680479708840700572483443697289901095652229280195151613427601033993350955882422290000000871011191009063122905618203289877329015166028806377036366856953748499446089710453093668142300957699757358437731414796902741684766831313956160056656617564294898733889328203103247639998640552550896248028667288733709032485609729104818490960188073354194677212683456014705667569843296767075338668236710738486979781173051169748800046970067816446713642520856970706335792581237561731519973947607478911883306897965180676326459993345166005020536459071706387428245040884932466368218002826133530005670156929468298329766044468350080065421945879462978233931197633937945516548434816858492725570800312976848529042697290769097217562665429533973665301599528348395692706199599262599643647401057475025036123882845940174368342513362149262472560742612402079473990823364869508159626817344312018866821553963017767697750203827511037625814181978565744615822689302593151896534900103231915795743799153510080578078264274894176553320092429291353249012356114681423532014401776469491052551823049365622699624875321988018786804900843323729645192808481935015051114799135205947676945553378093232952567995548858683981227458111361750533730546261532251987941695208167640271016062948953319918679234301851186606073164887209948134802593797961958558613501323169654444294775472201123815916563659039136078692152003591435713822971481843124999675676258243464995682754566467472231676956278285893792663495719191494722226516405677655283933917793087622623592018027796119677455586082001085385209738892028999090352973800279746283359148546750137195084261574401156990123266407758647539020493669447477621535534196502298482314471708457199424328945966051922819332762569746599387930362234781940751421568070856490332152412174667820813543752355536791536143017242919819428891684293347887128405026710033883240440622363219822624623305905592832730760697294430003966282291170527371295259901955267464721430242839736750247451661871643568407411092263643791374832241555758281754942797597473090401182535338158685308315250085043129289631503648649535933846424789307950586842836932287540735845828477539087603905916550008289963389281088774546593863922269122272809510988595780683851509013571376917141376011680248665990144576086941163980852795828009355800203914523869135552894821423644762465967069745957620544903541925614366573196577173169398145160349168628522490193055937003570444664494007793205045445627951852183577476763361452794011127327201865947468907594588791280039031672327777644835092757659981838194150685820869944745302278176476887583329764134564057082798048915671830123535169542757253720058644575488937738154044555339491675412618681634557065992968213283623223810704871557513945411101968328244474739514636192239429099784280772976268548865406740741255684082149072664460790565485693404130322498801140128879981547874658649878227864342425764264720716834949259341927635767553231384162852503081273390138475266156065020854256043723697065563260869546874293245875890957953931372568988946953303061240862938991499005093823178260311921925339146513190823637045678091357330282162359016883883730875185590137724219030447661926959746635259846517375008384382431749497936250359321402187083590697730148604865632618639318742685613756440337911680238909559831974440205004755639853297340213398274470904507207782948177365997547461741912650277856376873429817205857156808449933746508886684951885275325688273215426510815841845958355336136630654321766621691597822366488758209952925965010173878852577036556811392303148008496202124166008082117448739548415038045478883905089967458689868287933116860806647297119979726434134333806088895724263730011714740852334293235715778271431067399518626884909421235679706038279015281163706962018091158193825018453849570694268977043212709887622560088793195451996487123264472848207523259039444876988647148405600910622310522484699336892703813964568781513369878665934809102311229971635060656051717858107388100595233286143240890404778275098271211067143248261365681891459707773205068639116159690230911392442378322783251011888688319772686286152215128161226046132800601079009398519997430387626772745401831529120329416258319962074907845500038746537342986100064959295334036948118769278631871339391146167475562753294141454761554445872989613845886267499394021646362476819104276445111633909051121404475339518990962052957113882535267664770437233496217375936664937451932979589531357453329767651866305069761592549126883762868728411770117000106678954279937133633332420114921149119184747515659096557426371804767599214683147211721101742296440910285600536538182295880857791149028221330721587749450158522061022857921157749202694045559139865059088498872717334231455054887278295436611226839646966741685257100182674233804537657528826137693165916100108946670004650470526060102685567124517476766414353476963713867436870729300632591038377423938268014022649341076601892563529698350929171227736849048680302711564781191746655557503180952996675529728525722092868614582708320460111377823151866462679799574768599169158415717721089757172749492696384705830501725352806282367564178949974748973023303868768526105682570108213507590421638274673422156279428757117800632796308441868913659200527905972916174490528254101286198157716838050522479302023833856147894264417768914485267268002341644377579957166137619980624241236188341467308730761460614403622251375611553837110167222567896704372915215966319471375862752368352606340442417881143726113933158101738640829749118886891048117906545586202591891406428013132266706927808220018407851480662487754499553198156642487594874743913477324006603850055046866574061862939496188540025679201366531994204687774881111561437971971706394554059900767336375443287958773030851230971714331527899933509651456967308374336952816481270659320797677609976089891105954397307527493982083122991420585708277959687857828471901550059864174357008487836897843760640413298077394606309188556098669452306642083402404695699589129396927457162048413422342943172978525129702327872612710048253089812950659047999955747542958933899141341551338828325184765049893838259503238846014449145702895452777633851657006325830074002956604406429352969758302661553154845928837382902770384818378402664069943051155157014344488208480753122937993600813843060286874035063843533830289904861558628465429642142294148379137552811704654596743877917653374664609238928537794450492245927167330734071349553037363467810431978160731844269125371617367528186370715354086282808577418060443290281930957709515093411238445935874900917917947131669976586723658312887940364268933656408679546329489621031216728116501027298109699302300381699752743380982177801928888513711536273948624267174691649587985483008151908338269042736139918821267673710374396318459242080111573897102506923361908974075685204421941241004439373181666945925864262089024216164636498499620177326217368634029454139182168740741516397975298420826085687817949954763405905180658096703028402812428682075479014800817317321598441294572829555845325716037287710585235716439061473625781463726198347440110553292382204222173498121904066547716272178168309947973286151771058439447086909581147837012732559147279224496960097267826228177315231861896434646617072901736825559810242904615767674566215295842744533748128630339741525843272545417532063892032939218905447914199511850909464022713028275005562683876159135795008474348367458196683943328560709193325811051249298407324402424036458413063930277116399451075667131193121153243127711082313374168155012513109850741146639641690377974799637621731136898477689398948425041245852319069994067068456997902707190510206494660006622670170356171080036304141170565966311085463093083817793482179893316293717671555936361656578848372104391304172572678365333771493004420687115216489358353221912899971564611784992717044987486299516889923894190329665674669769396460433916754314579635593735079163852621196399752717511370533909565828638853583864755951183589223523718652758119285392354572736392369968979483051777352991606379959042244447816982069090099767936248765868564108517834107981230276966321178338652629380569447331784247468934079974536038027232085632580251691135948713231969191644322927852942462556763733507442066714582427596660428837836295490733636030430932166269107025565805448027954977623111836994316273051865291397230880150682139454103926899106325184461181033117259966159627031854766606011844962566025234691342239274650608825476696609423739540968471660435571460640727656076870901278511700715720635149774786365387723882155967719712066350962009243009799549758329213575961408848694320669418912266069791951585021785227609531653015308956408701283936342195163327618084708983965076116377216769970782467148786430333759185375219725291562123532927201154462953563161407429915010241460429117026784661491566601192107244025353389432911667296909593181767772495065095107652703048327777737958982424736250163500111121716738276769838007298955573394279585838873632754104893224451875434748035224620767233987079558210136441367820157585827381886422912394236986375974464869536487500452562184758242065967517758492541724481511825438394802257445778694199532639625852842881101989052664324627336557351930401792379771376626675391066868971932107957652416423032842310343096296854152282447934391148201367979061762670202751456314490269596748547162274288179695920865017186386553183463158235963637483088199202033915806117298457393934214596050004966582005077628636278001284918749950384500930348926280172394610621683280057516982812926266089880885469287209200730715394979042796553013878658452876840035530825289613311950152369357593595035547045902161114163057240425147800382444472379907874636668295909521657815662491929428616242519430675512494050437004617030964988407679211602177257971281847535815764243184364846112893602168275066245375651869588762268774800347339210009946534991139518793901787432148554575334262543105439530663482944174076456553576290725211808256982070224120186926857232322571533991607275280580081693712542125001863629696203686163149833025391778074563796757502384284256130912642149468907675515415363741607228014257916259607163675344154344100667124198820642396295389816874409661088694801976046157824484474676736459652422868854222946924733147227303385615730669532842881441222554494989432585310484456848673932972531650509194633461589317511885230407854701962628120722586328808244956076267381299740389483928458896935398438637781634544565226127249980582813138184685703530561800772767701592475897837073732186615994328994425344587952397729165327762689451012124483955039195803466283373757454996655257980768962246175790716959051421375403355656147234037897877507724322248826093285545895480491550423717011043240861005948258589888714880751575274975671821157182209482347592146259875643346614968755131154639381346138290702671940645494212158717190656534418916746569640190524728528798923518251439113232803485950874343752201513688973981438631773693255187631962189315559350513252684942086534666174363372588384925381497170188753681950063648391728992007328008948666369980418406384553372855734479420251753330970153348317395585137605416183310775927656834292498105245046345324036708920480617496813259857701771716982539572905066627396272207169820935021423395715177047778777441878322679747118972822540531454057873763141709924904332474521766369802317385433617189005094135144932303828818771848524395900095364926568557807239104390159804282236169196832026255279626218213567117854098949899358900008783080960832030505353606991454729277452806542311780605670590364136616765519089521865768138598376431430792297132871425554449795729321400517861998845638604770496981541404678507884819277209060414804706902387844684865939978137239287552130131608096419138855105908757859766270587735567097773056436276581077251171182344794965526588673424850969162544647810602855821685379686716829792623359171141686411561455610362533966065275800438658312548157664437606689555829360338551666880161709637259686948730981790622656316064963821059260641723722283295301714876860502494069666173037744839862668985022952087569867972311373644299818062145778037467828854104239212653373988199591902356165695116931336080691419059248233083855034607321281071292418033342992547631720982520163176017951885506399848098825469334704510249075122945929207007984779329179170162429661286854433359464544731224131074706549925255357563298773984203307959622440605606025552659844704678434097815014340187477234058362919282656355516931527875085828728113706826739384950056270681249489898244826882814397715183166042551672702709631956912874122105652760444808141196570942231094097870933723965205897119329566280281763397970062432237777517867274567868346827708643916095285450152510233615234034861234155952036461443009328739781245069388595761454921449595838184799311493974215823363625889574387231210999887323275371455017153970560124698433491547777713578833078351883617826265861278260389598429747244372266000259438907176638072935448587226002713411322071059746205206226432179880185271242286162599679979299059600422418113143494727986251225463824587949354169776164123623355084514449458615282505436487463070453443454864717551113226039831869821039192512370616217368860687660122539622099432324644606716475714822719229738293642323730162660426674741591241668718259555310543972536672768427914659005810796209374821233295302332386359415174443190956251588772846558202581067193004168322254850032297828632947552769454384219441922722818721884935700595054591721750367578636877631803080705659976910797165220249843056309164623876067161421090159739921860235525058167839930723343933128406004749804449060988294887468596951305257681222862256482366353441715431573778196872434879146725185035137685088334315637072223917551336149253287188578002229267555603295627030161806050444288576821592393752942141204306360960487669657876554439991279794284931259089680611930571150216027902011674036614560653059621879706016173338563295920298500594923214730348548891390818820769228705341534169904792731864581329586781544088930620543235094176340627593747918557876734004815840245399311419826353055269635187569724029389117008815383554179362154889736077642865464035217659661231949218094442487824073236354949039740738756766642560696843965327097187815861126849993120935041815036730990626493101811877152832395900095826257607847949266371415132355897636106346463733708033123217380372664674818288245382289682215791113809623410118103098788372727461080327760795780513330779271083427196004789318952882129075444822309471335814370200493356234420534938971496193295061012650671879223599732296468900538323589489512412134164692972346822453988219144665306239166750961952597558421155764169337820373174440211974812039294449410931132496038507895383458158777703430188624537144204308572367000981864703839386619704231211663868338627478921248616173163877237020494195048225959582735412587893558762638827320403044088890044640729016922891233777024119292910230587159280115924880819371835482129329901888249163877591304905058348877127573285754845115092425151438354921369910351137900744896474870588089513617066712027623461908151366898528006667069439189978321356444076591861947345290241599565232054274605246838235056903010163744376734356933827262900846806402717045835586239071465521567333693864462472638764715074802961377781612000967662819941290077721417968632030031218334769074754379206803307193261064621097019340475025711388090620009750997939131416899778886905644387937044492701369727689781020586692255385947581750698788116804711337306746645257346033011536823321322697148697498750162976299769154301430640238383079238073008780596044428334733702906337720780396922386139941488765864144764752778839957227304387338065041959119608415002911680771439625473363348626683091371321622895476429803191982605437281039558839567209727332135099610116728632414609506155881061240890883099790229066324425381105123612371948058700222482359709887817788326183136346859024342119929221141886410260323439676164308797159593464418114316406103699961130159458358142637511126025623401254095120415623778126558462996682821661556059622434584847856995999079537206451413313152363852727297601996785602448239826293850001847044589971068674105490719942963611651122342694522545113988460477010411227540708046425252210190523276804950063603315866665924078275424107283807546578378342362879389614971577814850465796709659095064602240889940212208186978419778768446924328617045691812066047636012739220766438958892509806121475787521981671325136240791351483192355528545876863194541972937865767125752098874194391855843237612220086858460395202560741354089532542833780607259064872366668405556200129809939389021726347654286349261530219713070973021989219170387411623665486373415909393644683533873599683681502144195125909192937362484337551045280346232685618490442937979597434423796384303406918328320332753025949015858632849929804220368948330771507415938555379712017225660403690319976013746235561474263350556770959273481518684415790058596020790595863418483224095784045842671954572956110998650882642409166713349454472271184851448958691459597949980174062163940259770554595653416501438734584813687300826085313284304449041499409228582198704159004617057913953011733953105804815652014483806675436425642439304981936692060677372792862780449677847112590906616297815298188330064514330025698337735419541608897069173685888997262638028750093633457456496901842451482610566029550179773216454349183190388092677104694217684045651588910169362933890901866908432923704268247205206271239796668353595846851873190294877304061211212779000472685878025956404798165179353063149547781187081940554476941829461035015345489259561289186416407742920174520765883423246220727446122241195199246508028236725537836304128769897001528384649662626602886073605510247518410463077394208927420528114212614095474929119300220842587026827989787403127956618629483856600384644629755574150600647527419283208217602001347421518140659629187654358868554902237920659103828626906006721214327197662533156739543874259401502691086521631531902058890994985863463909391464821458026739072212507911674778906633556145232277795963736079553221878247083674554179852597802909879384870323582356783648219486051175312384336926155967081411456866270525605583151385822186651462869321702530131942963647611693908808484096684603356050519533426868420899527491405825741568765992807197704714397921210695925311049388071349484989549954340665638347504860818992023196377349788384547977844602713428365188371311891137214921470412107138940697022193296513752286954821569367829739313976994410536561428652127124746497170987961856016453524309771039601974625480234814830075142344018312629913122964436986345344967787023269136368054903961577129333391187740144505707643360742066275264657226025998874732741787916159532374298755138824062686132080566465912908007592494401508564544790062702594189645479807018088197921960208019278715451867230989383502356324154637020897957654793343812142759258385877783569725620343909160743678383747515800930591941185144226203718255762952969680426564569176545513408466668734284190398756577344086805863989800173133441975553550589721738797411175477720169252363792076483376142062535931815273128880481435306098173594000283394651389288993293868270894010522527833818107510274498056801659173918041929939952874090851544882389456949109045488327440650913202850092985669478022718235658002259560791457598672714152892323092544855965845359570340870321329440900003351069455869679835546191677387918965982317519895713730259141202389170878290039426444663960519272081993435455943850886440580618547055094078176020632092789065257825534570955535695061164689670527028019135263035762074330242774810747305856911260836848483138914960935926777769993847854588954570574831967792082304290579110025586727083885565694673592017242938081243581334222713714639909366378136558103559914602430135123164542005156195284902587560966203057903080648048508978547877603061699564400064697546807481870777256230727566062868619350656868336721151220513695122710848356878739493482676211176224998135333482145835571925272586543393026175746113068104067873351694028883338136584916948469214242554069805645927276528526359507755919905347002239406103189990800945242206266761237155357818343815165099785130166210697641044224970486720614423861020939412329499963451125583131624079777728768947726471518834587832033864152307244778315650637014853235025914737235753675436038032919310288454988355924901769884550110502046572367004515546055902105501811102951569522909436937156500057096366518868222498224297871593270184519570458046262224287039854205266664873111446784387794042809566546169115925149783666902291575869958855439180505829164044748007669093328938530111864449403285892438763995362636038629270746041821014886569512608917900322995338346693661490758888506585644630832031459560753887860984374456956628872746504490569045565885614044787198618294140284774244294304063255507288747921714316899291529098319394592736264350106925990789909049728271915747814824394943038208408333764371504317308291731311430172632598436080607613080125049588209940704324387718565305049054786557522120160639205124838188619885502903947122247133032211760744304534202403596808597928505278003043521473852726405915820966678423335152196768874470356622826799764727745774849341384916842519585472588120339432322964321755874773527877989908333264356851878938207078316063753941598936476504710555598625757151999274601991548638836114306234924533251685356978726417831891701194908235901465627679786130721872437710289280860847156185855941340221875126998903200636845795680670015722828142440007614481096363969746639208145127187753614025230839264742437791841078969728092033127287865590827762843514970587796964937933402351362231645807967579169227280601322214432885947303502695774791647588347926711937846696882732884120690973979732131421073334295688635885245807689944722533110231096810567262104014735958204434779804304835142241236330668503021253375878286926872230332256330697178880711342560971844892930817153040446490038781297974113911117850731137316689876574328640751736698325535372904168743055025643319784807516976184626413445269893173695138129407028684853108225401321532314708138233217113320338751918166611995654871725486814037976007047316851252832411975654050127664134576462237884677952408605125645715589805264008693434843627263483319678676242050950111198142294246285224522633870599741250882896118353593003554143430852953405416739119637703109827501316723996560611987267206404785192380196357702465054928068249093985702525973989914769550264906040968497353578091659887049973520687299015773641803543609653044740381159928800781870424707918086260044291930712942861346599645086768028893515020540904970683176125845825582131444956908862078070029371189351809415810326819231221393336538034090620983040039037524640315199673213035156403497461917111613832892107297525190519525897151622843527443119153307070387354516778785761554955887036152785684301661233780589773503347080013605907569670125456839412488085139245148208590437848704777932432752774509826174160184767405310551596112298645840147319518868292325437216303027579360302620332798188961475341665470801681829045714583939922741963585615102626247591662140988613409772602318033033618449557189783691475360639281739959749167778025887042216170933331608993733344594258537568294408917155609878397955648518161011557380833860655603284051921236680288626431864909206690290385453370233287199195202295415445879093003743965971885761489118956471962159096839088582011788595970936254797579845323617746568515031202463345037483690108934057611313420160562175948459170427786206513162251183287166005566949181314897110895469445825853144899098999579626981148374000618090703897389551693175328349067119969260429332255569028077966225271756439882769567213962937188266018843376976816943875400103208978814988460591030591377720041351209289049581603203442267561337316557640298362403569428666430628529391234384830709342585465216805715125098318355611076351431987653034453106229137066953137008494938986174029661183075738573795435320928291210281126936135046959729298368631103831521489808708189818391741005110410340288209106768163696239568568716301478263498913509368007735871781774037104648854022960406102701633276313478355739079961185686745138533589006011073565900058804738699856064090499911139817251168117466624379575995656733679056880044686716721212165367358259062166314507530423137729970344230465935833298019103468609132773403244218073944536134869665062954505473137171045720326730496253254379130908240512243984674097443453903944628979770648322059253853438810949006429907033590809059429943954230214839945322850028921533864413442195746196876181784050524526534020551249342630980634082751653613765935837105537213341415280595616119778572244175779397332390346232426714796796584420157478628671286353125527435140491861490429801002396871832318963108453401468734903932488773709579443210281543170644654003818600319237287554293443373917495821831394685902668958094175407296944754108641611318351087162700789553063106912516282863830211568494036198090099305409861646862339474716711153820341815517145506288948455801022655570781946955997020016327024855228632107725934418267812828757383865594986628053927683511624928075165203949005255935696516098144970423134918791074674529657465579081597380198067799530443367454412527444784322754840311321961036043103099322858475446521792626023047390867218961489702544066980387425324537312009657791727414223550918821984252740667975525231554104297544194445725608764853653022123373621352668347078365912395806015061723961135018398034787426072718253200303709283489459625234451617243155455951674811634271078371939550210868321027219254542414813197229838601971351525252040698274567271770517274783526818657169273436407604822195255233763251200386308763641484829966916388753988558810946719226260917618642900451070287308243654130420259517382804288863748504927291679959236199151402577807156018867174578035278449446083598334708199482103373749448615619258414183806059938119892284545496837227936743050855255169660486980381583204125945086412953593239804119443159278885735642404686202840209082405952357415572565196207999387569395098746688381920473251925921676232838862441693781765532013201746556400958659898330390890400326328854977121719005030042063544025926368774292321237775556559780888689604805544634068040740998218225207810293821579974633792586826676096420554087018668735983640277883087455590827661011521885764099984077688237668847827279254368502794776041855044095278984296123551965869503107555966356164151591364571890875899888912328094614194117368502323582167727576132665978860901419454919684750786748625589079855417052631820651528603030712848067751108216983507266732474471222798554023680376913104364608908137965057567737466378666479084926571502999704403558941521989476507490338173549293402425172505641024751228418622232188300695976422194040387521254254887591336251508234319413075744214499539003953858766977173607469291578151637735290898340083484351801114341525134978636277066787357419327951741365208088640068940018699257463623124158417867789464572042929972038563388346460638743284023599328066971144776702304415189621725565521304002112417525872852847386373687960030150582713776939987257840181809806740374672026981746443897024023143478565720631714857910920753649883765479201851520645438267515706012538142248962202980472692178016626512603277888363638460030144072544601786965775780212175258011810156360767649622792415250150267806754382646669164121030700761704594085039013312590162668915998280925763570302588219957338417043758615097574238457260672611452890515813931990916034869452677853008261071491262933833539697655240409170719511449943283653473538788539926702711557441499118285837070912091990435666975693756987246136688520314787559201388854684827852138279908592461386657098128876337878858295980929442815071287617655637932242898138475957933699437958791351317714697514663999781009673455303611633829894381559760161643912062729632199633927991659410911723958709260438208946263936488590737066502011604038506452569833390375895733227466006315464006053190230736712544933239304387506550356632615508898832146108402580886229269119852033540815091588636213199789780459244618408032263903199635882982526833205311497898115274817521146703136364841265816327832706857958884546763193016713604560797730678601085331724050253346057016360551268698075530737081451252092780212615021536447317797628066863394641363349838766345627423358880830889021097505820321808031832549220584660229200267390923645374370210121990101934044201308516152377994123494551807771089321210089023664419067179266455385298595890845633375675761529086397190432436249045284423761877780251807778489123377921855190931952770694610235500316513977337840347014469927305135214597179093201673168719614768412763470559710292498539409309653585854080233716969615565972797351855764671136450946958222006502407028339435745381327824886066584665390045966335801429295338628789009946236433828609632627745080134363976885600260286470110429433536969012751345161655790255333507451671550440855222993484224296075772974460242251724657132482663804304534171468374738272685399914962950168316353285452155043788803021804581090628181901170226903531387015414081305336653918960894242853925771303124737571674708748120518671649184027788594050634054324277229875347813689273381467161994566849647934827512715839948487118060119930057237176340921153203536762738501767384438226143021553894665513386947952330593661619365284852659997113967388777422339179146853286492861652575466028453954738578344953371510048551656649393323774292514349416232841607720730772229819181840531000850961680711348214715712927516479262992863926760612462735609656040771062333233010864004511606780636656647104317704820130489091021436986470208295893258189677696537100813037628776836228531053609947561717314135447606924259337339706513171423301364875240539374500327561024299487129571545225752180883016332466977387418412899293502298388202634502118954939126653066410099997588768419044955734912808271017932219554879912054189761834614781163250094080839663154729907096343027083719981731502458177117672401016823850480846517981739698496057055106072785810617453021048309713568286099843484872427992745763465604400604173806258239132204676783043958139788565636272905728727478710483814580893876058889519824498070665456784013163173468604808240036546669624931861953670538545377466505808596500717864528532370276749788942450388080253911595177219180181503451787722440513883068491146483491710198359728866601220033002483659868250060907418619751113400576661308805392715968204520642201379257898684426846169432191245348376530892501374343879247719691852161787557682425092155520937442100470207350207460496913952319940643820059962993735710931954390083192907240016138432114676757091159439666127838593861106421695892729281144230639621840720062491054862545965148285093574707895821563053194625861393739619692148427154855300380843765660179891540066402266205359474196482726392285874430770069841287487775081128148173965396078152954560688864794234221166696868066270480451739447526034102725945786000506576619282209283500662571541254706423313050034280028054401627045031773430977734778186222781200531673492702889514716988399678508366811303617642503687223486823207905844283733848417555808198739586153909310606466637406298606467941542720908929229937409464573174770467073102536447397364147100227645339052946604383301065424082427978368833990285031796322746304405931615666653707039809877296629677975523051503408152332388332419421574478646035870114051322707249283557088021798618264927688368470257773178475753849854393584494384505276560051574129809644046765332426070308726652264459575299436523302554039465952127962590936295889714948328996225680362663877604141079627062005350626146980824525076584396313626650963226506400642282685907477027175236964075143751344796252778379782521049309615392914719191812385327463490887586066255764958334599697199841790354062171719577189323912863327132820723194379562150975429971624284981139579426495164699771931662906510450850375673004981741082131437285410924198486765826927206821976166221947436624621260658509702248604744880680674963828986650687509846918178399766047188584885661010071307980722988416051325494612257482905160955570955092168595582888152412931375631170224905456207400628697501437064173244804625086886621069605398781141207179447129158850948627420936097681795704819788554883176585108671673206830630119305689825295583531055914707791530946317554096945884739027770269937670962205294046568764433432968449974282889288731164136827283789321013911886891005163952469939035795218507719545593161000424842084385923511005047194840386093799266065087502362058321893649271497783469143157374914682122635512023580705066253739954853893137715677779997130547522384659895514050310566793012141642544398822129191799111161897258881011820222884206201827110309037467785507878418715262702202792937031668438820665698651791160635623131288131913280158804642360258649892441624276223359864599137839960789989661803217349836206139953224885431452506066694732491890522722677436075640431631598094248198701922001737053912626623070003440670690856977239019604597671627244519338759518787063280772844749545537349724489009323354906052458501234470755829003071635244500234933259643987207267683193707603455636926266654816715190961545218359938538477559960711394364496980958176787834662141921175326182372701712935763387904994406399097292076501867224842387808944340319907624932537469259960136442469043994969151014161917130321282083623247267641608252574080308982644977505916509161849809317245103630361268737458197551464337182098119250359183948301722079639948161104323199325204642472165663442182022469282642695911604086553564069633381282577044257823067576521154920114966981505887845208403478529464560803035854080281408924480793611020888872451618102752286940345558873188030059329624810477884715465789928217641266652441151665624420671122384585098432264358337880517272888551222085049541847974822734931485849491601292944910402281548230595647242406175070902878175316914362081358410173544403475753102659736150949200094209160159796608739144297790006287574496158613926671516444673188498915695899021640662889673666449643907479295656541665959334905860045269262546588703744457425421725504326490556320767668924889963241119635368055203444368458670068918007687878078631850280768304251455707007292741461435406169247267165608050627188552584499061181863435903341297550134030520059587724691469842779153188565931219057165323910767036664469818877368367658032377048896849568218686628558549371295156522915526817646725622746209505368891001107714872115021782370670882015506292395460364549175507725112836582315638781564971853812230601729971344181793233061272306580993548446432678212702058400198132740029500992373409933177786711465984638507543487746218457773370575290534287389831774844382808757390385320046714745459300683409512603472678932173113630566178747381642967254551307611848102090576332584016786882116920929078414620993499042761018357371045867114911577773372216570476966314936384610096194246554151676834651464779156498786310402715744813402267200314242652305413028154650395949467876006926570030642770036374300018773719280442523071574278101793236163990307734888739369202212084281728177527502166979513942073091874317417577537105005052631139791355913267288815069105750784592614558471133629265073952124558499763358765360037223612803792198260888696419761230968282082263512942501222841736257387783084150115792641006720412942798809927725102587817638636301516996714023437643259288690132087115315903420790647833157656875264116305623120942646818967945121166017127437721792821092627481506114134754095453881585929248846486205725699754897543818423552768055002332133349835356507084991419978975574044146101136319818002407726720939774986080968979117848548668012512836736214138272946941644859267308568979969680896385274314369461183115776549289386512406531306919824566596620784040259983039518661938567992681563756560330369550016653238508329725085630040123227233877190457484348428468370772884693642864221042159932313007833589412687688107077618646403594813655213265570455346767147009893963912121374508779937732810900047642615510400446075174251175443357973439924457231522492380006725135291829945743377038884066674843387670679804753310678746659568246699539015505543117912682053866106076599862449974745799777773676380649522599917869983265120499508785073425933447421395383408816792579435211355704807345456374025152003355719759877502031832806320820689386252157869283151152102550630488843251396564631355936985366491884174468522444232857682860385450688336497375285425811211275447253833784950682324637402182070480589752925486357205786144370630317764352178248307995177910502754214868146700252511099742957267393391964952097004296827053776705646973774189330116146456522149238455249796577291153979894859297412723799018362109718516664531886173245061776923628557508632571778401386168358546447937273858602895428686678198614353258386531736341990510764255820383616479806093684291695414659399917289223011673641704633490068300587383777254283751645483678888039805565369304700675528430638132235883616166422210908895089427688783688448891199918866421898383198700616381662281297445110091422432098761503718111565027652501966067266028172565639478183066747408937843654017170928692400326718637419691171094262158887999796851754047402852364862735249204219905696917731659089663853421410655567715826035690362301103860517052969882439703895984941009717460262091480576038049487189356098899564063621643805961097581111028142849718035134420941887373042581554942789517883809520397799666737878321931300041606237655489535078616970414824691367706830813680868477585258442310997734305374899318964559938454776641362735323850145958657873953130231398633357519185980701285555462898642285219366580104068774342991090211471030570033512358845470887489797554132251629765047234698168789034746664444047916936040085626031086429636254013663889073071495221528480727744228108741049614536344950371509145219061846246555603265367548808063508842695102800180250475510367509307252429227054694617512738795479033918316585377893564558649939811006665684007667607765496010065246798870401894318155896462413821613883305794592952690532780446042284509193930387801967840571596650715256624379561308376416052328000611622144122121172078283813900102528848365138360530255985533607637317607178956146894821606840450367570295444166755002490938814497033477458945896274473931578244811559946387810631705536452794123796863970579356188455705043810232593607768964877953893634546475513029365991587719726960299686938146049422406413176474375553835310986535898073196887500620718490732025603339992382945222425070567877458808832517167699702757690269669472260335714281646593921509890881805355266798663997019438455036705640746724620100195977941950130218807764003653608685064217986354871823742138938310076961225778531151593402395028056328271504972608662247780657177261491481044141889145100554038420716779202371928794808993845834122449875451173906237790637637469552663604795126290669120358752453652869342886853116791827219518911732016744267727945921518707564564672181401592096494401245091322802571804997417438697466539872222560132809786816931248610990791878241000653821396985050237682169078239070345229811098992611453806755706967029499715937087668736976591276268955266272190868624361289885573130989098581142270449330472354401105291775329340217447983291432803347439198768293021579937054638365499363637442192271698702326799344955591659322201729324061695053887557554870029053524557517744276751172654186044910826308155199595668183967226341031671866518375299301871722917067092099275964988275589189378983493149064500995341772135497187973792762180502885147680150164349137549516654653600292784959775933223105712146447782771985579384509712086747722913421683116957896034534100732957734779567098861694308554520372026580628530606491631656663788996024630660734376976779150871088496212377847985913425592794623650587504987574945068716164787163457855372897866465640462707435708892210776259953506445878659741310512337104774187811674512157831762960087400014595293455130257112930434989861783155921471434003358393735692442975466097328895162674062011535862990473008568144594351944859096300151565036771551627705040228869513322242988816797492225066640313354617813031401442112317325534486267535381974532315459184228322162967986326538040303729618099510063635189761749321454844477156913992223890627269844544206051596890610014821390071615913204052795854770815382691462813960461662285255049120571021032842305533375433753447132643089758452301112675527098054627485239278335360442941165351258574509792729977400048099334354214705486210267094450000586123198426214514698448031218698214012359809363945097849488800781831190791960427777903236440395628214524434634810202921041524716809037618901124395622304678222856611561028102720333550431434425572909279571087047384376216221453115125899513491078351825639319711870751210551871379657348466827043812554638051621659979247136302138767307249908440444060976552562522783273083714999377447437966290652519871405789132935238579288724443973641652315712054329619556591427969586493968411531242806238597196696359993098226595180662221595443069431906581278681664305645182818954100416535570864254774121966959411699149447759781226673125304336125212928515538188747473829568943865866214839231570777893922795774708794105339276748181627387777687895419141008232329949248342887114710917282478775866743452320474801674683590471976701607738784326090815975539084645859558889067003707798075072793317387549928639143185560994814185248588687860574966324771338468585372626253292061268210482044392002388223829744903737006659091634855619676636171966791599857622555252744557706962172631363311268895716038033553663099085779109412374996529393016954998400541948320315161432949353791458422101154212209773668137636362950448056418752692060681479671356400901511566577352459457900984987188706572621962956320380022593283617359007080792776579228460997177081775927227659006988939979205689793995571924669139633160814098533005950074402181178682688682845977218611949290427177944358004276807032343165527302938268478922832902153201663013929930391941517943772924273348935464404871374636754936583293226159224769531187676767547678118574897574306959617966454605355475395495258813810488750851421634190653835560126016944862317922852696273078856541857421603096938356648360028966570096546691040442392169632731620771364058840570288556838915437695866597448799843228500592602429262113671131425307137383301714708554197178271145821136553685624761337620264551173831059591953881100633008329651959014250656248962169950707386131648039586182555157126394019520660474722378642034910363617577412303112994479142248757104505000934854990787403121317124108683791594072180065772521657029113057774725396455007778844364026581272822184127527348522102945659467775291200854775125301689206565525805118197088272613544718068249208683659611989984063586607630213603534523214273412372751987571592043942562037645505755944459099934182209970821952382603682960964187992561893183410112940577475283244679153658818708255290435725622682823658746850437292635918653866878547851951506185969298783843267112002819116345303618034923694126197774034987483352560818658882934052783702216144694230429459479566709334212751197592200448121995134137805944795150570896437145602157699339646223033578785602933877430642709259729134876679344947450770410800026458081692116476458086559472523005924121054830136897792957285067229840215592337946313160140699280987346843897550137722812626297927670275752934548930537748290808374463089216309493994327787110034204697152102858918597590190639330048254999990787145901819488024048049020239825905575669472025248850949086375124759576420081413441251407869129367934244687901362276303838668081967022761260927003294950820334327512689757250307698846043285737170814210737580478206188552716571214282382132326471074522340024202721446202495215507620558826786834564318668649949564255205987007587648420831708595853184519636092631676119648794686020452697102474661670190730711687866515798204253026938127561465876243139448797375159177016201136722506038324409113795482290838729684813341903027262590124426740229784089048711632252182559763985158368227412033188420698176277738600638042391843989094665167637521420631441845353540967971543210240158985944448042232319545159277462441462723808388650314152708053829848335572756653524894821007307671397465247042037783530542629707157379345202057350676466056209967296489113868011576242164503074651652680788025223467268425710913206213417001346730052224133924436290482702847865179237623915579719239848774464264472473503860568506658294449466641785102938387824099915352609523556573878426482146183679877957431412765619036992329897165146928359144242410956581878333646386513353873920768738377715651176005434174728465973636045082799342756680249082020830700710020166639717604818456192875646750720590398033144421864549808447196729164573788039756061724690196550368337868512763343374526633646437796721146693995156153005389238987777512980768810875766180616287232595954981035981799041803062255789941569311330700145943783111275458003028526791488133243488448573865672654711579978373228816425298872816989793796051651924949311607647459179972493736873280233457417413838007405186832352282180312478700696399929952766007594067900167741648956760758692227828859497064326193643588131687645054626253300375194175872950271875973780310295168326449510110961562501881791237266215921865078676304005603340971931621225112074170411595384235438811126345299619196944801164834769496467951049803139494368021271644359462623300326953936615291957395494024383900131951229011295366578698354294122728890882869617803851023524658513939416800001618391889972093575997494820938760128257717989571084355455481937174558860455559402806367775294378198650201161960798550692102062621390815028591662413498806738538073648262405375057599949845443888509979558530184108526832063909275927264601047091198185969801199465481518214996356212932802819077797499896741337419364860230850850319435694149738696500111860006444848544282215453458002083064817363827354698642946795861086627286695743210860677075396550141395666135671262056392631036503455700693866644860355741924586018812778160085500656630080440975683314126486907844508775509418260772030461069926293904966753147135721777092949007593486894180101349462988558325665067905680577906350846414364909056843883685943336244209844902512237021215057138462417775182213850126064656935224408838022968441081493581394116101018581285223767336720814257595974589653912632202323771106641966151156579273858780798514956876812096730665660591495002526181617979997163601939786058834421813575262142168765523245652580854489089635632757808308313744582833715255433703630507303084898509798603475551274323015177830434905280957313462954872285211740221533229218527645473746076935476954421599802580781462555272464203777506394659911385245689407490394316364435272679562299313045946957594301907535095993364616704516836806908486777593947579231984377310227924217499102382046059002463387965015386066977245439809830832545662895282789977285393584526830663611045808459336714472771094470269670818087599308764357962774946935258608859095981968614581115733674676086979173895153756607329658310245708523833964456182197726760074546430644790076045678068095582430259188056462625652334941685891542160570253303322987723100133279644230966753587606648162038480723113008334457984104170130880556127101459765638960026713770163252398960011930088717085291565993699579559503736923708930269369666997818513368341640140621100884871787220329067894411100625498094322339254116397619898363885808320808190870239315454472565453249353844711209293417156241845652698574245126349113018598242089558010347307489410437499099771713223715453715076866006146529820299411966871853294307050336057926851510546295272956031886809870839977837135223458018063940008721762891694009056237842125275717511415503666495605943251223322686076160904783833563592107706904897405730754302511533328128103390584125840088363340915969853688655565343933676094224864474910393980266369544930264390405255288010297189091255433668209989994028017078809936527810828347533613295098372288331548115092567765979454270520387106477585747249448396317127449744520392816682560590895506207789997078110085928236704435314558131021930851494580692393237530584770659786164351806697842548134834652028019615268459210799716310777801831299209299912001285670445073646807420696629229203174890467230943936801078028765246741268120477148963019011480801685219047305207968891055094279528717657383991757617339667748801676545141284583682749751299298146970137243909728152347508958926052537721410575978499490904475245556732009766636221579091418207433075308836850276597259748976043721092956469674331918096749214025832040710222315830857563073973036932115875075763179888156407697652733830911318867749003140334799213767946248335355663545849622770258269520788078269089307963971470635271640052852198957869781073748520637848125748417671519940653786532621041300163705818889943823889272246435348857988939193097309289360683322944049276536365119858167094824021789376260173193181907988112929148623326776079718882509186363221778484329243407594378303539653167270140667502649570609693865016844675582900702146075592959078993198279020727213387112838560190796697813623012507033967752528437115688891282051582220576311659282865532873603666718607101808359613855333660051720858410742602928418336003866378540470779254506817662653019638701479967781627101127895145607052152818187801913075255376198805958231439200442263997310379122765668350498730991660963144329772300032231982258759608930924151262797199656241503126215533368243705952574633941927932649401182347400699665160816012310083361701149831944039377795012988855138659686119819881116477846486963664261847451637510378214943388027180416532094807423792766167680711271996966758879767820626190864834208226714949431740518662769358992395983174601388593445991297116220915620896035399111363312006544747594274933650750839690197184562908855843569763657239431396320752064964171032144340427527545754889036059158431959281143385230042708752814256253439086735077621349437426068892320060333549477098871871733728648630356955530466278161318817487122518207619529871322919047348809281553697676489127422419291937693614596742383401211145563555170299692204822290626154199890718396368241327720695084333905401731086598818946844857034687922577070188415387335833238933972892044423579657075828911388623870306615432644938353898928783512068539300674181861811823744408751232093678676523200010919451018367028563933798249221233388768463517164735428828619804923329612852141431241601439498278498436085177084315537656637732831745075065600139601422283624958834718509746491320293123037085446905414449085269949182949758958387656672481016173974652735062403390003464494840654382237552849973219442444515923118271463326584933452473987390948094415907771665630911301052411483034544893616186470301220361034317722704390840610183810027301092211437573746668822170948546930429453393599851982399807559079488876359483410932557119873110170350827220959764621865565010058926121570218356827371778885711159811419557449593099376376440958965891528207499576592324905918196422343614890122423435308088897221587490792575099022155675271703082226647263516547658563020508538842371532509349428843805512489677741491805168133308015727844518350365557336503759563284768293403297622021699545424601828079631498857682064919161201688251301258943437494457195572410886808518922115380974741687927244644599278025594789772511149081215287924606178962940177251778174291580939001900526096436243252414286672726269304967847761742468646676227013878459308253147228368375524109361024321014865434308146310648990559342768415341089569460973716855255219114766203106523245445041474728093845501132753084641282670347569986072946316406942048812171460751891840677789056869804698256290706719507723204143844917726003147314003204122547080305484763335385503660618195050557991792316776384807142499050655646347173189180378043340022585957561847159063753053088983045821352044275683420622715527098159597501319351617103902071486601478829690884569011282102825375713964907450950988066154226105568819038221411018597165660541897216192532114623303304579418681817960110869886205436816014671416025510242913778306070534732480028044808776218649590363400749161257691568424338788834443926635809389066151842731855520759603315919433794669919985031049614893234229052984950797645879725639860394498897380688781814842333950133224182375066922959574378258018800496457393493987452244030933540601493409033290446823242879580318989971276821784987977078807820450755642490471626906016691493478453085785850973351347258174814254147826525086493372391338807779986517154604644538223697002011610884475963912764265142722669210106752664721582394038447632085859479564139093966584521732906576591104529904625910802361297807101304929265600450884632655045853140223100421400143574534884214995146774258344100762486419777287729858757702285293499480612388872489851677946894511542281679286281322967338999264675076482811024072234099768330443683821854309599550951375574523012621867199107072816165959875605411244334535775863540743638476398739418516677170096617302423191179913822348693796519430169152376101929894251354020143176705365130341998732927649536457585822050605963571397085301280326039696205496423413951316991376229993629636058889061321675479520209608390738667999024242014823611651035889870491100703507460399400349520890951222114925069484921741287096717995126587318690706896304757528159599810808797361845257499990594758332172028022029058883745013811149997096232336234045673155255811796247127731901460992916829661279685486939586967190673343549165877960759334390512630134989135051447137919770733983699626737493510498637808634650281041264023082286523096744217712487378703064258680120830815341631221155611252486888702023031894106208620615217683358017028548788209685136014849505327869725064695209044386404394455145386594906192300719334514195799480486592655683306060176958489872736096660056804575291069978393292174962142378866035442386594109403814039484206302244634193245233575274050710436199979346942346487604826483597751686990760585849587073187224419757996848256307236762107038516649056278204464506797938047018452950280598243468266712875226656005374016304343320831915081535031266280952966297729721187769764996446602273619622314606432413976369730930901830831865261797973656073800631406258949548414948028971989215612860892308171821594128589698445011186506733657945359556005579454864246101724752078791827594496350711292798051798513319968212772689277003399058996072194973045093562911823422792411288229351015539358352065982792553605582754210184270339323224208853372102452541915441384083976232600697967564232431608968297354309098585979964959579148056478538987468408837565005239210279858552033305079586632599055005676660369339993116214684121993666130441556029396214874647111755045066096700084435482250491282929140381536527918657646668800865100946996659976922405448536745001374598915246498399397841530434156697746709605258632405690818645128495584068912252145278259875500894366191172069979616609954513058306852543755534420152215482561849988263158567950435275115799365099430694829503662471896558198044823634238823121987174473081248413234791211960933820632300776560123213992730814616333684685559170002720142918154138242745633530786194959271011992082228345275955328271112579494379615791854413873389936178451490788232744880727264427344425226538317902107953952221558594143463308267687265179552330648627646031536742724525660435744697397682141353936920382430866335093166241373238842556898167430350580976002593606368983456263149408371286987225254218542934085796005506462265642089279201151821110244179050032701219039275423575280506084386653933878799901969870427286902690262113923352354547870781371684263031155113503068818310291604883285480688820241089509484600405121738292613160396162531716536338010960101833382570728015224326800332656200309260173988148386849903774083459595254319399090802092573777503786598411739048715516505131581058385813152750045508253944936121351382688805321913557485926730333478158169119580286959768600268683295999206249561445482363993241251444952001584933203414990075232316662782975180905109620697172210867755619423874304478656592793142459452607407124134733196151403826660287048377361987094245219911939710725284320233321456985089506236972396487485437901343951147783992890698666005490720963748362502168899031151950923750131983757476047215651904921969776573819555553678245902262674003535739992619214026412617268430965724698240712255624296876305200946379252349913204075182489703981585898333665068348725836007571018134760873789071970376417901835785566304803863858846402978602686541390471107460129919681222687553861317386055364764798140286255926683662434496088122869278940963437976160747077575692552862080573839872127560475831661394737905662571925617517590149858546221845234174381489574861243084542251226415382806183943869777587794113680827130096564881431407979916868072723441159788984498708454451647838169536524127517616768158895154011209447715494075854169697886617292242175422948333540670505717064021399585384207358689713329817410972236500579977012112372351812281998137347111942243810535609460806484861580427578939170820496876983857645047192151428160556943405841628787482240259955568102038430160546243052842965688012561677011460071274377987282119456442606437450255428228262690337845499378971423737631462064920931631927999678460168186051837551778459904207487737130259356204432031575856594183496576293857764733795722909805304327913959735875794906990524749043125840965606841493606623790531029827738506535939163590513293098679752033645804461277652169304334298295936842973881062933625566891186551768345263814222781390584172739252061061373380420669004709569257138402145362944073083236157119058075577746882902004933728786160104984460199051426503816031759450072503321867493258685020324434064610039262716848847862177748278364883454780097914425269335027176807025516309953015382493938390886605903500526122855112948068929397484249942276217749315855087170622234437833142367123491568752287977765522055121383813638215156098550038030720851100579629930362139704694622409733874022170926474990611423575573742736632433739889049582941905552512723960750676886800645072675052195603961521560760639230232437089677702262691512484762397750775874831216807472678967281701301763264865189239483856165142238183753935453794234059547927484743371354395645437978114474635385219900289349189879224043957984539593154411914362160740127029233673611547970231516675741129500066833809763282035636277571025986173124327991520352097941592342989199935891564899377590164395692169628147374164749418311510471865306711464190334419630533117965361117447701111288148945057381605323129318037287204700635147732696806821723659912934265810689165444393511723218076585293009857759105566085587355234846540534284172565421987822770911515563586554462789365985573374216815405241035364612687588020778893833428693403717514370792516464860873388894875833629959387687353132989725409870706174893051555455708491666165188118335565336399381839515465269109374047680799668163716654252766102307776995137541581987531916440507960395239175014772408067379518264038066580578420108198452283031859393634838029375107963577463409058556739399446154450999127378972703441860014576342866143557211750656438783121706246982888433876042507327257410760531794319453999318586671222184399763192710209130995064524470053623056410379672032730104599512070151148901001533331441427347134611911183133782996762729784974982552666633275032431280638786666464215704913163377389633605555972841207643935331325290799115242352114512558242466951737907789538547629115937987381885183252740171081030747318676429564319913568850365066813603891398708174129798909083964609132482597636847015704750649131659752790785491227005175066292573113459453423521200832691331415020083196075985952361550247114523944891004720384920813994689272285019517138503182162161120001011728337066943256450509510282318255886192343406652419078079230134410431194806924352822620241397784446713292008551948808094453080473285352180369366664438376323957541365615725033828333580959320725245244914865406316633535883463294417933055409195978937608102220890961625702688484756999565971690493555080000122559931437232255135908824592050978139765705917705189131315428377641255456461741277700515040183805930260359547438136264227673786038547776970160849453931192438098531267071943156558763800302844333186608749361133808005539413474076464328163109876816749394695096420599973306081397081634698365323480897757900318354909794320763979149323373706498829807826551645265278671885257559185618373984825107346579255750222324274851774260079230411198165108813495987563194211039840802069375039965707973048627699195293287904192193920524953286018504198586262561907874637384208616002858675399502977403157696703154970423574103897563463905186667924584552702733688374759865298568009371526353488619657468791440793240857179175786728877336551165847457596845017981102904851053011082423969292419168533428001949979199879726646479297131645423788445072519583269265500127982856761504710313520923320209099780572028952311172478400367568827267974428277989420113199317654707533524831716091225427297432831856218633061531031927153174275753103842818670860989293880358150320337274790143160622688810216663226350567471965454331511486021888875902203884288734660097924351933172874592442652729788922898479960122976141890238329516572164434649790340418335506803463849171183699968051905751566073216147867706694731926562688829776535768664816389109746127010737465733592052421944899682446727701301976643432799964537070410663146979568373909765042945099905664739167987125844094630883412928320773433171035647832312642978584529508066541733964714110871416175092803406098606569829833066770926860006053601462507510983187346636745317356400641832834987256250407197326902261583629286263945106491311760203641572327487028025170263601484083363273507254384632971059559253754603808905241931184228630217220945728008655326594364347792972225995872109336726437781540185205212745951856673682803943327917525038402932735605607660210150968540668008949744226408306459384578235588871578568884146557961346653894075436947092355741884736155482674289876451442430241812502491798347840502737656431251605939855204063000364105159564941145405166830948881746400869087668039945726034075342533264585735613636213873666469418860332528459613127025370028425691401489588658741297907701342500314146853665449823806947988037619390636200073866513054478180548418115505867802363150535941064445077598288883004037787482074835723596290396404311051250307304752309211636683050252490386711552871670730480502841026356456848546722852933006177194936813789748304669411918236489436712143680429086891690403134310811524554413614643128871658356506155304454484612836937272385227838556022183368165971181055006224952906488099197153191227270694100223594963566122429385786036169547367552188684989111660594994168500586044377052102280728740076220124808107977704891360934408958700951229457731881341590728767105287262555861884371589529649913228856313694107875681725257270984083530157155047373414762973506717625380771262092375408633993412482046553592589532943990429715567265970485063338531890411959218534413950225972852667131216951602297521361219405871235867882214545709482423914111039537516923871254562006863006517866555732062909360035087533633508943849309121365015897777445639183851154848530089164552083937892997543667554753776104188287419873747332994824782723097054996459892877662663467069624037344221020280229456503686184071861154326701203707923979212079500180709954034380900284241713387137717709023846750280915333065004846444552274314555484079584479955589758081097183498904540285212371626646146641908766410444952482032840590292309176475963238545669384591806554448539677973000598129283297138540731278711976578527759773641635827668230102397566009283384459361069547969184137104555690246604847969158394702115626133387396502742187392022311398683575963023387204510339520905025625840225884164946515085210292471859415022436188037828450160574488927037658492161892381966838369661951812064177976644709751263930672902286594450042633826189273424209694044208832938502666265962170561188120074208470137512143857764850671138433848788381734310010179843090267355623359323034014170967384648865316101371798653121004540274466390554623757108610690689814461220378247491345339325131575786880717016582893956969284401751309056608179055940159001819874980766319632238657427554849688086769393748126740028042717187906492684165394892899959375869512489509692798938869093968368921733483328911926943084923901441667437448049341362843339585112588230028630425090196960568148104535414162791216231616456727427835110478409198436961212980005516125580429491541810590250252931572061802000256243868316490629309721335410563002739697261512046944061970226766841248359715825150572971133301013956151207427874187856444002966441994658463405429398418486057463714393614652147645827153458080362288202411253002512598764930085004490374810279509548483071608827550938225756515301098334129813960508253392548158812518502587538199414666297294810845489606877325690320279875519316258402819688143539145240674908966649639590662964982604423421212391210475218799509508443551785020056608130796737921298870743560540293282446110446574386069887267348622288161924315463056399904065811898872063674040785502671165852980643833416754359482333885241950349486301610536555985535299165770609180885735440681325807488313382927707809559897327279454384458129937169363779211894309173566514458181623891879726152577077062347982982698511545098520500621139219310869509575185062160118865159226933449848713115876134114464174197338808851702397396021889075185592336208050057002546557780736714905272487646722093535415582852205162728184837509906874326877435136238058230837435018950354117147452333165813737166907680353650801165051368452703159762324654617341763167652032028548928128081643870495857676246659055198097434272586720659251805712290593065053763040779364395818709134930397237579274979257471006193943838460838522248842911035711295259656334060633471879621141694875259855362583931028566334839818420972679455784382333214601239304038617103556977021093259864608889619688076359656259026196304414466374674362951378961160195470656207249176743009707077594081516970543200756366048036059882289229419044049345412689900486457044604062205917062787951671368602589442546147292730015420264998840315030862565892247711833850414656906683551756704460040138361354404487462312891645060885470662763001758204417484433828130183281223648983923835006570101687247514231595619054518632715412444125209146676949861587384024014522217414176469952320076991703303737173475065810584829346288583653864625397484703223618653786142721220957164319069590950133536523949647462340340419570701578007953435028906528378222575834983518013411910635455256743057955525149846726950405162028332035705866794193554356189673548262351506333261303559286340768113385259235614058171447508460730438169629708206581318967796153231130847059220565097565403177725337047549500394926113619104243311868600911499105739622301767359543247692749137275038519800328698222309868032114902832204401696183660143367783395947230110861932785243113641378558180473139366335175059429360937690058931873968674287888376761329594078782172712877399974882616157009694220553373683050309945791309115403176363258644684532670306813653724766382868650699741365398313436347702080856036976111527823237775836126187774901818368394055083740587898551314283834749310912481148012842162926782027168733182191888132555240373903770234233774823485102977811045565752499247612228941583860587286105356119450264528689439869500299805485558208069722781232852889184157589921893320764501491696780774038399755456728156637366514101398551005743102822158363091512777156642972403766320705085645519051363840350080123088157588024655711220182341639195155802965904585015213755090053360378373548089106464195936754048664704845967460445718405498787639027263437497686539627583055221872589268502649825721649059279311317461152103652126990772368165457321409287834358387031175747924691807606506422060784469825361841577911604234007158685210532107756836659270501021898750225363820118256378572245128714936161601925607155956677260340459934407986376958155328521243481821154396713664305794895104423534923173230410714144483475674662869024542399636722559583301609143862826168011986419742204076867190813542604646651046161627681918856623401308004037028355208677959031544309696749779974320770658518368926607491171878301157434028340789556357714513626734920321467337688065438619710511789404127143965634952539765609295190742713428228337728036617863713452279863372458212024096368748246240661288067247925275860607400592626996259117992327216667231898526410700881634085169017056194807855111137300101594297838921986886474061762505576250670672664817287782682858326948323381041068059784335138917426570153714886214813041388850520871158497120675439491548084589910059196892927656256314419044265546183100193750096231196476727919306546826727535282527128518871420495486013597521261458870888027887243392480228256388388862862122968925522638910635259066667815630798428744851983685620398903015650670848333189225116806899623423856018112468678140934719916705539444139293332041382009123530350886322656887540188073986589931630483790575497194618914791877938870442144855076185042867518373550373728331403495749935676773948483343251907993028801041793371858116440600650429644918871238878088568329074550636026161719489745535129663007226203376192667187452622241835640106117667227543047067645497275653188154012597723257737156518148369526404671267130101261520994700205857171870574182569150508217637163430717858186801657869544822205616489886886388962462004556011683082911843525693256864276550758192352465833825711157143897686613288240862607499078621980605919898787273507113661421790854829142184146061366093436456853550940876411129869307173966406082298767274828852668496254122601284426052127311976992816217747288054562950320218369698170192210240973788933911288006373070349636270654924949060020660833538645323056195637416089404879223222337485455128208477283047367187812139565548477868200654415652364853187350518114447284318876765160256412419933257687826903681446099523191067172789668831574969331427312356367179078065291005860691718762062947004188735363767205706645706363258488913880989589696730570636364940776937684902994139789641077228299168100720121663882147383330169229162244601983302662885360841116024467608012632393352193063353412089953927123211505922709405351314594132828649582960682557237036235820712457243463886788373595956053273461910076352257924325519796144314147521217031486141028138467468825522346766395308993854270131183004058414522457870442230412132212999504291645599061359970695405660918465205782551920425246685925601131803008013082979377103630582889834966189362292942657664198261186057899477449286415088403028047822434796594307450929664330011153560150828932606745266141948144654193938359772177594357256122356858477120307533491906408204820994434835973376043930677358222856825975503950310977953613258147301298771213414590328323371466928378729952986311438280111512390231602409477186725237995685881810015902923117963725500185020363940866428012327379886606466920009506615105207273644018039991501712773588341022785837671881081914200725899953112954269204021780031358837466888156578271755497000190092649877346508360043086001750427186016198469687029133391746939369811106816831446391128240747975219196555035900949337533058466320498115091419613839197427868861388739653739195393674575118233025844933828524610817571261480151436107556041581002179521564476348089038051032560589175629527058743787047879293349464244939005178558917871716824159253834970895893582100887167774448223694612213910722373933159420263670355939506949312653341733506377648318643117903082055984306190018949804731500277607357009461189837393008473981488691724749482678741550515541455913327693685051470099648373656242202562643164078002915101486952415362302755676957213985572668553694047915788299816238990306842471543938385853610404611802627474036464654840826996715470685793356321756755173293332433822725550448185527537942896242844919507115510924491698041901378891484827971534306771906223902998624580089740093711727245495084178477258376702783182716359636470727440464393750799819843737501510376736554072596479625945842521012216316782999707021215025536284692655007035219186564493847972517970729144786210519166665985632406550852616559292863022084717539567767686000178470680826584412771598210774383490795770842173981267107625809335237764330340166831873042842821674627873728359094356673775376627686419336936296062169442152339779209858900272674252540594797367218940201628563564336200593567815505589012161613510349700919494719061222592094753777978542921793056162928242456346051766042859883695442931131081757699230932886482774594044778514655544529408994230815210869633025185884254560089793865094435310957035299933947082306488561034465343540824951613657146799839700506784271565118612369800442926661078207897565819094367516523081050522195200147221339520565919944759716862695884802025844052475782980189593589070843991894625417339246462805522582020116524693691046413472351665921819636244450976058112004190489048231569430335365756738171853181580234636202586901478260372991352444224795942889699405577691889979975622426640345539826098003596276760480322606426147464419831504493849925441489418779494991053619897554531312835745883910645227321178272524596619699481650820808512160202149734006029386904585395852110215238391589565818258290001078387231826512908933903808441447476501983008186498864961735310425543501891437803307681531471366028434135719719039687310300742863110035506496348269313949958324012456460622737077161538680728671952239707811686076887131742921627766754244562623227449040128308070198087234930298389117482551149581365351389018236728717989231895084500089588539659459534462187301991987746780793808934517167351853226465058969785064972143218259384642553608220358104624368322785145943324970297918328492107161754085530458377679910481495513008224712811410746566590991526147206944730058227274768729230638176700026554153353464379596482772912232624094760443962938731134182930202965013515437971538361263571508181249922974546753586122582935942579161807698046526793428186590169607162147343231229456933907821897995723516045859350200971992430073768983513443667326666286584446414935717510642884080920182413205986014654402759770092581761461228967707023682660124875646454420916205340567403593989033892965325245114547296986900979105463422869963890586346279165946540627702267756087712071942958584539378702615281773495397543382002031247463504609602698628205829136184250456599397632275427896693159317464333913057015619000349081707014798325255832442146206994946628056910664938500740338118856121342783402883000021450319111784704170419956708524491592590230652728584738589374544256421059544314771069527098882684719341591114643552895319838299853036780084678097380235225961489609922919583014204128869078867065700094224704148908805884911414536739980723649905669221446633610077619623352972283073432653101773458927423276075285716733921151960719819789234140939513013179286816561193751189475463138385195797514838682489841032589455047391873473056700375470214234873435076451738299401149272389340884711582507940637966607791425602179029426138105042509920561153524707630824126101591684780155630592927166470745494597869344972554458966274306819435733367710837083883398405649939209109805441998485239402797814066343956148135025399797921828049959570366477664613578536740857698023409960746954725719345202317943104012581965648902002087205906665600430032203055502182225252545247857533570757887216066974633173659529750589910302135075067461941087123360480198156523829305833318946714650646599452049334604985932105189189164717443584967458989081051552458459115797178725811421415934261728577528730933806192954310494328069343713845460941177885664780477122051092214838272606357574964859320270950741025229839750587135782391127607754432785069010075361287283810939107954957327847853304338667644016128272637452452415276312366867027496134360627934823111619503603592054997651388251765681683408613286043257097299147631632468460188382598867084188690229164577813617564376978621342379970393129678875379013426346178525538348015878603705946920257211252473450993014314842846113773179296279078340838024616171091631020331649238015148005344042964999967564543017615271167919165571303812169439319487667502293413105881645256395498827777798580854842109283917446885787250950652721295663904057183872705205728954554725159273004273839121377584307750378517147612492385573997795164758774199696896235054403625290887583512401882520032713343236848967169786714131009678194382535821940829019010502986845022148555139783699968991751556188708796863528321981034201879627418492081605716517075084784601600423711458667084223603450651267872296176908015862041843581854573289383316031252706519290850311860401917335482316625476325507487416349878008739999126222873011603136203351099991010348459860395032099876712019094305608472194051874086767536357736288618257268794235989353016753853397451821123638572226689874605870756925692522364713673983533583103507482736644278934188337266045840214484930561188437505145787214483301261535570167179213593809992765725814879892180439343796745773221107704105079716841310939102745868255299708500520287316405917499630731332164330988542710998084086918566970693436665910879504821889127332453493292391837651926486864625001699596821597719366905770528333380351323993752952141025504250041193216033845310956218508696071974334683842966110635194821056048017420775513105177027034030439661046270095363421224565257502883965474696131382034394006972366964876598320285263213825099681522525328715775308326785015982829030706158562068439841411799234895015596465526904435870773162832965915266911727395419367119334428087934032252581539422829741355968450272410840005194381792246628386652331104915685861818311210221767056591922792936320503096992830227306436887992753635798668577286152769091820646384381558578485297585216043777271110329372899054479741020520499076576090524981056247518978420954299212076684415167663194312732057632100820670169954516196418814220144666931036390003454486157470170828310554027443564926550670586849964618340246391296923241082904982866694806256390708981260283617761988346932827868514580479628296585430335665619706429648307896149232343989990827610171449360017216425753214719138640409337045956129872885755611343967602920695201873923241196084525664732686665042423275079249352739894436017437652563920160645624351105932326274638919706802573385610420538734328650433452563196564068553905766312767413686525530317738832182759767266638814122782597918504923593424612095650744077735028755620453354752908837192807609791040758438334402590564276821466840199125614168636153716485620028202239924772457091803295380311336065704834346081202634434379011288285291001714349631212755860905587006559505510987492725846579176173368795916312715054215715585114798029284209845625429234105782860372073038230299615573432982683836491549166973985076902372665033453905103489169229945944344952894018186801926183589614213720426278192348046583893387767533697819567767054754177963910428016450511848055801237375411111148408133895028316247371367466689735966163304151669622899124291263971535904836250252113200823402439159818143822436066862659772041577198294665917442094823776926092348752855323389971530446364770649018318585475241740564033675600570768089645471322426159462348457522576893678381533536767383903838969844022653679273966051081116285679629400594745283705171158160681752043973080618945113663385769649674940766763582969706088860602579861358976071983434953153139387852298600899137141130564773197091920232385903642878189174753794626002912448731127427625735286815482310423970983790181923357750468961957818743706146653772987886955461426196561622116893813326073851688401864117951876432160207033795248064883221240584519380966684127052697379293502915194291477336862202645093764721969807012268094317616617513133405536445315251257440696018167002609844499824559754266790251865766532624285751402242016253568263880015230740395318208412618197689352212963020415002434061243028094516732142088802309406013745233145416446849975707120917223678670577646391643828133097743218448562086917340984336293090152333482690682926892603593226737064163668703715101934282986202126366161968485157401688870141060126207310497978671046518082624898642183968020371474451868409270413556977811556687810151159602168289619804211480672329354196977359459362735327207756923573682568136711695586437813072795177215638475696903418189163027802886539085122847096017413171619923456110850859353012025184653666517127528004692178061898324713134474589677374070370484855132665872014114835897266650034246394823128530290181509140605511297617383883154893851303243001582060383590949711147479866547770208580269453355176366884324677249021557808244247244632691694166537844513389743633207864559745436494579497441946201189778359841673058956029863430708075073126208523484840730639987201007827392980711968842064041627207701493699833503127887680190887976566441976558015734253070471813768170586927901339107789559529559203495454868947408216708839604669346916117286263314573210107669083044448763277506504720991480885786813227264893441158859607341780818578230780854777962648365111383300269821250388181234679758503675377521693145198000815381753638686336574999912620664813798194873931464296451427824396292763564910185151557257197296867541280083363902661609945746431123980388042580233838263722699979441400304028200866497324987636156884415420790259098244823242049526835163681399772394651081284181988207858653106842839838943317838191915294233798465193508185206118064921370495073675617732701916839390778708568482875464846332921724864523871706565066631236078973093565148437163922985610447462684757140963044315903701025856595357409015759795176067128293246775736773868847293756417593840114514393366185072455493237083286652087572168701411896363634430318438031592580805966976679158218853363468699907184154696792376814406308111537527698663280255957240557347470648971721415357247541603578947845422348683306708817871660581830699906834345153702966963103563276376405486295616230184627430766595796509268982889995829059632889800895212452165533390858160409583197066968200836616147493214201410901015974568581854375322389034515178753603177449468699316971308075799162300797357841672849186312114017727492176388838621592230285078510916531741263729768854585857524335516119486976743755291278620633590171224886608960155798028818532102755790282906291970666615740822850342574672898570237589115817651378793759184914464166946809276320685811993895633150686454236161472545686081652931837260935874474787400058863464454157102480896132485588666644684296374673663376905326834763759076450399791056336393116966849841385875198886258544382668838110499285859231818143877478729554825980536213242795701564530301050062981129803535199854158694497661861298837615756843977267592226074213339380735857367535437518898201672853473651364295553486165023502025395560494052900830990851339164372732215591099690009779325175353782231406564808885722421595271784557482301046184179608656482530505378285757422546568464710558416974994323560825279595822971647430136246093655714779152434691771618513164894870436708254305928143133185679863386724848906537613341271565008666030634457305553582208097310545294405568386368061061758713492046833773503825319962820676207203978034071309715576588764558409513445429658527885934994372976341708736838437730883037611355230083586629869721994059001195914390949064276517528904375067871526270991727278205023166529253444419247526917549947571357593886763624958377498580090062799440328554196551857756091384090187940275494647431347975757703265876323137807111313846998659958355178169907990287586470322200209110767952614968479645620087579593111696496242881088231845439875651802617830454078733258667782449502352969732898466172940510610264161241573991786011052542635400425327179810100647926326102955931810208729117393783397413802502490162896046488014446256435658578265970717523122692624446676559378753819179118673535351437167020994675747144321373072592015094886514224961137656396674578264645677064350341793662179759896529476557470369607710130996353031731700910300134865688030543865041029751824886840490029653727684730924844684212130129085068848182544772602452957388319003042398374576148961243868886129709614035747551921420356761459055586723781385697875789286048981746917381984118383746825363699540042821849881459681378681190335884894861449432104074141074564465001063519824277694400157947850165894465869435860475717244162672143917294500153450034826759724494822792611758537770208966127121185473553818769436062056993836561129058006260806647066217061620096190701067016699369491138354187993275299441015270339929001753108738619538449486288484230224798019302716513446521775938606720918554400491613294324917245144679569286643627843582145792750778467083254180677338924990524793835663562682636162289603452895356733109211250090839168048728825792967083462191439618569797034713928297629001931917015690397077980405321053582700124225490975759800021773921949028964493382783911503535949387842863279726358550509281743754029335796166374521641506754823133098274136280830277028919287311284256878725771442257242137736815209725992252668083998070203682649968996108786092697154408729913267934424153815849803946765726169623613056838391238099364399393682234736052386469958200628676396330128065994588860859316331380678122418896954522120864093841628118312527757385472585705784919804813180363041522611594189501332894270158843675041872470370274172518198582590419428344185073805499516371335714242639179695791403764808307835235460680106967653603424458904253031771647244964445070071038728508223689905708900498126532176800255057015259267489202685995709329451553995451516498317526155760684349290179358622717710619573761518481503368996421583655525095967739354763804209450790074574794582239261069122943904256810981940645759836558057138986624199357773172705921181721015913453552463718472798149635214043886291022536184139494966236687157981712019263416449182151820786617824415580332465349188251677722016465045039116506792871617573851422433147897934598032453762355838492502527824710946997732703956663518541202164533765589667538704406788203617051180383733000228896376367218511299942699430265996030444093309169433011428695929574515729729472872044396669931172623224751072620614760816130417609203881694546771015555513228021094977525208011763919942389300692789863195814463088038920991503533949706664570342657589228505745281071767790741973314471874522701370283571568052750829409209834889809907637792684693708842915508476104888703936395105256073513057189851391063270564990959252155550800316121598204126708607947914147232861883249908419182724599822694503913413345874948251164845147507570389523364460940896801670292320152098667098033000254445645703544020002145168313724780569093796964983042288942361059070511240550928700129359164073147060648793501997147084557261014401535288052027735527627003896051667963739828922583628570006463264220836680142569790489386785882870999593511299061059667853956855536483448506730713808851773694034720306557100024460997623088539618393313036244581509155795883815834640866596755248276648907935709177168434236230129193436485615272669971795303041022896814358803014770119563136453814858043666179922336615231636574132434711827130133908321663423490790496392911497775378096026076434170157204389432500472130003739303501667754764812524696860641672305046135975977417341506025868991643605693822810481958440037369540886674680985009359014713940869111640640644008442682360047155945833728178972760561832961565006214390411509325077630382887315434332430795626288345231906386505986096141524577941237252675122939986044509433012533584338951440658462531655481816926688964947761602940666686646828151128786870312196878545423335971902491991396082862016204176591682997912440037025257949292147713916479227699633905854526121199610801428261059953987750646543830028702608980950951347990169346579349560567410210399469888287549323577998529884946213761369267554346965714140396226309712568534298078323365841423651574947334988504303668029513792740766983774260471792507179808235168415219350249139101864778916575452801485401576726084593227136016900673981820916659102895778702995612075797337878239383626120446186092402527083238596080088450368674082479256403337459107610592608585727564935636245690500230323414023780413511444938284909421625592967071087039991760476822344088327111559650436992016985202579411439818416113703272763272902503103667903988238303631225816982776379703613242501402219141236771243515443410624337029527847503646825612903398583893680928139681091301712312294808645173463227658170822440445433039492556943198510840766597133042425009067287753025916127513377711997470088300217311679025356025393792297431081308176495316956406509936851537909636942973722506833866647422937190535637752945972965818791117670468428901582441263528968993055295836506681289726585735504031369874408481169940922058026904450144037645659164418664019368199533255994108889045549967328390736688099343218226026207170073391610038516033341451382680818448397443171206794792234251765132866028201323913237577385039885641424893393306273080126165502666347645657127251244492659880544918737245739862359299676836690317010792698490174004929745674535070728881174497543630469466655498491596687138334189748908967998933846429069238960634360895895128513526356378340988796709283665934918891393163923692048060700019448967743521476517080575146322330967074037607776420367430215329538943967847400637400143989619141577257477676250161504407425459562771467040894859184861418073170656902991768557909373818663793255068892893468369078261688183222379048276052609003549610437826363082517821123269003840262701854704018450419296690406569985174683253977537417558447221475575354472495832313143458806222244557890667818672894107352680986037983958105020810003740066578411755873321015221587495922872644426972075557519637576851599406548297953921143846619048265653823268409908355299518100189921104888810892204963627902030757074365490505998270924065791256720614935544132848598516777371360137909142745754234355773485655728875320773962993104247465858741034572422067754876984045733835533520180419612911599161084111822240810263485960603824496580264534155304101285772019587654958490050478282442965695673157502363504832338184828629193512760733169915302998384818734205808878965523425810815050393018148375917089816646377979295786107712245157078845500337830265452372041216552161456647556493383162222529836584123147546398723342211790713697414839618304722814540022751056425518682571856619524688253048322869243008543889262971154317078967121023070648755239226065131423129447013547997577201421884209675085722566351747116806887966299066441361488112943148927232105679682017954065947686490029674315854100909582509455030230093649719733411535711468545479230002562546000187240654267069242674917169594060770801903077772401556188104831384887517088739471861775249609592864726279178992600676008137393674504819138893071325428935624022298339698693003491940701026412318171640473884695892136490414503117786047461017492203113275826468568908634092268395624669014811580839515647358020971483175730596014315662850542662765572963339271401483343016615671538451432205519031170358769690641575865197073891503156909147817021060047442064064078636099812682691193521169103859961380274714778550817402913757285202866255219100491116770245687177693140970888971080673641694013559230697902609937254740803836869540051498854316747475574375725506903380935923288143197548032974547532437365815183637041564679760793023602800174667288310950012190488608474069661226065932694608608359152628487382498148161557871057460137733530326258413338426743986455952537998419771611485109381918684124996324904255606159310273650192225568463013361435027203947054247232494987334921677755183654775571866176684672786518333282860407526615311221603183127443485715898635350948613671970996362511408426344445932592883291236163041974991896437526451571185637947333930802076105132720082127395428544089848306976180057064527941077619321705802018002732832011502537707424770494859819857477175934538706156590421245366937578113440128142873782448644039554145520209536736386541760470907629071479211631828128444293879799770568262848284832783135270682987428784382766079434850670828157158455660444329155179036737302332363151242957886512526449322321544908558356657864656765541573284587612430151140397780158077951728649727665516526651577885505527215124439658722913935242129312267451920786543627629052715183172659274986151707187501872555885033444382465457039579656522394911909477897205970317864487765971847113047257639474417055935836562216803140236999226414268320032435455165438302876455291782759863104775947944441987296080192178105691026005804012531619623690598008544092813807752698045209542446259475480183174996419968602971446620515198050624322826095150122503638765707734906359605023428375626589669427230992006723243834873976492548125233803809744913846579418142283786195785550960150374411949280624821697843091843831901534919327396141106362468815894611914863479387650773985636552995269530084575510638598659330536002084931246213019251863397683699409206211389475740766785815972731433253557407090464455228411536120492794149628601308325145748329125091731526292808130384954899052272854592603475413759440688382330325794841622648047090120300707094299758352133713345655143566992841400061766841582401343685096364321364207408159870746741755511759436056575419187790591174949844035453130506448422435141923354021215172246751027750182742761214202461434518191182148331593025042973573898685478694681108160824551480125890386708762448816546247396885931790440498088203792416878553523611961581572985762006977688931236287305536138480984960832723079217157456805847291000995113512679602142526876719294929989136749648698542343929238361409768761779781212127672956361019137292059515050820954902210407747789182123151983388251232606613596540327662654006367019963673734317103363669183133387271025138930239086973538982333408282248460284532802637704121646823737297556727642792865508318576108290163137429778540443514969554037975730875173864331061158181762544069376780639114255831141375893139211282802579324308287533426453031165595510452258677592417333369486002314578045183449527844454213264781667873293240805528929789401679265351806546198110899526773483885377039001594195142468446675290614200936742894186150727881040078848767733442693064842871423616747368226261843938334019848563656706603402173818466444389183157850325946782467597054990150970173412886140385224534665647657749857708310496307276134530468120455533799362142055660288904079612098189813443051426443212947805139005889543677954017899043867640388588442360857262408123401083280223202597244609923563377950842034695070451351458710951498098985992188125999642749385956649412496751574443246084801655862920582992422341604698583487786168384551284163726465279346753463808360566777725769611053974872532922935830173109504468322540286437883712298929759318320560202689014203030406497206101851410257669669681278961338656036396035555600762729351907572804705388258415046485494691274939918324081010355951558108750126544048584198897303681180140589292701199674388355763110214503692911118285453629368272742344950570917773953289618122152239845356006886652733507650264684679161455798716019822859381963266468192951405880042211850104520532202230972490018195695005447569230781586246260249377230738352631824695797765812741032533036353963311255094213359883934054442298881726267625197825913995241664096274765360719522059490480057087812226043704173261435179643001430923267160000561894901817631176288981357881551866401101860145254917600489174415857644425955257837775062130261213269823975498441785583784133591241343237730183026576235465734350772789016361651079274545437895515096946041564352622137169182969731479795528808858375212744849798747381321078051656806585437327712111286042514461365923576459743222005481353292819846620663709720664861413927124615194202362891719640217275885648883547790685064626679806576020647572486101610547065398171026661558014706785002150041248076030425943590095949757884000658045953274564280603194595010149894392911245947566142391810953798513717494799960652557821047937288446360289518339399363840491004520604262141971100507614696787680873159290555687663037846116912409360039200214778025338421780275884400536432444295041659834968036037413504273171610452140055482128627467269503332762830089476760687297204389740780566108512189764799726598621668462839505878214185547092313483923217332498999675065333795885525056548434565429405759279135736227713583806174303729780318119246430968742095251024305726006911158512166991313599789840203745861695491265948571419230143926263480349033824824160307894908583793170438192300057584923922399235047256651194646451054537112719450365727374289487157844480263028532796159157469735012420191697209716524397230820895305872913410197202101236928210797993234194713117884030034824893063962922231605853396176221618067674158389502859300465273185645011665788857831392608781455500801237142034448169076733229000748855808420950785001708810718365628786628205524287684071278668763592514652697869409966984532708894044698118301313438935923065258634764267442371392279796888056508200592278546831353721790789590579475411261960578455402101980502834616130994383077529537634896310176300089947312520331784563021331786885490063394224683948127981036435939807952354408910150830669557618522575360987136559352598653331776404237681064282704125215158532921175701512419187658838790708227338684674764978309257532974663881614772437487297295584108649865465397671356911655133955469819017647404391498427673345448599075836776223378995886731838701259984891146008294566941546281863597413165297137331161524759077860090462098677644870058326003129197998262935361452964888374545325702007764979249205622737894225598999095178653710367257456677356101367391825494580771696242565434543542128540749896574211623143317790583267261626200936498098193164882478712610068658793269701131349649731716671504712161685886977366417503895790581070155681970318173115103618242786967283144290514639660664121677718929572264900953182221647562653190727289825275923007101221753302348162320969474178086082241110721590185266767736551985629798698329042841745224891276033820482812704451010287723337071913544361112151646004962208668121541295464739584350416644257493213652444247976028338786971182948698239560499529500922345143594255256644006393944683756109953007222578784113002453123938592317769985571145703023218713972185573153084684320616626293146794932277756383113910631765240042844746939388306981730656882313240890283343963978680925893285183659747199724358140576449987545873111836001746657520931137693528982367159915862350804942300452509161308905054743082858806136031012696136533567946165801660879128906221962874206448656346436655995451315013976999849245334510285449257935570271574486182368009045880188111654555807520449343697301614513102786206380109717959680546233988045555399178789153608198118752337758032374277382087658001542243769399599618131508085300888198532890382244853208483409037332378876626044510607030794583891054673229094410983560693120689027150444622567258708458497406394778744559077780221055179034721761177852320279559621629001649692675649465836472079536496283204408612298423971258204013052297603688856041830105959405711232746319113102109682836366242379958250919099718924183314798175936703126028393082004882073545439979664523268437174689040677071628947807317625702884995701001524837783641317913396314986949998490416706775141920128966331767439957170127439810673275418404318227110361388923627761648399462910401291968478414904680669906854883886674380627677512372805236440872068181054786387420572168593163068634322419576825795887377686538587548166060180757154283685852213996932829170928859655496015675779193287853340233897710185580040850880241365870136728551935475900884914567125924326906846720468887392268375574978888738636485350712733385118201497765065383771478891446732441765996384734360667714011788023064886333448171635219410154343393917806185262165800874915363644581011255650435271466967643616139806240115930721256360081595521400178895465085636463352633273394930808333865060952996094025893796918574746024748009117865320015748682972844540883593881053284027663301311840605570182697297651671171026683664186009201325626103463744352567969254413482404464684577510311591536686320903939361408422431187827840236527710169472600873267300171303976844087505126276066991772427325539794450478633861650100087899328794522179193447679587248963319496826060578086478227129273760297618364173703839110988876496858373901295596198066496911012825382499673277226654748746347374175200105643637854019466419135266626339629422266144540081756234981042419524202106314298048605048387616370440737950904178293653833120358816508620058848422664777297394749755998216165106825527817391098247927283562065028265242000639986976503791224686376209409826943001535515331405441325448501450663259339438209269540862943400095023741451830498144723308130747015981370039540671199211290981550696567768898624500611141067653263665366710858552899497671445349827483647343503551681210289804043080678766300226085237077910382365756179160564422730872633003694476047611064303472103734013874879890884777898320556613435219289310832139136801666377265456966087824270208624434074005092685085449596425428537218279759941428726856181946055214742667318719028179783101697865185934916140839488449488705979681637531648023191090894737792711762746548309713173672456512021308948598763673660306949512649080652035980280866320346915317092495342301014777956994504882301804095370533316770618971674646872442295157830852937232369315167273523664019681519318717083918876741771556402980735866444751883181586388779767931888938777885707802197467263442273239718807023807744215694403885173205826921972014069898162814261610917927898067354237430532733771647644988576543058228933033846222736993927488669146380502249303673654249399239458696389598327732040997126819585061543195801533506214943945724782401578290193432318915673478320914399898644363925630736330735562533882454539921528490724006647530117786509167319326807900532488169550908955215161959358879801627270407457482966659946832393360076535488739318297945028489448547164893170704153542487168174019582015997097944369253174585668493335759965756087853108515604661631554480729943991825031185889728877621709326198423019103476969578661357651172735751089622694116821040075957013790157250898975764611902925208417242442406685722533814839733742590081269918411724638109210588681395901637608490547269893788347026209948747409797510227582740469070963151565199710651807341647344284760598832648572380311613744406242687200628784576964634182505882923055573163039282070133750981252900907699507535401937933742913865071076882308781683862749724481481038979664289803846125054177069019365970421636667721584915713302504117120672796122437819262519432332696967576412880962179190974991269655007506195903712996340114915922189229924196848548059912326056795832681898495259910969009108881230481061901066335427359531171943606131206328152602747479637955326096197270843180312353589311659581065941355956209707990126227993337886516553137466068316083317889722728283353400791976982935611403742608865317522553436152037601903551629156752571354145531413676990395717251100586556698189292892336838324573800930638526378497682395378250454353273072176391436398031628126698653594242413456156511710448915604792006906566489331327319715557972139330851708114548059172205522259962785327329065681757386316875168658393433846487185595165524139731173296963689911785968588657389334571488246159419807783404537575597671990716824083918265737868253241913107825174032723872302451798207759197048615330680024427657987957545580951887264830304241104383231285433781905006288710971968351430604434380830109992955045467271412786305188432756753554353130073032167602190081931287925619958384710015027768058514524500950877198538405350115900106820735248134584004171663821396479440740061761075317137182672098386941322114179040423470539054706251548071329318905431640150607893394726378549338398921206072447905671311671954190485730535557681705034831021256612299280478435908354105141604368370477422096577526456339986662169903644753547789427177148827984373227839263839322509991307390309504928555209786630504679262275998355680601876497613492285166093940172780806583103056122044591325153987329497807462941937536614315456185533586966198571575012057549903582501342037936481882500707586834683445960755515642661900008245368931029130472873311578734970190157927544070664140746758731368281585950893122923666131234017824988926707885052861436323494124526043746769604831548550273811349996418774442447090070918778134334969972213768970365751940606577770567622936025182547514423780955456201495538379591445151937755799621357565092511111550109173174602700800339693630078899981744277184719980905056899153375975107761057485278269482825860478395743902666348983317964442662649214954773392523201554121012111855809502064093360290844989447672197700746390964468734607691784344264219429895824854207694797659815039748261839539619036434511171978227022054813027001029328803593608138705263153672506178761254269877547441009746396435592381971512722517135112474921287375000227901733543018583777257121652627886705805739273740600061098194732408051589172736589855151387443904970504115370782395482652111757118332493829865947068206427889239884008783347116176169981403857409843540630681227182597146204520758410731355447897990984625773754517414008480771516721081530224168073121255535240908446624735564830825373178789730960307299631451025586928249444597651462886921603756834114959807149650549803914194707036886278379096859141194457396031110567854922777773609514707116655475819777394934042408784179411888955375608220557725575193472675302011923627267489441255011661575423310186209460791932803558579991637870796969882647275948372757408508894034901437070601582189874977734475830433776080565800263496923215789172079046941973132863826529276603645293426714457042154444242354718546180476285623127261393106388436231317605448332094182786250508602585711294694638324344338956975130750620760788902386530975928197548408729964338564331608563274318624184392649455314669580126493579337303394072400816914774452832059924819367174140662497695591326450956033950062548382601591797381819444706772122098302067891004482754798933940006000156149064766660909730277103004317332268831053870758277693419672696862394919200055801735700374110616840768865683083320159698660173208923213131604666482820953378037082920103766412288847970816197874162674990927538016732558450676807164587008355238806640019516409947281499095493628015005565166428434885766052603505323924762267774357919042941669081469224664413667680931587151605885637554242247154142894038579353675489250234380716463526500386721086315624892552020915902997434320569730017195618238656579098330378922336344069558705704999700081440133517300984378763552576975665475490652887475423060418717081905901242878635751163660762061851337839144435462101538030307676506869262401479821102886309269460073287678028412189433064882739210580139292665983859563435529763448623565324188413622671891178804262219028251223954622963497928696757620850068089480879149737197227724227612983197290236775881666488084465984146032867909658169701672632677328748632406905880955701637426540047969206111031607643133994155091097133221413596178530813078028993121162072335121672304097771592778184645684342878252526400122142473257412985520691111047134648014180452578368693559607261695267600022572711521499089109484503977026322345380079918750733964358695940478854610628550202046385402317123136680549944385868612809154442166995536191697750055276484553457273530103059617745111539397288880332744589954136626330230170716860295111721899466252144497350787595778752728298356182588103558883179530784958910652832481963088521106999121665658145940350644394383568459034181038840736779356424201019273732594191886614430661557149374213276586918072774198145115664777853721853056966454093582328248211591800828641331000531841311977541577778752446420616781218874957138096231434373658675950190625763588755819488868734062820651235966942559118149584026341638115691741828197013631723844590836663450918697626869077290522975029089673948787338626536435654453464196646591181934993718645843079424693907705226371662225106822737900118394128510298536424455606232596138216172677402285490085498111145313549690258057763533557413182305985007060154537140802249901506146603589573967022830720476685189361310043867684957243873683318842525262063490062412466413899712433843625797391391936278548858903478799727843095498507156558177677617251876082277549804467301855603059218014117871104979397104605309016304594110793139049568178578313339566561597739231106615252494637825708758974088591443059318080400516375254365061069888098337557770994571292030388228590450028486833558606554650207571456992144994354273190098142810222809815310403043600029571029102124500412449567881396872365174081030861871076218916592219709345901306267930232378381019873894294424260147127034228359921182161002295639530466749209235380091378068038685265900616602413592911865086737215122769436447231665098203577195204132933274342955077371741005949841954022539843803432634315039112246031146662029647000676129266012058005064416124483402445766798252476373336551594459766621686899536507703224062923970051942393970020550911961561407262317443073488090010173422129386829441248906507751774258783365169163393821500736748718175721045898968060826056130810714088871317199299635508065102644858304410272097576196183486801983331955855961033965434245532498752863942533441352812572787977281872828149313384770268439417494658525797005600161241689017554618820293555049929970444270167997880517483261769213619827829880275417092942935354327174938620072637374114004059250383642311735825551750649600423992597930972079946280524438327363445805020886944824566529930614108274721122057479083811361741199459390979337152427135211083526988182089281416366793942100356391639057741813833966410751339241703998925682535126788083057342179087849228072057405250069955515229740692416119071433298064317355550517743837655308595515224938556421131732751236817695617950927936254897463230443665913771160224734285104469126974787906216825189092969442870217707152893188643816129067435789822752408277735077694456277990403197607620600067451127388947271859942429045985571557110727220617772948548168673196606825645344931430917368402058243834821807856013222149668766577816941452261723643281158420971458921419907067151973208990773145491910458344817400742266839285370199914892395958517950463127786846002364553235959692166341705800114903582724138618311988580773333344413852012339541532134730135418320326486153262528703143614399483336610810843117240868826759516651930338373000247715546137768581047917055252993629733147649977393356658638308749641890002797859240015262293139727621586297892112326791220840483604058579265770634645044567172027850138833686481442696513462274286692553730939655028298225863295200186978162717673641550110178927642594604913378830031918147432538783607806650381935394712150438657433019244776700665228640180105433719335678478499655646113483399470669086465140769812186733531143583627899104483480339825087806610650725397692058846295527379291476682915549603537394256680511644299203704115017067494939566117997355498853382079042076950914848327808502574316682860134028067685505255318941901983548223319536728663201603231167090860515376718571308033033274354545049137657665241338822508052101965846583793163761279037179782660594846393273221715481092801991598050784531535241676661135116630736460043047139007740002321138978599838538610505821202327547134098202484200700403894064897372988068925691902381112814751248849480728519517606687904745779217810991694775223580673338994069032302485998497238173448838560541140379710095246490866070794104487506400824338353946527623952030882019906156577498984105790993186002861797313209562689181316142707054807654695991887776456326970010421054325856847057128801449904305770251706780303465356917768447010906644492324553422506149981392258964248258939058555874414563522659611453965091508253799045051213942620763303361969787278395747733684915101262897559160277936379773950020307694729717875736262582803519691560838633668988941853550187343758407538628195054179810161648752042344009140427070641008068110215492928234555613075238473388552693950841552325101985851505227970030763577535485186598241189323544882204882616685286042703041324578149225242272025138917209161139123817739820467601023662364820678734149360955083995330582320985873086088331551780889382923193176053588733736827808516885708058996164859509065902131414571892484844821005359839057053388849103154983994983969617453588382586935751178644606760647274290015561810373973745113244543279846390858086437231318597341765117172835077879377335306284499575747510600258658668153499984404980362073723550750116657724812879745678827578265176327487598307844437182259332423083668321305083216141097590665164398749743734499826358360901841910206235425755721734942025994176781283942007405234695982991903363914907367508827479565361002324707035951870372352231327097782265126668624347830567168066989723613194920156821633654576389964204921443755716154231651418989805642357603245697438541457996496636032986334267937588012228716018930081755985898470547535209395010621835934390110558442824137590213007636616089263122962864519655740901799951092355000818525607369494409970314568811897674056548973284840781893754211613034599572289453219649642961733281202964864745205627453198301509603263655790610288981599787178869379695859629985627740473250144618431499895067558414026150035246420445985159057357400145339474132092270975403295655808202979366871451964057757350465824025856267192860568290338730396081859239148773836873278608159107081010295566943138470466863828831535384198288029838761745502337742934023336216988293261691238832202137811394032139022876453317866282148500571940627806202524930721183597099588063377094958671133917076325559718717268003881424576684404010640520810959172502443929601171425807978774079968653562845225127861568732139602061895049170467271979496554360127421629419251015801619692482701408104206995808318463045468485338946420003374722790138595376949670917393693254631268275276227600547331645353586158550391081522403098214256308383863365492982280507295932749374415568855206797013839199961528155624322252065670954581338795678382543204524088138933612023988333090090733241034542749751648641796138178072948369402475542899397879133356248987921869641755777409334273769000346304193450421231547315798241881338226231686107600400982536774644608674599778192372614495098844627360210124780023713639042354962837547232007595463417766020515697064703748709885142314445249552153646337910358963770069894281093009711594622042084905425804376321173995078217573278051357563792490750158269141399723958352752813364903358347466256318655729178975973658310072800528369792388509108823821768526347418888355397676593553274094713751338065134450609728799876724354532040086842515978305529105734840310210118793146021923177268911208520384996780417736327992513741946952398144582612190749314661470752316385349314785669903210567562733039293020896402683220623579648897778128401295708794257107344029346927827967707205284370744825743890755703362569112929333455825465093129224119291910403554476451496129361906512677088644677357547927388090230339235529382791090303927455819449243831916654122767773837333583785481010178482773327706552266952958173449877264476574205027642640469652060159259872971424434246142733794151240617870625307763921413684196594959114936210575089899659138107713079941064060440592216684177699840066513398075060448263249549979020845243617598289945314333992607701286285474777388947340811282116904475824488986880229420457132604315310221876407369108705702937692532859783933206173518157785393799546193383999017677216934758368111330851215913525240690218283427445711764255015209218625865204124518167168644690950418567101640195075032859192714792823976984523897706527458187913735500486977910748634005446278536494083595264922092655224639676316739239905768393410830431229119598346531667742341254984379574857495333796608504179205401122568687324757986927334739667546333758589445235829202581361831239182715244411971157685812914495418381062664413775523818283990262292842337858547521804444178422334984193079736185117349542204108126005973002474410641156594933936480145719954767364889487438216559768960795784908641503693211690300364340715419441994931645794724734915097279649018360918213246908320700544078032935173114490726192631628265904460881604195930733727874068981025874894606949792182456987410807245296670648218757463639879898359380164063000458468125598286231673519173905038142617174049659298157067351013986959386109782791564960340745640227237947940501741351671675148846493842065868152202947747899202200080969388718468992058645804284085886104896500262791538427007159124023981346223897291448073664783763973142836690925868183792210773705189235044529966748588916318204264247978660059210915311709494937354684774992027606695833513415003250607092532177105246838439016877913064712818014214247546205489281281161347545296528600860332449422459998848752531133579814397102885337283848495551971831644185292794875565472539414887074301879013471581685145060760094434603193659640814897170812819335820983523443500997162173132657357628117320222520811185417316942070100666213881089360701646457050430118800917438846589245720121734136286739721629833353115253899200327744554011009677025399889522840023768698662875472680106131513557790128338715883063241973791994773188826082587058944481337547703879074182239903184558957889639212687509758544577458643367866513995164710847538811724984801250724782384338609859590686223283647976291614839367470360881915910561883325780786172538379684197259054924766127362420049986426551712345617769486387320063628353754420535132192599615883459971908097036687945041964989299282605320859514826805395705543299324599918682977399868055017113438827678519634800485052992840132686904678515660285001753764137897068663660255031076546937480207449951786351533193857122250179540424399876746263289152622493378473646131666842161541631408418008236496097708757228912136356240603309595243971374204441456502050241666457989385327490567012014623654998381935028735100690854053628808372146812637267495328430034415673042334618807368559678530300652729144537132150965298104102074310781499119635385801808468375138612538333126722022594830393372851489013447733216830456556320191735525664814714875454827952942645916415684840040362247890352392228102761224094014563161540933636630623465121955280552983742216141378376989188839550940420156928805387488380772462046844076382842877903073505470996022535058321823994417424247915335780875802665327620444179746475423264211426528352746515262939578483689882576294819381481583351405389113637769892399190260837619887180091075311926715295048085009334513540007515480390583024275252958345641213602746205637567674664451012301115948631625667124712482845169005723791798863414021006390397573724369492579635013583609225732189208466179428893281423230555655962924814091665062221261338446983897090649430453230293292522058308455622504698112488873791804572416627888224400121177637132898143878945544072867688194075032947796849742179249039408478518018773029455938668677068306086534811263951376734600169235136056029558120461614681333812712115882503328368048060720356561601076751455250155670824787085650903349641997177119780396405816243033666330397286864822616472169340983924991339767133857404644542460222519337016863203966920679976532479273694490851930427047391910449213879750342681612564125616527055160878775413132292640868819803513005291661773171541613224932675223650642856766770610508626994128090535190492306640007812625147302995753375927625865240390875516458419972428614418542043059286960340974698602497876044017183172226782399002587112544485234812404364536010187689459325660579802856359266781249652291442908330013010447501834245191690456504335494869920545145338139474515877823196177167314907841812750888516608060351660379091381587412032898762742292975856796126706241587160363580100058086856458572412997326957162158321997732300422777891956868707561719486402649029251952459312828655818695879445090506701258321464885427931071748961197552194757245975435486393325174289291075552295885946425098574667471215530608311071140943508247501786178897247098216902261733346446522487785258853226036922076010096779373584471227599201951097555087142091272373415980489679722018654509444493551121985987841517333639944646385503757751564129004357835937060641367860450068961124679944297609886287336273913810430883946340273892015922216593551122632175311754763809654311366435773598951652742989693754317153626748613627184848448265001856260032587060930824747514890223447198513123128839654698616599437542356750034959006636161008720600153572371879963461043279632761246654739863192007712132943276041124362073658271643188058209349398037053198018077311423710172113340607540491642176440634819168727363184544443282212959756979314418629120953185053767151539593232399743920242225511478939325125548391103724889066357867121528301541817696776704820270966579218058884434992232225657016749814833521107184725424712020219223701870395824734922188241858782512693443114806321958725196447301284107398635484374765272809085683773246515533700078514080385442719443254975096567606015311547149563005038182559125819412991538265823083337385931936693994898111832869785681493932584934728765472131451286203356643168089780034592068259861442302944727394668519730493121860098388180196834943388952042394059739150832044719120590258787281760315627303102502207292636275989983464752493400970473178911312904471108855980812693297124688664599927319324685460447362721498281693302808378545495522481296290177249327893962942701152874945690459350879106435786956045328686714367654493763716966191202952648510043090862389438886055612141368862806067041536656662426314915872874204301585512232732384582337520715993859948563727150924455690181790470103524491414725869437281516362049024068551929100868975942420466483752323817454334700133899150558402648745561581266563715119296716266963942037192686660817208088131366434446492219775079469066652105595064449884953964118746343353339478488815190435286064742825244589632567176526846903624171170194784776515784419668581407944720449221515861761920313819415556543424904232637491662660489785508121640362944046721401872557800535736814093619409003193595678640015943997185907560900618063145523033058960504258750889528242101662692147571265455191277789825257714460597429498248476123396303225589964829422910418839608766622836496211145154639437244811536948759334201594960949845345552965554711293341666259123915538075308365182617354650440187441752174777233717880149226596358894935831310688944598896447960361518663170194182279950569820504594372628346347022869024201885412822038817682614516011466153830155075136679393515726896218423601887103881344246887928892409304097551363569167818789025085432357065098580476701699337343599469738436111540947512458742012451275902189485269519155373541025434670763665894615980651260787821513874952847335126074355170365124042578605651540224292669315675900279541220841163489438622546332960100560649909655565312439718783716424868281619665292905314092228085291766944158066137832105868172963778896248125959736936377054116518252240842158913529464738300623490268346488330495611575297929796946244395755050978132151800841518862784280780168310114469553121940426580928495947425228031118294413442502421741885970105740283539246421073195840796260376827206077895577041131068066084437034826551169533266276241811578151711404893461026605501321006973705070040939807429992121426980281895340608006957707549698487774496146973489941190356181366537412727325310687350171410906861690037827273820349395481227919598199673820154936259673676098285122367943839563392628014182999173628842178731283171787198484137550576401706337601140030765873264839816778430748321787234064419835138389985525947953304517057401742674602846544379066835760068519371023442367134231622712244367106133642804578161843991287123131979144884857412429393530497173520652928139885230785681336130268729681564855155436512158223867895526063609673288156609095844102904324855083377696822023199712912788573018934895764002436273952992937324519578658663868695062522585201623812713796956379442103719016784393147506703358348247034707295538259121255370234637278693372403130926417433317139999017428327987817605160401511004445722271705389959785321410330968331571233615222463418715353401878763242152263678431753693607920440675078653262795033130304410314378484515761687950802347052097123104828467938730089629072819938257983743139876515012512707098704065452650501350101579698673937355239308774588599086578086953351373706437810399425112240208489622719727852420702037814083845778308139747375136531485822656940288054165138043976224780411086498691291458633536128821198771850829542782407311284458263858980969241098640393884127381300882907818149807320720174826360254170133021429369448367321102956936139858603023120616084531353226645799899976110105524939881325044629680536057522455148165138003603704262943385659744393070541587573000866131137754192429696516507555100172840403061921503734241974503793120166929912753028302349986412096205026130291008019331365361264755509296185114127028627721657005779899550247237440981841914691957203379116744126637669707442208740699830423985067265054669629277741660687995428568371701022851870521117612080331131856563107772553329559213343330908244998090443707929103136301505782999632304172776062843906952432757566794869831200516893614028666214025157091327550362794173135028358133254670958767231588783249481084156253436445941954902359327976248400488295281921164870890414430609835590080004594351404579593254086025563914041433469991234080096730111924514042921021158970282701005264019751499085235137925489128023549599684007649679573364609537420260882397430953627230386552109222596102349634741049992876140554139672028586999542059683610057442158774442694812305519437258439945447892409569912620357555866062730951093844070524788236172829370030084597093200542138341175803974686534528238849210169596097246138658260571660599148433169443855571423927739945708515937186904659009115411417388919166669557227968598428473795078974970355370016900506059595202514454807736948199699365409655593865992559554741467943875930501814293637201763904028633758241540984431570635057171708856724091014670694327630682294155722590807173666044785404253100274246390847396131433930875881272425573111440038116621880372400041071135203720621613304868241513011081712897625072908127541104291999253713039007896088731361220425680720913850964615727098157486640499276188799017164750806492659588508291088121581192682354365718908715464411406841374357130776365592631325546562812107220049351653306208980799909370473258047952175468546741288736139621347391033920263603456363884147811277273708779406891107711627882274215991474191659371060529578289812095751616561443403772461314371667661996464483524805937317428604848295928509569148784068891149240566065618826059952109496983598597731307669422646050679283397504612971700355604264098654089052318551465119695496502202735052653050478554609785181494256614357175810829882519919645394280085399037123310757398833076766416451982557567324261735866671873395722506225528875622126817944936671413634121395065995392690583343360720451933830774984432368204375695262258005789848401456330641500351215302145826474935983742723238407621526582922913696871014845451255453451384192318061427971769304891938152227137762284179249699876462195799850941175912662508476382305894126889606705707949095480804186354445144171450563942387892566627713112758759000507029196358957652541414808664172725333906883800942183917082121217330392474402953309963821479498190408916444481072922438909407087476509515408333784675129153218151123273320115955664978546002455767232198634178088379987506853063501360682292634701871291210918246778063571210813725583402454384883380690833509012962256949346876972748052858727137634298957686930675926859748740825057076670090503689609807175762936829518929846899190873826837592677268696964028813378556233687229426490225157778172452006768479877052410446284295694715724178020976784255918822205311486954621896679403209918894306338586817732984820071367271458486739030892877026433694928591458484119022110670433011730904086113678354592960263366300068516282843845419684609450691011027844514484653751840317142607253864858141427000756450593258773934989860689299835356176669314300400191985473836506787544589286416294655149661550290659778255054847539407540356323867593872894611382604346553397858933365011229645143485932102143716245561651093904966892865779951255504989207631433683416258190774638162625879182308887766919637591617291642909083090613576253167716559279209235005913466287402051758088333019524870673076799700545919149932357240944341955508803811878061486351713458346004071561515576211142651349483116547636637507168314799449528419398299529382049289840476100977942876749266026652302628376867161781812499944612914127148235004766827236609232208347776584020398810732939430395731318921478517495813143451222694036179448480404447280677427346109552882294271316630497113716942861835923837361584816244072755700232432601905468579398829913076828246414373195412187656093093360978539719489299243834817150536165775017353411650709343232408325307469074560446724726767414480224314244378905279156221680341191911417131097162546668033204200887623011243700712006582874086859585926682654547423104912562758262273017916883732161910590299003339901500630193102016664235583269160283047348263398366860469286536454426000523336933289651463380933679166360678729479271064976648103075008383006964713437306908740239084257046212542914613426566582202094362440395208658372614935518033711857414049077819071601874459945111774330889196743864040896728478574884822591304312881671527564649682994962862248580696706474308057723364295631401626738702253310908657229017939684105463482026052666816180548547808520335948824211412117881219622561436522967029803553536347974382667626823562840898341527834919909704122725170102559738658446847942238557739654081293464196653495948835525894547424655361595571983252626422399844878977279172733008081868084232844502748457680014707372344470854021263038083547452155539816222983019860984401249092060951432146941805797827748185283366338586573556429058257369847439457389302725391642538341707135260018765703796212071368165964443420674152135659147782407361703668489328344703241564510329798015462263489918701281423530765858363924636602800417056058820492600939678763366395614677127317707239762883635318827853469529435803603822002152549307238619485268985043027291934936281653240280175260327079421070408715401736580928169210489848824173562372995218953180252041298794607178204002765803355523932534232335043009474663556439930206729238802951884998985992013214063271514055272263316335323952338565307226608758718120028048016904799298744153792844203662795406540326119418180939817233846393345985346416887141398744962527833403194902297753028702945169186768633070860504218221713059472583870154389137203348841660327043228153199043625664157914478448941990353094440126954535886407282328393858096429112245279945159527132703509141603313248834075832953620057249200975015851959209210210504367040578151528974616123569751324817795886691656013709785082650983347012591678603295484939842922975939110243039743473882731616758881354781228543459005163896149100552079047930212939696293169571543094323832895293264062824531266288351252238726032014047194036501817879652000670821455798966239340600126926864688800198845437040901005575921376990433137351280881326446103086596912540864262022697329818000571011159686711301296192877336099136730707779948335417661765321479239545147492925448014187622413629544735745074249190906204274738651272977605693900319438538165893225813910974140321472423636834054370249957757685040319699231751849529267580176959162249222702750021159971497289841708242880403981465308440086361514801999768860194034178472446398655362332005987980705491130802673161059592721303493232557230828012271613123973920227702430750926055691907598357421982969166414163999497599069286744942984922042887280032150853323417005926293939294666546117566171145175387694476123098478955102719110838296881538927630195869673480104445385647874695964783518774143138655133245876443988847495290870707062696924214509675628822628310719866703252550137441219993985374800825663877353779166777170407908404843944872625852962006293436088996173411112562122232507926713769470306134223347184394475055193144528644741401548362996904888633948647807916830744428524525446034970528744288686817390539109542750379450032628065864493294824767736369445888147186323453020276710611487886445451308753452345545688291399214388759894110296742661941554293434740613259303756738722846121786382336062236834379880102812453003755855993513366919406969508804493566637033525072990491030941693570398776647111138963301559894867116277701895325576542984139590085355816307822578490912496512103791290416609323747552718546297143930038120501038657636101237228396117337655857792360664835530796280903679805976552373813470324037487321543309681811985072025014816229783084508451120038418137784831862992647056065386273339527198412514012332919723106138710530918227203554326743021856764527581092828721481017399732077854972852442646627257383295914501596555937608100389530527050329522081451309656482377341386715883615335865020776554269985329113878357190784351941387651188950125716425248957341342944185776748071188702535779274103265326831649656714194515349483766168919941205709156179252965288556168961342882659611827779148842106501265167986295546687275182267098246584662532233208766754759585095402114156108231016613438194624285297399470447305758804312607285315877136450477920327053698597033817524005841870157213792568296804837141174434117240388442921771362928310567245641689603158539078823513533484156994609444137784062846769118934625635289072814408524188142473987515244007519071839789900223504723807025001591330776588723624061453618000399807072165975176274148180695364777193621056395364510822591021457257210416065915550454333781880092606769755730539411121872892787282321302812020080593551494628207635923634139768376695825319764720860055986463388947565133292940954684763798493542676913795935833556774767310970859853697266602137393460913800631589327399361965292078851988800651897146044246708164334044244091332969313464384245391420938974374395937192885511125876971484293434587716064865242819353749291490881328235000662956742094868128010331318985470319172208223399198128686091379741972738316046815194602304686198238618016544431466932000728212313661343113260470266243831262263225952716271540972096136229661726470501699845549237190651765109403644147273578278388742702403993316632417141141854116137145384540946928866816564024200081562655827709020910699467152045346753735640316332391475527164669112273507147715666212611173401908839450145781850597419082367769831854388925851591110174213249198845494902754853473038427669545461993210483150471700908596505949896014940637374793834783157934561726530965693816211470445311831288122117923122891309863038952694016593403387767500115422836256880062282270588879067641293732063157984398903001773838392289082018030906193707773645570071855401625105260004076663217093987002285189953448862939044325055942171545370221214691097288065686844484604888288230102943615464769647394944773050841929542894427879976088856471904230917722612654101128872174363173515954962830162416211119310007494105764864137886371462308482821727926507231350907175319223091275048588056137694932202242616148557834339324157812655320160653971921184033985537700724282625199705169625997015492096571370993753580929639577613223414208944089280144086965000123197005191726464180375402667034000400265957535718267698187448354764477510925583062148605378769462753885754128049398829757319010691700501533134757033498654560919942587055353371813204617892362394012323218950545982708438663196598949360756501393023899598773303350907395112371069460641326770369516602908808971797271351608616498467022054638450362414295313785824171709707768008181704817581141169967900353054209446181735730660624911331011576982857469807919847845091882291861798997203641018665843732662524855822043475753852607480791889447751906110141582788561686470799114294453297154335503426661791115071666659418671017709650828113637070983873379969133002263343311320398621490037599944497631585468513902608572870273189372302165810492281839926107173038310652933189289137216495282717453082856711165545099790845363675196643608512860835989175093014790111162487490156132851190749720223651060673448874806730739047285310977774070297886017525680270620760972309163522457321717687149830029633748446317690905136556870710605491841494820026786378263056748856091974786607007244139606811188108604228723510622205637453121703645556553368168129161522331191971530492925450852852297433029950463182509952678791006121320578990429449963059701799441653171221367771106106822496558646499411698249528498732243501210438159871411549264304523012650784876817563374484179466225215926839558213929015080351657944262353175670674589342825385847463396231246012503204840388375626694061570166833787164999148159793740686080117354720827710070708516802708683199229178876749929898795493749757596597190290701732956217644179014546026936055564132846894304246858350604205420695916645043908158287838043383721480391192887011942248469679569674596134919347497732149663353703679923052981683766239923489406697450270652297012201326277031437935610448413579266044996589771283009214396430904565052144581577865208420766437438773001029674453443026358906922203217512381961883677207383560705797709651355023340732253035598896943641012989047457800879206320675142756995023240265051099154748386771049701994849620984029268589036851234232695099184288148958350596801992605766343989712851993850478660175478670427484887659785749851395341043840707308042548633161823848648206581800905468352871850677096310357631835778573485167582710333082489448199124033298273698703153763798296633086963236515474553761138556088324719228490818788822366056183740721012644201948458253498294515990443751851498237577439558527030636157689810989621331798808016729152032607724123618143118590379513584607565615396384580959389258720833187263035507615547859276560746575355632193194074174360795163645671525368006552034417732270696899217365250717541986380040539598208287249394457297529880557959198487345468934064714386299647326995857278249490255230597976041549329363062770656179464920181703711969712682152361360213302405277593650191889161639761841226960878112472064153660608852316594922118470377765526939573111007638418214919477855363568502767068084706851059418505700823327233272623616166745902201664553526625930110847490804133212532873020181454176579889240184600510042430477016630804046135859547944714386860030841010021707229323151906774383283640312120300674024479267653163594434430003111076795307189712274085203981824269558901247001299311144178477703424382836564542471692006715708186563159763191918829178133385046401761994127582831662335941007823968425670661710212375400723764083014279736810113387127896304467864361077847303743553985717284754748942906155037322258117680836904422768360098671989848489427340550535774676046571256953438897476696986390944389492767462336040835966374550621725646384655656371586297028361053874823049710884455016023861768085030584196272966741284972557249257242188409783009715592733012835095564213757480746924853946632188175311860756869507199398488404032138049851749080309831131176182562453937589386498607227327966119928734639785641496599485735827204565739025365146330949268451640497961407813304965794816844515498755459953197377355615933670413422311701478418256926420734983888308166980891083245489166364327292278957488470820186271659289389457851595050704410617793440584277183588933768563935601072904096266189621882236449575032729390254205011184014528609127068237763637600175028675374001948908118484288158956184588350897593318012230200440209669573105427509882569931465144816291581109306468995114189101361017638011535610081487760937331616358544311336315011572484844492676038345845144216905965802967315034610118639558047233258192900141797900222172061392991247710473332334390968961448543700093871770664868470220131087245622045254625672928188740872620573940077683176082291211467661602874382194916269828374830579275390647606296587863793772276767362795354398693289796749960920175584063757626670753672443376485577602298667746450273963095578131786719271206225205646140095852015829934443308873388933165645283645090022845418139545836698263179346945461849399308751277314840576168664299482512512370060886135444317355349713483894557866013503832477102854650983692825006228047796358229114330585535508316968031954377375313091325015110716010681239428657670821746793817742046280238782580428534663025490725059011425595219779534240386921013205625755189293893146039695989802150916143381662292149350522179678808587338477856258868605504800468115953975922187506142860053146867507259057812974035805435669866863959309714417242020107317088591793303976457924781291900837911503962193973897080246578734767742856218540874576392830333373801015544198735353846295050890663438256101549316737941481007793974398398982042796956854442277991414971749143788940744477934577615208281444428954203997065052736022356073868594293656564442151606818222369559006140002664107601620368714176273799406271584057475853663430349636136137989528993187877712335289859415458748835595966380863164642317412646252592838887548541474756772659515086175082201205087895821903164651908621098048690707380059926946650019416454028368391737354759729684127649305363744452034491340105973043061437666823664131658745661173771883568766850870562887634210286894123723085811366797774550915898062320410059460105517219884650916542949168184168763946616905685291255334375277421236541307559878726489360668620250598674617150856622772951283507523438557721033855731869069163778374742752515675978080805039166037313454437028086680507511795211703389837200646734307074466562551740038100601604681096489376154715105023680697509840402853815798546348132625044624799300921151974167261588907941030979846351353669795941862894209033890353124492338528153789921331858195081867588654848444769343590163319620334631156573707897687574241492259984978343799512145511619873373834196767944551572124230577534552792863554889527517143161779727196415389742620406020232345027305507886274094078613218225293093757273558946289121495843183562825253793295574189879777309739737856014166461939891260612964893192740047754243066989909901961032123601544571816708409867503836218950041776997080862138198043513795637674029532461022184632199526876337119441595160267140548454409069763165269007574951705887144329786991803061847827164913667791478550698022061489346070283621461742800783515898924341402508776487353968137507910664934428933770424922683151412364318870648478163346046433938929693915398333409915098467298987349497931991723409235271283780415600479842619932844489544244540697256508215851414949959128255602006884896117085293742732726177396263014281478014309431393422480260251326717038090853422402509086921829875193790957239926103810194711147003921954510800695433712573550014806441252949991662509160688108695004702776023313946141991974736737458973663971610049319772826617614022814697843782547225144269008178183197946916637205529798758506179007800549311692652838735214371064188484306922704164467043839887168069106305800432337702822710551164556055488983343740708419502766359784626578190244978952011754970327515487987829664509268462988696830472771360779118806254443815913298589914684408093545205903752992073910736325560591598329454030136366264832783451848165055108619590869219145436928956524205653162385597673014721503762625715918492857506929504992887659020886789294902564136052905253630696375984378707855400665301036718292499733992348139392384579200222329106379055330874671897273883724816715678841081807136222630919638416998298342697112313311808421298381032887619251312228699377693510304935697972754288537965031378295774268741640353230241261895155540195803631923502050512805855426906538717632962873857610095499462933686852953034882955202083089970133605269297326837303094844766620081249133725115486074138140856169182948921643534548514008378440481482494252077136171409305169912386175314042118396999083763085312861774837637040050077403149680898260523883566004675629846234731803808710018003241995755790925116501205411881177259691587144533195679442809614993176502621131999842102450238604331361542686657775258875952904024480678701859495590255976189860515230007804006630148906695189459478140340641863652409568996342300758865542195258305035858160776050891460020354612136687327739620146680741599755558784153385646127084684320299150692845201550284216561746125083995096944828596268439121492165925550329583215279138113853269845837520446335954712749120125567884748213541236892732168678522833420029291545740346336973751263406919473923146352881074227644339402677123766760629655439629689576873795025418673565511324304062972239620414691852386326257979986860032604273975282092085965153399265071162689284584446772492798850995308850034433992511955494737403801603650333712133338412452010863637012169366586275299727867692022390275240149765716019541096956730116745872851065659645563223118845201003160053916694323014635983865105735966639938971372563149726126332990436363287971517993814436344885206960853082081113974116003958419412359750953307692593662079493674435944162028259871847449969922896864616222800292135876449251797090643858618291429773674269795803762275891906668632767485241192319842568077129231449887810572142355857058442533633819715719334604664093200166076485983637616266249466969053772824070297858538066000153370371652400603263960484816059633902406038514921458538627134200207266888160894729817997736817892526207182882273383776594261834775122540601196533744098181432621812156046459896753634986938581252908905686567997874750399698596354951384064821207994043657656609127759606346302292556409517881978786194191670139781971806940915209242148844164169001858040884047964199264516881943524081097787596469074316890212158341060366056407201589356677758580222359700662377877199666989922150933469402558229824787535740839880924815853262488035926963522838365544447394895271897557927308812913715266301083949385608087070972951679660220467614489179465744052337583564433120148314251128640460044458546168244859347847909539757906905883632023860803668106928871323105321467127366270126668783993684246760637500585460893923325063607415415728861277092030049128039529716720470583647753532125252482434580582971562872382350924057892229100318072442386094135771120705307415514186980060392334997667003686065573442054570190291339876782659178781134225168247501672839089620589358013607655537059294259775349465961818865926722430899060678438899441320226468492771357601836146266335202141041108062699357361623027494987593262836671076291280141167097041365992586939908514946999495550389696010202866285013409561244705298056979000248043006378700281871959167468559847841759041803810768156814315804883989829798872332580857483340011150639054975852327874727517061583673732153903872174330559647794618836255998122951881475409395074120983422396279983957237416363958053309950688099368952384062338156429800141548194071914138068305866802654303718933174177078399282729619355766545496022429492338066092827117572821011820700167782578560254749462759278162713856050671711550265245150009080382267277623540155928727063467287153988094094861499016710893770930194681359346529471687541718167312563077636285766338703044838041142535520928636717192579358939415893378049532546153815249072604972754364992004069247339288399487716882209455653698132492874681735723335541658686446103744131400829672742173462404224533245419551722075082743370944640922110624631609443434369098002774116183523853626712140090484225398257896525680306748165451451758108077326865774835289166272165599515164090240930245530457464038706223991606866777897141490169693939977487930918494888370076708640731370137306193502285481837476093190792893272543363435056694897735287001367874225949459679149062333634694534100840412191118927600149395611086413030341891982746106037934422102564466433556209846389800258385095664703383350583921267352818677161153616942730025793146486886359252495146539806932396620947776114618551297201493815581714001876821955718506763102604732193530611406632901661781557971998027338956449832132220902406271419092528048006360696377044012363701651137685592242588166635152956671082525253406029303871961368664730180777896073151348372569684773985854512077866285621750576936040818457478275362436090566162740000382811837879438391228639561554206037327027506422277340170320761890449149280140762326224027778929626220618433075020591792586173533250564473646473294969062636278336791831124596662649287081701661438089282484658937664721030730092534058894337535679427033422425567692673996950311720122128756653006573596463388146935663308785557226911383969800576026584026006954719294357031941775503537826777473372217573503568961585913160234959026698004122941127350920571214887541035752539259356720980947064003261066226847576171779959729418318648459261093971007067841838901156828749417110224589046606684167099923275288632719762975841271020973129627599761416331065243868230514268934500100287795023206456260614320360643388030858038523304690224062939661574062432279761147497891193784970508739558061619604498680719581913854963028666332052983968914544310265935658899735579364316651983619344994940966961909597032885014136454770664527027753847293637696562822978874992017852844016833167708070914039606047815552295088117785101975743037587428260368631977956315403394749645938616361473067365521282283035003233665841105763155204718345889752225671451481502422312042093713321187348441431156694133658237998430617066122745159261489575856875559479739985657867905367676229525696150101163274741452830759749130421285888956844788839675549640632321137116620749019897873892690749948952464089707055669317313737174236519345010105171236021665425178313253897622805712452915395674499027761089617095980554043565173841980734138619731879034777953880703040445815056941036177930554836369402499575938736141260540949998572526614251637944528828414149996739953629352353809779488180531884377036175328152756177599911674316207406607521514154805777722795348013728479433074654488241695015900363850644112592620147867478402933127338316250124908920033835029499553120205878815920673337716244568683231445627386435399758370639994200266200259464898141644962992990412435261587247693073239530269082218038532841876591900320555071520068944382170475676964230997558729617895880594511197118664059697101116835815198127647122114456916823452322262133181173594466761050856980220008957007184462656270822394727889480295434807236210197487681799550400852736566328709646003945549158367774057772249298581403666115130693182099105655432424876911883510485621678219453688391813652196221683883724792747213356377354675195354346229537968618882915318032959396769472370688014759810468943726745187893709741363342725915355215245459988290489389967460838643116064067449418050277051960689810105694292512876170563238002746901975977745229478756772843662909710377003736186652102832030500525374921190163382764029937110315009229780898590630492382442472983784980838186545286144533019520680916310988639552828935020128875136895130548505230891163550898749933095148013174438985416707487035533702423884072215720804881922978685824339753945831269924259058945066994768206974022193551044076570972487052714510702495616513697531156064578343871700367996556018286200451671570902281563976417101547729204102869761841592570622102052131666085396878293745224592988753266996064038371678570883443953656347217542434079192523725273557335812942227181670034628360014665733488072694846383761826664994908082667185047374295884342870845130752365941700725223078309119082982389895720132554699582144891304206646965546379044444690823628663160610523912517540683033476819858447401109358803842244126013049671090912454140188470117860116351640330672873254654814705830642386385259074233577680006212638934303299275303405615390872708292957789993059631262945064219224240347833415775619946027182852818253354112481975131684568470182786921662093314844335353858749290543073318225099913242451493232747456126138665543424851813996692707331881560906210529401611227366200318388545035186281099632612147623236735437925166458665934277941682134228453256395094822276772485543433594569133540283208846331497879104964527714651649713856564668915814078618340549606418463464817891428555192925875642666072815663624248523758630181537983216911381717791591371285346691832104684062626919115758812893770779192053132725859457674604799089989184094584917260433347772263196649512259241706274123042978402194895491792083810561053138650249268748013529585096752046497565577527959464537732582401773793244170186127498456110320064665199362461074152766749264107665936203264113170547852168096107286521570013861873535305181644195148383440114525024799490610721876324604301985240266278274067887167474558422968682620725929278179931446722282910592097881965275145424725226774020262235667378384734333482458743601807179509017415750729026350914808487475358142041902122348204884735412300744680755539695673959692888120069844877230475057449245742713878050898642531422676724535723937980078937907094603962873934221797769326967854629702840928235710287080817733750411848707170149468928539713480336077412041972759300240893061538263554832146742231490479310716015861463340141989694128137779966082783000739045123574558494912015904483015895486450551823049393531202245487655210276870094319647055142163644301636084602097088418995851614237428280823599755722159624645121525311625619617129256214468509346234287540286191613115290003961838418719146655586130734572526076968654691090788337681092731455791179422684817398384542942241403828787639051067303998825166226768820036097569262909551663890286885366997665003930938177368945706946983607818026617131547553850510442555261966341487819591683114580562634378980135420664786297899091763169644663658580626073652959683200226353282594787587101430776674149043637483181993242268845428143603566954701666657160527814259593800302448726905226973762851180386776845268480253151825259849049833811497105056842236900301537037064883572369730677604864461150143420506184551673422317300858017995702338045885535261756645811225822596356431387810752455962127132799759152382581121770927354084260674926168223828488389309560609729251207072564340857465432243253593268062164665375884846411592375858109555296594316102006631771310684430227504593367937864387147001977360100797291775413496608772593240128998398651271629549117826755490516282577614294074747001104334797533599668152020455205851877495801583358804961923337344246618335761357458864344360388636255883159062219525115063560167331160475607424964433089670185416894944640485744680911812520147537089876094900484141561183029923265034856694342124171089463879051264753090852351823781302027714859780129993076530684352160254609847049366032644546957234492626786499014072269696299721696171189380182073538882840202594600205476527779213391342711373028578389775480004865539389270823607712586328442394306049160168479520974204800004285948550385572808454937003389091622106078352013372277960475706449539516639431591874688808675973453450468628804960024369312582610845305630480060074266949090965172543676479930571182564042697421747125588527997702630096826258042487530114365033916001586793229102727779096952104908608007487075312893418529599540070583129589195850180601943657536912638697710002682774666084522792528266595223101570353388660880944042695211067427868868459624057591873958957362873366279564617370438101343721690219460341365301068206701778517965332185879488497162110796320384662061190788686903791064278371040781636643290617598330370591523793900493853291115420261962701731682876735142902905504333210704149457455822348575971712445237883687597275373498706158822523087535216595213639321629173724282760766622479007609210104236847627672846170205986895426940453725530977901826932562026078716106628344697387224113563799711679907910343495428006339699653858086132976238596090613124722989941765305667015131235633924107199681722210701566707530354053695784960577727168861059374664817841802526171412965277072309830697439050935109203205783938642859875363302493561785774976919914842065517065809381974447269143672490226176679961757655330383021283024995048937667692728596575205455743536001086688481671960957597708460886902525594473970042729609447917828149373032893309875178911693273438290194460466051243042036807619293296329499127121134936939234530292781723389971488471406298774661940317771982273813794871187975107273667022641590577693858800053857128079185434786405741468895022504271045664301521405472196645147243946843637233352706655206252374970392184625400642586049498198351712969464817877667560450713268937363677477611468862120293107938034591670312661179771505888119669918364270486003684838631174814503142497965132002804926782403700408016053078965196260966935474751517394965272881159494692180881515898600229514157166664131931803630131312409063387233724615149167762443839217027786692307518946801719672975248859243022136331462672955304927865851847284907696003238268055290673341919791119004128761661807245975626651875156893755197002534113670307060934842286062547357863125198473290274290241640962392321047848478710612721953985628619295734378386403330518090979246936885707137001093389907212316914319427770149116348016476403464031060358938650704608214364348610852544061928527753710610469679936729463267630016430538163872162057291922420442628112688177402214171857560651537541088615998932570663865234870068380740232229123017409383671405788629680809280998378012886396991956649249245602157140330335726316906623710506649697453005812337661742534821119532288294576763704111866987589693533299440572356642928002746008386375078761532427061452328892439486666581279133468817328052702242280601842265275572990178241219812479783178027333211778516556287960699840654695388780982275214835779256757364782435454771013219973399810534107988302814020582400675020049176864129858221373032670664242690438458198412455656185945656304410523052106689673692221406772796999856966279779592327269088660242491622012419358832725298537788362755337553680009731288742832793713886652956201580049164656222153429467238815139668832540987717525512753063334958643736480426774059426025330512525269453542613291724576538166055935051433369440030076143360840883734913250346573983061109505909269854743473927792309729923741131897482595385174649579595162971603317065833229755610176863091965322273986701629313454839216938773876341064084870668449668508503758381926496999278307913689444333197720561279711044259196904185894719935011835638522721095297777972050465341149035676713544487355473674093679629043810697081766604975132548175759740943938176487883343238038905572459177704722716966070262089179589605885812601579152827319329617668651127849699021025271101661054442742224615185267589685007833261245328457311822595833738875248102297960971841954655041975644150784538731321448879519368288359077082183247103210281364291359691605538175549652937401168490316089731688053643968003566670400854726204536255396225300638738188609942666234672556997432243029284046479310082900900158833884472450523787031580531716525614701391513779087212255968001598907379303021841936327055978648294584567488063342019686830890049653235801350082624545577835269564122007515680422029653717425934461166273907963099130351315761015061427877966554107219713920206284337988804600253397508395292437758850082852805324248088881188070594269276801563500043236912158869468518590139754200537847501663529868555976949876887575230786447046039208454560120816821473697645636065580544940150338092984045548009711299165619054606226953093429657892740737630876183457968169375729892961891893678883087179260728585091413890057922478978113127749562512063308888575540150119029799491265203217980811366035709981875305460391447405291460730876056602063649953327909329096470178007949177745093006206827291274779887775682600607600127664459943138302889150929166614364654515768037919989602793090012319955367709770255272031354246873292675914079140210878822016052983854043327900090378824985030160060081510466733433503300664738973258821951690387724202430798636272084552630672738956557369859337566555162232846941870351947534305796599293955712117395564550439747916894841901223706775560486114702447156068495161308893815345379889095838192946563455063740855912308700363998497119053862051558494676564449678005116413096172908612442266449435700605716774035362758667007830348536977722061723421401149542461029013319705296949326872894399876835003330356153943643910497050933031069189990469982594937755457873492372992377309401476756128201436634273653114684783605876326880731406029935364845617264112277575387560212577404015053348898040725287342877959261528065447772275456949473421760119633859557734543319870997458172897243525283517689547225344361664831956193468399905699485879489069596630029275672311224962277575292576734562797034835106138811845667067377956330312738254721955876000643965217160780421724711267773937413279421712874071701220079212181898793453982312581099190361783307835522894784109236456926724813226941549240167056625551458450014263765368178833086957201483551029215357789425222502029813263722792953453903001234261185824059609464387486416614160427349801841500976328124997208673529921653547452143466702144542545432791806589367649805610834626032487303831385833255529400641220925927044695179803198078826779902996866234348137828258648109678083491164985078197045899400573333122349655701516597570000527278526295027793426632316481798673899559680276818662846878660649635760101904246775232476603367115672698962430986968703061834663932894192489951266140073430931193726758104667774256173028275039796201189355698078191238708801591956883190917627298167270358641068821202488587286512329034605471113181729841408403414642484507731838095046999619941742576730099909808819718237867096085845325665514887584052932824143078194864191982607308499592129925589358189079135720629535908233530051334264718008492053042306860591700604196300162409027319829519844364365816564179888365860066558863347837655411457882794345795381850034299025086555480355041513530096954864110836696098819911945082665817115183679156106991609217791718864951367429631438248733561696233921383924255685565339123402606829294040799136144034099534492204690199754974667518511855967501234486127511347935198697692629689320743019553109494307688240743943196885922769813385448371161800075388520026081211466432956598952927160086272325519429168108128609584568668856989083366848447800624983489119463608634647764001623109869038540108940685200255579855465455063629961249592903875111327171019306664087412396642709257860229756903909253695222650400039822419057491981771479526143137713157148168320572172664599201194533555199390344458375114835632801100784881755638365090340717315991753337796232822466303064429096332252597265798028169829870421275795860448672838458570701248892907637862634388407435345768339097429885230689413877048467766011227818856212106301728054518576085223689041448894995940861351829231848484042508756306489657003536677188119719945536542023724129909481409069391132183548749100918292131590258129899161712305494944744252280324116510534857682734624236865281816866330346977548604301772915027937273824184312730533094416843778675718432508477996058734299096517597086397493807365692950558293542488537785461837723778616174740113848637440170333507607199804966962821377895378073243315674548601765551247973000908507630734387597165151100725438165492979178848434222647798797360828565635468355915626186698978572025167154283101013829700997933201230839709841402981883468173886209823930047747800231937635399885099654776844260621257150353134651702331509612845181239074243167955535316285928884524141219035392924903382667009984853078066834829457463991099811626002681707508729347366843503471312717267891222986062098156153929023171804879315143297212052320782106925013790416301102274269094960042712474048152136635344746265632718885851345116401681644012658545330782477417618084093842873076281356993826645084125588917313512996726464977669209807036817105881707956757585103290652581114887640379115044442174259424034662429501878072689123876043417613984606076531225620675818924101268142779174577470556447779471985726912811075778313216923216910187421601621793196520894082018170480942138721889246709066434218572908174665954093900839387947793766193234276359991178002194592222599482605925688115396705545314299549119572580162614514263235927714549102229528540983190734576497424290440102030364615790808398934184601974869815224792841837004857734904017069869270309405441048931196133026493261579694394841854076867625250341654908572150839441950345599608554868336103005634969379646212583623387303596924120668590485201940144490875870390537332517777764224626876998449907068273497855764028320260282496219594740855702236876354811024572867262855174591449802154227134128308742989739787332612011479214986845367627800206198763402793825229104077085032383424077369250081899422310089793252158557482876194884201038834280546531306666174490613949625403371131946460494907199762914757548961378329001919971039172124131704756948220013507570789754754497491584895271458091404559028796382831021913521852934484487195931281300016185685750022342810131172246434944616927187150740350752212141788595734291185373392859012730335762956024812222214023984273397406311966429008656006350276347282769741179308758530669541212608740915161590120399274371343150593150073162780277049464502681585108890041972485201994414542190128913332539031182895701580712762966215559518085584778426816233437783906807109041787136208327063634082236576273140298016580520198666932688108897670837883283471832318908919931178556658989159769081176337680174733354102723582502311484219814682704887200531009308911209502349052485777170560722918151054945075754560055041594459792355472432745653268536378245943260032560351313031739762625782263076137523624838158130265898988574147593012693124944060247482458074857940903591433773532576395113125940778477659054911075164268255287845633040208997789695691746996930643128118613597334460753153167624074259509236785198312687447430162872735854340676538132407528525881795664196837113815702920836524378444966956523382994122190089758268647439056086943419210559909917571694855693845292781173015837148630142674176932365820411486484255176461761031031489735354649260004402203733117073714065041827729939534256688785632424962861232452658513642324685675042866980586324344588833557199638089871361324122926104293788634227776079225399633241078981512476084643089788472528884450618775442357205830030012422156858095781949798825731332298422064371850530376330319452902564008769521986655826033959060415162492219453432794885842782580303312092196915658133079264117378666733526604949627274970729887047813062524941715188338257339302293529539109658251413089742397905359558565969810229654959988227430697350565085763770469700409204769479947470072120878968791195837390720814924811693912980142643573874746598796765727254225217559446601541207860329499450698432174789710573040337621186899594878080914945799016890493552802037963043430028642757368235958716903331052687414125237176022471724271569005331191948301319375211320295405078400572554832912671896277106046259221577343679808126675583548933796441386143669883376277760353978852407533608052341330764205113676801142732364395644610721210120390210130641055267194206992947823236495797906961899174765235793161949618381132153323958006515409998955286302284335135395735640848772193958017213611144220758110407647008907096854148074903799887543720055196420783523609562665583345395264176505223467831878539706735467708633856061909883792882746911378167881022687395443382554631141697416181377061776657703060168317234417072919432400321478200223710303188912505185524218845136788811644223630666264699781394491750608109102677377990412296823724077151484626864809601403700475472293934729954735283788375846386609642740357331912333733401362250280284067796571622351535975313011364431983282250501500997925533005934033918969701582729164894927294649476371626294687618674865590847722233498133465139203931884647787562191055538539104083205945791549575636631523190764594004709315189467283829886685068702986383533129391266105794741867204932991910614287290053204691069594390889169039281999500466447992535156831402529119977902317533635597058214798082987866391920837288793330779309175497966039036510863974797435086858997813892646606907091769462695819699081774338418578871400552134491104139607239139326476633771637026014650418444326981227259597459778270546193244871054592273237864461471619929158667101284461016050820919848846482584566111382321523238593436133791473003385418129791708766270855221469627024467983454405581176881358023437294489868039729547655504345379925167509281372279383610513804909527947727853280725252539607742753738012809227827067249585480403729039217812854871969841381101634256260498923573652542036347377374319638704090321653431889290231989536854905306008738576282903808703234606108496250291174193702100649339486926753962360052210015776075887449949858407376311302597262065346582871332285187867032289686411621684023472463532680726437872718424064902903238318673252578624485573843726328155512627037774587120890105354851568468035812073798330120892916697202580631247862957725849030756929464219097915247078691577092022871637627832838123457689036744492373476240833117776906179848843860293959299093177604753246183945732976943158708299014678602544533357134984792297313400275382368721465025610189653220835756110070359906030199798175262965649326004182657030128690650637902288625568427787287658115488394349266632287387676826109774834412649011323232506791479978602712084572565233748900183426962095147857243682421979505122292655145261185397235544608392429032972893360444827087996641397687171244763377166267458292471977488985296891804179009642436122889090348050535458990192317691262574292482813661779807289646433345332033004368095725014786201712153608975611053798338143193731695812587659248973801193597302116432101321244480496821692632883824825788427179594402969328749602856597978365895854602380833387086099756837652896744194278170931969453080906691623198284965951089241003843544664053880321992076746377302509676081658512929002995293841267354010473314331096229373832672399712580486831887106805930944951975333894368361594817701462973473099161526318169780791252865738844061640277211722342796322186177180660508281968258453419102820484780446157815918796427514884339397102226397588962618340972924045593256167614818943899769991516333041330391211360834250424850816514986036604480545241528851330310887674513986658605595713483078239327361503619069737101390070356012054888307100120981680607885031391513872725928786380634844882652393771096114660604670452195082182869521528499634499718241519600265709622450194031357511796968392835325207085942705629099572351178837978596095425486884625562082166398043622363116639894763798322064907975809443109943399458378976759653091831358343386897139335557175923708158521742107506771479109526695448647104488369567055443641988870280267545507524977841666862028597162775117666738050839698990482553600255279899551192137758435804728498910566000995578627462057166560858192816925618479070374896036106366967321905258969195941997817253282563833467930672437063918940862615581018235948795097820438269713265958748284184693381750218967749238388329563590406718176779245003551989529006242712786743192470906187330340445104984660162433352587257840983070609901700479068254607120619673058141785964082097092619336816243747406365331996290510268184380354400261554266019664921279304326514424479760801355962354342010157259829121569152880222846116265164193032669179628097337628261242800824177342535926679749891930405642850904507923810676277111950679508816116949455492969775289408475713272041897602790842716029353888500186924756726030644880020395999180680123751640059897932805934635178389954105397983424524904397195446316351028772188568784494106738420278272152255826378084458739323606212343356120193354937309320945049686461775374738261521943790800325746340287794891225090838245724708604461598105748750889143229876809292761858527632530432108683960955267777562957027928793408865940132010691992524925100162162767812956715001370408430395725058853034661491536105748861193248902234250411829396239615607015236467549290119966897215995029550118434490022506717513394806441160900217761385543840547395070049357885863308186466218649755855907096400176106543481390464999509796691928498719728409781439246458897611169234380785058080382229381887774639266735759689819279563170469684926686048799972309620538318590686441127303197107433263323600574243862081576404189164428339662727258864396299129266335195841988773681002966327280104325770193135159852679080862685197198004732577166497673286810070372903323872726785936261614565104390104116181139730463459522464182121652757578835863569001309179368180862177784368326850512776744236693260194697326117123353155491911149661072038737123488571426912057113602251806409789527771233611333636614238270126335168821360027163980494973692573379539053723049785557981371371042488111801900738924974462467275983317133108464903413806056574321407409355408958153446959437308454476975694130802957237465652546888313070391626288729655911989081738049457153095157467708537872398960644407363367970084584035282522495019714426068631441916229768363220729392984608111007902301860657045501462472974001978850190252350096734314285198448111470955287307338221267528377259247003630638164746945874259104822342553356501736503320981973926502819164623554706820221352981683834622581257837795667949566183955365286737720790988257589761555704981962360514098880327445281380634085422020337057590730158811477818375618228679654587506470828691031344276680827301024425306316880694759864146393233383084447911447851713625237703699062972459446848339716856156460356292074485215354105936912846799043235488580137181679467512102218664851131285761858427113592387371800026369206704850728311786747590747290649047356562385030774193122714441367358823520224708099231790177666440053412488484961116319331168575558817153771630983516607315997737287425080224141606064506184998732419630649090065920188124161520502581656287921654262486063765150032498313128146597690343483627548961178148434294989526639009835534446217901493352106192944995172541068515626519542107028858975405137263324730360554147941124183640360693009581139448742884534711122451558825524294266678772661643138187621120370741770472857262780176688305559752006862423547697414182324594798446703052161876064207740103051070881201296776652828155289599805034243719010943525272160093457720240241381952405760414336628100180627752399861827015853432293229608092662847988404538009811428672181188754154908781849928778110391593496157450005272366371346307248329603723847846798518746987559065164297536152729987671924384633813493804821302196097790425773244925905354631636597082796989616744375147424926873736264029343244055296853849109775946573968364512171485840949505671552367589321019555100124493430189450872545115052004174704177961748478473065887730430599758247333396898621667978742494547475826252127248611891604577828382795630152877056747858768741251126273933885712080169270231020498038475361398126622860921096324880981946451809578810213589275098468327627069970203692223625069183393435077728626793842421389506928245068960683816328999175605316608589333287047094701595048136847163694341149708655139210392529401604903666899540307655294696089544743115179701060829380204039425042974243033858574791753097802887251578234443514493243713114786440981302475778512220105110485369253186697550775035680354918489260743199672647197427338993442019604781716655940006044388734672224787232131142710951860823823735834889974680431363916346386934437645684148530726658494303688950989848491810859414978582799760707696325886463340132274339473853944834651028964994681754460802014240041913518619751553868393310287993890595709334990708716424082379002861632471396183441817185701337530586313056112766181153034606091227469072889864747821910121714356275909567363531075222583009474844005261502066107807453649116283490239404510897232270059024926125760331872170443560878936709793677607040550221089408858816915995068562532538704970277628222959626099495601000461395285867618851975084276984349996737839738497750662786572962705760899542548193645697391509499968212023771126572349356600830793551873328533622942607967538193998444045895944036440757384405966096919141137115783496124113319833990708669829157300586620938956677186755852261477260867876870043024395177082990714210500897857188576782347251971057060775567738180522229607247618630222751421577134960500454081708609156906360584347409993035866873877014062438620790734872746665742617511808164109076822354680769763982678962024328710158928413072881818182152416484280172274515383531372047539245178582955251538672917112461367236152474121453923716336475125084392134743217412129795407646080739507324561900367950894866141384787233398153957939435082298409265849407461355760397761883820744168623218960224279578311335546093796073080592329807444713466103136148922044752964825486456398005591195232001014436551981379009226184112069679652357308050756929248907922953727092874200137582476678786632685065009380808415493202283259109938900983489761004822906778109838880206216705769870484722703759158024581736770747018701835475842265216742057923606235349228620058064317476244989463020344496458989045999450990673228982578723201553417983632450243500580612458438222949819686324307439045772993182994331429398662892412237272601793005589901992886192757670942268261693995322182569189058764916881604335051188809620636402921644135239039996273699461173599659226003084971631062237721727373932624175864503395678377989770633536999550920170900838733130099037406441778678684923237766501220216065803123877638581769934310814554272334552338000092259522921199759608141825958008837846060631504263804275834148543068637718057055552444730004276397592474426735046945658649325752428956429998395775389562821707193899502379934595833575022989883514223278484204727071961604419419363102167068646352595101245690669633815084746429892718951465272761974840440112444871005862257792474791952169577537773511854230305704214954603219277408305297052649675287326619641585357409287611653635198284652772395989217720630140167050980715792021120141882448684332132920499249706861660155807711511923393805881406979287867319158165686179012139256661378291154571527051117026008582147376536006095130624521197160612510238424301148091736138266963358555477917009533664408444630372451858258560953717306522776034291600733902899660178142727827060736008009015772149499891091499950903694916983515535711537969944602846372097982783486984013426988530061408890109166883118614356914813439127219550607456358619101192529567627314151295618667325296462123584513565843272438531560410541565997431712156294839247994541720674309724363965286658661997862304806178562339734936945015724649432682286433485986862161754959212954429949875453071465656821400570539728684196247247967974940894028014964520301943646787692247602889299888014817908899237401175267352953277653581261810115607566043815585795109276649967755464709590729359476924086680342916936982303953696036814475438439772426100383644833967585776671265301289615143968371491968122986047147673500613309840979649498397838443094663586478221620399891069283407248946409787432488388447288883558215740264349247236677840932930458798272217183461200679719774475059420494916308820907876941342894082229982608602223965836999453318071136491037872136542859116539338271242690415720006129615114481441909178986099404289295172452717773835017440611261770951362154424896124734833825251859350038595527714417542249037767551582869298697931532012082416408213492467155125101362456221519001791272348828630225012454493854693889446728493644876969327450377127059711460436642642718077973482618692731218508416190512345007544889596956162272659022811828342560810760065317043737373349365795950822425224345608954408127071715743678094663935429458790764487536682071896721292848341200888297021270165259390366801228642917987991222664090479220241335428148488691698131001030833712185483626150285571441711627156991641737348722686138688330771511934458953150706675897540186386776223084163142104696223283212310224413118981471384216390189916153067015810761582571103363790814859971562807296966687139265134808367262966654632818010511235325819263776608904958305117321743081960531442667853945396032604088277768881688007965528282046002625473696082284968262208501355260524211767295862659872183102311384719419967717519673670897302618145057069767221527590724277606761149073582167869603956583222809668404644074891007755681315637590298620563983463025717036576632381260050928477899122221002320019388460962488398314936110433485847958695746814998482601652375237466321582853076490127356335182049807893688717315402978385866030887262024704119780761033062026826027994592095077615973610500094093789429506905034246451335984800225766424834585965040994790674983400427082840462991192571699134002170003039151688042635615287862300699021335893917179774791052209695959555026596674473674493985282387864532870303881222357733495362297719963421719231849084520893000681687218240565267175657129480958107970150405491081201905743976342380013562723912934222838229334308437647240842741597519376937407309760020582038509493849493813457269707977260929736091582383983656060512498193739296024605094703539522595346439613489524673478883622256180580914108089660094793558153953883603243054477534673335756761414808863825063895734809049906579466200996038240825327042687998345297198141280399522383479861556794552149815951448646806452897484787345411395608769619210547456635277689758265308260691885048356168918403916181722586010226634186835843595402324541647036502398289527312487117205254739874782967459346800039935722373151939379746458926028869610593123561657933451712298345332255093670716134282139671134092212639180401169548792535293267215528730049579281282231123682500735604149163057718450769767760347795552486035661653947489290106588509785615613074875824855706558868741452649325739963977870208422773412837211145688373640441924730745624504655210898847519260149266903557469769917763414770174408490217015837680516954063488975847426307386961042795002208217527944237495805072861407010290453258563955793438016892028897081976234613690872353916018019198435889300435173967946761289768092915414674462073093342115821674851647520876919711971561391100068208589893059970573213515822101897995416396099116924465902335503307995106604750236074001021984005347991224579539548339403553147648605309592263014976427713143381424050595753795840824965071883668979475963272558674072409768638497011095052922966429808574491141068691092060940672721152143680462347111381279794822122628136761527236273773222969841323258307659340088940191366583271794276682504838311218068969843775769049818023116098896912128867830032645392115663915556583387051885702858269835987406660690523905161851635285769968474408988361365205030610320776402208737324058076236198778356777395844013298676003945016235048124816655898722147208157041352183988523421554895945879592768660891059666168898400433434647765798064488670336441092280419166024578553128412693415604313181504665435398612335166737164822403480728836474654292869190510625074854540581583822276592239750770314930855004148289697405103052451045908326000505775138533928900640741894092098509573840393810209971395365509613977897909878060281183899281487616036464230208511610952833414843104973888835037853330225782284561113232174865037689541694687791478686223881945864504749027821721180547002599464334338475381332797517929777812110752850464467149287134091381951239070283692078344104197891260468680833919752547806836811554654827727695258339761771008746943486454245114772547149014741593267912346180902008595122246634780718070310539523550455690044036510475547236137300040307032601827301715827273514210696135344910737313338603798938411894692731984627238368903345292876629034573025717441940888940390967557030365005604760704890310357813192156662078259576440814239517914039856678701656821770845858168616989407497152988101716065072250378308279683873475895678773331311864744801927865265364636998245797931378764834766882622282172080109819090815946598941483901093411038725916843760784163582893622749795523479340606967709748753173089295162653341773045724639395439275552539022931130191916084100695189224547167387252189544275049205001805171389187770752712273209749875661357521626000232134992317648748453790855077765872905151769865086616164059525142123021195472117392148597146132436203253326386753858882530898194594780171883489883921258059703709577169272098140799025516716582346858730359743039111986123598951251277008561485938965118617242454896645077470405925467763143178975934578682409770333815916285959167385344506489391735502225814974268914396003854396301944230948095682149526819477319682709727424091860799736873278748950069258126944341601929578007811461221558039000212882497524603227856402440526987801597341732275054611467836406439623211962937962062855056085945258454908440992235799813816046503881174051964335478338584340977537796945709181836604453392913524328265522311793895175154772473086909841915817055167674374672502692201303503391176775773912240618601462172395744398456688131729221128362298903466691852711589549946598935324359410060870797959029018589261987657619765784472814489511912654723329685134686775104788565550155846368826467416243233148453222716401815498098107478827181539841311819924104397989732527247173107069311594169636944372291043250198561572129363105754334171742939064744198407390351070466319274774171217225363109682786974186320469032717873704111317448757182266246723217687379857356640673477406395986776374165414202670553384378709211768623945789168323989872754393299516215374079286869403043372223461619917041709598781268810552943398932153193221228620553409107247036790356768308535745887081311568587658935652449087788114102137131545052999288900172237597167449093948438145016322277145980428242131615462151576920676270250578944114803904693894850910820821736029185770319411734031601508837214593649213816772624156310766561530968074862322485102194703458420582991243564768808663413682040174726891220515201182033706452731912201424271141954409659753108167108973451160011423810972638622136850240919063615880924798641875804665241185058808332423426532182947868336931576972632523582516250556346077401208603721857095764110703819126114334185358942994549289118400151351505422097454802961341589143175003327625449959113986470405988190133551125656171769228793461994621330577611309035076618645170001204283656255070096865289433730452073459626031719403772208373305798908464543013828278941982634636411367224983144240996170991833606299430224235638680006237827943829023540492730239316694569126296860228760900242590158728228987511541400000301025743432968855118155177347976041211213164442900212091306353618737422768176338827992466508831555847521082729146268060213783670554828797077606106811778557160718279265783908115740170077918897464906985197592823440855321376261496783350674906984194446172805487442152284121361004714142960902113693784169875746928458566557267084618641759874398856917479815271619066683078273011461499284737972973705536182861226390872961018732152090595413399142934636036032346385094036765542194629867704360622732313386232974926592839388213075983072197053199663267730745854281102156483740205259183680637487270954406994350035822767046038367450107966584420461904949024354762349766913551788311171801462262978239892644522422912009986024952695522878506098336224834864399590107265256248232597375023893357797132489714368555828479063772611917806131113749890685307787365463009309945094091044972183878613652873063106305771132923663730280796479536168409840472148870793923324807899688147571396013701851917999493999061214251979309283185665506032601193324942468348645451847509729385953111552647393783278977957195119686973051340172766427700807859153497085820406836320039188132498537596632481261541492647529557243181675597796533327387797611481045434570807010367827727056548487808264087264555229230998252796777207763361671763612149346201112210292771577882915681692548613353939868561613111096508958159701182950768229962632144743403264809552634867902308491614764243507206403056719722330096616057733183795263645703923687050776488290344261964839784092956386016899173355093584010874640906986976634880310029090650887760878214151323059972331716868897192172851692670847792331556073331458312715852857707338898595117906402894592079812171782537740487826186032010854500180282722303214009074305947328567217240522468178910903702872914086507328137671219577252463813916458689792349142039944191867711516243308873679208756115596723600358258612689968071001045910701589025060859115265187056331786275026714550863988578123248442225357880711713216232628631399932713029758713578476673204766136590351253607845773844850758258449487966476993572394424917201080016978424456723790959707925798105703557727086884010983126208528603225461942068449536849583241546560702120900022063633194370571029327823047293195625951131336732346997985985463837370256725350492717807990571835126335294237564973665029413186068198292902366300870424769817786836394083770897417268514824989886083613161001065396749747989144600416842512186507182890793019577884683025913389546131628991509517533331069189537399387712659220647866424372342006872447576603735573506748861172822248073892699233064440746335437383756412021917903905464072659732174270569351546722992152742182526747322348581262286474158482553205815244610329980738601867346113536148622211854855893066955665078193971340149719884002016963612933297143827135642815442615796285558160121831789807081283831126581852582298778323127192492345659663362153022622933248871982079479932682854184625963166663361425025398366566671146608074310556555605243032775349891514094354623545832612765314998975681188634232757767772150958757601218631847891250045572166952555417846166715514394130875580381938848768081955365150846722732282509431344119917289917779814985729300674771458677822943568655710769459374915572192627031257966446583025412567724749729632541108632388287365831435679181971926339134653967829794182631648614714462086670432107623551401806949913592429386484728791243543497031010608043868794171731658713309651934451452779005194109200731747011672504756548035371337334427803353695424132762491052163571248359323534195063026799645522345348501086190865783742475808748654843511748419286289946961401835028378802589001351196522817362290526155405000978133055460958015760890361338431404137672172308198549333806375627671320360444086913689826285067402040260692665085545232371550941017291794956646265101972006907569836365899848220844516309965978565635865246274026460147489492139945440956191379682043749541154600104858521987328643252991834435862428435138327637326322424718515279889404224637856763971180363754827167509078834914106144702674777825178051122802506697713748478300286076669794910450741041331985817007088275457171363721896218259299481526330442022269422117724539304345625565370129987784462781466158658700779124908763103742288247045266550072471013743462499653699600866137254955568029337148547984843336886475685582250120788169628111186739825979845715339794147653227851704245047525691633056781527505254199921167355855126618471177517646932137517656999701016917494688592087116523773899952181159711459623363688288791586923112564590294286806745643709992125740833074192364304740127349303534019299346072434422172753557728759232556205118483166820997467194386264475438893317681287466155660542396095890065695023744832957769623654198678430792549043345071366617531308359458271909453767162179082636628749255439119823763141366900340872521112003995225778293424448673107036032379435377743612545282853693061684681042734064683404412446403514045253875647556429954100000198494141806234257152875657500641353962558020170738784896473103600674927860250497688574092128764854697020106045683652692191827391059431652946628063074049468379898011914190058186721546467205448022360805105580899862394589285113623052981926129419148900982497634757251764362304108202679163841132775417090827144651950768903471035583724452819924114597930576730541268935331071291563243397318226940449960215047706454706947689978723954976949007845913775430465993051856413323494269282795679759464799842946899358154426610454055601624576417592792951944584753824778144187704070047111964437798321945270965324700775673758882589175983130334793738183189988214492062883723780011559710438041542421581302358682101491812159291800487058799894678159272718405107398091001965523790523632482806254347751982076191015010421354643814696059840351687753245632513140363993874549240865705747657883488635042309892364560767869851607719576128456354962136170015402142411902071786560699507532595394703476522366995417909038765847184473364966084044718705617580189530798387191522931329905021604641000511026788012664962976752788044910945913509852668105823054838928983256887130593635215417894397026474413314247450303836996314695436990781420915572875081121305814798808352815516673708232921717659957908193373043160238175416722840015141218552757314545461768560864362155752511474395645787856631973697544151500954145923937493400562761855108352792630244667822258068760873870213534375433613859904722533118354660221978140968727305924597858971947715901173789765605046442983933614794775487334064394490873131252501553226255053161022669951849001880544725077746124062685887625896534872370373007854542129356301364736225537457831305439461045096149959139889600913574381896184215533248713150301287007426889559414331346239611770725397699308755112849447517951566440468849775313179749874551540770978521619339124774661103228106621198260806965835233920463626993535152559745435882301384522929278848962773567011840846830314781598158035057787612885448441404076798301904056632066318771008128040529793027025901900021533080214780758191218570329973509600518283323974365426239025721012958100818605838118921485323947654218371294661278597526523740841575401139405530763437973963132036020622370471061197661380826545763218385336592761452532095841791497571960766693136947398560042460060074463824616898290885737302740554317145133061288301985849603304306787597234800738839556365159662659147630746234989703220675771267939962407901954439841983052716711063131495945515136704334223725526415690408521450493402142436347786070807635768512653591951343243085839418068999192169471826254439242073119476812124955278418028165974073059564667341544471976280832734841998940202528547074109613754253308578624714997358228392198813217687592572682426410647458023182962805465218786591993842656504906087132147619189138486652133913122205349061201291348370179300591441139570549478766663760864704168456153663423045571560211907402820421991772710803957388494913398676673143415242539935441983026762344471741739551948831545291744425521335566322871142101327602707383038132787631063367342134617324826680534588103597037266203351629513629152808529912535585997301338573307154245262194471063817786461761589699704941740151991745054318714251978745083579708516577878577091886645625578002151626913164717672229861100341876229803598245571160345972819065387053778340531750349592617187110887286328666000262520327498407420548380745147233760330184960914770159909336462952064195604909074739807836655103035036046869450917599334303920569325392692700937827519999589100445121045809064372575224706765380634983187783195853094165584002894733002597126259175584771172129558354723477508888708139158970737282232798594451435093665011395408467180863484708170877479109610163476907103310268270968483427933862654032899057607428889251514869860664303135039681446000302868409513282507913239213612684400632348846366900182915337648471761490498377036754618611154919201901670878498476084348308049553927322151178165605062865718710559479635098523793827720540444720989110934193811068917259411194891883930634479744543565547103645817276622140939525914964653577737427823433662682591419152433457554168988208086053124131955193236902364842179443021180493216726173039153549548469943621732452918618075048849089388134999614815668661014374734557587711801700557218236166743425545234125052885142306719715031969470245398528143243898818987621310392934682974246772772798155447806254272024586660242112936300528275546327266012894283025576683495563340210515690096502107397328866857363171900546131860242278876046577583137426820581563999473012110697912353637917182456863243874089699485222612145220289160613138325912396052587286803156932897583535337354525623094319046537796128963942395822713879422326964670532157664611601226836894596755407101135487100081336772607523416462767279956354993001754284403841587224196156769017423060227873291112428953506668765910879956469828027524971529574378278763456250785230129415564134069163249475939287754868084582612843961576369786797598369650480539808669348207202991282517713813957911831832799536812591089706763793099521848074452740757851739955332622842717236241552322975536666123521754108947788666979314126505798495516766780768206735807597069832694230849586822420544703258485895791430699502194021812689798053793628752010403249188992258790319341341119401679308263150459893041066366576385608448309453043238232884548784471829149099899137148308914426994190301871296586271723529705219125563872824531532009869952969398603298509181287293730493155535409640348143567761398176848343371201008322376072236274104865460771482933938179458700449110752822430688239761686770212314249886256294510845939219921764134573971805229252154467678217654662736825309426107186084553358665551903424632323906765578970766051072022169715013876180543204026923914435893224733191614528853447969783151209030592133283989268851788250623364706739505679030056881458498274865932381544401195809733901977943554775568023346366452133875902064630242795635465753705848614252840160441208906459075647101609757516312629665374194436840890310153655743271465831931776970807267460436960742577479423818577037284511849950154233702527072334999384933810587958668165259167316437252815416309853901430414452010754627922161522426672198065045881983013677481880593047119603169903011191307850800995914434665457247543806336825297794284465683445899909535159246451622579613462890156317770659591154655674755614234560839936514628615386466349402310405577505240950948026724409928869233183117151663610383358021568283783907632131937855742018842970071985625027619824359759806007548167506492473028036016429364043215814297657306233957248945119805826760001602290440595895778095720077394439574763560234462538508186090910755762222623159137700927960719075592282321280292612254885015289230521889403711006752017318911544385972067378035557256645948439040502181294320057366435469855567527582204152645718763894321434707308903833047073349126760697048142477453344635841629369444020541211454377617403134105772621434171778476197130811189950270726162360740394955534392111906342962103983087513079883999427422968109858723243612474799344979782428515402572367032186145580511823872479095429156149642930857528865434856080128163261013004097600831185782249242394040144328348384701170489202413717785983331320276996899525886631667132646734451727201841428433716812356808560059522584151288560480674484705903040883986153546537906410835753198419950392462382937016087895659499133926902613351953820289384761203420023998681113999227094004471689660183574556916155626841047680116969658025837246161585453888515993794854191250804260523617953641187949764712233918716624927083319315433833260691506908876300486125833277447522347201257055540164680992139844174539432284137795992346031981511614350519602367347354279902535829666283626224220533296105461880627298711830326518897701195113103723694801442470107758061449128087878131431467054677384404812072408872268089463589073923517963964549575330338722392585926286414397103952419711868605775022869412443965776918869434723226002137925950800889641763652825443826388738516135023682220635242690747340929859263288409144949458329618061958029023601848582926526886330618074294541866002381488912076245707229704567809579697077689343730754950157387741754105806593885562299737689258041582617995576556545867574792398061201303730364429220925863507183056201728899349904615006390805110397297113070185877917512187166985127944934193728258650538021548141944693245987182045883172342951422939108276570897059341721299364166433869744591591181770989054753876393691758808888125999715745430278970365147169479624894825774894093848421626269460945391400020305849332413925753303881877732706651994745413862460516872686511929559060903556085949175262828320860941420933885413378596202268432514830670581709754136885667718886185863574089333137082219080619961461798593853576598424634648755361644399988033600648487478284331101446311852148660916516571357662169369165924465037602648855818930939569701415212680654260351016536950533131379798732410782971418762631118924751944366438017279190471699010612997436238092299174792775070155651805122317037797955794411830031313973199405810053770794927805688042683358562762733564055319092456989758367992265351938502694580543490145633421650046560759986738278489536070028796632656687464873155977082807384007701778449451314594821133675600093730001889259910312615380822845415162665178510511463463863611553125820570720520490552933752967970510093099926877498459545683822351815024940164570001490302569141743752168116547175462147635189473296373341780995168405001015597636356727140996292184299073826615759168214543326779981692899894124288407016343285717341153723985833101771053135904134975258107968524412232303686465681982922700704582575923478798601243192383963413655126726702939094074179695591467774032664771936970600670747529608749503087892395164492276819794304217501987254269540340577285240593177786006423253608956663140158574392036591294781926534046214008880600277076598529071608861499266311091933677890644001252736471361366581736919412243113452524191343610184596168533203500723131617063645854012283207972755107252168599212440174673751940560642889034157068115487450898085761490778604574828385191474113531457949736162322301324970640175687030520455751738689308139875187131105481598249787736252533066014224397884909310707808586393620219972552231581644821575169031475900388865844141331732764176780914368556920153567057869509851852608031490850920846212663360154989572931812440740585461875668793228224505721485099394867686916349802376346263875219911235717492674499276518915152309544146285982374299991491275168585628043570951931361692595703853555553923015096324715514948847372973687199773030403490168703672364101955309572941426173761923171475059779877697722845389741874618703738360059205757572871991411442697748497378554457266472385950256725433261774007349428580331371788826448433866400611226869412161616166867623720591066819486968927698500527295923365677382992911847226252462983239483108625566713976550701028353127085740445466147824253756829893700097819464016400913511159873115116129761215779864833845174195327958574001921450718052537788163999302046860026344678483992911809378296618700585339965944909082592721631283181723285173899527633287446538362226946635871052277635780028457378904766660298701273257078865230450366750613563682232727868056834418055658096718644502555792320376739525940440273359929673184543779793745465160552236804800878993124954698006268698422088455691728664897365687103661533979188413045045635867315485869225848547774706707862351643572783004822307226686920860735093429378506760439927642059081211117547865386029541995879573733946052771687025161455719850160569836903847914854325954880325531367250971170870626027666994347595981936884230174079537246653962087202092409810900574526579608155316930273838543193177917091368717337539022453488242850628979527302486778773859228564227583231835948207413762581389910405083186143364003900372104914205998686900743618600037251263876719788299543656171959154499621822832882302597335738841597506482968264032419008028894895884740581676081871514145346917998512644871988919056766624642113417500784754309209885091142309600539639323152755307491972770794389102223719262526996969237801497714770072219153562271938317757046302792769378673844129637895540092690777737530181252780100207652911558550760047210670322806841715927309854668335682326142478378125332054191122832945317567579461315234834078906934891470328775667355701082343460345731716193249930958400848033364859293823095114219977919085837432928221582277226562799449774700328278823561294973298661457278891805369471527994577432943971872784835971469441850949187767601002856972678789020507977476072364759091549377745220775957346551687923717562942601992419541744818027453454338722126817237402374389101835349615200005454998850105364035640074488160933952684315580138893521947652141686673912776752606127736424232103645359616081837965677013137229498742929801410493715490665285133577304471463153866066970795362346476696545828533639669798006601656243274406496251517764539733772245482631857305519835746437915117072786345193757170605062223362999425126813054957231208201801566172198501218114252369192783146599947666587837763721262253098828760197115142051447013364011945662240733827226669723480023815893947848159475121460758954166892970904562058383366934327097292373238101038406013422197758794370256901522337057250684501259665204515687604372448855425416378362494944154058231765616339190984527134256237255550060302957213795185118501669338802063186160065350859924927194673210178886034272352323673501615871156606603730373384369603818637542140170078021397875004108405837551124447952616145561699550003734377183618163603750627159951944965672831492844482274085707549983597664847697276383041905408580121462679062423596692015243970164077404973646006230025137225952228584531190574919518675629379794650181795117681780966982917842939247789028790936271030942265466894382263193569691548987111717679889381253032016864648716722358507505990683742272347453914396349451736685815077392102312648767479132051183419800026203517870362462072979388055721114163415521653260655647539943289037855276883602762428654859931014585204575121189650341746526453636794591610671429910317846073800905565741127133645784336555755369612629499280649991994813886985531775161479561314740499622458519502627805561903609225457465798511721682661881690351241548690693571147434823159233951385130076539246235619051300865524515296173454321485009786998187658264292720292907046284688173592550214234573696357368274539210679025534692407185504390659543340294994589886894711254888317851986477583892273340339080336265380214778502159944407593178747445890867956273721298623626615870805974951309567049391528833781809609853958779010622848696236585115744130488702460894960744226826176133589930479620795752616839806006689012248204967064399832548535100857001149732001292622156926446817639454462216713032447398268318438282559432730795727247496318144977705231981350944702020203380657144366077160121912876646658265537793802732601301781234707192696602596233499801666305779469683030132319171500588911699302214394813970058238611244027413571558208726489989724068064612125622847479878466806318603780694683017343253777154671085441974441561125845582410158036324566616965418501206511373949263988279110109448516046452930701669258304070327558767374886975321968504217459594499458071397240170442002692163606957482948302007210958475951495607079518234444826614535524511661668229934579845239847250726153792092966918724811031488670806647151678252915782210152475597145638713985215194880646614054445324802650706311310967838262788589723705075947789280257574650180928364398720585446325686406433915779494554444850326178352220431732923108787637955194346016511070922805964700490897814724275475807636816129385239278128713197310385740720722436755369066141611121789272223361715695719770772490047620204922720840168680996850368529134351801152210289426221417753748539778466095498198329427041763918567490251771292589345255876464958347046920124171028132105565318942583608388469367409290146793425850903858167371489631411897935270201736690767217319787708991327857811410113461040496501976473701811191121831003623328714781895945535063682933965187563586267357087074959986289591365343208895225100618772776591726704267119397732395193817276329354063551292465216338374493068897339423738077554080383603734209938064470460015818436829651227874670505166819780922620346304986187419879957691287084108692024982100934166132800257168734165527816260970161037912053211806592894339519830800762319239042488652676097993740476520004521349516370992313695030148748168611900552785200055049257695968655884698820625071837930678411092436675513095338294284114158517555596216828677193594727826599910239795140328912122752135335249748656005657280346351195731979841101115619470831465765586612784209123545172030146594269597357606256701134951274762821686311716447795888326196699162041722987285361116882380893732479576547084090787986341187066512042013484045356899360647622597686144865636339913672508310193015404686595283080408117213342530408920480433359401252645129110200790846280413881239779283360630126068736298026148054999216887935611716010690764665705562491946696415554275459800767614862517929763903104856667937065021560156329689010256714107602059062932281957691643329004225447479845818565055997943007138700605817536864319665331393997104923896382302246897366630465673753741753732953654442589995876228373654541984171209499866611615839327633369080093134561391337230369527680248051037385648417938262139881718000578742485184381014744761950995340476074164837472260437280544026903609570706491390712855354123081700401544087750448631581962596528893714754454377182934460912590021824380775559960825467134817135850086426787335557353063727335555983508244246858002569887939386674042459573574057927744753830163388162486885125472832639970990558804739327543129468554203676446041693470520524583244299277982386850844042498627849677833444378668263243563406466384237994871128126049848624289263017060983172459677310305875371591386235679927231293305009319520800955183027316997202368104365019397352508813518834891503107612604802676692685277413408071875453508751212463204662160974501317271084300604704750077574407143775658313483826222526307897666126073790209646599384349576013644759260457118496482486543676235714062355643866730881267395654729477292934951480949389366103253398740261618656264284139823171344375416217199860633888029309160251885615878908527838264621650943397769427270756845630699652496252684791857202091445076074350829131373907394829365623611309705961476573292173537767463049612642715136315728839545023302229663008196201767484632379384383716543475621934393394246617304740737316949205006271936155576436478475064349958521843561333510285362899855926571014758058829851366604654743425463926993618942765877953027489607729513130588734651362600359960247050691395249536965808448849608598613201566481746553493865084014737858381657981890013664430304183463922259438697496909347171120578104358636760818696312184521781841253205035592677577482733115743182669181982634875666089183447274993581150108847538687071697545194544992167985757912924202312424325376671669523437708850669919602089143666446047505865269615378186834698801392061139616742420580085251305477090082886457940969970314102735553299770429567893777323677874706177497216232256081529092626784920786511580851072707180859284166867466681291824622465166275157337942581962975049058575581424928025958995486753737090232856062867534958392086111890593282712261768316758108548127875721765702368487264671876119506305366098497335657286493661820051844612217679963368503084742639010050032892451972364903589005843936348066708793182380522478626532731553754996516970830080768569726431657706945243015242670312976562285377729396085210678046220455180588031794330387737131924060734349020153216028563427025464860482008354892309524423487664416636218261390728984378249038277317607185311388753913234585507100937310641490329122102753721768440651236653542970369456831667211935488109067892525096634410142959899352082783232373370755975080494157349034603827723102222262834903679636601389143420592449652475680753626673389377229588407896667273190522360510975311368611217108665945442652574162363752322224791428365996507449236302449515711015180293691240878689175739704601297843871369732184004668809347618563726779488483539552557937770805610340607165741735914841200502217050620058525340008517097306860627477918210832457722823257866012615392131059574010574039409072149948757758951114981079735710814241459062324974524044301693763734636648277504493259352035450401662796108745319458315378000432290654952668905341847816064581040575553527488059627181823674054243115202796394508689434565194195738196912953991829988230703462536560358303096069218544051431224000007781965646320302186202722709171159230975541132300337824320940699961378358027214283454581771884786423661895018876368521939580772596204151051301570840587879495662447026242683838375011329318385965060710802251337967385073810150475786490009564826268256533374179731726601266459579809648974193849355215697284273433914076782094628835010281388785507207997286126671351925389746438587615618815679467161919564384632836094145994649476115493910797432604836701963571774878802248961250517781078114329623059970778755952438552943907252931149999134161660564364771279925718806392800681135523436866106896450045596087726111654098819441568587767466740318722919774191284843412297740697711193805165001645787565985478108612563400098958404347709696166285550654254802054046986841572661321547069719080449034727256236786673349966265086919235234495402069466424916417013081513468066785015618363385187237564806067095506994989764488413012432739943018632107620553639218323449301093095174468905634759870139997737664425550592049084049406646900437999055835456716067318728734702838875260914570189269688870763948680141540425483729927018220635723026191791596160711680740003854843301973941701646818797096354877952222658615642451203625987213466818820323481394038075236757734743184163555294061118221162780889491197502716910930327932771888230586381712244794003282904630750016699237605221595486995618502299888818004463894597988523110250500869841535381083050752915764980072467148912996849519483854852099892263766624763649717254883009255544377235835640017970183125184159895328043697096301640203467595647285281524717494803335963684314622194721407705796998403262049877321534330064377200940914117833394461274740033634015192881467304402364339386529797361890446602026955026648747073563001819510466124594976647196273872168409011533362272246157324404641252965723658195076255991753686610445194830604112588265107914735730927988365885080956421122023547014171979859869501401316096126559383145816386754065642351144721816466130010827453733864267183951932967261744601463360079359908268486621713813040713509977071490518483194774868942585728443567468516928856497812012502265634354434382942453234069562484952603891160775211139800323545972603049739591679400180566721208185579000299608994416659850261600883615123686392509233606597362485048828984493455493814065433401029639077975989568208489461814730833513050914113032662715213584984975149547327259154309020606526542111116313693320206102156872270636177267438919470733954789743594223222615369035357805082093583282930141820720689044158372644009064605255889072723455863640217380925291545366609757334082128358861065320386004102288809986590599063617129267132392472008602032959187872524040074506471626560967480471015676064541068916612608184237785500815370063422108202778998913252587912324347570586580800372170954277865131433519145641698608643671572937395234486117606069783619191114904740808623328546915092456318113671493396183410422782361983700863940665191024979557633843392766009637934262577634314489012100926596211714856539903830055910792971040788346820226646297918153658247181838662066217945471000338137443189652505875463899911328704741320371892337984836479501134493339166172641941374274728317296201726443526014629689341607056213436564854472991413180452118673250609398039453439685440205900934588150237861976059604220356342250165770535443354025000940053526168854667923697311664433156155252540465689539798128377729214642609702182049374187346880448773809234173193825477337516412134219954295218390205872013963859885223309833086615517094254942335853192998183108428855032006839712602390899492669195303517765067269125069649397699631484959140049859256611849891348691255712373987860652964139318494702654055335145823101713665619979559821184605893300299503569755239691146755333205418172962812324006052406401831346875774354819835077505131268338233626854198641699523958803773710654258345001888708702595924436000455145171824859724683081482370673356499347470134863995447787285952513033396225766157831697401342801771127684353292041493054245797105535124063837002618952016913581401948000776469245859323105050548327590088117287834724276215769280879369292614582227341474345613149545360086795328914524833025799324639656555673267296702883863281888091852584050146554558665443831339118753911712846295539384013226665413033962978587352997879806618965028646411680189407150219424948359195395457706104656146110777343984006098448685975148660728836016927818350505968782851730647741340372832522053869563940025489172891374443952763067965197225495561526506548018979480873050300668120226377726340554788351917385378609178145437582641414294374376572712863701057059279808213970494845135721389977263547168874988462324942005224921337731222398921734548937270790957852509941888152713737126403403055072749127321430520420253185329783523655005601876403284555283907094555083581531055235873668529235504007045063146310427661946888119387586511690049742102941739768224158667262175082325537815705328230355482776801837889072514185959652076708498852221711272917879698464003269540695667446700997867540559378588030543500860189835633634234331310369357297568141676612973856043431862859172215709697306972781939526255207851606293674872008448928822752126471080794859909584097180625001323163431632190778804588515419322334415922422459365508003093159494350414024372163758038469655757408509897999434433286623457869689604072515542782731485920231850124294829594540877802781996988653391038072399772055570870702234917792359902299392894569448978335476956322120701383890373960222841570576289450747084751438183791626734257649570681365427869616352240008030956766825283364559303100097983218345566635808796099967448149680439595700856093283392770226313506733267703764854159824788541291287705980953807198381111524461471573996701852346107540939384335905123656175957364029114133659282142628626409922803765034986854494002110729251019339670819669606766212700836103072581721902648456700638190270269079066855811305787436729919249112047810820777986140131256798180834033674221317633375598954945471533106927477789823727012050529061881257754130986565165449608211747541599200260311814054368174848356205861218378521908873147493899541802766925892642936688901273352906125057029864508353550190176844123442416632267838808391128178476118004623929472873091984254563829511771431675322825609036187181136740580769496836022042487718164134936085137023549053747319854374881677310825865737698604456773474876215550079544486010420387585423018866611753718149784958556938211507088235283312578198338300037115732365433292561842956747049807277937920346002620276827533214883327533817011936922982011565152915734279359600415515256940307062631023085191763133774788637498373980741393638256496922653284192604509667703209365718403472172241343640489002429048171916208639553265927534046278732879718584220937552173821400646641509518325609997046855410852512302543173676966852639148390372859217889865085647870024625911185637203541287392522248833576587835886353516874059601235581177703472657205907502029880388753328270193345469110341690556974112840749146359221999574610823349915307022201719542929491349731318617054970834990013102854627613103807940927267655471380620334988823420768084393930716680212453752099101946356485720149031950995409100615212269255096578410970000949043427817870146308693577594384242884202401079440438848288361042172886752055160694551025058216897042786391608271055099968544757198101659162298011062093539058162165839894028020934593352714520840249328109195762102652476349607399983848367807674324010439622749424159348833261646453592729694168551125329990997256892767706134225216627941981444890387942138017458473336793855103528800213970332536114519584881327386728448091456151906491893548144884187001997101299543019873749306516458745968703359764842988323822745493191841825141294222217050405082307195338755481404372638752798523697694897754949271288846684927617915906968303762204442511685551773663788646445352845910650642508596492794896377387469485713301800882927723702557381903551451532868816172499106877145634256965070256696047630646966771546901369176890160319154261477298525962981562042683167910784002242205194730555599424295465783852146644111029974405097740558400694648958053100028792247023135855425092733246651252159707340174794568301888739441589906379584360969325098327217046000517996247265856501448685049293585463271561480999170773359697130862838820081494430179039062743171039299206479330895811057716289601565340389714176656887296121985253219365258308506723877147018894471470367361089400831534867984250309304140029005895199510957942864821194801680179956686780498141388794559636825777070645608799424644706800536662568067351316495980262919828529830913611944610844891915591173915380715218146985932725892698683194228615422587420694948914444756108585831808870469634750633624412299715433863051876591591773517837505434437215289716201521148752113866629405904645998578265939493554249566752766882336482882238418639805248090635686053197546397683700342289021630211220282956049991759210454056385402153296685749218606520301096982918935171991002843694545496538082272942807105755799692407049446792071824419155010189963931199868174941120292638199884110085006767176602471049726253387056553943144950219525599599166403108695135114237667987526585402399477903451569697365329618811874250204599573897640899652926686117655777955572139613577271515994720688783976188028580589026052535350090253086747352029953092434909447997268268513901948877701303866075089270985441607595914081738749151161276038399587084181889489074004330107667823345139048847070406769969897885402159301527085780654148482069072216392026139711516783109658042556138800229435476175902060595005429459995263898543401436474700532555758352822947410667658117893897986997417480830172191615856637726658553384490507801098531778899003596443549171228441248885906870835678495551304895471541439198587096571007593081693708355174178940778202720830118086828550373038905363236140920799889769931343317686249604044566784223408146647017208653557733899556743936178101581256440053213883306649956293232568270801770361500678146250802389341678072095062692020361504864211754701257191681788866775780020579181006596821069177901373477826547788645229323693083730917537942495209225505507342389329829844208729861527685112158789679501723310166683811387789780663250313930603023472544301759241392824633399556773579125798967769850486685411720286975232747212517221687683954770904225979872729607791252247635604185830984243644695841228377758908837475110564491738316531029702042802808087731440907859991689957970005670311774953825459505740561770484985979545724541505541895067093436932037799268432166866416994561587357308654324142698973190163059332334424652625632818650497737961154946406817180673643185084268165127369358285277254678359950035082798240035325264461789077610036470785651567597482928544678744637110483543307631204503204894069369190347002246056058736051563929474796890578976636822131962823292226044752094288446634079495489818408356092449449180861650119771933143836417098066315909642663182688362103522766775660657579962347311453284743849650344662750395327415448435575787905573729909755559549189607798607193205100776521477043783313204084238048715248675306830776424681230267057018605237087355212852094190510012408655288039247748000625184297606680997806330656143639001384013863876958069247314367542441821018545904920000903643536276736075933776568212381206372445638080371492133301765486254142006818382784853884106154763078923254502960282450812447740475835378058905872501455990106870877405427667294049159589848665457888929989557402196015922778707127954848076252118915409612618796875016276092202194216739136973997105043067294411808854740885934265142098680718343888386910668712264481561756214998495762448778709356290979968607921374378463483927406585441126564937871979897495743117766389951590531584911871217462549080898542075402886575197812442396713790398946427053697960450086235654340109900939850568625087180330786616638864348763498683926575834114472508431878021867160846163245402489789775454629027547631247649970724263562396292080214760019704723281049381691310847610710270756993894422759429834925898573473084635772182112202856310430419743306890712405880061431635829334514453378984063720849946341017430957093914302832103046003724645817796092469491945948862955538822491480273407701736586373761315407545695149586509049616582864679900875316087155852988639075223352435915344018004244638664909397110612539048285901305408984229490032091081324223843204864528111907929537934844687504448319088087543648361102012354495220261715309711018288129448126666042788672105525524757762741550336687234928556025743804862081895068702935514947682399157143669024211669053454431675191750939721246335271525868216575193891436983973999172147570731450264191247766804546064856015694988622361036066824730025541363434628244390878468257910313237061683081869225515134201892647391784023580810757877559059836490179911914830103268294935881529573568117851789158512302251176938590473527249327804410792226160884796905917734190909796622956528267028938355475434666473250728066950715499400491582933334325760518312028493805616641439962378765164655849062406217532676296875592689710030732198277467245389202939342656869825548016684995172051365894182673493242826748710566428609673480994480562689215519440623234329257050633891232435364117720171605827659979839947825293666643449613907339374279443815089305652371225830000944987068405700271478287128094848159672338730725159672256963527907116753806934540560377103553069445212169070153178011491931413250499713552082202356943759784624342722712420575405022029212132428364658081478669144099473783823830164752553122025795362770213534752223545552086212264061518670527007159304036148809285616418943978096943638437063770646669027175076658888940792499125012275695455414876589004677291555764739453560181816049379565019335894334358656278357448083000545208126253413272319875312648856127869316227826419059936855837929740846801078691551539213847099039091542859829012167887322803581527476928868498919912847993052007458682045352316853298600773185054681848380129470648793369978177156708838303714120616755652956906958147436830245722241499889497760772942501717993725246142711530668619212563934212025526507607218547676501832647858549030044533226584684545627971141422085331055782919910502383514721160532345537313003075482715429972925525953615525135265577135571432078695464219528309373175639418032769998600581023933696309133545691257576197153068852407195140712733394078210477434996118240972881919249828352086957162755059912592546954766846306376260004096572350882942153456711328335730817371700363781964933889171099442038612404971925093588007703900884938977152548378935057060786372657217388493578886294015470076200839303824079424354130385601322065146940968727927576948986677414501694084873805072297126265295435428594852745278794672575796723024588776113242476786494133441309671444840997643226976458380418557235805750499700427110781043543409640908501123114781938074387545011948118920510942877826970214320355852237990037040767175224802079278026511889114332069640959019341782623474594842791694841601093691740529020163220816720276176375742802455011035546628005440872784727825591730487009206151302696038615907003145106998297963804611242264179294268004941378392486282140442527830827159704750531830708238068668022437270787253641388612040371760933187857964097697106583197546246074438397026660782417693165137347238142022865973665430829862388728778489513183481455120137488793122121892304233590502183504692177111735282556785088778823819011972065672350349576333972461808582898939574800120073201455887634458371969785594080872446293279681147617671986816018534794135139003071549846356337970567561045011763000889969324274240614400871239159639047627728650344778561667302146809886892769723554037462523040204497382277201748127261331722527032842338881859714580228356149544119692748487006780894607530926323783746732705750224500478952147442713533584976128550337821400916610837480619962068238088350210730658911756257507972755900671717354728008438980801894723809963736622249012357261795961371203271223820918544898523439143412413269477318272359735494224849292529261349978051819972056180315115568464107560885565544346970081092084804336346562645954522426775363814648708420674897138469398726507775661296472112824311999109424282618031343072500043391328197797388897063633222793231583119411042077533872883464149693483689379824731197698222959529350176263209074469948975981210407147543520001279063475609447570604999046355746658775264507981657600759375520794632221023128916506012460587134106898550984365563882240789507030591445822544634969406265034056216545737888785485215067129542292190820628080858517930846773804092678962250182712734098790484731365535446275472273669424067019562467411160037827125823539742240393652268347967625058793293242731937480622586490790656220736571497086534718826211362940092464380093620782328741100854727449122294188868708498801441559401659822061569760238864109625378822628162501112034603396795602725122464061939982920804537768845230874850371530379589525970770217320735372399758654778284015685970103264305630559208575994294460494633582850798188964479565039441351535909838900574528323188817376081145288762872357722486344619220677558755207278026501811717143674647439420823850135798678437166226489472016140238855086974706377787918242715731681952753294096308244788319278247703590233435597622489171286341699150586746171409655250326783405137939741281778837875041061829661634125382421478939150926828775820780114295014873320711147907976378523102747752216175990337659503521057227253717333160880576999275589436193376091401375715550571226595354434816013451621821459062016152532628891100404257727394239203374946969087192796213701829381501777316870843245963988606286167774092523386079658817737394460287378109128225433455000427231949637112597418897851706268061630163699377930310136613320674819705269630936926979538589897151122432942088744193881407990347692223629216751060634435563162401663783251943039054443164483076940087458506247050021571485994634189134913188841666673468758346376990501834857869809655416591057937062290373674761313941410759318882928266341171030265235256092264931167046272053377953342707921351334464022027095088053880964193338095898529055901657798748216941627526012713067087365628613819872813067836274173462000611024193189819534716316692328005997136608851127372310278652401702600484663222779260269453265296187211912562278392543153901804011324586304034414937687198965241090554521882735910464621062962777674390118523247760828847924130256806100577144070275233617413787719435421666587408228954502355481275618365082000065960344395533264550381621825231909705672758991144304275973043455961361237608971404249147029010467831276672264164971854490059381402489669007337034395795354207453604190780226135895144907365985013151511691996263862542183950546035726674661878227195474636581791175886720466817290381252685926719198635344264699231311768106320680560209626501169197562398468299614411044932166516775381479066957470622051472640735129682960345349285594306251356252748356154970704378253161789930383184574352449500068017516423418690530363199157538670076525056421549268172140821609213795069327279785880611810474237626164707445964103690806821176655421547678145303694987301277483608901229037608270874732569329511740999500552501108253697759006710492725487528822615380044073728150218397516529122810629057807443172219018078219830307123494715309954678397561866662296449308073766013651132238438472166267054937071813126167287864906943122969337959098437299512421719585939185268684822758482383462826471553785911383009903341556117637629203352943304823794180570198634455973208082698397514852231718124125460294317878149254935979460510246860186080638291870667781431067435310430538182299531427927181419413007040426437103716730815387547193772079123049942134275204186514587913523223140103279838885180353206061063228294746893480799573747331950085266914423773676978511295669870936056225577748897955069241019690681528061298731709692512806636682488349254292835139836088890646456207321203776447189831022851594338822813185427311105245629297089399529283244936139655175713613042890386283238378368026608868537918443949255162492805545641189714579104670727155021221072166522959934628692261445906414195834670003959445039637218426850391682765712751266599359664950683447612069738730198110271124723023089161152734073664130709362788609654154929218798767725080948560863645269918073429111910001028146362939214724652081614014734031036447354911649593398293528212238359253457184890395847986089884017801906251707901625860795001078779174145724222598667781801233979421754311918673685379177409701270042697887706010583877534539898889332404382648373456386270205330495773047708642415108639422297085242711225920457046920186643647867421069188813862589271250939021089469519239992301904616434433193210922783009146630646067791750857083097265059132699094361245712289403522181444674829186575586122846573224561136568574637919143270957457885966259770894654608600258804539646320847668028330634542116483523355734269405337151622626763841989331611768806598306319489306473095293532232034686236126549679695690604565632822394322771498671391946968008638360474596859216279762152753200569696355806588941580114008272541147480504164616702196209123396554006434420081798088521151772349376117075184816164294820415760872772616566811771660810808152796659492738461861683246021990611145596636752646030993966191148610684758167440239171270390741250983079443499025674850741727152464860478847029624292259928201253881739772641812603448309288197044657131608496025951528105138646809766527511696973668304790512899945380731423493868492344490851724312063423040972957246319749557094589741941318518240284459036867620064567110488598596047201435226629783840926739384825941575801302851130436959622975400111693502470305824922652332721347372622665509072014629883346673909193581334830756340588390553939698654859070731422805294123602936657844251641750034090915165808028199009926515871604643103940026318815939826165602436485948633309588036509227462430431746571803460772997552664171215171247825552371117065577522142283861960965971849629581756163087020128740780440018568531318349942292684238992543897103954346817383612513066453745033991277489647212853449101518771747372656527176593372371189407666932530974319744901919049029112430769191990396986048728538754352747131423684793955551031500061716188110269376775263748293038055918941955583193195834407009861135596604691885503911564182908314739122434701841415547071671535485897404087256363165409726609313994636145822560424079220616425245486261219113986220949322041759095965684250067403285106488239384527682089978396553568226620124632332595933962374490317289124490939856066506728762103530388686681728619729864711248275565922303403486135739111150481665700070097646663383750728741228889459937770924274740809042316189801106663240059851548496727308893571985235334010327628487275891001962520370979869026697338706149253550828330516496070592837513904106415420701403763354126922220352742070004999254456384698681508451509074123577941942755278939968982694887033945586684709128351538609922737246908930054026462923174735270242685840559297230457254557086792824871038187560056047277193232218181863437096512758021254435655404541450057630568239863957220856400695760672056770999886539329089621203994461180876079613847346584525141608615298556416680729336585726190098570190561232922122113733165182967354858045010663444606940248645667697566019654614381543157119710755457642341988338853987829128614848995810013281813962509528094874707998322868864507984821273296792348163617187003689091921275129570452786679773838684689531176739472365209995236550647626409719752182818960712285786555826244414291384028831480261826154212771631052720235667914708717730436261000618152192157849340788826803483134945024799729628108350259014303383836544797054266034445987382230475196587512151348429708391988707669419987352288234270930200933733035106204056894090650966244413656345658699650590697734469966182259948755447634940277370468040185468204015956891007113235573456536692465277661606302814715282333885431437964440673000517491250078687515297827495208282664374755960293921393625910207762056057912611989934336035014763944924504037512345237023883723348863990419693333417505039929092562728809649175197769025689024443333865271822666155316534030724503115000994097426916947438210416748990282206585269065723962177237569486144710852499624554523809361767387995076297530018061169002156002760620179676351567625538854760725803244209309458801389476351180675716546595820016658604960576935925664962598926529074959407557270033349204025007312238859510114359528926741858058983994399453579449201351876874322396544179661654080332782781927894334154846029360020785485295092512667543032418638832046698038487766260605922336550292404051563709583856321196166649284936722265514957032473611868557125686904922245401966177516916748595267723060521386169498912621356146463409218270097052932243191011907944873536307947989121874144585170319886621170864943123814968258520887638878457397118930664502218879682392420384605807222259015878737912445828386181379875517718248720672696197809751343567876109985652672108026551488747445675889243344329696934116584337488409222890701594632691522797542039263293919619338187219710787504714661717417848969097616056927337072411065008530443284637174403299953492378606464336586607781029985072641228086735804940296437497608788223000266268785543703519134109790447318507958539210534478584642439250909249741419018668135760317906849010518663209383508392475808964533187555522383031519955408380002856527979621361369324231800395963143191969605666802938206668689191791417853016242907381904399191969974544420939931120091478842890621268168664489850888938652476285628843204573415165968180440991399934774393686712439524878956236295493474408868880546576896733043559888042707541812615076507795385877156777650470122091967309800369003938053201309107744026333353690479165733153114972800623833003480662563644859134418508390273808390368663599395579613412980898179103424998210858810432262710313231034233711901387846361850256678294483817341775237077165459584374070706829789672041457191880622152155936980813491226156879369007039656790341858968815407086844209100917380096700657042526372944202150288082466989419356889252443941428593391895619110447555051900357124467413045462851834755236819660549887911476099252442827986615698374166869643627328296497928489006906866095638218546416017810161951354426741593958477275260381809233093113609305246563670654153623375060084268984823800059213618204019685857842547191900009038978612215990482088656329362665352329345675142600480701756773165142170027969758178511019773070990619185314630746511701056010350634687440831792599658564038436958093608281039187017679532064754016613001598289963805579968189509588917584061950037910879841541622692088291907434462181889179585277015393350776855672488863539791502973783867059509826478813791485247195550980434485419783124620066197368055753015978365751577527202835560455664974516743123969069800672999964694373521909645185880381153469993918592364163244603768544821528669659228333124492713651889919575121709880029164833356446894759777334546604723752596819267740903621452560588287031629627214591804742449269649817964425127596126559094502380457039753044004574421682272747274760689630394192653696615372668556798402071251659158118692125458292869063457149963728103282530769350082855996338372113142349853220567351356619082908981075348280971708013093572209980747022472599630762644459812149387213877806335242544282746086414974853464468019625458952492640467618308460951658668029018569392856382637874745682478467051095227348212388518934291426929441345293325592751514419368159399668781313307245727817914133649628557652625173218406587282481887810822601778324785698298139624628670008126648858299115041002473725602480994765897766006175311132614380052130900234735039321942667247170010470821651888326356070798843397700494283481299980369798716569472409224117686047687517085592627800897756126170010099369606886810194014803596019132346484169738262170492659726121342503855565451983131626611132675136402319307041280844438860561190900145246967607616773506651006435055117637056135478955962490492557045485058419936051642726882453027370286719991110652609243536235784272380553828882098631623999068018184248501066754479761285793045879416384993178614998521919365580196540705778674374010689663569844065083276857522954414076138719181784724671727118804561371027673141716097660703310292894220028863349191143343444911409276154590380017250726249363738656572032084477837501742552235566378022607836471672873789158283915742902870772915412400440418641093424843639669945249555816911972938085538831275867644035115779104548276661595923972691279952096498369519706007788325097524234028311754637234574382900994020585446369377469463480615816393850231578670916304990877744772664712636863549341669338097921092939624780394100871878975437599781069999391745644975200575916658402488831131607659550040577386552268418700697440491488596223754952013711469363329560199480097458881604407406312458725026355332914079081281904723563925178288864798068899452755956827635706773858983542071468888035879437939494176771013809803605321201904309452064537064932567026738285200824687022187688509964854853412062344243129392685560085163821919605909395721793249772459669787295808373379085754881449084662671176426522616259512179344971461052249356514047961853447081551007003622875318632788197723411063183905235886243254063828023958747246763791671474080326783194909798212332763957991635507886827848021081896400945945709038141327828912442753389433559185155711335301991674444549927107391867085802381218140998422449109506189553216772463985296768411930187793278677636200528985219428004636642666605261879058325155759032314882155159061658796677386488050456117501758314590014921953581051150268895806383854725158909124472508238813558634901832896802038572842198771025511263394581981237145452927833316589844257695378921970705545671187868719462332330832707872566220157355295305571130960137958094175151541666656387009516007970557741765792882531339379949759420014196967450660358594898068366155386156252028086016332234119666340878930014188436466821353910040456620708773592008473486065740457551673896246310721592645399012719831190878176583425010774056178817933289373009620266524677938265930120536146467156116691494412909884686957931351080665883723571624823664501496209277115762465320768593825123858162870487803435844665124350227991529411609784676870854040063233647431453483235043817658666632924991236657201934443139006328025671610391011152666779291044196162621724246481651672821503579347166401973478458235383089055874677923020088730020693691344452473962162515718633234087828921341099165653508692848421923438683355793444051989711381839514974071668068704830527900207433023644519389277765931936763569248427110561547643451195736565660795955899045201401257087570341186737796939770169367107754431358555194041006158477302219014994121861555242760158450985484551938855577116069383949277296090223266732328487377585047703993546005082371245726712725606054491281281904237552686346925189717541045333540294894592492410168314316209021501076713271662939607182701595476692985154605303238751803922545013058191978505705594584965922608559828497162095187476898296863736137622383251040669379396843655389645848754309566439658627145327298112060352684110918730713290597923882743414294738573773307394986178899698252595028883211057644448976102649755376959693365668454010127195684676444727006081793135551867120846079980031580354022510452547335125885332244826241260506662235749845781302802609897264844202403520756280404084438696334481957761699644791587672860905678887316736663583311506764315849566545736197005229048142410950029296623260426693968285456083605202842719744415508187248681343052786267980139551073286446789118334753726148737033870345671598224975394023547861693326061440284458635874920615436506285018366937353982613111626248262074209469821666008268269628133230308994249624336931543898108479013088922425172137027841987633666841103592223908813509804499391807990930921798837697396441870940339491170433145487255311129746386443088599963978071692506660480744777719423201397697821763883799816056006913542509781492645315811491344594929537312884320425671548549036147324639737676782326380814747714709695213314967090217704343014702584758038577377262638813303795224945185924451060538440918355686257207720951091549647130161339068276417081677221775422033739801492884002724855244819385425234133227193495568080147093394597292052796414797823977710931849285278732722974391330008226973821607096400618718763923238231346025328959488306927383846704930636888004319686098729150783336150883581800638788659033726543331828882579436661944714826781595788275865985705705196863091345712840667653609505784011589001550494307945921127523708107849161828097591969235212856762953663529351685378460942742325312205902971132855793967224362019268130072879784949756250211300227910755014328413360919969791681965559527471339445316537304666028615015383518785437721854106694195245486072844040510125772194126138508949043376486220106726513833781122180276466597982946596725252670595872372832435833226591524648232691992220012927916825838674837681231576488258756679440331783304054498674754267153299664256964656366134988842359487189996170907408596309779066643486465305848719708829263298105507160973984716328035811456452979761413944144936610749859717934528994709763722191468166154427666343705033513186173075990480126661205330590967545852160086291630906454144416952415498103616837064793584052912715563083772018463136556335993837498229248838862169857334872182335020980876266781160912386851800592065171200181062646655785390354615178897711644693853801311719740374594133145683261963173377999494565830675400456403778968977145607517878593429065044869082463032988043555981182432457027954100725753723994553593354893788531270208243670595288629370304955866135127066297237258871284262947417486435578202172359294915017739420092333718197811134316986460830067013709888610192130874402094547413081933849361820721628417236947382064148961714767979770864457224574694217413255224773011048460044573083521789967898145508028317944916093227806160269514803750713204314628920511653961045273277618110874607549929730038024798677957598105447616444103942979049466229881246133408418057105723461332505139310705419838518126449482524128074314590208566729831733063209821217373410991449619720369390088780019331136611027670168234312016539028688377321522114916024821822181922865544551517303599597017681521005204116152198544159292972606058487211769765842405325981225228300505841313290927110603753554072000160426045829637083337344080615870546105966859977283638267802648573866367022260670306435704690404183121298716268661736722523061392819534387034087381113497486920837610533194164403887834322940081337835869428657250428455686903366944914763828047096980182703772228189555231136367117294170842432810402939859929178168382027918779068832227967653618426527971991359414238647495521196127681405780420872675139276590587995285134537680080243043420637555001285980593796794097248661770267924528717795614655676218833119730484748778082604845650936686201071597251629085356697423256082471495680699470803191693661673911802043889007303773479246030646397281878626807341485251752338450170461285751008564213801685385782682000382919599543711077689286260630022751923528533513328889664457022219827647468207884845298566532990062498802875386060811272814990249358002324972741190148983577696715334767823037307115871667196797983097138745500647729823092388927840417972174274197297388565210815747043296440820304994373644436962953681455751059643206124479587461188596768318851472874223255970700563130283560967212265404360482946248250542785317016368665564337468564653044681478111972488878230039100274525589001195984811529763536856690997380985915730023613116125910688054369257954032702670826750883401734338781851451632508766146748123417706619634448742781299580977480062735812913670114328302531401641232495391142431626497794886685874530172523769351684444448658692843697193692518729435428173715811703181115556656456264954768857172057199207606580163488255401491783796974956985022518926864585569042441902518556199392277605150815957343672389895390126204508112430989521316816363651259480543944414468554420950696352106732067652478590647206206905756584921956483063048571061413185579864305767932494239661468992505373251078100897896917436455657778845456457573109881042191213600704030297555540487606828308201891255101474834947685292282624594529864409594677964618156008120532511899270966749893923137912416274244017536835244663240580541705292677293560252851754595947362575853902095358263698972816583326260993685342940180182423651079058590185934961688363071319353421681437304362927825878127398501178503946626183281598256468288033346519822015029595589189551290830739736744969674270709099322014402148478090154334593563372903466470964551526242481721411221050422697031384039581341795824096367119618757356820933258110115364987906305390138382338352498296147939342409960233362278984283130978843304943004374906616556249057469110826746326360293840726747108951025279760406161928196118789724534318830764267872620125380531761770200290114217465668591168026364207148604025694221767109556437100277031056094716074035242842503329375844351335589408095348691710764420827244857779380313266904865468822899359891338733567985282196662265597347508654378917219017602814792331116507304468845488726639794085107193329936329395727198575175659693693993998636203464642309735648827731637286728675063059847662583636266259259153039978396159979058408161672173078205235410461240915189991800694337409997139956353991428238765210231684087354115707249814440817515649761850016516388370368681145765265931585840929254959938950193626240395430869704157159406947073574592628959591130288261569049910245497906631078752725708120202354756389704132995320545016150910723453953858843343559374665114770298993336776459982216693724672843120188112088752545523690754522621010026667623463289517433330195195638026893985032370644981804558597850073460075615427268826273353153306174196142021106892224797743998209992228948230064003705983006745262580093496417971138174726460152217049018556790585973994197438126779030290525501552178629787299583347699643974639587971210143270700653988381310000504885010414025044298526700220105044251494302501866388129564326091392864534157982504974900508934483713318110295210065194396225546344990590611902095128842313581613841869848324947999951371204000938481070632814233446315902057814873034124322346717806101623187843194703746166265647499958329213191833251915224508304877258760452517437136398380605601791665599676562105699904226907121714314069492759961983623752584838434178211716991142993442494826151432588171436524954445289733240267769053434279135152802374089304803556390614584369858003662780797606616419059225130105798658733682273330213151839402546624599577704650873256496859840915199045685203924855445365409381091532020231527715296093008700720343273001023385974797086931125000167986545302008730656726242288377185530899604949954585488118902699111966834798445393333500461877809060217162028470062322739100259767148748815769666303107231022566636828774295591259268158380328448988851074300328503255420975032479344410470753988084779187791794496152193778057158140416345785184544986019172622341921344690993340814934644040485020129196277172230013251319294792259339039523310203595342472224512033239686868073512995237389973551130887057067247089658789325527415956669714453469966156919462340915623794487736053720346800402660590948385240740509303034804215749892755620302857438594489508381142528314207938447521455516813719339945238971552216521388892592819878870777288008973790011279854691447266690316151245385409475820934132638733998034283114426833698975602015464427892207972772074696728246523950676338840981856592889186150019614610320728525437967710764897562541855191040521874073403749831634708720379399905291358067046505263993345411199367826552404376421380653091058208076240567843406131745075342346412901992625960960544559502776783656170816330130604629020390276542188156929660413427694879370577153022192414959962619189300953077654376969185219279232444810332784085295969102958971643845298454753012315752017319723902683262347933164987405337252584769754864438899256725734143386330605579014741215893158243428186301668070958098394516142127709225382612571653028416922880256580693024450684845088377060261752660263940256117728410889915915257532012911439032296104189424149961186369074292577053980021653536426237659030909331277894840857034451213371217049947639799576165211657751898845359579659961946346344214366920141986330991888755728700009768206022928226504972617034147255951313955461530077404019039424625888429527154199560775212959786147302620988026621035043043352088594057745398865103123466444565452693703354815980112366638120132438437171164678448204455655313085875342564339236472170526874322182083509582590234507633356691317354609236955677706856378710099040490377981596256614848984304783426085455098396845062298688785481028860019740608022492840352565121988553624057123837344447630946232754692614789847446076603026848961326029547574031697287749249088180818725175966246511764710453200133618097283481841374925787801963985597211973244165768704176991374970378891079668471055006865133100975915935239374965295404859747013678211322815951636379163477793313562933983592518658856217612749053773532994715870660972750528682398009134272935760085808030649923976036787439724146685517995111052727162665755411079457311905293340043551557744685956825955338527157154890120492521642030320323787989066362198070108395746431153832118279349682515380379233606980412559627560754295663290833735784067789321903749973400126138093465262640050886299602216493728662081376757121305432174940805433332534627854071921992315083696201770066043505022867233601142872706323036305369675008042381883969554769069758277949923131301144353459468448844287681307248332458254660058617926223287214691744982196032673070731531487437304934790252324116193313698179965191015823165863853094064275891207303299459273702331311465586191467201621028687938772724284404547522939617687232846587976812259161418886598187394310490095390388245660489539135756821869753405119904017609225525107494426184283582543812323837354640418908384723411609052338122028990013719214436364855977465374286877786368800554658062399387410844970500963214871786386054029337352458552414426858780408839159761416269329872129452674443486879636560248877254313588711035009415910327303187309570165083015058859383300885835382190910124609956538740697860933146391065182107737979533868900964337595081947867052877669840458531568408856902572503972732268292166595700064014581919287145668438506048088594622697439277495297878488975410485405659726255511218381641789088963802150748442640949884187910222324342530553052547462755469733925562674132842365843445272833070643074661202669063612362248258997232876208690955107616223581935742329475439012479992272614002284778034218470273048747808279929004555927945673781511111168670057791605563097443053057333185341870323987921963372539215424255365226675268001993377178207961643527081313541976916783973241869000356079158896887553903331235920580277176766357064333884570885526084967341722385006237620422269112209134437120302786236772289022548226092329342672146834525445036576067625817561860738934651151034524579441795059798521402339056227364541773450809255250271765162041058049475002264178834299235773203166548385284022221684219898291624671503068768773356901767089043725960245152456509800764628667067250297529280395723470593805817412808129401593818495463342691723152873749263162650928526498759419668297896315578594641621204248408248466794574331118009224815983759528213416991791379280351329998543566485245547367321898214566187237940539078251771151462748439769709196695284975140204159456224847950526253389545534029202015331490162170712848535700357078994292854969374086574183482601210468922279702439689744407406495677703429452548903425927052314158087326458112082343907380302707403147391326207891597736036256172647101061894196601060801434012625906078505326581920454684928644812118560923322653417026810981506192860092481777933702873802235912984281699743856828328641100911343488267331769937327588630923100340440450386103145926080340866376164940434711609025317326623145130707694215354746598493503739455240267835233485774352736039263654161021703923910380416521045926023663682243933982398338954439987070346923061351549173481793102926643845145194504617879174634461495630963074993727881120115951430164859306019397070639797386889621302113951437209550850392398954281548779820542699960951603485915051515520174483799856377260507482606623846686438484687936654407724592931417234567595694629058024402304781790748682016268543624519272115586286675302170854558468847570250712900953080599627531205761507732838558556949392765981452374927168854848943852154749322258929085668285984517530304915567705886352290772345047396628483206146279432087339447790434185713853557440650032473145158210367753273553626114690676184094062756221488094484054864906118430937870681867907687361596332181009313743312053473933062598675843255419308285278791365541690317136997241961991235726583544132227212803699964685621910987881709405525753245611037760645768662378050714304516868260351035063535595168700540821212203192434670200993623464975726971832863140648806801651240628795292775127211611627705699326678216770165169509534014476993110604801774155912684934424190017088988659620717615048706459564328680541145352193084765297040216879262859848805402405250028449567986480814072045146753714548450287024200452552924822482283237812391454198214904822313903726014026252921817992341662201854583524269185774481886926634994133263415853418542599077901067880770950042061436722755761511179271953845241907899665182089153722854278240095464175201436023637577679831085904051584484641216194361499091395720220456480591092045915744140882030232471865400586702639246232537016300500426095207180540024703348991813631908938599532423732932753000158530608412074040490767388345309277983148540464680104837310155028421375462699582870857930061812415489687998539467375974253087587423840015629181025349536353889925871971236378134282550540191629964866813975581615109146513932167545381813813735992108779120033049827448674782119796684605831711237841986445822570713033687116159604840911004454338404219562481951023165123818989468966260671192741132569363225972027935032704191529550384383484252266166810051495818712898371676270681453123167795253150907712634522147351835452322498216619473409489133936189318185341475613671400530999863032990189947518638261204046791043925646838130493615357207278626730617176306389208382510210392138415881630439694336486588912657712731696187726562222125305855336599232143894164291277121063037990133705196269315236681555364879889478403968702160520786991347276127642107406208547953135238516960228477599408760148368267941805912896776114068307692149228438651688069567153293334343772652082020764639655620103214907008890796637577182085996889849466416803436165611325939159435518615584168915787164069568485956477496210215599742684331864095238214929549636919011961543909979594325140800382166892883444620340108423402840660609453025928924537999740989459147943206506592228507361068033039419051481922889749354075518659219403480364424233431061050566788856369785941657756535040737987055860187109137314085101292944870032318169250609292472439270679445404172090832482524210606459833430293843507490543363816496524847229837250412031968549611454769280290628570955765366926055526854218187494446604711741555881584526666667309387166682284492094568809471121272877960873516446574497633903208455798211857862645487192407038233938578496990346645862721092517469849541133172691586721593166994982127040135012583915097221125287489819089549076394549630013244172789714509962329346315302353172066548749395146232546031875726319390210089728179806939594810012479719736914335502631325711154017481734560352788710164307310654729524274907916831333631131525750761652094336324729333088584289121318164668082207972918155461766959082571034878400956622308049481743451057069427011458679153660994645135924089011306139731672715235897127302604234481983359729048165015083463663046837450569656392116929770970566966227317608312307333043423990485244139225352928659103697124596375466129088008211660259106215996595762759577806476789431041600574146239652338966392822338979681821425742735357529979960264476158693069924613484934355446342507839609931038738641449290226986678635369138818998791394908461002973141849566153346596093117961985079466321675049429667261168209196347588871227713284270288664126614484629584673365211313956558892679207882871125822490688135678337097166850317868370047314779766905675531397514945329644868867768219615889954415946888203568048488262017873639462240057720975511406434028106091857412666877781894793464475616480160421516826071087930812070117753920142963219707581346114255045275231065635995407667884599130678974746932339843479575767292201079484288916517898216882471758582824539695648932626973751430579150342581406646602068486738080653522315143437518954819350383570396656114849493132639829127965311351776088669275950181025547857230750381219420794094343670191974942334094108947021078028950110934432431891593576965084752911471083063583486513168701043225270790472893981014971684723404017875942207529952779661401000857942148516164605768502993265846890873240160289307208509796707248232070689664110184168638554606646757977269232301492704109804811620019574574578431686930265944384808417921189532062469401319826081052526815958806124337545893871173626798024591085040691496736766434455610049814806335507318265439218764377143898309317291051001729143017817928771796032338020887642846277684532379359223959711599743057974315251222665492273246269752101527806406286721198955952315759304281853388157042580683534125910341670215964953353686999419870302672399395737363068040601996452223465981752721997997617785380219554424954822931889121482191061429411115856005483740019461596090460413180027527040382891573726152261918265537003139272745987568665839299852543443713307730195122723771679937473749046260552676296883094136261237213265474250905552987586947865569146333901741370122565643120909637426502305064554672047710184773186608279418898449180748384624519738370738684603305641912313428311056440028234355126908915657349005489287885850774310611169403467733031227562024010816411780918027016290048604858957079161273050276263888482397682783458280712764771616682276216348384345459571449739142249545599966779147878632968217340317517728790030932325045370881285783919608219107222277110291564962305519570447104844422535973992852804881643425499437664091977245539585037335137456769344854741627630776814823082721497790478446112799526018336395020395739802285132862390341293661219105383968195366192067480449245454909338369560974810399481798403463329995870660954993692998057501165128202552863994325330140169421713816972459125618905135268992343958396284993950447419807692987155806096837605889688800176655103319496103643082056002813716252373550802351569282737934639941953668989417354181189261775224645249635182230479025981612419937568069018607281637605825196292213413357328184518886519427233859208789815190807158283591220992077381882845142802941490459270753169047328895934316586726304071211036329990996119192616642193958342236828410333894114097165876847183220872582150580951711004342498520333446649051131502733888809527959272343643441130255345929115612517580338094846704005186648524520364881650949004573188412759513183117988220045352808655668553347188714018020650390393165298964414149653885506232226407247188599441961165183508526504919507892115071105026284377058170049687549336365395155682545550386859975996177883968143162439424470666265989160671174761832124709742261870915699393425393761793652329560286609948563273685015485492366534320379239142766642204531509126784425998608101648163040453642200799458429458964932017442750758251673630956456789308007260703761679615006074853034130813393159495813057732370044111434762791118146729452887097017966803972819167511983678680194372744479756800622558972954033105829965386365007525391257466505621884705506807731904794870598968584422273121098808344780656243514615715891774720243860613902103425247747330803762182799656063035869790492366947909414659515031362513220887630461580283519036382612621096393665587296731741980115266862076630579271384116929529325784051162900467034081817520838773710905751929851408070778548328373431559096432285330174118057692739581936935730869502147280236488701269011216757691663291063525078036601367899713758051412025369762666266362182071159692815512249608055833954918019990670190172665961138144266431177904236633072861325207469504350433857355876294642214266619227824686860661061216402952048920767729542282806703051563070408153820991549723115046410532039958506525581056001656905532855933053220423321740280409575516749378655132192435033362193014204763769984362430869874757089256734869745350092688246569199598902905463084818836053999179533135212360679712829980227656896485614055169105696073859306238678098366836781561150532817089427009695813739192449021171509799015298715246412582661053508669203588042103436749802363426626960684454260499811110401107166330113807022264842316045711060765863318018305055355624119431261990729802506641706497638739722448130176533403815612438879027772709032757469938082663040667306340848719069697147870137627035346112702691899257662486628722928497610047061349685360643545197879932369572170748268517805677866705058993179695848531101130669302854048157423649414785390043408225684447744030087033156797499693678782875151583921908040992436495458078093048814912678072920183747818554168649238416010952311942060731237402922221472243879622009202089023201576999752953461353266310020386022824034570349654135982088664451762998663744187398030653950793421020973450626893895291659766684722842125671191804800148822228215063899207587105519469463120943761578241788590909824042336956424917898008613363045832923475957521433964730857419154290703571754671512979170082738379069739475398518610866090792557466717644266390424707507364816788687567300643456842411938479374579657240887042048186890421422876575552024654732594398393803159285112109566407742083786652761975208726295382560775123734707831538836202171666226582403366349174337092598435347557031851107323574124777234429037551179497516518218205412102025110115142409883105837637818147054707596454603507582087663722985714169067289936099206764245241047776948234063645777428106577900965467869383801969883484341351034549272724252586719526084408665602085974423673328115458218842530792718209010340184206796313357007427216704801320577816151252128924817716130510337270752204694814920360316363105380472116821209239830474903825990578748041121540843208575035680786753998402957982999880073741713799299732547460582758568879694664857675297126426729870259904641914330532024675496841066566810509931467434508171699230222719061983840644007693459666882353510910315148701644077754348408105424745169097128939023763941513648993360909642428243444061668257221131358094843467630442423079450537438187031952241770195787499194664025101328706065494738777614968845944023646403413154754486185377105933282149825981578684541813404661966859190927679771223241586887681393781064161509763817455777506368885306320330907812123451624251656353454985038844254633735496872221082529279144500210447879673919129626185193018229710833379002195935376350811157997931818991622799442024774547393943962055601028750772430047377662405973752537296147632375145261680973837845531215794615284708366819542869794221715449818173082630520991938822294192262171607609531673677605402147383135444675769241631284272990308433859895241377000562064339921572459483737193592416942045628520045186576310503555335499899668251120098322701401690457857680098725331595739322619288640614259266203642108361264958354022867607968105036794120294496680431829032365765838185341011661088697730955510897006543627561606546601808795879771481737275320398513927056210785361231950003864796740874080761904568851941862120273210679824192254924379558203823960825687957409718123146042895263320859574099134783149924186233722936417495460437902512122517810807483781406356665857712140330134676363339122219559955948370000859100391793521295491888285750698868597313670664125876803977898622075966974095824071321117706629971530613985015897716960327304210061898072447135316184508606160800126292663228664771104326117484464677742349537176453641512162016852375913408222205766869635842510680869875040569983517015991871509355031764180442363608605029375405000027419138452658285453151464653500084754240512389128107985971964434194705410245868869347680018539066292210644344666401447284428056825486390496023745364145902053076762886611929973178299036289545581281107871093490036065801312691019740562826185870638828497630929331574380390156643171266612662528914190573358615750250211602119083305646532046884237444602108964774459558756689108447665381019268852899658012683291930521839545685973288106502842611761978846075965221978500298400521139086123332171909413683989560832990075197623809836518256654875513398346074296747823990114238194224242344872964950113237489068663165048923827581048995686094577620980577260542578016590296069355714156578680651117479314587823962527495219094831096444233502507046799076652737589932593905958752882949846049913388216220908378531816093380952121103037765637098270857129621676724091720995270148381541860172834915098241556698876196038413526344904382098929879413619950218733747539517346150811224034008334555651118986840120263854358969739068514074528998340076713217884248140764694418698556893178296092195642141623554596607153552141386671357040085490213196927851300143603927540637754071557831165229918216165653770889906670140557868146097447967722957569291852279427045370857818940616481870283309885671373398247415025011350187236146705817624089548545332347862431936848233562357409631697504760843190608664741586593907825187473890298656739920273996199713436922895424840847164198175228178353304442021005694403812861502560749759164709319350782318352170278718650542384759875098641715272830900519833586462605306853657317103609264247687327376088154521110378798888771807745218147830713595803373176039704115109094489250589002564441568183615056046570573367201224740578501803535473709682055997627414252300480763579592629513347662707728959724437809684109136249833165190799771231844639045421221490591327880836307907671548811542159762856340622061909350869564109705014253683173772218229307207247122695265444309505372395343160340505921240245703583461709587710917534363453217260603223647737017691179287889098843350629178878591546071851233298356317768351191121264286826638534178605897889502220640225824096076890511706621210803369451415647603251614726657371146741978599400256790993466256047107712758267898898475064076283086107771205124647897118891614745898377916671705752162699283155907915593569835549114562462816617083455547616259419276376783715650714028055895573296135914132858906444657377556387186670871263094244394121253543504381192196241723221599964639143968032357433130546141926358952996902908226698828201115109841632757800630793229578799077184295139972374405924977885895861755174991009392794705288439580300410135976738008544373372235339028024829340614480201881136911129839242946807826195537832470971480290779661386838036318392420461205254578038544803310951320115526325859006235218418047735448722369069769063618242755645358758260826349776818388035364975601678296777904559799787069701213489061900094389421503265867369605812275565969474096164338581569363965302494970882352549417598913675156340187937405496284011773541348639007529754727893875222311891229660485890812995596408219275207867952398520594789819576504575219295688965578842223044030360808732249633086538587067930680491101224689796353573731781106030411914845193536057396630930600242013289668449644550778799997016141828376184810225411366647769859668797243382435483010821653075392396446414813216762488544665432159783754308384775195988323659628576346436036992732733931834221151542894217144742794505647073561674851306316315995487272340298699826511509602724577832329708037512472924370825529773148932570489512625077084317538080975495930398188830553884403275475586988728291429598797574627555730059887518482569437866607589056855710704983857389403855270856358967044925777991751539311759350805156394138354616129731041421204627003716182540154847289573661293657915837749684530693573447389019607462264362080582062744507968732054643311469669451331739870485191549588605366561435934454077328642253089992611685223475788655679025729283226161897015054754507739251319882052968431598389265633740566880668474680098595416786090107971151399948624726074191159620401901412801995205871562921056864558465305513635652929276720390290672917025219564041599600343504001461316555287701040472297480539589801698876240452522083642208741752359452320107922380291569241767170247755299530948171988427646674007591998520542766148518622472396494802859242224557240520371766122220106342407692008223476246444374016459673157991519396920574862035835351251302995172509436658436331509318319708159339770478347533388311208511010166147456757386640967123232360251861867476759474936190041217887701467925702819385702117387268513327780947086306909483957300081313128746786112687524390909252437236861653671729292321910846739231638260017830255688235227337115662892316403035395992063332870646993833054065938492079738993051170618220956338203087883868592795767219391414638716063026155237986358727961094305521940352109778204116841594479123413643640256533976421335993018420336268006980473678428463415464882352116712895909701370788036637186358207194310784495286581529695079594025306320991002273461080303761672807364407788944057634530881222405451506674436612330386468858380871718173255582594843878322256116215127346232307781032860189779323908227238033183231620478524159027244542211334109480575022882408704697750344928508694462079575229698074676066638822801921851506206023723633331842696435499582488707733118812145122519439733607022437988928555069652804528887403799283654186718407909006385639248946779257377377461653470957135118108007092872194294990421436825083930795567640507891383594338811704911710438323820373908011016523754183862514049811821031211855489727478074096358978698539307298754914371058533108229355095809924091230977022817699582840058736177017537785877990718367207836071183577563037933541253462584741162831761575393514519241180473677589890985317274064912164879984284119742279573907853788062493628082303867860241488412868476597590562484141568740007276644844160601864179163803989018276305728984375113320824232407608142546314447411149897048730721732740700515361905775007504402075805286994352781972793231750085281235227501431066887528736259508657407896523234014660926597139159794673536776983247857562687032309351580592761736761974484477085325141114900128519034928082202546141583037128188254796543448776809685079764024950007398657811589381254174694773470790445738543298411670673860393018838731115528099753836062493191381327295712922236741756294852110807973777789024494891936778873207569564891924157057283817314863671963977946567311972131051172837486195504325602602243241090003393836152924752381553044923207977604901122694243581079476857642503052797519898733502197360108889560741969045224430992376352050288523491985656286221560617566991846495987044185950414483549021659290265140882019466075386388732168580628696536985481408548051454449307957913891916156702144146947293763479441827384018931877472082544108646686753193828969316232646133378656139654297615155198091525961216133480394334901200554180084369745578958126266850507328781337857669610395232842622588839330606343906366762740373195249234674214252960907126368492795850467272528369807275063775369947921037374940276803656979477646688323681090784185414355429146604857242452259362547523845025780611397119941617306793105860827069333332800227259507449252612327765135653854506095119344676721367518019786693123190376409783909925474085453103807474671648315611074559387893700016369844227660967742112093034521869914749408340984426245697935860070896578906237833162327288674762034030417098924414914488612537329281208103629268333571247214773941783457264923405244028212093130761698351682904863574717565806560546382597029009131172023818917022428551799416761134869065703066798322509526826569071796729101697101210244283129944261383877259415290214666167535100021551878334005207934238791894022876179348995954162642118009900394253101125508443338700323667018714807836999591670119798602159086635101916611354109951292939533630386975181937748266367842732924484501072774614265424768828626663746242895341184127340878031201862180734438395431908460275012546832159542907618361249497553542095983875734261022870908921356328187902952602092189771972523483906459273520445463699969616718277813410127690186977870161412135906534829400452316673525561507690135683389792312389186458625013956641714771306560359281050606607791996583161863174194080831328077573534727103816514154083200451871000036413052183029673343657646038953316970396884286402757866444176069701688953913204377678320825434913017419571808194246212566168314940742289265685787289252502010777055690863501007821637107233975120533613626811025391721996687078044593513557929596588972464663037868947701192556711182585664358642407266933104421055873177615232585857562890363471635956564264840406912645799516948008974616373606865981609547542146299987143662334758972218244111996207675561208677460176770965448398594474043156955410169307784202130881628620649041171705729497085266201831475094948549728720652195618345741897727199233999127765316301692344516271591102063896273823587561531117420816634684327184444302739625287870748083807976036583936472210116822569373027999193783636453037062010213598052086671463709257716206638718680140371013899750969630287355215252108696792705207324631205123692222829575484700355607827134963743031388615187345785908659729865902152570996834008324540163419416361273771118422954649275367994045557724051361956988565247079208338582150111986918110572324157533555727645886410554300344437123362372444420672838930465460540590983355206872149322018696838724472585069627584094025087720509657645992685874054537064069706162325487261693191035865164627941846907147896049741233372825678910421117167694110075855190259197473797873095106902068937716208355550215118857955765130873708709785776576458050365229490900225969578439846259178478941812866550148391788397279202431716721914067440305978817101498001336769009167057647102759695144868753649379418046232395996601823013715002050573236078214996823655368152814609771998206083508485721173968850731883233004234632760109393048040252583155433369046555605343689564016542506698162618868122515600978024150435727890171834626952943755088049102522450239431873542800392568650380331061153531646170211195038642884471903626613304109147929662083142633175914621461919148671792129543950739887584945110844694158205036705765939852106237092343060679336374619827910051526609494456464330499592478994658858105456625450653368202705289255053779010896421643824348781219844415929309528535563169698811472894110139494794889985811120048898784824306863462600788325833618296744690867061859586389760043958350547763017849759221528501315475614654379984968504297477005614470066525129006580627225126367709348526173464856016506721726093146206437944584617317766093776908215747515619328892961463255947343541026651878284734894524235957299284169169631864484668447668802119332063147970432841001073013664547798973732691544330506822962061447701299689913777914349689018602483674849669042509747537736717984573354496810328231213039301604045183965625875117651634102120414881574168710355631600084998175625998439817079498257003262237203532383034716104663988773958011393382091493550640894944717028391064856523580425003999790465255973928185459335149400259976569826548293475468617559610958820197827205666786667365700962355728986044044376159122385639019510189953173071905986170587558660885954904083464131714128806414508499654339912895831966575503701283663474415429811334609721071599225137323908388293998084676653265141164286349485890370820059802559344041951878632878727670085356150853494130580029222729135068840051891989169064198831488542588683921228881100157546459299473207318415036572440603412758297300664783554045934108465255555503496874894282510276983144541881425262863832920971718428207573002856907008911381739591078450424756504516647842868054541338696260506068232359360825243417597620329174428730443817694859525696931933213546528802359504263256347544151144612065058523289424255560107274632675544487191195680226716071131779288259797809352830442676883661678984006803507872406450273741226238595651237235285366039184659286055093639091664525634659620604611693183648270592448592161424652833947804856651243350041542553160550455235268450857164363847197240654291406471360863846803227172091142514319554748502857083751882251101753248194213813112923117375897271361315742448797713759901529167326420809855489297297241616173468625411699855399286371407634196249173607737236939645897806135254916742333616144521490730122420233591210532440106355259664016211305893270738560019139111480951919032047643854764753935857119937237273693374058002555870594476283408603022430770472413675778283593078035765074528985115182307590049313216785278908049506475143073699272285251115642775414344190991001472293941298996355827598721552041940992035418653822469535404215829869545834206619741152451163976532138016430388250652240546823128255613633378341593821775301893325286841568709460792697565883516060589464379144478986091094124214948614237876136818566323271650298833611316613841158621576363249429501561676345349530891441542830965781367764890875918737625458286013932220760255793487476886754006291527277086378543146100279115383937926448046046817575557134220288094084507079480177732603161739381236023620871404140226665583143488804626742248553848749808783478548773889459139445169960158165418051008622280310602679725778963990773515173189767688076676509702036255281841114538958409311214385013364168907333259755354214201971462650628824061312936770493553883655860178727075595111120704754014129970008310830241209581734406469958871160388085808694433378319473014746506851990953991856787121192946256750866600955031951924067486840641840603084068768170297852306840421180116296098637739344589430274975250582939715806917601444027285900343381047428710251968333364367769879168323287802206948756749908160832151288938723089003567922849355439026280157280113605753844398769885605233768930137255285921065462811842711713904466400216116612698890845583421796002352579693864491049979807773369535605843924628069209698425048552499002278704229503196753804138215254287105973662841824130440817035772332449425673647797053439726650511234362421519531510987702335739235249562287770003845919916591007196268982628261554358711453114872497980495628716213147690529410264103392570106113012190868754696511067250545369511976719915928353993740465036459131349462353252937985172126065291220910192148166756199767494545919723655029487253599186022665820638368856690242941392715427942228046233470832468112685871013555308060314405506083086895586476119889222857825535373294902661017572791330152099397423479099205994618992055495159465309246548322424927085328420399606002350762163159031930799616096786065814478202940723859032421974288465904885454826635957280946873076304634300922010450939115111911225114756444533084450754772450882263969911181188590771032372980120114189966202301256281033079199924791648834191697497384817520704776571463636893724078575442969485040575047435279724196563188515040013851004349098448173888129079072842869496108067052774840062666688640943300153628768413115446248097415844875524467549138181427409261177382168029002978836876224910665254639786910385767130585999776639319746580489131103079397090601133951486160998319216597369733249848229484442774935272217962894027894163794308893676655894895478653873478878384710126751304693223238164775128266698165020223397147750324447470117824489314748753348857438135768705085337037211740190225704081070333903958516468358120175610887835293070826634979591742905902484258813980128730253346851243836553405367583263073988386669552628028390325489530285243491575183612926263567385347857299523691021711406645120148548228415592509975415253779295892037747036201287925492234865249273731183670830680209280360793275206447179078232423674055819874223669982125028383203556434176059617347370676414406158591091030576694440191625079268876866648617429471218887323777729058316409331966545020822698641388306763403072312242864011156476120502884940273107556635425554818031822452360645825053528788031823143345017596762335667468977621269029911012689219440003575285323083637149470547870092970527557599283331906223985541039715451089835603267180299217546695758837941973856705191772763091338973392042480181663573495505653911096025886222513653065448474986274803959189350454725538031043246905872240730436141556529850075713731087791921233114292791558549764383903639693493155561358780481001861811270648455291601922999755594515681073351269309353482632711879115534500535760579292785903687075342925194531410184619135689391418448176944455641594136435614505748907700905189620205826721605952904295996937748782840175238788622978955011049719711395134403112788213104781390343769600540543682860875689440857539051037909309482932509333643783866613770557569304712903604258481894742717572523248674648831747948111116637094280793429110765957764990715232494424666103231711956572946359670867839840551934901842027678832186948727003445268094166466222924130606379686870859325269356264906915615669450711254136359887622947357570381762100225159009566460839990851343707486039749583749360621035835116610402933972031198640560597506574160654446152364524502468287965151461044092026022412999941273528121247181795740397285593562423859928307628892440339589315412616288553293254441950759617558585495354630587643299540765759820524738360139088052043204061939506194911088848656539030905796612593276222947795697994882016125770572255240838995224025902771924367470802685846082114563777949836700026086981255671863894978430339948124162469702062921448697199505827007403667645522584493591497270559086892421434688352702761312412905283058556641132447567675736040545698856579102950870038977259397528092965413700407044154308281991184010097400908171182264889258873024850189989121987332744734909167440919641781094981563147389279215197269722584131716272814381841604375174186019192354827250946689914479459074714055645656876383188329185147105807840911246192297528270837065448016652180304887816537764556237399933881515489650283954167066263910008748670825824199164846358261219266080760583944816824968349658757202281720161563660847727463528799136151747686201030615457580241777055958763389649445835820336567489347699062857155636029888654862313771559164983377553449660946942859836878850881609583092744570926051515185474617474163027926643311093749512516836503285644672593084398386911124586020114912096652213318753553534133722259656286526463832674630367328741346872245063373251888094202365656560133293084878409903371385519528546745000334235400797169051616736246089092271930490835175004659591044337648081765986669992580197041673060706572801714894232084215787393952397047852647035232948457751899633265066194590728478441120662844513200227182734658279389510156557121695081618103883575416271002431115223354432032005980356530149955008518097931938012390180568180714831695154688315438500201700841006898712941490191490388783445055080803382060436096334644633013248740209708215216283766284049210725996017586744002362646401921198329503254051027071674214569498496638966543523383608643134366207490462572986517698614962302547991447067471370023725807268632376680967433784324660865869152147104754792714182170725803415320525771402599161479784564248448963771865680711331267026032327513957036658185805875808392671320641537143944750362106044916467904920643224398268657606546498905916657871746354486816863978140599537844808211940179647897518258626161208482118874815170741475574917571701242325062092579580824800758358583461132146813945040758851277950419703823128826736628421429839619506445690127598981597382116399036838069748542762199973751773613207851564808723752885346862312517924506258248560462863130731176295343068276298212083866133234004093385495934624150271935778194946245505752569305705973935481533593339747718136227248387797587551345579882212910427940149576207145552070577723753528382977915815411222935853922193868135708235533850076717628906637707979609394785205931013508246736093158186849375156156904400423031357004644153961268641770895774174492209290612033708831575393080055691744987471215401365985561150081217929286587662841866722901347292586923434933961517261380205009437855738262924758956009654976900811080630823775437942547787730732504709816120747310120857104944095138476441364058919243186344333205385858892392795367020768171270834524568348029290330923636887541920067517682783709138346462401756846160200835458079882661296115601284510645516013405563160164664558456941558980973404727054898084702607955070891007556672845184630675296190196296657187541935231604536138162074173342074904349793664610842432690104412114922693600624866016976670323206435270177458719358327226008842832009194098149561499335275939588404513614140364456683952981099366907239471273090101312805428860123263234806243838296414964161448595916084876887986826784318345891912020530906861319536561285432521967559318156437582955675418687988230671068936454494003073253474922624716846915793335190162433808839584458345800085923538986754372267158061408224941281167510984025246001085941242096887750887421831223019337652198208933695261706915613393438663804373577707310519612540531677992715690558726248148544427937959805990922470577804473856132913669267153181617855672861593080322696277670527861884385129717732915103124531157407352336249818048350581329062304034452943487265792724509698745574227573046861822816948232947037983951654902879177513265431696817131972487413591345601646314726967962543510577011645229052265146511523452675088508415340418832113294176855808121891904176328090574584877289166671069926265214257326391424650295677463435226619877759204504401075294759353393301519541451341538574335023197724950813339962318430896495663541596541958088422920325203934358437817643908224206224013518529512135728548619739462559251860004131856432837417291898838160349778962655885862710656447576378310252374196052119102642525372401223149982300314104407182551047283594735084797640398063616212893913558857133752909350820136351327048129933511565737710038897231757239981403599862527729457697266614276644531176672595138078591045715558806293523633929987331898122530161166510978313504060148335826799207845537727374123700486260347380807726120263701754392370391933656471341457544335398983949233567949445510904459552469667226858117691675902784832068126950960957840947903124128520739097644422004440944183818360354676618080950184901162724906599873115961154404329543069028005062097754693449335534561474290597370318707422049164545118022620812171433720966708751480351742568952947151147532845037182902212156336905997714397817489965081386985776671007866641698457549729338166256896658780745462952178741703644344196661218760835303600439123650130362960670619149478751490050436481226651414390304700092116458186329150219487031609098459915463597061062331441480162175230269206808658630136200297701789439329584651168325237423344224223389936331586140193928745755356869873290632915970907205408263970595432599841408724185460266746678540539890172427706609503013064428177240635557753629016118104539139070149878835670832408042645679467287738856624660280792360124873645571029636637970758157598690876518113958756509917035776945190795031619644227096570967495571887964878833231063355431290161858349042476307126525247526778623277283753356201761081417129763273394719185785961460126314346565349009931848134135308694554222984812994415976991308128373332346924336650701733552275765844310550248610299966723594502251526962774108418513571191278949615418420824282761505069516037052062219950550926764647912943007080703861234163328785550496081225269803241622998006748876988442988739697383355283891745697726938536838984345353114176443777534079553248814835246574277239078876260404528393868462324289375666533344496616081310814824133729636911336118999047275209541208482360449198202730314114582614860224188203425571494555382933944215333279367493600997673473637075911741443024244796042736875612204293381667070678020481695216114319084891745430396064558688560763016604423086764266024815440886232533497250588740823647063809803584063082308679707446143311691972894957347130378970312417702428340909290246244929278261524922243889421812788425877877217716878165807241627060876523113855027723185449975678139626269543433507265418815046817280488416965258548379439931002175366573347245658157119959310573948541297035925967120895092902393761697043530763959984714409947497557201882061802215913714831151391134492495685140129168182349949378129283537576610399672880090942194040484915286473921295851689463224544871351955695527966577913079888724813768603755851799041594631938965035382076171392852398639966063331465837541340901453231538580775579058976428205486685450306539694270304699345743860949073696251790003399831666079066366600059797258513960112645623352215685029231650861386423579975015781183298721625173427512198598153279653641152094180617487421658651058800597516504254210676369966551909703013310793527504158529149738903455168731323305859839627569744353256983146781853367611421536935114150124568068884693714641095230271424763738369907666741568990731229447133838405711561708672422347464062885458955216388639068243425059144199861873411997321224687993816163675863376390701563851943354324018064647548347094292439903140763060397524915123180655585266688197513114506943956880200668669609671481280118350270350373177679671249599535749997669483418441252904882889758595270281985487106642264046503574572645105078000543473643679751728741258635980063049022959562856829596901843139308156631821684290363427623832490996682437423366476373600572142219875807874770654860427392169972931276380138438983013523922992627577436634001608073916120081734684134624612390274315711753012726271346585235165807075620261629205606073877448445797916339052932105171627631795902487278931731664507278733292506155058881997403836303543024389042247948487213622606095447550139314566762464278945901005069182762215811637755060207215039624789461375376287053976401359246426151320372017862205518331795331870004520504236600058616589777124203807545353937786103015921390153016864365754038554106884645481576876731908569612198198821366098257266795973753575276001928452291790750145650363555759426070863316993571320868486595126453016865202024473660439016550191015144167736963420042647440212624755083215600826538821491327611689528963724717773844744176552355204909195443034363738014284303304867209840656401481870349330370265714046293938262693451560127553304357311997947110104941186870246386070116970647672147875238213074803111048577208140232103580403702034842295280408650315241220854115828221512378176690695487354678357983124862678462124996195064648760769875725118568390451956328359769178568039973522714888264069990778853629448957350999257625571040061425672874956689904711308215079975350857744771921356777286934355720708030777453869847485605969886568417616985445823015006706179485828709555153007456818192921445829891311675568990588013968187417593548815037580805992009584978706793985806035209747788414991454022719496626524898657747961187347222601475435809035963044933627800557292114684960839390548541694769079358901483533169291647871959977147110432348580658727136278558184753813926643037072054480090241519686538292060351609978708277198470324126261422189417211691346738551625570201607292841787425873295287707510993416548058351074603961643816355126690390529176196173571104094492525926768087658200141148790846426998016780144749008882734191347214130353516030859749086334636420009486286368315576240878838657070263806173113651440944170508128152164860378617485672669818868827702339063567472933185765085364537421449619184003169658795874258614870272475677142474941845341955920885830640136642249207181408980621902065422283057838969008539650059215210804271045566372681860990697572394137701053800711384969114321386522236840462521879200060785230351277832707340406560137926684778251352169487962308098428784915295328804510401181507606457237613390644965756041892511739483250721278340515557264491335043365274773005135287201464238168549588442401587903505429466136938572534938990405696506885387612512628610100955053913058121229910164224013784736894936136452796390731697303351328233130836340476049962964978803875224228029717886125593515262999376249322877649844528330187585298756404819902009283134891024220524893381990152968737781425510708179859551059987342284162878386337713186163477158491189029712992300180825035630298814820991801696000969536978362644396936782070824827748666124308341206695853177411557087905439859307021591824165034322337943870263708272855815434130233210303793676802788482574733063929306904877207509067325619157890531986708227056082594496199628323547448062493192194108356152508371796939868820820230666953443962479796082022737140646376805863112694475229053711673487270191436596138320302038230473781691183804022458491765673776185652763524277243110585211462075203172357852321585165291419370584724593399386341797453310676916603859005157848683285033569357137611351346965305229610260981605959157388662107128685697795875379100334588748063839334364288538152598652422567070342176171205485897113428128631851594337134781224184315660457437673720019878293110270449765024396850511055882869601451298234822588328058647938071887407074380270931651797919958019627019837492747731819432494178854247343888013305197987136403578250139038914695329484804145680480473417228130612150144426536118403371023384741844340319163868877474316435756996023310949879979121073939036841237349891646837078886097299414265375659689571238883648508585287548568951295734644209772695175611018713017687638196517856908130525813712186764900227627829731561113183681881406158712160478990330607645812731006753304849443236885084578512780222621542807690306177740327325064904921422328160601264716287700864133431771583831194284982334210230458167075364176668126484159946231573284174174551049838499144818496065126884283305607723059742460585161746320645999842249522595195588483100783686775197691870260930673635561060821561467508325670600088524323951166936705927476461650417779349729099292631322689047864253426907128599593381851642814828343224651933321793806745616461292012155533475382758970841944300420094160906570894596375380944638505840706088603328829419829711172376014476213790695031656621356029237815137881077208100845877038276492048905541818113761577233143576926967866170834123268795821186407157663264285900145783547112843483021437483137111960582875574898171035207320246996386381510865942667376424099843418636208563404461235243678620266105441044050563463359443829832987963238485741023541972440939741916566697424174041200161006698835081500025203378538726253320778036813263548641715471762943559983501383116434639064962975295550703329537696856557367251716779851719208028624903225257149336010536038918516621818706753839515388227685382947312762235256990535771522828337866043595142531684192346064466142787223622617015615565129282596377692248825043159120818261315245151221413640259144538976162361212987430159301804656891545428050317974947072870911042226290970183195323775017375113151511084167241004521226395988256102169398592247091981333264107085113348952889206900018399329797845855848015501931602515112766918146847857416543724765107196351714127879729045425135407106871265971120081841254960368539335414241961153542347931363780874221198748047531274828180526041876189365248055353957431839628199815992512558881861516980630855484937046958506541784769644036356357712488803979453493121782988293145741275583555626077716918164242442058269579078794148591025813586212279588860809036513559918143307639075672066813835300547088058833656354778750885505854372748657851253847019988140108291962762371419185061028352818135438513009887005415893839712963785539678153440927539975562542406217825588240548691978306381256685891151672209481800971861478519019221180753289999723980778934659357594582737379224834676904134107586193116315357715538765738314315837247840363282691079039624851307834910963272173564177475497212684785033899124117876896903425105874672567021273414881109046291131593833367945288037458009730331308734882126327681588185375972192292821943420964674339225939307760278050732742466850184385671215414944730178958660199916531295106891128841804635758174956381306735990524374591462115699773213152900703681764535168184646464837799816969801930867866701508169107756057782589349289332675231126004624787377865358088345608870412305079506068222206132602213790332521805264773028152547304806672972007867048629015341342295804064095076369212997896683076632202344828509352689471752976561660068274504753302582151628961055853793642331430019582434100287854631810941587424700814583198035783452256626162383510573324658545506335677233857346394265094632165271107755194372311308210797227607065862147369633104640580607084255733042242342480142104310508185940809453889708245976143032059881467503875494734998012674302480142004154760224550198204409169397169377774859875539265308657731994110975859616751840291856730993714432200258608928202960702499645117729213993164557967716718783203255475129917145038477573207165069084424179687200161513595589566170305153116559093335407187449966677644411173548917169532431709465081578263901243423594635403129190495951517762642895478573203959731520510637925909025066223166732837766997725954601896714125237126246912851817299098648293647524226126884728040377507446099609796630086990065835127827763735982143629017773729719470190271573831905259848525311811939270810095339311760456722884288692115459371895308648374789864280532705714414418261891764301288195157220262181004118570398895147902426969339261159204675547858288293461098348534403328761789445348239040050094411569336368110996003228484321439448135314590678172850238089260412228334079871181164176875362392473267727935738169550234906740445990549749637449969543157184631566055058677189773085652464697380599971964290192180810231338457515649208324889635976218665520859068138627436939245054351877716379829419175672868802489961646434508946506815765640719658267510296717282258490033863151133873281894028240254625256660647184471945235632213005907320091027787319897556620623274675596012648613135486161126309294021138037102300038461777676661155686018444373065032602974742948510122864461696961316609828928322460366225925619884810545715340216003093377244786724845396815620109508255987155718180405460551892524008254167733596000374000045361589490035540150632211492486771879325205795328495084998522570346368294524491215261198425407615142608503787316379746677064373034428421916999737371548033492648129529761753191871696512903758341785061752725633841147109468041037309779569899460197889519724963467876571625059091720238086175588950096485333966122135441354255511009073923325880414117616697705964731147516722932504592011135964983707886791828199411810548341235369986254559342446591421918780749536440568448682960682030715118236715857943315151797577778122153135624017695375714579189820704772493772169580946317449905458539582765601885811298274535362278985642534826698718275342663384611618931665882621545276216504999980516473204078130274993773998999483871255579457605411280846226569919845831818300122792190547687429954828362134803367431753235671437737846258287959185089186785994944894798734996437227491622631681220302791294975767381770647082810243559249804603252089881257015606986403989313024359182806209195407416302982891907174379206041040454282452963205946076432511005769223289099390864941346179320802557299008774788878123962918268575050394893505018255166947066488315115371580974826613747134875404815188477795927685830038850915654248066305444255565446227069287792514300611188615804573328799747423657929502240273109146761885618197874058917731537604619717418766484376690478883666739826203582414362619817247474395411307732821862034573395891152036606905561980439911964976670500785819440230015326908806454091650261145373234958712923372465160402130823213250563834852861978405734976055563857257249146791048282238049744255682486143797931973071630874974411315620708028736884381491392011429145948776037674355898631906877151092413493260370293342162277459664099466720394597976515388742843208180871619365086232657542016728079925478117072549305509745426200017255645395565917500038113393836338691183175577538193561914464848762486547147051603526727984629095996102048096567274784940290236026914669116541993296552500247841171873318738450565106151288408509093889307038056467713775128523079946431374076906884972139659540411326325448289163350469855807683566334865685710255282295675349293779468154213937582596967563717149521969381202949630701561927546900281693907091558987490861586108151792881709075364179520242180058791760037059103624189049146616659703900583646286814527963828425909474413543579168156573789447300605444992466369144119247723522245661475304319037557580012967307020072246527688013626706739672812252802134444148727344351473862172121753059396820681562251652544406322979826312205791841197387887073102139890145587531396272476539964118337409210642985039290920936364637364707543027177321978302835431791535732733738976504150980717713184520581079485679886695409689155690547969984637421648786744731636900348320977756753744992070320083071456476346159128169266889969829822762289882072360521791460986705551717049370376959452376501275772830847286692119739086368629065152972275893277298985740710900543786920556837181537027291792517590535412293491716854834907624244889118994364580517609516289822103752888057652671638434465337637383608964167301942839186761910971590791201772915815512593362350396554629244486919120689578536446478252524677903306040904909008252526257600182395407282332776396003030058382765404483007218546656212296665724889361843881956669723308902794228117638177295777255414718948620996162078733156322561154229067507228430447196231406008563765828272993056126324925989937057803023232522603069691745467558738106172125908399857795385351535038675768993499768920801612737891196416188848561684877023264297320224911721790658781842543267069654743092636402269608215298823495849137008595933059298071665755195416520489332332175156871858438530333793366633508068514147679896513106574955812373019790664287174619097518736981212775608325235178243093944347200071479019342507376239386344513874389587972117878596097818014015403992607357167632645306877607104685155225324019816960317544093041764278476306536464816905999964665461797672970638209711945265373582226186486977816160493507298748225638719191857432670655120155860277318732093385994307791916509595012648095686067120273987634506182832527234667900903388664061559818767686808039718045179528609095766864504763870721701891454905633206392428284654436309202011822245324558890945613677712937359163836253442370690750427887599104744794938788628023535549606058985268337060272823765078291705407027772645623521135077214596057966812370875196518444667277537830701146624518705649096187918890905333075733934061113934981518855163472046224416058306152530859324335989388821273981457416741715866593443902607368091281429167355943114656236192741530823557300997109809177590993723653356721407867212851766441984025938702035646091610118905042715807143087696393510119572540295241343565685191314320086398336539614078230235612030450716020228932295902144486205341028912397446615822370788573772539421421305322424898504725418510133943137779769734047381985142409768200961355076985118781045117960922574200956065140036240881372656041374233034875658408304666561943643216960370603455038825627020403689383238754245159211127560711685025573680543139255220158499989441198800865490153817902711836735826333663094672460997269204779749686464279163331334019678207559647487584393646624303449084917845461434870226727272269841917516815796613656901046969475207754110147397940475393010694209102062282150492194222822746581620979880182909432388699044551299988992521756864565802667938484058472507782487509008797424047545597110682854758775306528184874282088085505544102953684760200239915600376939493306823104064956853961966969060576905628712737955102478150321689486479990620287090821716843856170948404001716346504511153863456841835301809958957806470005867602004551046210560168056721947972781491249772430386143512103489420831766226442948523034649086741454813561588901474315330020417165038738825542026182164187298625079780937286803636234223278037276015657124714574101585808556548985579277369678869579859987051250075649017097505681784723856651611426179774793874842313982181695116765057413003031877574350072012422343972277955523109961904619303759521058184605652916037970120366321998455914590942923818129871224973989476026879939682462895508222432725952472048364006775959623244937167602603683116773131702420633092649482813263594012002027014401853673446859798266280017440045834299200302455190128487035995430020148359737166986213305402241598901760674247282266664545018685615162043289446328658343663312527141538711307608272869116931298508904971725613163429589822761557604235660607911935808794475390895871475337572578339344455934153832231963177515626494069040889078171452570742585777344934707997082993868165232104524948917021720258027848498298262064934783381446250267159381218741805931781429342664811814738676892741385394076538414395925969124032054378635052764039234127701318330026359876891618953487224423663263658746678078221848726530437147748447912680268768500939906915362319505564636943277567111207294208493682372134583233614530264878422578705399811888422280722904075453345090295223603651313422979700191187442756432580083920528065495018384131061263396428869192216474137589167850635103243055232674622507293061716655191958857819291773109014235524592852021819962210344070229888106788020434303452750734032767684208660267218316453941449937352634372426147975653955784212137831262981088933060187959991370441616289082175879253930849830370933525652277243575116210373492326529434568384244738303982229500606774338543398686805780259748228192590608710240363234815486046951491082135664053891924954342665962664932606675211374784218934953631397504925771212567678215013777607252852054081879759256546398800463952788368605989192561618346706668316280254448722337022614610523285962656449886432715315041069011041287802227429487829199121064356610989112877042803197150595088940401568541077128150933885675857781646135075588934825585501170321167583502047806732026387542926025870142914343771591363784050651936309893968884929080732090357148681596537720316151996994178184820629587907377262406372918969798970764118387289622343017627533060012898826450799274328696640172143531307241316386772933803253915425893978644905488715119619611374022087178436209375219076028213002871998903082561209101195147643057864820045989213311565548391627003321068938048346804478519320169665241064751040224963433682980994632327662443934713377470040785741251365606509496196531643904076103495084796276723710636346686046252408748517930600964856223779673095767210311171923785723852234239984817496399401655461740354210324654274608904106100687301983834090833030032536503106327851140013616764639624226082068989851697658799875195409813183034484850647500089994410115061401481691697985621850413104800145813488315915611236629606407112364464615240802890949806618028713969406725451928687069872975933492914423890626263402726991483473595872963936919529077469520452396038354884364943384158735536754864725574339004476485043366942796700529706169977428532455436993816343062278436348532917952111818674629900613715136095148157846673524471997948516468926667232832535177061450044537460943463690170187904614793628589682816785068128941721491940848893500497331197249706030410492041787540471019145228036001332875403907434749069754305838892629530777799221026362315786381017501845350936949052428250938718159368608254794178601594280226394535679969543015379877606704170145456457434419914420864612602309726142095791809541389941798980601261935962633186779789966898661105556591940542479021175237697225276090633617984733476920743743190916964541464038255778032105260027816911394838603512395325208121596291360588759173237878487983644195433738059546453923702519137124663007745838351747204140233463632409150668597138722951676202605994161292308542634659338709383416456558893207757118390829997601016499326674492821412055285865832398566315404887603322528337753290802089087050333921258767630656866020923663941353168316042817849214293295575838240281307427904810247795986385980247860799026717020415641201995894880280405986233677119127072745984906669243671291965870506236742552679398197979329088346208019590928035782583183006987236970563008092408395770557164203727421706459091926297857432860285581092960870093912585771456978384455364304109676355091987606169753500236450597315032837065401616780478724005954100834957835466266006699109032802723873655500908387005414468314954793857581816575841098173521673985908189343305624400838084056177453407212488624150451160903153114485517253893289201222204665040556574880701165120145089433155018408407573563663718136775370371008544219946204145390734135266692051385901484968692216250824406161423982018507226748208306359742124986025384040305364863351268081838813742071863888617702317628302665127827884792836734203634267753101201578504493652388034149355656198629406833451401218470309936786499217554355349163271551592958506142198213022091058131148077379506813724688672580059700960813065259404614123816558141707543888317611397722552819044608208081510831613430695946910310520138291712369287980641184420688556178784699642523222414881184482412739987451179948736941822679412922350947562102549221546328841596598240524040179323023097011647188645385502446650459357833053987453414881097809397092524358643087213420573642230404325937925509724108340259028642415175914480554898355557112837179570146568905437643730588403043701728887285447190097371645177761529970170636542364530957844849312211080563515715015057181471257867627630899769832892637174270404364524642842995199920612350029937357646147410490009015799807228133833627139335311300181029638419132447578648076888617877367597296386037488117265783507024141809639280280203424821069179279747147832759570411492618615658040271145050365821303977904420423610309805566324019759659072667300355459933197756987837048838078155144399832251355211570331613665500730976322006453008702019538517851997243114579036205610585185674123741128895363971157887182546091384736173864059268323874093713675415858046404236415309475849382127947686611159835509571372334915165206723632139226010194144366800132952812212794153186679065536258646906201286806846345559694281273765581491133434870737124846007465178391408000041109648104500414552594562967756523660926594890730342057531914729606351843174801997408970593096635522392137089978390639114969038746666190259512397554512439638025654397332337857232203005195031722421542866050481118937841416148000640275589331638445449654921140564453098572471536543051673198665381297644632605570569063442522032014561775675797862701549023179934751494361229246913767348156009082214116594539986371915115111534977890424331831749686226919975823997431756401154238688656635902332722460373306466286544377065027174993967934705021422323376649160666834777527747530213815136525682806128922658994937786416242859946980976301179655189846389737392524670454207066698107782983417530211272210653516299220127173085416987458685742924064990646685844383650423615043080024329688732673216632781452456215522704642164365805883857122308426899150102646920818463437769599844377246523689037667044562841481050328152062947178519595556576092102666836670043901416930698696434223681817059099892910015898677541185071152178207791063906851137346958313206667227433334366351316105502612903318839809097596275848720423797502176023768031175042680754609262649329344596514052192710995185153621931039843740686823895059761903434132447267159274803517785707969543054421050387996286268614094382946931837569734353653943060599586333323181583808429389528580935898358361166876355566104599224215419220732719875975909809325544317048076353173201449179809713107214913007461862249327076011246072533790353458592645712229753243315719363592185819035412385547113214908191211199192558618094223538904550577426332443553202839317701272133048924668310464530773513020143751752200848480330140852514150112589460841772522601873501401452336522999301938596167101239841404214623783440004249460989681075158919877137494636715371530027121809156502401120829690410451882586100965122923477453411998120846946867534939344223698568035776080336112944571901313986580177500887171244242696493438874606337604371804631289776310060634978244791785100388822015865605812732469918335897407627789001088698308121983505348535718013087682455621105021735618108721174907548396324175029125866027182307279897098465421514205318007691077608367894109200072366161056125875519243011427949491704894473828189564063560034201680157170433018582732560024204952310973140447167605909729815879597044469310337621058142915342091499119858067422517046850092523176817261014905818965726239473335963411650522928998036449669623100490571045454667890197207744233450346527237224273634788944610308190389595329902586015069765829780118487787643876716284825632051785461049251978534767894178604497473288292984981163576138035278915864457602533744159623590367792838846289323531595817143789614724365310329113623516165870437899712251277707815051740316267189066131089777613918779977774259500615499281342168372002575167717389518132797905187882727002533978877524194621717749194396298392954187804979099557551335298036904671776716565631766386829727277983129947603309435350278564565139657854218860401546232353026361751094310308838465892678043858923533324345648461212038286896775155397243019300637115827459558566419860212770796024697662794611454512907461677297108164952795591576924777683719881478671245376124057954608242142122936162975430568971173706504638061808128216176521655369477186641150980477092455287813326412451219681506039992396905162258038777091358628747331780022096143810716986349253711008305757874299840558699333644205847034827948076350164585067197134207350686822183463947639661694917772120660969342703922872705201236453152782641954799826476931148309788553468323416601943193791469268029762788791217519993947315840533488261200039079341843975739715583822955968761019635106190795394208495876999694260624422633503499311867205066794304190944966958995154884734585585494467371676651070104394503861282955597545498114983946744065007536260719870552771081515141153633747953815011302359681511369975818300782145758007932905595711272586309206950187906616980762007204131096820587591566275957994412878982086487245271586565807371898524458508740380009331828337011827840870823286365757094048246881425328901069743555792090469790374311789924614317186869982827746188150401245961586013840137708066160270190138077521562217292362799091408691416724409961590933565026011672633656587939124217172455117099795754841093519219264265697791877499817178881675496489973351724036966150633297316609918824757976476602545814897907230004347496287846128082436948304258580954452042762159082004961192177902520248985488236226952941032816315228950158660832068115864736834528343735406581775280512573635428457887533095946611404327139649657215699854726035239990077727858476495254677655146547682638276961625354241518937841947395861981498945050963033443106644744514272277008864000891541188586494203774184388748624629683653077189346560955066986737895683855279121815079101153914355172354787955049826124435018393485095974428019079556613308926872036801776986047044412334689732865821176381248510654590357356042393740963898892850179805481970849991449249807096350740932174067077535635850667639274297701308298457034500773551587885727208811640477946485829713761209354194725000912648836913151454456367475557151691323383972257246205569623441745460146692305181941646843267055200631158548001438256412247392492571149993137924270759593793568048793251361489827287889668875958137238898434809382198875735012540094438643885045334192786057513018173679403996367532493764910400012971657918778623231436812135061941810733293711727551008533517765823491563534151376221491304751889961490614604965799949734643664455266600310434344094476903832738261269569608852065946262563860107404038374640043042021646972744828094711241377855654020968082627383103460255345674246170820033971930767885004031767143302702936375265774381738543933787554212533370702802574629076974896302160482921871205575442489694010651053379884688075404353550289535236077074274783916876213228608334541698037201893280210590661984703829217944510632510965368797327206757875399140637532852205837095043264114501309508273896168865407759616649592648059099494145164534925112984730635042929065653962269237615276368115872268559528603074335758123693286880501411262835645917468876623898295888162111387372999196616770326360667864900010565294447781785362166594123515308585623719907983337858208955702700854517406030158255813304266332214786920637827059233376313895135613961986313294631771654731069195210704875343508454144129570032564201896558102687949132793870230218740629767771207251420095654203407196186283960877196160684042932409862468712693592986915515675970234525263971216465256652874651701725580219040881470401479175556493165122078777715760958181560726220538683141446621747663174491977446453450530064929563110769563178805428588435403228324367683464727516416122653199915596323447509645323089045951968726097847220741033431452173427524005810761532644572619127527285373020742063583974468778935706772141609565105644445872564397808163937733914579601487781100956364621308847644241948507987204950893350352531046041582717376914912328009226685329899726859551956112742994564557940362882190631616601384399450387639059395258823469242054600157045159160717250147191190998546665898371742021554655988911900441825836245592469064345009340329223394130765388256568621505435754065383554856423175277862621483990055012337065891834215449534744585112026653758631993879300903192677832001743665100248589060423146663420816121850473208599040548371079832968041130477887656854621352712232022069848206514213934465015705311772838906523843605726088706476837851575210356505712676830895734263905699908733139920031722967009702344123430610304106648670093219079861591904391785870229308963657467146828993573962003899666361525868969668156577820843669541554507274833445412107190900038703786417531942422143188665369118345518973911316333723191502197364565607635933147108593621066259293834576081908111001867086526794555211102961932369269396701814507889541089104842797848780924852530019241463600399985919843728765054599442577808243820059004724745673306048503331497236304608145927627495704147906553343885125117132481868166397252571810997981867847498538333171367893635390150061148440127925879681012569123136876145297813433170980013472588824352815463423188176096079646900948514434042899852648721202974341261666646998589231225450311754420072732204539217766665591314652711253340003010317307328596781770243031478235596127438033821162018570646391579044687026981122483452850661440746136130811267821764450444587284243162633928755104952765108338197381096057016440505763489969332203712064664225485381048048626325727836392198878696058061760180233819293715963946414114683269168314207118454547027551038710470900726353969442645025489991777769657692936846492256808125822143147524524252058371127145945152931621777941969565747778433904895860742444820115875326699504040803032993598127487063920011741511508476455625595814016755292822868110538027688180303047751179279967162358632683977349978254942143196938766247658996538903220546371968102117683934434205073047654638896366065488307830698324665158925146686102872139833112994796329438666150157315300361510519633879928880846767907810645035363700959301440245447606065475594218830426077617591412645738827483894160209043770110303102757007070512438751306469686980266490245624356471971644978330945018075195346239449097512688327660407966907572948946906879745355440752220384903721691369821708666756633154949221571593382643818905793155029872545053239675169425093949903042927431803332517332118586393876505862458090050824371687905522200128183195630307703884084900704693784508814330842489421276343729328342255980852094718628141051276817191968227742484667036339965733949238563807384680647243383664462134049675536441668412738433603057597069585936168751347715430766939320944126048299403358946680035350146205355567964428343813378252240319427106132879891991380198566644474454021899457804450807459107344084245446237655533438954802613560928017250898683029945360679578757348179313938126498441098379118537982887288075571421882195181260390418199139821392447652355743914656048360420233419936688160786767516797263535487385116276455657406333777786629795862374820895440937860111332823209782159884724205030344874502034423694711852883251646642209762411863744903527485473920531989942569336949561171616671669139201541837925871393504853770770745750926065493998645042201367495206513330366278205376857358452772431623506170356853123715464349029114018495422273968019419554252646751544242790201024063113070760794085403515846359810612826399483994720926492266381371011360172735411012786193703021240669120637666910925183112052438200726966454698922899383735601168103399547635459188914356977261980256990664967749024615475565155751988319890881011530466024376936357749144495988352764572934376337392245565459281843206313668877993615314491614604614662722143304387795541587501762808756090200115370919111117405857572037271026276000046248492080546389471649857769842405843289073385748277374861932648483665443784887847592894654259893253483260939534471236437020692105026212695824414044100359145136092829323228038036025099943497091105162182791136112195691666564189953059388774625990764952443189052938023737749618140759906929003858477000069202430263567230809301736414118182804762264096676333177334968848164417431072838335217289663303265262948714046452261669070912657714718269854273806047977494087853749644019928279478584364836866142894142601474490544333454418226920837630266477498948099717561820188545057830748460607715485853965165703318177501167260689917889717226883409963331996911208999060562516854156622740329878661306318913369061996987750636221100036326287633122696770484272784981375555889542588273414895813639892120845387015653017641451791752022438949865512362850626089851751686150270119247783031069957546778066710421374010799123606224825780334641503478605651808177234569655439286009530201000177972581654771884343099819055648011548343389118308961039012231523677927737657196823633688334026790518092788973337425157592459435618219633685879713962401283667692570269242666404377693743234274200340775291013797990104636530185790442980706036613040965060198613897515707256606230696905529921240900039041496018751935104545532155746790062574023415325232998300593924482718042541630634707867913681439641628242060147656005955852644163794161082013776665702372667119696069811412736586423407040551527316965425047957571120660901172102912269420330293121381726160609338716774473810810141528190308507075177737457097269078564214621802826972675207962177683626095686345427068271677152682312316858566053652069511182876987228111131277253277235385883265915520395608684655516407958801699444489138755131164175165938152057947939754193313458456093089591544357616721956391973097560305451174141586809329425525688564866122085824233296984921411155690089299446856448050714255247916918778427081192416508907743804854915717648828974957688218935284061015797968075848215938451946381572902757855172612227199257588844908450418605090913029360258347781777126165703172683513468743751344112455415004974449526200824784720626812920954734040560004995573820951601617241678258439948584084761804504299550800540419495821457891830246922448788124771815416915071095575475228053905812971289634657602221098000836409401505019682758830219322751750933570106417815535325806497747577090745621747534322347233413473568733692729250595470131295794106929037764764545530583312917507957598833630049920248760377012762904870946220747408096777405017427584196396062181065629506305270020495394319739883084094718405264379353942309751563228600430267378248545118996952788565588025667976099971358404737106452539211695619085646050372546447545948046474430643897072715276215915941080883801980295454207789326994586392358995020638665971362526316068880420841767705937105313155933701153841928432564552937153863602001238841711869892259449765240413211073786815436418972104568870637177337119967864812314828328077433197624352941923036950551181626339859507677551480184927370334149316060339808859144971891909175536403784746877712117843032560219100564613343310405765362613466306760130127700219717500511606984224531873835816566778775898975845987206804199812130547110675983893867236402470185147047078631584321655090428144081149331834765959659484446665133377831300392547142749317187240694380690317609936082980986690152253760370592548550351938746134470725461004758599073050197343361048865004647056369902765712291551978808876710498435017901034299045802638997952813984147070641254563371395016652134127191450106860313009559154400460941129702673945124304898373104300617338740280979353887201876677709169258596673377372915339570704053247254936090629024417436986669693778871024494272813802457342260399808657923663364418608168655845400414343698541587775782161970695791789989884197161483269337824058209925793885371533105429326356828696023326516702155818411784753872629767074754898491520444742001994088705332477429646086515632005415831513045346219861812200914600940856693458420812467256549046143823064435989669890836288100643704723965980189355253766853710776437265762250900251353566096551621245721495933201165367173795398812965020767674471664236148052858075117923004758253489223889149641618370779749886052038126868463568931634808355830863814840424211123525927973476340990421014048588737667400499129082000557439281454346529970050501593188663695221438256981703066233548822007868430806731748634830124193984557429002378240700073777912300691939051358431068496921280719241370427193159745076013093863172562885203788910186335212168746637273609874211043060991878970749849650699767400931155003314043347295855116176133198976170567828630643935995120786878984282206070996437980806383327982285887336125574038802976220207810731274561290724059823727534958085335601626649989747250693088557610982358068139694165935964844947004317744555358949664334668777570543928392996404758200827406529488928942743106310001439571913138781210381503366492548330114391667825400170487702155296137160183919468096773864008014301832081062567312894806088820161014340527403397460016894736075457368151697973709874625582105353383087733913959673444291840812209058176626308467129643953093165665822956013793294472721147565875632833077463335404587827133550908465972333061969219614448384961181735481145409098667703801159020285070895358236739384595642458076535874783066295996603942167909303840264698992587535793277820707347316815562291136496522577152780449456570947507804617929410317761913161128576601785675255639502489436716543562029957273385212281955371530399184287795415537014722216257073528136820904198920950206204337974292212317174342120064120647177523788910453009735249368435310567622729034204729285322710419852531860265478356465568644367371008077149756091926018196036628243237494750466745110704391128223783468688404606840918753610443985049181897073115390986364195082262688891372360866515564257229848822115896112467546022935821826568264955321156530361684673613011871486407237553594649013302977770788605929590451528037405553377916220236136719943267952492661955303763452793597243493181143148816737429005657415990142501057862006512451471747777531325960001204413197306928268130768028129670554062534240886534320495599770019089693629344832743577810624372636952070209727891655529316871776776031486027758128570630240795433293320145970918343005309824688528860699175867379467464634562708109458675167901316742575857943459620445073573655984110047880035215213289726848731230777346140502987011204169691095352698511716699528046478098557979981815855970324260877149564063499909718088986202651774020425714433556390839533091041084581611769257545650314572241941326292344598955790987467186111336950270511050725050588719355125188759945669995728651917189466521700474912645891350120979000517525086419750322102349456126222750402419577084917282249455557980150701063286618432594658352077234315481609152044975737511751587517517760702968099487644456664399989833086042447505177578995135094108852173083402270055800453223200602268214513075234611982927577832845237569494352004861585831651687148182700186084500609982486180755910864993694995942259923445720956083011537589483204191077445332321364059565880637332815592826274670824457115890211591289101202015681612491821346610321144335897750667159230436542314419499365122235468385468387749883160319130584372951604037081724486447643020112303226036191011725961551020080408153646856992063848894226601534404738311750144500114239716385919831635415461149088234460071164299953594175108314497092700888210760769725126877923172737972265534235041795123734336441763790335907437886306603706601572964052656210896081519563654273791063363016362519616211778920158785964997204060642267110825720204618334023139436940335003406458888037474763061833128453293134200453969080270491767012248778012686771727885427303765385650254455567123405024045064575604340766481988885643141922695951604301022399290308889226540714008947917432027508093945393657521321944978459089407392672937264700355246178075730618191523148608910092692488177813690908738527829696875736681836807894726564884384783587308620646869410397799990447653297979005896764118665834288651656692842134785473061406594322872284202234907444365431158832408447868824096397174897686494086592685580376051474418648379165309447009498566258786277012732997944176211760048234073994359481673813817357822496486562614412846478373193143868235322834428319789843801864058132867972155231494045539541490389141265494339300081436528535207742072870514694306155637211298992086413562433576702507419333224885729488467749862404236265033639591296720165365015257749595573473539673448974132549226017525384292437978224502706491976692160819492031923715352715478575063462192347087668130589581465062951503187513542209092169321018399957984838310218131313957474472788462948641617426596449032490479471647173652080353694544491318404169962305366155808411401924710479067991706108033903405507344839750644111584570204868170808900408724834330306925862564129093551099305317026300419691828812527146307812142709713729728675797642807817154494615437736750817892685846899571177473049159546123572028866385767851185276916385908583190131281912122385940520849225534321685116941644822908959366940039254096261733035187402054581367015118311712701840454698705459257280950788533153240503433344907756084593076359723362737215968733354349882256993768775202264302962546637077984514319491005664344556841538089764869204866779397642582335799139751767312077689976656800986581765326192858958642797872848235819251292263040205860867036096617983797591036245756755940678449110236559594187890450801440805282738046578284044129685073508160547997767159393309253501980999410485725332902693168769605807708535377352863585681161167223748503941362281165943432198983465458339642373451790630151592358981522740776691518369665488797098947669387435285230460058534371424639622955696415242163909477530023643526194606633855515375039572452148676506583822684314245146924367184732837096434949182608767801611716287649136746363956898834628982269294920144092748698465035205390859495567816853038537800093106803802326371376834280844499670434350684818707145585183223941199712223868215597573070576282768821096004270424903696187220382831708716637535698082212163032134792581013573816712692601902774586375459450637181657386110984588365080614986335546618576502933145203182353303388336592971469879132061834312472408516674610273696243575200779540081167150103493387391164101319351110068668979776703631491078740871223825479150427317260642308715314200602605509756351509753625580143524356638772105067276981772906630796654357387785849458152959778119465725926185158808387514962618195309944914710239121801320530103897777932805626184268584412278022609856763540857668636089030832147347808976795570744560296428610875955298933319786215484727826478128148139003237486258021570769453232291279854792106228276033887491653942302874379421636466092290894235563452680292765445230362539832131284417818662611442316982035214745301525861072222909921086613344701635590107230166037864992135385640402209591938229653601037118132838312832723430946961375590677810822459237875462318165273879885829482824541494572676297247712161296630889207556609914093027709127925411765426672307804594119260396512988278846369219810139498006705705946757166372999110442832906057776608224457725119897365716382115757976114065292322502777596963578988074967725712704154388781378512763600957600509556491957507819960068589948345552934093827332652117614222908115219455022324849413518192966232351985100396344797014302614990174117333824686513472747696028503838275741413742952203592116517518584695623034467381404927631704568637333574131659487735582068661167464655387167044147755210035549988436117869364400583182534073906989964144094685939214583782583381326619482193331335391343977769640413409078149665771410107808036415625139629007063721319624233773441264102727428177821800929076664619957400563975523263356901059258380974633014330587114679940603628052246121391847454123865255068543874121958381498762379409600460434973006227295346245383535363534771791286922645835735727171158057584544544044195526593821318941432707826352839304616347786250011423575456770476824766351708525980934578691576420783682240181060183377213263103591267863569351233603358666103662154107440823296681014635070972513257605322370473354348244642231485559274455829716541938617864166655348786276631204365892902467344647923624050024184111571731332182071207946639780141695161073620168426027989000410026630449978370877507229530693791326231672091547186573778403845457079703007059999498106116650603420852309430766663087185542082184485351767150877423826849088416547206878998508550985217397296643717070742805715245013009591758863870089368396908184472791074779262907399806500764562707560483678602863176079017181065525948151088044482983442424103278612469029942655955093894322692504972332785043362846066901045258004130758469101537738794485542995067427395859014294521510913364439148501223592176788941062508879153290314472915003099331500776666058736544184800755451438234698730419230157098269300220594070418087788409145386623991403427083854517401116769504669559733690954290653195447020205793068062121803350105320681050466219115805156702918367362679991859767753522433458923224459185644591418675392887679940298639886631295610936770603071934865917756105050740693628944475681452948984117054450709432446282601870540057719715334926587561042054135768730664146509146806413176447518562165498640685222048976741109654917908556766156606674945842455587837617068547650464189475057129310434931657231076591035341030192785936276755050466145901597384171853371271776931253063407582119851144619435705499609970646795818852459271511643767101563457779975480181518308813429177584720820164728356665082167351862051049922003840858967465316706933193149736857278402566147192317143057831867980189196416551386191031726612281940253754329560402485573811076678782749507356894960156382639078129253020146517300246694355805862788624195676918549180288457345487962112875080231186910862404185763554480291689596603953219662050829282812689718525605774258574003539071812220535666649137519478975175946396188814464478733285363523434468626062914494921670767377672605961190817129903636317045483729547888062147122151456324258102862982820474621344774975278238046198733384217007450137814540862364451754995577136626401148937019361502904638634263104027841198675082508527580326455059472331528187931726360983045584214898110472056257345888464036602875425020174295690526926838898740129193359131610715034781842412172285574809804758412861136784851973739891506603397391810810278767481121127864733728444777932581571955350399433239745152747283917360077293010433715809330556833358902090250894125766240740986533884216460484620561692964543034994117779546214077145657902493927977965364165418538200254606173359348620194991938939504301912028355888093226312871500163547201436163775345914904286061477236446419264429397207759260201696737744660836608093469878111513436081556914793507490011739843017022189677679974357971797860376145976522935332220111076688536617710435884738439965661004365167640919970305866769245371177528275727573072870023636845155952308317674553969071216343771828322588033068274816338926049544860724710844303460480478560034716725929478509590303572829397806084637823698597105358421572560486646605013531329034524290384264920529507148207252892672746123700794687904291651471160847681226119484022769095879730075566816630089058798264501981933599595614872352201137734964198336442064632688493198615741920444093018340800571340651329301465721976664560011105212599446322912261221497941223969525237085360566767467951748596862174319765729923046381649710717377593868389834506562239167629054203996378430641791620590692335301128208612121566894294622790493714936131521692931744490921754628682547959910984648227564181360900189619002454824726858133236751205025348101355887953373092346925890564691194420716211893821847463356584584961528879765877477281963912287649675980784460084269903005156747296439903369537625820613302963635176808970408405892037348771407734005228100524944573851308767309007418051830228069637248356471025993795032967063097786674185051317254055888420997683250715936404064664158020119628264191458637124203153420490133151587894247536429785279774300682717951872164469402041244427878744922581380281432513490471919893296418310995730172534537874101783916058468662873584911526948001660688751342749519973417838985779511999509207357585762155556946833777812438207684911033965083978996658696160143182250422582530750906950481181123728554290553368607527177094673879987184301119941318797404594833084998615771247203796242632627485999590810792261312801855501600165291731130051088829082132467593970391730038225940052459962318682616984135668631027798476666472403486459120300830286596221565825328254040105293531011236526079893584416637847738143475106105489518032166767609782264669893888296544601485160239526680296942837543800605669625233706286546534902232674809691027209215268299912683088539109432281285936995910366810577034219989150568642613429332394747407199249019248810197067502939289462724640636304251425028881454145288740503906578943867243029699739332608305524778152572326075930033689469743233604963344749025520543746102034027973212595667640201687318721784564021969415401519851633630031746626573026459215289672878979727932937262608432258517826575356463765844062976630854978804936982398804482019951977459007974668404809342276149255995646311960543937686027379884023207786273778581509084357397553215043417249119339983279940201692382059467998130875362776335313280650438376850644481088317744650150935142720802591119226634096502085005584179240257222983861105955649482775233060818426177110689224340893158210381529314094253924187293639913762716135558172362061433970227807291066607678964542829222409898414498623303863194477695117830057847536524157350961452598069079144722524354756382196018280890705049634497933809041931822095266538437225483447612880487842844191731504103973612699828505853034583524366172913904910790516460698650638362874027621038850988553163766111422560226244746906756153532108717564664383847059742917526332815768622419096685789116424887767046908045901668641049148614622674669496164062032986931670824238234677979210503102598046484612449754054660447481003511234080601911222671634728623175516227203353035070403820803487873118270540101391758341384770082131269832901247541213334537748469596678557746087155391903591985085210124223733687278350330105116537638067710054983133533874674206030088415682429575176776891880144949958568608961809301702507327483302549793137176282011757741722486395867635748025049444034777599456398139033913753060982395808002301868295008230306595777371275269203705963647018665462342307507192684688366879425831136467025274070906457491628370821849501412460732033067597367299445909978042524006592566621725511190052632183517482419860997384561297015066492479282916869943419120052101029353692943057168870033158633769873548600655607182958217078455655073071805797945163515113747240842397012772979288163223453354850869329668997530998533768571050819610253957729438078013082619039704752164002193739416922800543126634165435197833771652272184849832227184898350487277339020337222207192502845188331709361528273014913551727047121900563972243991132159745493928804318301649725147390072498208930271404478765885484057969650403803649754616213525027748172701372641064569234817890954696564291288567586380695657373920007670224641065662322194942795022355481828609748373844688008401410698264210676331837922141497311559588100117011711420387926820769562295940823370628289015993380856967829720229181633110748600486587899283311431232296325306464398920180781659095870130566912922220015988082936306040165992428197768887524720593527534740168619731056836733726364837465140399903926812896728084397325403753080132741227550777129063226475556616479649940019604637183167955988540092028366377509113055852066099129096537423078412046185756390196462602949032061604383929315432123025451406195200032614731750446116538969711726630299856542921372422298291745456822564855803997694053821292017009321904915300873462798203950899011291842278506987571054050859114968526573120869120607815349610938872984388250656417295395816760050360681515809914467962492950287179821712741861220457287595606698031539889392891012687960383776176169419239965031495604835985524643594407295068987438864537676785004349605986105001348708078527490944403158740597323422603021560019080222539333954177160334482275430127944927733115074442594003133225081774689940297808749024901678612719698485936628761762038126099062089693587476810885311602901600200918730571441105998961383641135344346745398459605270095289243513309324933294742340880851716349176875564086247771228672335838106336666904312210050333677260586247869006567668240517280509499539506431071045424376287414674582849028206308779347883583805957986063407977126705446395697113888682347597650425060011259961777845935005630407825691211376449572813494635576698408497316669534359727910640343952135242734287477989029403455116166134050943436456492553011016782354275274318001317998029300138696280992151829872817757954486516822888144460882759366759283122904387196025005980343586887696166081001608925148597729059908030577144523119601771292184296430627670288832344529922798545564922022129440403182492129998324358916335967705683759528000365029114377574562279843509737473533897915004381756941154862050407840227865642086748393651290280481815007865272301317342418697847368740256783504193311211583297897462946877682923838934700944952537986884422376442014279956109389762162370829148767034096858699292026398247570694187730500968586308385337703997666042595410271322053860712647750276758949316057451077786228025129550333731251413526233224950872625749355864700145574703870436352641819927876357303215808575125566853800290739730732650317115650298046520427586813215395587338330861742862156960128560999987047606017976279501643099151571597071259328078256284246059195203630524206086789652979975430779108970815883953400756963231673049100189135242113468434709873080752383268624401686257415869679073182120480157821055247651991486512889677381846298575227260225591641893381215631973732552783090013687379482794339279517981672924540800893053401271306269805037657936372140197192311013928863700439197356250706510983978158153192688942927857949567724678997547112565591782108617488093972137391352299166070093204835328813105273474677134894135392703435467605370004631338395261897398841137187782070283076242329500885268633151160248524060628417647546825111401335177819604586489516186745547972152837943706598857957688176318110858290441149336881070504625068832802832882567180624216189248202418818089529106826178869622104541601191365613687200928720121827816135754547408649288928139474937962331153236753887766292740438149878568358454851588404452779882547355716066922259767302271557247386408572982571552572585943760017554502395585679710187513188054538829888394252505986081590335426067177658117463772080651108842830353404636191853796714080283473629253569283023760981259154471391026861568460202553373840685060975657758219317218993026230210391064267094963586894757420306228183724533438015339626787577092004128005114310135017276525157398942020616825811634652394961390189472975708791004070940152207758306460637995398377456148731845382623672345311830794717925877755558773374564975912171216852050594528932366917934202563152333698988293879977839611384669901909774708773623849788292560072522010895640296037599478475952845604058705565424621878331952930696144804528613281704551169798034346345634618302404772656274139416568804186212056386268886305959819685642609443857363733434381946594072241444446658289115599109714035391780231775096305288349011147470429165069299881150431010201186388486983646538653685489214309450524792683652064045735379798074071600340478167280281423180822345625105104821573762006786963535050121483369334121625836632684027072819039338415305983675670498121361006523692094985293302856364869637725914207854476181435681522487159298254968362137493428953231248083479052056980548972641391304544350845582747054416664608018709670484468132425948463262500542653979436010992996241422551692346954409694668063623436983047715586040712620021554060009081269780820595024966748998013066517611541133322985840052516629568670146836022207093251259498001395406123644025784634698007597542847349956371250691695385546037074748266485158985366658083094935850847325485119286018757879565992847152491255698945110787956681020779489613807364882438169696767598754042195714855910381313022224945616713537648461639716421600403514858520716685909494142491637868753136450091749957858943796349220259801436881866445188033049923423517249432403136778580679790170620340182849970669313614296922697339131832978225596409249818003338931945719252164544108873203454915904717859992114793200710690961510058125893768027327025301619370339703574987185410718444975597265024278165622627801508543911287128095667154629929511809315759696535737952942435477915684332112562700392709387433851023970709361254230646390046142377042130267643472416445733706162603863322086555498432001303308530164828791269352483278228143868546315962313136886904640372471088872572070378097455625025512235572700600041760627196215679787119701682102015442719651345704023580481444333212316541397499693060756424585124273514354033071506678659887521242672430469118851943992434812529757127347758175631398475523471084920976606778778691236462181103883613943703356833037792634625542435471244970987756368939206659153336210097915105301275565372264082383550599390372943277338531758353194265594522060269781081299362859485897056364692984029212078037227410864987492560693020218180141840891603730627390118142592047573214170200432427582060216956113103764965322565787317489896725908451185976618001301628548918185240951359081492907940438073637946384719661176501696266723856101862030157168136999924958760342980672259547632373953837072233539120718263779493440423759312664524832748263868599236021109382626928618924587880226442386534821389313186949614714633371901352696551056349153224493645067770014427726548765467417305098872056029262560662903496035745222597660473405061883753177126442246404907463792089427321033889867124012228880590533952510382869474203587128960422816532717722344746405295298297299214874581475277627011729523254518675511485170212339609254447406346839328282588933039999260504813520038654591420239784195795977172025807635376835802335694349539987070329034570253875257824189212494188125545276956054259817464027254923189970491745468066047058003026743245287712564191130437605256055007773546440570584526874696239814207279588033165856758090406507357003642971342612677249171648174347898187706502313700608346923546073843360032563820855426403219541574809607833866860447359560587193527026678927543530263778873166739058774105151776763613079995904898717942922579930139149911026365865179540545704190084229589947315255859917425553444287950222333639022889010665706209661934185882330789644291999888287134703671811708022774509791737948742725072213315262500952496188772831905062149161272483333416474923601533250558247242581403525762838874541799137207382602994473332243856507917474943307517814335974237841943278168059930452985085976600883383699964886933906918876093580500552206128216566547616015823870651855509681121340127466376683979184832432937218823424857726194808346076323119856730307200401024675221907287489070259961869244067273529746083198947970318316004949740181205706262300374927073569517990070190686927298523971079781939293795625000998960475309592068799984756011611293321343230470158093296689292364741172388090233827039596232587342082061929272774657613226809585921202506623391004736774514572612318553356716550085486543463383772042871825561064214591932866834377865041556083051667529502362378546654781857398277603030679747271909230899332984784252973701779523903421541721768794219427563768935395432004711012962573608073467052626063684085811946734496972394930346240554278113073558855012769137929473340187883389227307932285444681848743439644120476568696468160604321620012779369583665264728835754315806132311905991550877642686342768363201341837986498460479532451961725163451937518936274974332127343991737661774609801538993572803163960803174380520422271491052693264183512247776411257586497389578188434026922470344235877798942015765989310058713403380360658256708888322502846024750356902797596053415853853769598531783029785740831546665050312284834433007262621743239514868932805511973611488715783647039423557882037669809070631745120254263127916437861271932455023355605711944498301114722832791332438635926075169280149904489139372963942459775704640094882557407795885882115755577924439340306603915434863201315069955289427804486342016402359586049155803150874584685062829969390845980903580267273838983330605048579366964714859601216334134393469585995535927745641698863670450403002506696692703436346042804136308501309793255895783854186334809453286672241170645108823720999620435832199342985850109990559637784910174432371732840469091689062043265495257575947332737326527069021325202994354977927231280270544197678303616030912545086766744314226173487065496722313901789322194005034980689559904359531228526512742818998745990852237841375429918583206713923599003548450147121204173290774754533116305755531965688209491469335027659150012076302284340852475276601278170994126957422782129202149900895117106733053828910703761155872842690496701617248735320130610293648297841356184836394755177431513794850997864123421662276272499186858677477249744781898214825635288125439312769990754538435631802826649152809246969285583916049068681147988412568897957578905596090969454696504249447783322724423841499384694248201423684295007444373504848267570902696210662021621688266128665328932395016000847956180798179575952392721328516087790189918811383949885541840275915037396528071820716010704370787907242855087377812049594376402887494193407915310970903067841371059635321251622331390876714684471911942859610325222745544099665628722734319165476748503049985706920882990100783474336101223493764755528859364647406651781464173896909024445950767228436293765723794596662582477194218150788900376443415668123275640511479841278759416816023205018213420010326356929596285028711252186765984913563184244747504059508897088862670017233980613034645788907356314204108222039371657919039482073884890466644032795349489873165282637526656248969928881136580708475451224650566537098949654904953565594142602813759012615324220449229901244757371197670715917631594220664391746763957482930223413723078628001187804516892909255983097048055739599616641126980420964559926418420713755514950087004689061213673726358498270822558267360452846472596570990390426903600952838634003975196393169656547537829904811565639561861378796904862941231710403993982649483608271328174823943440076006158892079668810603472107077059230595303777600586276643489663373512016582385507376583644607824582305190385199617141014904622482489655067368295806521314082496260216975586604126878173280671224162699924105240948869603676696378228769134256694262248382859293633085612631649182182917265802182170560637539029193793070782842694675497957240664186206238652489885115777256825886999234027673271917607610544065118285664789802870449278982251563716263833808120829078505030891688274498297899679457863372864465943405146581432545845578525382305058578959071348899208399817427884071460574655454332985459345690727981257578465484239387903428930540825449234801475117300924146514734453893952623802392234520549001644305008988957291556926555759485154305449102760175953022196393869314132259305796516990969651536313471222109751204858264461200747200623055008850026281757423616702046369223558767545069754318849606315591822345988228018939766441088556043901990909779746866954048831055354951592516650791273206165020635191633405092491400935115732393595113759662271246229716453134266521239610450722320493640234784171174525088726445278635918950259512673290297344888149758202026959475468291044317590010067847114171601361998875822117415843669299374811257515766769596925444793766119514956510940193233839670729018576739893949222771076931988097120423008885667921559331460591028582611938153391575687928375694504230420010832968758690006441633270040772421343003872458643880110909914655409288181947798581711905015165295707024773544140247828504762567222909863480472493783768160741720072507935469026273115740281471112110218246657620307584615141297132658986405049923406047853012180874336054492298360151896155945881745762709301277906980580584557125969210912419112813743332602313609905410153158309540522773100478291015563428942622266961155099467612531027164333387515573701409743639461844660959584899878314151756989719429235399893631053307867043787729238552974803249883896129795662682679947273870588357492577249668920594705685769786842804345567364507816780986229245041781942823751271810883761363433718927242624795831574544641199771104942887029873369148064628771175265074007591467022991846880235224453378209934774955189168009708876409050429630596844076438813660688707420378187058790424461469200713584275549051751072344510839999079123878238227420900761997732169044476990327830109182864893856382885851035698105731096230770655222727721889827651042154825104440764047435570152719429277971054731909992755897769386334397072809529034754067698389044799978035235683529637858090320154222624939283858132387681283259256566909204478729110016801572238257734751818746867987566505236289941628734079467651460907999366999675292051904528877496690509827411386265678309628057676842308940410733383819579323653396218999127552035584075302781119866741918517534272177188521401122347369006420745691107261278383048458998629035660544307561524897307350638470205946050887666796504137581741479264101811524805928295938963972456412236705170751106734447229369364248126330571701488715429623115984622455936566548249923058123052477239790681137199517861211284058485372026387567092304743946508150684231292320721022723178225895017487568510092195094574695896955037079714533105050292215903874369291853122883755319276867990984204442774164927885123189482461779795867291584616285598513091251298902652083126977837117861250785335154074354517622393966791509507549325526144245496280324104369469752149099195111990793655019394900904903020279765907217105346623203547282429483860919570408780785117195969021754555464293540356224510165609027155405430566059134956561748202373202270050194397952076744620721297410830132212322984150818871671208294199589267232701348897751650035646942358462320541820061032505574677126003441253578792266798914977863132274055293147283711263142263667019655256590792872825998917193068716448912321028863691001424570512257460128635226237529865280262822909118742526242163452349825266505559716122737974838726381220860548915374305121457608150845113307536051889479636078462928717664896163556845995551060708615506592109257913702893431887305090734471723252545783369120253274598389106168033018063230033567287679255085965944999075544700447143299567243802265368184233366854791106825530879114620121189994296202588700630825604859750723784103585334288746552705474205423284199860103196816304115312032936454499984803258049187888262805701912198744359510645181277964072707557606369388185162794268613563836363700942436652454317218792684580820756202885797813397455109513665877021128133205594263249778400835986107695669098654640600883212524747531933292064941251430071686595919944768357897669012072951945252552976160304509248324197408571197543212926012814877921411568095449944698403181153055197875013588004652508701015894917252908101710767476830024258263195374006407559382797216820313836326514185419172041254332823396319129292661479966527746569847772179179648401871359647667084118757118381284666934520085621019248336579734261278041741019715519891546815605226695342361078142573308370951873451379312689272567150132761694777938097333434381410391079808108878812395741182739745569286848587584210385738485802003578597087314892511041776255742595809312556321184133732801550801243444706040053023450307277343528268226804638246910509191172424509656335228505860210814415829598977640011327735537989258735548870523842724414853340540273128362741484492160980634030134499055270964101921008623742449307221301792710363877079793403352779655675469006400780010509835326956457016655330583814640776824921850645177701770836214812824213522341746474274033283729739262719256521887936347649343246325944723496270505747813830138243952392437009246529949361739799698089864047047251901264727263326278453166584170593861778842746605811686774509535688068338759921292508954780413443323239128588322509474333380708117788301754398756048954025401990930886757585536903730066953706194288597296703278808422250169920417956952989832782540168850271619972567286849826649677264385030993284856654209801621139775666493070956636637867937400462095167904257732628222357495392856032176981399474078501172658353998572666252368679339924319182250472738013750838186106259734622309664295292522999218254165660405356975282654252552347453821714938644504730087486239866241303148624413442937557164021482157949135208641650684595044721360892378352597419702021774425350286013606169649895614411330807684077966773838196102217224262695785983023991396405995585841422482320695595499978307968966634901828547319982649920634684887716749409059597569200067214588268507208920885828224542920184368827477652152408927871834917054761993378229334624165391558831220312630871445349424044155489809010013497757372226872741574108336099618262110636211410914339749620776142456611231199598219376413120453613558179515591594844595784711858407226559980835066687290076986028798291971522153272066180422024877491802835529526338527520760520177943179612976372968123244514722166940685373817815058613655203767235607171231513976058068948753908306911535699861512118258224807628819344704594333969480118283867527617250371748704185209530878873108741875208286276622636062412306718771991625087194264685298343176591611661614711789799958854085926075698973295266117572463643739944694424343659348440388548039336534001471947872251174692048498876785987190640714528923092571974368317131678083219870818314845702364682063196515351069394885099562277108074758454060503105689398944759989501920171562525052177398481419345541775443457160674283386787927036452917313171453398332192542742879929268468419286916870933594396901228027360228736407806240016555152923744527492956304902440878849617719302413436514396987243376119816098303064865348803343658042044230688073063552348658191567883504746500330795680651701787404124747185606800542832327333780471417814193354233476469748605215910149762052239640171004077219104960566368068714193179002869775573786055190942213251307008875883707629940600341976873974171800377104651045610298903058465649759528520541308873559193618362046178230836078707183618724483479409767894842562589749744818545164913335165805899003248896922594352017109418855881223624932242501671990163146983187897822841775685734315963705184200425901811325277881804971193830136214550548229889032208297807675359653905191991010485678761262468369667795910298641191986932041092699786606545772483156146464673827981599925314394771007739704139613406572090203382630739190941297212486674813212682232794121737459697047743262083972315235831450354733379166944331514352417143141144115372824458553784212569626267616720766786769672635015910830452895797763009523965379708350512319157999469151064342059786036026087981964327739081928428261236018504143179545514865963907040048978460141186343769800200954859436631775132793732574900294974783871734322775298301302407835700147356243804707177102438408833995704241497788951362056442246244317293678687642766859536131375222209494866014949580494522579041594363239374727624465408459942142022505859513343631873200054495713041762810969448385558868368667605004121100414840051325400124219230450435819249254630803939917599030257117447955298613529933511767263047851319725040381866793526758298751616407739707741700761038712667014971138237656957491804505586364310160673870604421314265481893258935021356890912245069939521778247443970322049444612319305597460770113996009448068934374701169939605504578668724968564181878993695861011748450704095609858835090684983004993287608769723727803890015970816575757684354231710245330290895595533611997736524806164075280807566526806446097613921292757635902342882781553361064688876859618021914414660107808541768325620909773479875046981939363840556017254483828441112249767533598774182086033564382703073684426987314846902072666419689825457140007969766133705953016666743830248637409100108925915815225020241914669541498470499349447470463095765954542594955842724927330169325885665054026543895027883695990154652855076676722699026878844647589558493553416240439541627946426962905661996024591831164664262674579058055019928391904407693129038354756719425449007927724920357964088018533562952484938205345151117050447410636628819624714186947059204715789363880003818203784866271833992938798996595135180496022760467403453368211988926946215682777300748450689050753133480622773652091673408794816640063958818737596592420599946923006517090358079827084439827607462914141430580780637549369768620076001717721218303466661083591893122190895306495157011792947851572004766537392735775656141797442133848499597220154529459128540055757603667228628095366801992814114657289317349261564800908966718327762196310798963925684503283809581462444727274133399706480359694315320461742900600976207870425596711664870990535195359750815297708214842143063959307667869669288860345893915951802619024616898791907804330344982851737893043715155501960172546575769862944320216609472634323776933561697643750372779530580475271545697585342811446460365495122245447882960090469497454531755801180058611274558673497137474499005950134030001757526807284244543040533894127593819895785364716658582452323616682385879788891942859299414152989058394377698827041003051747323606257033026662978969002617898689498891975570920722473129408170525707646494655913113018583375776610484262286096073312230012269750474553943588029155842700652753278212232129630875957530312574869089173762520843594025909595959644401712211543714012536026099161919530354672795639019842535484100218762491250952755878977417155240111845627235619273297147434768651488934841669378257293885895569749786369233631270388049713995644842209671851563006197142805698750925917817173483275272469907653399457451166289451185340482783259560298675666443873599797605381331721157128029310848568002530247385732839200936222907248976286786375519101827788279433157579354564630441909229647335930934389272897168047472820119132877796933546969441705440463265673126176140615355627066536509412935230180013094482210765545140902567145179029702379286379810345619591310593262112773599249490901577445986810454213064332631087845023812319932499296569235902933741582536664159917849024137433224508536385429967850001030286571027041000520289783037186965213751351657979761078499500889560428131249977880274751253488393249452069399822606529234857844792193849139317540893524816166549783213602617619056668388942560876940677572218600445610038968693454687316417781242545994037939984528731079866730803143585030485608273534312833263104542585251657326809149525831579113943061448907851434619317698089515946464322497693668129140320027166351557179439506674815785726813013421681205856062015026138642025203606545294380465463298568952195166334943110260425126293069546525441238939412411906502753313811762471608029368176857620534401988843807435591298030973864908296104164804161528735489525279108411143356768260101581393558048366478370662155749065219496606747024468502320548854978793321448097560147073846181120488052781436220247842060703026899270594247874866347973542121252861188944904658835060075874973738885213471477496714645735331385530294631432388000555770290074528190669340922334441115093614806106770152797091793173773788734307044296489164746662848780777616223818739045278784037857536581766046504574725661720436437947702617045315546611638101339007662353926636129553441359111924354303846501375166409976895058901133290695022305980128709605360623829829146997441308689780456094802885126941475855152971865122521604916751810811912859098495157615799272742605508969296649786911005840110864655288478833775285821585916688293599189701944636623263731632422021183786830045426522588341342972532222032956977827936550219161683698595990007342412511777533298229660037534171148931062167500235355282342589126001937414626856378919939027831198688017998312729579862948421296203296168552027641378964923191032822305391455723777995770458732737401685542938484254389016439872975726345096460807085677680082541145006507186724937814299332752017553866357826518862328302637321278394166535965425452055215662078248482672746178865028652680229525688168321865440502807373988621225037940619748724922723931962849650793697740474575307278424276802269033833130349218527124219761548012920443215801444157330817287444296225116519111849379758152703262900306322657371409658987155517499161077397693748629521043996091117167392466653231951931218795699414816019103341400957555603312097528319800097825971255727684489620116356764800356373899421081641377983846628995436113268602161723449934735243811040966557401060597098841955224674007206575516509296789564697411800031128316059474503484598100764097137500340314331816512347158922709461632651801843412903676063047822590145640076885687818545166033519074682871624434823669578669012370299231986780512292125037655524769399587068889037670332086188974119950935328245519223979916605270232302032108435121770403483564410310859184692962999739153080846832534284865081086780608937768312471591284058024093506089397759331674599732208617095789676226929515977154246253704464939507011555450794591830013875852019802463698624134364874013875155673026370811524597498462877372381041259642662443593757111025495723581921218570915903206421902600022661281999818149656134224916026304973353162726110780042589199101909967472749090023386943668757173498694324624999369960817700206235708668883933672992873046037463790209335289421193797533796213336545098049801194857417781922078847104112626659748709698018326632698122485475516019947314851308708730231165641122079082215654406520061003629223144135622035321447710018606765065265725240153307204098687694495053240115529719459485645156751924280104837032848844226363881222259438300754944327439092774025697242393605339245817525004209429326065950813521984564601142383623283613617441109147384007856885233932302994693240024842103192157294300041270648340367089000375105239071339616862653411525456524665396525684403322248800259749239508886735916025535396967790102794271202999717286430810440057142256106022140213558547774865479337293020681230363323068655486488511802816920753936707559835782676746144701396120052267626131483676138968041494992265096352143314618517100294686226926134936399227030947349224780146067338993723025787017011077931563556077874497231009494077915807840176722802826932840891238024023507135838946992655193462113114291407952828030871922421246213374364123809091885373843019091154733847163515631130169825795689805425675562956068217380324199318292133571091223209258646021019623286128752496942658098522594776630343828117738619578039681280105872099424661116606464076725276973735727048828913924478927951822072882988644232084466659790648759066961353040557345545450102128641565771720525230773440993556378701944829641293410710218223182728393936350252637432970689895907399412608056613163705611533244983304907865801683648911059784116704554424195217321339604133398428477951179835320449184729870201664447444179209909735477190699731955060004351610566493817108306337950644328474091629636868678796852835622705189447368946032062314413557228769283652337883847583894873564060630803459222864747109945045585284009815145606305318529212998100297640248748724650683455253423621715552849328661388578621926627390819139311143550853158606631998746872621222477490185966367185288035882113347180441805484233875754689058057848736878155098122697002017817879050021655166789972950852618454232634281271337942690069553120033874743914868436143205631475180865340198755259848904987561417027606836719262013329445651427184549388186261705852615166823039351633957667780995104432575457537012516172074297253400896836797778531816032585714648436259685607313800540059644626227015887285173653092799111653390467680605876490431606677227901028593030366343154123813677425837434911876874863940674246295379133550139666185216128081133479538345215676273071123430549692100514812364922808559878040474680569829483998680052589276647631544455937936367651793603615976563002388825997612957355087753410071972497133713631076192228952153427731156491747912180615961532155229848230447534349369339235275417765203565727523184630417499534148742567796817746111449764010628966588774386516749134410816165184013063357186672166645192028731466734085773866424711221876743148160449730493734965286758124515331968489002558589481335130461020844288424329531594879264074340307337910174003783157423683606203534822193465645474700758336375944443067820747224778034046366992646035922907006896597402436711726183739999497683488524753026681593262497870453074605948134440130249355929150365093244532054430300312358431393472792042443946799514169891726262498721383430296419832069220561341452697137714451517374124427247097593859323409675577867306847924947720904244369543444651123056516550096609871029161324584877639967710976379416389938416338195055944845270404043361475631235267085571829551468614017358024638757039544804072621339077632286969656111366220015371362195745102690590766036804287991338008147202777796191235268985296738037500400561183192189909174116157919525494338964862178340730961343308489932989538167999638810534853568023511615452614788681243308888724981717545306378159798828132301927485338239787026247491729279600704376416804016911722052305113047912329284675680155948569599455883145620554445189761555567949257401905547148546539293368261541587374394920838298177494554432599721192593121410080798029797489542406451496897457664276844123062552202368568134024298016160858544358152258583691321733434594197802137557727929964720992496164779990905181030251856848249485575275080684144663075678788543091952712227913377038378201288185370433657025503865762685043538088230811463851927054157057761384117684330868754569139885555819098721097380128988470126113942699238805803454548245825144031067369900168697654064851122508011749237907760798428750276334493220023813001133925269181955608952805590183018060903112139106961721210982999187984706882170288382215974285175393001592164072302556749689472228609875820799541160683928754749120175425283831147990949749093992438596035869301738414478120237587942011786239687964271118768001111626840248430421275266407897171066232021827896292383112750385845603517936499914966315198834875418443382787522663099584947993129037797523296222750582602984094317345476737723909136285602113027004137219244687514865091289277088000575070366408578571652570470578098763366260724148370115288119460073133065642165311018267030508486922926063984618208445110607745099167744797637326700922637455756279958590079970271413436899223305901411110144644771189188499061583768376774113773244859494992054630104389788915381955181659269217483022013854548712661959402723742651923166740865790779126903757426610660026621241252509802331842831011576695522932419510218424379692051252835620694285287676320122658235678747783228905040295868220532162431971090939781784320591389893166881926168656019349638547289172817177664016713237832399334386881047734768035952644888865907248915650431152817306732755603741484191935194240656740651276396215593111477757062076825852171060966314047873913559755736185191109139008197064826802953051674714558956587589844448398730765486580783063997668872403362289769381531912979036400240902785819818523701931487186593397364105126062545751631763329112451127536457507305997954748824748456278861472200583513238575799060388095240320010159780479731189046791894302282087713694273726010144978675593388115714738257721574255306983374410701341995290065526614005869285689726250935082923445395532652009908615048817319142402381259707086413480370489791978346443433108731356718591096912860171452537650968435965107908505001789470061438190291525129448231283368211527704126199830724081011592009293521379491044031539229714421935333258479717047517336813912565692895033899700695415374067381251175925398292844649773737858387673704716768052421891175377536589761190695986892640577409809784772182773428674688640338302617488443113922533283871261861089826019904390380885987904147783678968646607871352927947406888659615304146095630816338278801263898204945291650914777204869152282571813266033689509422542828050264454768544433633915859848029694270325851905921675284450835460083732403012805245365219704815856326999332406130765756905367609144862227353106641034392425619595813695911359715327536761752970660933648081112088942193963598318873394481560979841316165444476593251682704896703071512963215451242913595709767279671408341484889250659639455764920719708903642215481023792284834671204253428638376966581161901406206820388363946619958003127905493363235604764382259361861755786289421664360207268276545739102618731257610071658170519355013911252478461207348157983567221682112618250276747232926778008126685618515507304220733109474456308028739008963125082738717658287939452768735586425936266531497163513949309886122439947678116473591557048961002537366297732564991067368801791867721763095536237539309697640716636482140734694746933526701832511606908370144243549753468361491253369684549174844679018276021937679879820715242484465572404767116313133373924584540896058950125787424270264200761187963861007135118305809990793159948403413436329232936490049401497739714502297541713757313688114333829598793786382313272828467867458916166054766956043211325145753824409163876805071748603414208246586522444430991892525863954970889867264742566446755520283609473486502228268858370149871739552382166225670915153968906926841389918607581840456611408048588783921869571117236591231170026101530834872171972915806140062724845068302919033206777527475795579121991839918296794727475837302619623980597264694272229217782105292041035766186859932801354041933667747265043042907630484634915951467288832997189355761924904854095043162731424751580197043663808173232177075592234467230586811317957374787576571462340288561809903110223068735039831364918937582990179222160531271115471664222165843400270691572577022498044868130915720801141373523141559569909836129429037814283527423514061673802307176354094269937435069768887252610461362823713970989363962391577882876425222211753054089449094348528349629782789797941373419400144955735428753358042079044193518368862424484888705676239668002411092929072411054215911049531617267931640162326598112817029281960386591868117109956782828848524317359684438176615688031122026407539519919382609800047955043560940839273262248594698686332085403330278145168603309743365085271881465191228235865542483150118461124942053419698539727427270024488759061094610147405422985911523805784411567240285086502980130309515054459511134204229477545916668050903544542672991215408994540313910190584349735918938599252987568458977450988202751904577751280772983518662195341103862109119084371511119776149241862642917743570665057176793821369038302079664232655510626368138032264519280091701745590571027795489106876627639139973521581887905587881170950456589024197222674237546677965757598566804057794520269684094946264857207935772455862611795460962621362033878863398286954653226020826531394973571697546476991900964523729539415198314419031538644968110750088700391094697494813197961039616093071394134952710988150186651618146705631878209519342570059677598060482348470470348298642235106879648931113537605757487062421329338081793127732542235833757275810461818142963883319759965595073097339019978822433085507321895077250220709934998269051085224661336769558689844699809842746540629506011787180100289692828882734023172307159568119592041655054608530600640096385045495710505505928365894587552046964902416039703778582877975286292772346930938603146141131167872478097797390405442971486812159010337705401536707506212551697696317079416111835409047938219784653804416211909610279726308927229100332536847615758963739332404382732653877210014062734946734889785303515596427130413404584035742457636819231989595709905516813417172113218229697049962451103961537768495071995851373751248385039843751975287682218422761392264120718659067483250511548305463326570267547505646957846295875665053388037838613725665420099323038105109105206639280040400843989193044726153372101622280145829540345475607559412651840776995829530346465668958985589966506433738567450542262567529534652751300747967887713869257020757953442701383901282314304296525882063860229954614408475268027559858467144560396512304013104029656988175079814337607382846751293417557838486952896717762044345494349550791036488462924488113509996926871663805861965404215130720744910382801082336835135232581280850515986665403440764880669518502255043192338766168268767908355924583761467123589698645262383692327039898768764149482459971382134796933533444691778275024497343865646665289494909977391907417520119029211837548793624359070896779603704101180256803883889581381173778247379672044969793957798903838532361701699425329625755393847815795822521503640543075737224678748982598018489271743757985609373301402943396710925394749899655300076357550064104947586986723595402958316176296101245178290192057516597295253937208090009440803084479825538716165824849798564215358728162024653637215888360398932274746584196766267733017798788144248836696333530044231038313663494746599470541914308393344204675398800633760975767238425306988235075172471900386191967226861693533366202508892203842924171927539013893877275309367961962279442750694562616900767200429750576457054499589115620233544133775725508272270182612725536968075644967148886918556799525019693649621579739188472965397904655138211836360124976575512107394921405256125649602736721545003372468591888779100744097794592760085625081106175419586929836078663878653613912626953697688488925074428316242714369880639686320851315189233186807413794886451891826779208054991936964963533792798999221344756648242787985791906890962338334358549146540227814229997998214770175542191965193473429430674081550723805623196055819738685547054247291958949403146197272755848451419307113991566097543406728891630945863863568061444481219189299366019763445227568068229400085425228965372599051230605100334217160722964031453428818680509021108397697453843961593028146876237531726414798949635591964036499060831804863006080553318601950912118007812262904860199821010545746719257771463566750226747002287798383824946409145233237032671205159443242360222258363024592089457190389384673304851073640774283135974298336903347421429198900033847492247399868454546281775557599549836564106472196915966682655619639230916107969335154739189336457239133980708699179241442241183271436064889092701421722207462049767714148104402351438754562432065170227017501243002310691666508089992662585157006222868899907634850542090467928140575804955916452934486333507456463798552933417883140394137557583808866526380309040621313585612684842700328559343935664691629272424451074977060754969838321366913941693242843177872621006350364754584225098642864264867381361249844794899827519387355833703154102837076271245697634702211810963459942310341811180022580495565219896667611219905121080040390511133513367071803784551197660334224488253433394043929448278495517890327274250677047082464812217124068674290058952818403656888000072904142220654188705745376279287021241285332384845586286655625152553696196390958958063527929605583406490290273449472176133021216769267079307640194033616619189263434479614274289876358478751031123018745761778974328802526721878652258725294249769627362568186909609848420240696175470008259677212135762902325717112524985882183027895044083555586276093682554684842490977642074081414027351130660898643176558127019260047063193999133513434977160428243824956063836059718851895893536592913285767013999979185791026713164477341595111396527358215397719474977297978866314939997625960549052175342904486303085007245922216668820122230681382268306693560944526780917978471673675181278917345373934141242542975916445616412859953547584560251250454649221883015251105002937308420323859640458903792527583315661026097473974632719755162399894404034673998204719292301692294974282711002229774720743808152575150205951027458874046594195235982741863891875639231815848606500596207805384756688695343661179518701235897105117340347730698829057111106796559580463779665802750989621842126342438426833680218542797077171471398176574591749141281424509502928274861523001578441967473221120638398988629089586393759854373197903817886604386522275806484826067130554859087797085269806275250487916255762373311828133680528019256748212314017773040492296846760380950315749775204099388413435458393850263712035123302197072298785792016998785501410943879526717143553985569509996491037968631778201418922279886322552681238639585281228100439753340035934250496511678057658649195467286414486927199028192744012014118012819544242067127317833807608984295698785652779899576826316455276504614992827534524671402675993117406283249700886975874414229211748043815280560939221782097447587746783875034926577648859027139490353888068858170537881953067665997230686164414843501525899116940992852324994035373929695503564766261201001496022703691131816928489823995803169136220273415958297311835743645118442079386884019631124027400921128018193252317841266842799240074703197261017158089020601224207036525484510986793936100136887500999631911466679334059065336255067787372097437353380018659910584213911509032431256257739665479575248403267611257572309650066904511930198409274825707234936168718267720671438783206257194146090860412456487443498204622285116192521639976584483822489946636443718408818174054327115126188836918447429796912153163757744197714041991936430579837634365536070727463706849095546682084000636768345765993708854578743644343187453660960747924759888266474304685693160473190993689370008038327028659423649079397794895180043248866917920715259822885661315173242712088213312869821813974549749742123492330109227096513821683376243635262330630789621023985684613504262077184674112104915303658187957860259200584590270731986256102464656165581100654936801951841734707112437665542987946348522744051772330996596152329258467147981184440146651394722211696716009065193887683915911361168032248562290442886745326501750067885582098342674718043962714737740606504259859061752615899466702408931490397107800473949187168332396727186093462245170796751066761050608006813492400088239098338451837502834085658255130194961320407274148043244775824898222300185154547856719948127931883163654165105127367691823375467937457304315407151960491452569136523477744063000006542771667881767098106278280591283868837337456310370520494832536247746250843380155851193498394015711423917849760050927191628404714515638331907053253232535680657303636488418205669829414363202011549448591848553124249157778073286486699321274750908460449010047029982082260745819542160790765121919034845316807305363641515618594789298794162054600869061186305575118349305893651020710942640027510842424280522044991554198600505933227594110593430116371014563020144311561914156295045735755946795550015545410384660085045108994118735352924319925635929577241041637802274056643516241760233700643959582009441432448279205722889881609980139501540781299476337569195866162526757213867051664439555491202540108834973705345193281766063383718179559250632692506865581385880349319724161570618652171774168814733484197236631332494432045896397559021200830503355249228794932951467444117107802797755303062670332233141416030119964584187155981351092905727585538437264797200527364530241660329708790348533300123379873103576207723415840958708862930258326540019908240241006463193088954554816017020996618133303440205230774462502077566357906593692060140347914438647024746578322472566220976675798111304461418916541096620531622306654225357110793585019992404915838102945096916775796557169326669737824654679152163044239516498687578058199468051883039332193860473864934854420320276380507756931235965895767915108107491018995314726866814848945831698371087521932760332225127721500444750682420967441705301654352154675645981497270778820845724344964383970170842131381662886329307850035795031187868269879722815830273441542604699687875522463001589209930194077387214614590939633256087600819269436580741954602594288365024203958113087669504756935722460554616263661437687061810085735953301050222865974976786675481694188436052400071395136155504884227596922842597224454898571920921056352027685217571727169695750096259815883226414855027210353619604958564598701419113821954164025457936949752632639013170262058011146811723179547262996645085183738947811769700426810505810211737033531788367258714497535777100328685939509398366330435825471057960285421722812350776689998080427622326525401984058792420908844479868672219927541138947100798018096740425242423462976927432388678631818676796913884897816664127861699513967662295086547748802573687167877836602929232737322278669513351274148481196369055896216904735708452772102242359331511342104712588214753017565856720402164713410907307215828791565221486843141649639798648996139436370967731412976497117001237687566329732543219005772371469383405551675296998003263807151021384638898878379627769841903381215152698272204519102564146301237834222676269553573130542866169531973681485109339153622960380370645669352621108485091167720496717787052005945312770661818149510350095523110991983892294804896023658211032576402307771633278396798179965025829441530404596311372211065436532321320186489603551437913779809038890327696353846778950612889578466702981122869968224842138047262480237235429424238858531658538348649751685022476317301663748454620269849821933453890581404967062127770343412280052546373182588030038961409678762636450879297766853972194443313915672165404002869556746652860211523086046954476225723105228183774119432480960741705727798907499236461683331572169885174612286012516927865881783715627455243736539409680883287676501072569790369570041880785968804803372352999081962298687229223536792247020880292241274821284131407543334395276552648392142715310648943631516899556401706498011706461065265157877854134687942968008444885512878852109337295857907726495411969811336478826987855524822702594194328929646277344539298857426260945333519078956821092854393530298877153352055337133858456409573363945961009936423498884643839487799933883625296778247500573490073987351974391170503754516380136982784265574439114777636957957174336272737928897287756464494764466766105813402843390680401192477359578186115119658864802366339395570337227844183327529871299446701209137276022951245925125006292167215284749610783856095716559842951819184519563491596418920107486074037719563791377407759565009301762695277478179711935894533409116634415723256234393307760978685860319546358824104909130212956432866791470085887365756228972324507425274398355290917137911943825380715066975379506734182675396503763535478585136860236893012778606536639066523488186982515868776034539648153402583609023415287140590827010966759991723850999362703050173251657344563063063348880518543091121688859170352676065195314301231976383976763124226391834438034580480966046490333564629781019292715824239669430842645966305076251646426876091541061051294628393542602221219750576365123405525039835674837783485458833421899555922033678189761371730711191722010259205483377525862538184494456994335925344564729860909593943199624787096065877777891558604151024268840702617142486900466253488702225398805422049154781883520845319756343595247098696978276834469626016445507348585884567372707289556839290925920720923469308326504076064101042992085532574614211357088228545352714995611290702962749632763782195606974241738615147382562123214350020058449839709814145638642361410258057303323013162881523871065791227189235346810171912409401514460744271448756093112717056987289515863345222492848618474525738812252912395745468876487339312119606112421601208377663201840352511806087778080025524464763905650753769862644335693608626047506843774074840424950779318934670893723028928030072985355577434691266891001304763360219346990145880308987121019370409348377591684087804154761295544922251582754960726523568821857065429003894128023668181934353083445364813190870417020846142630838124277664871092001541598395444258556388577199193895511560499360820596241934408084049807314134632596550839941743064227753447530246693969541582597620981353707641863207668604741588510357545692080253514756330632757351474099155589926854977898087598682256677947466640957363106374321738724861617404160375757813827538334723457984413175022848326812157300701191275762362283409161068359576173765341863946247868826736826209171586614462627005675645345087864425903958176525648334157049110109290998327617795193964231971460591070744443527273359002712682899709612232037036024910202526530956211415018605086555365611012794264992997866949065634885929489263799922399070959346134960337046708454577726916041141441129899989216905452418250794963489948761221424757469788938515112517623313224935027933598983771183371209009274866790119874243829674103442463589201986780078017721782821949048126243543928017484609178827700053712110461051661908565884330167878623417963237532917889622740058051553535951341732127605985091915184712835178249730652463936635166160282997491539375194046351738747679083914109133585779396523577874041615275523284676423324926504083635871045650338564929498891984584251130751602218086340856020325835034765171254251454329822891723199999578829079591914876864961131049526515474316605582770030904531901640351076072122600436479992103032306150762175324134272154072042715811086366931631196435221421684504757171814364127211146090285639469225839245086093850473976369932098915954972594747106193271470307274470165598075484135171909355250545749244588456455260241529589678812155119470996402676840292736980717080838785721230233963908060872838183711594929176378577130412151650603016773219694397267969818780768838153554800852128595721558491283964831400921447400469724225249929325784377191169300360957305726677848821786218190271061099843031307656287602575128820764257200086349706988491378825178095379905442492929220502588187319196869138785048671060118400809845481975729617013119674238239298011768257490014319656638947853581546142337076431527677503284587138487703581025743306740122910827163142959967711473691087331929409965756079790223509804583380104706534017707796397277760314471625820330069484533960200478347042587931503126808193241853049426509410797463590734103930349854635660456430599869752436208915818365720118319363907537031594266069842916879694743885544365121353382015617505465950662288426739211864492436430649781969273711232498735165964733327987317608640097689353830280790327142793172823418712706923376283603035790059644995833513154816567436140908260758252176553067646209360453134811759442742964084986204576198689208748096437149506943572566997321399614793277650954195995904135081526814968838378849970593709081667277689511507818844665418610609296192104463195379749681286206614165754197935043001770219932797832334972638104903427536741276693239222073524120473362305086959562034058424110200658336609146919223186027160385340220117114310969193904365426780088154375207128752570764717858548909597454132975509218175016084928148008695092607677841527964473838942723373958554175636908387823205416868501300289594085092234684227551127233649999326063715021661638642980678096543729165291582402852793951556344884463500543893485623103454875885786979817195108974042673415050459859015668880193787970752411638082469448802640225554540837363792327294395076882400123953601309832887413952488634922814491247697645115908873519324448657558974266285974831338769949866604217680703801750674994310128222947075700235569889986703238652064740068859845748059011053942439388537994846353548052861882449070636751930489974818057402143128173485214722958106450052868217803846919979706844818937910846752865941509586936684174341409368359244268632543473788015797873891689993524351407215754458525639491298570781862795815281409848350295886437883885927477747793449608821791242051284055791857239521297403426488641469243488755952767866175008304145788913319642680203122599245658033927270014261372911120023881909669011084311226940111901110865514095642164944913482447086161092175715077877059684935839067471777782788167096362548676771523845404832634904069341053137859411560245151328910726257981486830656778629175201382574923449346954917265537607787555583025967691241909446337441452507312565393678051357005390136418454872305822348497173599481830181822691461835463447973028850720772485227584549557214749460919511431342599312576929238664274567569187535259587622319228995311593641364971909498824067379361107401173299593524509170670317884250605237493992289930339439789295584400450290004165581886897997004038211802090963074716288313070519311271150866197080837652290034588802985304010915263646658223608896854089142530435848020930327456460030383272286099819994021162362037586704541582501518207693526203973048295474254566363477526421309759670345238685842267705893456421690185550364352207398538603720067778969385095839612585522832727117314218415400442051078635572745162078132535181168331812759505439925545477814193956275957567624327339695817483449318191758075988220102989614531790170810723632018075707982685510686935716492373663392825055431194682942587526209925432864429767270990400024496841602269132350675701351057277949421146221624194943970233132621672893192696693424082228796923268943612640416987889675785300633654563410203835873683231012571312660576205613260142776969518755137804774131604049939055618636311711658631085590790277322517650390073325399614611641733868363715735744089870395113330887646725436302599816720485762213467448504520369213896499749130543467739496199073560219067116504130118221978957477516435112304829021367209020235727782232143201689782432333140638499324057342331443086193808692420618715597734015698569233787110114794161532370754344116506283661737326470664379316094262596481304568566502090056308801216283585720012065068320011056223107986605529224696251361776488998762643531373608074351087308620720866742287084866375079336860314715553077418900936745671294517892514567370108759767119064729966552739187011799501134238066758633025255914474729549459582875631709329828846292346116580897366176922337168904616416530665774481472888578314473196181622206833436110518944894308282040067139277398941875912098187469893630864401819569560132721710819796104143933979602443725879512607401223193161784852926056655351253430077496285499971291718153259674938006078488618271633564037568358478585207111688335142148216085649050777112869020630455205490897556507250049155941522455239854279044086502929815634298057766319126822889571743061886660101968698941263792530445291434811219349719843272778168214033624147504842131523078367299620600295508147875433080583566365661998778029378847704300871349411760024976632023950598599756257018350492061952498266656741609160954764988790516288026732445969448986394921246357152307498846276560965730731848265358639002455286656507507906570724263068709993133277393200437843984950607922730674420060270476012183025437862534665274231998600301893132717247029327570605634927526444524683586714903308845096707212807925641467619466267239634860358268194271191984862770267602532830981317399504229454771822326389895865318143039642373025612334512062595574042536533552778679104344134033245377165208966091706231668980114658355410001809886461093557339191869539874107487709848979474460733326439892313491208749838404695655303255031543884441416392762602543141667306952698626260355550304400619866665421403040799528621514998106678826271189533658974015539347709840063360566449520106136003635466407833703728317525020497743795278095371272586459471812456729920648085558093501447089419661827357915308604198824217336462157609625762174363710676394318177930082634113235071259080002579386318970861700519043401588732954231786815681052741311308688491372435719850684093923564991026325764979325794807355507152214827526965315418823220896441243546022943400035087281632070217615036137952149927901693778525726973270486997201427205095065514601814259842962119640074107989904328405213600530271803308372851024403596059461234430650401293353822263003041728116124647958097558194304458873076648477471385011472981828839694672975250407472229355284063072643693112814512481396092846777795344788258144783158274323035746385564593205454669478649465030563233501117714706859295339216627835015544409280687133290221914074022551950576314812595458046007760695410624549964033306495034906191217714528482345593887872138581237058368100584423745260521623498202198935429557846490597155756766818982932672686014298118267402461666953807073620205783367494792332304749599044612999250741966675288800093676325964518847705384197795116746392450258919790258423470691838421132207015481945002216853305685956373834340874259092102093042419293629169187985186560606738513822245638226490686488026802461827247289554339264239395042228691111977571121122616532606123376224056575086827766414539842379328447969138943982322734483859392782706977680071229649639663208389642021011251353244059415260719406268518803347674121324877801722807634406348740075715852709476471356148975180938899650795640058054754474574409793263109536828769208537829353312906649356369214394356205337639003324508115179984761606413203047104051460638145427539931232727997590594557917539540263542814203864262402478348115776983391293418248527753038837609768905256616090845288267320148833077273943513322221653151798462762669247473957157116699413434960324402635241357321925853230150390621705287427055433483780248067796960659429577776130636781429225858482081591825981218329633941881168434210551699013647944804386820441829160469898065834887295579451282477977486574007447599699895383951935262512844445678000387306570136641682931304127604858292891998346709185774305291441315403456476830776968370193332660737555211437535234842441460914301728246776673953430280223744352733174209836687266130499247603792077330183264974998082369349692490057977707785020732540581060013552575035823013289136791852858378000848703383991245333689351550080892118347981944141638685417621688930568676247432326914345099123084254229044424805008272371962389211032672051384917889405016000023197160891196122835689148169481851677721932808368811254364986856661230457192732949541621323330687476729214144555973012858477556786273914664649479505600274791502961847529367688719821989380114028853826077937199173646652746121098615726264356428407160063355314481936573757951271414367536488288648977909089989563322889262178144640221809602191082204830406210576530083796435909791988446562703601266070017487385998949915560469497744121045752819569138627713685178999102255797005148034095030414424322749060461455907902822116129697137493367390725423149826447913965064924982043345871521922757182035082099800537139913780730321072346886166599825507215519819016987801795706860693322116371775857700677359065933905178781435077651652282664773867276817685674786929635361244665040514077262796371919766650012139918662037694317942305359774540605023315194109361447543612840238913115603326773622101485365998303257743247249456189343097578143856143360787050111174946284647090604844549235034737655295363901520814679322252549980215921131426232871677496005900368048834516010162996142005935507240560030187329368430517913533121762440377116605989196305929807180417985394595909743284361110705214765330626310828218193159094690458164544985600945855197213548467044490469844853987280301570374201303624404125722928934985981306408972027495320469831737762350686060082921657671770344636084197831075904691705192041914797637135906058866289879378432454232911834518184279972881787483449187685453432325183740800232469288484047896337189817151924196828058731979699987015622083059281348594484812462832703970983050878299645040985197774868797244835043925626552621315836070966687465036187104770180552876237186497581109224554718770887193173757540116438625407309635841070139810224023468717609701376075853408339818184266758850219439264938232072378327047258219197951501891570466606541574829162695095043558650020687232147182051836312617192500712406048588408968673316102868155168854102777051953358530451494307159807921624923154989384028000785999461499718419987851279474014787907471276117544124748419712698920609850938163643428923536303310943173763097486612234191575431666741996729282173460281527838573117018500597626426715996438091363831514887513571389035405587247287715309798428581293122322926500365872047625460646559579217855231148057490115399042436247341552166300636245165167268378444543304463191358536361696966457646380069646400924875262244745883687881704441855096563382942180510285906672049761951749244458187121971897627546562841743319980568039781176497135147379232328996145230685199423058532708716077802414240268788696048146097394807847989760195595606108926751710467618297376216479205483324913901125366086012862826959970837490815021083192625775133547417697822265501934432082675214154904333679244756249367173536281339801657861844083897103812529839458431571130269492386296908096767867445668513531140133553415097588223183380316837284658918442991756194398811213551351542690015250538191298854528921826857209905990889486670593260519695153048261614606716171585199577633740799685707742788145521871669769728798469790796346725723183231047865267932910983723984581830371200216233788744648695163795020537449646192202252559749498233318398062744444160158851231175031748377385381593957907555099783383518884577701181306475218306456931165201626889988099415693689150589055582301153400354242293844046862874753877682311159540289361457763476469558340743417726205605668370179833480042748513620900069558043548472316383933904272457394509224691803675649772826064445109424760069435953702519758399934279268253420497230801802955774678509421851780179098245653323485631469118119096777561233280423224178983884587737823408367822507320399252109082704115000268249427169068985962331313380495274536713688651115762440458224034558046303833531821065690427587983780965902257723389676995148420969136494917719373437741074887774364809677743688507465816045994313866253275161773305281359254082963266881313557549569654007749642983326040374580931615130632636681519796969221832502460121478949557703039241258835937149774831426265696587133284663607626620427773640731730378744253305664705441369185515314584644252728363484389671342704196598631559698258838218105901417352480765188358722950500602042603987805156842646508437407294096329457346990861128160652874398252929046964876370792837483805212489086628922312787993548668756808115286186413038678292455885405158289172603855552362501816139807535723118624919026055012568492330666501536641762302584434139208790825682000619481444973301459810260385707145341325037883591436910417597539067002480130364657372297013108351561829816393354218770697674768172705686908538600629289114168103710981053177308992006796924752510763096005182882088254965067094555076111179652484447246403043206152908384644555632244920008878907574185512684895439548401379605283222728580248091827878670026042212824463726232727021764639093972410054312060311564184421262417031208019343684070344104497579059266421086663795570006271838715380252947098575334949860218612750686561103028995264683152934701983924956808088461721796500445439357967830109898413221335568133664545332524832298253941269929522154574995211647832601128240849687857817193837101496388578419210452297381634172015163966509487874949724206661845156369178405082826773924994228737316047352066993349211032533046584508086857865583945046093919232628297223333710046029634137285028434261675324086838119986390741786107935012331137197738564122051755578695783058334866794015907173203131470591499807017424025761567139894849441866637365739060205051349017057495413038675690526987318902126169363438560164861885966258594600138597631659966944676105080915998826424522245592999890506921261612648152047663607477061475675359050312843936270017044453468184051714259725751241555600208057331859005522596561801215755170289060001566636408219669489503673461700839918502563209267897595073958306661454807697274271660625263316252718437314062182977629546499375321845192554672499155889571342429300727434792769397510902566448976013690308695633056923524997721740772272506501485854510110313067650882449493314335924580451040473773311507498877108263279736809337050360977034271340409253634561842441926640722333037209412313279111697120335760230066342709715793214110685834120523380553057558199356844717080325426652879064122123273172261150716687282115263549693598493208030602700014308972376516275026055450559905667052632267601869165059271819617390497197875971938185556733184974264313289651751417086003738829476905726063792560551183325363801390840247501672888884744820460675462195925668624469170797080186525906104014615397605294493255894995145077798636264054833391289092765579862281944726533855625544980810378530832509778413806035641474494112557813321098389232365836029038392087480658515208087250918793183359498914745052505464120781789227266464737680090928130286865370991318333942858252018207026058129075507265435985145017362118760066824201576989903154167304327403396790043131816535681846338233227620041583440256041280104525522971736492393089141018263537696474793736159378857879975261438813769060585722109415399932546001953078230406277806291136513287600157375649462211330767025879614747466137083949855203705151918017752576390639588157205544363439912490427101823594308137412526353346889295100334636567732584673149188696609733802714423282319098204104892358069552224835081783073093517072182305591332875633929588980256697199169475661829088511857247272734586871662147380566081937662494559200706901325858249992512583769648694052124826445294668598151722198577878559875544528765573513381771669601409051029962012774162365686462098767930100252536979039804405792613314369728838962210526914297606496911064723003540494567834660300166975523046920604803572975236830857945814995774653143939735051055322049628307026954856513630399832182073834753246576927171402550914519407865931574934196175176968593888892531192049544353494936891974803043129339040368039580908041213179525132616185454424495709495679966835293308913454447939743306351735648953718672853874329931685063857008302538778182421237118993020120568607058403713528495597841798407984156010292357679411472141695247368105704943697557760687939268500795435987564495154020136887084640849708474965147677045276599949615594189814412908141299402124656070528329134378367735066642819515712988686327778268430856804832789887553701289229249289629534886603185115757789304809396844923735472557942872429150769259833098774620578732007823426074315049624400683706601548410801897904057890166792008554217949332833631272868546571254601049081688094273401319356892243310530627340894366512238181981851910487164735228735074421449747041736786390234442043693148951069984682732070131957105733530133580165608765067286711752039235730216357203420260623769700182105595706275447769092812271200380776016540135834212725215892104583605650676887616613964805323418766758720741664309230581048497053276405806417706580843380149230009908589969280847681241676926597851678972204383693109506714425502729600625491891223701501596421709211136391109004252987699273463631594069986268459158933757770283170533641692484154492864604136023799891230169096722376385408774657863843104554988115350399775759479522213451976596822546996366198305799447992172591852942902681442465326751562731901048390981003130652059327827384163585290588647660024478499623993543329495449970008435138486991270465772803630097018331896970048116673196274423197099020977003272119130655635948137415263993248632006385107870208180520852339102466043099051044174224731185387839256258489569765910091760558380387527045920996151970023861179112071244394795870557349818384709519224703069659901090313575426411774597835487207504139163536495769873718881797135088558332231197290487778899519743132144726885036101908526880925448538269973776697761323981282959156742818380965926776285874203201774457554814438882251087763909096708301223674044594465958047531098792863904960941391150374762031068377333076102080034172611018615362275852154861542289954794859415070596490662401922901690406884908529294099391393490028804284879497589664832705074618839809035534499053191052274607721631408028626732224870175832875214168828543473922317862941440062806708479718928860560515749552043500120547786271573351025733719381215726346201266274564277694192239853449654386997972269258366280237178444109697864332052523875335233437194850026213676588680431086788008962157289956938792641131415503949156115409738996132461776519715955589411577998745352460742983071110013621264020667275825490152024498100472557353032018452132511074687288288179539736880921115343307769230337779423663657172007552748810645586081697781816325004193835256562543325807453127135739314588308735937387576658729271350363799621442654374331986492031861513036301283940040778578366248726129273141884827973851636334555067508195800347690198688440147624529339756491305217723078687060456959611602345400045691313901003330294829868181545697039402559312060406369125168265182985031495959657654492588945938888927115167817341668947751354384878614606915930573765472802698900112325020205905248551849832652039851320617243124617431095390125164710997611718332726759631529871873206660849880017534003336212168506369868714265955989023461537380983764886632506735973768028996301336711027367638802894748273693457684448998093229083564270867636974395707600290368980051289750333440280813452937899481158624727459324250464407392169176912812263701612996601632242695734506160037493100345296487799567659334097426005771353777400850521089133052829749469785818599430037296316881820146122978087610538487418771240957291586962384863868495122075949386897142956475250705093635604529039515521459455477970633935151242951775264483014146397374768283044132626145186242368268534046013977655863987797061639473297318358996622688176424370515234308125759860926133156115633785562037414996486180313390707698994397668595839534900124516826610143660197482406492234341465803263666800078931177065355826020526906379696435607752421779038203307932219358388039060582352940950504946759199210409677834635713783053884067563391646246463018998342578146493979389934620820006465842228900169013124000592220681166154142212493168902807228945326213810826056852957658956307176806417003320695002251901994692402175921449647732667950809152182470691209048298069131544832037388014176217707902093979408758963671082634591702915316381330175616605244814043340464602127712245489266625086189142430221277584117444747591696986352095183991073787317986482565612285751169496607570138017171491513403613572932155907498382971291219861662090334548028997463851982300196515563411627796915832858668732587818742148956270713395259554685149671680976839607503858002358345563180407554275935509296116003625712544628138132886387432704558611891154338079280315828768620706469246129125581971434556440914507769522366798126715939636328047880352416132602456673536194995458914198966934260449629065086901945362289298131283913440183033255749882527971272091245213661323245658589448170450438589231656918765285201656875411849128431792053234816981957782075565689571636655351409243936678101810700601493686745210173118176738811845010418691350609813111939046219563695749304936971091938830240571766387228389528315184930935118377347199895263581966838402362139581493136342424100335239101386162735650252252372566331413707180113837832319232696594106863421956167130012578431024550831032491442815840785689450095032717915323171755208446598175724416370967257658961448998548665587499899649772886686475169564083978481547036264913697569001588390362846459633071127802046060003865930670733857351454703454381516754626132049808674146509809467275569422279089433847405266001316534991535176821661801963378431580726963873359644812131580453328985876172488137998644276935769704788949606561214413757930619425404817364906160396291340706413903893818208722810137508788410333467420322175422655708886353554815256920463896414610471600831217343867794336751799257446988267913851081693119657055769451184807279692501778596295372903638681451718292533713979359426224551030676980390650084265182255928568952176711269629818264790008303006309320957931876929699690866461567089724951299606679283780484235575376114582760606929754143596718305419105320431700855564474357282306337626386668387849296431422540013141274843646326371267445683023954864489753684290607326723233051134979003961217027599057589657509035409889313719101618183070009268772115817775289175810191560933616418131342006651205159579570168438026384607284827141123515100859959351800495146103091555156612110123834322857744205209409271689473505475997236532576807607467020061116864765179019794836437166792036857788379490233532232238590598623229711597825573566544952733297442880940212716800377677683735898220105397312979437717991625336469330751497208246240745258505857726962821604454010692960480237047190146011514776820599642255702282067102322385667917879294527939416408843086155895413730280772620312479545655825633793516154514462303430005720460532384620013200995110296490540065664586376983648953717024567921186446716502991996003625597992876451308981995753364035396306991351390288439004663952641283525888384824414849162456963588913657961234481051844113425654016931975199226038087097919611599975297665155002147294570271169894531185319546665213042381857593204660037754850147926782802176950007078516143890667992547319356885297962441902406664325810662409153677990778359053630374640303738304217555894543060874444951244731273532875267153700336512973387113820917562545876549983264893093874125329023619847723936188395759657093499992941081679091089329621753982822134484039684826511789833875397171656821242975164541318995365029732461895302145855606444165865835364630547057353526668283643341096772585321727848586515829262550113320744635271607937298336538978007482424621569666825800396031349043790052264930545487483832107363411002454357078445039798805604398056909712580725679312248248193543497604441196380945342086561723973386798993747772265338086722853401741269266446585034340395910078597386441411140319408670443191638792251332413951531403241217090725018472864492599269576257174443972406857834864993118588798607023576331418927939854793241079377004653528108927506020707644944416383444404893562494771280048942059118107545842577424295427773389668582194503825142083338345166573702036780320286336314746270173958330902740177319943965087160022932722019968074593230627658878384813748914064522264561269861848415776667398192409485996262161886090917623345195466756654427111733703240947823153217670136413240502114326434636252244927141265606111510112807599588898824737795816437340497645354562386951860214490311569030975144846680861504539733471876384618750460119598177811826671060077345576013918292355871278032472587627292791334274038404440145765658129438395341696478462825388142127494538261830111456688064303705660154410026730060053812507306729939455461998027493174687919625527329626985762994188538111276526355575079178852069985531889401655691951116685306760182393709624349497085378481662454778261867617207299193774501478940687688942374730777453739762500290554960343027374008946721469208477103864301181930942942929025614936330721839899927361984498379395350295076003081094086791197075543258446810119447535185050455525769053284230471178625522244007353282814295993860079939636352310663822732288835543386511461954891438554545726678261483616019233365848436149124077311487853107834576494072408813286782616867169910232034293240345811460141706422340307338255796738897680342868640591557793120246988355125379793363710851338179139252889570422507509149769192860905460543057432456291759497624523011216944097230361105864816378253806020287732377606374208180628022260400605448700082337226514066698700394861917643884581853907542544716647063036141643838535199817304135182372136724624165565194265310734735869905772274951384771514722232690654032631637693929758715402907300479129320331243044870392734928526707697510339581606849343414378718645010760121719140382423524397233548916671606390426616790087337147954420572529787448695119332782437464448839349513334619661789681843560499710071068440085023169637239350764912145028947670895736950243711060185210895592849150428048987357652420279227998079310747237744321744229542083151945092914105576748842598680962453513874333740077920949558833272793444264968896212884061283516151913516664648649694362347281367163121055044229633428623720940486451215188372534341211015067289016515864949326325442180182089264560371209859133592905602798530955536902907625569431571775109289618501885439175081582380096035715434196729223311513641399421761844780031801237462220374565236646263944648819499302774813143609398101904081277169540169272000174432269524823620717458106265109351539133971374934985151953769853811979544715653494021924186360556877238547024479002715176488678801692864834017323352260746020231891447224679275034264962404979047196462774599529192272490741697212630554689059174783574752511964104332965855448527657249603607908063763166192452542216882164881794053365352697456366041519806226358035593216115855640253039605897816660884343746137205216075366225457515651465302534423123276528284187922604297588290840653657632054415235855073333921517997437523018131391272062883746066212425053335132354604958255913852177631362858439487331979272098670473969465551184851141039355356252175176581720605012195926517742751212995703667570483559358393936024429304867210330005644409708986632389343339577813495728932483806052214495885582985155499288747205944523057055858333540201991196322786831253841132057392820154850931337994369975463082527298085758024293585348412409817947531659719271658478516591891864035600369752260114768119901085652495706471775382083317166636405637585886713871784031660405782127584686646073185474036287819823743122732206840003532643251844525705548680934927830851580536872151304656526152095761776612417364748395703285436922321579994154431181961881366151814607896297893242822585324115786297593551437486165957152155139297265196409153286159943696507991494622857912076642654465380464718651787033298787069700097925541447594706800667842760917594473696697567977075767102662981482928014118657806443355562652310298930551702156309081377122530946855920057363146010678260722271255668725330635747450028293903543729203163543112349401422466872976554008424955065177057251813477278226430156928416363163040647996169657571849665780270441329517671819138621133017919928047591671596627946676118594150654591602366899387376254148746112190373233471081444469481919982832146420093763237566133598995231552651177468913949697927921075672798338426967487631557439745372048204836037875932784711156525996784995267977598119109362711156895985453038961549252243859645785756289647424370954064079569276466887585941292407339093901766729629777681668078015271806794588786945660229978862992469263774574297372677749559670403608090835211116022271924144561347714816526787344573709367810681582159743670698297573291200735804950214732092816255805157396162744251635340122373834807637831529102224255781721232599980913014757413534107950401031541580622394481674157586662220523067224053917691848223486722086489990402586870207225611511965470713163806388826509439786553044964514623231441780685899777737188647371133357816296724920556296028200820051097208786340883419169100945058766337435311336559686702609120479630664786633027302557528240219974866353339441141988931668680855883861317591516962484438579361252328931463799987859875320716186776634897185696116542697526832529712343810902518895189270510450205712758866391814403820462881357125883165608873424235270210465434682524590741456015452994904137221882443626583803324862395064318579059980167662073433413493579263348382946427471488481434640046404376840964893941700509846447544506451541508815290738229051421763201829842054087371137663367565009026031903359062827990354055790788143603720028845000130131282397446517804978844896384802979926088791288135055186285684577436653517698272222544058125929278315410666482833946123889249780927201915812056820087892975657136371198299032819185761323589329130275845394436725367180493985084803631518885620219363834023058754230555092940955892809801794415832579407771262262540287695234817007749899346952901285343833862753837130703359603696191311179855861508935263746172907934138092331430293954237448964352590655652498465853974641879009977417960489105180348298624234761882658872795092531907807487382341157679414630270824241904054656688114484124727293284047752555235901446467182055639637502550675835156542070873545548082651162438183474226344745454335612939263996507343228298290881474877914438992722529166103095530407613445964732640756095302343207198019569849024865449670016967852119398248220151590913677702983601164823147125852510730934343482787391967724176838066618077672626152667861938493737518783955895821333785322666900048105928570902774896358696308797718034642940682945218105426456727502010986327222182690259544230509980205012753780031203027496661344571224668606734532391421063722150486258172318282134273734235997368002933153094530090995956658979071254914821299523770603556214119245244110045047458702524364049754775843528583095820364483815797245720567137229243434402540532095013316267119265053315186766328722371894624193131878360898563606135953060597548744661056676670912205825834125938598424612086936660510148681673780127920817804956112626076314199536914823888587495598204506149547416592532630277480043390643644073183193974462409296210403643238397764234034190468879863210196564352726670627725973780409672788407597916676218246679033786892642727068261022999948058085955731137068868084887434297142871242468699733429390067983522838427327680963259771700456288200452355093163614467978058644804884651152313112068631334416027764827484467099893863922641181713204835124191620850794616108999535519704294544178951102869746533472992581798987011463493671573902902337945830149793102336182641113838019638552140637717266147779916662643153750610950626873125674234500039533899441159303944316243166012977312921178037518298888426117292624808598177142794432295066649064669260676253296251395147726569270573277069118288169864424409791710932739614359843674895574410934640594961770571173213326648494776507204455810276841888815458390793435685100596439487542655747092192204842820655139288192878487022901047949475082898654338614174763898940775965206699896277935945008832935133148176116268403431175084492350369779058677862784341150378471818982168618007224825562650252602631362855726668144726256673821200502395287764471835986640999335673127856947721875276225381279625731086816169953642043295812761777503266497769317689164587967543141394508546323511266596350193980123625745200171006137739929620769077957468822438279798948351106583816074658296069723160579132099839423074238938491811878977551818042945130279315985929835452355894694073589381754209518013522573391769699627771698970444637018577364556025819918668772053226812196541762361213823788778302074314567763497677875248794422945804103960593630200670521202800530511451326168253934520464290648436064348724671396083115452548116231485170075756629326697360369868710200296909843693260756832905719772626598957749329954740344728363467164200970312669166629217026619952383592989501419796070791515751547122250025651504817742162838719119842664197297351531681155890493387686418966890636295232308004818565495846607066707718871761174815271440251127908111883406039626844776706356889785106592133870844923376480291426170804683237173856115886201438041372905702220182434159769075610849384185435715440634575620030904548041911779303788388862467606047599751683250846252655673899474818277563213580523778139906734821017612324209793748997670138704650500014613105281748850213002119861988795760518580452053260134239713839268762127950682015179642424165945554786604262540252198508168023915451957777869916817617803469716715127432316015803253851286368799713507372139685159743473551372825665786009075576455791903091833334108780979431966330641799410327751599712731394135028655191922186598547351551681670043989204334457363627493396422804714208478419311729425341935972082032164263390846800279217886712312940870494647025268301563007669082525384017265537272207722787748598679891363381774274088468630680768290454882654953592345001630232837713126561172459583051802356479508486521100705700588545645321875443921870188738921436573499165466402260410892973330786998320264821561970123565335807214236170811613783099624623790940158301191783995037841651976327880548461857843372455277411283548393969793422996252809306061417682534560133196330873834678583405315359051068056707484071400023835191615997831727176531702991107270950415681021079242053799358086708064805999100060864596899095178089877846820533603358182263065547422108489209750440889876751470385132895919694756314693717984680922364108733702802341144368102516545834664829782889137553608820698302815906678028937668499698825705129916836073490433194618134309418846878357591638706017992026562349292341591441461630474408597467771351641564407953241797677277407867970663330438067450893463189055462275916146446441930720817036907356080172011299048065184638998693400964464661749887963663239962292737112770201870044511517280988028416618754253564593778089759260166348297232130922886448966857339614097706223151805371009557969012189882441244674361940156686199191703262784148856170572675346408383785880221186798586643883089536418407128727513503502318435838160882442564313576975453481150896713857722223793288020340694441654839581227798888039114890249699866130840456463822300374581548271849654377464262496423547206210774952869751714699662344578096865500040560353634894531681273734028987016294513625118409697916020521730070953362796636684131242481206010646921532386789312784432361732231741341461168550000626810515849800671941383366298893809173825028139156786094357436902362466994543087134350194549630924740768023649161728262748633838927095104339925665180838392772426310221159497212472317684935775518574563717049510053952169780860273472956442086815916075723126346269242948978721129929764405857457985708896280150283068079920166020142332078148054517360427645072409136700019410281836338197399397305140820795653259314613153188120701513747992652673396455872857073322696667255549083121582128184522977489946509356682107431394130950409727175351322893447650378608022529896749173765583506181510954303571442011995627595194561794757217571666011974508147696922709379751418448529613367482216512067817704632981801399396211272499651952268358426224785616571811220676902635905996030742797327233807071932166226472067616681683585679910684924176885835595826012607300825864539501089100085770992535341298030791716054150501412693527631591511796767780516054184599738761503413339082889486997582028301156999824473644306033363476147496482927529332523168103624508770248733104523246935753588243562386784619578978846131301417553493742944581261793666125466758768724215380773819602352508032086281179377227876451914906552168191009982444071555000071807993667414022265227895070269317911848439962945753564617200896220083857364730136001373018658286577530482819818474929026566846083200711415041081023252815470027554020250480574539301552300032219674358525817342012333626971492279284681624527896070957300304180278417609805309221917423519555692588264729285151938701075294879492160539058480260790323935414006812728016331515889078819448275781235317433150606140079426314630056906142123590744102345330357615126908648191235480873717961048557320212123783299864288446165866458965289745207171356582364278050601390587861879287124858944342602706313214516854104790692768333169059846041052089738783981918718303005917963692605312550978694882550022767400289298152057679400431505333701899811250076851412006422320637276615210270513622727783634639910432181687504623496263454078783048185522393976847230438977152565894162522269845676733057022219243477463476056232802474449731452518329566541106060252263842262735782789780754698876361499371775908909745525633267137751969182609949536452091447696823003638987502411543900643836954395114934450614467789435018347144789548835491963389163591482395617572517572340723117164210502242305156586388206877211198910646157425031694321025441113348658123246244585492379010505510412124593011736750045014504909789118765124035326733194081266446672761486240550829345000444340755180544973291158719743024828048314817233082297979679408000705760974000896877206788267820920331413553628448577223953856025298465685805671860911541243717428326301079647759996651648901759489707632352968918594254326829551787396919144190970005101411541601196551508428574563316247106136165928002697015282221504760344390646292116152917081471559246380185568970012279752401671956331096179022081837574484979022694851575509961862613784426551771877893426003432731157728942426290345223162567935165327448792923106245701627088537396120679483918725696517217153641106047084563209133340305859983997427905046208926834174623822637075223163271653408489599829527962918167597831544673332001689595938369280646021401439983317365962199271537198306762212556899922215657176143131584870177278936239693802123888676069489919502893746774319143756647454680842498144594547906336138893972063905364777021135192505253756941997402764697051375693995453556172864252899048921186013778919735481143550124112720424528108059880305224720535261329243948168188171094309957902532063928162332553364176552749597024683593939519760150544523807183200145850036914911092614027223455898105534885716518104242549569303829714905643979609532395816894564181660500529566656470816422725507536279746315576941826752792903349469294997500330045480946500352191556355353920480925995790505574743256193414355406948306191603037233583135966989947158506365626357861946977913333139969188927856853226137761018731884980511781337730041600281729261482244599978809582600181367147301978005569545667937594174282126901166935515905301975936801314749604320479298308046971761954280470026063208433101178849637334170881081048724788656722350094062577745710207959510595863882804345629061465424410925144738319898006842223848267149507401237284079952913167020303029883935969103500341554107141616427946358274782121070566510268153335360559885097108283329234487349667597320998499327705924710265487278389589896254725336311231751439418363332063775726147847901411797400588551429323428387174978755984900131613672214153421291868895594763087100417506648649739537540483590498758223609659609625912848131756493104854245535446602279635473908916144075025619626032788404589504963869603502848832116016696341454466499487283434058978617348653288024947966539878286788186609769912042044274533183176411273085730777161830875791245688816680563684652448940630315977086317056661325881027494299855420362392257148060255033917785191533785535342022228053640860002683559389669950779501931719187704813609617273832757920628569943297317351357880691219405096770866375190210049977638650664826566681306810521133032490661696892683903935516212875719302570388265185698997089483002770887422055380154197516092318021142437645233294727464449134791511869182482034545351669375410764479293373870410078590574378262374869845928591857189576533857501202519147870439899294484096484096079429690929659012187081287500601485233214478909903320150800738603775083966725158327128045713755350984811596925374251544330167948413321981321863024730547080789457684301572024791987258803061336955511902885311731673470585914047613278119815123399549900997092011671454728562063021037847302782515400292060901030806200129634173805149714766836795995002759267357412274202168611265622721896585933105767778713915476250669812254323861075536062501975115607858637405385002278657461542877937955535254683104038026931633199291965455805066401678550832783810057065444271375094686209161313169596668292628316679546378739496073908824374201143766483095275521498719126621343649076888918631904182500695360911671346592205246519000491726905434510672362121760173338908395663683823277835373463480073208774542043854729634351381647329877727956029298241677791194916414156247140775589729824344729884854639231867658135089891935299667639530930706188941008273348619252490400587575064234341179753440287800392373212668168644187334484803618685146760458346499577354994808215965767757470927359537490131923306666607769145572405060414566252698453294531084995153006836475288483686503254336896981768953510063859083088046496031710138553966825870718916274577755619537495853628830484143618661223876698361054815265113232304495145129823402200243789889512002857918646538942968587258440256356385185920852149552807424998826962957089900466586074407298742987866008792876166181233931444816409499550448930554386179519032666097042304843257461221976777510748030550412891440690582519238253088023385742293695534987646497445550338767572084272862911031421370508876621795579302785956091576660552389653584915556024257434019511281971070366565720929847834937385803689331360633078291415815795682160614264890671219987641655051063615759358723732918019620633389529419556468513955507137939695483961405747877061070833202396771260957659600426245686872771623217028930042184480038147610445982405275189646189924048885316441818722179898628149850048016952092829124650390504671944385439387562357582575055369966754227859926202103221592568550698354131055745801855335267023982052164414153634332315176450988611142082473976567423426412576474450264139481561543874729327302364490811374718131003447430170649323420683810601825746247727625164964998392924233583320907217781499132283839458172039293780973439932549055907387438155556385263856279340273430801920193481083375169141810700108012106958173798600637726366043379535511637383474789261898508213367538067623673685510926488420831120715077388080324661541763099283888159489537350791163347026558520901832876962810064916186276761661519584017416583180105084631339189428066266455383678510209160250712323352264606440612503997004675658898179224729483395946159085629198494596476085381853092760225164782280173632087417559096810236904542176078771430937101757776340505948658891618387128381705945245950290605567370179850909579954016507307367183709032536785406755267149197610794041862314077260376956125831486296907768209870040192126005447137840043442558504061319266146664390693545300289853796627409462611573523180249931886631981253265742765501982507990444883174349984255503023543238937365317623406780820244563232367769522474877582076974806276419907651481546797097624136910554895264624694386789925373432610153643384020457588557876149091249995110811196821876400975245727837070578997736555359058495628096521036745020489040836021810002635650250678379925940195072926726700648204425295289173275914824756985683107563581875130315329534719267482812633269571584594018574281592180775293747922338511122722202945763425181258922456335664253757121152131717097209359447572769318264768511405857795173947561984474237116834507816236366867653532550643697384995919084645337561096055419808490177190729748457440723925753161459927839312178637062331646213960449808776630857666603595708888993022256653485453695511140797253228602472207223215419365829495154928101101662917729000377833427631986427328598678722135622169345038730243505006733349937616545446967416570022729470756009429545153917660467488046949082000228863926536700224122263367443867734769119903574099274139373370511519943679341197457263445501493145519643319051423230609859923138979120770803159748684973111602414720480726199291896323960107489626168531055419582816177762677500582398528959863442604489781007678423967851852790848906899277493076345266801583414337994438538674353467384175113605583092372211326992919139724238989292409570978023287740307250838309351202084855466404368266270882848728700336511722657870613052455840589308426481750801169426513932755008834681755302236282025297652177391245240414788790501841352656618544702156330697205447247730090490920846599014583753964881668034736759147840533144276052693488384006655023808196297719003977187222940053317243141141685451858944411616072500302061409051139419764792758585072657675807865257635200950559603019703903966345420257868330507496895385079085294949388626099651246624955559490790686263925077289451001473820917994983212372325043866786060647071225322718298777910053511684843644569541011830905671443223947382516294760164301873963141981013441360841648226516518387849597584202689219859743706012962701867194484850988165132468471934575620672942167972161744422136751221274827978645024735016721745811056346932347602464146381323878464512534860996435051266719031262387887106443124453965946379721452871696258442755945681201198458224508084060256240411384467528554466083236255856261982602456149147703586224646535697468333512003450736736887161063147437734881266234060502568225997792467927275549049484009186769880175281938471624602040048697032591461751168772024670521231605739010370147755076664045504018194405882665032612834595103317527913667182221536344108555817940045070161370536348356525655761826365243172216038999265505998280947060653018137407786987789367868961892752354214495950789716824647092723001428662584204916550393992186848671108222719196672309240737558474189613941545052992373958783300260856874456246034202454175804147614500595610079877391039306872270926050205591038578834596667252082983806271704150394620601375648666143633577779650295549092923602004272429333282110398512001255716532758344088582126186679124975076771442881291820360964559103713034919069186307565198545024809632931554328443673161291035544822890054072618130371376202128932118879143007317046201832075544624473061095177660977288803026877350653983213546655273055319848973786248735269374937925972350455939028994596149728735087535965327297935936196598888455367003909519508463644664846704082421275905919587792040457642692079342456543159868067338097849021892897833391028430430634537921875516273563783848266898979660238458284036142621932745855274736441389454900146366295955409607441796972304713265716624311663880768150034512255326450775282993105048129193447115276038607540578330438263986012911836874243300713679355916404929639019651138880472553987544531860475530212301610299027880359923241925484324702385701136286045866124798928318445726775329412665711557763530909464699520232149436999078419284798791165116752432935536506109501412675158473281309172953851591171739301431939881378776463392871424312026585772422950397105103315947052965643612396725230463581589578223877637654879443962602927446887560129810646273304787535468797654276315490104284909916135973525105045338993851173080326274724270209916509575972361143352170805551160929839512101645688943903706700995685682888317760766303088412481648647294135188554541069031243627014980530402614666931195508886364042912177071666196619371156851016606574300043401661395037731116444537230947192079135114007210763246400841941431167552698728247168676416315759608943290977177752716207009532893611227851931521203387287944674238297523020811493811776885786554692882156055807128455646392982833742741781746512028016122530113022470698438866530367514248481462282747538615134007357460768771839692395618887909820086206235284469164115379085574077724755354591355431623844878987144266003989650770233448676814091894071481744740061064081130505848604726143374865795778150352121285410834585065760815292945064695993998198564634379690167004564493405547682652240617658703263302646436780650437204600704807120219616990426892737262789335812637900576309417199529644629930925744619757785365365925113963722011639327481856990296913530390339759547869854604872381391043564946955112229346423921937777333734400990804407849778777913201967996512958024091126240138350797997194075473750592497184205381557498016238805420829001518119568524183138943519173148936200582972411002069320822440652733229735790930662039033845052699998060335903215403712060230993104370828281777650851195064814956998767634514230591335420760894854756812357992140593153940919273769728611835362785519031370150709756615119914616891684677000779868816387246722516314778208278923984836962657849232621547584277836642297794532133396629726730432319228218027729156886389695217714791349648432862922409453887437070945504459666934624901910507182392622705326862183994263285650830180933141379458447967155730234103394173324226327316863044691150613857232740104252828715477876303165615716596795034993025728959550963202429575025018313490828290530892369440455868996551595941461548580386091287594871726255288704312176909376585208871494073521208977111551219826784847005561347475543733794326396020972919941636741019368681375191124692584520204365839698184830673161713480811733831115035950529347344594303045137237294539420028870277300867649253028503676380646140866426387282396370479308139662396329181743437355210165621593394939533121420440933677804015192677586064193664196787708253602524957325366242970027233408580719686491634514062192963786088847224477355022832043569842592227986753334242035874812051279431166466337420644819174443445651765988700472149598824315650424541787459014241949463379867207797792128194792422967585722897060443691392315817291796128560460193274449293412165803122546814215676585861904476928214917767693215197019880552241142886921242143706447301133472048299084704506512315882159536221179828693170267883308014942015234457594254426775300471233741898623645444691070097548486728151861259433334388543913135082757571130082393429994063638497503883825356504700702948893604171078428291073973764756026831661711988653414951069453884190518587971018136766429829487142087224942317262704634038538081068127832516262036618754946730705975029549396974160803894692390941962017509223055948825102042205973483783070312407291365895891892440979437447014128748407237503723718336843230194847677355802201699837222182815767571202394665137793713320929569555210524784942937856752614471778368664129752266303724696106475689820641707439167216765972192866377787180736589092767052244018765016134143401078417111515668490786059172422181978093185439642800651418658837116430520976136973594794127666096656509049174439138650281304075779822971868252378760521335907766733693139697740648364468237845826060707623691328491031219188478946882361848896411540110344811638848225266164474172359605704556679221673863480554248314711898397246275052413966887539930469693844030714199244152646969487348170748551375178312324646385365399798604848741214979591701829222163256388493915734830835143737688509695537684333863970295661272285101083973543986048542500379273801304277606283592514626592253664898561840427994548261377534681723929883386589905967836337702766586370821261978891222557952213780051137918077910447665959012746019429529987196756716710597603006666650242111711222662243623604585186501152944074070255225908599710522346423179042998081139619756778275902173874228900533069850683814580406819515257367324390048443594649882043635942895526114866394316012027081367938488644597292921226546732583719198397853259056332338586253010877520168463434843398568142384921723102068457300816581421551330785017412638144957130369083963452327467687927918039777111083463169275281597538156836140007093493484282522308784556680722821531731370485595319707877599847909563276510592600122751752996188685419818616819815697597033024825454586363665108401871031546350548636211077453683491205799347939311066199994821510870002421033086206991671609289936534134167044775399484263092059053004984212498797602759328930560803147125153571656049122798864609107119298769921348558470564501407126742223938715174655792914352510971200105675035253915514658129689535273463958849123612014962632938502629454478683383136195905414751147044882590567597009823059291257271077772855440433774324474333516311445837023048846317887171830002344874207923805206770959014259536636551890831579303977342674961889809880554819715203241952124079378618954734178756180785274963850196256857187764017315033811919550490016525899489993996676415023975169568720530617840125428741621729106742403760283582892761968445107919954652281392355189003205426814494315305485836832304034653471438440223826989465846522013320700499172252558021273727170665365263038126606293335368736473046401131462914255024084547297828483633730932975294006880601974323954824515798048120743288507327958409936764917995784302577215840850405564353544223249083402245119017218541939119137286439782323506056397437161407228457755650340191595340128242380886414270668828161831409615383819427469405016613619317908729528262164931192114091787621647650960353423383840180847315517580045979953349085902515195356353499737688692943515820698285551084671425782969145251644086661167568380809553538251634547099412170703144502295118692986578562914337903026099939908766883114042201250251899327293289423157985125854320150279604273006276072462170795096090194513823119540473652306569608246558722772514394855408170406173653470880468080638243772920767152726284229558036223343126733561552348409446376091581051907170634906434299267370148360120077828962345830896727196023594738899632341557099255486416621309541954156771102407217172803342564849049278529263171208012009473902438507484184526909789637879703505307772231433364301396458011811053762853553535998247301508131173671437591595361603811610836792153824068873536810843727658820701047945334928767095714131996656908639017283581406447780930841964757274978049128977720532134816564508102523407598347264169134042185892549329372624985574126441696089331231492008213786750507448078954329949037346355717249590560931395762552165309565424042679908656014890464374958480399036028268808962963647983529353919952446885541079254841515581347771027493976653265121606519680318612453118219123001740005174258738241365826942813538338211475799038635789157806824984376751137209886908021056224104851614132849811064967003731760759526638162779826757269658283590612468139611495611099995384030473001736593077564195512299732894091494767245911363970019112167560675444334347279392969639428249452551070997184917518538561291034230373959828173062714575908581339745217158415978996520564796354534452670922529576505458292074958634084183187354074574516734352029867242683858871439796848597875064275170566588097297063970871903824202468419211555064478271910111092659356987221019448191501208090550772717074891843145633384072506230116544070767519033242882081548466759688410243676413771101040299140845194259130312154954653221247835955154203261373775357184222454497753653773522083313573422064284378123267635257100973257086610055474374267497161858411058770506855455617486789017844383453026394093410820646436614150345824922946721018929509227126629511275363642028557101511891634966651693192995024183997272346657445146818531314768795056667096432978318502785869749459264118213512012650499162603882897240948669518481184049170233825525649346514963488138670199505652826325304395093766295075329135653204868201304109707719238290773253993648215506952562260181134248324057813727095387586604656074509762380954757172121820748166954759890190244944371175383112527435882037433004896636056968006280112844450721159389317594818491173614675495483657622338820820923972661572624327566760507239616720758560127819391274083158999532336630003426306748367340148798565867274206985450758524506893769867319982766704158097792020561422476143930375441657288164948935816273739176503994981722553065430693924975382937117258639224252502999557276573944971677989575773926531726338305263699088015278263461116977106387590738267489096548593355966180923203435060174117261639928054707777374335901265832918113332462803570795115810015848295917631396477465532230472249680523110417428653029812324822019529088388555006508017930688513517443919047574529742834156965534957987207222340178551758916910811783420347105669726564400757107858949326125626141798972914511977168304888304465906681379257301317197434695829974759601998013945971082715273571927439073171694114500277238369829426571959382998981577879922545470074541043395743379070790314189563300545097699317320684431029012098042783324318563306289414052087447125411105172245774359079715675951505538536534584526922219342401689429203555490246764120690554277367692710815426059773653314736350477932434855229386869458194802040469249945030708517690895686964485320178526230640750353226164182910438629010045780844736966556949711888748457968841002600009048585779258005567862606285583467493549527199377664556367184139837213249973217543391542203630518751828236803916037066389605384660125890055125646527268612903216360886362623846349210730458966338976021175811161086180806805825236494646080753659532907590322050729223146802888663265812365427804110356738703780405920950325254362013540552304419082488008137422073841368546239850512156075720994547550853710652516173579603283206805296173590330860012588188906062543857780110557716585432739840501043676169054379962770005237447536087482393046527071369489865367226640661650531040985434488159380544812641586147617857541096205437182090912078491754260424902328350919520078448895235104868550528352615315277018781774902708911920188029426986362516384081920853274605279390212243637374883760029055326838931606137137529803311165114002930193794560028149377072352918101056048815644962865334570076309705391477609413348126713339898269510229373455738597919900818456721309278865013751292790452469052280293433300562023921424933239132723733143210308732476336566473863656957414127844918903664321040879297086908679485783465794670165309901443583866041091634422895087601617088617791145741763995639801435492743595851356601269205698750189035419660557887741137440983828128923933490751232967436539482716255111958337623283325855670876992231296412605165208782786408193729801293845973133187750738386869420935944766641738311459626811510400176111158339851217685772177872981483017245682463643454908162267428225394195907384331144537129596535538313339809345739091026896337701469516868784100274082434866979484174268467458358636004899032286080483682869274940997429774440270967778141818970457933225349028668697914268392673218162254010116192552222634762166514209024111558557899819487564271174436746387576506548969158140694709533595145156126976807744501313301064248381327482242114964621848849089519276240508715137469035195365706709079564938499840516851588797597205347622438678589949884905952555151730440337420774459877706722148573721790487433321438646793858617794591135687461242821608514788357447584355545904117119127270432716409847519616365106350077890097169172131249983944951195518690762412392283101113375163353019719828988585927308195047730773267794315338170174993433262639250749313164681169140678008380850847631341890844896458104608721788438059759683363318330248301185783893601358357461386251494812273269539079466315896858957588364124002862527542659759866315576246102295566031794574887022079812634135257016362259111615344090753766580899424823905546749000541012732657137933815195215483390660960357641570240453200167283357454314266676350853770941655447710173357067824136528643542573911691997354114684994243862480931930164402332701763201494531627556885793840756072611723657394471861406241181312270720242205414439322417751568517143007576848647499932432992570137812453183639142879867164482427156995582701472605644964019993043075497814585169069383369557768226274755307673794841218457436917499985587308642697485256897200695232160741531083354189188981771588502997849228107905415312052531313344213088978888395173021464523464104256399244375243206368715370420767167935904974983421499701425049345183156644160873579328583240365005955741310086603482208687887562797309041558373707625585266122811030816422345267440390084699297169195431787864936686535920319608316241513878738730382870231622515950322726367071472832113232875473264238406968163991686443321400527553342569244328202110623723554585791076795715104510391221105844897524610292052028917347428144418017593797169803436405501385318615890439306630344499045820235806579074571248013001575017510817716651110232592037465801231854612165654576674789164025548736824140962995452352279763687793648615459923581031573021066689317234645749105373945988906873793387182992619216226582463189084269364134971005925591403552519581502013182747951727361538108493712550063721880862420155175455274823676442445506952364860127031328504355866753461835810108206125717457034274985496884948734834990238103861984199310923634156114546076784894954044696793715235584929701650518803659384481139661832699061500201312298026316460804802804405673081088925498360535651503155964982116651137964010415996629046614243981838960499069168897455551847182353786999401386406723592244814951684311841001858861575815879648061824778722109008855388456136002013520538529725081454763029268244948476154300457639149420323929076982150801173037619474340889797824338220330864449204264699680336524696437943168456776393758812748104762905525328302542454733976174820875547295229959628886070327803348663743674112482561829888586729422012073844627745111440054837352451580482343210171470878007076816777604678189051381010969831691761780536874727889240310236710892577453715860206400495672207656252815551401518793715368100471449696214226062322226398728829890259798997554920058085568720720199687054064305353673497121934093687491971133831040655067077926418972543475106183506308968022339704389678835422078885451467303413897501163071384605874666865807006981964313006702716752396028361219010846435827346455131704511813930540147716512872298760526677289221110639698522011623179267465855512565424328248397976442412432085475051642883051794324148772246375189117442324376152565641547290180030618277225237163078347985800526881069356322788224039802433582383444411124140357651139418008788541089823386650243750792643858196123103363201626110598349119795247544093454348609672961545970172564482491454008860215342891253114635062306376174624196601419114647170602932318638765074256748276856658242966811561968618186064872678076493358608834848557555630670568354453800018494589749857448515392956451419723096037938580047915588693550837300986974039284204277147569615961105050254776720470332637257827607016320277187825818111059339547334035763374543866359915659705566363222702005325729726335466681660615895400854259913207688573158771958620074268208058648114972022958409816731312365359101634578908212058278722721973382418538874683303505866800227094502883819298361462383144335631234721860185533349983198749997514797020197869177594102919010214357924436929373562260878601925545530845229346579704448399250500547947293892651434617221823865388682495412959249648141211074971037154988027688953636435109522112684135602281639456908250833392968799267728460087582785588108639766562704484324173311231781735034956000978499562846681465486197290679297431045333634461456837238919762556599979330008553069705263396672562206275682672625224780518211956306197525060020860215381796331686744850108614680995064223331648244578164023120252499069729497560638688765527757176209742346805418519519231415893786449125400470199311808222592144616821822146617483485703511469867919135607711406460943169624388252085767643079287808378976802882564337589939151170898842827573578944464827484034177687909474225220917735180117692180087589375785768273170147138467183996041031254005527696373970989405983851672616768802220471280891527926883387025110627677361956401740537652686777739800686545616911565027386746563791719156308896704162642192559479768785412350799224801679108452328140757624168214838499456524083232728201046819257324594812876368155878335101267758098127122144248053502271532526639741772826019987599741053728472277751723951252670353993878836170311754544212439569059620282914256617533862205364277510714128945210354533833731378486705057498738013525415320874395478909018198813696990339377080918019495797495207619434280585729771322067152315026141310126610958269264444703312312635064815671022675551463370291459345345847772078756949785639615850918582516453552755231750203614436095278298542042408828714139729961875350863253868109831753469888990778042999641199375009248151434271828444912445177832304813752619890671576705760927325148462417655171557538567045396661812970807922973831793552794698433583302872095062533771307408371695579536841903425087866705250092747528922051391114681844065589728410723183189785611573841882246052897987366996145268720913855818280669892928881378286801169001049803151723206234829894542684670957596852289031218173845171330980267041041563421295947138216803336435182830022813475107727048118572023561811028316468452865720565235328327763941968487896078188816609780282984300655442825487662283118602154303572496277119141329973303271729454022568282006587096537377183350477089671524209684481816953456032511814389115898061570530444721974617317240837430060422870440949632282713654643500148325774168178802680732236478458564157847117278982476370703229471500785974280206073485259599851675634431245670487272041164890905189272693893814600773388869568727290513385438994799380552932348429660680327339124242442177350825189493026591015821136797507371419188908865781494097621366886640338243479001068961382739481711832687584456666610677600739811462932936214005138763995137165656325891183477815914953841164943440675866661195686793978038554129246727879316173979368199287430726810396919131902154359366954866481925290976017964025996182443591133100202008366575400904571396242467015137207470033385549361649896839848637477849576708977097002099439654016848461893158857648985592758060119717729618014972790415464812070733956041626041198445677479692992545939939262806396821326234044254311116904514677075143999985133253690110053822129833226828122078403731388145153528714082949853986858244566132903782421607052136739415627506184866179752710231501125563250477378000088314733141170315046384687438999336527912742339404306997536761395147312394284290277222743923258825968973423356996339501280173649451922065731671806205100912788759766736268249302772892568049612710732668077513110960322804100534893683564184352653273972432087293477167577899863956735158185033456210143852891479013018460263688412950047319719876552528396264833638955156407021259765160768651331771503997835151460467854598695739232667080733121174514855999322682831038967444568740334458058285707125487148380461297401397595343032786532953817989292550043539663885747508147295626508544177089358818355446375379373425396614586726585598967155174265773373422643371491380456633566372776685929983169625028719415090465201130136090670514038646015625795861626010053014779049110224209837112599424645815197503337751911104010146768184567090387205044824184984334360881618588892247325768398228814578730365911672687129560464126260977825741617249899740021697174802134383992815110644341071862234904760220719596363498668259814889715173002569747587735769735870437797545649180095080967713283513008251068588602090573767744414349686534116102581470666776998955154785644639404708351491138619920035737940856505838101726701037959327841320205296510408455154165860368363823056965471760228573843047183462137597587991390721514893014324969962085738514380783028749321232174582364608502178413902318871225025186316243150003909167096341645871944718456166214389218901899315700070191461433099105154628472109530856337459711547292947810296801063820746380261258022758029258532132453709745172299706860875833945962724177309596039688194004202837293602338010045283256609566818308883441245964162023743648817629882770120725874918925607177538169644348355620414456433314469716795687187329185479158398289135233145869895711166771513244046481564479191750289739815504864094101517984419576374230521112123028361086538646269265387440233123438097976191899722873064363287376795803659179865492714316987444380766434249469040358126312457385535734987847276296464232673669811729778896467208381771230648348779431677882686449551600945160046339681720605593426682322798628093216039734995891204387920121671055517462229465461025206181365239286731378737637942177774833806720967140911365079419152565536619506253456540990040733090540032420444721163192636020038159934415868395817939990957959751198978856975948797204373186705665409816692135949483798925941109715043056944246284445598362461934251021341481042426543947435345717234737942607646368493039682319893790880319829738070394352105057443769505834393840810002958689921447804437298708195107894549532519957300608785135883660147489968050977918611542056761204168990281792166029884455666687349210369917633249188328104027030909767326860220370471708298534559155354353811745004613628917936210268462702400475775432502417650420852237362643545200144847671980506113563898312527716058021774375321748200171296459574699308181843136371855515186799185628513874941653663773576754985841681924182604944943388585851645440792884028556971663583035085398824500354945543679706893025010912064113361537305847497455595832480910591975516669790481910066506523369457586812225732055840527123065163250479081311871035966994973107358774228455002292615494553037120859079737913969530381190796122698607430825133519362150901572437761525737981581516861992563636166190172821707314181980502903299582687132449125511747782875070048444691044068777051911880119045327825449488570951127147066282187819597128593923696295874255421576368911036320837214125196847162895477660510611501350240800187938482154133162416910996588780711569358812143480821109005131775414170155831767415892800370282699307866049823132330790209362934431989347712446779993154571028820222561324563112557571247222232927900053091774610171879210520318644874680664010532329338097716493377917216872006842536186381156871634823434931445830433175669344006162502985448619779302226816941362750752105954569663171268113681006025761965145280005983673423168276702001805230467103752522087925526815450206475524091666087875313027444563993437567732867162307115731254240385488399045280135163126264342809284653665108774727161637550705095866244651927072305096280167165468248987158891472251866456304488740664753821265133438122433840292788099102740018016024818693303164064395119759656899901987527786545782852937515657605311231092323232484002630964842491448605010477445823719853760991632041696172254822814158460952709779706669442742912918659989639580871563452315396033904249702961996177005128899111586788719121941270436035213999448880308175011538907764520556316227444785387707470608409259945289178834205954731626898145097991029188064742394255575625123418542304391727964653123952604106468682301461472612049790101424500079342267481757411577673630766243228736345782616968547346033068122331940781768452309661430979928695765790876922988058484711158808281781330914847372794066172960253475615281385739412042358506012017754855883916380527434346624396645123098228732667133596339681752599877035284368261009930457789840851294199143508230684890211577468108511896462461805987468785702690182267393308554052295691811312471883539886470978739635321944983843686492374684715973961917172775139593474962056901650017662152840049635611391504188112343180041816150589824142574849848409332399170065593383922538469531727617658108954322745770433829214174329158456705425436816267312590036571863228455235525175679680305691631654870924161141802514819515005007396904561620980087071930554724777390964133500979528711251729810298041887786866710345252637736131997612845634700492314683752349801649125394145476698501896287404450922836861941999762216938802424266376582720236161593061760922595939063163320262224648373989787631344225858495032586390242989957438069075748966659936785987414570492958056394205282866699356665811200406249154717913774277496275831968932931863515542939366012360670461130430481631736344845593332323021045210234843679756720436782335409865453460284363887734631588515017162770151484077729159024576432587257639295884140397439953011312036782894918626201129368138570814098055659919581666860788050360255231221689695979882191873109620542801941252731489261932046294359367616764603392644586313693516390192993434638448236233378170756112302690406775034308626279282467221472167388858788926465986494998656517406799917856557315488262575603827178191864513825305742664702161461915836544871277640004111818548386031692536972379014895177581811751481190329598462491861866238594508612471884969174825866626107839357953098612222042759663501292831467009709589647179041300531122271389120753041001195764064519777605150492953014115442561912590952449007351444843496581478892469015522345473677091332426599377172386911937798074915251596422328196559432776369312032233949681095382991678572115285228744301830409237075798383250912661002069724371325210499568332710616129481781373935612191678896485029725011168147611754160473395569200541981886556757475542538782048547010864406308341448757251555034665055686192164424232027331551313183231588165471822386277375696387481664530901643721625207350349922738302491497433003213129971996867114382999708630509054749055116484504912586318702515323545548162139096683943725172191521085561410730172962557698249407910552271364912353228536186160526277772655995170398950020311422537065419005328735285333934880769963599617196217453456709571577800765141398553471441358042874160592439161330921329263511863084339651291103016866414316339392257765094832181163663986533543210331550863027758553177423457724821199133760621133466011068303516927053656129443745139055039046032527333705603140356826308985242616988263674937042595401853119786665786738279744531128794983440895152318042924443982009839124473630213445910656147286679559370436907054267085988278214293937840476445399970503094006734549822429666065586293353163563277429434193713201849014788819938981623365690846577866552268219226777341320538811512620850203571523686167788115338943026338047962180473029215572311400779857733997961858746011951699997466835075393829434687189475159241981016018571959552235845501114671639637754459115964700908077774123038571451233479607312646331658186656211256856165417108556425990546933753218468131443978841940385356796105046768065033488752820313490385483343085685366797327244303702089796011905340556032426192419724188245878156269655098310988458487914391850647827454524039188268723311160679069939225163304075368809147928048727645749811471443894268155266355505794808192819120499630128370675746612139879898512097255076080266958390710228506394413565917023500412136625562929452207933603863608789976225436379029243235465495702206175697403239507599841837628733451669477636370257557488379763379034161983989995193675361071440841800452357574737836156084618071715874715523536791638673829035723967454427035155853652879542473887139656873057652255513030707351211710913412503726226392020522635672806010736812070084260014947542509792157741465995878540878296526717856914792682726632937697601177082703364858449165925591954859629343132342238998486568603918158740107233337610566028121182601360272651518570115786829581808032726301788193051939393862581562084000164060645717785247121439254544561841064369880293381475434921540024012061834347635910547006439559502688924822446777048391832069318758732999551490216540766716842578147588396770115545391561934453222923797322545899676802352689439802932230569615698421689957585748205427295024793596840256269571597468479274839496428770702979207978446124470561790209601142856365542109608451499214549570704949983910856757381932747007868191963622691250256798356949235726058614490405444403490015952695804124951892861647564353295993007297536827552587736703417054157224681108978933399064513654737722650649003653056599799624434751263487251231080466768037661297233993973043936096882842876343465298042529933720706921692861226011395979835493845400254687934835958968483972181131073089566401613475572924831106396925423253581863750162484502842724162875120768327579654704499753577073114312752629125754532356853068321378144065754980450411338323287157660443869390656913071003358295175715315741829231093541643525466791117163152970403988693941185664562550303128224376222138449818666782158612496520640686372425276029226294388126004752805412170639690974509915882185585297065141204417500786589255613123649690391790122371348652607650057127145217838995551008277938134975817535940135875874963305142396787077590695580998908091666729382425244288735858248635296478887540210297512724283050136120640661729724724795953954921792375116002491623462675685120180764008021208694214239338826819747370439405024085108751396845898481105582802621597242378045655925061559741711565967020496754281382667101327712523737542439410051156731056385951631974382888367272733529861088862486463680252445608149406405959016727822102672307452874051639195341141177086384432341099055115371193999651034096353254962123410117278577747774147484592097230252764101128951861064569041150165475992330645702042999970139222095809031458630494434672277606339919356163540291337944878309881973094203200986622448857970876240560805851770734243545770418208002638225705569106418352385893129954565301754348692916928703447468740605374539084858862332776919372796105353744023972104850812936898182442330969957169531945903266660251494498665380509340773840642612698437004204030051358960735631335527656047408230937248397428536907631558268386547021742997647765281112947653340871541421735587474672125549164603039230403703829932604468117824347116346091514096129460872727103279014533578533332158931983118204585915027133114199839072716122567921160585814821800242475700959825829207725919371557209203943688986190729214983519733758300176730149246384976341587420416844862465141679213419461261727238184446773579769250767637556935801617222829862411631665639455226487619983844055979380420064956266574773886750690118343363785748026920381326307122994683002021572033237966037494878703121047267651041848587067182071719712122901928881521123827276482022950502266920047689618744192059714671241592412941205412733247863908174931498787425305153506568128499889636314454398209623654862636857652232209243297449867168488497288227382786261416180536885017077075290487651101106912218614260228764100750872489253631306997104745774225206882836103270301421585449863941840127362020994291724945314546585061036534202661488165636843834727312809277435003181716843221264314074012052004708745230702987313330413773106735197349019224447141453011731635684577803539548955535931725867014884263426041533985246663980957598424786054526813464446258521802457378474220776247124111608751761433752661459401219908760950619050923026506509591301452906522454266236553543774982200614662839873532834210007045190609575430314184525493551435424102144995656952866290578805880685461819804651198972749746218236031140816005037243320803476076469569561921153685269207869465284467300710998465099560624410157188220555991006540443257324992443990643911795426274895253389037387281428529596693346093504463982966646808532477019020051423963595139902528857013343156486586014015517467727756758360953693915744738517034389122098680422517139891388971634936715405978697970973901239385838710160375202843109424328813050258547544504907282034625507813120268277711221169435991969929101105627908685886421603266979098952234480113899734558041144106513921133774322099027132375025179084660712571328528081714772247256542751543054612891872050854014344336218857562743394379841034851581929973215285678933713860158146912686291391867798485070814439635811358066307328515305272314141099613196159791748896196484264429116339777326181113459703740728663993449573620543161810789162419648886056190652351646690094817558941809051393847632502533158329950493361450948252361966444442171041693141206449847002492839671940093332653399435490899855712432183859694609481298413836927365189347479973951745317770698162297780734689933269413696766736903689582864000637226876580892360233440372336729154903254544840452120945393429174056072613096725739946972948881073219408624761604526450143354429988469230895237900323691073259990885391806628478647198406170960166284236226366983024348686349303155253618152329166193080525617781638285350517564157242005567290208625487759060452426963378658419734381241811921730018642233989373024175562650630702271149200699382223758032527577526506659954290658976491425900226889994820581113130901509946381091650484763999554032574602431527371300306780009968061817553908307412161651233097430147818076756882008739358894576452979930731153866316059348201220375176183399255435386742127729668980365798821990140603795594090255626795692792052480174844196739166429407341296215885632481729126655680956814687612714318115645732768713629516633358721567288354527162105148267921976156558181623547561029498704791346564750669055652699700171914585973009576393179533026796963030319343424817012237493702945584138483056000970643158629588930698606664081856347199023085413202688029189728901130998391480129986492837044466078713043249620897628550646257467856971216759061835982686967669132312904066988828986226088390596123161162004636240290951415951776818900236337306314536307900238021723324564192000805755901984845195737469209669403845117149829869735960737183496998942382402719353815815907888755714009149739274679155323405465762730972841654829406239172289893972092028835168416111472636632578541203053029556909524377449727780412019140153346815520604062587972782913293018998120976951102890302181854741353793442179635996681578468565254223655038344433425364246211512603506843900169975781442866789721046962854313490817063624545001376009755726428808510975261616527887214980223632641039325377798147860659212631491018975672363575914473347562670977282882951790590072205656930907474845621108309003836114683043768162562854016427296941206714767795118732044710422672991081615182484842316696955321673480879936675439718061452495448480227001503878908871162310955333488879308677160585588789583085768203438217402370338940613290316117332704082880344277859656711488729445033370673289293746251178236866401046418978561464498924546270015573752187842661355620090201546060873425706519838102837207463260017825661371345514965911980006595043638308193907466747216199161555812468670934458655577684743448051099591229334163872159794552831503886028996802909766388665679299501037570097029655535038240931001352270746769383520029448010705503939124090273820547710467118440416347765789204974249146452786911861684866625867482167202216782898726523185456363832866954335249843034174841711967782091121798176694893445714882513343775162829180516702080957509364435124738645830562193325019608884555194150023741242258606778062324574587163299117802267267195720101268681513489535093792708794593885317141846555366457751096770265941978444559216529623570168596817668903727551536758948226261843057725718948439831686458712518105323050150817242472451304188016862923440818844087426555440485482158273961272416918695116373502821593688622785978027184129874088114744136068076590427998067431103532325400430975699228690200266014314125757525667471287422582649481913329721921997320464643647340367093648530373122123671921547201936185352550667399143391806034460374019954716706438855525165901636266404266352396665276840831225735400537868803727905248876567805441226220977214206765461653568515663684311620044047468814929761495064208894081558051304508496245998863271926839565117021005254289781006867531632430401223060664049495595850252050254723787517464801741316285277430600510413878767496404924845311542755230862142366978350736138627712455847661538075321225178879579798323936411780409956942173909491398309779543035969725305342964226787501415511800132945303298852985305838747118023556578784077533180809613940593215666137837270949933405689217835096269762745077632095653305848922483210843468649004046712082407221722372570075953638114721247863278276907827439140315950966085273088054898517474402076512172732928317772623794288859326889327312440536852856575385005989193627798325408757522170030935106267494260640751403947473258827641720459789961601214318273110657082882993012749118578897264803433073144487280693942953963917640291322215510509997485094956111525892925993292307363465920322201330616613006565103991085879901426784821683939421692204559494510219880032322205268857539901714056458131466451133464059453062979404926103487846598984140040978711134911105357772770433552337105463089712144645979881037110246022126252024005304578409816146270358292079050982881126047627321137142915499954449843802206216483932629208238943920672238796136551612469395192612405207385758464698136394826336650244960965940482681185485880041470177928854203996090875876587185585689190519787955090722228353326671669817908288501145609723378301730621052711669845827457000181413384260734537186593473412594096004981392381412302963094432659072344969331758834632459796114898228625804696289078699103018694031979555915981205555741284628470082441439206266382102849386463984129550946416882008194703278266505456400833013940556394239717800979716064687370148106033675707456677726814862675284845548798349390893778062815669229541930374637856271128363119488064366481234854280927115552754264163965146427823726701825751167824806567432276956385725076483283837371390036503929855137522190818165210527623058737278692303540602139799920770216216332296439315125196618923200779903625856489975417499671294262339854788351194377750379553161419906534312660030137209096662859555884034279156772851864900822805985692294820597814670234177769421872852273003840117540750502294873692511061826873630892452621536653494236606275166563797202853503364908778793295853588643310897103699386082630289687736917711799483996852789771469172564832845554689050519889107323947189997104234262260577744819822246320532832674837588615083905444758411837422914168889555145460064604910284627080665040154516631679775163299695311951944120234430062504345567242804910907388483866271400545958720732095620125413072479834020912623719288657231900342880102359304955659232737434948467924816979714114313126936932308917869213650448721005565197974341024518152835306418952396296863483311234685208367384619950948544948310411795306039496218750032785042686915660727356825110517381691508522907723794965983409304700152051163566814498925116798193109966901462915267795514382502263708651326696380650907165360811147651147817589030120241670496959974410519005956499558782205071558185045225591319352724823507476275470738747869374694537329405715016273256187598882571161829554298316739571488738903143536233490725545241746944663199476491261088567307597568665957135129228712274544211087672537681093968497258040528605151575660205888499741742705248410993288806845662945518137802023829803238179089308645403154927460219655647126049953982242180026047098962874117810599308818092004641330853559726727092062225096403451174716647702888799736413615852740799303256525415345941004705045911139465643213353192292693263940173906709903077070650521911259886583854676853246129200378078490218943148149245340768593847073418673881430476218960044268677267326092192801557034221153991920033304695688568300515517177346849576164050753079613508111698522271046740632506820636976495268072091975633730232958608644709213965902325748874909068474802127631035374084030885290237950030158382565822648023584951065259744809091896002626580000455774131819941894871959742117046609305563925165456360161229816829133832283720255774671814271170192169411988901096714136069841419606200124298751985474384231911098333832901097231439531581970530278223624386587806630442701806884411798691988582439663780253652197188514119240397623947962519101864773773806801190898569400665063550807528447767847871321021403293588766567372106021062970408172007610016589889283522259787644588067516363607741272786258519762716123247796225393762406201883581162411080658830656516980985295505577945303284557613921868447858764907731752214990926127195384706176418468293491797324589875092580093497256319148218455359272530538854915498456848284341250399136614076090574476968155582005063714874375543985886807460372996772761600575226976553439417917754668278423119356294226751239167194731501747782581259653520497886586397893768971783192649472290861534758433325843086897298447657907746513393247055974884022844627296887706462260360025504601201238224384952456807412088372073822339542176411929584741261866724136912233785709848686442816993984722424470831957080434781572354667845702237675158118161919127617451765524932691982091973721181610379857279299526022053046658798122517648793077644032539928663964462378413738724708638413516290679312114846050999870097942265060466738138354749121272229099274111128601298202860684702232609804766337938365122499347154257083964871302277014519673963312213517024529973365118795537688059056380959339825629575455836808362777685552380334483643937023562354782903188008688557941256035829981952008813910218429297070741708295173129197448823033601356594859209638509761481664330851413701101514617453233368293738743018386743341652804325316910184952630055031491143525218145894731767305792326139573986707545740683989759674263113235542313155708239022742092224533088936621550680333724832753383175114894280899183510336855048485099910280820724705997357951847123329894403791890570883393925088330217227465259124540990182596427895207857423206151644042160210364761055591791243679411997099386440203752318650062162082636072466068634913747449065959327973591495308243675077448912832340930805180813186927917100753304613482465249484822474190670639024566485427547116433870078789694911497141124605380051070412248300030086020907230165569169859781296267626467174298223176749072295922679318664640243017920854740901824975690770038538026244503277289537317040667856353847866997787330758299871043943193587473686952451077153395394344829070755378533389989366415646176335892198321943969929308990333252527227341094929678732670364994060559176628804427759268927812556106863727367136058452349186394721749994434796209696914373868715240049771067534241585456045896821383374988203184832580522570030000444822976975359313275369810867685957276390304257416294063592987800350391070401158420542744922266275375277553054571931619528459613359414016591719742495178097446768068005877865132077519253183496871646514393971813327277262958385936128506297258488345150649025198767411308991219673210883801898079109391654292663970539628128607517309265855105418342780882588062915502549307456528879009240141233380667754602582447172977936888754214591391417547889508455896498864197436976593704982538390310941375564111278475778142835154736160824992231680563391021480859186188457489338920879317535577944365977847853077798527512745403563575886215887763414644980519958871594546050422922016933668672028338225359836076196288807387411887033068051753605904464114903594800162741629303523855334439112885571532033665560651435781605888274869966391493203209438849638774869894981430597690616389185885281287343562456211063547781467567351014539598886017956095758534181005599053565076623383292489095521091014034264959061038287704035056752868451420029581056426855542920353852353167646785148720342138999790575469262547902579870605991007783081478102919209506439309987830406374165400180333524759485898345570429222988503046791539449739844429393557155101204236420855701468435853820802360112930283089801353904150452004417616638044536680672279685586920342984446752707736967457182470006790099594284895007047263863484902438938489760528443001552825600014780974736492323196054962259334620150284733582699913565897464368788093846564030150896957445785295697977768803395795911781953205691600871385473886677446711015263351439140961597522623175243350736276953681000090039490225696104212239130323926256366859283138338646011439576273417229007460965386451687511404039217923995361880819354066782387407327684250356799091144388819642712875334097609154533219413593219158098213930522174749032820711782714898236238255851603154512199717264433323936426464450277079986927966100361994706803368320023184197287837291463077942731761430080360696138078589960171509382645877789400273188069218077572631379460751333952685844885691038492091913343156099873624953786910061784189392339739046570512446051872351767320652832955344473964366949184349495242444778519374000139186728278628494496812122764011739510320446558813693190284686787820885326081840501349739925532550428829641456198212594401964276527194093946052721797262255722983145981213744774633055493102251376791332809687405694493077360028335966554149630306751794424010269327386923529391871645103459581431701458476176055272729960554007543571631115509314388988754909193979986149475880368481748010524547009743678093143304701702791080931415594386212324562120289211018314248407634322667412983631762919894698346840221198025259045103683285261922141520061221011319169035098121788119980362218152257254004076512552753953758682201321671502274946868724764263566465279545652829273643017557813036790616326700977210135672846578888623423680440588940881980644518531609751519857684236481053826407126865226282073013635294995192198522729056809183601478195248883733472624453526146558317713335462428239804168881253269821163471523817821651183458896381313734633067513258254872961563295085231087831714016530696992400437047806084873913155244670603486025634801245043093127401649774670667176726669579964836937802507575140698309801046032184980724749571490071345326616837649088615049069000462970261013336661123113846924406151738342206576570053391382598679603010950633475847586148747666166534549272072739663755794775515060114608187547501299293261191727949918402387662026631487857386132895574076999403349683253499700800211131181620505625751443537886557155968942122296726546342718484622761331610894675050868829082607961596005998252453693428533267453663970546350804265590991783527832911166112322307279333937059287145671047765167711542129166388716707674623349173503844676941998265739132884345173100355896012153131542654044172958122562350296085021795618014723408494184917076567754418768724930125294990620986286451395189858931646829123640576170104245994901541825684739136970714318670506701965733206789879864554619378677766505466923812843361202988443289508038103049891803454804527781981693948062510996186070568762322481118212421738773864568578146198621604185022171896012792440611880215974362619784104752233554791924368762746685343114421492772953709497749585408342916987294510018613935424611633234577394749508666081897229590271416097838911479892916959872953872283871738220534149737639473028500012418268896262747683762796189535620604607685109169784218353608452805884882886095902598418944911502763961605868034064542898597962941435420557639850586284859763394782027977885983298378132692942172092919111700313408016135572548668647451570913855305774733575957421863784209512039397432019227938077912562980906709564437393814653905192379359419470494331257992408126387323210280330723896405172233019596452923167464810290826558548373566109127847395406572078669850716742578229410302102550786775772651148931782912689600668289929782273292200868304145240266689405466019754070096743640355576153031391736925655095743660629616988271418200589562486444456363372492675238848209453822160088940087151030409086687669305312781263374113611199105138160913877188357192050194061288945128352589618616785518496553193563237259293465306843484115385524694755225175367803471763343511139652771804152781888126941938483669030141917006631005124195536567216242088082790820926888436044604406906625721428285887963303840906123687156843531024884029626363132791923753185082371396051169497828382195049814642702216374804649421233712033091309169346985638899116243892438567275519842211982596351313469700982265570734905251587583049936778933795659587740350267476111882222412114991210437216967791403050081618040635759520384871704812695662716809189426507022278698872796207983733543982156841962055871559176071644766526972637039663391517428411046341410460092490238212360801674262930759826504375348155346235528992692860261467273493357136785644353694814158401228815713364623993134120608708464092927441443827630531000405495159276621970974150035778257455967137480049839860799169161201373310876026274877300576384202982434669380964958752042607290589638108830094791398065782607134179999790041096501828713780996522774765902334448200441245612845240761433044116389770854677759064973848220178144703943481055507874531498486926203717023594554780115168607139270080950273431322014171715478334753378880087838606241516743746024389075187126749425523258506150885725665692639771098821413961012583036717614526695338578165379069813967987597652745101447218532440537181496583519882859243294386837716330156974685344555592901388710014392319013193830937390341972299870322282157260808059484811523991831583245381452575981288309601884802588938138757277078687509568011563345409976699393558410743787346661614474358918175212968114952401727387144309737014940859164328983273223383665381154827218896080384874319189215236778731747731996027441236355605250098482992144064196636746535488449810033936032441909595016511544017881346610918926632984046208184406056205911413182835441416990882740454270053234188889444498046372431817241226352048218115560600144588379214125398739605416397227700565242094673298844019316835020721946497718935762080434885738958776362994157751451791787914757659701981120003363665083032858316717720270859338766098414822745959136637922946441940441053558471972252783123375583615042222523114956609305281117775681538479183894924265775076777023448436090699138648270171631191492191062421051239439427656391590527224109293451604665030019570742239453748553838991531356408233558305207258200158145913074922587076930092508543525346218910357557553764418095626201246161392521337944720073173584422362848451167834606340736361212946827820942541589304033038176417144448768541103843643009603382143258638463292248572114145890022774567538780948127975419707387452223035009719712560931382109859585606385032696382539188795172752364299435189917084211084036787247696091208833161550394997950355654426928384254345524352240013824077175502431391174384318905692590797367234267794921815324248966666280523041395355890090692029934255202866450355324086604446092767864837071462381448151920467139782280715236085935647550787293503156047363599994702088613717418075781534199332757031783761212163899701470115310110201576631365451622398223110180785258373967358417979362839464664787923909968540201761183223776171030952428818423792660672297837779169898720253857975236524927969829548746283124522400964981202227859243212603886556174532062296459820709448241233491428050015838858730361448100284488253992209264937712241974108310846878354547870404268177465654268964694534384599549516491727785369393220119589053386184163371058148900849436954148739455119372945082741703880172801418553055055346760989111220997809616425592055773305028279180594395605372459672657186706474022106736199814037918949739278314221937999533943520598576053807118918793207802231029932853549631534982268736979844517308220603255743797289468402056922261574842248981379885779273999918661266700212618408795822712898083562925190706048882635569083029249678055346897864562387590368430195073306960679494994053028636005371966300259194844859459795699751316403609434214347161351597245181863596796667995766285869155327493456300919046134886200123260654150519904846934210462575949417989097577008498810470461341220555101515282705320847436463121813592450498031475269917197080430789978958446488576096503729863320034756231672073921956646048429338981215456977467741770373479200420408885232007255126403380934167729771721508408525226883744923526550406022287570433420421241142576840943137813607209497559675004395953752556478979906858593561851551428794339006539023281030099969012447091489158708287236552762861350410027437044590718223050407558557647686253024679090251070983001484071208915865332842673402388598366447015463771651165795284457130708897108014352038550733244900018992618745145569977657239479828228854630216420892658909906593652222376644961591521738641152631710918910301399023149292187061299240062225435939575015382143944672512360555530773640837021145915983116300329575510280992664912772565751475083534031065154365612233038892551379829370832755162578321896315566022740316951692683340688266282617742475601677077681274136344613393918666128600208141274190662452497615976802237221097788961550387604371042098554459038477299835346871518671541668646218295585325126739939209648759772594793031969553289471053762983091039788866936153826919093824698857514949500545672470439799618624226447749078113594480340962276960832797625113851678943978326547049459373706918705223914880493901697204115031562623132574941299220966145408471237498021645069681161358977713278164893113260285900974822762153304436810085251997150973358838250728036359322567976747104794913436275324726021943923232426603018741782832667786302938394499198116831793464728909003514717485767278184077301065872696719298178057713881580836597955852838747627471178243415148703268167632646010027099317448049031946052106861086519371356181295632242580132219574348726221444243350850604521199290119633287339713480789873560867003535502647678929318517935995429559047975001652531730859562073126227894676600177637191898815663484471322404018527224729028287123783409376193736976828717377913657651066671570821898967871780164974963324112389483261706941306572396013891957712544173695609876892638526276768049174606234793881002976830106851411023101550288311072774509709393500839065796662696172624566278880873528739632447661852142451296481989094372870708266839728265578355251810873662093518275991183076441928431352389624668561928482364824994070499800546244584676993515909977590105657679320555244446071070357859617635514426487438283246871526084119698282779597743708697584350987616282130199575116230561164649298693154422760697203040211103643220475500353035250614338514158397992232237486660939808385003429934831582516722797520962696838185833770588997495356710905703487948179210394993504099247427704996014901858406913605284488165721951164018290693157245164943682019027595361122155869587521066215625357610200586761198451213936193886002560240933324575594153215498283251258985935150479578919439268395003033782748126139182173702014777787449378177836189827189813555826157695627165785896189252121446925046993377351615102208783317358484044434192822202448686688025678893020510432759177134163540423218193501763827366891290397132932346150413267486729184655235259868585467915274066207051233006071285545267471663596134248730910378494288098183013594691184590746497967737858456691295439673521552399542366992751725390294966658388416910352560082410326464180449919479770809440957005175634935384086504930067108459343138411569455379891328764299954899113716137793775217719827143073265250364181987364821616638300324028082222769979713614872261697164484427352717261663020994444851595048855933358693523684166648275754241706630379640051341714365119963824277454562718718716275313028185282534781756915777209580711962909450356668428379849879289904099130895072604958735944410997385731650740533650204900319549484864454346619780166924446295521985400792088076725395987978075721549622915687421667117864100277241646159914476621836848721952890161402961589311923210841751165621561612381336550835052025447825841534928867191883120474906489794571763059107641340854043932889533362409547197213219817708941502674113275718571689395768332327483184102576439260789486684010730187726320409781968147572903575547940414996673633114088457856039194014344783097200601474515670207472704148327844396855769735988328295108969392037005963124285928308190884268720311512743172727867318558041413656399850336805677810572483407240614333982915047805401214945723756132843836767701395811203148670036374628927939328490100506709681815743025687814943955205555011179734352495058876417445050651214136841111008929010331770181176761526022345165415624154618430140922136977974057361371386005534984998682753773401088380712724115583906509674005465848360282473495545354280823794036341249837323845416780299747818932963834799728332203260870361690175671093491256289418598490496188561196507587492550928560850802925552003887236089842094790647696069083908498246146338225394825009267364430046285609376125504845666398921982770023131424911451933215656570909793916752341956741371300849306893381546557207042602171740621935505303275828432646010130393785467640438667364661998480507763578855268213126981250681484897603509756324348974223535131259256536415068024842816094350240470403801686020287838423254229158149749450085285932085822864022548966647568333045403606615889966009721447017816357272178296213793072099329267251456190181610289330364917147998006268900544618016788349374040043028757477333102614969373414319314984583003547063719110820128407677003506665900566011945579404173513887423583084943097284522692930789497931082130164634556861700067201718988203397768423732810053671186275613760111282385518166224227696751121451672966082498987449550349937432498146219117042502576751255313221924317282247958874661217695668925885565808053934782944280664585854437444462577200071015640368259820536805478724603269244475154414248757024150560107460433711030722218425833418746663285621333444212314766498780364386259187477290263148369558948375770684816785998727114202888047164874325803367239045866427201866855648359686420332753987359055299364464592826186499137388078275793561230134429112315281364480604228396821016458046876728766613547701139768610128628491342186976737388397671031192467145548076942691716027666027671309931628261098038971086626437895607206184146320304308939217582515374125057272201571081304307254156023206568222918258954786320765627448067450773056311298310641221514605390934159017052918216942998616580771145719810274351782648844934162185717615149385314192830100748112150943737088697553141460968824301855896559487996864901533707706969472053854981537397823359530726293540018872910995101495172961373126401189169173153694715657324288443498681375068643415992324132578689569053682220053317853338221922724546204707997840011814666970628041640550484175692865578191899579185896563777631511711183774731136282132224336587188474976615946093714698832284788270336553224618477577556581425736239125323876984601330535146428066526230682033864288409923909894972934564590082774190844651971830039721967906546521853442497994326106775611635331933808209845712789388814006131261359503362101443803923251578426309271701527244205629250542307252942226290512807707024559833649865172416429757958685741065505270516426316699530745251553223162309741188959401862427685164313880917636531932154105623911934558103398254305903529613154246593586433026813809436497422885032300861030395460500135402076455372308684120964225897758920269489705049160363749737450183432122684073022794989838958989318080227356263075719543173230123948069917715341488107938749594090536226657107945487378201229261998692018147813231836369266866350865415148554485924035115141942419394721593124131750222401178605403851617673057719293698426035189678871953916186107616832405549777868424825488114241788256313349339530714710814878875402871005187094155231327586503514277448671936552855874328611832167690916319207876215551468674679633894966057815037802868773400773976071472773697125549556148305000774187908495467163929791832344329755492521073751186063842205875188035035007241743066663161970991053639945389424262406194221140793756620013952586965641975912441489094179513429295812137192675449433476050577375301518981968778832270549889396679054289159116199443985761670436790153736975630492641437693082290161308959951537746238870703157207286018775492627664166711718524105069397952529740898286227038479855954763313867968488667156183120059373060372401736728214790562211205865144105660311732040138660236268607786753965306066714338762515937425199077493335161845379851220328191577088117735711535260567012525127786699085433684996484057372651176734570843730350261360389707325504785872844982151964418506215833299072530910234380893179926922659576552943307207169801764277583990118896187873185360251511204591811245155681847743710353064668168188425790502248535065110352258673009620660689172679853644945592233673370225866250488543039205319975603352625987645610713248853679223654192944467263324079223119878212802105015510347334969055652265585134297309923588836503744113172641038426682427241989005256880258296391880433252035078346057143419941299286733193716880532709747002023660782732634900605090850714467876567435062900149184337819577588162723734466557240288428505990433928031493822464489552751795564438165999228664925209427371255994514586743354255530810167166432304541382926135792983735191081766967317269662549300300572212221396077748254459154653784980993900764771748861442385975658768571264881165748005399974586417923453469882493089322999573546055263993057584861849516961162288908479442416678143278326489590949624063839339870870493618364379849396926882535680853005021923103211411481485518530482368873918450812898662352550077917652055845803109360392431239291015429683311214923941066358796228732633804718575755444593211933371192642405007193972328404421518590194605163082825814733002321190964524982662957134970731857312471958187326383738852868495903325840200769635196521861321554631893756888071537948319598726822957527854879963660397433840421041745428013639392561454149184627478064780996436815782689025835946290226746356550024782037518890541053623507432497493319816206328001440862226522050951750960143082516599157373635046571359716788404810378386307345852159868645868237864136182864720097920618538738210500551840498466106942325031342063057992059239407188960317044403433046295763979577599723946722114207010122354626901828458678133810337021854143786211440815514139139372504187023021478949860938726099457207337896978046839859757306631923537246825099822791611687890693383385581882777879979637520757146948878870439282472489228426153271264527836660973222503658326328398500370209748245691998141146008228695952425218888119866450776471474239752027959233213821907676052266728193024692133209284111258605604336205001237558854039154631510302043149681525017531329624850793273210037126359571609368620686832975478918095034551105281234007776757263048631943646480567415240262174499522607392401923051372320741078300084580324012537777057845571284447653505621148819630389698681462424046142581187254830011368221554345801859938679694578932826180108879495684443836297426789774720017899817551940732418530078296055766137089858729455018707086266508501600504210370507276078381541370125050667339249485339967890809496977923340777877682801730035328176248116973218781188777315795477843683502096825695623945189489315364803117821337164200023184564069497786726163925089720543015667855756375065074048267591096365480246054807424031194711234811175971344456278235068288315705968041869256718333909037671227811399401812282529573915349627150498912272963597487912142220635915014055442273635122297970935116744729712620135913540453361989755253508583098197202693671847627264805884480879143184655423403429618469070606028870290733848130744950976915184590402480303709622056045994929115861392465498430204799604002344893988873818396187048291630343766483800781629561289711648710682762846822137601024962496894512320603245316599741688729442823374513171264682718606758752133957759860970504745057680664742226660778516885532678485696102728562235369238752947894186235151491349390495523947414818241893487814884458626176026857213436236124114161232245010079744877899761764167759485370524857019132553531596515765982803775705581587820509380782880587027958494635395672352019038376856586679963738667144641680183078880046696956204209726469017905118400442737294386410633900461565953272903816382474898264513985045168027674798594179316194583357390517443360030757634533967901496985695158595071875958985673057796866757215320292044305224562853886524599068814050817846580282684778319295556173273940324690795264171515307076291893989999382185970708201389191487824037170135447635121657085822978981760282007973193384479995620789822079901803800367889459131775442287045421086566404671824445278848916618962625647754694251665253170966376897105381746720114921964728243574982360606170383002271903933357988315558794629338809132567254435476933709521526982300542095409826857255389627944023592437053977055850458025347257378766921151052092629542187011822973970655254126369584349428526016982631151144721427518653695396367384246879763732171521870258432163194839464695735318038421956780940924353619588717934703194435743745917001674079765088737884121593649380842360316803153642926349792380541720100217740862250127804509868014544644479845487678585759678825716433685860311573132291374383329795445874792783737727758396405954400567704926450269405813090819069284760146329319099691628728802056251435764025060034258252555510045660956529186470405477807458375784639226470242197148601948584156643114205926572633374017480316220145119010189171435400854244669468412399917345148477730452988289180475734524170499958095099382425406603658702274197099618407878600734462889736777808684585222977731766536877963396047308285005864505705422698546110326566370044113450494641146414558391802815348568676598970897236103285639566621068000913483208403233654577334531576930278117073785093408872644315349668558080561311066587238039637817585408370820372918232180771274306081946230642714801701386046380901734485877373021936215802567508027747201077926373406515675576445531839285382274117435119935324135591477152385814349430303374764995769475429331727324771350784301700865455287028329896388834731025597757115359353563598996445936492566285394295541909834074627096224138657440840940755218160998627041861489208142159928356947691610250726944881763604003810261688969770116102522706700106650202610237132582410086344946952685893087049704413287202486123335847470531411918102860091421725693395796938962014762277723098568300161550021687846319757809981487191132076923103325639849650392033091506756457828911447997122888235277400704660472565510543857191250228243565812092261943998527808954622366339287997786781931586095581901913254082691405108587216274919490927929385008477213915094250615117888069425054714383473247835255195373955967028601064786130001194639127775824702971788688668764878419254156803155170312344613259313845773728566378019738873581076508779405852506229343631988501389747812226628470947551401790433291603457308510065712592500874200544437890180617295693030256758841155189548731407669883833138415660456084727835124210794396866680573292022230202449318664420038666272273488798775840864199848070050448430385218248493757128082448622557444817667453084514590502357921339687441536003554038319067907865247918302155638980124400581051047208766991344661374184131800877814074922317391933810915664457925193709629526790640923604265263429358789651689597044981164224096977871439476858242944592028350830545925561665813060143784956315026442777063372747732070658428427379814687968709226145971640623728936414375991896271658750873094481837162621466944720513377315240913095027563898860375209978480674439996793052449516154408784089287148961736025417065630670766836941289354201528432205402957569170142227547023140055794506948910879189856429004281581715716042281634602585476708524742735965572685801275436109523328984595831389444210496870484186883415732757185025240100803172924708617013771369004145538984343600692713883558043671728644990648851991451200000280983896248933699999739079540220858666073591898581398777068991726939985202902773874297005633352743154342791463465168459588738533127737564384978562352454699250036024599510696807065254510038422356836183112307309877292027438895826815493505341561120709050762832069062592129668603025018218765337462776646537777236131738261794600607684464888240056346524589450177871644883360993433158946394909898225138361331832708973612813103905320190084299331451798768614560364959219727538985446107165505044037996890954272530878032153278725890900239469643770318007388450330143765224089465505874112230294813438342006700770531146422034370774283061559358351277192847914069848591018523273697681153451886514684585349616171199459177998154828852158816242886106156987709369717506737947901589187105300601535345968053684895074415986933437165861294986061924137639771242090833098301735451031262925754684361258285903430912833876843266307244414271362689757413173562383103734275210752488304286098749705868230885383727958627514438280263848217304071822598964779012648283771237153654093765166292306352466939680262262160687780165222980940333611225850715017182345900890336207909458033790168168394831786137052146555791782520399347186243860460508736671742982621643238442176509309545576343727963048555056665362674000675185796819852785895863698960053663008476165319441175403617578995081936455076956273004400053019071009872909361265201458241695664697874343125953097760794240571469914500316827703525481814699250851153796545193064808281525039468676014708060335973392144797530665599287321333003203384322291050122944667492545164779489403189559322741780497113203088285927132577367525188435323549330779558365147842221182662004141945476995024134016185035713819261408125723787172329548480463418721728656802361574850621783766440694720266721017176349117904791667368448956895112191179807790932292192084977190642195750927191915453773027386647010885259579678984481132454873729746023566400680442557073043863783409242496913371297887293825863712576538867993586776293178743844096827555456573718073327143391733606410522514395233500575231619168362554849093767843719655853750947301685831358847617192379201569216376299709821997347491583938716828750258690715915009672348382687212460696664093866365324265492729663617543539203475389361937927973334038039911375025958934641756286995632118031791816666915848654956329749359575953774347616815312494864672731099889103059103533902711188774013575231228605326480098963953025059186245232695793239037831997382602912724327238800734098022750965056811442339852040601954157768015367392700222023752063903447312031225634050673717675330425963557982454408281484888447711229277084836092984156819938781501382696246023154166421955489349579240981727657231016331673588093910512938575453756062072440746418832179210212652688957869094416824418171272562233118620964191094695785301643986502912484458195918948078077714744652498831647713094804773217248510955378443038026847593280671241178322426566128138829200129042001680796463635177791350729994528159906113210874816893335112535955041232167494520558870741190594878831047137771507519715828923235328533427952281567298064649140606386328959619381521315007853905123386221014588096356719812743242124264993411491631366064461358678452918945694024623057518882468718351930693708712802884341100197830992793222627499066499066656154471796136219439489747679918031875436600684597273304347104731129358494937418781198911673589287911848547124181324578267070498361996949839578786235875627524104438455887305092323669236171214593647843889240954323032141772061220685289849999847546837798672019860345916872308934631446570626395056548796903925867953400354959169980210773482918592636593239857165118275681118409301699973829541332158354500181831546952189220497572683258562010895109183423044561992963916612115590049178633134298178259191353674130690548706643094007216547866385216578109793090215258031434418463983913054429697183660070058737500677296618485197357343220349321166022269419951215380744165906567509867631657735762820339018416905069707237602115459926682440282680922212907713360105578200075867317025943356856092640011672165327885721651058199737638063990611486416984480347291173580754574534907724440253073188887597250715802800687219458931779315770532121271577834157927112624419779813784414566490128616822986574324156602724224623344639431692374580265422601456406169266599088924224256761187014358662533280394796485674410479513004568824869606903399712081330551218439866124573857627850844684006897405216408062876983342908513400371795252640684695514483066945572358866796929006864165057395755960486841487088072586303131128081194263376404379556516045016235083214697541844713650751472892476119834979128508489119299421648479499234719697176693420835501561080340423099500059159302825059402430604458125422364183899009935223816081869162725575765964443704519896205152238967742971801397721362213782580692963507363208640889034947871782387545743617850746014277564616925181922708624421483079892859106674426909304367498611355723522626295378484200545945164999280024032533450850673727658163291681675186147888421561236644583312869870823851127162020718142381628223831094183076120408197684482895647880593255097095760675839344145784932720943202529966617214851683152506803265902418453522830913673924999088210017855111867001265748966288808591312470646578486085389267053122347038247143448886807194590909751021068927423398311572846912319545577298020428456188977155147623222098428582299082837340979297971619665295364817619952097522997343948968580216339043003934849963745636541964676353603874383234613598507864576582367928742628915288512614855560406952031576198863966194540072135390225093042230536126276837757675313741204319194694104008355907214312413144750007412340517200139599477471725353308556813455846535348152259764322768986357978302766989165228430607258382444341355353564236725870249453359672347145334315223447030646707197269584125898030592918676633088299608590424239375126910069546119488715503715274493116499114042326834583767940825548343278323569379683497198537430552930482838465178771974804300746954009453336857391666546923723518985788321716973040978503901080431961811619061240083087047640180461723679049864193757300840790474782071959217255687409420575652808800629019173155800492668703572254452150777889585433184840372867979466829374704668383902992664729614591801464260488565745479475565912313438006497334394137774586251577275956327209321010213052413174440248890706575381820430578279582661024663355520214497885876187727270605302330965743252237629584151684677178527025510110407840505519199463343618037360974158381180932704611640661612881057679489882814496988482181885580337440907099101021096865064007638696949090938231832819403249052104454935431326544672368344125757818790890539232314744573757641880530507054965930672229580404569600874117729703168974118190553649622907367176887795794924073199542413460516276192264840890642083906550181704980785681799338084582912209712583359362411195070265574656764601681135858926251958813984665943361373795887431079330838456164822290046271857016499777615049533733046706804869756641913603507155275578592843819913454470672756030789945377114209491622778424278970365856436252572579203143158629908512393902046756778804362783586091452349410801024989635036252720500311205200967067712948412316398055124406995444434425876777202982749930353378014481959780822872182162355335960246607878920594164973185338205588561176500886103293786647056980730572867341524262324360917959331825017908245363907706484242778627188151545962516688916656468453771182146164821814141992211641042655323847836123359863417553427942773979543314344978225240757182510792481805090254854380557478748298446251854883706775689187013454606117503015760294435317211368561871820447602805185509176906713813528155808689506117175293319331613841950385365674776279482456886583283543282292692751398987409927772522927334052615679621565178969206052314991716053879417726073144231576096519993674533896669086440580504982808775395523047571255158022321980776180986489449930453947572020638902608751717150260499815338437017600724906420679797977905615455603705594880956181895815759920496598953272824054570497691296420199379740332699559955158145377163396685210823276862655293707227861179689677733434278958995050735224278570660021862397804239208608072081638369421127745405652815752335256223976928041202415218873729753959601300805148994444620025954107097850612737889839812560173386347781737245188172419234356957830361471557192296175562347572062777772469234713490843337400344282198222288196996365047905424514090823081807798597254910356581352060216435202618164594353662483558508348789705376897295799230140681284653804310913618695587907498972557012025367319371072280810848672934170015365804593342703808190201555105903576749739405569912029681041985719192596370555596487743310059083231145886018119640689041781626138704548199625304850236476129808562789321783445526443528389531646738894672979313356655452085665289448097253567062626063083032680521820698325416049134538922502825643400609010319002810334743256215009104122865063527080586901119882214657519788225704021192273739997614281144105608531159670414492150801826869225275734951493718861833585619639965744933818575440565952046228483650993320576989318705622052990377611234859110827841564271682866110891729019029685704933839532477645922836402586813946485174630418911564018221757657507340508916604388095829194146379275259781710700450558283580564037529263710311975278054779154681458393257278870468959060355853831804010877256257246223714408926458397509435928977923236067522077594100113430236488996996069650866882513970012962719941968695323197905611199617347194596974207740963661617424706192804079300274557129896654444642404443081794391031479300581550854702273928410175106318406736618327903600598322595421743918255019930525062522342813097104392924064431309896314225946765258109665472587613289266900764415844253664106710462612968733974580055077774098571611176943558396683280972560541596034556177922062091167158190084712804594164236598263112072751609159633412117694043685723368708177130705553243708530997460040955614120355313952818004775645652874826708892581732405722160272817253850519296137843535057399406544647686894055028140243073184731614654952027958096586697675403028306441427972623730724684303156341293280388694136420917723531830480722940057728864454607838381921919197856115150285504804346229920746717008794579124690074790651085213387853469591114439244738475077094802376879483518425255452232717387631830630692837221347074615934200224227840361342440978688945023231553140266107085705154679352694967142254908258380615979641924539072074191068505099251496971921348334354105354892015584221464404702143881901817822977733190522003449998721040126294748315597269396652184609673643008308651599884080609390924851060580725467319346620791952176478851890224169179395959762157460056112932480717376628728110649979797271456028643524308108963590286059445913459267965287531286602879611587687289187083943238054327744183915786982364662310517193067915815559500618750866428872708340172077712237543898058592665028972004448933632371389826866689462664387785965618771296015168055352468005900536512545256993891889246800568674546990066031055053440119743554681862461381790457459829157808246657902273457366799416757485630038108737015855556490741274069203621866212691397489923497147816464193108472673137667762206619292589056750319062781363413272375644727967919285361465602861187896013602934426698777958734762504134137497989257359581871474014230055561158187537657015957050984181830590119103918247281280368569658009234512579871413746588486659122329428919907046851058133885357330986770369270372264144591083226046496851710336838630173519187392670784922276494586776072195317578811870610682707348870236622608014433744526171231318996633220286916256765786844039975009571042584907594381615477614988952723985417787950126771995932574821399634647561032751175408330430613027680814295992298701019538467717167858961590844681673210422250493708987013998037955840501589096960581773133164063770850466203070722874493890399319823230988129744998112078124853155375406765905369818600969181210519078222575666559808624954284769312374095835449524242169462500199948847890069476802108426405846254912420951495362743498155050508658674834337828802597955942060672440691242778465269077174421285171288007667800893485306107313268594582873897387265671308795947466706700435379054783126437690260993414231886297405177961607837085746518340512971044911577129082516745726701496836646297270641432785453322017521247945376761396849242763901652053122263083208570224496895270965911074506970812270793703290040563290326884866436162635232437481950325153703820560574624974690667771250579831103768604267865350820397418543166721576908540253512521167569600568816062629869152198250265185184850984632469083480764753924798277061132561027448158395978681735494394424563877797132648934826068878903667664770229250953165351087995006358439553762416283864419824948273450538798447556607825238515769615737516860380690692755908244504277624889479722762119791331336051667599370919694807428240350407250429115964567390000012974740855905768360789721635678650317893931774793324374377535951508855783019500845851977666868881573651581651609338032272428146796916188334138478740562198802630491083017506238659089646606471504460714106448988409091930446410785850780570385835006794325962904298197286018368606285963504463502468061433481522013084462951719426396740493300187615080285979630775555435348237249494376143106825381444856788939469570958098979692819429184296138488545516851071855484205833469917667754460712689760675520172115843288559591815969754184156257582479271071075461218693920801681695362772357914570466390528981138045586841242601648089149369411606583774714715430956689072102644136790956403117205466462478925259809595222655504383758224035455005312879186412740926483655932712340781604634557949349236919373602768140391816433602215379869511365268363290548936224625982411388449863857329861252596420485002559349649802630793695603049176067113025332674729820036670909455633875478836669510768602924747877603046831915295978925118260671748817020106547609732548900964341408013332688603152417115361930926840935487688708741904004129100833335603814619438650472680782409749186639633447255396061693354530682128615710069073609017741111273476647696188784278653801190718778231713583167365599050546241517770414372395057759749781628569553323681786131997742238866869963416054728072097155118274005620191744652571085451875707699941328587375317536677376763375925619379516326891069262621070831347887079262848443985468415034944712569830988182605379495084080223264030198746710046090477413541764966123763211011577503838461546168231596512114170061591663380215394050989288586639176125020428716560247408808641343216048543622709101531458396919341495309674100509599513124119259871630251428803015624307535969300988329717390224684940529022854691084337535097312387274080471373388523114003370114915882720570299529463775712250521168135330033301270777929857889492241455740813146107064508188697320467527384887973476576845172372528695453634822358944108555922795183827508490432465485589236624199945077440355290371453269881233785092188205096349403284124448499289607661055548790548208279708427165424882362151262115533934387057682948910851938085178793988425689424297216954636361955263585865237135057960741424474529388902258616501900873146536307300989178201489379698756308877982679051353470921437712233839893921628386010833579854279893183406119460052530551729736485410821446856269306822431145067583677669341790786823764207153114867458435062740602210531811389802667048364622893735288944674130302645068674424405592524217774939815049383166376186946736897801202894924000996263304687019773798191029307148375751155169886906327287008229633504614847935595038862338908368302316927706761405433077589837766152808678516043561251177218779656448728367862152716941051759691303576079650859991068787883471083392380596000981484638087448758210522042779916627794095661768645877891220900426082993879604532589896849992484124757522597743408898322228612998417296446600237260702160907278400862582344814177370080237214191698206875157106692514626869201991722431121960170463422442053709252206535126055496292906025678444913706451064832507465248403654044798738385366375556249748993667988031526212735408510644035347879571660239485740541315202127803500335937498342648781785555658137282098330573996540055071986015882417363447343574798626849669684576446434966878689860257227253885374550936205385984645327061070342367288964550620405511303429954874914229727491239310308956487792227768644039628362537261841827741094817697407023346157420631333977986390638528070962256613883713216177110333167852345843981242751674267081438537575638223968588098079089321465389620846855042541511594296465019085700361589019398151808984138321385651262002546345874107391362043216890789248408614492527961145347372959838786978979132364963245373685652353964656714773964903726744871356857210016578942798346156385466712764537482889620084830658468724958806495145085351016746517436346112389830587622494166111111192477084841030320120551002100365474361296580249767705449550610296212735205515062401721048959258419541749702350798940608638818164562217482986186855288015320233766371363602437152042245233277315623548632085204719814695527715881504397345719933284491387662951376142932535885771074811503491527482938668903738219109991469804079082434965693814287241284051510046540683155713196947657522736423069727598435495570046340157222777037852353221208063580155287676510762255196128877640391821180595502085052439492323576923066480360603887808571930751248811763011764231883653685753100148428041654269911866587216315654515738770536443336139032852671595812257675655000318448714998146075848167473368849513345341721302099936665667370651996553262561186012853801308760529831683483113948125190593614022080151990468799678291834337180666916835340942641998272814170823695182173397433230674743404896795709365118706174771787054899928637625093188710469593439989157050810173184257480173108527775253279843547392486271475995023287416443839448767363069610789808611354034157451950712819865421158582484318078356747579044525334507139664751703014439770345063093832310485368219367504177063683904159501653564037561770913189917297855075214429762566224509293236801216798824266512995556497597117867333669298497298037799036600548481242454516387761469734363284934647695484047107143174660542818797103005435822974259065380873077700573717805946267854201935815636129320745248066784310930310028699206836964603752392105435303501483467043125339688524590616585526176255187120016670558230188763386921285388795703829313589764127798969044408734661203089977196033447522769000591895378373770647685048913204852635418671688614842260328281035491000180117911926879282457555029556460018190013239827235620238718993995458548982447502388509036507267827677668530991805362746402028283795481832719680743723617130887954793654961499250702421045592699428512042398896855788520345836598975292220053058694432050585903378833346787248744318987469857982982907424789267866567369638691185021605903561324433266113533566753913528722567211948014158539982693853360837269308207870362676790075767777085329949063956314846714150607696668218238371182542385479984949010546362785214540606814286961667443367600723840070047544378065213759629938936408913024999340962521993171886896988430667145958165068211404643826558355575834049373444846225391003151480543491161394951751067851494291428961934527570394148733622342386733930082223134128151805730918573294498838785789151178661574159838114096431144977611430744468203661805802026152738807856306439239450774035781015432727900221420248293125773773505896172664697779877747999450852022964013497495212735923244220866554811741439360516120304457724371504583213492833701177709469540713414962601265122921835790718102007781209469508588626185971629802992974329696182641350928198274527382012224130492658509015465010322502895068979052856847326747594561902775081641568210160741096105100027678054182896919834951054097873223736469773978749773135403453129947333242090122734207105763705079863427048287840825334504943699761407890257783774631357235619233028372343580055012665235673801233172408577523453725427295946270043764500921335959908494455337345714008043501619565970822579695845356749437854709739382144192878112691065281037749045488773751371807094612470823336262741648528967102361351920665512940891733067191542934954871233655773379313053766039410582802009918657131462172456491915225381112502013813236002237065098452245969924136835514562190183597919490375225113086113688405546662494302110260543906350386711047652989676172231436255000147758311958508311188684855386199578979261591764377647531001465206627479655350058152878339871177863976169047711020969026637956932995324382172866071262634457080204793140488958700497347871812424784626943244802069734149337684763836498749612320507692137511145934585226804150963194360865631977415502707219441558971579260137963714854466699641861081225866108121403406847642323850754393711422944656648083564436797004144406244910964793840040602277315462997915891900937294161468926554214087206835750665902412844938219457306318132252137595864450829278839521623511537438724291395394731885609468768673935541287394675911107230167561053885322690735323086430233479431259871779016385438842457086740183683932692750522571289519558865725921160351749931824680036884129317446739518355471015292037451666326910979015874340468578117709342705440006187939108500985563604280629259288168174597133343531526487635922540474976453682021038048574067429979352280462279409769257192808646288430453001379239770893670469630055444034561297416590242730605114179314912640365235066936253637723029128173980443370030786322026898446006052184217549960042525095458880139754100416385232395003847668430161724684376839923878819916633876950641613934932016992857303948852689431218196124047779975048881834143788625799569880886268069699694526195844856787532297966077164705404901716442038444299288755607927599763031686137083618499737700090122386702401255096115925104657932559266678757516942280527404737252193347182597257024213203512454090878707414319880419611983248053137957101188817654992851154603672411334351618821030792591413228248158717727459193022718598883694437183032710247636283800407408574878408499569997359202637455456958739059511774887908053109427951223346828898562784494646823760493021989493802395000048082094139224747657427727888405433843753567384306373086916178699807681129895740798117033776693246666311192752982793170475642371200914928952056405399457488365950741587284560930090043182520047146354887019899618358202340506069626589286359899652417494631338210934084753176312501109278365045791086345150426803620994311777749142449182733506758384979877604307120362600408437730343553053126973731093785705627471479494148474201333132985438035283060815292338057427319032949783705320407809677733212939199967900740010144698143892903146649538674772947992956951995753597584359685006156904267346447554353936887118575400724094364966487049975684399299685803272859810047045098236601196066150777663043665471473011900909597737429633156755510452953179436001965359384848771068719779714251895023509765997870947128462840642934177955026893360730703353163797890474191051902621244793315769058843092072970287407040216628631707715614282556492374123832628036872944363240180884913689695904021030170710208987319444211507913715568813586035469788832955726931469279332904950471092006999458420278089284296639390298077281913177238770524899085587935993051858095533872085257513102757441311966074055253282483534048968647622453536584500916583018661337551128057149497262544692389164896604617321340818699501311026162939455085120241312490110603917885102110915419054997970823904345275881744121258779804316943175438126392221655416043497738488032039325027315705266538488270116893202845957581415698692252699528426052359463115535373557134982520498982152725193676793435197846157390996559239597700649366423175818480505675571681886729670860317834685420183108122171311245861374857625773440499558312730314768767517099917177044357327773349370891910207775413560191308823718101838706434542458328111573670604633208563881459996123579149676249316115323126088723461393821147745384655486775591094854163615994431102007740514505972181988026366871682070125573728706596610612019990197077090602455237076117036246115191542635295173114683050095596520785473691215633494113031745027683527712668926570919893570417992851691983548723617602131062764808156270081540359008140395695396021954449538925814442659787334854170787770702394888048982517325767824614552752925353164298225297543426238326186779429249563250064992424214007681703039969661115074636794990242266135340949520950838909816275787204386431012274795115431359210741206872254331030651030975971847214904812250110029642938810841043140616860022484714297300539030507418883390288642849053975261842501643165939205672023399078980496137305692519550352178742302732337519076240686428301651588463692323791243463107800012654507573101310872516034464862988391655417459260281329926394474255760496647242716304354863062896447983865459891607278904284539913281837635475433093289593954935807639020840254971596065702551972613085926048567069494481167767325019965283914722169489965432940093963638730134325388956912570131624102147471544346489074386819444973815568131700002554064140732375485487482516297959833452643290018926182447528354863147970936072732962789829323847788289271118203003161293760899203041754987694459611792113565199357103757099634697731315686136911867656731009012695603063818851908134339942040780386746018064362916322504605141263764006934215819921516658023049117380242443705735277875313702176326634947307871118200681058178420982449378460553474977722018008914288813810159965404935246700881392301717747745541122961831875265296550244658661529445846553333072966928612706237126450869071505667404276226136137894611258230944993322673400966004057605185576786143565817711679997688472922082480327342068037884738172536879696018509717011188753153580015134539680582651857876548474322904095359250079236472162080073777090630613031033602730460420126461090177172366685581848223373290244766107093659569632659946790623767971826958758150187412650980576211753080821686375841108940061881665863719270532008239633078336931201385468287106365435593579302335201822683292867475550558569315489425174610203331744470627656751118495950592714142356884612987032640286752456052462676189029085571775959763849084499167943293166744002228117846538173912727070298592872594800446623342167605796373185641232376513965756004628802357209406405522937639838641229589204045852525086167674158039070901935342415769479084268244164978802172399064823491769861331281302520559422259564734539237520400919141949952808331784502098415959386094699319594641455757624104566056269350157351362468392522612387420678527465558019062717128089120848784461893477071418916196439022016524837590414444371858088407624000724167824395311875271433262233351199036030051841245079158172496533337774590827097030424730741489708637525960093961690886998046746911772976745285327000760295273569720106416331975013717181965078100355057416700825956710285510355688942955107941967675898485179306150501394275661572838006171412184366393679304623320223884111999780266618643676481109485850470002524506319480990042620467071924259305080819957418665255243092411083264225328179082879490775086419561676447000739568632520779992794237696976746931399270711382944972030493241614468520646689487765267454397241241612109302860706398582217822178944618728638335382538264661937182963503647717062198503785430871846335466424946646019947656660527522617798557766691546871174981528995279443612090146103283719806033415114693181938439144567116576646935190183227891617793361827552065981084242487171400398939988373439136979845623715032018971173778578076655768515714567121725207817559890888344891037212301439487487612314566302487515752480667735449955200344819924980995621700825818431792243555489646089826139951596758600686336721225932708139622358052507689480262544875081272042931502653214767329949542933492650562580181181413810470126354169174333040737509796679716748661437399903602196834253649183966348036620062886008153531812193202557592279847343939233759493901150099417875703619278086101323053347801197409465441032454506465803744983382278375286629840491961105061296871686000714288245252889036044864532850552195481002725780166369190098673960954841059044947237802773948214929761849064884616556059598694114873570047423531847813057505909759086482119033241479810363322751272399742351912548121518069908369139928699655537432157107834590383745578882578762382743100718582840242450305696753474581495697613162338577092797261875038234415119510337573276930241339263201849844317154868302362732100877150924610967330056607695155855528973482576548093503759072476100109625948851030226061789815726266963970018744337877742892025522308892371071750306840965368617515868963810095337015797090744077263671129111999633157275173840815876730542341381607708156594798064020786899241593739623610223207869371227388627467016240503244610156279828144763025137134458964905497487394641105414941775434347458103810325219749772816837726585669366675990993799723101450794698712905038203231989903829317779783626102886707507794581102648899269496403526800746694402627493294775003839920745712659245510940137352788688571774115880592996171193627699772407570327280834808945482095171468166914513624409471280469148237206200922385795892712313855615730394192114692321855087468834745979085325842910079792778768563005397763859401633385132961275391904344335145014016183223096777947381849705729341067691004474647790050024713843332925450219745375218144961095244927704227297163357700727227217127015645480595942771824590574109542124210631720105239928185562003948401701911152612288139051979058323514127748930881407522832213458018224072648304122911634370281804620590229533659401765357367880331439045404195635143039009342656329371632516835656321287415889603674487787252590043322246766655393205466408666398608679482123570904423270743994997240979691576361029296665106541773899916761144523373183035085173176307566814077256991071616062940094872363366705120847378199302964670212763410223103113751011119917931443187674130051547128713134157244692852019474647394501625921001761261533682742246650403484302006708839137706083660906055232840797477511229240925583376490371559942844339293994672380263144617002839053750740453644217714611454172030736832616265522901617205478280117574309842907198839505590530968718760438822455592122011590620279933615530560490695865455698446468595693865271627798763852474497988369098560060217927880709079492933131012430610273840567171372844470488549394257416395380085232493093654619742860760317138819401211507068266154363490566195247320526778116491053769670890933438045815939226065714526681740525322082194860146738875388783778118289534148068126992239422881491819459337944598610230740352722049448101078265523337472007074885392758516611986087608298130675013548427186250384831837716202490592962477726487123039293647811007321239516122470624540159880655420934178323171148226263581625767994443619310151398110641861608536660991576735589762635960954405352095733841816425746692386954595556934202475366779023099662654462349856350798488315627531800797958995429536609595059727862294352822857650320473659832516841551785198336384486372759766494315573726112059024472992189176804549102099258664628444525986061898107797485832771525790754444250616698522504161272745729761613936561130286198647352199537081151491232213561599459247501092256558942141565870926315294038258879975744492923497157906896764876592263180505496935557787728550774667808898285282438636691293626616805778745932530677453204402961494428310926055549352280862640244757498714706665496244983349052183617381140534000460960726532968236631650972573425009964605495811695232743263976423276563524689359497318290083094964328887336880233607062661629279665809292410495281735589111087004089878321729110837744189505566137723782924055335412389079214039334965301065385842206613418530971411581279597822420170728993476504879666359726154133758440786037926761320188337244793011295547968938978221927775340455298767429405407680745739341367170385476398251149476426001907577846350927459674300425246876370759373697403749922212652614982834646542504532951573483893691852707132161320323823038919913067332250680241352891205412084599031350261102236356553076458671811140001595182155207772864572223558489929693024867533053069846839928520707180264578090410251268385584485231412834613137398132098672333166736332540736497114306568679759783454595599507436005270751913533864754352044493319443660430414282422542328611474989048024522648359993561219186839178205161587765506291069906554652377851942016840207970945704518101954689975135333582361395943457355707448502625588577607584007414452764887946229025538773235055283179095537793276741494633933639261320470144465464022178851853725240334519138091764719219223500638433273250387816360095524737003490802428186896389202822062251217308993233411211666371154048183836665018191372437769395305680435330682424991814126065796744245861290207990179729812762587983483517785149147498303696823480493697212969774965342848862004351094690002264630033508308452774727043153301492726170643860209947358104994419300930048396689493345896236319082107941222927023471918711588599038911740377816603981536303648079748748841403547527789012047173136857109816939908126395411332182923101147357985159528794493947803355670360640908826716908015264660313647556238876066362533210986567301564636569384822334181409853637748245900080916314267521382266034302130735172863282410042898030280516856291004257485613917642479833322428433857484959680866746414269547960092973812039048489446711590146890257672259262220959768475002770315934770131304067257472240129450742822919099886528360676660877234444174705448628842816446708053159125513453671800678441890459784755266381861499210660149315338335285420177512770557500419023200227204989497965121468749372485775862712785832151777139459961284114390940638606952784943931158557256412409864291704725127627404601615188617025235315534169219308786914470045931480919013387549308649769656597887242473033375846220004722262394907568959252048479959057185531015933726489169118336986537236833865574398007059831052364800884760296333924485189311608660310870090111653936733569853527486480988040729020059955009157542195296829647163012598216201478951998180103179968584755476829589554724387932509137093326841790776550956788554481380412708595371996636715807931245591491477708815669260171651798715043674083156688966261598714001028807399556044513161744459973069745193307885093750764030241531269008542114986822756514689924744301602736141755336953574531034534304442386017068024477507083226684158121241927722627885092253745468242574782109653310756761122770566113361105309055328193551459403783343486347454514687568004445833765931031320447607232007313116389654849380837866139426412885197714926364345660547340026246644190135675790426585408105173789949089564512424381028024106642858601780445654913433988034503203543711166102700084640983102312569176793210190893203430095104465860515020323967039822236117603832624426995398530891935527422139569348248866469977008139015805517442052363701144548251629991775083572379707516627443615720526750544697165056381343043594068940791934352434121032394551933717566136049576340521898774239823937457911274105578518123196721892978050447390708219424166541367724295933250836306737412890028195686220231638161401191112790193745764746349705991856232870571805223675698531007720469959277429613769567747421715144594067562440452957143398716102662803416318262743817522693590338861917282097251161953665321504277656077282401114069536131789245208702884497593043857301753423089684351931745632797916538612446572237662418468403169983087458158862172443472294492196080395360945429044846222872663119454198843034663395119426443782470256970986135626017567740339580459447165423344402392991028539427370456966173154666724265593819464009163139942635798061752208350769096709275773704971577256734326594960881267774952620504468284145208453432357505978626564539769906463999532493593313129044951099042177108032859920403857438799725858781027715551960505326298241556553509566846604169082941668673436048772595524510749623853293837978873940228619615280468776762801063149540733032461201936838363690287940683889196068701150163367926210483318964797958677779282377100688902196376775662237144268473575392782354646102733557829844749417128313150031962640991243645240902262248628487919530326463924520035441095704891550108715337944419804677634462632619158677591684158928933262413591661483083027622537628945389616839358684356733159730450807729911172786373475087376907667403701625898807562475926880429803632369609300137679456653783525135298958287880806591439189539526746518023951472501202650907015535899288485016178688962931781131539755556414785469760964962159907455808631785529119064086062039888529490748309453731024662868803703259157689888427445902085508150724742811795158756893111835346133198303594667130095907929954060978901601733804166741303471238512191624356152563743341768953963276571347475448862563086998795110045437898703210648453522000793881222107429297491440031017693783710648921659169433861201401371522004797835362485848632799837988712212293354497093679909925244052369711584520050787768528937819649084781232520193128559098855286371754205138087048553478226540941424691838428504868646583231289555866627713206667249779648088075435418077287357544418607478088021624355457367173819231908120046704382950431128402342670113012471296181389446197936520732619315082350606123958261110406588990825235062254982515601777606168667579328551779864304024211955258890873409963423533101402890252586106962790849052945071885859046826641088592427786588351331917292203856850614635412722964896786833397148756437873084797441957180220118591104545832011538753266539354927618566794740449766931891607310212846791535738409526428261631257008591148600347762670646413767779027558515929607802161652333007058606086426608956805335669101044471738706239006682813172708863352040472480169094068962453395750759236579156309003932049615462937604233608758286584954256631271220944167462963192790482778816802577736897242565039077507925472996300705557666096898920916884323703874150442791106284166903262845276066162840809307205185161366221501296201652590767938833536837384267062579111819311368409344538821812558119445459920482449667156675234231183676625068741914393779626993016236770974244169704195458408257526951371338557595991212847470626818303730813498739330079142701881982200576794156777054156518078989152035804296764151169617248004284830324108123421211978268919930726929066428044266828691391501732052149003136944189198675313219156105190448537614976216619614227877262455199259143913276334577295982032566296803349126669917293739307034852525450759992504754552536186903662370846900940678867478541296420931332044959687187388382571761870313997287743413813772392973262337728909388131278926089328292177852500205375941429185126221212224694321052288164147635274525329056766062887208866546912582218466981332683403113730354120218409055705155312444686633503177530863752870944574218671027702933993854126502645833889494656817837131830855422347088213104531224831384678652157471765410338122787347107026744947639575183402244676532519277714560742425860166214993038238460569055776683424683562640185256532718936256552402334754293862696836752325633487833736665570138494663630604120135886093520926508159735197894244730921306445732068513437189320234381530967816418085056190953111343675545862998527231735035525965102009317574579090143600721122660395944618676951787843675820857922996671780528213899112774178109089099772066343289888399887080735981798136987123183325525350811190985773763596942562728138723724553776933125302708978491637287740021264576985950724883703395855364045016650090833715125761946816373591509342557113660707917926847053498528268881962196106845070238538840017189606839870116201926973872288411664807723500595479763660421588398258258906240544755914354270826591162551531774570432562000449358465685171320009135013083937080569158791106931590553274034706570298829297540784493949538865964986148604070858610903111913054417923803603284320477521139819984861407027930000865828971910790825479306110051790701714066609298848505007850478579443178863235913656871697341732281098368106645528598120076711448601243971709346095962535043377686010074804999856618700340475606802620844352796236997938539563409407020138423061296843911554593052423770345351506532436021560838007355147508768839493177460334618163619124981269656846825165724354803490039028049644378898916993083104229911515580166475649893921311309516744703602237840216867696690839222875700037524996828268396053776151580049470089808315325513518546260407510380994265187883894120808512594276804720749149695028350194038944766146940549860997138404050592132831054192333585779019913617982567238071052746298623846930214802107773177997037024479912404330436204478533070311931974913691360445843124587360130355786260901887882585408135947000239406795785657641561529668605701616916453414677588627451558737605835569897533122703203743116010295669219075561475642471766995479334957911732419084837527989769923416179003536456181720580544357819829812492610502253671488604181160286652644913629799226754394572982428750013631163784928736179557647707494697014057925966706037385108170647799520466021877938957527254000875852061967933264595449132172404988603050573958782028638457225907619475269248412103827020644396439485621211158785733647845220973473682495510178794765922602800491683835397751563577283465248241538528186266025691031727868996935481628098835673311753494309343271526148768164412636735123070463644412146483734062469148276242377781857011905464483455835912357079003590393480472825030534337290776684134185709424057384355946808240610014704762504640235335226209055902923933478609484701226285695380029185800935861296286074140841814915128778446557657316615468490500228097039101970404777617228660114976026273510754173952935544322953495682218826213397872873103294669960205710849582890782248042554796515216164140261600350498964535855897500224592123300778556185677326891741895068476016083879509674416776921807755454214120918734689915510316959180517127741428312226574372833063527202796973166083209324189292659079039190096667714579077433881887394298245539050421185030546497797259133028857071021581601854690860272769533705793356611438137422471432105326832105598475172841644593808653337501503004780847053505358792743289476715345862572904829608393828030285177593954054133763647407028635639306933302162837324787591949947337493934649002535759381269278102577063930998090331519527572868985698972897887129139797739894134805218212747930366821938653218945097256473064129870095489409961383727381486159856084499401405999890855309428613401864784038986912882529922583677540075521493754282964085410861367748475789018513781375208457110939121774321494831218955587432065305222326678765909618047885210914978720266525266475767070652663025360678881183259228521360716698687895637643187541500158136187174862708757018139054493881600197425279588783195966176279624351043779508175741699536340491238391999771521707564652032939323326085559007058214086358911268325819550722611685036227777754348606981308784219199151096827465912881589022805810877831611002419262826083982441299265940119494304811798257705047919313951003935884035359040633849762632881319356264811072908583498665702413089537117265635624847509622271918313981108322960622016279170111911054329517718363799234180611414593852501788807739272353044107815603254233427342790408199116375024641355859637278230929410410557585557024317065023999286638167827992963832188706923271085439406213892750208334127864603435132092781353270772234624963104625783324899288157602688340593502248253462024729105068628641955675935244395458308278540594217078539646882770333717839002011895229417596075767069628834694878948882613976262410378341970092990064749733704819510766069172914394496703559240617002095764825412522344409812399807305590132002546824047998902727840468967291143605300263902731462135161993221200107857287371089739602166877964026588843361211758422817907617990547798752814243113098101453887311156635370128222986203660881337203379309218162639457660361181699364409507867632331402060672682441530542170546975443318929811369469461646343486575839901036279728073671828980305023744678702647902950594206167378547297979217708515489435757294740498426072519084321543306420815353263363625751091775235116334115191802682884833204217259634758211368208300740352525433945655948852898880617934378289889920919883807851589868342953124058987732974008002526808190050170679625015787039086918039635196790008067432842947875018603466947963437006836719060730441534967372740957513526380725677067923262129672272412051381151107363632169620351510047533394475540545395812041538606685272821141091083427745387894494254764445352436514813905940100023416678080168332221828494200388572038581386355525159589146211822826956737689046062633101730508359033359413531541598891268715029682969128283441314818457369996099324761628794249457750892697651735109217891749026408390762934167492660146382271509478189462430332044805774101226582986328888220586602878076162852411290447728213099010872636160493875495721003159943419892067502113082207847098486492601628129038567379590746096036090039251604327637443696049247517191621139775689947415724672819069462940852841502449210086289682547313556695808936479581809787868764055788815616041191535830912135025899187135657759899090262340120628940102917726371975335928933213753134393209449378019144605283062861084379608547205161066660664621375727011618314307917834417718139199999337912457094219623296293274054394659671885317875338231082688328624317907531893276715551818626718701012019860573103359919026116509542838328028654210428981414486406706282590938486908980504056425423261166090657681904454100342740748683974113150376111849652302701396981841811711335610255235935180822261141568362049835945450725659213287835772777797359747100803974574804719887020845152426751464068618376454581318445419060917118696983448815037055293156455841986709994482526027925791611309759061657379909045617361976782458175873671019713297040717194425266144317277272493264624309858468165359716599467520328690768225735036936024901044517170350510515757436137721333725293556807577615202594717865109779446728999300010821728695113349157344460606168419004743530121346760767882941465514725887530847325473941052678848190636581224340523004888652578323166155326775542136752774287525663232029512522002490186055709691701646357084753758225112748038171497488029251738925850945750132672674278268086640432257446074085416101065900085403634448696473126168892986678925237574923325706064292441821362029092824926739673844470699079919598611237612363514429135867824506869401620282371400893354478692739351440909164426120000932480930937030958506270994848025388608795619476772270125118059685260776522128355091895583719942412322788072916512935940836727549192245042036803593011010025346475815090755064819150232943022200494645189225182779941719338535330727957353320014911370347839744764464308901941464251432893532728753051634528548475995538110808802961098602504200807943417241835972053183980422013857122350715895025762497903800546454413530046875222756011887978212493231551121454635363996686942629757617594004230539631749246084780481710238945360988299980294443685209583337690055262954146247592881509609226872304395654607492005906587067784146142948074889634701816025324942264528251339456467815929558367329765482613569417010787400664108753666623213708623629221269512423099577882968314154552388194908120821440854301243956557831564720767730991717836531053988509081281422048631519350942978933397443942301488520842391587647301597095541912939842191962578203085650710318081445839157718413259963034664107124739508817966020872844470815196276051623800407143504763429227527987979132848822617946204232999192121489657218740898453164208691747468502033962258657734558081640826949800748748591346747660921033574126047243395906420377297229230397098168997277394987318238297575390232348501053102990788229270399436434825371605666513165001991510818444711552022253972891914998403200833727032629744343243905620992739856555583652287095489948578303447658781424249808289520595432958493137307007034205786372773548978205147655775408291396445534299397623398435625358302959160134263433434811583244480855811693554189473014036715761034131517075840365174436089999674160505696741496554992621436389526697343065179632184757457979576273412753526017295257559086979594167318960346470162263342740345119571089078457858571821093358721803580889928175505316643868954372641957618645994100955357116785427631199132657068735616835818712149231649098989984019725019922483289755134804067866477952715531710016769395241269021747891534424973473608437337308796846666123617426838451131321478224248131932747633105909536704110871877837973158702929869144970330321965038744931202238290001013093601862511163600485779861887506148855076343532427623626549567237596074539204557305041477648030474799152625724254539381106389254245108885322171154910705804362172239584786523920151875890321409863416618688647114331601421877072555521592953507426417505255251111078173436560686440391161923504845765910229164764398721388570018267186122346252645362487162976845906461244686414722471044053541836953083472195286576450004117463027507309741069784868868182407735986140316591990895333957468779361879560711770055900596713553312159900468161276897519987891833531782936362022012612395304220512822001081810031569911676095093586214158593126626163933474319030039518995646298974500515877260381332124198639155216747979468331154222052940864731877416757960538732930735174535054370349069987297998226999036333940239797911095775040367603262461913809829655338973931865643840694215817595515528822650965454158605301178862492965402082154644384343586601862999726084258089081195164644527585888206396528995708634904820809124210291074842905695642004573404638816785911948164277411824209686055703711115282491077617859114244533843570231732495769650945082208870113718620875307418693135930501245402682313386895015473963823601527398116321785566226700110136841301250901145271524439034170326621626633473027198945399189270935500834974954661852901477654950945215540924467759662757653035742814178629530829287436433549578049518868796946337754418539010774119380192515702559765123319682720887980981581038607180359247441893688639498916409767620139299762371177374035188875229341222841090422635180234787316222275146975160213746738181946441524033277250501170657764125442381938243023142544930070238088272417526126530469729921909852679660807685044808681720712307711585990241147408229867441735814643654636134617310693091979388456821703705700396533090990360744789235010544189533434105443588295259029865880920125331920669241536239192944358803234451684461782215716374108869237945009961055712548575314401184258135743695809772198430466771540328482571806712037821700828460143908915968255760763641588019280297689415074864527777194683220750941037483093748619452541009206326027351220430848416717455660536898293506907155141290978128625615069004148832941872856208800665175333897091255006631173181651432977296291914745953692908335144632332455652097547597206209318421338279507376759236278056759344118475773753864803605547294662278500132001965729085944494951435680628591828312432758901565676833527649722406332345165138289499764332988927125367035309505698372870646040313736375329827073027365431124979772700743397174237434980999633143179716612487870160073860859850154621883254347771190750926362373103157960022441551191692103315573598885935075574879142871092603285480647144499778349932105941903614859240279125898918575369753671593254071962289015655256129922822670973840907354671903664162267272426676890388774848176427818400529258140706690815974627622693925384134583593590133500684120787689611645141477261966324717227538693544946444218999231917434750125591654874879446157859474293447632402465679990307638860465165052053865986516464164668536413441713950097494199350662156821855203763069573476167180776466007391082423760033210972966031012742989574962441108391085423939858744838647772093149104663320841542220375714987068713252809241446412161196506530680099170750936957149161822673574215922499300154426137720192805884349282319397851903317750669859176425684914257416621026140894383006139287664141038720934501020592932019946357400557711486216162175685555057733794301886970426421464491198262806687609139813857605948184416208879916282142275118180598088847700503760344507140522726302136334408968525642789269045410592619515068127905722068957918419424574795124038653946700426755419334655989641047521626433809264778997167687572115193374630160421583702496351953983976019474407399561623795697149570529959625816606428791897323393351494237469200300295695210783978116247644661758368375823042621255417611054822628685562569891603722098632339890549190964399925613855291324212383750429618611190910959037311859877213631046213362378507849670276541522322945822390623018644509384267712294556028662739006192986987633674069067998969906963953200933695671326249895706958130188244542801212111351288976381751913961619321161049164656062946641622784361765477940998610982764483984444187209622859438134011658489805957934390529221835750186672159152148640843134841251473859051894696905999576753112139292725424973415743676316996205403783320071127902672068902159776055562190473620325429988314878917637215960490618397216275857269369064842669955774833485132072415688410218758295190542767905978748695362014328206582090352568709011223193828961029046440575190310372065371410178068816824459458065803531732971559690893204724526999520218814525416306923672136254651605867309222019360938187609758544528815277656719498461850689744797714130940335643350878503778990380072235629608968309676148969261332048131729338940150202925856874789831956485613418588031675571367154093022439570920418666165962395153917468397479380180777945294764605363287737427906071358227177458305471246669541730230132399934352299785937239643566933676495219595696493668831584568566248302659041327512263608009803756836766928706607491539947358765658508145113256738908330370907614408350286789595217243083974429049536788820639211757796213368304735419555335559566904933254991627552656337891679574733096807314852938141591049316920036226564100374412014500813214201839751809145138577193223971564593007793505904840983960161068994829527978785716314358740025010494938401372430291460938032652574951490512534484218699763786494417863582861032934896808343878764568890941014715970510362269110913726050256342199092729832959174767310671467124250166773003869718554247485265381615787245027398227358963789697551620412027968810623987607940847355421562520379100833404438989298477144345623007286681935615193350318749247894726055588675448577998002727411097059528495089961505735142435045755367037005799058517537666725660573905168616084857701408890135853617953008355187403051689205912636456264677185747954514756969395762638682313162493542119446393457557571234266167267899886990375925155680027889076408792730926440906370785492536637383108461045488983526095347029136108723568302523507196349076620453933707462251228319506618327975082816414892694331797848635747562766775588493206250814988054532791046750773138817399195228544810719916653442663808519271157459013649727361486877006841871316913055283197206658752035158888830654404406805014761238351655222259365532419857028563037320623878868579518745574238943023892400294272259065522423440654417582767439589864672879475395056094603038922216750636720414246687754280157812102722561058001680976184699542531070095474271170018944606676506980471407986626313017721027563842639359150814041970559752594403312524534070322826699307322513929945880678524988191997130608622150570163302459870400007083801103685337445035025957042388941306701006124686869439417623406026889218092378684190101849711346347518265538729099282769066925896848012480370181484805884474565429680257161252564258079704819064777697206829931651290670857242283220418203727265716182027117059739739289284834293243127310590617885690664204206320106169514126063278103110095828766677302812041780999365071334590031972776988696314301119773501103745279435489653319933809622305627426041886123652821476339931203966163741394975844846092484082310032071198338809685012961933853592693942518409927620707757376576400128132307273179906249914741553482286397330923349976916439359266908751086911650942270311790933818933668147004981344720573008050711520890771306851162513524052324414764446103683927078386562655573206063766251709662493289334935495183309956633608946288652774255689135034457593519036814342182466512961003503053385600017894070439797946279826782222418749187979906047358561580440656312533843870960663513445310308282011438708351395188279726868210167016543151323489901400499208654445896105002778203600788391068374064424355842775957044569429178833489053376677375588965749748225216181109700230562854741627684518354058541476163439152144236626154704633362751158232376848709848774540514589718197277817437597972096790317288009736056424763084296038718365271842984608686585609917935548435824791075567555816568028366574646803851669061602343133031488312802197829249689140496848820560300209355181717435500789267866331107229378189936459913530015179416109677161421826022768330119187889140026102278003996776199140732567322603064973390054725785542539127939848182222692351936799906336615312941565732378901143306137532126371452949934558166694785768759910019185552708208575502305251091925828790051198772052416743212544823556014336369016961667310910935347083097523626922089441508907135535430001514561568722655749400839571156454412638666305653055948041097382210859062703283002762724730755649056426949618037140429240165199200997349165057820101771036974713427149472797947172412295435407131087943788522157857238613309896462635638215476582207494884627728694863160072306452447121708477262691113037643458174843321443627175037191786362345990698936483876798075971064780945607328085859356991658888860505734232647233992365468513556844893003457046699983881678881299571234558629996340388335056641381022476132178252855044930145431170721372615492509864992685202862221111619921300928801377952099651205038565473845384870531765311582741140842643029785254119493705062969507207327099154653064469631378384565604805146991273984691687257803068196458391705317157999908525984210136437394077299085095679373318510503652404256973133053813097099424638300019065106115247603674836440620159442768938571341023932738059970497409960044929137839178965537551322397518569617704599099880388189835725925189913902589173303062752215230461759374331480380651884727143478461437808798863874393653263953609630041314125817536030197294611006931123639145757792822272060073330416285575577364973209234951152200935139811829318056832844461819839413267903779252642266399225849182064718560124595319079076794089291582334685472732719160336852010806249098511269951436200246528478180698358242315190724071290029586772356155954038959429310896740577535905615800814696610489420138657365620712825439362253716313508965184418975975363724749096152335080194725467387301166542436321571669914608789091706125887405039784859699570777158436923133657636852707040404112745691275162918662850718304710307648211034952634891281963733354874231928551976857835293841508899225583559326719815289284796204754556592085225077884546460602877159002988725395186123150723813880925675539607698507302055239927830192912046093413864425602839894174680056975326704435089347316117990874856900664705907912383826197932086791701325735700049106795538883656180945532763929249650767113061029118301371667586175350086043122872651180550932840601313328219174466138623548892246064040696518550497736630722026388645666904977964244636657807007322063046684972012410606842428038986409045710217880932713975460083515079436033639162752207336552993488483203227733275346350749734919959639892157366066434802975383011104556668293627658258571222245341214011755877290074504169485804143390402467035131116657978351542716497010716615863412450590693013533949910356707476079329317837888783117241897531186438010777102391342236020093673375398698381628339632765491782693935808698658080197618540376587270217944268700383904908396750676702762944781912264459511294189455066558206084118598567825092597949279668473047309988423145221378516386810450557156098607699992046011697126409870103573989443655251298577246492526678016306075843569139467151891752398198154529892273021547580063721693095869376302196583172184199496772790609227308347355316275359793579588208500160725202905770744987420178365038244623846410690446103010241252051074662230403360551530584390534416841217912464580418762030301103085727419185204942407318300475818523733092795607676453057249037790938949312028215072198220173905007912367350027819203013570768623732183460427430773671968006123235316254865838479250269952839859617351698637471680578183241680873274205977392825508947620424204448142463767569544579306185523561902058384349099582437645179517573234993909559704430314833825730891312812623664523164648147851139432876114847120057058985974772150863039919853134433440788784140911191956364778035062299480086600009402418058066643465653375653871888782788525483001061458709972703032934425910623946433269758850072447247827663491442402557222218427112974265501512214854404806594311710213236645382454434603875091645046519035466855952745853095509431195546678353673062755843832496368727931804462112518559981093334357532201808941175657002373717973314032803743421572913727012578582753207725317272204863678718930616315915633129395160410804591913179440523765077221955609092436617817798326955306906749013330925365908949828953358251127689749552609474905778644438218671284598218981686678930548651294279510526612370801261562470332350443315128382584349832957591023227451936822704912750170863969997477195341679280055554036400431268696284305518861447268966982550050002751195787340212946030556757173215271520175342580011327961075562188391966681698303655613845389550486421628645899532717982876021303168901193781171021660781921954543841960709846704571909149339774939465619033667217231958078100465684976168080346474478228365972878234760388087641949873876944697745105833275554658630736832518235227361926665842712438747899826434976940592849005878602380098368829971950036195234741264730818356935348449913025948315248934205065410934628024359668323765547634145644193784994851771857088487604291355319895961680059356432404409216196501707549434151049151429902472604259425650942728937414509667847976725552155561168522941811959189237161345435022921380841655749752281007922834243222893011261039388532986537042030975481258868111004116152510720743506159029501810731228100544879518698663724550577338752893132172818744976921383881635147779784715584956450629694958820510412404341263406176004379532801376274033584432010105040204568623139588886519000695949679199052021228712654760440438944970075782705590779369695393626309835260098920887201350917815408521309736403544931833578755280953820226174455531452678989174163458507159874543345264272621134922141004952240280598961970570107517275537532754683742795268052340860147652567809488198883397897539400376624800143813973329616458689703899352002627685429369408311999671944100857326933968869461272746598687280372094360624488473136929493611379882376805317859740149003590350619163612016607830156633207664804948782142131691397061184236695733001942931356449482673816170924200969816906161387074812470914492655903437480009857488993363136486367008556699518536897669325530331042518630126350785925820278183789139356821808354855897733031850332415124807785322937374069502254793810455396526808958513122555365271814294221169675726904679565007860560253071626077984243415250789323794140064478608924813874300549541837914442231958830318426965831140201452280120863418328594501766692211665415455385227188938185412996700462545499001239029507995662592981895805785129840839868228907362979624313921477070149445152169462958964486109329649815628938637905871966817051569934823916897395244474235329194105880865945376164313218825205513000813763677999855497488308029479505758514902565290476434164369823013481316744825433611389610727282516044728545491498663409686447200150492639517347145371271691257022644896824679356044181964218421917721235298009021987122934521618412661841433165638108181585939143312968714182493880688492656502165164498202815304834408166280250322723102914256569239130572179410327467979599413148114547600827933312686382000219684160969073264547646147917283364117077184738292485461688827711883123890168467200917758835486581235190367838485506503490921396921074833146283100560802589702548395052097505453911103050826174616304564065515376036125106578079264443913458960995093014627675757450433921943370392969352139687444476773135368826316466786863693353583005453660083964721929089371908037483369936529486366499605852254700625640254830147964996395622643477369723839293680690634371199430727687160854100388347905838394592640920004972853793050643635825081370543886821438326314198483072818984264997439936033265145856506825498825175347486262115300808102012762880950459960110284933121631590940748921199575295473533466932178232968473552135915183397698496572158458097691417728997238524210094121105232423863278877863444503818810015002102985737869244066302320897406962956806474284857842298146085550177296404839612698639298343244939947249422980042118549522122855524773332855220402167118020394297859848444504853499553931771465277404529707407095284468393468274686037441946637561552917008248250944073892122272007170307970506980538172066249684880627447213767972503104437003639094561758544128267464447097550593367335397582545817342947029563163491903119959786948436449668432074471340974568904072028069483090936541677816160331383812968352643685777045163966616340758627286601004275545440535381295381750923766321923788544339346661296580925160265361983306170297573493373748323558406091174030145800320164882513920686558206882523471636424865876569383522916947116815434548949536156426308595515173281311644143951131362720591242436887395863507436380259599523793398357233605801373174284417704303848300608828810704389380827483895510444067500888349176872911323042817258222760560987917645314797147503388912548292733235944768909458181364956112814584098088034412030255925639215280081077703032493090685131850642922328662028139924526627670259218799283361719995518532497873221192626577582831232504470412942867889967569556054416357238162918277858059361762863726964637077294850692726954838698170540134869421410119461264928218923968374888144435582184893370686615062442595763721957186022266226733313395151295029386510110465965016118018475717870055187622841787339499998162540498518054465070219954271298514788315049430226380363788339447504412066591167834120552992247670380702904490855411674546773548563429653455579116373278349835162536704776298368353731473527984338737086803461007980770524719595489351046442221290203755920010114422528673026054809717455127366900097517775620058967599391701244426637129994594594511388056675311064065784062915531214889074151948037293455339871100395586012832492467926965925260730750437020690200736533051479974628035699438455293426208842243931969871261265061167068489164885351592162971952778209901256073416409633401333390393824652114518559426956801126069099457190643273549523240036854875202865268769994500052340437748400612703527789586752925907503413606154903702740304044800470239117157603487099666752740699198976173242347992223174404476561793813745727201892240818086505427823797602625246017955188292793178930483314833379803247280970350269663012048908017935373902093055784634443350761546122618788680349187937693404854237228624856270292774531894920911691222172927460238109519216344918899089021807064691819661841860162628806932604701165822822669480284712032704751348063955247627451377650813442746171442162347610542489711138100723724228839272665134853117905821688918046074702893925720462589643562210093974833445533324126035280445245512893870439864724283257693599951024008729781544855116715988843579101459097354163826041820477565063829961058642068417996843845310271696264342152031975962461238504446184065307773786420447928256392241618134182183927280538362109679428214198164702889430639220700895225220199519507282790348551025121176486079158208540348290947500068228268037925019128203799415387622082687846340396343249813629794788490765461848541253380888809653493923314907054190445760898442212707230164701104747199158146765626642632839104521923946201045249291782101345742881431943592865994138040320397344454203637880072945378046599177920860796591595625999497925103931829856259723534957700634684604347343461883720467161412282178403596087466557586719967862706654871442743959757109952471996712695410188556542190719555079565569764307687146685668729857775023980740797305982084463012839842269636739691612385605637593758280650818892251057006574939214395786212431060383665249095114159399451475589218797274531665470792459558610007660248240466341556773644411863593482127358830398689114508397953254328871529822715784630629096718045532977192784443484541677816570065940821795228017528869342459902120210276242985772856793962511517566635621651566243898679455421499676299073612823896516220290627457010361655661821342537457487917740275229944919763951200573194840184012037127073461220952224283903959846609389777487819976636973139107685375177871923960726645529169895295728067269102813886721726921678492050424874022582928004235183722647679390726702786305968935431285891342955991192788642230026264402835788030255075550289519290411722408442324944657847438858917017652178925281376381332553503768411076470472605767461417815808259135836172832012062719015104790138632523896139613938059374172310278033481317930401570836487412219740182449078293099189686686905692415371565558919803301024961683509859700293920075457556177513338631074228647144798100995350260393123167440294629921784500676948147448242496742919504456557495353085524061567905617458404770132028310135529496491601065846805756567204360122090800756004329949763093404307277932705525620977808598872890185883290443450397788515870612218147754588080276853289533628171195808251685324111418319497985333333387256240899562156518673623493089533398426817956489771535545711656958511918229673370818882640874609968028633044839708636522748762567176929422124802444092813456090481694351067916584137742461099088001357901560804977167819774674094597132667636473223856267108897810132152269998866232428346497626315625465669027329744961403762755646078460057649831066004826345751385334506467187513433673348057305610612389472743938041726176793334057491679653801392283313957914143105627987495604918584434214069329549264562240684218306477711091654741088306301946493954310892162011195160662190117232946387843463952984303633577726464857148849120044932156585972555934942757313525116257463653791352465617205695735066262423486223345473319325861402344438483979191562908232816028688325996902558011768556378791688216225181109404345046400410410886007303325347776136741683610413066906709827044133639243215931271055940181840127505531092433883976927088466711463952903353628425283425201554383799969672078224875440357128712464637076585089782888888424728784432784724791170878419161261458567129797982679941214480122349828636749380880505733176388208821917083647735278022332000570875282042940516699666456083543226556390708890291110849386860358138165523560970388416011901499358135637582686310787993257142305124543719252580279761600614299035097187232598455466251026610508109631760263448756793190994155489826466936006181152522924037604789942928923941454589599205131498458916758004144149338660951410011006824246382823135220631416558477611838099193728718626470182905480636896804243518190148082236475428489047241126634490388883109752055257638259567240453036168515615480865873945469184800996812986667549273304052019616555211740012897883883176868387918782758351909474932481764853236713653950052754533826648328135031905215085583718854428210832051955927240237115294184990687187684445778585786504336772836185461823054678783622701531845943634090845875062035085613156660363376181120140385595919693301221533802748246287198345027730137947262504587059476059177140513456578922515611577003262260137281153672124857676694827640064430432959133293968605947104827468917468640762435152940738267972278285647244576583210147938964815652235123304820528588971689430736680237399038174405861533448575742768597662498796631587651666010578887647999191155117808268561210666313938002388585044540637720734888843066547022632801360082348986974559963370010940181501913524665875554931349308216046104414518471043273873268542717852015567004967133773407403844311946966826113764666710820376339041445368412815161559762328403525883851623704526187849122035300361366340886506294662559279749713393334160906915192372192197460878065505101585179322297056221259696100877067169707977546123953076986087383242598018494530971546339691664431141716191067113058336991122936484188950615395620440490668459738381567105562197824912893416668533221692682715908968985719555725088671223080298341835360162929066951518512348763384653224444911084666128278891751754583171863853353073291875118338714550902010701550623718952999024238656595569072972169560778947618101913686997768710921682154967785315787778437982966179124786689663490663356546884154210617501571993378517902087284068105642187844813497226191502956216750912256761936130142104869321194521758585319566387559730814420514327146705257455980791655281582756070985783620803912512825327824291106491239426879963923341542624691941342067505546108427388365618536727853601688212216204486655816522149199811354805752105200461660454830001653506812832400729039673834330482354735364094417552098357017295796389177749344226833733608964887187846419049649734557737645409886566268268868163744278634469969380269511548536244348724261076519833634475100333424003630808553788657729957591941622928738016636523866380526591428081924031458448503857447152835593634843570889784720862495584900238998155721059572727207439104333981640143567894067867662970619246710209984329333879812272569876857202841403624359879869202126743085831197111286258844026361414041248449386712237615089598226055523046608809381298526760099430134012611144605847412499302748105830154914706075810548402320838818926366156286533021852623991643021036628069095937614321617470751798226770475432384895411090881871192069431143774437968488204280257187025138137296973765777252239189390562280380520233044472340982940687011621742384177032606931832524645589495113861482524028656645196251648697666430870598973985541076045321390516248118733985438628002140770970264941311997721028862591162552486666933759160954255323097585224489290323554748306987212641927061883704203785109230925230669479572193800955500854144231079666936474546056720607298610572253257361275609845878514790424769729394232065062823711231126443311648743670285692887657755807921894014785210312313538082822701013678599290210224761564509593130488225338936651525466187744619518798292586677806086471028587908117368207403686445492744465547180806215595997342206635944579026907112994690516139171298110459397883593519948281720585407272559613956176423461123946773918913887732993856843553188805399502212713306299454073793215598439303649119325759944016496480265594998626687769126399520749164719976600028781132043740152183052110265330255337949114431757489716646766114101892951462337466687040946689146413688731841627817530095565712241671630670122378975344635767609800293660005815457908261397978856888110933413389903578062450747654788230064146594578237675078481882117494811119089855599085321479572001788849977298109930775364894960060897528015987186775524885335136048757650530458757091174982663708363209906634632405722481934323852657072656982387021036447754942011427640290958359555135885600276846588301298975779033524892572085380484085921712797107528734134205073766044166436772639701821561089463606699241485921927406467287227037845400277669971104265805162774850403529790597940616420398224907379774237352896194879904835497485069624732474222435127330206419324003766136353845452891704054783302722625707951750271534056176737910644588383850499626283398225828053208476078824899671327505512812340254029337357739651110510744047526151526151532561103747599738289210460287685383625311188701752383060058275395997460588678023185421177040024536671910226870889523335358766768315610062119773574915821834567564990204888773078690144135624883156451988235632549010712578075619232330970853408181190782023764762025685781274159259014892697864915205381139758841649756108167935568328981821309541454530812845339188242018762404988194391316494117179566984975964418554700412761281578483045849087470522073956700629285099503866446026754585097129129948458930674871970993685114495906778908737579035633951532934087654745376119999265033596244790763935147466076051211063304469086965267433991693519502634340682285068771091593147674388909962618010595070985288148769249114209894200097023787464895028280318348556892690641435729020546296899351267989488445877464990923252161475211975986669954694924960644893829780053812516152437295650441938513843268874196153496242621414894016078222515350946845142019040738640877673983182122732847110200609814004562538299596782851393801646046423385710074209538479602132201134822661755886045249818948037516032691891008665569105726040881467788835939460669253710330162362640963135891784373840494598281579666619332110819070732909356974153473748595263649542364764093693390653137201905922280811167985436465221274501830241876014933232238100325905740520632927663148219813873982809696635786368190382543998710510343863732300303444974821009210628386957284967268404398152343990244977950820075150814400674290152648817795831252268747545165354451518587871759683288066734031990452713972080059022941002062755073209962890355645072054579728949765440790350025547009783987818572465944162853216072264985860200711759270553269053600478775561710896786791407140143447396349115266457134005639578526215867109577211257111205891429326889638847645495266791167078320793744498439772783415175277053893856268277506588585604285009783465299921418302748717527073729658686788339710589058435667271963312156810097747720971338587651295160343095671963520993393484370544801879867092839914800818149945576477942428458041144239179040005005059336837936301571019025563688573994051606569172069562182456314141400816041417331277894259905773043835887443687468197470767022044237049876798550176201507203155386421830157362197301193075247237616493030503832139788303495840598641963166666261184584109710021648123730871803566965861497449872477329888254179518168911598412583601815827085366807656340817585216320665796163567289867649872888096412586083321000826929873724784535604152810034149126886693124536839710593884275387002177320698113971964235003497130005332967209845413026293141375034609626853338411360619551951926803785064595481175535082865073529583170449919636701283451087402906749687819211449984530428119420155070410259186203218506647051328214326783960681218328009303753743339863878611975534563063098389533164142041744243216304084008550417187088306566432641447945134196541760881536668022411112686714787320159644892298327153984888804843975110585954273783903461486561101679436681790524416549044383611029774308842417930197621198206221368902284850267812182373915209198535096324675988362337535731041898700170849716227455413011957449452482387445025904924597215350357675739279127414871900254646624928381900522383443044269834230222999145095176110099510784918821666754056629000157160871945877842080071102682153812271273338036133086784646968059305554455580963032738839328250457098461629218140415296048618954288639254087571915679282606163524764611108765579915048591339819852083391117692577476238217978904973877722149610658745775737999420799741677861070039905898480532033672997490061122973153560804796829321571731471828665410076238377115116060075763192546580212383018506000925809357917523121193994042442193622522010915495881463173868860149803827935206014296783050710670726806461266632400566741770519805652396366358287212334279159598777934126981480133401370222174618603778237837810964407198022570165526505478080932126770432326447715492075042355646244395566522654861266045944540870607243853799380306614367286751874052384008310266951161951531072776123992860071698569870817581947272857137580685114390422946461181583377493845840319968151114456104410605981236296015329101025439755835602705838434767711715101765388250269481165609978036101228418566616441538314412962457051230873498622432597144228147733395059894592147760079400709019185849992559931549734713052875807256177949329127746441846838126348926059923485276989257550419952471794102214038726487932124250481207486151211761208984606134908875358295354913492203892433780678097099884375721936903990395700133870042412179224907512347762164953190448136601734751856763573043367423880490257692413085673202853942922098682021182276486825973415195637004382867349889085922286540080774324310080568438780985432465517756486368635621945748858718112863924372242495437058483854812099535169463411394919883001697774318080407259077858945124332336026308960840176048587465564527539983579062245572136615122948117050668820111271389773821149830732946348955866204417447781937648050037469167715876340062368736777545960715375387841934732473959995907519799171944086814533646493653973325328954650851321771356783858742436996599320232267587828082728265265433751684418134622015609451903280138782116588203139612195150917583811258601353140533466765354359260238150607244920968828101528691955454043309537285413544694398532119722817408734249695152068696491020582749048396409938177751708256770497120102736445034138772986728308674824816516531614492276601485752647646206907569656917957466999144509410744859757430657650974924097776870130269546567195019958560905754966281872654660173016391604805084877700296517491444655540407627018546870750733329293832052484110423948041998027577897829890421898229404463568286815680878859886080555950819184213463837716769581018534410444559055511368449449718705236185828813597168418138867922268932505437199041121944488505419197811639459509969019226551999362987961097660171844748148439309681031339947546402500213604775322707038020413143837380824532011983461063141336536462673971890033374767923688709157754592428794222597254549849219999910823656958461506133422509039452099015083800680294192650380984399161761306426501665997175178078569055927570951037993220781641301567810227677086428878594255599103884394365060046187226444928590134953606601900413902744692569787981669081324177132458462421087069441814031149488356202044094826848741086130799312011778635364386371253908419888296869151318780532307898858880346853641110495227235528216528403601746826763021085820714685883018334066746859985466033907485729351075202241578276546151053242137675398034006554593984428420339535062208164884447385145323926358628432511908112674628237980207807513910270438840752988911334687946622725957256455313220704139491826393826069182769679150132989985056942163024037581360681114652330581547760428817844126333701447787666866697057922779014157452676121394735159418447843599767304883595019461783663666891554876174166006960807043540703428590983916453452834345625554867464783139079195144263255361252278673104860361076129042737703462835246012221865927747915904408715209138238418457458615075397397245742681492343254706317688019982904313927834322933057522665142730146790834758983975926423221895806194807292956040580848898720765192664118416445245128665634654318055190860910623706181093202282707456014768843291849543518270893960519398714605644088394720785303362362932323452992556339638265739470250770590273622507389276263191673175250995742499075057679717379084248980669619899076611005948957777200456680444256450197041449181036098382742653692443215599850896749587468650445597278739116989793578188055573378671620285763584431918302124861202098192278085883857865004725089691433373265752374082986774782019471335866756432886644537339558928855615018410910334705406746655319531394715080094303805159537676328640680729439772194651530031079121125148768756473928136617159020463239005976001225291139481713293271433175958761366528624321789128984416717556812538146314635110779140337110762475058112610732015820335830246248919814857286505412959389169171098503777436638127944699460050644263501220009221232668339130483329449884421121545614598777304668439652437049505196766807535517217355857687489363489687445257991946006718218299567195491665409513182716435201534781073682018427669388709560333826667359148633169119523620658052702394815549974605007511119077178604078602558806918143664589401216685608573018080153609451492162515322952765925835047530406067681726563334681493306019841242792851711893895276064041185628938669949352306614700258251205761411409414842420948412455100162570973856218829809220803088369232011056074642381437100693706982430967278167815859410597741862959823358156303111280357738953727855302281003290749173688780802470466004498750494760786311571022607616711891246572312293660512170974648606269778254683481303955831427341798448810295528368999056535268694276315815408373486846118877446169406813877736629965321785821427562058369560864142782671756590815655985142260113576081060997314762753925611284029294918926207719734931949905489681908035421284001703320355042587363487391586427092120472336141556316328288348924163590103216163660125076492850585198433824619103908872142731953457135698540575112444826585843604495306672616722322590239243198876465239669384702653590612517575300107441262232932677907286021571204672760167701587597247617210937617337356497818487801155851758544272747404270389190611313205579305144685295389007079739326203804417916367526503353256206280098138307063267782288150544767329119703687333645074699602061289517513812293924534388471994393667907834807837763951222982149950658858944233875988629210227450265910247183944748844914900157669309760553460617099980974250379591549011665725537618790724765730684268922347252444529275353475192136714594895774870191131138448819524664514053850296738916483834484486439460632833147718554547065478600685667085730481726117224112081491574751840700400506838145409217102465643588389816830250384582733647004318937437330192661458363936340415844944957685569946451730068931957852654837276049508523583810760880764394408271756312476409098527408427017853542431454561880819203238507003637466238279502480218683438278234945070681331062378115556541039586187651774057613714630841790348634365293411195331878319188879971027079386720529240594940253230706008635082317601993165192094401130491306057557025151066333059984664347767914934350064107159686230457902782470577093361320556327884876173859282551767542229175612455790790445576457082469956232026778008876068030482776226867321735140452546723784683162024607012551340738262079681381274834694200571184507754711989784068884798477721088818823085282735172220672795092962810249886002110231285033493458787695353358053705805053142932721851043249436436480700401819925812089307718158072401203358523292757353621912454593942015283373743927906938955778394516460247535896939002821305989507298680671377986819182625350657572650011417463871684198678391440066855566532123239632761429192279942894746752552828665691848965766820185225152443775102505519646593452463461662509347899964055606918721373520804955308665574769163582153206235268372435276518044471829135952030911028571131676999980227441039339470433006187142421320244129346948465455855916948071540694376693652077964847739332652285760864373583225953298400306754986817448041529437530687830629566006581216411450090066169929032355278952654453516486199006914950443593454456306411528292459627989856469500200257356369167701263485824256788436626790197070253950906145650021326280914006663909825527111375115199291183881676073245153844978584403620217126940456755553403925052143764980825398636903419826609038215194252314266029075075057015326898138413155370805353235084526095333614067170184346377741500007047246738902535982170705279355425577886992783516419013469877191601500433461689160517487426581114611021335959036880845689499112154283191530931671635141612802898963115434023150552986585625725218661154228575200945462777925287110757543892776458925888982333636211552342176346694465358201054137797328988324242420485028911176304364013995530754456155085674596095894085360941007903657904129279739907116993014353061964150616488270812378796937768447116344295885224764290194041828394900933145107524922873749457797982047867070153560521673614617912129136801544002090758747438787726808410952331411699875315660111909483884083091220928287058468387218834307671690664239486638250077896246661785106355340753424352339545870326241817815289494326555779425077578434823271094222712535383050137855737338760213807021355386394626294351932873705651769347170703183531778126633582826557014277216196336555618792349927927101743218365143200965267164332228312768517338671510794712619129774745277432021498681198604949447972519647636161892848962595288588309429745247748547720915566553828913143223985894663886662483420219347796935937554774515678524566348682831875325840974083999373470489406150885231245014075348412957289010000119746116944733886792785602220230800957880041076364103653812505286058049076137129529729320752311810135435607407480015718663593886342224130011981010526839105004796548201895903573096094418136627931597078589240480289562152390243117468129967119233631077305375951685682905444122672384064499064162280725208304913332459948673601561168563250416927455897608097628066164598458816806867440953037093067394896136470875018440706241097870662521346436249474609753581745721168331594942583269843920467477017115048763428020909156276025380701535327802270027876133749670330133920030300344124935575551079591138402050160636024136827793459517712756580008257179070271779882753780570637292457380487031128265307120045221458756231750089273368372468190346271270237774577580636887586258513628829837329478033957782554945860371261066285603280527354575632287231495009592852238885212997032863930203225038408097876479055386624054980248861741939607770352143810080541527524334922958055618248322515773107199353748368123698209960146484572341766662467864649113344245528159069708023136358425430047778521176347380870835807577063334649978144801959842641566847949457909954758660210411794365302541492284868482104076400276385603893800118590275703173137102303693119949088072874835560201218164853685569025988510934717872087693899275849077798568347367803112991270613369032874431538860745561804663809996805600761945465294854278585756953595284319512960316174748347710510848883632533897271896043454635290637274861058051927503576434022659041926624173696510026397491345103911428943358630081081381660945528080385986474830702964743995653088869748764263238489596338203192740638925640726113972591756966151400991298495131412543868144027946725998830331241071363378935293920728732246863824925623671062712202257703322432225396083015469560556936521904656253980258786509568153341333258200073542629329319378285653468814074017679603094612417820759215594189605562606766979701251293281096377614090641212778859552568375891893355743420567795353118573860341650303643298286686868713936230715220128804411692595515823831658341954024965659824909689002268312416347631002183449593037487256064397678039321606170749698100283089394740626893863890508071194966748277097243611773197182126673844201161668018974306729974305811385543925895050662833135071534273559668087656044295343911378617462251544054266526790505700012467057097306022012557064398373544747380642268368800291405812966325698004183299342033199280613375505337999647953921460209475969361512266438724534246463492882726318910440338758190768186108578220563722363644287745260097034338580176691485128624408785361356298740717073556384894648719584201988004426284259761567168470300831650051763892822864784308845315472807904291455039516875387477107602915839002355025248784987807181623817047858137106971315528742391906749976097245334658390592080364049269989467056253863789326977278740901513807920296962823087431045892940190812251089854792145318296250902953149295609677801342299492309786762625941540540743856835067906154546455677328488714459345280791893889983272980897062784552006487219335353243791286313598172534851152483275005695988976658066306102316771071357991280471099189711889543818350430231081309849549366241736753860853767213761734241705089731749479705420345875520296428262149219219422649992096898397382211259894538790174189869086392277483128187074102531613840435953492344395216939875172065127878770936186810078427714569745213928621149109053992555752755061765574296411646379777107207535098248135687423379021204656281278460570427666887348315953437636111019729565167042034855675909035823606561909337558442074414671181477248422489179257441936031662880906993937932797799664716640914080854741670211568826974202295925014151388275148893689421547066164696586580007547211933543622420136694986429741702337354601293400541214869590610135098613616869347127026167868217395891883486530115426192996315286217630465923617047335636761516389039101277991988914454578524937590869857461586792064328606925444701389784581260838066885226313180260306528789409503377299960089095693821637612756903064680326499996768644621917647928386161274942919057674804341824573754815739438363660906934032295119042645567241950042218166046110622855220802550960073176380344776872204424800018036160119094623569643244414318031442577726882267286343271052513003520243361332964378309982496636580696110946300625128940560841085648943205673692452146938495401565256442163764984995784402713748269718128223349207988280053656899164689416223889465470698912116082636141433600218271338520476030274879051837773147031492628789229705769232258126336489672161546337877345264994780538060218184439913944730267506902129268333183569681170869377691693464576027253725238308401931748508248736646919783941632257144986289742471693756723765276380827145983551839557542992807897130134430487627227948180054592147707191888373197438526401323384187695174891360117675468260626386272785921902518412056525464484101952268226857225856105783029032276636318517615971950332636097121688126938029658493681098119445079889884026794765103717259810019333253551760199438048894225942717702892490168834882854049622209586341493941587114994488952057656965746410886988507566523734050556025251583190128913425484560554478274180182024517690731603683149669957427434454830400678206488764855028492550958406676866753937734712755962462603512588302248343301771385726928950215089182475640072098792169264261262732438093366352716635324865264483369873694247592026641986730408511114027636945112900588468085511805080633558588775164592482025892374363110413597547063115193818215456237955644557948459024652504944691192497049770831764221824877828720219180663998465987443661790731687445132709192039114484535814629267610394988327837884470191937752910534099760747114871139066570386099089718831296550438839646991983315983873964137944716589846267416170756081150732468676183107190658490724248956976470440655317752169838554141345849072043086477567837720441176256839305427458312706670106088338064900790357048359806044622630087684737475299970638392917041510323183284555650972006740500468064901654471639932643706560040297147203549219519538192631403573979960107685481270720873995202785899836215649092388880646799744729228467973863651236184948936062338577657929554750145888855909203101801824812130274070655161240499794701242126578421540527147762118456935071222957631773336519356131665537307027818392160561950902984712786347360021923506934673876741740200906779625388802937838578903589610477836774514974338870794654715816861172300266304865272539085089297177903042785813547267373710602882376388806349550474418474085824405738011480149222989947574400148776575389486374924716579876082168696201391057347910566191828789266950841364118201501615272053585304231385487328994863548137468475907739811048633816931255807850842702712576217762364483272989848797889319016329787886722480615569587424035742070399842862379327425922655934022245644898209081295110543157352279163152030191610824544159497259044156620267321564630845332756452614995109881118805171624190391093684369328832493847483951271183999741685195278397566316364753977101238792819074160898729359567878732308138809138302923908455357629096533091668502611245743619300684133738053375882144015095429955664868071573691248241703496809282834225646356652803325873983130402761134415615195492334280864965849802900445477645812096519190590993599346552893655688710368907545210640547194108024527375478607081525957972584047928401135052927567739687321934884588701650005828631857652002367425270712138689635510808020969598510478438228528289984066289796579817029731924408792782725857109696006913091746698994583648923114097665390940584197854285539608272790151245161891554621255558584084979795911750633795941743717386287331898055716597630967122011911001177158945284061950077737262444723936844446488189893162462638960372974454190931092574112388781727924187531374567893176425546427849091491169212567780918269125366050816141968034798739515742734754692998060710088401685328421381790449215160095117445144842425426811696264805358545079890722748273729441115648846327801110473120090410075318907962837286160040202540031679946883953343295220035137074008610224346629721642952659959882334248641769605677589253032155196260552283859534312052088778956344867301424158802456319598270007041713946848408838341197375963013767356022824718240820932786783092270124333599524324690064543073498656719688026430498441620044052670472347499566649305190698166336479716504539170353204211074696171309843976376574878963144310897833599539721569813513129284560222989361284172510088027951390697691986146135521808133154625175638999291008392351269712698423574911935194836885051325481138261437941143131616508124928727644912876653766756114426148073114775384322365766885089971583018875539045726437046986711049466903045783307395386470707757095787957100534609993488997724933911817324676999356009751200875306619243750967346217768421838286799691811451539155776181534289722326302889254744000070140303708207555375821501158212467386722948024600718813333959822696212424138536601042507052169857569319655419181170498795510971723525301825777207243986437542773512017085818587280985946122112239428325090651666987349954324279808189850136920158273391802615702728995217529789505422375150403529748565794181193927112352014206233043926795797723993300590225901103285194093194826921280790895843594071930654880515521606552890627635738759721497582846301175021192825143540716095417870592252892048417552794973094755295671180666636969328893622939291815940832370644808051614661919026021759011451905375308376223708322531986860668715454849539753897153608347437046755037264359918139976125691784565295174815133477056077381804308459795408888245370254920530118184840767649903290631214056371060923637667000172726833376664863559664180628931191528778037879917840997761357905439189420017072719187997697689981414393040715777100496382408894929868080296458252893084104523855086883687490662207533016320586394798888938529195502491040612439427333170552645953611551082912701313981458328861418045779920577963519528940000170673721603444848431392656342340729743317457241615639942994773728820960562469945068411949719259642988916103000849277196740535460709463950331971335395610552117230671267544961522903365671456015757994820639112506297212636980831995920544924400521133002452251746446232582958009999228034056138901185881455543467938869630236470554143725594828549915543047236781517245650183073465521177104005792074794388524656421729674850757541535191925254859681334494644084613082598513318904982827645105646727175023842907835420240390533847342209726200283337677601917660113515905738450770448549076034780316119466329230482205594079869889970172512894729244141742800353223344134430674573895128502095877043864833531680439628403147101949250189801097980909039545025545667907891051065559329479777825542477991528690335042128191929618009428105282863372130189654639979993881799781303973394481228880740937639251881535823727530361543970001311567601436776556295929945565164329460934454794878754235521572858378752547097608528952630833372710414748142664098543136570379528646713121346806082147360547055561124239855266874170802545294185842528582335647175294751913121210240967050903466734208895020746841426561651571747689175433574845660001111884237487428583315871177118049216200105708162998519385935932197356652492629572946606536630491646289092418349528645217191417645774015392816234349880296616753743657960894404831835075559736042791920802577094763937771274026131886079941559615913599857032326972812016723080175220261462630930662448999880185182713525835018049052708478238176616673534869877798745479929512287419250042682720080543551297529447616369022873227396199198389983408030823524644946378213701101892313422590685169344061320626465789717807190954032302741343365013706046239586025224921850470734147410756685618834061976706225562271579298644930516189539355646122838201581159812826331782755268298502829507304424465908932894610139384425043771006526709471205677488586825081480085017293383423595755343588787493073374707664626310177133372873550713621413202023867607589211942840976410339146252859674195241492471508653730830459394953381487375619558487792600022004337366773304677671766859284045467747249929238777493153506462210486016767674979677909075903437658725841748112379707639685361554370847986589433674586275880683124945955200438276200761839872899124589382400974880016199140054590938074587780087932332819427483467203075252002911970107019318685703344543013131339755565818956401975209792772637822910589119222834434373451500306532962055041948731806607854976247283246751354324684835104366176709525822268408850274413169374566099207643587161518402870217446683371167506558702224448974170844683862861971075577393886166715701664450066063845727705329880153021500245861865624550534030752129745925972962909304541918467669942970954401722650043572299939911338780298937899483201201872901197691204931388316210581386582366495418907229344368105432543020003821418980307808168574491881657451041239352016601777123620653508051098460218354810208298911370557385952181597740166664403401798842144498827924359930889665890208346953567698887004481996665219976839438469087884672636779260729069994341135028213283648198162213414536727785406945676717260229332769370697753291611878420967145307498073533005257707386268311470325175649816133232016711628918039849631704244958112278230648659443312011743502439678825833583392770078008846949394195847744748469661783848827637943986642115029069584174764037844475936050095978198477796590506442597532052604378539155722610319633136884898787290122580962123882866481180681586742323959142298301575308196626088704787152737791840575633188119361823417934199554371472988442911127002708423943564621066661257909248709449542918910714342827939316632359618654858393096608569356203409945618284495871139213553988584195270578782021062635668565734122427886899542933063944460017658177353235522181731068642653929019504911794584362424761409748838542016041880599347269077630408278109352890537125070512193289913964559785905702291641524997077830315309678665131975225768059849163414218280199808701507414005665225915757370065569693828315320008511729221680462011396055004841961765328943617895935569749279328808890279839793692405268634187568534534014027332132086076595226089338346465898669633697495224498120118037337827595720896291698427834736901515793575938033007581040300369130075157174737684808491887552226063980228037393598477797413105993800003180565766269270454750395453970741042474894325903136253213414322553559197631002408397754088566315939358899505879864561573484636050600517880464300896051213574144443023623841706193008003616807574975857791382089364380871420220178396131208343973076628170376025740254645945553899769136472585795446490228986750504676142819411302125856526560581234579828843915157395351404978773684868349813589880381059401542853368438261536062546049865673784006957915787074330095717687063066268089176899125839039036300904292144079778892486671254412383365452321952497210592824659700199874236501754317788615780739148381197254136594430215858211274668940077022457753126286429655165760482269143412800391725610430167419937090148766049827519173358010613279334426865731834843274269479394696507463026398859100143747313551837380266012145249703182276668335128252975768865476448684867877161954150590605990633370358032066531285623440275929560284313310471996813216095129064484725108299967181420063669461661924582525581411104791558571324994751582637845408557042065197415803282651088000857738068595218364867847233788713254350484002416926116010828686450188693478107443073892238951953804873908434919337690052784382089588601241696466251520078509710469894557294839236977716703473606753982133494753808401302202046238917535533379997083582671465850165417188413997578625744028141922533398822556259274513299074650536821606505625995238876908272559309039910833117273608590744004790087527332422643551701592093592459245392170531454368062330361451603061166354060976870944783868175833315584381957663225944228091205934399545881295565674572785599518653786667320217679520171505441359434847500761411370975368433202483332004166626710950308251474824749297549792214374428106539511323257394638377840619906213052462904896821700756779270871711184376024974981258183662759081738317314314680737519436860577249581759469480488218848755869745085041042190469062911014832418627147320808009935017160531942053536679371817439233112321560260926926548925150764876556783716426185621160339352482120674244344660956456587889123546683085066302612245197490491280726169171480063906628921531975610859027726072768831082917488691285472179631227963052096639925645563019931157345616817442132467557444045987299989531855591386367687964534819524386303910457439002533884498801352757003904837715398223461157965432066029195519864881807523205207391401767391015213373737025191937699235279037762135030548751555380006629393220968935266584512842038420103210805421544668610817036601555629863247955000538510760936863234220099815707960136487807337933661294803376895956272466455005636201217961794917182615784254756668122479025212581656833949962516334561669669062087731100339334204761056752894502319794194748018714737974886951504790670961081353632541376607212610290535055451051872377739326752822966638446997079276971686113559536535325237781178593110176143015359011494459865893652869824803168587491592620973138403914179645818125416028305156806215932439548986864616641849787746376861694917121531124137345210170648304527404174676094514705913933169484891703596672318136784988893710618000647041472018827198538095721680338144395780327431855080399122753069017948767193918853277934184889668256368815479073965659147591997714145677387275230026026561010015929909250637209169806053824441611681235160428172938821228044335268734378585762522256412673427613390218062557221203823942883536833944035124364041433248911980739264522885402426171941620937986241982646142463728607268098821462439185527107466633431280233561243339448497118382097227393437977191586813798430484618857972142705521449450963762627711635950993060532797325553139187484838020268540128904012820400303562781002864511362199169780649029425408076898386998916521436877083796741215918016572764484443522764289276856741981524053873996301799091274290761670255242232914190181545817881050663273447901134411062496133421617990078969304946429392290014268716647611687531277780491890130747663708877911297524851946326030736523514074900260948208013544755262702801395567119662194694688958613727456854876643867829923414111671545219499420847774469461426150884552494439598309772878451804604181278240620032659747537177514711698574459773446920523843290916838784541004035699433386241963961685220534525277259533685941744291069727212143172991268520507445092694968961640640493850274721305314240749155986698598870875381840472029138529682466270198058477509215383100919935613865531482001592323171370644769894577302713136040188976427200966413905275017346849502487173989315047108816455437806643003100161709670191894944873143201800772908030630241052397613668206379850262063898698392885458441736488230173246154395118934899984277595000502296517646935176448330236032802470645139342259926349396159384284618920172353892144382897338043179825748727111706436479785465968722717303870064537640642156483460459373959995348642670304017471185632677558678472980343486982982286481697728693391327487455244860255665639924117980536291036759618514027580128101240457859986073580368330300777155725240725061645673377309529755696835749891994628934191018535855730200740947562312414802057880399020668959882320734698594406205688991715516530672914004246417348398464668544143752421333687106300395522571154725913372977966202224562308969357667391563859589570531891848282227712486780986478181057640671626441181523559447663318484042889144439838416803196997811972403983530704841763266767786492475883621620608355448110865459777231145922717794780147493015134038131555652637115651308668366698100249858446234907482823168401956886669561570940801488485423712957788648707981206733568963497271968926058431539523081151316440509519093174122901209491337558945876860856736067050073642432934153124822185962800477076041897400906275901392277248741867196522056230028936008151276723538388976806796736318479118222674265083848671405979191868158419651363992238832133590905447794714355486139325576958474229887320029410354018730124928554226481336019002103207625039474856628536015625313117083590473041040580605405265752936593030702330772515205872940200509189636711815584326396563562332426422195921663595145326468414229951600244499194006107396283134419634631854463135772047579850398858789537834547432205373089385740422387459216202180849870659232291128083043435135652176862602216920880379068467424728969467156372780990690864876756019565487640764981240896480625522995602085485441841767103841357452485071161097930298303698475298728909411562077003097606056994754358002352818020449399059498244663428541575366879097138978136642809744920234023656834347202315300810202908712407498756288304729740556393601098838677141061326572663690809784211112643626921661733536225791192334162299315860304225104801440661326870708160894527026026058286938819200136203449761745541122278833333848510578970180075480189329247873123819642016447249229938055232012321742417175711663739577327639651559232453711609645003650788338470702461648305761080317626389128024892629610857598850345380770804083731250554896529367311577320365665332170561961778145206753661389323894201229867034036408900211020212085678171867497399043833080262470780442198857566416168467194201928875142073007495217567235965512719237275296295146999734908452067290694009416536033869323620357976770262661016762259761942099047264431356260988605409978445535840493695445908102951607830512260484843391463489794568637335081104978018888145129934842097901610009644111547945328166828369877274406169605094209882023161201262610704838281587071731244106290125736484084037342870711747189425405977831239420878661817456748589486159796212713384202864182476888055772181671888683622335189971452914279288839831622620020058089664869494544480479455300054208582193422024374147392464768284944572852910462317421681933708708254159695771231046311685396805735451651608982556341729106930981128384271610438763016344893104348690533607347094331737221944170975415196938953721273569113495865639890254301211971434444475972350650007268446841123954955152185524976800524592778363063819146785243749298823854366056542002773128767883825299306798430839447276151425764603122059214057576600230873738753458071041884383767077906723463331594750524330529267617123059620748758930149598046002460784641796114773896324010178027521766965861369778201444700986302592767369823988697924680846732517201095624530982767953734920308602580543001709353640932611362508910128294020789419691222333876136155721501868515466995994428005417673560061003276625265457405955188297068603747748055593558623399877767993355467430930303895404760620934855238755015918102272369665626176537259771994373548239726614401706482372938072553844751246926108016779934740554004069991240147047727866737754680136703580801471182076513963769458176392273584569788980753843467254993040667523563753935147507389961741019932781322995705785013075816316938149551273037788845554532113310018650974915839551041356381256474525873014869039870654658593575113137639677061355607912961860195306147406407358320660672085083531474120670985916816290007029736518020971029302693432497429733508550424596378308451399906570856332371671110572173251039297079055308846886259494654001544996488302044794454520236295665887540029933784596312908601102979125668976915651695644872966562422630070235168664238044257123149729672538047956157599149799566983923604937174005666951833734349654363088217724238288180914883177994526996364204935735012243578240370823656917792036891488644074449560302226496081582168773933597241519590832408774869359562455041090437132167123603667411317971793556955026693965500351731976557996226314530428806965137357337858282796514134487793824558232639155885793237017326833853989634120047053073308695579235741356715751413188086055778285911762461274809537874842295952303241039431253957304831801576433699180800494623544539962098355910930532187512072830090000244777992306598069364737982641583060689428430200461274968622762255353483933829667454940590991503450531717080749695149737060027480971596247635720192979682235413007324220860967585203228745739446831410204588564735830739926638477575425196705695266410887704241359944360845479143201467984127118343894705200700115066415798576105823861735685258750482821207033368291092050321626696881380848764911791752354706443921183263366344063522323760832482512664001744600648265994600514128420138219842086646766156904235642423743130026734377065413207327112776962668931048681286833199991709979408207756753689371457088725761887223258105509096478521045272757865030339828635203602387790028469496276030120787718314495242138931235620214959138216694242222224274947375912101993585260481213731661592227290344354115724533071729998466609977539278655091708535391237730035181065247765218296056145513359954633051778191595549507759382423738091514608623060253107198482225696476001849019266700640032468359854153165487931518302757680323910725292033971048910700527526587679275980665440608085825599401586721533570378948125637406887706966807171326044723674984127795146973193074097921199232294984567007321190806553668107592990404150724597418611553969514863709883705384515908886427726511719951358828407975460357779286358116037436783572981831572945593282132288092746944762245432872366213131990442458671930572803743619659498234335319643743438467606084286927156642542593097921718905229313727378031084569646162519192254244753665985216554916001014090907053382713369133737009882087136567124045501542248857355127938104914222179353127676958503640692524331790758315581147234799995655970698002979508882258510651309218737130450817250413904740410717093717793288385664957021280562667657041246404046233932550290978073866593866285428123649719416688486564339648450391364738546620518652148825392259432973284154440347755970154638029446602037586042704033138133107751083690516686259427025865167095628745263271185912233824099853620318884308480448110218877543370525484239761315761005133400701804748769844742023560533577318809316864526131196050337472053714021603094678716267878607893275765836532864592037572813370169377303016430837132210147636449861191179508367584276051358509122214575288688711194954276003096851082265027141056031523875834503046033801206549948855414571277581663419843115788737397820982247622597736775318876468553804654151845301176735593219295023517136489002371998545172140542585409611655634710738558449737059886729410428189143958057867060644848478878127774061196683118405604118435788818529348996338900078161947775385012305352983263387635114834004825765632264830899715355433031343969347834322999962040780509408254743784529898692115321959409414062894315860189699415025515645012637819142120940553438340197367707991243494441493763224713161591179309594798956739312636261613557567646222705390090236325784754610643244618595831112870069522446157588130824029923393522099038670377196613988986651420424473895259266471790444401706882110606856161064917195760351932988815406430602805276703529264132407251665890125031879260037004484582482196038944493035760156243054874337292633937699412615747222141809211077710366951804439594691130070723324427032785340598186047117581436317311970058043100237170039250377076219469935448423522277385158213943295777859473321925086361982313827415310424316778346764134180726076217821904906273771591746067606006061421443223564090510612685730099450993871968766516665950511624781092788650267530998839020322189607648079261952637069066759992166984435936734628770255638691898868732706287261611900888927046084873737435470837742828432203618444669442815460153697506944399582927280512892922379922475728822785645979349641859195077563890070542930578311401149282946155645733968169933621460177651857876661277034910459377644427610994870275341791799377629820462119940037703141032566336113426631538748793992245392610393929189021090829922144170668902721869607110277607100050931716909024582613552881890659308387971645022033097854062076207761637786302381167088243192640191594228301507946774585241135758288882524516086329566261317995378413025404871064078975221822001424398963021348542018067272769860768246051450157393374193364172189579823455612454872216827413591409933017165584563046323669881173975576614376310970439421473810231208506214282051746357464157436941319342124356467945447518862751012930406261602178419353831875318482084966180523887553275377820161422839706926259262998839356625461447207295705915010904022967622537155597399271419066468358748347285401711614861148288914563014629523572166325781118436538564749008191653678622243658288085433416969713742105217049860105948131576994366629397524468606395673397221919984188501740734241845250597305414353881231521435619140906171695559632875348322469003497382171553561096341648823618939558914432351909976946150099619105955450437778754187524215296111697943491730211884322002770766273491494825935576338424394244397868622989770621788020673206515407624675429970966654195261896781883627105776311018822318530388563507523675310248665387054983852541015468912782145028374851949653562073672869175881091883417140310683823898299545392908813643137774935407222358455375968622362678562119192281538669954300636477441031758221003319841319817716360012171505531392155737881814902513813249883806470872153645968638769832097231945870986750435520551875540176300050957735800860516715853159387674659130416896326369516040111987133271171012744552185857411845871624211552451779943079016919950852761828617885506533373191612052800339463599444118544139683266705805524015760095271511322258331433188009274356275257411228861858879721432516269709543386970331005922601349755997477245700811400628298130404299128953565777068154507833673585923934578296368367887328196565238902671108809330737179678013289994480297607406591863509842029438704347452257935168683214736396665632592362345623649323910035836225623438551375271619856981244884848938100254111062516593791341460164058003683537770347901019796205316552187102744335706259339690113895806773253219402646665173251775145741564941584145486307652290908336154283535903399910526788144913788835114337326193621160393123980464177478702101538270557112739617504305959165126086597017327831865783298762115488562541731914450403767091280172469273353553966965820980276287424746535589315517147981846440754813833041406198114353367248026753596698627278404180794146395270775660138460800709659366425905824062950696085864123531786200090370440427171574746786463555961547372862760899385500105736141318504556148827970260860715941711291064840608254239962257009175241400734390192436256990827688099845142526990107121791525233875555483785645481931049661380869924170071424222021500407479462247683068837560486693417119740356092113250078842014652732439728606521309288995167243514810548779619729144538401027139851041907175923855958058091514724168755178059413636687819555374986134457023042515150833647477584477639922860322864226144061628035731371789088952821118361882330995921116851908530790182939735377403125420069630429309939746099634025230227397512700817689987903590627631400872185674344968161436048396511377306411655039952524655636715809145181232799446926582151151595758331754847528924790262024413409957922960211657008622896143431433396265314241754169452795312198958686331422390688956700785815709481015673992199681467067599926421336715635470394112113881533794962695853102128089545504309132338194730191067374450538697086940080644462564873883230333348230592914363844504484794388314084939841608321532947547241570346283644666757895190690467440280074037680550471606106774335509800257817490429572925637336435591137446907977224918613287021203131940431901562718186002332155155882134558687898445137174725867880520880066298559459985274196581551921067311279195395884695878469687540551581087574832935887764805081548962429761890147370932785859819058750853767780291482709092202728655842408252325461313394329031689839149568637025001159209624408510666018154841815295014190759795736793460724353854750015891633187002294381107088855386988666667582762321936895949642518361504792242339329265171886006420863504053561603747303970517448838487728958731008267382047400087567274761250908465537736751407927544974189625042807386768065681447586525591705280485009052357508947181554821690143400875079513592995972122965545807828011694015470989233635241592750960626510716234766511709258751201984280404037853968035858080856467605899702530713172057471844759356951853316037296597714443399629822631600784703915688918334479058965142461188173650398085387127050796982160648302451862234684049327879048026578564875563989920098988359477002805082757072524540163914197836867356519501751372795885135820688424393604975023314005959245238060537449760188830443818871844393508414039523401591301420812062211970161713333337119925853743239395926179948509641951163242496247442217547836069813201105607077286419640079494713956718137393516173865261861995520960749716301052472660188045730243390801410801181970348558085374297855108350967847561830630971194625605016133440580558903698910297657386348872243585321326683923201133586574412479219467277774976264007792390739224636137519143695550024256352302634234416556029854419374543801807909354325663377946780314064716472748456002778136402954583968394799355545517481691927814983476397741807811497551800416732004440091439010934315147682858016897045097996790630679538183747050044297264997754426185073436360701960967848489579171305326343464466026950387895366952428997425426184455690731781058957270765758387299175927815727443081284554696898757281181263732722124865139058528167318432885988290339913287623744716504170860499578511650511995925278668547761558257075488350354951626195378452310924123943744546640670792537776934937034354415374977292163088478211064166658448492603460988162166384377522748643671514930388442440125265792509193164229278595728798004107870890286206505514169427035375310419156499362793513615909221235667496826565954089376736604626488114522821302525428199928057377828683991084071980390563597824943655522531106649966260375825854733140863711955684390555504546706348042769864592014584401890173761599576940782294936162485016567256675158998472220415015486299203052854754644220763801700638159150712552045390628822558330137558053413491645535174890263238758551688059886485685809144082559920441316628807193660908932888642279499237355295118994610187478623741181517274996033528838171400809602061523775005759068881747202321141832520572169771672409596616529466010913197089696607486905697645221268295338979944311772196987670977563134077793775776450629614700998954777758761874445572838187732799913921821093772949738882086608176461727220460607046282662950038310139990695223804895013594713551168959098165496296145358274158230417333845778539010009474465958985891961601778232865055086208773921635942951739262735125799624670264802113072763973247105638813799298740915798767324710814809855462585709738419675603077970252100647830737623190887580641279717606164496588758235695519520164256807216372441996963124607724559437364281899640984818945964816966524058328275121341338437794276255023132900431560642350093779145518008907284461750339036100796466775193722250579236557000175984889633726330942735615211870397243598055679050269868723307722485938954050595163428405595401089747904845644411025538704838101737532850751693616544925073311383135853956877132108643785239332677900922907920085708187929307038469998483320097319044367768742330175214405762732201873932126578671785623753129995420246312722560212053471605824416999956470547856733337545701514363605925970315675474463153040835992613733112772236990833276307500605465930209750529297518455544174134811202462286784301386088749682091088113115954550838128000088570927940554787671689730369022793843997453155564543766023939590535549716992675001101162402599105827032167568448601237348318626705201869801933078803671545992307024263775545441286358484694341181108159089602435019025818886148535160155880085204562790445566711931842584875785621789878004404689664012635970721726870728609368750271643543744713688918292171653644448669562325760335114146259609113602609376713702021187753303058895045463544126695904878539382435001821563841594060979569962284293134235291662278815235368165873713257660599557394664485965862930460768351929933078343245021822043440537618548549465967692495567055432464386731148625329665744801794887397107673200753961543071399005024764741746048161788980608668169107416414602697313591982800304227977986365238651675657542157379016172632725741947319869152363627826872460657439154219205253355472677444927018743844092044509652672092040049947163966052235295313873897661058174934162572303082231268599563445108663802826558151758364769236913804619015251715284821156377880936220765238777095368753097165075334050668325042627103669628664311688730145670797685450078883556033104490743870684071143522233320382777211919944106521110726593349289260147395926041451021851769977179210761925623665367083015686693178859248034580853754830472531103963828935590191927203201284666670275704733031812089730742134329386029620400273524377430540391047789771926938050886392190472594206736767513730202395009755074884824701759704833179938624429044195585059532429981710587310347169944786863415566353835430845225237125788057777321849017662281538254227641796391068441155668964119168174752765709775374696302293847300704343320628434269746332803634724907742431909907304523945923394803052887506193819737285888354958997839010320292329705087593092699824947412401065849484707386767382842254825300860222513973837414825928991911298265898584539838289288186670299129689426385728327769804614608669489496976730644845656778271347352666866747161328318487042929339868966321414274583941882812648223244840341500149731729408059144590220785451698154421015150266434782491334655254740737387220946889636849221510587422103477874262988729285010606820742997440115357047193691011070961968184424917399806236204085385708727493474731608579834811511108631112438890497626214722246580338904940531083651013017386508917050617133615530447691230756415868502160227938305529494575342578612730654290827288240174059215466850425852967608356070842926513443414817879283950422855518353289107010486885857529700257544489453297952450785681778509481359917906567405886929219406322135381736082505692792294039299599611250416721336076543224851884372229067139949327415090694179425945291876931203861498776444469294943133088421732048255677407994538709379497220785547114288962350240114743830917724690597454820858082001129599487224589698264980067537587325108045974801347514574384794202408426371600458076952110771416508887388677156165476158945597177980995774650859535498272888650203556588565002988755081111738204422496556035037707791057479747739442742978445588675111268418797915930138561781635071788094390938639330187022668671627582866710521762314945512031909317825007156935091173968907268530913800901379788903092456429899821548115680981993162353922907178086929689019293218744052671167470691971940418904475230376607743411147248241930472559227364340742500482178731465085302013122462793477333090476773622478355904089337927402088317658240061460141640638800200598480840123986324410656583608956306501695847347991155766368729554624448689034679452946494306169692410048372889159695360810954225787032437502544345505907976121929062086876175242107606395797442810429625778166820685811055888472886680962469287514420386563118609673102930113610053663949468592960365120308478545702587628032567837640355436846609994510692234922150704331442279100471173690655919337089419848512075700682024316303432537953120556906361466821433942941347241433871028646707754320885575220122966840949933849794147049336258219532335723164630517362408284232055918302317493331275242133185835730121664136387987826930358391302384711238777493492688560130631712578918261761592344748146442346002030526757442752550824353092810004546212410598259435157680009302167645300967958513853722021616119072249546323660378591573299839227106015468701813850814659817955161491799948393567343214821466236057988167353640140318864976908799764463465473017087726438907822711054589565575269886313228205818713532200360548786509058340923365497581728936678151538040815872205425872672501220453970202335982929053796792408692256331548558115556957391164335101608786303752314801590640065028886031785087069403615061042524874389883626547632508094108589962417571876669503533458821684552851985928857159515683500928058117936585971471806565302593547298381237878782956831134201002524604894808390635457206775986742916027698771480008870958951521461368440867330057126482613577705605118299082648143714789226189528700593974952582491807269389971514437791006522927627617984835742582502437871171633385844056111744839212299417615758869719572617102502703392280255967586442044058925924063826331020198617340032609551185122179141910938884913786168443612081508630143540002260711914765123087534243741415749042882703442480077828341339662621060478138448940843405385683336401117672669423811632460086769080939717320312395750776114311408666406373888455967067157990706717853596666153596363800189625961099666829961809311184957173666399209672817044495161547289097893870492998164448834050524418111305380246669899552307481107836301680014176864065705569052395951321599424396513340654717707724691491241636730799493516372088896574448543257762384992551402411829518350336734475136677930579545793308986222515985028978096354330273421749047004418452904378985423434790350132514534359919926281307354632495631228364879873647985891784091846870861029294820434366078519232309257651601395775863679654186484420505446628961511061706240815164967651789374910182621102615557462021931478032296249832108928160814657871429470711250898078285070940964165754797700702848425055778567831685836875312550409730064120597479952138539162716513364083788545289654519600966678821741817922254166001289163614749013869271516934470934483989540164842694397695012342999043218475694938799092391418291147269210186095868178061930680513461077757378591828885037987872596494651102123295289486880516698554095264171905518169215654391684939597856231948493180248552513725397560427705676040397567287594673298992398161793952772629551935343516218530502990690191504657917766520736182630428307320028496256517790038982646261922478117598553962384357059985221300583053389126931646856338982007148160547253806876071820309935682999585741273491967124822211749304346596230008030270358568272454238593292717086832293081592870074368615426255044845327458316703710060892109387262841402956097449624795154596012384996492524865966471120319095319293674458485750968628437538056660849124829610225633965308611390533372619979524143544693997389140815818501449195979532105336095098302323673157009450894376802761895287297448082685862123060363162905544858426049338358909947216088828193051820514804879237289776618648138478862727826358302224969293955521251982829821824334130559418606439556697227938678682637668381348917042578860624409065036185184975872951892934474705636833139581596667140897043403566668822819181834236772276796287676984487694721326372654133627892673953983281414082610243878312616731670154417873862753824034223025057906627354248936390754644864780803667182088262320176117170468249646545836396194388946688339701220484065167960051161908688458217234174848493332117874657101317232082645820017724536498063136357053408256312949405990099342869974404667997310702606091582719347773837488483021726786040656242568998265674757074863653555934693020189342940926873865455213224079941560720959327110000196048587284318126750846301259126972306124742175991737775127296373770140370714285927127402924969312530165012138682093878231500842945470951782118137073202395859691695303368696412788057540372129668027029300897312717525763966869725544821639169961303725529249570857216042949004616830182306981638850607287757097224166813941327774452760316731871032142964196775992592702974016945983212669676706215518306132449222289481249965978704715124392757476868073368441487905458733683388005535435381582880133859981181751542720171133286224430026083668338336776743979627514792593295955779517494807234683202207131974197202300227936154201013495838892120237081843838077197169754693826421053161338903254798954630101878323998520895455295355436002486366566326768856896360092927664311033021670708278014363857079176770251164508923796199126042067787555602418147074778553730037936731857190542796760017914295062549371353086453223671270457373316330588408944755982023444695464180929457648804686287232366306401314751737467678381763478031173048358127384820530884823157009806221099628929557340388150960763038026198500499033443690707752745974842804932436064071753999646426190591583153786710002360542903213197837215700087665148410119402464845633450697600899155687124544129081607987490224853093228920351597913713798105417938536365117919889085458617747549640986214603929109849046485190909064972937911488893191371130527782747240083184978571119158266598751198211983458142757790922894417790550572767116641494170723892087278348711441068498731119481326310912577185274429275567608271561842173457110835504984793279030021644232405146705745135245645867762933701675089062948853311818258105979592047166928296066138015441009172916601663330641882998818075530855805158553391223369424221253747608098013956145668545757430164630213607320124977073590852436544248823587932275987053261952072000607035784432997880437997055555808478980107339817535188581507771884767123626938634542331478622809954691323842638023947266267038749787121700058126696267452965445769135246011976192954833500492923799720025241837950059034354555618436956113074338616922846376149160920819263533699025203177737232274384233857166272588358290427281741578468811313148087043653241021793922303475413753787241005278116277642471201695457889711872225294905185852576354965344552519490140538551575130352861419476256636267743833416022360588535989529824143393356576388513082387457600004602389739718286134714438662389866308789708379132241428669021067768731325759428552676200392447577051376735965893185505856663443519499638627422789809184890176043201240728380594425304315357216014436380448171156438797291777257658646488294117417205315811470108827845241825626630910368895618595821248076083509166891467777281468329342097985770719302111220933673927496453192003691671568364315722913483492857283849350058641952565504042348199590009273560254220627786051426180035868540460963473471271802613060286440456692300954469137061258976652367117778641477091003987974550246948471123483702937466102208486377689893150126406754295014506614210627535524111954799022293575391007207423124638018942385431748195740522926930219259556688508203930727702303209407380354717899986010874392924501524966877451869642023477439575682575274109361702714332176620443109724470678815168023956087780112007304563995993282300223869314780518840845773185890384031690256597027869829774401679265634830372710794723335053893190762526876521965687120227283690000658413963759070270078452483859827368837476905977308839022215503945166740473863675248388946072935606503032282007070363858498525486138860869436611955954353053175571339082997385479849556791426275325151368979996196753046526271373222457250799240806544768285271934857034960487878592020001451296260851058228264487955498706136349469343819222459252614251868544508860235576687597454421166751381138291142282653428556522950494542503765690074450554865999407618244784075033085190715964374758037471963063049538407772762584981053561489838990259965147147637660670680544611580060553927707940921503306368493830235782224354789686070244122921260871934565818322812589136162660652744888128974965598889374594492937380465005540817479797351817267929274346922310751321215755593006904323719910416277580082090123898723352173659173685801031267406941605471099515939137451027394829296974263111576380039865564975727719137870781505833928369063187502079888210261428632126053518720295334090918170262571618795724627429985182437689125415253236847641318717848711953696707116016281650803970952263278461577306819728676695636137930260225810334840370326156738067965610867768928596444892123366068118520943013978810969973350798997991904289346268350735300723312860399532305867494936361348929316003709414311097616149366578859996171152821068388416289892251644957833598609128040207593905122137806285775287304791898524075953919619453287060800669472850595137779550532687790031444055053606038895912997841334049582327739571254325393902422526704040983932333710197081683434878999099663155053739083636286271281875419667598037464288682827197043874264120383706638916174760843101483536825665039991257057272369703676545565999817342672255295441391548236374216568878518640279394318700096068605932324327902124676754668482565282888119703436005563986089861486677333177551544705730427052008491383834409629439150260018168920062805271608355329108763254258259563257547040081361552909061214346781718415377458626340853036422334417106973709947449557115670613103159055303948713887065136002328941624285797181271255681858534373292667342161330119815884250295059542629114504969341440267106120573699816467549140913735138597163309458975730963555146761484407820628822191360175347866753324195808663629882765015249617143780091882409229756462824199234869596168156321003425272778664738100181507711578055746912563540004438773013940054083511658209023245700430232477745619206215468581599612616272850553931539828349548479019944932079178264387535047772687853809815348310103144254782574231839730457360201613384364341454138454313137937182546659551698037455864252812661446468043893576460761209461553504834882560016032516465320083500977871138495456611811777426785455263413795900897718638954137040195686894791478072980867808701275682672696338051290192108179177636417980540321493654070850796534908019346854535280704755060241935988873194839268078684525502753665464282030006384812250603616423564232788404427040228949782289999847801499633875809389847405664361151952281546068168226552498325180170431356561819403045477553869799366412566468741861377934089671313575577383570112920535014557576376184601784713893126605009577826605712613013049507139048235837532571238929707014944964482173099877367749070467852659857546750881016680254608283241073799005464084933650256259983195594047633785763352857543152120606392589614706536400320846542007682856448179375198714636294302036152189521603239971461555240658620405209372982902865676547152701343518727268543823861606101472001334036536787389998329149927825745387596756659303047686796236566571689254008309641532319760894488488320027433650122643920660211105961474125698294374251485075458043702153865941205385995947010234344856788199200150732316136776434886025447273848425545017132557056618157494488413068692821608508004888071016829080437558826962073894039530750351393384146986193317423279735543704763665767604570998436396084220593902033685731668591782692856015436927975245808293271988188073594519680609834674913178143795942537918374282163619311802881904411446851275773260983481225119364637338832757550128000436153821657289715122316533504092912631554993425542961390294878962480811454625661947234217960770095887122056116362604467833428926010095984144861202392076541740245602517059092403252988498690148119304623732861814659146186703216370848148837064001891050279251166023594819947612459000964700673875482856616751838176586952148404393222884031116368072311774363421969475930737368262106415475703095636690284832029007334550122289440495153927928114791365270482727156783342458099920299779134389973746321098720866926694017784062294167927278075702868273062582618223870652503840719426328311204859993265451423562404681419223841242733737254222667610990521394872387705542562367341646323626918230876917420053851083570810094279206076901504060419139439855587693776354826066388459400268774952616864948573673154662253867474476445245414408467786321712323247876654328632354470436712202336388946894406383892853006195281752626746151774097819152566334056593631906342293933811490185149553262893181986831640336960079088879388605045809206394633113655032660159874078936846310247742165471922539358171327791953058994152175749072090951815409459735247697085017045057162175358743260347989786901180024574062628329030407819857949863459737266865981505264726779759257879014022525510610909473422140343305790060433490816188049277173674475645384048204289906992317212453263619990329983740250339596683514533399328613365429348194449288123953338445372974937510472506356740351633164311293888809797673988323179139121642713413067988895163324377215222081640456474796086779712408511772276645532853358715404276219090121983496042794273695545414257311104322790199576209718891539439814837474219188587882650903279444570072530852766740415514444503568734936405998323056946458672413685905596749177858323023255084617993827770217909400021567447372454689649204459357160554603176002281873886518831211965849264418758693822201041998678812988744816988815883235875145952422966503465911578654833664214576294858926398281927373284348726704448367901616437763038585091960702851586018186716799000144562402683639902590854470753275637822127083844146578064486639219944329629416495996111586118542091340538366459541936984426367140856828072660134361628644279447872349330157250535603940030174638027483077102690535297516943316643778657239481722357452417153812081124304835457827355651562690001776683885325932388456127938449844527544296653885750322767891560433255833521273076685949703057448176924816870809136607630852408278859727931553171222045613080731385906546796438823711817856253383766840040589421120676679992927926374287168977013548583978774869575102369632821492996327230392402778728613531834633094714962509845989864618001783889306455260873385871179573236228677302502899711613755734840402449580124098967257544415411645272233171964400199668479788668002958537271111697043450701658888689080102721559274034550957213923676625677911848164584759243081488003849817711062551243094736099234812696640451678864615772161771781176130520351515757960166593728831833963654928012935110758018986613937399959148160191426547058910126375130732952460079982442431923624803451444562995716433189240434939809592993168324033723549597452215136866186384601747587817102972681608561811469971591779589650704030079066395240493299267123249227934148838115242649429488354185650354992504371362548252905800586533684429338069748777648056411001466139459646615569691023171285758391104603322509387445107825696252674948673281883641215876931864783324954288855454316746150710049231477016131209945290328296650633890083453141086789306547494154685263193084880771988127028233000468488369078131189505638442248532791882981674868734232591271588499071171666594647830785705431529556987689784446622222959117526250605418797633328301482312152746859035628525072015702741740687248867042869911821045976809430738455023559681030118300456076808790493309473033863445897215823922128072218082266264340981834831421243575045108074089109180819887950247113446115386038049003178168585903644819825547959071625063966344786420709724307023866681183965750866448087846219080493663301717628904944869247721582922707103741521938019281976049440586928462442753622507759482170383086694365424617977911017335060916368123987293546188043238725523303893970379491936324093158361949530994845950559187165411808314822256419076104690624355108929577233434765692609057268186575326203793756874305225859019043877734059313246732189604059352951921746419739394404881889766538654186342533821092418268072297416731340089549610855858077532026917425574874044108206908415446888648745198852887706136078294777503074836087962398343209395943398730960224719254362469109023137775065393080399020122858344093940844619834875995337635614409707117874373099190661222332467741004848589095043145678629178875866135071629336593626108128555138745028999695345576054622988675704088150348429392561955410296456774810384408521430115441898271353279663733120469089294152954611904960656911721950359566950138639729037998965808843904834239221129944908934764778962156635247981900540861099827820090713999526350494476766732314755697079688140156576402354856090505818564242767672187746992731046512350366945269426140429563632216409710389885001379884059758259808547360534302812565993421596165269060612300882579931264777796994971999136520062439986845864700340231346631179902044664440019606507074025676647469422884350111094679330934215714168148622449791263821161279795702761553477879995825359034347296513747538680262077288221521039552602127491113798581491141128608794747316488629780872359476934739006360382327382274189741301000489271451749102513270188592536076839980945116710803406598321722555812541680274227949143552698325927634015311974418384953240619721508949244563656035589567295943854696596681048472998942687193244489155404507894273739741949836401341411625489840281057159359046351563764792756779111994520270391075726313061669113184429560321359944189249746148225062526863183968938141619266294881151285151692686701751309114450366449647723086053570687151983036701509514550829664373671714507409341853200416788749666086721394499050042123750184374509321743151993443626006864594545924807846890547552583440949776634084704251510163159207990645774899180932879051736677708461130479659504255534353408345344744802179172656564178072705118315746369009971744157939851231912264063838887418004786342325139843391133824609929273408054138708729765400105640453897177101757583019051660975530994264957222329869394582637108153705735778194497341892801276535534702361969892160810613528446543133077914103004158890362377364773998388325434551035601305055111036321872362284688085647308449147632129398419315020805320259969935410999820506945390956041559492252486487925338676802697466783556704541168020883109784067281795161073542670704152998902132771247768077400711034338345718551877220567560317833668111606747894083114359793577463315258224501375299110796938170596761270625483008575323429737668374059081600171538952909631826530309520786800645805773675272340913344228642594762377714509196743623739740184613030308838961437099908119630148868546432296583956133332538905670149092815444502122901853114256202640459009545170851814294127117704649213000375168263526079704716336325677295464607841324396382394837084942463738729203450171273417428953857549877770599659179576841444824598861882906981533690352671426983940009141415496511006395395407224491276953473934885311114156497352322832267902222269026381528843205252348980512686942134541825225500812861610359117006438884592807110465014693259877563805055885145102556532845930155990579721944457665023605526413450618580826950272675529575295430229901224594946282471787613051986151956148303178914350503822888067209459677909137977029406178380093131940062712735327290543307403770765902991091783747365726514340198684112164435366162997454067160573523994298578586424679783734077145259162293016120058058439403914640775445997925384461623585460253774099069751491123576677569575811979328598463096637483135415905491663646599874257355559066933409510449966358318161886481217334948162103869807976619613207430038742790021207227822943172054400187926117995595100718725878702443295968071458326361489802608444178804708592555591238105031923315301575531563782657746506619717005073767415301339784291574911121692450756162566545542531059419589870642870051320982600193621825337085334822690490663056428176681244496950728876657941829786006691885250090316897610933789237669952439188634021448558440213670806285018692788794599751757476525251386127976917408366832206811855719402932423500658854637274088712266522599922708616712466539040370029685286520273492646786701047845457228887631466949585141529238761167526396851684695995653595999619025957232054343004170486145110453892384222765864374667856043951402313106163549816232750811506081343572696174785175487506723562237375061270527426589654297264866957611931328402946201001304283007861679154762924905726620229070485344343779452922722547305513742656837527486308511399726448028513527912830383039086194368274051698564478152093176778861736968950362874365094770951956699531269025168550012224992329107555494746268004822269852580754455711821172891679850042522154012645721444407426413882197116276527728831841840459953649395372607046751643901023565933652293472240564663780994204547460790469556008126191921297656362384442624512893575234029013962684069497042869838877278366540849643464928392720364898455272583575771498591924311763434381579101719849529015671003965557360262455420783500326003647568105978983044163946201053657946668706662261284000318917273823378420683209592224121467428786008307065995785376603058065554141617304560000365609655247764230949013448119828554072806569774923093292219318924471810929313080850587829972778957016122349827077641014706269892276593656578440100354239929394139288623602530731031049967028028064498892635159847129223075290319850130703786146288618837376641809144095628514826316203403749288976059244558840795405809250611782453054602734304507734708139497521982228915993252982209960284557045293149506744382984983711103778989166176698738939858832169508992630329828506427224724622309812178779551238965155300385816325702061078123739440892599548536033118789271656198185463843826281712935727801903673888697244655520743628388448612938465789187753251342468436195575734107984202685902159359204250814411282825410239020418430326173118134479250027402951170418939785781435691918252858164079600594276457203818955265483033981693694623992992150381338735732317716732753972133923003957187387101959133067779920679263764649908462545587074521615220161550828126345990202404149623767588763143250306040434322497013383955275561138212681673684536375475795450581181204775756515585522829113684805182210238711940293046882114066763030986604518573378938926399766133710976435844769447215712645279846718763067278665511659728087790829737329910409468937280387156900760645191866641769225640353424753579822638288663276237640200139807843931752325500120713817222577710817889303799723244911931067238902201266870954422770855714849188027939980394626325979701042391655188887838103345378629451611570364240631070230336736636429967308012897008547879083985270151765906838885467641387924454912787714571094962105911286798558568099999744757168645979328440926851955022760742605934670306117240089824624043386808460092351464663641794902838513255839697733503236198481633430630571336250525306066371045719318122720854210094993091769097127223941361325505028605463826409442762132275411677177603714153309939185584831845967985828578200380919250020859335210663471910001378112958149533514225725184071096659017352373663232346371843908405065072114663133453921581648959591718323081174371220671092069184367681336609175363253564192164056099436408058634262003227800794183900178580623978813812762839431852071763136265201600187514950136858314941509953740467147902892244419273934003445902453764700580682905845165725063129560800824570299796993408258311746451123843467411193353017450265277935205499978999470141269416718415618290628702337548987181603816106123558812917745449641802376547006684780190735333449568568650886061800572243900879130106838758134379754196744868689582267954395737057206566040062951759707610339720252096429811941141838380358500655086868391709209564650549296739754834175295676512026363746731908967023425663911607094208017228504028788436210474031479756306992138732069855631151588039025193511554008221070189102848471602528009392707884792469847735925410351625674518965451832334766848102102996029411874582545157705321911899350396942737209581197203405045313383248634760007123904097212860648587970520572437366575444819199384987307485168552876386020813471446113550008775825618352166477785413194369323823375382746086828422692746078575601066379873029985757687929759425725303508976773389134962350205995820736449414272753917378200137641083399366774301252191620477429052992873421787398332967381208559482540207694966118390550088732711090480902893611867244568202084364515835129808411528141765528677976354070808612194479508352634890221238588836186125867844830396483147534903579481659326444720298628589548557565541204160155897132597895570513477988136307171045162784870083577020193641400036404275966691502488202228111270323881438056608801011856423806611001072892791387447552776281034196556289447024993204429923050493024744635970676495113425768772684416091761923610482196556100836863871368741436966130146728699273514982670351206374570556076551189167183680688288697436857361725788928317054820298473629074473117347626249341378411711908838173574300005585240712746444557844630352414346448172153419029265946938441094928323296283781648097254283926229404995150194390335239242636131463927191063379456560060774492308584294722793287655731817106947903348895280498615503032075452473033162567967484160773306331952579131152678152664248343277148071363429093262941504850241623013653935696377418323282692012550226752804447860615338990790622727482895027058945724062240473802596040304835165913579867582153905035305946335938976674641525833274266736811418685687518520154481456199327830134062653282943202903830658267695144571522603017028978309048430785209291980798868284452616304542898881256945409226628649001067243216416731257269062359162607346329318934885733352856656980562270898158580193406248102612350037917286592501580720969527978847342801535322885484932322893711383432038087134409814454710624643989040068349365962903210816539328340653832782481373226057895991390513697134564550058209935176168802570505952932767407465400770482301189670280935870159731601231184346508844907014911531432297777334346938757408940889909276502234464596937017764494884646625078187102858512123436818430486326583449816370848581917648720994054934966418443722164931057256697927265876283565026639582605511523956556108334056555153618298869457709893235187384184522313418023222267401301531990505866616962784166934300380842481933552962150170884594373957559112496763280830856633143533769033395497229240875790201035318771003561038792296190129086486603505221041682579841395198026199331929398990517340581958657978391686641500304226244070671287997968992506589023182723268787027215888609637788719167933539991550235917364487926253325779413103231836520495803046468002314487623955503695749842370043258052029809306878300674922386037820496139111222392047228857152292658818045958848791369192796994040949109012656603987713777591228881119615178883078377275158047953599244249647163863673061823213773598308501618925729536489466798947326117130268650029595620496030528815473267267808104564821678922738435186329658278487685146376840121579604295931592402965590615433577702326288215549865596919335076939057923088738718019246085415438783151481718141552284670016798728127572631643927333766958216117940363165041180948843875062738035293270188575897372230073452181750306905258117691318798944749347186163684784281846814937585123548442114369955276810261387741774873036293652404048642861628121880600001873117187285688271149423482430976562665487858834602964683798547507155699895613590715853921767382488219286511566018661480912524678317728731210332203383270382263432527447623326099497996832320125560387474392043849420731102034183844254082487420706838603160453675585739884985913101987808565316827686332126878962735587070154399713371557229617707555580926920078232871897870165317728203889934358153946876961164830665265333443313877533433231842165289976834092093989128393708333127951149351752725560765326141001524045480739768007931877344832107342937990115353469860658063546577847283632654057922135231807442082961927037130017186791554401150626723740210446190454964852231727429360767715165262401208049063060137782230004689545677923151837529848766015767074644927097775368764792557321464515679300108402691100534836851729962783770907183508556446028591776659496396787015373757791340716092779650990835965266248949227082799010162010522230052625282466791592067471825528266418009260333338865581448652707645460300093756818766258805181479851709073424495094696003439019190367392508609582497916790396691976908107053383147269229929238305079638896418717173054098153490380025378788794774802036975607558365492751331733787486541732910427952892795032262424723673637284194945553712154956469161421275251487661146343231449238969631870488283195737275799626393874353932317269935287274946324499607152407269000173108369679355600204996595711486120832093325459512224144164752745691130781948398201611923466281263260795337409880864176063679755438721063808318651196191341402171267553599855368056008309210100091690083319823115747903315852630175232897846517158822586061001320946326765538938936591866609997443325805637869554175724611146536031625571020562165676759248576689052158079577150552327866945202833786416461060271827390608735981237810507272784209102996194191454877220986837692222100232218567107770688210421043621495185093897575280712259536619660475959251950203306515801907377468304354920608715764321436799246047059166317566920080379613182504348197884752430982410716713332216527947355711791446019650178331076845317662249555067127926242937588808144153339466253865825358310432913657500084472710118170441235067964079837987150053329377760870677866393624449468121731802611504771166090734427987221568874115408928701076253881351692425461661357992207675670445121810280581818715482269568280792059031286221382306953939078742085625527924996886401322215951555121860326274589099698979116379745356553749622780767282924521130191775329532793721604398985980530289396795841991897032837540532053566290011722927794779206568671873458377051479453190815529728117182231754018279365088826180217973818018948225164859904928591425060643571720413368982776505177229258915827445500013089881992817317201830728816269848750412182322973420371384265602045578452254053246588035527620217538859131081467511853754147255903250330842057218807128489548820039510202785186459547417183279688421842880705975379365748561785005053612877659668754684698447321478748807871592327412245573033353583166129899574016708557130362166821113878734701610553764949302092923057867175681523451289954410781503355335509607983688361817777140535324379225779766394082747674762910701422062165476137015843629239576536039605121311515944221501570284854414943144729308106801249564511498121621019488366199004742678012590663910739659961675548082095982040627982797611289216807932082849462595990954446206865235096964622653109691245527449626913134693349230624931174467733702788260100298130410919312709371841046761566048301996555891698693899043690600191114387064273043514034691063726629127185544841950085408885032668765206600940260838175533365787868752005199721395092112489435186799706699886860131440033543985038678704358873043260546457257019698029870052447459976680026136065452033951515335598323712124581071144505507723138649379336441653880198564227208587494786953909998780298412799504116817554178533120013127913138906410790842799652832119189448094068592843966534332116870898141462792203920622560892115097118443457400519718800832925195765894193593949666242905690342659332032536136081863941605554431652950477305153723524159384067836255481303985689469132976769810943655880514720975661413661057950209137812853605881984831211664520884724106254588517539856980262677389725344060294195754819231496717731729360442444515391723481651611906906008250823306353750852664896635163443672698677319399464470800020275948017480480032856379313635665040488962112650874947767974883528030949509139153861683160552576831630506778818147063814307452947516644728590200263643871377743591116244910749179471145832302072659257812964739439370169048262395104384011910047864480675890387266404640660919740156628178641961250226498751239676267940734149388579085279141967710797326957320593475237754680755029298043485595319179279491744348711741260638291783387853242411844553130118518506982292748944404183516298347954429953973451767024781014120809654598214584028400884176548802695135064006946259848327068417350979151617379021986268852146782119792017429364798468946034656242102259089262255798315026117025254826151017106994322768472197813309207755422343815110083138212670890199385954786786182905400454130797700734422415708696089385900259022009134820763138310080119679509084358033966782754599367438181743495604811975692649301489758158344764468218917888986256544415399323079675888399576506248805798875601985002421780768902196691668992583682260187660579383235385159200512670616922251492814864535823991273027854878935977574119726053657226803679048198997798023116038093777218367304917804863838108762197103255639201968772345086567288521542679821932893353219872569734296545399054684942081027074184338431595281994990976251350071319153571387616354058969928934923257146350562407353584675809780117528382949415773290765978661825585202673349265053802235402236151931598864318398043423040073847021920156411533137278659309908910281204282607510664834452821032040135891216465316632554733031071953763542818678436079447505092931913559484155290459773199014675271324663281093594976955244641392458220067297164343968816790681181755817265647728936511665352196673622060730543196521802887694846314088464528929189797729277273798784722573551685211005870293261255638217426766074262918899622655581361568226899118549756096999106934092687859785730371208555637907122112207965643248045799290050363371776364818684562267555285510014773648780470712854990579506449045257611441887752717666096035016632538120342102063291192252178318355851950840154423686676062921355573002450359814899721403927653265415650784725878503352910241659637022062086489320148442520132933531284390018315722406667317380357267608718119525860025172710140560448822467761942784801306210100422777238282095574455015655138354967423807513135637347332691650094551521735782976501465997211516888742264611062782530193653541741565404943993241895915100289103116335717617192658002541802664061633743278371999434714154685560404334231436420612181872757942608365251833009142848712593792386707796568238663510613964029819483659871607620473076027973728663628415495331151647172193830235590254255235488309354417689552748186866293889612928334153114376555797433013344661048067696374138417928812096755192599092591282904970094226366694310663305380454812754368523964682985403607147753399014922568201595650105260200674575984902388338564335425882364337314804566249741925286214810238838392419184642005955615903085392489211464314687228828773498076311959455938749656276946907062039174067106219626792691497390739461384310972885733830221432279056413644971068540516249869166461929055878527907933554781270662898533740517981605297707684450363171139375580752948528768619046171470651193220646181469941707255684512030002643970387992955683453003253317868374319045404678327970515603754122637191343458864206675643046542913697369777766896938697621525172007009996323539672453515075911010905766892846186814212629164314207735893418859676074616513159158993031894076503277213982315746100898779952609720417112216978441319185264067043690043719111622286918793583885433528945676063328756853887500713045481431849629054014788437342792056378912492597708972723295987348199642530090566413973123587898494073741341425848348350778939690281485585454838552361268339596396949703091026702301537673892802653072506258858524486064321887393913315180966570624473097106287162413919332960051566253209170875386144678969301079239304419152320042528460920330367555481031711684798554983810943885446335023339127432710487779620866364452300841150396053570890923481494805983796038444361599250362663966528369933528487901010698849472844137223763952573614929421800272060702659907394054896821343838181624649235783938160477828331035121785318585357685874879209920801319037720377346164416492810854610603909313832686151476086983492815048817162242479022659146765371439655798588561754218181758812267640724950174307570064608704419741127008649076248683719329933149504188133582877393170464268422077130260691494551677999002849752361178610682685062432151337385695801806678776774639931211613088566348949801582545978209907514592919805459285959148657995579171870403275999210954471399485503050169100095109868011392088556567164988504620124920062112989435605946321743980223132916944324391247125651815102436352384257616818472561624726580789039776566488515521907688444615113533096599228777025376824386015838783474560186885128788548366521099548454531406202490995487056716989952076812359278036889570626720406064237448908164847031238067541504093029578137224380047066221900061787281265364986869904849493691157349653983413828721270585348882782477411778187502397657729622899450629300625341200192132970101835140320149799731495025845532372562286347595083816751609145157576805127639670190087930801638665391440725233125913593582761363798297161643438573827879245516796286021375467630220527521095284440398248208812135191468767078668772126039564400145304909021723519487956906848437707234788053517506789309690787740409626831847710176929296799859461683041481130894370226045461305861071564805456613904532505038911998393178781666993826887449413525021988503437663554296898627678005077593192531915824171201704220545136181633031001950772775584304409510553068299718418167733180352335011345905661257265764310311626510122607799386123594011198331368475488778946528550929662616461296763423441108113154646903902255076354249285871852555097932172849979322831147905334418934034481663762301377651079136601280909315986057289971980967194008898473355666463099126229347605733139574997949974751398716035001930364966433431421367304101654588033826563602056555995834862855140946456997488763477582517091042855977339125837453605680510027079307930212181502697083239825004522672513803482821876857861231249134258141782277023277866320171549826732537727517788207620137271324742409898676903577767278421431508578156898513608799289330020950495732783275629208706429195360633766556686757866557302642673139174290969520482428952936566752811268339054942031849690151112903679322007725696032618333263315417535688974534577340558758600475621053508402526768161591509192871041404317557970489893879653028332370892068011624922657310714789722432795331784596907359793978248832904881996350677961723257064523789165810797044078764481551186034542971240573907803128255695643116826709079848488664551809450699530269980414646730952741786156532378635546428979480481681111251530516450137776151451873296329380300795127042284274679927682078709800980059240019169772289538484932281708894537746121649127767026972191216911075236590767401180076047309866272824777052010445735021607884869560351802076056008201551493223694928925995235237072422717207770702915713310645042964992906889278288708400082607672167040964648045119129431172996542160994959244642476286704253395276494694569254672163104444855638990446502158936711277179752391012717630869642388943072054389947819409462274550715221470605880618284846564366552978778498722119439020545579745445855098380432419838283972283415886160992142409544426781672977949585369693375487250550073617645321000938106728289382380554650126769689953108320702459196947559139808047095945521111992129773005949354065994534494655761034267031053837907212243304788590650523221370524200470482788885216694684078139039745276911158780218448139429980180470936172778160297914731668800700518075271929032429416547467524857103532850368776793497598874860410755942121968238554841588476162466366490898981673416948612211125172173066210624678169088926703150478841839978033366046990325661652774143895447672022743334036667136600223445503807917253464921069801383096786555013277978283084135606899083653245202625505594083860690911620813392797714539332414650567658272850215472579252392407112927544658906752971171783130650118030860957493435606059462722032755079966933554088723427085369653723038587775773513282063404759914235143370053471483891579667259477023897032212789098123479492471834303147958295979839195274896993366670225113149505869737544696092581875716416692759208645057897072935889824611947926549134003526811057451410804278783212228090500906161860687763413235171023441071951471029994429288446198277270285984314699619707694423118927420893186384664295110575637385489919829174561954811441880485139824268015181935250800568391012842989222475356598728492091748395443529357709749019379309196598629033811266291644129893486898983214509008992695347715184134529617422944854096083625984706656884907906623624355093475403268845627981408535738607146469021588269266419459782588469370454586070648497999081285938253424072356816236019395496787733415819232273497487145997261775129891280021795774306219042247917797791949931883218626828263741766649661021000834606270485791172002733166995039133031461233960962249929084576061325828268346626003267414370226089802981611721436384174079047746640568188995492168471179861964518105224848223116949155434193165605544599693045765963579942654092254471141924488612846344210796107606590432470388737287785161171096423557230345078915682647101543314370492123325540079951319406891746501006097201139797489411712198532199746487696264669117083329092864306220845743322029939714300133285561014667624340240718471290038480451442826055948583780477906768789926972876674952709031475345222676543584220086999143861057070271835147713410976244708019564833789639105188991831662552395753428316126053982603996514016216224396228295320430396956460023798718353374722621888732171475099932565931014443642821815027027587636162187426003389777343485073872024165260104468792196773527801673611893545799021975876019920689271473985080642184095036589051165586047469669209274239155223863757692212168999718669900723601523498034222703503453931509595554348310528586410834971121089358403863765927514267651569676094790722083308826985714895122334040660777754792962390842744942912446839313767258546133493539931585515429480329506783270972427942042767503488352495404207159411360664526730447542646030199317088298339182467333442831632369289622612607835782872335604429926857543903035350389244015967966384996348042188130049457290383871128376693581662966214387582100119829743877719402550980491766961761898179518085309769710987920064213432476086245398488067369998568645422138579726400846820448386828387957602692500731956617580941980644585613049855267250858267650672177304052522188288119500119940336517718453821755738076195415964335902341555267216179038583244759971242293842000803909950857655090327768972479945138561323469242797571972402185582275068594403291170760017021188988997405855377612637320930351994893401799604348878746421131357618468166135500285173169091357906283103308963514591794560119265160868126773484700563105588392381875113362188810145883556423598832298526818465599491460154173509665873111620707597555209602200783353475099287874637270530052461800679561985859806429001856402018321831351992337635129050914360468094304712028099042930823178401097642514433386750988965612125830076654755192281310058613466791288923435198703159194076530550256313954726759732346075694688465492887073127773081642619346008370270146862347736924140923574770904762807017039251514690629106444949813487738433860214502546140496621753703828411601820654766498295859179586745930387680561574128527720679473716060489267004026763880577911180887447708974533648352889158219575345038272979278334436388851688909158668425935696606115308075951257584126834362125119523155142027892206913991385912464785794175343469857773488174835948191004497438316586302839559908803868808773056661752849537290866730031675894897381263779828196602382762849984120548115605741915571026337647561850189362677548389021931656252360951964343998062252229679875225244711134379822567221447508507139073070062166524187555950310440777492792040090009983019345803530846510336619428659472914096362580328608668467591566329135982613041812882328684889263989292950811875671885277314356063501989533869734695844718801899825248786955339269671655511124630993893422405024048125210423657029644447171713631459224891531730874132915212093753131062650160207143309896835195596101649525457710462960175023718936358457556179551555654546453615111329048589905255490969097012244744082736929317351119800884152384526699192544229681481995088830853623551420787631354908136793057982010890560733811475520619277690440329067821893371432879654048362245746990215616782294842107446934101386203631415367746986413674954286851330304087929397894090768885507720663159112289969312350233637310974314756316780367397384017653001450497941345646867959927364377609949040151014818461749551061662547165955517736247990950869513034604836516689077868079237750773181423253869133231420234888437972820477254389657675728276242540777810649392445258127692695584309911112437283551013733007356914628590112268905593679281916973637607197200491732160865909105128885352305927942961459328403858410593834746360123599536036681505857250426302739566307369769556827870459237771395346557648935603224341945268498292497229443431108069962889995431177377270792964958612396941613676984868378391539043026314955433899967310634510197386242286012650818955229613245803680071017140229905531708525687371721998368047433026214038777986055256707150192460544513698544654479844202649403450585137311204266993594290582321175657043747946556592465506754200414387027514195541516325432346055689877288009033111514353441434544610648833026638504904453202392905536087405216794096890177190382891659269491461791315804148108315116093678897016178401880053490742068935432925553980348301827298217206125704761311117631726902437850117379675534109738930404063922715238652491416266051795389913204396054805224642565151083920772567570363847204594241277664098802058133400800175029123277718264182520317351063019656061855807751442058873686392172781042131095330874224697404467800092032573651465062869141020939594995038589197643410194864046873720152599557296953481446299854723808892372825007309576419880219594044152094599548926534746489502784066512786621596165801731738389165068640316957183057611384779189382595207019480047469938456871451412574069704842301078027769339313295821428021885395728923682640005045203914540628567306345574619774876655836953326322151039825296993700952860721606862216830608730613529410574746814788669513029481534663785417977828951214926963123150304021723645579785006986686055241036101350830321190212530823799304489401330277511282715857449386613236313789645214797086921175167034891451833797499938045565545298726209319824936891942105314038492495759000998712347497083788362991926869489195947137918320085402775261069590412402894761213005641134825057896018959316918963371543156096369992992753653416569774071055718642261407340484653017234919723931472610652716160491898690495345066031210076383399828079980551306151037172930811893630526545937815412813381845127950187538291233754699372559419907815805329544677656238131903209678248362887257015434011843225674831733048851150613073119735034513214349427785197442384651091932647941236640519447241546712940797387560327765040380552852430717470371744054258214971421029120615751385319136238121244997226276451103861363738689819731129259366746488039461383357768025873213701039007459716095036413670209683330265960191693581001030152949465084634745146552776075589568919525939688701076602538061445228627456127467111944091527468599678613067613942020326932988504339691868851879988193826559510468482369676728253421703466539812754848591038854852878763452802611569816489367659870185638123640677851518444615579269335373668867573531785213370575994316354505710651266829261724999296286509282307354034265429145486545508104058538494967121286198535632629616033123214318638938180685121915098057089107775163168177208098963540499830772200012818581826789230211808455455965687076018271723843564676845551441367918694591695725578869552627657559200960780491421919221367323011054902774280686366026646083167320854971237338379539389741584065700350882516257309538590049142761167138480352698383159167454000775171888307816202193471253739218921573170037357208575167472971763055378053147476958427474826090995338884718905212161188401212128578418992071891970824969127906112591881946650637720601081324217170179448973731004879770584079427233013138943395969432104752230334111952293792458105356363128062271643740361483660593032326421331692858928971465692316080854651395680414672942062456340494006712745879484228126154303685196478737160887788916449892326396752616362354959962971242357380615177637961035068764115680579556594794780321447726348754242752966630212602523053545231996539024240892863001804286831512251504812018062807262868937700032577929336464306444575401370157507750852864932946607664375020626003674643070799416136273626499199447113196206521753754310261936583279578554463398425542642715167176614130012554300890260992624976617368265151631325566122346292379955249457638483450758729201660199181750121603657874732520339813092925936992846526895619633013071852940384139067186117669334459249230285006056444746540724109095019569240210356127944162803201126624197439488577136845669946825797273738925677781976120057242566255103011108289577044839772392772747914059951922649074450737955199103762258553132134240407241813493627126859519610417632664562770912159118317663652214237243124353082158417124496077734715880315106308092486897502867080214961115569920292100764927764181237092552979043644704051723274341945706571644869231163162536442685870183635991552733704172429179974832136192899241545152634076821251503685169657549250615964026137046941490982987934473505409429899320967312475393890608669147091310084241516376174756503380671501546758397710041138920081869814728817521632949145746506980431120868838900880093394787225643218835753133299950014037274276633566133461405028146328321400034050381002060104834959069688023460689901162364876987942565025731793447302962589092111891670573949453706303397469411064088642500339479992335042703137032727099735758206441241265941002057922421554997499188399809685863524384253297783138614804617431982342815695982980527150430968616195616202357704491225064650436302778586592532761275973410560056663150963742744185999500245784249301565537112302377675122191344406982187219498436837737200430769779864791807602181618025798175873856776943028362000492634536451709963814130738550427583756113008224242957798056486867035313558856646517099168662651127208241994762086320539979264834491061107958263226374619156793703555846442193888212321748588731824859119166930370930966102447060974032364941930085669287976269236959950383796814601814633162924446548815000333093609280022856684395404784079443283425431814401188601825786606910675698360144546301112827095165457186946470019118050872404221666049234258741694882651831741220365587377545357091304355562691195577526641990914204519513891705402471872777491189256781520144735632329626926473710113628884688089625845716347973470643612570904663790097371609458566633356114432226593649938035543626762345908400640193510092173719467104871179410452297719469990093918235677826205007250729410644163549985722185418853270122860025500739600069637664659728221697179637382290150689376284560064473957561772581727024854134209636567812695488370894190084357493125016207762523054537474794155550277012106773373661201591638785491578579435286348714424278884955291141963633250215790860572558149844508245390497079925975431464680918116285380434276719066323720724191305829180911867097412748524838059422045283371754038562603635950562934321481850802615923965828603614173310487484263073258419966097018595170119922125642667785309607845895685909389053818866450813202888680625652540590576868095305008069116363227616314023387801209338474327563117859211490672394866523974047666286967005037683317106099584802273575231381764402715745350140988707164133563885406091044339734463799413529412998170692576724234852149139469955268997397280616728058758509988386024520350802232004854882024511401363749207122065337315901136649302252795399855051370709460694312026421486771045729202826430959454154644019180680617263536394019675346980889281340796835807955490579963781914281245980577241586403687422813788646839262965143657232964331693869396372716003213393196860683108639010283050892291151844234992863515994427211781766598837092661345432141876022114197292635061966683327413784637787235320890957506826345286303138007628324397185919001918779706292202345860311073148815418809053342337799021412287089459241370520067876506298062148133834967847737501992179039009389558050048516680860807413155081162767227613813933182155795690361445853000600193095450739156028099380340303387606475646709802854589172288679485713398175066194141609110249858590521067682366365865015835026344546416754383259097498087835083065109876217354394713567924920652056644478004395204512600443057214280049131182562914935308082793355356116134904194693160884640165261292222284321683050860388007891770375001714035958082039536347651007852535839944127188027640638429708286954306670553559988311047326960206761796923483670869668444974863624970309401535217294218099204721839151414195780107517459508834382660804577774198189941850574988731384236140251587077252633890057276343678657699720233763203367520500927556847166395709996023506452071914926974665137020619883195131643627552195019739175057109548603838454971288028151665224454904140526143894297919743125416811573817873929749660319168275511048942000446680314857391126362290173988553770925815554349282081352523152571196890214744978827129972232324836141737523549874484462533513938449749456614419273867848743447917663385720425104188309280103290281905934380744690997980096444020474566722204864597270946223786971449289534432991706280590628517004717926678612526579027998227128858397853717705477239611350271081617537935937676574107174722268904635673763320392247764175627682032891719665149549888259466188182375429822651546509927629797571636405039528566793628864882817007102208446016431752162749714669951710508111966567000794081450704205722203058983138411345390406632142188456431347906542676238500812954052737067546996724431654320069378163572587364275384754252153837176429131520990573384381454067329205195500766398022726897833396567274041867775813834636023297764155472954077230181918656617255884161947377920771628019379811874587472017979019045404681092950875845065560158069438749917194850841602824906928560879496322754319380727467548917474776714304327688239048854886764684375320216029948322044460785956189016255858236113396720459379339705283044234441452334902810598778653442929551974113226542767800619870194990387192703131501448941964127254048057706516324123306743215174489974228629029453031584919084523354424909113810149200313303293205080777441565978601928791226815787961902145289316047681359913872969498155604207410960662153708156345337911541598920097603062604898031123639191324168672387986328131686619260362722515179245400257108088011104995831656828802595496000363437044686524950463750159871370030330759083699048089849561106909461953782615941700770880600395726154403417770253147926009722433950597094279926837256457057522152894980124763606856859870659568602470475875877092994974884853150839009982044594086525748742709702142935882721614182753968776061619817687007757084905922196912921516840201078050943681455044588996970550219551909544885865864491493495825177406928249845321440877301974983886228500904497409445820953468239828621167705427860903506167813052290479890497279824647189956296468290861353495918843289245786905833692123038587957413451205944520810062308704009311330398899725081261139218583963331648317338502043209625648214026092690046109133018774792595936952185698035065651931649130366616107908535629361718610287983661352987974903463797853074592524612498571409681145589672474904590913187794497042982998959296626247904212804223963352510144463083642284485693022412395461383213565641978769810890142713089184378853204572777601348749472634555292397057548652908505207342514544581536887359362923220022217188906611124023501528304569387821757719510351346827934989982955884129295988298970296760991734999260864769012322502421907227090429365769761744402744362895691261653404018489104439465681221302515727714155764598061307258035244818320407848557567077681096050877369087265100084892632550114869587766482652361381081010691740183922948890841301863096309115506164199162893379158056111826999265942739830347525234880312918343003820994103318534046639167998085052698998887278911137748008463855766107094009610164091770343216301592548439923052340876817632790478836116182368771927871472689311943741637703004875483985324830818210206099495700628757749470010859471638318194470097464251812829989904068620731020904229694205489625983958762195611276629101517974591083866686428276620911628755257580618357287940882696514126686094889327059689617897833748588155420964743524009029861597462393188083584103504210404703599292625599895514681806576727188056854091950919251936723807632110832876336357220808090737036665838233910451387314952217869541507958809084400153097026071014069487104367786542349709641609673953738552376225476715004911150390299302998349331535940691406344872684098418116538736031884432482882164171218093280737040650071765999978905193388620133741903060569934105576463212378546565623766441272673869807444544664358971745508966448730765909469739027252692163892878527689786339872045213268401983389216328216028042857113061365575407689178872000902381184444758181800445157184780233767675018019409094997031030304633410913745204833238103424496452999674917423409802327492047563707979341980440147576487549969496342953213758689217857462255233928057885376875328886217427855837238687156896253565230589819790695475119896686769020734990658045399932237605810018151401114192979444027071576928229598243266550246975616228926554899810891198144568121851077349270847691562325407083635735258731167717775550198298169433526012063364773987375861231713236401096100495576763359774013181032570088307512738770715030041313237540546644762022893895536166837987122980949177452518353500110255514475089069916271012299907066179016098187375812849913891957050924535462121531594813437393849667559705600915371138704021292888599420400841709265519392480724081340667407075619401372291924089422206443794082331150921652350251474348538750283686066153060929158816832289207296084591181803628548334816849587795306374107784511647070369076773932766531391038270563408098045415784943785837278007912713191508040663803345020050534536458640421575275454585741830733791224773435327718356262379918121111984053366220793545533606247606503062746366408579848781904498853702531643216539009500554070803835832624203023311011963248076456065617096259119718251424809974374744659438019292228111386003852455252453845109273386910484559438782281569185902487476404943857131925933819658983287988178263735703227700488336667181435698101945763794024455314694663679368291631468367066081776701303196206952427176519284087528711194314710759042387936176059372381573003544763236511829935219570938493970699851243253464140218836087233887398271944810179641791825641972791987733421860706176307899592468961476253100777879867412190012991549375436433105364202202017915783162604869587659566534249031661981987190620099532799375026234641775381421329025491328876490741623364856460456332720635199505751305504448523202728560121730330912307683022724090266659609961469261790803391173451329034762938410082956438191934804820703043376245596196558852526848845874242808150648563771977161463597606690633688874947463444865511835953578588656313012305812482561128032374798119406572279586710872022874908860969467646965277667149738286673532993609758910827762864367317350258793492828018881733147769167529171318780580794527167582325317224777629287059831645795372412844576267435716452004063540198433429654059926972451688735797361763936538235855615979331896313232437675915087523738825938023887930670534022941252427248267494486000722977441282274994346418180508522490683027794487863062211962323340993117185427911255642728959697753863606898880644015650077349244104385862969109856644216614570722463352753088832279658933651861024785972756859775400056486129525713997218097742176699877558178438370573971518490801214108751076440119833649708576983347993187172185455724631779864536130251403443135239022090010556155158905782538884078007489949395372071002566073770530217831067746457947566704066136659198342486651746450520254527168362864424568163541799649350439322981673432772444553659868989073958287395015810671359532558913908342182088857365132832423735787061814998980892222781188804461031558922900497875140005694745949260413729077845886222545152954195300067041750218647235615151995231642381852340234519490400773490189150379989792732818360902405050769988803548462972101047666410409557562848197171735807674997014609848533347394303244274554554208919683029274461079331271149260042188088895759402667175105803165230416567911626596155423444862260228854755946438207528499537301859156741926420009901900791074943898411754937961804871284654923088092004569190049633692464426305963433411369402197796926692528398207501220515154860025459484548973897172772849014723998062984524939609288290394258892658237131679676313017807979189336932868568768910680393085155646547893664136779911980685654211892420274656672857109437213701937027333915144836209899857915465680749284587527593187724272716751974492948684046479558525952734050530366239611567700623349556374317796947709440103615722900165414782152176801726038373681226755332709984543257256695009394725174037443860505653926593844151070546533543420143491918507483213390710918999349540550677329780009645848743564033954004688502015992240105449662283718665500535548807690784891188500034185256212841712828074765141835823344154396796348140196522639902112332972610556461841638323927276485483435854252430820638162933651132032083196140770125232577927899145278177725227010192495412055086190973444578381366898187944172379244341258840976184324845178019584822983245927981075468456395368532749906234356204832709488388317764767085299362627901295329962347718339978773169757129406263406026769513572408553353239064158958680483201982667076347242479993889338020863327403914496262853660968327630238314111090490854126339415716202401754770201775323327131344740750714275761301748114479273026910150028408005348683063783980645574809014575482210694793222594139079409697984049936504381685660191467793491485843158312819009476201978123885784370237234075402998828271904169023923829316993388119608467436616176561988092318936303465251406653566853388135724199278902371804296836812166799085649261793038340149919907658422083325811005284266407805338375280792144574687615068454107542265884859049044945461663238838126380714645020529830401105952071680633318224272320697770480866868944937659115019812398735586356126847812148840623888296295547650076825885385673745566334808226145922284258614548180266553757316665148505973970762121367984698055569533561495707113599240632435414249865131727801333525918436999282308004176173397944206414058430131985350912721458522982750957109955666247602181519476425134396868577038367976462055117095510263098125582065594047046316716894213555987226252974854397140731148869412059621252058343889455296297481085457932093017361807439834965550618407473506924685236934381203279579709980661023900932753129726687730521021013068359421436711160227858929169441430369219543008047992871904288693928507178988741481069930276114327818668255480693209605858286726273956451314969538684127142280149027648354933774305593791119795414435780792172603744149700848388709182582027621139585388925251874797145294146037086493305016838681349195275137619097878257995227661519769318135244042080363322080131589591547349279957888577926341387904277121996969151077496487660779904258838061390296946348276974791205567188809745478280220793650127196621213574076996377358458865271936228752907669619754340612829992314810622660963723633129840708013173820205421360263680489850793876717572827612763203580173936117032044245699893983116312380479885699190795750871673227319312848084917533980095384636870543950466639214323282627255402565360018152632154855680543310941243695715488596622844120901925920588794367697355795290591937341495228640395014348697851409391817560708540651170337164247623502447765344581775629952180028220466643347663594218658042243133175031224867983199899805471583919850487553028378521322314612694952427280726559917496347304641471748063883631523990141183717553412633448948578488761241947514368802658719718343773171791153505539024208139479618714279301928156178700759694894858094989481004504746697864565511170763502039027827904752792245705297479442150463429380524858729119126478179245524043096443177149052589421142249581674727474421280007257015137272830491089355705994205779235640887647361798475988601020266031572402845163022140973657200488040415799444568432003172426823996516619180899242450698671007188539124937144825554636643605748941872167841251258992640883617833130585844508736476402134470671840425255285106499275107289785042777981089422571798837227096391086913992038234300591430812052485246731063595150133655523819360969791267450381240127670301294125790437776978884975898670752814603865076868755124994638273175831823520286394439632786955218079815785497984154151621190892708792034679197527923185510338363839881710008339980082467276306191598794672737147397712132080795802041472935313991323385749842584454237063452245150572893721305245230981706045450835173772145675375495931513727513995042503786467935278587354969213568776617280588019655681260583443659479778584213415835897566808226573186969872965305309204089347643556334791393336012661694683276553970327604683354967899969296208477969235732606010977892724775977361309323663094651450211054843181149762595642100984925434923859291204417018962542257115508270249221103431278315710600874442108558422101883507811184267369362768121209237224993894912273844520867999734309103583177344753665164311187950979409249606448183551843405617779859470521440817025285687072653074951539349231983132443367263900676072546493412912071762937048532624074005528746704325681354521751862525258773162431458582910752316009131842842598238343716321554367465395290893167989398624300113474155885240793599319208979567019400557251093081953359902252582112823507106625927125371092584226236869915926896194634688627513923044021713079050721748427063141160160604286419851748080270044009481939760852386980823435767213479401717221940150564605932925473378709460380426693194270652907722316272292667901340158417793002249186177277317329143400636189007597984410033403431886488295827586062397040987881427733293164613944343974356802868383817138324618310666820253440022343013432572930138971499796625261324793226240222242570627309130548642746066317120251075646460290902811653040460611573520879686390161240598128149807662352284703102047947263163919957418568594834931011330303792109349441634283225305939588950294348450360627220563831371757389890377348393792872317018794741246955768092262178687154488688198755348452581300124389456548165071296414549040637175780093505534477609892095641977059716024570273923353814319571126641554786753657983490545787617448845528955142058758447621712887566632061982085631132276096102999693441027367565977244222649341569467776357468550659053081648326861149614290148416856194429756846583147132038735902129913899527684134842104003216822724879907472395778184650813564116511745946983105913867747628935376607848066792071345869826640658731432129277665270001974307763534443735378415968927871352388806220469481336594993046397768163581773917315379202407706270877529043404083375262542854956249157610577454640254280159798487936191850573113785374845779214395315268390256966245548710868085974975835609163427177705725501946081113682345412971522432749189101926319881143462579298734632405109581550745565053748566254487512644720095675135880345288896818655437323801587271740479540075673996024621016968790540245697165555447895030381515519858616390521081967951840437941939217065010430052669763842046913690739528106406553377561557810745626922277289383402825406108456667631780582151400800918828596418650092659399747494561991614671373173881835356894289426820334969819546141678877240088106581610200730021626688475637857058541424353393524889435055575866179546390492684310064518342297681416354991185754863721645361838075621663047692631677524356976234797305068255785301403656992569212670423501370472257995507947424338363012090673556929148158703000199016715496541994587548673058795154353517785059208940938639354240692386420933986714710817496435142725363651874400876327869320335893172924581984415927568778471649865622637931238370774816646903341914492791134603340212070992953074908998553214397298954229400229864764143972101416141435878205707756716153774955368076939568112269085103430623858297601170267531946879836458377708152901539575145136084561895055516990844865121033851056013316816442062214598048055759969215030508920424381644122721421296171396457298522819475890373307527971526772925125305297991561561032417547122126949077397567115153118282649933950228376817313389474871131152657783725975327800476801749012431019217176751618993883691852610249273527498744810870184814824182714916810069173272630890903279580334198487648674746712573349169034102482531220983419822489065338250832368126180119764127813662236398820871161290031229400725729601470703715818891140179268448472134775661277017783651730837502619272885828550345317952396900575656481794173681777527548241474804161317701224383288987293155008624137017280055482215879897236043370900200937518281927884496739706205934093340669585711267544350873892761358178059748282673626814856572809914666945338727996610394301876806810416774240617622238628908362500509801391452232675142167882042585732297553603816999492455025043686603145405712104123789928827257152145424786539958322722722589136195019150909229849691986372698999399986160419027711381629295243666996506863196411372519886118911618476449640423128578208347141622909727373077286315203916468970258191347555692634360795118809449265978004097573446862287212496298129885182538424847388801039564690308512950544854313048629969586039682361952343356430289313038205242011716601773031761950875810482710139138443228542636406176323131873337906174089469625835891783246787686669173035042339153668186228472822691985437340327121490987950451946089351748867405021550908662370271078390443760999922643524095949638009638896302877127540633793419597063605668182141928987310895208862486577551503935119176958128413966657265333052294178348663978378402436107544318096415574962249803384345204209889545497493213242982036098916317662155357179475870423649608201243181642601355450200615711811304019499379142530413806126545686616871657483630091672943851940753376688281979168977714484330721711362940810673649619601083265199776936594334250694653848594058469454066198860504051296438659906249354209354107132781165767487923723910815407270928870839719255297597985188410527036269876339549569119598577942390949177982043662435796068465426959834390555288742497862121268755631112957454362211228078429686276136320060088678084847774897793750601632262090486417055957271550337042310257220988940351343252994246220225004881442677763824402975623652414359986414330211098000729870851144843742850962543399314709122182877186520450834976131057197613801530732363239011380687922000337209621638861472236685188107741280066184396924733973114357397907682949721890052324265601109974589257180644811456007471577549767275816756877951599001866575702576015265261986669574327681537498019111871955606698727649320833426870674358493477914592638847150984714328688164048542695409474130317910774809412221360497761756855002160675887321122786050230661697016216664804252306241441566396938973493677667394940331331713912367400636763771804307092443647682042816371468898494771906802603116606260163326185370393845881017568227155174307431386985556942983985961367513044876674456315743399724666170921919150095087387344814974762337097894433592431651057544213595279492250295283316678734403887381329515373484276797004976979164527999127940224582335557842746855530407299542517803383388348410443382399856540909777963156937624243859837292064085596583710093635556200774970352069053525474878814790991092655645333454040434423100985748143011304657433815949972155097314701304671826012493654972100265176744659133522622449820991495623458446045223760118758042087398800530173043072196340536475637011881646332024094455534515470596045061166985396720741990456831538030633491935871583212631987640254501762830143940481690238342264849157436840831051640109906448856737756595230648161495132222600315407257534577474683355462960841132458371933871754108633625837176838969677025387799726816652266257552502676656738897645425707773370394831148852529718602767903479685265189234688611017343126635407457126525657830133812791124561462702284497541586183835650532282027170492736094491015296495746975140008463172541946980203485430819681751969428141774197427392696325106457725834277811786534914340236555173347777815657269798024672237897749908675585605928790226599183473191423685854074049864222610084186145783957845098854892127435533111038082022906996762106848961481269990879573637951640249168186267209115427138472127609012878029301762152045000644445270289946590687155187910499648811166615499180054326748967366390341728217259508512056932615350999739784601049282218456659275435691666032430325990421330390313105086288869239909451305012340667160423820292310287211134770991672037645415506491816709845652076851812131469196162184667752443619530435453630914742338640853420216521645814522073358201419830027061582042865927225399329203129301145594175460469798071986888912009788402626919472342766791609891534208440136392936459474968813378690463986813484238164923871626037477650638865137292150415140571815283035541042308719843573835335714823480693499249483570166822059011582518830699029292901682075659662250496910582965490498434891955438233196864588296617831963083508203209374717525792846398568230796413944978735006606658959566978074537222563287309301769644395383024694911302388785936920055221605925918886351517256859295946469132698249969055525828031113711706803877460591764477040836143733293914715067836968103905153951987052357136190156608448859966082137136417616137972119159473220768501147345909667914266333594738564053837280598279264760812373709114744165563382841793986529396603502943875230257338520311638010853572521862771219027027004719927681813013570324071229987027476224552561207887446841010226284249924150922308467480004199623244517553551685240120579431567186284337192549878147595484041310740118169488629501941293502487350497060931665556750035472595687592933242325356172965047253591363044514624438702513814700875503153414144788245384886019570061724910172725874440389287348683307768132278765273272878753538912005876908055059576812671575530307391116166285083288798913148529361492733049694773178556397304148255616567064819166069118195743367189749227501282040763160103731633727583101103637889596071425063496607681114957237303019199349706509694782458266054887836079402075302745689924868047076181078517933867481709365041092750791456243914290091293781623872610660311889897347524758337022465255758975969303320420411616402613198406454722089718146982873627649060925024116659641838163768767227432956678102292385421540789560105106374036532776985222439249535209797216735815987931107177633565972533407483563873336214355641216344435723467273382841851581767427376174721720632302697372317115205511241667164524779718543906064212285327441719928762342022673026006173704928276832308875804631976996194546968044056836465538946410794796269859697909168332042333735790551345262116516212058639785285174782632009146170106916561020884734956753121819477271217531878478308930016077002394617311269474121370034608245831869471241288296517945326433601066450000178454378790697136314964833004106902886035078356753758757262492415098002618124765356655749088887037659760087008049722149276249451859832138403391290840570101080515220000759910720365780747541181277173604265110583756649615509179288050186347575216451338742273001899034980279026055539420834524745781048024852711217377648801804225343890675642464850714844124867113549487224065785275471610763179023174842862196767717485248997320898143185079707480238759440812525270219471607467388113294996216224385892931469793663844255654656324773574702399884421473760069805702848030704628286077170329666949011233784877378520676889444952140095802537473740694757185018358806345011843236044223366011376516684997217063505570019487795637341455171217274535326501033035884808097186722048592923759873048181178096541758180559049614232198743547978566416783017447991706924631399741402516907577929274686024644994197008942308935484263366896153731371355129742822288264344365511617670303327144670929548309175232552977815244518983740961520008646185773474671987095493446425068676708930078114046039587828351271906982985274249214159706280471165969779966615100470684392999538642255818265845504489209596673440713232732398563363529478920871565744553901784093603110165380119774135315023368474807428525160091372025852223754884077151677624808842417129868142175385827589521208071669304007056736122921622052382944893316355499697161325826246852662810803833989248842630863032936858408317170522881365283591771946919669925676835055689896908624493972255396953706648786735813124377816678953037257346546999417989836822388022341249807603621038778063369330459365054201326917296412810215263657873570463789964000729610648752007456053806899576603615278156546112678797883023287534530110001404710472290251704732684346021256948679040654685731813396112410425120167349461188379199613026033092400442014580471148578398797042972511893299919729078979253827269123107452937615783688728094483486376268386441093023317324305379861497074636396611668985399684825907378876125311558671149804952334456687074429389993519672878735870647978304357741348416553991226628148606903734538192325565676386857164482752078144599349537347070831486528707231263975014949276869579609896405895483106848828139160425095305004115406237370508517652152970564323411551061772097822967431976691648043256389068612889504482080211676462812207951302498471664549361891162304550551679106265367349070537587080760798449139140037219127464184485349264196391162201310795105058985681587411195486321982925393309110278352599501342356593742641144499648657118052329927643705375447691402801764453201496527393115900743850483278778679670483379958719047762438279616064231103343801210192805792046722589422760785997153487553955841281034168556987772734368364485181903470554262132328514603094544358218395197075065409370492868500999923126976152627001273147286183438946759423715428200707865429888821444938624564079698100475173063990591131858447414856019758122647670816938243728426172783947837385590998782996931130476844517964187067783575176703357300653795098790219797204681313354558436256935803502417764167970160605671564830707220863198500675372540823467018032704404400565528541367585984070833056414244299257567881091171269483926906625099260798441011567498510008762183650365692868288990455201455279747540863677025287034341762471332186638968262848213071155586694321147346729876488437702127168269053526303382469554425378084075289174260891314428856906382304803335145075823750410083362410257063166206938159519309298924051047665779727394065172179825028723299071921877939837579627191686265610527373756270460081153125161043998422051887023338824700426512548889398183975939367424000109181895749110773213354560832549443405814320770957779850164473203855113987459987904378098011008344456616648611993629298505349205050288739199158328699905989618477999353336009036565196064412621182825125073914346418285708367369728164816346187761155375742870296105159373581866820137704015774942025404308111791015921119927467632671457623499405230851007879229947386610960771002048679321659065397224820286539876498596607999011542293402743628148072310966978953623314219704739151333037247926192423032628150539618784694835899306658614822758006874186064749537185674658984062203960059137036613382592900913257369965753010848933690043881223316487943625725149770607588352012755195006606316909723760698847389007916239231751021137220912193887777387119448364667761217991274875334777437350197927845392696536350128411881981639378105946258441867102980186314845657129156807743591608041777957053484722328249368303863727093562168771993621215070383225092295136704059204291995127689379025973645379717866234083990266884289160208980237460572755402891826781970502302015415523619088538613465160231137851255628014051941229715280323103789783666015362936478657549813936438753615378759886190369570608726877052429186151099400653521867355403604882207538357319829500417774791560094723631365109704401612567064691710301498493608793187255276253970434868823257294056388684829002492410401966820777226645434587326735730306415177468324130944721449476135386578923278009408098682444821874991332732308939762701141587504971679507230641616051597722756323349744884110286941131650174543728125464596026430766420421356954478774380986165503772811463956461590329847741643190299344421945543371391604952098914597703058117921485766843505680905994664438098273185817636670438151204815364591848022835009919557176084260866965008314641250500902333578899550114613319658015818283413349762974954631123008567574914200324894180775774123360624157718700168323471176748221662201123858583534352459246282646208364615171725224277705747798955180448505164671800688166376712035944841040684587522494736107193198225850205699799047192912773024247923786529278181927312974743440480023731595761715615417557523659228248269928893643981328643932439518756559861270940468874903568323798260154867178091713756132543107265635147802118587310012444993569287781082255630760815226086468713196442846196121046509940113385525820699601308437574365084745199734011858594660614911835954250215556438234001396977020392440161382815387539085921118544070782573284255428390682126975588425100385933465231174343192390459181961861115897756949919449547526404301882489331988940217271615020256424406801784829300032850010720922937538717353120712702543334053331887177978461193797716732780672972781041015646110285854813622640048373762208949451168713725927431550324781362751343004849476646463340169436644992187337736249924792913434596309497016006831530673895670249784670770254025259340377184097249321693263085429671914587983418973003539526710844400139633002591761955910678442705963038737839522282908959664472333213389304814437167057040025641943354905431995322475035786859044743030232616846593090302706661462926152342866744724989222126760775473559515274144200173674225398798011938094298031049597255459126170922119784867987501549047764703077431087035012540743731728438280871309272303317759926932661977778490827850568778951424163060294580757296045212311836707128453804927993115299952819386022028596461009392056117931689218303171836889633843047965126183945060179305033384200208922178482780888012702527296883438336207194757064091011262439919331467978021744781582217374181513989596240650771869828563261688794131616611227991623336666514434166977614102312214920383372350339350667893455777565607997928753857971830083228509676722115292827238926052591607211742777484099072811318331870696398949279360187242432224099967062647002532128995718647498410087163172210958195115104767935443037325575063186647317962782513357371504737365417197898919764864996721671993917297009080564696880170221195737033175279488964572869612477335455389005842583698634895477289107286915745018128167234217525503288332114969526464664574891483149351891329012303216403539696431738777263089884485621355622286333917574552210290656244754313752148332334002364815854010506082526876478060087611143632555941614124568037136948882050583378798890887803850994149486430907675201710504119280908605312698259374412221418633108501351419591608776064751804854314926906634917362847262687291337162660150347978433441249563567515912578019680553177606188645015366883107675269655808428846278341882051142334092798770688621505602113926924801483791352644987975703923221181753632521577130494920059228547621374502488755840580677326008968926625723107404944470046724456532001426781396152419793922735189473207604859196522844617718203840812091122134718814986341469962022263331900471695554055927857592053995288237314608817590906238749887661162872818456357315146663026474371389176884879055915784014920248685978629573543737309470514749708104230979041416129782290954797330174322319999010466909675091915524246425480951317998139463444983889232847374403302995662543785422595878988963268625328737113464601669324179640262626979271654090208272640072764549561334273718215204310273813614925752632508334901704643100926389656600824073156845669304716399988063334707646532026869518710525878400405639989346630284268568848251295506094491428322960258609474707793401009407271358023373754210136965257189145206615880020906574458304168195696853918687918662915532356638502378513455925489960807767670911490669510024392322674088136572367248430318264255895230371344086646727944546995532145241775058374253924940937574982276182212415833832522524815917479190487136934645687042809329165047695022835065115719941825843414816988374183014289537288662616717905760900457775291329336335438297096737304890955669780550879826838986737785576750901863353739247213748368775537050254439821751214408319178942604872070829303007213366176587049270578271807428856010560870412246466227506252631941736653737512363113329633030533912558404347293732600947460722053705070889264622878828763864538048491035450765728592634074228358104477149107404322076489649793621453840177227446242048305919451672742599691311918702555374190491819137043163408447306916293391806857062572873281733380230451433796926473848032528263087902929922122524073256164934189478974332477475342874149220526208307310779394313096263997797528794951202702150297602035488084433337726902037018197856727437414025548423324140314747567238346230355866141409257610239500549923544668469924537033248857953282624782532602367277037693229339865362221078026087957499424352937825429106521217844825616443462772355433026015282616961294363420104533851891948131723820780448799338931897778768224070829188594003332470286074714921826197248050227318385545843635649367285802967212576389043420502590415011793941491191800338215574468298377814622877698978549759546016585669061009275047307255497784166669629524324663475896726110801220526124744368452297348290362889144068143320698842630661014890698735706482680109897782663520139791275566233100044863512549807977457768001431657639842997452397884584673897448367730180521562901590757416155800290107220095754076808611409092358522577121862069012620212584903298318058328966147488265523752061984098446339252596024858763836247463969915665689088747782134304190059840130461152806887498878766674970230839627482880209222149708420739686091103606438790746025270965388730195337672724458022531737563039891404253856956031189937263751634672821955781853291627107873500535239487448168512209369214153474945625824621358656406256587819424004313926777161603245154700470575283951701989986480030710437480701872868187942108895666051872429111350858212315772614335196449082453823644357611852385263573747222288920158007849937992025823518416882335439884625854314373504089334714588142649731147412372104041633864470025973485236879547447190767405661514590390703701333983706615370750310401747094692774764814134302953941988720667160533038005937193615654598387954504690014849585743033658322803073042577991680770221747509518468760739414920954613163513440810404753880193594998830398248002063474238774229042234537655262388626900803810851261622521581817590003170759524747531467838364488247673979492975847009656644872491253109213359496116783424798507950374031214225567161426514923506390367754304920458740015591916070644307131655525720372725009049547859086932885208763096765414152782777079233119567082847524472075729211748772779937484826577740685924064032886923807159707609388711252364462625731771186465805920295491516153052454411575995123001941027679285425556668124235843826281900462501064782728664174974585114089553136194935379418670554753306339480383538318121865139060357612168930647735154963705275024615774683869345362613059552798205576913646658953163905614822865607908251572578005886198726983893815469484467654340072840574220133319526805979494748169385474577063998028753238239764290216196361744804766538278781657743750158921680502475306376339432321127116774710003503518560154785766425427170262442764589785355130072244306777217795629244562729129895652249270379975718287745067055769781727169050152074942162648646548137623138455379977023046164819474337743723885857792557522198627289143964671922685076979911474747980343723284258009128326207500032307959948521627554867806036944802478423378303250473256962067641858613084829763230430491003258097630839001727066748359959508501612588940339232478007467705986495144640113168748098053258578621878353818465877827496902954149019105227596549886461998890717088622016015687121906239294083655946386432482412786160353215146391126428124791237331963261196000564264800861207741413873005301801649937593024989355293876385234752409672900330260948453764349554983589250323414250904475250642969429168177175613973051381927673426892984919052769656160975674568490477165344829612449842039278851954482435071924786577166004965483786836885684700571204410685797238077330436782708192165751541489892578685108450443889751235923872652572008570977269573190950484491774400744586172331647977383150099376815798330493920857685379787314146178201143027076249946782204999698744941151531954603789857915214229010726163905157474608733863928115496489084704022221584541175115100363172490055698902871842982120593074329902029625199552846202247495382420323490495558878770099090244032007845166271064513983352156943289471296023746303285715979178278979658227523199022099672359521558994563078960375312947895967033869800125082768101815600547616178462608762335601003871148790984114442357694056418788292130261126443955291289712406695335360240286533780801223682320626749653224818777989791281061763243272738083340012426316311419173453372033435055995696174528968224392985785599531258746353533111651273353224665801220703201454821686847812019064642621216017336589589645400629057592222641556489140267258271727205237693777610552689210896363422745020261608515660279167758033362513270754515029127347520037177362146075234286443868105384709948123587630424999578904121783007410981328620821831863193528914053119632964925774064600295949033791838463221296604679804312628735683716833634776834585792137991681921858573548615012156967986228354646498938716601520131541003120415808056593232339985086339865009777008580291521812775663669932343800699332203451494947992169252600949173048111111587165577088793098631023141496600027331366632464875942254976117643627719099859742621143436708576316804882004921781794002140205231512496642763796691790766671977753440887465508067757004855200204585995361222440752330724919176112744742910845121156280855962917446859526843190951119942269974399483937437236116225082840462480296681298048492194046779438903816168645753780163306153477039291688667995229888022415786703320030301602342544755766879828915568060139084511115259871775001246021717533994537457808355323640694189563242111311457647629330907527193694839432878800802874176198577814693949755703167182529386050008679429991109235565327771603070472216461831697342517288204122330766615650212137020197957430513554186051252282660809571468180134502971895444316972864501197792375138285715577192688530690855062201547257303977137158561945797799019763224941317472194283929588543117375196887626102740228492983965238064651750071108217950210628972688609079846921150244788117480858164875693925181838779059084235802483318969076856363980569023690089258671098745702163521783624133449030339580232931969052389585044931854412832484104774051701587313233373429604277947553874375515620363021285049561281114703259612620793658065494304918966475037370281951960355372358008205232504761213552150279986574777029263879743416606478069544720758272354719673953685791373677852236645902987462323998397089195431082066862274290969045805024562158083369213550316187985445835866705537590164610713048701891226170398076864496443934027441670219650619347750486087972564126448026835125895852619121752352074029789903438772365035071662532341750408537543620868108695530552141429324836558548360094133572523553045690424003629979980592607581539801413168303672046636944429474182846569399924004489020471220816644284422850614736897513398077161193371330463984379762944622056111421906233995244125201433909722016838319289502279916276310705191300708870968609512118536412236880130267724260381825956503741575829935255367434609530012251942185267144783174058458580802492338301160693247428874784133722925488113217467380404430299883115509983549576006986681703669274099817187146479189613399828242086890963512388800352729505354738307086303888904956283317641075976369331414517973550979227876701350587523037484232181633976352371675350811921182417311823371512371606029743592377260939994839366216285827208964389482546904792673892241960537922857126668531121185954284079871922062413162470916941709456388539117719390996162799293131105890244366880772730881014079705043205707134629837542522472804939549493791918841664966747651971945417870330140008851850677435293326814931375760004259407777307052278394699305444774542032204243359755441181530810998692585968847539249750392689288267910892309472101041411360549402309701633250787900855800047603332024868230423172548514321163659939150262233740623621401336581893015174504865607944990248442125048891299321613860382842894298403628941434323934975148866221534971682746315416115686780648694724128239377681992695069313208111383442517937693193390494260173857190817924604424926374156769128886549993241119428075659271789555946938038301826172718570286750115202986190675353893097097435839617011310602346790917245029864508577530542036308989124661800579948918736776950298281472431340040055857458017248067549823511849846884772908547708089346981338039101816926379085187150378788914114713288503251735849494370688844743726737716285605890502293748644937035061435682048014522118174017629349793404710448629168942507781055691522369492673715376915415462308358127629993683929867731869383652446526743809261998423096163592750236405304327836186116878063435535520305920580308431127324580998647936944187367765796008026514314692078323205496023453861173992119128486588300430000919233900666982106073001713641794316936223239882149396504013152952084504919864934915115761645746194145341394359625375474561548763034806947055116298977627187234319653811508338069193831152098231156737107013707461101315046990433423466002139017966814294865014311697957924750316686193848682738429398165647496273611669920444078598808621787871822562875631625857923606142961485059932635139772884398599497247089231124961855176396695346658802496897744399696455791647473081900625395222322760619176153796730643615431514084012468779156192268436024091846659049465573560125487627580769573919820406632731811287693495773630691353379441428396849607979336113719997425045767103334070544772404924931642674061305940305315783137546826733591804668606528926319629737616104119413667401741885371034225815355958341138735961538416697221541443240182692257356856962622152812287936632943802547007811663003885931680183626662473212710230567765147370053235648327725075635309026612424061201315332363977015657611280301190025719205166897651390140976097855712734375821850687630250384975904672266288439571274937994684736556288558424681248943650330332710321225052603972397325999082069682232329132630204085235651689681219273283780410861515214944523162018239829735384983329850242533468854913125543997571223032158303274252811386965403698981312512571554602922167981957580186471577150168099973692876226846823925659590550625702109356016910032316509717857887188991658762287963362783023232352781883056361375393968700821949028871659624994329412588199418336469133651346682674263647334782743805555390928512823454367107977742891318052048148914418130147409981647660964929064369147156419127667289373749554698046696059684326876600413126653331977096712835611337263434802068719342806995213980080440913738906823649619431127458795115744693231674642896356793982983324578405867503181864677161216683927718632894970532136369501911047451279788447630549001116906015618450120073010724923806303067298506502985941499848554342668990050633206174841165024982286609196270750551782276536650427744216940720888829147611820527745913239492020128588307868797295583188609333637379705495353019134786851603386386550052457160069345276481715663835309079488431470564384532939344463541650196962782815839975956974295012491809825791837660682779129279276524564448064270664652059136916159808590249768280742637085021946024857180844520806697401802441369542168044443428277365049348785372445667942239716132296147877200313690198711647377464683606907686748235398655667824696467638789382236228861509970693659519702137510536778051742954281089433752295307951952539874430648509996057584757669688513130460789804547365491022217123114674739335409124785038338439872057287741777639961138293041601716132274393363212418862576188708357477390015994641136377314677019218967015833237228636248345578781393600769261926652197342093633611548305464935132392391714600693531376884265881974376433555472228246779080507339904770884188666955167787737157438690177340669939947200591901468158425189960614093710741805318815210968432500138518762525638244751102017649748834877912247613974398319506145733042056164998711405959474557757560048153316889468026074999148345176593224468477010397353434568687488876046054778867998183506175342462724954154619746066096241995012021278938477678964819237942081150070129139013735000294675626820075288658321591294797866796414201816922506221723061969728780783226464875182443260643219720321546773918251995776339269597469217533410714052081718951864859605831161244933955000362066280419430610082153603687492001978021837395336413112235042579008562616059242302756950910101985207506708719838032921058628679353795193021600157007582425927758312467264427229907130371382754056910620308766418240313976004739371802434639669186273988205885571753485836789130850184818211510965776388463479436532988847655541364485485393477981336549431663871194235005265037089216250869259387447662244714048246462621395558429649487853345607695057624160587384471273659306686083498878183073149652202451399190015199233196517904572169337749184878083560982332522016175745050090594968847790922052962100703828040023325518326015015425360492490653271671681547795597134947469968466134250468873932397175501659504721383583288695842231969871470404057472710657515146707150750474270810551286477347382415770300742214222077155906653747514788767262685354133614262581076680569108740613031403211214638137858361704934035018964422669483139485153707392648940076880702004178329907337939468017767810427902872357233634272480409916101490794125311500481485476996491749406233579477156541121926710502577911531964781644766779625182571996204803645004487587105217296814004474646731838115499798835768286096035793908893576560959637015071468481209713519576075358409264560286819512451211532681173990318867191066313775710426637662710582345733669621211767396751816435196186434680772166438000712861499024527441210196779866871023712281320372369030538370463568401278148939457638847948520734633321583797810730008942451578370420982376941485358778398930941054498407510531501100746742108636553160323552249405341453789779122513582139683440810659733044066865305921228399838883560599195394087021651365515863318092489548120552727740770924509900821475137148567357188812768535034550000714817931327012350517822680245939867449300489969177443120681694814133708536259168180523926793272271850542051968460255849414011256444320312382064898200765273450977977773612969818385688258028237932322336022269272078930653326677297381530464519918516299432692162709797289042352759371704861240540028737273869155998801574749319416997175080493644235886934660589072988904507616939222761645886798116108071523061037703502666006290118477135917213365491127874645862070073865043022132260639941681903829457656437112845169592625167891077597678511510772540715627568065322553171369553463587613850211849254533533612876003467782656789699164307930837932832298813138746764427569312649782700829015215108551081076433318223744430859354936784613851498107128931512914199155682561742119605546837660341701540643201268607994936133592331496240959913538746190524906676708452877335917102196764543588900934878347854960318490495180594710318734880924843343846572096571724525360271003937285251060922703897605688265135965618662835976281030036767700722036682574476948680752981300633651795148843941942721879935417068278546476632065753529322376965885226300648717473194810744880269079128865793585281513398799077724144111708703684935539194382279782053519806077812590793024002399851863310858935486408768364138718782603094599673800022888262367153507954464069680599456655358797497241813134858997547224071220688599414504214343433356255062533180606117451382382771202714493320208426347698290006634125552339767381694270799129629171758004137031453263078689738650458056085558920473639461192704564869801884650093745035115529019607135641679557267010854900063353873324647990000958425878023635671111941840133459150964094764054665651706734205586622508120124433611023741436554915603609308070709994127591409888002664956775673841224514963811112467218410154782261268129998744684801918984501792149846797082629932772199819371907344445563094030424123946309200577073470833015413454755155989193444355245195510695465155794961873923890515279411824211990715942130312600329439116821297241220684737576102917979565583177119759377422344865661867413813097954969598080082478589142212250827867379988284528702554077176145799813353929071156040985446210510428273667587190613166129893665746315986260747849399166534548797178600450688045631863945725615150659150126239197220024874389045158007986667025961224806047254119853267762769077833527046673646461532338548877535358895903645325067198771455334876569586713173157711586195402458788748036788770994566819128870570180951783753311816104336708687133168340821460988321507749060605861198856014096554615844383478761875149101417773625665311435720692290910317043031687357592473374321998572517659801545767089040498416346569762607107876844736138567808320999794327502553793605783427034021729469996569425816364005131959510279898491661474278181772742445560694212446847103580002302976498230458729501087684542259161174996916746768506080765463546101532974439517586564099545430776427495408300301816486830563043080078645824689036252932224012338784241286441572054976308321212762298247791497189984455235309990543629506824192721233334246865746699687550189157298293286507557890488100703689511335435144104842409733387326156049278224046002767699599449639818995038798815602508064198972497404399831283621045718440230140707338218981944806310823363073842912556286838494862597298017704772373172527057596213893535287975167196811792113881987076120872584675950723209741878187154559040376674423740780309540100963128706549251147489997892338888774454145788220431964527430283836540734828651994966043906474478618868832454969746524049443168335748720054257233878449512328989374496286644798431353485044183483048632902541192199295016817126492519200373600844729275294242136287092349502768755191248266386017367801761392476527178824564577140807822201212834954566128312049296637021602896664779854597443916006938521695209283916898200113702120732713857673889734977286330655998402179157252256251747916341319933777420378557941990083868359748652604612910594354212859404639686228068461303286744759799053883299699060952743122434644419987616117565642668300556089200921267121100151797243504184410178666121553764574304703573539490063034815495236457551824920261022937768873935897057481081425740727230391733838594363956609356390188283712795461492741421704250975297569013892228979739300228912916094760188844560802513670873779951355013109296766645999969293360962614410945573842009549005573865458358907040653130330571168125075831815804465521478000531983942507872549620472585894432723519063752153663087612766728361246872750358086389000627071069345254610889564226107609577202810093156511554007212305355829686606481486194391210921318538684842753287996170134928040632211653074255694203276969100506427044045286801482305223501707258651038489869867014345299394681559968009141399944218555918213272354943550907585772723625732200704166149383855961157825753897180325523901203267888963853915016583903766643367282092046898105984013382977068592690034035580885531096984311565749433140479579639345826955778284013232340827707535681237100926913234715812063828741012090359132640057652614071947734255422783015799016080657511803544186028482058281451555350984873210906767251927941504433880485212770180589096535954550111906608845237689111306473480206368229229726030527808262757312664305547713068390587039444648037959849109612979650139449173858522486437092590666144507558205774804981602616248472798083522072788972417252033407668446669038312510504890024546553021080801715754274448906126325433947522639096921302746514437922206504642589603685039037452962259017688781562889281432693012126646633929112675586298178629911152348439688626020177411318461019699378558637240255187999562099994140148326068880166832869400036663169098804338405490850442322135506098737715529690817136164416890112219429409945525526350872467932076314885144498246979765744709927642257675443752098724986004314163252889769020934599393758719665832352470942837495389012085007738905017888527226015022039440560887989096133769923629718521666658199930638447141010370169332292729237716466932352693188394391599053959366745046074045756711051239591787149941123035163658956970996714882253811453273063533999091960145902627799656013325934855303798943673165834904879628721248998567069905723931681241333513218953743048631000187985464494962657130383110016747310558437001681621634145737114737245982607870701695982399391668908708159945765137936777050586103519189851708298066574225157687656641183155268195135301037060360037032290896444948317496952071875182840156365221803661528365982495986251552267650249782416257554942109546188244856035719184533327098084349115744146587594469062229354225864961386524630535573823653630540751713321169544112487933942039317836599191056583934102087444130507235493765949380061073249153250165662547823962086895029461872039581107237222850617816637284472877375323256901653449840178210997051952064784262831465926089141996709916242840619334445600032985997844234213265417548974680790760714344012407127841227373189615014368200695944824444735245489505820700870615019413360733747254100898101115689707137783769104464170833867670485870831279045666932630840027390094849720101125664641089362409207281613543758596770630722592199845452984424376323074281281735635372149083696475806322308336181715705541326309696812844306293567936175686556225992736090296317103296361079080685061860854386989493123419234372123299270215111378129733712522601271513837189057974006534128831150595533164826024158943029174296847300641838023503522689423975973899923639920154166140118477220962182792122181992421104548850816270187224714574305324883189694055438474758092625602106081073634631121741326190383128723189450832073287308603290220082041974972997676279119486915781578567115670434881776984025448321594709140514473995888422243446757780343903864377197391812490143348542024279902230498803514208672896347501348830952281373585260062350847974817820894746720998305280650920159243249714490186673404139947392554165000231597053213733920797046654544470911768271114632127162735644842052499445322861075159187752662446721655458924523452070013540511978413880270898518719222170133840715722322331676309313839570551954344692298302647153882012437064680892388791102337477558395916943950721349307590654735877453096388188179367537109050606997656114685324645979187524864515649554565338571198920142292409576028345757265801275421108221083928915968108239474805387436201456093605959155793600116147404383728341554433946955935813918392777792233002383665677327651619381188292133017333351001060165087973012848047436040126483710097019500301370770016356691050284764037918175726775915366866460010133539931832141099832030284897847147044450945026118058443752043805347321905247724585263365221644375448382118150779812524615265850899585734155935945865148368455727325032601259528864062967430750594704457030718700298184719477399018537222997884063739264336272012404300451800780911451710589509002023593715113888141221429784135194368860052006931308800149923615164839147567814961537259834219060241731384981147605073710192519319221805646534833229936023032569089969497799917039514052383420454063447592634648280583833635364575295022495580408608121416231334192752497245728578104489710691259321926564719113986434082765829799109413937013916221431861816580437902500366127263219685084090236655437220688825318315939637735785339430028610103791007377356073845555853522909246546168718892379247593639984150743199717554589569056732916419025616980002556497495991523626784124480239312826188339685759703558000744733031564562543141253629604495809456955822558690585507280333781997751674470189537301468802312005142836075541402102544300559502018028513116110679455653620232434735841509997019310747156054739263701537481306908624471067780869912233858861889999452292792112462680230969976774556298168255263126117693785091144819557785770830785366069551370644282315443653115740358033453522945315509487864137344236519669288500052962421900021702248352082764713088258786128604775270120115462313982402252637759504935940240563676266480370672163651762917450552503156772754368526914892001086701481632706926030355688863795487112240241358603713073801361643986284144687471927350551092312547902963321426133801442828995494804377103990254469632556210955891517834726098538828748765395406647418963347858129938130188752134339765927544616630570611084223680462501216216628787919440541533090352917352135406931169613537187780784093187275809008002669900423078091243454385796002887909732207891608109497902548541201956964899693315004335847630337555705108532895207408884254055757472839054633163593555672186822420069374921224162586023457334623114334133611766257953602832129309620907881078242970343873563024626109843633053858475395850146233170758465160650684052239465982577487663088468323870121179913859855433143262404442594784245271747800406957996429632676496895957650048701332118345054351295762376040825931525721107969932119636719346591690240642651195927451012678270743713148207418994106494436764428953401833492762882683772475392291864171272488714825625022915407494963435069812145177441955801919400453467490653454663221858430643512960085180626426027098621471416823519774395250023779948236592669132297965470856319491122742141144382994838253338307207331760373923491817422980819071553232377035682203616832748881387696446217461675313425477040848701961599271696444109054299099404494147611694559255945103666828833207039734035907679213495294027590185016027680956945703475521176290360154905695828416406562657217669950811050408873495314322398853411371319661512893797643414869358733598355666222116292446202177110210280295183136646918993351106383407024048842243820765987113984385593970861705649763308713832391476852215384120386828799253418600041512603003212482469798770392250923561761804571065740309637423438898330237028814117980415168044435349162961611218472114192594463764800987597403593314024458921478872553745639565294172131485769793541656108328984325205346693956722273653457522673748647644617021557626670151678923860833895551716759459231846649002312824402964715112672255232385276758670869843094885090058320187670249000370736613726271945248555938835920190247642627140345393204241261373092168508859041633167993650851745724353274999323693719669575878624999096794033422130178510108388150614592662675449019918219061207288359214689442140880218799769624064499958322274787036889572613917153090601902019472543037019979162501218291161151438247653566012883868080867212580790225537187614675985191785933930341093974458461301645674613902287952065419919735460445583898527853799705286080971770214338417012979971540019760720365699513110611270606566254940668068994809956743808615890010286622138079718867969793669188890811812380156744017870396897933887246593554154783362965808025920563846670630793251201128387518956819993251047508581077907354544074750298879159654784914065866758046803881543154722075509665966990160406846463580199859072855305543636813983227614336072516488951706114659023136098160647292044493999644221417306291762778050912985734382888877617170202219141880680220354190161934237649879942082114680395914871540605028491789064470671966917020048193181915907627650307628003213411593790205314357926645654628907954100160617703167459621054431847966465442080733229688821932346689038047384566908901799872129365981173657871943897947814038105733991010220761511892655240629468028353779259858407804284187320858384199969703807890676142625001763985771120866447231976768160111252530224266370554576519668433676811706615087570735144310741610966595449443602061282063535355076312705559157411289171289146685711365366036993494553330836233465259646058019022156542136421036538014473823686400637460650170181515538476806798335263738931226227122471908957556859891825132445182070566804996690082663745787917263265532977695312535251101895641390737424811200557687040524467651476857966346636572906242961666410082152013981522775981202628672145018929295471813904906553373547781781062544711759355291876103584315740368861158593236348176876400916019669072622807402800331452753056657851223229752074934454900895121903152286481447442895532350185430324858007696379955812312851755505771746580149150717522702176515850772141870786108148511027116489399329109454006776149216843648990790646657259090238946295870214897373643742214360745328179822417080171838176929268392056194860253778965647502103482647549850045359649015786822991238563071880166458482819680739448934128909292719442808993237488323395024641652607658786601480022668545300135486087291536237791499869132602707538959654629501670949160756867953593165990694786425611795336672212271963675081443142152250299025236519567715549039190616108184303872246691205154038311826076370992761103026608624814462000159936948408781715925905124613718985790334063707779409136772087139218579246154305757674895921795353194458460550575918437466307193505646690286187685385380751500621081296001226642775324750388184316403328591469965111893254742753010841385545002933586898941034549763874783005914818156353711653178322839318590235523669575918944078971826149391545748169899446743521617394421172995700247743289734753604288293238824282178947090215435369442653637932977137988526305305659764092370719694364056355310745243770663944099873174780502610622878763232712319984474725044376828159457914075065085752324663659321287037897624661615575483145121106798265652271158013241347590254471071027385424960883649084852918932913596369565371524727793785598760131749683338689180455464057988555051422096871603341979828975841763780848276395836320667869656196705375394931654233510877187696294378449740639698495728940881028316972236159033123603977917529735181293824311327406550312940506221002042807907324976528139788529405929131946775676517577137459315553633937516892400869849111145691257242000549048211354613250594568646284553778865789844284074320978491886068807999269159874444204651722205842408752567474238364131622217130515484062833680651334533300410836950924637084499392961859715833970911856735960329563858031615397945177379970474722485966950404579720136795917853341162382307283511885726671481834064130676562260820828413423760680891090027170282196413200617763542216821344103270564884429009530170842778668022265966397029664899777518459522035496130489794713276745589483288638158081991580582941572502245832090274062766654065180218345289817821483284672366992530169319236168760228383396732909384241532223311743337370481219119572693615679637676435123027287414899473661968770359565310493891708299623891460026982005385074192336362772464844098801408835536845482433685611606027854739463522300232348991205482413619361148313476157865542768031727977174596118748816881244858290231384257685172783855098409529113909999224690251939719792081139505561708074049615008063255174102544713493033815193974142639938758402678370573105645919579102325746054665190597028947498293841494150450177358055104822586506082869754262548534204163807759397632541754312657653302326654842220491155183896756155480693727369247885862973495486462845339910440906373530287609672605359999531516156919712686856041369565630744147346849358252385723679225116285360532246604651432440332469054404627126529629302819135305934492463560210746922835580673192487014509468242942301659625632445203985883299572676757740598934543515803464071159669865510193530927877150053520090358083781673914239251191183442415521569515513335611368248016379843107008205804116002724403264233309708970844848062058021589652665459163187085283924150741425236736527313562700054048312048208199124700254191594979319704725376910461848920528206505919874774598427907580219992037684756083829381220632414409746469643063133280400751547791855818726078860487480463386770544672145020302632788236247193784287224712925395667590608440325156686588696295294672566385980973720313291745778239117115669027328165255058270868020099440577777496292979928296277819192204976688464780938931192438613718322359665173201062356704095366338002598049455075726208139672461130806252751761722593344048502569837091226931162340203599432351627583223790611213058339418856715968369021485351875161344000347090564917601443311657037954946701356232154763919803765631826911672418448772849278113224392795663918600951899019290085768717351394867652205360117551086069062681769477508011268437883193797284690329983268739052473228038870313588931414795395716679891729556725339541684524857247982851636666544440540158729233501154627959327617954026126436374124109461877876752652052771349010937699984170889974146085270010744534168942680276659375992635151450270136329260807472373249136266689625682670775542915522851360023066192380409287413488315790132051791245803201089910929311691990120649487619267119280963688087394306469826945724875687226931094653119880886056010139114141548272070598461164934965907356609008959747082230101837487041152847007213885423922403529856219738440824623900061815219954624010985158661554424056883593892429772173370626776216319423503105505647591942566733748649650974334762435185635945318012303708149931314267736788287636632731232542937574840754726844183191907849072015840816977707396212092265431427743237334039346391177618713904039170782584820183380029031474820741782516298771827943240953199033826510986886717057979701601150773732544463883673965684564496361922953895455583332116328574267817843918710767767088891863851354765044540150085481070505850862926718331759315506934164672267073890202883213128071704026469142684368721955639039699813126793942810494924711352238826527581662066668838674041241854620298923207146798017193423565168361777045395695926695610772511023003709216649007975421162121494553709054241117044595094438256883758025605856945017230001399117133828549214633628744569466569804599716706651518059426429998519986666164349540500283502588886177068331449664465073468026357304125731728329684040549587677541991427139625464563949533442241372176789895067864847952007645022871523601624530591136887896788403588535213940436043613510598424514860697164742346932069885228983346206061908358340212405623891804227536782747912827273327980926753656003234912509601897369261955268783488348010873613926881273856563217237322010737884770187769076293039076556702420210127027123310699127838867631630634463271064729946367450769563328693406082695413360179926670415846300224305419916799446293181010748781270237519265767229023912133707667146822070623627954625614584181722499681014981573626660921420500109089554145794467157238461985506486145231858263889507117674936191450238166962065090936050546506766807417013233580653610841541172467938486658662857645183475306850172944460819633795602102996297578145329578003911173444497115058344687041740730097931058965505480920914338778006781710092786893838013491856911618097169508168434240933192050033500429820352632596278739802004487662778777811275563723715224046711408751384545602999277409951536509984589145690439092812748092516883807981828655751103080258996951183026818310640204361984807572576475244643271627076988053959745975091149327682141192300811914169015030629509094269371753669434582678594790463300734651076080571401475088017482254975024412037544875837391640685779326029285390201857688449527040457137534583521821165487374461518390534785484139555015995239440803227590146935126426506480160914213030805257408031104718920013599205992976882426496445519796342981679392513812063564753677916635877413785626131254180874947269742989407915122073157864178710139060599979947122561015004063682347399690578233479180318506150775323011544905248803780182971149181175814204420316387983307709565241818465920868054008810099053353535132660278355409630001047556846852238511549512074054647533528634223142617108524580330378543514646789641949442683730493866033425356870593453111207498600187702451029649388084515011664717782047985691189717143551252984219092939683941901605993837970114136365261410137920974824439584709980691935757546489631008223633503802162349762394943676322339506286076599807174055200904086398456548358936496919027433670250782016786005520362079644394229240385007566014507076140284230671241405930268006564202839352374072170575193719950990582473843275645112190047416192526719947655289463755302071067008725011645317064598591207337228120886237595185252160863603991144010708424447703958288264840783431385009420937382178216185500679360962110547604851542363875802486827764385875903814289391476639833436593227170946840790901103023460551198029702955969704576582614294895268349540998712009094922015061004779121754244225075175373236416499599314855055969513911308650015416142846262902706113775566349896328515086850690415447947286112179832246346938802827526020944518929187691810909002506574765802981586454424202006255526079232996266436259210489575692248145495062051016847728053818414591902560799517739636590742188520430529348962851294805159380663598684535433723439365508877056308099678390248034527928154927223006924795694985473251096341905832741574076807199988896751687176392984469177296786111882480616389169147745122221139326219972661373327617523075609946990931911792018529138688085685969451528749703814945360382588546512295996504824911199712225979607655636965087311899616319426546403767977906615308106908998424532954608014745172091250074749579201766091704148139320561553114929601363809484150045657007998453828582555883684019526599713056216042752391686233315215799072694632255407048078361671047016919497272688459707349684609241288036343113798088224368087427050423745439825600138425550643648007792735215915904513467850151260831895012261554637742855488501058861225902064964529049576888932343901194577538556344450715071880239284939629162527012524410247107298740024034006444998474621876497539129878927719072464794736750129438455758003946475257000181654944249000921602885751112283948785336245963171394242250195476115414181047918725159498910258882330176521691916638948327147727040356812119680216017454431917302582046149844619077829154328984576345721544849049016121564686014613204060928306991668968396643853719549926694118080491149334862736044492128806424497211254880987006746693471560761563415983068166976858114656316828954364151781356852204294392474615811647022736191184487929535618895411066197514289446765354986555436836739627362965766455993279072198944190465395964778647839412174316091726771865281515524400741864723119718470955537570700180613896999640186051884664839600988803887618644685618319277671085384132139373589137119416820639779234032642701849394863395473747750486518412480104453742049566591124322828239379505442048093196064001727608797143022862331945045884321165558887367003496665200935853216799249951405641702521739459203450915411228192097252007498167579845799045332846196570014973405393756483860542497311415795137311787901071307068717272777333374594155913913927650927247608199819728679053953176022983587701235245429229162635268764955614308992364327379317951024379412232749334907722825029347106684061133237176336641109790663544628029745646870183070101385461906678840210589850861839770388576884200164502822190451317333510965846274269831271936705274328523829326368447011281214477720297791910678999436162848568405258177174008660104190189187359061611905437222477735669567989530539104626358523981248766783641452260260130579838678286630191159452290910764710814436080072504814410349976970950781460685410959459153291023543897896599198466444644037703579296897496398618890248385562805093886271630324524615968495089746051326428335809202369278835233997317428661749015248829284037394974875316217940628549201966154043587497881502305557410109883465599061744502155986124105569927190062941909662994295394465682692758862318450261714510095042494909579287151663901917163689931431625320037192426217794002526643373726566798460734871210573690939224314491335948352293760707219154218320130273389544827250408108373457512924885220150705195977002148534489024885811753242229770560166122178206173814049823758429933208389731916606289922515198568632719150124717280747211184999372503303207880321033523749154471283428305011813148132650951992782229501771768385913822212359368179996313251587573160752940852172823054309613456813163218726955774733741337390120052532202152361691255065936796514553994719029153697120906896751713554629544766883169032316727591590423444259039187517388853544973069670131228950301723597315694344051746479167526350494756672138188854959497966413334883622039951339113739379920240457635668397804568125914177633550005990742479836392557869604581488431349474525026793293004254029269121609731431063370259673913159957249674912536239785374145159624247829442362836412476657432948340447261644974992655198713947222067517949652882425516675960432626589869351042300376167687435126822860703745389790994868009724446166976304433352926570411981733366979735535608715451345262980706651607023472390601905217446920901970809921125975800696577756642075541349809297265319631211464979515914829924245626533581742384268245557956673025597838004041281327654774394989234203439783032310868897498946129213439945659659257420578192539020811261538657040768947089385616427577732249070157656789773875836480328323930153497090442010858557277247638151633101275094233168707473247738667496561328986635993423689122777787737145846714507183119594511174305026635990031294966230863329779385771533690948752809795208922522753824438008140921750945386940536761492469156183048427724294758374662035082700092485044512634723388991939762000445717269393575655445759750167736338530919337035958363858820701568138055372276255180631335538056992557908148574824586807970625470437998023609781585388263309661680226533020689947919372874199322346349495748686420521245643769673606535629811879795052736477326375835335606991436863543389168203839329534474529031555219690836634749727907156163368024038578269307801131405083954745768809773629259745921913193278129218503403704490762876169035181837077646706776497786126496803484671840125406121693051843934729565788377587203962443691153281460008382320550079062431141863829259894823300075566445471131845629576117672354744643452409092897860158949074802492083416467816052777149305686522220014438450607459641843757408478839670468836226456230982232256662191144212182553044918710491891276998733700589471700674891935454651210910775496063864918669034284373272421637605690142361464535250658519187962856442301390874862798752549274668160429813175595183260988548492801823025558961812264995513078566655814184923209339151220367356755232726806771025038616883995064037207425594251254572568940445860013768063526559798722729839945490139157010553297325282856775122048135229022722599289934231732676042025268867282730724291979386057543233400993119778038662112623716859914724098827635816313248650906797606938662300147355826886653640248312442807458144691883929922519203322836665431533403628701166620307220504032833861657274693451489404442491438305487571158227672940987835162871235345753290271023885331389848984570924006275378976677594018612817159330079411011253930029357341604551695075348337591837310275350242715927995286709731132464506506031048800796385225745597713488340453000414334064567447293520833769054252839198965321110138201295550715278284060979594551386773571372259868732357312373671033068890139890596531432638872174436496107881174524124560620511125709342215624740351936977110458920502990272457384675839676678727589116524499863657768735294724764455333942938571296399279727024757242424674714771195445038034262554873280363720074630026872844860421464813759933994129723311381147083814084544975890872355820061961181755933422811356323882321075261264177033508545562289407201734845478456483570231176421813580251447939838291244843544975393024663143366957544116746661438592017886348511333257530694470732424237816526133437768949399938256069384174760725978963925997994666303475028675965494576721006703092562120759627239525087119898096711657263704714233459036050060195272732764142582570545922745508146417378835708574291007652192489556525696302996369337606643423245420724913892788312045444686582225626974684439831452417214035572630897304976300546730383486219418473424005336011173825531343015737078022597574242942308370231275572615700039646153810554627691523783231029753974144511609424968762569171814771318254673225272573053061594316228835901532196214186767065105913566984299672115781616035128079146899114128147806557123816938865943063126685715306590312959915456782228587780447516168102504361622692998273046969159926391154210563040498110416518030458672931630250315571609702772124843947319383297793063340628922170925711079032678190860731669507878065427702595882127849327669941853718149789057500035325728268608811951584326901851252385362111975623777070250072155003601235083333283746283876359186136588045513190394343527606029034352600433753424553790203453046010488790921912004391855899816884431050450876929454416057615533312410227946214401532807715639909385092530832470018888786598773038566811361482087497367903458147185424520442160383890027707835339342774373324209377703787006302536684309115947598689341002943175992725601643810431247321324419693620339263454472106603353911053401639950768782195885416806986740952719690070888008910025277577107503707300597637125429913122528406639023982848491973050801805626387058692648279537223923908039929314341645626771008684940520318614314494762837365150390876711737395862067385745770414506816523644360364557981618472023912010127265138003516092964701598751483231634016875293753695877959477777477143702902754632238988506219872165452952925891587817743435985428531111702506895992434714313911575310132346320487252017959673653233086085731822835622807563657917112704279899847655005780773981311128501817361957653374705094154749725725596345206613553704413047660619156093939005166488011628647896814412512185311000810423706440115468173703804800286775198342258210424943481117155773036674372404612407374299906952780300857833805673135452040675155319986360816134193930364045786742658688721634566377295021910483696290204442548087115615365589072234066110819025102183868214846331507041115584166576059721311669735549026007111987241189330642975985073111773360077422868519319460021869927729488348714815226203391706183712241621528376572496927580894002791416972753442690717888691170341946741330195616423151687512649129224594152097972308420473955731348461209104634057999196359346609051438403253270817220621600683600207528923599936565148385078697578522166466141356949409954015870136088462571776851390586128073601125467833916245747863995427949503129902550079601585259977873495494679596325287065873432541733080309893395677311634229958983115758709134002122460057599436002007143208390091869530401791809657060309372523233769730842196433214059577394942818878794425275644791420508149085122122787787310026261439263705681906997333398297656773899441163796299498274209245998806299929721000034588432091035037105302664108797878031509930062601966212385962608686123354122648356705904945415006596074968055332953239569156876597898848615491394426826460873868665351492827068470886628703439105995092410391806172499041387502031935221999858994254758258143484487440251503802143548509635011534991319980398195539765717065388220425575022530287830723589611724697719672318224266868466990586448687910086483544464251690358000820421639326487086052498567617065062531681945413504524069058287617451797591160027225210694911614105830225920851305075813606304225024996761681321053719411883704931745297249453612430459328395196675359515873470264286269885370793899574993442553329835492867164398656109191452267706598048194481269934567109650653382707147364078461380478114483472542162583488557556330932151215061506932028749745114870534770175552811052262825361988008024401796388786929651859845616173680507502839438275843871935995898872090081510688083861203540859490625422131733647970649221321729365529648165702586677788005045120552997615302053878422362950637463622773235286684448026308194588766765729653727173433874655635103129773928348713144304495103277058145406072195902569200547370433355146114859407677583083070495674103156524016145990415258418187495464268375904180934661521528109320882537171480584776647601445232458980409588576949664667392689276915365571884511548883666397642140010137445920982694642197663470221306946459237744616522011075605671529204409408260327157431906449922852844694019534898173840641920909140673503424417133742314826205573134892855486984854128967091798497013990445451314796832361695147533041154825167654026860025147433227825726077472381400552758152560046594305989678756491865203890989111206788293803648765283914245422198942551566235189517767364180546723999271440675846682212505144037727193432832462480655471407149488569075276174035662548032294344005203460325031298195929436249641275699704414634045364752227517869368080315024400154477755976949691287352934097833931879011359662237777282280798793635336464654116766762713616823861988449360370898319181846362361148497318875909494494034347352507257697643317915856732369094478026330440850511755066448999923796060293330747804011045724639638935248199434567534830343125225829519094493860230289019322170674323187277649952333260987582505319713807104640253354481588883365063932758997505594446105054415522097305193114700887554575238217480541990692442329521100078370008624470145556658439657769045281920445142542735314323328506748654882992008221687984073661471328126011180917153823150794351733612527797108611913647255975400461069689614964185394598603315418739276609641684915233501958719094490795241396038226532619027313158266277824208548962248980930045885407700509642173227338116642516413390360437332959068749908037229944086514993896404505652788815034671939357196211271656047210390851065732549856451558889501592430269519498072361395990710283562664530104253093193507735660466685405766284620309187028465315914367826284787123612015493005263989889610489747811367134516593197977569607547729360826093940158472133262634785856023328110743852324348760981173504382538803219457160524455055000662336981045916576627359017102859086649551071831581755265720708622292527345616689818568742321281443201610849747026992376082561310937038131098878221354318306967213406325596017500378471381866821652976208061596645289599497865611211842298590044760573104043049409450697759377874683546003506579046189030971807418130440970369053505522686615672071568508171278663503876359231997180257969829217246782702618330789336156558696122456025861042896189474392211095993390889834123467539756575625024339745709887982082059686703797718064133276675991522522161669563234504197562579615328439167910649164867144090070521004851059089201232251962091020945991579830780653102841979961025687450712440976802985218004964407823552924223713873050392192365587440247306356088469659143113615626305361670972181732713055064011341648655841183689630333663476862247707592353430208626013522435097852107539460403979631107137761511638941788858246784980770107890166529045831406237862233113832353842776398529668685084806570494520631162483965776711179952915278691883099824248465217744948252714818320581978812396778557778999457841060839559285079039437653193058195243485536622312313296477321092255808606102371574380031289455637080091104496953116720689458808203231892088460915028652882311477374383510281200987042388674404270483192881875901961045826565103265203325126790667037898061527771433980370605988198227809295237547887358553234701991201240490551575763379013205736477191381812344079117528983491877403462342561454171986046641528757007286002512370430487090163307817571095342385827533762479498721518018215366398695483074844783426799406823822186575154930084886199542976179252449949603261205419347308408469618122479288767761593040174616526039538554684629699592876317127260089763794594328647900405451236864908515965877514107312889120662158748585940518449523882031294132699105558765551634669954734072810180872167152052348989034008726175116590267458559405028845104631795445341476807826027545020984860963028907397795410968183567259838438198102700886911599339062654044262202337709172608014607787817530641001570417073324833184603141668147157558595380826922844663162372708062047823366740659993308315444222659396398413007888197810076785378219828520963959938666842413160265717794206478688215371546291372182126463865224521596395931031082950182067233942781784896901879167582834110151279118587035086396263736528859616709735806742387548567409277357772911383545354851425719721622643610656687888184600151652440023689669883888838164058778807700012279084044464311703261465192800246714100691067430080315399114269057082335627796014097471060872554394171838181273144901176607389183203346811795884282655672304218519000963733191826303432564113638999015495850792432533298681911131621519948512408782157280318442864687451077428015835939925658869070869909296707170943480489324570096930063793233696622340783579286268750608424550612975159397416253534429572041311963285389532850850369663889809847034803433669817467406683335865440282344047585094733188460852047976535752445387814538278402231559817685836466902269435375434885824737893694654178490744436262782609247945658645338533166408133114183433984738873223437447812437771695162043609183841669708287988087391247394842834756350912140261471542496919463159809436921206019183832303983664162492842997703430011303711306962582497271321902307853260551286383803590704934414616149158531587296174720876662648792428745871678593593742210535139855027260900222189363648083698329634043211648317143632959352030399979785720033250798914239402577157849228041788043095838788286737785803951182992524506738683250648850879958756218734529480891407132671033873443598236391369613082092859731093200744900250441489050083845043427679979036175361812884215491501264884507028833063401015366521889558846034581904078922041445617372835630546529000597475497165549972328857873364376696930159285917155243766768234686433415625437123762954190780740074517153079007286298150499551551763703124166573947269284239394317284145717484451845029349182919553048286080086165636643677070155450535872112610090137538827524826364183114266172766000427454471246804484803314971451375981316421554951063669708074232086238367175145103277076120730304071557682696674006783769866891694943284844544347566062088494572043074515326285375552556291527230513055846854524105502846197138026971586027583709714586956081137091753630711713504959369838805565397710145851697588769499193742390642442145231268745259906661805257014756666390713623281812976125170976962933151141675221211727994706184925225094759261702083137296368151289386766530635694729476589432962749921204057732692614954734329110331371121109397221989159647870574761427371298637429605847207238126297368310975397901960927238290790272157130231423231949905602043949941231992083510384811745451854254842066293250870512888902371614726887827883970302851143905360782219913679193267768365394395829522066620633867876636835831070044929021205236674223552909228427244907296229350994120108831633906474953765777897594945235756260102545039267641555150746816534244961343740339199943112178791098235954776595373901364682721186896473992485313229370918654929028791104359120846484960067223062094846524079050992243304923752192178555044687865848644164873467485406140783603989645743122337337857920088927294423727830161935930934993765037968023148401062204055851419936741944389362654455977018559651364661619895508348398072583094736255532994395586059952829025988433188080313109077725934972349286618711416791721184893685825795145696197133177668101211006325812048568191151817484002546697144318172146243033778352654633305464994274514017741531976180548063065640645453966311202771627715715178504109383530297521351693720864939234253983182612660991850214011107586886840156996917061705908111644133220097845853417325810245221573883157372237471890379064933155698500971060922317977946510808276663722461527133242980303094484086309300991798659886637883923155260400511669936680824037161794450892051066895958994758535529781975149087910675525940398851921719818683192388947239400960886570815434816071691996836440398536652995925204537947240021835999622371610150592071708575171289812315418827437481736633431875200362165902160749374684420087225348294865796705923861841561614845579336533886288534083653443691038175517411267262147338143670888446627900017723828196514192926685357768607516965473201629830140870942288767584258323649497720791582638138047900310305264549803432120037564069540799858932365602780118547945363082750868847520210684568723305913197340020798952709387925921733674476232423742982632190048927274295450791263340493829293852066571725598222399166153542743447992432837629806009263059362089202687762342766712543114949282868301459475204916539975083870658933618900272534047899256949679768474484073020721379194664397346782928404689933174350188979322895985664312655548594944500280298404497164300078720328648486327460811192628405477215416944287338709405133595329174061581985208903138523876881364854938882515014413421555318680980906588751181369813468874778480229706330551214108571011014891611157119217951197384430966424688348382177560115682068717418061785781250320345240577008158742109573647215703927786594069919714501841190044271195607989574788870970747607104674318836819957444167399737335256449124557402007966252930630213374973462300104264705688813780343395694088070988550671545879103850413658061573120691376347622557816246936908465251629415834423845473938083360317594601092380148785363811689199744642113447625706528826292110076889362489959497375271882077730080324176742705067603162228344183522790924994241931384750776373051951081785666570245001542556879974100419171513740721095742566299973710116035972084215019753107922682901283326420351770600147261452388428689501639248115038994631173654753721652321231952394205782612430865054649622395977817491507444133927802732501638075199288554331018412106197115621014228661113188913426626183911780270818876864629654617210630074007803456949523946474062256518207590543669415500523807779365801126324721269910382244656749271768768194216547729662517442264510751941004873353255883408430487475930975362224679533816150436567067604124338309773731137574077798144900544739177661785751693335400786477610403205513312743437634299989174468663826371731737505169355818106266954455686281433039715132953106924810418672265157683663342430032348652643628739922917950460251738521986692494329938197980875419987725556741145461067806240421720234929336332122601026805223212200426738376328386593561305322461730986372137043778302374505557196143892851845344536992863656670962926807622593569128887874982324400496638494113466373669244697224325872354845718201656305253138540757183693839178600965595104610884228651020303953865984971651583200722032202514729437606326778243756069483353008561014351066148150046801728110827572938961449650480073112070148484127241888417354480333067418745678868786626895145332172774514443281570310539481431219337813027019922579242048367491605521138972124267447878302308587794637232167915480588399001095172832864113507441150155429704928935806453626930920748651925828684799338725288941499230087898969897426958112787633928491094678611939125071153119395613221838750225030899037928993168610051959863437150952202766717991759891668814416012434669706111790121225620762254320480561651578311719030479723148200717669549748362269235264415790357370783546556748155376969716418149539914900522215650344289945963753656816564492014172374772175540956725641855827186577542531384835756300228627952240564424778223291135032473218892431371516109643626426321781509759443723673147274321289983654623116448061348577704140205534795140598573209204487139049475827902409119866837301234655287237074450407996331478466243461537439269111440184287656947053397245983700827376376787198934991432798608563662511167437880980924276708690182929332430825726092344895680889463240484504689005342797851862005792433807796710625393040790923946628206998751954154990128891714649132811513145568659868053094828684333997662442980351348483521679669271761937653142927990559978006395523773334056953097082932939518978066177942862741359610845930378589767234521827626275093696281696234602131539113895052290294060984534601585475083649097482721734256556547769618991375341181412157520919088683412166452307528304330707851911544941934570467552779390629884708095387481956376351428732267892727822899624795704824559070213217995002273043247218792806039698446005234032122619021550095420003985201804634311099643687551616996243680318682788836065908079364240202308896530093082715108922412828906219250184427508323238969083827382871159865701388635216005049240301135161259057700688784275246883392751156169208120638636416739032206940511650292086544083211995752698041619202950092654349376443411921224789795444941480582268308900630133198513402409198400645069861050234713392636351268902279776004580236048969835874925881041908746958170550250865708653286968453721439561881791218213757073519863335350655304775757524200540029946045844956819347228093078370263441705084663017777952224675398971321400684288379351147406049188191818376168462713645723849097145105375198081973974734918255946499384247188236464839424522038019310957012972364047839675752543380400592069757714358149381151878921625262569806732493098132923869009933058417893837735952078172376175277891825062570324760681243911173010515890216093032392415354468953437538139557968542891158084000873021797160907589692816819144969362564422888871117698066881634818608484455148271837677982722674180683875362769577439176386514078533580133893313893256871171917832557554410449878959420224679426837213759514618282716911862021677376313031085088467431733567744538778150621780849510135857898922143067879268190228776410133031061210704483339277423143541722235330480157409555385550003796628125522774942428901467405715177216246950828773103263098601585689760987816963518736186672817323389923944750346212960011154611113789740641945396476544620951599562112407597247328154501519925716400196033549831478304073665425432747780385337986905982267228415867388954583327984368141265882759731733840004375707882762848597335069061180249422972609370046013568707172542005197557500364557996175160400998841173076992249913014432694632385598863978618144537990772002493903381794626924247565363192728895345938809732610177989231126405764953366280953351423955685770609143079677888820988492009803240903917902007629567264729461166494439862654649128825788835354140998916461902661714996960830778376843656879450919404965630139717852576848856564168532677806387232121269610088582801708057564503451100460459649766925283318382421049173033540903818394184572357123840991253547777358538746126119812558524592580854026971737586699735659103400869766906704078035476956731391331149262713802584840378012362049430227976680954348000345473416073873650141494856702609449776920509235530589217834606887827257789226488300748053509979949672010458981357537251940480598546408012349797372790417193367365298291445097842700431378563548896519451778448158109166881381502856339143841136667527556037760110815394948013533683858194702355014132657253042799741145529670420347751019246589378430828162947525007234230911027093974242035895617380914719592791353913510104222361841123417034363309738848385135685722499109120116865584554059866661701365259734140530733008521214210445077949775531435761709094135087738207524986457859631681873814550929418563397815283373640490437653968241710646234226192027443297960207109796823855689074046237843680986275429209755398389055574535542994763375156496888575653628746261230464985503425687055937331245359945354755229970297662183266652060046073822246868018138913413657358157546390070026286509447938011306630885024315964523151394793597530495325629667510321998294925383675864144486584254492154999496856165829777556410111501402725261890992019847538517168177086773697102812895230533700927422659742456481043413017486198738727179460743845746907495911825685087792449638102307854252728298838685289821808545253525559465363084117116792347643117539346167189494973739925035238899465990502635399304604491504527180178623805025961111247031459429915946305499559518196082711259587871928341278310409592611483514876730177719277078104120600155239102353158572020933737486508742836017521078676598304934314220459450014968782119016898657194360274351789597283047432775372887210054830851002174900261706203129517228579555694242950679472508777745514232158073611740516596136993852277426670914166381206223322856689009750964130911109597438333964363323225569090478431111237909976195621237990997852101624314128276146841139477366491937287429351697154603585304114661920323889096885711820142786078261939475227284135640144455227188583133049663864700612579483282995256150460596632114474431810818356488197031463918367544667688019191018280783246237888823927344610270036823125618620342720052335519386569570800320893359080563342850604606897091874869007257673995538408560481845609919713301683359259614071642291869492175452664701104890057326661456357184497434912009750210717496461119685480828768105128447004080466197596573191500482615272838119629913965872199632356765231981694141704885461751345026979386622692480083041506962572433046269763349653916694632542618588950894159129789696159645304528789190021247916041195264759343193474211154779115179785882338772206084138536062257042881027531382873935597336838859603142368336161875669501878446726272691639349257074922962916675859657551088733968207016212124232920162694211792823534775938333805066036674746574817310923250574924725465291200425203853764652930881785955839732864430587112949946538552566002937743163979460896633706517866811843179954185518512121044744835176208279896191505788307136417724987995177826944655715886071990365557320799500038669189521621568501072749130625319104220967763482615025000576454584208054220513165371319837828837141482077147950963713001016552192988437005833492905502808526361320998761580197887742116114915379186593715022680436460073832819437785726459767273349923037447123352166429017288952996302892279653148278719767021124615541228894764114041371115490457472462775172905122480084002926677261350270473472164180777592930737012068136027300822436124113176854959782192518617293068000967675722287783223352102068989131824124645161321068246823875749007490452338856222997812664896531588335990461311519266506073344135796260513023700205798331439864641252647383850231145403991924259792234220366126861771094558714974214352830560176997095471455824785700929221209559901243082535856393267466493471611223586892894517733427317693448147009582081932857866468519974333739753610516774868390388371352704298750397790114375181024326519204429827143278163292045469691591551804580287582406989347745727711614656593098380283808649095633662073178632819926276268077530891520217822898624406180298142983988684845436185633917535371715038106624960538334011291527612990049505023277163391981418353104603188577635618537217117211961090061575588294492123233163820953791633338839456291891361021517075210603152865512080880667016143091512029869773949271953728627672282210370537884537983137952374356397290697798537037807025593632004296218906955789828036660792615188428326111370974533877783725177118074139059052819412228241015410591013248023531266591213605492659284536934214181409486900276394520415093519895416004664405555545533859860100287754943227459438044851088304074920081796204884468338225775026431143429819193622668596147800319857416457661290435110363264444484408255938396500238833268469347750630369772046650626038964215183650563633975036266495427164377018259942808533310495893891191619785408101187139882947745559925937246366257149365926805942693570739859174611753503873578148658462389563200929850781478722525623386785164049186826596348602742297670540424584733210024013180131041679139221385051401611115187512189060416046874089342649467537043792639925976331353107794234995047212620829204145915055999720305746256427941759151794238496079899965128948085346889037575130841480403568761517688012382678074828390564280999427844990888235639293498806438818347209025844662827587060753733956556595525479511892368539703759090113332028245349013813137418026013505954343220312398234954337963351054757865701684156206809309582507913783211959143370612467868685338046225005971355156731944177611805880819272213405045394616792003348778624024310776595195345518847756255756372969634926590924846963677685914583160770686327507319460045524684196881898324514666905630398454032841903018860133390791666014636555417641059966954298413285178568464838988527868112936091727205794847920126413149349976606086974910337663857956283001370818269796363522909436663284198156371813825295301260272781959326876706607209093463359209047490662032112177518356514130803185751276824697106634104380608063939251257101162598134786954503524392553736541271229192708498658932650042893382153317390961066649180944808129224503563887458730271191955478264305433731756919572195658793854110007837788152608144058555044013641751215260208890357610287110885445674279423921408121423034550751474381390009753980481920700282195447542765853800002331586885231927257963137517978230782695824445815438235976154489735568057228798914227167746695316083538117620360762144563951760397012265719274217071366017784039363828727795897740980234827968784329955026277420245395178226836455399989244460391403171305190105719717804939982044892094486333561308546368332237978408102544250186733960324514054335207517213265829742675355076940555543686054606086903172320550267145241619016385305839511352206561662506023638544765048292310488943924452146195533874962580253124869277222125989622545491709994862150964589316594465186731827262930058703540818984812744139282027089943712699059736857924199721626969250432898144149774278476201096552973396022847853678903349956378864984751986984879433992759912707712215703091257491458173378476958330561476707911764342428852470685544056928709042237474192997037984881093155110702506541048359711741512600348908440900196570652585819477590044539134510951149222155659358492333733943595305939130052781262067316001456951983402427415365748740111806191742520396961113987169262849616610844292529870388320289977199347468201313236619426050246371794356070374572394342012322038619623687114747708731293739110184647384615772875397097189090153016984453786318501089167573779849810108664278098807378655912919455617144606739300477494377625053143400219574037581727418688311330697671990236704924437773732519998473481045245733293121773436496541437568412283859991545931306999324138607843832819057040498957339784025968009181246604223278681590154620649410081761930004966686419086727691604136542247962662379575121987496535293983693606669161181093092174806645215871253206642069627316492621907719184270048352747746304614763733787180038070463559953306192803176234136599892562727835246827452500194464581322245859455368419202163791091179395817856391772522984030794825504700908937060725129201279641304813110093445760244490908179919648101610290377375085267177482274816438161881805469373571106663380110816734017926371602851869849795315370747786556455902778049196131969852038951522517681690511590756662638303189394225429821055750274447304119264327416768679403308629614457163014085374875016760090978179934346069187782605271545257359708270235447359603403253656574967070716169069793618403562742739511222341924440898847916467441117009288563275610563241541760228869388180575659896125793627396782967987978998021729845914597341625660133227041504668640072815163703189251677138043282024581386597405996335854101579138048415844459211778703478868114604016271428599784922137471945800505645954473806739192245380646282375509272415528877026509668586609198891416957035393821926873672227425136347123902971839451045579077620029735174351169718503573402743444960691442658239977219844920772772368375505607133710829813488245692340551861642256935874537507622998099722338567107869559380002466134035926757615764462061882342583055377971379273996100297650979672654137106238893830752964727661664110699836303095189091755664573796565584687692847342721127368370107745484766642152003413582476327457494892127288002432890591103638621223069016172319644003634235555777814685043180632763812139441562114073657999209952549501445318654445733298176419532318496413032112146729720217170937649421095529131428357033277468189369075370166521856195994647244511338879701486304857207636455477673723994104828952580413348167847489550331510082008065857277174195676458370804824391922580334133026080060382248323619971591870445316335423665555661416818393671325755077266125405528533814309774039150826432200709223007203262475040595040255187790378474751899789461551946723802730837203064433365342139843467370864873076413740895445590555489250938556107595794643248828319018845095506243831578030402002834743305153091135611773664443795917002445508539917909195025754676569279703509419419426569760292807561652069333291091762616202114686478283101206506117573935851785934064135755263564792830843980887929981887205981838708425988487601667574882713207785460725247292694039234758887097957211853921242682877668780325149053316722537504149281217321832513057442431728039044740621153692140103958939106904751839831166169545895275467800623256176138017347500586589760859560452048422815686014701890619958481024980860742002020189213909779625592341524517728490298132479224956355999058964661810739727463056932945299300388207188690814360643656816601097348340904617589219420163697017380311166501782681958651492629204926608765594863005292113528160667712040011815102913283001476597670146443543533895648666941711581590769333638498787759568443119505034419196934823272651313208374415494034711326134733477836329842035526059267948069946450907625953611663006291916516010612034057412912371469300953643238463519133164467904258062310129363724828868719453020680681569763525169935285943835254520557541475204003017508182989365449915616756072430148504581207180629102502414413868075064605112446296215840018707940781430786910833519710871303748994660832648330486783470485805328481874372912757991916832908084166192518364354194168449629782475410925542380305172753882136505821589719833433700397498210057267218445092235585307319873548473550616182372130659194862295775324875509961183993612797076699294673204563767619790219840496578365357138059285332058097485865435920280980139118363259676855410006726932246672101444260237809059155286871790229725144315735348739679965236125867288337785109207112968280923565232320028235866827869579427091767852335274810246500979302973361195030678859620146389850046481134391596913924561332690072123649208005058983132400057223930570909968972569314141212468806266656827674734269914579832804715963856360030289608318243940481137466245686786349820735422517355085468366302151114493548356413299394402648764638868560081038221745817384842840250862446213624771689366209390147163430605642283716372501404864511460810371864300773813260306676905080205039832528882699108780994886756943733536222891286485876195988883202353317524797628772714289117824458612907380788986990104376979306339724562081424919964844493774983847992495394033084616147398489771399729259948005235070549141720281618789496220379153603525248136361933924472657391178540647899538191304245741916561181182879497379806298943453823380125506660874250342924182792538592552213684237789428812913741676628050935695835286090219224904483725766338377475180058767619700517937658674141688727395474222670665411185584121956695792502149760427039464693143786677220594501083828500904938804505627568203880677756572521124342563050101745539218707051378801144767648944003342869134962969048255968566857744923564038694381495527576511069909818707879559081022735071939650098968748288608192205274594501400365313438124723787500418179209074436736180326405013039980862167356940108392675121834367126645015376458879648015387774011564050040826747772139395594612168440518026494207866256539504042895306916910958493676348639490595471611882327566575438585930159169042853881751034887545976582505143938351752675267994354703958779437754775672467556824189224297074203780404535543177408029787279873165593138476603870688365612078517388307837680290736845348997908076786439665863478308388377586053847701723348100609910677526770842955451825170236168988733458218639318571010396419861203658259211899161251684023536318555375947178293993497404674235041599685014491029083548393225652238218402077159353837828091738563391598029787003285925050468042686145986575156631659163167999000861634449563835163619121611050173858327115093903620153275135855387239487851564615764397275395407985813093645332791628028178510266910214811638943766480972722524581059200082958630315112798033124278872629810258663867430406086537709026553407061564772217820931937344997664550680054547278515524673285611386623813447126576824843523794915792753265638774474209073052256023272601896725260308372180959422791194894976123586025693504160418106015865489815713985441284510156484160304045131893993040120675083046741468769806263984752050098771852741720315419415166276392244338560256503828282745858965134458973086745077924043249965504768695535462270914038257765226113235507230673195257127285752784125937372311047244008866996892554999546365209348071575646547047088112443226265798644734478908096376902768402706328290554180007917416982855640398345851629984007595978310583866253651858558652710127226923346698511330349265455313839837422539824298695841480011425639730095900879275465961593224350749647107021131001316732128234938739222720151470764325635163226764434895236476758124455070166818753063265234310163722178880840067016716016377297102917608324435628132176208616979399905415803168703141581419197289281134075763149324198408250451476834151232796648072364164101293893561374084197802578984475447025170799557926527695443920001558366444294092193829364445651967658820272992812732214345150002330141402977126227806799603981828002019713294229423874489385380576361276927633335925700713278607372335384646583417711845082408305109999353904997145767518321024177867891327100564712340149433455089186688832370331299705308440888466943993727524000235967313727195222662558521198672922756995573787551734653865339997325373082966072383291358996808460424639406662903430617954029020803338480454330529395119047938243580769554651377927137016355578721110411631044042120110297990824097278148059027736122948520424888541408037785658052877301720030933760048320442992588834491356135538112314542164204280550184501746860145258431581228988901541191716740659608628211808612044556077767672334583197846155493721146536052468902657461984663546589389720096376321059764677524576736308163130512814159507864149546764113950026510430746968101157851641075696093517543496083459161372053527694582714769793833181482466739784011849103610304575091380797876681410165969208388571346367034037617342495104466120465251506741636652781777837665702785054150836218281380303549958087998698114671376397868636082152888971348975660046328963805840663711586695158674376740076433173642640008511164166554488234113844575812012752302491273782425623472633854882595154605515264824899041897443201069272437976396556492988203429067252150515919956555718528792627230704281505198109213822112530182196874586949658100043421886087436096672999567135326545433551469395464477403312051578371842487477033676215374695645375241748465464110698170192527499594074357353343311870502257942961020337022590245561625013735536500095122590369091883406818345597372270417190334135979207803233778410499038237982217840715026177706537114974633081163728570314630613602501729166842437014055809152929975993942241405260530757438145710621483812787075285489027295648259933313491522066400816910251460949521419227632694203936995521779149176665561223599414484695619106152328533137931247166757973416879431651851759239028091091291806081049725483714183722527613437076135823410912750315279926983884465625947310238791943265918616024673670041818832454599560035330533609633441868386797356401881966650313706170485657989571808384351810886232516885305792998397530175148388620862860700903601174085035962483679316919096348442048841117664863999547620582412269434854533007479352933734872404629549656365718635339254776909452107706722505053203008263909351435681347336958073716956510096249323404652984060623178942549878107723111882143106320126185913594781741012437161861628568985580701177187860628901163440525449358095584632315794894055713297194160303732531345430392595712575623071285991072186888209340036117138337762832838266156657732225708611932464257297797543596813822199181163270918705157717442149441572360916700383115767835876502053323565592730556443268632221259854813306374315094898056413052639472583587711026820621206053842241858038624522610986690992029575557950995573493429480225471575426561826599037010331480269084572208820995621201358523649447769380718824828744771986941486371155434958017726504769829994415404576871712882108071698439259528339199124121756838382343125018867710596234959755997545959694268481383161830565501258446897269348922230767114865818948969727083300710040341075039822055547818924323531754496119368334590052787468094306684445835476602727064138703003360914182302773908532887187851633988774454041824596619229637648372489155692771879305436981343360189208863017134163432180054176279810866253772914424653040356951592977587793489403730911783260119045045560828293074843476606069462941348906021496081483611720796679266744792790605366282233182366137347051854298792317689557083660590753065124456942786075834770762322644234934295640046441001413447565715745485138875756055335090558153579865717060851110708517225588580539029031747805690689046973083109566003683570214257061294905977011120922446929852435250482766549994327529903212951677663563246340166593516056097166755404347257693901089795647556387423027808368127552174714518185342248641035248650127629111608542500123634812069291392382339675952730208175049790183907906677463772009065009005478638162604084410581203773039428599313071737698700687280295115928158606315240138556845744866397839120534918099908129698389530247120357581180261351118464409402099179243803482383539324288922173978965338559870089462960042443103083437859397236770079152797945679760684347860486572767542029730950976104054936960325488311702484294930752011113832407677441582565821089993606984931237800552883599729625756396279665778006767568380144235066658402488561828789150358865744281037498825438592696364434885187322005914025233505001990506996895324150559395869170999463495251996626970367174746323061849216623497391285389055110639181310709583356981540771616651611545978501134182796281451738679109919517244873715411844712668243133554224372458536534979180604034612448710578556526798169879656878682584030597776399863332050510319441676441763862126071691470323932648409991952105701447026416440012158348374560277589858490867874486540121615509256804414735217275360716040247661152964892779884855121645967413386274720886528374758231915001389376287980880479981808450438782601279946482327481339212231422043666049329948553671776827908650662187506721302977516635215840234414227057743915335348256912751322839989571287540451644663133333926567823293608371385677743566348819691806364704310141568396362315354524832967595066107600493961992886753785576573177510816332351654399826765330064813991356354478655075513811040387241917126258088522687166182971105068985785044853221203038698289325778543878069639620183719353894319867092877528700303515896857695559480562766873401474644367639213731330303896435497832944021232747538667711351017416590101324269030312404025778557491224059618296875504840812081269488646269123683749819633979219222877358913468265168151250870134885140210115245289436415208129521316130335554579939180590402623581113669930414438161955974977823643305348253818586610343503834083789087353752830181496256177297361044778787807996887861084141573960713742238383093268651416844809015103157040765972395442115564748668127108184154107323127676686284056679291832406121258377419086786323295804961549637246464800493770451885317206294146217332097689408629028612996837282777255275810209335324595225708748223949904988708959452500448475557462726853639266959014566009805915399555573330782718491659929748267412653560144373409347950225260641770300158617838369978327279524411971125199448379809610040054851057183164571191920718048426312661930312557845666338814152290929776081230239283964270958813290538274614293561102952195275499152524496214359045622234275668927241816729142044399453096723192375206764514944345964421530302891824016032003303930197372656390424026935058170492486658892818812285593199285075186112069500840010488631841265675614439340579934127642770840137947273055614972526017811448063882586362837690102020098574945457901167931275642599267731531308293534844478587459527699953502367486651623322407508560023440301042672504308957185557470694108159461124159485448440078582359553143776155457385307725342217619385536510974499535651245176173268650199804193997856958473387226993573932725682979992753948824472065211071292488295055221369775485455164280269985096794673176610997922939375561032463222813883278175919501011600813253857299671318932730671228315495445727820858379999363064424000642984003078794342286755455119292911192189991275522928757018151504480301293689281067860314983419370928165366435114637724872496694928690114435217930834635549479133946120589956215722592937413637724820627277285736605190790525648242827683947901239473958443009472541868203796988788674819795037891748345261587957645172015184785640947465439501517914799737113630434568370915245355245407873124597721048262480507767684535418975002156323739705834495187368548691291676881298427806627047972676487327195432543501329898172654244535921764542722217201779522943298721208109067279686197015612911639483255424635247323626269972642458573830613750173474238528777050304108427458688370891783981187306819666956157128968860197749640639922425362173166537890323574684630764764612909981274722046176158828103617145560101092988039606032053379111171076815421251233428729496901078075383556706151820358538977063025735034911121482249145773016950019516688651574323029122714592394750402023319553719869299797233159603813973535843253202378284535254808649958753961541447971233407671385347605476555377247056870034894606319165708493864075510387497667974263991534717141989950990686031029757202114092111621035362071941810372974278977796593382873776232753448861290236617997992940908716956423144672008254577143559909026043130445395282978114534146776827125112211352998505984642361937202089711391752574467724589781169168640379919771372717637530536041640342363871213414268732681373870528069524124927126572118629874408786941770348133840880099517706414986962667932046871388112258159524918085456840935439989903241251477614995604867787644590418099561507775634985798398548686451986701724631779228762859987179242212575575146577912903726489129184198285614435321320160228912258041630401359037130299328865965209293680768295715585113707385560550535292472748368051417803130069050653064591642061413971754763120858367854984711924669824873709109474870268680823127814581767259318447780377709412387560614520844919755191016149330991197201333812500318867159075519506359769073174316538777827725459127828117970087223723571761663292879870421133765587045294597738566509429201062587116694656657006417417242613914417724125882937322848058241977561101594986142745528403354745539002423670322067655962939309394507016533531053184202920590001447984469910778363533588771528075247929723226608250669637169153239494224215498075297681412995849451850649702743282199041901521827998866823210034902651849829993727181485961859670606937486386730115632426999493322276189110003810207103272702271731917083064135215707439442359329497004166834623240470014662227236405183129312905221717327129169703323469305970346297526637781101497854091467179053564257062900254688156503238541753333442224687346165387400548979409820085154404412170040214962649388840736779256400846744039523196242515636498375853030331124532808670498917075846487194801442301586570136821027374913745150284581183382019017965913881145377938483750137257710465449112995777021952757537145279038901012831867374093102030269921574202183092673008920329392555319047575274832237383984395964335976191147331279384118399421296743891242677340125217692109875523143408698005934810092309055049466317999689998104622772690990028515482011343505930756501499124607479346748912979390885517943288964732688680808684291669456263542803101820439570160969006796709588327782488679712467036241529781114103443791036141023577233513016393548830518498100758769806842806881146175279001119514937188733302601355615460928300520051299768012582565552760207979648131043814864182631867269899134560603976907839637723513268282960373361981534758974742513244701921268850165927367135843052590692783884621915739541149339730303343614910425833871236907248137848964112439639645438229464137106004593084068852156070317743203654001980500775265376182165770415459616907526280634214542751092388986578043817396560921784338766306342778490413227368402898824302800037420944648603201678589613515840922743050651757617551826124230728765813706997333121622773180460069426335735821612626746659739621713858847014900495824065199826326721270296283420389457873881867437407068595922157589994169514452932234274987934411095319654216001320780690436123098872993082500513649718778217177761443249855995971303679155000352378387446921491156749292014086249359092456783028686863483880218164300951725859999638192951690264077561239163344243580174775893918177676044166504651659919674982431981098967479528570407002961901038258261809651669674213486203355612009690297813487531126486189869040139753183015852027314862408652679424194007524096688313054058370226723905055287444625653899741778610289807600963802165584862637210894984386384284057106556668257501581788734666134546328398103390792784872424279853643374388392507824195052324148299004934635321047645670529937873182604864116662385916410638737943920107234775038713581064429059085014432433299697933157151996420897757115336079977735788615708555024715083807945135663463804624970049864968131887826336145769252585978902478589054136940056487797010130383776085938881769053123199997593851425121739364119184838972678102775882715938290569719594446880054308088451646704108433345719664520007685856179621196645160263193579708567296253808740944257210566689214811188000521551124263883304941505804756771078806513300365664221941327775212483418559504582616612281720842113059093158763896510859234605937280640667864018573450732056694473448607185524729280956300021079918433569911607057980317891033768908517752300783188185803689556078422410965071525591349692805515950922807790207331974741748967943072189655439018061001566027583211422734823950465675373180729111048364936903378640302436955961829657020069644037849331894488372961711664827004918378672608552404362321412963363501305023771475504841430277008188015396845958559202959981402681452712739468726651171168464173627607580743696121399721329601328195599992024602679794951787821616521076886112621167677402142523320317003565810371693003879612606255657863329516818698563485291886113435566110661440555742436815780486868469584235289803561115334199084431605324298315957251103359210089782056762017871132274445831267577369633847825373846220861781152284412858990263215728383081344990040481651598350626624782412550644830197014953476610807789070580907222553958056044068558116190867002226523776103251987529005280941660628009882766159511336399300800242901340278897526015085294405959783085111328898114315648850925051704060502129109421022392932223362244829263495787628359407560276741464799945357301250329032549592878238677155917349531013800382665577912910594552863336146200633006423825803661782411287223768688389125217315433164540318478576772511028159537050506022124889113155158704153650133659037226426799749420494864056651776288291596055525586768641929576641605962908201729247273551216302532241773579100224359901469326989241067307035723566437313023932201902233166091332527460017450417244748333690804576296051487257507601886013809411630264944495397878638694490156840337040312927985086218953484941157944128406698898860633149680240639757724663315901708606822696029861332850889626433228235396201185848156974818469584015993965187254288940297691754077308633698019306542331072770751859048797181515233972484843105566647675246196700291153623737735956936975191708815760858020829126293416892445303244152694430904014884691623396988929212026209470063641248154880695405431836404513920986719662717383994936642619397882313728681257065297732933434757986397769036277212419737979793807285231641148975078117062743598140373341334326023916144224326588422226244202401816415395121151830155248413931021401193515818325008069138395358293242956311597742438415361213806106279002000550859803800918903681182594442356579453565048715117488674176703495386853210126328224545102520515597945600227838617440563951561791896757842357895967100233425139718728858486509197900945638866405569373592668512059537746353037383714095198014390043313436599022049195457284755666644537742459078561273382458594787990646157874398173304946323424058104347558365572865255702136464433164642477178565095429743648713378454144379816544932989758073774518428242368125546171177505509683185978602205108220282796227074844735844993717049896253147652430216065191366525884636332969544973030005929868508290338506905875791143413270381160917180129841536833373356743212715729939571347683595465975913984560708453448695634864728203112766695815183253322863734832628256694564075843699760616362505146694270067362675145044857892307837494023839515371720617708143855662337737164256762955323834896227162709187428676613732804535601627401122857414246404542514566765948453192811336212485798769951396726528955219693488805141668293063690349044244707756995864618764910066578118249884925300454757588754357238291784138118913561344769872423452502709094147122632165678982470370526510454824754326002039839403222573739268533155557825761381869429454860220572801031475809205494224343160257709611867699339486234937203329348086852478753155451239515420643095841365597907306242630479147459904843691062317002523465904203985054384651388828487194045536927661393183791213118459576156980150864552456719677823623517278173267542204474862022695174384635621451587816432427114600020118612467530460281851126304921784955935369851873698808518037806556688607110688859313786200769647043799645399998087533382013237520392175001774295809434149043745006494873903753870689276933036190767433273141269250354888969603224122629913283746413826394283531513851700557086612460306345818158916073290447461340719638963800130953468475548904377274304087079350992116223037704265511389208979242053301055237169873547471384799779073619883113187091189048627790983005313313104717448348802840442446787765918922478958636947413120081086185032754772005727359574058202296326284966543934206892466980816775575335922825152695799875701244375746305127101128824122444777384474696018434732166968556149249629114159256468740441007968672537692369407744264604889963325243407832147296956646285882191485934333012193048867872253751318400324060714873066328573191644839236983841519024518608925234388491891827945336593453473455159948597229694164449336369337405354184963886309220153613024619211269666251230715213010119265519487829190213398511763064216285556542271515391901296488778856248743804651168132504042125001860512080318935664914169831722812875210585683779085372990798922936952318263099197691812538401685270662388007499978339506671758642921490673146916387614647370143388857304767812854024422825705763820900843536576687129674787476200671766621232798683513801401583838746569077924531668416465793859835416661906022878260856853906908336515227319542509098351390450870391829319740364153025887673119045958313444051476391882818519282385575687098390800210722733005198047736612763360883048430599559953942179401018774475452891254641196822307609840021194631212459118488815369958786433104570363902906923483045557263337174486699692391915907149788467263581099356314786381732718655387349232843779210220268239440108425054837517560854978351470850927301970759849545506931156841012489030207191661070615374903358420517658828171263017891369357689050108513080130520155228572029331479547727984071399333557394654796398268385051634469932547802565410760487187569100620986802408160548281907392040388948011804983934317886874079108108642973937582195283841400208156000483238788709332765430974523500866404581358819354397818909095762868133365464595290779234252336567385790036889339526332976966753497144823177944582467469695071763753397288391238250644954850242110160354108924615532177660456093815601813356626779617882319596107300503879001938017183785918359488734829993971914370821077920776810326963948319469082660354115365185792987367488894260831874365658316477190961021853168229236120559081656513963820365215826803499660999956931250156952820694372769106085686160033698609867376234021853890018344448769203183853696296655350324819944599774797149316716922958114242641890808768581491453070476384245545455406575894914176966787008478300453999971786947591797519637682285509786577663049112250956567572682349235434651048240310816170942117685931694911129935048085149486002647442255877950888465818185580432349301339124232302273703881289854976522008005608785498148294123548177360966482096718919514597001608635395034224686845656418840870424493128336669221322234546999961577295947120343244866380878731418502273196046465655483408708410207341292315530282177901243897269688011265526267019491528837023586586785191893721087638546418802196082758564841280974900800004092464508327652650016342265904863367816296065003138714504438147032602704497303127658659213380230524388855456978972178851925203265270055429240962210422306933522176583456373854528026914889159677025730149192070975897432089711457236712524173696818784328676072093868963030729043394325781017063924659058872159901939075636457029536196965136295805775123772139439292678546179233686158462366499010378536917803766765233458054894455046504395081135634396930941926426115673245560585051973784328447392856086061969189542211617957244440888533096052404352627570646617388841515866422284065055367656648176789694321011035989339965003663557338538449135991233377074449562709698698873664642183882008536125753497127900848417590399582732542934672400313457306226139629324860451562537959667665287081784183422695790545346951701678543790428391085565122319387751290798970051412415587508151662170044995156590586282536232567428174395147095975965520411276927203048569419252400952219164128436199619389610759688326753220353887149663541692394797354702979730007028328053334959605793444788587769607193038722602097402795424252245673583800230015409847008080524659004719572178385755073239767242364382396061436601128614968500260945209156102640537175869382811821915676217143436140277724569727473656872891800737295570954940133791139131035883240632740205264316072500656734861268836677018888065456977869664143452401485933371699646295654072943168111930008390835149805888366603222467103378307068030785742281901908970349502935695441312419083106615151201874815432161411637124094715145701686998058638717243783470449473079392791035671538734764413263297178551451754119373047232717496317140477723093782790425870227343754293411440127796673663417425123518944731878221022527227132625739204679081554027350320112253522555123394535337393243186917310942873804872046468923007739736649823705337490020411775558125194563678714937467358027136070587177350224157163995318108743578819538539093421727675706548259377128425605642030803885714840815543412027805579281494366292703958006185843921105444848294697682509623680709897862843311995233862694322869441233643891111762436010376712495188943699450065608136509677866716075506731804887783632189625613611864046762838164223493903996896623840979034945571869760951572564953825420246981698955463765094261778046117547158027893646689935170391956954462917966745542767290927223573259422665868993998004656562928073913423625745132167065185165335837497691480718098416514408152101732469154576114067221864293622031648129488395400237379851231075993085429308263923981114292210401808732719216993557377226575324701706730806579191390975078083951969376905471849418347166761358362929883142408052916392204269402755915254616848833026327338295080442288832687386017467906166607809351313398776400112577977550992652013848558655427175408984526744814868113019507755648629016425552682729957898071713618689050685840497868506738385152347419585446715698184926635527827384915721636928549315698458458061750904083914758298764893473095553640573806133429676455788760954900459816125157273316435712868587378804725116920660848315418540398303944831726413232614260540521250206064499759334722323934820548380761688830061431628685611596811100199456822613430621268214453547925847232181157167896188819341265404409137605760739534284228281692463595257604728370192690312981024992436389789448651995131371970347269019822127632897641137255745172043535301775594982272572487203542242676905372021962104993705628911568928613094876226156543000901722197411836920109332110923420784671098441617536233340991184082660019588639604684618137774949739025057239059779459648845633915562717285287782488205402987696850812823900075281305761354796350053653268092776532685581096614569710658860226771293365162005918824507879691182987674848618309088443583762847467912745913653755909986959789136993692267930280218668238540154295460530232428444076069571038465720782782164030153967425037100219465731908464120544558230154785016972563854198061200754259243844309919806735507210061602472198623457846406688808086014463236812490642309261597777022948263878788304219023970567722925261818921527444342308437208396827963266362289217326113338524307604913348830736435974712089908361866326070734292883945840258673330465339001083054526895680965866354576705484097706322077687566486421205863423486645000770521530491331726452185336831005606185590991020957044046531158093634931138597355001239617724672048801680193366017151714701734183873736366445277620795289271009120698868273412575315231779312742382132344351477354970711776504319189277474489741363365826316844207569711374512296839312420641386460545324674583661230604894623061915909101518951680099429912663807521916948713798142516980541662580501245596121720829182261913132196184578911101741631884298307528907618323424882164698889365947256817617986385637182457719981957175609320012971928763843570862042428519107487911439448600548147724252403766885699516912259227826804121453770087029316974561847660324218437559811963221521328413056904993717431657333116797767786628808767778933387837226671774524116290573361938315132550413043278403407922110154836866587895441865468791365568076291964661018493618525851229008982126472493617735263749787613794994706110985636654581335222095484978529904937997675855871521273800047681214507324526710267560477032376293370681396216732403832797718903529249991994756131722570574489987906165703195354802079205648810309648484692783264084414413033316899659749624477807820159220308552877155778794520963847668188862380626159639706791171275746150034368843117634668801725450717523182620124725247331568832218408407463739575557064442895387350058758023244243187027448823440200212425181356190838805529474633351983369003948732561729192171977421099238112818144745396285820371359569466139482224403080472061746873641767081865873268477210093057673903619899862730497047914898118561582646915872913882982102604618606794650515129161193238395625225823768605694326908951269336116714507948507505166312404271699106503069906367873217489517690811398306686897352577215987203619878218036487844802675541853139695129524081398564093746412276207323512443065960105736763147035139816417764269201807233740644278232904078235120802227294341620153859775047735056578345164473794767421196835558008913788985269773180784430877983353800880785387932596607670569622317621093342659558806712987195630438526998268069957254865215311547534095930268850792726722653421104788951284631906939426200987043220768047936380771100674647929101139274822585492168613505660356489059295493429271114248330503183612221118496356018663331794309261115998014379951302848452224659983432899270488990958310381196437683640099505732648590166195704701986439893246499233411759757530365066062086817908836992114900124663589632433530347326934166755797971959901655669904036696127718083762308574622775653497803297638297301144947115641966271843438945062608118466080413033048257867047985301435135823350116801299922593125108459226033995725879792618319822493087577925492914182405084612482528168600772886772972183363743918378854410168334151529084846947308240805681143904991832671152012065439125657271476350320348588979180731616554511002183074770385342534596745521271024654480011859511899278371478761919611669433173553253319307428151961237436430028113152632960740346884621138108414050454675176543239590792714685979656466598925019537633752379913100470963655509116715612015916323750112811420299304425161361681801277724415774840128711416370073807038241784010840238553638875543544925690342128833510324214608745463557927115061384636271724434516286481309206690442595172854418704273846790421115483581785136758792558833594729461960301192537317649439976532720686589802353217825144023830291499296316677686441626963334679066373146244743412824355639257872221757360751172456186958533963042477315068365434396532529118811321539395983302598894005782879637748401254855932068598608948275290303974532869087784793727495817511075831368565508950905704778971347573455215949165514979047444604717480352094900588007962732716106916963767862381307551636126534797884772605328446206884855777091425752862118092934053098852602684924757804287011640772296776583635750404238269556246975108035258486074071947619760795963920147724096630543844084518392229456134178911653224628178058456645833808500373438980044817777458178176385133272468651201721858967516419294339516709979670982930573807467478731991924841042079457262472163258370570734873174787100009660467295930805741156467509554736530435159340816173200610961131355215877232080878325514652626298136427637867343007972150199936099684710738724926536020431774094590006704292489433076632823349020291409906427797717353953754981671124204376918218799612662077603415368434259912438124113183573545722522756470940335745384115210069483544991118147709731535267826661215720546254937804991517127282163076369105965221456139497432582897664432180907205325549013482608815704170550495492259104919733139352917010610326614651969195549979531652686284258381842057161963130350372338112359105070347825394453514343121922651991071404878595171027073672333674812307030546746694651448121786039828029527752415044021141855318865005722081010504607416724927844018475224589610891935839628904219178406406304287185348247938212291154330170263558018312725765237813056705741036232893070617851720052926369026398593989433006476001150638787272039409147909156860935331465958554154634310522385709378570024625887304948549300290021049244886884864219148942671189980325049132864471722573219586451086980527375051882857655843635499064951203601627299250587292495448892258223831756384948787949677404104129598442899113377929632984520770853109352788888373580886750019220081137028438952611957071823949192568339291947269050585177910110137758762191441861295504000265427596506933289398521135731767774580971164615019956078532805345273027415441939471324223813999148891462007413415378602228657695950551001823501587385337753083257825127311951175804594571663874343049957676202961013051078336358338512802601669298577321463589898820934400468867002974907493196550639451466173687096283978726376431769287570436030110643688608882861122329841198012073256262532249259415747062065838500316125733443892483759240430114375750270901051871839348193952352544591695640105581392758927514641841755339077042397953741291921265071314790036017367700914991455551559262073619164629259204945337436546742329347180975723100135087072538537344709854914773042306682630202361731087932216105095539981189250812452720927687309940908767273108086227528012839923628810058593268517422342906563253036988068667848791092477270417346003248221902147786435553882583011124504613865173874935918524252481606884937167207132823064042493353235416711795474911673508316660095701318336806352211209898050764353303719647525413254748143915529161104205801900293980038499693916276026600081215322455898807738421824073178159913278861851385616481705563209945676511310413805027736896159911398827556610144384778832835553431616740053495702136648012379183964287549531598517322869669114607407313146207512828204928435181018490959588985094585189371675604416339957195792419680373034033834036917895203864906245887697753833084606698740337046067670971154765940753116621238499685553472497948848090387534791254266426852876787305944788703095938339674241939630754750722279090524801981085129423762146637036788894793678450613125243137828931554216262528756544852953901056564891470376370114625106185982940535263814038479451217724498208332470545225632254352561625752310636121189352589506257152792986621600944025957245945999114965999224350781336633454462728532279681226267770026576600878004174166668840793422266854008740339903195660697756411141129452865090400402745938248211368665885178209918182960067186310839158828815775635340319968643119512674688134432015636540473998279770714139820831452989981376657051452024965015876690718158361086613935431157582364424394242584952249014083388382063395526526203522067168008636667307301034132567402760715847739409404282129210236190471704903037601144636120301788543486192598975436487743740513401823017196878039233574868292451459129434459125308153960594471337589253940372694300717211345996174153921278673730692073196042212451495468613149934705279794775469559325537033938080772084598763815065634272000181608366891033417030779309550171806814955734408582243060786569614200876130396712971546469610461874498248755352382418257894905140210030150625886234290095763463362815411439722201102683733751336807592384898258027962275354687893056500385587433519123303782801644615530608689845766328488459889182142433256649252758389888071922305291799527274899017015232778678881343174864841323457802497097746272292771538464948241737063678160380281900618817115612340785648248743732397376674763422300851265455094993045898631548193847037458477518838265019518922865065103614690845652167810515103628153800870761488709208676111681529994002717434967203004615837192733626348237309401199514622184846956169213308941606231739563080422460571078185199722223537448152906912655515912003292193172035848110585747061453618744791093739640044447337459995042451191120524430603202840834958937723255603093504423193582346668679121441482781217825153771171918781457690727624521800991678693076029361260997771265165994267162467546197535462339531263937827196410365061709908975642943178844312530925142625692522976126733692691704471220835941156919794350296594761419337713960003851920411937269491698212682159012061454921377898771104572116175193177647835962865471170985120840910779713357979032662999671779480352084230134363299759716116874780429305195172710682253673271649364672093925738109884086871262645105338976662925605109429236168795639451613536955771712632955113585974262452574835844672258002250528641856953615113003186056413712737047538501428807613570355523914738725805542205782121049834493866954916946023618962006487898116677725539622772201887576921441105963608718621379017065050390188724093790367868726512771972661917606789649115905201169489054249144959461148986808684737018481085471001232614284969198594307515252857570482643881146628408070361033568604557550935589666065299151101939956497112481548135971509568034600775407523000654850466519593561303960044808804604192868157680682932328125604522462702767680704956517513323454773539494956336464866214882001299350712670230466474680443177072489859777310194140214790848022917982438909165306798628596243187674961659464004739565027014876573334271582329576128175117344384737912105185501278937723096587294497049393940911366473321379094800748283237238503063289717467960189000891347913957704442724152837756205576678376513562973020820269221008087402532214392929165571325003583583174536549586207567514885752361153019726494386222703193319795266782321434623801251922818627363932650089471739410444010580846686496042263361737187610924689027040671201326626985342055163535773889119089127359976637094619187516799201232089532500675441235268779740734043939893844138366058956974821678637651093098845302894877110759858069794408861915528777051910229760252784395719840150988981365590876155254517522452699682332420801526480205853530257747991062941938414513315543673496845414279814521443196687497422023078812460835014550181217767588166712252350246830030871932540415297165288345105624166628667918682062356966712475596445581865776328649942989930996871666600178482952292126818945778968685525060837550476871508251525844131453387240758095553292179359513326340444103042234218408571655511073285432754185230146213538228128316833057165306561145962947995382292649896702163790396166989220122576523621729071044025564529057189956548249441653582581343798911567494058553874631418316568541241106601241089331759806511567454410983811958983472957040075379698107356226711560817906554901090350103516047369508626291043438740135977165392176481029884724466069468586442868992297230185272576169020954407574478663670399556348079880091661333270526300817485106734669589000979541083082048606874476366474710466290987251473968780798294614746569553125273807907311928407380545520429100508517216233888962259144649819571227680685852579030609878256488785635957846748535638914636872792240708413878567609465202392408062198778179656078132913316654410454338404189946325798526027334908707250187253640805657777760297472286927233347653569372833499980014196236782532378110767190721298119000437987442026168769139099409190887094384929847780705339811353073618183738100872352291240946127413927576154385215950534300091678819180478280094831396999905142431617265668394798462589968259003814684508211657507073526726690712270348049918638997625982476171760919775615368997097425418130518870892342440268231552960392318974809048891889186142279472960549637615407120101860595568074852805673590351918318858841082641165400205238960708657391155123069448200929082115648866638289160277786583198651638166171372987283958354559535078149463123207406525260696088183895280638106434624083044954811873439275488806616581538136675968815341418956431639633876947525621547200225814722996584475934890500037919178661606177969898554145095106892954345331836351185586563363174140477179569488311765007007271956076941962296401484006172892529954390768322804450118631915200996110756882038592409210960892974023290021161145112520915304137216881161329769623762913672144052853139139608917463540768721222942167623556041438746970805351328642412108320473068027593373491467933382769861406040194694006961444843889347633689603057820251483939523392666151307828182283815416509465541468535190705750702260665966802247330193279779241314420292494623186971601324144582466637624693441041935235522349218445504890594186252287800275833688661471503277197698117263228769814021292989265056618934149525038474946320970407222905948910288474982083042107610350766330243965997165697794202178542382380457390233619872777924361785139528986485965831533056244497531690483899977878487540396349197014963069026236948159018759061222708039917803291905904331241933627712311467554255595471077575470019037085957580201896034229043256287788359886836404075217904415641782365482307854510070833676489758100726825350398530172349822807967417879781240036341117977737543161392611853532260764661010003683224746862532934049830668141198215074721242725388245196290297464379240634923882389828118749291819864624194437878000100920109691470221625431182501886115818298994378346877201883244433831481513860869548599887380433157373434928144075065473621543912889178815006435573160894954711026275176397310869767037295346966038526444021414368033105081576947762671791894848535146445691000678831348495177182058562198760860074773061661868597106559994405024975826553559776896808495839142526645677460327916697428538854297879303218661826564928908502440675097193012817837811198986511828839456687331080250161849625084489750246910046131305172228199269588029422997427209365876087617872592088480052430482095591448025159894267984777163336815311740488201393461412314557951263881606809816392095597080298721310079168303010229297910203050870347278257618253656304390856259237369076457055898035411454987108071661447893683191314929251422332153911616260822027310458540125616808012866588083525815057696533345996277785408282409398814301399121829597859518384150139150256318958822658840808527243484984679613615130146222904939336174028809192522250702229881617592235863450482919408728831265138645038715399471862385206123847201333051407154853313840661066889241670366733130942027710169207527657340751201404464803026843292942745678385064177738465822755727937381498132911585599488893981423833639760920393570540333620612186186535741221332531568731187035826216609399206453946763685882117500148168610628215340626380784505566982261248385699427316816151944660848008643235328462985517240649828830263643889965365988229161545768399948158074830363109190902483648622282044207486255574267290960563592066759281840162039589494310296063004011576526123993582520881163588518460091001984587793531208008280060551320921907211572913797321244192206927504680245149897215058590440220066950135586100929823806701074964496171930760945899782029327349201112839988536822376637342092802427609903868634589621002762480586579985341883388807042652737905596581875420309866473490474368681273558329083803357198676280861185691830991073337735846782083232130820547679003930317700888096031189549190195727608648630902766283056855300257941145773564253107260711276460431000816042709513481403087218986444727417723414606417285714237753499457353827601247883353502875770936354919652039638821518554574892392996629357388191922733081999969035945801582639269497874444936131385820181197360540881527736943393392245112496230736590519227197600471268268179602340225585330587842136284514579290760280930336976576226889417233243393417169303871858354073334772680689569868245278468249441146885334290043350478463097574122163288537850090401847493296290113433783846698572173091298333375832590670429947008264578281898535991510986882752276012335595074093822280274524332941829201158076507626658922067330647328443917403267868694999984118271885823354193429282990216828432112745391049818270819402303502966894148414843631152561823301133813097840979735480261923164739302626519773573976351056917347246546209532094892829897627384718259911139686552698608212826741290727233797555426310840195984561012402046838153448991046651244272603489088683037832558993011060420550757604300515011291883751400686552116974932274606015219779596835489944452578415722583027212377162333351409989037133952052594829429536990537921813603560130058326539758201607956812340608659694326608443518327075431608580498952264823939555315816206357465676229062742436729930292732287608336317035210288042494691996366461696310649448612006107687560135691617251397499928244301042627124221819825099484620154483171733401743026447907724959084892329965654173504534008916564647757777576066981048204060772574089735608549534609826664454718862387107414113307919456029353059264837255271263543174941971685353334111235571397214585358571513700013717553082188085546350638572075860979084776852672413760057509384955590945523603350845922178777805099874204154377330992934206262315432269866468400811614725034732166935342024630672728773174430472305003919934926864612431165907406185854138092738711186639571451694283146574475435133265500907730722176898590180490406632029995611683720577750286834401402793057800893969314767057456568182757578983890751182406102281963771309901286255314727822957016123691996428844601799704585462427352234440110016112746396066626529016005654077512643055293839323417232983441063906608284222476781090384657753281800359476025048348308458922226100234126396731243333111411365720695272519795732420548701144424754865576590804258120473478680000491921913208421535166863842945111393816970323515955235106783495545856383755945960724086307247457269303974738819419458985342118828215403751839293285691718728875109804822520488740532949525238368986850872914468265116485995805001688548270343976847369670943045638641183416007396532579301905871157901155421637749215167414069022841137661067550283834089092303645697955591506190254029570145650702001491917030495596413366238277807688389345722598180940688152016005636666826261690424663582580265139599406762567869906101773787187594398377531900365924360046627708300127314073267698029607976653510116350904596516658475668540074697940300966870648360222110908268463579292610707403765869944018373204402339766368400955411024366048347851137537436325115621809318013924946156915979159204315762437687887338245638308067307128871144303660210213635025034646445622597386656055086166215172162716108333559606331716199908532327680149768440592141855802200318164869805613487147410956301662451269378227409688722142619829652945948351993619452018264430566965122280448727828700732526976653033543255458853477446371410430564288875075963172897832071930546370468762319436578075405318153353491245407630388298318852084394350948296357738277626644584079057115124773575873265699596545681234308770214940271718032146303212787873251024939967182463613992755431699659361008104114563384463223970061054497343571619137284355347623815503931409112455498056299428226845479610626911092205197987791607542116920663974756878373915596346480452198027573102559804711146407094886713709593710124598849378526357785366245857308177260531537413989102271046520005251470923236077379991428575975464895476157796376454086392547404113446715183739594369319104641345264459160978431573529878406839105899365827562956176917379389801374789842740824749239281358562531791082256286686080906290722917929918922883753184189760151133962815718721321534101172067298345562714359628201846750183394240499969323016273516244694917934429850955336329654333885286909473919307040445596611518427846916471406350425645376717961854641980034529566135758925500335908611553184556962660086093261972556562146395930133357681821753192862905365083272371719024344332949566030405072082725960552313970398437368934183345620296058876782038936117737427662210129808705714094127413733867175755735141878858990066443310195247795479351293609491296856598001719225780327531422396396729491787686563341459863786819529317490664013617794049851113687146445804602384230733949875713426924208257418371652427514017197399085078912078461286782564103453857466526697124968737895852299245304901485525892515547757048985344610763327110417911719439475814885001845500479756181250488490195948084072158825319546226052087333135530717805372545609836931783690202673352117809059260792044593057467469376939049213617666562528098973393141567360092308163532877880041939096477031233459899569078633515555881258144195178021921278096592456550720150509892718458781125561586917692751201656466008059869644096821835736708971471458219076389906411245192067929528331321978291232070687685320178228610394863791435567426006251456155668146456872413739106832166900901769923064246990372628923081756029056832177942339406709540857357110922135097899921872724083966426699991375449520815246100209836318862978671947589647594107754559573804570537251409842355101728097850979780873584223202070393749844292543417671270233513318978340381363091921997050537969004198183808598266780579149623805258924408099359873624254987923298666554755564155205898901144524761466709305253695733750189637934816853437108139497807147157395286847074354146920193813733111389083317279989560164282334123046289420119623138229474462346137383134184108531505614607487281774352443814331235154280221592888129987309338145955582956727890665083603561553577050176040889053140512481188814177323928502592019025468518403521092371966166276977178199485633710488840025962146306849087959738013612800886208955562118403291675801746116907062702768160765129246583479962886614282790254770979867366303340537825944913220071717039782319296265181585278612557644250940750135454096204313056786256878448733580106435517568327210219985677251591054114956033947915209681103825811434644131940346347442139856491321553584551277786129171872264902268044488619354557453771489590970779625214819815273860919656319631002507639007752902803289347400095292365870622694716256610383769311609176963939794837092705726412507510316305871567733427814161851675708316430925704320787033402042736990046719800776359446154088492312633356661088249428607155837557230062791553534515226755034451434042234168030324245043476511058186742719971880525312171880622040402436445446444179123342224354457236477120221522631552064629661455503283582946566530302019235087950399342926634337547571208269909266983732569186969452097850042752787010533789600908132467530308696284896164435429485712037865407086608816292351350830132322324044168436255663772479305755773588106145002985857601106686948483310526925279457011096381486733241635093744808179775091723122127211778339299382690531916545272143504958831910302149271949478672777742446208007977846559611596933565644307495292719875871391477549186805888737045729376174038480567421828653692502917023229492811670439571221051709311043961288218039634466154971451589909182298539128083279599045211491140584522473691251273228790054074955924905374189865813988976254184192046374627138198850590040598545923435600162969803838336010360098123694141766544507064495631469694015936713321043199786050536720716727583910833654724007585533319136805785773840509580051901037969081314583339444230132164150771237832327844826940548309724109320177601864524941631073342827764321638648181104379752141068386300468033905927629925916368023262922961585250443897567686709610283309494178786356720762067451831407781599619553503189266991606769161923608168868643109737349486685148302538063695185821528083409133102441336401816430544052426090049553223664683555288347239224078035417710868177497712900835251430457944443884586103233123882532851600400715146815966962931106519867279181072218109990287546943677886507503852937312490182403597554542815864292970468957451295453395608179256452292518338338664480310838155319118261019625004930953612271849029309607176885273940219612364139548922717894263219168596582226834051086804240562153775206578056050838610538947722292640903529805933841144557565896553014990944162612983931147623679511786886385226306337063180429733052998441234871359343998677000229541288548292487508032920588259652328078398041801299278019109173508037055471894403308163279444574484282043652158683972816667664980264418232185358673607808731093152959631294233176153280185222328584429882223720729767752732140697661427643888293257585236287931171815625769067971820205949732651984669047611242005380754552423024481462876688118161518752880214958273320700388417976829725146026400294159231084315883644648778948249009482485721041389626918301589833764581781981148778523432864369783181591646108063331996811515231785632381510905902749879729294620302100428560189181432179313098708648647410157389481912400860078090563754065005139898905046374054176710086073382204501399420233760926347331872285612700356134107587341854286359940996826776016035596152667864865381064638015246247879968105898774419771992474763582044306746753574663019959680077336693975202209203341527336123859709240443010419645605865045300710397564171635062270417334352182643971864520539401687130720196615249419289607762351904596962742326476010827774925505918740437539681871790976380961388436916419947938014099182269731341680464626003001079033817271330505058023734324797808012425274937491508195122114202659505788606501298497467896504890496422360247976778185906774630734723129991332186186581424637938330579681408601299907982453041759878546982683008441307350635004353242053215354115679994815650292519338357924269935191738949182442489657585876159681953577058857049794616344120736950477898548492862194269058574788731119450166808978579328383211172294545302683804795278760259363660387647111055454613769337613223108390484460974463162898530429589811517414962835386218192344405944071938820254070538616276547365828690664790671032115821521814224483987345544716860374453507669584851773405849293860591828398352998572064202421805799835296415998260031621646947731127760163115783044728103093474703855578308314601643961379267757679996954568851642034966500922544933315807405545034580256678812722588705851609458132182784012992978805642697689041700154209878476659352653602770425829799683868897492037971442274174549305093388635857282033993889784778165945050378307957301079635833284039815116807957325207603029836866827526120075079275604927103843496593227528845575129186426498872840100934390657465179377704853102742738705065765312748635271983858722134088255428241185609643170653738269593102712278901854126138860867921464013479990300082716606038637497550306817698416107072760736866389263269556942082305959050996303091726563610241674664924803840007836914927315275757123003247770873553040680436822075854585408931683875041900591216609892082406301959440385512942509292877927035376311637185153334675435240982627927016144661867795424771342969637567468195484067804703715567807380924528045915636494109478073577102287701332045983806258040515295027378246606961519976873025388918953655086335666015088393486863056483722370565209931950892581528361356052006470922395813466985291928762243188396669012725266433675746297222744786265027074070934198396170830666206982590092568784817953235117681834118995035054584380588310706107819912235481754940579498838777873783740621914469063984258949502204023233679171870499652028477711773746633739784018635694084610032528208613024433268112260559759721171677769731281423807538027197910088371742756213632042275251173764797347169089571793482616193771867007639322687328679145264703481855770563069722060167932606338010526309073578432788903053176884784225755644102381427778440789181659062190242058039012629505387968503412226818177383576238493104804351794008788303565453197901917601797130266698355030818478844435377578764746764553055164554533417709130895071061337623928914097885990590826299499371802401132528403024375802992490207653429185127422424451675075821864861749246053450888504604778836926593890469506530235047432261328498229384896948371320253965997320127064519359266138559810975526759751256930254610430864824278479961243183422470316663646119161155135877185258899674344783557669189548070441919838543018012750426274847896393704842123639599155114054551482621417448191004340601341666414304841948631462403587986454029215879678361379501336155502173886507610407702860285111896387050714274111927711959815490686053647637772057000613527753254709272736942881292179289977664614815652300235895113455258967704919885445897190649906735986692604389024399355927649895781952905874422221371957939875537605756151853487588440069748703511907219389641716303052722425804550996218738392796086940032534953180837148286879719663269717475883333753455269143474458062445767869589042563209131206805729743457590322448968509362143990438178050100559319414935007412774623994683057294696632965682516151748600349512718531830441023313215133507552101845380519684097333407438853917155467958853630293477116658489502453391285344680047897012551873089821459608744701391267208880994067017734949786673514375619551110788309649042298832974668543450958573316101906123739902711907529911260331648872316177574496645271275461495929854757291711448045153125535366956634959109015062017593227645691424419356671235071309153726083295826314779789145082542335953106773306560618639070643922773457093590442052130813200640083007759789937521337815867974427068744112395271369447499779563708926289016233209929021539566194285986861745788986517791372160536099632275672606957168740562742937637299383137429576758837222660154669797283931072965548704074283838046310119018401186647060350422137743345839943354573370670579542263146897159096540756270255752320649165395973068081776382183051687710953499193351121967590587772994055687762845390010683233513712752383639357973237509740706697512845595423190518805596620102456153498389202290087714510057463789688064269448820724855154944430522755511226835545937541414204619368387002814069224955606873839600373457660243636376056224984200760205877085401208880212026209155541068894906852156342445670915917392840168991572256205601293745781101875217219993946116983748374846990647874740181273218057052773801160043074173017267764245402379480160402588101185565337811540323259564930362082781280526085453055205872025476477351843772774035144117626270414729856780669553227837290528130665835364071124192061775787087462814074917672446207867523035690177353022515063144592602843065611522794631873707660137576348417938451560038873994557707782944713415240292686105237796097508166705838790884270348515708454413731464096809898265246878306832489688447006222090826187362872133361126383412927853660270268427392120958766300555856447991384091549062395492203120011136545673549864250296647453648702854612470775576697055280885879101349386780880558768400502820099984916989709231170412912585890100391229693147796025477426214365615699548306450493576180474875597895650417307375235160520777490050227760883658099302464443192770513773761532344787920621721633332316331787585965603837618285078527615016070895709325661585874265105782794010384510228021556672907142761172419250112074529468934334560464851035462937307995479843661474431541087833747784982296199194967844237093423258423970584461192409999947743885670992193156748621320480621730326702236159191519328176613992414547722880367184000841611340248774104989578935906086187651049561808924941081504249787378941457125852877095552536383131506800025572871696536626239408211431922172597776617105883042877633518320354219817327612344083828703323298046230658657539341091825389844863472206045877230478874742623109358555474704081518983061956559589140019466188395623228324081210858499281039234528123974992419303939154967354837387333607844928668135555643485131210983307375668222850273278238099698156566579535948764649315471516748306096506869126083814988189918132757370618688924785350571663101758976090870329971087891067523018695710657628125867424690074644921513672927919405820800673823320334179327792236147109314192658787404898619667316533684745086745345634876569757571519979167178264856846175082908843892884638210350915182392271438981742286757962675354119396559002981500642820724411333920014568005355600427939674290553657538299047871821828628375724255281349459705041500320036678207665675568114033362699399776387594835155236681376634057406775525960852641895951141924414319387890234022750359638302240593990583540931984092835190928566406264250479788338974554443059636983677346672545279527644089007870364202787784611892242952195090429253041717908273404569288526216038256061857310622149340602419452921254144721046663314363843693248728335041939720340090430759636175569576472025104387259656577237560770218608823830950252269536747476437773018082750252063864291096568985018966365586909017002435061165048719979865297211306346429035341231177006820746839379833885319043603993631323939331292641724727968865045539328819618158491407746537554670322071957901449306055611127004165672436088601881664077243133642468298806438158170910009921999955583400924727019233581930249967540343015412312285676985999414993095139539777534440594179532878322628348123638014671171247801941871723384619131452801101951357254034653569831977421417334849477594999249066776567907836916920920272827931080061709383905948128235491205566104648109154246182884215129046566588610831967752908404805569284534638105546883481949564018709334971414108293629067650573072378006874752635620929235754679021738344505985317168414444536394930791820209737642736362581817148814809289627498532047965514481717418921285702722081531765420090504817647755566244177103754798829571590421903214550198300471742089571621522180045284907335639348627031372727883523580417094835594132770304160936865833838846262851782162614550179946815058720424785145326837188213531934562474409728555270395156809862268147550739428011624987468173672717477067707442106086739956316883724879765915200027382313888280622363277217948753913212504114977840736794307762368822007463984814398948948143134334584901250424626935683500548849160103542133041354532919677449069424049398974119649656833919460373934158259173190479524474081708345918801505270476261426375184046186487332149499402835040012705110554277935340443895914604037642829239011755167902031796846688450711865295223409007333910575728009917398429355274733660610032994462117379320077175840134247036028205019662557882472129589190650051994789481943396946113532996380049989185394820565557250854182564704265506301333173678032204801413924452160814288417429847543309464555666113050090450388979312651280325836304866397225878534733262337648337061546224210622580201159957607478548023996346652160714301881532377857863166077886281076636279536808550278762990308878467178417652404119309732489865328899121892717937538805463662457588460876997654545716510537093463365383545653699118416868192842127617955658211505286847660467024684096628709066409087649891321665137228263954943311919252169077196550307118531876504961662474444961513662181178216018504078513245649134048199391622999918511700556047809006033217107674613152882071865343159647837969648592303972048274061993271297683042621754884028449116485052334944536971836418769486428651776233384192095259271311900746308515540537375612491452763958472817239200396758180222385861927620654267314080224113218341294262480357904056297416339237922936056859346249018131779802165734620542381237456403940721523591454255098170725888805390331727914545380216249680011187265136138920997109478396663324135451385059303412998191731513841830318507754088711565638920513231510889589156985710112808080685925001693366472468050324956056325697296218202041794420116132251835034006672853729958224303781520240932498571443831717340386265469100084890619552416555546401597453346561052003427583316265752476183131886576841034440177806019097910770294754479978494205057268036143989666868011360626907074047578660045423417524207377309662927024259480799182303565466051610146268930141249768013920117132400982536261878559990127489279533479999668752321108985610325089030468170935872974442818990398268595579907189734238169493613976978439271938695393490481989271765376619325040849737739723580826706598668222552718425827089919565256731428261328878721625276167098321247527865703934130750055293266464884618537456795585241950486487219671623038584591438861110691430981922336378726273119452788497883237641159347838262017945576417767707083391995908171290286271162503651945065403991508679136444316297622411687740615180997191358056443594759224685543102403823820945492990319405555269857897246327513800030756028648400005984226338840708086225983802561163260359873626972982477987692518934837165110784036624895666743863500966482547699159063068879696193927162170220223693432817320440851486602434899347433090705641997753649991840040367166591722587579292198542657906819546082829000042840915502741823451080710149645258294450680753168828392265631254032357778945768103259233294670414871094523524941844139354617565594060140560365618900158411904416483642629011434171341561863247266451353355062833255962631468589098600729275028859468150628801769465592666380883837264409407320229647301581034476182860530955845073451264919626317005703209950355933369775194644151178241852915098502684799900181211180326273087391470378623668547884836751870552437034487058694254199323603929169760426761598300578855976859577466697555281801838388038859262934996415835818938653896101041777921881580531204791588872213168024009784376106619788381483966153826053116353847585696353784515352840385749347089832425227904733868352062589952390049559533445730915746102907905986788897851012982204323380463136428945038410255745746990429271610411569853169298922237429071853023030686321541934555439171830862668084874330681841078520631355075090242127212043763597264862796889294506514776453892339625743149882998909632417253575280288169638509517511545910558686515236333683858139748059805440713014235796464909139164339685453788418179828169141339107118706381587058214958252419704707709673751368477015157027488110057441061504570508962513872137237387659477725596139188383247618301201038261890765495658675466884613435638509326148093600624719034045207190005699235993209093008913444496884233725098752246902780561543892338213296465603940440316401398734495644523044615720767180742124460115692222457372266180158737064770167406439488066969878973005236299126758318880032209688287811617316533835718388343682708603305980093952795325724797872428203707109400488429186982781461171758288233832677901295852797765248027520921416745609098311273704306862741482097249939639201476001509207117642639221451612640384745062583996920983332575865327447650919387254820411966574935083380048983302753690480419525384175484715819564929033220302850711567073315310010388132151923460634823540077902855892719964049038349616206091556949959281888848578062031772034962382681035236594281378772410010069851702738471655923666277190740375707633937964228426371011348400642889283517303036776865645140340288589127034288903543275443513006598032257114268182183497773171257059531960115232335321309759458616879569739724342221809736270187015864995841828541507063709722198694693134727723171533775563363789268454412203486407181350216163087422412025934284402047066399942761657705036332674607950757835661317381457930180606243743462608286710792143016183194143778210792507569852483740476403249596776116290777597805325058588743330217479713095962161934649723031134029714150632589543162266711971398305082038536561384315839586313964935571768970438495083221619251945486880109676380283902160308024505138333087422058632089671126373970351370818958163622985954677206473154834181948952265860706255662840059568379359813523437922948500868101772393283484723739253653803602142079840578138868672399872110528279207851167607284295692831278529718176075287667822438202743475704280891394755598011115484680477535218036297499337169245148318393669958897771369480499871710351183797496499046359854379722851260221887176628389105971293197922038568088844161632358759117194342142761930459142303031922216599469257589828990803766972985263851692831443010129081885625169018067817609850118759016317893210911267592967512203277136321990606583521197800845150404082873352104304496860956394331364250827443377767561219554221917189303106086934850130640045252404032943882214305088001598332757539018375023920377207031895162896774093739977356841112691314562266728187714719118046681435192430083871432857408156588697954743771850094456119491210035696848936582670553860358481027937481549963335381085291468627716607318636024552745489105243084027774586507784387865189917170394273890381127740876663056484697791312388105515755117642517794361715699999596253782385126498746941930782730034204418858030717832132523900592333815527874492006727523831003784450877566685368958600528627328250770569258102229894606024140036029010924420377994414122857580260343269927718718915949915413059444933219915012786688074946952499946099382843921077147760280513733462822853720784990501774406744754630068037905814072009026011162634989573102368990598825858226078405865187105896043837669133148159774054202457125282378516654463622479803551266581209915759372726866471782669873815221969092066226994324249943025050099463208627428221314423456037972821715687678655913828595554965776918644024360477357183750970675906376907867609719783947809283933924584259128262292752583771218629854471646219644757596150207397404380579927983972934673658614510435735203492410437616624318375906893223959207143891406412419577005103687054914774634369077215966686534140690796335026472255351154090655293127211222018902892845698877703555740018161958839589904281838674325565721107431593663139286737952563731611135703158999452212041118690081821477029205098251932161065538936671387678315524869398772120682140082744885081584276065957561615772285335689675829599550521765636517619862071993610292369444056500456370465929976716370906464861526178331841703334196501820947997724390361620109815926209070869179513960165895260940422880412601029251629010148765378823920124346670720087310206313602625422985699744908801879133102402562953495593486614571065227415675490020482362391234382671313442586591200949201116953310656518175482123662259175278438114443336023569201526257777529976300348682723467022164668030530792277345939010617166856127411074851210167589236498704932085623205809742269186788900164318441232982733211269568497078178889893328404780257067656497299986493350630696651521065088612028458606494835610260508835545983023150701241482309470349363330066987471011842911845628998180634784104308081888711758923983161044150545711342690141607844991943408241823205017735995202158955629775013867335882411045092110827780408370645388908100145444831216681865389274345536828509748779201503342186443410483299771357562326523051563155818821985516918246735256962460994315020168214159753496368148119998611533579824548081197345398551099636726534213950636496249342949718730732125814044569011017366680174067252707595013529304483115354149523296908064364887064695159083272402571265108046785496262610642787329036558121083178481892529134307500060193846185741970531061565483125158596602317922431941063828392486603946482188488058878748482657641954138198973969424603691265929871361509073198909569981969765201955574090525412776473224153033677688413119333235623502229466811404168968538793364441835650846345939696073684475006375112094440632272313902373667424486241019798503316528876150665735334089943106010725951032777476673473012213757205705868606653141314597613272755076304922068849691806751709720106444539683485974819778851839756941313071337792574799666881665130605994325117083462147693877373517697751529952376806039373414184058496263501823476511074187803507498341474466722458733336841296487317106894351700285539059325158333606276825982460387481741071611975384685954334540518424671438413362720924166554723813824904898080857061689684705126651592455353093572897080253787606184790803851833674477403080459773442383960292887835938260687667672609558869639826358836297354817904118928393207824183281159519167004604481647335207372697731549348094046211165883680855886597943832637721464384128496335079466661889439861194638478139365848570070192782015380021381229844594231442195206616834706821692606196822950111508471002589694818588241861958403674012876978720758200903118248582762425914565466633303382163379096896738837829968292572116315113365173399677509487533587080971150421931066232425518935796744838596788253538164781300559108853755476780871057250142929753444654393538394016094713435209366783889722673342938868127952652991093436227299005587857393487449383712449381998431641557587911859015929658085258307716503485719193367440920413179380451623257376302175415857274837485315197870836095992363439312600722301549856147536393335594097553024658378616058066765843401565698039087835623223074420120424434298695766970182117062103723432183007601419332055334088842602779811692647702179149078161767883119625240532178845869566202639535847973190268762000080821497379487753427117716362474505068396245483671030363353077496442056739369597041233104821579307879432666838652006905210287804965482315293639952949062792072498244423726241287326933387599162792265163326524087183828470014503640996476417735972115445596072208455193766732006793901584539437955659146375736890070928960361649053756893626781837845345692002328885827987787221893058539617733123889903950788007377528819424111539214915179249292371565526085524166395022648645243898117553445447553026298505558683249749747402853133161726751690121673259517790324310435992080483011770142264160702869995245372331471069999490174834666650675366416621504836957852628217551810040241020860231683486228250513023218750668491583601384527440341839526540739775158102886829253035609619377797796055523539357872873446862630905228752454383967545908304209081752396681473804394063526766964278863408234102142512902983569483284267093899145235616185939256690185201021637068682493931416147167447508327832273794757799111064576322614026946516447774769369221683474331667866779188086015588469105867894151618265991220837525511228816548614695216182674289005406526627778072583294564379338084941203164214986614542091397443857738207439918989125268608603677604795391811419285867874607267976898251984816546082890438089128872073056161597760684205842019974859003427064349274948457728874985975639229776807387172259318314165141224336204602347701932021736503443982953924166769257337224100336759494000760999212073319209996903858016840114976031872609582507733972369621015099876997442974503051068832269818125002762792068993540797231500599078359708024762162570942901182681864042888815733143698012254314199955326179128398036815958076931268659004376537162717687775507369880617831801597564010052882213321535258135375190373786451750933765334606766484557272813971940875643819597416970447449748354707798232135268721572355144085341787104029040524745342068024683858444778026876732971300265631173572516655590036774348064525611312150583696217738057609044675871941362120794926103406671946424543400777872785026335709436780317106237628000878674375135242413386122748566179372881859399275298314228018191772267990251577440522509124722539341662209721256986358199756694652400804854436243249556478929584772794260874099225594964016567068691789648844605411923543464605013940216935409208351271814786718975549440390510579879891002205416274408566184287655293196920443635269316727878347610570610463708520480035291464887287033272621930795165579906822680271390117951089169555093309011464408574564681699922710855741420884041496458598967153681331355435716308548559335440528508180625393977550120834373361879146245090032448337492515563471719192696784353716537754862534673528026384047926869724493303821357784764073193349128354609287405142704159251283778522984299506612194086383400435224551111729386393341198630860497880687145513900822586974012629712481308936674566189389106266293348342922835955824271941655579317549337517341778802830901425386302510513416300587182809215120907215263237363951624064290281396838334194706623687312709082790933491961173542144128118901919880697086811240503610469775045838781512666086812660186556104436730207300248482525004249578417480980215061299465793219636884729250651088304168465639976892486563387884309403406915135010354641178074689287648883111574958026525787036517191102191067081929363057198014181356822204234104799249658482433609746074651168016898750438894561138860770347744946368138945710621544895901611756282106462718914817568018508357023212724403781298845283721876692134546294413061027007724140268628869921897611024770689222473583929291863751578480334903840491544887709620585092489047336822463233411240721555662892392216691667868738556237286451351521470097931488745328102021073618987028919957994682536070462804525697841501925883935905967873406103070283573845921447149975633907038985365888149361719464825437814916855715810329029923743768999727665223888310182102087580611404985492111390038649213392188989796330705232067009465862918694980584633612645178520555321470805907235041103240206645153172410272506945595024624134874118650718926810512043453299714988030834455928659886989405524322106891840402689917134541037267244935855374278390351252319792718257272088131818337316161598490643482666601671828747099081553185027541247491969105242322692145794084625116575582719468094325046971399611325170149934104417171916216276149140391706882097032566094081774516161994996051941007479187948532546952613075134742185528308615548067583993021282804308946775607360992537436860952498297221544294003786052717649229944375288744228958740613901690105103436431168177907896796844426868308796594866274977706371807500084269026797408270360138550580914641574013311289257515906524798837364887035236178820628153265083598848203930847391639525766544902076384830268977086937684849440496181253045155308692044535057654476589518603233391597543656644151383731692863084847468529315561026091435984861452235232615476572800069354434022521439252672020453551900212146691698996548327346657488897191256025344382932075297513331749628873886713171437778699159939191339736203514974798471904850153561403534228924284805462753514464004418153516080597866600343893145152767121546548977151540800172598499583126080274224255358473578775133632832844497682039714521412536614143334683937961358088555726941840658136765230471198052377840847917641454851828473641501638519673284667984627820399578267291731768067495988375650940332639823938288561880549208466831647216314517262076131609657127328587193992897178131713107761236900793952567781691179858844730765944838639002283925616597369903523841880801250605096801784741164911855730719906460852909285349328464988430348250740842036466430233902756757727503176703275128831884997690669281397031418053054165282846474861742096119269337218931252027291265248828796924435849242139967808143648549119671109763393602009017998094716328058298319637476558287123863574972753989279309008813270153740728630065658936060118572490859260585496714574784421901523247288697276387230360645790519389425545411491904341199460288586389478682414670734410475237438734602593692817018104271082576219059530221115584646683897060356257050664573458662160677663028154805289109427279089648758942747936401447170696442745721389166017786667350250917389773221182421309459198295508691544743143459236276098832222391352867967127333808764084828895343032136810291101641259258601653165060006056880701300171989484136872864164396487778399374395607091197572500682569140198123347199343972003657540604843067181955627266364266580925302184094877320270975171035024139892003010075710233503052006164912637755629738795488735022434068806400848377579360622653315717354850678182542201961774166629727928089553628540917982636028070603746380787688540114355272058305821657247999711227133577547454084570447102729422379311427809073210086986687732850905281538152426252669281614205760654292138688822362262094877253704102394228069560403376595482076852441140718955212067136233906151078736044143483973138092005666558394091219513156231913411812090159842519393037643877786971162820725175281930693046663349461804258111856927393084343448239394572833328189304200558631349525046499959673342124475646572278246799195141987418254637691886467591680323986303769667679901355250531162802517707748181271395160131222466221320696471478838272616837703203217517616797410675569355788328358097396470067085860749382214195051226066546891920639682094782277597126295452598892614595501886430373501721285929762995902254249778674262850524821784663670109606184569995826877015238674221535477212173015578670229364979066422511803048633682605582065616717030727196470586890168563814679247639461690255618072509491770386617154490611240940856356904317714072952524609202282293320014101977231437276791995036685347278620623842084610605696357507678909038675223971526896665145097148019844695679008921740005453243118075717666374991505723126094828842317996377545887606997315201458708181969877061312498516933875560178231425930141359219862197449284925702517367552240061095885414721583644009561795236509441097803170302626507436465922396325247468218177520007129783734255698481757016797549915903170015028783501263020070047421506366361650491382106016619260096164639961498693096291683645731955095340116834014002403619316034680252421543798923612851067259819710432420733759006699009115622210244324826701752629482522473886873508444124000377164242165625875011632163417901990473822533732484529660253656240516122221794866105691235000486006602984654483036665926572941689003084584072475675951827651626574080928250398235241338116282653286889232897957472556330705272265305679475857979137509993232003934722533600712240122466105952593857733885906726351252019821786037511203388310253839711011577414469342223439646372388163316103652101916335351303783787650329983022004110787276706804951076466077533922167626017926582875938861469011122416404573006329134085980400248894091682577364002870310831345976240646571011948620620016850415090304721710074494787760397785363924514205276321262290120218025590805516140568832470260647524241652984224876225470511541305477055077607634734109510471395093369794560228184031862111684218346424048443835403754582751774081969560661113155522211628474182598887658158923244763267844812258645721460615760274246008078133927598242217377814507100832188834052967071145677705072572620935799314222177744597354878763011450678619075110623082081360733595075522400206896098808765817354350216713509730138888278778770594789342442177359884043312165527781353660154141232576070342997816153879384629397431655902442539187590616796496936489649571749842221760729866273483790100674175719004948552892044583705979333726502276021790651036031245561428583254043818853312688128857015042462831740146694765047104495061588923383220090929074389418543572411198946183700602283851830968310683028281886158734984066389849702804125502306259727145174203397318128779841469669086014052429454256063967584499962786527980508219546398714660509018788486327094053559326934571708061654178464925919138932897588571473441836624940305855256157115247806327358866286043725448353734282633883533812381507662818073511145348327513057750029442111144846264184100893961815392747639018732302663880434796382601183779204693821159196886652577668400148671845333377353060327480822075545038083178393781650524472542670624423282587613986281235465642979125677745090553484196426659593187525255106373249977745445316250697005700195129630125302423122097146134404925281983428101413964697453420035999456793845811340239404475741992471133849485492607580574249366514358562697599137432151241191431897521796671948214383245082595209295870773407385661422634758216048230069382413662836872909769500701376326505825787776810343252684580499409962241094069341848463017068819960295508754454291396570364902157285484392981498810875751864486929625776321389732563558930261271421560316927750778028753122332176013547582650251821752632398726779734199890032915544087675023222527766425855547100294878750370753946911093867750931525726684748550018035295834439626053112015625264722520647426448349491509807768637935719383971077755571174622069055717177763848811357797506842049088228321206361821778739468441443516154036152826389332393824562561762372609862454961105191009493500095120863661488513574744397243182413427415049434982765468976762400033271820797795952275877917795158213977057813349825294688226404440661688371898622732070866361889011098246805372926030670404956337415364866371488599416605208725633854660742193707417735141868151664087735760067380262120622161082405489893338430679056732155305897006762497218730419864800581670758503624415688071159936555956369471779907474857676088356357286777310725379947962610104329923352730182045077755728975410414963454275038456841361167275627272102631436240888944458513865367516225614660764598004362593419725877669618811631438749492008627291601678897034592332215210628844542894177177168623523671987304361203802927487327292318031545907686743831745050979692915625100699135957185788200954264063397106550604249936431035136913684988860310355403198579914641022095780289108409514300256882026666489090653754296933720671464761031355817045705162146927201538441730567920502993794403922172601739265912243755511876996448678336307052629379610529477998608803502016179169665018618116588966856835750807085468666590107866632578829288305218339465141178824878862819062046716260132012021542132747650421491943224296261736654779544323089353314826416750955285035513715789890180754581482176428152034936400843116560301819123968853904146099589183939276611419110780856354120041243935241112157751144823703432234530512099404404700170409767324276720809881311250380989259426265430951899096601859822487834097450295371562690044767920960852370900490380074749531411085926297240074390962407870850563408103207764256025555472893421204267204751785698378780406773460268226231300573992824090269737501087084813438321881350422840889229788156536473980930388718630266422985586283271181568618185143553500533344543178228432163611952684628525967947486839839100572926957503992199134988422491274270665534090274421875733144841709909549632318381879069806985921377865387653116542977484620371555199082033283755649333841929741568817251508678015228826490172522539412715605385305940785732550152830106564241701797904322267097714122606551997858999354667935444503108759094405069018290110981719043517104632424260306558317035970814670980260895863099678679194523009052592317292143161593963188914949641399908839371578052876062283727734019945628772764676154603540958567685622083858419431267949860090249020699476920637577780965303915787210527929270036127689650232048860373441605623315288865400558873097917226997398608687843206119704437430075940949766180406576652436354371923221493206203492021057934755969476563290415538814805239543147071179562955309712257343253352299325277198461993810623250772581947228049612726353450785477004734948253613962220171994010893660712488873932294795586531936479535413661496534522406866468563052353724199983632301696248185259763486338494923896360795081546806041179306643195183532211270737561865092941578655826118941642563823861700964823679312278818365748318672211059614159475249966800804315302063566121977681290777275200802292484116399298277375950204604502057643394786493247416231110504761359327932289247966036437620792334905583058633442109676217810880389579049527715649791062624946468908123477339930743455406953297282915749651352851071757877898075870954947037500162528882936419629192303757316872749349426172497317914161612068889732850897990778880052770421580348464742987961011316682674940483189777059040692090116676791111577116405542421118763324663171831309118567907682741367830290471478921388449181034057212766836370041623752745788581419525779631491689177326019701367026995276090097394865786534661934802522216326261446602907170161666340925646470599931466236299216394273390567910294193033472278305449113455304672294495525741316422359571796673746858934192492780312867716091410909091417334906678898175393735276991290675139996095220134724243980074187906026698168586328616290963433408374713995177559164808185842619817099000551941265289903696889622405943486032289591491926796062201753083396732729630882094951756754098369096569032412558312799876307185029922500560317770682481724607027550866958497423721115032531426771725972966218740548143088356537271415915821265062672140905721699516774729864748540458259051897890161707088884767392360633381605397775638265646814539651151261365827866916394043372547550654016101853197654837663490148619448860593572113377284812785080436145008514265735045840803170785243181124057551081298827143552346880229348028432842129025815765026825613758665958339064292686512604762471050699388367909665947980260385251998452196563783827432717586518051661353872673812597353903692407243279064885378952680187666689736760631369652195857764265169890226602604239098094111710607216428368717732518648919259848887615517325036124323775229623206646901797013038308936315575629624475079258307381627558607390921348544479430890399408599401877175987027355006273556566688525935801488860815564834960291539837483801511947868896934555072530906391934165739387285261247083480705925002995400744209914200790578125537174701376030161051620703722923453013834109038542096078065752938487129251514190563183414487416002247017140324830615253803912668905293396869744447365989707243522893119921247572575859689996970875868312147583848763670399107359270799674308829122805061138545877066490873823381508327488310970171048580216443878638517582573495619608451439724195585628527906164742421908693903208581988626045862897241250446915905012057401881327159590298799613779419099389682352581976596820670515306317741089246318877561141778971014145122431408535294365992295970224601288870497738280087783348961815685789308435343550697677008990945918615942368876033650499113905855972738892672328778582798992516683859342140762849556063532108900394541136699274067750067746822624426864933773435323887176446410316347658079750644975735065912029582224423144119328372971172273157859586765140560770133954305578846485872652429147381607932292191551542192820520269621187506309362561288358540124961338436554910989886683126424348611731027183755208157793180416523070689790395635653383062951728714489965875577342236630005677251300615135127867754590553349439360250785601562982008414477340513825467676578804970131665619242621101576772572951832649208322317820673998778321055854936872791959653123202005676214603141061982306774201654281335158673413151457017610685626789639884588096394059118494433453571229991996962182685428984703869168401067296106576469877742997261913361170144303940935457777062114131012056875969842136080074276158485525429744387264631042557873742498531427455032330491530241193800481146043777326581979835468427706812217433866060219069706882179957430612498686510842908004167971595483856478743631851109885749600247027656043843263760855464755941480757961191771707473049578384297663823545758425440870705080451108542830837105862083808297410057843527758244441921644438938647099368620087443632500615086037204485466420687517315732993178636859458067765213347874686590473200511932608530704413131374463293705203710801849816864715461791202783663880010456564776107936617877720006763990536230465120038648392681104685962473777820083454142879533175270481399249411037977613654856062347496051627097502431166513089244548965529039505599076582059370673577563124688560884374819261239078619377430474150493978125790358788407980096620157678926179449494109893176352392250173687511679570040137727536464331786797455060654843982208138283473171255366817041126596826738591622130138727384448205840725097112268603575479463620671229936257584368438176566862350346629446076523108773953500583729442507782603088185605624295039808661987782136840403181120293996142642399403821640858447017298023785957488567827639069347623808527283939850614405853302232068771408445838527387127338057658153320347849557486914552414947523538525090887331160350942021758824559146107017143692042371495745919878325780308543237096770601816358444728844501873496485414944692161551911200606506671444615450624380149808091627098910471683785286552176056856280068226750573529888851053689530600734540429033195310197708978643308874766651951398651599378848908573626900432889178182951902455712294648440554644540878357763340924207335768709209512315855308619017951443009451293398194318416030266145486184663474644507929511857227101418072815399130568062186093389643696006543732250744211058546643059559347003193140736302885673387053106762611778496877292405348369935458399904150605962026260468290171792551706286101778286095825348109518232789836349274326396310838940703033194861326356498695590214138924477707475420208078912485019388510523622778178051109691413276289939522676618726461739265077145692334694578775083452269811601332079299307010298778189632090421117486707659231703672589382444097762743373228083478304061405363521643004971175698884898475179562438040830547773902856032413377809102777086913012933891150725287063901594174982553976367404581323444785455619497086521640277342356668682175707697217535929062754206956856743816395631719968710248111044388015330055728536650253853879183717056642884398806158877304007721629629093793102263407790875403135745084936160817688774535137388617085278484123651121714592429660298321899706462794894859191713009082838659137190823571892104676606799915546345985464717075570689578043661403723730012722660631841769050842515098661518547904493620590313646255433470224001874032568698047078591195350993753861887672260730513096613034207069466005335511980432796093683151840948467805531562775368819300122701138499494852059459450624997826160613138898271389017851551220801416059094944575620077877092985772678704499929110562807400708977704926245635161937773384606052884243198988176798371281397487753935326497983167154107231793070727583017331231612061450792335651515604588508775347641178571031659927298981559813687545370413082287190977632592856150964097986621607718030475099435460928284970513599033816861802391473748052223647211578397811773868456602671239989384877387497371366069231190878107719892833038875162797657544071171419667712548639136968842292985801473639372015765872156467220187280128472449986181668190621426374345028226811986822880716795719708744546805878289032360440474789246111046852333013508295557995781428168632309680104092077571681717794708022369973738273695883529367352706645385721444247774655406326552597392461183995219316808638876700026358685226895315594594383906612168290643426755914849807331385068799974223768710636683825780071255023180489706979406641766659661077184855812475924521954196021824593333293379541934173478539136551768267468660910987715316113698679059738949866734752726966506434578869869604389031134433842560661593352161979862899668120239917892979571541505878008735939050276921646687315131609819489217721293448093956955861348206848955748248955298276464196804998308731714643584450184360658836051649569437748299393957897404045430934507621970260950778787141357367628223434268104953005295261916935817104155594524387017345465628854298614668333323451675990479375830359457376201513302149431013208540696866706061278864608903541003252908338640603275817719215829461569181975020126326753107905824380850381425740909857399302035827472944622261914915804908029393347617641707447715547857096844118446374821128429333230643308038948788532391914180376940263611464666004401195493442078784412191015610876549036053747460615148325401141489445845818205838637701199323925190196500887928134591300741880525324596948789069752956218348323008485438782030837459747731371360534463112241874587784020479244493138343924032416937795249026491304626151377097723849332203633105735413616959054666469856520530445623575569327715996917423533626890818327398409875892579518177682697321623926840480742799797752848649031538679040161721818556634775324784068083719151591530907571781684439110865562941505439582385437784461741309908814858888367093427156154445302123530653324700727998577473912253317834440289806167669729971786283844684715759431193377368323904391608425894916006961773528896499695993857908255474232373114234865533159997053636704481940988756981410717231682357971660808495908334617360078999925263631342401754683375210627792605799038357420168015685054585053397931170991804971162466923878154059417264247817937986922740462227275554205573187172409807432323687923306657582107491957650974021702045375818828468428487043528098831042492061711282586892836505160364072266648757075949954581498587541839086872555548108273914147221693518058004199568218221245185786419947523282136773452200148507038576112731927119236480365883333737606553176666397681199068126553596393297068514814010657311044550757825428462916323153832569682583207373966753815410295582051253233511752296223249631050133311603443317835896709412215197918461879377960550619909783341193047335607039753986663913571214471984338999618307515824400310231212171134846360970614376727206483574732763259786541332426730944303136885797781628536606165336072703407545014671631292694877156311278357256882381821812039915917751171263522959199971982469967361109096100211390460713688549594216698358283782076053685665577127235847184307599593045966597178270787627295117503715946054489009491850053183503244736408688933576384651119391650937549300049401684322160471035299259880071114676787793497139551927839727543129160413691815241964615883667435841165678577193041748434857153637713107250344638497465201101492576601813278539909151671274888183434292575912066136081067388356503637013987583571551318524044565729690866935966384110046526382879587070803887501426765802929352093981350462405521372332561164329284099031651616304300081649687508276435457413012025054635416211518522182482358829253482425697390003783567561970858140634152596466195542919944611535810086752415019609817433589402331531144112988728023289349135971415357633703459102329585028796379472936932792479400040863530257095886249049740479656453536233905370032684737905406080169240121212239389255159416169210425230091706466725637744088887398303400427351636716237261336351736215910469593835870082578224485125321455706868386452248437646751500388170456525118285937405798995635105976252056528090958211957015915001753401873141512349378995626365790961313366655480144747775410469533254356459972057472133291253543350467757894933328286057221127118190524473265219609329100458773158762074179690478016091369313901676352505916948327983242314728151859471539578103277228254153395284706556528375494782798378493465271127923312526477097621581188658169309619369080979972164840341023316617571134482379604611350479376578123538336698857892852696708449036789802805047352281915592909076865095776087798795713410084964843303354524087583824266983888350938037073535553271679912388554057224429623296405563846148132896459429004165284534700370445664068275558743904191673520297979819630730411816321947696323704933950096212303901216951630486779878072184070603450494023157944846884388893060003584719979595990718327455384967633844671366028152187972350145950171519059583731761545405034027192767426513436622987246947541031633837666725816546004368366036395408270346411361157263190722586567991504451438456961728411807316026944802473575399651160027940418406085843943914767586787772946475260167851118149743523957854249221844249670543519720114883955631826625791187688060923288349145152795105497702103211207322957342021824516376558449754271932799125495587665006020068887253742445235215839801897669972109294798526662789181218245972000999196467046854926687819814129575234376032045442731774096450245203768630266617088554564396555180537397464463064867241974025531620173090184771879804342305259320058413908377656608063354427099383208886721091698716344203149166524846205196362697848690620852536053656866750575120516492283932386934834417007881427008467412848332976329973266216346613928581332057246514386305268769190781515420198721296735320487031194694735683087873615708391990253546027603046274915493319483904956243149876733592100930375415471590454944256754637049418038331503694558455251903496349906112956401389546416716941766972493589608320058024192215005254007943488089248761706609609420017367968633082122179127508853817476737656475963567802429506651491765462944677002413441458426517389642229524396352734777417424056055645144276448387519208249212123516181399949004841110323362989936210857493017606153468883682827852385635370943063371569713717054447005081546331636137718930468401188279096996260727474576397396933508720876089426754080123943010247337957851360061814213745953339843754349731585662009946445505148432550105827574249175464049894617512105102193049966419661367680791056686991333700059171456332182427168930955214114336329489745895019272381202849879067350540231519472919369272893310632899927962501874728600978064470594745777349987094001752418512351983521176796083133207332000408801725039300448284965350547713348911033656303768456999181265102830154367223117518439901274010574401626821000696854276753309292412382434594693778336766243268917179330791872885900286157594315866458776865900942163744845965577358553906179566241679172659011353373267171433151582546237264538431716769001174097968153552462655089129337677646877704277093003840246974680397480676560757741940376760624637435682759979889527138743185564565273302866291264291507641619853761135276823786162439045127655208631741123735681571410038781096556504532959456260321653345600451180015977810357495597255396631199105702160699724578250674607804197681444500118364055969701838318828256455107338091285598565931098160849570105404533265131754236205498441941218733349954097010997837662308223826314665566376283221619265493450557620550057749823352189021438340793999874242779481307609437080590643325172096104412515901072120037666989308788081958182418796764384222111932842255563797340888482586163621178542622202431966559629344523009321699676551101595512492096159817369271784953677831270699639868854031222014653592092032594876237421663356752051690338249544277569363762696998762872384360991019044657289044522833644754204952824032223004065743046984659386691934914908340518126661438777264483608592261454877691703814026914672751814951221651250031800254308700132191834828110657764105207746691979985591580760576605773062361570092767775759753506983666837040005536281646407949922084566251821240986509547086133583950896790443177671624742867215904964670039410807317794223301545109594576005781008566857799629555153645369960503273551448197422262464312463685890115551667700722412385006233921137895530555837170420468295936845532727815753401499513709651673366887096695204514709505554605158837214898321442907359401490307717885818280783939879091345360706363251222573486910167210468825568929375937866258877567386071187612768285151095705397478668684681635457566944423062759891054384351505825234013032710014400037161598642862089150920633093061050079024125191746126661815614118205991178295222158684387060676570590919356386437441448814753459542770955657680428857056943123189259623702445650636372055893570674035228004232925084929174267620681481841401575374677715818607004038220417064920290091009384928350370201736318615413954709306934918057969580623152858803515935039161674194576129096731387493408071316363144009132689645505864432593908265408660019149593466542642231045989637390753316962921254287552557552359021597435637143377446468606945219973228012688568028220936914426032037598673663992161300044123072586961066820387570575057881031402295531365342472210010130562750363753915178610301804019222655104085803349284507650413039650423281848368680498012780624209843986267816281050448735090456967250963771089678518618632544992908610063554878134187116866024364921139909337304816200384504481136088381849017747662202895962847882000895024421466279347112275506445674541278281409139970366998611217099932869027730072494031721850252828769744277023985259350673686988403464337826088291982884173991825358106942992624255316633902942156340244664674898317837294107669922386347192910077844739831273207241424846472656513637188564865158848413326906630558116665268248001071342452043424603569243866395384138542984767508235950445344847466230624056441276050245672448793924572121533874264487623634560658352544071349402283930425596267526712826387319668401310092819066839192230649245393585595280962360239433587340545864205477836186917007966403839270425802687646907786967597428683799494164275242685413657978285113478180186475253291625358460771670482455934284810812787549172892918794732420242384159139094036171951072643309524860685458608398214270522800028180063597247238692824297135675795503912207014907794618492258216219959530773563310616847622500820681665388450829387191697708705476045733925880090992029539529128967288224726766146498933734812738281076387145895701065515279853231252512606134316567021934156396724117440250962210506011549645350803993043969556486503172776650631215508649416800099896931792989080390423789571058193960498423383667512804915636818084176275233566997604907085138634494564849082092051240580238433472405616709596822608008163169859500847644262565783834613720584752662834298730406688671425942228510011064947383704480347061808188232861045192599576496323857639217091117899918364526166273692363284776594601099110484003859694262172218874782098075453451681784759803720406446399455075909469243069561078148409630377974197072069467362767379465628321628141201741221461462321415324773774991829540490504537076664933842542426608531041192901231495118855605689025993957701664858209008492163703693039647144908561841826849965518360938837287731920556214919542088318008318416231078726421683518425848300355139117054789261362325412168343649234100483364823661189911278722747440236126335453558308789673856152123608279549894515666014119211293386411714127226046257352009678907890745202938485352014807210087272391711714482192713013473553445937341507225836733198212965252502870540014218624467315797087387074293069128905375791230174741519690504480840627190328338980869156267266337878415044172553355443262837045924117954202228722319328074167484690003544964289582724571394271774873063037721868367148989410434469246860181979484020466546725658006664497821804281823129768497078773162321718893953771292118417546732048548714621291973329055404955387853515562629048463018083922012959924212098416248782320924712855627691442515214591767911590707042735320252763634348642013201363478955479125957906395869312730238221870147560963496112489312595628282980169671050603655957800066888914044010582204691676249414510298108681210634947759968336463502726603111665653470086197258460985372829063718535829228223126056260657450462660044419200560782919741523115329893831138540384785403130747686998214909815377389033138311283668753773947856070997497980688748110489631421922656676123595019081233192331771185306068802485847882842854281171404123687211491115107109270479058931758959154395512300947644481223646648685659716374751504347464908037834400727998759803113649072970089872296564184285772257160574885005413361484023666846039479920024482383811961268806720964787234210666591957254869483351781932405602714873828480432920606513371792300366633604846007882249821777364589688301856903681196698539085437062317623224895664336534259914122862319058441190214977241120851536670427285411519524271001923652378190274717810272999785560014245046394471566207450296236424522490980420039009308546631299984276879351946898507709212695186809126482672885240769081506435851268632965266629563890592813784412598987490176475394847045703580498237052484237370496511471426644068472886492049296141882801448263401369718224338133790883678107043499298780748939584480387696329660162070208957685612451621861220143137948632874361273033346803422917621103035950214357364371631097228919064438146086424035338064922118633908307207405148433915819085972686383770283141734507139015255838473475868866132453561338645942613891338030738087349799044891104016528687517108918040294421766415241259857232625199378264290912306208095714656348140407903499934098148049191776079263410926548750487207070829295691275083013218183791196946390334469305701449445613669941243217041592748067830228347458581954270676307271522933424936617259668268663772603071140247894167513989933363451684236717236132796729903913535411122311941397571690075789059098924802491014118437311533986705683920523297237656408156863585046184103215924557845821165670085845396367952505370322375875175157390775270505313204951318218043813200581360181960538047855797912139112035067955209131236694094826324756380504996616333104420120806063489580295069790721957867294227564549882524355133665862785731341368159877782578857460014214928946381894602341873517727659918244471976519116229076413757098274496400702154713209509317453795980560597925499699657365413784205700064816989731215133977859755848099052902259101511848227022419870279298080895863449688148471501475054008347508770786208136534505299323976650914023117881061224103419135127867768464520292199857974773973596809661238332809488821338649655239149280389047455519570881667810649376656782699653294428400039151799305601654531009165280122690649018592782505496115765727806570472258130141130422381758993884944284283096651390144996065340588710370148853142371058366520056905386879669592687496044150579980045676817537405827353197433884581456390662266364357977074127624938486059177575787635117692425007371558731477696775173157187027588771841162798931954196028747818419709914657292940359509981932673639343995683042901893788977650800209937578031506830061512563256498666623208951254498321360387448826054625486462034498449597375934680729478872038907740616638426823230343059494455920378120232883002096051399364829940071615370203566455813150238074386786836222515683278993731650720822418116992232808632684536482389030875247768704755174172340750666864992322435855371011126311326037462788000831502036645050417970055912083670706321100767143442211272907493809244914667623489657404338473756278487085527320472442739038988882929205568638006402265710387296690202478780773694468117744374447485456610849067250837420812678758910018558721132234016836882649890875405441368819873034826962012170838010030043668370723062773015352443138526592154615438334871097551157919980670642459258040428857486410373121189141501384220897830680423647329384028498446193713630698429342246932350101658018254712729623185322331751064786412972518150087841568886657310430667336374631599277506038341490622669241724303067404287220339844451201113479184083352242453596011863034739510975967008103754187282629669318787620708355576633241942616696232726856292650085881372190737683680177230168371568670709029835162980939498973318519374478929832225847808240102664344313641770401244014490138810064238263562519650143133687558087091914595754458779047227498795426250796840866042771983377958924459639711052000346041519066479892523555581171804692676520894377910280648837487360348518541655567303536973163699647372581918715950253637940502273924421907324373554944863744298335369131865084520092823004470776263662383379756378191529558078092527892846644679816812132234590575716013512880488714244478577010783769758027720516125788310518969917544444639581378008108354521295180900182169065290459048278050339507845045114638278381715588282483158092714072523781605501309584007350408302340867889916305115882512732098252106280944350396625663251188937198984748599411258733096989330297182434528301045169055963289503530765199298250433038873191971180047660130683669123873937714628430313983072522245081967380733051814891059605690630268727432303861659504886705302359141999254391611921812068921957547456855944523790035961484042964827973835463641558265105352574626921694271413436374592236929283780729428940385315147740012164089969290378481524702014338728644987878271119274704090078982324777332851368179642115029609210161550886476434934098450775597529137809350271321564472160055398042388832382820278610658468341100704403867803907475727292963597310700594252175740516618190600592352361764443381379629991497267985604410018203601779176881344095764911013190855720944147755871593352003882121195406777153810190878717240638282644978471869731796972205409173540625527239884855059766001100796480305158239798639112212956416233926112486941828332461368591921929366509139537841066093241140750034879557616357766362453659578759260671292052068294463585619854881389234021664074983298999692517253322212159392206221309649025406199909657782446419473294964374740280225810796055871439106789576699091492369428138679961276546332107097603066807079101275561108884433933015406588533808618835199453440328000083028668986424832403790085000974262139512254406778210953665057102616555153885412035304073387458316946011249047406037488637760991419313626195881008037535107619605564891459756777111732237239338734489771231865922067730387369348251038764610835494969974293701757184328292325231718033462881488168674379911002618486216482836170921759162105332828584158538498908455550490961349572217682702107570528398014458625182832115791777535575409489195567769017797305904868780622491470353514836371567406930943280595601050971571878100522571066429599807343540130783018379862189988613757297875551541883841693879240798453682653595845335553090172565468366188852634143299719197522845905377339241584702979447854690261167016486408468156224165249662893195185382346082777014442545939233010910805346174900152919991485673231623091650234097228676442203489524382351478332277900153520434271990704648240875937993016396908532110933045162830835941884881715175809491166645611413032355703961169221248557012834228243009395273903659711610158665209216185407400355216605221841348539407680861481347109061101829909735516066354611137720993135866546192450128650991343504106328092046584814849820755471924716726705163053067915101266909707018501300865128904278196020709024520316316944346923565386830618409709975551772476915443379181316730871923319296017322926317894012381650072214160440371385899295773901570207643846985055191364795749125332607868644902008354319489795835381977440588321303246044684815565613891224525517171552237218294742375151579673409874983324283357916786904420398556560147816913923872212665935890993454277839060127311030154514640959302162258935222054937958695218996110131983583539126382736462475171474418033764587881943843844518823088106090844031117087730397453060573771239687225780054570927360028018188513599320575093602473971456690424524164671907354334115533895132619255086831697682246057099296416152629530878165154185010025508885947166395990679360198543775842673810763633515465302155759456567700401415945075758366019493659985885345300420907555212761375338291320592326900963108078148897864364504111416423184229421290971231157198493016643764736667767871855035298214954948698905630508899486621383509758463392032941835232584341350492714014879389894078223441855898380037597380684034437253756177501421619783357606291091924300915919548571507710192090804691151643822708303609300470161731209357510958328463979258614063901731469161010037944924042245576668536761944173968584615503473662916100741529243360465607531887947757787570326458555102375956565179483295322950551758224583650481512796912951887193580409433237679945583692932607759540254479886852953193297071660301150426647667151899961286171357851420184652619475051592693295034635342558085523475695205574648267261815640590574301283527212201993552357837022453037429011434309514709406118815179953814897254143441353537908220413924469725215164328418730584429766739113095717485503835815723447595732391975971917990612649430687522823413297469540409288090326311081804785845570915649073703950053369149490609653138253026057683325448308555574858743001411634095489867087897702773648740101698610766427578401103188255038195489705239359603444665097872659107903778504689056153989781505605438168674316268580362755408250103169633799257854364015077103594207871533228198882861154054978116835234613193764149069125807213546477388154364909558606745642540498088742838808207507608641995989483393129632472550302061116635555480319571774398701116594677405342791242795663548102283960051753153265521324891847633273125526004491553225154160762838934239498805852833106619234016125269036167805207087514027517557645004828653708210980485966807747685202947528035993299316701085467021737397713073479080186892100053954489467348220113685610504531896631801511342258782842842735010455565096740598821277152112929632676434121904143812818058966784226722174704627450619831484467750197287637625331144102543209710954240830830486251636722101533481535129999801605601109817714774816396268965366041181920812019936298797188217598968011185876778731521175404104941356444888593453225112485647949857993856036660689921624106038678733938897501911919245811872782942762814041333006294056749664493576879983903153893793040349570300659086609603361274757547471881615470591071411220055326435218241561128505812729831229778068103810693561253254673448909070140050410370706592282720585251663710678909385430129693541692724345170829352008530117607728838436363832742966338719269525865287947413297561790520445197208506322655033160503966848023002124992449141918430621025035546495213059222036933223717364222060400416044351556027843801695763185195007326948422773002238312985381674791871217972030964559398704768200405685516767570116962785903794642828759246071102143451466565846350060907570322463940621766583335213090501044251287683929804952436834354150531931450125265143917283724458297764633850581226226586678741684342344051882195427805100887617605679657947921024493523813048375936829139901732118396556839698741552893800204521515406862595727495443026562305623687797369356234594702679069047899681539627628867077055042948747617952407192627294917296395164335998472132534809227912366353725159124360564980349966811980080193900779678125239766942448161628871962198979900496006770121441511859989300308853514198774569235541991646970836404694970561756091219184751337116044527360156815562377137327990791443626743177261228909029048160349954471586699762843071893089519751052039462407098763285725200468316069838752842521331124267285976609906584952243598796185860245203675291730237089025348026325269796544195813151529011557482359721346959742574246162818389740275842599166359235518139934281850109475910047260799798650399547466239314632124764183165661093649613587660167246175239230310710948461841713122094409040508370065067018828363211445951740029942646023653932432273794995145937048075260452602619382657833984931212249201345267085414536423460540558238890865053227850941703194330185833426795464369096154821779612481353295825927711183248355267237736634687773872382954042111085761365757028421100298796200268161031814212813960438363862732819525823803483367471965751984678542205592388511415266210660151526070838147446040926501213645321057170249983671246453533822940776635971568122376148283824863798626942763751756702093686536794333650469222949299082130898991731241343464934357522877183997730698971173480231237006810604431378647581620316901832196520681442348046517105969107590257073512380297571284287596594828431973960512235756463938696253140763256737521538932212583165747591224764361350264721446682792890267821164850330029564597680581709642929801383826292135597861484301853253092998768725028653396636237453603652507996372544775096465019271915033076389929738500845013426318758764998825555822739187455923194061704199869195492057512234043547348592121293862895561751219397891470325039967924260349437760626558001541520191982109556932432055456069563234667991550675396375262019284800752329080482490245362261563382346102202556448660866423133866467586278756031110212065420814268562206574901199477014595670361149121038061602881758120825778817216585031530491733325710155492387033841172650595836427776703857961098390691070328131548077805115324464119295838448215273058892861097536706133227244052797164380126524143247916910013465780828742436327557419500861920618276623241496316808559450694978703484279064119172708405240317255314242521333535550350652538306968887756530414895377165859940883947736407267908842997369133452586162396554042468422247528856638510436829529038693340786377352383728007441844827008679578757712449787091237605975749757300744795590970497046950788963414647004400716340317640123240066646045737010594625281133424145250940444386407224306803848119328639452680237484283465348072877588365996137146823545733419636151671698066544940809843060965602244479339117915995003417037390875263035438476328077390184462744197021944525839397472549567026409850748871062283807857050200944446776886703371334941957517219228841216672632627903202824536721202870389049589272459166530648179890106313561784546694589174002892512283486374582939700442928824879327241510954551083221614895197723941910451849814365789906985263311563573127393734619539619129959669544231924435977915099070462194393433442622117190340417805970661216862570761609829921924374639146894180497317782894966224564263028362382418876224164391144923904659553052188631343541993227878119664325109935724492920253682676383607488157481737037544157831421925663519937019266716071392130311992418123049108472460629504119482702029316874306926360392176632002638158208960404148608800237371944483366353867003755404148027219622035855088924673014586238608159509502435719882852685590825464013158905830498879096800762040479448021841747838925767405163930917646311998535885135026354493481465061719326670411434477407779434697926916984493754549022644802122720136229127627414877387561809718032609639613600060747668609107831304108733268219975197216630958148024996719698340031054381104868476518687611583485046521244500607714277001356351272798628242850839575302626164725738570454435605126557608859581650555426235204661183997043385181406524201783242123669114328348202787360460914996486951576064618325826909728594111983524036418989013236433776432054314735383827192812798453672669220854746291480108323984127305172304658221842260805406691231577401331935877409778599825044800866437646937946520099842327919306745398137931076234142260389905842185446998234091183824447013593013918432629092010442216818473595674608902210627979594453242676761258586796483848852485787727740858276241659057958545721437713277610071898922345042822397945436596475805238126970401581115147228377330227175116607862782111762317530914947426950045739571583226996906953981405031593242822158480828881135873703818988387390120085789007771243833965128128100386885115728487588397837179474447733902530594244531223853557477850839614784590214842147767653002680971425358583550006482515013146368786149323001427825689430292005685706725074053450631291020012205458656849298841684349062353744066744245572256976609096388798086355247256798574089255433256456401148811724530374896488277593917852200505660634111029672269494592516293267641037109400618723375110660191236100087180505438442585159894987016792115310321778219545510083521821986120329792986919838189151564010234446989630416494314226791666843697978412780586008614155152675136203027814707146082765178462237301884054842620007988310585766418917874274218612367458319070547144715186308992511495842575284892826118664070243758998551555661241614054160776496997208422053204090866892112757658787745575153704858964896202321773303444998644273653470406308130568550136395337041058463669701775750488701309866571781891508331495509412128192209240336475010560878195719483821268567905356482876584884703925084002728427957504922875018191818378699369812781359641111518184128658795285657775579956339140848721523135551489238609061738085128350969241603196992055150641578623107099511005362121038833524915756120771344294151035684242892766813143075765250382083714170611674794975971639918995863090286894287164047288464870589435248170165204502369224269162214057182387205390744147349758779096852770959524178938952562650709204209037446971086008288264571430840721860624622733946190457367873447847939713357388549166741577162063951687262977711141330312968086893685310037816914147901833880861403823590992167312473422873940032900401298250923928055518278229693918992913359477031462577214879754298636313832923072783736790282807945265537004366988622829429520545516397018047176387674888689522299448117205016866645066031337512466484795300035146984776616188055084932228800732486999523051995713997245149769278954007354672985184970158334895080384506152099567183408585272895763993446412030852854965501827443988890765938214273930184640248270990906075191991411317542593762468727869089113111796283221621843093001910836182947462583813019303730632986636142209296376122894036031950143057595975811031707755590434612936047423824578180174201256172935021497655210915041633732882291097258415184364284138768537087590044573887243796508532929074920634181509269074155119150143846444877805358482954806509234928653766486200034772140493221772406143963928398356220286441361220189836982314983043072052576188598207802946866194114246942428847167063562190552207278911250921764945907764410179225839588252072216339035221919876447602975501335205330560609834781867231410740708053125818379277673502525474534200497285388747247785384952117454738669809882896151781978865135391400389285459074351745322239206195756906455033679932194209329858552703123491841603943647113766045742032068359421551241822254710091185948970022417771014912300446064425839571943459422660113208539558431193024526146979349363927719688864107058297180664768685436168985388721672252103344034042490691960391472627087291573423964727725342570691660305532324662171451511865229143232403583456966449259822706156736977453133973432802044738855334297189056575803367078400404370131954981136242125404289859591042902072246934257765600282296080838079521219789355810039167312687703895744642618798834749003524596860318394553680671588045931219046367139245900705370392430278471919972058364868614224051808370358341271027972433004414816134168842421402894657416593452564020727574841275574276074511969469641610223642447165855146384613470920244591955370335522324489050967189197345758536165412478046267677228473359362914083110323162303997906541625689901513062711627027298068528305242167161422255446905978186736297823700179822374112309098170357814795558530505611694852488222563083762393145002794500964949242432893644547628174413644593648442068292638742765568212479486990529400410953712414404655259543348380537364603493952834367545655158636217433979659822273062902630646971959776317230926442541971769374598833392803902562338739499474098216171302538733945625775215539808971903244569459437633979229309490843259209772847413501693009646951454156937060764371478851128256114105040898805917445618891045732993600725518863765193169061595658692468400547176376120130403643696527004088092748809311612781368004084834391792910582553328967217442389524700770877519158217658110873698230689861192074627883762775239300957824795368836904335018684215893901427542771347816958314827903023190193666893583905903638999137066686432558066838139928192017567051760053542628266448702293596232400514345537539534812370474203729180659905846486415372653258379669917482844746579971365610516069644480156449259015335144390230973628466937460231712541238847537529907726155073159840805837460294773110735619033963871571982325851318673896091645928526751587659279743091473839275336474593481443079344169944805373721158927425367737571220921878124972139327634702369356944594159931448532971865827886654056855346854271384735729744492487405127978643569182595104725604333068739412144255901967622534265419528432405159038893960355450184068095882345959063737540455800187020026306106153236265785839969887776618665047444692054900098504622575739201355415674102165356393532599603970096810376365648392264435572697016809311152303811251675875315528785083848963675738115847718926442549562730033965442093067026260123880680320825190398602336045221737009529733706461298700588978543617674534443188477628255245783568311844392213216857706462495978354706431518558342336755925785616025314663409972011652314732772849084168958493903221267652810838533164736918259220490235822164542294576718648741578196002680094772860646549601671302047964658690841144537483445710803332583783034903765510137531238121340660711361633706808941552798602380574325756483277822002891226602886071485916645922389056907796140978229235140096672984120779419793800104526526563158462367384613768323096298940639221352595596245782143399156323482020055994969865679293817263862040445217030473958501934424512032338618354767881920656972242289776401152651118700869816170077616072856721983043957807426814680359670422511245856545158597599354690307525101896654169599320719891702521521893099015692255752008943367289078892303169989943105264286472714348971776567442174862845016817751364398422558030488923594271741945303345212898155867798878308022271741273816626965414671930401105893443763814463343311641262156826174890318440151569210946213625379149822170474220186298998591660252809587971179321359464457371024394337755533654014085951468560324032250064002808844973868247686931838218766444783847674492456284478946788645196570068349100584298261326586897262037650275883748914277898123673216014200511053863139509231496923027834065041250166615462787061148820386923588831607305703854870483267360746488116420909494239486339110915739013062232538446837162232332290311863599086613785501796830359267804380920272469057329046351515990111418824557704168435270789246440517930405134257829762022323715867986616748764146039544859670724936913133903379465709080007683785560516611518580644832497576713839831563272855656857597618807744106383628760126604210139643349665367056154115731421205583727836085339176365975287047376310306476579999089826931724560824127484562495183484083683906099326049159948342902366270810069788349256236797875600758248192569208794933785593568580462143444613281089047116467220371726901678280025574558684256895396339435969912451420290001897327791061681206868952403466549468867598201765970806938197501061542712959666352049546518640677876516896737749004721279828374507406022515999474214562936387424735262853815504705352294877426851971665514785712576587097062105285276173338449302650590098657390257338376253436794383557519076988818609824146381881059105481467310421280781382277901446334028947922993504704657144341151372308149511607472944477169558689176044580835971259893231599342699297421776028186374453126884234018175046681651129629161818536995374869569652913459593755624848862074302228359605707995720899333873869258390942053060447101096935572988332645009813800930460314099703150410269571688438837558611531842420903626454066725275514176734819504220021600196891909073339960944834514668720013440544735991288563197786179777976908192769864048300215951310045965570382831262796062785454948807779641934430590187944319138520451889978374890919435391402032024783440400249996312843436246890166955418972943839701807622800366100255789422834266760801794493501458605622115791003297805429114271932712662171716207849112621377458478973659700320488177565679217976318240258904152764609834104579840556987994411214934008742396013346100171383276770703928282084101814486390492815248223592332866647746155339917638052024358820618514545089552965622127132843059092946674488459497015891889096372937481161344632533690373486178095791434359345240831024045759190137475153956428661078370138020661529578096909071729373911344394158489469156795053799276922724744771912741085795064987758644201738374882824977472999239312103983484532933128648319529160886093622288954114625535888640303051175984449533556416433334407443080569513470944425769318482818985809877922764475812584685614240655790201013611755798780892276063577900853815963004359283259629970819091183051957230456146935430582729503040472838426014294315466162582389354870032931235669166655622386045603883231371925910908646810904926262688361818401995855948638084205716039601172250327009025536221166378873223227642485003109970539389980636113794441104503356677517435008121871045877080683352722394363794764100120142812313395408751494906892554424087462735089476701117549706791758400152396028242542615473742193397180088190193425456095749304216225157538150089967768890485743296594836786924425155260371269810548328607065629904168220145438914300485780813994315748043163051149488432878590945660210436733272453712832391494451826895057581521390374929932815015440090385977928102343240025450054392258152954210135947615284794201289382797133148643009801312602955698426055316424213325614947729066128984099610532989608731509650970901021724737828046965383258025912124548370749569074320136517520411108894326546913746100705040717296322543650727240440525494855233802379668687970365581686211385175062273633931080408404877043063318491524169060422699376854245775619840932504122859982343126851107506636698015912615124745905953211937378927283497416098575966613840076673861487674933907611569010960076364736648903790875558754912414771691162079780240573601336648431101527304737527592059801508256019053383406415261834483260339732737578297321219013666528236034159148428453511005346075023620072255550562532917819069934031642604837363451863752393229799034147083979378876008805348994053349363979532069606059560042362745526843323474662002009809557518931218263748643185378310481384047072910288856859149562129155000723716776392629063681211899755853099992861484279456720351383808486451940335742963107136418481421798600349007817290240394088988038835446648950248801355804636297258813890254538722420620902986211269236135148424471163693257481789194711003300233059855148817282609470459082551869863118663646200144828556444525936370878977623794645083382754599168021479172167370206147593223421108537250960979922523038223473159672801256859623158350288449208934049642662231236807184614781609119121483459047054440885245837151689950456464441472083198095554295013107613121483907030110314765151204190067803101244990201023515418508940186208176980461786140028632018011069301835946779552180423946565555341930304219494302822814182482904852020860940079299001102306296883418424464104502038501509990032297360515941246055726978140492869419452684263230606732686121932141630677766977784748841793981585682909268983135894282638651934701804326735572275214498733658178049877810949225663982082791361805895528075481890068684229804255838006222912557336497452817059085690287153073738591058896474771043913961828787932965774369572398848209049659573774050956519739451540970791049185324817566747654268116069510699883156187602852659719671442752870337957497866453906944542411231040620101763011926530307103357582623967131848884508025723857089641808719926380979859251799440915397810791980018567116921099040126156829682249902733132785677645742885603770455753936406288697199838956773555158201273957106694277319762550926518277089435139685934639832749667415849818075546997330253106593698909094099074551383866281291431378231438149767267240688836550607254349027946684216136118941397499545698396909757772805632088481451277707416097407442378373801119004194946329907389793974708818319772403229996442160352618574358627087514500352140138181888550069301347135591986155199446612034154242968035139160276461751921306862562188061140599645612620502017772006809895918939821468883903192688035918737126048350923556985236077382215808038649696700799012356726904131850732473527066187676213082176919503077845550777330056096481552117877799833193791090818189850130891895567451406794731659003160576920228154781210117915929785469863122376430281130762872613209520344535513189521692759905717634196213538980374656951672862530529498250014097538543819764474101622952811736586514878704483812608591666645465720389917186852764975403992909946580062552998857894195112334454899558968326583190111574739419200534254575556011866453376757222711205043965744624721151335167143840056413827044307806459432876666469334570824569774648094239107740018959612604305909555084403701269576841965443539293914313123066873392747081026099985584397056050290123867222421311032362836981856744478137057067276752618518045458622476150900996067305316608681103192225067708273881342621528343442431100268642479221974575727317899053303118628893809579615601486412755980376220650233406999210360072280130843316541132353163356026143258239441229807208949427121458454811846901551066894143828055041742255840729567306968492651517997320489070182351707548716438255778353959401493809076401538874614023174232027664327513427638296662763429949978105617722684850755951336457659681390581472035014253034744007179560243902382121137161095829227147619781889979356966559478262276125335440635300208803719507878224910145525889867971655447289752840330966470885559182470719357294929154558288970645456153591210765587590740345754020236268498022847724969405889750721516265471605843558444646555715729570204734364333234984709687464588719741635578656785147027313718091205594117567438093375040592993783304961492203922048022161835678630724181933583998914554339711633206624405557770468274039469128955878222236341851884246518722474707838140979466060053227804630930304819799380193932446019557969707692692670495852616539311121003662396098166668619767998073555643838265779281918701101536885904339738058571912463919037157794326286263285419249175972144833339707616424426330797306649503587242047374653371105126625494194609674613242521154642633365212650278746818393722598160325543592416245125143212738341225141785976517931906729344722468364272449019039854500080953463621169896735363752197613494103690799019792563398613819553929450437989165466491060010554710888925382779458053307857370032681234327983388680574798305014130398520271899390343981286025240100059400427881580244282758093618212398287235575547382616636075137553008171831691144429925067319620382679368659588137758618442453022976164790361082426198144834323661434605805783749959473903629501535610892085972446636361139996571181207037130911626807203627554866288191023473248455777838834876684678677450586295461710523528616270792053735705893854347165288596144707897526469113495923472196473498102191759224843326665347106673680046480215375828213201428464389329657936041823712450267221153823454299562451272687592194148716354132364287901890283771030943189870784775933380490941068027836211150471461429405170835169522421111750838870491521966115437887572001111022302860085366855382329486878262076153669810115442112807145779986640889985207724593926702305968197420358555986113729737933669393528879301437493505612361368634538431583620932436367179133301551364858109951400643412801555298355212739947173855141143096069959179330776889400295177985301174782439218047497522123731713823592748113790102556948331949059698304690161100871882997528208075208617658984126498440223061279632517634353891818724243376201524281739785189327316329742396186922998366121077326822139178225697881066272527013788514879345814159250992918463805002928239991663755206690573776446216294738904357829521727160181211115873896443081103237012218191538680853498417294145062786271063370048322542811477955779215744685236883541458990659267551048432936287354313424073575393047216576896489284811482977369892638413365290037616005474713193443140418181974159400652551831020251266005738522632557626995780952962201626293624736227892691771615504435400795935570105264123151005456295566721785017811523872708680432397639980370293986348945344093212630053237474691769857522791705501028399350867852033110548705820879100731876340021171606191789850997538494985976829974410016345386902647724177500498423065449576594473673776213369736911071696343196638927883054831143281505040202117427687326537110697965083144107731846497077110194821279224642012308603401041422612557340815943791715793536603202905670276366080363262772202724161220319272585736570195631923203122456787301065738346656496258581362293031330555490842485921185857657303263350143979644108255194135098446702979617020501128089254420256359671210190878519373193314668467045811315427437936407035545925601145185205213995643159508416484836976232799736492251638797441562697539726971890424080146470827280461794230733945952519391849159776667872208171204604306351769881008058082067478028470718474391954925527955956227151590068137056467757915192196034743820751605656497484826278416394226036898798624025038566801522837014091960740313384170387583870794501692442519441882067348719435722013074889869449018264896543307194661140352791835152348616398731092585408555965555628167383473401832003132299308312716269539236860718269735852187433880689461049656415578141035704485135179187335262566063086188000222326152056228461037302817889607613092710881900947984767910886226358122109441207884132126633734322994241931111719336084038984725483057100358723888797343721865191081764689661077868448022888678573877554005704912276630106710267862445118453733931398067561468518323758942363726775334424691516771457561796583748474253962748724687902003141796187188113893596829004987682602081388033669850578456400912073816207786191066024789155426810153273821760956228467033165624620531912726009736395092677692061289519005315689211092594431468485679828602993856688986890884829801906069452296180885278657082951790310951592149898208430393044894973694860484290585315011342954041923800991371397741841362789678769890394925517370768556721708154843382806045966692304471524527411307216317550898758784508547352883121832323570902031723217895785824798480080605793261302975629608176290661280114235212791569885061713666330771493304204344467387251950855465816088762285360712844316458577302301610654350713680979055073627648032291413079744011851021456195576998878018845118539178696853670802657498499784288557376238862392624295992939105832119003985105941183802063979129721539543293767117762299542288891004641491868721822084760531845772982180163263536186473579089194677512484917027747503518169433590876511766489471850879420207473804869779406656810746490860968061889950438756708051641539288483752172462861598017356097344308688589671483653402102398591016396633249838378167619638144242522206595615578167942562403356973983447053023036435011072488051631550008485502116432857602705527637976569624743583363148567263657947909617407175017878232089281346277779049419321371055301708055967598230399112927097775721933940471772454549737030313931769102736003081099514358685888084019485111188868958234098728549963000352355285439678066650204666633606635498219396147968965114583064436443434387202203668835854109266200644105058629359514858647019956153428644413448742426438217019961904081401660348636723131025564310566483402789880384944090021502061409591235425104977267173249055993610648683655270655540714242919862396038393206624676370738486803016803746584018135598116274743434355499344960364559895526396160152213700623640996532245482249730193099476426893552000203931834127554028201137961503538153472470759465885855730778394189302349689409029435021837768040624735606455907198677180998475650428158426169292978729205650374189776615586087903397290232197625576814582938727851697789833673075066305547452245329044820734642475236020134068910258884119054219527679362528026772235861930783843543465329406200586561749645354285936442141900839527500665230727258282643935777705594509538428979942995128107599464020097354804457628585163364846335532938786369367705732999279932822262411094007424469690112642591345059745543376462771291601737629753090488623192073388981346314171755734477025047080589948141093378607767427443894744571036081309618826349003368407506398014977498477055328372529198639010069220835522489450430193069954576808297586471347259132018469257150950489171275994344368130967596023089039796375349361430464820617319485442330846847045065752187083608268697591926130992385149370660272560931132824187814434295400522273206365156414992817178403719716913342648309530909066540755258064237667183159111247118334849135152361361415217408696743489007173982724499076693277633447730563327826562321668608667956502978248081687138478545965660587278853810936739682803734124648864771111570593871724172600907616348931439968177653060903844875241226378359964631543550823370748807880745329559427079666598582382717429416907353761049812773275298980033922443868812730071673608363325968919065529138922900198225840005982576197883510166705360746262113321497625746973587688909333686969989716249079962749807721481190653456589793573929003723463059541374976678245966350414311501983173069107168612702664212639073063209893148533819888053381425659369141908010127353381127968121201632855239547405986454458116635793653989975864839242422760824449331934683500165292053014987376728484443909967299415847090783562975221711286059653805452136884116677694290815378588054128693447038467433560225791194894312535902835018803978807833708451825348002216938737312803477041993862180541878063191423127908931077492245820970713155449156637111149936948772676100653346748606978691531399183970604535619316258428148642724984811679048369125610612535120433828171649181125602712401500259968620656384979080590096915157020270876574786712506877692566403601864055503338074700865211728169235911165226525864278608892320856155382479560339244944171375400466829255812185863418732959642207772037650934272158483422180431322794601177671692556557485032920951754092218142564214737496205254381582677110172084261944903754092664545455562014398813944059479126843184168882054747748685722399695555085971622968486895944883818333956699124428759979052547210283797576869345511831925689346517683316076070834317398896343367615635726541091384793393435554242927537240850451335852372513704199866165383224865085060071447498412167829767537447111351265802062121883906399653888483124996365370008320988087151769139343341680601227228000329014321555221532043624429605948886782575275746063887705315425754314746585171612012962052027451016407907095754536752738523813016698172587225445947432432048156038824529989066377563821493399303681020833991301131789246342348032852146893120184923817684460561285258693010095243761001529710890444577144254448814021868654636489096290893376117317779588457740510836912235853581428570834375707349643855271931977382881240575807021988627180457326091461305302801725949453059823451727605731720188670916534903520920569660169881760863406759442930691494522826398608013322705640253012875351420800362090677938553392584774445920634950517522540074471682436459314906730787590832988888570975514420549301172560891862030082615637015082464847280611968235751907216431222830371163750396119182397131965974955306613595869018179862581017236491091550114542207652547529553407170233415215816820006629418427712814152332560230674872076872206157342367873310601946014068428891234364496417137851775326258857984472155595279480509382807927905434969067337537350056555362762089180356805036521539649780135964244025536028068017339461432293315697833538281984288718508922326618736558564476844484808722242255810822043758910238545163029272807483298408677186210507014637728652706985551134055608870083430592027067171461625917241180448513477530698594345783490997235341088782442543381938217659205547722992448818698719089845546495691354057998109172858358835117143526092572035062109117253493871691251984894842305340740974002043690627484128241772066814966869196583730386729723776754413749186809851814175461118235164166794175225813808919497408292027607469697303590109614403518817779908499605463892800264941492751455981697002384902364079490826410370358654472233342998560344320218780698250004243156874870872175552272286649721504033538885294515500753315985320836899805928115331167275548913140840366608741885235835462394234288542255304534502400338930625487412078436303398061793936942498874505310854198337923485466050109496600651593939632657259679775146723171418267417633805061892078992382360493775876491222482653320506082083037979903290887257664547579656419784012381238230862217793246909434436340165742478839865484601734582659552689410755009158387827598798498537964454916317769651684667974328354681543448172745929542971204110689131996275706560013259607805872187040209885633703618836861997550474529458051934566481325585478277146373631478074865885187373516894468387389507863018009823653343896341133332108763214166064100514824052280632567390393871076576830397174564257525093106898823583956752800161981833045322575384873197772466341929950391048667852267994819987535018445550492901285014877843087838214798111616299172132979445228380662058545938986059236613235067717449217516659727138922920038840658986066785516654971663707151590970607296430138593043034127378046075269684976975503814777476461667510763071975688697709051207555456984183306313360171535022318052586239495881004314717271148623321486784820226540813954315367715582761037821775577323479181011108262906151501577728036004001744532281746132596312579090599142180675473458822030571568354539471380100827663804190783949557776046592122095971796088460341878830654618485645026400476522253642737494038064217769330250707824574387738615286032313081441780124617105616468919591011094308832043139626552847018134391354321788072670624929307429644593702028536157435767573142252996336674307475333278774881138966014210563959000609399747840466845860358488437116918929133718661539321311690055977722738144946225648743511786225328071302017593542783086992335183465829798452492550495761945780147825325628756266661309607777812033893799920578657940378070543829153028878844674912940230424096461962768109512934138301076729714885982338677172044790965361044135929427414713424482404181677362073563548152116064878942246185724871788257938292980131632918863171803233759520989180361469907054331510604522968375173036542033061975339068569523375267591777203930498915240485683434396390490962951776561858087770666725736895286868238517757733435546876936867207819941585269213316132871555533825593211518459603843351224477385764728930403168120034723994372793829548760312166948125018804135730677763272173457959475940373322122773567767176881086881410563353505753457765808706597596964635413281350256264241263126461789770958356222700685015887736375486783074099668647617717576966936313567542344321872040083583405728750870700243902282893519646868462853309791994451350733315745413412440018595938338038367008792419440444428839788556856568987339226251124291490979078038690536460517892162018970382104588610090597648789608388748792560119784357869390469605655276817453024584948140449981093838496467612066372626225528431182471527520891171783972804538492721173850274553757391483749663148923680355048301812622780698065156635054418347021476555227070243199332825387952798666784824532777514988645219578220359948503344973580094596183203503002645437068996905949463795701491900589795480986049715942820955468723447725938677209431108979110296399924370821133557019639606669852614196400138570099737565438635149529932219113799463648807252908374682577512060261000064654425165740938755335387554551080789168755188220834316182951426717629379493507278559334776481317527009390465822227050702212751128580958934456929628985737858389126264292954075259987145933520217816143154451396070304391802222305901314255302951920274760529342001546083350334621127873720386953934590038171145851154049351990116238022366653863404666673967557832776537344597992278869689573262186474541029528083903833538294847425860565153941012895934536405184572621129326050320291118910568392403671421041419163531034797316137101156415171647855022431896344840749409774978505238760490410731626068066169816198499877794590074372861921448702863030331560281063881852245269019845929086768967424400583987635700248100451266046945249759201139342014212848595198402851143769444885828812458245309847354332968717794772813471211163040941671785708362199589226192433140348364066039288894346643544262629040461039763876480769555767470365859671695380996496191916280974469041233357771306246436818270268575585965224938987144412767149828742937551748069162369667769117989585765532735391227609464523384347273371565893496295491244984051055524208292673845912224463169630406013035484527857245954921552748032365478723096553645901856172151494769639684664364682106794855089365742615812700248455005519975428977409649066211113132943601495202512231202996401455683633545010723871340657748420814594109846061776881614623067277205929562354900606043015425014169591024192287366309400799586297307802205047053729574706042581906022342198725504896347800740372979469465005016510643406824074750241839754913191523459076036171174947575051309275902288475344139728278819302532692041357822866946843795076092851723200182716845799778379441440311318745635205440058820392403894124014780300195139012971279260011341783086745902238238850516004027054988974608123643736296916842948261179805700666123463025407241636137366116783528515710165691945396831615082774494381533703872128797787985985130931716964591921500723084215060443904052511604146687918989047758453682647522314996048962439857475021054188373440325877954549906393312715819460823394989011242281071167025330823789992992268264838276577302570036326981775148757998009108803352792728659359270170660998698937822192296460340199594892746156871319301985005274131625420706493622561418507941766055804357836207267227802710237774872953011947662343391507545614591687666175970662653986799347427287478771728870253880027882867412195214089939685015254280873950986045838760715801232204299975531056377370687923545355405527372824737050732504910303933166956257177424675354463728187225346730635947574748530667011394424437947595910284190696641200307932781188410528947569024438434988169980924951590021937048819225569558811042792970718908819509202231682873302453624624697031959854571686617334908152613068295108185144581548993976138392574516765745059680184275498531792108008066734596474541478942019958397904005143016613902910421268611559585832312744581192102709787430193548326027312193834674796929871962924532743661573385996800755075109800482569914191488960456056284950648401723935267173941841497478465008909305704395783921092574428406332178791747503786709914160916893652498676354861353988348766655071536554469651413010858590966360917525782583633645105540318147395430179444801015069434962146843533558848695225602098063068980986958846443619317944306185958606091963377921991496889969444545453740881218851607275225541848860753169139379127303205496861874280021909605982724401972311887324945159677004035100357912005725869294484163298989348996021267240283061415828402025702716377240681275036230740450129106616258615445825533364577975496233589095656401042842350358901060758552202671412992664042826630432762816885839933566077588790334290023022156516366573557693716187108490764838204294781519713424737262419505878398565775128427387298291831078438501739876693521548914967496358493905912169429507838398077521181430343421738459594983940153170835784167949371087581715430131755442978293576532151977137189329536161110559396123256277177151806070795465148991927227439120669786945865113739260938413936463804445392921117391781586454188638084953373146539461437662811957682063424591170409040749176754816849608055872505212624697736929327482344598142027093321396341244265902084873149403007030603235298823495548960780838379061497467942057542091297846707903219160898877257014236805650248301449882729711331020547993196876243987981721636288000272875019499645524891783160814756885330720579058392948426088163746509012256776266716997277157208279300193577961407414883965419376255864579953865422539431581910728895477497316532315401430422181615046594290791979838543130757524922994380821551204199294281531071556858204267754342887485392958021426993400843424691171843193001154052650954185188567938808824271939024433642596150196460023830095323232288372764409293341485841606923873722134375442281874368355676606112855055379191551058223274126091986622466160017786422131105342207028685162690815168238642840582050880394202192994751674375575619847340370649187512493791014560319108796422409764689185840271107890616249785954554044205749798414044635992123778654147128268804088061744335290309431267002668420258945422552112245715539853127000638240437684978159615651119380108022571961586418392553513735503872987237897247481686009579362561782980043549239989881107437085723981812343772940055653894070835438179002301533862728245380160381898681509186091007961843030151791221571518570668218032615574061274442716278934074617678433562896224709107241693319959475701550251052054708906603943049487212919274222172550826646991425423632159632669556901242051445896922674189751156672962609387984437354648917276950474718075270061586066189551707084061484654056539481537467438637817166345506497752927590711557044571134530217015562074746539389499686365356908140976000617308392726769077773802827334843628147035426801607799712018717850876770359519675415023062042910119459954619355842280066590702773040133919185008046825859024922745380861156981445981520918242238891130467204375668820676104321435412188067997865403664159222834453529222442541647559773657153746063640511991847810373363903534024564860769415902813668835407656115434520279910941419832811373417928659025812171536153098948456009502783641155526733059327205109106713444440737802396700696796342325395732613977373573498171797789333818378325355077699946384482548539768858216692759718746719177169560098300375516989311870809141806057611057148953812453336676178822705973828603554294205490094031341585620743579939355406110036051864310944871904999821968839977878074755025524982914043230181642419127000374405291788395412728677062618843058322084267414596948707787035611847056584422728995525418138981908778897507940095840524059323406710788910405756890720391500609566044718040707969887255701240475879949215546196309289752028012490920030391465206051737678298488008025645324407067033005110432207014404599601789187110352148309472319232079849663314767751306891490862726562379461884048930681815224526472150362266067089321531035376009647164543649568329494950819809361340611740529978309604341219580382221890524736220212011801053605680884900739890113050455134245536606371585766712521175808024494718860884093025237544933364604387175683677498526826466758785306881475352830623377521977568985005371156046377149659490264317192529025717038583209998023736223706538607619245900773290577847825895174700532034757943015428028399310908969272788864316355241873245775301108411333272832237514830147288505967708188586757638366723820297243730177884215744581785919040134870596397531033388788941607597034677222964803930610134076649579337007264466688553287630509078526335978344274974189744606961855673677612247532998397219359614068788360894780631700439814175894144721847777752001158607073884408273469775316873855598293562303326039460567838759700683207360573370061179860905643502972095049585825193180807624533782776241004754390529043405363725725493474844698168595328387245903293231959956039922711184073420872451082636176884578018292681243244978558309526256992790025420641712878432677113355683901975574100036363701632366319926524406467309607341901846070663560142716227007866492919857612900602354826811733149188318699648219893588366756051333990960866898458752956397537272531466718433523291679716036117074406646310651050001335274538697872369623495434725515647215690801694926264898148192686036396860855760460476396891667198463194280594104967758045256009824375137309689443986064499002161405344065679399876601375495151786827490060604447304755391626976665456602857670908073106204784822139041304915533523202506542044489674136083428854693269314018044823232754615687924406119970096990207735258262866041478754454928200714514910771274623344709578115876482042927028858037259964902895355387820217711557757208520894505623550647544345081877825551483414942783443989784712141541433603792552547763129325986915404362969555408927852164687452259462255533532044432551152841385557342661024545586785538868946009610568047396129037409864982242502006455277734149730980573174830271410042971826967701852990177588708316953677939194021281200798117393684885058638786145257468685853200822189384867814886379619768320425433372943237694241054250520496270432778567688231716865770002741216166089627681239289366247291529885749764391213618741471656275989054924366016269014931929866208868794399127837259058464622402738014208976158337320058492121058852159803647903070593698526893124407231705430761843866106527332614075066617550759436011233388657171919517531856803998064455970002549012327053581454866626976673689585902459949205113327043998025781980838612908085293982607430384181096403154247346929113517299138114303466706291685062980267705793289763216328054282119043528957146023585267778800152624433201739306669919242065472431188024114751515060045537132536110289425276607838494141549736332276325263317859267605457697267853844548350076667903387743940287655082526234359159816225143985569528519941991975508803784453587598805599620539744672859198235854033126512828639892266269948557453916432982046451472300146027734244506696318073682306230411991706225731398575513462635099484398210784431709415800821426069704781219563538738932112311432451460144145394331073287536764788072631975157927986250544688643165641237340981939056115923081339466598608879232061130416008263371275839630263229791354236068433507430162581948266560669961591802691752484391153276041199663379972862573603029133147757622596197897623121624821562875095327590591480739722717681604354772820057171970774592002264899748280649432227874603799155716643736671492850432927743909353168397713294478761794777662901884773152560756426020296504874348734049958299726650785396444860057735581955856347349038873370320120361863883556602377881485029680207424153171002876914560131082011079534863289205270432783512436299796309688000403121699173429080431750466082580589979245301328343332876998212583156487139433215625511346675021473768821062642420155299687209794731846437996101166317686916195504057578394156426091784448639891436040944282181143274731133752644693466654731837133412707774055751177448925018404689822031649967275731298308159173654959912182795935800581954686833046010426655939605114272060997343727398142787352508189249814005519308711461696076274437930413769524485227910020525935102321227044888975130173364564754130018805984873430571789609283301611640266254772690838929781808638540122469177431993149252041786015543516594954073688994294713388467488253569068150847004128852548881046040512818691676196572424285063640547315447562845270461843862121068245668137710514328835265754213457751672785406795807763397650870111480384531227972610282295165512340173957494085072863017842541825445942877138232404067538774051107997504109471323255672428260982367676430007176342816680415431969912217307909257600816590175320983149136253485582632042371576423915119436973284117839017299931522407471045271263731393585703173541651633725109083615007798315410032054584747580974476015674064670958026151177303695389314138301998155783825474129484442851424167588530337018193708046421429669605925851453773822982618942555599678952582009483229666778353564704659627994080048490577658737731847393974337177290711562379874118066288291474515494214510075892610670059714628727190697740939318701198630529653908923492713403487031024450368448259101369032226657156518651993112189203286395952123036000753557179472868592630088542911542206883354540790366433113304199799872074439027368035774196058963699534557927740804145423263202977723587400620415260893920550049439152845709112243500527385248196747545700926876112980759080825058809423757757964463245956027585217000577222308311337090324836937550242030852948542826607620487203032027012400267958800569257050791858788628340508053314969956531167418482348296411132309423876744612549007239069985122973899933683522072627980373397477963686673482603573817946231790053790264233425497598324850677466127154186475194270565288828281733367055224134097572516288122781255105544622081837322654807563542525238234458394474454394016228261336717713489005929210525263378542159407425010865201772749460970474857517300147183154473395326901930940488101586293416560978427064071305098509241017576138459189213804039675482929654014831322676276925013549132472237230698996997102810366030851544283283420883523048133116750558974863507575389427712289497575512250067728282580581009330444168137420777454532715996491588892583113019318785465994384811262722948931965199403167319875539581930200140315226412427228480756639601321407975087224919506737051427502563364569142830970172842414844192215476147764232042353754569308452826913952952630786898466704894255635051166592461458617803325616297543871451100948045999946996733880158258211089736879604937029441860129930790023179630709460336556899065671862188718701803627185447824355196124751340772452786383502072940119411437426453620714298618985952634888630440990757460876560057602987728950923082685018128040917710281679269775502001097147434363270641250250721711684679738783981524217679126871062929584732722993195010335335261195641496164358356647627773223346540747701543358632323322474152923077398826733618085566712447481497777132496455002529981631412592875233936576340791838148854049904580569573824354240931440445801763955753749281574180321784909363792854962882267285370302912558942525821111039838333886328762475909771718661861235593581653358647153187495685449110088165548489325954969684645032708855331266072613304949225810057345788783860035594561806257710204779200972202177672925115965499133973888555342599686101973405987698718708517426729258266612593726098069376461333444982555231966630142024647628205869779247330389138812366829124885713369699533361166181868171132557484488785933803926290094995012148651085842083735128116441412754374387096580771621950600057621713853772544100618366844323758108157688822848445198981427406594255333199574945065339401583022961680313809140032494878961995833942954709843759732844008592343200431663058442059553488598111016712296538778508400991745747153170123368327818231927630170572354066666496491716685575811686901112531769911728364641444576823309379068653174925337251446295935964441486337652887928805723683298271130424889382568536263590503509758608582180240707619431026168459980589967790133166445761908437516974991000458459972519236511062451153472111169118428135065246060893779782779260338700710529490322061916925945712772800770676089653452551009684460743799852989523249967699149949111664909335149110506973582285849653250454001586209520309742993855725135075613301396040409235305140447171887597515409190705450459298222250520771987762659247842617342878993692539195655257600535555164263158156494830515731487758889762942242741940519938442806960211712721424554956715212308861075402250667815171888827416351680885434137907094537888659674726225985736666670518925745980825403680454438942276151364610073709244889706440628080665337722235285687738477255111391634837900773835195022467808009334867281805448493544164477010438077476469685160350075923016569275677469548595041036841590741692935903439034246944516245445867004797791555949670967297594672479376927334930871508022029420622531534499296690511371736322025363741457725792681021259221258900738571837709075119853387144631608382103952205876811287526662070261251478739424804511066805233279836026760025579687480703745746303759360619729737118900764839832424749716756071963251798551423286263351196494359157457503893503911917752304044501451970559927149671147839570577627666264323441158799483017301871069945660840914066787266835441921004129763761477168569098795378378425938356654905783921556529791408511641014542007466275805822870240926247793366101025580617784243919525168967623384320882792889032380464257727402895803034744500131016317288128788694590720842006598325802380463969328194290003435950481967095039859427635936860168946874097807819866298890529280112013354668659305930008758071124397090051265218937585017640527811599853531577929624105856903725328844601383523302560374366361149151251913402517184131320820416093988025726841234606487553090403141962854541585603217474183945000493671305014617228451951682268115522520016712871628012165654905301429332219263008915399169031040313553562834637408516383385620505966193738424544406083949929713003092680488729687009731257714425028732582292510330957100688952431074522538473546535214249803041592456850248621246772825959983161862698483978786602276474947691456058162108588617423425819396955110413536389540445635032595126301628652776791239245030070555207207617614500545439259143974243397905384512188831598782225218996750942421227231918248297292108412836170781414486479674144701826575037844055567008702220890392860322161074470630783578987450870793544894036951945235344785397649148973267906672136488514786597993283350971023838998982768450529187788425433303985023066245622048793578777270797906246166196019425786781547241465849455266265973622231268304159523046896525554305616205887844478962452982510301569713728430905509757011111364340147089535707906124518880565041845996619292464627778398081874573520033198350096855076176053716509799699221027360289424917276452856797090273690391399629659806192553084780602691367772180104394871903320830393336998378965803959717308665236945055811498840623575013781135194670310812506825937860766704317486781974479902968290338449802463661447423023894590759191478589208890528780163604296147119370768879231666943102898261189372716927396497256749349883907044237997631226953524335896920395282279283099434956636124742312050051206349727636820231948461941488024668919663448123561758701213971803899339055562784257982054665896433128378433690659158614984795084347224146950055953248410295437380465329870494935232980717108589352047724350559175102943438639883815627654290211989282854670646416613746959859684337597092681465561945578761212852108191868259834497873948654308622329213030531391040258857443696386780156907744138983073197124115226757805268200066023031652524197416337811430104687998247119776068593206111280504084486710757729449634781086012907908482650072197215037222033613019113978063206890637085163289858865644849957538258360625795632417880088470057879412857051771822187609972429357916404490038514913398467122225809628758673756891276150852647373798597842360659295899375710514243045778003684290825905370122318793659091489640646922215139737885043667635309420258804025486453252098130190650131070504803955407023430808607653394308389623920426865074715587001791196220631138085140798619691290339318477953995397802847154331824110561847765122707248174945364136107558824977881670632384847866351572932198541066345425182594568215852231586077821382072216199444859576701374167780630096896735900366207939407800830423095604024072363753697810813652014666348627620726672673837066295702393463265863182227097657025168553307291689666826865129572695157082855414263177103305069668340608127549922971162873002213168031025168359329257332620830546241432882233028330336336037216027856077606959656387312648353373560473164507463636312649875770251983731556258683066398176854306954908844198321608175858429476137351276989101034087577758644399840337011310266146027188331390560820500404562967057692818584340966277133001897251992573171223635792800985063053626404749216134268754632664071641139975989510854127441608754643180570069201668072618256364019201078205384881001825377270048817326059748903355674483907522371608598996148130960157661262800603762692516869417805875150997904840123978091412802947538625030519453249711789979383278042566117702367051256035506776550171135181898926477714316564008836202669381483345398987563068498391980838881771410237877912042956206375491719440096153386133792297159434960825055389522748959779323684864588398952442632851077167260690372604012106221119638908718473304115013690355773324360950302062856853060788018825443017630457931960662678448625409006157739200485072108341127313543800144198642344346703966267859287891748161618985069477504181472090590840352242143411972964007254054968353724500320002918619964733352614569191075524516796400609909350200811824315804037716435945147436215723724742447706297751554762109929050807418460532093249655018036520024899942210559662729647567181145588873216744583094891194497907116879042843790693760942799196047741441169397880307408098668395489600110538513084948773824979145484210713597742433966852395369718730651247639330922647845113854587674339345673200933956309419943459642409163044115904167117904274319920557082383419161592726338749258930689275816049866670193832277810512764261720301395628812345405017462248753979156230635379577622271918720284584336513464391456576188398066226082584822304571399202009299583523170212093417747337763780880233474865783005859665721596649017791376549819630853777609157665603565648976553329481525842519183893688498453487986415699211833276066549269381256416897929918751944785820546474491906637117098073634325144484982693576048880495724792097661385026139367962018941314405636921261133869831571584493055942909533645783836598962803414426132687349998201724854098348158569430613076709730146516919832919411933801211425091891732147503727251521353370960983060384554791419635351318751992623561111731671213179259496702319454242343224775467980691730828930738338139887341204151349022196388469162209725648830781539008188438026393838170698836471164808462508251554888943064273592965041944024879419137517085718276495146481892840287504932525388113172448416479565728298401479037887402936152719437628874592167300596696137024732481973652125671688707404390066610857777647876024037893056798864598597912900095558918931088085325271273920671448960881926703020700335109101585595903782491926289269316993651168060533856864463902958307619233870210035002477402729411445479372840055193375493527000897405681945617741844437352382668969930920862487378418570646550378636853503283764815527262198162199200037830670422261184589963918729856112768369967667579819913509266721085079946848606442517062743185092917815163638455341932967104707183519533838083696155964024165074697638189872746919816071994803679634476729601702260626264818915046280685518578231155535820755754833956869219790331590841599103396616821622176192595375739335429096447536316166444541513977317045186962797665319717476861795703291486690920924217543244709634630053249257720348291013111891387385057480667251323134807651988697113407806072128330249825862646036942483706861358908817025513947992495475356698046089704039996336334331220979142494013365218504158794081776102136879381444515838315879642042233446564270626612525379535481604585945423900042439300295243480919938643845596895716313172397946738982533255881142135994537194367298363715999607432168753486573572046501254045156110565520467163730507055961804296995936692767301084096583623211221564258485148454249392367680004649544714743269508573320112405799253243974082741628508335223124023430050192174099082527718370849628596082166005284230100284364533394452097736935485205585056918877892720437241181341063248950907346270775282349526532725130677976859720721287765537317669900983362837756309504250706507829631534598848084830384785559766045869848760680417811480860314809413148828496357950614491936393876082572386188043546997269942809345069504223944300116285586381815277825897955761710993287159340386367908758258860639436500414703890083887668215494736601095152521113151767579821676470211201848019725833773277955370569708424605069946916165208292994052162903732433421031403976887836204267496931388917816275365490136245847727170692822985204608776788876293424270391202202278677928512025253758001282213020733410972238437495966198009092832232300164704023306963037092089778939204964042675980311449566583102767380963054563057086082876116328213662563212995268105038122827765700983063236122201348643844357193445264665544207323305955843005516348557156051475861486819081399775809851247273446564812120157608507317648978167111143408469484811375735118075170829660076806008005992935888795122981196422944341495340835828683097436377681779817349171518557384567091543380226137842625497603985091924014658661476119732919933075573564725911776055367254711679477145115546773570151388917692835186689372270447814783569587180825405738197707447018687992034085602825419402082124925879261593459992314451499539118974455609383596156871131520354114633516649521529443967427001636197682370278212622733134289004386413475619662281679019187054256731937769184518713659182268564939401272684331153777348705320329267223088069263896825439886676308780292949203931944391691173727820633899652399976575976548032035209703911195166966670581854083901735587216005730270126943057171007551510149854431508897919483976727092706334787667373612065048671284156567046526747118504791031576979986510966239611609126144398522028602141610668576341167850461057047672637057201799706524480395191709776748729665742288148188962753555878983754857353144831392539432901806100373281890848501721447106709891083091526466295491733574377351610126566012023247730852198674973529934938793190830907920710925636234158309656794824761122720579027710089721394214498789902672935101842179135283723792933783499308138440405637738279470017186674263855031709270180841029669138557106672629963724969686889124617290624755937833196319672722013762157795676081745520923163938902084726055490163185678010177951083331763609277995421725902759362417770350219866333096599905881546320551182236741329308603417038548480764633710857601776640160048472431430115623834772628115311284516394312238573706061620863278292628764790984713904626802958795856679815309808393308784544907103903246374927605028004602653348311416390495458459847670050566920749575241664507874986020364012114227063146699047842675873181956432410605665474036783601595831589738886702080432468991165647216143964957937308119086054384694900348005532177953266128096767548097381995480768092408909503034774798938501124690614843289062441792497918442075131793702423689685688804460581988915050390897020121802672946661385725440220855587245956087686793922304852360479068596799054630433375834232593108490768602636598625464497207352141774371485593728153155724311351236803720375897711835927997235843259361562524402148482548303693246357834177908213882417257047953897421111522906609478820530611212815557575609199386976860643001793556567160570510451477539119511386283890987312160822492710225125136972265057571184794256106697501514487391366100615725217006709011114484214118867646127932232256845012947758151339503479103595952370403181952079315906182833191940604440766926058808828488110958201021079324519106264608958403576101939096302589935598455283818836284828483776977095677236006613415944935653059701646394132751518758392500739941628766851207021415241599260761339741196917553645358099396615559297619373642502365921992093950261830001926373944935462580120178468627861040412096549879134231118410263532460650720626096906070211308528116879051703682288799805598427259224012975036043313948641782180872553600292316536753793273238825123611808956236827744840476610967419852718682431451323709076546785368862869667392143068750633307339837238316836567586197993539131823724697578349769018615188641407488552807016466193063480922284411250755486979500677774525778646006137432208102526593741799512871175893320039402057518075754511500112389693402832125188564009418329336330253365668703542668174106627119048514392146170323985601761104348672174428609193504286379690428056250520491919272003034513635854683237769780378710393886002155765898045966199524266893188109682036162274110755298121845984188924186828906189853044637263821145912643006925009181272092365450015621058054827090511083264248983391376034033344326503935600150961973293495602533118294295226961942674912317624278877290324016940811610740208229453035644177823419088249385325364191533586450904193432804208507609403256853558014595262193364013742442347876156404213239589045337170717656010649944579520189990935206049262229055427719554705269085378356095736540990686266240670250976767270629667067632062318343357868384595125772549910013047477290820380950277503552129445088506012525604992628375070830902910690806500750481085209820412154975766922105386569007717797428647361100187111214466890392288013853689751607873108318096616494676925095363852062755707730081186696656370437130220606159891457952897901137984325873795712863043749776938255877586931638432893684512612544690335678551328123887797012538386375122414418222744164131417084686528948751088643352183952198318204381907565242969961833070364922109393624292670326432449707257219037218773025691714357373897285218216474137230532502942979401341328016273038826736103086318847334087023720154307681681339430247827357287676521045761849793937896135919416037231799346057990768930230169871182150978337953673555200055052386970366430568753993833351696826208006033091652567271674923216456158598207181547062922959915381728335458807630490103365211203499039682968751330144132783772101116796769216369528043285326813393431273460316263173276710387071551919871084032951198437399233234580554680202049313267344747667423530216460057331717597349115436103449092447002230623671909334047335954991528172771645344697662867854274578979217236200873519961379008192862262674413818025542051244331980451641012397329592773409041464076359623117827475182784820070605949014903327540259967865162192063556756088043090297764143590036542778603417683334621455803911330158487404408724497918530727056481958619576990971344306898277987897217347715624441797031739687237659808114785636923412455135501953496150946226822193930719912204239668232169019605379958314175478340450265388947389101931321042299452265829287239057803098520722723964448511740807538381239761827794758233329373900883893533792647170605829151391717447516581453734234846414439340287917143352224306950099076962207979464874205553936198352145565626897397654251438812486014143642676991069087767848220097615120869197035942249802294745601250471315311622032172989287599080670411833071690604958485756060061519198427421837589892093584869492383393361274092295152477030836623437742188482107109656776471719459268942531455115497975758717038044034043169395363067292095395133123032146503390062453006001501507610298367586086670460218455031361169456024803050889040747752686385989150667043529945998967433784544187771083646850995703087111190621511367821670308828838601011387187170692835158299306140978372717427010425365931998887823324278924219917709215144961924871868628933577683753913001794412137484796378647579027325144341974907978271485349659262354631961121955316828677924562562925508609716172737982771728562405223854186554956298578440881527923562758132282435915570651685149053399436148368811970439962632244381016809518784198095055792986993939071757498007990871215096892891059202121269032478062298794573473098402517873738805785245607252177865813444623088883854625415418933477273761444601617526249190547507211051817716876054209817167957333315172896563446278438604367282215828663945302564341089181495008528362036959527365949646793781130134952882606369641511838230427040078953402471370123099135420844642324140530953991384851766598504330807347702539289313694843853571206805539922247053606807897782697370936700306059951625853425965580373180914200704018584457649314783113889393063424913584169867614052386693965926099509910520884094376825060393039503037143758457117488436253624952511919327538323645648218115380293528831990763956163616113463761209766427579892623559920558086935361921258878035779627004326602718763659916482493974049591935333461823532722036847237962528404550528739491663989768212874829491832142831341126534645617213482562474284514564500088776430905522730906835934314731540189455149539221845298812375693683724801310255338353148966442127748858860111686969107126086465299353696122088374379387806761760341938762981255596999334417122780622117146640596632377709889974455167159111857306119819227347202365044460830789883806739446989806362505547874275645232467247240549240081846738856103051174077451500677118228270189585336107148450704731628922205408968914969759231238438575493756421707282248723172783043990114144257670267223667552279014607577440027158254420363299278186339394169313190103682265534902457114470814575684019162815107185906353471482446628500957171977041550543201707777994114171713862264354212552070957569407895255149771628886603492532933143630116079208668979009506216617521023059874548226236423777357862728347524176936167574332404247430956043997382498393304516041996337032351029362898252602075680073546538540136154392246139861621089452211841548786478047165502468918767482179100981983868827446190159459316737395091784813676548061337637555756297787028948054930064846064606823111724212914056163583630810224158837155067119408579332369531410332685948153978812121647623886228098730612428823712515431399610976467594497096572174395437991649131049649205927058802251404370718910683892293510549261617524731918688047484028726696214243139361113036380684898772678782645607529673612715223257478003312528077916496230303051833842399448650212693697520979866778594569519064631373646839743019098969333748312460907187777342237226856196650336659067809321038658130062280750300792776473892818071174434673908154576056538763804139212574405102342279091133260080583858421288338636972551527709021772834650649820662465965759969635564511122443032531815183071531632221581315507136360126465407594033591401800184055487470416480025442051744414715685032446818859080798308817636356683541481741110758247903636007118153355892601339340282423873773053599357577603105531234927318190502311343893902583012289554418790400960986328375034885919414237994841530766489500035535289028630118959276218384109143158625775715412296016457930839317025331689192886632190499170665227552084189964580668356502201685115025398913937131233511561338647243144959511789875918157297278479229830688702124134001693591144342348749369548714768500249208322465751268494544288329072554569647633578135192650357655932445977066969776072229492455422781279358928394446882767327160122043902299272658711441105730080609937566999564845344045466879717449558034558132858106472319754646124756877802769949117683199773188066940717718972856536460139129364803866145284949410485252647022126926014961766888489369485893773527939739842648975230367455164980425462499748063436734994900378298872875493525744125202457140999173999667807254967308159213300683488114987506047482861308184126424749977768812443141544529914122829696661395880791596028695719293479607053625875044013596308250904066079064277496684265436223137271536508758307765165024533487000913732012035844931198671549190553975130574722848598282231799413671313188264911131580467701634818439093728743506464968317576633327817037460918176461631613489706425733975587005592671208847023116772702955660446369370646388663950543850463819900562446159342387898059508387904387944318346573337569988589289627229437408656757467992847121440827625152243883517531582165759176218929951580725181410311447969588158963497789158438034281419036958424081170207156395688977301048139706921090587626864878828491372634974280007342887598144241873217857735858922950902106380837930381963955667013784937751336048096805638901893220495902030956114965597498112583832240931357216593592790007888092856883508285391542252603345011981686434958199817997627907496560961917272988717904727741589510657203172397038705157972532248776139740938586258691665304765270415339001592344736970849543510369254868547088510862854433443511106212947722242643872537381215024391850351744894230216692649277763215301819555871756287132439510343305764378696514501098618602478154534648401282260166118583627875155493371261296119798561499996560424937365048585520006908003818294235001555268989365204400930979201307657421129421119627304751410648796867505206862475621260927737153751396293331234775288424954569777526412368120911458563303657008813189941977417835695122398618989275153426552985689562690527057709820092509345629745514485034329118922155533230489049489784108988552704383094203329973791442278009816944997006643998804759056350818333832644228248208465360553600996768551082319683489536723103418968792656102688464191927487714476415296659048247635184251113838884003592080641866487887343933578795229210927684575511156330526293141396648845611557447241442961221732307165181053950346383084060491023739228980392160747899930595139447182082811455677882269156356029228653397878262713382137372523571366734172201464330405169742441552186592570484019215947569503490004761974812427122886344443886277777009909439605859721146577457431121492503601994931258088601471653993985836781817138793974997430423426066347897223600578146937185117505253135487602158459201260109128949882931302642365013928763149131701261908181332602491603594434814010441260838823378758651390269370750663520139023591323676691747423677535174179085138408034740639915562392954881160400553854346419665097365880968025215592411412742137357383781745931232128610188587374835503471520665151716966678575472515745839611947628614678831318464922850385587073537279993952500268982334269184071985358092098016183076776779848880745662365995679902870518425886016370274405255335568338500540075311122186854199935597590043757747528556091205444687397968953039791338084001479838938193192855049044638233462446281107069579275397216116214518787438761095629293027112796183204549366339988749655485497490442972157845053849451459875783923974277189315017810698554712930577271562250885483529884279542861566502988598589511607199930434412617003452619508465646377517689377310753537679647644440563299137436787292257320198865442509031148448007520744723370203178888855716476238422480723308418748015590808248422403262238588861110511686466430080030206594637258172573328162618203993532277254194588803789687506486878912189138410063929616676251910478463409498204071422851526078748334864520287311992996250855057497068454821678714201692168039234915654845687693941827000900733708613799873960941167224692088660178603487691404790801390543130547282556755797017804565447243478158921993736753117976131663988081605732829758210500455180407478041944945875171345764064030365680142459779284798005782628791688944168398043879192128812477679979050056875715014605578649643561040841155127075162271840188577224862786734058454811147222336007240774998111955345163103928516001476516721647272511452233953888846924813278730535034372598313877022882907312503285515107070385484316187999068034954982073110897848133498638053844061757916602585138174486804468281005966797846169281539858903853394711333901799801918337083534468421297404640906666416160042119794611822682510813385882341538906753041609900640506729601185986992622209704271202492283660712619539865139458764678176888115841767624927459665812471905563392347420730160135262342635104427158120498030145095063761691689771886799481187787937717620235346556369476989591179525000670051084521605963619701741310788224589972745930297374251611157207822714214905250722562161316755057660935218556784802980337247092863768039664446312253936430841449530802497743114149060063507684402523941324694683718666935595388371213364389285455172836842706712928563194555112416649315652524785972564925226108944743982671238880978095307202982149044176488436147711772133420077792730679369146876829530054747870637667028555914103619126265960796432500028569801332048021212372099458268664866545283408904682075541966981185283384678728997876266458827812531957982167912497103488141525193448210360436890947720103765133042083525649583627655765184391925100543627897939847652834372480811812774191548670899437435242033816944034334671804289143265711640061459858774263412279242147577451098141878196772624917620388568913777480778229913469945147542371457870707827934512420237771628765619731319517383636822622528320693911250586105837417491491590808751652537264099911657014785273426484311265867213873148156518252744932003862802418734037834462933978856341542699875130123740620624106689470449467245891743666444387935257456749909335557816170569726715359052714338806082443635660798586266220246807015892107141290495846937452076720076991680706675706273631739234138769904186923999427860372485446236167688337325191358137671548830613728609342937324570639672706036232068473216076681614026547300025983440280995534211151988830283030873862147680388599084470714797360263488547919921280699775478370729653709856774837510005849376605811424972754104247702379963425892585976372803299500953279169207375064392524635474725356017483375232602671503951047781408268566877282451513142167193944272947459401881849665627567573844513873964978344819034739966891814336519105992730969722094865349298439535097144564202591513343881380973741616896167822855287508155523913816944466732860321770412490481225515706779926164797980129193232588793471256393772941719123403779561076864230715582692315635280285072096573463664881902481266951040282760312872895154595188074440575385981733331680282379228331411300491173353443097312032076834301083730416732435417711194204044089095007695917796667899023749726793782957978851442638020561856341668754515163667231878296172697594910692701154441083057556730091695329424574300277586417523033017914538099583767925883605977185900508020279649837401347391262621647484955946223418047670612754268014846142646261967319609306359093715739648208057837024089887875366562713479811430462680043122388134491895712829532238941753814377590027096474076925026664558884323475511924029210270280964741679040650505995678649897249401528428627361678909824342487212266534283296979559283628993705625192648375460630275421331739706686529136569452892777338783080474745331141159137777929456255277115196667939249997142952314043864078386766205801848749944824338506718867668928963198895048228896530847982625696162594486867956291796518330589045807192687417747821871335817083887033176316841498364416619999041385986756962266332675494730514672124471859296071597962928464558236270213461189898773850321954983805415380055678033711937559121713598993627009981405252484280560438498653595574285180272948204410610712329579697216644425638874005178498840831800025161134576642515581973151777851001153414415825940603106512208505498801488338429453028759829111746571574902048517533322495222952579245873773455802264647433316259076210210518555664067880415031074632398234974859531997225928463635241349682431685028304230857884920655003674912498914786238335208777182132856143521993247953677121711425146185902967869701633086351831534599076423411482484987134108613844796160690194307382828574105269803279405609302183870957793825129616059339813758240491591976755202825804284515819131769938476661115062189806108476349300238534231024689861490365322265932269827338369415350625797192648910451915781991096226688866394025541969151406830316276659613543613419259967223266665160490591155911475513144327334777970437035138610464855628218399575109985351043322792143686934628589919829435760938060975294457928299870789918527519191312110921226146722258136198455116663500727081861809673003249606183652022204963518728360217128585588367894725990275252474424584047895982347821327198943109842263392098537964672735701514783838435505354776921928033089277878125837700421183357991390100670806318420534557461317141412908466540189989321279821101888365821967116198781431451517877242217053395793718586514615406439513689807663523341271543039045978818961946362308432363924979348191524561381572274313662243896107390015616827766305705969875382030445814430926790912118997983074581979059163232192187415974829179598903211388159720313061589778660703363539359691567344536007224900003417611236651476116922095379268740758566688991897768809708199936524372899099479597207223328324483774912697035373469432637403989986130719585576810352633319536814791630039399435851280823694348903411265956206356486301459329485988324546394485546412994982010051115497049347648408253264919703204840909167935154469175064588336171035275740420008934271160854444336545804728181044742764425157934061206920379880447841347216631766305876902489950276779136520642702099960086692440593136604583863144761337630749968539677941361823344839191606201948141614815993213615147881848348382843653253175290975468547044480520385495600716318356327558548742294230137028434008390421468115732864525744167492671325030469706764148838397243993995326808396207283538886221745587925621550183136937226774593867060681306486355159524037494422736827490174540910579861897875704902580325533620948397768079343790328108281845897711706089825699477342696617841858772114925991737712045211190380937143264912215282975348704859635914843547089702583531241347301278420606224326648045135531333897457454282599393861149242945993607480283395446819924017893963972453230536316673373729390782050753643496969133892433017978145617123624617555563944619573778207950114488340073074504044852091857041107001640076701406216578264764133126524695041890169163177256638863726795734534943954432965324923285703708759369464209186106353432320754866734412645740382825155750736794733505908447962828128601239322446895646289679410578902629562544432054606450933105452529009107618570422745530464438598132479517782046641288014801269551495991205349640092020577385449431193105779935570377451526694062356255457400635203479391546249991406081729901547954566629778171777940721187460611869449346378963762020722959844038080658588337725222259188924331724726121733349554365953566177099190411175272424679619559867630782109113529586427062856083247888105781032335910647823185288342304036956828479547059582474017467936606413125501825855049565201417520432942270988941685962139889113654490847722072251856160203097531968558400700221986923086659716296461835455487301587979679062065837445849134713493312685779172704913053179348454938953330037364333114349545980711212472642300883679293127587586403028640414139874592606211185465628367599440049387841110895646142550098258130276525193353752290078052767878892358555460913735164451803302803074344251170737629850430115737435915386845801962059175896453180485514316804211844034087581876147940207781736594198590770995748162752515736629784720007781032690542640307154546383624233775351036296331288010018512561390456990120798902366236093211060763126448381559422416790454306844113811160301845419175379997058677875545108217923885384960787925002436430303679211565504541767350994866812515879676527789950333678300530152020871331084915328384662305778917733046441613012039796458660588237335934010462405712591149948128369731452955848248187809251421561985810447031320428874369158328178400904020311338493316381647287590948200303361597208885155213203165073943015314064981496755308003256253178955660140158477000735776470795766387615643013981319332720110771410121567074587122093372942063728364364194300027325385591702463828493136382990700865529621187814738815879116725457515171240350769030498616691215584935343534726073089607023048040340109715096192319713530300649536185275138837553944622965010672301864571214251142287902196925780069890757710419545792680615113690581270545871510332593483413622726422078920581207138952321706207441302318939397998031183290732097462949001368582091491903538050750430276638978111341974269256575835499099781747465675520606504118278810387245753430320775857987097755763148569966846878900641097075608787273627537434172181555924167496720508455365482636975632996172735061160740197017945814612878752339590564332498928850519024433727047617802519583292802738478846302419844433689726082402488664929891193036200464692906838528069518243926252416583293759236790743072530553090587942266617234861079191520509658005334229711975922292519142130035130979406619444262457141393405661354741823624894128056586065362655278361246523405067827274242513223120119405303956990450396379329633610422803394577639643960702445186580759406138336658250525994406255791089772170884239011464660076714831882601017188404858693644565462919733011265228678978060834105278477405586285815273189971091992670484714596983072788059221648172807273579426460562229333170038163348461351835131602764819335974551738453211704644100088092589460972174648500505791845610248127928433954656886208185289923421633635135218523472853483800150647567342172616493916051528923663612537386015743284467290562787041091763089080578270619960051661683904016365662430717218587150992048394700850593554041501988137783949220961705760884776788368883134099243887158279173209914999453130872358324875876941676982585077718851404364948102228785461827874479068693423489691012075003905653868545783617412301203619621356082783733888134749891993634266025035230423442431990262673515766386241524141809149467019191937829293752364699241533486997611971705150016227570239975116991398712880423625167043534275682400696248920343415644748452564710826072535318112533668690554899741813603378315758105963618302619076471064098906616002062120878810833318359663500495281042040887556693857447510204815923383553810114972297360531453891706076537830580242722920623523552737374671947148337146169012556260393960930864998976189657253564742425626605350390918268763037791644245728161126866414534818797181207099331999327848247055904007163915655436218931606392725358413015929145939179429113460373161486806239550677413485110516770691548739103995025472501809927932345234282564098840809570321536313307007747019382847011199944743622731920778593841949533139085045349282010181119211145957647292576559377653117700640751308156938368144197215729026836628006749121155905465997442323408801531520592411095938332775066556591094970899040400614664951823570376354931939816151977095988973651186802320422468338929615177136922645031680473937547459814789006483538268708829651222556315345957322162821266726018117419626131951228078952806758475907216713974397250422819339026303983086941949722613614771003487739579224268677616898524983134994423645034268347512301018160716508966430266254369748434653171567703304615197770642643095228558484417178984241997781478179228536778236242376919994864156882343783164365796944472110860468730395583803867141453014645146700796969226361066904449789907361765057557029757856022207801782296093567094405243529484057031151470560062871793279080124763001781172436195357385790904227718761455506647267486358835681401632245579253458381001495941340570837851170629641093443814243928657099683361981010653418669499496929952524275509739262821757164199401747828612183314142118177445771165576096777509251074005095457240851953716173632732268608932049346118250363142234044579779636149397413793592511922895852684482069244000854803622563638135395083586260551157199243874931760038530284491344672216307656372588972329252610406541244454251093637237794184698468043846222322647380529310163447004651266769685669190949666330404908674370014049052527710941005294871069536736756159616723940029822664411776947701017148196118059342110985220837218178174695569082542800542382597055282563243005015953736607734984117394529970480211953083117656136379907485625421915864371353873823196244861331428252826399652986421265464850964760403687467761830375087393248775541674258133372198861426315832602702172975215679702098513153135935431392215191179469498793909513571804524346201270345856254052306394072114512746073318177782103881392817001823902360661974219335636394357294785925421218389709688607786772926689206861736673142202284374354843407283885593211692788380927265164165257625187804485104364852270582908909210729899902046891135280467491870784938208171776543736088576226511107334897839487690872717235687717315106141952098038818921094651270393720683369725354808077545459538876562102342907512517422337980419491202776317512384287633683947588277281814180691222909569933590780770620390054525213447902410698910972908134174763060181794843304335885083134747672823839980677033756709045102662311542375852205611456771867558132742414764769009757557772523164725712738375952228148395114822866093455590482059214850262044887155345774297997132106759169928521082647546334275420394041025732502084497126204035829059349787421631839768999372648720499507632653246883644659694899541278034573448706118998236168737062326079896734499824273280009839264872225175755825169434160800429893358420985651905897647307224654193987357961954759609475105749502064534545277972039568503789056892877950285071757220072036404655297424441439545064904464468225950503597046694441569856829624878634629171530878816589359434977630697236656244689388684964475824499814899273751343189396957466072715312000953865012182841926101609185553678684618929005068436106444059647544066425592142653348780214183592209099842605896989123757110878961144543489133985552747196170566712023323930728522362705386548169138165570608988859167354428175029679304417043375510547263615523343721957891873050754511822674261042810474984804839122399271633051427783595329026143272320852601503760523211155026745498796339074078446030321266204314750607069817009706598394605958974927443488451612330116851030438968173973559481675105602509255081265252604561031423164637079174070130330771820188940823702768254713992279162261290086719629061397100193941863314035109323938907575463651067751115667723686649721452623888474412099854448653070950078367683550543053180553828266042703806888379084923762964922510456588405908802363366104543478768907365776310993605636793343025741706449606633875014372685601711723448725262624575916413171373551879959073615267574666996958396185005945255699305783606159609508579322217048030884872088008273572503348385595294935639275952600653354385717126468806152487860089315953413131873179412812105611267188569992761936987704589974072283756790556653868759432335663626054790252037757970490260887364830535848507820486924861458228555457175483593289673651631604278099035843992014642843345165632072374653151421155511481044087652421902325479677401122674307294215959716306874926104094414449976879791210051329267680580312811824292797178977029676361150552831867922063510292953272202134306640053909048690044010607276095207588181089184608632174655782315383647863742463382779992693627318639167278254970609842413913251737611098766790607207665929475018045675603545214011331817928743413753569161915320778664755352839040186282158861471161099022026489114008974040211027010221421526008552064604741257892816772924954779293603429393996638931444946734827480279208508020463607185737042276106684181380305059808029628975144610931261257675546308257809181393077136811055451008957012196262663020640441186647884564442064011446855011127001461011249326233037989883230981598982781185203068507711158486267213331164331576727469104493507444102095157161552648561539526750716239110923373989939686742992063882806121637982494326504516952170115884005141142355426616953984740784200392892955572863566489032575147331441511339428786294410348859502684692068190059140994065660869028738319727879040906300921548433612927718164514907284127855905888620675987267261447866984391834820817716457079310870900166295935055520151431838857274382804841191269400702098600722892848835281101174185324412675330315584634068081282014184236686820961181522509886690541432875073027046301945467646808008818397829714050284668924735832649347803788057665597407547927338379379589443905450861005665710276878023335057905074976253701793801310560471158857174041449021257562678823219554702693542150181123240953541563318710422436780083606251581908309097762984795061666142071986544654791603824380533187370058372299291246133430884873236149780891608454595814394589680089335151500728538395722690939747274899465665788467711648537845154130103227958559334115992922102531709334985158074424214191948729569945350815952118740186390502101510973407399031859904629886664572909080022020514069831997674575583440855256761704931284784344773120930236712710377407123670140981895205800231298972628277032097163505488248639955184741199045427453533944693084044272839648554840290595866095479555178561821702701721303457251898507181867847849320586845277926340803502208821500894630311322757238337240722339425706542554432750283100561219589096484060904739577632388874128761126808032223639462822234746225313467658178244076250745610486215719752215520896780860322823376920660314018958641548271697366722749436975672958176900974840733963263096166997961718996684299175523099908505089871416971467133067325873946991553960557092316565396230034285661304620225226924327413115976468438525218722629185601888926072264296252624043988583039531042864963394435080305629810475968554887840260821463635634179348183098915531404072885319638106694051189604243092079870788236379382973876178846938199665098800443316339812109759320349931190008191597246860236406662858214174569281850247548450722526581457863354438785647074378993856991374529289088373701231840553334683428415762749042836356249244247653960335325607278966864170709482360866789900535043664844221020463103673180809211407577930157061988455994866050366448051941318122838917923247308284308465395568185578528971545336783040866204434308513005892146871416736094282149069275011158055837605208067057875372023153889677096034128724974864616718710462713585360971144909090387402626146153610936993497198784867602326534112828093963963260087493221332931604474193125460268157081860885511680287538596359823140883589616224139333911005487064761681104426527822269110720213976330483856000738634487609976928833526710831194791577763577479317824664743380635366859682121937801318745691668919226111975288725030774543188141090041974442515543641954363903382024204579161636659302402837768824068812885924874439243988213193405084679750169726810384469734912714767520370485791309076927815878424146712015631432424639753777285135420670179268991015207368657287443348587566248987278089690614789834657014147681322513173615508587968293714672567360961472253885120682197915590702240401674622506919434254313784919163094735315772332612590593861652818403317285473061548593718572685764285890286482869845159925971400980422087898064373136486713916347656341130154878083883653905054118312069823281836941211355060907803212954726565248441040854022640557104013054459827698068342022609046343481742310363553087305462047614041563886376260055491026784818043038535779888404556812142559173832953465999401239532012591493744434387106607286468763358561529303458811789516172067007401174864126439565651627312465881473349648319097563974372930377955238220778076346220162671696133957434390490873494984393228548668854147716394740554746220794846309890922079054407032539541584820265343110791108168668234853031249967204455582453608776038743327657222937340116460223180056952364907157383941433715338432463468432863637911905512814353849061934887901881445396135993097952181913918384999518265268962480864336900145369337250635107739966401007378875285487791925735223978349601324393538587265277204371122039826939430221486816463487276591707778558456496795910365749554074855005716590659459879950121449175800756081402751270881851688632168030681377059563499664306572349805343759946556140276707829686226690233029015165959277226037681082566130067451849830235356038879349118668229400572350225587367067001388799754605322303546359985395899871565313192012879456701643361513604674496961916486860642175441076175538956127513844251506122462354827372297202010784715500524999755622128161126142279242774157325918900319555566566338938903858295358890924010235482693758909777838010382605975473718909818886641966645253811769129946996774955132944702375110219902042392256829552896924705455955457982819004521807339347690227293316727750257554732899764770579518052484304300820588149108771530630479853441501354672316494212345654570872934793490427077773276632224910166227414052873694908032306415814173361257872343689028696880763507363606500898479603579940262857275826744260597624528970031604408608743707932647942111064101035334549394945558277850738577973748793460224089612314830760675721146161518848414654298663639400412260965505692179559346872047993950736416062139146253452289402533258560607576620438556683656550517374622153953473932394553679448650547734930329409599654944363301897787766414001182489322675248680416018987695219950388977826649451290937320655165098904447108020437443714114205180564355781025110344833227145376483696325614658358421894496494624624263425375302953338733708518501362362606227067412707279210434020290294884358664234987861147825657118934061191961022345074019192448851222111453174864308410355978492481605837842570020629645778215355668358207099427172665892331172807649480825045682505193059887866295886856483494364710417979983485996931871792801302518143089928636776504152758166158772854815157935225050686290590811651432646923618101427628422314334322539016798722097765213467475040401521037462064734993252735706025983658444434490317887341944813439949940214324540753739498231140274404362061497604378826397980219950128189878740042330112880114402225757855482464986511719072301781107235989618608091095856619304985027028386596196512018665517758733585885777383527536741512409343296715539143486337698760267764480211482691534288696627154468246356102226904397887755921001799395998101881627379761286473993834394115415128502245351189467149348383073228014150233809799248182495628528681254777107810803899396054930547223952536193479502667466010437676975006869491306105811954834546253401612592409569892895355684180913795315813420842715951987581657142113479898968198384318076013142287510290702203017522887086599368182199971681685622214083541315966369599931604473751274011940773147611778247189949462020397224824792945004331799314673135400578814453686341295878634835893286845649307016396168171847303588961978835623475510459401523655025535316249935466547089277993612072963642325372932240901034300324909886815259331957530452625802485607875615310090731334070100135906883558105084611492889872267749088811487744561094298918502892912686321843490580080863027504588856195747915952873363350420673749741453870960020997549110834401474245057703909108333727600696184274490288754625762176881826062913331213226425034663186873196057735555482906335088634843327221568458537570498548738415582098407586343125970464717075129567431083872406421328412707397919199341951633705170606673627938406119769581687768180562928766606492496405398836945078636455161161863313253787186261147550460622078246365230975392594859986352287258264120829150499656000169666206830529586022523692192388833411644459466940492400092624450424841695145209841253656980822090120716012548451824600554182976643272223795405729353232943663622637869396024423552544049507549604324452471171507185084485979901798601102629348744206966171808889442559368796462649917542548174342101132202376197434649903205482998359702007684001380627135983724984501286824394549066285341657045753515372658219225917423355973463842553022365491548775904010398205787336981451253056078484198817417797355661387827942356897773275484134972729916723468611106814530612640770212035578358335813571039298188979289078584126170743162909114337549319900031964068524386181482415750925242610196611876312773460212150579426530226371364399740493746014720036689717838248502850766122423829610782349639174331208921396962305578277588635073285142948868289953950348015428559962625515107881726718418170939262112508421671655864685991158826717673136578464430134548360298986575877224518614076061356938566650223298040596228688109471965318153570284023530852046781109382170444075863914915296236894149658605710745832649424261233112258521336643239838733619073254977861445966858694382206653308455795663401228935859681942777060802941642145241139954516292029797680673848055405912035559466042846684104498652292850671100685361739230462599267684911290423892468710403378230757008925458083857509517365638896585433620185316732902727441953091039835139512135850650360551835331594801255626852457694657365257829048987552837481815111116148314498659134037990685932200678367139253452195420438608796933887116668325935710424330601977587291603178333996955306884852675549512921378101146169506541352948570186030740674998730221097943648575045984229750775648870664271958309747188953072405668879141832546267172490832705824508282193742157247182741775701549685903496646851978955290773311394375174332841991934510599233811813828292039924133625241447828073695574640988422745384691982034728148878209211969278167515875166827658671905303443132641233929369160378235062451530957787288698347633544978845254109886492782659053772536400623737848747517588835565243075454477841001038861422415820199087561295150462860624886156640933560427487533879080163277758663511342669507887118481781044677902142162014606305722742786725693257376580496506076590201360953221062882615926324322294776335542686260347599313178176816360719732555674187068665996306036005636504137743799558946271557168571830965571807028620457537956506488963384010828003913270234522170299779229774705522955138620382412224374738694927738884565916787995674596718036061639008318743551891270879796451029992231305307948220024866079935047758784254360645457521814549202159573816264519959725950969123305362257903680325362852257173726371311741120333508416371582784211287771856776399597676802650682954458932891497012561889222896680663272592529405863537111877022843735496119602000904938812719038518937250467945306906880748292270676346232194478085390499030796326966874679562194772699702445428125072932055336825057782305563075356747624418047006088115733384439327575127438786259895675612306713410212769663843939418404073553521838518396414102534201158284360827708205586486464872061635451821196859823313575209030934118978612140054757279056156528262460156348400475667676169819725241142004166362068570342753885138239465871295153166394492636508181985475424085481374092303161212376419781867789210271224657820955452039570161924728425494278479639690443394122072281324986782471217877872389307972752940500574805854576312950013335870043737991879007104845840548953238880663752529913928597735685865893005597231016679810137939921020725920983825950726290000815440867147518916530999068135594856195869314895559043008403619053278118202803228587249417587005705299154793727948931687394536112513852736841772332059138741117440732102995561839564434072453553446102587595323785337404127724094921256458353928132644082436951016885358275908589375909002178474360329171104667916188698792119053323474523811300547114951012048184941365801322889178714336508684250095437848727772339404947021877810917706345848503096949402416904740761567169907228588441208583875367328072576089977208679883050960470795688060436094841511486188854327404986356239507189751796217522826549305489452404893087382584559057824782085353945183896717456253010085722559168508844590099335624260792580594676618058323149193082239599039651545358818610676566966006164808380764798654578801372091363317021949332521161658991128892820512918242258560712419415992048405560153453181290537452141431108623568781180575961467633115494394955730249672324370502750674487386563085384701051166893981557205154028523412669581836382467687618103017049980151505214627410235630291164674965723952587012564409749600167091270781373226790790779850707509963681085841257106612999965311764496935669158691598294178987393280440133934421092369850996984713508405727912513821873071850230637335130419693665403686144049521009959777143328426658259002385558206178765299182111319900325165260467027756128189832577197317842905574529675497288235590431804098684871761171876065566226583792062178491942977865384939301608539658683331705329394995841651533343640180667240646750652875282766300634458901722352813819144042743592308764272027565206767745862480974667462685913445248431217285284382807411520038032526654636220047240464824300900448032413488268367570268943540314196868308250980407640478677148393290978762974037060799613061049083361138268800322408262435056326711212268616367171804158357153431796820624215761281214313923382429269902452829824911023574264247727733315425554340908679858002768687908662251727276212367174280344363822559382412938280543815930340288192842705183469230116047744810866973520719683025634408127071688891180962435254964611228614936939020794572578040602153262587261292014742898559385072835815817128302865244484272295959898183608793600957094966837964979794341262066381754810904542210547287517443841214795910121364173539772915104651233983425141089807719770727827943594154892991179400407988333076569189200120456068372408160073238762723958746944442300581213872197225559009086631097570686992100033325994636290664135948983467685204931571555239146866807824842561056241327643339880832884363184711709412057279143467795379941635604877350101060499195730986883571953721220650155563478733682643178921941625210419079187226116465124335349125046307460901561119791297283054477368218297911820646567658099015400878136135633478220548603811832771184027391083045427810227722986929794370737306239911461967547570517618355360792488303791698340473723862877885577145490448678072124942981944945295467230002935666208736306220079274492719583363363024838271211698414820686682663984123276111698297939758045756768679270844801791239748874765009153016686968833907857404371536322716515779401558452123742148223425133050407504736969771294726323953890815081893436885294605996060774636365879630508330133237224000748661473352876933831658722482504252757818010921808221799080593575899358317736648332200446406106835360780982225687632233310339035368110636643801344290755349191125401200312391340331638622787508655181390142656339301759653488039197321916430503902738448204957297780023751240043915131720238813490097344714272669490341096116805830982942479643769172114081786851445982896186412204949367563961061690502412117871907860299720961011037792645129304764498125858301225414515927479511689591298625517077876541659409689582788782522021049186756924575981085064726974920921583066236152805195687669828105787806835964539437693449030640660886914307560367199277524046100132970307367429317160780186350782417216551777024055977294242051638916347201793774182281074139019525957037696138996764827771149352843831045706093333210082881507417003417923233443896299185271309269609934052616328782034572223341528353876472825132792371765633111469779425400831240351318006138711109911584651807468669818737902189319302742895488025992351091602035683831928484058310486390342415520357835356275791268106598994214843843314612794914621096312000720417794722502560441088871221917513736332862024480069052610441057515639295547255498149173144765348632261274611422661387389586214095737546341972111649124011790169617394892929146837321253184387186098162295019991667666557963369388686141807113113182492482801310880657442157529557888518649890663660296008327257510768218601141148219548410788281511909733788992663559172786755340110148986933001100530787494913924927123297385511903284852456461363062861072200610320889726960182883302007509376780625925416461322860660416330313776580381140440923339160466291591862058623919615366715643425524186506814928395965286046266263720508835411598929202894458466961095606864521788306216977647193769924286207839782641457096355598028866593154920057168876561049981143820030736311401548651070903639194374040232001582775283357055746650811634917510354834642325352884353334927735975664284404981698329798005787911370712539748812633989627050868260320966670264165482970819807915141022666616418536008646575511322907936419683865702738344879469013245464843143911067324694171193328497421546991015593271032183998705805268868401118369305537316579135614150521421290523386199664135763034587484806223566045922008820763976284290862949819819543220524828788630598376896393875615466864109115147593189476959415094416956046573621019360452581654256778200939139039963723477701724976848131120114475403963324154472755831536967880472506442297899400884348957856535456826561726044648190425636227027506547390082593170835498659131681131765624800241099539128200527663960566470751380593385484686729688035652173077581989206617034282615017433397608250442223343908344705469094387817701245400792872954048664661604504452861216839959797757185956936146832015798369870801356830762017749868891296995247740325717566260105448199179781700677309442130240854987403218776043377461935027970343204625907148902924059529654648977154765298263569804927849026032536433006367693891208603854032268817286069527840304941328093325420988352916465345832770539328647486545364039157465545555902444909640760343211026867921037797114087078489214289692435594234415232098441008759938689332443750873284173302837131632820439331202646583020978188458381997728061884048526905170309517662483376983952706015428807717708111654335724165613074635165634204269592772593094407687292759794094444889074580857530461425169640258317745834182960504705863115806512620990494945233109977073749026261769977963826796515976070730916487269989049815635541598792567992629512437314776820681068160667355575720318599353862657910298613001479280266316789367940389759809167111208729303727718154865900384342573629626801909415449591816420505714739438954833974201327608647820534128237862979494288871661580051146949180620780577958905284158372451871397865763062603690700000641100207721799626707367097156429991666647375704818509625870985277886781372663218415572469334236783910618238275002263359208686770485668748539163591359648777849227954221959691717325786512192282544752741054250444664430340281366547349756829749291883160877241586221281035659434834504458194667324547115763169806684819906235618791147794925630803390514742036167496661670732802165557366912262816061693779239682512265555337386980788115181635822636991752360801627624104197786240217617222948142470767975727867210079069520417021728456497105260146155352686145555867366399034410019636676592594870497671841453009338299125382458507108127960728462166511704787241014238673294165592416436364588389332376989832164223967656447555108755408541585126084281211941536849899942258737068093939212346234883763421504284829462434881382402959427235968744736954874059468952352526691767144818089467268841428361340737523906064928629840639805177777385550601753682422134935260078393381051084452999406548918299022210718000694809065661251875246919539462739136278357797304759295130483467605230565190161128279621558123340472789693959495220445594255231612851561317710292391397642834849703987279677273641820942601878967093112865832079936677398767911245263436752392930411965588314899013353401307880419736125001867421899068251673917213385010541498334917654889041545936737511313955154240932695343487755017370493440060690670372824243308924691602280996418110710338047094294614677572723913720524846402989369468543426807301733080320177481886239171479358594570410925956210248553387179007262382719146830109997272963583570175582846542438099148714550865453166800788322965236713516329440816369024906768546339763937801212995776620992658116815191737644684295838949365715279255151491331939285981736027209416218749836119862670023822435440253690671400899304253349946647793980816851981141064730487465122121115420823439181547033453008393948234646241436023426599009645179182232950968989916002102724824480142363568487495888659345832858379097742017787342814613350906582219157666264759518220179230143982139521912173455374630432245294715655458959848377852965867718980884974282043388497510232191574390479092464489527335973603673822227956279391611348560072247714995868188824297099969040408880809452543701739408609466943436662112748664106706412410184291958675231268447468340005330518127740952911060778725216253413324294542243585141929636799937607740167900851597146801973428251187637500314498121963553298892718776227111095206642436056517011571653617423939562764613663106075596834319174339841761068424205031263443776450749737924430768282302550038783826675222985128140048189432321394479860986053538270618869510253834585945178828720177245636916904701276350138178179042711478049493231192728544040109381086982985005170788100571966203460379884493965366763074521888467912726535985802536230649545522904948808758713421817817390742299770673782469267913221230830758790738544340431247964180503922374776244054966793348081869712165352460999816098378745512681677006208055648188529697603006333500558127629346319748797218319563495445624548819172128424337581512387775668351413472167087330325112867435523823682503985637804769908209988563015292475517648288411785188056187532670108796871899581419816152487321429786162714108671042348270400234811328456123104935384240100431153465830200474852551874140549777622437192209034656681722979359543696328229082971707342633894728331014190287069368450124985900415590695129765267620236782867484127697421513494981684587510445083445646321735343595540787254005833427294455198796439000474396535270695562458667006919789425876668000605125296020928756050563900590653880797303545965508236637467771791766240754026024954974472254516156451350872424741409070103277024679191111873117055599219911469655487217160816892843864784146241256511792236188220203953079985236496123626298613397665950101414210016545884045285074174435762347796577221500997710675880116883913833947581694881048443789392673446273185884218907006574893789748984361084510216575984146107827074565676594834521831623547568913552946457977801628496015016528411411417855120515216221953455520891490055257384311318618021178393076418134039719556652235441469775944842634156416473721669299689761180880937114662939005144678706647062335518633678174819464784464209728717141029196414577040367452933896028961085844225213570824093662858776496078822625807291358573685011665876087966288772863205565492568542196212184130400702515352032482557924429246771876485069983143382658314558819490350727953483496115574725971717204183792021366141196041557145553720158693344734581621426315499944805324567259781574085124681001459819945546309348247074374090506966650151521184110874264439228445221342681085124635900442127377719774707434932384803272376629198255908245401701137647698822898687999492510568114691190885167277357323764255450268486800908050726198200741886405442508093726351898017690492759841385961660072175174411526643321226319848439669106593429522888258713016042075893897849447816623984951472862582542188548880991309722857318485677277384213985113713769744111413488929422813180462620457859611674625411549618262583920432016168166182492876999006344168297704954677513113617111496203799945449523610028574601415681496925645516781599720463085201067629744558824686623734310888024067436439370187954949802599702172267141864515973872150805619349358608390854184975441388065821986732130895366296246566435687801447135864950461627893331085444781215661882688361911009018188275775425460326488443822585073369789686120334923135117762349363448629485323944576835806590581760620844117681254619879216569563180800113494682343581465777865759855248663501695557160063275064697449476914085978386979780377663061129494679294152825552179826935250870629660595238872512742862356543627784339416320670239148139031622011490865042297032304712566124774711093531093271439766435814972486202287110316465458509736959438070595636951945011495758361233828820603290357516643264454263244645818409837645877022169773828314757006537096420092394934815512046308696900997237124716877557275469213621528903435976922823475426557187756121970744308690083835530295196139464929508488409525392802028884031197013076450063724270415902747860148984969356663500787945279401424442138359929442083647903179454659531060104800537441881931761628581102664615086253888606898372805248650277536123924623183305228027945317042579885010336733431177244616691662729533612933667365798379385177574905378343845334943509195012492866155511693526316083993148741321401268614684253754428127675674987432863503609499858715550923726685336965134187598671356341343621873870233784311895206435103062358713715545373565007544987319547551125316457640934292891851961836735998756834696904832325632458592932706975433004359821734653489835773406083547431304980013278722728527405884200241127334539545194173267596070238083780466942449645658182319218924516723352195265971598999643951770794757279991230236025197586730619913546806475968495297619030859369242461116460343563915424917582472992545588700651293627145332607208746680568496159267319499493290546123368369710883300047503808943286952817410637109324038857284927669484360345239649255603095989397920409228306638952252249247334789966069702131443338102039878018438683585195662634087610208656059775739599810223869611875382408962383569181740463297637577020584861940775930955437676663472052623833495440410857841675361284908345344538919856961683873311054270984341605506304558158832384004563858351105790658241698039489974803236639585326817471908456059263070484489792865623586682971632586285018080147812032637404453239822464606789096084608935836279929367766905857965045861519820949454355563684998867863680650480292782792328480878352127052286011212722209255499706168205807631550949588042819108947829233515778844903607760121167403644769763252277994940646507347380568299813715766118285402666972586166233551351857721182615089506486917632815428074095721852161828401232740383220670923740844627463142212315637260012718557155626808972314916353513207062006547079175098573606329956797680766197714892530693635362887400220969628870725631696492861435083459981550326494833574881188501566269252857466801702312843327923328094319470573617072069428399083296244933372494326934913923966821371093366338510193816431260430977569739327484699705289535368826361756460483621473660379961051937652461722992816637284336021812417367142274913829687260794003574982827688881298469391494441887193264052362872323003009470727526428133893099118601970404512969021658847133742053834803637371562600247117408271032581215951138689663685974823483742815052528676318726336017960363824651877879095510167398152070584016836680984112215759467439760866330571857066968897106040189172204262177001956162617380362180871180252913078990947545602341982668510229208386153478422559526172381842549377755685483626636878463756200828220847656675066365000086831425740758543682025089608188819853007784114616743302297305447177180942940602293972432991613805938191914162609743957695961650002235357471490572948912839917856294943207728781015479581574454514986051624424654159325419314430352699511209715560486355011318121028904132065217164067636420928790947101056252858491287311833358644324165685199580214761164281886761577536472164037437818448251604846819330787395745895806673683840273667395806253376452378412184126599087847430179558452725003754128930914028984658276890602881747869329501781093846978816506528247435215208604501364622428837066718269195983880333298037497122634300617217094848435908022814363251145492029935382288248062675731333928725630417671914017672752646072968608287515777910762332110194422638020617658331720733623728345053029908102314994177080137526306360744427947264280232650420539630815896799377492243066928641610075201231126386817655390677589636732518961146191639600592276481945730050671698606020978908303973004722071309821674579284368377213953820649123469927100225795105971704749137609849383176209302698446110678672959260432364526335291535583498165838536401062629141303386739405929319539349758243907096955576657884450967102573813662771576772082219610600564942327825651290311999767809327226953083284335597808546715022549474557327118385238645983433880126700559634423537866503780285610488209135571113861369841530361200135674578008257517706611801367503821606499203037599065383619676382926490877609401280844787872622284987993843006586510406306471658414068589821229559818910719966623318502221071612076891987375072174145936005076712092555865339348301861352542909408575950408842967075209666212691478856605102167478569159235880021014342249283136282890940300994262247892475759291270098842466182376173699759216919433013508713324246910194507246470203731112378056238549195073870132655739333302484688099185966212226736525502989091179107478132155525385971789027816188984200308733731653905309079203034507222924654309352373775868100435899628501527845270920050316609973234624530388356203716382285680417578085782188853439390036955177556896149331568950836577986230032163473527049116162637264655575617887143125394263039180264390596755809464035707608155408546110370603036119169682122822352481018979503909866135663677806692191394286201407172658671659497366614437609425090436910400636015308153817871538187534089114202626664156145279568586400756118344913657445251369406790501134303232267455170372642359957254598274455316530784903928760651718317485604497292085467518878561104621855066696058792281834725628471168059754966520336044550502281762463580042250479026519220832921687867352266820295556540698876058160407715580067150631760106863787794365784354890077933230755005447329776907220949290819550366564392476317192342511259005788023114985454701905447711203025059060958499958206999846634703231047151258553936643279187893815660374417211250294564758507571545935587748096387565044202724089949359278418988749373094614287959758312520723485009080567363307626508014736440578248773895436397862682313264843993675750659217946506733428651089727822432829424295200208050958366626304236381823248518649698336802774811157008768647319763660688675617529429863802662791028600900553553259699235337370727845392018978995121279178418954916510517464311313570978818015686714823753364471356270649625551397898354294763716823528403723858881882583284696533065635179097363582140093524089306575604058276498741593256207687697533258660969864154063208715357017611230230934663404973193938371985901917357845752770328464278966507267331450216712676747448735472751604400516029246368515780965858722193901287316211912434467497432508343385080851127931429784682897274428663637461212970313503903439366803894743696854153141849107581821050778331628780927606685069463506662994853165107021222698312962443762567613089560215879397254434195773326654403557624281922624421731932182561467646047527131582724672113621773810648886423701851725661796974289534110572604324039364159530357484960205306003707237135578843270505940099147337514328474132657214561472146913025814796443785135284615409937383179611872596353042510206873565545378736564692430468182650151556093497506788112768433477206202672480370960213309162138501947037002691422423104719358789336629614260582156491525593376963438709925723298587670205479826919987069322160059122975546069720392885845001928967656337237374777252483012553590596538246932700281301647786855283730791472545579754627181252408645290468273055239962310131290570124145756184984901912816103036504071505105013163410151755910018352116878265313570201579210888348711346084773048417636368174150269413541986943621411370660495879180805256966149400309632778662130110790135916962008807327413495791839272699747357684209073250307845976597324575300135001916240685140580365305607321025953061409214086414973854938157159314590750275014992279135430312045633753974909566561112516265206539707499892089819919455102099592085925884776756544096498780477751668077571789066254187355240141948480188273024831143784586915502634392776665557023363891327584786417563509491585534192693120880104812835002750492786698048628307874162936202999347347069102113140928041055559413174318453085895100313851775792232785977154463674918424960168698814615598065199070514528520401870593724534764635740336711922306039293827704948118618092325441040375485594753105104457028440998283517071400044073323739032699754589395816278815998636717634502479241103992268373974666027924311543345420830259105447675172307189172426359681811981710292328074815463072972561813140414796664119357059892747789223505019912921470089093041008707310518313601095669939702491899008080522350843340993186974885327350546071212073061197652219445744150324025111912756818914810168064488843330327191813409705302757076357995746587454702528671106263432191977938236839332911341460363135697273963083680582165488160716678052457339906265149396612226717314519950884629765850738927268396767813631111781654299960476222719572168712856869131313777984969078370960618573569920172084878023746033322822395329847997583022375530740811618646609037425661293161463304771993686239708089811474628235922774422161469764080398994156433255103741532890565298794423773991512908496545339153566759039000565313574566064532885849618315102692494546011409849477748261282164344502327609391996703384801738502368027766652392983724633417522637404757705228708137722012869616691443402462538153515225545178399748935956007345403013089761079336071327989043343875584062330855453228731749271156992961811938423724274792396316122953046244830269533240613516893335736905572559923652586963792614282073067940350172451182210061522267083370584070238178123401268285911683293656909534427055643188285705262136460650850282408222173906563231004533215618225498022209298683874935426128084307078316805299836758674419593345213132990272579302313291436782977857187423392843105338982181830534299399901497084187017601520818591216877007553037662488784120510030655652688918563210802892119362078035100838221988992345444557631335837896207717599989702283595571991822276807975010102240237962762072999695266518687732667238510830315450127459303704605810700408098676595703362178435325517641290052661430769881856328210894788661072005934414705196382644854097704494933120774476510713326593464290612781047494840316478259940649614125654711247728011764170194605598833211127389505336882303247086848256818892417982908219252446439331716709248672885292031641351672375650411471370041190627925822541619826156620116612727822912405879872833131791467315529291330719306601532992473790230392536753816128903563821049817545495036231467472251580410981774610393881522718740695816494255831348895274518371270538232944586476191340452098508825562828886257806126278452768230136152705855618738435418114845752760148216356333835236188521423869556267196059053238055420383779270026816526019223591767077565341787635827101766219289133285545486710858869592692278563922227281952079621178134575738753439281772320694570884202776079328515297703515557688901072414014421081181422237348192470486721545451863243603643068250756007889914221601158829104193165201490425079481912503685571557802840753968318978176369489975931020398911733499757307060845605526515997720569013923962299273406467232917090394900023009857923469212163575931395103083669368078231492456431161717379323808533517214850053661504625323386745960806955113545409636686881863689063826554346851596036185236526010125214462616080219976495090127188936242301255776258949344742836714498078774325888037280688377213342885732001392580177620599119860869551357954532027994240113011717221362961379161897899955259292227063465242507184937655306000477525220249640630965976824223011211622118918279286678773474309686768654651605301637239663203297966168155066123583825470572789721190660130597015203227580544277868794235996260501384769282819788817172976965918420198653582823165218885798433524425123881193593267434635456561731235678859684124624051113590976813012021503873063670378834194779717253211212537757999072095945460317472396762520287348312821362506432339916326271295193156515645357220840287960944331637980454247821315873038142129646788220341104205698492754210550797414589963004417213463936883335437372633758309751207550408868403665683820382982967632864883950048925275942305177701583622229318457639948964375842313893678291824126893648879214274687758159768799363884991683003354335791639185173943391679819407091813532049482170460179161705565305166448146999060076550662853733987501732620718565317654114896300138011919511490561114716767457086106312133886388132569706278005307616833733458530834291816965314392187552625630703143745777192160627429059887062325683763504877088930429491332598045851701402936261614479848612511314396861802446596808728510510521165104909503787614956305328671491301783125509867339175148806089824715058518408213614701034672542059113890594164351527525797059835429220200817092914770644144588657038881904790496068103498648760621624220002086268121253305434270479340320039812007226355566402577316516299643287823203782296549658001432940452858074498612704172653242970782231451062442159740672277420367432558311190521173190551627409498997522592100414109694081009439140996199539848896396099114126691619182456873304058687460398207962382316403060738300073691365381206386505598885528391475897087289604141738642977790592449247707984610689344912778819450242959937644228149842916729396154233476811497892117513915414103012053045687477183329315279237962070389143276396209146685025864757898710686218064714426281283566627754604699687324117775476432523447868697439819692045048755437506254772447063161576215975960442035773790052940931285975648154827287748493793983818971204657258383324466485335860210028427373654039942394966369300570901957480335361297382083871255605685321514760922780092002520583253710636205087800590184124151085951873219190361847636636149958888972643702549609671229578839847782909603870271280083726659910384103686196002276745882298151248254623222327856507150002160775155467883646080596833714684702281717426903001253136491834603341202238040935428311796091129552522989189504435883608169843519917732201149205942612023359081023869142893603631927452623490200730194320901301560422830497710908835036450159307606609078189338206965435619027633461563855779084907326178113971195778425655652255549777725392266875757831910448489928194997996706226983554807970156776779657663345747957653586713191823991501109273557839933182010378687876591165035704084222633138736756701432936037069308649332003905148152657130773651173750732445352142230912252016104797625553009407209591336859967361801870265368896229509291793888901706938611437674611102119061385407916697241642553052363137147056488004185240320465964069957296229832254696348462196867811643408994243555347413687141363857486513714256202503614382922134969693975226213918071702709586014489378296232690121807638328022946459099944385743453837015686584228818177035549650373590740440202027358349075519410940800871394453650781547538939403729748002387502068212787542591996732150474517105466506100341962937511895848212964135458912325539135244773854131930812643968381709373673798720375461756980466845893108514260994650256061023742577506227805699630581682138572894037229132992318120300688602227136546592993107716123184322285480354292768435052319380248927536472236324752186361194282594443817648463666415288557662854806021578652164966300745997160393740690936292831399719740824648202366238378601683628326401520800806777326488757942753369485215438404323250423530548364225791163598576121002570817335739671539864475500228850663708868497452661170737529716834013215217265484890921691535932645623567938237447128826027510832672964606298374726581499112889313841684766301047314841496819595045429750059079920578371174853760678131691544281348104408569743275393279061701859377614993107558154779738953065527954967957096747360678484735954135043952628852233021929487439032494427155769366731826444283263478589324042735569587979811527799459433681980691129498871773675940276714705638221614436030200067759425668812250801387155006168237201971324184622261145287297964032021810046679818962090276612044306233291311239054297279576289693431213521043019015586643568472489390122429474916558994901260695941693990909751715534729373720326657205842629030650407760708817998528702089134160314555121056516019776407644666595694099497076264300633432561615310630761967514656796799135182593686855231775266163044735552284443854803204329777138047015806719784881663458666757994850151468338952793470012915785114438870162528027142508049213317738750139276663666517435166663358763375642166348883227339747545603568027948839599952581050396901984399154721719830109961649523175120829596695318941402447522975617352947317998254396886599306586564399863432469481885063428164973198371695391624355027289476178647808389093698699945617506698485594668833841669517768178521249632992561408395112838407261034492601791737307293231373615207323987327330592583818883280645735661949938196864488469699036004560911118364997156211701747731123839459409907900099961003905869004670572959978192903808012915428222518065545683907623959216155254614369314691212318945514046138601079825790653052372012469005951849952983967355754341369138123766934721188718018991116468432824282219230318242391634459235474907138466335139376419644661370495306128734122731880542993934488958451794540544526728568779927058704801427172365598491261677429759439678132627381072920428476234208023308166052763427296928996514423507929601489391962084828137657817333155004827310385897744424310459779208654283491982362818457555734522895538065117812730837269625770508698453955102757329388492310653710265313702529034110064669090763424687957266182782811888861692342309581933434174669126922990734381265487887762424286191064188309317487695895555099096559181625935464251388737733448609225379418031632250874408367722166081622324618015424265995548176494891933780331200251463821190765885704913502500459549686855832042991437183355395038774474134086098317908086744969674475333033857148619460852236922811905140766625916574926249880700083641063779334057877808226377429495198206857000979497165293186666548767044786549433689899999576002732606557550317001910098874150820125910079215103339788870532737175067151121496356896611464570808205372298293269741126649054915467664142866575538598946681579354103330921759762402179967763727367451677691772315435184285647487881697983854935026402273110651390621594158215217568609626086488861870282573946223576748427348353106614795597090913441423995206254819269186180090343138903130949765876884579115286253957298280813189286534062234633177281049345796758157023783080006358204499101685155992973622003836660366729307339751643443072513559572367885382078199406629296599341358621179031608431599380550373634585309056025835118141019863094591714489658185398564453182326856072945765784220168762620203911988893337185502165237033330923584598469109166728557206298041999465763030085545135591592334935840903041339089438567803861827207153538198346337657266251091607449944123872270012247230062858167639978589853423792934322096456272010535812905052887926179018242010995790029593300367634995717653363714238469390202035173548210796870926426582447849480099594156342246191915611818824639690510236725472676085508874955318018011683157227098265170325201686384105042619030918997970025819474652933631973052575885698081300468048671245300042577216339313923174434520886185865998267881845702140939025544401252866993738168213142906401806432636923875823591698581173114701748154111196257969661818281942824823123229805271365765219034203335537595856678497252631582544665231270480087989957357596397600155698516336731672221332857326367733489568277861187210530946773624653271884015370102801490662382287414118555128466460615177285039100271812197711594137888943294877201750495417881479593754798615617827562375208466052936153854147045410310788914104826612688167584470188749833992889239884808598240331502839874126326760874535643188559428328868546140161807205391805086685159365352768662964114825207914632381463509948472109731456590354389951755674024354326450266589172495246919525819078404381968755543160066168691293859749680325379714317128677008398844514065195414125302066250976336476904221090281567090026094063224447632118305694808780179447115185957388318753209243346373030629655015162796684643510418793498226191030219949985362072402675610264792923805361281292499206303292851246881109724152135646447470982891758531712907264283088464639882321225711864526684004684111462158219974875427786548469106704048784567937390627366529433846687618932454814781713977041262790235722713149025704136534668542145863030247072380760878639203109608462866311247634294535140578421639914211994420569094770901440384025637137331025473929082783164772717451582512803066472259377456581864891436150751732416312479203298861320128796862937108954873894082667028702858102581628599936094929372197386529496699599386637158434842824402901614381709292596323324507543028039464902151408056930272738526592049979789235565847147085622295791513894161974816009505112267482131562732225625653988666060821131624805641457193869731237980246435299422491525373867160487323773530735273394100576188644829320416589527261234960761363906363003163494871608011238764549956609629132521084083321874358179060048973233029849847844949235884257575726789951370960276942199860498830990011417785652062348712435605876811950949970324029697882967123488546345829651556748663557348887509158876693378766140649577891110268540226859253644802011641091816892652685228393221262745328224875250370183649449282443793728331359301348756168465039315272878790977956531691397584141454220777540115726305156289244269144337730038629065517857927090770287542993026310788857546189821820089220689123299980765445264785216393423801255892161446308826736112834919123831907322164952304709305481666315959638894548705263248132178075807797401109458106131363533087576192078743069035551754220891273965921661833094349240103160828258389213485433799348505390704806534531275710076122338985277001538023091944780534624906007529334976523013720874290050565059326525348473610180615284982345202468930427568510310988722887132790551802279763590892895208090706706519428903222455021560129183513550985345126534210653129288106884846989186713786135481751758383204112177927615273689776182808780177813598443675009573551490234693249389473124027357909996477905306148397068431429047704067438125238213059538729376707268434160547270493990446824090840393130443983587919605791218275628915770985220588103430544543000922232907621204378255958799671998165442940512911474789669104123613464832018394770018684898351263423159641049513198572532415889529171201090752181230256485381246858963956987883825388114595723693672920434450644020669808438796248968479616623283717623231490747395101028721564204284394781558593515997404983852268798927647495613597847395433686806121779531304708206474520154343955000453194477976711395972915562355670380709660660465871632811959166756112965514432512276671397521290197259205707596128703581651130081733029122827700156298317072311741740950053338352312900979465898861242418128627107451113480206132153456855940603806814179486760215877117682937453111852419198189491071245837004222305402054304427363109174292555259510888207400502661638361542437550258115911381903038044773641368625981437001301423862233943723847516713102132041342040847277428186325127571313143373296635693975735572212508399943114341335153670711134904910072640421476996001969420322010360605178701271195075110796942188286498429441312336008340506007334133246060818441445378809004533277745264999362524424244604507987499839363731557972975616878323600515022969922072896345929939588828239570653729818488138798510571290169399719292173014047933141963984493898192793600830646984280305442149199586255739133579513276204588734685219119448439538694692054138951654201388690559262255122359182549474704096338952357591851105851810095597211021051470254476876226021000670639732767621807680979190714433955105942001861013331792167564090196212118105598614123394069012678045023884792011322879693507487421419554040450980960870700418721772148680725049833491149574572825585494097310247422426941262046753453531596357980712646440886721379769706758826380858756286727688801307121950015000735645038340392756326837513645242373526390676194882837366573469343762264041234835347873676604336378449846149650862535582209458278696378723664260562638312953202704147790173359884861305755500847590059901963590447990894614830817686777541960624297544265286270955510143542392915691646647090150591162456817759584887178062498298562526597660726481930905930431134907559667855174237104922704904091505102693248579294427617685517449235345354113502827399417270883524557016314176832459105154528441883833442501636989642161275224790270473006585311423726144842904494854279141691059334326088500369691284300411351721000642787252732336473026860570023582577766903319079650339683695822502594279504640223648862168350863745325638134418023746264770146261354230548678369567877171221201368228278366512560930797589469480532819467452983759918951610651228020441692033189093913142017626390360891527262425682887728032104249794532955571174690421645473644170025234823738839500192588184112223870276532685230967377922444264401287572364076197575972767826916996320074242998547418184104152052223355593745487676368148935700606067742257123172045571852818886872998246362769610532332047062174791986543709930091322954680650497659969448365322873005123239944480012760032251195386179739591396815024688897321759465619772183212752254081811687421696454273127051121335817630388322652388346908650907772984445411359627590213635362475269877269801496427479703161331570689343984701547175589417750033166054383927387196695357634355923558785768971497106743847537320043952130096418083189694186214127937824076196337766148112442382329012406176738915573673931525958507334887772330343052198472618477067649920308311415477861915607827101272478155729597924647741967976146176143103513397946192516710481393430150776127644143983000784910251007290243367325968055838679653517800802076931454405259062461639432527984307494273458555915859336323995592883898581237037624909824543832975538937899642483788238953563698673031251113149390537781566774416372677311935124457009961493878793560131694112722248344208969175290459444148194867401652422559749694924031699779383884098701178788308384658898880871470609580332764957457356719707313506602056665081444627230038733505125138317255332529260819722823926009975430286448864340507699235014869883492689454438467274787358216503693902306867752082197131875245684551086393584685294820855510552462049554598405973960968320578005103963213001409954637926790072423982952769777986126210513151866654343698974368876412666417330418035118071091234814891239088951579671100028929788647427526234079624563200861670659636523399847002097832030707914504797606842212399594515311678943371444036607729500212696985430464999899972444186429493287525111082222201194110313506975497287400863816134145758000118718340374519698559229856538926611228915980930249376861016489342013019606316102883701788129712339155517258849853352337341986203589315546700639305456707525812259052132394207794391011318197491935322576021383043090776083394585919257828744305429257044602511104415475709914925005851578534633224249226627884851422161301836985944244418248633651631967234016797112325392446661543068169527000324352523044223338750216311854484908255634196674311910380650135132968428050376265676218622906692757707503670701672832022209350058768041240560837995238707208681208946461170083848184825638061745878148462049481365409406530164544777986875008953424939285991678105874797738069510684952840079135035148625068450685765668835843437923271898663283409107356383715859070608991264213669084920839527347910937958509045792676902037887793707914904691110637600468812225207804432820457548847630982233626764542208768437543162278398434279279796622697006020966433600946873390829456297445013738939628919277044090405187012952882750313988373196240414847491017907243014465658295549575356851639190282220332166081429900131107730812601563028590905982302116949361756573695350980661547196134477315537449244636420549761391819452356802749264397334310079766871554251164209314453582829696026316060662098967954351934687257560583551215139609207590610002173384508739176610608718723098515990849542690947499199741971391707781052098453598694768579525355345006140097432103134390664175967719536093741186777450353485813604311386720266765613472408428878520747716799668377484894630734443381260409349056355261718004101184086656099435478290531467292713936970140944633609041299853714601150887786588000387384697437117586916190703245902004657291861097613047218833678936473456325527051152480187063884628083091238060792929979682056879986936822484783233768536353697665248677648231876111546952024192924472985069670473746023638703694989201716332793159286636838417614543229117829705785420853329955652208139141287478454450333437307168108947110318108648369563907462419745113882022505875632889626100909895354585654445412271869378330324728505432312534577922122643612709185478021016819667740091159230790970710560635047449336165985062070088065139447756606958027530022241375528685281273384806200241078482692397735385564114274150922482883417205852805303356622223862872717429609842437740504034422108477890293353162182530972889151707111408392877701538736199467585592049810515281756509540183677210470600108258525270424453457741827697221557624164577188643676006933693762144846608333966091416208863181856142358855982474130944478198792892948448160594257920052007370148411705036857684671577843744513487180239736050640184614647536270451227722879699581966796179131531620191987760066513298962719934861624547153071627773567175704073933666704170676958361940349003990189583864077051676094527051261111861302280047754014284685678478406482081246324178889730843277051118542322245036231583396292959877526664615469854976878770998654284994585159046675329921367455689511053817491546834504526563542169144799410993155486235485735623883486995815503649271006481605158017337486264299849014522013173400761274036692350278126438379266531884145999842406139714554511886740989262425501625145597558730430525398521175852819189896663830346071644549531055644160239754320023944397522757678602481837729579034498714109643821035775153204746090680990595770325906431431859913372872443684759133018160229663288910845877852857763034452053333265510289815074312170736548849104031206914050149217340143363596813596596166803632629998830942756754851606626886619043247371351940405162708682072184975455984772271530186294287831206969605957354082387352425178425675097450760033901228648791558750044354372133307752276306090968193793702488228088472532934688850537606324119292683630793816580338392390094663217210617518619964819754382993324693280217777495549164590407163303632079903137512786218647147788795571093446815805032030273370755098454323032291369972397933547647964914496322313720679373851895206779644233326367723947828122534134548208357434798377978672073911776810750780339584513206610242621839737643707080450970091450294901148751943778062305110263006259199238674070942741216690914829388255973452998220874938814686860407173727228382565256622951860585769432578898471868981083050160036545518490568798195034540453889879290342003952321174692897338149471533906910963067546617803185701353822181632947721200635793886319710963584573193768478224200589599231869490395185095997260405695272769343442769441066860268666608740579364838319280975929872903827814018716661429461930579374371900834624667521571556171671109720422220567678630397775166543792626199675139389836474571980964901653336408513545951021413449559399448625822581441705294930131089613976373309532676091899699537802253369750573512202085547177142863863605460132892141273357825476392943409983677728869707483212064667396353474287432084695887265107648052136651434381579015932962573724369557873700556879657329903870755931368633252953342537172588923539406529420983119822322371437190065543933965042136982397677238190204085643305180605039872150600278098038327938784963114190350279076116907815375804912732238900964032474629286076013834390275114899868497244584742275436954984770563029110010985794272220592312207822170856634841551646396267166373242959227020772016947665400052174845922299822362262514884897893531660819107408465976431505060170091078725689989877821222920312583624771163141039242980984847737430576736064989505267605130638554398375594228215204683735874774966793707214474458853229510089377235389729916848737259248369091921814562931602162193984891251992298556474854745565895105226418435732350386172336588151437662963738950878660348433474751988203600646192969307578462916493019368419467224346128111605749481769321546032237919889911261133728647291372337254692164326102675172398953433366945052709519724100528269067162602437974248151725788241104842592464185795814925252226101243221923157907625404508882662347905480751932519359733602564219065405433853049002575784696243945842385766080870357260845919269533385221475264882748380954121391144781267809929295964561314526235221535994716867879647246820407723222652398022186854092725122498025073522397684319019962468890029046999688557620100419016051994527623422444576098522749729278555933670225991072922959054686290110235977142398666068446079801090807373781473855698731699839107430779757468801792784949351379371701436065250367058995346876382713864589088925336090606794619807068416481407497363352840812994469732740292995360822337893264072927749704198029218697417665198246540646155989554454778206043809278074014058741806941019860953857340071246618376517562061251290726467286236238115274034813773779161044118623936206373384296410306384735790734223219554490473401957608904833685463494867017453543533671682622940508370783382373242015948811406064530698071323654848188159331854543504223021612532768159346307910890539751678045027033296752483465350056445716796766853826180406838155330842031915581207417830254357856378770768187750805392950597994317255179072492090038033177544201041728095604563008727690578726744262381883296225841081051634108665661768411316879109745803881465304646152420769443982254426278049637053429783757620385877394384725463065380174143042021798610022621088278178553696562831915472562462662997904562927908556724512471780760779326465035837558515090272954310844501188956151761054954718020858918902979614670036391678988330932288967807503520188551256019342154202434455111001876461704510122225598445859786711714237546461336784562579483210882182488239825591068476755831011141885028842994970624502824460037492383573205412589918784969942902238339210218389592392317927548530914936709803278020838585472083271189018824180709674423860721169354325145824715416842548865127187701150241028281108774955181995461130130045178233412885306294127532579176488966954396734938636516579546952781224377232944951942103350220140876088005236354441116465152596199493136510812443563988079735623276666088076468857758802926711635959396604914786269095795954341165970785102421609499598813231150183837037425136894872080972644277019389964367006998688944880737385684629538803748633125304880876851973608803206134966003287033555403742241237698811333853141437735771110951557619741429138706579892041908867071142937342931795695942433734571901082863868809562166914223208438679881629023002083814644959630464582938133408933129866616528810186196088797797970017429118758779362392493346529217651013483379837484565681213583205881405693653928860381788752969444766540340453673362555493406736091741014591353626994347825953637413759423798989320119887930749795394673379005174772742533549320724381980627661035018706693469435611243522450062553131870140823321508850926402959104473183292381308220846319364125552255297088847396833525028286234495284823990515994706825453433069186918680992361740555596918259974902926155295564819612043822893558072442225090895341047420498985503435986108471557431075275173436771516276480187612505987739210110638869001132769077318307912230757754217882407358395638631255738058034885378271094764033260349527272926598122602160716968758152458221722782250193929896150203461423823357231485406147085168111186670099674261161597599908199753605679422653140261617368068347632306853310641237868169473932142957544009144822110846546571736406846223903582149056028873264556774553683403615738644825448339964933640908457512931322231547003098254323935888053771976666611988931888796651508967440073668844673553268372250975385848528266788411608697426213149941355905210663866703147494191647052998286178803749695184348691939775734204609058255671258565220725211876297065772571231447378072559826386714258834990635991552743231062279741593197499341990569909117330337168952827978369200028830326930335117605473928596760352270904868758795184668601689170194903449343813517586846309658812182237352177984300372414933030763038343804313579768383893925939948738166149378704202805002647495686569725176767116476802833891715281553072313351503814757800781293007933158781736076241958584225005108763269663147790652785560559404626505863873119994200382854316636505824855633251997708072234393806471362528253846257058581094826686450609611981629067326351244231683684866535696894325754141651174681576122676818189662369243595403127609196206301474356350920179930225196538593233419103089256385978201178352773688179202861855462503185472536988560927569468201754609812381382042571601226272812702722048270094907690908311245650716490886026749501771178208808117601168220050858261137190041603596906592547212291374124108791613108740392259905126149248149373879334120787704002708911219549328452535146204824332261595183778817151233702786682178829461782015884709556790571743211150869777967817739036761651926377292193261587422727604860462110034083300574570430202887254343184596122690526996694701847158260314809720887429832997383641242470778797655351564259068521276752609681590700912567536936197840537982720636342239485174970692930127150674071731042395190459433856396903428477189557359153691414433339766245836414060700066396416830431920180895325179055290271036545340283964953981110443119598522922556848998211904869341995785598810319528774414440927992178304813687043398786716779817396412666850321245922899288920805377294928651986790312448270860322583227312157405187996772079905114045596739399805718042163108355378988222542223973662466723516870393507873762318844666716682657502372473593782568637835009679852849561880981131865518391775368616009048499079171608565035034196843915716984235313535379602063468880423905608683103352630961858232667468537079270647139654198484758229763399979379808186016685329048883931391087141436831201093367312157993629250333629065628961500089274863297721759042686382945691754233179490698175850468106497635857459621380871375377044948475093944682074321216841699806239208568060623672933688783286378302012113684541001929973325607816037266636504133821695095530346498120712524088733071279337139032355911852699252309105783313618347296806268478255201346778917483181240841641545003665049546016408501870854440905664221804077433593120626922807617023672916413630586014501320141614273296529319774384879618134405005065115382259745451434588084577695568604439674074874830981821087664668864886133410370015175489840610848348301952412123242476688131875987106877037818391660942306807079336246630312813640817354685016587852441451274229428540910355270221291730126883864350163933739891972792414003275439151647574522626217865156555308516094708206890345681543049622604987021805451331602267245540091575994120523357655167974326304043112521562576001665480406908315325271137062629215829103119319426476547839974736756347754890648257206219190298595659774263049846354887005479499346946369553814164050698104388878248238879334127778837402184444550774591623192628362482309289176553847679942379343503756061257983048237837191378152217193480478872402913534650636576425021334854389418272609925418442612193811666323979035258760414479665211132646412391109452036056835161986063523742391363939080082205882955063676005435842482252394497166261053456349819935229671357468214643763819138144721588485154160609395333482649192984932214611265022118496768385404254552494151409259551125037312192786380780802180685497141796086205151542960675244585302551767628136359327307555867868371142811503140713626811015646087048091933043966689765829746451511241062721085392154579769491716164764488046084905243093318092487993206029557888349363681388957275915053208817340481960656972806409003058533937216593811153054671731231250169020256207347331829388458690325830129606489547455378068501418934035318125019184110318410686644982861467053024747476959475748511970504714016138975349321309554289802207035448675283323780671799029112308680791458712319950498019794563398405497185891757012818103474360575337897299779941735440122748497902575193899846383209034010426136625342512602371769722187626176566625909136812098590034012888162303456296999493054344198491696009710003123943374636606067921386846788581868425492757952961139421002558485164866143239657084212277106461721770125582811142715965977303539186901766194335476974178790412061818359938253575319198179154544904032003075115969945514749738044048557062556273616945534125343636505819056107737126772167480767789626839366321697032373582514962319228182298048235765252731657748025931834880360882780911303041909380564246822678070654548018254408326751859289284883130541060021734210838998206212719893467629861805033994223414587684092719615398686401338186195730940390698223338429615737552664492961046642007539815851762542819172400920119002989550450060743736725332474092749437062240678862237807018293875518597390620239752397533218799936848745405932020260688680691003777330683583087157871360653089275938612162318216539977405749028675688631710920825354081284479901434294392953697137245514720527211476389357883466512231852494135962072403921553776840915033871093700057137753263088694221678137033899250391430012582092475533104569628845859795152031806626636691372519100819929708417777442918626644394170723461644605662680360892515595131586993493393224421114105602026646574625190138279267052265658199177581287605860216986877640054915488283056040657266494866369027811399214668152253535660977787908546302946291364747730054982451515624766471427891932819405699056675088510841858974706294937689460447373581591204423041010653893392503261156942200182593573914862908288396449237480132973968156600765339150946881531602076495341576206915620857072139112798843037861148359914919460491300854443884988694587765374718923091980731368493205301271116444400314459320789064909273491398538244220511288008332193231633131334478337860704855838088412264050950298502783257392250558413376274982576446198038294256449210797808292765593599309344670246676538056678603186464305214588519649287166630114359153825586106525699953967206981928137189796619754016434249114026963692148699599375540115597606515339990288004476095255579718864426459423919203899359561267297032571091396431833660879031787056766112164049266740741395154467836340367155814273466455737633409171654771972764544933974248932590749054273906518509642315105892508066607147656251531060113919167950220745250982462648291679367175842755542155466224627685224135506251865853910549689100911875064378055140242838664290682837680975381489737983591259270218315647274897412726028800147027413153480214032108581032859786378626514221214828413361359477753409293546803631693473333069530694386930183650555360074916673043053977140675920010476947834299116897458035373988559107656353340298124288109237277858047330880388395879108422314557019975869641849720747078786515107038526063833202240876898084731437555809652263718461344168755851709413551255797915727886120202312092933832862023212811648637622526168997265220930601573693560910802667510143283655027465633321649969093015980435527903648280321569605258372685716191756858701751438802579470209578794008323490275234175240150675384579756857814011708156879748822963836663975908268543394602026501284161738242192592587315782347880915872094470322894017898820778227612070277388489292902454782445003868422009086271077747810990755997358950669172094096066453804555769501615634424858520559662152763418485573173682394339096569649296228132787782698039517012888552073829845686530486299173499323350343738204494737131838715345787130644111137054857305208541817924662032688074344639302194229875457920385800246633664832080821318862377347020309645790754446477166811884205528743944182189881550487364183893775809699399018131462161608148603299647714205371824498034822447583369171918702665024505158289689225805561423257454491195955493864595931382070346325429412545558024072719016829093210177068503163252044485583979665565806062232159646020754764182627024455221275850344991684662252623130647336372867746113667624640180049481684448344342458017123553263654197459441837454729334460171928274889011243827723242638315242532904205414038703289407033734101582503928610451380788653482035024746466913316927439176001192205088163655408231163936068943589397638417029881018219507413597983786275089075938850561242131973672163811957148188222666184683710467219580785865696056979209774807768708900171550959935547420019647540492752984412665646747700913146762393167126035482299875024826285386382082336205498445749676507495576907153202893279007047620692671209287061593152737167380558323171376779607061584950208351883338828454267716416642801910118254346762171559053839827571754809607577240049289262192279138305392372708030998859864503312097373155150566540238185266305963004433610624232107500226076557949760697126589623182347349562009596342899390978269477720362868134137717799521024016273318632677551284262566370318463391832650647908029611279829116495716263449221902539991969308420873085124036895379681432026320824697322641223542875576847906035157713284270507614608586815565332269065770731374181101657870967829536274812472435340909891916956355358735489255550680770183747927210988761888935946824469222117809499002675174987998305288367128001497621538219052205167176883878265584477174482968969716225413721941820343983095449835473496821521124681550747784537571082837983584129733494365052146708655818210157675663630880799086525270046186309183581061384880137400389180200584315013085382700471258937386360870696500597107712876154743598342371313480755521798046398937818174836098608164019075023882186561533370422252234069289043842029668895772188364318420213880404447920804899310731731826896252263809147699346281256885817908323072419566046874855437636245039791938738569815583796794264335136393692630951810881167036718873571629061164844921400867422311792071047894016000681491093793956688883847581156887161750575081357684678290138958252474992440257777431942904267332580510381778884807538226657505340525061959079047100533439633793192661304655847536827932137767699094044234087362528205895369832913612382154549842344705017146908419208532050430671022020433580567800672315098515922564969668436090521022806686448209257981483747192376272158731362262548044194132701040925226008271374045519652588114331959086709272686490166196704343793237280581692602881655637865869373527991649523766552616271300377917003907604553049447026736021387296384342028619839399306106891158284621488682128288648222247234354140877233165011678797869586644110399081051138993442763739735918327431408704928728952906117562294975312804191031784624276236305773508947084848257221637953616977289456885554068381698252884035959469219340229667544940925487975991355650906007705767530626272310525783467966148642143257869802807043019282214502764617917435974751333889394405575549736894971672822766558258100647420612044070859940163324517813042257793716051779738510234548578819452669187125199701130035893070178531803404796016589456071377461146568155183031235566751868701325299528730907620198560769997324284254288234159956850956189306499821767865431309136541598954430421362463374339819707888094508500070575985203975672069846041861233120593872403160625513791445635591078406527921183131370545518549751647694220258837794960241225769538480584888973396256907477936990716508004564778913100137772598636739531917247226761121996837150677919544197412263991805500704635517563024278934087945583796595300004482600281198710305864806754972991143454859833964062190267415100907169636384026235942940184661379459295407932697537399208508454360017001355140390779375097287332285548352619669018858045855400594051143335906432742042580222800362928469447594912814786667364971761409431264375467588071451620869072699088308758704544068511228880847396893411249577778738883685895580644403263019451699177609607242682706709372064017550307379327623829149853848544974805469765675698623520879070816138553687085377795502315407547882179906134727390628978857258327649833199572633901146283560229855840016398334745411821104043394701883425088373772080323311155526572757836189106962205317808576354480268140947072660985384845190503028265720694135561337611283966689063236433812065090255298710152826425635168125801519056332969538618568785671178711425489742200854220173772689384088131095595879490199414514129447017818627954666803315807689215498723612814530897861257793459898120895915598859489711553780754382489324205214128000821212484008056888542718963263654548963838191412150825767666983039357921065243781993542585709449590746302792096496374883671809150696097183460931304759880084940828606109653622166792494046324346197195090391012519106044888607796566661736889276649201153955896618617891179337520721241245772450970737691698834302464740157626177045373950376050000365257573190563148520508587211730407151227775560054871710463079522580804960340183004172678731375867875838598753314374444090075343654022037152325320245571809523256852288717209857855745302428041098416533835608628883000080876671613255939509545521422708227109556201630677061922849966119449787789386436925010684428963570629696769365284282255902951219245484941444996680948671804654607269644899243674756026955232053128614970348110913418450741774074955613227457584522504851828556551854742141088512296847944532228751596926224070353070218762816038364700081922918273094793891681820053964072798882942143144526721157579111253533191204604687003237992790282516156824730046575096052257240318286621367033517855251693056231113296481747836656843051823358480199512691739786313575889084880117585330534529054143026229171288465790355553549235093174825104259070438789229442612225804997554731272386502441306116032345146940480528304280811956775871922222666215461441279187033540724652223937236098782448537416558387392320964946586424126527595326131704768988784219718993478281910025405380863879196395022710085378353337960773403725381997568396545120633031663897754145541396333698950538262792406271580584359056337715403266496078187062046239972301946006633617591335149820345133482146308851006822203267673697822676517051059777590232852809777651522419529667473262952181555567076256138294093348897503331329024741699116433848046669336023173519399945240073148445933644339237538809529584002312105851165460489683122807204475278143171078782721595472389006405861280247178805397471593075063411327471529344614535325636277500242424739950301195422244949218407226661088608945952773472750952749642568624185694993883751745361085078375273239281290191367507166602969682392331803842326228288192527734041306665874608492447512129314427309108846445071754833532476753483592054845619195583000556968758680245160856480671536736760168096319020430438044245876320259433879002930737370033810765967642684055749648165115512571617230691717638267654593326108552984004138642535543012620105934697371601986304387319372784492089937172403701012170292760540497809451519295117709189125517622547698911201441697648674350114679216759248340637087380306143761995442600051866547150924814122086460145512955816469928237851352687133905821663770800287707916596611029928157279849906528227475905671586706615583222557147519230548534829586913672330597906350043143768949187681394019828108578301778858661639540316655536489203479290469750926726202237344732514504030081474271339292051684667480483721359562505293509428918195194799676590049556246202712505794103534841900129049221451433742007920698169498311049568433718056963175015539152993050777160098184156079664079270321769056196882537640362183017673775921173241582961867980487167666422457664547733886536749240364230792725912682052598898705596467003519107410069743630598714978765743604514783414823309883431750120430801869951342911560074869830879817584540354960613064457799758765126992135101251382281539664922013063119897860153307194808672814113514234546152837986958894708703848869042628682230585606547437319966487931171181569107631244024553658087470487354491543816818662144027243991269279523017642952373395627863010720770636079668905306134235460078241771264891158513686686946554356206538049958428527973354678497884129602917551977186576153637550187237222112187764116302042445505000441418217659081307783297378691997658646927623885527722351515000612627786788814797968499690782573189035921558500897247960078227642662587477578274539658988846461029697273673599211250972399658799247760337118218177382753074624809282797582066054495321619947184079887213348184102735424356442731572558863627812224298984418168528635093623817971019133302965865751904290434544884644038011146017955927295367560841784935413379977097262317033028973255797764806999900668061138909490601770914208651301849586756800659652557793859915013150166876901834640013924048883621511440390413469049474763144363206994137327958148199775931315427552661764156470837616048086128994073911412325944593011333238917466987514549384191492775590912377929905165030361392947035826092236388334950139949596638165017442465556774051644083864527767760481251198693283183493821598865827876358299669788988047535155916574228137993473795915176860267903365337860000057033468979492054036279117802933642398410595500409844117667075972064170098372347967008852580671488354372439534637353143695462143793803972894444419273657731507034989544568484103777822968701120454209879044934945281896246158488906281894386879776881581921015186514727014008297164149515418851406542012763844788613660639182660649857673986081643066026189170007684761875498610992145740350217507040218294367405942456640168670431693576053745399422161676680464786894184179376184716155133498132257536752875679333860412507018322509902106579261885614556996793720416962037013740041636727171033075819989639373353349897604312550563658376286587219505484844692466908199936439413556294622513145202317185169529668052734463370992095901428636922224229494412976688024822808745332593538540363669493039855163525814916419193835909172359018461910148925288176108291474131349893753311046471818860455809124925417730496552174584066491849521331992100997109641797439332912037111640818529538251533687561094446438115785984501137048914031244170876263063480572111701315028594932450635026206509810640578575008540783414784021769157621866230596607312109548561046575152908997018870793774108252449265693039593208906823735410947701743040070520097198126784797455078913483423950893962450732156090583667393407638363461959936238749196404494755318167596091266801312641342853296962114328088467375659782790429989980526961906433120746628482164028463876120562610641295021206026861132224049639405380611063916470961732385764509147281673988806319077673704990978226749637168272962340948901734372738208112086976152237682748564354461840784907233993886982522279000103248508525147142956125101079188468142773275870533551203618639181654082712254607615227438891507572286310222397102637813901256400826180925223448956236541449455390940347923894317098868103986846507353110207137896228695165994446132175911377055543132761603077921694925961387362589301742166295201762437960447446652986859087447755675956144488942291996360387212440224433671750111412976021657668331141032225554348478798186350246561759408843082740389832388596725179755270088071348463735769783069076071988293021815829510279633186641690226964118707364025785712417298577898383184622832906353840247516339191141909142828720369977849330107188264157852646480177824753795875082321431224764409036673892747480720808705513273206731660681740756394139091522965302563825420436886621752602133174081390731018793493259383273907228203964521804742530307800353243560430858097931106649013819324815190203167206322710655378324393977869292814995836242126244198736809789582889842067436708697413826208020808036989943998281746848187129675651328615843611455499772227653151833906073376284050767261436732405808386795284847806355205417546587724157602787212020419638326966866396396218715416028671232452668599714884173509098423631939973989870687170959086874077650534938508711339337543236474744843085825798047674427828616205581278776174857038686737139855947046593668970265218935749543120032883451631118827519622542477421207606110749493823160816294078796227058486489599000797366090742211168393925919736174432879794703084325978516405476621832014540629016511148469638069042373045058399278253052561131390776715965162456504227809684048709103901580815778305399556446757700500539143003804801382443746452026814667207381360090339872249605437270197995151825823474553075523352175619507256853647754613463289078470690198398074612675424920369507832782392007985152929544908257943965779815405068199473520082883359853586922974330158932019862333692303366803334776870312278216051363922890566773888626359868410810959524576635948591177542432300033490458410581287622332314343775702665957449257647147045244637816774977769914355811371336738760741142024298183268626293303623145633648707802950043964991051008876255734991341634199802581260866967071063906503867895678162442764510147145751560821480261845703717214631960748947920418189836079993926184084131478649109501998935476039689184607846031122035799423866628392308253968077214903033442536476769798860711396681473988569689000173793466416227357657348439382610478061357296846971946390410990420835696748878232109241853485268571820225421399034359740914478714256283959216470088483409228121861500413266542766409214619097535703829167365654073835762076545867621179707585270330289176372105350329100816545883089545488989252361358117981035368847124323974702868695057835432865650477627557612892884869322230425418387864921769306001032511373006928661128023831946841502231716533950412471572794476526709143985555086133471043286573311102640522595317954802124485254718756036708344032096367399879666147880751455097101348805939115945310806252562396473288932114881764828896111044015522691727881590952823774084794608995402307663624079852914199964330309031628856944599026635719629273384106167013635091999520615442984153595998493993029389212290892232750537939359101425738234422588897460277024660972062959699990219645015356099105640575345135757269785943215329245108386146010048825808112239367468556048008727542097596573121952116229340076300722900472539373054174364000472073518910744827512255460183169038711103302559650286977312290602597831453141798513446193013527293716710420893790950423114038275090347860234634911723116646470832463117027554814364118450992302466484733087288503734657676691561714737681871309253906536544558308842660549691559735712980188386603562632192213325314625774331576672098885759081199365446980760208645602530774272519281553868288413607079974292646776740686022552848587494060359764625454621329401068691334291481686268542576820353663556801679474571827767590459734193431270183068253444529616776201099234752897546894437071755242437815127488530176300370353500335430110897428200743684327396442417982819702857218115224643602159991816250855676441505600360538343880447388947873933319397296744054811146403299256441777185382785294053689030021668632947454257897390160462056198114039466652837826344083335875318081601881651419026630104188958268237740454670873972239472582201847777961416909341264470976398546092940327090663979932394856797370890855020682669300663268215311492106247971344332609478884058590761715029475964394729674498588342447253469200262816022021755220204583181620284853267010596919479600717168714916226784948834298161987643170364453422110749671128420872733007504125656180003395564833675337913582770690513469877923320982575864306597177348813577291917300697570475552093248628509320511416361847202014129643531653124584474792688359550079886725799659765296255434468946210906173297029252666135644395065605357330601900759103419870685617083659561827610322268375796389639335000416669610798247916745779525414093798533722857504919635277350122409271317582707416641296145322436363716322594817904603089160649740814537675755875948331835215832530560623350672606256761115026299047311355539467009157276386755874352662095073809704837208475429122524647893758028393806114060120070424451865566504337230116344553574670485428693152034418905874797631881889186352790223099002449027496944944595640805955836684022790922126146920201943436646962037584052760068995347833648792733267638006714262139385366090858981324333724920890154267690427552773184783406164957577738213999089538924356352049929051703721165069650761273692633647535040089388271949119124728468828836353234935225721680245886598654294289494302744625836505378583259376591540719111024527787800677090021939861210831748693236678097266654246077201503562203848881911850624314766518046082049052395669537190976844255343832290041988254140837232806740863947539834741539757163360190730721322130677947286612056555794873221962652538004200751320862665967257446115246913909659539235159756912747947201195984754544112192341671186627315813164198703010486650122223214770959063688963343631429100978729783710329746845427484286143754510324621575925029508286568107401736789821913530889848668908669756247368126550496448947165029784080398611267048019261281926966121873252683680690594566925213022432567611052367244518604635338323128149685769079073322500167929232336388841295684706591453076167743836619203274793946851937043933477225452488766882304939874481016522338519722126789635657898123766392018550130767331968360821322212510387946662808253205947439295680856984602071035368235379560505549534325152736364951017637436778373981151912033931023374092195688025495978633337047849066768404362241463835591372743087649642931868007213241859658653044980734652025282462674783530444812638943661173830713485328158042503166266532123732842435938276835720201791793745288996582348550334895487814792888146117496321352424246522095563838268734182631933080252460809075338655362948523451767455942855209315744482145917199207927154947095429161448232215716336858692570674235471784625352674636553287547985704868600952234261268191102242455378819876545717864022188668063525076454972576661997620528527658707701535536752337598702971757025758805693752758399381306011709982068009678122508658248956021868949528506759818831536096972975100161222125967104229874015834020945963879453766087180897220003483313381351684304229086413040324540216338871180185570076629934063931487056717811933723311418459680894949305725580577208891699377818452847768975546844275109576840741476186323982348731633100470883635750474887173136141173378946527421357254919338179893484674858561167008089357435868677779031759694647281733125606325118518563494682144791015861969543290875463217634823957026782999189478601148656772427997834976025486852768832319349833094299135421922444397923283309776458730805328586618486986463314074463604553437956701420756944792277223944430380008853573806298375915405687128899771535002117442304460069049477007472853050377148853528440042516704653027584710680905125356052444353843415381854362180365005440143919414721680483472092324150763254616202124709210032528225301740208881485549651614492647170209317015520439633975323504803027336535293185182707260956969780303739196442771248647533809637623664484769671040340311699928799918044873047169256202866458442135513943890026051211578951287199239749862162791773794332517067253857487927947089099043949002537925975287188809437979626460754582245668623727922745751948241035893933499523037810940624071471258341936539030462193690892858784072555031603813503021105396440753413538962116504181430866408407052531636666322900091163280566050421090396056023719450568479154863539668506024475894384923862256599086652901905727598902999418603612351027284663106471579069998637033167299805005709426720937934861172229778043077851541594522474123028080107022577853060778853999919640012504772360934022370125137617282237275974518744152061802924446419143051603857204022901891346379693249015681819650143187981807757677792850569685021190922728479070483097556150846213151750173867234795402512731502596922369217487599975395652135341883102992587631593510642884572848684557060233917083319715998152364807325557069757709471364415376284799530252935284215865037643486489715089327219453599279059206648031312135596952856997147195597216792404727066572013746188699612929664322885619682443541015395327973405149168128560463012347895771602926959317207503034204288180425708523377032345742828072502727450170310028747949694565962044867717195166701046709209171087833594005904997939618265002097536043723486147560253138933552862087543324508598570636934407380542300203173200422992068257874755901522878368546724588463144184835467356179645801713546281460178267534356220561767469152160483193393838808756676960216837275366203153320462376422663357333950010222913654484013394149988655520258689620825780352451535686482832461551254127631272468946819370834258435735036010590986218108605753030003026840599738523278082669957396249157375970996193398502819312547112800851943853294709716716743082556801105007936927236890197744811989631455761615473525906977365492020444876652246815295329268612948295838393410769700741767378240199077244729758552954479551185450360939983902810196479769824796420926511454418065339469407211729732161349002799023704314368704595418164027145243552107018441700196680968673695251403374858266298692827227837028980044037521917474447520221554673954087079680461330389918212780300487586516934134473309170485847098933924248591395427261926677862020800242017058843450301968318181281040914017369217719673626162196164930412422520391850896303536153785847889968747964407653884975591294185484449454647859284610075045215058469224132847462106484298005641409422673297777137932785104574184533940862866122175160937634190720346147723174122259953429396531763185331716436001347522793053926534421451598409966429790529885788193255854666026067852123449829387222555105575620877470149224066819157115663181374259195408662321131713437005019757633491057307036679151664438438415821151559404026527594403338228206278285075760226853599347224530801066356461709907113215151991347560169031316095056562395417810561920305014694440865766957134636945178744825507475042256120582172351709061186195474124649960509466203928144580826973801566075376168471106121416348975909559833980819919216501560254040883507556401624038677634564639788355778532612040630984570044845859743368114821198156648794440998524704574373209784061001823288152285802853926022514691437247609145785134038956591445238887991840310979534893155916860271598696054554638957487853547017544822889726845242998552700392680602487933306705002535294730464792470308718267388743640273471510691503960954305742274062307342580711392450226273467781720436176017896617913049139166814213574286662444008740634679589160047219016814908207741573295338876660149407989636490907372439952297020966073820467629076958638933535274440786584035338599522645171345806189852955832397949477134435704033018832338630816849896150237859885112491389824377581906323508106052553908426474772755139982526612660106609661732776442743700112293044458894122422077038811749437109183395066236347503718131757742011228215397879504146145817093833009054393073105597724209088254346560400856101757512102702082859892150651876051989067403225566343751495119684644680334184006540207402329674604962662658328862274993851825232113433053024085594706098531170057603423687130614388035785975867128299608769592702493237613524240946877981876471979030528957221766603582386086733700834756352874347575122358737728900264211596971431753712438193043141042645942638872722055204329165010261348068529755201113957615541534770225454610158063897262893304122740683300280498325612924821725070289120058704609707834531274977978735541119376212749127423639243807366248154084493541755901412966156173447007427168109194508600300867383052568128863573945806199301421155694033672754682153320544619009917301206774477097091034407129956673390144875812791728950561895041198972757006544334364910035146425370730736403054461879228478488023079363963960904955520036507818348874877588487438060257925640256024671766987464025979937683813062475269251816611964814594323649277177432793661521732407769255496718155958848387220018249610371472741393038837271575112288733888931513922358201467280899393929189968313027453552866121844817010394629545071388934341315640930668224078183717028870831325405622979267063269006961128207893066176248972772993587954013668397199900209579934971759228626823307604186202026641584692091041354876465991801468764992410481785796314903897049060744217830689277462642614000029981677740319285421003167368105055551879687002047111104534568444476745772846457065581973383734526973865001707245020259353043535831436920897608013937514413237376697804253670198624420256555036728463046210291981217741600231845228152135191334888345837266468988283221739834605606439197164128505404457346483229764704175966407956636071216506121668714213956721364816106951397308995766383514888859288512367138868758071804376447874965981469143129915795885671134969917071830638085193131356364873401930489655711393813309160367780337892013061023677746693298529925313316575302287037373481518697486513803100540767191242682785419101318268530640727427206545064683491458936954957206043850483052334530105198272375151651622468859940912031987252313532528624949788089110881088260366744691254556751276195978457928977640598189946205475626223537486862915118932468466939871444681121770886637229704734832639785632337143623839275677526806934091610061357023320390736222438906611575471797799752468077126475915515234970250249203672483321253713405109670275190534053726824487513583345564080622492173300736353414012608648109658894032994511696884452103679339668697198164649647660533848516153695088974811971755319521481896887492680525860799419007869001774522580678692451378913831345486798167049802685755360013726911461189719954240759383839373928646022297446154525868745893290658314929274409675143476709821984632043447333358306629466072668180162889238390250193460950999055908434781103223239341646644234604749930092595280863073608739497880366994364888936550403197446326552793124267217116811690971205428773287607415046969297533348211774862293931170023429123073748296683816970582033053703738595049360745347405117913879839653425915986828424229010227478594440762324740626038836502830967291847927145247485385700499796059088394487607341561536451693508637855508734950468577467537479522980010616424643882682193202259656061920471771650824954890981115252209629554121624370771964481789568912603968686953215473448804935285086321519797281744272133118374363238021566873404437481294474397702476353730737551992817426419146578311964493423318632381501305213238104834256951826358110413621003764500154453407066360832309505153458566866666548510357908076919569739680021337442723881301700027034025836434379638311024419709275852994380371669311709779727546459976310198567770309074862824796266802551945806965795226110174591563276926559780694912690150293478285701946822005043084537508694463487085460365384486386137418208762068359854012292309535057419412297294118422470668284914826278118031303608599077518616401185601412807607690928471558723109748424072722446336882606442090565131028630152383634954390507426971842069633083342935372397578018508990746328778276440179798472816548253633502673999311753931614225009622655369884302812410525184950052351289258349074289676311940429855495629909173048615364705481255172074441615089949031055877734025622119503453719638946687527800827699986041724233463160961563967403416912861870015025217277760248619269699728633115696209265349980804946566474850301913574150415364270541071210735573467677038281256053583739930023930677641685880952253921572017309260107093740134580970008208056088575796057701384142937023967812456663912765177659033491711475007435418577034808789022389487159376190593778053695991562519018964661509455205682499056895844053306408038301182769580041903265069768075557512457445684039022027986802442781794021887149604776872466030337134466477307216433414504336184658781602851230457987797850009679824262942087301940527554531084933009625510814689130591983609382204181555625153812409983102507797144025125697874535134292374372325674008283635393924021911393920329265553808841288900388970911555065361583364523381492818105288524551829914417853904686817731447660455586691922765790596216499602750409456920715174051445505111711035585471586714671510189396680569901225892281639068553868272267936789806433899332245330910415771350761485590343219993407836849777118572234836848930148606150929807093006820833945589266079430153950637613439361922209345261656733952282877089585355423485145074687238987188319907000864515304976936661953342587428367141569480852043713892515351069716103936943013143848739198163730322929495638589688772858360371391617265978142869884342937118619899330154768870134934410065644030382505916499559039906678537733151549636305444102863089951576620119811005791686962588860343345343008412169836214940072424039459097741823732418918826032789393258500325001416143734904495481617021423818810473746080110231325317964678388429216605881990978232857515924921066213021955435756563101313111135149261204737617614088171643533647126013553058680966471960350662243359084344967451944597711328376045772991695373597389684481479045450788099622521962097576093883771484230942768775952232361270791695735259360166898670283607241147648363878063239216517191783457450312247859441709963767770667972979568945559562200609892995548130540395009266490275519218902992581327267221020951546579817994685097384815705590453003769250935692264546973006082606907236435296853232601299330043422631886262390616171133772897504789908662527970312586030355461747345700324029587240337082375147349538475986906057840392611593881186872702019378658628857210379529457942342254989125596004044461509689218715514194617679849779032626418376566447249870511830818495889431555165107344126235631391655695251198014404821874894767723361602959447002568042029692398185244371559086468477657707181893324340358468858373057303218652498625410796823112476185085668284928871684158207164351646350507381663108785885244428760848524631109324065308585080413018066049793149739584807357599496467448786411109777710192572476789663348254933360701752836956287712185103246542294684239808001573825461777926872470474762850916534812019749921685125773322576428641423414603850950892624857830854226896010597810296327980012267909962633977372567251308683328923206778459883092222271964093394179558729187625339871696619645143678988298113877569916895618336862256333051739270264423752021874591135452710496697542551645263446840819975717378709583911348127301179047531775168124222316447846039342667846005399752974695091866505586954350617586892606418193753376347652830977361467758581566322961599294680533126578366678455586434042234326554617371819467041746430358199626105175488366588141447519736881986697971881037416210550202579465252879933054450037460129167240289694901296272093592451408764631316970165648117187808768697466553988526226850575127942533614192979784924702150004545075519565519494129173765305429284254708366325666656209247278213693689763450934754477897161713965866807461648756307140201579140186254850423896783767887639848779379331125591542759979891996352971504502078486897059616999546500906822702072127387854027472442297983761626337904902538198876334948147668573556252146016050624233521426483778128294951203017610024954654106223028741636018117883079239586149681871256334753121021959636227515321278824921805141964903227099237835053475789507439891501927823147441422266720765348539664732668969896044996995252597600925032000483098213283246559067833850861327955336552014504025742811142460807614523299378922576311311066484552895144178450620374550246338020475746010951813823785661044771484548546048426873113309510244180671560405604205271192280924834483721574865934324443577830483168965844132978812746275110477811714048545655161462100624832165069020083993902665194691317596682645483596768845943548542509739610624742728287423944910397355865058015348926090031622466651892356931095872066046340559429149580132336274628413564813583981882827216607574737623834587245161401713745207034088755201249945838695640061909604967047185441584008291929678328054459047002623863691890874764935409834855136230422906846852741594722379335713778597836420101127538493316097199992338027198374900056279353779622337811298116725524239572513701669413354005350334690394312255266458193322442711581525059795733277627800773489995854380841151042942100551599479650418015199412806421375776291058410952295061745762501973955163745333879836484710100918518946743118323930110363246683900247279022955875527811089008239288922830392591834717166060704762089415600051873763844541850174362953434262290732938522302396207330911765422583958809883726782645386512744741327043840473708236595028874189992991728672453088209331005769212787099927708838526473510573108308317643485370335903289713517756773639150312499470175188584715276673606011629681231940540324150434131922874870314939302129236872599985600384173314443471417513457227176573164959427238359485060827459777593179189211462827901250220095250491653475798657587083048023811747106461416140595885146722270534593185063268065046352246064660618586207352788613233733814564719130376593695422321164570192970879717122000348932462038069885422101917430776540376714346758794159655627327426051304639654918000364307659475879032887112701908154603295476359393426071837410320896146613190766101857399959954792299332394635227303742355505962227140578111819017101075703911287600250196245816710019931808131785098197048280765878227882836964349133412971072645229755616301312142054941819507274150538573118030274628185326121441856329566416884835556156181833946199809966820000173604616106981697346973629586305651984347514994602032394839074083324213253308498175052389791918548388147255156214596638426722313168761176175843883844993778340459094458682981422533203008746873736632467240763731890912757873663414038195714335700847457925084973214853875372891626355468262582894149229257217976827316894382304907317781720900391990598811524760420078804767489113569154956094318100919677900834217793072054198828571251433588713702675725848517892392266290559732419015852999166785303608101490454194658244212599134005072369184392826339733798896801186348387420793902124592565359547613992019904557876329283824348048355389029364152587206697437581618821446657850923658798152475553450880758957664999886698151886767618521239160872991700313372945393781540310601746167082918157242236730228854157349225495400320176638644738107258476267035922758869173379649811865120039091297402164882495340858003997630499227004301844490432700612609527192525331266008752962480359603693710843555353217882767423149683901676115495491791824504758792785123905499399917527027017753178077078634031384099213592070466447922130553502023937129847783407821360155554265042001110959651461336600607418175565508206384134100814650213791137876793663983124963036657555966024908839401073460819770559413811853524252278604862787335436615764772483369803106590583285672190203092348450239688993451284196927701269190993856999094201357410908574844461232486332572093924916199054949633169860393953133304645343322282206079831798962711138044822548653249444027919072783995713709357385197588793715236705047457238909927688409260239425517110855295881008949963236121725501709144062064894233051346002735780967694833948265874128137605190467178519147473673591394736989756011363696052115490454822833477349135059087216137310612393396029057785139273372838013131432670007853842159471157367460201535482338621888376211476689040218752981670078812465644471200687520827540636185460621113682344915810451385163658961837132868941903653479063436791980357560172147330115788922412090836322182865874142937996552978221456561657312247643487511673234027620554477671798942673427765478767836236977495375714502379813386103015815273774572974673652374227350039224489988463643701079541435091664292389002446680569829368540903811302701259254258582342593568905637018199911235639828653994111692472844134900034213512518881388128965792948716108970374421389895494125955639388387607814887916702791521668604202265707464796027104241129368748826376009191669296934976160010185289036463065725641590245906004642939372852647492628509131306279915127765689475660846085605238942393482477176509543091373288016513978956813841146810837924565763571012140633189703518324957760348605607219176782025661172286932271252426380514726505295183398367885377339826464117963540558111756903342569783963575586241870308285845522517132674110536870110290421624243961962177509096825521384903452871575490940576870914758041822960303833947836727185063126352834037128394545708929731542714758871866817216990979920708419711983391516811203416476656058469586224058787146143507545691290756871054449941703379179511821572176633407803393237284365935443365008849614085773054440303465497132147717359079250162561266565041005959079029881258828149288273416269166428112563261255478056194919492237398206410306953378121413064270416581644113091364541342400941281513501041613849963916015171767007050267023291652174391543931334076390574124677624739016551844093258722482910186739983233181785028053055088037843799241254125081804125634561352244123150679359607850790056698530209696116405433779906096891496959453818767531071501557657129730670933038773211187725349210044757393848518325395386579868370281021327635232302613773468422575696247889978972025116627599839049131569773567588191429418908783810208327262478452500412788686353912833250460018336985319368038871043459753662365764659889727204445066424826301134862950785207266590911051518958164026104574998905056690424375809652434244038441167981206996386615323887486278467138004310146897210129976034108371654722597034821019360676296633059051345289167103406707956389069175378906808769966286163156264975528746774058767414225326415749534560852653272969279687205330224323701172071941119706061688929307686818678160421559470418617103712058059354232670917025156189547506679201358064559091690136702697572088383342641476464578290385993175066788873818751207513494233360226969654417151541002434601470948425142242009826143149765352895351473971642909656988107207238296303140613723073514998524149568399885229658082484941717185844963745762662091601673078418604937211607234499229950205169897133151309298647526599717470251366335195803769489779879823348569242096901863715716397601110106549818424223562084883268697167469539022515464757793135622637129455739922725194349489966856824589400799100642843097893041126055889930706651683267372221400892375383527985046905578630787065894813991143366913859971403012834673159009093585680696986127593175436233354945127482078946596767745691327712186233537188216346076440455654407501975610285860750047116592099732588032550874407089080802292583784002359436710004212207218064837516158228925920569393284001930279600681488743386227115566601377641382196357420536989741415743908872755331146257524910705678882611898872095886689407631410244159499979151769660484544249601409884238799676195490751034617743923256706541734805271251018213249764532668511422638872018654804959666906138989432547910376584461971758830675224191512263649928582453252705694099828621321909969371388606200016508022623665497632359203040239331802043649048861741482826085586425893621494843840261532871186837516021448025526159116361734134722131237536945248409691556237801177631550898055920817550626931979365855368135325711801381313430209836089806728375863372566141044454074873786348019455189294034397265754498387931779044247095143430125287140391057434527959871059695188063973900293046872674642993448420477746929977306490918598276299937471749801750182831437390052895678868141333253786468024536077974922061999754329002306394426387246034835265538474143852189029169843591207295980689612361057915953699809771530477192070004515829606747401171380606250372526550501374132389837787086888573007624533285670978387604839711461398758709575569238184491519801385951154914311648632481560432921653325206295662754471883046240868010038662738564128319355234515383434107768088119448004149997459347663862935005681970691291281610958990898130172223730333457570333276418323991416961008357360564022188382852528937833093862582889998138750477700245407050306169904570381047026054875143231146810156143207325035114999098686244059784125344446446430822962447818616264246529756317300634689697337089569098338205104179470704278349030302042282357218542412054698341501437720825232571565157355295165362902447929688211821718603725656527675709521719679963322199291149683229224919200444814206083460391735266605015643669308019492383891322350725175238711636436487159059268290625233574467158168392441053519231899758073546525839367949032334917181578368739464317504226585236478856876022885142790299649734761581998577479838231371899750398679564786592610645630630198183709770034063247826369180936822197475117778648097950994319195546442035748273761790487614704998527995222112204693414230816132218626699854229036211469457570541685752019687669391807161038133914953357338245835435518983987460106193878835886653495968835021348952635724737786014097353370053665134371449342659916970272244058155628491689728656493103662701640678219880268563459428282127692482298051512571545319675775104115493211636820838662085326880997245276554509161616587386237713571771830536018267059688053990794395841911317535736294273431797913097343643654131502704029434992060377145696747759165034626982271300867591409137596763413052454102288845228920752786408632035857524298536885604844802814325068003632102161443152731871705891471166112872736116234954136534823703914172314997400223980122451624852796311937493648080763984208715520347340100521076025666308274648861938177110247870496037656331916070407083373155976216402531803071658631454282394588275880042045241250072214809381418064054779379745573561965747665456061383110466112505593695043443094206695688994574934687424939063265605582982413415047345682112002364668047217738653620192316728143429576101581489239772235049909375124683302094738441934200402288317074114610246879509016185459686281477342176533094591967339759436970545251292767489594023618239755832839741642885826427160184400846470967351021834831676202180949452279914230611764955528867539743300332094977743399761520229371807337033417100185237176477011653199655048218948215954484339679335073890049978141552677323495007535077833411121819350587823523731730401308750044009852230719354794615782463229103380132840953354430973395730716695736402075220571078338298942611191569592331504058021533459663426345882167539747219132086845191344705355428810532871265478099849274020898447106416505157793780272774822653249591342267103070199385496931970805736821852709033051262181187266893038032502244395103915741226272780050088439138777360213585899455984330831376736432531122912974119457440442484017606615150797158369815376080654443571871964800646422082920762651676913108236397388283106708336179043004094263025644425614427024587979449577245402485886073304183440566779562991020862426728270859841929682650925402217463139167973374447474197310418962204316986854756704000594139777332419465739374251285401254147940225531598517494110019666162197310666155178640884826734763211512658120237054146750926896787219420081587579596184974074048528040950959097177736487068119932919311745133519917698669158165445519641052664719777714967403268515683681554270578978907620531647231497109189204684653924780335918313885673355992034165576237942351514712915768944701471800585174411027752545895318171807019587573776606885814309647073383914964527988988834098984484742982789867571984556134336325244835765214475790616050095153242513587291905429544687743361050942479840546338895179206114452603855186586133441043209080837093587183035377298645290610371720447427677900330142953429876401385569999759146194012859820001419920920783762510598203244190727750157589996372153459959466723940389027905640013000476149431303686697704356223776787732552124252593388915604867513461200865625858000794580508591453887993872334894480083623889536546906445864595268814855347622054203376378124439937547780042297821449172372685539387964021545241821189682502086471319266897855520585977326600929543933866727611421087111550414525417025305156698055004808358853745832592659570948430981622620339028477193229640241226925246317927637203559188812963796112498677946353745056551586096212706383892761372143873916290308938937361095513071929909650513462118309085615652633289340068580104047209191942430654183161850053390018458178597722700437319420553253825935145988665213647712110837322166403582867429763357800680166584990390056714875509293001336804879158376061166375235405176372454524496263242760460954060443890901667005680396454542662123764539144756946700445663125296666856897435732170770965173258423110438476828682102080315206307084381027361977542136304892993205577216657205142387434563900837057776665981857962872108771751731565665024664214569485403156469412526598665298694398201066176969941163760864780744329293212667102245162088730330652567405679228169064142162174880811938850511559899413537402476716905877378104649330114192638616085725650856413565703053978150468531212658872016292164592757921350620175746993094825257418488768746714655738316185660441540761276333558839918185675157209587905536230744482639945561230907318912774882960451191067484733251711609070086113476245796153113336608935476822781128161744276620783744915529148110866380572333856666179763059636998978730008067962622733691609692220635311379156379902786203885127894014944320541510577065999207405842612506306131297779887397205867563138087066192725593963216206714017314750765000662248837400499404834246438515259302981717502084918081473200479433657275131041428594289576007590109448299628087258016121479127055518987736418776399018283323711536089912849738354109709200451561545386378878907134590092163433286167478288816678528959414692962572873532159109961186601007775101123687272673797637353733677511407048205404943165814188658627874585589704683158198711508624427836267962150366263688628103653738016745646396077365829217695537839641429808489789542319145903673449175426430603881104324883781863933915322625586859863086222197710736173787533981676469433870324554496303771149356770306734117663761028908197979285071326932060504933657974378389564531190841837779296002604992964292557016362133215245039524329569074011460151129347225351078564562670008410288163332760836247264803728941302815259715521019860842373238775696764014197618920292961072488718608229758890603793347671046702178901605569118808578593841711165632937120544843717809950843756291459371960589457364949793124339090132317587979157750371346531333068936391758732192557962232667718403362341720539785129341907095519752713538124136525835304072193035010147878639476450386950667662953887727373228736511334822829890631522137068618813696497924041441173475523969803843401053610734874109659360266941732029774998493624789978584279459948204445205469333434761673966987727424372924397684614084215908581028748114025707026490202376634678996720573702379492984808634437716808095719420562570287487043210628820086502150690191754689558192788432250844536117512640039452182660918583157423026257001064629606125616535981515017839690796798745337959604900511455432579605735796416103532181441818614357251789613858923377312480148463545122808288723216832634224038704975565174729756691466235690641509194084400862560801565346508517900169356299133025683205659460435938791403029231508102284790027806999719249078479621562701233321158559348259317263149616468901266279873782261641730634948668397434782680850108555334475181268120585736970068689315171297231449404289696209354280644873884010989275506894727488966669944845287804436346272577083015290156998417094359446771854408202662249027548046422626488085660278726059717934521402059968847129742349789062458557134115083002802052356819847878044712459669211640697843210231233597237701120180884342647441960474199713725778270275767486961264481551383853617914112553491529725810803118764620842065743765060846815755825170722297955335331018395304759451276968436538550438591924876881715653492012561886865939629323470990882252241441959098613768236637167174054180143681083317555482848786239757248994417943073912599898386617190907435398776061847093985067133420497581141545559844883922087782531477547623178392723358976455492996336930873042411872385774779423058568097163588011825758991276685921676465842969229619949535815012170444467922110236057806543460589126377649364508775658238159370177187320464418299706057742955487949595951216342717891921833153900683447056913182718447728183602111131375859870779028385765743461022998060562650138245521607613649123228467812626499650826632406729120927988984052574362821975580704818147351018640308311103442248902990818637930855312050615355061224178401549738322247884642074181167244149598738385502792208820133991014924753089453875819541612683168477697504955418639042434192810805489076785159974869660804715236024344949330911783734994725790153597770075029166409740478759700783681333012007687535394214249408616120913094923727010911028360000619146104742037882981214083352130586204843593106140534380527502361732885951618298270117687722408743626797001824104904071748866271051003486138763947121228554503339212008810056162948372555155666798287143852929647047471476618384015089601935511160508585892455864646268377090688211995742571916720668894230491650469248697553248762957857807280622099931544996947129482011658467778040353615109522059326661944087060224893622622457386389915446423124729687630937217635354682163942465245433605255060756066268503769428783694161723909008777271750257683854316468952036697537467549353670963613043220248009789837429282002202620008134757097604282738393899013456579980568182387524840803312360733015456994697863192818642065845826780129755402091641134907224911305539173294485231072689245895496964969547413731608220011272146555596362992936289465815745692149655377953288296332779909687294028497583174915913415076116183217558369270327582743581931587264363506608571363410039584075884565011752047908283500891596788942144934375388407342507439820150898465566261872298460253707916105505832621522328168173453472832799752267131187769297111015459241726105332097146335928827634624099338835618420542881651671075437451985556093003773700247897745427849371365634810156641583411724038464987472550201955535482394124193346603848931100705386171019607891041273814902210659004176306872184414714493880653608924202986285242293281445491222023872970416170294320511160624666814987571308479912280690324219150338295461492361005514137719875388737976144747090746921107902556716729611229629911992672529717322094497000043392694591681940027583365223206505584824908917963129251455756022085127042918389420887053958343755549383086831062509642617276166380777695520785891873789988896305955786426284510091217329405006617788375063688230568999022397650374792415083226203063011788488988308625075807781245195933488318786806686582276756482608442678619649092087082551984275192549111856894164732191095466283059631282639872196101621048780269923431241487519638179817998853181860404921627781845443197676224509516483481812330152816974438104783663900581838402965707137628624581327974974097131104185836116065622976368569294229338409094489963528646752425636128850684349580926217359386627961792186766792690300629849711557224007412884249572928605711651863636846148079473759212840426416141427896209977288799979129847782598450721746180691721052880501851013389411019559729759197362569377611531530684581193185850969054119026540211842472883592505610850503836621328366624823034810465169879907908087037960337366607363922689848976027220413450854323671125653065422644447555898303807545516402797642454367508676790242890256499097582032516925524702630009815379905286063748008798848956046838391879365883922657259972006860926919783154184882595262563014674709231750634315908662501681499124800360243234344031214722722478696464684540866414109736101537843550333769688113578619171566339112697748596113672911533717717214800742774984123103958067586042032230491349521297386536619701713701533856258383154637093677646670249498396149202857703502681685868396555341106546130606381211455086661621602084344532423459914758778400695617513833855456561611920427463496879280776688250282374179298551617187655362598886306949267148284012968638950999441232277023449674599119063524115655443900670541443107565901819903705393268170853453641223510875754012826051076666771118947719663883726234174736715614080365936195388405754396549162332201174638815471719125335817785606154605936629317133174654429198159081098323752315655544806353939985838353155033394505839466100816530809474147258743372574030559424308145231092309045691447585861201831817624292876507486015146736981919685241294038073221122978953443455016582094626112113566993097897716862210888867989487472109807199108385416610586824980098535234297141319670177599811174139112563192041473750940113693507042505216926765435573760641332810641133446633902009380520624715201516583690859798063788292060395220651648545823942138508305126409187821519080776586057681505049221032852716522296974696658882933781386210582181480222158022818537281720943507121084950086150541743174664166920809701902169318777190008736432786052984956610005858814534475476123734455626610448808933556375568364968685941355080212701191760438297912490909874767174250202298029932242194252591867071307728443627248991138556308731466107386432127489289856670601606466313291424855622823073620739924065874354197804034238530058196510274180764527442422281644326306204805518374127482769486912255567973772132697223451945517136198177683562213156084193393467379110897800466263655918533716688081857581484520486964655703135492819612681492354984382871768102315804724072647906965009699641343277583453206327660340442702506719691777096629576286763167322388134610100532465244646818276748388295372463515408021826404787143144068170869520858582724045574846446065217006498533052836435383137956287187701568067989494155610168621039787625158358892971630737631857272211226246953531223438094137310174622241762416217760232569434292533713323685664117353384999876434542932687303402684948707700768545415517155169560840453302052456067464015677869356612158175900550076824295946421964117045427381124373495049333441995485488144762679557568687337839344181518577024281508062335365839713684583573631483336599950439748398834614656507540225157913042348848302056183633344512955135870452482271356723498782569946960814438243098009265809337744623511187436798382253011602216963566388754421287976239307517666621297288898026987477604025588358350196276404740060868146551784326703288400045269226545999561580175369873692906769529709944541572124855810152701949565917943629080238144807463380900023263587298335108661257542972650337127611198187281221099379069314985455587328119548163018173633391510927671888849386165409764672513591852397197997228964021868603955641293046767560363523873885310843954922566537270366566123524133770940613599816218552480628671955413562624921340481140332468062488933950382820792512088462428875967173932556956606880276845128737580675983723199682071703775194430319501412010316407436133748774426040546647642407544071174060658719281329897716883258545786862103948818680452873943257516388580725597284241748280485134344974590875263171545944519572714317863453260872065226631769702717743952092595416306372604742082850119276218335650243305881228587559136581390644523326885161731676126849311222206816372494739247015780262656387130949867364811391402965195509824145795694344709819882693354845084510874661479414519090844300436252079766129295888921632538532690696203980747681138525521925962705988583913086673707670696450058802237389939412371416101635256402756613717763165088286925204037573476113637794504517609146658261488045034064255233940241444603426566138336471391753997336772256604917620847915300803652437714782988710425068326135309302171213421569640796131035701546488031243488427834945731904364100408528085152406878988752366113754231496554274426138414020059471699640152303616365356495120541279810386315669606198554092162905722802315949992965169854954341926932152656116525156555916855244655769209396168943739187162412423157242092650578661916067230339544121183844910493549773816299741634356674743731234696677406473847958192010684464461271671975951500845289098775554204723276118393995093266029285179630135948766234814494954449094298786738838725662011235691096775132596063978010771174067413023804989239689756870507358367838674553557144168104677207584432793321541996276828893827530791642710683140429183555741687164381975859040902908537747641144655125873313188172145378772567022683904128333542449172158111465038536431730291262394413195123291687556766042761748569039739358174368764060156871597987390333036779786727194624708822943447715813243236642757750122895096142067552598690284218651807574931766672776012885001344836066563740296504731137242570764320993484495012770446807276085565593375774744884004169610974018058384140263673230887303735833229139243657298420078796430571937053321257136234787586029059719377862806151848280319016408668387335147152375746426687835320679303029389003318297967751134616641540383172306937465967299005079593687925957273175021919486846308921458029685631653533891215117189292819012080647863429549171977075689644957467813677433394578811198652854408927267923618664037709574614057577126607390596510126406129039218691362103289130992224886682047759174459675765536991181925382827079091988998275028329606980487643868176802743312381985438433187312611621041081629918803054054808789423856534397134153290333085593561066268333336679891796588652433586942895617715292412394197080014618618351147589602560394528552041546379356231164809782394877407683173463205791180071249337814987537659261341415876580735737133614869149046464734787701100295887370282678932721585516018559010981667412710169908642511023120722807951483025737521123365031890530947192307604653887599776912681384106474897130493948548841965775468401296269910554362075264446253907751170285994574589998981510649333173959720856663318529226162409990209893308601193558920305344339913993686705335085138365243553626349875329892729583634773435119736071179753801189643638975792895479769759490569620323916057376816128620333891232274965095822473155289145136482301817925993676487533455606137015220828534590624075459538166181243005747458055364936786530169571260541077093686294065972409497885907011304291071518486164446446063420420671807430243802282201561700545835672105451197270394310532060313655128132349795459432133391377767834134746303289636135282091704299916586539689102252324972677449636629328355169672643169958790291672072392839984424331561968077900973769734248017309009143083007784139717190361923859376562627262918999301680306649516565011220467322644633477302882547409953912324913525753731116374084494399706868957275834280510996287195390401692223356454782230746238082175585412553860361478192407547272592198522338558348898746552024111571656383333838909173801440014198312143979325926656068825948872751320959635329756382898595333122473865492550695615249307989772672494355808032843566197649650524351987162929719879072444622055062693342010975734720034087288035078305417303347181819471145079388930430339487212898654075819433021068047503001078537070809455808428902600216435441790818027617862161528830053529767142462518300907630010243673728157715828335288408066381503513128078405019907536555706888353738102540425781863226581323636458845173887103227944406408433617921015491710624287049110802160079171268415231093352158557456068416299932408916297040689007654642429544100654544818229534839282362567775738577015195826436189344663171218544013612052776472818060043416499042924305141185353524502291161826997106252014056935153834956537831813461139329119376240801069807570456114112186841264704812182120360610189243684357207398243639059837544303917224819950747625194170978658786500881056474467777548142956473995276304999097541568747753214756465864084906961286359415311518465550379988618935719025159364285199739215133185447740658782573170153302155453186023425232440896330934203271632198032083215354406551074093835279144476896248922877544107708907071307809888457744052960772359401283263811804674143124607952431416331406568827718304191394492791617567424797307097197358112881016583586016880268650146455555636826078411064497770338406954037770460666670301096469840289461144823898359062711172057577677660176080502501257318513447137680742982444132847678374368124201386369310138706866796677803471571363628327461804965888045843900351685781598152761817803414865531644462870343283013629956936081216912116337407576608476862407223162712352951878660566141543844577975577744867274175930149424631803442249930026840144334684645843621399164479970785208620253982430128392844339915152107762158680007592096811304564538325137180854246565753443670828974503510130734936501221549692299452923331597894045953963137440158882662629055951406426038609972016871919792044118160351804415621154647448210003797129545741561544950536026355451318161682074894367965189707817623868747669921406821416370491381315972035081615205112983443886163817809051600654618950398003409923546376977412707172260690442343236464270143367012358330198357200704294273859472307158548147277152158508437906264423009558179619048402169896830628697297815003456974486528179222043616255252333763041711104373908431222138072838775636758843144944150383507749567776464998759856168479732906426326512846440779255247927788793418494085993530224866622372603528106375667469668633547117066660472000264626498899584665167891840579451670421607733747998126118645030356139945178919679782755486007652117226702014968169586790246574167034939280900616582427398188098095769655479309254947976376338131220493075852383069770969935337980649170776435898305303613437069787072892935967349921260109120555351166263556440488062235563888088969290111060254138525162853865674295362704752871943429976689332338406336932042511917735102588531306396555613676377282515121221640372254305472450227192348822895972343297150805964079738315575219987807057389221367445582387649884810024764455293802688205158610315092576950449268021176491580480366980609765027710714761283722390264713913650724231751940551530613462217122653827945545373562757479133373405078815807233290040970852789122626626274538537045887949663627240602318132224924122273806276332294064109395441170564272994627996361530963943610011708013059240371165601389257263724366914039860570900173017839766701008991144418065564211718137541452161410367061302993237217034209193590524973013089299548108323174258190558214987279110624193554687530167215853684185383867205859623751661615194879208360856207700934042241892234408550657627423339880806223009911150239536508554782137858591682891726288936290787610340472577090716823898513722472158971901538687825919718697202308917896696892041766907089985590112168609821551519884225442058084628950389416024811167980321593619181263063861172667289235865970630202916305703367633426064944601676254941312389825745133439443102124897892828280090271503324829042964239798652688287609386456535229815346738613804143314810858499642858536416026068781759318351017251647110196570559905209556824920170794663077036731079182621120529118185770225740033233501422835612901767307986149452830651662541520037784820465996591296561456287081922670625519613149738678431641260380984483524019994693439218717869499348537215654173336525768065835379775836352025050041315099586916532080830424323499139656870743251707481536500780923516376235119359577007130000243527039826755437729336784661098561691243063987243714353394539498830176010445737686142653737579132834907679295769214843108357825864220399221288243892622826206851462655579550684533593311695065370489692741230384719122795376070054369462808450150090056294556398624237793741453567465072904251170515546371974735551724045336576462692795189335778486243462516022862344144205981431064762709755336054926667388843730759904785118389867337335791095661278469610810139481389652616385781611171002033362813528310208273130997034730842327764682101946941346781597354711054664562261325983518843124862309819476574016298951762274474689028444723278089729150165109760713073323601589861754875495996987582659135637898502152116188770940135870550106971972733113312108983786817477300472614560074362174873167462191798664988219833608281430505101636771496347537363809658010339967880805570876344949533325170356110495838308037003449712462560515482338777570413282599732079909090968893835642540644618799448774540566614874164343266655628908201689439551409169048448191727837542955364110503473662067168724981514582449518395664151431600699777118162143803300136955014294876493908917220306889738985092035943671544596437716486789055013543413640445740072935526009834667963813662053203965378098645998369765441717897264689605223813872136042420198351312248553044520138203042596411366286980698622369523398645875085738365613760448963470300344977051395653520475881653800060808271432575819089039289199608030926730345387532874739290321356906885636551715289253331186737312419634977322944847450135197191351747012892423167778669457202596599160718873575094091548735532320037678416152776667301817425980353571377246422517731086377832222981510117869697126941616276036120924013366465749025286747579426758072248806952941731039321141141663363422383166369802576210285833192865913525089687316327265123477041176008023173590056947910947632269099570849283448163089778265689010187823649495232370789947564318213931875939670298304350985281764379305702622927866896883337379403722205495920494266711108567438910528740916381416331111887571914040298264596864058883376092841770464058685643074672228536060254169292491201619937135459534821034042950655251252733511669044636608109970334636503813243650255658360330335359834725525170772260683478085124569381714905816843432825671235832764051459442943418277382776955263738752214397238257586016243246505919950348998682923802499385337685849248769939187168866302194321685855000377008605489632246247602356634105635692071679600052976388164243166590620179785491376507208356529297935957569063449415618416062778834538146700958798065993118714820577278994525225663757629889769024996195887093833262453211284309580492003304934623099985701537619398444610960489839196615043353531181456657790652719500904113327481497514631139176250787315367557510210344121905563285193156811256337302016836561658922358446144825973071998395087992962599480321385548383877767909747443367720140694797851188645092002292001482509747929175504680552043734649616958168176214617750737484434633751160372693725127651540452616140861612666014162573477739611110886627010642201338547939733890320232014475459841980115913685909194245024066042496613152597750947504725679824078661498302008694199972911859056276109699084539390052833385546550251391305809594252712290545076740545184109890091821313008201553986225919348407927592943332595416457636501775027263554889485363868591826959067962074049645438520298459612179306531625199028041668532727984852752624237894674017536141919186735100372232962096421107057353052250141440866774702332583843305357013471883947099172223144382830262528380065173283033192011648495870520581216619451374498250772132976528204738522180340821980952561533751126972127280381293653339441472406629591553181014330192305416198562484954897122477887421095697173791534001113444418947438926944072335667773707579888063464696546630888315868210429442375916620577300154599215673836707753466592065111750550670197930427560533110485811746865312251369218866257867366886773960760749575386746755936195991233446574618118364885644076484308088965802816614231830362869487289356155883402589188895393798195517619224182789280519374375262235095376974725049461246329676283947609193926922663265350591534819395814765005981976197255680099237017340730348835795141651760540058631105539778153565680120957310299691989345439175125504993164398005096327891273384373590188074058594799304672097212431513259371364916674206603879144901372445289083555930385722583614476363374051406670339402342401919619396477193475594858104528771846653643509362367284336569786704990758582273553178277524550331608357842581677735141625088332932031990765656075044652930376383319779039711785033212124296677750476167872131319514194596791794836957412843497829437068428969750365687327033409164874975733195616948663966589179880565488561778683509476075935426120751383000620162284995133469297125787607000888844493940589219460524173402196397703842451526895588234187367347853833605543219284192592733041972872735256598677002461047388266865284814729389925045535983958314013700383525562138909662694217545961786197874012121808816706337974464268495018868506805587775038271603577064667484387660659613686108002595734117316757427218541334639971254163972461225271965115174107781447645825804354677817698912190403718485585768343550580106384032030935703035587171506375583159472669785132359097753039102621010578443189916481959689091255212481082987148384664916947098886356661836814248311306969090608104631452217389768541018305449926299820982380560618959750796096708776870175388913154853844648327917443732043265838551561232486488054111843457181003613190017311209141435502548395644470539393348926734220519153873375941827255328324509126060448057860362848512812357637456464622773094745355470856641662126080959233248011324604265109140483502854283547390519715991994528698750937813619874521237927914307614270557737038582882339169732814982735134192487391054320365439749796902467032101955999339410158650726143896924202911569032332735884440090019537872237302818582758509374892966890498051099333637434051745178817499813609436129668965906470247963022505425175656477930499358681855119254964305189008068207971818279619677186771105968290975253428126947628792059960691134018649843397893197603591362054099373592517356888576560008837721741484541541203001625022464204489543341457547157831020228682039340030520630649143579906535959233592835701218770132708036445660419567015546930122040029166008385660241607797190803560451496605980779372134377645311380827849889032690060063534831151704132060339975804203406817258495866199239409286201763682009876359240683567021343793053074649354482695257148734334598835745182603386056062797991683651896137416592047904979147685319572925599590868156880214525293336965967719313638875796338746662696658480410442357237121443961367738111300813268530158929026290662749778163695866277168597060243221458739918731555084764610293185764581429485314371603521761722625102343410423202450664162884619974903069111844367857959413074947527231019987895166836801586138427758123526634048287127463776681692144945236511753037581414504054104451107651938486153244363596416362452108741388658657416947292109292774292363738270360422990117991912393539310872884528742133855030713101851369882181125864781064537171522787774241080707980458561127415528711107756754998569895993623321112226421925270543961554364576229551762118156984775552830446187043329743914141723862613450930914223378931540601180577543041798929876492889908435327055882942204791088958969716269571032386631752820253798610900835484513407880991955462135271787422772136983349234182830448560103778694727306384862491979263192602987891790987119188285665912291084279454140380341682382822511228584011819359120366584783922975058158691351070785412526194898643949802619303910906017159800225916628003699116556131910452490578694588219577988759460463503304621915788542724608076207766767777636871321642389035807408579681602594622742615295959978310406514098002029998572538685961532161275565351777484220683974529293812931730236071483155290094483395040519275118111721125299628907758272399405839605531521089165506258993745633456465488372508954501824088084090033689223453597836526377612521778899715208225374301215401076648634831108859282042481359252494104436020113207174494123224363165416799180598792391879169105742005356408983471586386364127977459515010928075961862416960174101797744064260819839915704231314157314974973770154578032413565630021791459863021235542382206032696987146159660426383122158075288150689235152255367712891747432998530198102193492386503954625485596624314382860703811857197339123498939695267998396368320106768807596158302387925369285982992841628361945874066619012402385689842234753567565488740506382610777662217720510903825157532195204306212491540551818259766481509308633407592764898432432055147811177809151681430814696071796724701833344404041497109336073831906673710459409427032522989351643237160641223497905070203890926812153220403520570901024793805271590990187640789449272751263733127039636238668130248167128366695027277924342574743574403057217798485869740260354964248248885774035717180300359313653066409345372419356325905298337401078223027996950765775270643186619823854214077000686228538870092663919703577638456179989325348591256136139113353082335423713078572899558394768505618562809773870871679641718061453646535280870606113368626670085282859274710552473612143883840530982206251571045574315940053454689511247637045816439389623260438087787361632319011152369828556909769496627725354971529207173545945395570062146126216610601081798520207146645591042900646481361934782286798841336943787361971999672055281105703907348779962137066697954883635875615112442713998656843416572764590352624121033395274340067220301975344170128172839944745954612551669069048187517184517852477344359360193108848340696151750073245477611402887855098492966436528493489384882681029609158073490332940879229150942723096846583426269202046492201349220471108169654952748943280971236761360175753064091091134908353937862040830682159493250660854870173632576444411269809307327223892051237251703577262300774464351656200308797510783321705825210820055311597373748991791897259261795487926700118734621042684053924061824724661057980209795834160469019426371925309026319203739346742313997092835145485614397894589827253819049446460863194538926497554582835983783451148526196483481136979986574601580476651978612930701306067768344245036712159757780262845823743713226986212867720930763782527799319670477667559997302015115251631047165599645020946486769914227480217487015212484192400597048246385260274177046778266008683506520815742366518576934952750169981285207175393115505267389591319346889869587031657525094287405370890935386780143807393795989356743782962658146402199599853255693078576400652383618844983045882163719106754307181281707847877183368924372303724102452934242399056345517348322778125913895276324952454532163407795127001649250625608915880210893220740006903616477732045767782746929557482581309408695423922164594573354114083246721094301812226380903832863927451431119393258820400138108993490643158559110135487515133701896272349441903014093684724135912841260355019622241534025303155138913274911947275242053832827943236176634025801258205451449239034198762528395750181285291311481843404355923953430275414548269740256943265139239973419672680576587941266275594522457657181274324022486596783693186419933322998406349862556606708275395422992429576980395932180831532732210568352006687959105283930094972534930769250407535715114079958068594236681774152251947629863018862254559161403307335823592669663217191876955579300105880197844892172874278335125038655460949917603033486951463338854237660868430588109757365714745150957537970146814972489254832154752796881832413354017978254067242447414984532090117769666872572881576187058106308066535612741958308033787161373646687938414171223392579726669390771913547061840717912417267983194863503409446880946085232993807008020084941791056451821158692990986914504868164042669130832412300002298732347480807934399722191291363594521391982005865380771773952739276658569341903394011727354126251116017606545943070018753252893369885460841671906229591529977059973940080667264128503963127015047131213453905525697127309187371844705954849164088864083785733825129038555881915457442970915714768000453948858117320735565740042975128285038949677259893056118599512882675512544743400136413818506612130938060939571409557656653049405262751800560498118476606287349363205060071901198390948241737005140811361152879868302503035708576575230876410686540222790102491610351350277693103551893818211984598007427669308084278229318086214182583619919760477720011383623231833107484685903407826448728219935921060057200825459346915545665663554485161051470601334025653786743030042812151558812398043834699579320808145930559386567869280354593580344143154505305406902975327816602284444179846369978494452921355830970010370909140198133194488372910374046232966771202326371819162057029605748850013301155951533037754505990454823582671615736702400110203854373478492085923179444298784092350876916619801900255032473421182643096244615283349037837349219801933898958596222931122402135776022495780963143010094750417045070386322080593234703870028921412011695264286723729212677521080018074837001950048134108784453458357470166980523902207246977025281043125841217785807375471394621095134618667604560033155389823198817195234074299245558101994013389611589949105646149133328237547859509893026903597790533990282467286351188830570685388954468434207698846778411847229539393257106727154448004579080834367607802047477175953123462410956750228327777495735364014939155606954933557733224577709768272034987719012674245906372360419083117042586004987554879269708850957159045500932400544714030309206656389439205293824070644925719447831856658063058154051555805143388915299801232325357130782240530872896833677137140290039055521743251488644768528913936971620758093705501126427329788729676627216040876225913054697792485118716901338871878019036722597767154204925468363673220084148507182308841778426052263701766791962765901842603928643908369656493173237191722085943278353325049036949841365471120622134895182767163465445671504527731748202592724253126465091078412819419505277772676668745747923777562558399036915915915680373809401305340442536729017669045979790749890950947718502829935376202068484878211563637448419525320114809917292352359298565373433144708362492266003699812128084137989769881726579623200131643927846894441642239765505365066587586175033193761424257472822993934646005412785769496309770326178616086425612532960700151570663917003077055639878289460035537974778371169558293575627500028210005369284327630293038841389684406517053361309260602531949202063768230566425718038706621276175230217197609102894058015031839349897734234937175322774628076607735853447556332474669445070953369878983206155027415933941806154250367984518716443972162587770822662587719863285669167495673033975313431323322646016786302218593226113747852097162732257014326898301354936737432172783274563028972980718177165994667609718423846664251230654312577562935464635429121875410027970517352866662786279501414231158463613663171044313096600894610033457498392700144168182360614671074064791499879646125003141285114694741102842914520851978033872117489593402209543270022715945996328509365380718488252138525566703544634630649437632045788443658229189695132007207788824430738769235908565578356768957440304096612927659221726446039658746422295941964884691556839081709053258688866312957044165656224360774697264960697018659225459895649065561655505255302744423148036152430659416614087515096506954231299349174061392320057855678681600847929821744176690581582865150685043233001803217565021357995651272184995537986280977503203493207730491424356421169820122858643910128787092694195736204695320578533010401549679935318369821129835404122579409897972023286488088112579459950721079549696168783421851013681301681457237930674790250747086240856274577636267822941384496787889569883877733748554256961920158840513809682460816103935358259240522707448203404276167082094095354659826917914937760662568937950632970065515390023377833457250495893350836864909195073221476887100085454943854597861661027249882954252070675158856290472370350955710318758908063348312144824078028930042834853270958790831862358680748660562809506909287396658671133590620444588094269112475399675920378075214863280872978700982088544086809213975996196317830907932413731794769617461720333757701090088924637166699596889091229779176897592308257928706851518649457989617547867954097637184379635901335679879226529842259509597654919649524673312161650195833987855258622385997289213331111710267002687466561588279876342483145232430218601539332105593491601141453242962883903487287518011249019237167711982297785229606999714937070554479959260466421838402776425952917510295338782359605197358421978610077156793118991984846150400525957906909891868773263012424323648787868418321635535550533669930758035715693534429012090844899100941297168569268153260619106955612107094120663114415368627736264005917020235964731294197435737815169318940938358177538906752076990428906325457207654024506652654913572664217626887289242079852270221620726911449081399657837090076630404880400406460937366905698034569869478907495944829750627263942501765119230437414739864060727311519474203303238098186305717122966494423794856380298049429722942156989668105029576744484133062784425107283608685794608223654809347359621985878005533434842830031337572549852735407521891542582086423041443200746105656221137852876851078368181855401274737156659603949758028376040106585164747442977422936123670175329187486917804093692667918705485843141380534376562874882882727690901684979451079910619835807822592561384648669701203469138675110381086283913241547492093361163348321558621743719264758416360155735535059171005142021460920508370521111538817126962228432521916902483088949340231551788701937252696326831862536954219479293976165103606736538472113173678884553446249022941251635621284392449937235682626611758600801291939848753377345053956383299956018816493292780330384267164491812949094852198869409243116646335691650232235631841235837928778033442678057551540342246520255500662465954440837169333643279707010971725677237959082899679797073071847466454790033805802727505585884246978868054816135046689772713538537252339310204997385492644591866405981056834578843250269586070688727610586718109530415927315704165706716917900289733045472352321443866233709188681123357149525989245901970076754226867242033664529022478101902362830128119223623627792607391557432127611939296309402441250226707635910991033914593141409974251077732592901010824680494467709161518257977263379761769041713462040442967379305626753728445324795912761281245935379133253345911784777753612584271171792028806294130026648896527076363007663308460487235482227344265994391834704912738941769456002118909069089993324771014643158004232356258465759416360026829316228390854648802385084476614107224609651649826695988832311883321642548217162979004515303917701847548356467536039003986379488984062199080843524222567047723259596711729928760191254962093946056383952032502242475961758924425531794359193648417191520918801523869529410123902743362860606542264813723074203335476128298692337612989571194372811672768016776034999477827358908663505607196074452602251389205721504308226791487967775996156683770237081083366201448649478799021099020642197983802771616188459652576841512927130514061564408260997355334495809616850036895773085008242292437915606585183868965442694539691059143600569859069340353001392959451314148189821132881276240993932548598537248545094513340188279687432945952237723552263769375159088878413225549743402016044452298941256056310619323774102861746020543727045273447985098883046693393432934428311687233187130947165223347588011711830421927661987661649293825464720311328328023138051947685283003560130969202484599252038923056114284879730713684068312949197975453534997237814899373594222599804078601701148255094659164477018050899749311616069183412584195036726174653315071788069652939445348157323680812217319164105196377496461806387369377716908462247182149048051724830264955332872421502770056262337182070378836068224945725494033083944169356918411957111912144096030374150823431456728261292823948531293165811876075006794831382251934307807800064676595998590943750143846363874683342067047169150523067283930439246384047073122089676134665483797533969456167487805118943769501768979724654906480100952376332494335376500777564725849892394139300037418093075539850448425974319302189869130873249245399444238506279227182664979870859870758023779449845785027167855388280914138716474028104765139280706394151647735568082573892562519483483962126488425525002449411016699272527043987680357539796729250652456677271738651012040457421269286229081160539876960839701181311498805587680384862802861752833249616304574088119423988607698703008615971735351619385975516733823207714775760907480010687366833577773301973992879563863299083859950350371879633177320703458943934583443896556468919380721894290920090602290490012781058961323191196928878234702138831622896633634282065618330387879822445442680046678805945164920852284646862460905971049358267399207210809263907665537371088596967520865871308671990098130738110432021943554926422546293783460613077074982961399107425040234696593840128543075451325927639820629568674699780895959905192830300320001496724801219875473375412594759820077590044957458932523887014688537351606081934766014863542827112086488611789686845586902401307745720437771192173290526203583925435492672601058497943247070618083810456778804068273951403390804329882384378225425019217529476838230727815920993421614103206862714299813878821577990170830797771874368814618032760930348881741401862925830192678097015495343435948777404417305689169864077203082319416467723292399057765663858153073398726599072548253369223157605546823424989651205461014349314002297795796056477830084933173373714390587076700339340638076965454170270874525686348493328143493468778864949675698910593761702835808367821321129248573549420903358570711911854948312366252156670151118972547542666124049447537440879524620576010849072909862507095506010286714393254146518239002387153261435670505016866915976720104683440773193864629447858395588398023517973487663178459084121736613867519033664677393767900601688752058388975950272295823934265994182862577025634990858474863736559652290805052150398718160059774758015332443921796558754034771150729797260825635558484402241211490002474950841358296830910280103813885450505222289858932230424866570353591224945354892533154841850852007344770358677664634792246599744049057304137696463599456511142711798525906479870640553851313424308303537874492961526764512672298907619313764135204293708878503104336307791355883782651238453024112982290492343204163413368165451377931001125119701920747224419332916107823678145565881834666105779166084064219778141570091181403116747754818716719109617160854459981397728622203515725379423827635440999286907350605225737059149261195165144809241125374086834108064937545743366046620046046045959931925440129384201287683873582544918563490103272951580697602122208380705550133617192614158514705407005502344542467590908128796117022572597252203594868901650736733057426041759620898890862384884659465845725145782426502732749967789555394371658881958997487617194633898188843778798640850325794221867008953509399057086766284595494864770281845388642892736196723203442935617219440790006200783632200521835901988555150137798748922748618173689829473123383537800067578033430741013886971590944636992666103048690355800000190177250507452810032531512903543750466611099464208978409290225739245066997653829287342843183002259856794439649047056333257539059583597030078375124601239581538788876690050756030981644399360396949670928757774902311001526275697770857865675694880042222104801473622738353217116609618687067569832292659409422224054052417874203966674408019647662907660508699399672020355558221295929246692537349433439529035944080012666834128988812553621642918618584620352086879184157799214389279727095940651267257627251724252974730114974853778809248240803054677627211708426599767263137552422379543963320612502553791503663382963595736242972115110409208832982437700922026067896560114449869570185737620690438167396971977570487572698139390876925651905372922861827201303866182811557464030826266889058258877721574458722227737189083424806606187282964629793880409993130183964332470751169613945645621327470076667644363543518805732782294976995884532404033795707370500186686942248374351988290649707645116836195381554410639227552719798363060148927362156330741204090275017187185774554137176036316043435144107587533081299386037544563069922972045761591480901739163581755762755440878315112042673573850652105705306857010037099961477966538934577293080491496154867059859825801964858004060293393812145385079961549267479497991943553888625217103277840979032599964583997852588422355590486597635611612411997697399287387930044497422644515400748155378155780886398036275239246951698597889071269099419544800747469331006215442976488072391326755115867297737254158741509869970281258310749721617425172360979491954326656863926056910622972428133177712304999576794486642641163009063942161931392730432686856061790528785066659099094384677152903217725318264200074617883693546300941969953242246888218698443982994259729770014287023947514097128753763143485087547412364545990820304584441883423798035645351398828308066487669386180970602939686565370078286392408033325267860848117973587486288902510160712053470079621476576934162953975164890852008752709225553637272664821777085511768676470356123242664646820496313812211788623199827928380623468155530112530836234700777933304547052160724059397549860652312177470642511181723180272200281786842451036776279974362806137314186198855921793156979211486579009477930524576275059128555174491846513449598401420521927891572257065342563544360188776743232846721992167692481717497565502806953184834990214878341274977054821236644682520395865254952014486541755071289913709236642390695359251589828463412431644503255734367900349343647468427583619814862251232761210821881285597020711692711790802911352903805405601309674288109069755082632225101628651121925187327065227060502032903355739655915208625791103346535795890110575591698280579344981137375440337682001268493884613358303442568793169386067274383012243858373430279777559722909873093375878884397144085371916701172886147831547796749964808179110227792315125950808131641812300868834341919226799119278648719119174188172168035956940311342478724852363645545309635918156057346185039988386126958674183249771569146967727024660340913366815660095920832647159130937534869185286401756644786543836717808314700007058327124845977503454632537198360057826904448949292802783087053393491266550987809966875290117747418685148245419287206969046896968866474839434968467115944080250296250641211957651840927204664296945823942975573128189283312750614107949645276346354468247096307770126669165586351219582659475063767861727066790249613636453717552177406241335946227561223799313689153462850327804202870131966603872019650259480684409603838819449643878295013138254605445059645120567864627389484181856977446126495904891302759299642694047605859335395771025153117385085288910169541288546529790562908459452909394404659425258618144013009010989136397234403067759405199716145031374811472832934918538536058078734265829883197783605769996608579436716146328093989251884756465878303855132862316652048196018632057689954332211646862972396369830636580794290959632878145269935421667698730724022285728566263991018183796842812450826253392305575320781984459175329788023990446359756298230331235523345298975527425755018299057103264205510626938359540707823965933673359391780793192705002893070155757945846659454621507385308324607978651273765950912234243706606080873011002332078484270275058509484564887884251317652478689979663607279914893761215354065906857379240647522098567642255886902445372294460552288674220389382625282007328918256786338353719248747574675149515495583881958293030401079686303917417144411260311297969882235842707738570658289750816386509823994804850938872790676438461873078829214307725146040293572644459684792281659409753533352805222484205360024619972717096404486632380505382164100556513654945195232171652604510795790462387133720975731726949653697314218119241444509637889995847408275911811332662147232769923994515049171273440154822495688430530644137801343873542613755188874351983155427852280427520643017775584406021376807764839599151081318264759228469792641522735161261178461220356367258715479973767429831999346410842559773638302419934760771895925928308685365034901643747571647054627021372841692389673181262150465009086600015050239022742474047381320660411796352734765897241675259461274239026264612752363799294030677108609065301317398201576920621699102942799582526943069750262357912181517493578016265813137177138317348754104029395967173053471939319113490854882456787277197912830798106974478994796460076846104578599795373437963896301338647252989257102516002969406531535120351067736930565463063935946458333220704520193768443851618114292220023010043642969908878102574052247407660852138292576431536583354465970713909085317388027663834163523934664915170318828529674361512452503804609436959050127330846732697250643044970695573442413993759287007155254786073889115066976589631249475291245311062961713695888739919704251721652260697057171574574932345376507273479163901449313108737266175488416566775022721978495602135077357668062398152327826146044816135440391100408962118539262815289904375295264829583435018529155703496567492179599115052760106102680165204682040035940258099108226889513483238895223613584720210446276624157857687727833856105961150921380462614945649396819126776015256032369452068753960059194097437672402012281201828394398376349893187603500785186888545889932935474097094619863729781537162960584983548916362755650966829739839490543649746308837967196050422413011370449771888494822728995563922174388673444984905800418152029476085024357352704576542580959627053930207726304244860978059185198694317591182976026354458299960897996178673381377507997723004047634036194549698409629422573691772689146126210018681858407635422011618709171262126029449811901849952538142439791316802002762733654011298487162776287386140112482980080152332449392515602489951514724017257698654603332769719733862394910190844816853675516988009252796352796750137685165736403650190062068685968239417625750150770759602859412656332536654401940768874986046296694879168454957093617500158791766251922130276203437362565363810250714078198193717215367468821395563414781635477149750328930702507957033016125955048270646278975119210729706126063269625743626635934041969610556989833589169680994075544459099379077585553430045675965072018360606487855106428912571474549240798495592820676210459593261517388819091636882813210941792812644326676732716540795459854858027554999948977779216581492954571853775595094873378235380619297802586795194497741823974313212074047260349853101129000325422343078522571033039694948453427344821494798075455555643933319718241655056811228968412761631698731590037708199846355308669595181041541459112646621886288355472479077181945136369951629715977876291521660497316494241187701830591001458356795013854680774149425544963717362204899125073895223685051760743568635478188635056611820031041511028972732022220721372950658402982325776155927611081094981211777492847700972107258692467766768887950486204026695098239934355950290701857114037777938703826148740634001181892996201059261121634607916637251097523107476093743471887439840091481903585882851838973033133596806627643947038650222124213334226975412387668573289547673486962816620533661861854306161193285419995818391104144714885053710921018619038396705225476361367304333843158753050284813858410450521962487762277363760072218432038022403779891422005568567421228534470168428034255283979541177328888195775051203608080907071135595473168186830957901353549981190201745084268308076636736598344228499459401550242209294561909274828404496331482572227267067332370380527430199504986666400926486299145486243200130989367266256772130058787073349583265638873815495992476206329621156421084351621227826785468336688522148155829492795327411404788438050152329475226007957400143781749909509407120536414260715035442184589789885672760412718154001621297772480629276043191076141709317061307705711585288099685141096168630203223962147049863843202008618374733246682803050658907628873759474100701878240672401566303770102164639291456837874453798557378751615165322793224383231295301133640567218170403461099331247460663015178326401826171129927971289644205620031947329555507411547416224128945079816395952046812793476351014804666191826094595904021563377064210703386676972840697337912289884758279568398474932460865794121466834386493377882733259703110053235072351640377013415034821371655778212993679783888329804847895693686868703577560785070659837694494970725532478551142994868683780251792062326284232670618537821183595556727976773268965200601340718305170351382357677606478074046228461747741644610078045183021428528196878692043643167011654048831545892291105868911980891375768884691865392722349630635503360912034419216416960194335488078797811786698175080686248757122088413604262540338785788487379402760408635958090801087387528976098690368638224740333615605394503628206297627984481212655143530365020836464723981958047565478379145361859516050202288407249902267104032251303982308564323412567905121835048457687731523964377796544406483707604931328939967270959626535013935607841080838935313673991548972729857911622019642395137137027427483658224181436731510931212490597485262494827448706789783853868379833191675489510286798691638032927871697823167297139208761604627831107353607124193281053289899892096296792082293212356835971691962914830648636617213012969881178309810914504273722424743659489970344544003437407135519101239841073087315871454722757101010634838127306165074385421015474464114319523540908887559808014738444968641594850145531173575119532297515650247039301916292162264442595628905022756391871827120549027302130897022831767871568059472588035683070457048688733172420153442824667058644478739445969524112235747478726671359951194182251175442084161841747969636669478805189454318148842580387345627331188532982718252476724024459956421930278265889746405962606458548981985695944438481368243326113963903281911134326037934521118085440915182310739685947597186386133568858623109410706394484413264451109950741118863055850784324841225021288125884572911274044946848757753680199015558118575739197177375108742050556583275062112382771865363845459614997799774246605155439396323264893619844021439448266047825384987907532944888656458424288727163644217850775488447415759996134580394793562198575088838264880933626253176226151106470625297871953705936075980407563356342127522752526914519273601858389480145424724180748126838375675006140771816478950010241324621892452350759495538244331980073150540043996851791006817696186800372206235437510228060770457553131271046513502311804952873645803437680438919336955168855676968676131363685850643434267758440105536851401833615347539321452231211289510286442335066408774435199220002084755120086328714149375941858765442848717164501455892152978338438222592385747320337379306636087157280926451215769492388927761993121468540585499531391858332343541105161687060407227526155422604528358044653556960439259511088903211610140398844464437222246307044890369980936247867748408027909321731154843945736931034382998518336712123222188692866804972973570907665576938139045240248125718458844379029686440614565577074993101961562444158101555533674593383662551435656700149504456422217304802729028586553871545815046767975311400360863982499811016598534539269339333729858818333388517471301576129952708111751711572174688090712926031514043477229384273489973657965706521660741925897854714427811376805939593433003554582165183153061278390026641573695891695976613584316212283938556470154516185016237452653823403343114406797862525246978462268207440361939673203073767546675532817670360862093337718944282304242594340711760319293546361891832975419139069129700983612207235333958011201917842715566855221822567386069723689914763275866311727533650930327010636574689681598164104769528961001132842172839836372978104353728087201653139834983845306308636892122890373068118801514309399739446120402591443120528579390064795254000369432259780065258120252688566273631126713901809005774342163272935517816268350222766808053871355004744026804806666077758886941393382112868439798710908199417803396298929371148710504327140798559075332376320443354033807275201912016738537410765324002472713045433094334278075194540867650681223256490647344134570573327486954008333616712965876451412834891016832430737927437066015929306943780576632810464364389341075266468442122573512731638852800567092291454560435742872996867551897808663167636796225340895156908018961594076054033519258176465393998281845737955564139263752624828820610229585155782106929800135725361754028866607062665188453325383841374390961141242938359284089387292963527925328381299054414640294429329620049646339958273790691039993131999135213341506599056643935103389697652642027855301352975544098388200218406935120825406689675557880570554047317075996396523189572059248572430536249124717239878476233593285531525475917630203537327134233750636398819229705659010785608324198311223901606553971488722457645988882547788447261244516834175510502295852208758417863511358599984743325230394618420168616237961608354391751564373102624509683690701318545380749286300081602559433457371377847932695733943196206796054563655944493341338655856529989571392088844957382356762181259160882329394741271717455799757365126266857002841448568501787581060427551813511598436004684298671639265650020604231222975132274417226168104039535348177224755459798107073074843337032640217386003503507801459294108560975587623090402723460192055711428484150946700023064833610125212469493855780339254641601567841135383095155239988420098754786839045591498646796880064992230134151010259561985841539582707021105490129248593867687935978292813187495750402245362047590582431098835960687189271601065272938789698684242032008511691707142389013789606937596246148581839493228002912267431962994855356301820776334426208878729764002851765264246295402301315480039429197253829444437852506617009704733817177926470856439141262786684803915320285835426306315077386739210545230988379010188713254985629277512186522500328896661361715693204661737166887604514078326254870091698232892662556517409208815605881129461332604619143925656637996187039111435448596114687175647782684919212377219005018990256969922722969539548843073487655993468111475489246360477288350346181117897555007453185172699661942155638366272038182249092718790842629763861418942698081983443811534068533489153722291315267647345397957527683552496309081114077606976837802388868226895870540812272068568801769483259756339638657881777524092494320955777107515246793999883267763773011043824358877286170709932383107697475471053482440146545029134183558969277580789906535028799288248067440725445514698031050947038377414424016623979371599171476718507541181137509371468127731361344125344450089767874343441804868781801306749020784446526446511361323032071872465573309638000727677362191359760769126082771163689392787382114641182492265019352766574700806551117597760043878910252410132668191409027299033113199552862572951728318924629443407990271994446329223293380609924617253641250469322668895265821865313669811743014707456238692091625894315120331618094540219270290606616224313416537050728885609017678512663560247833958601498432805099100557879052557972888702650370647849766929646600407486026812413575492470819241907768754214666790638227555637361842036290498002210555435729618176164316637868519902293528695530777646494529161385187429938701448496772872433107384810363871526613252244738824099223150853423793838266560405329363586936402459807798468383845911013866802042444298247766286331982566053264524731213343584274187205910826443075610373470589768246672835177834607105416904576495710155475075512305225256072203595064034655437319317458357794534537706683911373333665950486403034597963650016380490277659221087376652126311621304436616828988081442545700821209329326095486169592350277843633449665432618494075672682940165148007768043382980647903133458964503725717171991221916438356818929775050814254828932905357064141863449150346013887539990635276875453565897920535149684558318186540686470663400620620546522743612368370644610827285798558111086344290065395027722323054765751498963996621668008081808107598091370153236411184327133375400956598494337709738494248023643064796418719259771513135234028254964362381997077467620113014222350569159055747532914794668094547238369234045699631545175446696143559266888247581491700511617658236630293447782713281201482529079125667899485469380632817555316788984306299604887180372109688663859775145410050032709667305819638989995239298110642497686279067588863385691266017092686282412071776527621902998273456366711084490481487278882433217779294110747377340957979174820814087690469543648942829447675904086895219876381299747828860229735446276243609085491534683849121425961587640011418920444764513433677189278974256438794724819394797615149195358889367016494509267903779981775195087816602944126388326966233995134122188539323143237935766655651185500632954543011156671420042027826146342633649533787735805806359065400341723521820104362392821996594566061048847650110648231854431487732321068716711545156112206078772490353370725437539487660905489152540839512147309948464446771775480860312759168587222802481707056369923457403647991253698319111372668077547540201124974438232223585000339257878929231971632386123259709805089223682414135275078132477462017377365190325181172867577043308183922827433459288181142371411642505759447405533452233039645289919813195092788883836192812117405002779012333443911388328661324633208495356297742526211193279824169777193429377314337537804569734242815851174740195744065775380351548034134204933397008734541690176224941202315998322571293577646848580946044854700954424711672914657156410168563796354803745884237894923614702087608718585560178925414126755092188155785923184950332911389857859430863522890170544091143280550952316763355152916020332362585315267233903502191414070940420345542023825052120109783457672131903610837605111486596417741455014655651891727011271373840418830662297020496962292275630410814565681232987518281088380135868081385235975218104306062649446986623390303298238461398454928064140477231601620024034240780335685182503466731154906690520457844909183706200791136418576997347968482667949034588454701892000402701678605340863231374455451989097690386081246723567457574546606292772291107627699201164433063872189274744505437388305598178366163418401967244694345302461668031339111843306297116149822141636109630240910869764756350413311746950812259232359769943501417189271992567059965886014157077011976248605581027995455995968565138988597409248290061435088511828569994975323651445178554078586461106323208260668786521932089362718702975040158612409351357349852105347508834627389652018335395530629144156308285925760721917257332315008033088766249766193270959577266271984696840898309987784285287173397140245731260747078250757480709674949639137669568564794494534437034741776432791245798739104960679004527770453183588509430678453939854985088586107365879563249342471063944170906051778694851854774695586435584663045193616306737806606110299692922970981353155192768822331769389686777713200656068818895194326283034247008849455521456625663141178579559449982415377864311141821735148773345677461398228121840595496563413690672982267832604365679544046904417817260012524632025560368040535974411453541480241816021996101020022558504366029615273640628265741632607545732857114894253130881701290322963634211910071707205841920817241364411714844284710477315669093679676431824190906909017829918377797050202244218522658184809534605165369213153295721656829379771136995431310142587233172888809961637754830829396332609082725710788348264755560779237348295755040748047821108966108341463760950415303748473173468505940203468890013876962200470938629841818325291562280636540730109099940732700737487416894378190324409536334173071319652797838796482796266877198841354470538924178484308617151990580692142769933122098957489136192254760395857462724787167865474651167105285756684769242383004251349552708338980392243639289890415196799186901464056082259263959532762339487257715126153194460976568257166456278104010371222205485764271991968109540663139108324631791685869684419519249652269010836499011266897158747747952392431529497582229071941736676244284783619915178710398207856040160334645510441492038720032223116010131873161467810692423664106118355852378245440122785771071597136617009917015082273190140531498696730058802495311042434712041689832302439139841736283906569550344400965056446644281829052702673693981768757112064291957421580600169264034518224495535766548359956363356121965696857612221578656708764960806899990048963275873227682004565500753231351647118778720018931556107584492242946385578335031645100662093299909467443817101918099742821918068692852814349057880723201058594011064431548574542551745722010262943933185565878568183314816756455927522326771567473833181731532088217403221043771221913729222251571942979744973320821442280564859284552855165819359523605215134556932608660148434157322366126829452841855448833696239367760009458836778367487359880041919575071459375171600224674262523975715561231208367217054051590568631245655322691603909045347326326054882631188850127660488679889990653696476671918803775905681871688613730555017823450523225485811527166013011639953740643554002058790314498394245992040853912844465232075023220931283718072191553502714889604379078364812122449591930034389259672293006660942069166836975163857855285743883553339113613016671822514328408553899646063364072142323442530208201483474008808207863080838914879271942994937397285784025858440865415266972060788063324455743758737839487646312395705735068870810236537701028276290610994468278609755619393538683765022487260218125890259885271898913903837602830893096482258726385462062554940557339354373940165108077937697652312558791741762933275379696261660290132473339592683540342828449340765645622182068671376744307376348334373083428669852126196291677616150938025358254201213050234237817397944705780453714234168116814334024356648890949932419684842661986695267293164274673196579818898879255039645639924962480020220808455866867398263236837925891055049512794549167253480997690581578369623849610779576118623341306312383458228519878332541834925193845500580191657311507001601854504680009975514233853395730749909494631014925834117995376409147385885278277148842664558013013891837914017219177517742784405415427765554261595477004007706455911240461887495731117683813064832659828774864135032191429784152772322035767925414713686794321331412578160592229799781307323100732358716745887246667637188352447378157160785428213555847132742716478012830623173320680381584325382448267592980197443184904318411969542964911131958204429183746630244062836013498233879130099103774491077074858789343385578715545255955547578688277694978481808875164586226029327582838563937797432286824273986945349737236621871013331482636501707802770679536993528534849771348175590790870816332171353767624318601824906114811634214593900129225816152013415497518627754488180178770528665442401963774566460290219412801993391201593556448162471947661667825564445896763127877719293895434300824457703373583704690444716097029382686453248575813838832860520778031178492339980413032614849357572273845003898344494112322178210868466520780859918016355012128161583779710405477122856788247698783037039138026803196292791162465473906095723367330614984530139629698399270158531414569503123287137898681269454788828974581053621039017498620240037205590970434341001953195621827051231676280510466691460508607571166685221450461519403170285693278525024600609740177260883801421059247197722568524321531170545695026790277715312096406461689957191587023729455283480950940488890427774430257272833668968351729712446915706343786294404917962543585592877226876641011940226957125949319355817186233821316695646628952342272403683168015270034874946915571274287724875584083397641113597724455269567005327280900431559959528255311869747072865411220498315416818172012149083486105147593678278243511965049025295000616736739162809293627506368349120484065101909823962852110055522721331121127238697051696914847107500978532569849157530217620336622532781554242779857615877501478956509772183117095141964898213882012835566500884020773035397770768209165683445156863450850962444356358767476546200591870343688016770121032204202596386518912811938246778083617098287739380160240382082327806037391119796153187363092317035826317721242406216590400680802722771600273659752879277487714201900635404292380616234278675804957543194494263535485867423747690203210427533156625113248812108148693027721464485847310569210063348249166651592940229740448799142377816621443569291341053661628059593695194867895131851389682656757687299387351733388338458012323732942958869974097201370497855611376411234447842861947792378912751485614748990985770850156450907584704411753131045157029466855084507125619854963441346500455926352363010343746135882408039105648325646489895751198554377075594483554918346496318982095301515846901742528720315254956593297859145246643252985427155736866287621100331575035041495329818257988468110439947644576108467438611647498193086960011306111693503744351202999787835305672561048624875372543276570418341899896232118767515847298646297955480149714397180939006356315733556190252953916172783095475004127544900842055120713460103479494713618211048818985466685859297918316850632573084315649777112103263171842807561577865368959157662343459985642433996109271646032849999639565023378466261993744252587567008716322226246094191570486843891680735529874267067391736975764329948310123292192011944779959127250642330711602221997731700425694149879226039150711946367214720176482564172416213926502931336801751184355663746600189408102119126584666667111245879573686149169930242985900751059911587043651553524097605398119144235121309798618367687805889348621668758826109736564325933498390404085426462044821432704953970521067088819138746543183076445587395807730835374738428802376327588881090544455339809861642890046996797658683120009636994424655890642332554165894752964540484243872414158311158967407769867714162325901405261595524589738648987027522605963310761310118016765961272257879909996317301987662071764478612690651907859823757999551705878985395878778926106302021509825853587526348918951989606621062379819625424416131404497827033314063535464266369685563975112085572873543365527429475585017105704944956267970923192918854026669075111789427915312544240015354056396336891876363499061458109012458007349652591637259532561423335334118046705074902976645523844307653822142810098742881410960569111334174243612865701443914287818700401402870900515105247963904808031045568355258908991122893557549547028253851827271646532183096050202363503109986697048004612840291652272526370841464207813467682728726248379358749945892767679991270510814172532578240890135321342466602684525104223696890494929669490104328471267473280742319776053180583363543853426088264636683479092200999781730792614419877027743753823984682004740842721796036576957132348321538415725549637967302259939313597947968040139959769097977505482182982172903589506068236617453092357910171944404608931464044214682576726105561675665052813807348797319550837460931862987537498345320093038847217735734316204847414468093335708597745343661158280684907784278683348883757621504380087120722072914479305311629039543421794511506507695964709684479153582321689008924045866011618304413888881683294070488102665345558694645975823181918441437458975904876089542349272883906845971031754708962696973837364512046528440064028685736379386616903781047946871851482148722517586900960130465842498753156691706895261194972900330470385973756369556164023755513272208990598412285342339697513893692395134329594537656168494821339468153663102908948430225598985167951532043333207650416360305514225821317033544364206001492537281302980188991565555260424863450414256712420417314055913326029986062720713870622650936064665279420785621595266077237553453105433687151479687496479500220549948249478551875321659384399472756074720418251828177933943063874241047972707260679844134563698866425000736140737495223118423526183988459268633905792592939996917607005299362877400980594982469219456948067154388584902839806401671788782450807408502254975013557832416111915370175146025467566974495051602069603606513047162273586084985190686478429857617987984407996232991493211481399288074553367668923365115807405926442723755570290013796926795649304881729206637053505909277911610857554954094371161975647152368270912363820179669190762983312947994937673489045839784530120526263732370560142473727972678045003802096232650177259493810053641845522935207704454103041670082139952637245223702338479736653409438275006277875772730273971704265795359332552640691191325342629749903057307122105556577721119180929665615479204884950142652712529865754161228805601549270828666740693520575582992724047058918424863346122463742424121073676372742335326490416620723381156186029188482270702985479901991896535241581007478322460462541442169506349344839276639787426146391484492052881551576697352811442100616821312211116756810058023036832986573481121804264235195404240921977687747513490854281049111370151139858247962872479684512420327287625115129221462152533221277299099230354433478939557775260339063008416961975078009086349512793838095790008989105415319184618941808171715044521938881824590391389278904212673353588730760920576951300172162338524476625978975551093112444232552100127687497081541175211746203723860707132248744799411128807144196519648876619218332255275869822788411248321290353547964448140912322337521169395075107405632470451704014428065980237725985950021871234272100364210972187613091057997248971776840937595538777903828806596251510142376966870769843246704600076009263784275137629200854288130727768283993616650868407108638364352062423995049718643733295260933615058237999655922119155550350975557899172539902434357104114796742496487021552574707536107984681045493340351172103874327571202690187019743980397298525617469356721404120893843884384589505896066308536166934351303408911112811513129927521401803256138717936661202942595322261102732067429534971596249698594144548173407414221297698417882222766906608421083158869642214350281502748781018679445320943909183187209145210665575625407491438688173607052912774430985316704689591943370523455091924959879604850897885420115877992428596523518846742287943898252905341888574819943201031589790510881960916305404736322367630781422443041371082917301394801269445746713895088952389413777475713415715287123453152370473939518349578917199845566299018376516942470862361374377065042840043839171753536586171499451549509563720340258805615018699458723296106269665121756310583346028501627846953728531766093949300261062627919752569248936199440291711122105327241329062268024353199237958592537649938441751898709667280423725470293373961258393797150415948143879188309601735406896942006962739596289602036207727654282884483225525578803051718024919369810411991699259027754294121503572081828140441430353375282487108376779074236168955124235075286246597384270164726429505167625154030178555251826779266199512903804109208927284496462112175273509055515920564596493977194452158262127088916905822262602807676455375904784286595032955224354621474835065890694881232452252488774881896384269767659375061385024259257389032381220182763186362278456934209716605325913573665100930765094319767157547619432224913908922167417163853551119202846076085314170909133448343498150965165456442908902328791285721141117967578484114851664940855022724390953439018024978585558795258413910658724249490607219325977342446903888001499457804104129110572990656616467988755340523054370905626790428809262889342802835540204407544334100768743366268696203659192430837060967734834857103466919138751916769141521467344424360725213187442522369429430615930353961673934387769359565650075849341442550589279743096523471924514299933321785592470790658315669913039254739624919710885884391807911035542804152386783550868353396155051640140583380139436955859892041749189240465898805735415715595678787468207597041460487830091923984379465546689542503216064753618416942800200691334904233085429412919102864331500187043929176825372082705201840379891641501274677354202914878710338292651712597144246288112378232402450076601496124199548498296955426094389166389803150657179129100781378508278249924517304199144931196440450206798276857954199485063414636458844911868417759539445015389008664848994554374403911732834266011127564845557913456233180485670717222000087551852720490767031321673665416687623961970752593852162256697254939492767146548996684392905986883457132100684105740522514820357108814358723559269444501653546947631174123971331848541127197693486676297417916421256895131208274829183884684170085810075877936983992282937091113301072997362064586579094713239678652624572623551364308434179995754629388407921067065671659645234374824455203071554592107111023842433652743821438899497924577940197747069761553307889198933784884111582229836639424659775742431807142629424534891950552793545098563826371203828765417242553691138070983063701270368082518745362199862404327653608420285190250212540966258888253421631074763564872909156535742467710655934571370225814894841646019068260687131963464935637825860409013344407787795267262060755371042641209213395792347517734160426428345189864947235593782468142513835947847106733208766837935913745798855197332857537605440688989860007952289709765592246966771099500320090876564618834433783299616346092207852237909301548140306483395191939429697068458655171082810161907539058152389856590117746065999670313672439102520619848976434860612123933579182234663381903866402860572166236772860115758724650300514926895295575694150353449265792839818814988096574672092706011966964412808494322245497905652584370830888943830143933612332263478498994634820309629999473171575108362821111514039710901977061940760649078315579176999658429839092002716970239485045252633779462137181424107068862027263577823446457355691650170527661617535065543818485920392214415337801294660857094299253245069804952595105193898363632044061927943502325539146726614237225632776404440200861341064771627532257360907387413112213208076208417589779200668314600607181115012630226672751526804935859820808287839877954957599479162208808470647501948518289295748087797839599522203532977078535619814736755282542038576043666550803815449027039930691036082455707835635458570948055766751047303815111040770301974369706157631198322966057476398485098758198758209990784871665564881502716758405919418403900330955161789698885400155220026923732496585429775152346081074870134678972974859856282342509957568508740836785061588566474373775527245100848336038526388516233876118569512657307873861957863755293989119527449278430004730861557968092631906774841937043361261362610692029308542878630553057983804377936288804259216627101459915677624909531572261950211398344927802659482915707989933573159004478459690151624843556869330550187507924822949459205086074240857052450465434064703102591156448938170109540435066295043417577787336326338469800965804853004529961934994253593600865455828480360531259732383267652517945990373699501308367545565026757899119653333315751790586093013206226608352732397955364649856508500133321230512510895081668627454437799035132218393377305918395148651465504650467559993841081397067144618576421569899161871040215407002631145273346712972044154390559111658965412692460062380312072969899955658405359301486617566178713243757497276109227321028943731873482709457813312373749960115806226275982513880962615061929419005466959337821495020489839228330110960792892352888879197291550998706671041016630142081039743628757131289997002957495503158369033548924935007088867663393246474538775848444815786692984045236599151367699162951919559675683071523587658706336336406705264939044597705855595143853884386434409788662013290047817074964884541409962767469445974615259269186816908584529140830979490832876890008663808415867548522640477401621961839532688467087187660649277626201210690357534236793473435881882804625666762037103101132196870651881531307265344489716933596133924949610658957475740660210313436630007023242450068891735798904134213783671137723740642268100043629567697502891023770047344307116668645398211234998653184589410205010457471228290332959821558372831300375542548664254252864160382279525648455304774237355105254110407709414034511880681146337600915415266085408800961839283475141582310350844114136952178303627589080710483639619651119184234908832521752911026396165530145274379919022225363308472098596893176807036134165288938733690260753532769837670110582639743739627314663148450986517156381408521517057940870291979955562546923323951062061353478111132203578687887627098017883220707254352292932147345168232960014319725318605793799508781079300861315541354774135822885267802941155370446762608098849056678198061753133090877573345658572574215285321086739565958184812912619351805950859277510194487410376639213630486214618018379526436370738022123873563401234417237747827202952155693290042069345837528684758025200214271350191448443208587524243822470678905154167117111746200069828511422986911620011171134890151910010883252720489662567943666444224272925041642805992083376320273639312466549946235708796983460796719780541841601957960199397605568470597782859164041945728536596181576994291916509910213269655763015129504708854809601389587618293321074114384833485906189518911890871655860004591805521080965114525937778675710874956248214625865104041769891891285522694155805516211736682991152139242405298462821223612754413702412366331436579279017919381914150935989174833459823683481010180329495987980849521714780579329917651502018654050140240360322716647230435790286632001360695508011023230271611318019892787785811193378987773379963542805900201313567442905255550211008806061968558049343540482889601621400073997429493542515203929257298745199075721168784175607373170975226592012512973574757582405036313525251178972902850158702720731667079391013422832947351504536300779866950832074546525585182821763289385368079642004266861167191273212506392667207100240403284728159772820869832682527788197597756151580125072131145391668085983341319824396025468956746514392654820113113003288959911416408388950211238991562081113811712769355982321244541556683854806466261959256490857200616773288331316112960612984255608076652946370498825059332772804224003679026003087100420120425385992403313802935483959385396616252873563948076858017241728047728604582552047717731715084119549626705510141874179743412169336049441219918796220162039499512782752104099510943484424714968325295441260213670961779846162032573783773110700841968097873292694816693663946057459878605453422510042264756146162581245071305352470086114010372863196645633892788231420559016375345553049495142075370795043829875485117993097585609968337443119698908912951158566682976267420498317280850537708556437482847881542735108945475805564181917932099835303400462617454132059959910120401975212841174991936918729009879381199760298296943003344588500736385733425933769005415195801666665784920645746697669538294005085485591708800509137929309315427352230496657335698118826222495825097519892079283511555798952651108098054163643136595501510817929895616536110410960056658528235798154044138064550828358654810633475201432574307305758629774809504130588899930733559432784578300092436180652703264340044538838894036570252371331768398590610395993323292485638387677932011919291068173893336507291461211305458742613384619249323124923115430907635313812858209418587573215072396561165141769363951838089316159173583212541213417724350101746403093635618816886479421464084516297243312446516228425329558244647080106116452817452384487771154305882053500427361056733251623939443467084036587440187564016678482251934152283995824681997269090820450735012738128235475748337926557047784016097857902863174044056138272560582058039083614600346846916883216637529582790288226439622651914215114069657587467152833239771868617683148628726124349652079245144298719243822607880850791818048148044123761899627581181628572010332769167317396483293023717772041317732467866599568551408777258716769942811750113436222213785762601832107483728314476048038111586756299984385582453103554743681923954538590034216212511045077464766928488870243384795100162575078660546136864109401670149421106074391050335520073065235700008021833265815606963804868800488546295184067538691864114107370894338189073564068284252848692052102362768446131375431940980387045028163814981711594831170672062239908720049344540234700219421797214947668669997303990986578971103076162694194687622630744684535920232484820094878055457907844813153800065954976502850118980856079909975511224850682789404840338669287218778450318824380435842807963838106449287804597742602424930745050637190400609473807503182989193691216708375367605706083306407259265032212816348245150735351941868175478011589629601572165656784389236807304868284028899815687236250493961711691534168047364991372538890658283938279306918820343327690688800246092837125139602156728109505187796111431168933958004877461792520188982150535155410383422412372817060691245525976259470043369475639949879033233144813571619406509987040083358898133164584306631867437404148655691095367616689195469362888420948535299955681003258678054988302638536572163613956921008755138483990552508355769208416075321713384721853023613015131356212222926954659476972871018601321793371388375924678404321180084825615927921717437613053352526515151405948202046231683527510400746899256414766214617625656578033453197367492456468998097914428058644853676614872464961022242924932512262163988336822338396614351582595851728275146213264144055940642292926518442764412696277044973242000385880386550140508599758773401876316588000700079316854290044373157609115432269096728464425117464739062500074950617685872468789744737299192737094222976655716567007304378090621551529982204925723058840288611705216216519425882518811330504432318957633344212238403374647978444327447018459924351769110856501248092299028727945488525186605713481491678853151935121459624732238729234966129749064578842494966601305456362440488020709966180957614400861173915600846636557082670056322482202454524603284708131739140126925476757360947116095955971004998148338504790982629821398467516118862662119661913652997462048890978311159699282571593490980365366532740143647280237619842664664924275803229217744623934325587681204954434643048618799595904448656812343209571235110531982276486206702397717057640748299737959209438715409949181681122110073335634632250247327478119805539936202517441102993360126440883393149022130207129076753592296901282880106884420795900178943591146539294986012450179228832794097460550759936758568079041069362830903775973269640805112985578069231698616623489382358523094328886806472908130116231033498423769780279519455610708910057007370227111702949055745511598813673270116366223013315620800027798670989914177638455228341232058389612078261191367700197890000787809744210968425745250257169366811123193686203311744600202171742696064825430996868034133610099321264390284961145264245527582811316297756992742796094065331680254811465584924089708660807902387185745965661059987191622735604570616548632406203662729867787982041424968792090208118204477553316379965976681590206447746358391876385238243400187041269548824806391112550767869739547032508338391205320747637786152433523398012753669859757301735256637404153168167266778387782443198337530040493654890406842515853448998341795400018858053787916739650556216292583546197305690451019708059109006356674201894664410761931088840770939598590153197503606696507511967192673883116124706013169917615401827339179690999458170216112389332991775994451100156613587335767801409910163542877107685649392612745608135915000130825060782061582572012943752383367867027134988739139130160615547445008905665267462267314643758205218960371935640967429664572918912659128017516889325711322358523398111436572222572151466861815849893061040842052006566734567916331862191922728646591074340323671740599677646749777170642110731446688033569918070019267235592738928346661787113919899013427499372063205801085390843191177227011035492409744242843037011892806578272684403168493072148936275818876248669798332429273054752531223004059284101201653302377161746507026081989774922257693238332655786792220277287062743191624677134170077915254426214377473210008446787411914995630371148437892503541890729922216468073467057591932510153710432326146204309036740477128700221328390772408681785053546027531556984878540565322604990477166058585424454918718890296025587181430177217184359265164397149355534031684367669316443599479366093254168056734544480275405175819529252044293743803861034456830712067550697671503158790705819126282243605110439966482661311744452704741049009185701278121641942236708681079010061615909710954542334735632524964348551404752610080013819480693882027196527760722158674424942883154317264973411286701993575402821730473201838394121256715124535964585608995308933389283853083050485918897909467845317235395941980304911714809279929586512036835353365949738692406355337478443192422615895582109618977541220842396688609454486292748843021976740939520738179376717945522547326932553505459498174353028311569646972072390846497058938282720784102083439685682140327971292557534560035412605860895308752054832960701474451825478633567554870400275715509468171149998382602298093880231183890209245374933466673941882867888419998468527463438032296208722332826670356612550991188449922569120850771687673587533697987547824153515366466313408889985279352811947047146313216570211905097093318774007130336116344741773759091957503191862695299535195402002068529312708479608250657861335947455513901136160068591546910504586813240650443061837188077745664026331772589367302786231969985020979250240680978309710878977524451058443976108482753960749318296617858926249254371988144304975752588008644501170708177450158544854807675720122296946327698164347284601678461781800303873682565582072634265182455572542256280558192802856279567921682365665070459972413813841922207517196078033289948110692534970937582313233153628195926181728537039180532190649786342517858322210086002775726885784612340101476310158901874702426051658720933753863772356884387037402754019429816172351996898088352606441051077861967512598059972248530220659796977913017155544688164141071424949796500811275174587797261363329623140320154991039163289023675189846953163882571335594863279609125717038515716027145388947999162506875556989503087382163427488893634425738087690261004545442328195535878192990718510111894393331748514575555933377440828624176676261623867657334345414720128506580954927241752352969972887129068501784955200887403080738862988980458070214705029683032520881121515662839904939051192655989951394199356544728894911469302466927003238027401343020586222127528272130535791412319645665424352282261896523914415327451614904972412516699885808103941503820543982590864263399519181506609606156105727915975278423972408386376858522843644502925104835561024319259865959844087056700886130249868114950506386501865761445032997594532372580301104248091311593925875724976160958904205400506264718118538779053696802801700772495142980544226046779161224733084691639060178329129235995777599059280604171389579584006815044327574331449059029950815954132720010541595807203700253657296234976327972258101032038608250237111593193503971483068416504415538557809346778686665016537124891771942578357996957953787842033192922353708307631773523771998765042107565434901248281559005607367970193539928670025859998265079408200967470873540868103661356497662634363235658383869445411512011089328621946265035149364109281990891418098414174023534950372043394444170307721548750991310993472275958691674424924145756245707131117929394829546698681811994569474978259678972598556538679109519222942365538823790078707701210237408906423558658837451231950267031728910622297608639436540202436694792121594215294185629408552659944837703658447750214614305556408907250584447446972085259505039695029709847138452692844270175334142083122160422987738559739682562764576014403349807110301916691309930157725526158949941697643352567816981906992566986505473909582671925762898336029078378563747351030706471839934973987722198092418926850713687643416326663914751710478012187902563495596925465341925082263240982122142017601646205876045963726933114553217075136954370744746805029333629620939131502223339767112890170901477578253276412590416929466134382807656227542313152048184890128095072564819815834671498684529796373040596147568235727426361079915607595105484675801541837060638695451937827783359181522310229781372767241813116273489241970239622753819211126183785372292544870403425270653100125575468772928898530101158910245199506531324100913338114109406502767250347623692471569560411656860864367864441681308943389747160706351812928788989733722768917793758463016782654933946572206072846362455778177615039031634802857473763625552052236413194155851063111538895882238768155899651743569674188357295050488983949285226955432574872458163795655917658595711653262843934073459247013880520686792604991396831900132088864418048300151731324323892122670728315669007465424307433584340388936404669236831687155464645945809189928929307509231993736436630868161816491455938567460851324648688712527124786209862086703059754267335709258015205380635896467579715363921855478016789134886883356147083353923993656071895559594161308940880787666181800795835862926323055165651309566710831000583095435376848834255112056917164983084292538096410509578189086629996719691311732975725938131431684913098613888691927533624867238998832114697866301048282944605710208443674016920821411801000000379238519175699276909986824375350997499577287753523136597143164717011557124145776785376396846594909399698912247167061937501716045138219283492022510831239717051032635215416961877744625282779850356166338668133976311968349550449122829027145285073269701753700112211093865695136584941190578818901457352168990435537617235767484759033762213315246797102536355198222416758000660771989538822180915061577880859545258062971416141544483041737322354653362813678077716072678924467800404545981816329489198942217062011320936616616519260008068395039302129327047773001229593956685872447474320556898958483328423783164842709715461723108600302930885019073788263633808060275803681306537277823284581415383842907925277235136694947182723336790839160362043525315934923821365598737824230765164232769730053552737616464330234275572330813198525149278595526973105931183760200463096793431899994612177142478235563393762152259340710333298593889093873471959263048881867474694927828777935957009927030662016589956650873984682817703526841131404634132679142772031918235107782343281546531329695468034893400376784295385699868992000654938022073339772298580852872392420833582605229804472986453995964790397256606945573586140142865755643190666810584353049644775355234722687846857031682232971443672401280262286170979484431503731666861459380157379125741191329431707506737292329991893802790880500366851938712613937114897481243000344290314694232913081075977151137547392242702813946207964593416694445737799766678279409415672753548118623963776090945577924637981065899292081527343006497277209031338609265537132755924740983580016922514717578773034531298348275495509721572939108281733540056460323816439232731800662862820089309294661805763619935596953850874214266232892307738354493464320468148532803816909782336082543483592393643927630187026502354691447852146067297039164891970054603968020544604780577704038429945835531903928778180160944008100271101421072763410134775339090508122598578111286399076883395350071596647968107686975277551144825975295540034899390700395453558314757351393229353816602475487830145634521215385102620223020627226435183834844353013081000253905927695807908723771277115890389008657527592777930991428600181024928305210757145426029852412590116798489733382676550376522815012739255880895249914404592730539268688002622420243389120684297750376316355626239354505418230725211954316422643637231572757969813721961271070242107981731591624657040917057699852941248564475204148569539084602689214304065962657661983094181899142936022815971088067447455904071596205638961875512720220787534710097687215332259026890190029574774080025684403070675159907197172920665931543376838603314904425229691305811837060377523776484682452834571908546376578934638211481359961236416198374992667614131330758155721094710430341356093439109561466347892463599682886138203205371942062317088354036963573638716219198771254981783735663040069492689264598000194588848869942062711447638950996641907570750305733054696831182809003776603350012789831249700468101157562404465520060995865022571001852318271748112999479752208023040961757015016245056062298522717682556719062355837181468909154539646044706658579797019000876025314164230781850815024182519673054746594264158973701303574710015388501705243222469259535406800890269752824878178992002973377791873935456137982469243133014159456544208079784832265629486531641759115121189555634899222677849579172465031499789464702234762691740298206626879394780112679137814425201182393881322655689507483789345788200471065505724652194862327988396685153423811609761575118091626982674141330594194753479376726290658521519973863872067740523316821735614207709825287501829615681044282593805927058267955577116875675620677183022808949384831455550100032532274415898951552876503661046581301797788847344289313363703925873330519112320148678814849825570343818129149085500621055245193283502166398103866541555888589278529969839732850150466255143707066958071832924043766202044894698263966562846986020261601567259201770915097128470129116990600765765639400229188198344738223960522230356727432771492760080372901452203888731123666080719845718818330449369724069734028002573032708182884685892548033781099025936536590617116208382285666769276861373085313655050138286664203740823621211185397801342433762035521527159259632555619019245712812582445213558031873433667542927812535358931522153065978874540625807518802475195658829849133751170491162359916283645218269719738278869881261959079735092296815937981917987257951014668048654709694205801349767298921159866418185668737766452001306775903242051591523099745573309071950172159316900958945684267405700185745881828014664432371643551256060164143265075071743442310207382892733808517579925351087033251788124513198066785139974685751377532659642809026533064109079659716209007718581697237153720316742838693162989907328293562673049800802190027743141366111222827613308184050412316223635027982214461554849769009476087202057679131229939396070634080458083188816974092656281261680675539501664802696848292809484723188975566355885655640080200036551754279986634632415543646298489331245096418643882234369613857129186981300007305704571839262029875503617045549735314352644445347232095588715440866938618175362062105234519188873006263073833719510541338157558381597424731580909820630025219594769549893190709788921612782577183297518704509407143837277445703689251863742536544928784933059462347621669333647720036070302121134500618194073046083025833823240819822687342262454841639395390780120817236494966480043008388649724402119520288179900627127823807305137199909282216427647636792445258000799497275757966047238389450013071242527040346880827557529148485944905092199448313243590182463644489493880538902111582015786040953773730458359356063876760607617001757731174498968617454202218824710483950853053134558252974113402778172044166068861435353918593796951077600000971105372129481384354800858106400840673881133262836882750085219254853494221436165118002096435802428970538735953993679947445148252454996788817438138726087666577114537196331609208810943732709519598742742658158677261673071617626590732088305186038850187277279741699352846894864568953945526397764993400337638821468104245949909884936054243532495692311815987638313269686590022932496588251061876892956741698878207532422467125389728995358483031958699076867931047328073264926984110664619691173087029729114247691507977354453802560461707143412189331678508263252243968132506648259517393030587010971581928468748169174796098057787697931249195460378950167898209837717323062197890939295231034955083188174063652018692677567619099444155424968424767709222070248763863152817561039594449051026143398113363584886015369800381519390730316283763288719257351876939093811211421960245088821434428051390097322352587013037421999140226492097081624291713255239045875187114943033976354018988630080498961222457394576299388707606126575122267047159787650426701437653780160228524135167690777357149411483026666981887044654254476742825016001117726397893068981448114739390674814235745320071311118735550472245553121993632295853372061770339737074343041222956042677092615169774956754539985354404181731141088699108897505327559136099478912675833745177138466771214534674001057832237748933315049742769936938664524174305137020094915505158645737772301138143046679471387641106503644086362047736481618049195534273491122231080241071888981438330337599183656911847322648481922689105030656063076377891312788599987490499756586351693945604053470956867784295522933806622101671953836229822660826688725861971512052963224541933486762912640029363768993916411255507687444191466893406487592406363428267009327793283455563074988498511427444295094885975589316215509445544333242837391390286626623174832190288918799709004116327392042252877287236867806342027480253364921519458389133993776961732260117844072022437167960181357969746409995401274666728774794808257419509492475756443151340583578601134499762780555932205733291462278430206752359063498523292171901025712570516972387526899899242935618857703861351306772328439347051175223189129147890903044478356672653703696148157029261531189594098543903085629498772651662476956709516477462050401483086336584628179684335833711103661576534436182917483357775801992214202431176186993403179504857672957648002221842259487560956666880790772904881799633038976210991775788601865201582809499667717028351698022147181424282534769986162830556420422458657611070443517286866080504791498183421466877245748111413578514995555682683181404961200240244587582625725832381254865179218418195433966849297579399546534025366787254956768630338428142063746219233039279189427950688870673423228171487142478083283431509060620114421945804161819627912286605821186465748489128017675538220945199257135633568228197518051974644081163015422924526190673719808646087987758046514876369632099758393896551544413235904318830019682423792440902941963533993312917310674246568960790789920624102321093945316319041843020867379795781440992820453199394212437827643137544226442108887976343056925812649208128625725394112979442354823363990766678106635342601490093184033001232768455980465018274786653608239674717798446845933090225279399457521619212918325034254865289379764979060493177650689343923790524147097251382338041376787708314765296028099796137526385399823380393504428620227969717325719935931455573225422099023447424848340719566554357660923048172897627718565233664606152149074669212740636500024498659093356092958699494284526689853902784661899582536830575810746003439794632285027009574304970303387855611791733118256380970727561784550658442277105452196072960190991847920964583947603076899327249897997054578032734227079562256164052349147807979001068215276460106176298667264168823950899189683480744390307583664625968948233186639975626404747642156806166733849809311102665911705740600063007882922352670614635170625256096777885078028663763449631472778020874258431136783838113017554029596066349530334229706350430863216189286070900819855570269600331580947498471968660250433987074885583519695809213920342900421046732567236796553297713343536446759877276401090814688129994572114318259038361529191123071406617714791770163983369495677166333669298315320411886161036973387787924829417206815873780984398436026494671819534408218867609796724703744768320996780599954360147551697774461150654721194946631316093376614198356696020448006546027299361030902256594877262798311098316453008019476005221414629884501814107965049154006257580067468738996838397820107585299648547603098347760958778391925318524913414349311117378790280222404131563465687838846702359030703589900295735334731118259879938903311461419491137307782491910686548685732506786096311422598721325441731258568473925752197740158908671345737958491017383266916207744570526054319340465858821376562535779740741607363099831162106366871942572180756733636710364335100468829444091672112617978572138245861843447000196837530314337497092418760037904952660949437880822025237697940350569597971043133537473620441481832473992541061105061963511815716524781330549395287431008876656952031015066972495113623289130827022156726943116216988961740947067839959222506119237035339112109939611383084276285316109927529779164943332192729233876767539414713258320302371283603580555795904244285196956811718698364377895894634233816551253690692908305169752249664946755229725924094825384142626450362786687630192587880398369219985326309339570252216069035979867292095674866454388708095626088679718099326796875515741315751079079051265192024853885900858693897894127787155525679748514984639015767754731228645125683203064303561308213760051666267087762741926937684086467172166855454960593638073806863702012951781533342192808800263631571613607479297245484010131965754763333678423953492403604705587453940152170921200271995458051924223742849238210870070354287287784215403857717074427854732762492046336709641571819999604757805851577007859192495189987310101559194394800466501744939482041790325517355928537945850001507831976860004666895988785239286091144803231804133489343926084839863773740337066495200793445286953356832358656635783531380640351385597644245819628558983476434034902108241172355265035517975734155362004246781016067885435676184735582560320527129710695119583022832693385506130561663400097761501008021863148808930328303286490570188366781472632394578456713231611184046212537542696120735681348639144386286195349029424066513554863148055170665026124474120503517292813951909569296782215200583143581960605868227308144055583968144261107852695075282193113288150538434414141904614310971838066875571964548157098965053613375062183543924089597602925505068527192555855886830458989655709541765490835672008247479043903018636951143902196563405607612383981751694819162129325419817680551280817425490832349628997848675353552592285543822483319470125458542803338134919692924710266234447111486155667755996246938056056596488973072296923848945189155526197886026501885390580045343056718268049928259347382786634077174137028777335040696021079923206757110127597043597630524366014957167447037858418862918530930076133108341433298356360264519929175471806098681588838664273373982110751382016074452400378788639150306510779426210162471106837724784220585961077298565820214720487912221664700428795243602424436145739929005532786069571004211004735696573367483181659551582389550140200100555636072220186974869515927530490195249512212068342542543743620860885495887214775047099807491818482739944833818094021809669844106116126074402712416261857275573510560744007459794855668252035185014380177706698907490631900546151966989773282867849443481306741650333770481369904267925051693462200514761282689317017981782895480516322500398741007782068135107923135138905426392518313517302403691563217517575060119229991187534178338701558573461724673449520922694135065030191991889751069159929095453402344110433213336558432488741004822609887592152672632142114205361024265678987392703134998715804806889639192132810412232314109258642327905372694061018504782072382820419986195298350929901331843250414182227142291974659475569413677216046382865165120480230317525620644624862187493897930869033720955507300273832564441451114422515805392888957677175448838305860018277726710267041242014746557414565687253604172097054422566064305694288011219824566737923995474060833535904793165101219103973838679065120545892009428391388168626769684130591611411893939831561947828544928107737040169124377372992656192455376130106090713820767883570091389838807345448894248712438018580044205530459926489087121150136101435542617980366330989260754792767073986666138017108925408893931571649096140817697298527732529572758109620599080881927451926167741351522824141631319658285034432584648518250233411183349737506594368826366143079728129268022019164369095147616836604878577040355123426047413410481772740625223626900961111216236546118486548854375870637237482427462296661548971242743921303620448584131181193606376225421973739102167083579049775272168937537636746727420108547492867952661515161087358611815892521937975090786353263101792101937499887910633879663596039193979444322696106832679848781310918508549339421508656010883673375102194846773694950246230946012502171656157031015167619343221060205998253599555646042059533838000137792485761505477837686514242665303026418663055396755785170594158502120047244240965210162503071617949018337683685552207743155541549503959757301134850142114872574191062743999643709431647905300247607790470712175494496092324957871950836127482475509739671285269578649204736600295187644471012124570887537042315466821088390186021940909463843932382791302702048991068995840921856464100109689880652926123700440536934511426299851102978342808793904767950493214692336924373657991546027210536013819302536953519060744352486030256015704920443785535451944133736964334078700334964094422689065473966012168012778985912395408759485414369376893741628257895797485372647553446715108178295644751757663570875579661158205151954573082437004289102374382517428275732199772872735230435981510302178469229634676149511055186686070060297565420569814252409137497037152822976183834708291200229484624385838786755951445557659535776774606062123535612248826325992617640933523953542565358415161779890427894482382191445683686528197641202572309260131286279439963514806797250683597936263306324402364961030631603084205459700163694147225584480712225316973170878436943064553506159483997514900954775712258768671837316500538283722986144818676835553215371702827267772729890052487117425820792110838015778707962556505527979440359344733049115038551358111788943204004111555912185709993852208130209289265041289248961568391243396213762159457269837703384067948339084840677167912403480422400693156242492854117579343500302325870567764852061098829549977764913576421148194892203436059349663367520974338456358403472163020444551080122295624936897509948514859445507477845234216204182160245644670245545912236284586455788461671879475023402757401963743239052212929478220539896748634998662105480613101288114232927251902689214115967465703251065892969781470170874066402458196121609064371159901543846041218052146984252509380720557799811144045545687310085194695466711133224836782429242787531261273861282163842705753550476245091598920338771386824841818965744115519327103426868985619889507046003276903067591776481019926167281058736931776138694604780815048881969192820026987557493247931865299976769191252776868844278831604181065768575634419710524491582772792668813171102925982716208607843986733184494524778965010876045289415535009952402553385323211959432319180204292813199922365260300738285074862150449435043977942189712958359879945302214613363479875503949488488517719595700096799559472924476021500314538196138363041727803705084000670117194745849178394067571092715063456844872937570363857359942345184662188115492131347498533970145522976401177264939179018075935267564294061191152831960305956990183908734175900861756946049197285175483150537996256375604902626727114527857100116094419136987038030628136845758968461315043417150485953403871746118023688389606225714827372515560863053376496835983969543451372505908040946442464502793038537860825852640473573855383033019409074776496669987453806361129069121467943752152828848770575128945864945879752237511692373204105072088734231353734488377063558396059151355890552979552626193849252822754433070979094206959280723968356938289868065070434997470389783276087108474321391890420269777728373593496388470052690431892863678439079694607213293042798853317797918146178508339446763759662963060156009122131940384779697748412354938830313514249683334095887116698600571619788128922886304909631384606925232133308555800691713969468567438111308135798912160982740142165692440100003949588239092799368438974134044885003306686824708502361072237343109757745664310622731652406745766832013638497384440693495140041412639285926478998004811789782831908327787449005816787921757995306336658807460400440249066642123046665300124137294297071057577478910093830844027609599145915635711007140173403580443326971659574440690480255327080670579404887066898464164017643451608892162320086063319674786723615672787877571241039342210166896911254850547623263545196647847084575326043943072406801621176466829929331743421432870185643949362707647340132166164612009154307584557813909706678236046115692038020637788143619334817683454701416825363293377296333225957272914603366823537474782248159927618620011213866976479665461894550927428385450544132686163709439383213844748559600540747102394291415001669776790787604849534324550551891624657054028138128499435330923694103360673054872002536427871175178916955675306302578542154558606790564058477167152203992371924590617780898917760541327902921882754380762679172201564091452572886915810764355086466403020933771239015351030333092205949303206747290568069972846159683493085793365858956135137122379158770088541168233339954018455056872871954807886177649374790124402215344818352394032241497750263585530072231617284934599964180027860662329215789319025738405299293050392448803434723678798910154444516081101832547706637462055734305226077032519614995108562458661204751783297870905320251582271483722787301929746933190860846620099826102758357807194217109001134800781675218564833115440788387366698946843246293959514833805397078481635571288349365961763667374277827046933038369814963981488271252652558656504490085029241177689759682259808051708329290670146158498154398896432597528035370475357493709672984859429377643000146576451137037397356692582019725623902598692868873285986367554869626298133697085458287397857247308618037445180140382577861515754879935669884140466118257428580694717992567132876725478598794932346661598152805494085264307860257193843804873164784372585391256817362188705102634198418348390069242137296837474861623093971839815603494636969346971614886661447912249067021703108504390827843084716513048131926167290924535868039136517216021855013616441908877500341226496621259807462892787630422752790481157985772629776433479110147399286291769618418740724251279037072078107107024702544042205725849216268338900440054616510713077978608496920570398160449658805701230989747455686671600501105209524227232093090382149672289560443356224211545997850393422579663328428450873972730380567418551422437674116984150694142734780103557927315392428314540372678035933335461172719013327544881953422210018206546687308599736280024220290933211958211334604152804247230805427527404190523171858303482844980939961378961896651830063767201841233453436628895517253503390754546032946161736332324332790053035925267110420254997728155946023642904180001130625439762705668165211254170680910374263167604628285630645244976378664422198081911367930369657011144744917640760432333977464753282127270183039072721345988632456080219962322507471626005675146539333457979663411508308722909281092767333062443436049508280503263666813024599738437251493200668781497097697407422948087579308972138113441056786313062901913005840991283187442680706153136106399861978004476628857233942979862264372532749506148482347924649024456689256457538924541911414010440058087423900275546815224712706091393243785826394929094553343848726843831778343186298465642472512335387346294170413468288372600750732851468223548637829744391567873484675086563609565947454483437958666755459151202859856178829356372506809531257863269277214253383885043919328737896685553454092495869851787152130309298991211484911545966315699219091156301349214759477291091187821147819152599232323607858954553369325722542187362762905576286066003663634131067454644274330622911204030519011924915832389867560621934722463075520134981276096818557623058657421784352419751996981964037941922729030322190334870753068921990273583973044685121159526022654160877200311857740876916347255598009300825624323633127811972710862989688737032019527254093132214807435442870495981507552407008367447083933013345233363384867318054159676671522171138088006913502191530719129995591916171787408521899043224449543146505241940068201615716070022193537445857809675624404436430271084230155095558067866993331917041867474959915871488141497625390928755729396324891401628173361141042003725438756820696746281792779015512075155720234186222263108187153600125081313446087988493589855649046849111253663594273193207534935145894709706329657068748008006092150009346109654454002136036681895504056554129227124372759220848865992303961091117475924064280432369823226326967124049576289823680382654381933905545275565143730198544351773472662544661102266249934790626517748440247218904368100602963004785967781720326251750594556980191084427239244773526370382632038655521398206611862573373778814634091610465131525993845199363519138719922626082776392266173723947294074735679544763555665693089174583632957682823700038715921124091545306518554035947303141693093398101071230441114581798929283625242539838141167847841478940618613690292842148970526086094326737749738002803086652212979669829175314628426449534403846579174597863903717159103402928780591132783516623991355361537831745496742032293068830831587718838830133742494148164729949236539064701184068463925429679395316732443387045160998330553350467461090578037531737715874052745236196167452697941573672349959956488422285310026374864910211682243004085864394638000008484174277388344931337429791632743938105522792668819126875806522678190660148641844523615075270122081074699710364399972433871791245719364718528226958064517699957186688752379414130496861409880715618958801826658474256782453508224306936492636556846077028560817077951217517176432842527529630782838076161781197897727549429207831604104289990414635214258377593196352126878861669864211835349734175312140620953663401564908746762951289967385714677850930612896638603487896955199398921516313087798155357763132838765050465608555430759221304140183570428198662101349738598331134873361974470843283881165350426544466292769177559971091770097040652092072050314978692666080996611722372407209719379986347553944723000174996823694077157143932783240980051980316311979862946529313736199370542447057708356287274384430158556261824061376457110184408996807259122394564716845884406865629560052234318901220213686046172432641768085757744469945987879354005420702469570533977293984187635718562553513477329758725757446179609078908603608888460830551435994935811347360201687232022672372222419612369799642178168237191491458575770038499296472075305145011312264820610666766626918715125116204717609375046838025102067269472772525993094228716010179783576009182774541367579575355577750893897571678353811645931648620735086239926684408084507921134232351766842110050972795262663101333859489797093276126132189880244825387988227855663055938645220940467159091506653884748752310400862461205501951407664696585463096950802984954348400834209473748711855288348906080456900108400901888965543308226901971194479249447603908173594736042766214242860115537271957646203813073152166504772157040103984431683594429480325450480191008488557598521051425139991640759568204243684945731093151859307724274303527137075727559258534524473071077144823877857349997590428889466174672913770537391091171033582708869406620822458904302068080016266971172819675879895509879427160489167151641680110602950850917028654800744243666030633325647404826860500104732404388215398971818363273252831751085048918745185543794043586788455993252260288896688009403937081911049392041786972998076731546791232094181751639498827875862672261895047993254170550442140354535300862316595522876597522508704939385350694698779865174236073280069590621251542107419123524211196590235394123857146601864707417500210474696345323202271042898034315636812099050399551217235509792303449941291889988092540896200390815254612991988152490872262258583101731174601105893655147694128436724111590877224018344062367540514056227295785792640690810598654528314477527868477712931599560450160446521173131481145301046928130570696501605429002440425270949271173800087515402380837619502974755368034740181144405856877817369377709367326965213166673497914332473441844959895932072423568735518282239828152343091896100608621136904193098923444608186130037675044530751621371407775554428367420980798310708343111559364680919948650892029530544488253041467418755663147853122668668867174338748247276845883712563503341447846730425912443295348404374457959860751209238296730486669602603803767195629910970303175043355351534285954552775823528193826951531659749478746007040741078722763046412929177593633922117068177717099276931637770659546591434512789900019306801886112280011194751756657382413487426978996988855438385144081636044915129978664420523899241339153879178576196484759140437593926083393260232211526296810045020977969043143137222744309413070205085391255690524403326793404400739646889605561919140876862587671665307873010785148842122275743049553510227897144285586325135695183636976402627983989066411260226803803586240690446721492920955226198679900025035662510673608547877902459202943500175460172433860141274831830822020426781675067331238841017519672308647513263799585820965043338872701991647779811262797638392902153308176233679387678902274812814559067068942950494098131654005526933172927066670640132401666799192556105909001007270949965269816645459076632272388529326740125459305296969821679084790596338964167258631257013352281576612179711218291541081473901611255777398557402595783724503430836301252554571869471528377747662440946129146990304502242367961163992122420112832994850608910628362954364747522090050129043818267134963804198910555058443111296013543608965028292922484253438097857456183265693434388226219642470625606612227955289826062988697085862546901233933357342243624959469774524950060825434932294697515373737438061141777850048817196386655122450042614567458877450456506497040575447415327470061769589064388620475559737665984098562319224532709396401991403596579256757517392333446879289453032224529608852089642414067977061917081991116024389562625613015338785344732003628597291619038602457212311403885593756159326061585742292628020418886205923634975581859521797569317061917900087321675253427106694627079405228770237430351830930872006203291121261352571005486280537330980357325502816765949433308539496111087720849210621881913033724732382358270367282501350023402486334954496531260300841340066660761579068949161591811637141084719843197953395384940758410353972595880059129863783552405898056551231029360340907452986082433247254929717160546861817396276598959919941721165089629282738584544631093972703105476811830283138175837469661228191948753715967072720831595682629165455864201278947699987103831598493304749033022795261751216375738213070114891939430511569721386680505209636828939194850455033952801305539653905508957505941184471705655319721175878604076329226959366734551630700108322813170640994254654590368008218311472077600094894687972913007441092851839681336193788592569747435019370509696738441481733087702726279246598973201804427682327739688607973604251158151670124774008487168368045860384404332476285898936184665798391455279864513792534576511933197903150036542200598647830997686144619913913476132584530732976956318486890180891385225777589265704517867782180444589266043106485176762443467119626099652803164270302135718123841412882309394349291716191190716419437787069903854245951254691353293737207166456736297614719719741225971534858664021110748639720714321190529502790182307794082891982741843732790816779104090856965620158218929813315174211095497425252938721543479716087043842009799092056240549246422335303304410088408827184715013700043547274097452688339560997506944836801006606603400138391612613689621098216414705253253658015795795534736189693013780241268882514184135605153557414253277228668777498819060716620381430929822514105457431146308157856981892238089453040958841804284713238803337781502149351474948601858849213998222950334202682590261363033296757097200572042728172063511766716591278269628113240547737586339023290484198028757089129464347110694939545034690571376966652292941952089755971044903681751119604118797239344768726338283711900177007303645991295322281162007628845016275316027029873697725296246664762629042612011221298947788397751663380115738179795576004014579364309607315290399366885329943570610446625619016216463024912228417047420836134543284357585141035912685980683143881326495242619630828661533372446391673541478040510327225958611534104557724475784071095338808640528572836656292687363683413830393380437775035459076573714008382668376949380611178969811255327757380735818950126209183036870187076835655190262840574447658910342653232742699866111284183605089955711889594895481307193971636294946458620675965446837971648736435551778929994023349431038091971125605164252370112033557123229291651991521886543143675165751156550578465670390194892192969054047944711269389838495307516193715608804768024044757524477602786163849221044136906301160538094487043833611359175129612935604361215886335828513923992500982425079153288009556289253910552419520332116338019252907587556604043959127666686235058552897575538013324934720906962887586853429899667998675885005625302632967127156533149216683351128831239094916634865315989972149833611765792673750980274680232837047880113280630068694029123989624824090529515412486349013114712497040975564712508758492131539872513662057524380359532398862451694072690870429096205134130325260047553105399968215205015195717561906069330750478124098822801167982841728190949276266117922392966437484247725134365283516054288258463747781611394218866388892544774385734341233062733488933710902413456549157324508389299121926737943603545693064680845548801822989256277132877001826698302815077252277150133176650146166744893533906925293047505791791082991552265848921963359093710644068894945143801075675293596927515695249613988434557042332219765731653979597944365251301791897997178117801317570369896338399840316446522277930198980859133051592207143340177032669778818240923589986184512584887896559296659964095294771091241005449081042758867028187160225250755641443528835122908087208264700758113204428755839229721204670717136784520460317067338796244743265752830943240782030705121151590468628080894772220633613242954597330306328197589287965739860347283927358859072062747367735491867823504408390845123078746707878316810182722925449386929693167760916159929930387376484251328132447078519661161542022244290820104104490349572522708203608856038371620986815288191356577016340715389675892749261792023271948930263744781955849105668870541448858993554982515201980507282940562924615868169021760062232175487447809696540800211247902371620034518875555428499920158523027431417968731496319498145505344310984969154357254697530908894705073985592450476507353295130699606764530487948742150001665858886858003470575123892558342710135259306508699795273027826702554680604599062793980229197486485164320936863181989092127837681097603353341607128468692080965724007886932603595707129611279829573498951427323657266804562647119659298257274604256094058881776937586662322819152017636228267415503564575086409256463897661796714220457245180482363219185457537659737139056659036146396914732482063818756771772116211487017290164885640354857220173172781774535472982028699284688313980210408303021956367131964653940690043017564187361559689831079565871616352312916422836393219451754552702164816064304446660037777527260642085149802254623354442406181492502009200120210299663176446974219453954870156456678348099026607129106910517844259266478551382145304491637522276494251483301829653150967687617227257109852419711221032626404695012756422544588866534211067637765731061096924494697690705511503836402807912179569451897733304233091671385323387566959917964376279460847103112129885019715702940521287683771062705427762976299987968977983426693866647366230165927463196262688185708477475383540175086250520205864428939031833903779672267028830650037993612407990969998202811028871712801488176241708550284650715403810027036987119343665528720722328158904474668320450099015623227397450870444501798337023204142919304623391203632768731278877205977226629361274910910325592894087221832040687785140734526654075476574194035382229597166068488132899542752559345502476534318814925458772664933739726019801733017922264460644303492779909852246588180864658495150075159962389143210240785274340075146171457018576694375962817560317671047199695159817415611233214898065555761559338300571577389542467613833968752122039266281622691768551696716396410908535908634663679618934215401574437582371860289292307118024408465340756193844159640818576401612240910989496253587205190748030244850789252728193495569128555862362204224296590974977329916575401867183978614973577199946421999723728338955985046487041996639450129093693524702233813929435805015135622731412544531285877572019054649117005894064529780004074304393761596142460211029428345187667598761112678997749230950234102930274201990409419081716509807536384525904978765725019748416762144853522506423386561515348681706526353984173777424525003563976129301746060001791869658593188982021922071674105103490034358678483499344695399766923273618578982364170487703869865543823853004852338132876389299341656351511536049206696942814432119417954993562887709343287440309094982186855106181973311603204042971814634051558472417048384581012049059505923554730482578554289374714307306307232115277049262093592891069451673788753136460401595591367983403580012507056188239403487154387478625430221582337271701177482118224455438436540231051421098811836073485681852690137195606323126836811777946214449809418086952651450712178200034354277505409054141800570312346914550322027174776782604981237790872464605764335163158854989976896847327665766331979981458108461096521638221268916382031428121877864227842328072826461482493765757535653467552838018038867459742105904987304757137743019258811048677264240848322363102083129663405952392708517018329330003681798033636958968454486735171176812664042740925518516387126130182295198698292819982197893067882464000717587783483668603403054670969833564028482941692223985444216188350545577647608487838588281056386563673345711678523643577557429072839082256309558354382602497669120444350377706300341082324553822389331564693496833382790791735240868630924459213418226824950536115474925013177136635092657079566023858361527394870149107696352620444670799794156719260767517115633012342352244883886398195689150586647875024933654863841366060837775811127831274402801919578641387462107261134122298322646808714851710449442527500199605562307415044224689953317739290665873555296137851595891412486102580482907242765611096849996557625094625420567937856606099027908672916842212439290878667223832225978842665672311812342287914494998324233313882934065764194805694749449452577470423699854717079254193187093070857767840203328540924236383189006704475258903277367023559310874642234694592975938192494425740145894477738873605407487015018412475144506144270232173168116570388549241447497895046274724556586648495911090352673565367833824601870572789570769268607013019090332700554744551450136167094577380587967819102712749866546886471464920602190004919819978404951218686339415275289117311451126997904563991054996981574165013091842606768232912755756773696612339309911809859579314510798643140942650264750976037652688324686575465013568720502685673312486174832531109712514259670588814778020247126970553509086224922280479161078487768443883945891689826323463827829405344319489226459620810059212235941773233037971017302020165765337608597389908089886094130414966739394654705932185058126713881897993671219546595218757294619936273008639115586442112280526006332330788565933584597055449000621082054276772110066077282681917326371830431663816795793248680780333506057015031865086512609492569332792501960270967597308573582909602835190233494294914829472465219638115796020220081705125567647691838772610982587766157241609462236674926889371387178450309352337916983556475772484997569155436718374286356054586587964955859123664846691844854721963527298244127445635617774651497828889039030355141940473375305457675628045887948854791604465453427547659095185703107583872557640286895590860500348166469520259967732811400737236670492253285942521505982604470902635071222378789724100876393070494181169137220332186483151728101753354322315745583606944611193807775694540702726677070310975682438526717550977403777896063747316415561561791831132154118568328045191346586455338321420560056922018378629939998614442162388978889430992538554155555362435626567251412773080120330630188180926647478445195511910792590011741510618899528361359003823145301256807915620898231684279348829152767099096272908204479897405803308987858712527597869467349675254461416594074040631191938593927011144393434032860561452425296229654038261669691007943327155028371389999459577374503629211269508214634176877028531172495242798827307157302981128215685904254908917089031888784749041715882206163032317285681797459818168200476540046958207759354418435383238141894389340647170637565629675304765445480531278702416296189914426510413023962488825446371840395755892131988910774661968908136322472170354176292587176709514675905694916297031905100315766928931860684739644684157010865252537354542716557052288420252015397325993976214824167153563178002630544641201406409291436851628769859227463706362280607448022913974908242758507890837584854633537456586675758156953026716788534955894269122923913446258576877991743549154987790082097493737320180082996917700142619820298620808226274902361207378983205072553011447881788531393607887731379846342779723880151195004639932783189178871568636094648268999957771156096681353088048824694579290467067074706848755170428381503679268139141166438310518951244146726087140397629697403109678796532181128239630823183614803381917764882296836037509036304068635997682523700672256951759882782316475880655546076506823075945206728371362805386625182371732609722308511720887334783830295050036031940606032331841763604126170539426756364776797549744064454262695146819468819821710863745126523083853543001136539518633377887220067308536423020163581536383862199276236929302054722014224518746359271465763725394678951112372773346065122713738298706280448650557900086970198537176925082907343880070507701962519474244664122108755535197221295674379188179542269157294471576234687042503975191886716567115958739910959536003257905552617347232357579302237119660602197154775109520277627494637051218674511161964840348738198755665073484722825720377933655502332632233643961985043875037639814896155240981818841373610562468636822453088003678770623406196597436024778966157376955321918477573439256028774516448083699289744263314243074635726548929449270932496790144295102961333840371161887648031518767943541279147581940136873302698744282665746059594507241849537302740642006442304457275039579674349728182996525732185356713324908211961342646433050011892219347016850767159620436068341811265943298472480041428251124206912870130304855167318849430249694468592542395178968950327835230131512386366626264188077821136752422334601606752135149326238460504453520508503148553430736799247832384258315069257729893243475020236262629505218607625119369638497877076800980364613975788116432983804031812998585227926198430512584117629466731073052426980026047304891765178340485260950691161973279832077760432114587639114849427308031599092075923605370913817293203153435948875787053014152943447573622803794752977554017616244825006575670286988736414652567881533565443345364540945312539087486194882115901097060094449481937980484343319254032207304603389604236205080936516290458442540176959926886884177542438293795971473053030440165673100394655215952112530144883742983132580965159133242790657520985871991663283030520355089965695390774529978440060620887151720561946434731933334965307553375094704108543956162732261945069554786210409463696022972539521085979766698461049830291611054898079031774593430716730050995670580121682882641802615983071866610289438172407910777321307773958196836185166754175492425951020058476280449895274287052077959193627546316962624989522205671135923997238533849448651294020908065062756929825223862120294523876178817695323033839964448748028646365406640407168227953174988161387557786670211057856913782873038656145047548114532615380828974506327090716945230137475601253139892560410199303428539898906594873639638231079764935384361158892143865915895311577111492391649495928460207306768382628050613565670560859932042631753096498612484518864447357884521856349481387608946992432039093560019662447116084935591730608870066285948367758430070750390082809039711465852056817208420196041863468295945794243576452350397049205595417308660513290534838901452774956753916610244002098330172860994454556004021163897579925882700888485836716979037701046459323840815995151347503241068142496061315340331060167137757476710386578546998934575801654682979875098388446905961463854481444101123716072295439802377663413400461099101302293107591167769562355026587182457471229811475922545804466651322600555778772195332961153011657130086761822509071355385435826457737046800918944788983582851552473819999620316072832499782086288572898832184698033243453645230450239770554752317778809424961721069760375200794646175789534265370020497183827410652329628194763701052965180280089056096057526369258718237366951681807728820071389612795973372673295651776143285745744663309976004517370349543618026321132915172694403921931714050091071768139674040834440392434656299742799990964430687751288107258894499137422917975507802203007114288366631464694880819608763916268031442605631763170438977920151793987956839935860527413730557679358327162775693919140239318708702399434824094731520043588986264617709070612408641875739411960872580997762702974790560309675202684974793572254088889895365031926171720890319503004000011373903039069800133382115123792155429658882834051151765149667859278470649727869159095577013285053961697401153370606679170181190305825399021985710689593770595325073080563417630051632867314656645109413771732200283617095152683114899456418029316302392607773463072438564434094420007923109649741191799765255728693408549725514603938382971361052867790423537863324765615911468996410784689486959213923512304278603605737933379805097455932446053711034175469522007730192071204019134210892569076881483145005812234412241430146876834276206514679978048159344951662857348076550659505962487680439449658896770277897505136025529818184788701208623067780945353734574181950074777251008871548700688871201663285671958875093446549749785558032467626773026569639415725228512247380774311684438151182346839174877787720114590690133179012711449680919792852750616093830075323151266121976655250606221748320282939786892595998588097197519550255786314468761673825195350419055618624184738202247637806347687643465023333498154337687333710688151398163139683718986324769716556783830037563654489630327604096476219648423643529771297787018077118942055243456779970734446775058147161399113727305796741890939948433179631477948790312255711135227278119438829934377373414227856270037312716608949681969541394556399198943909567217466574445612583013047857609789459888769766502113692792586845642575234097040228137588423593100420494246824661733087131907825350197887107095735588515422202851738071425602367207683632248889149418891651261701372874613959779902048667954480791348609920451410684665749876447265932911726112188063684060175673949572842748377037580055790319719549306637967731792983926271169428353532040652624414713778542600603356752072240091687799619513096407988458264730874429394148003092100044012894177332084145485229721237321912277941527610640637269414687629859576207960918056130712717669482097144618355994424495537647211957271958102476588442312186012996197321086676385630912357946705183627354062265451832018989508849526281877538649271782804177423322041655040086212499435354477436568790765362832057076573448283696551880905358440556688818130392870205303543467381250682519553532760466372174302561579032321968846982101560212587986914344060325892401840537297265361605065127807707704450534390233003494978860380897232450962149389912350835721428975438691791464606413775734286750922884166266179396809336805694182043200997603125849857806779288105596981563294916974635620563172529949165506876608043743790713639000729031858969303347391727622333731802325392032424247956158255721406399318921578705891076350484422112062811065810237093109000974808736344484439191490285291411092337359934971900002974373484496321077469491427407339004134650712093678755515034796269341703365055009055121696914292817768247928641431044311154951123348211209985209423568587438815673247689531409913644942091989300586440019268507458535725157126178339043640542233327461612099205514175992260023322922438781003407046702013001508852821339380881076479908243431746140417454526456207829874519978295677780121063287825268025136443346536403826340721048821132975089375590651553782752420307306874900705297956672614388668217851338216093021116594685738913012660268625284678623299287315939337083750836074119045718324250370296466921634144141251705327722793579587975040456671924613500194387081769943088973597668816500080565671846955403564662978310677415491793461506818587959157706814557167967845922543280558119084169595340078170455598388635336611366454082750858239941478874112275315032056637554772881502122062860337125132511099065132661131573727678421313900990257448308478820827198093842589954732122373527225471474279028541963668783818202168751841743237959255989072303758610733888744073265124081814051616161222853720166306650401894189233081945770765121145035224102277733886491694196109340801914496262056982382382433092383418709080408943744387318170429502954412564049619210231672802066256743835669958675447081617526837897965355841419347221974816696700929422980300428099368770659479573082048887567576902496417048718169154447504394522260883444528022040254135668819609614173877660063667769435828464272303110713272394774504328956753120915895082452080167844508003277063312775437222306110785017082060348419190737089787391634457150227173620716259611680476253265378350067557511895975952163939142220618343443881395635745063215178868102966963889634150021608062445199516285776029233351595863251719732419521924953510587565815901751353868726016419671428343891253629909523336071714967298229814485833614610425951432783055428348030944609324228587743905013798936815689052924211118901748484747081737957857020820184066405687741097561531167294216099731418775666800632397976214370788710592704587768729646979349422279597924527871377131494120389321534053513016928546285363440174932881717987702336169362309098781827452436245567322363463982569740730693987243043984240876940143835605692549452453509537645259589421946606999156386208314290032703236457944725944943166407096108491085909176135011407041326363859705978453142736703811613052385649225793821356151294643010436861438440926225182423215569581644572504024528860362029768524540537172270828619556716211344313138351209584102682502481051887701151017535005825829253486780380408496032596391075071581419610623567913354347196502542629317212615425147189685571660093123583046697912749729495236434671530791265490147432642958117906347436541228165145274695965615001552130828407875331401003122689960445322876481212984902344855068452044241965939175566925695374575784676696988518498090715968540028340505717978981092980086388297260048861988744474753784463003224226050623693324261480837163404784988389021639126683820961763129889379040087743716804205908004529902512836522480298311251084245171002038882457442891611682157947489905494153187271320188931601116290664820211719418989023708491234002369913944701356084482744435799588535457113367744032734775101331811347309289903766927172233214995992976338736956336821452970633340019610474897907136661262121013360165598099966554184652916531435401832814439528302336087013576362124595468651724091416367203270925937730499856309465350869963919156218662905578326184701523939345581029088441582976022232778968009822405278236203300707230247067653618376150501780028984924853325130397753588582681699720525303477091457544872047979826634440836460353518157671246912368541779285334765916336054530067281627471410194078935997311687212549963974190912490705630223786797064517750203104744278851519766856580796327428655498044487786426680144042883126248658858738316711994480233259918090354174708582467782757423381897531762376497983834997493151011354436181610999453257240377584714439173236022785560423824603625939550482935782334723173571267148192932445528487142471925400977112494576803562361696210223924147040796138075656977345742637550281957031218218825931798653441910351432473962535398003415428351585932815241909108867703127474188136219924542637761069443693698758874503134473640905735907556383493149665877596446018875659587603914591655713038692173374189318521359922928449661587664616740752975506358713407943660000474910410752332176014102605965415426423818457566210669315921689695105145647589479389046772581137028772015754260715017647897730046910508299640687998448521813929938638742747219011338339613277978587123824248306940558627949842181147840455068870392089383352761320705038427747538105871359725068760618200871083790142920458260878798474360711802069625736076653302145625289221261050527621796931646520842135695790251736261227740001007172925330419617443836926737661056630285378658437079378364601534866590978404384350779728885500551548407352814148537001914091011052860278185464325266184040126565587065619871883504546344227000202443337930831960854780967406968169171459681647743400772252190935284657604850960440198864357281517944926841931663673886202463787308474777294491605822479566834497056048097146050230695550328677269400148711400022082401913898126694522314935007516532435819111659831601286801965579679406855998024684691733903552682416702457972015742972225155975100138124222160716614651181336848640971492465817244458974612913627128723118003148603182985699628200460114603097957183969646549819962732117300920178914090189087376151825231487011806320021135761660021730279288373622231077351810430839859287787319233649045976015525773900288104631235708192420754053446770384857525115428812633123511121659728241982093231335221135837436016749581629487057740527610224623391223689892941399831814897566403794125786115257103446529977373280072736997126391273113371089905131287649337782200866813069498503853805721769075244474796947165589958268140025443081724908691962803511101996699871224270469443595731965344915644745812165010809196043943249213072735742089812398589461714957774322703877391450372162282843401954289565815265444639261244142349234772074407948652944866835388711678733280853604095451968655991936417288239030391052025410760593773479042256894896560401286588100397925063750820496058971577355644446774326054692976847967956236232041798384226973557408678033218233854757182494041430900825377229305025613016218304823367916689514197981768645635786261786756754118924793234385619995881147471229309568147785959243475219863545213112317150842635994702686388873594345384348756502539635057710581904706522511793104340944787689889158947093856244559283777359427880661868819389821509179258440929783744280230399559260717573143661743797138600010985737767338819614125847081206657182125562457288750278162788770124667851818732134979074518211454581364541556321926059211540946350659152458223752540018317365119872008485778418909964974193425237392235924183969028285318804298235005786467920985046988637739450074751872574614127625958611889102439132255409776483946268233363839845634731245682482843106637376048086118855231582937308185156910206622089299434552552315309116857807795588967476172645104480491091559544451659522075413161642697804975019344171636246021411484807989290288783089873969004316544276123680755281246517397497862347092745223902777470681240503503042041471874361490623565344485507166025840968162180824904158645196189631039545191554047499907380993641446478551877011657965239138186202542005983738240947268038298277516802062331987195424374035009540419665868159997262526465327354719377284785469205192584277365874779522657529017427733456305501600950512307955924883053824381848210010975857536751932281643475796515892969186260002200396709949890791869470243353344035676917306807817510157000271612331968680783815081776106361618200122841895811704691384983007456074146452587758183781385315403505401492786681903151049147928884350748786442285459313733518385498427643357721424538657721202427016073686815537297854542814530643326640831317126149605931298763576734958838502359855200039986772877831665840292521203096443383790050506132475833049781666597279105003373371709749107152413444817235555765929285171721429037724364581642847445120724701218230014759274288728688767194231130391411115179078531356313753027150319211081908047289504275365010505087971648440642469862680776422825937936895574394166865226014827187706331089301964725043353785062929126521091424794603150840471145641398390700883924379599539839863573209347437023420474004914566165258387983774753486141947255090183312728876283953546736978011748530013676939603034408580067736891789495262220494149453059069792116932910604674780889916193934412392158574046467550145218133342675361786084781693311405267605307874264698538634383428445433673523073090452356020588036639526610102513802696434413687951015635335105134710497222668186972451826800491915728636678372026325712247188174910800056459623347637784549552011061397914704306976726448006053924023783732278501952881788556805919803066859342491327954224851696070843381177603515655760813934401005403783274234897667795234845593167655683683613051897475367632437106342696391992264245610417455019930412048984868327111891093330810545288065616300885169698407711960564184792771883956649204113983789540005268027514634294289059360393192535122961880800276211361499591034989601243347623477651894918656703891727405340641109919042802284036816062640754670039726072447527620526376876214964109406331353317458015872476257362397749849002369878730712270174846550571563491897101375933608692810957038529778562102784396717978574869970474217432458201104391065369209761725026713977634389233462082942455221320307311168905674800923539731038267949577887257851751738789685862071299415298065618878943781217015205106008180912942810116100632562121660191394380486921917793392129256042576231834907410892013460035109545552893112913684571107369570109451083378887672308063063549379375658400644564140423133483476710028577599860827209973962326299867670673908877586851962041340796003387836820339361287478351781964561624277823359094489208624296330961250127535440421986603212217108321748092681136039133113516798128690965126461313397397087159536002058704807683840232284514234845847483686607772615550023135682731944257841733158322203950900893022627808318940805158780568235535512129800086175793726139051108511935632642215486162110827477231119334073104316454284661874849700214364662226185705349845535788267131297182337606613093900463708570392267436891817630423527339129664890406205062183215781196199493345576722225547353367361657113477546066304380678079803303887177312837565839797805479378751258011350556509343578918148223528747419643382046009331692895753028224953868144080867183402226046231434989367369957547431875307959479979713113576283826582041020151696181172932077910243268438246429853951808561176069829020863043198237019791115934477163400146128854791323836301231389779258843883744249655861465350351324380276194055462392777003727818713070188872077927174899928369748076662408985196972369075041504350107423978951898938526528774209231856773308186610398666962859846551693698906085152990666665238295267087498815891300993875487825555034207180891811072404258190232697772747121952666495142512315998425863101611942488792906830756856899924335560142001110132780071355624061865867955293241995431302679245340595723115187299174576382644762711441167193975118618326321367886530660098848385401217433651512853785178412283803459834846157009205507175209356059397305291921207146266786266723824917025482001304220416587529610858351397426965984874020748922788236941967855651038575837720365329405365310739802872362760911794200514208673494830282070285168164705674372442566243973455873550299620016674095435800857964258953689546604034095881850126019480348595192735927776308128237890256152589714573191169054845222287379960332203370703134584342656102732400752689453551702854709400993133631876941518785950748153521443939155043538505111458773264849003325885947316136266889323728557311046352371984916337219733623162812317076306873913298838477644806501647756523845366697725708942719994501108945975570948613711210378671026269697874985516300412052897231001654858404443753102604596663676488869512311458114268465342604989794681051882859358626117326793719023180970231030933712216495789656278968616541885097121660082677710564852325852763341750540547997797443517217035426719665786116233837255294193839581058076949648856009396708593758571391226661855786634793396000966831720894557109268669456009422693775650920638518677922250161599952215998023366779989643108371306496778991904660028268590329569834194822412672341236659715019283468511932072466481988167364262281390683596061540687226745432636310602546076462735108071434469887988748971185697520063837469796216653580535057999930241316852904039824146001724325881755968718171938696888524801122074228230755220759904539742738611561548385368030913298082399483175209832062082201162909738701683448759672178006678383005809874578833066855260783360537813479654837314468714188398248611743958604098358367798216082604861804029487886828174655814102076679700090050732828999436533761660862753524284644370016592088363076450615620775006701038446704576169523543858817927766231197443772471789718485483870383378689367310428396554026658582500479323998687814784704491834170722752598363193320330570803498404632291809537013553830147181437620384406226603681212317221115485274932874015353199043735906130890568644889437661411561360132985599727234255836902148795560449005816450642077655184944282931673905416575973670367280115436578110827926646967628573506498048729783265597891421523783605106724064253603211258416412939238343345629644454088752655342999929855181730973329886588179363237946298244997317223491284493084620929698078681302412390818402425810818882600184616967761486964723338915251318072761000244113969271032424479132622856669263627786767084943045519471446247921620470089760140985555719915224090265178193192171975502060214175863637160077259067270143214592382443668885533426852124670150421822231396231078475700315074778614604979933214396069749280102900029844541478567507367595802130831617789180750327209680378850870193206710748065847688193950810783365406089791269981104816260135751197575147443511065534110028573788661823626087558939925120190555171260540372712598218308794561127281509687343357283673048687015174004479120935525642104130958863244179335870945198246438615183967778176404909162170033096413195618751799240178110314205220210689385550413479365248900481092391139145725051590625628495904041570368260713441307996914499725770835973041843548350449730542306273299753547865838155020959654486801747854906923898419028556858635563743412170064369391950904083053360846685393470981484269100359557662906799569763027488040157876265760142914850792022451821330665893578369345799018918878654954459168099504548685021156440772479484992903820116211658197908331812368757331240805712830725974784838366498717125139700693608074262200884931029967387130155241562619556479817253829248230172788245771101469643644664372674040936984068422428000599435365310016103758358141270151075919639808881119726291440070907104963365331644824590238343796144564038793480101347093782239027411676613008161188181835786801684293779497218775244611202490578001062464285559790290270260577164469052496188060351896576714914807012286928467380446514797568396848234206360612082124477960781375963672206597179583773565606710983654211032064573355834413919420707040417975851936340097938828362770508202642840842885085414906018869662364061062707814035873861789508615343809575319884689032727096886166031764966655857967634067587959764631998801899661631910677723434735867584475573213429671338672453540433998385211418744671172813351898381270594477865312216203310332449944630859239788246378383044925347627062065753187514048159239864569713053467066447550378622086369971404186858554916730671193588477388058521040204358486087135007700846670927750353795703332104019903778487112530026035445939345127869363988643369434949100180494958310805380693430991519782479366749756119151178475869645474288424951080237561237043966022546925323495901646965109957493805122630803691612261572534892145709327724456683567620604713833081801025955935469605584387172846039081014305345318608079749162779579552973092649425193872894229304727671304506512597558283442191092867640751483666794632513059527923058601430345034055891164267037876081149519214289466029316335577396035127972895345463825077214508983697147743660407834630064406895033461191899792459338538648695113809873258626877152909770941676346923129616676152910705499731166072158348468174032826241259884153569669190016213077950771775540495570656786980167193803472303216246426253186410324131483319634603665947372467780336886946899573758577982108597693467474079552478235980917273007964545664818620135958570435715321261098029608567588883743206729875636173616770833958189484755475995910492891847824520496586931497826834413084467562239670406538408438369924126565062062128823738079797909791495954551625520954085159000953189749788792818339890202760999797307645349502091542639890184595168247972470045934009011769532409609479525334466171674110256324895566247323506906361656620199636714633653705960769469851472422986724434198957965198828735205317251163376792759525972694709646425018870555702807065179819994734473704558874752163816490459916873095995290227388615504673485652415730432033671490171237371312229479355565862911834305020942684825697243932095553020837735318519493675210958868734389811944222536126421675645410631980468948836080634910317952485315234631060893450341525348718642175097920366847709378421268238191116229543889141319199682262438978668179736247255799021891447495537078191362387805487168179868813445220519949754929652230805233237772345757216493057846953559488361273636545665066268762335283732774093537137686416287328298299142417262744301940535077359014709912322109112794159864536455133948036157047217322300409777382151066792160733711765894908418096843436325068404406322904830107019033255287335314604639326033366962198966394868282130923587465618777036997578096463715735116606737625183373949315738709770897735248199941412425026170463816084651959012478246141388385149211215726566296399589573027885726237907164713105761200273427539529356639070913153209697617539127606306572455816380369899745823112638212180055507026937498507780143051054976569651520511972409121109929213354510371791658051978365529725766984148715843655344417572739435064612890267902451197685413188950622987925184477029706819020325360706495222655651396975447303388877417337612404894720589230989732718532269346443736970176044974203045317261309418681737532158451146677946302310155939632426866408981503745667808659936210263379517828116467414717267976341491740406640242405823117841198919411734373338999722091311830815600682789924131425346224030640696062566436296226857917775018139736534485982708561058579266496339580648749047593167062157261708248478945485349863530642339973788993310418727084013639713740767889108738375601809462270216420607623011597249119145444016759789882398379651638075127217297115010184521388113497701273023158738876478766268559102903533446848402320111903851882357575239303938590025991133765842399561568974535618673762670797303058101992148694040631519771165287035381611617608660743349243242329293628228157821020578868045036658987879372323129932964159495463013963302583742279150197844641498005027981584841294728725597634030785570625305328463867484396700845314901099557981371310955827610927614500711383605952330539621911014677910126069716284698925784627531870067780213727463162346927073234798459351594089076633289413285978071173791158147564863790261393686195733899947752891541332162984524584296094447923514826383441187748645307239738092832263340535279430310117527296973272577010970944896588159177684425019664231731377099600743856900011062169621734245312184921300584413369311337291415931329654099957997154727948429566761246964611501622253915042908197759156515763604063903080881567899284723542943782155875343343773468973367978354141486289518069330604737635815760569293382822847069799906824725258647961522160801868980824574340856059284966326692130697635512552375806940825467967222075380324397006241470991274768964116806728662765371656953813381540103253216013544215970012144138140251112894316542386922142075251518041979439696838321944269156652794652830933565704712473803612098604289675524540119971798513062309301286320245496395126673580093507499382891961315164812479368099067133494827063530131152559877334916365517949092699041890718981490211532341635705637430895092073708004321812226357209529359628675766915251707758813759837252151276381886158663283098653081257737157330804158078393456935448805771052740667051875370103732026503085465177250211997475233337754299486829293931708220715976077500278094879692658629002822510375825427240082804453129983328866329195147942830205004788931275372873500914020721368451244036323255911593668868969168462699083628718517642973981667128521864717999122275738983663767294313372321166192831087989614803398735379228355757158794803541775133843100021630899678965180287129029040921151051193767540509905504611026697972173508564373799688350438778674670135458863808760758664392173652904797500426041426802333670501072101937038392488444774390796063113069142590998508703604645092300492769027548249905398142059305383889773412917394969067806602330038881779843499411016932389453363216919369066421471042826964032133009404596008734889065813864973613419361225994834221029737146282546804460970374545285916448939144695765537208400505259526329094566042121259700120101790806428960362038734956737017550839154084641835653305763014067363903731483527237952055923830323756865068382524825776159948233109951519499641171475246321370760771386017529038413936464171380643494661917164392658694970652949349475307631508801275248974666058380588430257451867408090859886574511221437334781282048584559543334485954810446587867051951745997015607354490060872706431212707590069760278647229409764915006125001205389710705287736415619175669650249127092225238382555027531362804912808122223635500298020936276467931444241489387032385014129217987170620890867252784474071141160054643174035764171276920194892000590890831861552427464521887994210726251854476649665410487265439898958856991266902052884484489260800797548075865224177098252165400984478756864103136034600638672207307388506432632043270139643811989349548879437738027798406142964751755998810413607162227727166218510541301310716522913260290124516141233101390916977148695027529610366000821616486508440698022369455322711926606211585157152462111050388009146614358434233355863083185281778377242336527342357379344105051065758384688432029064124566853363766111207305599096065008681750418982902722954550684881394671207573599585691016873335021390645110479032927248057042683617613022310224565553038640312886664807442619280434296806405549883831827386183548611412011487448362007155836104549415480465050282609722181283901177745975226851520179448813158276276328405705788871904096663217721723141624399852163649045252933945248309641297365611189443288130080135838371432249011849207057122705989588390423813808312795060106252081218100241381569481606001939283491872899891380212546328926946060486963932331441763954004067068563105123834031202481542349851962614262587287967304175588396608651501052926710196758660971723132562181974144788141730642778031497671726928783146493310971055454598823854815755796789071835336346967184960602799908265323374218325037402432564303134873756569825568407314260004539743148046142149036523805317603620878821156194180396101392715899422703707025906919741657900042953945842769279497813168640846641234877630143317473790980416186090169688177865401311787515040688191729286894113110580356927689237377455119411671180924464283112734814857040647660757869347653345432293338862708762598916238839570408167686944951327246581004669487668697141487607028364230752324525899451612991057016809046268469076826856591276173488393397682274824732036592625902440492641415397525767376380754568914263032895818772290246524405307701630429577768267846870586852771775750531900013563790434410386905404136705944082708861514320625733576342799316201878786560427220527166745835942206083736294932721058154828040398065408685352540157410410361315749661970427143078856211383559940451632611212305574267652189966734406256902551511250114716317371710485860552175018608178124623043739576119256777151447372686962688566857783432432727849962750687663547769099074392011475757153633940406719371006980403118445441949948175097769519960866845144773537131280646144910795995307324993383272919122711335842682736214503535914206841529449695397693423712049236509689982644497142494585919582444647024726611470793060883661482217311652775811480808640679599944045376478214190497558495685566070551650958645284293912244343720228841970833533733657442433320106119735162275397813160812401623455532186331767651028602652689755087867452131220143178976120722538179273985863548301433111384129124845447178396767157536740836844858144130147242889165157302517279075671574190193633041930257848828141293458871331990197149144024779302488937333831122665650059117603235934612649400099394403009140538898683775202127503047924247992632036909536388765213951297900971219890724186685968387928974602633957676735141776511473714339125767521876866468058205965707679392702151566584909501222838471487186382016065205179333826983631622258830280330606428997769175455603102184822104313675982028475687909979967777492804377887316065490819946264365016290328235166755933036349456543806205795740856748201295689182885288381027841508090875007008543781259850531805242680918355389799912237874901060126828031265251960550683189159334071319825880145584808901071695504541170347012025537450422366971025864598565786256917282541517378799241355531892818187125265846030872067346754133493636941459791092810347268446793048268515264281991624607880504199047703878304636485371049022167533160292747968860891468116605323699296769105278156870662701034709297325355609008156950651362399399875664692490831396640375832554599052859602826338305242470600584477572002564396051489655745615463648505567152056459878209641195116612155629478696474999273454954892964938568271515523423875368404327047268907884293304296908564001189676365364339064210864650355115117915295757900699865620231144988485761350754982004230810195714226842367067668778808005478846390872605788569953992104316560932217149497477984585971526243526566820197384923389345502238392927862588048204572100123078136694033359894782848484070889362586676377136235878906063058401331561400232217796963459152811899837333166651991666023738746590755369793759570623496759462392049841621416272199675826384943710044409284839455196594496497496830595280010206403308698771679967754933931547081312001474114453460766531232154692171558599016411998815147790758467563898284634333943784514871898610385372485175495597320493205149393532509349815829925151203895421454214708459081615458864692096317408128227183370357169484634523761972771005934614065544864389525303129750655254296702080392463717321386581235385038148847566723596670589866617827891755225194929361474368837369883409660593306559302842501794209204413644508997301580408577052744243473088220022524808819868357664075465512345769144839568834148077772038862500615869268245868521051649363556552018315564935362860764809634376282763241718702143543209333839590447271672751216725446681945610073500349939414152349734449360555152686168043810623893906609245632522398108130641803355186192009188654327580115142584644437055038870697873380268418094342891740222279080869670315634472687682559294415496531084202989204799105916781474164715565918421142651604248491378226502284018650193698966705546254361869269930141615882330968476771339744601310259488845625900565314569086321050947328937263919613419368067555387585714104366587801219441706849265021768943695987366167653957985754019628781365546405010469591399048087139621603377314895956849879177544367280313146102791418569455896208753480920557752140434347432165506902108645859151482739651418378243729730671199003713474335068171770164178366233022683419017522876593839483416573340039515093222282537454918347319535725903983834007049128564242806959556298955556970644752252038259111375354549792302654472166409727155488467984497562817190840794241759762607563077782955059475573947391523861570295274231004221624460398881807188895238981559745192977383548089714790644896871938214523281955887185146889547855278549596900020551011238431009452274654232891589038328921742972952448344954411724091359748290422180859459917496507795670177986869384188288616937583162965020163199184031201380652647092880159512866702534914496960349511165217075784426470690098135947121335240968617824982536121221564922926155697149938950181229477670398661489130657188634693733069171805675941079502131063390961349823476114628809077412641244610706643165569774241812170769571381855547358016925010581758952047555182027540127944572999495916984093291295374865573171888322198046880143659697467473073286911334744973068217317343036856314830298964482316469396284730626343664576225292445151347785343353559380334573808096821400980766689262418676921294983315188171095053490431545670516091230959651213439778321366597799187103533565928083879960566997967017266038589585737329195993074553725915882138458188195419634012684324879588963081736625508576660103733407145291440875756975791609653134312692179129034063599231411040833886072308565033097123979823667622299926069076521564602497775173376623320847427893679799265376828230588290081821712430748098595701253988207988243814403330627021940948316178104074430778711812030860861540347648441070309742103594248723199380914618752337948851729069662078322388098213949308821986241963355140888514612753111016336962351865753378885633440483058968001934379682438788267002330179441782830550096777760315319464398517118464559989865931824004847976037075026167282161711818472446809761950885667635300879309397059919108620902738441712049387623150550121725488155353259259207498168795458282507918004501227199460180825737703123252985831688648598448984908780538131115991428301635656399260424819379996899380127840938200382050105597589184429812211731014156720172861444445901009691663931070588403291839140724495741842008614815729090361865947009452431971451140065420865974449401406515030641746971918195956972962985524801006579674485547241269801509422886599933848071142433213194601921531003637974380367936047808852157448444880670756604190933926311278538488172948715003135004161382055927999294989225101251819091162158674227054183692296892453955297312169098715328367869207438105358147292517494582715170486563166929622867436025498349291576415332929803192414061208505176933401562169481042889998620860853619337241330610328236814267332191740699165224639966432847556954233174157351824050208787587228061793048371501558454144742219565335805883740776345653622179711292350775353546198687621050385913538624521769935562725166548257514825666742374980250824484885742054362104539714942147265498453788590775366730663231760891192975295212013031008035404913080375497561896876428731916421330374373288349093547188928130651523841339892002537392605279756491741439597785940804141615835556263869258621473271663548538734273787913133374480926206826827219070635388672137109014184405919999870125205361776480650099057739406099378386822436025447520080826009090487373197100078853695629840199355132712047977382010688299371974294884732214840969217063041509175734699025870145790229845193336117952010850410920419773536654044123202405549951927833715326001789277722075302446910900997382096106944210894498405233296900656627494745179833104713766007112351966133252651283130434733613364180827263709846442306035112729061179280970202070311509576440877035679882222223884812181993666827256526439655515580857935315206268769867526392801567461525913543935765526722402856571128129930851988011211221468888597195802138287692634730399419716623477966358745417601637582381524230109430642693355610452506968361997696192772562557383635054506957516668550234692769147789974149328363412547987207020832576618951683662048330569459188519473243626727722506968533062694745421746370029165607047692532925162034085233210768800093858263579145715352609586459369950470840915480353613168031569649815787286471127105421419337892452167269919002307447938066299100962026124529415715149611112072491325647228025630983338674450759638609500560140553106997441714718811173712556779195606658363944564736947852178325132834480084014353255840176059253777126185595063059597957915988010313387978097497885997240378118191656069493374239864743433786013641323978068346633472624678427500300488255118952847458608762864522954381854051421726715114052114273251763211991329350184594165629099974405340064459798961697156714791051434914726084705734761687489605620661734170058296901080540333275261065241831856664820795452803116810519014985050230755400000424822517281981165401655335234393500600182352952816522952232200094877879563112673789658314417244073730060707035708054599356867135636682633866965213489429860867056488401224510151555374004516736087902419376187507388282029230306775169021655099656867370530074079791987274426039483368641146130353149071433042552599857443753252754154740992453937706244225058009959077474496002667874605486555315602464931757568318867981709848950614675326318947620144219938425326649954567355996664060467545494231117966253327931423110429098612270289124706953840750378845775678940793388779557036925150623712561101073367243933168221776242775584333058210764542691458313389329828855206634312058583792011111419287015204107615525666334587549281012995763509980096321118340898932943473322298978769621663813224001183240074821196082527629263969672175456482325106333748372905215529324038697320838066285643816588736469605451302383359344033336985731341210356079687180845448018787781227830753362466720804527564668392219705515570850936428686377092022733025705997649693521987020489844313566907665084212886974173222652490958090425788649621225505885476979041897630565501522280973711647409505041831035757349349571155685257427032950395672278217281436700490186258489931277549484701268847900405270355783653963877414872724666545671331301227611859806484600547025276805085737899738522537751412233795157770327582783723536963548721493649427030161559084219746468104005548134587534917118176700740868549112504856459042014598068260731347968769580699480072947013096508871583445711269336450585532717511123204258944074376655455473306673642129100569074116163957156743023799934038404586644885935956582706365284881158124418294686737712436528102379005241032130076482803421376966222442594011922210995137900754731554814953772497443959423400613973513838284815893920104542018285830367094570498834231735715596239522572005351765617363677258317931730155079470385619274455117635856032254034896192463547933780607562237611923926473478781500098725365277498740084177381153390715124412098551781825649900208902795096137622246001826084156694464379666297412510724904536818705854270385271997322577591124706466921943408802513032762827076230216900464458725500746472520669826178617457948046964070608093269084113484418541856972148924499855555093504245389562623833499404635002234220560466259902871230338655450594360535991571556682753424194691480207091497463226469377832025046669364598551073665566581192800383930652155541415010836490779706930539944950147521174911605326530004233422669146149589137626511422295073662209179895314288435368024872082972565848411279804405601786664227845983655406572416187185922249509452146802074705419861992017240625129910835956942339929707156736809109923444604668052055157051913732167636480500575684179980013121561917718543130597722564918616849700281793670797599403836036962916325718143150879479523845625615617542239123583753188967281610864963475895392383510886692000411742775214909813663753680716626864864356823772602654375666611507537079963786293389411781255138909424430137680974750526071054293288163149390298513449153670630151238246788924562343100679572576860116228603873307444799794033163527650977163927816371154274272530631258925526777521105509124604831133036322570300615661600197308906915002560349375857983901958976416707804769187680012163360184847466161392075472261444863173842071652336422347710346392329759476281283953883285045848798258158446063458942301311873354326943241122186180455403635043768291630885013615037999162346140474592217414580847474680768251553317270801986598255850252181726246918859336463897075898871791156592327423449719215547713534787028478187030584188088420918849616002092993195366489517053612643758772584073712462383058848258714375115565021426585488877947289807516644741339515842975648643351906197773456152936482405177521545357692668129839938630728861691287058685930304225710168742490979163175608962330173886734227861175514997646153770342131943480813791860413615736931655264988446275633409428189061115527673656571260731603053828768910480576174372679419480960693091768684227874396305827657881031293486768011493358724539112839661764101113648505069279500148679054185263528846164119898568975326991413804218346023604866176354722789476470287331311219541035317867944680606817363490587578804697189886964491221228049707410526363422580786821274605382545938070218156590434440602737160617671018680632858520932207722910539579935701719371145803943442008357489581669826467225563680403803742320384848833892864620716007019263989936274080622561998371866872408254875868869120799043293203116156852059232375732185470092997531376072469774796189116316200089359664185742969109119730486347041654730088983875737491714574482651662663336874240750093112096947278993621046117210692922028627649654514385292264414099973572568969602513362038660549569774017273842363402882878937498974701268825244070756339767881861883352025716103193809969356848142186755900942470163537421266329505189670612236581932726085971134258400371424417664183487897400037510254723198917639622189530559244858627171024223531051855603607780110717122751310211940464975054368696142910252221319577358013181494205526649277860581592120736492011101189428284956542601770842754249938207855755769988618212975261049909898173938010269217721776908229545408429857527903582351576607475350567007044885539012264371365849237151970445996556777018572201915353547943651373432756509795405950336827894339612453788540304271501256547904700423393847300161945675846080279789578348640036626540333319136032363302153840259312869321955495105769688049686356337774009344534871488283225833242511019533324837343558541644764044149329458199079116005157762684167686519998575756356396624277804191499611613324823345226455766594578654175247688779806633716778832711512286303064177532505194816075278628655092265228169089096570204987095364740497562732778769929800138302845637810280180749674417372387372371508032256774437767376482176157947161900113120056838037485645117934290857555848647100750118620529069779942886742355599555439273457960364455677672356677279436446976141463738877575091800642755029485351204112718310165455239934224296173642679944414367986281190933644007554316890462440748475489507767143715745873232705806781118918735921933845746821750390848353353313503563661121644113438621142473845264129844621945243507204533331673268572700940611134653790583670928104434435415962618388100043945747786986748440640417901807176721120631528142992965177814611936759179796474537985704754985434723701465797085826396656370111466818953092129622730982707174383567578079247615803919928051502127145649227661848377358905872429306768011075665392652090385038094312718091954171457444535157654380577355994945626450083978381556491287890248360632841867737168993170281435176823479649492683917158849288458692358690148674715158391652884693419635514890095337071835119372636012728545458499208809720094329328131889751758130061088967455067862146753658274202832520769314899603831897965517756061164657151131908179472444913060529277373129515961594716564118678982328801825029491216616746770035823826521068288760048571179072918181994605971955316662863673054710407968049737113203287620958286222700071962184519286881208086033226246185001497537987780707201139316825413530990302894560582653130931504298077021545307750538801871109753599592576298145250361295341054439771781626813452354918923120058108973295920068434855114706629105174125803033785730906893758807424757793605514082900139494508127416102476411792668746755070300056141163403074351589511298468880445743150871941451305007403669025024247708210494709761881288965203893556709216765498787742815801395787224175801062290695771071801218531411962311745811346316978775163951292079367814171549737668508304198872672766023338501385363875342941271082499021768263941116573505140935352455763163216780417611492174687050655969533606475934703815739940220191673538962270492100184707441650370299586478920937774445168110648485148404436774098986295017136876003986513287951713135415546350211114706601245849266508430888472684138124739916002477050667162214734755560790001487841568192955284312285224466053379663357457354468999596814502246269617161280478209450632793475475157948879820109513461606526070726738766863007100216128420349935891391255828736041736590101871891173390967685203822664215041887702231183817777511666429439001097660072169998165613195139721531465434228035754492925632258870351083479027964220275075564869392989719496962900836162696814462564745808786064990234406176772544263000939876244571823765650090313654125597088728650861011086723547962942684640880452981986919590225555075754442714982270001038811726820565511687996721322952499404974700567023659345037731831038124463613844908848724023395817226716895750243121256796836333754024308124831540562372687325658816549269253938599838984627458219791385569730925451053224472980945427587516734860009878795771217937929198532521186630990659070311730291540302792485620433654168065579348945097512114158620183564051641483802552731715216948301366686316718227677381032068907549250056333743787012414646522976315379071586838311015626748823366309487395281369923144470523588096964083927418410185674685411068590621251891980731986360170922521902759908337970951290448536715720760607796014275698124283570052037992964939681637867761155079768596512322581004866797140025910844119066635819301924822358201506196844022245287364116316705456184201134037038393287244620772998211229808027112427244454600807298598495625090323167226863595132589708045521237248274639109009636719106167077094492552762257337003597868913674995101048474865093056870755341356616364412243088915275898250625432311312850259144915059149599592046106260821428054583764847545526352357921222333496327740138877015499903568038848844448555283774297148250146065075741297046103140710252810143994333179800101124689273963241660975058875752154685831916207022156228095969092880208246471290013789048622182040338955363802952126942187521187495474734908056579915743741014173624984660299586249359606523008459015997942215239792980302492288673756678063049145219565882310446046348821436506721042820275521558560740316426807445667443899333618888197414565537077758483160594063493661698083914018510064600238432216718682619040183654755997078623014531391258118491733873259845941638055509715173159051267775575894064914957263854633833846613037351469659987484774276412086093908257315819769493069321153268041246020268489107288395194259756947646859264820960171141530494931122140341411890656383936200170161516654969681248462394484593014930845197612262715076456222885364766104729262793226063290705124882197637639425651958098221892119138344782166578378778159585118295689446172348485344468290843471798887631248264811684665400404097762901277888151326332738184093971319750447871803856483942480382666386486307122759205683409210086352016786239185314183234848938299658723632627550815673439278348037054448635812731977776399553312321174928196759100546970791805265201894825352774507200606229950179257456973468098239538610698475105912366082227894052999153296013107572307597611689875199059719066248109029818763949459740852506490616886671327851788796673302559366189254614899251241625038825694161256751069523449391749742423151589099227150702072251251635020985138947710940784618132372055948203790227749354165162793557842764377652553387632244305546106545479675650875968709024188065343119802786303418990161357190867784505060422987379680198834810083995940046201973960136771893799647837661740567163958923531066300319845714088052604264614860361199731694406384555877812514934046557980447671544808731922458780663384907049844970879270014391878363359968944450047368340570629942320605469604755630150346650582267825964572574436425750475959769969954308086484510723372459003405710934737412702410339140888648633928100991018027276337101440005649430745420966505004909862200743684818944135937088318340639397486623321719199674361852878752163323938856777564556763051401206398439201385680094142685663530724071362561600842355533005190750694669788694093940637477343513008382070129938341629750448399986185013577160915960533471231395358604271038865855360486703268115903015435849717910423160437705184416083817346199912424301511804122151410169392921708272798015409030028548745636859425528903642809014668305600497284299798690759157062451736609162715147724707809573661237897810771522175668036742410512333052830170716034763054434904014612062466500051499621193274227349653103743410231945005911662259779860507066969300702124756158065120108857047383050952942212799821149952822412287808295463188580847955436778592486486361748282492932836477379467622335096089531261514607771663372325553557490654983571016202141056835804446070496962078755290440131905858725934502648887920998121060371746962858247239379029563242093857902961542908355226683147536407388663616038381989589802942730518999577909082145842696948760986594273680037370351599578814900446767751862031881653710285359286297504197648797261467583419658386954388062260987948923440746975258952112454294660459993654998228347409261719103681037061315806869131317524570308528050429782959723075940010872957339611316165639450835071748919278175450876576587972448732821110391007814055246570263742243613372162373596101299559098406909733132302999490412480721582965362448395765457748290238453049663683228496859005815842333364634350854569801549100208050090384343308665531232009804042950986671922164906757480606705260727112690040168316177638820267056790957901629068857873280563805833865183179743307255431033519037716009249997211188554830296820252618428090569636579563710556963694135457712461597720850444912993960439024567837164095967859499033326613388563877063094157388509162024210566042924149293258771737999343977154294576135190427711600405872976712597797598630124712048376389877255562802900951452032869473736915212171477375423597968637828656334275150486077338501786406600719314234716543231194987512879919420109405785962476735959961017959014013774993931595680777946101363464802411726636349198071023759510486155547873765265952126527871814730406143634071461168038928160164258509606080275562677086748147293806207007654596463626364444923550071755887538340440922211137442708529088743702443533758415369410783108325224927251429633481214758859490133345386014982807256841792212694935688261869564873046264176526320149208555129371067188461550825660338989207464771969568343379729529763503351019478772157902528701313469850262081433011124905151281548493003969462885673605940509238609059256840865886122159628461698121777425969170444395456058474812785650590401250035592374874637762371165558562195394687039705261682413901342908769026527729408719912849316049251749204489255053220490727818187534418732853940592097606053588857016231300710937828116195537937105187363607841111412149962632086543562089504094702968687576727329598684273614348347648123991997389424734292650368921100151665932785860971568459665756835258181896088156974631352963112502730655267308734047755651469281817297538114241352148023478454998907978769903755919268622107808780511739528649614309854045894751355031943122460386846870581778705088294392983742345295498122453269980408045366610182058336204646278226943695009651839973976052190207093156184703517788291176215970547388770638219678590590980068445979952182615030867486490508561579364858009765876374982715802894438790987848062213811650023250001112791328033476287709373207957965563985470627695759681349993823976262469397860401589569981886017288393573886271201833460987650925604191184997754837575863430842725499671018420136703497688329031191776561380029920707968518421808406575561376481812775881433168631435038635815937019386454576524438184128679400620859462338743644494815565099578683624174708068727997468100379750282772021602503121808924328920227827783829301674090929648543230036238070870916980306046906776479878085434916509951509977635789810351745893071621637571314447908499162074084207631230644770307755298725525762522871143651905324604750626993491684070776409061342317268145584343524848794949804271466870461425734144205824459059605619579480165397269731003092464832341991025450862789039953682983358467709509646028353871214097251114436644075319111672118790108585161378443931406057932609308019663339588462448076747882695718807581013695322852726044998437847361490401855185558220998599481557195839104397434172355657205774366164822910922645117973303983424733114014107248431664421182999159376038976597621490392111816687701221263765496043626506821230768730461722408234051967940826613715134657903663024879483869737696587839346652085396221953914370450532670549494770467572463588433692868672702950507264422957495996150837349461584844243474956584263889022777263877325451623701591288026205715790870938683484962238682272250706627789242924367411592166316278852655592143216285749452304251970071476411975335151150140926548485175997130961331005385966486117434727680720068324428974404292488852625595420587420562332242231877251751123564364716893371639255671663211133562405042361139743134847896421453376171152251267157196131334500244190893187331855618142817243041280653626919388743904628059114376895610232363459406638374353100105982431649693974343133262965309237656592165289192628797807029610580122629314198450591477575428261551829640282488780226435609362941318603970618951330605368373503154774347958628073505870297158211185779083071904068104778542083662750890326425280520455396378323031558971611948298095842803167206902606954818511150866299643351781709081339043121645383757052982592077180498924375687890213901792317065396511097217117884653893031977743325333301362540585310752775061800952213765058519670226620434184636558373804463933691209699852044705340239574978658557724383409292703940328463257675114128115147667082735519265441494666319748569191052041486677217807334853672260727967074977432704157255162686197525388904402592557236721025933050155000098443147390724805717047882201990047371619168760641720945731439261957336635359112763986540253019573051722146868934582391036960910950965335533332548154172748614312365488688340956424459064964607620878406180844220093677235429845861125461269354104762772245433445329392104648620323149998391160204430695243240788060908232011750348763625920949086071758655186301977295379157341251577711613516382332725515916930488921378890130376994382300642678316606201177870761762336020639322536129815025587824013504078574617907831298527769700338330805974786932134239512027189546297209347187019358496373772703397466140955084515632348393176248591237244772790024756432940551784448931014909115425672780481333231733093932793149142304054114452831726838622476202606481825100382299075365639604656203869643063622833863801574070751827795661888989474792236563988040004718384636442431720391374353146910689117574701490123795486128588011770275573629200531557230064921784847809023462673878257601291929565269392751577890357322923704302175586144978913950972541800794611098958018705425093336830539421305817120078294244801220830335789872151913761191316441708929295098412304011159732457952564874364260430320124069044442440796345353093573181374518701782073059344201997774488522318855449222880996978250332949447477982021629677339762538642589385267225041186748040444219149533741854014346660139144879804112586122279306323357566885360079809872728284735722178981869323763647733923774964426761132961787256948448557075821562902326823057956800116415653868755226375898841868853577079147775107182298681051178246026720737710001874150673060034312649261048707180997801266021379482777033140222028214178511830192434937788828318456325634359656719872224964335098186483316658847806519699733720899698394989887995832633665074193240980934235821978962074900935455066775482650412704759805196314157709664634859207834329363680794890402414952754946504113169547827497419409112963117239893761793676210886092666967060827126294880326333836040572285283737107585568079088935988559636714368020625039325377310048797386200883311021285225007030522756987956056924896050620992753350492936314536105323778415569470310808295299403955082076729216976889018177954563175741982234740370573369902801865738566871906170660623329338653622162448910205978232544003741010512617421199477593107851198063473195640759285410793886653064463634510951002207563392293374175147788434284861970087499416047535134316886643615326620855082918565606962342749644820849566842325373742588174693740900866167992855479059612361589561049698602442665598837893467773956823695935315260445991399040781489465483012929618317198163745017901326733726646770917398199308375659121665384929592040204704441162045850584971924501620739173040112637493895878414320021885087465324230527570122273651862728866149812376032842925127132627669829289947546359071549325411051774056977006496296545519514178650688437843119680132284231791201858336680290282489274726064977494879212593028816460756341963387927615286188179535893303192925991188381195338307642881892273352529274809458951501033937676481774684671341271770824138465097488242343697502884182363043139347287015679886987033746205751113657879747010551767246602305056041269438100210207769332557064488717823660756141933226716159626874674356645677432672546024429978748580607560211154039692502407653323248511908270449849134689404837605894149358047996708362018552266378439944104590445878632490545065901281948378094914306338334838961352230930485267986029493715235749854625658599376507974203530344091345764973844269626811830366145527073672652677592532373555051502717769580587509607540298597295160067169827582564295688488865769249206058549699907179364120695445625678342029613669270498315073103735670476962074521290753880007536781406942094310005596616639976732190809353407134688788672884766623137103178735753553481759862752523666344098989312331833657870971387070343136961237897406391657107605710035431307064537708555267679254305016953825420878813623209381331265606059047262249678100855669807172148709766544027288755056402786718764536980239311215323849755531731721409653382978122262589526833475167676663574037539255772702552358583188090403446799100136422362308764071905995816072794870360385895625920854703029675522759191450438502677517325679441022584656263214012721614865720166268715822967252167680699258873143579585079043987614030277637272008319480300594378395965041513474501321175995854827528824588789712697903853964914707898904197791741140133427410828326334988913974283241155796901717333854661012523828641053929992180120718023561899431941434417089714013070740748104111677785687115335573925726541532156469791843071017428508795021338911991420215939951401857296970408897150118392201498754055772474183166685413067540722031097350256180821387405478544696391213298597360860205957293796711092137370575680494194325782496878226727143543721009345893935814148250685801229389054431077559496453531538786701816108981703802059219384229788756840522614782515508763305006776942974816745664486176685084835033826684703197078246334470578883847438469078570520092912847374490078005501302823183807004838690676118333164216090010823816965081973493721186138521859992750327338747400853673036644028526878445220614955729893836039537586014184682943278922230621974874322887523126422577551550076916917048077977801752260453112266296844151207223220405552511553477744457655288921913908020357717784163443661415740918798150904533591441224065627325235868836912442748644334882093585150614583983311130491514706659218776393545217095777380915856459028504384310121208759817480783451460494870832284493827832852834891583270137567246013056050251062546159360317443529155889484783987553665961897097487784758844887431966381138749066755843106940359532240969705674322019549099768066745903351118824437436008126722693704992518550911648928242575108093848476117119304774425110405658095954790471310181308065833083954154702716466180341774600027124940740481106028953830496846546715059355700846519766888613620922921049277424968557253014906092857604833932862862409410552853087895022125621190788562840247867170099735144482837418438188186703797227081810837978618069224573536940032090208870770197101975783138038072928574121031546025603747978269949770824397527717043510983562448137296861632461226461257160688774385514041371268357686564579097036805762373229282567160071166846361237574900086565087544992742957438625506643450495649097933875880297775979835646646827091912384457511837380536271254416081920569035246096864336874432468590904125504990966115541710895722050275909175170638156625912441069558162976167701678182291173941862914281222674985512340088151048483063124612901667811510016948122664442028375251192677655046647136470305402036195056632359708154686719525484524077515511394390152714731770515143026494433049041361276664133846156565561466211211805015048482497745847138725334351502325249573229255295440185826465610930914696525991342298187884709929256669590408569151395635893958148878712210071419732764071976346826874515801266107344845427312280459029814872401831994327707078569363860144650497585675472143447252619991131701078169786132599399315519156371987482302288576398261284924772751982306614372558674253583684481347825976089228881537399845889183672864391900093130205984452543495046377411009406699765667329417021329637340009688228158390522492457446427224757138093817419883771633866152382228839852435214826872373976065817523160656512321952485301915075016432200479960816925099999727590060037276381531109962915167888614406693200011386848747310021503740023944577348506021717305190914711893155363294235074716822224742450109707877522289625854099685247935256465784581854335364831138071681193481892275374850843230086211604308144481406911539123539034148605141073038680894889873032470578562735214553223439384028053085689339891046257139410752711395723463115271473263998566732495505741109082319670721021745431546045291776884714945141511306911771116925048301860122190529613021585798176509939150468129724979067230938648828141239646430338866977690835052867848138290066921470485325113522625416667520555514443517030003600070946370416485545806692939926223219696354081977640559130515415573573815503508305045682466259478179311553228689602126907479697570290962787630994525554831829700820255127250289994366800677630100794583383872209232003287378438949669861405649289546918359537191213115436745948362896214878959921936732237318271616789935329281566655574593278671256469039408577974506365135776560251297198872694126938902812221520822103895290693884729580427459422374438531295565953045402707329777064346842990697432515653683414100690181741578698847508445709961604810522171828849534568394782271744108960040629361202656406275348373841969598766561928021170777875632908727720181455845235598347525225836171042819195307734027700535510288246174288278065610998983408396678643915288723062489186831311442489025292432652371175992524735074405420670551872366746854927680608764275784757028471744824494164708228934296708507187814836782235784609001978889171126206206718280283502840783656010707642206208878683913224641035512967182309407008549035366668795140725624201900706286158436290316484785221999849835771509205544974642813892268522186537081758400675671632792997862806301958455165715136446451943301465637358794290912856850655638125374684289064051596174627266167387778722153306597966009671756702487349364517081034739848141416799438922141062828131714590057905608866723226372300401369438526987505463929142411603607559328323300014857739027401993796965393685006820534574854829105739945106805057514858030244012091026845218765972440718270506768787747307512990806024539617002860004839885436139968899123833918007612415226898112681228029552540570525491766490730905953546131424283114225246025406380345663175453292238676878290468467043002700465855423013513818006086131842336719739573857925254559038983882347817459403705305895459342339258674082988226041685015199152329533283383888916024404808439868792509008220387905299912182072210622982855661652443404622910803787611267304954354489249836703678275474781854302343044596546417071899526469283420845003349430816063205089710937767287745761388049443988992287327944491614284252990801900799281339766277191222694780926515342247089078812923792099731194824573434368929231432981236157617397660472913128344093314358090216839420083988020121759788423264427721281193442849229409027860217147032198463971814887358038427151686110916328259077229858559448750403495680679154408157868690164419629207351732286523813193372097405241850821217622186045015318118008010235631720279665462035658672201556178303048163214325797811679856698435645367978296835655827135939652389656709834140647905420599214937035498229071257352966931537616498550595591622933878115721577638256634042190319867409052673159461719744539572511178933039804143816624392874531654019267348246265180966370358071676715070724105741571908758648645149573302446873902550797450099067312031868530992231949548414917481799637514228052044337310510207549635006463922410627557924984574271853362424384142618969414245803782307668877735793543237072116276284106288408520191467634151611505941702708864854967028291349580584195629517905748814745912176194486887721289606567879401487714239460334529277948217743320396413298936505941974465101187555511224940727061120954778958432945878200569080087193407249522646444911574900022711247372097798085131439704990638411130601464779762919644574708175796126727988229475832321720508665083954061405966714590798925233596593712882107502570864294546773087793465072620751260994044504723200213006960782367286223176874857950394386699926131765367971799187644449627446658479076126216491241537400381934540730730419097703057462259023173771868127759872247467665798804119673589420433038314493947999772890531378075609178373346192951908464135258797785821245334657549866893717519128171895175949611627858633795134239596121967772931740246672659499714335743263438829150326800527007157503970241046073770006325607304376176496835307084791157805849920676614139868830805238006293730920419237693683159254677192841666047042497507379945944508633360596370529603911716084578249392112889467825791484435347825965943087250851843513555749564744670674643213620385595859343579452501015976167527689504172580369462413771800035960634569121821648538152598812031545047052084085485579531213316476620442397486095286728695517892256520409732971456761514971234063455892951853033986642389946049334094688851057528940957351922991568148186009634256061300778110427273540300989761635085726031172062046226364178863353141265671781058657484751290223906293692665009693099553672199539398573844472941296749591853399549343192060499876650651160635007723578264099005601680739431682810027679245582376718939355259412233980308927407264804264579601297745307256527608455913297782724533509533860224783156910802080171000036144168428332043219695964784123055295336995831178843654111221750319251585228494075697483757618516049102481697567996066776439669280868359021299864347749911416637376182626420405421331449560367055456231906999213226483066685031640960095152908911851174561366434121612987271830573949324753215115966945591226046912302079019943735976233961537257379487844674763109945407433482761909924301769092531591280441177792601246020873376678707219916176052022670923200304942430661705929324541077001312303973587139170077904163704353075274692740861893142714640229890320851699556678159033377468274980910816085576486033981275296996627242441633776908853441299510981442887660139338964287868849759734716321708509825201734783152648853573796841898073108727793704450446484685061945432648368838741940434316544528965303179349971709627801099536717763936071622325861633733400314971039927062874047883696679973942786991245921262605227122145557957538576856112810979734296951485345840277150495146645193420073769243166310804419302384281989910469545326519375351519562649776328438554223730859789969359616726696553823888210215965774414494535741801984254010555826694992630367437477667522039721592160009364310403351323537932425413250731750762216226703790155535299377539690818262994971287732136961828488448516068096373954652410752800890234724614478251496116723989267124456752644868151348892649260750321332666871557496056191492749835097381265678815916269824184856609402085690112243669661195033371047599671860235207487784971912547164551770604574033744231306167767904484096373980180296536745740600908638020764678371463144999460103725218130058314818567590783005010410325930598223443820011736559343232314793275716048685687665629545343290860830615453725398048474993977480883474796533545028854994139504359263302777332215899357856366885076320952543940419534974352549981227852979777378802492966639023160094863346367919532492484098976841431621520320736719809989411476755441554779690420740717519460555317056580226591791860567574684549881809422634654221563790605605383787166375490753732100895409918085246337610887815203074645092401443633320482880613401640675123840213017142835629254218345933796533945589686544333602234788722789031000712767781219472776142066518513470433778489608005978390748750107054532497016916963134970576712159391482183760316478468464242830436915716178422484418216624484324546232531364227632482703995143885272908217706747328639430902934592344106573136107771200894465026280717475733545179254408115416075800589866842473672721594170074063603627620264698922886299486684712946900460553634790619221411971107820039327746489625330650661118746928742516173822061572902658578380555468355782133046040521552201980204183088219492012890302820067830031816719792991674384728546909260930586841665098124750375740630472094626890430703373282673651510526312458489457786709185781441924040274127010136540560833115819056303636906374876233732940263973055738746646002372763445605579094492203788945760849278231105908482598786832341597007672606178226292319141713600068143547528395119587470946139031607169889252201048227671002855728058034220229748355788377102089074398498148611604913883200816564198377684087535008914187119784492894038908038613345462510595111003702421066754954174539731577400652808183747787146161380111567368504468712140810729564070980415474539558129477980291211924647010800994288745274212452808680079557344448791799486072395454544007649919866553357840235391073457922866579942300616244257435683360510006128806760522358096237416825146553796078105469860177915900692720397932165749661086729812428812611151788337344119498736016055681001267692312692271913421787049557304195393216571647553927958488374100982669733668801075832099539451391321688132056549822854474050825289433634520452725589654791820520333070902835726588332799380379377512720220261415918887677540643916436761819446595581409371454713685450177176315823703125197165572927204362382327618717835161756740975675414929654565460688680037222909016622116802848420236997553556590858902499815369740597612789114489697846089424281495114801791032270667905950057071018476869362667104575315870558053126074721239165179971293183441717925844737844825565976091137239440558574980911644962615263840193075637492816593138595614660807701372914529672163228532881522059785946193883762383208849749132811103633880794774513122340029492745102298321743726630943835413703465669481591895245578521032627182553929301039002771941999926935826261187569307550347568153486624679525181521129261353108209645846367397878734310310267475630117314040260880394572947183149392399615578919432408191804669305212851084468927947216304944807710820268988616791572780272007218581058580488287790224091336460013367456426462624404424996575812773966189702314074359199831416894884326118396502490815377921197926639941710532877379589270098185829842188184436599581453489686305722005337787200958877013329570339148333645420088572588137856430283311427850059046128457670977190299321373034736255936829985137719149430811043407587946517036847658149796423707592640810863957488919467648454476205245380526505385402194247441603530155843704625777594210001319480448637267006202234131732462561559771639276820496605601236497032803432123561298709771648990590518560693312718851266385616172141384719238069926626322168320242862480140279224633623173111300518740285024972118403724871110186423407771078066847838627944940375119027571710397650515018827045298360381191181006179229953894711145890213267518823923544672011789458279113465722102475742969207500654529645917728395728888557979766790134923177858198457751733897601630451452262207069837801898862967185808808382846264815883971989170021863517536337683283997760680731313046255865116823064730458073931304598329435810003501674901745581944458129379384183877877186542686522828589532390684315030213202518525283195532174351089228018153256421384466867780712084404683103508457505413934296828440561658515609302993498295487569453704309193703495747779196148225400171316587313458869465030564797129174628782263330002941255422271079348502832063679784395644078039111051573517617162746972693130791336803649791895833186050368205054170859731914120489452588520941472592965957497892039284386913957428586046604519051539473194660397044962657430028159163737179069147062751921846848929683909033684467468701511048395905598897931343448778677049284774663701722104578570374792761200198603439292072065534837363185647532269439332062645363598518915132130680537463958403013388014996806622075460956693972343676103962658288706294527866173240238420563988787731923805048673886175215636995031718515752294973690390959135071572185579549976480294922880684961627781445976482368144652509198824552395185598258426330387010021404247072404867506043315506594865166523371687721096347365294005162324554692854655159133459192754108557789420233995708495636009141156051496749759041700987461509463059252143797049574965873848331499423890285434816188615357230024974189116502635468559086089930179205101296745280020584242918039230628164180291863613822804452184580648656084652166247886327613667905771582104177810532135708905734257574841144688076269614668814648327322614440371736642467226642601868540998058541189345081977931408170233199414314838344577656350743280403195690550315380791586526105350719412272521385262340569102459589226036450804100325506639758730232942370132122531427241922923633225412578987603700666728018916095359815015304160945358182148792599009747679393377482083490574868981061447319380102199074639375178944329730955011282877785119590473464146604145361215262659503642477162132420755759534292019609414616798031332634265843277383546691333409459520478340636704430647655124692717372044403164504009031386554131515061068617411305237648860495674158163332232169028440845055593090532228220548503254406634292219711140148399343950159803122667588387650609655794318588576980014252149193529469853669492475348653029908613703854594692635411123260174109818201282132984601081083795206317744405695123142478596885307132927709915812553454212204207658143880144766719179469515873133417108866777454577393566179806537271581866063745019590768037170826056037210845445581969861851635109333916168766035858376953085890207637547027504691642187744980626953903271409921080356299010080049329497315249412449529241522856050767532043738121886593057412387001863194380694923598813575811055630118609297589734666971836049883946707904180690658432708785197616559885995946736470477503465603550197030963992767911275944789215090805234041569853267299259982137572259041633119794599716184435602826897989163565519362555703191027321428078440634539482845570490578862727120234014782812485636350533199129590134147721301673586504237011705285113637435743576426297455511888383718807027642021440117184455163590920764733836473093113803437544711328959877073350547047780523894206993355960490034302764531327771468685558399534455445661535141231699197726548067678346297949367225769242818689051858257443401526350782166666348168170070403325810259770570231314997812718360292427880641262330023081069301941101638634824634634476540181910147957881456637664430870221497014462623840964065465016438487565085295055716914182490855797047694463908276815020584754729257150508521734565523625983878027738829506055224308138203685411352414960289818389288725533450819028344140891424204993207770494433152395202225551837379298765262991384539527292173572834112696985190521394707906387832744964716296586543970939460942255517222273867874103848422039401758998598523373407309105868029830580919233104099066412453216328540236754204677922492986235865554221946255061359956642151036852089635057777184586008851252848725505736906723346306024630249136198240079093530391013683901157251835971961857712020933500105703629440419294752672756544987103176726528367321300121944318849507095559211110627018195445640972731165162821032235793046884395200371431078730418616489976202161113180756685811157049894267837009244281749314495631931111642970237754164653847103135712677101528767523642303149601802639701970051466129229509016669955536890861837612120987201155995818741361906669497934524224053714672845794962635602252883594089247716825248776325112667656839084671919594339612782632663267550149371273898117121801478050289779765959830644681350756513240424756651534295069773916093063125299858482112103705093690435533081011910483489795439664126746534688294733124744691330300321734924548734336764878058452883149675045809978262505543780387940653386526732984408936603560121026411997106753651265932300191462154452820271755528345060059097412299956128428489542371288453486375359784574455660610696418292067002470953719501964375711241704683037931677548354746376594653431058237520726213648246696927693493101239850474347819553710705230087663145282963487977647950494571126836873756962483936962355484577823378614398552416210799030028036612945431749212875546969107777263821926804553170527811397071304916753308972614199164295162630621230278560904703157721887963840552542735361377901496722794052467505925358128895531990765020559631220683447886004747629148456022702519821345218698344482828212900696926837633268889457168964762540627669956835932409106895420135601471854899788446675758736102392443328041473285907240961584102124869275157168646221120471929124979265288352116945821423790551629510799442897743140433794941554260459429748404652920025585149644678977392771190722923646071754459237960577096353209075773673621062959635310372608264185773422704750495640146600606088388578794282667620729504681778623127940995353694200884761440940303354784356282763267813841390531243885234904667119556909560482330763981338410734987776854850773552753555622474483459066915662307582157611939948865988152339421111642313584853038105750090069807681622905009449314776373325467337995070103270479718711311836634105529335580346869055685423412919704016732032423827169524029457222025491726004697216869918552766890562414398260269337829218651497298940766639443597679165508891172464129237303949484979210394929029281549983691887372300339296266426509829114490393286865788914731320906427058112627402762351273270559813260729668881165121766804683228178819265404198750093049170373575933482070843699018097672288561494364579360438128302391171304179095206309917585881175621331450363537081445912134996039523505059609578406626334029160448163608343899574743836137671056934392949638947447812317687790540077644289987777390755340118969766892041581643753465022132048209566154021508294116135768083060563456025078690148944183074481624444696848562050775426225049218533721401371797240725893545027462972017259393670755615551377174916616287647569533634984658869238402777414788487446024855396190453761691501424740919128056781796203840049507839330990598014630493519106470073758063505527625917727475528677168062305921082133901418925170432141186700908644095493779677095697007038687311649010931759122033295502028966654844117920475347188871318710570733690099670732445681247565525118582350509486371836368784273456038821255123881897528487414094284527214008403202256166254519599082163256733152909375108279784786356166699854555720778302919258932558157559285736324148015983832801804997110557791648362333415142721763331092874084436648182463965475625489004412711606333445646237198230785322970478366259565118943604023922167097890457608824244522865432635468806722906937307335068381391293705342061524716368123137794078346134244185640222013120387630229855463038832013306646885934319940082046695353560727451338729884357639955378041783885755590158084460167332714471099147558167359153046720134112492242256770231556125725646529949235681051937453200990010672688081725621219287486687795880153609188394614421555490995640363165352516849927208053703391146456737592793157635833064340384426442254743560460769503851500474517444371173544741903290021033325689031634887068970279764695741750220620272633841759779904603597460853825890710897821269072392448695801657005160012163393470580588445525286765499621995736553371097170238042113325495889096965010604183783741954353564974255843435253323585298623341005598028873446040504962374754944795210725865519641936671073587352936009763121185847290980635410395131446629556409988963087852837382261813314209160271550071117002855026941659753627790202982699493798256949473828865258994677217660079456026058780726667917983450822305779707895854441318878752008288008182860936791140642946546527971146356497256773821628339612256130282213729983312110645158466213059526532667559516034128246711690809280280247844811416882279612586006968609034246964533115618114347917915893903334776568116528086332661113227410352675123185692662962285264838279010862730443588208719327273079492935537396073177315391583005973391466474843778301564610161615618867836200816621955134748363673187439864049743212399210925719271091993094869932507040153028421031870018022560723814373192507540717420920648388144789176297380284171810050292549041875639575665689784566442407814448907053306190867964249618831616191178549065972967906658990352242074001998105723267442997058634181585162494387487728378270795069280496713278069967253129398076226469073608814199787745163679389094151638881365552817169894196552286695065105206283554345737507756719851837089076462098116330440535968748265698484112117181186634133762642301817616279747173109384065485843142051250828125899352736510786082693516680768559307061584279317513358301751163392438895739316246783017177309880086255594870273800260103594071051378522375836305509604105059301649772468040257301421501285886491890558651617427852582103847583892105441699060401639072491076435920641023782687621735081965689738083412839365408927712864146249662993550975790291706699168625363521896173033241082942959537528148269499463612147781519393614405375487782761506290498259465080263893657304060295090162909685282051521189169109219340554795351796265137037000165616976869881185854057990136230233767455366832859743595618936300290647987620982803278927182594402630009056855096092326863637080238731363508055353856994498246504798136163013666656224418226201798574964922479964800677807497703494733469331062353974298342437463490605964487690681464246842824468075864395750202786715593283990180037502252628675583589425569207435346148473087245793647155748624677959047614733853219686461418226370143492424367311123963912533508222966482440713163676475550565700691239670287957404278877184943355627489464018289782217796841440272790388084345940144346793342554560329623281541928568419461512509404921978369230869074248664392373158959581489067213052941667528598770536797869506138949185670989767539722530488472278937964089809652156928622763052410078778817872463200829266932873720267230446522197933717141633476018344479000914019273539829962068627870642090822367108157618407515202383692634496734838288367047491767141888051648476281536024056444243509728137736434377078466936176975430751038777953940692799884882581413138912018202691615039529364735831545348254281695509948699129452892705821886659552256475330377784260720736162153697809635682730423982386532411719950764127398034917239931222195760024409047902002829147436725024122153682293144453045841969743934192444179231691583209579562817405395872111258863005983878198591207845518350816288549983260915638105895335155359075603226353372561359116387552313684441885535166052742879285557049244894563035590121486070979966701848634823643543237372474972040224371880173265254677753572740722944650252175107437095372038792352748918367659208704809145422654328544500640348588845515162056640033274594466774458952278692924744479175380297309210080366958569982142747712679975371524633164811297929441720954602044653359684264120342405223426852067718379374054596523382966934312540347061997495131339325183445117553803202344788084088485167597255893326717416736517530682432994251307334948047839697277839166590884159965745942033391892538487403771133193585914871296562933324622337274884675191841792659468476083965794672808449140649795384099990283053377855146472656789885074403811183328774568041879049734709517216395820863503172295785965705725876131310935372164767113649225360592008596505319732524733143577410100691006987259545265626381953761815160374215350614639634807145243010022209387494063328359662342584347017260738862531327768272299453979955524040207912801324929728136836471021860684732272094146312421354132001859264728727970026221454142191055653630773071806795505629120284547854248488069639707300299184448553467646243606381424886924690454943411517701035147246015386276788021377048330429580516908901040867424346696310511620766884008101993447854564516722806707322270169891166339873975914378882650773008026682210649164334437308332203049299294530560204933859354376548085845600445262699214274057563283474511968358796858019511668502288966657023120618569168948168000637225006194977307162595902551124157758365796786010869622752984388516802993399791698421574716707408274527884598172123672791839649229700416291577856710963044716878099813873906457485739861585100060913208328371817872482410596611158672353057053272409974569370461211661114343682023332947956255486729295560716743558638294764250381066749665382742114170228681343884167756579400251929726628201616804387017308758399468620407625087978571852234915832204405457600587732303844947595733610265600124942501725306759855462584703216496571405956695990092897329118281243879269359969557379679621896055968496434657320766445841286874827784878794855385727774763735403694685439606120167689507357639214390093263777435668588124917103936286432769200564832577843625589001144267535761209799411570582411851908501460101867569150232455540438010860741489019481831338307673926545152601702797212324075626167661463324882912442525503222334197384779224289926519655807479101701450884087093158338556584619861737858651743243741345899275502234203935686296817321898504170606318028946915470055147960057023320152568103426923140664258402648254973434076288404435274910030568529374420753814557097802781454620504703125256966338449324086388303295723898158473125626220742339292021117203565083273919519284922117965510743761156179904216444108448017516158206273790247983893171945929508023321976057577904816740843474612514050372228796780022643335143013044330234957721809036863497070361369864726312313353155231073577424459071751779352199897062968613304792821396321544206961219181124870720892275475583719127979363330010606352667536715322396401380945164539868200599982156086421600948965223520269594350727731584192039490800726040266295971035456877763883550509720999056233750176925022324045220254354937317404304259495892313238188203554105103484790301063347552721967247543102730380389211837084665770743521575040644265463798993493435713653321557646052280993446038003237115230590438594303368592317712567863344570091407337563853624922145139687559457925039613420866745444532896741732032457633522163696303844525875292212339786902590521601947422696210624300284318217162043021857919152592332350136319527079202443502133141931247165415549823085385583951935600816673502649807386005630566973495669649759238479919694561467000111710098407765663807345879636194677712936818867596803994357440064679792944319815908240980468119396783928347953201042106533165245523245518630980667741775030900445404731708138170995922530738046298010154481954131796125894580471814912193431723662666771255152587005847607408051270378657009724754462364399331009000151333865924830310763207215749322491523850238909124332095266142842314509409033080584495764112536718354922770204724906264278297997473335960588167344304633468602497070283826515202868355654776824858139038357150808975195184227123174153763392199031599987789142624969913127829476342296316913332193235405322751669536835353083946695194243050909392666057950744779714238490080508593240803410938403544447347574460155210788700995210412287482943726833204539661104361711311840705400575217763179274472316350863622557965583157190597294820019233418424077666722171050289167714955138168599500992150232170419649501798243940562768911796535522837933611300051691659753773798969126425961116484855787805035286197277255929925636604031436766774870966357375059561445795238693189120197021654256711830392530004307574845992019564647481183966791294443017263749670183805965027226105652692930708385953861788255481620921300027072096054618633406521140474754335443231229820651844074421854294391866826639712295285300222280574574133406119646125248829123879175560617877303590409038832863688833372642662365819163709802912009594567484665307131385145753260581980322690408170353289141010606540956619195811025343908009670178056039054812590646590802347495536996999478808688980987370779419099123815192019456850369372849877546509977803689507400046024159978117353412513657650908999851610331964803579864067515532246792334255005217370416396845913406877331042906151452159014485006080854234061293094067854514498216219975371822692970899985615035864950014513335567972306394459809661505328945515854848718315964602138197230433718919337249149336740240046309016796634189810726275731096281071158015975681573705003868092012047975707869593269751659939385312376777652146036532436761766712005394672565898287870934672442992054307930635272477819783471740502296845822042736469365921584987599800245995553931268112158318591615661261161992297507297579085345253790772614780897085074767079023190171110460177578334838034394344355260781334058418853211368500041624276533528114995702633447451865960905915556944563929472355014476260071140013834923714560905747528301612994419361176193921929421054930654951691712752436083173831797594686991246881954997762160794067152818499070906502524711476324460174603781029752086500808412093862024759465068531741328594459686352858820220604552532908622240390134803356859787792682749580315875629949179623991257618991809191543892564529945139524419610453799919598409733888505744399577082052504340453272205970951765149640055596873895598172490607366241925902084770479173840337455139508883428382851930162070059203678367315602373730327063219383586138860416547490514934867317743848520390707223770849711268028793697972876746678952280622019979228144756904484046497261819866020303968025313574007565894208646940371772828875374429131987955412450536744443241078844959132192974678421289397526161414261128874020376759357118564777546015890648876130581475561898229529821017223262414016369697388931421216576633207251421082328864883887753999459138045016160059472796035471045463495367230212251588296668851732539930235243313142205017989970139404385178287494311914202782398608382795856230496159271567878851751844632060528946407639086947907859798667541143255207021807789517402336453833399134223259294455164357870151708616861347176789124778168620940758341477089563376094237810655884420737287705469878358152862187147659490203811674799702176841096810641215554780224295565884067832172342059110734866881230711121482638366387662097346503503866006781162716502309393385368631064163961373340286943976943262132931328128000087688976589794270885581987946465264440907921812732618333373965885359479912497813839824126334139959386794290507700438164741304468528954407477477032299033556918066186897740241068024907602832858998474780023890893340508476525315170952387037935478726016712575234948049216664216116927342006833326551143955073407696947529932894991839304465342158693506007271024504169298181547652765220476286755427590609228102790748057727908092402316585002864148138664681753844110495203727704502729778901891154600036718449222591848206642561079981277545861378227878660413319617785738769459636592720852022637717718576927099404870212112263734930773775032063289335073331323836166472166533378307575473390962080882742982792487356952867451694025013441013971394028883987895868416973178713447626449633341320869315818759596145663259091293829433576338537771786938878251011840579635085252081631283778532324193984001107709333974491830834219566769975198985678541498563113857429196911690245605394287388043371724445711376065698064675975322737811648494378319229800731105963063404609893358490919638714484259069953674348630847488447299682059179706570878922869972710781700378094010111376296895535085321603623705709563068283881075973246244416809625887909314737464297119745826393758587819453833062808257826369074665157684026518420721639608393873711235841868797459210180233197392804910039079473522720741162845324841276720585527683696262307729223212167168330414998655334218807025679847412237340988216311685586284352841381513748038647909857392627872894528176801299953015677150603116082444900324206882940261685701118514617319821702622464235041311779934076932929778297281981946084301241425727858376124050551269776594972144062917955431963324974708641494787495411091670249957173842912196902153469869386599232271659807343623843799887568431471840934011056495887613464154958156824346315674245149754438437481994235309347221269347284318973085838323890932742311128795743110085076444896016322840853395272157048446681879566095996100830602147785064192613631711338647541413199062240525422730499645699869389167214668290343059052740236204653952503500915459239142646596232891429196369383136489669957684028657973028474333012232393516395925792770263618102278091798024585225196715737850336671397346681709160056105375471489740429222735966030853477958830656386245395872826640267285627707547849504433819697436875599745386285697511369621363873243827689710558902695779929057444702900123051488569296860277731318309983028117553085475649847291174040400674743419832903664110124158185055087574157869009755663160901326502781233035366881329835906497045373344910832512424486619456378695267497657422798152925121847589881950807414871478102562126106878889531206465427398161212934177352836184400129247728857934533686627637411946607847398882501096479485677687020043931928594611465577395887729548422999646310412754522809363447174757554819095465156815567705335387538824988160307071306983334825766638773869770477992324140383935655927100588240290215670617422131886330568361563848163241556644952234894036560895666672666886406184052650574684675677936879979499721178989157465557036778582248440206599794838416962930190644336931580937324984121107715322329573298993706593843535054313060392040146496981982243882060163141130790529474871203811178596293803415964441893033739126269197278266549625111852735990786732469067135427719396444519949370098885228591972512254776280083391542558794522594013519895901315059181283535953877281861703987927412561357756803105459752973162341229799486105473173575630417519997723682754450180202945989865933210097643955941361547830161794215420521944425414996554949786922195310162106498941907943217297496596211089681523490900682111118262275802032091461386808851291588360067660776246407757860062474920755616773801990673489007858815880651074519967614612372950855752326641224151576872490032085391770569286272136502186793300369891519445883388201323134054683873297003160362935722301771616217389127866564381187078299493141303122665756479992584743189756427625718763351900801110509474903551712918046377300075306310762001054082665077968404703417481010362103829413709481600254551226281543435986688338222912623829701006922419014232482365756023198675684502543835712423964197128560627340904785089120369227057460587928361436569898819838687170670907978690994719655861598554365933426075823018542727737222777988600564147595473633871995233223272641382182594000354136166470787846360497764526317478149771782086283684314534356515259910760520004770235657772259480353425742293864383558662784953310778181110822005013758633570012086870286310572623699260752527035491500788404645902383827746428061088383259015391699917630385466292252413728974876337849950435505232016946099616511426111708830713491853717546311740906607398468493105260127348979046854756983730570987479074659029402417618095882619239494972352260617056249422808189534265255634207054344599009445529759345084929067531664928625417045178346285417489496485526086721229575174398037276125196625571936519868983745740065086198432785852841099181782019633146928888192226844306847883816275558499967174990857162133749815116959750730896284553651153081526939423950154641549614293577622464733608476138768134964083729182370209654481059230407793735839658424632148763622246516634714129849488646372729440458780350646219346908180865101944656016911075055362547239449631690291924185903995461991580582586603673946860361729905470299998244168462065506778890572041535797980821616870835822411236510586581107435746263862062635030961118097163312012166981563737007361272762369649121200762074565131410012788716140120219224970109371838961634575466461587081480897854586962335784478728045223165724572858948397269987231479429777205518962128617722190947934501091312521667342782748701017007716256816398458490600189767704854644281240530281275506922785205099225991585654726877050549711382602651352105740973545411301377212333593384931833759917174316708686713549281115682976024592056580503928778293290107239109268164683145781345877387457042796521073065589457089813394416538229626749709041799304719888922180466595223472742119889885911164809321591996937477601650223632570408285505107206405624704818391287854807943494378707271525576781014234977551443857495792854786652193322845572926050457418679709334675776267895317539438333495590560690864537442462102897326876761076105599440467710603459156571152552267711637059492126159762783466660460314802545095491389596581865353392557261087082019136870108194304411391016386477583489007269304442774739469911238244062274462784959184799436654953585203863028042812389564924802700938079712525533519785557353538656675975256203397993144609158558388477713163495029741830752672103877268686922607322020467215100617202486848878868557417397102274645825383815682226665966269516013876735434031863849063673909012373833497533418711371250802412009024021402512843329013110276890610861665763856692054497962424125263129006266550306671623264595539647048450077192779055929852146225183993304021841080335497857357685648151026616363079055188575492819589508871901765519968799906354223553035249140033754310032327982918677749364205237331639044070859075545473367698546017182193893850561598442450442979752060197455286121817888786089451486017126944385746709601518631746148980282962650678058316572527608925599849201303169487329476642605876152382404260020044081996301580815327863239915596357903006777818842170141626567340586585101556091074731588940389600888085484974605994646118123855357066738091992458831374515418860859468779187179271683492264696516992440856280157258307210278382607360432716177322585334148892470483201301428349117642769562702298868139264706228884018348799263005264923196611950662759954808184572272803801334128239187269799616990530671662775680146405093204816270059156501995116144822404197973436355134237380615894416182235210782768880937379403206316384134398162051513297030032300631551771566374565804917203265307806447920791427137766525748985941627658680129826960375643211094405462714529954133187978885434328083025057065408223844949067650348679222579484213441700711658467639386256559344786575537932233642990172932064804946237728608677011179691671763801325692017076244108529612176367869824096629793861195069618089003050506428343810733707299081144653535366133076752199812713681790571540170030495838906682358008299910965927785986211247557019017295356640707024147436080505447887347459030644779524394156833358938073398114651509861330727327461079510162821592974681177066604434678995390437279198889485976299997433895995985535709363813250426672031076906200143061914661899608099599309353186981867603975787796548950616013725026739658227675036583300154077068434232231505828214523920130867511560233820551259275691114685902796429656272749254354353133780057261175229807646526945830935771243262014792355362883412400407500968871749504058362252997385296010881076349514105250808650606985063412231036518791983732710302920926183843674085505887403503952685760283123850989035031365658030274093555244787985215993296165990892805191780848718462449881861754548481124249294201818232663556287030143744867495214566569552551819708989225384030947911389461078963168318273484204414632892156553448718830170721709975108408246222838137669835656945295847708286661040475497718024136336560294552105403538738020844363474141785978811941253638139401965319056901099773048014445415533718875974659038960901773658635303830886140111687460804280688851905321994555556098968525904304357250658945739500913858950636613726258321451930003034683859618816750520118449637963794924740060979082535408302285678424216713493181733537652894638161588025240234284750138639368983428351487322016745956288960368898170064418653933992126747422943241206452190537140163767886483288913732427543298513554461622287816159066917593656368464208655444503358215820745422111402943411817767735378161062972831591170729726855360554903109774777010967335517016069304361908766326939287658355287028320506373940197292388587663659917736769430716068584416775135733661238665836354382849873737045074352760343344946795791280430940135496408881020409871153386655664743492139703035053974762260157581175260838914839089669633849881670716365338174743869202999361277551944849733383891553193352936368221944271590182256885009599396856571914156798809921397558775468492162205080804970316511108415973446559971296597043436064769584190653423364753934794020076687028723169270589163472080360720935830625183577072949584198989793274434901513409779657485915106968360746473072277762253185210710632731776701501745457936724231778466079249640920854008059158159808668762492520449896825188612373407857248868931315341646640386225607659493550854977969150465051685402934919058069474769080008078080382030232483257070432846484351445060769964043959360374196660481739017298074255400626411572146095323873163680213057306234663241597894665444024593989396188711662090275252560015781393165978940398125927492599323184683793319476625891841664200416191929724690483271196570623096660319617291246668199803362222925879579147718595991510709723523334628081273287296465294112331632444234218944476363770717650133329975709005078986508327841138079289437414698372437398463441873487911921410235553661036290436650039197391558787376911282867288731367050690322296117085611111283668397400173765563477783962673162270960137764974832914938899065529025961249520466614034586561862670887116843072611245732314220391835771684992317825707668711408950248400918556021692837891482779110409594214198153140728393608662585616263091791807777111505223829398033497894583228136006298068541785245179484166687228388504327368095559156283358707356297376491064539809477092790872239889831844935411362885390175107415303759347624230901428765683961188673924573914145071629711656416019594179723804732032918207981337765467326112406046163494687416703680741401566922415350823925999220395980771184796583616863954968641556533188616516919284213911972535999793475716319069629010621062863397538878924189907344074846135785757045108503691918459960068113016674403865015050008275627705074048411944830988414280382853567354030208018994743818378487725315999413559029803688458988432336584377944629956781840306178945625914463201446315640186927377314621426840262570635994094930449750208032533500393233991387932185409967716695786974203943196908495425911927553152470248296387152535284786593867840456439044705769443088013827084034336258115394936375960130371274200579147361977559033764922807924701527688228522896746553332781472757548855288451832153584993823611982044366880560982166522236595514573872946934669491414086619997822405419844243900623282123708729667900474824696265843196276644708698820778826605839037301033213606055543357349554409498926889079188900896502525003813458445533012373989926362891958272827175383609459376953945799049314965316645413767194570810910009972808641261542478401822991752926642041483285711194997058560634562805702856527088347465565854448283680312916275130021867076820264792948912506265056077679486730283471383780755670752333938269087680733067409759553420768319963114265857571707664643107414829180795260008744193914979653207079764736844771676557038220627041866628128527383884056983314371186031643240222786183984123197005203894235165849235243032125367037282689984489613970400409607922924746806999031857566673591846829923847511220290703976779665781461908387813569905015923147536888137047710750418405145312828237064684164807870681078686496809036222448420024240940431200919446142676529025036788341975121709658953493855742451177531034535999250370643041346749523969481586633172120779536971065010569275934772440263529345906195794158276907590321720323208670240960789681197910600603279658671406333978096828903917726593251138582126624713251239104478752110053092649191823097006466493788850823055287565630889179469273119109436549140288875612495129309851637360896068962866141954068202935244867000988346315865762535952381359706390999316866076565587571167974717566761238981143705359977676296907283010553181075930022217943957227382590411051446089707330382295889698644678729908533515747908748767813123428728807184399898810797398839525320539646612682296051654565958857203967453225798979317486359535544026908742609405754007803053853703507233733930808136789739638751475131791473574521558009104986026986276216335858958064877805464645803328853957317335876909714265315212665636745644404316433465409669624945813601223835569137672949630845390215564972047782954900476106451679780137979232971573578401560063930033710442414753598715059044882436813425040487077845052104999711082264351657465124197939905042570313656015763530457897306598801506969892934415157514762590884381402117060007846253892503457517581311695517948546592086682487595618938367915189613749472642806578257582351284310841121776019421697348219966241255377856507486560836092294647301998050090909294947273554185180274293322376459560481332086039168305632698740333888419411591522272172381633848823090106121877403237894346577798497613652025996105293896569929825949079880540876413682765851175895122216782028441077144150477188425846531571145364401403146836364952548394009070068952526473769998883071843883032795450635073123837594089458806542020119890980648779670522774518072044763303085016082503188360066024928904612661835711353787668742544237889744688548739975496332559219125461142699489432374561696470804248488042797187442649796214425503197643690594560618178125370488178715199321754554123533228919399586587016952253786247158203851360281302225922926172899385366480310285205444750082928019022371420249813238662511437628707446160954825953490856162313626369712206861953020077018786975762500854805416251329994662348185419510493912302276738663786475407798002247672133048367882094684891594838643406900248433574825902105249731154321801035813176395651848882144667023992269167713063013736177636371097408672316372364690151671185215086020588327539187317445680920067177593276378516796980276049846000515336649941955232701175188436564441241055920682203957749103349457930696340916467886947902608881317091207312977659848086776288796494224508602893244007083003907467066595470605950429907256494228440874055464249820472594422794950849046012194454407721114968243163417941157560968116832340484746276354832667370419016604402309037120787478680576082343444067331392455771476703317502966244303675940558996039275074753650174409884469251048556317549652485238348695008404479217971365337390468120912740178141759482874237398582197800797050277234170178157945294056626594738403655535974708397422565657005158946070071344978061943366537412568276443637823111879743473902775847298314006036064284782415964131739152348387921242646650651746195468330142961252525157204921210397700441616322712125643730111989804279648107568751394681589087279943980709424371719032585036639405918174525382938459499941966783236157641307877386292350869322265730858701176572284745484213859391005122075364984429014218697492941169020650544521346339404297074595215916698485967472037858295808202246389255409936178659587346819967464834983000399154206269758622741667889256188228481833527063286089632857229574211002069394364511119372810038549444620538689307128158985376504729688406818349034081779633210587539125099046455383863819447315390867209819774301742008965572471716121704487677322284878185394980989515709868187127090480984889526190938417476916752876619496799958739497236471268871059046666626285583390243071357397132646661465484087501114110335907883703858779772181932029886903410488143963337624354033377079601819242821073982698562737479033033315290199908662233367801278248684242017669512436979248320103029631792576730777256493289422153625255714371755258405580491491856033083467762214281785531359130989643237734865409960293457593555045748247636925343862264866407908528832461140839774856429833773912086961045376932834160920136182023643097761085837107801234763698146391169485141835317860998095523135223280060761856672890948314382533353957087030211042689747434835262503250109704750515792252301869412648768842876687557434630266494592179279816305105163600981805405500153266734257932247050020844244612301065031420293373339915133952844329249745674628645735350924255598114103354708322225740506875662327970786460239709875738118523253787205246067229096258457710268642906264379598964247595897642494169189935978342171341196481667264700722321914495421928435376337829682705450826281016919571027247878064866276273676081351401937411591594652590389524266495775004787897615874330066860543552354653359036043423576631049053671285541166437407162969285785156249687512762591448728977756350670831405375341508211298304366025380051243122775336487056759381150148595161073847037899001989153425309369724877297073490327999495143301555532325358871121058334820457778320049652854570740538464586621074299695609661513860764608689119645712953886807680730975020983312122658542442575884963784205059754395325702889811885387554261804380297078267159812677301446904571184709463440045535342634399464381190121312232769393859561247186359058717989537316989811137305303019814273256187704029664171629732946801405110826960396358702323439630206934977928431535394306327682123056968338679430410593562011426226743876446153306083107234201044307091029911319481111745063736479299831997701849103543108995012410990235773163597627429815744746688197831602911517489774983058121109456243580984773400507454625854738351396847798217081185984239962406074552583415520223679685104285499429048048663487850318709463634273320930383768935199078134206356406382083177222310910348359698984760804829304953680548029248503464719083428401960432572446318634466376037593391978389211346396410880112584344144778943923955364541668208797302339080741348637664811004730222064481941025251945120622276663501458413248697775471028444195261872572079875055116928062607437433897248563815941713720393181744386736747673032890250464472922101053168604420895560294158568369056287264048788993583124907512560061798813371393136617015058749508508702252470894094533746171503188127539687300309651705138236810855350589959112821302900585004618952197334251900037742057877248487958398759683192438728361826148629666883266786405251289360049557506686721166703023558972146290968450274474513917532725907538966475527954057760851547107941968202890156484327928352143484114675117683586253097940917946283811549807016119652808266484463313897015354920097056664926364858492454896474909353638404676672812345748839297873300815237073933412547160789602507291630700845207920471009282139818687548091704511363854210705992839159235533216105691688892688103845245691363422600879696781208328697012750423118619553023452568935007326847292358328846691236860297030983553749170310593192224799435397943044555798250701447620738470792193500438273082719713058765271569868547593601721452112948227947589348630556453355470388772278952874428562897993769283933454738068955611769410849531825447655667225561556207147929888792218835249346775210806179080035540840300557825363791867758148558137493899687698119217228525167896877829855196320673230173738317105751871603501252310117509437718256293379478735809288121237972196189762290881607962750770667071038432371754485819017209376148305862928585494258304177825586765659982509825732717415404108603349293178409508663025261131162878010770901266856160342403318087461570259259944355933585760033872431706333412239640691064955413808040345626963965150594478564203745519526433825170126029282443417336185639223449834077585677813137307637107072710166966455023210431190862056279261691016830674023441234171201700172524518791528497614769601676945977635150991693273950822136098506485668924359863391754048489400375314507905271478023625484916042246157070515835062043107323140929627682177178811300789460977821779596957488647361651753736817359642268942991548243915801600572518006230533355631444804555017496201601018112767255894652572629028218485270661936241560523133278454928848841312730940966068128397466705735598547893849929659827133297430820728575096283571462155079117443929651290441170308389563860101713119615074100966276393819655556186992153330993991451852828859717881885696824786847352266994363280753287902655985911234449699479620369227644778039203332341806711480685665566447407773758443554384394817459758793030876728556562564131213545392683116721972859658583286171056428916231458587203166040263945045150775244791754169924738731187769119694417757320787851587674794465722155515304757482550025963567034612616758378399286524500350267458997556341032563945706556505897336826122426101172962185106915950743007391049120687763741654311778799534004194797679696271987660965177602428532178749285013019911364105436494337019588699757275962769415856991022133136714521357100214804659395201082442390368178874488574961908319683688167364054926042289452387506659672552211305166085649793427335133255875307450657160388728907383559031819976055489581561470977946985429434037860476298011525006751142952060676331051795062844797743302221447574145861593953692882079612084855844507522200052551518825097267764853260781663615267273277523883885157358436265288843733836533376577175191530559409184903772676273819227249449135560993282754525738486853761086157017608408985278371174640511194196156264561290794966901006789475307906760245210576069618460813228257444695868948504721614069021136340622186146812440978911441029231020809523262566337753855169995310302075952832909697563953541945193390402665643267805047755680516097167417101793056321493705399096211456352441305195195674751073773501113838442431139806701116092759910029506550080848624498481498901763702978759418533971791799384799483632746012686069695593402306233609426249272641370227151735319775653168781642749682342190073968060031373384047778414914779327395922228147617592947878983596150025527051071889749846681722539645245805088289198824075309399152610492301726038031329291958574029035504837245044602557603823542076066005931912424604007507044190534583008859716869909625088100896887258130830406517929898059741259017851320212059106219549720193723688428090298902163569440497745484087181144550792028816622674650472034295319120332329402142638268366329158959458149999910742663890414282936949573361267576963496118211295435529835933267531313854356049494347250676009820329996750486000469661914607938393558039689619864058681889208958980904978344481709588632738992578779467908937461599741391239741545080496632995035144497775879631168917138440953123049899803327144218697846825151185709060114356115198555685187949494876754979322251367470870849036045996413735118990151893834177765900371548260840661770645688621456774257454526527696632548526129355060342860779267603970101108151901587000519889000246008839451471767693911772740328007659527433008333828953938988499413531676670316548035972935230830112347170150379781745763812886845899548440885481512779599058195731709919012902252398793896864857479711542698881033001531220940778876909381097648696592306946916330685575465482687286824522971310916012614941771056629503211412134600774395821226488198801963954667533122882005979329044968932488136758592620063337047132923233220887002478337138896310523415213135880892203439795505227187221426507517498388023486704605420965168151077421205422975319361619172031367772716449430437042568858032637820210202366510781065029753332862216138010013904657078705981733203408992944686685129472979520239303740407588544477961584480263512866535992980593684736486116249388487917879179279530192817207466895303527221097319528970665925496194941585934060241879180874852370687650545652211677703965876715784630091354204199766486618467298934417458433748178062210913935397238096037137428160293578801337222364831224341894789534640201948345554880180391824107117537362899191279171032613473630998680842021049447925571519232058161709223749447344654639658760047625217630620574398059868038096235556123865467998449132597001962921279220363073551043189175964253334133670586335797622428798302013354376514755642081394021041470023540205840714247075709262034290222475825035127025363725950131834968061533832631897854641388477189722429919479572109849408687164864565998190334946021554905564770059699354824242504302842179714632110151879547105366232129785174928329824824261333370898383158020120539131172609600561565445935754774108577105075852817867653749090865307807971616058833190321993618331601087362140253559069683010556425197860472394636884705647328691684304974287804429643064698963014092008229270274934983315255543727083993122018306628262869179801032662122874380490605388998858562527965520425044275719011373327267793159975627283981497837208631873663279860983992688506074775170777090801525889517155805573059827914063336538769443425566868372446988323527593183186576916334436521724142553634179957165161496319550781036577789386522506342081651422066879450630375962865662475678030300602556490213441192192193981108508285798136836052277558928984345895438773413664076192585939559746140181488178923001287411161107559487223077872700945522484374620410217138595626394234820986826207576960754993681988294662490388001594124696009718549321626097356599362995821692088671362742453215586652016729476925849374908940590375959788818145873852862845685970080318662849940243591435558131082054157156506014956818046439471130294846899038718367860015529949808821409960304503503570150550786781478762462119807274020674322374647880590393900031429955707060607191424646606709718590933365955573609488861990067457570848009225995972813254775883362540324976319288293796372710360880664631407713962887686640168498646552640536380712335915335887760059910370964495528358307677490716046232464816342668711760762253732835470960420527410867532592920846967554506136029449823071606739975405367820604809824453168466800464391427823466207247602644444312016466263054008821524616807958977099201588900834160394822205617099991265259867458962947758450733519756539438396578171256660681312035353868916563689182446510346085043442311020965225723647419531538128191350272508002012708656224160643711189211216488672949437649205830379028397480905932870296404635846416243829111540963945058880395865835348981038028309935305950324327612826863494415969027683823898694667708206829277269304650657570562719550723050473133021083175083295951834138329109858260387643292656144420678392187284518289740117580680890121925514913210856865526373204218695445683496904540705560330275807111885762401961526752423863655833547741837809272774155025460598626751655494318534375745526715154071579154836455755042539677638007669363095588344052208623850868872058763013535326756404186310375877481687386835756337903384496408580967020564768090337364626590335978863797775323187325782160056453722907070214300221035432478283738085011158739781732218891524984756425307159845563313630810460656610533042658631354729800780653810776192214537845923166067694271826057841946111043098426211470158091234232429441746717484443791271212955541279951610728975512565579054963657980975769378468591495702184584607384547947256887232664040195177483649456692844203530962986409800236382721615971259553114131665933439436826124891394567349502707381615630087891892501635268406560769273684130734166348924447831341540185385156583151437185965011808948971661161994039022396497391000240008529640522857681047973159461015000369250367457822123029088835637947378102994628675783404231296894888075992481405871281920463900480147075849318964167985045353945515034381014677739441601649420150109931752156058084560012814567321178282852500553778954140987461827051168317580088899177432572410647921908834743254919265646102024208308623300810139931779933380030837487114373608495561782126296608685138844617035998275291610072209479304094831387133618111796740424393804811686374124888641082953663736651473918741243590866812248507894417788152245625813140628552848887392463605304923509976299676829915654061761220724028228101199121803139488833799893751552198714623459555498483050956635286059459333898316074091263274571344129844245429030001831890576449549100888118587148870275155111299685149984291291763313822770149899292631751303682446474190953227396346930576692839424144381440386561278572014820148663427020002357748169154256060042618334169865883467299400425441314342280662742053749267879231737839411716332985673196036748459498264807221938501411696416477811589402880485884043407076172719342383621500903965491309473003129711494472471753009964827822806848503669833368372324680093400977204289202706568423629385178805486477123785552617297620975866176608827258578459932203070729686209287644242607850656219481695446580819398987378765108559680111890405895880639116288557600937821429602923376235160597800724189439780037591723239384901804194218629597103102166276139230732360924728374422217839037071843178243277915127156424003495967527487211439740463562999796909163077098655067828846281808613502718909678306588843505376109031954330961583808802615301284800236020807413960847021881255765847046550999863682889661033879688456530760511551772984669928294212031401379466252884201443812083504975086610283056151802556025948522603949799568374269978203358663565528513008962446205832524765728420746248051068867707943433778485057882566681200599798195646566328226181174517154702941083425429957675718759750710996807678399616265569906120787667144396626621955218836641220725199860041660070933462351119187701798420909885905927016100272412351622097058707207927902876653727931219996147888653748160666255207968442085325005286659615664245861701380203292875811750406314934017165749644677604127709845204261557785723280050839609110623960563363633550198929452897757358892975559465786910435373189981198459315705298310219169559859540201084588720063302460919748892629904565329747583134295264915268290601786576209659673819161542137061275140753447618724164260710629361533156761494974399719089004161945626184907705627131087417321539957601488389796823342166427228547334639556442685362535887281462739722860067454340347961842506998378641134308001971734107979899017580454036925106947365083658258115368316130977002775770666101185690040617262563557914364969796043174419984403993046514884764794330780927329923642745110732664816297550672708879612747075897517097461616182905056541863239945666037211584835698811400431698739123579763591167787891628533511945381234676683647719287200637299536016671640762484397829606477873602987040748806939884856830057128768215497180840390489791001750491578754486390200726370577043457001822439495510304674706558040812756830193322565447196837685948095009569280145225415260677278902952129762580128535583415333083237760679918891315001429282613575997658909043707147913743553592227659044156875762512890456899872627406652813907880917910848982482563757643218078631892805891772109993671216421309771023334340503376170939350574158983220400716395386687680132092013511046037241860877015174577559390408264909411942861286419591916990142076052403709229971747660784721432812179699950379430085090172744883892008246117434527302981867470789703190591264677049403557770566559019816359876481401803389950488030103619768301916434282780975938320154638012480535279135251666841636405042887351881790811473387197821122602298535276270855474198984654612934104530250606035005738674094932746712494272909675009175439574590014593831791350698354196174532770514607276525615500125850142305286135692566689934561888069127306340427165650534404202530589630547376547106034242651076035990659609285618552223659357961234066479424795728708461105936017553749897630673325719607957886670661492255830831004403193378377940280778341681090992293147294217487182160288347146043924230630312326926345528684040927062957549907979677031551979507668004704943137474834622791942906029909128593966814992903303664857655529335459429859001383686448452852691812357445847264454633552349572103760697357059110259037178623728993333863049701382845555768286160129724518521682040839591609277939707735243326989569334508369621651396983050267694533429028028928948642445836807674108504732017889050345500976292145630612843989678151344679159000793512090412534121746989328654384599411399967042772095060900090813368123055837715799719651569443487141121523504545147677247272562989882102480664601000592918622010702149305648641766238464637093721285385151368276602900135960446757590939344024957014436433250496661478138200672522641770818114724557333994015802982264069029516678306422657599453708496174073414325953566586988499029051209951357111055375736667550229448251189280117395698522289582092002687655583682499732618352763631265036561979719752909603053621590919761858613847610619216523843041635632660958147574548564804952202634574881998894820632421839430027526266518655112692693167655696663628263695363244669065099162927238176741272945682155544232229377970929539479433742909909779873684458740116380603427821334648284730360141315286967786395987735867076882725036865146236989451823139001379935976142620758373536090250530751231123092268954628545322775466887843801743539172307889876543668224993142667017230081721122356038708533080079533504022562129782102943681398088351239336275376620996101871915792773371661813716082471961041466166038931655005724222810950067711427531817928914366833896292333827821483343195928536479195006993160850385282649517537498250720267280004978364093051552748759329166194438047528529638771535383150298192572019369461992198028010496062090628241313131163497103481078842415346496611227946397142504974997250152017569827201979661184278510907055530108239409902714619969621727548667404009953992980515416386267103271821192462963656141147204360210354311148771761420590744916869437218958194146522342526877891517162095562019939087821859081488702695079840527789116538529565471818066244389172482769668156788407071045538938934248095013564668776770921628456025357568295585675164068151663487676558741778453137305053278232849138573147920423465770229700984477675935909301860627861746009301962695604753222187579302990849436421829470792784373255781674741390115080699784026844740891314086742680237552473854977851922117101207919140499105608109415438522751816100204500589598033921101836999182684618338694867797591291330424677974370212117746368412945296619621921461312465718949324859187798201663266227766058568351353763889775426523761034573024778783070327474678584821779048059573763610062674419293603760220644041366049057227661359405601017972345386576913191377518417871202312269533037211529862574555489863356838833147660880770322038306811675353357424960914146203953050162621274892095746342150918537156114802446377100748601906693913040285241725774805441924519115363343401509707899356844711360394162342474382563058939381866453857601227089575638167806227673556531368527336813099977157431176171366441541432204522440539689237240241266717247528015270594361921458791199749618650119237584947231301775018937088733467020266254726411817971518064654915721114490010508304745503619511191069931103749228773247929856689848697475134656538012443201102639312475876238636755271814440367757963069196463112351089877986017764295354695186646183634959180805824173975412660162008494576366186333085255984584313105441557992483428196786069621920542821896453908834717025320736966154112135075242397775447332942151618969747416836224993887320809857261041677677228109942590021269921278877818413456297639486059253203347524620501845460886375891617974229440711761791640383027891083407856048414990457718669529226141092274011195971941877028206321083833503926433123272463555516405527102596437709272571886987478454955540362443420843698818130902034834097181027859967780298031690864504703566063711191783560814426022756080227075157962810778332976499841004916155855730037106741816012789451799179515848714910621413617534928136341900176429023380176275616295618401982599213390880068234063599950669750393879516054367000646591123356960498055124145462933481452577279439885116178139249919608864031825060511017929353231047806685576569023365809670522305688617883200754664682197052533115944401118846367249394729648907701419747801754869013368120498667100316070410471655070638372512664500765521074114189120066274815542446086944450095446297912233052570876912700100034263306557838240347738036954315959032857888681002125331675356186793833409235394406933706218040833238700255545127667420206617765243007440241823805535109602232504718523495247108156747790926034103772609543660395236628841802325147716722812157719435894640547872654436023148146893857386091562221161442756474351794312570079360732259893343965919180055654647435665463045325025414572739816531494260532028286684046711517167717720921614126229953344731365852444538993056209669979101523344373922230088753159558885612676391330687655289699740577497611543142389370451973378843233475580890774404967261576444547416361115492221042228429826745916508392881752481997114956396793856253380792309562493799282469744378723363557779631443822827262574785537722087211663419026339182814121625409315312928501496447261935149069941278634970156620944185297156124477510982942253188837176390467292404758649840635768002420383700365935113503559452585906332683003732787705492033196140640454759202134785673156827585227796117876631713270144255555133545416772741652329379391950840904386123810048636563660405572233077413851084549560681379951039896754003743984141768136167653011518531839717196671830995508162663104333139302851077633626233484917170932096086261275194351093022836841653762552829054488366160054167199700548431426486562064060264392032429723569358427922592038645000584636100954847833132379103218138124461271629443347519977034269651623104972408720937384259183422201369992801854962935748311118157663615639476848911360262098936195281522907618791076077913516011261935997411834815071583275924176244758478221502674711078353905050040615974785486437475165484005531616753685626421867667086527884010387929381472524237364997438745223212728768445459995157730219725372368945774421327529342050971226315506178026880849580662412434437804567601518115194454808707312516578753742576927576693356436852555529003903694327009615163795845199278939466563752152692852450434723587739217004179162934427887627799978953869686627842864756259027953568822908105637555722722567888904113105666559869997355304472557121377216454972065319727141012991233684970845181680620410874504016518219699887420927069149944061439102222991273821552176405745873109898173416025053327961773383986290096539681818392674588765341654508559255301188967608782458576123768454669879690602402793210049895328560102965023582696844589716822953406460446348176500618883903233724920716218704054290104684997349063953507642010387992646106131710930152176647816445652241958045005548620926658819340022326521282752493738352280761684277961251270357627988592198857647390982866512360205946436547825439206277873510750432821752517673716964428006822239449724537097484286281366900658104789853498715389182556269095938987499796988632979121894466011066445558209683866269738103396349281048835484243339272965229620302703979259784858930657768542369012621777904352995084131142861861212188903500618383971671116574199313882596089363420021406447680543392963598452101436444008138951468181727767328429722612051447558569728836354041027822783183717472474843342530173906034766970535096392119919240738101861895481855541037668403251824292070957383588494648167976820249639497679698423295392620939092269510648292850626105644958038551859013842915760721102773613420045826090055046949811729870063750635924139364304402915331015003092715855433226806575640780538647570358298497099581611359706761417674063579465151619518431842957295976171745424990587292408601856150788209263155408684661232383931913584575622767172095856337501712350903192161418565263688118949783653047187586478565976689697896063977847628117946204391144859318188170539768252166334047318751702020034320729451199720954539384816409394563081346845688600892953029128368167495412346748119971179596661347947103431903215691397846678423715972020053875807018768142082386658065253593815519742427541060745822598922002836644664041523939435574054575410412773508588031141541675617035279567959171729884723458673692115492769596130009370749959895653292864601286703362454197525460583772505414945762088363942354736331222946687388698757371513233475577785011530584462919007823401761012981018286192933469499865096893699084145932490764294447038612508575524503524653078778778836004437094936350089974268888614271269850514954067563666384625357177596800147951746500618141443852024297218641988929103568340192335108797574041670787874684478030393350236318883626248443449136076072721500247510213587329473728087521913616346806735164138718029360968583194449176949745398041958592774200566447292786049541179067660814934879168544370031416335955082460299206119210321994032466373855009511624944564152679340753393984304827448053552173445161618531242847262965970929229280938106516221180990510763698827853412009640241574395575211982950231518519512799875680848714188235400863157042393079198829987236862618936893939246651190782375200998405928442874934029631672500193858363313090009545306661967593016511825256930639442683667519080924945133315243345865659197259241542338892548500629909143467629242721786111365676925989873057477105225742850676052955608709854804665012860094540782750462057466711899049094840406234527333246374431433945512282760833135205986252394139131714467224887085818014035887713586540546733631207694161856756435575557007614463434498233351196026112532231503969008867584404893810110997439070297701950109729522147847574369847047082217672871580426429613332772663824718767904899263000478625947019165187810321376666085270896944724864697783717709342820793270513855657192915676663543557472551959773236537346712433695910689242706208945390252481588860213658640976466153818069814892374248092091219802038271974746148049094443106934751499709907273440280940936153919490398366880461681086416186344265421169961677244403765128573265064093881567702266727042654334369630412328728984841649487061650437225409965878084140874121033999829608317131828777319447378253312614019473255829118427978699766429429249729962170459667964604224998702960108344198418432286989362036782136985422442534204086894685786296644904202046826413474387043953530938885728280507407187923786817879670408158442137029350752161237732691851041297506577103941703347891214744765207827550472105547793202986970543949467075658688073357461483147708713077572391706110579666592172218786184254916504864706249729614691202683244030578266237769469815761165998890460843118584587646317321667050126749110068971107640075269987169843029360530568045408063527448588022463017367092904339255197925510804814372645436363037104638592721668418617290164255230404892858951808557225915278665048668904810663724813541016717373661526278357332923695213221033228746103276941078856974374058520402112183950700234650040488407391518905555039618966852239759571915867990452945795809706054520059223842351317182760183277904044638367228154432497652836094515467207973701023049790304518132486376745835137582498938425659790545432324269925527445830297676071825061822930485593617657764954877295263389824088050719558657926146350182481321570607451658146344522203969531354170882378714888372807960215106974706666076827483332274664603079484729026943333446475208213886897408073210936637058264120346975768050376447456723830064341564040658803816770806995901544306682022854325825801619229006718425150389361354237980125357756823740786233279007167256492468107395243615243660080377580861263255738952133706891652621117262333506155028159734504575747781624968438085042574693603628530630946448801224447815829086991909771967311203902913140684468496260252708325983708603330399756700100903142504278164450277452739770028680441602386330067416813180413352089820702303545293121030946358082688177579608003585142359229863515394066314487376893922529201977179881933932911743448279912848060577111337758021431306427883953538392934595234721493174399359618772854887448331082167893196019735761594976668288496763393145024147189603812442113563990626422579741088668760387620896585371524336845551840169580626050463390035285361660402116303398692399960999960735596681634654469017593592916967930830356944485560825663240015274800978560510387041551525027321563163087365340282167899950024106912924497139149554474313811982974622949166588598370974786938345785893882449519305299113497992258536490202816006857806805651645203020837861772692283937589435474245560922347775058053781727401145451263367121183484074302906117310388364852811795778204380859115175711794115782416342492379641043635297941327081503765427648828670474439160506442758453280408120923176616351354517317834457086504735772504808070387880920153245249437669644206821437058517755266835529633042893719390870330964065534751861232031176848726083325874062974623148907498244538019214281888248593760561082884841713347302380563266610289783692749842817110614247065224997330087764185820361891886702282123201964737539933331337911741174750204571174668872817165272806149997691320150307332893755960101718580843423716406319928707301535126584443953218546288031909289186647643050866552691258338808074149489305148666972688879574828129358434606195703949878115836694780726007473536127816208920509608372927968601605584304997558281595463270114341569580473133037527072513933156690119314846946192044035875970912635172293332454853403270906456686338833864033087615177056628190959539303290878066205912217883189495743821731349801960699903744782730864607696676546367586450232170686814803426494847690095424621837600219655059583477961819530411964274184542475525176385485247370085376812991015111006971026139379284625201289160383589876595522548251786451638751703155492871110445470988614395979778166598725323481627674506455694146491367529807009113789165046613521579908676379020546244880870691423319963460760172368538862267182706206560687324120620425458690775734898647202830808783796543248332957086387796500459031073384552044419523457694648642271866738992459544306814910179576168371767066833438373525665116326449419064800863837543310228776895592083049184531339028676492817741733459846594522531767119304039280195552616697541899499432045232289527578870210225258249849407810937793921563916501866295504394427730953768078092854605869095480221511667196854594586750449712054487296001101362640643994812863702421926531083540656655598170459090936432283558803315060163021121463292029906814615485914850611404409225932804472668328742519415337533324499656931666825813242144203501966155502304106066068430641899452093975771905321148120949895158539840593575971686442328836855258179062566691137278857453368568467021239933316521671208912655095681741008714006314449365782705359298974025597767443600303538680809407792159492604181213830154725162658880901073297107386826138608933789228161593365296734747185483190293183645534057980524129244873617100862702817263782599984119886481753157290952555657225337396928424548306297442961013971272996950134224471885149333552258478135700362930443503224469961211083883787386233473831814071787593067091352684733356765978024393709933484303458394524727761860508882816064052453638926454473348908541954955311016243192152592684817438484328372599691783432403590722815158827796309928744408172795426002226253868154141373497150292629719217834437680042222390286402174805712340106156568873918588146305968817671999336169354831063623617862124804032126076834185765062000515733928692843174160097143631993767438573287488595910168930040851760076488624898958164995646520835135179042445516857369416665118688211957136471587745085271644215938421382206215192906162341158915571949971021910955862976086822146604133535189213660012657064433463025028283547594306778691970088696902403356344368525730211846530246677541499733165813693246138016301479860462048117431066184953013264048220955512799626310779943605456151626053728082285777850966175363423172081698953523520067583203861240018382565271698117441470279808824366930067526079213238564528647606389418964638366522670984169330622057187655812000578998744338782459186280870700995001675903076108736234319689598873742983114175142743805544991084363187886773107339716698114078817111274655590560983234301057023957517996701562572960440429608567035978412963123003006178035872016437934698643614658519600209460755114832720465125534330411321063382980793468459975917723074741536080890053749748196974635091835867446589848740652674093773102980747164316065270701339438990964992155558285094156005983373675850170781850885726611600197144623367573661202796147944667134628539123041828590920897190716653014146137692200044775933901693098100678811405379629941611892888962189085320667481581734957137446557973987735305322306114221506939037787307172798620996192562794038745105632369087018504706241102294227615773216507268349177422173029195138912073777575078678143143911595801006965490233312833155730079000161602131432508762403806960477723747947154840926671234091435962993699135787621955337901896327222527835629224068280854571236933353981855077276003689676077698826655563039181581452443767810089418474310431827864532208934379355653839666762355454545509971828958680802134354788038785607653079239639419190155874596859333641435154394441224321452781444318945098208546034065284784092045446990588210930234645324316866132812787567038294226876521130491102057909281115465473692825044964417370276810381963733996805631966028917059318258682504099016197531189866945788084506608900615755258684422433577221030539766829717094566708811017323536542676888247296926789992359569823953225199070442174200704457568173740949241328324426879605141779818262443623847330403992932001536582062455374746446486106602384495335804276003790672448282269812629070613673313758800842190412918627723351955571469471085150488479060694642987491473422799257229689947258140234661307110366971039968923122456166733819370645565813498875387355874723147209483330688822623493031387933870110458232399026794536606461742776127040966265419178573933114742864694753850085977999147339440837773267016510894715857558579911095928043137750994744821426250027472095574547032242877138137944977197937428864126768370191489691784287179379896027791995879904237253837645751077132437471988889591510631990033565102588754622659981463224622095346706022992727693101221957667899687901221253980833404984909846777917801625328244457660193216887797970871631057766175298186568974233362319919544943674144150658802392412153607802583875618646811632140850504418842722770742678416397296206120202657420463264298018643194407821578680960446615310022189846064228444312225194529474543372691196374058918334065973084087162074428194256213584690109994523057356006312047095852950948286409453866882932907476923852657248376931122359506201347898088719488559089643938383397392601115017578185796629844372336911539332834424952455934331540907159109561056883411483089974566805779934446102463946101876952580872590901902910739109454845178984303463071812105867007912319982370792787269111030531815557496564952619407528377641144964838430685658227885731961091803234018905544037464821089958375933817720918045897870251356466016709622575648227988912676264474994606789319234355150196095920044273886491092673906803163065547060802207115978109522044898077386572756822690139550399046788059723582259071656086658921128308267973852744598282560625940229828730117213394509475468866490513741973793427166106830068954417664515870776919543686363728677591665382148487923296848587553021633746501512279703372370230166504756131241259413984570371335019466016425911087015845541151866491084151601569931987541262689094263317894654666983936854195016275592069292927431754989617657430231332766398536903985120900950674106998373204886007204391221549746478168619348833627586124824176621992095124011288534647539739245811057770642332804085487806129294597250883965095183331509604813567768399346561831600455041314163906018440751028071950495422186399529416699217886704322955946628749723794860566052912511428271901136517515864639836634173821043931331179249616202252080506574904283329902578702559154174078602782814896306629678135067283245300183572909191709591390987699968931556963829694193224598825080443225476900219568463699380899918400140603272185443189253393576380236801631393789913910077169445207941081272934842412076605379906684926698049795523809737784115023146586223176713797739852174744509298560631812830870699336943330718848700564505699597515415552792526319198603469174359883738818462510812447855944134755661782244826372377393727164421209193201870905697974759450816300346548273628084605424085850528836070216212491003987832239210322261816944048910862477599383668325561715706921249790341470768623364587789586717619967389024546218582259214888787168574511763844778709497652766521222406657231395458430947857619234821541944585545269750728142832813787224395109303794989807323697245104647079618306252278458854220663818482019905905742472255941608656264302342540616198490218224898407378718568504985587001358356293231863952202224000032929400964325012986727618001846405851811759466417800373315432428476158078120072643829828188154839267303199116508160145878527880189485600255601972620600721688016019549410648846625504269594948505213143316732027629037642185753799024060062222392092856147536664753409443961651941137703496689649796926428360217495139929016460018397347802480137905767744957245856006815632420300803533214023160991279139957744437846175081907037518407283990846387256427123118571380323780216560026900733377601772320528850159360639182917788643969243762037289463471537915894445137049489822683907057272194536009411076936415604872053611746628564482064679129293896943289964861280252043596071469939450066736455087551689999725179231021379121306521722067681298486012609472905242806248627632745274779169701949733999046168780522914073382839845077091828777203795064902321055581063862676637320329380036973622563900680002212851885361838716200977711788800313653572017470716476918094782630050660402565255580931478451642084014257500504531275848253841500566164868537156836362343562927376988701567316115992239777693656972786915708978324665029701829476437174790065112759501236717209588537594486908851486945184272672156078115994524284910836707904868506627290952143571829545653594306700237388274228130831105116717131050214622763994370770857905402506908815404975986515787151049943827868033358542169988046218695580422211134587214998874123318062257009076099535047827624923165138347262620669969173388335989248506726487991105081667800941583347464602002927582488344160262501957660034786600084723574451609378313067531116341753792150907824598694792678879597754908757714344585397324965268378237910616404824358462947479308652415192809736016300144299771556284241983577392322109293360769695503028615818497924300082068123857646962796221069570867550321714815884616626605192244467938265610328653484163023135573436123895053103913414078051902593454475280006010948837752233556016362991746484176881039240316556298505349966138753968125375078810264060794202313529480067613205632877455335912967340729476595076460907160628311367633106158199502603609944789117522466152141613660238946530860980748207076342399398387057994044731499012913113279479678813264506063777871826873396324994131883643310646063274849682562835056151394393879529273777216477794669110028523198090336242304580889020206463923981433343754109328342651728918351281618054432574701031312144882541292431646301085489523811658624099561268751348858002570797322877477273566842704937781773436306347871838662028785324441094054240230814575708166333003110257487951230931266724046793599470079102340961798463383015481048373393386331406697889590539716495444916378374525163139678302934847697635635899429076832609292284674897722707826157061754358003185068395882235424163219352662088710251369869056827893699000295511242733155771618186903479725256829709646793381713305748798270953085809607445146226354586029791160642331409821445660541360510665911178958126784338609990944857774494844434047999918860891287379290523262536221479068028000295345901573980073906001189711082705241013511009858362283907843953539157471349828446868449233091915765030749393100956186060902312622256741465505375174197494770992517408722274938244538733948941105601798897147546075570042537062696318498250900595574169947224856174761684560704157896633391160956712891199606333271944189731996530269807642995664349125699822086989939449809485236475392688901520596528371953545345950878949387223595939809845764557282957288830702516736328356202194264167565843171920850226187230100450691540493673920241028456561720741119561886786444170212344727899094592692705112234281369728088572118872011792197220220592009254464455355704690537198615949933624464705856590463504689580194391198099512140188899857010750185721247677876047624340346136185746859461844151838568799728354764303560699366805564818133549847355121214693264401778296291823724721445870848137208092090237798018178069120841879269024617555597965166109037430603363670594139572049697955844566977247810660306420278975406984926932525248359432251395650883198258920851804516420009306480869996048503640126943643064601467196676162307668576602132583090810145823097998309689192452111814902978743327181534485938565685873624958779056003223066739114254516059496344190153605649567437193672505827312269923373490719793373680975339074923830588011678166870891731473886168616115779724403089144848665077825186851423337009210695323986676337828355326204192640094525231956171021863244253614451479786676511054710179086080433486052948515433353515044411506735309912153777720447683914619680841077548898583238373146024682998832074767177271639161609090004567006857333980363105729793748842553085470478819673078684842001015689891951005977306843519629436033362077095382542725216784127317937223283805628539979941128359469442308988106317162437838263065246259904027271783997585625888832198774820175102701935728964861266637473939863148220154496889972795478111732413675764412314317214167439563796851084481177797827644392259426135346625762450107196274741435467707856793891076392149880590440824171084595167220996041191279000722934745958467375955069371126357137090850446052388899013051115643056392652225495121821899788644784682563133160630588834143796725124356202329492225484480676633875970236707211671427441944768216916807156946119759797442324862596535588439242783686257867875149859990999296681029485536177982167715660968242682579397512507692963173038045056255168858670828933717181398406240982762396493540516791745274742272800760172382101915316388089160076281737166791632956827414740915799532112544318962423741674949791638996964316500782982442472618768967598690174825450125734990621819261567708304984300033783064137765257938951380085376631116806956609521873621363954033359662048601982164490696919045999345625743021292405440521422928790953122556841476390728479849546689030665787905080368609357424398233464872666467542775884404533140686303961174088018575165185059290573801128879572788589983184829185771491783290865113748286078732582571517159219221931174792595967946679255375679721520849541374717342073526955041817410064611285432716438215697479363812636560010231477001937108257178637176673360101070913864466543794872359718671566889219128444837212910762258904103437342161422884231993464948966242041359156913255719723677100105948006062109413243035522791936635953739599333350324787237326468627744414890779157650607104867409706082594335747856062154045305965569473843239595884575616481170094301523207517386678642444575848628836155460554989536254836891702611937053341228325846207381830065717981315531508549083420960502004449023321955066412007617109200585517484255271246809131405552107365257285877981585155787904294422179671400087211023496848224690582578051216572621419731449078441190970027484971313498942583754488686591045274899063168680147869166187339917414198895996455001964943375043916853178980050946237612334618565128479620183587130346800861448367056808841681183889955014063771823634084769266137741052041644228632908711708335286578552145071517822265307643618485286236930118765603055535561138904001036692228970646310695571932102046041293410509464866937452749033832854854599042785792964473242700495296742531371806881484942577341134007087625261570849980973213871194972642327054094457388539921420166909954353876451947371283429668028829177069529470203947315420243821724624023838972565655860590454399780777511634411821844379238756636344969389034108147697778929341114071342676168924756890729942832967428066401668805389218476760354081692352172326808101106852326552858185731965064960775875127574896473320151726558260619111431778182559989244552587804271979710214861539890815436030491589776777734492567739001685918685176093355243434403571844827158600365160055020880084230267900430987875324967074799442967903504328110612802557886325576620432662263272975714026857682762027511479847635145367860230129959474885006099670659101960389120022397410796480944372951952403442797572426913007727636882399284964644971193291724713220703321098428846611856105802466393122832873588836487958046285070318231923310544821601545578287737531229390376030355776138454143591700093653212145003235296733906215673392819956085640529642872560801960713483111567481897044983770854585731742688895487306872067371379118780548058914977168829241769507903283685897668812902726854437657842839227891226921380052407454695173601297550230383552857814106078687999329781932280842100794817525314149143635592815097661707142010161435819090613582911568608498649861118456353631921177172960598305410623483034355730016572613834283506655350281068165126656645543082816532005110901327162738317178535969381327314851998419566810501577390529003345903980299707143070106716258539866626913218809695361088878968774198957628654100248578945013963755540118444695265329696354367732101672793686686173855641418928680245219077457788194767130106294098095831616949073493581905779872190777895069817824054167629249306774940578830259165596676852661145678658329347787441046394172115251136891679598019923848917014022170698425400626643926028826478546116601143403535162754321920146736867331940683394103661587984128448059717449398301045392848133141151909329793566741907974497234259271903293092071720173034916331118150692044304787894369237752529014383027190801217709598923479556994502971224124655463374290865456311860254691207486526915133216669042301522771010185693270917929795430150835084532865153204426384935557052816983743989428457893607890107262689335968569684457050716548592382958628103948179287944879674187925488775342353215910600585671381019679501639681432757060752710875022221008241879421399604352704292103369401460222612991246973269664237944125798860539152889844436079165861045400130846262199009967683822221942705785361039721932263645366342051023724802559625726141257975005514808214416926022893704448538176891955133556745133785576704080234437889043889417526617811027397467731054425242796506932721391877532209269053420538652892425379153978213960654091764382562779619511132520920722325291916918536157304080134697441579054387875580372713488265304576370969224829137088891026520539261166970905855339089050339683676248862669326097726657889383298150905220957408954230827300191980113383030471374923958750429313061420760672522377777306562414786758256131790451418907755926295501933629184473168101449083543588185992437762403039802977584059668611069261035609992311217910745340835468418538366788455607882647477257812052929434856105934976146395332380720179414905187344884690745207114703005981523732963720967435381018195295132957837917009258108150584898331619521068096825185418907312348904345116971684740336458774573998744954591599272612449988807033104526856016423952403496123404921674537515234196251833541246271776460428772155210829953484327501932040614996178898572299154304513895296335234272003810183900390361496905506189172925511763625575378057402034594279213054558015009198960664744443108840838006024749383994072760489154339880319288120312200615749041131802099398421557389399512417979306946726301733061698158289446463151218234913117837261248198785280934344173453398514356953790247632176917952083968095356007994090159565821653954248885406851383450388049647343410773236667097657502355965716875963139734668578311948574030879650503553742400933091247468837847230016861761126827000372933769981494084988158055437918982044108780702173933047131094586543432547631545543608191231174654653867707059625488417440585722423616686282278374400917193241593627039328026381623680247668118334814848104434710243634599080184444968585924489454292346580941729550116344347700496161530930716060876509241434567740241391082875367081851369423260991373617465740738562013058126489891989132105472119329106865034831037858561199365115124975680066656107714647587089825909695037678259713182390480079732770002567209659852185885278438735055864424493216180464301651558945128388765551069552943229838403755494923771389113640390440198753108814713348012578163143706309694924067632401760783965836867274555181309855771456092134770971794962719757394645433339691571264567076191202838844524306664383097754435417878799733573913354447609594164123433640293259583087011884901485538112662836470493868524679792845678658636086282964211472661442254551920539250176412232004645728572526287716181360033368672109928514813601650536037518917826759354416154928168403451614851293678143442726212420574505192225154224665550436528213920616075309934409005009846790174911983339724083398856128587291388693296361685845621289369816806960149322292937705871066706211205491597548835571402411307418191803143649906473430867350765911655057562641325872949333309669870784149405173883828232186128368094160994239543731554402876918237655210072762923443636309301661906812667166983766675439308138825664634856192425467212986273664227408029782590462538269315636362865930617748891807730107122481137409953002728934846160902731613911696794357503700759280124908087063196988700489749566508586251027964273722144602555667701525280759020560657995966315481274727516687409514529015905381690564286378794508863007508722125801850639284039235146889567573492580860456284490342497061502834335415699244300647152191181616385470820111102968563439077922332382853931167803194644286695576460061941221684375527767702902216148450042504582525178822820195327035646011022971731719622287065416681502240542306290252766226052555431375302380334440318471137550340808169875612363892915420197453858519025049173130277764596141493679018128658048070432688928220296885035215180327782614264961988243337308430178351898137014909268742041759140484119793812239691987689333053778445129413507983215885509884294642028757464187382770582231793728735854020950348901947378953920510966889369096574213442512646702490261543229481851387350973315431315568540290234651226457663311809471584330206101709593973944991343928928798042530993821818277876408528520905243085689035390285479672330023002291269826033737504038754516273807592788481857347648164328062203007968406893396251186309323374675298797370661693934452211976497627457924419837558659695660706162417056557068008859147101757796795420269057762097543576751945309983571753198207517008664532546557824104560749220219941337848772329662348818955969590159809429998538102914524385305185406262832335262782377825742620786427549820100991423970490346396087033300390190562380478880595320370984617351206395061585799507278655927856438400123111331286861367088231733912682677659747228094158595882874072494206104568164700347768019275709262780737594624830667484735877198563574235723683396147308382340528936764675872242680027486206799504474806262169896277958216088259880824466295613550967368089306192173068570951973088048102101245576438483604585023172108910996638935058214242795751711295952287209150757114497642672333108434719722586542146429803030938915164427480590203334151085303649019304163554423900016789762365296861513119982982029874980046878835894077918598466902397608866564419320356296809548079251193414938703567101029847371385641835847768875057534465390574885573001940799524932488934776615299022203138800157887849024508178034484438960233600643381419317157864695156420673211828082794918362237234116051167015291124290733939426798785409253877536468820646314766891274052341918210860930360946333612505463905104429495319206022846832389790903292824605518827278497234832714526321677179370622710977316356343524023457065786445303662842246212608526249118100448275165152093661370467904521529197720433608847665591958667407962348611446407421864191004822075079495325148058556561580651561097921785847634428547266400544574729693953113956914171225017406595863380398281206466570373041186803934611604837060499855196678642344010356608065149645787230657927268690533954848073839244107815591000389872986783856029893703593721788450964113740526701328242665099447423216372673256588424574599657088168222674780349863491259542933455025377885841180618922677038435391592730660686125391036005847999616864720477773675675112948830006950822295643964933917224395218425293792449261721045481687344378351809585887960155255301356512139702004957014650071363523771282775473649544885594887239554584418023072232922595442150246594497132428985026701389743282399410884641872961672748851251600221210808374969219087917299076832729894223313633860975977700377713678636125016846787269814611086247519186640799705884633137082984356280658500694082236040960990157809844768870365881282821790280846330036718719339868146596008121013898062332895263920301551133152769629652949859687144975964881120860829383460439747006162388790884417927613419088242678219666267069851989970810470037789984289725493346998005636163764237873383588806344453840143093669241006891451356076122577452298545446346692418980472826195115836286103156960207042896233581878319541356559867351797747681520983980233476341910978501899274585404148199661942835673890537838621450412000999299898372995031867004919719327980656180567730975893702929837518254576268751506491388938274859479769022016439686979871041040917871564593923118606667720238044230445887385756222921902719142118141614034645966237290589994486678994050427379540551218031411293536112836063188103569315236747647799881153106727018913148497398801058813460536930804727481027625544611806302029453160773883229608630181833691421641615315401640093609707192409103743296297653234942993648339227079488984682269765744896815559533237324970419837374771355235841650233641773985825490122202888716287247732337834881071826444914970340258338109261357811887542854320026576997943954988721657453717326188428250153952913271983713124138584519462306344760334375106887915746718652257689338383513100031986739570758482907644179016692816739881769724525664974170961104061311655966878421525640041713043409939340078831960621992472419119992452030023190011981431731541450010464892361110044498757927873847039541598950167244458113722956733198551947935045334934851456325451725825605779749533117041148636687844651773957696636082291959980666967523988475960325078950686613485698998340520691586249939800223768879770457010224018465006332528121421010368971036814056143499240971486888400677859405940510243515838046376482246073280483290447532283357249064631067865119871527108666166193077377426919308410597958642693827537991844474599068998022643777243778377773432732055199286247398270307414564587474574730071247325179042121777156394603183841178317856613611323272336828929552570279575318408276387531911651863406268687949863994165999815352096308449936574917800278214443865897209386085002729249665999977760541406733562365990540309618245634698712119527362749575859477140479314518237061968184680947447937166753696706773157712439966493497344609787763529279801464407649384244160222406531263909355182804098618346434096997965284333049144251601754910956722321757773658503926615855326837016300357111615650852419272884524870833029019308513126722095598454173566009493620393033332099319042984516216517129613991139934168097164379880098584430497979222928688519543721177900512752040897713319708417749113756339162413903304588867878767531773851274030408321639574201842542542899799721168490915541637407416466761902603271085255630185216853736360266297415972592414371066803060327626405613721434491403505999746180182500578156389164503933289656224565228248929774035661177356474122188392509199578685803725326438269188371731847736744778918600610952981500412434776828362048666793214424726995066925605191379349136862852537910631929035024066352928610141425208554125619898679693851884403514918232180657653012665570830710890924866138630854279570852067641127273579651966254475579123477692392211713911193548735470354563170813088875318414363756065923403356606975807285072352327628195945824922567239356271901027068628497811992633416149783448369170344316936617657267840759324585976297725759375783748409600774537391088294023041619503104062964409867642144464614459498443839347909029891062550394019446342923906797044709654556851260893285993902967262553059959584270539727619592318483381375943995957438005484860831011831234449161191873459553890113163663115780193573445106553982355661652523890467133672021299058560618052434739977235511456560926360426261546475430047521927643784978877198622146626526440401747533703317969318186438398427762655705151610338397230372185658975438272910268956068410469229304169592140367849061001330624613286395532369955052621115324294959116741717965927165457257725775696419783263709391168011307329877803424702416390027671902912886609140811484710995662164685338910431535719722544645988427541727208564763819586265082407844267589278299381687704093740470931228620098154297567548445272966683808509534588125722643296008526934507477068869798876589636990054160944924947726269603384040388119251631753972602590165810640855932551227713048457309479442660115493411115060549014745172840646275093885154424981097634357402428373119455484382537509754619802272190466926701581077073339087421866141142009813020054638558625470244610535906864936151061147608370767213417532380129472447863217707869608330301242127722048921799951981080741324322155019438368162463974278153751245631050307239327507773038265585241890674379126493028536522261371442406707769930596818102432929100666314977596150188137285848717720436070329956110497759757039190460698620730370142839044468141978119671335793099341587729168077348848733777578375327946674534038276831013547800925191698480599567657350115270552542501086632329180214134724370136127203811027662346997777789421513902786632528604646027412181384121814790415008980893319262716672640803626760800331550134648080043463578445502519627434948314771447020962573405281010766840809120374663852984906598307144487782611003153267820081676775389094859518157118459019457590786562836307751253476158168010886056431731337814124519630589451018749836500979882149101363690892570762604099898724115097270711708522810955353365817682631831255345424150030458755727311943133562581976288285005290127842029414818153894066237203367290992490511857428775408270892448700875241027312360618491540266450985372186422819772362374276090925981508416972744883682157778082753757482556407034523519907378306695763411225663179445029204235539129165895019651127025126596044540909448935053285490830959564868502491691341889206597089084533584391196211530175845476532215638041463876682132380979525511471325242777202020040916323077483078181810200145688144806306313124473326881467037379398197436009344307018046142152890459964444931488321023255506462864775363481433240211400903533670787720134897089623427179174686052217965812351985316578094067918387107827389881950572133740616635565317527613969095054579490588957199556107078261208021454561409194132572852818752239349460880495790504303734264628553102668993481705247934932533015915408933497411794960542950735856092856813857448579580584032222725339314707609215139291938419546958704525658699457953503841603658942931123412279123778392790777197768151655761413294023055256792899428956661941525257503303500777180476084227138162402021098129162363572072840289554124603767307697921176056095622234634237970155747125915935516114638356396421649947264301422403277667230391243314928336313357253544923108871191275385024196160492521730495051708468642136850074773348676514170551399441273703487955745872531031304404930615753715410413641385793073836864094192309881284590536956946811194757928373340824822916190032481764480014848635600465925205574647669717989295038783812999997531876331254572494264111634549406726974047124299130444865403284011895117016301625972663111541591463415503707459493084515468159669123085145463900403301953048672106911137443912092523822755585209262260956873800636743931785863303259091702314307016883509594201395335572302362006443830727296032134145706079985167589708786095593239620425684363479205196049894152786545173678266597856489774802198604561387274165795430660364697500750497725626667651260227265982186964185026078443343424441494682082282645305532126239514508994365528138707274761102612526329927408892453349969541033607270193498765268312715531619986290853119949180436448971072486537245272399575822877026164841875767007771931865303876002458359470150392640010563301148247836108068418973552518562974534029775777570427457451815988699308475536731893592641545249533657091019198324211616516491357412031013981746509257650939769644748133166993878274329776861784219864964380227041597982805894397515154602399532492858228539495042494773824114847223685820429535760488513250568316188216485506725247382218067983104844104333965309189138234450484513235162320748677586436732007578762470945761542970939852843436029495770741799875759303545972143000929035863040188004114716785315571225557000200712391265505351822928327556961604327731120118881410350610478777731161043809017701319192870062274899562788677677561604398114451778365763958333822578549102563289425250686712808133424341372025161766696983316345514880209387216008718977316870865379505379919923348001760099204481116333885452634882148273991757662118367486317068576037228850776567092293204346763713759509658284637924577996717489521936319983172136245599087828244595270937589327374720265602718734878289106390941086935071074426704087711712273789944486486933553802792392262497805699519656217272170725998197528884854352242465402022695538266170373550759049537957943592815593384890735947080608527320445539473481015590247367424891011837026376865339435950566900106552426148119699422156581636940635997077775468238498716689141160453290903713915302298288419461734434376515589191108333738951135738758528435570577477879462883415503069708053888452300250851285494030441508512439153769280813555243014418041367476536978677261925071502869635117210992839713371340004180604666318905060376202778006181542566810113574796019680098662722827531380866133124917229393192500483885007874048223161463985733789860869754920504857244576944446682736997948669980089056344233895042096457782244493662083982836651967819820778141348461881368982664518941793594909259972649991307054485388340484504539950746412175827726869282812768129094135132309931082491613767504240001441215450099290019269662935854926154583710313144255055074621050796794595191630857495361448293427369285791090207798959274562181922080741547298149981470303372886122407777433661922589318878261546064180356980030357426396314946855659915663030313636350005884246059103109409138041680949734460926254900562132810406884961059669412652555707383948825602773751057107008922405414631379410017952080572706051304135601180802038611968896672263131268886963482375210451412827962632057189881957916736885620776442691184121251340211364955278087002298629701182278897162946262823219412730503861881991902266344963815704345883568346456825856031975222020955843244586649892440982937856130837272375076091152145090991967851653332396070642603027213418640872305318736354246983880282371437931383606621371091474692690948088007860152305047739140366189880227638106043865817869913845092415639007136633767444135218416499441173348133749228816937874578075629972836490207599715509560284146884602415652506797637024821886486406661003477099500474937841728884059230436689678788463432578767598622814435190935585702722426210737519164551751631845102117479256154092472033445079477038466381740595389349820733038939028777417526395006018225158669428911843440678576613252832179241486915936257328041256251734833689952030983121214266883868765819079396632661933863744622623693721465137101429211082583101677421431728733224394812118911714310674192053237227051454430834676871663312949657029497078134939258362266046917031608396399255142959938339691072721786423856308571155159935396537738419557787114167416595200553880497664995932126269984579160606888507919198060137691327240976620584902948613370512331964098413753976123504375766220027716034144540842297884595655565631982359832885700924600964094140323373891636069256592486521663585872619686002553297050875536402146989775404667427325870168352829291429639185127931237822103893097441683636314415993579530325149196182561447952395374853615829076322534480595561182891897289716070498443675266276714742155912910212045207627326382966178492303786357677145893377059320841210325662489209770561909663588928714490407526880885954671652538201220752089986069170731315325948730620508422281823787914337251740664022255335862516675778945196294986155416618278722598740724563277737085584681116514905575509647857830259812963685481153345790186540037395715698483792185380768260490316373407061531437713219500857503277680022718747201406508855277753660494617068237683854771439515387639123501096312662337131321626738623445817444257686993627303754652244287927161316126976634464909446886820964732893088695622487680058258280496020651124153167932879420146479566001403575129935846595963013446972765522092426241120777772998517209620350695562863384964907710302746989716819891610421864991626996865355893786524315275215349269722461989001496553627158582241655128198156614377409655804329248079013333351716131723376082812464351018792972814342639084128441147222129668674633976574285040011238842740973804482202231517486882459187851746280967034614097300155735553211906222414131952277203282109582614275564334169796878491146085453302345686424207707568741767470519834920939935037228071649786384782879590667784670291471067029848693549354863201156642785684664915682126889027603706824382839424009251167017454087684145169579044152286621340191295096355903814977735938261916399707305891531505890159024716211149402772279085985467952646956130066643985283807432524202622249345057771642624218406134911323823964801047087132451893438058978838311519998116121874908298566547210753923658998448748862317363841739536451922193825774648473044691339862093782911341210206779157056706159661832876877145252521234956332345697035191675708602869482397992529889045921973929048849384375157418420996853182747668561851565042568994161141548378912767063070741098924757733878352748910283477360918167339222930399548549079562925520173172926930018756391573883925071542631195092416613715133106891109701691436794827344949638124054978531849718339092393048030607648283354766922048394318802275210803916560194597131089452208730131954160124155513277274752586665625831879816223776056047431317699637273777521901104396505617203451986416738162533665335576720881863058806152595079272830596958417223712787472281617192282558929601853391260182404664687751663680785272664134326381175521241074987128447530249839899011190676624444794085610454095454054149037104882148170802897566378587951597113555724832514604309900842998899090187359683098171713424607451642827388488430370986175912918122012222181899248662556357641381415274247457534193801543870409544816978151589614616418173203516137500769758170373835740300820457023743158634620143646858944685402250567535525020852384160287930265843532132905726597193127082407361015444384499197351926698850158697353159729864093157520793893012543250431268117199708407582215950042051710637876060653052974638221184040449265497606749119355762575460367541830993886136830576345790623126060083156976274317943467297356413581813950492228180551769927013820512928193473760943350869588456077982400149803427154465938718842280335907578190252048521956926575968503698602414434707927934226978503453970129962360703201597159371606043916622290631260484533214974714718106551248741439788978550355286930681800579358033966203882267959425481051388133976800440258884232942671577595300687740644924125162334385834509378471919697090098383355986948638633689409587722068340148518984107811025529872719067770531946466607897616575921376755500352539423063336344831624366782854761990701507671218209082022046612523059174112502125835581368931609731885594536327745318421564123869821757979138741388892436235432274115134836145981320179079942074009057771311408202494295303190298631861763414290108702803703848138976620221956409441782838983902854664593066734943884919095018935342880803294487587108592668978268908213472373455545268804179542083819515923937854232217409457586018491366138910254525704076711271874903787238519753256085457191529175999509589905334195439934232801786109319979541120223811638101574047148526106094682305388595478335169395889526171373785292546844041558720569990290255230189797271558744656194998776169892783129558271284162652718405270111537444328793719397074668793679446914483441988372751392963372008231070701852900739484933864832686978000371508331399991090892385892590138667474715773832601721878605915250870116346364727077162041521798425781774442735771788019445576309503686603110951034476593754815301638117175903607478302228679021120556045059455921426445489633404580396944323678762336761563842623537295607080788280991391464662350640352357034614410076291260480618218491300569779447829393155722895310857253590139757174148027323408519395244188736682120253657060249633432636539185942332066611167198365703510957742975100130134491246599049236728480132861475362021298976277340957577677764262771485437976557845873091850845339890492506322247168460211819396340717339987615672470909370933329668033108228380994255767501118123630810695388706685215874015760986274746878360307757071915740001021991613281173321469138626355553378079304789285285425842593194582157445724498599718791031150790754912238254469496445847090740683147740120942373036324925873857001584209976943668762175086242454193290844312648827341374932464142435971203640254686627328061772466945807509754230478081732355646148435284498769600668535002990516152777895199094960020318106064238457269148609742700184449572963745802832821152532560801066678746805958145899108530299201723011923075323733209702756216127286953256715715035828231592112399178266084429439317112519422907485180312554229239059883031982382249909963246902449711961610163581693898821523710095260498056668497927085222792842505490306558864737523005355452826092932324643489073108380446486992502132034487720594927231117253108843341629475081540266517283137783456383441758641856993329129140545687646877413907927416664105981007502754692470192201452408125851261894330697143365314258293097484607475356049492881534831356961574348877722904746030384465877789561966042886027493809663220433928809406855714900402018945761856531319571133662895004965478277414395800992375797770517169049237910494887488187070810184002400432415361916715933694715847440389599472158623498504844101655970746922124128410258665289649694413471307289179247545995859753697652482275319452491113966524581596606190974030051231598258222128560690464280575289625604373263064131336482424296180135142553591829901222937850522382732811527491721217638917967244413882935934123604918061402066641592828218152342490861431446763303035686800724690960433595968182559379431306869847912607636070683948106307716384403165627524501335271190919902670024977374101283587180855234544306021727859898218898575345117578664100070057170532372566658136237821735119725924717864168574681668685963143002571714989016430188217153787178539030332280686675626022781307434154137001225420630751984969598549579453800726296397236091615010546998501508489440363728503556240023455978441718148775617807728331365375919924590188604192599120399751727700294562257510435817365991259080167361538317728165095643912635209488611141725279055384808371878392647990262877512910004258895260764755324106233592575016337206940366131328415852074195447802042098140703792319511220304914449961352889898285794964891563321518200432922195356243561370050101165579375394296172859156730233558789504160456196002763501024937108790329159914644041906844385799048789407829821038901152248179656180089600317676634060597034586926101344470526202171748684446989014131755981944459687249172699852502119420543713219511477630172753441912156045793740321181138212741458748110571972737365071827150106128633678845463301100133273977202028651075087357023177160102104191713297575326650383500318045021322135682620383322977589876502329549002007133834508621567249132046835186295025426267901629179082454638073164707194199850430714642246933508153925153881862075716334989501739134043042219906675568379150369004317134904855711263580774744972789031022218101649479659325090526615129375898419877833986343320374668926899092260374533045520702543749774789454810654605998964256902139872886006892894712211176803963933275585108840973525370494798315442877049730236640348939032182838392009558655710606368791053257458600446202196524328258121337475281334836016243965223436305365103628853505114697190031429387080598067381570062230476782247969781810560496369091317050011279673720779472593033701662086590136302687653298854413368457463176862496101266058904875549155631713567811350759935460836463980049100867311064972177205659136374120416581506650345067516761750868174656209079125173696653157557055455995273394741746240478552380020626293292252278011311810416845528644539543613337075622240033906502961155555519563191280122656235731663447165127478664462421577029992318286079801823515995751562208108330897128199496391243657626050027809836334134572537118154910514470552087269367039085339611338366822384505475675728307610406498849641763247946688285818452563601906400198545481154913722388483822673334012233540988271226553016160772590665292608299430027873285224925573525758855182746495941441281010489046928460388295270688069200124494742168150996314845083069824939987036245541123311691975063151522189729808285616735612746742663379089757646619240792302277254160127873050224782068764392846690952544490303045060198603426921970614937187728645947782944669100818165811846678431986403569608971681074904366809994620525898630589533607271680164261602569306652207364553573150438380899448805947522515420588554695920656646928251279097543161067827040048645667867110754410771826709243256676408199378986285300278423868030876826594797026052280736135541192034353553873935193754685445828799275037694149133312934110556118728576904972773871115170501375793548835689432424267508781484791056746059480828576277258876480394970616961452188229648568581693166278010400988749181945756254526411039074491297656155235307738224049179363240141011696128740954625739120858073698819662665868093437900933010711468131851890594249722767581036308155771289071988869706402028716739735284458329257499351616150928231100775512553806968443957430537574531412652059797932121044881490200719028511505989311826496341099395055180265334828168813836421404338056433769955327164813160242004816471572464640687597367297989419000143389542075583110690977988127955117840011364102008835485843728379645269315390751032756396231928185388238187316862311454561847004465765387930716166730163614606937867170190037068710110708579596932341529073707693997080383805775161541817640539133110873206962279006262694562465331020572568186075148203303354849904989435358611138636496327044293370465885527715919973726751745506593787202789977437841099666563653701813274568733080617948793167407577051441255347970033833720297299158978430751589031889173936517006510946328115779161828316951447269962925694285450382616170926062199444942965059161966123308430432587573684758965425779114103147849376108996333280705497737790630129030227671389426856162127756720782889260696194566424260561248611968497019307023919632980415687744921226914938641127992084165914240535932991859942245525677778721411223973558003608887558664244020779323819721820259871227163107095222797289012889356554008392579095427061947928448921208737289055249549206293276178296986655436894672373139518059488363656563147274378880315279272833507028774928124131893425671903729976631030136983492809315843415413272930897061075544263552972750921206820353445558682738185838895609288727758931237432118682126777187431683393389594113112960202410980289562257042616865006273749666999799905255709734440076214396772101298396821394907217415839590875955469667213048122567009307218927988245675874180727531950436941126669298935258033056500852691004345697628387060426135176621690265680252372260907977834061323022609346356263500102213141044846053476967846119973659411018732502731958662542072380137861596007306780244967810255407864843779022297994951308911818036461346271616556476115082504954334732823498332646538479782400014437562639571272276231932171013506133408177748216002058465687056564413560960251106448072938530972569249190727423873636458020144618184092733469162417920780549415625657061036260613593665542217007504766825796540364305821229797849289892009908671247152995497781661020361316917463558697982766885646035145228246033374891224801862646580627464149764299174438583411879515884741501642056656831665557345922932626451023735290156261103786148713196491829361420447368685264290250755282511739899050844340685240766882184563277454126718733484674744357168937306067133313080329702633851127856679485841276742952115398366129918126461395980670195302334965040613204731514701824275955798577652196320884255742909671973171698129328238978858457320312737003372349964264273613488703363480988121435102059288610402543995317134581568131874531998966597782033484334965637299533303573737876511726749117841676286281372501037101815207322936595874615776009662821276097957803226233487093650815141884191558157783296882752237873826327150377868366713351526406741268349383370984528258194877076138865281140689848997400615730270170391657551886742064294429180903558191346274960493360769851229931831823014745872807670115352181536970597667683408604193559345103776574881400918917200456357475665021136963539080969404572417710823139674825609968185566913072344297864003191484616863833741847195621860286502448282955263313337126207815481133707964121598803828265396666443924069045740257985351755415187769564667167549864123840571897970586200200086758933285759063023993033816169124974419665297789712831869043603028081532211756812371018889949628948827050859363358692676518601932419680974164968197805247583600503805714287269922486043330345676622284757098569339709355305696399931288805500564152041617845428550206350212655321039229136491403694093747042503177193505435309130864561065715829801584312814807209053414274614661033540455642052203655433809226933587494528814736842609779410815951893280107345987034912552487106726054226221043350638022195560611954821674419337448991115391472782607517203807196968937377606747271457719727473040756300862724618883015363591075614034281400842441964217495754334152834469521058594611215992827913466226284107040159442578718169274726614719607142465522351642219849466189100281364504801350601745492108097437581167216700752560483399951901868893897814467001215252985682736773041479074442822079646439712967966749603353287292520151960442304583861550734356255720528280101959715422595480144360985249725177429714246635984787832726094972084785912607991216207129567359612760022889133199534931165802222024107706908743002611487098997016696500458814768040426402785193010031242892539053307394514431098859662002621896308789304870170838267875875933429339419640250556643891596551188937719820055995075643450427375670323859181369638419799518460771715023642475102427214400423818291498371746037474263928491841098158126317518519243464105868165354442914824338394027647685354037825792881973918026576089590289568949309262810836402500845720644049214851020902932164684000494185797281463147583318729945654509068732084157460172974403299514322843624124774369242201897754340766702989044044385218882603823111984179163271679853695804204919834948701657219256671160485424628109746905443196113532209330390374811599065523259730587017978499836141271977398222469799054485504802675403390805283198318078011874786168798920977075456895098187894396019955392492580341891610590099695534943011122227625790328922176529179258444983683355108544682638727171433116466869911449024066357550885511113154040238176238059251208650524499957187393598370126013363961110235756440282489406991777016072768962718963438402972537809890076282311789856697941235631807854617733440531912840593834868981642187568656491248944315765251067307960888734625321814381471561913232989175574731461077272120404337112083713287212241808138332191497269279924043061167762293757036639339978234589217536824953743497385597737483258358293194209996675587136087637807258569832632118771636523843778288903944601285853571995571693694585412278913634973012517708310695794352437364777236070118349764312782939669813934590837547618846831618149588279143213784793199813249546550735896284150254064382167157275143934248784536924985335254481218933316496485490279477496403332680332260245136678001439598282584108000522306623768245702761601548843009792683618057816457280718724412222720799800773663744970650740937869339821358332154180998348449078908532065772864277502096094927435990168382039344765515762453467650823743298034123308060990621863831862899924265105464590407767825416352631027571276565862846242517279903688624689104922854066409220726947768603392659608278215697701121658874168062952819322447292697263908329155658994318674962516985408630339481117120883800144862256963865774750154360109623797727114603839354673440489953975085324809391261492692486037711546978681076326057388008330533728923632787001872616906572789912188917569942021867328815010219855716939553413281465873041010324562631680313968318077642929287000063491851514547697625311335626098954055792279478659901189160012903496430476790804681702087859026999050735103418891969508642768129969349286703520172109032251381603122977078537553929940550144073373021318108631281299129368087561247335547443694477861960965176724261332334872284867897877522714170733310782010238318980977735102599608159767449543832587355270685901248757875530735061670892161783600417529813189390395913949617502062277864020187042655547674207482067297158658150045666417677145499685289606886563362375014877281265360838291511427642069709422274490280628769959477267696879052959611603987717481842845711658582453719571270440964008827147846565185946941567713817146175052034927972712782031453677288529139695704092301946468139446174246763312439349252413876428667285601740696121792523747970357818749721696892253611851320966457946381289646683057343355552011846113877496752854142063762694287661701718591543324302456045002927481168302663388453900671728651849808137983997838009277418665135447976885196849815083233809850717814975363519784963140731466086082403076124552220506771134774111369063572420382915986942711259964355690751066081780730636090811859055485912698234023534250644389718879731725388411315788231949540919637306263887639918920452898917692622702071372695653423203685889675156931621735846115287481257457145502484020788642234203834689049546410424759255797388512519270918801355504819018506021029490490380769165504123616219514468316458520285418934650811733020690320783223133353990112233919788197675370795296407228965747877260498080092185908781432926384049761773347617050031066489914318412237408990306645693948714478502220047659903253487461664999974914712173750348996837087985860085715447452609227403631286618230051966304439597717285765669144005362369165722926679437117638378273120501484297257408966962533032336392074184068480063812083156852107045120779365044999692709755054899450283578261304108996265471201436105663814382676671912221021683522148165534676897570993947027190322311416689973046873735428089077630635682044853780838309254086642200720485408603575014671232001717329902771170338953519269916898837730381315397066580946664651415222391794711911894273476980282141847896159986082892756804340033233918487359959019898525942510953679105865931014939605688481056774046421810928096954917846452535096277054733005507458498618327702535482087513342283110680667626547797389785478114915526785166418003932869050306660317254038604687357313036361821399617073818659197199483552046746206189507169160316298246444132942549730406547094444533546676844175303135854527112311117111890052631433895647341089785386161456287543790764868034410524240780874760291798375258399363954815575621908422650653252807275997266495260300617155952201900233638235733217688532995218449900313238034465412636568881313502514442933193912222223049191928970689245359940705790466712026430422965598638991990403008172240377115945020212155412014762729526978454579854305718347540581584541687206694008692867924181890700194971633092841003194753525687550642357725204957350546687619883722929869225122899429696150726447441126677057366495835980625021082586199097408991842266456482103689010746575927763894404706315901500226003440221010323679934388645452808434771890122774568362162902782186668574526281944070920590216915558009490649461336922995585414866736990761193094660073816648626214644826993388096430746702175203908724760753379073113332645874568988409012327696461032741068369695920854383830282717314128505459513088769820239171893933191070897763901142192028690077985076494264313921641660751331086649527652382290852594495697023610728080263074469983827389449272320056335785235532176863231289090625336931105662990995651597372308613700987702793565755141893877117513637419795446832790545357830914698288361265161641202485595517385757818971161709782490861654014232781344733193853572310169817891240412121503134346250050090507251590667732565055485806969922228785168475941104794000177253168800121396666726277768527860655626197322778346584209003052212933073172087128083293973996851264841117387495764363414152723017122029405772449869025192167512533844728086921864614776304907648654508988123170761933821945828756299469441757241162987696530893620659532698220997547823755891568198198481902364508349873835429278523107971987777197559992216377980445420100024200832038418623141821280407705010931692605500017133915243157518645042853182855061622585961297410014835576543006117466076862529062790629376087496801438334719051977615355294898765690158695923552993369292570555057996439887489243784868176092423983590520035641479720535277543822614069959436404349399104585022029342720145064430404615549229802716915951619135088774875143181516276836036733248257307549660158774596515111626268334412848963090323558446298637439984511148379257423738543296447841149437882078801862822783989449040389441580296411258482367071987071136538174852464072685501414273095993015031408337103539721323320872308297068087842506972962095835183958921721599098927313738534609022812864751332786056471538511288968909378014490919612258741159749657964675275789521241666675943788564599895823978836763932112188817814078869156728977957932112676376903302126012161113499943333834972888783501037024674577053782362476630808549734321089166692139221289655191457261296064270051787210142062490230137210376029819507856819444676459740492345589884246482597570644220408137009603674501581715855423512504820634323677262033485651488915398684846160478607772950718588145571279897101008279546660988120613991905070462684176375393648545451776907970450763570064639595061091032951292458000796646090586051995655502844823999822963806288324755438581177182533979483164157264856716951652307458713427034774463240688220943009834490633841132927154422853981782699311828617040765847695800025853029506337331872642953973687461544766967853609214337180641693651393954732205410837398750472721604371486687019600996036694682524163131982141371326353258172347372222062534327996964107624157827895383011190916498200980208557119099202231397852126791678662534941915506378097017305443722486312455636545618272401069611915207314487829342142525313247556395685880219229444478306382444070790583996633234107289113941814441327628990256677639617462166753925751799090378064333595792422914725153057728950165405619477597368121932119380408743780139715891093547020186996548922200911875841829111015502009371040296247566795731045989280334202096823019310005340531356372680727385945957148300541796528244234251521275189784717002206677762406558636925428588176901567916927153197820898116080478041227278749622645846463186740642989744804102015451105108346058923343264731155527844807921175913892194448553287408589236094923889880655643045597189024186974465805143702568513187913630600480680591244198884522633166227357131107796932414044068931092061675017255303587553770943215777924434682996579681925527682746357389292106663696268329722893861102644072418503017491137311812216203001267202958575414987908715095485304998812491541471967327945811251455453084873663953874500280877214462704387234536902638920873328101366643953286600237567165573125007444057659481536858636852314500056385933909001093039610256963149087722067385260064357525889094719229824461890961469221328974973179662361266562672905904722255331344535810905107442369108733563909581151125501593357950491415959286443768413674373607541800827658857943807058808556650474147947986720226919408192149764772665898715723784100241429613197520479791270342391285396997907745862628171861981916372138616456412711357266652064572977491384245503132720101879341965345995018012244627107946034364133854241862294615006878329692628118090787983432691245709586758257615557007164207870754581964680783486927726115654307487692770793558194372715097466455627354518341323571651257814493049295868480180912529552769023485382015428434100761335307043119851306613730579403912170944124892803979766102524421247288768326946718689561049007012629080116023372465298613731642148499119195578636210395814492178716243919411233639087525467311645762924172207344824762138271897800476944440898936081897383853170416146811557267294059804471367333683538721263701672200934128323411069783640582328364489103764690579712866564598198107730343806104272494050379860706167618832928819993019450717826527706066306022021242571789115690731384533784523280606710231149550490317567624775400460653701807081413687168299669259445402043199080206047374659773866998410438612530113726546248429127994515906925007589112030993023250821731874645360318936039821711216278783212160454334481747106335487243196505525440245211841306835847996987148956002979194599531891515586763360636694696776290397371168969354156856724123771834973462227047676707007957837747579941590841896614839564995252103059214436209535098403635324796292620170221332871506706263387090288099380548729076936481857824030400042386637982160043897543052681752389548460814258411240011537877432641830951165195557149326703662950621325652778531153002110641853325647723331541609476853460205125691140649864985302357580404697839055023596914439992325534395650660492023195389951002767469028369056354719444595112139324706482109993495273721089679419727882175847706172318639508150507782065889021782263994122772823591898735631419945071258643795374908055858770743194299646961770560876325896416421278025842183827081549388056163712767699728766177096909901769250043272221740089568784453518988694496015130336298368765693403888489055760127321380409873548107350029965287633233864653894034537992596847469933785498275976273848594545478309030797600232738545567032672519171987252157744411437511354566914829284754459972290513845872876322847251536235473341025386353606288739681221523688453656742090535106464286801350831996009577613119696909326962603703522477356229669226307407723357971698132098804175780770372373264774658182035633815158878615640960534560715096503389819704921189923290961527578937708229016370615086458699939230300493054644290690798810588080691915134974728118487305228387806707972473357947818632337452306725587544712104471252397757447545716780777642840843461270863726088221630493259420026435798740743619620512825177394490158425557218186928424425879088412513068507758401699997964547609582848126364304728536505838124258527592495515281282679807815462142124212409217139836345859739919825397858661074725455690688324789122881601848885278709348148172520585468297651662957278551627938957703200681233367042256302928355577613680308289063231454576636762565307847155127565795036209219233971615618990609709527410266437596856396426558450721563304118643585571478747733477475559927890994773169743826084602785143972280874267788086117417644544327862633574752677607073960812979578356458836914948235277290543418366905262817889306392968873416473988444424803143264970462477009039812404988772952270001269721653749396628356468218446373246260410417854629241790629993130240228173727339699854087354244311242904981549135755941316655045987132478280920395367470643952809036017582866390100253466820210511357225875381530321971780077599545669456516987855968036654523984494314872293469887012975295220896310496646939534922726247987697710390457974404180727366434977251751567455497622111296501798369727545851909015548357433965624988355468967187141079667853805912074128325332772919778215860503629932298161302066708990626591743738703049709058982543212004214594193384442565282504551212654112994379011795029146039901595484495629810408613359850742159458546853678104217364443754418671830760472203575829989838335434977115514644647850260287285569954739732679584061602075323314862936896985343200958789062372360104561809787490860688112193069509923349502144043777214798368830240676869048606835008871892792752082972236246848951639851625981205863185939924217952898983345771340757644387351813149094770994151118948874672135158106326350385849476202343585382526385931237250200880571580099477338742595742623332908864076875911126621749253195353986892950985629130620114498546486289895431749742915044739434639661823465438787819322115466196903232141242695051423613523018575715455051910529236906788004679288568839218341381955656106047483297523473054363816530667970224562174682602977329449471967619752708896145124180071019059598800283247361255709573363332536628838132017862771686845771643220395131767341038373149292053137218871781069639861367536245409922747149402210879501668437668926373858938147183851436112424824720010477516592659367566185488771833754536077096080949755675661261015039793011200666261429085746060924643045867689044838472959171001374113187777504205434786691244059019227109142437481616517794527858288804685515569790060767739015632204844190649665200473938297847616488236890178248185386543759561223541059265351729907191879970422781551459767559018291736694013649257045518573126962024381186372720979489983501932046964383633138145552531002879501423840106524591881887264779402893964175850185178350170233385859931078327692736543890702489639428707069658995569982560655898690144146396978527741223003458128027338476717329242846121577295932914010438657481645892375368784246322341247702536706585718874385309495205927376448752943490855318158982565107265960600259653928473893496530090038004381956914728120797700707663681771690392799839639785381847671235024683442831711370394874872773701572451182939223708450443602865935911574574677728448184993703631324696417428235751888444939867931044149595401189960283124757044742113621080904463991977559232551935541446026353826331858996319588292962108935973230214635147929166249380797904220323915898426484977801787583103487677263066479938917181181895641084251642612997671362551937906519879785985124069135333609935527388516925966387701782957499816389257467818455914915478811422690886653977336813197502708665206537010321309524182161319616947504250053780139442224319794846437955419379604566898268857687706176245391385525769822918293533192490565670491492347057315837937692672963503817326532535574118717421881403117638872245235303463380203147325771933311202426070369846814304518281347417197911780805960131612341789924705673665627972731732242327151228371649890109634244638157297285786197943718055845773896000661077151714280455659571335330186077458668058485814585159900969779612954093067591747806598032889535808752276824848337392759622023411578338497808356022213785752397180329163056027859493783932005939606507619548685534790583056251597425705758297737648323890112611995024907203949201677976901025710933797548801782049577107422565409080704004048887980639363837669253354048545269052230147861024714337742224949282924943182295353296065834931578783106123589394043085622685235151158726591673061981881318830520892464537126697369477110991239340129643747188847013893921649431590372210059993740358951292570275154945333231018804718049814468856874982451754915603668004493902153999799716216573408616030463680315531234193206712735624635801305392194784721422213455581385177981952521528040298468804137336825938310591529642304692678340315638119837910045289827541202168483030970055290428001638820067253163018802908173049099757006166757931574127424343878692718746286774866305598740788710600468269164435017821929484981306029737848951283989049167972518080061137030207548400683367467698522789779931222746476579082104987374071664002119624475977384442625532889061966548105549575012701655850714247938975434930956919278795118453757947286873140466719182627038496699573023606776267954833390830288649576861761563415854324996548302508678715380062524247565463179295157097649887180790992317582282877688751557809562068274731815095866131380124290361724169692713684009150767521971065489348744363602940714461205227000388105787277343442751386492444234614356411733111078175137021217302302055355607857471083319190720838217447647987577369915798896229702348949201172866781608270193079427859564726922024741773744611570853635564517098912919127192356005391267475273501726879340553345067126572617932666448201621527563680849928148127088837848203753028083185496241403221153896561392119883823996962939475348785686729298140499114544583312902273449490244107758001927743336757566553479055590810395302875521225889278777919171798344361339132537077380229401668970914296214271028562512460270748687927008540708969307765361656012361940336389455077298649848964613362026335880548802825144491577251479549909892841427622389156508605997829845154247694652342471412608913551800949758249111025536232988675675766619813372954774891099551957538819070937161984141942184311341731469015883703199925990565746372536514775636349776755278679782197945823440467071395678217716877316555258450577023092189801154125250440290165079509525215571024237719351586221259281121774930773757845835516497638733145954817216021978944967557886762381893998580669886607284188776926743197038353335422234280152707249913564523232377612308507779588514542465289356111809184858781281167153307452854176829308021311485668002420588342071275208346691559000559352297237350007624658627317746403152429816992174322281986869925163064114931700710169811661538049040679545149359780196592668009412041729232605424666278336412532882942798948229427009654413680752765168488837084944553137008868861924158839103253843591859718924970557565282516564760527436760811483961193856280529047112287448677379109210648814127665125725726995024830399669634449757870135221136098092172032584301412030151632316044430983474055826315857824595912713663518978586012126319013168145666117021945000892068803183380669991350654028533753526524214336372348826659473800390513469341762957340297787746428840261195886105020917034634832473087965001804509001396313349550511300711122836377428612396360395474370567739861865399333437975320697625192255988310927576104446342554869712122237217591013532188230574610436801569681164852561423784950782067115645330257303598812014933800680723440779008386973487611393576616164069458263467209858123126073321005535002108370302493090786942017891645662602599045556855471423318713632496603821122984748976218974523171368129343277792146273936019709028299343119681001821725625516437912039298163534491010504412285249369684028301757581130760962327853234027246108929285185134051898357673175647664361219910661551097120462828402633957209967522022377070025414692593168990714267331216512584204813158787364243994627559610298662380710467737951250652052210177689946959253347405345932572728496266878544821455208659753051888713918750756137941283435941172960220926755827051419629503930417530362804537195233846471927834620377127320601742193152751405234164781088784885287112761738255932830763367076986491335966568978688710099788239927435070336674053764877597187322182241568345250928383072482764800077470053641747077313083628410439471498728950060186400931663088477134114643683894564624492572375428368205988409173064969573694118817102476910984630598103519230414599442314558333140752697871675741248368327766861738865189954018282925434122524863102522004486270207952938455675512613865976286162015158728722726722047319846088685958679751470799653552994526648146796500877991305813818263258106275078887015838196936341265563820594239242330391745041810333463298657718731783755117457804045753095030861390763300911634123541583220315896814578479752884807512425457549026073969057732593085358715138069010512771615286541771208936145216177452299387477922626408818780460996893523034146561040179429228003846766561437215114879174879571639023131240646394998369329461165793146358774238548992019334530046673336370075528474434034694949379233309095223024906768497694059825478670977058846590932208591210951010283142889974263296752151015968224841724932763416923502672180243575103890990469537263962156494885581681741133850661028079515659539739617333782641122658123491251187009343225980995527064189176235480713206561678333233124177266186935458363421405008459006139991625246668652462790209883367266973516298588508439663122024462368767290242979154891561234113668323735673320299701204696575912215717518894840702073446202278638602674309847553059539583325225897487680971208655059977957348579245633830092954548374244000010229006284157049200491398484810973971890888455288332781012185512233050070373433650704081124409865085831340563332892759707236152925557216748363227859609659889306424475631206494950787298898610426743414793732744604610212393399058915844559414063207792226492632306536920439137531973355733653146591635037698060213568093807468676683376685904894795380807734995183516839046878927685297682706668830003048237811282243472757485158405903385017788394097398913249889635813951001097979434754880124462481522918521348176751107453856725032866722828896851112925306038742109232779125681277739781819266514414558114271897190123937689694861105422954667795773535335862231817186583074397820792911630018537344923634722367923521211581017762143002013824905027036409745544802639063913188302198273607331368800180245144221742951380745153252156894899936729145991307890456216526882282317539027901443763380009619642988001275247569109691132407536404180081951958462914658412726377821825053478341508285538532295824817786894723073977058261899756494123760456760559625905677708771370706253958046906484478974512180334108884071957169722520084791756096687636715713123166487476882997449676327846416540623724264715407391519333343175036663884691749433976254251458924477305898585516675573376891334112709482603715720364398899313803544744291841090826179057762960427054384282320624887871299267784645147115656064815699343692630501489363907571418620505675429493405376215179904196761579396453813985180741771042219127806391099340569451052680345008951524363800552537723343715581865602028153340943656935192217568036063362967295887073072772979027350500593961871328463788764544265604511123669216241079400022895957674185659875414798210106556079768220483789755483378186770828701961269382643869542176509235270388100184998789220457715605680119178787688504071572087277453154328763786091864587750485079029948123619637214064425879171577389523201223955058572808126076498397600636877421860993959484893408369011590969251315537783211368699932507734587013745518251219639751023512733244851430065208659317878648121235510730340066213394530773102069789191916724943407163101349784234401178511941003806898898638507663299125632244711476187566123259927309290904120967741805175890092785029856618292561844489962372604335554817383143891037814234895917934140434385215136482796716483991517572471382203423391543425884724393135773953335934994965900211097746848415922288800788431806155487064523257273618636912088320084768433244730005385611785121819657887604714142370269576432648202699639163329579451608900072628072883389197527959665286720926859884927641002357937032284479737303755037124416121398056383007517317445505635972612991370523015842615748697814410087413455139332378872788217029460688558009577605353927459515843385116799161113353660275530846627915291018150285746546786809360620109520269822327850897344177910569800598854548220088776252027320278200272568123702248752300002191112331008477773050850439876689597853574807317494769567987942712866544737053711711279432796293286922397457439805269161141247382328452547654149599217241553574814158745807131549023407536612361639196562791614973745612648457990986474129109933432397095291343226341551811133115919214881367960384354024025439976552058017698293819808929573707522120554981972014665727785690465796288376573688906116594754372561788259125756909729066002697903368904340033521061011280712265297538928620636211378634269234996173845574004920807454077374564515775588599074165798766593953263330678866476321555192106482199234321305260236080041851134866316959539598424566677648604290104780413305152058398665242607092453881777030126666024830709258785211753326245762834213922932215327392587848299996022837195955043604520750704941329989208156669847757783198046559561743828982114836115980220172694154529667274226302086741906658962648074203576820852418340995593374138434463263846592634603575476256124152254454775238341358588878982904949659530770042617004063878594738391391412913690617456992732790307179889972909767778608277737907562391178838806282910429378280728958027205547911114347957157615539301980353742426819487584533683672470594639852303447458629888568879326746082689685085007248396693605023195928757389480924163268652058677528122304804697821052753861584081639783456542323700299044530904945498041219292375329425275561144348036528811152149992673675049553247370132062632364452621793995842686905132428714645004654907818064449970033944776978058387744097669179426322705890665127494552625920410327723812666522591697578231879927468961581363471161148343898538577894591539702806172476259752526591846785376805819043822017786704683153810080907490155802511929207110869602171790211356235178524427332360985766163262770747744964095191427848608216249457716762046203947635584050350414057716094052896393377883229404326316502690427739636736056288851382796070046480749742222304094881497226799035834459569876966592051801367196782402406238560168124318900383787880387069776812142689791085746027588399627113243457114127558982963178178850659573178668413653689500984268382963712309814247159640124987570709557181309602527319534229708512285583373411621124160865666403346554026618391197321382665470888417882211976021713766676166354222490598032562784990605960824502995997644707811291264553522975205576761354820183426076482679200333964503180356161389319188145769188055946825283304687076037559801683878897147359455868537145369109358029846065637235553413421210532796343496557331262472411279346592416021818295320560630934915138727778154065995122777193471998740632449559165615228770988099932587758943394371656121148757688198759397227795700324215205811054447744845517088362311340896890476864989488867166926660332896923226165343721732469281488822332728419064685665602068218193972016278563977010640549385518660347377706889504547472242034948499212412107852798894234188148118714042058268689755478823915611429128348056824340622322205830834805106735305879329908255756663931034583071567864673830896009737768779963260154195939579854845237384192936071504698896765474488760394890213709354577044307762669476239970221524277388503306507411073066962844796386263911404443864919486008290875920627965660097350667508526256178388862789814875871060151633734257066411508816794430647075507022584167536676819012497923380641621062981025254083582218700007442225598113365702267271539490538865588160810723258540543669789791135656670735269682261062435499734251505601937436944591698932601647741252457711156361148246961576789090252887304651794247920740254231827565054099527564832390634976067466553956366079223089435650570330678152381862342888969437106772539119999656112478502561341640016598712972625806367383957160456850514045251682547432980040758096825215779962729919572564790296399160065522745098936687911451548753916125504274621172944803017436821911519081849722489888746436507869326469836096600824161034389284625151322153882659709893245776847081718755854124607176921292345941261308952253140000493875890485449810554316291832467756107630997910823886993434429513240056090380037718970438188742958283534113239491256017060039614442204838934606137319467172399982912603532920260993719076806664031466714384177300231758459458217943430982361076293486958482720905022982358011484109856352232562677073402152281919105716596893082134335930310051970964703689270021293693304406784082388272927618363486842035530502340569412500335053995354413441404074350424868934350334601245531741514189079656240975356191630140412495571888864951766488853888146491294368082272914882779909627759599302301084555929538096481177108449294824386234035090969675483749751967260868549156867024568642023209109163777474521000639558155957571418363365846987686882000043934236982139747710072333524279421263541209144321736735985883186788476295600221886157888562554953486052890480499087801855756549620960956337974316393345383182282745659385693344342224289378145261767420566136732708343379154341582996850965262939734482262765146000110580434155170847710342089628345736846435463262726829514388710412188119462411294290373788643741920291806701198877212741741523393670765427896244532422175980457168981820283375230081830791821624698008262855588896945636587144609556589567741459160362071398540563788280953442216229953414854136283939870929648215227045508700134219791661033721656248224423071551714276867152490924404148581600541270055897066790770482178070355687965431504408798752378367751045184338997623974067977403529188713927409931775851079709816106831121498702326123132259204831459822528850446304925467527052935004222260837580498473851085034772330419625050092563379204694074618761564997743110841747928601766664823267472624412939261312751751548912620299098252279743766666777402011755316679279120980791244992020099345630745203221265011471211601058521848088574984923852267721897080816958862111288046645620123422177851098960013089470763417095411078243249107540368179964436258552383571594394656470022500072549582973424973178603226656730882984527670452874209289817790557084421995596909507977763036084846783012553251520797868570757591492245821460339917487521299559055170785064092597494526492157930044354015576680543518532586653116075864705340161689642042171076368866647843887687590558836873192565537350088378600286519298083338255304518267863426265809071920824783742817793997241766814833888139366334350989856478602378743422978251444439334898747417992402260851019438817733110377429610606858835940680431119980558690893599002517246170028769581830752859521569119210212105967109979974743250317893372040006050463823313157217010130676530595440508615490187485128546007215516318690409572512281427420185674929347184123776757831847368646054680220804411881286521624478052515168991132755889207375255853294315532224025226203456195632921794127980850896919991747479263048169940473381015522358128884893144472180214483160263566511657711702588349013424497713882135169466192934405369503966876768445418044939969095150750920040774117572943259912310131731044791448244026684253062376237176758675998421201502957196983779004304837879150770521266922972729430037477842273232553244720998864707241786870424338271507013447695091161939576685904254494912980906219088218627044377128267661270079360191784942916627263713565109246692229297485637114421424370063172844583654563679097082989427395565978717352010189278205568987750778876216850984451434643664424502241464354339989118961155897254331430092898516763261948789100181402965968698002315927352786578655182467770609876026875453427482772248453453523009723744773547021982179673449780343424513496846906553091506322600721274878329002947162497342836901464969237539549159455144274616546870807234172300521702208137549787599353699177675766325519127362946842898918608498235033553717625525013304975253959252396589092529867760027731118593457318596952788725238056693735580088621342488527354907599329569855519711837279094590642630814450048710103234273431022751620001919696458791446964925016406518857627463567386744781215615470060832634913957989697687471916432444165085960905948838653077525452874835402243070564194429451099453407619912929607297058140772436109172081633819274224931424455943308988210618390672083776974931710323821076301300085527828982999313327426943318077851428734501825749801685410325815611729161623936229586571119491121896967155910552517262701559346808048755394784642152443187654831802890181177180241383673833783910336878037680446954552773264544052667304479838673492665887689874427783601882074209963115270324662540035150984288719785131437068670203283537703414967434077386721214023593720990760732119413195579754519295445678284957074411616091474121439534536284956367383615092159684272376456538235796813702549536334964292782485031163586261284693695644072151708906502081829733944659971296603031981693340101640262306827964435714869321407170145118923648179141209449608886475702446380221380576084056328239549539251444930146366808925069055366669299918048467118743884387735340867247739366699208059927072816036188289927105275506324824099167578938557331809792799156457886544540811063329128169388630095592812190360815288919798985152217003837037839616964080168467272031090743710799657095890113420851812515793700799015475689227867124356970114981937634706826975898620133332182468240434609969115555881432451652932952847494270239027437710699473344725835679732625959604324907708362449877539484380677449677365741077868048932599939007150097545225682284991256851989616416135066715244921338634882782779459824623677749646032681214362959315163771724900656184701227579317779755638261203390274458411975431888126186601649936176614477566301829556293440909431329694950891436472219622580798677645853610795501534552712809638287081899702213543464962016601041812683498471579486222538691797179625549242336180999759784751751527329874673436706320180277929217652423861069139756798964702959546774637052521632638599057804005088311293455876276867890701306716478976819374498254944471981309438867705798149131076078527161406562911848583893848438293025642388538273765821869419414932260624234295329900586158568243751119932824310654671337068913200770650125256777944366236617229139430514852758835982234174572559599194200298767925344880501389806088483592793736069106011053864952560761094851482862268497635544558540692558532928003419590603939525460776435689213663572449938914096848514893864224364456854902624499299880790811882580466766682883844661345335979619008248733302397132519671767418014815999663373829613684892770819368237188566590269734000794650243429558910670924637119358714146734686104567333157463206570824138632329054529113880373082823957108083014636422888012626206285263999085563964846892572372992136956351956583812926572458682823761276667589486788070902954355874143103837364175374010485826662663762123123261142451187668425682844242190657052682351740952772024840661258194028161891692363413645898070537456825949814424791689303015736440026258685611309111460166438207314135174727753606766477550767602304125884049581946733555796018570368206035610089446017189205934783883785530254972363358212277750859998423914587646158287193428615747050709480764876896767904418356207449688380849273894455072673475840900474353427047134968257279629768173113641579367311852624387196757815317191730815174887867574544328606424891594881718654381262758936881778718136527501876953601921191161845900839093797171655344008917373430099498493565450144552805141962656985777660413539694900876499962748455435932302044098517981111789331621695055576900643042159595395163430518504724431519800570349622349154192171435456439845899423274189562147038440511912626292834300642994337407684080400732993292363580101951696161619051518195460014538319348421702326747554282070625778226233936947656137072408938962382885694185101404874509508704415982011323660290530255870948764973555548117758519743403618476231873019621640387792804227753514563642663825744516665510984161909104245700746697478007958870889030712248021330510514323072521637921935779131211751202033416421731902257261692354497643560539632435414400722939801952203190819994683426718313555272388149179408403188571709686042120931962674991335674708417406341953002712104530455037976093111272964153116619363250869910611406399631715323170440666393511969970304139537308245758894697187383009634393575979398738142426700678057127827525342563724818329549149855888811958463535724424494307153318746790028058768923323819935139077842193717935531763607721125053359420821141768209447068006839068978898798670722405475171837809001296841300886094557532507547645221192650295567457296937690733073248869171407085118742424168158353428382493952547869003876170169234354024375154350995583647078776940416888003773838589141115230562102020316139297871609428328958236658042388137469458066178183617677778077180475229073158588337552753565305744304559459875158977537682373146392349104038278793384864980267685547959649026557414353925359716831969766877021023470322396296406714589713020064298272369769927048511044647763326967084551440423515570170593930360913692229264869791707186669378547248047763850223301125037113009751325139797720526426024517677837691073487505606858818771793777777709795938485525587218803825649482159591728974030930938516426717247821620107152659895361887251906796527482315858848015602964367063017838003806607284692375247521578273674512419845773866841109933750769902079334428804760615399017102603941302373723157481627993627633310113422626648706577841777813291926320652652513548432083353263845403254772891928680480843645323360980006904480327392318704902063207967660265605730374236683525886222671816269102539542177909602791055279310083488934610708524597034089845759393616833791245424690829500335708620169826516438636589595854064144998059531400229124227507158206311536508269922892493230274262922026438267834608988495258752787529603830593109733298489985987669585382798311946575879523162802629277349211859677320306954921346801075608897975859517507403231139253784652864858909023698742324107741831015294844659532574258938546615459155482857485777281216666225811773151969240902574257159023587917506640693022301480154189897243566790743079382025394510320337665885792270106571075638027886065156835762484833577710269471611423143437683544240388750857576104845290285324810302045488402535245061059921623302131349267730005957087395991580763954102501723305204082911582864588472876048182368402745554642830447271667051696135278802700262330945197695606026986702221106409599902811165470724497783556381783625426208671359763030108481779242641410598471443915264524398589520247405094429157809588860313997593984137611708815613275403236086585670517724361814474305738949074388041332842743193362207410270847635097820383338481778651085140082001791993004121675183533497797992626418330984663798822698774212744124149890975825295816853519220696873989530578822716713132239082960368738680744593949855889369665541235002441466271144534983216708293043525596063370986924422973013379839844903560328393738922554481966101413945813575363665617328355103998254214147562182276084109167552274008217912440638446671015305290858150981526668425618171477464534176318680764193360552997398480593448655736110937614971064350538730964204936294393748509272115603205595470186149020195324477817957040337565631923146721974060737236367073170376022904469055055213544572810161500963583154256283969715472074680752991308292424869989939442060926592322313425712284641601401557737929361307982015346803617851543344361343231377508800966754027162049798029369541631615487811433009749272426997739671252988830350770784263536503651683023527102031293511267977021670930525207568864871055251379924766217715692723200025669956336658767696818784179698709812568811237711157531928977316719705395331424085086086141443779037350079709287839034270089437205710998301300929827836270619216686521894242890635536038881064444965872165812467252327167400385317039710117586036865512212824968028432383677283708040662789796659321108994394526004372605818747326187956360780230477609083188650677524988933903557278172815187165886954942103061128569900048532627200229649020138767879982044579782014461047456738315359220039214347770031187121851326525833653089997659617070888433887029488518909169440075845353742825670305442851070857157535751210648550528473508274972487345539174435198563162698006835969407250796137636996362639145571107858607956961550620091148983137157203233520062883000295689756853504686107516852312153769620165444823638946859036411441465958919982644037288208339265461643778370067771877772200124451121459029998303804125393516022083091785329813520801644592480319577828519577155344046723489919270261962050716234704507629602861944488443377073040357047741006733922566217552404898932475473309396448910398348182252308115885875339668496744168986029138481051694984243732485748675131182519063881862644979105925442008560701120782662017090744028088965742471890038244798217725495667266776459921989304313138031615461301072298688124505542110286236037741482746866144669954516571874259838911976307482815362930145536594873018939402910731936782168436195764838717859236824436384494202744144538481306522879481799836857587433529825015026733735318288488438792795621345320363274808719692512227354000719257308581854273791391735878786830891577684425497021515519107927332708405058452430674375741422826261396907952273270893138543212333159079179366752308238398694436937409578144830687733139152092872646957221006261837678035265341230090394735993830266581608594610185065835544025426075198271523434303515895596592631114797935133033752442170175062454334712716522512457665085733056317712285959874711632006014159475642122150416578886650134355565045071692957805402981417709428568290489785243197422638318545977582886333489608905654928721313608816518774837819895268692035219431891837209283836002666783542339319059513475167800920721791884944535513732414113421036165912858308621364618653433251860560050691421817689031649868457245708103828758823423584760085061954301805946091943835780310553555382394587445000967633856903372819699186835274618273828481189062260992151265339833836255416734784222715122091115313378367732564040519226236724483391720904802332429143285757276824891574556109490202471125283543743626381839025363862004519503549306060888614112632864643014307060967089672316353803606990674334688130878734597991853403390600597363762690408837785100850298679345899196623346273310546066637515441904921233302540976040526846769065174852166038745401352763037904998481230690791202299335336295608403184023642350730116984606248837996527180312158272122360889237549643171089695247672204859615807387808254677934836875952951367613167281945733705826699072307572460395483859211455887245533913683405905464019984087490211197524634545322832348805796643904553529289994798568930600487502134016205747827502281491877926293994062705764044278357663618583782504656431284342509282311362132411093371090257858580747487279095518091564053601571261744150331270378865108608035222659495923786334569602065858301524888222691896119914930063827285715112263890431382453879750119122602280998039668318710472772974987773999655720165843322033097035351660627207080556927357746506604523007318398676932880985210174357219294457684873581740336517689136817383343343565150665372022194031991508813254404596829835541541201366293211652048176609242054082249774603407151485631388112497960913907418674471653625199587727068048021604414470842219762064345712304159253359616943609947226452785098258068850160700169609910249829758638993057329553024692539257960832322145835099008727531609104787851534824351697595400879024383375969570099882012362427031348243852996021592146192213166990125968755683532420798460472807610946478399686709488551723752218913723021823260513096345358698500143447066717362986029928279637741540123273160008372393681508313136995955492348245571359029867347046356219594943533229369850753948463172964144864140890542331420776222069321725624939860937242319766259021699248314666136353434219293070088423249445892387702477910680991418898355110980780663389676192317073985521161156098625714566157268156924197135858772393801431032438523949207743124152725455420638653715926921844700698001233862118656056092473160417409973209519882688003694635542108278680856747687348136266557751675967971320374959678657830979353033331702406597786217853691764479248077247678781820736438069298711917670202901284340734677952660889990529737553049343711042395179312961476330735779093103952104435234477381709039860825135536019197747571767765744371361838193364974188480217824762735796136792842477499801583361527324743285504456719119188882642235811985673765004771754633942088547236525549390576644123982706339413260489861841935345962202016584345338674414447259089821975483594978084391828546741236285084068764552750759600301622637776595238791025877664995299329719178443294529170586547724459934976890902445137201344331324248515420848865200212382642159975789095946005043990405666256327366826952107752211987116489741419439414294006335955866910889749765290771235944473518815656804625381047622293707460381088986142359099452610693109250182335152957318927564262476006697502850225910571607373166211364776687463385586009074998779820322095000782120046800743792377205227409129787386086474377771281148590649235810876777607771060157318821417581364370570804954364725491529071446859811642351546918869349848146887373121283312762674973032920207910069913779817963154091048075569436933029543224991068055837305731291557790930351388144417239246614962402251350497981683907421196658764520886930197397324827933852075302295287215389982450594018306661675623060942651737905803352824265594647561691546186018271934687004845478796472007338882753944942315129243767837721585021735935375504205651805935480633063242175067845191104269199031645703660508732783882259065240021286452458302884214583130903330353465793413811834249265246975563870167721262504553409567887776046621006509108419507928104510219406346818071676611366040454066632454627022075312995167042985926590148314850705830037254125507013355050746180042488596024577032048696733869335131971637704061660715231677124462972760681457060838274141486179487391427986774701366826970244292765029909808644509156395858807534802963068422199618308186645967484829837875494988698938621710941738074263737815561712573545449302442891636909531694561529010763699308574612763954404531128604278060291892995901030136724045670664844624254145000456857090856009035607543146507681107498367102695730419545684415240768691902706979627367063051705815543961266636928340927399475761561907097922701502539482581578569949630129842940048132367292507392588239093006109564099752210743878899689322995238640809791499775039522128068929879897354353554354914515133105499014738065410188668575754255116580974375762091787951727951006488720330704439008331201381373394581311608783856028840166190359566260175795011606339204068662027079434952377879758350765240306613388737166236704771877859634706519846380523654995828396288010712856044993756028202577873558141928402649072519958548027166555045282631836105134043185753767423598170464605226723447300284071729133563739451051854932277083595116197639336872347243147734188853547104611152780767382734046422684002447422586853047304970123100230561177071709347812069303788224491337788906658253396542095489087762578439065889196010608280196519622850757586750134772269115961329690281333523116259801395674020521576186622599094400384402719748182128497091796736153459024363900743573269230847108754550526531832796321358980358197926425446924796314663696076981261979406747119746144299365357369277531407369752136855672271902478671270788935101137722835019849379649715131643005057455273448126740907428798025810001967862599582255757982982350550402732997466676314693581327616039402046503659438912882368740247873801714339793903647799129765049680866495621530537726194482314856979032756394993413105057727547561720062995762424245852776502317540751520323472891109474630378543815666241651100748044538506500998924257073426967402146058935960722676239651593569045493267225240366145530193781438581865723662716180527169793210007733929988054062077341138934620933786014121212140067069826668745451004530262445575627183777419051034845848393604672903162723957650489120443109293400499819997974462693572110553272817432567174508455677704595474912498223157558246775403544831355570257021249002387014270206643345263852527446212543305328360841490235897611190334224852782034373524629770791495175455806649611635264417323385034292785088451671825156737439916923400077940549811602569450337393725633443104460729553383134479019458179000154231440927370695580332189016994957357567547034276888887005799291686108530688676842772962112527489455594755169160757428486357127043287683176417642820423441054154205035257442207709024769791283376378748093826918034594835391207030038201542063834960298497648193622457578359494301875299386966144507489432237611676625503602214411509206495398173308333434394238875583417950531483768474217851451198662334147149735516501291163741887066734560729755323941480818524695851816569497972621292695779583589285620470760732305586597345360969892571056415150995708488853117463361367402868101135994000650434019100178888235263473102825502787753848864750264580521014043566353379418101312621891200777751502930209369931278604871704377171810805959313195104795169652472904565581533812593958272987060889358628908887338504198911174330699562292302348922154372920564334361298987361835584548602739539969754866387306643376572740315022092585699609310972758030053064938402091471113530187448429934662813339479333826967621021601843645791934263112010489174604083982188389905624215441350572931701560400737998130757376064093883314425544733090227710541637126840512286371833577902709396394523725289432275383732866985760225236463668468319095649845643807721803141637609999775947575243435708251269123953029719761898006717444256068722971847576400699605324067681035066427413660972002230136334628899322040770453136332797760755862910072628579858347889699909146550243107621312971464139245357730865691557435927057104226771193884979449277878605669703288621780892746721214820514787758537344598731413907843690210852122182683566181320398435737359015057262707026527540156059548916634259807362507526773644955754877404932635765754971814914095237246029638783347030364123757122735940556617633032934395892721746678303221888333830835343950555442463159118538917202755678335789945446583746755064396707214658083368167812473407678980340654734798163899816986172705251515726318863987059757396913386096201056292236395716986872798793371348663604951798532018152964966010155827647225278920373620295224737571617035421164118630736363368002915794236924438230796489004948819272260599077157363693188392714165526476205546370944454404405281590000605055773941820024770971615746552230013033236210342437776435587268809986642297580679097258125022925784019590685200554946585480868274921101229383022031292157145654263092581786132980360044331644076244899921410145995114867229233089918369400877332967052105866898885030652778806309743290863344301414604724114346300651371250342020349026353975864177954171006307996936832416226605321502379948116289060327055438015956577627098541673384729600099014734713561521851407387575728040504857459169279081819440248295452092927050322231283868127885072993336191800984004074512610838845918055176443639328619796597866238718595628943743251364768532057892467036529024602469946195084313841280779927130572671320338063291078929563776430172274315148903642072799770766440754733089728903750116490393668350991403076364960331079730671877819408398158288919107323356653761440051987602001304477202444106135371502278343703672955206566709147781599450789414330098545157060813369772104256696090268663170937225062442389292549631547871583787034069219306548038258261668472367263007313060583389506013550417915859672481323694646198727128905554262194737661591756997509682771250702617278032497284793647774678633333797146627288490806404315111293025341598637827375475889687135247117751030006175873418798093181230957983122387106077555270333524543531211712642096607198924963794940182217638695653258957016799452774148307946895492378346291192968434944820801875323527287543621006656677888506321232679308436193252807933452168924400576850358058588057927659723718800407397095964858900522006846335189768009691033361664360924121677414527486365987095515962761140011255766539209184660891597100740919373799381486444131733053614650606212024645704439541555732771744813009623384029539360330794224373828930363981301194111971245561296284766748371310411566661351561122767868943404047120643472670492928335793507857622925669183585603881546998372844395733500676978855109502885167497893606145545137120437608579140655136685441857993615085526915206036891405470349375477302665809817385134658958227567265259995360009701731738253819805393003489283798024274561326382610793503561875908025930992234753468318343175971898319000869455530504078145965650311224894749303701201073483286607868909000414832947308717216152027291354248139500699888242484483982040308932400566080084805252356609449921106608924084872421004296414488751924644226650782701107087044883574580241715482143522205872417801049134014852614759954737127239522204258549320507605631089925995798286966888429164952543140411709266157952874713643399368778027250656456019061556617017878881085852661740077212027232808534715448578169131457057810381229180805160447855140673991131755221604012930886799194243245780575882510598139230893609349879437162406144875863268342649709820228644301203754313383230736137625379620245124314259280651961888432004588835402105278435309357066096653719394345472845011698588420783789397850270706650879731824873922313214873087178766850190719508479468604316613477604509131372370205377632308525494998587023385666425946779517886476748418190400271961447249138664465578960070564037212429823630836204585215719574908405485032910601145820477512074863288900617548033091671205457045722180936577591102976025815601755454936970617406701999166505271583621273211975625282081634799260633217813146142489273629981388048172924727059730098421901087871473856961847315518373443773108440708641687922180522424308778939803822054767538337860630835540099043924981281795038457851868308819386960417221197082854170541911013092006940970064752663892850433302703725628868705904796431254314813419711378516448260809278105466376593756439052861796890262744853583134819247218146501074412876607327344919077112613074598233943363798431284577043176230097153561015891751306756180402986399937037416118488095196284518973150850263939942207417483296357377793626136346507744641351845503105711706964768670360947262833414123941989755006284555918102686590144462228828365107328245243443465263462159329779429645510380915228108032018771907450205145762806742283004108804212315075262357746139765306283772760178455948879234138799080136224929838979686553930713541010063981809630583511918868514938683117848990443438150370782387400938178415410780314245801535458516753228706090808491594465688408277927093305662382312111567905182980429669978996221357934855563464028643144704899924894574583046116752293858573177346688183492058654117008494548702758399479770928825242011664419807863730401710520711924294405575915265910232028811115389054335691529940659121197908447108279706804635148971835441714905385401551824817033560739266044597850092196268624737323294956926620884496825541190831713946698823685403931394489294073106788802702754214581425302638767169667236140819795657492108920324553536391760594654806358160548715022095713946829459613720729326121467612577351796110310120443941950750037350254798949032035472827271082811056091203134564938167374245597242856759970023654560845403924969415452883753957941012423523916926685134743659027300744933019599452888544968842132401926337923018109206041540732881405922744179892399197956323456072925620537487289338116885592311843704896626764546373807907197793600928703953045767661033884014751336510062864238717338574864271152354795640099262869969753934101331366192444851960873204634887790020984675935377705692527530218917200277769619985931436501447249120270705968855366126120125027544662198271119166795147895034149748642127398456115093602938983204763001827490943927597328594097773610076978506972081106335907885059358082887665984909659014507110012773762074683699487998217862863768977202625640399495245589308157905829359570760600355773009087172839449368692358243816640452800991410153915419398148867357670947964433955921819719908964321890821741406099082131983624170890980579831516342713954147918758144696827641053965850354342500298788738268033707265264008863661509516905317001619657601510432658300803048523537237415182623105872724649427398488175995061727877699978745194378548654738401072652103080257749946342744028894749910846141560661175363171388598474431388106056745795363275363361910859681821399862177221779046403625316744782220485450123916649185825517742168097250928095321601912644853353641178690121842509975790532487117107622886636061664880424083195251336321314218679871859299765896562205826138328069195598488207926650617444752940191094407333984315784595180675561323921239732987937753582190110025200950312833556639372138079494938946873436140219287557567998156951393295113913614889259543715472574815140204570017591132200464095509947072779789004530614057391375350095854701797907876924025567271696094228526856721560696000864826321644079564639484743172516210152373203098142451277342114131470082019538424544492715286424457450636924883289339773090659373838771698724075473182558969025095664829374867033497524533318895437595601553831698213865874681342840165222279489801131642785071777111816588529062044176346432475478377837578148161702833296279839774559300465918898901556479495595706729130222836946207737375649539692950954143514791958369860708942952371501752835230783710450896054509238269947315334082854847073705224981611460374934378429905699465464003633358507656359789593222708052151144591404020965376850538809956446374342913971592451662621110511622656858194487652908653816427582541297014478716039779572580981632189212246415409795662272362443245634795061811590447221919616487354932014905399005863724435974861206164006407964034330885437468701828053015502231996963762173202437353973740696819267188185698433649187518315488122405051027449101335449091855567104845169874389292269108642977885714804824605598363521055923040166344694859009328618071112512143250598678933151681123276997257039998669720467521206964963464077277157788269069929850683490617446728299369647686571524667457375107495268599469929803275022588151509890716909689766538404434194604794745795334214661987566319221945329879826274959110921170567088632086500013763749754677423306014761378167716820163900605482404717000581804299150615446469844535880779811086933955873927309357624145796369551262275531276601213740801951084653914252207393249651345115409205501010644446239258323726936947218121696757876031413201987055906354845627749988538939589007461590148119013931100293460979102041625640924827305168204456277206286168097467665551870475864282359226060835557611373056748590857006221507667262163613402477384893989958407857108784614969056004882205650987940494730900430953463028619577082802356664701628760242478920646634331401977997352515539067547505297776459105195865879090834545061461263347073475887591539797183658766116221095637543051329943213142237889280360150572003382365114506618552427805794062220688110733893147061999224188937415572754843704420695723224139163409596769049155538195619535098881590156246968613159319999357325432017821414577531972930897041784861844631687052340394918331174684216099706039408702860327159771674240555096385582216143178388953921240902306010373640424112077215817127044667504168968730981907342565571051712852841650103906216350519281216626615577567492490833768830532956856186533806779331630101597551528438450523387552384423607931184095504289815507445717163447451070668047787062508078380771958077789385104332180511142916019085771774604398054350140664379388197414750112716464577563056520696124612681803787144820936069155242011689308144373221002259569179727764139748104395476991876335181202798922727134560967527009418753970599736684802014331710189889184517299312935063786140812205477243735843292364584180439083834358042043590696738266199661419076474587646153668093627123746236971099176135143694219022853674481563457587909014951967093309410835362741069792941627152416014171441264020680422797860908564285113310859563215178804649423597936587602960946404221480304998012957551019984149646708053948029736467207156961157834828672377455684765556777451419241318778644043202640075429670651517284609084243921951457947567349205509437093988605382452544635196597162928790316965013854528373466345906487285887164522420373785955097669085441184206298703726586631110985083632318109367661625505156172959337371806973254808788194307988724407555716286154508695339117832195304125555041728963629795054236491773094899602463431848927635063595940142078153167334653769425872367589931094153056952697832064722797672947825306487965983871664864026226590079576710097564194425409609080803801102440384460161504327169648211182690567409980142818799589615303725956597127357972793724307808899444190727928117400350180803750590043601619407526725272024688092700981187030695650953535625965943680869836756583338889980417337664207840679634097138608287676988486016762450001229736594933367239391519274087886302253258579120983029000937083128100796598447416115725622283361101502737409060015365330633012591528926949230582876281158762593553167541971890830103047806451328633055021780578840748163418612772169576247707617833057314620220584488806579364768752689418595305432253001809336460731524652084116076333893630342828821159725712196391897528803118035868592055806169885366772053057623149295915223867848342552020758018655618129875399544025715785063253633960973432462427789125025311364262099913006869343203936220876571516183044208137091533354492222013663262465425711992966892644085607788883078624007971586107530733271294804408190134581979989352234861598775781370252642537164394383999808168056380046052908738764910230795654694086148536151813053463497680952086546300155327820675500753586303352930175445462381020086200034804684376166459996254970532895495471340986485180200013079251297202269928361166311664560305906218975172215375861224988416115835891972272087581461862023657623499861079598828830996606751221658376052516744294017627744367410306058802917390686022162645170431470778163427662489393308558569975513748783797203799940703841828834947403309931767437302241950675759811795756615084094204932621908770060944530322815257187112879468906647520580119789283022157910609309395886604348817052592832242826359225386028071984520938202320822900469883853332810979270738096465701994481994535864253900680650756033903049002145892316920878671285799680400663627830703618883430821871629091012102071309278243339048843137422803754837779024268017072586983287579676579140313625940573523928658944104610209205491472456089726097198333682099254540443147882526578180437914591159078620166223902107523696182453870321233448714718205742090067445333973693952118177649448170269133828673963642074469005779414310511010539170550897517546995204255949953576980764263214389058193324001060779965664472901200918091770811543797739140788104694324340944235217707537449862621071159289437685440499972955981237510197798918352050821874667466975804804420912392394677571018628272886606163208754701853463411628347536878785868968027035638992849159043039999540661896203127500940696557030708297315125249794287578405467389566622461805865423776482616577094487088610506918893604923720059289718081735181324847253092881264965519856729163304520129501201660260141897449996360682036617042456189701235885999811214841655321683582878494799388663328883457171149260291428171733868177242301965387670779998651677910936548332036166458016858019727608031196359171429575561076495718872372640788065029089819616494344161041018521737123413818642758353599243247789993678638834464551735606141148322179855455823185010177286826388826362321580181700028448871924482929570914238950664955223089709777213113525425062977819109687241323296310028797804264701198636202273900136619977042733386703809400214532429335952827877810163981096116249018787408557380753609085761552962720465502151921168103658915370870700754571578603848577635007383747722883191089204332589414406682823976443112621032802463850244268109697533999541395221979764881596025495071954023542642886721224643833038880524096661401902784852953441611034792063375201995677664779309808602932443316654436196882137721927115438854578827742695827978291876025221538330981752328081716142374161455537952414679969523525702797691831818481321804952417290230941525168998056452391503167570820159623593835469468647181876284620537381360205878044210177228723153453233480515925780058345100662198073568665225815086720351953182271521111540902742754294570767252771819552799979991926383162032765290849458556223810356183974406746485742414901654486030736073400722557396461740409357909943450716430544475665843114813669745090198717637405706357336405962898357899212383731473778796974796850617865948535670302819005557935596191184456936120046909481986349690817793807168756391632976938213496861155974497951352553138992701265628891349568229908378580584053748037393463485900966679984304692919426827892470543759184468605524879570349845854470592271464827279083171166690182872075290923402101134082757961207361395568987693660571992826725586409005164939157656106690153754894329278010287712721686429831264022824085801761228938920320538568180355209315082734543377682600533515756900308263440331860300129691181197992937605294672320652735564223769392944861681557001205281932039931864175440003873353626634616975144218063903088758674956885819108718930696272671048278291536855582500397522913351211136192081323070406006777415913978977148568146463056595712598996791948016648853304587725115347376595207062703014887426172015574240755686146161836036678589628039833352054822485720561114637058247794531993198856985698381517994109587145580075300454784578737608759741874914211643649146789247732433147062491780960817315367268215673981270409966350139883872751106564199998213944629338236754816301202003116164674250991034349197507545000091687882921673026069153826646747368144112174897868685222559395124486537622926659157065878973755720602720998600779522832274448662207237064047570729871851652595006086031195829311613250074091546831649623412380781626024190934475384081353862627259182730087523445977403836658383030335664017573884417373445728266104003948389930419514391323348316108433626829846714877999467940420929387124341520404382807919334523278299084815543350286045060780020327503990094937405514845868119850343488649738382214311841123817522327494280573319724867402530924344481317287065665806960860554420768455391906070340622297511636844880519111524824207862642791840015564703978668140829291945393235545944675280204691206590261570550189221084839672058173662381672576197810777817933659647200300867038736541510347649340887495194862938762179820728981995474431944034056864554911464288684757297213962056470997778714422045743203573902152715108028093697594773234671877673994729625826948856575371645467806685380491932239322818502610566681069821296337384561429925179827387219414164639837972453465502564179092665608763201397077033718473837368846450441735860451311688215124467950923318715779470288869922734384179362667530137114400812086377292498307732320513764367719759835269422312255816043178927940266329642410163660338634126312494607239631285345994832380428231895386702012961150714102839008238518711793245675433663011259591346599047770983488676590032871686261644350452132678859139787812426178680048123640541825300713902618681513431021461818137197277568711640372430056396014982490725851925925451717159914246160443599506230349515205576345566807891772601777127225282769307029280957681524099033891158002004389990198073092796101563717249009240950192650543044493571560414899021721171890641895412477166395865657589168186449691162518300999735400760879749206338696762809623888721314976857534759107415102746041434781416149810632711641079470537773997087610233469322547620542750295814034624799399251948499199905785107361956996327133382482079308714596408662430438838615197459809386279118857134066978680276281436588730211146892761056831991536074129573000012021226865884528435914108981747242274941971319721912940970936223034745508581107938009351608747342647085830226164830762345443045005735563636005080358045308346613501573390650785533632847104104131554382350034123473957845506721827632040845896497178031864372507172763826231360804539546055287020802670519469073874406248585499730271999350195577746516744584215019760272942065344099165359170902323096937193859836148367537504805982363494121332549530697982074813865498879479619002854140577461107900338726501348495014766643355406640485239158338121563755287177388639703478378198492001059333185391534768777483909098459540471798254071686061494139931818135965528726681144777854377137735168105898179818333114242681435849076806218191803754635120752516493390549690575012311280474793886522837813046324156970322752446496300728784174243264327650353903054912606918598219619090354582762311921849357368499796206193508307623995281106816263075109883131641178710282328842952340044580275736496667234979163541774682790227210604667992523942030251732089960059314720845314773303297534214981441987891355998647916161140491786393979810044651407174870634960841640424440520681033449846313490291753654067556003651360805942286851342699377814985572913929389925484322263749470764167999794607392436342649235628295364592198040619993080232265603393905658716047769939976560475117014249324321491930949217931653761098272109624635754115641244022411179870324086534315510040739244175372009944616360813009284797179190066587352197010501307256736080342116671136647354950560363631308992152608605533196169534093964692656791690569967821351181609700936561970287413682982220153728262243412765237611210882263883009326111563270128757965091989519299102739357857378531901372903199256011636114267589879736809339665393887942483192509559522429286001506314394291046883966274919403784636728751701222728567018449325020117423755275238900211776465804694080448115778473044899651430205023249575954477417063835202760865586396107433880271559270047320285619868557023207915644757682624953964849243088746485114371736099725327245873823940474169724838661912560193336784803373473253358324071740483845957811195026408147047409638027503779065279552463044218068716303912507061765227976039369726034521094910148370668894419892468438602609172153806925913310314496142471109911728641085845749924833969126977403101213332085155981178464759041202763791602875641238266965170742603051571408258518064400238654651043305206796129882959087774106337290652402628383977959617047362784099823783581683045878335933088898123079654138560213961303069631792235405277015741509141827817291493325179379147043723221178578421619807361616685341853030413993626229165543948633716782674542909561204961654984444325025352200346109994953541220090955266365680682070531821730109146694222336345038490666185040007486203561740767789571046180472242410638117394851516664686247803762003354867790573818928950274281359106835385670685514091583308463085581384824438283836796583663516111671992546742722739658466797660226772728979521767088325503502426521745237131689634907300971029325705147152228819887123932570095699560746074015884646691372275109883961480464505195811050268444701055145795562677493091914475185043350100301818830662467863654646610625962578236926769545528845427268186229861130855589541628674258748871593278405613735119535678185742941293285809310388784928864668761883551191015519575261262504960765929432691432400385009107283034595946654324328410796121434476905253741929504423840561723730658943220643957777297520091262635228309098076559177528669367896601749550908556301439793771478535074986563604119220797154108556703544763134222079770797044380153012034958536265325638020828474819308820964857227758097440857038543380392843552666171420313363325618898427114070846930226185134638931284503939722357100166364737002018213269589110223619325471401323341744024772729379319107706479341021649748455034953615668172940702033590221407885803643399782580915233513548145570334088869489311039703124328628985576203521088690065203863131290897550400174195455656024560560392256845620884697940704533683428934372865372693614132797313725010752380475673354558266437038606112191648971155033873406381496269806945516307038574234548114748188376066727449386612196012139582422677182817152771813824367219040946536758884756026466996738139879752742531686819094497757018099398483378772838274022324324300221753954752103080487567040072492443964157353076609232230271784244530758451555688627491811585025842623422169402401457116946263480276731048652643993330210445741470833543492617866579458642978945312224215340980081808513740837153268579798976151224240178181499746716661438536286087677769551121298293249538546825761295203739198077955631802596295851451984329557060933726354285600392606356272501208635657089634060296819876420682165677700742027457424827780450113147387698922940506605788527156784272004168735706303134891316540060578382798411559534513948471530406660247902229112606813711002173370804564553756596699732853129394454266426741775682796835640685904145803967433424665523590174248971038701492223639962181618842872092209045035900372991909931585299676095500670392292387901357254060042336123272240989971194430336527862614228371416303042782889820601103636109112391983209232794619991419060578224443199501631134675709045530332240551550065279393802282238193793698836340829926352013262885293123824097585099837370658173325663697940829431299026807716489852255577551119323690605840442365600957667330488367526697780280501618588739690454080711905213729788099418923307630565485474169386513941291639804673713613314594301776097940739547853999063910235264886063071060633202728578622351466755909821819105593596935313038570159374462309124170609376847432595713100050634203045148664023168653225810739544916745399883577501919366724475186285343874904620318084811360261863345190947573140266716604419320246254113542850040067816648258424650163020001975364571763815817381873675759002353287468057785335396853668908127735949896701434749409580433590112602395284860693258186760415284187178897340078731717162929210865550949581029183130526195786926205530167037674854202926928756211753794394457283069721371243324452217703403259421650875560005521832607150706134456278175974527849555860048868348930722433269568390667785845821539710696628509181759114555090392721110210439379301398632432990899603970375596878665416226076497215807641047543293942409497028277766141430187449183257790824048170719609880321926497125857035784237142385462201191351557951771432735920647192192529081004563687786681288699606867316584766303761853686764345496616887332890157641469107743768228813265264437682409204934113682433088261548903983997232458821446421901812231674256368739866157028278148459644059721267692509533117347642092207757007356876811774503118291586531555772645523181840529831770282736579646709005802501736426556866277046397518783585922362442444943341640475303261503874603778681540653655400535761608105576986203538276710766217788056423617046350800536660409731133691594503286887966341008187115998540695750882926203790426186339846102706837196677015848557080213269098794785552596855011858891043972239920761881432120963854658050816955626506616022949961825004033696842840741455890874371587263877100706542243811627531637771050403754089155228395681911068347953955936469655038502742808224906077199954600049499337938090381705155543521809725750896140790887467894365309722308205989572406194212514322128971394593158304471368150191007121502977349798891662830179876431900230053777439863240405534551876548373718125616750886377134617315709173164773499956175457656789999166874113237670301091395441295916970892803362482799442765783828986682066321463323917777844672222537461582087429990173289708119085929377742335863063864016173140410862077886307201694693369132915072382111677993719761022702662039987829895817639942761201562179489921650988312809758757935821765528607443278707691585965962954118184468813234507971262431043635205729939811350238553749076226092958540394397890402533900427818656139166486307421093334945466951827648587299550048975263086626258061315091785021914428622832573332662565512169875166418424170160004423581931000927857342496471112462764438943578855019097281311311059087100493439090247545654659490495753753783749703085867093176133025569382935825838815603889093181391793807264644190288126928717275472902617813160248762302924330829463767167193275712879747345543335243461723271006965220759148761124153350309744403437136964618588918721323938528584712233400952176795970787447427816434121579669345567760339475603892524449684337603403498587284405726159473828322982130297153090288804136463039670625138161641006381138061586854279887989924579702972957462248621679819497009893426398766671330573759103270897365635374792922156550475803187132898093026085248008763983515682411793351065416301478363936649282845320917440099857836479662682425064162269160301562404071355997934245351478336747821319740158354340944597043709729852043568942046309960092793438123695947404129907753764528925792077638106874286016215873444315299331744641988136675930515882952030647873842343099716700823237587890466507369269062153647433748996330481957655589453032448327799517684319813700878270976146934897420975950785677480484710830308436944208078999541873394783650199805335511636666112499372498766454451759506561149408142366269684064892711691976090204787895051944977050805677470719023138596846904356278800346817429066758420485280741717464221914933713923086712668531013661244552574033315438674785249946674576832330114813338876719634549535338053161272550485445689398948732967941726005786299340362549886763723081218701617516291601596943443381009381561859181979049706438594676382253828473563211116342449582123989882876789390450712011434943971195509237169848322493477091673928372562100371378720441500266275687599084979897183757586694653197137857163141430306188170529488269753199913999925489818742862121615833497360135650435598668359638956301796152060277803610565529537805738408105131744247412140751203437424791346991288239232716518982975547908972797994271653342655092959079223057856320553926819490880526152121466256593982743516880887387845314271390570914246886470789936319403223088677928318699233843048807003282887052174636786491879010686505683642095440136266085940116188218748172787392752313659711057839306846052077250900377961795012161792690650345654882983778455046314208168534978835016718510768729875862377914733860906910073388955556740652084474596683776305764443746838496174261467992227738923176476383688223332998414104878209967091799871500790811515681462535964826809624049521452983689343003791524703725012267584783468914585916591646762405184246593654358031177562660570037614067279084537954176113538071482163557664948542426328014038919296733682191724988903276582272290509893856484224697483509531271718349469967569150917827022681567951311498065425673903387191623051927775282466372999661649494150904018559647926886876957562730707924956055211951522930776403640013206583590332121313268673659660038810927217572765991338856068904758848444704704288962784857656343267365794946073585087153495950050063222480834600335117868531503803210308911732160499789842121518359055236672934786139697872010952838190444342341441424948748004621804228295503197281071653898726459262785406434552075914909689640578715061626590292749802476943518020409986196412761699795639983434086278938101302821257666283918616073218467162465824053105398833755118494134328285543719569641778235769135312010499573459086224807490782195114628099468711868241044725541818954806084537988699751228868723431036179179552108829384967609351324747461473029769695760592563345907551102786354995373368257138256829648710806945277751522413164335679513800684547423338198781661880921245797841188856697015188834204594219270113631121196589766751677622751779134437948658902077625828527541384732264134903681654083769082783797893328984626205126760618252425097036191988608063049368463726207362846703924957677331654601832598408677753826671180917414237679407495330771845336186611851745126903845990170599021665128076040310643781092766014338558201552086484709818274710331326567503560557181314079185415724534407429005792676731843619705667158489079088436811062044096365720900642570629644476693070746849437580493144999907406225100918664728291768078488194005417025217866799848211192666136479663760659353959401455010170547956687622895726306881055668696502526022800994205426319045867659555768608326251697464553297251646425294947835998075725212419293682726279057163415992299510663824751385166742876464972656935791430709050700973305320591645861517402010879551993327365282590914365911747947411948567863616272692847581311213404228222171928944721618279018864391973556129463598337413156642121554361269005518880911551562800323590007641224233354988807742245970787543620020963790146887659330996738367394420458815136697478883377765419536769759342679663483391343260437491253080889631451808335679343333490737971271804800152286062604279018449705839506998222137704580729799509567187749107573422676740552093043274871863918031994305997776981582396632535372074259942760871863910188841155928429919818218253009478509917154576347147917894633663445768464930003115840226584900497905521848071993536681027459158502316461826247087179899672319751855214798489825718144335746813236148030825614632680461926889000970536047255972386958788316382677012934350674827832751952360426861244976417977141450455000679194304362700606148774639867154072818829410435015629313096757961680293403127171132070267829712677051361016236309754523951260746611863648408276382225171000189851739081361221863638701935158037555312087239633538365180043530123988197320263652975593910816909468414271918531092783460311821936054402851904424492604160821809858621361745498791360525563157357711032315222505911525576271854813120863574535444398862532771255683432199546911224248549279614306885538853321945989989560154034171874917475836963181155402837788069546513221540552310430649589877855848411777088122980357628795676421897699549038179382220923937962315401387465051324400084022218299221533805414083489885444516030859733834834675747381116849839225417711357665126187661622280015688135539522693872864171251492720834649593304948543678679495276897485686953152685344670657323563590759229025728397422197231322280778172317985924685354451047138767854263741554812789333461920224697990454964039982373115378764455122741125995831854576239855688098039232607947327364709573081864545159178593429722656850162654959563029623127950616757176973174047472622489275837410262099517502193743704613615471997251751047236535808758851936603759361884617836382756794508168629825526411435764833693574895647900021417131337648820060406937452450377655166391306385572486769822476120155914326559237213044680897444665927334862393591914492799523265042178511653394784500290391248227496894665010161411926486562051794483511872845543686032577593341818742338384887489362996269916314704453339724837339527905104460745366621026139349225683696548959186118966432266941206213056980893025791078446644413672729987786727354321641278800838408155189673796458882193882819845172737573344500642595555329005519472099535395061268296656125426332554151061691869795110749131250654887072054646281023016387400554483760047867561586252794349658120216907662061017886458523649891864939244300303743554598178696647355705545075120333088175476230051865895320757363488342239016506234035256605474021733518890060745732091213452509943070963445167031983759956980054691207478685106582569572028585024321143232890996919709617658983447450677784771460089511186105609646773895497206811358098986771114553607580558521057197777412304846575778614493150546341500425837671921568667314645767096615298012141478915881562659711408327231886710432293176428825221181456285484121462879241857398331373833849976481896672974232287407765853020359474171816237124688123840413738345150991297282521668419796615555912652952163429652516269527478391906426151454060906579929305175476368528965238984323512814507121855333375288887946441785873482804284974849543456975305183639042517324585038734175883103111384951333058913838160325188644010266295198594858108098268652908096634563272505819659627480228300539310233490085631330562881983386694621838592669940559360956666726041480586967823952336685832517725634929494941996578638941004791843742228903000921348093735178805722733964908883815116095588113270114459328966957060420572098915545698638240364123843894498715995698089233343712129359269251494580776888434437070830793017233727986420429350139467157886374454873287143958473241013716406885171075374781352651586952329323396471063801160707732593487584201823049694179752574370638692566719683978195639464481377408922079405605323431006005094548906174831450384847609008025745617013001416944081289711224338441868183142207839830595253493585655359098934911475317549510533986942085455167998434168982784822137815671664699110532503399377401317683587406963549717355044159476106532321907538771684985493659168286494817665452365352040129913703951132250580456997249600339260790032267867327411891169892887462958684268906279559480118381738158691680589240900511556512832706640921097980816444346541166720262575172581364915867474604688178579784394104095268472863887619971069949141188853556693872597272485694045886856135690568022495284653277919313946223527296805844897774028814124464882717691978017163656160208008263861318355516868950893478991130007293336739939126460513111001958364587250810173073006075103042802857468617633133532427888853943718242505253419320958446900026108393752751813822076518956308398789084268353753396813509603404239554184733072002252748099826542957488983400623148438253504139190790289260272010104728130285033102858553674734264619548430624658591686851379064910020321059380725997753166617674731589110470513591378647902717699646277848764689964590411212678610794675951617958408764260357877749398422671092522217766076105082792004173052100866441647367624104504331569954393609313004232291873370787098981837123012220429177378130117978138092908107340191589082920239192641617239550808072450660447784113496994081274320279173793089423946012029232839263481486467485394885122475498484991431401390337372557870589686107061615230427907833260383915666690988916348553362506397076407979904859795968550154014476714432040513413172468357196456052799793009453643366928027297166810859291521572254303361290212684832102765304777030267175217693270717436767702237189017670264017546965355162088987602749527443452631063718566770016522060678357456624095714880057007385070936467765681083046106632832895093352337158719588622095533409679612273670015058059189712637448832946907523915524704145751052302141837101246794630450068575289908590160879124197164246592077139264653926575448879471459552640582466682381372736483315747512683026206743447128293045975853249741405456554682451287635457143599791531020870283575383770562440551577220598297883795844120106551314469911771711337510177769266464171164046508979631991956758841082793973772328427828283298778709022977521017693411534366251594737728814209486744026191159633069536968435878048814661677573104390057742638390333362744870127886910264285984691528456467109704037440158708134567271866983340112216342748080636091814356467293728193427629231199306788342621441841464207500359389698584367740702966615497784050241627227575996451552447653440281779269725798337759235706370596123536886088975889857232089003360670012740509336987458021095754994234517321733760506217714929016578454879072767323107802685260486512127765389283615815842500946953053794656958550016054966403190927846975525957381033494960187441716361500497928489807043608656646069076547282180784062474959478015135763335643623279352177839601225851033145373256139591129515168579557095109386962907696022388529472686417557460778472177800414934989976503212436854064713292017557999804111801965716792526469206116508986385652094093693516911731216136695877332794954214426669352810486048773417392003861164367368683522423255555847819573914158036946281173517571108276695244943192437608010131739612352291432266038532230489033352566302434241116017942422710649965812322369198580204656210043520586020911164530634195759137932775948785879485522125076877986412178661044107113262861691300413555004691715381172055551742066393785580199990991026043599623408768283219452789564898745238406493360941858530325980567139996287692073505256076039698281846584897511013166865681051451518246490806206195916044127141748552448250010847732832265795328003597259138100246171609598771598727180492269299640616992792962439350992833489426096991030956008064015280835132966458464069423174641380457217950897336152523173539711825197970569736974009216388863035844932305392273061953806222080532670052782021071696255723176979343289842931308178469010836290251351995761151771768215328202484924108594378802047110581426852806275574621459076055459521726519257693902121883936716181105171769782745745737952793046663606413485671638623848926677112007677910128346958813388902387898032290395548841900162343794333782875138079905056675505578202308417476178316693037960938770325022429797886004739767463920391520321084109598729131218516225843382384071871902280648938685025892824378537356931383331406533499619008914622606782132891896047375060154119684965732359040188137617565201479997606657852695307804779946500413099429258318422923344499809487281361330630858794261954024200144596126018922433725086841075568663484436913930935725871191392019590848596470031226876700133138054074671093206440681034922818053423483694309929363836795191353306811244328696597733035178171416232063065977256264268431043321474687624565876134806600655102467268987961521026017069315813330021107647287704704792847015468139198071057605602471302580895816186115160590331582781940414975494373558060913434950255009708624620702455625967400702518425956580938773388709744852501273214786596800488816134359872120932582254893348571090525545890037138005017398010401338286510238320642047947707695527059655723156803311539909938230909347384107687809393307188906240129288131310542899504098774762786200925271277015921335061444082031208366726524499936866328277781093595837179258126932839258633275775487940639933006328272478073558467684314838464409992102339158405246193632060714551319177878284807735136163512655154671434550991631695672563262826729222792644795604369658153416367740990740848643046254103081147708458567473610823837818128295267159262074717461132401031694524629456748029720123982728799277667235768907814507259500357608966958060937967453692957599883217451659296742079882253513391726991664953382411078318112442794416969434826733619822258143329737895541584427386495504425607174015306107781085015951356831736108523490777522655972694881486986762023133806379589331968647656536427057744665722653814549149760006236689903205515645586383978187095616237909892242486846943561588646967050312579499320863053828179603559691845697357012782805386719663552887870167408315090103382704715682490368188898448603525127284744240963207343758393861670214981648147388838504564264599803007136306253423333894279315508279518960427214129000947431788441215043871434254633969869868032475677196833234656262757677102044586279317480426898175600277011516453526874456449400859334880935457420948217803041866207238109961054336447363690743263125402389909375873626755546367918410354698604201332573492900205384293080382615945308000233889475653098386182112813045362246148583465867155318516442426725990355226931873281916424646299622465314998114911526294170389479400167531000387879875229562295347919557418206447729436301555413645678706962645449091957600428767051358837347710094837402956408747664257796000243071174066187970466670157072896385009355520913222940622469092643492613163668081264925930303679448375644747762264964153810266334579207455057675210640496944403152598303974799092279978742905426610430659079973408806339323461912491950497526804273149878421243708918393314297302262331376438762116081936011093937861560766259267061585887821629277751274425015417428941725190501724162228187128400680049537293677702600722649753489951252350993769020016020400626947206692658179130771688559168032063576230182219208132700139787659693734931546456269874945480864654445991356987211393804384050689116833594827190322966569321538504373642155518859143535817375014068636592433227890906419520024071914065842038936090092784461569197451979518129908296332073780780127967324160788770743005530945299725561969291035547307593402661701608462165391465763683570290448384577604638614844171975330668586879306697739630628682753716095219898339495422080319841944032529450006655143349568188081353259215127327838224883088862131240125446555080990455165278770236768297077950296678687106529236559780047260961228458674765347516851399799795553485409384214847214507001604032597950350172832510307264798855081029196041461203238798584352878736081754758369257316094986055326412028382583574459146066504915380435968908796751511789216469068509579919620217952264858517630559034273805633916939597938033547838836498848149501624207530097612232670844506475507165244345526459964045065684761366662465328932834844044714026980235636664098934136089035664116437404768172491754025720789412476627437832151518064043386551151003853340087437401860835057833355932834365474349680179914372353854283363997540579296549084067840711116507500786901724489992609988389067585607117637706057520161771057804265331544153155036341694007470312984281187548523829597340373283716832233862226368816910556791395439077038145690773191234876899850288967794914712722745061222653089969380635722247797381996624121367052161701026585976912312823376513187006307711001850760556327791588506436163847332189557257909528680528620575320111011163582539124137138627853072873795227117691258822794652764368944190697126892702466474800933625859473322461927827752365840576108472774386796874424508646897444523700175494482109083921237390776608412461760614215900394828895946995318867816937787342234052344687224827076952861072304344493670048986413542182997103876930852223696176449468715196802313496000074158621545440763488929681259625251778105951376704626858074402546880660708082925024493611441581147810046530508265798438202303893252452390999911690467551841140472184235952008778191721679239497329507138380772768372789149599197300383783453601591464105930310949404905687386950470741997421375105206612738145888467541314889671419954140561787505004788292461916348257686144969335539022538494684536916397761818001438294181025209410795080721479968156226750158830502279913754491272850710509593249996252329251048929837884355998749769722873957312705700601964371889899248645399645129240247481609365055286809895226288388575850202750395015466049203510971591946954975617018713061262767938858465838616435254583900486101609289663568665198335236056275459289996574978883082011736776398904032437445749282854596990067046491563572804981866398639099589517450928386812732607443762652723661392522060972006392342255263711822553349117130186838938757014003184944506091359389752818066249906362881780768681393162641414479511272745158650092821106542896247612334296636833735206206918125071740795389509484228687834347320493266149787128798481726622667676019050089428302967785826105177334382812039398010151213216542921728379832567912740726150209232269865851457628501961303736022655665072430419951352442372778100569952796256151340011266922414308582460854706441610850167781856698654183202461486201571853669352007608084148470247818454785785437990725150770178414780485321188052763576294040279213085326996078810251736541334089715755832873061755156854120934302634698135218435225170588296880045777283317056615229817926994497665812896041618956894235394294342255783953755374475066992112317330469733050722389438099959923636650508043111120973087364656574784788786838231807272155789228970080404843119829898567374573768990098855172673805031249427935750447989899533104630105509085896581872847062342439636805965121200448996863270325472526637049593928917133880692558475649015069699779792627315777288728634889776028311213866808497999794451554179517956422118369907272915964268784482488602066873951209303324768864398474879606044082618558862250222316280264301841626679745701454580848745083200644574992583542992614332389051019361902996182222207639806015733515971709275488773917831581956607632467674123973559766449389229816072271357256993741266714819601272400596250336002320152031665750316011175364729397412026558057009368050330446000818660687938968213157166416367378851249350735506071282979411212864025548720100012564499918055515034799649707366706459364604672125814686110374527200624333151315124823727802550691908906590035970311580585002705922301732723084534190173559849926016120950607773780808666998019410364231536847015879548077443330987424297743076958207683954302948064875753100751744669566659951369945691356174105446575778340181212674334654856239409229758767506350724285794229794009370897537754056572862683019971446338043908519073096582837828514461257349818224235146323214489801510800984418035492797093221123995960107847529650833012865353133958622105979923959444229483777571846604517644164599359287460189885704721899169146410146926718352084723298275341798697416653811918086208773280508530257419390447020789933240111452403459757107317637960613115660553630138903954924035423809609291953231911708983567183060957325305129892755337539156444168411587664843790519464617740295159444406334532867708006808766580155197012050262268146137221311650084919989800228873289430132334416342222250755498844533665776995313194760160847012615065352789718070122736566719193041641638182551546816331782191233636437016664957232542532546763054391870366738951923829335121721011521762811693772969158712595118908580097764787573655269933072817674457076752226746575519218088317780179932390468247849244940216239001185628342666343402978199998936189544357941574680718916388490508228401092249612614045294724725380062913059845880055673087957151007563933194452054894161281402428013736292389063761635619618627266729020723669941853988661729001331397924146974836167483146605205831759608304760620313086488665069935976475261298168911776398664740762342456027705469372408406545862746337001052419754827271924068878015983925374500608471347288738195452897704671624053769921329439583100941102037009823002102379328958352433393541995562921583067281194751885537718816510510502344056667954871524605006152662213574699119189154284466810371058127678825399128500663219714201170759186099715190777754949937798379992389343137360137369269694242114075343423034036158449066597982172755054759438385638080209270612317969879581158390963440010265944580295498308208928210389829143489834641447414016898927737361757232010602935092537821395714699165366954088863448130640089030423090834129197950575761358484121939559359702456921210003566087930346144242155557031750729129202706498363738006698400907933377191440755313565974873691449357092214122286994154538487668036374264888895734286682252757022830610479958397292582466331897777646903236589587994526027302293964781105768909277751064994848130603168121279944941274258956220397506117205324901706505056499443747030092751591726219332627276540918862019176704578424674072899046885978455018491344605426958893241500825289879600112088852784987213430739754224624162241035520729936495001285366370342015486231529939262474678289534026530944611398341881153989089885155241931884675490985211635136694008342001183950339435937946183993334316181363219517800284336157216252838737955611559008274845426079615976702998246778068336375011911578735731952831996246673432707570870607220648322871286473136825895142552416260243192751683383841461631705901626281766376547260787504316306798449428438156436426321579665787979744290576954956082828693906438200569346591608825786481093310647499623416551486556301436032789700069965941123640255488937531680081192177804042225424115473495977141380365354037418934094328945475487861736954268504212678651710994233217522759414585499750017837870685033920479181028399223906674025032915274812106098273414292883134274432730757267621337855666138883107334282587160439427739507055886813977215219324095974747540401651185034963607886647389233140567708178251618151825527919587303527766357975107789747949316937080402785433112113220739339405745859663757280093757032789402579509061890680831614768152290687090543393704819259522273603539626508670815088141156250090131773481176118015218861039964627774265535905905813930316673133860393900219316429811572697097994861481348372905257664675744338431689787577171728938165338715316258477361440943710701111693422577158282585947143234117192933089147729007973455046077301850401317031801934465891439943043800190044627555576990876334514880288757586016801204757766176657063504573945269658277661432915116562455085625823036432852655808686102269050991742261889891695061874733867324248245074222338985864585616791605472397589636744516382314401166662815102321291954936197902399883632782309298817090270058558385167095446000111705361382920879305876589966662849406919937414295126824532575795308462554754288739907952567535541729554112144836607089394782560386355625454804003548825720597384441079443238594184405460091349033955422522739855327523986835077382480561170155545100186237481619554249400203898963492913222673562769959495710915540755044146430100316739901206521136863083030167725127008974262237954246897382154370663410795855848346713349537496966820053770911957334785131039984788079475051916981160874332828990868030640296751205961176681080322022508265354217258787285246168569657704924721963439694546764129377869399536550787521044858518106802254021061514180293341035188634235318652042108851695499229366329588825511521423388244658205899019570460464993210632425739314264687237843812219900592918882118785525532030388941962101792898617051295438327931327288417792623447047461267880354772204467769485631398829474831856759337716379889522241044820437962229004695660779462451224034920821716713294380238416017844901286630086069867988130329517462710940086268245007423617601546157097005020612202109692964118711048951422448676567539953525769907726419227111728145867363009404612882176457046086803285906645256804300369665577904369893866915303603523080910616371438713184417941793102654506862524565688065317334733414725926789302844249013562975662908045727095837871373656217138107281026750636486992194337161538767554479520531808293999560419897296100255842695005807188460640268253177495921859158504542396065371699856150228558370608864863877997108887484320448409023467976503812702471170544252833226509657883720279212454323229205171553007055762955857149961025223950065231241588444318315476872919677652452877333586722032543972315403832048472263562339610599457457817161437999374264822706366640957238028451627132307272860972769577244360633110416174373245073942477835521316805295770602986024568268306461508831537450775445634288745469421934141150702445047606258158039293026625882477952613967939289964878409419678016270176911929128622506226698133062097538833319349821919121907415208321036739794688520884833663068570074551516975407350999754817369201123464062306350497896950456862893291208547111989247937268504424856626906371771856220777872969996122390896871482711783110543835801119743008953001777108711387543108114935059535641215986198546810995264179962705309737685030308530292347186910158184763294756791245122703011552058596688652515112185740793809656044213080324798818414111298468359770002101197496627717241872718819687814451562912481314663816300055115643662222826366324488724997819833947050512981771601835736596863448740636823835966431962475120970259200044599731482362608255769185898596662107985206099833912889222749180228640882672545121284018817814391391768005042043042022238097008109210035749258617534745698270001214492453949188098253787609001479475555374443985811481739522676970512854943933211095611362374461023029142355855848921976841035771728355291353273313022679711215699945407497103711734752467566783827183467508897589791601154337870414933947892536484420486961570208621076059460221654505948870208407762604784840577853587284556467801607886406668288299074658856280444914060679563678621588367543418042826191368817233078475902573880977073489257791534730085334055193944660133755353216066665569842645442325040425679721327145507130966675529182679184234822882181928273398003092596592338090817489751868320645923432681779446302431344608763972817000251950427409931761203706772862007263837715144746358435177450186063037973757786004766771713605884294911473904599324770414770958061776951872691431641115431482687948245870750944061922945710723313679691344743749255614374889757068691390805546178781353856065620569552875526806576463580850073147048887018177300231465014116317593054069584622256588795468362589349575203453939088368301868893811220508440865640745867659715753539514389111450637292897853388624478585499869296341401093174610032430069649090952824684709067566378176097738782425722193175847657513061571671974251067757396456044858486110518478382119383162323618194800906548989413215093550939738657489218012041767566603036776439148956983969124879513646699247630615124860257954017536518905634196661499595509283279339391819058526534202402340192667582183319971031050148052544912392041958038273063406688842973077098739630289428621040657588670129572796575835394943953476684937591370743811414178259852350110561673437733549731743999381460395160604846963576934041662777703151998868675880679430143520583029799804939613708138634608113027525662932475755293774260385950060185668411957072552382608302826654376837006897133640627295145538777591188312421512756090422020845902862385874536524779669586467943557013527841364565782519835839231606002112347775195805366767774905058501487337999342900545673372795020930543709529851668186703876555814109753800241807505305357888269124751695840034074260557743489297345894103714562719253621517476102424876605607177057959406906002645570460075279727364417403179681597811724914881472177086387175031927268235289925022646515833897324845496943240364434444659919853585948060844246223909344697371223541573574792566979719514210678172719358631612047678987195591636361961379995759601666230828818269242035419953301587939065189070455077304006167689744800249086355608410052225118184333548082153033146051462745476313826358563815661971175899475909138761670103369787797960173577780286967974567707867036551680376795291125319248978377261997142163377123132278019348685217691754925156311067565412942227757473953668453006894232755608206438778696794131321781590554347914271183479826453758460372898293426850705916140574244056354560046369502099619704329831967881163178578265559865603358171928480873841709997729888467051949046024554001643907509967885370403548637831618760649865349018194850388108332732937861181417694848132939276394335072335247081693546879237353898810665639744029773684428145549642331969103232096282509677849458194386203053338066218349724799033225585736155679449500369042751446008876695900859282325743472297526436095942688587656393768306169738063527259167932692204805553187114684294083493937734436063104837084657308180525490969714500658899484755896404640672973273502361993178180334579370965752311962081738965750342866238913774593182729597256717771408727206780421353967974071174842176112483626809963108588661042325611943092937766085734578176787330573954344948122870329140180901978684153216994861897546697643390519256131673701811520628558514458884773626242650609587530132302810173040349177031047307872489041424993420342194533247633058002570204719778984297160943495047123843453129528607822693739752561120822203372293452142223366109077914089938763445679767004393914786882924120459789526268505195685928310543287324986334610955839485024208772237179873771042328609408454320913501121916332160193252629835526455615861561776254523492578264259118072909496292363389818843383826899282013638432870593874746997757638373040026958085448157107408697811275376113888830752941928751727032701446340110016723073146255407442309940917383078646968709030753899477001631947122446188265046424962623281416484368195853477964343006623609522993868349032382310784454423568051205500110215151952631094799384327500939148170525768675865219234142948860478481901271613336497270271430212958163880699964291242630836262959188135321791309586371488701305506106563888682924878517915018744552969333796946025572331402889198055544095425162915002396157772955289814496382695244876648963823968508166499550211211604130567302653689935006508107560051529157499184132033127354484980503536064798919658620907595554143198245769874065700560160847448221315649643047226373786350636838405450733522941364317276866780423924946022714613076842156534881583113290454446492385355460349766301454392763540803604747158658846534847557229823160957851569123753085070908244351487280644028311102313225922373171596332570501532718219860102975071535213582590556983195021260196925875310301097722933502128978303185601647134180347990553300999082610490735405623031775282279582401642207185060193698621400751631177729678482840803498097493615768072005580754325200456561623919702899898974260339349801577971542257704261164707369787298098799949911553130227635467132786161333373581635699252639130780323928586495962594210907210962635987825377013568370045629289269631422160548974328901341901789187136274715338857298439348085811794765186877101608922356331408893911549176010874094407022367239904882039889742888239100389062144207532329339246749677946812248755061614498693786888993530766015317328235292638094876244206745500724171619277263521918111764155775387570665296359591438912130080503005419864462601378788137757946579316814884543069219885820576008247738534730992653677473012866438359793314814041385943762153489020206874730631100851152642918565584810642919938421194912705510098933204570717408157752589270411968961270288099159979035559648444347859917856896881892097104293477668274757957094955405859177300934665817741076883733393884278595412982980550577715244728665346567310338058056839963150260525693977192490413683068454910735598011530949662368848058787068647511308201038248907202362963006180848322816448404369673610149368755167173813868385052297004596579716873105650468429357674139714155810491500446494474918726239666448253504641409670807042563545745539522769109873096711386081386177901094419078608761914860117126859952586971293300887470660966068053342885943165969800523144563426982664398877251988343631531670641662216388666640321556346633614922532723768950006671677840708844385699925559101253261301758284457451171439705134036490236395002374393704437079936892150214606429300440873624412752608888627623310992961485575699715703085592917582702199953494403896640848353705699351081356612279038175393497080625588113869213260085086704394529962764870947400751605898549897702178611295961801750634104166952372117968905978282517448644382994446906468837175573296053337463312872117181683059558131639864272274855923634129322480915611557241663196023165185512889028839962708204120714746156202095899753416387912304758338248768281917393026678385440434701074043008520926776772113522791197536896328386114325608239260196917919185156180165622393288223723192552263011212683702110361405084873237469030607322639169163015567010195745482022939034388941322229255720944426697530526392913344952519198647379698023615142143148434541590244344870939857736455102950474987496318634364301191964602672006641051856303887235998013457266190805590242453467539385438107053070108309608754453131628611424124575016980322032333300799384152994640130507159660554375208934419587134988491878338283851615983636266456363165976949066313391218400961686093431756366397679366415635472949200632046567202979267919579642075267616904663516954392077172549135433024960426977727863484126462572656159301882126272352808277415541401769275496132987126305621603750784351057120049704145414897138065715979380875741625729361950678808191804391866279038642175571916731108995986408413473837081875919456431659202356799881747765596965870487156497355506882187352907599144811737397314837159844766606940525810992132718333305976680302538469234887860803841124032448622673670862144020185716556896797008102637161556877913546857143999486642035523012766380177916892501571300193727336213732474045062664847472191421316449805216717344208585772174198723281684377120392391322896769763692490670379545314896652307525841502639856371894006358912340987101690013871851233921791137596073420050264372475721191355855202813370728130500308708935661973658582521573710072382004378966185763667853870178511794125932005735651486372175237065686612808533017179908439011919184027475410937997379681625003944004635656316587622268122451404836679265433531233126926086478912595135832003059690449846541940845182416385107870936163994761955439530515048959178070093455271902607373313582480254622967418747360539424577491429386935555047085932929241971032020146473827009372677474183207017104043181347860394153881241342848551041408200659933419657968193748857442428674739378274486090330461296605635786516723353342029787664175233106227466802155530102795110796315415808431589870178342784774613134545694022613351080950749650416214482046168336765211909862673976018858590641703537798991162547588494118537732782805910307901396078007434020133290528246045650800741209542766811602947367668673731700882011680175826042437674499867377991643398162519374896195675436728946648773300879080205004487218346223307444236266129128447231286829861769103630468517983085462621352941204106574054059861460756450580961361686109741651183489293613492744822133288197891643569860903756088725465616787331268270234653771446715598334612824013500312106470708817512219921293056751215643386707658567904326276242648197241748992746098313032565207193380652580496038976617660749859976928483699986139246746236602720947343386774181409036720313592311852234646779097149972030400841086749011526878161027805994562470124488103934397005914720353012073959166649183780826649861210258419276286908056439707069935129699360928070469967395773536748212649201351299887060678969137240142712213227218908687777627970881729923064394463933848356017859026081218529295268335794232927880478578221096101912164027866446286877272269160399569901782997499443505743995062524720550572145797491358914642224220859472898248893273020687529959631038374578624447600967628852108519249107102452649089570480502841743978605405217373409576430895226653207369954908532047482433645207651599675496108041517771357031736596853309838667542273007191341135707900575418340244369707033142655965756451296553465451666146197552228180234617434062264368283767585436568040493711602973663049703949054209363795419838930085975557613462428266577469950852974603701214416088019972085625299438319059498441805892645378221685757682548692491752609480433720795198983075811941545071072887753766307432544743218174247207503460452081810011199047102244762121578899250177654266063651763334822395592473947191328264050858547932411873119584880018174784059041072283789464870992472803465672428465291842590662037740418219031567319086378252260570945435807121039296025934994876080633404109888810273350994836008795877599914079681535393749654063461738372858507810866283059254023124070710098455453326979096115664994620030569788176383835937712343348199574642748038645277606496512299610918792571093757401390856867668367355395853192626999303539422504392484322358320129225134926549566317416295591798684445493773959269392101399674836215561410729631147310676338644475672849393212727958209343130377167079647528176961024543156272897326485216085039905374484594491804611596188078491342374697587631506642621229502786994261477858944740342953408125679459159033735294940285237927667100241335147685413729671377876290748624540925002239275772905096026028272168560525748877545098748593227326148955699317016719818970568552768216653544105549698066286832853222467291630921734885262487837996222991643482574006725654170977964677409183402397032188016794104309880393807030819653150867132681192397476120389779573392893865249032199581082618265602787856983628047417158273219553131643869442868217439586537539043823287560947812886911019789682943474993220902208245224327288818729351970881000668208616441367141343279099620865682752461272466996142820771120487672014804582597871266424841858451895603941046229513329806910078677769792599656550062375188591713308289764316829071230250610039303550288633918919234265292206533159705100241454566511257360474271891212123319292183045845571709879692676670278322600340703674491679095579135092513094172569872600373041608711778842456285173287201858066580030623824785129130439197760463350886456107895854322870405270637042721217667782560025761415127125195329903606830850794982739283761349583294279228821073331650021545915760584271319135021526175188525066531076268813410378663466556844155115734356584862011377855830753727310447204184287918676290915251372260508988536742118414773360265223546199656255599341018898128168654382402335865552088084733594046178454603216220032991308710626594257940009096592033047863102035013275255506141595098650094872047339315506536400945457043607434592911571079265330329772539346682062901282834343523225207747946200060960631449581710385064800669606929554077945862900580804219869670551862773519102069059414235131041791288503424525579789257718903192861116068596652201561798291921907804743313029093181158189987536744339340738447858600538394326769876565603166543698871347620024273151955409601668602919661289160037704521220763886667551478224603339168307308832606965059530975706080260099130128355690519320413433657880663764340768933025481029214079215855445862220321708523422414868581781538153295905878788343308421190562063278555867070190876574832925876239924192412650617752927809600453038169029697192578492220068640051338465149900449082153244887247668078897277307709682465657060116836251363771211258709308479279470966813179512213842644635443893489430740626201967378230947394072416043620336109215456396419083738212655149255825375583181829487956871957849322333413317635389998382449829142177848430514994236472060900890338906011974577018388249918535315183898548473951760263552317378446430461155377142993462793542875451289409742253257010573121170107377949406566319848951789285084079323511465422488852598361313669782346704247552295520625221729713464367507573505987763641203695198469092059227650143938865845057251569174012792369781993507211475081316732252429396521844114410812668130639857183177192245985151034258201015462731517896987324796845065791934713314505365309086112118686779503797002215611692833924540976120964704684671606672197433561752749289704910370987366441387264691611705604863652772992273141277878569333883593248557509048744591598728224493199433962116044893370970086544256056122800626237550015267576634093804719119551579089570755357009575757396847603350297452315140578454109002173545380197461930341299926614157225000266252216544605679323377304741029974306802121385397589962594057398356150163486121275193820077794155555803682061214961947583241901426737334398612502039443546951662015875137708755555631608807739555028051650476354657808457688830421339926836008690084509854843484300861536678013286951228770308723853446534219301628601177413224285504201559383762089762989626943267788734804002100365951773263685855469018131667986892754255718169338536412541830769533384117014264539836156758908191936746760970827829966499261018477408699932812226298869021347357312633301872344246638912558701830336572042881649483924700226866487374360351960455857555472378920971428166693151433685703320976601176830056805047353377575475818046542983999123612792530640161796749196975657909192108550608883840312484936940647344298611762912807008772327319586109392043923168983520814103881494960340670901157913812181202382960759589155735631037059594268201230418811064966052132030328893544940740499463467861121302631834222729668252893346689720161432867225797089296722683118381551376957369813335528660445571179286019233147916666578626932593974239886359606585703047538813826329959287614292915233470352605069967517275361200490573028727257528214019277829467691813845680326426210671820154142941933505133893203511455296724023014629792622259255255225163019453649460277779959056965443702127235791727675927752739907952326954126249309576065017263728204751354020722662426933590083265897898987324071371090899872955889884224500381954692255109416705520370499408803494937755448068359045393985517736984006815766525472535821528994501617022735038809981115300066677698551209130734386973827570394421012900210778943979606716910920402437298255210061885896850133208581822875248790249182589474058736229879656481812701003785883202961496819450677586198244363407700987821261580848439243694539413446322067055100116675960093583377556458508852712742835726068128848814611782566434240368033426751577588987559109787655918027544018052804676429751517670799976483661464552310914641531338290118794917563806853899626599976864237094342794128889190431287786505857339529252757920306120426861746328607132412318892395918669737653207396672342545976506859552734204212037388760754880411993537292665544133641434390685066419636971047997361576906118700776693872404353891234967755812200009304071673677462031237782126510909235950219210297803681643620974147962568911327612061668775337740123717079621079762911258172761948726124306886782197689211833333621159722986296694661598814009719414345311990219342253049898095267058493235947780693895215525038842404510480806580237462021043521412747318717404863065257982827581924223327395154432426932488533602205910008556966491066588570549926543301198999628589136215127431816183978808984415727221221285107736265237819618105608192850611939820165687401917839475416330974793682055425918648895404400424008150056618811807939852692956925538790103874359308004191278228759991070051776085742659922025145626899767280153348009544598205995805805621385159716116443655571851504494704388240602123969211204312954754712043493462434311298627901412949452937508627030983219458746183107854142268537015770934365799979437231040172532898257784413937139701362621749290299066007156369904916142566424264514466197549644641701979842897621777888228058793448198433206880562467902515481499602983757803784778963207050899233073557356586168442181488098472271783366174242035042304531927093766541536309348293120749244409857509874191990751084250635387322506028828731798228712500909026044714698877425433082576388753333607791462656523294285325751446528226354167910680613408447372340264905749378510783712542079239684946816187089996037085302965201762316774168656318112586087709387248715201929269850014318189866270338608880840832962444280338479165446125801865887362348508814530594172918998708332909960531532557345029324126620742611509281363245528898908919097030732950735365273585461294129990826629124006598554080716533914203167826064362229540610587480141623814651632811143031458586787280017578203916913135300489966255167681665182110516192687090836359578107775739106270758897857454346328433800123013085288243168034221402323582720557455820091198871889162265910461901833671967153213476337137468173484436094778284589584921851251502686158907281998990168234321916664858007315080851507869047172444450257007331436322902639825551443610934838140671136765158533273300167022708609856171596066507024036626939812882063924169300862863470464721347573461668503315239665557558403084341507601063976221554790634702825599493126106006234282805687066198836122594252549331895514143382215585954000970657824070239138723619280141989945442071910924424989952300924159041814117985086861620832007485678228511152723526218803295981891058058306667761218906528132125892465944424671263439850521509109468634144646540526957164253228090907921644290780739685425933883647092565318998839848418748435053488480475329233670195357800883411745675607122195726691845890706213176241079321657200866990994457325581009358418340437134167331123460957799143312546819183896653837699198624008184526563664885358675221243756910639722551678776913706186613790782193099425795960626097192981239133475039758984853053445861881661450624642055550820065532037586993022476100438260250833555372862242675915022539770603084619732336424634179087533778418687870854622909504548468402686120029016501665555609081734319627635048290146551028056842371316427110798442026469172111510129688597656803139212982750161250161830931217690006667441982401347943396914462996383394404878146936284698421237863498722475492214432997757951670679445412140783079226594670930605722307312665608192909430464650983180598814680785193387233404885205049488068014388836851260967435841200714238209430474286256545291264922676381237431209537707230695673790022558153855107613343972497459192485388511286832552935543422628071218335013127919014786237667031416138290425794706699833412841418541223893864956526905837370094101436645823249268753447481776896263137247671340777730940711972252616240802951708686054423258717920676564512033428948894871574512835924436912915340298674163974351338055502919859127728432858623342720925021640077965314963807274957621222934370307478563638382137743854712499638072014665055793568596368859357719200304406236270836936186477691823226084259350227947104958550295232519243760113370877605383491827306441725651089651968399404557849844275602017439341315268464000820014627004816995930759434976800798341728104108374345761841229512862823491651961893036427414958242691866988621165278307129941760360381127837724821620345639179143999756069961204338886706594810071642864772367293880240260611695972578232228524345604010290594057332642992431408520756859549668948969871773868151338642536778338486470655958808006894038065717510472770941008120694939294175733425143514116599808450639949427377497134857034118910863496050461439652316390753392073445895047563404792564597286047844950601702961234888451307965820153563014240723907853111989392443197697946127158256012333708574728187734960206924363436174400757445910740577380638507408542579501144083253373581737550843811665311137257323402394260534760490081381452790638843860961914717585294976488470808341679702286598392145271398516714227792061177923481617210322340300595152470455120097557485839729917938220218283466527051694620283453102280248022466736411702029987990858683150068815180074361474061974789321314083767183949950610828344854100047252884897514493197771413216568129767976394540686561021945293225081497239177910366829506223110829291069348933975492371006290603980335879440468962322084964084217558010116827416748735708138247570661069248536560379886974244415270141304984708570647349265790210473167845910339664464469043553277720814046269625534421715180234191592629509473823984673846952029669941691740739514545114149206204192793134901553357282427012313276770439153138295610447794813197356491181594496025652518117009887728910402630986350368930717279886580277064513381783564503833845012265715678108361174372687515282465451185984694881218131510023725008833174077994005378193424054147593060718443145860683592219629293406267249376177732752167337769976135213933473978548837033623349560940533698053447230549879661128715448400614678539456756097944911529950706615838302607705557867625943360095594788900043441105983029808985754353691456980526250649657824361719723631857566021260365433786140790502806975175297429385061909221876477488217608710851125889863539055720695082246651945016459070408736140220813427722712559330599455715067625362685473726645788328293985993473888677760714132201299438630798117497312796094008524326202170043392115704755675386331690404328052653979463417818245464386623829973531479348385566687822279727596942775683952605523928947529641819500364223662560268014826624752456837778917091961634410146229513082315411015782121128935294838303635422818344351305508072999840585014663015320486105353430223737404439841250218212315884266682227716704716386036909981582087929744191138132610362922726668950128982846301307849535197238396793639854797258458654091939090091578398866101631676026543920837128686720332199576937668874659965378300193091944974673460453996983524781322334247232421894984351831387776724175949198528134699819724992813464826740015490605441734576904057089853171917291766861542651096489090312954879985600687675127797552855793105993952805090472283021593504586844631831551064673087484708201961353461874409597803538990977636236030612249075407378514095521965291937137086727523605586063019811272651421643051141299432217160562961845346929123339552388050286969553800164608966669323075016714180251708202618356019199604331401809800254804712662439900483697148928737606301498801425445614422381633083623232259787296202371237462076241385052566324423302279100408575087050466886857592141213602492183456930768005600990804033690033787792583657793883505244999401914674531827304937337853841398051073228994398877371162169258397200837453760368948778198228623330685252605082367752323559762720354139505915211527217454580382187237925690129083411703603160401187957960465810476831349785960677448166757826723125204690966599626669858464218500451440604403938473915822296077748668312299983824401843150980463958947450857375800668603623900173168136897777220628847539093960144071200437500257398215132600775231686226034152445909688718436877488822272717943998331251637874699418334376365896768676652178227733778193278761936732335711033801367332491246595201221485175803712764219534759581205055452726075990626780046016751313548469997958077532253367374810043752575282357468729702155229069148489064198322449499558980285599697793059833357174080011971996157155038899616939461973345221448934168889478798824270235004326656306790638623705636025739396471487785483835508787450260036446196702283108753248985232312203155351332939528605426391886427279444827109223254634614814992832387545182531139950197783273297749066388798902299583013228744467492164113002994156524547103977352896842621675043907144706651629735629666166213466413403486641371706946837201185420879871467120359235272414185255877740062872566118235295265185761654103868370908754479551244284616348249712346083643614498847624959736767686279232230753025789531220044938057474284044498912784399690856191360310610490613167635469320329377121889038326081601955186525748941269316891621969714192714412677321872491340263655594391219916833153064941738565012788696079022666323240789537921485667182351631648529590099816042456861556164339495994452928748780262937355915775818531979805516230333566332515005380935454014409605791433930564562035237811618878996879704223356899821220400065109561174902991707874785869822208017290343127744271268282579909429520113290317238319843043024855783929145059321540138596974228149923025549781404854465621185464787978141363535052253219841341367278475788818108601767406709138365681996593257618083286675671700568163427518982488125465884563189773261589922734287424578230349144809718212085161614627855336280848418633437685261135113163578850494327126831472232656786996165463142437672294864593328660158622017724728191520041440277993242813818494514667997834848816654038368014570940471882748580751288341454403488179012406310718683178732235104509177021343631629642086772377332413802718557905227120129691734971416044062760698134885737195221169929538022802442798798689811332909118837387931375575273587113459139683737571487767928902535954145829749468660413721151154607576913769286907072246118911856225138714811573209425428396200259505207132636449578719516135026659336144673797282125105964594467820204556526799947086913408209114964460179235249003987859404504194614555529547521755695097271697532981087830305417276632901194564547706985334267586599357719743129178638837549091632503660336433144747582361164711773422735784359279414625083817884697707767242183618281686982972164885031000934505591952751439112541893600835281502820725758575209313423488981821193658117308126489514046327738477346416567885264488440264299256153385768802291588830108387681244082765617912473224454271216647543098033995242684519830825999399765623131418139189144136001918481326535569032126869004885684329621722772113538603412586609006995116124472262169156703904000833640476184020674801721567096300442224823604399704547726459673280306949192392098857233745061503809476012181995304511648197391966146286991505880575605904452558328846790211544134221270232493554090205593881357114485613921135519310605286391332197978365865717632089262815264897376592353374176289331748130217107701476803119039418778276920178221522793438162177688034282482733685463152589729882100661738038364698403950823336296672214746085317819547769493420614861958137712444165298146297664204673811818391961803390678821222965968144783632483354344603682747383676411179516625223337348110173946698557899579137327619190629767700270693734380241595967661608693613925057080827426550254063227142263433325969275152289628613053191209202180309326206108594588146062216818309979856297105724037425294368847315109344148802117824431301097897727947148522275286522872386937010631877276120309483576444454650004867378514539517145510879970067490284446423365394401433001458920628472788267747787031748779081025492726558667307918412167037963900928382455273667042448740782923307031884680696901101449931488141189888242341220795512125563795144557622727268499728340189544833646675540808878925374649405284019912939895853515624092424374543060176487378225139002721725680226175174197413142880800746411726049592331768408334508294572744676714738432994372947080669641328294919889924471240759718076311680104786759344811524357544840202009170163562489877066932576708794916867060196530479643254237810163717108763135092784736541759780481184677458917419683857789302761745531265916558616244097266285007906184574307543147920969392909033455719109123445974740527333131929461937338962840395490038256881513298245366033124338256063525488353071071779216897049609308155323279390528558370926045270561828873247273642476731740882746749054270049104747950834408112067632525472722608766127646663866335185356140012532240512254562695296052292073812200213192166438845425100577481879495796200551548233062104175031069031195887178225393166056069499233793345674036771579517408850240331072821899785553575969096758948166333082858289754159001281083584626496551068339707420135747747151075392810377555460409030385918918230433321603285460420295249993326465078537733113875403417843336371947887158568150460457396999513836682060944391560869000967397814299884157213835817484443600064698210736968245169880502415695740340534586100606348262610557075696034444787294362437067645515924319789943547158182326092621783143602741207955135072706491479168271935379802921323734038851813580526521888212271217054908636572716088769438272386687832621497655271717194268220551115813099487210336887570401431668832191078210088551751964432884988530976852684947510483217806800071114227982800307656099565550367838640370265476431707122659398113605817915784165650675985871320821975875029451714686337117929251619240271039250740782705128457672287257024153878309846493311054567627944867062050136322086217407917264278964770468071305645174589347543890146940011430350813563733075672207578328989547177967464685495217620382188873242263461881024723378880765228477413070453522573778563098822351386548972071389952933099016472859856163192394841135762486803361789179106500251554568134339145280937034239461104276695088184802662338089928389918752448473272212574073505766533664135270764225717852036454330733032115363019139466169804665610857366004984209398908972101957406013016332431689279610410785324426688756284290094664224066133546220731749060760478108079294237031891591069259919942332826983514596156069482468330917664193210348333062569644982883179071023322929797187583681926845183194946870877575116849715122117161506487814870161503765964913899267263521611036595855706224942926354234727184113049476071409448068860030475585219627395286311059586125653379554471445778509229076555041133484929825456067180320286489561233261255165013867739481953454890389130595458105644460334280187701198956751230726565932304443255855916933486500437404636131209596833269863291626580342642217974464379491101787545170786830783144882719765381600216534982414358317284203232290980464907071468531124339869790965372809427689904673924585836996826198673302754997259058999969730013078796999728257594573285026603010909704105747399612530558165691247585812418304773065541657126159327562177905067585418617368222848496462434946802577155874462891863321419959673283722267138082256323380494455644847770508746101132475988114326150274115655914133244147717411373640745007555221592362287204803759577029648554513139390529480150254005866668951050321867455562693505324556118893079823902976822781650907855054208336206385523526554588356132241478458155843317328182930274482438826445064842885548546482592215344662365185595462729692580839257907386130649595914213720763828616125822157708789178492928392242800191495290017847408977580010995576551432519689869266406894913862256986412273489596282680707419714407010914840602865602462500109535800073862888014844683350192209188571340987167400129058814473499379492742721715657368379693279556095011536846058945427876985631569929140420637386461338735244637174631246127243708997421621147026313995715684352233240676258158023047084857085020054201516470855658111449039035802931939697806774974844685793916828166109741352340769685552388080513147318676101226460750737342220047117806670466546389260100216387407498203409125338698373180687223584001131095427191731978720517767907753402074034247914982046045212874637079146181838768522316040182753150931444912865355788698348202499416290418231356700555261048327108704177235822153740588476785473552300500507288576395999968392930948059141529105404912260365375783138417280001075634154312567984883834407265427164440779646863818783388959727431097891151325740183003958149291000089825778660646485352874246999821915858997555334991277356730415277548811313144345968138440009941097480196157767639705331751995178464391449817521455663788315387536529382888089203823960413414275313986593279291894645495480188285601684832932577440063520410329259875995710247270040488381206865481914042698324149050594909248229110141386465764962177868137764863369326085720375192713481540164010463925869261250352433230281841361739932110588104997870027286414271351566628349232173464640703562889872467428342283828558246760086734138125769644201746601271920937493207691616580983172092003972134767609207910126141924540173054504015585907017611816451949368862075804572727461538229473776068187107668442587375861362088512433276625968131734567847842189307160973824664106008048877968918385481229339078633791647336097328713265983912874789266978279921300909092980237866003241142806713101553772828627257077591072420700578589111459409511785722898057088022287628400073420195688143824227630453916812288691329878976108319599561030431837477679297966742766055379504640771662845158795142640373009492439388567244662317087882864547173509309137753963961991054420371816080091386364126172702569458653174698425454653927733845571043467789324649490275009908646676397948911292260645324987629717166172702309198504759692348803923299328141464721153288122535485910081924849042847857417089683101330454201264225771639386471786441297857020833259747880140882765573248899793406875520143492154092930676774883740064028936820574120644995834797502232254114012759731439601272218335383696560843991677704391864463618305030950644188516705673168580079536444686734128206749108031077064308471885188215533870171344519137964594366328812701772106638750020379678800886821884894740155231013826922989609728526587993834988382613459539090402689371915349313238880326322357695359274114751763702575041777793238657099900891915173610863286206370399169139571045991943337461919307362486856370258673917140081871438102717944898727343586574344876175142823645659586552932170743280424035211738570912376659981950847132435373518278194398753924762150665168520019292074504117035287299185015513050091484279841614706745275382721039008905726985218511428804402187212868971932514995715210913410471220401717102118651983015157217441781249552710968419281815861835711371945915717387244800684012360017183205149036406199636625447399628911244868938278237439310459146791249953201824625635389284096586376350614049726416999354545754371013946258816556791805188142531134344508231763586848733012057139554341058323180034437234360832249120027216094714651234107098309676379918073301473791592549460695862324337308455405224830085772559779823198952871072005374489467619240164319044938982634162820384968009496828087711137496715913412465902897833480368691590795096755275847012646911522171822121429767151498360163766336894242171791922427817209501585908192803542833573367791587287156466409352207859313243539674116532878681158778125789840528004445056828364515228527969335159015852785801632920953167149354361260303244802966282777933719965565714567831717243334370414037403855341883432393686139647981659132555752871772662483341627254032866918552454840919592945884230854738413138034533282054582664348666686782978334499914211920315859271580588435101327007466890810870236333248487279254102389063725611138459770853572284128512394562882383631018586780931226147819119407692895165797174773430196923145907050784597016734514758257456987037817874828036345042950005844081795682249607090835336364143919308015312285025131009763406701168058411968709622686503623735864468716710793584415509315752205024554807849903031039371013403580322509588995366102089573617425849123950607330153525093226851306260899784812575003117778539680055634593004163983466136279310478671503725433326446150601575897676999020843454476033554395349452120009951596791815378906983979210900133128373140466258823176402276154032428740600666543241569459903339250477800071448487887244528743587820828468094707725532212610955290938170987093486371719067036888133206705138700286204668514227487105520022956747305464075454269304268002969347837221772398098784733270753655516746710333989279168824164658642967122966183138197721314397163645208318776188290470098134272035982619993460300444746750421687283094797195350544137397742570981194184068852152772195841841508616432024200557524727532515875810171952808245457438019327222477291828161361487899990533083285468463563723698934277297920705104304098467226614550547340895960405555450984994349282910959486336336364591625536971262304737047591371265182272847182094836252447562062441861656481848782634598878787897121168981879435291734574755554847830305229464547371733923485879625309981511109204825576413616498841992255723360220243169829790624584866314557518379775517397001676380628265826394019085777421660972150196711820000013338745877683208342590429294045429812614014856796585362242336975520425102855999525881193251827341496533139005097176805316731938202745032186568603049116717810587877276586288312690751322899005212064441796924224683273533578928963657406811096596402311774705147249812325236056102388068913738107381541855301729755808701826814020791412303404034900967271969046187171087758131561109440522573361475895769371800603204628317038329436088294988325412808705471254499042139875760161504896625086767504518752578525846320311179042239713749105196187512753083234209737055280617443802271394655519178230859782576767405297345084587719582290390813806041137594884997424284888437211725232847199647001053860719974260605917213935686337092063714875369453704500313084612798592094967645608524389390938341268725219886411942605487471757903208446571870338502927423935014894525985517222697053507641391621378676612054372225626582277663606272778301319012052219524957376862360472781841304530612748840183737657430583557575751286398458971096581065127775850430651027788474860764458755240676699351043877688746045347496901101131694203509734966801424231661286094089725901940501473914638631381928412105620914482042658983909803632375859127164302344645900940102717997343366088743988709032493980269593652561909351812649836048268306927017647019909987733559001097773082986480198422520248859282479795614522130340331866491356776422005307968107118260112392007979604896067783643544575638266000186791449292059313040445923204808378994745712905820439626610143509360895626652811961708285563459381606647464402336009911996387058713812152757898369442912417627446702783289082460732885947200126268158125705013952961739939810864498077335468240372292958204615181356931343286105842621424724238225295473262013397199717427230850486081849164378985226196903150967726560999413498407566553812680015974410269825298180384835261073676350480499860997537538425963335976089160266181778776487646269730931661165789874427845621880734001870539867822301293562240005169632103437988667976915140281042593373057825507727824566962694850131925133431780968275113858467247365179199958494810401401186075637477620695410029931959538125142957257789581588481763788364403189818913194742230659918460623858227998408850820152407946491435738003903263938538818176816189290273838653522144418669589608783302433268902449278275040536513474126370742087651528659767044162789072704440450728102813825273486401045750376777945488816839664592703728890135932880295642008069437742077531678878331800722032457946298422575512043498465358171944923084127638497024384387550141741163351266167014329381830070626357527999853103824394433434860762935469483952542873917034023303877897258732425584602386341759008618012335312455190238254279283085266075418674966229794236394924838487009352746294975766069918429555815203791327971053909895210739706573338895016162578129383767810666326558630016191804488326461233462060134431099995133040429806825837529195076327800465649435526655127543795669774198463536901566395372001153973056918531854538853760665346568000587998670920193246030180239708867116718480324853565392505930417640543170380391776285247512929888251763086010107898740772259383070601065578024828142577084029543651345032798649907178171473503793706150031277286046008459365952303422754233462908961236501661282423245883737392203079803560012019500990385579982058881787216919065143202360101066889448842806952783050610477316150613736464758296807325900213085331005363770878611987134138908236929301009719819593051904539865947364735218006641029326122006050456182551322109455798047205612410544733849196401001990479986975884258893234478106365040117981921208479248990286219591911119494386072890266925473035694830939256068702117476608033748364807593266269774902176099045372849597574295596535903078342733120301736173130348344215382544423180707248659928996133333255442216491272284511217231167749257425691580156558759604777484799675397304654379484462460569070394522183651698218908457688124471972758802958191065593253590072852649419404541990467327524720238187474837421567424942866938842767667579605406758270004684852093952613802437095729105544998047763434423760032180707299498917295256136153170751171276935232568578237865504650302496843850501777702619810604112089501016254657908789996198881865749611087433104211663840348390504517558604951390259918632271900497859850947980171260772410780410936246651353696762180601555916839381460799820411700558418021079472519316995955327873110308931529614625623450810375434717087718749768940584265373636098783205214422469074507030645638180092769635202314138218484372150527642322304555574702764330125198033820631653609428349412083322051145861834668576438332066847332278240712449598182054770311151699521679215271480084878193851055558072656959742935932464381430845011902058784915181731943518495485800765980256113348374238103389929508976123603520238072620268820107529108013300895378964884126273256438700356389409406736124402252193944645338963787581460875527133325655783010134573336077021811159662622377337630453824815413984394379084848510932241381687876151203804000395113970084781406650412532008748684489830283863195275967595458912442898898286040215729915582833270246668930380702874471527147391936905851864635761766037845488549912081746730577657347198702740733137395727963522440939998156355732561910212355854219064913682399073028824158881413115957521081807862941060467873645030553686237736609218414753746253685829863768568021293540657704747453858442521748276824261914905937940806420789664979130291453169035567202217164538609565105440312760919680023023127916111371705183709570730506135658669450397931244255639597249402134032863004196697446945157215271971023543232236763698988929223677344882855209580321943890773388027155854485198756786415793500955660035870907068030143862433754979283490094715062119588291093402982069700201833479421274336967440910686742845811939447139986253684417307115835317149453668874178446737980431042316658333201571988209278441000848256941842058377537526005072472877898086538819195783381632684813568777455849700736914850073968224086090833681000653029477914157342997646792511467651162506572667057940560171814772258313099785803098238110835135247161396088103165892892975677710977302939191126173592577751540477672997115355173658956007516032180275780618569934561061719909478831892897790459087678680003912799856468052425978778418486066404578044388108986088433117326706414342792740668319013657653910482621630744134946152535357745850543482027860266397796398524183383874617710310551359441640511029247005785193022426462251833722376556252372218690066815829333277860471898095609470130530855632435907508939432925253555507702401879376616591842056892450823094930802929639544019796341982405287759212511928239781950741782313951393658218851717363200751600109909164890947050367188922459936648191016285190777349151841216080594735396060080501277226977341711429069398012672444674049656893407133772133679292601863704973172539302311137564373102181039208879637196815042032669408592620844197420429944961685935027441558859846725221081067763221723385502158179760166150203745217479583537909824114614309272593193986751271938290210484079041132740731027880838701504913111447917473830362731511715478881054103570468441630215585427691460569318113888348839543307206771434427299553428779453181990211996774360674149928081869416640089679502082826630999916469647868101076426049051314327870018062339662735206808695601400335902906543046747052506612931360792683642408605913757198445597402722094644948139189479939895344631485439235171015230284053323409982007380342590096265560575730560841511857352206205689381106273484968181709557003126641666891245307526838260031866102952052389091057585993493041656373652649610639983076098765104667611743166094181807648306869031590599510288992584789299936608180467323099070124647666707273153959018024201317919238535025393248584291305370193794680442802171016561527554907364519494370196657985607033036552997131964842043274591725578980644494287152300400443558661693223876001577051327592459876806194765256329158920023526399866234344372228412626536821502514512765691205531401481415218954941188353904400138120907539378186793222977237338903417213828222173375604469462907728650829076558210921093329808368725983112151156481660170780717563804658361146855999854579359918721275589534239718412943658233497130550840764734435326522222868256930253260187709110532965004535427821620184333839960576638844134919422903039815465418135424198620907541715528911561399707294498145184976496189295447928805564555601304133542405257351371720257797374626332648636285338742211961669993717742165356196991521202545712107035085284573654734942575099059239168204629269175149489730589109331317105546950737706019695046721177832899722885515531388679179573266452844857504147385806396259898637266615791218908170681271764986260575323193422229433211114615302194692957615694652768846207821400178820401567493253727225111584794572716003803342756630265271884474685285736163674258622077985025857590431470468521138149643383980490330191997226490215390783264076461493236924477611746137191540481810924483004127293996283876362456670544046217349186615738529871567096646135442942429009717676913988718263340756885325180161914215131415908122220107990969291832381498960588753879448584049511415268410700421179484931310804580932291635888926722956829146546152914585385182151019934232114944471928899954921109280320640575856404277616923590267091290181538071200306802487189289238380743023886708832969351917514191240143876697857192030409478076051466819124499413393616628089415143774680944957741482520343276550500145868022193939054173027329922885593337224318216728630909123888207002747383579388045054711388888483495580748989226144810450404196158320356204127936041073146427105040119116753752232450945683892013408745427585023716363664167445960265987563442375096922191862062171382193840176496602215982081078128705240105358126822279907838801872061197902360222687036329648165354163938023796427743313773241541711678911561558423200749487852983617585797912460980103821085674745849343818710998465866925606888866360053910561171917571142423137087574232427606471503182558025773112541242851862894558942696923877925404007511018382498907363409158352119459746365163392028633181771473745219484711286847164070152140687953415855493028364456347728968599956527743090383693331477215698139041261052232462835207677317720035623776245319011280292501116983305379713145195910284801196540417221329394986301164316498370042539018551590906467088045526281051424145553448400115094870097244049494396501998530221662854828267579311459795906460117714268935802936840569475824140738126905837077753816925907839479525992678354657496261631543156155651022638722904288781145880458784583982335259159969493634162756793797845806516334312599307515071311086685075295203449980986841990879770147396522276542243666326540049803875507911291878573543692098827522354452059952665757929993628347299741541645868463582318246922641326092128705486773995886097162327909188388459522094928558125691401810432188132063315176941054966512125358956353563799337358690207010056790987347125582656078889084011849432119232867166723190170462322320026396492317600154478650774918867772257532773526519095160821041054186015689294209772734493877645048048029900294969577520194351570107585953305024974218895398091087933728366352128069672840995479333227417881693529939751858671258363230589468675642573607065471442921984167121921592357456985316377931073484563019783433772517243733179550419811436641024814526863227197012142387861106546358019295597719001487341593464766419748980088338222129365355245978355302257578757851544766900294415772084576882867916959949579685012105626276302841089049853729926911549604411229973574374243432877659130484146511175981050976721365523858430268566620594391350445177006358222516129530767103782637533421883032346921596741981678330722406418129283731364306749606220905102120277051550174874034863854894324458834283451313338446901944308913566863740034762427799621095329236198481918274909397612078582932188639643127016017589013324677445976591598725006011280453105977020561712036698014141037940893549580537228485076605738841587125287027922299189791609642907149534599038369801951256119453041091183443948999974842024107721028286151498866066408922980744906313959357260550299971214881410392122974440277667167816501808970998075567017160803700246059174361760210966853283048211704802342681586237733373926655604723122045674977188747387757770594944771736636808556581806523111406405241307096384364287522977823666223830495352656670789374006184784459497376716755036513944916173097525322230393006284451136282867310918168905315909175254434745903313391082158891326318996211468041460762118969944833043043058701931844730450520275342291982860637229795626416310439138946095296767051136418807355417971071149023485670436162079213437003362022822145090875176054020771174887336133975302564649064181988299736892247393426505759746664453740099056888890680630361522721991015479107505154494122219158281696644145192472181231975730254359861071906485076213950733595485931061497116715581503206188493728315797708335144163123047895154167952718072385928697433208768960900014567433850466323334719036036056656636714207967925790768825475609137287382115218623376227864439174982443316268031916791526795924263995864033248995880184632931840432858617221084957065245385066802213503280118161563344269657186313189959529551625860537982619676129027381373411331189837672805472600807332136410370717400006302273003593585304715541572246132178338378551300684340101226936154815120484457083825308543620768173031052934438376900681895984239097995279361995309931731894891781915391577388384850989172265923232889683763609432873927530223939003586933774435348556895471317241947915866979535201947907979636518709835386402643734051754407302573713512432949311950689658023740185986647597356073182540472246957439779001857713172558490902169493826298529996270084132825322126757235481128135316393163520612641222730328629156263556264302645637845767018954173726626275210314611187146926572994787617704811699796276269487244568460085384281412096626995976864971459896235329273896761247532087557601260855679076967671105539831034780393023687308746026000091533446445929883044185795488775464872085630419561751865579356498391938053924821885379453860959619629985382535499006030221891305702132960715988065176725637737119731265066526512862017124857973134064779067712483872834548393396923972245083791440967396319484853861989218003918323420427995065464238197283105769740164301375423275031136241971364150308452475809260024974577299495356251761043107231007190013791000262642020788665487968993066126200456073216368603070144446233797567966867007359068786828079076539843940548954695390015984199790417334531854411979807900731104547330484485219255199410927028041731994749767201981460649247545433784085292175131544036504723533061892000959108240406390841041585457534708767297394496609162574586276958235735731872808438185421503235896608336690182340098116017041683444799427508492528659598116051012157254391654323946249477467723017923141940499002984833060711963121541985948753572359420605006411580795291597803114330678750929040336682182569413316694959221049864505885059343044189847810385469538626513867307946864311547632478207149064990923026862748119927389045623301007052573691494839284393196191046318253880735681065767431205903584676306096145212502317936580452992524797819242995887663363514438016021942868493389799023549390133915473872226241941634405122168834238871845953694968313645559938320419461957632270769550824135183629074610168141809561052344616011076994826112913199453139072998019505692405169617191473211129196842821992534784556465761230594444862283474184973178923592384682261117096900775728716245631682345780629370108626454295398372727545709121920811574161540843600887329517373982431540995358107212686843199215530687086556247965902057028860819754094762170327822539656236035897137050534385272155491562096330531003476096143075946871346823110743036269565756442991258275145624000869025625502416580833245023406663109425578900962194886022339655925267963929675273920419705663868885500712728646414663702734144906285381032350703384275096384685756438902817376070157073032231694474502924652002418574787460586277080195588728030921830202394661404005665049793874762954926199357964010389989404632405614934410437726177258010126200768324502915070495754688060479836782177481662406273727255321739363161903360575141238413363882946096505129202196642211315361739502888473871371785528562056195515954707667984845873675208791245477442296177423326430737274336028569003133207255388350393049006752532403414355439962152421150714747451860623108184647700356329499309144862968215336925758024237266617263798189604682811168299109163856701314546767628537615931098109032870056005373832914711444093694333949177426831169702467917187818905230579710001642479734333002147511882643326603491003764204790073617467802958369018304291667812758245837760860326441640227272410202488322495692425873441053717885368249033978303322146445504913115816532017948794093415238440352764499269501704212261753257857935899772937276696199897067151491017925642144384294912520446749753086963620475857213471469500236457065812825257848976316600430201621761751725669588592352783971926877777503089707299694591020664295431637210392183404070611966573311056248337456892241010092336855701338757007926115352369650556008290735201565692641089767739089375943924890149990636298166083867805981169841123913726742954075076204201311058940772799720937172677656942189582371106178952776468086300122637205508001684187798405394485271126799979337048121867600019643087860712949352687569328020547531002829173075328916756309134788928800360887792354476834543679844969552737576415723256315913446995865268356310646305873812877489200053939648673263839280738228147807835965610781231775820711042319161726451055015369611634585230127686879549859308236960575498542841463610391331552648231568717221630076214059239115292239305725439394405487795457554345214844647898704676395299596592200209074175417108752025067604857459114171906161207115591559417773893753611203851773439790188229398974905246771480201184680460149851961229126185817851138850591798447229100241620333922186608979534239979352387401565572219614483857744471200724904189030434830340723693860770925480961128108781173956588601739954237944750581356013268913727808018373841528302818414705303686636872558379238477948909146112535126494303933305355276453792119152615580489804740585947942458905437507250732658794285806694655837851617421387346436760632276753556022157682439557204742984335870482623149069403824979387251185312315794514597948004925779176716636970012761209695440615001253231786504545006868730449918118093449518710385106516744325793100986326123078341211053426206744691992990091314432819442450482057599373102143562441246176741646714872753963525284928159754702934937763594410624169110476974079262382018926323469401442986136780295866938633507547947707651591051403401881433957011014311281081545440005628333197548761275212037447549671735685986666414735955944240295208327865311873200876652511419799240335866317756371016650669592917288387012248745372304788325983436391621559988949839105680545774168664509370449395378001533524162498195829320220358848651472105729907455809868298323651335279117690713244835620414289212689326465931911939838064217321739412909729011279806674876555729081918328902133263973033868369925843799200956786343987470075440168726482481009978254289246278511936528249326640565470264853062687133608435162760551924190677465549741199332806164973544374340343727988543099127967467670027984426127221339068430457350658835620430791403995308186158197647160209138155065865561385211550950734397094988151600065132232702107403758034816869289781364869923564173829385535300760280962617867220093770861271103200129325543866932639407575919335823593936356351969182886686872106719114729011480428990973460231520319992588962068423893930311076942026660056116730444891023909204265329245852456021522212783483917804298028199747687933280686622333676557346331229090164238565794569732760848962315261220123657785891540258743328267017999379215217351325217708545718086415662802799298845627006248269982097029817080652297757759366046263621667629701537279004338664126986276121449718512034344969174384891383103514884963679021843288283919027001628143870446676684862704091580130688229831569215969157165822486949252306733973118619665754355097909527260637257857178896580128640487375833073105081593989589784485154386589653523477611559214636808538220728969919582550188261736858526836780807679717974109247509697184328795911748306846941373536117478521084312531624762418698264703755094042199212894846038906332824646688797747779887713652865730603038583221546753024768463053410556938839418298074181854946490542453399567482112287121995190794987299924123989213498531322806281998819264927595940191805386614934341708032252513119525902320038829994118475529394926887980916836336428327762633154755448466605889182395809510267380177463766157843905569674352332775185481848346182895086473105243409445632523846800958868077618895205230385359999742575003919275082814515429978378072177638885025699465247893592384513093390793687203255753708173911015754169721354043404810393035762137953933080803942820369909369363173243991212615075766980263624592827018352585205432050786170567705432168792551306501235557065891002756247303485147318071752226108945147718516891942723166877061340452438423307105696586300121205245995394169570323196910606245440532835153809604698014134839021308323765139045134566228879294629749527963081914695121391008259918995258978188356871971556868597378200070291927368983144264963751853702355019902263626828815354319839795609255380963556433631293984900282531636166891208682424776374438015830914352974401021961935857665373529966382332251472082350463751326245609991002149685117050376953807419178535529613602730214481342217065369555823258109453670291358452073369552668894059774545670226663716067009917217013184528028475135505911942145206766093959738637832601470209005077773844358838537881814474580758038255717990673015458950710979095401501036608804101349137720997348355930495501297355542184917103645078717141812675135223457923275004828600716239854232069016389017446376422815429826096412342984123854197787926660486419975388283587578011930967610746557115895662180080324112188126516360428489013049216938602442880487067580815665764805744403282286371935545322525820396904049752800897877401549821525083778296095215522195288884431949661253014266966991366606512391657921509430451573975084495379635721253670957001161124574259999132256956724749876703529926446563311359419269432376766252333882604543596346793570058794941206355478163958021968329381639992192911739531319383407439271743074116137951102593716210201067573222494158413707529580191335086050807806149473622226010847774497803850024977040203913178834037975025614771734259702344576117159909079761709613907582199677499799474359208714346251577153575109576850247397339626670082606263002883270386998351006206105111545516899384176385025927442691724019138964314977060038164515513425843331590450630926008966625962465787620323830917443386108488872679299375833800965529003736814448035497162865021064825395025297252897272390469442347840455651842282038782221507722267615556764133972382633957003539447070798361993443286497389762966470539808909710871556040579811836928853294840714936362196734120846820705529531471581737651135664521776577908604941708027167797549155485271352287002852318610639851078864752773746262343875250865499524114685204682702964864878791414374270657287459088180568842317007238585447612668072271075443655847924750147193204233962729720066127758162447832682285104777333050724054503042727469813546717648308867479944420522879495097765831315496614103232976928023977715658475652321466579267057848990927706154927805992389855024396391451545941981811060507036215481970758109769527212280672643282192720105674682361450874302181130723089836345387543288614208035827418328740495162092772786891941511920414058557346233665193537646317049717663929575170943246025167362901645243015085741765264602599113223871629623969633096799186978052042954706091882814068894082405387578654161813662634094402538536126492215872193303149165869359764167832094714218043815782789356134601464155855191164577614236717318788470088122031998581962762832124667667450954047996554632144807716350287757241803329956944236256459263643878931849933343565499445511544000526386468737220752373535769689976731135044750606086025644674977216595898234070694378187692532357821773587992811952415138180248149407211012999282193038380880617050157786223413639037337548072209164141146688710573514203311075530317424747127949935736195645244734146129827323506647917688806432029955848048099865637690877081299949458645728962421446889099371087936431831595886587259014604600366179587822647551993023219592573564333723558075340713794896269256372990763231137751090512639754844498688064860910671053646058048287542996640216149616386748003532959351630975854948735978157214801127334076613811555719148479752703968345519020011525135325669745559955196829233233179076892263869984679280469331356144799728514290169036498206223081307953081888850651643462270185345315984916601263429805431597899641389082697765236641250845446323310437597243280598235082470574371636048489749752650576776457785481497200435162125763149688102451966375823805889608991848050191880521936228031634895781315596877149664501988833360732335118003030615249015329034942820458171325411448166424717636946279725179386478889881345584026948307928182472704037199159758670359821711364354476248049612548757213697718115701493701675094801254628074089880893308727442494247763281581623867351860011418624457052132794081715043459061619508587697376598475599638817318037108707765364635953086018538965014817175089736872640134911114764977287376593083646867398535917258186136902402097197583560854951305988887134756663954155898938426785737400252002659652151905500164921207816929075221042219884708114873630647091697319611921774466588771818637316750541872011998616588684136557396301673075122225252901552105037526505743438777292555882812840087584511580133557791651037155697612113468145406420551529564982448832223127538339553442050532408760499138444912028922971080224971873521548622330295928026573540235281412795973110252579017646427338826774961292867800733192675552035477854720189838923458860195775948471333028502840801401398799757252582643377731620613553306525136688425194552492117586077837703399964584427606651073176721411856211526341732095980584484492679809037075814213502260609898091963230661790261518423838413296026629198670392505336566265443612957772518408019399831745112588901318237393867219500952313990652220940571045362871158589573722817498854365933710810992743123930512154860065661241164056870443406212624729258450841454682553922122773972219750925706927871160354240628851046714043778751515967660103208634853744892714406896723222968615719846320703901508161960065703631006723050579693027334024638549478623968012300841660375029744830419368327730534507238218563560920977168267833940587439228548094443340229314611290983410008225953476464076647494317067989153400648067779152505343808964171195064783122630680626281511254969814029556060432362813842695462107493852171281206290296599782371501491214538174232563116335329279537403457405762738832367307464241836357305169298258249976802817367759894148416222658131268705528977363833019787483629718555256398880704082471232539343902741358750596178909348751805433534398083215278515720346503214769222109893079608001191561206919664585028388167635847837577829345548153158872590314796377777191755194609753654356053816622992521280872694931837235056711542401491180290089301223544444272384039193935539849235656917538884268488293832904930552773540421274279612935396015050156172629136862135389059274716962787982060905725775574295424799765431492778229964548003155267501686620114376425995069962172470077536973616631128047844954571125805725727798420351982118193213913246935717391571175581218677608878564466007838653010006750743866504007889567864365310923326072267220255556509641296295733896025398784948092778046629466832982780216961346165426574801604963960247132783550423805366232809801674139318125436304912030913061693220401455441459355024736454622717638592370896351052974520684334970461787111508073458072808363937232665900563616078984715491633168474882660528944762370339874055947203475707883632626487553217435111346181116428430566008840244837509293089963866592613584278099047298361317384586596652260654388151538274642944421846676230995579048620073267554923367572101551739120940395958559795942640388008645864321788681111409939270203892742769270421951676920105520726726961954164292093125697987690969512464098433588916640250661833703171104494467745040813371312282018056673730120207573859969317102659827798002468815792855834908686361157774251618727227847702817807946533656370016682688882949265971338608510052030684068260633064694839841014966838718311439650494857185585812465138823549362400458442122254987888778782601120702997814307692624894298150391280331430965718612236929013781763286147799295082385352356980280785491453077262298019156129032607071287037946608570670289460486161858570571221823364148725914742088978712826223720949760919784202803543679861995257613094426778678642112323246196758157139230049636011268853621040023078737863530183053653941618565055397607405822406367891636961597241372164532558510559248392624732803583084120429129447700091675596178235247085768897760641665450296878585307817026300037298759922121825569727683274528961825203577564060524820747154969126557343801525482127249874862255426482077356489643477240223281848020748201867298360686964662587410971595583531563802413277852395636105188052104833577923227982801989167163996878531747686378756028593111424409059367236404939067094021733037292104439756376214114747674101534591109791113836326961184779838883830535651751813649577715587987002917816277989185071598164529724468954170862512139429331937855679969088718002515463757313880142997077438375342549991812750983241466028612487462515461676342891649235205473936432841799697109560373570658722733109584644086310344618777112952648340058950935941638186340578735608828444804394548079367792305965527320378728197387973240463170090960965721808425195630528642565120375301922728110430736095345064959874770819993118949209941622561966688114852448735004739254404105414339345978904144886559781369675244600184384538624727574943001636908400201341034308088623464709628968165389403722422020057085913031070909427298666294852352855385333766959142026302615653916315227802839395105391785613157521396530526193339672388422709686210166704814703042797803156411287108694423738601035010901305083471570810603395299281787065244192233715663163989744212647237691723088278248098848626132866293878771689560173197870833435399358922675650070285185562408140647701544078933367998807476828376178145209871249346936955244446180350262747120728017860670368030038106055883575048773123259884054801654274872660772381519663009338813641404184259029801187100140944726724315991532030525755209230310012470752423470939614124965835575063530899007996806615383367184722331155369533794098544030263266776654556080057062656734582575599552113186329996812048208880237772499402718873481061524274402268213782038036021147150757125801284562043769747214554125818241981671788622981649453556439473692582949724403618985911475131492133872607178880374194925725269235307213802221650313711753959648397048995819998044738843214911033453821586201099528246622033695856973564070641249433711407935625345078361070716109431298003978950483230725489588108763455275469489141989738617474943148916629224793146786066420432728470723775285376509458919751736829173052438915499246098640893105577603462674929605860549883689121023428279022316153083309838034422405269372890167629980699219660675684442749917103320604532865579152868411685724306903289896289841767069845587020788339995775475013148701291168130473924177819355123264685520809030286221118453528150863281279188523482423112670950265083581459961202576190660711862374020641525099941583985453819493210172613252447621446206116468924817553929481543311236545510844412217929668965937805264556886937327746156922083724615116327518677212079187129367841001370254056038554520406380293942659357439134669134216491354397187350434774869180659639777695061226397269641553502061630088119160236750817558483375472352787047097938091034901402853637956050892297588733936738462064886482626680755019065957448772462989389391160252717779934233411086540793215987050548297593300975067756285567613051874308062439685556472650701333893480964443116981129462051367433052477270774804887040667371995153174970179626217473392240175079828316464836662913489622907863422521585193570264807951918550367355920710781976641573636099322930154005844502422398345528033622615790425254722595305110552797221135351076016920163025084653767251673716141981768098153966552213368075162004996771305982429615261320820915815077256182818723609100034445418168834865803766456129798491930236994008573310614599542170659126456871058271257115515440915588245974498846927398965028760414869913698074977897991857764602025637475174463806754770787591510907862638316464393749830915389428498327614371013535718784969913527167335512088252222627904828757941745338080004941573226565707807123135919317460819037452091531896952300207805189546542514218183140155491897102397371612708354407020639735474831754958592495546167151546385791467163745838531570259307392326137369804195478562333677305048465570487689300295864832562040883990761693442430010872379624887695045468664518321653911353912503188990832729085080646620094716589574824564665997568684369919813699985807463161048905740126052681078663442668272031403634011203506642003699969179059923290452270455556810935600396865757998727718792477195041373340896663700819245097446077607656170684353919097461208063157498535094219740568864384755819852065658492356621844479027280101789874653259455691736149876741822464357359148954525803808156030348464371339047237724527369995171187087886259201687363134461316697397980086789744909600141813975685136116060129005270044219003415055694197889944293632195372483144145161107212821692465342901339803188930564498182830595040934571057445973126568686710488176529377046383353823607513386488434212458532444029613926718899856440285840527221718003984662017909680035362381374518656508012170657958664773781480134769984963557321713710543443113664741509156692016111552869532180361863254801590523587812976545868684935670528992589796036725868765615391091360971479024992736316684431622863343598544933869918401023090631951373726059482236125149169949165271808000057908674219592228939173507161016457393109058871496056240202572103855349946001632586600800819820087952679499510000482307807799390168947797067073969214386221963163856182669470275417623190038358133226853486798936716227390190181931311993939572979795763232007163374522512049654909786293127990413056631697137595154580820026495721368620467618468211717808758329645857259759454477730257518326393699707783437411208155537975915628189374526032123758294531088377509044581167532943640933978044838925643324961190767463079462231337360218620840474498461844523660622171715904306825474131203434800744583977349205880925410484418341478062268086371610442746520747968325021066480707468420423558308043783914006707103555729026830419859104709252816969043551933780731519402406576632292446464606707448210941642644369277702840495851202350371298523648501234300582604054796925795356299564760096886656789335835981567363315609974757249518691927328228617308684403402661553527579289397099106666731244828276890663875141973727540903299348848398879410990698652005535643948494599191133465722484999445125644121415015263563655426262204149610537946576069807555087004681760374085549708058328031224743361313152514697587798504338719393708260917796506001460533947604163075734841326702918585640086352819322819305479313335366506002485799015703527005083061101866513178040906971312484322691025160238283751990931721381387297626478669430427641926234257822162647225527078851311559746948004486983748351311242874544911528102264295564671697922008733741918094465036548321498601393566766373820608446623110217292264082789509887772764582907073612891185509266572968856465620903163832980332498018579512499887735467661630299386575774133622419293597922523339147514887999951902098795489516877860747341726649732373175546461899031084205704025282593276748619312208018897733653471354538042757743223637016889507495783718061334403095989726009706085704969481803271667395476904437634120995277376612724855033198181338852008627111032661166998962818725036208646875576213884781274564159544942917785805960279710830169639435907141136905019888747066523605629342211410141285001303372993527026799970723603587717501984696506986524313590530792853100288191919460556864787264389814574640758536810042052337671053514730334219562141813800628513706541773581581299849789532160517662318839662195109619053498200641680352746499694912593973541516261621021634999480488423832244500969646911729920806399568767410495185087168959816472637139975436183625131460595621296974682677155043587946922156571683449083461090333603210493456145136731800903821678576970852152510212039363279997839912419120182341382334889019174026842954878260306653544195893707721869881122804394420794314590589440101390770314695505897654507894506166032934968025610885977717467449346257261187822205089233980219692572140864600831629967439686899802113482021456043909744581536253357037228671762724894438763260043214147465398217763484111910132459238313552459858351866663297630661672766956136223431748721184387108546250600484077456335526924578706906362509928492594745431012521345087580156525010989319055126566654196824074312765608518026286419813262238516969795856862740611050819725139412366930212083355360894793757779584933301505240442208253048841214561007153279016746206108267667955389210986317265795776708462976132394824003822472781881658470211499944782707009203984073291174174158650841343363079970643263565943982526979493250733997318620902878162142828944607920150074172881626830937449122651364051359268845314779972625048680726957294900575738648153974448415470474234164626314636912481451028881179147230720447676833498719214216458947223786565493338214036506280296682370965049394502791873656579224220734930851424009102876888965879790898363662384842495930069223133376200367429582349813908042817074355393916328671786305113445770530734982348483553037143649905307439115829535613715594407268092495179394018683861101158679197941402002758062025664041401374318853702434238208668900372432425123160438252670801710912890099898809663024031284000415700256733703721275117637435119724208354127664215445269726967374736967062616487433626589519958596664149616532474134171019547332956216634404660857574358911978094604371880902785299693105589782235964135246315724912638265187474499172701449077759905968385860727770541864744944043988941592907656932212835663337437394131249710691878814780824201017858501386592669286547146906336677604168958749486274722213526108379904731744986396402272636288442895416788717222134728686955818687454496409663063424202177864121797081128881802131146195425771088267207524434021329278429979642715379897328199501100292006115960918418165825738601294727680655872339992022402060132834750205923567546769222645135978159325684701488487885859205255714986675831972702069539803719277511693497279940919155861546478149627174617337102486037881332788108282936659925416257598163143666173571485506829614517177066418945347232830958039018637674652790132891121583945873248250817555857878691216443119737256629044928574591616771151259890857023872812431540851810931670365914837193647800391678402226005392929081728833679060819084696218773557653718382046538897962042235132770477347347426435904957406597941076137384369912989814288568515553000488813566145199831935575785139415762593814085641398215375212200079344489883357104999329857590893198292467567921766935197834865971500372027159962110026306931072059904916963934110498018059227948570033905411044860429769809188011359193939946084885624333207831824952043673990308396671776533492695890970838848947979025204713831640407513519912041751495891787040384931380304546422305057782301737367137496063113479135454565896753053970177365943196360714351256250693956610150721692958085826797193053121378236801230818548097645185727550423598908473646639044038884959585278358606754998551070319792741507958862126807541597733496685441056891062830710702245927055969881115820624694778449479469793517430838522082249185496442282514460957393990694188895629274643016445685856979535646591887228133764602915635304262845267127706398917790086743543057352272086689919545971557252071534344087229651898307637688437907755212230350472813001966947303172555178852054060244332470467606988376443695243257335147248161487773812035221051289722318825614181644006205574777051719662661441580823765629876098114021652745998934087951313979924683618518722017779611370285875508737181064467859320544924329953078951598832263616523358596144261220176268772515518329618960628714907316200822451045108438200058580193629890260710690127529857338591139950108394807105099962402445436197981501708199403946160666521182195054293304401815118236273239389869650872028895385216013931147230924461620246228883338959221357277135927197786176006147338615676032076402600093257372950872693326798684326943064598535369007550963288378450066256719601897117008095605064074881305569253317883593526369088860355704943054155283945991156911692159996519724414566921712408618445328015396062303744058174887253831684053615296674154299229717078937157583976384713878888068884457229318097510113428857721634780133519261509393977831441878924267646346801973408385735101044769008494324879516501045099812719582256606025387852778181619612444293062452405864108168564858267663556177359200937340760350453492955261522298771979432556774761306224898597124911885725752322652606397880693391722298081647765118723511855223424620287810876142937156306789542009482206960462507396465899017761333494286288463709797534363850263972658836079496735795413526664223633103075775873555589767900321860571420126969539574731070006231551890349266144794851585749532485106779582661242657466207816781013601176289356552602649895951157476461587761312879316880477913771127420115453366631784314680730777503036217387728861137579388381703924539532340205829847783312430513038844890749381348571201590171331394013092237723765079061585669876190997499695027505637841196419662917913850121393590665773648195736920660368108624746437877515367232336896217226231248126230687490619675067571133014333314687679845220545797859696872048555923290278388713415081742200442907406722439793076427372045002521084532247538767497494271606082074279600989961620495351436317043290981425235240856136389998268615742746671321960116543439383490032526717130939296429247856442872634422868557940389064889955629774765906450522242773714696223960209554437010694949169125477612760860575500207670440766562221218133839557818937775470187603579003090130931408960057530997737704678618281311359471234952537678738386456732588661913465278637780149957052486748552266313957008431029992856469409190920676816941980622237474544767985947320179034046904100259970113672733433013018245610816452692581001674364620188307916673399959015495174066711783209762268598561490253707994842197236017531369922606787221586282461542947200029755107174979181129417679363082014570309427721988958882478844146160334327789064397776973105329028238099507777095840689181596012672026782787004235032438824752197318717847099884400939647145523763455857770868535142557049366030085188537310526127517406622557292440112009701329990694198847532055498201241581576651844464428782318517354366214097602224446939408744084318915166547903556788092625549638388678541675925131330040637648538517268892124839178463074404476732849233387247798906158032493710615635905416313935978350792813927973046553046185653172311213158190061102868143652331443081031792606471315393612455455375566521345871151195569156061945497280812203788209940463860766169805305518667014154175388439747750632943359710146428870814685517126059192595179749237687417725743870832668827546816666330983319363863890692921149433761533128832037211318408731765898171409375408059436580641396861600249900727496547487521371278625236983999684081611264700353502274526809858623453001544469279171188833361865199208705111199644918857250674027281449236409363104613348991028280998066202934879437746699981014976784757949083744487571530903321049225116067215152729483211234332750891210466044250275695744941462750332462328141371455159904922116938494983670342011737186482184820517890231981446936586286432881600051832992068134688657411368374702878842298600790069335780682316998406688734036798640697922161005583472473110464974133602303179753427687610350733799387518403651903109443885892725658390645197148537671602966534961314335225413569877256443556807433957748766045342536370119953185820213908061803841899808103988796602579825537686318155904087942521337089057618231613437234413022196445950128739210173734992538272121706234644094325242426117237924442180850812575614015518460038105826764276267166164138365022245603088040811258518925315798164129264866866523688452591398973664386432555386639042760787537599852487040218406725619983185811314461056373626617606837576044813828890648427450313104179576265066998124142231550186524870343430733601219166073987261216633664735577053240097299158264240307240375524046599623996093351288388485937072778494703629402134955056047218247698439511391689102959906683800717575922060080040936033158825694134066083127530145222943246977491785680171557688510084787922605681403623778193973363502224731328780311369368719872347250695236223388066077125257587668288087002148921766274678750364018963172690694776493069908503824130922573088713904678577756087705242871352517236606076095842507851963977754671768822866559357114162313822177993106958748773916617948341954879571952152815502741424346851618458842317527722787387922149445874584581743302992986315247920187584852965934533065877308635653493697978567146146153856824328164884567559490191420297892794331503481133384213499435600522136150344307659996551103616467070953770596721330432206493295495159200624581783088867573261094998649293130787093014104536006171523080182590980647304778064602205458767559178532042535003455017282261652229945059110989815907129560901894354788625668933511827805124018088139857389945370816359436305997048753315569174752674640443519724946660877549710812285789711837324919222369051576804855267600582826014859094906747300760604517951365212421608330263370901160486892147408758620413630137989113465399779675531535882237445695809347952130253245743813076536648904388907980900440692056912403075891260547479616659177180070686934077244334830750384649986306096705791689472262890657745545404260683560585221754542935939224291203311843526024458207803332808430213711448150397540758589434262017173188754404425481532605011418538462206163181578112260905503023433674667258232468639286741729278280866799533157817279677792086922373209988688277351009594862646007034639176759355374551163704693031985015752994400257286887652527467279214098383717449425090971780455444234692803818918338701416027661637508620946744956502308270959954317251964450462413213985477267820697548083032257665267945903294422041298058008267282037887182137926338786230721207560219622540638352063478694504772522687110815800269292071920161527704075124264901020834144238817403895948112454735971530731197664469520075109834193088469169596240043315879459383656999429719137858948348725353225216106363692094060482480810983445778568736736703586164361708444646804138261891591567976471999837742278735895623526844250961830326813801127712272646132969123182196641413440027183216575947948594144868508458350947741391378123221560712090093608560649168883029953007762766011195288465798929966984202489530570208689596973463536942208873707240812341322769304895704323219091874334691739005339494263945475203981888800704788472338650086507479213478923013930017012997606887148197640711114693016491839085711165893163290363772865226946781154056365391712308920812789818301820679227006584639035021451051356157322282913002979755726007241233443447727990370614307584687553169346774467303923860113282669335222414463515638055703178304316472501795782729975995374164078750783892245384552750679013398040422866552624610554363390056451902545930144630086823708991413705585459395437709147644918858523778285813785666639874722477097071568619848559753051086524506844511986902673103051251795763887005295260319619158007114129288840522802233150397244963741854711912414548695786147050526783368809502972827836399844136798326153879017853707085279750492400232304352965527066704257755007685507149365783986616056873160633255701614477824678202235055215337019227820940674627167793671276759308299993806179072808615337954700010398009332285320615627352886700314662333269321753398284115304493751884021738579028589426556108524518116514152358893656667959089848057182169152068807717209561587917715153579454704572965013834506375317878903051291124692162876901685826957487161948183120466557593060133263571606221754691844447332119894004921688378987702377494155319057102943954512526802580265237653966592833059530838546864666009945127158886884850994822723819302059624797271159776794761832444129864700322695106924742396196818029167916415494637019518367945780365630425183287156061111851989621602746460668928885387939278440435444752385095111160495147862757169396064130272887093896554472336687238779027078019423005333956440410752697206420298809814866611640080518235815221436535082990896593456182009862778632979646638040413511782018769849201114713099425347519603532599406491196369237458274394503534309335657767288937288560264983228343349560320500571432173745097896087121757027208229489872973623590108516476054894241356329812065927140476797709530268365160231603279900801698876827757587957081474905815870425378755570654757087364272440191517209927559479207070141827325175477740597006116416477822634811375380309986455132757307245439120820157990533839205736808877902641637713277424268866573721727681548521184704594415538004818547704821762225322692674327606350891953840947070300638528299493964597117845448364167763724171547594116397694265059255625205432572166153916172683143215807996106714762358833295384599898629719085394792977826610641540874179069654602743282442150978273018775258615786367226845557298217774227848580032709655934238696356813222086054600753990185686413616306298503893767403776210489137516348075869057602171165397025394204514290837116560264169139837150881554397953612738056645750160814060114375682084067446617692713497994459899482833158404560579126489473640318591519052909552914817160502745694129665590422038516351882223811402105447742351521344184352996201589516724869084648343620512729114804519061427773220189452153131382858221265313115786802065783205596076655722209413574986969675650144422212193322616715745309352589905967592048690345168899215243003183845706669239367394207554481783255843412383827022167554519011727087092890697218624463510304478024481096490998620339920460667901726570577828787365280821337705058924264422450503453218411395998417970074837039773369170427440411646784995161672987763768125242452412339580625792761370314082191858397513653544600276721386553304057865543056249785810105213647485305687963606509259753155881215141236856813977057517729804860936484718652532013770310218582107197069857610115834009613005622387900936134142858108988671550712294309264461372742267869584979079974066044105781686842757077303450049901503606345136696821829595524149187105217316180891045412392971600949711101912087076695046335610382350837960891141047858394433045489427279791260127480568430415515594688070146205612347410798972915497854050518141011035893477469888652395476267545749192787715335248358867904664700504498559864038846691016209179701244826717499782976393323689795944194845205661717826604852726142325134637878105086015973106247171885332143395363115735618117219970680127584643224173255592192952906841560853664385233010249030518762649509415888642794994850429171358989174366918035593572200833177554855444660570361490871460048375059471628509398858433322253763048732024375176528654111049224058213568905592788740085163193791635309315126156401693833102158742423450678971915662611106542687912457046840397516835889787832677846221721197685429667514231339558979136099943095432169077821223247479190025552075108978109030021851896821919719003779016774413145357483240229463632863443602277273346593279521891924766833016081521725460298819116342533815977778136365803303389678052249200345296740997295814704373428852930113647786492371181318602536679816616885078941176885323180704519161951110765218786385381143824233395356678506725138727361961582111720916438782625289096806755427432462029081215872788113125130608850629539689312806264736381634970996036816782396690676938095947569575085842800758591599488552023811643592667515242702091188991372380385506040032335535584767731323346631010481013596163881173321959506724907297133592549977557673832709605445653256763256718493451356683257785512755004746289468140619058156152598596463314119011948781052859530757493004936117109277431248731521378223039457814668025457542610452881542265486898702402935748885035660213476648771660374974250092637600903191435901391366894265687267484907979907247761534175099044881040500235084104442075429552823012002734503571597115529967891670648991729951261824505163853412415101393271563151224385191889934288755505446304362151453396018815236506414038017820463911295582591126934982848894299311272694192457709762395962892557888612230240064516225062433441457163106923893350998459507668140876717447072410605343017085222095094856892936881661321341919870394918361391533623804137637080150523184996069370550264589911819370175030690358328560039401267310190342831637163268327337668656118357880327119586728985216735947068484075950136230672492061589659372915435243095536669460223132788886797283530484590015917945701860574624315731696670110780681672174276963613499526025578151891022892655508601076432156837233700463072502422505522331702734519171108049727863600903601687251689670667227633422710331534257719868050545903504027571782390958521715842366325891298307157887462726897420445663061518491372380008114159603131953679209319336377352934784572639933744999333241917228103141110133081272301552719524282132446172497852361335988705573672771976228883486181813168284029375691228970838661047570580441510464672141468322349923625764067449978417674048700618695768836389946781575305526694017146001192128703965263932323044253523888207117279355733620583212819955898332590721993911202270212441234220981656076752545721585872711214960775927768446215463495784894245344477072150990347983400418195985106306419349789818160284316054935199870403092142829425216701370011496265080020023598502180472162383615367503321859882518754319416597529393608437348648199262842639667161648271939973138092989644626916684093138461499498101156921460168131782394493921249452613211726212955595915678065136660897484774008240111087003084206749739131609253471334535859699804087808293656524235138857774190236400387273156567908778341239927439773790041414990769895416388316006194715416665158967014620490112066448143526428727502124542488074297809825608432625982346297032053681122319293594829385285857449450858623249933833673540814909018089523326102298943544438066404377555858783399022018412839430243160999739270497884169702960491901822068887681580201199547416505733933073132632418921241555175189231047060968951706516576330731247824550166078697990956248212008242256270369233591375015779360844577186180601523603144440754635840860568159047025810899527541945369459848297892197007905595845381081159822245478363733176392998592954157980314917671803969144717511231712128836198410432351020188279248410926520321508996620553871145731851801201863769944205734220365087923789953918169849397968068085190319451166090197923219144351707753185370541925981609970053095347698464096211882762433125694869526447630602497809009546940956034080209410697280068728238916377844288386588286838417381446831830662757057521113228736060085444617431580854994851981309495532970678815999579994457855273209120960221652555669712374880285580022115479789351693799591577448801177286137743686102219828048644958290814095772726852365401916093455459504885909731292324775452936738951298804923195550882074575837975448416689891777785070419524915694206771231173745177897000875113068813343904587961374526334883071656369925432576606065799625853141205033130621464983626333873225170497679752934429430124124689581167288650530116537670157804910430063551376197215711296943675447826516769970155544935708290040204856098130200455919012101272547130948626936454515240357602907841817339538262508103595789428790594756677476111457935412033446074387590652780257285760628869647233277103029845251452416252175520612289408340454763969920041693635443396032339776786445191600606100637819049703776105817370154855966693339695761842262371454606328154517529292863113914420216586592204088603308454048805086846824579867766949387190465363719938598078281210568819734306274485330107686016113700518074335271514240962950474585058390476202038068649348135528276507568476753884163747850466279568548817600548380079173955507215281614122650378495935724332421536067153588286308450816673607110910058157060411033341748401397829009397294113753976278687053789860455692926300652134091928085871756761043827156021436648541787311065090190540453095408744938004294530929926791452354564192621382464951589135345172784430803890113361937087078264936466314424135907191110249061349028112149983222680532667835488093512762933588457425421184455136311931236408013240218653359179538072401076355646297678870287872471700580917349222018149062846980580678102512452793791286439801185233147318645038918831944591324543172723434419255907056953560589415822830186717510225840729040587293744086570844130468674346468739429559619693592212582523411731064651337797374759175692770395758035512506946559603005306415539958744033812290947994391832015785290427488364412857679609592359444265820731848294793585782829895964156008703830590401522289192375970016022697378375228920457283251129675294436479650555064635709641571759348180038439400234272070180935202704430471453118623074473442881224945544450431681935365155391023711981144983167718853620902200463368808985571373618706528803763416392148583796690188872789860391407222564647141846022349184169020571546950814794421145008952116640744137253968573715836960329297764430770964581393523341527612186480571980774696103016398327151201652770909128090134932131992412182114255207392664093352936623004606263333847456840516373944720528970833922938594734969430317164575695054916851953609112901486249114082444037811711468837439217933610849682314284363928811659670897027939540789638557685687895287779409926413413583070763930065659665782614517027343258578349311720695283551406643303371068147748326940674206958235165534026663733778766264727534059796524683843836305688397028533487563674069573360399507759913016843221874897256042285394342057253045378589189704167548912030714462609005705597802703113719810343060374831270599408398999233073810330115539412615579463720767350950617259333981725446857968327125578524683742284675070861425949379815155124164315476656229064231293478284295015746497711627777189939985898528124277234012019894819247911318479958411364413008746143062124456560245314427203259994942412919059364289821674601599057335086987809201640245404777358146423069619881538452290508022670048592497766891444208534477102675010960403408860628817598177175397865688658875730816617386111582303191347585931365409938522370558717022584106577645070871792690381431706335062473883499006376805326042600154639722462993920592189722917616225402676858186192296745277407919449710024985817393073418179730624583797591678518278328317679681450205200017917658760618994285956063122737381039629962882992029648447212975088835753621483922009399175466669858424366960516134762858435570023949161486328251947182347184708905730547687784713914740450414652469192453144466554138739005081399260413339046872492896451542714355927130076049422660987614680654308044501150877868257251942038455144619707546955031668010370321814393376905276906502486989095666722203536871809179439937003339119736059794555660202832710581210908639090190308615378570134323747801136827214835312381297026270830883005893739873741114051873134916006193638249023788483795365407629320360445220928540406057789763107649368052165187164631226995404052444004309939633884248939090207481118693055629526444869414801418022560593873500288758493585314192814277326917665029242403060750062006856642081675328205843202873559949414619412182331765130479882432017562211198933372454262641659377120501471291008673814930373065156420886282824061877205671665384940043277514601722877505861480949550019858963571921495725311975293555325912579177392488331923664346846956316970293593402793062381242084311659836559337406946858032179687541368487673807871140306925248813731447089537567346384060197796063330392538783283189903386911115038406336086180644928502513884373354434811593758691534307378074196302090205049511349911470794121192216601167290889073202653865863267674370076054245544191052124967479036270465869798512608317316589078406142210115744725318068659830172707691693739311111374253488749186905251126258283088614008014050662572669421177822932753433205698280750787307268378434136494368253584494444594651682927862144629127735916851005656717181400306187166582536664122798458339902991929948745404765820142967597139291601277497728867837129395221264389304091771695470507944759296823780469933615108551226210525266172437317761136392923703762962747424723661901715150818258484020054529365489732354228259986696003466359469031699644707464547734510405533925362727015634948851600989893823235011171581567334166684688817631860105205029234635408825175844132112745568627097283112168983527108033525277112806153841584099010878040197772245803094007003399133931032491850481570416006455188122185643751392494628568970750233424174322516490736959549856053845280646496936323922934042313228189411798882175255359826167151345246717379144224807783779788585307455362992587349843606534120023581839619759578152195787762114434247990967671468413665598934790058084991176900117474848894784767599404626610142792821437180212751393119073449257657886624736181883460741537979346515826327946565502888950760993302725335645683311309847273486052607049780244464026732218341676508002845278094615775057109971170126502787071985375687443582693549287001275865194856149284292278616296896316342844740198578630866284977186106611241857390443837053914783883868299530208286086702243286373511793281641853737938816853122837606538307587698891818153397767813238840506880697808732751980983748787729744512232328298306235510993139849179989506148298576640084677855134280055708634839850097610908954704893083096236157343864135901944267338252946920119549724528826211263809448377138073492610717266966131889390208931627248477279284416995526946511256873196597142725525311548918764343958071663350512273256559788833543770907184464061371611125366155227648124758871554290276767709880314370740426248155139354861720790489567591908414525146932931694516746759496768407035254052032477877653393883568653099517931826064803896985489043110521211020454138062704912668997627302187537585931683966839102188174513219226086897957349915906945742114515634943765707408198918312256332085055998608654666887879135897727419447286048287532192384617250810521199143901594696494784853655756715580692705075867711200485293778606678642377043988266472375513077045197548630985584569492150953707087192462702522583454860991056219150098765513831010994650776982063177650975859402687021414388608493961066591353280333871430095172041854365696035888369009407255887973455513823405587965211820353211769064663822600336999950518451763586060255783413856722160581333195481814366998453428931393090311841139910637286541091894163338921576265393437834543465619534423746203004646559734907300408228997326238182640286181701422269041124619823908564057851923879134762973717933513079000095080397700940212166828739137459308566304437066596433761931478697766065291816552560895159582957287810617878522518897983407032684179366332077486231273047037132815460113049651140517434189168252360274117958249470142139240851707851812168480953845353857806231890445363410082703446492489945871987883809469699397220206424938142919977382438706651800586067237621818211859525803751307612107822493251765509062612405768472341873901455122918557519389666152600183881274467706644677442441534523065892772902191068990808509976753929674918601629853920337679334993777439365110145894596922538989295336195174866251025248224764691884204896531950837914127249799507521784390110269847205275984433354034748428302721093259945234648777243408564351042937424990130331583801445439016968087423609218457802627635048453030298609897383391309592745967203477343728567896310912161835856846564688616273348386019291142482478259956375754769606248626732044194989921291310008407176162725587257652478111927609210397757080782210723149687311193163684170234971107882680999676104906171810121191732490468927479917351288273554583719429971397084128734265801638384044210604660146176935864191530381333164100150638661224350030870975534554358002662770274019467473632531354788444903447529267488409721121154450442546065402607527801895697776038078321105587614377221617135699626804784082119374189546718805523327145756420216045182003795011104284066247010209227423281912117994388643189931013256401479407067433148165487261546651994376925780587377355432590920961918400520377092407959233810515481305588946835313768581498602345625412090592837335377461338570683518010302812400130358038435361904513422377418698451695742144889913132006865116401413929425621332305779596171543149053049926819202134202351267801592477199346154487715852658988217318656872991303368396513477871522314129734282239435621709702602936025501512444130620483808662077266935133466632135071240406208806203032071850625639759677461006157546095156813746515777490263642610835950625418956197591859956201628764832045732250479973823842822105552755191472088322625121714884562471083198443346694965764218741424613890172480902082764440454548661323329859736935779352859834115088053835597859407466812319350237698743440442077621420957534588912531232446121921908746257767062854840013422342854278396017169969561025287786999448603452177061976799584863227207760060759783302394862169751096837521599451568537634066450284204908170898567060590472681618128886263315034767789262029434534721466497910910063606542811335546871762375848438179315565678907968920475040988258517337024496164892601670284760389519036450621189582461797487299983708997504834600452819880959165404609997416608882721941343492507849173065421460928649921333833757660892377908281127492356250755837365674861410110181897125729643280767744673534795000311508187484678965631201208953425913901418689291653428385185767423196873675435492742386235444487314021906628892506605349093496167311639578787452675410764724588998188766999006250379246649657022955370585443637893003816407128971341472977255375834916347056007697448495743419405973240824155742923246981961711769680089730502608794284958994823829497294589561545590025186010223852119961118900104410589625094346985339246956739980715704900053784011686452024900204073393692795760533881705376339974547182856890547035573341963057600511584166664582156972936946605255812362983859754404237799925218359034003682414897816381700185161202833049896972471246878235594456002614690310585557762173102334108424528942128966313654118653616624492076699281198898900681635303706891618237768275008075499594284311607987747835374724643373521289773776602858414425466760122005969821063165049812298911866542634089019808538828768692773689241971349524534252709922239028419681262585847981442696763872196973679263946900726794335186151108852398858273089581403060588803959474421069349760808771884372493520809614146795746251471748389313459962229945694645110391483017822708399901076210833049860764160912964673545011859015407710496648588721406688022392737209513941125313338238382705007682206583492136465174604745678481114721150267721082661117278531610493139176634396412568094329777734199013026364546735423683783506840268275925715718998993879614027989382958288104179472921356579569937224944042282633233463754938625919852752010027894580440716869909684859287232866104852374489367048969660163560516772222167624187640826427569110055589619968455452656431913882204967999640508037194476555423526379372214538154519947220797724861679174798958525220346084169799806899413688349336616872120376589352218625453335885845164119320775517525557253328055138033512371402073804535082181041063643976224331182220766586935561356147435905738546759359943063409363001487534248767368551700666576358942631028869011198951826696087100468084465801034614352807603389563613278286266247284615719755281568738405110034141543960853760079491255894232535441083585319352946940741116256549779315681098526361481710259412641565033963377500419449932402333996782613820838221881143039401498995579520978894914044014089275156599661569334345168830180080229891964281622384716615369276107638743105879962841156008662151457159337817049198145316093272689371430413775234183029591318747946564624079946971716369043229731557968589502736664996435712839927291078363934882345231948471411241623550293768543758470002025809236465252995854913825054926886997961981750328051491099082193469401551679555484444302274607862422541256855626077908102679169051451199898599584137919666384683255731105629563676434627185625497687415025287394554687488001978813786581383208930474832050442068554065107584767635217233592038178235796278331329067242644103285613151959485107331530741635461981852225737367987663196289781568453440906672704055447288657049712781483026722583255691515154656721882753903707829754387803395238249618718380798904346523238279998091277218146371913674845460609916694993371407767003312665315852524892092843619537921386981797623915564911949737216366971895101353361803098077756723404767472825180329809717733539178514487512492668300657280313335897607301445091045713387932442892351360168776292782755637117282144277756454478519642361819935688914379763231130036178583523222420938896100571877980377150051651039840474815502989262840804331666565095704498621243011130045290036086750300885738700994746357539848095624357189312595464164766286700243116684823026505210408909709048255065205748273178568948247148308400603333496373029357738117175895779578952910904061073472312882538258543799814762896512148658827470258033639451227162681148606997114460723977704216884820898550056174141426933264737692664377832077794076651624529511758659507221600640510721720329543558077007629012450241667732193537139703411993849132760912517130923916067912281666262562068265788089633340654929055283608104302010354276223616759153198518032959414974073153143423419321725566100896501082329233472238594898336816438643748992069327478710715400562765103156028144617163848403961787564623348792628628339787312323884348014479532398043769683633825806058995072106414599597490009034729521033464827748260561829710563266744143253987422021678979450468693275982793404615784985715769016572726963678581912782999824351309827422123050092098672604005939573446897092730811695731174397445971583396609299093425385699133306683151668690509211037172848670726951056669797523674368359827497496419006600995568041652928982761254551263459407155309633131714359327406524269223793602230713630391415351744165669056427140189950268537376545933762124303561669050252598320273161108005797734604312434749486238204924526672798612728320176607172482302149017713128057208236478480707753626056902405509607962365510990347626252029758287155748358118481692560558328535304023107996776967977155729785114889859181528099261188878100656618436012694453183160132886490464225402197621076840982583666506796705385937964304127395746902920669847076728915532533602967427032326335212635470411619286149888222929456428592201581973459705109220567550997985292799421172211972745267694033889314139832580215950006468631967402188898073903004552275902847150744755268081225990939096598626097056247739083849613343298343779609807367277211390225064130619068107974602912437392664491543999932889246237389522681580615333439624066049595127351792513329794087119237657032268473702736660815983026622449880150522368123154267276982253614544073678781184542686764737562208823857053701287692853088891574952256177122921072737612154064276440161404154239067667031612153259598327324018065125264723372919018092587862294585273941985902740226283168282901946490285586295609708391784718244844329383939761225704750587889394875566604151335034364669236975198700153307709792469723664881874517407483231371077188218271170517029672388017292682162508061003059955944724239101480772112016082403550591231417505278332168799170899378450531079336553800868157583869063563139304545555695470407531189417031284431751162306103593768180749861408697193889143714917378210134579749525375357755479643738555909042641195549165950960632961388542352633980707987326162142247488115360638476836221508784563380653388726429665588736749991880158867820811109035185577775687793066829309515704044022988558691180505472052055468656041974407682212315241278447092255889765661819357630722536185960495848932286545062111140250381459789240236225642233538304498136091723370438105947879291770220765861374345063719589581946732601872338874216675321316795242506901892947712716927594955472596374376817751824664608536220552554186165103432727852396704058838926211158772172078345873272887059246526320693190913734990198809584578816787329143449132525542311424772710144670155803967637658590073779730238329178127167457135730207887506005629380990482357953417401868302610093384368527695521772769234236627024542133775500553974823569167901293372333155571117928680042414103100655591360657092834239265740906194096373533999299407839591411871351089192891157199913366447482085214959850110518605191803519118328599690978891859360695076401332745081494466568158417446411371254777414184414015425275529517691465265204389779273225655266230822341405357490272808630480622787574424318541941457855146428688585484701423680889300405992402417398316397255288253557819075533932980052878613341259868140093933201315638978546325553888083688958162781171621238026191017899154662888206151314200967968264341894032567190674139925974429186599832248067409648730633867613699064460521439897477113978229540903049814163601046018235017445986439356532111819030837507625932936489580969208171214652635292319213891673506583107981393920687972013328674348069975088501443321927243338841715602459240956321220458623899355311113881429945886694192013804557756215350444699968221557169693197387782607680935056719968790225474130493883560225663024412593264708665823985644013669012009841508886267657829176259320178260628922776107819121154986070419817815548586476468796295555654492809110756832238555340747615890642465642183404122061875704314928060444274107650871555026069845297674325068177463708472613654823058284655316626192399985445339719201901987081633465218542027433995260429859341808413220814762675986554376987487138171239483707128600675223753185615836862317104025828659107644357726545216583925168683317641079170638244095098714438820542581840662394573862675486787907600578113243681653274923197789991584434379883998283966051067174485075495459686172688375564500987509202770378693493610330023038512036236050858056085955494408886319111100850463639204931544208333600493081150308760402102803733147067153681381844280612439585782924563618637817575923851710788273606592957537605572680222047418913906481733501235273002622315678475279612545993350807065675101163285752568688270452130798992016817257086057485359397757480923288963400727674778341715191171217678627849633666666863438998440318619223539078820364819465660423693683984037680283979993204347556864458060110705402607813079557634971643383971065094948640784336593389510351171152234346409825903580846879666980739518137626233031212923059249638292279707967514487079324482360047384520721702520057005172522396328994102540748841711229385837384309586697957762332462155314867801551403069116422434678901872549239245694601109837929815011920542978276064168363736140926135692143837460466685327990928159928214554590326538546929488900945386845215001971146361451994337850101266066725866710007433459571478589172318873177463835660684021719733494102016091367926759679543782199894358126243272227076791806537498522189157635142360959180748191202586741432689785739500891056094278159964825024246192747124318039600080368788390543623264406844653873471040035598301623207395302036117601345599837464218337621505504101172728326494887981527022065380807146139582935191781731734141740061500569910839594179527927133523556573754921464220062645372446725026379211620218422981848720845814344167355935924007684638977542730749031166595570117824247544555465556879571081182904542826556907706528653298021970660264182717465067076994581660703509032554382974617162770609446806884244969064706318752878856221291934858558306092419307008179028608531352890796700604060420114544207330404124656100882551237512156394007203816342154664112499325408972625792281038844560961203283181729678905669803348672560008658034091619910770800775248160162941110328348121173382399852851276658385865435678959341454793674854757990521100200432365681429015413070891912317406136475969473723359071268959479109701567325157776011179451144521210521611079914947374818077571156571090394223175007868441920739076711904255664886108808842178571246750188097325356851372317619372025268774653003137177643728758826189057070911656312236051275615361541998339647103263535853345142010734437872968819069473334081725366790422522721829946658024266593633872181193062869493718419962272335847635986020569406331081597011072827800676484470156279242593675875403521660728495673362039296913901900163808005606955144605930723229499981615507854504470692078686230010101349677771387330559698306093263088331015175449410258476081021324660418624659086004456688533050517002004966169337470373053553090204050251570710645879430894531870326767876686379887316161082790014376961255037323453577037805699319715100759241096064295961055879771444862252135136634278624062468759106105443959567364761125346949342120958299844770295418232077270551604791898822844698086166032709216687093100392501467367850006903222798169333419066312466296633406875839612917976620747024693548404706211542789429063869294737199568024793472203085783126449923304885644894816390377692474345827116198580452751537590906467407330723352686259570785319705988543375554735584494443142399486978760928922745565926360477388394606697317441758571300835829031884171996198905444199595304053819668295591578630061073934615155834032517933553430073824490314185050341018014011641959222612949419706251736598085012550501576221181375322090292285036378318206254318723460618299743990632226717411425060633906057760538290377829626425592778009181568414856970258619011991274104326529114389500987601746278231675700312350675788434420758556281105364032877769367613823082790528252411076338713878788107061361230551751587319106379136770916531915856715647305725425066772385690062650653692081584516721741718991162918123806840908365354445621005896045183531705736987990465634654652824659644534195881000597503327876616421796388518994866297382475377054941070743475334470991613765437488555481347493818788780967242420990283026251595444181367203819067506358451531312056511792474283184545385896379477383057659465340498768677703388381820374532608385899157975007726250753771118016213352460703800911888662093628196651301601286210333418587248169244664333636468170235226429355654389981218869140077492794232042668419246054641903560779682549581396038263263056059777843611783732189326953908365758745679618861085537016108685343277369041476542657723046580114541125627792158741820636565967144773287653481513154816697586894777783922834415701726718741204240468658553898025915824524069423594990811577192197482802623896702207111018207751947791682592085762414656836474779565838499871340816807888968257337650931514871488331817617342752800938315776708541646087118691717850971217943172990876267881627321158303295366213031533455505442317935450542116712816333514218539616180670849299115409979558865342503348331262434992920421577575147388470562281513677150925733379871583522021316062123780522049329892454379105368086967080626562113127183917378035037726427551339736669907437013427828606939347547627308201478790417261253191998647980378606520426731623472413107782873786075401364341859203619537011611717068512744490350575113569525741928515671590329714596575088662069995086359961193249986405888078441358470835167266391124461506804209941258837643411595157716385358700887610395969898179459123531463587164180436544490923309161658372481130587314353328944690807316425651693211379438864049103294581494538004717557839739627132370291705680411080853529156834079614260768601288954367741274387167338920591276847407182303648998325015074206493794086127346809967148515843348178298616183638271338256301644325867396063820236049691021792446561205280736694589498327736873440712434743813224308723017732764216201338796038110547441083321858603475506334246849539380528413303755028014373500585706183371146094444337516642336786088735769911964152610491342603420054442776501769245676023414585592664366892707742125848395462406697491261661347792203112680761201813195331051361763309078013708220648393155792774021054817112925466732730309931535234926343368957170423354063812571179297089649343287431829608558095247713873713722621928069757040423818753240845214939495388028110616337902371180255896394088415076156371632505258729107930030596058495329087674740228917328029178427039371002787700237344650682779806560733126910729459906917139782433449816567148841765559443949310455439569816207647767786685611935588899644282905005710184695489289694537921934790769099637019137047922516137357095181370901337601684231106519129472606416095191615093745456014717352204719971948582733780407276799603309877555551131395667136785582022622397404417757932172430707869523173973344143349127649936764213913993207145488640924623234153827874268642529102638871937245002367920280296166711438348104624590287342427142663666418593413782717803670249669776806204798265993424765837281323742005168784311442971689868757057590749866056152198331960596967123285713992029850292360906565760674864356014624353504415975309015999190537660627118694831138545887883769885771717350839737374200984018140434238117582279812374827502468580950739602848369898550839445560901264805472187153167137920583697316185998302926184899644209879385216475543319605990444325827626378679852589470252662448815047473456169670860098738512964179759620156066344296730639246539582204370211499086280817436978590061479584953685231248752016377988585078556467566115941962880148699825304920840314342810999548925243704499804969820343195191550678748333828575680773357947285137432486032645473135945907016268623683282676129743259577231625106543692359508353875170608185371314960518498168976542401767576113586826539388039790702923936802506215222267077719067253145571422317444302210978304532579200661685289437228200042905799438901199898475380339644910397235030804287584602691512992481753881979917877126496323159064546169719778793120908128682029213362713617799485560460972925941170032292228096360144989797840232132828642583208822369395046280378706568610790429370236203916419543551329248513323917780203466659316658604461362230613158580778077888491004171936861447154472689601884640400608097217502322362988525407251883519650107230387788509487953045805255438142775018499675119963590442503380221035631073694940687384753822016279280369373513768876917726338305336478795972715723115302170697024131212001907788458919930399836895914795456738955387791308639786414825002263759645162903869516595862488254592755752667951467809425519905949110192394242604078755637360432338708114506160143189242528470789979606186082174004896867118095637966353603105133246159812378081453224829792069018103136928005255907340885267478129552950343206629571356156411440096347310491599135793137648953968843777387393217502027543875990893826601970159386923028331029997036859477149907705540271625603656892847993249057502631518990001266456453026343209843057610114854286708554300264952921964930761545820771844158062880263217695287410998117863000362409152405729705655289718757343046555903051248774014691149246505804618702316220151199112438825485885502997757415841547464470864353489672707624917967900409197442720575174682113086764349081495047599320615029484494988326970027089953244995908282032446311106678102900250378802139842826307462832371834168131758644145685824856868853651519773696015405784340974561112512978885935361956740743387049523665381701421008827392930939246723542154860258275133324099571005210823011110841074494972866252478407262969572597257894521793892341317941212427311494679346347199344690808814769128768178482824683075860092266688948129168443198409223186494768092451299652891467131475418057481399055591745270599392723835263376761960314271988991504528082918008871802557420026355531461943610865007898260467877276051259593652570858268996230546925626574760376167114793210721263577193605302853126288109368790758504255440375503234836324781557533100672493460133685740067003837769459056208428917795574943357939965749568276159081133739850036520506457418329250160018759975093830004581873183503785512609013488318704167041679314574828133655876579842263069599416097749711273856734880479892944970054048448595250645855741698634836645565427699375348557330088668517605016060521625799189302033813098069878537055900292876626197374508049590607872244184381286734871909070730299478217921246295654985784705392072890968869404871619313158108704202053258056667767996220556613020700995694739782873569752036357681690207370224304590775511237678903259965702228109862954182889516794100647955127988738798890910747758073074766003634306690520599208593281730849658171618467575932276747339668788765315014128847782807536962029900512934231075273705680611170645923979450773928146656021228156088532166747372941609724404854490306850775652273825574587257786240796030355521945890444317513493970135910848954503680396999057156520256745508804738129204404590364545249067923426846488557736799801233363299142636598183509320898331458891633498742673940185682714279212651769347845259087800284948728676785277352797711408755047687467822588613674922898749824959992687057217518321738028350899653419404483711821579346826735585316812376908975706549298554485052426132594239204864916104261503793754162088013431757585466137072958853590419361592547113569169137992479446349679442433506748378564522252633944636405606983803356118017767491145441973812783341060369163708454305354609823902588540658885026833302391153499254138156973880826145477845761902356398846159855828492090866139393468519001634219661352480056570499580967982830957469186003907865410402884361267379604064136912507405623828364196891524155212259253959846716992956121211613362386483968802766969454551357587420450912638683047955982848359217118909065044764825313575953438016510097751883289408903750060406185276886517237989258489951118015596377167407679494054958047176443418818889314171748920282927650764143955577633992032038360154027022547168736623339544703297406747782655075907485889092165841778981046371951929514566129620410848799934522809951668354094198500014174037012926234888409244649658127780303477415352991228017559156333566917252618820339378867682151458064073973238771981604516465878598589969566716212075761129164814128549777610376038795723515906915423906166773551972150447023168170366509290618954916294275134240703880940344888865895303445525543073287572379536785211979618066181266623950517152280534104461898925412739733150262778589155158106872452278265867290718666469598867593751962460718002319779747538468424995213753302651391296476074516716103751963390087211537262849368197622054159902944824806749481101181545622966477060954373730543618399798315642540298133857038033173424458460050662236398252972141581625646137277294677851965145533270213049669470741974200117034949730791446207762420930140497696358207384011340783161771322945117802920359579753374487152226010336314309511675794871456974133972911625959189718037053984500007050032536323869307290031029959832922976483912554715032019899517364418485107074086256497025945062537512395774414379464491833346040602644997494047591447321470571539472318332105302118973643103916112528468732365726515530846140049989061003131871573522503166558102296227618727424036529376506605294792979253978062146487615498354968129742417255703342611117990940546231384579210492532438838607616523306240730481290785422400124749962253930481450448271903756698455111847369057482339989681620920921380069772595381117226322492402890856613765798465328737418369666468794697300198800660311930463426336444559647312445614364988734791384153897229018662376072627770825349312828661585477894429530403557200009780050697660803503002286069228927473689088020951591455024589143538929128138728719960024133923862513540101467317092270665556809415188060448154569516790103949160930103544284633504397998602806617342200176445892905782842826627752363561328697713052768111881079258835156789429306297481617797155596327781401538773922523300625943586279047977486646048714587404295144426962841441726307295731412770263576277632790023505532259351618942342670401181345219694721857619063067015836545983229218937327845416270516207635745785339861260181759630662949591291080107976943000883924166093416560925858137379375352834583326919136905638718374435967271137419783398352713760071566917874501812672644363138869487726004499938060740248488888233334649554828944777737862297919732720238314821758684879095294326208443212825438433806032641681684499381613879063967005059941808226020647466145707697405539459459829452838067537513515400450507498487620536315586613744982588190241123096648683135581202644807458853997507570225538407043405907405377478199648209691526581694112372779531636899197285317294997478809514720868951277114598519456761743064092092012016960949718454805503048659777994433494127577192754145048014591011161773820226389394795398759339915353451563327325971820196490735690035768199263626859640530697116521570974697392879909475788558431725955857120325500542216754783920588617883617688977413747891566646621685615654718065520925003203757458828302059964145590946279005016880788055679047273057294178954968813859043324394757097704973677520321078256734040147862254293533494725831246015700224751116418560099927332311855003297542935004024921695093641967391276561944793216018711128523871090499968394052065444999761742886779878075087611861295390063052793053821647262222968973571268941440509205985668005938704115777536219546120806789505288494855336697209206308329785725756390226933072250253515674331558511395859693585002213071400891418190133044255835956967132451523950302822355721030654977381722327026487849432541352635236747920209783317994264092050569349180530906228900096455079297070675771344349700456109063205179825599717069681468030334145481773848976660640447003523428341732549280344470029523390234157425071840617796495940033001243243934189041512841801380727864226307379788237091153942682450274169012945491772665573181405894051791362905740194822838356608856578208312307614850820124120092235542138438723517687275153333488660093027092891928322887199733272835599000282917039168804864642867493108319348886244453551717663938256542215883723147598629279319344156971651532450223388480298514170231643696022343887204092529372369399225966863179736390038565528012417913656136751918316394092251173934816379748038439147604792501903070909718904524166427406355389902921491613085409067601491806707250799009367783538881620510723429395288759778968601916432084181949421362338385372364421939820991267507070028758503597295605938976165281285688024483341006188932968450850564337849577866036773195647911349191541881894814544440589530664860628144885804126711787485009293547678137063643101903444754477789163113252735394553108915929394628513044174759775016474666076258892017591386719103793964680811290367164571739993082271595240175338985432611575784292686916791492510167871490732899394159970495282657085395623355347608067413901410112405777164680858376916799570782749545358954562070671874948892968687192704527936787094180952410920027244466023054766194371622539243759859004974395155089080108266101156227626436141354435501442373217521008120597185131064241967327778086077598610344003038914744363117387454576726198940258375901730566594854867765503860157122639048228016545665081205168296969352908751661988243441457651346115271405114634655771267112836452701847167859315636700539607374946599181065868348465741128894910665918009791063792933262032220019622033146874184094075595926120547668313506391880784053372759122259609789269375557793263419504144233621139616048022051000890079071565608201823951027537548592071951969692171886229295787272489362978395011644244472675792125747893172115610515905564662237435518878631754060929156372111615909906132446421391815772653646305910514800227936141305368636394258911342883598516157585638293612229411676081318646206560693215226238938170870303494756695334984134475577682256796320218291552991168560663629664642276260698097081299646157930052140936193292624157883397040530170006208186810905028712901336984177974643048191621065601692869101289273661020266729356587369573204078768917810356268423880666076604302869615518065826109387142137195344806509856284323941986100919960080098643269404478831010260667520407186291660728300396459094420601713684511182834006394436960414052935927858244704722364689928883854886156881505394754091186097838783389290081780053958280319374358810344599950997446755805362846568205020815620828114997590731187883975142446694621751141651265059678006335674873704684319181350440887257259004997302883467518725221738716762403041304261544899217934366006562740149198340312295646230745831200015772099425438223412971094614992720145798767498193566354002879332429413595023534329404816476517995604608322135768108676552445353021843184198864184217848858989692811990730268802731317259330515011118611612496111026881677980184343531007340959296552474863047577428811208543974159236444642408829706012641858203073396850945456804342450244628874227004583517773212282869147161842558881091768539760452104029197814781304017465163415577777552001194827328023586437532421061292865003776971127727311111711843143480235757545052578988023448836337798659092099935386145133433217604448918582444846135734113120402276816222759982863681761550034504216818475112017782950476285213389422616589393990196581201154596273337203020870697714929726601236017474305462693050219936287455389024090921772090079804026127816348557348875476444613518230210739801926946588346923342987114895296700662343525254538170952722734013209183849073824259420346850539316711953683052109439051955300879044774947395178412385143740753840539637334310775891708551492861750118383397934962667314972192963265556425401126121611984547698253252337392117999345421060579668613758398211600897086172913569403170884908834509283020639698427913831457707967953037303923523067948421717283633254962428934511496978915440913935817647454439863989572730002590053664847440207829306884663081690676415178305325837080424773457417211364769173047851839450539333056660932399970827347178319700299403600759567591993211178534886560251103592981373790003255110847903354496535304792287977680135149339908555209148768352965977495342969307642957908883048177220916664062463182569372276127712231781465364828839257814860450702027963144810663428016222444783521265815670179866393577828886609839251554198547585999119990319823141763037702022657973919349196494138778356695397421044711862722591851305927018109268741055140694340662232840423211843955734212750527748107854758422971708276971402071161810772487068521379673847536175653655364623005274178928409433869587150346258574074007207276275217557136506784111948701434235469886964349153059909753726633806018139695181527151347312682570706580588407431080686679175704032746412020225494362174344177734996841665422110785761020169850595827649160542635646295983904812857077141600287419500146827826198979780811917544098258252420983232627341803538702142209940777619383402850016440713501997480265206257035438943885771741520086302806765393769990842651792101610301422346760179312875498714619795208140786298735628049278523743495127479268024329220692384755872246256634687787316645000815116268384669979205143845511668106942652538945291473268505699648495316124666339197599262153918847614341953385531929600943199189080377608882914034732389470927789300470186632517380804691142050342451370154354648036900138275792376135868959865389694938116124458002548943861509429056650275093290414094077639108446983856006312880268633300339242773949286129047123907835655814226840467116628499427082211971163421747381761735358063859599931153921507892013333492542896808334829609005368902183776401258552533884024578291627090714799610707777889682856415618411326269666805693160422251874776195223046436982645380661118022630939163260307921784863107151698687558146876633633503837125070588651679329874236562115830237664348954622395010657753483424498073825368800929451667467585568177782000507352396956871035119425056648939149568021341865666378508201630174010717187920681898953969606241392985120898401183137118919005475585552220094473829511946713515463566444054345210945824123056807506061638937917047241757655313348698079739471547995254194226201185456410636741328234067858500125525025105466600660917575513325167228264425114688379140599150689052201895888409709536002234776971370729106785238733438724469189142858786391428079576372565276524572257328442141663507906791148289701575080548547759358699113749126610061515255645862636181730683078604852648118266667045057129046233404915966728723162529532704354399159796740326002035659123021644868795592987749600410768968038742285863826528991665310331073817778947195748660420675568632662378005652713092442057646264339800943000521041617733598019390464387934011207071083967655135755154859633500554310489382533494505951796040909424852739923586600022175619050258791135953655507806219277648675183381482065705109279439798663324358720809113675870081571837219491571583750910303797129186370699968897741846357382184108791902011661072853901803037950387949677035574548880840110371696284953586808102051688503052751463426744378446336829103214325913720855058750314710516602222538165329695154305698228821623971784038672384505789316814500686328110375335593651129521278545240214908883348504314713950888526316296125609920856664038649686854020559995468031761074222849300388275157829048174126830021238789933366444499220098523468152254553681960353547645292742111458189377318599798340327644328027988911295967703180638017377123170625450977535880782768853183639677469071287333206583220802819765554116107079107970070085242452361252560829570500507397899645326845936867495857481092330455314933987472578425416580092911327268843721526313716716833771629155043082720180933000979777806210526824181484527578594775575983572603626916623286665697217240182408126839261965800420492662717586863275897014108105776330876605555947724465575775837182504186054317547155111092251050779090462724918264131673450570916626494670842541511871396635500760139606515968402855747978951207286900293895851510622186105367303894087140026773210968780380421643818128209950042621188790459321336062636930391085647191386895146884495165450784458476351134979753116974369959287976695769785952124954294284633361376237582828686509169736593881396079915629343784092946335579778571926825167124881092619716700449392219480538228000030066688166513865534081713509487539394722957287415785844327046390664230536230446908444469124028271918098734536612651267712540053572457997928213988716864646859439067064248003343086544177588097676339625314308399628533354224697431164700254303212336260880327795254695941243699932174606454637358044558524937726488767841901591077006209054924602814613538201059960181514509336989769307774229102313351650382430815356216616829076643575310965956593244513048955674213154542477876639841113816764902408899637026833915912454401571606107328982176698102376069372826434961339148015652828988327206307938309349520558671672455016667206090532336395784955687983807760756126144050076935956704924884740654756872501936500324030666555517436391300816778012125969196384041842420703235647496412711402115962294254087860344934031062740295185208586044199591884597248944624100958736201702220655169878354088511019188635279836650091245527390376881462930038082384172127854398274751930550965740554416278952623527742252797518241737401909873216609883100166667421233367709667491913673327649235161069557910493244977124020916695190982432997398835103307526286357038091408377363896429488747283075474815114616637450239844563898625082256227304058808903815561712248996695157192871457098474363079749239608259392340791845136512304750931296603537368957829004028396844920167775497947633815567409537556941678531359629256470880236153614152955836961637163427834587965203662825597436424391263682883241835267164765076602386561943629318376755580085833632081572476992750623213967543594578548465534364010977303095822276470897696394713139493900424412360745801169515950999189036662966579479972036276271787510152973800831477329949107634681097771422994148905768732033121025156839931227437067767459514265308423776644598552585488021679835093124926890871562894030588492173586552796203145534583296663357608373256266308906484269531761010840151411609412872720168213018175900279053824252729059923281994397642514692356335737659202816745332764601411191916147979787537120356545551936341505413739699428370124494673913208676048476987955769766435188228806996826397674851192960740580727047614479912224962153768210519818690782080942941956940667011697276275965765123151513939743449677602946211582695953459662187084083454849758727987051844218693979347061872619060807577003598729311338252003116977511208410339913816579287279346674587395331492464906181175336138957538518401746087159926551051071365916761523952108041749142815488463099966732019518393702998837589243188862765198992970018337909744428146292186198335973704202738870376949196676874317927188755888426963351599669793987322660880414923545891824170820417990600102516520132814402394430871150551718478408799195444565809416191733561741045552377946864207714582777393566382170076175583589851823526997412620230433175293547230631071992577289780361355837813643726348089689402257576794852051804384888180569865471519146336237144705943516079152745193125194559009076677321564015441063853698813117892386893182622629469939738432173451454608240875442356169065763832364185989075435412812141058434751703175284083816276955714096290027923121267488453372319740102577284225885272141866029092077204595771783545622909412732394846738349071658626611811669641489731695062313277676687899916724938765362804246466141578487126769415834415052283252739862276940158542325730327618277958882420989228019777395703148834835882448061911349088987352792995660250470474908758704713488849289476532232547795561520246755569264971848483209139946360570488398283178696630840037396378793081462866890120417131982041727144863318479447599448770410146195071720218492494942729578201810453314822721505717231635891874801273356737321929356679118516504065836419009168316712009522009450880604592705708590707696799515180423229377019517937681833202074165508213152186259785916227163372605258619211296881898930054012510218285421929278454001082487074039620847775175035985818507851204219891073612788504173935744551521973205668001746375960100260695285614477161100501354187343067998081435287651675549367286219612421187932379070804895359279578338996846860913730519492556239429198132228251598342291091342180542228082147823868990908034312693965398475957579664781205377737970682221356944130822649711169579045863256645399303582976522775534837822381971689809664604166255297670992102764312192198624685387656857123341261852132154458487355238822209571068311046421184784573883186230145006979512040837647014099786726779314473214059441095178053380891889400110160583374165584891316974826184954167286718685430478364821305890612496303237905248650628129281616167430021332488835678273714369469983692746094120189857689102044318058107997780273217219516781946429988894101785856650299514078622708308903129465812912402396748626753303944335195661601971754998189231967387911874024937690699511967593308003684207678316234215807579127612645103669246146251258026369087117814458450106046426450929778865528620260751678192120220075598162617272387533453082196224929689449532035224618949216985092330281446843126056216204970215526353725204797337985469561802606620972526097543845578204968040209402528665339172964338105374917757135975910379875229985382158738672058922902505282672337110818838535339738312269571923562099733572331601153676461344455055614614184191090785402694187349693023487352369997463210707864971372421570760540936957999306748927266510523540495680803908223511960875530023294727592876932926176001514179576115582795813984917998604927958080223328732206841815213131793412791271156251715274088130756239112624536309007528935135869145137042567879747090823086180556886977072476653328954754065064028093349331948186213188940140493905642969843461768415431860865268072559802234316392588952298164112920060311464104480751183728168707098936820228608301014423687751236260693850983008311173018904119332068142471243046914046361874625857323899449271411134552111635782196041685495067672571933002122221902921475277958858270858313586222046240991168866030210100094684535855615996445629024069714893374360220716489224982475911331030030991086883608568148314913267976856448452109875115096827217144450588430977876641575679628431207621484701149206936634178960585750305249214491840747284519001998495975003423519388047020639375366529584694545913139122630737781224412699282676168757392048236359413365971598839628420344676040316918788274074794559372933511375744552622368251729342569356940991436902437769492595173695827348931410104241672472183701894390594588256577432873274237970496705907650710622405096644408735307921445789406814227386578172533639634103069030325301490385108942993987684126934949754100153912433992066968728401563217159121751519851857804047745528684749745154424511963760797425036774539107098451454572305790246193217061869017188315453281724178427212506274761157835330444131837867247737423016131793233648854070642697545832031245325080401507235784703773958243331838874343904766170966412255243306027159088173427473222560397933825465612218376154857070988149099553497825667597934865397171560276243182445079344053241351788168037559127452791112483459944175491136372368970072094344882150289062652229472193844526604788814644430337777553556113459154694111734067337971013606993649118216662528533972176418514887019399014074291387362106174852135822113362149984367207954852444463538849556793621114066785975351358716346542266703190462966775358265916604324046373987922517575427558670598457812008968119728468869362390823872956538172276409998165503246453709596931870725346440986774362906287819694186992150846061551991284446756602111726437905693306628095181784768910479774937095968302028623831917385242157583957132614953853505159884594787552034928656988245834475659708299943604034708312878205733347426814766925698432642080272460472263102036725037921838952816090117932951074982260768584315785107258431663118381389358400294398433780652142924812353989154718136373726380636356520209763641035973139820681902695855548628730801988026979505750663554988902979130267403495449144603873927028085245226500454421500747793966251604129231299007713147141082731180995927326633366839233584258526999296033108989778658601811868767126079847299383012234948415329578088598685087368758610752898640661714204187676627042753044521144156716149338263618970738355562209014738799457655033013576815094437254313221324843733299264608296563659090109729827249852323865650093225112641161499857404916984862788777600916430969616482668917744787368959566316239743005161048251898235790581212033260199670829363035629421791825352035164273082055668132260053175751354726714971462396104495946400211306249229854860079075909044660714184122177437215543963591254076864527943320492359239167376440161339116664614316690089070413578095453613106455808659304479318389073301764166868324591245596704899388722876431125456585015892288874444244166823837013285151771849544651673726490474487357670413153181469067267468161946959756694885700662937333496590153517705752289254701128853943297959567735166502680037419504394158681638873968436374226869643817026939210335434365476599837756702950732700861304057052801587900408463346229800688889076656202921730560674728763768045551482971118786490013951434696356206204350796138530480212076273729266843457526347447584109038039977329311495465131559343942402819674346288480848300044923223638851766571295872955057081333181098697127726228810037562295289349177315794942085483861935177484382599731381647361330911014034826345625839678843356257585982704942538261879057246866597538635108955246025238152812930056233241281991302061073086367653113806590881437758880174289227333041008615394592401825575637880228522620497272173806211893420798506133987281358052258308607995355365838121946649731385710613916120969398970204957272591269419298615176019506941250754424598882677938461374627336199806073730896247490508788938660181378835325931128455760189418524957850262812064576369531273785056310710898901728946106824568961635315955428878457115585734270367377069876290045127253469211859339188500060629192079679690302158141042931956031065644262648845298642236243122541584923391901537822077375972096772569866633467933271788347309752142757013552422759282827508317253541208467410257678570233736295101718080624288253572219055600303867926135245631198107778028806846950506620438515099176077404203474637517358620426554161311781596369377128156586440368658616990362121613799510828870840493335151019438530240075834883947003385304328828573493696943909904019209631415659358768242837602285880462654473931316855361731721014050482276676345547852632395402164941624125362847499046182035401957742750420461031145051008661071388906767973850279200536475523339094998769128195524892860190126594802946887299264776397380200203945355621783864095356172789101495813907956059261557376966007897589321500867946970115521038046108588882040653899150530584601140520424757842487327102939740469506380402595109242994692638539768129126106641398503244919659362104059150927620061570363853966377077911029140537547781923541784846991249369228403456554621919623001401572227188492035588806497273209448275091530598470540974012542664079969229645991878988368332463420148269826820564960476678371300618152207990580258820689025658726482882250527745340506065792693384141345885117298631219691093498838713154383074498907056208566506200096065516674923956714033893822276661224616127086692112094358595964140296192390917097545887579255939702991724910521120327259620816758472993863581833423488867845238447613303579030828590834324722746574870595866426210960689208891755385248009722332902140332806732984514179528545121518457913945929692260868315155537766299560372533673632775668446654222566357732637218607953973229770720725360461289318235853903649244761229351447546946771378145518963344491335791463781746454787188909928105051531843030229335241861693827934029170017799249383925612596583737249314990471158015649682118492738374626305349921959501698147281979041369510543164688436879798489761903905942032845283284728188748939007748909309507569536428642847095717278568214914411716348780051857424971349168302366999211238113016350728095799897321826511004917197652148099566825687504616743157725315292981757379573905873732171738086499371730963159676210335017429175041483030250324388196111186824036429157129609634411167874781235216143432192261508848617449376147067237272360202988670276580052591124857903868519296964578724028219900141948127421009109543933688895205108483788111082006965163321630307063623447515608255239685683919156904907620491047940069350673907605256740047996897037984604926627656177929026174034397115563018015975045815267931115835023637874507186444570415008964424867448066122407412328650866470742893036483523447327005917577071861354413495008858119810642380905228930645447368680967676382287073234858968263992888873370812810521708783566402108776577830896741662962778001963334472889757982306478850486032528012256917809235788983552671327602005090961376907817552017064443309462387856431390182594227228529790840950038992803606466085864839516818776724688001216915141759369527579534255816755749836769090052489963313050711563197256592119011270966078093226132442822979653910447893817094545602889430247745461392090196336799026608958376941838596042386918992071431665567067394131701935152097177629430548571479597314100765368663761959634893597243892830801493362874970866809701374496196663059547222824973136879884496022616267413817962898776611930825590937289157536157878932930723721283396414478395316557862690925378549884493761252713265129529631455203158416284264794002265959346118330720723828902841210218218981132634837942310572218668844157043397308116491938811076884013078470108932509919695075577125558111510243778162097451104582571584817022139449326741425182565828130456586943642644963202710856001991765996620553872214402186388946702198076220651013503541782320835802985306242960246220574042607382931120417585012090561992956062363887177638514657080537088844008435254589476419964592580484118083897039113301025297835684983685375910971236692089279655770526909118136711794021383128959890999941045028303365566155574633094744878250546725924032413632424415395477632443927403977904288284528871165701575799243968677119937140783877594338297748989644547093857317525853599071722333194774669203207921757089247093403898459341143125366161555381756182215230586059353610585518374984034981503532125186525652539768782133442912837925310844456997289130052583917130501973488895713786746333807990127001135642754669165701113699508325530103570644983681469633065609156392086201988928910957388173761304384800665197051036079136460717013809889224583338821014547425719751583378000306113757688432941683477659666003103162678532141817230209953181720887128431961629908131666395508888337451791665415774992926144862685288992171334741700183859820454404668485477677409885864424064408963064488732896620686861897783996392139171185178938851398457416771995277018914452338765194634963209849244521476764926459250156876577038666110337680070736279484538163938744013435268260387171958828716490320954392950690878429860419885678008094919398026129616530931645918857649971294161715379274780735539339750331379107607020158139822024130259650915916614557442596748979991219382086412098819695971965779098007980312456089581488513078927988036196598029816921058155775588530309401688521720550048990292084766016390484197522876458352839138648822737079753226202976245273463737162806956961974843850815784310379673123882120750639488498119526020368951300182999592538000434792284891907623484610138993858508134844857555793106686126950331396445263930140380834036375078043574881168104371150207173214360893605715995393717078577093925251668598641386241938479733711543563751873264589711373757475802389260950306355870294226391169141940404132570759328674772691737564514658209452655909191414955603792598737655475507905528230631390373430312876372126169593166297850624515910306951181810615505259962377581420563478811524397102941914965564218065663352941053001906840044188138248191133284397394099751109246391627957247265580599703777032412458714398878726449328517738070543070987617579910680718748355526387570427046258668043018313258753199733070657207082541419668629441502723469837200312155539015253095574565170662143539981558600447442347152516195942562362485463587111975464063297960404950585435188223909324438779825602245937575118482045253328681106729207980946886688879141249525447724863069204527199230227579886935836901148015931169752638175259557170421947989306385568109848553949239208923827845158217322175196699152854260401204304887254892787424593005866551252766024618139297852895495457693911502282664655326081252034167253912496318165958880928973055996303819659020169498416458881414325093704806478758699228089775491415864248706252060012666717842510212817488572672733850824328889230264242960060986598753978376764088111174373549367448600512316663467433025315153552902576338624664375683223597235056952868522044306566504454945146076526591256953097265528762933280427880736077775150077325021606551257538514046185023504022018228600953352876918847828700397944003378749377085377651638856818193017408833432948699042136996604935686855153219140453434049885431414819558221718472012619899497339699639496642325609536695160425533771454446134281343991145677263502853288156758925843101298545625597707140723282075145590777222799377824563571800159406172183262990897340331551397873787504446015260090588782188740745131015277198000411490144867425774293329074822256408235523878850286257436594850975648573450104360559999596074260490666485876209725533146734514479565569617020522076795677550436065395855613847303198082714025941981084909725648576963163273834063975806904324330205045847503164090584759711364882257197749940886759604509061682559906397935018304746163586566501614344320315630037326879282703795701912565193753736934065201275300357525412482090906047699946980645009697017447855076085643114172500237736084983317800225188043059216531477049643583296835252068467559125724405850448238559134612431504660203820360015012683478999823581674321008869739842594921040662816968264714967765131648557201111699861980454565361291558884610149994139933941706817356563760265610690110857645122147998728879320199760830425604346076763014377570508982241918519842993973031687274931882613429881987633229256928834181813544319051183616902529103835089524899806938960227316330093937682072299185490872872926703192863361868514617525003331279180233316603493505950299641965211328887165521835152060630682636786020197001872150861774880637056854204897089718899217319171142685915477443181720128061514293286718087114169156951902967829626456893024564003818939446298941074665064433723996992676179399147760510360902243454302909080276226900442417340384580644924614038293057411632085797844598099625588606209874577337761278258963680136911401301327577898352466454314928400947665313379727050744068927079887319170984287098539409330529040902859145965234588500367157774804484149529790348503443316797400334651303076771967606584485454061288684355457412534671269919224485931496038410314302979790702997218957469019693277242664862421488395733048743773754710657654548313107663300534513780873697904483120950618280528309373145180938290756678741531025749398783269921842698113913983504715317894068322830656540851134967004967488739940593429674664494522864085624983509917442656237064530360706766901505347429232554902310812059449728802490275989635202694302378714133848228699746416315793866510826276935674688101379659289000979916478138725241828001754196116331375499270258156427594373277400507024137737574336732207722057167591397085090393454648263962602244308563439138646959698210138162922947405777701069196781689730539822604752560203822278816995132420409575605788056665360619487864807990765818168536617497693233864248345241547361879437052389079634224540163326653109138922140667378883600099124867823330114055696193407430471454157649333477534364658822667092262728915960942409642678763944611716541692431775570247405532755042934610220215221425675158898418323465445281452366046126548635796512571306840262325940691749647395185917066981239590135356677980459435934162458115546571903587314598206816746414043874367240782303227807442132084683663785738711650465259351693926093440810273839177268546497072025146870021492575978354933171209757468321541164588078495011832363648734931736214033580541422893897888682153574755283409957969265820770196593985813915861976752213272812335125680295888696299482335536149621975653831464413634331494120795575519372011305690316393434200385387382062788023951108892307456928387292027236592509791717253856922937265557687625659179800309117939892668510792479871618020378527322005656030228662902709806918297750120215602651102365778221881368692828488045204821007663533296961590137586325199876771990306983875735244815437892545365071726402361653419072801586640170740468780998779070297497404391368095939820569865706064856136799585165749413744591226451990098083135419722350785620455608206538634417060998595321599706973161994437166071530187056219954545423717664972742270559195728680654366989687200686316847135093158329159343215784102493747033979661465795292614948294936562543318906581720016502042818241252226582511840230051581991466760005235285879406038266555615250170226403426406895885026458210618481124117734254072587860724675580265433457307454743328729426561083267551653283176214128923276348285882269412706218724651848467145238383880142162611894191978378221702080351151806586880745939797214908449926772072916234943660098330627503890154585323347953998916302187849237153582928820707093188628857248620082664397670768056866053844719271024817008114057978369780927314995692005979432292119217833406972940231226013068564576923046137012051346416602827417665687027054107989232308053079928066924255738896518846038322081696518303294067690913062551769932726711760079661874029805581149729519800408023345168427777257899020500146397080413475537971030411902896035874280372400713962420026452877093849114322131571034421579137241285024462386734955441460551431802598466021696216004189716032012138739680797166493574330004783474341006354575168787169428542267995028928977856385102335672902834506596870541874168180034434114661367962392478365998877054248965078174904655354105127635597253387501749355974475977342900122800678819978672711011659096831837453579857963962159664813482948545633246907795869496355156455014429841877208411589274411838662870113061423405171191314862085288913962421246252205415946621853746115315969215705332638438658735862332745350949113131799863757473828589073883907943746398098188070981412861768425719432196492767518062527482560369300466942153798653052833877948682765768802554069964124199468506436881526935855082848422222554310606350062298330638487063578192107851540764370708207529047237578367012318931426961710440327191418200670579715942813119678885742778846767250435888023866379055984903539685509561409449539059977115579986857880638481736582205424235467904354495377124591851407125241926735553061771581148114204743426929314077181879708060201580150186848613336202108943025992408094257687305302355517431584950809300604528046946562091145107845627653272830053809539491837838421070463774528271272291708174990119204076263514847923398232547314226286652884271271627697644447376664393648359006289259897822581087987904713325601661908053419069106731525791781678011810824596015762830650381098717169367109055651322420436064757348621033466655660554123251720822761365091149684438883353497322463099796029948045625037532069991495733360941716481461030264001508700090168694182983980581502306195333267799424798028734347434471885211930141313661402331103687593131815329871874274142841609368953705181010097006592455430014477966283494268018022532467649347111385405301276072559899309837350760860466711435078080782069735946082361306903680512724220647537609630050914135115063808664248071650147226974808851635231753368288145292242165319051358238423735704034078855711010722378023557528850436240160237934411848386398225800110670752344627694471624328199952433371598198215126144035234090349676184701898229899706557705623375885190917111215138028256260819974653939132310266943789889903623874988692194280077016133103548360583227740658834320168321754435976806576947809958778274798911125646562320772353195212693376107471539431119799581220677998006601533734459219216816290678534409195508134015187878887283136749427878510492228289442464835256672093250067993402078263564526447853883402005703545705747663618893779244146326884378091021571825693405065224448731962753011468661634900253615385864158335899917434363756020497499166616200546444483693222101886122493762945852124922996135921997202823595578655834632971239813370465690283132997272128189362809860108249904090218241200351167843918629691261173327406440490861371806135887092554719353549378800274873935828708518466614748934421663646849979890309430040583362419160100146837209121417815766213104564133210466104634300732882416768985715115063134806479871908691005244452592533962866973436333571368358684655176362868752721841084413776214935655370850953201095012685631950206006481127129908907277181511611677689509991407960229484587253948937334858957275461707428149557627745300382716025731567288733387739315458787013125969922410905988831117550804086503188994337632167784106182486675194031864219009098715192957480841242005114553968570964823568239031935018633873016212169712813099049799505954200938420287102720283262524130851080966235046671392271411225958562477633422086933470102648087094787612757248308386654578184278380126344581392937525209243284934122543854871116509970930443583257901164950609668139164475642471617560618605803094304264751185419761309878612004460128404720587844563583206761969951926610835230585422811193215042665029923169932775628308259112077018869186244535302874959456411450203529263982443230920194908210097489310026700139931608318621721729302713077484082268799631453603683258278829204862800891889677566686218727539643036983916224007369934451382381409935190075335460577924569621737456087176552927198523378716848474252983632387531913876872351966387871310906845287244922894553448279076527733003832827669736827639395403593717073677411439183742127268652565304265882103865604007830357656356265937131147697283344116439504297773218828587669433860536833185833027435978563242426294713581541323638104889080136572142098415272984807739483684489310088301007148844066883219961426351074247987323624538285519108047086710784390672347495421360256255410646932252974854191651743908715690290422100244591989516660099697711375837689792183480100085410487889650659581373310308156348357183373957750347724292379352620940378277258576134544867044157256182633325758551673020139577345599560518237995943967180292775897366820586146659862157967779138699431127778395812718289744549890960829692436539581579382901710074508376081767855853930350496656149687226531206820220136078440491990703791813677731885678661981039742463450228868770683920573021049319902150486274039122202198186253397920807663156368386277746061929960187300310061630554695962931712193134663986685868267336036599401859581165503549350305211148028445180744167104046221676747356311073423500622089113925185628417909429142353924748279570542323539650202671098628842549266079466986309605629463382146216631808113827080166776251199181599274013759551072631482028321904763316148079212080593171934419447656922702063506710136569228088668957137385088948874820593084391636551125406101449116477614586323587026362409872339286123531969510014289304862892590314658160755380848190993110505423800601964199271730737421007014709236632268363495816873904527094288899165957768723159004795845350297559967890203309361534681315464454140066717250419810080488912640349427816484142445980312393610800325503431179342813988016272218803523648314633184000961607452847515491242793654769734730082756585224666574811115445204773996739347034095183169391700065650866286482602271471722692263580648593973858419869324544583006698636152271405616106615692227721677383778556059611234436261904722613995900123394770051874598025018988876465871436723815124937518060048576724163840654437012237903777765016985050347135238855262826063885718523033020474216939714772672267275711096769692157619122687152590456102660058351935103979209231842625757669628239722648870990309279484530579806575732946462843530459719379272273308311197443213871238629808244303560345577632157735301094304828216444303971225498732574032318267542844789956917074024187132637187044924177718774803354451183723939761675222112132532651592600312369828953199448549474588597831719700527161819600863390962939093470392423361656222148336462903875634908649412772924744878581585245757790253060796503305974882050486196816397996740631247012645120721929169874085690792037749852226110656789066066504771137513683100144170487331816970975610037222200724765829917022808018402448224476727416318301042480858217681262368489038138099612766066694918021597769373652644711930183126542521588997205779671488199403945381392215846984646090340788555409538354885553692558213535397827037837861949186124351717095325295503731220973798481018986561894083164235491260754622185693249276008965730529667343734387132784656816857324764959078937748869230191866295403021796392045304546063837757920518771690774472999040764586662281819353826790972759785640977367954464301183321665349830805747427163261491032391996479472601208137598092553662540556461910127276095619342730775882864022620378697491078462170853459303743861744158396711443338240448446210472520997669201179024690484627264306050876347582083417791806290672490669479149559741834726297018262316283587410901684076355143769663877297802251413740251550884495252898260944040562990007622074543804017157453892906343145821657464352476438076990535455500965087603720149714011925320881632751022883911173272581341285980597008221546084351815973775008422934917251984370879315715317986116061669910219308716738799862604419999670411493834465237567037384234847403641218539409128953933476454854188428165079058232422007630459191993416518690808287422539295581521231676356024718368643626951939904617205071501505902689271404369495975703608161235590086760563065183680664028728044254477177112572361219743544694865768631850856555604108538978235225070598774265166051782267375140102982160767548916871988153933181752546102163938668106195452018936771728343420952055558099481961969286807487439598712457098193542532910833101952598128170740999889654563328196325023751780581592473590061820806147545559938238356488592843567332984079546902712563506077293682236356401619522954039843775296114307783227689053142580477533365989757970840054408773797125017843226155425990532159603183272804401064382383567186758796548085788353529749040831840396240012882231694921856869116364037889432562805301804157762316022546295180809774609994091198336298077605233404343576971401599330136615460307853601412253234789241355943137278527149567471518529722304803142130701836422612568779043805693597870000007655994828738165130250895104196214910559780276396514626378523085248212170331291820190026459150073032550630597229573048068542446086167250152319526702562102934737057489151416005285456998904841881837200125610316316682924888438157121649854544496607577731068657411946949952011132390583625227040442951019999399423219757879771766876992561459629451921942219734505735884198872012286287744420109734018496941491567785525511323983202968548329672023216372775109095177991456968610068123353944790092529342410715694851586611689155112234250156234570080911707514985077643968194554552460443331068944774603559320822745349978020710846798162700469383454691125418273622793701534041510571922544852471246063295928915265829402079052235314589369312965526114203596054963682977592899692590771566261494598572564528170782378592456993792912962395292411751162827931335298344803789544209593216898696674655732207255171265490888424455603128150149565334218996096157847262712568669202931805267661956046599121613546779134780068589693698936498917082110724009352733192105352680810132886355919984897298341912680251644372198897418318569247803897946950836211173078702106035963297167833626697449653250861438070380117170832686734084899315570673138658744984530635381436018204041986006315636633579541458472659623542143734549181452520241632068849610196486350758942490204877297447101713004723358002707800404810285561485783973193026781712588814975217045986111251027862048859986079814661827208193822363049394453358816291718938847891943730590500348394983036324906133799498229584247867601675724691168863465527234685884282154563793866593161607435299166504226611383382718932514487158638682267678078115665431502378208779491229331658521400762918833313743885448887145466536079773973770602233336886419587284912674245345172191302736984357362036648907240346306623242548038516536017590559858028148407610999652845598344857229321500483992333053984350541612045320406883080463141987893684324085655476136157585181585760329114298328965315174466293524349080607467141701710081170054197619769562206992614144970668325239921223117980494950581254588606401914635889787350242472368019501718134118181537439151397667986176952319865493500613603138379149857679008863303439087175895881602710446330580266173374748981030262756090221167598038261935518953270088177541257518177324113156652259612027665488536005557410906660318567352280049658051509516872904310461439159564622226197657789890031319343469353589230116834375290079196860282143968604378503390873790153460336631725018187105641941540203541283674885395166251143143275047009205952382129864209160380818436290860566971544009798830414997231177227144381366654825926003488420403689928170035689575712285467799397945790173780501224831397865721366372307871104492011583963734308612597053162513533395563362944482494770456282514952382012920581027942643195257619513442688250243695950292694951743743007141902581220804571132780837430011252894176907266518549306997796050754216407261396980658592557006266076545122359352814235099033395645503734879587543634790068975343082798326510551371991751138658262244835784195375015492620573092551628419007910355012157049067758468795718399115552934409637387021663622473765513470574274856173081232653787584880434353954764730208016913114642639917696687188898540320177643102046778389728588655863077399392102620819969048369372448061998713067001778700194100706790734968062631839883815998546442461202817275507202073029943046075207890131488289656453963486485228316594899167060928336631702319665317741107598645708382862138132391564179871593032162965937587642168078370062428249100757176874129126303415639506928926304708053652176034304560053517107194870886928416994692824023065410360978646534720888184245409647482056432947951468816863258023383423384912570430159352171707528349734667433830410307098842074776567099683258797979869872722912556231574840087130757162996947577549404570784250425280124634215516553734822765134369079716851491463043262464959322036247486608341651020650668651877563890157638326428270280186657270274831823699763608830405538152302232226850177580989918979174994227656710983354855303486634280805844311218688421399949491680618372877596949457593534881306875057152273282244035609645878774678978109114489279968732153383522390427401877640459130810199193411652356607693592977704772328631989310146804853074704343085182210792578516716178383412894227383369711191903685885225783655255515150886924556522847070975767178260399508763620282360815711289965800022066590205675430631087625821458648746842055072839307454067554171119741049707519925048916623510730824066634546326688106967342293848401792149528518414730132501107920453324889754431455322027027156414062006596196725657645174707285175989156602316029981240949293303455273982163210994509305634937293102289895705658200825514634793568288137428524343567019684667457953491358534771359776187838651390165401845645924104943122791449177530354681783602438324569880581442321215082145206602950917498741139674352798883964942028873900769662975181514449584503706152388466265082222866583294446736803400367429815653401195564722051359786533617699718018724448053919968446390187779470276367583755242415335145922846441262377382101915543648024836653404228558023850940467127807648143316101051555483203107568407231372322721190628394339139210463984944067891684647664608744092089510561843494279808059489235911987860555958745508876750070678755947628989536559984663406225031937805658141461509613882032112540859331349048629478420314187376256266560500033604007643896913505736173024017233652412459999325698743007699398095891634992442874635078259445722755251511268254278830656297099083613152063466165863536964017408575381279524907609581865785469921125600355095326150092412834813962136260180049825856771791361910229195168521453791158716417301917336961313427804637363075483676747533955093535904238871651095703878714038195744299636136321964487589365934969446213531015744414607817534354524303942629283144453998995570144029336963325936882522314500262139320910642331310969420981783271943405700807273378021119246176326636357338929584363116061823798080943009459615272526218691341136597720935616334105065552062142081400354108532042651436180536892920522874677739847749531045405212662532654493990418690423362022054597313032440968676608266588760007972760490332206635061745435676730176709308129996298714753278824245843702899085871131656084029401247553522781614390703255852790799626570532958942642292298349068516007548153402324582141451043063283715742584578514957676457213836245182435933926587079107528346624659678327561762533881034548292071166252449509496620727103194366419264652950167089513453619494468594424907060138411195964697064646662021041674162326550889430166131095753056528928104352422132211094199868149377228822353806876924210032535466489994028826261094112088393323970691373202503720648556011241036647136642590528618086066698782378015339743916782478302847946159287745644933014567671351673336834033265467712192452804249332162498006604373396409469131888880583852643811868315525784243482200322623468579838395247898526798908888521065741198286236907426135595562909083130534838213515906371590856017043258323798189296761047981043754042718700417981638424069386442833132267597082573003677441398093502463956640461860191902028234373476163249144576203205932077439160335145476966597613152167722865423279884934889061528327817491655378858388202016767290500395706982152112009120478461092347084259719876758310266077489254391186455031864057896450217582988397707898913763189859786710304560132324134393611887391409205414043512287908773337067346740483360546594328366379041539422297827020855899264443672602373174882374482229117393106924120771762157286274095256320503719547318628885218331795974482463551137180476368571166129853647934164903065615898954236603737360042363514744154997123297482687520431475028326243492840665885112843315962354446224683119685210261201722493792085995790174909078609761287995425994136391917766697558123713107208562399882684177311623512711713973365119179688923064622128844219675218843864681283584924703383935896473103395250916523439123076808964949343593328519304947810632087423276596649376036596358622283156192576171838729751558299249184533295585067711384836402422263226182112365174760082219993952420994531601271142602629763023599894445295709174075193482879060005274588615151183792690115184046839336025483284351504026909990649830746063971630670858844620524299046680593511485288860170987740948217865719321024997547624421645111560724671481218793141285793593497336441853280415619629257879604923468272744279383212860009875921746810943192522611798582132298374493426897679824466933608629590861618437390902555469156815151123100719995072003648983720300060098574481535996644605432244025471464474456726572324060892808666798472813611767252440062791899573142168771827516670377562000873225091552694707285359289463847492237381160894511629200440178691599648527786558118666904629292726872006585354238525767152784219710704613925553801967710312286103751520777011004935352951537970921421076894729816426154171413419966787386764686616078849834323555128301628190038946922303588418901137696713866465066322581438122815980301676072573745101075927511961111683337686271791092661767128892914792522004992628882488995540974623767838317692651139628569265733739861306250018044236244859315743027836111668637356083520193553477610609764925675102907981272660149183151184130895811362277146156961086587901824992782207555004303768921599924342191371656566336848074101889329793154533252045454822049229015165413389539043219114071713406282717147369197992264643553777257661432020857762251510629020184225183913453978352410662996748087824663214284805286292865386542573300957581769859993770854847623447925625419586912574891606816813990999079945924782916026804522167225487121665567032811232994698124807628240633815753841194356156574354568380438748666536436674857834766834376877614077488087364817483648843690020950891576501574388508277737516540261185700749758374717710382904519574010398531918237997867695060897620678931744914658833791173925836016546420117080398596982510859801227737900654816679960909503012951083654093588238218254856201254874881523076951769075099212882874763958733261783772760592629804033849023992068349710009965678903085046103846319687735114303484823009171208520343750425100043614344392680473642366067469184963075475500100208401153026703076964365098573590946165472208040123178660494699317550680558043224461560709496310725987381434687596067606486425568845958165154949514099223846159505051855842457986543043117687361653616494437923015244279149158948214882822225487169089249236926921897321818271471460651461704212057536341367035664873570332180518530760195927616590669587786683819618361159991419296653260506650895003260460430499878895785751401441275658494528351301892459034285093104461510639632659549403733235167403980195032266025519729409640117192859627335927560574378251821733298242316731153971805527252977950501949048761625796862514810414997173533372964131744607963565746858518161823821214039816976650989397845994028692767927739049076774516745000077566642576004322031926244261761582391483627826596306923517428446736409287357564429162361720361082716358958519482295667434605776206113797290219302195135736498862606434178372379652359707243260958403267163717855262384061721220344615436365573557937906605610210680033040251340924823404397467064571040825782370590821729271683850165575532513896852269281653812004854235826774076301282161094312945672970939183276827276755508720417425328215032305069452421901568606324088141953469042817723400448313325122010079697936008059433685376641307716694546430184329098774262688372591193433040872915243175257726736303368938965779044489603906918410509252561576112136692737588853903030589525812844532171311023555645910526171904642074979185300182466255295958556302130941298951179436933330523462699495889654946946510925678270747951853870399487180351840670517048971772756472170474460285966873380414204888660211016599100092313694603618713321008371433048316267332381809012893760596956143686790610828020549163144838906057054419962496475833115618778228859953670255883451004956098084375424399773685299581764663957404973160513114370505240407188698684675207841386687433559239542498833358163015602110785609366614774353460778129758013843512554349981034316787828365695126182085129546186057775546738305586799356388526907369417947017438764850755643062154600347273926028854931035946632767585387795845525592428189647235886737546681154725466281456351211172475998786334739454350455288828797412561136938029345426286110952123423060092062820533604513665073550743094138674992603844677131221700927053832779268800767444169868986304434447185950337360774302998626155393941448741447308594951887635936155808473747425457584430989516870246039362328693915627654588152594820680682165057999549045525202612549564791322117040959652003359713225488439959312668672890664220343550994040209296738042054320161673542031354514410320968097325471988120740572913160553180354406169325505708587856822969722450860895769536449770035097585796647594520255443498412965367925533683341040666042021292854179317079260588063917905563051270992801874828696877007421940598710306262357023939104392882152090456467565438376853514224015099576236912432116148797281282466709128573711072095136034315914938259154350236887529823938728702193374684552681938604417052023413601823396436133050437730102040201986561189164310612656381941285769637718805200950283611106092308568481103316147813421719379335734161677775664862660701343787108744529801783387589497726916563946891584262323172946941874411332668890190851862999738645693636860081736398650927982582255314248513160300358500179905579355955020119479497684074636226842212412783653109157434452135587485375843328530679174328654747152668225081535548692385525062381791311746183212489772962610769552089425352741496848155008638669839302396487587660417456367347316264356407040416762153790782400446355998325539458342152669659143108963398613189262790279284057406109128696760067983351069679886268407272438923138900503873690174955369453078457783927032954361812621054564047927226213605935288406055405736808880231811706168044436432373756726134234584958138431456034944499560961242756077997310793915343019979298776339548891173217284602949791219322499483727959657223996920441925887265120581321449274429345073074086170145554099161376896883169175524035323050481477156539811285732785024646855691876592686016751732058600001706341946324010317452846200884313440384193790399105218447378822393382279454267307830897883806011693784006236785437776109210640563864461845894451896100231260089109371030938565437559180800835692498493466020003488180280318826544566209283806413131775454212908206637434481846043026258054479936927741114145197401994077111761920529657672644420436471280485891048456948224816703385284538076308897130969912349532042078263796737824154782231525798117699482130795253157466887312069827763128173199465160340911980261936329892092036372008822248055561148216205733211845615696624829207883891133472699892300752228526008246136169231048553154945983293431171352274495954233547154101136509467998304754359487404936923754369441405639757837950404016035587799339442106375151270784677410416410691723907618318027768276244316446222606316411072269911240674293227088846548274191313486474596223926930505459378708283378191297976436969113399625035085084016330970507802837302614525207546761222256144907699582495130442301810299999300048911352835574645603032750828017455336927389952436705767262588097147008015449820467992675639495284678094777016202532936985010057729163619312118286150657809283119239361018332001671719151427935239834883918725446776981309371852861445213439178102104887528943238283695579370060856254742004077473794950893511235175841156953360728382421434499263468565075204526071197032273157461210320127878501113584799463542359870348684216361148436971533456054513941004270872356221762453782977823334506308991529830962567738183095246635718922860665596327367845613925109261817310286798276387497297075007006781235245063381597002201951535090224308567192205703770453261395245720958546601863818395293310038708303268058054444490260995445151420425194410152600480143729437841754991230287550720740110854432746299319032156254524993371131270897555071446340123204651347332143544909198193288093744316824830404818080281361103755640931754587264344937915721929848408459109353160547683290708435718816875403584303248070845402923122193831622435463077548936756523136821669488631310931601403333753560044126006963129399552750859482938605386054296844453415036674706895603304490640038037211371863745989293656108776231537955815083885003600452071539906720730902953648382984680626531160496007115500414488441644228966857611593810879090605719551819937945087185855924552552268175512974497113607965984157294811255675643209915410917839793706808769994368528974356848458466701165254479932070568437325730545248959086931822738305080260597710405093297602569068607673817126650072650896546865074239231352857668714437518352490939212185999930680496385847809277431551926962274569114521589025573034084445326967367153507738839335739921628717811989755179718471683421902583908659580927727694467183753676974126898267421518196620087442187142155274487069669334765203447510761004576131845852594136482990200075931926897530959326132439066607120289264216475740051556480493194424833822469656170433132694629651593833627814587500216249232927826495982909174429584893785787921847086038175448977579034317939622159299135624074043975324951179629842468278306003993151631228334143765879788670273203881026733425815546190806839772365199200744517615830395158753132675436233890769388471679931250754232569964472612618406300203927086901959095381038252143856579959666556047348027373911899582143644966649888820975402610553458202508910835190752466808613944590121087639408383603476727262869819964940796556928633080879996112235827558485643029407052645876747369525923318815426698673913654086479482171823059730446952192892101289895807240058520429032514021575445559739444178737493234603522892211064658757259004525983676059419198011020276717547286852315228265292144256294631679269373216022889201256654809441781853232029902438077757477224585355410992819317300906352555325184305228378877242901577391003317758771815831225763517703398426046992475771122886962882666095095190277776560413388542274453860790309649215516019721075416237852393103120187292479483918138426099905039184386668399671233194041958178694775129902920386063746128912196047334243938234155894203693869361195233793119736007490629126159427992571859979581559870507841061528356128581023361342398559833639283295122050434154311633137589215607578286688769918050944061209297342275319921502935647055834385261128952768838934799343615331443028951741596253293707084341575855734562086759513181903476861513213381255243147470182766398860728525229172292580147477376270215122712755536147447159627778040105952183098693467152605630458339140993198315096572956606899867702601438543153438371273457759983914716359873028592851596568107290586561800450727210894214393211333114304164846351933189397777624719276079731271386733202167416593852069309903069338840621609527682241371887494455134004277950643580971939743377880311422256127879610334988187044704744192612760999001239996028738978190135102497860914191788274223370777286166299661941913954068923227453692491734018473757722520398957129448055301934246336848545405359228702626952026332265606399524646283381966355605276521972302927943192847412702293547303238754467856998864200793483937913269227431809367577952152760931287017871476903240070339541286299630050581193002242417031227354610018687975945569211413384738349741647692197356930078745470919339757423396618801399083855014911256799066605128404346162575303039649967159308444824213807427009691011577444990307584708300025438414395151282104489680524340952882951695268332986607211734889991629026007175986468063094820051338089481550410828486580748234249010403832394660305345140501590776064898138380686962115952843602022267283413360074141425475365739269046178687654820791359015523311450639223797588372223974087563049981847787744766226336998459001323901253309832939683040371805209554600096073485382874983798956170675992498371475213745773618338969109833706346085166018577876219756061063179512664561334214638647396632100789452309912049259534940169197882871822296905713483001805547801553419542438350073043452679401134992427607250913954792057440876932093203290821530749198729855262807862025983927128814934355789636785878816278738042841738062650962745170900426955720901367159326473113645578301754541937983336040752669859227628568710826752078381999243956966755353888898686006653327539136037380571525411568877733114837772499428488147818129355007814132973335957216607121048912339124532768357226368422264005434963865988389743065306753767604189790309912736337677085793275925891720376117817823860317373544748638158970164785050403623619500335353081455844396677582044464296799296885554287353602193988231331387898778678603763957793746361341057981044111149411815445059067977551095878653437506297822160438614667230512045929333733867607603505181498804345447194190982277522237198880998272761776915946731958429927858054141064482633703587867458184951909511083831928281785851611008304930798640029661133795690143679405302749310813617133668538411457590526445925061113376235053934714778628524893677362588123188604126721882126791400277834282673453250109344530772586873899647187363735926708996506974394465932737062161254477230297180203612172600631916327173243342814961908009703784243143807859059945884236416597973811590956905616631119039638864285393182339202512009013565154883778098306084613968295028613003607390148374338105665785783519191595374520287325950644232205916830561113357655281158549352672050748059235364108480479343430850783030730488751994973239255607067505988477599584765432331234006573701906807590966660041681566434816321398051492765472086526743786046470496046520664479471946226208607645934195827443962974879753706635364801336127437593560030023191264990716926987974086950464603981854327972501922340681024676515670450800649117655452558360548262091973834344586417053732067076518876900946171630094217170108871297501592279829918822792510805255421643626042185980538846375802407992295913707804760447904417548179794025552905621466711226614443249038760412895497796899050723730719198964805205628786536428435327646107619576459215378640751370636000774651401592452224870264397467443512835306466153251158913427271026128161075640021252132016491576381026240569473720096637317121737926268966981240401448569595637124582912388416826256116956993640931537468793117819995926625850277901457433636225297554343344934986523753083124596075805846265520128177068512474965040490036255639960615663926616443790955710802508827663212676396770580460591537682022961979441161536845770197301212879148639559645206038782196233014889867174308040689496428206668543699443711631350294646632678922891658822435239011680943880422178149289815856501233251757331492284186159216553760845471093607385264220264983053786855488691895890492585645249153715719878838729867832679431643817149937192472473302347613879804441891470110003233786196680501810627608437648008016723189833103150202668208628326821113307231077409893929427792221716413317225192442761037621140840577287555285127036929156506401032440374611051872006186803559367191039364584489636497381003861976712890386905371441593219313543846007337940578844364456487809745098960282145257080911651217440963792163476080062809451342439630284510042652957814955232255271400508195938808321866765101775782947139513769460706018105631593937410225230760456414186358893729790027162434045808286738398395123481914465262137191681732687466471198958925794052125255202272169356677605283862074372889009149098374141415229822931308445378663182463478601512184500604696561474940790644440742720358312912043988755809847422265571208311307976139673579085765798505784916231307850560144508699573733715348888891046818350433864435204882250120861764645079079439110962638967072225353255947222134466639385405336048220451400433343206306232129826305262609423728730028638022207411318223327298132196098872963038120260693516635550314321119728584756527194154943401640265957195170349546682661177980511566170619103311870590312763912532345582807303536782922784351098934838414656492589025584366403325578246688209411880319222957800282363090048626989304933470960454948645251194882229180775137993972836313927730575669124645160398254709598513589724293487431631850698735942051379731431869490257917614794714195507355947738783573352940087412574133692324118011354228415195188846415372970168541826278252703710412827603499034808998832096028466310685567939204156292896185365694588471265281481749448486594722655619157658755435185216254011907446730583321445368214411629126877634706670703520615094779658639981287687616063331721896946781616578606921246645879184628085407366337503864251934384372738548415438771589376828223297246096858622562526747823488010749013240031923175938550116975575351025078653850372302841614822262904465623810261569303521957378710400868835594106246523993305990962202181957627244286446104340069424741342418082567742459950289866912893269487374079348230649469432985675315800059007953640796042779150302584318621640901679149565669521357669897956424987817491963304620932524800040872836594029604995528727935470642666398530945082858594737774501216135567948406304910573836797725719299262840515129805420108730067433613528684020858448103711040442225101325098560487087191196710569450370577064916399315420433621178781942620875775560734410303843267003932859320502487200683915760622879946961406444846981257694239891579692605386989601405430297400287103863259148453467773540003197470929876875572101522107470607605823058080583206641087483394239490969164003013056968282653188147262026556426619313376731537234289333749579145961862213452658267306683057946660843560710368265533620838086203173735255141460444218341453985799639536665331306596222036082983432307094495663530550138684157279045618569509733460452788587338590819433180004428549338123627970058086671239939443334450887560711670290912961892185234884308919925069248949735895446639707709273183313311679194133680715666362766253914318967866963331098283113880311882644297282728930770136155009281512984843911299304803901971387386726678575680143850097555861138478637939054212627584857940927489644572251625719015182204673590179237792154915053626641812429148141237101622857338520432327043945321893120993913588578420240445805007651223112591837543319388227265426212574849261767148342098253509282298771034940215476794676051078960518792117885758000783246603137148277205328847094645378447731895541812701205890897398343964250848943751378515546206836942835272089773352565714641196570187850168153942805706672016008892008195983176383208259061594028721676515110727579944766602587980113125724763883502502431807070325629779264854336820540080287646601119188307393082610232663303270061584099020071835203579214802654447563429600688261382859775545471807849748858049764421463382393535755541002682950370493023265693617107531163333274216351184573286688089942889517517247744379837847801858203967438093052371762597323269374184278595325373905977111824612078192141143086765575047824256387702673913708830767895336058085066219368048494745971265599113700371119420454048315180722343742709326254835176829182078516539867451470761220092656034549646925291273111765835301535588932566638591016545667665669281607183050931544877720873826446084300263255761574908240772709360761578608362503158693292873776649237275166409802233398737255986700118760519594579777703949559836641455186634127930486611046012126484065414858293034975389898137230943572462486866543240877585188957260048823121163225107325333603716246222386334685499013543290321892358644909977986232975584024136715347046439406369102768253454414112371155950367560209443215887835812151986707150149759166831656752709303990350238083748022462016596063048724999662971437461718593717285928939569573108506900083393406954233260518883380747061075156206724343821323072722180401203888713175294550213350895151910901291342440736220660973891622026335911204781370969961656210735315052706346442284918763734609791432406014838255880291629798026611775062593531663204065495314877125414403230760140061778724395844567443586701933975341569559978129723213767957426891017544224314291761867362917426158980102664147836536773819632882806761417918042394765679423120954121971911837855977459268416754792631844827099844396829264887015415876076457793695642667653672762347877894624611646471026532054791599409198245116255714940716618761641973203059869590042405635158438805674842145502023436767425809994432858902490121254294525189769405444134843581456542864456198353393893016237337841590268824226652500877203440038789915355450136155726331451756564080213504935082594331144713958002421949661308948373888779190506180848612133997036032428056827449877699479381185343431302635336973083289753021768895065138162783937901270552861709000804296996566612583590795846927017380208250685559931943913063900220388894927745861432891121327499835882782071454926346844682054644068309051744426618916333268957070794274467195382347231165777059515608674621792275840776575790617556451370791689561911191494014206850421586986228705629310058966366600393079721977014782561245648527091581254495999231135581077392206216192593709361156193025246091498417426680136456093387963150546509908516487882893257764679217439979061086763972292724465531482577618449962447117460081027230608097181247494785811148123401835410036598057190032923074593226963940192566597426036567588720106151541628928426720155856976423417142035199649905707249031084891511090703429005551046536022975076993304075382747100774420563406143919943107675982956148304637138618882412227409683065861203842342434273550552329477262824302967334112956637095183198668883760368408229277077406207145621520878507292850479621152376448617210199538558650469217511574511996458833277167494450226163633450066905150662362140834522645961497169218870385473028788635240679666470988538054815168325866262489183515021658262723720375007909653112176100651533944444730202145136614703751084261855124398751187862735014287249511825256406085193190048459425436340996244603178316500649443814156810879600809412954098753144459677176163029047782024121794702754237306209875672613369834676375612365240769142459841040424696956519151631224926189529730103044271981284787547572949324085196081577539514962864184009479918972669122487573803081102307627361727878486491774693276602934336663291453799744263522830085598319386380689789350822070424145424098554657833105972598936371811671039247712717715740671042727513616864460612045601731448330410204686750045726884817889941688436905058704604157138752158982709594951895650376307354215295044872306051514517936023156988003910994789402154830140781864016110651724776674088891994626608265237535563951832124157365286335368825432900742045483420912115787626111140139114271996150557001479690711164481935164653343691024200563055735032833301518456138437173529546552171342530844272971995846730656072304504502046276850711928731748763748842415171553321905280619042470596620918524834800947286514774946161361371845637662106547917981104660117334366007796752128143627342273015232354665390599595104448867314792812513967311883919313054705906884391491517084280448390955835819825321132049893825507437551577841476975797996806696245005510361481903985609375943134460037151064065652802050948252186537324890576643866207047420374138505323559551156058503263883413791542738968445249736576983549540947362770726811471189662209685449518352187559201252760132107522321039491818845742727898344767498168333420742080397244542828591938233422224118081713811573364618260857702330871374514814479535125946731841221898497701924343686804622799103219474003316559146762169061860795565979968608060408268315399633971987701613175255741973764541825232361951065776325624646756904442600773454932401407691966228427312393647566904416077380696914871252912160583173874823631160243316369541414456021646421583613791434073306484385092311722590733585948476994359432483483413993889571218015826463612693190791138816143287786117204645405201249955947935824007138286473775993609592935077951909020854702019768923114266939370549190423497080455732711662682254933087877743413459067455467830451389806635977278035575457842876753868055339454713414167896465092830732570973554040180353010268014337430343872884041073691934941897789309262547902082100471474467974191456558878853415360926909359430548118061993908125405957382688347086099563615538769341335236254538227933793717724717894512297835489191610211040484440622126024970243787346496606215220043184304696165768631353437049710972246388789606103620284332564017988460660231991544557271934668478787740680766897257764825522202605878523745093008921191580383587987170197825338269879519345692254920330116347304814792310270296176055574352374799449770871558151000879912957879721271409795966870463076232501242027611725130541525192011940838270222588615722668608726877731551148160941549792236291193193546748080206867976809821351993678456118202699184250266165883805445636391358825054557010605306179660135763473499013108840290693830571008394339635385138118005978701784263801711478623151657619326527051751907066891724430056452097549788966929938664644023811938345337519322758434084336325734547654155523277259256251767910463292975593146030136578546588326783749454434145957400197777226789615384714551327543320379193008407884453626728702012367063154686615765320749201481745494312752522549165064091257081007582652889198867632700944556546469098962572281145980757096291748547502354405486894038575449078891491747502220477722885416388104267232035007515246177067117826369721668680514742509780408680442786026206811286074817484633938585332753758901370158620050778588265335870690942094217147934932185192332695744322700960351061843882331592805005815294079132111359644029562841933535377727800141278752937245597027789219335802792752524396236574109021722830860215848771234350708304338842240653517146649953987667993280533263975855141047743384188133029538220111014188599932893197650837720823520025288999697008201837804159404869203354585406494260465417343012563010979192412034337779790785544661796764222542242388318163588697008964036119366381001164666011207996546316674123090264817155684781844170792773792707794908198646153631989543828580791759465807904324010602394692508488788269700676996839438713355255263310231867516420412008294974460217432887985675831248581369694684325658046915919829417016307321636872102089640116396012662712638938542760207707918699149376735983406811964790553173795955301421339101798011639413384265327104847727726075775045210596760636533774227942710911651501898335302159658851410544944225087629706524206230500190697011583851676379322209777196710388764963010330991621372535221364183484034503526255860631118006951114583738747836927860771295815986093188469124652248696845028664901960226703821492435653447672236762956313528130632833729611958834236894789599684629602340090425043024787810306177402573015820025664536665064057881723112550412884380115678734501180688480917616267911360634211795540863436416731639894738230652059273801214668812054110244125869108026603364786102385638015654936953413487075926187956116134131338973943916189383472311123545799257291135765492456023935071678769169430231315342402412081924179971669759639281426079526083215523684674107101815802321110039258510728500631632349135098861025376665405259044061402374362797529525669476373791741524363515286677455754443350726891004865264303000016833035245621099904460400277668795029376144167514461449551105025962468769931183018975109955832400574123167580272323248169267305391134389732130233058053090627527572302120582470688586344978149997518344105863067719102017758658750744442106326280887837691687582832770687256894708647967607981546503239719821871670094493115575781948003430830166588164874158732366638714062515771696315055284959353846468473855350368630783843906092151130433699535194399625490203802048601621068102602889677799878835428703405191687461225864148865385191661279128292523883440895300076678423713019700987483227863053934672005792298416018332361024566083897694822480829828922309755326906919969486050904250560428626220220031133747974262465959591726739346795615226350664984383399142015016844904503149457851804867443083868186550712704311925012536958112823679032694151214995349991755006264381676378756403192781603712026679762763464591778196891171226693083533261157042641228303100851261672281807469186352568053236988733431482306079491513451854841461851344622615275850169318281819182295377137452878143327895090853475949770298520355992836747589371643363233261718682226464429588677688683501897015815238033011029845782050611183741435524530465585432215497845559740694793717972116329536042014708883664516556449969864509701387026304875699830972282949723858565266204821454876245866870488348155926348780701892854121239015200754580999121454108544828107614298504767153732722380166935519533607842501247915946210868081489815585142920839279868055302902533549898223769931259971887678461512149949565162539006083640763090508826469784270223216078806702641388109634184289769942128802780023038787012036596552465851942112836556953368159205026700765248647617120865700336669728076088384875226346274277144225524798358782238445069209128229851060360310673402501147757413075091795517001204499612937917303676815480534901838490420352274621256537783109571162064124825985448374417177967237421893658737104604067833551775427722298907502962265131681568825291369487674106531453811289665767889487313935926422411424914529692216456238648534942461428758747889107632636323721927079201326282876910311044581220842893440906769921453461724280156876082931770773954047136221206972557226504664767389165945281497457719260070490396749086504455719974439783700437640473314989972483313399467816279992010367365596292265240176183181403931560444888370075336813793428975167098959232830149368820060143975146951330617502774804660267635332729410039167630632803801483707980068694059562504117107572736785484724040929502910654527822406630540129389519547542528405163838286594788308977151553122072683189117152822995886189432573498020859004008652177096841892917609777297881731247915843280666477110874154679426501757022257657100110571323606000819564326600049205625117518005249048454922662824770545076436140550264737839664114447045456232607535190489586555710292095442949037313984959335101861282888356390044294054828693426022846118148269640749124528214564971693539474067209704297841866862532952935805554461366741697201101637616367898340469406140535450523249392669849191849340170308835651714589274040720379233817441842960815060954438685870389775084702606105513630936771387538651645787514505370497740886574015256425115948324900476731483003046581792747755568689892644944988500964986948697114061376441166271093745507389463882569127377391031292721024759169165559715552752312034351462717097188843107662947300734451091542154122239789423018817295198652726045477181223918420319505352568970999450513607465463048768178274344676082804531421928628099874139124065945213262710760427651424845869650024533320971217437955184599641013145696203929720653909614560347930273420000838194843906173089420172164153594586134512068863709972311264353689222035187155224377369167283194007085243151121715749167349779832618269601111373249706667447580765531186949560560601997123356115212305482891933369868876733845165149037930195452642050420059989635098931441327079121275888743020962958272693956954119655941402398032463079013563027942668288575108136756480586274600093815753291462428744576122718536222860908222302886676321822075464238870063276041712646187843392473061366379212551806411861256974428518076859091619765364287840339102438590446858465517449831632884512170134723811724010815364901078659032426838542750715217672125070718074470884589079814046747261708557745461909851170661216445952337141936032807651837751181550954298513387445695116651669684790855627236683258560793229799928150041962039872154962648226442220090895800056840461000114122523105036949682037889645634739003041066778218308587790587391414640342419797094525916621347578547165183966604165003592948467174498389175659123147764556140764488329335610293199086018089606721434273747757948630890253558466094545244134102900255848194912330518161644554430535622418253392533962965163272622920486357254947644613255974041519557389382735823098309846547495265705439487821029052800800624267279655998281001377278891467465716848592050543956610989937186075673107106391333160256947182000004845304509890590496110813744184923919166326469768556693387979539302679470914457257434294387801052942875602823140964473135755082123706794057728694860928660742886066085087885445868662803908104908974400238448015013552688869594200248408523528566559743687807939315224879830904319815128407547819303087630549878276313235746433837082569644799043257662773750107815328319368329490163609522114512074275892448320313579977066023858267868939715472741554290333820981454466645542698166794249191820444873943883703987128519640080907049926866825623369100179232362375028945536801386096437585884708262863916508306043585978506696443357885860938067758815271748798112931238453313356661559718769541765439697333753537348465956013426547764453848403623353207909922343373915511045818524373613176091665576576044085256901738292128609986142116237469036295086889469589453831413692781799407176183280283784534496352777119628605101862169146115899506395130489489255381313545219242705984354858986831404396120948610228429669481852826660795467982602647825511941348773951861351702519635725053663097404339415316653469874801003353954867142442171453056998749787430712860384558265920794276584170315110981202143291713435249171978651841462381774517699202556414638676821327585602712832404645685512967897538810481599217870695843531627807674305800736009631025961124470471136578422317290810468403884663781970784306367237641541610163439130156448666413170337809211674187050217390918832669205522858819228789193432450332243403558790668745917960862544593451756151729370740214461866181841915566579342068146122077168099635840169237329325106356741899467989494676437252961719406891279884931492920404707046858448679935109105052857893053484107794171141374125749324988882362043471833918615832229542822212115376296309678300984913353695718409283922881618146962242826405030444936612586812868734610072041041776752108383608836674892772282116358215361918536866920874678871354086203938078919090649171126230357260436127262603886745220554262217757626718324968857220397686852071231058623448964042365823493575691058270326194007397183581350659506266133121590632282320368948240628621961254554468322891489115167567112235932816658818527955089125291142490533256192550482164611768005162389023683542945705443612440410924726366711779910110670601733890239572821290718055983086298933786786759409410923293185696885254637305219920809190394776169862184159493499043370785613659386291201566713532955990926130919488399319575962636408470080506244155715095427899344466093552103723737229262024230939224778559216475399308587789583910378820141566783418219426372093548782697409433689537811313572071600397442147990527705867655512049974793948351965173806460457329201113332860783028637012480749831777963169285944370538826407971489222130447717035396872004475453035841360688876410429862069315455603179848273171626563278854069897523876832355092458721830091246858946770812641613047302458851757078479644236396451546609075102149273385120293370260276756064234889880563390724305602073935108929970580725237997881988099679484493515000623918068705020239219533172163580309301818102421310762700227250301653052053859493804573880127991745125549006457033232398682454878615817123725926168916957062344717337000868594148866624955500739076260694940364979823071485467270593937460081349825850843082906309867519570430941707805938732511052642293202281491948328405834916828254074934279175056377188738354492481499625445607279499248710798325634589633957032309275677902330095955992084487737929692155354331407122957690731120055066488463970150318423108260072270542170560634970938887672280277885097144490552924538426657411546335965310186190109933873130864104023187836563588310489020839232526545353159630364941668032977958400101460657267292161706993626259428948004358978296768106050055826980813394001266978833807904017410510056474952247133336903890602020811098902689865445433095063791258659753433077131435580853925787204922276392837883723698196961282896882788847269482279544425498276825455184159867863266835299006433183944039728083713344736116023241455919350316755526013852470768268971276278625378553973613914594931809317355457362811650342580545161845849648298208140517693126304053768143023345478427514182780875163858176709465056405572945509712113020174528341042179961321855736738297723984334997132439520717965905438505834548786611494104564709170521024654260291482593435468663241486556086239016624797352095461573582448422127152547991556538349654256826373780250416771374784783770079545687637171091635416037604207244988530666612771591936729336962215016680702252046661529564923317570749059706346013956912014106679242266199898050489353529083395137638429110199320466346452050521643249779550299367261837585827205944831289244143469276361604389056198708588448032783672003571070835910610084936667701158198278373240637583134700846777647702533674335757671569821776846650148343458276357278626371357273850363741386536439165928346814645911318620269092529188493301697236323653505034440029386054967950764165353993739636649783589849185015968692493134275258550542453751834899531933354473201772986103414670015237192326604180876515596403511880282843778313556039188829803573250504173774936362417350400393314879935458113088272926053626918954352522100452615438046939324926368350735648277584819944512654115762048086892722094317350267410180148578323906570971915791991281024828596218501830256735970041849742064776723105228789651759371976207373335667199697615506543236922185656072853076435987953340380121059049937393347778532033810868770873887242353835332715811412167418740543785616067174969060400248921285345041814540912452506082170034925202926944740891959768067583131834691002609480589044231227518541698752489124097714930813637906955045019570637483921351587892886581675219929992500037608644597040762510965238461354899967307539406372667467317430877052829946421118938179062493461262790103908875184078290994570861170608876227696916894045710473371230703760635093542172676263968867053656752979406172541366971266453622281639379976209607848160766180279321716822137682425409297874042200478431718716679988829660496427080394802676739368184855688176656505063336640277140808311669991170716975483960664590136437060917663273647752610713123050312182992385616097445853878070091029505702787602962131127917105323764667414485165355860594370103045868094633337831369281960189290719335499543350463860920837309837857162692234545712753821995143162987882534686186409615938338703175435911677670663983664607133008535178166713645004323911951999099381459358886229274834378549139780246876731822255767085645465427785975037015420199829020685086451522764842341329263479638120255313644828341580886682685695672170025907871274384540378169834934183341398792729221764302774344380447721477384571170545928875726932440176046662429191515416749808628776235336349471862184919379905323944946402275651832550818735325712269544641995778996751762408877889285884230909086540408318571413581442238322414658719003884958986717545579530672444796933412258149084624441242301470510421863929999832456058064063297610460749417972740952192018433859216174450556060470832685207691499767453305190585552189531455820737346817639887645856246256696516112709914539988316911942639685741313801945849500037673428561309720491736355725147093432012430629143648046944530570399370278771262266513177784914544583899585262514113691767335556096180733644094561095491249758681077538378480635424150079592517365572807485805212910808621728653671330092312604157016569563527774050976706963260527124888717696222593123749388041745064746835149455210970719919675080226964749629439222906477413421745229645581298671467123631813127769791715114396504204355022769102985473187533686874169194273011475020572234627216485155901484108047259312600435829033823458981826831576213440909682961716704939611442656483116176457475442310883015047674879535002829508189817825864898623781383443122567588899486839168083626296453975554794847971421983671554710891952297925282639488025622254228135073222354720967410236602054636375328403654901813913414404596344084729099308886602568708998917603748655622630507772077724696395723133963101748751410756360993812104487173206148857968798099025259864888621020276153239560492085357821285656631649720422368266455059897579598693368054767381749585782383114025122185104213170432933630911381340670837853204319003061959025831279692074590144256900823774517368881424220994567943978849690157290029170899621662253023336023688940684015515211001346694813183273188078076025330150363712980949372447953666024427055517275106697223701828629189183029464707753154974040488062852366847308473123820288611417170018389052618361805791397543207609881649576387704076335859721932244765857353261730152164764529970769268168479165031787292693868713281034122969319284025329312744805721988127364415836587355976689315870294562740240163121893454926381636912965381303784676954555396381903191446952792052614655275743455070304782748939914089066085647546106490802069519242121505184486065637739894826794037533688428878081910593850505164725461848747609024023128453292704682627491811022517848931594292997016363371803284558746985747599385379601105699815961579102151940476379061074257424348420241447064108781695946394023402084427289574536928975248259761577012930276202495949729941748148103492262338202897443945186741017767111445170415026652207408617774124640252017164149584506447173379746113037628981860562545829235126917368614067206145253061856328175288829310525735854688924266107937968017303369665016969317283431513297396224967884373631071994075941549910987177255837852566789792526744669396958269587723792328359341856947540271945773357389778060940720002047497215554312668289234134354456174631183506269632102423131870240169172870374624692683775143659993171649146948047134213711742891119838559936778168630436805975180737478373469277213361016571384942416269793236979455801466296836074079462656288548039564427052681095923023414509907067495792907186931511120498911793605952126718362121343332029199568754401247180816559020885236087031807006554289132394283271782060466851348314516952269146072242281198448728965792372474262493560056400289967870785204851914194546251574850519125290376450720927711168027824143193053224484623902215520058856133082102095302984983327620168660142735208584576580437934937655785760924026546036323138774301403198109698149784214943078998326467602396563290006784292825633167482173250896405376871642140184605869764461840681602856489496826374639656727778197836232395921671786362438376172398645082659127707974630631686692478109585545469483955302412232901176978927942061647300815441520908930772971131461273521797048934002772557116375189918447446016724536783352544288684127121177239509266529936457650462771667136901648689393913904878231869670038268118475330249612465310025484465108867590582928520242310372737621973608377108638874619881498209724804263917278270531396974352677954054365199036783749912617206693581913285656546428967886127134250374900979792466201318346931937391541904529268908302221450838448860816783207746015087036526445840184460399399873596206505397584718271319563033591224201167007580958494326568058718114613472015222799624787962590028869927778792042668170577020177820521498538672509000148678265203121376408962441533469009776734819209679558815849950183297298583507174691538971350571253164601839566152252298793197387992255141041302597898379669527304313756523668022917863609213936325884540924658611227475121052585911213344794564036644960706167285494335162660810720444663358946924846272586322405503794887912234619309315126179423158238074367157842182185583252713549482482834986816117662390658583885301115308284607999503559051487322072473233318766748952734330255071876525072057435439866950271773065467242493139239268648553415637145341104850995256764083955419986011513016100718805430266946632454474479177092538923477329812931079085838125546963825283581798535430414593501943024678344921056418819121205818808921253605301277481874276293736612924969554423309672753331844503116953230529301535902734982095348816662103611467119977995656167004037997448107892182494117661702895838604836075991206787856203141480140496457935931663861527175814292523593820707641266205105917788803396622572502152219054874269026702310389286081852141695926631447280809297418823448508516795116028616663130642852452986523887758029262549073328836938365651107264181608688731598825795677199414804297818628225540165125477796112511370839631887868281552811514444230413756530113467860074386283926217635475803257219401441086882058073672484821564686960864620560941865807850848032432502095669164259192607224877434237333605979397263854143401966066554073059156298138269906628925614491579454673861434038635113584842341865483080830376071680720895959311612138405831895175025965538181217223236099586461594561425556150144247835103779935474098718626013291324591217931438716210597119426554956561875506357923031208185642863565098226823384226274205319995302958783508777099630074571032449488455049943785563451662691295481960449362175982388274311724953287772751088615591134115762786504458218613601495714849308454155118978725879262307098161016473153627515369148231490267455342621018327546834069017171890682706439573775221730648294589112654581933595522314746603020089050008897751037370209677053833476565299020856302627464877709839327062954178871537339550421011566407121563647124217982745255060320841616627008587759207929568813803896803258696496936458361684582085214818135635801581991699539640389152536166215417568183610164635247600390217668879404339153917039637983381177338896454444523846102448111073975324638685600692051469376823250430906314564961431628484169160414606591492711874593856464905951108399260000015697807494210849482811023862228316575981568800468241541613511266743715282725245871003312203122942392924007082036312060996640933594731636937812301817175748060718129323414697368832724536591562283495142663886571669861020359792217256714672965214562280031943740527874572944748170998789492046441562731164430647093013913738503053525011550407009576316818270590855877959235074759426691447744551733061808865749381606154300395127358806734923309477291319244341749874253991556711191178026678346455283698374177610305278587664676044013703954338150787122355969432761474162633868025096066888990695841036831913749503645135050893884801049684505391595421075762376439016129445398048691251203341567044728830960886006704992964039125370332002013709406595023790378338991164474222035725734382053524993297002637260372704358662209230576384291532466202442096937304167346806180884978994575148255067191080392496003663984886840991661184340430132261581845693965136812508790364281718161789377754479297226280325953108322705137827713583586394338820064007222066368872028818804461532379789538527241787198868448155892665352454541741500477934700906838465629354916308610398067422682644263314353698055494692652363818674440233941656259821327723780720920418558790831532419297638398526168016857764682590623054938176595099097931747112243760621001633448675310670830314188764237086718685062253487217957874107431559767131936609781401453113803409950378552799364911541013271735357991045605154075785670224367781574510459938238635232392454604137482210169290441263478592211106847996971327833949422786437833902995142266711703533723764284365929174634622411870737035461607154500667902039026861527316645752549933960723642110414590635693470365142310798693210986302638182414769496146633386952981573474317043273305159527329452758534862126132444598744713172568340635849497685662362549153601838989839251376848109428318315376921655986861085390674632271988735499608516843366140197929631767427247279573793744121507628150688063578237847001170713269818184683469005110743874569264176476435480716187224921406221990364057582205726079612517919707971730291467577523827238155644783169333601111442635373928202059584134374561692066078662798124757622471004157886543870460962406986727444317769681157642890106234012928272044161682535362475853311684227327623631805911102924256853857021213404313569275010370691299425157648733858987497570599179760199084419557893319046589638380492976980318483596754165694387697350773534787494837612996966879215755429616732741405984786751004938483917612842282773799501933916353120585540782896682017238589295927652196166564296110345336486426688760252424793186071194951179917551748253166909992927100036492745187362297302697217282751665133055184765649834116987997061364102273495480067894008398070033015294972125023122781343399221315539665883898621717375592470340409052165435977731778043325161090221621930787795536610435474262411114014618243087712416096353616039161301939975320222216860029814188715748806444829051389749464971806732610450570763744051504324594505657666182145920939915033656369389241283280646879965710475483065413593619601367108371910189960644816303849950613958359123008691253711228205014818844220315200310260344168944524747068779836351035697267535952371864529750579145912182706737973925199889131330462276333621260025859068248306078494687400291714063089936559726877358951288418157109676339340993447793116876415493702960425963647928937117761988656541273571462204451014157970625508598758124841444059083972043220656257829930956772525641558530001086088583879752866196003853424839637737384179753716397142245236307762594499248316554741327236341307576033291463258344668028543577224490011138428782169309533407549440492941335421289451703314611895906491129015441816237858503383928984652195074997967632520232587275432861016148646174837228162918704046138314128064568891774740497517595770835870013034056308929669657305491646450975990992994082043826552756629624992088329225918943483028110527772243526850999541923098844317168304444872548394939309245585859914361255566322368326670879212486213967783544931469789424941328485651569476069343524381510452567744597659260773690457043365795467833650462688346808707519891316280973561951495951287660173485087329895021711259367481051740778949464678424458601274743044815076066800234908103103206688226832265232170026311250658189610193386868411081576799001368659765494856870920450752839241200902053950713642536794423645145634800122344588256293674468547690766114316605449149329140802712817555695099278201749063243586759472549177618087821167881061563916087251094047443639309640839940544553619422685177796914717730316999562865584526413823727627068941371412014712757689396424093787018600662743942367543952728084841295256657930578270964040898329020826878714005346507441102867209781098680591587612392785890057824880061100532020144312639986726146211171250272510425529527433962238749136961244035047053242369116161063061260149062093427882131032018189178285925012410014270295873402583605182447894733391891410100304282993927628783935656237797048942971082935505278121895776484708752796247680157392885891251330125830502188447821498020348474607125398241237136580898208076160160922589499225846447681834623237446803573445734460692084412997703070002042905664362275620505336138249851030057478134916722242433033033179330117141871606156119276206068956774826359579876564810089414588505723451383180150626603931894553788578059010061738990804732443622513410840708075601337348504565544923637944445656279120830422035534863842576342938460414026471883254801530855581512105300651993547811438371881494426590858441309175087644386940167360363943862764072870166656406860551343092728791528566658877126783919462692257677529810148057933753493271686500949501497694152855480875117335589314127026319977936102054084071573082153771433149894263625119888642052668383079274092070557527796733513405724580972103278689020715725390935043928572563960102752230174940498961923940496891559147914356731216835836613917227071102501238684984717374548654105550489917897923760592676091373601690901189867908036559192044423847825423680633091142976493536785542147744526069303409356024567305325351088073557727155412040609462489001064802654295991826105285541290726250239478875374542215393823370746338074162087247315202925879972636499154577432542401181496388022387709223333728335966449789241715927678629991065378043337603441189924425258138905682372522321084610693428820418584456676894717068675932997398786858219687501379032142770412442360953254240259567728121734314998666442809230350896562282827623003278459113024782851655795993087427630597293159056929721402591178849711112266636573566446512209414139516111471684749674671715096892382022829942084322497625670776062286605972334938630225048088408110993376666618568601762653395973122461658383645458300845374028706827291799876483084078233499209679557365404866650846733266248610254366791478028633425536598701280897744904820195556802594022781988322930227821740713937001279119798816287107235027765279073429526092087861601976353843679659430310100606753167221014871653471411375327069343587615700274026455822264800522607846968524420675455820754987976748228271362341802376429944156987950069540285811489801422875960152806430155103365611231757103785994059391966466037311109657033374703995786023627359350552003423783819036703752563540861042155072110580680955313444961501583273951316758603098267713796038919617094724759619838084087113657915482953656891920911919310939564087545483432909211200553870534396047640633071427017184949809758160696959279939998167506948374629812951483337739352691679014602020322872075052460141887777543588242823129380593914051285635942285217287034193754743529842174694023307640703925810893169041747017580705219911827514533551127579274772928089380945413266751948874016784736807354007971954108854401877455086743912040236867182356281154636105744623722461037436375987426157768632380347397259829367007822264870030984449077931581584866468795441985955354330655240367847594095674798347555517786693924868808731808420801189261511873232408610767171772101057195456710773995968852917991595541232813939601431951671384275639108883750671092941850176543170511861748123631388359047437925313577072449028058382590339414542438025461979465481437257393597530451643410477596719609000130576333590731619610199205352315123288913390500290484250749910067170389240728291570548906458781926442560550953042671595805074180655480929608214695144901668060906606560087477481866277789968739929922104725317971378747174184905056648382447434514076193155604889747835826688775670129364496360487183859043438025039123170683223552887342678057847079646405196205233328215396340586905481075494313325383695971035447899770542319941756354866487065823509992705690532313548072310028346246088112616891293292500209043247199569501909966537031748341928179921067795538399840860140641398066546483093757996299749677777447722734111187599318708914265144371041223097641447209720108592905760056159052292443681313978026559411039604658398900855667068738170857926622672204143791599896845772389606865613049575087327983195063871420535687558250117598939299209518039131462957769880172799481131889370551823141676732592756531813868835795557313929323350267906664071532650798925059452197621594424115821610322246848588573016127919931493955707072551470829096507309550626499421145045822142304171037070809241873014992274836584204871381860627361202753228694997377213270645972981674701084030653904897235055962415474534787013985999912868941698108889812428635100467758687642062766751993096861267016868114752854664977053338920019679645760157799379510659918316435448315038731666331199378359137014277490490499067469358183538790208623147241956860503683517422036575730425693018542894745976170870648270198965476023812442600898576159952425351822037488306958572816137390616512780797720660476419568805133765544752290226926238629552679967156007806374303743054224745240056856272402291412945074388003096235730878482285359817342100640775734257468623197102665769714420990004589403427664700162847592233947754501956554177467639066035318383033947063846849497657245041394822906737830127492098302085020764534783650587409317013705801636340290665974501680711554961176783527912701044206580762355139854397210087757842917349249590529755706352493092269424214261634495657780092548236360626578060670993922078845103127632522101082812300360313264560165840215395311531137451548207026778568639166870371798826972945633856318003483790915337095919227069733846161619326945680132525378914688394163116983218039417495131359705952068504993060531530221601303692133328551007300953569049552595658616570103147891666698808894622199625605957350750338919082164135321752578633004952774946713620901184428872101643486802747807311323517982452638739280936308389103865105698706356201820272100739818266159623779719908290928478218791186030397256111130217219014578206755354840458336352690209656800568733087855528213015012597374396707800229462289430916355822928262177245415324195430670668644285397131134111715836992209353770531667853209007080112374313679364244437190306965653330117127978450281868051285889510663017645894602731582989228126189111885136767865356376449767853184174979858121868133640198275654348390136567001366870569218298677098099939028871676479257614243587984466993571042833012982507931268040807437859488800789235706977137648591933501249272941159343052504723321328429591495599784137756787133501708416352629043160553555677493747534279004418808419816834819737258356790032108813809940582362099925703259091807951179369469127993576569559348625209271400238030756386609056183015904665505575281654106446384415020237014119928837751885293850898449136454207725470624724002392315899548262865755327308957947976024794155846699163617259344053118851801527382554047463418138857320248540103613046206466786286481097687086939220525562551097290548916465822092893859576833301743134966989083794333130083684579429329571217877026503346647166830065813973186224377143611394195072867767310344614050957197660731508986802278066709214979092202598356417511879508008489582665775317005812140287529619092505987666747824712709610379044167087599970674072888966064372182641918962384065700322380198872476895942575611228441997848939725676347106319187986624579958561625461070076416440280531676614094219735785188343704219634181895332840172438705600843003350324489329047141789602255185823830328351241795287023973447339302470170239041944274354688217833452123043037827510952592727984635927556248008865172925136496426392560409235159596007119724473197674356978751154102472867041799165750426725011171630978978206351650247573142258574993761488883604109680126758359972531296966904151183463903645290105869871737101837435288065128772650144776349718461059282015537799190122463746558808620896175557598224480860463231346478711651878990790321999891672946708666904870501023737754038764024976694272267402549501628420788970625718104907934191151432683104038931153041287410921518553079487336620478378261767839051301437392524156983623139887067533975353173713182196754495009073640776405187461201215018769486714720707333504797311473153100076720009419633373519751276582805967245409409546906244979054879852021463280346105628542920964486500795351973344300422747620855450677661855455337862012459749991891730853268975493775971373096883847715111744212874967571834987877733817213878634282256534163708583267067574953135749184720317117336084391485214080655144351290424845408932290079654321647524193027635305758069064033560647988223826584356076048250432593563928888678896320134657667014796489574602444962221870848029661394107125374635284483491512653115222119027184663123323536923352387086240596997932383852991409254011445585160255389538803153597680009265733297480888129887264839411621081699267393250102505386248356432231018367504195032857263001002992091832196364680254361702608996955820705589486134378222662679162442022266314079291897426472819436196268311851089264693293099395636208099785145816918282896436745239527650616990466889613718321936060331229005698306889525822085004157443812775032582167136218791202138693245892861998255640039577826854089531045974135350357423985362748154300839432846509382021484766685071613891785271883648785810410355509506482226627855974902829181427048116615520389526088200169410362712304404907963568985951360301675342165514553307444161754993612090953953767988637270497076483855312138534661613470791794138321671692395908933521936100094942005186110176993048350355139087486509501495334834930582707841756918678890377480960928756327257784720169872493508136914820602786706430282002373126431243681413323547197657897519126132747312930825037544626261824125683978442593368569100872735056724219801157950285098112434841954561683759056624300255518746769185090076757646160964268130704082528785518586492799999837040919071914949560125038905209091427295185265972202238020306256912193131988393796677579631692787507200757244337884730968978723607138773440677360464607494150059616880372626234531858019977171044827374115366186126279652894243472853024173080546180513562882140700820822027930360129638232447153416986388404228311381117270504739672001283237008189274782244700329937489665744982856233312383095537232741839100486792392785959577744305056211700947120067967000720929929684311903030953728123958231838007036890773527033108016209597895923560018195700963094008300758504630102871932255429772415660513961083000864465743898749307896074330597322347834802953149208026228410431856030075962346350266414901088547984520692247880221198699784002593171231337683708166659895087996270165930070652365204028138429803961126533680320992337231292517878135690388205618322368329136778001311869177449297025425492950368412080192213615809015134529287637354823050725947502935585676492516723847692519767675688708545645191074950628514804293616242823833025241386439154268732355586407478716172133600241238712926098125146023002655490609541183271393191989220524136487434179461396749344250166426878553501173672240997711312460515645220719206588899982269192251450092505546961781661438393975981478886087436930597434879352730070597840505242959060193208945505141144580849306808506513946403051297496595364486024575173641413260680485370027263385176469076364493883546086072238258504130176568440653311098671292818391035250942127292508154798165733060751037272812867259254277437891888427296380910145874987011574299920232312476082323175301322435986334916708184344918590267909347211078098537409164778091630341569123071156062715998870856581220652152844269227696120142078509680586849545836204521305132751364134361742956303284523520796617434471848861364309030697413393214845244210849154323305802980598465611104742913483652975837615207891951197704743295644960035604829042556702074164540790445858223454165509139154310261922723126001625334303306747164098834811893852539004624510772864452641687731651593786291041724114250498336628597922746872227337228621029413458232864914764333103472585178547633295322958907464633932935500620388079155574879947821738292494538847370782295798881619084433437808584802155303159151032291402419529342467071978957555523725973785049277334906064714213426693392891566654450174063742712995802023554637929422474794987613666632499720048279042814068139733403057404997855291850236186692486145402014932861865076471076978090366195048202201556335165820165463543898815110389641076351434719724895816003407334823330893565372905703740929974714732293100838304042870081925072536999741980585361977422327023400774251814267979651492080489432478037655804562122120332906815764576129689990957808306123664346330421962886068629711917427150918995353054945163856050368847651187284964883182620467171297756052395411438009263861259813937352330434644705354629122572909488952134201569935831854920870337402482251267281303391879597936456213355627565024772439854941462438592130826846230518341907733337176643476372924958090953835686239553948513304111932365788356954629581785972772495624568464243133261597455597035662211040773430054333869332824596793580137811307551654514353296604271402231376380756072070521139603281415765272623242154789958836612745693900642779457239545940949575294668832788164716118860492071179571276344432400995709425926587624806835145651443722294337021451558485836157544841004021559695772899094218631858311664237474879311412156640081311435748037904389386957384209027989213228513323715781927100304871894237659290486544221193781190668689570257989625316321896263326163399274017739272398862990255888432854062157074254679686271267747784672218055880038616286328256521307471640770360931358264669993586287064394302291783693688011592405914024041569600728300836109478072339798926703289781979259416605014292145639814903101864171266411991094220012354515145708101224576466548194212662620732484459136643520341125298170400106801136024109361198423453562428293175604902817216584389448364257072616539034391332854850084429140525981434284961074520144773785366593452739651050033373265688187816983914732670594129453941730788335685258795543031495643218718763168217570515421149609236101570532493607183019472742187683093836442366746796089964840185816201610149912935334011762011920376276976600093331413070772054333694865476677815097496270536202091298769218788291026633923181761876798216028481697169056730747770066224089419002288803861465307728886367715487735563026062533631656018467886331375013218619825538429229727183811843480272646524391942050389077318931748478668449991080732115473006771923491397449927215765201238226720930765434646035502064988302922135137622028501369705448735214715131410816583371318367842006111505369568211287248075391502559694763037755914255084514392130732781572708490015316041022272557900576901745335448684138492548069732266349933722428323748826540885344078625828084114209289703294475858593689079143482828110956269529762931729025912421543502123797451620513844877347258209603358614478330627615589966088910174722387407486096782772085990922691786962987133549222079357576585333048604085143203554213266839003358091873113946346498798009342220646809593161075454871257581460713526636399844752312393805571273522260617435261486212302137344858735730313917712274757037340224569099523764663800358647359645465016553319195537750789347384878151668670081242290315186601430581011874414522756159339363748031604260313998049640364880949515692203683424715072680419466920501706747057375227837468403092169328532349019447482883250399299586249590703442889612376564156763185902992244075002683337427616261552141493355747050797627983910476996873948202661106248872208793874310804004085080546503702957254717739539759672806276159560561643020483952284316840704479068449740723934140785401868563946458593014261237106978460898680681432946797604784331151183328978991037276800979078665154279558472882641947400663349304178445986293312108996353584749558638687942089221673335601250127490210114223955307550859039735938130459689584026716882470314247569716166331525341562921676315621357827612789113507168245944365607301478450008936712659634915426722113221228553775086156397770402061659967970756660182454336428695755253260757425529403981581073587771457836044353095301009860910322416837986835195384586264424247397413736418550878726934373355570505253781140506760488935907610736123621345788926313709860048023568936900943484272028886706355596040728711448203110823438157313181999388744442013720905690123479834038667360030129940134418308883827577544750548204616608846202179151059537168463828384601069215850413849275298041156489184513491324106899849131132786744450058224791022376333758070239096631268918107737858812872553736642604061387724610333890454421396016757990370756313596250477114068416363176068766819538018540548543487984921576774373758265462669883127274009280896995805100292891046090074472096867416469545380092833189787267733166737884374281148749183464929602095573933161634429179781844815317331921571789795541481035281955872874109685464924258530049733201323147932928566846852814000170730313423508102069322810318234289172572657354895571757041188924829336738972393580698232412014714489696492216730730746593465081859058752432877201834856303001659530082561510836898591296174530530262804979646207424238738640507851074652991501282666682822931562671306278707083125792456760642601309113275341524600236228725166733380974456483498518325210260701214188397080365537819609303912050658353468454878551609644381374510935474177200402489612713761365040334645250368152701672611276641746331074956334453724862295319047154037704000424101736133423895236706933045166091850020649099543118063165085815565478229875700249754086199240653830987930845372400784027144598361314224893835139209249562176112666539591738586348688231395485895656235147300944496494146253188317820892650228219972553064669925842122134156003110562427182539312685168322804705689406862221868309260792663749643919692537297581254876566357383114110536038690788494319692770672371965178712446286941745078348424788893068912130346076588838849713615606302319955651494374661671332178472542495521741425241623517307275621692294426044720480814871684876507846237794986176417178418382267318682083126687817412280081435616024088162613479436069607155686727049062546073028567656841437079279733966395927761863677514465385735803626643468118020571848606752174136584628680898647934765283462127660358392677964049219837604868333297403306179490699700923172648969201757631127476998958644555655165033729369896323708555811325491130007312613641341426815751615891119007231662689017366390927427644129275359880107891594549184228559612638934768524218344172744734197909175205065211252141259937061514153251279403018841700785436799345766821137731047522404400171186695570836962049622395708018344640715911138226951827199489628811323739193253620134629495102692401593992788400585742250742362281932714798608026626008076345652123038130049051929740342533560697060964368807808630245062325938881584690181441127960980425990773729540382232746038054619913332816610044856941769850406150390225280146131682998935482594476266506213824688283002010771657518170504086006516824772208676293960855016109181718866226621698858956286825588301208574456470715317355941282322704821398485066468379175352017761506052997286828956766386902680795529276779304770657590938347991582217675430666100932759220036250261353921363319150761430366905858470192233978301543825964321491617130238445919794063183491571339476322973626653600960492192703531977546764605981539475154029458580892918774227506612333511206231055237700388155356399413274586986669249977260493388771065393985627922506015817832406144489323343785479117328761425290887892672727248448214967035238490632475659279515127725233693303564987554346052625707805715045993975200122851029511029488032636244133335488522050653095053606768753749439569929603401831866672316342489598330694035047041612748275195040650627548185173891495193444746040096278194167557681836250762573144442522677714347645436232581424221644430044859232420927451257193032485924470465688075898838046986486738490239019240591013307118106789173897347033409588139841195483856048698537667813606172092945335963721594703899476457404521580327600667834622952742436010699751887961342696965309964022277113115616978880005704993665403171462714316741306011191291065783943733008688511958991735443697147102046848790823429172103954630500644692581388147244892324296120538518085550378715786275874296180838210899833757754871522123856667561546517594062377107724862604029471372182618905396536997964240357867096554592931938778561621023333511726351813780596945926372423520260766449309979290762532078433623349816688577101269798207122019319023815107894074956413168323367567319008002725160582525674031075882162755499495885508613447128680775601226260450508725284760482209147784592256208609755436756036906382415301928543710252178421703627296680541317731337094013203844777477973720297676631208783634329312451874175868661045354396132092902622322714436893911814701465238734657016835839816441135476908105036468918415664917017759197541780866545995820654150433972950757734701213918588802343302447222802310729199691544912723098178807357490451552442347203927742263363260648610994625211637470881784430611262423765852470425025886654416501219398456733756432382987065238879616546804141566033510569707637837454156940594586368929769595958217209629343054179749746167306197193554387389926489914167739268636363295526152431972406471714124827759383632262548268664010588575491202208539774395142652807537458964947347753796973027182884225598934325879629743584216826523137280278126560105768301916902592004481208208340673807313140850146650531555126330184838609358320970853634992092327523219402241302120438080412874724457306908731115843997219975233305016702251098022763140301377512592735572821275614823023559865141304105217745051071174297874268269939506864666505703532759790609408366739904829063964948570090433162414511087523235560468812109607361843984590316663832357996465516822205959481925604483920928873735186744986874976998597848197344043942596056959687556875116646333918311459383468054088498788846674737913851537511246588294131222140635471279744182544089547795529069707667762043513917299145306082109343933821041032770802594535923440357905234627782843555751792837827560327498107888675953138429883418674297088356098000205027612644713786608319494241142568692918095797682463497267589746918069474181408406685023627657045013011963953345475530191092280686235155181115537696452777940397216992249534305861171027098468281141662404333981202438961989424491392372128060523698479682613869436606332761311460382654335115142844207029834462563477725230627405478154112208904834773808063434960230709995230614076237703163902063514066361211502511248264551114365201566505941478409351947955071353129267015468170309116981755052635229480948847981821611871564778867914363742181102026345692087893365962672011193820522577424161434923656562219939988253055674224735021334704007186417962664968393640952217488143824309091670478636454764831985629579127578053297164132302610080278981403737718156586318530297822424989075526297367775384318448040241546335060932875518222485069691434253630012474850397121156534499248390191486940143099386018676454753609647615251826197476632830317346206871513048972805732204501688368962166411106030074385769321210405229022607812384637524568734158505068164229670586572950030489982566653331258160552944016582201790504321787188931381530579711842606896755749905450843227748550017524805685115247935105999214741069168292190421040981983995050094174763513032850481967918717177980640432367747120699900417783984451263853518329475198617688418333184555143766397269243929439837071301998366209692833031004937083608785537260908936386659126989011656920334671692853551153378392976222434431790441294445834888869736306219627109635664108006967929147011061853357765053198842754674089815757690152909221734917175734820548318647033826445972185681281937300811870364059655301825413234200759624436478803172546760849808891644368501978790243251531287860687433156575655860772300027370319728301238613155314651090671695066476062706341988712961379342783213823514901533858662839941337987347171912071617110654852217484498680136986185848347852129202539080493941623846502497330655928818732958512736347767516841766777257433252344718803827103616448756207334113738807093255616325689323817579323895490668849317259444476619017284816772466950771413103229999485883889997227773299102404358551190529180014341772438965059101819536206496994513881443679465904167202239083064685296090859021875943570006182060224651776192901379149488386286688039368952247585193776576487110684547576577032443367063060502602655773185353375291369598946822143054308551067519542454743186892307003119751649983238574986814424563078566844786483652143574669467963235054143267361422600260984701179528993516111141395871191475365955429364119974874333230310726923186324861105744044288045273599160045493111467130193020609672380773939037248997383121163313478116282677656431615086699083331596216008694221718812353707734278271097038206190397211780075455206364102879101487534018493715450335166349472161858319758693958056426676109719062994019929632979150708087988740209820671014215701375340040476104185455143227371858782631587679018395827580962911908499258096418749149466560060053396337508449172553296843021163201944988531380209219895527874011713913624023952505073574164667978631814240703528872020157937499764317780930173718134336308296297009597172067608358326932691245222033238258982867876550190545181586192206761901697980493859254328171793756729036610651387333851014086804187833515682272073265246758443532827826226246653284179407523075405664445023721774022531238651563379632967444893286420620455974889140235677980883334564434185919258454535149658999026021900777372017547188228293412931540204717373476743687122338697012541730508456118926122730839188105507860043325526441337048112038946110182103041455984055974145188843141710216108828294649864425388369989016150667000429594575927984371758761440661129546114734446608707414020621224244605808813132446189146093213017553417460772199283701546373400742031422010789796013467427680655276949719880537612856267695414461669407785676367144168257686489382271459153415216004253992327732422418635666552444997688551560289782713828944594582002639255189047632652749306749200649711497199882235117975492141639193504533788493752337228669838440587316091449091697663921687117170824661696818127967418394098003762153452204736387604238954305836948563902084392586746845692308188982768912229259939333541104433837201143007616152460234090832091090732528923184968750696938804707927741707006901145970579462112465810491940949191018764308179064153324376872989335208680367072632535429360929823946771832843355805740783954006423713682267734697153547225497026623683124658488475433895175802652582949171289528782177217009807704413318755505006282879497229848094358807757728449260123159034192733633446389851538473088107915893627209344105920943950305427012755759174451467991041953908245623069545015302860792803070863774623348329373323323772106588286757093051266325046888836123242873476450365515464805893325749386002771714322217512095041032068989398514119177886122719632085006738045214082819683697504709729333278899140362808827357644797240882653954537416875165337778921160128475397031099527305804569007476404056187765588664578463970665007340535993657828556203363893889885883880277582051624093432905118521112622974303835241791296581512592105346282793898469471402060591364736231914869426713577824852115591649616022624343386184157726306002288004440436929650589102286063892000614544385993309602438887280807417234666682761976551654769946694205685909634230636025464135872617757253603047940297046366333274169139901932544007304398687592975094011453809158524414004768883599873102598888355535884846560504047791088162406301682101894560628567284707111956346836375594710231186654107759979915107913288254856875821171832399633664126538720188490480988240556747272332074228549958823290471483526094442934443442587638933279884114567108514370141844183972200257873988402794750085637833694939474184522188264735056893656139960843997156559921224905206424476777609942769243701536377509910261714669303092764279825676170062490713135180529859073617530442140892468659926220232963363057371365089526944391939155546573099701985722065202166982883925383919528541672955852105065133273831910979672755018674563321442098476734961699605860109422571995620659411816770120263360994164677679438300003500804170575249001130789675183718030709096685513046851874249849977070754314291321712342101368994597749356519645586825205524554366570792741245439477510631394903224534622822052418881066819124152639800836483223235129877893018235551403416352966166601621388966109770068709951914822199656392806158651662377801011605086014277700217722134531954170363780910852102851769031834371722937719436242825404969331702491219964030700398960130233074330478832211115934722930277409220420578753534736122463813130687247839901903158164781776597519743034125198460866571433562306843771439124280488786524768914743438377145694170204969427543246010278322134246755082834028805558771392641023049975310037149250838961518318131181951545097806313739260254851694649863891096836865147551800119886117853286146697893639417266659358852021052652109587921562135010721303344570178896176837376909005839322095488603537277071618036841901780730880793046135003076978959903581766313623868854222626190840987709821409177302518234949635609178054900134639223344860161232252185689095606924600366889820326502067009789976823901283578443295833542590611748773371783852698128537280292884198849337148960046394572558775018949839739129162037962364410171464897301210723187277173386592224431771988140743297483369759395292117922017112786271205349051507553925168956020534177640791407918103731276462105659241414958636629358793366198965557624781028209958640674352070903854339954263848273507504113277489388680164043589095648384994330204590348968768759780711706499052579137286609936834152094556875948299253819776285436232527002039297175617512833160021903631948506495991924164912528851197232380908204959266272928738833336025589098575425778752171442480593641412709537558249747428427317117590844543398449085597032266423426849415008969448412636903708163030470223206187783510756176633668596702764032013189344901015292273888657037321058465708516198465775370687136937797890111407491360836299071548158065064221083248987829958984595566439490912474107247823239890960066975430223909499427907583533358710060440695049894550025012361264714941820940056644647898462707610399671861117431001132615823243411242509281280091741770428017999971887471036531596837827480783299849259861254540827121180613437364849497302124034062201611631719168934805052843853185374824017821609615602455329029289684375582648043088852368745218905963437406313633280452122387226695128639380411734071425699399980459152944865376147945867426539909017410066007822927385228485730121941515355146946797606110418142777248456833698138962719268740896483043613626093284663655764944197691162394623664333886219081980992235754556279618318602995227695992997287551944540167131001951593640421566002759024363618744828127396522810542567576336031027359119396228620765488947364503929523484667791959120538871872203220324168504535131825198225243137250122886119901985582184146769045833944915398248897444840707904179228447934512053727604363054747095621041760758295559796135881223729022594101465438209256336532778533803133549076514752794588207898715359922973297132487650390461821611200995526610870024046921306725612472860144127266094634887100082411917384016918143929071133025060044301551379433025027775224363186001612311685663128369199858294186557071811959123667844611982236350284794188880373520988106798935941230708017521011809229362797693349583582600181144346373719806092244188728777566493353835150132123961374329239744376612926232943072796926887050327765096546630953858645908593045194536485633185705647502426357570919335328050169193545840782574836392721455269822351073633251878745903620575116054539727882969227805999359167265260765244324361761394532863752414423773481987982304459617491775929913607535978354645825062853078119260488902979082901884906186614474124236386331995569625348792973946607439238104152410856520450070303579580376034563145763969088477681284026534321579035077989196835132732523795049554023574496302117778467108140574489662616391186119014085386527271286970852562816278928163723877088215042998119245029139574775802410103771706260793091695990420317420617457031857927456592941819140309125068709264315022802675549700882636960776981056393358388201567819171323566236348512245183846724833777353169002951550035611922313678857261041431531440099990071421522774217011445909061656306880962755198814892446312821726891688704596974121492172174606920254568578512747062232669207570746257212914391103340165534567754864195533913955518833731275491587859272787519885675313523879970355304826101407712673752742334752893313633005846560287988868918810278316792126114464773668064592954190320011537057631820832914804928752912376855573807718138040551428481396124682795552792438818256900175297644134308224545238641364257462059417264647113211728036509919049882939010237998193526076502716294789066733096599317285931429779539157755783037806988924179496622885213839598587691371615996436636264860817647012495857845945841999790006945384574871998821496150330523108500684910050706670802861173080849258662082434050329401605744967434811840200360384992442231060570195009495394784870635728196407279637819014921415465099329971008582921656940282509635238226032327329740640716799113265086182384358429712913888508689923801040502715037995776107110298339625651969327695717868922468339737226374860083221623369972802028847491747369945431948783359206353348652189232323532363265724025647263351237963344884979696090792760705102141975599315994081279894818580770529037864072988436999762487258732145774846752187835930640410466670728307348073567608233433375155628025458977967630661307741748706792737203044936912881263080372006838964146846108001231631856986428213464266777899756785412979909655078753886393963335109159452829647557321284532038546710406339761324220949750831212093374252922707212801440112615279583861985988860159150883669832553968153374424957458557082048126652935169584392248762238525488470360973366943110653198357949730102449813321240232242642376960943206899197773144262217878114341789085581050453017171086580853588811427549917353491169837102135811581923651330484933968748283878362327341243259139403183417547123594366713606712524487231888767434603581332580694435251452263093259323704694588374607349028994991516658275663502017941185003820152149949371308610767720822585522680040538683827388083583580698127206270861333874658107796497912685342468290064115416876282631155192819898612497538384338913366110748713622270294107854052931486359600936090920747092468882920280273441784808577980742743943429745295134826624209329236599908305037112754104982593795505018976640738953748429981736760780228144321785413856870298940072485923307343669045721687113337271975035323587370976854757684741482595755982575681579632300557839867093642352578681936043682884710910639651117962313833494921461427556906380774929075917669356471382425472937574471935047020543689871155312683340531242690548475192556987263817319373227796580438398125373872456552993985468125802774953768635767893439481444751064339600267166809637017412589773212195472731391374898495588289099107435337593861005091785179358081246637843811273164039258342763068950873104801763026642124411590402502740661242699319051098629743321593893363852177715770491615420105651311527902135572303068753233912765318016992066258887665252560013883835976124424436616840788962522382432116572802745216148699182970642656138122211487309473817429579440847969387412717954918236285243312203307563836990701896769048481726812555148793056390003072912613218867214853931710326143427817820320339843524967657986699349038313707170782839104061880354595885178981132141683268887799653510983538553299023825802061971436361674075729325208613312958656223016141991134976876764821577544157963081458077824343389239215152211602161151849735264861470273974418990388107184226797760263260671246731821672507589443270694500733473804744306045952241715950599187837410474767055976152136967721499396755885664215180006322077833869858376635323604530423102027804361947441890458746550717774944569523802104492226488741520765108522546617380411670731933487945066486665238964356398564978662498863191709122482800119448916591387236844984146793270833109895299965371906702638688792223755735163031579630769572002760200310154054045203822490246708456579627006414525554507210601483982303810057055909045203847979327267213738568483602391392377246091582900639368200941586156177686837613834845390748188851255800983665507049054448372591921938818251388452424994700004739757821563763061789089329715482342846772886323893700649307980613166587490785033269748271849082513393437466876692026928856225762829983845237421176380754407590222752010541891656027425448516140281739136302175569822597318100829358767104855225281677929551479637775470456418543582832939227214744051174045758435856907047008095277307348452771551372496598060673206720420718998444925616423810378378167084588771311835540870404818085920758476183389675122255920163348937286845954645723340356366925667467603174172812905736341112644370171119367647396467045634645517666811853075278234114370028958379583983641740571273981136733978127281823260321349851595514395897777526248956258992340721849575992321908280033741515789227367240240011627581768428541470039725082593098787325406410788072282442017622965843027867878440486052709959856765603295849089763926306660409720106145654052518853618375016974041727095994071332416574415082997531301437306586689341542339651263193081472062039693955807125685100623460559914909808223060920003958698259484339116550226049598376756068761191857907331701275619372131039923841384794160165613126558235010513943920107155726606556089036538633029470392336672688066392029145689059203847201506764355702436695743105750829615849951571957647732965170963547347701144733608804366871805300490642706083649729078952393056850305999525202560989280062478565212866176312855993931791267881409379271185486404178454385823837632791547710083107693585050221627578067587690702742072052365310278609028532750508327947631987025148913981857785391981957561431687543697543885761516582363414434109690779000186478655416129899379362992902218829133303952913028303161534229386233373433995999824392565726383856883698165233396608246621134677944797555342817272523785952389054290696179645405814567122561376761210682566446877326776584733276336953296329912362881611594225767708751531209121690955199789240079629512716378930363815831274820107645829073141103408321953099529979499202226105479565740788757762825831064479452611550877448624533226715996061833644596348546067165773104761237146209195613443665566962900512824881600167154382944118900582352978795269518423128217619054332673767732881449923880161669721101110981903094778851644496692265560601845842089834519757143068220821949968648107853711551321009325924143518951335479732591565431086954279317125286430443563600551174217191887056567350351020443869025964118029665144645538525705966832426634409045512358053199279040706932047565481302000780294528797154286595943076300120670364584858231983617446682995101426620615951361034797134263330896617803125339262551803019099733757731520967121678930307588193143423161855665915832164522857260821952376558759248739608529961829294546090771221009177390304760594673081970071580685988017396309705246871791413435711065449777868882257143383381189711166246334559364257936445367120671643914804661451325371661074460293363343273900649341895566007352156675914186944118330101122111640951494758761260326857870119063850684296733622710371727213838189390002800444906940328394953188924548325429667555372272179835753946040248272614870321136333864244615020789098752728607979511672563880312393147330957804744735308817538058317328715024056966486713734828168951816780760402792751356459004709066598068245518581091370888245742312795084019852633357918296332671848886535366035345118329362191568430716367332080232930793649228433655087513721516935775836870568789328101873230953676250963597683327540423996622656616651077384869851161105462999868964929094758524846343895754252119495525462112258849218052496686089349073761925302177851171669084377748714186071303880334182567803894936538041201747432209532374245766802025240413830143587911183557145587072914526431983557659116523369372652505365685899963952015803113171699899132826812138245607631341027438450760083857131780276823068598892565383373909868503539097520709329992792767681860678722576280645185655717968819399034012738263947227137824918184318052703230870704832981397099207947593058242525774573477011575455193484806040493489649881930379086185486425341637869465529156714866100582005476824426928773130697869454001488783416801878796086025343195466284023061887585052429320518147156283153532247286103286613895993094046355524305474809741704209750460354546163818458402381246250144022762585882487387380147441240881347213355583739176608814958430179872754911952599113309639539534056088129512577742032011979524061860780565481845614774744150175272725610424094261541524120502534894370092209660546279855704197196716980414180567255597394206522205597497878946510235964155094623266071485978464017743020585780259359386498485551914032632544208607893200981820624636117298833872169480961930755492816148090268987747215053689645620996963232155268227619670487330917684204938533069385541082974256153043367939543881092460758917789342520115205837611359584546511693279709911497601905249849233039081832587078582638552889383957284663379861758030460570313230345982039434970601238229019547836655456789079882002543942835508182507735840812982942448591263589501998063997034090424055658902744882951537546228056265788443208852257044106730514697094917970372341512030804135239347324118233405954980254154369399317522526249632445772005183403296498042706201662878146221057371941495995977411437359776852346478033410783210310827311963506104253067324262407525131821455304637115390591643659831037464255007486934285986839081735088596755562421451870327955080912307777176388483128469350517357373281504549664908025802500257194288180771800242333624761826828397216000264733692187856558433274140296451187098784199792367158249927013629769513579714029347877636563858195013917539168925964837056705227901754653185782714577596539159109090297199483842995337059378972581307143524856015493375045526266166259989353074745221996084301063738478898157700967985812616595421214899529015122704922490321566016443681928201747413143738308997434447926641349289006760058196674726441995301125576597531432481254578135462224044661872083844177910115339324996036300488206156141710633714362656256089608009944843972300646362784720337481925459723982985884339603930515808733982927812917266277133316097635138394551168874562223893202947785125224148998054308450875431196689019717855734288000751236826388047581406550996865684544737449870691959014581221300878312500588380987072545089739354500959710996071934238839871847489257867720597675063166579146449560377007252879188205880925478673518618416115359477078990597614955709461310422850127132956162140390806476264472961561965451323563369251135270196764627311152231490547380753185904106914346762240875214244584466016305590247920358061020399073724722521162147723411673279091346370559717478395061352899638453410282910502150798725519545865372873675605386928977644031468090983743067701048040897772790404487298019880904853940393529626501182789648194975766650274569035544531053147403218668359671027920605359594412783085210148004893537425168700246854992153336289607012035253965752393549473201564505473517596108898699573547444362447025639580767945532066181321068228117330750298168850382716353320809262384018009696228443809314636421137833827179679070403499065145733704248393139774694881117717151075828887188167826311037455902534219395981841086587938466594236565602822285701352867450560702857505894391131802989664570001053049443686630855795571308808206516451892276087831312249628754235382661451611275552706155331949882267273869836774056843236286744595779121145830586855621580053727053180773092468016710859271024647994062764228060539477215559977119395299719774234897488835501161931044017772589391986009719432253659819966065210318968470609876732837657182021138594374995799334632743633422270481996596657286027180459153234443447730159297987930209944440687450848416902122194502044567878158893757645460822270519535020295137815850870594119529597713474984001369317165085594310827264018158727208091527085040067555916057239218966177853496841249567730498036111777952348739820472669693602876606764904153963531873972818779760340935120678393271303610266736961461828458866004644454893667505378159186032035150080532280071959037715544123661856196840551385868532904527286533879018245647313457654880681755186692851192636903922174863646891479096658481094979485527329643085320671732910260319494059698707623971169749495920105859295103415053893562029168620853603300337173818927185495661470384998647783864835473314626043693513539824311285994112302379589043832023339437177368871405212774483172731338410253663759939865000037442919562329070479571982166775235784171606291872865594116279127522653296534437880442724163386422579667283515257191378824304244794617192551386322862218856102512926220160194550381835332660250211474940716033020093740372125311733146698076381383744508439520904378982492931811894404031385437608286538154646589364412880485719459388037132362763035383701775673401828716497224448644776865988992250912662127586828397557103179379498945085966400007324326310419611953032331313632884992846824981692008764380562231735510218585812860029622549155834667163695883994411472709917028995563855625663771413684711336411912844340219505068129388921522082167781018794115395838926186976678857906963825425454374168848843462011474936210990601988334765226127548386948085113860531223597983886605422681569452469134740347945660357878505008122555340740860109300874301216215281969441399497795756823803527144637177191413333968527911977898209854508321744178627758753279678128513104090972535211761428163323132398824976607124809267154000054095519170789605309446272575556620064473177424607377397479414699508342987994034049144576505485799528797635942609140783259326675096498571844210541431450668782462830669464869482325297209361515137644395072848228880682622118853995572286124116595105558588177485196526959834592389928722416004124401863228152833248460721682107350417918786776426532578105256875813911822870145031563981252866293961735446125406306167789475816443459349958231131541420467443922280326869439155326150563804657574470099749583079411320422454610657136087805466370725600042372117356065785594380513247756001576971002624028714657639970185730471128644468099019525092853534541328708691193922409466975929358633900406961329981181021970012297181507358892189006091882015843913661370838220092001740139239062574918966628246479232206346188613804158819832220376287169234206811399013317442487459061270593007899187072525623042130102577475959880625677266710365070095885565832011160545227888617755608658683745070072511926410804522346985544326149692307096805381603601285727137922696608850909323223763226386104589167222844945682205653529497172871178056286258247587055859736427672769304221001463104041177395006955325844303329066840148127155007245635983863376336077246647323860735714486821752991535507276246636765461256428453916582238210654105830582448515019678007331677141717304838729547848255834862576469687106870133873023896034776092963115191172091191769797273385872762373627427911179932654465559027459420175663486234556707063906399403876068399643771550973466853793802354278875199060070272525320731109232091842685042302087081849429648652535436322877401988852706157250085985638434608654080006913662180044175932478807533110634876405102807820661157229875747982938760457275371383413200489720083124113799936214818975270726958374390654921898652886808364231030500922375503092805293621893686467763601802597249439459045008147309095133711202144974248182660453125168357695284232809370681324113938588237131310260451401216649770172181441686319861221178772043825463931173334176955332528470750283976236784577385070007773341222237543699274078529336451929599032197764849165592736614936989461635013790005814801511714915752813510136049209051917693465765876212632929801324920792605884638794556505875184557003085824005576539836648369349952120756348226630260984259398313557860218632351191911342157048369315721267891225484338650987877519087342225105960046019399630809593327225627089468411925249718495066310319438980995988894942138494752128801307462383004474336294062277666144874900403586743350717991659750341454872556376869424749119376354702868875480508002800325313936965386720643653634943589454560160297461558253823708677214989279420822721298885291620335637221441410313298754245578733618204764634242466701799918240600388775947527766794267167592895305310836403210121513392750648098506031129077970270872774959976437293202796819151687212298612466923060800223666494955323788842506574354046801283041320884405512176517879662308973279101970432414406067648238615658645556429203113587188082042375378626365891195351181020963313944625252840668157409156162380415974396745320969912105817993780256578049066527725935319667364100246142271391055179346936328666810485592871340807694007776807368927106635658421728119386825029151612163977952624612546590667728291613309220022975042692416356265360113279844134904441119403833918592962487160049694929184306106189544552474467640864505289525466509319254626205608011495763832061057129758920683199982463600716806892770765497354317359854252478185660927016744170043986364619608140139944337771052985685936129537359600914638748349461161997086481474590732604319382625686270993156285376040587358235074916317759238092651132656170459609882447892923385588604650118498342244528780618492884727470574406201730291504637108846583304335981475313930104656723116002369579388510153805932820057136565720693049904722448007780366623458557917049490791620243927869359814276528428350935191757048381432917340202398469942920466659358396808868897897630241112929502283617239717078743436810381937749713510684995070715934931683154161321902948649683393803552481091106313970728871632277371234358049334183093238524161507197989711561702138771548832951685893947356691028129176475987669314696814371359769804011817980605693346535345217399371436464837209821032505897013654222673623464665271970145117517497943502639173358681113274399421917303122171241044090451670076253041771205518268047921707889902459480446728516982378009269517605625413448070189202108719066205364844018207765138556901793547203359148566569289416463186160133294793770135790978098785729357337865991687176588384024145400593483438387021260107255929576699089321515222316150338352389360351467283839749729686073121020307434206184621562205605826073782257150989114154748924176329352112759077989450991232934540239582291765884713405396347259867253945145888162378093705057249384448720533885864833679065654325504155788494795079385865220527764456885735373829212632724687866086812078171205692085206787168301459821492786104642304245135997142379201547642185780300869563785547116613023405603319304585881244393123325106026249452473805479769449956718747810399181200210634877819865852140143821417531539021620162663214835200561208828396128910077398819388687122792343888407411421002564936718201761362129393434526730241339648307975769149479362682584312612245929107019222185714896847224381399198967054401362976227704826146953665094233618702666680710798818704009938726825408135848560046583133290595475104207658823377751871133644494588658949049604126494579949332621518911439787273700143085933552523529024654153695372033439200080324546365529258043401889486767849394668021750372198472650436695713439905873085709167664388034975592409919525815358654138521310552014408291508453229516111240263141117134506152834714229188988510243841353091740218320994035220807119974269593585296764545776389014625849406994346071547472928402264781063405748612361780463858135817389366075335213656216136393865774136971848414373460602898287674471867948088381776058468312841655731952394160467048652406237522880000153672875851871107397466168457991037689155588172739663119826041610046101880495301266400792504003265940787585080113227981173598133837397987729965977467838446107249397741726589548996283321755810867091228516502514116138977661124397320964792591941960588138617904336919630270858314468054051741515241690920172335316796133185844041245313262873778633994455000594508723891217051993772961208505543630551085980738933901112028880814408686639966579919076985627105676368527485129830615879730115495322929931241522115935473623061048678081995561867389592017441756484105026214805898686285912907307522917573267229627097455682475531463285020632139172740595129330090382203731647295796003402347659033680055606718295266333146834226117673158029395049920838354058053283895081614459486775786131509554563388325836257778150355948695082380761584086160681902085118957436225079597662701750866696125708407370771816013469452691145204653273469708759066297610000345662633414979895853770819482803124961669656741087146573338640744462021454237019223118784179990634453016184714181032817414057536346630096375101348308321699740283131244218800676228792757882857834139760141144240392450132611083622112478987423980362163891716243208277822189574856750454770060517178071980587260951659879917281176593734459757586634632993476259296173339307815231881239539167487441880508670546525135597188414243071850027718586500558051596367144093765799257286982779700076325356952688305847367052634320823403911536898776156840126628849879149498331116987460710022490521637521168698386261674696719029335402773209198198977357257787935187795005321972695254795579110327807625087958243730309214674109210010855779899872386723910648951510892280549356621224741187721959219970181744169156471759122764448230543768097577073615549662560010637838835270201787027130697898080518850641655112064851433971654856105980534462234717460420864339490516784306749561293503868035855905499485820935418896274574617170575600853277178767111832051323114120142275312287515175832056720088973207589332120738910628074541761788531914021336579294940968088895714377931402691797363507864707139027124669216723001448650961462468015608210630905402602892877177993429188208309362266744224130467015429254327275606464682685123916805077962308256550562920090253630424654561969368944972774938770946743052076968155475212995804593795351941760798093808471367880373056610982605333915798662433267531894136807279279144527149220298713348111198065901457606519335970148145531988556100459764049574032049258682195109241055197934257118399612274930996659379309957866177866080042166320581642640403653813018144999052452187822236576449799093788366986598873674825657237567215057580584218790253306534345857096368113201547360868335357042346753750080449508196137248129018677897119919026100969459589408983143582762612606645097621396209459427208775524575336740701554907221221315762847730193668309416919485643396475596535362464709119497481316972265984491953041903839669898168804284258430659335428543398014391587232678459079201853416865830163336606127935080402279029809186179992266979043266989789362394404270359465636799537044966462141292732449871622281483736664290497649743249913831319985556426009225934248380279433478033909271933388545830661336639138105681002021642847644449366688975421101006040778497241229884104073623410333735771139325036543399681559808467442911826207018830217274904115930042213393478381569323093271929239216361379671055031983665165308044120119670183735559180988620117207784464976149773627678661876861839744827023835905628061631911271165829673660890680931568733697425008659330080584145925262141235001050347110299116879527675845953168395145394838565017377868327620984000076201544472844979404437034267574256356505868984092358116750165469934321702231711061105266450171786570471578742091209861240270863551692039871146604630633754913423514359380279029635453873784267434553953382305589735292784614608176213179142534127896264710460413310182062334901813647238000380751959381380698505099061899851049877180212538557872280908181357183002528126647371808287889365858037143112997167340866160547009362026467735761641909698985132728175744643745644334896589520520589020365537280201084715143394476305884501005121071094230914350021948676670972223398575837346858527704113164085674235963672821686598033586248048139224735293515525927366240583470234194626473925145792518340815466195076267678182233739260580202182926907247084772289560566120134218730868103740922839070129732687998353049635744189370614290555409331070826134661039798540146069865897965988576826604536508422855972730958134826245136152970330823752575082605546513263555038034271562963157677626448678812644094458166552091382941696394564824616959338484934656096076397341610303985205236005531670898586249336064274440868438034827560618027854800295326126647931370338536885395355128778110345684071224471095981806973035967719518146305452037284931154906672964620561902896045529798158514237864407914051947219179665265585620326343245708711156362796208605357441942443277459323955920185353127458412696146394236069758691318018922680437555051339651451834433455213071364477009890832577997485779757741106644228029852967326770356820426293846489359107192289443678132808290926415666522451671032672212510012829045921177109604351510908055210948053274928938358054251002215311076715685024494929752546039216008518402718660416854848378653094839228669679063507485765784394597896656292630437869976792846156997392021728193950318977197553152305318361018730377172422107116193217679789474688485295127240533225963673483409094948648948846373047074953395639253082979848071384988490065889169214398463403317632763870373099106192918289179176713193434494959105951240653149138846180039208088857084290664967819364717468135337473955864448268937568662184197037695546987683984642991442549788840707134444394919480158174733597419661655832154894441705462652134194977416669754419481654287489721698661283103283790056416439740699913726102082174525794077853003487739199554265867809968888740666147328923205898889715622990767696861993361100511521472138233295570984017248480070414615509271145321007290572895757600905518489691963931675481347218451115669140535003902505236450127442635421993226092611461054051093812972519252502567810238784891694301185628418123071230213400860463357728754575623316643222007251929688740413016652653912187412335522293279059357795712151972904986947890375009965710903484623098975641425454816006094157548624141846590265632968218635622228411605634765479783531596250203841424836772602306452537223624305752138933108239043145514694601256484801874449100368800059706515895466287897051195092340652222312106477615364641058713796178262115706746833613282873901945180152380474050622091291210816482709745236146488315160560474949886806197392346352633488160681343518945319271311986730627991756671185354493792785274131400180514125407823063808504820379378076542194318080445589528406747662892901120246683473666339307161103446895557224449890904468978938213650247589806655462930545545745559613529911728337631942325237755283083727284112456105793085802043089284341654910291744955811137932252607836516001229209689907868958896941941721622584568650223808760269109433620345702375926783144302782115766871829981741027461131590085521554203835288525007222741450694503376426862798228241368887151581098089268211824425249448174287885135969267187719413311926571340719281508422856135544613367635251190469105092182802969761169040153895309418346604115034891471393453967265225354914569342838476291976738490766895938641182355896217504731415216185917405366985653277442283317484273923360528630268926766172563058444042809536334067901014873948272069128818721587966581090334093686317593703880823499491119972025527201216568121778186880308521308092559329125609877757298388067906369025326743097630029115305141847597974612920037139050380195846247751089940853189145670767626796333929524206042592854583321003434957749455833605389080206365599651757296789749739553317311637742885010326057540300014972592239932244694893819487450218386454421623709908969696523959454536645621537965984836736055540484823952370699692320112643531790250651642869077032455687760689704562420260534079843973969551164363276656947771421538926705465605280227735648826748629049545250781947606377213279448522015124347842783693190492617815346371426185069161766024965209776829401134055401809065132276751069544302219489416953317505121371144811609098494164044147752775438172794327412641622532172591905295596374500936722405442942997325182595756413134468559733420967377590312775875221758767228357306043619254222715948166325672508945668163153901290198996929913074143361300173656246373518151296646809845404572411826887879751413751865354128290123163611458876746847930655776835805642635197751360574317570534913374544421885085730967382926834186333771056182783292904584237270152918153873598932574986751108335535854437763316285378384612726187121426905730951850965914566048039716526368090992543720360922038157264724534406659218491990549815868218475941107357195013696767236567758229076772148648863102929867960934877855840392701006939902627595670634177610492892818815328059727261147539658295436229152375157807912043699384657424361048528551204275841292288883056758620124755862742980831031092919518137325151223711887968030948108513396204867885152271604158533457101831968116871696656017597028036910002894504238970240361266624035056335185295859808206824779401866099655904121262104434093914822171113914313427653324886813884193534542616117020437036598149405622375462352310142666644140721144474731992925328546445431651384004750764936500426259489458515676751624649291058576053146489858318999824973827859028109531911130997498331050199674073985668901747393998307354313412537785249340309617412552679284962132755845180507046158194779558546218803897960460730063581638311123256945965444216150872110205618563640069174898323135813079131940317025049832593041020695688273238036196276992153405913431805048244503113200801352199836813164449263611216560185786255514139339598903082962252216959648659420596657119054010491527593472765965135283754688640185763773734122396339004324162645527721303076126655743394472079595503988405232013917015996273937770045690460691920683846089907020361474208443806320123878368919955860439516930779525892723521081667866831289998981943523413820525905055826301905451942822703466598622336625928043036252519600481277842173818718491586898638410935360160487158255094271358519467436484756918611108884208401040066975581730760356174114135198989632760928871451107346939212894129105680316174317552184226561272647384312062816705954502283818610894732990354422201593470346003254056357010273850064094304523602806918398438392350334515437359223283463030324320357298816187816287635788953120318780893596601194497450714461524089220123920536241708341868727864252861773183487036166018798772192662779629288009372998807787667833282206428442686669927398795448083755839372159587711161600846840668031582210969357161213389005237295232958996232909811699836139107645662361419485511143694877664965832536706916671197025410101729772092464839197593429368443272080110512849732464772142802839841695512570789137899276651957941107714884770773341735346006725091688439516564873959170443512481505390620981133987576166712150556944421702447459464314437163410839067832731087764956032702393889919579946836887123713674264254129112729204546926400870376566457363802597319631717384620750901070099557805103642739492182421126386693125201849524875330193830422831441067984768868065536280731042197535782996643484872002939898340604231928509858040472041889600194377267427442549345257328360034449716379286996508665277451964296442756493134825326386143324966447623394086319083034282063388761787256536325394504848257499160034174343794149353312095711707249467915377899994289857393248648432053786675627216350098777750908331705516859390635472236720739856842118296817704619852598659556862020365515121044181363206123628631766057711900593587190327138907251756722597771391656636186194996180960756265749241821283899198603735421328145202677291996283631601502919257993159683302189460347648438244156120409013519216099478376216775389048014326142662780723844127013981134230178344720103164923668292270086616670759166194675984550929145096691579292413871069158357626176405374493862353142056089180417899895610131450560557570414254093063665068612630956483322174251295998657620798147215725885460443529609768680134826141273046204859495706998452081064907954164207179512678475775862639153620353680918728838517868707763033849467212672648932407790606640788476258167382873010064171851886803102801079855005834818399169844834931473757312708747139709029593141428961528837670343577433681727302165050286468053826456507353853678331654594902818051226782067492329364417197646563753400970112023520316713763042109658573896106200841563700661080090528730977562356951372132122242323805490949841631040969468736853956790478229366962551949465464639448821332274407617295550435299222507808730851304310974818549408911251818701458751391697652687931385474220448160206977361749322888015660414472960457533557950501687970043776405488456493943312835024122484450731655439991627153361537522687533305394935923988776920471198656368849454774733570140383013414850734750363277053696093800060172090326692803383322742677320796897434532615821972638641303972175493683577548893615087408756100415721529758940540009738473990656632770634853201477952990530804295602130681118616657714928189795725967879639852893716399831416553194658069561973499984399680551868279764289414604827430067413264743589434985135610040321157631805907569869714516472760175209767704017134059133869357684259874947476175401326610058762600570725947760772180888475227451532623160432389201305649960244718035657193649779999528166646580604003627223859065609658989214741254370076240446349721254756541433526928085784271997834115827043996336340819106564427882063606438369273162422016144342340112270109930752666488407089561025756734373637882125261129627713343475773159054179051233396529749094650252020971148382674005803899973890449015571788335838409312321831674400622459726347804066116016328205262811570482907776596582170410452447797779863476555720107239912029849267721050998283614804321178561237135274955363320534978973013948177963826259272375047280580377624343924504457495533111072150071237240778171880159796445554429858919307850305167239730394305703541083807607476711574211381236734039765654257857822968662416936328966829902175289223527748066157392691152381640584205686098676266812986396994006613403175432947926967666750906274631909717577492771189770066175901866424574839299335078167166369551244096763634763929380933479262102437857717908980142406336179323054903101226259696058800821516323507865615293760195721811728606006809117955199197957740089270734990004645734391143897875939902005762963360925958857869880772678470975988206412469815102541701713410908761668163092755169848092804115173732723178061879272130123418140944631056459433775952419529478396426488613857482442967430205896936936182437115096123523399449503535398859205253732139107632988275184786192392711074726596118111396980433048320863958555910488165893963388428253127245712377772520381227844934993263838364933546118740325103786246170509563100549570459239010704489440782091141079772215992564284078885738181650012547193032109748812423191258466688453703028449624261074496172209082194750128743976392543034056490255710122308513289195027959388105098201333745099840871472887255899921295740427507341364013392805311068373374948034631056089480077021536790553806469874737366990117177518573948761066746212206856467392468521850332422770663111626162479343138848860988300664716835511213123320979626199641219378588775115224904094042510169699456397455218420291705301516164359193248636243109289947365557053664156742223154673787395350224045955784500284598562110857045544366428796753002368766955247547908159360509070066000803411143877792505999730668552244645788162591055619278210421345800714243222208029197986846389043111600039519379859678198502146228566840785556359825043958926788412553379436178386665878177986264555357880046924738852686127164952568210273614247045007826861819640038744154006530636143517969849329230913417918416116867435823496493669656752360010223481969211105290291422867827204016939915895554057345457906588554035458927879981756181788870265965830263074156457510910621282944579965503434112599035299441573645734553159459800496793665137338566847422965230277420387883928694086785569844234149723346038472453244794596526622527645418156880068901613532484809545370334438675062585153684276494227724219133497953202080134536134216175674289841071880050411662156495271533636754844857170004869176560581805387107251924270329458118070775907686882431604205162539886814150592620613948676723618879767319089891480971884728677915423088708937198849702627233530591918382819972870358704693523916526689373092700421134878565463839848030889281021820657641020911513684183661750465826184037622993925657910492434662711987969934534450545637175721502703579165432188428364504033753093928198658771116070531911187202115112704589781769603588661743597371910901930863420416426020427761226978737273021686220204443161464447639553361091641427794274131869908521381034423265493480457850296685935899807764449308125988506507554872256839158233908407492531007113876242412284483102960512393427658903869877716605836349023857340325275466818529680999365323401759123470852321246955840111513924066430484483621943538504521910253120595941315695956956455302868099168273743834565150481991710451624260713412885711570140990420609154976500082779870826146049482757558446804115393903970155136952999590470334641711947661222424192574427929624111837653473151026937815256702346875697182540732294514763324264971386029002629403535284231963872195247693902829385471527527095826104587096395946535657146380295806974700964772491303988632127553793439643899266438770678921620003084554713576487555971156826033611136518967244502167468694353399544228251525089849743204336807954072152426253991635679590596155077526444043764916771066665871340240410001581183350431601118705291681811066946682285731690009588575598111627041222224185322530825629009481711320688385809635866566056821977847523216421033105156379770420868955498249543355279281743260465838393195839723427867580994395803190778629448660722372422496532599456999382856590614730750450361169586531797113945110162197675394742345735730046521801401921183934577317557714132038069497744752694305119521793529210611058509792073073101823875474608873093409133875058336031203259661089389802196384436105417031730956752075911891366706429628787067894058223894218122232669814994063415876491444991712722714448481444655177948697138093756238821704279237347484472339317634377630181449331017998037956318394744931305919984007474442020768930170960345597721272810350026800178842452419966133430754746655685047718707422086894880886402557884671660643637780026381937496979315943221809396204815082749770602384458780212866967412907295608127769574495121359468281785946166050379070857475168814697394366321620010494795505152800960528831351901021098314252664027017128559996345571399082717824416257181937084289525896543776917786869011258900429600772804641822319847232415265477804554911345391447616231457968837262187863047328689736144019861846628791723404099065595486989714783062839941796559046651887668322184597706271101652765045928480054972993203115839213415703597431337417091835731692404098860855644053322088809568496884232806963156924638935646607514568510285664280569655528490143876214990223303969220840567503600804097892727310551895252968904372957685315502674303157802382001328575274498582814210294156604098542921811890160673297693532617853882052402314162272450839467422597818660050084185528904739710804820643575073027710737252921222873317756816931640059606203928202780833196361862213895076806305382979976551037664594069291829231142238720402876210023780902799235963104176080610863261659570249428331206958255921411399069756154043020656061213066285765973084736446347476986624383693195164248082567045156306780218341756755176664978897976538936360960077037844413276729388827562676420875793961138520228673581982610814516512696585956994146671487468605209113330221469505700754120783609345352147094409265213505489630956507147054382526892789428474909157178578089489683275071249973080575150687713598362609693093435113290720265358777536782106337517162276533620181710113142142533350725394348417008612470208877294502888702034355879582649320951505100662494749908243341699920505196942000943501114915726444052640626283833581133302582263689918946364170026517287411448034926357178625754996226633458302283857000714522086076347869959080100249502088964391032481440746723967263249851380781323849241847374002980220480862164614750752522097929046603313099758977932966794839795803102653987283301831358968570465062832973312918963190640491946593068005534441784958934927584407165150673820041618954524376110782734262210833591632012563165277243544935622106300059721576446580905318506399093265636172568600680656186985649828465733711089164300737783721509612953194481799828031555491321469337458817756802124573049906216130570076387895754937882320282506120600060428610280614266929855112092945262757863900942523011786404085361798152279869062728067412604485778426106895190142323277799711021236197871421916151915728914634291105451291889013984532050184670661381342308516532261189789020122122910056805664980862312117215970142704395629007311906153663520982637722004945579072505113695046722993459310760254520645106694261333439809688697302955147025146858825536462403413270983704272245366391529103728046222171158284779684064976574906922798575592656573681500647673475400299920129833756589818444364288906517989340913565757270026672837892897125855891507784880249422441370263381595532901250939473297670486301808514074350917065241139290472824386888855717077869406122183298931164740736850268670305129982730583082341511049725588374041844984323430551594283078949334536591039621293630005039455323254009759600228405765796609634192111202290527629225967287590651356558592192747958463121391959430293642871972505323405706569042335648200451203820747877930848675762913821291905426903346471682980915405289038778128178569718415552933067332580994123387207447343518700448215498723637962146389184263459348782814670677765820559746488056763205763311227909667551521563242438111544269232016445206543126750284673164583993107453966604951017624351678853313518184886074805410318336438525665883250483367368701847429688169903816554431944440193186529004989225831214156462746182628595020451881025071746312224478897436944889971736101697250645052377004666054843986915729636935359526860388096526879690362554992840548760606067866922113689358356652611381457051401678571252784948440576149469824478920422167583002026343011693222836443980548920483208789464290896577919445119607223770683245590597811533266612854192705082335164712623897093353865067135991297870152116551455268813854280069435992764352377483906720305846454851343879063691280212668160438255816725486757170205083523648439072363801078948644223953220910858183585492191708845749338441729923661706260947154981806641791185103802631653012512771314325144880904233725743186549663122739210545949813175907972482942840603307319606685292696390133086474782957731243232528166223701586483522453848105833749980077549127984977998794793223364712872152083762701861642848626238292515304903318308338165119019986894621116901393725222466304238842126899454987994866956814755644612172259664953424044644168819015804471431243333852929003840712197546310930688298762505329037210194745291836121629292765454389325081314012266854470130381084699526379827866140137839517018260746296907511343919805411339903678386860166978331793161714706660306491537963546499718261932682262005510009208626820906485994641806615602865643454828052814019905700492474281627564278023689871240479183624967823876355947187457896371498466693668755935904992983319193249355191730890827695844461162199609035972942898229756305596915012104827021023829891681914565616880465164721210496292243601070781509133182260163591316475919300393886556112964973163047331613998126062550499147786962051419519652176728361317783816600948205406483601281664954076006452173923885024888250283212775881216440791186070681094882484856939130398299033608015983164014990015977933204459565264283034476663326436995981289911550537891896604796927093958183785282903928925718356142058401965778161788581360655083017559522176021704740951765428561199582497549366413639927271225027306276046698864714697070060977411595161644175701104772285621977478708009584177302032814519223720737596645017548671018191629053680790237015222849859369400074390241726487946575729969569209270471866729634352547655175934241408384551324343503359906860671872285461005961490481944272679992860026101628713037720724309125248861485209487725694511805222317091685486029088093600384262907890114754567243483058903413644286190649371810891896440701317889910629969914073459262366671830490483856591400372329826490032084050053215227619274314285422139733729123377837357002495428298592908925189254961097375112738771585358127270121629801075444764684688446554342443875209261067876058319521912013599495165151008947335128784389415474852861076856256198014127135464029960814906715713411163341920108030688314459294400910858691351535543511815018704897371592980664378590061658657161016884950912789004525937891749040344043652617553990248656609141158585799677647092716801236429977648954856171804250668878728576174391308573217804516353602077558689387975552177390823325260686045778908117343089708290938930402184649579085459043217089821643792837505682661536260990680976516263735605162438070799976289170191037582621509421988646847376134907544779943814218809093911517605731867414085116272366421576362372569356730696599091384916868563376390819148025653732436359832829865800263060728014161013036620036727953118557899002594781346883532360789151670559237972475670961573215495612725119886606483915237925593022253997440637753611673643311271465505451033843154423386096258338098761210534282840320699936561836642888525435033802702650524854078903549606977779925243275010380040776729327641076629859110649747407877187144863114182997029377595075081491974930049086711202424101198933330590144323663311055533942499447603386791225043362945387153339983917250993304846706020816568626602430814002286753102301835255488656188554120316128239422663295307718527440205542104169985661305745586898279678091499533276553064778868087835119054970580283771778244782222899895973619213285121676161579697014829608521709720070288120911329906182247688975353769727479567380039173535065139625441864186282632015079269200317399501270070082552409606331878415935419322719704301694878023389760140778348576544398826526806248089761305024380953847888681045504194027105399723464772499934258010165571514525060820875040320921793830030258618741512196164188011048173315987166537647642028769582538405933414744201532798550912622529579555859427966012435376034536772793804235198900625144753245509003516129455221413627335847978065827135011190550780511338240783757835836376137447186081989816586553923555212681822656768728055814307759923806653024800546947857685497028427267948145231191999789061651568508712014170652027224597838989845493987210769480717660216960245557746929175387172520114755142981817497997280367252279923072896498923481574271028645860182138597667059702834946981357893638837004402286617149162129194725550010516183711725238585430995363783412411407375904868435084403186142875706181209608906815691010927500161086583625295096295637540497872654998139417938044366078714386231865088811593129257092356780272767918980895612448458221226521154062599023130321360590031415668187383253948679730460234302525137313852011394047078217851409603154262599750423361340598336587254968032991467820417956131362027542901665162804364902129498075256613187425360782481481234694925835938431115977067251504344317390905861958178360054609221417995389417442293164701441223747792087046814208729463864737293410577243541729214690370785725512137860869867946877229490186725804589701914005481058322215431658547933545664678836662655805345510501297055229489884006375374706464434625581141917764635452942350469022120361558506788805389004459616901450787947741430225699683019394496807250251594715339655426222766002444933942642496648797501904437506020150886198725080451292610605688746732430738931324506275386466800862264985680851805091222902815804892528963589702217947864002642425166006745961992313825109937245791389725167636705796503872906396324391029664023801958403145483415928662486087490206292512094168120057434617186620392014800514697716492159786977005156945543356718757087493172493823316739433619782303699479692838495906824791597521874351749126456467492773111682688611671835379160489899611133082877266314593471008474534376295747773752383691137408212212026050810382110501368758351327508498558049916012013052573925005279488839606087766109572455809912864470839066714283528115323344138570777786115639331426299931577521078300279441897364392733326030946776284763157294826894718270482548040001724804886656073310762176626012809661821829897597976970289104109474933291304251592749691560191472326713624348975679966520869955281171294680064951120682594930208072885217731254355996553475090622699502235790563876313469244197752709793901172919093154134103558698812634201984617801437179851048684964349164057242568998214030889538794346062127010130611923011311923164833609615728076022595267469240281380853714720051504735736485730232665011266008595682170985112655002718009991912338505894057817748068261116049331236159099187159726843746861282198865404190290194890832421810454428049051488669128541912369721749296228514572322108267348297069616089962978604875533734051376519395417807658740527796567151846413320237909224862716837770660886430816252088393851371523504825048492006901164755567677105585435349859857350511881531872431532191999311621285994496546886990807770353549604870567862522439222997020742184178640233853265496210274178622748202644384898761508804430370414019140003076971562021250108533316020626234402085135473252024472310467986165415914974536020544015901245621052376573738540944210819623981392456021851176091865152118151443996473829826250212593101877610873851697537061550482207276401493177004155244816572518493763834710331760354959051341821636614835865929603222106802325467231784540118390618085635376640124371977849007443654964603738096785756522593661624770425021105377511271500951555872333329984628647237209719445426685717832460344061644529396580938133936815109634365990369242727654770247111133421848004725475539478090854912983579495408312493102231296176758132335497940606007416253384970022895050046839399690107092716593030597735125753450211619218691239551720145164991868672903544984696383532209988004499647984490909915207073356427374742313394787008927929165845703749357846982827853295694421771609756818579792948668161185794409590263505477791271655014451268228163702272086261651850418214293643526546600094128839164405486859116291586016467201181169447791552003931305817825162984720374203934950523868046950461241106534794491590388658881486367114795712744995637799603366618915486371478520126104488555362397049393073467512576594813565763981600961315777085442765278624057339240768864388701681006788057546224750910554971326616118604231546018732474496444037983088834704303408792798524773512792079361329494465919844039721513866948008101765847960861437917794447651042613339640112329565045436353116370975185337594067765418050105418599453284474807416391905095698032454069860703418945793964198388668663792339800429940044191301162104185482111528831274284961077706444045362626076086618317022052404337049374563471080682951900949444256711801841956523729253813662695645022390623698503093347947665818418037625001327052199496175454157828291939741014806173318706129225395269718225876763662014995345350034699178251006710367223777909552062768303602423370513783835183090607912845852439112728832979592749598335110412161320466959996769827222942012612580856238358257135275459616828098107320217283334805391633300548826353697049046472349097136037610493761211309814605076719656467662832936379759565886234464036272394190855110098543522500181227582184098428463344711103029709483729976933780545398323511257785272790595946984248549872389045588047123371497119949157032098904757861101278231155030837433123485101517561930528874413589857447346611776344084940152065301498435520816742717281695386797811917746422978989121045443811904057840565073101287711517230125539687674530524012563624439801371593009405702737092856418276066747974695409260651695472071699499430474026002990173137505324865393365272085736947486815773298243634718212253537644930659368175001785442446686607107233210031374780880047605627403577764024022694624703389102707467505161231304567701048409216505207612840105107928947297596491531077574139658342119274509820593074439827580605841325835992088357750113962154067710730463265686383181789522030179047712107553976286300302564163523447407755003061386938771118620243551670352687502706786362000142587967596239736490547182961279164543118516028591642062205054315108884050047097349508648670100134471538047957543711880163985118905812714228712302541875782754125532325583608473854580148416409588229115981228351637585421529535455613498844677838398311819002645395561957208312521390561810856413888606282078030551106603199924425011806153539445889391125468389089018361264025053042821707274416909961928185580672714484758166801611098313343884979328435772609987775026725290251060526293227892081683308666120886669302634412796584079483834236847335370444057562452792104720848936303310359539183975078755890178931349591983013815158465360225445022083201855914642244352868899652139540903667602671411073306126816359043697817913722584287167953212927957974878332971824464186957021641305520441539174863359585408300380269122351341103270538969062155596930826319505930558309963663549409188964593713990823864423502980111750174142230010050810013350279542014381563534183316462873301227474797733973830534814767271180622806109329120870435619345664590006130638679945527443037847876534887087918486231394571940367296360943319769400795738260145197791973271163890330171650376078647389024680601107605617205095570719252044305396929091708280896137495335074800563372537186793166622847327448582209209082739200095632729831737363422739907001128585147615980083600414898971386422873395711160940927790510005219411474787733680006096865335543971639006740978980037404692918991377643508334551741002549964818215103482845086587303796178363877633910976248454632682435845278333896697613775432899765590554508948975912213759728546444841075650447790040843277157406994606094627665471140567218683420373484712378821979465698810984798941169020156066066068286769389919138598526994869331198512108296506504069280379933332749274589798148035253821407255039402065561997273991753711316847188111087295297341418177624159663824065328495657011161480654056164069949848433394219262498442248026432693976743899752836238022798478181916960461902032835526054073079337747610981843349187327589500751797797619014938423320528128624658810586168424484039065351140393590700017475152731601094726192250860290639629781242129680315931393130465981605435944152673176607831989291965576161195856118266069526699834911016108282766903005350692917179978342057620474469151165001067583404635276832960718977635556679356235400952152181498581768218765710601542584589919123076031939368684539510906265639804132356431123389956777337875640364513226267508480747627928354635386031027077892277625015461559808852238877993131184398531993193524934528764695175649158325234059607982632576149495404887720915984030438318405665534944644888223047160234274186321199405410450140742708875253131253608246022103942876805005490792150240412973906397401474559700404967907030668603951546622884893655767219634375781799007999990144872838347234346812968715431607056874757095300986058331279618890837146618229449928274016535579337989349399301775051317138141074638672506369793891873255993473074428461961597051604767350792446245026651705688715946722268095220594708261140376214092667015245102563906699815171920954860478179707056538908777827458600380185259093482287769558683184085048036651876834091897501706973940637541498532710435920786872172577822730948080812885563811613841020032224372701614874832582572308331557388290853080065375326935660621240778842379157981197699753305828878222505595491025753059868906756811331016879255399336223383480312112183969212802532967609058624081142940932764060143206057647331129704181121160685153883453505973730067071005978159379554290937984851897640667217048197769787976744792531315282754557153173542878060814476536307508496450328899023990169649695255154746263819598061459768602486944074712243007699837156465696578586345034950668435715056604113456503508562421845791032993789866962552537984985552171249002238521255662677862174810024939444045632500825533640261640130554656397295077630322808991928888923062236187469154369416195536658148271869527960073871678301233945027021640673326078692170986538880406036124939571997188457339794541281164455441194852930986519025086730580309968780467568769202935481317701646639719002546135391943336072850843403275502537115848225925089348440268993002997972236372383841954177441744212043792754638855539281912692721388068149085585746342268645751490516660953252911917527393634998422555185318087786273685018156238744181327791533666015873515642055291151191830975215287617225209143318556348997996254012652367234609383101133894827196865755022633646639823919908509436053308115842960314511190551974708001717957995655084306995607850976166676792990859853708166802424462440320982545756388538176563589543220665740274156614605990857197860920391958370946879095355764307211356896943347446290365848886627981215641888207771371406143881719037974123598663729935319227697165333701305041244508933255139877814874069620347416547660856363386343824054425659855810882279431185253386274485154983671620644470995838622798410257914546483328445202207865743785714490325454816421880984688228172394351831066515951265705845550824124288090814944985025997369182586831754549559282946996704333433838047200041649698470507856540462427232905532750501431690546213507253946262466182758866792498533867693717925775308502703946686061569649983494698863213669000215622056802282638330841558409006673318036073621148355426986965990194542914857669899025688901172544731172726063902799514658836228162770744632889660561862258969856935035430501194931257820054867056753858548094509902705463201326281389866344155156053867313319010051006623520899944604635759864464001089120312279533915085095918557034523369218998656962599956432789218755377348472725960051994078395869670930383265672318931051702659759697810960396043659358233285937565981641845138187260777014562724278568462568094835327608686222548952279435543043348514893798256149018272297759350267335505984521594160538290089500962869795303886627717516228263945265307936656526214400761259878029346729893705114270283216886252198146757560046313173525508839490739653997725225967853738690283133871887147779465669783055573121715756025928825180226104712489076246957591613017279552695642532174654551956185250978735577166579724007321755628339597111355280579525987177557032020227475404546203105998794352768386706129487653796654371781409831506182313889486950753983418088218644522499061944186069661599991432223388443303027997670493640210060549764856403332116591949219145566868779933831545646558227396063357073696080939357939469548833553052908558864396278572863536307297694826842049742181481621187611578310829186169025633989434527343089123275329612657594230955936926429193499634657554406244300236756212750748725265364868085153795789151367516194159579095786645566117903255055239024454221499382289654143221333093441830175883181620257662012632623464421090653755529740920918850659762828366733024014653530951700934351850838299577917846645670373438098829880129279078960815976851017020180194179102051751706792025777501475220485411496876887430056215364166675202916179296930338936168592711157403656329177304988914437876084181726582458697467482059880714324333458049016772197578881346630495965301848004480195444885494029208627224248458762750124348432575053411152810313123076142870639626058743507747753854390227834019195978561524021959899182170659108027042290061935516885044207278835433435444788101512506007043977019703178440218351242957056979141248018352002878946744146651235421942958610361807820885251100402799300674096917755561750830561645143877989465221156145892231275903175666902477568473873113344162407494813291690529786523357225155292504949026722923257316831502492221652762521264637958415488164739208115843944782337560810331481599637075175908685842471943151567656159370280941519172101107340509508887754150846561595934841979516248158345538220947012672111254625280254461242595365397772088430956004752907610733039780784549636923944339036575319670268353228351707854395188211327233478160703403026981556252301120176326428716618322074027938921879665760099855036066642221910410186477221371869760036962778932312007956602516266957394303385691447170337007786511051649820409030388073018408128689830539208343164772625499519910352166159908094681383335119411934504003071242220417413718081772091624871724766804451251717215521788469562697202006333460324409726362702739801544096195236146397671912494409056138326981154005438817884486575280672240611401364963106792809344158409766331876881781973676391291658745033667395669120239694348383573025771104171729906553062832876879619013079857339065757903363625976466674159215800615614261990304076355427217821907240373371965896101380610268018821970316329481507395540173254080689374415334230280392036500830788222507372531319915788388392819938036630116110533079346226855574614696266476845110051479886932019484805576571335110252914941194403478751751102541911360912126526397638755320022151836197019169928232347095910537700087280982528532791901509384699139844171705209038234854349155419334894506707293917918545150874695948192024063230732732859024930107202502400778103230914428559010282008176867762648941543703847594638117876204296899885471003198666804785284068500795161243082030525556967390762902347281276415199787712980787120851695432988750930140989952180084912618555924099654670597252554342165082791969559514435455340038540499504393712615439107401256886668818775109354887826590324518739630801641412885606402610970060685971973204767951680901477081130539944876969130690415526972524367427490020051156990150522618738387877375167242439308918613603895101853091037109829032995280123397142803524314001058369490573357182172460684345499021520593895292222078215367626542619958258245440182071693508616165655136643426659040321578644521915261518014221465274225834900110951649929783745916195790010338954268585295930439469530330774933513976864021775795482136708623776391312390835548942457278482637228877945611764021603913532831666512380163936382802804653091968687725815028515706740223751539457011932174434123322805403357383128011537769810686999892697348470349153752786817533400979547822770631750057888251985218282235528184566783150312891267646897785994570394602332594174659167971933949696405539053211412420257097712420824606662652239201073617127078986998832597830543847659072091692119341071109547083876073276006286259658605318866166428792685024530054528397198643156606133326759309962917636946752221588025275329447195465007712097532482227238614303689846004741552323366003688535528983860403289875372353473842617255322427014739910282157215454623458544768695498681778580650036381080440196399561511760048831396621827530201384851732926155680567596682045351149290741938576813090167969717287963046358340771804391262287381616955484484066741954512440336295757703207173857503852365449108062628698637748223134276976997762822461899652589392750963394334136456805718834561219785433959522522028513527492636635150090938306008528343015236261424572089097092570145865105622397651060399760326526885687405837652231152671154051798695493056274567725262644822586018628662647381545132108771137687421288842465460234809158392954668104171837021860515263012569381762468011474345261815109321503321375093877359560547763157261444346034399167216980569152402847990250265679354923465466207900381665192990320732351406940207209993013628848848807327794481807159676028032778364210619143019854099728274194948347587210546838061160161853921586232225725165838318880650388178016357129977626321177841809367695661179344743638902181775103568075685472730676664638912706741190887916887348466210164068215959273128806184106220902984869531707456216685063963135972528677715917535284267433573223800345139913241484820196509274918659087325790889037662553533464281400162507558595188596286119933874660845234236930264449391518056996114727345578588963102177609820652342589817481898128303561230440421002297721139535801963991579426641213401577728523636971282477677140259464737884992360008540124133666008248363015959793665213012772467567119322683686846762914919062011814900766104233620582700624579573746472941446599837788317114351719238147414854010807292177556297935099525804009246926638131454959693240203133661596095076565529205068785085350114196348244288662606966049121600529756962925772585557523305151888374543036318142801648497088409957790032734741987260325650149318318663422390885423616293648839731604498295649684819522983523888855100664678236772333737480306229444943250621931215832730138301700742853298974069831628014890222093300072974928745226359450921703014431783410151097833284070951518642379692555938529959261353076826930574227368938555692631245599860768459968460618179370722819166380111573198538127924837838329391788944780407198508451033971701295049972333605705964010414928258240395254898370013317746585949202745019609788082202056249154402071632836916881379982752877715595937201796680317598394870240626033035135188270258990707979364339475330203023613532695442628556219652473039042688033535069211260060748364056826614317256751299780734130854249132500235020070197833983084428718035411787979902113448238031825349947259796772272128967637353386530512187183280420503910295783347438994676303353954560762165951287900945697939111841018416379425422587876693626556020862660740889788838668909573120954367066853727262493433919065712115540252200401188128297232924625246354713921135312730377927820010343219345954446993976763578853677934650540586638175144425151669094999125387551096933064428250818619715573334300698138193445549668524255890892303995564635019158400945773033312155921452786401645381324482559692489431642989034315488496067555642533898763676545730606105373843567220495828894968881455956705798457203149641147774532904480226917732410936392790919711730039241758086018257938783465898271465541661152263782314713948098560975202816758068999957067215002110996411334050832092920267049648216967248057365268086619797207198569318028910959549267599911230684988522294710679829250899627205915610034267477194714627547486449360950014338613274333594831645535404977023474350873359588799388816659243059598427786484437469433834516433658205046982122306459224267741493208999830940793031786442197157226042449202372791852415726726109405478816574962821161410276276159858663554378380438150572639000194535579485802602880483621213244721168074624073435098348355843619544975614806573671633355666988620915642794682916340674397329246219228803651866473864795075233311512788793269603352022594034752087321518964082311698438261394107556602439958457886270025487531680124855071271222908296381400878119188045717129276934398637181896953820018549384276952393994978045216701234490544461877318377059789907132555141154069388900492303938706103423426692480229337578358194864648100893685290906449053889715076134452745070819583588875115874149045351334771052525684494172335727531603869600205446684150852195697782176583785070376001792431671882148514215797613253421494095172311093583123989519615808416865102727105008501321030832471915365703034886237659735514577577496283059930645125142075426006999638384408158531512093001164245587608865263768112962162868475140816819260003005938673523656310868563504495977580965115879575613958776228563914935602368628448806684292845714759189565319114314393157587350559988425622952926543315104910393262940568974780184152256337344240874468063526776270466218975009368498167083669434686607478621742914898119910225560455683778037666613531962641467206060656162374022736243982446913721389847646304031618332268610160888614093377944287641578733311700471667070316896750302905583896649015955598167147295656565552405260269979464491411396166639032114168328988956597799462393439167534531965305468898723029616559094870417139463058191638696092616563564962325955510446172941150968319296783879137441000375226871014213365389588096895637722988782227734008346628442111941959424781678587893662645396731328542083551423667615284934429050018435510323010830126506434308495659953733977548994778042004082270215576141367175315229032428200625830055287263875517716799189449032848010960020402923601577612282881507734855112004006174322953360550698680187021698373412760245137609940424701788299025852966200044699838018788227408955390378995203600400118514221729890163909573432123361845801743057154623244714443169922886455158053256305536150132505519957882525164203351014316704992577401582327483365179807193636315430980404146976469641011904982200331182722358701287269310787721256715426622790638020081681082494004854688559825642805485934816172525865878387728129870652711344866522222295507558699208526500348566601692705652204088046678358690946751013560077572016016895493458678103811568040833521275220706329294557887290835966255262989753373344903518513676825846760180389487169425943400872906470562662523560410400663828614523064971007733135146478659896759790121365938863185086181390011962651588572047623710688592924970711894671634309225908471567407996283685157365264913498836673638442774551781439667814490246534705842397743941356825624077493534712791802510635163376791545910357097900383938816651814007108111930084642694464301907283798837787764850858096995294641168072113948583743679268420760681866808114526955004551864667564566709773066659340920194958323594987293454409474465113003046198105315333571831200734762895568516368554529753414422908563428185105722340291791091300956858385853395884946957424657949288120871867068508971626439825260035150439224177013073953722239924520740134521792464026841099986226821714523219681806140518854619696670863552604718852975397469929171419416729682858752043746459249303739289029420253459426095632061001511552475610439453677231767557098449765236402794511219191792152924152455276013301928490126440285040432055810208202919834165558199655000119236876738499457671510824239072658361036238850418645824675916419208216026255505512230998023123023681593916045248226796923659307520655976641856300988541217088820609982546192169404220760485922345290267383259745679961690660063073397992255120452791699243433079929315161625507979049560453672047675655019761283969969641289028618133436265576080698082546334729195697385291711734641444498766198657356585102208933501529983601182532615259305668714636642062080269533030693972281852622486793980525972080125897971039762561992829217117082416644494194701022366841320845565288848629414538247030877590028290296446858694185343304763071155286783187408496361266640875522639324012139162854706828806313046887207962065916948731066140929727029369568085426041110648648173825437332262284123427880514703964774693798546481396315222942161994123249421970998035987559580143472652571023231323408633294854691707980248880260300920686821838832587053145140762597536353186440023711870269832096310654167451357499441263231355365323351150788240485878943489577422200759365858764648153843084211413633265700880504326184559600695690865017125007097496380969505961650012118716426452164846143621939348447952260028884819893447727956443196960459309082046956922155419669392714774765370911588761822148835051449012974292029299918420999459167185444512866367232786977484533042626354760795409405023272296370695627259476337938972313463417776687165854386277805434469593889763716985483005834741098836745614029820690648142093077757863482322068697341591453067825370244947927946441348494970470001051607655019389741603848610739964097235844197823435979683741454202761541611661974026682550971998198747060446989383950018952220973933998189057753269272677362469387901533773302854701655475897243092023642585656861956286285093566206095582735283649850475953184739482363257131769692689851185073582103386229796897920117153267748320961205720847756400714634232972481635627573487998251447423835418574063706868767870729718425206988736455537276759314454274299313084589502218560987948266148621604240297024635559331505426847266887725197807171191910233055408469144550484084838896271559791855410168044876981254039015263169212942705732051673455085980435024749680666367404903991883578168327902788841670512446613954756717534758908399982796719652767851086372543559815746035913684016676371379940678405529414991350653660595465039228770319195918758347382281796453020020155924582833715175412696281355484455617644969051235191683304056137362837700820242932904312828493671640947820854402952400631643816721705109556699034041083147565187310584449999394100209708573798726828659745985700208134997283981423525086884461931022621954376825774428158234313919923881097382015685687715694723091200848540888007017386286258191429644202720914697317367382945775898450410781730186612099617251576687381814096700471090799025195618533822489645077424745100326223187787468900568706611009804082646804630658563491131791768836343454765361287073527819142895928566257667337633459134901696908430878238166961718203300392157205911321129891742423215660919306615555022702067272324165541799943584931965008389923404890939379179014022769172791086387151156658587274885571905225655335851267428401921742725291908802993290781709324945942175431113978433706152567376643377651717691633044434680677550213106001383640753240236016013115733287180207777764311515281436309538966676215806039448207623268705942623385884727838250674161912302183762407907501694002232738183583575269575662132010878486032844482039402964495140660444990236612990106759801213936261595161711583162131177894856075021322181088209456948199578169121369413574689231870431998669166328788095235274427230129059725280080460360118578921442064748386696976539044779570403834233499608964959134771582506643081440106978879655847660495813424424549869307533010327718047188567665633705041608202256150253691485733965571145855768003483629631094268811179610058746276722265205080198908383095610047083274493016465631106985355534927768973547645948969157482881621204543011834123819770943602860034805167779134704956203227551170701162318507520394086211874544799812827945429877087406567218661736119249331157845352020653730745617259680588454287124481031216025198284755575108981474105207492894445153403386941337774018078988667910578552547251582475477162113081767802135635042688452665192974031948092721508050810122874210891134568595795632753568203157678802598353438785943523839155009217805492030795819649508363000161570485229836637780523541287259385110585077025850050691457072866619574571994112295789163624688155608195625565809958561204294184410664746642203373685763379992683122911383168605441350323429192978634648049762555646624385479407691140672819255923585595027575989274748045561949236702922666095153813560400591183030624522230598673269912453981556936649821042008692731083474233435556454093281753822011246265926692865503600190003144671958779116662791357945354303768238100988162306493828006349064316162971775616140832489765124611976058120465183204513598470411617635925243501656072284651190404713938518955484134193917849610021827500032352335673204614219972489518472099795889830063001325971993644839287625889209642138278667765131032349474833575298030319339365804832446735758842551175185834016007147734685326447138850595112624926350127203776304434153328619674123466383537382048813489503822560826603416274034480131307647310600877302524664537415175279574634866940317578122719244753290969480348065812176184033204021182305000499025076703410081053140364637775273097007935446630394846405428124157448305561551812904052209571154533283053952271848649743813360562163048439178793803986184379704454162920043460556082295810683067659774646132938553177600177050945557857377159977646059905248553198993475331230160597189789421706388080615250932536631262313811316001635864136816889442167585886126853329115557690903198309476749073438305679827829596985783287384294145759275366649380531909295152108260152687097305975529062749378991996706905621575270534255708570780003428668560780530027099524008768406522471299160440154619682038294618949120000338801466545639349279545228759965754240612537000246128743972224936450124641809215679743491208475745371568032828979685457455631085094871852558779387759376674935395272653594565261404923426423452784132002698431533746247063229024589673491818295932749635237813735628821747761367734672898824106272620816405444593389821996315933475244806905554833075724136227239798135347923773855191279238946852438920444004056698040854672049695103653976663416674490139993837357679653888157484567521179667905781800157511538671706938124867284643903338464095713784679190450957484756637712936258784806742073495900266175338819645813474554723958266068738418658180114951831312969580126693657372723833219526839457336060199628842013188634341741357802511180676073090905966548579896071178647246734783817074026185418264130452834653205775154780359396735327113599941952210771994170638943007737225692751475756835687082284611654400633516750379109957519395425468029278381349104784427320729842426525784904977871174305060772869991380230534789867739709751901922317280693660203299472747260507916913077158205722683498090197907728793279865428047327077405524526447390741701497634011279406840944796186958363990504703716232222276294368762894485666619330682250696942546557348060251485042460552712875639870031114111420547807079927029114656544308697517006403471586197263208612114425640327598147991664381068184598763863226546009097174949871114670546502586720236337650811745384653817978012918743747999623254761142584270561667868529219758000867717076245463810343642533238647248887257777102076521752018581886359830040734186485876108719306985996214629534935511039346629959083718863774475043027436465036184684552766425563666094095295736552807800340643390469945985053384299765731297684846189584678240147547249158532701801700997358612554473233158109765719582290694833225909146883867744322122385132257320205215869088939574917855975994585538721645338402670548455905309938429559765035034814887404605368812805738704247321338907676458850510114968682941352635043235837337631035667407967303321010507795736955440713522192844494998945406357819218235670645586806717066226826570442572099023197350949984879841249257113804742726019198055742759032470339226662169540963985960207026498199786090885659894046755236966882465789622631449686967612609561523399705878232134282547329510993769982626905285040663595398578026518173138342183108691498229194234737613805891632633313573600206641627659010301863420047524666518821640263929405942147968726861864736831702786587915984796401682328302673719666599725000680135046519223733797004447289268293457317959111856512367885249993108414423699084346985546758720495363543609548612871076417621279406309302363757780243297110543587701668298630811731582486617100971041952607369599433986914184863641677491983110065403326401371063232151607031652340133792729106810015075635794088755611959140016700965055371537284863861275518531848116703991416254184571606193287111694302814721418014531035681770529443974873255540456360416079405514364323488457543244793379283002940853817895633617908481600759838442561217643711975176739830502232898398817605725601978689506906757983561221816609965248915364191983886327338275790162464109280508315728738358636298607087135447840998832859872221663935271365116757233907323861131621495256805731741439470980372410888826561958021515595874810823664850622704538365558988675881271800344281296813981668618776249941390424378672649440112400586814854885025535354460077531622271293901756486128584889805054899958168502583600012979553282518720758774555866781785198720594674298321625157035213976566045822420596968946950099129919963315880663772694815135006091537300768267253864449352725192208285631098439050487684463794223092619243212989205633667095132103321843804596335615830475333658104610359977076526094728115609462970056364465555382698054636109755922491657064102416395980525410902559976989949942076561228511494709048051132764545898401747339501127474755521308156385864847552686276485270322290091957433989072423055648743044313056814430931824004462821398857530292667872923345067660896003940217026520180369647284502681399652949490064419503207021645790099643473582305296979174911587977238211065891251171432661495481615008706953387367812175650108263702743883671931729606629785874068337939770894274608615102067466062585562378254353233359168855156057569537223208390511379964438794002667363324874455358469551158916207647526483378479910851119355920181709807730250232837495728632594360064541108374421748105479115931276632468480787912236262915208935271907096320890886767001761308848785055309229943551425490520864033540150885196312029761892456853048157944517657448246026937657138697250166675058740827085573771708927297215044229174765338213271715983097393650544901880901825768735382530550134845695325390963375999007958901700860278007808929702755676308869313306304016347330586290529282294125461649683320809811204052117208569995780028814584746589825473681216162244620274347932179490343844097435792872777430826392771318519881198493590672659246679064688528596428717178989711066442044191435596850532673480889674827437288623276552589559554904882473153722190563482129512932331498619522767982702877354296312015895539499157516919515332332012491463933309768324748366991065716895392820864522161470761552892705830666693020204408904180790733796227550762395336165660649087284991090340319842275635441818925513057996258517639297802198065306213046452360424124397642837412672635000592332325147895737874581701712605165933805655533490227140186328758798465092280858626086726299863769944795404242608285858988294258802209744536762644821086799615448417948595791911964265959597638900573615871116573586766783960400974582341341669205789329110909895866297582805421946809061188995680565560090940847740866756834134885038743100025345085312142867715420678556549480879064029338279660408954198468329955566743434595653548302494985720229275885371564537521697453780183948409799513057238748966840882528268915044550077891399144541622571508953659255816824150938772649981011359978538658435163155038831025694398748681772146357912465770866864238463577696880214110946678954794590434623891672505027138773476458170108979322654304914239938862199359748637050215660545609370757557946715139321898386346823306360973381808835356664620623751015606332576176590881839585962589045739051074997111198796863137947995275801471152060976212754517396907083264870246762183217130409307625644313751104213733844543829098559604335555901382254228731952251875096739805348122849007777524839336576330321878022595298583963365261552911181865798275863576442518632321659848222087912825580430140118429771680957698437980537844721209452037254569271158506436613739840259094669164430877502605666003607224532405208577811839900543474509511955897120093839995436931299223401585762178232665957304688187845977245930572130346371923505459431694078724254395233417065236160483519208495823077651500847490580266091322873321716761069351098995830068628455628151272481671059297573090979115967674290021836877717531110931036104220032705757274402270617029251410682009642959117997535937124301982832346069234791578526723211673797683166342826036825535621173816341653173145491493223397268328620022042773050104910113642807785076235979493657019602306332001550557882869647078086447792531434243395610424051671936487776442297881069345903137613517172173775508947167023171310834238040307568566727119297054569216555899057789363196623329201216923124030672206074393201451016911289905969685285623724126584450288783682203164298256371763221013438460776871990059444750985702789374092199917568574058436806296402032218761901760773009310091337525671051566813583338214463134177896062179944993807735710400063384248653564306704645374895997449458875909707744520528215039779231740189868383908171514179984345744371864181989371926080986011589821579674442134036473322181566201933795380064793002851466274100641808222216394800057633500271458189541159071289375910591712545874718834729765702002221870285154431103671031244152567659199396482290358172935786506231867389290173454745683679807004649660576368582773247382184085357673783959137138040171741289249404473734980996246237097689496175487379295562319552736535519679710803143400834612157341253868647092682421006211875796385306702924552384466327768570494191466248437966787290482135449013393039666186007421883059790060958607111822761647602253308995709540512651049585522557200351303310320397252092135748218295535096289234599216810138515313834891456719184637766179614764452591797689282014628070353954563769848090714695817816420609626491458236421255213593971275968398980574927553179874932962157881365637935185837707316282378814905587388000815621883898532111610138444139134040478236531836718758903377655463280697106066965646752433167742109571460028807940093983715344671361356802414798035853431174180577912167584416602169102648123828645232675387998457590463659304615848834222526610366696897078998772432714701201267150256313340830866132520439206480671706914520412142059301901543754260367532266963136180957878287186504203558235431630899087257966681808610477950957216474818676597139055432966958788548606823749758713929088771098148111388510929698170776596596560368358029422593057801221382129250626938917503846514835063864095304456230775067629933095372469359009146298152049487011898667986390546921034148355564386000146051788866199913924360865442197443016766560179160964117189399882216236042486745390234736308027474564569657402279010108595938378221956751106030175648202494498355664965233522372213996248092209272017858642760394775757670174581818533652536633594559039938253800241850787500032604912761654769598690337584656391599975839946107106120903652758267993489230025424655873148706258305552588287913177843176624598856748993415076503752722480978638318853693484696848073891020413442295916407490859137589310293837937476807769320097387111866194317780798682052840396338125547977815766625974743898159437787425428012532137418771991637266194509454638171999086186762531182649940630964931526277998461683362798428658627692765521583813311422661243132464823547411013970734400594022038798278143928059677712841416909299224350878961043626683910084388205252717975259417123404071465696303578272047329762024403962715044732234740354657267809392808386247164052019960346988116865914261021868115752810745396326324398617515364415333923982861101224271600655378086458972559637118910334180206199055019214728384766117852653439023432066961612275269136843203703774670808708335881452342661750416483786895614066483227873878785991633036731428095681428806066452386066881194519017590287025414238004306258660359993766993359463587564367927740669802224180799388741329015623137609563876041790611914452764296412989987415081343920375581759087744092122680058525851660273123340893905408951389442262561297247167359595787315421322619614902125641149548378599539106665715974396949503694207319263541079513826159639408515276228196636875615389209833907850473714103479854740714808709081888378221824456075983158565305897199856515347435867266990118812015048674759740753673085822143480840247845284449611489256505588827285515403034664655435339033102665864585493177519085422063465241619637317614609089299206407474242486317862797929644777367235897550289710534144823716632935396836438474071016835274233396631572952162468367377302935335182524335568858660063387479946004813606250590592046764814883439325179263596716426871980339321694422630923903146282414433704985027736648137541093262005495025268978787112061368040627076959554579673151758068654167595313255844244412677548150105653646710340866372180198875541820140816098313070523575434722888018033801487002005353450762444546576695437458295706871274891131293893518557691774592267846499964145255213409275600549239191473490180238130895402397698002768273599861660341035540460191705929977145475532003199646853426268160689873962594148323225119315109598979945244405798342158141352151244544231782184080185187130033400585662541034609867197732001734173480537692171445938067047914495652109856378543624808485309557031878092882707586028338696244994221394321397564387272970220501597483477223006742659731382756235791036675571128411366462648042553962888933529517225538792168881402704032746481297834695801721509762088303114839246281620977807232799797234962416611194551708015340477919492125529574701767093218292324546844334640841378836893867364286575347580595867065127797591013445123659542354152411698753581345183239043543012992980986802389374764573248507042514512821420249144442465092233385497091443192795269470866871702480584783668397067400735370302789117670796457726323168957785099729073130154067969645927821131115842989376997945265182148834459392999272873730858104795824159674497505967604793978540961467427294205275472302341075761991320312381566501217147303297021727696992304601618238083879345018499582638229271584674411227759549065809961967639249543812031950634180125690487810663631314988334300148801897308530731356186478280521655556935656280717164550830177082769984654150282393704260887373603685980013823553278427992183718636012993061427327657168054825571883522788605247048643333138641339644466323178881207329533931282106418570099129075505016898936341928895341651782440176008477198449659740604619769677282625612564089844171575832876271480185527534569380998004674660371126334855947093280986450276789864599933622948163558381090205968821488737245657332289791631535182254207606677706311691890874080361230964860100275560021842323824780586318628283927917045733624006909649192077354571540872159705634252927307348338304584160487466287049285500194069546062713670618423126511732954693302672347779315787910977619334022661307424946641399208733105838615844804208864720777318801891128362108155715852059454223819867627556195571386449319634712782024407623603411943648547721381691306554266209418961889195005719310261879452835694755665855261470801638720892477464703533119213968714755906838420978426537970162927522112813956000701358751601426575284403843348642077456832873461224276215323259456844197838301190358647305958712928372333337942611139140085384405397797040368428515276507917847358455731487507676894524790109586216061255510426736286465282618587800773882745057919045164456903673674848596333080028469440742715966970091686067869760540104981438916304708612413368281993923728074265838522047717452519037662493294460951232290071415474113482488040909310167828024279974246359910099888647302417917816603903517455742862367341559035035290304445939836857549409601635470064594304236980045161159706818713989924586349467470900493981852160415026832505130821181169026357396132368223557269576499064202099904635754019430271170611762708009374473018065589783605036707765873338026101589079702947205437741148744852136661628743338236694615997580145515071368183537508505308987524386239567254859296428432343229486915151571018790043072027534973553525836330341466656400757182828444813003759287207918469076372976512721754811767834400420823909009007389804681907481902749371351904783976593324669873728108594465510794851549358795133208896003119380818603273798983049562088667623437353928306911911720361583504023753766105632179947436508346266774413095730846700093998080635745561458439997403906401712667462017282902214268753361747997121570951235773938031665138351844832303691311692859690798432734462712673391853094564338144317749389464205793314437127097139304878771500595157555032202273268782816921081545286115529365312576255982505305144441629948568615428482658978887462945467435542518647745172574900934965530457657183673723446514826159225467265566215765095693422266233971637145004821544844675181056378159995241268069115505634377871900970079755525061397649621512093972481208258062658716704990730152938123140742015443713710904605084711100140802148556398080315559059185609190285074733176072780219116404063765374095165301100567107717807663798816128060248760184476370709086727375806361252041615686949097374327375620198843449781894423197013039594145589324837729474221573796795481744872576288310946163534183209104074473443506111661474648313179541675987977037946642078400808965432147332950960289502594918358218718780880599630030072399268340218937853136947389141827609030477700705504383019149602127198561220417230403825240736772478976764465780543936100244117876664070944975199769674371925239568141660201164524306995277455990025609964137610485488420946903136212325794745365204096478232143083860318581117326208668781490312403092082674464103120148417734268972797959648240025046774520214623190155806581941960950638528369838526028457108599579336949363012221310608858529148039303386552106073768375697785899980077646514430638168169760616838555405638596025876046196705553171332701318238563725825195004502276578722075123709808784292995266737468656301122427405451446117950165058822189116537825938932930508920698628633825203523787632122867104280945217305111142991354113800401783882429217719681740428477890527152492636639352062590102181734051469589318128150971528149403163757323275999570850636504266342972762281152870282402140325616372250023768347927933537137092047871231515586584109318195887703535772263517022078134739624833942767175356216040239996256467127031720633426579141267094675579412223146858907824041251377093346670314439913980156044483477862041461543861734692323160302805038083338579686709368956807641503384744799003629178173331551182629332576655491610834613112973218932614909054511960989675462442424647355404730509431164069862938290754177187060745491072130570602518823216586852368184656404039731214062412601338047884266165056824688614521347123084900435041993573405957457444422359928086022633430276491400805363864180666989045341152235412220263891638717211568987919239224505838987426629760807899712054453896974503889917596578538138442196323126177370190834827009243951082805394152596695496266105705652212731545076850639031066948309946824668222948146384452894489917317945908183456924668242927801930415923533383885721625331363481318988337096302817303109840040549929643870493097660927125354196085359311616326632472382883697443892852412929522059216746478877200388201434113169864228753634952094058889161361205898492468895568759493463941545154780572163213627643978714734482331418425119080972347650171919606724296306738112586382021344724785944082298236060676638986337478718356279169475740235508612216372352345204517555417966456839845253965930805805244781082809891418007036033301209533948175816594633621658981065323475966317870696793514394788612919808044776246338429388226408925525472051490313581353532381484252599837058245786778717494300306926847470257543531504011823738538136739719734385983605876567595092080484600770158717796138146784146214693111542654269240918874576593898628408606859649048372197017225568573411077246933128887646531980447899692255731097749280312968775903316085768375220176328580225472188974088554058683231321508700285285992047768199679049640830131187400418924415164185759670774081160278201315577206689840876650463635327178382435846952921658104865102460161168495470989314614560450710615926905248381095812273682292375148479155084319372415303776811228858313053486184607018022289667769094652285524318898712110661702440323356443509288920571592120554569325524075273073317155645805807621805683050267990975030520797962512377836267539490654795904672548610109381122746845549112710664916913046396841347222432893030001788637662107460670057805549033903291243173419370265885357876865970938132562434021500859310124150793127739075405538975453138020579498813020485106844953209672440478248847431581393114802246406667061810255046961398749019331986409666167860712199755686764937930620784294773640978940314123182866455980795987886307704533102602814397192108162506167018278231716373429426310241489080982653618029131834573766194350875296577183276066645983895256218036938131768920048196489338875446847260175170386917236701143133236953428260327687331522401614942255321087709314907408334287054635020833549140814169038788063600348589848080607331202958210043484592471603439770194116358988701352563879862196327115950779077116201272661124337458996150636034336395120279428176405440258772526554303734521688610431729671638679525910823200605879882223282597088404166535298523369379617726156480646236791737624407764758012968571497519798644411032231887804815738742302148145550199079767565808114389148310069554512067038254827063123070821512867854466134448784175261533440033811337308343064789477356109816728537615825881104614638172865967499291751330041814624779378164990074593929847954367955936971912114383427384375173177129661592617945607131030244119497009075737133096073668024511889772736660043461293488801876483563431845169967747558678126523189548405504978138770635199837599047806872506137662723337326967595087628404150595023979119872225501793750624364103089928803869136993338350609722312398019214278598470731990550541289334720759653848383116439418133414271861285994018763334714091054418328216833324138169822027495252208060229836852375191806481474702640337246013677991266099533981565376819432238262207433668558340162311281791856095041511575132489244240115968618739103026170171939555529541389557184867763055654090649127700848461217220464189944280720979970245886488837352363861893080693062957787091262993252020209220453181738641396979712228193873730109916233088028323325210904638367049030472072158144985691156895331735871536458326244051011225687745189094859691950688393145210203713411078151922769674640949520571145319015328917500200062299896664319693119471699172646266748590200140314798984245104927599078469288299474851982448547375372354709673493207778129084919884713462064816792786866966272076033438013194334025190767987711358720116163396106252405512317599788444479848326827945560147071309902965036013904485425973056814854117655649558224041818425268316277168703883580998322313622174030608394261924351722231271097537200335253840844475576079112690048425107712497104963039552291922619574681725464978961963052968359037338567518776520553241043683072975760442899744878002527993442020353308036056681354283306459116154912606123381599825667131996596966591750732509123816013994548156510560576115288418714016339748882691215851263939465220668810484692787287670439383387616976582453400696297183741458913438971659184069095734931464438294966976182737770124420185222677226755353741789622169995163169111586101559862636208175574441582108127800020113525830781860403508767027204378142237477187970201396467255484787510343189823140781773125785450162164242045988103225732436543169241884871222036300138291645179055435584947445635639755097843503444139582144557346724326571775476915366409454091004955762763358782299720174889712795397441016357840191751674058767890417243154310505104838317624328590286449810225435872469434568274940690318732564563208313902115671140572233606514698954617109794186847642478793086551025297394462080167856906912341622043068202054984756277122974995576063784505485851908790894199145247865043422372854859394618990880788431448750067929345535818403100276492643776414487625243031725236544260790023823076865518000758178512940767177978160294444818835102033518849360402578849542597790748790997193582823548637908050995335081516517456112490658195764768259824366048443349504333818125068906632941594162657178950789967453866867072137755923547388351369934215902228305664792737255751318937113583018888594374391524972518685621484571925435462419071135653317061856572952934901995785545758341852686542877343377334834778658931000697494983928554236982649971020320173530138565551454202376549120780669202663420613076864783641043172262994081660444416089672066974919895479203718554044869803956172269062293296304006747023680523812995376528442710491447072990912678054141126737608093013839947168683269927238758631244911158723052389150763302230159950948212402956684081933071504956763502963727388457712359117446154718584812204540786735230451329288656706761846144301506087737479537636598471057501430488570558065170747143186026729325669381672627328555474974262409536994085513380801399840451237472478228934233210837760409397644250008599016543522576140696022487488713876409718835356282294807392708723110082021863398685777012675838301477762760488563918798657160264645323016822626275207631213326161802057422540706413642758345104122347644066833367452743062552001789816447997873820703329048579716116994434172297576122071645537466736418529275515995846051406870072213304002349912705282326919820894296832487672031153029309940290242043611018569195126018775176954931422249527949971572876763272350454968771611299476653853043825459009852725886380443282859496553669820636739449603521057814998099649075340979345381481022041180321734947790972628235605699381370343186470149865167908040548944799342426612637114952975865322459314492714614223607584890095415195278415964554419154349151666199433731958069412650335827243007538145039607778999753311171925145950442735742319336392072945294994744003429561404708237718604065277209396114615655201450637336099174244541035495452744056876518339896015113358030872667861740123610347495387581404150347628760042855355421684468213363964143809514652748678816716778188794742671899115092462735409910130203641377941726869940560225838427780412666586777500655078776689051868022891673420936604502676241487625424766860705363428781142784676723855686236448494512801685964585175205153684804307378999205933788538067971767460085285339707763628088611436485828515111747650346295704846246904209725137007439809836266047213726458611005559520283398215132546237193324693570735802172835549370889398248753095791800050920008716056607920103304810747420018858324477845118347075946033162005562312660989542901620415150318636438565275945437236245144481297120899080198118082220071849755319186614178236110546852933339245326455676104136640946927860198034039860660241901714400295488190483313851280061781399434311452459943299730095999079089755135792464819099417596885608523442702048424536356305690383568244403954492242122469392137427793769610479054731181874488929399194648103418179038501967754910247373084140018341691889931806589065658259649067476395946329333849706351153968761845778995216595911663471219588235707541155028002002053574709776304986388804493750117865613567838096794125687658017619756666274472027364272681741938870432429691015050318872039256683607990897983536244088925808777931547257372458509800633316666641101265713303826047772525696246608303849812044757020141428294925238938575958130494103873666074535689016647510555422695035079467638126538331376552806850762117992254651511819296345747114890959419631695348616391507533686489341133266567843716213049047668274072476301798498386427277209178659094759807471127093137617371228916019819100545048636327665368866704135106175715015691149390902921905196661614296579186056017404781350444444318272265383323335261863694556020905304570240726458007973097315188766327907475583969949716845864917075900251009489407943525451389964705794237142952764908994159527950419482766252559167885162721792037357390305707198253898120613561830323400682097182312180829559623299309519556735515153764141889323439746850979119228334733367808986532534096836629786665599976257295374345509389014278687708177234762340262044556127568165537731898974833706473707314595245559432200114364501172794023238263423644581989152002643835160467454192052873774737184853032988463272180996867813336580499169389711206502848760339760672723594802524567482365083289249232529362996073185267451989708215909295988759911115171345463971703587005750637548768608943505189035180360829495841279245385577428471531739341725823361219130553083135989074731750850454247526264955311114229887156882002785007926843595452427548240008093183382358038005086487909629415264618228439036304946460184452415971999395812562820309312663380123106081759077304454962296921319646558510371822609331485508975621508062448576779679845328519223726381495105873876022996917268069360516433259851928535246211445376372328038273576086650278878669943145093776442025807598084188930418717617302590767922940610410790723565829774372632541287007856047426756423013088230151173684622008628764136244533926573948174461750109616142727726699871228890985241463972068697058155561546196252192539964568650821250710699272118629348704558724289427549122853883694674233442924910410115593444218130436902353754084237163120875107550721254319121877219092721910296333176355199031808181816484948329186296008825532145600135533735148991080822782156740110665596247334762954252646773705749464909842372176260405924323533098617979227279129539054719741087041875992217081416821427034370608216932173275892756795300951243684929854746859418730383873179052317906004461835666811150142182910671491103356103805886632637598777804514096650473050970489497769744307180864308236535052010331415119915893486340808121682763071544915451692533474210039018392385643832399408085752312863615629182837293822368922840406833860934827978456644013648140210982173334898704650984441750135475665457291957482574416342851597707976757119269641884955065730075614073198142533231409734735738536222193138446283065618217355989707966334336443453149458422644686992318959466775896922779721541848969068290876894909390477815545268010957443017499317403441947231561449864852220176820370004523531117966612971835961894498320960347428693831735741216771757891849836889595276711642954710296870829964420262675285932513778586470742694943918345645103275136565994253391480296739471835618814258822901441340621696483874669843799012134245041145109541500937550857354240466284685901418362993856240220485074609108211878111228227638807559725693372531645412902442940920578425408680971162964549886331278860752530566916750687011144824946126386845974000359237372400237302280009025486741862539374580296823865771347592301317250230371116664310996029047968978916145819018949880889540392706034641823398628223143162519642503066044337475240675962293567931891730532231079279730013906629407909948258233112172995795454740671507360220816522954664593145197107208284056766993036134786896131442961980968959019909547670537269504274718508038614382396774801097809831873479899665413721813204511300445158456934577668967352717065699037171551994157672126858301359455133068983174646012685820166205713122361151468769370212635845903377777052880293648475113121664535652198180443070124998145976978731231376578902226942273116733064798646244511331288617637892840567124429961987152015255440118064791974735340922239263914751327411785530545237318947451724995476655972700594990823971598094124226904998085940322397272337996905479028449456112651837004998268936658218047809058692758025905668528099236218721026837599370790172857499490038336567314228643008449103046077435141406627539100925416290268349366259730710315298574130262864041594302901892731028315143048357725959134690666729890531889134549432262982502115595979322629362667764683531191547249083141010196236578283665330172414841327071582015655555453323069327416467079582543346733477558727637736943118095527933573934856978071254989968778335206343183597300815095617234446575034499986623201230149119308068741541121886355500855733638608869387535233335191631917110939989725956869951201038132214262135901459953148375561258260367296643613751420160127476743500434049566319416233243838966454051506940384233347941813444907715346904702845960563402002026144810591940440454155266109326023657856691815183238860670988943829200866390863284510729728774399088490703330101586807694863958321831845415878040608021218041511256253972605720438770094742300226106801331886010222674390671184960715472053158579517871333915544336674465029013587597007148594029661910749113252519819148310578173981969249631949518488091975099147174444882282020193463095970566521211266522049572469566105667757951594004231190658085149748870108456392055788706799301025612293332796971068495391302790240965585366353114488369605073025734597302802958221464218830340160344726142955778364777344598535517663688546971470859073552577253866801910250771539952208052474135166172106056776178895526401060826519396617930169999998887417995117703302285578746504104607616388736755595469585552514717852054051765668765312770862706071557543761216563352954682788842854212788376406913166397366638646860190951086831328314990964909251775852443596255527435211087797097047535567321967790173502325041123609770575791243317379920853065190573662125696791778913995798369578291155225051872843249871826659987999174934380434308033128670291440788856149697841835332540130602634258247664002144610296614855898830099818191057881276609628027253782910386656042205118888290810557827740143395222554679669596599642226623736303120238931925723500590699275621502026153435274587835314709653593598450395796617020012075566478380826969365423030971452025019868313743392102648944019188630428463488522314310341582152549857664266584005441304979045213302165381376090852225047853445224124000799336054633949211299822514711999031197965230533829888698751801061709399471977958917110375900166519553327702784689506812765066736579189462092336916026610076333351903165860189380417415208000011619371038607335677562172118497415899307219785459733146724633590364365657061077625452985943879978692742744119286457900874080677966936204747445556183086152821223279799427164162225823870540816596380756026211873776294242145971283137999799761123563127051933759117533545308925181094152997419986026063751971078925464357555195659060585359846344873995743041378161993083245343743132414751404831210408953394324037233330374990686792923985926525530604508779533959783723294550575480869142625631210328454157545684322775870133682601327814911557956648155302179794361984754793883573199448180071358185205311068379339841104467957543685273983260459491957464990141091764752790899327523118470380493029014681651168085193198691673483793383057910591669340199525632855634176584872794700931433690455701743293310664712381322156853515259210562829262548942983912425982861128798783815826317754067357112641587125099551288021189172429846731250179983578243933369621810750976181959891973263785365151469403480185036976768165501700850628183552361254072607469091455778086507854621480397708186627300542306455367075995326855792891922940715781682058523497929825908610234479726578864207269944196833346186441401400859901316779266337917107458428167749846864259742914438528933311205881985091025655603991800065321382866619590828865676943553350643190406085445025611467424710052499329971972715366199189794300018030793818240595345152576549076030944353508529199589554905732864865456942008406290051797545436862476133631824945403719552512164850456196947800008397503110990193829024709319183450968372302285947259080765441848950136736490408783717924977037989324835730987012475048003641765783850461488499354264527482506610461823542022349583664165443416246219508407418176463403981431932434129729119852563825821069129170599240181600475947662618953884742059844946644870885181325665346324014176775043485785880073089465197782026794349608348444974556952680544784907629346070177181705423643452476196706535330147094139967244335001605748466327198425495831321846806275417499900247399562375240762058659947449691376470361648723345360449294237036441584210940876727731078947532103629743184620482003649689275227112508865706271878715691320725887529379229093856610502195360771502390373561913450119760434847444064267516781472471831094446291887336295688071474841868810580427647950207263510195850835271458528711438746801163851027924486574330103344529400155083096441922909438678842202005678087912872974111621562181830227228636839489245849087406108718570082364716597186879860094949765791193645487886853510528152034124918046757318704293171388146269147632415141977625907515096983863958342474348855841180601068586688174217709080185506549218253716045801461140748118761613543989383523005286563371729150268005855023895862370122603198752604028292420269475112927047052495492435026131488665009995631160211146615597898438970718284489260426049045379402155413482986406899880512866468271350703217145617172012319291021624765047473608091494597335311729078783323811862117422603583700722508485528613164933908548301202350913089450921974759255119315487103522631906088137285844015382436865527030618554393225115774600787114956703586717933982397966591802815308155851152962790326922316356969882672521542919273612269046323110031659732328222364911049791891772408963960266067571046579965044607903807264642791186023020931313087462304020019740211293025546400776839114167553289831932040424026984345166955365402011826499693747563879412754669210666727428263524670994709898004830201241284844797633836684068649405491666398272091586326673501063750956682230568575903420000149788213303014054322377738070594305488167340933470871369121814516201086651593150710971135429626595772086477288886159590147547034617068430702617861603375686892196492799359603634671575521846858077671661552146251039650056639811980879713119726760378954829033445750630331203123991997611159721164785196281904915453539497598596154401006393558404580101262444249366074434680746204245830461664688147315298480202980077903244079075690284110854005218972576795047779434490826977922362196020502804331734669838334136555288804602831711970321909335301603737610253279463124265874042944739178220839953994985067620734916994807190328813231092631780698819226934019968130820534889086333462568206334216375058541781565980114154279340037373565165677066899608362406803185761835230835163774776478683382330217121217605858092430105985145839386980527609862871188336692457447345957016965688821524679256794711146541265911013926838440863283194099132822230285615768227623918794363020801588020620968289161981733190885387068020489382358296130604307895719153755167056986912091706470475228435524388379496129064538117570479984533535833393730846434626283485630496302250508062484436830498892378574256661856606078698313037703694527675258670977185015919222624248998525023787721580618984732861819653464114374669096747430651156317153930067040972255531056615106377809054929068734108936639582755746461138584706097319418181785176983660028863813734283645254359428859514891519238682462306646860337628053089226715180996723139247118921646838010197046998077962680984421533470515872575956307825601123235375312789310582047772429097932323535790392012702701571564984206148955742846010090988781720066683821259292670350805637622428398306530487000742970833740374588873771643320755970613242314708613708102094644368107943275885503907304216344597653468918096578211867569574684930940276555256745459061976128901374898917238488499308959446864647364936454361220222271955756276703097195037516952011293218032322007808775181158970452132055318182964047276901716913993310453175004337545612816179726509970115683999340982948223480074590422472228337855247852317816601476093901185342883024491836488276254030580786517701054271438716726835438762016274397894258493073920025984372969843705063727106205733141131876303031928510325848198755070235965831056955835465216363121620788648023723989645738570039046863136111468827177957337371866022386252182968318372556634618693071746300200538851818255677469738934260865410056212499456416897295960194580389164266966561616571007309725300947359951826256509032056936625535336218740950559270320128627748162919177164648338439894218846933940347002892406557468460083560615486916095859659843438097550380932606364117754987601824854718182442604453394398940337439194678052567295913824794455732926965324589179351432893731200500433835599815860524064642620087384587443568086382115620969331408166280346195025920899334303170091343316101375878118917533897405338461374997129627540648233520908581956193184905291550281239220593441446947034475448381684675888680996390981758363595769784043926739251021900374786158196440939718074422619232138847993858790685739848161073155859557392609682267003818959114077470042444545740754451226953435420148301949697421619152378405485753567099516202471654986009457700385295447417192685566094848321980938145670104475158909316210392258211145329283341949562955026105202206342604401511370695417215939767631470047091203724186584257875915634100064994868452506884697472106420060723890860946834261336296950011610415794837477489960401721908462149369681469425777203095956902385931999210453234737232834230746279549518293672670959326627653210526336095406243920367941489867542825418975503139301462828410996534607949821699734502503747473266658238784389145013276530445420092270502338217113379850460920572472728864879471581504203630397684930720574238339793296692561955022940029379739691568722702538016627906283378303311634780704750728621159363211549099642615438292175997735056410042738079706641404794204013494050488868537727237619974438534198231333600006534823758909248252806295846528276755114571466994670176264210956320646701303834014053132181656271463861574453023802455955947310348527501299047607297713431584710678532161498427275517968534423519904351288680701660654393025012586648593815254683947662378019342471359341084193273558461790433141867878488672673167235176660185034462584203829100636743823301370201562013289620957010721548147731966001412529164090629205101944179061652185674810731395904951134431832259317956873974742530131991175803138743024446891034527367205899822394498592889351496850118892379419172331307960152369220755958825751900562146497940120598465373441795079537933318103636444147322158756009049585357115844016392782078574661016899096924588109517404237554403171531099588606204405543747033593644160032200218612059483312406980478172198702256024605245152106189187760346063274354407499145273495025008504268439782297562607158229917456370499663331723419303078016446716154463036944267314990632094846506597733056605628963868000627845422310455180153455600820274268683238427195646552921702841009063010911840299664782254264372157571710861046920810859996268134866246253018073785049358738279701694957532633886855862784210948218246898431179474369929963516136999509177383277893267226932237069980123186964436840047361983957159855945824519098587985308707324548456932187793632011259434253763612607759924943017421129810382150785774620251048065169472709069960992523944352551669017309563872313352896879318838883311621693845402317848523621363562978676642573957608408302084779363158718031612088025866314766474474599198228616949604046924519812812193408551360267528976586309936305658602692209469370341577845128970006366115010660539504246599662136339845213227654188704435611566797643370786083290526933162824695747741332244621309146345064216199760210114768227622396083004731455415814191502950686596069825366242831455399642459739574004652268741459624350950908152525985577700012115710270449157922027159798120435960251210753974360629346393928115166357094722621661592250758851307308005818928327990499056495216713450571387935138000909395224904962603124297881462354645251450994772323825927385712188337609495261262691158176038829155161828851795201731835348020530358078017612475486036706702045592652389965851720993339281432840067346465205887154125952308302883624053151037669919699156306548474870665188253989091418034314319783646168421075403453528279733432678490693119575732281826565440837308325920055594694545661793581498420184140213009309903534317785115162784248146002720773351592516268158835015661048856467029277130064105680267806504920255708946279221292092608779160349516549916549428995033011826340278608778781508299461705335038918394873274781261728978208710661994175270714230364374903909875098784854852219722030057038812691639560121468614593610835390888616903129248928867797134510461747645811990144470413020051521205393436371117195925318571380087150500197604314901775323245968741519064220183972472891630774293970187466573564783294754030954677980982506963478389277703419828633929724921612532778730816999045847549641676042215309719754561958125053985165989708613082012458290388091128253473187963687282576777990834639195702270540735098966262283491020881753175078519954472116920498690772275281072511141931637719976951316175416989364124725364816782554401890386831548938506852016405834492512246382791315424538306242750746046400247421713693090773838812145427986670116144889324263044249676005703663639896024142189358841464636433886329779819101914458529471582055417446522136950775705573813844169916462587690165289714516141854921999412388662387262731467395924104105921959598111864478211834410235904509204769880357591121397762729467471632969649377984436171622933548280954194950661267073604610395445488368830727865233253101457948631689192985637624746311393153726902992260156196835098033045149710945259868044188304905142759522411250576770552264535926138709171811485961313951826164939871143082542561487565427276304973851202252452803159974670869849176671605066156444157340997325093395479602199404215796987099328952030725699892412950546556472939988049605933900741740099322470622689745446170605667198840005271161857019137586823648882180572401218105387383107623757917203814457704855586991137647505354152773017772867472165342491099711536439306743673546739753469555265104967463290358437112751487034201059469550378825874521220572884793481070152632224790515926797044390610149006227943512711449283602772353025664367220233023398976433502113220400851944541047290865497189629279814994024009928819360373083750288014427842435138290609954402208153460385703124443233687800805127992602411787701703311443865888628084903208190710354847247031426500339378688158512463916872072776822707592138764386626148607767013743638163522499672607562096590637631016211257214983215898782916048987139990895600466993617861723474134995562281730940628191365052004621966481826676976126680664426951231250894387027745394801364574719894779560503515035216663273620528954135356522555676802197391441457224632522745456691963353846144324030287285886254476483200274905117957917282741975887400930095962365510776407809629913768665119970792696365854450695960796494930745617910769841775977515989579739351042761287001909870171254729712510598062777674548873492221272818847984612209051065340766754585909932010805034978621318985120060478948584141069776034429158913880151389453803033509054721551184571998031715942571385886178628243224702815914881110666699902333011057920907910246450987599043436404349642324504370525868675926788166273819701461275731393649141875051823647841365071153841898553703556543206248444143316247452392286258806519327648006857407773729046813947322691790345486970306076835987200899308085710073418726228287717317075031282511384885515583885276814074830948701834535490251042516669956300845522341295043881552225766007781864596236990696026105161532530308082567705253364111720287773428426306616649664934197345593588309966881175643029254557167694341142738955201126614221361529227252109986322518646911441416911962007402180043129192311625628534703187897510419609140331954479503959611992224762322824830342152736577198182729590294374426706516521952018340464914580140984045831494446228848709734783458498937503303829017144527860957103050155092755183374624923299480887428283246340849071431979350068121673637481482172517076913328861337875621011334912398455010743356507072729864755505874072400524392509640170016355954245604707355851548647596788351153986347938098983191025435689482356371948505205677399853436060460129710376800487649970168391724411666221993549893455141299920136750684285371190025340231863599456200273383256766856243900381750051401973848372784001244965285406808747986136247926094092662136857942462581401909114588954891118216342720298030836020522244709528871072897980930780372936741575134106608410936651704489351075938745692609551149669428355715664619643294570792059001734182281607801824922398024197772617819233586913347101104536301450580823163039283072833429974808697951382670315083796967393656433311820913673525506868372393089009244346344963030578163643632613503450699095983488633948968107106855727391752275809540114773959351837592243170259995077643749407536757496134426776777312214875657506179278875034786831489937924607711786374450586488756683087237494005998870741397373674525392509127302126708792906046812780625575355321979300347021952369669993992257193166352851616330610416765623613530939681701127394902860495509516400584042183251275925905012099924852839655948381725502185975094246666723394802858503394174470014713314471225649843190522482804617808407719505898461650928170330560029527870456495359816633482101427833149280835257221606694075817531884047870764748766436400184035871103616694375774014950711126922536112322089183098774587289961212557906522655733152502092877236309026955300870850740419345932135858416105597837908713327733492093782854171035491558467071780119307520435744267515741849340234282720444486333461551669622279115437619706200834007012699416053709036334127294125107806250093440807107919870705441737368107832728971423705623435246748636481729933578644558740069858845485853474169221753096067417226873238298740895274257398208941913024652274793864860516378844328215306510078439596966939710464476281018281814482177048839924016046394396363890039749058080141666462255548441370497770017447812710960116417313802905661472459450319812759856663821286511873440258446495069363246332555385838741166405406224690852137923111357050106066040649019809791328912604048631031330659809492500680446746053998113625993447355202659694574053990274768361111625695772646676404813047314016022708682296602344965632624184501590986566405609103068594524285630863887939162537051520893039427103966830166582397649468275604983525553104848701983370124739486912505302105539858147447166438084186454579832902959565110717823218260537288989336890435422866576034040273991167382206732424275763023459112268477552069627392961834440934159492105163357844342326141246746421985366455887497802084745128087122624110793565742339102338982496004522547562647067889540001164295246204122330467137364787353726910448899775386807571730797240954316788220559538769661383719146955224868383492938536932563402853274526640385376402701837677742410508520736505035144728268617861565600468455836500248343937948704460050877442651482242028151867865984566100147189454420551815284316093430477559170582727097634791039756593483139751758717259435492572136780720273573525065195858849925576447946876063128553152617753239077403122304697201660569529386940725004813887521595859413178842379183809180117154394129708529117231164048753097549492933804935731840086670677698342279716253146241003058218678905754100831141897064649045196538851639537581606250693280116711615393321088941560530382114931414348382310824711604197733750387831514566156038946534575844071519536126813097766303867958446004069144841475208696868165088709224142277747236637317730247038032245962177048215024050935390772086342993830008757862426958996610041920601483510138934855007662211211710966860861537925508433143802468149095948631078680663004414631311970089047820769463546515097492697445411129163145865617585731802437045360906056373643421322426517765858456730857025811554295669294313650648664495707170111046093353567626895477743653479117702746916762960701688950236870634583767960243978551223973345506436512621825400826349847629790591972827246062139186576475467729380980097603958215750206403469600146267092459327649700719979521764934899149251825253776926548687557149172829086829194607899617136165481948701865236991132046890111049122857513284577625207031078927090036318904461225003304777265901359439409742907141277796429784257394605134457291035590282962442053377224839389517294826968470478790353013027855073313165835562415986186558425495386618638824136422291203904202263742231653350921377316258846934301361029717290916933127953259177360038614134908290565775618579184800104062747190917337702634815023929405831817684281947515074806906525050906828159538252280261280376448883830406347727741637059317594384590030927637770885375120041609358611771827292236609711704826337508749783584629757496129054839678433398754748324408838233353892226387451434673599391653011905291829951579694490261578528660818458567669201509628796553514484556727260233015351968489716372651613203346474924602220806199860325075224224878256437644651296893489539388724543425816431078714903568389233390987978222735433873642660719655144766251887598247238021354825223457810015514051278007075378898759625659590759286924631687826916025616443761096385294536474135543454183946622035338516925716501911838341233098652839397006102868606189360440269665518871815579340728341586986872778688200730394248094277344682566410631199096103906860661739854666859532877329604290537166413536496923610920876202102484074832914533553700160584969375001056664948203898860349278944802467170154163036862749840710028253820909391437777675563510340591479495992833729297437184213979153527709026513497591774013458402506255683683566655806562120787885828752394538490119788019116812064375694540071786383997248264164560040957809039181300713026606453580686047787777497494630400682569186342209519018988853608179395758829757915106011967321319171193222613881826545285361046017452713216490931929289603558013476111639403609809102613337512451114439091217358233037922048945100723984024703802557078345089832372764691340597948365615465212427011072321344596965285515632852988651332115373419380163122054364029003978325474685129535023844854548265133658699958232272231764753510027366854640806757719421468857520871844709509183874297742798711220600161879326621031740187998915867794867331202711862526845394196052693940043080037567038444139730089133903886519027713946022717922713328031496809075343726770610702717406084766213942638541227487970350230453803419182615870455540551242480504063300248778923931904487810887997103476197603777737873791524309710732577331859469284099538472654475533400901807544132531521364155810116351788656037256595062787673222615306927937125925749676461915607247969852936877525372334490228935841261298920617774506293870471210369266314972699489075533717027358312093868209755218893981300763123944979924568211274242195195074349992684242460088818896533252573375079632032021867131448247448583689710100870243123576587872849378086183584316999484837827772065973725037607205538754291777717109922128240265388505644038688475854538763441949420573209326019480013221236838858960022656622075940177980461414565627314814704691719708329842469011029270729063711756864868101070112305021636236217800604854532451284428437968746387535242614235391468490530364379325607446219784957067498468905314329212363352067935290882270897197805093502808098499663036631424797166254047203565511353937912817056284949018586154824263541842425829783991006312233072106331608058974036014176452058879880030227687670913750906810544725502271683241005160003650592267905436414589351528403364363777226397697144261501493603098457970063354413370184576297828218609083006068066561243432435366343796754914536389805718963400441724628354665587501807959849439082933872705722573280600088307923911901340008728613199011549515546066168267994549272189909379942601701545182485218357196186839634504796168768851267741568451306537133546174697972451693766734563533666217093194710404470044442849855715671638490067583918591271365765682085924709900980209443769058747482104297616159538051759420180663672561557307220326931303428010273661595377362774567666805595732583888715638950676505146249887059977627095347552705956983814037331515890515194471091203955784785927631745241428754917080850883212965142241053458854742816479633245085392801543854979313986729270326776089345067792465258299861790107886601556616562741401183525856475560770036477507874365405967233457108031789810266430112629335248562915358796352680409010694473826431843454700200960777068284888042110783340960815436450631643060098871247590748691232726025233127042161505627754711225926105009686144759602340507538873427050866996693637152872265933121616934530587209923587594384339674142001098321623429182098385132113373871906267675253183624553215908274134833621460322812359419804849634980586047584537826907731790098286484754895680146216957499377360313817112307421666271297855119560069693568101139280093297280057411624970386592834640392626489978885186960758170247580620672299486881736622533061306525570941970152646353946162228575531122482258226793848734841821315228091430842521126230943901961065507333027388615009018333319290961518030998153767612688572383380496551743583193717919441031258325065395915078110904823989477662217349405884434455230659206666641091930541710249853557214420329425884455769995146112885480196616439280467233303674874381300549670582450082273301166409451949761417241327887673163221911487334840239028018956430061086396249303722613971130826613564234824575608993703122223375976231849746713593655218926099729884183563397194582064385287866236789596434770718641447759597259555517568773209561979201577789170506123089691912122757862343186263707571851986455459086500999479925702570856505164765607173770233612398324535556051898110499219756392634274239287662831168155246129870221255547266108327933471581172848554125652320753002241825802891708305263367968167368153327574477155447941357584664351734839145608985274000656026590222124651892933099311447476179462851330191395735338244891687998181679904965787566707645815528301869135399812971504430199014459869960111256884208949669769119813840489783922168500118444536859911440417597273309826817150802768260255295866503635986129712481186185573455849267710733863478635810572091247463112492724507748577624252760751759984133910853012911873690222148406850737812791938863025827770474788067588550989793700531907954987360805036811457347928355601997055302357875913934412708783615543850151158496908644375783619684513492698382739221533342838073747231183925057969646651365011498857723939822624112059680617100280493506625909313713490103188375474817267518325100125493113719424934148016533199311981963337762730756275306744853397606092032374747552205807709731450552543665839418666341846102675703538818351951478462642125656482647922684391367729864164866416494912895557005515234524325750042203567122379421627600560961536141679828883761348394280842756479679739831743645100684331836448617465006740236907577296276830564366053078209471135523079102334745330663351196782442028592974196560849375609404831314677940519974776890055608898865297059714819578647603014746205888829641134510921855229803577612423152275090985348173835161166616106222827683163751294040671786960101141662703098458926616970344683036266835341005302109039345412470490682515645373429587753011354707869584598254225085054609603848270815261194667245747957739788959826770677381137840963414250830277810391018951389632921967767200065292297867877870799109693105926110596804188360343727427732107445677739265034845912440073161409113690814310511204841173144772896903331654609854145381276316173868859229448260267389189118687908963147605133781416459291700922006607156015424565759414805080189107745993624170327948080615109062365989319462293180090987697199702422722408768951250774748480506702240349158637889763228505097027973034933659811703308289739128545084674674925338659611587051119312053023321904007691181319829793426325397600807542039447474475089324687545281925151217281102211236495568194559422796288585290718002381982836911915004852536537447881622787531674188563602067264011728234112275408816706048083774998162078968362963059863236150318501302274974462850674277602655477913267599409447249132353090356831348071445495787030596386102742121176099041101444174678129059886036208555921820475029825847703053314478518777240710803204533579562610150567703493646043891540250094147104391965633118608604160565301344321112309095345904067449875032747156178308704801693503049301693324174870403523271124629906392965787842540088691807900121494850450612302260663263939148849172729461922127054487536927772666175745243237502262343191927906388812609238595411971636699422809633701905270167342161101891785836731059167842460745446492039278652798093712108279309110167151015131537438683124143008932818856831099280596296992451457026124366057263546999628627558300165273522555994516451505738384954018296866475884314018092397125675435155661885058560202780385394238162725977494449511901054790716545333956283140382956662287928841478716618082083622559593391164356269653448296615173384770313892586789262050948592379959659842506321147399404556699732692867008988016602417432395421839058520557569263417312558591143671810362838478810352035780487189599465604547174813470527771819754420583632256067957157223070305316966650868734824778858890643268742344639364085273609531545897354981698298792287382204740990627299579189100770268713013473650119409612880321029285830372512936440562135773915260343649991748885025352194594175932732651231905679641472638824200736497991274284806846723372186198617234150684237187531092917955946118221085674803085012686616827155116345381643815991810506231353004135497663826821010063742420962584450510867581390079709694355669623045782464175257303641304187711597742520779046062866429543176515669523298508848124926386405494299877483036245220284549862187793420657837646210398511388649961574279204305181090972520395482328300827674540334769523732075240269540194718434996007762253868484212176064317421360427890911084186121479270118332014364648752869035022979837537424210406558954924416282004160655680390509149063912684744456594869654687401373572989209337012744534731324915119658459414576304428725414092140139872219080645349362691600893866870605769242386002607390914337523385904144381855889017559594773886694609634908757643867547688519478777302760372359088677778996138807188288598875919304907186829886317178943024211397156799895525821071292172499514053263044071194758809435215692090285245428098004266396812496291575554872556836983169137864906683117227926042753807588528926551418227347809817736336254898372593552039529391011675942624033016569605756963638319204938924202750854696725244601588687600020684306822407308403709690218194076853405922093434490485412291585206041339537351256213392114833540776643635511319711016232423130482736752573667957591224641081994705082891022727745211473819553444524170482089884957664610314828712367222592617700744961611171732320043579376584560466856629422864487254991071798605115670778737720383762077762413281680700500311537063423816840658105855963887444062636908911274274719408313698023861378906832376132862551076326383330733796391077293063047733928825723711122343948757737252557289056991390823876989943436405089316587626855502224689075488297187006807653630133280443681420064945674546943426097387151619577486200489039962426941097258409902449167522718719713405715397130005706074769209128765062179488398696123547456175533914395425561039554191604770562161342781905427826996924718619946932865455229507774638903988522152504512124163384296452853332518981077338093982707789642163613378498142085042643691409265642656117756853721830245619128015991418167047213823716416571854409721231402103462040218513646411441644133035512654213457765911352661887630419916432930010490256479345095747789854091766775228684788337520193530728448160589626196019175765960493149011673411467303318987649767939541307250462196702751721186725678091086969444680982898358232865038166391793621663783458541987227253096396698342233253442836805427280713636447846983454873595960060795480947057024853850596581567599172787606590089085724429652050951482520138915606214085300480010739240334653939903885649739112763454401631526065421581112693591221346808520446222705029758901992751043397319033829729993247609381661164532127651743961446731512950664424073893844631071750733824484946575148996819085061193759727500616760028395882507259917418766171454307779214208055700483326386008358152304928541980018640960260617381042250463987429586009833561925164279913002836152343623883963865097205187193042370268877032327083811801721363836360089747307267579554675999772472935296555060196258989212591705578308839166365813557149476254833049579028194412985726309112260104625992710978820432478243867981831160677551195380170457852575544951901049721481860884597524575341640952899617190367231181533477002052919246371090091137494663923836836805617300373904846697787450217318463900140780873803658296450814306755531169937702858087924580405528838814222784665896306247500364406187602465645263386548260781634871442226107200030722982464096641115746145031216468850661482705852621637531190529308132295684148056748145548569484777540113117781166431844820779219768514737798141682771001301372828110976670960509033088604308009835951255698568123946234373094241232822430620986520532848304977520591909956689679054723284272411346917756303017875936141586436272986784211384836752386325518327856477322231669653141532411804310497972860183196048669262692032036992250085559892243078852540287671717283983577309324652647562615661901901090182503829453102218688669852521904109311664868582437833924334909640715468852986622691190801856157003067785735560387777687260855660426626015451968137033186913917799415105982512442976895609758636609152778185057285690177815428655881258433847887050826927552245155477400527941361203219319592702205749984631482155965803644508854002548582209093647168563068992561969588281526848587951942403917714413793097408545743480505839462445054195598714734034229963601131904522416383338453546295387606622126525651865145638085070340649945067534906239922229417512817480569401729806244885939247980583630005380506497828054394677126168717289041578149515725574038563107799741224459513913656485444008560174674063942783450874199352973359272965086249277194351733569677941371127726175993702308338612395332711336602856470534354291569469724201376882646521234414687394808727413528595404373193361675179320745559536333969798529330059366332920559664429764216265845767096350633380327544770894707612908614892991616413330326623461881541293270261404446461514079435470618291185641734434098570215276850096130248398619308699758962437618674406262528533343166935478352481382126978425030155713110257056278463017492226810312073743739341645332585033227578366126398523934524941165806661015463430342272065245164950554077777918979424892916543620766433258666738253761384255307788605853059278189059569836363810207911598246954741686434361931111425480267263432446382147732367684180126848273907550881593233231889614313319360370714605979292862356232043908174015090815077051534713018027201853558215459337004917955291664169235482632790357821157129964604134856334802624526463428182004796140648938990994386378005140548502062962123753463602977663361865570214691071210910402986119742326233067809810890270706271712170177582836083134115645475028717215219961097172032613432504807820225061876095611316793850586194333603846214779472129484714545889646727339159058239209161777021003400781664399689724396422998521025406309956723537092990534586908745154409879172474657638325307296721716472097181161088568027522729960688843707017591743804944168970185132683494277829944566747495538478554642786111372941182147942372333627047559027982563050182262639265951071719630147525556200841606506268030600331876155493255073801504022579382945936439387059693506830439457956934034494546084863908799162750489358677116562414946303927935673762703773703450641165007737919219924205275928675100019818636439221838918200596702517994602380076999292566403370137293821340573385407538046443316482406798237658347274158514302391441858722689749794264609230385480546943974927277298976075856618744470558678248692426467776654814589971602606531395204047799575595143572985526435783354164557586606995702045485055260493636878110109635229097192795296017011908303717622888517045573424281049477812929006447747047354989933383534745311293928266043653393825516427972702152217115786704041558429810188774141620689949401238164844564593773996646866917296102683823622120627678377407346090015806227463736488859385785696812782509659017711808667661658127629474916137305509355343845391230569803905692075146059890702850359458730973206525900459723277917108609765210159185867660092134681281407853054452025286832213159920496598570090643516780479784836213122919097447886069713877180474019658110193088669554955880397426727877298618549908029824673265734012552629154653424213504825504980070889812178123095269439806333093530245172376834832525221424124876051051065636564151440970931990394381509840755181864315170082328701224936478526383785751680144988364899459981559326216103915186516503163019899042169042750147902246012639494152846033616696663866532960315365335608932429523221623289927247968980544812726606517872865407042446214917237120250368598231934788823672544339569293656084079197988923590523257971109641017285489087516067996253844277053133492669519607027836824546973928875030887705692940383301819940127355838781037592587874038351656799614100497018741110302394981279928491556014412977673973823296824380345758975135547074576072883665759922802233359677086595924778581205234628104746486040601010113964026989872931772927488945296974429794836406879036602379447353590995744993851505069931807937224505084842629262280967406111109088416683106584759140587110832683758231278484714163270881937803457826903047328473129550491114287546966029473223518034935192515844852607625406539828132216201684047050879882595032203760971285893085121730316151589591197892234829755097583067175924717211066203276452727171722218701817415722940455580088333949246469389585480813248104536326955438891384213706381402648218985358377854633902109952205095464412078454117543438578227068184315834389543637510641432408538584923953576218687443357845229076874476694491468067793870545622939741074739104209531091916647491082345054595527217884456175209885244201653599094735089833827900147707201837394564496421599763683100088365759287588501184810430568536059387005779649811205465648235185037290458982137293681886172828558509842850955942155096875263105043882137877311687573790469589421133634996724391925558258893049728559656753624773506285685315443047239935850259257660214177146641076839678978726615647286609683102817841036687796535743604319416194539463623255897098824398810484388735716309375534237836986381747239782553695127146304985186452853239337421374444311086729368144351483772678768812649888573831361993312094949225991864716980585342966557107960835483095391586713999707100789279851626742743608858605645013973735278338615065020556420615295396218435230348761879046241109221894317541186936957790175678374370764799140042634033448388900062654363963785445300512381004000153353682700190539953732479705737779651305575041069530401759001427432502248591593745568168223553336821609977975028499557450013599932016604163747599386840004956349126863471764386667372134500831839936453477360186396865917986496801058930374248193484927637167336757055630548439636518226717099834808295883387860979928945270295951263718375912862156545244483723907340756019005273450054282435378220178798809052119664927189816666381679121669901835341893685241483267632732852091115381527525021893933898820968111334229068584514543327071764275602341729028448105421078798526389132192511731692996842482694835652425336740177678955522171517117815412619082630384325741204303700307557389201335621544675139639420020852789066570668222510345227342777284120758817401028665054153471456754290473244613262460975504350249334022952766111801468082540085276162098618595710895626291110062831764227231424511049548021473491991095535278942239838710542967522998352176501939710056567738987433877806531403771895458870436531449029836891769306451178543507622975579242179832174635628825022359948181830815747749253576753680239531779182358379935706593945771356327251651892366523013801952151162536425541642642847686514888914999628180956084535997208751788399400013484349487557593499365444787578085205465049437192935889345968658361502139334498366669290044535530296100818769349657508927007118995778094043478235492754135773381826133772318103215979949030316586430498558887903802468149372466302239976300025009487611597687215332402244827378728571667248373890447293704784899100287927207214273521441152803175605107692282171764649919140786973632490886482089469059465349169548889706069196923586140826266949578862137674320725523977967968332141321921905537602815794661097636627788839106691716122031300077330250204153399692552478235419804752642363967283808274362681273467716142528235266182782395175857091659821703244772332950796285639502314971198628416228124720188619311511412670761656957504431001054699575129139318857620689880674936561778787734574552283794037010284897123575975922063456428253542447382501209860194958643862931459243003132732650317955277305968818796296755094064395239930377719797598718572621676020630547808174406738505641363816338005012836290775064218953329882638200754495874301369138081092755067911004308003175920085671823041037721591780976627713313200118670462887962286838604635286599098855768863862847111044191818740821458327597024413018213556247129201512548639183563691415084316249818147004979309917100480417236158649610679694805544844118499361945153366878701107209238089336755296036705462652361420813410742934844600431416314908875238535922193274600671062717683590223978676921957821579190435124437624400339525227819442775118137996241424978392778578994692363758848117061256655056499117642458188503080454811127010054744573123670849396386896885361754611387577358371181449260048670252171655768910019745220175108075274369444353843841859501191402640343065876847071446189788571170226234137850115406038339724242545659155276781021326277449293569712526757268539390366132158395042610426698460874211818658191709811520626895219108606451046243448250884343557660573162447090442032647843810715917826745268265161025036649896226203458857917281269671513655983936999891796990195028187572407699684103409262586046711142733143632322715529214405765924399652549125049157830530585290205201986299034962018348872425244405540580688872029626352108154642256265439842422255739578042249530430022896695995650233327989583772288871101944337558398995908386624491315744573497630345278910912639050415957606232171755499965697057457902464545819141408743255665368836156290789787148711874988846476300579508337330473782961263236831014872901502145696689200298981811628739871170974237105505153835822977289888171727580141068415440939646612346720839483608622420475819079669820432975614258343667603787606883784907461110099145445170786761522446784644082058539892214663015813552646062886509355884473918449323403169031819172858949693505668429657558266328898878894255088587241886597745081241320252665272430072424485385854794231660301893154705226248085035128414241417587813714138730773158591936886569307777186844639637432829716354882153135320478651312340766245399451206284742763832319271689510536945393193754635707069177072700352598233796696156277958700157036501976587566873860735602997149101103223347998050319861270704285267627201180433373761076685076130071754119059514552742892761372504204949653743093985760116902661392874229911170245798876756193849110378074794278795483125696709083419692026253688142501168625585241833554750805865896495129549399437269686362852383212950761694216576407680596170013770328262875704479218232601465539659535330542582863747336657004304243241571587053020032591403396576897135527887072201819302077355732751055840215848858939923293508572510808332826562530016040919464658713349569841347581735228035502636235773521566037982760332928821252445960704881287036794813730458907187014603439615703594697948397997879425870902073851886659580130834672406971280967284498191317599574912177846516436797186365808585746402251066902746853262537411527280248740475547670444290918525805411916418021019698230959229977972685326339950294795880395149370912743546938874954656600599480540350772378560437121847013426873016380112808106386923239055178912638648691579659051276267764550519405925171400259405900550074547683107857177622730342246149675156457316883992685137017747716151528405364974068101796110720798848352540017874577963199256806027701562800637694297183438940588172171254586216959487052558246440219987123643823785534206089522076134823766662752600059287578532373962480974564395372344695954711199649879922036485310483122261894472363597662497530000728484423678510169719994233953146951561727263292826117621481268608906639907088402448988261506712221373140318054405907904134319906127550885149974345495238507144352344498628079670813286135316855633476978741839229272913192046406715005600718936486165803150221387172423234439321950091274519537905058811549461874199610880662286889264762615380928315058810274451831835943369044776132894884718232852694614097497970661705090013940214560993367151290781741003913447866479012784699684348358161054600653973770578056684743315381727413343689296242708480930254731934546026600056221694164328198209090659378049860848701900901992748855365525921216839860097547617305705263129733396827216652493874714883617586775624725897136456204109208208393692263374767427319573774706870946060541549436296500319031628750280919137830893036710484903141857732673660872538507033256107896283772896587844829635784405010677741005802704459596441488403825230746807654102751781654672760943105136536392391256946994899922298614157975935496217424472366914607236035571918431121685787650412590291541668850085248324956452728689569173158160720952687504655686861979006109527718307179300217770867935885686283602673584229543985616543124022104964999759884847450185986557413618471051187311102098351638942774792966741640794290543615118320714246856849379255325304881333467357584289429785093148586661113416567727287188800013416538425539178734158142222914070748568757134719818332195762164376536516879393688602927017689303976683120447335471475827126899018391969769669373197593237339961428482096496161561972384501377412105963221516532381835965332529680036387833103319961059178929266726474606020346220947639760763741635731348898860338775303283110684793211146260371815010806471471186454228513891905307653986793093352326786711496030172313101124540971181831511721281775510273368926821402278226276769749596162847295290530253896683963641351066635227442522485855689162183476945320209666674313128638737696812830425152831850232603286619656649526767628434963377851043428359080020176707123758827624538667629140818911691309934647760365373279540288005455097145324255963555814671045949435368097181752350184064747118172624984961789353754400848323343065931847704991847872530546421005884269190138379090461357340692282594023624200974186937609682910924460657172254322357271355477916749312106767876576429816517189518546554464656390234169569914087085421877299358094079198189666004886831484619091059120879737985844038806801469020908225340634090640571771578061461607586066300156595172917882668826122055085983126254587814630699690754273144876781173869686587484228312265128829275942795773173822284683669885168511454250080882337446378279242425348502040138904110211374316336355026160127852596125582623251997820418261314638006043346441977564392440892678233966882155150085466206603867697038526111280888035689416453319207121209518959815586168646216548330559796031158904656242368794247054367424839067627274713823073445079302877115086777931855684587799858247884980673435478445191232269455037447920595212928548294580172918380135407777140984692597254769964901965808878082146220332445938101882202866949711834346576096673202754865216728010418534651779162803353437948050225819664406947742040829189113353642251650124998162930346970280301288693625019343416777213023134953015522843909713099819590325868468641461697056432383495592592707421672591792037702476411206408577895581760089297217555137718094466881870902367065081191262847870586691911939255701841067354743136024148751722471577303943548096616865442770595462370566043267124182820197327871495651897663297397784194415537790078952337843745026004328690135330301696630417808092525843643694761418794018419234525827726819164255335318760843773115406208504396936469992619698209025618300232193273048546362372594275759258047416111779430863681342658076325053235820687611536304748338138604056921567660658928962643823287262331820136293162119413364542139063545270248175957130680782820675728039019853147054831874335241044465498077275175135147993263624858321644149364851750582426825097575540184342272127722216807545012030590286686852518126644679408270114787849087481719075966548526951608977803088011956975480431493206167104921283998901522009032000716676946063020481653858449201542682675607556790987609502481501227107091513502534464292776162268521620761025298801408465342365443876317981922777522276319510040145731760395144026321841382919306391010968442239281791413160421749875954159379726042839277186907459563763219663708291681625077331370215493223947956602197421350867806749915845328873750218925766820353661960468547008726696620806397043829305188429648023234647177012753925432625841937224926298599356675038340004803876999583557195296012596554254913312929309078255573423155649442767359766194417801805173157051115668622206579547406438868537450229450029694891257504782371770417501894050705125461191132896944234925186752654057244417902322442646933608760785732214534391753851681077929979303580153513852689186969277347615286989256924946398115553981804624824985705034305045557359220030797042037793894937422462039197624313649821920532089557211641273895440498101440498765577221139491051145121768573538499809697201321625576878592503163923684846340216555056651742019217566948991625251973914013874125012224768080937490833288086396550204092364904447009367927362758248195715636411463799157640069256866719709819814786726481538976378202765502557502663051567220395851800574420542674385089161778006712657222890086583035836962045357694306426500943474856391972289087946891035213034600635322258971669132104988647852818876788153464581181375906948815642515676421908121234847681413216087218669478178433124229438612352307227541531147682006172883627106139132760076764357420268411383795086715999570783042411511265700492100797715675241079837078111792430402426228125302836609005303574957138323660738559616992051188787294923875666229438735973837520550002418349181788857934888653891868170537493709480075550832174013228541614227686252991883555377234460907755812495088202726478864657531924109242811784495754365795959029180937053487531384355719331995441782397541878101761956012588395741319562309889316810418133336490586522712511151931961702149352376718990123029188958448716397558487376851173095504999357346565979662855235307041711847976991458219665065071646461336031823288420851699182906342261172176759422830779887173542465243881418258878456651536504623448932435298417877510291065378776421781885168876136646449031644802085313465950857608130307565644654111717394917545068793219410831612184333285714892217237755410902723602643308466339063781628970570909726205196728565143555234895223339118023567217266076866400233733781079406332881802174226665822719012672433418823064134686549497495491841406515558961372682970485446853069525850672392215838514918485619156926247698193479043841968037128701090140128314012198715936535651054868842256136645917104087170723921212178649050278482647909702495685830343767251944842298753399808841709262983228246157738283519173449030533293944420190644392016633079403247900671823365881023702882711167343265051399030699866381965444950202708477977103424904254970527444453930259813856254252172286758964483058567668831787276920712777315989182655075215110806026427424797251098106081863301154302955838807694335825554146236097436253164152470225174541978032730981510231032336114936267743488458141452093743746873801146716283498841278879399454915132016093682403758238025329316835598060193414205929536807594318946486093010049856065228343662440980041347495802934370061240092973790979640969034260267982797132089633885740860765175834226980853233094086785678544389264413749290538247663820228922390665637201715998563703576698013162834841965676779482528690890348927482995733704965479315354516929409854883347697893277906392608383991631966807879775999836452713527088340807100420713285792037792599963306365811373995434994972853642147065808276835648619497325552164808635321454543371088821876519636809361226646189399083585709457145856903661757959709385847974378898969813354785822061683438161246132735262907651959814548121742136417127493994612827558289961720259627072067363231711759886185172460024132606305788939673440439611623062346107521035144283426788972939031389450136673910899421665857732919413668790325113357451265786652427196823827043419816675502596743381782746084052368214590490519718428053171107454946549431243586385893330370546281804299340460456143491206859905703111967544276303912116043512205674060515343292803239150575580278535530129834721062059884035672012377873384207304825493805827704698142328279020954045190296165833370058031513655582204573125201420472978084196806105036600938900544808175315957820155395619905889607023823719779079674455062303335124574365190815370976519654585225313991687101229230979890369122271156606120157955124815465751789041590781459084157724077690832408127087930880207602390234988814262645122285547715357531499399024702932659019532371777936621305583029345052323214991434196466518852739683292751327276325572361376371011515341569612807099364286973498851141291083761245965003231728733060203565093346180221135157356926553949556463005136519120538222403511406660446971389652491603469817767843219862348433371252596327393359707173401030862813704117782513473836098444192960068853420946741912958396349919609908753961391710802777608678409139764477579016977457827783941615313767356524054310722176715207326883805690918231109994121713531025563913627310355834445040809159116541770256504694872527694977404275636937330572125849570935122330549426663980721075408708445339404339315321733229118462656628300128077902883375350209957288106603869961840800926584192317914817705789493550594071988523891182518068061781956364879250054509478909320975332022355098770753643230738053160228195181104647651263651234774935177769419098639088241725859686747947254722657688905561061478524210023036697415147843950112712303481965088474702110309089281732370089010236232139641435603423750355681036626937127851562295837457416927163604840150828207959880986385078876450443381962612664259662814468857514728224999921176031991452162802625684210812830981216904133503676591992594460331367145841534932309761727469256818962433538490720409966162641351954153618909132725347014562028556235855611043113935671693359644359510260326254932893582179589417288139632641953921307245729844759228037563541363804725321020424460975610897909548669167068945067585630017548765390336463081728783586366708668700749368869764731145549018677627539345811615744948195723874885525802946510304638709021768359945312523689972756601072937265331441308071890017851768143123580192080150937838753805039280852516086639983211601621778187566437942379611079410051328680104875132373443580837044003364406940299212669200650141814928801397678070789628706547538338480706711725734937511769317943083387551871678831373884646901743371871125008198757645450959331160517233650160325906963361475916814468446730850612506254321625262066089412991828190347318442739445243718446548180389856488524163246031213566243490113506094187582016926857769511966691415024947448448766868101405769158458281842043441232084418060321784142489586001125485859609079334148700188859344596904123362070879821208114995579376081214003577895299692287043014187358796888936174169327189528897493224493570909214416261320825152403433330988425754425930345005355024845059910454363077619248289926523116958546560932533322525225026845524231179030925973452535009723299593751105290749641709550649698250090390727377326851664749091569340219193878095230954242188714664192075439659841908070582015023668227615708697505194416618623210715779332774739694433311923547886385373387091213111121540093649823819355618131013294389979527455849402154136649535306169373409853203471426960659254414833174487065002068483101916988690634006591577709465172138063252935601758674701377329034541314741249615290530955107481607738528485882915401125273791586487034374176748259659706312274885174023024874910124822550349756560528571235680491480961335444876953601452928766282524534539676194923683976213754622930224446718067653463517278015612563830516631674187311231994496043718812013388529194443220682663728326014032703556315431715038934372031318424330650910984154790468418444221883642211580395723975293739845049628588339011933877821225186775540974162857495533077537632077283997257728641776464572585797400217303506902167892022717200380801467873031697712612361600511851306416818642590436851985606539241014138559261149112354112088591613167361216846134057495620193730612865461366893741926464695609317017833679542964987360145338998463385429960189810825147851776179237801646426089342766855743586521942399591791430458363578279309877983530295924906988944492915009704852271476296072082286429352499573153085895499783901796081691215903523188080972307477468451334100871455508322489827346164412605174566310645740609407286696366008466094243061543105688226444129361032883176689054241521154947769963135221050268452469743949664674637605751297450982898952729893539027948562503475073001219171346309889339160434420903819966952119450407156568344283053145418096488690985569725768214607667398701488502071599919043118147870424336414776698313325896032863015801742231262463891383109943998074845648540340662000204080208310186700481856822142460856330471036235263105487691182438740188860412372597653783663777653889904499780925179648060749266543089250609701085630682794885896467618785247030860324630152638329295236770765266264648201478750157268313231864279486278339321667257894549998730153188940530623457827420453041805096010390748077924367623902735199732075497354470136404293364355309134248360114131561875272397483340191062608586583521950328429520874910201874497935980788627609700461984297546473565903316241752863594336117942645307548962294027868551599622389526719256526122236329178826027358531544348607621021814391986091832082880981369655237851223661693851141103549741043979478407741916225578982658017651702708453270139441969638304782939400719388337516258580429112537553256813005120561071835044028743133003744578410946867401137611389182839856710762628270182853738764101952381151740745554624648663202673586838016046749704208993884677124132332281861944259709196346595692621626488216410868135687816873526047855387776421060821334249058482005544489504584098723235701144746547173431896615189899565727280797460748465692651653427479671431681990382368430513782739420745184545077181341491356221921766653380435882462577003478017697200981916810803889409673769098355450805821563296387677547411058449862025944676810397814997150815106634764666432358951828797932697358227374948991552014425867899545348282322229089176694593876400263922188010258314457145008171298710320263289096672432304343110646370925195953370016833930604355583814006100334974181806939780136987623626206985944166736118057842371979898255836237751119489104656771433293420192196694044236034074783536313338578579204146164033624931827474236765867234238903842204753033251974520899684089004412671280879881690609732142982229076644341037767251796467974408653906060178962071349266555321762573866154577895993676600455345960682272432075949746153574845539604459045116559731897935971281124804522255275279963556599835101073517505139692713272317208810127189982433398771393864242402895989215487626380321026217939009712575265025291455205423513468455461724187605560874214850479581885912443996649484830933093440122606264785496668887206385022530390199089682796690101643397759503634094759268049049504612310864496242529218359035590274709266768898898625609264762933185547050152847044621390970718831082864536519067640321615127230492665338583173305285330218864191174748224360882020480964553791441149916769009203607952123322809135041226363995522333021829543679506684304090932456714882062072647814952701601324909688641914990658154534937354310727066603111554452061109401784897161602039023258356438901289140356647182710334545936144439248991175276042883935488628101932451603169333891106181361536162149853681669365699279127065602781718591625432255439259616999406017205304573138246587507715021764759491768134977232373999412940977645224261628624222885488143487830939855358959876822333147142271627769882595665833951836260725749064327123549449284052197426691038841821490397630310654310633591734020939184488809596199659155914886654369479708584461458502045100103786461302970264015218336497072398128137042143877232467732814894138463205401804534826702890562738776112569707414405591277690496928872101769710863168947344930164087780257341825118719398433553488132311453737159066257686585911011040251990972038705983688390886357730088463686890241344782214701824758134289821905983616941145562343359498740252599722778234072171030590016213900566414108355379922949207956592573225246974794494505646254303151698023157460822625870478540127100135359519141581141534027387846613162047284524329180989663921439570072193549273494200712621690126892868994119982511399745998667364332007171625113391616171180370976396710694343383160080680400814028633075223776232300423852903457146385627079167340216053553468603590738270824189684430907665963152068568987084335119294343121686044643483542266386239429526691214514843163532990890042304687773652530226534708551790551670521113535565261144680002167349273253020660706250935078315061631868182567635295376485640472117492807436620008312989928367727367945041380889399138390070084489363714498618176664413244033102158653500468763595067637485247261471494372185614751009322987390516896932517215032032795725227920162778446893356912365467099721151604256866803996106895733647469481010432339073219220427694203598332766838826903411350285657635271527810487993296472369422401778832317616312323127086346698779884398306703320393941812680908438358665193642975475590814591957506336742800556931276499860843815243116999282935720453666905116714054340318099697797194282323723641299819705192886114883685509456921715204368197211806921403149378810000523435663541241831095402821269602788735826099745448411538830718061761066433528627274243038876969530658746231253604759769316230409094805793172123753833930425575154041027237183816487081987797097853913046317821378510539560129105768061134594226397080473008947174405552509433341851892659099733698692944011724788183680227969058691531140232864885546082748364197282705175085386534115022959426448248063504258520635160976678193618648902371575143564818118026280263098464293334830394188977896229185385798883983348450573934673279679816609277196217023577977539014495980825187722168278970037496591999375952896074664345675387272714766956482274656863480657454063310046410485194629307380999202531622454714648983806979132449822178573608704994069117637278445986713115370630002186849277609694330205776854673155946020872130219196384873814323199960455814113256949053363713828783267768832456544146697102879253820415485643210420095397384950887292934925050149189832911942195494705016411726357198282304536221656124987656649735551770380098379712707344571776688598313128447011222372617600079314583825642187871325568117801055209189352944523269316731988273056897515115756820543153265482317468409684566815057647037385287665118758262596718094202470618286975188844135698296908648193431364620544422040060231828704050244232267706978377119398061472052635387807290445205546323143756039470185662134778982225749698038376979226937561037849315138187444717548002210109415787471212642593847427369406504242406831477592863018676812846956074028689469825601325197415864699781369920342437203334056001944132590568582176407591957240650040388161194470594888130013340083557004026057440155238409805873791473179088833176987378119460383293195291744933098988087679543452081285712106836442191989600844034010972898483847228371049233077421292057633343498829839527586120286201768641272838817363235141529089344763263070877978108167417875511915769289301137792807745529357051908947865211196396742469636737950538365639289847885673242627938409215296326159890747879050282764263200842137422332005801601759530637958328815292508248282378644524182986185594725941585889158291081029217132153019889084744391367292593644303819509747634730006054511618856598011509335375848478274678571937287288866509774694753973995319456039061580571184879928455303357461259532404288900091571662191377642103600843458922978415720801001617772313454963311805097823275772890284870299042432538185203370154553371047593552210708128115266224787941780244195419463077367076515598537645313460525373642380326053830766093648328365625005168510096925880291034449084747018496720709221944794339018349867554522400793624298811398783525889948444933280139736942218709347943935971589577752737359789451813619828395920634765683681786869260553143140236524672678892479860851869618299151772042843883769325720888833654456224805950524728276875250639482257146186421630334215833754896733527476850436614475802625212004012599347152337023489952288576041155849718941040668411228697767646249854986312495063433723115522398218663145021864432917064622682677575496417787329395899193276276557772977931305830174943746355009135388493591327130391637882019054467822080712877495417237749936602432483186982963517324174957866820031555010705089701244116552983502210764264126376183799809249896980561808956224621609814624593453790131163601052800526285922680895331119209863772453295615226793522127183311219852520125430564268074656351226733693054018144574490199512165472113261526334213119642025799839170039924219970922744779532353513736879002684135627701722360195227995346336256898324990048175080569637637393579974111077680977334130943163264182433991489134079035246139339956468127019134946174222641764120278451786203604010497256749696101739373851173014074816763348951606351573293442110286795602285169957702656979199305200609755628506955850710371613566845598519300702407712650816361921893088750577351665593525735071483389561929250799102890821817932856256245701380674751497342302408299006319918596675419915451766639521724146452252594169442088955931678660983038665418232351383914522215947556904470996749527628243972420832819482053207577403359094725859913709053271039343292791987763552186167786463457599526139387369758314460176904089100489172298078617179760474468456951627671520787101836845607891958797367708343703910850299386790064461482990625710677876493965539362424469403195741397954331874576110492009679784014731385523019895677642257739337426475558226159170943828959581705896750620326075585732394809075290513598952256564761206646548363618800450872561175911515729515087061510553208742065067114457557587722076532208203668249603058734442381331145695145583217444088702674068167886202588798502903688062910821917781356898869039621430110253891791272239307706756015612803260573181019431196279534634351066917432273259342161222722266970089041239064139651460309023091100607819491183560048896712211533267800430414462213529845024905746353161722381006492068125294624287569597811441047347347049337948531431558285260287573047329304740112561606852583844440358065831992977200615663823818256223940676023840612554674102375602788510040858945332752788544704885827093350805608933844512470354817244929270130435367022492871331619055078974471871452111670007051574121831851733559553855440831809269081608364874128281553243649237824196765255325105238068516127872277693912788400837269406967653463254673782040166181529929789311829534335714879678916607609532888600498281868618788804817209678862662044436847614178496059232820410722148084012094377871658417692323609494330574047370469607850690503436778720464710938972814400156671479652132021398058551113358957823885532089387931156289021369341082056533297884220365890192659985772192421616889637487141243539209200821711085460340479122037308861297155535968212964741340470742928076049722570616009223840801025503063501534206629196097737393934405440142942325050856008788241824262266906692737202273762356699355315687950146776958690219124249287531358626998944532028230503212775839570061280091993942424080101921118119823556470384471013403602933573338698350404719798201997797146284996488674239731203149919995520659954506350450304834942121815153046634292356856949878401135976913208684015326264957567744799199703890079285179643734732354292022231540037024611739469878424886495241203112487525762254249305209122655698693118722157111955888803136762405823012158652484680463351856327347714862640036557755386700810037050979626059518447951397794261701215587218531595887437080035867299089776094769148599219652133561026714994160810015188105093376995978916593129121219287081482922433660175522684068631716410308481035071403556036031703467986467251049211269245464396782855870118083209327974626035851320934783344609473170995471852825933637036415039437295978947931856187361542581258509400978144307543657511414472375171344294920451475913482348910423091092341992925609950365799559133785184757206289402435326204460722003069856556181652749944945248053947926589403233514656458347895467885475771698052289200594898686095812010943759085705356402052405815226402505276100403842790409834509522237461904571082538316644053669307278147542042431982862011043593321114990073065378679325871797235506691763028822634552861023066000255927030572873890244504473980398666547175867577458671838615886786738556992820006465415398740934553596348618137595466141199424540528637962824039793543213399864629875133817373774381812945215919245369983361068756282638538048996941075362731131573089640153136863953170444570788651139974592818517188686378441107518116922452098427557139761155904928720597510292259010267556945415512568271500513499842970589515143726127863442050273593610113921844753005073540699550839633541469843217122640085615969888801901346836504078341161339581067845681240188628889972309091712286788874550759354180290758118551499078124846767494444250450564093286191360501302478504083543000314264187122321883478499420609160344685323497864895462209830657607285112952516073252310541356373462989517121653516122225024429209315897830944367150696283555408344417030173583701262301058133857946365485821325643469349723387165432512099223492296518573977368628474240546414459717587189701746096313884752216739379560629842420591542372204560758915817475953943236315714019045064046104948851053674791284083260952259686366990382431582249439252062296211449436816062123806159933416084743304123593373802972577063911462786117640265701226835323199383593591939500934343245580620624251798334469222191837603267044896865378829035000594320183902149522620447923989358434134211572329844896077440505139795863748035653350786267712176603524070163760476689301791851178228597308488773934536505442633278142297110613547116736575620770297409229633406870933976082677013735054713652321025671053241050066149710904496503078456085146279726933136566744130235730597134216606966182618593385899645686526138149512947297959965363622904885722788782183287106448627048191243881520534853280650511542833043008144722587915843573048607185994091190744824946585560496446571632932825683764947141845360237575975722407179972203503950042782494091535912073674436357532742336808859772570709849136318316225320349456939317000960257754632403176090811032889408354562811689712215603283144371200045385891141385490675715944123172043549284112503588159294068989554850531443488283031385613396016387081373356657014569979410457648636984282856670967586333170653088963374932758850335399742338932630212842181509070844020519246328331196856672590615689264968800339983716455140965862642899380765763568670084768465376282750960623266820333969310133401338613773269080768849273248979748282686174195448201097526945369319134623128881304690379425471249185049382623438844888595929879360290039834618479435074533859837623897420379234191558332408412447550237512154461929364329035503242557369146774362346012795184034088140344474682340662965816512139065595571586391549498637651320041030319951646576486856859739578523493577299681782498333059659235154533876176667150162897211603829228300385569035573494831316560473880291950030589817317497230940033783167047290895757261851089726320762741813872403804847383386992005010666186683496177080255987130434264554390630233201677330853449618956142793220998678674221569777486492464670678602526049574852816008628512008740041154833154622881883408050689137058162692195216969711207560592887477486572230981735856949567757127320366961013247747947825580718587172894456378586370360758537599111544455143736161509998353368250122386891707588253661015673159046517853723563023247371809888805797184884098698609519196495998255109692067897336150983935719983775820343983749852757258959426194208703002484954134252662861561997236621306341464477741766441894428006975330923794818926846580275727436202765619194407073565136584245520745768555130212104173742617763941339744897683570641343932353233752390084733915611937953099486969785135111057531258673714696029694587271117770323341598203109051801834642436881542433337565035966513604595939079639862774222153277573292975774281209480264485927565613310737384545832101360276349354924079841810954097840244293205597482193559144455776308233492893186514387702436343810373248418827863937396576854542908758588111142796035775302197384380324043277074910641248383809215813771462022479385906152457657212241091267245241450250459378250167043968547265187572341096375017167543079475374306888072769183365998386343039751875160785578331048696106716322708846007067342546558337237438379233497171603580635220856245841771432667758829211778211408086969064279517516325204452886939049633659249051671625857799168148431719349602040921163025703462102858905793248106690111722561592082972744948396076960808407599191414045816766789961521796571299303417542378446288252450752817594378407625171656335833928977826421800742229915881447573467369412918495799240197875951051082878520170393100345793392660315901434619298060282091244694775891156738234308043228646683048879029667003578263236647962165765940729658110062794450394092290145261060485123024198817779441228648586266090949943900932637274988065160059519409533014512644657024804493269911733075610428114720584462368137710204883893835795847847012977272777418081175748840840982464904929040802259010043294824604913774231601991350651221637835608772398619923720110827825332721267691110628202074299272675723335136849182522625300843328544037415519567906455741760817831637728566134414529647214317838895414022281999616608898164984939371638819279961259677042093978592323506556976826012317303125420668614984256652994750482463107758266181861271587422388114901627158060768761720088667524046023558047221854621156036741956077095231389410118832017826345876519646442550236228914790138372277130326725496344320595995925326357528107632935728884101627667549336148846859962902006617467951081690255257384536547357417486853868692502889883486798671532624930905545171509727014326130055032920515839947607758718238675349358664686180707919633736542257441935734380823455220152290317653127591172652360193486835526088946165363814473785031889131180805897317743783102025932025524810200043922225131308650243784759479168555303102267045892185105115688495234621103770173065092733661891513109466164805784544768586240585995698849847583581436919305096971200854241212493477522612574876236337843255560880367646053159996046749026327971120844897445675148963422313456123702826784694007656697790959130408326820401594393396176686254701214520543912146511575792272468746671742447458424582115500889428316073134904420673304291664668210187315728970123228120174121088236982791433228439789342593365221371380241678123901888083812495241683672448944093527247187603713014074151206941774214206700252497006413620316401410935961895816402044593935660915574106255350729618086991043218871636733980230598741477367767095878221538999593732093670433757588065400016885089285843946340843445513149945506418278690995218201600517494430436690547214716966522064299490028585271555731445507804652224070673939519843171674054544243532471030915710854606636383718216390887362074827518620940547290741833703908107046316322287765856572978742914690457719314760411678702115541725366275670219141323616263442173517838211483302139522456127340128774578762081152910873198826096414425949235024361082188687666712811112862581412512371567340752039781243619148963498712651898578306801967902309451687838496916429676276882836346277574501048426688516064603108858828586628142308124587272567724226601737416697219978771713984553199176750049701124817254393674003262051031769131719800848607020954296688038078170116673067992627133482599242093681045975628768623983427368548545566913188654430591253315060557208575608753139474534415325298169582424477699329609176526151767908056296875918199411045439479501668393661418132809224064517505992747364345295262120310938059989803898519913437557454479037129656624889225818259374098393593369499091267905587725657802818296680772940950955945593664099557206331188461624501257482997395225925841064490274802097887650274138329598311425081151863887432247064079286277562394160502034666155482301719422558231124992648472585600244685745348511011242375851202952120049106425329324401751625979685890205516374423763848568593919832775572008286558333529674912087233850262022060541844065805841694080666803760939568180272992262300620547987361212096962920001522213810643974165770287426853462254905014938839833245722004493968696109322906824920710180113031388106068969548484498336428825299332290976610328056494318537101593354329883195567368772018074676472022262592817010493306609327311170920252041898393869674402118792017150568375490789829995675489702669448790369228128817953988915127511366600003117494073092418796075536835654907689687225400626147763319670915233153424797101265293489724461570852350728775632278827638323154138406243888172773341478033225960892445715990605833464559403435743489170295640969028744737364567335318937087998525910457827837333103559814700464940601665986826134884956309206024545029411936159772781783754753304268176396121778212445884736407275012633326684994897241196265549949540424129049769261220300825209374798644089028262204511772717423432102911578029862859237636591170426960320042581426430565114119598231096882042987791769188925760327707878713423443012934384246221596233991958514821677315649718547122803497410255020704953185081659603419739968706830679698009757873108837500802300932313517379689254117670986489753594629158994493064501608308098944999683658904344975668304489909422595119524419232178616696301893994826643444426871817055084792798152269629826968313582939444434911772798222463901464193525915138229286106011624971638843914185022361249361501169954369861701319082748943588496144844773827696193528532874981486641185222666104908637147044174264757381686440138560249979901613112983947987678272680771481720062490685391856545144572464124649106843966201875045971040303854621840799815974652955698213766232377553942907187105250472263115560653501946865542032831205085331066711435571858101368546504844003101663442310527760585849616163828642270842151378843164155871848324451608595338222476869737862421421592588611834511441118009227035808886223089708415221969516805387052163039829431629232787294577258131480900214475055808884681519458562054621605540038173136024322614890885222763038318003555152252951589703599792311985928312073608126356212153474606602516175500215604614176297691790575084018331256777507554902763284984624179407582088259413670649862812983288168458787334649129915071224468639880350226888453952149561616651907418683612882949003616886121765607771935264231045610088896335774745007606406242847973087615732358872464999835072396421881013585008953884146287453133723079522337930348943232203091285883039771442470790074644959843729260217776403306594491651896718555570668478162667471400569798305422343203689190694853005181547352824446515865514347676192004614332127438562713168084873523700547231330559084108356390921664854097848692441451084210563124449318083604840289906730122636942253327250579695642223342701319354553667120689986466270105270735048165841059018317787708159585903643825515655755640056565205949508976607200401928000658151220775140655893193117370534890313981326004905088256643953328195008874441484670333585497392471632363829518970422691778886977748023354724311288040201026017226739898380121463111847067574687811694751598223035553606393393496996113670278153745787714223432518215098962664427070953704559623591972355643838405077897326735542007550244939289050061907451054895570303290228743504462724670461368517266490334278773476028200360739452519516698674477070547233382602938989626357637905447234331948121023020388289534711481388423623068609683313854994059673207336440035498795405629720356714444362247486754776340743743628253992453601310579593172222512681276822718563028366213781011916867548817685947132235806301203838874426328109046504084561242151075827370416858736082035747215673731481952951502076279058097156993348170110354190742635643769376117685478640814362054479888921737546413209421238934799795392853032295106693936937881208464599370014619055306948274762966143973280469025373867082675353404352578203776015663436179687882965519325375068354423476585849143487626204979421185564820023661824339191110466471787445686127003297363161097813004714817176287820957058232287425197039569682762807082271300656724413961248005510082679956767691492019552790515859485621160492402030430774768078729429036097475122237088774756782857703549701284395022409487486038909178316936418919188303167468917443757311678107146841413476476547632211406418769084965128661354440256647180315064381637429832690460426616784471930841423529769267568140055293067531497113941981290557616431337940495323384481195310328093747607319584983077843017543053754230612959972687146284039511364675697433334439193419685260975150517349280494346071977476344359484232035492167778732637172467096163121048823149406988611497822822355157032890565835789230300884711699326322156028570209515691165448122276259124434045253733115160894718891010941647495441184901124271448357428137499705195658119248560704507049214609539323021841925510973600325340847053854644495915630715969117988268020171366185115432667152995576723587829315078426351572863086857849125407803493550647634081975246025355037550488738389494093863645799440853554082455684818677578998453906391907063347640965558533720633396351507237615597344668027026424784880421048810887268405635467733697979123335825270419518805830097144854108906668955671447679241944278501756947638035174926932038640518947545535589659393010812436089878707182517444191044379748610760458648211762362656071581848160613693174562364708950617171005474280104968073544804627991645426687628857794116846287103696040499711208033890351952918555422204555982314864425544911147200179168552378241107942820213480314029154565680421964300713966531325338906317722404435855674463340987568100173267712605331781895231769634495307151254070722782785728843352404870168470431935492768288014133874153288539724771505175589393619086687331740230401780828181572957304849966278818207315340715421200338807983875469057968478480552506859143890676014045171307217375975909218151755671329201486193216405063078584418439235195182618610206342658272780289725874510660429160619960008725339406017315410572580554506436250667046382508111535497566835024674751570869946773043439794191394383457046252152722459901206087176152814134975945802398644432778820635157604403748367681986741838786091754975313401859170284617743985727533709937134264623713950396544078115245791684925513967519087208106744619402412995686335075347638344875375904574275420700228072576703136387351480196393042388505646245991677562112269889228964739880942390323531204093988042556405814591623996231265525362281212438720222393471873690782082128107454651032936909530747025589441785876602713762513740471216976986830425353494657049029263973198803369219970553512397069831141167887613148521083869782571187177964012343378150616879968444694165735534351222506741480941863013585343461211481091587452846095425493944849474225968142004020245944978647100194076331626300655315810580396208172502305106731143054203185286999783202384323095944610876108065748312228634019342011316971725828305080404522879653180077415208103660321162060269391466271931725333527443689640464283989310688637022954698676484992506060697291145889231393423761047757448739263012104507290114868886271239992112498532757249184892510126226117080574612010932843908921818013838059412762905261822107790251106967392648204224780679480474046492457201279453168579477442454162621312345036745027095510742722973130371244605967135043531023041484650616918538595065483018170964844793258333132542781394130439002591527666589192376420321182295534257998437523061327380996268656583134393362288896257938223038347862966165196453186919004689320259882167949645959283686736011922223437779526853751808678545742233665177951417793966082849040241401299126440955388124507477742688236995785094013793207618264098408580133386535141413900814763942624714169203751864733300154683050637526774260282142232619829730606401201289402214905027878499978360249192804960281478427457401641862676354817888062597573614365559318789462182953072359197028200926154373501871109765392158073557014882135872582718723078183943170165107901217782480478548815029398008144013127452341819929348075757319671842526536792881624331476853188749640916967314950169861048197209777533834677202363611606639273885531092666917989030165825928295744087428712810187663225098733743019596192275167276068415838540935535096426532870863885806158407115230151803792087202542149780565830106203621511375417547268718892786079347373831068076023605835695567500333484881312602412065707401378542263721266135567629333462245850366942332538021028054051966396707886107291255604079402305107188386615938046757116576118003109067656010964552454035001229320835858865823244717073034215626546554121740731339315681272319270253896676637505335650184201299408553732370811914292944533882529559714465220470065500331751065327670129846592705542262003894022629865588138321907918224011593199149507178247637756657355761554772534873474763074085395712508445857808805758397296477927173206633180015472228874061999321095455687201942239926770360053442683188023531559414128660899073874268317199258309690529283252399255761781626148074379714791436660526575188040328301046057217235146842799472831390650002962059644168221594930669426979520982450048503619141614802098893855853582041597159567753720087431438240408921762313111258346064615089361512602433237956761706838726742124716344148665375483698780892415521489262672903778294899194471167420992448158685267401771481221687261926743164027156097580533925049514630834900187657479503300723018542398399155439190174997852079471854559877862889773041369930082246595284176995459437512217081706754383831337838621700341125063959197627147358316802436066589756745194525969284408399930730790322915661016410381533105688972385647099513526151440789206112068343554507273602143512174767449193110001527028407736020323851010918601504270835996909329781930050354424810370745826207175511448272312619236437724721571282656190478892376846079574062089859798436650009675499929357733019722973829367957967440332392333326998755275723754763537300003401518070436369709022577736612124348190025865661389438850956558181737875208628397785737091620149623729144731884731672396105662198095481926081361342596097274525748402020890372604098112454253083544068520401297727384562915353526357846046556184547475321471487045746467490448012456008152869603820098281270832335417930536352614851605499248856404779139812108088388548480740667463594364673861910633602003012546461559074690773871633366839624790013292495952319648022128658235645682306049687957139551132700182396141497566213076724452283335390851053829143032163242108311527388908276485462745367592699416900702131707260201603362558451898537835413064586790386023049945313138851721618277417372459926500187546001250392710137703635274554034830516713816084127528902829780294001249807497087818102668898351952097655246081534708741837054263708392590874269266807977787789669809945306694014862728013914802082535129492712628399482923530866055160613024383439220879595070818628020655377406936112460910572952684352054562769636499836325142183483984661500391489161994672663152180670279510738960830518155034281056570406584519760195929276644021296597917449567428923779899614430315134555346093248099182677648547666410808022798164453030010259192875688728762642623366631670090513697950004299370763576879701314260859364503799217118692599898934704078550750327349956249265457344882096217655659752979016541580028560154762481139978870723411889552773369303760859416854608357401691025918395303825738926705696372214696611630758505320829377338423916869417483303715261151189766515035244309046754969682665926650861373853619483432096332771211934944277422477299266350554192267790402221515701346640981809996650358003877835977283844364781782199886432952535795759018151273786788794817209592680287285866112270933163396570775466328299945290084513967270023611701486966148970353075535828099874789382008869014958660109978381282458241548595473514403523356780526528381644084098823791655884894279613747116958370935523870014938153096006739305949939281399043236210891700560841010766184566760679607668406848621934000519564062284113268515743562870610569577971337121864923266528571824109146550400750281413234680876627282595204401977665157903054934984991681289525841158150744888663568889169418680029042181445155157271857673478781211963558355721391179580283249382831035175534135663561892895941282387383757595571562418084668792141419995724574479256679992758151815954606806970798188963792101768414690178891902798215271319171158577837278326391983266814146920760397494956647756635918589952566065747446441093198757358290621854082366061276028209766028908349107389941196287591251024659140643175604769396251409075658647877892013414920732964382797199589779541440987743448660562351010056580633504571304205468238935042021860073936877003658025262358263983652126354851354255380336224733501699592451861957916132448831746944143219382567937338865673396657758244874796839253487184410045267172681045269135348640136056227270396230880101822363029486005637126023137617161955106413098893614471097499618980764768554240900172072682355546036683308249925178193917279785229105610948802037720792895313365630309659655735818050553753190814999640024194679062903679382067529950006130674318005738216053358351028006564110912672499510150366335080795586678516307526184797694190696550880221601524968764326330497633859139275073888554275388733009054971296637575830206059080815690635766981324185003682163205789226855128762259865556345938418090714788968990717448054875808637066705306351027319054791123480375639716799561861852749103036516305183746581063678943855628847402155299635372961772685203091033713618513547856431680059144994566967929820671428484981076331336284244072156895172956263443211843770625351220361213219296317991465171598001973454221705295692919034140080807582366130994363656640703772132974160479262784671530269318867547619035481201759916848368021453210535830486371561600305077612006298223435028658838359343027170213163614934561457656326359845711219076364909026685149966365710938732360639076727470105832800054690326710751547227081509142836352329146766079095159914481113646329314333439334770978800919269895123444736601356811891098847064055436405096301512160367406302864994102276638022083516531124892608156458916142484415147512865390556760712595048575292661729615194186337312975763210184789987648738579474465462606002467465297355433023644765174076074155077378852045661426263205377246730171917613999691475163059355163626644171910461044208266600217911630194338881901951304261517080495235361700965893993936725599022273891101653098072946332806821324973387665476283065520306681130155746275197060892808918999657927658718331396485060746934789803247989507008067162959080564218460674928703334241639524872610516434317956778131783808982941167402894385048357294643665717559537435570208699071569301201080462531828566655102686782276667988273370152252081879381007990536983110275347408150912736687041399836617707438422289861329612047086760510565873174238372096821511646990506763133541707673531174743649500315020618028054457665393162019518864617521323805172128121361787223369749257750367105888226667924217586335904764905770512358289946071095562367578312390350032335620426983053509450957357435155731578484960837733619908531516392034245699898702556790703660176695635461077729288510471968511356611489533404465888956600208687102541519854971423769955004370471419211022953864955645338412550721885264087399195806453988199544838552533156896256734539107612349156373509063520305128037632176558056846492459303975085008014181809755611463623054248831235600995276648178992297532900515443574602991631696742806134570152468467286640274693391471473747772505120654253661905222961736795821664987838228239110050982831764880653107181649828495612415909666485195956853312930760384839901131880581433587063708776208318321021932653385784808254804846826749737054181998545117026551147181579334229613400579070846296358219531805422738669814348522861518703907416620094020271584982757999962361433736470652460333358342832253777577855134750032448905210750805467479022668134907667226671564303718346107414635591551965563045106314175814074315049293802886767975129710428027488111839879450611723329876193899923685094040615433484840260950698259965192479424719435095564967737340494156492928051882157539489163696505831156163956021493124532543488628305023377727931930822609387873146443838458377907354339609440773079500907023300987455769503471846587738260482012011285112213123647632639778729158785523595284204700994489581522798578370804149517027351806141303426465421450117025943160427485161308576814851576428500340843530030148670732973127600509790080957269835174651406152102377952731703867653468401183412600351067409227370001891300685586546649038680244639243192778561064815198147463086131111949316390754887626659903967121661161344924706371079540285894312164047769439461381287706220948036101391714431897866595710812755644369231303248544779073976497313859967875543947996483395301939244778379624634365174755181062642839090163373258933326000090392184323436698653103470821483553914489365315023718251433907819125089183145251100219378767025518528889336744759181200706629573157970676057557925803615651087690357296630748937593088598160761807035738783658277217653102721261968900599389436784762004817958661071532015545910824339899874416917571698788515188495051622347734177278712836993085347107272329657476221602636852529170645720204308871726120555724990396569095597932231530851608305766170010832810009825074531032148650342119973518443025895656996994120094931821982988805289316809462932348516495294956756176919837286256202896565945100543231938311886381583514484324379570713493679085924197861540958725323194464061949062346758600957243658361292846638051166093911862072143307786320611728912007772875485685641777642293190305398858906192465959707666903663163159999029278659303010298666055560205258093223460417967813927107916281608293683819916310030832258695653212261793758233840761495553285868072938620348696122104785946680017204112075462882483742776598699009209503157245178450400174306274571575213566511981986393843251543560558745883367748176680020393973050364773952697253281672368144723031071989876602692967170743489579025165054306429945578798966597459102179242561120668243337716456670872618750382559648109640869188785544636898076513030270741319120255830552151595655917414156189522529489519598222639705537072616801984229399275910711502555086313856925138656537753479720042864830492171950038153747873370548041874006302443704967784750326320700271583549024703167135050022384567878914034299728029632315206047287231686525578548164756440818966374599606897424164321633472643979946847030409253382810044627827743903828191402025791876772333186571727224816292517282179266273917045567119651057100538371974450913824140273249039891035685341442086807167071780532740359777528422606146622786640012386749355200098673866998915370670875759910254287970302623907170553873069675114850946978020901396449009282899303283567206891163193464503279366200529696775604579719358699024673563230754586735457178897316977214047758615012047619503629308981359613209984711005547142453822326366219128553679361851796941892498583244316632592727196338416068813847448438723163702233244802201776517202143957947079178163958587171555413033112229286481230152164883765006556384137027169645922357275408071086522554145821257710664692410481195992207446826487636591062526310486683357296804092151822150671005634498080607158102750425434768889565030103870184488524490780540877060327569591749643273887206578153655362765102932877130885736756207901756407299387885195644044787807458424158029668878168493968093356886304013466475062968746256935779544063598592389135083762748061984872176071417147653053746008573641505557551175480068146930598151604015520083567304118538442113257545433962511427823369639565664613805064516894818138392366975726618372660906506255695292225355652098518494213437567205276738749903788339186668336647348804258429288821008118075098910048424433669032635167624671479808487177732768350442414894951944604809450206120212442539989205468967721789120376337017379889391778207116767947282219526997413960450428073390260619111577584861144866230843681822860697510868324241996152658950181008493664985437819537896061909803060462816944920057175557703676995949672840097909878873713546506396256781083356888776852118149427555974590440369973203120755872359698178145729373470382689746970788120291056471078061299555897207222905437735070603535617519832268954630107799938245988713631013100701879224777238089628825218921206216521166404529896261816844335737238704977662337157360284619724741290526995280165966403225234178058757051106516835711824871260644923026621875635885068896948996638005084176542738170437385558786646509726444639819160285699133490240403877811679123326870151586976489246496998476039380722765149914381237094288918480872662674855644261081068312075587459807562011286045972998162327803019917571972866139773935175703994805142649320478227923532958572344920654892589317321162882378431577503146217320494710855775917900126661738987473485207604631024976220260914062061660957262126177183793538628741224371460447772486902111462580361061565392034863892062314354853755920138255874081851625654670139065171029534898550949124595636550852135454524634923739331645519610185554738445566086389394393317700061956973585669778104434887203116608437267448406658453699381139490615349728876221602158283055967827643722118851619287827301984095697432423094235729050656343811919689717541473247885791198866064413578890740012756576878059710951105588620596875968340684590411669688451779100068989653365657454318048737571311138013271729785634857520905437239668824621142963960291302673919531087992328950993906108570748458009454382379666202064930619178921356613646891925838306006591496306543007888158121781116379424705707994711322184379389366970336167172388346513326773058794813255269337719480341661512859098260751207162262900313282564162511542899453779358035806047257555516139149653646912663194532060903843536429796565323812132939747801327987198406456276181030801832505845401054956521119128870085018366451063317807213820565502043658772193672610744177976695892829758664410487448848272613731163760020644871650501293672166621371412453755774535342637392860277060698296894742036489650060318047791838999268990784301625966556878024017071124156738008153724945211803030948909264191088778493820867395725440335546502539664534170893030818626309734849766419078052806009564916799200929698555543749680368591787813631967695251870976829847929229995250257624823704036545487302369237628512169067678825725741433868045331704848470142012611783418923872305314238967508089142169155026304448626386623162325811680900839441621164335519029254983701223789495940716536358744419888609572060714160286090400434663754764725927631384369522238965711550336247444882050012371407464336777874766767978456241901703580809732528560397992561404845010117837541167888663845623040901711323423711459799205751785752239863177612279364941838366043975519724508208379645890010356118925316540260550337422825858314132689434907199525304086687950337030014671910915494623012006275407056330171553278247329637612957235323805545726269037946935798593532277824602309615335037251111572863762283887591764784670526399085970559668751393123947766783811558722314423067824316311030751453889405750604025225144799399551620774006645875424426920739702983524721726248568349234181017025101000831299665256297422831349834668159117539350507448763290032155623424899933692365486122867865819600891115734802790337704272221148488990729864395756411322884665425216732198179427964585225859750967208595900093247441983296272647854038311893175272319517751188347774165899995354655118260054902636508085145666639882069817535130460466349249765016351219115133248832131291186664721969262420058909605405916905826421769903425259184599479355536483024975994067560344531403778844054921732415354790869909624507831503255927410012579441628168364097825256802082271394618122513177343580443549784686495213389975554027840094013993451204635222474880543686452619947323288474256726262496634805800931074798563775579791977741412053093565234112414347012063513585118680686913896471910652114677622895964664395942057703112071640133606589758308152848716105432804888524641177294196610767051874339067514243691050643498073492714158237358270211233204841774891349457132901137680049984059600087626870368494783421721013591688396978235762955444679418160217291764093309477960999801586463917015183310117183107790313193150566524233102745452104059568724924977447442959616265392448789570026838820145638690846453992546188591725546013826493730717936306776854540792080719006260122767955459481020718257313660948882992627713610451066647090113568616680951610530200736660050198659960770445747333689803396912311246605419547149245371220545835760553752987269761789179368255492201162699034366268706444909581138377519652455716994617524623834646358513193902240301498432890863657663437028561566778304008336068409810195201396117844390133784441051775333929041995557530135729946787991812876720621404483780976199891446773536530533107820763408670088014481362256600562504426231890923739545942464308159053190313819682028686772628081967430210124186796643934966090836350707500749370245371103555844926070301330260795384570786317218627526102600657483715511612851015335440442572329505373208868399754872068761611113181456307660491177087314005561410274441164143613193199750461189890676707630504487396459017638655829457997416571345847069872689837729197879587593300089833490149032506193669828083275260813189719217099775580236850376987755477969286858405172037352304530943699415497795894220956016635705447187193966597490278748646540207363018114921860464855356082429161048822401345346807518922974708107152600601878322162242547746415840631590729784784896656580591338215014826530156602210614612698366524854610917992872292645574016273785709826751876643919960203762986625685980852313032619446289106150778250290380525903371223765719932486035407835663475698645014949926502411574902998479337638705959122459796611120541207755273285116579771188279332622535597334176424529373686951741158025977290676262626070092404161638290719653069767467005605333404420771135870804095155249929808294919870287706873537080900694068554311420970985303860256265578920933737983763307120022457991147870923207772094744178170240671915455757328375807342469799990398581055749409373750798885128527497102254509850339789580075691085566064046468133886371536067915707860477026261174674878775393520520330238809943519539845962694187487044366952146378226101769093189991230208915256570908875668849254585957780754823371434491164180204955484556306402368134361316790612218658478192945835527362648187718303656306465120016455465367988312806847077825595628408567713103950116050466939017438828327851181975878938312561925100233651574043096607327357079723776986877980358255491271857606707084665237090621776607067319903566962381136300806758069751197099126440069759993605805871192350355958326862231451583743624047752913617453915777758579570123559266622402960806419291503243493621595883875562591064509462287628841741974415626427718316075991648269503452669989495937128074968942336011371492943769810120163208144111632033978453435327681394662484083069132209980281498387438742466057796468214321730366786853214912307578613371112630012089435310284337573548551721529747495469074819358353641027497237183585514732806212209714967252710154317756221373840106597703610832236367251782134291607453322121120175758643957953356913771728094888935779840839266390137017693988284548511925937898741566505593470007318842191677991585508452099401744232175713866810010523100663029644193374331527906990817478284969934106207587933307253113091440954686348159377889545856774177796923702465310312260604277096224544326435900736802243200003484283791465287888665749080295921751181886024838483272677303742060756688826952479226408965764786218053811724015053182317778189697068532126997163952152188996570620728195004195429728094934735844679822293686884651844442620013332028075999843781399907323547797694685923420243351003402164654014454777816248447244047786522985611671770019400504691120939346099631383425589820172984006977168572186591827598440794256574522239947750380587122931087622370038295572697126324798169876243802918238610254945265287181213425391890559515994866116803565980760590984713755535984248885748965597188332009432252257173795546213249164561667822852811778700394336352603984068444848074343239399407712490457105077708633200530414706890004011413720492669995482297373022845764445677965513156318495667039796943709211781330073699267352221720928986917260969881723876168771525553844993918008915125677912092449029027689409467178972932331664861272530645499698510768591249842284697940802094671587904372094125015811197952320389899604493703576027569939616904204059897998920995004381959385550489252025874598867657022053876720634828334958959426348859973919439603719973702305770284856909236793950063818852409061861900288777011419964307079068347123681118080098072443603309260278431283704197593722646547871715770611651807086831678424537370187287679773548051774661649263011381659456645833368587946351556039324486531736184423925275738884129758935754792079278968189865849332150273213733789391242196617367593961145754330333305786486792416150967964200258103098801307169798913028176532005872951429621356421286223357842415440655726020938562331781640568475775514518727844452132889397444927561433235938554436962429315156376719934098475337606866808792213503255823922157199159803718268636108288961937643715458775404505909364943411984351516547945405840986388793124874530400452450492284688901611356681602257650883991865224753182432749744619967550635886234352747228500978528718823354823058229025363745001777407544787135160932975934260727446426645484063616047048354204840241537120271071546016426839882477862534739695578721107319894954018623702592802544858985079103053735390353012617166429237689996217268209039862080379626314448182519368621852559437327396418421663904874744688653357077744219669110193592191340510478714052278926956485153696090005862877001289905950376872228457309288033697246810479771150113928034753660451402683612651883748679490452646038333614926845300253277820333703062101344785575882727832801710778952031568546306079942116743461918791083103127624148145275267815991446332214618627171256746476934862871868521412429289352371003358785588260634802672855768056001878390892129168827677644718417583876439368737952847460884949341173699424080464480102407266112544240289046211695107933630945873972692535315253221337767345409690035819758532798254254024394683461948658826823782639371977833263502228565944419910052030614166489702606527056900871964412134898540872520362574639748636657591866122503033073110358176786494651747469843102285288284193326776921621683888379394018087235315138042258528484652376526778178791961176273512532531048177113451396551266469732346063128899287037854758472649905254809535986815890703604815018435273232601041387921041303963952664703620185139622542976447886957608694646363379523965085474525535710150899573195219040510175793971780323096855210520347299214735034024052365598685706844699347916295128290698148274573969808598866021153484472738792900215863923280486270013964863330861465478623654790326458160175973318597665048316630650116533015334805998397551309217458385110700498906560185251962884942137473508445263596304242489573825744387016245639123698067959580844541068366898204688047037076298581380183735307243033902869566907988046156660097105779594235947118626042917138252811759263508156816720240329016136625454483421070542280012611225187805907548653598538649128713987628157729634220521362564792378390589223207212401632759667828617167425653572399175886296679594916978855583892734358363510965773531352955248189923109274850253522020550398350638750810418655855635321525254714772834562111846110846710420630932215490822786880264835740449898431517968270487192795475436273705514911961329747733036088222702670685451159291069481233178792413804648120532956387016624471581010893432868731945631972160143850572162165083258008880646040537941339429356170359007743197471432762772837485254418084427235968106650705064157933392864419902966139841803640924433143612032750371320233448208715596654583898179570769012934060016162021948620028113351716251041212984419766802500079297726604481397768233958244541246391764568789851761500649817755185788341012798106523463214130314100849506933425974356998180977135597614958844145954246712539659961895731675850129399133480816462797168269336467825584898293951737221937482883703569588006934687315449529633927267512796319759772654215405451262198146371208225726314564379123772767924667968237206413070725781095358396820776311862557916892251266503516384582286619589497796353571413591015860234682039408542084235769013649758880801351098658980397590571483687787167429693403788982387027636351152780244621429585846582709554955646313691491261731383204651721339260874488033138539882253641654519509380310384883260727267260515737667336121895929153744800594748083720898147442606579325472857476669510316887638299963939581903546442227493911197965933614408597053525612949392510209001976578346542127585602729716855623097593114295031716813735466242211764048903712029766651735601069402561345301103042580625168191343011348474812895734355965378207557740185014590013655576027000240704598555620917745824700722787919914799212448876006815581300896867838029684921770917520984684663591471998997619296419317958406439075827848239761430097510660310806973448636999697542797373389376232376018303086264191185883638131803234454987968343719625368842114978859949645466607227519436810260725895796154595449996827594278766002937884283970263987661535552063251157204634366640918100747039889330827461867157150532385229753729949290895585832698280777134375953028254801157848952766480441370232773556670877185108003988208936810342054472314092393521155806977015981859906515930858067171169598500660530128635076890328904126835551778870285843171754317736019353631898610407249717253632894302567769215158639472884485809940857447885707155448442462619784174165029064741962405057853166483663316199247505888903068753232050905691966687420847726343646532440123704801142213097348628359559963448510784591551208348678237120444522223629937869544409796074637845506823177858696631924506093834695558866954335984686053360627629861954530834572294532185439538908650586830107065196830717550421054009174793951124090751836613567758953645526647974452836898211791409762500203035525060073268665585150089462585251592036923874225191568910911947428360009921832732646587801198479476133356780576904829517873060537703021142382638543528652492463173657679626694405746948152379409444393009528998328470083673647150216413918504573932602636987440954846209142094215585196815415164141349357441621840590144247470139486068463201053100363951651079430173184127171970085108649893625212213601304439676738048604678482318353837153401958062981982292955756619623129883036698613793662387941388663545706724021306675228491899967588389248148322402642852986159567908363639343646923406040002467816589047999665484362422533194897428471530495406651496124520740828551976081284516772748736160590420479018836434575634326898542073285057899868248819535294091275802128282279061028404803943181755806016832283994522644173786970553147035265855888994628461896841293104642041031600306906137756551554240136229021588907404983829437757026883713892685064651544399102571729523245231099948168559398586238713415859566686603646396618472838179157045809013531919989970762457043330489520739658727458825095253647268108226562097998433250757367184458092717256707831557611716618778211367555077088027141086233545283667560016571685480862413767879564021755209699535952088942210134335799629708931196728852653594497738654622273290538467011168617113342776432709166818275397000302334519819019817106757608341315468314503800568345315377759442960747225968988401717429584914087023705850077007622934764567250819045827754468601785999859628324934431039902669587145353854850029713086971468789590383305451772780586005734029109278455959257789352083132445348542999819606823580040896000899153382523408982999879521824180822186899279321908192280494310196787385247208896150320406092564749418586830706237581263870862544089612207854066419011049454423334420401185018282122415968122455400808672441677454450747200529334919362174293767870725229754768246104528849895876317877760505470563052107732516675865409814885619330099373398622993826236539951590881100187081337669717547902544202438410042593139749354850684709404967091017547705245266712984768565587557346629653425676215683943480005367541745539303500366325872463252038403595555665242806763292548188823747064775002238270921666756916917373814985134283989674456400293095333816503850438797808521691762500666425005346768834130536313338766645541118234331644368171917043943386176901254618984826118461940926344141895110859524405997165736511621298415544703520286052075301473648705913877762154591580485744966099365044784992176697964017057152967597615191282115323907560767041463461998032846933365569808377956421869089250052632401717807064345100752007665943943430832791893435012127340934493993409626960321514378837032594234711847315860869845217286047235998562909943242205860013417038929996110881930346684419033721209429615010702194564983083753163286280558183641216845042795438422608968171796680452877062222518237770453790137176286142035976108803034961650663530350187387859328914300295269218144472612099593968719789056498541285683039052682735829532510426668030188742193854753167410834495207217682852925809885445345140848904207207185572103110043084862308674139521255785205422712851411001121625009371395786592137988103935244616043548093253261835047381165670527327201131081725095728354589011446674518170441058452349375700610571260079327889493309292473518654464683772441182611977610315481971724626839940695418358430822730537903377631267234794023895029573478296960524967950261389867502717334284619713011878637541552401051319117588001255842579173404092074741078549270484166640951924487103193723801891102626549175219604972819358228758024025594607796084818320363141024409038070110296561349441879660050407338814722510116219457178106178854024186597868561264020572994027333161865901883121907785942665940197655528172153688395023438865292030668579183147657033261522616055989928790822445617206349721041057532056852880538033371555067265972254907861843584749612295432976365912091015072966734010662703356539067379210654039657413212320721963550130130733655677317211754097495031551455520122269293742270752541585999316439524881235211139555955122886908122698392170232319854639379820549473969179892683970428647437780976920140919261286050464396324145726313207582804609290906854968370922633078142127873369371130350583930079135281089135645259648773675544457697826870086325556856821064468908166278008511222813898982623283114591984864050515781740522301055420616257377352581204199516654113539250443651170378077167887230389330906810174500793078055827461531566612150075278347410388030160707329076795841592726256554647395295788340712132825904226122454412721630480104829397688309257478508347120250649300841718194394467051613618953281006045826217528952536850157785937686760669438081068299939100109382327025179033554564224685256660779366340448035306755621098035468535926234775990429013836009007294401402825043587494584339946435002721635481813501203252405276295114618799678942019081223723772831892391072384040973961138665869330457200359765675559069552258298421505022259480316715336254670890852632640923208545079905389472615241368590689383335838250698153485278646106420768265595354643945247428590816941582580918125808559184197983751997731326273116872205174598640030163894033025514599449820822585407092159477899589551027653318739032307428422447148272798707497865780312358535170704654116765026393010796259013934649976219423078564159280421494714845939964434494771130328119907609347194633912385515537487641298161398069987980157680078208263502008847637201944336101894374985257900617237915765684307407976036242974685492946573365986964797215546173455183640559000085762716049599598404854882041729064235124266310800737867159920599844800420437660611788130840241034168196196254574797830523629151880991935604369537047307751911080486853249901499161402537242210871221851271109622639875028326990601696301632714501531857652492825964436353326315621398998796772385862315783402737436862529295178376624191356156869750345312577389162182012910360590798553616329893458211189249491189270223534316254967847798799717705385433632831042557864939628472781107242631155665397477702334020218949883061533377902269171330166299239596092547311285248705972558565268779979317905076459673212966744849384100342381454754846022103561898595727862442249128008180371175805351254975897431704554205271276429308328307569298842977741057827598758657377229345582508762437692331162102580724289708034634104250766869811614302528378992225336666537721650574641363892067933042177321539272206801082088479178762310493504334480980458856840813203366786244680840688037438440099345934441231793974720439431938176620239856927234029386496299664281589411328301494341525702739520137005813697012703596155919988978324524806354372818188340079651846736336696056476194367514825632683539939760954473781399919028583427748785547790190186145712110003986311936510505176800093532522627985170231456372719262625309346119052535696811547090679810559420807602500179738928649122422620738949346686190895040217810778576681949841200370419085146918224364272774112232295243246556559426055890467261966471049107323678872954687757740804298687087236143995378151601784808284306410049685767051310231310524820533833790820470851229999799364051128376981719717114631861239705810194762453162332592721070888490365163792335647889338654922307824520856408611915041720542613591734253347516781024484006591920891369157616127499720402615684750928120595234303641084383068809410033106955264809009411565669616155573158985345061794627154491730214807552870570436228116324555701413312477438834830920941325833833292680268904480755206114834593911440388365837448333118248871026234949209992169493032467428919932106976620715856543686158851424719892478955818960538204491422849476405177237088691287109717687136107031029578962353277651244784324514987774892543342395673107869676893552403393583043671191199550030872733479894649214196483690687075130966066441683055764184267540424196164675144243723400587184142829185823100844071835519709505977003737302078700557268885660007904462123141065140644827446063685034141279387624318725720436314318003999026731196760929837746959960476778634551826327908172621051035546603642148877342354509348965343223502316664930234661549598965539336710835382085089647445867952177029103315995593350300737209262461727799918112480258509403706710484265481179951562319072399046431418722062430624911406380512340996905788873859128684424459408649914317493610154290202429827738379026306374110170851428733675928960978528858034929177259105447385015198089669603336431276154785279127369074677827278017699706972176260229164063414627861819632454730545367845540291204845685287849759240868745413526332854957468870463080149071910388741646508965642412478435653441820537014218618029331300713203911368588902211596044188312513335554942706807016296660876682644946745930355112609726842610142272174279744928780937427668608752722070976007982940216516227956744478465317925831358294546177207636600424282434340089248610360233055814012761026795878441909630628755761065876349763543862732459077449495301651886129438817353614705129222755645108065549857340312376896573864612845425659781614972144713522915074397413209550212411797494487303086212527669261801885454096999192658381214255048470003559176069263500250640071957099285767692247408654184554026221935315269915359912134723911338392055685692618800489165198240135951150998454348778551175230930179079025627334475011780954822916619370324774977418749780045084196608598947124990269914127065602012334494667225213263738335708423347555001866590712480941193605313998386339526625062922236550725230377758404645796770437891767014226639370065730158795161142001017017851622326070293770996702224090533209474453892344629027908210335781618921435687222534705091332770395413867798242503551973751339210005254840797212134310746004346796569548840354544017639720101952111256329762206758648994171035138855501863302341179210608417768311900160631240980426008491646448783658888818971840459493409235559118227725362357274926338978347928304059211224332515354442538393641799573614463669042378946907240023942283937758532863447987159161227620849396649436809037190951916217304212251149284523173844317332046534025284923051129135297019476461097386951023135057352566303397677083955643976707778341032108783295345694558231415291893697131155271627815914117282640638770046511546860652615694098855731525421231621844379876587498228225213250037225020061230032354541798755287531109019269622607211652639091532131492420695302430321617248175302716461003274085023934265055663078832930166040773868501372542069316056767033006324084795941746831377303737935918981326887076188306896267894902301601524974802611599138833608185156206491356212437722643245803590474845347273176602604317194667066612846652148285902494114869392543265821678889057369559597804067807293001836594458582382156834029752553217620622869357191625886880354185041367670292472634893318742764381509251976229843135407455682795119098240149317395379766255945471198979250217364346977456906814608864047216323835082540372088404017100502648569444210566040893783573172597955088413437442770479045089971550322741956591822504599129075213622167503764280376247988438542747889080757735293749067471808551980891514245235266992872479791503738870485803972341861403365656269208846647708689328127509181179701866805259329865398101510663616692336661873324078024510260234067220914807671883615579803380816183438869949271664766626600864976087044884969998010967999594768499855152705691823883931503873613528189786167345376226380284320988822285677139842180599800319244277394495925556811117918325872115210436806530817711310539614356828136385015681305662269733870910912258381683313472240849723800847280080351914217360030103336143219364914231719917809179674051144829745605489032625784975674841611008509650896231884231573810242769953491707377455782915365237892618881882648375927262125474427653290097010968998448257447174527740507222106457357102929783281936232683180544876600864337479773802325369078777449578795817898689332602602252158795862225440416394873104845244999058351752076828305141200596973973002010386570072973905525912230610898524614573429982404731219018303448811967210307089993043583647391394481174608874224542793221354158813687826613037772292565525656176560837886032055865467906264789826724292204021179169126808888895455615067551138250207455887459558939980139174527376642121726045252177281489542221722685225750565833350003521684784367054599840631377940243231316284025540084870010365760712546511617233045324308117137723962100116359879612277830116177910527137349347548132984830307446960965038408844438360124938188252602212192128489592024782481264934379697682494407972369562981843669724538296248863488025068945978075079128269887035695222331460611316451251401441806985327107574903159497495827685751034514226728808585150367374416290361626734141397561281490659130116506814935665664749457694814225802184104043353548966385974415091202281533352766158696075924671331686775403256062808038115583380209334136426477136545638229344855727298611954410422106085341021072202900867327774559045404238498163287168807004026961188060127122630217463753015100534679944053960295205116438055997502060217240540564722280966061569002085403073253798222326441188826146307769120667567536698059663242620380969558704120949140448498007113961569967945921458333876956750679240674840532267595920486244617984872553407477072777495568929757527318815821667300750282495398560791042965227929477958168393781199924777073475303952669428219048838264784239897276404883381840573074859454377324391928093887012938290274379521555489241713526797067914129434392947940083841155254544182206758382887551477407950598168409316872005804106602644313006866717003428844823868409663825975315376299868119105020513321781266015480643392956066609790336337614391527551935713940580457707246167505275737898293018110810391561994096069048873190681547783660934639312476128523819170381410255461410099611711398801650231601520478320177321445937253978721286373201287128228165885105563271668674725578240116008462550211491068855509331356213826942595518223086068039199022328274931191858856280011703090077119115562788563798786655849138106761210829110052691487432179061399090532377521288202388773532352337048693768222262208595622968157213032981182722886445651877978969437721119328732041960892259539681882161744718519531796453657238347986584226237677894579203340475910899809179375960032789935657939964590870502078579791725853615148920999532370731830611347637977483915450039274257549029347343951857745491599789616777354785086789754427142428917352942050870604106915485840933782346499168337487453854250633059081881581048619877414952883248610406627093023268102015824258899882971734030496772134774712409162892020529041921828637677568928714712021885884385757619919129437810556899656043990331425361315615012485596019150007305887405723797373197970875169878248141876188369199818859508980332868453910206137631430012306492976364443058974001382937727324169910955026762477049826885344710636237254426082964791896967273749379044561613374937158483818002400973849074084267446246548763438547917148184911458657908704098789854517367066453117918863444049580790069634774286728566410455893160714358262439747226220704949692728817468815960819829281512664579942098642508941582642313851180006027614624609785461297255930475307923016837302086444777572185337829659525132549175794320124246273991078328892397168341048183506516230998307613109525170110202231931131319436682951302143089230188026686913977216406394010868442107209668556076565599350537246021849321546608840375245206675852619269717249762079641908579216845484859711718796140730180437891831542608746015354558143562761962447588838096350459781289811274875992996851572567463278859946996902606611383492453002568230648381130721972510322799113512480869944661453309129494824336372779267032651195213050838574058826593204574738968378339861486185823818415717077482305433552570031600986543518335807739911713680253907358843890213467529381969310784186526887869812561419642987244319626706503479830494774119618647771629516623275325799803302371329859925994072294312551625107372217208070056289435319875557745325916484009809532233284851500984075960362608796818531286214624738096079507755885508896734632082275859308727441847373338821873301671062783027304950926518848416630356208585926670411843809493782664502627803609931278649283827873553859464799630861380092740095136705005651892427972719222139737582575973010689119861342742515114712301293302097877835556031939084602395595379014428801701856856782166967101261681936509236191005845040347931843588486448639189102734103646495230468380807135760349215182104186231592551409646286875078548159212635514276127295304414640726996311245186211637447036774576961855365325324849629676338563800725984844442956324411291743087380695426007080827269689911141260991520878481845062929559652510858709075269260338005138419461373888304093519582327719909161156588741046684858156007049419252761530252801589834568177570767724489221565546903317464108440578188143247927754373399145719668233335873032353836554344869474634687316116706674837457387315672434489044671447521419243668410154510489526108650625278377845680754314608653031514715642062959167431618268148602469776824637092803557484396057245911349589181900542374842344813005436090021597289614018135760441920385594197592932528337856021939424913389932770443911389397681686528306225729540006690998469679997333292357556550227491300495842334023616712371639568315647644455874601518752208406809532683756304594046364735551234203261875372058624239412126224390982584890399921236434111956210309160882053482061812636363059557550079310660468860503145069626192665099307198107908076454315393567045543333841560838354786127997088332250059050331946273746846742075837974848066030049104700213454263852451865864396616844651912129130292383401633692830131928072769242135332823970850232405763567961322464822138238547627483118379656900444457928581144394364508574598075758665505084189593861772495624094425409099329929191012832942377393655909720159245698841508290340355304854360664304910513521200075978859547167329812868341167627467956632427946075292181738633314203148634582024598407168408944853260518003411230438382771012064606399845843671186663271753350082643333091600223731802447183024549239174873053127362260919612980747909465711729934992806839238658345865817576648826872249567143954266731766162293929497721312792441681825772652887328831356671590100272840122917573586518113573378327694426803917971261754859190364857277900936932866169714588991860073577676912975186339648652533145061132933455152828154769335221012736289823824428659225989788388697857397034152023027376832039420330449681132425063443170334975686323193032722139374895919984713121715323697279763878354492403102862667946294616862486493194814458774559154553798184787699015726537834248085901849659515705983302745529101524530389428633047897596676437657160989325702436105456285208288472137203778311680768411385543293526497447977671620657278069742809833801870486172176297041668978139849287868031354132945369800619717496976862868336075219552852396042128748205240785473816270546085577410758846260805756299567149888801934921502459416042022656081167473298703472371442043463489211258956468217613816576994407651417888379854006262849302655886881366805031497881707005245503264768213617650108158645664397277115616357977431769427670810830281434161464834872312748716141108265463859133577202156548574451623808874451987301818068027160007753996454466945588030116650012531163505541584552309625340345112564262597366862355669965353105206929091982586829809639606576091920857071304816117241874779907799377242254961548930019856629131869015551431763602755788289907952248028184625888545001459033509400050890729497080302120811864323336130479325838059420540907953197316209055175311907687032950025060276015982393208578408957726757007667403569089437695819562178088962711943707623498693533163053081931752148710116435626431830915288015104858105112336821874929009401475247278539493086554864991913875962906068180035009820665965913679258558244977265259605321891831955724327792379114544894323915192815659828129817756381163761634818314605702261552456780828847726702028428036052329378516021424919472675220944992028977233948942536284131491866061502917481571654896412117942552321605705392987063325958372295844690419204411167061859942122601124035424025892577023868239742503829707541003312973211721035925478070263608467755723304686348596638668599496517209833796662129761627016419238827849403221777816593867106031559686610537631400291063818247243354857855459552565090133331790952627135539102971320082347346527920476805513634189350063168857648766199076647408735414101934631055349377566522383348358347819447498502340705572237641405903516098382979157002805340719440294817127933881780295322472257170809453503897405799815997582006210201916315108529767036332610361877693252464251357487197963327485339993626883777824474190458181158440721892039308691260093967639808261162840971806187744767167201824957340338911361259340936970320754672732116016353001615068592751386810537219758014034744564515388178086269746156326866001940576575559931275025607188415358264844365103925573528304512661537529765912885370665352350113640417130618533128695162089131014597217386089554044962661067115040592030554064515345048758425042989719985628715213511514617964119333486664160644573087145636959825014980409969828855740981136467228660383919209744193571502773472226695337112504556842125615867983421151034218019720306153168554911513224006871758037317949184860369409085448783272247871203315378124376391040514326204858308777298923362020063553113024095865970059875519103046363052474232650142694929922052643890718213583796738935739032525082250094331043479404020629741963796360200361479561765240205378683422743001646367078868067962940109843611963028724629250397878860899363308732443820354052009700137954269616946121667145754619126903133912220527020766052305402079204326865408745421605798126126413317780930904445604107132431692409401432451760138629572067081518560105696432289628853608992757393440931045481140846954530544772401983086242205402960579974686629099562640695960615304647155616878630868187647452863310337812481312957262297417445473781070003388395630779763905106796240485287584279127986628950010408034235808535600451000535068456820786429984285872473123227710777264063172263352636637328702159981028045162252151047789386110830355965019307220843461567534656810287988163876073563154146758171190956766210514534227849994135547376845165691567772222478923515485898834308270728177933125331340944368079940377050140804936309024440411483123748084238682813399235698388750387616567317540758527749323480218661640617500240487956098182198102820191627033762986425498742796893985619542179075309191284756322628264422875942072769559046713931408060475987523394491552723065808393305340224002725742638204752063219681668714345740321111543868868577441662663658227524808884035596172507247505310070684130351763633026636347188005431561093702981162806312461330607577343200831727345353238063198503064487638391112574499058404453286537825098921263637163881814101985850984951880924950045105621865756244604711904576205650303158517720591889659710877021218540499706980685316250419033216111917445413933039518554037797512641556551680404531646160555674266488870636329308768029586124263651565657947577444140281816671624654918280614038924559703243262244077093729337021516909322873264271245470240607625591476262456869344476345316501290931353381484545817339117612728625738088304085107741699156008067526468879629301029927538369187513026033391663290604861430290344614744290398254670741155276864367927621137890429770551670217964750387897958604163034602678377648433500221276827685231333364501516944768216997562266678479477709668879610071325017227195188755953517303690399566615766222439770499199759010487910901566219727800870521300364712299940461143702193770192714828084127110272683938865232268551139883424258864991155378831618509114253759336281638386000928325125133141106348570055119886828917824529436552208777743727656676723211487875477482894436633940778658933311491772023678806920198223191304222644958996444677890818845851925585640722751895462159171366637267448027727877978246518970810783237016019019449559433947496246818034583153706734182812038221115211958206827640130296434486503057469564414414259283376255151150549248983398123583637608455285263986711915209759937301929749093663527275995464085295482506319027328140137355672388472912600158785417622829567855386696684882288638753627117604005216055481864277466142209334473251915492930266042554535778007762214438368150282925421219849514133872653712059869913788928930159576804643784197995164666865866772825912950512839324750372021880564364867444036472154605229972975616633081634403592802977700628051605579758249537867471126354510969205139889952328651594132892401809393385065721646500653711291100074579404106393588637734772948038122668038635915363480149029109652954548161704093972159224879635385688507623489371171875211926763106797523386668501314758647117547155061174703091275480029357070848963629162065038023020636626386642433236260761442346481359826409097740929337390960082376329295324350722586964963989600757588685918706071379764079372693420735605725307599136325906527619623457427039913004057706677549158035640111116098455336269222616926915721736292934663535705520272940266992603225267753986238004880935570332983214749885225255896295240277794122741674400444355244440582541826949355567255558777763613612785363416593531381952129835663698795281280915797573656537055200521941347739083470000374628464060507665974528184043196492994705095946913797107653253997766856676893869868660464337260816135992523725057259555868502271560695106388840547959767420067544138225775408492447236760303575731940800567900762959446558995836801997515609089324956492852139594821397351781769559913045034858108803637876696072925716288795772114853697370290665160070922478219325250083367881721268806988758225348853926598015185748881322549213287699802296504844196540555993083931910975661090767313561083630211722645786349496057421459938096359389138896180100896122333398164822304351606376744349003573847159217624340586143681007425081884062442317755647628811758797158911858660795249732390760157979422247071692605713683483057696776384196101479473713667894766953113978473729432371152303807590870018359981589958426058390205185515900606445856673163176600218234848738509296482251695925194910591717631343080932507311496083577907233532140011612241359005911891344580705592200374924171488956771801859751351458445369764234926315932711573940581526413659822287895878890897119521555532308902237679963874563044650669407658850985693706783984015029428622669436953546858797816398172069981606999340373428664904678369083792669023540257852113073160169830926742035011895877488604161408583913671700402410735887019459816189922900194653105951105470935140244857452715331414350919823965146877728798982291518315819813733617262720497296132377383697236315668568938715500195314180415832036662764328091833424681772543100869139955504575871358617685297055004411416182129966372070735284221413921422446908119225471163093704423714317901302728655074406995227927784276814260106404675272036255333850691079773976265824749471054261214231936378112322370775068554539159246373562321249716460855139837969498777327490272534146248544635186353723458506553967832843913442416628060560050958012426994393607509282163123294197424688782941056767637070147016984410470569903724184644771839491136425115728488289546289960008406842006356127096921031599185292060893087767702257209456071634834834536519120896646553798671444158376076507329078811772668168455055131288810477125506627864399261064464271195757029708219590202481012140715141004740729198853233643937148886209279609688660506344831712903776292583033415416359003061492503720030155683149798878121344887277132190950015921579600686850032253643024748431353762144566370034941060708910160382470057522151050077390712890964055649057173822166521716576506949154981272168107902727360430813309601426727114577119699013232201354096187995757458161939957400528193840573095376894437073877550869869013671841432780861728600150216676145825778023146368448640458203968979251551219605824351783875996967588808119564527196567657996288363000331528550030411243820555811164820634788470134876088464610922028312817698129001258546549129380913725313266589490989368133406814774007154751097443576146547291209762674082729602749954002125759580283547113422961413867938603464187569251567379384162472145460649337115891621569364690580028399930461605641046617649975978712168325620070677107119372261994029477096163684173714956536962615455301408854132738266295811169088943947323230219635260831439846840809738529757348557132448760724065126177281051890385097353819032527253085104529109441758573862430053436882631442250857095742639242153300275180221809514788659087731333667877920305194524153014362000734461521207728703343945752462276071788053173222192687901178035275277971567192248567796529396408833489244136226618713275766671870972694952738844756169008020117563454806971561930811887662194436545637759354012352213920283564086645852202308254749709658994564833513797038093767720875613458386242488764822237300311460441559228184722360778489198560635430540923744044188951879698488637809846754975540650200223263841628576270785704929164103181254496724122935234018193131659771729099827234652257344362458946198065694561816487549147380001341582439798710999328848369415633094640880153967883157240353874336443444482733834268433807378136023852082094600759344468769200881477969567353730111232674593391667926826328811126676479454445187427935444596140027069944766335762776219597353304785509067877749767581140202592961697962989731442366121754602016031925780033726871166295736072046464109336579300962615299598875801673741364887968848637058355933463368215916926184521369598453112296276948895994816540427968284757697899812275173234726658869558631034544723818075829959101507687131510512217311614489244383279091926166071335329163611783574214742984594986123852747762768683436241902952998321041037176305745362766302683205400771087391711539944942450451101093300178529792708180928517038340249518964054359899779973354469408135223653590404039883593801993166011953265630215996773466674934497823751529973300855061032430534595877269929748762397087482911068581049155595766587892026454250555914043565541396871468524918314574788932022179804122923919176619089511980458639220444115782740726241430637690202516562795786738887828196778019299514852816293302292213169031927215192130623664052566291946030960863286227579672009044093357015579969434766161768359493978938302739395981568897118388010793937687514871061025525622365224471728109524056259243215355878482284474880125731921428276639192121921669282381985244338630000525284195125976731399886379123473772142332638401906104764711657626610169288561555387716566836892433723257758860544933396909438060614074280986808566369496748429312525672520604446856277771389640870776036768543225119126367312486533588947323708265605011844931904528878767146587517086553673655204819413216473419789028179354891892205644313804105096666108586097839558291850089201259555910830388928590683131631767952859789717335066365244382065379035112067540973086874244062234444588456228074261222862641446252703430058550897407517105288765582726666696073937475186223968785713079871932542980745426720947715614194128122143698827727482645359843620119310675013879587042675898035538616806755258011428692519029753245359742754847377009483772486299953683381662707910153039284123111477685806903009802087333222524031217699126447797064518068079126393838429720027911523501641054590749260592269824527146231904717006194341866487024673437188981837171067954688373793388449876537277157991100793773534688584576162289133722779838659489629703099456236460035423769375676290649635726318233448904512032439107819905281790515641671258039862890114963847436960727227631590266603988196171245877518183812985992236238122483394296613162149304428609221254573238733562057038697906963849951119646718482259450467418212971911098781142907403404676883785335888928038238971748402652765116495630105586069085995386114326786619688868020822352770371893939723053533297006403786184419191717639795076654760457822273016356675539169110627940000140058167047615683742585351043394341889121702481566521318546394160499790369233278489096718111329811650708879039913747826152060846936869567866853198910814805869217866255305263880581751729060755885064087419183694597632228706436270733801592325497210058113660502546945703297746151378149567367204389562994549463687572135747262131005451981988118885441973591604262567465330438947450269343839041977446395522078218494457217301548154298368528140735709489631698721857580371444939631650704167366112004934990845330667361164393758988915803666261215073175997200961592935211969928766854797689560158719052938294645472464343941210770872909570559114114638524267878797555966138450348135787986733453190885532460161151177039252789816650040639330586784783626575238192655556481788153569752759968949096455822918388539940061992367798495891272005529869345051958533615089279789933665581710894992019420200099453716709648951057117614349532276962954905385672409327624938256140165037181687815810325991970489739454118567046776313197710454776185320739381592876723875653623076197350024931323621761517885491822142088375319938969216658333803966403316281984854893915082983305146854673544656624002098933700646454933992883776779357054153711057630189491843952208110275460070387738178724003369760015888744541339564377645063976895809800749992192326219444173989796081357077510583937758134124346256129341616257227566232609844780850425383741676399231090961860445053226608582525655486189556953220152482670408472727229622992630596877697018583074149802104920409676833581040083179826289213223122510270449102375384124663058013035858919763614193670383336457404902205009169773682736593276874994923484207735253101638403618987508082026936326340612127814193439120967415636111193079036081018840039028718098997998790572818326555299757451339976763941977394768319862422006812951562732517028350545230341210323803065530643753985801615461289389188934718528129234648243657627164180184102098552585086016594218349278043798836003151104687586260268792958266556961826436795828677000933966206018634399942563044832851865940055160906199106486285956179454966504050699514004338725598624610343346972864260386281576479913908281583693092804763258836535009063922179952496033266042751361778838632343975223866251616763560716766314899893063280736268589462540012277046013092311006571608677585708908708477451670055654014809121768589277246672641656001445810017150273765106986867834011951786148285434123131659929271276944001888143183487154660026339954588186731078769086361416311973359920217519039781403548287318507169837340319986088985995542218769069021851735059305919146241204659584475207497809063590834782764475279644450734613254414025994850678260739890667023539063091926910248844026394164071440407149471393751137279078041186439355264002438131527016912277284964714287011673533016425393730633262557317683328396396154464863217492788011220260566510482985811540662516293815240115861045104571304371781667656510374371863658124887785221636506138904202253058127749960962535078979123835784570957089148270768838318542300681485631559717339432629789659618105206460652872761064654349994120129640667363340775574052779243669088581017169519202471859196790819174509276799915993128897040919873016640045514837424520853247363349592948647919391507156459800336658170389327803227837884331104021540784677072403992286805470809699963493385493315480279874031728177335724023343268449068732894155644481886192461646481572709466674913619190561373450680091674802210851584586466938949364909946156365789248206632076041638877549001543656353055750062720056579839827981192575973966625274586287714137147099744194738485854969749328446627633411409456784997897176852272371493078389298449819211302739076413174834958006850651222989644963236050693988802917935317808732768370326825557992273808031178387420635060290756278118271559731969459588051325568235132303599873801901690325286073216504798354184507600791115263182512786563937902606222044614618613139094223636382765406549342979266623567237063201868233188410069136072526165353109591494653141603582283266739247329758328006312711311615795960738286276271371285826200031769796123714079834567404561621941333880841968750071092633534674218000403294739819838840737310986266196653069061581596245208402320077535704337276711293563260080019994128315076032687920752980180919255370381518843915742567997351865561293658254695048080860288275843691209627970306027123705320720307829605092548183246635630411006568493139382539635196257611297830502698073227014679446152338033332111824112683130501221145587850242011754694484090926247403359891680031494592763262100860265330376859896387815942207608836712790805179942132552873350871954038375580185138391766215668563358977597509585180513348947008709692960354983150923078367441533712959226922420609378798329884075523249200932198348046227272788209878832403045939578601159506808067038263778795852750061825028768246467207945208744801870128332433349181339621267254828261896341027585646897071795498847205412741626471724958601722772179851842971282770109368533924426890889406518000471078144540477181559220328080397180702407131608354521260025863106084637631646084363109802389647620040873631792324004861934602556516547917209526109785874418487077733924044422272485534849760875917879177228906213320451368163438710654158789023736263084946884344353065635213577923470063690495524113735198458118581668775974753999219277770768622714297630365559889708211511058029664083703830902929725003351876126384914213204833913642142971838060029018276820490654790879347351991922234884574507468587081793030411872196658637464752782490827071208618865026270716289171907862160978447205339741020924878868349949298750773137675279140962870314938804692404390488307726295870317005060295999281412526723196489350456131913307172627005239315109744761476118205530567204491513447855637033600858122291366579211309789836532398120875475326904901442597421759872001134315723441481731614611394077825475576477461371345602561706543070999721219905672791213397370563337170430228616127531629863287456031166931624100514784334932489569168696790404480995061561992812717735081302156159415132873149559682777930282606372187035513847570478089309114311002584782574941521970568896988042431507747551113691318947340428694405771034302642651185248550174979320617938745464261260525148201502056401569849850366514571847833465760906278049614256346185768548036419397331154451377518981785217963151014679274589829663417434621214736773228509776639436908513005217606266344952830992868074421296185536366429846088430764635718938098756710176306860632973740958336233890560938302315013032240182893554279098496868349869537403669285451580470681285476350934199424686775258160512953030301690071702797255124617864809552379216159083579908679676026442515386293307706000393710121665484495827336939304009177598675215785720119917007917482331044155505431927225083663579733091110337797966161484154678658462962502612003049283463199424454035764368527731955517801736056923978426096893817517666749343420525027868911518208289714571023055284198408701933732109626191159667946199587788335137814876422770897724337797867108446793089162286725790269031308662158502259670701296838017982246083710375940093771592497555552061061801501660015450446631273020592325063550605361259232625238863403105775488185994738119297320004871167416507986053081865902979750610556735252115511207885062684562350275272891533300651038505564634416057729197602707442271790907781230016488907677347330364012583762215005940417494693158297754868828299377300076978031618784695016738768194283817838463701929279520154963288155911800537886282375921830845864895699059194637382339948747413279668726660798971992295476480157561213066618508142045722238277745511076124021062841761432570724764421047707543206414180159663315469614400332268739305666742268540251268572966511352030417304271157202803669499162718288714210331261292049130324075012161483086668342981784750162849394398619820788021828436604555386508541781266660395609242821292840910503602393716649652852375277096439047326509351167806012972488106049218913156625983611894209233698524474700917584214520758953669793562546702534550169040670310459217657747410858985706872584095212081365550440035288262701187765922113852828414166453516557476531741985148105005495589533328046447184826953003156187093462449322310834909770453059698103069371381751630384479555399069310140195967320415355588011361744378345603090738475749313313242161130230573995935367079678546010484354343890405642773323284058919526005824433692900201045675408510057808904830292916184367451882668463630243618839357980861158524765953821373364081147724104855550098595399439890515666108976404679289759506860137485231784955075794446754282203408020614796240409248329620134095920412545784798302315718181025170076462893927426471027025727223616382550377333977363970417873269904448930092289827657702401986543122701877013061710924460332612213938931938148427851575476267671390749199029409611707045413197143375021209438826584979458337961582982910459270187460480131626650587630219544725749560502438650812896471007687727286759172032786886705767835027063587946921745798489929819718807155963637172337952454168842298560291291362972680671964104890067930274004202586611365749364017720035701468974949838048458117899075539482708682496734530970902044682638505614183440233413057827407029189437432934137767724682881222552489431628155889444642248387870511592238140694877560217408137373383564995437980160287753860502168408665722950440178870786931092231521447993992088103275865245315167338454978613914050449247654513797869865536623025497628162177821687084503495748662149753373317859656915929981463572653497559891270782845979434949527164814587448230980258136386067953768885416792209207375023293194087195730561863157483460893047837928419565426719441328299410494651914020059828690223431767578277074031563763538380981036735953802592365548444325919150941703614416444054692850544510123770730506518830430109055586298829022328404272915275738482253178544065796337120239153986697321768741725258402866127015013953160999736397362695475341269147345398980141987198112731793799229697828979253668550949794245128592428653218360671759222896261816992401683790445347681646877808799709660433524363937331491411198354826272915527129275850911965795962847999743379067836633441117334003421879404455474074817765314095869925140341801523012683931944628804734687538424687694612739603337359469502434100967540488645142369051954783633688395187566294873001161635180943733878671796469673860185667774362891837455046179938855176810568865571824720141356365539864079907925915407223520724126906346688216862430322594387197310437382214912004087427827067350392506777226381402739124432822629188159490792822717129672263631348633809840323830049895671638944291686330825313001707812640703812363652755241259479675290208449560858933970152747292813913466524628365805989244713329768031113036986312332742004240510076065076694857551248387486380871689217048600343778440897579359637991798108959634517995570241337284545593265823603416415684323491260938792081007127127508407909548745581524025969199447765176428331197028297672310266150470823195313918462147998715578026016009551540829847347768582695797859137975047901234718771910104930930017630529761077854818134534812023359591545152230613602153653871923829967328798686798802582130151028851175663429213802592709859304006133131116251949010097253555947302208752434338330237020372432354661120993598974904400725659297998448767313598567894676143564535822523687014027707002385272336730997595622077068035816194340125181614997343138923807347652185709177114289023797160429081689923177603508928554699549993350186583466917703862918976536182127476126563552522583382636081662420002099423547095937734067417090435607861003622624662734711052812195977931592222821919405397533592948087291396620414512293047381976947757417584610534114358886659198253604514919471958940803416784544659238827214556783749215414867895748907321363427791173842494644685226168998633601930390736424649652876975734702817689727481214623756985516250558087004567248642112340305603246751562159521561788863268050593113445108139900215621997616748580756419653187917322626613668462141502747831377065421823638240085459562227278495992266194422873351979821669259612115899027512873172859701741565673801267888634190305838243338602475656132002201258667368204698200515873667053500338914351770930347419117536424478205050131049016244676318516110780528076918742198478247855837062673213081103499968533759539985218144444563028936357375299576600434150882097301502933166793854537695919680289580851088293499368079448161043111106847690309631872612384660676796041203732489136403100721204907620624235950843725012238247498979189691434081920274219870454339693959126614695321714863063949100422676117657822159151991781201482049114121680707459308082969415384336892104840241157799758531734239777152450835270276418667494311841414929640008005044227188069902785429585733837850186158460466594402540213094710138360502977363793789897551908220895177804577792559293184423774400547886253123063135770957741956041598902039637911675882945676166624098025535740793611737579951582418365863777034227065127288659837207130382362658495055175293602541618774892844470298432283515087372906511227678046158552423817459523156511411379547469036930826502582926652019260472827192784587719762991360476642041676406010359348130346411111666134254262084706723153176630136260268198173061391369583978595723494264249360411941546052404309505568437630411284298336548927157702215843192938898209727491259992000408165130247971069906645385915281342368196031678009592230561577503409974889861772083959433966165042412286601638044709264458990489218421265320038492413973390031321553069913303674320799816184767584509845957375404357116370266906493534854304389072627619137244165549548081689879482423591207687052470655823394081210589666854603913911632587921194445751037491008219913316476072079261836313803386904180196197876858349485833902999615937085343537911542339235575581715233352010271994583578369421823594896755867348888248275954306184738798345347006865867117348851823542951313021830050967184429377422615117469640525053325492028988641816590627744754233516960365118919128895168414458078203699693826451268004979327608454554557020114062201179267709730555892003650280282226210027662797068167217001719507164924944749224052503959576846395894425518397016419447430870469349998211514235260245644832014586135104106454958180739407090789530983885194602716286944629485464171473438450784903337670969100323072705494900475874532363636499279752949668555482125779062478175350112720234343736239111988411280793049770519863828888412885906984544319803956365884634550758468202896552070199185337067836817088128585320891664498633178596637104745918847078226419202664318770704838055570630366942531399713864672936214503445082156208036668149703257676927436872488972989024235976108039095965313505226612627299843754944317523237442026884822065375519863634555606225690603693129929040055767430657199734283965078728769105929032830231393645183986708730109021040851601351219891798704581545036299904398931733867883676197119534443750051618779885399839589928772331174888426638662342291556199070467933817134687698884111667330695573919812733271621872589340070918393142395597437916009369893036643863950232352721853450336316155113807022948658095225842713616656346304605093096964758095025093833972075194494750377326140870576087028140805765017760232104488448761760864177442620536168836120233443076295189101332342325981240207068831789706480230410612367417108439026666969892808709321141536710788809052276696914327549193461932696582170934780283777451218223342852595112104537012116555117714292079664047673251057082459216299399196074403452425886318037435013369892426589655741334709165366307302493254286137904236013664642104216766569553661755117906270025999125306115340623811323927445008343066218494807173058862387223373103102100230750707860705552443220922323174462640191992466088217541642431001773711607241326529093856231364478117221199706652801472334643789386712297522904486957393989149999221030424023837350283158559731113694442800541226717211781889440071415640722016857629864569874595022607217480971549357629160361270481273494719153200701735850773946330151670427300634859567835875256911435033769052690478801479912314151284736133084029533275430164057298824948142730355337992387872231118186778409226273753627264285106423995478434296589227681257657784562624737180637124261754305086238137077811280743924807651693634581953816701997918955243458643595278313574500798621856379681330883854855407862557411026976576031679305960392042301411811797591583837752420471244083557920799718060244562185056385037312963132705437617934940039282990861833842654879250849988899661484027608984172136970898487546939663617703753555335593311317582196656227417125064382976065080525350131150389448747880198031879554951486767790438392495805249080473756572466015181958660141986274193814716136258358675119686007974732028375520171097921883600006415106772888860287055470339677756282457433268724976289548576341939748022952621781843753658565924129195250064944197052460380091550704625788579850010762586577159980040875269247706803546886470471372773475518538803598684072125198773616008712356907524639534838031390075711107003715580888254717097617986188349450756907509899855523486569446685685844021164382221558544215397886838054473226371234209254136125957346380907447000999146475388257283061150307439182894615844388697086693406692924656525397369613353161270214211885678967096871495493714682082286174655802349632814852767018427883675820202345398066610989841320156894876557218447244805656938364327548040781428742828406030792523253737861719107738325542457046672027350934465424717201305108216462497401282666337910456555982257863134559068019851325897054329054014453400274071324032544252418359210394798773332348084155712352228837540365025578883350607983245962373997467407657480270806550170814222133845533796976041474572226276609094814229492758919689027826734386333405535635857945153379380580417504531924086660336117281940712862735623777648306349717598532269530822112696225740175611104031697306806114586184067361502242175742532284725585920868711241667441588242217406970126719527523289929976582465549792178457918029034448781004073298695328207924435138345934231312411969675839008306893349005466067529303016254256236570680296336353610062999749718237192125535670953664677744279021509751955700390455880339816228129170038673124937329391939017760045225071470750294543043804911769741025747355627914500697284195248942911491721213421966514671952440193031737756795287872300116219968945808359375792266015686734133178987521003712145803601934951535955001596423700794010548291329587141406478019235443409625982727340879442250411615662113544471326630700378097410798934951162830409134415598726149757687607231260406428638656192799215002770751532374601159201379627309487455058340381988103148413361809748578320865601026580798230461279416354531714890010073216614881345653142044052938751613166129107622455539515823576956409834959322570504814558341470273372442380765038076407446312259001515152856329504629956963270365913173382646413931159856895419372010986134981178053353543542885123181201249748100417013260503167153125958999979885890273859280868985642727502141474268073952791641313848360194624439055799438219413924475907953793761383310904899904941844630568057953620197854610756125567964442001264231180786451248196639301654437333586630285496605405860651888487401987360436167140902797850852316768684759440574370993649175660359495528105122972930904142987027179811341628984460894605913472579497748292538779820618034251099156112420028310353536993357665989225803060827345494235471304065648133401531874510465840061537977129150764380110845305196122787942062188750388490318139366065146304176733824625529561957005984314673884962187060370577863746728318165808783800551055691249235318917040326818032541487836097262583503862505040038640838890575210326859770814651088694715490572397304693329126314815508002194255322004803073064155072449988028660092675591273086367105986915013862301052951180326438165722139066444157969752038277893135207310997306642689885042859003281380496317487399922274955349026291040372440174792906978774394797199329799002677990345406098287812670453689286402613430963739993269861435425005694066431405864462874326936189089336388573025747330283490212181076913183674895404820037846858478582389789233838617321414668629960876984887089059454289728263596264292181038763403491561589042909905842517014872814796413065031476039272174687875598654272678833579655667052906946386931315211627112389605578330231630905496379923058632504262931185797432006028360481210713568765503596271003652678299929628334105049940983821261151424979833165739300940396638706322425423649879113390958092288156756092996551825700819565234696865265520522065576975091018149969604590796475979146574296492065705897722983358976911725465932810169952453030375535031802880332665548451995694025406010402012754393963312305095311744944567347818422680454055757569459892678946182178282656076708077461241885207527350987000456340415671827726844485188800158121227434348204163358310442221120160628566280719358037776720424449953201512243737113144234952769659064053994077897804294238600498384557677668855830153577896151520317919247615603746378452053186106707697564604204059452275990055189724313051129005571561695903710742995321896960108188230556131057762241246344178746521163801430339158254065354799374299396697985730782463435685752124303505621683398028792180952289429890041483866669742960439556084788613202141202915189275191484144437900713743964120313516871577160981042911611200951185405545560071262079858280243144222815387616567731137195540462840586866179052658320324632481466508301010363422367388127776905740155227508581673877018437833747391884237861974039536632677640420467142601832458686589551710648812884098664848347780724799829921677270400661138057036534657956761402185493347733380166606692047963648866491962794868112695552579035162115813853200207854343676946831341082082005021563209970696690628677863385152611343118213797379204084011591829457255599649810698492202486994196259317867544242523675779839443410204202851385367101267201180814380513623062872116340211013952425607472411215194820341796245447214255417499518095751869462311219854612075775442396244830409734706146239690963912745674387296034558930343657188762239419354897467619025392039802567596356911137912718928372476582417749260489061048600539255612585670319849209940570444044698966300852163244517454474855276058940227770831672159178198833065671982693448586390598156899047484720683969319772023713993189971165138703932372829823196499329783483007345690342301183026416371678948824373190680596433870114889126550718071716871904134459764378016974105807006749208997843348651484949647769829146289842329683361918330141805156562640222589280520708450457465374680841474120176196193036397212554631399908305332228801654758016751654791482520821719708643479753637784704770477789329051641418002888565970671329560682431218293763009806623394380334233974891781776933394551459062737346905835790859245294715870164255556064669399117989475215107519999054454415493937058759807880605639531881434402703363743490860345322845081767792817517094761395682544461949751110028319653745468921168497598511890795243855282644466746078896829302271371462872328902993130646505097965439441747915966439687078060314332630137775579256246873229429019115258229589929871852319074483593121390358018389942302664946400062436078167232672358716719515508359624978302344235110093938587847063657363774292716625915007634519187904936100233590610471375931954990203395037420012691714754850177210432948196150521750445616188457235925328556307501582304405041461167200010467308938128952266336239300715293564561815086563376378158220510599749458223627665429794314243784213572862170504565251853009690511513979359862745594822764834792877660581874011015868073204466542109190752179182694407242246991394930684924577011543722477301811819544210001108686447383149600214316681624827924937124456405581574193992349217841877991969671990206737251513863537455992876785843922956346282000822055534278643834273668561245089913684287674402080841800979940378679469152187892603163395406925269044381677238147685747187080599477952945649054145670943846791192911806738457388783378303098977164005999774209097452553837508013817175930766876313067988675668750739408290536509549273424866098332254087317626855420819946129124297587469011449498850651075413860704510043022659856961371938935285837474059370509117002149388113397500837093456967222325186439130350102031123160346548840220758576839869626433188124511231592566006220506153616181530543431924282519005732353590548202811642932727847560851305162949426390895061714361496880554642729741968374114720389395890545873875015087511390366577632275799023494396642717312649333416704743021207169910844336285026721634308507854420111375797816383572243190851159703292797787376446188763085697504038164237777474646139294664298784465636774586627067886072204374229343836786633700637630160317362172706976325861918007338006047140843472764043942881811660200145204543776021196272389511258107355530010624821063645859104425814024687306169220047491942510083712344826495731429004300941498107336998771520439612313730010388162118283886955987390814804401857209379610551390948984722046467457710484642388507652456698973031138256161976738978483155349887709272514708611415494289788006512508931232497078618582543043589699403552007265150979256054275007383129871100898512733460692057168728580933737406998468938690454768971031564255470146789452436383732677330932152815194199858130178135521050803360424388558237370678464701804268353852574209856731780375161385812508754107797974493957117542282489410690205383382406343674421497834329190451559410297855454821887568479623002945665086858705136841406926488205174019059469913595182271283957555027682323043689652350428967348325330004810826566720867540360460006588200255772607575347979568598346479536956745326211845274625778052797237655492385539914293143393633680080585521337389050757231578860580613038490854983491181961374206280969745124881502090661502371690915605771005535006073716768025774328618268843113451038897874372434079072035972237492278707486120133571088317670226491031405710336933232074573274359657149319658931146885746012614404061274739203144284126131606545646899539872191113851083214703681151386305299156420922411805919565904254570290534126616606393582792912855551085922247920420895147784763744560356133098574340776882899532365798309928049783075223045587908364598815821691831444284862460284152985628370249041388631560724945745707989461818726574349932744760766922835120737783638705919998282804622339007072641042131159061846204258595621577905734282346874936571711433140487923592529882805412113334280359260333689909480914635914557515656307534513116480301925164940505507660659781398672238625747461765097628985470217369228646545787965675494089881899532434916183201523819403076144304190737833698367513870160994843684196560577502378425920838671999439785806206087237724664535510045377106666260776089357376349702319177005448535991241220297590230859249409661503278226213349583917913624715210396614957447198694176359440709456661385084726674152743646662370029674162571471022348707955615620280284433601171241038861163150230270020257160123945443848856142674372804092395898113641334164809026814109186131758174032624639767487797876024844196482520899306103305649886915713238880735662371769270784020510577690048013884319708601835578394013151951986999191111644177038776231604828207335012479869284869519985869626793498753975144931646337064831547136141743910638896820432434630924640141728416855626197858747166561769360155287117734788967252922337687173662969923407273231850464717157710797010361496394455991265501354895287471771644596537673491518610678270249847485208994546812075722344742789902675262269237212243475500627093333880768756544236314672305634650423647907396065646114712569512163869547139305090699745666346240944791188892709855308174247120428274272690758601426590231471172166097360886014798135328337265234032198611354792633410190095313505432791210460810623496401699685048896250548598368963015037874015710848953536344395987516469889260785478797697747336234531668312904700145003235070156398746281043018062164348386308092188652831638527203042232992868983898798529519669376129129326968180458394872777518216431239368906381532683860619943292329633665660359637369027164431198560478227727001171035522165790711186517533397849661330765072529062153556825786859336083365173811616740065268902809179708875490104951508904283792590030007977282899018260769311275869185059673079364590630585907389264771504986040101802541482079097917061029428731276030365402359997264450741046931286230003022475924710675823089617077410676497775249358630201057050126339941591902175606177175472771318071250812523327459838676233579167038940735422601446325238046687669706306430338672465713053627458720680562144338907449956422137760900488887653089549328723478994325083084097103375340000974678534334728841354903873743139056328921433423678878506181636688659542866139376163209736237080369406308733354864907076634019323820766886162830216041365155395430499838399231513207977033392602566330459053640293948870527097358375317321930258339759343410319152855152626004365994193741052786841637906043145867940310253194409854780699823679359510823867696316796275064403743598991740230619004744056533675615120578753561797983368995871143313421557945033181874164509874938963724630308437006666186672701720411557970808888909477641741129333850643734146704664896636392090771235343616431843979114798182862648095386979980463462746531428362254630853277144823979140607419503516619510431707100537120566249812672983032657820626346264737238020223474809931572780216398183500219754498098796435882326328656303850303578886404427629417578814233988822697490059227741507376538127562219880775247661525574842963346654472726811581324811363441480852920424400885468813416819316685171305353883169227911930293180298400174310831934644333505396494547266379847602735630539717527765036796265864917879253353879895046341721385548432792998447019874791734085659087840226272432573330371758355558748573741642998634560570040682875797770939113331613301150623094539903769282636171555545325880637464938088691094702238647206295819467172741690734856076844625984559531024131604765262492723317301276141063423385514057474795724671818480410742976747421838566250969722067781607158076313592131873833239052742461298089953551370736736411550816455915223696119131026028331189203350778316557865741212656069100602735627787696826762895420984548618900315902135243658931075510566651968700140409630575886343934777914181291298737466422293493049177615924748109352359326658405735888059466077545046151198327825521019719791734351500870809906014000306466219555792511803072959191119381871716805261205676974307282170523077268336468807043149592014191777770042211755180478358752288410550548170885419254870538131994554080841121879158905808406400120064946426166868523395314475461889279436475181200436342825387698810126009545148663895274630474538913941447197391511891729667693916286074146360450058505340910551708297564097344310690971385840920960791930779557843877646822286666283850654388907705216361429990656506758112651207243345916614834346487661864282432982942217911758493834012290021061941409415125992653231730380623424868742140613524558477706370009080651389312239962415066214443425095420563652140592211679638472299736198332814179459653037357589243314888327778625835437688933137744060936336651807641046332737157395979197287258908634128397125474441115247921257417850251505841065525836516920102416701855951428973971553103082903269085512889409908724069019033926554597608651898520721093574012782844865281723557562092946695477587469259973645286620325426461213144653706446602255507900947793573887500361618123392474445854861369890127682874677048790856716441626982075084416859876037978353241434230243872571974178502779319777338710602332794679783922885847994302387627785843630667867156565989325676271471464254721496631143179215997564049213280727579539644927252112216149603827711119717603754267766454803165496084082684432233923379371395199745393300851759012495967295702435349789325643228990972498848271459017947808886035808948468824334082572908988893126126524547078236096060606073795952028524091626827214528269491190369333758041638659614344309586900794496889632800501878711311620122267698823884353373184666261749064933713120528803402061809876206088699819140263487065158994847598102173100367899868006270215244858888555090579259990690694110110635814537188705818629625440667057407223533374148791662142804138695833872967413405340458231399804771656705820346853277656402526583680332930828900442433516489651390580255382470004667664261943861398168861686729591265769354156785445528235907393039312021968607823396990247945342535163926121244536290236631748103214222770999439477396765417322287347465569886561962036020637224119900039006795298437401142097597240574464936527243994614236064851986113735540090628044695657616358023393650989728910573158334039030054181837320852153266228643170129618233774272983966281232153625709194940962955133647052055268950203345053895449171217526238687231658876313267369136002945871235303120370847070387682469094881048029539540284884123624456304489287130564488688544809692821143714192604416207649987705905157851653145781845820921600405337531324079476018055895839709217255543565109968744617534839279838067840545588694696336751518705256032740697072153172676068083807188624387729247040159697157568903031125675691220440801988807864820729239368417148291017529493675021258121892634964133495166363316030419560141405925485404688313824046237814802748018691567333478476425164720957407311913636338238347725564198894687685957946064968510502774925665901229483475164336253517911597600692742940057832677654535596966105367648836802243436214463736136828592832340547546490533789373855803759353851232832863034654513257496700990598235921052570538262402968930392066925233587948440239588952863516321558197264987852352958071367032047757632874874346742192647258866515294595794371861458073556192239969721387930434858741098150066118997500595980731094165585915493781946793424225228575190759736375305152360247666748014977648815657791409584958558260118771953481698642511830248302347507798386314947252817467253894318203297870428409558066851873667295667034025315454889695075688978499418458590671994306549785502357640367772938754187357964973971294065061581829211847532669343619234039754485513954358003648245650339320462901339631036377338666029226201370763204764019680596691870282522978536534450832571098938359527074885321438035253284411298242452843571588239574119239365806236288857471654119061889316694083051300635939589930045549068885459389781487428751702178086355088002752462074856248815006159046889800029994137863585484158461355544834912595531637047410821627746750517139584398623946466490257592043730618699046588390923629086526880543243129351715863664154644166464235398999469650523914398843989465154243283842597010127212422465379586368097090253348475099925130239883706637843653495563138502730568180246382449489670296587795840583745669507767398829318546836471553422746851133627734642901181433006529381307475867411962487602955982180047235060419374318955550302592166619092339283662087201813462870371901818130786224323352128444298158152199736242793582642613998740189489786919433424365034230145923483353966275604393822093363117728521910608730575308727051789377115768812949112336542481107689657179983847897940096204171018063219441541114736252591817009529102485833560176987123347518010120254518041064247858574980299540325499056276868331051147666377848427733512774442851303412076167544765526189520311258935109482869213190395360727573562782029772559866747186259874829949476934999027821235973453755691191092258864209891774606266748066758560742420927018724726918431689375494606938496949579811155039355916730964110704933728966611807781248395425570906500523129716955092791617306445488210121239956417309974050836120249985706500056915782479685017927493880016738964154123904560629401700138320889804836538442545006671518029119931896179711592000969323111903515583797681889468733761846090345544613852761686175460248766902892928547333807960219022933677660749116346993582890617450191399898083228480374931875060771833179597451639597650342203272359933770365133641781706604910004681828906512900099013159744184254482798326604789930657672588214150150684384980246392929554120437317595186194698213218880861989405915620671112676234377819385849950293886664954478711629950358742961328212792011736106793150776815309662292157745772472254633349959800187118031371840803167151943974965025426546766360103029929925510552373124510420559199425807257295689410210781783118364726603444360154446595462257346421476761534160475123377323080451669758368541873803564214613273343136199260267230831379895996719936771205063833014214098916361377625213153118623946146673329388245700155860312628824761088343168293115235629013658259252568547539995880424297621328230009460037734756795321423317237190630967411326884167800025125955602682315959989605533106722467028901067226459937191963510810499874695661471865717539042204114328577571527810191058731921638247319399377629204620456630149084576580590793440650144657977831097615968549273711845171756139452103764010674036947639120989134714989757812428385679495069009622238169236831284839529314793896627173824990372847210355115230083115639020683172376390630182994891290910738469593363470042575191316541593313423417240532718701908043138246563394619518685578004113367670731293681854936685360357318116163672395415495230587709840025672551418924415134350710107158519239153651600557738193201583758474934157760735316679306591650100875029876165947969424250338683225173427684886420521900187201980919759653908621395149592712879468629363346426171854755515360597029307907270367377294720233443573070110976042231733021489943762802873174191335455288130484125757567026727518172233225317444315543696386727832239770700139493099747778100102162389695946220661330928614419698583628894337968331169921337690153580515914285973245187817473858683680120626300325558466042047193857449029063189971068429898045921272680763010467880290471098019584570775712854015907222928260411391487240322267365664792524399908341394926488343333027519278630234356325068922406569015757778685809620805766728742856426942960147693126733391388808395948932981968532213824090655183595354857613245571932680760846112312629268381246296716722708736205215260388864756673443116244089902543850792430597520786844805491282295026416062721607482620356758839214748850706776762187360465853913482405212745858980465297872736205401305182257460421078898616799521552800559102475683354346115994492458883754819192878053910972889579099090056959069511004675224945129326798520333916220376197460388522167297082362567469505798071990476638527323375644661631790602815533137261902569073695436485362918577546399038264886173334561210221906717687387141012993923134539700485343715278914586646617258807212375289902865992445842317339412961803255040386429360415021161806164687137391161622002740704692591011278504987152043498087449074919067596862128859588627248381975223160684111392996020148460496792654013262653320838811057784057609350224003591967922967344708377705108454434665077849770763694452115984853584975114820811790720762934893843734594424062837173442357804033691248260457468672924593943142875025696299994488539842566452109219004201277356660872866509705936851891957211586132666986898932137202907929541262737686261487946504945009406333757166701075651692778364015124058917762179885108732850965226678206739972971546927445536446631196697320569838777083654611367402664927798776110456213316577135494595375411323127795290460194148631318988976202705670499631839689144179788274472958361422917987879127380683820489733401745583018607688210399609200671701905086185872050455564563868218444563741813894598145898652976874714981354232507798927006491709349105022761048160114799045563052794523073691109319460604854722007152158331595481199764100033964798562121177828151635704314269143514870719424092925061621588538662324622764064289099907536414794032912148166876907665042616520023721228900419262435751304929822529771727158974863790172111602744151923914908998236795763200624251329223139935663299087201767546591489108850952897574935110943875291165536988847100378961803782289426510186007914628230116390126607074958626609064214198742364346719947093812819912059991442031763733824628630908230056825551349658349099897877025772093395779892363587635697670935306507499260757460080124203710352829225306480492319665472361817298279840295928213088780891064963902895960629531265124276949552104701470026083416225807550524659136266087997918933947131291892036269807156790913411689379816171361238783330375308576216709741438945060768488971565693377226147914759435878939510680257158576945978021950806567343202726106150691368416813408409949172963201453211757148847030710137309814005429947253024649501478077590347243200533985441557537253028827907827064708388709644743654542230200124291321674546964890974763122525370937388614746858772817252046228064861381955781721935597579480831895659204364805756942211956762129557163823982497397805463550033276589478783552584743095121306280434183025804030626119312678465251635810654385273912500123065566953785731239453737284448057024147304947344865393317752239642478074291728776023512314426784030143532496456205726050082659949467798682919611801171387914938506270682188249272595210397254955893557018920487776122886310254883997529504714842656696822069045791412920373268649658665250196904390529373970047945807790398377035579489560599448674915493167349747780598318620254684859718323636379466511765581815125217118564581086486899447850822944630504596808665227513642129778779931511809135052029714343897824102773971954563366315456632103595144175814981417437270333783398180093905095491867757250418619122899799205667397004028270563676015985332673028863724841570482707767670192627204690193909661241845184294031153443023677088834269581949230431752760427292737108328337172649685094572837068364916342339622436081792986907094751654540031310760650325008576043552030629653964065051768508125583684294217712387499330286526730913309222691360822073408051531456605881956892748280387981892800476152159141788864510282942450893208002634846735574740978802776050532152001184975801365582912346010285408536807337797526893148528905643391024785569309206578245632922537244579071370084857737446731852760145035648973689940957644820070142389152587971282271557195149961278253282630706313290623996200905050834158894462562078499396591579185422070213164639465197046501757703601122431897207652719477187953847668286552614861119311730631354175953549190406777004595471391787686068814050025411160950317358301403338940025901874572225018194592664468986246781286608771321187855179017054149976703144044464206361402375605333937395408068231164375336269814274814425835310606353545441300861466369608275778965328764234343219860649279280267515773952227915217793239422683277468670240049856110048220327208587052000951900231083284124951627481703837278424934773215423840849872336918959149475620070790096606498254626977197997893727626843391957083570153928072410422891972916415781316151212073805627469729762116175929595282415155754473275989158496349404392435931189408535936607121047508094140433920852359103343322187685940130783565167715428945798882905708094501661094536574005674110453002713668172476840859395422954716989951630350755193258500055570149131133163143709906609368650957378225641138229927983103286187513149693152879460712304995807261990085932397983943726822337411304888175546666909163267756641587706551552154708817990707511860767710400911650599175945893768994127283344068580447681419243942516046162680013630716358023633847142540185046862293549952155405614274124904608787993965812880981614037493451840664007339063579290034304046020424814820421199444859445684892158191042540574534449502220625238276247860463966367995321882057510533056190247897627651596182028121368793709069403373387337649026572815711686516031676537824071834513345157402249895210076351434627563152595349105080886823378765505496819959974924752683152888462370378805461030983155698639618953347090658159428823820218079539957303770471862585179474602750724431946599608039104105648205094864110572458262727683163395099899331495983245769128661465506110530501045473387637792264757746291974462658476453897931112888130113581005631374935452364057786930242151553700205042626888148035574697501748689285265143011262053619369041697681404224871245898281243540122749704833333060470693922412138050715095281036026608402014971709082899002624485021662436727762309123422752204058041997566548970580318821314328834808684733197832381607547463605281728416658549302774998955883242885085380208393262031903619340914084868238722469934381889925794425392954522752074538757624758198454938574873861222962582518262233221327794025686198382887659876262278748177226430696002197129297012440245273077731942981816078734217455133049924141915494086935028951389319638306549785349086426592966580677149142785316090503172880596510774245025147578124434673828175566025494160569624205543995940620372326689939111336297717505912873756395367052402652805622908663641870896596957991266654497915004282010256252585325133323573923728956763846201938966127806999458183051309261716904021884277036947327347029150492307034448431494139194346588364581646871613181148486855345822405450154956563138115917106146771565090489411789621167684848916545361463609199777887132521070744688076480752954422074309438905580512703056934376269431902606800798899939388940835099955964639542022691710424077490330723486149480607441527093309398003774188945239021641891180976171953007505788288262672830481931062016806567370069631396006592941838925920578349957765508995674508958942592500786128903163007574792850426731095647401931135758826258021345061973637385669756403070405752304969350552369528727058971554687816221759134847834029312367304029413330420112534102179839299109218122786644487656797518652388809294782688596291821719274307382404404937546833531285048813419949535076924099841444713868792804571041828354844189873638749093084780729310984814406886343105368726134119362045483151339653857730793505557769927733828548407766290171279829597878400521099124584207134310010220483397846159843780951833217726468076170538959251929753966776944530892032908146187039743726237674193433537433381355267538080165630811727104825090046483786038854837376026792438509459689197573556670987097923414026142122667793352844401361199355838524590592658612520484989374143215078261817667618014911780756829675423573525481359398740705550819056871286881022051423304905824887934072867097116811602321191023951054150265855505818043846736429496300449425004901581480558101701185362394354997601928641339064589533697564973390616501520626460747985077200771015952385058580979484041942003914297227645484688623860588825831255527184001253178718996871073341797011449868197708778720679501152484595749158956689202998799730002403621333166761268073105848346837675975597494515928681907050656154764718978800083952287403311652858326906763534246554196218265363985741250282826486617844222905079107392799218446860265901203280260906484657278588192652220853326888068702767867206954662135039785586769449929806149632485534989546474412408663883780159386996750158687437532540206661964170676075827681118077820776206152370702617162683627610514930162926909831913659458955846095709606576689988972103631064303968939803447524496152932297448278251327149484404677887784643672809523762052005011617913046658823771130317220610849535067256072142212557531268489510457099922368832470309214111460116391749111878063978256653932913340909335704056165707727671771903146243662107000610722281521888493638077055560053444460889803900387298278219381152871508303321380202867031188302551858903136970850214695136338653209840437988189712146995909866118313938553967760352115784364624919282970973812303795992002545811546265024092774249334947510555628604854200589002665584535037648908029052680210979417186719370053206385079941221908936123179461117285960717032348663068768942948687240918366124769373871902232013115059406508211824325845993553248764646369898680125836376380825672099739510831343401812780528711735424826706014292524626253583352170495659382401490865143764063084605864954486716774202383735186145902940533653851007060582865202650793172471867644039220620508656467495858144477713030132251030589878718859829253963289511972600066479534264386994800741773967754460218695463238277646856231839576770850604642658493195315912124526344828453670903910355591652520418397824775165740197554351874232476495941108520635956301034125457201708620028430872376922356899063644036964577381167467908836649889647022106637636890006791335314251157829268930325766666825676017613179782476453156474934119565443204317755609240400783489310019932274371415134826257347205893211137893333401674854217729200327593733768558455952605983739060749872821301665672031976050049427029572631280595781004967629941831940790414368791815489080593681913718221391115383869177077559443560478870219156231034649194570920978604519672444395417030270317972808287384580556517096130825949169642443728065780931533843366346845764069807848012034884207102516813623648098337987524827950066330760266803072963273004830374253376693828684735841491741900800128644994341302661395678842595621463111121761207406121513726971169374247432526538933313747774279352659878020956862940919624659463221650995819603823673932751824452050514890040281290476621020854927247943392156242925177809044319841723093849355460381495847514461297284052314411629123739730486104145568615286800487535556093655977657829954666598439202472052123995876553686894172780677367797855147037974664428598101120226936567371262258967027403462173592543018732672043346263942353900039426127087960855239140354880616861942322481982565258633345188047113382513495323933073957371897004206097457679601934139811331780576641937252895279267352803756800425440436978483885745574215599182683908586349710930873964940489980945212033267215495253231243966269788288301399965106429574682899508358653800918878608765718750808168961001592361831206157578930621323267915353383092768039754778890554297520088856485781991563241754497754891184573626483624724623616531041905592625549089876372899184079890015117064652822776482663563829959070681504097552397997018832115466692943091349373524948762209128814901262467006097388707073812864460646784206243368701435942427221178790059829311336853815502545861627704476277896404950655301962578318951716810176846401362943643113326500053052724305732976765382037647782062769232658167095913268839354623695433657175381927044852217626103406709905988734842844623576786080266624455851546477558988359930158946938209587267676883885140015964922060650375310871547923976740251262773384586484330358784548761092773156249751902381365899071157558256868887722578269092790492885192371913888357191874946321272642397214216399752081158472187127047256113955713428122393285772454190906186381918959874783388044450785682688339122836832601958162389352412187803668859090981023408648286578535094478433615630123853044677522137142472537513579945189049650312548783345795498365195849648662533275525706025677646478249353996998837278171669782321542816979476648007039179268945622191633769386824495093900229519546301904759101276953509313871409800455433712639157145368707759389347869724312835485392254546089768208767146433267687948919622668318063706711469747485895614725445507006570526829020464563552513808189659043340764578356775653497511584861385229764071033335084741855518965364994145469430295170800032960153025109395604883904790081305643481955520688455588353185788630990410734088497136794925898111510010051224350567211506058862650126415837299097042906859318266933068040382550135133744308012251427217139537717572458226618009453038649818997554123333067562475035332696699519588751293995975959211092341105307624469467940273355975211708840682827234290387631299026155364810983166581611347134956101096397083199572902548873756478456504528329330551814579925496450894228477933462128091113507831102294313229634606035460599777564552448280565895470196432580619519121986287953045069750534385142149243660329200651546775848303012943469656893599725602590254927635773039938951353585644516199052297956448935067011568660304269921914458722176506632455837057491836802272671565720295705528820529853270919270149500473862061633974617329042576244210769522520288352519891258546919639504051541020590823809661369385147857146238400265143143880347729446626062601086600331885743765916073846251429736956853263757235764264070437134296690880371140526565036475365049249072390810639744794708575436604204248180099084288223710985946917242019386463042560660240834746143126824178752086471728650450773525735246043447605177398035047947373964763707807758251347157474771190942172169917268400683429340372757672642934796712760598954996750581941685954666772943715928545018828145473043723837517175732479720381881393533477227598320060312734012880990159471365136115737903036523822475272744328167814110443127263306770471110776719755391735720007570317364635198110852324263743835011281244827529392587421378579441705226041878951174803679665674306690695252377561446181328415800229134928935553131168682460448828172700714242009762321596288817551302908955340971708588244097675725236068855076994175615936449426977755020681685796547368101222974820296897562486813457766426501518162601489993057271164923655281289955410672967940866492612591790942343754006301018911759404929602422089408342003315632281803260620597634978337159015350907802448517301098184560363514898417551654518651727171105019927339038576293394561357295024666749008031911892426987987098464588982581756558816600714357711156524207884175977908849285177663814695064281650076722354282358483782700761104657107541624566273181294295086623640242108834382523996375249580688469465307747507665195433682633192922168994073965955602824601533989780601960135842993811944491060506543110992119625229135453307970993985065451347365371020781321580210453577586512268219213612893681653524157249351235923789918311955126624118552967476055899734198683047509679852839687667996870481037842614251232029581206289314028187935323533633261225201988722851294939485194541844392361796328878317159627683859810865173299912135847186415559814999344796665319676221381282885802805919561091961699796396534752976262152007673941823769066915664835625339108679686198842537635742356188231817135759704850494652890199491963930910771769399671477559231647144663244579027947296693564750713616601443861107594733364973967551812407177726313394460048878121917723086764417835568595085271629092474549992418511093397663137718589770241322780124387676555847229356167722286523464652855189393234261552454656175547533689395105940366140020438186251145973915434717272954717510864267122926472601224821462714276377716696019047976930536137676927584732246424728812757828016738586024462617546195207630015652271138782949179607090388858409161624752599641531779067026283957719790759770912557202463571722036561556354488499043665781656529717144744252810760562862258129032880474435437680580243648698832328187216856519830223449385756862518945001076436021245391125529089870248667319840022236338894464046396265866316704397072250865766775278834527126612082929323284627457140439721066998372577917596046071313025315149844989083927898515588202260086301620564757644018230157796881137075880342058405021757592996674193174117472401682950439097801940165341513578741011697295429605437053423176345804353520913352484602289687164581534822058688076162822077540536957711680113076083296319645051727904647083081451320382378846138938634120215847938478948882378042531354282283245716072318328881067206400056755971003593118539644056766696456348560586529070379272081499933542256960064870008563557589317961130802790153605459389149555657770496906462236730222407790242751639229542181470906468469721849288664682733271115325105428053201960501066924033786628379221504983776243780251519214699868003987578055702486019663687534887565172797726248273669918848419909551302204711487259402295240307024779459031840628396564785740934037485375589759522359212581580498257311803963003145860395046063988561899947616136490714784143793668385972824575961847545313667352808458718340990167267001403227343973452030440225393189468160875565386768493455848252427642796306180809893962448718709698677155904327492352959007798304370932093711580462484241550922682182404330835206393924465231266153650296336776603313371081252799443954430086837073216860313312251333368159175166627730565193912935220773755343535161773351503245836163069607265692313590270576459018296371199217193649319470732828612488090918941835863382858812431901223715943054594773206744735209393595734803176712922327975518233048757232366374280613244257726290625189627094086368079306031635545092985963268948283381914496593145046309090606652949883509529903163750391251800567825291900947307496038148401859383019331843395445861088192540622591270151950855639743168059416969810871628066520897013210938566660965652795549003957936512699573732424583434437044784167658821696734549749148346638141460313249270836009068811412848037259691533987639896847203009682393040416937966234391652209820529231211097748673181356970435897763900067568010941105637285861268151283827980898478355021279890581076959560193254618565907416722379796373795167424882358310899379787311240262358110999842394707242127873229207945558986012963378496252290080535197009645822288901591327428111639715292130612568141401758019862786776519852634250267358787099340898010862145913132917922820485555241478106343928463415849456237296736115496288765640334509713248327227267264397569164011666624021275789803798650371219981108674614486018409570287026170902490253415241250877135672454061206948508790590807938000536126860435959751413480691171182054412027899986004203459855134101032495932686376799487325820482172023137211349120803630360782541245770460457970969474654266157690171394916356715347519111201138441071285182528598598395150020489351826648500796584776272001481100886865883682731376428036587285100214292237290972018963079500801223601115114057727209742240077589839736131729440568535049943990600414469542064529966010101469711467591321423635763474663461249802124226593747961549821577118066196236423458931124609874535464647138621288825388093894686140770770687119524622200880007190371062120390435942673038521560870871096429072862849585351262579620497404076804425955077908843192364716683977032655069257154723000510708963846450689148773252907116916911426248219537769284367438969674233623056724916620901239026149010070787095734039659751623608493412997597900625219276943982603040241017876438688826317911237901281668286580741635473418234611273321856545944709827780862010832805357525653992523715343227297088907159808163009531988126835470227614235870458887371182137071773460071002541606933338426727308532091145403479742212209949221538472086928045136055785042668076047108153358430452231601205563332569190578372585074372027221978188237343736272587792327003105588321677522575351076645955022922567593291211941496131570972965776204836529930138785320859682645937686208964743257380913708739080783529922328220329345384036321588862336641741116476415636372106890803141356714766897916117633236236301549732741886067782374558128711205682171714776945612294053682409448729845788031421863639791802063637986371748854624698205579375170132598293510457544757838110727492792031769868837405957949167283023700263933514276280282421302748253840828515643882827282884638421916934634297991152393865828893774917507355779272683964293736643454005199610381765905132162937056516020809161321478589507378748046289546286686766257313143479272643859881486824902239357665816967522500476719588661452785809236417034442056366310133944777497617966136633060416573905681597238358435770683580474993684109472784328208125761847100394409292813741588733748463208912773310517415016376026798017996423726698191313231767049852321566801098354461355086750248695436674598951781550760834855877110613321086380638560353740012240696951025447793829449241057355033120670841792323503430722374327527288029340739405782610847951618821004358916751853288736023000294171312738726386390648432978397732901348430450442146976890129552125096376031707984978699944753544357027306198164816265011740277212740072020213578109933433409114185778049985516972597395226657465676730898441715914821205451166427747606217273292124907353030381690687605056892526994530766771081015285200610904590109144036700688974810095380650784181791260334816673873166559813448732848225051375552911531626622477964908185314061251208775495226202284218134846155997688309366374370477957827736369074006956527627131571092406678067362409242349564619883394657527699002354877393349168983045827114690520137744171923955596727642657976021391376992103490948946520409373187691841859363275820057541272390486426177266143373073158417647528254402042630142025987636546380405460226434182790098023634222836630423819887058545605594313388948339181250941849423236834573573405550912845520595627804526631163200308235324023994299258642374471749526992164412530096585451973102372811252987027905852387082815063685693114347023658711602220213380314468439763169818041557140373224969832817768333505011491141799815682975053680798996521799722547195878120185706063906276681495349370474722311210911813163119848430620963384724587713133197310185540839210873801469322588674222815177427179865177215841632543089808101881582190919913343008175440593334368319669196906037273532928609962685516098078295995751772035860207279183470039993957097159184616859466926561802335236354791717208161262719240978232555239740650788507355892423474092853032676712356828417891648030667630049559964092884748678561252261311249216717795729534508375070347620799861672846664717233827337355107805206356906621812996758631714703088727310275717971307058256513466621594803043247851772803267287172156283330144837905197634713433053829190321476713618013717096515529062204715072315952424822137358598078993995389461160210148150819514622308733717911751674537122338468026978713497583488070080816953443867206697414219567753007031644929150344085689398376690865993747144383986491344225696017393813120669179730508402101900287715814886475493491746319933493032142251759751315034940429313787931035329048990222382563645632377246703615904947863041997632742775839470812804835785911783537106239232663119640694423518074440892424653163145744231988676213985358154837693950514879823767420768293577996493620557230881552833446205987999821013173871572166864104570530076811791092233006542576038215622048851645427969983627310383122908246774548868925399918066969296949991702918804705020303600484131693269353518406558132586790508355820722121450530489133672183919190058878217466624751487851546366091862686807998204684541358570950226448377434608329434788356512432933587587684661757189891810064498218525571331688871292671416032162650338058308245611452437891655263713227123834617100728453705430187265216170780925491151344497039597026363300224156761664715110713309487074623004180555676326733856459284662942335883060311042905542572890661717712348920682740300859339525151140976085920580841707133060361721266707323994530536154359172430954974652223014611801834394995130902911956030925329132904406304316580845171686419890174174799285641421843483698656285053884377008859773947014246378145000845078102680298850543981060345003980101014159190598668873621635326483632155429457176564679463312315112018144493979427982255350363657970023683152677417967376151807645774137002660462409963900088534530304957274116663003179376849152905614756091192847721424974724370613158605402583967698391109004406767294336121879746950703124014577962823935728074148507195950414590736229798861839049618672691853722841843093645867774207718102185555766972478943536176744762084379023193181685123522117943854950301769011234639664295807727519733269436507506852314589128991420642103251320243765890382074706263805579339975282112883300866621059657490598859413449524568955215460065231595286590479700224596393993128375590659843870443770199017704236414939172735296138911289375620933348366681711766919132535634673933319984548161989158263008594100135185881517063836312130560026892653049697136438999718584166242290916231035997323679918872703593334510443709066988588773806659178389703406640206993248748623860950671090303650287984397079862040885646502418053807412592372141906811444752832295203603191026349958749850903158615918581345023307813467953781986134720515610145175769747110871700433900254414390530078708182814735107176271131688855300802148740805557144707269541723207923197604275105651528608670394020260664760349138193680292838355706913502899242651815618936890841683211624542933914013447828438408337795704440744207787790162630014600417352475935688948212152577426580984832896531205470191700030471725913567112350394323203112357416766361957841020006286562879469181428258410097830621389411299382275634741104402235018309294486047523132650065561815802159274840965336000477688805217207923867014211068544384262718055625754077666242029033547603887550597439217173909205743482155398488815106594947970342441796162469230923865754498792640287783164945519234096151008824569425544976831976404857353281147710096993729814648756359472728657023218939625477566991884636246878300284598072643457789566623855392715886830115879982311095183936525242569246882982345223919783569972758986090707275339122174718799051660552763316613187483784747143504449081671121911422906885976423949443091486711832526216315041858093882063852816966833590929608557258097892125049717805161890991888278327672631135515568405688829916874723365926306328357157473702662942750263304254140997970807184340232773586361980783386977332864886995733830060408307975349330903512695915839841680989141011441899998155270040432851527133048224990145454822943420901937711474899454094325755475508716879056896435606657357104916502101316609578129660104311725271593056836355978687655361086954461027967797358271637111371758678734122798586055501055163111746700374643185672074328402509933051555865969278174201222199635995201564767522479945790002184266909448824981646378616244954116003296992830613647629223436999208615107062848901775146052362716903529520496107438714847059352277460470438040568981920707561215123818811345016349548243554841262946476443484894709947202887389960275307687591956778276547380777901915291271236965749990862074336863304878490482290784625843892501987762981783777627571001406722712545441012400370524077997459123507942825526743865402566476495579833274723225166352291118873111393805893067792028060665116665643225964397261800350595272643164053436983744103014777878336157445027689909340338879924215569578231363982601271906591563120721604385808122345695721762155300942478245777339273624518996407628868369561524023198501686899196748917083176538134109934646604304414534252286921381137881717000960418328896003827469127116775353830608378539658628053949981682972517030113015290062688457241786666338591402856152499587582311896961454278586409489455817521019210238255060407604836598322937632434891964464226106358115516976634589436682273288684647229094342103544513768049739337502429365647031977908102297583344594162214321982571551547601375658538732531045108568557169539615292191867907062160921794548332185414684245916091056389418976556055188021053183899607546080951380585758609845067539026197961108250620054837424686305043393050023532438911724271059846887517245960631460274838224832572932298103060109000108852987195741147163195858609858000380432421211921403292824883293710950390610984626839374871173796478632805824588652537750627832329155794496331148825681642182634626873458771162196398429439686738958925416321209704597326776825562307154575091722881264146512268345481713941079828838269055527965837910251136011623328917244983300997981404394983631173344797523610677195741984322027506343517981486752598139435738829062332476399177539013168272707484338111914400035849426465664889497269213609129792016876183448803964501172053945397346991665890632263917482264371011785357549241255834968741515058416939824593324680090019630793390902080555043178588049523533502864312090323655052595773767237852877883598982849885440834450223838760595847684616614325536957720143738358583448223650923323818679175021210523319978463394436552207695948720077227721871688095447542936497951835179973359737743402350769492052065785503168900671506183749627449408115910443652255382722719700591015194695487098132272211303950521210334955528092507342047482751798129185714629817537828301215100373238153157875830594517331598001321884491770829629883030403011100448716002623523932477454145172554220744174309371245999457664191980820138779019415468410152502630458152695793572393772857202311314322713703395465942119457628691323022723394598613048209820145807626346574672740219463884722908933760681668515635618249200259899109131139194783569374321497516724385709440368801459492414354938945134410150794983617768293935677422634399416461149431273138388084116706872775397678389322195274042990394623627919733634849299162523310962868319574450409873372842726515985902859921603111711768994114732377822399405756457804558554391163342939975192320139491778579583019157493396168363174725715966015241904153168368514237783820796812953751038550528817970219420952657194769691894129115642519123962084055577262264081944739461532384736214709306695706281532334415967824783370396344092038417950441025368131632117701009685708154665977254739884174948276126723843155953360162192655225019518615378647848606812795608233448152345575139621791213677218721585762005208173418952530969087140539684017757039028781926151597783853553945047309215216889306054080183227908406977636996070119885152678019665986595541150261304492704677820698602891174332885015380561993583633837856369253763910986995122028940994407339208279828752040396948512903152825617301571002761976805702071384825815003280820396032396944077919720205057595453587465891369067565666306018268430681961342653876852182340630847715049669143575311695444073857944222997551776397219938404429658674502788148086478663422543650006178914878861639406164795032384846814572395317191849648911294862398450942402382759165522404179571082328005966659491850119391458596412550304362853794160046711997306309143781368288652085767960636966205660554264837191280575549275184321132781747764751557832076633827168662129446982576194698913485802784426201995056662613397462183956608969978333517465604095507195865143201929242488800272430940532136285784682874496679212574628851437140503725595161243488333333756696778905372997291138921494280921614221993972906687504093918072537713818767922212388686961963849460873974762554117091137745169093310874927282120374989057354014585293512168220220016975149809385522179362643202013653956286194990099465495401254608427104479362662184396715195119642519465199115321211292952416223873027087141852779580195107308795840412368924191285312501463252510985680060433882505499604410579034117238874575995493794738229955431390101009593929588773862387618558436479485907396229460959840520830159193860808229152811401176234791000876992732738906585267098003725970502957483041410801973353013181598275850139390662524668200732731740653195715140434336944847309787251280887554861574892872368292438060234190475414030121997754108639062732337461205570860292584851145158368402706815913077259432194855372239159045922532525572966640096077637068302679444241320931821793728446869307469883171889582951420059054532644408905162633872544726836418997181081631661062225666519856801461224143939851965735798307966270862149840190234179203706582591776186679065905957367365166914608031126102685979801564400483052930748988287072132980868011228234106426821820408614099941618297279418305384825671139137144648211056952970120771081065423422573641434507882269107786349193991989844145226745285044332351053158305462532958563249372985585954211389947364274418210808478548458340777932518249939863541664249667543351586873199849585051168812625146624964841153619150031803475143867163133346705437530388825919083339100198216898525490398910212202063500775307561851434663262698797455684324182130633698048782292789306460328805755052522865224672489399974862617896936264036879839229954817229341975020235101270989446851532624089558035712328701162173791449159001404516227309676317029356163365426375026227136200349225860545307557598191397880152521924936081891829865553149683800032302105347717072270429111614060853538947121981890704514925608751655827258875673234141213441029218038917611114033959706795807517034294718026811281829713259849817832999826832898162818846257483914383989507802123893837540876385353797944893463421105559236132810675192118346035364426853651182395441860992758805393836492408402369986982018369044542409835672806898900986687390870164383346424335999296099768236834390179841165019791737108524054999183379601075839878265289312292215896375398501680483867079534190607898667105856547628955773919349339616608466271479305481610997449642189977697072518896713780321177189204121208383857381813440573080086249779200815115846106527302559440749793076162885778240069788202686093746621016156837473772384188040801827983079599724980145739960673115192384395673542732173961092668345034511355627243356625282817979966475342795558474253344920669333420432945945342979644278508272217445660355947520481218932889121075175965410962783607106274256272920223115606236405116362745332438556902136268351936735238515113179468762092782868478832672385945012516799544279056439247321255513448829245058547534789123932544590496332235383855318463999551636955788136673383967306075880190810668450127322615432936586681890830667096499562303734284259783212097747218922723466273253340397638514237903297486857147984412910158030513319037235368120266152519478763175721656619773248263672874491620564884601203936884498223140979159617692338110542321375686004425105057267936008903011860673127163992458633246443279831019877001791495301940048177379458328065220182661057275078726680947159632914132588425327389865684215737128098488672991475060734712518290878932220625432144561311363671601556753085745720178922879432615755722093014171740153071317614210210199125067355204160814872910866597037086300405208908228901159191137061364270536810883757280134079520728634417202137123249484612309598413299014063600490388454352074054885307299519429318248736382560696205732511218568840349291628389338812098206736512121706388009963914667433144659340644258367149680350037265227014606632172308024007768297305079937241348821928908549910409965937963311409902069974804612260292170675571222771813494178744254806192212738965433369308011976151750692374832257487348505678603621326055068556345925409871465538258858675777010547038573884208726391039049711845895475948437765550092808754753332294659076270739829379064857011342996048170213089507864347488077156059432786668284078158703251697888311763206496636315285597321966436612866949709254013970926919563366968063575434748738657878307598370174103995175049677951838829693111061885274475217112377178389632519745301353013138207117471958042434702670597430782995137190671328996873484448790749328683864806843741520774830065222489129870568605357958799542959386234159663719697373563468398732313541021634633093495964186919266303611391893944222194134076327518822519502784129066571473023740445697359873328847544374588449044260155867229113086033283450237568026712873421019700442610916079877893979179219318510283836746923877928624726059838755460392964360589856243574429920477705935829679317372435161735111810458782669918787316084352477411580206524367299124425170067278794436272206841973751533401047123481988727542728774948516807547142693731595353781672064485173112616044103086099224728391300213399090108066966153163715760901400829217817505587853321985401867901835003126568341797620415085864455879926252416677697299500431088530256757874832078843297384601867127460972239789397674458164298567410888361771144057221243440828771769927830468133748168691445869373003479484947818849880897650030478932390034560112066781072931356804628483557837680276458771586618081019303509897006847162608893313524355616993747346966191395556847203252447307880025549501713461929378852724713429697037336503608961491278944821149582590585638539649240932876574732617683154029107406661599544833577702341664039713562611521050866247358119022114708234366601761571111001959670310432743772539027548020947786174846453651460266907348981866204778932965918271913051470711992015124723482309612342455654148767177303666735825931551705060042178968541146384707900711646805240083647624681505134789212610114371125094996003529387873543123139223157912695107697169225544995374979212668349455500456699054571710478265110334902776838870038872310537188012828217016358218385387964259378925808286741408009534976379665624907978511466304368783283892010872864904302673791171002333918184182578284774290315223177336539008207074872297160734270535131548800085006832840850090062025838396758418353477329053809442172700415785445480056468480375326654561038248805230885029254101833956435867284447025633048513331435912588855806938807584277919827272864609349430728750466190674849185212472464040113694283467532896505067189055256277836511158918040729824083888811484238276234835196886867891009060602115335522936760677493308710271630616532033929362767797870845826344164879363890381407299389639849282744144983247829244454192695864644556574878340841295482873070165319477858766110394563082402162075920829811077618000547117800414199919318478650307553877582851401086237723961452187419496457758656973786854684696824235004633942994468314807542747017322068023972932734535811712993495643138963024915944616787178219809665721192276877645156262570062721232910034572808840843833456615252064235966907000660567643257720683199269794011481396357521711613793266633503870235827355998597479706513638413972495157333817985064708884204636154206979658841559499733262637613845157047664410966011359403144401696219849265621892326934314393302795647765554523112577817348495776607132310842358232374782494243217627852377593799671144950625198191995307726881599207332251787490859331261154865319589563873390899833509661018593979285929822088899054844554341177440063884929546698974869721658372471731412843790886766159870652092670109389262735070330327726853636789446784737913146932077973747960834576585582398316705922518497129271112289514663344463285798837471313626354717899181180019278360859643254883202003734502938352235743305295652654883652227273910582099942872555408881859873646807609997109308368685911240615429582005211726722613360509573640470566491782269966309973626603715609119161409776761081401317715093505015102003786141472117738491692930794330188605707650806747021362385412975453093765034532107328346992560762636830152621490734053419679117031306302449913432677417450436392083882917921948623928679143702811966571726491556832873664493917347231146454316240485423189858803255531351940170339772302477150994562999273490842570310322716818739361291281064639086164130643184117114047181382031627593870399459392874342013642984282602717483462989138860334751046383988969430493918037059996306447532786875687770525979427267450951461923832090924294333733109462383827987567087590232645817907290346216296930437822553232358510117763846316777880985840874453117106328769723328774705695385598930766676420255148797055645772936553262878381624624599405353704793509793376646384208492596299837776721270030040141192326477200918371439696965063341563605281697976404013873490974144341100535147174781187057410998846921155559281893844944099862136674308669013856527579971758963234952866049542292798169671762018970783203507633656245884627461264378205793346603768240144799243788291665360281558088715799277293608927264364614610358379453416578172180781488598432608886082990066623753958567937990775953897511485741215921353905525296329381395387486350451318714873800006455416941604754605186160704377704350178374855369903592259833153388977525527258685754018297307517497715257393371038119201548740224480168503229103115179591573713081359909949503302729000189516943251263326126411415593569425738414295364933485242365208595541134412363605716895578222554811838137502800037484169157333266765139158904836821094471511544723037637712961791109433008540401037341764397949334483003100481613913792822186649224379008624139709015658942638806652982396322080244637832215842803707532949494112671791749638733191427538953919569246700520471913195546370868905886761171891275335435823788215695615485971595547540859863764343597989669367282297834536268097981655688098223390170213542563184756682846947897966999024645091967670709483633645238855377800301874987826906483248657089294855918647853950837878113359823675943634456568742084787488860984992410877015751358560481871723222164016014746898887565922015310580405816464910299603847358646271609164036794027117238223627933667421004947969944199450638787110954397351089635625254561029486665834782915683867465226333193044176704317465507062021635492902251510901545118422719553629392805925263546615855805529878372356992057356055103769443567710413713267552347178506077306681576705787895144764045582813494439206734705199196780822869333629912191280222374804430945041675794704567373851749264499852696342754804874298834089288643329346261320655001210147251719822805110578154318489222995557921812876553244401826424157366513645718692784446721739272336933638800654925942975185762649449602842631680678696274734944573543051491085632453969124268104340270724569404813339972668876578842882704228348379698503151208797469454185068776368155539968300507677914881356719781867304068726744723374704756340215965127885279820665767385491251908438837565189602304492138681387638768457851449319638425209055008196084387542150124091332917122524354620784975030073606138007781120959394681677715939733767319879431012868096538330131072101162436523249404636752999344623404226289237051474761385169305418133568789600533478851756912798376211802868048588894452322532560247750816368118917452338481846013332240259142550419918272326816668463477216617797235399499612198283275743338140648801903822084117510980377551310737707062540082913921173468210308986405184382440075590133265008892629679404350941000300330158977876135423285339729833578989666289871169776617257969080504569508764190871358771856482004585906737112595139651301273795089657724730417027342426384623490118711421122331658845547992192782808449543735002176689711028058090214988733326615281855429205729871509144735508600508920155990583392097086574234258385791458370107540206226900114510236528721024998531123187690194176494813097377133835041936082280699472443131727816477839738935696992616562682997913156763270609977984325627960140262064633154574454999083935017673344837753984564333935832944954333096447841927121525859571911865301634398403342763748186137839630250092820322597553228096673402949040180980751016065826013890530324736155999060267258492774767292227302324553845160177946301802466732114145264016519003781995504932184935947789459653172067697463669833882877778124077152068588000216874207974031504802854219878798587786598409425116271339199155518197441065705659045438928060221701908867758259584043428405551619293554352479192608778723206548762081116085877704340451160668462204369611226048228270506173126733008610030666109215408233363741393597576185842593543512460879618494924143175333268416168988785735700184186214748823405897685745190108504446566309366775000044024168970904183803818688805342335074621933398869253125612607091094347767676837971335794192547309578631237868247520911696273886106580775573830654351168254346330028661519462544747188763108381392813007830171765835446889980535966595804029413853758079349361855217991286285445613617249956446332714269156410963799013333027064480360828622578741628620830402890165522354840685756396714733044766367077468765780238310193791416674080350265443868910149998540524463831241474116734516887237315588405313866479140110713888753021805806970405660654211589531610569819642820932370651265194608144930280921839449533660929484650914652150107636646325640823078166248471267188055577223904351416329880456861991329086711478757741431478543852539774984458899790697224134358058267624442434029555247216846346019575372816541083956646370131035613959732444069715333599400678932470527812309383382124057269752729039556596161188566972168055988910851259123906298637472310733899379118531182230981831195289928790432867719852471225377390708216892392131972005238806731108824682879044520509640731411768287236181815278644575925018136863782278933382896071786297988632317657364015344654388302716842716995814727158124349623304918087537462650987432043792609070612057521108494901060946543178758227632945085584340940851148058503003776090600095337405238706908572203257105980880729588645221050629247419912530153865628687530054352271294870689809014586212035196198350130747539262106447079492959230904462188128975288141060773625372480010757726199981188244034160138811997068515323444269930936668284016883018114321295673798712852870253946376586260089774053767379201000449378839162044407960092515801513562037157661969132263716764202684719636808832024063617179186423113404804321537747531121928297463456341703915949241006001451783532994553954679857355685077018293651771566638395570444161228978584326071907338689481641652130815434825783113195390646843984853732620303678077969520241440109354836404214055298230742475918866240906216871536856059021437511320256998872856003283493301986698258116330066515534603176426242023547714240478258076315000201154374874003549917101823316346346948840824855363328389456175045019160661625967671091111367420683109576194302458180631888442566223144872084705485960752334991100577469442402113861858989313390383358987224421296658308131974842510139781164886665168063567636927093178578826641852638773748956597759296162371233077303525393442220076392249982638862887011063670526527113022051230386947113631693751873392458362307472278526473848911200714879334834295049244895792999259809329445970293865610923490778501106814126769006189439003669083384775754609059000929020630592128999809098651751544364191095969949475515395460329718837755309145862265369770888684406065237219659223241830559282601086544034897730596978120029203812233148299473993486424125272037512362180353296705762682027626095904487844934052977017494110810704763647644073202710598389709920692234671939722527528964767632037115403310657987548949992516786945100981288462661844634372466010495316051558182141918654336421200605884138120964815793343694952345671416257915505949766375464901117532375672230995397692040507129816109008511196471620618879658919953540017768878540961353624987383825317417753984201673170187476348014949684741626292807226848419235255427328952534095600157701503698125011703141187597415006308148419115886681472329703647657004789557477322564427753099832055143999137210339514286399744392855502601263421082979799781124150158103126532778303492706536275426878156491632209857245579880779275502738065802302570952558561628577537167210163434111341403732122696407731846350503776435123228864001401013657921784501953480305077226214219492885285282616399663916227513589474918296822150011745231206936346328127030469957769871581602857727277569513760469923560353340043263487114751823719463529750906356590514540372259770501991372073757514963083431781554991516609364869228755560985762711939282559158946872487922037826408148994860965591040526816216336175017632213132093417145133027694930752763626448712009080375889140427241446507754782950594903538385923705353867051564104098433646905460152003505199083714894750191235062472336533827516435603483359615442291417545904997274003898316995911352516480537232797716263852388507066667638534323887216502336965558847585592755154532706110517448083791458712597521010525778056326495108055853129723460845930670886264821334530207331059333140757439177662442376313809299861414235310367811115565034689015126421421387280711515048300162009617127990485215542650298929285019627431506968890573011633603175354841466217773565504053565128246611319771385153112200738049186459468277458448989384571721452815408716576840239960954260677128337950947726838453665378317510503484634756424764360649106212396868373261771202025950857127838764255717152886583775729705536177584351830286706823122598688491393427293518724303544608655272354629729958463416566802879482507912669884285343269650932537843602268814818706014566743874839439257422676809907118881324808974409384293779631566760375485503409408911556123132962739359164198039771529399750086244324020399161511052806677213949043690698843346770473008440789901037015370704885834339358694322026713684635900714019516714008685463149748441503482392601944932051888375850022726896903113273507151641603965260857574541266430721607493716580369177362027535855334040112404461052666186277466482558024725226677362294758471828202094894000664139742116271069544693676993982800176051057517054034829167665166088272839107399642306152619416963926531008387932849536456998433378670645720198893151787028722130511056314109250255689149958999348851801056773660629366902447895389047264604735087311090026113216135053282009594988567023381166012828882586338249740520081633827255274465043862169728701014644793774589329395115206352464926610252458372198600058393109211986494371058344795339683981807317633426220925032140820165089704699085261121180645040512689572198648530146614127214316274534412945576582966903941361192190626913810253079458700660585986183458600245043438852524567047943763843187069512476365482510361571298486070865564528027825298399250784593424026402804392631591994187643089551855206724031172680503140448668856469855571741726410854340676416120615934577599506012273892341585790547900906953419912068522162782933154591636947392134321087832397401366593721420646390406886710085683860161523249794094687326117315476383449422498913448904430400434632127114471639010882147034542910600252106615643561331791495986114281053109814579694052104354105049173267511588399865207482133707709095236822663503882168132645382865907319186379649934284209809682180333064293152034382884772879920604575088825138828462547596449784775106728130607868456249183524607988861735690831904537058355811055889179857167789496964508364350008044530563374127791714297625304926080222671668887349574021988753380447547870748557699451151702006473354388163259427584778877417883058620909917055628330530980056049036293223216784739790223656475856940077549146277201103965519616467504050072827458920665803453822364557989022864282473597633839203901212289155231091911553333760253848817995473001439410528944645712950297177381678425501516522584069986282163844645295318869024239218333861370742358575652837926976460377108790960937935581227218294405112991505896076041340430633264340495866929954881091800507366990744657075314742312488475629503253007191476631642958529184622694438369522214838295378492446498754938340745546204912188248313503483133716925366586619685172676857067185615902383254565927987350697273210197536878702958930229472425318445515120277256202203216034644620357799022694449165685662765351930657635271470468535449684702701131874514283773646008309094358652381772605096766453897712085423028904091741230481188367185667576703777056363998593823722177284099072331322101695693337268193908749362857030725975364096451753921767352386503964352366602051906361989503734123928769192690252972136625440478839727336610507874239907754997207725790179793613600297057064604202608438042652769064589579407078317305063410378420402498208399864122902815621784433648774477145307339126829217928273899924965303266745160323839482778089798033266716254200603104338929447874685100017112854033134485672466119937829913572922202453556994558561056057917223541757560165534396308208091805890766333789480833027619706894885377535431511231244276664491726196837180741244943089124928546149747571428965647374193883665337372860211207817727389180770152482500106713990349769065370643298295579377559967046631250346344373268752036333882182397927129967820925357829583444269696307714022243216458467315204462109357936925233918884930462116456848353917313337282619575558370207269854431336315553698881356632925303888712140443638596404163614430518959125219597831188475999765841499501411747591117860272293710305999588865562136150890196832684692133868678298363814160868589711358616351126959030440130267780911959425168041761993918320991851870247276287730144453249925733483537081350226724143908549351267281623023435940252791015312667140010450605210287018050134438291070592940671887244425988717751132806622796480757860455501895924873718350334912198143002539596856541044592432470709038103261418185591028294039161992014453304069301299182035280072093531190615263966764238246372976412492559248120912253444406490211012281912664533514834286095399832612656867818059430745391708850785158588252593728051248784604356014105485997188868545490936008588209424094516396685235200427232416774657112327569711738816483952279983659554841312359230546198124129874835303893683091194775468534258344879565168855535206977178743450801823338426621870632257837485292202163979413762760452367049783761828921718356395311462450870558045433915699275013379639985888069607981521598301711956173444086737737171298151152002500283045131165207488132834716697075647178628881699140515674060701502927232798669697342423629818508672647744027622198274759232131382363099500414340567293724160860073919622480181363864472213916541251840198807648164238980245274399323820523769217474556867184528359767125587709316089744999504737083721819137441719357038950432918447165726080303876543135567527920751950372792278576112318583721346224763969963512686992209558974837285431377251156598307652708753958375881675114619525809840496496146296835362553507154143975268167585296995348836664563334585952343264057696791856350022263316564366348280448491159654663046423914842631142991433833403413055591122460449059068397278649840847695450773131332209097799037145851222492925263042409859712964802694847428825178599110008075742883904235543971354420900424566988809193300219769267986348237385098460352066013975372549738104529076637310443765070830748559552538041437856451370658260581003636572983239175355173150593276745210270172702764476181037075456448983653015355118325315999706975660517134611162835304562673430925390014553178238639511931907282858845961982098849192071571308781610334212710009813445227516480142404805669438073256682548041068622912193493620530429569544796251303397552354313547781803898526521814289169303095775724709563684245696244198008827508744930729155378996261112260232142571373940541293575669159363007642036820785684303196688223175061869115936124024222442023262396287837792265786114464544964362420067222344806081307368144546805961210642602980416769220921132554567589012771928977703544546117773774041959436985855834977690544967602944940884520833140813466963533409801385582951695527222135021229519711990420583119497914165058516161588013405755900062452117382752681058034003942048420678341277915632327431789876104820079721880065539435416193943756917517114779049793241073340081953011056694518897505815196098850291398292441041780520657685109823471306453282183184996527292226653235065786175485898996531381105722243051576059768239629566437381880095674382426186691107956142168268522495329518264141882768298920154141116320203327859771369313677238482954786295739956658099631137038444081710722505094532012547034547007168386661184332731695707126122230203322747409486516189550087694103288603864253803839183660808915919525189417596891089313551755449658452305513737432149488161912203049695845551435378884161568362306189684207321269156865154048249045625811480332064990612292134475018705173091609610036161077634031710814068975971413161511474386013464913079830512768026038428662668921254714464248549684383192334050362032474128799557726253610541663979452623935421691785537390136811581716902262805968528250295849598030622978865255020203586970893437019272670839142049388207899837409347920778828097817157759454884322014937278422909058197895057940617976586452583971251086001089704474409495896007446448620585819962560776903782177349624065400793595174333047209104311007619165062892391971021052357817144601604962094648540883019792261964843941124755953671403201097733419348293473742246390592620595671699617196964305103243915500870857965650179888368636327586412423336403425540635274427097695271822055258789227806559389120875876472393907289566720945711149419034186554065833064563925089044030614837007678427754879382953041224220250430377788014789859374395071236902261572646186360428225115645746549607492305065450690195033831684234690224768025317267828047346273750572293324591472789314216882411281340751611513694169175644444214010217582728690447691399032381899158286090239401891888430319996797509477143394819372095900301470081257461397735714561687200742831755755924966679902176637230299922535449705283108381986873720406072128631793757234796211610699276398265467569281737354001258818452936634008848030554247000008800509653375197704891347972024878405829657422631536494016930391803060641524922006546761823596201270910664522286246563376300104116020248207694030356263475374631440597462987837440489431799392170977951572279880190884637361564534665722392364260844893120174098520598725339474007867153492698493480501028094909400491655090003437046894628504718268581685614200317936710408924882729479886773483742559036520524891227599173341633136176497540977524784483313603018920582492729695839952441327607505292737020881550545713937969193947474405980456161143564010963592495388990267869926161048993801235127714558702594797333274151255152025621530830749419629838557633330550492375260280987484095012379606822527565578811840185345998136052805191215815815599332898216517824569944897918680951226923401777817869344356027210040075525492863546531744948618104919784129916016105561330390385011174309090916333767320673160038238254530675588794437139540389769420776764926569811610482801342008557563465375061984669846350329963269072979422392049004267111843645277532499354378510360344765987737593773552670417459531131401864445458401336969056739817444588670770495331630058691521506885631246140213788597133515634735999327164076281546862129100491788623293456072012183229446112145516613650342656764114680758304656065475332101633503077499917343147346594288445439082636538628954985631046691719382381120632873501832165808596856859588706360196205622804236642330744873395446283189135886539093960084844984875994015385813756458989850143223256072105733593855005967718152389980048484238329296749234503301397636112620528896311357802057342279013448021897441085242985391857962697218303070114769746992272748405413223150694103258097139963658736096116461663376553620306442441502825695625221122531741484384079195401514324527752102753905068273201859693326689014311432010869683672148875405425387405771077806419831273454922952645621084205092721862333889786670252021578826831956323331260692429720346728116934120343981250660959191319359453093693441581708188570805012084042893107766108784985738471836579219973019110857850907532759283714084515230140946839756554591300003784855901388163723890862730519456979074307235100380782586378481142771564295207355523245239693115651570555366465223041134968849348087127143654288431547338337233297952709677398745719882818853013316418928800374763534690242324328759685915049275126757829624002966474408157170508513652785872214945292270184333254991314309310006033916636118812460710995099952264216214822363021287113633336222022917836166054331739399626187328790643141654906777847340172858793173973183266651702133288391062823949123421983923568987425477036019281731202348639151864151996999343587651809961288402548942871234412024893681908575398311174393145512279487797281148779725930712603409871723549156377494442132648701049036738022616861453048658736962103968929451795180126590207934669557593547379747763391293706818658105864403237709619882019365989841934571357705105692780138051529198949116504780445688571563118661756426944046880312114002847543801923203372344976892995675972895248889760165247476574801637882655016013490843739383694507140809613654846035100473296073397703965743574375403526554673464326345434016520989592773881190278631848428531372289218880510370787868180014978016227607692606988448334272576464967052081243805490330277569010040329039058138193868351818211736230597198202809185940704846077016730028543028131793907441847860682839783272125544975802207039200400611704768468289294774759931477881027629345744469306935046829279720301186158690226296521533691446560587186366303431475384710600286146769929763671232611669080904073237764217404502646788271667776780011660851204993363857328226408762343665717693044730668727494564373071199517841403613906753695704017466755159063116930210266487970456696880141186803808416362750894437664430835211580415490621262342827172015386913971130933779930376208935798721988189536266878424751729993414491968622132529501278904280099261668653763962278127885083571500419874323305834388568371273969348854519986524432674686873887068359930232849185463945389319480142587859437356751454823228036389589176716377048545362226614533133889730533979908424132675080430894242142109770683249610869220785456520740465066855545810741169414158293060187406367028778523976571813946257449109526251856346074988936226447668471391804545228331112620286688177776857909207664847942301334022619759918973851278842145892650283543055977948661241297698661682438496775444638723603943364668938114362034287582605152658724495136175210004813599658317287022581032008484939658546381613403527817861665575620921515069102919635447572504167848609339910820607525339827308689439823833320783865129844525628780103377899325609342375976596164356167185119685996129445907604148990312372092151996265210153259149146660246988952008706500604870811867753188056471069485315367104715377908069730092935805226930293248354355612664078327009875208693617501070127252683217412308718594610478908542762935081651069990847301448600244654157932793690027855525963569552456880950204708611191257708393907642743146794523823736649972677686068788646049779036205719405348581975329479733125561021545620938906020341780959681811430336636270649982723920762094389360036615138489964098742067440802186464741528141989959034533439924415593871564703073449889710733871574583259909728137371199301427932072624431699217783215950364662851059769013302212469331052076703008784039528443023314018379492281788961648246882299074984877245338142617566031794020120579903616563919697064237692031551408843563699837560140094634057482876337003487323777076401832006268570435287728911178879529128892590837036597625735071697885911554146782531230224696531857722877169224278023013035053763226090040158452082094383852660161632119055823904486381496901377591387398316898286449622097361564546389227352146728228450777061288844558883647700347808664908212600100482318221597681584010925607369948330955545471773130424007115966959711488408228682496272770889486874858854731251167441125953526985592636915709695642690169376435582996984864285660750349829260369299132862396447250698119309674631307101306965868057903407599372545472172606873427208932673120803782353165265048775637963360824548554640511628978072728233553790342088119474411314665780523121299826010953363717705868164456739070518851995025852256813132424656704122367992872849228163089954589288396969846204450557108821520198979363403812602296578616821438366762373491009229764438522690656450419155247637879541378851766719803240127655335142083682018431069698357782524587965098207548682437930214052851331360014074744280111813080146428566133461987869752747833048049075092067156715061843923165801391760293159277054108991364017902901784471050036151974887782410666101703064276345202750526924854891947384866393408845208647186237946605632804843880374563795241245362957120921957656769068173545299196522244349351015733896537910462163646464836744115970969834922755665460526442288803936252444053595796637350670584281497118437875857696260870243455691111482723766804738551796309836666829569634446079332386368384953186824233902827627360705408841342543387573060904386817512178846160124135449619900769319799523337519129228142627133879022079017930787438763005576455309441015855754784376347587141757590178169012210647137231760681539238226388537141680360407332002063168983385368805854683437709336585388846222183937343252469340313362364351371426084006331229766187954941391245974882261224906494966345118760072995475023579892526811623442510297307494113782119590586333490768542760727241469496809515928551747603403189220356661553947993454585606716100392547591298624326163015219364354002102738946207118627543651172036565689825335185150703306380288138821139833927096528222674325608290887918514991024453348338831515543021191755429512509016579216985800145639087850830505406559198637594166004910873681362550455311262513124969770943946233658355983041451784540720073137761898180683648275899070421119687549157434832662412243040571609015448592293378230919581713311356629773731733912888430365563714321075654897241825824224234068674451999930887109462637706413411166384838257081898459791695135665119271267602691057766518212553197774195680750494387656347255294178867082868931796283380828649547242769580937958841330151124503353766343543749246948327740022068573728225727581735824616997927306569728009399688939765594343036702109607011931264051501683281901140580140004267597484609841648079637460897464513869024110319535337841976297202974223573920547788447536703193929611785538692840700812888886508516008754294571507532563930425646986935276501377072063043410184282447305839004289335036274363180742754916204480303338302116989111985428189893048046084480682476663439914446134908944370252943825162618536726239715356465706350288117637780662656132645689606598182751859687791029838955529803268315484829428766393867681074342615315434030280081520120227222615846957231548215663663724031343202241251749920313288456079102496420820198933730665653145658008586550639601784858679484800127931022985694878192310204432854397490820761540822854508892801741429903242672076995147780854045862625069564075700988781640893421879621184804115976238524747208441138439166480121728410013230854585595787526326268584298299696284946882740726125399073865101058463368120851278628253365465005122095533905621911129019867324252976956797068389323133223812454008117103215284481910987314253723929111579394867608692711722698590581944972919296765308416147655775445931508440939002900835991987085294662957365343166747260702919031465634180202715579517661412274114202061850701065806283222492478712030636914998530341202190563397626762087324720891439140776965269799497627395523066055928960225239126417775175041791645610150462969799324722304102719168352904341160829343393043902225409767777639202093055450707216122380783565603383448874985448000922305415617939020603244283091566329289852534802645992430241768891527668572484944125732881239538134858118381322115411069343129288201702607796630970818575826962541981146730573683728530646003012906911715998874027340524687402196071472475363204620903136292681473511383655867323468663506176966029702764598720153374371491768671974530567635705697569598723295211256398348446603872100296663817445742466640596086093056074038802507190917812399694613495579022378105503161443372896607505459969149289278473719940953647740183835623588850815093807385991540507397678215541173078913390107376005047078740211912184242857046548623140223582899122196679971099335941384413739419777604361235471924699133305761930779527778202958376809241359344722732463572806564577704279386924906875168631776123696207151491649607478733842142519681891139976227475278133052804449925327930754039455782952072104655706677578736930386486838821007642152192953479740518507666048704114322013209025880421131213949073714355901966391997558727434312606321819519751021422685846459355162221236163166198403889119957536459292193838469965794252296411565104320227993417702060497298763225423698512272358432873629883327768134617272601004348419162811333028287338734273919560888616803267674110802090444445173758099264620979454168691812778186507473125766445725065018554547856922361945306547098898087410001629354296228805206735196282753604599692334568591585601784306111766377110499745831781123879287851387277498952225472892047442447088917556969913987401642954518666906919279815863111514955918361942314538147295248383288779399309695059203460592508298198573647062200773343636412900608202212055271197549267122253101913331850663199107174695227082025631185028989651659431308293742910346144582346883116836491298467162645704453970796308843311489488461612848108428164858730089601683752320225129857353072511779917781371902142253482729257668236030471314681989045140173119898395345584887397724331575403915624278369120738870865422613465809204178180171990764693893924879281563073098519330283523328024643005354104958667205319591142385504539233345819831882371112500197953057787653005273361679689462800869058486858130668833166320312919181988403220873423964461952590097708248985163324376203816088897323115817334488841591133546941412409121114492655194506340434406620280478438416760897197096125841303962626772124095994795389177199099224939382636944595625849135788093296350839078855199429916862206072673636994515232189230471317736944052308183534106776531524560249894931846011247708479636416001900053059078447972036714734078569738411602775714767934180271992152928834751711836709448049379151875106451888428672831813469785680745621207976927660006727907537300208797051476187937950447947583675126024732760056540819115197845455320615897994445970575420218200882871369166436763312028525523010979004654094662759640394729209279641859705553721294730679679437542225233859218052342474686840774409892858254033973472921765451471208942817605255556747627056903644861532109543793570286681977448228032900371947473625936492455453244647326337829676630967451915315757371042118523227987936713007879445555744826869519527352505853640110499179380920691770836464533847897730029496124581899317678438275250684786833640654052396244509785058328279751387691289976539767501014856189475338710484080061063080483491936634196128434814810186172707985450307343965575398072040410281255399789039235151942415623451722013691244545092759264692133677168971626074861183078239551460083906534401965711403491130626905606102158813980777158367141211266565105677383319291458203841058020454587438112804807528650226840145291618958159038781833198070464741754846993874014582526496874464238901445989351518430986846052772593861288634968353071661366400905794435567001901121921582855566004938441657573619293165172862496555763696343894721667153725863220432692410690056050313210506156324733024747185380475939097252122663951271891762704799532527419729626128613934872799453464514973275852445379878427568860980686785017618660251666376355086423004739756633523917362796167535973790101980635900573344485897587106792347945071280564380163997611555325487055447785546600577612482069285149588800592034674196356588130984362342975423171402943289649044721599469371340435637413090691553785718434993319759339299678717752617414449890610893691364430546537576027927374411817872972039096422207929921058737466624624976234360452654668688399514879047882972802050089873338713427117936300964988906865726495158824713639933951562633099738180065852177971920026455902863800595999228287113223160715247837833306591827143019239826039256023933734201126278710831117281980652726675549151597125739953566150193874554287046866152529346474103349422523043079825908299555665173636415553132687773918583309104114325213987178785537838617833426016545498999486716960091958086993646651389979441963852663309390445433510326724204894855649581750707245400871838882314301542477042085545967095868729751704758107401447797608964754223263894435704117732825445849133571812321288124619917632086428014483369644863168917288828163314334800595218249632664243773101894833431827563916028645347997792780563114681805508950764668739498926874697778234296352113807346089116311530408364039046418894178385529395767385812851871802007934767412762831513634397608916213526676009851683037793342284100258764129497688308668928212077475779404513601868241342004135291420799558798434548364204164030376906269315738527202591380161021894868154267609811233030558038987129024123778764137452288189271083253392575780998624552728377152090520749075142765301979922571647966299686644327333381752486844973465575750416238581809686990267165198466543018767068543216652623361034707505962540208509600387558174452737271970070786625063096224719844641557204108920538016927497054297974686791238289226941928501180178739923923507525684381912151762744830586521283942424338311554307999730619088914496963899034171377859464697667910767798623957314446011211812792048922542000544314517361636310578387069557703503528661704848356560564257868840799538587885187003125723635170807981655133314491560246827677053861086745774731945599801379103609998718377326118710553399172508477903963013279642392433509034115449632976805260398725339963529569653312297822085546385510276856348743468892211188493720660419756944723107057320581542074447896748891924709319676803873677596676928678812270820805126288669519771864983519387626198211106180564535844584037682362669942440886879393269766923369323306855126419197287031957439657869191180789907687342383872450932057304309208670137960981888301011932724803602790378174225923818716836848647384157769150009027666407374486324904665029110477255694524526873248371227996662073327752988788988364124712676655801206981515008729487230182122756632390018761445962290780203103965581751352671185100399375024266117147812409742986815515647612666566306455754776133940027837294991652936323125113060052995050517502896392787363613747315609343915289543485816134277781222574958039114356399311261918108439720084753598910437053117480536211142950048049250565184037111622689930814419528519754785939028121642912765404871212101233226627859875713824066537524449441174348864825432668145918228652372190434845700644652120149755321827273489250684810385840599761931450110759216454284126565590167509425774537487564870000032653394670535345903536248740277827278079239054011965821272238788227865648957328551102180231935996837796731700158941651315128133624340385453170935552014403024266684672522547661314556016025303083168019205019560142122421784011034481971797546866685737447975667620023577373582537015590182555817735873311692309688741520481680524307408145405944417023018287546316125717611508223639625341693585015472085110473176948576942784544362309078635806990785147991133577983049322512135404342149703530389984928742866359464440703214604699590778142238386148904298037173705876282223266378074395377484990675600726703368589430127533584005784449041178454680655392000443669961176877328912594730414874652004182175014306227470784261640677536196410026885910475360332306258057947517430735985165608353566375914545717958732751007225205982865730257203237698122518017996831365858475953553384324842660501767389951002760328172105680942649238799376946392796542210827944191516634752879587857830163728019379130698173008797964974048824152450378624152745854779562967803413386316827637133648666532591386821168400362019046362573736369065041225246499115184597505381340348901388717897240046874593762607507624082891124046079296337697270366170703182931284702094535389078003040564379366212143145498437080479568787185756043820889093300683961590280639013948793198051973150222239128576242238197914104156256549189205041110413540223221295657698757555323637008350353862751135993997864473518478648710087634264663092349106593607599767180658800331546557550881167322863287566315100907855400567843392176122627964892079224852144165845102946533967833011243940604682406218867207849720487161593432227646189830956404542174226969591665775840248641408264376525314630528511460529846743813474835294767119164914047117407119542411335861707235379493820382405336651675880123138721428581015764363986599932451437038097507782157286842759309402424882973675749798038527117409791182461130936925751533461369565647798800879532307368598155680487008551141840292728494732442453911243901124530394348472387492091838786837083546024104241174064557836608132393164210960423771875030863280955150372359058734468162479542049750651543955275159858527020112180630624373040623099055598687811683230505341972799925019794222665253442815119743570878438583433627996930416760141113559878889633947360971528355726395024343520183461912550602686120858691631954845276840566067309302602034866802430925993986814467233663458330745646997469941011007751558325682737894563289237657031336249805082872633848804520687872719061525565331940261361118512805371869038601061923489568109393896023116409617539664600796365007788784645991987262067211485900567295322984657472316101076284035170424063292506932067629707856314266917030903325784414642435678267647992180819459453151253868961759685973213615719897842862015360099323844881898847301033916556136796683119500025505657371320392231000984956633578408342615370781713153790713406588846924516362884839921146579424450656463234158071694019289884383810994817686630822914565881675915327052707203024955361651825177022675569665415196513545090146803950793560403866518243753092806994272374644819706474181112627406806009412322175882147315332210475198612577162752178195328414578562682016199072139161882307012430822859595744788022205263901040205810288650440737188225249715165858563947537455933153833831736714522680977735390339611258633703370355283020586693083295238131593579278615764202968562662964985190042097908943504457729434507785123412819541644857050976496610425870713971843313521470730605933031371599017310171332249769097866873195176785033623719094485826745581928838373292283554449626649830707391303857022401944553186741121205710610637408380187826893173283929995956436833111419212796326243104793486229384707648532017017840680922470770767930822409469166734311019008916122291376294697453915278466410744386003024935329063166119447215838215301592375329549181939783266412577079159158078017743697132108518421651661869341757448767011819241794540154949611243333805505923555800433191250172146517007468674680780359548174157453690039259449296071195568415626930591252581954820260307817967818707127030022295314568101101459923365198507192257686135914952760368602410969821542378373692215789261894239874622295999176098867697761533911292336067960377965535636937577332561884932966551037840544082007887704722935912253338819794804811007605937736146195786345056347104887393742649930606198168991083040361358082232017317066251068148485888253151481950492869792686859286387119668998819172959574254422888901419757902809589150180633210467655523089789007934531861259391546307838444116993919034136284220341543054631798076830316029403333110434032727125563304160700705744597762998475729722271408304765172094741050627775791733812048158961176012114526643515364860845575574492696533730029157121808858349599305938983282930589261295209187618292539579010974739738651042950308092315661040496538322594539565519886590967811603146894863984092091522587335715747137014147172106381852058107042823764070356529678827282903924114401273802689749732059320690045962962541018866119310194078983104750931540196972390974855187481310507071888477545907920356886799392642504410466169628731585650101276733917620431368808064313589180069061528599553059226624009273472061226810585222066291867465791698875476319675204289666330115777807961680304143629745396737406513933662757050907536436095477109675167264403045247145544061338636144171112508542586624361094510964239500143555076892134155214327025474133965869925370503670125334016359618512992510582599666632179823584169507873276797735284227449876529133134663089222490284223806972479836797548371582196208598613714910467282156139337643953016803095589068316096242975191744151709097608099691916735366682840727033842403077808101562106413765428282633896398814416520625622929045216430413641516909588751196349210144350078462780282338160743843151713642991302299972525605048684959445042413403228469318509051480375611360209402608124251390180620128938217425994251537050171126562162344405019422349985143232675271197207800199324962184664882181329541543025085770063774006968531541548028335867848964315097109306386470873054837511178495776361405049409880652367292142802972424918394096901758377532357205348337694413436295318162048268536283282389847029100909375796934982263505427763651602796022379858365177853637703067116008560868645330899406348069099638624007346203936435882422946262844660463862307159955267701328928874392362271925663234147110396846898351279020923165453488462829123302776970479798759487871336145506915137849323657698196833022702540650088584995917961344429169383136832325103708561896216098853498101862694732131066952347883146352042978852472079002508448167299197567422067234218125101134911922453943787417985134776716996794297425834208098412355543570428464097489857370782747910995670195187958560019044195532068873501421083121188233453228915092635481067917181228774541599041315838735637788478751237362146699204300005107777795412612299351939515605102682185398935093630085634973631694566881349713743246488154798908863216605936815557892211198750474954631172006839237723241802314440684363385383822462353417154125790306583430530610007894108018213328013431218393595832797720480698996343904811057196041011458149577898732582815275879743833340467142030183644611941059582436967539986837942158146757610950919885550669839927405920587272373419159286215139287491237233015463010500615711363628851536630664771407778909526185306536256308319359493059097083731937839655757879256177279805020068251052903595929682573875357770339957105594751867624246814479509851235256355722183901368335124761839847458637248221309205551108785369982799189128809701152438866499582074254259578709649332933263921254070217556043949398342221000284200517182445376162608024663550091522773625276666577606806125765489629245911302051337295669311080475277401358732380284156205077025685239426397572520726323220447987881328031308604858219199218521429072450744129131565020436633711957005700432429484705267654472749041218699255894406470137363378433516837103143288547467691397028445817602610031444828897695968291557518207112428320161244495541378540215522183203074224177905214762378107660528384301576648774762776167128780717265387138115609491788886611377316285670704242218486362753380764342906973594588689860345582140819562241581604821755491101523158938829712484216935750898495306750058653720838447555721505289901562338037139554378554061027010365794835158024830115616238641442132882744387046970822229522465135401886863051321901098728605077521228718777635299183337140548492885778313043749853702294992101706631083014974637260016662917738738258927879599188121540551830934012189941787563414575534933584892630664175570443048588818946820323760901005492388164398824012225369218916357140141650324139805037841703610200092018752405526442887676794184534056098898186718886113195667694042257180056363370519725324161761921950263578744222863285137273763823300860610886835466565691220307388264731122950748796581030743986140250830046020440938068576749744856190552384379136178878282475590881179100125380802235315686211479683278089276634977226855468544740059265849397934751055627789219915224820102926317755217732517960346712545117045636339410538025174009653856419979567121742970158404397706259789744270363533980507004774730280635358413758426642284528129145357990317327078612827063570543292084971127990457956677009153032444336385965052893258070690899006116424036754900224090377672109180046152590712564699115756654524222011856473711401133182865902823803057993545993738643095211270761299334902574251695180645318378212157170886080251479387664546874603688583494971300233417681141985065026853793737804853360618656835028563549011463132446828975984613285473255641251356126134029795283282619143628338739581953791968508867046484233763648715352761635478052002938215815609064269704121828993073238726998911379307261865934495626080960162839970594940446364271243133705729092846311740585494221775389261849850776650208209433014127253318998835758431010867398091295161892934060246539787964255473853273189048563138366102838793083178740753574039301336323005488543546521992130190628304972048114030600473806309374948386353863186851270920898961043231086015311900412905974718238764994026120890854273981619034528085039350610357759553381684410729772157164042796788831673444668849735967958956943848069695283834244392088079012877658518506202827582374378862813906075786761150014027632212424611855254684597180620135115432567931629515246175487892264749022949841654557678181098727257054892653805998584506526288124709971929525961734425794749141317137946901528040103206289270105088270378981544206335855267145695874986138752081831767173122348896175052092059922066727783125679273224337743194602323536153484917677932515144283793860171057898687227115874038785771314977144599714704124983916650629374165914933827045672976000898716082388309981269702106298229375324716102626873339195272129409806444396205792688669717578091544702538287578354797182208090637961824933072325786827311153928335119796380959504468337475699136087372233857292490082632408401808972924610616754157871259387984177515650133867377919108596092514015165665167982290226068420957047423465377368453285453888525647534490303721765198878880652954660609568620791567452845480118019510272161609486214076215066235921231479131346843036250697391242678671862705135970078279073705252588675299152719800214756014046619354523868502132402635711896522062542073237445511813505131656274817825596386105832389009217708292101473340910101056216004574125430410901374924640787494345843452512922493214004390401641362633238322957582881696514649260319477132585048669958756292568379827528160153150092376221498246065686206485984087587947224544435223245030493449860570849741889566982226089840040073963023371008426048785092187963760940537812711814258422227187852645714611752713085160916637160454526397672367222020728271260196490867764310851037278121826474127352208426125278702472264154589316444230020151233283508700149295067044719033023243068915613573003513894722755630483291301111615295655526241463618645206575671429525193769831986473571620840847504745225410637168573752280928126230509460194287648204905512316749805791888922564343054132248262939798154087715846024958569851611468276625553969973863434259607755873783124565941517632463221199277236026606792930208167763793764377473590536821519160966833840503319003868327980449724147267678644617969598505595444284877546230398352512851469092675255688300824444057968050869846567238246160176952187999722194768532222493559096971308228905281098302277755080434939243309151206996556945229356031299425944724838391902421284434258597316860122475657891714253076882634192044173453357746490409799574661850836476929638992481710617054504360896728868913176911257467899430785816579057978562660529757950350226660412575751978548017913488155560818773335904326366649474936008388970991459262867770634997236253737375408392464888019398646573711500773572425953082959706499663294669001414371942882162750653286471902770698653632649980868157926425113192448926790214050714959940584487727583747057980305521539018209357458425566449423120506950265673243722877159679407406425700266815709656968390606157586252539459891816805334233122089060916970886268407146975961229556187099467982545634345816559545567114521984326929260216931112834244101941779678906567647227954349093996127958433535983704286264575471375035015234588371734984643687631023006568923200021226702301375006339461097819550031527524192370202774734939653003803351893097482584538449274178670076270255647723309785713096813975061835450491409670993214019148367987383191671294674672008489289468211045323851813860076069333071534677212554196565004946982187818450899710256799385001429226939793634952027392595788098239386761078613886477266649942808426859895077472743684706972696384735658000190406098184339498063296372631125992050967957213737875254395559930977162763622794812625331542510730875190265428575581192740432092554613434417105161872851904692553751381291920575165611838349947818426586217645671232259970243768476876645717199802433079799136483121122019808671034269515564549702775157588423928576543954718936792908169662633607860353980147162781623869285634891850408508193795098665658235139693082776804879629711561519357234924852591285370182012853629844896059079365851108724933344536387483257597964389461515768357582047514064019203546943035238919683966601399554762568833250616359895926836259574008920629984551140035078680711184668295350070410526287086784791320955399204655117841989126726285988884581814188975108196441060932987082616829326878330697595711063582799276437463323854741672798940570394239063030092882069298800676496749897223995198367000684318287628374231720066090538473328574786151006881321014230186994402204088606953779919315345004808412125602547662538253829374247532657376954633753069118850750917576359548185115450827396422068355143976100719386966871404663245832382037885051013636755351656830836982647673104207772772080941479445818475785401202535159181414888462735078806923893470459379940455356073267849654811102198253343620161340086874623882439180867636260970110867973591580811757390876892765696678284885837469288206582399652928153655180855198378824451960212099407375330746249670659111973406578503334369475752180017918823750055268252675365630231441578238903217291524165862547481882547636843929546758137108140893924072668294530224344182435114086404063351861608610948334509777268514988557978709558995320339310663162469497011900765653180458409060026848493795199447027233578807772102339468711218745328268632414955361593398543701686392001508915183747140333798957963739659230270159151435026981264355285965594228867888786805986559155314798546108991317499248767005725170049699668782735359117692968940788590979089679825289907668514145991775319710967908313646224231224330276268120037460900186778975718701705137671700839591604141329671733811405775200678862833036481723276628532360652144547313771915389170950562973286036371728177434269075867396368064259317334976694365328256166653832696296007480884010467773012792876020831760141945984521495283284361240060652731709573783330959097943134309681520787266400801713616319640553129990031744356831678912745927549791600757757568501159694510830899941074676599709350968489036216370599317633074154457207995112485655796514396035130474731410862112071921344702276831914526573869514364983521040301927249748872947180799144237160581291828969279876069672838664209215529482009085620639487095964394676785484830111244470948130363462025073958178389861919365192794055129976864057081469734020885787742634614242919752130384846274023741222589542198573845305132914101464239805752493666624246115595844979100396240799458234641245101891826630602716134175214866819929910118677955645265729211598825366021227146069729177561952971104113013392212416707699353406849210222777093836239259646748821039007524623186474986609450620695633227438466034408184632760996718016726689188653832616860669031108553576017205573424079329289003373356823389153217932663913774793962729928742058589293193696884259163658764996534411274303819020682323693112897889193961294865090270169047274738651881610737523763698884480077269965546128973937726420403277734638916377222165414940684861663008622582744070073344814846797465851924803562667788641403163157988369135341580431134195185601686210375425028954270212831481796369521969239238874229237068645987873581978370805784491897373017120697808072169089888393712736019867196051725555151032606966671623309076634140567609415200755224583649426201164412451410206857135638710524880902544919037883054304564260847304458606946364651791553483149387099530235763309468505506675855718357874612828175603481612349901585197341758164941353608974896243476092389415162504031415477397595313646276230249712175846814005984696045416541795023945035633464196166298269971432235412378993366441614645642297257187343948746202408190771593483271157082869127572791318067383480908142087141120898388031521592846393622850061607239666127062351784350655990687653542554778846364442238320627187372431056231317658107262499792285129213668138706142012358019227595972308260348467290401467153306420369465809813576034401206871604661971708475916197687564613196590126104809445731786894200104182756692684420322633188504719128327585645677302751329515113940413839795437908660329774605792694145124876119623634015702738869521864671320786502592738896710952964658822346543475667941562934850085536637420695725689110316442473262633993805590875906244165173746150194560689823565759570271846485397712791201453123653854296703106767576547572176588998552972462351246685553931665791588649527840371012274242577524040274832007710405180163641378092595327814993844323421603124023443802045142452944716750350568656123768689000748583617528045573678648265264579884746091831922498854504092636358774847593218129618208492333200228480163605615755859299629518449982772633273400197807066007349947544473072995106825310660582888165849748048394920355741948815916288191913645679382519363118491938416777762617174298239497391126707981592555368725616795298313532844571278453591680934849775026879512990225877735653399142771559887415922269203636594410758919972442759835383846615436674147877088464090192684497551605063054674995142643140199250044192244968179504085513649677159867303969538030974199845405466407892539650849175989669659583449944352261840948905497630927961899388379954774165551650504063697084423240079479873656671911581996796308867968813906929099600430224663192595597242901624759435603216287299319380650026591722369716320280840348641409449045624229965733163319881551971979979734410178241842853161015044045053608539294359858593730307924310095657884229660094020735422982981698219613542841315035664455640286078638863445042886700239824614786011391026698193273554093181808336694146482218540114007113531313526251034316409659639201157506389649607930570570099767521282390715791164895708378420722346923607998149588778186536766201183144280792058107660129217830872837117210501427253621442845654020010368628669589302494407534048369564962614828403374611951168164061268733452187417869260809154065444066525317315589369782236680577130064806965978714368098349856230304040654940464642554998084262311927146047467443268008070145798120739132457576177446033383692274655793240777529459182294785226079973992064325418651521783433327877918599706210853658943665318510303774963208341000327673901079533135566602647943004583464840665560010392042402436166706674005843227993335776293140897777448997664903910168524795869579902561543310551451237190331095523815604118698498212898610356725084757912953435855830757338242885518946404921234681038154020290001665145772649140914139253415731029835257516206578378148607726798258516215226201371222647900750298218301635112206422361187409710505066474447619716029044905365077097394302378592625033110222466769331650274595178524981417912458317010810735605759789551160566696352663570461749006813571892429515338448010265072490933026664243228268042345125099872232748953282772739299511674689689209173377240224071578983343934367443524106816150788544056679310931539378156013350279158958537160838823418107110229428693956217541689349497535807086098522437982120468429881531202173969057715215648717785994019381792370794088651732568744873060392181303759649606026270051718970635160316592861269833538905515899521174470601874763956228636193168672358365269374923251170404152903425570983514249802130970251970595523463471698297208834916124866182640606294211727015092467845006068166470308775306105006989931804855722629266786104205982869254535348688405237691004305293630794581229033192708437807303126017535081386823475063633362134810888104491309096190074268740102426304837677240146008387499186090587106350287164701171371587106933746261506592167028285678491727873772509295526237253889850581093667858676690506629811455672429560762359525959953751875896146852400698527114357141539503041512226724591735256892637731603744535684183387818916482415659470427561517923372266992491532166690844431883194355624365767561781824486920358537664011363956303957820172058795138200917484110270733224402865897612368341262805695376623576142685157644054240930595964208866384344623759274599400219349062366418843944603934529009986390337798574283541826375311252102581901169326557958318221352098230469445295450920215082198965771498712189024088663551229655831650578721103180380748004997389931567960290429792410270480590261684596806014869897373474604310109575701797663328414360822557915477186414356514437991988195553293545255794751731543853015565488524965592569307682909121814206594336901299726566277587796702000675111660790361465462155410623235077232507695282526520354219274332124573784531326233600627468481270642177756082604958090279702637856820218142841410091678357036460629872985601766959056015451096777190935145875143149181855749303955508439085646086596361282957192660369329083301079291566417613260045925627917984170081900156836086325230032182623940802604427853091314250739328176813374795163920708496741254121931120685066503214932917143588295633386169057445279575053885248754942724125602155172838442060692654745912968557311982717657822566415077959763757066556821629197222714773210438653983001949301496942472411370121877308618144215749613342404563685840903987389204970270913914431637049833858188915232748930601451294993781550457951363606598071388108894969276673564864915127224250158993335381975534196301730802205887850857811855724898202596565018670064371719279883028191839236863855532075718763070511730707636606332442619818072067353677766429273183996059340942405796551507585908607858006241019282455750254972231287873077259086990708118066558208313411929873610082805198485925017516227039368081853733490045584250926365672051102539671089366863326628303069981712949095673143461395888068277722293169181203507090024425721131304683992964292473584275706672622200786444776358951650758114640444700861116332436457455000224396661183707956541261560750348818988898231451572239546619906072819281320983647968284651389147621988138229358456506998209692826411500118970207040622444092109988073494889130387724079198725375617773862190409109604391070928429158109540190338882493218642646599607584892233619684492170092839127619640919864947425387683946739081987447964805795533452441026662078197089057036039323278496678969856755226715031494834499433603944370953513657478122240979913986247431427297082541185913785002095767568650429113468390563574283040956703444663653041854270361275428089314006872849502586368644139881598809337257007850419645009322331545534038977309862914116240655853796092070504148148428542721651439606392546816902422216879957559714206748679434011323454738177059392751407278152578918324822545817491524220763090777890518199999094933153140577465598051775429261922653875275619820040867712430713049809563264956813003102762813075569664992354030690920933176241356380616067169433925988292721613928461810826684103700675175655370119852336787098078702899459131568289426971086847838126239779571696184281847127095116682975496454302580115158677658353320409795472372858699523912159165386334619491935337401032321319870509032991321836249657187896732877113576093548148386402355460240042284139692898000541392278429043440251511319533576143825193630520576384401712692829618086796938663470137513708696950039890649730729875995299586869921383377186524565136526631195015651451680418633496396448194214172363172174380893054490187492078218359702207716309385717933281300853616593425144331906423353043344756250553149951568304741027022758823706467064390068573796378665522570663723249666106722103755257272244427428265982409760721562862531753017434763000598183129452291823372658441626887062459867709523116499332431761934103335582828568613822444878289667487021754599184890665754859733411605909652249558740231874012646105735516571983410361339183379924820703208603048830369790018046827694705773170708602618092281348247953490655480993978842341028213528579891572405555297371336333816144065280430620356625106332283280523863270892739748834308828915200970374952568813923647017716986271797682924421401449173479879760891621989310588893432617579665514793123423997197305256606050580096170424640635323604425906959002765349278662684447852476527911149597866232221996054529171430159727300058330587337888819404250661470103156972936514718468629443767037407356863121724381847186549340363882853434269565269880034585084685863617997446746717392588886871101737272417677703536245720651201366080869778429545725551436992658769326692166988429293462515620304861659052827322308901561273654039385571674898178759653713595903369434657496610823216237372897007782340583044819740857789364046856006291647040778684825520297056153045997193185252141243340898766256875408041418487744171272789247204538311721591800641332265412822987264462424869068593596753084072393042876269770025779078586926949574072052423900416881756988405095568878795391613246415500948639991155018327957332243638168259556740188068461780616088844619606025064453697922157086648591854377509390143287869186724055519902119380593486604688704523343965895874064901934469210746576420634995361650522369691105553588225605726459528832492345413354655417454820765829981925735418735851766473420970933040987609207677344149216773332127552073456826421115816612042051043439008662946317661156574828232568021634788312432829449544355907991089962897058146943454016449746798417862867427451475143569395681622556785772362853132498174339416887725299411831240415400662995816668958239845233512866193602831525348760697204066463117893636782739189674173823111128494379673422154724537511109742890522944217819161371104519861296123548572016837054933985916447312243475420222690517900811689104409483393924528126665293672020597665184825181308995685036342271182843658071747932254154813880812621673103155403267393767204106852361480571569429583710464910723993958356992586488132546986882499725751391890700720593012902852763618018934008278056198929464057854391859163890207651689636598520643754855723917523192602084405336084287087790104990954040272055730137152313399150337626564963790732896652411311638617572591350188278254383718616117883040648150576327515438846764058364887989131659885659315442339171845838807591735533091772544623442645585494541275124451631252793551688889808747098897844765464365654587704209403705350124833183293316147669828681036899225948431463739424916676901547961940555137677506982896565331374081193665644401773865268515190182363348621972572518834038630163291058921219951345392305209306308172796362275886028483754759915196786720623938654955965001062649113338563976628130491629328399982307514800018627470373540128137256976337089316329528908229129182527406713734629436691625040450139992512048378953808401149042947553037837452737961468404877172598663765376358972098780430585623777350603607180610524702626673033012266681353673821107758604577557605031183605930250962772162494481346015450939112877011139674834420868276993132493058433037717969973483044518133949936138784738261525632930930525755939463607339283236502111841407334734674465280322591002547290992960392184125884623753477953980173222666998262740094420253853970180204507604221659215528254799039634206192821259735925071916071372952782171021102517187536400072412675424598046869230569511084090536512692134638295860583271468943150493703165021995638991454073259646662666422476184917919230058284179866821439470593347767458913851809695866271321239551206315900444901352213137163312836671221428311298270844833277638826260748925286761025133840413279739929371178639596023705553776071520407670437766765760262951267133143851998163835767967860442227259512385574404734268755762924951069959587964126115121383797788931091586992700619071454758244328700938965561644357193300721157108421214899796414657146860867972348350724885113248717263155943611529630273323624559620601140152210894991368283232778519513267406363837626073553792242006683941645388946909664571938544526763730748650878913921061644710103040994017289554476542360490583814469692254394314826535505211883832207732838140772029238656651792785937317796336872332900676507555789515891968153266512937931820158789995760965600110636836320839712414490683653719216344385958424512848329785108826201812486850992779369409999864885894339030942146069580967482425577913795643984946263827216891103969525950900328569321847328752465252452898361729941903859422477218965178424159621699184005271472929608041834431094009538916758883897692561661601887123962274577537155117152267698878687189014043638033558793605554611022278134478737520841978521658508532823231615429565337544245780271640388347389234975488100617256339507592343634864848351028717356300699202817274218637497374728399267262415389903184011569905237880690624498169317444965811416486613531249498098095730335457038625878882475815790981012689705001988428582383489559002870101182353699548736481320009356474391118450497267297849681916954726790134309553385236340462761176756146495194280905779839313066059904318335520731753620019931757594117000874303113588216265951704184869418282173804276953416047360556394394703497306324333426768332023730832815416517054613997871287161599691523901690430944266185538630911544154721766112826852331262079508881411545272133048730323220262306063984763094618772168581306900472573709605486902423111495605878530576563880909535783763049568487977076629451522065387434246239379306941855749065735822925672702827897056285332912524561370991712111115036981415783926599418662660895578669855381465508313234146050313665237180837941133702933378215043020569125402272689157251253176787789951914984331782780053130136945173308907541017991783117490041552525409272375346252306346990945142507674618329055318311175100555018894668460592883264731450605669664765211211214017920034180960927466050685220137080950465631137216098234569485302304076454413147254347337315706478669945186513449127937878907873751398826804809496834861085208753352700090808805896652584740728736707167727687345400213164835320261626620831927785933662625007053646101027112433764354769061037726857109788409654238407187034271893520408645757344304307925370574042123563451802657757913908715435703214116568454332145997396795517143775034213322093968099985150846781306208645463285665155428904385151959268539676886800057240884224486295497602644638732103348120642576635421596139812219834917645903687862306113827880599039338411511067803378844490863230920636719831604298892906266269132637823741610747175028791061904884969051231643134773091288817142262054634996266046011071476715767241194942885570822133932397391441896968503991384706006714156240293210439679561258441388184684731421959069530879489694815654740492342687038475247184168809139015596201301616562487330384640436381025538562840967894663207633670821273481145092687811330077036824426764752788022778883100419901475744293773128823620240603367918933432340782118606943329205098282895494453379787824253664066604356825579143833883119394482986693326310786007014700398476209256397773876252321971855930248821476521231582869828579882345236111137642971872761518904814202986398189770544357567911229252548986851051223611030009021318044230446001455244225950980446823420745212359100264931112423277488143206566242387031120283933620693410254874075638190317479774784793530406855712025095215612807565615978511515240957954212662918548345836186931900111214790634627985442328121293592087826103375568238167530176375057824382047542867268946057251146032755426295589954686491861734613651314892592567896686696605806250932183262967109954672204744356335318555636469599789182752479923546583656660661597640553079342148528442324864864836338040274954248798500937023095676025538580300407978831143103882352536607858511698087167582187209579470633797627640703850048339290536384911756210715159221316656783370613918732511137028659995552360029515359551990431757938851162144047609643924173270269658612605095641029302071808901407823851232340828060026118727749680673572719094305821745332268522339582494055394770490092913278574390428224721144262943953868333686478750916567680600092560029928689273105856082472388659558233303643258058028022958173750368695052830511290985635097696019604288303835817668516534171619629820248782560008162785482445224867072039798814238375689591508534157396787038303292240835563084413133110020760766272055915027898116406732153711989963001571538009369885037237120018857871501352485339821163265391232677275674204520503734557450603754835005467518362214982178002127795246168499233007698870479630281965122875271298045123510741558216923192425273911730419695656876283412181389683488624984388635064979296259461835528690234861458345672921370562053290472362593378657424102663687772356088523140467964990660859783157632177148615295648552090714012585585644359602594265502544918419486776466186731041770655970931338739901568114683613884685570388004297415841029731965925648654809574244716911629905079276231536240105141936027496518196068125824099341894158526489253780885357419931115929628884341709673855363047834703537466418405877167227626512797357291109232718133416245132262564114286530309445149630309416472554522032413536780293228491052868699454840251355980230856930560762120216111624196340957531997990461956008414402623176998823510387036893222772148353330116253139187041886878396859031763216193593314047229721049525431781423696838298121555087316676940500747211007401942459681310861474922767670367481853542868476618690862993432815347583064222859027924496408430677364027854834898526508697037437464797820481334794634908385021389161865223559305414127804188404634632553083082653791512498468592508719563755353401255593047613772174409414610397739860387788955670288024286597041171452582947738800499735843369161979922835301309249678748747743267436873187874541453366827573772830279067895122851772568303733679559207380415529214770148227015939227491488398624127955422121638845000563396454371543977906977034884447268550762438949942170466809869415529658379707834053597530631243773546363001297283396765794226448186040614436992034358754281652976175236791071600571417044105364197504268456799321318370781602742862481831828293513910817737856723101727307523805861392217169398334323774843568445718925751212485389605391560857142683913984099390106377504669009563790754848912603543072618202057850912908979330100964146885548791073144642302788543790995257328323732263397258037207963996087893451149444069390332107585699088581436463842064269552061520794783233745792849296850863545774083501480713466924270418835369048734525088885373275502262532849459642606484642988678647395444510072423230721112816167342771487124260241794516546553355206118626913223812050612680956222447914048402306566881719951583308865868053032859023667771821614986183898125736090893284938839439018403433388054651219895015681075376967172161969619379373916960624104148057326432237139470824650730267241422872666220002099549708300539871267237593491044291629888002460477867819473384680128573058803272041548155264243803644286934768623218591938455550292122031781073295118526007203399457027793568839872170753830655605495969686551853287750149885318587017447844074827138371659883460946382528409328834901951700277163482855667196710291747648519535843514096233925144048918576998531714427705904676077092185235122159744330772277071699741382111679176230352851679300339453666948067037325128568516429758892000010533189507816448120259586156065438960322500942092652678094653166869811371257437762011418620111187064390044652716845768685626989215544472631067127162054531728841580607943009755679681668115960009913547979284393823000578229075598109452422371285611431878095456450643534054274705056002909781667842904513203740848561888789837084414704763700179182032631039738750807593975971634750239404495807446443970088666703860607853191743649266789988023349883762107145899017129343307857530176187360308110471308449102064976850212918878581405832609272896333511518482847359861965596497053603024745612552315326354339001572743237527554309372933968680327113591953331184394469803558135018499209141579029305419502464662269206655680072029271480988942485985326582032529421401018173514541535640164976147031456196355686748034677344063944022781645765515511882765202905618728245178567987417887974689745868044359249671040949528358447382009236240942081368034302410447529502206670560689149685015771528072101987314213047559208501088841869686918561625371995331016125157534952363892823406609089021471494233315394559915722140352431022455099002795646102685010953514780316399575241888738243852326142829488734904568952185538259169417127823008316176893769803891324253772289707849000925243896706126773794459379233830042370342334437220726130701335578443047691722451282190878205249796929891429236922655415290271644323207818047074089262891476039222913845489446898211201376776199043380601220543137324337383995272108720534661787701753979266421928576652324107413768615296863458082980722987485427013309374794765686386423473241404743871748223149769885285479648407366086050162798047149576183008594983675237268216170799642666960354091247449043684939733302823492038034733350512980057099655369490730503097876297758819935171794755563487362206733136681051437408719639583515034909697409472291647514547837225306715026988219368335909445470566940035685299248943950897777585227795131581489047649782484529888039879939627436826021853018875800955633551482122743913722029871014520305493217608493766127290350480500855109925434083226402010900796117717833285824329900837171458671749259302970444992033957262737372285402515840953406084836698291476598607153567744396256677342673253779768254490530350287144115296149191126614976903347014576377549185586927263960666756184686540162442308289197912266922803466091940546019354947786274467666077501231869560872717899608672406561844786042044891165289301139407759928338109923568008448108664751567063090381976601667293863162403929279073166575980370202498045465181877106600136604079945079646324763553502193104314998185428090333946728510386439046767148141451651214400824409814919614854401239766099347399949932720203893847462916102006646936589553587335766829051015105923996724460233925969172038429593255639719847523386517854415627575338387298200181813548328785325189749572368248444670411797929332939572406169788204282450294950446150835909940079559311410247332947111707361396897384031792628508977481578186986547237035147208190458298643989485770153521756853431866410056469780328759310102162163154436104255896132994342236361470182452268026956828186719177641950038758715925366044573645278217179759772726006811054015239407501777312807700723965827426910632000943181872790309714515133716931913085266353194812658618795138384126427824571584662652715756635125982365109552676715125494764874618575704912875706226036825428562164929717246843520220448744131193083598372387851797174557432166455935509479100277031941909362615124617413368002366517130016968982298171042551180945489375339015375254085992442797205187616530716647254665478869570981910451476030592923376368178598806818152309282360199730804272127912483402978872836834033984206133636768324738265122568781815438595492955733544227159928007588457474501082409220599482660480875012962168727823048883078376365724151309553064589292236958763262864080762246653805711253879695451623936050269843042780988938262381392492150167791840736576918008870665789311595722835406546392422849165830836505379874270000364469450777771987915249557678878752352173473910782495621365322801047338280818577948326750692043447425003497774014099061907209057104564106130878847727670177958672739194009560133256108366352263769644991466617776972356973195863075430507508506335130407396030712047692894045156506334461875948082096022034131552267811671073192512171204789286758739728425443861703591454256340812769495496174133881071575565767912836760565437452673168114940341807593236884922953470606860736429218968642724675305796600934802120357357682992127891866024355514621745546609516824142116681422012914696802586247305509203197734480941729872248016340708320847656648158946953103625933520191015262131583365098535607481114472707130660100341633387666722995991822918140740351088451021963932954151440119702572224081934989286595232826489358203002448209828610242788137811373492610847842876554730060541418877964295271073721545863678003983957524629427439882844790413127474149682898016484119574870250564708386806334041551618766195621158143136509667424146088625285495364290236031442980372614303219888575585003649514914671637539680058151442915347026827041637893259414344780090938574522123842008786566734899710789347077671224613506335943815251714017692230296342486121475784570233461442733259987842830113787175937457382608197150959841840484142730648408680123156748864039559292495939885357684642086344506811638878222684244451672820105344048462026552805618841816455004318388943491225338563147595501628251076249435038401541552436892538286709714565589743155306895265653538742779764422756876921505700248950031472668994592564642274081345166329648217881143328132102374467050481607433317903916827750157128771806474064774062968491961884107173458813801256209397084942723353164987099908683039148431910915865766625458075232024870204705179093423737648250303802627488100666673416658576604634146745213319808509290852862133706756763058462718391279863028488340578400963117718697706497925823932747229691962830531511669708415436306123756343647728052490076977466445547982754494187686476828813340888439982411597048634873979137383878492198686389529595986252882112362672314246657429482305670648365227177524499748678663490860166504573230015468247473543508135145851537150771755417159523777986616426594341341170931228989782694565211517914441565688000652064101239891588623173244408422347032801253393114394530668420386647333029030562699582831194713101488088403644614402072273584412039741745159324999831374585311165076256937068490215213588938465791900809043774049756295989952934414970073600818001773367656769631757273295133203147887563192317718531542700244789391294362752904580794116947716591727444696223523976502310380857121786246681232815749405786475565021067082246301549451923503819701477246465065081206527324104807650327368533967641759798313842946091055617831541712410959598697464381988674252424995127769496370706170906480610414258624215935182481087625743174313681408883725695469016970268529244960910342881782757977778049452291027702596225541003032756077519521250943671028641740561779188086899001818338593086047713795168147025413066790756380171725873423042538161744301313037155467393820284348673568478688682372974747420200150562799923353516443679625465879534510463270819305141293409809469629193157713410365211163654904965687632067775411822407379614256124059406597928384332925279732801216261340409055911974304912751770522746205642059111787477617819235820336951349410838103869907054045013569938065406504867280973112094648975094862205472275681512582617986268905973156330739924938329021804217254132027884889552360917253393721859313457071234458373151983956636388013367889682307929462756568133473295566413883802900188576802965762134856004058698233492549874755931256819375900119336284837208749616290512482866256608746942462442036615991544020976550453457083982844534498274238897538382331517338231997624360187851815416588523568979359939411223575132839764542389450125685047760896455448606549847926008878574833412285679963056491624519285727598694334253065582995622400775083256574211859358928444872670454790060824192078927205018280137732699045476556776462158669830882417229285795808871259558352492385704662153856164184427292673290968811016054052543095324762198123902744272611205456095224199142487007323467303200895000907634829317311783507225035035550323384727988666511387586148296105251846761974542939261515601679070339045153028698741659885153827003074933076412167051608633001207159665717815351424427827491171526039544960556406631017901173189823031353681950990553604260575297778361811080531605883138579167088853076469252982924075263517468474393072024025166735464790806301480160248448871659339069971610918806781421291458634804418683300097569762652399609154775921630779779183112040673843912954627155758945896785078321609321500360503778699338458701352167281444930797672050260274657934761920555958374429298289708879136548572553877746724801423424111508225156138103599871037446437556735815688184536566134124994581876380542442403732219128236211951797606781434906408729744088614842268217933103137693792012149927945427973806097003215126045457370710049640216771698440439934234130353124861633888246439320670284877119803950646604805447914208778469492025929540078773536924630231162977361519911831428096429753573231431614221689035970051666329690389718979752084190392769048605539556205907100609549704410446571350481466857820734194700628269492530929856369724933684622720247885939686627518675856216863590205385788242938870963073527910223825632032622143251694779760752725262552999907543028809617478715233374534294049851647529769361795617621804254561765456968744077891078499689275124776277428385029079979953528732311107920528177553288549015653551462643646930394659368838641594021777835103713166056112087490165647341858582980775597559848084521682856288822795785597860570874987716315516496359020733415017569901783344286016328699733322859648192554427626294398622316286175390879548528311271915929941545023158515994684467106453229699096887147674289511356235060599284676047359229497250553922172135256044967323990694721274799169684207551026586600396263317695332364590211656308273240369159563827820195879068073152943772738333066092470275765515522330726659788961402847888486017036074523097081033666469746453047435011087748681281516378534725956674916519782200201766041158451132649111170032799733746365155155731543514979977292168554563194751724944926662234538049618907536252971355028792848823031081516146057847973971392728269267135135860141274348953695853980968058096356461922375001155807290917294578040831434568792092507400470008001047812074141332590412013411580411562071177716951709597664588764901030915330861075695422162436213146011439614189845730275428316564501296892102316903933559228651283384476469800276794187336144557655401353647847029599928162199103592506990015252606139616045849616415603289002067481069288051113345053805756409115058070456938869111694461766496260338526223201124772985304365256202402720645518911570946836997754563720734336353067246078735243654648395150952491154535838517959350635088414660223214214989492464386005802817637175127255159959807563693336961503098108708024496651357648942346104200021716402621421788540920316888817000920843745500641550483615866140435071885443886983905706999441840766574885454366843348360946876316786673426246418916642484464016977681962053746322284749468928570801436330086147983489961917773882252868911997113408137094967228651388214401762010369420971977214447740576485713733668440912819085759176976095377104933946622122105690718223994086779147410202845580919119468258910851815226324246019695574086529582678999467810566182369284027313188839910305725807584951602785441682671363258698171450253762380087110435445450765214069289617335419012773844250710930785135981870252120614816978074694200511998781905358704982991795597090166256788174674292609899911663952459460936617350859676260071817625177474195907618679157212641396576378739840371348373048526661478045544158468616405860003152520973422333589485244428044027979592205364887608788649603590436945008120550043139255135911398197705714731823950411138317674315574367769824463894997825960846898844147528346435645554304092758505556150955659478626491337838174010914317418645681851298012033089530002207703657171587176848259968649262155305249592402623131124569197698767242913244422570592776557155031264246372002751476648122143510615931121503175624911007246575747657141330416537700449714539451413057402059332403174609350927356393844304653316437376854508194551766906696711101290583277089529838568684408449076283944304137417258534449334175809038478634105413036849117431068727749862426388530481509560869668934161306228295975106151402136275573703526899834397982313272113934446087486821716210133216953539702319719324073037295203678766664268525467033339371103487228485886593303305000296960230358701819033921049855536516444161214632117854783909867325626803949221998868354726159044845410755972311611751340853436788204206144374110132567376776786031919670253573219694783605581650749657643412123956477509059925096188527054943034451953832464478283467441909043648600129119589190023982827589323597501131457216964519489947717626226864714894609325010231004886779103167518242869415482274025026600031316867692259064172175906419047103761981237667549686731580992067942748499216756072127280707065409669735440070093464038195371080124235502504578904044839809270482182601791338637857692302070404375317019111571755805108624990019186647270344698513308864563725632445990092056272541335957473570661262177974282952523078868808930988425641381108817265989538850156786922661791119907298882787590264364263620640535978486841631139983566828749234514288027421575228300163246953283133221095308707063560236953066756333416155988383398252974099810839705721878074936818855127788384969053470102345632819724089643702113721410122663028102221715500016233289521113224101347672029844362558507516896895121123663880365197407192499069869694133923423655278444439303586346650784441922280576741426198467966099772545058719060370770320021324948850565295085355613903392906243941151985179997900009757838156253626305198460168624030389895767114615908578189413867492395767255351198290620345545688871725198915876856999424656040718461500745216672080668356922054409428518700182226189501159388067414598083795621338465547731542917359768540966422931884416927338293772857919212753488142774792604177431949753865200924592611435430473512720241971958751737236418464301892110093943978820925292240480249487424079441838085824244156212043771351213490463859569489360450798634603032581047569795185092141523514226723142065720099563773303170566240819191554741599890935793099719825921096406195243682843210703342082107494525624486632878301502696557397145482506868188098670690434368940497040269542634092769135162743005318620701853809468395956968479139280683283516739985595223410880621706679323353007036208590329593797906778411518495022576313584638183807776905507950626729431168915277227440751651942901837646450470460254675699863099466436310360298548199533633416590039980757396374548907515871973095719079710881360111521434192423675383359194617629547627413860901876605729382252128295489627044486170299156467851051099826029035743457355192879218956766984699328952299345368946124878062315582170984000985802974716173878084774650805577704207338680501348888011686573878990404762306680860599311696013898600806609715747815311843527699548594702585001265250812623518227223469210833185251615218717692876685301963609047252302012505501310608789482624444566685530865876785683903014725284849989643403103040586410547271070121219609049091974617628809908159085270968112752923968741470703748327465656119568689001259859394324163680899516336593171493454214467287084746526881556008061571759399364090533193747205761867721121051347783674995184015477153641356788868039600528884585681682120141128820651432860092273799525690929003698057832463703494212808545525131422903200255530218919302989663213076337419424228996447723102077053583616790783380065391186042653606150573484788325982786997154117712544715203774753276767083886961593058503778777094831308279980856653356991469543133213805769978783413374653937698794699668766005669033357323513063841279491059598691848838036935264596018617197938182481349800102044102532954702638171643294935619320283762683262163608510769412815880476042461764830891801848343682444192317417422187546391611318149256317990527758293075272237100623265221594599871365917962143638117429885850432558428988260032143892773221533476088270884573639990805784796953385037122421185004960059618685842547008012139462553111755532111743927521808026188856122534463450257970366026208129806680778184203685393361940764719708294751785636967336716851339026299526753717584765089301638204367555462662909581621280523906007584924073071074140119584767643840950977000487729151025855231458237266279684779513807120148173024986460335844154059326823643820295713546424098237172755114227178743505831418095722185480064426483335707789485233311170247929449214724973161739537444616111437247066776536712538856458254625073447043573327412155675807348004850196221186175874396167089790231508856155821136729561499982513401403768759340653853455127755159757355487346947794117390697282275983252651181055892142590059730833988651002026411294784675690701451914770729061845076986103157563719810514900554023411696999397026780724682955444268693202705135855443120226650246515161605161707758798332570400103997518770751215229338292787896895822779137914529761705768313495091902669280777851366849468770355368621486336557343885131438001303288927845992464113343707219469528845878326637171108666389848336405154930235626612899637953196660037866760746030117831867833091890028387910236153733165470597192021840879384504280712740509394531566879503648661408220260743283268936709135118914182605790956725716577370560913125807586414731349200883549715839174579030266741826833841972899490968186421134346639968741854871711850675386863670482647200986935815352040562900041102516468796669054644004230708724089522489245113961581818239009998988399966999604550328590805450493599276264131422840657246724893213701644240782811411528081322226559544259469405509983439281477562452893728825803050804000794662536864655526652429545605732411184678525566141129061575704185219442046773733686430478673002174495907849570843075890138184018112418784511068680523818442641434656015512141091701414672336760706664777682523346782819974068060668200484054280130388937400424253502906183337173926415846131862044734372265256345564668159545596431655001606069330629288350520069630820792517852652427176501002464016504622420088495502111492849384800492289267202249428274892859013563509982750293301030756162829053110713695294175308680147042370508509819200554420210785039545387150901150174088742042339273192056253726996223345356104869424787261144111508459316780809147461235419811847557769224640172577546836238965717310339976909730100237853257949834531064917828507143902427467574298349550845031575825896000606763179682978587556837715497617884435301019025426574053454957026672427430301183099530848513632250664604356891819391786595196809514805558879350269931472883075385900767947211766117327921118055998585449587999628158200000971386887482447182774559203281635807677871655494858691143757192537238192405749217645276345280123695155173751882830223883439478132331828312030411123332015981604209639145317392343921463134363289846907459825213703923886506985179496736987577071479369973913640455181169380328008925662097306924586515029077686240086783749728360828946505572694639638242636698302048356652374096898987140155840296633891128548852998096932634581338510383888945875176346737309800907293749254589581316864941744230757567119137841379444482387250029736963173695661046356176924834029852819336969996336065441853719195878864563673911298845606176553864662020948134896288350144461372527021053761542852451324295388184859195285158839487699497773142326121996956869312596449731668656068696530422085004810706386137520694108934103658147982383454109317748986544475228135007301781093121474933964896097758764745868083928945533018861472214186645805963593625585146338855077818203257742183039446807072655602951162744846727676555406861727065270087925909645541878662909064062465901373052366228123131816771558843389918844125707467631931811040158005981699255398345313709579752243661431481169308466860618802125444548752557236641096482412753812925440095412090727208182409480309081093055307412106121929011547673680486834850798963681663447432272767071848776394077997688814574994763576354328686651420179604577817125935556330342546895708861401395053321937839080916580271503586575979163821249209907285118164335247399006439557638283420000442195937265610713390195305639875861544591153569516175903341540391082839564375029294331229998095509058722134555703321427588403488215734039281950106558134149208736978087587202375073154238291400513846260588608679398916347703947832983823155849056906916336820464801586605867975655840236391456229276245700701281911836716400977179722624472581279432595227270977076127972353641349654532362820955104638298449950786659346987156512869616425454891946053332316908698020818442321343623390802959568310671687086303766832695633983485780147179789363542693634138610115427318780995916062527558992940933692297787239979557732408537533909533908260898968791827651425523223781118940253333496573882560815412065038335572919914350242886532618472316885097169466084691201468992537160513279995362215524802697924101416042207413820533552939236886438490174512277476246447063208543998474883497871347543056486639517978031006587433801190830095126065163321773995916553627868155652166430111200468431192769681574711938011257282117402539933176760514211585832798850968656518028337874110411334136356466898417798769527365366634352421801214123276275303951186713953774741120798859864784300675520069878417833304645169269305045993331163149276461173550349298142348264938184516192564155148848478152356204403292066554738514342297286953074662271534867105173480319316209946201409763308101920214175708644474766957477148276588171136521725844334674173432696358422546211404867510122351197121786854527622446941306380947264982011035848896332273440113913085648267355156539772429894352638082978064733930165903189844775742626866730377261319664865987992992008638389617053680970426670409627113752164072870231473187989487218532288688050026457136088929248610428289630106166842063003899432425569380275225393746856294390711136720926953580405097609157129159649934693018185242376079987148398823842197869020100765586678681555825869170399341186889917823176499233364551345894407936342345108168764603425489398169412782815512399982808260629774486745050840302668118374720188869030087443863264058606305656359762942601607425707698331474654864975594285413570423095320479367835152061169935250784099073158759261139341549338500848684246179207710249903361973055796737888754209937760669106077106667039624736823256370948325674838819816333506224131582825944613473937281102909135553831578002845360357796889904221947949076009621678556511921540866442810523370415608457843251369846900226669806295598852044477840882732150263199393335929207157238131085046319919796254081365909201192072175546556614670483257164835352312657040735337095226246797179917366740288272485233710134499092262130631569673723548604626607872620673591529378992776954105897111672695442858363451635599307070393539700691243144738925920644874638417916111068950147306616933002007198365631150704079361912029573097255593603953526248437085337834085967216246216035331071895090984209836730127891775293279342336843550326406709034165928156315799340344861716076272963355558548236887155703392774829783066153152289172867679574381520367914362313420840815723647040933909849794708788621288375569607330052605266756846362935351154059828682908339395369440297002728221011710423201380084458852071212723535393333074780282171003118150506264431694445378657555243438076063702395467915358840321567447336655498315152834303144020470115778743743198689875213541477514534670385077241674214941413291439595217124647099718336867959192839454616980510531845243554079816153859208988860444884357337373477856556417212229191147249799966329517871108295913499858308747511987305863451543084087628720966358926175310402771506654021147706225751216177494581704939206624898588298937779079285568903497591497749159700215059170812103799099193647048031317916487528329007708787601993502554654076563536840577944984060378948118420435528128720643370768798504382697418160084547799217860570505311938083333489829759141110850398234497660228811111142947856105831140288401556547589109373446099409263919168790342372011390998514354370006133966643192195966515548696110016485728510762809190896817402839546504101203325657676679616129582608496543203421974877425435155246412727453052524474304629217423454832666305158265860769544030157395076649081108170759815377217253791456570334231654377350112864269496045440279185733734408421059458054024046519698703971201013218712776527410962139668793886363870626486820037902672522543086471523361371029111419545942256737790978118840170273313536935215376647134177191555475242956003298753531340025236727402051054526493883194077224095857287998437346220025893659989998519955891951370115482981355897568314962401849656989102015969985638627199323205526640675495915365987487559521751563460169512837128147693789744342872770659008181726979828216935119379745918446864243024708070072423405891613399051081328485456491742826433755163360364323864468365677713942458140262111068350833456360529539740861236033482076045943875732113276994692306941838422914456526375993556553649676710439435794039106710032009291248066400652662213847997239581891838526234975062174457248471957674640076524317388974824766188059401276876839502373758575284546212522896381767193236037448089340530395745832039699026327385816246260399980947421674873142591617038308264027405378442963456702919356855065427172254282287975005287039835577150555142055792614575717964486099870153979536221290489255315006739600620092248538507394456965088806221486480670353078113246616937155973490638972979742876203077850625610433351504971756072012946801729322488620486251366235260120807062570739774092973723086506298650326663112390865950082481638600060833200912570837587799760218415511709718443369842446079874647400247529065759395369906130430800013858754948508933313206719250908440324648065575547469794755694908418318405543185380498176599735592724751410128848172826563597799139751265079947327819066544186864172540102098157847922222205200056926725276018970053438891899912458343586196805124029738084400735678818542620821660681744124056653260543658961594228045883337269608808809113606803856915318809715239326275579387491199531114370278691779406957711386166251553732594143550017813095985949504926123787386302692130914584127341621817610031147101449760369310411195807381685350804991937252970580834672089032937758047750957350454165522080861056297013146795168801891364091368969099378270888096717151522115807131990893505442329263481480710020049324618575211924615739661991493276551397363751262196494486840236520331758294280378578157553070272710000274674151101506834084602884852601568611552277123228747798883726088333229417604241648787009585706370745598331939759550384384626519164824147615660376921832046762072850424179152764937418501169824944669409257667001133905481885943616107138806746884146437280173457049671500249358601072259136995866633643531398708941036899970687502392092676560404422360095197722233281523825121218293518547609484494461684690414335992787017953784290353187765409821114291099941025566139634198865324499764712186135057737986358006758876219759842479044383299697606216830128602294731614304333313851981606779945618491027725677224414815899801453095954808322498113984006922166659430361208638590289881514737628121739316003166447651968638655217563002538788711845762606429793574629406584423596636155440027423695824683671967684664275550127235950015753591045971821171920826267128329066029901153529848695146061132595912117745352396144518288668922747687984378696270830215535330284503403084097882946702136619612438757635695217643417274501944374406870312860431868443286341568506083816450843892409338331673507356298027702337229425969628301550442408911299668812549062616011601024699866431811476510051420571729096962546274965194885014876331891585027830666700705811585400248167014673221266783458905570427487364599523289247873626118931841815750497300392436658144558460911100445760423058434316011457255098643927811780191191427564372537964385494590594115243113677959995823501985373869964373090840098589070696385125723255178775279242735023582746515169520509572756526893067798514094491003294833554272368652126705020771759499597511044576280365959920207498927512687297589994507722773754739911887836420606527677952946271410417738259072227652311241941019187762716056727493465377071356882180834817981843136907101209648223557815669698850598711634073438769898732923113913271114125241644203609028242662270713545585606915368745732992195292505768622831793049273201359900314897336504855247106805986870110830386500680362711275435339408184915493138025508940894041132008488363545163318849463295766462499993847932980750791276566000317154288300870401884266488244249756128514760518407543270181955135806359493196965501209293546789569509969655375051454632513790513690485448103895895239666726467267805483594876024297948948381822130202812867207297876345312451130945060422293006850317590477732091664268280803279675647380585004909522520359876602931730696280482942856806702339994390361761902914752078283411392636328666694169177093413824679886590676228645570619687050518521751838537087104262705009774316728419669545921133615927660027385544092583046520316940957551314554872291286050217894805910490092144067726863809501714090918349375627755122110295969507598102941684438675441600498572804823821569040052144939583815527464784437243065706410562059052795026821647335732227695257837186806130648306132881650609213953123433138923398293482611689515195356627891766104840565858124452419082496351574392511449229362090017287602969739205655905544350347588198882963020905942690069268252531959635094273383810692210031162216924722392017024114190154561722807687141252725407722690991735623584298813905488783863576636306552713624871663214882826912848961657460872391355229829606563252655760575777556909951958161534192862784984970884356712420749227962814357750868951695196811110628475521419310437942919836407701023710942318116234080735033605732203698723800704350247668284251842495655296066552928560289934432426746960251652836090138209894372520028372418758310834567283589403178951981395408458318386101633957089896926973592966674566148255979598036105331533222939079855647321791819791445310311359447723059148861168808602352906392541695694888178447897663206971266058910126460383224822163273573156360353338018878748903591905936685534602995087041298195737804682695241284479785068812103148810796593648961505948003111847794787158190374960757829307435022573340955793582467627557941703360912978210274902715065380751261827872911007382030940878642689787160988622709628108745870391438210435887478275123130820011648108708580202782005789879887458246909055479273297842680425322079905240815769269039134819108176527269729446024030619926587183867785873719912209004737599020476171534930255980629000465050063865101360905059415157260341298202535213194271608340060263093074903003252409171856845660805295890767635768977882395832130090217849889713528019615273802176545500409965909921328695398835111069019918782751870825302816733365574538549550225203440861265140053995302128346638380723522498507750654259194620072288082636566424339111657372000084753100358982426033292748545071303361927957720462606213944263285170831862770110164206579746985272676235544127755309072209488471220640985647157297723580705387707006200888994568535212761889383618624787465318889516531043309881222034235799221340955644545457569213099009052535075583851071291378280372473774819734072975832814893831578420629022842006379769487501980373714564758279373445722012919929137829704452391023330206054747034419152549882282628809440909117820627412125827471100239030937266625635943381396549759051847370919003393640156026284858641360764865882952644371700517323482995492761038066501248080386402180423990996588996989610200472695480685553123768711430474520025259749650522096500295151125017746770967332974336143598016844139296345564608951858707561525260654820527433134259212603576389374394284349753022565807250534627575373312532809611919094792367877419619165707468854880145436403593526871202452883806136712334717607565095082977852225911454441081942469627608800692790994700048184033711532725040540057058315166439729957831356318414131184153403730421661338711903475204472686576603736735200825520018596732873007092038825465793985878024440570104749841796214800609716825483846495965022365739670701820708341851521565084767983663081651723417606697937239436214937093634276847757249298512956348030821029374238317130953997674291110874024314044932344459202562195949439949233266769924429860827985990187256363727211554862228896422462302030977998749018991679821781845903293930501225347940840544506989021458303511564097240177322836371874687862305552533173024552723393888914794130684226025464280899976488744616504541328260642743656710523772323304273088523834993534722448117034620837779166289837444309087546362800188957784477292369756213398412060823355192686265656693311507029640199481976961506279416906752389434359829433031739473687036595868790810264226165845862033957307327397436340204258658599319879640469808085226592886590845816927929140039636481074109296693123720599065249721859399797765306007471187528792971066321447335293475953833648882735542051480043626094762141573671419798323796625940475207896517791495417521555282229309502730984778783875838591308604935920975139615323810191905674849488126483454503459035257779755799080147503424905404323761485103955034985687644492843363079138090394055654385623793855510735621532429771560291657704052599377107923211891545464547021809844661455721652380399183429076829394389936685363311430446837047802787691087730843880923126702805275719378637962821722722839742414705286744332162469687001167782445896890074142169416513310173639431172690238273988229429403188750658191172368549125238473395364173065659910446661828615395993386542268297372175408412006336103082036799262211411590745195605960264645128280639683053344567809566921952811102387281898045576830033373216757334231129100103285642105005168272895603379309361441063674080901664607271764790337940325194659513831263131549487064294569748987854263848822958493403469682444884670746425241842866946425848893483897056457033706279108446040555267522248301787130520557846734170910362437811262605959108477812802754976885337876513967378110409588962323846746691654161588141724743881236350356937363863296659818297568790471316452469152155431270729690953278959234131783694923168524446271459565777514531166077514769689173260596494934995263091786500058214890276780824642917712371588184358408666911427739060302711979012924263025973740045347213751540220547258992996393578655073171294107549175038850727346731213507103979393803942334195139094868971254515616796988508294865776009208484504315918490262901046973121360779675639268495769249636910051411661222538537905972044630349872911572218364848160158270172347982294614864569522101973102284908492510998164173355067406382101348562158286467238614137221213108405994565046285867924975844239287665111061288293558771933586492268781621304563959396030519719964713368378351719936428674122164487682075639909923941665524472886839008806314897619861167354705059543252108608643587401743831013075381839043870678729545338059002547261067654189924315068456792777536965745508982259187467764817198583326821790865522362672238570707267356503904264420557563917601507220735644974699542687067357881901344308923669717378293540978689055221398078045223316482751565710957395521956770540361809484530321900181833913657942780174342202706598848381268405658496599175540197977186812951519340140634142653552190648536603326113234847131991203137535802980064903332211322945409416914524472425963392809843904651590610395961378891336648256078208207626437060152236371777037739475098995987230468676193478307029948077180110812747224632300065751524747882346667501710448906357746390645934040015199205247351574874985850015390711751973655029054680268227687360754702052484686042434763878575729479642094614895511454921905337842022082974823069964307602500249907644837640476784391038347318912857624895621764250257068465609694953948867066760998468259137692886241854106401131680328905903908612859650175491168201390482085717623880711973922968926757030709288323524023124913933101636240924989803841561947387523904142725250281209131782979756299886209629744201569755380548686284429342818385761698812876562648465631468435780925930958103057249446336073980374311698725412767905078123679434607429260172411410478356032639794522718784295644776842029308319238669384055067912473135370673299604307829954653185988724230815133728596213346572467998682057340766726091716133102863219409720127672861417632532613617262913968903490790700237150556757584209077066988706974156779088571988316404542165791418965566961927141437633266586399400602108462049293854109928774173720733965949588415581403877538838537804883374909427137835685692283433573938732901350253531478188224487822554204620772248746994559750006544637272110035359207169538665768867019515208093122561097174570116283432208578225277296536072835304471475454671723708606482140169110500668663761826116916897216135907629294722751376429923868483307734029552335646872490547351756524554633236434827075470658407562868335980228256136710388839070486778077973182280987896088651943264895822725652956342109739149658833564127195850746389139745096699492628237702529427846621943737917674427543399360120300717448173165388256197803809496701621663189989908649558153223186157314425018968440627060464492532801306485070004583041993448931941262708584606446383322388442137094338870827657679085299645756463911917923000608513285465922496999242260206373130579456253574974111649081233715437909074101174626713353287012768158819113794859608931221448923650026872902691707192293541689775466378303916625757435334047427438924171026308122647187748197103751413853315160779312640779530506028231188786196852618406059439145169819117742687917495379496391479264838138836530210111259566346744702762081078499275857735714674890874281350376730435592481685095899295966141586473763726762260191991089671392016491003776266140741204889899821589701792886092323076308317988194950429266287870342941125871592321259168393134679171440992405543211852468446661674355776502261441179692466904666088899408324349442557424111398399575799180262376396135433682836590578016617524396937269370088208958216965362103388897688221668716163020275066962044131837534720709236206202589218393136089349327225090296806975499331010398705808215610221145471821829357103081512393958583380038965642939326333285344461836745402903906320374827175846976538488365972247428978750919732327605334400126678343966887925134748072370017338185782606138528850019643386142157225281523375792934447133820461732926071280475312883943554661723454672375234858363882889586400598947329687864829314134352347501891930855729985108668861454842400953959678225668680734934297553238862205761264663278513975593165840828466424980969349859168303374397325807534012176838334490234081845899713019311553093874058633715222335732775928508734595791056436593165932054824664662091431625018535226268662697368962690071891649639622700943787149026601214889899824069389233333644729028153142052768501317478486302516854721599137260787254531204381252034347647099335061728840731265434201426055078571121981781796243814821583369333100163071192788468380043541197502116800472910302203454264581674773847247990157890150694297785392768269636777126212160992642177805591404700865620307802298630549204705757752568364418911605922416640938284005696073342932437818545066558119880687741467475194070382819264366203733685868005191102258879610374368029447945433487293632394924761692832715694766741127996921878407025846315909113853784111127544590926812891612318153216185634573781029915262648098741388007936012362272458842737540344790113339568495889766290604088824986559481810237137748475856157760355978035240970719875044200331653545514713678452934005717416774705726282885864578222066697258004288299715083199680281711685554855339407903539513701021020642617219925734098848556492935447362044099660062411466556627803990361918938394188732842226268524277071102891411233655451298322365121735867705720254985668389619001970159007510090816565443141482761382509521009799333078982992042709204280944574727048081328961161702692638617203128731921758439424172921179733184319326404347437873347578953586191464468933553729094147514034812744017626378497708497701032443016175926078744433339166422360499805205047008059820460957214540286757495555249563113943386230745152621448454703847823299856246312726529066828685563561942494328373288280761822205589588243453581915041418312827304541400971433409345455828297472230836474152406853797833049943222138018068316119576828789874188604603242424886788340010961389830725526692430214527923964330930001298666345558608910277151572719599639528394678506476624203487653662698208412918302854541423912007697415269760915910483642657022891098472560108347015853151879516741341476517498984486526185769033041443210205395306633373339769714801268879376413425597476900213997905158791589909402093389136313116256340076590024451937241154433746955483063786645546913897996655369212345663791487829656246707753031197882186453673353329025300866707143612076949130762122452115240649927019620736013752234441974944491948919357099169632606738130440403962346522781873717064474704130369042329072352436345979939056960526619542404696916187077809232908695448232141783566729729648179240539113682945433692709037664752323480044745085195223900375771384142930204177878557911443808257446772741479976074639461670783622891960567531891393408813616618601945122772187217251567494129113037428562564348807128410322616547166886411834792908764040183269537263508418000997603615574984792744449801502905511046389850588681094036924956665544090898480159177049680609381253747626921630210173502835932255515878677233628480728795674255588403510631529252351139380065275350740220164827854100940781905192948255793479029399588113686440611557492979251351606285189445823034681585110426367039433020755528290456349717088308333536328931591483533742808549487746956671428892360892343230720795389836527269642845391543799829724079660333719242121006057229673890690462470871543217466173332765090292713134438173737406077602347102061062671258510239584524055398821295848104807044982170120220167577300173219938830462580591755133584758303294873685372690869133803798605033630974799934030441447052815167305700287405796169650521061297170472586261610243957961126723709280933465811531963943652430516539140578021083690062802054293333796891368276015648542645564235493168520612094003351864966324892873912016444876864610301462314584032013752582168929421532898211113700906719614525894678997655062662313940082174598283742037135703905225246907420741285537122901982434686281591765449195667694081161429627639248353723328261912456156862369562138434911500873282131051382906662767374382805753424405835985814800552907882870614048917155115147872668452797134542825938851953169728498764063825368214256608523422655061972641982445291635266133311536509406406591274142874207483816288565518284174394801391617939121173797293458286622503787249935144481127705539193358717054406712290887316434233319667147324430188551355531881393643480796880616222370049382599412874731872115164407000377466299082284868276858944171492460644263807418219476410932339277018786817242628169088926029070837588759415484054218155008769458409732229226080370405056795752438976584023190449609200770093914012462728479140627246942846782349069087666148633866720640193346082238661398907340407961646615830761973657811959154396600803251335511072876073179971257884746944586766080736307904601585806992420219888632209659038116504416405942962620069629042254286277232021355844521233369902397215770144031709541506571251422464619947475074240947942171664233466446049556596271365490438365972760947359009916864479400288924418111501109270377261840933247593642660281674011590557026268135232062109632279376648178181236164137187500328205916081430363869201941643403286566619896237354936439323622436774683120528648076297337610595357618741289108582132233275080557020832689952940960670237771962538411685180840288347587988847331654766959440792421085317208615845861734130708108654271939730104552740122005042950967693718364247639202410681699744901695310613392929264129567266247039556354118948920203192906619002998547447528430731872756922270177849937721867522808628862350830927220478431879291589328877079657637379570551111996652604375779989684526573474057874408301643899486679648610427233178441106935700868321210356070819459405290781621951686607476835721559112935008654519290581129606459227781796330816503489948077203901263600683727012768160640394222740135618006789164689957077315468233065198198400561269489174383447379526052696138281681889089796172174155533118159499998653197780568131183017875689062907683661863595946110546151967271507990503499265585447236240662531144671402639315665536229500833543445491817955124380283778714468929008506319030145850455269470224264610628512278096001137572496464914258860157754504511650662036209696208012607073595514121667339069637231634405192212922962298550861822950393923720172416201409863469293830740288569170653852799624842942391919613343871925553754386642187241634048255673401182955460023126588045585825913623506873227320760672470388184429236736573228060397282374310643736542473447574095029723992549165071267628937568226705167366459149054833517218313975785400994986888487235088504932064524546391017375129621667968232651474917045504254449893237898391800936433622034522698528279297839566113662181901666840647894358106392165436823009522200716777800675375582199681514598422750626008193698132466178983608054428582509613560631196105460355787762594316425598001265623341609702955125863129477046272841279160668418391336054630223267283793158861102335008643265484633624613002102712172111854890914395138940037795695234923929450176278202503613234908125154677306528718768871328035914916841387043573826519460397616128512872114894931391048330466520143989336759664214940874040747143811587317522056786149536052708891380556436473306222694286229117012887452899599736603286232435426061682272801473118394259166638642080443045526485913078154415718810174080747715480425847258414308011944500460502981577532687232687417473382824448331814161777088276440041219317534882004250643036816370087361231984482517776993342814925973133980962734455925248015499304610035627361788170379129161342216754031765309744716547588557106702090500826524108568646319066603207116784267187829388578095857312000484303057815016362684530524479241321256365875480012043259632988093822222932937650386484272708395520178941131004354521345578188442302835763229213228104118159600642085646788248678717745948949375274772542319770754922649301003462091762178594813096909759073261318481765139515868711890218370342046069966936973372811253543158323492394823420145835807538451092197758020208185493373009260102250269721394078618338895223072662724786790033406333150093842716378083240658757961641106418830786078872001186236003239204257518933840483098888068771342801051916692072259304400448900348704009463122653744011012589061999931302347655413296941599781056658165295044180751236503649104565372650953775871626672736006831077974269681803703447001699953408861449902250597157002598111690042853690291069562457708752157067535822672499358038779198520018320900353103795383439165254538931115611738567684481873629716205460362652553350563697194243142958560392124958744706188787436079882702998908684170898342974028054505780392797600570867185042555837699556817691452192390045846056255975631333553844874569254486535023550339717789720230586920128299582810030792227590014189709812311867427323167843318375703671297011361780712461766683538756236436066144937925013950084002296943110994170256514542844037956886149122436104714863359171229917582672310962128616876725786001018320049284125496640362804049282116495506120725648817294694140436298632358201331917624547941000256741428299967177186238001730778875235552380339940489773838045527670796032117162605562089581593519294303429531869594444515195411550012549883053875898900135127116119199787508638783977389575064519611730209794993631071578916974920034685328200782474066611044861371246759491962502129752483122390259530651320278888000230859264018204061401411150530424495116532290975054683924497329839247276388329279780278983051747716340411253996089730258178782339778838710472216177090662691293629887608331372911858081096264842386216660243222758626578300116514342022263118402002286290304315150277481481514947494464675434024058534467272509268342655944764445286463179366798248439397612165330887596205049721031588684897516822723433061739113023030119730294680098426530352542092294565475661618820634179244912499171850550369329807898034003862811588625783452305508056037021771700690871118318278500135995248260184095056374689013785894433652893354965688268792570756337998004014041959818101905711136027432695004584266697140232171023268892128994023946689247473676742876495008858060893094480984067543089822606236360144612496539255755164136960241796664528153494878753004254995336001916040396719088451663437224245793981030969342580976093070161600215258285862545063428039509684397168665630468018177288023080811977461471569530671773681320848451017177797748775757577621895781192940482181044113227596264042040201842105680957186049172213582141850798225749656853100725066705429939038323862083025350955811031545222876881881984973484298081160608456028960565566408380162982507952460639073075438754582847855325040882599963618905349571568847453122183034597852812811334907453293341278054197423051159248860739201324493878091177076725955569246125566186437501433077004567392236860645913358125400299548664197527803614233564977968226522842721527567122430697246916307192971396688703453395465941643021545561208582452603178443275747469654753991260809291389440107384484520992785437189071692278092054549780954170124270663849914807013928222130860296516650149343126490306418341806911017092111723455242649036732956438798011389186833547322671770504523292693964809201683627895222314986712484301217839016957005129364539088779877781134856510195899014242814392508171305588750960875566227433953861774088004032946052044142571449381457997185427424692203258843415223840684510002796248896613253113935688101857005663570070472842832203415051755333063802464932210702679982596609051643608935267254628514561797224457320051156688370352776134192196575682842423276826542799720016395973552703170016333141680614660325030167408939279795492694898114787544980225975889825608893883870455740918937471885129129894833658298406109465886832409215377255141698121631420320619483278343026421760154101030728632586045064686465906160836211408137937519146854822355166959693801967107521615800955461387318503843517945359273307430650250121954115449144449431759136921857102772684515239257396411911085884294748508278909640119436161754934047606841881252583270210310746124943318129784770945249840816192889558386729153367605913875264832150924789408474203861266749589758931060498353328681677914790350897786687472942336712984136306629419322993529653458369553941040911577242641537295555936758520292029366166759600794812002131814744706807063505351575785901201038341450437960034405551753743923039370383446773333537340585334195432710271158653348820725703354537908573837520689236388316652223169236717738789160829075419798363660612227657257709292874356690867319082430567511005275441475373029178570690019610330360096057401160945435210906767074664002627216382496413267246835741204412041723776787229313131497777402328817120029344087113051555578052051020404881229858420720205737327528911377732114236602698958375372343551495793619870406829720746737869191216099807728041253589209609167151346602890133373274915643919614334337402874973781049836411927088349342208164173167941623223356721297279501384382557193703597045124904021178995819652500793258211999061392908655482370441166831685881776847204884858332870041989062437706288945035153010496473920279673897724598050146422986220898292829871917626494019983878121460406004922193419942801356383218545991595902570198585747587083193991283534087948484673375616057610160797586958015911683323505710352315417876580182334692132824153152427371359436150353737976093996525675159593103982789929321697217590345100196572714780033964688688121995497702875643072825911021440625977636684678908870792623572303209846723228446838116191924697226328029450010300062823670252590835204002653914283038872402921938417261467285093189730912140945585200793832143039308707728071723210158848774414438070367671526547227046386099555858059755404342190717338681087054809421627465152597990118630666094918974684785181169277332517726469191877349371657937264051505712017836703331179683687684622582833443962286049486010915497201839840120496425638402783481908188528002659269883736834711064381107816678735596351029055184921408466304685081197235778890293427627819073463800026150509280311075842382701506807150128258574921248469698456863373164910291999858048470661823069579709825968633536224840917790170850614709139200557732008722699193434756370301423827578405373903130497215439551457095200618177122038054729078429817603578095414274887383811037234196004121929335991425305200398082678849309347544517919137156558727759243150899886257581900058439427289085764639043336069129617256038891197701214845663862717541543892730240969701982259334251557401799776222837730747810788783468676161430936961416134816788072497528717380087698901010291877377008667583479310569183992701824426385498520722073394328938929442903280674362890048385332489516373395004040340151379284633959648692440185676643272770331311370920470497619465595584828061296121240118209909313980945077703762385589242606263119578421963994579710176832633645680625081260948429281890511900270494010219532200000703996074312844987992912754952144336515478969598854796944757658889839497289815674729418308577349373179776398939338986816758369633469458533182092276837637374373676630690941512541485488985461577455025560128880710267637209592707197019120780144289513325330931524821892144587574681243506241103469594933123431084474995284422085864686164561600051871875415544224554429158444806876177659342971998951508637829837455222200770596900042772526641674258042637670407119499661511552260810821152269811077359339281938031976828097219994483371566813981796749660318526647580437549251821481772580602767862790323660504193035771275383114881226120066489556319055348203471264136236377822784735343197753239551265489253930808350861613253399555427349810808492683658165417385102456544860740510258658759613942338971288552540102564482646884231801863645681699238123782723220351214936389605921286876186736478035935836705832965834748763921687338280365897335134785369088234745028010833450459630960040014940636806354111948499829994812410549241919381164569640630560707415866554064247036921315407600099404544839738826013153292096466554981403805461584012875178835764247152713085473734637093127150589820079018651119401281407820407106192397455553233363895892624928531319780843496442984109915690196456080976635775205363232566845213039362355290577986071177627668452810360352858479962429749351754461674210606095032407282999157960454732833585785445554091063770820245364096847925550943820193457237809610396328124464676873458100599282556105301873786703766198848527785593512305903021113461773622154325203480243500069901682987616283571627024908792932803537377101092852195126911023452523638108413490056514025579288181862195411426731724218142096205329644417717861710708776141674573967982609555674069182318675543279566454962856262534426076716700224739580137240287489768702462885041740219177456845300137705278129784641722783161304644044655171956439619782533676236476803156348263930528009403593976379718254487789558481310297119529200125981717490600900092689881116160969019932336426230245285074297570565628509927096108834869262984091182869625513435523373027219727402785865942572830359276281587493903937868738459840449561378651638174420396080748984722221717292485199528737668520393553834190291602582770038622325988855082647636102825618386090931294503120326840434677795107762911361210801558306737242385466651587786163910959214392823433446140141332636962996871651767500999974601487471045021987772285786151952892646719938697027896336994997381100588631833229844775397081346628994514255744863229085968812122396837448986925896964827568317856834053681987781945380924426477303397992162549054767750397762808512729564189162041121124602616455180111674548939124791948095801254936961301192857535846626294971043341102446429217282674382455243602382940456208463541076682034871010694348995265289455813796512577060779530393516408929735350042849342022990906856018017387915642476730565211948229314888070551900645845744162807022603233621367439620027642634401086843806375367587211680929669031795463376264924138739419979261980711293512765697270153491164683027901875709546430505578717031019429434223337421088561810960856773034856269339028988485686923071548787443415355243188817175785142141942923636830772753444134106345339525062991578266973697590119133898122995979723192339434392278462931076020557374785099499261846384820337646816973455893004530589070235669659135128873243987740262613253270090437873436012379694004289589098467087567384536059820694651119455563642417557550435440462109038981639476357973468332771222463367158605022635230553583851621686240418019052008998650629252402427273829274489672943827566005298369204742945075364444948000476244059281163217647556468714956142869929658645200299372971730679614311807520257771392556460811422642863830852193347147728567884306981636500214396064050341959627031561758137062281499133950379189334882723922378703832924045966900711195192363612951731656547817941348247832080888883341338351810282084723067130775360216404936272747251077828978519944490823274126732023472956470852567547886718264455545670690304683204412462217575397904296616395298537447751648853532278937045949898346188464806103316928087932416888790118130790316286175621271787849406105658186812391021231003641908962456121352726426595299574738849631640002981739220930904441088406553621830137555033953193464528114450292507869273840835415739087747443967001725211753223567838002552851653254725228507609513063674760726766160932540726533767182636570327434696157385773244299783523237158999090656506616920760795519622070054861598105237530371373983129429043776297262350378680054785895137896752423463333105314015357565206684727369882153037267398827742831210911963674932342211194814847013887555942012371866070569183849929045913435044691160351657244522966695833706154883108594387459830193995986960716864010786356629450331001850486113848588767950826352015429375817321542888000783648214554126566331386416975245422324502682682001292174452985370377370207071225253343208440719268989225406732849837763203845133199488568488105860507747994357309122894046422140965438336906506391546574944912147778691076052206424431939309042450013758350976184814922295732190573103264305615896518537669795457593765400621323501830494848396318892233958151669071403489028136463346220519790548670666901201757169686128833091343712053893057877445170542072087040154355926563163593355266151802556374228926015565182292039175309361804234868767871796398105298226805627726502796697950981532220973592487594037698283848756571907593803296004976845235816867454350735174701417312138532052330006096866701612195651109328498331087097709333321726884741586502365901416158301345633591717256026192264894348128685162775410842846579265495408241642168960087968702296903192038444199740950701748490542796801596307030117253858849784409785476410153730950775663849234896461745451593286452765067324041379989930998940195417927676754601975533565367220897248954835172530135444925642390696567580638629781926086593387293853062500998093788421042665215944315281126950335990530744575945603751728299761577749550067083267690417443578000284233804680073452058755538556903569838394513044537046674339610823714269754585963035873588776903426310401293147203039437457380937265128000158393999597357150910169848399021894773458636322642266179711540068837862388170916820129295720567018306945520005151409767368832816556976648862769816350934296684620519022381375958359927769250448401450464307731284306131005374906993274809742465095015976395660948410945151822880599501238532484231192420528894982475985642124494058216236115900166981518576183086314521373574357160235173110785064764704481789120398786834430739479790042789848238148857420292972297530797619297817517278253233658316955942669546562629408967652895718595649811045828937018726761380180224970028318899032192545570106010591303307704874918792606878944430029348211299215861802487164415889037570433899369977294692855069210867066128233071401281614049115724112010523814334326039890899368938238574097799625947339493228483399506550875895777279987768399938326295756693659677425066421023653503109012017546376606250476751814596353051788611430848626143200746990717236133205169953621315751701143254170505762019410638586754569263325102767640533160519136120224947984040311806286105210914543443633660147247006173327832831384141741109750924768654780949963578479063875343450144891888712469720056173928713765130987986329424531894015895840969384977659655356064573680163563484977850417710252986669907675475262393222464203100428141975717358709551936100700429856908787518712142272978652744466534067152450664922782087983670171055324207840407335104213388756974675453849903427028730986255318258891085058596865329399568349857680672973633288456106495677501976275840099265462369123986111002228199155513113180996139691099739815913691487639946888759884012884925376382241343588703609132916611876450591807236290974422956869044736683175102214388454582750641053015056705405394700947578893373326296772745942588224540044710257323477225298412230710331655497165078216247637317766328649680193808724545958687402214630253459906763285835569250955633533486540347990974229509676879045969935356603551817859566078847700545998643303659716641578783364924110660102654128858361080436983566348575403349135167211434975453662155598733039393078041406256777272766399698609131259897484791064279228079913726921810033788876924679722034417785650935080566422898522512753308710256714152718974696312122945897111371429602746161464066027425831436453532813924637906242423553747192989022156754328849488877369296140177610584112205777340705626350364307790286922859103446974369774146195518226673947140808502988338551941342405628233616224507324850526457541559184746762314445779213421094772250408579722989925365781014613879953251273960517166772628853590839785704318238844784155847977137289818174408342006336984018806343990528195278603517480665202042369585485733436345509960905391885973935211652414546936579243388276709898894025544367459479819437368081598175563263169267963318275459239454433513269394672683200150411510222162695035118685344832770912659943090539319969082547330268189541131096071354778773805944695542163811064007556535202585229719281702822003563446271502263973654020369096530704758496224627987396135996717812681834749581526659181884093498913995430457256844033684105045346164131841528803116823451229915336367765214635567591333453197926948529006057542187552959243035164330591020387760979004871323262345166220357875413182353698946006654160308412447776103514451884231023543166735197241444407463837412251606105232272737279196100368015541635262734064221277681876321509310406236071869970799692844296111415045483353931750836466975712669378992402881906102173346775630230378591778236501309113359806937918523472009705519535144220348598200043010689754337375399976065572411385314246545040214991671152541516593323657837949724616559812019697304183954158948946503218910294024251662159078261665279510710311566010781321284698028255566124631448450555569883630833022516259387132954802038687602698268764623990711575252343226324136387958816520482193567176849706980321400756817373094633383440697645952160948486268997390245749227053367161453024834419974717551653445264893906269341124743840952012305726649954563414222372139155052396020911268788567632434533334739943937234632202150074304882100746143245180740042058307150354308174812598480631610779768578062882342338583083050688768681252676255242329002569944500836859053947249818483929385218607840519713239797556839185993686231510589819173854623160672879166601635209645638257292913144159938994414402614891198463781304603972321481605805397748324412741893256801169708262636388592801091054217018141153615600977508837897135863457519307838331471198848436904222641298812624427519135481170706053168212096000584152386897880442315467623688784119600248608284569394788290498845882867578614901221023340678384710926810512043055514342335928694977843976191266502022763290363701802116174552942860141880070058370742123801464206663786878997292365093251888624564453477155238493587667403467470460927916440381913959559199041336556307987593834200138164372827982501342620168668241917983736541862526951627559013945481730509343527454838289607396086312544470266578855916333340772123028527024604559721990459266786057588700085157192402738978290583995597479174914143117014280041997356326927111115845657037468663627194963219156567117161133258337383811358648944344884403670845208919996511471783041144841354536370522418211768150158845886223483904103762878531804929042475718317271856527575440306980049998199729421597361065383604083420758957431776917471769312743804341128666830658602060033943329705835085199492131198248404298589282999593651878995267495182028182965827459348106009623790656419526290840950287825992160126319950779549658300184213157876753556176473603479324004571521777457892739739514272527076736252022508566831455521821782517986015419016069111709904451777357644086527538177620326099763095948735827642115484648225624425618227552456730150321876027157846089084058055665485028535349624474805360057720613928885998577698730974672136115742408084909659798280176839777236625233169288167860647809942515143695429654323220927173858442200656942507474906699246767990078265517184945410270772306327645749101313783853588393071937045163428221876459998014140942682293999524434347942856997964219883381676744891045812568073629833931899281558112163590313746015286875178678230536534054059791792999660704474705459955657367816976422078353855385053222480901104770314735709847143825249744730670385909600262287635648226942197609946159941112093005776836328451738972101781725485411583906662652459208558100166005618826398404439537929088750004137067901735087270737125840344343666489425305744116337797249303721006569157316162262799922457703107997675475811995198055270987409294457113458966356378681488806142197933212165810161405212981750227587479399530029660751645961417811053627375592953447216010282342371382643124276689341456644003692823502758626001979281829207861365625447738883226964653395543842410422032016543459642138607012275634307946167957884346055270621486381506478573227689949997482811501133547629935130372902870344496671212113109494427917343844137229331535977987149149979084746285796652256007069919286867197123556859523355112933883337291501692159280758871058362548141566576758494483392451427826724448162532459328264838091353567104496821393466471339740051120167518200899608639705249072100675798568737027063291712826541975815886568257173211386216404545469384559160037826736514182804329559434074508525013912813076978621238542254486879792686377819367333448220631149887962328045975391525954169247907774133500153725694617683548154779963867409970158067926657356835616298649621324814949103878378520319866505564748585610386765612119907616057777865935317566422965342913966805867719483516850650224163561281630772449881416370993203401302838131043777911090195671679757813225880843730300689750720637847756570382858475398062857360925797208766905886950115758021965739662133473217407149665900196651333245443807055868864028316647568653942913500494948096307012024969391758056530782503247717746185718130920874015836074310742798355612742169638528009128213915462367087521509906606536576520865988694773163327355190377684679635962028273305265940054437535198049353485324900300064895327799358653163203594108064408114942436656598882465637828674592301334342534661335056547217420668044454425403184969726040976878940381059539986304916853409032911859129672124245393220788601653483721395228445834491914863055122833147554129860416727053233381653454929376700553532751676916277680808425499756258553075821171020170986522150273811196730805684791915426426534924508509669107900334115503989234232935540758733531534225286481238404951908668442508964331818387900833874533600174487563918654335904608270554579674567012249163612642640961044006721451037748912737628706258235558138448100246998934631757938911221666355699244762318438193447740814542643035928825401395346325381416068345021943261108154196000570082114699549520637125035557764127515140232393078606272319103186642550196599166893219965960503889650293059165478210461995959306273931129848609296631025513219290252414200577834526988534227985646448412262790733314856760167039427742439791859067974675504250528573512984747186354926602026126133762324214603879762501982756682575871797025054554157590922265902537100041156047685348437913121259717533370763407809744645729794320820170918123265275217425011212220158456036117114598314788316054007426176220559819410946293572807087473959575970458459519898275783830760681158857323992627454665820883030091003444898704188216588264996338214665513667354871851474545386029725630278632420038551704835939298033444525892176688176640146442368924037738307426153662956813538072456426995693723592516488288340789355523634628569614521121498694779787956078716413705975647107769002391849485394762034307097526996848706798722800145438538766364112807173955467464473081959358499529538621694329258536307130555188049224882251728940185494753418625124915177951223347788098982805045988305828907268467686041375153008572668427885674120098505490877347869755517548575328481806115686795678181436091613617562818983051745694836701983085135720557275946937470185028954559381246249884876342339581807845458009399575630952927371204167450698264695248318248317136199050109026837977371339788101492205746994786715775588492984282017889687061799527945718558090380021056361428057795923213590170821912833543577798887646213201855071809968376222394268160908573018070675244075046252578332763970239207350118570248756226785440345858642545338095045433350628595691419313867839182461791343264497228933560792227843894758146917361488160870405100445304089091820802890160779858849059272491443351670620129468152967860202461585353191025944882618522897155671257530650637955444859522935372914822486803147133111336311504595784206005033162552374341734561841405453254910868903789589344891850284208748324413624627251093787152705641077537452935291486128563977568252745816904662125152970730818977284930051376560430311121141885868075123768739444584647582613825357066766354180415289625056729223712496632198963323125270290845489224969308983408005507914844275338413645692325461142243665937471854938369187567815230632663163215496711213732195832583071488025258824973386420968156470006379982678595361142013601063195236170163677050432972572960742540477697379029480602107048907615254630699975256910117149951826744236407304168554926116810700350701425849652477486232610915794114098528283610934420571351196978046229203441665939685526752291690582862696061883498197300295749389585784951447813070344801988089585845382110484117165160249134944491780619333955122508837914833484586434186238073406592610725061115089451268478399170958453508357617458389407629692914200347055540879923841741282744968343279986885527419974153521588567418555783101040138343252935003510909956021032905625585177508559451030164366184158680480027705167909099290953197040792176249217094467164358453327618438219609900627852720146914038641904633640687550063757361360076060586215326472070850111020571245823565342101432012693195333425496130715332704233119779729469632254014366166698497832876311239413470579465508978674402993028193451511693629108861695474287541866541485173587667847887778646756678175610297556782010764007224437422272100381493273352195261497349956498855524046810914424174122290597610465482761885256679503561594859776707553200461545472488017792325259681136840397885421240946939815636050460936339105505222939621905925665373503865457944712642637668750013535408535500156674957824714753361124007068368858985997959730781540639327144621619701455306446641922044354601878090123259229295051926508843823159837516648301300148280967998041770846978816954841538709961448011165185814312014937031967064863725755479507574749271056964303954936925136440820910071466948343188261004136793739179518292091952033577982857445768814693456302053426071233958741526138110492397284754456088347384753182426472604484729552168470337855104067416164159023056958801232865726574805977969574714413383827552255819052417535656232093898094488029711457173846073889174973498949939171747109944952783513919587294999842211180324158205777817688542609972835922795414535315618021672392612014525100579736225112363249283034698293355326599926974594184434147444142095198335024907398061649075329773573244186503589274788731904326373548985972908981820190160028465541064696608244630155800082658785641348478305396578491167122072455595109961885592900885761648450323362491599534652534282370799043241093566082410171948895529381979248497855292763826392434650809548785033597944413090017324990381560988747087855196572588268570242103201753546314725105136280041198965751955491190084214776973695023166091886864675612539092142282456061772966619269340306148316564793588468694984823501067947019854106183719667053752320563629310226721703791840469472030675824192281226389602567757691806088128997007455721317199608627040367543936304931363071016959156580447915257304745601083033587557813654736008045487905856673885599221664234651920901162372724034148630915857661550454654982335765381978850420716739707646448039603671337556636536707366525829697152395996720574658665661769161349965819941503768780798829268404881458279244864201337893351848143495160167703949126586466737027300844490021352855451012201989108384229811766347279108831129816125980326924154632305437785356002580185476149489883149514385778756637734283396791116595521710250407881517925028429908278341095625778276590359251379946092166388708984048997530278326622595348123403775703405287130328403807341050139259843136279933860903792354660049277851904438755799930115567371141416969432352702031375694777998782614762443681537043525192394779681792359253152417066430194731190409194155312706419701235331785630510155453186772445923351393452627269153385141510986120792770443281267438268165337872598548673535099540015991502382742893125660370106906931541489639861329857851155369301876388308048717968391203449070786901974589636401901174802237534736306770054313135326048953761826065451682775669779636981761019527609846120904756490836654395654444541769399020616966805242926316092199680368290038950146760915739511768256275602976699482170558564396771393578956993469295258835002083305318703728339889786765844568419738900054128875207153155889597511404686910040723487453160512930717496950857496117128515650686826297741861681866917400985237889777830041909250272360215292546687419242319856770684985766596520717722080961638317957458481092805544593178672483827567757267179182719566043982849043573300856808034631589053150383182142280479352100961368045502516898858071975435272233395846422896823279660039524500609358054275547841781739185445440469843403331976072771568273876836369973380946752888178392087662044142105445754925664968215027705105456554715854424085690914416907411244025988959660575703185969253585443978980117439328951144500429666556796781343216555540547394024790503114085234722089138670108531043590984332351467675475300015154809170469221997270053969559716381325567852628667503339104770438951902333536285443727219008698419005547967223309085920085990868161592703126879819437298064171466489061053343335176127403937302196485519464520745632013518488339237615704140643222190015691112266997908698672412984282696244844889115828797361438011133011851070556289691392487332790315921450768247514046292562003244042943536521968611178102194925630785673979905480004337200666629777917646533693764873540805949127166538017068690395172467105813529395860103026665568623450676258751001934514595265801396916064782284896157456074207358492154645804674479812643478407550362541978230598026348464431315440430026874518876907248929221566835298246924711325879212156811513487995262259521780052690208294275559354466492340710727384797082805007185088825321819211551690277542995574731543964959051293290463370175572813223582034859775492610580129241065994309210186961278989697608956853326055150363180484148704870336189423031901546597832912476813321718377271649904750105148186654639389658677555100751767326939702287642551623786482457470219093731247545526007849757174753897165550984266849739498483439444741388062996623131251695066882990189586002104912905885887153168790769553428174642307513351882197550908199884533315721429280554190995292189930233430591796624491813584459479104238425213032317185410651904443833384123377714878906180820824985796344331166636457575252906035959438312634517009443470059086089970095965259369661832049547676813839998793382463953107562290508392515572620203738566582639157849688170517153744011554525771892764486288713403383525998001223723153343827424860702144723355804923457856347723930568957404020397153510071375300703461157341715767121582929390963705629166967922945849193985109714359413221570162155429498201638893618952614463755395751289811679540016949205652174079979170889891532031864259929743582280894521730731326348618924070942299461857372312990268560521005295781596131174775628292437827254575899708318355379150863202689054693480607144832319686476821152219201888103433030771467366521720202984411773267910985474485751202919345471865790229441836474226593458386811582779545877198789232604551061431209207073221863411189984660600059211222478143598708550985973113835285555582121875963719850882644086377757455769481336474279351542577311397335392245623545808080318311754724229699093398854870556739834239416692077757591819252156456023811782943037643121689501628926203305902940961371958359504059736971922923025213399512123674948472806905133349875237481887663090030277887164923169315542722984126238529126669038237742315729308565076978369525567747615130373110388794732647463584442530921363396852194935730825265888960166355350333538021279819249859562567002451316051387851082286713140583402250044071040451646811956358291452335026779019863576310507652972479607935433506228300759745990618844073266634598876529637348775863416972289545365105010716776152951612452128794579464876038978758291119765929836364249335164952984264223482659025749920790661939194614584666689227053366341646788550543522822032781233369988897402873440947970428528926700649819301453286789718888826536147651596714255415260234256495154934410671177972766998501401190887885102367757126277113900537751863890435017976366415445581236842326001401344142950882934205298740217592564733327193084374785089933157783406034198648662579673719223615280987176938274111065729553983832165515125230146805028811437839574510828210681446246890744398810528864804771614743361050182547753362044682160908459803363132033806336258737530611375265996180964462601360532174070304919303933084157866025676659615220829363113955699898346049882918900061263808844655040512585419670154767950055385804103861749510821239647503581400527428870158618221647797151587393142374811487733321441185157612076294258221803396802689293165710279095128266960185137725259951186876352858333197958875815808084025227740093031975688011230900405203209293111292397935036852948181758011610207670185839920295657277488032342559541821598312241017240307196255420338296337965381431175465619607219548003478045495577686063467525517312054495180883287928348197636145540052771684101025629542945925526214135770159413000466117243346465448129443059218781525199153767588520591452974352034931474915998654739198016252593058171326357126126487233346675352543063815456069749040841257239546518293902201463346974676897510084464128084346357530833721113163935131454152249398146427941774198678825630402687248777604824898347225841177028965700593711882093371951990943469858369342590862861304012312087594469327894732791864122027976162733803253789806581980212947706441461659496161188298731925040019784017442379934088971571535022426106582832082240023600028588333705812732924767389949356480637216754717724039296571158537942091875609696390479844388481190423694978557303353147907566858201400954330709248584065383308347751929512449595967594398877938225386391457204235717025850232767109246854334102540778221262808936771916268513378922306960065165428517085898045417336995253423754357744155090157699869661052331028317645461354082902763704212965591171001745872565300009185058341709637313332257299508896744001444380390941459935574150549826732323931048979633429302272664124977330802978409244644731165343168415218332491914939835708695007825914129093107850536702515211217880940577921142624812815277366024762562622952805024317969675375925267104177987216391214683490595784687443369398998480188730210194837563956596280732024062647124038552238876464536235444767755459238090981225093562001545471066405344641987164781760638232074190581840992844211919293702979597625021764718818488469416761347409034676709093034413235188941431512297662773892639619816150544538712257189218073053657614066850189482405644996810520328279735038209913045576156378097578032169987856094809757217438816767621609837710091261535730890823655179261589326815891643543718940156546809938287365555548711644682902566078892842700148837386433300574457051603512455292787503913152684596829325650779502421592820664337560338260874069883968078570108938611521576999932684377563288268841793825850773785061244295661396631202850561343070379435179925057844690421919269870090305167922616093121278949078551970323986708687082020918271795911205634987694963588330907051077495523964162253045382705177265230000715308647124524995351626525332566294254648305025307214007841077065211710973189451376233393821461203609300339133095229691394716906228680007329648437966171665390758231260834831263966924565007507644304016897450714193291348603617753060323843748982236915588998985114806887556897048505117203664401221768184968044070412971353955944516409784885634848570107722410780284525489639543370095148755002442426633782605801224406185999669252401831580701210167520015286212691444222227846161556278741225949221775200454260093493020585421023855003547211616577555547415295079989614499795944335614995884155525649928051540534756991522649515022455125787140277060971079487212669506224488365977256669833688256752641214794893399714493698970922292893362995876485369519590290568240189043192578322581402310566572319993381950317927397798775227356505608995846148013690407320031833111452634355072451773645133975468247965754106820790702790232845542553562839227972011124626782438765490441388011455432466529642753958894389542103879350488048675098891384097330444570082901699601803510767805438706735480048579346557330198062365165806706327600373978773241830794949251749573648796264340555568752450011939038608953371796460244482323812400856032721619314047868981027783165827078702036114742516392808518592191949358731408518377910129655352176854855766906071613868141036082012665061563685429436833111739123450148175238869656658653856192403866031971584112363595564596628634269710163287467895046995238721379566284219752576987738126086108929855928918846402461148778679612387653839675392849809522434904883355143265584925781438646167527064142581189336950600135456228320014805841459532149664009261794515246541085125735354633285236156944441328266959798901069603094587564279771549066722440624207412770581313705274577218559525147550841623851351424001279909102933076209164340660599779519217603639008693315326272913615207583524901077294755474591628019422707593186395039401180698436711641897495907335092872071429978527002859260719356914266810854579180984007300315356926971539207682959702329215065337482059327781369381621955637141932797388624517251727561567173550408794949739529291385582349051669642271226427368669329880433121191460034851587787669761755166604263028555001527596193539308212873814133516048049177315285886611609246392338333071207372522537329638238696890538866597454724904729966936757200009771814307379840788737438620744932177725913772206957424392324886418538989607257686494127266658871777226442992873239953782195616038209674693337998197740432876256544682250795773070873561287046392529847635510204624771297792841863563391680192667323871104573627786111811185747617642021218380894454025157532528428578551418694503882471408541585352123641255328725787837574873819085165108618155865022404957139017874778945803781959884047568477745250852484800066908863660725640642300192915666929359511590947292028973913231505440061764752357697905103153505177917946322915421756728083300124957344714661747747717297941514779499735735597221039736314955025122887691628642002259683511036318130367569306618849936686881211510161848550892802302822420372888629307523993308134768331147325244742006947905070780670056908535615881339032632162651053858314701329406035343179197809325224650427780230570231388396940378628675244664007095991364377205953325072698550334094112687226033393293168441763948248684352072562844085875258577749145040954801149538245574092529530913878343747178766094888320976943187137167372298947632703560782528752151149169382732333454344623874616147586690503514727452212385798767330146353545430312296269983403977224182646614576531197152244020571249531688280769412931483347757241557499345495861954011079362637587290284890611906043211631495079656504540091337174990337398056287050435938097510210478272211474613724415266623594589090445473201462109884655442785665768690062639335765698260616896453636324172877186874555364355989355809088762479614236773027634222902804455867034340372179474165887573462287238246780105528987670051905237882846033048521875260060222747005196578880294687239652148070307513604313943030768654470003250741914732649974420708424790748194165206594747604832866138187772052119821037752368414539480326693774054253279052999328267933437174815768943131484943892453360197334038077227526751956825911592899495103522158523721055504412773458204052205226993668260328588207105573828956938507597085222049525188213664325235745018416456349241820048715996686203433121603206463621914234202638757505305937185819390791734476217229815560606383909775188215597496181407713956772231821002935718096407791840989475304553357288993147278369680171611808893500213427736416850866163356830058855663175392978082063682747719255085966514043444028304784349880023593635468064449183997908887592142297308852679339410086386680034784957643801332858665042148682301507314173084570619882905035506908642130145274417113158182456263905713025841867966901875291981737051331004815370351280122586346183781265950761159593402408144957309304153596798289863523629976192642520338217941041448455002081458461052421452604866554913801097213110708390507366819347656979592729340340423483926014007444069782942265516251069850681483675743201435760503595709424397161292697983072736654504272932414256464544403056696829275496421688121732645451046186454722556446670167908401056330931259578629593393616510981028947265254636022410444542872019192707535154589324362054918274356613483148487803649962392534833384157612154833214007026011992153385539204061106246902183969996944721410891742066178406792639204799239996747668528881560996479356515421611847867721552566870344545094421213418495892428721943917854567087563895454192454909230454645923141686715583372517342622544544211410163176922196689022149166848759486302596442655979636467810656214572349699235719365901842155306807868035662397694645423545685551217842049604122657173328166203855045742173176963378745227903979287920807562379151160856631176988058470414139324088043338646606345662090717282124289167893786995103136398177084616775322968129100992476776725038360866179169510782834847006961325634959239505302071784421599319153070597641918752327020888241261175609102209979245885700699143562850808349012126479066445269240009719567854072805502437204571987252530347503901195156154663448054423399381996233302479991502644596286664745428328297438116887181802312149122675022146529364068324257512019356457605921495140373765230875006890158493991986828036300037601174504476362953032328335071364520312887448981424829089574856865967499376116449535616538378923523506860777781436746108997573035000495963694362957673159873990118401263450841531998227778077286512619269198403157651892696978797455708295497213702714526820962488001616692634943019538674816669215391557622538679437616728580276148859134101696611903681323001753123808700425627039007175352386152067981089991356710688482261404611458647581682332424636186574977124796460869747540274028383078702456190463318221892274303651773109103740870077032525663195978702026034445025071120874107882184989305257723988260512959232401496364830761245972634712841718452817391072203914763600671288266111743216832476385377201732115208667071281399457639785400240444320967885857129905402975176950163932438728070618591980827815306577866524651656732559666582418630312133907434343752752558004497509506455057650070662224294025986839737389740088344471732674963683805666617114458572264732524480330723925218934292339841154700273253577304948559954239041305904183006537461671339314864001772426157169988474856118344838071212988488910331269732063593147110551816797350363416748980853363118815977884122073661651680514487776350321915423949367128533494993472476070490070341200611516094102789174182438630081888996433968685653340584132666644916988854765547676239596603471117295940346218824528316080115948051131057732602023985802873505456775637214002884742969402704610212425971988955658444505553083913014592540850746709983174207447878679382144969976222582275378426681712942899219463563840779860946206256127091628865491386016233069810696266920643907082093121233932396838179551328926250202259628567827773645946622419709350639643171239478448181439448048794348599066726307375796534902611774293668926251858944956045801664465362639165149600141294849042963841224867571136210040862157567271740944915039199365052165797988884523869685799242185349440697312754954685587782417303304191956994617683497740203465742932989259720055237099175284042913581079279704748805277009856413069004252097092275239654783127151229124226926356562592497911427391843928423579513200569833334687622906518301718280067197087574125353550038927227152875270432644536993990456946674980166931377113151058083071919563977754377067324744110532456835560642312746353758125944504268720329229497244834903416131554531199921652139928061294555094511301544175068205554292264726334381560278507628208704476772024705302648790045258919880843176141472806745987407651858796239057971802153091033604113133799480535218599500964285345188836560355649174308700574439730350679975199439743313503111843753215774968311296530443199186248989468372805930847969091124754748067303031415761951675604811547679288380448880977469847469266750820993504389850127908552926536738302467876922056057841396585380470051183560902958975605097552206779948592957700328698715835618906394277748040761843980203337415714478970632182407143446195815664664240719013830212109336903469266899181734283312685924173036968707623811536785478721819583470037875708767930214737832915699370257419943024332105694582151064245537638494981078132027651188794609928271590130191879802481777986494965888729538230119218416578839256939888735094740872740380509693798065045332271228727634829218931489429705549783845730026288412934133489564044911671900716987345387848404370690386172078997556837022421768303120259714745035233557273990642150288618725289270242080804820808377478498601078862535320433225306255374911571058852954683790088830931378616010576124807855710213080751862189996814511033852699408517305818511840795428173173226025690060994997330704348120603138664030489029613552461577454488532965893228411622088165310290379363783127229018776805231429821085653600355566232917189175364344743192336617079441976090689180315378416994924539110940211171176776286359179553888897922479668264177221717010092283124673988261062562767300996319425288379586854675700448350098417290343446270463608377616597876585796137489318002844257609667759493868672914753626743657561617656644374408800779371811190465647963900203089403394379349303770969431550923462729836622873439021303282022797681988997288664860134783933000442939515012465604657202210329317846232983914833913609864417608049067913024788755232955935142875490612132675618505702722674124536408261900738505536767735027619037152438336521092049585356395757454102613204851160997718053841144963454736685355017524682582930045586270774041505180456193838544822262909489798300614017242450120049591214081406902758077649484186698981913585922595219939037769708314040552290028238427894996409484790109255297335177893010292222339206432349103627661745451530661764465086570012888572292457076721656944734016124547606091585385641735079669972310818963240943106636941701704397308876194749449460951273978270121525647024717955913126373894559756440130160177715413429675239170374101640190066167804784860397981534069973556597859690041738478170735544938471157567850061141836032049405192407551927328283128095402038121536316875119725254702935034253206724887068756813847863251464883094939988189979868718653124492380695207245144423235429432575334600192870822865213436659614384040027504535713997119996785162647483922331707848711423116097550420158104286380359987648951692443729044048026577631879451819584610134757092128800153797515918245526236347748755269451912103606525677890388624398124934802939468687643709592086019358328657454439402665248871739638336704121211568821115616986092794034189466717823107060229710782170172159351707780222982799165626255180787362932897012342663747189304784908656069147773414020541401000431281459327115192983400521119044454099575370920447441266467185585677296539077684976279276970645765143764019418401416888425602973904053104848534735353137891015701582871791302296272733134051845729042417197521170386796909017300875236703749955215254829958361069464334369624751481223023407336049786861611551036408217673433452801885566258185897387663775781906559017590235761330800287740817317854343654326483643019770380307948030288565523077693169584573619287123445850116902686498087641232807934629439470245944942231978526939442894764632917950803715299246449136270454746365055665416086651139790905919896188287796527357497395288338583244684154520245824926541309941932788300839206666401713848510334718976881018239348442552550015639764806095894130993430964048738784477102326449169814180016276004457850890232023078402758300708417177735227687955475738325640459982771481202071355487265865176069740364693081231850671134239840979170624036897218764735976832548796302803224994154881056281266577396560550543319257697794583935109501298263305098664518506398878412833160963253694817314473519841948756730357129968318635716335622208375492293673543797691281965831728105662507001907504094078002160182357820274882924573980237084425764688782928998863329981898493452726550466827103800216128427090962445881081140595423008744012274394025643746490558357180515698203789409947731539796419671030873777918484761686656106098472600835615936951204842324871668927488598640773152109005073781052377813062382528900867706674458140061076263163748358594434058344137677401967822648724107550913404201503203563222622527681634880180903433944149478459191123241339171573768152738502248191934149695611499449221099112768011414100576028768624921626823965020980631623192441182310364750321782136006138748257205910999248168106166323131015799605865887147900952787477314510853740954881216255509142706379762740491381731060538264923883205508424582109848958543041241660572244203191896388116400458947386985427715352381406807253871504256393705127891818622927262040905656244588698941423700370917596167328288986649528725523681457369565074135253105870495030722199734051609162692452540063889250569552583158738776457079600455023820630277963314719909409184802542850596558706548611076129182080516885941862231969890401586272331344399982403937108081194690595760948063134130759233689087357330016887575239873017314303573798683302032768888409595234824054476217226896819705001039806799659054307304898257861375732884682914690705720243180603140065908136790085459573647970698373396575379189748250495389096950944271822763344080094012049813904764830200536085143986492005298732102187218369290979362926296657532885562298199108673042746715367692755927746011259415204824997813156970278494392239513020100120736649194400369011228023535361905085689076025463578142639493296059410978570376887777747558051858449254208422337175172234694571959080086835178607102839970442830315022358230983913465644479953863515419497369483412953811257310338590238908362320739521816582466465718972219981321993215072714032016486920822369878515614106501150091749362964731695567074228643806043553445642058368641612334947535583452046745325997565213198678464070997433258512082171517658017652240175020755042075939580848005568814553565093540535566012012526986289228021588579571453176734459652483757572164882654609822896505121241609473889043424799522203267859537420511247859220160272140777612080776225961570541827169642575287406095153910262394391679674961740968776146179005853243463715917447813801716883293432637893005127217665785246289071791943293145016596027814237325824747619692818074867955206817789702825520975273846202178814825146806377015245808342763930590848140409602393475613391403490220796196560223932031466950513359019530834320199193288952278175734319698810708676230544800783813469677908640429408910110915483903531140939730955962204336616420810454454321424780878750415181663331932118081236396864125049047784127526355021146664811448428219245965038776861763599241585364646798285465273513769012419515021509744827864657134227336451103324883714385941764660545428162295599541952135604422113632437345159913859543749484510811682628211114402376469051237388920387607190459225124814130988998712637618579548660749664150674419581212478930471191161403347576081424502505611886661995033790477727536324019852260355647681137414049951033223154274054220546008911034918257456165404560698879040851636451852042354123543657552370860578421173035400370417409588463775609462339109171188719400661362437174973964098296489179913542330429577847425370696915189540354788894763380900932022202319616124018753397267304772007743389905549013586890448962076303770987844125387480865668133304372854648489274339908160035564202740101475448061784589307804238338777903078024390048646868950617235810586280775209759380847689851791900361212683768454962588823993397220709081077727042522212386312613524728851986820082301670925266520279349256675305160138831967212930969257438449770643628847754732219488967803863126532329371752447312175446819201859820192988481586326745685145709194757519903097634916597648643600809801898474736613330738225552055437720297700624701447163051426417406990462812765110837738417035133999754170187990162539212677358554443221993606298983983787614224616151749571696301214204601246191028414375869818094145899137360137830973448002338917303179843416385364920187258255742443676666363532640850010970772639507285145681001148581052430583080358659942243016083509430929978651590675954868574652007826978291091573902848901611526558902271087846505081501833158074165074262220024391508764772825384870032784769466367312871534442296181418517127580249248365743514412729944404465088045871716212988785243211160923845834995863617476254383902281760869042031613987774540901625743216258513958743769897565029561358125145583876775354700533229913668306914691500767987434700330118809358819406882254358812307859344696891954494844019811903446961535895819531066018505864820275810656107313098974701862936384772379318454964885548507519340879229312234651531906049171295339624302457686638344089001348685153809167935146469789422731118104230007672105759665779760542524112014332877468866521055765909310594759054191313694092859023612565258156804819776882061467103744910167469480464100842226935480985307384641199597399565715764613157079371611137600377749514183956093445693652416493815633297465935071566341188890526635198852979783243201845178775072440732345781517985934893449047799829517866233122285372731866805382357131640221383816728914468911246122115322771784449268100087035533570443857152322122232098452843372483551042751071874205140736193176432843668401508587190099733715392226004696431776229754464820060698493553476219557827386217859347364630911888045568348609361514175855833456415006033300966585827745409827653967226310763693166136930251525564170725772990817773937893937800224624708302017712247053056656598206932604202726050489253862635916255720709175835891484144764100079471727542786895940145221384783245096044700830961567357818380423783672491047392805090187477148135114713565349802283886594640807085049529384321452675525789932437624856669733036515029357487285405828021977119791763684239714148933218695097409393959972961611623374029416120315399113107173777182228598095654664342504457349643004316998194230898104507270723771005014830419972821179338825379829334972663435485585097393868171999892939119414775463435096446030291655222864129516734439690016110883009533409747975430337874725732705619022684732953949945217755047188243429159062517629850027433506222392702199314494287010619594657191420397452781202182638270776941342514659784799880497319114586162419932087644896717595893361532410621166439830006051935179542502465905377763084379042548710246680025377018042609035025245729262930639646118753334521153744933217425988660995702451372704483495608344362393160806262835758949036790980811393788268153373631430083240626520780835910308902264716804454190851312241899955866252990600245410207491365839571810144919494734895443192898025108137261058685958554709393585210965182090215770137613281689894175425761138090605954474474417973302206582929445046440115969246965787666294284373207127595206717181538532460906104876947907492509284698437449088276033787807924088508228458723235353473706009311807118213366566713776929815123687368300729584767989210756955046974820095537641952814887866074126660970849502847382199961652078223895899524048180481151101424738357143876978928234908150553966912956288379620437737399063214633241812459983106002836468870563464857422665742487467163565251488067366374858737824877669611548888522620862448319756465432148112108956295408916167543237069928990390349956664092374861952779075028155969648544039074024011550855462853035855851752966439178902172884853849944480989858606178395263262278605946620185919066994629957093950717847442757127510175739106322441133048024688528583293740277973710008466092184449217896017941154452531252362069394856713999506703018942215244443469050602005578135119366311204173806940279772604207331830217925634304770269760539056818693488803371586015404051045605989450466651539669112161871104210743045734407822753245598197462763585742842499003297536960765701129075150889796828203926304821344550988082350250118325010442880916615792166137660060254834087176277120243537830525214461027678387860365577724723481302708101565838373033104224848596168504866477608557150348399693309165939959276151991167378323301317809156956747372400342345928124375642893458461207836313366265990546998487873905124654954331840389894809358173479459700514300963631781519996282092729420302716388856868462928677385053438174859185040673938280456243187089299870199635149244006973297613360021888174491085798989974524453875062508539781146439042326506815918147842545671902978702550191416999133707285573891107813027096955589662265195291080034338497728985558590807363127023286161321312439289559208260823845465224744216905754992545076990435852160226572978261884456649979475963234857017446434697055063394197176885861635434558020044126846236968912597955940800949565767145356633832421537805353768151036737511839594550895786106243002973932567358241871358091329766114568169401971331168268050286390655461870522338012368687903777522722244159926224554150172395964984650321520631256110790006454862288690176911738714542975768262974474488921184810322260933811386997261097996484145811420451843605268070365016813614438999022716097842757849745465859527086151040539804369134960016488285121303617135834626237862576640800304224018699745844885532104618787304587016405207368050830610395335607949843147448455537080646059552630498692833689948898388302525190346108637806156665403848005509921857345961611914167632491403728741220441122498069376174568463976356428646124548008820133012009026388865807979237090495285633975270510134289003893179138682088626421767749254608662703634099345607240299923159095263594844862550566792010223824599810615574405250020929192997639778913460168916584073868096833291476030965091543594857243481764436300163199508771350214840906506979899670886312861262923861085860698410027674228254270220255430627578830168628955426619749856256539239003651683215790672893264252258451917657105794333726088108868766065659443681265873996888476368543526880792509624308020711470366724665334671312314780584530136656620574130698273321696749248122338501450381270896060916948895152483416741701218044825515470402195545889578745630835130175562209629872399534197869139952564289311384811068496942740500119038568820803472770191616852265126783010743831536273870979989976356307635358845241615227311207462698622943980027467924469607221029127969673788514654785067172360879502950311736743663290511547187115072993602650920290686380134638913378521736571472746362621064754924579362699175773429783663838510138481846181445866015863353505520199556609740690593414191900905035386748425928088554095091480112468478118410435465381555206163439433481247554899375648062978495958741063952627193932019566533758642909856123541966166275617491063378607101598706867367890842406134042719756104174078673010360046058359149467451628684444041808061025350503879374644276519395230010483521926657241551249056979843468716712927568403300959618071457663381096065981719593704992870408422500056828849405523850035661164939293446283890449865016832979753375756786690396115372013110271130545031403524152324193023614065776388941532184434459496742158042354776741550154211421505699772154467729987450642058929486370952674537646159333759851607376225548556249037266994861235160365169121131419835249315550869452496439402566128879616076069353368440464958742250231364333071412201755414899104594664390323963807471493559894748631190536485274404862110496364797797151253654997805083468941064584335792624622382238238472934013024274889828789434029277818125246658556167448332921150548524026864835684389594771036344160380147790872811092738307736399948138364647865469493209583637676466644368860281466364507992169089703343603558039036884827464962434307095651138746511623276279463614642541447919859121538282202294453202017855709928932215288475038083563946942343789826324282020381150324838862289588168622130645546422145848743708711536865888624580874010311448920574180557951582565588785006857463786404735151435149752839491414499843425940315339355425774081173314870434594837839230533628363197230487793156311428372341974829790277691358414023577534376775854922356789353854898314077082725045765729771903323094705181364906680728987694347716887251317028511216896129823574915577020690978429565716357684560264843638445553402605539969473833830279323036552845674376723640141214346704838735988966096066094000233481389019694437029309534640373239540227568745630443311189116587828605915213364214360592109934662225752648931340917595143281909186451735968312469472521433191562869474025578935535701857872346732343395094151585823368251496010170163481621297648664696480258140621036928197037788138836657378964085426320506911132178764717346794571572793957658799638869706751299669413177702145245681821634152309513711063462332544712269997787619514130166381046872151059946031030110249699916213452986786030254886048618272146370271611669237469268678242732627203089976798366982566804512170015612429306087095342868569000186635543252656175440643040041481798654458411177265463378064569497145576617606907458805714925155643560860074520138508436292448482977987371250612656436501634652344728873465673882487364999993231355965043262549910020087350587473751409324058052553244330916938374181941501277392985542995722918900363800683142808163234124555371493997907062703590145731648905725221821032191679264616169004213499092873094121906463945076842725201279956558575307999363042032186593172362264408133743099610680115825883911923277528795589699862163896069067051993043204931038410059043185232496959057082331400157275222930222060983866274345679223778730861621877690127576761619276963137104371353612829488491219361243510754050663218810833178418200258904010231294403228351888966452202593573543068631581660636082994290420591180151491396316662659864223736725203974675291926521353481661629054163083327464520072515055457734974939661364542834174187331974824099788042328026482481467551283042749215336815808209998775462973603975280853746350387699559778291628126025690848713688302529069923336955763387507691170657043755464755363448457251866471392834642447669038803803445905061561140745729846560518345100933192588993236866907688889413910392067823754306898694001379298183819697132157591540597179541664213281016129288528585831776375327182688200504846755842264097454374904548446892352509185397058242425482958513795624642502175596546224588431433199089927987276518317104893535777188332389927302009738597032742093286120691653426404896463411776928451823979876561005899122307849456085718509265927130620771964949605278363703424085063745402161102813772009442290911171016638052275745324185310844848653345076674465502838927130819417827807802696572265224564329233008428344072613528642329443387231460616580061357165673741538726026802569918245077464605483192658526270641001874227187330616992645031031944783433979053230420824970657438486757137302525208417722595776459421118437072526148999610007190655573118844817784595527196170607208291022622780375147542134627392613786085981906159600382779402243336636335155491326335883054561712153713172635525754052973002283614197394101662001910704963810894295377456666799765889944742807754157468013624245174793091841292924446686657921623194636243800442620939654044200101851364379664679882459686947920528212163530606330705780603032502940566352355773078188520008057206861144865075357645782910382655995880053090154319385507844392630806067028697084236835292298944215736349069250761573368347960886087353592812828977401502015162890143719188694985868965214432714006561408981282132241797998057148031724727488542083136958984437377644401096877214547903553753519932566949400384415090532904041447605716116161866094283464185528621077502578223899337464150618649459021177761247648342211925340716469270935961656109069962227686228644994087791359830085286386347207392287780227679558717586736559744035751727423779872629059959794705891366383463745713775101193789119064720776621960606433335013665703121303535365746818347805998151685989422023521085806524927433331580033833609022069439630189325205230295365991043038145837775654883500013993916329145119423701494851954669513680749940622986841649575735435234743158781037009262297952595436561520753526529145426811249384182154119238024172903760284626489437118992178061531252587088431695794653837274538939296407382804312257282175233049363924006176011545319522587256141811022456278668060869792786016814978335101116085303819633081017852177127753354687089885062986676438474950598056397316714223113305525171077646349071564802102225077362919412094853165788560844403840204715400485061808976443854350876263922793893147814430567383692166956087410914352581478090474110733206289778926140008381515403112419387269968584185261581156259487418530890998510128596327258510830985641886805586169543852123079267704439168490499055414979046822914859248414087349148829701729227759518672794774035778660925666850418731252993068303618546534828157895625336255666968701780632252714071985331886998305791032956377119225563385472765080156912838016047930480918395180901305405941019252636615949049301204562445130115712009857212081533596997325047653749057640838771311759600760588304815630581788460551658877503850285376725689562989451740105585504962495214518139914465902424901571912356456725125828211369331122629138766506937630942808096150435945807436649013523065373694798810127616037508738018863208952795311495450193142167811438148598386029859193345945602243325889012519836174349870030427381118021894282342115925421744593654677397507565328892153272077583456761914748504357675374533786235075105498195891978726159615287545399002529678534269747045791378715972356605403246227414483108186771101292655809588639239346368235934601889294941763713706406815330702441202069373658039176402594850869526175150930481515248235371523251507601342552146245493883912458374065022235293876112313477495812208335595267338950260569869865651218469855336838022540761351856060530090050507732285663038520701776650595490217593264575462968647756661031352147021659017651544608452677957463111350934982859959685384032809514560249865090438429618787184981180400130337982823123218166780386979470405816064971045692902398225675923164693438274858542127934568103086396889833352877344363038103446731661250780482757215533407135970734538084904688921462962720518937866356748049483283456627351691079188404386799241603595688737846564138731540576818362362122524220736726568752296410798860290277473503135567030765113100864674714034232726740536822876330024241124098582118360234728895278856514404027704398747524501862233713351846077901762369056863084275516686231054758046249853515171866571211714358579879581545789981730958856237637005058792719068807027935941884854230929363119527197172847510360901018405462480528661793691233752666220155968307934330318417800653923231164901882052419951320875831692442244298317378066099563238462480879994173262287263165931883465992550066467627380937751183494006314153874645114757638207062912905483401511920949637421618936652215941391256576526288367019297276048670668925595567805458179517056405148782202017273611081968506364649830561440070963839967954179405230585399061566988289821855469656984672052199561818173259074719010289453690483943254389944010258043617379544325058591747082414624657916403973258745927350043685296104351148497357360572950997639981193021731723758141781544389894303109967269776079980182559080032231595716517465052745509797197964622951248054840106804727012574180527314226384904833188837639799225568963150867429310502216849931546282792584733898832288237433914308049146400232537362646105493559383336992324038156940885603440309115581420723735651388739464077252341778438977452827167264560710332068058339348846391374086797548238834300163707703704706730159969392786598697751597485449438635889558771496902341638599648369529477070574898214428308121751068150466928175867567870479807293475315121633482513451843197043221805082187488194519935738414364089458355744073991326870744716736681246319130702555825786215237799349200216648909823285379450668588485563149404771267990136473114396363005806571545680332858121589807351346861315504682174464490130398285738625348940889673600487249463394367258194934706141667803822907104163472943069029493027770354535505418072796780876367573614043567717865635687117914415345519120590840233929041579617070921426718611562893816596682479561105089053661182096864224005516379863012270969387103695262501127194426900716355245866959064198493662873717896623640568591186223369336061773168594379735059682159460383308101692298106120121308654451185123040186831531657645694296523433349401025416214338683009878521838868837461939159115413853495537844049952138760844594337137302959446498811043573681202576738601189421158128336543307871585092969321217363535141035243344866677387318208709747123129512758567685432000616542086340492229238416215685617704675112565031999188339558845792552273364728178279968162877756077662400382177439501919165023436661028796769899677747941049610101446862129088879546446530992402530083221533908582392036794254795859221293448638081998048407316453501186026189565127500791832649821139913029443007079028496221403964591942259250640231926496593711099634599521651545224550675134963135200633655346695128078070190141498317944231467975185260321003375640856576096201235225542977440042240095132216341690363854198468863284583956171169559303621579806476442141299436177932927229964615832261466716945361992703714582321923045998042418768676277049302566422314478321256405947776265449700814577412309305315200934535269222600198419058498217552827894389565393522573657334131536926814932058500493283288968400187916124052778470277465583833788878592341923346820889966014571839609387134692550917887856862291614983544723686943483593378831587772967794577688565362608733836300250688571646312604400445165047937512646627432020269309464260597295796357924817869189804917656268491529633941109863813593392549944819010949550211754406375189024111291863518589495491907197137130557854877580017546946506380273973088984849726027372536741927312799254903655941331135734600875694748337097232767003456331676745469733967904417207838982118124471502639150291558946480160639177511385039382765490175740027003227160874794329445082511951652023024586235376095851732365209196453299363790475666466629819998597839845866193488422504255621715643572258827419208357099290699217459044564874408240540993480906446732171693328875436298810121632919193507786976699677783501137111833056983860112795412510443957084163797913174972149420292370330252812116351773118103069341456857608881399553494435376226484890460776547642700791003338764742477315258447218003506122016728588359447765703703087696441323093445347096000063002102863090375042825325246271718307012397128430396366531496379046293750208343293411939961515496296493038581067452453136226262191178698808427027785945599429805835386145831066603620244695069196633439749877010496834434046596178013321539958177814063793507028497360489000356632447550481968886611257155178168237526334072535231507820081787089465145174073198243751838012583589240856747676935939476332739408249905963642366631606119656958673026736658215631447397751617586707694609902928152826356904065660294427419901258762039609756517317982344342441402697673850856850491375792550185106260308979413346972045944473976722899318211462070563028330649674193166419095900801295148245218958716505276755091370962398102893962035857506017574095545210166151416520029336570955334477685107326577505174319763356757136565417395263110826060896927252344469299965747899756176324136201395834644688382148854417433612148872994161257075176270722401964625254417082586877427104702257015757614926638533794788505045594461007043377046517587974618362580204197681609169150265451610550036668537428184982835715985025386680343488692888926330236497277425094834065812686226692447245879109877617108943681999175037823198618803664727510370702990210434746177092570250826680095188131747172267586005138235015329264165528741545128610843898494290019380020176091596890724677435125531980456836068579669374123829144682076944388555651410174891319193816871553209317454058376065860712550074911096604141127533637563489256082888051275437011132681391210818652041799058559101433436542853824647256851339705100848917203069127135326210000664001153018332376040782289639927611594543951279954199011135152570251623331245211076526869055647832491044613728635612985190621989400161892174099335695886506871656279395906524065824625113295792284310996152864333422203674820552528633087117003706279971410230292581483968438962051299952805183055042256567539893828561065652329963131610393900966054238092394067201729914803941280611027051166935109017217682475210867460311815452526483780711942269077736807451367939557658539099002896843114492093922941808747498813114190705447333539163141514988707611900032252812804316386694130235685938134533488142304800396079626067932895449778414853604796410609246989519499887760903263282167898902026594831027071526034652152882939480031228591049034627441010733413603823694129049149128362699605882164520529153161744309506003233052455028124343316640388116574060857669190790282632811608968377571188128739022041308759780922967309630441468366724354882719122895936106276534037643474841249966299797615333471534327055992019191448556717887329178772427321018091451680731331742476901715186294986509623376647058571243267018362856544926728801457471032624181866528853066329499167816971647554238683285888342759036798091134557266973902091481946352239576771233841344308723944530026299805480958019056573727627273488015984039332095536449500915811541827271745877508323456247072626786823566748208116595119201290620477839415808030188873426762364796892881221132308802999932796429118521949312811588931163801057322312833838761104209768229911552891210198064226309557760347636078949181301558127236595893572823134826312991086524060953860095042137989063450083774411760399284244976481162576996661599607444071257710071583435432485365266488952027983512751895227614660032628491104518852838002154552217286622253146333144608504998864674678618308110912677999520378384916796136053320295086275475991266544501243541851039904601298965492616871168940193138703785772432094002510013831890482183927965094479272776232916558953415139618283226845151152131691398546051313759907123615537875923409393452709160113672405110923268392818031005999003662545308471109749026487624222812899756563575891217665726585041643584695598416293803192099031000647118936414895095058912745780172758412330821483859249184571284216101560936361830776327345675104982998249718699932540078100036221590060415781666110172694168045468780049983505892111893000910369610879473867360044589204677285051985826750629497147132512032251763205817279335112698323738306602605754781500850579320378092433967129528107737963742365080653216775394361105736912677160446432410791719803885990789915330700488244393561593255143353302135966169694619367620312620413486992066247159427595291734996610747155213303895626585837952446695715863359066788439753562724238756379345324423771802903478033737947767993182925745310398331497391485555443035863786954813484502387106203339374318257398020429309615746598896148321557588251653249728808041054793206801789601868812315071611515175603137497535768886258081878540110473839755665364044606008798613564189074668990495600787590636654433715268719772655865393216060255099379438593635432308904785884441335338163623203528949651779739609598651936041275218600651020546566195096151303450114187692054868993724082694074346707685469137771402772167892368456570097670435686365064700477571752207618101296297239695076669558992937700179644641214660333710345539769462932432082074786981571960471266896914418153666328699501611355993881806294174303626273909818670975910037730490638660975867612099533153653983364521266156256391740691155943789220531869520728005788632491817208081505966335810346079185778308569165060201376061670944657567480328993732374784104798853842446496371935091734110642853954071244137435095269175138799308163188068371053787094346849406515302496461743776098067953217373879468853014367557278056358600034423528122186122103517070887619909818666443801789969993016085824150283662618450140105944978638439977969835200584524433242872100732159145067363663527644196725003372917849074997668138026639459208585566492620839662304137413618930696444010464562510814879332987966420556703092291489910657794505411578504729916927127149757401480956115239518229546673280559301035688402964604141808105115757233568813040854272182358436268539975752516122891066828327293154162653241426763465006757742656449574525831632999590234002068477282402480936524708714722656804652021447082456134780164243672788773469853595155231328647633109109300663736255034167702214093427005302363835211534058761461833295549358237401005454293649262803181283041077022092119278480269840741332526947073260264933260392264293274165825854221222341293256399398802082272653727281479947498616194299691593430700830107699125798460558365388369115026967830348520356420808362363576776784093384614369968742642903979896299979566072960227163777983442778637805613570449885075454422338929963484315336934234742812083110986223083673294354438019359660348926391695477671052706821368952018861956418246852615829963303129958570083015066113003957916641815757333552997444733290678023634925005282588513939433939835041177298709309595006245658098361941567659995715738482775227504467242963183817154543528836413900182637188308007838811349121308534252958355068840859348989338427082926297978821713329574059696514130452833050626104468000218893597021169687920528367326929556555815490511238888836127443920385169861003829387978918097085871144985539291399417149616881701556179569184448402977309668125523900835935427142084223306205926920823787095607740609003087803506563444628557003710233915978388578393924099364305586354103177683128637937367914708690322018849501214462393989721571248017426175522341474332431573918086091633709864424028767402666858673493807025350876819583967565382286361326398157432091448915130517809042818390325447012518802258204936344671347625605337497264614791972139430542447521173804446333355372544213064709827750028984983171563270210255253057171688889803051418478035395283355398940994622189882816702197944294376688992923827548060891005288697744500549089466945334608277714600130874426844549089310306230550733624052775400398781676624663698776152101543605304210534817518031758914582274410030432292151318270695673292452835684128859498356808116575720145715970212224639735798732735156408803152365873225899269297374576124104853865024116762845908281318542218038663568198915324628306284257277521966927812681926126479517516319971219497733676589336516269650398114398861427508895201485119272639267153926579062994563968428441179440227522995189020775701095793890897508880261430367653859975130150824553363192464082092598096386617425827649759896503377424835545056584306156176784907356569100679406940934298118609684358116460943418026664868599196236751291155419098380586144536662460158412854282500206348390592486832141934119408528219433621685703021818323730535336774005080483321847720497243869044749908475731774492604538180122084039663082647762285256816554134631761502039170443426018689168979942744840843597094579066613317648338523597959926660347812034909237050370306328672887285164487152448646227022434557903944343602607308774188679491366728856356609123758721956008845650641579112741496399167704309488801899092201695937033822398690037944762387520764750172135173940574433947016431927672716780902155461091070547634354484171206353254443126355586694478921731928291655446330958605758451765402971762650589230465738265397044182230677781527494930796761379570860909240364813902395878826792954242430019982047437457243510377633978658476307563929675355712849790646788210470593836348543219698998951846286932755829841842701585188880820547999737282934711976393989531532693454576456821602864690128212585681471189809515058406203325691126700981076148242990001468770853067635787858098333801499773715008086634209830994610088593155388910491765988779264155265433867147394189966192867706116882834954360471271091296801671133812663522769583626454280946095252115953805383848555879979363875251487053460188423507385137468152972076952166366468477547321915452308287374380169048633505283798961995900035751621021446319961978277339833078986766070025525093678250965021022694560452212904758756804007546183500506888957704110002836490389679534038288177683520357251316794179222913867654775378482765113493111082261835173661209972306958079260642535557115863698015510642188494596090234135422593390272094809220000153194224248229447385732035320700123046252529866117541258554764065174068345254128936266432629096924905931188763058567540548420166554166367231863531095154117930943529677724221855669071510488105666714538627415342922024730441471798165664512943033940998960588715442713465294194443788158082462532377555248790800534534554440536061837916091038278551619376874132475435310516276945338135809266180979264069229016481873525538798002105686691209102413950521924330576324339378903834720705008716163829438234158726641862675152255228995718937224957057787370194562540472297844546122617883038949631540885911185042433288050764663645038059545406378266962479835385894445340256876604233957038676574271812738587496402127293577664189657898949931590086742077806281091352004752673317254621436626435366831254756934200355356638283629038107118436822871101348285462957950766773194012170955282159674584480157429392951896617782698578932062483062349349181162673185038323677851344679369017746266994169622512878794573190589090507929539026014127900121983252608227178244548022735796001169247584094464163030055161379708393940392310019862217914593414618978298562608515240205178957809995929557035558024785716778103583581531048557433622021034691829048976416724447347330753078902205343549967935560450530003383328238457688819098509202511817678464389023222128460083512215541417021241059772120380287506394244264491838292216649992098820229690100631701903695886384513821564865455295218009294187163706646987049805498792340724333659899080409977039330159514965668896627273929768714943733338762213197235172298761819402629488178752054300691447450760910747650822083380268850169036255539399228152058116660394681698038716191752488715841060485217657316077814512541114190603631574299793838943783409269094895583648467163713574950382096371965256978673019510401214391212796626825032522122036072595195623293702719973136451614690899004151849041634393089241290551870891223427662303317764982754096814409108364724294668838262235186905386171923598502160541216467719469885735525211860897463252411068378325136499036619610057758756694753060782963335897889322862219778166829329544911115913064960662267534407562295650696527371816159861816982798439459699676948116281531152315808359428072879790239917822173281381651177645420665409054057397767284698835411957193630003677184987843595919827801782675216633078192517437847621280062564325857853345367696795080065441685655083250861470566091534902881193318442424593558368967923409183374857674067138162228424866669188719937844049908598270024224295866507405003964029752508558236510196186682087265537645502238872448321138174126880640145297672913889378725703716371426287577956450134846150802158708394589511968706919545275812352291682750361758846989539700727350860218025398248020522924697909393241063206231282793379133449968588616447582812479246054428132777074142028191133158600990653987231079092808432789837974022784657433373009526491474558362781686630592984240905521982258334355211457148912299044377703132955708002240444230817263299240117879486581268377624907037087562238810338607645984800763428935236988913955327351041554005163328096194274547287133727058234810350665824433488402494715935294953275846847997431845728006866782134809751402839501063103159161957892476954452637316256231906098260309337602181515401152553293525838473905746824878869557085779192086666856994886765341840898197236962061498947244357647731014603818872692856756259725125929939560613464279149025131587272823379415872179768761582693926764899420021698248671217875607548449701790629747218672445845143662979424183351888455734897440685813131906825445923150131865741128742162293275796654867076237410770991062518536870709941288909081073919138040353145341297002871204324303085149925853099755337881942927389829748410956850900230028935462145813715106634048225641657772824127795377593959648577099067551239942893844226311678850887906300879291220284385999968002080190869228038365767095943523268684495721082638048749864212046868733597130421715774566208814933495626187221339046172260145557010551075693540533792461742674096512602475938319211691352173079503791113122879466512885366378568141239615107380917378738748358826480439442052384729568587096492662000204348106064247138609817564194933671217249865666664251758876505305636409047084871819174825519123417740130142983105683478041311547812210460925614571411109815100615071154533756888714049453790924127696361786691825493691720440396095263342505795971250072808751271328367407381220566857261276005098146307244354831945791690577694155878845031685611944398237723410402344463679953523364643776800369830804489644470175484837094763602425682109328008379543145422885227254138257084537262842954539924806735434530084628424533045192788181280777972306902662120139511283416615024056954112480831185450323325832766672495015148996711805372371091624239857811035858617418503619371759696804887465065975532521980560667326966128242480270566718954666733026333861414762142789646711643903881684103517998118849901674672669323917701141999242013202515092373886346580903857120595159893185307031890097834939100399753791517060361910998795592935250129947553688244165316848848151423965701981265611338159174838466832813329672536729947557338953137384884237469258365808142332814695382642249273383180183752028472774138687971704846849761104878719707353222889436862172418267448198669912807389512457018103901027454164748551428206570054550805445401614634672831278744662115110584964743050317486603170856459328286765947454803616223662359451470090247353311866055472222342552931302755286524212682133005359391321415608278316142778383695931688415341075810992824561399614039387367280183122448422914247171435533615514135352813074858802478944916981261054346052024742331533306232784596750866703374214416310052065950940382769717754494957747610610389355532505541878503470804257101709719748642090393598009712569387060906272314502387330710643124125153555651505037523827641103344219113510777743888773854554462311981026271523209363288185931193084816930135434921706693643348973580933052890788607441631498289062130683058204728031670906649802725674776930816540715264394520838856596393620631514732374435055433203571594092310382036067865817935325258514801466378547398606313332965720405317917694017362622122200142945856507410935091148383262310420221170470267193386162326635611512580910815672638900757574358081942687481857105612764839450665665642575039297611902123238154235392703955486029888695069272122754076007152097163694650261268117019779885465497799489745985626609773440556307034813121674463531634214421907378728897262000138930826549112236609881823679999925215940063965036820547105638505656537484459448894858761992018220471240620333675060145462560896570272275669713987743622059450673650686198500100435889710890565589915628958955671117492386839333175339754578953477131502967798501367040986437461257460260272628292222623055133310294548626209030398295104437379271436184923750989425469153542445832599758776883206551651249767256963282935150032792738982853648278799192837464098490540901019565779477020697957183917361174079871092752272577278001554800185442177122385510841692184192260062496336822200814353423305684106902206495725937439658792677312385121373983824809030503505970933837476266568730654692889030304845526778677131550735629756708438487797542873004024822890243530214839310447239875734286441142185576412993778345688469282798530228073360959031824351810858247461932366020771941654513240773492827802792408599367174004284903818494041601048204726814824667236375360856438882534748831894543508887434323422811498330981553750178069448619178441438052254776602947145449451896592085103692739108847705140024957074895514735846009908086159073016868555865431209293269838519899237119883253057560359527300483495140608767033349153709545623055130346910914152997056134458323126521041851815880637923793727111943929298771777650429024389615643167343148070530211956653810352598362213035752292227757729895985372668262072855986545226786895417761751026812924701165717246139447905994022402314466854008907588137042631972859634354382498136254655107063347941436043370144326705138623492415201311429358868011815254632356473437620592310873941583957063500221609877598661226004028831730044231006431407915389384258278776739589360064760837696866839961461233690995890039648516881455016425842130268492146874237833798478772598719805848959960903747545117217748141389174065756417825590763729856446707629447483898362321428708254858347092540506008811402510620493132773803648946411364334517153731433951596133515621616511690015711433194955727175392026154373146381696948365630606214316687324704713293349663322080450001993955859027373635976913192080482642965527195946155373895712018472448877427785135574732364068974718159229505367867129023110243268515688749722338013656890784931506712617098224653344725073485883482376034915827033693711748033606408691971171469457450039775877105445672727933500529203902181467345260085938533827194096551561964418149279084651421340921195437364762201938006145573157672783111723410856110447561391308728039611819773994920703289348034038114502441388025769934603627171895222957751798622763731003791913481692125398103001271855715435866634459330363527217282042132866269502333928741702792804968410393267734752360893700849558436105911891367437187843601392656862716615633214503296366631258958193083091442047377222771400051163093194092935838181455218950450841687554481045626077088714293761648903906037776531596330091079440977750079310946258848754527957991185217787266895850719251975438467948202391982336228545083239057023982087496562361961676837159591339109007380453703632259072181177537169661948245676389515170882672510294248421255686757366802048523554092198642304483769186724250146001820160408618632080790629592489625954380966753060738002927383014839739480932997534126842398604906775857398354616582075871204952187721404314296159539151345203284625630287302950739975857097890208536608046781241937161663245787484571683357097658571267452011617267474078797607363722621275132726445898926166951880475365770705128544923040384351830445952648310748290481445795580182391395399247987056023376976851241215749693084478029964894797375606246532365269810717067851799747217292394173814100468566305736182542057064344553629167800608200328787801892142535457136439080463539177638182852792544652349516298492485480694563551058251832589138635524814919837968070772010447778774671660017040699581292205565669980939409375987764510651267934838085805238236421982647623646820754667340236937394525815267209730711021290762226564293661981045710821533002275371790803464000447948986918146741298276730839404361479351696119232140205777088466498427276623402967341453192727047645225913121314916319958554325318216989948865920031311898100593653295252761295228697717416093354704828426711937560079141617442323332031039282197233085199814201876668792971264289547481504399053710945612553367989994177479924753303009303318945006540514794175479530243790040483855188477368683691343236830210545842586001095739704844338970810863138799276825492015667794129806272572905913720303520530363476980834314454451138078910532608859079575138130813951629265915471230482751957348179074459924282549227379512071649555426822247168983443327100914922229992857672915178564487876469328891408297283888406708446410491282990984550216094579716826823727011866411291125465889609252429504093715069098240608107998162297559410503959822783484377681092312062676448669415812231496221391260697388231904105633740379929340037021906752072077931513997113295127285707416798750786195612648186336756979829434052942864996018651511071140493478635540508295699352964405563124963403363719626512892367200326256736034634708426588774850523616135447132837980463313200086668364865478878293162858215340679152083251421646381982960102943250385717157187867981946701522796007824912166172970840880027085524429214899650685366174672240360150181189299207197113877008151143346568510227203977871026500420989825679880584332706969190995097175053091828283842524324222202130921108882019466717074181519616309126085134913798620549513685098408262012403868430576587957324137933523947178860372017944241927559334916532889386177682119697533504705310479441382320504643849409450377499852203777838508417319025763770208791509151135751307797960589320067559481225421437552751538861454029552656596820645492715549521288894438316474454061433173447092546201041953593811308439575973685302915357331305162252443174129215161600919664501561899069612727228687399318927169608060891588756099425659169528338229852681718238770294751923113904145702853737504948389892082499536002058322501986932058171084232076804165241194030018949710819582927405651474430692198405631748429986211793001216995007715088524970861357173604232392739359855083102959375180788963929671786505869849466286454600292299310768852504324552929840530240223847018840882841316788867508809400060106268214180014360180833493283833780279476747132134357678122805114489727900470457546697869037113727411513781315164463508710892856704790873410925563219322011175557636336538166758344039799913164360883730851260439056622220018873068215409766815247875124967257512157582943496754829201754459025266753523017827734547104304603931225899265186708187555161722709709605835069301320677941839958565303572516219998360311235383129953416214476341878871933422544542261187834889477510752480323561118909715886139878268788029358858168559919312523513251645937310892271282215779230783989499505433377928987928570348735815790971605526597240738257723366509976963131945684082223610487972295396738639936594452972360775683429054718758063548071547942011235605561686238779434594311765170515968275798760654542664369665054969409231064061524713659175397169163932253804131458156597686863833029479430254246381035343908390554705694621294426578128914926187431586121456892659143249635816666712494473135560436661769878635457481642477148499675309840440399837729412191425126333282771341461419029471620696608962536348848851099871604627986062212728392374536126927249292415468345836142757037247065775555810827040545311855953980916132497182947431178824720801204877877861595831620022117146645095554793704407458684957666057124063164986336671243821819306466650315667588474109427465591281864970742695068537635534254824005625961473382314781516901659242406122524999011567614937913515017814978785336587208728910811620830012310111451417984258294659384303268386165407968887419327712157839122667359680021546307728712591084356423225277901322229830246541369652806946327019595923087936893034137966740327719757456779392729496085250763998667824843968231371375327796763477537613676039464889421125059977452585347317535807618370003642371548168084492453350429651770962227576995893719530529823864746729258704995359372402278211506196049660497623820226052822748822938503557697388475441720672486287084506079001227390778838471463144248335869911911389661431381043882927739798141715728853093825606106658195850043780160877645210514718358977177521873114525233043946323182113766907872931843354727631014653168977915006113806048796351551365170064794782216814802930392669557872477629620365403213568978561425151503338522354734748686812435781618988336781533535055728695383071594653645452686897094262825940803067306351927449645990324081605901765286808555758232141480622955994445087525685363002739992244622677486723841048997430385303281641186667106277934221559413850253276629080536340593060057731057796662312016858632027287497211486351112365291595986993862709381652402165790839208799039825754611356518014748159518581877457931826372024145959617306131089513636033857307522719291297083330643874534987739349768866348717537129887193482937877688459972968459361758011457790138699831283112404418795756509613740457043509197861434682032210815169784722283259802702041218984403395709079944314718063426195045032618862346697626152432095146869211634170555363264575457594686410626406537488330128488969445856352651871750567487358533902143782195182453523661899667284577079060425161443089800237746379567477774348807441974056590612083011975949676719414872284291433968119698858501895643457195335941469424745217513705986244364490879397237409258412168198576071768470780936382352178759268323927269712542917419132289009101826935267385953058158046897193924919271805274650694318512416367598714131022186807794764867123575238996433553622365762788302015375166294950702047539724419199705808750649297279608469253727135330254260393853611962090842344914809638314296935934548033965030850538450694037593478936924832526326139141440904204772053877976084459109089096954373368773922823241710936348704446156474724884005159212967663798829625917600293217734112454903973003379294341854009457537991143508965321418336511680542257716585152153923659491018289527409841979505789164690212161662196414607664964724939279502031524719493939961115779012619167093716141452348832385600244831502970595627232735041455868142009765843739866256872921698475954876001206675204687851518573468805023923940455815036234644708351014374810468906665695452996116146348375894785444433582580045957677630317067432592918152790724918623893270456554400152690218101269505538809873433220066841558853583611463354922626627019334922401976082953503040982720583442677850360692105026812628900195373613663118781075214699591674341409186238528901221655292760252007594082750072580003904785303862342411126521715079821184200701713361670387092857929511575351167959330306377698875607130125012488483823261660956585353569813920775738868608096147916509346162089772223162336817982174975671990066585431348681772951677620806303684854781843787263032777731622561015333999639456417575718595944990943291948199775086404522943152145818673823344677504694269260831171779141587121460140312652402643092686033901011756447907527565087807574080659057019722519758152430706676040697209492878841186506214764718447419053161367067466331098466312259073695099736963640079374392611857316014193612808001056691111520878401167896299629950936438794892576143440527342461909306151162733099368283051839880060107963133429303516668715716155153228110247624023458953311123634303804021240654887771947525345621925404703460282233094457001310168530167849748782268786087646474510542572986292095791600592669843319378539691844842712528777648125501578828521972903270480420382684398188388859963478580252043636878713514823202254481351602158948728588437114832269874330198090940513995678938366523863073803447467071628146335481433275317237947575402431167956983129225402548757653733941416348815909466430879846027472321112157624049699470271724937438467691295668437669480310776438039710427219377393185913772138725463310788309249130751324922822528310562131744384443058967832801873991536523925814484864134482668960886843020831870118731070075581020638122693069221592441908540829803437566598535027656715971934464294461481061612350413445590993679211670461744893861456954968070875395830430677260751233761208046071794022382268671014614249866099902103393951180637530263508742562573924438325560305778467891733279052410348842807730427836915476084586518394090063400859267170711773052220598053944076667137873811276880070041564757728718676018978254774392764615083374321332420713288779365540278748363202685708048902933060871699776018627018843468954924991738793017920113143214651291286060754231490115330685917021380509804825089397866583102184070214600016197327965466644589202713193574617660742937230708169750814795614430249157184764497809772655469842126453222114373985026907494582146686278497637235547956220284483388224493277476048296269705466667104900444596549148436278458844142276101144629712055550405916210843201283121017491293427364397808696799655473178637590399790395318785297674503200323972336169583197963994260671678983782397778782996277329950812574419680044487628356961271537314671460643526458844461460692626571224700295555967919394111927853479706930563209512891027491257209122035340872970407270059253824191220697078108308136861430404755339552381399431612170893228208682620420296511942168653719218749356089204344877774381917123138096100780724541431506439613655394942261090887362236941696331290580817453653317303561044308873136225090423403518968482995662113053024416819558941128350053932785830096346895413274641930961200609120370519417123772723148251958542860333845318702617222925967829636238260842193966251837980402137441159614975588943612814395393769281367798574971670897584653543622770644004999440202145713874394383735256143841478513625803684683414165923621277628978657204388612674173932022232683753450472230256580456916243698958501083050506643239040228186374328930463706750803544349483744354221389942961692830974811202396030597838950397521842672133575097999437632107909112359796198239192735177976527102285948370247367916703833553710855472408962446684435649905740916697817098444255927499182730385730441996448338828268055632094083076589642311655027506171359235752631322088605014971265308255779381721800599222272999780040938611883804189393484769512658293667192765008740930259797131374563162899297850650966142507431796738665548829801204871593189674494541184939628755161934224817654615981081794922891648393070371916104742945987786467625915049484130241481761145826853554515663049890311201606574825906339044710100505203776922132389011019828446221666904144193667545799610984935244143484089986406402421121788826785833842652317333665157010786722634018593651938241094771598412144338909767497025474705540285064066923489020507933588670193304118598310117826032219110119634350248619201436614664358446704741698680956878558292656548103473885470600858814551369292517477405169537657502181279669554375715140738067454658514737028852558469216188546622360835950991263516064853252438818772574849060693911686814716286579712969287043519938600846837175303018123082099769016505649862928917011876092169519228038732519077948480193330923455571787035945953645336504243223759274956956280970033463919574376780564474294116372202306447210911157319330036426927837806070735325086547086190907550743910680859630508269581896465867674605152375115482059079221083911521408569069078219967359102181241661724692980705377511565647229167709558477645610598881016301946877396431104889383872467316751114884655143297791119037923508261720759387597419346284608564018122645980183398229964978261625500064096544417682477206998275014269940548282250471110788181404137080111042817522905157026312138700271346337176599237539954983078884448634943574151454137698994441694558171434733489016076520458095609474434637537721360589818300850415277245892278193230422273207609709692383750591379944132232151225440988559721535984063544941250276382538949835138896223999078578079619557374147096960892712187794955772294075711406685077433335476485506655469926312307708727570769672433981532574831617366033318154914210544888220165696378498684552072096204017385285486065962020483134875028063710830419542126767145968200509089559712680764067215724072238756595588259375904324955676291037013949731538538568543914703424679671541056605690760462720696495048060451068157257466550208732050938923536407913819187738874522055509870047335788603719764529602315533397665630138326338036728978491321414180374617960004701789341750560023745542536782160066595453565435388706290801109855520298468233694868814898865845983347855445451255060642789798519091846251864773380206431538585036916092933970513878559502933092464599820486331912609857115406788054224712357435483366456754357929984353909559682014300780737527357412117678821521119569047323125270960138764478666683398332028571591845258005081142354856714528623847445171207611158951430982562459504159196324898363688039406845850506272816585949979990069409352326697676272847478893324165639450332085024226879773006236753165749690088631746129252514066604879147984059663781208662450942019224912526027231391442562046196431831494931509547163178750338919425502486351330183887339749390856743453612432946020206281073146484857510394978052879507600958045999586949795747934094292894087483367763719630815098746881253415359045248767433332632126130288211782463452317698990027991930094761996110882990172111963086586349302718535439808091309912649895620002794801049662167340681117227297697558529785379077191820739634593685007130645073543683264005452837361193738300496938076711841678887153675575353052566273624513706138367407066638588087145962181922536120059532618454457401206241460326262154453469865210953632247453937846262679247415969715505983920398502845900204853218167508535522384808429480886062201606935748297982567227902003881431753833038569143391206079777346002707977725443127457986774450713634591527914505003414333626338673369124578682034001484338349008084323305303028212202183332832180794980388543717086229867887184308172354803710009151686407277649339718062117558308266130654752980115156705412961738993729223792288795470398069600664590468662036608629885501430238677172335932134352195168000168692617317804070143314279896516770022864126839845828748271234418737301327232663172531803112602868657102246326530772485806665535878804290447987909717346385151843307883859030005029962154425827393933048824888775796084794014268167192965851685603038463150979166192569169681489845660300842249689039548328479843721322189221862597141884827644809285907250558157947323557359865231898844137971833597343229765029695305634743005416024955222148572823078181271371047023501014750227846099735880885632800507688352720990211143548355262671076261394342123823868455909050681310613302237641445015518847539616709219674834077477548850889327493294229765652475120515574707083592503429822783361858590130836788498994188791157979451062464782953700559526124265849618466042846751846505247627415732084021981918994774939717030965959438836525733546403858121659805468978806820392589677907117545370178635455098615951172037268368468783249033582396552344743127241737015094735135829300705023789260836795478664113622006406595718102946857039729066038822550325082235044838637375871705008894589884334563968986070196176761994588860538682955197594868145071062395373150947271373241457360076662165533591947363310754164838899722783732407116193427208434755741623847966952346078966032396130424867488727566772243047163500667355404074741893676194266899836472656376715032570373429955637558914162622636036414641419754622162984563255987534246710573823521293070332730599769751666742290970118187024042237918238978274823336821300889217901677796433192051915666384169500397073533422413110337433761999076403810097931978141970930107558969724517550889692866699893232289816565036495228223613022206902618591537882521520540963660626738577912689559049211127594185288957119935992816882864155289294653554149777551334512859120749475866635889370387595544082717617517003077992395997194786914445551150053755953655574069255985504129356965276684521815571214882314528374899805193945352713558680465074840365193245471240044891967467757477818815976576721261924226626104634408440260551611081184555033961827075659568283398897829171962548072033659525486678103063765324571371473967178489985842365282940514968255279040669545216945558382072172811251070054682491715008256473929373074366504783244616618747587351162433313530675168438929971275678070293582210017597351713060952828575751905636154219316009261275519699466843266225375871914329446508620456884076903430932439521022905455448276788688159430706616922460762297002764152949538889407980232016110142608413878029266484737604791387723021538858813803643284908806007145830616750968000929831847390708744670261528025677316841492398255495369090118929037672280181377149037360246596721780693873234151749449444072193171996512346157054342236340833647136939359041951070417353265055921558555814257419307572405012279038791037167264458831316772593655638145234052666848921692725936131507759709105786148113893026435253105316882762491786945008057594132733820694576623378648319237920263692280991891753330420047368693427640047444850982431210441675558600775519627013997462569205481365656589155831557286871887143866504317985914360454838448940297888993572129657365750781418829320398207199815239471303869673310417976431931277516346703412468594887545024796309257465473528442050765675083926434068491779553757314039771616252303489478109421929338094346260666893277289965467153047217164078847160706967716812802123951592514910591836349418476135217583257094674382661590332079959637471153639229707666394083975940509214340346126941099744934496872825637997367532478448002713505106866183044252924304003145868938714887619462926933428743713840564398168177940310230582304539856293503450640447232697875945270473392212728205114216024731426924009383120076394060108800181771229398608574762213934725142740281349444181962192535415344096307778010125928170638211352590539410507742230153164619875340004391577492649561459914578603210094519069096772542808972817738272465764323225657409767164159209765976926679430076240902307393574865215403400188949792582379090172833044222863313743083870604325687448207882991897871711130849720933691825378025279390422224733647823574581085731558940457669231216593709805118001058030000242018383759879055838081584752105598093197842838530688452103913223010731962614846190442346670857753386293240200346847933171184670357897033541008721016299778226429540530902280325663032286355689814457694974846563213442978167793232020149828347279910994533810302537936308702583390197182151943060551139741849538845128776671237315594291319370632262234053859956219462288470143083074932459092331854630522661557794258345406284970000455442999505338101574806137989597645344603351564147621090378100018797923958012568527626856816112269787977212244306277500360385405498128114951699929177316335554412664166375107937461740083889113061082429298321459206090736354971635417878176281287454861875537674554906779251552853475406528760966181961379207148385945470338369653062432443269769225456141048886793593430948089750972356930666032253600247520834296410398757890491901624682816681420591308177271053827425346480973760247553179706727297821131323217792037084121688766963653860030244128243192006692124927608129998260968010867213120373613255092681174253108670089222742809777302184447247680710304501044388636349406751160609748894679801453049447183521525597625098094840282522901840666069796286490308218376376688617077241125222201215568096682313601512501562491231832909549272663981693100657870428424716405254866873315044537656973327315055841293437215485170394463577188466715337253484949356662186886406146626945343319162417872689402203903832759510580338490425095562338586776735554908385486906733858310929219451718068569981585965342259342949630482718904536020168898086456880544532370951080367064337980651232579833041796380866174563017758625911566307275799788577264285398923924857461537665822256244878377989629132186149646637643584065635330509477459881813474545687807421137421176525089787208223094545662135168596018536988987267025322270243372642369683112292196883445817919978719481069987970039465397632028301999255488999717205604877789408887426639881093377243205401500877378464039601943225661555102914182156882963492420734658121214243315045576355319193037919133659035604759742491532112837061642999922062448215744506744591191069067649620919078592350938244573680300767785373765447882556395871024286665841716642235101640366701911447955196891106612080650246858064366712454872378271596984252059046244522052523655845533798523785477906007063586624638577854189285604024292942029699881275629377079743713328336452778475555853023347526960341171404044233176321589431395964268623877555168986712191019820454507863870070059502045752495107698885104042538237723784496309031745914463635925234362760782117053281759574964346726059565748354805067947267848130549446321073255717402247571697631957468125860700552055306662670692471357966955397458641043361681917753572085507216954753520288452279334510245490931114334723345219725022043915382916624318513597238717696929089170836959500843696990034294888351696382607473765230244024800809053685175967646197259986095989300210811823257383352640757788025292596193318841375157748478240023313914078620234467665538152504578505916454688038319229420480820538693353161384007158266656263673915239477071072620392501718431365449904151205212537465306513574778437632539924090323128667575770715601919715136791265420212593901692404717259130981803515796682615938459057456657966383367142935106269712168118164750097235382612502423546220991724994485206426621518036684771047119063092524526608190409366899024138729472379437531724750359678629379397204734669323712282473199096590587271278247317508478277789639450949299304824962226690259525346705020115109748328107853977045685132353755605089862380587812039554229036256766835917520953551217695645128228858938989258802811642316441245898898517482500639292685176435291078487756079527595029272409563871607104231865390792809004074618949482346039194490322879971390703050478562276178603504146428957875723485774299252651618117605375196754976075719306157536709976095261353262942815675791193547019246278428253746459930004277767883580910175363014814975229982880000629020820872618431475977729205832200218692322254278322628758009863225160804910183512620035922222688759207254012956455083508351955147714910775477816712475081250976922810645199125796811909384880659454992632737495880512643831569128205844940474229035782798564489364724404106102895357973267638948297047325837157297490065967439885646340972418507461568436482102530612549200815144886289339224864173304297117923257735231445907684721764235529254585698506490868442808055374296767617992664436308590743280266117137474205150156518747370756551438717467044512069245163194240077678800982927022394305031928980988213346160571936267109089631445256905789702832492959929037130126228159262876909980109582204954659470962116456063764485345655119309873021985491562209198690379298870698898112007907680184974197933586997736510778132673907436740415610385502691694385818353925755944200847254016395206522976438315604013733943536665258020416149546476320079639828137934003191804561350577946291880634859722601208025246073206934901400650072783031699683113035403433435292258483325934935017348229640085083821492574305703147958389739966206235392878297300386514762749149460264429642224337656073139827029935978046276328694013221226049920969146122051259987066218421064994021426819348543016657733217600198784895768119029150289720118241126430716488488755814230724592625085326515796799772570168833363423291688817114983164344198094085452861042427991379665260212469499522260602971924459240717772739296796193115843030631191646569274416424753848850240903602010588382809819053316167165445022696995903360347171014151767498625338026090554825609424148256267258221790871654625713470862472793480706112948576565857703417395254167411246218277444422260725383048463608514084058260868869119401314715505239350558472558391869464711484225370003656328675913866876324424327746757118580398149032924869243347298045568217606289067840724680747225589041658378908232652937440845429237650867829564490699748477712604752422500963005756035914987569836614333175722147596294746169524739494882509298125829756302145913594153217711768254717853162490930216094859050186067536368478547749871579735470560346991153294638718804067167691530921247287353754203558736444233452244533601217055327187899521446430403696241593671654321159404444133223406814341767587985579417426486024201691172301152036038603123232477057526696456074132268601175074247985751602640834258541480816762221830559737779018052196615366663358255991663795464319606131311112374198320915086035701154569688972718801813634692374403099527201495206040707089301171800337957395963653594282640269384492356874850379270577426045413894025873617586105299099744951717505216783010848724171104220967499001934521307660536922160941001842577354066829317456809792902213142063066598356386865684071375281812594918436795274767516908073700463145179459875764574064606795247012357689606829035869395241323554620650215401572408313377368412665579363103115633062122284438024762151057607362920593280171882374414585025520575730629065812164731368640521055810258094962180557864686719079620796573104513950405678516365603393574616387086251452358748477226859927012927907897866701874423848044170546265114183570436507445673031308687598920919114713380416152250799266397096735488204559155048801583433151410649947853473495056327502899351273027663876796597676366880500185348191011396369645736884613833128859147978853090220879605212755781062515973713252279868614097527514344553553345969018669879714393421622112203941867875096786199062830056615504544838264447825489412528669370261616508363660323040141177708347703069017353278016400563912547848992727669859013423970793138708224889635997948608873314142385232982823365845317644981557609231591827770564011156511753337187231835908312247205880912621604654074087977659883443201806659610633860827143609556592500829278137888219028828391363538548242997261060738204885726105513578319244482909681766991240725406195601411366830665694291982641236464619591247916443415312733710224574150131255200938214518971692035068111856893495691664315509376855111211293512293024930074682409069195805399365779388753565896178708510849930380803931899326742765135005166209147110385485587806171666017495833032158641865179476184397227104563757546845127576825143679203209821770675588238657875567186772956429476083676526462345079990077711081004716250725862255389750100517051788071812172125575238508919655016247880261426936781426343758049285106305171649772376081968525276149861627947747903788024610842421771827597277033012662076231188634200242554837464942295888730014778970677704308108350205962043178068352087725518875722118985341147230125725016533637611310999658613251560446815251771333593450881380957965249723480609560161351071169423646522448170469688711000071576004752649221212472146307149559981275301603196782937322542016381210798607296355191091982774479824947927764605041666652705126617021750722776678882094926541033854970985083458650670317052972948184432452898696469296749457875896584974429414680578277429751701428595745769029232386526304574175145201690456365126951960332836941741984494885380500312268027001835297613213322374836910875492708955306251567274583690675539978091007638510688359559729826359442426624072532241238666001250310625972811986028049908392923464968140109919318528974483098256035461170870747655703966589511679081197082014356326548268321701427025003423234371313841131834516711443635437954163143219070000822128277886272894612578103208998230175555143503397192851227846569967449791443833185498875934789555499571142437802619401237812964521048478245264824896255250543908068303953007278428789793426210160142202200912255010348401301085865416659755753226892492532586071194370289919866558399854042037530590935671851487019010130448291034777531119597073717713217696865566646640647293424525802863597449907788144055808967978608019216675313037805928399604760771338914344773158914802814419182827376035249745218867736836541449923845784876234142345125156093915577238956850102653096794401387338301096272526434553859462598169112421771895240383868566588405107782716437429735836824239319189634070875394415478907174891016712727847607776141036493639782994264274689780326086603116293340877698901746717905190357319636917182847752832814629403487778863311109637287311435925831841449329787144956309598170081824276469540700208295890424260440793771586474367314253239131953403764792822341134028839354521777010776913234480540895181825615836049715197434112882698586167545758009483623036520082372722150373245231221025566595827231036446058127979296737589246971363615571782248049840302744594641848873237678040532432251231849503796269350089906413374595102835754034118339153647297902024104318315403018572290802487462385261790842716492042523800309882212182561434884708375305212326312049203583222713570111005138449206163380936886498970324099822199280346875778361285556259001815471963839940859134106827661474063340234606546246857853921345205110490029234933746822735166243077334030540392331636736129026955098769623035894709191028186156408193860800989777996594125640439330505454659387769441094941894293213680973477486199682301816995969137035095301310207639765411902479169388540412343616963250789492089310661525241606950589201989964541794325349997806840359351855632921097856182748788365298169600939479367325837358719940595657009830327416863534078745879170367846497501792170023013735002601139718987949271328578797245563154525585447563244935346053269168053357123572732448221704676130589879099264848127294688652088351928063231697168053086669830580922866511144595393472241482434558777960598630558105170189637574458663453753199228805593659954455245387945272237676586415771038438919914257298419020589148318349687713757812318631394060814850562034078647677748395633444887823437936049367128257177533024149042113242265882467628689462327990290820870877373728036131316685556949037091338501435764334455714233583735262061301719810018960823975756148299720020563152486539590418289036866080175791819399170262664894064909595093763004678605946425373135083112437111903018683847930825583177037274242121206792711814924827435325011228753661382500529463570274885139518050938322331881948212266748145772318879636500030358397732827108029692439928910540104573109083131657334127067297696790381256247568695888397232126839438733001513005743194814098141814412152344298423924387666644894606926126505042452754863813160554532970038452841518176118135284692843102020349601968816477988463965468961005479577908737468339763216984605411316863139731049559565760970422359173530383222197179415828249057786913999834940624542839253743113266737854971475297431190311395994788466002970862931804410078162171190101593310124987242114985645095194141334475765863707018040490943045090686399665312870478301974742618976921068202173745034498474348241216288838416735913631366535504283794791444687839194224352419269126379140378395321047554585746033400904433215177909302686660026105040337950987508599004365184862921235878735888099894029438176611294970354715993001432079525129169235961223744733285610488835612182616601178374597730205292759990766395872564441239770326113512007793107140199783868986976286044299723068616447783904793281714791672228803834662684627531953513484238380222783323674026673284299239958401784628950415301234611916006592838499439142866115809027265918848442858299613436079205963511660904239400627898455304928418549999351477939039302699098498644385163089947748167270083823427489822175486979024303442210336693639015946624727669152223315106188520222065979770629147572297421819818326444999217138834069520243255025450569771708724289505449752179703151501397496992333088918589063479148115848141443080152581157625334069924954934808727005600481262502495204198724056327890468540373624627135066936750518019411663424919432706916306547652542918591665221689686922309384813323111633504847490878724939374077803266773708453640210476232191406250253860041716657888737961363416133786163101035250053465586025596107442000450595535905246285026524209093443398227987256342609864097279794361922605876178739839129301070533770925225151807670032458477797580242784523199006095125424022331808186338580419621435135008071513307768951609289525476947715117459322446621167854413246216309195306243575897721499295844125987465186465586163471079864579147445796801313339403176822164567453970127655920274441776875373242547490928173441024131330414565792459290580346054816527057359597749333702306883574762197127506315021271621057583256051568015959013847870615890398978708776132739940598170755824873824465625062520875500449745136784747079710594136635328923538180380038848061662244286130939236854085145594326010925711031422425253758766566659855534733974094968364381732694500877018708676150036825020082715182763482421242741854177605756347073043716666408949482456692952473970663437951158506137941420861605067489479544208912905230847793804287650719368081399688903127796988213862692946525411547565535464027236451905411019985634391645469251349217279107374712519230594641704485556348759753622933739744025540164225021371372487822043137951107687737889810795866866820957033604658143952961671002795013631517688528842637370852362134055362559601939901028281522658703246477976449105300696191159520479753623789088477734519258860233168132247421303472072497933393295375153042402666050211661096484506978087359040205900603913933968199114612361631319482087023110013115321603564598185194406405764697179865615491013072125340613425282962529030530881755779677636689867013660809185453206809753534269855076089318277877761384072793410022808505802198912806168045596089858619464661456473520745669203864104483715509116039661792293818151700243331799932478005684404095399725785350187898994015891333901881946994280248808726660630201560604621322661708473210191997335584529106030555314022204601757724998875392873524661727270065206849826730271372369294956147052019370262582825077186905746015375695105608281414756423842280583016071550237205015956360035055310720337603873355740962699997213739314370633857507863098771504143408153623283009070240946156071679898339220416877261832160344317573793847603789607295047920848562795280299718036361705713402647407411670708049061855317826294754075185734159375784782122831789246055841896345326647071009365033328512917896566109111658691888727373947600372007897930181143162026998646197139075510420505113126033811542047656595591019726165329264515466990349649446906695263823415024571315091191127318002781541906746730156333391804464545310952444056911389023310346782917511894401478011220484825515260069603900049973108075378431730237312964142168821363113014335318004389893791280516449566648781211110324338759268548130574561539409597004671615820217205914288505960886751853028062345676235301309581668209188893206111895967157999103074993169039984884335826106517745583878712746523234967516739737098632140244167940706992515006316285945529790647565664374821442069561815611601759834443019436238881990811644555793161837804597624646052104615251527000096015840845902114642993806888001896207198495329422425402289554113178183445870967141273803995749946126181195492548916495453612345728617437707814126023147395142453829575832222320138247196893613861202930219263677379119932325376264786206934958752172675578499908110149892215175130470030697618255723773702550580787925624078046294119881791213944820707525639231721443289787552653338231560290503945961573494575202757072691889615214396066575213597896102746513009950041660924255321866506904246489650263628502259648924642942632187636623201434122696222787421245523313797372975619463592413207435009500071351321229207967267013407580599110603610912726126694300871493464981771542939334463859313035617670315690630279581012076925963902849781694094906386589742792942625660717268363747387042587119809981045054028196221727250168349634540727405170468294236365992269824586909439103866659154573060575035971257892897832727914312166948090340734284349336878006401413785613107215616553726794675699612434607881780138921331755023134186181357669656546282188136576297740146917807867584613077430034692473712475520447304621632987618157803511360751550098478290693397587031482046142969039228035172707896655799585001183621603499724005468110814190134090068614464266318659497280937519233035812308420494881517842398181372737101505005693822566097241596520320473907302794908867961050279346762012703981010856538899250683413201410865783443859161531600694538279642012970562151991920673358655680215885964949439796949556964071098677958806705508470867380935233231237212550384528534311106558315205019689647820617447398068040445749534610400937724358292500861030734043583225518769353070263822664305487719678149180019501356310688569408608423313646865208482015250761803721590552406665565486884105400682793411281524410657810726935505203239674984832941527110847515236182473871205495099089523278852940955300578086397979399671597406427383427940604955920872859292360487081870454945640302595941600012819113962936460950863428207959393226304840260723617817169686105122318634088739097257192196238763618195776222289817683849347477149805784606182735879835171122603932133800921605111104986695948999578354041508057370425711325327772432118522688113923320997401642431841452860644544827673489135639810330609304203327950745978479928102627739207260800003315097745213596381530851879854175659587057982272241564955608393681825931153175813513555995397155199313315777426923310632070127885120840674986948218550344531641766174700203616962209734739744299414014692115478328048701518684840168920880915758284362808494495147709115864303662578451973617278968575656374300713424415019539630749632453931072652861685872391209114690048122987190129479221831723016823700855884963683866105576766470521288278813102045204785345873657327045262815559356356710452289438091370037333775948293259664713778010773305608095140662805845100502846116644875736064306233320750297669070531771353726999999504847781035791026348695363139957014835911426769288701560398323276923986739032071281476049009597403232665457928887440931283475095700128615040083064661128294898677801037978235488938628777881909842619414403305691219282033109337762878535435507271551348272814357284952167237403020417272017363069588260409315404118364440413245505421540631065359771415323720720784701302001390798073496968897218337244362910557228717844880151868888178284625818349464370416154539935379346396201653847244538908155050468202566926760602475622402250104032976964624179004061916180046052337374790555128773216912517089796352246866356933521797991935662125596664647059860265547820727797028459896214703219950908050551989205117706490013046925693968028338496800663159180258179143695746788846557186596602667343093718706210639868410123651289598791293516967671112504566231815163487999911342183253776900394961773400573316846533512793732421843272228044492813385731538228808836212541738749828347606486936704885104623329417658918336814601400992081771256628469149976000676203243940751694295046675026037493982235856378698268269500488712072494850859096107912927149288201723832156584233898333500115076628003971704739587628531536185950585783954650804168321974969421960290721535203939619768378004440616691994193825907957297471268397033946087822155463370018683797003252976947123770221780750922797264359640892587783878024990852060563220980341573640907877499936633110251700252430016160697553355930277134920351923239993620636441155214044471111264175286012483789437782645485897495691220965212003366846493158126959539618692759564911579610056197571823840546709360868639108375416532422498247088654047147082940664128381316584134931280455846543602521756739889666098444838517794631248740932963706015876084004214168956410701343658388344832140071639621594077969679346741624078115946576373900494478971134152599712656659487290507378198308335508153039794654398856420797372870280469455764237481106712651616500996054455596779287610325233467661708372836352177732150912755642077345346698714737590843050120255221900032349783379849942551831830413830713610801815013702785809215196169499534565595154090238818399144525448040587051419534679685075074592338055978036427815757554578572928630079981715653022347287216430927940026699697588107617668168699686842244861806771676918796464536645215332132492006080608401572378298402808637917328545523577738646287132848930938044997724120576300505405731782416289165726304222872003154599205852237666330806136606311895365035587711341751076825888206657031720077959429723660456386507677612803546476665513991364538576780451566209202349730502996645761283773692670225115481174133132068680381167219169829062334343645308592879155033411730004193142638840390302812176990316475940814147886920791718539346905672749745614067989547127923136361087571703342657156433748798532251230972190303504812485842972589050557304047812040463664025268765076255647902306665548554204878381997057262986152487878085691246265530622218442746385015044616791089905975604495594473105079912252249701747888824368034849464021955575388848854247775443436018731082395683774426538197831287656936728766264734270721805282503871063930043969417669775690684050344443180000305597792009090967533580429508491402179139449445709133645596881932692932598570579808375058826745139622362421357091648756954364279227884672233918333582403470863146835360757508473257952982383342103221755691208344381513717291503002593851561152271431965636628511956898575934072792796652726362877687853408205177681872140535117842183548157938844965563155385118132826438004755916941228317938399229788723240649571331475579966091935581541576166425665288397724479152907933250416923272683834626270588386935868879516053245924301640366418138459877343724656127262004159517829290827604772169959525928208190130518007964548751072887688913015217653345711592086402120204565882002762766225549622135157728628807382566919844462163730991849810534936867012193939542890470039298987033756908018165169209142320009695181894427744649670436386161806385947669525718543057229489085107797805697538741279367792791730793754487980010599397081834674616929391354269057972373742302159301044497468055718851044583854068493203753740380648624046852006048854367555400852737418403174476817737112939496526565480711146725344130787930136146428658634513782511399380948261418422885218646062189096154234386332390096004342296557010546246459383906963605644680941504685530554027053206308930817305916364061904359827610979331565223298865818860353710157800065208078720424809444352031200046626183202162007995523292563322116063357318567218709866014383897054279455623275323531130128656372573648244671608211095116011788680384223248043011120781241741916948083913817956252399920661750822019530419475483170080637482662873633665166146253832703298851962556748661014521319314795240184294851791604623378978724849716955404413530750211104868313693857954512851273684863150474985726177024707202139368804126734497093689794265914638724816934721693483444134158856988015920204082931927062871449369240604198990998141526939455791079563663278381545478712887416599633591291553456049897507218489695123268976136726458287024333473325066745500650662801433245409748516942184678820231753224247812713187223355010264278264463522128002209606070722338972882688408921918780839144297117234360490883859306129123105193504535653530087007472964381887040937477888976436399809750512668463846002761636616954043659466943783344454131877382787348964489872204638618183920478015569509926415249096605618545950125864586282166085438572068813499398518879325507551600393633342176870956093984292324113191404538726374810755079833323480177725112280295707702504185346589936480250467252062391366383640494140123192512570087313808741321454626846716575891284589534611248963944039169361408759589570386286960589155188031202734629413960686980221336586834429715456577537769060218493135879670799137861399484921719587019131230985719455201285457976606167959104839694815466560863950438368350675327135844373019686624246995885079933204597489289351409636463548630399635740201247881031281731830745633066276630942156211099117735162093582199366670678399093112109268167962602191983285819892915586382784503043636277268658666345931548240657329673196819035810136935173834755254467747495416208994352784278407928093349987922244209462764466121501054232184664289679818220419935854608183228054872446254197016969329461232007057307959674595081318335915959867052847927309190136896006171233887037286368479217679801685627869303669852828444821178726954210161806561954116070021872243949882158858937008249868148551380878473930404633671034723424364257812350524248340396537196418543835883893209574480080857794273797451302590592504546884113920145021963808074214172073719792377717073853338992135198819921955599774424258686092938088532457192271141244699448695027862626771897188692653732701255947553392322298178026371439366537528413295914505387385955200467287146273918746412127362489510087760773330213106153442303207823936317974202890995641492040458408586108168613226783544335713614421591700709646374376942231440152896461543764521341884849474073749261486659551966276302795645030290472632623415792332398477945579802762304144622298841621782754507063347071999903216423650533668644882061096282641835109985438086928191440794464938552868890828321615241528408757031107513545862060886399495831056300664423319897284024097618946810141036086404838476728146515055796304930263873939762736759277636371731740798284974400886059134613005124242695673186290921855645417498716065654390382424447608444338781205071654729098464554881495429500305526574010278808731364520017939970114988512895068187755704788007321914722420896078390089235487326373973701394986857788010511925649727015282043294133990081817022696394452914973713811725352565297709622255305512305141853391234460428398878088020774614571916266314284705055161774495094818674968297116992576149979341909688604366515896962114084676597647003781347781070754977659279972690661670227660247987075413676810014509864958930775348268816609456382542773616414024099991705534731176595757242246703063794062067163366091987433585023718503280334496976613208313907145302521085263161250602463109202116399287159104462657943237269181158605098404916146343036480387854912254135872175105397034470862924196211589937416682943988644159864926167662864976922902967185606285681351622361529076695937947138675181630155796217646906844588602974963041954494591220319785964632714479100650991771339893480379501241301191232261078535248059145710380430067963119361007920919074755989910430562322304646666390700084094549635477415590448236576396332242077633153620346525405553634752037801680204159099716131033651144303464018085831050248795122773482749428868637846521116963398053521721010322575379372361954287703996434073438279843504881582207020477885733237530038628914677542913273458156006129443748208033199623920413541172060143710562453823571522450984627594370558353321151233896053874335363058806269131193843710922959379586141148378902964604801861393962470155619529361210377808214646132572044634628485731948028386684816687327924296026242327200743407246782048476272618133268363645973019602038174948702689607699515853108446855303982634149419059161896321794695316762514876088465678660203817268160953290790093819227857690582584611739286459726959194246330491789758952455647919688924741235772661233947419673465838909851093297085696385206860780651682233808208105938369320272128584781117558533129777889303285096617133444751928454494829368495673811486063343260187960314187284607317652873859554643528185500153321416239225323282353251903256447253733619967846792748264342751181851952329761738017518839504633577862864575834445070338763007977266084388338631090911178407824921380502974710015668736042128974549684324284034650148879346418751001240864468634882904166637589519590422249386457521887441941103775349816930001234613484713515534640695903386238374369197596003995670653120770578571782415977035362769636843362332560626734864997340148459403942615537227795497131223143892528712350963157177727694868436389142460918779942198927161249043453839729709344712039193021416504313514597732579608190057836687812537988739415960203589679533233253703890981845722102607524279029200881546145385664492009286267942124135860782522289771452044001117363288336539441677942553826720891618957971531739751307479564173855960940668769357931107703540838699882084873814864883449197788280897317524276313287856010383950677091746839234595161860243330841735652553456333324180943002293912241895846273277066660928864927710298900393552859986418459601479358464461980764265630559023801285692480889991852829840556584507551405977855572509614207766038878631506798117929026491625080543741187334400287816539575084774828595256412875919147399018131661608156067662774455085727813981608323017979259669352071601381968088478536460527686232083482686780924713746475270215023638355334662837831308333112565148511237024838360236522488862354854283537564417049772825777630690106126132767724648321240469767714826281341245986808566091939931792046551459572335159865104949620835119908425244004887677019060919049378319849533519370255070757813864137729777952081131097198688241984120189542680533064260935513090387666868187243788976508945933312410931603438098037509305911331157723754176282771986465341568095533496420073712416006375301958905413822823476843976800817910143086282568421624875207108241914855099713698937282817403554580998747122728955269034924382874468052610999661925346282580952996994315803648557643809716653273474174312464058632541122328920321169706715702830819432124795807828991317170081589367140919586343446581390034516661776708982046696780789445711156994617642317286159690453537061617719121624724559797421838685508888401025001809331721305184656311952303727552667008863475990862884599728872076573251104468955316800983300873625717685835290790710617073841929707207638690506092813342953517897665805642368499436396639058629711532625527246101536726544697325144547942398448538090871982370599032663166259406515949592487478029965215070610958626789263631626007754519718563856634836178087389808469169232798577119749045656148005647782501921042090558196442970303782869783551479756622876011271690843133165911587953998994079064740832151127697929470557764630234620579777265301243998975158468001553866073856347103033807203586725897114789833167415516226951938262844405153072085681681448315066624268230856218345963808020622382570527210955069885280857077501247123153986333338192238844437941072302601047147644624710897245284304727038867897559905208515396337500543501343472355735433391110943644916805794210193024958994702060461866393221283775074763826884219769919926218370593413729633068601813283201818324346526478340003346209525756622212868747417982866482564482023038574324238629970984324325894231778781473804930192141958850521983753198389214446668341290886424700897064395661594398495201064188625612924953525039744701035132366503337377952377149845813143225600113327452658672783536554842794798338375651815263941656315321980164126399574504696424610196418488077824110574036780051401219185665186139303639414162006690480535634371215364978142811483447642680376101253342725517368550073344506751100898088520099622036755625999996805366344611172589488849255152942678398200374520009041428704869484893703004864888309482305623492669026543785684891465649059852910204819297681808362103819682509648125963711125082084745999349523420575386490867070077221678262178389909407874999399368315647087116855412970353332890746525891772369090756594302640201977590301277506641701911167157856553399339872186529092322903348308641950381221414629547437936168857205020961647079120876200727113420090537343666179336328002031532257312195000358219792782130411699753752453281489590493534128822197226999495943632728245232799099015878604723264349578741613096064539909269546702512526923019633665813514825790344258148122041132774333335281139187429573214541802582960379998296333229470431300980696030705809249051686449810195541028969741579631165831074764311949302331642329183537556139256663091429361241286442552425285701091592837240083637543763918476896669633255714191801288273998529808805804604963615927377924866421197081251009439281646734484899202523206253603745376491492215077113744093923131281978151721441115044942525681630863565082480503968379725403693135945357457106516009085145678810800878289992526571861788431565877546122810711018218364646563908748279665585149874846642257805202072403373218957541601145722954629666418372486174778037529120921614593882462266691356624028106394591616680858407828354940504829254898629870442202427193673036126432251327952826873963612659111339028116959686019583439641203187194039741248032830091473525989925523223625215228305083995634419723589755734879564595717485817945035009306423906610724837060999396170008224140371418290302894856705542584743715557311569842476860900226386858716513724248709661994367965226034732015594644941141425908145488801708942679918175840940528112760834205703089702530699929771596275676280225427716279415999547335954051162874364245752737452837458957761531630501258918673797986929666022923795797801169894439392301028099486219775168726311120952262093591466401584666202136751648886614961042000205327393311374530252765831552400738395728153464064200194183847058584969711665201931612819237069675053202722558189626148997842548803370214848595274846818279350695616205585979424799668677616394490694522823741987830249584412201405189086979120736596755288052902854926400790234850108285059891883408916185891901117179214578607659977607401891304076136124865615421541583929201664541167553067188684654729933582321336538053300692306811905728971317835962509882815917087315956832758271022030082639416953203142530781100936532304510157789759266870243000052522879053178739863340275163734793638601270081800965884567646249818556695735518754213276758638630274158331587504669363848356712678101703014437648591289799617569456997080994168822256386592690180539452955815111006602339439206283699948137305005175784917685637850591679101416594933118972011138788157040955362712507190783119522247428632560730295295963652311818122473520644104642340888374373569910985989833518305028337235670269067438828164224437938562151097672771679409909929745307503827206994306486683585519994164373622682052914093186481008290230460689026368005158604551102027183656617979564138670117233202482772258682618159179471777951820861642971332496915920406216684564224004643778576370065759420958121658490954597674698450111227487889843973512143245670326134588962792212028455846232186666894561633245305976367277727160976574464797622512524791059757081482116196102712774922032493766091627295564282651304245694088074027313471471113152974403551969660326423373914451235508630014564881231797761703860160755471103331969506698952239939829455622194074649213817200665563871561365451818537850668425853324881559348028223614376121144928772788284875309303291799858245290634181536088121105607825341493712859768059259136443136897560249305788580403425367497549913535941195028000919891415340133344706149265674827147124610187886849515006756929852828079098362608227701823906635816212680092517011124773552986341230055605733044229082670999708341404085010072219262511219360791695431530134768753913834295672485791699853917469443016509101248688145125449776714229613114280843465237553620155648745167029018962533982818756535170365267089908747796176696912451127555967674291794595353417575979799946108436015377505858957056178908744079521473815705621015623431798197010555336092345485069492262911434878071172030620525292315747675504607101162906641812311197156078914479286326909184938057770284470968608643902789078989480519734505928094606983084378125023222298560682945821772262322254581490771761256854099621385145622895937172984378358996609253527433648862307847188091855970165225987634489226598928873196136834237091853168181273311464143426563884462366899846862208195286977639536213236207061234930709515552812287931089155984339387248412926072671305526171589856488093897847496085826597087873812794847256467256883644479413450676749171930212702842733629127235961396077975097150272892932130485876119544136407075858463353282554947406779242149325298537824680159992101866892805409504771313103616144094633454606666862582117187317099670066030486418568902415285527082336732290995171907563537149808976172222880240179570884653232742763388773460878062907938538027111005935423373494288785353469059421897987573201647048779559008913399723474942982564880841841641088861240887702354474559412785858024941447923451272813554434206810226476620321958962126180384546533117198921043284902901817410475846913583765309669443341257735658145864647944484871163634911972820238922162387604756941524563174037820908506818507850250664259625738079036709854078913826835732595794862944213705888515305041165542141250078342126055036382333673357712405491336870718643384908397057494183615991808380586746041926371143201530239844853143840925940457409149198278721807157050587845054615788627918912577949135156663955063602188523494079607872026141571457762277754077315376520352448250607509682752987963625015686648185826339187688790788753939821554023008907873819983199945340277074906318707868722913696793913796275986553968088910715213677815999194608339257728412371952574619669304212051554328775714997641514051660540375998454561694062718909619380031380912037550785392724596736253129901911148893073583276818135850334515717911184921305589492430640600017397412578763375615891447562941989747541181169493264020254033972472212746032448636555842829619255003231809955673233846630753069607248142517828372563234677590723296885663469812052609004900136317501121491955566599445452929839738864268727486775616110531599405958780322271378381314551647057308668917810059987572679180914494994812158587982575919997815422959176819291992769710916085655996521594755315379019271308178833110745890216249835410993220574333615426782196572197564743511360790733146526050664071385997736986495859853910364531253259193568914012751218262812575753010454764416732446346304098273157232448681939241510648497016682883191272067349281909052846087622396853008289803929892453484392728768425307979587739319632503852867848825217660012944470088056982704796768519694592094315463210944196490921334806691956862337767699733336095768960618218483277776233231861184390520568450733149478663629644658427347860305625975517278150722626846581180405178031694155584501640594594126589544950734978938602891649088698725165838497959772132169414227954115080733266106663656311177468281867051852882950980912491821064333790355017686787959014749009986207031056812951436617882931128788498899196785065525672914298476429651376532174681175445756146494198908489347475403559766920698917663110181779445501577744133758806947435974891859991481057172871498916729136138177060333221441939925718180496921880052313618548320714054942367434399455133001380791957167001098839303021480355637242363196701991633030672178724012813419472068896989553658499179667304073701945389983018927813517526516415147434410876660560224960097434398509633509303433566063364221467350721879165420699094026733406670724884317210657335764327783900864962420893855930284278427026849463202385831700171410219357823852005016532852835427508117396442897859972085813162764883099157548437352733290570143160149947506616249227169842476227590430814315255192478221154694441433193306383377852140312902775683564007644148016439075698901955828700916571179702716789744167458624467614879096573843273835556263414632617374839969141200862181319853091486556676284729534895121428644519356063687758732342035208501148789339399478082928036767781800557507126959363210885780488885997513394260885069585233178778198114450339239158487296270276548023732270345552973297036218840363668935000724043558286018351711692755851511060454615912726089959067228976231804946429468564255338250588917754428562924595979002337831276430102185146138714777862373681607058984290148394919554879069290564627979001235154514644459827674646659330933306037674208335472645656254898047706762929844283570889113548308776898395601825095227256586420926738767788913204166783560200008949781491528330061225286725283651701878720078265625696577039070828185897763190263282321632178606177930775262531047577741131041242697583432444271760894166000823754150863835493255462785907744867167650596272203469443572327217507245406574171032445314569431122397106916687457845320323651440164365550945194591412299532099185197030980047562402445001880422292856099775968446730024860043181105548848000120669346359793948381300678861917755170505070004692880406939608483610439822111515680169689031361979767285114601275266379544182201757566382613068435121934015220704123879917774913380955983140608634034001736271579004632001805795154376486820834886525376743010147742987298685952630892422755716154235149077272036563099479507605403680357993333194680418412678503528841287230317211095693542988498106102960527805556995517801537720147516969260467809801570280621766216491569887967168498859915279546366709903736525233882925885244739639943764672387348837284723831058928653480832411930734888153157021280876969553774307000541080871097890424029679470352212215737416708849262598413167346648113536647327997367575087360730622514917383185180474844852190812859523326740044231368493554344242403411501639943513012284959769887851202626464189321408152804327662553642625873940390206505936761368010334043805205088674789559959989725148583024430882502594799272120145550220364818291989391055060253797064557310570019345129518024412438237426901120943433050290876304962007503147633572880936124432281892726656760911330149994393881123326054695258161741040036278215382180233276004384295835643595712516424114276487149125993983989828529463861102444414743005976747305750130938854911530088313539903689645840338463690371060009374880539757477748662274335071440312285155130492408226620791319736585480637996259028743100595265174193806667006464809693224341632210966240343436634862391266714075039484059716803864227682443604615064915199892009746607608738590723868276674860543383462197682220045828114993976341058197296680982426950171697110883728754767130921608579338962395142069250060103574900022319719546268708711470265001649114537514902444911837539990509127849728923966419694367282080165026223168417088454334205634830673088796221962849410167532259699012055559370997633416704030301655440111449605248749653453844400512220321515619287651376936850519486254982867889831692385766018425665954980556488010511947965995695015394849049081014580895844343356098250185700397534788178547987705433380115585288787590817310031335051056247170120060742401246512438026756810194850008263006184938679168641155468438150104907982804973383608106613693331979695536330397665891327979970597378057235643276552101600895112149001239058793231872308129006568183749704429803252204598595546434479991686781979375981984175577112032586924518564808815045331604446804396510055355918802040272359929728354848924626220007226583802142939877668712775641392584922038030079572420220643840214118213834605130185710751622199125482802252845609544084119002437376830673086573640754558568837507789158711735793488658536827239187218384923791706553946925898247122501550194801615585353717507371130522732309554985134502334196911484198216628286171851405151145107082037707670530865632766805108240332657531432783114836344659042338564251639388971859157204983679723281809697756475571640611004737324808467064017401670557633862384229547671397716104141825022095074419640939494981559296767633394370952437453335418335369277566390725492917069121617013000903960221713467678287322745907396098184681513404094292525918599486683902406432531376333453407171169209599826723111446256231344762307866104541212807079178405985057241260273645537087842009927131846292340545784213826025927219958371022988410741315732051387048831127682044536203273092869492901858571506968997215847043540494224616160916933408289783729427252996181877349840106349684204991944171046202382451583852588487338323108093449884003889377307901550131068847637123431332516612095491630275733371749240085952256687174855708473862414689950669625640397068629026590488105497932481782041891162605431127553149171877074074401836448685572092158689572852572035907900839685155724447536696504751161944251234979844613695643715790035435659985879289071526721438436232908587131505541012749416819025940179351500363986644963868403154712301779204366382541121330567760470817735526971523474568204185294988567040917066832950036136770672541065173301089001932551887921098157691757672031774176915915964575826560594363703562228385340771184352295263665821895147238669743632384094627284372334468029565730797922977133304054879688325961020347253887597758566009261185564346715274466219290978191476571417963839240118434704606919040739092843034511988824865787504542821394866238821610830892611308070867295952130768561614492782486626695239781601867129885053872630067102722111196336283647584300997370560900731381132787827739128248335916857901512105403035153947896070784591006283067640223852680437554575702620499328400745085944137313132359749044638938693979409230831876552529111510595428703497161487135563162716891295472345725297543377060382578933968277212996951141236436050743527370959738689728159266934882308811419164650361062811097094175870694200307438457254682293612247793570946309440495542585203554306277714945972364555765629012079620240571688681758642859480453529939151259970901099203361403297583985568024640270650906247459717817108955576636387820021076479133240867156602855556784589897814289524081798240962154478658862952985369100123908309617165683739608498704161010011260705894643396345664606209969639762745456065816432772142838672484411499678010963290000943745299386723230366964961149329241820815089451709905536257914250023169794518489718647489500116838552401817753912836346724878333245318461485207944028773903862032631695604468866865664380202954065704890758738476675081536059560412721318686390211294930713939534493904195527386031842592905073211967920894259776697894460693215649912020360849042763112319709858972529590914513304787596983936105722293166851862482031800090365122905620328520260810048442909341362139724280477666374176618385173121780630638880389946343694557235913331399700941422111101896683829542800643271510276433054365092073593700261953827079911228418598864511837120391320212181687116097814274419401047610257585244311962680859746866441489527199422454713562537282105930188144849450128728830629699612821047713324780062362644221508416462156148460030209596248564099851160825737700548676336291800122095379814188564041444964235568592305300001741414514321198815624286098553433243195120875653098413204967988985158440140225336889373526033464133108734209512777958600866309556906689208614851848150459552183550209418899687854673596636433525133705966075013002028581707794572819392305482197020695585167409312528080975917115937568536925821583974500791470753406546658736082704269429954113490676757374729055007418389751964359021883848071197243330654299509970987003759808721008210073132560997867505338771949912476935852060030079646846090836383232996806856806174834432461053984310965552148316145424407943895897644517727326950642018368264935495470174052817081062491017340119080647156519899592690130206561031987798039502884007616312639733293872015744931623754249834529396133446685681816279508417954711838077714951248685364976004484659556117720290761524911394122315604275570390731222492449383341559928086519395081816629243249780738598133848496715318507668462005557340585563996420405869126097630051347950388115151677460839820903638518282692483046132340728954167527475617453761247300822325660141725816780724107565727474505004207956332511838210347733381493292716445114650905994458617304087357882563889531738632140643412641441619534755513266886912672992883970810043980825185459092154704958692201315583505890208827019266685226805992489859126586750785937057370135654970531520011351165516460037182970340149515750464282281088280591044769214245725908419372671533561371679048104871143294830516067600711228979043053204015196506490552404623894004776274880892229141376445711575230110383385570450893789755773923113835592004297684513936594396416605243352885619912911948650958481752362326142002698654685594867473206488422837577710839841979590545365965787021881171650993571297052042850193896959318210039669983420857144997487300984843599372824223435496475228058877689013828429602120732893149376070283004508750482317742690818149585313764911124691197744090663262970318437167777826888718752717671779565987512061845802505054120473608879849867496387299584684665382732520366114135319656263845913249005314751692421683671460254853897524727816270493827873644242760799414455514167725557691901147511916526493681969439977436116834928919706964377315221328952333464246482574346789253073671432043684575926763401652635795273499428623182278869186533604977535199148865881915526468712090364615160182251953808621060996975051919248285411813646194559789404818446034104711861183200620507636036345783300025339029820117992185827499122681405045622696397484434973923576421927921757033707548099167564053401233629276385724556701303330761683713369533557445015206029714351350298148595363739310278991757018272299420973987646850658821827014549935520526040166656529003165472376050283704136103299931470811372098355593583396420236182529232035533528267328806342644374608094058806917195180945214538553777381758792580356960344806801903434114634501828576990139987675576930565077090125745977112654855269209360909835543658654481533395163417172739893489211398087383940230590070324318013000322233029707262866541756049135634371145294356984679823516737515638145639121139890432753936162411024742321550463234290997894891904233019436992175330155323305457935181052343680830005526334766768544808176070595084688817266762446647044995106703484254630799641182838153975396965454142684064811667453346579805723118923385623843979826132885518274383656862587098995855236680564861415501339113990975243002575585333312161408902162985596933174803755788612301132384501463502741266421607325150368513361284691004540057720814802565474303285028413250583969037324777659104060603445736975256241499597408486938960632543306695817156005231940322588610835103763772004190152596139613181308664613354597463308740703442541915769360911669104905032820298343961806971635398835396056111443651593705564616135638515660461579519365909487176728572906075739183418856401659986764456690897783566068201377026600053482512074965830250699754481804436504974267634640926467327167332613158752849137867786000055354789677588059073502659302300032471955504239151680688635414564798809806592221213921665284193915257727658772424594504093130512973931581856189242839622693184267185160047771927712015288288975749353623495801574101984435133064405024485426536403862659637952026697854396784579402298206513026149119483757101855715875179917345936820202833741306948686821322473017383342641848053356192521618326969801804302704513406129382553137235599148487067060748077628743259244197613526265916656342622768850975210634195753396335803732480304121255891051811214128188472281224363681357697995551850882939066398762406792311599029351539725588559797248030616401374655655525209340660057419300420305749176772584965127632578240346245346397144947577734799992115352810627316472078729295666875953633312696282344729475517720238424891355320065066170135207141905273558968089521483695253255416781043300278661650859023918410152197317476397014465642588733612932434281543944590721406535735073576064474787510982343816019141728592998479871308368928232512098249536579554000936046380657245987176904813844377051319207273971002241835120468807769669848788094418942517577760713025311590768094571601870034245633931122638139263330078063884920707799120983170528777864201802637582904893199537514257775648916444245345148691944646681135871348384026732869031440371523305209878682989531381816493874062241998004355088396077852814888019779356394516512684722432204670907647149027550753264116236875943685056966259308433176666732835617950764798583529080791128164879732902497966512530502831808940392932379310783695757004924733008419436739852402249403740516942224136880286788710968280356405638559975097410468539755181698546972499880020986733340130107025345652196651261835459837575108918652620477005777638044703401106342889587923833846290517170023982530900424546021607961911139916127445383289480663037099928108497644141878815081293799319259249598494695595694729529623778177481587233319142551365828609705385375901523715970187263585321024674465742719775393094828065562950118538719352207406832411810413447136380070734929105966695517899916163785478731003956052027530109957406472030194451706541839702323221103313547278078343926217003982632808474847252124101935821592599356272578242074421257310898961956353787603139691374110122001417411586735422260825420916784320804742134552604022660334133217693461768679453931459303957415153529300612043967322880839042579836154655944341703103901573857197239117099987974979924038368392594449746537845956793772518472883612570254136100293868970609878274303172437969809327463152934700951939548147137560229250331393323777118863127785694269552456791664946109313526391252898714268314746152930239017547041687345284485783149358322036687381061514695521117517722760872461913393805888094687861957750964998928330507162947515889068537787638648861395694952857517683910444855776050946372327808121164676315458555807460953540663769582573099817458388883433190737522839512812203157776874024170397752458340685838770128795346950284719714839287562313381699338414823889401666624693363416428022160814729782020631956808811749645263051892531787810684909124120625127957669646563105972555356313440750246269443132639950964501424690142476278728841671145566207556388707784748510292380439292591725488042852378581254378904528224148714463412124877832208055194729643354740349454137378384714659134299106701548139558531622162853451658868421117854879367574324407690147670953695550001584463116776849721348721918292742390381601589186159865936307780332827008756242148463777424768695097671828198685237009793137462217423206664572888804028970705825487981849830254948390919618552150142911447621267321400237314806034005425587284272805641239410698389464416163690470746091657625394139757370996232086092500142097409305827538741074951125735457512306464148704235334376652646280215935273257737316696362092576716372282145244147824283537345972612453651790981380472106666549559217208447985543586380513836352345960329456764287605090054126778722862324045219278387158693626122517866003177934435092348816458104569868267073996789051657398036640616473773165709367386562220641063637172317921683813007302776785946734638800452455365857507747690429566226347434402303602750035140106868542602720017202068547004900270298788030778741728359964077387146914060700794151076518753701842474010997303473369303539766874239891940589280223596901670918288172755537511878560431906079017014164402252589244574741873373101215167445810698672425481264800384568187119123738317508876495256987065523172953898644275930607921412358754440021421858792616441715963052577303609359996140372190315255448252985411100660307052990856830211743774509321736856056348796763002494501978040370468663770275296779923989356467045750404553269246638103522423915864017629806424512937569173421662877171693107884961924760845127305761990137444450775330430279483681794846529311692211196564608727209976457719974438861816438229991049665005878357822112126267987092917442993382294220200120218005994500458986268743693921167388856685112488587711000505759012224522032304067536209823626179701779748789603013421299632068294170803858569297451322024474064120139580028724762437395260788950142107440315211313156454314163078364195570586831534615284046471975796618419423514388247639410140789934576974410651871916459111338718013612990029525447669384485625972812352685517430901768107934680210648147646547443359876587124289424020092164191653667297523305259787253164614387689904880427066771481722509653744059886351598568493065706765441778745019717293019820145589694763093114124618116717973687721610602793073988623151104754398448806271602570656569307963513240348231058164551679511691375537152927066102338755764345405630838458007008273165432821813786969466944357978910344721646338211874569942501175980418552915600488549226286361221144609471280436939483455893379651697704081532391716415167139072902345488679115572021246762500532064542544788451402289562824753504812395454042253316728765686005704280982615673960216137431516124723746024778353040005071552754279275857221069626353971072192313265567952135779086029765943803101988094244283328546131652808868162584406950322369828541003895931993102558047352694747204472826803950232019989040028829128112294087052324700126701420531579770413794080159515723878668605019172835463759664612979722585160510921125929914784990290745235821419060319193558410556699298174338421392898322373873496034053463772220302629477782858130327108065311150857991168423047300273581060008441716207080545370466369263272185947816318250691615434753961342442992283680467431714129293668727800911113467055058604892643753558145086826949453861285600459132072531866300147236452209419200564562919366444908033763072114206909948183812582835255926524512355272123292822699196651219620453336626450052758509137286238004247526744459545929612892975703200444812580638268949387214466339160925417195675097822205534941007430957600487124928639656392567481039312861037415376664955534664737547893244409168616924956718611486059212492602365784587960890580319630093012190729203503914899590624289083651506976317249512824540519464182278666035264729952166300186946713436572228383000902586831768128655848793848566558847848799270719333125326697906090586683316140189495149115034759161973701357630662422970787680061692848289631535883982060406186979055869939684965257127744404319360220308904372223114246485472164030961897331777562740846800437938152714716966681958613466061436023157865598682233715452799980910700779452495517202830028147587944375254534887580428788247613217041017643984968702448547368319556074321163892430368521629860815377327811157725667306405258609427252973577794959384356486064482635968965386998835195423454232928604804010078656131871513216316929864834079081149184301741777405699381783470047626083998123654709377374038984147998996157132623170076970480369396492952891503426894000315698687373175526341426441656208344831867592582358117698503479228746142850311531202301853472645236924108690971497982795377466281735515346991464357098844054854045294767694649376826375257934101346547011972414643123205829634952001841548852394851758059511139511214749031129689891022555327445444849004118012914833023882379181400872284518013708168281293881542052532123946037340260536678322320790765506639164261357711280520324242151754401961192622580246047393211696662555424275055976544023526215671956036157994642473025061189895554916650823932291613910003644712815304536948348522568543481504093051012882380648242802154621237504586413522744834753076904394005994767387234552813190069828322353950989529743232098098661354230436584704881105398374430129364329628590721972699115130881693656088366430325788598635490073133247507251575481519787099219448616961689243054166129463085726641673682041828777907894911057446527927162099029851988521986226919173134797310586045404174581944829310917917033288385812026690959799947410701876910315948088173499742548045360077169196176776084806032495063476265636503059157139236339702613402796146882269783583938737765071570216028371852616145542164777681010211025626268761795395993205437732775266746473466394264510437752495729655345863776450127480245539323168152583849137401577233415326175918130679572853353613460784947223655445387049221514321823165572721104512241241974654822410916092792120126662087850113217202726689820657942851197985659280704448293716531617370257644951975086752102195674070256400525498011243058797158988682579786821844070742222902271099823618782466100693257231108991252175628595952727426784392094067505164968746218427642129499921888771534197646857484721271454161627678308432771200794914200989447083186279885260500792030403306130743416126544985036259294499611714543994824966689957038202999751263862948510205607231442108920092151561734100202791163921964413344523593373602010616002859922866091046934594830862330958842145720096642738528499349792579246928336588752960557039120289212666479101129317756198890282852811667319274580047967045619391520789709096182562323223411965908070368843085475960951836617037617190058102345735117979543858977089987702120337785580334060618374561051705146465569157781407349367035348625866565284149189337031878433983571950838591854422581867557589445625433303425911417571527689282619803876971763106166864618636119351623767892124524742563934814269221969543967424418047636096994878082456291857579331712900250032244895871817333778221991783516479001154188981684555214688473743825652142341841354004184426327905891037247381445540766479558341223664445254152251395162942801811777508060613507410831551090661282819543605569655710295506593112965820439841508055302333924262314605917901961473959209529434298031445490800996824365355680194815222658807412191879616222673325201420849905432843733505412136315397224436114371804349241737991554404174959059828946584419804111279604932761444902177693026592226736831616263528430214831357367849297784476016074006365641122963746423053262731284255525312571745734319511183620732945800142349504565866348371522500770810079019655472632400776688298311102312174171347548870242410440539526910533592241096783145218875491177333244713831355556274236244114905046264510593434587773920845953832049400296127663934110520442834143760089991539996690299593924551207093045763159560358848606180723903995735435659700637901943346726060887868439442168358728062582627054259676990163349480381268309659891546315125161364744191302375113642719513958415808223117493104585887514577323925108980563040949314921146701752600857236524997880205307780948953041534294312108357029418160031005315982426541055753254234343793526062014661698654930012946579694629819376507126115328278933489425042315298957639716285735558849922854345385539526559947162964738788659267730438213414981022145330039907709889490998281447034025800827376126575549680422189106772107310811606372180767443618217309586204907993900615024971752789456949277915581801992651139176013507999906289458854669683345789989058297023070188608349954433645792475394277100353025434150749282381336645325983991487968124426403955989943718980486902591646865954934889776053416108785988680256345892583285692131193803034626301614521529937052266630883602414802713566482525875017351976344694256974023186507321846945757659450896438166153937625509120898171303581007152008665609351341295248815758241531993190587375398977432597693347886131629724614304604143485459085619607914115911168495344990031940466756032333083183921538900156264227141675763141303475697302709266033544589591192794143632830835250161830220262360243859176639182919276708253605692556620077228227828025880373270408505267573155192028833059046690319722991248162003625860299780186786460838157077821416223982945679608703279960856820501360807900243582301918806060180692628004315508524191375148332542537105957955668225929370563989548718238779468212906045285773625855616460616375143574142073738293478211089560901956707525699087347291296565737730991964421789409655457293544967068946145891529897621910052072827620619316966686778449277460735586909527496473715495011945288262097791433924583054234299135801718828542496446388480694187457847819788483551984791816981087820844584556447797137382076183301150218077859115602392212668345196143120476844687489705187400750388613083212168846846521801166142193086732547153659092548697620146044051941862538232123651921718353902308261307929100166677263199129385985358085780663546478326662197546107478986789361072416769545715101782208144649246460599392284853293177920168433040271111801998641483218835488610761688290200773569122353785283104944635515901062268641886003367912048666707774734056528381128832925738617821578369380965002946532225253367718825903625256568940134217129140852957768945736541031401277692447148661533437295089961646375657712979714610572457313865439161763122590119919987120184303714986911233060527679074210896718535448516883810861192901255777465404829068234334818007749348931183693396601400980938511022298548819207915144110508122964795111728544023781905885883343785082259348205579875036598528132053577783491749107170476684207937828015379047192384176922295217978026902815666507326993548752375811602528580063476544750030798360779918766925324567715101681123538922621946654172206699635183178695735966259821662653033648669440389873527948811565205635261813403352979823283390603717889451848002432861681223823125995266319629653545184570885496339090992440438408343577696173062304838933940939810509334745020720243667673154068202381606694963971090737268239954851672826266394107530106387569899674809785439998119228283743498012210600944094992391616278083374042799570715452292852967713545329823921368169120693967496271071706905412215317009559535791088086662720231404103435685597566839354914273557585135050438048509855429266718412191556430499880974623876452249900814730997048393808109417238300011708224258064321755917758398621864241684013702689731843390719244027189931677266253542113317795080935075032775034089659666989540551427939118034022346958362963834112216934028910162518054019871182432463736681314135554383331247642831340459238422331167807853060044575624467173625080549433922226720528015756881377567041419603310841984890413194970229460249844386412156642971498920317270022452293702522394539516956150179171603774874146523783116462625920827258868129037483966964829507268429040578486636174342494989174358007173761104341756050699660243197874349428970922422400233492458055122746542829073167975002119813746256467701384040811924935425881731601165083498880736145770784194142837164943320128417374562414352012297053831302094129505633773192626882742469861448828982383648938202879947267181658067107131736135529365786583123016633034471631953850593722649472249023704681511475928922115526507614263927971025014413906779015555744983208502489875068909818636255148344690316495654829620248166064225854260566494095756822295004168356503871343568077239959609639063330997853591149899486901923638655437277522655274497558148604478269271017869887130692617868835862565154403102047231946919018781256915067787305365645125713764744427707625601819907007506980955862383832322280973232478559199242168591674529430013108467041550942892587620222478976237215763018518909900355002631491096928197450979391175403006546716877606488888521767041509861840857907425607909651990322219713196834695663781736481367368804290764046745002443131555169634401404135755569993501716618254101073786081032960872185659624488277061981934976156647410045395392274717588831425045880697722400728428708828303225519047094231757556643701503534887183447418035552106643188240818937611532648942870836327906315711493355844832587703924039150722756655405366145495938415320279593058424766805296437725062911290965968426240031703827290695212745795137855187932603926678315719043978221037250176259715334618151588158146889345182665535211220055146055249130593903787644712882396854989290218993807302357262505876901790856341502100325647281506076363521338289836248853340930962822731874828916219260310640689734872286393142289428604443389111574296168077669381842824473101284326620531033774019027851872694850361767544085580236642681390656906240925130556192894028034811082681856096320949699214088365013380651985282715655682917932088496852344764411307238566847957794741545959185904872410495419883671720446510385445017829959093104164070793325324241914192118311571976597146710220770586350988545275877597741093733093217447419135785850490153446947200616037289253897879104372785630188211376987095688970843113865138012636960037829192658625021600916879462346631406830801049115150577628549284606940900931248870952011250223925834698346046041717696422603901033812541758876591698921331800711564152064138909648696357720692900055198607037987660100605956858531570305641111596719968454588189160114394307903765792456198643273227773764640998605034859198298138030852541568838399104949664379288628992165239612345689891049539772267482198166705689928555748095640732182497156975086063270521282505929912608965495391259561862197310140045596514153463133952735176556071471583909901412895899771804260358082230879221152077733602508691357683030751772753216516281403583714223761326102355496975488157395521548110125884977250151229368494054428483663918720469301592234509726006015207767945785187479820484137524478284477850982588388143821726139845814310008190369272784589748671097519806454941951812904370844721848233567209070008661962766763474523710886989170141213689806626919108801613094173699267509174034898682627282553457382988039710900554996158857917973301635586591685378439549502388488731181951658476788411908030316329416823128609498315436621574586333886297624701007779086437914729254780626054662298227862145714214068409609125944210286748666176005064823013130721894357821417716094948433624571967468019807426435844689653390839041115392038904841236461409796153515488241916249908300024352594450559184434420410645468132793749469788605131579507122067615814759606962335500231096741517342877359466990602694447780908134033197730753456685028793041139950469568756485454179630387599808139693884468550198348874555982572373935370815357212321879263906666549132651994236804726180746539340698975047006931782538665149247027781929559768531716045724767332946181715571937021227119105272662776363299634382213106454302106056344246001337208792090829518271704392766653492404734210605818841697797935331109497707274621652564907127653989517005951773579919115347013125258001008033908606544151370475293118943425648780081959293221252074321027432303139690526147122398297256170684905569900280061406262678781077712867290392127545407007070271831156468348383738241419367495364064930492050233861621457994899788236314708795162739251316557066407164620887278715723587800600218453546880584320554891002305062438902050165731131775677678266718514528447168555132721514754942170632880747775203782231176552407592224645622895507044015407218050797007228481873344028507592724943936629332723255638956685082555076102109891888284180473866585482836875804755465130196741056221889987711912420916844955790063279488213437036889544518899138201004308418060490533917558939741343176281346591366365317116184346156701286058687011068839281529098468976283355005883464435988501999150301429709400432929513552456569640416930396919440220938378057878027734177663549249853478743451614751163091099413273726827854268955084979010121298697475045059520131269414814669363004273258954831965659362097822453039136731468368682623468910865522763354090969129310825051149126965838807547100564202408002677176816658240045088481423091065538896760040842490364905060674286438902729867504852574902093002799540275582363137254638223896367711461032682235541831471852836039561176162223442632086280338154872957125785139594209882455849302302752511442249292574451340386977277888403862490044739536029127941927970332402144318688287468753219215393344282333722958344908753456180573748946857054323863899084025404085331193782635210281940723575324815520564358542642338095453506182057331060567045531643071636215016212388721752887107266223974430822387487436852355674011004135807459853890493730045451978225907763606433570733038541804817062879184531034304967174839358406734617930921527079612784506872655210686635531145791253541083483475922652219319129692850604657296465195169099580724408070660079594964773809971389633522714016913699876740576437999081259187742124690458184888675452726509877241887336893529171724589157075172883003570822599649145508577943190424493151859543938897838615254478392079958774480295662441098932347110755452052210197553765380042224000024192081984702400015553201873088570660604180567059686242753290309554050365137303748799913585687215756098016885508562046644467842296671570628576510902839853692640848694744227616400342738718126210041296893554190949143551121914265638321001143155025815282589133899616310608947235861483630360557887643333041348560691814872417383051393147162471028657474289142448300467451912144641296777064222526669299854152187666816825242905542097176520954120154747537626442590474368530490231205736040934674275289461201824687853698692469230423120700831968489543742155583098404920629472658200039480133020492483175682547781416338205765627772111871976678883774588578319617404666041892127087317399770150315223967077390986418779396023031736543816278186404713619181988624233923080511168985184852643809950283005436039632321268576971164507831774006316779179364518208852413567134225910005332879365728627482153542939157985914984759217285725896365700993235910845689674721941152943465631962593360542866912296288473937757480055260938541909591879868471760505611121463328083109902845156420787799205674323536222816595412896329728148086914688451680593260856636929232111191956245790045094177450556020056070798450583684299823681086286408995288092296421162982148216877292721113332101100274202236220649254188952123657294955988320755008518893334755478099679403804891533024477371624661153920605288572813798573602032020688367412168991963687070085739428421179733375666653678702379601401283594879186211509616179376857080112601694778642398016803652713758462252315827370439087345471945853299677144082542464132567206702094176889952453120583152250992045103013653145847896624272273844878787012569926440915468034132220565578453811994367519270797891541771934892602859366509403321892838431761777543227228859248484990539771950959754752127155142646202714915036232570608419615161527478233002490428525024010780236287935883192600123908374606654970695727299354530536271709643437127052880499981620908272575323005295739862530331711963548290664572158254221075679444076846915356999569509908166748711663752660740114074483451601537297777076096708580269067931848062700678868657170443740195059195564677180321073599455933340108291685392198363502951801489615569393891370355429452861715856247436487568984530858382613555823271483880782979135715111161200851654691124984637684682181463738156553313404155867239408455333476725224199706149304313139621699147549879641668135362488380444314174773398064078612024514416933733851989794711105022462443475615624413385453784457650768482824821561781965631405189944187822664459179419766507413639102609523845971746887953732431958691575406208446414843938190713983531039001663240406727115509063608899037203936535139076913904363822643770572884965065252089205856390304034980671514529760883016271427795570240262221534115807788059494380633782712037877864172203664353108123058648157817600089761952894575824063497457164676009121852790366622321223259004864024706863532589822135977979964630662215146296238207474727194680303171798570071992578200520353750389414176380460822780981177038787879938023036803816540020367336122597668870012691450174548721906953746485771775824523604894346595610195974429528528501845166743250474224264929810518657505645268608263172454910117076158267560609848744189081971148437398461353909094633781029507628260677929989610109848087763087571656156604855127796403907211275461946809744708282462427815671510508093350929673007586775643817260961786765073192706200534931150897197973628241641432528583210485402198321270908933209033644185477840278402466582011327921866930545912581945513899369511119322909202442277443431376017211415160651897998771378071540136585192461505426316375372289681286568517785770817194154370791160217875550032191930896020478327299364000916083337424789674712230360481426388438891224930536029421355724336702414184247755217129301089994583876240785889887842117534109221442729053845872228305405156460487877205491727870068091246794579804806870510987373123791866955329584864834740435739150647686946540251957973549852570044522053103233869441768079511031378106649063088315122970882387748091680283164705177767938796896811961521350060091591501833159412822454768822490182620010479842852058753474758943255918758103889848111749878763831496245314337373301807426580301835628231402649841806045898326153391254432790902798353148375226044378363820681873784769869153967638557635854266024261885459927430477577832548836344279326255220579530148945903256861529809369998883732307089674621512963769259988252726460051581435909115195966386569350057281472054146503971332311034126358641597767108553943747563640903549679823698940815836909426401715940244895634539675122895312072447847405674492230335186693878057682350196402761153004696970047982431483628127562162586167980913368471999927130088474076375297128352392440666002226745290725922620328446723798318345140229330186176418220659255867041628616771044754424271401511305040340004036216684745688814588776377722602815645711570818543268817152342891297983350666844730042939128119337433801264016006830007738552088418616488798897671524083230637200818885804605723315275316352782973033483574004007822511538891229117399188719304130233494301474130167626472472504016017925433232602993260528050850081773915143708370228647646119784239769490319864690232116852092177591054036423521678561544193141300379007183653102063625297131477396411604411691599500179056707604855834943532361512585252587903649990517582037304747599299657145331089453702943672841838298488940957599654913826151853010714662344289118713654304425434475710952182810759174148732964613056618194150786186006332609788683544858270754338976961837758990195329311820044867867949673101679585150594936631005043579641141497644946430426992442884548368336866943273017697876099271691978876009984845197708972000006519552299541619098169481534825761155932605875193312566911111220283951784536825439756316546934848713556779472419003110884798308069893044138436706031041304887986774346381828880612828108329693025524024448485005577986684019785094619561987145886177994914575914557750992031934241242336235826615585277511280768007890044464219852986823857219536990083247434213183334704900293199563857211871464830198725217259893680580233781469458630609435216322247413321436516921313394359752850617381195906882384399262817750092491175493433599705461850129738005129042028138288828356960107350627657333060587733355471808527807685296624368723026711304404143247070396605519552261068573276520605757275626785089571566864685164111608603381007605634787543684668954615278576577757488021591846516497680867481631185992292828927515187852323032646797450089560954903829964375305303976216847905886438108164144337008198104597668847878577630589852909500018280883063921709745640735814193472059549801794908818323461235123296811200058045212734668710469689612464259678635064688566660283006755561992250440335390568935054033359976126175634758174544918050263217248938367548685443628012557777098549499464053477582025151893291788460904434964418677396964309990231366054025779184635124133062152911114719511071222742447769073268665954141151023266793472491464375251641242066507704003105763133710799014653552651234170031981419958282592220535817800234257016674618454399020138688799387842137724412955456563400938019767423281151642880857934949661145952377982199684170158624897489717305296011030504540161432663251502542510574968594565929754937472637558683614837628306182612506092115869448765352653772911322157638540340277902696934853309802771585342488504288358999458339542555911333303532136809690635715240204104618223781333516544319187900143280151502142858674494342684646031965103964888677608170106923819227540738101263241597830836135899881630739795213274517747674326081875469281098843112287768066343750775208453244772648289137656640704004163029080281247327364721376260461962667771154639081702556855245891553702132991810497912652380712911944560559040962206744734131404938215763142879181319036931632811883107207439022943951605542170193370900938742619398234704460356317557428478409649337340401944246300071615806524642957869717775687512987151805539661608956281294214190061611446457051672276792914185577883177065819652299015145925629783286123607170145318178006043057149207927436807224465315143794941865612408790517970634778912001720672745736191529462668322290828286559248293785527427997974521665515438727110716626364410295359218609511319153671569473046635463401904949820492644291064307795956623836699600624457151554279387857043490680425977793965585826044874546519123415693635196922924029198500505357365616890897635356776330956713502874037887385263893027962625171725555313697822577530683746305800137959084585552519072867509044571519631320546792589914835272376788811800556191477951275131469949719156128864302818418987440147235552432577130851858829771097675771185066294224571709472534449792967485428826771114737920623173096973872276032681287499470016064166528193615533369065280512676804072207262030150801774044691547213075227808086883990398230374829970360106508040156918398276389635353765053995130375258459575240692248801137139971944468847243560686804836767158960941230693837318506107782810591622652277592897373264326200605051170846723633974154556447454921669987303109714336692344240563586973921886466228999865122366141179729885874686486889332099328098140234722375015268213228958026194972339622791656159271640060441876299283708827439071895060591274121517792716342749712483188040284238439649789325233166651892151819001494383924025607477205904189584610765830475156467077625313545364142069148924432505408313520440443327081174536765666917794364590272514322535543801528814560413481201117619009321961568657351879267735771636311107732265731091266226702801612637502191937787424677475298700344594271556899476198052006419746515949315916054953897002240412874840167320104341471148385688027840578226281674947313543785921389311287097375324961388260724263939332847228180515423219282955753338446904798850249899477300212154913803802439888816449853673895432112852831014835945990884102327161149087112136242559474643752862623485140982172523213042295009756781770451824221746139640091151706299241646033972886843256905920168693988395441313213745694709499694623615405533104103120910517413196337354420792844008845663970949571223802094415745715255122682579602069488400817938314374391304302023308180337692536443505039378596443067527906136309838959571787979292852070754814423135312240348425402731579942583231325125488173974475245176544566336511709361417165895420641106858254911875727919505166300224723907645525101790859587519825182026634802751074461452814238248962696490908497763998152850513238749054665232017130060166436350632977593958772614911076020868631477433170548079036689960687050597801359821508464547909601429931417438376793924228870138487790567912965544261928256940048012176395707221541450504528297945319756806962150503421205739007907579305890234328418163911201901239937633290429289407500377041666901710696954360210609260422848666261820315941042209319824232996851769112619848179453101867720458834992819852678778834814276962401069780223476277959584971804184677670496720013343203562777496860319238912012036387966715984276431021478569763761686784267405959472625185967991627902618465309427715163704988261416534382362001169970427991689815743398566331377308360008140697852567938080000638806590557338588276869331597957845386969054941482243982496263590975295042187289763670219971237699418324702918755040418440325385575095118887249277032872903273454525671318207344488514216507632065846078512877586563224929542057287790582424447335255896658790756068966479653291783820307034693597444460082126376542036084400214731830639521071420427718523863409934939763574573292345066558410493014504531682398975121719413980615249715216827924604930811029154927911840140232727882758281363434023134904041093118969983563302702694297995662904007684083782111343710786948280269429291661375287133995112843728789524477061535284331476805033276746961110429566369069784524195338828389607432673460417499216918476223015079323231636140977519137458238894856806407642865750503327933485801568463495454263460598040967794950762836150631441369474680427700848988069727858558458040565289981209622351167344419464951394634583493818415918862179724415093238296222225244795477905858582839045741072894928969605535202777240339452500461416846157751590638235202446438131866952913469399094829279192875124382320218435520063502583607344988260503698267868623601368267024046006627126257566482624564546915158651565121693070211965402258613654502509851475209786702000710862650780742112555700636357795055683251429806820504522154425278432160314732982063931741785372111736176871655669823929777121815847839939961775766554005278906662471186418317673775035016538230464310656677396375120206014874654671809049724459512078823423989707897528661053781497980317072981375483462236693363307964669704844716585744656630258964765166288335561928862966927026411099349750960959874477162912305408459987426270523284032256583021907046554705564426720321642773455035453267624910620196105218802632938289996619263842236612916476445138530619598618536534572275680502161854421447307806353622009466444858702517011897057392506777050045668093519418939683942112620545126801663775152331058501451671383609996205989764259796722437446562470052411254641482571510131378998854943085672493211810966915137678035325226886395380300349089375342642872275179907383456302282914524845924794801841843013358106021601998946037657469999966141706779975437436945058408014697969143988116803443209727340452583033198452379662537234487365724747459812722430523632801179415501989860288303825493208475958330068699628058258862948652242908955661144774326655665142613980664224858748285065815681754701615201502271203788278511258206681490060837135600901104843333159221683531004694226644000313687922623521692116796373779254696651096952421785038982878325630068482618784955578351794831019953762626904512596074636829079711443727765263592959888253028920143843441368569661536705864043096349992518150024246858543862410359573675532402602095525353548054062264401340252883150676686174732622058111692968429674971388822106529040183808522837663736625159133813783960660085826447909814408962340087141387828008926787937865896612022166457675937568377366772902561146926896654235504479869469096619463873206917873693613057727838938953730106091634617943572161109680093445674422417093394344382106703867967848038104646989457458834827925655344379001428610235337146908332339864413738058004929330012026220588183624508594349410555563138597534669796012795119617814866745641301866984556406703002500660512852371663986674958990485600424933169053455905142347479209049660510696765535321897154816322243515381884839983283087915622633522695597701587077334963672129763260560434467413939201766473346151895877667487034293585050680321904412497617329508794648493505142338227462355369282656467948955570942038566261609024716117120659616874365300184602544252193774844745558060029687820893931662086449929398334600340644327222863563918293587777970527268595299089046414503668996496609097061083811228582969462474934453779333980408827185369595616581828484942454131005319833773556330587466035720316085908339278070520094849104458450866774480606523062746044095955002427529511638481449730574793669019314921235433105874825833185081191593758140199773481576204586895340225517730061785376711792820548314009987547978890987780157919140144347379050201857421401326110741609696272244783276215555646144524786439296875738863625039968017624333459758528467008781294713011780591413014577188226034488762223474343262193086998264443508736309734751245840997048501011589649419210556868161806141386645619407929907941336917333385046012740767699103733237068562629041792336506147543467352950751697432149849941051431879146544990297768916176060201102501663718621362685153659223236989533748129469467297721643874576288858853585532037480722343671522848521809165623979290773721588573017409392651606898618191725451357782089171323958597602443446206869199516388396552976206792117979816755959373272374522045009824304721667664404711719827754768424093207103854552702667619542435329167847699414256301550530186966077466156268711755379150628341895831449809773320277590865381365655227569546512669419426097924283350285679956794567373287982498936350193237499128398395875355379707895290029338418753772912490210862622615363177137509714398630870660433125037761315557382908313632339739197438340700119479587743464509033168181802469572732292006958672495343925490046803625396070486322692239539353883937938193172896336441719913717064333394495280450709322414663117365453717868309059031387822315146624856355566053257895755179100693761780523203835898528815907100927933046176782727547984934432407778819093902730019918953290931980865114388227989140569174362304277206606803066828054976840818152721960462338797576111817269445970818889121486917856349595512047498657638261185017387228745298113109837957425136406225697829965526039142843147542815351478039880435112543033200788462169242018542714146797477769313518496675338901304981818058879328237974305131464730798136157770039957552796849311441311962367296121968868602698091293226865683971870144287499673366262299669013807120888749915226967499304634802131619201626872085825154233311056974082810167191832090940799756933821638118851432281160093874226980861485793446942242571111280408797942578914153808976953755292721114594061252690580878160120743394173506100878203734397255857871059586059957729358868241619700423257981770436095445566089411465015250968495981865511000024023593848355225371492232052916558857174175078367837935016349542630473154731139272752125116714051598769207271473451015034759920410714669136576843393028893533676819031449631633876003035698401136353457085474730658451690034430791303012586998199200989867427959632813713062034667831533828720633293444404291662932977452763348526702680939990326539127159739766957560302319847439945718287916038696111089760357961041615455989562964945689857147755926626102849475495960493233175487187681999221057450834106840593737089786738934804224566665739597551447036052357353157205061932948588114876290999216916890004895125188840029941025937666041161442077924889277268157019000525428166407288673827120928488838922072703597494778276816309690059822452492715741062044503312216361697817186790902660438354943193665136975057594299653265618427434108139132377619567241273792862317401345956941395738359727759095764485065863879677186771982832508571403611484119845407195450029510951559991751721375930310278284337461731965045868345039874128152914958864421962986594041191411223025717870970249124646695110451827304018870039183689217275163466237867644904469277488805889266894728432969578976042844496992051980753787721889575095379333128489408823764555073219060611851281033633596335303789100642979528575424569812340315851109830022927570029394940286232530005583159134062484241361798350392191362893508171449225417144991898038674836064263933792572339835900039309097706738384953689753483967099845283607503316821329567403898219840833872996560315493658724038065574451861553195859368902814358479338744348416394391309975590790764323741488063421627393843270075393157681430563404249727237903679895070313257080510238387766899934251683161612494405301910044421760141934706140291789152264007408208557297079154016081092696622973567914610482708910710279058614413736887359846735950607054986243204772022484645019702683056392119709825345845195488822006514143027937824769640691128037945269772602960324592167657500010449397661870531153908008843250102929096875515311619767180849742901855805346337465201209278998960311136221128525854857890403073746326555664371310151604404402842296079739859381211341550527903773241256651182676483876328410918628713660379325629311613258319533064652338140104580970195164319494415024337827939165846547286500258370054701525863663245303529812922165680898932815039971756011178196967199367692831199882362925789384338607012221131000386334578492914958895721850228208040889856677942439220286821001003996472157796947501142325235468986723288892437287454225486788036976747384593434472736709586358983657829920667713024518203407578450450583976591489806321962253023504774539230033947927148979033474449052279453581997545301773068600252000097173202760564996628832833608541900962729711028350197757953184618669189973310595118361924639711596519347226596279942173122169848627844057995791395407404668498510820009933893409223297205695771588615476666274853975999194912286832480031274938516170032217629282248542739948707054325757671121401693366356294855804424052842959783182649541919897601914145683380125635229638233341609472731172487954356182849089529172588002706541091445740330735906516713916203917724573848678203287395705199718681472569898149453879020617830483289567632846726642762658881233425861669068562912533125379333528981259988513074755440665595488885190779228438736303000721427352987220942221326797609418273729195696733754338662499229826587201953273021283827420276448037768100477558688824606662115942932544931987474656413441227403292690350583982064873229590678958531397091973870992038528565655045839112861069842299536379602341785692808016491226081834481173550279413045368079884801287832066392454405715504767674039249268396227259356936262298655647125379538222558443388969269289293002391997894230233501556673569384471334194735622470039767119930876060989899037811893595506668030299828447989089670698167348905758499914949958527706599921775625423237938051210529538810184490157284202402905878699817297378538505135524088017236668742268615883705990824345868511693089443270807397900716121884207138818299597858220977744780978084948861578471796734317953551373839785079983698470446795452777825102582144224428378287598218034381984211562608810272345371117528292844644179591414344093510204216198864571322695603900974124146297556356757949386227616405618121973492463772281559002065666750784360415771338761640647761822110533781777957652543706443404454036773699476736157382151307493127299073877730210099868330247007816798702131443073764804504355626742877380159008425072058685635122672885751453113080960482211125769654607787489142264988331152474374758944364302318527918119712252119062056126462774136562245371382491921715271721173091811385661858256914853024085187589865022711230343278539522025604792852380289914183190156381225897016290509659029263655908230706552233479151342584563461552729613059592757552615780820820653570558477038056111332852402271358920939654736092161778449363135617669493851957567176475526840099766479512254129841486410431327928991333749468874199046684722051840543342389522229933836507719967061174854605869873328817395741202114880853922050740805300191138802892114966966383347422308688476508007474545756207601906939088443137015162988130519274672881608606809044274024785757421856133452861971689875186983565931798922193766800475102918527740918622219699992774033577334112810782568304701040520165143173963884697798670618468904380147836323695514995558435265117388688870287906549932100602982176634787985148153805734879186821570374341668223885667105658160788953313802755627864807165234048763929893698174602269329213689750543717303476120609969384869715962410706679298695686789617834265246923362367406467023388870522160003048675254169152118875630132005856255505900238299397918687200395120566205767214520837499474390665320595686128033286697088612822661027646435316051110140812451272792984225680775745862313267816844922078389548356549295340885944754338180810869622007373087402106017798729994697843869348225268838095221154500744404477298071900721668425078938870506060661500760481942887781262790751634834276275950095227035075111039092159477765363150505849435132305381839547842733253870425049748769786593874087971818012228078700805188891697432317915232754255483575726251603079347159118407921537541760379829008266785786653904374161587498646815050896685940866287910679514029943129329107162940028429478807551150461697084121431650604201987225366772502470183291592970395706763568387699050634673537038250043556375521789089737329533263713491539815790254178511191300643770814235596842603941572594785121532478223071511126371544261560822723051262326547962403860659580716693748155387599073859828262465474772464296200755118252531304069149395901313518805581977143642138264992330848537316934103400270955540366098008676289515250316552549680281173780177752592103087119654152677837654170358224331549928846932596725607574997448581413537101881648588563596920600697189643252115389553170736135776444423715090334378350040546055321614434635817101121749426314995106046205933164901848462751852593437282451523477486031215550429148396562933993981945302359179652648448076268045330260883408631531864151522431938893851482791538868782835251512847526662459250604482816251557440423496518798214555106588028605665059648345141535544099689729680623881562548401133026498301447687168026613314229061165522749847975942357277582780227156339189958634107351805254715302281224739083523604484326266660751660270737660443859474493460082974177831993085162258532861636491927279058146253808565371020516605766088603684936367941712239965095210786625356143482468752544174979744900354641021772058042505969669272248359683023617086863270551585561090376191169178724370816237303530293461296142194126378251324300764618283331422493500457138615017513699586635048046626069148481866220392649714863442553166830908922495430769190730994818084028923104478662351064192688750668317849370460779698481963124786432959745503945356370016112193786034509295732818477708991545293760441374422711092123743193404469850169017190726706510127433440341561754924410244178105625791846461563178190818521529353634941247151211236810627229033558974951956126666206942676688850215627039278843547182741917028801144354050278948467873981907614375005496588329538508905010713025718005337836699990219420764744078371845763868564460076663200960688746378800540837314864482472260475452454583845603225272120473355319618995715319508826212048618105727788419777118659907357951903426362315681191102523812531541019896182664119104332515503984835973238998543573362823889790525995963414935446731422965015158801593658347539578646632748635555656726634733884936623307575240551625738875533487122732366877887513843199726350947437456855770706101813500738969399336873748279790075370609036181947689486379053686014576825108456594905748794301003417845063746369676059170112471995154935635915587336596120925521645018370525180632564285783481817913732793417702468107865813428038124168076580729530123939882053590281204603490119432936342027684321847210202777819159966856196908967478024180905712918374424736226761236197472694731298668556960958536256541582760397890366585282604528197300006554666654192041354455629946482115846388120158401545037593191550731563167895436645684912538467447484919001276216316059467184227990750924628631143829716855819013415390546135974348346561607284851473816753612219750269973946384103176823250757480095270815387859271506283062872143858108762541649078629092234512375270355250471686674132754216051225902868704891617679619422231239834780443910520678707675203556669319279358591318667092800863076797719497441770349144480027313812881714522057560807598994681497905597800539624473102636459919056545612737921596705229081842228159369957518984089491820276642448494000135483215015347386750199152960053078113341388176184360498987989672479060002575303765389332681689832233032439132970341568259322642419275909170452651923543699370280309598079468852339462363601608968592587494314287383399901704121559725049263012343776842261986266656198388442388008765528943643205108102175028103325524878575794712305779783012099341394781990552706784905620965336329652571576922212425545452790614508965857752354585956764925147405800175303996282270994062537601449647923016752015947612664985225261025289935870090631515336394678560510749989595922868891503690549015063035068363817166895178592809478738530904101111607876839038085842082007442849168690006797655126320936293966215688170864032755984967614581202600219479002742768146403628045315903889334205028189902541807987861625209913609612733593863106701469554330490573448798721600046280518434145371529367267876916186564362259154258652581290811995391834665477012318305608615366490557625241349967043983737954125045748754139693894812667627990651927566411340115070621876929423913681487979938136560492949254400610031275711430865606845980661524279154341879523324713093358251705527223051515560460076119923917161461665620210059811867584754757484699302059427745758925683895519201965061423727733566911014441560748431209494544197710399789351248712284946701492981811381898379888162993638657862601918768435355916597753186537260022249076599378899635672584464758028333131817010642935126803302740159193550884069640855886854395627609715175673654028734262023595632605853761195845574931953969596938990534944574423732891041229170103168175041772415310703968465269347331224977332457624911582842353267896405664473350397544411947834141584997817712443862421881701120343263505848793460928366328919224425899037159070000947962645350063110050877712296568542707512049167107551654152591050524370171224511033912025218823122718145329179468169338898121131454849718041382505847837472500989430649074594265962790246936651568761676114191369054873182711307353632261805534469178836774404405158680825750269722981144168459609163197649039282818553859246296533383069973446083291561050418444458070928577428181095321050847950864842954785123530449862278659215392302277837575237811512889869216977723598636734662197238667347801303395366419225720781857924943699686079245733450913567179464001771843961194405568404867907773709220881206484557427017600409516641270052799393872760632807142622012335228592107669277594913469073745711136191240093077151884702876924835106294525110158030178037628995627545603831552688867539158538841453730022146357353861257140068629973709395177621650864576786472954627543016861216829524134841536394850475010404136105145845208865883333313642405796895028106843481811368184787838608893360895287976084970154002919846300854049821738360001470916562642421153655874772340063463365346358285346890165048804354333884756910721174893403876867671856111458400669395277452296038108511388419740587714020226073158646077547982723870508748786660861820647841182881682938574012712663232825699165738883196567736401369328144407734012706249032283098579032293763048406766791413183278234885525690015352923285669632206704243758631742348691933787974086911844370944561280231771374480052638116534103715679337603684488424489419757051916384088333175907976245579510587269800292941727754790587412836404259104741381778881938694297281040688412926358775710987898008430159018412636145889242754832613495424398736756329800079306255770128178438868841052647601098574917791708487911257591617702981687452267197521054018696899253722116775847307868634541488935112606141631047943631641673772938519759624855345987087013134699592352096526233060021927798799480903797931440058238751666530430392066213703482979993761303816035285681545935217928746420076141953412830760716144566942422772553546901487578285205106004581425737980125286598681864847207147242802010800864063593812261020271437253110030193893327239759552010339223333798552426046792903499017086419058001490808083859439719183449375915231998193980783907038304565141797430903617223611163693779732713292845399865009680099948085493177146233034998631871701882794538717618146940729345639055053836458447971322255755023337138679245877971910075770726853930955551257389768537739370003124203259792115954939536347249096720858583654638294450681062369543441443680387320879261712335542604032744940138724616210255380838628007371492360526778019562454287575209209007013699313757378349211866623628098103621698681859925074976752528543954009305401123999485565124252293979719007038629077335923829335830616050060247238897733575327768036801041612949270940059103370231758115189208804344770958386655200997334833406090339351325687259281641098887331227911170881346533445514313014261901678266346633857517282943466207056121232135724289379850982781102526190707682965618578744223926809239245402014218357918018491938528487833262423439451866743381945033935288492517989628232452620648774809275697537131739901707241182760359910775817175409528049800877679703686783521868745168039517171056079866302735676823707813216402555135164197048538890387793655499262687320923145045239095588827473380415998356289383685965616810980416949407995224723113883082534428551374808387676943663898595134838540873965950563732827034727478729132300542107219524507526962447413917197623838397168775889096872416192197181264466882394768449016707849614817479482109863834379908699374223960083260018855924047120403224961669416660236699346958116273674326663432448041121964616428578503902020307101604523481082288277455761763285648142339649011110662043839945160466146868100813464058862920614095104153234744263722964815769656060605168656072366669857321202673253889803004869810733426837923974320836764169266188130489691639830858692826775133304979611917804827462571316485680437611175435542743034102369399678876797240164025075114944593628236612043547216194414043976623233864228832089970877124685844885408099786508670609333176230354935809283420170593906159127427801487752721581143661629878841686245360996072498657647081031623059155102375862303439840958861596150011919459093220199258603266063117876242607886961813299671795180262369546840747396992226091203193773754751831571539108350027271250468562047463827588771268575550434026959006228775650163483519162978206579361760164771663002387527308616727555402709102581180797830879025851693300201979094801652722566056647267648718807184744098689681117453300105343686153201336917179458033267814344211024592050856254535269754227095822482868550118309226761224895162177436208618263719332131187043731423875150754225592386227434202310382338178625569102127724683469039044542223640543485787342956196354046066374371026768690155724871766956131377212429978261078623453291713464183326317190136475175035707324848321495343899268067768446931302242511972480485641240178934132151217176330652748261178728841364240094344721761189831231104014217162641804278747177496214289353031311253421140593053975468284742376653797751781548994919306437543224680723427296397561610705018067838107040290256897301051833457565558248724266131399955825867786628123153000777352371957056669695805811664018646568391597461333789070392758692951585135216929304361262298650900183750450519417703059316873600845809681556934727465259485643812172066327570876307176433025173307338219214885235400045344601889420671870017344451685636407254896559083520468973190551795761299504176003358056135771570920730737518502119932050377813125584319420813475580594290584204471675745410578454512781524515720001272065954711488166870504925643423233184589007196491774196520595110814131866030400935394848788024714090801237914840768673218164363294200811147399033256807203225300645485879389348781889066160698020620853719727372555955444184210097700829708733117142251000070161452435477944871403825613548281485775144187108962090033910555208774725967167154686976714985095688135299474603282960302039026135310782156633760344010564418366185335312689357828751194680714962164160605629887419243333969506896700664079078238042818161844733860839231809337395491146457407537050382802447088912973195817236737276268895564458931949382308908252399476598059410311911423183914175417385803158952098218786064288818854813005419934639224768697036676811023293648552232969283094541916627276950182556961705679910071781281043340570497312542541103035719245242070563939801976017695739109622288923937323681439043742991884835900009162766111954024323863394296501139312425024376051022040956719010425466249911175382470319282821708835283385570425194751000299969588862009262208199959482104348548217116794902088940779845291585148126813146679106018932292875388233643806838405097201065057241928372380353326965198528441823010656562693310120148568882936808703424566689284766198194779757562110195703024683314410214117019959405779883710941711080280701797915133329313976839994297654289225270318419739084147120014533903197034889416321704283436562672578111103833973932268723691068578690386930878399658520667657189825710567832386294318882804045041713572322096051257860333818745573266547867825758641219100769850289150255742960233878781284115088106344285271845490704010437673671183677781251944694400203431840598480884056355530110740731874115949629490976220460732213971034449137250430532366638607702120177776896165939997190570254394392645404122071125325304974492553617025263106760721691223279091919773627539135873751260338757648252515643200229653763933572795607884042022655959710719216056549836487506575426121408206472654897044480627396958157252504783189369928742310252233115989297834112581965938308725153478412188741305465291449302049659880896075424085496969523480815070308583235812701670946360640127314447839610914555795161016657419533433347467632376775931722732347008303647284221435212827673109531764906880730881204183084876372368667685860049922095828658067738757511916510274122282745974740103792052382400320079597972353375901154605773351442649006196509111790906978811277950018932945189420851926746603865095756179272875245729323142486042187072754674216554676969987816143223639340285602192811125775062871674153415124999127390537886455031588027419100462118828309408242266694069201894340034539846905979149598158570371166124964054922286510453021778896621822724566347466829321305860555684269597821791219107877048854276401561173526299293804183971957937583184275365035209435032333569262478269803946869723802715991494853091743663447005780580996030070751188528754741107867991451789157517098303159527046205291934167615232540102846790892462377498773394902032089609856461920894334663658662311341948397630683836429554664685149883077949016821213039732191832219617060701386334781039487458068418435095191138827672145317054413469180818681997585451397397228784836906194127064919716275630130083834825298583020285255335055741015957395752000165122476105173870415286502788074707772758078251864692036958191100048353482657376985920013010213486814016529691152166695123722296032301251214608596223348682822152115852661009198596337872595994456613952188583980258196713799419900054522293238560242387634136247414817784714229299724898654433173147524308007452969471274261810828398267248817720101503033022478796875473568043164596890165840352503064590202427534911198992577435379402037970489987066749201612152945019917918530346811962110939943102135990641115297801910249485046453944554498842973243670304198273630665843543459310412182944182676693328771025637313568670226425889487699822834502659078305015791105438569618293019030470034657641286120913459580383085667485674260466738053044216441499334531650651928070586984970596727962372934983437869971451753666841675083429611924666461548609135674930035288478242172438237087086686739897440230238954963824355914792223854162680406331904685049826989087825161528223775539944907656720543476891034287800861987670405104623149456890368102830981212823791451598936373615930315524038918008295129843443335797740519440196575023728886549091695544050050297650986118562722167913441155742550812078726539805056307891339915438121669442733724018666986345212973664666096225596376933060014620265331379062401216779817406637024302292875530727217958449071486981744981554890459775462526110352460028402006416911796307303634487784153546569304613817691456752330965359881027604052299001324706340505876303232628323002688267923307313972518669312319203448581446302443153947261669666980437037266830231921442263816236295750121657322427257498804740550905826653291096257735656185351858705134186841626240161889682560490917212037690362816452213394801700166962566253031965956700980165638407406005035695477131316778251577321392258821241024432245091583647696010775633178184973849675314841327048113541443424179816770076928093291997025128829188565577674835307492197240867880089612811000232870069740155541324168830937649946226216200058591914169257415424011291199457481327808490271661224484883682102870313596371494086066938531812094924888696169769990821549742958562273017449656316062346548318644123254990960706898356824865113171352741367208949066052883135753133384005502955215757773600165616082614225721474052729764343220040013169923537493561691818850403091710581190796797319881219394989939736612648640742541149740479735369269578202968437864597916955840590111747007344957752859147037876456809801700671988238275936707786207979221542250781987992235524297581880631719250081906605594446738615656505589586662764505801110378115541716571016217083832863148967963633987670104925656250877648731930824072631817468160606779083336413829681394013571070015785552952282670021934595420830079419822341344134726463871045989565227238481421159886226180409407549524203203457006508461696988375208025651742079373029783413493130485515800092088950675347626819236562870441452023163790187786763222127913035352266556773824735890615542892452218078287674334100903462018399096111936274807249975635618816095854106820833758344743897823374167436050092377700771537522537166453519024876636054992421656950583237837515982294594649481328830187286206030839080749938939831280043862635206071211324796628924644043365728571426065758061203245766543531693114687401659556280477391573180808104632255965258172444710213093579830737273938052835841937047264764276889514417843492318990638133458656969610927448585352128929987636762774967782416716011505234731111783618794775868725659604973850191512647372399369283257151146036005126793731520303002984863747889548028819191426361208058124837401796688383172267996824387789499417466166857730101719996985340395616741213095324609104716373900750029362107467211763569038041567994998375741294049277083838170415027051913753084358422622924851693028645646829407250128377347023939897646791649318371997807580471518665770211152399545945016480608414930629018140319856251397856623072199672500355040974506880106809749416314251620273898407008794914816721145300505938814646339799494142761955110011809998816924937307369811107293561249906402586574999257680809687427443632726724276604813096114619414214380312847737981702239376680906106736024326742392295070117535157936564688193451121488626968421226097320800035244101374697352774421398145096689248846172067133936249818942386827215058824168750245975819554832567874629978425071027692871702290375320513007416448251766672014583908447040202807997324542658665905993878845711892992272339114875600709808385664202553892352012565685204140475056745201282434005036769023176312199239396935219879497377019102049299734844312997029306742294939846341595515033651248791978461746257917725880174912633368280331099953308622050869360439140816784638181093055145940543866298070621788889820841475786250972303457467301521487532256943190430059208264056009001778209941206453386972834506040767948629393122585907270261939053189796312764738879408219502951495358864432132626485667061358545934809140642403109079238262191485768721513771412647741232010526467200609674857821262568899706081417123045029177339247336720980902538309287028526442696351470802933113145153089568550772598239628776310642380697403172133634042728573732005596155135101689094541812591851430111223762211849955735516435534815357903378568868480687597720880726366438951785316494633236375713649463569627656540286611391262959919596719788650121951116818345614978842884961255741351034122987639041081362038875063660544266842862444294337897031801838258938892596390374690501879919368420850082596928446479821844693911474266856970724665724138365363450294340321141467661372644006808045733050965720550944761554794515482538117165274572359929735514101548072398103601383833125323531153345673249787370363323366612574074086829275002426819583947034277748553393410013781511036550498396663124307269698155283337414290229957562491683380166149499279658561927574368019215163768295015087929467390852454190115728418222672826864293818658858987961647762529161704045979167668999416545069462736369419138728947431765070633419047774569689996582910570060768670499236789455087567449844582782666409783954956286489480982677817739761713074357104259731216226381062208182326393077054567344850588168773505509081437314330730525216234039978335277259912621853146147170974767023194653846568194023315449136405004062694416278940926331566643817006502971090547142898409920515731282770407349693895401815211822427135410150972538367511359151168602402933007331333418787340386045930668087536395562196674329147157628085877167710261385195088975281859987996558239467108810538743239627365007666805929084884734739492787873972994200879274047693633233750616384177309061345185170649624874761138445697729634430293225786003589090592548010135474023297841759235933623778331837767636565122837161299373109287157928740937873900784337351205686952861890778805416384206147468763597683452232979406666012414719309243015275531822444564888923769471598020365780616878815657087102318265358314167928089964909161531407036578169137672939137300867647402126204205579938486227250421039510840038606684768481158129201951053512196659662247057115696059245223109875060215660569743823271496960058282274668610581094696941107692381267096552442959833145945574676010339402852614374227527989458067384848898451608157292136128714519020219836298048704902467209239263686241357737568283088946655821560440603850485716681023261231887998424634041765132870386298220178275994706901662839714534987527412101878762812369602837655066527934417927732570111475835044956714374048091250188915157170532018137691581769701085617848063846126388458996668732037251122342139125503949738860791640767511220648725604014545267890700502304403201074711455761313086109805308200263661447037002775054162656673881916780755120637532407047413414706148003592022016762015297443287085910245481736448972446104338697559588620638925593368733564447037775084404347699225325143074454235406216962154593625906490934161709516075747907130129517100377903380092899373596273864089995029900356678562866123250068651877985370714457103816553793119456100807714585845584667443156471484555917995346260449897387758347145208103299740685094158355037944535214361100974893612290285746298926673949209182845283088963452911561368340205624118038089677768914296724400811531975667505737244400478657229122809801861421894033358743205380222939378500811029416353298731367777500875091152952043573094039307009999235459526328787680767612531320968512122784621313315545485550601185696311597547806174517043261960055091067739064484274888220952422158862733359009807123729518695718150800022888029390304519385934677731199293574483794545747124333477036620660276790601093858917894788575995760171090438279249320617437064493955008565683433005250513823616038546302947390717304333585318513151733537778381261498673463871643395866515496426684442676363591054359774622457311586746166635663326223773118265900274144275036336626881006629038737570455331062282727609278915604249975687492108243766229170467816456062401922256330962674252960339033670598087162114451156395981603182053839406333684596960643386791703162680304785979741083042536949176134604788615452288790926462816527746665760979026921149645635487273508464262596978046705136477627759291345040363945053213237995908518425996237022937905886161163775446767340946552647942479687426226318397478699462951113523480256707194371180388005767188001437611584631349575775855641628282116315171934535754617292916933791596362882770101931404383404673667833855240735989400019562393747942213408897503849195239852215420010190223587807070769324487073501985113973565169725528771833860154938169098592693192742354973435751750553435416426744031067625813067999200514828657137034047475530869493744411596277378076764795225993409401428269849100028700379074300652668831889188260343192591470468785978440698771207459228114380137797532923936965184877191434136102607615995867257925030005962782583256491986487076227910039251147237499162912441005304779288021677730934780165714448304793239304091355073266364769395428339016084406449633787113236872578168190001214329804861596203915090212961635079973625927293703644738631134553560560833003574059401813875968523889962669050487042408952131113042557278563504919124522236748862117609217851847074802289228209800856870545736392971456452222420311665955155591146998576269345619777273788703964800339562726006876632342170735686092203317715748368592705833754060507435163630201467999543473385642441692813033158513133095804392040536778350072714941499488786093419780754575986186382204022027182482112812164810104850905755067643810934118648815690409099838623550219413631959279793128549913200509886923649243610994595707114594606617933789975288912852105618700102834693769181190677740735175806993115935603254865926842324028963541609803667089318671443590654662577150896365471063014733914530729470361920910890180406979813214285702041409777955563273661003428482492568806178282235951587042116359736491124101801664494063159211905879381946289639573943755110358388139816372307937734939196874740594738525410606331063594680220610526335303267417884922522018384539794576884058016445030634475598124394289432052965281343618356845128200527617931495418528838104387785381266695432308251057711039716616035351709689584587958852149643344153615237165563277280609370143575167752181974724645417006240643012036284845836493744618568798042087146201189064003975801640821793230188288055524094764750191689986145925864630100087901000408257759391532544985678112422174769646384353417461145422600061320421635646997985515228259828328330253687771106641107340470122244781799324750610100273447074545357616914580012154253447294398211385755169846668500620740523456606284108921212347915335261078074168455834994016050636344753110664825280634399884648771643708351101174517067834151063158448625349099282179796702371489003790399349947111490144134707004005892623083870779626773814417083256514887822741010507234791201185515901899692419512403267112392619744042945723552397759715682905214210114892782913506312512795891285174056118358444663794847326532473298317177424512816308546402066877718264267116923701529152213006543257100924624455548108757695459266447302831162154573966683386088878972369682890235964163441834475239841696910300007453364236503380287472759790573380580815280877975765379677852819257165939802717747210427283166430305658167214834697600323957790645790187889130978488330569408131619326892114803288053098126370707773657339859171816695329130359897715892281534721525007634608612759108022405530707458410316292019996655591923987455944976249686911608081675202895302991655662608109628284101440949168388973070529948034983978906838976495089155839143727889378588642408079775620578093856473819907711578703868843003466691365241664585885325566937171213298079462959575864063688036093733497195704799236315096389139030203379873877119982844842882561803862575399206743219309814322153743166340263611311944458028641554320039163854615379327913545579799464789049178179072813105019219783022938777444869340386599293120168061826930381706322062473886344421754091432887743855800326892830413800545643131637814954250636198570015520302772334762335805352306226274972297575262771994214485731352769169423905938818618871986934408643437313234922773922187602476719445829355276685010227229745029873538996157314679940777654102520118762703779296755808374568243662159703959118444480925281861231120891795785427196485187260905802936091155563090063247714690101588308532882453449245563853718431494978036166037850316797844367283411026375453840144107952043458564070336539996109875317584726180340875341407315929836987919491163343746778106487670617509188154789660963283867250654394610444259515611544196856977832082155132183438854991646280337597139041662613295459785356113863173766334537033851609486458209304175165486992732489564925265550379305088762083875082050115468138809499456556944984279122674642195434265949457656091512836125713229062812878430545257544615901365686551561125046008768573936881370190379910984580694599228383898031678764988360343622005148361429332839491752256397423310709975918415770185981301521437126469582796466150097651370903402993461476207808319381934914672725487605701943485079201637052168156421330241134439963385600725427149969961322182158364599027842085462317152997973018429210143124919188780929400870931955112686391754009229824146246566052934272173511618029590818774029596296428964852824804717592110284986766638463335696737160282317585527194684032550689631047141266872145810593238889028420998389128878500182613139554892344711098239990416952501616359325349480729638792214879501192244748232987299971658055785835272658068963596808010232845882812498629953761892525124451608641735558576808409431449469069417168946503296651871694771238841143280738387731568907326149160021272725751746822425086152925913090855655161123222074472580402354597518356504465283197468800357092565401477941029158762501908556346224570431931603535425488295788797396154924175320808911654482036548274217627516004550699818244206928648488057517174924013348648214636274246051433909345559805468962266914695952480232770318711587835345476079398935074331301649160739115889762273617195013847932392921631081380450100297062721695580637557255145702058101075503089822783672136585673913161489129739754496537464780377795327517162517948691015627135138014082321261371633436384928509940943793724627655717359989889863332239392516299264733428324801200034318954232485334613805705726069000075575469634107183767348932431069816911907799529005182433908051511724125974969895254764777043881705255975604718909919905468598691939342455459562661128065177721202977649139333848469226121165496530873569025514159398237058198968535558383340062428304547760263574984615738014520909948294670015638017616988462674235328212313873696540374830390475963390906568544453006231199563508488425098401255424113406728995306183098273552849465779304881865655571355910061844270044656972982793410214165930696132831321088808573324613227285055688867960074934629651706704864633764771667589555876474863617820488205295326808685719089017817198555678276269266379354520785755855305622663664703813508204167734932187961837458985047528300042962875784617238003166821829948753772757047643527283655928681873972035472754901623111723733588414187100209204685803514551075667143163270985111230109592383996077078365790334790608738950402011712412110408543232650876634067987961498484070500875507557889162389494147121796970537462574463870170339886675761860779169268049966716039825610587682617835431630121271449301130206760318971735353778363276960221890714327766856283087296949393936496602874970540488656613602290626719810995691789280055063644966992846405949057716307540077078673034763591700331021357942599687710845450661515743753715663177871255064437581304420727346946880889633245520715939552299046401758961664078282816433245587883243674564003308477670519622110568841820006025799585579156645296643152890120994474417562542525803891888211700052503548234974734294988653927144788155131401681975992916358380550415561199894204958259698760080355788043635265770376779374476701094626069138246836217800378679719182763321972149775728712462907753203888285781509108327739626278658419841167354080678979019468412617865240137887065980194997302365166552712306904421821361849267377269023321169351198662415777654152274128143342196376933692381929996434395308247572986718026161397810421873759803228824838626326980267770617902738240840786765110636449398708738456436858720417793907624441473687399481587079436088995552493235637473389548395572922019509447203423352544587568598412902561976095887137531805216127571573436768031909398650616785474836794016172395068228866305926442709073817563661823202934831744483915561434929160239752395353850919048097206449281001315096232596141485187839068202073464139745387054838762943529227451673348424635866573219476956469424629886639600746083804967057746119707635290025057522758839191054725549099860337866700377249198821922982678830220225223919973558148019401751194632883915323935113852883316688503470948719722418470416972548501630387416523969417451281850648262710612990826505562832926834195882508769689802372936582054600926997297572709085476135376735651084124557089399913401316323596927748444697150868535225499176407369712741294560155589936346281439699311705835151338197156166105999063380486808839381635818829083269895132701591852682543457148483771663874168295783958549013313973487531568261742660571972011739424738105849131735762127967274596746776276636536840247059596438024996764305384043509097813486671553497965273738778544508907562385139213127262784540361866484096084179915582672678576064298160495552876088443735136280538848565332655766741451591549038040398519255733385744573558771844222125260378245676263958938100969472447766360653617729318675496337090020033883970812341501142927266266204285298386959722141314555014533028371162848740749575068364298487298733738928361322555292013789986115515871958596338685589797505071469832859928553107387214422295025633629936457394204542992245895816596229268543040354783965549530016985358426180766049689929419463309903041848038218671490818767986778848121142381857811226328023928893392201127359933209821663707811832034875016184677475611339394008872500801492274890376334488866545896454508996189216992614867930804645106914118114040623386414330046528274165506254696432836025662927525550057300842589065436773565411862625024941450132545338855998481649336595106346149926309728327469879714133886241779381678060519235444337691315823354882958822789476201738422416446959811871117189789146117016635178255596626139327791563613356943423406831316030238705149283742804998612989982114966279250154866324261269868092805605866021687118292627402642120672682571149897307234444154690667505624826835245086486441246943124669323156872996375757865657274719104011745823069788859161157688498424879942210885912742778917623443340814621679169693393726090579046024432180362541946990388877491467984285232824248972999361549652932479697075742395663899142608999341508156810798835693254247155701937227874198664379399283038172611713578540507114746678836304873682270755965040538508552827071575569489085558538055218102391037523840934361892863737619638419275756977829477435419752752796750914445118431978096253603559945194438340104761314400151866210156280019074216551832683364937632447856390623875618239878982036243191425035765328791730640237144445190481952874484618899568931579051999059247418122949312181643498563344067095477657313757233106211489500164168246151793292721605114451810901279361036124687966302214144628892485031011599415501726929614889553547043200050488134405237230885834793376884890236926172300185214095461663008412652176142494987789646693264421880346123194670650349598398911581367775547786638225929295019653196480982829237654926632963220918723409448677219496849208004183705763894067199485606923156373853179523437178073272165880470752922204285409110528376768698715032732567214564721957151541747433291681156283588710902176471968635395996739171478361577549716323548329117226485225303933894034077319514040708106832322047229679189781087331506500305454136996240535923576427442968307268155168019100870385383173280568389388652981919406518797867850618752685470201109614100715410198760133224130008424993108452834240233517986193025953832398169419853261943250883551363492857542662393818370095201103457863820889394600040160012379558204453203706762754155831674643173269145559705017177832220278331623301398607427037552038956030017605849289459237538406883369987184021934783447913960804177866560233190090927352723816343728049687050920649856478950714075494082178118986741706137849710829477982709353872034324131335972516371996229878985693170498684155671426816681245792798423340768573781356744802339048193838555517885246959229363682157198257996928987327487718042939523241457254226620899318540290568766282924230002912536820315176166505586232501082716423244879661085555079551909947800162096293910408658839664431128612566384161218875868892553495998831061797832008633676467726056233402816267851381196299082313844131244267026610696875369114037653898964546695742949898722187376103833593192774774626722586198821603376550871269263178060853638625183497526513077773275111964728403619453844533226547430749319618558275343237198426840086833744162100669606943077960525529086738428019329219278768672999581784619938254115277229212500629199956370778343204654080468164427371522226119468596168572675889795929636034340437646526576409455461206899965934065538456966389971302745806702607474274877287384356080706259188530997244174207078960387554964764095483326456848530805553115384784173868377122090978426420516118316565227455912626099367129653250923972460297303583865039897896418048563566502683698659744217901890611389917891925208517118052505828128868275893810237328539182229705944793729628421706077638078842447794551725035989117395350038235415193207363199964474954900720817761539813855108006796265232338148707340656661584397689514505158420925220519765372006707788621530259263091713585871007350504161887413219240948017369996669235316685715341848296169173296364041086746130190802924758016767301984332454653709439278031664706049980797250462341726977813472318091489246118442788842188424147857330624404358729355117592870065715350386905809130641784440227730006566774373246078175369660487404095587752556544734077220704582599363484755558450803249002198911165717090182110151273025600015522370120674057216314741518887075900564817171457332003928137919273486402953211370657812240749674952642938682884094326271565816379874971548892323473137696115595730213822872983512111551798406071743452496864181823495713514916152501535489731285820690680703981729935986783903050561638391207113296221084106782398629486729231754961607367870741589302533186956093657549336175674950637060011814017422871020662266058241341804026814566315939249948705280594456570754037680369948754665829731909332031801122994201240432816935299926216768736776046704464948542185464821586507236926019120359664425525473295146461471380909152619453002517123123290360330719439161561368279686063212822061678440250556370176378824220698613794776623733192428856622516435497236102326401014984997066268199868446982168097221424900444557898075219207543649626584335036374195040504240363922357453762397653828793018242849055518773098346840394599976515052952092852951233033449296573286223618873304518303316076966969321877119856650700102789550201032726085055906303970051194893466892912834677658559774644072905245306105665610045465001232094243341542168551619959879400386157570544989166428572792512371614559330627979374438703773414099106990630142136777866835501727804875531127238193337170753298819008089503767476629586015412792194377846004331781970280778772437394778270023542904254204192350099992567793639261941845479984637368080121250868163015310676563288757304971549983614486521199432013818415069158748589131469203201149630941685336280473251504896778221614174002792031347476429213138663505739693287339852861207495234605332293268041812584675333044183963111061247825103977148245012084516807925363320583305134015695184567846244619277824876015237193282102201072882065817050127578701468388031912183025669380388230171388132609348943301727390269322984937495662695422850253528186651903499063470898211299019586332045359041164766953074964672295509682356409906626984537909788828124912102411843428606309216034567004091293493077132231269323240626335253878140415893511790350675146115308729618207397961317437804903881518668966913427808081679883441345553741154622214483048973331323330529958449808164174469952496194710107125718681954215962099512853702652890571905669734720184155158706149070481097494008211623489606599621441294348929914092153143206444416389216079146107919274865319097971175543107883414378330977642152397024555052137529654304170814080273509191333725728940404427129551863156422435814782521845960320739331365722284020693807549245153332281115981896865827823579336444575566149731608530051723625213259570271380367732833114537165427362392891405407142370103830980934604623085754375996163867942302679132780156391115679531869242616200844819629475979813387643433975160523602239256918985959405182893607878632900677180048487978992859225824784343096203640080364552615077634854415025602180009421285115925943045038215143990196655535345301481838396989667129583972593681195160873102242012883760333756854916848930475834213249379918819080754547002413160202017331338897674379190253170915614248012253949650875048557227939091171942692420090419586959545354287696080262325511554524587030469389922838008513491116785020924765617251786749432308081044027279415633221906802940738848704204262670444289480251520312328775813102388276983104393355411057997203719174780281653313881215485047562822005803623693486435913560055772303294150149138162660901357351394540745645085623276598748426893225468630191405016790658954592756420310368309919598121303339271005383866503597571913182370758662145474392908251816023462872942521557904758681463340660786467785259913161654046916980705258036510659308489961493430564233421307948410277142401127051653125069355598514836446074708699282212170083486966150342342363050497206627066251027257872803056267382418814348088267035558975240115272032227517809555673539983367787171172231689201693091223321852225011348767348601772276715587606809554138227860526574961855386814063117590178430210047122948321063331405494452386876191168758263896841996929286206062102182289861701481559132235414012741438734471412595299909657789034092380251148015145004757724073039997123726594529758608219855470471724767742081236453733915611930659404069444575064228066382299686957413677352667748872154283746970041117324344714268923791790623815590806249413309599227464101443167674468778731888561541904178401123940811713359146092644794970759298685697584371494017462477064318334014836968347308753991048780191314866177657719640950049117198662781471497142985121824881301693992056538119407604003101722400644320718180757862166855624198026643746484495925518378236399595302695293403386310741805557865987600118564731510933502362990160004522753652119699068165243226488987472052177631433021432910025545008830589777363614189080550637749374029107163812267192611248669669277495312247099452318155059454953563006872238893469140553981897921550309107293645503426882850669851362864943836295305215446067792638622312702920870989624211387570582928192631583630947748899792723179928425103334402292502154211700391239234741125729420168763150473669583266446083510986375408059672515386555428128648544010761423823266878452784446692177400974815154275346280555469482896578835331062575690974362671500513386513680083695470981210771546337542039416094272800264502933153036786933216475230639957512289102031527689973238996088613333432301262331235518435330224629455458151114817095486601606939140352853947356443904240074322636316514349680526729521824709679903023968758638288878661561126828499027349654861389863325470228468687936165740698381632923548220197786151899600119053910118544654301708210393062418138570882099607679917160939364877734667575322112616137585229418179278744331259326214723861930070345421905427600570880137839418224959086919778128972635727918307362079043544164008204413699605134463463066404430105857785869022376730659539957771909617676836982895681211565544576000491352876252285794750246771939690384031615485809191760758959776376049171395381735466021367470783336417383588832804122321967748983097981117595636835901805628480980431996717102119446955195576130229513649129459529711282552809626206670992144913672373641640730179167813099369287291209639803912762011200810095814670231872239639783281626680580755109674926051423840400677960506420825453519300155424658263024887646529997824295489694323636771495382443699885394246806874214211810621871412113718076773748098200043902348692108665804897643090396837009083716776951298689209104917023275451409227270577277067396827355156486423024672314224883494987468398392224350317211397557390131528188329505780838335232203489652913159392493123762148631396660049931608386525767607272550916469986133709376335493027278340498174668604379200460173072179339308931784654345942644033640987843862317139686209678956037501415717105686344598647905678214598596705774337505264595983042732365587929033257082606504798655262618509647987363076840748983613894298211419713375827573515154859884305313971872237050979906650772414225386370168614032289454320894171389669229192777783342761905382821556651196883431862246545371344123303370841059519128103030354194064740884286110516648809992851167958605001517424679172427177039074232829146875583942097188486295007867004071116440042177375285454425361556638372240371848410034237603996596212934035273055044800806754568283677519686867047648953398697097166630617654319970064593146275873605362294477309651673966949939212588063471953366537880641601445265751299734631912957916251164679245068514080228158094380002262047147446884564233855568475685250074760217200221985795580660496252572764193734871761396013223767443485921529386582423769150684455476677787504607339915533372240577575605757262755173877943130248845861268296721499521181411271741091706675298813901107853813136808563414019059369112004862132611365592085837568392632346388655255246173819793225586025582338972347035872118486407802028767366803698173305967233242121420142726477885932280668958379261523921228721198461721690831970837209176044855683559722765648866006375942647238079455170272430726578681626373612509899575336930384093548100703021792520480164631600301644930728392854115400122329085600123872163269394013891468299087511223902061836981734967785263814635342554278911005257858217883628523567541830974872418410655556545699215573694005103180548293721229965949045984835395191636096027949436150243949967577518626982661823313464418769352658532327070196211262100552189854171260669794553893954589066309815013220979624208333215189260838545261431350918392751250032316188260235047414185839455425383342747026797631874949140467060025815086482290108288083866024036090171285612448449324136905392322088982249794728096655468209877609188580373889491453574112574713033792203544074483492073103283316477136955826644432252524337724076371564331899783703669074065745517025275344262209737794787699438044808174962244723396320781917328183052675526184162522892056158804337709532907635527778500101501539175777194407899737233924537029203062964779126858589487482311962826271435517072734672542614324825639724725521421066734699321405073310633196858222103758795902482217037174047934735814309198638462071647591746847317277920727231776956473334073876072113472682364187902261379843895438999672305709465910978558770380907341196356541766548115051508621270403692929946419223636678794167445017414336052573901445856048373062021838733986894245399543308642418172995679157459063863469134746611675981638625734665966508334851798901338019613165859414368934372528727532133585523686905699997760187030293651171755747597926468854916710631701077703782909264478909820018754492821313106631543286612649353277743845104662413029625582103800736612023571618181552638207618707551842839944135290125792347712961045378995289133095183593056641034885537781711805468120338094644697756453750006428203128005279720692919608822804753727020704628212177912506856712860463013455081348591057199615319899665577162382646774706337250355874586021259933934410921005755655619961120346117239414967846701040801436102385952634815386179648688799993723027073210027366799442077928437760392214138666875455277614690696441182577667646678686742084154645857173340499184255740502510325551256796849428517403500500326799000216314489351032331204435287048089083442956954133869290658022381708871956982259554234486923077208441272959130094390823233345558129425009399446699667103400045137430682562925718883411417463131116075977498113896025015301285291730771502257114274289717102355394246411172952167424269470473376898165995614115536649716982078924898440736552657248624214771567528548316378974681906186077211034075869221515689505384589934695056992326419839882009580467939269125936006634007897108367761169599139853610970435570862558935608084394061292726763125759434782363589792158529638129906036357620050865771548393699311008296333072074246278883925382267550032036936072329466123216326740933835321960082454434275489570703571702648562152340703614411800565448489473588294391285360026576327308882145174457459645276974754011371948208617888098559475677713665739578623157327029493143741731482321128933277170524408010513853103820712387269160826258425980117888927757904993384350738508721970284446541486730153795349826377693365744560525827146863783886828401718687723690038052807325931797192120127876093337047357203755169997461757168588072310525789926548606396456649694938676744604328256450629177929208104362263224082868071022115687917938668338433519013781286283668411435318804601430835899581840750242578773125463564409336472878448987501277855733595072501920801661381141398073700474116634441252070617561257190324370382356644284064862249726880779175538245665391348778199666807680415035242185286327046044551821420868824990365177424113853115279713677772569278095440830877404387102248660660039700574949260285858833709413231372979936094203362717082955250395261605037279041945632500427829603422144727305077567127764346728408550919195671580103140034350916172694418416086247902886763674534454139750269873769955504330802246569288488076933547215075118097923331556172778153501925622466592434715711292030382063215641610770403409633112075954684117768849934333266725668210907217449946586502105588407524445081776967266083758341287455151539203122191482028263668465358880517395803536041727130198968287987905205352549243343686866800674093364069368004371064350270684047886839960100764900786415582251205811783655894924463757672160322503691621494148798021955680189068614029822945949126631600704661091901343817894374381294138015452278866339337551555953653043026095764562903729273671010527594685853478203725605338085999906693534659442448970749411194936393394829434284307195431791614004570936267368104800392676917882927283897531595279637146917252915096562092141052635979355953786837839395839012652190286181887628241376446392176758035431023791896305485198315135602272880773015704394360367115885927665600261634873597152781687123617882316687508469830087951508384846932248156967856203765143442776363008097782926174527435360725488592758598539344296938551099010922794161271404364328329122557372519624854188708784642590345655691943460163810377903533533747911469289694471370030822168820741997135210580850206456818078263601127442464624114596523303587322099577631739990555680383136434196163900456116176401620872048505321885327636244593037702956591387082104134987516285225297700010789565299262135163051609568283579245826606212987890933660698455019155843446547812107858845708346875273193343082623037311410765870319654032145857477382717646146917872058941925934709542899070016527016618169386602714568892970842914336983885918041925222803974633461091053442525472119311620235679192843649956090406736172123737138302318769971522143211968514836111927473845823304055257567397245783212871042158650487427126157978960468955850917554427251885512496814950582500575743891450118752368461681970879193733655653493919973429729710432133858900857470530412821229369388536722060503093904132219720947563584412568273068337593794426308150834701227864335907982460590671530414393542714832708407138032104831938043473710766953894562134634067312097283180754551247293902336608892789857088553285729715504155150930766106676653194160156014764297496227487643294831539407975000307192314267916212175336901212503520355212277535732595764416753144001198464260526138988496248960451480663607721527508277792676930252663119497367042916832574832846351332078107113285390721565672041023568484925395906955262530035501699960861462269869212060408615783137641514233614244006709987474705696804065652188286614458778436842337979398102461406492353686649777148057334718537949854825877590111631319737534930413113026904155806296581242995816431304320898259946864780634857882155139880506933251667556392910490387774086583067026987230339894578895543233884966035406523486631692636943347134703923249423709513119596371162516195950003236731458241610143793399154886267753551053835169105551844236949918231263731092089869401797121518168093673113493293251748660594844030939520614115065706718097410108520446033305060713688248420877241245182764175362623937422782035302716402023520900439662833561830383904353790236558685633386354950348190982826579991344693768367408998518411559935343858911101862747117845602500460356652839732356876742961564538490008664365863712936949280970192733948257744290609564818821921677030933141224881988571735502515091411034070566645811757289074288257580079914486220324887695349619500735120067908121580246603423495085132149368492586662985737407446453279977726755863296093748694777473709917566192628960541030288484801899068114847625461480552152285349616580405819205725726483982953182909051360905856327452286285247640307380877016609391558714222706054803847344621919635691714239357991668845449953647306885916646737704388888747532392464466338427005373285285968549247090806948975673859523513403991677433665651164045061740463058193280788339891924881406166157308342378123084975992052161466702904310696644345851689743521495220694305012878388946665146924321601476145812647389382235976343938553603166541242004988437819924373338633349383997863307105604821691677859232217332426421734239387132476397113634604251638125452748356395496633629506919072755978711530567670372474951174736671639467962219598292778524064270503758322794550283995097750184188990923329014023046381646081874530737432275245272810857664146826958032115666949532698343327120269087219480876884340222312298076282220607980329680139835676511332120795911355660185169106205178823359202846083615736074739053560554973345229967114230493856854499065385018878088916361597501597142385119608040386470401224879488547654925100199726528480727315579640703657706552162809002402320117943961648482759808014877066406326922541439669974275184114879627473408299606257542792145530983923498599412616171846858309525086207832192120461094445531715331964405682981593934910895049159836339887750599607875009860220411525559118673900310727767426195066260672381494653632278759861549979120527265639163636948261839025275497852316534149451180746090790105523467139595934381530531844186541752103774145129923556496839745984129897398518214664567832693928419341574145503359594055858572657407613137804495466663139522856763807905142451398806626506264132168467754514060162560356917899785033600017289378697903781271006053631544944043659274214623417483806568631437915048121089973598329314382645914861356629158108754303489993027781493494016789522925723400484564566736889836102762012064702907914250940193177367137294322754488775451450095165597179302874048875048048557423538209123621636500073043706253152778911415074449284643774802463793831402222612216754659429859915890169097315933749936177306387273797422694915596354378833503737920470434867090501351190045406818030498788512002807217516151461625822823372578413741801214052017827952754072727960511964697395530953932143648045707736096477067283882399727951980321733739778302141742960463913437306800626181855572819274900056751557634793286166726807820890160842750097090697284929106168518010428403294604819263458912847357140885698285887059709441754948481821187450446997630315098057477707036612158905372206285985928400175780369337872830186089478799403351718873764822271301595268906331361916734602515223524689374828908938534639246209538659528715341197296389601459282276086285937115489234489355308597587487680390422076605612502365878728180138602184065624119414406099191391900896855329842329334687998408842232253003705944668234312678398322645948258237078389653128811788421812011967152448004100756166704413540839705575225195175290541690573872876798582909409416983868313462464385667751015890766588058233422384339396053949244134384091398168563338732014490044583861357122895238997416189677225092286358655288279766872962202389767273036090010992294193003774643341704779501156412781890000233944579246786226637121636378790410346524220454235854053646229257505442936941338649124432186702428298740136290128162378908235206122162883655221251960290903827982534366001109245580804853144868706356102295591588709309815207985776657319455145702591793140536673105115209314902124992049180635191782781560478052989704029753959970898752904402274747872409769908821838483748712336084349092384907951031705339895876501906093817211814879302389486991273625138688794777845619411663005764426343723056468814862986540109770065215427801418765336504310985771249601317752874905965599087212893352507657099953210002113950732120239286693483911629318525848995209090223815861773946250290715136784069199945974703300276902134594074702433959624871018247827843301497287865168251880649593342838512719447445534439109880587311336743997834368982950678432931501346217696298504928163719746315320881668846602078911924869594090397285469431522358443106817306175145514558013621977373639085625255484054612647438906806964337157991320411827737190229709447154844195197025439170335863176803233215617353850409420584532926123768019244050013250238143398447097253906026097174020333377600585057671848140590850258614058874871865424522633989642864286354169509866355430806492055120460353822526576475974060068399204281929927850840830169471901224138005736295672084641919872629606020493463076235409790547118335726395427405392111997884467370925207874590455609300572752517080504563961686821847052188446582886832054469080293395271746956562891629622148764207119908228576438888434609775733137913043970439859124166703996675880809682956321263277023900763345613424244939832574286620137923384189440114515960796935782870380655630919769448498644544341833631636518176291837004872577500133909445863024030867988452714794496482892486828808552164697190307318663427772570003865971343950809752380289391081548304544819436459265702343697001693538067723910541768585391495184325532986701883230173756079924648630799100677212043965740291938241168941464028990586753897779823719095893467605905172715485406770124816556329695573605492761299136500021590805770968009299511112884150221775283177611636375499989620199071214559003263052077239804208581480097736413075384479354618226862616252887194253557873647922017329098835992120430166334503633768378533223299969719331736656543317777440476781384975911013263759659021573430629885621155995143574555579269095121074977561992938446538179400474273021942135806021570928146804972717647008359967300514022092494508681879207191906741028922362021186949008315970051343714611106349773381986763125781103175959140190797317683038743757829624465604992686614049827489592673915688213399188629514412998085093869810975944710052709852864056698420735287414605834487218909877782207474447180309767199791971562112252044504293192711939445342694745682547562816907986919680089555640593121817676133093601720217665171250176735544989156247910787957540680468225087490268622457389846440900733031985851361749798966522730574145102039917272519859414544119497689115797884221322232780090205461695342048294937613068116564447276491066614409814358038860931695819557927994585576983469611349443328900584983164161219023488801274597239454908060957067213023714710525150166144640444035396444084736742145032275635014295776301793625237665823482714421148066579294449702587603912623286274080995513520124715031939873813733170428932583963291875831450896768462429139644055690561439119888116686528752418659767760993579078271548303165234239450095640784967341931581705344471126034066663372672419530776205926784448524062197013896658887975855610708295992813023044152317021468121167042789948577241758399344971691960531143903815906210535549123395834817028990303329855121445779104175428871327991331640433917849914658701670306945878266741644067118361520091600901589769745707907750753796432307473340047237124270972727068116451924029158189976410917379551212361017792954703194935380936559912959064191349818534406324967292016122700132026790362733459806976749296227654227115753532097551356752446123283755020188787569346598458350650260797003785395219297863125933573842568550894052664280636993243494060467721751209527194143151081755168245185835593462977460096153740001794199686752357511050236374346493529874762787996388709756620778758152018697321740225863763517061525949722567536807777429303780247354766033299618896940496256269262696653901606782421081270232135839480933747267344117839631267566335285047375410203550009634267735116680271745212190771323354155484440545080212178454490698737838931231463834972145563115678742918031631682840961025869094356780175982453109943530985860453154503021068357300072090934246974931804834730958995912493094400282999133839987943833381145353792917278068447656335939991050841388154422256871741729002268102584746344349394137805902056932310302698314733975451959783814324592125763783650930764610396303788298209465139689653722110814883855227892743836875073107402397259302654445739097954213291653118614250371876327011637508485753663569071157687395544488906816536111581801781361663444830885737189822532303680272957896907924608975089641480536230704735556006932691280617921722787491538278476692199009238286120978786296856667663270331425993195630957266197721930813543220432431935914981995208169124094886504427472772389158993286665977423434306962681755129934185225866614545853048087341700021885230677317120761266740149416198777778195816255789086722540176663910792725769969284301058767059916003594516794499182419318965748461249453085835520130621299415665733302973611562361675223568159217672761990709474313615180024181766586326328024474106690374916203057289035009765930623700985847079160361542408152036612138624891494348641061451144422537271159194428508229405109779737080552703599944428235863458069149524095382427218276583954569168249012681716470146010585932485640970472130829486229320392712366068516380650299972158261213123158881004226500412986008652530264634947062332185650223456223896434138058804380929482764042360499035780208308172613729435921097574488673542174699429028754070827958696764870547245527590920667193853366299901962783219723794516293065296691183517531260463216320847700209572628011623842783555147286086760487798363390562053535520284371006580189739518159081721063306579391487199317446298363423768189055849155796272647130497735098892040790373689046165252564661498249917869898772014275222988638349291528768547430303620911495156471229707704004265342299646746432012275531677465931444861727094334343867644946868815606395924024804982749239885679518710508271174429471379573028151344629116102660107075931465639825284466979123707455812469719743807479685428929357609006390760801015349516011493852694107745095909603910722930295996809113907906362934300839477748487464119357791378887583718135475189262285914290520813826446470980062051595719525512314240059399563730827484090831254924161962064381535796491444904998511867670648076451256971777822573717752794186829425713952926797434498073690050432565955332530366039370276497310403045771101392285565651161358474302806600170862040530625235737853964250019440891809326683172227939574317073233967082898009931885225726715440808333945552039972647916745440170457176899700610881336942207599876884048441414886247766370274065719397365033036089006671646933633643475868730448781635331333600836567287016773765598471523582398150533946988753734624897188153607847573297666898019110986656097931576358082245659660337430228282698814281510132814063070514463177854688440810353492358085791316884054722332616684359576969115692798807507439250028093039641402611849484355740251799424426211503683808792033434254491894758760757460890255802841092204249635091878635880767107894884984617902209155116673217148049089861681920464176145596730177557092812117122516018910526139936534964503095536324020823948529017748192806553687641324963012276718712384113519613171098376641444657328964737857307200993044401916908467380559668823273167319148815135944119615633120171546791317330202400937146898153004802980141620427428207235917710479322940242047373089267767979096986142999164739711377016659147720820793900249290106914573730221977846013069436837665139490312867063208505199905676326304517561013114253995914810825702734849791439351313663289379050062742312037757305964163887622170071948259544426351245066409676002881487314645974999060375653624787351083401185318233050774791151093222257270290818762023444765303512437882652472475607436511292316279129887744328870317853971445547359077478401080726961570539017141725595471371489436086959084954589589571281826502138963644769734349721808687604579923605654672511002913547485297290451409257100484757984853517490546770749712473788179008107565434615900735420401719846254440080854697923642316749756129487868606371930315649556261072114765489782152968511127882738382029651213772213304631192359965487193273870436516201660334320421039202126088881809269321723888559317310237597887423012320409392597271547191166700251620238327479407749020038447156682094443111630502331042562827490146171875929635009253966074003092665203614766165575945781072432488430619040302004975943898918908255483929570658450145217651746389761861191042524126561871384330313233298274939110813813041604757531569578127256866277318099035278070716223452392617296757171117610922287851890062594625344056693671805966739614083328080763927321644396171847160138890852386789603834501731075684060645961578263413763915911017899541344522641403482226789163328335459073699764020518399169364935572560282823077743716696415741959066282055305130509138257820843177653135773806711560784369944618131471480891947726114736718785630778669490240353940440583391188110251304464415284364558120915489897886779318700859205015455875281899773833822597088841839414332240941409165760069014921389232532652227437793548716902241080558491267417057656005438968967059378972147787892257365674854974611316850198114610421585417940347465275513970429557281491683918094415210561504144845296930673824102898898015079944995815513414347474761505711962367141231986443262893333579804983575429560686688572666632101762537787386605290559592539835883307774887290292830961815623555180051851634495482006228783764600139436646889214666801476700280239593551667369182814845852085729342131714923758392269630929686472446503553682777195397657825536693456306631105264747400706807111302421622219827749951666649355713502208430930974451996559733180816422519972229036938696562052045541334960828364028626472182807497303688495569572039660751890523700319381139108632609915583124851383821130339313996962354517651907746263589155820591772900935871668824371364599982086271198688159481044689134997684885012900659601055842740955650843254701226484722891874275234258998624296314433284316711464401912602895899853028556848145015510435453872067047700523547367134617291402142858235111559504114325787282651740921010188753294308986599598527330863760989269633681066106160011307508587967227039694390250291113248487752346990156832905280428981915612988077175115030172039545070096577797473413700016774210292181192837323899146922591215032481259395491539523649127657241878479120858642873257710234783968450235040585928199496766939877237635568072956059471253839378380720388659820603966006791958959763702998155869387963741594012438203496814754745780022043567484667075424055877613023139186170998875680078450874665061043373924313596141156750689823093095660621573294676898131272888909093201504785948771294255908141346600272764698889568021165024666727172683399555100784251515372378862007025820450479566438616708482125966625881324216991394084779779590482836290317250049349953176556426349319748920928643440064012208230014980114479017098508728882101642026925245840330866339148994038867815667849499780338593403476457118055857340962478110558021784739523686074706806809980789106298539442358214498617675143618490279552004415000442621598420688242148002940620906797477041981750182776174307611394751041116981909825695551323791816566265733190250954499023289814565986562858292184860295680987087802294031211017070568032598697966878181722840774144088139302606553471736213368812195540859832538959081627985533579079418771613403988365524133355589429082798215493676661251496794921713507483815339729770383463264191048813941846374956271091115175051648820862580594856176416015873329776929491040308931636948994149922900398658985589436510574047710322030559183103504140157922492020399184165119853916004579789436888915974541464393696274147974806505050947954650285932046766883347854043267864910138990758315148307984923932367453024312712751403248775788812875747385763228802755219545367561089484849256901601535939891021434976314054734396982211417318837649374722460770517424176405225635368151502340791795717280336879742251345946593899889597605912988428120627882947357855164411155719227747465472973357311572590401594878360814495509211715498165104386517825082646374836275763955377859097724095431399823103918738829579826312672442480950021212661660091982006589219892206672665685302594621754877616129720442064109559618860891966223258496112563584549393164732762671511765421421026282385330084584789397767555549829619172882974223216941457312767197042937225320221287427030789739729877224786948031808352296777671573266423786483068123205850271967780671893689539005806822566525517720792074005774210443186629568974186689330373420335566066966406856476471136020674371424666214096438254578315435249555582413623089331759791877050136805186662794239951719053795380722057066267650726260414742257373628447621819443653020249808125760886338480379862038120274389223112199452528983806200212721938560413247590685415647574828379933118472803562887544151703163162317183003008804475236759031068273282076028008729844148762256392093838184207280994738190557653823156413609111518884018638356342925484864451776080612546935888412232104659762058267471612717483267757698139788173363660543543117015337527158880423159262588978527940609398060052844341628656715213700512362797179114648896362071503626000422819354432340912948714115325130024571399850058566948685769564333551206163297585688744381374341453469967732825122170355420029321348457000152123468413175259903522378405357239552575656378781534164026263632441209974307347636509305504813187115311229931788893749836980165962965633424143567425793342292462466208814346991369662140378782480238388360584183886092235076527063371016003128349053517204457675171103441880074928641591559345853264230808539957352226866837487253841087569708420295744683600295757446179156326245009219010876689484806146004308604850399063175670043753646577838226170136246135292302185776255699878526671924330904031675172059597092568440253825273681749683732973270241841844071069196095823580614905024688130353641202145279042493262852849427445787310301842072925406548972718113434689078421958239132196642068515390557698136929007362122792995721417569515476313546213794258107139304548138157893273358865799305923127352502201152766049001761925263483434820748466503413122884859658618463697005782383627207394670940652948532852296516842417537104793934395951060756686779598982952518201715094717288500499317534085435993975233833198475208422754714461883757551025652133473363195830007319649932610230444252130708649748791717734545765550002607002583256169532941585395539993559469467031745818251391075772135157822581167204837416807005090481733232291785979654757803617951197745378031450256474522998828923727198105447710794608993689827093065896999609873449119065228766086816347662828037894042009462764911194953990526957684125487228903684870672070641290421538494936573727398893343250131035676391445858314217768698677543975240830625477904333096038315065069366629976319771195272348510715539855354651768391246005754505088321845060824303581064331564786724371687198393930000914435721617289604302309181563509394962282668537792449148717400120896338079406063418480272071406760800418524388222048701615666775904196265949155329392018902263409664969109037452853743876391986978387578378591436296667078386080012030979578280460136326775651458080198024769171941923572244203852407862803891106514501061638014459530734301814261193174534755084992644439630768466047095143723419417351972994712177878058085366663771553503292729303319951408104917292233411564194375397852297420442257964647658418169820958781051387368436594558866961380312344821789775060393928465781323999393016123139931108909249470468377681289924895669017203971484394484468026515840631589725281035505448155314397897154470865626719223942810042200840961603871313554508662865439370217833575173543537660957916749403878473536891963570170439592298304353654641808301877503800954780343862083575213094566008408310990753964787686170700737739888685330100784845864583627417185334312642970655790405122950560307425395390820454252246640077229943102783076327541779012964484306489363368462751017149060005670998575015359994094105738733172519665890833090995728630838951345716294382277106310287189839280043345021888912980472420265392575962658482952114854817457290871374992452125114670347461329066013082577287477051124939921422407965314816766525483297692145535646641893065795815804306249128468166555862018802525914867347136942196310235635414668921683884135326596088262700074794217031455915546603579728496059515779442472323611429766494868020910423696167875394490877745682948124927989794248708641072274226839785156225408080142043990298166673523307944355210896931620629567575695792361384497593867943793501850218649422752129750747661977625152033793664428941475119822678503622831705635192016383751825815550684721499438103251761553416996321895641685681066253409869372914388565371233937789101237111605357671145227301917925735400786680403898734187677593800158744514827305289376855702391563681924740180379239653573275991943020114326405285209085772142112889272883816453447897570721105249070180866979483203447362815310043103843995429055130875231212219608736268174014422547539138125768900352782812786775494219280036526236871458597053605639537189722954066218222327360748848023092389039557064904432588561557238080138873611178086954816693148733057732803177604684157398847660988445146280938309682196713882900067333866626837370469568612028972048091227759628372146161548118425722143331817854386388796406019487177594789770780000219826298600214948066169190664144739478337810009406422866054411850810898196058465003903850427025172892217063232226690103039421168455920836423458294880505723145354127126943177776205957712846870056374435122008757727942970581401378298328287780819141946500471665523821743823226697446014661301222368201855406025287858342845828626161240859015746354379905840383608616255670480783838529908390335365959816734997350063328198340668636955744633181392191899004758408805973346367639473306287577966489233716311149185816304286489983650769453730613688874382566533966619493882391915998564179535653198602894621639480712651252146152258525058542429753149808448533053825850561766690766088136529174432711532362746302804790120381389606794396776399829507050940459956588787565098008999043121225655506021356219329397881369691911868678566365118715638481295405363876710766381635457507926073830668275674052683932078363042318533634351755248053228326153979153661006785079298028977807149612203741656128236850151489429106141508000481726299577999105339821387618785839359691927097481075027003421483513550879690201356755400780692425301384363302670457264320073672923167652086023639985102031006098899621293973154657906583290287130518015404775637806297475639619652346180158539151989016814312734906590952865569678881662863106536097342405970806953415250589452360513943548762054488712280336447203243646526103913923392408621775503923307141370974649756999186664857949840038939450940821464427896145173353718763344981636522925561527510878367533504594182214230874184756622062103576767058530931132693507339176720381637116915998481175285217598889857841035226347049518634357158794405043960933891955542204264508531876662894996163858784449999065718624722257196105025263136138213256462632396366617098542626357036048215023731491305355349996528150565901361724056711618144878311197891853129754424150795045072531136248898614012291926428527055104106808838794768699851970534796279515993663118375579439653978295879769896583739283680722862243922933510633140711196833634465778208244873457688166851431188155976824883933764053628356604537899143249840634688200560972324520132863392631697263827202219578565040956342876662919335064937465577116641293377301164207059308683146027231138380566731090878794137917311742963957699712105171445162975457109069243381503227502791417367229542370984348937706596972459863962193807980686148694360731110197354394995915071692911843044052303461923747404756604851262752381667537862659710050576361948417267989114448210064520411059160111241212122596537622780260917131733940802040375779007299900459932089672139220324351607816303346576855116905520827093545022184347029982313409431687783937598764132631584588927264261229830935209723650160707323965604724607862781322650358855292876685804846741592592185448862764194877969136610851770157406344599842298803902555553681864782846822373783932225717020587253012118546304740550607219694371145585241671214381738383562387714160221159898024719155593081632944401430018524456711640600121996698310120038613399630429880211350818338329297137294791418152717993845337225899562093565276746893257904915313160853333411778119544710233758595965728847005635083092729794575952622350245234730616646350032232773581003515259764106133270146315584301701812144188584225182665642926190586586449972176166741536287677424923310035651692088359313921547855485638297081346018221192121754917420416111053066481855237722386384167441281910575200550048883219608080461702218549068666858384764913298766661825939191907483072361507543191702650097751329633083371157209042927977129144187958278517770978887935880219791665403907313939920722574398760589203821399319815443401911752855942361790484303989238666349660965394632580055561294457331199801567913353479845011610989077850637055162410692944462716250580023341125587145439283773488517017023657513235866627490294910880909084006804017398891377039334323845414327837158294089910175735050215186634075825242529571371949577122871707521836004296100874160685830013537391624124936019688105601063870202970396942543661365637192177796148395076249587508305275970614980734876233193546837658153724613677094755222298680693173830150993262461231740832575657831769660078180373371279255430240427151681023981037843570382273415247025146587183815928699270090106326255520616896635693748303923906501439802765465355192017111807452617608078652096004892506833125265904281446000348816254080536632627031979098475660504900889693987939493624800411020398303346005718121618505327760097199044047765955241365631792004073758327895248915548997565660145831942410222838071991794786633080199154295427719883505554642234821684703490061432859468202740892467491616835722032508503691243401142527954182193610921429855996453151645534635940512708016065758575083283330228806451127658847028466901241261404160437820458930040767689362236443648224023437497331842527172688892015064999122710382367033125185430016232811480610996109183103568470078674320392158260618547596127608254605181818878694095361242895226102207508724413750239617666624469027285026530779845386083147577585621840120989436089033283565000442182692348107354734761546889045641957143782638203254778257813267223676061535787096557557165630882764090342964317688841847650186105603707313077305355100298435386258804478792638028006916355008777636914967750729281253915229115529964765052315955967568499837506609749501275045091626329667233959675348906284072982700421843061332147455085371111620361103230138281247800047832092761284214304587842213704202050639095411187989564196797126214178270228280820607516357254780786269991159178453562908088303068758089071440903551293193206288512224402893056532294662935566929320395124474196337842713965819360544207470004018564760202904845155624529540009757010991720826462248082441668161624130539614554197904551656314960244993496160529168099154312116852686369976272437874827209733789487743956787729831714309710031048228948682686801218008613094775792401532466963320238443754503157081270483319250269433338163951030589450802619090810490882699122948372709973007592583309521430929613403097562868091862647638947556910036222977706267127566950466828261610766496277614404329877530680698494309855110367136174161640203406611338244850982191596420874464732397902528449299614241443492858512726423683267019502390613171888596626303562189164594339771971659818723995415843038069356652821202342330122958817560173911795094828719959851523484584897137911567924252236608363124050069967035589018995009742289239411843531135500957741029687430893397742322291579360361282067751041478873554086476427507651775866228926741732395476249898410517082518998062141005652488344381109939495785926522597241982107879191386294569645143958805960414647456928171797187531221418453698928976763607129064394321663684461630220695681767508541568027359880274393099005529701829077262376993189157627256214651455801248780678415683683452709281529960620970822540705968928870830364664313997193682846988892476818694868202155863871322959515339155690059840362566522644185171053277829108728827598619268743349375841530853231179543015036399899776646567868664548532364299851943824734760015885637831867927275570991487575302551917730151052577915893323273290817719727030171260582196635755384221161829784584328070635669677870950926494751225073825180558318644144217451659645045054511115582139402708173268130035665258844771973828003547331511187692389351933060220733215390751289601055528828763102532378526709781901776650015459831176177048978006133304493623898452903381067207711620917968527385635497469821564166461146773613455266431508268425771720465462498304564986029395427932620816231187519084041399329404900317619099707377261031519988990453895738211257132414425093244718637654198892249756283291797663416769560734002617377505293162875415548395002959184129012129277051562431904249611707502948200614682406498976490985265175322804257732997650976730433355938237377706755075024297802321947065572905802769794934046582508266084727874794159146217916015578746402760531046272940072345443219333503882136575942615822698498079587991504045285858665740750057212317210951740093585423830591722754499041156302133117272948168799297466911724687043965532176095473679011254799951187634352049517139141132322225463839475986206597287199654668362030243039138269915691825647558992908903186337277977546113149821243322901526413302951898738377518269524294022955983473243663794224716448423888319488955650831656568262444601198149444740737582526184250708880118979654189755839285470498517476724334515064632265154703150953298110878135464974213030817084404633014788508353709578529213301869810837044729539351834232200122839209025545529821227376764577140530585689746921272792926078827852597410367982407764054651988378371935084383240802492004247306661312235286503452477833184426925885666688153358019411943051964731448988119290981418841341821012221731329739080810027943946039891323696440057986945679830772689381286097084849729717603332574500211355226618108670254170455467681606247405593704783946893215182699352832417711945881790979152748098523206729041941936043793387085351879166718867307950664367578026614055574881425462567880522069460905349406306101222534132498691640557190883758152903189631024234450697540050128841930518577570947629801935168436387745967611479078117879657014159097658253698192577807679881221727545971551947618421683284454380086387070140549887939505102460572775677662577303147332025545557704732753610368521403363513634444884527291569369189507441917637872108418545195358192214197451212278656261039319733217117770163772164053774199382254431651620987882336653471653347894558274725323233581855246862195317512273217952799920307813314079818494717254166002042373553843865266828448124740814710969373862711910943384607720910660208121116317799846478413964292928186841515796615118974552237711402609881450177782798529214986493476807693457351085999363883543865442234714644085662328393330280638240583515022920586549006998042605827518212106150820716280743566548580595724024677491192852678881898182129626608462472893013046788162466548114864282220753329605025973134484989113671226354897837325032318028059170319843285045363300636859201022986030026601913088434695423777713743131798995036470406753697468936837422721575046511700738335181989231066108391884400181801168499810155029497728869673907277265013521888765494067919399567980131550859291298543475806840075136775287824465058659393019071558482123206281447563655601704606718951135176604370343512365036370754629857341401846526363542385681747469718013197851267011556661323907458023526024550398503026003985184404251755523194564578691300918540006759317151696181543081070978260005394634388210632753870387822577572736044873153537559572044541580267519152444838480286339457996692460094314413766513821647544625902950272134559706684682654535091817202079803625611172992933761955457498605324385062558952030146845582063577433168908318020468163178273512590454746032494222211733796353265408027519091755400765004324396923723424832003593639478159235508079840627992930705036123211263646534468011954097630343650274120787099578903615870278360559352537169917904519748169262153203997757587908367361779070013712306126305219909598724627985418258187165689146405012531158819348557110711235160258081197322268366684319117046150381364654454005378159872765820042962594858815925538190764008920836653731569286313462179614109416421557491528050708806497584403638105005279571914052399348319916496224054249982682260420699412461582116974766022423585416926808052386862464458324010167247112557871416986466249007378165556813671616058922151652895573619510485148534102827650672412621374244334788732612981441424690897924459490158451071519615916059991270620756324291082734912018977989394615469336282448161606885816646293507860581841064397912808549726331471500541994834716636636198858890126408212676307181795157931023124396768757429873459632909199815524486507220008447057705105951445322743222450964675983805416056406591051974585589963835650113094937447073741615196206925273294307756561443406643912021593972848299663765530226709949131415786231720293017663959779514891572355022414716723312582882231979373590888107826930939549111690865341674436261676914699474196969596817750062081178468732905278627115899068804439696153694493913852764223309616364309170939367433495399405579956819370820193518518798772686576766929070241204363115768719066824390426624001338234667412776678667507227940800528534316034643490485273357454442506277552378696181083327092467157981891087871066648638863731353339855889578782903894856100137227347802887699717648985841138600399757591606035656696903930108165713853652491798709831449716494682209755784754778738612923375364629422336324324723176850104152071775018537954810088196140994663017431454580701071603683243647479016650835471707071412833645096631320474591625954370009814346494304864056455846232544095971971356683571487178943011886047270228022631935356157556044466797467049644562925651943175380654776615808282455634302415163133416824118841215216546083956685912083913078813939234171163107150113248621531944393023943602594381776172188568375745867784803233987043696885766589857304107420377705702350079375166086252878098758221826014126025081518803086628393683405639441745234776084107468494467164184914617683936554452849353116020383747910515519527844900937842553486318173969164757598920857844220259569037191990878614080002326572585090137459713371185809800657132406994834939965451276527508655994640254409210564696757126121115319856778985587188756423846401563666906312424493782925900036458566813169814051217249270040947121171032192718630189678966135872535484602092080948877942695890195278050093502563670076191268201333045717172379959916794173756692455533868110045164752462886975706870352527363577568808301075757999011402139375822553544264612881813753227778577239196756066376917632489471338415699855986867115610738709923505801742274513986918616130027139607519078350184138878135952668911401109555535729293249458331384855900230939984182280215622093745369342764144384901771720766956123488192608330422727180776981899876688222414444727524081614642026181489836918615967588767103895083288337093373062444036285877379736966662805851631916679967581956151871731919891192190243971597598417195242894792312519435257608441691957197328181821257513395017106814993588757652937041189796525096129714672721267203818675919109704545593803269775627004203933910990114125143369755722979741723104270437489483883646693538075492449500291369762624884455810724892848232119521280509183692627056698406010963727789972946063188561532133060958770949238486162692104359848031683827577037370486605353076638741757010971630393833971862106965479135952705141652273608355280224275863549818318525640057640002826519357275591561419951200310477289971025655048182269536780577086603153198180365118539845700567217112688966797122558665995155716276497179341905283307357736697909873549221223260469640064581948111450411439898227793991991789481293807825143219611730665517146606001781884691987226844276770992080809771918352660242390028257661271151375569613751706708464892864608350264775830870556495210308357368408045557721760633826727320045878429425038528503000788894858211592321602544387245735023168778252052391064876232773327427381476433514817588018669686384886005785743627106054719568478120506098284521629022637624516675086493391521372828262004456780433692277846137273430862288853409859385662699083253250270014908621305760550424699674141684042500247741138520080371567254792406448184518484894103156729224603650850310469997901274242597952735674679522908526044456276216451843012902970177837016103143238213517332307935993327978342728319124781705880544319195853427176416470629059023782792490221299454337823435845424531622739974748295646504647095510528256953879888151507341865584260693961466233700403486171625659265981873651193466587458778699418293125892826571735054824521219893995309329658380137078372850597186931647160120872749261070434408847949146679224850125441343757157545230419631485465501062602006434353207914314845249444682471726726119014894029032663164502353582907180435918942354584702623377158172939900235414663637670231899713726849783227657412624315271199419236590576759834824893310705424483976726356402940843410423895842728211200035301527615569414574314864385271261529534013189061213515046003714881771185587266709701599006868270489021697240688037917643829866441134515186786865216463338967303220162133267846309696325005413580339048212432051062582897561547945024122591386487307102813809653882734797398065678840075110037638707135740548886109486305946233005708396411104553014381430948126288945287767531900100756965450677497970511654219393550630836572567195027264481487698038550325884022244545382306409252903070411593067172210787594563203809697474613488368078771511204425314287076536862949029566973842591801347770573524024351072639030181467098523029290620119095652875149034333047426001691580660883526240183779621410264719071020147274777851506763243770534539920403915178300712280609882131224125884461634221785849488233724587649294049878785520396742909632277823736351103114961642701110951624178978410320161253176548183251037632216955741898574122102582320622269686404118123878112338142340150773891879076076004901477903733572938063556395100253600441575699617529939004336365471965374960758586799605744677314427604148326555116163355932191001662365895935580729130338209487964949143330307256359841253932692256651546511259768785695299396832263277153954480289887165178453484748275803282939962783515866144849580166059302663946826857631234139124464875550199858810637115961659825195611961478914969212167534413275394995884993502870121105599798768686381954546406396756100474877858347462383019484056625662210733411770805762383610525748911875594537347360301517624955946430265876950395774427961292696310735759878503490925081511217814895712259344897151368898573369722440280278453099318381031866471629036739785186600700630251020028492536371361719032351676637704434560522368293218966510620225798041471251588864914592052894715874816980681766760980898712101419809005698684303222406379520005365647129299055883490976055515409338641792699844597898735856049821470078109816885140544036056909739934546179229793986903768812951331305991546775161988106256221268957059210003342780528812789397043511494164560810830649037736353150673161227796634700144273256355241820437249158069502201560080461009368395236901456610274796865268323400227811669880770920847312906667986323952042689817691549401979107416638691341460448406034708320185268175820917072606405223126339428993356572822629487164346137702193663777352861938626966000701284226555597781237302568523598036614273779412505516545708330602178943437331578784647497042338251748058130191079194911433259840157135201141328716407038167894704403653754311469186126179772911483966967332881257136490259930081487729119264531363009753340504679586065896062906591264793172025651157344326460612947077450824057003846153653098427762676253409040138614655255970740892467411880726661588564276860548116614762796906136926852858718958783027537837901468835726809253898394589437734444279196759718064083301122924799856925121295542478094955562813660811888750008948473749062981708651164637243370905535650363717025227498395291612849944937400393723942618299330334412040721522075581039574090250493469718512805719265200873345297473252834100990012917443670684921565957675904175307708816332965575905022370811661473126617758604534588401628515869231827592445701679789546337568212087466985409280188842608747786928303155873627576400890092557609144555289556550808392188016816661065526883651484841780467450596106010168226667398220006107195720188472053903234309390063702235217943394663720337237362985856010208217476893809044894746227164722633152626823892229427060330742475087375920308528579377232433237884205841850205572934772726097824039035124929038957895944937047943522125814610482572606116879086966916269877581215154728492599653414967148704280968685468950781352337549442716642346687525262813187885338291456434122359501751898816177369320652073599858522546123074064289251035249526466530063392913042152175472279842823355953354186966496653084798740327342933992127836994037083247468111935709861959821606063641422402137447692435781358757066657382672730943108282451861905538789518798101384947149916753178448344028284037972996721206278813337145114257394506858254430452716325577849028098449993720898993841728836506769924627678674626705325331878296137362159927209213225402400714197507436813986630178924223291002420984725793128842805181784164905947843242060343671911901135503598475986319168371659990765459532721092682906164272075899603143095517572861140937790305264886906567839012725507577684114984040432164531454292602974142071018555718490343448793164958818948183638518184803075515515791651900885772954904365928784333613722599898005483194300338122974370276098686789817341567695824662261211281966622933259358589129530734257556210242173283593845895671457502158154417571495331088152559343706827991312842138389404020893213638363485810422337615994545467006976680644873352938940546984641199920840456506796457926587062351452071136402719580134298182304054630177364668037723001011606675608119049539437777132977813128622485081627258231949211349321777337903342843481692960877774374877268762512339977824652597651101361015487706061091896077922974444998064446255414880527380694906529512134775225241873874398855171169394249168431881710936997991583512294400763285652093863613619545100530048948033719778178428527560729378621529986980948331747463309389896801682836211863750697012929619947275876566851918855448192202585986201621653573097638086812810541256423675191848730397312016698517236175013144873657896678244841410999125995193419278511764246353820414763674073178454055479471079321592590703435286943762822466931627967870056911759794367676661779698272592516767805613407282644440759510767479233530808879844102611961074765604921896481935460080312465213961112460670043237827108296195527167389085002853840617572203307158503020346525439944806036969737617317172278406973469572916490841460278761475148635383366404221357527952140475063290903359046858925220999720588977415039105289286135512248620310780808402506060127306691757131288225149965938558529850716119212339984100282193022783753188615834092167356648016524060556456494822214028917448454571594100913337209754957341755902266930361489329240326934976344338857204370664411612939457943350211479482094614556767708434956093804561592363482867029675983062104803478390288106973902195165452677384823321734717553863316742781169273454891052238229108364923881695137557423493458122968005296922124026912232883691808641026890343844563879582453444207129177248044160192536183896461691466879404756544913263249834448129317648806952424554680116941569597416043894882924958679122195282925481644448299183683644446078822471444040723630623602235320054979153159633311673444924011518108706940102428496252953050785198655887800747302550310059990763507142669827195679384617987670910009736541958963725320637454310702266931323458875255311495448792049437329260201136488823232735763164751439206323136683392090983906565206847737806977998035379974678912593216568387017485269883341369479051019687712878136367362277544831213663489064955037848628220665468128563759686721274472636491345050886760593429613373989917804903705925507699828490143803505938406818811475173044058529114901368077558229543027061353517660239541675520314499635003832938894129779556021223851950019845352322574651154627533645203623392388510849191832384155411979432655518618160529455749939578154913496942786165202868065294909841306945091048592745404891256285947287474783163909091796602822492039660822052556697651611133801421221174073739201370992186186086487370118319966891207091753339325312566523077355626759413698374098256481550022169056859668601909683752042001545822888675654295681854988313702163115825941019138843056781764404415249757604016813531664565916123321499934707098309260523514354558337137588721842636623231074936277825897467342684725093797629490892212859020253872067562274909356440100471961742683614456149412970929177130355930951663677863119859384233084211290371724038646184959138906290073145252004061829503099865884436198913898196100729388248590352703738255387031599828482088580158468582900313336895521893279141458107089513455385338813298057769934745435028460939915504700364877318686130795271144890848180093830758728346949942329940172569839290483017145550763197545955611290572420011232423695021150284525877892024112763536187075732776136969600174406376838772412487976088748569244722882812766819544391437257152115388486640974264250756212683539887079570898388255954734250680268702942875660252260673324901934504897998264395979360498780890880273874803577049046396303112976070912395833479510169312347926047068087933162214979200914099350924049583025406045573697235625398978741842482744799080133051143695326263435053227220746551504954349246443527651614285294850341118073317180455484961776792414945126301592178096493867894319579260753075096026010058386839431279250150293269832294584474258883225240225367642431757673598806346475204392474314209651877468002829149910025253210833135713710880477904506656652981183804626286469761300251598932810851623582929727202858505125604145024074002021262595927294052390307252867360040951973616421674595217485849976536725018784809240731746351608672846834104824532531471986765438540550085834618127434264073183781047021371902334179909775350680363897163571848945273948194509573471320804475782277560214761640784532507627965249316640872408617812062943203253123513232901519651225363627040728688880827711872478425948290954154264006473218846886622223814723761366503724925841274370649094013000181899752320136700778215786172610801078954753232051607070260652846263930303031198832162566242114255602404834890637717832409616465578857411355864238328917653215453416729435815895528758087756257234489157219266648314861522111090554071056603749758439328928531983988679025553680302406562619236367386248147977249220807158080499543938413703980245284580930414487430725213289977539971368799018263936686532174195690894839957348842955914673480068462973322334004113482692409425003659738694874357057756873551405955761726948499936970696639694402555742018946391811994726824885072103576071979915661159280696402110922227892899508904459901377863158403221350918091094745944194382536146363987503660823668304224849153252722165917952378566671038917065286048369455145576548242387347759674447299355144384873342438021640494013816222152721960429857839847859610179378624263718501047864670511934034478638100547635209480300678320915039748530194759031252953081443889014989296047616285568106731058829232236464764406055213903774695876924642242133070431779918350683500022770309058893247413268849521533095994488013628216012964264600164619846608328580497399426211042561480711148953598680813131422817662009497572525647784130074476858816759759312674419647692324853842629508132977533861329887747050507349285989452472629213711965184082884560992356361791531259951354851057203754060540251668836082242540279447160058466236329214208065753843962105889001159247145797549114906527771070090023831911644276432156414093908619947020503707407870465007399284104042673659821957652034168369812170743485795113756823794935145588067805266295515862191000482752013436781897388323438192288931102543684087365532398154547521052897039349440315158909147669339881415717343812203843891860377789319966557352750686921885678646750348861550437520678430100135052476708186361259217844076578622556748977027338719122807715382261497830402843564233005673731892305813150550202411164172089510559594036183093399688596810841985007312598619622760423038034588520507713974783124517574139192638917313658940111993205955261026537927040749192616071923496622796362738332812258893369024093926951726193495778850024687443377836558085708772322118313327234120124175455626669856668813410958578349126510172170449689567010611078039011444921183735154102502453087205969105561562653407627426589774327032961286136877950451452993789725008180142916834854555725481862168093445938505775140746937636695357018643407602593599218058267013211684614322037729001161148645343467252222887768699237003568400659733754896820686619661334233334327848027148588180129702029589954440014344657028064105912023472819208845974833716462257584119049312498472972747159629924506564717038042223201355097198386218224176778260041789964086281423604082276421522749211988020952182657743081284529473745803748611774620558244517732077867161647984528227118118202011385867398296403717975402928495902037407134770296949156043706778704914531856532410948647416452874846443144491631947140559282121128695510072619208629820835059170147093874573981703625143528116080109851950454049726833130977312799220100424632855581053323476767779972397692083273822574173532807272320814330061008013952018677210919807607468842059815234016761542300619227672727517609003019222897693993920147072552655556032446858355224760997227244673365610598337167723407722989683993186440769428056299176707200623751519075645066725108844200643219744766059820929582085546680036137871897070959724181233564003957474494739669674603157274495968558767193581043805379270924372714401633369903340493344522263902590928040876871182186039135654519102976625714733617964943110424419334817948306876612653991500624571265086348730793923561977208221628521320239231674880763983157688616882053802080929148149360210491533024477258286329196693494116145892583927162619248692288045079443184896087261185696689964183730870633982879623292781291010264909762348687494859820478848070640973458895961089581701750442406918580135737456180384574253817827812371946848904758518279424868259115404991730332235854851703642470840433122630806176540024664381008521251396471659760410431834390473225871358682270356877155987377181935553921622745627291396624058631491028889949942920978678654470264720806133006831817381209595414579764438266214879573683894338978765552464805874835034414106312704331670066981972658493350520514052915927933860250296522474339460243105870277302297007071520847313882191646240932318885106239772042903476603899691923014804579743971003535206425196813061380542509788908023087036880398723858912171164383543692450752500678706061156762542220757689269622211279552652817549482519263653279624342392152443786000665293648321406581658758617120249793311689420257807226112347787986493963381914539855777721102132646264389157304477127652392109970006056548773034084549278303035810685121015698793126811172691278187488693031462596430626825575939568494927788917252986919553391030736381855089754840951292088026096470098344403469593920025312181142768351102066852908262020619534988764200385847256049751260340349041042687601456965436442270308145305112967734199493479727933575229249585491967727244087047764773623169143542928214532493316156038060050790851683613254950590070087924862322546873857306867019904870109907727403239991108142250073579428764745421793787704735107043248261091287206408482636786838577220962409693847734572824361091452801236855706659062028280362438099576786084750534478103021440917148726565343968870308902769077110021133511903877468410455011003438556104726187091092413035485684082973825352756053829190013536610261495535903770343525874940209441395407844895224397834868177364846293653829906769866222533801841448371382582752958282179211809004695684979229777503746497409656832860343126347120557500891840765852084940147782435523854297030796859188563322860231936853367712730903045068998551731904343612991793549380303839786295295728747719450488778271775353134873637931142891591801641699889558738683720096484393020130012295292622949636758317335174734532523260952089689744933210530531943166668489889766947657199543750346028965487699799879682578984574343845263433473243225869371814843871494562828461874968770894963189876091392431332731127477689635948711086889021050473399331048130002574724914627312221829130627850770037994193937100582159035373655997618058652936750429111440928133812060416053570063444094344511172289250955462614131161498082731777421102063047437620621870398921295336209001329680605258297199875522614313644201659662861491060034859719506534932412657821434298325430990432648337437662396557347564670883255567553827389407551151723284685452045974699222108283780313796841612006011957106741368038953105923287400599662539834129334893252399852894155936367915711065088905791184413809101385122508487433736257755731767617756558864016431138331230574517268471240620586559594557881359572090887602807268538447631188467186508471413747086795300747392738154252170969365122607330347699454757711371910885669573446107140401162252016141282977970937556082040095917882514166245262037524238205368405260129881274454583905323359871511660340922446457636981790974507751776653126922065572862099619791924580300303688039495603512807438032758146853660803026542455488176246610819344187930548759203559644989346830703680308668512731833912309877941125875624387063176436465679289456842731834179387355500846071105397565595590114103556487973105736194761959083702251033003380418763328966112845610500222722843667219287159774461359633466321387773872771869386633347544844028542831378811816906541422783550314886043068740993192041549457008976756343601863670522687472694151071432425763220649724204229833859029445365892651550625470295686904366839288631667985929484790803449314525201548862505030044128852608503273038056142789075926627524958676140001660444889275052782477521463180745701740196055855654543248779259786118598218032873438753645237064702285688900343555296300448456257850137868337704964004776535670179666810659693918609347600431299308371859689832496110394570392915067041729130783776767661762754327085227742073777120850926337789467239234649437402804873979141360391668490506102126327577996028124520474548570272472580641514642088407571402475864614933776639567672071495569451703315514605792785604213537166913520792583030631301297110685296676937030137447051987057581771143471400082740368272183842773547930252702383071574912300809829733158284770936919492183700526451782168404162601205497350417395684484467534387593984321923496403574486719993002491064999812796914126177943007218069457097992710586085477698608229336072247186342092037152488582696999452420795347463675723335540542601964683511919671991882298165726894771323810733731378690278262107592348190167456031915247792767609029917668323066583483165359679602374827444945736002859315513040458010889343031962292438294657249707455824779611994959125005880021825398462681749128967596166772333728515338430733235995938495664861508078412289022935850568449454764027652146771071468306981691722342000039904372137414090119097368779025179216916162981440542402556843235058495875785720915940477187214931480541838377696371257809950230515421609756686225774510417376748036127933848202717634118739056236748512425255707433005631301889133471632463965755818294826010980885207600025471927996050721601561993360529670726306785016044644073883659897702032670053934689589812889352370612270176081440304295519349581047007779405982908323289824374583554149153785050971442979962311177291338571484519667092913851985744143409522289787097850861468356085491585676272558850753043094004918300662832430896723544046272998997893236148034217919111279305753032673970858882079715932143474232667560527370858782574966865651497438655240409585783704281242112557648193073703198026680122544630230381140932003113913587390691820402310066454007073472495754946389011435192935940764129016599358209414566946267951582252753204273342079729231999267258016304138004092701137978742720034743660374283825207027296284044834080595139700082411212237337224974438711106451415175393703889331534607873952535547731773220232924240636029778482611513707390924248289250623159408549952160944816458478729145919464815091586083610945478696950905856283417729164361572557381363595141533874183447801814186356839841143927624566355204781251886884955500255542831519025571422859663581556236798979412208496844762328939096562529506330463626520793285846159918183158817993464915962921919767937140257668086294345878983239701549796343982297450225255366752998884444763246382403119111347130284278864918701961606809571661841682327644453869971400774634651789315134082124619898440912381656595865491992217079863041421651010481581438624811655807035724955758752199209486847837750370561469557357025993265268739575648194515661466998347728671274362767023819478016770212041452862514332850526720361553090410017256919859751964801349259485455997665431244343936434039696698673754600489160649500846337074437482872832525814540716741251399044878868369902321316640894861452666817660719744749966837703328721209757203511419018816687719220915227648811226467870757011337384156024446114326026526837606878275205443391721325801474030788886451961617141427862927646213796060555223796460769398853220585372719689844869925364089704871273932184786105573135807073852445785175203834687621905417511526561135772271384913201349621402917973715567739505300425362788822945750100038894446737430986837512061976960012794918357141675860655747358208957221358425688200838853038202510169774457399337361488118372482074471103789123405363208681230827290987256279392890129150602339626749383017765212449555366521615841473679433948983465770266519678559775685622464144571471378498272532488468119274022993978405133287845464659869320281269517984059898047701251278526083639413810675053560082154427175720015977612061237249956525992652974819457308558874426266102725820409622494710187183038826897964254867750611881048469600689282209736309999556984183219107935152914606443275013599737223461125933134168043475771384731704418730499290858340469357367955363221259828030623977184141372440839560695420694957970874361264792182979020732263565860917338431605450906707593376162689717334874024962819338544355061837559324959820659410150903507878259992081535503126080558543582233889485372369908354152007761588724795088931204652062495314498907771266780725006672331835753819214549065605073401915584431263432213550803090015763183330388559382688377354922540196305050310586338129918718271331456594956100578592208332519519653193648517021538249267381933243264701144701147267123880846309767950213105529042521419086614356088784193057082897488119383148829603438478014795814438192507976633634069490961645424530914606423116478360550029482540736019999592906874822899084010089245445326388887098924994306897066129763263438335542071539512311777463665164304224260036486490714466622373412395278489064169648913630682104990290294709592578351843515892670716333142536492679922533027784738227015387431549025199495626931925621890172440073951781481142568573936215193860863188262649566991252269855751517369606509257025666888695996582069813250360444221521636838114517216846840497394463005449016276051679744766390879474113034896254415324974360249188598753543180789098044569264386013814185780733735229554762395205999898535206735857220941733104446688955723514566874651580946690805681862656337908010456165724146330817901377232796790238344895801711972078489720608993426223512029934870208264714031892053430048015424928935514840662255555068953956194256160300957098903970240536172024291116273726740305697323360431772182230817352572340175893490093986250961086414103252350565274975537167348605190902256875646505792143819259941421460413286544394434946266407799106559922825758448310575499947988819508834390901858113204131032769866560061577081672913883219345245390791053820567143174693359144628923693117521796355094124087496581945548122431664263453815421927895515236601631872760784618145577901296032290714657598255576416168137573060427884917958133123031789814394781718278262726416522112194126795572394895263556671020874980721289812268661307576273818261800472058803101455052400625800126039855716643320733830239597064395800954334276317624251550342155712464222837866553690582588247435336904974491830446407707181285486263813811048449469543183021006337765611115217204592763113124933542801421421579429922467297209777183312234942234679694489236722991230652538055522697709236121763937140873001813498631794894271404904380439847563813477129667441443384440509750192882634223538461549227171388712650732361270819572975770278919457374607979224640897282866565666637967633776310250246881794488039619563283937844097828825975708287022040482516690737700184774348543786879114578059639029808818838994036663409586935218717704320886925267266598943586203899128176039374194292902619935855838222178427797639458981843274638381060137924648125763268384880365573348155311172662721237460108504833717480947532604522293334158911261064792986764588502296309438559772458835626683323359061951052809407241551154823452333040281476971294984812420090618207878040142085743298290036217933721231461806037901530153178145064963816680945034351421208396133328108378790154534243533635219773143096755946651087234713709426669954863056539098927742709569654516335929066279619359675949142944634347184000305613524664137452205583991480955875251994329925069865327765166601258536504967005640186324675416701848727300932066323735082695092730941335215012425395232369075065053205725131491300172967410902708612654515883971828167816859151255826984092959828692064921345777289136672260356822987750011235305221729108808145720698853780851836636050147046717093550950190846537445808317912769946927485000515575986889312476997883122673235461752669324141734901742301101173274989368116280875031953857523759536482357212449091324781146711707119656339932982193796675839780299018559055934047160117544670212879457181048186591873287148569048044832870537965949668261971248937380520403915475303307783293086358325760168833247333957453367767964032873817479329437065694201219167981942232748651335547332868003735869286081689821177500742183012093630580007233265950335225822868669599173462402807634793104842753826050515792545277470271615537416762198195263662194088640780616792615748143875652804979701414938159611720328137378740611895610169145267716285411121962932663529777957902425105034248785094729477086522508618805942218753755396829214754783560437728252066539822414610528610283693022910485401079703516699156060246368546410685136930592610863231627052707816728932911539292239200405127139510447587834301214874057810909861575344411088429068395915376336921558289296122651084875952572851331959532002476309850268436933369325692256702306016290468639964213989782009176868467511611466230215805953817507697541501654063759063568226086949186053706885234480220093454902618704569872315589359850064974349469308143137744185040146791044309004475684958349380938835265511370534494794066526481926364347158086872606484999137744958927058157171155003792861351556645722293061159083059979242524900247442102824541061938430476817986454691646746050835465353367022671057809062231838775246630761060170874254186617600034372467377940495288348271963690653011357983187212111697317833490449427980053357450888105824064137270814124506912803120102382512085208830794832586269161326027798615421624134052600840868638902961341653046014925990686132655542843475358050419545448301626405414821398692339822712075838440520687774414841219369146684142241858427832450975283744885018884719557239597674923292495102842901512002697955787481126960834821850643202792209084735334867871020963169213351558317309954950975422554549088949962201136635894150553548022470770451062568818620802014085953252836903981468430554146310695948986413885161169882072799135204789548038508317209490381423809313178851538933590831504332628237683094850323425159118778804666837857106023926211167228345058839613427686440863964888640044280882355889138173087821952548984768186374026316672389240344329960246252275894305725936461230015442330133804907850147287942124606769725675917889553939170934389348270621909133359528079058876948496435395290098760803269799654139837486279315614508153390720979579107559932033214531446780911431491390755966189350165055611747252993906399124687497615676875091238446187341225628873084471180547557923508186599033831236786002617129750050403360377127779950786751789558286045524190250752076429333721879763072404726172297086488567172621538094400584440658769780228009461505558693351250651484532752031871604457390775674869501849462495080119858191620247198771542853014085888433124684611536140938859239639490490669429081345335693029759675563233581710973199682234386431834818255805468816032932153661034427498433053960438720991039658717411057186167222357819692984860988006642144312684671049610444394364874424931227553038778277560077738446428265287957869889573950792733297050408821540081709453974459675691352615022529519118672177731061480969842080393913043110767974301616466447084535841901097300882009973333740987761405408964193854458171606899214584583711905198580751338174237942064809402972850063633582108273444810290739638988078302284138504615020281421855823569924127050170363851646299264710302910522321422001889362222313535634548182293541668201385403631730326119280793126753959062703998850886639516065662441390872157354424164327982865029876781319295613324079005336458260680097330362474976608533144717913775793094674325855586007458930547700738313336952931563088425052895119888930894021703914074391709319346921686897385721025308272674273861851408921836860332270033929351948411400143600692886717653716722175517392944410847039492139072487252784726734521696462762925874166879602951309828153559912465151687965009228677175089035669645464587478095760555822102776006689882766765466998684788559479820821583588138362684116724659994643401501356213535220123056321639212258311428532602920459815759630388534185122151406228607939478042323489852256172936801939060971159842785833940124814382060897751799426072245385884196343697746658296262872162746328233422707233405035549531527203532049458785684209202844702170016340421250838034507161395519037705719112261814425821952312542808454702430770075984681866905418981115622652956294351881038093277390570894579157051709907696798786275881179453876213134579968558838385289736350589265291463004236632492627394616527972752187861281989662302769741891708788883887780525339034834642071228651174046017581773246527702827110568558484674946737461590780950613088544974416064739887302641954822892140843491123538853634315109441119917414805474614109044472821969840763841287189160296360030723657452001841780002172098363571784633402513911893598207248450063288378511501674461062720057582335280948210762917851109574447562679873206381254246929294544095320085799689084144989762922134543143338391383153291331247398302934312086826186058891335175614851945505663522203090653998636421190690427106203865949489633544849992672864361791200385107803065019656010664466772531779647162919507784115899779891367594866492391124972155485616525573317075564896056977846500460729054460430539086505029824524023346963997738900111718447811605856342015272854465802306464279896669262468196167787549688764930711994593878523722411637632954484888599144263493306880007501815738403248883747976482231131873805926313426509445868786007078429672714832628958412782123751085454922249272516361739157473886125047010498967790577642661774281550253614178087061958347087545205791998133030384615653409830325512948032024390565601764317012450342605167116824085382067015315464650549177198965711975871817722466876453538081662131230343444218412288555476310288353727834956015334473377361655489193788984816918574252530958459331030949934085315045932193995390538178372901259662962300310952564558989933678787611428612770461434146951175725413041391694201625182751043307089438572727469317603765212457281287753410290478097440347742344473578773161268765012990788317155135863889320267315483056650003083859866314325112725304267365131649790811768526507224298010729690739127642200140938214010428989815378273026096307765829983206584971442886766108970611689751119328993132730100021801228490389616107395337536623977083098910283873971773414628261320956525479994803139617103388408880191706394056590957972278306519002464954375991317111989502074046952631398632786171362006404483674025035714421123526191224747594167191586386767289589590593681019840804832022312072470715877280461947981265851433417870247793316082340454455947254678058166579339888722580058333093708299534199879721899986969553023403199241397857060492907824404883507679143427398746408034360730383032339917374285302049147335894043870160128930258675050959036876377949249647386530290325451479111742402708287115874965882618181205250421848511768232664613157168872495846744051753075898713364675372458661986504044536916380852831030593867288734499049736884533417166364297787817926265595232760532317985915227307972542800368006539418752482038650212472131661587812872639237075925057106404465616089890338987985471105616597076893133072874516382127407812002235313944001410783422565467144144022529235871460366453325232982600775147038895206634967402768437967010994052208163967080282382463660420845791445761945266310581619334288659477739617756403168261043548486719207517199279722124667054770227141219908540997800275281708418878453271904702188551552450122269375274445089810167224086165930578631274472584647149647162082053986649708899467457580755725192802925659541926870554410872689402913265012214070669921320890109820496248738159829324043208771896623952840805469578582478768104705455462050412982416088957031493028792842872827539534276508794644518053216094814198928467564019593231806234646949357219859345055162483506639855322102600381489390710940525814618091937861843754195391010309381395025413788768588211549937302791798077705536370856182339122759689328941627675688875883130618787711939646338295220160918873647971469782358859599886245153578594159279878908440887772643889345938986141258233197591683957791662076792869261332134648432826189235500025522319394065081462507012707594255748219000231186167445368286591651988137304138873058565159197793831033489469903836461714167459474431593398814836719454291773227644596838830965480487061230404621802704063676216716638843567991728652636254833331654025655356234601752524148015090561773444540449218040833487850302188372412758415905262815056709589768281608349129585898839394979909098291611700878888121002386199152409285278564092082751244851963404247185084150999276376765745831643487613571183990378686962632738090061795013664267198889366788269948206416797585551524678820247075347298263234873458094344491847415002558705056844047959584260335969447296010870311950869698484982557164021590755069992064459779861654469921708755758811823011649479782124591510702970257632744482165898530837341951206318283172621428039248064892935827209691670929493546779378306028868804706499309705195710819335029331399045516331162964342206235797891912859273299439863439506571421878313164471191162523994466315241425735607363838834141057152850316624318859448529897962453073515552588412043503675512364597472604980638208838168770956025816659924943632605499500708246167800624662712896442062395383160268670132242598422752374406497783529250811420571661783745592915120605444344531566319606764631746590581027730228093785084264439416432148685715417437208934587545705250666960332679845738483670702655090097206976423225676240301729720310777493043432798517453572863779178675261923688456901744808843205155681551479591011751520830684758942324009720740506300351782721292809613612893017974299549220210407851465400755274363321069847607435671900099436580530285020477327406423062441503233415797852344087717255659014952422435275624118003034372647675200779448329526741277633238690878255463480979151504028156987465388838245094108227868988748771076034449214149335212750242736690155313064961768699923663284204019807757890374221649034880229565273492392343211431572531898406002695513647179687586256158981696794700395236878749923713459593933331894337126510407696949928661525508245896939817876044475936824585163660753779763968536615848402047577221423546866295877435233396898182625972620363884886581730086695047801726777159828396723324543117945631718137923326380422208275974773216011076847701600333855981138141989948498005611146814792678150503941869603293309095054703453431494917720682039073825731740589430430291051460083806466768703619091500441262267682473046791430446461804887129192503753809805277340878924967726197885619262521614326408762259266718227429805299611773874049910686836500228497123427058021669741849319768322950746467580897802021147246082496069460167099760342930208309710269290255852909582380754489376908574280838419225060634858652846817151669054255914488675445426590616311922959248452252655102823673116130474299910465038103794877620898868861775642245812105982981662610344189749022012957398097021716869006572815079292579488725684802495163294434700042572617220494746228458189539072886604691290647187995781622194931648467268085352922045952724626508702288986689899432542540970674268646318474439872211529544402044836837041653229973779689822567883868026356581185887135312081667488621319708986093662541545050332240910215253192501191315214834733222615726239060349681930886689298157758483713493432761154260229702394074803134548615088464630682571375392520581649807566677325041648095862705734179753829511463451784763122113422495680289202921115012510311575965397311308274693768987631705772676084480640552767312912401622892864422173275229083948195966066951864741850798206210902515245526021876294048554111670811030724636541839199666200252596282538266038076281887742103428765316781150871697371516838189288537182035514166428279763806192792807531020875179507199159378300282869952145904574174928218213194077700738144628786109083485848807858166474976874238115301834858909822478756284321416027076079624917144361178633738842686373844921021100336282484305359950169061389775310482254628666498788800053069523560670825233944851371813822419917190160083432400098598334088175690984162015972340848174423338660168483158162513046144067065522691873892115426718613156064650033149691695219596229610651893434648495867966111932496150573451032289767716110294434048935501771626666006669385187879870849465040961856855728656862725984899457129299512856530150432472968978095893409745118267041648911941812959972007356752431539543941083423194972958405487279180235799477179989387582675498185510224401721583766180961536638137593869365883334934202718341603579497717056063193997733636752675936951872619527771655265534285462487683257502004230066176030923685340520391762498083636995733189856357325395784343906354261241311227338536176174072622830319285759190742809892379409505456012656751437403404009823979644647345376041811653283701310505980306062749164633431019991509944214019413800355047468304715711039500657173398912873843741041103362729222084769736673977729766145896873098892880605736734906503221336067247248612166341151316952449841603686836290816260362047873079218770236920166134235346236143661917667706027846953149933663492729641710001936090778702307702518482039815996053216150280920949176437330904134343611518847724312341166431072009398318119059707916331557984518202120347696718150605866875914089000971979931090955589254307897435497888645356441371101430281825354459224340674417282447744286182771518996976098985925718920439264935210992222716666716283150730665561733833977724715552970713979545238936051264499671659159438690568589578194001278432859291052045670520336710828636234196590461937210508077732243083371178941726833608104879622123226882208241049068109441834005113941016117262336555172638009726882575747389258156687660589745599112567156127455553615009197719697681922289545540636240990139722017726961427768555690875917938161720285066163672125341608455599272760530339582554034916409670358362171618904890463748666248155259843118889706509847821818905003100509511757443474583334373362877245905451375680645889911440255264072150763310220875766905028058340017438070052312469595601588850980575281553369855599793121949034510304704706428176753359999931095432277698536344597767871246107708375648954958122209653247771314429115896467288071057188345458842939967329236997566150296060150046469212617669330445027049476406296206411181423990874083258271089740469751996589479369763994241434236588740686721962956950675981321716977009357193779891208887244853951444335842078921357244305587690084350525072995719054916838692222509986410687488166496952832909299390176561234464941739592547858210924890503001093205377386195004379517883034771268176529047689693775338890027022915029230016539084732812268420955956028582122177235980335925037055059092845921261758529672683465867319671920479741385491034733145069589404674868313524794962789014413136462352360918649621806898009550315613916938746123153906870062243763202383222088365360438530620245587257163497715848022459160453305812202022351785848030437475617947593919082396952409627709088231381493318231373197329293839321702429597984695228878005059378462820289071514694529696548235922698213440796181320890954280560468564414903200601934664983639764089769021652775432500658980583092104967114466180809645789712743773499198538375559792454154643124924928685621446437070007279849345507883371361043216220895527194375362099745083149363069061233324763894424626596343976382724658914390258203833110259908704346370774247608410527821774125967684375837511922876345696407726865462154927481758154901990112986761341873835098219211809287405738146357575446013284410021221653615197992761845942213780504527929654214696339418687920751037400165502190318512904585125748885151220844925546939255460163714751277221216529732967004330679854332383508867140070615248859100183540941229047563906013779844701187566889482527037804855742142343232233633000610200484887440248034792987811444528453186858363474329706117984199495252400494712274946862040229832676702204681320469378999621682251333847984779805255104331876337914913319202953955140505003229438149317427662992388049817742308914670703432492372040705277276895893792074006759081676860392447630950588190477382708100376624364918875986108439120320591088216139204721564062028168726562531995530145435371149689847745140059285502959943460218508813986926992584993572229657915475489809479924694010221235414073662511366166276074130379731128123869909348714861447483450669162646022407084009556252744396980909335714634761890020968135565442483510800459570022198839199687587464614839664586401448197776352381554061633791419390625026495434433733304700818461905734252528968354742092621457983141567561156648411330234214035639435524914640918082897687004624668369748068677340533157467261406384417131676388802307247687858534128488278853054322584407115212021153497947110793163283436301397471072386209581891287117302076185676299352806184355032291535314648875503648651021502970596938035783186610130724013015943597482390129153123940028838059933890690569869938346124011969802263075884794072270443922390140242323120331703916064440575934835565860406107901174895001914416568750508033499737982867894518546251462244318913496407739152045522592503770859706913600621208869624761954802466027803247705578772043062591206207805796470427564808054673232383150692698995399504300072686182435545936665585373082977808427557668320293948899622203497247833999837871361369716316716178006562396155808971013591253457474550948802628519367342811787176879785537858995642544237011803562044024370509783276879218566154310969290417485564652206852424462899725563708196612810804599825145748334074675938013386057662372104432463692349796592286691304257676410954265233974292712855913206554110326803780196291401206690090808888778832484211148171082789849130648285852028990055484568140736796100159336005888944689794570106166811391343400791592143152518351854638228806190036333350529636331082728532039322207307977740068591379706449479087865740191825535199913119176828395498286329352543790006117304427406637164239120427343245748774755515193215885561253720329212281648799699160411977369362956746409622921531193237059914021402874552531777179234651448012270146756704451685399557953703195547286855047997060722905481606815148524464407187104364947433981365233987727699547770935242370802995578544404192241330386445580861565663417092312425112368065808783457362873609913556247596020144739397256908883159642649289875272524908976093835391046508840550686884293059469993039626158060342117098117347246992771524933514620698190041902787872120294309895298047674156493165361849062735217617157747734640593812317183496745963231578771102748635079191050474824770310485301969396754756670312283867273225980294497522772214518528872913804975144125816606377232996601609856081716142113801768801006243297172151886439921205817764752235376032311207389868505502592070570836957867277522727784337109155665698452540328113417453192762754888255614635922783252946596890993336490535832945429943965810156335240511765903014673888184526493447089736323966845509507502414071854262694447540479503889470782525624564000628434171910601578325321361778458870843916053860193879043299532064441341442463105765140136042624305075298468826611386405203565373495444429117094774686732032916102559406113743489696722987697913918588377028373997632132770786873472053339426309535260809041642302224458707798127998901162207965401257719426069430823049644402753752550028859531828505071369047401576829710763490029611015303908084071706320594312608532219545969224279737555362185523568281141303269282823140454410640087927835159468098355036927699276354325588188228366947360307955027347736979332510469188401194646841006775474620063672451592627513674032712195407359838579996335911524135718935813214594902476801072354680384461553751381008704954902483756162160123950057161511292365940204229130395943695497529621717594539726545760030938413941171065078628965043152258716223850693156513495060253596565741072495868677335291546326394641162686478404736662915451365709636510671130623832460560169663124296161929915007115631853110191822797894342965647268852994427768002906922785729748766550493423243355892387482520983155838581826371929245461817072506996710682665286358341003594230143345961984443724876019382094784963853540762979127790806650526191931502267408691220184582378952475157380776179213704246066280722102173930520324593880354778286463759022540076619295812955492137951030215304123499764978559006131937932646808949998863734312136445329540815157957828092017905892321481587194515097542523094865620769759096499534260135607413299122656281585645618570219908261653393408019601572896858376486998312979139108549896191280282596753828544355152616339485026363428226661736918937152111051946884637686032314957159570163460350253023549742729778880149861240910435032140664788565375825353407618151264716851207831567701774083604276278960378008332022412540185871224937053206774508122499632442105159977562408098330852642589441427836210381511780263203239694275808724926947974809633223683350053513755855787024375349298026099028201163496676120305436482229356545432906572645433732023501135589967302372548929583252287550915516583333388864484015602959307589676473693323053315381437485381500799771399280275711366239585800103090446977018436381347834483811908157724582915205036324393950272209936285630877765116555229458061670641407065062241352727198730216115853011771106038453387013186232970281784606128972702065050824121488101853491912928711320578087700200072283823014770670580101356461687729238773591292441934086780404884867004703776990103399068699551467065011467544219128212830234196958872216349560924718255158149528524835189293983384939644790773330708182111108052783528332060012814330986841334386204677317806597890916712988305873550323639009292215483487771036320172170909377174394468073563381686385605410569358959521609493322656975888002534555716934433098149134448968940107252756535526911368009089808815018951685961885826336705926409033133273998497975292672176562352333646719420496992744562516804155726815143825964862086118904510736598669569258796368887367551732558152809820577758499468191998985542621293936770554985869324096577494903388091057479116854193346812136677309942896993523505644311419537043083847228217757053954269273612523906716003571229029229843537888656637620587800691963763321351867292010697045222954308258156691292417473623648239420605998236331684432373687477737238595526131023210849308740059483688156241596850338739926633862628782499629947665633714913032844036763558502727615184609271415908121439124055927547924421839663326521669656943534172219724968606887492410655947917339875940968819948437276733471511807720683562054645293729219666545890041904765592330442617242149974007614189332710723785802292954099679839412009154359609109389085781519481835483221610649349670832790583965299324074935054655991413279356369685832385851360005844943094216647364533819958445889148464879821643293918546675330550317897399905551664669454031777179759566683152488311324619773319856110854197466460625684439432286555588667962095766412847649958182952905840731579235723432002457204531623227357377811622092794415985363716719736683773571269038028376065161877240882196480874000082881576954349692312973633401287606985248986200402865918832934032381845775720193817044884618498567643864209607825469361980940057369226117136627554383573241106765370450122391289230541328072980024246088733403774456280887899509163654043549083871019935714469436641867239364425194380570709653126902969950651190923549899499618059507141128544226084087530302270399855388365113508545933908173176664455134465234088996933535303611715993664138725676174425425491114978062184457255516453025716181995651846682989212384360434020630791821417201433590421644503487278653206131515225977648359484844665457358432129662341257128056723327361378243167596298142314598103081982734313277841158706285329270332177659195152341359245988601797030206862641261668024358182469576679613344403494276914690598275060800370467649987901872888532295941350259410737140145344272920130298181579974669688949119017419241723333046859350649567945379656256607545361064805692454130300794132444672849698116841953439554291509218301479290583391222595990161014515680632326186539744813892604047599884970799544843234979819918917864958768101782820790389005332821020366404676800550395970997811196890251141081364031157071320913190460668933592314806772041926104423277655605035300759919125867338735840076087885337834211695996117271155709832393018083168936470133032969583429562492647462455081379570910684341125152250166865811743471410824397191315292479753056432929641152850444717350987797587784427129161372407121270313194683541350606890631544670836114843885660409737691830339918752329108920666713482492624474220871848441615554525255990144234121401546156875316126388775153330117319962501599576980240793340311426441694314865871710219178818453984144577081173056330716000831056207674536338527144381399991915887862757939156060133364954337954089537796120971684404524124190151183760358942555746439812595233832430383447823416323179778584013135061316543757524032406634216215503854270106529564949049895381402317054845158836167614900371696438018446235608937956598516104596929722990181046269042074823504925568339518082290944066252398916644671795997337864386041363234634622713335410213086359803069551168084510552830014052379015995323130059361861337820098019786590548081002303009966751314407663629464063118006946103274712886376390369728039597818404116789630836471457792294226150151738844650723590680276941736000420049367338368703157169464617640689648352653997703381239400771768514968076941268423605897136654124292609494971453173241732418695681393781454506082773137055245242674236377855624788686512244105644511534733930368606871143514488945004723543920490153061768367253918590513001571444003344270048138945154798677836011784451835728089574575024239758429283958621877880591728225030020179855822920332000234225336732462119822193164834973136953641631284676444318588192428615900909714137508112478405745638204509919403817258343285176912460151241751067249514375012185590301210696158192220991031739728097079645972186518178697680448419377678025877009165667796373801491651946222426515248603629845204437494081457848277520615466593821163842418358079056577046275235586483409359925555337488263034275975461486588149018226584902226132221548376880521771310471346148464168978276984146486518058411678679308102535216004179234419618803459911360220451628797859252329558239658155439900598733091272300432983118907506318729112616320265807793282053204953306466773577058302562218101324017707930334590383770640789185359783305256238861825453399024226667289048640539958791483980289232810360896338847339231675016778853802687488750044595014157077093574339391216974601875543617320244868097203456026772984232088970473274070164236616939198495879311428903596785250994156896730409503583638364367755853877822359787839017669627754621757909552866698224820241480466516970720943634230839085355249090376197209482744908681690428517972444975089843684522250921140541833732888594159358692859791872617474508741200210268910032873824588211551861141000403192055849995141119423002520961975140613249164589831277300650861539588444034108847689259830420745132516316066483508740740557213595483567267783939849371741424063532616045592334141657682276233756340801423859782967168050461133913807180401985297145699422434145463183655904795933402647476988148629194189888483457168287440245787886633212085651276613697548735313845021747945548444013452114521597157484953438795940792355383651618015570669335075327207351256370182296919684550542416186339295541666501726337645036616055807216242596637500045455316693097106244456390564282452562004608520574720073039808136998466519769021302255011946043482776886194865746857394817184984499053429380164287160862434802310541706877091332481644528740320242780298332408027977523006296437817787767720874172000853739794228492734026053315602250892624575165717198873445098358154994868027235908444663461838421030046972897909793111298144598268129328088067089289359753307525734274792230544669907620867171152803959713524883045261279680776215814640244139865207107416365422472537120177152956223123409225852323385711618259761951468015151257330635610255258625044999430655868205435823526916322208306311673088944406426055305450173792156258079507077837673695787100817833977891618498023158512180399976037776602356928993609728735405990568469824539685221028433958578100708774693044524507661833078273534309143404302959740932738869332217311186869062491847525715768929508577328138707570169979942040049988921107819253285080560554828051330115242318086417433635500094022683265858227242344680923959516493925062262654110348075093321889138789943564885485888453672547112911586533596977542441218569119406585351996017659775932025154926776522306171637089377095016535309594897317584142622237233810261337864718505776646121038536361251664774452426883661323497487065148894684110070870653263208886381088061072147861905925458925380822981597483677874801819484292794962343569003012445229748731344678016595717198241481240732655348030419546842648972480758398883722439796006507156818499659196238607540121345800918480600855522137858259118293397493364156286613847922983919387996367694401008931957932267299889921257178519683848939022085648785172240940158458764211686042649714940146181722466054338678256054713914574653225554869124935071958843382085610145908871341425262011787688084510948867897085547997529204420025238494219908463675555633252883343516285602544777524058895690360184067167732277721129019489693985843553095100406240219673159912312517410677934769436377190286549143642684479177486708206655381588386219037728578458382486798164304963093425623588435344040009054809604386218280187969351461829649590584860752969923933291454211772161685056244070437404236843876921148498163346735805410534361600958040597259113356717240172157665211760043264031845030831471507574865072891603323452462868815343416901673853842387669229910857496909527245252987656483955547370817972062223670563194266990290959290910973661348133664644047748872095614217154732622521559747614380642121686153758382492329711213334881192047711224239112610605963430842913617111052070468227490962095630238300868382922289734913924807658996966490628992624388009238056978723815428534619882930920830637225140374896778175997001437604253876535740679458316968413465475620091483859125009061097004008447509398382791505792143166088949819097164782716484271449151362065228206850257832344639551770820215092451683228171576490540803614986892163417952520445582612654547984564152715612224158617828570116200818711826740834180416535719729518480824426098077578672885831079463630678882611683942148780492103454566145018222686972132675863488798012803438973469904444449848927039077661800571692036317393026327424191050189822403799302194339794047589493573474484471734720596536892000884552207154183562975215516517645671605698304392827115447930707050792100852727776976729903883898115920004929412325914558481449702727277728938179022187573691071719220917206760001977763107497080220356922242334637241374718573241100632618071838337640459661922466619108649558797155887846125779730060243263268131373077051617016576994714778437651018802122421289626289397774310938276096077940958408176205603217346778537891624119326813892160477488446843523885040372194151090689591862095644154867358563722672054220183904919842323868168605003450649838767454298822775555522645042376429379177055251052804825068171611050426367258030082739998714436589220374667774003132318894595975854501395117807370894002812732932624881490541926227690075082573458368391581841939209951582716380667968412572831797464838039119271026428595896307361444769354976854429693411232741536839147194097155428047505729597032698138290549309953960047038937465969262885694390364274746042635849945976044720657887786487604366863685514529238700887205234933561943814061077062121364215014587670958481892121524371830787413673347643211524791221841467578562418074412351484494549102472167315162440980141715182603826597201103438655558283353798842649045517481764677092920772559075794336634240439222635446687441231047962026451715795870501272683741313775787176008558233741901613982453305862242640347371534478225213848333125015535634035357358379420285103912030255570640137198743882056823002738848758472141935495450662821419617716775428514685981695770519888183797313758154728164872126312061551414583858415583369004954302755625437876030881051308543515842071407146387746611922363791806907787181526162973212454708341517919196751972476341311818669951539435782422432917239254297533116902450335616767961167160648718778606373135811479816040958936753660729298716832613223847312128828581553278060509136544453307042649185047964299354990257687253123042617590321845631648091226509837117893971070649010628577727693593508336373103140924357059403653785283984591990807335356094670037927264898038615739262215114331418816265292180968551096729943716890202199855976793884904832498847956862818343656403053815818538776344932365748613113103059167250603712781524395965420437392138145831704821032656588616777614566558988289861739178477510757823181729113878196241839870321654952405462238756402309541339172462730080559973905902172087092695339875415532560025153297337092483621135367953484039800444558935440307699945318535691995003100563924880579176010308129188281006316518705165885766491291410088494878985225368257816479126911150805370126639188945090591875349120242046849269546056607566164680758973142540651028223698181322495055661555874383764784256035307957593235268458723245191990236544689195011548964450170206312884807300351359195163570767414635767651356530653463768826171814893732152250104949950760635953127557414177372763916680724304136662614331231603876710269856322327732649328834892256478819353000892582210897661879238782828442855472582808955163230137712957863312234552694190835140083845833715792103796628815119959143864579963489997959373884871213486816098535400556326420245184521588105526151469294754974857404425062654571027857090882440314697108900659203348492059123957810268762804410168824410337168557117349564960989994434978737031318418941987900410388224772763862311855412684266328457060163609421295362949754675092322553408650624040118082212217460228311497360510975119229408748281587639834401959780747840815339265153168461463099815518291492344273893379579579256420844980339657293910285332047194759452788059917177657559880930228750750369636682493506917500119146214303622612620878900570397051161043980377886965998127262880230054703008339987453580833683337385666413375369779091663622962038662004479984421270846700433854578701872128728292841945098436989935619518944219224764020927226867890753495116932192216769989937802388294794550130185571833733857516105470352957532728269040979002927036517682471277160878773617489649323081566715346664311471194915853185772766964930615177550721921356149311342253375443556409164582365445160550745213621695230386218839701008401227116424223256821179702293774643667987112421786990152292520404365767769860506865809799532821503830882815316341950723490088934018735041541953548088749877390949470616455184613497066714584096049141014558473216481930725310816371608640092591784689812247890169635474437973415476322266242647578834359471593143031472167585358828699210230409464122393397753231985851703369385286145911248716990201118117102619405910123715778215742648295671030274836287085719310614109728029217229093665302983799885527832841451201732991311601471885102933939266430833806964419311301287923190113156037858043663325770562268528585207057780843106910551949054562502121632868600781058124307157506021791680227481674622346662634248712746941832118180385622083379203701960191627080969153510087277691650853451479280836251338472883684187500588103965753372282901985824994669899144795505275766503641910890157184090666212431027376194420296358772267375614892799427100669340543987946776598095291169491504960929695869030036021326420281274009700595203451246200575814800868563589831519334646472222850274135264562670674384906510959077673344630788985548638115767025326445878698210364602967058190303329570497788902048082327288673731855491637746169187315609484639330038562035248108396035045015062737960148062653272165028507507258896789426699066319456946938254323102011829877622370846576449356284126762765374738625353220451012554900974152900802776779447204527628085644000215027440259362991821256804206980273632459582059399466407448303656574707809472474634087410144093982872240791521245036936915104034435602093090274132707715881750767217357130265549159594644690655344307508435301021848625025758408513009022771727549902999785235222812297917244406187025562661120681363499194734810288026609113140873213733763975510198279568725409860727334609870544954506158907332411158243411163902977893496219769213936366300477179552928875449511111657945492592873132150132936580134803223465613577765269501156297035011321087313895824350179103356842331017711651891901970579600706791634667010370033309825036022760685329591997029777691501844675702489135025006787623320542652435566424874210789326356653174063119395357554461992593956728455706150442581014771564785627481433852006110362007721717348489499249060883642764837745053978607664946711468413079347855424460749004695726376851044096404087956251737007692895234617595633775819218186008980587021559711571888868407016436896590917728909643831719560328225997872343268138905477817630508285141138299479688117157507314232509086862839291594057479331728846063214054482219678163438173490134779469718271071958509794233756178996133969626219344808970172583453139356607701075553070472439223431360620775987850074139413167663642189503629045288432193233022639430861335858420924539972751359549764514264187107128606496891162065422336039605296843133404572449236329761860386686658823366753269327839781813108015002491734822542437529965006418778942959985162473534535654840973435216280135627289762427454868558227488067021603436997246267926995150657986186946799114061286409282066618265934414290705135422704826709219489266964115002155188459278037847308388731322119157348425937751974861130017400794964919924929381723290141821237570352545539878593241724583864761081201800748710407153203233604279378634891560219970325633359448704123212105329358485808171862742789979881542868260895491486935875110995313276222256487142882235879674333125840496003073092424847912032836330101584045513938458747868465166261270502844200938499116741546442276412456206446560301246765235458272103190542236604678468415522336943547099482571607018694141929029593011233546229265149842801528991766506953918953725806577275350030981876379319492185379576939500495194177138357106978453651893093316455076735395345440190486971065003953461590347438947175972020682833077279502879371888349370301545448774477559362086560586496062061229919320798544391184017630456790473129398371638473944902061795379503547378335480005500717571304561769674787305267637197048199352383154327440343386010951230379303986351400087045416251841821636545515913190266419194508625315625315753842136566900741503234066417228499905479593354547326703860581386188445820897204126404891983530810805769611392945631400051880365370557416373048309264763721771811216755920831926372177488985993348877004824834751905054858429969249296940247138468058984400335426544639488671883236672139547902785119374430475577332959652495145390820615036465991291069426620415468725547761722207406077808389003308407466769812860627914268382622477735049951684270770969746803081536666320890641752335348201651162695650732269224030678775959807133560662238273094827265943791285949727594359379368602261268928645258684799488671379062526471525887479847942748753060585148273040969781080958911984583648801226893703274305849706542329234016403706336976524344557705332973442736952461881767914296555734283685987279690786905144582601282978114596317142261342604023276292641825467115276134208693771709956647323307778806557945429448936182474823875579023957419728528346014017625149617770128353213513258899674613309033943820859440936952294894671441767112134817191312118996111977449576198888748436654774486642866218754413975146252891374603338752412747266644217177924327544779940995145149079960497044263393788879968549045852648417979884749500452722685658409073371713233239973355271241955878979312623549004682806998124962975403899853711197177153299009211726152794921262973762595809737081763004044598446474525472168682702160051532061907423769332620142480710029795575424628156936956786593795140958877463555767793889663257414646702077214148224575821789810921880804063801458753864534287724482668207609799880325756954467410039420399265086682100525320865091781115037048714400703096308581785458032532112709959975971398280101435430381988115040794856548635103113533869999761640425243219542757133688482189981748748738101312246616982703172159558370626116522023815391546630277560621051860481215055268261738552077173946668738480595461201277281150228201603493687018983511896366278557125866575444551873921681107337072409165262191331690179844993093710849258272244147227326768271132074661899200349766111589204420560169930702978587409239431339401192128250871994486577062767133731917867302005863692610048186560676367343361938942574029553585488232515887458025835787200060866506419662053269283603434469934901514970723418604105800540653147543568183182021676487820886017023296690954111377739919303210102003523772982934797067364408404414328584540800466764240574118574615729046172309881275679495859934744221280919745066067094043158293261252374800355153033358054069885993254257027881972162418287431804204469534730814817201131762412120565089681520182779424417420693569508912553400941252084194774133475036882660276329693836923145176919720423171332780121736937159866971970549304843051137730556660283893950300373416966400659355091299182874061085745818775394473917598456325846967512260463198047713909900003168997859116280034389402297648661243565177796352323306525168338296326099568926773734638903030043084306633282469828735675851331938626396937475515765908514830104608011813683081059497905469029897754555285746265328923540200264282563910795035410356029036602271600595788839196577097300972277126914819289288878740291402824411525599397137169600686344967877673236597039386199345437523244828354107301697813405873209294149662260858588919309698991897580517158310089931915864477718386600131485869219221559983165355359974043078591731826763163488919825794495420330873158733617550370439214821738240279648261694182167630685858154400618912554101112660565935187380673247449703994183683676379374186733139421563502198525480646728182414141191442677240471440082749301310955145159211603662863835568779352145954866637120044721926734366327623182521214426321387634163126926685182491819615088113694061690120565440297130681008219149278722037158049285005449616673865790677165601280705071950996602947923408407046751739937038709531109819296043615224312591808961042585789901223254483890238114205288519287700904793248466908037639589365521674304226151726656261960737965460066932972838036757653757043026833260702247028407696757503283902812442377286164341076595051318289625178070473638914087944873457864071315558497626268491729226284007768430420200642160400845156742046131174532900436171706300170795390109649983498988467259489643213396460355459904643821458300755189126138214295981736319415146569334693888505818637358733357597438499991330749310239203750018651388751913734979573305124680559937720867882598529740592187482291484459023719845513708787268058280755754559955798550054138583035563403737709185440050973577782643456659586738065920150525065334288850944713113671124889985753787636980520710079106792252711728825066898475857319381420821147251941188744733738448407575307239501957092430270715130197070305270775430380777702114182910045872068781511729903338214228354622595385621061743635978434444256035471679607118541940490050976109121438976177725040079266699937520647891911113641921171638659643622466702389315737942327851497807334082326065615815401413992024316578389253578889583912609693940434790201599431716593116772695630341913822660959865904217669090788801178364157184902840319848208414289940521308618381682451282847708321207393037247842513683194449698683724313373248276555539332623120872311090315188596749263483991815810341289801814110734325511823359268656921204797311146133322608863231310229510836510215255993010362100329866032355729988109173096224573441555266187944724875323023835440767893401972675087622307086810325794878496348260572268044399831918998773733529085439501090643970214278097940437920313891692386242559424094247906058252320068418939200412129017718490780299403052226302320428276588192506934923743080316777718469315207493253874774258857331656222867851872290203028392265791628040241828262723300723704086546812048806680115987281351960788422372728526298883005709906987091126343619543948549016049172299768254353908431235248456089539787857228844121393429186566757224063171661883671268681160883609550199058933270289745557952251043587911982083349994766207412053912254060460672739211150965581374369248245501988582282674285453914719686021424385675190477321587805459256303988417522256038292706294895078984386619981815713788357284604226747403639837752133371613289299812345341569328254123441304038173390888596354985512542931539342175033032284812443176300065689188031426216262300745835641661333747901768812308234362910774526886289465797202833343672396501405491141824967073585637405116666102579842561233278449629805393025350067124122525319048390348524202063252211961279245958945148290890088355151766060789172836176746183736857467936650739153667924816330392092293467860155403929430444846511176178595042327512839372046973859732142600061697945278254707506517886028740470700473912463057212136335504912889615517813012525902173038967710290252743138520674439781956428793418890346169120080311646981889642347192438919464234423567428634534476557882826092091078236464646811267107723223569887247187127436204874649151896241699407878424002106261067962396192320247434768294990162975877483337446645396204451342572645184506902168176864486547040605138034344492733596852276481713261643465197532387848681724504074091620957762294904464775591180725977457054379394627483812001638761572572726683873259854893738383792996377292056083802017397487131441273860753036055555847489362958205069884319877882460618028703328140812588963461777978367050655262176508145751684509192327733163625395861665422589371822013488011698808978955187090740834595422105700413530496719024016703227873075143160422452762617071302433149370485619725947906192735108361654619589955664139631464336095069286128960487287156984243600255845858671554016273091025103797196252693664710340048569821943576482855200174591158052589146742609548056989686469595032761152087495959494905668743942710460757152793458602474093291614920746868780412563906307586371767126122528953416014504680239585689884119867893689632498718456259605679361888647125732262260728745802873451110367345144781607476861287551830433920949014337302754379650117348423306811994645411450112492219967965695810375331462804456801444548086062237161649813138952147769472523833248256972371175635249569414135875295270407930521325637459031584854945612670361896560644754191513905708697992617729249846333067143443825594305232512779945102837902203706030383599012097393698894508754336463614536289697576085672844651842726510773445483168038715947386813708620858543254483199122822897873666253365337384996922388751951468371525918571280212233068778658692716470464866019782513100418384596293444862974365010205254307505060402434479334046740141979092941128311230488302416623634077876652882202076231148675220088476817458914735060355061043536211377784824892814505924362863346282425128982051158984868549274839267714975686754665178322823653936128836975881649803118748283752305173746582668306565707475751972435137458543200820306349890637297169174347516904987782015466703769563559102510915536086087374865700568224715236776488911526545433145106377281906912676768509519599478652689844300176715385347202273792560485634252249172453965612663722985729890765501791508599195061195346859065083211131958275130033708328425431407283682518277334427626955670593994014651031401729951202248114523963680829101601113251538202254621079823521919257772244589707496109773393357822126503213031237461955302175920660689008398805747666729394769762212402402197894164102278872550540997431154512843670748077691730697896589005632249508597314642576376216893856273472451757342554076062618155044538506031495227341725604512049669093222372651620572105343531109868598843169899689438231077583306532072294064745568630880367989539075190699583811808732040303311354211739390426230139308864235995998555945725819337227112800696873237665389239833158521216902327960215872851870107284266861228250352372870951885747629757047716120745206300599870705734282060845097991504391145471088920231091706244675433416866666232665564060541300012637509110736965862903370262481665766438835437751283904409157448050938434003070571622518831856644446526276254278051242851476687610632647211677344717007139534106282169083791772740432461434454594939966188035553540679454101543845562216866760261480113948196802612897704511918091686835939406395532137877305252472660845495003003014930724366490134489869630463094225465186922461167005321683976937444668803482140740592172563502306845136723817500758338343469461188625758381215102033581908261001143617409140381452353983347485865822917855755559605738236162909326805535995903077588995042358112054952755552775678328403135993836989459698055293326860657968811371380130380230312484406159704863337015959078601175187639464314894871649317701643867511319586990187779484789674010265532817655923274080226011492760870547842219619829162083797072486304992556493555853148159561484925518371980168774513299303911878538332819239575651309122767663892831678621327093027328559511130019315746202805258567063355717585476930812669946994769495906551098466559159087485107701393188882621132347229295411403647842184883225426144966230862476293701520927931303233187631586611637576555744043621021101200460466240537097947898394775876521145175233253679932859542898822886274350737151997470178019580763224887255566144825934040077146605477084483752866458202127605945138636346026148718248555927383462373291475404352823815386140521252942979121469556297735516996086093227102950103841633468777898806848673179488187786955906751169318379115300770344391807636907612786695798350788106607452574034097791431500076903712051777207907350557228997883210634438475222304874362476179673504024382927889500934138429419370092269587275028732227218287078224670402266694694359506691508435811125858487044474834090790269998013744265176782164892732866933775629168137444519131869407498133144680102771247308561966433616865270874915326104553276092122611990007866414397719444655292451599458843918590744671574721283629338911279904998685726384846501326297988663062144909835417206860277782590830932224634612430450823544587466261800910051435514454018066065843877071757309121976237492674924001798759699532323907582870905901239676675839222672948258236537020340547945705310705092231991278893183904093728855273045234610461815661178515305113056064057127608161625007419322767211579672390943682139123893144679865937457750214240884441740630622249547919704472668906515352240037826912695462644060042913200812066636179419920837514228040331622102159046177102055297339159491841981246588470342449378213568832545887784497215296115861221011812592839819808465074807754906423510288601720106238917464504764615969857359178928194655504507234206025017037072172736062810850042377537922000871174495037201828064511035367148419663611255933244099476308671061007637710349994537830712058617280813588845463966804687014418239625339152080681369243338736481771211888499186570381189079927935125062211989197189195052125853942554264206262447637845759910492749022634608341399300656147641639495521516295331326358456803297239771395352836259399074287960996909446097573444192593837518180529876765972225123743450549603599557887288857436145758598648274111938030629604219526396340163326195306621225235308785965226735045676092107257928584925810581925210698378321790518264452251490167380022820966093105215076185734902252893492807158481613064937249311119130519448626727517413524622613108413080430731001367354381071571344233694279831871947763270925444086447630004835891141312675171179019445046164451390775228288873853142155441165722722270851595689342417483102125493357502097712872890851081005837072285022700313368839043429168479983788503880845887948291250803228906405936087911376665850952486976562889373803244290958910177283057983712336292737149846786036653581856129679809769784714628618701563765736582172926984522939116293049802073237137121207447721790682108066634161292486168118995666791442475339023139592313738187336826050232729803311902704649319601702028021192083701802074070995696982531701565127153526208834677437912104121374028286615606155525364294818068485606827864349304096681684304776098050258656516217880597236660924265701226087527262069944382366782121446881134229417536334518326007222154508816027562376305446157568041386172657185699266682415909327977361295896664031636968068380711369451968327978589138175751607530480082767442172160811607244629807178937348043663089066020649135818740326389578749517561626719575964642562899286262745935730482501976368069346210259680774980465076132016105297969980411056884675578777296740065504637824808570009871953808536269312203345517344754149339429655045855050605902492467072626394968885633801256773504418750347974824985179837916951436429539267709847570438680424960938514854011236802755804264251161497619460044237201918413833813411899715062405157582286337060441207758649433255104123967057194476300636599836148454483014835313021855783386776294656805645209943376146165048030178866820129553920660675674030360518450209513554541491146101962640748802763474345217798828412161081236564283945771636970035703007046360971323349768512421076826752301722011957456780265561792259787932281491900599522827719748418831672371232839618713375653787729075957688099573370666923555990092107176486259838528144508448359256444148350113886249014241200189811239856671594160135872688188808193102971980462337884440191337232160927869444052003071149019531818898950138710569176373628006632255789505987079549373734363105919298918596515589729438812233819601036627415864059399998930699588039078709621712943865653520876407361140043520381559355318606010711750158384577454987144997962940252596204420486762905389329351377410585865921113047342809623638308482767079152372833025003467308660380277151497002115597969754810092459061378692965950503032486517900109735139836723734115810334639734516772363835173232075594221066973513322287329700275193054288330100307885464889899796413105906845568785602031346981781416819759768421488509496354315413956529671217111110820050682239080910454783293715389849324682639530460786047946755151654910682508428591134777133633197236833731584599861708341486453483926502883929232694797714924762028142823728521754317338418156200664170857706147194906149319264844277511529478310142015098599117775142454658703999910334063675372729797875335879866132303520661984520774869261909491149897206375887557616420869284438827645057171737121949865692857025752445597600538405181944265587943961904890439421880124390488877608065500016831693638970367957382799775089553667826395774807468877987450545689206126482106429879011016457676392688846048423486075343992834527247437794856856105131674554646375208955854731053539439971962639090980107317590357042280682082989759714045610956159510589893408237877474856078040278341091151841419852270545651336415112252155091247335304630634676352443934705740643250219138269150754426852505879207072174072468565180959968609683006618242579664617146691566751432996379531014354307468925472758565812170295623740738281070934997328128583703899371739037741214837793594449317381479001249304439689367159168607002468392820215366640640838437360195948703478932247123911585647370099070510481709852080692039742928538831729731931386824567683145565452279677098737494091375469431282919211492248178264892281008205383857889879465857456752589379179290502214074973942626322703703614499270181976275423864277787998967464798843398574240698742717545273556297349958952736113962879406146835949332424855247214001626574258472414826046102662631324557730202364142244533009586892646229362504320449167598109378573627099521501028930587098108863469677105245866252545360983180941512388119494777067940926279275829879589948131470151395501032931036630215831963548327314016034924534530405866992438276447380146974340102410554008461659292231424882978119675652120809728788339628369766943880053695000642352053987544160287043585838670278283584326807408118350984747459763386313885097311652377410214329086063477521533434473100600776420512633924583552174596260003898899433946696178229367768353598051690215379635933323281324775973986634239815061268531895109654541371206958991781504970689977051743176474807568890743457544880539809452644149816086160587246479343486085894811341912999400723058158983912400537449909168392234394159678685490492317455802738038993302063761835445698284487841139370169503465536784581925756617101307949720842129800848989212183987117595161057594381640867215390840867618154722279196906113432503532906703655624482708752358819248819672959061231620808192200281331155115790139911957472945238598920417598313543632648296649338833601278925732707330700061672176040877105589262217257817743102244922978206946515421362177599504284523517399605132532180407893735813001122188565398157421250094002148473872256722190405119166191549334192831603773729194214827329526251628415867906168886571194638837317418662261974104252991894778076702212194270008871851789690473355077013472410774495710809410370908525672873136396970109992910945740400135982759364611922961599936406577845085522202257919235740982419020750751893691327635513486655509239914971630665352645519700300910442372237928932377272564321387617069771896858822311764855920858982642903827753720363554313012595568015582879146709109924512390236501419780944480740601690267786603581582534838037432466102088028401566258533432883445511589990856928104300692833638126877229825183100826543949878030200985999644323607881652961616849838005539381833814168406391320508306908492062324495354629665971566551443887081650886264802034251046938157815017123611984441982409523767173265611146154752423705544802593092782342223477921677808888002921598103122298218690856862820100089665117414223940526516927305547410099877033703520702416307990348203266119540391432877071158994556683331324031743155444267773734649350521518009493945454479683445701656709592204217247405015299921587781883923866306289666090004531702846994677032268736798891524580873954375939478169752494354769492662876200542444364231109066470668334811190342797285762475669054463094180988909924626474222530796286658785998478505403197443965648483804918189405081792810123994177444839867204884229307070866281692433560452447732950022733297408944838060136529034683684348250554266733976364795058856638496374343646328847629211957838014440742979940951054835113839697934373380110825119383656822569249308734085274566735074865108686861170458385141813593156535952335527928600780225846862978420392060671585047126974506733108045284756439833957283301734935059633631992137525470007944074538268166263707631610518858929048248135366526895127444528483087710666465555416526998481459018959290922137535982299849915643115635055994913782730882854389482332035698653843883446647462400651319336503016593212501686097671628451312960417726702084332959782582515166898158719691901751960803202477313902426579007567421300256611877751971558009367695716628592315533791216077566535713377651872784473456626036685438260399705693985367196596223573239898868727628001425520648464866083145620923653574100545744594687304273174208506592044039690091699441217429546317562234909155504806076935623844882457562961916774031004059381374588213860935073447938629658937821344807878345851935858480928079666783699207058142397885937479963300239834617676376968924812767316011962714722915745703759113829081426366828192087636353347381583514850194407837829739065157453990350832742715476459487206823948532600793428634346657840910752663917892903601346891238379993613833786823580516884660086556446667093334881994136861429075660283323690888838666444741524674188314753184780402907002539741481191732522544330658703517517782097950619463305096971210685839414604812490759115985419255841052110515274422274038102367391770993961398002173820365590911179895175848032188990843430076708103859562001324067019615391475327958492156605525913069412001062049088835829238820831140724509885208335575615945001657413600019246093175918414454009667010420471202417103715428818370888829342670297234498935453474666592702557903817629496056902044975800027882290663204294264891252185262940290183663364511718858390916145326532943976457019128916937762282776939421798116938597432363579520501368180151417400732806491713874264957758326182414948426387014854940422478627411338009859350814603778897042389741987120492584019404918340754853662183932892418382074759695648191487080705152175561179971885164803449081591824638209036418734468281466201531153924867222752609337537417500109902222742352731147311197403619897959695232997592302574612562843086955616967854978588322443812019030480269155545286732869751348397550167084926204849325959943935210764744861343899299571789504066110244450847314396149635057801786348345277607818313270150272755715905838357712325967254328302266514144780162388726815032278771684094857695085452111558157081723292231457518915174588784804550895079929664631667898690453402915192986489348793366340682383762777571019435582282216490454098747505031839132235802506669358820999116595026247915254710066310988158373676285321568530155969499407084555213001625830910829624158191099896868038908472485938413929951802998472131307101987509050041075180707553051631448362967902170514151483339088605913615750507069306595288627834817652396187632220795935644875460415512521364811301267810253983513271530778824639557866399855833167660318058994625604434038493517185969891995577778776391209715213344031551476924243541836690598060299279083041289374720319635274767749173793188712511836822528793764660880438148438378860633034890392447809024098708801361420885470126318577502835435670951957174906595273653301571657316613390480568472344486276298226847142209004532834684845983841789264817338836100760214242026621662352163405214216503694163247897681295955720361874680657708924266259476362289643771135469241108499625980531758710374949748280948978169587271164069950885628920095754780745350141268206600052574750398332591525504957798513900865727300757937000929606974110767788700297523568281629754480086903060764625199113160009653459200280345113533085108438671794038495000500186591460666870918752922233396661626789518954223100837913771403091642284924976563446311023778703004066451591899903680417251049461303941688861108331972562971548396601935686203049050447829375771972359931218088080776470547886530859089337799727120590113497608589245171043820874050953691410843768174841076741978733886995538631566496871697633670888627482300494609013059235268739017150298446095912276580634544729904014937089024660334942202823253725351400245915675591495178096966145598808052879009823872721020369921955459897192443121082797018889473331685652170721721537467438361776224077216390858037267664672050102100241161330170223573089106637871628328754334034340764189527110340803801191991839641507325932995039972222967744828838065908548539262139070664575858697696046868982588621794637333151747983993953262054629780514652887361076100405255299208095018360401408225934569353706104332629850069049043686713926010719166470151690668721775766447294255163583149266508269134095995334400625479170277280530133529834164687368145671677472472803873542616049474900069229429996815416513654078819822840564138512976739267614341142698674868149054725405892343596858688841569107352308781100861568532135960396822990349349698096166927547886268745245904172354904856197921830268353106204599243905665071160963246529700495215294758587602171492885411475867730696450903312065496363250309862720057046563617257058316495796512816125301778043798426382245615286132370554396437268554346681825425437301795061077201189060764195730987471737273361644988636740035543200695128937458946368941471360265317323800247186892042376120906747767285118630106366294594845521752638154296073022475383832847077542205215995386469184618809765039067919905821991093231787554226270828404320289947935499378639347060737787350218363686481313228001515022421956114374673814055569015591953453232766380081989953436316036390580825465020766922485079382216850862997436634550906392971361414546567298932673863755228714368629725739141304835010124013479671231371448122166983850757877611062259931926394481941007606378921560855822854006534854246142883466959952217302149895521568007322700819667370592270485006331546042282388963225506261950864854661385111947951231784303383045413039634335809779494996638336402462095275975385815024340689979056412608847781265228863700997690460190743987027439280664634980258851019413042361155367877210950854325797846426638284239445049718811367625479571716492068038521439474385028775851144520656479538839834509503044161055044256756033671349761787548128399931271823040829519491474215101314504168777458115712880752560269128902577279127416339619247205253542542023354019168281743893995899156963755214617360556238616237949208003297546374760839446089615753798760135066908280232296645667613745767687367295525617834786616081493449626179226195339693521482929907011289176420818017051264260262464402465192043692427594010274280004839452178627672586224760384636394821522258285552685664824748256988082342637617606230289451515987483054636077592614982079620600318174662833603018845743948019890199929585167868998637268694377819182521719894864173010624428888724355926113460782322799224440484569925784882102608415149572739670002272395991243995131642619962773877924137708973627103959201907416277639422551835499087451406791258091882870684439910553003140284633922316511019619874520625314624536777393430009149463282567139118685357778406989764779657584331454198182330855181563955877211565570084953032247074078060793399162495705107280114689538481182183261794473312759063270431882692013003768995436579956270810922299598454275128436738583606055341830068085884905507241589140793159670827539704144713804504963426139015797768944434334022458059970106093587619479441114101313104061829836678091648761632782951097424509584335762601019297222249567118300766687574540932225561400804998869166225018515326882309204882214412447904982591031525200337961008041471646647082109868026433519963307911242874187114844671389782503784606125080419773208637552267901496241579153951912203060595176727343569465073380319293886522815048814658426743786618685088052213429902546916085666637674280055285299919765716924160488379792127574240427864472195257390202837729879111697931116312613717153987958767103733401690113098694727956375059715254456636875310832926095671638064008977899428617915554467893196261836120497798964264777334744748053243496936653950761616634965088140091520438808657201866632180800387567462072996285624943419626458893141769794842910108636126468745090339851467072159689930802233485999235226540546423926166235100768709942940067266469094839858328421993011965003223492348508230214895864853995433814717482681928260266949728681508600371665615464298514690840446452076996037054225153438841177546910915179428231136192713476750734303328422859131864447660919294319123759857716334382444402883775368465404263461629136425702742164892493852047013330133396822709825562949477894032903050378142492009689532875104190127607674470216504866299381287649704712971086124310110468494952261737250276059191613694653448175138056925615937617088831241989898554546739874185895414610365256777940836603088802434338454400341025681986283070760978900801292199251436269636477817825618645441302951744556989569596375355816772461919344037559126592084290427940310771288109411882134138886634227034385102052232576018396580197277011673506554298633184048499055296945802813338182211373648117438771030490153269992928868799621378528750712572242004078508292012594805242643110256044187262886521626990841088065185771638022366716855458304877767123945603381401560148351405269932713642884367046326787298587441232688871346627022610467459779413577008628161856924329631071187558805160744276716510776495431305686886199031053389512349269816794966790408331394158962079249677640593656963907618581477793093479078305223086690309692714213170866658954923784984575597127212147507034358032745209316935049686351806026803303838825395057810923490242703932923588804324217665322998112143306693322299828114532496226978233583163562891661163607947863649070215236143305417020911813719307643213601796294343053482220819349400232481170294170181505341149352836584772940331556361220208468144396218615600750370811609187035195133516825384651407580248203134403146914328453298899596044467060243488958849555595653444764982143715399838568258023972443614186989002176622946105512132978369919984264213169055926246359865729682297100234089074580803703531973097208588501631037964041894492723050740192674951663659797281743982495558347333383670513892583796276946972111735056567417378000073310377194701684035318998121442354223178491782889085496301136350968953718067624370149687350679992917554754714625045943588498493789989450136671173407917275449839906204957918963236251111724313026552232501631444516967618791666799302921003141455047051641967848183459061937127463719166621505388446815633084975836698267767352974722503897287299667060567103222914146009255122944114660988878449014424914903353504818468865664878229636617269271760266008933985253370249295702324782544777623681195346489015953990165286604060269362646192960853162878483670483844524728293461162119044392242801253871598733072828455116150610371906390262399523668601684941541701535763507698622119752652405330926358512756822271772452670015592048886408843643772996369164848831855993857081671710618561345977929953459280335512709950267486751117482778147512410035626543075717404473973276326494067532594457150941138123862851636891198065951213801862808917249956366410978839291576678789648238533938278467434839725362779736305294673096342744426445524926763139832004076550403535994439790564487462121864461689482286149799424791647524369068655542871028512853615335089724384434245754662230767297087008924144927115393717647240042495244109552444063111059196423481938671562460606284292242396873459776409807915616628579680542318259794700358777932343269132541667396181410831596781429064393685536156046668527406440629826603884917807818196186806219596187995472405217915322642401489835515174713693871059347128928729974776357020805666011717680404874373080392311095459472188333579878808850599986698747238171409338226746086263609698395091551362169667223044903689209679522821094491311768777134898882762855058563124368610489952874729586053850132838556271300890226929708910305284672030118321999378182039716051489024967106239874762442755719486465926043657470903079741465055615605965099211831467419356087286845931876154480900588498563087803259520727323984583805472213953731641178172622086958552311484066668136769025628351174899686294376047515996331710819957390608129266416993331991459250987972827961648664931520990948216653394117877177665976704515856572904008571757683114302208821627879574697629939723717193902411574237761245252978658888508105044585854108482302356106817600026421856342839498410222412924899510242220433624959073143797880724792157835999644680712611280894574709635560816652314785788041704428252304766207576010691342720562931317492774689396645886187846080698364750219271656095249959153228754944125038782481674866139085218409984724567483163392799101947541837020896900054293197332898426707969281278568460778997615172583522891965379136266640432971840117110199206805174622176747650308755073245343293710255084242732085626457041641845487857558926106030327774783176236163587179125574754659277124237295923785729896543651401995118895138281668485944666373970669224811613531343597979161864353689705385077245404375380596147613321271843520662663765616664741573444886997986277584626555839950307889790753517827669888182670702198318074498533283718829138478853173692401579450946379349685247756701055134708713532486577998534046114210647060912657361445570738052987153052168731891052493598501594019818930599330779677151593990938129854886144906421842808910507628702257981271723957631072544766253376250874059943361204639878411294395295739852349821998578620081515457277945643573999944803068752227617108887941399066197196050285540115801773397612642919040606068828324434548502351683948628838469159572447244681261241495806946431130617794264978138526525229178569665165378756739014320140515529365430530978605780399024068618399033362876326895412685819913982777048072013350810205189485189577881613455269768020740333822332093254619498917194595787640966441585807907563841812370418988196161579229698743913875490121860487584434133214385492703776272020828041610958157412292510701781201622673352232927707685206384259875420527811087840332838781715855407176434344256817921401198154965221272375937173466595915657907459142274007906807135583111437560855384406338061991215609859826551005737481922611581765217405023877950263183104452243866995894346358320641863320215023861028550331776591492022704609836891768525185193412267524111744970422794094707233854550727477189792153432724087628994811415791988080142201426328012741265609367018270609929280527261348255403538397751283991717354507034582840704536815705936795753663284478634214124758033997160093939110733331609731873018231816655321070109458536771382118045198639654219634727484412789015915981967376272163465670616834853760048700872860758682385374764792838595873191012753195646832467171596412542556366734740454205726998487934747556313966152320985387785811931627891002212703707472345941542105093097980136893175100576035740113145376474214681965767394991927145353907206190008003360019542309662362799889954647454125400173810949007874374330601133146231176449621109159272573188667655823463446073921515516291993394387300690750268261005439967370532845053961782662716879135037037476384712540803514052045168970645698102452287350400175365158257861229090413852915991315528993002834777925790264863121072041203981257584806784210647747262628688962467377182210882932515911165657707892995800508382753438259710781281630150765425836567218271503870129544191224143488189919745653227861977386811459813859445795327221319090637330552550075467823615076810652916266709369399259643029223561676738709351099100972665078277555184957644430737594875107213003286418235799743090309027026541692061223795827444296735212425416039642587970498269301206041512084830852909739968611679525142558567778519632086583591315688284704587968647783152532425527969806156984140031534377730579878363096128779003354324080559312043386881340726665139851965037261227206234069865722886126788464115274828121134469876688628385086004471439021556719299911440974134489394240308577654980691918028778993991997676624901351604622454493501595918774926382992117426906130540806925397354696453672412459391425504052857872612212935284362155916357119234305947368009939470471609980504655256391126121282376843467998679652301588228400713373668376235289516984385356881771913210827790379855506642137374438479076785397818245882960646335392962355102314673018444812696779034552257902446519542601798155807316498764271689715507585362065678303214825719516080741212390248463744670340339032773206536266229556717952762287398417601223845430325206899488059895203020450837052455815855765680032905814965156751231014267377387159291491801341577658601579306277583583540707786341008451666894479828724402662028113199070625345913499346104469889601217452924860743116261560061133938679268898249562921282732813047485385206945532535810406561267231690799223888450797568616928371622430601573291512171734773906013861093117865815334640958494691761626041736617667392842687625570248862654496384457894541079316875849103995312385990777639263936132112769022606056333056487008965262105878984360505411069423370425316169213504567602620208726110290719209941659946668577222853652293395581175869764460078907472399188173844057038716530152013734569175014556918876767859893414916098857204333175350325123814042014562915892243690918969142129530545078354607001665094316366591789603696636197942725610367571253135309806704217618286176982141365821163722415623719644413139933621560830066102171285278253681968860108951662335691375514980028120364194884390896452042944901985135700972157073808877908813637929108391249438148120379521274328498781199503970049260484760416526519754992953566187769832104003176643547854502230445044015636239964147800620254610092423947046670207398652644104058556584338334445474761610446490351545424938851611630949051267223957392471132443716490506811027622531574265062702969327556270929267564273793150952595022509135495524148194870519508377189747325561772455693860790815939300140584414271935204676330412863897635216055151925194548448312193247018191342319272558239829993620454412558382881205529533364459051346585823332993463649477810845479510018734419226049125039109912606792367917237204083715939432231400730254077393350681788792080459288054891100622371842133353739973340531763054925199260531207179466795713094837025112754351602846617253512931955260854092895144208660307639627562761468122777085802417357230833842502314476502625664953591063572144456079857442981694657597228614366059343189977473551716700274645628226682695095917540611716529247842774216128280514740479396683522144322706025850467885672744921603960179888514188035965949852784429031457389743038391167987890542390468433111816720629840029051276180863169876073579130588141286417285354181930029160033411137845535801480895417979609378903008187088688993981129007072707776636632589953886774402627386146882285425004228234334131839601250787760620095835470646609217541128782251464776786666233413628364580104633179693343249270919310354034135264795545790565741486849457270277898572752143492053727030425631050020490071674377423671217442860604548500032061033962722579772737958747153032326769641723382349561336382227005161925872135093522383646427948203222691787321612224235478127848279757925668245873096868581611487291817020691950734425847035806106218690462981700485259592423990782182935082532885649445925949584104639994778318025724161317709346387290191544975972707970564462792781257906601345755574199742156906665796885842768138890303322113858104319445024310950342445282826292113935087829832445590117779899608935100500402726003805991166079551327327837394407372694980977798499236412816190244246673169074431228927930528948418943991345476551298820401354552860175464863645175437575280802404589907142654995966457971835042636820319928268645209469737877329330389047806023738142119690341157836460387964692875942519499739343975416599825681385619862861215991221760147250899376997532533614409047145762305865496168225208476951904831058438118440061358367359406572902565681845512549694041166485651922466218563841077906166510733379669919858353354859859902224501966965719710759688102282984126592342814872213119495804591195223908723804507659364297753425278228454759054182364325871911614715215103338966931576672657507491028116466503274272563838152182741553805888881348342894762638736317438107016572324231335238774623953498386305172014456932399251735632120849761322229234000626405114010872384220557157099165880584215445702159969135046234665046240109601277519264932879743586172176175140365766467542514510754079528809494625713661984230131056379588557121679727067617205144339593331520398011030078783581691032658347444358162224475668572645617042052473081272885170027777391472301638349362087698668280573825421592605594519477411279847298928059803219550745213281968739064597074394076187436530189102880472596679731929416473827667310737584342987923045790041118518209386869297227732601524503936946404060320518759380496834540932498828512729440789021667390646861613212856862192045937286841345385322705755255453314201892659235703592513975914785275140489180037965322992798650209515541653890937477500405863793775280482140343713175361905691534966057516045056628503723861853506291699126659613485922536052078525905993964774807835423430410357424696382378694224162058733555928539561519114297162932634632672405648175582994570076494517916714886682220627880784643041899748334900264059941874775226543126381866167921012974912693528567737992497274539810707793160225950420701746932171905210905182007462856972809585256945358887165211409840361708713736171044693286385392684037773815990799071874580020653177759446988998583400200056848898636036850937824084786523982172058034850065197984283000952628055389471596957981660761626626433965860507264385744211594188441550234186825151385995342510495503851731013446112849354185822543306272363615728348053868468127920687181279583797765727616451473483465461136937715851142387986746749244989843565858423281368329921050054923445741702878599553193809174485279181869122109094493130193701484641607164407081054132625888278572643288181550258688019726304416704142419130892539637024450116832399574350563634403688861916697593088146650791080211041083540486864555842766481985544655257868221180165072133205742047303116651199526977353018130531288289104806269354665736603836509966456857481310384693103104124389757279833277096321717797735997064665083799671537952976447083348886734359368346058246233426967723678048952877792736077888154230672751205912728780833015595616312803966815220430416516165483097126095824128357531663347957972483290867117373350627216548830506761302596893902350063524634851979668252152050792405842145888701801301267231674715023415372707220210150089898151765126340358472060339661577471140479372952023397323495403623161273759503288610342175644115446516517859100771137466756327574110511662312744033856628014828913152765444612193890868783251220992853210498523830570663664600508825373955303042601308710345236973367158010034847006016306622185146893174972495773221341497368547427508344775210657125282868824090583124582302494479089483832793654259455296904267959378797757620404048921679054194148440238392929749209294869226211634838311421844392086749313479959021963351310795466540738714146480961060648793987837634315339728914376323551991878705643740141142099426910782320309676259514523451376517263435293301157888886467803327868905851811312696030038051723919532062366713711542824112539865011131354630216418748583490565502411695734211280997437717149460574197742935623236150340540532896869682970461045173557961759810644560144081267973429595911942301692335153971938598414211374781802350638222118315230332689074560498387110586712818539387672332256597228026383366139647478380074598682598838923550208028911112894088653938999267341074479179442262567976510600299640209244924533109782914407623535967936116149859341298648235553419761414996470428632831674306399406862109584064220537980782298154737217079331045784991748039143561324434157258992276460800741193420592742174199760777517030859599924177981631677632206303004616115587382577504066468069023029893083701230253910313038369134161773955149137284930984183724521288588763485803552972363416841359030365472068970347781556180156376728117264582688055719890834262641629312412981502705391096251746542023772855436037817355386415108370394220877856440793671311618774213504038751575305181276931350523245563350031764772591106717275486376001881447202178768227452686571361350193975141646040791910348046410105852412720811258484687239767365627817210666353948905844764894117126101982271805557120648436628195190270835739509936719004171766477739089609058987931406453146713571345646295837159415899741955175112907544957692199044478271838633754139644214785953544380046646137693869523299565197082423203281515450820604215834541662364886206421046676522574386273414309884435516588325412558283390313927736884383478507015462513587919346550407749819980726104107708221119241476400060483874577785813340724625245956832356433341583011939956166828675291206102213924014530683765304743882019472542974633445632068303496801518720919319913986055921087547934888220451647678282864864339688315344256355154909425034445289036599918320141110239992567116014803336256703093178481980386064495026417199064983078471650567858968487993900866411124338656328710028803192426724379619411772452361009580837993412784578246131119891626958226333200570912870004953813071842054726468035486739738576612160941018459796392467217713660997054642879281838932692191398715848090240575056909861954490952900042267696448466422223887748850047993464263007272737944491313416370315749002985613001228489315724020072608020258651789701733786796548057530799011538837150674741149796985662660683012350491387620086665022809738692720304218523041634610616173605994838626165309786223618627892234522444039542444978009873741983083606152888013623016961891771413412267339131177131086643642050359873543625197879313532249455900863649821777065182454362712655121863752360031626392892795214674416017078740983017543169938788026956179832714340386642382614105215124154118192882573204636689703650732346477670745238718828262361312346644224302534037284439927574059354010675514666507581127620502997981620615153874796820657783934675086881700257701478598259232835552973623231860069911732867550121755829835102050827762513380796357755973925371501511737120025015141248531368705096589882037276800312384569647501794122277093354995055699730645424823729287970427920543060128962298803910104317385996853901066023452250371128260303008553741260492134014997991846864801535906753185869305847638724012564057333252076127420351675837701863553235337405740459346994934951169753637228802501183504122509050585226668847106510964839302960672959495459185454516591553795796465351917322049860379530955696669933825603786711229055881706120599683014495242304075586146964674464919456669237252246491312745909084516364263291500863636937208444501544415593992685666636306247320828414460395548627925338346578163726384102007974969579454698304012824137919592578650869137493824308974289148669378522769525688720155080412031831435652811063592466137286460458385685761572223991265261389080905921704948188120641487716952407313068197863256364733893414342800849949739126475418057564511800337358419834867806751669677580139168496578995090885144907016493557484797518072122796814283877882851358284226571536071096592485171760628818743410798606314331161552118408747455416170747594351915284087396141918434874395152391199505985157844095128254436949601133194601541787659783615183882526705887983824044652020041951959127202107467673731863420264685631151959189039812978113699067524520015496353055428210514324553584308146458116776818065642011024512860026035361505907659537759726774045682587620486226184587522416533887427108512965811643689202904825123742557913262246947225818204031765380549316619516956474453398529357305287160314827208391669986514860828560830476169334115789006311634051903272997208137423936117735336476320865328316286887611312692718646313304146605033575119967653699720328293800083539636287885777295481144618003615604927136769621331718495394655988215620187233678419131927877689097582742579091048192020474887622739417062948990308966620275507030150428442676056175469201712871724515157760500477037793770311297197169964640200606403058430893634717979738052069215411227580436321274446221885027745436048879785485526625137617241508272484506055385468591386169292395495352437082982570250683979016526469391067466333115456676310014282733924389647858091271810453080956103752673128844822731415720647590882880624851529890792843576134772242077883995950059887880701304457318970754640569400094109168067749238143980095025819488137661479840492648110974528567891728893347617034765315136574963948271379979167596828740442282633723470921042730751566826418517326012492701075184948777984586914251379033141405615429605277478802049900537789775409453976419749788003134548743878912586816960606331222882385105063384798650586122652879088894187525818333300643517041889589095356608395717635588553893424248241556809750598668452711987947550802240892379175263453725552494288453797081003840115460314845990968556877199880840819448855349151614955274857647898463323779768633622847445489025479302860104026802614050080215697965560319013451404680964212460704892903873789993275919121366844773900450879157301403337066618465693476492603500669770883117086878058754089244725610825737439044395052159508533865291957566051659503296574443063989713334394908923292940824277260158298382812366094155850219261494241842261313179723902062432532388654780077802749883159378834823364883161194845185477151859992127610345823337793354734971069692067921995146363067416944302677338644685338131182313453917612653515500704600837570939720920722775203738629675536776395406039563277818586164895503711676261646801576193119399171508047869421892385857214407194837259185048703442854008807218372519761445511790423549859704930686000506378670229874538258818823591883449212505596941789860288620718660198301033580593992700949604557848963507893246798428550084841392423238608982463072147960497171129542772892621823895173421111972567466211700573930230974576668903467208690892648572018491551829187479743137534074238227035548636538145361027948059635636324121715893504158160500799586291900772451172029684671736568364469100811575678785731026838164085464783986628764925458206315851166560175758284487221085782868790956272988186011380597532579280508157169948913986621223111936521282063666402006559070591419027532759785233397996661103453185450341002871463275303397212059565102903286805483440588050463421459536480961856718769468778437617623358040970432675908003518533358667026692505347784538174078383805836545033378760919385116407953806751162371002691525488544252128925185853080626196320172075641233148281810579267648416622494367387815938138216089340101387758306279130566400929958452876271895805351076566772823601931295947774296938121583865934575278465077710035815133933469869179733910356939876962566738528547726961157259158132350945966729270891788023122528702259419155689564934363999906724137398576857874332838692728702321097908638679450349634231890523436433121523315918133667988630975674752390115813631905574973142984082762095943011549677609340925618377257499207536747908045468810968810038082366476569220098350136198651799438271711565264854018343941332583826237502840141445647674180019786734816239040368605446871036715554048465900649044590045524889796664962539063145078330466817810769905387680470399159519135993410683897246539967947774023729349196636691567009150990017492701142225166371860889080630651110143189656248187884597752040685000404894706290749823020915859952421568789599212246976740229264873260864181725170430682654299593033623937648300196885475863580674713059427435135815155436749428047980259442438294430427614909184743247387933837128640744181249316637373006727734370691581698392247943742722385044535861688740503153367640643769295792425664251237717297754121577801927033563212376983508396514576367369416014176688987205379967341097893479812084987888777888777023669385674203889697325959560166168118765812752186367336702647441898070910365739336926863246005282651831244515646946497682236103728221550069979664817068292068399094813653232194533913364286266792972989749307361988004206375052007232263331720761856980527788549616464234379202593889136204399853976432311946632116486177090142397028107784010540581072801415289358141620122913152605993435110034028647093598485301518601289679666935505032501701212897406072038336012105288824681566670074032417459026957993713972459018202969842361415544595193402714289886611596108398833334732818144601872677775412537718731736153748459248075526990070506866734983364077937356287815418942640743095220412626363320629833639595717657446349212740961830633831477553495011718511162120020767712867347759583791497963006514485127095165373597082230948880985023750572495213999959378294522547548021653355713094404333855871674391004359829532965197572404459623921523950477594793944342074971980909688927719552213546813597205043257590548008261978619724697214163098090678738683932343339971142735455338798554601203789198701050294088577780999241571749137833462620602339004560835682846372451035111206386468873479851999667630600510891967711081737097946144713122825194891420409190582453286222654239230998530526635492339309257811548805863490687161016792352306800087135412280331511462177334057417567859991753136506970821046582201346630946051604599386821890619518151470168144193342909790483083452785662195107214461347372281650204749772947847631151241679282133426184000179238435015807742871338616517541793313660997366562117946929662009664181116617939203715461774886322884603629117037656318371401909376465353912425415694548195819547403820345473484646792480632324898788417052824490108994639171292179748490883559175448865850499878783301897192675605625238787278060737312583657523953636910576415786256136340644371522579660873422996601348742545835560606862885823887115832134251873627796666905775240766859848655448880309841449321151470140633110320938569417258950447096780943977808224070942491873684596738762576449913423995500827553992217048342102006385654995470082894514919725810253663029579596654992125974641152576441176642310128173866917855617738475348519600880417728090037467991533969990568551909257883876010945398452673186087292195058978884682786268728728039144401582038491109527273671336965461230105807620739504572899285979720355645550874099136049179516616091994394845597443318892819183992997970839067263534724790459488413977358042236555761685443220819940739605008639154258173145993249516367821854956492168009307611208273108856264873955044779122360346078047942467712681235983940754596643543986215498270698531655499700320763235147585488860824012425479677594940859342098568363078952074277135819176403833602880517571705346697200315758975521228321619761258421375267788313501195416480695141196949170949761967455220846281614209084793298903290603462579145326874640103683072167416554229247815534429684146022520594097911203966441756638737873798887051129148469905123189705525863266876949130833067005647088538740498501371055250556224884325738326070468326680339664488000260004013463857169438997077711577094863210779507256909258394893690900613998103329075838458862167234165841768672669816271010308643720787796573550021137468929115827608979784500198623275691281851003500492048911791562084728298174100358836698266745875396604580236227595065253718073911501402633589087398200235621637911401979140191215675418890918788936003222321963081430561308770700189581061833373782388662887628740995037826411682161129444704648787222080028800940551697832367687403498881685498042178430987175240749138439033036651350511100339194693216603920602460553606666587919511367381738713391590462470755210729436495708931881115203748268886866832521367477429664396366055940235269466914393726683191840511930004820507490215700137880494994301426033873957492931014298204994908598737400811986311751641731710240033057323705217697980295477712279802292673389238108377515608905684597393184910309452658290818677883861920397827529043882821894122296235702299312758107586865390397566339176430943955898301692503233903081254725185577983282536019534977591000800163952544940765871951597357023667942781557161406670071762456693155589102003859846390034808023963611997382315336194192557626408185307811061883301067951591397158610028957202354531980277523560011778424284537529225067413877410233743440884873381670157895514746329496068791939422339699645618219116349035943588597534880249007610443595835390849383854279988943154443226305790789604594728818618204482243633252093213475001955015633302185314168067454731849241632308814571663053571265278213588208944578598841668751046865714243742750478887797025692951917574963051391737921035988315557659682082910014092606497305970344234393867569725955818719492724222709127331246547996295272740072478221415424280757708076496680274258921944764513468247768717241905464148934610963864572138136640567399086337022326672966227023237081452001638063054678709718559600764109105616716464043941862385001666349029426578437384668953535740690000678567549338258550218994736718236756367354921746123864268957739940234113333869990671556127706815618551850914302700850936520495828766625161105591743057363319568430408349915188672860455384423159568857279531668541602970381602870732949186185379829107767781433521175341676535011233038253191259995776905107615160157258304644793352271398057764108508768997677383916773613732765355612993754329101028975306557456226570696080696052836793400384332735696199602848514839087186977615642884352821042439277294770161218925697037950751216674508815952450883474221241316316258567137650305742366043209274171029154924541553980294506467524966131487928147753422613853553065056600708173445042462480444921313205594373520902735771087038306219318534654512865348625966022543600281916107943070856552657897308290376533999516022381755544737193184308723672493576896655588552358113232182247908936794844890573057569946353981286024738603438099655469407362137168715748053168349072351594549704979684361735802288737268002691204439668743085105399347611079448550232832880905499582459501688489009857898198251282821090760156245364284625463149603204193677595855881341443861703882786940625659541855019913462452136743593360230059919311164799833847674822306820466064514178329937488287337226443679495288140823750441037237438459113175012867630842071738080487080049921850354778458089745625390408222802287796323839346563374928785222049524304183047203575415312572016302783488708406652940455240073780717428002304006857914452182225739718158780511648502748883475230585279927591409343890888753928232186098549858401265999714739080603003860492539696105399904299240631451189512203024615472078518398587421261149445083621021528106057841426641529123120413509979386749563921720017077755445861897608096719149652129914148384063746244673266937239066012502144243620557943072612151548172873495955164688761608194368157108949825671602437537979579178750281486339855933513111358152860421750418605105526552278652999802587047307117290535590562012857629104123119227603269271775317462824529737493852349208266724378430425022153331316868007902885598318595114149838400249260537185929075653157346444213255777646928427250501648404039556959214542913302156573793505621651842186628559511643065627211684796188412034612601419299388396085876105062689540116061975322374973648292525676472648488096333426798872409538917048972556453320439804268061087851754321756785620040194041970380326412674146449886637442423297520417555456940014780297088695146090607914548607029662440260542009121335575208578463730626383087395579351093721174414982682066369587591739365590970364567034182189297804420654538008614532125136846803652578252532960515155450915728728589309067519809931562611710589177532490418379906441334872287534822034734757330109967553130245186617278042867901412499240388553553040625791471175927680906513896441619851508018816539171269880701560890332199931482210517571528282754898204088838481164644174965687319879675926794574997237228039769514613483864892581080541693483830618127400372951551564744345113377026758210736931035191109935166890801498030345970345419125440432353806516920161874750289659659875358922834893233892192655938080268503595586255205732134816333545867580463835632750678034246153716578096723760437122843217286716587950416211381989172810433232608176589341554196329817255410260153483912114479894414876774334797810276373515118818645092231375218780071608014965953376695126738810712585210719778342626779484616225109547076837979056457366650233491189169816343112873177097236172928636260395128971829624933675137687701791394590682906304925415220794638858611670774704483011237956531428210082196760873896348368525348413890788532980500477914181891904514021045035513533556510249040713770267946330027872267610700579346373815418729231094439050669711219871430083119452104964703196154872052128593425545645053259626981088139817247978377318124445716161818564374996826056276408755762765073217601737787599090642403308702543988090275339681156321441162292596277032065517652363805690164216085181805203636866634836824636417874437316367035949613324017002403707610071913509924697162047493628773863434148808184124575916869497783203198893855875068458449319598425434472634843017694612327706107814601499577338960799387211058807238864557750207489327409836345422597261415296250396937498330032895299299986390858032356732289544221508572786355645548482459608191969220800735251211748326280089373772301538420912259011165279631815072984216871519678840480557370428991864174579607149295781991204161769565145501208633556982021732539513373473454112749020419981761947162681169464130524743949003937094561938521800798705975495009201194534682423563630301340606925321181062320651819857500771694305857407885742150098350179298285292269012820273148263065276172326478937446085747096692406176548140726145758708922304785746265901381113846024259276883689761535510012084772853150232466085238203397796648627303856374867477882438736982444764695228171311055968516053129555304721480848617830657239227524870425557514774357995384902487127127411744364038642079012641549406601346856783499649711098850420855509084298944533029919459465848673410244217374016689238642200645974987186202731787873907521726405661470101809091442668357165945053628736449445625850825351179320410649999056839946976783285591667319743021741778984590309841400069060021111645930509013977714413188258249154129384340951226489762650361468331945715470030845573283131199776766046176494487215631659640467058292931015166718076650293711448696962468377012052401757116432646804712568764333847612957627950694199593289242920789580700523088744290356772642800709532064273982135532195848084410463559992278410155868394070228669828227721572844775570228884233026211729335819381230715217265099045516309321114773967728636105082561116880216301105473980879416955348142963919455902651163794266061360134794955803903842815107181774665484830062690673677438667832542473087808095305556384303441821395067207903387703228736966182663949827153300045867779241265242928423229482589111576987519251712059563607663394465183588925233357698215300497002365579800942951914890663636434337470347114604777634452902178386319466221920038722428330929245391327685042858292353854731078690838619460582392033337694177760809418725124638388537633957359737047063735409837879249862745852830845953925354022135825632874673530387510350193526595069662840983406482305926005636540029653555467940347763329906461316191013547201296006350642657915763140362555789419803928576074791314133217664219427585346665579200557651068801520474458798904948289263620393849995078255447310221962391407167476667909032982445364876486358180070599539531746295345077130215441451281269607110075849376003960509337599454606295667246343326765419257946678620511180427822549224180720436244086369854629859315490121285191197418922622047708842629315539444678446707920854275975636943796013106170311937034380208685391579688299596178678940160538110119333478608746270028192826659666414854804241857448889248040523662809462376278758568869943463011203078955660415661942362655606816918307762792362015850397752103709876986326669847272133106429657973895030732699115490591978176089922087730891792481612270584712760311284061016821666303452058482431997791502810669966633526079736275580638293106127855964641699672652556495491378763198892052514155494186255191064414246626348882276573585169856297419127242974599378274968295292396418506749563235628194857806500635267008054550987016698176139530357132492296301651271143679700122642193548685163895733923878298318675838913610903534349821418054689385269293168408730588105598412137860619897326894216415360345975141967278194444382136716696775821679855654928149352348264032752324363981357933887722419351733100448887006210162817711041892174450553481839112632322149487119638441918953192243464756765424499172436336297039248159559995676859553806629206455117295253756460804257043090979556163152078024149609670832630683791313126820335532200514947957570073858133586369517752309378401342409356228688572578574365442898814759216527018513510016486515828937160918187210427986719451308807744655755033001201775089961813828707034570405535876208002974750008206197348423558304926641853595484842156419610205380869945541408984908948594743253465047548566135120567430382243650582022618123980439171420722408823913882346340785713891968429051369482077457108114874473694696184283883331748942005739778028381484251285712190767219991019729681937451522443080062809587169668582066081278530130902804295176460677129067696963238476196693604818315061932452570640973373003418422528472521349758040373757829255720750568292444642284335268721268437196084691232503592110390165394258139563798568515830823929253846593528605440347467828151075387271861003699376661760911249068474345604069946427481038632392551729195115330530328729274417071868574877288656840895958166591418728500963391610826884507985563601760595220409625710834569552672354504588596732970787766227222062892672862857588368366005939209793299621161525395838632708837014685768618125691300282035816644396527898210974156092359267749360173344232948638945020923873238473718426064644480792219680135592168014292723634906786696600199678221962852870939996863773410216109484550722759139066633479275456245808996476545020685118699277994446587846564282374448524246761575485857407974833443873340441803545608846909363594223449441596328379025355683630925226454115312585129366415002717509993216318131918071879933139107615311066438111613673767044787011185631401690723388370658844892136285921341277217700476128828864897098386203838838574609231635551031788352919641304994132607508106134061836655989730179587076183670316752619665819476849982179058783103277123009309216024161503313036297770094552388081241989766374512855632475676392310290882088629603432007130360321068689546886552043540110206108254881626453935250938917216410749270281674358451387880852923981653799013950293739198233818126559848233298272026297282641817974451136017430111458912514387181589753701319715911063305745911544396581552130127388485922363935586335755614763264930679858462146329149988323140751662165942819553323969362065668624045049118346119964140985234538827968913638225731902287102523722221633398805170136242106262221459378587291492743393469360195308592317748152050336280451170047798257489156762994320174268383964431887100564519995087781308475973004334008008279483935017149719372978693122884376767555751603540690891071464051648395225687590098851782801357640632555784387983550590043196104941225235727813284441047396409305924947668711330181372537666668781612699640554510745102313135612545087258166124559948746971219931618948732028396704098182235430889204312696510624862631810843617692656388296488455943541803434095330895027138894212376859532009753835020300681597314848259074794595085945597436424148623487084616541020072274314371959970606543455305779963117678929844883565231751096858678124387445861190624913118364952238239473741485208551101687278695534105188553255583496950034130568350002507005349443505771459304644406360940566647006405497682361618754819089163249361944075572510613172000963489131445378355076744619048549608173190291933592620315623433878861211950329382084819401046185388520989214176226899306406933398265208186913634058403033225582593282656458779969446980817118591167641758735079069340485998836650315020821796403172856476886990050061981252473669833460509997865622716758058565914380554978238018764785962033212923469733426695266644759088190361243245678208406640872397452302896729883401567004893521174052267126116552873142722964812730421997232305816960879264474140277710374717066966868743265312221819284344627059010263560116499467576338196627587101529245841717765271936554573140440043708654360175860653272179162203002522126064479484053100306967375688414796255722262916335449173118139290469291707325605081387239336990198765469097584088676997227282646298029201986218513070206177482632233519030483811573074672517735440993413641666391382385037144075966513377445852950969049241515912699918832886355437267637236574039844302326272951236565407666291215367560901065776448999391397354960864540605562100474017701058607675816383579272805507640685163121265401912949204750096432226416714319762934471221344911404969697430729021989207048058809531350456236378393630417348248785889295041735894451322534863183464474154896467625513045925011654052056818138059259143945905498298419538953088272405329595269881220513588069733820730055025178757969291758371811821432553862311744411719584587685062317158055039365491119473131824080268600408417529620658116422415909392441295630085826846842431631350486299958127970899907330692811711121540378021970980576771368132604286611800742750453840624725171407531572357705973467723069040626675296334503584469474507046802754323577338450165855782867236843727687231440110529953414161094388979116967874353956542812981270775392298576489807093274248208384685472126737944616427648247356730320867180056691429846580679343822949809711671483514653408187569713323508960091190075698026824275344650805051982160802395523415028924694757170812041921465641769946378170682485750420849989801736943911136379605608171319864493530467024347975311437018037029431161985005101976954743136170807104673125668273308398714683754574736444565961355592408281233718020966940305739334453301383995700832082334593218709003709319251868759564480961687209916475284175805011291261475003237664481191369116677723164014507070443311635925689847925093113457864453782026892195250912965442348917261136237535741057281887770745964317909212035987586715920930358715444489108422116484806153133171827162804567652446171951329768602035229345768972961135213267657715254141557627437067015204034859131409294042216383683396601771626315508512969098087792477363124859526630000876001381532310089431748737100102466490277998289906069645177746420228707758840144733567156728010237870911233392688710488313386976150348482183770492171635113249461601677249033169743560197796480926603781237495051550673433269639685075923964198961747193629281889433816997124983789485592335164501049062906911998827886306037940118467340761840132201608615228179922641639108756036705311097869123702966414927162408847464828182939230455924612411802119906183727442288599450250282654748774092667221400363695741767327422805030176309594012326007911645237528956592937870773221123612487839466858175677179828736292344803480842830745657425699773187740498248845729064484218461700090714252622422163463425701588457219667169002528452028747102412677898605392184691691437313671441855537395645333877149287010702326101153291586989195124072138347556821115340470681419359126005132707121165965287895064294009573347933543977686131037390457451161914328964906319308365143977318077606027335500792702370380302710393941468235933199510908125890192855888114504870599494372673533784627774984398353171199136523417427431709160685614396618685402501861850039983213258538388094718307125093099635764594885955784993333204469160996468534716159568657254981396998094237881779511583315401820540444335627912424526573791369473394133262343928255790979878743461159517855593299884853519508471583766564948019522938490159501651160870319698528371955397906684388350863472065613313208100089456432787014756734663686335667679795118966300479079039468407033972453090097332083251153182480199933159778252593983875675541556778772940328894190907207908759220680677377908931796823135778608047233574036282413518271646376437304013820490321721219516010360330459170124053839968315244558890400207017654446038725278158301691252052830945538444416344626205196413558039986839992111209701992453152411168106243080840597522870853141397988160603763018477135964302978739113978796097061370773075590900722452717941826792786626056867763484529748502990039496784814993993314064692957056046880809662939382047887082546183238005090871247731205329202121474319853917875998206314775889667944364962651121843817213919389757793233504832373236464381642499314484965021547323009677425420118187951301761213651843906221875061491878634148235368574186432105796211430250090836907070988879533224917358643883581746166592235221194520399077842687054316093394943464277691460534402256052687764095539434839360740034572091222028028537658501432956517450770253001473798169877341803554365970892722236684371745000799402604906199832555474992236651952318444275709714704746985325930904344446631178678949486328166739393768590111352945052227296886657383422856321038702134836571736868918586090843108661490478944493361135715750833462972906926145903426910463585692451708426694105102482867521964554579409968470459259699227229128986235044091418245169111230195278879900782930253563465233383125321804268337802460820348268855217932938587255137970235175113383699753068665588717956619160191705168128451598142633268197388877042456218850604733121421185646070444479397301556039046332975648649547106276677933777776286132193767007972450518014498597242385408078929463135444795638704551374437527057677476184583646863663867987413627017693478908640372840073159923719777415733412439690472758713741628573952682342592041834044219377988864916198745419808117041359756139871795995201955630113243958030426772006859449110836237660736530642761499875821570698910681927971831263170205706430529793897237240073986236901997187174562322785261607189305947798575394112979366717115827102339922445838064474341445210760663439386208605170619776269104234095056628345206283721416846387486823651262993857228631881712977398263808243328033937909954551199742576635568473065976376089008774036458697022577455491257356305465924037147024311176380496355724708394652963182707018303764509165106973310308833937964187355754294580752372710233124287765844161979835989550893199131521434515191811297809331334091552549716106914953681489696470727602772132105220225664798820842991104903617701390266632081813575532826245273061587139393320656058884105168699541732891441843934405260979945629845943633561330616434397522848659039216730991847109358428368341046286981560749610919495896510109442243075541601364101089069002176908383792558439220185151564638861080484021622920709804267874488433592340149518255712638677444120348181885701176356698894587647501388009894009273397016025434956741849294657078938581693605998328189828928148311446264357346563465836232794155645458792433743838664061971595575199232407838991411435317664512390383641419875483908889340001142963973980264760329222750405515760891904465480914809806865347747192211672477185736435833878968157894623095635993567602111787047061242561705866272760039582374831757248863812570612827851242663819255243568924040517662033918579721210201400166151735333568898165964712165209233737108083546181353239622293798455630012850694930810039605533925499510510628520233307665643279302589505708870767474978974375074501312321917882622321768218798294653445936296052015404663966111156220753983688401571155690669249980703762255223294878291978001854524014090631757650601913163160896410100312879424222851727655481632539263728661665547841442698640142282440718983449008527210413429078787358060673270876204272453660501160448927645962702874159414735599827169980995147400485521481124631705729498525370507986847727912112917506829269514413446096934222963152909075626877266143192832040638854297870192305027529014915655029618047254002832235483771180372804624257940701088235130348021138430690118047320723139561433061465413204071836910148081445512385853860822148768174072290421001718283966393799392258831132034027971506693878332156702724829916717448032042908536902171265728111748155041907891200525927945438266611481776094248555480568521750946219744843109235426360183848256330406193527901216113420134570666943541735724501124168727052112292019153356374354834357437708407643120453934848918402206945129239460226165768750112325198332839960555550032982847238607244457993894546917061830483161104781746400805116584515023259087047100656006430807586520563811553190427164629580947915306403827242626153746767617341568677466243164668781943471273213968468994965794321363948987481922927172596889458523149849055217999837407755150387397342170988511194732876353672956597794892559542786714505940050812589922600374003773334244767370316764011215160775831482338719808285147230187625179971288892255705932443131520900327499402934522498865756872193032659868438626682051223718255571998488585238386364953606254316979181575860618729016644885843864708674612856814391746596969832923661961896490890863809082717639192738048307727094532559870761136120474575768122933493151566943139658846636802201567291850005557965890573582819950979647844590673102319509776259736569854001404319292100103030978471427647864821805629414014023049303618140173054256690406439734272121586635407712928463306962104817234120483250953930281051046418174039723968617562660511427154061481780436586953620237269900143109818538893434703253987556643701184357224325017635192874725791364191709615785906681162789681651762262260954737591729341851885082765742238628433074198006182633991831230204596600294085955351707580753032696476017975783381850974535857355611521394840328641527276403639869836565868710357815714114584088753296437104934278238491011683067433355932256499138474089147835134832781116463986719140274633232290518862183484838773247965996301135741786299149735144293442455841843394537025905110840503655856764888694881711446880513272986753543500809828023137836369565993536371757370115828997609321930037379274137420551891862541169080034876972191539300515528752731106964843768845927970413218776806197763783065043463233778624015156282212022699279642639235516426798762454764270396750379968838024286580104893256297956992201755276723522278437353409613205451542146045283655794072720289212237287251499741546770362520836786863721465181870570147671136856688990754654458808310197932364011072062185034498518950578271269166497144205821905287315042105243278745326454605838999214014852795792845116466095234309202039417827781729187400048576013121202127389697072511594585329193847916324432076464760206943934047309446134246503771652696134427816315080245050887623009297479490418294016311342791291053390661066135597623851499042013030232314952534347793469099065861677603560354069196418884199342546231334227954624023765483845934735952558780117031243516244743909081511366109144658634181083221472419953082284231562648093076389209511864276233611646946641951489080649731715675767559287348342696504079880933826247323928424844724174339435717175957227317180706080092569958217116216961685462822621386674304394672946334090407826236278171239058804390956524056962717462505942970758243625407531167659771517270048788974330666919251875430402482697939593018766034453867608407915843728159255935034522371298085129297464118629750580530746866615530181312524202969977915088058936236384653592416756531831996179996977777387873202891618465794138463387446669585632591293693629555066678441324826038083628400843562620020607403106125161130003544345090176654935357039474676400538336169739086397611204471170093314711241405678091383157705122495713144224177698462961163453046862269588212740929275257378500340771604862954145201459391721052990106165832575110229159402294027788093139446810054806118579256083503782157752027593242941036448635795990263985894281520335393370572642428544385892539075461595826902420218273782726429683446935315631531780683076215452866981057708525551996431100295742407544977596115963784321742438960114353402574993838452665245816869111936214252418549541470481181881359821492759898444645380679496782947822876148736543925326928848729574091545256045552484147104668674302408070996133806185254372466419375283973249669223640895933150624707787349229926510074525801458399960269817568460574718301011449336266905319978152338532929026759673608806486720491226595725537111545133951631247015574535079273514540926418955712217626217759741250877711152856504007748705483742115278815417832336081716080263275582372077274853500907497002409005669417766186866033518269652269909156276930603472540723927650157039740283273448199471763556144915635787131603670380740306362566059647301944857111912020999630939726351910127402864343616469914038181719201364560715676325901412482251332458294451400721844500604437584042506784935040560017497643109141478974254628782297294427043306234508677611927052319224405651069026755801579839025211841038754775024061003282090669638669133521570144146271975383655938050032278376613309972794975166701780758849398042227666291068360271626912415884110142580204029524491672961533238472171244974385140419044413923959825954274882830581268500922544979796978692530079873408794947208821141261696051427834277380578006453867140206706274567174463559147221630212433326823131580625798963502485548464845803319238590690238247357679921579391894108163048901053342782489257310563749391550808424178578993608863634993018126468974328961984053458358774569770659242038017578183535158438354137891964552718251294811898846099791547152283804511886272570196579605865253468811668700635704710331390194716956846555826344736238950540723685394598304348925296030042760146996655213031689854469046415731852187986970319477203723224078254186893202466151500270994199806253960847252621568564155679529848051460764545368681347216118791387035310709886918410601753577142397861438552094311651400400290755946562176461846277433734477942508726769349813382222296528165155419234210987809278678739252146992517214999441279761438626533835701566428131524062721142461715638801212813838499225255553827061599887385194344040948781470440240967417927409729342046321540880173189999588344484579224673962182913941001468915025979560894658830789697766767816310969646383958748789750485634827338376419925811786431043218972976999638171356737209751002838190587871334373651227987946878782425728121257953581207456019704074037587501644841088472016733902314765844727168278970343081078322333755824009428121072820675890961600029697123638941619848098214299549183422190262250724932502518349285980742098790642253036516669828416320017156565951005014262088288058870236081464535950798734344248293688277466479331677214348921086576960376420517329638497419350230864709387267413636450384304081645554732888731510397397541289187023748541628476286298081363161628897973854121754160626542549190757613862629809753937967314651149674614156906905314316642465973674005460568822162287559924631781837199770562117530228994020284763630430478210080356646448290954632391323762106011743468181222033086169870789999964393643641142126077746402052722876195406659344013445537993298462651214427020810828582275533172846262862384824984286637881822657669047055370938704111511012796191476139914655122485909633888197978531435787455401924888402060396821733716559285498878531661917804865608451949132401695164069411938353284845147325962820885064296170957176127794887035975636033354500166183000217083905486008652604308275184800537743350699599991176853423353910081680298947793514487802573430019502010384816876665101221980795815948999270116698169754904947406670350463207188783400818005551469352612284401042709664109720861247513381455162321224761237944681373092717215664163101614564847894560402268425263994323764004907852484184176009682119028572809423310735215000676845052543672506697293760036604699409035752953750672170245363611577312271886181764691613353636131572837682095504917527470653160216965129588339389369747375214463345161680766385729188570869623786447714681189535003625165883553567785838422388057022965034846814822849250539617305132313020098538655604557137615807750961606712883123971080446298186366185517364650791837496961540648853784178735393434716066642572719464072418414083757240064669163629874838133162805581561924372648571349005007522623895379919453174338241881597862708602185845266987796311948307670310460137901912541483515101525629951194130616230370791333248346817977004743089557520697200776382269235224328087908177371404756994418783613794010727082135334880402550457485606730583568159956615273847139327867536037097321758010722344225289423348892782656681920686741148445789196131065330060270738056995400007928930876502450356726053898937878268336545347612243982375593464884484725275291539960198760489124787554985446169405401898666736760364093500107775567749566821989750783847864216061984631199730236629992575137975022724879327425828579470298522127634476308620333083943892897612075390273236065608084015771035135000943467223534304687145095657007125608561463585912940497948116653033158553110433948598334883885941666101544409216506485603855140734983814983749199978426465168292246008310289252893185376036471374857851084663018415752788399426645513731436931949912196122788466770972381460112609296165739224036637439346754829318519545301852741553941953451523434029906055545836858350353065404811146074097054869143566216855081518686349902875368914966012738203942867595012511291195832355708924471537362848061016193391175808503332326179499053331269396377336448900212329498003781974103678675810634746956832755181693384691020238847640779352871594274923232436049807644333915550905889140160128374437879162574349867907175455256937043197569536477724358002354779845810476216917176057193366642565073367431494380889344574499244517149493637954507787618854031488726885674619401979179946602167316077227199647504347244905660320172373818632803855173069974833391761376155908446037880543641420068651602083628141917512236776975728123393888916638009812177923860772113017169811663007449614766588718282619980800398597256521648272246187634341029001868088123763888558311970038872518719854124887586403092381882431098452245854529995102184614643271829009436870363867459102770100411021959203216643829217075942157940921083121163680515903224437854670912540326443254589837294124615291963405603003269318523686779844291835698223063836367795770472947793009933456413808350973519158937344505224890040424017532640128463610138159032539003876260259884100373880421250273702561752400095538909474530413330453002738911264822252189000057471336214000649471194363101168575150349120357295363521007075424448382358000135631222849912774746673853990161156683749486356064894325884613105727809320603489590107169408606812299685889649645034709485304339632258265435879048824370899901179682393523551167160899923379719161285023454580479075807379144041749961609074787820855890513901299825755367675737697087859828917620024709121461250896914918730179133267316028630936502579997270014276855495045600559302555074557714917242705546873216308555987915184781776444964263243822605617387004880169295789885534112425936065382184077151777289146476881745037526719273065524899447758611360920329163324957528890129995101931916294749274859063552701244060111253776663271011317865308828279973706534752887873700952537466954677500128503066804320453029077854938276848708283696994952140305259669677667886127376367866716863550980074617493765994605413359603818303238423460574348491709840366025599419322407496669584975767344891567064461546877047002275096251695614466042388016454169539539556789761591576340288304211534353323437595149226558300009860284419300709854885488183253309452905706226786059234505884017242335157941286162307850832040803775499652700562903865005246918874699894388814423097831928167237512268250497436603694183147119010007168525537369630360283069279581439599049175462183735837895395600101154061595700589794354043939444412321197619255117230911072655440383693185699284031222757440131338631302872292941232181770744515485617491539793311391065361765098048385192565134770076605174990729400612926723328385928322866686117728892557386183546073467331131020917349453384643774767118080110122228776527325079117143664429162905417806853441122147776627718613773624988178192487531020550001610054705831641485093527421552942912637793088488962207130082253192261773465919829072645075949412070619133715990454962098092396832512931025778843545490195055033556857800850536287776949936765918228774427288106010000692882368213232853470582098885915418641199626027572013159948333407410506317303086320199094237312409203670307851598571837180885796345454005837559771493466162226866589884227840255324098201138679494872438039468993092998505928944398304737109914158796700830190730528266598352997533373994911265988095888547144435469260989599189682543722152708397232595751603099455886105095937410154962272745329750130471539893720174497155071337024820965746031914583631785615066927571333196718475534229623712712318175929610885199069197625554999564208780311875996387435249508358914623430855927180076919670894342323223847344302743708182656479477216637218161255135303403795943662839622901841744471460540794209232993378931090347317747575352622735847835045902495828704953244872749016797244268303979374389397676662070153535068099772037637340449418663870287919467433608796925747383986060106042068538245643310230012019538440149441779744281786983299279808898702198200866036260368112204136966857642235965401395532306561265855623688480912353655604086702238948127727690539151776092994144043871655661636597654440430788014626003637014896584983112470431296312124612724393350962942974469855882828058627292123849955435701464924077769643561219264914636752167930020255504032024703764495315210616416502461538083910018256682688491176343649183209583599550201249569109750202638035758181139352835319752411389063985252848149674397035666675125791262582640078335046025908304567763353768840193057829672203819429165990181001109013714776307621690627464268419190751466491168289900418711250432376662303371519164571453244549921787424580181519829113066381883745391185754042816730072358831316642012260790254025541847993192701099821619053972655358985567897099838519291685627384502811914036156821113843440432711669797594814512125173655435663033854782247832021651082043455340399243458055814345863719420796294150960486252689697463764407033045675983455981043525359782979178844780613056613599146651997216457851433091470668634408051961674558340348996990118104064077544447902443278254495045049057412236702443304037560953358732704458381111171477348271085950632721168227077538470817981235041335213317406922390033284458714779453050177941369351712653309431773206733500877422498031746937252598257124023779065716400897373253963573017289603964242210301852340257363728183601645173056232689695864639789463117023106486956451419739675651439904151461656703782857375434121960696006322744660331394056723051516819774341320695923818157109930975967372606703223077903766369017104656165772324819304446182512410259491414533513558175485466034148575630976758097840041520909057727094779976699465406520354180288243131309268346148442844431763898409744191271998011179843375028140611202603053996688966283879763263504333094685640273805218451533744171781801074767187294009000681883895856976290263340464083960166280685769873917005412328317319466827199872592513751905550612652009799952038020552845771759109638465971203252203193663260489609526601053414834834698267167756084396561496315948707506258019425844018349682793604455661051031320747332484506247157727664755300206294960019419905629577828021874839395960400998975275181573824119340687349069189285183025578267627102338928639187006915801039687134456119892283391599967193882085387474899696414169385741201964527021102475201406893978706286962569368626358029412698928274872238004095522926354911726302882989823422419278153875892481048174352968714790389902773820813656191838578736864520721085509930563779132299569778498841016594308547848926455403838029819560690516407270883665370058180675757375198697621116671906565697499409874002257479568971932545942025109303305830267680921719667696529144837406271533079835848344490372438997418410556267655471986015409858197158909891693438268277855961874593576542257266200942629932033743334379726823464718023149217569716718816765502518620809930691189010713613660615075660289220158066135675793941269201242502364308806719785040753248195285949743525698629045093159163183980972312380906153300880536587761730924167912697405711717554346081166513149940288419509320158911159520674403214072564563059244402551256838824779230263773970050727428562023099755480565620300360314851111390584861873783744005516153617510472687126264995091465909971977958716131492258696953640093542294629612690017865641710105232970611130221322198018726305990432399239322866248022365362207804206558514658295886593752432740552380840773660375059262904263512557865931495753040836011189071836075881835729598693432267895831472353707289885572602371856746872555682019639439150252714824558658275838123278811255159007748919548682186586802259929906082470582329717864518188818754712986435234300238663993756383562018220428436717153666400322567558103239482586531422975045848168693665624274547432870733500262081346300367540808484064133375077610363974603603018444370830644126117192541516040901778217693838866396321728829300534286119396789734796209473205517177261173842087768741626483916001367960119657180350668549893895312258515704055359413109053074404633890424043341217016671618114643913006188334384757880144032989224260943274026924956950040289722941515993265981922698489897079612688335509966763567225667903590086565508607214167804975593297348205830345397528401624605378106988677476876849515321053508998794269859885364659562834008399763183268224799783040858423150006932453256478477740497590468104327786403372060506391959457746864858285675286204609965523788175041579602092871629582156282947561902434857703432200141636119085716856713447639879336497619442958619204700609827051229184746655776826007305753149914559353060985126489559311843381169618099086846560763143499410072999890967197779796008331466269132477943765369477267488557362758144059291248527023260502547457894279139425690315230203132167385595883415404498963919271347498665307139740255900232711065313024216225325120461505615447316323225646382793146498491689724503365029453756591270952965269771664898268886630329176409599382063688331418360941019819017971227858128051237953475264001257678500924750045492541108278221691943065489652991787613402812275124296651703289761633193630792929980047928692169372716905850408920251684748099758747291730020327404489297544228728595930730421805577701699584098565285010489142616843535990925682134393464020856843987232920142371059236111894456492444668572411105974867857150518463849496341982468818156625461607675694160602642032773613630603184527370219886590728866580890881964056071598166760404541786430497464206064680703827703516567731172209421778152138420094589817133318448620289235303525606768677246357552486555652559384728225537981888214721606736739308373791736296200473868587011129140788680285754338056769764847020756375297631239231418975210776247156802941221438443608523684002022647210613393885927040001337774907259718432172118722443526304698212013994574116808105606844017929801841703037577236018955127496793710005362015460193054316745813049357987938621523210343280079996172985529140229618556664130293056361005314861130987486124560726880411865753109937666010262905974762733024001460392417994886611595586748746207507884869158113575525928989394736690734801372885617242701464032650594196876417679525181638316580716364368541105874266839398943290866643532176779012484490368322870832408371936986546243327339514360767471325570561054758421514228418471710436044197711619419095390097853746726717799084622066028531896883594054470467238253606427789216826307459040710587610961800376120943623462468007360068069785343802267384588202913845865982342957753051620575916356777125626664240416114617617738188980709348126522276434244692635961167918906700737292476743617650280608021214282685738214207609610345847717635946887121028765264481191613601361808380101636223706232710621731835023595001481787381188716529696485326734012801569711275816475024430215513985661609880510371565030459649081473989937439132056017310761256329646209416906455239289845442457895118053105071258109611053622696682858644683164938743913232966616335549783885780377110301218734789653501699369818534348653851613815473488278181313299626234037115408099666088357875438011675180678418857979134318524372760023209116761157843834753330594462966953944498489837342252041884083682497428359292949067313462711325708032262359384730906173647634292071363305206032502588150926502530968626469901349785887933465867803041482836418179312893232978905837243131070032280706978167789330456799480671488715768873257737713341193484421443577867190360648106091884568188957850984330867709475884100296201274824724205728683926402500732162085188982353824819115364554348260667936730147229607242318589387374866362107621159921915566795292119003862920918851631157277912600158513800686659749318341876115530791292084484811826738033728360953737847634303226268924920640332036056469498195712789946251513423825661150606889039474565774420629519265418660108367635814309626061588007602068811745220541253400857026385820401468915480423422738784170794785881318109510527465355526413411153278336021129042161966837625732831510178146655190751187414804899024651208407204331362510907820210936666900610927824610756441974649064174119194347097544618940874529163081305083885088651181075304133671820372204013331005511804813566062712126181310605902739725153546650446222168243952917626914111449648347234946076244016289076435350483836951007788466014444616154605599397984626412105570983875301822458124278449835446345887182064455252825466812794387752793363084132146407497591307582025526029552731219407311251738022314862690373884214188711967156183557606913332038240154490911594606495928761799246359998210188555805452207260807803096614190884627649281515518199011414065008515819906527178977593085591113804714611317001981285820936940867518944790426570104679364425443838094767312749965237909596095712321487786924353340595566546550076185960633361027855651371798972978596620124108752018359532789055565790666995829158872061371349493964056600244191164565295586007584858249483408834784613098172528847543037694455739799863100621132761485112150866991518236451205308934444369202306910592827960473068103079319876857314476887109336654987240604083029376381763583752537565220083053617735790853597140007227784054981916640672049698918782284790139801544206969770018130081848502870228748499780021101087245285504586495620647975773225025446411087345342156714745518439548654919670937039806360004066714725446608756007598121042667398670841806149221252332892962413257379772670377736801025793960089812130684862043660124958942614878475110544803213840295858673620538223357841419207322827155564463376217106362944919240856734633331913419126996665488909600942581644714930237356147331697500320283571876393096744338095007403346673575681445901237629985527192995655459308631705564578022169743406297505405878077145056648598825201525967588863130811365589299650745991140239982888615189790693919904084980909722002857203931837686257220534140836181828271746175907090392048330563895404540434023678740125570937405339165358598292912254011827169765857829830549839915458510108179594246365045640931183794759010412792990134224942580942079849687189362587186311111947036602219262025715280527139453529900521957264058058818262205412846966790865312753023824188299174593149528854268846740682462313784448225905902899200750753522518890926714472207808723027859572888961686385411766324101921637966747932973960310972842166805946473666773238029415333987022822789046823475183525274738459515606849181932806087231885481587011749463429459558546008163658653890377066844748240727866190040453208020648910165424222230869674634275354046424090127918656883828219645836888583356080239237300548481364304209165140023805411561902541022614838762187773845154883421728959709273280883429865070773066751916352846791309333689203800512772173035829522029051953504875552682846541711462545821596781964905327005765215411897086445722364462467835614466721576056321880890308291370603764076983992464032665825261625950315352493358707973438529361523260421945255497074349142921135147732098545291370444147735582369416977577348522442471213883961852368423932065758801272817114464494914135938859657899115316454904725829683420599329100013793732089366842422778041981737629912791536805439647144755646303153583454176589175679829955551366540735123133379668480516442184650479104860792770830784226217352210561251770884905741183049768703441902437451874519499363007506660686055436702887123179702302655565668699447272841291699199849816934907684580388720464701021087215224413042460320684020684199704660741466246832468247469793626697747921580983539900519156381422703674520038432359485876021157744197911899732314403498621880880317069714577749304586253733216490200032815770889443908752168250382045652630956869918214543735659010138254765995774354583835492892076211497992590131036532294554490207087884289241134681099052040797024122919629471532131800783550680342121981326616963509213001498322179189321107705639936072724669037909566224516190182722396298837082619995737103673909943100541566892689422077785160906894925594220607978538023093229476230648646982805143470847350528419679537864295726299953929994989776402837855070294708619859099262816325408502088998201331821580669296403086356280436399063750991761008384215526037882253073501237207570577850181531040186308092289722985495103453236069444009952519405204745549600462847272636933195314338718340154628302063062232173502518760919105034611482567695480254087883751391583127296350869689757716989636844954457028908317186946607819636913278405886889522000855638512043548575502952813308533071642443307163947779023692602327387548159693249393631284814067539049947746011951370598082360095695343014594585483649773963848734588986641700652073847835745018893672370368943662554631308116741514239355681249499806384072434227621026987282876490417203313805183512390708393095317885928655219546097343600508420336064432409092947643439420719302719721940734865789353596396340737373136528597398699041008008943868063833671915688291603699915760356776043291559393035160512308528527368697299707733562949967315978555255287336468012902801380694667825247386731286020473189983164944590104740921619676966863279313576272623115648344879222350440359251300859754777297762067546685012696921844613372553533771861656696708777248379067998976415872152911072055916102778825184258951729386782189352475246020681626066099327039402814825475431659552059997276156622335551573205837097609234885406175173387838924863013940505063806641703250401850542092065180533453241634823880236009266508576826689797708740693966621567182552459013468704169380177747729125337972455749453102552443658216121137448641900559631078000436310224312436834842878052460426113158742681714851346355097291824269238117561356774659609398080482130809970857803828930042190423034119495605072046402638262522290355325725151086125931166457715209865583034760003676536488654517651394147625062306104315527363368794800786129348444002522393584442864663394601172996855675008868167219017509035754885835809990238701024578506543051422591407778784039048764005563121183572264620043964877895572571096345747234930787876813071466819910864068985303989250899615065805236842233639421303632906537929389950122509765199850972576757157757716768941997757046463536860794932678274670922492547213067143684536473687978185166527320182149959633601983099646765020890997876847012262625097601018824523221354003434286294990955896982321510849482535674955334149797854884313458036869576848890360126073605862963871402260526969728063847863888634693074245059253771710260580328873945863076932930640760982759571878679131297903422322039054423421100256888395275807300126528126782550677407625855558438441088214267964948715923775211623805348962161103096518045530391175330880741781312808427059561259735977216193260682099753611624388056915455937888050510440445897876513025884743263764835259626389897722171833866486606751417342479077806068924310448382288158604173054317922852456805480631998965525201160440514509798430644868990082052134568740194599896990212392477023593750182057977564137619158221024810138674432169902074970979428888242455320203418777734914148312207479371727862059335998413955920270448526843000302750951024320620515858370458606945030196800948656982037395994817854311032313797270707173275451786246275786822371930796363651342217272284636346205795679765460040544949370155831059721077340914038643885533038881746612634790876083973724405394443611443916759346742055992173560699644041197031223913513053827427416405227444115479961387114574301291984395846667234000363842292507024456636112808662114207204327293842090370594760460896904948037559533334894380295816615661046116019778455175811173179617556707513736615437075798924081494624764303206192912544277394959331684456823499279648547114955279236915963766039334199396208132365208262331552802805404892576154154416186737527695470415389090979553330848799688519362839117611737454805425234738096065755165739948633678462398016903017716528559902494705027540552981964228214577996070639546732061078930539457533480067261986866253801494884409492573222672200439876468143862851546988612679682735170061571783661731969669056885689431394157814940544388043619834518889350217449189293489577496328030720814924873660754699473613067371919719160247380569323671317909554777218627117564721781943773042570311539268163845738842857456569755912540341618680283922000341786164967182642140332166571967474762349887087701690520080242208621948102051564722060365309008834384794627752436206789614249357378371150855001733652889778120001910473166926880395777465077680731032131683959769588298489293609598881741001138124651493022553307822823661765103332402964437189151970085512601557256012284998461243065077095505457865271932343356871621308263104574219583357778475730112895088930933193361877807961865036901171089934531085258256317662866272826573335674371369536444971999194576645991862384320427212069418894617514205116356994364979052930851253630475566521605545309392854997057386898887062346150364791855752778675356374294033830538663369056544865438725356846450825345464473685115244391706752979985265968799520092602476238740974917070026104656975521953018059756639018915980418937043409640799836245378767035992334015436331736954589006342135366724084095604078179057381489480731133457825691475943636192826298890146486070905051805526444527730408065658621402952806840649462879860858947190441894184843417375058830579853529129786682435253720372933523929846296795258505403025319751907234152453890613946149101998229356733203751528360282386562509096109665759513549366913367054804102468591010640449216460608814878674047978286933858930082673317948271337740100955778371457759413954182131667902771557047833980314072903954275084092995295072794269814289687910550943470638217008984386056335319129517517778275423304655105186433964453461835529364295827858656302353702427081323913641042554465600329795413034813414692799369122233008653431664111560003293169846233412763242977490819709710824744044719546226870775245758114840293489386404330284313043980343979917910618917383547833984642038182698074048875221763607699205549979424233944594300494144253502060081100858393094506631822807338787731627542046386994709443299023977785624110376634078826209781466556771600120999821626114627573854944205010138783893379328594493227726171744571781729253359948591021415095551605426104841656151275659477653543886132710450606622939183570422163825166688840197110509366296154607052608978888622504175155378410966594520442674032081638682001298019163135495180056405749918064149204769388952419297183677766061835782822528282825337434520449738974809278874773406264441104672247477346029065067383770653164013789091644003655521549631081494423156918568080678455985771373844756027385755446095993505541434586373191285108261469147303122060656901965538549816454051592838585394875127213307997770162115046826201244208891747041315656767390029848799958067837306880965469494693751711703548704196684448357497093168685193864343675290461044474248914333896578127660873442697177709248756804536864785145460469748954001398346529162032978691510248149053379067440612523896424153300618714161083180276322253291223183825072096834148166090952206767262778314538907944737554017580755998350765493497341470964131837791920085169026777412257880170260525252967213361911381839385176484046028645907797220369254356912916289882854106765872272052674534353807144607942119003134696796803129933713980003314833748234988255148667572189418930400906431568043220555393704847021964612963443515613256939948404331524862070376018565282441535376253874550621779847950422372931592168834392426523085446144660947550933598163796968160890363390587096071406216410950718063229514909497009596583613514731400813378529607684604010767027991053918799021836720723265418156434683783013649873776726455846970308187167608579350731429293207602466827730895772899324873261158183182566128266482542928323252997289040412757194631976707828248231707757839278531570293258034721149199464990195440032067259060488679062784928672004907361739525839686367715942934287692317784923129965867033973404155988202326663066933080573296659531451088887060971934127730919838824033350856459836471649198759672990221328690215395515652446537926480945410079409557100247150038729489447771309875232706611236405773257753673704556155108091439186875370518789424963939289206666312716624973400016910173940842037393909566831878233630235227453282180089322389830429940494397513559535391901233380359288406876648167174502151790099992783975405499209830487928940225587586471006529080568695368133022311152681645016783952464662702010363420284505282866053584350550273566520099658236310026990289824469238750284122953475646154981341420499538184617316898058651265458481740278038239674200520991513148649687666308480700403015272077268650705178887904855146788230447827163326993782385006931715529808029863205723375725646588264379417624460471259784696042451262377448060120164938912977911990605199877552019669375899926205844098740518517803060537333600677577523508200029718002052743176057603160914815193572578817745212634712145905101810433954012856099792772353573307734736962719790140454230937991174026059594001735500609782082316247220762105739783492824958392341605624399184892597175808841794792261123730205522605336260077452140603436856808642685680070198989019225494251804022487665386214359065334890595332206941141044163051196427836133071590798578294257209670483356571667817912803080247621634583459625498238638186469661719272701645482196023038918356043540515622149568839468650277951195172510142299198806835160796519494312810475946630176440654197210469014774743305609243282306928604946340755615642380519828280024101294182956697567499510620238530781909192460501022356223200873174501530486931829665644418529497223311558847728265105724778499059167801598368276356062625211504550285170849279497011587689302604941433058891136400617308834036337986202520143974703735625516627563834915692392987610199936534180479836020796948971465840011206396915591294318463038774818245054634825991951472580972362510600435499270707082439884511302588054983055722718403567439208424405516139386536946753689696789053303019002057751416388629203505094661146714153391594950969592267003325462362098629188767190106878246547177606417473548275661890698436810171538885333702040557672289984995340839556270668892285754944606192223494197480773787424718302820344656099901978093937939286378746151298056034466848378923423545143298431889009496498347928820991537924125465761808064248612216417279107531994543020528392707352035452179083604013142307183196471670449874980621947441120193115910895558263221605174855507720956230514695627723672269099412042601976365498937854636996955131447370198338687472692993753765970865465677765163659132436148271272075933231087777012203332290656776604948779497307367576260957661950583717954789186472364083103544958401926764802838163388047881927352092869090108221692218456940240825096505737248050383761537665525275581311359267963711275136471861851667205246887937006258938543542439736216148100662650115935297780600256811925839577123520977929861353787012563203025620222744929128533918950752266382170312339220403586681782805891360722686400815958899288344043449216677942736117874363418216659511034553528449952883938771831063706448594226908946683013015021791191272547780506636833336866020793037187479451581574492815908871618016242983475090153158592770830858806290107437391873526089712031492795286997051951848922037809264351302336048558528833256067601150257226708162915206663025061193120974015461847742841778257999707002017370646988838992302821481413251214941874657596906811354603138590221266457535971983856314974773384912855952607495428442786833677025967152278920267484808358766311299246358101690495888826293375059784429922824544195025791816145828603767214639673423756288472095326454917624135963478314312070428199274606382975605263905105610638634242538003895689029651890324801109166711424215793524131596216780114266398563931623118893503263356850249831955390225956281649730138102791510905603301349574939245393046304272772205590893934147368258868734807333399295395432252849062232918330521564109085323702240141145445529822361843028639035227212754716692893888468618572830520016443961560009445048908449121157677895423912320248534445801537454113560078183617130958784585695107933304688151938633205767208318261665513591373867828517796762698531105126199655148736452439057968048265774220859016560032139814435109849548541201684692854567048488798415279508399538622212494782230757260181215696581577570136619530618344206989602677209785950282858290378931985958267109292346092371664361119744205993928575089331597335533096623390422621398120104595145509481233032991128461281711569799072998576552557640436803540311713250594697832794307938206894467042949395297078984822365416421219580296974217261742357860760793541565330099683623071621515031500906843417448033395480395641456842370549687685108554766779269034977195409545715209161116451541089573073091243111569118898627029910024443809037832005573218668008701817724640827342551332630393376821656071444867277968243317492612830187454457277109924422320309886166938939939439089194381641376901497141304946624259428763202594719595107541461171894308193313461871244569245270388796297965765443107811625166352496908980239429183854348935587135568663544965953180398398078251656887842721460302565683798035713536432044301456397428356818167028893008333683598213620042751329720634223853589146206617628428706196382116920010854596711131333972462009967103195812380850437482997854799252591921684790754748708835225429781716017652396867289370691141651535782746403774596563594654945571471525866494848364438007361558840119281091759967836186295404168723043541120800680105318470170728575769784544871802145488763334834459587496821372732622419246594473187282078194132146707862050718163249696442541729452364039554792622394164984639888886826736185890190203931732158621477089999608584777006013813466908500030927874675505680733292066319112947370604609599762689177623416932610533918266551948043023549964370949500639151620692486085537326019499728789952682793309544724722166505287979390300014808037593620322253889967921852858472252894177548101315738292778435532976310522326147018865727705490318128613978487383860199336640318572082070804854689518483454892991780306795292200881463383650872206980391724493114540920247002741753171904888674894479964647828351174571705062047802383141655440613719120768698664689833952098176954200025956880931085255464236109939414994656810781248293607273544270491818738678673407635031411828703719778407225829783940756189553816953472001743319291505537970199652889833510317543915527303503475542002781214410686323619932283032839426510146016256972540217612827184262087557671692431899040627307971342614666882007940400518969727361295025502988361917722761716532601587042122968282017587338160252157785927592902575817997737897965959354430769937193230597188313241981824371772349099513352140980906474807036562623960512458418693947293044990072937120729552587532047159644684027260794526211281343734523024963192049035606277526799034839210585216840524842015649158484598389574904161450936096779088180038952052664181427722754891119985567487731796276075738558027288334673958641386332332531643183008305436115586002930869503797838069765630801727050374107165578513194929937433974390494116938681227649167184779759784283226319570819038623683318292368731232132103644251414267397013479335053953812103518801411519886403904856796340085761265227925009270477863622865537373327271568308007902258180171497053662177724717779991228704620547655026562447341110370488283795408332290981815550786258019337145137614724586980528477811652189637899947183634463292685555081509141810173844704170093663575273157180947973192218649121659137713722482137843826992196396404196926087797744737824701952735127947212573081925873139366799902270750170231536886023668805434940346626267053881295379835225203371016464519068883077508940443899464371324962064859079961233258082421073243719278231535519378008495274314562175773232913637406744216481286635109208574093921869739114452028307628178521093498433367346881006293829931131369694295693451222972067628218996386421254818409174599833975595628898631176003332649356966428820954772020956875362924751067743140469267548683511766887819861498080219034574802624843402565989815410685919761744851984962796219884636709013355851157710653117903401235478636482521736758138179059800062197691913123942132467909011653031544240995176386972673379775156764546012093417120604366719747986328738523586065032244838449625463360376620031874711992487891952145274568549281111641778343610932100885963192963399409418202457901883322760666161505270621734322532711307517911979845428581902512399958991300404266899860856337741285788075949516273873752189210008654124936753775647347559872038448358884779542608218453563137078700088675269332797513049721305126465588697404311547809967153087434546611514873128358169765162120203786077635151056154662976207565086885349152679974388137901135174852153352661023716359514431436032402226382842058153891957545981963261179975685296064529712675020841910838421275622467439707604919351101464214376994768942508753061219405861137603798040829878542619589190039445735290463037031080754118289757668010052936981029597137544512304637330821473639797351659529855092742256564938769986204222020478474323181882660765672634053331289749015387700833948419044312271906085339394831063983665766995894480885230977730612092760434816847266684003054909948886222863815913380315764799834635889977557326829501742638406815023442893570297284544359503842515336366013245191819996847350730525739854116148475955471941702537472083614284539879970278873233439959370596170355256773592450122179825173330709099115794706170010862274935085682309133465604611405092436129022524753064581831735750542084997954158255718408847215358305167316423387975523545253164141448604781550939648190760549924462502676185287718816789597057086882761245207297975571965192187908844497627084513349268778284151258168481786602487318651483554305646935720590669348991197407658706358568872384324601060758979903363946078731363118196202691150380900960696155652436766367025685797356331440307463375843670542540697430598283533203490182661846399522481139665040844767148674355095282147313188462765923478613240756896034599943164056679420527203853827586506063486463534545199480375343494697599146620558201757121483290418890810203403995903089198392036837633270426694234580469653721935280302990720429040269106485818815375305331847477167152809784552217205019241334227428658420985660444263697132887524497912037426813951125214699335061547625301245799534211174788708514081699154481276900671039714625911047544722320495479809721473133787325992316925737454647923588634295422552894998950646023437809766214568290186328958836533838365185563285392189453606799056703754190581945032860672531310523615802400478767850497044598452986083230528131141014033664861900884077177023796828572129513891468202533791172615176002383480185296310054439332563222151620781851162661680129924021355327953063423344293738740541732046388323314762554519290169295372659011043467015799358086139415298120707894678013418410078807812826263245828206949214032514788074777812457643689987538321871567081113782408331103215205636243267969726723921206868295612966580933546109652065711642831091440420559889592069054686603979539390613920202929247854324024611986789422504805537645358084515381575198704230323453330456649801605601656674146852752195168593454017632541006126728854668378559266332972272711891336792152199663681048971258335910362172427795524583973345683414387653918237454640661868975300446129009040255064560038198964525243935197933049290839887936065302365755233470844194414300624292984851466340119156870598374848300170068671135900057931782339232868212026563819109662656416347628936691813128561029653011896316811219090922706929286951009604293369357380561485905258772716099969929320523797680289389083108008491121540760758087751908337719546816739579701242668610674852153047479876118433428479223419766055376171709463683450898175189167944614749495304421080919937391559457690253705538668341731534617034470491637648275201477427007327171194687061506962587430806366761321853044767137533093215012352175491686460142340178179264994804802661711293152063105832448830587403327895898428369799833867697417594581890891130522907786528612397496946336985241819121969850563261594495894275970415105361379889732855165247774718438299147129857822101827207331811558655789270643964510128415883403629673919456284045275071659517697644742134928980648398298873779520010885193919710380614267870710136460782664294169679812027919845587774553047931135189127682936431881584172456649091703585301512566007371103460771110312423038953588343911343643416480606989365504146334275260875053758163640989737656861004222330115818259961413712650583411313646735345302545657610024852795241545519493131720280502772981928343811700036386752115191062107492027112868311822672750032849608042417077432556008041522203436297570766499403089302806328684203803248694901361672020872043698926656464801980378343611958968917873960942857912903258665983578671725607625381252035763390285362314144977600386310398563475201504209475357479506819472331296406605365457569283828792780540694216338302440436857618788229347639477505814575620912457328454668448283254077556069781669667719591272068457104684428505801783450332720703515692456795340672457505181204513199254892822732051760323703032548820143591126263525616364200196122335385794705759844692737017275938107311195688614750586523828006646297727638158762045470123611573297994729611031798162388568518298901789964980937995404633193588493523370749012697090209506346002559651319832633201054102720009090806813410917632626009181267844293169976141140332983232364385349862460601696504041911970703583527076605254550721555609459324443201129123299923706992876430637431982190041381082141774443881983146292897895928280900167094662187274942209524029048913130793181145084950042529535393334907759905460449892655112384629261152254543912083035026291948391704946645037071653172812154468705067365420347256177281174995538398715956090651710834775145355444902934279635170230854619268975705791933924398154076730040275152324528310069743902564060608494652518089826574517530569883254118262452352229827758278558818902064244194553985740821787960676383304677193246941044830736409873852583256269978391642931029435014850533543748100504031290953550857251204950422054924297322059486088634420704875355962382719022208181859537203443965383627523892494519175382298279401371159901659138559666945866639373101746636249594688459375183087695458369894344990124133937984378091325334514732371440992467066042646862917863627510352421499981848040339216177644459266426848414007899976733992286730124613754311695415390300227008852447112892623007728724712847615836720712579214571874663101171290598718371569553656063727145713956100921935894386496003040011017773783002236473234348320320749428591781441521046037026178412647831827490162018567370619201301270364507604065007550988061737727286330086293269585963577749452509370657806799372780485295646343037924883242138739910206441229611088376422536590307589917886939958575939084849304844845680694303260153135964641083307903205340706087853451732436472825810238982277589147720538300778518525309158947655116027085769721891722363971745244548968673802599952131934971792942401367473414159812346875534932108848379936987694134198549622420167275300919815651425940227654805630705388640479054707613647415649783161389903891501339400964473599616796253008318245671800207388844254676432218226228708809972138917007325350540861812988618171729215700799891813855539442733902068201187863322308256067417486801581591905964699250892384639264449129297525898501115077587688143953108392358279578009074106355783773528318428388950623810834977770521452882652762526424980266130657496372860724224062269363012457363610221144353932299765815300616505488979363774860025973582703748515198797798095315023902959448542401122604478102943680791544381666617247034152498775703887571342371882309791349339374326861128905616075041646410742201736183495943507817003249513940656796943688657928181652716760294009436696683519254793729087740787950637033262466032403782685756871103441009157760250833928530950829507864458795654842402154068916414222238905850116638385046274963023308819233648233891991149386733655008327590323816468021907973336969365671682251757148964321133872415318504295550066199028377758559495806250583818450685850299007738158195990642384166577519754456724720571323099522107774380916428297772782635413075118120430803498232404486224105677803214973365034116155709232417889472433344111644968686340630936601558902852512055669567650371936077263627329722465329620472017134724085040816890222030754236972333276334259018291659777638547325349929519431283030646978240375162987067373533045699055002324687961008464095525791752124885399081184954633616812632243376874555714026323308202544815691804687873195701911941633826411775934134791030840900672221560857777287012366446401070890781473134822867448970977447197985297165757234043119137930783517779471017118753055010891894818744277426379057636777430821388204547565765152934038419338033999123627981876670618787838023587304279802042959187303169478031521051395481540337925062126797324228950255520981059619268471808881313997677352225395143028197214778683118279603693912942646002881780378577050922157374637735019212550061027767569007197722940434797585950817002685050349421951840442121991298065536918647445480052913616701292289545331039585374162574460751959191011734414625369428533653721668692877218756296713587110792154381692887581027238864425241062360713191386066527062925730399365251174564732126055414833915134427432907123605299199561556089549352075623013174473496914749636360950138444683443042546148154066650823385485269989639904843419947057761582646306209421370420704575497741934770511277815466469929096430938306700321328355275089253391058311051262693548162020533432019491576469330585586644690556173994992608659196093519429652358247285440033030772678869504755505140864575787224423726538587652469510406760248981891836650661268563966985576468970627642425991117660490265667295471910928360719322177172862174387157287904067265229192396419650714814123752574842496474039748026202663631832571072889264272730385506313261954842914168306232895910721866624138800662060233539078805022845367769427938836726965269227838602401663924532276380046708425945468644774605297654354339444963545951604393168601505071294064711752948909726280679079257324585992323359469441598724350833987316517232597340076766170543184450654083149409108726712157875092581892945329161270787873572893684045794300019183979002533935597143860616039775682426276755268141918415784340312831749245183207649859842725252373179780286137420985787487685656845660250227046080218478586099451002213187479834395162880828086321968954876334041546338531227590502806793830890740681466983910506162193041659314236306425562976013336335221569767190303411994183064370294583024970736024750393782514676904646912476602649532682950087579305501771084799764864469586414647817700018223335936698049826759816023640524925071992930611612097148762615182705879302700977610244916227518525908279137557993005734629755813918071111374931335195948083191719216434101327851254462743788965882460873163995964324411609571257090390941195420988157196109305755790005105606937976325777319499792193588123666765550936298242817679944828861816450858129601528298888339095457208861409392500028853065574323908966611027109995327869682845317780404369102183553507149839915621945031329603625761211103792475731927487257389534179623543572959884803416503214965191339638940628661108606066454535065961797202932538289609790053100770550612576545214807569390352990653766954583906948203844081688554001394493862908775111869121778574482100365772021539842962751429171571645928214847253754380845321753636625185845688674697475915733720919192862423018263059520062479366338543232271200949197733408602316736408000971790175343685129134561732668856688618911852634076136961734366414748991364124323719343674857290933190905914971069615075202731064134112649137042674927990029168785206273921657940691024615535138997360872523537850116136790302293426813944154433495752330617154218169651729042392987402664563799811471761182823755055217838104650873490495900378779544965318174737137993335805375190802927084286222294336622164815885365175325000274168872959030150754671618173933835264931434193137275890587617534344577080899091793942573182986322835675656873581836031985649714842114333383274907583347098032553885941867409601971739121206116303823407560744697110139220621565961421374104130674661583148478086384750671579098281838574394323052645073686049811394543099456549997431447430656511448239898494023726108883015352529710820289380204708639561618814120018081726580075448106992491029800748301248812228859697990776802483244569336024816447476467344620726062806195599910015310216650078460486256894548040118201545228918400572876881264295455706931543779158077339584927398920706750844363344338092626621885522552306153211105153823484770682733088377839585778115951944505678450057485858447078048507491984839068054715406499511331337795980461935520409584246073079682729967500603744262080280988916733368435971944786431974938002546812894033148218780375645152265660331022099271723982286943772059785622933094912996683605788260041448795044844085565899792942148215369288231015011139996716625036834623275750640779017099182655472254270437478209289620002045930454733852765341140032490827651735480801612794237524649166287595472885454704415662138185761327728987780075025426162034374465225348913387973489228703959672870916531563511163110029885158150109451404869782369686187557092681113303040569022673580629339725698497001011123340938445954800833581347731760593461984578146919203833726057371079097431124350809942935462139401950118512656117344347116110205969048654213835302956648972077595994141686936235207348224359313251861558508284883288307165387369852824087239357312242733078840417540318353306004387355449620754987592858698588028422037934729019409402591408881021843169795389847356962873499098795491508319738654440279993055000308094584638707056493921636058284208793480382467502608865327374158694574902454244267703660250834731412999884083775711805675779128649459453108842462491018149158855515070545420415589149671647186860700164630681857012011898275187207104223015852500891399358470278968713678164244974300511693879852842332240923191994753520207833948347257701248244935027863200290629555939951916992846853235827747685207510204466937528978528422902893046485533832668279790225201641222150642123766590553813455535910949403159325113399264908255468913816618129796764161005142687556357693134079710544882213465166283698213958086984084821184199118508201348811610776416092853848492297998261813009082510994094902895175316160491276841586243908086257362835056794383354269231518551970137260327628977735054014699691792226792304189490105952478360028641347180312280683478797520657078331672702887973981207106744422544233465459838385114195179412441832335950507569749890785678090884093696074771639129873023839484193112269911301809250909318178341666484592524340270205428804471622864968604290987152520805180715643341294887080711524139104124918748273892529123051618601740911822251134118242250838372960998509224504318710737786236113502878614666317388627414584024561692690906055408241096157049583304197897630899798764519290391742492035801793812572627192580614675793242821002417288062776259886119451690427739805534590118507062201445494013411822299922209164505864559886082548832698528622859880622689588779334824374186210200548140932441030293002506904373259838562700541843267941786586873091381998631220447681028913328600568084429213664431772024718669903987106434729469331756281474984570477641684193662554046684240033805096908321118855331977859492340596522867711135190669560797289422658928632730614695282198215742671352766633918959408697415440186148416282489180985473390613396669234746929934288317179962802127118324642922364098170396447622529955797434714381434265468431295395415040268115762728530177020716896031187130336048051169466750215866216960751015600997639179354152188238223183041603585789739008938780701232581816996135020611145984251799400565995842864486555595096506240000515123536792357128612598076999540749277193241538744641816680448767593912321848482286396978183848361953196471654169032025970132452184049864200479917827109193917030567665442039424059370334379640747169728984135198149966428993268424301148730699066335067467095572208593681206679033762412377045731540974453255686037357492886823481176639353537420485351217913889411406958527540029041800138404155861403793469436642578777496486570316941471327156303612152050839960148250947158800198597607143742257187972274389752721722545628795869197119822247252342114131075094612704456754753576804254500369337727804030884992621131054080457926063995617250928460375553149218632508755958400956407907542824482595038334536802869517708535360955312800664410200761533237688449034566090615027911312262688471075566893298197017698411023003403667683905666105573037768107203679724219453992026829608677187632725573615367140685294797035716769675076905880691667794826928666691849150671761850721080180743551743564518500861784904402789137800213609303311237938917391237369259853190784398828462213623130480314990168573732320146982004487598025657306607846336495934661337830038238165701939768657179620812288987398549961061910824082685362760530300476285081182124599734548164476369045917742486729445875008323095951529376090890594676892121947621234028580381314452221798275881793914166782576533761681160823070363247881608537244100467077490082550508214305710038659106687190586672954688502556625466031415036004847080048136162507548249921809726465137110284894413566218613652233602753791733035447681774118067114220862594398033354487053380734963580584381501791468045968254300517920825336621210480188669332018198146183299044130893360458289236254309911089207701262242076545302088097477185686828432330845472696142080333520683533750353274019806278735083628414688314795079141278580894817376475034904489483402795887155020193580627483671278505582746494578896515221957846773508195933541537941482624163285988977094046579197876557775183047065028805034119887358338578616089222130185016079405297377586155156105333287941504910172958418118747746570901615463681549821630161556802287708073650064462701715288668046898573357789767058696483891836770815674324058162638704326198974972500101904479921041941254523564989771145160949910094688758345223455931381318094655417607989342438413813573410601305562488443888926363951085519722826845956873819621928132883940067876631954279640876222860649861336486607613569469625546234950760112257540949390515654061781536390764035284642008120335362086268369735595080894214260592125989368288017631865737904213777464162599441247395158601983426440153943427445223920470372749872738444187009981874511749435748922889995156535597863807519482585676679167911650174204884569558008468623082979504572750179856634932838079779802650783935176598185386831024384247477162098531834295206445008444940517062731314802659026828370697453921028131824950012380875110153666739281436814945933234951283051290908210015842671342805260154422165109531450021570879488903156633615169946730542208736447440748694596761414067050633302862278983948978395687267842017650136263573962978517903517298993503325784967820705927032916661200133178355304507954616584763115932131297213397673461207859049919723201372153286512418875900865154341502477977832796550924442172443244871335523214634105171920615863784719833296518213778722917080526455920666742616495641314279842614964717340776557750566298906651478776687592315814169976684751542840534701987514405832222259685595624001021231091199977973956096829196904823737385597162388124725677425542560553983389702534954735664582162528640253522616443580741127052948714273829644575079698263534542560301238577453322162263008621918210719369974766099113075688656671972625806062383038136495251738796033262928388496742019694337155327100366987693280450929692278506263490545794182369289283097519690290974390199732891303509509862862280348371053057559400235894483236850050117310011045378388463507293541204549064852847438374501774164262519457924438620996153150117579794293842092750903952151747644783443595789876925772795763098572774629525076160588327135870614040183638585928825473042756837122469952869631569994342535453695505141107905638935177388965780815790537373928626497549203644239721413594139645309020650845895682158291687175493513116363211767431940766252230183428876747495496522634658475318017344826665880982240678297916567897140825893336851677033031592961373638265205633381384678070007825190248314216492102549398978545422248570308268046344798105587469982637243953463407491728551549393591703736694165449924197342004432385252235709190324161655317058290315956753048569244660895232300129442122747930686143076490079799550445396713126934399230134386839996203920526725774411890752236548919212876706898500877158207704829683098821823295575743342129025629530456227085746330752219252733468097484368494116118906540747902880923730548394165408287950272480262893467837051524000679416390408817558715198869513587712852653705074591995176348123282139648979557311649111782302583873034669097034191146254585493269823248449202790858523518369906972565585782717722532236277377485132092082560766093226398476020047404642405196042439163166314311733302431140816976201349908955541219207876295070997156741494722120464154518351154648525922793203170563109625273921014754627038808621220494231483831468840028840455878187931434543113926426974860863771415656541672009079717727189535766265095052377258743026644514947576578741565096505014141480712709665428189604829559801187195801315677211327276881725188358782575770958809278594437089317616132620087958113449611325639225552179128287993264589634848620370696127907937596585387350691601173702462816900939372739050138574834629639893854568619479124163133036921284647367201272646611831960477226977582285937477603653180167836460815040191582012620590203275479024268845850939206016776896677059393898187688190168773634722954431383616155848100063837189102591331641656251806158768194928019724540674979695010329117516732432869666028311901759343508872829060100185925822680002770765532555995198932182628875601256262077378720230777076201161975117122035296027644985720475887604464047088884908762873304295174741585311457392525653373218874885632143869813127472011976324858880531082914082908671029329360794976816479147643407153330001214650919093907551737347124130197375719907284020637656244818484068952207337711999456174971428810297419861399774816217600815023480271115362466115783791165926938860895889779831641236516335088865414516718402593122483169628153192107219520793117152374238913229299502393862807071813840549816723970442669219556248031621858002424768753144072839192960101178266809381464309267174914591447251285708434685949585435332925199023565277575586127669924737875181651906519448307838247391583645416856973983502266531049966544020574376707293497396649027086023351798388493789699542026977291706352583580017113386342761500657456540654100334499242136066290593238893427607242069801882507458682837098337661101146547675034974331059747130380490573895243229495670705981207182517523566813528094504309173708541209799187288636823378761186345635059791082201007620453639072558644007476250259067624214703597365767200424692676670173280936915643421550056791625681236816896515445564780753072368062718714102439686962247444924101622328968258560975801894509797173885960795628762943779623948628164381198034689868674499366004402610008805063477989710377826259679525534689948459962020324124377283764280581166887038130674013106486771701642984414819152424157469512071418877030452278807492662239850963643461467739185988744144175653246773279345505406109161463256294340311015472878995731521788092349735383986279452391576411927699451302478699023288169118953545698985735712215269914269546279375574755882524073450828156649646463380604755268662608729103395714709578429718412024635797173448738580476478894788824014886267750569767139126261059544572907911910058225156317753406195273508716760634071495546206190937872320287859902930086121228955753994763220704054899298199863818879349015818842624093220663499399681596161897245464577868141493534395001900731663509574316661488735803335702683373737335162512751873878175860653434499824903911847277308554401569405847481889383651435406352774567751685269865132277500707440033368389056363228848767106260797047796097578254257749902018515729365757961324743337721385922995397578874651159180677578990409840550256835089478522071487560004916574093717375682183559999423116280514616037893207184655057170289264330571071155003031746403335786816726712722469875540417417793076612082852893605528300477670213063373950185136105876302619687291949293091565219882230712698609723908319271749081589901588934085331428648423919878122819584989321518904300633156785515516845186695097531587350672191636478029696437255476521388187212425187132975388646063644881209323575709448611736116898347903684182041113164142163129320657211669280518790456018872246071337980118528853036256393733380241128150860430983795733547108923826580288103163713786412459706794678705696904561108653081804071133771413512183447829046322161322286027840865323367771951458149494996632608218769034037216769043876853805858472934668471065739725290220192993409199645596150068482741778065294336177373891572096284127736702093082796427695002718327930440202757402545846792123060613696790722772090142944830265730083339643533578380530159107702184453881081668542429106511207547343365321887845022687477325905172496533852792216057162482891004321046794929028829640601869383110871057327131990985478058239615608995789082676925040578339780288283607489975550538130454982222590632588226406855067424994553660312683154939621604451671885165351183982935467619909168566158162457711669157571559389647576574437381803025450266046900139139774505415709127865035784040492526655097014907258868294885880182630805094477152208649966956707815285755470178228901267167226317730661632553219002075123832859798558070578583561803880961245669516918537544527975038524982656594179155815254123426508869388409043427218481135635798564121748403322650371923415560623382465617356567798624810666665969570653924002200240666776513641808548531940892835568759836305850689673667489343923102371716773449579533494860748686880661066730295992114492514112468171447953531526131302624196156802795260332359393639709807387916259730422828008455756781776831864232549654887861099180162591364116253352991487820668005821991460802393353764860712927692019870646508125922615145004940400588867504582625142170344593449964949524549959341333562328133172113802549985011790306692663705905308731552084225681527933803010784563966991833359622014116890284463990901210802621978185638397183588558136866617273951563249938445356925270175936887020274342326711754911766847014674084017548362629077481008140064664641705901376702018982059275489792210706349230782377448876396084052020412950031733827370677846377770331015877920563564349447886169364054805934618182417452428619967135649587461726727198994040411958936324744909601212686266286402924303880008646657619655139083684955846483352858865384918784102005734129842714060928558036516294153276074934667364333026775490766352878268951767388655208253978098167961506525475146930598061630516052202865101614001917714930888970363850527306095527933209982768138318534318648756740669621717162765754120526941921563965078447680216972206618462440215364477009515462365377792034167691251633252071798793981600010574565121576030295528778854903098156197450273436792609799728074610923164215629848640939249323761704035215951196512194142739670263336047491361655159031168579192140159233073354923275265225140629748634708000781262050262144022162265125988841048648251773056322918911337168752856011692830725823355088602691976076112394662555769053480369078517628149929767099426238794914774417545573744574609599281033102730784872855756488382164272743594357151182083493123208084128159506528377116473850975394470139257982812105885303774410598140567787117067226890294788063842533572404477238370334323543503309592954793277071661190228935412416151607926188149050564826698700313339438404807864783650069480387957128696236112664209380336492290824433052386481976891488779116934297438682803697535421877400480980573121170069678089843677805937474620945449422620855824448446832036780093959384242321651853638944478541885864676272450973484261895649383490780110542092653876898362436926860065354624223617380788928964511313042545524346430808066160185906192249842295091944433412405053788277978420318685855508663995418747565583540422456230716233679783798999374401038413315665179242547367287910543181674218395968982654851691392627455391615040892935467033957215549819027750119812871834727405306099162868503226977158562393830327211550047151071162376889550029022000248805157331727130097066207775414445026108370830894097595586912408562304304305020927884504552039795205421611417295288933065949673962252748820102268588565501736356244300246777547219353264425723089198681599875745673488596267123077597445683140207820825591835362794467014814559546401966578518672820899362926025625432569343270920561115963278046816255023947778455757084188145126639980292247392133622974967484567053090983132404388091316032400515550006689105092351328999635333841905871857481302874085792747138406917736778571016153065738681462191471891422134927571757925195484406935891820957836994774788290280007752743233674464915881637575605349855765868866208789730773220457979050766736002412919880890258230315604277994153100214765781834171936297350150413155914322056505465569012954959591037485524979833670839072068750579800102971404009349319619554515161988297816958073057858022294267154721897164526567877482345522409381904311896978777439291089402305778675632504169504739571295882029149801392268886984708699251434480180626498054507812987441708026671774402659701419640512501463712564992895662092333129575574926561437302058000653322412838337945099753502348655855911495735448022991522946982964404811082824109760568967206640899561158841984752587966940968117598712336063058756402716897753527301081823570786422418761363205847972806526276823233907890906684584799745704093284936421145572201173758425885198358887609047339880774925763855620022553152773266039430771373496405590149936530796008253600774779063001683547125118578584878512836277347728152826064797053160451505012883497585652235010568607105554454578107982071062384342607347009237753302288087147204238580741506658832546653148344156579814177923400976789013567539039385851565886558781260343768402949246676710421045385723790194713851317600327382085890875913697673282776098649747413263030937065035574745281911565287267721610130145304904845535470686115817980592287403116346183237467247830037800629762542280881361230708249638967784177356881351112186907666308805251790190762346748604369616085605207921862614271424005482643945601475110050737552158840227994899734579406420663243853733993732827588284619740112130249283256752369372428847031569125486883067528923290001382059122983378994960719573974813687914356336060127709372083485829070622397924870412469058250514378165937975789362611399798253685191923232349166105552815362111787227321658767318049606712126943052637458378455034545679910693094777815317609815735482137383517125715991171006841590514543221392136353808508901447072027052615009383954281238437080742934736217671039921741773798935939408949041603803143401935331291437862004653915401344044225420919325574015580884733333872969795383942844108974911077301730923456275431550639421738746748026547460272636613740058734146617656821090311703614503702988624786380245679951423797287960024920420443055198438211811110009456816969202287725361437619181464538806496851673106188148020126816457189798493067749650947632903103188513012547403968600824317196971325242547270247421266928269122508781417421023221776982001397246574548105305317443182165784021511855602598506099243924086090408857380027258251960201568219357091486181419634337080133172371503771818943250495062355457835566521131802861320339676806107312394749726927399967237880132273439638802633940292776704530343700338148298670941417164311109543758312244359379373675172441969986695593312234002025096346601549262451936627413810793221999376620554425121962294302066284458849076331195636954464980510169070447843899754277971461408986332949978794281321211357225629051819871307469583470768542817583742199333149830966018758371793339164788752722528753958436588551252816357437473481414336195906023917320580929902580731611835087766381253832451129216633890060391029247092017926362968958764716243745358959365885490422572135672589816891734882649672577023372133760934497878443372221008379724532628998185560524963147584418498847043904893253367577034190583142617585832960022791780955664424603346312273968804989506062820311443817985127580695080904540979447315428354114678635550171782887759545901997066344290887755846084772356495254994508027025724505379632312834461650627433538258944423020052544799035160823291611892577460910806091897662877716825272162785047279456155187799305899838243632972259920562053231006478493814216023267456532143484368920153138217316461044590287276583273295515935291677593971467006037072869944167385114621402339647986779596184112330933615736159011517871076196326818224643781245494935150753386660172348051432903953546462059140892137334285687986147933233403938742864830229040888106597722555520427789894404744263194661690191636428949042506483642322811108371093887218868440528113371795697554485185208610455929177729336759009359055468524096954397085428297442170874104956260591561030564255882653463142485374970829602742931016359139187587745767380125329958987897429247816174694753790080824114589379811247234561571642203174576104195707165241177884926514356995518512302641835641712981004464783467527524999375562878730686841310790780144611120826339981664526861575029079517455370373915522128870812455395415259441434526880093730856062889501002401952466682768028236634758934320961596815094355107671026778335756746138239906441090365124449653866782610487036273212345892303681640072694922859824870285259482866678698460419219947255452386045883999804894517748040338665785230055914974175459430190724735982147217243580371922911476385747696055737189015045694543021145809886892904681666002787469930458575837957774766808475833470635862677428144763061650723333088644477866768145072765261051399417588884068888034251496561709660609783352609340585479011385263502905433785617929185004559026155017563174698032223773260909818956904083178438174255338214146574684045815885912594497694029719661722658205052599527480907632067570786434331326583299444005015237252184552573985390190024082183379415458035670174270799748539057781537762981332865892388416943770685489050912234857906767384680721948769487132683985982529237600216772383000698161570864164905519399759369450195506434640778180906452441739123770214854027503745900973236516590491096483082208528345626394181851101746652042715585818971671551810234210943425645881168574667407055657380824678202414523496367518165892917790128490582309919416744244068645157012056900287389063889520165430573848877467026419021867450996240793837370666731691340718812284299155457637622944381365043043133843224963754773933963686287072833215491038110415801231594516272225497044454081637076376560405678021648374243152150376116188255073833588580452645359784342748384931218186521704422007812318398558175945575102893679092209354706651045516070059429033064184559994220662416186739053574479736784137865706836070304136395262055206117878057185989100591996395810005389978690621939271573582760523678158531458669898340068150464021711242266034033098930576133509978040155708338738984898205069154286889555859895368994964398922134180015526551726367199040540334887361790528725020694784589604037038167281711895953126337518852604986440278922074220340633193319706427775963805291650699771838706616171711457495484170674595329377764489881866082080470158246488689113592637946901681737319675156752912555009803682176461142447135789605037014199340584567148168086948722652964818642080725247654019037817073172858482349592639138679972623213874963797699947745282433405660794366528831853662203895265385823131429694051939434000960027719074327678440130418612490820761542125129440953766744587780628705094689081052956894382498945713627664724592724913897287078392835600011630465158480557977200488077406412217171518667979080368043666703069002592158996254916624562181277843191128461754380489019915837417882333182377640197305631308967262432039282279345777034358032157618255000229382301323644993375872057625337139881772492104817968755523602224674402594927644949014179388171422338382320183886042770858279223314155806295859291888799818708505942516928059798723696889546040713495856073079341930786034501180152045382116184273482375070084147864548567556161107176133467490882799873081414075012699639231660243556898528945273417822896629275838469063316721694369703990309170798081218602806769014816871742722376208172558881153339463860827481753642929487402131274955279664319955599555669510673701051400715040838997447986188225520597683231063328188744624194241888696888148952297531827879902359702866806618611264683005943616028639385664279374350613045922354664498465308791966340852549038634194463558370527832640225485944780028756790377903471565310617061575147883647058579049252915023208260257005526947768917086305633643490658246154667747270126918621215765695742527015445390869931660166997246076847155926962838360290708918017430418823382980698621744865965878502320379827554208679564539004233227806122026730703207388418986386660211529630452919996442260029838176239693620745700264880089791880597651234928324813348457014147695356488145870601997354508302804403693608589023069465148034412142229136106152667858420843264748586873920614060421582588378322923877610703507322475162188620033104460235317628985881553304103289831131938204608230247020444487421829102299597800289313701881199046347711551362270226307709474903675578386190365772742358653585188008812420802393930132597594208813422074190534082578839615766934053526688132257870786461633297037382662749660291828049170016377713693200640051126406085890623544278696421609128009543151496150755008320277463426331299352663670833428961061247417484607791782416931749222726778442637047799335092126645899578769875532766621243154846024441440585842433474268978885992310368387461640467254501223621663363317341372223753031261743765297248951704179415153051864989781754639923110328192081160403408503424326219503222987711792591878626931619606984255860036153481439251053042347675693081987369489156831717931092025652848529499735034803007223095502187941456869862565647607878834343139689264137090622887916591394656834426382107819096654287844813660929629481862454381964293261714169381870783219252291493650788851326725060812609862355015748036536037741371480175049209688325659700256288254828036573466033936681675331837509267140788019622373935344085071605658956498004907348169887519982131026960722525721570686666623547413962722530648076138852291752889163483587102891470641645864371542339563582088797297789229634429160490799893690736441294418403476238747091848733271645342978191805190331687671321828000628329754534392871821458138428207376865327972616286979066730124253517234432891349188410968528390679456916682045522787400806751990251742246103512635499239030867790638353543058217713049808765996202159540738341882353395006020807198819412924255365200968774679438548254611149847888922785821698742856126521881407924723275395144442170802890272626093464068296114512020105995786950613206940664292153402003065112777624372316985213954801833471060549044488975896277087955413432903890032058959267096515599785366530136206816627083567877281257251243893225603370489467587942062408151417468882679199570723660507761841993785212955459408787975490597665739593965363982847701711748033396926013309746544503701179576372140432692346510937603282587861857567624061676779192470973654117791399853801719479225231616876881334460690090718251557019473123777144421755366139792508060402741194432343493078684477071224710198788433955970183377682232790050489405374469120870070017287132418393870153409897574215774645994043164221339684021155985537996349896258822303340931253575047429027170349303703166796485143546346217842687600911162813192711746314635163767497681506733358295202602209749605460811319150761376752863228214535724117863905084747835033002209030823897939712797880409073982119923784981585497711728671051194801512477128778622669096291648426842547750112921760584333660532131422628416235956168936965532033493639607295526413291792132659683398797778885893575331726582086945977792970357204774693569482142135643820463651264350232756987904214705872284033504640912324117477954033121691627674166361049039185865454363726060402993600692605087585723457480611683844047086314623111104348597344923573177862802788799246816633044805661781977650854586287558066162452233851273549373296400107899314936905424647248729110797024457829032388852192230779243743252110511614541707598385926263616474378787670666538666456245070858561660985878570328207318362170602357131160177604672901887731812713086078528703211275075518938714158851316246250207620833103384127699632647450765340557513410890990899315856420334788523439825587065474803168393735015131536202039010148812089347873564363855475068436816672730898891344748013385218959577778532805816732831619715670206301950740444263556565479865697248226352974275256369132242184913537528620943331703743906730557055721543178979578861334967456863850947391226164560353090737260565886852229973847940774972968124041297917270262313441894738653305838657471290784326863614534944873459024059176824038384940113775994473143216170407657554560990000503512620882591447977745475040085917344389253257922050182317237633136648579604448859998349794870700597129707033782495053428499570389873075385104877051813527402578648550463354375069986439872230062222757636798047874950526263598790730933563158547574381080043108663184456534154944142467256915274703808352008689651985684654861214035284157831138765896347175685300075461610173267356872220303981489427677479996107723610593234482694791890112259325110653583834564353116623340337483914796145342686721138771725563940059917731869763433434112977518208793308751300449124696276055733582311110399698924023198637495856222489229789158244171845251239544183130125851009649125683948986389814582840741037757714297092563218035640303098658762306634320854498673561719027729953681598911607650930106475176677750340022160481295223034895806714945772295783465736299063082475380418272987793801888872882446911158216752851642452761289023083666721645816795392835149486103393120431472333679432282511462662057298456352531141605025169542754175110413428104561598253272606151184853065968918338115452851386142628571259269091824208893306932112753851123271567075816470266940000900800196910726412974176715367997173242029211764838493564865786250615426455711121735038622949464707945317121877625241246559613891257495684908369690439366796517174394480107843068687784518584652563626200711875332209325830007575197011594789883821108094551177107331544354668435155965085824802119477225076985944169298498164722252285062632417937539223559790082414117496768829733326177098431853499373813595135408839910859992126070756710518545520235253328770950606166451618558933915656328143023435279588997627460399795477943680769664092260301499183549472254805982230085778807827355911700399451592952016612628552926890407314115355879256771442024586194461235690725405181071510777491496391021371601854624104319626775431997119510593429807508330949747659979391391876706480644833292570553251280474238072137436315641395488923323120586553819679194220333927152437519944094057458316407024333383552412553126363330708167732778850580117234952729184805343046748573634804179771107017240149578584813488154799062105261420263278378447328983096762548211206334395847698182498124636609293440088253038648860555021050212614856319612568462777030983338544941902196170824020202601685928942442179161590630539917103935924450059259465279595848970997719660735179963486015382249943871654614564756073284920844345174407222486210590801432633324516776920628667006601444388084658294134894081946442727586457914774320681370705539182419667057829253779216808975573027057826915262904309568540255790433349818197863525629298167605733722663658094574572876677061641169869512947645604871690464679769341485457900912120885414192678053562278719291874801544275700338374226144695530403818356032256092909241036144220976973957319948140419530670672829661823778704312375400389042905834686061416579468100176948313608519775340384940706351122828843320430502732499317677879185373689610522423848774366490189999976133471819645495685394277570830993997363055393663588746785892060868562449378221087429164908545889988578331361352632665003694494779907180415626078477160424098556704619533983901103569366692009461821240564734664350532635064339722359921115741345615713245737680280461999423565342984912095519608950055976754862403429613757428595121430524457278323805947473236771223556910956601774895286465798245310519928269810412817125928170315196682390686332784664631740826238578588369317030121938513297338071856293542212332074079718484335516904506644967881173309614616968333120198029246800532757413562595721015869089970734787168976681821936596386473231678444070817927843356239871562313627956634202463836712641414098804007681635458078439832134134172793357125924582649606393689448824031064629150808749020500649973217930782399446463265962984910352756326050512856025346974979676801309564160794393717224266949486243408273216507720934010578913060081274010637020816591475203226425015061792986410526023952212918095366335000112531726404796923776943732727327993317886763905557430329468627522179554068621167859553781641144372465965258186701200242867955635598972911286401731923503077889408820285088865351612780632039557326888532586607804658151253690154473952309741420428484850398368949280225894199881079579250508553967918312908024216057119512140509582802075023013392878543591438850677499906542673622321990927090339454781407152322425810748406007729876686178198091653042031428726275765537227267432605664652451058967733844731889341011190609199616290840676125403672266137923789307479147396625691841579900588958430539307028212148769795231387716535508957934246860906471397163574868450063550404223709774471722803572959968496306429959294723893223903332839964545894428275636724141463286586872761200614583967642806772763271305053157683372103821107035624593517814504742580373400295513447211764840721843377577896706388773122987949874455533137638703640006167964250533211857864064832542696811395813233238238749791897892854079695973173240185551470331210806260680634289942106014211705352904976787674375486448507241304769223605429296818680280928081947713695518728846707400201404043284352609664427186302421963468027583795581578425352571998981285821444364372775103264865827238176741703596865296947034482098972489643829958957544491013668562178651433456813588529970713107749429904223774336711412846503332084474632680083832662019025796518437386054218552686738638725514255001560957820150760746971910551783394096910117648044963651046900920120049464988154930111556369945406036873569314733425915737801961071186307145273715067883400463477162678107816716999730477750873939226102710447576260305633588811030554698750427889975273121961156013273909553391330265554740767096723375509971158986527234342505103469874309001238311522197171538143054750123287873981357167547157933771514081068930422183032930211410411611793266496141926198358282239539625242299782005483061628381692203001969863718506183833705395634125377171663472631535306616425533286221367159579490708354663224143828187225831707568690566313894003350006533970463638374046476535666297948136643049305214217402763594542146426093154313399622817301723940831616781012861507273689870017656864999930159572801057466444262512151282201932369408607784040070162725126318157187926126792626187764552310136438372082569013295208964439998046781185342400727030143280356065927306498483358035784979451618841227906030587787724218392713619805221565765595004297952201284374462463910206927151791662074351922153466704064713132023301369133312529865577563626083319466942028540446710041784266970458652936336790496353250542889962660888724432659262700527706641503292188792967043337534583800479222628116383602480629913070671605559792965759789252389868520659244605367766425224121107972722670332800951174799833604828462074884097274411858801831376608281560275952324459959527228209824458792750961591589152331014438752010275637979710544228534072056180521205023426748420936113760802488283872493204098417753187543282515935710371909925083542698942371591377153261496989963027167461300774949037070837555093758849002553336761316924001626879615712360754208275135102695363967706134566722997769286353498388599233398066994487992688372211854497378669139337028082273864488095682739798410552706974241149833972937999500126280127098816944650554405795034759275897112926041165337051687850070533874475752409528081850815859872397294141776498088104894906437739604720802764822732659688334610566312131092336334998153697537898879904540673607792844934537370660302430269121447520676093213481314757701103096182074947684780796446950730324925847939062073383578372824058547706580541577835806424149076081699001856549440090425846138521198591086078539585947563191523573141081520703693834696013450033592643446771500629923229509200232125156412472265997306141594163861762533779209428285735497563762107382007443112010024708235303984740773812805963128599540774764952572529214991927075948341507610960872452592303696853339567240022508219916507103034821163395385682802197678706892312169849590046040075222176691344368919805191335761057699022164365100492466976552289316951606290162302271335379499202444613395034335513868855214982921565054715722211398998853782358626945800387943975699253432368111452525777889191673885102330902046914989842546761628603294239146311138225799145647668230640235971104573022719316693767091883504847253824270613853073249602788026930927676839018846810072313999265333032121973857842493078068356372847437650460490462193941652761769448552552073685376755027506395003679193460447129154737477715181622665140423875609548402670893761420356629810306361434057532962114455993210013392503375268112199900523711044611241577872508193947021973618480525309727138283971431694138702582910330389610923928665581146619069167623002227573566810954550981143129384569926040110741017087571829334868113083678747104886448286995991744853514022776310119396202083610110434796424804943199906353302978022752825502886185614173655446105022216675776955935608430171840809621898691109999423283188017340607505245909862026283343233247816811655487570928668941941300195094845587548360564856487969767097689246022917706263399796530717731250137916720091183901904251250134032931537124717847444235702395236362525350908758997288579571912365174631833218376859653793812713570678753220887509547081488612790984394399620902062284560785665262764135493688781292330194878934001064817320829273471227964886290429986016830543597715434594057138431275820099440530654331938002109788404009051739410902412616954381478785497767103448600669089548717848259523042243369965097509603376729056979053465057936406386046860417373918388853989032849477204140285308390959081596036195392251910591006322845632044311658342724369728079948338051689158670372472957160026208609842180142044140637855421070203408519844999189735946310430260566075096624698914280958405201469528723874808514285750213358706227499513022353470371625423780268455095863859297823169776983790056948307281824560516483168017052012873039353697981852364522330808113985575112956782015321172372808141055596946782175709330507407636995485223549744099870458919131609641977569373195740453095952144779561129284688280818000249082946267449373774264271997613520841127593999645341848640506049781723833023398094071943309863570788942184187584015283218217852638306571694727267996510280347729681387540661536658220714141147905171137400332938132001624914490223336723252011962999465600358365620490553969751869772615998638459337165192864520476418946674143630125903535197216297911096423671497350252356909855924569152706028031696131932183019509154436372915305860387099530613029466901213852253025074979897839814581340971885804750689162508352584371784833082151488163376614298979459969971579458334854607147185386580406603714240652759348313527275201984861423098965024682388070270741189247404851069524751530522376242591059901931572232888248281282458273318411194006437243011635301144782036006611347378085802210475454134681318515105241587176107526372599370619569941610015357757910836085852026332733507051870900990259247526039533808514150287366673248098629056869985848459025521269134764313089046958354358886674460280520107530666607737272728766179705454218732464036392920163518329993723722187365098332255979326920191190440080037067981802616167582272873608560957578309870222877557632688151441708481564301592900416394631593476901134353126996885666837527559020769172537796593936847700352176309860456222525913400109005176901643346931476161888636571670561990622198181240150874062264712311887515888086645167404495084077938942474124259879403832170791182586435202830073550916585571990530141302942399047847150107717917350651216234049220408066138142565420872812551475785266953786960336150716220225944201216823180407975374352860263733658740949287453203029392557664412449499734627996600720637068285955467864377861098890062903166507737216852222045034124804120243696435740078825969745938933457441099394714076942740366730676998327667107336879384203858514540348801706234193945134627051214252852038280008373884633795995631700520170150249412680452099125881544983069298523978170271219234171333017693293666750815690217996458580193112720263540885606559194482606157042757137441003535544954889899893606222656963544423665821415648278078954522469140905082057248326543892290572108062037147591795572363680751393547804822099302713425611329185771873398402687305491091146498782667809678726832118904543251608012999018658786758716494526982225501311397415325483440437658873001125096266930769612053196833393779382586600557790763753855184707810492045304192763733106508644589898158955629694194150958391139726456026396844367931690886906739472215886090760043968500427173721874104425526220315807335651302388548222654443306347694651367821574088900846091407615182341261958684796574412282865544048328417036492937316675529984894063534569911353972760182098738959918179079641842172604265940854296845106842011748291296948463382318400553964246151630715078335854919007688512067733360850803160636367606588216694128399184419245526529351109334307921176547141692931517300595193527616545655071101221571294679721982175988643252718102779041510618737549217637976381234596796135699720494599070461946879279914054331880107011850767658146298338682949940823914102809788405671666315138147191471412920446658902065240114017589779465584724593617262679373899092595986578729873413424347257741234096345546802834070931639619188741154731997296879672145965252923296116683561513468987841106084410222431301971214742192804648991126164424400257707450257747953386690246647176259780733478609998291088636987578951806509556706296012756947787317470168652745009533726939412627709190336048549905022168294632428132612454065470198402528999711316770870177903694033936635250382041470493758989571158766699304607160792194221024962549633018304622192092166271024546645441314557229752075051503055999739632665603021671355692401642590161592803368731424222681503264348512076079309667170835693610737368561716740893636683104105266839867813146553899624750751008275082247622290760313939696448402541758158632276612170678021324209456036081777422166145164387344821353583953587760066893684744490915021715521162929021823818738204922984818860352176465056483137849903110589548014044919771573075756336307986391051394923620267404688324677760312144461235290370076523398201552312105042067900752058550572859324450344561106432635015451223885829941766576082806377266669213402140365912490049859642077974225305497197328471663981918447161918933657917074466851412304111824414556197125680078580226209904039111426855083435584210862420801675802342512875315402544548262337602647371560111364296376384363184536947418331261401922679545856267233606585329693920209423598606055664856050735331329802617473061185698066586484644743808110877915085612331142846951328398487900659372185965612510179611939316564341371038460013358358778015551684513233983466779278150790016760423877432404718436843685597533770028845198402941530107468819035932502796947750695022997509341094819772006914566834381758510016785618055423230630360533055875541400758539545730111927853006699564004547220332123809307561198992332293004924300301517367579271387612586312172764431151469147807258649254338000541729805304211580188120139706853842416325698578568994757414533459575330389125415363936880427767087105695428045192566955554434855945464787889051539266174642488598622538475875876170182855830244731638165970761067177045406684122355001096388446587262174305470849549212823928037892542637987484321244667326782598621514382199306580664617383361476191161086219215542476613676498423267234040964150799984906825367644888963879078500633891534254447780450530352904114226332727583150118600997741788385146712125267148163474275766251703331978515506402600571739808078544557390530015670258989514892582631487745742421482837694693486563160047261231734548859291703874845718638319065137372543966833827013783604521956765892991595214391853696903589262405278773655135545107535735834961696223326517995918643066924003374336122896683746480048341745469111785151033779628971431464968528069912647281865256154003635706378047244585312630927204465652062973592062641013402386689702512190480554207846095528220344823436361080994710541470865722982176316265982640089798956177091832196906072494046705167256159713071997291400189895023015529464607185773796096814406498203346895231469643450510787778640580207750230582593189839214313715106686005650036424017789168943615796026618378352960530695025689117851261780600582514863709780711001300954578460323586025628120192771360362920898497268184091914230713313617609741474288672420508000480540197125793134249975325725532086981077138232625686875287444607833915595581604769854753038513157914533235321734116294246229466385622623790537834712024051197444721830393682853094195933071030881765030503300784694577830234729835332953355160516526512392110120875598884346645798260079057664402128485982322439543930897782499554102811132278953104453438487373381736797995950421727086245694452862716536953460938253910270381358093835529168808968017834384319904288526971859805796824758573314734578854856443951411068935161858657602286879639387158638133843650975919873844802396687478545964323287595393344843287331958637539226531732226339008652962161930572073762375359696778017290153767422648790465633403381995338046222899410970727169716057486046469825309967958187757563517302112677737247886221090306496822373698775337697096839754689823941958954542225700679761452987127052855716335035072224910789176108735838953401781090998561000682187916393656525700936417268631777534682392561368723559640620186678349431710186193716929576232109843519223693253828028078749208995348707596534499607553876691494876020344655308503757035579697323088442160548890863358805384194513966879939220202204525293831242995949358069583885213869904505133735847909091720798861757416869480564775221475651119412354777625971239696262594818261541777677757523382891537601562151778280452919923348151956213714233279789795771019445360383755202654794505229116813559063193102114922777167469529706191466451717736273552701128620167342269402947406744912814183617055698701828385645117616911792438322619879351767575698613827599065779615138602029822588731140969766053068447193154018085920639144679191598675198076785924449836291011068911887961409368606128034320314077235893500898381167837623926606186033760237177844514601901454003609762336240028071214003688325193700550562969099362548519097056611339741154876207042762020068745626632689156537176044157647612665396032818417938886323117665293305340172109349933066621204677225424301250033164177945315303958360274615677048053411253719202353780173052376263609212978140243191439967111820366191163637622055410256816976027693488395572575372311412517813782840602847749974578647103409530697042681737542087542075779339147616833060294065152468203487783298661409608018281491807438457532164564166033462582399740938291258873492571652457676099622187370466217138538509910526264637244638338143496049186894024074735314787840803885603532668054073457638620783843450183660275124377555808222909251788577371484321239137723347219524155903701980253768223843768006813507437802708432460902585594416557392500642390312116631999511989335650054722110406756821403019025997307120762964434378795458885337945027211826053849299113403019965291854432530171202636430266348410485157142528041492645254766634565148376355529210778475904885472936180283553674877401949810408276108251336528267386365849325221748017624497436676817862964529445631938823752976851574672121510228093145219911158533448130819292781018410088711535333874140434343240625865956345016797119289157706961778509270715862006525304619971530838087953820232373695024928114423372239268126370898094113574348250452315903986987835998674745844276494343485078251610811261334846948509251576281422316910283657334880019376846455712048848660850712652331129240781665777138704752173350116970708655245607954132445445842231117687756184993493881451106355163685311064514404944996241377144445397659065983142710637825667157174803787282384677573918884594278229261415115600066625917087537866095693426038752771724250545889079680297798170177126428835799661898903012297517305011068664656334437333859548218232366203218569876636452072476830690435871290904188241423687120683738303694348959764521091646885652040856502036710887389926053984890564644770213586924952352560094221394841582356174138373144550608676473238768132698884352036541654047843651322466785346782246352446208885220030614250336750556688305061843302738771678000649361240142771749343413602282670099671734249726119973697404070280141107846196052176495773827830714756704582184658548173891929064954657553385066223352571343298001725210776329834037740013148881865837177091156050517837070058448639328282613617631543024790625046341433390854256190963994668774003543850695102651099331917128183154044485627039722676036307662785303148321266104302311227690960776266835976442528186725778220596844997528367703621362564173884813076080332789198641741786722354844348939047874186812886261568267823699546773419137538426356774799085879973635776992686656226865639654074438118864000532199724477475043173930772945034419282552797787040446786279520657160413691211118181072001327797433031060033038479900938968506238190571117695240608182785369914518792671436598651838360664500661198302734486356178200257446361681283938526800582289982359380570245771435901205072958371574328739880034870272516783447664909310733430154952985117946350173075603514283800934419611345541909082655301395806135411135394787151744436529786583605997600071960848240626479253274404689258207870819333268246901918590727588790446558481711035171013948045989516630238187647465496081588591741864419769869501437833909586398365323991857665581029374480155031816555256245479824634925443052210392235849649637829294439027615322094786502292711253745746235535786316950065310855358309915699644181917672974526179133546528423689948947866754143334248326380003973731802773030468749893551540542557302414363643580835908070233033048790187061789307129855111929146332352468566850041649396701328550549262364801678826705941339388384693714503259929804464325857914160074013006269407789327871407291294256821600598814955612458580218844370555109656159056121860888131681672628740326983353517730985706818821398905065096855632584337221274125422578894202687597600712170235286631269139304405500353360069944839107932977374259225511527407459800200156828306629043775814394442339040905609344353233933447809209646498358321830926337097902969436258128051085871350443239332745953449377939044222772920619605697138825233749648327126102471016664727709849417694732024659676394124770221640602464627734958707587404791117448465831948899525204446815576512800457012179411500544431680123191636880186737648545189551248538664229516736499867881884291039113344509217017854780857687337522289405926634292359179641256062152864293087055349309783931267233495954108942299664181398418020330881666286280720281513310917265946582366411358290013539107700154572867268656142675796263190781456947110022068115696598405712093893110540369011575642839376175927890350459864715560790375431594318903928686516748828862640716868273814924906083414892117183715733092336303512437126502582841455206947172513913074610702036886845205187342800963439807355408986958982061809229242478753513092941968091315462357179528901890303167849468684926211039618837381947081109995723807219828394627439816862694775921261158602800319463710227200277063383855343487100116833074076837477009278574687271476867235283365798004110077603293246804064287242372585726564031959940659984081966160404229994400916737479301091180394647630770236304781430122313640359173939547416394589888859648413285170980351925856647555598308682641524152585803361831782416316768879359585882502473206489983467161902995054815130153354401154255413807023352556638424361098572996952055702056772183140205972273956066944181726381058091526315885875953262541403630734613290795751660834844553834776976116236038379138004857231310128262380600242999886406548081571794546771844435366543771880536778755026166798422500244896010266183069423476130394021669163861529593823870668604076505701111890985465237324273804628777846654725858084628485905840400452330813467702144899368962390930764261320598297860343749004585944976416507279978308714664502649882429557322330984709915631315467081762492339284349907032252493160854706654333872706438748843843612323371133264492501838377575404550201596405431618369810206715723847561183788534219532006528554775522839604780667758371235840153829339900046267402568036560881827375327745149146730176343093724943455965444007055048642628290159260159644577515156819136989521913495161217442041183692289385155715474920030702366096041594195775525942475373929961189468021385607676757588617291066030908150005553516620130328642936956813852437690969656730029105204255211120127479593052178268165408147014779228545959976936581481751289184543350051819982431383932258779306797417856939956841810336079311325295151850684232335254014818064686429189287039944899707352558327460116001230393269509690690031632450204805232697096381085465851700475761303885832227524585301184767319179844440628269105210012072832848638061550328073916654761226780718783277894841370250229841028087457751201575231807280751556029136788648606645500531896176047449188462389379597069553108681893399925002769540872906631591901843252790932413386650690676454596974742964567831981632181496158095651449390978745732757674263250857410976783339264593002312641865729166065266756546515323854311143749086338556003214503568018516079286081953672195737716238208052370187201232848097056508051808420709991571230829668452827909379715406579659581074540265473413577707561025661893665557056961463807023681484673966482786146825182928581998525067457784424713744701058131935503605189209473456170768210939326407238339805367845444670047460268705949928872324884568704001634091434930985169386912119296561284983197381901305953005862485239309115903768016213633905497139561978673910813037437998079856303193027032238583713529096980656698709941917111889893678950251011070559313117394888550011459869125481267951558340095637183051935106578601566674571368287196419573709014140353456691694845965214075182518682023397466731047291190161366522807182966925690806484369335239578437064569332774108906374337585948680896676603161528025538089179624959968630871912679916304697980912462065099267635884328716291645496064147532023329517531922631748032044329577596082788577151107790207549928098288845278837419832919131072095960745096262199503561590888202114494506036454739363010784882246421511235143582692715924864984962762378388722028662396458346706389735905798404506247465678133572147085397224443540934761672043019368878195250701079772238920626556637491909157784681436420114840592979169475215437026839053489976581684085660456863014598229773658555530966749203068707770635924203630722080095644897446769941867830398458955020767839181408527760891040387257670049018723241623059303637416444980177091991534895080037759286227517115032375799570722911427892827476087217949982918228381833515319513013236190065370149499800525338194358925349046826983077026637250559126653166722638693907132176978018234437391155471246899400275418486931718802898038928104471054949858734396516339687115548636935355883594108554278041285249754585101464055695752196575247050670153757836839260831553492291451321560998791778922255265933061625794034069058689708814852169065355264941067454831754817863717147916331050827974505936697136437871791600974062601895376600078945574321486876994132218706156318007793229755690385034989379474047113640076873275295810439698977575925625783825991484737026980045272729486150158144752451321917621677897900933572304009665282425333893523060045529532524735223101603288584327289421122721891313306133808680495775604393083526197061583527812579678067103571096973668543595984157513287750095233542376473005719276603384063439570754817532653474974615234340126092865556950804983483232104911148649434932129011764836193183702201753491188663921400909090835516861739288227513204331139162009805213722276810125641774642578393778608805013503760181285567426349032704908324004183882607696642531659030432335537240634818150124052593315991622564229592538882820823753745014110530071772156533247765078658995127280514167711255952971042299104366121489084383899319518255076349995834368287174450517722521962571186493512354883618324358891672625333555860571119015662755638276774124744685984208266677020606237696040755640746295175900948399021460567858177027741434874692884857748514353563610024460526690539519476771891099307210768904229901219455540194674443891492691326919119064121237124670879101803506048452227813012711095461913334413998528519855336393852249573356556410079191124830945461784504280063075273028143199835608747843817364259172048167846211951428914623785779992844435971875971441801179496636175867504885198236171636424681871841107981275532347257028651345080733877092258669346769242432930018884942566169481386794380987077985875175288216289504043728800115956748857439229179458183716782670741175231386647651649411811674994183411546079369897184954380994180952602495367963835827408187700525727459068578319601412386683143326468564294661539985115988348422079407906301926841341506837571894548507207476200535690020065444206731855791054352035887005012065140980816555684091168270955031566592562638114658936255012399181557434440186254038443049060565104894993467582708782951468327706383688490041513044718196416360104202836934232502917030869390920461144967018401402863413873319753402622989854940143499648253673874713984756415567207002306489496696066105637470890457379083091559787743549255559433863967843451827548482333388653713609113806757173274134700142076715787893117352593430137299544115158251835948132646336677097634361324804285285797930909352626318964215146193991014197748507336292710832256403620089647559367451235269878026525019305316089203168574097283319713465617426920335660002451681809855330251719175538924100196522069749181502769353494487020335342557877283371305169699335087829617304054056265132703037537465426180572676235932522241909337950575663500170172282239123239005940167554510100015827732099668447440403590132462889536987924900811858308257556463213955985845396914891896753459854183864414331702700064197261561992276571099163317253070604421030704512007057624537789814694209070733762724063318528736662377983972898490390164853494779121725951867533624274556109474301342314226677454786030304666228618182100470454201481811109777751666738168842124860051385023334125160147646758405121984808805737736912317851870087950716111347385936447377622864585794348168485395288494696234741422934088220321496146210375115642819498444091187613801112455469586805125608895154087541250935846704766865503924029780866564718621543182637791031780989654117271183481683665844662011711256596599872784319845326638562840831471180742786880835125431404459261196323379631530410158417247492981068827396639899019994143130030507054534557984645024415016964311669028377239263985724037879534989724314503555880657170037121462081120432030508427577651863577214731552206648232528253894807117933410007044464904657799199312666915482672639455038423734283079378092908848183012256396665931837939590049532910769473868995352091081568181108311133443892567026925179842714444773373481157225812277151592765540969123240632370074354566628514314550903572665555708933124082254506008516675708835365626942873756162245377329740641922313683987091335304435583089554166502456098672789689852812749971369146962489532692438738458652027135982019267304795437957105115336811785171299350557992244948155620318342003942317425106028904618430461453341333048394022951068907309309541860155774523877274785731555145765133817185216512190354976242150511262311453001512614369109702359927615789915707659618536240545659306378793899454977893744351249799139260766105606532975951357311261790195896333235674965831130258832865654891814361290058006579264696163267580904106798501200513190742856297688105929390171187909380903599073460996966414770711436727555992273003215954939927264746191235863206945948617197427140366041151437363628744788655723789910597679738669863898054097020654148186538906108202486604380114295263441609877008076910779215393251831533529388548311144309330121056659648056602525061670612743644520484288410063035729190722568348712943120191450146315220665677902925820580432282757902774591035162294821543619387696795886769931743084420965979723678125840472404630630217099287145418009755915368747071180705435411334144617849677123576433438272629915409466459519555074539410763043617377638982811570645240682655767295839781209843915059428541839664679674666528145267635277811022148286969518635756291985752561175238862352680692279578549961677877732597732949626971436404495061728609713029076286691200836070665775315778340082163451627780879065116413148163235244174222747146440848667763595692285445203986094222969337012937542617622607678763285497331456314221951633936280762167077658675375828649907072735097572237746804646828639393169203871846266727420307108451730777543403230407116947779072829552064917501656293562224534432108825327393885085214811063614776725022704203598230109457362789885923301083855621481373168312868195216026975629614655238771573939020661819914213924563176961185661747057662764634852479298384831371831186611178659728373080509550240686684244067399217473350954923084877958973202733498298244916344025363258418172652752768221392268660235284162641185647058272151826089973961804573063091828725854575087059230183664738351914946062442574021988566754320259854299606979423738184472066879346769382220054125295125391149282493453492658472757261684854485953183283897626776093499944436553068149689062910318367161134011441034953902873200680009689045648516233645283210005779998317751817687622930003375232945527500051722176103059994531345423276374843374198569710761103138685768336222688979108401575974640471413052111825224486466413888406164085137118605386642516698681453908742048130433917037732256374230151089566204049895945007950686999011504729064490405009374118502727946675624451331424097078467531933643387715251621556844105974213827100250923584272512054189422162590730820936159210495761282519365116872497226837945433683177837819251962336354061481490858889414430568776041327901853588304284183954044947014585440105085276064530974185568087858690670089235381603941971111906242994099510109722396112076889559013003891339003656007599862480978646417826188095266101048196208327650717214744260765661553416788415369713167567703531978489583818436458735605145851856454678652320711083230360743074814303543997148592499271857724481463816444735659599579116450294784227456398668707218330445245568082964431771737111481127284658069940992277367825710958309138748381642701943157318010770797593545611369628581051892708097334355729931704930005098121859940073650673980690274752027501508830833047698839312756090053136595225915724058080391833506529853616289696626568113970546139101069093198043858761940059856420142324251817926456309804187016326962917745343843072557365269262504948375938648417875078834291606107901546062973509899053992633386469837859585153035760608979660250174359253562858202261094898231494659895632422257784760791165891498551612196116206421233006606955515147719027717019114782969360359131747572505521362055984460207630640477395567201863428560982432862839950741449809583955629829393416080707406016723088143504586965610835650132297947470862312007857127160943144299359898622737802636488297507269712854242524403194594537711954222296183884295903148282315351908398145207366522127869964674327147550013590700657411359486761423799858185738781929460350188606771367367384715145355821113147128557842034586554905708690494358736861671857736860507628052587298947912911189765473132100414176950635771177128186983222406866671544529892417532218091412659242222966623835135490836857558855375818147872182359892038067588797655700824338287306837287278163998895599757813048361748013779581184580315506403618699579467382527552672924617260196455742168895462205131824482697016082881611749059748038608535942506580053640715509244248986935578396717458117026847602555947940047221866277678166592413727374152016531279806919320604666664908209251609156691860244977074962044672108152043766548744112471058329581191851069803903703845597642245528341082713920316022382571499143817000691598318624773387994830029191271549857234900846047157204833934415396891436412058989789889140429646681830467925151102006130067600869506443096330921658840308943165471195102290909992943014892368988781216851401487151110627318458511373808365780925249502367291586157435666064884733448524007241108050313463710621057894718541794479573172929771579763124155814541897669909841227168958727892775080966665103743453142175822673684909185356462373751239993722923609850054040479089546962291349014669824737729230201059225641306186569517489555776099951394445547527859000919833373281933827526746899332291370412196132956466928222885795539717315173364340509951704471927236069669673735838277326317871646576626337323601212462397511951268830264721616055623910766789124364440423084616350667788298381266465904523930261499378186615824660668475012852771904101917529261717302600702788626536272244486572394790563126865194353677947559060771948050175956424446437000423097173941088481774869885756635850533065150774749428468440000540822420191181163950837511304466603235524925101457245040495461976307670509465547604656781184775470872489541900523416268231816081285028260666134542202174023421604073531288041851068094893980147408543674075475632131339281220686909005214229773024106736262361762260184476960802915318914545313321579269440247299130145685753650237642670405230163383539373520849457137328203451995066623302656830355986325755490770399326752285119050767656631828584601204643045898153447038055666072333065051540382820037936145081182355074679166154023731113082849108857861029642865337424248565642754110562742911380416759144589905287725056816443485983635457472194888884665286329138512597034616111633215812198729130009812812001087721724382558998247315733823256671026336782404313338734611590171647495165862584923692964865478762753198687695325194479659004993936406824125894950893036888047996013146852379819203391588297816331887918896625595477683692751241103773807905799488052988516415295993013181487124728645126526198540156193562454272555497053882675741983586586187441812495992525767547317567928066272552973494004937101799087294179917817664950375618289553119232714804917114956635281470253900120245797774047325295719860997113757392755776461445622311522131173124726653748486202721133872269686065639134886123683393856364003202808459168721132172097610631711157788584234698685947572050515105477899964690867570651702458919903071570124898813929516561458618585102210996177963042017551174059805287054683409635118187626763142598115793996506992989159235518137621937056560868594595524007641876895274568003403821251455979264733343729805871984246086149907388043536082542217375816541120099686678565515910009593552865949749908690411730423628291392848962675651678996265197032928884267928144940899829870090761963071227224057708036454560697026419396196328320278057874693603028546441636721162361836237053883711518049043850237027602764354414262732683324797102398364822679359563624566112381514211324125403753625509777035997683217011986752287758593493857343631900000513835839469407392756003244894722195622095143014700798386084764362978252999265418200141547567534190770256945600152990218468541429253586166363171393629919846475064514275892645543292865407216951813635356702067109457852326114381879350691937362170751651244954840478482731403453378602535502724623957454203085726001011094750181460229197466742929596894071985194329461085895852217026162926427347955508359107990322416817924880855011040275406048889195853445441916055233597670978850322208883453351447397291831674486334674677307897842866995620141287318608551662391562495598813071236071986627198366051810506560654638876180145157021143716903807849962653733254394578945993780770337384388969995281671850676802943936665528944600655215471371291901926607979599790252893282229091075864984172811112076316351888515087768121923403317500897197663337826041014201258602233373644021584379999185357537969384341476080793803273489926785263579204043463172861234778070862147251089655923073977722093988657233836356056432077112361073662997526342969084040964948916000518384399136523685422438510667893674882411136534727258607866630038563046862617423787553836516882307850430747472933170785566890597397451951146237210470529485900743014114851746826880555724835193471229999315734351108566421814773851369615271531581083593980870982254731983499452783296603891578280234856956564801746577376553725914364081344353524199983617832506510219388676099639008554353572130841368918004666611635725258235295831133219881637438028394978565976601448102599906718566585890064635498751244064559010944570012707794640279292935499146945149301228446228475593905916935302531025568839717883041350954799186163828975991851281383719234866055972792501540772719932035777244394207360130063616700864831312674538032697674510899027430811641735437506071464899435208493780894758883141037055264298792330148595753605979230123719391858591784063042784205323161084202327474833793107407035643881618524851063533731337457366480011285734520723269850109324489350026764231904864781912612557223250741754378209527080562632073273652996656085788811775989341253690162576976414204548919558282315228220464221855718548938879227613793019020911039176446995930469758307408383598037645896779704022957013810650843642084247864477287208611493582793900645299632203751527458940289531778313436942259686290487169341517957355390142196916077056686329084452480270801552350981089230458525248138869963681272561107394776197002940209210403824798415196563242180260770948088046096914461144732013919691076344675535659532856582390955967364165020819048075271666210753203555892098222420687749274837874389574128487266263388505758119558491380965768227223187241816055377249344276648750752405169721236118948711358698699681084324917251641096975216630687828200738404291930867795493079164666497708377996972879599354880496298282863149160582711504261119274662298579687539774863106946112229564279951468562115943198052044573475164075580614642180912661595395662609538214923466540337440796567405257548934268286489178536192505885099861499064472961641838401274041443415458654107478052367988403414827689206171843694390527293281760015704826725851470633065338329669858545019494956226558598137859918278200812275472286582958993567001075013502988416791817805882222481909767832686013224919382954537286299966154527527072104999789090240586067736382076712376011755389882618834433606430374061601262220377845843018297641350204646023397654655620553665751066665188630021962763559750245313648245589296724502322710994379523390427558830731243497890865409886048654967881853617283833505503792453886610508623223227305115569983852842152413528231656116636471703193066918549921588962446600650953487190601405045314737235988847963197700144889472946015857436484015249574996329611105600251211434695634952955260405352509213633514087929214817497799295676480289238940674593669182449213922614915131056273009147263399921813783664780558306997239611764196455136276753405948026144340040341497421535998203320327831898720152897123502482715157429597594850702667001430478696993599967161716222489371968182364748006867772407520659088934683509173399737239814953271744787869242031644619541189498422039820680717189157191845504838647515656784191295640398045431357571164685137293691019048355736381034203829136039686901065553095944799519654879691859238161731479008590255633338021390859276217171196302469398199955068635447313999488444483936470568000561427673032685774527558379760533452071930088388975265404998890915777607545425426442268939738186674378223830901529821741743070939712354024734129878725472277773406671887946206379890198265883423296327979394066802854136307333056119039267588459095151533230902218632244696012264828769329501726054670630410824287721506712032599549634448342891268881160860734488585203568405130729398824956395349995957852597303778507298933271465902082408202889861613793022597779981714433605749059789561510707385135819328571977161105612563469879308934885891163413957907656956584975397681905097472388836724067713403189610057992953955666197772200639010457215242099455158051529957811832518120213920191975000883932959210935692367929166581849222205410135263540253614739781060286230306932425013950491959555950292593959510807565059678166525515664467512307010296742221873928929191974548762340779926912314873551106249962130206257605344022724628080174425742959367728136781994612247893197217391952573097776196129696778798384621708846987789160662748463179842307762779921154585752570658377879185979976196079366060141322169873510975278185045353595784717944178103977829082447535477723674141855046659615815491740457135916562960479169440817905192032584111061629326908652062395167506545219845770302464184512268794420060632121621396648843991456576892810089839484157850651022216844835046823904274622769915859174404450492028575298316686510168174037649779235232165806464732056152843340051067505563198537533391818542211134323977547492806593422526240950902165050835403476733565326400318787370352132139709342131391717318640354217082762823244768592817466275761888842806290614147421467089328968360017203784625920079678608370412872186071845729634166523013300743065632535157478068206192990200364384480684991064483567269198105460379628683032102695531832828754495002541089468654769689979817683340166610850072334541056210811668194205330917854270225144055506578976047136326942495050579988916815138947514187486751674526351160862638198448850137764108258622035098240607159522952540293021643904163134727939727295158245653855425888180551533099396934796855314462074160127949197242056373129784519831182501966313570071933624166884820898608099832890294489553409457531786184199091668161168022604192842748750099009435665297861282777197377022050356429891720732180277417132861537967899824362966460536565541629932181374706758828889645634640205502782384007153768197108229689262286253944360705760360655401901207112109204327541567826053000095405153410021868084079084119148773374381032129183408300887710004568122231573647103046531844714982211188619075095101071043736240265802283829052808570731930237460037712785663110129184993854489127594429836696478638371021070809415792681748593106788539459821585255595510460424071575521798094180163544751759408716816187938017219083007625526736966851802867050466379372341511042163580749207593066851644020484322490881423955227750366790526122754664759761708130191689160495600139212963229571314896589130290561594621413340759044224035015352498107715128349605618301498760143527924125871713927136795275598716856071913298768659283885823675928002793507062619682847965845884338937976079449204342314725262757442106513980974347981109213498695039316484417714687704083053580431227888758677576643951043712474808733321250560799159410591452457361674865387939877155611413015032744385838206376247550915019455856776031627422016724039434200507734518248474083166676276090328346959184830285976782095463828135485387361001377056286446644452149318499103338005238329127164507561445037967275198996975764370534929724390272093054532660575114572311577196442513213466699574764860023874230393462864935447779215480080453642146736641968830092527974670546623219132510522506661414097436296524597953093236821614039925947104169259488901961586080189449874826570376408749056647992970818393049082452546727144679620915201001323109833416446993135270652983552762200925409799254220513188736238125192689059705322625969491286379658998342406047594568620498635982389889960857598238249304999891713251463007302853914219068871108265373511622980964375557554672958924516977514489012234796417803173784993786955559531026272598874604148437338539344128133711505683005386269529890470192102520936731761452929042573403631236589042462463689831292769966875215953494497862219542104008137818188812269019519064872999803088082852532769951708969707877699030269423413776960203482884181414283689080727945926248102254009848160361879990555629971020716139656036079920772864553162364308825816871218928766471222445648567812929301237588638783114165954771858522233242187018513954420349076576095907524911340170981444426545862701026436628716284231687197631752964570954223457767656004826962078182434802300075588631341105070104267355599009620479943750427898531872934271444136310922856876245820724508290505219747055616597799603115666012965693833657652362554063584064190856926657575054739120410471627488194120829240433412248097173114888031522851604644677502837161826447769387074626337734798091747573479305922702705268192176327021029501270017095009556013371040282702248040453026765721774738770045004113197495771886823101614761300333107009307479445962800727884591664153481518950465370124982488844925234012572396032747156496917434555916246472663836775856187172178474048041702432119541878462925661130438354879841094963409968841212108786110539125804862971912014593214683067797034539536404158811991500917166369381666273813916077204506849771177644403915452360505347727305510245911084407370395811500367983553981100282005547538949519340229946356623970164256400537657621668245949296053281264633599559006433826350006407169503520338923660230438700764608844025600282812764310297002510554569445265057399405272837038868738540852060347037458142311589470740528521803242757138871183701426962869505549308863921129114412467245469972886587268593502461351400590168648848076195792486377090001440951141873276330233935706004282643156762728214135202682128283597431134305810391039872284402459591434437158356183541304322439284898204966380117308036924414677455902312777311111604066522458144317380126474884547865388373345761901754248827960469475001722251764974936575846986616078928311980975323435055622460939238386611314702965131928221724016669329816155011352599305130779181789504471062584468908741823441835015578649409490325301387771053230017121403427662367190705001291952849199699816197111251292568680316292452003657368700809592022593926663035801837886086665063002328338486136017458094314217653660932741405511367876681669924684228496493289055776665100717472575418292160710598016819564284493549584225103631506344620494048214268859661098726238157915413449380027024818468176697339448772818972159844983409419807644504127457935037599202244989303734193918550758992481994077778728351239141409148220909234354427853354995043893072535096029642806667819317034866727626756038308139382117920126260740569352395664114345389124635956725719640408853971584812976506827524461586276089469535539646114215200357605979009238678009076295732585747916714968443484261671781199451121283239735090984156240611108273387491234068997168665723829262636064899350605501316441309451483129718524327632127429107181485780720106588016265910841923410654057352376163015876747655869499236665098986866708349730146545229256331774209364975885316238894089917482309494680628185441366101360019604284797429244619158650141370621185423336782297194848846138647087950547805692083660979918182656759636576406340662343762625719638375267214806875144469145087988937426095218696899996923024799477852791135388664278601816496575297829667255194897264073627621429340707706826180783671470011895938215065927528054028006137625565722894674525322412625502050040877618687370816548453996244496276311431717461030804008666637047838087197455055257608704950721772089285202826807941305117059657726157367759456527959068053030146493320101241617013512483555768870591438202576629078817911650158858961920946344142019495203032921525454533234423362654304860657320667750841360754129501174489227264328444935713515642421705196829641653745164720569008548974341247001280567682695843723625199407593340532071812095693104504664073951071727207139916646275742286101652630388383296456013814926126136568919744750557092621735886527299671379438419643171709445208553946836045549980294935529212113795280390911760449030675604908853268549373795403560171363025688322222021431568476386802749018747989670003128346135221685941844372479711581848801702089360547913297799522105946150531147867381898708016333871649566678297645987699505268199193932841707676387801344662023294421339676989356760802258646946658088936891770256767566186703745429470633650299972374736639224156840523768185905276538457189243741694316607658579417765916685958742141020236563872508721111164935154186281220671954575242961225552827188498989982276290191607477203972907584741698723591050247830145369327883368326697661548605030953243253475658945616736568105574770986891877211737773219927107057251587176160058612823638577006075771513155574382168209577033844169245788116311328019883111521414208366617460480653556216698161056866573126216424306456043835005799049022781271739379678229494135096361339516018338115388084591310880719867327991728521951104327442953165696200802000638709584405465773064281751678156250990145093567415817929029659593576441478666853120572242067487601867182874835466163480702125213241747637748662943170957689593737103134318318945487623432401060707900996799039985733945220245225305641582889649738394280645635612378368587004295053500249461793807763282928046185695117033507492931236748326364178880634449740672855062366896718379713181069913913760036990495673387174556545685469415602137881256877261397812617456479403838522674536595372505724611813218862478179425120708853786003915406853422144555868929571337799721007338362037805535157039836956193339084648121253958448686701362633328692536901482109450222302948095186694229426163058236058977311041799082676161233669557483448153767839335636563336707263897670812404917686668306359368672900784673943788568704701398046011166079961243106420140424101179714608993831893039422614643114004497661245564938775306929705297033218003075843131074613658357997581709270317039861892510950491174768829287883056129714283259119182538019727705139086601810889320329094304049207675258025254564501650846309683755593009910429431111252868764569211665891701357276437355584981266320102271351910915999704027318188921267686969877588991411794941212435240631337862760492124775037152460380096242353436134633493219364218420749806479625414474868184054498195251930037298925616130885297349940010732971694990417056725957912312234737003424793155438736137861200589412807883858862344061861004911125335527164328160875854112920151279082964830488172385553162346906271134913165296347069827208728930057975174527608125888231466032288682554688316916193934130009293642345890307923105131139701664859156026262765486628513063898356075067023094763957351509767170857596569683909740749231498192415515806268544326828559638596305868139559973060347103284976636927876588437885609828036713483386949631421067628533100481390871045371183481478260619293454208135812569385695196584803559747346216345607033067893081957736845022141639126408403004966144706518936297780754303962568998673716250884827028154512654535217397687148058211266613698941625029748340227550145755090986164001762219321113452354406789416012203657080709437684939264603065038707456448881605234823159402137770978785078039532716285175133659151215745856928237585062616054154484756520816584150695543932768005685245504620712642874404317047769602813420487314941987309595292106345595677768167419943102034990132601159303462096005184897266895605618713081327236545835602065626279837539983636604599411822514266613403092313360800375219613381960035753176831331370128638065976029081801484561931606764798320468797095334837391107354207745335529056264103971579298891289300194616565018930274968911000850078692026640960495481965412163406166622004904322792465932916464181490364402685947736693409803720557936573316559775789230659960954658730107731511713185034556874370179007633972652912731205139427973294859218897304853282207615065209667065442241964793557107115958023436942349090054941766357830015331199241616069738120623972524284810608919272041671091512208679802639408206711426874941265721160431292838305149048470467943328957729598756025748830187688558395719893828054068110497509367123694648599564240371882424058837450533881202556973307949377816233377152483627404787430082309481724546511939144588071437130692734108987400532507369326973454969074457643899074155464319013928292810047436707552151047916691233329755577017563256365418519591430620481941841371162640775944370897066727297292179968716589327864477519219588195425529187308078641429940092530180667634617945063774295925167674864372705319690704750052923760236935856367980499256190291917880939137413017603266680216042211865364217413307091458166588051225747837414380665244783023479789444581883025746950110685001713348452410198155687499156771186042553535032865955933799599720036797050287429194705578883287807249065014491714037381890585914794401373895010684946600162064174571753280448088328057497859599041120408857008487384718212903870886302266655767796866752753406032266059995774992184916508528432021181247855838877645143478625616639697164427934569394496035103415780451365443183481784938317415532506068040343650329643663953262865035609461073950562122370381093187909226097459311947438724065673070332369741150659474385006884884340070490052420235682696348256773300966116696879252465031723840956535784322443983232304641557624435591633498337426721805466554420730013354902686973019445743600399331988568955044526701307642445066449752394084128771459129044365276633144609489122857554620571347464980610317780925115120534455438688438919761481066142705876798324012699132192470519466078117012061275780518566703960052221623681291579267596587323466257288343092035929977117102911630795087348783669492920047441087205233786501825199952097116891780056835509667278328453146734605615916424497097340362981598298147068512491638518759001475449817917214458585010335760906063906796087067312533681721379502097534940100555579673503510809057255960804584946494447450191951938210036379037636426773547253069307428443376067413879497437232355341174747146576440172603985177473770636340779366077890655873288218825964645535073983774184202183009300789649940281562068220234500430251815183243977479953058901982900407133541481477261695245190615037259495221858614557195802734037753359350929211059144432608451635908664488628043769623093128611608493513386222599641102531017916378406943417584166478079027834760801105324290598112020720651938424648566501792054985357328678115800881172734384214441776544614609453144249534289966973498753517427615371925904050900860379690675092990365773512969437018377300126238191655839687054184799008824299783961226972425434926655276993942450816306582646652776278172584799307468686384818323225499666733362656875164083966685761805435568683340365072932217320936568762846229988446404598089091256714839200813911202618978229378929273784518570216953969928731429998878647374858261641366525590934993559100607011891941354090893416023108384746881578098859891466340881372277984582593130017203711381677916833631653608882740710569526913716667477233914637547997764397678737067151250944902268989474844272429887238565348925555821836272140340684699028865214611315934296555124740468699591376012539515562822068853705516179996061970699198551120834518236163981938401698813818462845000552968992305109392654642268395954262228488367600775232155496536517076489802890549666062614793509120501968030720280616631025521723212099582752259979250026676380363540252668038736873198342908728837141429912922838846255613763187728489296270563151768863262941573597660666592983802024040138860786727701044433302802489425128846748593253109258906073194167299275176029972007530266452323903772922367072285354060647392586375653413881713816757955077247319885914754015920287702842441245027266895480034796841222872710111289973494438199745041214971839253533763275898433300922586611923155014494430395343255574219289150581240184641194560786723003253196555483310260829001677931680557699985360130900529174353788438961136313190797679168857637923018739495732937676163495849609335209527783244742207125262492557154799723288917047003690120468946033715556707077982487752506804781677420725253494348799195227522176687640388506004051866115969296549485443624344877106285816509214130143668097002190012708336881864340392313051159097167610009619583687822121669946908081943447541387541118966500951448166014750756520451594730454739600572259698869835592860969608510352060929825499260266738479237027823873945941535807318228545273676163288825819201138295869215423411112331917050852971726020378529188608269330580930733052898572368931290497459569726847242102534344584695815797310214433886831947380715042367406365382503933168482453622113527287023667428081692268880813128653038058982289636350579495718357117925034726750522244477154718477152774324652697910544191936676206439887725289584450444181009498842535561886246664650895699529628020729240739270628041898488636132138782558260898269096224009217611862125726422978915078221594099894444728061927426430202988845729529378706445034767237410823994097330308288856541202758081142678209604683459314566970904089332316705272197578770574903445583201743663163800751859658568212937080001798190574896205121965574038168374965045208792034864646554910547905592597959306155750884997205572550323398478560292064349293703147961272949092507310391970033748256186090662455301546565928643638269153389506330811734688547332546576622144758097878765723307200548145937578908258904061377344924098940475716243242258422777346903730878277588634833739880997330433676823719539943169092986855948329536829892150933894910738775443341402926634245404209165114727713114960974558522264719913611550921330723428340710296295852210282315981437582036856561471009025330564233540940622943106052821068499219434200582509919981320523754595410856105172110210908367244039058668630962939078331947671905255626107784910643914320403337880614040066680807249608383101718451765613523594100884810913356342150389641759147393259142626607192728858727997981028557254586282860327053612414115862196272317199756344079707494925416562094473076896725306496051457081634405986490551543577081555881523584863442282398279746319472619197761655906443641230419722807360579279471113408529053956091289023639924707533879817866203591628509519112775621304124554877725824673409042932551877423655643567560638016293454584568158671255362675212537496795376396046314720474936597533404727020080250341358970566126670843614165994133057484833562933072947159453253524828714521484373557442249706156262183939246539918287116142188693636261674372505405072019921759532388062348459368019931523508246419656858757952526308502414243216426808329782149239603601281734211121858427301231113992728280736985642164415742684566580806803721530090279301628597395869407359695571200515248620775570789533701852019237113129541869157736434570067661032687066335111979724036322430870203408874594502892680788951007328956452267273784072746631134423698370331331160743896126096198836598509616477949054080338258279188046793905136506122602676724132128168204948358730977820064277398679064213609237029639406692248691949962211317688713430235279086574634007304474238889753535636751692037748848996627717296007981793167102703523078411478577926636271875683645781424762214468452166891130328558304145675360334984075107982240373579498468274081655104404255849084330262575113022391286721803829656912018388927774305433632187093581225132118168103009673934289036707898087040963264842694906559388221953525505240357588125691564175242339468425268449388928054167987920733225590048111984861782621264146316312086973230449482079965632271159164382015718474822502233644288046696173803274372678875545821389164304518930394767184216756344989420524529131371661069589512891919313737583268671037277805687995936858493057768651350780576456314756178614043827168926711418761239022299479112442167354547130818433366596540706211651726766167649901871858257938259232762622974402624454226525825704041328429014446709175962315049272918955265864198855023793500294104486264348806153248249584517965772889586384317668895156589178334679257283571015511270765615674624788555622422649348388633435826122726199992573472045002609349803188587502103017482382269056695164949321504727260131337229473723689954193602704345663014923546225416263529474658057926342616082424276266090050357590299511234819609154624125358617327205185690889601537247854116854374236423100050495182254589526189715061179330377741632424405824541312913609261706253939876284881854990223064011557633547605307567225637999124726166212641384906888069129658619171337839108088992341420803183340513601552611713365012339945554363731074823271803090521778573491074837655650028410124310214797288053931905860080948748927779039518986891308874970825733454343899530963750474900842032329861489623892729774669417029642868834610141346031577395805093004190917686469122845459077877728443381369448159367117658552070963309422298751229477053395678287898679177414526707817282986258877761146408836416950998803473334252394401891748084150681932412230643539930720274482986310876163893171883213194098434169312000143457795710353714046063438577159619391050133517936518153670274028279082199418320664759029861036765909027624573663179160358914370109055381350581381072456340275331260280086195946203891232959145219973593735781377432724429938422253751535004426750203176717773647165980375575824199167867797286447548607845658752386490992049217752086885982043704373461087062785115435511187096496396523943236922434862506014259691325715150371691718743789376313511817374265499911541106063803573944626395276541546861808219569942163910408160854985076322147409671021672748504498590252832877389652235172747898677308799329469519410361110422228291854560478561740135542694239991086197701419790908637582557961257961681166716309817782060484572821716816910254480314763854702297052011298390245502485735145437966706594577228686145963753650717981726206908970665105065785451504183166334029268649569884016900508917139720871514155659033805055541372538832287707856075105992090681451699467965032039053516581209471832765523979261787331508306674428755265635971594383558512523059322802928069067220692173369782111567133138110371008694725328652505813139924942251597029306613482479817518698881763679957864244411763010705485283636030954198410935112068922961601977487097256990844815538722463036243830073582302314030995444354193519466271281821376282186292848763124196345728541756518456842194639754158197864189052965979152450627233534034196324401070578789558981364666079811088877963489319874924392626869269798170899018612685675125454401322530853174293671860976461346217873172526712664574962839390086243419355969648112993648565219555289119126051062220261764497987399160020321183108639022239314140271420844625948607089582364314438545181007989270691242893986229648582708311145942230486971956706576094033240894938888376508517433097675476955914024019971747555725610292076102476768330647548455329241257303879407529452957641141431272566978587856263761104461013645593862049835366108623928272696292475780777986526741187807622395913896419869305052555434686935966654027133138658442648217457524663745038780070832378568408065572774880722009096002389764029072399955339879821862801756499160458704222171052782120636446821212539429421648116679009211435410898726509268913297611717343289713262954961260235974039612498511849721397551714638991312406277698597769381639813331717300746423597569719538698057062155182639253009984450417408022285067872559276075639572804988215304837515995296702615960963836871560420989835549000086379681420399849090334380203752104180427600763834531283876707007982068417224942815280663758489898683640765607721819404074163654290625535398624413282716217127345259099010829091409053802123606493635844758014801520051962224927554219562856217805257955287030525714201191488918699260717459392624991698305894085095946661370585572136655881681320015206992477536953782630472446356078010772862391216058924367063903038971946146360549754179167872041266805284799995587329151040390930746672204328661008610477071295903336510917461898710899774784845347986631083505319944524271260577121028813905570133623829144407224218189387653132168824835315405817116096176974367668553251300686558486816496187284848803265458271831090357890061254761396532768997401309017595698635438745615237724155897835111622388066657688236139134060039488972599312657883510860749095265632682178507063621679729277499664910752378006733085292425227963926521592252776762284606204173670609090019328458122964838914877319699524531250844804274585105207602972315185448660404674527153653575777535763344635112235967709630096470523137193175900941966470586816254563264458881580572682814896812704829216644689937237850209710096617471849345493256164826254797681120732588280365683153331828040602711561933019299581658199121513577554318586244789432109816443002371752576622048523055808886142037316321270352916157260007138712928928938310346753205322747903443636054189027928177477830395841584498285240017482385387985205009782631196012337078001416499933003245052372798959441391223454717951722638908157055669013076742693601397201753218226444412822132039677833253680722872630403584902423095947730457569226662749761828034985375739465599956300264960697778316321012645722018588435814518375545428773482545185616637261774803037877228683542990333629011289512638932212490539145131010799248853663555052202661252043690637007138130543091383714326399608086368853036487216473146660298671516611714447694838933631696999296894223767779775741608604263792603890045380195997552406634552216315218537156644446752019991390109108318572209481290822486371865928712473066844476065576299628600018325239688211660947587261363554383069532040428721093110347140622472667467405278877254095073007071358080103879976279995779777181617900977787656012976386752361871515774117029690169965042448780283751585063976154635068022472222288598276726438678999551061532776423557127837347007451912720065627319631180297888932856174395376309218626675337519112172306659811758982746805317922784851360380519882518941881218270105522528124695341691455051736780153375597645008965645233665910963942935765123983251236460081549895106849645447092938861995847485337424545320800672747866949572769284004023197211723353684374268908452397521730592567644414043573165374599921801361768311770451273403186720039262092808394147583501785946065896199060843180606774520663825309087172546569816331822745465262910298982968227132503463658035955770903080828999976387492576385603796728583499419249318456287166215476263264852133271798803130302862920662081037149456279501813514089411745766346497536457278273168885715315803419499811908125300460456789423308589178281331873579615301179124341681867776953932550723947252222322355063003485734645534399338430160015829976466794870794218998281057961246938557745747444949625494667786282766087626575465586366392311492294283532844669001732238833741785540511916897907349058674922173726550391789788562503393535376926854744897285320891444366580716474922699183749206666939475226029597265876271089695436415531287426088004304334695111000348304148085558190455739507786374901012274005282998750445622616817838458007711633402976544800565464483687023123965299161841076958033950097957902938039077731807466777540392154536181605572026329853663239309422362630913278730745949124315412382961496205195501388919143333127623390955214885025290767097737998519120359846821637985219898443696946293701169015704659567433593020255588905551880648863432179066278014143944994525064225378111457244236258981472537505374017768095238139390452255041812907297083468552832491439208485209915812656997853572366142071272432693343580051134753501567408104246593298403215227614475936484299120870847457798908739932836479446579001668123308475959513165347730207455186449920219343220661720491037386418388710244505771609104186524448653671658565278410827125738225400407875154755837371254440461044192092396642943821661100019761224113752863328908074817104540610493292305132179407399241702357097535738288160096226315212718721705231622405407040646080121004832988880745340900391213505345567445374145003318766080066047720619878961596897043617913644022486820492004482820762825818579395978136329780141390964214629693008026426908920250088644408194519140033550119071226225057317291251810989886986963533054369038819019305696027548533149237960468985285501812470468176588585148296466667419086920413897552771202853388126498149596957691194396292799833450617214510320542273013280299211342792539490813257276919979272932777572149078229084115932784550137478222548473034486893605376117926116883067185543155693360932776760499171564691000320421252197610518635057353230071117342027247248975822637726412655552661861147667951739601535920445695205263675155810900012432724315505324988386854050078961253195958736526813060267725203877378872867254159173763262236072021765677392560283937788363832825707011573707376161118072053517049543450306997597873674793016260945855965901510940038746565528018403697622871212092656698759665613884445802564917919648029812581072986595086803493813519574754646668622681973774434269713678054147991038359189979488300013172929559078322609219550136596558142020770487122870887520393600874218324344845430661617727328563891682495175564646660748505035569964696554499992840354430322478755885351824537387516717503225820441514910476846596684474826911140421730734566826022805188481392330438159359995570661020625586014148764666648685343947691293133560430134009618407819009536260459694424834410850369604600153844045125470061757525177765077627187289282594949302190427767188031533036522298312737152855714565861578622911717800256029293717843535901402475780042362183116442240243851694607168919535734059448987938277597200216379637251812686202059666822116265657898124423250271308926032010267621991017958883431936440472704058748329557962769211387507795761332483069705878481575052810252826055265199397032578128043585920565572432399327912667822681601539065112088233604995899562359605731516992520539258280774286275632922815415278128586226541656906430432814486008224794510459995055396759265010893773054388034757234758199043630433592464129801837550624495649150002751688924992295759330106321795045390367603988775967426383448527195777303678085837114057361283103204147062801396336665304696807893338240988943398441238346711549930159687412774020903175379247081770832218997723505254803358334137612820645839228745200367828525506452913326713345844498079979531445489979438094517190182945422130053841419343673023643802361241182396945367567003671013398524106266108518635943798784903041107021045400137115851159778977052122913948001442265321793630273987073330669672969314310870759102373450777425214256500313859827568718905964620643793824079797014965396256074649582099603907883067959280614947641356190461168367823606321302446503549859632723343366376600258577524380229233059841582132150734151266926582280160983550224853383458202326833883267467085981614894404571534389507903732500809198198645414621141921453833276312874394605438820697385147591034739184251005184397358945342755156089177524017193281855428241503441863327788384749771911726087599900030336964529051086186166711714721273890987588465475970820643091860027408976947437317232592533835252411377721831565884745333988911552113147277433465388089548680440001015750828656668999205249333584226697595151781371617784422005525651508697374834622723230805152242729127987521107236939092057367519012172722115379447876577200318526312795809684606342817070803226321914954417457965319983876839877163421742546215757306025974231637773803915607416751575711381163367311133746800713442272763438659917047262331623860743206062913487702764634427984416068133122831055199552734086208594058115692643459305565201240777255077000355740268028487143720950264334939445138691554515635880870816638220910074391085055665455504036469519524615666393131889189691522970864376527692280083367586443526458924203974861977515638555506549278468935532747423813218170115043490665586448271821567424207510275496534769332268942721750051443855037409138813833613509605411392355346786547443639095473140785805539177478171399037821735618058718986812848330568742436913835289957325544241116326106170233434897675396656945842438607639604206811127787474383357053441305058996874548947467408961359312221185291367823296347087841005074787272315466236168189872478567035241951524735505803289391004119187898718633167204257760798267772397616441211587835594898546896716780695334935421416055689483161274667882662961633375865945514233058389604675701361840090992890882131542866664579380099784727111681573384969432531087099075869924471660922541058605303024091788720096722001094173161093398768440035197671899795651533284574505911086435139808203374700081023901957757485285651951159191412257181234965278768159609859032572779106339752183379361245897233032380374140992943928259389121940831234083444657684743635040020946689287802032724737481107525024065772913584601504788416998561012219617135382629647792567008634941185219739936031126543157519278826143041047456878608822906482451072807917949349079772505487276862993041994638087195340210837177671818030873096521001099504733152660699938300517645279467210284141714672787721785217758417269227493032939413395761440856062685448166003472327455252271037938436482173968309006650022370904064080780556691437724740169191715505353222033551905908531140613755054928437539275359079237140008954057559477208619949529113712206649601200672956527433439332694850185469626459041802339750917338143877338177472691108796500961603093676115129936563956754097657238126159501254219284315163412130385608118768964341254935964503221457869273393138685554999702315472422376334814969421316303049218874462644814045971773127482700977238417298008587140946928541123101256602082950116970768568147306588982339260045502004878935508040947070275016222917443990519576080038952751855434049344135954801872968394268646793700790563381021243660491564611825058410049626049422126774171954689575515551204003310594070660632068977087280035396448602002167581728764695012219483577594249527005058252315896579916433491469633646448051869076432706354488950579989098024669305600645963667414005946909691848255997315953740663888130288781609257408498970473544275500022437313760578054130393744825548330170138134886348250131781838581861988445345211361920830820733043172460964908103869679810115960946124689251634012751697841276810812869936089982848225767066407773161247506673351185227880719538672506353887004391487040997619485754206003611455009809585784845692545954576711637985931719584073966961228151413936310523019086425360444783470542442672405766675794139850456451680967658802105752139364567960134425133680066130647330000095345494198544873983344567152776049779428119396720781097585699431590429487591671466533739561766958039706893350983510563658339616460546703652409623804345673850070539799369863461500991836039320320408957266267425853706618440035122289018541678821911057468831647834834728645260295773327415009124826863381282179055903479675061202011785089210522370142042377542165627424012106540608900331091393281024179911840328303361045452947939117276157738378195552784594017770527451935637733719696716696842775253906572961573141362389946833683455503972688656936040474682951313275634316211318495727087712018808391357830297343958957729614917105040670068824911253617743696719863128526009027520097023489015675860518483254644523181682297550363244119258823600847548510704090210096145254857951371452334456738018804384410943385242578921634866303390482156369901328567074989525895295606555372677571435730055580646316534627420315736243497847512929967981850686309548484341579164978789631664086956406226712972008914887439951562946369243108457332016265853795993285463180993402689398114352783719403860988179590801252590611473083400158932138939630463591424946514371811028219884237791105003543607849254900468511528153550152493497210428430473905369963762203307924424138137523736520151974162721954711851200443025514654329291377123000543444407647117695177503378115920564523150153312951684262749027004618732000437927205836890214301599041352561295960916797538153338524057188592221530212459421365255521171089015548309374222382765169853454098506321554239594180840680937336651660045334940826668374360801472880159290667209588727419421069030432779610202266002831550074418068976330184687585575916687458077966585685719141805635115746299145898115963370632985060039875758878460532209419365856678734376227499691589405169878025962554110600002903538218954041866889927885064830571286210688578780451671388284074891717127785580949569687326828364492202595644912653785806363249410915925345461062697601293429232060180771812736307929270523716977830448511053342447533284197500717004769173413491715045246062862974516167686873347368057702737236334057988866131121283605555925474505703492481905558519115975020890732362150046783124003163309437298976645162781025064434323515575780802028572204426692500990211322040637373145547665050791475201312924835799036659470180021484075175147385120428981569911112472675985190748564528192235643819538148959578940030932439233584147607085767717541533595833330580171027685585312618962448327616450225501079434401222375463087815512963550392809010755258489004943424077754634863020617787429387269176781293372742273753284592850987920745368993540359111702587984880713667600945257699773109660747697877249474470027433793914523889118391818131781358348360477151526291465338973923574914827105714211281511908628182052030680633342715230802400164161951755429182737608746499560949957003192641497479358831501112225162772748952148800620576354941370906242574540332943587661477999118585396865891281502208819248327442063269564016095107929734030972008816604531124790317059511621211419200166814542672416439611783430503051509368171764657762653391853060665191657736332726873666881600058839869852961818629382721858696173614557270792755750875958062188356723746726437380975426916567140181606973823685611993011173342141249161534255695466998388584556588204207931990108370707457371978045016426588445891525225063399612237959786784617157402264439941355077860715879424127511066656116902913892356036057292184800044267222776460945584256962679990765350310106471641126077228259100774006173348753076333290367614140288454961716811603130396233388744391241292224975815977502702012078937624015003379640308272752480462195918706248631985634401314550836628685644241573515010575931600019684122497739244360256958027010669438528495361657505539892801633587907889064875375013858307668606395007807423271584297594383011224367622148093844899625339824528336026996479825186854986218347501283735358483974606566021089519409934381721928561999399381239031496920845194108585522814804480670294700889403346962986548375499619786322353188220817569625231601416022478768680554982116499485501618590896218337804154406082816511953609027222360320173064115168892721266159932543000813125165761238842291859539880325395041717874453985160023980728806531748523380059071693454414942023981764855985498641085035389879821351285017280618393574495600537958265986537536878160905258113181484988621580744791586092211171109868027555120730761772676785113922125902129867023275996399729014599326567068649116425255725775235632931557554737602554825299073957077817375645095666238049753218049139068679108256937105810176438383597231510501398471760585136017831901401956322669662507282926537069858400693707870614378364208947294192466629260874839815907446237340437477819379142845479955802404231208040209425691467135214633557362392839820967220619642047409436319347632075773798892153702284866114381469654156321204114431046269378717505856248425478276714295465092838809609510305385673255089323958694967597379846926965916096399021504291398391179863143852136321622085723220099881887766807498043467180805769172368349012826955579820093776109578983970602135921733901239995471108650122271122519637800263913759802054395679810302521605955833327287968018544597277508376116064326857130016451494726028820003931630774423861158852954529398736116190963764073896084691798470711699052495534614628162035112942017838210934364140945189074992310596741077785667584172350109858527121510775439131937750995235598332534349891722060231789668112618540825756571993734591276399698545150985039632483181035610902601507710206052888311389333332414140707621046160532907780005783674776489297570817975757308789423017843536024363341037420142743028856073744718520459307518984293867492928542431759983878530096284572253257979868615749651865524261057310905348789076072777250944925470961542359707589086868005469074990857256321442918243975655239916374607165880843338091090926927206262561282107887033537393147766771490646804437763294041170737195813003162582294134463611703938550370070383167997564434237959934407501247160053490978713448358914066059225223361624757295838354510197448330139033027586902734838457983780286859590862891906581452841366218323204745328879618837831222214424834176535518634143503690557534587525056197447392966764112529909698667019182703817601493518868371481563481786620395557758045184809384929827931283393354583210102328573464514042144818243407893789008938840504178884404070310973936873946533681552107760572628044366918834823902233194675979823538582830749192963977634591527833526794797184791169979881191522205730416892946060240656674522420403076859781259043531891363303531509038434592238923842649786418709426230160903956029770345967020754768078227299167269344599059250544328446595465931587685032650245198090407746630009409782879444071013515939516547925331024876296700135594201757035497382753668987562158465272416169722339615410504743266408194806205748589127856195756480591918991314405655281583564514172367269503643328389476527197267060166482094170562695257060947270475495876992016015506030623682609641343314253348889431111060314343798870579964527071186572079655045689135804651359251834721161923234418219332875842526718756211971451692802420341948966589224195057541303756785884102434864114168641227283199866783178986458512559411568435893851374818893583864087224934955117851162473469099140763464481314083663206894106124217044213743245270568184047843333078440678688396604832804970248723363178621871107239501963293963640576826541696044415657190236864258213671745333442847633391798038539981936572179795487236166438973734367907938850206891633269017466225582550030294101290020902597492064988835620996036258371181411909136405827709737726883218215607664327520743881588691523778439862074094021160565335142667328845674226487823062445718619291259686519969237033551879253791568435370965257471111504018856015922751818660258311723876621149429457724246328617487276983889980392059109093445520866680382787495350437706248302911978846714123075787791600239346352547059213683809824529339961342983187082838730263924122952582056546283481118052935927073055578631183888817142331960613597746042912897192111882488188722090530027492763396119879353214881843733691193571119587925701098132342008517208442310258500107013983151286833753037205964091773377859658237976932957810961790564892104181836502581863149363552332092650223082560161542756824580295988913387306894702400311311389279029026153868697056995370490559964153785867460210105424820255117378418949849254906116189693740022205531820406012619205179251946135502235422564622623210074688882239261284877944345240955371443136048923802993096113239332095698604525470071596340584385434701509539382041198876846980577838833055732380295294547294345098388108298136787873088579342468014286920991507424665022220161531397504609676902107497017930633116815142735033569454604855998237478125163070933349858831636521375479522827334954520985344109978419319401263390733682836400764646107261794733111952973656958081029875882892711722138684049051303072660974722055746517236625741730703707067080585366376788271311189136530128014361157039700883325573048525327970121027526760184404977593486367574510807769701840242761153128930922190116014547134604744575668941917382201016825808229155545659622052225414807767312163986911468168020625107626251433660876640649690992987823138802211592235014623027274902277486160306601834550624034610687933776106646736645218796049656273304185273306248273186414083252660171000659548180950717861068949879759079415617942786525012214816475253219776271266053528780095871194254489017929435258113799326445449029508654225603322427881111474659723957692772500130494876171041626333504814250844252279970989775643947779042954031643982080363860481364818922820635352220903868508827420468454110084923615081913910297694841633944418047093615101786886759803266674743535160412881231989524040038046187442862712394958947149516081177858801027374805212667850269917869712003154691402415274698910300423678641987607685472093831262119985186852139341708671355968430343754903561419644321418166473542943647257010863029543667777777482832934387549241731517653790905976414027719337569205356449701191760857745214296992988879943785897237652574541695040643895425803115142595005459649475060809106310500251911584343320329717893122337611612525681101970941921960632266438763594530388776740704390847350628468491579554476855559272143996733454627217766366343826609377470775538579972797260306687507350439263959066397248272989733015877047554808271315129256942692342232996422754725559179038899686945087818401685945288096306820260311207330799509005234417155549908847494153048476787122136127847168002493132290227967763709909246800697438513826382662930178717422616408317852235215511982337841978105361007620477984915768557657585886241446055583077569668197095265669205288556327926120692438172894784237404782562327191492143349854270916435359334081634864860287417474108160748672422028076764622806912812359909684797892720464216103508092917436915362046930011908268625369621897246831667476771802247307025027735633892866367766687691327640457608751588591440312448329843627126209882927541188518950636770855181914537419725662582229899842090862967689021480533370707117636996141328729790401444820402146575912813566574872772718893659632818425440902892092021962172307075928001909306468902571444134528169343667865717122846846647388016017566201791690727372801004357096328409431110994642446262000237252304716835130758474328853424602608338346272447928448063501111839752456024158443823185058216009188431136520115870086378866701036573239923571083194250731341362174482588472788026210255142307118907650310011322388487334140285180773060927409803634218984233153099054350948953643215999819031910659286591570215835287189569139188574745376063986158988832663323598550390804448864917221363640410967092324711076220520461316409223528115922455336214571136334069668199690539273417237059750436346331217230745079594022240165758635732541430415337867571553675669335528314204884342654880037487842610970281953379584163444400177606064054309998666049350966335759941141151774244709721191008631081442454169247769706129819054855470598578119326003782774956299227506665159676203653744317283031390154332721644908080281475338355777671560555280426841486681846949342489230654520722634926743023487458062919821958309815878441482364801413174373419367846764491883637384239086760426241348338104471688945316943357883463203158699075594907107918463759161465183993185079351248145683775656685255799337208256775632788556061570274826868561792392385896983349250926215826034758011334261641809942029653104045816622321004401582566865970749705433954907624580417049561489009483511605855370500556654534341394330324973498947109991433097097392709049517503505841594930006504140858877938449122821791138836835877503451241356384565936076970348405983633949643729272235886661501125038154864585082432535811563065211449455158272210653748281427193874487077767991998231363684612094361100096822918976445447790618985391458292881287184154405853660407988974561150921608206162252747759658023679242216411038166997054935048780768971067621851689446254561495880380594094445940030419496207344179168776354265454192721542528833693319345771306725297691598147107564726707054700177139814336463001957316288426610141282102574338349708073696574742457359316043170886033922574355367832613158838219087626759949081585473770872113624256700509312483686027884375966995507667903314827654833532224253486460560414104800211238448546368010787638397622231287223034929248541532242944708071449325857502355010846720442881243947101799922507394459746569819365086381906582330783612421387482517893514810212947479747654594541629211804411363679721156796872241402079907418302276163884544440676872204861866873715282575472978333618963059082879773849818656760785284496254430810896852977803093658165502524208498338000078302326772368263022213336341836226893825142112740707608106981297111470053377069038751390925143082664983855384703130213530274594026419486962631327703022104413345028477219755977811636787045591995827348839888711645314301289500366799881686150727857290445481069487770347182434342713149711126414417096527760215635465790994134095503097668198034350939005158807313851288032516664932415151654913752190862322278285029153312455695150674459469334583979875853720119677010697132856606084268595582385620763433367734760371862830561000752118490298560540934000045706900057258288813019158923994134583801444236373034876131050462734808745997996543616534197520503534244752521277231515448002978768382941437825819759425920794254263347431759364537519983252911515390337458143782959118567686021464581203732669630691672207672246079769681936382301396024818850490607035604889622186280159705408301646917277915390494244223318647558045843856312522969712026723830277196138733761950029696980113228603713016825287677513489502224869572525889376820316545171776797718276591581157867467177764032264857507353510384053275025325653577688233690870411158961364974137837347773472975692978766075216307533215101486744198181349828412497249710848243954072949484535136900077160803771232506324429179277671169285163508086319547693898700679704595738302504971659581861315131191142832019424766945765814096618853651489846129236906889439092254873342952135370905765372332730676596477561082885175270291146504135069547366428857486449783796901533463751616396711213032968141568697638337056291782915773732362361092678192381746961027041714573406415023484895515185570889982255237870270067520405032480692727544021011543933354792261712716789466551659447380877950527233676371417766654908793576979930508321591165420158825099497551148205223631304423041347387977144438293737593443035088772658977160942417339636824448074357059552278046967043542330017748375841365395138160462744804939907900498660318620038088885496708375949935811408151798522376116919436283666152009818481006777150387944632096107452676931307317841740108822051214107214182106496505125805488277711190423593822629994196273667293295567790273344618973527092486127939560721238711608308450711627885326841325374954075602587436590858343315918427058784727704083290840030945279851798462432370327469715881245972906631661907177171163979020020213739791897252610936008462077959307663012903128855130246114906192266969600019690240226954355973441487476086134883069837175688256045768300786170890895948345456929014331998159711873038246920436921273550731142587815220048876858557996514555701778422465116183285466526698360628259387545680360928510354544443957507913179151889597973821594176659296804880363485590785594577311299287768674903761928487694302858921710186040374203435520146937761881602644708547013297847258317115759195978919245369717361048312964527937686907028157485992965017782718705452013130971887830374652568274059745881650634706345906460472673756965560593109184610828389842525540642756937970030482774408712684038850767675156430760497977697420652728569915648564752570485161168566332805561634827557976478999182359528982735759373154035181892184266590724560723239277665070107685537408924937358834798359760345532406173151422142865705862746957134462531090824321411429776446349203314887387377914461644402515161420228309740366343097376131784506117224925252792060299871106093951384486448202465012822832852781929344989108494718220823028144965740181478091128950773643059799814429324334073132945925047724154434804358194003641008236089869317825500789651313311820806881779214262888096579113697613229927000932896588875065670661710095557766883034225704069750104775527135381801587413010995485597176597942624247621372752145878589524897403151841536732252713251498146662589041666358408128113230806453790458598552290563284848924469576814000462036394413634883558587275271446717226000125798901423790332761619343345522285527153712414137968484434296124890084721202139935590797421080771575262245130441574870918727597943693258339303033811299163754529509907818663033396513699984303859262689212575626240699326059504890046327745783926298160487377211256321404889319974625873537315827823229070526658319589796354468308234334492991614203534795396112337025385731812014922226257321677464852681716193552412272481316979181703114256468735742612296043650741672372574659828473634204428550274456371794358340394964027728475199016909830756627296981018904036188844747785503077543210268863187024714851842592648104219199798631399001757949434272868123210108576690668333982917797566622481481439650998870283551111234396721723359901077506423172454249441265298846180595840554533440582356617372048012555052445584006341224237827927499516083186807224588487215188450733174833382966138152445209045716507776387619462094957422339000327256842928667161392459100382824606823578797333613286474547543806854625151872252017674816630485622395538504329695975017488972731794373659698876748472130301399294146034602907017204928063954137564082711835501852299544413816555387315425139159371351924651052346797975288366799697233692018989847435372406599002451934723059200984158163077739781333661356976865052597754458760710953032987546067571173533577483085298662507610312746332634324676493223582250390156872603480593603439606890272249290706980271882334761396086290271437053765066150843824935388295046691541096748202903619268597379388755619238787799391975726405762327371984008854439924078195833701995775424552827530851243066535876281437884828763995381701842570246324030561225467368562826704565437589984602097132454312218947446854766911968468579333966549303187164185532587299175491155343666141444423436125327097466559656079865089418998156301634200174517178047715434137403651358195720120700440670356035368500637635290906053033649931177121099459973459564442056482057708349341628456224990419273731146442448320803118022529307725269358967000947424347926721885086925345599669973765373209435380674791064503044133553728406194866382041564227992872622709761689418037643361574460620781404246913385997736998654854784475558281315271385245689239826449942801653015050985038551204537950272314594803755750904931668670879722080573246364967276821958223214348468285308599266917412405319318932614920077221658643637048916935119550401722340841428488513728938643747994099569590248570644649654906409617620751812001865193795544959784029721860456490003196564333419213417511863876555779675385789854518910541345355019860312604856582510240820124823313962041070707186283184195234922061647721714481514141152977018738757824648987751410754082500874224806023798325110628903194895970247817691199205845489768852032965486605433711826579844547862921132794875972910570261825946706653079516082290491444518574096683239472028915708950133531787826157300057024560093013583775553678273982042117216233271966981244639900068115093959082788156173425948015897639323556028706488671354712060440799104959986265657890853700308675274408106228667668620190315521711998368700657901996716040954457428065979034507073629822774977704818381844235520376952420532003185609734620817469864221376977481338245312606761753860458925026779654156242829977042627117051899860482622522357186867921933720138652076788254939627759400513868235723424238108475553591190828487901236848656498644328652126040087877556754467152413209520547026574262986536900484540340060556340299128949178108490335855184754159121740101758240522450749755734224121053364267421023879815518017463662006630731351955212056911335669434008170922559759495903051836339855348326604824197713205430255683901091554202956947200190787691691911955118441724882985653613649348642745037128770577635311734749028618322252585073764187596893613946260110330579717318053037884830431158955424786557980639236406697343509373370637403842994030893170528294829848827718491738480515676164759500659638153274219749954780480105128852159766863014692698297769955034530776704047481889917723594323430875764051707632156828319905640361830239406617605263693664061674925532642254943209694593374803997706441127285798216268209221127863684808138746506406632434907174355701690922447494085832265093361165054796465156663521394252671303433802947958809617270641475070699898754695067974010452923965560494626015585248359297269756609515243100794005887836099774945918734070765787295811086160904150023606686452155471186969727354516005219981511293565306069131640971647087452082222223088624565056898252572545538008387898492883061737746961600142672236499264119507156182023509400562772277659217316243433154090976034383931613815496595688060425755374720082284679234536739104654691896402054293826470569832569805103735058628771583903797941762650846724976865317634237238872458293196680873440519603898920155141194692664797632188388244700248247105790797693495737902860156908013258441753786900650825865614520423649915000839641095552110961194055830315883711283228950036576080382264608605206500609082914106175807706266855044568243588055017151607478806681309005116246931425035744977394430614489986136017461757248413111691224559263259006135299303607122586010379468309656190600759154299480245973646961693979248539979448568810575223124648455477581655045291756056376731812162622051312124205690275378156662209067484981005035035502147241937565682204716268410384428942449242321901493369581816534628537088594150418568242230175021698085038518418622077893024467859588942631961774957685891029404848290815938788106322771585309243760273581758665766664309363520858728090860733086854760921957295326973497302990946629701121310752258621234300451389263008750199940006628746067792887458990432663736113267121582143854254847034633831677233926807600584451400543304556704295911445156980975187032687611945589945183048452965495052190797253656243318115542385392568641307275844980809626647205544486224543938959530159643956266635022985680533467154043943087949573624831504184875164982888729179345025369358675126313088211294038604207664732829965099963773739851973891486856452131665473712455854269148105743298029958687392595791778127640682169276655924604354617032920777482602288612947372572392555133626643399963786701627837224665593006939095347006649844686137533794569241798083330411659160244671671401622666780114434343815607547264498312408897860021157538628016917969680325841241931626719157376192919011326424190784012485893620491562212988058192648174629422754803744069034522473989316104316179388531980001322900685575615067599089738609189861602668714322796553132958639886214258977690864931708628426172524025836076534568170670429853857977447171107293171131179713534569334241634090895570192922296643886009111145555948530444060911202556849675895055408105006806172857418237455331987509997023046991894372938909154033761956946208012996976629164872458246543043229005650029440605945925956607283636912180550831176087650577542357360057825953026131203174955439908086242941914405010130170877630341754874724089755898570981948031566610065171230146296469484171923516684650231694559887167801173891669131770971955231431687286190024304731531590288030138199048309058053282763347812434737821502071385631350160972390422649591423583859640793114587440525532693184295786474036023603280803423850595731688950318452541968302127555217342029434219962054329423418552396156205690045782209765765048690583504802585396337245225591552105529401990772666478860760514594119851877392281720491955827959557964935335910308707538260186184658308510905450914490213403313893600113643601649085830235976953112002139778550745897302311862225407476233963800926749290763705651813566373175778387602968359722961940966402807508239256456077168113537364613354613384989228515208173700010187984266009231651594649355881137142275995906817377122078717157456199894675940048153313222203478605455146361031574739042529581251676051053042511404994824915155883377237855908387655133836134711561592888739006576166387711179805845724944097077797762539948813336363379981016199690492054545597908592542873272893323337353138455440872506761731020806739008901360999985505584963824583360789497145234362892477505081340249390783258655395610053466423845546663782159720189261234095365866082038960801112365058013183718035800330390360387758645308771364109651685148103594047798710336825929969567655155611579637594206745221063775533148702500256194977614062943375948587959212714090693953712886220348089946702887382055920140193427801372873050824590654082500740399042186712089265575629030210620309011641344663080498473675516352426405591775621093640699660412174853075125006922911732397339296864250125721791504740059792744094505036485362811974526354961672602703404188744366290139935074538733763541337930910104964691310515789070682105423585242885852002239186783535033946223873547430234983871204070237147210481273836575558740317022705784418677696406055458653083170223916396503150743814450539384688329940470639914063673923925607961539732698642745324598516010638610801949937757166062658208995454331862674889324287577063330862434934167992214688092630757538725071469149110713598167423516525034708483081793078218037942654418308045632632856116558615090019307121100820685544541066775812319281212515067094297887495819088943741495880325514735705384167431049150543115881572994179067453951668068302142743994520737218426829045257338254592807320320448643264677396738970018031419738330533430146438964354268378847858269771128892701116311382690543780828602022002752383363731997394233557496232978149933569120244510064669654174939503982120254589992762843138798993185808520509529072827602522974157492907091137790418498042734910484708525945313557936581617697622630757870747038207132130865282504281888040946590656164735538589495264617994670406037216962699943316540027589806832677991701829560733778498139680629519412980119665339013792322245410548439079805473687733638718884843383976820606699060440834961120507993111341727198128842242346291418569923927856940825894999282095595938759608778931003155115550520195482188190778594064079023262943071184067768035445471568785567876025174701814510430576504557132523336415784407902422869255974590332310614313430494719394426954590619828790154544812048046349039117180292532095268507249667076934018834473693061725927256176838459065685006537869831877998695116180838365338358082957864914311930970654532016445783254968379261140288680443313778262113800856032471195082245919917193042693303132333917234910840941690188732006163317814949953250778382630984316114555817734229834148926760997199774577144470776847264845522053895150714902142921862910401464623120987878787190709820676168917803777112653576285137949880114212427894311917622001473182562125665444586439592079094195652325761363604401947361493704869604152925953300744610089357732694990194115409764458757499808650464846436337078498108341020016533791970294836163155196107414202477254212930266892888092429915440396461460818910829479561941544978179592611213951295390515747020707047255600158081250415735913907987507382584381062017747099846491791424696525491007766239501358591810992462620658920537715124076010797890143640631548080053550096975876101443943415688845020600625585859969629382287760877419745004784854022872495157481684638250585472581776915593354134829834599420182950668204631944361644365479019063063151299085169757196475886869633792331497000608706064672723682381381180389280949268570634766647099150866325541451622930052952638677837504089259346492340457270162744698257970963397689479588932833363085299452264330925663072765388602186406048281590219475087919297185402932928503737667815311471715945226519462510794874242593173264118075951962201751654886545070927101677939615909919203381200051255124438949485063471636789366078626313216484732243760651156055101547314312701689008247191279070585897859840391860766915880749313559381851455296459775609135333309055795573690904414072746846494643901831301900750391627498243946080100461638663219911590399247917402158903118864361119359012119746230026520422714762416674078454804569624401034663169376087056905769397500083174688456673152211098098268157011157106714111489908768955228219211196777608149241225302192012163207717258307965941951026234337484905015298135000097459535914389418450013132944974429692047957600368690787858402383702591663198210999542829449235573698024794309835065826750793839854992002429520682881744324786560233996036005473772300990241660507127164022322632125534994092935403889501321350625861357640194233235615352019284144371420547343718899398258336522038955054406510746069124533643061768917067388677293258009024070065912938359926351017060719893020671580745907311575593411233196858411576726043893019158506467152122536525290418104243007390069650664216495546069741325603711339131698642523256689170389086512214257192239700546766577621155619849242791984004976409398522138722182161970644551029818531419938200222199144024698751603678653799817887010697201456511310429279187260819513567061961930279776573318678941124451341952163842330340330331690160078643409959697637953322526599569376107973510876722171771181426044151476226273800314358570978963047055448357237407399174289275884892122695639847107476366576787493422804776544467884448841422502663097215744808376158118679363304025992596179408475970609577707425355812834644670992452775363324871859526645207823884022908652813007037362523532165772021860100333551576871203399635607695647359071708563621552935981365618418658100572753092707693073483550700094574923368846657502873961832019385237615350125814931882349167304972441741271557671252686140564424535609458753039874045169684741785187622607422037188200124488661925031344812960115353998271315045348271926625311161210445997874355039467945356248289839340521017465665614640603735849135730498211258785442026075780040156743856087383887294378806572482540355203806203565815138169194102106855875633809735883216630520488039804821601454625862162802940590904671694061327080688571126830284608159477208236433510435552370078089701665760128392761013145411733575098600846918992210656932602346564418146546975285561955013985575730765597850706283630284220628446566775572363477426560316196960823192022850634917342840184551497054354258929270609025043836075525336339895933811976496205352827213923130250671625197264783370630596584363266131910755649868389963518952891296695740048956894542018621670266288062124291910219214390422371097478099883890129989036029332488668454399867162352455545221909841478670945206204658608711433389302613498794643329215308465752500527627656840564757108768119239882049827908566953264513944611851957286770182275522783133412100731799539103361392387504188544248810379192579989745583639963470881845388019390855791128648617150093558899354115345010142192412187578786901570786543221831106471535241272919422549327353453665945685633541671832817453185590762705644341485200306094183062421734618601812155040266300069077848259372717645964663013624169154340426449077323691037592311316975973826426902168591824238024084982934666692982737328476892782653448577519293292783138633053976930618879736974190588389509724253114194565858798143358079215254908361690311815485748557768953328056436491292598396622048237971266303194369601131806888450707686839508612360883963550937484676269834009271745303782840839701644576594284061981925517345314911071849026206347216352463201648180904946885787405797896167292310041564339107878524098885627731900344613476462931005773412098088323229149884746280213477713155237284406988688974311914686452475301000893206877407208293235197508633864224366736032272988348245031135541219593562809380845295568375300679914507353832266765938878883071398990057210848146531571406190164155917023772226115005301647430708055623285153680707253217660757838604891270621622486527097348403911586892629300159445778442410257535687951410768597177315396937122488663808048652207887759845474165148312523185212486808038728809696687989767763283813529806211670858331836277083239828570922730230412322167647371831486784144120433315954209672570558117682024236411134825192749993458242733449662173740116402199675349065386256533199703255792550866451337203961703497156719945018906889400592903260487612208108181356753307937297390043466967410240046914106143288967062224661402317961058882243111816856332630570711251557431882862306959249646122469684742974677098353388409106019184379369083617002343515417038601352073818352232043058667599247427312411404366889859093161086498904329718593180741287782962774495720921124065258724189685825402264254222716692440189022491263869178062517756962058912645320383804813118123441900710826241002170176514412870144534607269203791025349872717266393082647948367375465230829798324216948318989852921870669916164922640779915434468550617946831989237586402217097302838221424760113275908256385768458702054094636344614816639029234636288157328352145622709633891468197692816511904972616926985495082042259739272338519088932033994326116387828828715767253867991600443351092170909063043342187235612402957980073576664078159068211247020186804739078371799442841441579231797492789889406318925596509964108250825212140070138016294229643049959891588105856303750678074822872966454809674727592818254076708888393817083820062694157534336825952017135917790323020162842050138268924241970804628496434337038769705446505545648593659836974203440209254915574436673827853686115815167665780331669919324783870706924171484774572999123580246659032297231067801799233598445932888193172044883313983783166811120587605044870477318825346036474580805824809039797013170434951899184132882701672206167703665225257727657764421746396502087471709991216219791330810633011812796211188722851301357337380877434933882963130098497219331771564028450211862417082223284040809808757907687715621908000056773915976039305489403238129240156301230355132060798593987264752505865283257254528248956803013624795311986821143742031500679749065094273772989728993038460749285407292046019290161297876219385146019367646469536772910983371036068797878167587554079739553243578631589333969924495126530270013238279756735522805769343141408407013214520220009882343257318835069613724322348984787652849058285067772106068017703357991821290262821803680853368996850573399963369171215287717526445891855673528073855225211757546352526690221769179404011359193623083513809726997031452649193246517530871060262629692719632140536964152752297615667448335662376099471315479159063376800992749712644428864293492177623964369676619266723911972704060121263786214785194724508980260416032203478464774024846659884220233602003857857566675911671374125248794819989900131481231949336559049206371737829788263365286884690252980558849360949133564185253986300339113957654632127732542657136836075428154386171477583809073873234770625468616812353536860472154937140057207252776089439870949471650309798530039451036722083289802754045366258867959082901168271491537950681092742352880854740349548308201268835819567347448484609312377818960500143149278381851661388110736521114420700706604207744355023441558991430501759201311154573352540539223128577087631126941398547754280406463052903561313149783867061584707443977951725173985840240382803648256214892576413121673018435393694137541296550144797119549861010733197452454615901106638158003858515779071196177157251104913501575157395353644328572531898188332066295344087960955614691348023513433932839877502816692539055768183442462150630874287407407069493402424659481720486260116217915105924720192940834143277330511932875867189482225788726363887525551629725049267541014100799210200244785121245327349297925755157783856964019447580043289876842978128559866451125222700582254675184220184941049041602559217396056620071246937298398740811900178883173929537933854965244125548138004203893954736866262281874859606447791858667980402811851811202704774896453664923128849233612173892130432153830993295650462732197146109018077956687069114910609765011413648918402144041337980728982051281824902842062294033848141556311268449410386895553028684721836533436773695142853812440665815078375416768080588714191505276478567287644956061393942680941885659746080623953334781724285687745688814574005562662079317828457357184280784256862953471649833539604123508772566214722005116555947498244642090350580828010015727165611577173121444950385273685112353849220156821659134977053277348173518637166464659749638981587632929269125631480091822046221356211348529581402408311720923921900678355974197724380921572293544920441097190346406059097206467032207004664123285939185490593395914410509907926471582441155355228527956548857999649468670321067010179857748510600007661317481215972211580386443694772538991280801862361711423780247758423160650945607266098433745564755528462547755794031743156422531252297656619090701402905808737785808490373752589516219866107725001010017868877215504835974257955886195604497951206147670837166470625432073623235575746439019579151782037487682773192787265520838985860906659506066445479767902196982410830265201337083933566117452469258623636929296825864795796156852302220049055933979279174959508462719408453360733082071307194219770403626543590674246949500939054057639118246629616272049978577223507711995977538072241196986796094834780684972015782619739116947413007961773112775067371921815751290581794528185223255119385165275600988033000069451169889635124163500320046416907398336571235414830497888821635528848425935280325130609107802692830211367480387808407425705666286918869447929227087935248162608027411251401433243526251201428876062081960358362252951812029214210476527603337099065150656805943945385958013515703066841342582752643034331130321116585174299726229637793143815911387686910313060136945030536460680306638553904556055245717621920656284075280326440360265111687666575479256171094899729858334425911538690423563258256231862833574272997662244429170565908879911123887876733758386320103019746126628182682467307163893907326753474739107236029721521060603172347906676468734838635353593612145632382781924313796405751164320401003905482891274854797030380033057679468951577533264546225264060053049447699639972110108006985217619275189722737540082718567955432448892426021998460938926259673113761195615666634790607297632459305489199492055672061463264903290958631749179796857434671633514308987302601472389419009081505118390795231190066241277798119220583886013609884507300586347151909052329838038045317357307515170387973465958955032457591676426641665141636203813293271141348084849506357413560258247299068433091717210598441537734775442901534304889221389285690305930446823939991826422217660493618686232879592801831752516518733463540113255883392626701824637639716062230117895178759157086602382667270183535711635740421138224804015777421767201837138037638798667468243926891041644048671569734137119309491864396958833578442796837421762866539034984913186433332587523210548956893529664740384561876595200138261105772180683764798206593116317805694542531471596667301059335344888210002001122338059247318017558202050153409366104843205583710342529051422560019871729881722369694653153061909567061985696318152724460439408512109553613500314721762310315883038409408986249021340508878535312495992513254593780436959832100742703283085267243552441821451165011065120046207920484671550509928692520838630433627949442684947416890642984969062843458638072448476793403987681686234441119940765317252021406120319730384403266494718867564479945086607565894112778529627145055165441869006904723754357945600644974678006286654956686714004476430043079639388846208872874543135788630159936960673148072013611316352767774615514930642796231893434659730409194132465250990043032064611738925182148716479926596459959530158845616975971980298070810235190294216882204592614663422150438077715751701659808374560275407698528592820274754246960954066726573533164801891747970971221558683620939523348173771203371973300849836894607592234923189881088814511035735372952910057339293097632735710236968896875379425532787469714532673114264689364725073328180367096264432550268873471047749465558656133355980100574865933467325244677475891992441782680738224184097027087695335391748859021405830798499776601417654655512854585618294702281770277143003445746607861914870958637927932697831500430050478803534348481938861527562546307696311828346879844938879955352489662835650712789958166730827226912478415921931997900774962954161393535139483051315071710536643400228541593500332035355333476227064605073657780499492086846092571519410064257423727140947506564069935630029271319703832806680682122683203166826973513211174671471933293421028606572562537891602979626302494738818711317853500713444293235001181674179268167872869218970308583423297421776311209861804076400892235446927815644177486923389409262575644292091293891135894170917170586559003582051356248844698095331240789910660064340727196118252205038324876429332706778712007359080445445882371834059182364151578878566801194906100656410829688017036117041281979612284165682881179544145773759355647623122911591251910459347731207017608238165153486161243391548368377025481455142353353286873288376778224306247150258448220743781953796088345472817111944999967024901813042620758261448267605202429337739080864230424266765864667546110644081111290797487919515739975765175837794766564752992630085456474492601600487012775689698156471218252000113923794672886426709534563113932151021572218775114358173442687955959584287578764162303060856206298906764668113340876837803978784823267487831304186495822597978922107009798727697171960464945086083979749227946368931411368827062330262345798805750713285607828398607104511289299752854666523878636239154773474247617279219329537491714333734890027263984803020121903171400361687610212495489031781843583559929098091861223646508617612969592729828516433645846474087183993798649198555682274077431068387533572301854597278484888105355470669517017960030151336262224758749783645850022770446080723710318272672970965835997926053788697822282733738848273867135990875718799672624454800325587076304586331079370418134531799213180432255214682487848177847823483281923083241494509520296261847018699456088103059982570356401838921757425924366242108749570403043109834659472251838359902030318390858015167750604654117894815470495228060453484980783889639689784857706378099303771625501845602642433536971247762664793296631755871776536439997860562356011125941050935735975293809888425639223968667471453150144436588611096382508386216767708732074985203506500636466006776505117530288826720137892219735374818731645467472220069288405590712622796510659560642998637841545206758544809264512926467487427550008460787507800683672449067135913087867371297246507796743626238377285999437753935297460986992156577761411609169598561114245394544904272606257984347895825623772317608131013429630080197367639633109213260101828061874999739709110947760823952600619732142498154637833074758945714349522913659895224713122432274962925847665128205826970984332332749649886112284194117783048675381051857899237586597671330803156311736158588384587748298539110303534841289689047549605440607291256831396231473177806487883988511298011831609703826775839006286174278372072703285568734301879216056051007632440112127570795150947854401582513593434918611220345247143207615419054156894431596380086470170864963495578856650560247205033871091599728534163862856314238653879652330241902610174796487274946509138938491437431352571650749412674743945480989774983481933597000408846904374404430016867471882912049002222515744858185364677351525406199589336281042172053994711453271861605867028681405785209816455438079360576814325409811813967323294387370912060288064568339831491971271117145128069753483192320737835348360539587102399270629554056355615866284723083957883225236147915556149598792000261795722599094140410394034142652864553609864679957854579077504705736364828248342696171469692400134434139870730086023288134228437990507914287117754923905926914092468075868740564232208255763759115788957909478699738072302116133384717785604774274723095737117925084112739844693286626701409240779817090901471203034580024917990781710423071567885357771165884291243009034109313673314323744838036334093653601289032889040393405171449297299591233455560954300162086587028893123987259573180352439221754085989286361474466369494429989264530658613341838247033086881907248095224055634661249298056930752700735813793259987534085162312542421293869020090296678724418054211294588413243769857700094873791968668936676846596275903227099703222650927207484462781755703737908757828458578580315473095522810587073966824576693103812672086332576798030595770183555760785531258994176773233346365540806786961012288871713052714970725486618411355199128485380138944625788982571505648526510605382478013320460564829875507243284470874133841023869331196429839898117532696055864640047595242417756467524496926212872017908440210784133870696979961759433354349797561110563962358381790566088074015177180772949457038032919785848479279137922700730377357007023667174122503467050601712800233975500330024983225031806882705571282014891618320504806394894206930002536876497491389485792202257901285802942373139236209160607019619139993468286059472973781230200349364134785426096744273008675953910817351754396357654071342275865940096006486245306910708424074520810662101849858562139523123814156868360692177353470225843973307186305185584432661328336267874679073790331561805208435598504470188781694128176028539334331778375929443754607278532732641139633443944633224462275887015732495699406555051867683786841460207010453247111819857629976805263342778572957997110902097085001518994394303568718817828817679742953477227299026938135823272495382732502032100770900518711824638721273943119808191489162716124567914161912886804307628470733130488354728479508617505997139963440931781428764632963159150311227037056308330487754963761974572537652788452704694906838516364817094046641569080740097146941819430942830594560709983913737640760553943174862454090882911789342420831309238762519192565628630126819240116745482169515474874116385422671174665236805191889149764934344095563818701521248894606202610245320487938067459915936434792498235581492018035095247392393125347344979215339573507218938640146548441108087076877510606911357009899897619314969222941056520636107707094349928347162494028093313539733999799840189743463990127050840069571261985561160147943714919046143106745415519762954920974706319473316663171063197079860640645199386426894586278368194212934260521088864351339994403614584299339296696330860993485949793745778404897339212533438735914220167313821449174172325630843255318346733707880482716710680995956171490533888430004578824766800646574233278884651383752754773507512611807994332995617830516316576317339018923268334149485452727454083793609879283367279992343917438139739679608119830955379093531473040621056913411859784779076163773699700368816679582499513708949239351464170699958212450782362833193144771641800417606923570104319959867707473634047955479669695878655638989005213222535517456810114152439631245391846478543792185395574229942918217267301846226419495480713370788736004718848915314394859182196984558915674493401314679350339154381580288590673165199236612572264674117135363210084245444413646538429880940370554561224418717275820271053990765459012667260309917703396193340699455489622299196051862575072157806692180656469194736805731338249140572064570095815477647264336774370569663151602302487352317828156574626833296571051197316581277511116412984720851216289745712601873769202593513670490589210492039618765572393201642346799218688104626077611319901397814465451327888061355820790494664786285871850461460470901540498459389002823747611793095037770072342209491653649225410936436390743513538315006255432249717903739550761564069579047388269424835882009662108733996186397587553602743716120779439738988004934394319447621270421152638511212797255740225542501353337122611858407635458240733624655761043692551757462695164551104299364466598520694839545604703935345221430981721199223659732339727412131156843146808376769746024468592953541293445472569622334307343097893388714692887559788490794150340213017687329101052608016888985468178224117040264765236012629656591067775751560289889949886087952457283020493142415725902038490400511552470233039419568316904576707817272454962990641975348761966568550356707278985726382918771614965769356165854205240772210324616393413979368310754358092547413152882473638335642030694067027171113136025826498508091487614572775392230347331300572871876203755187145792283985279797098300702718161102958998676004544432172041751757270554681539537190221437105983295732000083525556503886315281803448363007203669197654944265717584987329307047664127446866138642827005561663497724631120224666806039464041924561172203282370169608181542655685588956539511008356081944678512734248066692516940402739698597482276311001395405265980404337406218910536027396825054113874000626017683262217645840798155149072756779373124981080950129134038682656334169452278556181794235402408496956314605872972717988853543276956973670986940709640817456391575614249702053187704659251995498922944182042951330651900017412110020585464475094645911162481673078024866032163017827077181236111894808573187111253984081600897918000380380624182996604826489243316566481603273257508393592041420050808294943137785160599506648319482403029984450744156931572041060791529036815053098269712492497364919186990364865874100851789717565913782852953790373892201747630803535715538717477447260931163318047744486887200775883303740359710220608933710349277247596983176145443152281581511197920124090282416019651711008205739549484143153318745642853788715994290035786080769488429992385391883833667763451048893266798723665816426883183794459677185170361866777856402433834868228311861892927138341870984202898007252088420339154979330113582714038773067531565272925198087264816841835029765595725090130839389351048495415165811031158309273499196787737742626387242688046362322017058959082791538207027733073158703897074254381954492785701890754052113646635413701136267602746981770832296865808509575446051169606006878679981204022985734163054005001502218791076940831809419023233055503427565275822500653199270731354773443928544970955734813098572968950883050680990623255710256894497036017615617019872840198868475121466203941286658155394640249859543285378897681179973750969369559437014666283870226157687851341879693448939437425305397309250224620617061989130428226876395608392247840288245698714605727600674817401543537532229732192354033652699106708840741613704930694689608083274100636040552954535485675161768716041036234471991133283179325443713972806737474164515671442808976926056748700923357240457476780279063879237184350283218461989645101240116383526306861574444651285073596756571162483234174395078277801358107841815028139049204589216177343469053664908211018097869591863134607565566435587785633394179222791974823042313315154481086477553442234326030984420752201872936071035257717016579577745060037111706729730163534503964741256335641043610704745060227797204033637182867677641740072867050334264721868176892623973701841677222637154955274028600764496131381693129668371696837511038671024301285985303434929381644443120447342248105057720045676037433263327305341473796959712072781702823062130499427330379699944688794161213517323456654118856097489564658395956879855944750929220778406047061599887748309233337482013154513901437416600482466174991850620352770434501232083891694839775534647342612646933824041086931905797527210294460444670823559517845679185548117108717111068286150000388561512599824427170844746624990262903115890293729584699913708939195464013108619599077103925369851441168004875503145914284955633836256228380473304096236605545117553001830011791350999602463657579418905959594580118489342742978472625400732537364102797278797754225671991295117644022867938544598125956977202212249582492717034995720549302040071158862576079632700430475827524671980856807339201835201411226214215275753238836180083500667311690107400127744995154267804822496879033623487908408994364227880506380190981791166365528026057688114219256783250199154003180296618429878542460970197925268045811325935256642550135853941859940658407733855121453756421043381002585291682242854955246457375056957013984374378704296494442946932078548543756836176277381778194825565918790888043421573615218593942635941009589874579715279440627923278805408573155373288351449823817418822732011434123044499842348106985052576079760380772111269979023795925176858641255197594985250361148200862084398852795586322271518119420966885350864081162924602672156139566354032141168645499316679382571832308910452003639532972358200012587087463809015677102687011887535899127667143076831236317724166856730908179273285062283841090545613670118993487830219864143783049625339158197051534457840154802811251543387974104677079477210265332701033080280701661655108227878243487456000829740489208955088985323638078726570684117658886431892654752173074743801186209555298406501184499784690769856942079565823044208177123880177914746247278847960548910044138240013781279740995994132392145362845045102761200290086197168400896437696072041607351423718491638743410750134632211868343209532797661110270399377918430305128118597398224479132773389685958076420026270691142479752903976408677089336329427770741617993285908627095697471703880973920620622290800414726057209443420178589993076742469283641824493826352115996814022687556858419933879140712366522075794674177661795001982142158310351195907420294421083179706059647875292312234452594325887505844775227555992186428663944109804959245285719715940950854076573533470287021217328915978480096957724847632003259401259198329440671767253636383253175471056571626486854813054886827278043972512843478239067695947027645434688881059196886740968343668471193539898718943248146392779909157941018210033196315047070230596250215075666892957241007805345563769478977958319912031619806353711504557668095643711735683607017074932407656473493098508654442879342125772001325480112630979666420545963533874521775371661673820643949853388737690057573424202590056105834154956205608788669167253248871413114380434431138355263079934417719636100916010659977647358257323753448953737205104272934041151417046781397565765044209139445818780458177714296405448069062266565934335948771640000262491553548214160271344489861388276081709629832693952580593421427100356176173511760065324978719122254095560015992717181107905458085305686358786590456371079177100527315405542756597825233240356983783543528964395696965477829816416634679902787604095414484833077719881282907204391115869738894166224705150085409074813614710048724248107233847052560605357667369603897480383034684926488498962989535197835299786058488666403819166529826787474554307560996696700159579391149766680931245087340042625729166547753498376134847485588945767134433157207082406188811348055963088650966401983999995444151915498048628070714466817435110988431903143180493569938488642102183622167759692524692186534094777819209671877175393405633821061560875426640299516416119671727697659447491729107780990402840781229411617391253592804425202425658751710242995030639807922271014717802110942911610641355311201883626676239159503843458477032607497307322513234260101948811534634896684610340545254132180793124842016916902735573336720009083457903884160551824393059929709596397638993414245614075078106942890234861682614530169456071052176071607970342179613187506524377263839318500723473572744852261661284459244222181321277298205634152515306900516485511561706714786034321184803620602238396543438452297165532022002092706731017411637861266659043354149643336777385691562008050881184924384948736515448582650317531818718603495252603455850440319220487004636818026707690208790551264890879501702820671398069900132025196274745660122469751902544393593750485570508873038434412405239882746900508653843062154590328086175230502196484231749006623977991995502274713014325903108759629993220702954942303380707075851347473172552848131368111898724497229310769864899864533890105159504453902087562851471887192265105764730231367404229853494170594069939751892716672463735067992774084648527562855474857360284527584082324023677469620141104599418374244357013136962253798171077251103200615263747773748403223195054489770453942629487869056789605219322018533626501269816126799398541705524156730181366238763561381452155883483489944357918764643076399365435025231210204461753056393886547786859317868308769040700577001736607640144232208106910118639974257569716168329427688112505027496572947546123185823003245199525172207794084391880961036280551894455084293871195124096868509109961028914574296548428232627090310791860572955130275299442740922036944187788218328982073604425063001872709497955786813841679884984513100367361623938895084831828911703698366600414033130056494232870492355284684264396049420040156333643048647429668579875068762650542302709089227165820330416703598232503326078414845303387834080999480080179035773802989164026322673991927159177318572604085023143143981581621552457528783207532329906790662447950096178934037654093221164970719090369478917405678149199613316466810052679589543541326314459315486615975530129423934095553372506386411762409685563475324276675674238589041520013656158150168776380628061155284047561770309881919177207235308052014641622483753746733015443466711142338122320256543531392484721724767433104159048455709885230980226729453942507895788592761573734091353609985166754679606426967430882647119971992146117670151849261221027700443878612438590953553093842980727050173494023632397656360703647097902718847049290814814129683450463656276409558950085614034073137132972718146487939038739397066989643740740006540470750438421215277749634679888933106955545080202485930689639079755180746370901810192017994501220749548509843274075803588033602364766106227727200350590680366197719226622890868037611570558132605910942876246095421504738222836591337205403725289378437020233205457995363274162871007882510194377665438463581037323434497183629772083273738810572888268974718441373823572746062879146274370783114949645790095162879250725365150470990508643129635434187471647344865280931957635887641903087655173330334159751898567202924318757917216207467498917320343574704982865237861119705443107608625409067185674805381264730473387292025750136229856943116307199593058593528147629738460816096761260060519662845345792308890148271923328139458457324827577469307585666423466570346983151395688691913134386288428120043552504084364669625481788317098784826023299831619111697768099539779658356496861114725758556160791118977776769682450583940371250084238544126005999062151550398743702271266702918653505519839503624704925326145920285667733879953726097632209285608622777042880426227068936484749961178984418054758644737511763716839284284795457005525450632435601617756979884449710493531332327665346193976233281525697510801611697205904888304527317068714526540706837896162168445371241897905251273537638705512881960843971511540822514539846885356661748149371543315309252891491992152218526844682314992838812722828775487887576329328511418850133972278743309710249054054166853173412309089351868143779179090829008495486852567569906265638962915536083631318791887788128265462211080337843062341599797877707640096073155516658169454539941890719215932857374388205946203538110903827864665837579729016383689773625864700160507367883523037271838853321474375940631183187821394055930860239113310725727494403997168047786591616786170830308420988795650941817847315497016826116208223332410470119248621840490971775424179004818712329152751979576066481834288839419637348721680005220047696017930214233723570982846964990040357506042325199497455582598876941795089252081870834507113053981265416402545177995080864123080016101776864593226072837066766053470760213998436485998891021148726934572728145662530752999388314185257870202300842025717639218204909218699797175016836859459107478809201101645626010597282026267304351614794462056007398719953420789861397320834702379005002614227168861604083503506208577481106568112549412430596374946818657971117752929905678993923773223934292100199748974558093284640017294769403356164874119002863989979662458729582734260278529386997829805071706692990565133591009271047933761077083154757200090862043878641935044429213125137514314258339074446677207422395581895540740402973025368391923498982019033730955476576774715208673112803664068922041066373799570093227417154679683186532704476158843098448792870291652609510091780604727691526638013713410264201554933636891219286359313432100698642826045155782774444325846828797069521682188827301488579340244837808939458640135373824909442693757480288559884760792010023654834584018876405717362654996560129649294457225183107177105169182478446444939319473130696998438794919305716251427257489466879568703517950472890861068252450516088550765775635540437585753946761214475678870449352789717043051964566850883436993423402250550614452045584857562637814275093555627657524895705906296281868471682391763130065315321919600517475504242919547770810101662378535650630689470112653856736231734845279284105185408051350759996261658041318801654168662232774134649099726330195747396707152628554179398408892940125064491550710801818994672780863194917608993695081124761262742897534456201249595146853144021517969331595392392496430304743655153119040016749766172206867164006573144648901154115667042718998970070480040977797895793883689493828644872163156860112960288452737125040333053342768316150884712069293829116404905989823878084216551342078896460017225037476588594204023838382834167446390846445028492040989346717986739727447204212853029190006724831944775250976890885589086130655071470203476395750007049863645062464969924967694733047312745791191423348586209539627598949880145737587514983214390156783059538089532227659098387400042457382990525153155688067402571551552400752582293510322085305749127459390696922922484340571511772865614817734731826812017316607133972302004429695473360397405567212210355888153400496688265017181192343819121479076596987168619226709645387756100375431630299823694579500608352236246897437884779153255234114684607545758609810285076034920373299744132930721385527566124567074658987150067589688377050012229658780866173488647761750237381589383587801532574226703627066529605953073218895225102488796238475202081714718615138718802347448471774577163229445856551416636037827008174688392023071135142193597777859245570189255414507678566888222464292545731961932465358429311877762580027287424396459046349563155802666978953688459899786656600694349362644729753920304408945692226664310567405189989016542837001120045562537888162634828768122872285931777522940949411096422358096132178626531241798090476774542530876660020844353538415236966143641124799673681343851543444747444862386476781909290433768520410618023434068878326788662552053729607132401392837199605245997671738140436270164908475662676254737435049149363344434381370332615558670487245310536145054032873888472465434109280936083014406333935187467534964384924086349594505684765722012454977438368968834802786349972771670078206184908477295264874633411395688502064422451384479085594839991129753595757785931421122620585701044625970838647752119288704773923696282354264400348087745682558411601753089136902938428260220579056483123602341576637214349148022673059685667072215299750294317628925601149535710018110660919794808219915432146379677776686546162751340402488649745621323601273626700347564446687735621369402157025823646015154686834076946036695307529896680266358856509424016515382203675943663681669359170574474223742126757832146022539288952650788949261019140355618746743167642515371599508810730974093432594113774680986802862578975389651484236194462078983040263813491552212296360854269513040064441237034311628225867905855227326298239313688799194039803002655729864527163263116184130139210861012956838853288747679781414572837453051492823232241499805076583863473751462837860171221728712869905407201773917721841795201875345578583357485170517176091558967222318026202920065274767363172925226085839640432127633360431376121327261228456704983221500653204458919214550138383206865303380365553471726991493696327483965913304174708813879763538203278921654676102019679040522762684843905376770582377118002402214258139768784246725423153174426346056762678916981094288555968720217205290552258499107884135043782421368525888520890536355580341814608760190055127456900173348319556988709610683441803316228300757064592089483696115102946382907987854106493456447472894850560694419147987247471911430483770080430895965987232366835858872807265137757041054480500028777656960404139373691930787587227171143254820048448161396725475248441679426875281935134734939542683939961522889097278137798369198920926911088180321139620565899804816488797699259366154139744966790330080191695037131736945937987375184608705665568725952371015028704202472883048735034909251795999283688055418917378043240728246692120438546496912884675846885541877433047430650737668829471993864239513487884590951867865977884444580559603907377243074647498932896822890672880333682907347354315708186206069955103818017138911596221044859105064556941508714189675999399985877619564963622705129450263341095686566253707995268927815519762664775635596840951354086895267618208751717751545934913650094321600059048466786878738644261257708448752330880635817807915055952293552531529886861092440660092301985990316771763570514646648597612471214090314766057208218297376833700077194146039735292696986782373880146397876177501074160225385612078761960703551396838529786368400566045248840322942530708573194979335530247465587033178056064754884313567995582177209482961380228574805831148533848625877450027103015853066054295471554755709420983015421895608460827225576386262267744029367623230574842629347547341386593008493975144613997246822072162628493906691099738784245597274749871339412154069657008675813689130097517194710957854972793391779038883437796967849730468004460545362371400896605305498108563789756134062396087712740193711185667722811077326408286826467243415930867487387477117287100663956746496873058394363501481973606727079102785802898639883762205706479144129690602728335884706542568632140994631455031333288146858915069682531313463485903598966433108681393353660221222978270333159797862766408726385535926671298482971415897644739483602161186453088471204088425420428020437584091147897415239337140050457374772980971505802267918550553510383792407453041536073878734610777835322663764316890357450941386372780997229317852681564068691492945410186177135355658499383577916152695423906490939489474223060672311317039293538922359260803192041787432895367323627272443142752918397317247001904499158435155141210437954960658639770405184935671057500555711562582439217555404682425016032569145245956583765106753422037661575400081149660288784394430736988929299882292951456495075018992267568543651196155856895175073848110784004515206245221928089814479060022488983677637947754103329118730617257037126166283993100704416060827412651543764601674138423718149621619915141935003840465497128396086497651380680010187482458470802112148119039154830962075385341112382801877334075952429909057602811667720101424686534461869439209972102338304610019474451109658239349396830245962869460756708554395896703022700764413531939812981945982811319820899276175588527484258899152377192819575776837456653932505151068182281128949512872648429674864962291614905730571791670850548723147395688344636314409011039414023393368123891612533546309572656199093360579763329176154706484886815123462750278625292137605437932706150534966228938078891487954168633569603870778862862001575834629725308647160323411336559272895113130781256982084965476659970798420154056111159262376600880484263543650867439031038042678910472087080155781484776117732187765513891120010113995273675722485554708199344574476859985256778810998270521382115287336036455524273741735617261560147206258907069438466217907608912024991232373372491194324009144546011438277373983532740771525039892079657089263532791510845684429394822664933296973391846419216400432905742957767304451814807497291165976668713132757270122087113744040328311511257617400231940265040669566582173833654203447919013621233664720324712800166315593812020080038728681561671974736791001514563960179110147996734364235919927935734948753532001262389731586126725148804959472806539206695129297122920761924678074025155413770294981018673292456148937748511003768997404467111706991058041091451097190416413171389264456787751454924781689043492524970292193965811520617812101832740581909746957454312084916780244924768510592606729917809533107730216381640733893149854823294808730779944151249243929526229188003266798950201560342736292604767635034401690432059602449345519758011416445855868595057888001064385612071804659633928298929998159912230453836486894503034890031231106323223212603987716852946349324423544590983269127896714583214848558427546365013643773825284751298262166115071775498097501001191622074203194446857255651489497314262787552990771617905071533926197329513506114638467060718865236466775845296068996148848219133377902725550535753691655187742524622470327059617374469085130314413829904981561196931621296395559583483329383108659806085386663970654497661852491127449830492992088580606571256489011458342249432034520790561848022864822772162842361753049759280578764143302424317219701588717302804023657795055147213257404791982617852585756967262569824423336646617630662106177778300251361990105130717139007090770319771208128004078244277220633559754131505818542226976948633575700246069034803410591626319069698461722974274336816390089497779290331287638730002932337961047526951684632775849084816352783965832004901125525400812305734190506579781198992071605175372122293091204947966138086418097429502897990786352356107865957703700683603533131808182861299338665619066173755779971748105018909755092736141228275270269596499589492984228111635189342654872572356705246777001578853511609474286696951740107334565411409478798709387521116556642709893919490777192654588333035987250393871528939398937524775579973501574482944994812147382096768028462826803761418467894635970502229759912250815877367122178717767490261854136319188860644298082055016492532776594793467120992464114045771578190265949124401762078670600141322772654804896668175388729286685322225120736738659808461041053688235661299972754785435067865337299228740745962016780166635605016457425972936513782371529282463665927192069766452689782108265077792697721572809698850144897396759653278818553500023688466030593939970022515943519373972925012165182738230222653456303338974165290136668321804554334366216474391517114032276775912598801567030740367903055032223806391199215059620447608045805017135203277775028372308966229424840982206001765905200504105873528393513939891737150902501020439534326762433616397756776740031490489649711146159778131008890586386054891050462532291627367264017905015397514754200558301979493056294847467040022298680382986326272286751814704518680198595409832582969257385358334034933810811565090986966225285219468692190527331371029472435206961057120406965666112440619086653274800776063850333988326515373590872767279943840510535055374693717993583173697684221390428242660685805175011190520895980231556225288856061730740035737465584391055094598122473311328653020996251589847425966387157780253259250298992862164059514001697484202303571359927056647104774307047889777245660559410840910697397770429334913682951269567355522516554845244975659281729988784593311720351298192366840149630957716548162844492612643119706651883160794660142232254772971345625202170503995974600165231935377811935181426601110027079457285325635042582952397234942606200988651498277403485213054681017089170880454957159851787919387458351592194087581410511193046052657497746214533941238619837304056690923839339922749718030647954193485289339788494548651332906932633455252926572980300464944081326318526932251598183125103501974821716458751358838012565249599094116766770439179012019071903935207657791738451310837162998577865499632850611389559683722926571529662875832062513234214351010315502118586812957697938343741407111931458414947291037024161261831958093714471880127493989373374301714819438788257418976907684213445100451116733559265602317220495568588067945368439304922767009313791001452103965389802090409122911904935407596383451943518751933478073174032271992094309706650799805975985324146856803662329520037569607939312595276304798731317628862147924483115297824990402758165047377174626500719053730237700359761410738449974007950320978040871569414845449678806491425347318505181587406757093302875871690304257017002430121352035757517577776015377134621603279055819511679570080698385583701472226406820416055700381113662406064782467995496887614575702526173674836067687880507480210320150407134944878518252563805073687519907282725402508166184716034280073721954559649618315396420521473460566283085439707302228062109668889697821368986509135471068861320889431021340712555514543109586577090269567906286705987677625078048838776910794819211051576794982216527724377152910830223478821868642639649253712256920994851815941854443027308671065065078655642219528411814875438408394259658747117832182952356599527354276610091834974110417862974378409374225844460761083187183831600768086278014317886298509885854434706980986872221155670851306379444156165878520372388185058735499906900386676492201458572084980659267651140871715311717545540480367507615496998981859298812233220932679910884638812791555826491204407569841059814408539074295845139375810519960165874195555449822263989171518777950940616254909498733791029298660292467100186762779865019979790189077710180426721624284492192947854546482903107854371571703953894766345952475207483943422658850289360834990991870024946858333009445214296654673506845794761569126543261349340206809947724757135740693850579689137325376328442312209716622169992791106995481927965789128176686189362435635107007787426964636685787057501806902102441671108772818633140955255337252436344456569064818268374297783681682675090908068761622294190354556346228331410153684774376357857268095362456501633864294409574300977587914818142588246478252810516241947564744389511500307374726179610862718337853919532044683692771268561666994194321439193677443803297257522704973139863097941043992426489866811079769447744547005104958595296168315555801334342578950763477628157264114579592284627929019952529211415818985123287555489642027253391946210527510781086780565178789886000375233987476857186404266520015846024643372419334418678888263121235614171312365292331645267136648699540036878156719105331371299118097232092000922118259650283768460660148821338416003265927092150583998929952030366380657246249727658625519454622677454699163587059557139791874173122409605442721985339959798784816125681481424172370403412172151833145348322178510823968912054217288105924512831686023844440158800705690880146903197012938037021161628850824237082340357276904379026849280447462080368872596323012211791265582682987291097685193556927008685267785094600746848344828866624191513577951394966171043633440888273247084316495832444330346484459337907749453405470935285044033228347001966088427730270980107007469037338276833940148374938461796195059541257132501934823481939496840724109072354540423002401416380474388128663327407987702358471343880911078480738175770439348636757651612015782728134898742714762037668016054417653506085058354628978493546367932553308798812683515450827944907618281456571212141847378015393971220139189336379555817097714773312996228341280711179659733470029674729534171955067875919024110587084816289523918365604644478934482092787098385565261608149417581110568489451134304167561230962657049229156330013561018208647918570485431353670734366993110832064334280140864436857020108856939994411832381108588247166112519321025182404334667487994878410540778473283131902024833551737846277612581876664123233803774761910132049633815901699410863348614200194858801437779365292310724655684842701466668512044596691723918899105670509350688240728693251496367217965779181512227622889873914540729731772183509319054099281683752489084325311889257116486628158701660910130627354811068666200240886726841421712505397111703404252909988423769005437404598497325596848870871598583820266335183348950061763523591716846149137466552622904672270147905706125725724024079225568548493844132111839330472830870966135602414728653995482489500324761841079049702963405789521083968219008861131632049582220862606671611704953850921355875275664119732887099396554042074776977929022684996816067002289722769902455018172536011552975472656304067386872619533214211442140698239780005006757471706174096888003598313974068488284337262138251108517040774882603122551822431889533527316659035103896430662022825042234150872771225710696971410896334570421388478736954010014757480787054588677755939424632579774503353444876873974444950012266941437170615751589363406656230337820710413012341190861655211370882907407782587518513478430232324989921701173434363540609761355517638707424325577201468230534506209881039325210679828163619178648253195507046396072602037761728708124732789156959197472559729024116160737516526902699814447112512704011116982996168819275347975358324121497516773451060712568877873508504871444180971137788352807389811687462414939953863048909415238482914012452006142897871005785160575318363166905409961617291750990266364855764875114958167134150625002065256513802558852281341723936831403305788058462092482901631197098107489194058943918223179585384033576022058371827023414342597515101375896719185410389531017957869707174340702724060266792120230823296322000969308807747752163857746005418258211825122675376873438852550304972158233314394197225185586081146888371842267693996139965489932444766140730561327864935070242445536950655037223223502864875971992174560925331397672892992566921969271986422731377551102285094576370113799215611146370849975798508823228377245677591446628855152946365480987464733558573104773357113493369055690520765339964833408858702283472722520839466640167210036076889742579218156099566561145990928134462047546936030107711667404267760143110929509917267533281366496225539866757976853310221097095435747730880684129307270586747796693902875768897037911051782883528486881691202398090644428577981429707825292270229890545346335887592274824441877972217381472503834213522263880077955952794075353689627828822514775605807291760365302603789523991623873001253195929753664380780520941791359803424758686299932135925405780269695363409462226866489126676877152491462436591373244916824655796308741186420047015149034167412568511452904027473216539029341350536128050579949143819853067154631430991282870835786082943207982955369715408612513732753321269418869996571785122092103144980868888289708643190754934924785853672444251585260427560701748360499354342879470664653648988362374581654449094510902814496489186622440531140651476946997715284057565064249390231740960162962332797977455226327930227808045306732410161718292711862212124128714624144431576017859888001254796753067556168470763792951856229216091712139807157588782556181435129062365929643998311150518100366927096284650620723924021458821780706386875177613121415565347194293608434760137206358045565076198722100865922856193928216415318707245879881450079034855956790392572910458202382357956957039835013617306858095786061074021570910505116954708549156999665376330564450647361613397091436973941596119164349694127232055607686865677474010674890721635047878356221742648357724096673039633761095999498546788362058538560585203979992914983315581493688926967628562107214585613101201311710115941987952698276621623554510120934168571686936684053433907858842520935326669665310425029770976466053043049657694539747206653494728538195025215214184670366769348327003702964563002079198220348894180074411326382157190423833040912912441791448684836369522206158143070462606669595916654459643138943846193817776918500234865870688590197587849742518557375291939817299670184258728377276544088081048764533541398627782782468172367671930986888819977257979339144063706245096750785954445497462011559576148331563924383659751547074466685249274501353499024686682793804905176483068812821981142900571333089039522850041065005535623901496197373388691690029866645289027508613072979633603136244727821654750760215674511867478861057802031690351713791100261273555212808142502113121948755128664719589423515630956581880061323392361096632637642118058937758106086083091805217647652598350090790250404218761859168272961189848362512678394418285382180396885116019976515731451168706620994125684361715517790967952082208337829470205077872565044269724474166427485368132522680971718887882015562553983589669315744563260857609031732841149338451208662174931418151340010455861769555392773018649163101204399656233874642743010711037854092493736759163047469251485543670841658187682063518994201559328968258243616396614232758481494720041385370562903292448317174966407676291344516174757621904755580621404570482991587657606315349471326537884116168476200452550282188431029236895829558468841988177797725344167933580810921878747295555492897043156690655721593805055676222735265968345025788725776826399761044591817953230272803751950277774946402389819438796028918912076976266965539815984178184166106998430201015897458790971135172843283641735077232201856915577104095509283495855766488384507621846652005629586712117926885232919163231570530217449990141101035057607580888038246365448920165505769222936249061979824977231371167455660147608659664676407666339654275325301985771905650613289351225013726956499726860174134366451992821832623180228450238484783006716232777990123472856387447176036103639767472849520667282057651561698854613867180258782330624321935594690284425259710572526158239536976067184789321151202165538581892379586769659757481495911933756999073103821139510142594978599931113641361366903210156053374914941115169435527190837175018042418534505276101301021130424103386480436687212368640887394643911398620052230600809919507994572748148174284058029798508167412135647861276280542802851360635012230072542132565855905978369706282528490334722937926267229627921765505541120944516784589097510572896602941338645449183719859809652879524783675048134698930839029211569240051622156025970067827088884058592921208866721356223112305538108038153663795843708628526749582351316859901429761614551710352263500942575077800473725827993924674598629518507271203342542387910791271325244175147097269333440786903107767459432338200863220547334436383449036220164425541942017203921111452888677853390260203032129176363854903102994315203435813578263709019363126378873900780781897061190256702804030817440743709833589168309683624984181785484880619273511194986526057881968702237409726405601201569270029872863205023800211057734598253473883516257863381297480561076576525939571756311189875996118822943361141624225512836438900459801320078609228341548818000804994481751774859275830434376594328525044246098139936177143373812133237926011489247071349547063781674578734986200956050058953854990667907543403970582997064117573993373727534498793819679842447141084265027116007586878072465165961013967433924819644448653637915791094263370020739446226133640209243655817168007901081922303796010347969212630218398860064461400192448719588255531947789407215388516358659522683885013228616057889500742890639996386040061361127726706986440327062959276207049063325565943369274000503733400394809664890052043562744291649421556445082405699977480533788273877788432206553974124474155226354432786764488118111666619808639097161289479174434317201760211793416439575740755400125789174012552703811395881163463696251348712093729366781291969825566658816264163223497069476069803915312891646539145236976837362202350672082462872683372111434498431004440561265449725310906833890114757590021864900286657043701510719444159534091726952686501266265474025724538713000616537134981477538323716525767341703508213175945485682199809679523713978226145051773937169813081596028381771522659735254384660769646702499744016627761304176493653941167225623359920117074105109800361123522430348360127224562330425332129109428102127325350079102971861851228780306016170816529180661615489469752105311401854804496432262709440434334585118079241862265090856432451385257695036602239067782350332416429135577286290859661605300051377598472342704748503261383416514027998711952438949127823571089537447326513500928231659612971121406365691843313736782709259315840224297861106719639549411714258966080211540398798508479575132022274501685546896117062438273195205902191591840250061231673131358417820798926510686720474181310822535553250515773770246038950639224028361395582388439180455646217844460618726041576829871759670709932815231414257892390952350326891493909592093951180801576692199454607717357553375847557819257546066904714846779314128089345223558323967025184718450397844382876508520386365136882229558458829086392458996291248937572295905576262279066409449665956838575891747539332511435538055930085640497554849468311365186894409858449552419026354363578072653403142145456267094062477275998323338602083893351592872372337336906277557191325059095117240423602218307681648319572227792184303040481586639568873208326920525596124634506389613391282708186148155558666511503126008712217375498760515010853696027001321785737818385334485229733600287639712460866075577598010836751621739048966354414124637494670162158279986711673999520255063448430945498629098967151209811768796662441526855312066600933131098164966725691709052629029353093717900308914041017441438184877812343244962194318235928583437795315706880991779552088146122592628882956069033628402656011094404516380820998797229133864013424202785200614336557228489727712149734537073884116970600318582483478409531152913945109841537399364819159143901333184571556670352812165726274820437730869134083284934697669529750068112589901863447247284880281698109382996951287729100747228805302726476086627905104917937978823191578909602686255575603006488758275299867478322944912296230276851982395110287023222316737704895575904224206911828741518691335846696134209082822482191686470649472326296453401306255462704736324057464579042591013250779108679092649811467192615007277794635611159135153820722308988259370007162633010399938185185678171544523265608923560103356018152407451836658143160185141715491163288053763653666684789975448288666748769419591173292280466952198240483962083721210255513515814980664075625185938366631475043479879466153659116030458073301822439505196461067473796223905886799976053967798853475287616960734984739860398309874546419640093064152842366267060071514183896971526839793896984838703587530263661185531734677997898211997434012681174937432739941730304138877593715449632920641208088723711140097237507591049983734409953220392564901999701417506919855942896748570877096430863690597859921495764805652437258854681375842083620468488068657044374028151159557236574344700678256280468736555512520597973650200469889582121666384353418556489134751325357599481044370399452836988572439965669688096818302408109131199559211770043776623868955397947890499190195080413830305327049501457129499219350301730484669909244964040821936480135972451374223262786754065278567903967537818011948988815967060430321908358525628157320399611263906830936687490121155872375886734088838452392376216385525626695780567235027436139629928299540183676790542957234367215857849120533693796222925551058514801325133392445119357907393347790504095273453904583690353528923776664902025847295445678796658760981884375659827177064879793605447026669558927381315222722193189178985220695150461803919679677364377127168096817106972391483890394451172946141353020173595782846423687898222827023815915388802355217326671044502038899972090344778252928420363944686646189292006951490853010677394893494705543595636291294446529116726204717437354768211202845232613783725254342403270232805945604575026526469660912634696805348483360392060671569466205870641821535384335708129153488290933673454886584853478254804087187802248352918838221982352932913832385754729583110867598066746925855351870417539050107260875184163827836641891762244533040298932636775767846536868221056539891936364348418602294510145342037975233228404298827977456703219069797905167690518161089391225719150807170656354034598811826443127334838839605624563134684467694902203185644566703391269229317832418929208550133389290929569583580499898805194246757850792104921503595371866848554507818542139541346726212821282782141015704540946886112692587864094273515642303807402639159507788656117549398732641817707444753730406394540341850065288031179961537582712264637401363701778285295021894115600027747554333615841285480745021225119980688421895212753333535202623493501131489978052482579854130200754704420368326644000209790962330946330938640359122852610125176273187711322541887583750508885499359331868041020001592518170658598122277594830013044074315255999021011620170034098923944986438316692484727372473315131878502688804806206402980169929297890594575491854528680231616915617123975415585702582871524642960466604016495420758380779374543683790963656301232121445965869387636161256044808457117512090210321243546888820665889261241560798214187502520367108584047767148714435641112057443218809248786809081415242010802136004719829904738580916550387284777895499128527575684871883782770978982401868866524709186925114547690830565698773894774522517268017179374950626943046557449445958269144551882297126859226151552705168432545943574858346600091732884854161086575040413230023186070247032037314885823716759155351576512747573461821794307239394587683958265332997902224274660129797556123566338051482851545327806663400609346381104764465227035261924189524539238985222607730640465582175235893440094010995628744086655425839139922047301221854274922983000083204277417103569892461379550165197375730623029860957840956914437643880849514962768518802903632487652741141764488099519444246533536291515765537453870804208181599494061385021404808471400273994541369304149257329444305963251908772737920714453103265124657009062574797952322475616563143144853553360889228853431901353583062387663189700623925039737402455856635628512742016778980744361913386521190611381834215121268474833547691102835180528460944465598031127136328420058893126369717202275359231753206877309896860151083229331409641105572658622475392897112707842990897504811966906459709168053945049666193485031372033172544255157450916895999644297467032185138960873047913945826616113848152269669909699578622358094728722059678233265560526226842394224346760995761997434581095304475332332177277940898409736693865765901566266946236294646353080279578597240387552576634316684487881929491278760256019217522272472831356951136373768065679019179274755027767545718549515098054584257433391412952219112974232965328777663948411708439663355455747270309995520718875438984248065104802823713218790997071117099073317156677064250190718270469690846735116334734275811117094776415807915527067996975576607912683548470320220914676125717759549903731814130559773036978106647646954689157532897692561698269150611458772699444085818859315461446548769463791209643320799086120332162109787642931532263743182591223507841463365394485187000905120929091301481880379200792095317732470136611921906948115535166455619149372812272775395895533681248288036304977575011192577429978843255550762682008471691077838736423720870907992131342526726216733709909175146920943276914691491060373675141949826775690088542619392881719652879805392455660208570336919436227870856711745012384153385610978032771819817959093506535994733213573997109300257181572493826016171884026376754006079603985727090879800011836458393742849985898703956603797558152101849562219099193459031066842316693973351072047227248981408901723997833782733294974893041359392469777411967170505166681662304019086087372848202759526426694619795142744918699416209401804783649243307293446048436930331528709695863081986898573645007111890884751835079688351641673656470281080249629711050524379871750748878937951962739343356644298542656616846214404749892535590746652667432919681678755791180872824787902556812155303148069498238565518653430691636406801476441332951910243667015632477146496506058007116419129205007340966102957017940546319548213598400462195022607007644020841713070576415049100095826179427801838794700722690236738308975833823996158742489090587813986039147699081549240236190992554950697274101590423341706909790341467154025273891751517170675892525018496220478992630835746272278025184130772756952236788548145433227453915990885564723905604817154132234124878687279315326492467491184085863062632144148636159534081741986431079329422500694187222108828989804250835445056715447990175102459686239958154939135712146728429049812716915053886017696252630008847829604676295990598466777403937414803266834421555314210967314844612762580999224505396188154764045569845120444093723492142578071858754793362857313477452444619195385843939313352676115441209900438069220706030646523640167045732805167148025536094102162625518094213390620243843198922643601447459364050183028608246412887096232873072939143287050767182054136578678732084843649599762217194141353273215213150941693307018611908413785484732143950479043529851223425927132515167663013615470972516082550537383581194122621191703096989441591363009453710062534591213585229108238806948581284550274353257000003921841020437329331466664257115572451059762443362901836608953022309543907929300047413861087732107709722787770357053040971293965706577805387313726045029915155570756882187244705654700106534976602395881698616059304151774109913002154395947726496818257261504338247807266044186349368400735512841284958847409875737377545507312559775531822396222645999731880533957888811329612577409571024228315445071548996886101943866447476032024724150381827182296230287816340348160045511221689931513293611003333920540209572244216431031265109109419497608665455297088120126139508499526252582020938263912530493347856489075976536744468252149768930528559807097326219330477038613211418969368695550740822167523253820074040186745944796308633635598262041909247856957121450577224997200326556497320232830475604006260521625842632676468887479524601147112198582156212704091177844672058771812213693041291664001196152571737363269115725345991713554215850306198192322974065599174019333601721379085910294708680900830777153790852003614797071842737119334050135827745434581206978099366262113071041387531554430727715554288284125689902361659489282610692705821734886694610757625499738888359958860093792551309102522021720535748324797714947471211931721742995197245627673305261713920080929854001536718012611355803067164591916262129183109520124952058348694243993350915273997141614303293773003816756258741638939805318824354134779916314712947091728107545441266874875202751761030267152961070653701231769798936399923076189476510174670709393932178403642736332925820751422169048413401303346940131683435309667402009307538175763559825803798102340699771839193798301661846960543337836461154280667189712295048465477035845780761570439206694566695194834468281570372485998899352364237470483693345317642786574159414469594792550954543322800970648942583655659882508466843767029718412112201531908297649947839551051977585693451636771937798104906879676373301284790470994405636678793794086458470646243170621557295633124820993287107624256661052680568553217714087207026068959572287198608892509511841128919833197572614258833349738045158400985810685727880992212647198196975107373364086460989777055534013830331109691243265264924570308854103258313244625067962896354433428810448462622846386533186865324195798047024364573443171722001645245811988042824850719454758279564898973719548603993182989713445108720031796076433387723451168871317253688421164427695988325816681040397960721310278457875303177056612494224336811673460751598716252927741516876785801498949358905130442306832850852526564616774052618026411530369613274420463918467304618205048511301756170352241449463465369110911725252497659043533760615494810905344663113465409421099342300050827493216512476377538442176228138746298188636164353738077891248605150479019818732982208637049819196461623120708146314057454819022068312437876247145343424265865391993349207647372276778287766093516305940629951768462935128013002232505574637351138987720678813230442884670546263928794009481222959082814506351847636369820808277609562341560833514147791838800126744103292861374675673852939040274544968451887663091191388578405781727885762760289047017473925196479079263153873144322490828454125786316374334902734717424358153406231735395945620276059094795699712849627053952798175482788200455263649621475020621987366471090693392066602495174752529597349590847495155464764446603447805684448352809303224514695561860586081231553921139375472064172084956360433713859941597683445139455912771619382241741496255989115369998957068571416946907049887141136958067829027540640653443707987119235515347781291656343773416529089343909843121778703956297224755365326833286195554781244736485008048599099641930149845831094196337229951800481162278079107835985573885404763512497185728937662273667787483215311434304645031193771017348768431716223724353576005994542902817483270575353569204299914786912172321315895567886379435702782133054077063844136878703056398689230462487248591119227721244731022109712411879693153666864764312547709502941099701849820590442622496278481442513670676698387523436835316047138976459516102760311117000802429866178798632584122900644141776632259791586925060571344028842170157121769982491338895309940302988179930576561587727949183152444635050035237271248239574835711856124787508087656599344165506508468306237036801464034165100130921344369376078928996557204055392530312879993820931264141982702322516263970646767911019019477897793905893159669639586294159027850329846210929267518858397637049282915004710108207876924981543575069140318464695716446398529217094407338920087327744373200451187439574667163662873143113795278393720511726107039277740096930468906269733099916070839924930918139906589416842507614571007893095840417862820612914416042050198327713503842548441569477844946424925475389403801291750580924848159770170439207785701607023560840519505128619572268514156903779574567781691070050263761429137337470422820070230979991047017582003815655681228934252970697912231342456288114463950713392544311266386830678740235879565820058762603417637986401366407211026923673004437467078591301971938661342985319354796800828033732785103869384687323429457442838148712802848487484414466934385990711526517301799943975538528762752652216919867505241411632657990023618456730821418585835060640974753392327460775762692298096634437823369846604547971429637086170199399931160308459658625224186531304070369654812885607562119151603121839975779925459097704675967884607173181932955403880520346505548483511688743376692091715796811211106326706169965324860023151297160491217955357399623445202501004944517601035973624569000040505223380693911007754795081551788295843505916032784036489380050576528857773725232610971237939280384630692284234836987675277757767072876382662655038662056431811581403464337269910877905979187681312362411034908772796172434243897526461181652769652096510098619166475167800899872292389064109912340274268794727856656679389537430096351389207453646358866581199113218602915972004690338027217837438488986067433618332907928027426325420717396594559265823316336592404939909509757544641917273139896425837950690702091994839000345187086660608230238982824336160178162829713015625506975768876155627463124563635676799080812785001254652924597800136018566558685997774273964389680590876047160192179260552827255706692097861510981052075041421987491725173474683278887100972535648041130187055999306490875681893528636097438095565004229837399411806540976464815171066065413375640335208609216201042205632944761537010493179613471528848232570232764746158073389257649469849400016237503544758630749296895116708811465158946025839181357163343192413748510814000702246050854002564291427486067564042088957922432085850888368903680379928680389605262559201972141964711130948074789534889441151676670926960792629976444444390480937867556193900780476096027747723160948246432683704286161173715482430905069256125354791650559700754428832812790579897489917802399733881591766136880098647727372509870550830102117313562498780275666763340895360500573839688227494404889816828184960420133692427453738859400937279080146903712619114756070128628380083672372244686155025258606450611591301801571806111826411898143308446887574310914897552516848236085232945200775128300118667056756350613631572380495164436511146210761580737021181878605935765354324883132954902908330831568440983767363639751264836298914499094905784305546735858912817510658203514165389748270502482556876535470923026150062448217775904640314204495038348336017908447631472854317036609239856069644575118288085771804505828617371387246740149369769180925427355929538688989757175020290630379837454630477894609929437093448549785616185308361412955481129338886169996377439027052807393654428974164116169685639849098790873557109492606023183047744608461253870447258906317343265231189299547795007374223974181751846990478537749434624105967235701868399592480959464264861017152719886288361065509742349762931130737031608002502699158745824552939848907251610828937245869636112874794816799779831167496458976535856508717558523446802765887617937436493899935430132413707787391914739954322955384560251958747618379525146971368554886134755656202063981481887069878895763210812190794377832620527872414328656662832555150916786874460667883632841670121400677213629216815651926395405907377607834856778345034555774124965733171045731853441102097992514008813748943002822535016751518992977010324342707155925319451304597251455717419576625716352152884484991813697804481601971759415806304320525822915239653037515285574665922161479056566101456378029595453012344711814880277195122730630122456721634797628998350098433626491582223691118848103319577742024474958522460400353653333643904385975683147768667687614379959077060893131175516201533163032962527367916363272992950688296830299524665296347992911864366336621885848679888291135448316112002535521742609997904473090019797239726576773164333448949027050930557358163451549530857895655524234902439345317042515274697666806747348886717678312671767514223482635910451643023883970101409076695027016985297189185414665426415057160213371556261737244716475578813199433099613694074105715933001661286641192266731007556993549634935382138550195801858502075737252941192585960764424161939266566084447371942455059530236689119344535815995572055856473341539588486865457313448007910498154778161034311659529979326995051087799392390460766760757851095208357273722778858280307303824184682674919248791110413071303071245135213011449171675580668431029012696971092619074609800703559802694350322428586939734847158550200752006033395682865289392851948266434287805335930253795758985986603445521827643741912427718455265850632945209031067202267989426127739221980842109253576610322560441107793698713160036929559506569544965441766957645169926001534674386444856685085183350095016442523530219053946308163441172418372586682687809765074918701971160817066253691254722568249515412818989136391586474181138708805404555524858610413831824585308230413693349381840410175960056180438760582400210330474393058922098184703671620746339934541194331434265597714538682193782632260577435021550458483771689213544836022173770183432478810071396518466848807529525900405337600193715590609173212878422439730430345916538524080395525388785908544760054774777870284162117393665014056637758637936744434578894279183794974607020296636227195147841556887253196767422715655202192276853094111248347401498610780297980092497231466178011101318929040105004536025144256825643028047288385188138110126811174565730725502300236131044339131003018462531730980148896450088648178561859665777533045066280503714601912926551711886172415304490575137756629217676010510022637987783377098760439801753892046888360904581627586395958865270247665574165128348530076884233372329298547821466169592166614291207516380490574322552105236316129959863430566383220750686745275948233512132445172350803300534652911677710160360778915052596912271863339336835996507546466264164620131980780064880599575957402502749161250008053013132494188418375058261108407236958002936814837835717200360793677597334970801205874102490734369834456187514056440001076153897944208684971832956690284235505475428877017525632818776393197510983795396640741754315625599107177987098167375798066280910348924204564522051721206253521856205264349508316239759423094422876733758606100611043820059058693760291599647428479927703714934369182061596005892786779664120608248844338907488456152217979696007590436886760829806777581789814542267919881756740611758749611476657095386215178953220078131741969954007043780752379209506776439430446180025627611184490441407696673159431840399766055839925839583157122094636317420460999033363291906862629071848120802384564472047452368970390200079491306472484518148774916164878344246570788179259445271213165510782260467599888029869931862087447056214390158683997945475535125575081981384189970029771302089688083616946011192874192235218797790696507475188945293669208433964502956760097318155390877137257187105281379875897957714137958300531692059829611412414300718151161996214112012736519570656347871794321624521713004101131121313205066672498279137163462504757559222266677713760686454306788119540072008699283910860868289298205530183801609924394508571749305904976080871789021449028779623368849868633736964540568650306720076334876161232326839388201206994390953416951686055812482545513915730926534275015555222005745349522217473518692641425058663939933616850707869090982737034179383612868835531911091849155193969915002821586406626319923242370680162868480134222858548219139638179490676604881991791384029499367173347069474250941105195285551822788177050452759028745867447937309422463159958104099402565813659661109276282888744184386386958492599715061748623637950049125815752690891973000847960245018485511984162806855973853928592151638094914341208146132350333481443830146758836063868523385196895385106513766381845174855738485419386862056399586318254513524103094837923665194510334729590796179453154930425422331106185688334212413692752002109668563441851299435615788683857402158632883304615556813068698761092361388370807836751287368529155437280308926313891443853733378378727850576414384986635910823504687538750651368217736793242782834713831581135437982181412177558446524153721202636389723718445405979414936125895283510719236897899747042055944011494247470092642368696804177728982236040419760887860157954907367789938688872706675247512541929263370248450858936882413537577959339862084951592353191132305773497596692261089991820811680634683720007907326769713613903141403709063840771108885858899008109574074842452208865097389035851584363787677857525013789150857750410673790794377441818605843901968436854083560159887849626115735095648000605125623349397119058449382381643964353328440661722796263153254738288315441828714454342316877690465803560029911599839360852303170336517081159379659286914977973665474150290915351308561589828569940239980330657622211283958331892123420316369320756020451043607699508469631485674236381816411702399985213340351471218718515072033318337386722811218617328325820963854925847569345380094093604511717898567844382367003669058332936822143816175083471815448027986755852715105814627615062666798959907628840064066997133418076545474409693779416317621355530346641856338170891087243371584527291261267470464290303806854370531738605831198069192375169855598962623750711005839898182557548115735308605258759975443477396423620727763481546991165949094123606841034581601648163927953193176406509487974077493991759333093490586149827932852575734963162937372696938285430064820212932426404217096498734653768119548535866661751155630907666123721543979868822402023744547446146544240049926297358015498957296068965597401403745850428611252954343141453519859212481971136340903961351263140672664777526371771238016226744164775472260610914503821169719413117851800964957682455667204109145671678440351659786546758968561097407675436502937420772523487590880672044408208620347014938500565073874161868999694242616232005211649821548956840052281206456148008351317413491536582554908472342943611784521460122999914262709004354350775788559709348806114912084474019242090094623868094926704374904685634192379249136538194071550836394467854161686779189192200837782033213970015452001231575834780195813176436470940622993406006659830562763550756786985028204818935729207694098652541420304205125368513840876119552193463150136214235580133721591804265028200824387006155711607751784245084246882685603321586424368307279983123650451632159802596254007446149025211767634716566841852253750024910864302033573194769321270229530806202176062906941558979694098480679289346091023083964101239719686884254826717787043368865950930184675612498403076219420756511886566675151962764681039513015072065597402908161602354398773225722173359577305610077580578124905022770088140509896884447069145306145625066753233601482930132923210341901779012279750122650516506103532938695970111937724497711510224507718383255624128354034387724849912492200324321357306593329048931156246675518213829594412150511457975844567340410741103588708315630604062146356717803931439000523140631617548534328638658536584757346199375162443449863434960226352577493402891457792794705651249476644005349599624875319786592953948019803890151116752302983072039952825844256945690491466207675091795958389096130567493500410090792465804548608023782642551133269805457837813431841543355269886524539044747612684513337988350032100415802213706259267501320036570080019183739879856533140389336595394429397519325279289438028288391931634596172554817770169165919456969531461796309038248943097416959031099347115552580459517570386417472358519141268179388107596954495129769857675541895125595040511910109700572813990052288301232815565958706616189525881298147546304185121379283500532976253389980653329908404225167161106601290354299013970452647468892057481206347902463188746976148547940390593132374854685381545155346803550083193521752484911736262776033268029918601844164205361535645765279501115287275232919927580696925442088010331475599239346445063721156469242122666923763804358634916953913320421523966533481377934894604883141450935553139187324837229787861261902855245978967758680488256661264143382705221227607674861320666998019511779933436807251196057209483312520789037500081260458925050496555302915384045419824077732679016778381991151302266280872982427983288870801754676481450846137434079363228231055169136619327749329976127568944616705208705904374190152653597315284891665776817398862132692050437953106135242379363652571910146479853762714097524299530465619676166757540812795455834990027785453843557238396376912870993552597869821018594213317454208617282644358624826732143650028045961585645473582612229884717973685009370697921789224126204591049506263157329992787505092742936018096578056986968746337269284836162417761511563509370347032178246827013007705582319274153170541961778892567329153296668366861676794922739475038058869516857183764280657250836707893506257305775495200718730610714790858020288413031314265275485293458395697124048664007345007221196077066610370308568197340552986773431632423582361782811103859539457551216764146847370787384500605666835062326895172482559313047560780223337068270704180793114623924143124445271828138552693424661350423319439260396969096812205583467591265864121433757336312268958393345735833982753189942476531800115882817327348001478858505392455622019288699320637852433542956532660935538971570219182588256181589729614347254220161263876650862318273645021080028519259887009871116967627734225896660958451965296000589837585380773753864881267598000051877701554480101756072575681600383420933256526160601087673291897794781058367106531306682640048944165424728686916120972684129521379066448596216812779810555408123138696953666873266850756109622965110849347571279289165381565904733291768543601736584671097419591192398803496611478532873865545523749207116200248225881440283191611443030075914216104590291374068556560215082633297932173321305256331184277423622797910536251414902253681833484120717334054126787340563944286180924136047732934016383384247247657319045973634717836926315632013233622483854987806776469242178885781855044069562256322752914880267809072041529617057573730216526247467588438638187183212335400242635551968640034782982106594608903642224032956229877023334807705847846034825230978602668369865493123109476600220437463121746691928297361133484973778870279104859268174716211278359544113353528896606466938251730582746740974733075610713157399838153024798871990747016748093131954371647628806264283982758287374531442441885747771343239487061623198555180136494181208549828977027557940515515559049049822925731379975231166233056544001973522283508976230097978566991500626302712860631797007081498277357719723591405587680592158801488170863088044955042573419276302915853024337252319738775797974573302173146947882527051144917191747259355098855397497502815348224705878514303195972544525997282518179024881152610975840515190314461358759650555353837092220236565637837840385650967373939075026224972894001697932218605400315277344336746630752381969576309729103683565387798655924762483723354146743423418558544864726794116912435549926157328487971081821165969309203930073004387592443959860695989532016259509494528434851381879042610968454653364587440017264758761591655482420052797777172172233466142820230962054548103568813112186919287568441053403207066336760647458255016037795123446303684098919783624764421250036849085015456254930765628862016129637594582567855264014791882461072302449468168332359064699531338787776551854027527053398476330693966895867062108585689848406267811020137501372110176976677157858602491614929603535017432037303138528302564060778923552573863826190642685276613716836670568136288503143832535565847357150172771345998115570334597844497773166851006960700202163833233182295245960944605096098226556596033030519176271847684477983175838647853054033287107131720111800229805329520614238201326609752892878179220427281636332880760416942642518291618430057301468104639871578738907106764797181430076088217031919673499300751416003691469532606509769592424472692821411284551685400896677994421002335501097415054635371940373541412545962843371279558970777970355977017635145921978581603919677179158631167202088011232698064832792300756890585450093734933192168627823823293188325078610851336906316708770266011510297649447310682838113134262695002833142409019323970070946872937110083697321655670407782858940599021546338807157475348459446628010849901263913543198469040116047764431256313540925184172233140194587373108794125705237773112191209826451176586613361464624250257906186346757305352553696323893826074876055818208249857636779761934800220822324082347347447282174245204936689539645806533703848499128364702757202868556325560353893387553650134695253398889612501843753940622464129282568438046993930186632116717446481669015371482307216957159353098322310855935389065127488077340544486459371150360502216612931354917879939110383799865881234460752549909636369073528412095805401699406525743316594832982229843618268634337878070998285116240630513179230170400417547262550828963944702654025077223462556897718910906024627386977058988666490463193266773065108508487198236342477503857009794299445923792450351859748392166013288725127348759669153087936465046069905671821156844207367467799009082473039055100566872162376048619948297744327026538024701212437313974330731451873774261250338190266759024346504845536364231189291127531356310929152222038801905233084884902526664379215856024737331099753146575019890643777352713455990082008201703229626059199336205946055965280080701102169732238555450650444952922978965351091684799022863496703003700867983567104204576406483408238270162898400153038170240793466007082809357582624246565407794076373146462132498114127825513678146678170452920201869639116534554760886330106223504103168192333571834827903986325257011539050038134248089709304811825864711515531305306220236937915430166319059848541461940892435145257183521320291684169993020396579969116036992868724131972786031794293949306564377151089018511620921482262120196190937721425766121479187788861054795105318263225469152064168122961689924575203831807111674180551989302454809356170195897045857812805525761654502259575251500366225717602912167461883669038437539579800259238955768034005707167214401566989352644679639415690078876284578920023805934092230111506548520428074734174225651230789110091570222931855325372227700866076982739613755780497126720332904585451011766840445971718497455146675209562512307015719135547090989746449363719782546128011625098729951433416085793735676164505328399231759976421681996524149043776597882319274296321284256543023992437966015783133913781810770234291823685045561761813264202346181466197951557492083861561768393696709892507571590160424135433221592115828736163082348383854894817006682024990146735902784320998065892591192962052481499100544968491346780861453554023664453715137958056336169890198050289824777334997122342360099831042140287452665977457107269485488994964532049966430009076651549117176823303265314183693548583360270339771675547567328620228598303363270569294458822886438065357738904232174973932018092697806466858053162326072184947966907715616557369944491522527778378580560642450764683959025868683461343582627771905125045942552468126439255208348817189833625809675977853828862797036318656894614194365033528927312106544343769280564651044352726478870475148074355707899179836728062728318603377755955449904758584087801591265905150157492539917730643806681997819113053582571292179419519670925389116106598112673736701266295249788199513069682475645975792672734126519484321954119628666069676422250792367847579831586504434282834376533953177535116856164428574846463800056796680482539747866515515432311027555599554130911458648102555921864257606760592428944976842475040664462565154801559724432912829767937040352124527948911380893656196722693535912075893363767084803146000714536284121744218453095345466339303163391872259629385559159227826074683646532286067552588834305187451423391908032353376007735260239898751447611662595618886464438094961563293352900218977661219965293497326855097751054758480158573466127376440880225476532674851993441520595232094959274133553757689429903578150110551777821436314154269284917490374286131088520653500139657607591706429993124765649755125825596580500350657470638937950295317210595764634231927202707002235882789044934672524490610840573726581083658655574369881650001513916788258655763890373001575845552923883566694490968441029757586484980135287918109398468521286244532105735059497108052815538942102863893656353599657237121463375024274208722614439527023686709311725444839740048551817151135937443656998603722579505132833899209195952259533030452342047503880560763001263611067354214934755338198969099874103887993153981874085790696807745587504108569022253629467004674584754231670704043548021486116355548980478232412939078804781605506217375791482541814434802739692240336895132006241710387301701265318644616444270015906338323402426517409156687902510564836956762797925806225301741456318429218615962205659038698231664467932609901388204419167843912701873913598816499497456998503311504347297352120118075767513761747285520564275907980892939427883457474881437882876959358064556894984264270116973080085735707692985136454836611661584596428966810747308409700611242904733707418386367893220822218635480554069988981147558675181953688173875614572079687411554788599768051439333850709137675575653721609911444142808540875719606531636567274611755313938274435478509724774967873575082193174844769423921021852121775361269373273602703432379040787992938717806475568785558652894833702784248867584274168584282539339321818791726079957794648974317663673260076889786379264640772502095494505245108733379866623435937204949824878336712723107350050709016423687479097617108945525122943847635517608253062929468706212077451875775326290994733075129448192427039551961374655931815275947308666225040282382779855667924006419955624212445700163084939114145313849265807831825099781289629202930642389084783978047168422115231321610751494292743959585322669606617186145343825504080178979264742020120742359595194686904277095953268358975706126737220360629680909724521923302906002710070822508946029090362982164009355326839666177341951132990517924103432726900433158654245979249287533995487762244419462858692302358806168824296953443577024907996823603195658916694076582962552693553104719321609676956956719025899346275687425605168129682998661384802589659410965151269718478484774404384573567204255353132646757944661546202960227764295544050504122299673896217512140945080528002097883937147378222081650602700485330711940154656772156226398649740397158702257245007341602662683655681359239401487369769520602417367477535486813475719647113489718518621641326479146571597688578008558688846887337991143896422973628112907923816080608906398812313610695113478214984591761345807577745194374793571586931175238546177549639552389196153878104810131696245216055751006813059704396703962112476646987474144465179905373469404498067901458460367051209803614715331611057803183427524615079857262374236003041078978636478052718566151392396706237265019746606565185165264893349864362011368513206157497780605101112926819089727847372302156349481982794950523256709349863026808775970018633552024786768654328009977971160047693436769953902650106698501691055190398974323609851807967946643711664869394036867398296973173549738118384669313305672850734650046641139767757856903493495590069743603732055767562266255055067470315024771116722714046170753589754625507713384840234072630304863251291706471372961989173206631946888259941928136609431091294891738238093482025462010244440555483771756997804794093899903065671765824682981934769964769358847415742949905141917485652230453328393525301377628932284059455145442914855011346875271723786901308032683250419467642663701160672551901001588552340592270183056699772039661027859280684020014456481443662631930812002631621503638843785425941113618009987324202229379545477417203502413794203169551245469838625249466712603201348452577610596948223445321550678462427229404453197641821848129167267809385682140011397249484885733568342434634031830626088561745936696042911622543178815639370849231981073319880311648706466470236402819983486417012183449847190285572677694321500568641542066500436217700284204210881437800082539895757188768246097332899407780837070402536279879915783686604565261144699449060991422091734314238751783805787055071437579565965484656641601799001074376665976846200558518116216342581496612752980740316538663571560454831035543450023961421534301003861972412250170078251977487206240739098721174414251983663151930659225123848157509055726780145649010937430778003905337655545638008571082427946338751463761791763134509106434062346034858111221669528160702467726835498535478624633648044637010549062797206820770033726599717562473817123844621303481684481560204066609837048920256330562122472234172962625882970474695692053541815832487479199155400569474770982964088808274989265517952981118080321895774961674924202471546540249010391999395339147014981982301560914461619341323562535718841577524474481677346347448583172745156551134141201010321832288886870515091616330679228440521119681945077969123494244988382176812716860551464634577730538079111372503148730433494116579942361895889031603640604497395515580578228517840480138729943443321109654521033352999539044526360222522225641859263880773811721598481892608345665093352738072001824395332751614698328041485548402801417945486980934839857656973013714375405469397417015310490251694129945309618364330951429164472069282746790461643766532578656838144550228004096201806027775712908009522856000444698525055892141432376332273690333356278359019578523751137858455410851581143994032941007865768688272616447478286812105908553490044219108153635485176032336508272203080250531813993754107832450041108473512004259181627408475193696240130704378011253479649084076745232418509816334879482810751446920587329613686044790067516914582728756732260922125605466924464991492789727459067264545249190463652452180647641450907579925175352683907718937467116322313748804319655503781964509630602523671637508434273065122882600161604017777397542316343840880378151928548052488694528260112563843760583092498065081379785863050616713679171378969498244555026253095210918918975475792176593385491263816233645477082333029560363826460412381599552787864211193988494017097494597891070667308909817679619120012125173064195664781698566293210483853234307804515382452317367328213442217627160877774736672143439167877117363871576301198097163887319085342590236528392698827848106349542220164498330826939295275776322338009863231956105808036211260626762129919870745531163316077024817760782191839362959610072069122581762295415402191889502886567698295631199762312430957369828307677191953603774866517068446157790861429186965128034451513558341505617245003128351160909755446435931062715785836314595389073809240824562977540958316325749341861922821251620850881570182132092091815186140890394709202767918683892396902134412968913988839780360999427124803396185919296303202912599175954097622060880258184014322643613944811288258429227594943275834726165046530465623497818985548274031434839419403822327441207644834879713288651976016171179775801572504605379744768609799584442302730861308923634161179471355486847550000332609217010285646057447811923029576677299631859974156306883139830254831186361741782039584296926711052145553170374371279408489965915679197230865879012558728042012783887265599055224172068513359387982048228748965295357265036042031011583388627674902145031893563880931347827169429505654252484126942378054962969866730111858670513087340853476068534434358599339235610014733513742096419613499813818027617777173831397735827033282497560344645750039729241911915523940895658330461488792232771498744446432430479491259117721156883163428767879903590700617720973965425337201564017042222010341821077920725128020910530655559328055037501440691430548428764493383429092159918591195389106013792472577672706982127947454468796030657916570838776760587260527455746091377420965765860917730548949702227628069718691476353652921606050110001628363284300224106274199314326571933179134192082062387432907190737137302760410650122404248465126953368018283031212544379990769206969961411902373989069319742346668852502057497198943264222950880048809297227421712359869453816159715494522756156183384687515093251676941608429009492525469987132336422450441670717094105153238043139182793427150980752877906507765236282116658108100246251118552150524638570051393046505705855878048149543410111214629867258816783083551002858112279993007751805807240583110756750951720132269252647108100370833686662036338708744803898924456241051277874815724162255777539228633296525438538149014066295070948621959369378857889176627954632745931701179850471164300054760347079994908729325043236779564231919478561436958514245790962812766423402295794216899385210022042772919777028503252745826142716880737663937861936321518153126478713683022675473490871308976940534411532252312477142330617073272229196512662331583929371581027246586328579444444363146184272641714116534686566018427252701846477115297923520750819526873973635281676953997112684026824710718451985397380216722554730618304997002273676453115582980603947741286478616665478223260483560083946007188455372567767055428916293774747327303142883396379908588845959307773659960490353588168982857147032525332968156228018812788143561637245932042421448511151234948591898754968454626888920613137249541034409106855208236117418331807604021994425392420208920579860068885028043194482629151269752134939237808402194641307738810612385373803430758210234945016228145517777441720595491788553000533154188536285462746142566216581019281231981270009120205551762908701493035523808451121100121674038683217384473426368363941922842922541718509310720936040931756667511427852369392325310318835931338666943011921267281344903296119267740141221224695454758995678921473010767776144122113700298126187284823800452233848832139311621092627039116751073878526512730961928055451784686241437877000439402660654510445568782221099534199740034975564381112112340280221503879935727071145902589549080581693334971171343668865527115634254206177051178592759102577493127200538098764577831858792282306092967500904591043406425692287202743529965156229093330534048210229565372419753279815635464578529949692828748335495721863838685001688611632732397226951179482336613672001119797676195059964339317153763403383470597857244475896028615046801511944890825277820271480675242031583428567795330346676752906230093843783053262127107727551436749328929029839050563910921724469455069799369151657994590707710833747534814355091685763033337565548295881667331046372555209355626006401041013946977445029440187967025880297980924782905109714012921023396525412604037464276392767582256787078853150697288728455716274384823215390518727987110257030056266921457186103184980135943923928059611426106848608084117351946388167142619002294251296316944227831227256149661159386812639542700555177003257920355018537291222544937585178406842394030996748576968102463963589646123082513574675135569178314161171256575016429025981774178960213225770099819538983037268790999388160114873781545800297272540911628974341299638599770403331845765233008768152807689271870419752405280474294587307742058755848875111011242595246336469857827292585390096952514791915229017066755737234474417973158064120066972976202940294484447900173785695702983458574461829786342374233845525250394581341270877678266892169596080036070301821879685400343014246353527273228628729576689516172633356474978356536364901762433149510370259741291351294038480911675776291198359178998954738268389810881318144392571895650804982851813756149256953533561697670405953188536535715397944822483189499522947667541805656741679509208137549709527422550520810278773243940461062172255608889291505486956417710565776745871633643393353344354689659686568456652840980780496237471943855551860809961996838308303023204428094960756273096802537427398939316425953258421965089763459816406032427779299916540180073993439256846899526035838747908055706546411831738415959413568754823589198353795988723824146195905362079400272045515812149089439534850657124960110038138863851776410174271328362831753763147823091581764558854080120117425790025438591767656060443222684884745008523498817021424087989828825170844518134665895617400062616252623904296002016576833387093470241455225188707391648628359603661911604786287284044210655873720379732115740511495700384656662988784689907068583337082822027319777882426210631080948874266735625124759590367466392603238851247913595978842506611244656082730686869419378566388452307135314580189023796415378960955737242016363403769233162523662986142126694755441705569807460258387415826929784703860942418199763547852463152473488764913553328238541510549315527297147050401549455277785587978349070228476608233186533604663975885958470778253834654240797696802559695087422550155101345257503761329942271753128278653792932438720256389468526901164663647813040491090807468127941422058822266017336663192991552684366168818308799023314673604679106757518916600820283532267336262521679266197466609076273590603450076737233548496558658446633139717827797538406805910429929360039221035354597347100431030396435144038915916623668266913126344615088281418393412803284263899311234398949127083419780129489724269069461756320242366779725858458671718357121665731487935545061046212325231097883220743826127223494607493335199349089503352827840859943043413485386386730477602440994639994744262864169881460533104636744108033912827619601134353693071281126895887423428309538547830772894773831699761566595581403766046694692917243454279901915333572993882914665226189542203317320531186168811347797608407407605783828001391940011573563748977437293272865121248247058267901291926207604190407713882034070121942195804174536328612882215399058217664021270836555791890568599325017677052400113697120318322603506019915641313925343940240662109013108881245672561517149697107123343033770186703909073328407384277966516900441948846688499849594330477597687588948351914207090889627856337805640362008664052450162676847510032777367023412858945519212176118425560026287737182393971684820665156195676025056784935888708488764853411432050223961087928797933475860236448602560559889095042141114555770995952481752060016665027661542775102304969340026404341627209702900552632102691977803405582759922992137140394280304554411677115645781226840369069907894402167773896998766313984646971713397579663356609482471578760284190609072151353715666735610874838437251223266846001460569840674734545141346946725519777160442959565919740123086988432908973444854651917000689467872339836293615222464309098164126098185259144704266545025303801598241716231018998634955168557149475206492223297092492832564441021705090355887085985995635777139757477351746513877879059429290182599971582909275659446247848981269802962339678592101224374391951674562342179085522930788783859664766801733433301631114622802775917200941827081102721028381024130717339207733572863233506860683263344046175451314598604569934473632521005347125315005593766227832257023103400539490879263910109778080025740672344957948247630364416769769961398941112607808399370482214961386434394697498328536327982771078010724562126406503721840800009750848979753790323470043244498260867410693269752221848537666704245309386754479463273958892324390010464165422057795724492855376518767854561666682126089645083399499837050629083046005585475969775186577502259574974071113641804812574472347860453301571573752970544463900074742091987939538207847700562299269164725847385996890019090741110229284011892711090393707951256625505871162457710410071730281431856107523810100552607146986373240896101203122177756524004134283389301848715869709165380053755041209349399025291140728881846524382334145810018045835399646547097737657999927319973246003719341825114028898302740156273660480160023446006635557489882575430517333640013566624026071900773101362427431983226204270838794815469568295018518052775164680939825209495384741828570726493814801300755852645863107109902346618450798860599420580227763187474887974035544067925498230052599806940331223753997496450765383822206480768801345120907967400933212669186833976296953730479198490848075481173866222564292890935268149038220935664712669687412775800605264115523506564502618933209027815939040998632407292059244076658588281041265928115989261841135461097962581606952672620282555086177517400886943761089205526931441633392295630485185413252880269067172930460807054942535927929399374317660808473070011356413316053724827481897146062356642702361351999688135349961872373858392218543200763351558807378745315638448491914729229293899524200774706348903272315808977507478757811816722530061310231634025019256441184378830376020015900968780943436378658886341041792311742590211407071840204690643506048200647638142008012417022576067419616338649464894773258747888371258004745166111614533390649632943815068571303528048606066987720936475614780136613724870081190610224940693086626983244309038109839684966532651673972614248589230718400014113948873894382463199144154595280608413707584680931776124877710367853959180878434706330314478735998893951044551396473092835643281097021267417900565429433796762574979834846370040608638731882056601419154453830855302118221264547668366208794993894400792812123880762954454580771551713346583792589917220361956228045866175891129934612119386870990157257610728655671718150989884878989010560936129321063701786431247633952118283296991292397763966315083036137156694116222551763223729718463537363019551012851980404273999858949482841895131869561704936665081733869567269888593607926477929914154241617892185986238213868576599186922835862278747797822588248069210634435655625874502379992855499242635200418810312591042060637499919404289902350451178995553636601061022034082743324532340407545751878288873620890824366168953913248421784517482986412667914427097220517456426946246374442341597642148658043565562684739853080050494563824379392740724711759911146653289215984340413552620545505450382337393593055265953230743301937344760588997450381359402649540621815517255273116588769216008427290416298492710075877215739370472701026572756721348352639569023758840829703171403337823918832252126896737966491993146654286997524695872772290872453500856630407066568533574208529830420115418288691890733926424489519979847282769845334017397975291613147581231445020138788634379742678200579994121322269247551372441314843637709325079352634186194627275619143677893585413810971435118619485147350970876566015337222115770341772974315032943799063426284074876141227184015510752238719475910987068071892592738377994367254949316785803469664892542186444182612287179557910449464882650640796743217525448166295264727906786246828925970733699508974597572739775258642257237411081878433708210820221737037150319574548556856901307115333840638715284630624405817037753228675035707933695474928449655404010710651818108800967338371522969204938670382715459444197738005368846912545524956474968504619390198109519202317601548349586996644362804975332753337784215078214349781356159806700330808801187276514742787770376388711735185004339353606467331759609520323434307731040940619878899716124169468187500244985189716735389103303950050998537719299310598457351634378548653801122240969193371262708496277385553151897139466570267472934392994832315564820991508223356361055756626145291184105880809617104032998422103103708450571394951056608231619703276340214515205180714285895790466749839788770249552747023771263210384697105692260675399924961828779508402274632513452317957731210760767436221494815831831703917996863270932324285100977906823456393526562654602448612022696209129724187524812887460206501827638990696015726829508889712250474960915814251382389188129516036272608773401571887285638698926740219906799566947620395999764233272273509159507569021506070568608173683815313413358458391185718131693851265661814025359291586445237269643594020078649522651311157985083043024144805377389857793325119594576355771609746124820182780739268279293699985019242638542692213142847807470226032383680887513795489062190056228913847103960486231802219462854834627342805378484872784845199850200231254673720190991165049531582773251958562393582769061038124288434944210197782960202393356192215429431012717063437620885637558575210516516243153848498480027276132634656939259954473165530099144002852725241699281178359691370647294607697838535922131516876003922981948182442720614222460193053790831943072023731911134452546591922089138681548607995454668084773084982325136492036309520083447041870862954860761363159903616127250545751957964647210888735797577682737020775243323588860508092335335073905513443109493069899160574630145727971100280364351998437174906670774347375297940850935379433649531634059146616056633688856034610924333939268430377045017760079872207958819105918573906559129527847214194982333993506057269708134986353202650044649131083864630417351601735242029458044433336745393721383180225238514630182621024563811114013131158431196411773994115148874978916837265302088250582001235314020293366329352660438472061907213902160036890304238298857078125916968115696187801771126134262590436590555613728997165934523407930654486747653538782497234305676329755909556251490281199162462447300020289309587267185888342246844751270809304206796564572266151830853760460397904232958214232706343554103844694640502023607117245110899631177230954517871127928638930203466651459058423658909903249043555051129495609478752736390617903177593272269111439068228186914384280774014054225628430696440596752556166085917209954713534148839683565761650256653160524265621068942027322441923095643802446096713213380725798717399907065979680936760353488549759539596635509348680890599696601522485774754672074979585267917183685368125225037769059988215080670731368550097104216004673677410447602914869035130428759848109051801976310017049857389160537689020885738682525348736086536843719907353699731492111910013292973765313421471062023608373148706539899275441108023029599048942155717940459102237738956213813357609912213696549207116116160719024305902289697711129456672140101362359300927842900355178285149221412376765403174533877693212379770967324627823945584086001741814919017796289317661603803868594182356700203008292123931247583484482836614604178032733825955786314247426512089837537809440565095126231109765743397674664304325537411237787976444841250856141774155699106614291409348255687879291009100099149395875633097052675689443492007598207708034345809773545857971871529935825239691821227385647621157915402106755770379737888373877946705084777012551987017787150386645894028983424962237939111614142306284064988490971705845356339032950418704790422195583887299741875954773946888464558802566937370291522195727118675121808451422453495765395492074031326959261922481952339456304764671318824018197940523014968911119340135589726511101734431304789990013355153397505319273641668659977838918955134364584470748302274121873423711910663781179784833022236179196800164086205264546032334613997549725009298316445036339940077976227446219363055433682100296074190901886178484121311961275313454248238559355818421890051582242690172335491552696611376790350860500512288265733165087518963730733149075002011304056888409120343036123029691209346139936470675848863707498084120272656237178047999310351483447495058610852556619984803629397551534643089006703276258806713926079641163710722516704991147491111949069769222283472310600241102037587222681344489484329251402961422846087716728708631457183412726558025780921317078083551681082321054412471765377795617657822114733589444027773090957306260636161576056962125277636561079099755865379815630513605981754421958619671707415637842102236774651805226502787381252211974131372653935324195767644860250499303797883323811693845130617623570586148278214143870505518172439601592852436602503662797431531128317794903820401011337980771855487733885563841743936782161030097189484397860299067166833428695676364529988698475723839878511754605356609257031624214706326657457318483548087491809120706601205991477901467172050981152965702736480142097778965252094149840332037623960729407929293276736226317884892193777521261628620490543181416819249057570973633306791750576836185438606385885823288775616620960376255177546659414103607889407848829679959230158400477904348713646225085342758383534603467305685785235999806345157870305737021758639854461182197417776254691125876734896353761792703604222492703684534635885612779844089163412561342382408281296746636709009154474499928447118439874890095365440652323707519682925152070963325003812418553520613811027833853844390832647659035485521180606686001335186402405963005984085646694394262917224117283982708309628071737200186196511792954039719769428180782836069866125178881077002379695462239804584192514439467546151028227567610925629703229670229063564287186577524002321181274989805188977349784114350782861475782972624331856160247632315600773892289279202816125199985495114415566352447229569429603579845069311540863982706034758224720445248304804454288546374909202536989146554606271764326130483692580627755414296633653093625275539951942309097242912134431696364606626323719753401502088728319241700048252530324189205950762753167804175574155094688023897337850612085045932191888776540202585919745832079444762413959146665046484477459011205828967066554671906283173000042979105201037077123655044934741152056245488107549066149870611891473646193351032094755115342682504328422083691013408367702598578967893241573216855538680588493862957361872352844022015657934798286636380004391830468613041486009003050084480690349830879190830864891221921369517579423056791551541206905647044193506776072512461511927965644177363439402703464848704111406333728942130716735864662130258556248544444541758315838357280658956985637030427444410512433395505677217329320745635213279878787950458629519963022061566423722942686215555746401501845921646844169991828718033549813802384511411622869944158623881811849075729608091452837549164943673817618313145129708384872151413955069422982291379325632561026854979973561924543634154411573148944203049939096467437384468141094112566228927242824267734483363147838697473847654795809356899641855206445776494285258878495953050773914832073772428839930024889780168138422232705319592908935092918175871840597700956777328896349204399343243060269150195228768641080815909766923368223974325544962411342130636213869358397947396420396148075727572011375499092153227708584057650486263153147474925478324766038048967544238269936656343245653943539636007501691364412713735581616277784012870247780926885524870338525027643924023578291839612710110893586143542826714230389494962735016257807656168860032738101869006933665393760156819053350755691942964218004737468420261668450296746829864609351746756625869556216373681696886276393829958227592149055737661864650976278362842785588073444520789288779850755302130718564744422951480764139145948369045442124169818584064048396129550920556737760091717459346302990134099594760112313264678909696497058896808718890885925811569863143819462559536637400802461605859731023698915995809594601115024552250409609582644451494911407521255465751143650480111969277570071643320123092755593606550154366203426806467706378605147185670260443201100485837419797200505316329054122795100127166535436081494179630946785753077985209926881508551824037886424142247404852159019771338205514386924557620739875096380273848824802829077583821869826738425062293431755851293145802702212123349933212081288856055336498466272182206920921234007619805675494343521030696876793660549387658828361610930727430540042626459608520555211018619959321680031852886910077794407095471582949911704417312682407502720352469336920792857721555736808931998545586595890941765633022509482945800918418436634721924291681206696146963328663271062243985715698633246517273339182220958210031506029210615102701642939597283676504532207457574246058462782153599292217212238145953003977082508244998060305820870778482706793827967826575665822359876871387892189552374248143255206259835157435000682067950227843273052167646787988876846247038947628059858684740539691804370531263641417926601252213509997475803072808982310501306367688848104332808398421800356471994902524939592063985793779429837452417449931390463344592068261724503546632142344446599793953562557071952323483900989128273361794966698728600635300366401528299093757638789501680726524590407637419684971019308509172397380061142021176986804320542111674541331243725559225955867988478059641429176158227211583394180910285130592976133344442283563833307841857335804670669521304549821770235704675995143689269513855390434546621944873154336575906950670807726816853898855099852461535306216520161824035355398643031617644251901425559217572279202949930055305071774263329588511227699799412756820084562878726597638865082706495253342530653452395016241440296636361958693256645420213839356565615826802355108676359331004880752627303261538231705975874597026786917581632012636463025447459366659610039112127873484130740068443694604441818072668320157258341502566094610664421291598307231996485615006810812067414811907974273347083286766978894056140490050052921076941412828458608704765682356724230683724098032063428242016490793889518198571059028634511937698205595447619460956733211846976218534375370881564899176265924960347934121905558339281893814299724363280799732212817984479497524994741879224488534459458627213698470088845836409094373452871292477640146789815721190943012446988179829384275147960466358838966665196264788415427857918215867624465705671378183271666227896841265315488063599563093122976679643213892182532911468444057803144314054585401801885439110407434579154780487532168452467173408393514021895425042447123646446487666553295949849275477503982116733774048801404450884475649318766081837003927223805558073369257608174700195285705260180414097904882075784473106832206300934828979074532387738936346825495024676189792470816386266572086893537256589577068235587781055334820267438803830063989183696399175370358059482112975715760686912995067548010522645695072529607426456990798326696596481785438025039291286188916653759447357440694474605071336940014484528321044869083037916192376775569075486445182672298744058827506921527121021217273109780836009993649891662557043756677986407134682055730412318246649829150268976055588047897535611475021399395086602758298206217522934079084870336843772310035865604864071407941330470768148918782101568223536246204822808120040084444650431073584519373336537113382332397436652395950876328694220086259821373010309825938884231622861085135034188519636360977619442778007101595252940584507902550444899506311234222794799008985564764596425049655399454550296264791747207156841995300128822305839997359503119193124542101826102831624443092657606420139425240095413015743817217255998029190453277270077071141205368761917565519106033586299798007219181253469800861318135417749310174546756347855002005897181859050987665273460998902203648528761260483718192187367656745726888772519519676879432464878348302454101208475274922138628131315054078735655679588281284118212654537778173746459671646184866955119772684894692661323812184400794495695437241686662640272927273338761971715687366754185553766438493208343604930015424825199733126729606015943500735199042691433244490136484487174226915907157463291462187448858806469468804351498004353002542181653006367152394686118562918442279150459316557142672763060283142602453783394125679433125713739726180072832481107544011477336631653102430805444788123849131877945043823693100125039524628571767058923310839443126986213825430129979525628940471701935895270397963988340790612831795062045293951625524989211190330088660403448959271417193457852520506067978321663305438132691014718822939192587413432484532255183241136403279584478012130113369729611655226108735125428857938770596944406874320624116247539277483506893160538467549243999815126189850417849512404273401333817506559658602186743381731364528282278358298595401081538269406150379995879390128735945999265531778987798776133439076669606737829312135160963867955762803492049202148318276051194875679270522676667750372398178043983880457802103867922327442137905138656394572173464797768170031420614387321554835743577102239851278666108937899159036242555531293317596667350534645574987480109741995052516244610707374845958146531278683274096792455755447566234742950625738333517393833990977983455622495390408897086857314634550041268612982966975595459730726094629678331501114817318916535858703977650254508883648196084387917389829502723491868948438036214869457264445101334320572428730217784379150930706768901569719102344958601421835149214227433783175395349014309602409375665466041566611947905748788514311078720362327283178912089299220660111571941186492322215389608439136072313764631981805049076203394012693712463445063167832808098467026828963551306298988241069734833498271393530091095924363191454039011700276812983508196149571657231684536615637695575059605386590854061394897597703460401017594817660015895471888278570385951280919113822275548188491573023425297211539402783676958834939576080894139746221254896598291586602092234979513374118254322495100841335536230590726979135450339702176032581570243708505810184557549861134483158503809360999629639245594269127491824685288881603991891589385567399312385758108581203442324894038552447761206228891369418100845500667605834506929894408956029823528623994293122379568613497139323594591004072794991384384546920434798625923583919001952019716205840993290111167942876627271333035693024391344579379444109732291961159059536843903888168463917013377470555940446983916184532184882575312305928818502798272999985812152165435098995421900562263455493328975374546931460732477300889140725709694190474999829526261923301868084643290052823299316514355071051360524862710163566517025841934796532999211731403216642890230125993090782694013003577825565122615761306177186240562854664749551578562726476092140894232274977217311950851578437326260264467246533491503529678729289552747571034764900406973099772943517568976309335422701985240569661568053940776612711011137120692746552675361024195932329647729119146912056010949278471166173195889795418391862008959293772429027929418820923074979319640111610848291705780377766850802709814563132555837599218446477998498037827297295139804825272968360511207039128006399525116977669869004665769705460728319584623621048137335032118701809164315268111499278076592842836955620278203704811578835318961344278457866292020853193897848057840342997645050320696013219488628023629116296900017004394569407469911512266837576033024150795213430901058435061471585157782676935898091046270576702246467278381258395762398399931436070510161325898750652919325824653084989132849532372266934196667528844788836570558902065033483784716787619115241927706574516815202920273231012021814210320389162618519862368271869759612270579975200185304317654578588174355619023583712638648912864133741587581639386898779686479950749017102244493123585736025960656260047471685753722248799082851792583144102055389112440475820434566252295012488931701344635760245303944775378459068233599277941546766977202294321991482699048142121569358548809271489929872026203318961168098986824960843446147277224458890929374417617849246613294822321059875662996902884495913151971330089208587859101031991675338369848264899424328284278944979553836960280370503211822464967375007036918573548306888245236938198372091481322116406431691465328917398655221728885493129278248114369871910313777173986564106771372624150424668978079908849279944462588464997571061170211532719211518456195003734991095936883627298048353989919215858900474048856622159745515263258207784941467476620330494705735861021317184337802541710473064692013379894719367794000531378829684835301296614365147349647494821949176955170033289071914583933704276708732862602089424688950713759470080380063480104076221915836189907574951653962522842173218382220953308096743351592148489478640418703840058822982004463313196103274173199015919662226480908146919142789101943330795515962302552219601781101243459529689547430523227867424630430910560518302387264480919118540427794500759360503327443647182201701806141975927838206191387358450804780738204818957276519939882317064319562945351242564329256879847524549954919579488699236684751082537860615185849621184880182602994618885681291179871983875613945745100883885536582330588271200912646040693842504767726265800557176033330312117866127608170886878068299388549979421603225847154202565685742764748093111002624565822051605367165770168852610236102647532079535517324641290521805387234322907357901669776276433463051425775956288630395156582706130422957849352046083824773115950532941639829322805250889696067985709682577939256716727249522168655359208449410534022500336882189418619344541554678296111568135250230974842886126584169702742038579571205442631801211386737428095974344520858793887616470249261551103421865747660272185742668838614242303619337075935583136984517784096260008794316247477611243784849616720231274941708911210943942358645836568575244131019479305690132752436680734347915145302689808455908657134579736826011714695158187581841309330769430472557692975925487519514866981278620012793891475628134646551552357300615628389540684721470685481993483714690927037574977461103360559124132182176877156535366281467632508420553756542386914891425532608311836853250250410064223906075900203328173779635010794820149379750210814970613797611847327364661654393572499789565007880458231382380787745195440952668057559692010901900944438820446617022709597382207832368069689301441314115744548142466705209465539513431679964897864609789042769251775164356080644245400659886205078625733638602168216530661469536935105646861597671198084230378557624348236085245267431982320609033556729480554078774993868761053354871638989036996326517497981838028753540259350031744846636986290943914752139705327936464721583082276992967191935357618611088904845098064773020823329782597829323247362133210190682431245094227012326288900234127630758155257038457646555213121586130536959978304949417067671424344686461495126017471346397999008122926066716491647685005931875517162693985961423216846053496979401471152843227754156889811907652667856591951987337385732294410840272609776863577610571541190066765519016603149254884432700562563864513104011909425437778165351564859940493679446742558936378484594287659290985288173499465908214107261298583181888132767257585415405717564936065003482465011370644401936847997552513697608786628976990522120798835698563960524322515319502821315455003002025105701317315738280103640666597395374712149663361162089640418698280702821803373580366173953692150671774268194307298599116777072238336797117278812021979614853917406636974087429479712240577027222441767056903515614705864657547055197628861431520910228708667787065367875450733763913090626645447278281020197379306160312306271106268504291242136498109369664138573720132787220631545793593776009976743055530659199070652808140628522259357850852566802601706942923870270763264027503313142839919124731418334818545755791295262007513134877322501663810107892364973039745713785272188344208534752945110731576120045745035390448095784220574411553064750336306553336685887791520945560369746758041862281227960800613491366514147959600377951824509137873710805328969601601064846614399477992569702100018487822688817949563587173339642646582164462540605869753488774051331635903392715862181402015572636595878463335505043859255064933678686110346974580964752850193895035789398942827279108873725305706305392329613623042140284074295239296323985910809504369941886725133165315699213436987433281075055560192115779173939034969451354363286587868840744597751481661624348488995625727715767848410345497267543995879641380156973940521276760306663062031284744262804014984007005523892993148647528873891056758554330505941171039263842052706364590734146738775107020418659679050868786135642767355353438070776517555088589317052871632468833610217350292395718851961697431138398697091627548820315574131022833848943204492604264822779049019724212072478103381401776383069990477809913211003437690532284128994688498317474789668539878683243928399505192827354512559950601030716209694121040302299497747256414015325521647733681355572074469860616638218638888128784543097861713232910794791694684097471709894168942056133557787028527124530564829972295186993850460398651400300878550029482240880308848917763209587173909275690873694596031542643912234671333128353954153965521142285205601868781630131339948023635548086156809479834595855536264690120804749513503071461673011441087497104451018311868662693147409438124996506866624730977209646182399736101529006479648232494773045652439848384033873897422693153551278251715125472131017320820526395134320790849285010930606068525907105259393472591741676943151201270153579864665578588233430468579828320591612462638838212658167537782862963104740670907197226832305439537132475787543907031661623761546705944946809824447715669929187565264094651050206351396572305651559659732093149098154339815871119972102292134079330650725696118083255292361760200769777634740082946967789858772978936040298004856312319822499814116847214211204703993331598092549830449847956527550352633369342176525168701692423429963175761751565710078145782995805953895824226907817191636563313589052358505524198870487616165068905568395687702574408719788755583781776664892584737856434192944987487745509464900845999694026998839099204166063947350790740832776705383126904754939627806119935986412744872898632013684210428731673146517540976366624870648472108543826658079071872905107330315206190633482650458894998565378575625002230973601165501331490588391440105205468949586279597597031004851102575990024323592271668242065166761604649490540794594114776505453941971191582159775992379581205698821026573765843774773477338374941327222873033979166600252685741388411142351693274047708462689533722511844317429694155867679238140417516117613511682385486003888998926720174154660840669962291862078249614347608425236262478834163830259906611501050507768526191679451028853597078519374811856330514504119648592885156490855346575642032582399321398564478844477827234899867806275417908741809849802761249557417004308393932149149566771630675446358815773928026603675902856384178083008857271092406329213546160676193455300163374509893628962773942472969354575456858241988788662321921700429220244601412536389766969675140147142441676064844823063518404907118795234181600622500538895638609961525640197584600956403706702806801992487634963459627417527632768113817030253207473645806902347813850829412460226516251098663122576985965225147252407258860530762604240847098486565683475407392682836480612517301673216150093947119716916965333697990434745051047142581424635484722897884501408295080231242388304893792477887319133223632364581998351065331932045984816387609318912300152814447252825119776368446788876657426396501795037956072047614691935850488350589472636011962079232481311961006298546687050585476246465788426384673540520626026621982255350749899196001684523728968286206559467577610864376260062810743257183653500277156301195150897717371040697413852568413416863029673350657063906590194594394133987794661204434212939243227511913105485611734280761744226435451538627103065411736969098127062469520988200432409631080779052373378581247626112888343627794725339568599840321802622730987986826302439756086307080405205456997431383659128937167874829074811049050961000180410358015177629676651045107003710984655374938560951211186442017140794272119420427602446221975860349575671026476158599085927539507491734514397565038730855242650907846528856331251725723301098014371861624676196036732025585091522112128644534559820699513084630180786105450961571845882925880269375796516379566494083732110252527268410906198024391891466067475124700250973989069089618240848272284443663386213480759193965301962726841410412430641315036667578327824773950505967112439239816372219684420554926969946259723517281384054504013359911354302796007829761581714171167496393471034011996257546841835709412828672409746291784432401317609470332090266205089377433329504769325428785964683997761084539065469419699567925157618506655171360491232189687290866011099489922060364443579757132084838781950791938995640865400267100009835054998296227575145787110460399774228481289268203447339787525773617855124721436526734965260753691519121692415939236695485413931044778505141306700519295103530154726928690309370070188207247630098606542791264832694979848433432477384318688907581563196203847023197269107811642266961170099525848335476084994878551604549680403254986668364899004660607635841279647194876530245656797327067634042326719185525481300818999372180361337163614883246383086373127652160560504712923087265551483105098775235118543816393546297675945032752288179622530325479128986271692244863717735009341360911508133976976522403831165142058041206163899114644480352046504720814071666092441695619385170329653195765606440113349539262942916783316313038164573486356792464501711265365480701756243019641748342985156830097572084416330859549321792586940795510847662540007568434259464332601446890425698190507499487410689195689400223507747889619411303478832529010083912608860271563079063683281358441953062958865590124123124168875592340719313731342935353419342901386899130624755027268711648839511450287885929378801549059921232932242884571484279824365242308471818967481462289891264308691837816791231866299833498585491425998537686164897664082713089477867832055220751529506343376888639491906434539038262938912335585168625620345145767159214208509654250204510680909742648238826636140883373779825780295126038954565272638191010522643103260692578249186819434841306677115769862292382187203375826459974607008188888345678315236947424130910381720399636970394787461815464049832577532491801752916853916534149815661466650792157604492387460691856397108571907166882259128747827859642086050046079183592279019550738865866393432414407396910771426460996431251174592814959818170022690094397948784990135013063920906453555582009114609690578869554095960282549557942160667039982301910782792152519089419698172311628490911940674937029743085317641967058765182129188611074517652665721831893785680568371603696986069527184199232479643213712952322305340976980406836456463204022631428816984627387417192047507476620564805593464514431065856909320355006511351966198796573876895380591231552612846134703887138700353213994622469504810808308951710870885926876699873038585167348945086709355142912839308138967853046117567795921678864972642019205700241476994617984802315791749203857053367836570973897986608567643116702089563563360315493997809374601408717529492203928678923786182797621185885088797048491077527038155531797224849434443155285908591012205416390509868958894684126402796041226103208723642223204981247137447048961475204248410658920543894446078123510836229367142728915840061477650552630031402513129792238588261168177511793935058830514591897113269574798135904442530212669184103259937678754440412890437673947212932210264507358874763762135100405029645825596387337926941441227152986608026640354472788956712633635988813774088078823246595741484337272637499110910697358987070643177901660451311945478862856914689680249670437948547937794282424743001015708353782359760640032549609324118330800009634059948627885124341359646612643619125598323474542856332266911813414859879710487825120471546366860579777529922556589632997138329537776487510529301334622516718748153170996726146096150368799223116593360597836461190065987274034024448535213103735432857329847180761403953586117245518039524592676332313821371543423848257366114681106994501822397909481315065218098117720829778196042954736959745705790319785646597497670672433651417437394044384938132698376147662012540921542375577045070399545616558126579482898738252435067976642213839092261771309608314610848006769506843811252321460799748523278667901441975484841839054312181710726490427815594820263676651402838391687253566561602714632420694436670277303478563998355399444085574659556274786116446922654006553251547166388943259237665227542803475339769562570721125306690425670136811833903878468669589341616784746396186114536327136913370950844557962856875470347212639556343360245714167478490416732988970176658297258554835538572817639405795584361754248545190623212250055937245652918935247688924309366884053696107147402533504915031372109684560066887933257648850457853410140200578270353532292881720856141414820441136086303497539064784579804068244085003762911852567427076318403710153800944963755925529530002474319463228774860209019611930823888564995322369139655221908077786712953089525878630043726901918042480838728363870417707321580816627078999786130995682873716488594423742701698363427959739382401758238354404914422971641950457991954798251641203479582715513494795217786817820832050109236329280791914121672919591075113017944784050532447505552982850766863360205822545831424229095609092651434611660632266390704906030562999817016110314166347206364120339700905747272571327691742034427801048589714511492065417633286269069516721280973273181115694613295579119333953092557264783660421229949624099863115261800563664968205501333027308053394933513030413625309824633557804929574850768381720309083119901298816466054788044052384167138499153162938547426140264219284241213633290313301758868851015646800061138665222612946670852896798252579695536715854291742651779138757121016416057765384335145517208386375397160845840030019049877558152434949346260082548762310515027645940217654884065336926740751656463490628320193270225183519918513106858668814012132282285588137000358894692135457667819938473873083487304813554404171479116262086215983985211713275721891981233163181867106004706212969627003972885239002047487405396698893222149079109470472120261774121498818949679793408923321856307142222117288430581968563971579264754086160005613836503592934028408973073903961771710883723260579179074899029882658497973588603575025177276323937097384088091939570615950071501208731072089267938726123598603264293807030075177757517836103134437616972987999947015705324567744392413212186216094615497975897628156718782253553706854750615434043167439520867186803856031689391992377701015441516659881123715185241062734368312308101816847031254944533921342597701360279009848163485797880734540390189106675000562856225087327031973079799980692169273264748610242411807298661289814121714905271996688980400036728500120062700671402210159178848177999460135153389420936759897687769280072089122594426103889158277561191642023702738089292840284431866125346871004544680937244745496624240636185128877331813269384442738900627980260660315712267022919024484348924675918273333946557599705356111432698973500693533321770810945681193508128313301818534438816104212779076572234301442704973977680741024621204423059705693120419561031775998301723115446227818771495382914527826567355339264638511943329467455018458689812031306193993158149614481301511832487392431856182970866110412988789986500613985529059122054901985131953072542706987197452157440886447349402683138526750797254037952733910912833006132022924735420717481229760956770491837830310385668873528997789069269144797345482851811675743689411427728701625192339749441797761009602606697815820062960617304040523167394399291906972150102961494017727660412796666407461150164216979289381846986187713684885211180130775890674875716812010501246838615305528264764667134656558123852992139822621833427689748142028252786552488669387034380963442459415178712032536248312350832936841572547521542697445014211479814942308405500663621393582254574986987575834662324206770688099197602594510077751597404835120993127904682086020982469821050374655848296548054750280232725126563838018853417973291151616163053725141086223962284832404857111533191052017578462869046778594195288587813748373903351183671980148280496609290422511615706189624283264740900295718811341526413059653294019154240552816671346103754541322009618579812157355175659326884333266027446558416783732913710880441692350518063270621520217361996550047904523311718587367231610432783354446747459804264375355650953486877601628703904845298461963740858010904668467812930696826941694094116753613665569127611651250333280109005327266198610626649139159086660306132626109133557850935022279095852628033614725969419190488102915029405464752719734590528646811697312324219064910675385963678265462538339748847684496951983002797189972207160736703805702343010695051216338470989962382463789309503715210680229995167762922253921560893984945008266703814366358049192562474178116658119600033271330795732155864181836186059831211578218495667044595123275070080115515518449595342884133419497269623596028405702906644242421068238082493388378942066933798102762956010307735361601151056097735750921241282020660533068156159917881863153694379510339791334799422615898254351348594108911630993802049712434328228709348628285031522201677479270691837890117609026907254775737609908663717769422820136897186262957696853247563004616803641253154727763899302762687791669950429736658245462234687678715869324603848331987914153642015495408663774268478074921734507989872987175041032638398127140775629073079302058814040773016886199589412679823365863214088925878209924900588053220980563030057858249135827476422089651473435871314942478135861542080415463118336454786912907645026396958573015451019434502464870841115784830270767583019402969254849733215171605403054472231830200621192331463881045091088684936947500887039757447930159325440869722475577515680552163124637593616511495219364629992079347604804967888238112022132397218396871846753759120381792236785507578949211564718296119385035161810702425808730226545044861746079240931112804557681556207274844372666894451234786705125144505380754554035217886817857091871583410408568222121386386019814936204562794836743898003718196111174728730284463506828136928902830981612621576860028726940106724910269213734177330596277465935544690605762612318269874865754205449912845294367989225819156746178740188763678451294091764935515428137946647256950218654051404636620276097290137096859444286879204239046435036300614875454684987136734604669075517631501782067213146963520418293751293139221779245908147597658677821967929582420959277116782239942904634806871182780309504504775948426973699278961352884463149881044744887854238745062535621617064715385900452827004649872453791745349811922066004206420068058418358559251999793717358651490893898571896512150374112231215944767999374336109011039532325391405993104536348085535564888565072425609246485600082584893438446476412471700649533184195486548992183113347616668201551785927732335036072673764617957900720569835323760401280002619009915189761637674850498589354731958902853949665125255306269988987453045918867696479231961794221478477973917140775905920511438034584485929997505408623064356189343282454593455672645789053064605809351818244739576552530304763518634751523132449159492703048162425596157212859238196189232649714846718725170073492052721962272213260497352627702546555106024804797976211135540051774645246023269356594798857645097980861984446813483107534467660004953370574699202313917804384898864588813623243803730536147762371862759342717756006477801741648483452712362544135080711881937397968441781544588548419860895687648376811805281875792160249871284672812118950501215452125312231464201947776904745950365136369304012814885536146197389526515245290268507318640784771506001104268303061626054527580746971498600148696458184738501722981263862116298978193737422349940302010370927924439080259603670995725033899226222003768738751735512160961496115034106056356310607238295568441081018889920602294548703384837471191948033992431803413650053277246385163352156197550632910747774719667541370362888584599926118223670578316715880155903977254804007417709434824583763503033704593851450943941743205615152013273555980934357186799265399247707601819056505864783367899485466375736229590840682337664591363614844211795403886539824680940863658349846481174038864178866935089636785808179426396881128147923556501717567468244434048532297527428711637709192590816469968037623742125275103265144626263937746646153358183757628372700787544703191399112727681752253088724499559657135840900485437195901102416775103481952963062163622739703532587274235820062086118559455219311983514043280893203568452605414721418775749929329697129888404365107974154029918551469225408808620931884221567565393869571245296299928308750775843431051258108574411318289140587774425140065501604526259130896622029043529697383668250491729509853355690087818048045428135078407905362835009317812575483528513657643702627245948653137095493747533613412592763010045770047375740121928082100626865060973435266640663037796859954855238390324246759811903817402689320599537460056062359428253514297947517417732226712808729166098109887514462252880899953307168123340635201628763083852773537782426726592528559157259029904793783797205717054437054322135327521345273056446329766257234466393161934084172006681574792984711057702397563007862656461471524704156987538872063022857957159118182054682963509987240352256277275488447515535140127053445108093730995145873918042203245605117626818256555510545422165880806708991841620178750460405050659672554325496757632254227659297176384839901775015337043780878956054590653398691596323246964206791745228703239991575676868387401832623635678867949708892900139237696001297672981096766995668529600385769728042196477369525868831430694124761024312046378547837130397554728181179905235287762505303235962039993520500892827187811392385143510214558439762583144803976149332601126871535321336693869373861103928291822731656625809466636458251404392398955481756393455456290343130905226372812621739420266994360327855210349766207596679210021759125078761529231461718887707118254113717255412188377519340792629890029372488854873174640230360069034371137451669544944622320879242445017992508729703706596149959534674745296834835610876760733480338579019281012173882852938632998330906107444648142638635868086877533023040044903925642011446933288373543850856558277193416113951137146000356099761210861408549726933997380034777249205607245331153758761688265181579601768081780477005835424777565415458737318407699378024595828868456181724628836863485691268624098834575021215636290115979630072704451217853736713442306866909643879077480954764742930567904920907990814143064267743839483674804001076164898439399929183210658050293797212316816660460399597733339661146676628459402230024485470367489094631038027226682085819654152184806184270064770192481320109868241575153744803892956001299884346199355343338564985814434848100812690779569784308741473589854797552268588433205591923819398270335225214367620922317510368281458604919052223886698779513639917016929982171677024471691318544491235008179764188431569351339839591159909398402477312421268667974387445653957158180205941595476363187428761766776580831217352476060437577286198874671460576610352900192299001843860353253632259326555050791093460009190513493999561288154207679515560411164835616673288097828825360100623995485520333740533059619906620823809505180980740215989544564464736280425369917308177341441582887928015821293908070130279777008187558614456605080397761483851457518985266999721498706127788610110729500280947694588394261611336450056337341385943863669788382983718089930549112631560962935347785617542067606729355161520232637094809053789422495092136140828509639789980640288695905724211430982070849702749803958824282574442655796643715022463852873480197711856948533949057492591765908623916430982570800993407792294070949185414542020548230251791068734443317738170207549617139344337413891939374398391435956982501339128101836837490560468838014809393032594817201970282713609154892062425056339242808039079041962416679002612951774492411674431110676973634588581073958699088631558797214406013231514178135265456593065808376178344303454977917380511783626934355438630883642403093899379095388764750702745800233072725819496860619250823188433903953504935346331614566435099667431428341975830338686995606439493853243101168697449903388732086076040625749593637080091957093043243164977586758344620612823377890992395571534024018055086413938135116449219417038263023462024821735416135657630541068815673331159861937722437702544966384983434630365010129619102557974221332379831269621623349269885820053930357972917764620344498066782172083071799586200439533632914967505990701676091728789844239015205735285527331147359372587716749441835336578472355883939717695149737816592367461725211055446862147548197037598697291510779799873931519256098008932443734378519644014535825800057199590747404499828039910970641618001719746716727272190137187041216778302681767904016688241535407482931014047857762623197037418564066913346680157997762608293633981750591335991699117340356031590414018372520015378439838287378603679460373362341500078019915149160632733341853928303425070353985517818057267892970825642977982273217620322344698134437828615813927467368351007592583802910469479586734585749692839668378727622185939394647555937591463263619972220845311521497159100839019367084172538631604255910416520650736683196073706447229407402756565312592612749696877138347246645977777868903850300055226537723767876481686206904419623890351290050116626333502553150329989453168662803618681788447195179754908043603803491548381988453846970894723417385324202361437435146874343645383608481573284114606907070272738533338175269479066355864470891485415915001782314977772830156285577175883947663260330385406497706370553765401569064834222752172126735934981777722402958555405404905881486251319144163698690239712569608929314851155715123392750631445101309954390099977752389769501462278841326244379807326849664170764480891523668540105795806191479007957113216817730984134990590170173618887804030768059722971018898721303410219202826117634260536569524993437443761467164501684564362931719834210503923707745717296063095674851205416328003301431493219693953880392427903339068964274120533694388184569533231502578557471098938696013638131539257349780531980869882525086554303021802918648291576512934915847849856115409949194228866737535138455191592311697985327554158700990199271164355462414740478969638676324533361803541311748536983733897381312503473581845721150353155443477098693431950457218425783539401658074773526512336973949529010871583223682796969231102597261203511980945399862287397695738096305772816467055979501330573857199034002381957284752287554901936633556903337230580276322920356885409976154918107340150372197403070296797946974336372448572392626465204920316333362783569983126835428742906097684522808399909706525430438136777450119807662228535188235010000194193122062863416046817677056792305674778227125172595314314488119131115905523220711728064413706387328165136955580965648135362264190692105375696552849081042357490389352597148615735515248015890741037729881178593387093398174550165853630479424822550924056194525973465715042483458317318376893358356682242800097679845993354381600969054344208783326530499418264857980687477703951599552563863619399465161630661566870356504552732815695571774152217574156467726665341266006787465945445917064604143156469697688567754607446216466534109544577277955574589887592380141452224672178850489433368606738297310626891469246489105512778230921542415301047619442909027167622199494519097681601836352859427834043599596737838332246510010391761180448950751509445689804105244519949790191454264891756322511130180356817770077516636147118055179426339896235256815850937668462772263173824765879839060419898028433516695515479539671904158065004268085265802835022568973468726054985979960791101517666160235125846959729785671099459512302126651660874538874873609246350526704045247129322266560856723826077224117373182932603483967502541080102045463511941347677027419465370578496617463830790937742886207303782195395497292785402692041627490940809459524555915016702694064098465166425620554151336590019841157928720149615117684384950570372133361057749136685471540328363581143036602808368507580382402485420662377910148226373030290928019191859681546980786730340913007602414222527926423077050122884871211597557720278115867026430405910284222205832796878639356778524639029722933046382337358951524086067843606122038204153995468990374760496813736327943359390631261561723865407065261378059923390086585238684495721092568213855113090531149102530619595410035604243175098578813638001012470712926222669175299246165507372354782897672781508021346735544281219846822965807601258925812961551291529371679059380866605882463920184881247148196025699597597440109943191639379754790505442197344822327834374016205237597797797011943234126817437121219616920538396054091466907846721166149676720278982691178448194660522643892336421521686951976404861421307870467407030878540055543177981877806044423717183223027646595020841313751362277872250446333566819893870515311573305663033379166752855464456899123515450146841854263934946115604972065368378933944140856112845157718290051460812073974639600394587625185554066124362840345897517117563998214110246539262039679924726324323392740817453444903225160871364764588080026701150835628279243559818958701753429236014715976335371538369149884493701396945435585450220587920793234556453275394697504464233562758414372757346753854415944114184589285360972710118769871912475937977163279997814110744107173445899096149578179112607407528362750157232831946620452367792852489391985152815277476862466351195636287395268926840951085874029975142072651333618873453013742257654470600613447471630282190517924293545283161857040455902970057831074201818321130275712639152128329025734780554819155339995350709227766709131451016027795046906640892465147654290154364171169751703694691441746973961642147616117989629934656018836882721326489556104717130133224788633800254922367666805073237111075551819630155757643510233618144317712637302538802151395052961588343680287384643438547259627710639114696580214307284359985065840427829545214968281420145601689861115825819049045912138767309528751476215993577952572118418970460633780421377609888382987186760572408045031003919471555634030844111024999892107484900369979385663471675994243764493340794114704402525137349268408768442631809349858940730496033743839353156991668338682772184824656550076962808950283423287915479012234342087367419458793753628320242657141677576362497634211680197538846073055135243229815446918580860263556013687460346751311629875264729762132374472697815900404651845217197303088052462986152722302499740202390607807607108729684578734723793442769973085779442056477372176694910917199829201582119655052045299363966252138012128087492441317407637595631645996093449497924436914677401369584529177830359736884137116738757846521697945718994042500607973249674131489239093877195539499810185519112097455233023768005622054100024704987269181336171952349907722874015900000081859996630577565757440944133674680752386033908670965395304991572215725691293430316636649433499359949257442866521278946786997735834678755461891543118541922512201141447546085898862372398524010979756046784447044203569627262535226412644574046817704638181028248886791084603664780179120572720502604891978394031050644866398538854709221086286970674994846684250104005745431522446498811677002877145509158487763481949143927205594658581636205766633166348790873957577030582019358393658831404962212580507099908059528559942044406344730410825846183806849026517225092841321149446335124607299069167650590534298293064324298438420843112186838923764663078342653812969907200332286436671062125087632340020978487499331176119785608327435407215262055709297390685774802637407042597516035148171909471881015812227923957524342157284145311122024794970279772237143791845142093838995281478192402624515577981817448437715195895443224337535465743819099667455905255515929628670572089546427654812758092825344489546261383974835277118318597043297826213591390264407842672460717942495999944418457711145709253754308911446621656043313325232647459374286527165619559974805366701015277413061616983934863339954570772682738327855025890845828411503881817676391053250850682280682254608117470442284160368625893748278115413250745072843539899961407482523946532036513662515880246322268726337864446756360632160947546051655028453164050968182698161646629017600750392634804208462510202739249873028098942452918697648087784872215798881245786068885059448222311865591806048036410408162072826902342529243038303172662821699446485779645123988430839927710525795421237279126372114726754007556663399420469900254014520872343187837499097055169658937594037517593923796381236402650732885440041588749237621506822747372234148641833025081538716521737146343580839913229032584496869414767628380532634261096487800032634163313892858533068232687891482888845879918839523590204775697890470412980883932511754965939032514318808086589251350654834604870801871167684376599014037338503051705354097778024549383924031941219585219792869675005574756484466287112218161823538278907760430078033534737776868161893531732933800720211553396767550334059211759302562543369657729453845421192978986722712341421037885127338003875903509176475611116719481799785029626569975796047583411386272231968113397516774129297563079890834889704187344515953339328124525087454167888823601669676693509056934953848685245830582354365891093794856494217531143547030428579757541163458653382686488715323707398176633952838048928771539497906458999212265933902251209756486312063882227444051365728609232492085950119577051417236839932469286616445766769010122845984526144253657938590291767327405928532963140342882625587138887523795617827214302093827043177574041402933540827133749159763422323782903580314435019957865833472742172800421470676082775456796035265034958821994153915811530464720579150008893060998324207378738913505297434171864672511212785920383876111884711407933782695532651889984669206123336529438842082071277422176520212937197331164309945138851253603489727732443738980198967495647152924985505331644282083537550918821392010150490097229170060237218527909615226530309578264066624805514505962744887468547283380686372350481706870805453409664018989303567523083620719192519048039614430928396769402045274876875672352019112704035839716102933286184279725063177508426272583745083323831087336887578906029981423461482142132977205960263021878107185855623448466707539337887465132299764080040148380959965767418883721864218043792698113454886106295783741665388499274580864674839122998152269156535947065614401561608731590752862106644964569005364664236292470170037171007747344951455456701858099429149296370631420470483395411015509300016231689958847526174367165673519902617081458493328979376185687227098447290970303808748603652599738626570745208990210005346246535281752553353664481379162249692129159174615104999206164794948509932352325473123369570901912926829882924302097643236317392398579918620652932837273652532727155464557448803256070997634342845761677882230629107100213009206213058183409036879862812302527953989826271284487644964200251208024006412791561676359621383480233394036555123362905836657899041264158223807532918362165339560022567741687247867264166325840384805211178530050379766513612981851327968569183453808828771909366981336640010556087637285088417277262421309405079491403267553162542704082069008879421066850937122975619287087037182750830431954568803922156058209675559524502551705034869262854412364941055966440432184047091464842220238801923689447385257041743108732599005676558085394967587840788066105696809664195095507229787631910255898599124230370503919215615597484657167764811137181684655514887128109537205780844778335934872286431228809097656754755686030962320490275881664305740844727390843326118422445987327333247840817635901524911277674112536162552778414655330909176690492069804678012569169116670758117192038142675205150678072556995565057927635227710520001562399382235746616343061778243653453908331297181815328951987040639660891976244926822214683011679005389904068335326251434266966384542191316381671123794467085990972270181199562054984043392631797936956817358728086336544127957227028286632046449329720096827505106347705975725318049962457678763116559361485481237954262820835940743667890674095679238090792735330293437293240015545389160971432804686204298504098595244531123097224980079309218043105211339620368074430145750283666503781297241858951020961203553860441795023048270474222367624515150153346752111896272467764286524094792546297894618007965592039823454123436752387250288264320383940990535676236266476603944604401595733301263324607748460903949231870341671150912762610449420235728394906336374234076959595122976365038337481325224012527093930390627705084392358931663384490245182567174234403884324371647631305524130946922303653791991584145906748298619069653936921382180390145070987486603818396572333339155799886965643180287954868950078750075697040452069007730703177866239294616540677037072111085436156676696079966848772450067381222872871564227877750413232572433325668891855411429329488860565440648238067742271630476676512978954256628960141796304245949971045693351995046126606024910712287916027743896055835543648697639652748603209360191493903433557239143190638439285779250549677827553549428405944459253512114390307924331376727715588747411367942009727301382953490498457575484341013232325209678868687897157560901716798218629879984692697534246776544491867274964166749330653192953480604375271842244437160513304262787113539029149282814148870473986061838506127450302096100405938019457489732087150578846499577164697627501006211056074344105007938162064404353747790633313014368901922478621517871856506495902914893187624653535690367894238682310088065505025220317303493227408925085685717812999555978581179969598585125763165480643614440399228313883394399309382512630458285095646251087550962821843465507196971315556678960267610180342180078727209942544030053033908364619295804960814812333161630483152962408531184569755268722636545926923409057360734717377784963187141055631713223721599188909226311267339866119099754324198588785712398137757418431217090136849930523729599305097498854898465229140029951851406655323313618725526445523059957603631475833545559561733039738645088495198888376495701165255899816204567851970292771909004967171742730047441246277716359993950297646254360854329007414457560195430005561216034540813518549609119918857418291563403508724650339427486203279739915941799576395397912539481403884867271555592719052791802985163965047687759173754655649008157115615651640916245333735471824698160006083702265293511185949261151759014366183098672614880169069857887108809960894558207669359650117810960774983985020239001220729944020646108058216123931319869729370276385872804007272146646449003700260385073931559387237006170134715760802307006930847059298815153365373154351021358854323056257869459840086484820160819709112320786269852120970373627729374130043258690847415286813670939476686295694652229493915048143897283756839460655223899620126533510816170830907594093809721824600674903655060772344682438949920599111078845084915198336795188984571253413837986761760278350995545206817626937777573090302029167123596273495032394709820686084683852744942407101872815843630002924959535089437128672528909074784878213885265564675100387043248966321996456251401650278960086974792800041448116775030179401246375475789879908538669063667431136751169652405753483003087629688144805513457035323958764598193138858170327302649256409573952867753895065446391927330386796974341887278557082605204887514455393051039517370861524347386559365006796560243429858168716063306950324815221592366667800372643542791616489964881867870128348346170032521412919375468246442868161761709388752595953534202800982679787639766455382586047216374978229776703166836507591815545468472094731368487665226594750121743182105703061435817078627902340735465879229987748219437975516684312052916464529202699514444271626306019327389512022508206389652948697600279080008322453926976491077544426081580102947919191259904529531825439185939377803263383662142905289692431037470302124565828937355803336348218042808499688315901040160256759342640913895853359504103029090437164280576661085268079811775923273879648650874348406469341489348817060884275769910930937100717990648553520345285618760745010904631771192000710306445198760190275639822930148538337914521330947124648898136789475132626607770926431269499691519265720874772004093709101265744826353707067875949773701137535372759511084470338061749482826595751425806980697828214061355391770180980388440887609803063996079489096130549712046833309834840004350370298192868106954390281506570916044598904350421926231318181051540453794121526260065953222948716721150207940826799406742984326514721981664199155243507748430727624729036566488916090007789517123492002332813438468298180410851726367548346302389882614379929368426012094384518422257175413661623012131497239020859516037497086419672948963813901541750735744106005233424547883784735747629332416928225030775766010454944844663815817885210412217442323469576770641306677520061642050101453880376760345044146213927174654289508947773629253894183516056754080652328703885910068755209813763359322047297782028504928548978847747096832805863232564880680057887213245552321479722379054618575524603291276685743681719855356284732863104959464153772180921217482833836984477093271038806055476080118682800323909513153076355867485743446542232844396955127695293658966791620342545471147068009862833233114739839929874945744999389240468374247407267056881018578243834535104550820106156782251776075547595882216829370977697800803265487548709477934378299122208800429974585220909569053447089332035511797535399741555511309141457259750452985665647756935066108925672195995286006376954162535078141962370370965448227265566557508196022040423319715942789704594349600267064492724248415940128436615324768939187802918567135259150886209197381429517124372487160913365163849289385104026504139171049892664986215507852357810737794150431319223535741469722476853077675461580871266643705439791906002880973957702648731458444860526166319673515501898333200698606484052866303599065276166826804020628687011185667903837121579250072880521578676848997677186777382009511963111928891932891334936421614076327136563173709873687653857923853283294417294156216185857250994143215057227439911232756654497824812701345144979635513617400374880896875988931295893104595877665134949337730211768651957942233669763149470388011037534635807179115171371176427327667355647008147167018310182249424846206223471124887740970448889448793739284928610763415685653858474496185618804114764808575858661773930118033830424286203431412346546131595482193410825186644517969870621865711520621206880224498460438801500530690608159715925234048014325802844970040932736268356784275769547195409029478862738046259867758089355327661279994436490781533060119226858263323846719589496901510060926952904284606352120130833396047854326642145257592130342023184664996433912511210750874044768141835712942015316082885026236753328318333060523549440471510427198827879965245580460203711211917297470515430907242811110498765039157343992814136643892101271173819115957206062065179040071598066206897060885634392978595608658223302645087062206986311800905741643029509263788459722856132142680002268143079242478854688485457117567630842442361409932447161936850485190229578643965975995137663519436349235622086954831388549562824117102667188603786785593099932405645961830120252131864701848075437429418059400449999672120745186446233723140223087631729823957494018424820582197262250515210338164414100854356395612655400621645174317638761776404308073339112705155094394004980959820637718971571934512243006538142745952928119773052255194268733845985259638936351663524268942095622616187017048838753623435243756899402894174261750790191115597788862854110554804243520270094440573450726672255503286190193006271285539363879742882320754917665197033548004138537519356191752921705385133202689383868781547414535580551554347203241182239744726278998875663481837437366474035901351791400792530921530026950609353203246262863294045463124578421382410110251823508929288153363522933575324403913835004548544834056805202294284810955445472646744687632347497125607707497561202190127957263590003250185368835616520017651325188731760386934404951522196263209621183630859198778113870256985009683007174915232922901277320407574822121527414122330038702263813225072797955669246437149295327197312773546561660980567966411814119235265500117830684239725324293335900796003748122743467193417804838080290059491117503431533278583613881596298751699392681460541056431181986133718740637117853924300233062775614949198396353901651158436508597598687955172843619473614660280089497828461986372373083118358644130555950047461463974747851784425113486514981125477896797197278237258383624726120805228930516204558400842478193167438106596036702901125313987922880804547444233136389321966671251759908305294181889752184193263519478187180092495307626908423616553085243332017941638836135315139123587382889556068119457230776016265237791634053672334523743393840257306517062614342535196123512050302184439828362650924358566999759197033522517519503859619639185710909184678647802750543987170968157230094882103647755216015371788545927155735021800392979715943172707325672528083079905574015594829026754352500840638250236510262247480194638667176274354685656901695809691203217318775185121211074348523927259394811547307256025685683219713829603902897039383897486861448250933352164200843786728683537314946965396936506945918892488005269308866035085085414003241417085233870110398681439891079390540968403088736011452847987927414143551359445514269541892588509698723321260304718115426006866491574977587769851113463278023809340062139606764627715948064870213465073261757327404259082883064317665356390389474728146079300547880712590907042906484924395204678090565890849022145182490386813271014890860954711004780866705480325079310528049679598945678391789584113550273754672319132525289474795850744166055111316364364003083053073348472851166648287165611389765407713127517679180400860656737846307674818842802921994404899040374037318124700071432933133488089593407139346218062425262930752950190540087156712473670374295413390369499882972232565267027063908793877523370027651656101393992876493607245331392176731773165811452949729605131804269922039283644277478093521658197491148441955315606065005883843364826712415778827436527315874271624502350649410505557848226846407317069461674722611564108235062865852170393325794187718235612419163632667999075598482416989991545508705216768357939778487337061852343229299318496697956751943447135981803904942554540639601871875183188279574959491379171647729083865607363069626131381692827380807799919378673626527839742411679899927333931058972489074784585165549501333493438995955247916756512914404852566296411170109391319380399474224104897125058812755413345168859426404602590270342111571670394755600656256902514614498980011348398699235779302445427003050119230399292100637089672893172498493221632026806905364158412780662459637226234108687558595985251264581315568046731311180080743711053126956869516864426453369427093057585614674708214606009282844154873509226553191646761518088691269428869143437880518467283645817770687937551846596842895139934644445868604669591000881141595354661339404898354948019220145686102400761863173863760665388381495874430067112365491364555498233057011307451958696766631765386817256324899916633977853402615309165739149269999611144756888914852907213327820939820928539276342280837518991899663736409781585802344763185713271202737367798368392383732692787970099456434338804763828038373855468316574681960334926637613488108485962670353478041681630709837603957430549475095558141113942834756468437769722673506322961635152676138845481116112875068405129448143476791620674674019451533549430314250808049919972571077540300391624973014214181453045433425780520289787788406722849351847576091107848971477804349899697541981476645634836721833568275010161911825241550110914930477468242979705132748468108311316042930927758230346011843067362956072346570731023829709480231486659225780012525839658778844863604240755412341536884349036338592881237587918425998823480943902626955664274002820901632809007999721746249693859049895006677515530367296256813610503591208639872889837786821902176062768686634758045656133954482100461630001361249615008490634527478624462761909420004778094378783249381476426126484959649439856544802504468464749104010629428426691499599608611192994395557211450151531939286165999852969844808223923316355636873055578813059376832291376881909875124018726487551399735623822572398458984231521841908643506190603929009927528175791562681878209273088171450165125564211123290912870659795904484414642675977983050565099867212352457380758308963108173063868218917872352929662373149300464418211992148471886192177184107367924932706110075283247785314410750992250494186007161133734568116230803222737583216585948412726154711528482341307472738237300088742998332179397423987119597587522739124858234956081754577772369340920504799141932175333923991272298907250813692099803850278293515664475967618787017970408657460421335576971408098349842694566963525468358524954603670662324364053762502801931959854254366770773668672852660005682369399773838705194787572076710980213227183244637700626815103223802109869526788495295703473609049375943963394903397978475395629422754612816149033854034994597006297599759682566368460608083085447639853654285880391503369404665755952348964229785344013648838059948811767051516433146905815698579485775218191950444674956225393485062041127424998135417668624231512690737353158663872668487383985402222249292121783450834796942840124436396756774735160174076778293695578041928144823949605290198815167352673161971468437053380442502650628948648069659054998630177052996684533996654235846669318852696738556225553752754405501759018022439112954562069417588556032525236077400901435325338074712311295260086915450060284367177649753683423621359047792675009415415150248817982418952206117558487559405581254078866121618983478717449683687586295224829406677815617060259077424293332382137587163917439960332908341476598242905408814287071488991508923915285396487029669454552815192228142330482256970349975258442307389835390173540931189065782553595211350143880559175452010749566777794583404332292323558276990140401078526138397722561227142816948890000880789699839929251292594706895129485721616267627488733084827976546386468850189050064798668817862248021243177261993542687987596013821823836154865479930314768129902362000654744475853485004531500587222622748089168705102294060205461175604310215605503138413468620585744135628196031406260791394154296331424468262720584782502853997840187028972019537593552158624610041152128084328470105045305373589497608932692284281934975564069784880836610044318407212254721304381806226078210585431713984916771662304392112099784237981184357136678050769782125026085888732281387226013851307188595236594978222266692842612151021489452722811131389117336772719184738177638009597940103551010729204267040164393316855622881452106105589497190542268152544913033732485879555007101968664780002196973740303432361290676936631131162764302744206751705349049063891711715443925325441695678724684533088990296577057326214741220524558058937453731123949723158270471440184135323625491445736171844832924335600339770802398336776946149364117641234697504460475664789624995578641619619304105480405863997993331988119275838055634502716983415202691966779077068280635434640823812033137487277393101161878261174382853591353474940378918343534720280081212517165645949207440010595585269559188093391208903792418750973633024580624875477902316448523529706370026901396842675962471430388073004842492210905020771442958447715217111656780675149900758049603580350359688736900870456221754288073572595618585156662791195366907935314407789193451814959030812049914795887675066231504526254966752543787839894743076450170900106420191425896918827094487236971328973538570784383295241103875659864194379911516457402160107025521341907364922999759261201473081070189483456327860666754116620900510762530071351259922714243923870204360170255997531953014652483748610198631528323255265846363360351569930717556148247587582360990170389600054775558075782958476685351435731619632775102822086836540705901987828716163213355579435735129449368752756777433200998421423750418787588444690479100587838106443438432622284575189069579295065933468747998685775673362073821368530291873980819091874921891097190505241377035079938944270583326832940507031575375119626873824491660231762642172481132498364814468730014342832118504742363889449161916057360336774848839407458721447048073886546964143249092479148606442235369326707475091449549698898665876025583967480193010581328614135459938979073203441699781611137649289625459889093696241403884461680255737920524647743834304094286944118678223879825061062589860830883006318503555816134069063236076153579928669713268533489652438047232788990395287272898606403344345862376977167447911934259519705580744928452900498887761394256954091582930378880701222163145855937880762741099695596948379001126805490811402200989268591688316199145725253619395716665867359836014598389149719962797894233361231900126754958327576614205644609021579663896146984828560722746094487352888951290108288440391320569012818105028463259396819848987626983795665500932455956717728622570906955660292883261242221280874078458496711639279224062008153236141356554955756000311031439087538639711607709893379191219700245936204403524206684904721118657948473557127438870895820146421271838549042878791991054729202800898106669266858722882357586868477613123790099704016360180723144238019712088626917988535554518994457205294552693731147210872179223248188210777380735730459113174651871838035393049024804119661770380206925287208887848458068736023196932164389142856968662634708916068060578274052397265410486510394886142951186455025096003414102312843638607092316015500948646037219547915683837293999990695111068953063459016691268958546203943861527605974161594674614535932592292407908003773577295962396993299514268345252430025368758876899906155668957959481052785284923628407350419969054902422529947266500047042253052946352978201487921562644220971939471755915571876875992192349743650424273964354985087592643629690555157074385007482851597479895828812645897996358033557364408800212887654432272414282342225454835304062265402659625988140837227438676354270988907588073828391862142717419801801047266363527026377094564573382065138706508660189855385488300377682604160253845784188943861651626905296262529911055066697033452393000724172495086436730445438788315328506122527672713424953086435795508999301226112339206474734335535040035912110998036221837249023533350210551680825195198317866928790633852497548436786437627924636131738386936749257961699791649303587923866360537100044150002218848199583079175855162287137517499092655492570546069933672996357438035009921739188976474263004102513629001474199390558057768279650391923570838155919156845527917670912073870710542311860093730554674241085597839738423568641026305799415540577691180407618688819926177388186086838699006588265217835961062794131016508140300371823419228538111685171179576892847178818514250620240267359269943846471679032648548861972870301293702303010874380768558172284085477957421172841294188969383742717651091758567520409268206463297319276760051092528201545574118103056945408690311554056858809390782227943287245905817157880517742497002406703439353318342043223179490223900134701430364319463940112498232941504952672486107386587327002199418700231806319750166257910668459112910204895395442009151812738612740496190255546397908073620957970700094608823468490021845226214045490767203163615423076479676243548284937906440005037983094137371101968559848571980707654749582538106458044987602700865515138683838370062283132028998743603531850243798327444628711278327333119107862916985164583184534543203180458845177237790777213948795850815347233295009733959862788511724100827846715055886968125101067076873535619516230816135940864089127854787146637129584774770066097766589201171652847004888262218041074144730248043772420834520863700277214099314258018894292873454008133531362633120643599503463527148834613839886482508490501015883277158937084052583589232790322356487158180428249535114616763087256480121598393048097072061144835995948353814706076296174770132767743812463948133845999914980701346353851784285304927677852015980585891331241691161782034743300560314466175538659381688599647169963791722818798257783140779289368435279805201003857657434123475840842169157937985751881952036708698221919368838367174133636623750663155159321235307042250651513443457998862784342955696830937050303935130442484698038464221312918927103252029564544225657066912754349130994094373316375152490630744225900923983117623538034888225581084342047055342281292417789073519934213007933392266371930260233037503647519674090552394347797940124905968319685077499166344138002324433551538485165902886061306232418066043977646606529255177490655800354280900529833293048494713515656887905547762244661550974974029997415441041423065808653458693283608345589925331542916215617261450278372741008280077291220687696515242511817677276466833179690780969429326221495830855183902452612128777572057354184624363644897207397874726602042431502042845907323246866878367215621143097020071324015350509270202313516759818271028194308389833973603459775515726502255399362466517035159645784517565044249699513618317814737557925945786723254280889662383731118725340456131262432319910246589144056078774993890929110428080069788225545434820891946299337795052872239862031370348646850613106703280553207628475419473129401497330750098295670439160588318392621242408741744838040566013486531147800241413069104825500360132360162163958062040919339177947661175648958892807901082058821926754165591505792314199932790336031879138915461700881792544982459365975499821636572990836683367359540781804250032750159544086902107665889439898710512485546772550649389534744663965747830504164873796929529179354419692300195362509275956724585648844909998932859667889106894409602679173583297555676116000334708641380112943797572432024991838421318661157044389154957385187459291122545094461738335206169293098768717433818359123918880502526941909043912100367726567684139682558965367839795359883805978351183454641239278597498418494969158418540892683026455268206883675633067662898717382503944471933231970818104873299654188894866180137698524115818702569562171381153193552366158256761681298768027946624656355759096842249299683980299812189471058301663076406093437359820003859325350143562217892064080094513186169080748272958110666026049699041630694771314418193873662513491892161620974050852006733496999275029903693171531715271974979321122783540117628227164750083079314976604732602309026093331377870734865171377750916478231899676748351818583241185425423407135504195582514119345289801107400610948590079438900678406576842275249556776300299663917496320933933598690380946562561531744365926661284918040642173250437082415883181365485964005853425636956111774013754285235373354406849096653764078212927485802009407639777012370057771304942823172302119887736496051264556447146075222343131112793629616750995443570759833256199722313676532002989556873853165528946227524770126808852730586382794320514216591427824971512512561862953295389735033605849313563375758253908836002705629880769009223389102853393710461456993932407154712116907918052549340030585692782953973744033596288771321153498420585572983536626185566315492635282800751894011739067515555107397557404324531267184766204699819683573485930608906024521417361078782519654512930694696235010682337810458613202686165844313587034313272625374192216270934549239051729254463291943096693859569164732350521350767941038422224479014807564681509404829960618894135295538671797735784443384218317493897997043665400618640348703388410488445940184659234616008906691932632641027412796470977227547662498319686633740520737742705125833594640793931901190282317145331208941905868908088003452539707308808516234958002326250703453213520532649218247198232642960031321310985234555088703746745526115657571914843441331853597215382703852479252801039138400807778819975816281970664871859148425043943487064073504098355740930313764423171234562418040432727367368136418358976240266302004916883155222715768398736976595583865158018436174036151434413328200121081535408360477866350531160145800223220013885592832690934013157014053065487604923049183499250354534139353227835506756487524075123843684312621514248842401069116483458965326939701207390624528148829068927224131694717494831450693240530537237394343445366424523301444763003245803503893314311056878244586214829401605695781636692701954108034161861671389973331401199434218883510827779753100908707936169986650345151587228847288664475955697645633437319293054179191181419224749573067588889545487849938723392685874973099242881179568435520422746042051497167975757256599113254432323045383695722194801937276616285604301478210034115438163728362405436336144259590775629924046267027722343034889476815794388022046182297093080967132774057298610879446007380385070749871509960199848687983506926933541253482652400584071247447843736626311552264824464870981455009709152306218375404704881173519626715384483810366217413219165892117218999740134337532150050440405907848231498757131767884365899811711485422896601829276438900779899734208187569058009528397027775037245784422354782390486515880803850219949408880969593509711589368266563008960797317826274214614041283588144888056577208738487837112158277081691810905789004923253250637886188783875549676604804952662898611995184616044326761536490687465213413955814850645002854780538978248730516753486158749120139236331822424924933772200561743099017782202664175213781577276469520638853917943149744722849873928815307735538199662752272249875992264895871040556922044224168631953456177054937206756183754664629676203626231984068681492922949977038041473229350867156174390353160921956722065198473243546471922027727022723564082617415201681085283641843223109496591915465791515838036948639268184505886959230001969869593260157208682340956674600156354033421240493145363614950465025184606462820559539360648033692761986945931808040257531976671646618286805873002366016210418105280893945964434329528299271658166055905438500163588161821226865149229854037182391335813124211137081493922738180078983802833408603973148022912941324027394737544271953810117981119093759986099292802294510288929007061607436952362753467543546995544135874946456181965080870668903318499390703017278785179621879666748950236691938024797756758526078278678287761206565913046167848260255051819528206346973466270015716191692648269118434379577496460508868891323137130129240563830337742347720459412702617959956597248128889944234499052336364461352768373987363950664069447162108282548008670097427715141955604425573962993363203673079980982634446540189421397228354180955054543314124639615716880946072082153302252928750715220372716043181509985919106928110776181436116223421430421039187226145052540594186001297330163284577040481798499445348396140453789974702327723882113197014808507544241030680099956257803399294614631421346477035903915982081777466304500434953457740614655612355688425210948115671271583061658535847821878318752147829906285260680556294421223383309248819909866000628055992268218074318975194877892662519305671961873714039332461415116519452966364502220450614590133008248604174755055479843259957419124875400549232728429926440615414783061519829900902975625545449563884628199760903104005648318766990278693259020401957235956723036485396629753650841664512886644222556270355128874434374154388154095244974938201613928996053685087725229870740976570619434318798338476876747760320650169523062367020175051206306515425330296916095756465102938693055254412265888886293351842719498566227918505759856106356242432561764665724688711572235255683965110296123015017295359759288965624916081579842499294528520118416837917556875538524785830512499882879354916334901595213467131757081061180644130400619427929519671224930381738148884132401509957793529073275018712675456856415756734203788847881755468125052105327170107255762184691288806973165961856089006946510525819129085766088006344356620663231314294331468663401267444445451449282880619834533656984882966582244560015820334892783169379961614383612911132245798773024195408822571275192703250265385408054062151478349277108841113022897289089804906509861467336666589578622767060080469368135835301861120092342048003240046460979352015137565807134746400884099820450833437271185358071939445564717942233263576852311748281632523782469653004230663009359529299130637200367302002660090687989176302752497313463533033447166633807847750176678246288155749417814767277855155446947167830407817105803929586156972618709991790194570733376547454173186055633769558727690696219464448104176304698000519356768558366406468922763722326520665342333159783090859825223446048969366844830787216836863718209025464409824540792232935726118012641647362097638615969874679181172110303365980690553525983573340476715496311216055928455560312235379678821442650677636584520518434792420508968367186354057782345996152441720967452073734181843672959509668753229634661652393523102623137798716366387810235672187712428790073551983953354778977093019138480853807430220199273742340822158244683913222944176510134245075233831391340413058948665898933446217764693154293293923718165238959257190438880307369625514751070787060056112650309685423282488911129213024015168564874832025066939408849456299214600418744727910652732260986563578035451618163718408138725988693489699484769547404190960253736074962904612676007498832918343895659325239753646976373747846687134865825059825023663725372409746256616571831344754520015975962361690842077680659067289674736692447599196770325939641376708532214318803477489669738259129293075972671197641058631751981595697393426048576436505212885901479022681035810518853587373159167172627635610180669539376439432152346303972369862065706573413815532922985919613059991556206415084850911275477239645730998628528786929380151806706936906422772032634432264060511231533947956029968082123604633913617278051412284096412204946633950153882466621663435995471865973122044907932545916121234129336825570639672796812287777596621597297850274834759828052093492706333077090548649275343056692038656531461522960892167786628786390798803194935838783308159827813001300555069856882878974684057039638461599105548723621547578370088902522255850056349380380751246556151765221245111255520018254317576688094717296227093020277843345377331257702790230317369957599857867167118529604992065354277538731870931281745520757012582596330203735077093075754459109252615811412022837400253626245112115949456330036826507446933376395255547048659734416036008580184819992568600682744484589664285297543323329361794003048377818376521847293091266795034187451102755962165317850198398058302055754093448999168368174471874655817368855039768309801984656551798904738685655832200040730845926330023227379321506163310361357016121569417320524033157817796438457362027471367013175690557417539842172502198723456476569455423558355103062376951239330936224245920765070889850223021014243456853665319193935962906807051183900364615549165918966392107517352121105900805312482965068768475697369142903159576850109431088980769459710208191069633010414007305499467208551982908477903016288343017405664113652190552236367300861512699196011163934002555466699243233511619865103053673796262666522066337958282038226845635731280548387087816936553828072753896323817792239917693187963484108329556747630110003164878943153088398211977169503988501775885925505180951408771313170407497880119241461944632443959614491673638329104964047776439634015970346483516175533422828901203230075313603693691245556406914769254845284894420576173546068625532335412769418935065510786468152315308528765818432989790421015964201047702673389656292714011392034411290124512765475760550270130107884981621299899927693346961687062391965345592389751638910409010222655034902260507786944481116642419825574286754029403778838376202100691444215101496761693121788823274374684865252239196600119604048427896515970835930210212600162968895238274396105039623286941735107031532802035264910817256976738323311182381114325957829144806185010590801366885304098873440512374237650470024460524534872514971728627853162827911095047337842673287151471574659472782137035085362417560559796979311779897661911835516455618632395686339133776463085607370345279077745786539120132541204586481027916139343910625319313193692750656865405760350369676114247619053528785232236894059326445906194731966817094615609462946863298778961142586641144632260396907153457950232913481618441073092792970437459466024440702731446042658498329221959278056471586250937955931607263272662031278810495862534975406436739637737091572986655296622175204162417945489765434344600220233922526914260265416396805102531182792918845930452114440759283259677856549408841511786034889594770724467619775995853525588602365466255874674974620661898235207320049536960295214149068680602288329497147055060826032384697630257770907343271373412637315553696036883931327880183986477533875059755838946485491305571101339907763546174852489744157945170814606160569793072104696637795583124302620263813786704387958704664063797521667532146388417518600327498100607549915897535785586720567430423471964786746618004739243997153320730541763143995433987349677508585667035912415158519103716317488587230406639727541638341942812403031310163858572252135167171893205227409855701326416090445703221480881437326947051672683791812086975274325437808823002615872188616800846385838462227790146735356948769189168551163559844648200627141772835670331028218638545292942086844139235437510720341784327773640814687669245184595745190003292504808138081290965198146045582386477268395905000342444523528336381569256592585420158827568584892078674949936937265020843278081149386216736351834285733426941373172624450505862327189395953855667889131031791956790378932124076699557980885380672562818898389513213535454543143802522085961769530543227507646557514635443625038629756560246815571817125278074865275445241397049510711733909048556627907324519393915548113894608454585057163366784583893211951477371371515136393479820736157714822646808613376588378258821603077920815459271525568156095878274286085536782605755150769362740826260368243384808834367253248299962050345165363557135984065223561123637746768398090665763987399205686071733420329441471836714934820361245367799857328246240226731033732254057870183233939022872121376771569907392081590953587349214913204183854451583044041730234841843000394493456595341828147914905073927080610470875623188381230846749406492260320189217130060007778459341126377676691036776509976957403419445308932637384429064977049217243962652410327219571584614417177901093584581213128549079113676630751223549799409006735130697449494488732202132583434736638320846562999807932992641084931910126048385070605032609751474993517057307556656587741046981164017277101760405356134216563871097757063336237306761318915514388075990603357275613837143920319662583340824237532756425518988309258906097006629499270997498416968905979568327752191292971049056016921857287628917679166388065206916001091513391097300166654147998893994162320517467229443252463487927521887419163856380795212132553438500307914521479547078058679333671207297555548722474109340347724117095407907009756687345113804923834642261461228414225882679277095684781579936470614192838416973174362314927195109636552263429796174440378992695638164894118134785179088917287568902228405341076010602343255453466897829750797623653569083227664164009254250045783753076563883893719782577529973209249049343033476876928893474962879662078608507264445488995617803584351159090448100417278389645601877987155266971272563163317760610569651504361471152612172819534422377850496291420480339982246867259069773054383478377935364290699313816918936954735563034383772523236668042458930033283939996547339157836045034147691152425282367799181839136190035501709852357505976155944269115922298080564824490378006905243662135310387106048924205766226237382772076477023573290825453033198314380855924716802607358722481198982849838521029581150605503464705610185253854795833357317401739237655771212703937287207958906854034901563979918888979864967295549743892950175771897472554773507089001683861309683707764651717808217173919813357498149721913111356702130476833968003872223040073121299031674062511925073406571287458893623025060788796027768600805367046325114793540070187059625172284466250721989291255445051638164806598232578202332312496156833453905973797696182304464413366990888077805740074850410358899344615915495586714895666984402268565459061322678794206638400178212768827958694413720703605197896164372001163066971330613083767334738012923031686170859233939129642630598614124435126850658599277153918574933829163435593709441467602995247174980735660056463138344612889800545819313756476647327759488808556942932628885802364408041158035816486665892647178349008429135876080402027564165818702234191096809567079032987420705947425126319142105925253079907233831253000943285994615297061278896121575772963917267725968729322568905702346299748425809100189189338740702894551077663333059161138366731223826319401390592230509169155523731296315551017507696723602361815669618573987533921441333222788591541527821023574381673919771141871266870779669535579177529546771646080524266827658606748263708071881094030392589312736185905189392397992148772149623711952788066208513169779596739745592304857575483969993215606328574509130073659671803192167997106131385376801385056023115451320610040292669422343407539061456825361596248411639397505318232949742064998245176858560765343644798107615065324869600515277724503395815527486193306062221948381074512057354368013263808797310868789024136122097536827302436254574321741564192541408457969661700317819028314908500838241465100061060632797659437884210682239948756839030135740473436292347200287247921508293637225860460749908721306541467737113262925651554028049042403943357446746955599491507162692820762230252950101149231929757219385833117913826443572563917292365875131497141202662077049479261945073466186279542663555920601953713876244194811281607413527554052671505307064450123333429428217386863522231198535420090759288923398769993781864452545320140541117551040330833044862414430755689384323000994537186125374881576003852726516877386609875771901308189009320396614169657981018739677944374597577030663572906627128764349271439422465329182813987077908556227740556608641882299208287714710150987105630258082368100940017844886545384003658724580938752008099852892031835934626734903295218380575576411277473344519103636004751187217516719983641109666750992571624317181606038363208373500362065253083169501090599672225511369179768283842372842230496642497315851190089452816965747080361919204114201413298886581677751115530001089712364325027111583419707292959365548951622546668651382042271301034870532830515806963982774766950230380029551748485207135104891844403237902903909198407052506264708222520673224524905516463498544914818546456184796501101403460126920510253162179063273577951200692351659430912017698481758291256628566574948387001474409039128844448821197961138060519328115063270411445436899787785354460911515831312731928477647280845905871033869152813337894811726972897510635605669533487690706194850577583285308379876614582336676841260073445944876796935537270082100453339930163104574504241159237889947394497340023718039386496334874478800765839029656038598880926240847319412368427229652691722193105918450149022774136415165120515112827817591390337405393082320603608671814448577132016989621166265283014537402321760214837147366951561695041364700151903598064606964948559330030640541906690261142145466115446570321800618350846392272556400586125443472087718964169744297645518174184104557288455850718226308037674766056510841829958571124889468703361952036900889844261977043625054055410571041723384281138564376052544299817819538388834949017715431492247964522480206113760133613724274060142561380594150531773904217240604093643064991229878557983138563695806298082860293017634126928524846440953859444692076939450563159265915288998634017040633549809052371359433249777072690802812505123779260354484463488588778633739899371279049303811420183565969344346334350946657471548352579872031783971997622227655335677875910235755895605564833792248246845338844155394136390412051890265164620806860021831013360950716380650570609718473838604492001117552865485183249016534233898907974853583652642080811102258872088588739495409326987470915525619936997389475499980969951958798292680166923852293556966120840537770663235682189709316763923797051534865872451661296998965796593508679523581933598898575090597156272497268381896740943602677410283088885420256920809926210241283816631478194163897017488828677945460466805545532933641536400380091354543977173701372716106407983958198551928905859109373880918990871129160175872565135504412573189857628755949801192157681693419101189659723837348473094581246499891828224567610520024440904173367814700782706627565561185565139324599173544565588154471445722354087790278052201384624175216594942642405163737746896652623990513798890763560560073850895895474572724184253552509061547771771379876511627347335963478890995661913229395793519013711879193578171867265902698547810938735365826643678209922476180191547586883146715881478798028088550949579681045248361620934777114637961499196630655631863107238932358485873532384379982342726112792241295795325212033807943124895268307116183876509545031252011750872676623240430310699518250554030133986335721371327269319832519121322742671125433518140929347444538992445907927324410643744896787887318367315782537426264339024387828555209015414363675966055371108616442020160468033168505186449777283686198208172453594289041129354513061622058015946109866747646533258836699229567327521155878133899069133283019954706166497593085623816867474809167879656209352354784368388881144766416044597736322408989822610191486404849177095609348029410724766095709313314713367293589171201963376983497868262122483766870731979223132407338138352035096841033819424267757504412165512223404096207886204506944560152480887126146778600579693339707121494482239041262604896023369067991869109770066664207528248433985316041119649059839814847687946211883961100580742318903485223962858472070919621387915444967328993622748767024575318427518203724165476082056360817209958494254042807897634762292648429622202294780396546446705116645614300113637468608905022894799060834593220442917447051798426603724260576785348365365881538283665835221313875606339052887725785299335393837687039604362610231827918507703770707692172329718894207454413049046095086459844926864618610143965597678301200476547325537849933382926341005215134161559357370786654358721991980514572452803100288994018613422223308001172389989556702335654544148053438390970624256821373409250495177888653706442169012872295500803305277116819721884765498920965962781156820816971736329306765425724104544082116593945536979629162028723823055209724144079370005513309678853469215175106811426760289016905978840185701731582160750433078783647259084390531661639640498396382338975488632649290118504269828582551896464731883661082982002860033417548557741282391118400916781158041207793002567550722139796716121896172158699459632803381498137558272538035593326531032578859794059827452185109410521432242246984861617606776901549443066387552526801781418966799654095435299932918017188197460230687673806874420134325944679812418484908323087409679041194795903964974321164482968586410681940387045512439055479524079243853868210187468728023592293062093295052200104180296639039776563341548175088765879105767627301536815352176725461904096592038489346553495831171260810320003446772384535844991264029685444852260660015502598105590776652669919962274401306438106173135088289788070490026864486472790323791290002939420053914803922029417874352896366409859947919211409743366763410539862239771353537896770168577809694243777135152592743552763694201903895223901388675876826521686931500548511796998176830995232346106219628590187548565028069622171062956647288942406731232414170158946128644309755574654261750468212135604828876008941644284341144948271801468299115901703218707064710184737545921739980775324983764068383779962525210903234302554622786010239910375491008843344760473433361946831201803649058986873364311150355615599337787470026726781730027707102140623065678100759049638540929650023085667433946546088952341776730392390743714686953425428095354033926207409915381281991117590801473969383146442756091022569879238110941572868247410153152965937732845441930151068975845185398143915941694666976653813289052953693382083634419737492364621389577968834403034086729784595856148772028372245899038798863719190265596009839251530086154664591497170746978121865818412947045153992115230901547566895739245232883758155989976646282407473328701443875874223686375924436196939718043465097542889124979776139226198983015759393466600108412863973987118794483489558369806654861741710391598687181546652483351246430083815118325489216793095957771293475112369155753583137613844748781673698798476780712057261800619684885243776687405321482153917359047542276197058023002559485198643212012225612340394139505249357098248544727520331591748770484879587077374792840475881329688735563779899639367956610546688695648730334134774191982038746899635463824016347436611792846774372252684022785839484825821506321681837009296016487890621332327666058851089155389282951635366391554975660437823222532881164045327280439527009514255801751093716272118234253755324800600349401736470602361981757011791549337363605109728692827373153736115033128949877306919658408196958405461558262752297961706649815221384360821406465624970227042281764441820951283940623867980273250787720399816711960994084937965515998783485717670413058582652325560515345265895561782779886176158587078583944342264596183025130574618378640202092473921712033525182086742822423641624867724458715332996915551446994853935570776213298101774166738824131131355111012575083892190719295125330591976485428006625484007872293303028811817057966996204809988995964264792496235692343744943407912936259476569195795057149609644875194127742321137312076662823322859240598836412597725998614474291538313753830146021360915982668861866026185377800750155333466980880229653337284641347870461487667860293830146614453127038389959821841949573992202584054374730267885096263606899561184558538637252512889616724211690139085327970085543542449957691805566196423985114482355305211171661101180824301822277853727941275547171472718754759671634239211071749670219963451530155218636766677521121335652208151362287970699823851420097309510521686581954738053144125626226485746449633992675761645429491203595281746290766173086339262875916841550295506552291599318559252897936394564047161529721761188538758356966048567867170220730947755570622025048132260601405872431540609621971317124133549609357883788635089094854120113821345759963296234666243892004066519690167674025648556978366448730368908026531177706216812353395964281107178477321887000420424583453904758511166963491566408571693260959988609078028877784410878412538541409422033923983119427880135309045629354764106999071016456637398242540412796583627665917320111292299441309918735487272663722798515117364078351082704739401577650080104859936784574555762162971913165248635493349382422857920524595889573376706986131404219675107571512675903455109473650805787552305149128933348892868736432716386237740469503073472248174312731133168898835707271683557595877961068224276662233010495299355415707446400811516641657021316601895103623521506446339479952996120071375513297006125505776213063752924181360712529568960825260257147894114815062885681960024529612373589647401230915297161474545352110981067576134810579328064799961493789692469048462879332196052277952119574606569055454794712560351741489684252443082474248230880405326207651761460596505403692315707699139223836940302955587283228685591628113600643208338474590561195049700400499203237908672873590979353260976862377931298335914945390387157829746593121317087106055242582104760263873371221793988580155863781036191935026417210349072512110691449329041524457895108196605194876041226692208037193012308252514519579255158429004618967608885489471398366380358819677414752587213494570873922463929084188939531938837703414700997681541314244364404619375148379272361157821792561345086118300808054006332828600558872344862455020072476825759003504685882697198811302325715275781066441178409468580186400298720439288790273868570956088393579509257778896366360960613701202498633951942249731184320186075033867975530834385405319327546136376061192059124380234772119873116529074264603863652925124749794941020736737404700802604600957528601954638412192598998330194711186268395873908386237738096264656387113556020169531678669589758735807639921107484480889645344933268250641235212848389112782060963997935988690476236243375345618001798253409503641705843894340974677128216308514849241251476165352347131288442019100369646802896417421093052739467332384455591051602077472474778159741830713899659887190294431495798241088082346088078028693085573731224551055472288731200973523738330845618492903879524829739999041220702585329266793987028098444323583822995500315889555588948708705657616050834587353571931098641879796928900248349999329193886400900720165464044591275480795319082474261806299409523964479014258607062229640054048914896289100027097845371408312116716113589398262269234057558784892915913712304730108445051437646005516505506299200571361387324603279644391644835432835886947005639725239971013379816309379811642810311980855914010738399293674503336809793193657923987551167642552147121533620760221444928603805957964395306057501074104455050299664991248675179422580820334203454966130532060904900562362872068564615800505956435797900708341922800949752176566516127290150776454913818874812848128356151123703182876975980735074313260575933254596494228419798565135349655731574399424830241494173271827244193132778953529811565758590868141170539365961365392279986830375558039786211808224498894010569880205497734991002636228548479452261643794010258901902088224955111867360360060105953531520610901625419745733324370063832072023871563271466691772225691140886105493845068666446317928156809772010238027533785212931678057950154822853325755698263084725577708199105026691094970799810751823064196050375208770626712876063997214874423288486670022098976175700762451560668252033668212666310291328820908645850538335369093796885661883882478135826426163657394643503525573011350139652985113455284396107782288275265701659732311150011855130375551695101042696218950078663565670066868215622308929711051178356255590724896329886268246448768269378377479839452570859831971144287730286099129388889208262256050032526593661133462804063398399935377014243007816749338082658211094720754023265640744752075723545444622950865555982084901516766485142091696529509563342605720106555733513317460383277777393993414614995026291706972432333787831960270802908575580056510612735391675216278962356206601567703836275417832873426203070692615569030047361085721222650387967184099985604790493178797274511015805325380686507156733024326201408176837073652170711967454523020325544519842143884740417322049780235467071147878917540838407672155404524068885052665232395545107570368911420063240497603832458664270808489171800291398171061304445427413913898347204444413527830161215098432753817535403887831983685369242981027237952651370617210610350338173344111292637494353172587356907983496687161409409118130536607295229916935692187906931124054055297882145280916500123302316863391338995561431517356401146368400931796029897943809389365702662261436507494660704978360203444694076248252738891462779518277346377829059722236362703704850149765971960537418012709092207113464924993398068471848585670512060396489343221262470547508565574693062031593832609375205864501487390138750374553618348942404824591807429455370487977663159643187766136123293117156625799955853300079408863975775547879470739917718893591262796397502349844749383198070887473383696808716986148512001389451456682195891307772219550122187688369068923166260596506362283904478794042245110383978130077561439821918897493147629081692371889052701779527463002843637736116606084425468389507507894252868515111932105146095711682202209583073160606077248842183956062402742218124981731752216009573692650416525207337092746488096792720074936806453659534262203726588964053361502243459440319639272043250144328182569820856517112304644266555165194876987548235786181491250263564692355133555378271109757714751920027052129697890979740038814811914376634970259107936715517667460406149512940754004084564019628077889226442968649824355571970546089323185023466063447317732796051807878112361679796221279548327041579429937065809260327891599876006189579772363429284113781039783000060283144522736271769812605500513213697888456337991781439793558767466354889916599263766878730736356970932479893248269701753153725992679553116064651125519878680363021426294627397467794049429575156492094324444524629161725310780168478264262516055740995148792980174377782697660591474360324617086967310851186700802143747633539793739718075670287129260134133116811538288045003916988468251252719725975522112874527182237511031099297384938481354376924282566489833443854842992340373224131235546859967065629972355571755813552431816250887347980040746967988662013253952479078862151271516966763582831049446967584248008229956576033694784971018245689948872788241458110109173858405445695627868893482313797370549038949440178400507372833107510774211662313021935434218964855768440434053006903609866816757847205691014224123707679500893548457906060892168625505369276795807133837286876899481707493892560191642890553531656606872250698786264605739380369825443323610105669149157394586102369351248231290637297606161415398112691866042298183662307151637659005836009348492776270397575228645679750798578209122747531963598877012692849843796107184988984664295796615091858518458813860824467021944130270934965721188366001348568039483380588175975564588371663682810952133508001095245671211583220286718739835043987385361040214524297913989214922152755075837456972619800062258769490557043371905393628114236698553061063286042109344760206964909932343740112292119095406593057897014977519302138976796797695997854777181522846007427843217009664264173795432833861679531120882552353444419219979051827551619401012678070351610816119135162084358540700671487704637346414714565944777195998043380064653667234107537557007783273470359237484731140686104043577375347806891738023210581226348814892806765995994615514602882769513745822406757862798468394007548366195219961418346613782284909588730535728624266791536220324657978150308618886833531438956748399284191723119221098795307776274650018200454445188133462575936437013821999691028675519566057931527542679539941612198510908659438497151104281291895358284334017639450285391026900936284043260612482583996858887218045173493525254554596878848001821339550016439359458370202963117626131713844275497157875813059563587990231862768006704493994226107047229189874890156076745288501408964020305382597497920436136663236141849064010491511062591246775379703183717355932034889539969653505740162280918886726795205830174418716250965999777576917540653463580165615401458148181122475539930233264864745040667127297556229285489458077915367345361181273899023325971400864918564059583555156617294507224391103464501103640104867421619220933326699712988116810859665417811066808767530439534220655563531292372387375899220153621002917413721132414763343209230578304814573564043484450155518220977268260136923884824285388875273320137485696884387665008018064835186756800359899114816026692561670158728112763130286376442786004550899355440846280733538828475360211218629130227841481151424214226977900998596760281936082583674105347699672095832304690374342765862535662777883837410056931508698569212749486683596425506144444761013460808639304275779006298926163705179468113318444809059237735584309483865994637714864452709687989016729266252651678587646796463450569267882461626102519175753717336090813554619342224496830655974574907289708000840964582151167993149936181508765077326241319284783585541533126973768541801581605367313131069815832710640095700288552029108275306969560550972388937361321101739991572619447952508034389734261793849523157377075700542198286373513708052739536290654297303891021831187834357019765548342469672764792084217112496139183765822895412664287149963110974000570129140032216334684280360480428523166518887150503169327699515416735389873640804030499308065723244731040086109572256932838918332904604977012124631174516433545373168929256672005405759273897329698341076966819038488533933029181934420614659111406742459818408404988289956427077403800205161906421252479065100214373813803307602856523346550811910863472364884611058395395632694219586807509318713543413739621440555733111779675173478467673842029853418006335578220760848740073763671697579202145466977061014235102910360362170025998785608786938311797272147994290707723625708539292756575124022788888003098288949641048146570678822997091018075767367537515475969168107906420360772390615666867559906573792578844462302087903182556423091393636160755081379546833948081630319850713117968868003887812114063713644361534149842057238868083483476236911912832943771746213367797560678727538382051462690865465969879152548152430858691929429745632523329470463167958096900864006402024291798088882309784455324825929931951537754382078426327140256438894474269874223809498534255503623954292685398925623732365910862782153292387198499914629569776323570572734342787774743191304865734706250473079324628861505719246097515479093607599640417761799191960998691447122385104335719828420727648953417592305017287376233220482148796704827203101457792626604525273546750942540427460824643004515492730632712745871185440766886507781020133277285598748175376107617878547315361414564891233388763628934744432705350440251517708208284954512875064976271066193497730873918737884342515788409036590072721344567713389355245678914919413823660768083827342332504796368104732517211344248220684638301363422745439320905366331838205957941190208899953404355699403130858614086813934701844160403375013550040328771246134709478638538671780178632961066570697633215348618776062483605593099182288186752923031697575392108632919042750763052224755671841914324333548012421986791639459293420380568486945933325192201125948173831600068490577184547634556498145051017295901054340041286343796747687275759136651306533940370774753385620393989303465643383862882186659398405539233379803946369645965925226765784216530547291132483415910091567413544306115277892168991680143702924259240304423931999801299061004154975842341608562046406850045572535516424238570235163129270554110426644471159891343657576812831503304028619314156361651491852038657150978895372042487276134440555605152514556609813219438493720409978595666001476580177813908210681299282777008632294340204085926524044060035855959785014045736935131661083772839336727995913588501753680937854209713885437646499318550059545696411769859855877459319322926135907220642079547669008528511894575119919148468316926522107249571675204601995889309530252434274474818676150056818958163762073426007017167903779596768988251972575293356350322583273360023573890443266608936777795892998258928217950006344346023538110719355812987653306855703785370431993338524032897999371179751810194957047157187607941903170659946873077730452603028450193838208548704820553768489095221634331112184162630446745860038058873222460000343391736947255693638418279433329971771165400102258873096566213256753782068033989917695844801450606210338548165856192159512583804132791161965560287773949827151186603671146583593984813690100371885164983111917807308221997941823917813071753457642934759921087496517013078943604509412520033834047858276442081730440495564872620165788089331889030231145674845432545128433835009209742596989998944488478651826183709287406789268131454201209684727166310665439174484220244083685485015047260585285137291912482207883534565155967664734039027287810525995218091803866678910707428924667906240830557395114684363448618024310267280355937127142249483976914746867957900122544311692011302204195610693544427788168461955495785549744512567688975163178664951509310161515004866410681672254526959577369403038865139405797028858542815080699834542609862550632841313560047083949048339192570828460861212341857369826425277022103064946947750556030235070663525525272662550956668244297432478479712754352884585608046812102466077975902908000541709443552394581116858792888355949124631178757579530547641067345547456374711994918094778764660199860987678927371829357398432440382278067493933521221842194331078966326041278621065517651020020377071503625223494375068755980883559184217350189437906448100684588541935190428950982192094391995588489460671370193651853944375099813736436766742283834729320683820204348549379271503262666360028473832806543495813412509883616385617680992660503798725003973026382450001860265496774821096703924230326388278228562335763949440349530992234014295509309376291109438315980181812066094907198064457742040145724498607581181301568780213844840483540408198615956151792400569972532771827628525485983122478276494743222867151610842490182374037109424669032380170539713219937911625965547705604007732593453425965839829589021347521075613262556215343405031063112549211894628831019102246087246600827323830946515570004518304638821328522751301990283758948195543050872837469914606081861160234016914427991868596234584753517948983629632126187926862373934497737933066978622479428113804029222322331418574320485989574321014148865965358842226039355925693828676842275382342143401372523961991837222637028927089846369311064268012651365393044592404298097209676873122824072603101041489455951327631708554565271606019133281709134215881422655743065629214705586113490153729973541785232879394547009635642434913830578196414695072574685096245680382782210846922460665004088637008128681798983101402346504256758122667624263641633255290987697242618816392159446284621921265046932059094593097962610285236989427104300507252730176167277126999489295238733547839006602717023413564938979239703866564291956251597968152721840080806486423904344157560113193520427259736208174026073667081108223660893530104076176007572477873725523999048098066731020563577871083847586013183290570591727042885127438061430542501131875672741413736035379998981487587218466354967906629402273338810788909574918128230918879427193440502800904537344809561183354911637733124804442824626015726110797509505714015816966655315435819661117009392608388662500571496342378006492689423578416265101751573598059658185588720663639621578734482706068126977182779086325614968820209755678267813982678403417992096263562253175332418905169787689886256949161542173759847208338364442922308367954282925952866393827139528295911801919695572055195447342941834058705612305609521624820602793062402562071171312809840507428594500003837994793451526984038998385925718915619299846536476675636597374829661243705863346169397047215675209694363323678605928780200343333691123156054037826450386567853670163162314601910447446593629952108084491815331605673396550348688611843559124743144570249802860429547964199344731393066919613973994900400606137473841309265996363162968847709675949095990815651311754144002696236171652767206267411507940593574001426839838897733381917694482045430155548395892157942266033691208668334554740937574613949713893197940296897559804575994114153929862076018967241348022355424975282496625038179421504309460337296323798010249795786925971491439746247473201395105828316805895257192359342397963896324710325944087317710475943126200880409885392844905120230757172837448874304011361808242033284859317871943840458294787414220788026287812290680202712773053285726964596061569916055866329171986793883821950690915937777668586043313993946906560145835004701674770092326610453166254266295882355491992579546757752022442548041746104149894502199119548857935488533903173017633996095489973460107493435561114367887669383547779578057892067292804859769084776029223676982797340570357163274586326112169920849610820723151036770530944433553572744224424636394084079612674126597730842469709778796608502129063766169589109711706793255213084426614337937084343736703337867460060192204426501471125455149147926009892743104962539193601472443024289455798924250782046269197241062297991042026716509749082803837049885490809660143862096718061086333503746594958880685612373058643316482273465661807429140776532316361632995684828985981024394771777654627439508638150209863698079886212553263718080455689619601574655338201136140680943547744529510843093445729012698416697288895032451942396682650863188642622679981704995039493642255602057205134576081580776484124354391430435641895709920517459797294874097743016481156182003702127318278007849448721828764853037904213802165469313949411311433080547155089863021976584809721650589087095662761910515385964782334386360837168820872575324097540852347037047564254677200407672762140754332841163059579152872755125744929661771021082744624683410096497491589305850790776836408401235932907311552650639007752262234054575321233513923553963965680478431554813967322831413750400381005719350791796657025049091639882571576768684430334758590772315074105637760846797487616434498654855862410915238574767234665592341407202184605639915768244152463763598254953793581372138179798701089766034599817192458720038943102019681192407356101173804323764818905895973747623759086912644213770499984423981676475793594895067960441703058913325836728876649321515703520042868300972933012583634776733172379355000626111440584417171090419071896958780234775861127123427135055359737657927606804546573174327439331755496913048108612084866633331532869352970787380924046198593234139465351009145447240182387271893214871271883801955657456618856260534467935729141801132645697641086636894739977683241709961540016977539188489539317097488042487324242546199380818176441534234682485661148990323959880932211745414262534659717136826882988741460810564973836387214253991215350216092528563943643280725841858593586107127061683578788978267521826206120069725876093512432890205256301569636948207369272122706761139426178681747238753450405441262677902063717388471488243894162180607992392641537389505973704897265957478528401208109965575781560041441311843210513027544031012112922915273966196915999821685549705539118611513441933200660455740684703726929385917950236475816177795921212821391670892922250839787504058960531188412129136642559257979538278947140751661045751827606644989842970193388879008612564331067440825388281845129606532785105118012743415546338906769197185293770793646276142101878078538064351258036651962477059816293762138172192717984140670984950017920409195422335694704258266290699219976321683235875873931153667582474700733054750735045367075225001032520743393014013085460979447748704531834037008299701149334205790787970175024915885346893222561326796896778307383487021398856654775753594217407030700632970969759083311464133649748709608146498685177669156773848731322029927568047197144142046045648457151810681913677451500996229940179612155759103372171469886809914024855333374500477793505775473855428508383249443130143999863791231673475062537759886617626047444230658760211748512425809461497033911200052402518470719515213498490976107515131754484697473181042168583707193632181770818680135745263559837087264748069305323959108707754256364940838611748427008221164724995075891959348865202682928322875568458200794992630569408270073012051110440014579439474512676032761908789244241851112780819507642915932534176882012513233634212230798067982468778549039493443819924005810884021490213605973033781143520469925762358262496641850207363754660928646337049029232807671388577974410024917202145116571018036205633190637511737999659190026071287605065236149729568995653867663965532437858854943441835122205806219191272580231383689395406464691796599018270847217041788373821625469923055701300423321060100439548841340400530192880477526921947486239195420733443921785082495330051645766116429390795172884066674500039928549235612510897541021291549570425437768640458913482197581473457258265722575483183509350465063556716183076576385066332108026118375505462121939868118230131904194878849583399265356540303343889648723102686263078869363452244839976644847953041891515319833783692661599190464741428748514372429923968351419323799846719575982376505838515473917144621216089385709785826000877557203241097293773507140877190212945211589611208540767967923649190082493509989517384693481103765562914957178110568003005978741077251080397031763582542483590997940456082792793659428360170334002918602578393320889923864200100025213873768310234765549905330215096645024960761762058626580403345712644056177277079834222182403026777770673179391287914379947534332000187499175143637062835062317315802012436908467337400959135008020633011317047695127688298496557422569848129268477579943008750664924867098849869856443695509634923121301301879914821474239107969134169489655202932383476689182239382481083560886915943565664451136529168716054737752419239018659278925367815563373135779007321863913091131241626070842293326001954571956266435893658419870874181371189932828339998935321565650423894286571801448684441404707383423152625923502591458890212695209136204265833956196349929563513671087090441396717062050106881205411887573421455745894575677001322870471714086007356218122778418158298159172221752490695483931613691588314724194278500273778793194016166646197503051609911403944264845471368388383148991268740850233113648781056596659029115542708287833458462474239934168320306340380230708808627338185558643288886092380462357643113476016739141131969189948217461345915635121091783768177246189691667187406540960487281512119277546988957915588331849459671371129049334612441543156515447272494207745804571135905006405023705445544998346780681454424498573644500510678971520579049091608765715834119094283486785741964951344782969546135971307354179251782040102896511332823878549925458724318539700611669197870275510108821835611930769265762620610603683460742886705852570058576493143946948321266120516175402883296112824208906143333063845139860556605358599427275716136588013438037458150149748713885167249835130903080731052843876565688315844855599136352800334126960266193919501767860179762158097195624539716535936189228160911517890595228348737870778981274710589504822469319249382926835789037021556164272729697753079757322581820189874787608104747860507099218098990060546158874961616229165494647222392646780132536769644477086504938908130015465418409033106325422188456674121242409516883535464064189350772845211156344881682661861620985349357169552517743401236044993195028871356655402846605194830879120283242036787186029927806539928495820572201338514317088476420426172915743900350579659068985677387225953456015783194001871958167790735493139234520323656408098036903777845427564867519294518838453610737534731394191455460899767438250797692622163941946246482508907336666723909468741429054889853364193519735429258502176398329059235210123477299023876703325497619094951439327055172036184735862253963229769946448645046929494428369215795696368931337885297603726932128712896255805488720810639158846013560288387408185956273841683633886772093251306556719168528850878636236593956261053565598225834837788309311550169717037469426938758380253759637575456046363098584539747785407756495519854811037391076930111276057686661170909313003551989822556235587428441006174425204725078111717852526592162504873112210665763710902376073625181528838745905947968936422244534886807991047451885804473231066808493783126488332825184181343581100899836150244598811142899032638069268131035475192499370676063240435772856362514610082140729270941329179948751933978299685832579520859289167313004588789264691170211137167225534887488988551653203797429352854790558919631471077762760550561859957271747788703180334756432918155578936105839788684284191500985818237835008556313608235297512326395067465632129310484563333794687983805369936926604905848635780317099105313864647353075977698853400635740220510707093762463496629275482687084466369570507466308958948114876482152500646515206066636205122945059187073840835436576493385931796071577844529284080647866504295712356036618514389592535559928930710232644140914569613944430788638227012478515716826614751447327074645064725141442199848254138356843517404619161586234684577973688831000184226944754578368242476272893784802258447914175339166818325249260373354213485350914013050612205794151447843137847952211691249098432914493497210478767815716371376982072767278361746687526534247096378422899103333112204597460641097290676021579930738084654736197576252801832629938715061263847830591505996288471264395665211509298938789288870725254792571206828827930404717243226790230807310318564974187438923859657445300249023769717892781824645512305569042111483726261596183024190911827171773616353039352879802792576361544015231255106240302598512729397941931443269588568977957516863762229040342168034400071800694703431803988289532979764682811302791354215265609899275408815429594663636565107807174248057938372656960311252830031429516112872317666574464941070416997941004714431879423049230825923578165834939221335136403524650255168433524921941907153459857146960270329869080792098058289811058568416325611540370589235682058648008241639015937980833541555418264015299054568556373681942870992146502807942501249162076837798463299248955181691331968594854531198985682454018751057232112231796510813682023627573413525648190554755618472785240226647443195260277905166645634267043459971818069974756260793598702182795275227591331855487031399737046817232659198715684689559692416305553889505078946610803798613756247018019666081410446364149866561456139351730892977836338794788180631717759831296814214525762489239071401380312500830974730149229957536606667381302240399212135215807222328050418429936511411891938518611607404871221416873937698286929174979274249909727205560990247793992859926036765117312612168911914580519358913483080534848170713090757179643451611332165817335084068759932339119757232169348249239619760573058568537189323706798720944317994775201618037617181719733358056347426929497537218577564152331863541384289748407170911393303575916611469878436126630228696812733445702646164875746461207998917363201207039787997518022698013120765204623742984902959715996071316873412571777411574017951325018251037091653285089762537564713083143152747944250281688968785987361962015387203382151839782449369008700687030548838833355822446006979503812403056431562606136271618097059151845565074057903520474388537443425899643514455439555417634045237941717837150406028219390514544285171073970119875421855200584789353609155011930244547356867986574451857734173221845518816450265442386068048975897640330062203001046886286468571569899833657372782357814149430768785806499562850156094024960607307743850731180262723872265622368912734265770229954329588128013717357264136667378451245775792690598710739417619068684518485914255409945665379259812327201273335263795828589677724393003558719481883586551899497894739222688841238299673074474670756737293224055409597056579431182616143001330444448694902505801180513703699729542955620090857335928514334363286438067107212329104485085079139900001083375344457664907407895628117169398311812782709196273512140235112189688073747259668580419454373707150177958431284247195570100715959649242352109992009402051734815970703223697727823930881683005534768163394804051648904086285582544731371879050680881345193668620534131783875789616282338889385373195956106006423410462881843829129551461898300775414931438607733473722719504627849365738918092902992500449960973124122836606589373779842888709139064474593690900488999214636121609031625953208413329604532278259869464543154293114217306229728808502938703695462456794011305390300211748484092150312336091265956599603023276706857051630803139056465482139910253093895888425350558059429518939696827421074357841481855103533366298467799736095918425382608956779291061574163534367753073695970411603904238376912066537497510272105603540888716254567179027054938957307239344390687315360730902546941176366575532966681825459906072439218569950364621480796210556589497867571130386315308658771863207685316936679124524413291084683946408769852834347895366131032462254331300792547200058394492997927907404361776992840876171248714324941085684061375550282670055644678896951297665524919468508112888751583609127319995461049316849730612512438295786705528290577054738496643724154537519543713845764526272737212944466084488962361473976350460144130354331063084380575546027499277597009439651938270153914213149907947325219405955369484153366745383987543764177987786050266602818629733718947123862562099840808514557866718539940789960981593301457461039834052984688970901786350473226544464338995449152114161398140346660886604570160298569404152209953780657617923543585294783251221561564076392939527082874077905811320150105990301382036532749024638309491913579320184719639851850318574852424469251693499088241215700552580361079528384456856290406741538749170951493855034798701067136914346558866342925707200698583316046870507028731985086182266673980969613318147602369172663408772759473058342235639813801315566932724040793859581041455486851372569446386651195583160541617598281829118946382245123323878116084311885816952396889771843125208178214397308773744770554661278175371402945149621865855597345587876697886491310661961328610547526490422081203360835269128629261405810454922758005554352593403240183963167334143448328118472089056856067531663701522556526029080930171360798369778471637758420854611234367918163377432540708277086798804578416346674500531359460190323281976034344036713995468458930833694335146734438298367997601881630722422960255082744486725464185475300397240307134796208570704566785607847891287733856781625537063743498036788272731249665332351298521037745387655204833930649142049657633184989371156648017331784149764056049769369604710771457546584544926146943092454096458140708416413949435538712665425592615648869201631275443716411232218132810943456434287998219622930598748621850500105050497743280637914058941328663369944178344593089532615464298198344522774718581197622553660986290327188226985414986934298768693063352095681018179050923616808850165108142021385571105180802928355266467114304168720978727410824082785788678552499604948510434502087967307202108764218732332992659208983718943280781803114172131936978195430859869753855654393646474375987596903762469184018120002504672165769256238750089523290165523072204700192295484327271660705861773034980004192052674270883010813449831821098409326455545260133235577954633776245108959371520392583036777529446061077710026929957822269955447442593301357527259453170120957735925632417715139351260633963492431608676470063136071329382526934553549758464367336883213189894606491164531448616687590035066926172165386861625637592143903511725349612579915114915494535211413646493078064063813168797981501651803968961966639645952709611156810987717417535197746172933752521989280677943487553981685694776527469869157240090187251582881294595270580199250103491249030077784693902544311369804720393279748843090017466153304513951360628910836770068242866743336908674707964394737855790736551291935342334080884098918906886682358702012943780006354526775258638805829268644463545883295838496339837995315355151394464266719134799798467192278474840015246352185480254386540755819350712366175104708260149335092341929840517805189490666685056741991124525718320506825380051937413157775432327782744576239035325214585171359409596550488237986736453719744874859361786365226319853054170545820672305855255790546778712843224371978344213273756807574525021405335003689531485701958013775821830218686487149177381771199316105404203652818872671268052645331374390880734729077706377177246678425237888036702541877780972691616262171491975343191654075620726743609897718537981686964166871871819297122258013878272575794337245048848246180445039353050271357532658505383268944898102867491688944441042053997646735435371434654809864978498087334887047077403801684907808163880935394231750377496686200470075763040260638039832737658835913924819749874869218562745013879485599415088955242079185123130720874328061545672263216553022499705493087308221748321379938315050749894695902390475579902454971919117972923608045450625943264922546091608864879412457261862326383704202532375424615132797926623136051487482523689643037065798782554084121562000911777216646370630309018428786149327236601416946310516602121079277737315407367190763557441644233057461103865750958074283862901445419599878447813222938384511409612033873354683940555067627400912440721233136167179932206421509903034038223723233261164111662653796604619901876605842085043896460710566226899580394665207127696919991678661267185194594213347240706980448179962665589193523781583478956238151209750160352825496747289358661944137288868919084876728778458055514456390065430628110862183802517409149124092527907625824658343315131967075079639836774348092783796052373320781265383349922802879301553591215703418547179717323755831047597361366531886903750798661060349392187528917489187292756750889037413642744905593607570134715955941503649407415619941260487686212461218707469967741410372954083028988239301543941760708574662747581147709155188228469721541935263433033881376163798057373100983836525285101046860719499600640942106910709639846561938502194024255368460877243866752858160688559699000297675970219107336333225581240291518195490115178203682602154287447225580083413749933634799082831295503280035207732945797405337461571994550714794383310634703277296480572920214682638904900699208720194595930816274620431147448637275442384445240188137040228123528157247542647611538229237661928390196416154750927731137995587793156543335797701206121096667685647663426710446803834952019754723297919193311444164082360937902083617340616873117820388001615379290892703875166366360877257542030361508349213118606595451397313989290166444386304714722314208727100716672055524698646305297349430145409326328790782839190246445864735236976531538941909894870966839884183707701029687293713914809554409582533276649450491416106428252202405625450394834680357286654292237238644560690061691902921143916920717891860617356591327447604054316664745068658465225686400137814585963445317059359058136344913875405034571479751862617179886934240006816035273186738774518687623907738213995858076832079046843855200127167019667278399983495783392994619895988503241743551256453870256914794159512910581102112724634000036353673927820715462464598840728779305483926146198676507870171813676345537995292820400442384082288689010118776931379108003681824839397892101605127573757280789767725628370856090262979178471576013744546023047128462981504005500757455841075174449513617517013678044947047531761818083105987901171596637335153190780347186016001852236983490975985826358594188396926577241113264692948378575163257950048412068191732591951322414156197143965353157613713948050896129583871008809460895045480832449569828298331600690113945799639437816937114668458337949357893391006031889967457146432237604167320140361548663579506816110090899435018637804778508563000133581836397085813259513826488838961845266576226283713353786411291711082926895819520189596214546192759223329153585790426402100262486341320118242661980948582644460145802863238624349565679771047169598737478474857500712866883283570473707920521735272672931941217329426825022129174759096036589279815672931495767763477354489878838720235535707963037764161903900605754009536330098833607682206708839110729078539651875834947178278899197666296985648843307380354591644899729275109763825319859736692021574999750737166746329282794102752561440714194963172768035995543627175976577730106566301825782031425865496203250014708061899521003070437532665027279537165112749689092233477402993101789628566134564827995770236644688829398454163851740032587419555624410683980989112237122756921853786214719999881492536552882821319000831046458473270140746776703826165278531750165885732674055054713219135712329014442182155904179062337665426976344924074274000348142644789240278122360679378858583669098873984603880865843300837632276505732146122426675020191152078633944953859064901875525164898240931354891286058641035971396978720395869898527295118711469099877786757657606678115656126817491704839903291485794630047100419310416635481952285303102710263896894151567312069753479117246437232204518951998205211121469575839699516375710623464417308959277008896228879681610235958254463086556352590267170573774230724609854544395165565410521988632890996696246084175242405671507327329002697433346464876486718696016459159435983417858202003275200610516779588017354287192582295538846965110026118511105237231204462927660022287130773304660438453588462002871431292632175588201147313968878577302649645614622851926802791936763269861346326721511831731606782263858802546532184458985959393152626369446514517473191854154399358449123190504217728190054419976478796004369952624290219187791735139374565695952611427066623917974052506172046039217892385861959029962291385026907612845984430899822650888887148056933611316400032053934473334682069211510644191505949387435602602171624183407308618857835385367583620293421647400580372421845121715691069222276980656541358182528317067829079367218753094641961523237472345850332275131371440089040566124147395351544207442322404283598648891132123862340422184070793768573631562407114963258922996822480131880165421795715626515290823583993490906558342746516521439313735088231722758895299695064268641858267774054886043139294178787221988085394634305117598304416243154912642395809484586811410671563440578566587589018907785021594050879493441600890818740781957621529699248116317693136404594309308911275611794180287274827859281509960287609263762113128818642572853205205585303999162432291465308869994292248122942427915240697056675970087764791207409807860365558580883564818197562700715636500829359188083032176952456608137527187991679101764828896499196247754484291249334747783070520970132625060989019909761334524164805547657758526584818160368399527358978897797658799909698891242607407774816665670841489012511967457786780832833873822615435798274395585725370546686653977550685889307818687672545295616151540306526427251162246446163212830185458712982300480575077754180151705433295220562380625949396977383180061899238042404880332842778606211999659684159476461914327474617094952833609452787785823803628559635297822395619703489342445472338811943599700466468271559162251612312561238337936086152508599323675427845538899657985842094107812098319565940086388094938252320885154187699132383579506834183651294391319451488169625628013923495379278772451656745132813639591227887342140088966239347474304310380964289140339923677188707183905862339563286889502492120149964369266972723940073721835144355958043505761234825349928030374007459398569342562237239572326382324853497245779213292828392580162893001817567805634966171705235059915646672597426332221007357585421359935853007037970649298288544680120920236713071408362989151782189394964860419565861407500465026364137362453747050314438724734538609318712754240749197745335424513982121522846135669958571063387026132718112928374927818193005604204638807819473122942678837983775257252901086642975578596058262121925012573329742269396409212683428335023420724849729755403532930886979671841247386914497303741169936564172316379634814929708548288418940638487455725452577431733556312901130344539527527939743600103280548474393471892131786656317563107915170338519694573792310780690101400006964774210235857394698887872659429755476474921298000976415375226704312540650089557524207558044901408008668825748827234278442215299928326806956558124531382068528999867233535825137952850358727481254974507535482689624463223426290232710269232369352030765754022554461596745021625347849896604393349499508312065610517267924170852040377268695002156766198589910002903223591445438982912598750651078177407162890208164625834244829286586394678378309959127120135414868184496314703810323237969506190658103752529750500254794489160217887293328557736273883763208371031538602129391350933987676032839464382554782644891970457913138394694848274302982861927684487352929213455463264947886427062379483384669903199371445178633455952196090923629911011234913592847982524503120484143900629628932621958043769549479496298977974379302042651637827215779687852716970909609772006661440579145372917062515240880056255361431952689157288600898035933070324048042255169938807416706892937383100230215382496236760879866300964194124357024478844591399179950799116847726370924417046546954287171633446631469501687600025937196375243652789888862180853009185721696833443972318954260645736498552873006805878562507843304616484016915278308824785132313493382092878430888070353518381386850110921122259592340447089850336174377266835552376470121867095535261011086036090357970542651991206812089457239019712324525895397953921994880052752099916815315694740269468806022305673904312487694767168932778937911397121300182946458758750493631235738534704617604956512280399655100397050002309916948526001221617206890079742769045067837570491463777221909897600437605477227797239276810947074689524620123992187200668287017413573025140882781250633904323902892503707302750492828898232627880544345396517846155846551197127275479210003772779978832446491918335959654531033898098201695951961145480233026597804407540889227339337146856783388114041779116417969136698940567635256271372692036613977624543523205955273474726256807507007919632494438944997726254749539656912709865405113485302216174585497331098070837630519007180555784406530650028206256075692881537194097922302157026422920987867030779597227300298751825931068808116323706970267542246905834779958426884297265487149281331630270056426257129167732752858177573257783071514439688779414084733462520216519447340263057840766032348074001673784564707163142869085132930980931229470430621870842832533291545826185073860101290930409050362772113838768894818563653565421791862962543381619455675576187536308969949004218295259908021145896335634596985277126080614044089642765112711777474828340500933295386024083407293534759449385638052241031017638513513369140738907522155996232993735972897877680762307698023155098815330401343006653104086085201687845506249975030616326923658834223325988941402303754640113299274130563398913819432517193616714136792857731359880594312551552789377719632452190331246003465249027689127955551821848864210603225991956639160132321516689622772388509693814803639252850907661246337277561166421849499681866123964900297649084894895400381560202906434921387804584649961759111249797289079964198836823347965176053411326628412659029146342421440077695330190112192748542455348348887008952433027978951935890721942000498906785952888373212121426144713108367763322389524063920690216441816281832631219928438991448687915721151256545600445560355741310284896874904926590779099826202153924122895845072606422566462527382013205305792309184944985573314590010602189426782041609918170173508223985524592214250975984831092938318900032402713958249873421610752282082840222497583790676112495791199592800628400127333984361285280798174662554729645566299861080573554152032138450285731376081743723111817739085691896982975480615226644234290736161184050122140957917018726881464456065946696844562497578612624593905739109165935801175502382075172756546948896194325730262257693377772419519032435189906061275830210386737083876420559123903347843830928836094349141111084578408901412814514261239739766629226499827309581709281511401602878537710199028698727136384733850892911391676808962786859691203081808972622425193011086937905589039872219088855564799956629918644084138246838766624894829845811277815160012981155193460066997083984319496234141303058028612703251236960097673064885717108254989474305220420358049422327959990897967371057088228503275063965486165103684849271353134665994715552211183073148036420225110961862015038073342263751959925820497117324988620616552665153915675082998285406105007811095652926256616047796249470173766354206064315988354949613552599648984534102209440410074887038263058764727520181946284371978934857783502238737815700130110995686015842570145815849534365374158579252753585881565307087322445639373351133669190245213813516062683177376923510898940786666305870594253432329313910020532820990250094062560565113248085580209457070486009176396459506311743717169453978429511388192256009466757571615210122918732132674819469523480300916872764611407242823140597154879118033578772219152028377247986397668154881983656416331889115101342707519013032475473485755852597721320528959331404217992379057431539905996190188696421442680077967623954504807507476121274974128062781699466508980523952151424734297946730572831328877858392296505333198444188697943974231235518804356210902477121035110041033256547516612168885447825496820927765746643734395193336587859120907129306015184455275871602165073954163700086593371655685298012294534641485271575034970135118939171878626044802503004111650608058105829614350537553752526736688467462842339387378457086237451573417818513454234202825422662089869591127080475784210999120228627736734629889426449352781285859975716002079583239077837698947031907557449406443151234886817211585499752196390522681247413318739467940448414302665555117814936017541251738792260319903884683107848551262383859870123727818317586886035503830165558814599471756045164141587959458928780246606882448962705805993662237063121702364044470318264344440309418005692218240543438941397438651321515913758791074132501827661074491091720598442202496191086066559763480939082411815396180466010044116514364863899772653916946110186372192972694730337070093898822078538230860895376706040733521174629557123821289986169247292920281637348274439827310729189194888371031152182596016407288453129616733052429434748436078169845208359229518457233134212498835468827879288072153857045332917706785634985353151185264258736885972745985234552534238895815344999723375047827368652308601358665322411381682110340483985351861819058394081949354369400471332919655969263569009573167934550779026576342487292240397667519864174504427723167912131825135863465419801799107905725419704979854477759152340318480782715130113782279972875356574354480291892536727754886999608793079255465994352008215571402206653452589281162129660718954171259544056998075981808779099962623923424512061910278868878630002770880360627239982118591881403698832482783881641963439480298724679261990780395051645616000821837387416558057242819098468035123892680599115428665804423859059967726515984878568730600234548664695417583551738991057427009853200254266381486934799652768592760031186575873018461876292100521973579648628652925115735322403583387537795722001863666129543640949889613526216989857399499976088535098877527584620958016672308064258686265776936656613912026889814869531049248734937427103217925148595746213418402981150496958819044398921369612008026315295007282716269791276820348237808987073653013782775060360084611489622498382749952537379666184597696518313926082827139150381888889676952848470049943953659290092583351869812052460692238318502094120490387716130262596857041361372613021307256567598700542739502957257839282363417918281382385649060068466521452626739800542911730513794238247376487001077265405496004818635474915039416302517905139139415074398836865463364504483620930733888991845079460419055901694830634957949964083138034502851931844298094953592214482729554555295636365988917071613757812055702184017191995001950709921543001877132020126282271571792338667198509214725850264156717300429514215544980287463176265706362032591441484739405542037275264990139217423167657842416019365403247900582997650454828749841965326462725153884217782630795533504920880022355363031377631745306043343466903121733682866353173000657219137300822374158225033673670301898911190664201600812022769327987638257851234979146305858366284143696877832779884351336713000713426906068946992790444781430164032101733874170087225523639273116444984626957139629070479099098743602818904654283901542922937182874352695744908574562300147764828790399823534725233567562835572027202399576255894063244048843301935388649253031883440847343012009490718882864323720049421683901668835911247887276561693913156642248338639718746276016351001671776711205213613657622650974323784760767662573486799373618834323978619414663465970017103724683160807985480962187376729863416071745182463158234627174225403693162321191829490010010236431599218823487865875261291658860726329777823743674516091139391394106316453466979531962474082661187638788100238369749998326615912929001658585215720562785679118021562182075806216885694720970982373827562365518054771762874073832866866998981113706297337983281776092857805573594272560086184520922864815952691115362691070965775988702754278129018611363132887073393949610797119061623175803889998370075644314744252891817097091093666739207349329768116432207258546541813660089136095720878337656363665195854708443341706678178395740842632062425310496900820099292798820410036232814443168416100258239996803232885465978986507335621511872017405261708833410331081439954120885794644799898525129010914198673658383907685677534311798573137851039971128315786274048477275643754576425700710905699332471761154484424409847095520406938319920615855457045549385075893187094188757076387434493663855058490971663335689845632337261631293936896824894234518310530496608887246838802613162524545652371405012268430341569537919655193255981665464343112898760226831688930953858004748297059483770776389980724501269737800027175922890176616458832468876889163505985916862481554316533109025633048713157283877864486180581247711090151213424275927445531706363335837950516949424284685428956613442307889725994832729914556145506238082682024635102826677381089232926980406742658845265099768521684473558029179414844494693388489439658337794491039787842869356845193900049104598100861339593327886320223857037556189611432358761804442952949248247890068729683332090044390911996354047612833187581478761563281394354768509095858873928268780910956340887056106566308357212354659570341080642431311661414180958225034328972633303858020792980551001190072728629684513001297055237914945874449109956138512557043090985737650549399727850591201685193915146042924107374729199389612085007362023201433396577534616266674313916335339407403600266700114875141013220974573853367002490486211318002505597260039404026145074614092940388496168893906535295125900508348438284560839757859067268041192002227211853718164208117709451698760873512644974352905734330176665078652629658547868346523001045978190768827329393506970522017177841905934929250496553064552631461220471564675815859266366141447794197310675942839785736000503528578233663208959214148689925341140413347140972704531100037243919963729037641318071412796433686095628453847023945188163064850850944834933468401507797468021522138530224730448972564228112174359835177062583424661209929739893810356004384935819151215006539378333469601124954704343341584831297805547499249394111898321213941660054670622534877684755234265402045359170728424674086446374369250001507938772700515678513764492416574571984629559933326654216906097836310981253246808535213535627631414513363452681567852884590873397526727584919621532581909346929266918950334769091285273846785783157993167020429156163191265618708918466887659642524768125212814567964932390024212426520610373620918620017088387711262678414651123876141960438077749894521858099485833527687457083391863781954790905164126228758555436462133538640243951426846078804896064613710685601214140743629349043707982680013170697905181579247838296906933403534403768213324389808182307232933899012432985423763884330491831124719047238215981052552351110918009448181471409554930602583182349330614186443178928893424298521644360259746055891338758499004733295856542693551914067431578663688252731048382336453841859429108064264921835637357164510709246058794938745994693516493744544429873046004576621877424484878818458545046930711905288602965617571535699779678272147490010815779932465330012224200662729112914415176591930138764107952026292403531053943234519998032112138540391123014412673963414843078117694658071057886932480214567716598627150742560643955063594123882508789598596391753919403361336014424588595816114612542799810148510941534404185788246732943693714014714764882042596276699984602179277235645504971142164325212407537242506084280650752226848841623112375895026996684420880803406637781185112507358388282349781164472807775874092514628544799209348849245023429949763545664914938618778372660779262733905550543486883453631523429023432613168415720794520432485435246586979414733411970239054561013916973686340871327176231468601090577780649351493490195162981056624743179177566965331645604001268349038379152195884168584749140600303285428281043986580402490210832606201206104331536720175523008920753543305054817853536788871610607102571059640985760905453440331335502330843289454060911913684690336937230413671056511107852959776918811280432608592624041517728983917059079917184996864602126336920972381711774502112835091490252240566868594723846472988823344144029150759925879368757002751960097155100806349220609079605890033216107098138902984093144227891240640660803889527908402777670784547140946750115801981913005087481112412547292065248178839909498181247060777507488023763351409020111836409162302724686411993296118695189194978496513484282617030292867495225252916164647169795090556463359086649848491935412046894522098435661917992583483565306138538840817666256759221540667963810850307880157633805134149020561135123404198859978834081357970867486187668198063551541131531535652098598537611996474221447924832975037273642179146682214619186266944122590847566642736445045206442011098784762290877462718110621735618600462302501658328147006809920479362476679288633310487067314838837282013489661825855592452654784688852582881936275486976191059139321418757898674441745294887063268997859317039826069385931874550133522959392117966949212966523588598496914488190202190594831883177707597554605465650698278690452753384977648715158909103117760183542001900978583946053733448809234080294811784171049935690922298093877727362078213276487803573606124578548395375513025658345085958640511736696062420343857670519910577746446699962520324751052395764956846585437899139545929816903613513344913642191952221877866230260121349004567932098461682252151243989610328426620214578006788593234761067839080913818418738000836668362634533724176628457119971649692955003139347259561195995964486140640779641631353385350968312856415145529808883758091363441702595948030014407108774075496028660835951563454256873567228343715160040931714405472744455274933481418000333438792547563611035615181125535517715070763633267513805418310963769191566673276738263464128455015294477455845697815939883380630684005953740684328956170177480611731846734241188011630038619814627387221275916107501140951973526524612872277964055596846236832713773201667963267411338868618082035544751536145493745165902737555496834652285226075307995257612285714846680587477035868374400193080436256770656344022303240547283910640572750758709083704347913701659477921849314979443720612380261697306973746157084746500969436779871117737968265326417128872913575612505783224557103526269286417535856107093398908671920961363648289785942895721847962807537297105873535539834735480436359108591701370474213727032257893174834113413558692408298786953748804807864264525473120085916849030190848579901606199458986951141066231117867446799057400904075256098517995662762684932337695354036576632399911596986618210912740200643014599333907964419791633786920423039861874902394836064992690801899952300661687550731709948717403323035594166081115488463304025516095441639990962471171418320399715814254075482895373415928014021635428182695287977754439374651724591813924048181485652819682046462368415534331410228523660351923297135349862395620100757958294348111610253450602642362808180924945441082158583164073815950594772933137788390120184424414799601926383459343663058846944759377662981028779294935630329660878942844822110671454969197248118851221571299238119718785103248726583663176622518290243546673367661878204356455042170762305739453238727840734573809476408236608993688664822503033465343908248880057884089196982926391950229596798568066139728019201565070313870939768746090483459302438158572218727050193441897323981580613371795341356303760864034853701885163234686642460946998486533185393422253950188933785602866659764304739077899163778778160202239117015040711153188159717834839023615454658463788054951454141481529962742883353473783014387286846640073306406369792680505948243772624338681146219225842455099322419307559997349103931299059785767582185606683647980261158724642913458699454058301848516126328112817341400293769797243959036208755285399055163946824806735519002212688434799304441472345918309574199215196260343831259335189226100222282848777621276249591037701035123266361569040293811755740268944900177656699034237176754688594057955612276160687288850056223217227361803881828626667633593008577330468516629810897096012176826790388905312530157832348491990936416864139935639529135914529193417612152897026539308674692591117254326901474602688441571461013588188818730925802507276499810090829455789432934066373114403635373507134873246821303528286101916965136027100061544910804675171714414985856381025432520262367808078211623424574836189199717803759466505843605534145324958612593559568450503459545125201301931293438177464079231098935324571432168815343962056694095476214334057889822592831328742043382851670071273493046179505716582086733169768854769594001314637270939839499199000876695850366977948896659006463211595014212797716586856212803918673002640537428165004859192415674908118642618848117828059975632321036967438640207855927224844696422844781159887422346783094817103342699588656127256710564768064819198275509806346984709817171456212422943731717239023904478655437337239179564997868147040768119924228922579258988906187232172927071683608252581271940399141258777557735189680991795947243808689838930895549255131440778054238576408791736734437710769479105580758509849237776963094411062767467469234721178099497253264579669010117171428178964537577352507459465425097240427944885111943188197883474081472041802592965679785230063144543044714285387030048397554162505704050838025652046713451614343998432852297499092736413859884638825496520872866880037579211448045671367356176613644260641850011592708392788377705290192964768034131317175145384378195547518292762598557401778606480794938870726197734016313644820168426893527929749989511734217981670403438150247331278163399393750837550429201510006811082035480403445154459858861208100649235379657658897942163827257789449867401640232544930448159071731851679026611922197242350647662091815964267030618127128587079662976087321898933070242880718630708680146236518470793620154487333287710289336002106980083482765175129240957093801197318224499166262182916734464052275259325951050328873738162696399678731919540018429999808297699696605121536421248800440656796707088645728204828330224131509527974352086504785354112673536218298894795094081768771100084374434677673264838774638906280188860364966445554604655729402010750110283634517562468915806731521487950811950444323631184848013726220314808335488888824289591696887866958258131227048715011643326216846661137211495454114599341047964264604467064588114125521855914190717837925410693750374416332376147395357181106387155994855383318026105750908908605833335088941343995684741529028950166143862619431353069438187223626368140736647964287906754553536680632356756683271649604251282387351868967882078338950106352840259262190598101921552223648390140514848265804426568650438310564333119878006441070849942865103882972877762360741014802503387481072672753556805298974709068614289623553457173769055670076618221944377354242147509776996138324721852561228568056149552260099968986184185584450218364265608191401954646535305705956555857303194718314011934601895992372519112204811142521774992558068834707927847104058287847730976381992786592844122789717132744685443723921429034221264966455445323594257771299791362048183772122219787238124450269486292264327022807982309283271885867414113549179672551002115955184563810991261114005035941740668629082785963001862273460310561860668645165083849612193889655864495468904172510339232548525373929626476267194051113639430313099928756669695927870925029809068833444726332766291723156960804662607412092965528885857186398825018271179655875457518825412417730817544223134005801565123433359925879550838845446249523708760307146744853787306370129788748002845241599433522958715212197138754808960389508809043661816351358763259310187194393456097863607496043644715001943586195359526925270491417175679392306667799442465809727472634242775902576631751670218548715187223189778404403333689486540236970508946987062656950355657300654764355539234220588438294466197839987441216419305540248059867289888359566645862191118041230073124106471411368651723057571039053288203452532883745946025586634535190557887650257188254858179326533963516493422639150131095407609451811518807321278691863013841710707126634976915318791877399732138799977665412860256461850212615806576419226473575738076155940036604901010032177345147942059039339552721926170179789914841870419093882166516186746604309105656839457659406130890749879485269601165891729355753175382651771327871499744679975466018989766543687399515326260625324609719153565741177616419543661843019905269578095553432447999079565758677234080644129447408468955382816453318188073977017414822754703006518714159868842011157998412158673789016618861364440717773582197808050927952472959703735319931831496722351775598889980294906181376525665015989039676786435172983982974409613876835122110917393224950267982559339507214119534848055131115830404542936217021731083326768440635240921412001801232471648404982228402262073597157277940826271215469291919426898082812711175344788324488595283389632197252737453743061693708743190337221386749779554508846143238549222259645631300721110568715209346266192515572444381335389508915154758221883711650187791066636981242810505429069973770500101930948564569949906710821785847706785254707298176111280142655731945268853024826990661155433491802868381721264221573336853852289756739739382022980759491447055196960544046878556483163967844821848320414620148308313150034944963707663757836259161541980092949072260723220041751221501097825349764340387839530104853478675184574193196065551422157112666616270394463034947397019714427574333119217370016367501556242099547618803344744436857970323497858303112596231097946961529726098124976594503277599251203152921503358719321959106189736660599079846264322124173842628606054675777299310298517276512937780695988257496794906009003532013653517245826189959043185757683675367386079257186593602117240062217133729427988104370500088351728141419116636379556884259546830744557740140034645929290388187527636173925879774641960249902715595336815826152604324555757879132452465270364476791160713694408245027501005572251107327143465699148823105511823332701510509769570143083557996738140050801843570922101693090055537055598436403972113729013922028740350501176453813917241259638903844421634706825818710928957303872394644281924958892373171277986329412949266569861602383348043314313815907323108131383339454645334730103812254477409433000412620524504006400459860201424039334579084746611383893937229683565108807801904964947447134361218587686701971327526937836183337776834687672323800576736926668511605375188422081753713313705818868067237331561207263024025994396694706119152691709081739121293040228588511910569983897116835553603031397424391560340512841713319384209173957190530755272082412316309459238251411795235223207468103870585130069808831276265289571003338280135938260657772815701540884060887655978545862826767281298943911223750582824557562444155816485070849778859040495222040679016566585850376217861222508129708992210579387437555136787178661700645320509276157641929445293531998071022828091443352640376115184219941974955497908649915578419806944155799828745794961507837233999530325095857578663062899279381390035747198685346436614009241924374426596367068066188276144964653523500174544579621878024075761587209699205168345926018118244486291163097774126196831120873591884940613691588727327602815219177430702445603531516081141325613454049194136153082783158115402642970228049852575010476978144681151666035074373807131984677765056298622247386124047394066770872835550228178655108701791700422785661448093456391257469438952633010836956449765087974760425576264886873670448292548747710890723183979790360061210380024362516574282725455175219894962812162669686824938527487520989118708574435499840697002904930609796928285985904466502178986133006543174731401303433709808794151116430082324666764254064555514319775851001158963206893077468145969544342945953600226483805515423990146991581119839091100640052037410088742040958741214766230435852670937636355368390721543046989564809916042620377698577771148194633736504845515541507030116852520498953571619648845392409264715863624362391754582809883949514996616785897487785946833582253769098789330544031945044193494703134241738197052412894496967343356682085388300282477062195049113190862567472534778683518716633089317700906242152674986621860876261271633208920592218067696079247824299802925061756142101361528772124893597562335980500717882697531543666451267762232658677042908684530833759073466769142983802980721078514383514423073850867450871540723650900771810332932597478332714464768371631340579655963885178708243469872856475147784190169652626915895443747880281583009232642963161309389608430753436600846351282620515543922463701493425729141641444911153968177478560570890585311056240815740293497850447068005895780171906114891381720925204656215145299006350149381148350172184968856916988233563538749962497481396325474820479802306128455852026587416222912370778190509642648147031686562439412939424033470424268584722508988946478155317207854538263584074516852147092173370403186614787708794341182421857821573464814744693445709054596725684417062444622703032906021805189554326320005363003438654129765863345020728139567186456127885933087215934149996054812273816927083610636703498290192009682640208777231576203015703632621624951289546627526602458890308536824240355070390392428389688162286896155478874811326092599364968991044356349785135516513800282807333993258761710763966854966838130356292401497827026956008017122735303892107445792122724226723130920163258967578363310532058238910501282570347801144603212284890945830966464474078674337335044786290420151228499324132683827673477362887792329857151259542786897813109621674969271024229755303801510112046236650233356740780991720483104986577339315485807342397024451382998866774942191638094032246928381854350906672547547728105025855766958330478997025991965920606643381843313067807683867677320976304117796619174893559487893386189990540816579383058715861876033180844044932689561987262088271479285786409155229839668257187566600593458712941268135606163426722753208020896331628520164595905318156435972988351607472811257136942855147954386206610789668256921003520420902986391709420573267384000740332175356976838566486632629489223701579543338790771337685712557432389583809120091114615483935957441993148269795258602082824684056826959295911877537582570205236651213924577707758380998613572448147523642617073738646868956832216779865105370758357598658185473067238186971416359225831175446745046999619580449174882846093374860481878735719169282784366386991071455317698087691279750898779915917965210634443989239264701121108580360780972062046758695835146018242050247460543351982402330000957565746491335308748444598739269987911034087769762498089162744654396107532142403910165505457491347338709583452960962566290449843584790345861239183615156634190075820533800265126675532297287572381275888919410232185994090643942884364378916788812545553728221107626013653675443667038200518743749260171751933127905973225963797413970684263310037762173083613679492750044162599600610796511377861286521288719185038545425491142118202122521229444917561620650512425239146782271751070366830969168804827104387129010211961148769773927646755305922470775805040895637010365335830011830256067163332980004787985685388350101964225823161609047398441138640504651791273967398900704615304774566494929825743148934926259901677897403826174720284890519138114435452615838060517815966088345176997272993686512938980702005237760548721641871700498456558174128846846146682113662807979229008664101840489074500738091722239641240272425152736105154309878043724959691030202269014994595931144704377726610954767813523415632214558344939947354625975243168507725138614583867183329981946164666556501686552348766537179665523234989937530053612300801210478811957671625213750661389044344524001962216992127678742505512051000406600604055219183595349570960792884422805785196256282011339616242446209849061377739191007135210532460118693389171685354513066651793724715949606991333448931631127894373100587787160088098240414369861969099579074762105720636102882499411218766916235550624624766441663680703816578514831383792092674316018911384788540803715208669314764146215228253321051535687207192227012804591036253896981572152306855334892142808483176439319307417717902261716701689299485528163127772047800068917130865700433580137355464713007301476996312387723412654153983673294261119268426318898699822737176959396007143887219257311079567609129965140542484719153021382162112890973756271576102500455228198538316538627456359993917519653083020655096274155679483503836613642969485267750023615432703023113501653342217971709806861086761840497640107919892207067326442779172952805256144508584623493981325687039838575676657871172436677927881341697617073969575953407327958197773179313464991426663902941879234834414224124366242438313391012384932969884521483160144557288629062894305897363911415223547494621299436230357585053592016629873285993280380296814563231358508635710792369280646909868494930777431092945486510142336831873465711983351094392710094506470487992729667620126831629445839062415692836064987201778595969764814218385750445005893137661812201458289962826815717667356434258674077011533633189916876508177477333396084358884283395829240837324192562428478111584699759399092033854651873996262279094972653002585202507472466077771198265516641186161151494141414833255891002755472930687421876146995973150258381745421622539549268525352037549935615538901304061089348534524004541344965499632710943522801023858200813255376127577219435967776589772260614497673374352649585370932929365995285767370447195372394341946744213392826408811334075269243062226674336667319662546542303739123839859033057732642497195271362276737911449951257587800671169371322770462409728943133245948346922453034726135053999933722828793454707526548059120307435996723756700431093273556036236085108866629132924963272953385571905138566822971613425204357203762520551731329116456572237882541599168474769501081903150995499362811455211659804947604924485285364431636512980570734641902931537698529692249466068427765202336033593876390844852937478458438121227618256595785228688414495791121714273556696778939256491753118395672389745200194385839757253334534451321851688061558157429089615732134616290790604654126894444137314783586693968246673494520830895104486865414168355893773421903276143471663525753137449038592240776361703475581048079157437308869567648418522463408667697754090057393864026457047739773311708600644564531325584595773212993583637739427576484961793001514705640343665358291650314065709683798331608993456033186208617171176227609312873750995446540452342372667412766301663147908178205179420688619487787269874223337733084461249595514230031530102167950945459402376142496423079224973582828350710751128160459205618233013861313869082532694870937757152591983805113923932981113221563970882317344199051942157487588743738095893719408042457781308860558894214121013235072227338461915580478893857140101111801857626532488645847326413081681677723771889234944681688722427054505089060377048563361651077897798688827987090452401962520324507083905942843330093581254277293673846878577949711305385652822216620462709139981495290814434123335392754824911174964827121807176925150719885610783135477004128802092478324613568401937464715825738828256222038197865897073904533194991039164463847163483556344142392190044763185583398712257849699759660971924725381539080977009835280120252470234021228320076111769086708149171007279237715750898377317605269707851491863179978200346740834230840317968394000518533453081300530658216475185933003522960962089925345802978497228461022485780531027609664280038589258514543456591299851121400484890299043397881427777345093410662312414430126897314968833644620537194938683112365061927707343974980942358831299365063746357012845599819581010667719660582570671932772669368864029527306775524863943585637093708837539090664821099660430207603965362593089682706005827147046695036668795620231562511074115285000481692203790335238024487807763317607421027931573055950893585570869605862934193382730658030943685450461086075483285586408984983124424526252749364282910735468065807013591045460347216434294494740284577529380224576579996565974888298416730638412370693157747407059533347323940140852328479283226003300813605181157327409820347122203001987847685021111402444113459096047349466527993677125910398013885440555813593509766845551760247578262465952909074500121397745766602280013542249287575456992357070678013503503999822716824394513000202652930520963491617515854359787378869987509567768264325006504104298790032154951225274316161784561627568961972144341385128955113189137923421076731181157248426475253666367514027319622117619113834512479006196805989922853395313339204511215847280842875273372508535117464026805192454700009553565390678125435293622194538360652501391090393881370893018682312791253573507469676060847105432508248474549698004893687179368938354936704219591301453490080558477872468714961363345573312365464600289898259879265015249154937180778262821966570622539302178697795274669714731230072295172036232195443345723853478766788794928455542696358188675856936303292065856493093288933829690046605289419748878869905667301334161738161506233004439649976893029487942757741289152491199441963330671543562607974309751427579696152164456527649502460113465659222837013951876659621065001781767604154218917991013299038443274498453963185816999770715087437644670229129237219610898570671917136040335288396670862324867759745337096722710478838175325317733195618795420534865366983122656462076262884248520586853481654658117984734670385341880686300284463333207759539185838226345794341461281696503029406089772548192105461847160387532794783261640940593736607677040539483472270331978737577754264552639893994171440179930979554123173366450715389601399431967505775261773595634686008650595473687707058285073696755873348016988101815335621788053609215184834580990742228114638303805389234882245598529829748541028623676726886542963511809926115260856962730365325479588977971176836371375138884914303143412395892776642553557060776849511819330852738518294413978985887184243224761268145765136257749208351632727891446046606551427095221024520697795975938240675904314981531372644839780564286065620027005818489669788448680066904732627166024666286369989735462960793036532105971458172615673291770044246539597040859178888731393161546671847198997267627075979128392702214549175892998007600422341938268434513446599701719822130149751925098634596841591463216660104829826544657166278321906618072717218858317062111583781403649533241182409657995475682001019268299400699897468287958308754214502715987174877490052492020932973219250688042526592227315054470596949789819711320543949156219446530304584211411338092086979645898039887627796856383095419798261427675715777463527565770270662968109997858507224281971775436064057053076890544279187784128990147791662528716142386240280657198362702728360310493453546781077787874359218103400696406570294143552539699585038643979753538131628575239132713794303141347217611281628023624819041046931417731298005013361613867849223408068385828181977240792726942396972933672448111662560361213367754459938124562013185112649100889989020565619278806369155331766977976931932052460353347205788807867590836178664963058634048850391346919632520184862504797006442753298930929814012162535180058089407768840387067725508678039843273916261263266058139453663055791937180499706165865449386794570277461639796208830218599213614106677440301321661055977015441584531984379948188982168018103178193062780541747394310009751871045478286003932786188393284172946315602375707457578736717287924705976399922444648515242626782955110828791952049567440397829828398805639316334382749700441073423567410074971409549077474247275228394887172687276504079114455486022663087120662507075660771370588431853362405167933524685688638899899046041085279302778396740943084766056146838331261813721497097906451011137496766435396156553894677383073093324072052934264659727475439143044795608452498386145393999616853698636420610820084964444544748250163953037734953750244120260565457208274984675553012231547828757812351653408501024043252734285023852374069797806410693340578164466686992349599775877017531058221595276539750795736810819272273127561288382521915091882277947944084276675474769247843994822168775731042258915003328689963760147713789192498289894767966417504109741391641683138350834718243210667350398746362407350097004249514063452455835659303218544619470995756153449925897305208309422161722529563036650860293221950559725096845867450908108415894316398131331799470016045648722295993263084745145847938994858520916805559218125975943483714443422942490978528263068980018754681669600686921264123746249031805331132110519565445363713196589676159929358142526375589837766195732925144515495368666947879968325069321427676747596851096830414000844782721342589095215309187832364740832785489412052893773892495241349329486292776270367484562161249164925113349868368295476310042646682728048559968303926989221976452082839473462463064691166418393151761496933650042557016563059697889868254113654208717610810365008944548556135344067332406151969053200060180563093557359797774585894687574471787890380451058119644826356568367503974064966861817670693365183805091963947804920100881180083931274575615534186791611755928605239746423434922843843190167464676731250804605484462719644310285536760083814122044915950594246870938315304050778332994328482521524899489645755790924674578021330647741934135207803100431414866737220660061193905405409140616027452014657852815484119610969988676252113909153037812199340793852878121436161310433230768844627077473179166549535662133058640246764164447551399897866725437141790097997330425978515054190292483459288150770165487555689909251225952481004157606715578496438677662173819131680974010671612289143778969814176480618336604652730804906240416343259725202999796188642114335239317723145211694628088777120935725783274010670142332798991128583759588660844812275558188287645681100762719080785325071401720974222138255842394952058427248747772002128688032705377493475249150448873836228668281496209199471574485328281378639517570746490960057636611332832609547446599681108140517359342485599623601949940703020829443965656714628311926858498504807779492932307644379566364076340095685337490084166729995494270172289637466583877287516476608552169104759447798251330879211811267319648297912143675267337257184205199342535879070426927891580571059788164628311531737823847781932327862979124661274989150235854071794603953162860595194154321330331280109064455721245726809957338615904088203158850199509793662830808973511184318887611581549745905833487647290458397457505864316174061267246960884233224245139939384604489706063819195068399393544811931592989685703107058550811893017523866688008342059696213578930752462898843808216786691288136343567949428518628152264765210011663096857343989129537829698545522173248676274630425126143369802835571271449344952976304971068936046745619476770607473496109568370663368876480484429887429786960463582771136791722645549754519940257982819096017338827517343125384261564915015736098962858178160704207136665531608462831921277812794041107748598890486475202554297713367089184536070543248789855538497284800997858531899316766821625679491479419516001225271155199707954173931478148102975863222129352740031623150178677796440178064288206775369917319941848407822327923918883536871150793634940809245043912295169590352434103184675639662331864697348948528863527342715173378054591206507792547498730991150143446368223757222407614805077742636510087939842727402133492771211694847866625071918763964029285581977413200680332232003331951236390256330974173340441033781270880984992358709255054925796193157878060033867016101910974890718193676683906766827347181048601850289658010591312182432374911784942807539224447379591753217709629667952356502367108237185606580342642819748169324761083181982923827277245037972409288448387782118941094283875383038261109952730539938176458778718185315631785352093569826891244291841423908288407527821763376644681880317880394652413453106697189718251699639977803031196208050744465291356961927631215810388811083944703159130934936144495280971823350928699673755624895729372794683634957825667588562906622700123596939263588260059742017995287227300915767392957936586190956083618208919521922807215614310348344294906471582630735940833616976447227921338787745132093389018921962097815138646592843151313427972923524725724503218233280831616079018961295085090669723175134759085463387483301413484151138998720259118422639753156595805672619655989244350408984658779059605307713197946562712965194257801641970437561860295551880682402181022098376292653736603972527023423577316273950591819295594775656593933376345399549496029697297560013330466274310857756740822549305307388176394602615504632437393744305704613155751155825724300813483654597507468113067052168106840507967573795304530637847933497332049706144731699567754828930983203025481330677767044101941685518994511254375111444211572440689041321985350548419296344119924822452399035915082417127024869643099395704493893717743417919889118261905327432166471271828525873010596149580383381830782830129377729982810066731030181315502701658878522330005027754225757045091332320492514793724222685016843237204048049742487661164893828196587726732680383838279276107438359520558520028541157779444537585259355524061910601243161249132301680578920123873618137194992437826406002043161469673583879080126842747086066087689830409459140772539640670161913679567073691916636184103475945326251209500767641000883197181512411929882664160108240747681098173049398675371763950803425284024206366053638401704226749766152153955846083579958047097102403247541877758524355025371354331311329969249400156480215552668875221780479056527131716052699276204539807718723695082469373205890997665307912039203008247309716344976230218333265195343855933129183496963050849862647905419961156887879805065562100687199160415563892589721688725717236009371293252961136576001996363759362002196622374906184760242529975170073580565075408259007770275168018060217371425334446307729326954212834077399183329551611634682787880905290686355830580646749577687610880516604837537611317835629203541253762977685456407402033084693391973854077600651880030971461496204253332290331728281738337156624439382004055152906907138946934528036423312703667750795152860382231405115146512298015235401556874704633093480581001222469113248690717934404692132888955149725834994032391324397808667563077226726712886120525666876926353626248680588480270096650759462714263484053982362228280470981811483239906485874198452626222322481924336618210412566265010771807058396003972527870855024043294464648433716592403588488589316563282334308281397419918528437157125952167262226434458837128424073093161160872977855122634318315031423771024450119164030866524737266067602370216057533890957595472360771067062017325454898692625446945321283541346782813818191869373641462623362281484584135325745264573559000274177486616239773459021807693242664419968935854217728029821027991834356626306614407018038015276310716210151544058102081281208011176211135597801287069693889878023519726882071487164295917361451615118751928920977493547575769382697855784503253611980241822883750599901202597142959894726970775319955095147015072677186204562103185829914918955578331660106892767759949113858344980913002261455642027467755998722238680516006131589482594150251455930796748421827782951580279279914590241347934458582413895966197217987635183219880708938021047576656420641972791516251064216640212357766667509865435751140017076423292116714162757105384535857193754053934628188410905971381467349532469174847098710340999040073045816294623491749580913997049551621864979151597483784140159092252130687036861128975816950104042848095051594754783291083661824870929270064352241896848984010828026682061454470710614442157289142089439004692662979499277075189032514962628148494013981766375047295451710825069086608292993620919101072899001897389762960403892197070613318198754967004630907373303720643736652931575256722162982961252671044463329143027195873293451717168767214183735033682864918595837265733942426724866754145452021859217655971721435755189900401883555645571722900174974762511115971515589073946119969644612735298372913413010262762812910620043106258424264386585097015038850985477249435604713062789065356736714446954078059977081317424837238583769028928494344174391801835691724306487383667800668814096477732348646028810313872913672602260439034283444539071615737448615662019785394377599698244751746043927213150347356278649750953057251389833917559304962438139472785680332531596528485701959995843807633155142362657204358111531022312015320554506430886813615558516945230626823418910669711609680210962350111152381611234219119686323973390688912625683954490628249576435122651803435396542187397582633375010227437337476652604039267436061811668541183042926200445083626617440848240878452037001397532447566522294935417234168524215343988024421844025298602525879854123596365031272974081840422113233724554586062455047640910672111405770535699512086685643735288313427127419535952090571849872050023492491320723475187080412387099585681059972944955593219246679891566217919847481548858691409977852694211447017209925870750782548723544777708812770097725564413429768607689418702071431904491637000166274714881693266032897210651145398300119890128276296042673518004581902966753377558280203399527845727765716664951748698620401515077889994811367143138459867384171288181289203702370432510452657722917272757057775307210408346897729313751682219808449006828416484571488155887022010897192676730748857093829071794078741346048536936684638660389428393139752019825181757362852406042811584070276628543987535215570209404336914709524648358047245558680207584708802086276572411972860821164921918041905627094658867912313117282439528520554130800674197961050522328444347394591791941153261004190618964910538417163586030667578533315702065153368187626068193120042521184331655250198828259039062907796650079966705914607906275982579771522805374188528443065308620084406987491706636001476813831056577647091371059251409618077182953834123228033493071778858288277166667981921677766088266864248164628883621750699845930569731992966935107849167852276592789013119357294778161254890004386777439652049733565851717641001919350422271770271313312654269982064380191048989694445580968879445854689308466054762285253012315005800917278071016705102280661542716447718483423115074435456107482697647880331954056139851513647142455201007609492069652935569183492953214189032984305288227853611701726537304021814467269274483214657115030194477232521695611785331553074228241937930946695557341268795257979953760103864203800542139062997708814951925107804912303866148240933216525406283581243229058425925031136794573751871949672133336626984633780341983968626150489055195286223618751089078930622028197962451583334509989528498733463042319421115711056536419460519130864343226570242635221416795430639504642612802151938940078421023170357391003430260460923544965075053463492958217600913943232583045780800381097411109240403269516993613544940692552560992414416123613894405712459301454180942065774000227312109379158175056014209436296989660021108811321167913881662739806048504264462983839912556091884203559748924850891269545239983009080023113221048490452453560794271246039397164878735705025960428908862222868709117168585840288535070309041097299414218401743638495991025603571576113703941286973344554596071815515692456762941289786331099420252019057150653721761631246172899143494205156796579014086994874561604235153529226858045646389884231228593981867155824773720016312746164435146750371026207699834644017975956246559448393938055935843809328066520008683478691993834536544556497622765335027131346743272669873862713006142463877611681575676606591372729329292780670613605335908125647515957279470412055755995056284505884188833991051955028379873256070978935778743179931357325628831858820868996562333390307854591274356864370238748767145385891373887315106056295096387659808147167284258066167573171442510166595258408920266385539666861162915842592740222830562574678824422264324917775526257908079270273075289187197332659399204619900762958367059418088272928625141876162992480781330033002777804352054864360799366228139326429502466537091494361625900820406155985714992964170383741508266159257374036654117201498497585681517694874583883356063408526588640550582518736436770932401107465221455975407154439087893299209784252448707627154270715224236350945981160959943979088810889030639307069006329395750180238992191407274810823060976838560985692700415136057684323807416410502711112539481743872511421764084370713050742293489069327482729059135046760666330853229499166998622093719859677400037147374189161985762185294482539146496905121560214919197993416640668720259053983970385004136015702308791072776838917129264376953965390439404204938827163719041644174544080910987491301289321994867901263705607010139986705805977497161519901924527242020685479984976361411740012939315564496930078655777700723474254712381626165404048003701593965934580769651136139223789898821387147285073622525649112534241228977640588302433454137546316852766825931534544373281059027750509178789228912433575196335028512319101186700318261575501462565009779573359823719144967717299666227861196610704514786317015613678176880026948035090960199517545506026252953248565365031272594139885249734436824234187508612175995346697132593775878217472831672292869784191594777896332318230446020352936412058972699926527179666142313416782383847085449002854745921316833536315993920813437781891708015565861374491740307932932404866331051682604766191704408507511699367370672342599512906983727018638732255748469048965497688792819189334485765198305522466307438679224039944725920188082437364243885314184772696155022278686871277352948031069162544673926708249564649081856187333186636058297276132614252661018907856847775230897323100461876647972271666143906614903932444138357061659846244446441388068195601881837886925942768627252405521676361920482632114660261711182486952205284182992096454083644033630202982326225455753066290292604103581569315760312099919241889082133829162243447082791701736413223377286120740865656414303281464048658874352523735166401574684782501624518873599166764975548085841609184621142548435088064095370474060694458989217791656610252790525299303380408771680242497469428154798889965530140251789303319962081933355512402166551418982373027269321052789914342772054566021947782496779182041107553019308884736173031575178383728780248256084984759722632108405856833267179526525238643999150377442711394618667424885537899242058819679396983284808277322413246607211077655025318450732159894231103924551415450829366817040054024796166746309422626193584964828233813806736958443452121747798195649888530610490453975802465208631550178027368655703046475818486426908149745684943636418944182287120381581633528771821861907178314869001574502481223807651612847493349467898343705550794370138392010072561295357433099794466663043864831396652782639521499318328220067117143171698762364222513021442628186079618067681784341025087242791847753963341535464010406989633935668095706995399963401631020297287372132033838271572330179921023585484535305849807430220553907742767468275911797525281882724966433841962059172405519619086254366828656245987635822487983562840824898966387595908428377949741350552035504693370701032210119637539139601898022238275689690666401445399175765749778812008255752290665139679020162526401097674666451730271252982929246215220125978335188438751086095199656254202662408606458573971860967098411549900647549677258557189157605730463296268699743477412722824001418982525722942351288579908244402580299441125039520722222509862908004206013239714071599447184368703443523992281315477784562747388198170865421432228200486356176313394139834758062763791260594315815495594702718592129547074266071652363767318455142957294404264229701711174955101625612549195843488760469598935207930000687286608597881081629915076922743848170444118504230713042524391477095827413391738265277651504865532809944598727005646057767497748283010562814050140666866123294803253456987515149769805544045467658326530581846480876772854305464108345868151013042096615328007463943674597483555091221190025043398968906076059451481309997396524177031878007880915313889348927121885376012567392364217591878757021809854729593530312488940762262265977907300593027924768915442298293862463052648101153924078084049963129776050336028629078166322750854112894005812980629321572943687532818131872836776898665259802307455927481824157167401320496797473218333826443378730714086158100077653801693525334755174325282703496650171589704552667967810028614165020344219239356723318755412342161151206484356463159868823879524538912853129385996168017859993211217805776164753463478477972662501950787207172697319864026030467473301953300490074983153529810192072329172511121702726857788936730832590732482869713954885500711137937202285573663536183657827205570130711994500367152697932535714361893161419668249661908127246992012819234074997883038777169603082499616045815756377317588532383018716708237206768464715367720566343467122684613442103581016013109487802256126969828633084356292241263085661639704235660501907151858048946986712892174602788334951478975092317151695099006103220484219843197787859163437567593426642786590043708211632920414560678540233022683964688425758630931606989558859824177788536542664731469756178227031229170563370386056489695090239802227511727860684127366134575140466177506878529013734268208273595875523612928890512541438686433124558454731213478421157707803318260856249784152564856169503026781843523472190736037738199259030694321192136374938121033251577254419410035463731365097288514165955518081853863595536648645451571190087706069227973041942533656766964835919881534035848122730932688691769940584303843550353976089656143586144799331326274119133884430117088830291883764621923899450368547236939356034760968429788838098117127549286059764432023942163968071563912980122106057112202092423580491779438253669038582012970818847709947207015485898633625424632490595804481938898513251175414768945027138961972261281288585244935362478479639305412468159166200736207158936618027421247832437337761407003872570714702617851705417243335627703669295292355153693729253894277475899310976192487894515243248804432454449481705599425029393738377955037205742272833298864571916013214037759510363952092102183172927004752873167296247289062497530839038792709784026913852909130612197190280676609772287949257589889940360048093966255982945294848103923315463140162928709279296630782617489504767315448582684529195179476218725898687054230331110569841909715325070569815431765933172348160122022166122442231096775284048756263098395918640384037636984014407892590514273714327876387137156975633479878629066089697220267339806719143459716921161191536676682178396024454445031511296973777289485471766509183497395297832717229643010844660519015783056984459428153513664411201017020957115833904166376357915744051766980651842639003152943321265739567752280305761361261639456680430274552118089473359861418030507736519161481484635950320970503516631277052703470788546275606321711166144930045962922463084535401776972265216738595728795917225679079057730423332054524523823669797536053330424118740563412698913494929570768174147576686150601209541565736781819540734063425257610081616935719781411493282132426343145459185574758720890770963658003910361946842171143542763122508573667661412451001238499879479424140423307892164316124214293170075062831717018605434776842283139716153811703439749469655086185475974806922483851106453736616700271559865907582571050634624127774859882648861728902327850839089463659713399102895311820761429972215524467563308134374496749612481885020639079589953208296847940280784976431146321966531531817402227357167138505120208390421870421031298089025600035163676872055084013342260327610140452416753239010640294630443067465530880716385421405385390278110041598272207684819125448464179167521499702078913144324998443150949875581727388786756375059004877516126990794087235986798002766835752218580193515337365658412801612934221637140304383356327419730389398660381460243186890589278891638864214133625519275032446812651093251950733356796008804926319243948271902580649298712677279857875580613153862747994884304279569055964846165362043587320597683400391900244438717548875486743993787257325001380887953438824021950216598499639043145870568538622863012621342222603543342756552971242476763624274846273551782700696927134673095314513429765247167880837102319534635458058422483734410840355873501677237338064187389051958362680431574377289185024370126379364855867338834342080145621698000332016715332870292675566912075484691508305116949864088237627290826986928997291404503202392336234059529816113126305325243089799125613241000456855583817376343023122446484085540730974778164414803939347720210320669218570736661106741039454612443142403795527806441291201377978938651905525385415190688532677869180270033427194651170189437121354634202662633383432681200819245180691231063656963576996159860634948939699227934544260992076281143305401264448782600780210930486858810876635606284433881343958837026279262447042170722379287759056646942792084724581620616999417022285793499917058087957977317129477683657989053955408609505172962640987372290240423087555026647846300630493125137333482502092628023531584245270290598122481885504469606653250933129526949647876961007824881744137787553295118892759929643789974793206464260554341441771119029441391404598550922413578935191337991320929251505236692373311816690078200587741933195749378846601103715619626221452760626698817097078952931421241290373462733496998215996811575178000207158905081757227785319392577347050344643477823805341825245813492165273431372263255901476139233808795303682990866958580591215618439456675317438247938125432262786359299467583956745887283236832438621969143354630063195635614214927263087673074544829712170425317079008365241451433672985757036665761430944622185013912385781869627047753706391190461476645727330793839321228305339660707582923484429672222038567880013668119210673616313184379424031256725540586868107852077635723027887470811424286602057228235627824234305088320823967851928442142462583078525555306255709705913082887992893765644385095065989601265199616080145375299344461456276265055703275208459183612330346657395018990396545884389320186456353247298153036514295623028286301146716595895620958121940657406016818187642926540214703193273408586820664817821300624937929762059979285719059326624814498093440126025228213323061486614895486271073508191711662805560683992832231985941628110541541602559441320483854211426553307364718718481006181450452620264199285236935202548196788857041094071407707177678485892930430392708312560327345746840334896380804140106032746980184305396195623087440832836995916989824977790519353878415695854916533239517185002478200474718618999968024149113252349778552846066606452114548965437273564480056037743771914059995246516998640941053749824443804573906706034937985684552780368213001452500313992498717340656573445823430914576111613290751538627565545311329982737484767077235793618352270642021889832475776293925356201303103442972557246412882261024138507541996625724042150707228664918051626161195072418328632967385432000916514529957474839060705092505779063941348658695528452260554795798411861618259852107920237903541764415001361422799871095750604313037170880061222827518655660130123931455245245158954389237845316990600968924493440826922306685529506001930668098409446737136771689296216060071461873169079285141065336987987764749965755901584926089279415895662999696489583275966772338249252226475763340009724126129829643526855212500346054991881766028424979620237398170721233689183199226519045018950734899796506452111827959983609066772301196690650077897362921625489269345280070922360089874144393162357305253159526203197877608692485821106367154159822363882724707691997615273724050899342531825803584839327493525775043850325274000828456570087099796674447761748515525189755265861969244249836852174192546940030136670503083041801004462731809372155403064245987569279101927239317267533098182070237168579534882686316799755112001407153682712286780029803989848913008652926848235035728126618345714275044076956604922065223413429431133755939348805235250387903245936916473157865228622831432318022166421282756175629957696535698991422783571531132400034598125041109857339267760453356754595163261572054622106523300963799775583414748471638115808568819551940108271964946202140326775887455391383664503104869987699010420167702526580350559303823360253369252970861805957139287914800714310538511602113563515620704671723111873158466433753139144341832001939220700937847951317065913549080628568758630127249528312594588615145620240262191196469798719915116853919482142451987510495246928888310283605595992397014093408033932403877308167428563508097108822687495857194834795175122027032434064540625120899398176156654310607351546380268193450522564719828390100531221416817179959901346521172136939986831894751990953380902236377321999051794141327893374458117588094018504292751657647497308209945417843250295417589759219025493570826949427121670786405947455311929773315692712307878251604182521942697386892218842045107768979994465991155113781368729474911703639368997555161264493952492076625600703989391571695969688012194003717402484861968450985374719914885183510579791481739951084033815655032162399243126897582013748409461346543537727036741539347788893185470897664092776918656755966958330103197397554103434642040081407947739332180805263637277106975153408550221947436670888499620966818948922070679450245240662633593003964020968887444643502214793338590109355302532319318630399773935503377305168768893896794614619636508437821103814259779293963414457549629073911037822293293710561469852072182478729669285503287671607706980508313013679828855538119455342721962098615323350176362807611547181535758290739774651288734965153635172508329294441295791614154021876859922438668715311383678082228123454380247125670176085010518587960664463384547774427628430626909146711217167975199330227955222964035628021848320696666185482093933343708988970574760844152226509109365627110199395775863309541148650818954993869992810386666769140292334066991640895760765377565933161655976734750038172825929231427478995422135999127728533220313162242090099831409767967799669997166643114111859456065558877356777442388948607644414446326408301986797259606652421999481174985583299507646475047130611768611951933537657442218223282108679429258397610067462183645910860076509498112577136214011085884368591141158187560822238624929649805291922474261197451053937026338171113126415611042484043213167466338307233007779854737182139629765697711500760942831964856064004946342672551124203800678272906212975229772008750918441225964903103580803125133594325024566007709848500744320314447091702757639197337879264680633386643500880193667196267942482735863316623954509902550581911396300512161982684203672579093808314773225820853649990116590343886417651906122309465068748807206382254465690297242073998132976381460677286982496109630204015013602321716621506878944653822337541729312447503251336671735741293028441968951599825546407844113770825742447568931845877071373881896518573940126205993900386950243969734274525567321721318736871504298553492504553500370156247763843242555957015573365927096360949850894480287245766735951358273153429318098580404281195593477371188765328065187001687753123904641698512553736373163222259191980407507782590975351044608482736487939721357051745977689456583201253677765618478847704851219177062229869464595331326242404060826177051006480830572640303794766081752385114844132837465846486624963559809823574650893481383272963951830250557103490709476595652451013948531255091940099687836661295196162519912097735421683125728465916790422294546405884462713798133724547053272458858136606497526821893771597176528105601340303152831017639316283116603849281461549377970074181838766569417876057459353889334085941958726574807685613841924646850640877400093381987501908254222765303679541234087367094348308343794852474425224755384552442034356354277499797689354692529789074769855979519573821116046522193201219290824762620153267494610369663311620839330573700909764477886890826655009787258896069532979077949260778447482995307673545291279604836471488026362351734018589049299852877373397839675468780038899112060097005999823942264435382988865439823938694110766627574197965995360304721522069770994892001558000472612417647130891951964912408793277900630701757898183429255791778466194621290745115663568567563406445342457757787672181676295801471678135198727884582985416535224663406289142622018649139934986653630028155422682028477642838974534866770238408199999838626716326562255784081318506594993106265086347498399195773637650427735887328144409060914142684829360235872525775447279902868490432040037774252474322384439371047355965111915976887751097412298099499318891292176246308916783875632114084559485142251328113296388783501536342289541801968438901082099215690792063308494065637426328287215148690581816154957119931206921660921758705335834983770512511631344731803948699564761216298565787131554958923046455228192233867230135240553500777985723375644800303934692748999941744743708452299021746896306687314868202984571561132576480121366328227438279360426823971820343339604365404394839165232029093990631968552652993764429208469977171393217072393562843921482983004389656310305835102925890700142786734712207334368323905465521567213357052231223932334004277159727483296402706589542295310983338836658486883312744361415316277983881335841171860706510470725234500327647496453094803633250318783382320849620889655279358182795009140081133300139022880593494837558201591675583349384693211246618724543257325407702373814347242341041776869555663961871558487869257825545514532068588339237391978167308497998989819747355118565497239107113748152879153216558191858791911619958473222490348247799394485887121064168078220386730683656322039190618785608099233365524383907597424399509334151981662548171963248205062016851387388906728656064752737744621567568238723971996096885178654622456469239853074304669547974029650837136057236876887413952491900882996020754880374397961214505799809081834205929031148086169684287890575673275497002635827278435344870954805443098895985263685506284018102588064295771905805397276529070758733339481993750818849089331291828112687692253833900289409777369833009687092122546028058103815967479827493145697049328659911732366283827964289214366890148113001969133976384710201569576753266560336934939021088110340742737384323790383898101606556440958212685538779420685555730594215466242028172935242716360533732282039324139199816412877829473388446905791322048992434569141904676425541348880377954668059700508207517101864849177935187437056418768373815142634601071525556340469360505194534257834561424545193316744261611796078392926212696753552752043569994591194812439451462525153739704189195719542107674763937331278782778287065469557694635450806629703361807026356612647217438071715040181420307280280367827711176838736735436501218531422144683639806182365826239605587957542132497077382555312458771664479310570646860116230264457349849377580912473325435234519507890393694623572401262312844292233608260750201774042623052961942017112034765387389212601308675698125996395673809375655222391226084830817863951408691307443219858592369539767552520610765767396412307324209560642300390741491654160725666174143981939219820780398918270458041076531769691524799248362065033232098815066634318268246317379997385516103106810755958193419078324582991013142677509063493271855098692684102387705988044859282072253778484938835583513941876857549640046023993874999837551306016201163943103334235725552759100893724658865635241222428674596230288882114953617618145268838511667462190855935417469139015320830604889051039553781719336649120385062587344652988318169569026595955318279352984870498895466530539404115399777506406339568280218106049199887834961316362400006104894504969696217572103258162244822420546375707155211180057884664474072387626694557702371917788946306803078837418728817143332468451812342895721191481142094172190234051902471355268896597888723037678122185055322221347873503686794819168415523879027666625605346629029779499573361476638651678910013327662658341152931620354156612683827508116567450251547921293388266732504295245292599660389832995853352884275919554026484566934538072740355968852867200188116983973343856876713685139663237305964554949603644788279213017620364433761939508849432543145423555265191313569923931070151732141781829650433785142964966028943551749696817073148617859891771491502429596960197875084581292793639060369524510541135296455061858821896428263298813563401865252343273495709307449730736773624111243419950762500150416960688389906371609034287916317205278967746776301685402942995899285057309713806196492904056809947127119091880913310829363719677070699782882489161038471548636804328909225966954335793060189203703371545654430678837198958224762592653504359107537377182660408284116283320319421221439755726518351945916151349589116642933534564502706264311627418130493477960542319859381270348972159592973318769924871457758728674772580908515385647029632759893994484405868690229969286945972024516540017417714666166320735017159665119026164380935218587964446042854007479748109249370234077964376353374189250159196864606434983966064909918587596739044779412254804660783393959806805957275043029475455815622678372158528190347308491193185628347884242059239787972395988425111678651007852949486748038690894387925869557574534829164683613927267725670216177664839773378878480625649467737478036673691084125197074404482379223824377755897057980088332337024205036140963358391045716405487095649213150906223779755883502621193255329144691571285272290205701326413912320904150877767000508501128771472759148628237087931083304762131207102254163936948904511236299054697371579875654701020908319456658441217576534269647596699647980651266122626322773181296517304725150033214939756048467570349637086455438981839952097443844656786774911590950508978065323994912116126348320425119507340681786517758994141527264214563032993520729278262935132406857390349007166717489499374553540699830022197227173693135141020641684165657435137153843665160434407692887803568602733496393977470611173917085539069017590572762387720855883116828549803448811459514100035844221976872566558285961192653131095362146700676637283821810989098558301260491708895222869311733935256232379491430739614104208044060676564527516556835403463084285980524720000706681063519129230019423358256960587098570687910496354280914851061108310961791841149285841954355647327733736804666216042399223996101888433262374123941868353238428182802796868541600420671925081011845568637731037629452098547450901220953183953086886907802893038602668846458106101546686143746853215852747647276962773571218846739372072566130172304450810913872193018225944699878596548392171129255538548626816753637202827971317351280961769646303490700235614623616792340171662900289721829235532024013201048949397188701677080564911564958439146908824210085163497270682714318519405051157602440618021890426815002738443176254804539440225643760028491030259391870456768619276339255987048677946384023686781413729793451609373487321698984082259339446704438160268476012520239181317998903684022192532719401435719628682450583061538001052595903157345083495183092516142697037198361739661990821410518621268287285946505488111938668477186820825552389468600856241373654609661453455847344060768538699308093459940751356595045957773792424182156995744331968806611158917371821809033174307263825984219705502863461955362004824040505404510428498421910155967809417598682319632351057626965637352117958011195860892130849430409989588729533965521865200143693730817284978415398525107540455782540898942179661321199984704901550729974693005499744809071327015524262224286779769704794352217546889023432818858260658831414937725897010571106941835036084327894043947658021016727413625399721288750132959319483483811407551112453099680142567623407556496227087338382917975159303169230754596577470384539967948393346256390362012259332317224050576801043828331409387995901362045976341750506023981660889281842358847290342728783817115229186364528082036798708087271959215791070586663931065558110021391987719921753979468432869598340209886648758616261381676304669256149146865897090207913258383080702073711517200439255640839650058063026178364675934484099204740927997340185245641748848093959791291885701606757460110171807696205010156481712682999361867105362742235319375534553358832281549673359890917343256455124732159614377838210181392581067507359975492163998075095615909123687157031608380536337493085482160360553898032005478261375691588128148035463458503331866906429615775639926801737072916597725374223175443638051670283848418287021127124340218266596748853565591524710626304906600368748063425152506051667736147281619623296649694359694775107970436293267624373842188848090905760151002651924440981557529580117632608029332925622006960950444662620347860185230287856091934402888441842627311844048935466205855671037213409676985707588177378957583286986526901812508728045793273640669511998536043710148844317799989764387497412429613884375672358922261865468105980717810315074930720875478096920303468290060933900271574707370456494544780334969147665644615712989272365870450086614639659158758875816994238237267993382898994242620081573845402587207481969977880859871928060830849292376851651655923075318029218203214973420477625200790740358335726813204362005253437078115140080603408879747793181871464773118415922452235253326541129214009937065040313688563784577600775256184043096804938039075370559571767628360625309122162435667913418486952703659981720590855359467668478319788814563286920623618142786856084230151903058195626473530611071950349409685270936480241793953037040619765422233737404424707605837650479952125202012443333314353819376984821506203125769992668386916618204296479414137849058866163995201977664252132293493625401340618579571242690917224787034036244140349709624116588566618163045839099241757413294951676403045059338814190702296649650232254095206401268227612331448828376148996046607705989703837793887347613600356606751536959820253566906243149329049322944896666713113623693317733266375731430384456188193599604836952155148408113147368375874590055927041163815320994517117035504678905967341918805767435054561889731016280974033340736120862339197962070422150735068101037657323954261566289895054818652803216772658429704256719531129412841135298817366915528008722427680638345519357491874798773363052891509651589511340112891813251680421434449702109547631005992155514126029060843441572646501726288141136379157550012968072393159605364962492823170967665742350079195135647401364873457712673285283924860060104206735300632654977025277322922946227155684597184026425297256114565606450220701930075856929967355942151347794964990545521237307150806653363018178583963612179800045515092891920058076664702345415347187124898568400468413029347352978470026299557893015799935756263753079774307083884120737613015217466889027288722337509293059483918319381352639819995547113833047424002418173379949035808186621093171081007945928415674971168392236638672382413965674759656419562050251099512697670026583975479152233776168316216165483581186948740999544681274586037306419162111683735457993651975057582729522379080603236309223789645960252926548678553555877163691927186003764596547976462235113312164665235106594619051971982063945677974243647249978431869762849108092786812911489357798573339066001737333671417236377849424802166077972875399076876753717657650959074600543469774111333056924678495245944789251882160357526212085784613029825861843967163305478896283972440102606805756747747508084760023970249981450182971697212762444349064085470027370325407103425154750887322417432094110407481976324586973471511660700122412053889716694134741645077077915803392297276891272427691125960061837474870961625715557232134125258149987050205157445376067881449897546313229595962589821145937024055269875665296369499178758802597624805790789162112891429713159852259220232045504529182789715854584656620255087570044412605551171426987167782550473727976326243150818015098310827571987937676845637425284362121268224670152752591798900353552324545079219559778064993246631985174978625599652727545558535676606574328610728928070411050968962065628005628767319950175385988296387071930095535375366680167770516591831484382224414202858371648831937750263058847467105932485976548010320035303555810357277776835799951283490230576822979103423411157132136122768145648482516399121319992203094553130558376970013307529109192233783459755772155546456519469667379239106666665734777637928912508257764102423542813678311290372548358484581256089835946708558256306369796304712264114910735813414906214465897157638211799994386902019981840857924151187114053281714362289304413500742086530844419349298260213202680248735918259851580097858435243338890189099846752420356633034395164201304048891017406608432636022296656123892434632305493110779152699114754958362077065934278901832626467182087712812697495974321029636600747606814578768901072253627582489358279575314098534227596142560008764176296393592161050676689660548688485301484168187350635373759044356176771093494715747541520039665597871297045082730983385088395898892077805907938955526022151320078954767131023752291957705556421714548636599750921453190037266229983163418957783344501729942573445546717167111586216607408063597075001796700686247320360936691442324350292057532078931256177385334871922694070114398444754579511871758579564600262130154251130114412792164278669875749754435749426544689302660154551151998259976564527260061314545168532144550925880375704337667024191146606751935266732760441259897443832067901428730371626331171863346019593203934986658891052905438806188340679260106089164989417418175836739455928946585350435917342634960587820258584206318292832927018810665668055055115846194814510867561583365302726393439526881477117372320455224192900175143174519439823000304567544236428436302867040834385662062049717949293621112011502983943595038959908206146472585281173331084874908204897798279030490973809502375286444691262905461895160018639026738120800451768166043261502815683028959054671433229137953422480062271655202189528666686902788143104166945752498433093510535513541460021639441700868600130594150539357331433389560400093115895781787901040793228893181254990157385372964858021832153138725507530218930150369825750247847337131655977202584737779708432906721908103701342829527741702088789550857530867512150464316209876362892137520054194270171847103995986979783600441622620708950090086394894281929645887606672882309211410167055068466032053425937552938610197856428183433283279160663335707527201499313492381451429674219705553129265879606249977646033990947938600699141666307688680864570577801336191972477369653782134603691891173575292152449489201248693122054316129201286166235895742125246197211621414409397073540591028606759710872281250803831213067909283452876057014849103179885961222004758732917942451620235127867542719845706092334981445644494939470890240479114683728758753701133480129413503233531476812660199605917824390893855415413186832814407524863074687186603774094022836501390407122133705286105480229983844785754879629378886445405220175031403748593722783542641032090349538911541110735546075784848399078185641481600098395112307642947473534862157449808132144401032761714769254748912658723574340752058843419569784965118500384930454460306334011268996223280619730280239000707681952615338190489645135545056593908517960805646313775677313224691025100253628652989839313464327362814600877727378316839773366585117893533361707216397537904750723991238893539693692587776399148187969315426670496201360853101093867170635521494877738961533698367991808047318054146661377780157434343009022187106709308839177498282600610482555140396509021922304014244854780976370511525187533942272958787061225069609890524229568017740124548744073584864368854209892000073095477732991769450757038014582684568584858171124436294584045219353086703132014329984152012461502374479033360143310239749894434205559835916735171426167090833124093393816209726451663544784497799894948947146564610458564863349968039276169689302316438439679369934724400281177448634211959704084432816490731654672552835173412573176640307228369712632277764674957827727741510714502849069128871535886718377958537902665309424366863414977511057740900869435307241857375551362931929196934109736152492092976172972557606179869599779628046001919954268365764653090523918344451383897061479614291325184827359541875744519631595052591096993532988968206864383700905130442466660903274605857174463485880319671917156151393048210672086710885326964183961773268992980725076243638632368979421095762209271625416392057787146227842607591678665333232577590463979230674162805980388309733208624952380445309730800069475713734717183080276090595103568928494054087849134723834010451338321160173436328713916750299758476989776590945697520053920340539045948551600409194093585651716221115800689489476117850728986387738377250107998773873802985055537063095176779823167824721790775623594345949578111783347734015424722791857885260493394824636216122331203384273778446690853962983492040399080565221434640614320892677675950802630329033720299952007411933165631839475133105819414023536595675913871519638133539260613078144162629998991062450482267282885507666411869410226041418634174394765238163270786961810815592088040337347225285019686854300479330150345132473986403806262989478175322416579674916965411989365587027807998298918519019122990597023605144756500686520139623393083842825560549535434519014280523649072092416562832018042072288271033350346145739676639565207495554043592280172135713689949059970736998931113280265400503118161334014508933073490887986839172560282843121341666513424999992121155662693731324647214394814481422619977263568432733332366873930983746734296951917197269081556092404045534624840932313611107503547098471846211376781953290052677254789328679737567125013075003812619366079149828497322314929815249213430524940585349814225302119463908184818385160172446370499878442397660369331550572930950027292601652127565835781820403589442394186122276005174962806867690814067304805494244853213125434359933819311087384415785150922635650084527296017204787011362847744791784058676164506984100190573295919662342858395065619407025549467434071180274175318511786219044625868115609050438174581517068214263720484879488672719363430634120418329174578629470719103736666629147873349535895260917989836413949582589356679643278679173147288837276239104907071667483864950117664790129105695765046015781475293495186770449324143655232823697076546698717648794878373592180125511697747093989464797732530125466366748739746029386411586084823359484265424470321793917652401781709257439356305248325192215207388560538234476064190844944268020320039011223917769850079339640445295616268037718396472366674004474515847616790161566718278113143443605734637649507153849259421330190104737247856118694170911341616241197832127719505701283576374031517899662874097770033973523924115698863213102498595823363146509022256307275096646805862009774511856827958520044853610183620175171149497970425864264882044221631503777458510055944786928429153745881061537805371702913186277576640308450038801879918028249522462100700261442184760561459960231986272548945208322694632749906719552061917709836465947769528872766779482615891953589130005305168885177059241621687315305425095641274275433594502374544968917161489440564692324062555435955740952475406384164379546490559254581789509466657582682768986517742258787388433759058928267279606744945178843778363066991629999057205735788801598936075729272526119372265609714869145736012682694458452077393675094829751131054600985335274831742250043846517173861753330476618813816952991151311816058131934755531474590798287450891417722582884270129293441044743474449092452326627296559229616314759349797804393844093497942653006201706461567421342720580710875027740484030896467844340302356772198673312642141443923521996786759398888653251050537936381170180879723951401202253098701985052828811102521572769285475000052543989445804857222117630594336251802655531256658097626769145748530445025069561116957395685410453540268436893381909701683868898294011421340244495764103972227181180747639763005294973624458947189458970555027941296664624614947855431748070740852770069737165737526030032107372627598789361372991923773025234885577396857406295895683561755640574013817386824724336482565723842080281640030768662839000419694979627053942441558202730607285788080101314773528045017645513290500476076529807183492057389991158760757427039769798731064370913874971013249574186979391316798182758663244514219169583641223452730467395716475137154317400481050564608772322112445226502021615104598834070245362509537622437127721273942329424368540352990608706558753166091061917401442440835776303981598373647401652240083489809097013421994705707777480458383233584089207627927080372007030039354460783068193599189227919818093534059662947540418197987978962581213890719540720363773298511017828067349097258963064575992994501556773897517556421642027144069511866885434973504099264543891011110596237340283619731066090523144281024996332903244017427457371449837659502652250526262209578547256923263650222478101201204368506624345296804336635905816432620664627042375421048610871487579352526721537894170626408685273731643777375706611077443333315548507837735177829042321719542535870617906621957069784700213985303427838444851736418896842250512549596722792315804868198755102676423716195369985762021009969959693274168732724915811528240837339512644944353413156835451636480125323539513587474496265887930006554204468194473357529162169835286160525444349480583157975504983188670025753300798064498860438867430832897595069261598318397258088151578299940680261998767501795054571894540066735210002317178410205885256530779970800991373886295593355035128339819640041700498187966805871181302994789735406315622841317392445413127520065946464683900685429461835531546633487152269781952919489613270799223753695083244287940393110292905637501371843180005672867578760372087135954598479084033604076299466352997965180632197077077785120084087074196539262210519043753377528682450271377982008415741167429988890052959527555653638280062254936074109741916267002715677708601647527593496013878313470112279977995545260140335248842348994835465584379988553469898916608175239624389837004369545817032704206205026476021008266228631844786196825638867530085483320614867131011951475054519867277193070088070871184832477977373293553233276337886814192450407362411118014235046595900369356086305084346198178122248077580991152824164155118902185456793132577181711304968679284482303404110579126461942235591398520501920353020271700454450276810094687338603263554524306451724121624967585557249886583232359613432011766212794068982062098715441720492114764056212251069887096716017352476219062615399640075007325276215812568405956656156899507055464044132757629122484808381692220846963778254316176704076341956772596063281018447572167612762198796602155434784972937162257733985746947883362497643152542558245402533769785570687773428769281763965890836358176851856156478273017732887032001972516100095452449887470842604570146936266012807918261128892024618844784495677217330671153072646215039871680510197693087218742575224693601929671584444826253805941530255318879028015639140435058986918164532333931241262807439518944859716163435760784118500565692682733714886230488119221259832551318031002710579388176428806035783281594941034265112687016975247734024865238702783611256564055421966552190694379571686440682911209746198183918669989869381872207123660135378960321534221368059882861258479593076430984758956311482003237206320674730537881943739808260801998192210794038161786420043827752647592845588810630557703976955417044795573982076679407405308276761156233828086017425704414361920974573439397689211056570684561201141833554374273106446271593943412786700558731710914369634865964317772140519062970124548545112267497924805923112053948761179377917062479753080466980470873731241850929137398755257312926268978276209607135092572889148434276621202848796287167057261713966874492840609817314687896749597165099347758334192128409545083058389767516560675761321939192445818505597366866447159088176051933677756410513266920316271984888168072783114314872822630470122727626291591320407102287158170593713495156715965816047434864842174026242846809182918075015063842813783783964731598672488712946320650789568162051253427234635890409807052976490023549855156106397071691072471846510456067257168599627465385459369010656192634792533620893616305747211466785027506430991195470774678371628778193963532885321065841518004861665025318510620004503488820751737086228739473768443971924313063264047083276425988360011667974679263440806140813348791818563842644696823528658169740262518618993398697443937530370141818524553110636216850918738230231655564757314775796092740473298225502529644626678279768255827511450542623700188587326661873207717347899414652441325419488322170481260100123816376640806913160722754114974974672456486621840474789213542416185127762934106299366221212520370894636244032116862315368290661349678642605843095735271167260974649525992133919229637519909198506040268558617078356316851589730277070770428442449624162877641333820303119573435373981715919712854833526917933111033511984369736176067239217041145855198052547747077639843571737486356474010070447434526332211888623523486657112936419162191097605030035960418070112857922629088074005261501622881425491800940222656375270838241950362860282733479383188284803331554524592098406807016731389824193122678150401088575808595349202248879126437784022535439675445653363743330530730232371392190774433031334280848389128805115147877713015943289852398283311071682325402307779315267861350092969754203626472529565758368832013887717737374290715461189078744888216335318961556174189213488156175474207231177673415650009472335521896571283441350383287584710185718185556658496320762596110152494783152614046823910304546572427858489076228572796126408346692360454695704667697520775734006153521507775926134599509858111837967469905076803804878218699108975603973349055258874500887725944942069560727267843741147984551608518441653352027591843969900937346194058066873828910087783716527438702147284056978357063054278881037159894852709921123720027459087798645532493765487057929774088311385621838552279694121997329257802679815560130149003910447921360051082813416562938848649104177546481518785147727186587659281227226385870375181249700478838992685010511659106607135759853994329603755410948180016309627666330654402919181527621049682751286644488024711112068808449016880663388746854975914425418546435102022802350644533436949685732975328057893019786697875021758644783247358271892590208161754778641776644776195118449385181254286768397805877968853748960823802173456995705187863165023258478904983466817094315651838653284720994455057429065412825531178720068254056455136569727188234166226203177135339305211180804456345466201805984695753606903489122023813004469266243106772666055843878003638358772780636861599179145336030711187041168963013427482434871786007113346767593155212844560465229691023451718027948091781265590704279062032194696839075235704245085836376111796033103226928579885202433958588700779861537129113365515569240335055130559675831213099683459741001709849937145711444472574906703105431187252564287666041734549107770895941671633383486238368039844521972385997459406160830584379990511849092389401042343716752310023844203231521790817695532190686620211723311699240604302493856392225834177937757569972446785040477616514668690049796046223897491416158528054801529636543121458472113277918076474073013724487663082781368657883050602193915357972042410175112558080642729528914052861105051833242099060424767966960860360739684864536085927228900971763342834855056682791475110342567204043137417819422990773520330659825066688057635403793464471472768880920742321837759765648960952805484997558076180010016752774691662143216603561991191830020720302295350032032332467021537523431570717110427102140292581770013829219186500714605293210758296001605472288085924975376730454196077733393803620195683984561919166438003640127055854033418116730434983340197661077204879443834904240547133125648754130282184716014280631068710596366774877175229308124626750928376203462772339673039557592251673159205404841461677794195918045879308470173383034996067699405172718812555073960660460767076068386853180598561289022069525569363485349137925280348779987893569910365941783935406221736981809169099520900646018234464076497796559460321997943109526735729211738766905392716934262929019106335130674843447876982640435614879531789185617120425332928066872359935400933370725068805571016168252008177349550785445461256890060767172046925789209756824474404186623023559309627999493238033564316451436528564059024097582214193790138813787453999558958688503876579927590493747513443819340065196297565839885885400796388324725337253518567537546521840952383808185055845856945197059686077108572415920077604630378404910112833066764151413644212769743395139946835996495650648755577742309460056587748341690138953618288432432277998500803131698130334263837004969344820121846773019813622275308272465708664093033015274752307881625932773107177428330720065413807176354929094058138616150880654893441736602888907237602842257733423210077179902770373196608835066102185557781084999696018442653067363839677034985359312037764030289545843204380640977065816350153384631269963669120444808332214804069569928118746803654249434681131951354635994899269254426987025531462404176309121044501053315452009754373716807644086361756786039939531157745904711608536574067084408049510708253051998964263159130728557907987084695368179551228055971696106088688721528136818803323733803275124822129115503999009480896248670275712174271311789262008582890520128415135468170204076697217166538251381849881405431948665762588063154364885136800551588475663602455010022178411155442252494052961669205137885753712198171957695871114506706880111750482235224336533657341740702784152481928368503207931019627517366236913774351639817937932386420517741115972125297645119573956015488940240875623467766088051639105678556918870616429159389096296624511970648680470344093622610657687295521604520483158118003237972831050965679336829033395078090860061087622596801920087927598138727220857567433356428449069670350158816150126018090038120273384711106434658664051426201930395263766669299783404976842104407683032746586230259278303453653370124683444493827058320590319627306495391261358454622986288631647270944095797859121378535836448039818123902124915089399931650954140293844755632234400531149604223490496971935308800050987660470200169862646470908141531678538661233602383771807101172562698145110831151877962754459878238022144356808743345132066420792048411000827828572916462653534059365175920807576063341922846067205539308553257581729031670786630394653188959362372013579830454055998992452161040227757311141513131069271651057971639871641842367769541220597360623015291714425221168970950241129527270462566790417398427276474320761333486989101518878947231354924999811447950120562427687090901157044181987577491901423427085231392591968336162097579890216336408777298526884200197390995602503943982188091068602188394362903634677819197925972180057959929841506562501881627895503160654554558062170687311892344570624947493086393011594107736867390639758020417674949150128501588209374825094515896320722991494547261841127936772772768871959865773250735103006830413356429053834794908527058764255106687056807509981607612359724664246516206143867524595173315513532860681992218231088983598739511973158654218840632080223552946384643041637714099052676138610697496858884716799746554433205173633348534207876761597306112399263763910684333089738727928582278129270201953933617474140094494264834582887632362327974808356086813778340816018429582371381079051381537686552601197128588573867741266283456021683321435635363553230114230622881995356327557269450850577948913552729156131020403215392075529703070030926499554463122657880486324479636633882753817231347487942003444745166570688838151709516993482706070461317784129369683325541799970866106356509708618357968137198189000110990030204176958301427282730955755020169886164910716056067082894012112071012693993349520903750911587008404271960114049116188280311107501457633906613074085781416131107787124838933379046385764993013901821646789292700131678004843836576878179294602177177706658869037432699590752448207512938291557960538924655972657797615602928932100000360056592726457497526318619592021368982441882276692639610349339527027948164943121978720793089193833900826135592138971403831423925345380148541255391577597801856418412740737019090205123044288277627498484654545640571389978069396424918206350618220254092353582768667057101219233780677115639657252991800743440878100395601335302823206328923211786744049153169273529963654566001501813687653231259312602826868610814479185726063505824427004536158846021909741038030329101371752187433765121659203144157000767578078183731737735271834856520230110829630020027268250168193821334370276882388580205589529794978075521555164927077673795415003408699477222536501638288370159973080858578845704967886808707155831713213975314588846306625135812401069887562776006084682429645447047994744596657688592560558787150327770242457488583302019659816853104878116693241158908588734628627266810663831948489862998933571031046859585576522304660477840029244914287428284372529583980620963801067205000794196080301869742058830385211003341981133085939344980612781332831948485455510078234913114526809997916480783953068377260281139470908175877898373590958732692311466414994803820237025376785379057162985575735591424790640039600678810884102197295950957025647859083758910612780679102087280814084841572163612152228889124364159543407531603336015493268438298327029071936081134565197726058274055909781333882719289031894766212300310223978120953155111446253369853573745066980041531002644633569718876828501253795658633079805612986671671930746339857777443399049640843913737538525210701400689270372526988778195235648789720548268249155870517636658266976216677678319783170496660302097615713900286256187169416092520547162924545666264055595387152148925683766847409839725467396902950690788896960973008923180529308936371742735403181666777403449194317535814783739660665239939875876279888620337884791273954334542569657471957734281602025224586784579425577696735350034611490017517534897008773123132006995314551356189187236924444607314189581398317127138675669406373426885589832032597206227801973459072903641643822257003540559189806868560501838133277366122476728097161829908779837895653109474256174870477111980586808401203426724777698593873732765748424641026513380252103712087450325721163180736280040357478503752700949623169962233595489080010754274015042394266297673772797820687284549235369639927170973795943376244120877030652468428923921238754878249449513888065668449736066802389923042751257994083949412848188859979287634252368998597920316014496997544104182788567809869287912503817192569409703111779800462765772272851396588554231766346436271222270615994963281799805483622149998893578246465817508144766614773930315071991123644076560276925716380982924001037990822462852085534967329593414662141995269912114982704656372262288894147558197372054662076215508109544552941163031307356331260304019444171572168644445755652821387423496630354663914357244334896357412636768105310774838095839274601555931176378116363613083935787726042862546989694015471512343440285124931712320760651372291272100525686989889927258258378059388327597826509443755532818289694294665417149626915940548045245759362716411824206717526801360471964365030004464696659670240248171725406575556763991826309686002835336580513159716783792780747197535031982622108414259842628613599329830145190547087974774065085136326551690609137177690750911805291420830420941657149914715255309998049608658256673352295539054290797050517366314945545012343662506895736199091507721915301022347629406534154716442150726536750251274235156190427466568223035197822153896045125860242405969640772193454904339974157430392707095448875679860465578306249158262821309538934968980068973532941403927415515875033911296706263449248298277397284577011853055550961521403930066863792338957738767003263471684064198948215421239290611628688930275599610816067568085261760351108617003776320160192338445850248984990324813627621551619955619031886272250002125620834971312292900416958418362775721747255689434957339827911273332175195241025803838962199310968239258240164597144902578283588039212488155217324767409873629814017763983734512286599807124825816717676640309817955102157553790420748991995627366247167335543454909448898408513489391132255944056183238484237260457182126978240850405812964342480522880760903111837476115783120941104995982577851303154208835438192986419353134054818427561545439565369675050026321252833999553260290103423570863858982053250096433460720124410917373764789852903940576187849401711537262766202839265575009470612235328447108248092417802956716172188878508268931409794003778037711357829733843140649662720688708047044201819948120934352271464689906777058090958672597051908341760162385776002429293368763022661875789449219832710176453356292754515536275163017845743464252462047763050461109134214454695044209916908270519619649357152766948892890919264919235118927669361308322670681388785898450517839582921897637746977601971086553660148381541316271046844473734518073374585841059854159314537603612439284068910187074138808858017782710816285975738870738710571583121578594316587606812773084397162073451738285788000784229437028422367248761028197827637739067791988575401812622768430318652641316489809145769311221182763496536389329352945050341721862580965446884450928392734563353828727379689753090545170780168780304332389411930557520612992567903070845213816235825103335251673786794394323053075708902548416255787634437980652034061213923070784093249386115539060407482198477324661013986132657638242525984141982652857566334624303227432512536057320477160392760276731891740728285981463877849202747604473275870251809134539285021232099643285489725045135365934232386097201457720203225064023368977639299383585612866157443870153224179852725423310683518692005735063998076020028448592603571889483213081509398155581458918818938788887980149668981788399938470327911869550067780954000484099658828530947650110178455158139233429212672891284553323007032782352174811816436058177537231591128007419653268541929282698039009152824699111901103594745943038121643101264807491242478764142066812417711051262191487053447873663985950093510135122640524299504506231321185241451592485044268391596676855100598623583877129624626593785914622315070852836823585409131637108460010219533554179673062288290402390612521723569340642585680249478027877691411157473875973549801192306832821154859583675249442022436428032110017044743945093418564337345504739697912970505884933963650417555138038574852434873092763439807518821504828051219211879158956740022357800804357391047392242314963563201505300097347747170192878580969325007056191276675234679166581917478229940678203211024376086607578312675374124994140477007177425560957446672944256687803439325043509582389076986131521682567714256394231584133261167174219984442217626728590820292493911721140910677175309835095862762906477278556515490790119726036137539273164882909072849804717657142802709629323246191087343573244899234607285031418591473265664096624627798627677091720339294390973246869371813780123259602154899833853885883606229609715938494367458696219568141371766556519010663580194816432504137715866643303561415721217401167595892213563547182089092661958126327482556429198066695623555500559194155805601234673473642166119796577988403774825500816984331183176034855884027429495640664711158526817011814341391899896384930009766686782928900843263105133098014325471079052467565847231334188431128886591655000364405882262541956978637835067665276120027066037772438723223576389631051327819357848672133468157491969155684155989712521011198505533738617775525739668068472860206558928477665925466414376818245396361499757016438680554475314801493580381451336068002023115301807139945694198184435230595595809993504116712501032592229761712206556665769350487137605881879184454564079638510810535322174156864258153150048652562856309929267465895585898390895747165677281984440642688994423689095986602437076823663830554214292538888521075354127404444625600551323647275605565141447554803142828004704385728611292149549783428693517882816605797736412788055599709877522097407665442376976850147650137399858635956025906589609211219650909145499590333129442584231287194516604743646409136938593812966755840908889723369681712247042271591259069564304362674364906567959026087119293261470367834377703433561949218949588848891214694612158157583395179081279142346796358734606089028606422967246619399378792316753246099434879998368024043184466549888073544174942046381332505226391857618990111897763353832166084388018518066239920884201064656772671374952992029377379216355132671389802801901092865688072783936006539512401343806349282709359658936129590587135018537326143559754893239616108662728829249793005328765635007052900375575613260293517517707552319618529422226274196565398427670475038088018491741124074330022915405466592278581519558199651700478387525562826261306397996356999854445370260113992541919967718749448860848943614874879591524563536968700860374781467261462855569735395301043174012913580324053479822237718119031300512618200768087337309447331714588418262179308265687266458100345333770756259294702704277506226878666834579069779134327496162249086867560805667840766097930033579401408676589550614018088716673427560681721586375347000830935546866385922937903604878424141319037610801119504872036141563551144471447532365395314278207186631071987191502819020935867085095166027957864261258409749436142302744480817866246350626779084883566837249144305434859779347357578521789003781432748800240672852592653079398470557474315645058645911255043869127427785524003445166365564457982980285471676854648953015022901875940286490790879720167238656402639504373258638363977231317624268355408581905846210218703382444392514450751701097507062927382912874908711579543512232414960058076500856456770813695926146035491979099332102662331065228128660947778966527817404903932019067474345154189556118533436719749874758233610717051694038317129008298673850107828930154437021368769090664933192600439204841835078535995975384485391220151945946898969161806198155553744256783977945399960263219942585445241020742718309092404013164278364365260518520222326514860463266578549406940057366386277966178499284028115230642593472410075110541769946574400696295176400880424389466518900063238404995166956609049081567333784950820760781647577040263799255755561816865295534668843698362942897152177242931195007830508588068992164970496717517994810251496726048470287198916654886189611866771304789352320971844431288999888608250738076251051745702764958423393276500933217888706756941049807609758875019161597828740930282183006189801291579681833962038789547714819729220317261194313273452618115336668873534481619015250158966305705826458779555016114228894036449612105858336922429922400053894717559594386813881952789744046128280590886356824343689919238529327487772430466029195890219192776658899845726087587798127600680947467300286151868584197448721259894120025404228626758373924686911922151947020869881206071358487552053400249698622670242809184509687346050998692600336013575476301903569187761147965645130626213123325612025403683458551841082767095536894834940270145740214969248527374363783377776263374292622155650370304353820884610083436927578460169880624552379307472095449653104101286183622622122830406343909061743256151159770807875479830274272905828769995315396380183668921111657933926952999380768631248676741815567458139189102567091616887612733540410122158209343254271395079496632520160183639980302552163932156198452594897363795753690628419886646279544858450627011089516363587541682180534171976967463799651298999566152254798738029494387874661119414772466206958770457347461519210690419781067603089620654015395886368972723353768744200888195463676609784555683925076410984025337715493027193443297173306548820531400993514001402780168322118107404054218442020486784282874938932710716988834598813920349448516869315968394371917334147048569861780315030423111080282049278382785862020723399116572718317506669580849091064344652251045809498276504263005053614807043011020498797404642360664870938978609013466676382119353115803256754663068566390944322195065287715065069593342502967985089751450351890680790048002381145474540768532149580668446451956908563606856602304788952442712949327798566283888263811081403860230433013926012813953894749793327362863690605438303647939622081415918704001921073426844130291735243567275697539703770569366992314494052585779791471086298505111733045167077856676538504181761396275290087389382538547924851319096077189130077767389267680601936729098069989015364534188034404205309752880857102384831573802021715042436965810528076812618641256814168718416587978720754391768558071218183621325999514287109088231212432137435377979018613756071799569382125260636776065590782310957874334613196452408506190996819290315293047725087856194700291482428454338451726508515097014725994065379355970979923700564115756655478782785926866503066457131527588913670359638284970929842529535542469378762483055469193228473057801947213193005385324984823202987959869987587970642595327934859049049428559508656855899354963995198782276421346109533049416324252385849996552661982714192138147169095652416600219683871568107825920678393471892943786006830849677256105366923905125350440930751398470492919790085919692447248969894928218563998231357235185912601482878228680895702510667851102272103560675432889423362640208237433873070766819359376871729471514216393220333072586681179148173464511118559282658415524647427224571134187110584444026971157018379553416159171708735723876549734885734818669271447555886266694561510864876955321088605543130791226270121590315725573997509600390695057767603351115245648148426926900722929210701779083515002086063655873799584345364586269213352408866218047622606535341079291375573686984705442334586374905566160132086254202165170897276489371341965690193869719726180937010995757443786084978642119928810184144467258472569463222571389866296351753846835647145859949908895762524255399668962336939438832009500474367863301453123667852190495740044056252892934740265103951731487582692618280952774591240712180981452863126960761399605089818124740743371350191102180108319768093464576408571426504589920228312016817270059200012940610335361153154207785029936550584749609791481706639067064035746368583831690313666071922939892808474658255774394539397305830216698832846297867181988269992878278589659736173167013158191245213976431639531787515274679542628103819621809172915514748433050763482316705368045686150522110762889064263525467685746137257099201954147532062057108301929374136169397246406412056151704442039601811594916305566590687531221849406868846486474599792823685165499728831622359908541929710312059683002936381279529544578826227620636329463021427009731946293026096189865414824037436914943230565132905398102361364078458563578049520271232529561793890161057661399689159793555554506117954177709688866276478495981392694044101393650366965000644524399013907386321892631284974145509766347564261132886143151375260503999941714535838234043210345345733679258634741418277046223238752017370367251459307504926198644155776632986393444080862761499639431932285829062845239895618691665185274900662009182220169411870276953013728741766233844596177694383135212276373552798004044965950378195556319162437244679469825795289237471323286297619245033106826492668093089108215684443867161528332879464462169359017437239247165684310231671625455554670434499797881860904220941438082787641987443164008055133728165571518364823655090757968457707498749277675627699559773033372952739028804497413861357466432160881989113075274448869067701821642939982387022997787354228836331221141759401913823576547397018087712867983494859044758818418405402705323499619184772293685012481894187951174772064845544716402280497646256115941282179925577269347049688742045086142830772439795255905003250981406091872333762498797325691563371834221866524421824538754094737884721631132113925856389142021769096053033460637478122223816475312068637548960664136084196655059994640762857462272535311937693180599514636706213596833835993075730666993799906943549278068481132443039607145298462765591326686634698972521982374379930434387862135367830220242078700127768227119148804264247852166817723735833975504914738867188475964162063390793390150723434160572335374371592532471704214453229778825161973614222484833313318037548672553837561271821091033835945696493967124776968817802843638012882390943365892263680918690469185330648032538737622652981088948558173231480609311513425367853671009881413530275611079316365032369865300927027139376187057707906733660448207545008666000075161215371895174545607638065361618048253300713970495017576128867322410824487168938815489286627839383860127267043721344968977142261348891679088409685362410465936400776905690591600232909937825351361488534551601910823928935728210426386880919326143241486748878548449214566997111286558496884885382654655828497993836210349264356574781951026978945411210386614838035424671722171074090086808096846733347329473847984532696538571371293086646302118743382960618344362696489343058550724975856406147836152132088076656700107584062583829034742741298923279425985985606150630537398654279255370885347235389100016012680001770121758179947170928790626299444460234167489594464893502206949083424423884593686438537839579936109278316906356402485136429002003858707701883804180484643601616486165825719373730441266520863901976743574921481120946414690091414111568694784838246530591898687091183988243921386899351561710094161176329662978659645890583204237254562379595113720982290477559497397620624322331820490183514435412362625977294483484464091041560600757443787605394234325445693691225100542104211899221113412001815886698377616262012829837768145704042382691756461020122308080683243360011024453869849516495955747820856655061729252424901160156561026919260289832275042765654999322511620549277089273164496544160111255361000973796566850414122443270937465158020666781505898863238415047728849371236646710789546095547144158147044637705932162003864838952669368386145119959692014773521641960270617939350421210183943379414384513279065916298740875941398803304286556629913178883579874212039198028939165305549993646606152522022040451526599089221283087037446234144086026386492605895033778394773518598931438078587465515432891969000045584390877644576475836135338329668438358511429084582376018958577449601184404893796982169667829948960380894515948388640035110653987666164465576563388349390442383759503019376044297732238020126696370294399335949559129011831868892679059558808179443794686956716971185472860517610086234601056215969798483726610483460236361797200316106123193094459392648917955674388053240907777626225602567228791008697723141120510390476617641885112359831081143644971808166711182532527160013843269432931732176530876853855867701086597420203030755218242354875371057882524721254012665660520732364822427874414999063013153422016609286410984390942307987753430949016065160456652428247008705042889448391259681508429356793681792828450798828011533431180533154112765553286601588257268166706646758246330043453014029264227322346947820410159774093505038784303754004886501045950199694567013488825606875093033158843951819650398217426993759434799230391789346112671891146780304972697468195256119045640179901920746099727411382831935693567894603760970096087823151564351844903365436991944760878316134208892031679849865544332991095234219054086034831247883100752662094254795961461515768386290062726090304413494059297784502445372103698120332731764334870933270303658627452846625360060622273423506090936159753729634121157315948308683925172194044187358155888795550745212573701123097056742055370534313663114075075637840282060928229421588080451595009192675931938563182565878585856773020223762946236451651503771223112929728678921832604709436168901744089163814749690723949406794489771669067262252394009128182777927915557702933074068668582118133572004809527938439542895702008102731273048047290852345616580406640424098076718416915773962067071977568678732784413237295912671539275304905594241244674309666820816477945950187631135618385813405628948213376090232145427058382307015641460020818136453960582703847630732698022097358772557727228532545478762773672004943403988622208624586148692803177804887675092138022428558040052008042307329156366874836109121998519097634604422355955822849777746290769722064994436778859789373912971820484091648440047130472481563608433069797440411840118783200197569555312070437602474471940101643856487981231448696989255586123562028334399598796159007574615317747346788677024519051768163467429657213109769602238624708433485417942167635809946892116162817847729334967997290531390564694836665124595954392741426156119187052377432591855833475947562609209902468613327251618388098871883326328319000695422650790763483478906155672910883600026775213601022580513637570352525087067721129655541117685077693401128472452211277896700879751737951005138595070590530225399089530578629261063969812398989881359606142278618839911592486263935594659751809500162289905902534653330509464156565116700294443537893634971542106971498301704654089849963771760328852577534315127747000035716250835176142676722525528207742321848879465248099488598461512438211170691813392569966591130145745816622818492076127299184268662199599670905950260852466276557500424424695579036963165295563662865127708954993840735297684785642845673550598311996553479094465061758810850892872505610028157502503915263392486941377430787096042146100951263905629104023054960451997193686462651646514761428499130263925786263936851568548962906007912332665133858436145982507370188087265184179106842536375849168600189632165207650364258614012164076989925103096387339635768250892922449264415660445434476600534729525111245026955900623651801442408721483602007131877089106912788352270435514883720495261896872677990893437624145771260019378143779767303873833181248376276268625723412176935902669957305664884902457492438218951838288152179138987355005554881478179616818145595602899445505370580918531033381226019979084991648586089596989285102225554947175164221992435604998112437667939533051581206888866049730182388328063255427133345736402370873185542367667146225155544725042154346891860651954107556352724643281528833974351257090174686469648807360833824027404204388212665735868466606885053822296690149184547246555367922854462527431857180330389089855683101953963196541603296940232399411722411890604356011059676086392474334036975118453915931399557903856422945925887168911404263661014100036350380168244193183040363500030944182774001336345364099334654141131433930803362864726398410140645490637571992965583084110199870121359692774182251971444565336186190577697566736087612993153891991577889456855904374842102004972969280973868375198530440971346173712914827140238550921914017646828504041970424939726548628437874015580913416337822310325669812108692082219396623092902905245802782092578665505599574893652464270936119405639074613300569530424213238885544821332927855790029571486510469448602620522694294489022839255662900007840595044760998815557313328059473753850332953452676113365313203100824488467184148593990275630801270414032160379265969040750806529898429395040873670055788987454377626485604728192257835776882010769874153420652503118595279897691966139198864681871865907553488685316257799969956938954160490614562020852871854356980861133184576039990273514411137570565986518727318174276997559477459219334154688857642877526747710680563508603110654020988433145247936678044543964841889008690848881160763938009575394542646683719427774902892116695069045939137484293742409717176296178074623340505981056310600237204332266872012375167490175422409774545136262646831452620200825660577164306562690747274660180725993566553504872139499010167110838748122711067204562962392187751648668858925156569292804752256621658679421010245523777269018948797527285874529589892190485798133480451502532638682342855985572693695317397948384700721256103509674010595612096555081453040831015310566792113384236820890045971094254888726553201519190267083566418380686262725281796944533347393016599966875252144831752718830059246216262650958027581150885868248070281405224981416941559524847525771617411685526020240433412153352964384534120595657002411846813548463871348700145118347784828671868403986582337048129236255983933158866860977175603069865279551915477823896829147253334854549576732201236550122543803225002480459181400048867884451952951678464938926924347222409101577070711644714804896049396941340015242455118498947697358640757067748209717737634576486841713637810273516760332640153591706605996330143082648105758894542615097134135536582974252027767969754840678141504413167716152865403531603135333795812083001784188398355664987361294456114838613739817175053451209674795701248160773198196632203330878913046637235038327895697974803624480923516798952657517704680315021067875542775122696484624957274306959145637671846994914642575935006612263534079242501506895194921100094984655630993051420430945676001043866326967495225836144770488630207524362849120434166061885890949726926767307099638285617035782848408123128248047962355452319216440955347871280485922538570270444318648826232647292895037197849979577398738346718880482493624759101482346486109836361998855896726404547396200558954936761455611656134258291428916505723635654267806999225502865107231445128119185419581541009799628189282893178718965059936345420828716238021747959427814741866056022523267803668608489655467936071901533155599098348326557790042167492432246887525139764102149275516552641337071105932774531006649020882927414783387010918987793532618935055788045265144392176098068846343980560365967047477557470424719908148534552359124919336599560125358217811756999468947807852780367450691095239991999103919445718409626729114951853055320883744894443934122470227618070790118495947520043516289382612365447790780497891929828539468414482993415019992004279241004650629798720504055332004231636209349878224399718903597979096547184410334890817678364622186627496409687877405586403844607775579750823033194390179573910610664109007115043576742908033976441837044328555344013791177001287316903840413689415699491188562247128686942112518479800430186401994750036278949878928787666936310435925630175595390317259783050179266075334283403996471961161901161891859237412290494644304021451025048983766576105231317532655492782903036450267430356563877053792972717080915856953740447597379554218456274912829718184620264496265183164912131585169751711075858609559533379969382438398899925872150697837830901363015495500910013785214740764981397588644466690793038739255215925827680008291000900607787793171242917826572343454599081702310969654925783491753146554617553416785093852193606364729237940482705644015171021082525197532256959679465057360331037549939842445038551585855945445866365703651207814744162817549424047846091211955353805812110866583426920987264830178931096664700378138739624811124145427265442881027937771347952077656956032849830584282067938461541398213191971393444192521190521148257041083713438153051359848228769845135685045266955130491543947885387132807776524174422131325973196792184394059517392257951307174740148283503558628812423068807613549041284459423700853735819131699379235873249331562602645479809529459559310185268908273065709822026568056141746807818144215266442780013316418388031443079605116200726010102607801674031831173474564843894720374566003469469602109823403380193291060098117764083183712247632820005726916918030557969801340733571984772925053552045963289907257827696815924640296561280196607874948462731399641543847686619310158327127639732835673481048559695303920131885209956266702525979528510856682315664160197707653223534120683478372259016434055588781190858811282906062789184392917441041204396459794264443669749112036454771984413736926435133596763533258416530111391502244827423042004641293557553226374772978069862871387193379080070673473432140417356847197397156812190252662663603623507428455505883051031405861418376238182861981092764825358341420250127467754333863813141873287279885920396276317689428841008084125454908774155571698266855446355681227653871509906002269209788853578951234892716375642821022737985702372037106173337704504147592279300417005720544733735921322812991458135469873939594976498004705714604237319237198228643300213316487069550262391925926519153597344408412601391628752796330564906277926818486181934410514938954687901679039195725380356445982676373652350137906604462818816203802229509811945134802143132609128307586606117986229935319942816054014621133894666346919242373490787174258187093963075134638117526430499024486359211264445222783968904394692065785748358555111752167918433455233212116071089659053737609643654587146505767243156285177290444139036691562834687987172939792435219804059559776141729184257049171224610006025710915991881492705917417775641589192300545650722300621849647103021547476414661875424066941596730170721989111406949062167611855763496887440774985294727853900077043096755762709265731453899010561590538105563478461832881332621814085480564828785347088252375999118203063110687840032153164583173850790538118638522086346860173156142168336157199723564740994616042765054143132549479292914684648061730601853255802422879648021230399555003955171335250985936974056373599568961764995397421786549467664316918151143334535564453203204118893530104542990723100732222489369958118171816528850013654615333935300325393913884845128632530778569211450373568483550561517647776748639783753575903265784007197440319832332332828703688078799913762432609371796066922592089117720753291438610805347776247343415426762565479802839460020238545869926399530516044778354295494422532154492810112549684718752745287861708699936938060247840697611607929434561932286582252531666053588172546849215639626513798764091691604994076373551557587940116046188377608909234442399797024840086447330881625379514831137940854102161316582307467396957128011477927408360729826287494968746190439591433686679199306849494293073126319876559393077515253127026666570160964915964945926282548618938441650475748015822052264796422183078004474906043203177379260757061999565693454917717174709174849368788866974080938027477397055183101514851942886236788194629669243467140029381761386163628854035614291733984165868362066476854150016959831298638939405798643159423625300059103745047580399671445842567457692271529850638092664628451833717471006684148700727995912380173950855656050592289208173753040724120197450746332246156989938181394432810645430342107750023135310716791658887520210825761311537657044843011577185832694505353349924835375836215226148486454425961271040466633180322152274944704771969549011959255622359389176216507723972141986375056319380904216429680573857800732288140895180096339110036709458841224948265228453834042790184164754912507542024986915113349930152217663107667589377766825284451186221452703230243628721870085340550909105364766763803793504354405811370006407764192057055001601518640173570971078518327217361119898942378944198088418648288021514685582746621021008266376926307716424993046135142797402776941286137879076534686108957298498080706324588371200166482832192927159405424443561631566717608549455527926518055347555318307449257950288896824132528327395507753184428295717736188893033034171687339684308033487197050745902858745525773321240374136568022561848144679682648037200353314449173338841936056907925902134984906360671551933902749936880571297196290563262750414905046001231118808572970647279841720585191435964066997257433034797885502655504533411463202063217637002760404523454412221570856229194032888575888785572220160020445325817119395447670350658808214957422260806175014655183663365297738643932837998824529430577421914048293681877397852843331294642951260082202536222286393368737178416581167518971776256318320325799336568841656147994015272491219182059131369323977132690933870313961277508987306326914808202373134715585192036679363943973124552551143733327128449628500571813955666977801856341692916900908484515540448692560497222049697231882980693456904320433563104149021338329620558914580972400593831684701581770162427261664745389000523498364495488646699685695634836093071637867147732946919042566331263405438502074772586869840418497295997584480186053431696455470656792668359325536008016193901410815301121943689352657871685809897387292283319886532096314755783160164341207202274507796822442578122526257482456699284001646498973323860204433671818455261406511863526292804632311578769735614352358051399807274224873144101161082387512113106224595231810905573689094894568461456005345816311642670677288798757756198317759240048226106717471062779581807854016973227884529127939937289018924539096640542474737204722772712632124008063811585148213953132687228005731790798207679144006605844065360657722797813751386737016390293031843551825926277610842247015545671608348469802970175637459661948652066481434556145906775940012441045505341220498866933137006371841128015460944679545778992962144975660262704153971675176903835271913449540286514171886898457714393307265479008358939595404578592031814835539922398147976249100601802905010137310087190904567472501699090395737264034996017700890592687267846064313891114909766559057009030171257811857263073435708752757966532334162846297255392540002458176197744061062720582280571544298174844713092950951983523223592639973987993446337125543245378343076389307310977115387363608249472691514442988949007277296656483501343365775920426829426208471890458189590361802755070398532377450057344717656977142866754845581373921717346787207789876145690635044045092194475713060626224632879792079267941167244535928574003813336934580552111815660788894659271101293064829706579302483577711329748718475084735478490929740349953385169867417137430575254439060466323272983016317148363269907351626060564656291820288105715966837589457878509685823185651926315429548686660261350403933348759779400591536799534078080153007558645282058010928552477929529569578028059023773635104369596550788821649705025389882154170653576624955286495826731101462315079154596510113307387286776340987720249857463327480713691981268671617382520465335472390162591444823966836268587182033606679028639176989139164787587124223175270781254955933916843871613484779642888570840070326881780818915210805127194584507684691166924441497784392523551473016301215404616428153101626048606470241873577949643230009258276577304398861393474548701972588489093432691514509834755706262338710509579063941858851353935143954285395670987511656069926922407526795481286009870967605974261772024225989056207415616870270168666789124798881213308027408234219759936386318440383178952785202093427877971359485682088694517676137440958433399328868121255656170484616536515543677844426600076076927668842309596128069044630841811605992572707855849514103311952757219260162428772785195279305433867383961064217949345182778567354141363803507248577524965762620142593081058958263251185199647572085723538757581350762921233121676378930977735061040451632107818528553509848523702326338231404940700945978483106700564039646112217858159671163648463754601290963012851364911057690004193666527180678110214842556759966815652006281355825227153078276351727325976604249667423472834923223357967305235994700843935496862465511883120781456621651922572287924053573672794913349313760566843860009486392601457354670849129721573796085007146623953144390535737291542294439618538404872564696126816844827970891196078338649787761183986371792700150609649703295030296911606806463756915994641135222832837635595327012665979854869550908755428796130289999564576861539267339496687538401186800867431248298754035242307480619674184671246520027625349210264855109551748201937542516138272820384320257974736171919557870593887845494917654698466971545244782148099004732929377282817939285880203591000881513898886372138293949851465436798623662349794016156420025222953074843174418508320821794634731887655270922101714311433975801599199844931797173466664501306926522066266837707265458687851312832879763379188919930621413092727600344882297850009668977104598381150295625250714079224906696875462761656245046032771184580723093716233637997494695990072360899249951057340891033041513278486709496706750840224053931178323432051679773445026071802389150941985120580717609491000223708901512875605192612971704578567741498921392105669129511584519577160290869062724835404880618863188828219716626840004310280282238159424303120245481604275681360342883964668997879115811143718555029945434517910359364129317199148023938278792368948398752810734097874987769241537847173235776572054674624480451442741938184792587617791804616482039123960174922774115374137853398372510847616974177254958918455132803054195581844252899773783234100149433313223175198902940096810811525772641185077971653798439300688670580972889284964076975960807640269686792607828294518171434288033659338909616925695276551906396314025217035185503101184794030725683644126205426437052898907498638049504432217667363538875546122297222005372120250583654936072511206213697701201268319978777360094777763417966162106368563696745681402061469144859382496739775467382532529330315045049409803010053492986211764707360153493372764004349625248081749582322721583239601792385418473220849429798935713422907291440823596936292085342493743880080427581412994935241903715796304382094776469338984108909716163307930285237617540210783966934589852684204756809070919941776813645207230896007040797719345447442234897286375644531848887903085487497670929158704892324804464607915680358450316912600401742025219099899266685416445775236213680440574415975911912786546503256652294530044069009535206218796788794226558920384521298904151661535715692017451961801337427371683834712285693964107648489516355685574529620436475614106541708278190769219803505565408147582744442730110532926065284090800211271159527510585411817577786033460429326293845046489442872796279691428890521670826689023364810282677894028345300347609098452228950516470473438544114295184800047811622427453008108279922889630218330841014936968929027217953180368648056164224947342757131448334772715211996295823497982274135931864240847282498156158606713178783008808586625778369428768893959140529606300757199751236033692408419001517002561577250271915558119742127935807642368549934253058695942662012665808872553961963077397484904478043795792390099510208936225422197465242708902527213484012016837974893780222358251235895021355064448889128059839953330123550202542659856300030236074025016784816082527715194526357630075609751031923885698668718400893804502996646307880480450861368339000656253663676217718823449094144246637543973373937015387577806178952438837361822926027333128600659944946015680978088874771455593512974057145661821223147387507524298992579140574096236918960325066511510624153144527821235259629449962639978473617749715672254531163661594228545023856443453187290809167914699369007690171846955087951744362147843199546436556747287991431786006616073449796944330442141507358858214698907378971588368795551768949903730569150945686056121688254370524714797083984012001758329191932276233237934639101452331615709075300454599018007809866370912208403865459579123852474401500600448338237530120053594191870626918042952803760775421561512952174966003010761103159350056049576159436388689797657391977697518970861313596203389723706712233313082024175994956938843007092659695548545497034387907576668487628511581771581783179791899676711517362978722038957744752619161869112081080791663302968307015970143937831648678615975650853530104279590970199185553424051685228856279087469488598967782367094338826898389383559885229507349970776630268438226866129031722873940311390255336321824476930441411804755306849818884101271220249962172497211277210663535857560162210245546361498626435444732435306421825827251850817012123623242371672457231982760003345460344632906461707077101986270849754271684996154866123670219901974798023117251296833285723073453925925772835989777883451225067511786006562551373333059241823065985257908741020315274899600106316208304589892422572999152252540785802732458386359758111032825315253060347498637228102322967149453364329483039851886708458807161974676533717222897771831736616812667549757093752837890528047298370509891788887757794723112945229215964403074875201021088032652217995746192649855340558961624976424022429208011159419241467572163043804826440218993645722171262399171031097778500882898692377911264921545484691490516415467432826456171636149116812872653397773636356697993725190062363553214500507939956671843688890842208059134198223668091730888151730965607009314498894721851021479127482774903516094581991121579562387929237892972326099068814395076195781369075475228566732955004922404126957792067356564000539098653441630788044126443126062446792572539617824914787428860758512758321962472586126020950155966106369880258948496517384214006554202000761019722940659165120090138184680519518280174099781966158339933948841694381448289229970527915648637985166233436722604102120163226970499674032219383444923009159636888958162512814421363166957207631157428666090459521002582580082754905705674567939862009489595270866942168465913012773808217862527681827294085449884720138304510196311288873833343507058945121628922256879157080139910695505964420962776254958687996775318965372624727753901478216198638686007000403067661285962316617357199761475975847226703404775754874895658272346006845614366302946990060858565117542761473535576414735958973002006645095105581636718914614456103510923455252858071513978268890123764467343840870307260388759555690742385416456492084500282848902315093775642522915239896393589357450164442091521946029651062984606261234696060540105368066880708163216183693183109091060880830329721944199726392070685727135885406645344490206578082934419355208647521849038040869436562839873406354566550038858991675228004909090031612057489975625807249801394141257049475603635474376218362846582299932226751565402652080559163595050180828389699540834841690147615558227912384112733483185333557653652600616649256163879278504468845180816482818730027726649446534888294816612758207525859055794334129869546218040537787082595801905488531768965897003682805506940327257436353796800900756844207931135549211737276593451773199569690450024546603153357478625465525736438015614629682473953207362158898078984780876387003896063043862503727107018735782533399005806935896938934569604841474079325115863806209819159791802417025178526299378550966653164851554985225064824859621914635865540997348628610144070356416191795243399465245228997038329657814115732601400624586705194827267555540795358384987632048747876065657459224524568788302513015491266483611201336796394206213261208959942085916065963316176237902296136640986370387491890922733914296085060500109762293706642008833309718936618100214174241352146629840247350520043172166955919237431253541024539121870883950917423974737434657589173598500462375447849316069762874471822904784165807052657898780276752240606703888676666947538630228992077547591683947386231126422426085558476096832095285486749517013480535531564118007908472771405922607941365554188380999340530643530360523558741380054809637778553226749865087733385487408612660989969902914062917587871538869339043125669763022075714583115441544907916685981467447506398198005875928784143047814724508349367423588983769052957427569848876756976899445719503391155484088251419476233771655644973865350467560146836787976120810440478992298564777919881134909805823400679275592783671056497756713950619758446640046625659149213331532852151204740721410881807673107580296163287229180962879285605865450782137485097986319969013480828145867109404421867868105938450043990381837553978906941687252245629566104828435475832451044479839847823730548099490790720604026713669065303420497934612228752676838174013748728214424661660844260821098792182047078991176560993604042010039056680341950423624340079480360401365143313439334095375200152763631505099425447879216989320838185835564512159144911913419211599157676494305213583267707042599592720358490012280707887056613396855239490230585043195205969355767384416721650361471956098086365680055455322115862375434942448633323256569174811724660901019978791511159995626830714418410893645741324148396166854081035706498180127121083663769705375776482979420880364059588345696943090193298107092546185961121108504020580949300833075279332693053635764507033097203188242176352834678616965176653030499654001365279266939328189689408806438059679376216050644185616250491375565704996160127723241714777110673756214213891273353297212997489224782106908606477886610327752935313890002694722440806087868095628234547802596909628020017683699931724365194822338972565631941753383977270559855934399818246073534827660589242156345553479554175795068196010009419313406525463936069706109831499915277270571019930577217028023520320594262622730009979493128336803003026620029094728692756155518373035402589534865650340111754990589759824557391624746049891344511752275984236477920972006941167453698699996434172523276846395512677818964905728344492189523325679859820909827375227566409009612578932246430238578571410428765574091112200577182239026843187118374195713053543670590330507265596057859950396325779223659808921815155134232838866786249872237140672784224713884601610026852676735682337772875725466102619969199763367229144090004657900153560692168053387131599508582308596582501583346018239040735441319615517479108397203662765733641209119466791533051882197158689980149461114814399253096707204819319590422202745726642857093324756612276023996356761060264402425445136387608554287814141836279418235230262671751213205109256375430702311079244601881241526210197269084716481975061448815829722503133346950914931211512688799916516393401412311014085374870777161175258430389977140195788924498590501350321439762093821383123027249862278247689311378084885916015560620140671555030604576147383132980838076598024704680518889244631198300369096213865843920410705881292413185046735931911719303576730699452070500169213229941533272022568010304754180090681242656300464928798405449417696698267928369893232127541656426315158691979717246713699132249354587306734815810242007056508443729730312362684124246661560881606695586477891036474637355859173546812056141324309494755541320073921923560785891031203627575262351238518659689996778215709633592819666435659803602313544961845588921319447278497642078974166701778400472013113529319234753421091164252288769997979593306255748473504303455106955321518499197076431164993352466276140820704499093461122625686389484886055018538100568033581631659891845205440394740419610894881963026742872553043118561157289958016861481978393551549169352378399136740584194177083086358942042911107839086076129885774914587707058931613803283394015722541984264766190258008202039978392472945626755638114740977626413466381354442468262592950374459995607930410067244664492606470915710574413266830869322423397511711015178789075739011664569198718914036080220666449754326831282006538114696590229321763195225898460906904326166236176172286686310279406914217743134873785550350335136222117813000835364644548368062510305253595328466097891278713794150208697862964642528693663154348512901551010281499188609096395700619782440512498474851885283066731200886724760939833186356660291102482323375204670725897855763748321300222496353252344262858810919637112899304003091729104735150518108371299089933688909889819974578593960580615624565572758236468385534948928512958705817971020467561559944774390527603120683388209871121127609886857271282917961868640086786703896754455415581039025787927712612503621800741809067376068547666213944774107766920905303308324091010993596177861610470299196106379545226112332602565091141793986414612892988746520011349848157625438219431362095445718095240413366836250660139204934926384771006798039661821135428306577119791770995292053505103489673890966472987445279601486163617526523585598159094014816391937337535282875481887066482634992897337635304019732257247830226803431883644073854268836866892982073356302577865434702676806013405089848937806774270832937217036593009787543297475246517354875360442435738091627347668526201495172192423253636506863635248562482463443129608423050924645801876851918498410755954814697933770812600330199687034786441192189452995851228005814466591737014800085566641754710053489167421703389124888783252813024905868917835000351719178251188397466606693466942667124853934314941038952484593636136056714364392158538866476417586642929728155403631979880401523480927882559605906249366436776984688762398966404156136089172947584579260885451178264634508556291340099680826469058463090530522478715043012607653656530250151570584289914339044608480377390274418122882706783659320619959314005163718117265473818116999340371910128091000083994688780974955098536339335251294050766192129648183705619403773910084411771965584739709894625868080925412210569907071864424376429299994096858980646368518446887339506387664391032261015253113733145362406468266813331447458789962104451917055703649477251674551731755121314744419166674538302780526731959464769930004031444907037195897419998973892543706404474714314510698297059415644026156515621299650247381719468175110078648521904372914781918036352184924835463160911560310903508806129536328184869442387517504798478141546330576976672962830438261148778252202913986280001074821755110113563371660180808104218182395896157742350759594353630102894076768497166219728907362422537519871597592878747511901267658672016855419591204934698431889054096859704164945143478295727041635383583557330002553474288933264044367981599937976113388722113050486912475256822101283668494629034692954898503875206230850751634164860520218098072800404061375514035825739910776554900419900386363834919256327474925544968613866577084910878445302854970275695369199635566862361872377375415988764565222549581588942267094721391914462388011202627248170013257735749136270729396634615008706257899525298263259566666947254200079594207151183532262231226233187624006130967594361781275578393062387449404691370002600405164475686122685074010690599306145848831153902788701632231388366171164986888233501743334551573891330543015921745099111720959560094308484873807102287616862281524075228961333310771092208497686780464252453456343424592501674255462072440290436725073722855601739760517444471367632707902183897141994882462185770024712872210969021070220057973176124361316706765689180649139239511994458157971207899298416348552054742488946070314510267946703606467642799614273870561218381924548909709653948080179406122986912388579885714991589734584178516442525822848313253878993337759749161292817422814216740740685914840960799028418447262419271193840095021989311166525580020079462537273461006104355214997721363174112772534648551061413963946709642594496473612222398937434276078589756807240120139487953891213359160170830313877223410123793464956131163113922420349896224049684910684935670729103934176027166577894458794666120675306468691526653265655405847469186164080099988753420404999603428737225602671488114908755328156960381133708773212614260977502491092002005039557023463426724427555674334099679107183201754364892221984057886303917922413944818442479059072237732987029884847151998948874042437257239276842778476511145435245061513324762259931727571486198571738987723610585414887901969145162646363794151928330715151320416276535666816779894500846694765871963435866797785603682595485504056326487859031060644406804054196902616067245825776119383292205662075621543811628348426321908191497967116806308862504334825659098452934755269985808595907498473328903323692782952768852302638184391742043782226168878730914291827253975561383709367186165511243731942530544573839704804719978470714643112608684537616427601869849793105654635087258764308840617633543774458911533668003991036681956250293068990068891635802746677285363024324693315478805176083007092617220550210277835769125940238619202846808312044060840730031318588934624807223203782310423496261298303882144478016164740005004896927594495825778210311926204791363259783906133387737500217341309618315425396968032833370096647747393226635669132614717935317291686050036719565148155532821876336417666062547654403789898860598458180494274410755166959856121406832325015835958778892062988658089380466124769258259387812794907024412220245994379611130123406220721961649612177646373354686135347967988951020714848939062691786735873118554214195725192476536690863976284597258050601385409474763911612373877064965154984754641443452454906590979507667875703329719657976077751936669294457328856487201034854376583644933483966429317988945298368414342008898731925797922173222794092486709024250496621130224473401722468064073672649834070307312457036280537512956477197675322464758689686318978067626012791122647476274901724925563196207322100765532122768033856555504739807619767505431260091995844955617059313091012067350188077629109350682722952255784658274075873782263066384375405325892734078113194665587272880901271437160067020742283221582656810218637972780475371911475659153263202243325186782875929083004048431150376738970075321301596342400722310575706934929585528447721019102779898277100810545162694714203901957190474663873420367621213961575964044274204056840961045035099791748812020265065763514810251126671000800529278714544935063354256175282119645326001748998916180784535265530034936633021574072004553326969172597880442573835259114943096939430196002236898613262240982279748634166492206089439337219542508859365434422531650207747612876711633555957013799826053116212775137969966916182043730756801630377768319445201559679886931730102705271325650410168859078348269004134066620811984282898706058665962166620820541710407309894528826189660135096615101116744314545667210386097014120444757887252402701777840357920403989889097488729153040411919268302766623075537943227340564776752337748757270722726704847123320183054347018396065397861576248308328608049385086649064903293995978778878178936038576829973137573889669686650475476838377982061339452338586068173576226031922816006672383766849645576743077194900202103898151194964868191944515356319890394852560205800533015677093831505201175695583144037290187969980750469916608453969562081438277278509296005737468545133436415501168728287615574854266067930084108417774762665776884667364488454399838189414359102734798048052568292058862791087077949620868701581910543611286794488400810461235360924033751670542756154847245871124752470573455975176886354260204364684607430602348844934796710954370425515045735500380124091013116964602094925904436169860162136006859309400314233594874550155105432132924070055083731865959089750795763619407096113969467600888109642639596961277724343607154554067861968729595996962523004724378945689962202389113287098415037308627832956817576020274816910692976363145254641656670162808418797133817857927461274195101827343037001212428256003060909737407475523489299517924861317331573927053807780211028043945661483677989777463950085344700295043629781127471151407376217154403868246742342124581127957921590015183821028114836935370109163346976287285308281980388664879358678521408030290543245834682995566559361081148889257692008973259153465599340233261220299096447664033071001962546854381318085928983375062479570948067897037803740230450709305068008034692822859496632319035124982175409805847093242213629562408289999865286146621306244002811642378948071822403264738679924336534242520778348157090143651460884441909217279478699676218344924240053997501977219943336912624724108010804813925509700665979669942736936765509914006349881574853647064476342721822723215162143483898150191375501848818037275682732930880142732456940098834183505021762071253223540643437973591160081480564536791057831286114920054555567014220240199163285654322879021651752214884821054400269857430893520275981249644784798564589790993987959061669720275746952381173367610637733824782998718899254363993314264554654768404660310908847486730691503455627106199596989501838440054815401986324415015374535184644039803836089965282970955035550522836330300456231472798504002847304710285376297861707842417318248893390635220866184283662922896184202132897286031230972893401330719362063818220346265348368360804221612744280811932128161965983528347092909013960356411777453150143072189151072025494823251012608241606864309247406426210534499495416075945913458253936767005334389724066395039421704354548420399942389450754775289048239583275779921650401268731843773105420761137039266928154148312283376218426007376254079060866750706926924476072535388688245949560952067966895628644272961105614471384628380084962066516866435208196200807323502697006390310346431539538948470410440423539568027089461511437446355447090069637805809917446917111771979354209296242659356673869011567736667881255958275175330724310929709216205980719881307576091773870720486432393050005485870900491273393279852590793882533133194012763793754044937938110379403986439915179067958885006209324626614506433452007110770828662705270105047958231336914077229610354516289748629404171955278143118803531169186851589688351795760418590974722440215315080387411958092371038587969335407101047832642298801134263105611581407192940531606231707643924857948504441852770400935416530705916165575678577644843839775306193622550651479198930343979416438115566131888534679141052596283567755390912653296308189676567556773890906531765942092936548269459432649990699655691796188023958716474068337810353920763368374747194386646830431382630779299559351952286807594298821694481500605530977078829770738576695416126214101372214065761364483181960604683065905897819607723867239944623007941626563044413520916740602951215083020898189366784550937652068172747710094782999995292987218547608079677354325931907078489464409291724283185177224212493020401253998235513357175851146394915335334904407292225529667279426455818692571833999999590601699294456069094059354412230070158018219044969151885294872923360291575145337185458575545639483144231551532060692619935608138358432386082680145597602087015063403531839632323422532508660489979640287325084731940739628090035955776046618182436963938966759445718585001526929384457834108095231890502760428711682368367397204067656558431880437679325059668304871505570981721805511815782201168199889620662866052845887279099740941176767746027833317574894777965513507510237579793663396837539889238704549290950579782508521027621943445178304398387143850373164496195306695008935274683992599437475954927217891673512193839447606581065190330438068161314046181078851722440822677642939453463200488493990582852680337697919460294096053961486219000856934613519378450072074155986574990877600662351283382076217131821850827257591754602731418607728369445971273525186652339967281016713874677430514848103653627548574004785088998384554239781395140405699455501908349422146379919182580277418225389749575681553458361496396005869380029215514669035836616941665937222199240528067881267923954813904876983963351563789209676481668269351898670325191469270136033885257091583430744911525853090821494143132355605838089777955287344661683990644254037876329037336685011833100538224654968734223192159408241374918660676428861152926678826361995466200593553314595544373034887858497375720830767902470400725789626430520379325748492954560471065726463494602137985654713184864831276457434266819714957786283712753214061340578166851828901511479441327896871594465303947224853989386553891878251674650300371904912240278443275420305295569072050367224144583272627653070923930352411551812360009996931087822310470042161156048540762270963032970553081580180223075197772973984471447572790745796265484410584941436415359499305999090591568870608000415592409052494641447623571609085605850918688949348039753843528900653901642483007641324367608619615992557274683392214014021549359497963713747430992726549827670531175843000291104268423056366816078647670461633851813455742698655797571977218550118902586946682201335702633249866915616871067163089171194290810262499855006521704726030728480609114384210674006209771741569831455456201924457761164357533515568929377426042633038924403768143455090364796392494994708265715106650395223366048383741261375280687118852046712445427982885417127303912899102113301662581770214938646073608262267981548286227353098612100498775519652821903124154254051775398237450484818355100954949111236109010100030605857973641892940730622434381372844574650851613189420301013417941884163450209016154064024863895749723818580880727061978121232928125243094260191857625089342487926885837682844671420427208747138156201377902925824585728267624015539321804749210476290135086608929611612095669312703929503368214061392797438727600714921289621021114220832974042508121411091743644739865829259320368285985627427807813983421060187605021253902670034370400338352447901837587805819853013110155984289882406725058802864827599463917702277782678132135555298322680464198938930364593642266064182536154571283911892475849419296092000432310988217290286831867341999520986870139617079152225240076500464319001107961609256292443227730904335406242101414052992894386426185904987905108892417164898718102811956528682636437407849754797460477093743221128145711488173084251824974132076197106664026005769585812968390356145135717152475516582594146891623070663103524681814802379202955210851868864706755382659158401438551820116736868831844028752700348886602643289814527385417366569109008085472146919353576255001850360517707096883647875171734813476815270655532578624063363400954541058223374596545508699637327078472735800440104590278128041725402669272292206277166913226060523139834004013469900629107423513510471666163985532866047623265478019288095321565199966384563325901817991646999468507379050993016862034431925036499808087896127805494639438555328796807650040918462375855452003162776886675159865943966335426626399141314573577655053857858945388504943419679603219148347420747332957275568766231039831829647976107549804131413823384851703592231431307550827698055939874684898616218984136999857964438826051793875049409577017828969905264108071046577475812500726634529055552381665707968894142096748865324683911221411974535539585701082827231102940343686250476716456806389813423835535535522603896355307397416662627533467461626566595382938858858137912478503245107341292175846804747403544907429943518663641731380153063554571184837736589035174941307929474554576164754574661646671437839802775398134723525614967586359251498429839059944843541182902733763977776142945510069463157484932511833997627205837260571741187019242652346508817023060825581950813112772634960415244364537879210693679141862314911322792494969500092954499372334472909078566661473897077299005245555722666929972046446021327383415303452915673635653062397583777170901230390336631902872818956825436112207221359657849667550197865160072876037186775965198732289311371055812471764063118112900342050618494333600114397943741432263132943002324058745498224075989083678160562106217244516698430753739601697090317601183802467942277300965025815981896948157463307534481139678397805135376803547107181514047896044825827825567685433428809207801003690709540299801715396782745091364985189090376600750009253604341945843304716810106902682800710242345833777918363075477754239534774986448931088007533967133223022009949631699432714588571356152920461568653124497315331007494502514634398651864886984722229828293187570639112199001670580624539360002576574633368686478866298398927728235369196807162985501120967225083279945439553102740805641202454129712494512121356468307722959114977185427790222235552888919801359351136803319747171322209225153291732188933901324815150484857500425370101334153573787024725635884085600896837132511439816014839913431437218247130280023844933869292293131307878174530956354724126830080733323599198863981662585641683740747877111588369189838150645514885652502686907682736546231807229036365421746786391164887225431218641910724714905584706573662793140312351350977063850805971692059735347384232479940962495411445679413074287426122434351913460865876212635722382964767330753332214219551040274786991091014621943434965960158070843742199129942152733728791005626612840573489018176093838707052062769092620123574340366950911584117417643942772812324255007890613997908865738753374576896217946289906668699392026307643143850301556655122332724325307749833946292740553902370929327308459338937733514076391121742941776457571137318112842773636943399776312236803190970386427407125732063869773568669857226796116162589573592049462658549137701527607880907263187754820299611415871539117820052003091413500983506498334139484303843574133793073545009351701731987753597674189442224801890393698893136562263886594943590561625694571724561836683106411748948337644316496464494006378543022272078667807453554309691425314572951754663203669400068069070391314844262056317067283606065192017260630686677739010485323914769452548218631481206071948734989224526870670338062996448371587564719547989675902533668828898173289477345982201719047496777519654071615261245597236869348706945016889526235044680092773346474093595941744135221418626556876135105240818184973317023109291006584261015131103797397540048041677493765062686344126724905634947408902068480137413883892628335270191356173326165069236106490968106698799907443546140418352802756396008719009389172409983367252113541187445189092544883460158791648710303936049201047374887273495456643704711808232066438512009338912762907391345826464963955082974490790335150601041293495853736888055690088194373183557988602246281347409017373022905711212753787763593906820800914237404476260359267744586629377451417461058855362432140425506230386642723177992108959780523414288961564690514802924660104967020987349186057313822273017448338982675940225223682027551374289552093276776456510593709204014195656311306109860604770272131305819700743860473790826204365135155563077736837886696798814926420259348491018024585666786957741032040190853250623874905397144165117165542370659044326409965772109816174073830891458861261580442834992542176779347908129872803507632137015065347402111513875465496016996556369764862482944204297360749329046694862556595324419754798416844613808741593264385996750554780169754150761727649145016244386133738341971283912820998150156025366722597660323853346217461332226666994062255772097017439831168689224297065745566817202473310223151291685188388790821813597454796598861233689139711259975169302114725326608642712011360672063503740017838854398256816001516312110442479149269022591287012272059640158046758588062931399414320146435390642205796957882715672912746275921911162503277459884546076788111478839920685988804562076889935076966965964204445333566910952093399449076144631317270269251367060815950300842339583812471910428920232916032532819986645532464659633689726176790924849349644884987783794748634363975496032805312373675735105754467360273395621587366338690875905324688599487445873777236307553796481261913016596965723600785669855662173757336610792217186234958982399236332126003533378097350767246767994263018255764603114398681395394268593968476914348579261943399123926296363353795648628772948754468488877281177299591493082563904834080597110422295095201593173184354859149862029750157862511717794709812240513645838723075723719843552993565048134475520228702569426151198975678810798244838521832998770441229642966580940630529426674599562425298181065267693092373501041199157696957907254788326489770556122429035632302461439708548589252613754430218598189880877470486298192688252726983251563894293205081869333605333184426907972021639240138614910210062758700114743938183396453979840217545650468769178923322561846573154537393833260106122943006187695103017330495420928081933326967904661064915537311493769656770724414194350466675031795825814474350940535328108374323888060325879437408700714187022767784224227956337487445658316428432946641358748018169332819852228401665651680223748901851412511659454895763522425969892651029537528564786972891708313661479631201131248022214219383586416643871695356185265858127708935977571493121255286589933517656531023167399233576851007769307489216989488718140746499740498374546373780265278294355996972748389018966545902931164823302451729724797425032602217766631580559041528569922001044362172306079723136339002886773340179693794569015952151034108076801338606543427588586969497512722847732872902367524465895027549865540551581617664115352630307309689614612997618451248759938822317450380997158026457705653608417473396188517071640873979515320247826651030370587004911575495824355662442693993738476841345507344493460304760510064141884128582151350447242740070911539924124103207588051016908601069277211743952583015318080910173292300125558654760267308731446080770004303189449370309593100628848209622092482167661704569234542778892965604367562291780557407405885114044800015457385390788238311567809773461643142640178132969881944565738176760469810384724880199118261058856337247873292012534463878436786464163077685511965291724361100277684410728667441372072422782689881621748805283802902602185539437495855976777638429004209793456104259483266771406899991625414061514651562390949161768132701081192166297671192170046340143108515129498222357179809159770575668047884174751308362067465696480118029624229130922414993433110632564618788653499846147161493003013162202450494645106437160465943794581859567365701143570822838172866243520687597620249681898416392683500138390409679848484525016276509019461744389813300873113470691274053301003927098985597337791620193765089268707666915234983129209648331425775823399759272142825394968227749434544037126900023074863703455100244783730200578403811729253663892075022582686289716441158289974315887908870283799456093692175902081207853309252317543448827868162846639317065837120237104131719213010916435498168891977613509328744712291509256160178058407748459859056333608910001010504015696617219592100566600262412052730801337724325955317541677252170623163652262477158633694600614141120348004956767073311583381321631432163773383747039919404605451950127503624751101713913022326786333148910366604317307648208387109605730646613964431270492507120642012698578426587417315907643053329570682653571083752975398140757359784401940225790358385292604853698058670963825083348368910710053812979968136122547083114627687170833807409532539094289465677828242145126356782855782680996417189863768077350156712599340078328677491504126453992147179074859003750336050467319940407023329729116811927785225602796942453983528414194124331905327993955357581428047640888535526527258686807225659171351444636588260783841943721489459738707193341458414859926917886404479565026480563287072028502605437129435432568167650463372649474290124902490950488797262961765494811040459194613721767923677752833618776971027052892419140732746816269721911241792743670543698822016924443584048277106798535909889714105686244043876284383217489524690666915225466883662743527237570485801399778908167494532971542824774129004324850038010129725408105713726767212569618094910892720539807388420769592212859923669352059675943493068731486664490501386968888733354286400527767817558820834132394033334497706789776116757820207750538368189132768686938074750235172751796170299880990267053646235693880657054140670333841111870172870777915446241061327486793403285933392116227338272104709763128244968850239881714161363290582588198531598010951829210278461787449147190531504486012800703440285916492016914357015612299962249513569507793814807022666120229906258221263982808927521674570219453557346681667883930437132436146910207111619053501464755787277312550352876269928788829674930666791103893713415021966485618473395685181047305492479835275075749308014589487628235818642359472710618597348459789637372000592213317349353720192000292554540548682916369583343637447735176998338591686083172548374738108281404646307006597710618351593324332058050415228886078533654763951602073123861109103013874973208811871537592093352798455976112576159738208029827583540512420744682615964918911031747624823904635983893091571971315217110777983968360828672800257499661924116235153808590729940455339419256594965213309099742924489375349093089103775133690011674248886347409035216157740743875487276531472554287602595567773441889578396496843119388131729867619928049359020374852422933731260979801587320230017075139636158503497070824392691354684709409558221104887363244658612255374067341884626401951748435678050175196981911295644705363015390041237932529864455874960087414519259343377345865864398743350528412509951997467014969651526574836528054410163799018200069421032868508294320444872883164027684257831393906157716871664286066928119339251785804206695017336491732384517731508238988480469768921965871770050644512555915015480416517328947427514848713839019013038428783222391175268913800119617485547493790599777079720133197522550937485123526861979201790170657942294884006746510387517336992097292042977614335022213342217027274806779714360469892726283991610604282284735430087412665333609923495530895432867961577846447081669926919959314294339954727876376491525985384960208007643544444680336151214024932447077327596453132211036077773911237464445009288588593760574989237436275083753854965349771187217989857548368416777063323660637358655968550946946895124346295306936667445511990686076010674829555987735029975294864607311954523571410795611286833847915690347791710957235645172669387103469293637065007414890979377633561686006215472254128472476474992373960860623808985900411559276199033018223327355425462012907508728996854241901835353270400452332573912902467380706730081795509675707046349090312589868318854003771422402359928253415560063605020531302713880282082377980383513073078925801306404192278373789106282591566585233259935829064539780755382090330680939178436497540878906551016175165635741143988918505658622562508943218089322349192239481406292704273309562216374991387727252138042870625274844908464359698394470518889121390816987720020612107010615030698186793489161559624608271432805043462609712550297770669786621998095882802664641967031436177826549426282918450273071509559118865682780509175257694574447077811626581565587266821968426997028550441350775697015170042804627926902764803279922780724396628194399175800475042410386497240763992950946032536085989901985873557647000766872487571513352153394007808616870428319251208450172282377607999657472510966901195015282538549344169705688191549469040329372130643475496761081670201018312731843105655190049480405027106880002573188063032678814654849984958244186947853595359931052787090733909393003181883641854029998684120551722738560659510026569355224496446804117207165478356124535672955137713104679472293513976399547729024106269718021860393165973421595911321389591016362307160599923220180593477044185671218250291465820245892160489263909400183018468327943665946719050889403111736757849469702120431177570267751609531378386271692271258838978530237644877993269807952242191784842062311362272148090010304192197674227168675082268902468829044773252919766656781372389214136051752195238716986838999299988031202237411757928303762677618284335112595494890654468252748080493844065114313814673723446730475631309420800951071647047296973616763103723829567766394435848955922650743550033910629880865590393507898407142898644790348272291030244067655520327652736398741304452236991886280369831618126530383381790187944693253572100678887930042523033390862412293693867067696770369493362111644709475391752077560199754445652052282364266498989989149112998814956024545828857829302342567851357303803916693599159745754426441469321265432992533929017333714961216615403862060684565792265172196440115304765973966336335607845663869166868970949948608537372909915289409791968400953886790048380044299641162054376000643211743113860494383229428720941611533788007921724112862359482714623716879645918023277919803944092577571141185385819558113176439044375742855800971441707288084509572485643760547218488592216515278642638206811529089809380907229865974047014314599752033060340153236546083317479931331415044712622648346377914398490566896903408809527648573342200053799378156524751992863203308963214956935815092111809576677600330797537482061819251957735471279789052600100696049759011653094924803976889088305513477768350789186962427484284021470613555696054618709355524037783587041875375936732685239278310040520470752780565677164906574164085519171572164693000542834270866557793858643410389352761065675898907578966104858916181056014276208820040917840579650273721754828043429477084417024421346888595620939729834787367625805044828239344116968040196993562326468874662681538636670240050287751720912786691826118839371521960612505025426110845087897970945323477471902348412458957951435542433853891164316103700706934223168595736082013837418163684678647239125737747500383735977598881202676992241156665671461243141447877469663113385429690987428994709630082027766250729557199304946238484334196969132700337899738938423516935157931317977857589606643457163561531994047969741671821567675857957896118084699058706961791540049675132586973586522400255021145610355879118024103241277877800062867282203425549260775258109599825651129551269926927625592658656703426218671588045404093360588080083995676716260771323935751288801882347629515744371819949251258084848171051317565522449209450848463508506036282666922772677991798943886281714639698357081367328511826926521568607670872766556954360523352062809733887517426323982190418481236059422553044724300282140909431520669488184235083553699763748404948864544079616186425279120639763625269011703012382816176257692146349687926556158467902930768569912434196008136870483863913527939986401977597152514997636380514091065226746250163832006109693656681486314954395004583441189398656980811020012350397225388253046920843193732417509198757833557005095811598596602502217939409489706198601850373367680292353871538674831345637690083778159288328264691821252398298729097890904944620725754029281165431048046294062485378725786854813130289338552002768456882093006130611530103119881003707805196026988872022312210637988263178867088192999665996791318918113489551161495458748692965809311382632889346003911981617702487634529974518183699375451773487877682825690979521059627455496603604397891138401528649226901564953004555366732897954198445544880218807088260284614332220377658698971461626513283071891130383073330261986718796603804540494990961239482543703989274080124102594871801031619010178263532190773836947646242696429179879249741636917262110964237203874306810327985335086492610128029148286046720346830681032053891734666403190168197106248953061792296845158054181531752105258225518249669284979685128795899627165778694016415010968125503276736361508786098099520141112183305221067361031635208271197682552504811484822771296974356773050550923280697863615114546429719383474775919931444653550816585388092042115592307529647652789464025891544249894120597038246497728184883563254013294449564174507869664838656576462725353066670301097010110177392453298278834125847449486751759998304166464888621035873158495309246723397125230724088805765905776684903940358456758689250221893810609659518842911406426295563147076092629902125263470934936788935785694839926938847305807355891641169169467685944765346219115202118274078527623212565081875862292272390802372768867962434921226692853228991098509455646010528193181066478775720954057978665292467042122668113523796882770171973346736101742074826754977675546261570491544437453717763113519915900905792391329473941431646955731573377903105120161011418348816600475102874410501452520724901380892216824529166217439511770640044649106596234818071842942796948222762115973040337080217119157367143148714674546306882210958242849502509274746577956034206399295687287360170295642792858012043963427352114102602377905025052599074693211727795043349818968511784281313694326267407693344090939082822366312160877604798325748915882036935365873700221900659839360728307899654894934715734771893991641052436841449914308744169220459816868810678230006302464817444244356552040942190922142477036007141719371195185863089408599188526139656902899136723599344819163808246266791706512205586273475168651613379542718118902647487758444204204145270029109510725526981565778227265814788130107241585497872370566427650225522833710675284193324091488079804273652192271401360308229978846682963858669829836840761347686565848935169055414536050498053821171537665610930540855747951126957340944523878803487040876762504596287359829625298239468842975855376168183562940179653345164053632052949448098754446539202223778593750021763303023400962700588345324418701958274605312460251149095512560541133390018484959987527558625182746177512230151396840654440730652041056687562643423873469462137865108574813867105106770723789629720085600285587397773523167068729942942305650215425158139631923396601156055711169855717417937275186638051175354672974739104362702808721937177026231119016792738644231835337021966010638763154701341381371031805893872309389368146403280193259268033437401619268796606128384542243213864831616309894860190284648524151601788680070605618199351371383856607273958531420317929721939691420280776887080638406964271499083366209555586625251341241834715159253059662621361588546703227692242757231176386237066574053111871886937935638861913940265310371532960735763405681796822067517297618737974046727638018836888152273032178919455775412495704432164912239136047386938046941040592901334781478729485074671249584227452979576960855444388397301851968995573819202615664916037943775951645053949985805975995505660511914011710559171321597974597755347735651649544177840813992234010898449057446513435734087281871948497121911497470651993682261543732995303710906384525553366891828391825291136947805087968903246774392050534549355406637985601062798267402703476265507537314360946566344606198078378928649883345672497117999397415852083160734070648215935301969447534308822880349068824141053655768233639453769644001509931511442449370993426835280562912128620142438987508507764246298405637052732995927243003819190141109436473641026262404134994160171607645223633583235753130844806789220521756218817428773214690403439580107917681180014173558502973484791968147814626019422166539844887521903181258719790622296676248932414332655121087136050014115318058358096734433338852902738756080768162597503943234018022792064691577139753359917032584215289987805321996118214820997336025048214751523892367080152729789388190244266365588505975348403557760289501107965024989044049990939239109626439287250653561139907460413123630175495443831491217321715300174531571418504305826750594134565737693467764777902989229932791851305891643771323570311458555450577273880035386592207750783773804247223441145168092269482933384872681597441720515805249309548828428004623200126298257008925333382611421224014661994662941269070336142147702384322554935301118784810061262384768108619069193804206674395349259855242869075590300758206782814014670596680830745362163065198129186254425457141721528841572755401768407466616157811456599899347626133413736896413514513492403344236004881182086100804855252661519155130976583499195408306293477237025747237392339013215290390345099199819586972989399176749219974671335029083725084965068641205093173672828138004137853181951540561213256151649259091672798335442126512598027383419994101989771858688074963416071964518153506485494685429965523228178587756839332173227397706766039353677051103075777001766819042673487034077795702174252018534133465883914844409219534897070748908190415185760117866380617963781842681565036127231338307528258340097437419653411934114377610959446857293489127362153578237724210365523819872793960099332372898188969459953124934353905343399504153993245940730459624367242526138827665900736033843209533178504413720507402917960337944368872778484082402744635358534704553746808044036569663895729253301722004934064139927977433537631962431448805006862948528740677602997669743992494646450628657561957272128768445839162307221648020828892620046207017420542543625510820972348520786177146093561885263862052108249734356536388146242921789948291752241615616566801232432403130191477236603783246577271943922134271496000026593262754972432210698881607673745350566041821356796500357317393841017084166134375803026932835962415532930664553333541649737145358989130073842548644269223129760051492042207361092791144815478423380470227293023879777856437080452645999861070835119330749513750697750492998898538371925787338831522977525073235519320596253146927291878847522133686226623590164210649741161417133818237705511933865855391985695531201074229192838546971977802539562277963239169778423171609250891369322058260448792095883626589976615030723302970740668041709245054407594222051328940673729095537619775878998796493252212847703607691310931450382742763624112261522030671559637620581404864656283584643220774492267520998471300160099328809529981447255180231332615352499858868964642075475165189984278373378178156068536347533493715197883521811912200988481305956321288914873199945561473144924370607844447700893775955479996793892614192387128670220828264258285746005435767883922256006199609143306497080640263384530310188148589113625047817840929867350502325383833157018603005320421607172065718091906392997610770948445776922909388551607684147521118615903586125704659091579597007358860356594624753837538216376961613838998778815936894400478007230817266038875391160639965949974753483770430390165048223965623309663328632934717984154892251227556961598326486892176984673067283839858837451483798088749459545608063351519227934994856365246763564802377762052854746351177935965506608683600179532487953200321749903937204993019460501924195191410885176561977324955871042884120694318920538147246506011319293399360657871007826676198639272763833096711500674357565422161137699311122128600477580545107477619663242420238959985214320482465376775792169499936384107557084991328650366388859077352413050102190210197542752879709336691175258176209526291178182713952373396391685524672052715761650922729137289139788141581548595919272564614331136135215501841047851597325439283414307253456047232469002071952131461474337421342611492784788108571717891638515860557620425420478357100987522299065594129350888034747890407034116651155520199968839929551067183686519925346291399860867675763705751024581564241735725008727239024138043887020083960917300945912159439651421298662133139115632843011604830777189886842876720056347226244712149290820880867478635177067433749458368164013014924379809723958767120129745122400542005855464787094256481915696603477475043520337780863692481435444872099175827592879814032414730130975290075157521072313606120062527147383360708816036981856367632462780752494145559039092682974835711317652099237284655418832103790480180985728418171840433894299552326741749015703960803338931316344574953759218011534666223718754446031019870070244912093213827158888437742066765006206733723104747079222467715861550002442600648467073911545842511476642289415576039464456823844737306522987080622039158943847276482510818089847378147447307868913250423944776257381769308315205116189944108327764491760801546631873989281423514143183578914351949422395371178329805730625745853992066546097893045292504501379711181625640082290745623714836069151621877077354785061614493276489253218789364123284021464036493727011064728073058762700417899924501141165039811511281820276792666024489141770909329179626689201012169037813634408039267647897880887395209498089663030673284906786701950261925909487126127445979754145603176244093534425128170518934264792210358648662018316731074840681764508021219296740197314376955454742121347944883741286034133386404440672738753505665552954374940884261642216742444673708628686924807838781769449564366380909082772328783457890679004165883148106706138716480681454197670765721995102543190983811385266882855484020402015070948358567337281745863884026200262407922485230570261109193949583933038955799806250782266782436840346539247747781861514056039965705394012664718510308988648191988095368420590476567699416955374002283469035971598371486316032031679836384729489151232416133716181246007788500032228790946426215697868970871826592536743991232164004264623296706964376374089461181443206832268647067462826728647052187205282115188663840864654318864055531452601999119356722140341379542367001473342572788853922643225254419375204171049066560820707470296163418122929751043368448338694414479281837579656862162420553748280411220049906717518624009889576056687473821395709727391237571948865324411210711700786629676034780068363140814143025388527696581705356192347353789187064517514461426187501688978545852723120922044125124541194688054104881886064651182901257810248389247172277584411032086352324721714253097563108483124400151476659909220662062273721825744551856968460613870610835241453489884922081205572427836491033002452923705581572862354255723278812360817251689067749485487660693484192581767027183719405385545513500744952016915902590871794465061107051341990469645472722608412057045614705750638151449407362884805084754053235865364236283686517625631515205013563755207882443059345677019819784422018851769701754916617947942165886791907856998830699495154650605239025729613508122714501604446693439407814674426544597116452011118436126981216262637414110867680425445505646283156461931989705635310771286774518436517810642835935925091735118540401921426785348780556586313400553368283781707321708554955427293909109416156036679500160134972101520935165991654841405742706962883871245218198723026507679783347308935652332099963018625289973193481622929777235825693461876837176870965394666074106105776973234838622270366940211649888445318484113157582275486099685709507737243080923986013907319479157456734980936200692440488685420934546025393100827732158504713026263135078035918891590626784181263780564723167598427244071201372066857421422848852928611657807186267004752248568806790608499505642786977846496243822094866283340824202261261083887867936043199312377067038312807583217199100549363576239802998647448383625049601564751129760045272685053252763265118169385967817038587202055679894532625820474950551937946155866419133569434613940835308823989249139436233551474421614576298619694453184885020472861827444563781887924124962208557583183476421394604284108423342841859549846123410020508794427814987657991798527750874158048017949189540474196729450339030621257579124437443931898993710861647422098699992486437344836212844460761026819722045236802833191588928082056009779878694352381860668160908143864289079328669930971966861739175569194007372118648126838276084498285453409364385757596672162257529565318967433006071862322102284516067393755541879024239044931448799068640857070308477298827732275276338619074969319684038695460367593145730749899781122204327985629327737207896404638371796662445804262756630163285208395365896774447794342018761978658730515051110987144758802787268453172992718291228011306758995877256356776621632167920713989191017760456531151375810264606581693690974838873594730609474243198830067534223675882661489865632018018985859959177267058028368825394816638774568239891667809426948916031631986151728719415576899201008441136304267869590402766834486308773900983907540496421703008533635381050205880426654286718144704381333237318064607578030209088395578711501606563824146915579220142587023889401766861800037058077002411812269524025506001915947114647912692468574778258811545702084814020336517016304151450965908426867753860066930359167557577938026907446091471519368770056495133351954184893239705272479542099278414921826929856791496899469262299844878477645487529781728160565080782720134895888449678237576370671105656547451483793841673406606663265780149342614205045333228110449203523261635057653631396539650965430092289055868140349025982326723650788687785698014692407237040028304183424319011982376436287955227218959442697644571960597557763565896213124678047139136163460144669499099523545372049168669678775971357777562646711136477871069517649301243917683477603288052936951199148526073121908508825188585723994153997319455620610724453192039034720993437265841271269189683210126017975724950377871829647780027528647441494245679051694901134680324942742277700496486268339732925763929858724013443838720003770932097671878258992785728023332889100624080550686549760550058087227469906910159027402477130888938129340142308119460183864404234805153096990752759991517007211592897881685843834668769680514034650649778200100929133122550221307149686977406803593668835187124806482315567002339819675899240243953324159191221950889084096179072111599298357859642600124725301859191870777952228183948416456478389118771960550742436222643772315380232558100361666748737762102470560598366244191850357965747641115993657334523840630257978324869806105729171328488623114102181849821058902462465571682660917682905130737538213587823416920843955630524092736894291698111545086249982494650888194326915115144031114888704541228506083223834047987421312999683448238459537367068197799029256961928863228966087768643624921324496925611453567861506421897156937629773128807824860729236914437912786281327628411610394951972277271681035720016670129310430605960287930208042329082890502466114053612968566781035606964162306986895626529166173021087327855540365421512855366976809656920220617809850084638743920497095008924203896818128627779604524178206092938190374175660276452400373428727975006864102964849475989343639790747575832878629519483659263022494322976143576508835517591863984903168739836541171468412115856912469001277702971402279997362870302940916784650815052934785155779592741504720830937756852521973193309907662772288798539647683156932467106110156131105865930092958889887889212924519140858181223440769871945596635897149348585067824701090508723752124746896074159839994557756215519355789272577358819265701135830021644245187728125999549184204177020710771497721558401254740257765838416539003898763300644922721519735365902839066870472670905767087509081365971377509563027853928894093893286682946102605775102639561643001872132073756041459713920499285378811576449495034997995838654012558966804592203738956871992785112647227302820843730545743025748967124213729795926594868203429362654580633794709213400355266602530453921196615182752561829696348508381776236131536921205770700696185669891885577591273810349606979924398513548222321470745260859785457811347464852138293101995056404905892144887818935229781809855463468127354780175919514157066305828538391684005611022787651930481320900799857577001131191377101206147592255140285569597565927740360891064070832810218324250235758299047529021206553275157605417677432799516655992438956827026009365246006651677684155682466459395694076800458659437103075826322787654519516897427947836443213834320300212266303210461383542191472616016083155129928836077887292326330593843661567547752978001334121621476045778495934765188514538158226939048402223334575132939857937441918955243501596085039983214752507438889289086838783541232414861984193862235596314141635767375471392121404177843331711042361176761484518281834192399620051691289193239274448871699641095584318195749902876554830860060945483257420747731883118176031416418076596796612260327592156165893444703408564108260263587018316746920344538390243748045737661671011036935882795019431369323826958501192198049340889436532850955779736021311620406906237411644929161204475352381193126412371963614787391554731657202222865295417416650368540324155651117444092715030748770336479356133029851490747160892746302588608812677160412281301302697444069719143379585177009476336415240304864989121866121390303619444411354061878124352845775948883567331476001789855343076625130838207032524885316912605299806399030906011474441627048606758206981065243741815263353129006843292870329554815792801911252102582550307199654975701806296809355405553869673756729769448450833003978037104803313642045261606998414592431557771294024235767156544141075623008710716408073674783169559321470323216834561909878804488351984326239530866251963128056107748900325334663450866510111535663450599174979945120949518879907263045376157245012778663007463161604847878671971088155717415506665466938920063438782183144728442368423485203641556560078051224913420886108356427443843522398528286842507900428883706538497865586912342384401046128287728416398562792806252659304602186142265301525697392189086232967924901953676210005299224266561142801478535822251906110371374517850193364803747731025772809165292925611924895394580384381908356401376039512983003516464218677468463171173466342793825362516452739437669495287762466875179591070001406185888002671916762045877984545984300183649083187898853716460581718186524337974322843608704051387935805278453070295258591778947494237986774270225146858092961162624639051542876715590426468780853405535862838056183762487654310723918471092583516494838971702101773881860242074708427842918658645494648822616598030655310447046283787580358910444527284914070284261851855562782840041717489679427203299609466449873603563460928533131279984920789725157927904156742152498786345561806231863328210393084304094747151278437083143721854647048995067180560939294432106201103235717582060347516164251783706435774327279530828656700125878179205456627212487848097894907500022098511445042503324370690432526381512406365276955947303687515222093744999246139034586260308374207640728597341716651163891109535537977554409338723189280387232635096720314716294656785069585052123650443104511192754020363553828560609082881771594102164768542263052180583306374879244706517614810818530456348336040038643950185107348587851558335628647449035886616884511305687026119525855741399208909367318319483016078464725900607740509747936244231907043645813657638463601320198737494236180156594513389608836073418469869093308918936935042344809279289158566329830238893207312659941207476752610918240172524629705706737950086261665405129252958760563439208086390645572953035011957460038090821913235410978473687183837617997863170199532669973240582267270491548577491678755241515463850681157212027223465903997729241449783626051150223194496941644544591560801767242269138870355220792186176801030739332629893314066236012857186701142817584212417673463505470271850676820034976713901654119710613145879651534165031100791501334800514305838563692679479614820898533821364129717681884251907403532291904046002111758636813624842157598372402511404566981821263774765673217529418767968617537305541871229655049412725808601294791468292708643281931135392414251950596235141632710325645609100482488337528575240000308379260592307762306219081911148043892384833662602040807072947161694562760242386284200951092154497440942589517417342070890943465322300274771084985333045343439974845747960967945640300800780560528973946778408694876968134263864756235457230890518333017383588588805736752417544709504418111171788171794025508852657166041696335932406876314748139070152611951513503298234630187022006401763432762039536502978029231993584654802895022087476173472771271513530657223627751392212603761302873417664820986671465721201689371891216102003849993235798287781672974709967089142565404931912501028914205615332392040375724718475883470065981633365101965097874378955143859144056136543743524390186315144782582300055657494069119126490827633548317582793005369714372894837550171721518214126327220680177757887353293427217109244944232383147801472613295450583374133186631851538741189639049101052907019921828475558553024051672912525030303174888531320449448988867524747149500193281604487794858190779692868232018010480361175036818432491576736268434815344264573614078139302928824301538553942030997489969928209534312024549721338900000690670912477147146495845982236410229177280315027357955877377989168303691518630104160028103644399095653124610909034543938592494340650453632587800627834503311651313999922406370687076369216177083313210159862995718667119272147763977645814184317940742289900604401748647960303907629758521192776669156248531309060118185087829019243725952778284200372588263440047457962363719931462822168935992186536087909052837668689755837852027221125178483114705996034949287041492188068853332609470509732150679968461256402812073102793287941634758364070387358529729018733229251153597405131525982952194085368107208331478672583101217297280714458305152051195131041965079526277344554061697193718454640136643027902441498575291805074567039407340181095447849283012749889666445469914895335852122138444355653415471842027516934941798048859790427568283339755335994330520584696110517704398167686802200675362519763302219702170704375440996768463831150259664113534498456592302849514056087029313989537695700063454012396148572860351552077542956849433612359570242775687742044222425772873593048756023884229362067701362301204016897932236091910164323883280054664900809730119427993075363539008557184356047503265685600705829200576941692015538771138700553968649170529423868245479191843654614383561610621331362658336612473055001419812581787474107794421209635097391591519314007269901559333274522933251204053203544244133432300364057355132062157562207802313709920523333010502058893384943017646259111434669501486098838493222695348610943744069513406275603647893190565167523248754173805251837413918053260873120713049635978713794097754516042809902457003317546604738550394790708089749208289298646782067452179251693152413934836652442992085202449630894660047694031251323065310370122419004568105740489550904554251722423895725203487205848923922749936152845452305629150966085614911771624632173843097442672399596774458866400227788325354238171750279137681700068705274047884786405297148920559649064170008005925180574574021032446313042055093720207764575611279144928839928564275947306933092663428790006572604869686411545477416488723932206465841070663319187185530089779268072602996902111001871868753377923686534915796657515755990787420411969073316443081440883645188141387455214568751811305060454369662996615720288435152936153443483732692929064870920974025707107305949282282637193295433584207017611372758199653890510260334366285129753453588367910424386676888249494571031759509024433150285843359479870657924921695356654041960670781771260613622266107130071327863833194244422154442647953403091137150319391040800485020077571672247700129088829031149358705787963507502106912173547750828017343304275077790710713862126411163414921593960895221508788207622987199044498669579928206126477891618574155749113179896608982862300563860333928587227135241178924813908459751466032205452043936396312515039324295598304218060904662089350844458998703737868199791116793782396908764981749908784265026638454592865223134148515198829834977256954285996659094126439629101275930451508123476546836887854859080634317353923652805552663314060808710595523212711829032429139121961093555528901084656423661458924237428256620848938745060463165674915470632864850055805463785737606676293120377897513487246237207783373421403706244851514856375689813360544809632133453093807413987563090637908099930878443964555020608060896687926089196159032648001061363231225637704817780609024784034826415067799825265207967141972914053470420130185133364137980976906429123442605724423652625240583304202029197998316522743467793992384763096947108394307840625137286814275839991292859478772757301648514660570368948978341412168382882522394192829948120956072007463553601204788907755314082770851668311122639305570733756981093962030803305640668605234939126972542297423939786813410982846280774547041257013677153883404968045351774902207842456442831057786408580824098346503080794803012436215324806227923931124375407349218556468257849208121553757394774468348098421088495049149697406637189387757634404094524074918090188632551836980477637101158803565590392050102075769791309469908791615341540584534334143318408776947869492476468833960882091405606353988242774866888585703785599625761852341631562216026583730105700049541561478085734369524859015218146870221428061926005119161973343730653045994229124858844797829360903513570746445181090340593594633688645545805971884450575587647816471590783417709142515462406304696821987644012853273042029883469514183487113005948753815508870577015476010495739251368085784685764949445355849743103628943222607248554182209539231131749252276105824269478158374477098022791034930958604662391151148333091893136430908617584242684885686561632821647823878604226690340109841336688102674079808079227584493743426068791980604332561747886497143553479851100723041979212299400495317525309158866492851254595218915535472978659615953327300742998342778522559446810957458570276301558859409929177128729489786375395527092310298542941904669978584568970730363014654139625952022507073784095778065940898908204195566045618325661812492857007090926569660878684045326430076137072465952731338597553767178768797008340195220041202456469056328702813320697861357256742829626383613104167118523157554391375104909002356897383807339063824119454343092910521820635827930054203696723402769010205294698819980077654986661632401146714201085205879723527198163948641803761476088762078165954998740146108155823961664343662001919245107097022845141409981976339073669200991714997015231224578078211253423421021563650009452968560791785602439702231962754216817100770431152996103757749497247954788996762131730392752628813295908566277214597728666801876182667112161707144643475105742534433688089087451826199630552823102750091946336993100250604966973797506119787898753098552065288686624121155492035047588693474353832449961676672069361084699762808376391917559930778381684306578717449997723442819907458387256559889549997895184532251526221020108908223848834358679851921816869221153602450351537693146586642791186945762160780644707522276415116975237313002320951362919811231207374514109865689087671709061404353487831918061259424621302934668246393958347861531311500823228704006693741760959030624413379034399700572315413351142864699637186895259572312499143585137882352446823408105095460753866377246434552906079479662737968886250268535707519940960882355627815345328887208784367810765514015060853842068491164814059070819169253769057004952694659823868295917461133629312656140507603241627758479475323871245779109022619977846595272437129090136552675480191821720923341214284056739902186499972155646932765825857789834653300896122780065653977704704917448085536406725191441453417274902011366195796214529415678406717886666567695607538974139635019833401398556697855740834607707963000525716555183881241082305279844299480406959754209627549967165719033974045710683240428901968760040102718657493347364980701505089575344937829380177894822031014247599684814341818662137871999906058522738353758628921639841708688559680479123603651174738655171561869384412572886106014190632381206028801614853775031784465895324398358742172425760172780577569648220683816759366288257923442220107084744891593041414528789976351299402026559606699371078594286255784986225631700750533232561711311619281337068696190038278009112518053176558368283895513927818100841738590106060243749443475830570488309127944210989646202981859996063851188088068741687903701559789170684031961391587167553405385712676741551140218661068786081342334705473957548616373572826271768758197085786707272878449315091143637538879571381343879587386326692551373407810803722632720485315792158159401386409174679511221037146257036772120002142690314378175606841866983614755728737413763824040500109742979102274528598795611727014325685047017424098647436324901753858867467109991145606367111275866328276650193738177304131075116495083153229056068134930988363080239056840726613083255464009453599181647212941306372964888323062709456756266936808699900325111544136177961441767664861343613167524810800902868166844570553455284891209263676291354359975022100396968856099832562701518782210064708279706239037185326299967514609026476733784993313495857773321670649831128344335649377879505145307826819072311034179151258823533056666051938833277505262071702439977814927661819201226705365833071550439249442398527025408496481244427112396987560160825722705975198908068470651187091102192281966820272423652711303332311635910622203014462007341984358587042803030851390932131789939826575986767758580949762805068892222487241889798623917314673836487720253221927516917645753462366996558157381618805819814036706882645130139133281648431186690215752128437061201754889257934626289384971407317644937478885444478646606916984649364468838854962658443443877106002609733324112434121323811500644096058330965617276599481812249756635251433576377837635365707284149543192721873509883340530847218723980990419727938819601743809209441815634301753475489559712590766999052523733976366549507686530346450640441858611073474494861183427977795920158883100388131861257946721513454666744308287043915327387585236610236641383026358227354713320827564820507192258415183557511796308864461731239779325728858146452196172664986922957870856939900147847530293318737143043356968983796991200086236103783108497594769272621211406743664464881202315829433972649188496460764821012015574451055046802998198620297945333881677038721424826617975077038251045652008777139346533315883167344511916416350546572504589180525167127043083202798402578467588452401798010186618431365537633673679580021609957139219380435707761604811423121042283149835279678090893823795497235342091706544397384696733273971610897166199857812320086372480032009216466616020180868115951279139873797432749711011842889101441999924178998572420532263229252811323150540226861629928974355696383939424538506343669772470474663078311204029564003125839880273595731379067195590863182552739287500609704135660940978606082008048502254898550395087825178846074679828021974577771241544519692914461990388185735910447009854357362144140950288877523506191595156845925466248211364737995043563040705466773250948709123748819266465732313868326666598393123462786225640733246877033226400261702102636290085403960850575546027624072828777394196718187606616328416001522051124272734304759841684450357010758700565132527051423729607715038541225378332150328133910830725425528323366124975693388215296185600036235570888575305158385394785214990208607963206210092253364699811037056414264486361827653891147502946957290112625058597669369828445673308029473449622682090993398211926116802545831790721454617962636255096665031581341892281328671275803474430170529126763874692541441701834709279995786778025731784841776931757756879835732675699118404650540594956614555465135827977201692116319487478871977322140863444309769708503010914514683308889994458429680597657451917137474435603730988784245375609437247436094163409530070295395522132542898287909073034010054917190710883959767734583129710484802711008590844771097537723406979195658351593569547788236745669344529183407153507755955195890038850921468105849742840210270412513202440577155923500401428292069140039264989236758673994131515000322566917374431886735678393105772403492414167187946409890387369979864024011673218586869418489087631976212875178950729294443272200631552289852780985788243902621891820401257062258964769932786718873862173451653152343340876680848291253955411295308420604551163892620817221071751242331420859262936702803432231423094021576774882507148491766169611413152603168569739422130767199675307759154782683638372725431491410792192307942691074746284808906048112377894013566475016552115954835879475818849957140900290380613497790125363548696471178817248858951566400830799282737111988604311196158064230273047818669450023410707074808371298785825869703606593191524018884385202196280385169132883392110964526716399692876627863404431625343192836284336290457511277391092714450729397818054805912759556682228268358487561465373498468237499628852823002175174373232738236853429767103657570203261128745093330799531865874824144631435699734316573734588828841334077134861032333094902262792765044629786891073881631221872708644598148184003484711156971213051251090892127627976500303391991350346333753459458175584303941339014432271649525802366259135078155737077907334287315743708860880221520453150021313110772935081865997050387327418312489025119793455844879322336106552180444056351553650957347734714264239100161493643841256385220635821361166314404948528816155254021428037870850859542096187710927057321223181113581342895509412096055306256333823896493309774258685942925913925847332742065363837072917189719608996564083103953137839261304700250185972566114045097861714829593041948160745997064001002518523552048853799862651766839913380694837583660997356097922763341744490608484853769564904687047089997674958307882505033673534813214462005355194068075940905153368660543657312180858851544554973760547687472482690165080718126637473038606149578458193669817695063149066027780829105092284169609010845038336506049265232422181698581082666170254279744840016491081430613858444746896995867362471046772585672245091260790135208706307664647921964406170144867894986198082526721753458999980732560330453765336944156051821136883940889945782604586110421172417855612346638470937959896982889552128379333017696707463316305037462203083884843732453624302896602742287187192706116066225620452369048697521262111712725972328539510280767135329090853299769200058042375374968460544696967059240405800814272457479040240156722925356840174714567241437354162237879485766619850722157584160923198988336755142824610560483983252317902121066736319784166210831288732863783424553777386071897367467566352630873615315427404608054783255164115277593145841182414408301806997873986575849366712963871909055425075335264612074215692872239189316932510047786015870398369246512103455088149730449150633850997661540117485801650327323889493197724449270645164375893041989878871682548363461774963883031426762857619686042314575886087651719282214075177411057631145404879001066664986957127218812494922961599897983587419424855537594727796057138386492835235775879072527616013515328572658063251503626837265973231962990202373061229387899797162414807456711732008802846950906018802116581582354035648445195791241171528430997803283872505372395065306000035996041027214911382116914243592522275687307492854724777245583614719478001078441264252137643356562428736331432269287867196132367983615836869454842516195151990239140016519600290672786683737293542526849482796149340530339856426377943030966854110794981856817848686945783714856072577493734651469444135465696335380206961098827460855582446490646364338991532353077526247348429680834313379387217463395868939064989993202160552838666384603264019163088080262306156751780702988064433687596982001118615757782358857134751289868587139490103508168824317073741796951690379229955247475710289681759881718823359215894756640643907203489878406284534932896194848500983415140640869814045103848978246943285483367120052317394079556695798330507274927594185706373863370817098030691928273287209982757600607890757336882643673278975325408392743123119811289562254397039548034206192614057121894078850154717801710557814185445398244205162113302837416768604467342111576451540825536209925799452960718495765824802971773370419898020560559339485045877427857810086685117064121381447136125471526009817771701635672640890862283496981946902371850486155370287419192559068845343743872760822745570237268249863262007478340628068394948445056370530295913458510101781484813331305947632220158380414651809815038094418513539579509110475507654590394567375875149842295537449922496165486641860032210441058586985779327197136758321833378174865877450124694745873295707144236330948748300363001382818039302681620841882856563564528537127218427634634724241634927425158894080301773633649023082729654432457477276349670649007026682511745432304814927817119740689108267288310896325409038697726827906147991347936554500980308118005696610929057444767817894969057510313988150999500185884735858617806208022335076567375541063969513860970942527851342046844969512094323780178800283151694116697470503136407674406914575842929929464718650519198341568446030030487036695347536885180399649275277534732936848286305313240045549436688429317058711806994105117330228357437306058708607296716941158261798065326626028463797573230198390113920273524126231439216789227188278906894267219175607535959227348302385505885578015055412388248273409470983396867099022890593776380666322360348387119220256767985799891745731220994829394780076084360172075734020148496075888189319000354812569490362571714719761753145544808756165343003722945027071662262216489285466028633488295333775876766043695363255254649734012746842904678656999429420885570416510717649911038297794440531032132886082172706536890380637679535243704887031838531499812088966624940678631429579385731471010880579284635974681045341319510587911977835019744568574497586332427238980772635820072501779809312971951882583254444119750835153161558767113925623288526012326489561400185671406976932480395114436634104815056213297075766335738972361334910254391077051758120481573597608542791885526170340738262580521086599891147848948369706126537326015484986175757201636892768749819246539305572913713702205553694771751813402158556422059275719702706160519041112487082816597702983637935081115067864545309586821145409241345809577557784028327981420596098006559652771848804320326378988672178883034642720433516680399985392656951354283893274087786472488718519211241427613532725645581192058428696011991314229464063721492839850281816081200721486740251346415431093762684116633776735008432485463145417456134588663203260053270331121460388751237451083981591405542382677519110929954022018068437793481744547829050655727920289387302383400144965541401430164516723243491163218263087417499687451287017569396906862935636498220986289213151853535251639835587616812662056972100110160376314918842135636579988862906965387168608868911516458390576219323659530095001724541596352086886461562982663418443425168620399378530588158000609004428258145382966104275767278433799139846687963620680731127432350227186252668692226268406740518085301374026516023961343377988797890994141250788841088081214723341439700790614169482717007570873260804596937280114805338405317170164216392499176304019169288745937115652759861777264620170336495636443170315512734719344236643816467651618988833345245727279445305532329956000061787207770136948833525061227100037864854690534246936346697304547904401671704508311341801754546662541075619884489766680789720602473095646344898413431584342885214241215127761723203710521599987762585558933698424483577305746907832074530060869753406905458437248884636905328345575756007741128844907616278786187377486625717437863351566707872843256297544186817630315517325892258120527427858164685702692850915954614151756435407642435712645678804532053106184927505243770334765901931883690331685561090435897948017942930436944281673968237905450970658728785344203168354150169826077081002416979797808468128991070714688760858684850044128108437267980450399171214391970732567798525354831943389829204021650081929941405462000803059486506454730761671066416084200478937680435289155054973324979406368547968419776871786957299427523340149009692630280058850691739051873113698953766390917678256460090212603657289268737384327838060345874499547166139991864034412434279135215588276408501883417971763312304925832038393384082502807774148226178477703703950067072322653151373492633473324891099784101000580020388012025160039247210389055730392091024037047263469804848328586887786073405463210164575831389078736878717052641112211125022599101114049604267053043424024771434404112773534730884600082294280572619024138434582844919922500326784914712623434742193664587507184256494229761583163422883287226188752604983383795386941525921692784879077883793781227693072690308074897665544668776346782334824861679120844774508904278233104335808143222633932504692364632981402489921998594741345788621586070097171467406934971080098289394795286259201825232765522974907482520260371937183909988011481206601846264189397490146217460917496299883308781515732684107326535488130778622490131803873766846395416302816710088915531241013025557494374845987643096277862721891952995778909365321660115926742820525144568604402545873735998577778709895898878655254476132296711808830098415248921639015049768226078361504711342144675783111505007714559820474862460727474073878311156625503496603778924335638186422975419576549469881134587143526474508049605904890710746077669205308577819760831985340374848627887921205810332082085340962487441910503863541656646355362373245219718524615671962532781954075024419375220019497240957658564992318116747496960051448141544142535110538723372341694261897244133374337242275238910572456972001851904798553086458478541825599489813125739970744242091350021125670002729011864270469668832308341432696770039048597520809602296969762114455624455705087395974769452267781569700770596519344723911036814162113749323435300380622771713710578216552699020992812346696908452327967832125621071593563836563018672845196296656360706013687631112253711203187401422288874893614502681238160842121430852411255213971118355924273761808003651287030766631579648277155840012390675693684688115392075560824244876412336157981758783939747036400846234628830439379605729620908293548212803800394655339649887915482093965460306911821014209127847920953549263666863603682511027940668565859377847849433592814539795370386859267284732819590131571507659726031300019679169179772352820619195519136751572174804972227625995096468211184308912509337132445960818031010992474424813296528938118850220120069613798288985849520492952153348580547717652007546668052853130907870356456765840978169536956309939918122626417862249742802912804819001893913088742461533687875837253571190046137993350146093073994638050775850616366699594500970920969783065012629440004154238015011707474034929390177042365150862292995873049215416377887721952267684956852789766586710650507999631282625564346551629430949093696340872674971450225228461160142385179495371982559170592627776289172273899720710410512612169506585569504054462274130598734957916903831544880351981276323679054020821294851763184606258548040483225305373527750704161980571011367972631234278714313940842929330896038700981592162418610047422024464107558066483698409208640600320604643807974941780954984084486708384826863184250010725222773283885845456577270841867959941439261311079589961665863005488539205812465136983382527048292737911410022433563326455856247219069213935174243752075280753148338601139187928751396390733713195134048443401595197017135081557974138099386030810014577976267504715521704875839065070279374530052822697139456116212752891777548827479265203693071853242227727482962376381343701565133008622686096865456693069027517013647822503774982664994002301069987603611387686666237119381182209348480640208945100110635936127630430228005357148347024951763824044214669457854358617487987132629334262895344365275536745957021448746242674649852881776219891740737785096230478600913926602928919021321168701228539060481735568997268258348631675643862478512486617180905321706928763792573466441837351070821926303080771444173979163912628301620415193347704295088265416602677776192842424532321026654156894327859826273764645902405300916055628980456252941735658594028452856670087698206369749682642832784621940315634159324799409308354493732768016105760302825123182819250735543724064271633887460560638848618628290187952597189284897418032068695501263732319440049084710713316507465888550397414883166013249317036451270668110341715039270023022254608905846150862645616901429956635769627274446765484320471586335984495457802692903805731553112284958116833130427957684730171586950717991707603316732503185571441087420998542291274776121698084400023286431553413965331397631969477526126801050489505830693694806679798502310273751639223350318969721737162186356580137979057236603787547275184074183239695532886964846624831767837475739898611350876945718476640191255997715211841590852407454734799569607003549144429351004915481327033797745319107433064759669390975458267904290439055495224158270281341065740483943937108858172754699307834748408938686245238992173099775747469536812724164527165079854527462740652529821510785024504524864614167143931880415355476013625096919131772627206173037230482305762482272217673656401160984382389185540433324367558799199535833614680285335457043025135539272927785041579804784558266466763769461223734067838990664287070244248867511783790897482360359413510861018130343848717493669781792517183758382918150896029000842731334621993881046476393184860043633697220222584084893038231388405583611366214653179296260056737798229436300479285559267315032274107280876053207597622728108893449367222587800034135905944773847967143646682151224630290064248941031060611570657541644650137497948942179334413820454931421444441689009081957394568747287771854981216498356952758808874519029862033370518527821420837051987709010995281017137856987737975452321646418779234470301575803423145963542679038582501473322429581313180533169659472170473726172949901792138004138288119574593481766672536923111001623972512706112736839882506663830290085503053814840420059920133775751568997760643349947299213868025260007602266147623887119365287696338679878010126522843470866290688225934096956678007938299318208536922884240896211769297850148305145676838615904155667339697148730580003484653900214887574338617927010862350038573489938895276670556612777450251623334186618870265691654848156871196655839585880407269513242333078639704794388247248067722481384763232783848170875661981881452606147873271603161328565641467472534760778436348660575160472023082695954106286140763953116030061372996918778138511273729616876151323617347810450986710524850967208526591553446001263172356798706585506881099703865310093344043317628603034167176360964295802126508730360300302224698115690929468229093285794482298391954612622425065895056039497351291837459644956921613201835338929039263501381688862894186177876162640597888769478358016661039920592013248361550493520362043345077515480467999533377944741572953488881449197390046570266959884626319111992189827981510944451093819418832738560272770774241176331690812962020190259743642004699498280797393922534291370266117871169047018608875217660684386411186400331279280344790398034351192853686082167321310182700770702764023852614438508885350378293225567196154195155121220514005303928381390154675347430080376123091188590543129217890993848882650689873105057505211352642570337452785946204838718526786740058151291346554500582970368628622660449065162557121142244563432642705875283355713246752297776427727453815935890865800778676951545840410631531774997950211436806950553230106922508021644245074492332015077449210258410803538447467435016457782618139066640389889110985273151942800345096836547490820438223508951322492477232039990594711892547074299863990889942868628209781620898371602554940623599095788592251779435198132793074414412115632893624862730711803664990765028262971853099207543563503725617070584481625871249544963432842497437537826298043850031691437019259164413882485158794764271779598420165937565182441391114171021414215060876513450514293787215411684268379208309163971486073620564750037856302162193760150147416913785772212483448299142996177400935160021483248925911689481127361965561769322588927493098731780716481592298418715325507613163085856892395894612810493767998213420233526349509281125624214158245408972992903082365568964372469096651609454922078069108037350757716571532630759519718572018643417096936833152108794832737324615807196989119327635163640285979179345241194873707621802599929536704785213396243099999663011467321194933437875528809754634016403017964713978294348560799734316565170660641865872715144675222795304075045417204489596031430671217956603966906464507471695854018508099669658585759430866473520413394042306615445130654812176042119805250022818375849868201494925157486176783364838961299573696694776617947854070191995720869952073348382732592013543723700361774124327895497552234690761668828292114696386528182050835081318584340528607275029373743318916097965769147590383698922977997753609929521543986854952259367760969081478487092950373255930417216406365392379228526595472307607035622777593860196235758674803059036400851768248855768192839241854498440086065317360184776245774885791236998891741356143675510712093779998422778940954023577188348417048851642893799504508022700147465731414819965745563943813641686580440635700055528806158166006126301412112387787354786345852756588389510865497521857839948207904610530573671017440784718021008304542007008244572774337216765937269803947977071321633675567076258670537495441868863512478490386432785258061682840652753904453863880095726402324653581783029293855408359454409034604446894971925790116364783991410157487306117743641655839548551147989989215194464379094962911796032537687010320116374729641742369434245697645957556063673688692319585289373512451195210803543796253785422022447670748769118596585884271502163546515874342495516542874391071089574367650293815351084263781634577065522108510740204596784669071635737970940974714424712793403562048757474930535245076021763194290000232966302387491247628076060826813165456668300904546165435216667117640540419903749053083538728163494609041919359081284242750309799085731428884167861508415684332435772217019611741289191848463095902894952994162586792946616433265321770631970137828687991514077019845556128910007829690248413781011904645418025429408260378553319534092146071365374725980394339175671238277089828882780717342596554452623325763276128411380028083846537152845123963025671250136232374982675725641705165727976060556354180510723627412168523964412855693685047314963085769135548117070710466877419047797907571986392545412876230356499781044877159481181138488508269510230532192168702218541375093088375507661715365174689730528641471573134519666559410094028377057705905274175685131206692001179744037939293126754341279264170779994178576726947430152017619221222143842932996604942855543992266446394173402243409467652941430233793967190226352008983255994747445673149508090886744969320037359025338396178936290536644709341588118037314354546278175420976001814161226079164078409959708398143856395859944906213325757552515146509148574095332885707278752635691655988845147329485130107267200158262052374214748059297934166622122901095687776778824048077862989215684001330716595434517414032419227413901635820268621248529259691755075160465646977252200794145957621715372569982432994737995642120409417707138421476079161424324099209405260549735052711303843332462222059485126732720516259816608088865351074764681979190484516902578930402961829036190044104779266910196796711060693766147732540635274996762002718686696583674813654468368131523174837929211486729979184843968714617968598446009717227148652261937984013247601062077454424697798802361010760654099370863079510867668198884945232895896354560497163683586254363403269354593318719229978541943048341837196605546877862186155450773010767111523068713248040922087196527707949509393861376312604666936934608897412525643497780068667014222522640537539275643203819715601797438117244864981452534016566151501225184632633818900410413048629397936638572356738040448646165357709260424632462250436735286723876258069052935390257941341867969463640515232707051672400467531219672825020127148383749351451717579871913794096861384873558529983192092736560733859862426488529392915947699062408548769937456950231412909794775015576185835935592738424287807585743135688957303267793931072862260727521491775325950416583119900545740877193665080689847908287650576154877747012105060181165189623806183062432081764685443366444388741516365661686940401798220246586801167165927713667492044071980893964179321679212504021430284638225326565115988450673318012673975159963240579894494435422699709092688431224345185389599967528665875816718369655340599016134831912809578452193584461887457078711655467880435656734945016903170988046025732805304846197337955120214148428201283742860821854819550323094713188364023671638033224363449312740862799909795325540820215800153639059921672997679255972427761467722197161169603769132821624321377913033302179272983902733221119735787542144157323725910439365343659865595427371490895965058684716809774263052078533932502930511249531068898694360340614240410005212491500026583519494987524081164281422363429127720673877045800793257441862061628155899191066669775061381668569898329748867092759303398451101382537589733957878494281111080156639773885017000076742477941193674088154303207156476248627196179552175878099354070290928808825546772358033211548095090012851601360172883836525151491057915836699141987457349468196370054679557926882433035423852852026635854839647757171045697008904097606010560179744354996005650764623759144473778769613834899643786938353252616805250708097703517786422864295716793591612641309376235643948003697912634285585783714181525937183552169219187552646633857734561543301498996832358835098328201296055704302706780267732098598849120497804783920983196188180450117685419442026391048694565266403310071714475109918874894379101757898563502186720534599328595849113140478701212797451807939899287569523878900455478366173665133054093352335119909310764006832219015875744088887949143454282513288139743029415014857096432869443995841259925993602617537917470756022828646880035118771798365070010252389021473890611330969812190969865935063803967491537428920037801559086873007715293001691130962989734679167838096166780768429266923632346382201635124139164729735210469136041938927713269217326120954150762126568697176507223515380244670536372195344940915853041353913447106039973146187596318669982756487088200286258752244313134233689474229715162685424827434940723303393547908690349428764954119861659335951693129632010570056967211482768768943927493867950235149774264411241924919981991704558886110792194503655021843131112571299885418164275523871635514700939702408623110369213920610480449734245932608717282076226866787196013151908400303297362650548315753269952456740368713554474788862543031944381032332221952133860774561374128022270371312324314195293455888657944716932730350759718098338284500868870649316901986520034779245705859400983545569169952667897576774171080256725812642754706221991287688593413458841770395908287551681290549773321660941592094658859302141671354330972165691994528711707542115390243583316911833872884183573192525199424122800520983442569044663220434036421783320578187025122628405411328035800256158618737882539014637175716686948762617530643157034398031842945895769947496271584165548202258861687342054139291534353482104863255668626658576989287781937253926782522581174564474615957570385973306645675713251330840603696856205542726192920604235122737210318294579427106669389401478004151363876486957826706294536286017604095194360185179062615406660833330653088097159094600593459080592086610173841846268328267596201903701782350366065987661517833852633144510999452576405799314910661086392392389784076244685223905119608636175339073326452388528351659948412663152768350962353654121613338689108743244090561166647791012921985846629765276232699684940441242930012179561858436607488754463636317816608707596585673176184147007008439522410744322440861272262042687486978609578058202277447644027538424892010650876868317873498393680369904850481360022383032032610073525133535172276784959176119826421432357230193441057046396871253188891666139287105594663292188200015904646625783765974309877027505440371833903563069636191012238116513882619125081139860332127355952544675559787232841770785176744486151376088937161372007946651071263810214320331836190764103945634077739737061297836238562693356180721852794017663568274400575705906284415635387809775118003428623597996249468886635115284520278508838384561639205464981289241774048676395602915855667499727378120110760669863952931074454776257042958872534772118499302604090642912619286884640336944513510010681005102762868096264285883555982916084007260521836732244953638740087282518437587446349955995377137965363899239928558916139000955124259096025202869729790254819604719941329295249461123099815280758913402073634990555477126386533207323358608813080865060298551064221016080664504559725318425730407174634916928504943782609230832501258311573738538004866246216847433330950089637148818639139935274479849160120664250666764434827448931584020812208822010264427600220678250124692093212245764530740416892404923344830363588351070169243975233468666463717363472886103325400934377985559279754830527778735590657446926075778778315411482776118479583814025841258783458729232069530329182252198499531897743805704565699728002117073411840847199132322624829378897618516426246386897179250768664534324282048948156809668322006248381704825383461154551913570956556282524221729712888646684236566824020785616527324685907546086092609862658487066263273811495927827714646312076538654882974827739814357762821468164768611478634348825742973330316441527157936963940512036117865891111124466681440038226739548607537437902414948135714015658206851343645391550329346505073543564540698352273314218174451791839087685676856916988344219106339594784897968609911676294841617797407551687536579533650337077186839137966194665941205213113332488034510631611183294859449521448251288967245603026373556165752109812453292793830766330739109138005541551860572115721310111266278358555746202238226653915440728724818189011054773418090281534570759859557752759910382987681566804865445533973255085742337611167892441018358937524383564436733812310671538129618426315199447398456698597097321789448904724652689100717943628849423903366527518135042159274426776129027005365264286683121642459577906529244792972201657762086668269849421364594416812469203374840016006201966198131103310677409641637216509557097681464640362204086209126472959928673864954807660415326446744518294848549219130813972739429803275759311119180410824101644985904420817371904072007393407786269129948071745716731831584923050051127989238108839453986186656839875844951813826478980058934871752541168283858091046917406511793613524634915776611182002929660901641889523166591421657410136432960647218326383034317578666681294670499383995516367078393647045963426327840342896415286165780012946464377132002732153176420699779245558394723180561076510321997968280194297315421823711674510305451496585695212307560390070155859307606343986515632631370273142071434053822174793678916647280531325802926816574901159952548759701324066705757266659988146186616200919144690866521052461928420253680169257591189359425349220585392543320703970656140541498624396119106209570774653554075561905121205730541219346494713023816388152821694472401979381771472260561109795467986326760167345073917259559160035327672162350807439683201241317524858693686653621141513951014752609505803690520099557007409472079919247521579313305269670821707685537840126140145444288331609811050839542586493188253079066292987702886932284686640386512309027757933533943076713617981362649454131404882917241725070492063261141502644591022859880867561992155478765654310880962309767672195586423909448483354132061313885791960887640388070043118742253825654864201004391798197372110945322780163004098525858006452550227050241070686835098788102272350600517862999843954381700619976416884207564050026868121536511244002595135505329642067455478391496003593583297631716686618446384229436833392968215879446035928226986513555242596122942716939023420549627265528915699613975796287482869241014447699738610626182968498641799840768995088971456666417976867686949437733545850149078535183736174313252853300850730230663605104955461471324012313457903777795834735073248253630789915871970048703102673151735429501515007509423565009749404869265146057927391538831174187754270439117793451059026736774970008316813569242392648833189460422408252340772357577112895006536524376690700315822071149885265644647230551619728495278190374800767042055510897481010158408828258103653994188001760314462569577938363328828785552575295317053031910131542301983686060952369756925513184391715862257707251166531268396692261739591893984862605786195967802536138719249806163190479447733533062389912166873218088310971969360273412683562503681754141653552480524993902735521769915193008358239615381503631767792776878688998908061862786318343478254857753933211586492952940591539408373210444093958506127480739472801290748284516209665720205687553695850711518974374400329515039245987968002144271289584812685790592625253336952184772727127424017294794997621981142186443251591746373653719696123560437188572403230239799144697289758923998022717161958284706238046786691789381381626248668698559572108996330454183639621204188310896494002359754709785314303345702852917730695570634153795656510113220676353661006070070766979610541066909682344458414920466869560193969513006066121087477651191197503138644585488810165333416772710643652813851443469302093011727108266955956241932279549389521427357205627811528998538678829367279891426005803305662907789039948505506867946931902929711430168267086032434555361421221352379897071427836107633680228396117202954312073381591621709177959230177850535420124474614129504633480689254984001038614544691783810384795363660932528284054543304414870111382674055031065899051263950545910965666057843646022672268459496754764661988421362678837616214271134276607053727656958855434454119934950126096590510451277065722793412375786036797339726324619872473091587939198007652123961079863428343375901800285487666483771076430712356468974815895579514589385380490752184148279785228868412199074734978070838758893311366911804654453764598004236296163408141478893239447383225023656095196887438879682585553681616591131440253002375801291010610223609142541611228762392217521350499860219588023875859605497294326778190416093172435952499979389669457594266026208297532711246217736108813097320738466548339824695630442050892182464024964808662268555258232842718588647379233837074210444475531644318626366530382521852635882516632750611300517791363608999181317020184232970734915298666819809409523012508340651280284803392213932568311081928857490862426637465410979282993647322398376717688572762093095322389697749565358094198810695771847415231367418069261900801210447045798558358742105077970175505832881582548374960205720369051686126429524389733782178027630125518895306272205036147006891406817515632460036344230031691483183112343568357919549524337965955998982833822918169528626760388948271313098177603840965699560160315274695449349091399086597606238810888538965089843820760442563352762748644410493139863490693683758836095192299394922911037500276226137988876475262544895054354215056088462095360015089245585786198723345520619582762978096131843740652155391321596597593266794744660558228016147705778424144321840009421438788491152176335668719365933001599775971830346070666527663652942828783510874392076357143652443161481381902668324827867653392927821782639381077757516220393007477108994830416215897404627413269605229190254676623083981643163660439698587599426290351860575297665458759364087835605689330783339755543287877267018334588543119864704541213167395625400652286537245469551536432635500114762023328600137123144899040007525198226649608167590454176161527415742263000046498766140507633315963521248570714748985876680897142637408828329040396959441097076473325397343819815515677482748585567502758336712607714312070500105650000025499098228634842153976686423773428664724557519118162692449940036474671334641791191204450605292884383515195723809674224794631299639973527050346180170268572200664232102703967600139771361600678575691280812449313497900798172922817076667481150913516702902889270267322073983278737541711516232614033531107113736910531794330780711129316981044135829810144277550501601119343530694819521492617924980392078562078153820582069675471428824081775052756191739382436639357586900005390631521349197974751681658781672900067208562626658641131359187781900684516082306233145202918070720876175382047312564867071957158374684510352068004497699762784980324226260292328070652966388352929793094747348821620610582265701982662299618183961266702813192609997549390782342454712720155431775880315030685183662730242567992785445155264236596870065402389850981329027369673598427315703546053245501248580887995983501395104597995186011948397337780845573911145351482860257015951282321557464734823899132124817179694556169804803720758820923872839100771839303363180008763979371571684124504221132573225899239956422267826047338942373613905538151203979754610972273576518806370592160063240618715430932688775025920119549446587538655128451760527030609543368029233762256854965007882268459785225802271483370146016584880486800332473118382130055801024617073719529782050970079637064269755763851059355679699120346179720194897102895481274173096918175757894453597153462216948868443305133872952061057866593241853772194972495846630973655860157415948827188257415600737563696296463877464951322407512170693813970729793319784009524826978898671316312397469546002764723341563717130918942094438913830216514874092342487106518048556297041645009672875824862230720157505467360990758820551413457811651051566496781453591709372191043063497198730244224424750531363179626293680806852316674654353006752842625823846458494346567738772655155753768890080199335154423662511060049266305119643635820364101660559718899423064732276895906592300605624099729268922336878449016650308159177666799138133362968096844268605153126696043893238825141167041524567231199363761143674036288261957776795940441693351079612141446787675133551627470649505130238542544546159548133424447267055116153128149263091406248036356091260424740709998208585582045524449009836699249848690339240358382878282468311144822912129919404369631448548650874633476497195784324927575839741367893878272343104782370903437608864322458863198275316376990395081382229671430165860098482152651754241889968211003374463894463512597753318351000735137250012405976529214877305200105974788400814607688219817990888759595088522697223569182532861589846847748624263061509626235766108387435689595241661148389702296635929385606840339862756465659599642101529966316717651429662907112794985946865998930154990550482241977099364234709361317722522412956314971497410275942215420396225590706025712497256383708156320038957002468487409910768109108301101013762138098123652672872740951900353085596885859151454459146790849718895572692033599890749098140029810695931529386649953594218239895485548082621155192260532262736490745963957719825649730917132157545614217904184926449373237737850417197699360953548831874777960062023621509525036989415788153689829106348718214691729428980233090953051375793657142461820316503321215975943693845220928572212173618540462468001983400471562476201666844646073718527988881268251612955690829779715619918851004294483275009159407542631542260706770415572178193721322091393596061097538095136764403446876344701176287802909712538143713060007812631481809555215400030055408654028271876230401092611882126515797885846685876502332875082957483017089476829949630315810937918834785510739126439013946525760194157366682757905608809108473732771743039058922249867181714565567923223405529608415900953754329837439056820279810372723653484129506691805754876582162046929953976255252324290634368291902833677553338672749111475925872472570481460103547112324683667630867757559750283817063163393671165348584082142268210666111497986584637477543159913381636633149141976385327988774007501393059676988302443262968117192605244682924503434107376512156908097496579045132006090449683565018371396399567649545161435134916385836539105316872450655520607701977635464070641021844761125648410184122230265582146923818092777293960688282920186460958960968015012883927686050732267896641105888937161186316572683984273473091224230164415681232751684760191202539758698158544993422449353471243655753382271787876951393080476794815974621739690537400209247150681634772042361027326371335015889221079580623423691892436198224987903499210327907128315243108524122387538850515771784497734730755513674808843663736725440110359455556092979336367984625075864497918009658964477287233495098946027947132832366128627061315617913218289033538606566029610308170918787545813950653918803230557758891337842342925153840389132789113528240823741613192610803369916383157730085927642112127408613035062152525532588242662959936116453933346850024398056887127846923212174508616694805087881698840854725387699660926674680582378828574761055516348824046454541127262288324396571887762074951002565324629088625599852066959818310717779828882178065551786424437187818295164859403140950351646643505557037449080643260556365540261368146245037655935910473628569628627046609607408041779277553308332985935564239947115711667926461057252935535796000609943256120330413833263994921619942381400804800424584514584010051121157911212673155731024450759971283924003756485719828403591280754196828555119874491857789045612533489972582145464463818412847191223824709982573581766835703517957096414958936141177885434753937008159463302630010209817543476338193610713497207810226348825133476869350358822390070084297917444652571311499327570769411489925002647246028614815317059133216139330500908270502734181960607455183824989867755710124789477073953094363253638652729856832270896445624988942466086601278148516587831194637452581507146546719736056823511041307104547197635896266118719780984994622408848012570789646709425580143944867556579647516897515830456942720988467650438257729028771342010327039326947938524764414724279449526450700405991173044196624429437232968151275270732494090744259389576114923178509828741117723205448110429910104732326804977932763451898234839221907575753771446164527809619497970613222583954032530854859610478652755534907953400620390640211126303084145340366389392831182686536840082123079096574719413749812424045922397431796703586610599086405893380227868423477031728219984884961409783524886716844517228510858679761393920712398839514374757046153218978048604548855411278540204241182712549559347083692652304846499902500216523951814527179898475762281050854269927864489824247944021466636380917760438649613420868276670240765066176271849534419549916380187896556731637624182928923882592306719614888610899371338549555651783200750497650266212103531422143620937168480520245533774341626802277780980472299020125685640268687309804526339872671002359505828203343921827890003600521644260541962169124052354963365668610516974977090872507406817835966063807519994715475379025618107570698508933643099479534122946896765361700983827075362756751346767401545608502185612329455025747006869496583835396585609680858280926081250056651732286326480500048409185174555870220281608235751124345852495103312808860526256564712185146996741440199987248463986284451380412909712034712955676372659443229746366328707659426483914281641406020065819662717737913846309383928044022696385703743330772334154848801937513432331197373990370024351344060652808134028554310489065836912406575809485197145556731936921488656654576536317074951829078021820538011329275252249012074165782277854247310222741234231479272152325091397567657078881517526200508102017747084430041817605309649642924175910695253012495640891694649794256046881419783998492867320281126391122353206384303538776789597032653890597659242534318787052172817912885492367212272540306509099566708937616090676988514028021633291720344784262356239548678559988588898029246845084125044030408838672534940248557370025230619446757751837525737745537344808907480476343063202546956557892800685010340873878097398270876777488128102442372653745900697929537578285271110635837869793333206922110812744932135368088104519299501272131146300147881630887756086472866729925970128423693475541434722384339044117042117347793388062392091685997832656952226579024738954782085560895357271535699339922628903909984986094979306430874456207346350394537171895589661996082349566240964118938658004653363731232845714884156407828736164776613750153906470258955953690191893622578235825086064197578432913059013169627175446146631537229785910307677145235969197480040447825473434068771533405733934301742555930126144726776120421782770591570452839976259301325942945949602618269959446724830303502756275655216429060002094254824209531758874500267637288895223818307799991565991031829344843981535001175340313606918581949300905039985898340661926160606609586611472352115756543664955421896497657605023127663891861947680101760929646347525822398834205844381190316965806381949666775344301453775547127597824801874547656553900774331091376015585556216015517263303049530802782526051488304813197355084488227737607386344902493498384216080919898063045341829924580814040378535695553754189664896731786641782141493726379454346492390493287762161213648198785233619137208944344335965774551777379918857660910275404510646831309847546393634194421358739930648384151523300416999081290161977951500350218937155631585061840798124275495268064579700760388088120878003858069791191757261753994796705961815273659024904289834744534800330019016592757522203928682638667033658621172949906786840188671792568762646370066177552630260353156267479179736145949174432028599682971704226205105313416575947044318142474901969121440799133584322244911441108164426865226979492046975027906327646727898335199096204142683933622702884106674292306052264996168706923993849127983715456929230596189036175242409008844955986053498602464338065783741563336277676368507718558441559953226487253584156715498212578190540490155324551892633987299983892104210569652248510374830865380951728925803686236169090462375540121633849404389662944626295404057232685672640532891856589641562713178297427808998147080790723285912126396856427850973056499327390889368158779499562273216942791881606111005408856221106988058375517632291767327705500034503280887850236017518459649955548719175296762991203856992807794770165476218153156610147421233880553364628711434640318974207276529734723546912108266603211896060751160518828805411386721523546775869385320545085791196146509156706320841231905739147668450394826751140892097211144769258012539240395972458722911730822494852016815295265509590982157584359598233267780059969157931692126041103164439073233810544411928622795197087227278709706857521273713553531784383276039609529473473163074293117855449733139269579590000811872787037944441192341455389081971519713009258390342883858822980453774646454861408090829434619982442396005013421504652040442303361246154104873050931827047748387540312400807180779426294794667456107706457332880802396597958022887732712458693664569487141429824694394263730322562287939373336872822225881755430610702705906550943173582131182116547039043098898830442904398037951252444069229375701129715751370456882574712918474703002159237290745714623775393633123116521804138473390443443496498158687955061665385122604284442771012918306811729534998179318514174415634553133385654009159000994308295362782635831763246790473512063173772081019194780384336524039464072813141211897084815188538639791252789193690351465639269488396880736486812281186319704451312387969861971398438976612998650088280561712293364430343150199260555060821398770558613864102268773332768817232649210715944392963667612844990161399756813803027383832759841733163620216134278457865163314497904458932673727166873558336890035023151988400636974498065383538804640792770861929216620010141661832930348664072505345182394629509359567779366822386760681379626890611678479836682644212196247635259936703362823569350672774945615801005383667309880804029622816153228588578843304773977021515897890973450134523525718657836945710714415162206766092800041758088135841769729680336702478668684319482752203253434081298215021515247527953270639853013044815324404046416752255151817686902336845317785551035439161176822474189154447482979830860611087615911304382627349821166639410959199909793821933986239501991990539667432689920408351664095946253219113087112294508938340892078958366737330899035534417795668676612199361578854073261416372660718042437210875771779640491526360333039205278198622678207838283105366230962571997427345309206062062129342332470867286169328371143286505950463455967069912960076232090974333844996320664502220572895232478607613720656942065076588969436346800854960587674529162122953823450975438211970102190650453680343120374754776278256052022064459474085627503783801935851983729652472797553487755625092201443803325021053101178074207994823040242308208648242041988529777298869689412196490813329429295465551610461602192924230498520573306140066248353034474304533623506113511649337888246007010176245740303686239251984763077949802774156268988822911103932755121948105288330694425703636054729143264881942819081041339959036588493065763571437016416591130038168168118819155474031983563496212941137656009442359753048196980056911381526832619833153743909612537553792180554482195270595632534806898495057788847294038897509643191769920485244407743489286767794664020518285610419291043929081157106531675776554431230982083288943564641975466271739917783307102580686040287621231896019294300058662427339055373952054960390720937179704072208165751952081624708727228531064125017243046583198854243030187739157544098660519276534114512544689742110411365608639037342440439529948148284696293541417841232434578925923252096366664638667718454004359258638886882187965584911083527979771776136610776747341062083525385885581366851215257821961113832981433048051538672090461690613210102408612753629127260055044376687640962725614302957876034302430585405480226093519553814819220094454820978154387062856206307998003626756903676802936156338748702273800299591973734030392207582853245407564939642631782362730129631790085955220071861386351563599027195598008768099776154762190349010126336690746651639558460775610488664969921076531615245530089703803899514238578259591223596586984347874599681344035785606917038804561664967150145822682898592514085003328450820745711065438101922977515803482182261112345983673976030208260877455944406186760156436461025759556411230388703771134176799883777370228207489621105777903701662493670610952636089608937779564233023007099095123259467924266975017240554220230174389572855138019934849639569403460836443488534996474729754855080112053181890779625511116070768291343285372443349932467843039715975228284104765170647688789379812310936683256084763510432291911750913853347627878768709840007020216491590895111855258534896419194791131921720063335867819357624730434192009205437657298892574322643254992284956135442429439755450957643224871883087580843829448407286834662086478327137861029247146744227523211387446575288020920801587816409806091927678482279782694830338145513776212564212254750535611000040135546164763374603426814242407351151328871651689672526326135327427462014686897710825528773434820745294133230018000339917174004085755563343466697196802711450919788874427268002593129619155934869867225319508602057236898010297837607994102419498006976889774310791231360405815699498188699236373008177468374542170214696293910357214761138909072705160900122450162068656636915219440200000777191557655870020976409362199041925732304355790283067098577967356808190688834451686827244660135553798131242116365532621766243018693748793028322881647986114832924545982918105669777691727901865965188195880349017512126374871544265278890894512041949136115902539875824430914368478081117309022925432179390371051958123675901848694569418855231650971734765872586563746187831958367730454373829916626113652132774233324240285878139494188249032117187711149526013089676190316283540916026605048956724203939541147186267723140231773177227599319996901438194312849470753850591402250956970982153448455052625385432315740926559868184198504555334005980748853250200281722546521417934605354991995828818559649382278498617571420473974168233875042735969766453490360459209662284369183858655106289043326220300008479456837004115899642641122577461430680640830236625285728064773232681353454801300349308310491134950568404287969399262511533755090807099728312906235087678461028384767397725137655609848333895843819523558533865449906947672120139752162679975484658969612684078420988612207009288285082893579776443514680745834695111269989683777672513813915733913710274103280094526053055890312372098691259694656143823640162139208194159631689040343279329625534743656295997593715316680509716067994883704269593829378367269469244761007340961542407595773732253585576206718349191870380926639566404871846046168555617486884428939339688233773233912218640735315585212176837000254037981251577475354279928426476448002316230013111742935635508966517358362699935635099701616608178080786948632690146561811722444873091581190495622171206463317805786940908373963378932436310622160493217428016471216372875965402771013124975579896466193892698185446877265957035998618378515099945028923472431714170923575252540734506607489962263117781968045772953899158703428763639102757443376672769190157616714633196402264450355720586127679655505175303244720118099283956658449777499385500499801524231963090976372657421212005348547834511753014509036689763909750661594789549828713001607316139912205396035401596739380993241561016709969521814259742254050646161550318212530248876647269856470657448607691917613134713579173356963070593386762124106627225158574112391598677673047134570962872798362900911205902929447998652585377610493861623021988028677196614400978334328927028288696886777992941122827656643560236009988271624211269199240846957301826288240577886750912608221316505444551438590743524116708162864308305767730297462164148010966523231593365073601106011453807577450508809837294255274809297096253345596090079424745169001995796301914459885973608569950743636263221031381252941603142302717480115140592504054123695720276410082608043477140634878195154323980655603506740732115878724461480415285615543051245842222411464773458278743978726801005943776867750831496942168121465953602680348130541656637372493806584565038732953034763781364589195064183175857641695283656269594290680103771705162801903308770764480146341689636158741199677090076407522799426170279683972203783041193028293151970953757402498371272724565042605394912756100095755169806509371125101303616100404600757293702483253944116222829627648168763666304817920517293460715626523489024749394910352973698344776170108851860610814326465294116931516437261723919947447526996879623983035782503019924222510862836040726866795967859847804990315769853400479772363621671957627567552663270554853402496973640963324166166180738236458676719880434824285363869738501094948289383375448579793371825529605568456865073883370005864157717177815257975663762714660569336523767631773126411732342215548334220068756782763076965790836925928686138370132487919053885391838099000514735652140473175843555948411018901619963973945781104780982673006900939455753065413877022957026742094555457280988158200459876315900488552504617738195128534239235106632989905143255114936057710625473367175325277520420962979062264094599471166308204631792113876837444271639390726314210954410867790008453686095711893444603438318689308465503176268154320850849153214901225279817983492881832781604612533906051600836749643119875279971117510645053346536736235513805224306406911338078174830788188182618684811868345382693171330815987678937075574008400504362123509333996604367797661867917734100469716202804604267021346683919403946007166468103529890770938122512632920521414696726386561524628464985210152791314750845260129519949995878222638035271294805660042518696328067065967242810786071274198187925485217013496276233049106334191780055543296631772832535123566163800118904070681907454252161650875704290981202149614345131193266753802158198028047446664525747462212180062633941613700360664800785758041523254023422237028044027617362478099713043709170134717799415395303129793551686327196586902657361142609819961615980984157886553546252418752517235280200062892985405788557459951806268794136784844802151379154017651601614799522590810366896238160230108840921633822774454279492072179662328138244606279559504441106155299446555150510109960876063127567654665033422261571328272228968875013385649210382689292814661447372634040126207269162541471589856808278285864133337464894471005320334287129968157795967825304263419279716593696179373552599183011201755389808945405059291627841453723034705008003943963955627533855225122192238098512015698698982913351225593142610849319299224319426303215008503049545908734930474454049958828832255526409790869297281271202703006248649311660770094824626766823258372987748873530883971432087210651247144943456043599553044607193018406215510983898627550308853571315143861983457220375290572520557468536280473209015267549578308087958937362784942007261937314063097403220138317930302893272931618650649618859779373188224964184842131409732174223815977862505905764587592190321192563031032245968300745895228844144469924588300054960913142642600627902082763884261337526544684756280902738613610226934338572068554382591537307618261754332857387352536603278829883079017210809874828757396400341285631822455301393044680038151654231807754254337822032981440843404761744349658293488235790984639226079540868538819264417838893637437609646960989696805589322753260242445838592861321639136408437076244519526254525447197621344987750317479734320163396718313046407493345039088868992017431316224683737837715968850882810874688033079628658330892263298413099363761370654475452477272133451702607039320062418079551428311654054882007428317758631583877472284964389667532167543020336456451257813690664462088634803480377853632249059495790439639042473582410566816405414417674880630864230789304750869498004449125251272399222823478950912631469940441839759459336538735192553411241642512468056980585072004691212371845900199357936244041953929270608506089519742176735934670565430145617187335228903882744093417498676432034854522296108052793817444842055941807718741560065159909944726415250112805028118891264520916317460961236474135075641143570964860360035417737551708684109402059386609096303638965326427982401591546083971161796459179419390102593582280877513078785061756449869429793243520753746312312841894253368107939488757348757744519464152125818224444933009398654554463667150274003212643139913169274537611267125657064373547536818121380709503274753995729854815348363620295267003200303633067426255349039086637154884363271012125486231338125278573425515488933460546764242381061549993850624231513511329046676730258016065067385641230692687406539891788817360415561890535589787987089289117975722461853781491985731506091430942478772644621408379138234074174770700000243630693830503591704259007223580801540704577907313657143769926999521039922576504892369513000386976125225750531793443878545778634939073859503607944490596066261051228628980443710327386462865856756959279322538716289769918482094892321540323805779478261153988601871303799237597116826899201736706657255340936046244660867998537549347020874597271287671361683641511084276437515161182321277680217147293202533363566428754234917216713624341835181337158551056869175730242422394989625638270305156832688063280996318950760794690174322094587739448485819874246332826483861753505517409971061867461399059798848620155610892357919174563242662438106210105922808328055406441923822473092762211657045073033889016125875386382400110737196000842881692046595725130795391598197660861605276396363804729450450743719117231334611525547384483850530622524157133334876293029232267277629301862503784931543196090829756822829378374211177192129969913690359961231127534208422501573240210638886990747937668086897806043693823477124952099705097572697878305129902823741965978055230113955606342958337148121717599995398515449622322733746496027260112869698639464059024481653138982777233676321889663286510097281359649766170344827986229787446873878920640211884077455768514131526604293468990047662508442285158330078052625047728286444841875903155827695998999905586012443342309736049054138603648135077476776563083042243605136144174997254962284822226217624419996336152017529284810590293299237953705872139799950744865882210802294244637570176740666300692628580526358211305112191435686768897403476422853948123114144536102720238707229038712319304683137269312613924776168324287340688116621197303879858963996000137709388960512990650152946423749956642724861262745414762202264061349429331846740304641159979509309545290770588561233307313801649120721554977097817827942501781527259539256161132847197094478629180796422174214456782886678913768648036654868581028756659218825912617866159285422223567500558775057290245565315875599057188879603290299964939081213740625837936267747432921377764370420756686189623496285861692783555723035236996467585155498033413950700402905008048454024218577115838145882851584016557423354273727481525181214813202735141557346519806267978610050342355136931997938544230456425870554381706799227086332807862051110357324709687698442092515773281474852197114693063056594925959440649805945195911820414532676254967424246894456661720673568625183815291784492667378873817648149366575533896797550592803491407696325541864737198584177024196302199767688345028149736335891624831033788866565323743232433249109491494132320347900384257389636507701546940563798170726162281514222584569307468092630846260577562100873058491484456328436702798568527149845871374087305785697347121814480681959811647176835885220639221299485535153113561142306192085262806763592922446702681871451851594389647553373152154009170747251019082195262104790640852906960946309449428518469109541770314083981225669298551445075429843178909391091541238253793950116847724253679533748206605389011624065600391712457730952201309270551610654799961732737509990948504615462275257506119359493827973239298752780397317435346005733179541549715592759139521260114749786382251829344115490573775770250697284088082721137522441215001435879823997782285758449467704009490949799814495736732081190309863588019973157622385161709550449434953344274973971728214372631843783611624649668529852887941474505399647214673190558103697115901252740393852870223762378328204218586235671045416241478591992268581509122030611737262205716033474572704144767105481445134497503223544442545117271426448291296210334803049218252410618028324979392395903574877579400621251383641955897642247187930371708932292985635555009523563117726359407417600786872378711683626882738612677236317909852503212798729923456216144718186872094257420865978967994287650842624998216914086135066477145694465658806294208974978816990829946185120725351979264385806883500419414948707118669353117623318412409496239976202101016463820356697029966684338893106883238129838164692114654820122856483049459207618047216839532434970692852501771850464750181064735976803472113266321453347298224712796526462256349384554077326416921471011362431460326424329497040796109749936703757362595412099445011732657416754050690585403988114681650114266019200407377738128537764609574978516720420971737818279965239892216977884714991362106457833137793181689168826366975590689113085260481443293726528607183928583425118497736506708671403463934004675804600336024911967345224307003014586893403170387084517202080472926013848071329232532681207023918360089275915741746493035047918348327722390562603411344945654137942530835188361754312121454319162384174539277231513653533189404783460952442755688714565261537962999645441569067152939038820469024993714610324672603296051662014141042795323084834701435888315787090996900467478709390048348179419128693627859606895679328005809124552697539797767967266473456384201271663625538344445464239318372858940014550467343651142016164380487618859135260477878096775469635802870167244190540822753281616838981367727859735912173913516834158944835925729545280224588507673622612599548967823666980839897405143292476339360951398224111870200454628879544102005873226292414164956262761555319225967631243495307509957971729774848031983738840757083179848537181118266099853281766678882121404723171456736742576097584156557076981346632683015100512506823153568270100013449958086574479295379350883050616361630542737423949345840047098680190523167724062621010157687735899770601051719618505776663765778357930612764551267558689049876047265822850995591231855864242527017806421055069241912142146010436397739944826884390415028788520618618631253767873761599529469640576924556853337735864412907821878311844669550408244405793586822360933431781058767075825691048884207214380142281352426570559805079941354066462668781195852313488040192692183278880581613872801121577127852828742344254465795639361031424047264823203802621819157220176180181864659468652352776462957914109674984945059249168573482724375305659990501289257573027231518254882441044135308580368829238704018757788920123239155108673572207748773185333458863384834183544532521579896371452147527772368145364201613559897952240897077550660135155591280179016968742934328051961688469661656276944121128041186922540897124494507969476022808395212671146661984265262404048667928702431406826235352211750501811076402711991333242431035760057506084971519505171460530926864638994119104777226895568526553037467118856692241533750815744301809384549640254420193723263517864680210874214676236349140025687343585886847307462089189968040747697590301051534985195319442994655645046377957280441955527095417207094917704441528383348542405628789954822898907105897533772448582605719312192927344850518984717764208379759801793412088098307072443171959022963243844784391402666225940070563218857410040135678633636489692228036939910135805692056151186035559410723049149846439869126221770287675437498366929620796906943168933589587103736481789749609770019278308969473672056818676686719234066919888990896840216117127011152528363581140318913738375403239002158861566579899545087858744498078200754917688035801207846348979680106356461195394614351776899606264344585658738472536365996568775159515448549931153644130569006338763573352285178203605235944306006061538334098519723249944009597497350242808206150616496268766538894785658107405524118861211192104263277710426059836654087115810819046101460210297264926893340099450800418524856805529099144199714006640373746202483808480168150706750510257877930693492581047179322468921301978894776578676430644598789659693783267264618032741584196330117725899080086957793646822925033313197939328220821230394657108537904684757126314389334116812016453495361164105543670879336305290023231193298759624609014313894361099075463452549582761079686160796740893462052416505182270318346516660779358282736286528771601632178868939360406903438339569950694382031223229103693108258781886678786863415454416681095641699910377077011809181117046444855710858628021053203651776691046531611475542909515668488746392731707253607880852770802102067084098345045923298189889737552318564904588876752481814182717165993672873599819295764691965852551528093125921802538058854516176288952417267843518478133850249938253154736495079140170440803678396636067437433531914697316090262200425903384044755067745554496024522880172707307532763875093711124394865309990335304898041695466098615354603749819677579111405658355367687890530238192621454275703703598393115876982263135625271847652518068690980134465427081562803843583063310458398703637216449084397412767865508731964332697762361326170548007291491476245740794328511109277567343842803877722754868793563860073885017997724274847151572271372746587426757416010677370426328304764204229908001540921746001336169007345685958783314409648231976982052434895012918428981328169597329511790471988869099216347032558925734634121221750557709579569597352452230772759008197146177547623103359486799578689499284238454123848649524337085722298912955486454060771797452215612926642372006283890327455629282939336249807003269834707168539914059264799828241382552822308136268669525729713374406604113244425184044283980119739320379640480999091334622673385455220822672645053293649750235137850900228591613903438661321591405398035287697696085392076232306610355923474738415895866788761974238549324142677540831583153326770068678218007490735487731523264934691893582867927874500248724443598837753143843344305954723890552363867568908309385441014602584751814123326137646458168189270817083875483231988192264553213441210364839242398906394799773553626660044676702710760816870021651579507225776378477685412651251322216223392812936759183458419667807895633869522536108074903982740012980158465306592664596614540749151491835722755914789016875977219360339894307233720055925622211103376576477254119140287961497044945644297661578673416683434407217077362862860051362758331804622232662192389268334857436721901653907559558853892371602984149856680580576361370651370450543137084565405871277337950252497540177362325488582515107698550407222831801068795569336743529284440247148291972572535595311985276012662103851528695134912721373196186305773892038012483954080349096476725572310813558311662163724983969013538143925679541929002721647789557611870274745651951524165318536179148015415365473618243564701875083201254681365344791779849541854703534611188795644565872589446195781164515858821771108290074214701621090908587573631225574885876304354127664138260395274332229296218684329951957964779429890789885398736218012041534944388286801957173429496930895896628620923273809194739709595764601335795832807897842811286087060653874643701065614109253886650701415155332277641446631803917856207218029426933527248604349121450946861571987877093502870800127171237928153425969549683673168766786088205469332099685952325198589511034786507347261965181921400274563754684282283182638342732837975341283209026364697259932130007944109606913608106459198778902693907209933321055413642762828803796488443957903331056666967458517119751875301708222666779371449351032585341021803323053469289011905406855592626220990737697006402940795768400864645479269226189155264748663722621897999352597306724907301470142657887566380669846843358601384560123278024059674302543630733033605744244372893115965570248711094666707196551633878018701933341594092354811667837109117305655919900028228953597807475587654569022323495315356197121600579480972739092010735154662293542026533929905228684987278343140180431107507423400424102289951195320851678221886073887942979284188923794194396546440345237036184286209845582071478203461991251258806672596308918095585205488300078191090199695282071906227828567722909707613572951820170953826891278009622319215857232642055067794972470354653971854315886539205527723895789550461164370055882405045378428494008131996674373514666765722600626832469969753947821988557615993015468830532483329139595020381440088810904062665386383359875709135771437222514259491258869807353550764717424934269277496553239932608604788625565373140591524050354436708343790629049583058484902764005216863401801146074947180562403436198785848359394467938683329633590077473353567965058903707069314522806414159048611111169778807111409207627155318902229318679666216389365194518144435800054495200121316676822399203991371123186464835368457178817832791111991163327183388788393724766625007027803749988715577911964612521471664249656706557489270678314853895353825490337114451497880431442702756604135728763586755446709574547782050174487012486011374991841244012320686331677611460542247010525805807063982003668828437281451518839826347686781405267918525671376965009382454100798218757203095196071218994749327802483137264378346858599298083842582633492195705384313791830444517210337645552844142172217363235532053492248708470690960877930057775039723427288852085737486936207165778444213978030443421553023441276079228953524700752645199891324458286333268000160324929377139667735098835712267868305851323310532266257668456156729516540116730917260742650323652154186027414986928631181707930917885212068221849807658806898390959859032482975674349142847787554335838883154919384806333756470691039080614246600415332929865273317147118084911241953467753239307932397404065715952524234112176548266883021126180594977181085247667343647892865601936877814964281919706211262735854925066696994015691949126256990305617311620694710732099685177087848662944481988353902266935712049345676686447981944997540208164694072745159377367376645434426529197158483255495294108195721461528121645568154903601933919400742249747706250706639886707180916274023355270159932890911966961034990233006881059917200014887915960132617579329079922156879399794588158930362527461774801450073289429606069548157878543095038684787122325541790504387348166550133751736233383988671037079923111217959606837266841353250310596860070657137515165085965358635023413431884884409760495657481554599664599327082251641771749159880922718072937773325780187267860511600937887647398399451385790522873734779054268832052506609269942482307214058801254980067846263553768633348201768756169527514601716529326346589128566881117847001805988342199281394394816463155939771898491550782050632268342227348761425593787242739790784420590143356698308073531126495780460950220753708930728053046493638197821407397167951898940529503687439374822540587226998288751644907192676397414489807782656502695198558105612146013409440409976389980637611728359855584743864107503040660817049323060571028681909988916081984995486086549523047618087877924191327178663883671095094168389844601299287043022254327159397930464859039986362259559836857697250364680385922897174695725997783727347190782508349223739079072444196508524573648596570754843906264407256723638515922905849588958301253661604246772490737970196122120975434278168305752979779878855915581383708233789743368939203727283952308224374451046309707872734216992761923257546207749635394650862272125052871705786944393195433849831452423543671717221585489700438013307477280374235260644764557973765071875558411037039426766673256279315630137148460085520303751777488556849843072140570178600767501201726175445654702616664577303129944538930511450309595829317397720952547220076050518970703806949639643586138828088761114474763982363000000586411669276006750436508315277747997186731636603428408201684435975041662773705049277021878225869360964294460341712092752909669397750875319900918523546671984688340560726406036941833089131951795357295588725961269573826897433586813738120175113343272947898936007309214191064582846882420764039741172543808521446065816706569889109806959934722460778574385840268513212418369255391085914951142850863300991555171169553260197756655748547410915436100925265365282452827680102310418276287229636875647177935257830939064674740294315441437067736780229185763455263832363894026519417347239134509886226902590278289592049943635267145402004153469252162329307787840620425196208745844505473547197425635294387103856099434573205479986349108918318662616782594085054398879399431339961866112107338388784722719826203799278581473123533870479834286978053382057256832354368922114504524477191167984538745478431690598473171723000761879186055438287042252049045984588407923446069731368834959891740850430092320918693174172203267670293294848911475336172655093012363311207867556407114007519661804410319386505558294857710214402574973487987989907062252553626741808263120852811834587533204012626630650966067597234138550764347348530279139397796958947516094828589301415714991684304950092200531248092433118412861928230963007454832024418447582973538965016212426559360829482046025341156754898010635727721540584096898201266957853944476914994216809330592748688377462112387039036464673005663086196134090561362854331252754916736582123653572301045115556495050641913194706041827960208877953885310216655535721208293499668293594827895671243422270511882562214504661749749939280571259941866907587492205241426351858347228934219577077483098553081555713748734664434183668628667631888034228667391653853722751339424228646461135111816962564958700074513371320262607111538310244384402742602115631349059871970695856664590467231624738576606905454349218616970472911992320099657193996738620886472156105460980266907583273908123529676298561977885707656183138130434192122907045745474734517087415928651456359001585038631359995838891710517835504027761690662940590837531342459884743220693283517375637212098870679530842514600206695462902495025150476183784376119291004401193068003035914915601007910535714578836604800376440366409737770208116949247356863425408644359443865314208971446614270809772068272563367188829227060846494979661024933461126746473649192393249135955454081338712520105932761791235408147847001028606673422420195388140534914415966707757268968086899196204444882016117510161240445384167949272507388562339641087149065166969832170802977547722562449032961610016811624456877095359694206343184432949660379211776546501134900819535294694382495754697675516805807443798499419346612038916157203376788604136555072149677252891020087625695894332388022742405558066093572057698788873471944685544882839128617219681332237163726906536652080318467144460756145722832460396710786171488708164164955945532607469346048230114386600869778094157349482846386360778206815229300344560294162363571343660327418064753889057181486549518419667709046415811944244282931396527194412750791846250845154047481103799995181058801678129786191662065298032332998519486670178108609825970960744888829921036388391160187807471988316988790985272991885752065461724988153384600891492276989754802087352547341536720514164437173068691746179970215651438533487407577049779326952539761878582226530112975180532738412988663185004034914345808030421192232229784045557701196452497757099867199291805961150790927386574539318057887360974159785018853729444082663897299328435625323614161514292033327682814328333499151870635159078118575493767700095251375252886479782821696994053601349664181112405339379750896565842359149153196296777072973229818922487018890154350337769333860061078954535525221397521817621566742112789381760514174273602550793535668325542085111395672234708907605071942886858954671641636824822965644975432269669243438606358001248596490714249492143738387331690300481389786408313008522008868592901205268004324582243900992714749278602186005538550627536746003655639043003230710495684295659786620728131748118334311614578431131540208982519407308008275068674451714627586516008450098373194090547016536576629076966253438661286547379316228979736015032170340235905967683618141649590775718810402070268621725653575431185678657836934627082412760378470268710126848016887952519547026842553889316214698410511989080020694889673603038056583942561986763563354470215468663771995763581282042295822172597273437913577667654705096919813260270907010621539981099881261544479597631096333338188579191749309524267862186486680776486474778700828377604814692159635396137973152511531746469445227243029259959946606122416951372858847105173178829747488810001799413667842258733496185643051400468620239838184704940174182401869124190238881673295094845750550614802481591003223883018843776166905195463719915885712474227860006659322138914831126935472286744520381289115243477994971726665950088848192673462430969958254447747683154837715540624840192568002285344032141190947264426216745575214339558664362902908358034126126064527452623541517594672101010697216820973525580760773934125560932860510904899363190470840057785450893483916468127883662806639347976599858880293391458611492079797012030617953539902159731116133251044925470846756808407778066494556862200786779637768497398597041005271840416231485060083774826977851155731409098061943419533660297483078596950836521511053528087471343655558691741615255743060042557693174676526050448893351086867474868767986875140312926588728326677351956051661453741789096985323658444205229393602280710415913031440306582868914986998229654309031044656840997292931303317527625973506703787161252928002783948688494827208880309690219361026769403314113622343849184685863874919903344030644097108395927670573303542657400471903941249599626695386021585147420297554058732934238780294937353448614091843331733841005601176151810773286765921971883921643836261359378085131785188880448717483594092772118492431399705213147129058412428305191084577704923999373571818016196638449895812220004030328801664851918281375042275095899013397363782733140870284499431625041041130591628669464983265023300661155650057968491695290915288894030738681813918759334894849000404658925715400184198844500383839365197826738248736313891931429685395387891571942076547389037126172400016358603220591214634571310884935467013200786847651328605611757914087022977537933500352765111951413885345468137109311815126463269882150802056228448299821163617865993290545432835696925546208697782606929286967380592476727761598727341564915438771321024566143216452709821989621539177575090068425104425279613493038954553201028175107231619605621817243437457767030551910372153840422216753457837076372711786556492109345481550451405746702921323383123893333187882020419332417373119675793008684757478881692792420312392414339408786066977166194355996908649229653453844136931811386866422072510196964989268505388017848246300136406505474705351127439733872051758183152382601326475777869618276859913736844346654271846008846241212450586822271337202975860011446463113671440773546870039702993368688270792450590608636126713088293072374477643010408566281063910048548614474038386775653051399980883742845446235244106924784457327104518459425433647712914918575710301998654286485719284796707016554005683021415038223142668782983800867392350260796356528193460147601466416665926647897546101156021872167364126606789290781771050195703849844588146092235096988443472571132876608596315243340492964644947916910838106107834288857844741358283615393727620075239739924746475583625584013411225252491725183915910991406734222115398531650911598269090943128479578388976930249498948751830324594694542143519902856085964769106228835293479008882701576407952966130401693720262414058516483228738725520704002248788114044858615596904795819248441544012595104260975904649901663060950806463836939713441726133503392488277313624148250896679782282213658727119145206013790832927609639393460375913297145083995709991970000629672754432035216662147358005846039459056470959163295825615801740958868222630950254060999143396159624263865143869008813779999015568021662895491423884928559582808872401749324958890170789125046502811434592196880353678575518262267813199300346610669119380649982510073362164951786850320916592908479648533645789427279571694202047406251930908688929922036572394128042888030783320195005459573950901743971455532364175173282733161442868463726166060093556210998194810390348569355312184045360737964413311949224644863394953489310647433384858958969414603898424106886235886603661543293468614696685008305616838087604854493388865951164831557488696359020774795037359179646771135038223071225176236680680788944578164316925375012364737252511319742801434258421130695796236611390236585880835058496923288158943427793077636654549453941101720064657456559771293117164678540415567772917771797067269525678774875348269908339864017613267267274187005928130339054986038264075195092391357076670606200553566661364180145984010615217193485661754207385878031997299584575747794618606200532635711676730942147345529021136698836728249782440566264006691740540878003958486683261073861332847877928680958710147948424324828830989112718803590136097583377035086803211152398235402290871314917415278144737441456837891743846435469261601066096157365010234800484780410083612778121611357573061616736778515675124133108936419645978297385949981604407702950453924583483805938734484695234049073469627770601606311316066996635468885168055090715146434459508600994881612216798442568692835228869434987857867927453253536374486202137030950716299502601296613191675603014285772515619186138165038465391695927915088498624588310313949121514392015939700251091675045963520180005760788366416565116998409271163559425612418595518426241215518559460943182459197190554932763369970205643481267469592581002348392215172642166738601163571042721145367581626474352343377678100903433082871419932936922193001617152525945615088627769490300160981381539737361759653753643824034882284512783402591791322004531196498495207105465540922276425180351155460412548296729442964040770048343303452349913642637011080495702357553838487281507948258846319807066331347154639779250073055399440956762889608978939828290802279228602845438434207110305069842315767748740557138184355261479416836210302935912827642201996448868848935578393967400865878284965821358229578991024069529323355822216823355226879965335303821317486789579326015744974334922717472147517067936495762241829529015323508951617628999984725507406156918414563024172853674942805585329233599083042483405010816132787786938131299673301633585694836559308151497481095616702424663608256365861230656003771242498313402066995057517424590952329715117956692445486954440864885774996613469675055592867440808390875628877114663752325528360464895536155644244409672763567053213902372038866496299171406753846888497448391132422280387617341161142476488914800896039109122115700844291655159854579407524548684094207282867129553657157189311319775295647682291264279220983907599821017809666368154141108850528659866798273866459374832968831123126075103092135600089837116488708423425130030670418883860874637597736080243184149787876225929984008222187189220333587927980875806570510265396756461338295450445569891522866154483152026210728695023874865476399146495306747369333809429010923746552435552270861397620220576823027844959358272435098139069140594076848147846441813761126993026899079746323971726898269037831969460911897383114409496511503828217688428073924953089706971021530599824096059756282303921867274914577140292220888494200219057991913410449944123329630593551347266406675300635739893414003441956472480574236647920439879399648574947519751914268310550747113452893328715215026995892747190838262810387912630501901974044353157680020335883891296915448764350869233470732204321137234645315276528580186076525745917233089762025966977626000777311224673576024607488148605445553079338788004928164123365896733035870452117733955994266299370194270060802169072795338095108339760055324789078661251553520351701973426016935262999269398903587555896013214647399725044033738988092035171156440091752643016202393489153718732630406871806745289216956980103086228281778875893243847143155489622717526994190329946252149912700229712922934569280415662286236949273945040380279935961386069165983659984484125654728516157663253233189597498329503092766058916016211190380837264137866700400208748100002188846374053937166497066268008594560499262019975010553434877745834319231995620146373160235107304898175435279974782620044049351791410573817221576268063796789421285904578642000310165121566384867837990204467524842257958775650262399236200365289312519099684240154146524940281847812674993615366167954047394228431978320518555108743964316201155007538770129356011602783144739627668722434995803469919873253232708851034055426679020431488812498498944789243906833026473926037680121947816997189069813565755545223295183174960670135422530644333943745652526158184885042093441569598521536791534347954559287272952222926748975678748655836591450524317487703588521315244436083694728516894724660789516527691109451347425933583857716435171938736601539272288121916314679809795001202460047828687934442126618493595651597621334977486334976699406240914583209716073504370350208235355611271748662491427665229456535442062697124932789878259092057701086527176231193038898177424713412984948816079234277168809962271526229211011696120335601940289866524396246484531158352768344848935782186553510180486404860920780370239214094036428908345911327579004183446167829470019194823187567365690836153874250709288190773890339586714903856483099832139606088506253928438520622489323048836456434237292780074529687108101878174476182344580264648048045926841811202032510178380403991787035810571586256974383701614833475530394054071521562469186701902919825041511997372778265276462028079516064081523654224032429804840425228442499450969851849888360846118850293312864816062887503307355089638981061428849337863368907272470506303876061866055307880657174327651698404657586568730434558051624456174093010385925718392198531234689267021733985328178137717803078267562397793591086190969877907398583663857758591993657826227227728210745261610844205510959582894234775930298614215531636210090541571406688968422296511123460822195868001063028254439075305274474275452497312185563105171523100631815299431741633844670656677440573520969309456374853203033933659180577317425560846352692701598784119688017612914629120325248831127027277963083669242060977116855228592468030684500552566840948129260588552329598287096248000569885711384148069688785174667000563251160809387090308771116719628595772746309031495269331391449135060585294593211173864258657148362283722390263654302639732764168411246101912281528588682245432442525620501882763608878882034671612946396634136250488781007293681994896278011348286724491485514333093882773438442154415631854947377531275611981875805896891305241909899297476751381855218212532032830846717538964024004144813616748641986173271199355152304696984561340323932139843941416734549646975956699858624707985714499963159359134499981800282614044991236358306682569869000353448978460091994958192417414596740816630445360546360054420664066600592453246601413437750510700824641502988471638442643643342722705506175801834379407259456094736669486640192813773369065460103154912922728982708426743020780970005914502565738715169694406421128027690072325250958117917482223666411526305714925346555226900863139827653799739471949408765034055266567710039066665016232563085976475078408204304768640349554447035402591778347453013021877436242871496399627797970958989677065520626876281603419648917189207571592544220054913764348408701779628127892447481898789633184129506862375156166158852243479391371369553595677251265745296336759979367279642748043675706450387378082765652088938001420814479755241188604376168767740336241122018177881131415658929912568364888796477626652231915344264796906138512933824664192360557214313431284343359858825481466678187510053374341047121666154469223529936031094908671143933012819547278591917762841061104219568685181718822637173571868328164592057942711846274897257706881279501817431114724432183745852227343186792877475036369034232766305022515292398437671807801165169590534253975758252907501836765422387226853472297505740791890953045528922918411284227225638537878042942342394479605130457127510449510108823336687683586973186216608318627741214546460057220467381483120529750548507890769077335095521164053568025557041471818560189653387911048764700850273666427234023815663321306906329123363265315102090498266288139662700302469737057272220087214686752888175192064492420775663737659071520253247949543895311871750429266566288350039608462552194649485329684130794750791564177996488220553166800361257143194775379568358234270623964656537828315268413788537497386754658123316366534071802013360578944592817570737949036271294252032523291933085404771619240550229456427819248901863717588563830246465471000442217334819879558916521779064745946119877603836048433605140288430645684339722071213383123796777539549529003175637223687768414495565675106622028058571913214992994744625688159724266080143017789681076315660926728145134053466857479100658088719035594401285413431415444433093917166856513395408369338677989682311870678816961001272023183340528427206474871737664599278419207909961675180450222452592946358446353456803185599199821245261802729103948167079882131413205618292281984661869984289166349196941830879727661448921323598424232188127926078802993416996067910894271089956839035990376800286205393567363839726660436856910927071246821601012579863915603356529486227549107613124307923163257186849808683449831998778816246933009078838809416749947945423115908861610689958505428537905834244380599760673104217150809378009684083630194674853003164474055728828238196147980467914227641304266632023810029828392843759829606211577285408012965824700321420204367881966469873814035402970623358077566729639389782305696479411535891286776713570271037314503941527094960564844531707207933185046545083382530602995179811231978795120330123193320866484283067850190543147586694639472353538474428289919197976021375557820221018614825238263064411641674524114673909852862942050982449641537392157379499609136809332455229806634700004954976539267179504947804742370197211348238760883102236312210003749045921007806845492511524262050346896807095658463112021142088902481990868922196839834181433388707872756158969954126198325929228103593981474608895786542802305744418871237723982887921802718962769983900798906389982055500761646131104605957687051683463171569152141397513256181126587707687861370165576378652482973232044783230985852785399827044038782327058942752304444992258952188895821269694749541524062363124367254557817638232807687841829820032274167969497673965831910738431812177007321015854255152339139537701888352338620171034041623560723034549860051810242964623467387201258746455094280844047459901242738468769216520798657370093196558962771675332417741878865860962420479647914717501749492278855693349629310591919907972087986311615138643078988872387489630007375533666118563235528264572199600891227693979649410468585400677247169390944262791814019574919444011379127500753932979798166175867787331962591142653985077922903729439618793474686005021497980284217511710388915052660642175915830590487006804851949973008465171622203912848648406891252466293102263011917680303083009570046661820456318475757462486944987861850714899910514983279543404430231391742034323447155013679450747698941071521461626312572705979748754133619392848230521439320225337902419176429008788401099080707721285856420829963590428862816617415532530087085459071989368214259171761490955706749185198616207555844987604673331321909432103698329606428507264122601760183800111725167221487656818784968908663473146428098998783520665169621198350426140055872674740843497063605248994762088248036207657415432372332949105605509973670825143932205231872529540924158018620379676677829083678361473546870778614639590846857728212114418894699784776764005862244408073955534516000781061584374311799121468289634151912094083979421929917680652383844116526836322666880868122903437693566094372209279960980794721908397468577136561469396373969692800089690301876818028467056223144721595215597917632827017088274644109165593463384444960943028214621288634293345819966941284706344996794236564481344360506907752421648884130586287387926873624474871742690660221498837217607661540368952078001191763750973764220335180146356839166200913695445805780918706000335764066539748653421754126271955489389774493732928149839136860170363578856989178198304299771419330932883030536575120339635146880085154725553094923758317749497756371850424386147840382952951034220459965513698221237273472209748532146670551643853065169971839433498936908242886435811502320162323889410364754634348309005568967261766115530660163568394086707275586263051736133573537595670030896283549550787660341053769241433291449371682851888726350664700056865295864418160333690315869172526530072011184639660948698748391694595409921806185200423033497268743022212160038796685276639925704918071530652738812018325466009924198948999674749607011970972474319817248089892822453748557779429990823906430926064366570196815281425715915049346469351003530456440432444028818362452271116498482276055868777277347803096607932592134647880662020152042253395187912936936258131652163167678404955279597778556514389690559878123899939001192913391877107797524979689451379110515310835153457341823583015990723904373359952807531651166584024249502736636428655386982474315263840397423411028334256100858856410941016497975229804297275955999333972332996960321587586435448236809713447691474164444976760628575501232453819304355049023863588548670425081147539832054810052621586177516788934108061772218159124919910945100415456865761383331434173888440041041908741254362941676398747044621693642847933299885350576055912037357197322197514747905726909829065443208259094905564468390457689697770839149049927140950813879399160967843548805682311541241554576946574154689432409198129241119097705384153851186972114765168201938132197196395756781942741304734825618341360051940483361014407964972917476575456825078410517573954317953604950441400361774901859181262734243165123584233984000338696836502686822062193766311463358641474089209852917633951800484678421412422652320975892747101562688157480598627324712668069850139413771229027148055451367511856472441859022147002954519837147491503436856825141710558412157645257787189499418414336289952769874894724009883356603291423457062784262044407029909284963595391626109137733897337192720009884139681834919591745221056456003595086202529471003042490395688254151184894301574431055645402530593956412263819867459993504148697692232174332936216531133394616432252483240735020277922116288000349551256488418867018824895293181403090534771449801575691667729109859528572854423597636643161209746235251390245245292672284278853627182792878118791845899191209739610377987976706218829960002025323061440421628031973077751676474114107264302482350622903884805018087668483767964935730422967649699430271839773544579013241529858492820573116666940530534636996055169805556325680554108512972614640895558864685513636811614945683135802461355974877637062909744286376046552595757151497107722430630652059627932748191669538598069702786526841742452170303709105910666894773787952372821879100076284675270309834729216860003599321545317542721951021380429987267183442188973622920290324675941142513297328147599074445255246893110958025465980654697701647600709329424455949400090275213147384776661855620475868471839317262011100612968628510768813174981024914324389525643254767577033687697237423448626000561069929487307047401160116815054137000364889344645957168913435950033119658339548232089031709168794158563202233244779264985496540614623141049348202786137752732108190054471511195789476284701763891705847488495784758705149189395776039822826483638142020049053399359436531035327931304873586622083032837640600269260725138019160920400012232382611856425190535713549316405341248029546529217723341080681005648601912384435061314851341245322714049008608148593146579044790500329920994800863340838577766213840417928542306775596804447602263715716942778437967265408737197232771635641587672368309885877614930736702918371428773880167106101813465900441202774380463421555893490088022296732604722722243328257195082498380873828676367570206044570591448125371449943019139992103595616342709103163932815731185781089287608680092550278234158953844613470919188618246543597513238050437349632097885843773803294720604216587261695549999112162449246364812523967636978676707913239045745270129547651194130413912203871591149027161310811333840176620574017765545545426570028992779206050086725265740148339680248422362174984520721316892327526425610226837830155032549367973405282106105696693408367171370740679224417436574186230184624141798168315678313888741681003362797195504582758336821665028121351720299675693617894747915835224274042130871775625922390088822955134468163146413871739881870292140927836301385127362322765731881167222476650981084976588947496656946543558993660460730147483263628192805251317055226799152028890967570698955096317851753170919899953763884565396331152240671665651865980942174827103437025964176713573773999126739528073051534310916263485796403668861399648539528073605320794676458463366673663655582427569479072251543742871016165608121971162706887637931805543650494666969344329605694352426564303374049338291159061062981948578786950109604536143337912074005149529141656108833238983825321118552270364045864783203848657776213149040926806097583505136152747463863660029710406405533861113031439259876569082090185481026771219441139333152754627299924813059828441726037982901556952950555391620182532960115169158926437645493757452457935038467256982566708263043767707995066899101075742705402819037647230891954847437524262825460106701830241536450687803778053945890956122915585520662535060259617276847814202444413577582118873881754465220642001303221515832508164112794109820654976010637181501031756139416105287195487550933975034876026805578929152330032934327410442952659518388115703322147877432372516769668557600921572049573443415883585373943598562012373068452760634244753592093317095634535212637642520871622693264768062848423929874072702685879169688305527215818140821139442718386910310257364420325839195875960974561560243864044519858462555916496591182201230482327285056519729771912373366074245160829138756176950951561362094895209329769288953649806067919881033748023089296325393347118083709543958267905862014042854573808441358070670514557269824094114971665356007803927294266880935979085905937500646434414264874051584706392240652253963572991776932239710034759649199715423121572592745575371732819926722686923167634942430362260489714061382183253470027350189866871680189064362287065483191592998128364928905254095209404045421966618515048194296143761383422912019128539581598383112047421725115485129614540631897770316408114617506978606862350630827256900599269335574596977801324045846648590570793215806619060471774017190170718814211905892503447417814420959605829153944355419725975541127818096554678085843622189898892199620061628993939620219096722109583405802987961652506293497115285984819300613243933372391235221582246596731653216011508917590693598493120336395044085981685933514026707551744375518433374896255746476212109020266844209553984340732290035783777703036683811489133492645363272242501666797104999124023234226796001553544724286413615812935507288212279709790551733299087381941577768682020748678240595920768829173454093037859792668264456490376132274361282042045895226168677786232491003397649596981968804139859650091185646174131929674701480085523673208118656656478427209742441082181763454713533233993409710786212802341594867316239199662115809177101309825197140114087718950768409366337483366472509479922554018197966581032871664077927184559696470515056333552792230748997790906580826750529668094630381191063509825055797898689237400900858306072656984044527440305584712842196854904595238961203743260837440740272827226203774820759777653550081770565459394618618116336916997888858135695409280960836052785149373899064311040908441118234978643581895852880514310424408227941935275372551978384765381136154131461408059935143000724183570788684520474202816062935829693640316425499129434423503072995439179040371764967561238473200288248650382900992239604810933079629261460493219672382203013371536110432373898286201647580156770647651112311424695298450643591700632094267640785802696520850641112353132919937619473473394515057977855323596954791920143341464301976942384474727000164258453649836109261608330186037513975466166560876604009334537227060881044217126123209041406861533442828030158493148745579121955566420097987603902412629305429815975621082630631400791679297135060413207714620743669493854788358187011905047329173845242728363366471063452658874386184389411252329019444152545124198377587249634087714278956604835646640900987829905650322182038976942256059321055327314527471035594014334020650764584521556362085702077856644459060819992883499584670053452328967697989883903404368647538518599174403403210392011887416111707633261544094391230167862658687691828769032268526744763752826987801647839410535802722621581373604504186412136071382780289711894228969116000913265492363983532395839772213777373721688681900440585677197525004401071293785761334936243666471009991029825521570829062918264025655033975904188844320380615202295601980321185925495148978554247243934716130155581092812080329876337552294955128715199189262302313719943223271350866124144373430970285645396656012424787726526498115568957344512477163682775490886043485500671156593159744476814500344206532798749196100168879340805713738152436338450396573237206863260130054110924058892525933503730023212900369318636691525825585757977816768229625688497677775100824788877076701191288660062113343366516042922438440797093987605597531301648558715497360965490643976685274739045713527082667783543942327845657588145938538264805055027455320067435879769744199306674121437669813318627690643478565473658645111964667107723540475182600689211668550967555509142802571569196566429682650319089085060644888077304571082996437785939920697602072046348092680299868929488509484904168325749049171211717440224399764051762926591462601889841468082459838426479094562311619279183315980016320766491704152211362446964907631017352919873814719039429045237753688224158541707288604488118353521681962843306273423063750639941099040893342209209878581869524555416362340067784437640112250079758331178708998546210820310470628072143738664225548444074997790117492634342620105942856273582044430003120543069721545730011220456838502669834263589696011736116166860888422183532188480710542839277028485776442170548856395399401532741926052129655310214133513796168324060301854334123399837205425352737968340947289594187140878489507624254183877618504710127992773962460684538029773931656358831356755997112639850509574487453984469923639600027085746911848004802189563489355236344999293176099641745500249663792698995484618417435238336603899796784671564773357431099320870936643316571629152685513586300627817750580807345971195734436162436755436561359327069628615182342334016886696873287549235772253496885626703722654073984003517316449639735168623321643558474954872517207113492313933530947046949093321803153862463629482513467920808301203911326707610635699683017398949077964054394133978120063256291311505450090596863157829024162367495049819334229935465103097851495568268532761691568815774051204489970455996688519727539752710465102016379920151103241730517398534641101871666853379741024725662427776634571997291135485671247621426264574414287274350453556572586019474864376742105125130705291618245875567118588423449843117195926050898954170611630132674803488296007101929467266280738621974464545461825582655316663477791524147533956197421015393078837054486833531058743274450544788953400756361720683666258219923220059413195242382974904130142102649485594407805527274032287577928503455339508773096301525040743539935766495242250620552872135125244158486587605695758387369584443231646891113808822972456106161208692744170792237490199430873361888240512805661337535790636079241739070573349000903715693914891191749037709983485567047386508058635732814229222639218413769415581213286477456959487075597931959413251281567449052922690173976099525834937100089273511323744267143516068396798367110971456112425150471238966783571801832560528410501912580977143156820320706273128314117808589746114353068846966015283260772635237894818043542190361806999230615661255352564787826291949388854910223370734396231782874858575536729952270311719722649199169997135322412670281880078413317644592050678275001718788227156826479041503757648120475135960989367113194143494057428767820070347917119112486574069607670548038850633134236423027505757653237507099533307859716185660732542557442522526200765034517009627928792339230912224685422206081834426055613556597185802753326366327698443235142890033354765659369980293420650420951065943313156318071844742789683862595602195205821408343711522012219007901589837298513067962806841314172285136466804040873371043873643221468037142630789931392429223261950440903293067072070166807502595300621773397967294026808512062833202863486273476222309098755109636417704826431480775937960171199607453870382605226855056622831252999498477548674658686858716677237968989757777912550979214675139539508046336903095128323669053232045400497973502228985301210408291848118046592076402945547938208858636910353200927464295546530999292690328883301269687719212461035994974641400898068663605715250691798336276298432849210348670172147274166279570348876907405580426271117818962079911211249121338696476243998787904626261691507316860016669624447441418969248316574095857169392898593374848339517143854392144025277672257471243540875513901352108897727442442489200077368025793297052949311581084343697264799958976417688869535203114605245250003858665724562193492487614219763172448676390581548479420154470996346025680949534917663727784544125188333680862776470927226609222985023201964808935774011964075386584393883616645766950625168502782892000625549843742907223616082310952322117606896827345174741595893177748440953260297595481826515852943246495016524485386096115885870804305295252816343386576595962793548817038273633437576705775774222002118602715269887740211282501344494528770698214705748036978113711342368458391212145239621380993932540597156213981988916861452580025600220955628993878016236658002673600378627447069975379330732724097697523875157415548152040229032779682914258981848897790418858914752883052353113800290142521616356964948485461468757224035775761588470518000582263472178227022223512027570730164164481636726579409473037219681281192012529115506688783286673043373772364409837403610663902337437588278357812149452398342326608913538961805135677750374854079866004984158229424525487889712069890150020099823993158095296457962386562168531259192944850651708394159686703151606567764574721091444902828201388715075475854915611982496150014675657624258962266756870473792005320364872919425430906158498326531331992473538014049539717787697563435623402210300844454380402557314611999134134963914756728960640394466191476803349706582701950131878875229107774498609308407954739200972203964816184157205395913565227744806573003276000713863818551660138838354995781193998701973378898267896814813867111888611805475487777503482898249071917317478282537075219535938352221550603887091413889153694681918813539675918106255913039806061354638618681428356244239890099105302494491689086633726286176128582271249646534656648397860025608284305104548742876045484796832185169364622697211237033364362006683430351636600641059546066726055128633094907736589274161657473165365987039370799297402826529438278874770646572749054477056274841809904551730894151118389780485329265283420441453103616752231459958806841472008845529987612621391425279408500822047149700164496587096403875189101367434541191113527647470452867004542996711914415734010270196833310902448406728322770631577036512803680257331589647662068177294567510857909673091565183340197038998409934995991524715348643261495619090783014695058385326141063325445748501979354300425373454060925295150613766619234384168986711626598276841890515452652468951094648462739866965677263060908910980178524740129882929474132076867870490912960577091882305558389607216456906809367002262842516045094891323545599072349282092740991392060251720034525983320111665007555659167516044771464415322838557877096223967265405911723576268314240099411616621847356067394339754953469101187321311008517214760370797705014199535069184372289503373116425473120303310389423748814471913939927917886901667566923761045964094139280936070178340117302372979119686711369133271530458445301052027115741951613226933615973021270071745074442290871036540622264936902810883690602953285595300340480662152482787841515101697631222496596799633421132416958619744639787333018627004859844191558882450736855210502870140002706633503216338890099027869630916431291255200305037613126466545670052268228906753241459955546895237187072578870460050487738452881380324400620362092067626267465318808506428703598789741115393353685641388010328438421280857112026651718500861298676725010415973507670812895459180999102298916412504755963996435095736677367382066234420760375669381479812607335050680763362800502649585424086926740216925616411625826329941598313245370363328488504130665994478852189121556779693152628253984326666546486585662635153640948545992085676935340971455289424236113268764838620522965557434935000396980477162479854197993184193557808625951645760229231871225957872815960297683141961377291023256282507129449398841621789420295793073013051323067671801637594796489880341224640735164189372985448415636996881451206377336374776340394681388690249031173072164976592431524732198627104593529199689474007479492530512680997885897390506140248211763923211796948550583695684226918804420957636752115553247110214603509854914106272828677751805023459225872399281359940706075546042570982806060289364389887783065135127942132701337998009436910996946317400361084116194619198759889848125163049145267373704377891619053904011065455235629564628128925104047212769658521480187478844274258697028410272464407168673581885610405885393190695569231682515401292905632706135458559129306142252896978183417675656793597072776853532461780361678196382581361533758538395042876838352754853763892863984564302604287688439234570056261997686899564748424656965690077657854283400181808675970585609555648958213483880627100171879686290914698810011913535019976958489555631685432075995478373239881483536450995987853200091251796293503151783899521769666739396473529388199384123264097895405497303935971330842964364712867116879107223489613790273066948660735918879566071230346332678899379866445660250384660999840891585976400457847250491359609053833311035604139123553359956419482857457837222751598919719031939880676793044512427907646059803734450758759060327220191671365381079331187766395537240359316680752392697016184161830967179170481769911669428824779963529928251249059405630776560655320463476559668070402653156970067295639615005836403767469243165008665553390840401135932002717430420036838899380865139936994539778355293472481864322891399167137391891121139655660404547005922485080070950842973196976138308530048159717907071858128679744582958089861628384330338986871323472638783917923503952236739171591377805153404414617656288138025541926425435346037691366478991605735145077697866444554886868952234120400770434048702161557525417754010243842550627676070699283963612182941227214426443223583645630419344414753096332722414054934975021547847497556419463187055063996794740182562942478168625466299954646516815112455726812513332006364936581114185090037311105041223963044410324029111856261418423259796850007351755166853523199358822551788728185666217309373903143650136510593442312144598849585165264362238440917945339715849312623393628567679098044489727362557472735039176874562965829218789197992482701495496245420157862437748957606394794728639284487508401393935341170395181192279851507710896107514223250297438317313021653238877155033922838215005629576475012032253825020265537615339827607829703212076586243414848011624218541565495645500800587591524653396415692764106265095420244210799609106002648588316424090154864381945830111603899026660127411233414616966882115091647403423599428390446048041114832422875745210274051111907471561646570577663780447737279602053974547211202161634962913802392479912808656065442434435842003914923655198056906585646059192488805829944658719093030794474566023863143107397205051550933039893743637150134198692717286876153472195211373345432315572766955448659673447813004301764063598603864811901611479440511500099133390059899661133114091465269673660820142248417807464470628747434776659385096519088083730329978939210838285764622742297360489941386953755921348386240561080479101097696047998875952772083071159879850113165399537866567356150331262786568192294198453822526886041394497364961856992341645354591492031431846094121197519349703140897269583303958631313458546306926703015080515413763723368776433896189547194002326610795033994219861469837782965912416477059657481984314214146465155647630188415171307214004160658119439241704760053564501044863700478355277323155480972617674618313198829799525800142116268018015884796843872502782525434762179663308788310570715137669529307850623635109327322056720715363844960903653596619094993082154900632074826677550965731961586683168866002671041855715118337865395500751129960376271582987174170927205311108673393778038647146071995644803380538928259992564462430897729637308034887606569482678313076574031492060610411181047939339527977974086192414655456452888421651680518130975497078860005662998967055999693103164474079655604424514846000025334735562716381249384029183739273733363393281988899880818318096205585200788904260520407901720806187502295822819822941909361025513820009037840043356075765101939957126428578081242771521231553575117840710273689436997854199477414728656889152383143797127615998085889263721096272526221544242587000827604363751236837747977132128136306925631339881432417627185560092203307161910886281225882924906798901529279250916230634755220316638047179836850728204529665586157609019639962705365452978490261410480498046919837969291381253827247889369629418413492421711070418136163588875317411672743158241718483330044550841497007232642315872179115725966409442123653482340619160874808608631604491951881826189074268639700665249035479111743265228665342246677902231872824976640028318522715074529731846286284911703718091824076875448494042300887460491558941715683536794916911089019869300871355269502296262424332966017803115507876688682106222604018322329820677622652424891457611951998037581790007301138598987393685767055511931000446990694906917090855661120946356116467277366207505912116031552360354028506715314252408675136036034645880701010169035931887908734747987150256221708538459282561785575190221573333687296864462583718281689323705811065487084907147683091274986686880071992247082011947659166814052155973627540992803340658047326509825953862727476567120969853558294121310561367354568187810489644898462428138744149522501478905353002247477799252293079996977770317350911230367327364137812080018880053349515162286205073337956597185500068742774582088642449310725252533182706188367646549948244699851212774016604025804674959140731345969781231151472716784937221791345274516781506294202267021071676515832223513723612097339081996313201304728217834865009742988931559707997189330185436483874812028278144845152793092833981808879858893301367832349956068707831061324399163688110513929860774469489484686285518305958432595266785008174523226836144272707201297899205979100491410038768852843786919047427947218119300091546120232618241850726092164633072099436087032294204290386623402416165633730175317420909364728727815356257243895978060603387472507982410267271603123542980233845347138366737192210579292045526719854067862439701821465741718397265054765674867490487611399162724042370970367314636446021113071078353543782163715950587438321256075502241462680013099990323692109868975128832783862039872327385393178487268519292824391834141215250504017876162895369351219954026177975512439514174835566223222111664532390978784773609625638187548596165307892462935793372012590148240613982408665762921129281414029245344482467129716077929680220936570251240367029775081929981393694900844089449344355791476223112088734419148876553816054570205258940752361042249829362403075129687318248605181582039846217328866932229699694545558282937392781763602915034845906567834840839663039643980224166627245389246375687274184217632031885065577078379941586416333678505545158044067948520771561324765495468551832963418235664168204831439846151234574696574372395975243591306802830201995557775924698172189152031566725760371277749312768574354371716665562445975303217529581930683251738712238761232398287277064276692826446809059286415661562292374410652329600698555770720723444602782481167514938580804438980348352189550672336663138417429852082081153179880014142411234655522997817649968104514629766699487798884538610710905151619192196129497059010112016271880971235275574247031749970072973775182437470045041914671522784038661317103101314507163700462818079398345427626854681106418552574623586372394426789123468370846182876099486864772263412123740881463933187777238537467599067534619307424408708085381251673519365799853794286447272870276577275249850623973173244543959918815306224805411429950292637720417070919367766463159002095595866708070594760893623162526381949161897152822288243581442880884891195770280211278327564487824787066365039887173280033459025245377411261316309038216211613543465966902442496351838684285851898503812205936147159498491322835098121895054471997755609490773327462684653465633961039261023091046376358589795745679667761629964100482894723151888683411932220658195627345536427745713328288854575545401456943766182357393839676216794927063184832233724754614948437279439078277239432712564821763143445134465965142069620742578576947102242468035811475467984618167084296301189603503915290329236197288865576645112999037015929612849424136125585260327133949439738948357524719524673838195085753107655325268165519454510860636542853183396886237537510484953082094906047549992588353354877843173434941412339437246485491969579229875676492060276645390769765122132171410619010135953681516525526227379516307096634917282595159402262085601921778217673845133599886965134194337565007939338561892481072640363645424870716255491550370654253326495734764988677931603782724005780773111745021988736992076391625355739538390600173964982471232363480579849223086937336719410540412167347159845817517874535358292576694361512912756087932127455367338397427829602921322284062664839928422132547050707798435477126595358521255390858221106962715908890570117579682949420862692659103501725512573460029581601733138843129632967621707304885438918040380407732121549577914820163622653199620720267225585102451507363814514951708784217862840366086493696827029394713053621262090022236321402095147711717351719371409236097670961898234406229206225635183751637719848716465332535413081679177969586723901647473385724481073539624862193254185820029722533353726489655855543926947634890069932752603951039613843294512754040264191324032808148762938759631267616047607887862264756970224096823205517938931573517800286901107271091199595868606291055811104984185586783145896282776510850526660013289127321978583474501540387072233569298737437130109280274638900185433124090878537964601076163277034830979472651129405195686768695833895646557812179860823632935901709276223456961989734085706552687093075041858533781720081187819953766261708237035408635216467955085155147485822117745055884809879533960973644060874366199403832186703080608300186735388275366686058737492502817685234168352549189568212738456256923861885263542872199866925084549758137512894742511455262988831650942167888875726282403303511404145332780573899544968023808972201200966419511889490901820931763310495894305418645123915659763198476307551089597011834568591076538035530185913433632884172486031301011527957364469039473013810040128922774989450114768653314321841656920549958473134521207518280552979080534171012506013661966883410160310929906526290324712450613626609241020185076291035917214275221747885859128500549835065166667370886114843156430004755401795372736653621774000179067745652357620457074759101223333629488834948922851070695457855487780065636587536678830158594464470885484628393692452527204489729359616445437668631812464026131216677102416378257854532636637069011566759178411354603053419985069838877353929866837103099863393822985666960325404087130178533951912576085189620933098154229663452919616361314951835902120471040472170822087729416447708943904174477257775783935058615584011287431486960887390865743095112875213477500788193705840643318504015977436011555549241877431775566705675909256550688172922355791403504812933052196888903213145586411086065572853802489852931492150680711638780207436325748918522793858748880125915664350951043050398375156877572437890384705688814599243154717726406369088638808227403031330913345906328595550679581821868988863378034171575764008830687423053755289623120149568356073904710202822387205631146724566095385088410169156880864148605065862542281013040639406760427660920883574929534717701470423381529022828438706670451242319468900164220728457982145356493234418880965561357503007124015022183050363938323807884631819192558056617610667786869838529965120558881187979573152155407017554088847865361748556700003580001823689582521378703053425779222249837769912793207715539360572680072182289002312352446655060620453448790341836570741709791422404486613941442175156948409124709779338952366905660933614941693147027634386701145991288127827227554674617681069044455404819602498556625239757054643179139088334856037093467594625074686755712111845408134551132473261524926257488462630068745071882146782017360311600052786844191584111681163337443954303152565835518258013214248832988845069179638111635929742962263097873887324389129757223096728262717595159300444611105387440383089141769201135493789255182504714218133841753044945442573647765246824125979709324198567695567597574058219486734894857398275517484077663046533624277614537295180725136651999554222997325427562734858448618061854790376369898858537688459012124110658399997945249556166866964749365194045568111872035391849953891648845784767444961353980579146978260772087598459278166711056838551307853567328204139576309918282313055597744013337037574214737582634130901061094579809427426015217894791734959050906579204788755787985092146416684471318188661952875016999744686237353814486533886465728845413700593175813164083521693977590620547577691635262735497053451711884818919410769415960711692798391711554414322954232486425310426109582704257245316392906619245223778369822204061171746544266442500357400961016271050690310140940110151805121458622580031411731303629418507261022055225096154935292877350376344699726561879981146499165794960508090814403832655311119496731971049293651405719652239298776899253028882758597556627557834169495782427232267192780786781447620587179559812563475682880160292483115363578229330969024733032465106631404516327641128798126818505252877160000404044686439867200137226335315397665859535204245780770578400944707802540290689385253131250978336659314066066665270418516819267438919390575587273876308296295856360323635656328967226607450663316891421142399851963693883314747603381056284053953262812357415243276520741350789861989567019861132227054830523138036773211506266380223784650293595113410052550689405540418690295074650677670707167694344422903591162478885154690372365650138363900591322337756442176562546821073952386646386330601192239995614924427235643918782127724506392089551519487593804337606639595666227986344497199398763440356655693878055607109291583381300145765626043888179651717555718255057313134790499450710604523688540859274492388092480219556297561494292235275262153485645659535484299917634178180710953812137673228598949601074483623410866899050923645015627515105696950105357492538558922011444186388015214327354800740715202859505250873060597378230361006251396622446616096589957692132413049106491255230543267333354623169942253534117196119020759631887626972766473051607180073043641410109272316796196934348662115127860465120347359759441564278108218978590401157152480603941267362350067689271438537987651170561710075565487267338288581092193620206853634895399497992907438802725306111795312827419694126633835387394031183106313439995443289378186919326887858683977403482721063813560132374376781154469727186051137203897321908580029778906506131714781809266026900001632104881196203419874772704401772127317858004403955436775962218949429058609264314232268181415430237226598284285117870364067425408845631820721601000846098026012411910526147208817191732017122687302655962800338669730298359192547015875461169588259860117212626617059684064845633377052201541618958321834964965089437783043573519505521312560888501242549230505047383604012566654754095219700420531225778630912796806898714650827181485214018805111481368396489139629392266773057519076607999943455468872267470327720641468556283753818443864078270440701686807656469038153051465972346859107811520668346253135982933366223448739402244749634873010483338563227853203243495146406956166863335579128290045118163940359106633992047563433832853821486916967458913760262739735167184162429699834023545186033120156056382887756986519959878080719350513885212650523654651821174229236693505976447018845833900718309817824687084948461880176348594233861955683285953414815550539523585839114783660437725520224038129358449363387610376999902007314483376065829873783004783251572093785910422449532815604071148015328641038829486202380851975570320865282456852063116629837173448919270920723571202469454533327679826464793581636894574752461435321857981019239073944449487634420260669178480668860430709525963030672993109466985811022026354983438176431843788770731657617801933783254759387295509979783013678960514647681168506147857163679638506829901773486320893015879938939265662478305320680713655885694601031109046582348828137623101595566400328059749052867583717871405330022850685968914517112024585393939716649376180435369414001208676218897647985042410546524321422668255990228008202969794485903086583580468691113129232587824263613200824814089965777720008015167769881911908482429301591225871255944386991037920495422758669791887257293790040917621331255119319519001509429872349723967518966095061031095368022802221329221728125111355218634843968952874823499622457296310928935163125235721964560084145713347414309236880323424519371076596194158815708854155705236096547866518419260677543469765617523248515109565181967564372035034343865865685404298184725172732761495348880457566518239818235868885444338968307434434807180762658806670611308116372688954711340109965349386746157703090715156078606300244446517796575318911660124717322468666065954383266768084370319926637057004357999708306044593386379252989063922877795011732844512690717110447680083813358679507624509950949108910545005348383012218781986868368484964633809924027378563293599016924029606655948666441466704276492222193256948023579512822130205444286203970276825468546903686446667739653476578850008415585493114807464765365536038934876576085153081887603605441190082436967744761060926722657666390065351059099103278315458353944088148697477415635069168384387218170478486299444799789464312160735565825638039591812685992166155742246942282310360844825917670232107662446065582761105606607066094414192658927219827412714546250801560277287789352456979500920953135990315816916823269192072395856569710500305124518729682781139332131728882075134237296666224495062425331826674722803879611240927127749175212812726890044142031003542998650154490021749527069249597108146704381939012475565041749708369914793626218801965707958367865138025215942852835862904339677076986710303353456828484094733333741810457852263269913675127738173456462353751702829043982538770363959544844350455803696509426617500306741587476188503751633404507978239552741854238452167884246300086685935654573726386311077443874641158966848053588156977343246507052371453650307045853271817112100643606111717583127566264439644132778969051287910806752414347057859969136424001892947716109872296015953060470906391198769598854725989174026248786610882008311872601981300595657442963602306065992504723723880440105677650930831281655651097841149904949690612756074773356871571358201241194590969066104757814193783279989332382665644886198381088713727260184553398876680625648296135913415836581126514494569441187189371235040421885491657556414854865739692095216669627849573375374456137397775558516689662131317198584120919644603674931072266372897988310862549106818032889650949250545894512278055891996182223288114820240383670766392443261503604852501199550682014601174996355816545056252591859066061284787182263933960484218131364807589578792674050357145005349618383789508813670370685310426899896774591959390723754760454998585451701034274156717870125981718581000576862390147537835905920091323428857868232219897240619837929221328616766276808334400190818269386573743030427591740432189743940569049106634710926613035247755912159651009283009452982165499481968338171535149406526933172553296593576481419564326830920311500983386676148245996718651489545342619713594751490950873887636154599188884285110429319998543491292888055851407918355362901041188673527399941961169965866536748837508170574767853746883033388773209631721011798272275139664293879764735016385626144155008215165000797186120967469958997237147230212374154430442726970854578330729663392187060644631364164625845447096680625702575588816015844735130397728105337275757371389192021937979249403202984466111881126731050264958355114213418590556862134157377974662471099966830734161992073860682371847402645695729282830227309248555996126902052863572733374564469673737379888510432949914926604751683090933541823498540354731726720482858342874665833190650807468684079162719793145290383951113873779330864096627660543281168310338297675331675170424869291039552880346301299728514173201975026680331859887871164150208314045171365464666779937488576768100582208450292411426068229348515927611402024114241528288139515734172447920921407442778315525279045948219233259970222733754281882183407647185535360058571959494096223526545502981472678062610547107627007391541321008140104109338228642298568467695576793438748333910039074525905103513319369989217555621830538047175881495862743375427545194017805579215906254790833141967516126961640842127095540147409385240465595996365513259588658324080647567400037548629694259499826072060988394674685260283881401832121576328913963621724703254181351128145045478846176945592326871926456551724613800299653458812721951841035132467064736002262359738419277644928819515048683718822359747674197572636807931133664042950110558402356854222826463260535838534917521584408549574677746628565250015192643366054235375608597555536566463900857344582606501193507171122296493817908447226232145882186428996323027009731635742161509346054575719761676440377515250458709626266201615057772578356537574059677524045762614120316252183659592072176834059442535126514045948676099269716616498950390040905030438816082988005379401370868973353057017332600053745738088545340161111774412149996902037491899190406034426254660959991335809262115030418502738956909499650051516882324489272959981683209791426407668432570851983730056150588139135541848554354646647950245076716897885158810275985277604269766315787607431588690591726389537106928414431052096683024318085953699727122285764285550841385841904968013361072495666048377550385149793554915854225425231107493118342987008542277316762352746725838260877639561204993544725119533783704390168191283899954370630083893737873863037864132439305006912856704995322199110200081807712430939502978759556703726318281756656289837016711019006387870018348134800357336123339820955403607409228776206480479349145446975078126374183243484346027819677618000371096982461965264068996885523670741421897449591208443362834157444026117636209359768379036512237022685991144894535881622728367091529744194614746939773516942931013363758176439321673116396145919513241064636242928989666063834988066929107145895705911171535266199827313752015853402706472485050972695418174075993565768178474905840399865514471248218156100002117226193941532509826910343474632155925997412463627578007208571927345093934241865123618055753551480354574966901669223360915959487361896030410862649461356242048083769071890000721117142018087479414555285298632379942580404229387192412121817062175039640167414518963305167543086982591436724704172716886781647909876257110259510399202830222064720510371629159384811734136773318222139113380431368341340023016499749631397889977659426945251594824133816193239515807541451549938692704934872123081060415101586518773712447408890233610465570854678219212251545977412582732020925314392378423123889120598614253076591405976547241955501202064304190936349360011627512736273091289732134703825911254667045675010031140802598175850095487389303833941168406598093374292284745925017870355345084399003247877694847107062242549765654227945369945429872774630628451652991526899624133409924342878663859738912698874930546901027562058019765035371062440032233154030423422543744383579271351367320940669684017464854672541358579113078313858796402930434613141779248270317431865319067989461637650089838694536263266485942430141369615571522866051421990525092166855003408634533348667320717334900112957176786697958413777719232326074056308796770680776857978655919801975843465839867230451123723826683934461649166786914405754583260127496416032492586243036367568882938301372211846981563669624477296626779192681998429925823752783564782508253010502035357743595877446146513795028967157125603204465301648101209150340253067735696583991014609453857395175731184840797006232495674499855115908579366015186479772434877660503336878266387959353709512158615406004757177583887409740079681630425466168018545766335899273774794099940579631850444855628465668955692205512943047624160848029812230871465081120998048650318671241306332971986835891331527000099671633598858813459755003570334586908844352074540068147471257863449570563283716813334156945050599984976690004991497202699279770483401014459023364591920358098213667712332480186618699044162578317130085525222500971357778900476714788109499066328523352496727841511507057144417712815124918601996353354701033393265439630494309761484098740521772002952608732729589123397634231860123942333003933727537833811580888183451542308899778386121270276700254517103249169931400613241497658511036835487108310761342412399586320467368418081806883684070105335884549902213690195158718455155912594705051794986163488687199633232227492460104874374631550949116627934878430917357811662950548393579480144065346459748273009422133260036471625228529400760485432335374287036166881228897746215081509228747572287942974761730363934138246228450520301457486044011554242976270439002233616808999450241221721600811277530089759468129746552122234632286190148188803766008252567763277868576260181075093547791900060839386574857709744413893700976668514887595706842921626621908127362455787859993750251512617718038262474421895237908492707696776576827959711058017541753708080675438629517624014067164361114263967188562578780939289548862477031617405934561730540031622167339085476021076750870411625799625279544767895355622162970468139210280448457866947796040513605258352809666002015003329422606232660667975789051710011685048568558400627842290268974041359733323715315262949400678510165675851309380482920765283404594823426767345424181348034255141691436664117637764264786335465747594242246158284424953333725429207461715634852564486084634257415470834654879115451729452828703814127511377759797979212308459700409211338845875219795678045076287393034040968852910184816191756235411600183782419462460222520517525736013967228282361162662962931353203132907542825728367161306749703582181240352995598916790134859211151596670027172439943097746810887752136760508133570736304979570869495695012456778054855105108969490649660287810832546580207332904755111499402178068563171360932126094999792876146662909360457179212534940951680768092119541033834135712095399564043799313980832500990175714782411973704125712135485879158055185006191107846795051403522065224685150412599132032105432820835982175178480029893747842063636202523353184562235781202792951371782531624936697389738475379815287160704190275205129156988855644804161261143308292653711194356978777152313189439486902100638606225451644902727616829230813721259417599027543839003395721676012572685896108079147349529372052857044225829142008939866694952633807387295733426324821728834350391127647771978259409923878135796303276021414948040633360837310140764057713692366088924888835275358014980479860958967070606518168193507057263760386852950085559174080442848818326863942866052914851325235847536042639776823941098015862642482481626798359409790990755132878495256359790968295027844022718496880786556932411417707866848799297724953209266037280253657171413521797361184542771970555156707037028675844839965432551593479501514509162751048761429486326627380475849141241889225962809316818617191796010928145630460060406407197020264233101739557463841071421860714668695890064448445366544149125056118221482842985709803978924482214068447485872609166573645280327769298053952274673583742030985748242735797196785217867071669236528231528628490252360964886554900090550344472592887431169525051973396714851273006340764611081651576134029021863986940829309063181783294518113071269097368702097193306079217740440705748872574099253502220753951195169386636148191665908803536710159673253250779399458715762937842184300822449756825024874282400602854328603281145325355559376341178495589157004282119628924591847735595817522451003784402028291263688846511782884344586482159179971665467591522421381332230760216369369893559271230512189951971936333366364952164882661691166170002550799723096357498163980924374196079500072057184415231202973742041648612530873642077433089181368665087243862527799660475314486350581487498403048510481789596195418750952461603665701683095088181142077555435338061910760914465019929592274090378115601076883681155682463741014791095351698049317131980631963754586778183711440949086966113662442234247485275205244311914275472836605941693012240370934122506059381489593407268724901522840709558111595510631669513788296139630685424093772253623574315247157496602880445172999329522972393990473429919681491175629983735777011494017534394960187089433491793250459902439305848966152720591849881848767514450015501656107212650250514189374414780446303021900726041019105146270746105897875149230070022726445482568596239381581845137326916449993050251682045799975920426200619958117571898854689250906251078788335871656711727094743968500881333051967570110797672729529232316344582154815175566779203483406397534065198682367770287316939448310593046772262383900990454116662984983104041359829572789618748644093648253347502451451285245271624322763017861084527134945986325122278422481203119248963520083440319609136833093717465423310786832677061163968283596341653479480882648330166881794506480819755929993231755740978474723713455867043260311523212420371016812127799387672528055731949203659810137400509206155598800458756821047633127357883871886034452451206843141898287125479211943664834821061627770828279882411899712321343546941004576406351213496385932810328629691668864781299702151681019263893888669616385553108682352074740116567582879770639749937877191730411694936228331434857917551347513330740040208031179649310481797457014988711419288809665572568461855144599641767373345392663066045859826436871202341826645249795863944461289513054017847077298903606905411621759481378983269159429834768215915731354451403242507904095936961630422381728954377896767357831810072323467877152944436364732552678067555968763289162818006462107865042245685974520677282622484048958177343044454861626837162990229276615461666822636420012937013597732388845615804873996568820098187689851900630737085153901110685724535382137343312546272154302403803706324696671858861947358553806065848999382704520833471225250165122425693329678358634268013893859563723812778279027666688122002659406966127129015367779005386138870991123618004467014225837095170367170574013552341877178792065056528033565115572004189896685094117507083834022655128409850053369674644588083833286262128930487791744668872228827160156843215765585900391313025403754223015950979931222794553239538596077931039404889007840239891040289191012465807667295275575180323505617903528225639704594951230165445803034733110708885141420017255377292353332145644353705957981507407251285856068345447121343780376213074537673934533110200281684649465399138457589202049364071277259186717856081731645919564729451907574901854102305714977524050300837417475536089154186613980684484643069377146665494531036493097665765743229477067313355124331879360570895948525950260193338718079575455290809563374700092026720413789254476345807786685938953422882890142308743672950381998754332860154647071294854736979924507355451090010565274521186658072962036918938567548900983889496512181491155337954518414059611998757822254152767630698572307906573016922264413241008805773827125002905890974357779003438602939748315184307986772091582923078834284378206649727027715251050778759708912058367559128268101676756323972286567308772126206707920602028594908375451824390659870342997601592556883985156946138596285710099474112437955743645948098280610205159331996277720580836927024185263408685963159671167294932119537495190504950837940137708200128885521655818099537990023253470529002923115126760419382920520036689143801097673062116116052899623616938287390552234979945178360540683555129316349400302917027787408411152754403197762138850126262315206539103214234047248248624910186583862189357195601193169569857605146008015266836310707138007301465780131435063657187174472098661165387596893640183043041606670999403080256018696914561624820011247491718276572221631562926323464461255739069022423822719304686059691937915538596316862562033479333814938286023695710561869308560187858686328645214973191978120245877590008178873372537328417903726569869088276248439942701102696237099474949618362548402817816724987563856043507653292521453894021476543006174569838749127155681091033948241340685604280557915310592664307934846434577967405984787961988722956643245212692063207602301434835193119607748625632915431142244911569962997741856386384856116480798895538151387465630031651256290945788367133424682745732056601089131161577120532965204517289390872143296960796512983293189345903359386762002263542502220369459358728755339431699327050885750285747873238995407818955380690112039883614431720026459354063756923612680685729146874394582771661652176256193001623157218392548399807798502558146580143579237590955336436318817786456860141784105698958153415923929196616967774650696041956871508760032046828765455493410390723900730952607574389842948814983633500514780089611433502044623241372646478944798096220654925893471584257684219667949959904373777001265874954602438673326147291251110133522276091243970608256077954025983188831868955890636763789595533934236248351041394661189262412778567556648043357178529371205234539460404282651505770115382343922774416299080767906196477810159465024161086184862001978354429497527048910629533691843643530101612353206267267350668946014383260299899205974216124180728203367194775888791875571084294581478952774800326946159903093614236431932392039543466929506701671978458761368793183775299967734260981816662919312246596091842712864986346027373336073690830056573802236234605657985223936875357316201163569159306743363287908417546318497433857243312962615772050978985124168042165403219673617982960847064739298737494508596670199026528692686229115672365292744686750715578439828043525296082166980039101060927540998889300802042883077361257077644177752477984421051568614219183755235176737288411686877868443141323393170794045809052869289808149280990741177855334368854567176985125557401092029856943168649000378106755784271936304305586881414865801695090501034108049399520618587715091693693840374667854261679587915790534815832049834226194290235980438459402934431373791617897029026862794456563274638032921449026349153845298211952621507786330840881717295132953450098899779182364976229525034443601395186784030017657813395767777650043507427586495264569097037108016331352943299954059650368744131342878484728030693418237069121457596287328729886236043515250298731694419983633354358535013055684776171682210238097667511248186633256534389488153020519591199983883341346583719759509710532445785947397915247534973312419498844222232841811415792121176033489794052195496242119567448893940955454075468992511323912211352528762275243373849101785313028142619097862485814063793972681605555189083157976607303417118854738898232481195637556290371966140837933267067701736149480372517639498530950452739299574833921986067238976129421897146800670886322179213858059327668222951094815729107803601469886201898531055117827589048136535122191599824591228118623299345014837639941654606945117526853465527727801551843939328271415321130698425331437651186238890744568719400067296428005379863336866222448403082438328344772204740244418009023480339289967173829035014528067304096821414498981464992598607421123226949666707239313086063485939723235748836096503439196975412752584064670838021680917774343679490112260511830658047379283664871106991451778518126659668863642371662902403683745176895487137300231448892987551411840018669053869702735418076274374923203121452663519852019559150112414843343378404004400049056473850230919380609061548160853832191695444502276313334931350355215367673090439919901164388600531775920376902157741937431308303303508649769333339543750163732027833542714440741831224446971811027283884984531498542255029291650548819101780287354075048671877562931656532266533590107073692439369500679700079575558572950060518690264428604795459839033913918508191320374252223908789237923078456792130460560524320852798764172762073841679227142932047537121710585886726209966457438260489846098802823156465879553426072463859241268459859671938866878280895501100030435742302797116141733826084466566799817511773159717836167792340551167614533557868141037686170117459943832781649975258726080432781537466981504796564686646631309109886240700377659818020148833064350692972894265691331732866750598474329436112962169150735119836397033164094085311206417220333171531105658380917257468742447420934076159971796544441515582717375732069765862049808058949830292721447566982681080546571581416129994959239891728128227287630719887912051351952392539046859737457869213532166929169652496858599441382064952201132931442369811179914013215817446618401958463400978966816160503976101683244876185088234978633184543948986199590741930364057573222911703865328253327144613149695249759178349240720038526688934005981872901066505821266764496708447497827990575809122358806149013641445820426309646667752481984589903766817086815140782342635720091763908917887413589132398407134477354887780724261926533745273875288213825423919455921725133010669582874662890611949676805930418365985645720736919658963199635938461113316087695080352341339529904614460892825113589315693352043161781581153193044604742885668220468884023982354311004942218489574399802749060428188381774442103772136848324048819965562954622754838081736368689306200336749779796139414763913820920362513049348679177634984408268672109819093994358460871149406251302226149807959013294148662120472929181075265359147031322887593284426814057885808911560018089397477833066615163047228151880154530651210405853373017488009312307846891272170291093423652577324890264606839600061491471401425166458610083735855946252612172789698273644130162817841858847678396578630603012815452750160941878640617167741818557261797064921973847247838616015370821780311908215281903390132507205217886411149142062520773904586155689663755220406144794299578374668104721937232509683881776243826166904230436308502050164677277703857076729247946826240302187979688200209296540608701540342918983893535685913140376945696330089221378689986731933386815138239662127826740474819488844222104484506923954626821818590218221007084295319195015514510660844429388854487640727288435298385242530069194101082156322896454986793486017878040412972080126537937280732985027322933156555628700256896587954142660755407670712569929709840539674137659384528697905653289830769896061835396481018417863324870902259520390253104212027435991721151041062394015547909721112654879444902312986663619014159458509917588680004681170134116442065484900698401184098794323317368651559779269440778046791436280841288106307481759369293868867564267398322015132551059038300726414957474077312609189620872826810275979025795130173275304981094977315557375113878628006363511667184058228612297344679778168155583036234921132383806339136771341377584968972919530676270657826971167355053809612065283753835240044290954466746760965571353897380164352704085807481014474053022319247340080584031113427176548097169632712618538919303098028133524820911931202147746441492400217082463485268147667661225693935054047096301137867777131287233666158406734606099199148405757440309284110708496979151353720377004096641676029251665960407067922652144897451703731455540484057238164043125214768982059455081961896213302753662926124383563162730724285705578578053659509789810290319321551955816576376060186424129260478042310765634973720306274514391292336448625874574794811589833984840003309963723766317127844011902248283512701400439280756743180964503493581579870769378051855581596792548947868727810508141379688542154921312062420603543262348379687239290314552615486282107220839583288721528691177046177338055472340096857108146489947121179565773918120691190521109126520043661103417024169073534100762894491170595105936095304786330800601019462036817206051502564303443521127879867640777763330061450085167394796925066153591886649941564664078310949065350924768732175808248772345452509087110285890164004453694995901458898691372799465394195171165462451226303041801046677346797338016150744238941277927272305605962425256182667299179589524678946616209785360138172264314015526694025930782912894633111306022704101275095458482499507064445359977133748184489974110708976812471073615402813276867320726211583980232161605065580897635273234594511680536814863398500557391113272368827468514962735717926990716180085984340810545698910737653436661983178476031830445035424471500478638201883862880801755639652870031018357182294581330906964005478668739917257424144966398795431281321625804333599051944745480872197143292718347688986254519631240358491551911726221737374201622633540163025410152190055008420979506318015833079031183554882594912837571819091696670225854220720372344131032043681137327636522192145252234358025300622871105358804251712746435453129706358679579578399977462927024128476587974222127449617457757483338474507713809465149672789700530205992376876116423966654134241979945410137769777501780343982129618592828180340298500932877109980479959595378834289526734224726967970014861484331737165529874826791933958506444186086103909299194303224555796270140522728633035212038047224082900850602485549034301617143276838984244792689991719026203971983917319321895087241281484330690170312709541180658114916954177264695498315964123356218518513573244810368104691310354564551018744466423401399328369235536608643345404970328635297201011677182592903453370204344278287827716683095427643790277529370882210882575596750914547819744875523644421180456770181405307886890238136919298977797363736797054999705612221779462848678906666084269049183872583949068770182755496055081498964049978155883384316021568247181881644991002683797134326051061255786633450203321930765072006120439282349618746056738979308792516230426926582034033169074689273516676406901237156792157984032942244715855407265212253938314393814884899068492207999630189494775593685326602119488595996834867165104293289692857796186794542674760107061411634898226250626794526046540768110531598305873240288138286840925889590992961328781891151466181250357199636955693667507805280794264583631205724708040938885880435042142223563968605906741053547292269611759033137773642453673186933556184611269952786947883884032056653293846579625633220072029707539355439057842791553243687132363244771652236557764312517337571267815632174190114333031661312343987283506008863868522289971901105251337752649555486013879077312726169891484796499752557718898313773466701169504366318477070869035588958653005233498031837278732313522876905306594367401314704518101048359519321917824998164600147425899448546111669368899036177548398095541332086087972370688065056191163549343420422189625121662845850804613981685094840167276528310891552418672993174315102362999908937634169995704407986954005892073168259409065320009430827341268810233432237433497462126846792111823067025280846224398903523112517822182825212163336523377587980408600234361516078929422411496002663249137330079606986175747171020404480963043155819250945759046443594071377625776027910260178446063815502275377918144213067494618543890284645692850811116851347171191872103376271542923759664189459376632036473409212481687705719895184013421239242191531358756440273178002250147618965097697007464571239949010624406627784043200026360004501980774473818844664281134042184830293043076972772073269289785765711267450143290800546168880305619382174415725146024772271253664073513023046726303407064280805386046316878290761068128159325786549825259184094748999720761148044259071209161780814709026317519185342614543415682536798172617654324254525239667032101246547529296673179148376474046269944199408625750711070490737085580236405913374270997879935230280760070892549596644846666649476751902913322868837024046115063297908149157352353833783929592354009933297784017461419479685707627619231802262945794862574159111812172345314779209608080482385587351761857473417796617729503274528215690374965762361660890234419089421409131070556829493710927989782836085697383613403094852179330496249600454205926450408253951863117074175325355196789120898155091012425433470037272777505498429203101818377108515589695936032995414308294323809652725626691520675112613493933150982424576377401444393645488457868742610129793898547793059910489132415778495933301346973050500781719760372272533455979898968683078457882716734864836592575249492573638869407514202050504428207856633233388386055338827725388067534808746812486992623485272278646862106000589444670389113070923674380588189366635562534733160169839309946260426580149920457210468496777495392203531597442496499386726798656509702535533223810332955084333607513823971093733191002926800497142475768401071849653528969034073811079408843218376370982262224983954944744148943175116007948095137532829747758882454630212633410632456324794353808882671646665957518572297357268334735252319733979798741933425206037023955110076189717231971443734443879685629801140105805645521934879925468124498616263289197355167053059543265723962327659977543634281199267378099024195264731684018903681898758190263246054741801414742810405075341957463748457217882602691975636489433070371187536052160423052086691685147667412445157837617274693869394358587693286798046498121940908362227819982898464989117268362047809931495766250514442639854645539381468087416291795685029057116978485168204091515557866079811631834959956333102446264899650641366331971470476640993113827575614862645533990711943767368702934382566567606968094357707519471456329522833614044015196252630476723968745761789497697715387268716151392241383421651794761575690502851336200479996559045519827709779500889823237139592621342992078220172691944873723937197379099608123382810947198416858037693124764818635078436659723386359816368555714206728947642064428686186215598624539862846569365284486620979413976525273135604668345737379822574937695196321695657569380203061036780872682131914924301192240791573483056859569654063668722507097776101026578930235835568374850617443040422916068326271054553789810901309961677981761295609404338719341434848400493242983667342296217785004030228912269618390003058815986279494585354796287292725969882209807943090409446045793587687782109186919636781746697968478194293122864015370009278333159515208058069938255762705076705560621437337103470219750661926068341703726761357498988834791833433482483416514771195112197553293167480301515049594382710095029318779254702648175543957104809510223005560943506107395719275239177952294990009532624596853590056419003962131083481372078681253446061697686816487604309290612573255601365630201817395624474917598350564850043168221896154766909115993996118138015873701345461765232988989400331232302182474096654250270381853014105630918593853034473159487871534115016342805323166921208211273704762341958305090022030500495023493218037969907955797913160730079917159790058188868379045884441699595582484037718064474235621632241491385230141809944213161234611864315482608240939183435156875908881109978483046571411186615399140690317121040050270283565635640721619887871453846801896755869318175698905147841804458276564792011442349203451659371375650959828326707304532241971120633899532087267832031853683368471064998355609625395377835378860467449027962169515999100422285975280516894417631922499360653556377955687046786598504555401908912812703259137151282542894311029459422816972124789874557268600985282205501258411445547011975573962706047743410433184014086209982828949717614064339343691927650582237668426354751616420270956746054417877220096605881899690213422963466273883393302864003467518095371757394118218155630400387391018442635392253936489721336451169189342527789047326486610688536200235791572282855984321943390954082318955999325596947938962819331144194705963305828518510918384057072871369869453682788160793470138369454693035355447326934816730016518541126617403886066848517457056341648730991474437787047185576025995211855341186768246663289644749877361261825025513253142032489891505263283968045659562451338893607242183810641254401525139804388383052800680589046815870591628721791512755964443686310764494626444294465481180924175250493733854056343206389200780892134881754343497132742116229721599215412285615360584776424369908847556462561981854402541602384269907693395673695012992239685900984857795626147195747957423366717232032496711055121118453839334018170603199429452366039292497610687064410710844933339481109053712493154627475844998092670996904191417216629777039553121645700303024765960606818566718274696288837727418151651552174524544318483171275076914744671459553559204493738633402472283576063997648448643789220037127259081794836682312942846051039301618865997858730452482419835265698903748574423531946186457043183510365763338881883168933324083694907589892524758858932854582336752529504568215522421152798124296814568579890671116217894171841262957599624100296750600448167248783155646645854899128862119759712255574311874969109496343295450012048351213288958613028852383103446029883386390291172577910207271167325963922244307855979022100715318224846424676907394837006216803293254695848404379957379326104451356701653749210045234892659398552058785120107084522049034006085062229189344570750263203352157502660039279143207972567261770402327019902994170061195724735543269802890749640174374431611727627549485233390530361550438569843967092021392209321702983987184154076583792902633274802476770172869516742597469761007122282589991246903702144624949480562309206267118536220490831106821313124826352769009037913361114681538369386738363053916288214250602484746392261756112225795203632413709910070157796255872432704713769297170056651319459075461470538479822073064920031380943239505991336024275262498405847737778887683267708060449985778445107122511432936630839908756351678132227583661569132859924088027538482154712922258511515958472216145485269241776186982724735194879511879258159813986539436175266423272525338068512575228085320140020569167086320486910391899790745210610463142214755039652684660804653605404542667362320740173713994283368181165662346974444085458825512398506453199356691576992283766503857421833863916617077091777787648126437076285282077834055749735645709628784878939559147915660025920746724814256546360864904994459206687136649063803089655249512766741038562633955542934867660436410815819022618137597673922097235390196068743601399213684787244133677879642350126144517036794330896207059115354466111076885126225672672408415764098366947843697306811974829392401822312413311960437378716421404639381727882915608557760347294584239651531219155206421442076071023920301559034166649880800954320902216620595583424590846125129964170850800778867791195425520625375711929948574597693433229852525829588104598125420359999844161204044314670355648598464284646697017309604752128884867537492222658236624015541924559163255689090364690647545728440291127562416653705312462595813190940708175918908938805768959805272987569620409481219025802427379065225036366783529821835139389609220782153223880664997001686477179955389829791004862067665877112015717523016915451435218907177742802855285076812053808717253698341127956358643006438521296796253970587525971480350081877463764629738528272216148112343206555929888339876870538461110608762994915164432112479354586999591761527867512059084345042612809961162195556699845200808528335403657572456110315491184937883966255025411169450228747418238961164869270911926057426083448961251999716462917115771156126522055855903091424327608802974191031050362896946278818972515630759712478210467311980373283510325107789306889508141005706825612529796877328377980109266463011766951505096691228612504237920417366891172048774881584462337554863785343185762716718924804955559298202648733153888563394842332166415178263004651605144921184519147175202393590624356210831589053078351471382658289014919136686461626562544969120133469119092086148970219888489597238679148011127653388104187536895865472505428153060847478798204178077816703907612189664698534760951380966626488647929822969197383169194248254106472851864598341366821136999430502004443332113317942453992843175158028386823805032344773392465680707784422671442773760344891318829445474425715552224147929184823849110386101183140387099962913542562258605611065153179705486761047740684492351321722061364197366772729974685261799879275175067444874854478410160245376095815555955470547690714494401805689182477328893309607252151566061284895796666789343150681716628546905399008426680083702392398096250836418474061840951546045107699216845010622716614667039586214455150110095405793838376847546152679813754117811699429255504888611619929079607532258430950066929545897749087096689050822671374465824549458584702541176958517530070345659006244270625199679308009796823664500595166979686608598227457555559209653921731163891811652477801208505029854297288937493162893301133395806659622178545594868496166995692063078649145697360413881947111778131927954762179416127725372338609631916609200127896535040368697361761252094600025326406050793653513104753488274961112514045180877922563543896360960929410831211014286404240877032711096590196015664910774575394591062557377158210797601902549093179217932414374622458038087747008968309689004140464209704293312127926805756222847993069680304575612603084116247824706704286595907967861255530583145220989555618723133610246741188416879216166551132637336221249142654326102066326497241756292573270445586818933760015683307293257844377489920344253262222750866633949275794865684478487017854718881678664659637395901525444294219547318326531488938333173263110334431401261893318014609733433040944533032581942506250925462052555888892095541399311098077344662758259558971099604732954433187777360223713727402206919225459939569598019208952502048863604904617489478201873364540664649227668598482946549100704342015364644450851057960840381903727845707467241349504330837633708823481023448771263420238801515860067135302425509546489785103656471970697690849688604700688971647245650489754898705210719433508430023280227397066874143779232858382639362497275315992078774501851079716246357754071261128121047322731822712472603913186353768125594834412758549754743944469445155568056528269941776135777980761197777469424831962396561901874058125459160672698380395914521069322986499015431911329613526048433559451633090880386731571644189772558030165176773939147288956429327637503895533079457370705311930146075463253728522651938826586623744852464673141817741337425544310914990086168149147033314746134068671919736896073911826566356748362717221006472980103691473532690955733877767824693367830505131394246260020239906544156977442358703830946832308398428279357305686019443295249526890808599133149724243104753277792143076632749715136910114154958102544293528562804411176390551694700055821433381748429460519975627807458369940721056661060521814313970663072476648305730525310715735590048244515480880446882501299673645300843470528985019113177514485228690766864331730657027351541969431611311506063061840453065266984754730394922974806925066864401490944048397370832319071689291047194098654049693095237346603404688563001734869707625354071355877216735510719801170124245756555744106766697426192998631991355483955538989994793741296699651712970032519099605837885203666015123025861226517825811598189174296793322832208227337495498845322281013682312282511040590646813530754787336329918676859486669550201201632723681860913833218200215246347898367014183210652201062840550122353661301945521190147906588433048831872821282557661085093953392792881367944714697252527709129771211771775701278606634708334817384199441456131454553698929305988069785610651936221325020523144093218168585268302018293185999679046217437088806458497598940910665823352770847959364333263934602562447271390918067722050393919813202316994187346857403893603279041774959113899227788780093742158951959400762196290104203653350729918203651368091861700894335515775474088303948167713732402586117837596096281633668075647364618115720994161110693903717724472600923791701541107345647238347383343616965852801697623823986625682398973368859660220701680460504173532783528409516899765318241190263388103063170871394783156456793400852579990768292079944824961445483835223419067321044371905722851224845161978718508377551322610974116672032259686411229633035770992132065386238849487690819779911187641409282470681499863690273322366074326711010571692279318842301186551029695310146530572563671415916516863739125392327287040705728188960051080713251605934471223281504991634441814411389061254069557200642283270464678320477808323175628080869812843778560475947667028068870745103645449233003021306546321786940206662337111792371726195931909693639277397139413448967092828578558427056775028717968503597512745383758934077852063748059643615683508788092142307706000060206546650375345807018233369232580564350926624022362693708524955027918798129274649782997317426605929450278607525047127762053881974313575413389649489128582011269400209120380712065205052341410535466519375137957214028445370407120853608775182364873329935062313997355065700971988928171472319768830154004851935525444667844837831276216115639426412831328078634181309792618639605054459203762402551102415877806071697386491789881982245444845063146877453247225149645094830490831142138531541993148516356978867330281798907512804678194116427981451727070774411143250227566048316233015020283558794545742524489021383324091000203560240363748381845337027422989765827145497444354354680206423743893729007592847534986356889471090385630044181201650563483559079546298243456392762511260888623848064128115772281353302510162649985401442474468252292737933970631519634122772701686844092880128374638621137061552034413427169037379470872706336628773873695393301820217042606347409478647875784831335537882248373328554204593593802199555007866715815357706339513471901466711309475542668891346244950108600651607142991960360156434775170921941398994356911228653324555530547789438145064909766179724603274358833670150092800358457614756878072397613429780279879721284973483714774669000546091527928515595168485126950747376535958794812267433466922731823012499603039416031970520306807572007508811865215968158710432128154775119732181112220854043016396906442291399406878157696368906845241388657927408823908478190256471201017320037795293702602549603842381802206081145538188905850281160204091577713751334414347000036272260554771980457800800325175093343728089404646624486173683526647971925016869533159798191660430078905981504023177074233454814485806200214231167237802368368072208922162091068237122125381226130897337805284008764095563439289283156922842242510620871371709796598756430874876981631001559408320275228556257841580923886554535640748677843079015414643546584290936781805799055037058454472446926172345344694813861639135838796017891855983479032122213113142027946911844076989156194717765450599646341563391565699200785798647928193137946715498682207552837893305267545243619856084076054461859271748431121215142863788835777796546759354369993346599507182655962561225620804571247742682171826720939444260874179773091360745746279929989925837222921377083179189994032430346804420447390861823409105243754472802539902366375026495540715952793417789723403229768078765094121197191897753611926400432596513355325986062924847026122692714789786183519617267354688675565137482342065745127550021122115307014293262902542306965285556788720720185702348187624286582517721475437918415316136921864287528376872882739450627221857831038938410662196510851359284108395410856144985963466361648443951032213618979972086529063364604952454271185720914944466146979836990735269823774553803729797959611443266214188828010164372837225328693661201675597816623633356480558579490417281088132630936979766406913631694780056014066638169648525264697538228976848471081511801046524652198128201293868983680217070170255888700031807541761662750586269398651275861016200918501931247239415145015211401186386993256676059362006084438139272059725257492064355205581328011957765581812472161007155836114700639443704487106209561694970099706726276691128615788550521388270458037677430199144107673993127348429953938537357702394368534778668049627932684697299186041048945171027952494526876400512894317987357104034250765792069241538370348913468956119749947992070557307184407219507607203527661512578215690315324535933403336698521288835710796871846161660168213958247525610797918772540262816453994278376239502567305386939137473594398245780259674444421988539848423698967985594437535379904991725956681162316790647664209855016381303341391325213561271285349758073207720622725914177174605150160225612746147787251569602770671412015299242588433338371983174656618984506832539499029069634962213618110312683583777687149285255222315501136395711186154928212305290114099792398807325719970799603547596256688085846409980529312893208186783633719896140439091380836254517821724103510307476665821575112538216658340424971411111535744718610983611796504424566463220674012040930654027771035171307953522354012641855706501847034379174426759197120477109789856898338177016309813330082158218202923162739853287028830280003974872065338988725329015406424551477608041904334434707195034590957573359304432873716493833924524753359354826083749262027822670998322755755453546298558226002406485291894018819242716744517796654082560355907921437148137690422100054068529956400204633810162303717153690942666765312808877151628124988627046984638310717136304073956495379971771290600916895981372212796953653401440493724887223924715864029134610828911467193523214873020344754594464798331652707485320249753390147421905031769689415438667699231289118346928862760671351555614512790741473125557172840226471314105740188455635299919020070707784298652263011754485053608616748564180580902272438335551000348751502522944627664584793326468868604661946103959291602569904553997157702611059992098876977286789748894360742295820645456012832253744137170083602027590970489314334572287613278980884408611239553116812482048281154749911597110891879852535739979572585624293008728756122890992618588389484224708747073748614016618160385212214446703952097467877836338113211893044762087370657353998442733500506248232792896587160444075842210343068242690324491037308763390029757549409567285326814660868052605951011317690146053670767468915578291403027182214874184715456862808651409979475100294045436711123238971303633235492265803323926097648538686524953016741951658944163797242348568779460494405414421349652978127904133581484845388591848925430683586375128370153123032585421865647303245538250362234827520750719888446787256483812398710895264288445876890437272776173172745772665021388314699106828422764134145439972638190355159592065976085448268570162038909509741653252821005701379637895296989588528187589870882140134955348393352566740433313079220660275754812805173857753398734754311719671816273211899122840128563246165687442938707636373396904331868758555026121667507728128698728282485017681076812936854018488368762718388613336922492001831476827098033288973944787698966118011078963981336574073436696748653881423011230629014871990413706438854502349323255328476694890558292878224797998713453911938022543673671115237971576866690189096612390408002263140764011846087386419573649240021119786969810968052495174353164790565174099376441924992715860211721795999361736691020883452140011016806164930547100202733319665331694650906576760549532212192991157865943996139022903102205360034862476020043580927331030719168254907791746490772462348950778396224070129740799057885110347966957715909402068271201626136107625446832444475762986013731051948428804639510117623564058552949988035381540546427010003425052033982535147922936290223423610003997548064764028201338745314504697978647799109934974475504790784665642089445604929069678475392224201240555686994272006335337459919062946062803577417802311316193926609445299452848240524901674701164478581877533539803383203266940064546997883482616949479766497731044383330468688071937414820454268830446005214864204544555215290410545776734826430420804658675618486505371541492413783265822137495683672509249610735096869530347844874651876815117710351945856626429588791625562098168536423387771041966790499999865510428899111185840504097440327159328760719403252218286382383050613217005978294506413660377833430990627927883619500099720932397983448122810316277299931296079598755523862919087989473312225889335634979210011739488137728751537004614863301663377953788912247636492674534560699447855007344264228301895942367020132498611921500536745521298997183273323609115787982168794462093594051641788319347912791551073362216434987859833556198434081771164674020154502041861595202825406181367045426755249151947441272693409675840622933593003450077884940542133761806005524838298770146543423372620411699145907983220309116464230289307179578324753865473348186774661417754230355893207401769963228157249420511121930903093640204763698721368900968097161716189543934969752641046028386720007775027568424926933387300700259993666123981889409651640106313186359509963817779563368738329288294087235563056020007830780797577815118497051342132719972997562499566004352610059203920055199512170272108932753923052649876775516965696276068440968319145958751194649600672800098820213036552382518587450307360852598756278438725152134555328668384447358722670258706378298340810663923293740526173156293322147930122191834455534458842137414471331873182109148192886877434581641687364394854958661285126342196442636869378866719514733111870960970318277757316002565055442731653502258362523793593069422360675504803448196241534594771606412329782791052083498225072346350784871395473218490862347916892359930809863902649593101253968334652088678717110894891004574235283003410257297667604962223132206423461450752659887647112531707651394547415735392397532286999996520364651976826569451677537111164173075504103161343181227204298663348745145753829518999943684501996729019829746826555604936659887938549463029041125066312625827949795032717743691519331211788239603688320725766800495763616049852150526155039404103197477247510085856797248738609299662500665486463379545084066336063765174593824762136981975452492651373869720111441828817170686779286848415464892382657070854307464181606488791419764266435967341178975048739088526088945593208047846106035588899314224902257046876357074670290441084178975054902669950484047546761446340200472900085709957239131322288571219799133177817838626762383437432724992734072918009030745692676705520602572711351897335710850042940971174930658479718023275367328760670457605981772803740340426381689828879450146918851174237935715629671958752241465779470281950974386830757684937047017142081875939763132491636316262235611804148443507903494231698357002203990693984595369588790768572772715494552679817320367928645533601812335171271002065403291219831581320806233476629132478914388486062284000861397824504381799332383492243207206768730725306294738667273729628741028917697878652467457664839299262914658224775943896014144200582340924899916669450485112320143856591814536686193226302035055300953124667996782750087668871550593194337109660671781155058586278253170655126897882771732872288627418373179988963306486991789888424278998081809125987622706133944820464106177842553743787792114975999133138794248008586196699038179592354612056969444744266618754208920657765706010741326842337956777271844300282815507110958803774259412257011170376584563007011368931958596067479062927571066265554053763580953170538222778760449715768820466453993539089337183766509790554945893392494413443660753012904742305221156555544894977459887569447703838759458062170024890249098215793800727245501677414514886552993118213068920278251101798654703430275217551897143304043201766851477836978741712673996166916444921762212699862509592148162345166388715156538952983451530714337031057482979712751184583316763159351891384024095814791990681087957075734849063904767906616619820077733464519728881914830992823176491417530757719660315564821576796030620997583166735337369110520126520299294921819922702793332296007610809409803621958992545681697869656151644713146084383993579120920250772992632777165882369642465311037788715254972829669654049044297949610795971395632407917116897187062911279441619082960137781444626508284512328139813901224630389035558944544088418230919644762864484552443482193767173428154620979585902455639083030549561024249094752245878181035340223896008610362760437528753297539671096344882941072747858258412327156989878241674000062472156076255234461800368092973607424172564296834553030988059129322443172745760419097368663806837389401326328752640118869161742940261940266715829687857088199527553601432766368600175302426400977617295943508591730126447041420708328105970489828702896508985206990285605666638227410094081019458011230569155788571138772522189841047205864191485165902819137357722098601093989540047587980450065617078059860308622381106377198057570581125603461632931499897541032768185518676103325271747716738479266565155358528069052047717746391792263760078222947638533838803017927234418803385370683244822167305234242898299782949454927549089912354750990305891758707947535375177533820690112211614423202988880117273675767747037298721377962537454078193122957793910786976920652431550438572556160954094187358181704428918353173203475176518856483926261974401255276572096923212404788648178254655949628123668488583959189338237645544379112614925970276789762340544156735676805336063379890974786036206944996847631130341272470196036508420438228720893818635988455781520920654674531433321482572169933126098419883147962596721862052167069926457296249700898774504304131631738677304054949326522052520971821284025245778064277402844705563006211235383868066902231669558320665385074652330626384088846917700459666628992992026204977370197443246371549212298044525304392952969811110384157469257983783122540329896175284064405976469577008414491010828882673540685075069977243753266070226312489739459844870789950936320613402231060211397650440702250527027208001778154251436785196633203685472404546772999297553475176023559071363046842880654643396948736692656727589313505169730093812294908134591570860312489536614456639667625416637962603888982498179922471101341915983172787756267343639855758007779251229124795936777283137598165132208678557500362149168335035432853810916591407107463231745468940257732049915647589688469595843566538556884392252797544598972435870555510612649268676756024599326600648362317853767433358409148739118532471490192296239631881190640026457076945444617161089429546473608651286901271241872218448258652690096397927059737767970906268429262472382234225902724356287576107756546518464528014085926837369903064054265122851466618560687563832935976416759348271555101807771493246114478681681451316502554822657699872027431548856091914486643138443008388710078684693232361551446325519881066314188294738562785442276059165614234239945558527412270860578208541483997058753912303121074796386489685485686801197369274436416738562158597451697618349664721472703499407013461040958842187291898772428928130372232321681086823144509108682376590737310073070226098038880919985222587512665675718020127304185365452904467829511328466278876126943853051939927660279846069456486895142071516039288244899410420782174240580302814028004006993819127778838828342790348753812006985538249553257157307393388552878483698116680295656187452228913848549027697342549048443267125284706527002143800625882426154253905970726021588718742805162186570205063365635609089078743496336068888279888525535648486441309459607583109784317239482469609368682452921591479170454066446255095545386107507490988285901602127649082495389636198013279114498505131691347608428857548286613489525591790908715342511686717294967729512268430105074244534339032332158040511175540389959409065499328249021122558501853559724507593592553519673914486916250579568318670489172540763155468375107268456661220072983424420213683448215621113437057337458108766204286773889257754924106251063408153478409133242845171345607233233623785170942165787864650589985207946276047410801101604477898452813093665150455111995358730675514757946384837873100066118398556018836390861706315670625220762577236932403037775250057640164009487467856452755022607064388259216026195105704383007219061471577765826262414099464806363744252883374486249654221932356580394292527263794942601913152275779561668234019143445355887905082127657938494434630104471148128273509492889121352128132910256731682299376988967150219869696810518451390521544507094008909561968932575446826444027236837858912020979150037036643444261498038307272821966312720456993759427588972566435665738468343739243253785006202449983277772823342681595029878649849882530600168533328081814842401773099469573159709306955468626152575908702083208884767635931483040908174468198854030367245844849245722599517863576390909928787525056917546139610263695630685013252981850592328402805569749700490970018722250785099749595198510136408556751368740844572768578610980110948877200416815780721152603861977751748620217487668177956081783450815954708317845921481041889504894193325494889466400065347420336470646962531719786097708447610955517458090876218649133306360302178450643522665867598501313308585473171163459275533267785094153042746864047415329125978279210010113494868269812276356869140136137271798797250048663460223557084832934729653079425554334687728832515647516485323209635485881395399284943499878432165835684907448682345772671079895176888761475946790368720348035208720998609351157839028793969857707740359796390250276978842989864644466619472926628132088750276119314284457235408242355944122943886706103479393255673068151483219632012260386702057656857081012562568251552854349931690260546571716345191265560158781719436068385569346671125144131633235854979286306826883277199719353107327844353983321052953146653974190359756689990443810769995568371161979947387031306353003679813642552519538458378764538190132929171835987371451559571045878686722501398674356614612072999082434418472041023657202281900108988343974881255565234625420225800545672185889937347675846390514214112413221265186383693672138520511020073457356026699862108946858730958654183119284554022746357951994122152447545282183151774598768058719456960352248140602615893969292094528409860770995710524375979846781998902252166246098663621168003937034596025521978242279061508172916463110789936032047032704529748246906424950509930400220141283396551051961537139538192158626617229026070561850313747890690600467928631103963859290675318227437434974447094525864460244406065807601287889697075579031331935250780784333840601261381476059544436844284674983677490179885404690030672536425078723769560272711579464026604428171648434073705775818974417523651327679360980006240430876291029909007696623124615207777017968537580218787512292906148093173971197031507849481854359349289662277904366578506153654041566884381381806162418132673040134001848307309665399778660300943379494880001616038935043683807179551413564090997095676629348835971853190697803827342696451827368281098649908743647995326386585790972614228076006706270135906959607629975960846147668144353914741191175190443517682515696341238143507657576557667226562223927997325522184712937714314040433087093839922505170656232512603233873151141765169707099048067138796278226612694515362047257761305837298221075754227394874749330064325552527072952785776734104506016548730526913558364585106037446726380553231270153686970499433938737087942796653913022797118706624578260709782825740501780203251990316314789595727324142372411077542240125905567530656492148112383621627449559803308639592077394490968953518455060195849674291734031217927988859269658606567889406864631675914704277247546592719468682219448855426010619894935363745483826120100828959427011744921491551986428013066142300605714950669934949227792699280779863368896522706601256865999283991397228563198330650109841752209035040951087814228849556394760882404801597507125343041659580153715603761465627192397461613176421775723484956727028547454384242617354534528121119013278738564443931975582779238138424467813373141754188026696569084634966585641337334252204874484959553976395492761283171405437219822161742769935632394242028173456486591622011557523849378488869410413617723959699459612748230515045054925189555541192529430266691308845102310337976769780454370354801455695653172040431437756507171895300307335503236364068816523729999716072673599213170496516084427599695003043468078623404694074852816883472733069630315541204120028605698039432416646165162002405685168755667437597672560271047907733489367109196472900198223352399257907385819455595368535430394370560997098433520836042061503659104561251986002967987267159867808336787936501222527724961400927783653592662650979209980233591066969365135446770062124666991618558692511406486526342654479715591084352774828144062528096294529357104997609072238978748856183863611922082297695497065250606456683757358946693399894467032206407201415427947635387944174095287573749468645255983261651479741290388379763480431026093007085677531093971409930319354043656504185000120933600945665771201634075490058633099593489360797286254209364538159134147981848454015298853935975512618309091474526396167714343432374195316951139435513639318849083556833674265221533212707984549388651296674095177015818537649126422587684801106669565695548130206384640153304264028277090971896527939793662769541107735687916509087673727287492574079655845277828095585603479666432030885449739141796260510124493627052751260651562239331761926954306652487750183299653728115855147608621438995360297672760139642781420015280309116989681609883474387446252602874490533264877953826900399242804796122496595757764691220372908424646593741461696350448542828174400848820495297077586012396336780884645860693810277660108146368547311548728686047245642947298713818394039996747884643576269380023948988473153835195633999785271441484283754215342374789456152804269564566357945961267266124527957756681401236388686123646570377282532575184780733170495663483588521445126871687749479466503395055764929582420289806576944118033204420150841940356433458100657504576969689623823399805202607111309493751382388213290805479288835878580831865179410127980078426741755299788476260988011725064320011849349602913405253127065414379771256883575401332905882197593788498386840954987282194775263552063098292435570959533148730427338561168860969190730705173758550197978266988400831429999240407094776383754498091209118834965730970006175926802683141102943795999504912383153216263605333509614647730666837299934888962217665022333470913806573138805153121408816792464401107824318038245844322891847801677950515388274561037691159251385343174164261653405751960281233136527977152034104771587989076229015278348091809034759218809703869096006974489510679807399908568887921744915350039544788416454520182880239772172204688305443757892177070345006014337417460326186207352916397369611091468580091309256901846371325310823413812050601091087853666214255204922502819323236195724718435861264542442671872427753567169440385432778673186280974537926365380588570057904067848427480475160668685933353287775142804275558992862366436857867907142294977589801111499050277030533949788873502070227710982458216468473666384340412088106843592242382427151902608447303173120193188320003659364920949731299037646353645403114187233386074780106846769377930813462999969568497251606421837657727965001900842743065390780212050609294741074859930408632882339943747735846273469782532242406393577225047544774266622861784103805449512591245860655877258169222618700959020441944605333717864393279732904547564031171616986433011764125094707931439152730089417574684216995520922564462019773933083938158866547787702454018875524285217980788325533089251069249707541261175605310564675901833546178474528968430342234244138373058237534922726703318560891563217745515698701823964759604474729647157783801492428402253543252312951388293009138484387791217362105082047543772006324576645492067812740020877572036673633745601851403753751314197788831879341101093048791664144609268710491387836467528307849026788775012362172425609181644919918755905084231449901377235652274733980354986537340579196170150363564174165946031027386579007193176759338113891316758263441071134015954138836512171529255064603699895521391256994238501244841067376716075676204794920913444143462254832852108081887744970691862700582364373266429778689475519151509952909474339695700311555110826983356918083573946868341936617239635036990778373647286854383289229510904116442868685410862921166720266759069697770485051540464339016065520416549685819885234571603766906845335256983422577973638697315938769488012109143653946131905860410133114695775624933348095355624026186596842716342578393918086716865398957451608538071741038114718453769039375647601458527308628069778613125584675556908541645404537945662124381399679568377751282411928708410202681675494853476776528980011744907061555236051481033784549396103938351677781681171145772533562343939975713461268689796228781487153741843440529504104874864032676415982775321063244692427354483463631237381071415023221352407329166812781421780498856173160407932394208369559860737649643673116343155960297892607533294482081199847980351255871291926097647633375979788739574968721830568657684178764573848935123578224639889863385602032495801142607239103360052466146993165237990082690834328703540936149774727410256360543953549900177704879186161553285899520563208937255591473530228650492273661819839669580371804306714642523334573187636013852700387705871126914895515948522760259798411031503399598964901125603449919581052019240336775169592739796231807766079108705696488965249007347683940164003933122506923854881459878557188764613546004378167440919147962459385574718214662520322370014642227345010613421851254336237274388548378196976532255600324502183934646526494112799342546855723337898930018162361264756662750345296400511262112616057899013964602990032064775715840002427235274473277608258396389200371519551227712011755189329339158098419278012964026305161731999573584541076139125302064154543900033636373796988935171165184802969514993816626452494938807664806890804271783476146604296765376671193508674043403132857714026381010966574045829126915842402842541301054424693917800702502557696372619206180234266248888880428981809007846856925033904852762776171490947239367507708405939772096057704904963830769050173955966484230346889158952874943592834345579163795815066956246931385406574535568330035365063820366374655406074546574233163273415642812036348038505349461181798745435110601986853412366632946558032243811011383194100958565541369383529073013320660875610316755981299274342980603919788960090390455541259579105477341573267268791785238115067768324560743339840486211998006960966283692794178820928822828026163130289030201598411494865862112297004753318746388404629919685650245986273127419241014837656066902086064705127997259446108396562223132573880226973976649358150427099943160482503531052265735220121424758926960786708943200427512593782614093231234858411022983594635598488977418600683652269521447970654325713854535019426058379069568040509980573494857924375024484285365522404139981373727233174245142788227379842964357702370805240689870469866346757397716986095185145513138156326895707882210225646678039496475404924287075618991128767184890413214752893963473811139289994137556255346545011267364398396360102402203370212703499566370621847952251800696915226659626641745332625858550500090525451784695770367388616474512668063721804016599212979006061327313093829684721190480094909778354905495881193653040483006385398878308336500543904320295893379685021672726408395452673786254910756141426823047921608949921542199907350538155260948773518871077458095493297475358965053534487527280099269092665721827598472004795187016182116638005527048866330660837892982035945637146750586428331750040987570654521610077454054254997459589535964902227292432528814794171809499870527257210780720903418383882911971074135942857257846641332692449470819309182513766185156992712471437680992546816204537385856912363468864914320086174507215560051738219039394802811876486404186411538980154030957300432057150954351853999792493145442115610561055247033558191370714642146856995322745093363131962650320586896590468466603422001129528534698885057902532461845158482433828162913103931210319556834172880479438682875955316861705076585617002414776623473052510863988032275464261578113106451205022105829674744627826356081174688125531390439748025597356211587698687797350075425640529206111850998856466220477797148505062207113455659048929379241293271876439123555662850230682514254653391956713722510924890730943497167633200893413872814607278137927532355419067920186209485504873761275773183492593376532519535661753076875184226755777536710777973811886518986173050436805423511549389968751719260356841436310322828542996815360857918748548462695651763061548935729361003100800540347412976866644166189360797573556547098886545999822989338072975697755519035510224095857297895031648471740042392590109571232374127934950553404781550309313207368304260868154564835860054839313628388689284293052650138078333546907274246865170292479508248409688572388239147174854427061652144414936625288873357798346291794028605694527712584283521951282564298204756951328365182400104162590903140523480817270928526338194288340817364778898557820889689403073852284047884372047868319756184189047216648186461116544011591645542629549787993643808994487721383406414988234268874921460687765375274203617202376390429654641952825093400629013507276830029082709978936320890805756212855386773252533779086822207214943087153251184173120393494180979246118851174834411136177678415707060247275541868508511639686789929645527613529020010631990152086787031507672684188237626784996499568031549764759414038056320303546615908827178494789688567720156102503060841378515043319383848792330514129352972023371066351713123894311851278735965784692935480432819498300889652035378025287456584604887754781889822705461850237054501858762519417810968639818879806629463308725036816954478990382938337922882272394321312389551795581578697121265481230761676013419584388147483405682832948215864296429686959303952013089308592219782427738129843393226709598109252957709737500173082830129175027115183163269562450345640754845549560906197278231961724439772739707516066337951259576779489847192113894406175890336654528580269636523776010272619733817486325321834062422605449087415320013949392782060928956705632580918074381332787400615698446660364252163353598571532243222177074326587716441163882560735360733632398903363870828324871305943519322800152112492713895402337105216463345765085718823994130638105460907279679972457051051334158023374403430953910166926116519031546115987232045449081975005349133491152658601498475995032395331295182859103743253284137558747211246311868766724598486414596433001291087782515153526099481870334903390784495015348031372261887956613868591535520864329005058062604726412075649924852664936330492385006395704460741837888190930607481883594777597680641959423919748655984800693621652302736981495281746096984110061875678869444135060577200893848906077692036305048973888158974056203211688879979590180634014692595601459969663166773708684509912766712888299611546721137545463445373784912995801999000971733132602084057200834177523285333581453667674605314972071880052248668138921239779277127085013353090735351510532700816455563672688261401307386719627328363751968984664988830216299684972152402366589283535371420893657700540231032207708660193525134687465588944943092282143396007766591470756438231767152681041548848194070715658801487347829616708695672837740081271368792170647248421579840250726697527669272752009385092055835218273924556303916037176070424186899901367444759618461874936142819681119786012714500058918134881708821354020626478410143834185629905993019229747912282418718488853000361348679108930663316511082595290162658239520488131362345844067500645297842758786283079970483933534277067258808166220869073801983667006710658193864351021800444217419999405035702506610427836349665380569076365655697114658355144143465882955552350603574427812748604620707124047290872757195947008495233018284802561379219392826198680832634669508766093940496937596185316437706274086600213508971140468721896205551053625629099395179620499374190269689886737914069770689295785508108346008788964951991859050874824543135268033581499315547617323495386480469887528143141997250610653458628458207250985806269236069552029988283392115989239436641125442811655169655200502217493644272110725487022907102631706676897691536072382675198793720424385644380131309170462456138221749536740458879069932591443630370911884858848844103057628520525271558986935350252663964978235848604569576768246533791431996083284383879601861337632557717138657245111634945017780647398874518360528760714414256545774342576087856728512786754909783733799919390477437568524744157945784390352451531329694008985620372915374109747002997622477935293764969350033023023108939778046003095199022049054493181216440348143392359893749109415232755365688315273703449570623733587429833968562939361392864008257969340608336066887429507021211005084601149778864571648555941320224997237831405411526533952813819232598861994239342669037527189546025284341622218239685197806841176904076383219723005718903111268849977368536785462807297803491942875934173991721501782418086917613966837216672536739886559761165290103658525296324645454708704425208904525809270070254021510446607576407234026018267773345902613999520983727350477515743910476980489295516771620470835937591871228083990656238858624774118550101655510691012555533719606205847721153869120616004349596259955037785213033410907166061942240093875626939542522636529918339538848714601274372236477946659673779172814352968345762950123279684075687534251532012297395931962447797589463956536673493295751972884769804603850712699261645564291618190348215491550281954882494242067290379694182856364905615283992959681751428293279168030982903878264191427716503228217683964972346230232015156606288137009453515972611375041182113517518060786891515679814227934464174236191252343821801780075668763712517089554378435482767559568170626766175896138802838431286433186722696546031761262637433000524111326491546022414670439723653921766397866207437152023610459419246080334428373323650278447953540862725147917368300850751239253134876693392162536461966919647744466013928037380434475518587249204184037859860746639719043025911177269303169265170658264693938800946777474897908403376434589786131240197640801925550309069129214572622349743961533919569218362735559841654019854567810947842346955900809186373128530311569201334901304353820541129094075657059344545338391223568242873602684610745717338150611915289282892520699476563718621806291032745914114722824296929320188276611978568569372871679800960960222330578009129434642896856478329274126735659041838346155581305825006635305561628944231354789625732710610901815307071206395149533155420316083382945722063987952318832388386421211726051917872498191400940764163634240617465831426509703945594587196471460213960557811962749656201398221149267332488200542796570937123210649706374342037751054187756039405458026471986934633252525475125935254194492144701874220015194670104617546121302001774914914326444449543622867409837317220845739776430807281309718767038652657949877454894463421244172203442494896130790973473485502297812166505619763197335043657012354520430367447005518506326907856861500281427978156147473984959907185116567597986773458045452214767368202631485628005493081428577486691294633021915882470288394956379117444444711097272745527379807412931590757689563653609797271445992502125349916349455042272089877355214011166203080088313738693438017048445764586208791072903650106534625173335163421902742373879395788604825771358766116136907446357449382765612487532506619192691965690036834670471290903478073456792684255188050344205153464753289441586812742211181496081928578994982620475681721872634609798558734170504306644760905456205641815078709755814010932604138070361905994331724805795534997481606164723947327574239282371082657762903182266072807225444700542024296287530192243144553521069618697608755015765741703454274741337953437809997929525511126768406012299024612224551869714480996602282561173502989524846262346701166130327460289600590576499245289612183734098308495489365412607787055620508117431165183026869020935248147588981441320173667407948387386198070510608737690469276133430867964518216943777833123465295173738133387616716498182628239785910045579316839706027057808618040274272163237614361708759119686910755050422957761823229556483993035687859510967926776972580550699749710263161194801273802046928625195915349838556425691694296704954854414624264796371830414862364117654886314191031788936029160957025574023501045583174729069880383583324983299572834807114055622197859713953904104195523872073383736616802489265872272602417920269752940588467599599555736358728934387733732329642860387529377322404567068102551542986351705382067857479103280642442984269200792520490236376765359591511106632354970349409350464452016017204514951703011568751577068296788277077400146857240027415638964499233958857952192956799668487977966871931489339206362227844945850644203252715504811470526190434443257653033675290045346450164592412813761733416008262195333724873316497628946911849049885165650423603647813859991612484538574484700582571458719784551282216717216876338901726025268989011536661236528157923948201283178620661559058929694781194597135817596956752443018295432557849301138041840632954970315436185872694380747150039849566726785925620453215989144982821701263669499697930277271019455281252996345781567885439179896696429187620457317768726942759000785629363607115358263279523955013987107755727839156682561073839895072339010082706303026938974903424004613667343627825049366629415677573675774229018753754606514907990736110163682531561308616648427925482507170178567095929966296724346142018467317207889309024807936424371055752859366872788599994159484195513058684025797148706196227708739652362486706522883500628939849210003782468957458038856284499939789770521156590007961482257893908540542195835057675407955757241223559112919159091689700005462386899910620822138843713239809265936227232471422025832361808754503126955812352065568824204938807262899247766336634957147015033045704453956593002188875677706973575381895009020249374783221707585291281675801766295917479553129245456483504360225072147054165159089791275049349806241169889108976042344119534486064318789516235556920848851734372655281602075227210975077876133089596487288838409830519872818637621863584727513633396401935411927732053572921000263383130784595488988539932384991959681916392409598405316094362228104763489703882688762071328782522261958681153037543790587320009429888331412928929613011159160012504033830398292015805091640254494481404415968563505831782646225837965936204301721504906791810290715609009706144036075896705207854515802605427486890252553222097159405239036419132209436832296003576337631253540959428939984892308054160659721926829371564089963725122571956268641874943183765741890860420259134784202645280563404855760331056468062503951828056638900096023202529922642330971186817072195356999507142844262985924041585637767997069713690804145926853424524768563671326142453547407887838382418728272014239735224694693482932092720088774307178175099129845614551826347573383193850615038010658469940404920733875666158784139986729204999047531245107642609303702316208502975179540562610182786775993494988697906365312781870832993242537483616728048475413526381102587923645031735745743338423158365637505207314441570938779804054164393880469628956014088012247657360310893944810351746271604517042988591467351943804681852951034462959247258041989184986981662860277491730147774280522473558205481833565183850754299310935232139369639026692188560586780063361032470048626160873494721249651895837405989763304471810374349938623419241301408717284280339710783473413898940810444532284704053871689207221344446137234926720128648233771304068298408372435339756567352226760855244065685137017388925329589092095916886640768187835156927101314034006138158247235646973664522131515128250623849766091824770885016982272559345541642471119826823803422030932905836212612168080167810693367225081242183487131759403699282378654927200758828204251072844407809046969032294535658675301160077718628608596393927499603380995921497272797388595599341181892912134134327170451196504211540691750045933313020137095549230410500798019961517139886613053434549425323914782383746755850511518354434657881041688237717353892590569070475633267194983738040599087074267178243729282963923629345988081583108069373061680240471519798442693922367175873756658824943578185348203861839814305159910474602121143499778420808667263874789586372486070993294291866263522295552385077329205846649329174287615589875649490839230766187651265758741218513357216340091816279071179186533220179852139425789103305927849011675462420102216756219580996488644518332928382170029855162905798823711623614248280015158388463051957346871788656769720678461280586037201774812097981258022843615644335942174868813630054660910314144668509990950988978390858431951711098996081669698964001907645530790327432639257681855241348661143873955062398388117518353429748294792348437539062401294524905924336565553337791178927602604661969802146213280930492475286899899210266037073787608893022476981486015066956219642971915246800021426344031311416024921520605107324041098692989420210576529332517228150817346169587843698570430717660879751036254007745142697755699679142425279165851792173664580258015868286559635085722677657713856573240121953018810465040976501825556408674098857059249090880519669593318915334664104994257392878039562102036279771366518306446892940971097114960230379699466531871467641772121326081536870166671177392641628244488889681887914450653528229204784659021352052036510855384864599738144905493085943672671090872728319117766738875129921491848587399348354283776977676976267174962634759124656340225106248208805698101086809133490871797231139174242676626731577914289336639203423026812493150357835859666629408979955386680831887634172682377973793344239352420623459041515689778701831605083333034924414174074671451615649406084742802426779668719735459706232263206880826205594713674964022118237432744627693915394748905368383752407837657925922223632100971843708971131573297541211291069321173391075230457338040532932042856195112389386168668828635666473323398530890744244166680437470262765610873041349640121241746263596104377534904815464665720128535236783235140395710466395131154231425118333112645192386653104557044634643357172661272876652804193913554691320081376003071678916080188355301952689753172981839328063881923760241521430075107422640294122170901467698810211137266354275581719474831556155422671620090783803018022918547049094610062550077889208442636529520227186668597776430022591480796887862945030903943529658212870966114655990521498117837028352134244828225334729778988356985681088393042311549223305636739725416914826270695595537761651591538951434918463567323281925315073707861646835010335784697837022410614374971103270189973710311368255314612338834564231055797117696853917418236878063595362170749661798658853740335925682776475968950190135464999672227092652733237585567477492897312752141944928934043165718096723046113852219945641004223665220219917514462804018758873840831715585311880263989539686493750625109586945621031635331162803696310401128866837096322767627987616567790218008711298006571926695252311880021577485440393750011293821569009503015906832852547356571617669243912973534082083507317415334079998116397944996554870475756104777061589403481596954221137214340749311089049122190948829383672000762664507769954301253802626165864427631444594621855138640820197204200926862048810573484702017164398509874879008360502557659916341025163539472570317526689581661095959507625228594514959191279910357248088842882549245655287137179697791912452178524499823544294969969889331562707104955376578576113008522120140465046601125335724115440031613944463007525395823377082843183116358248747922384969790989769813809722345270714570373159579777722198236383518656901662265754606388376449397148665289594470770748116551460673257404335552360088078544232373338164609292744461601010551724104522103134866829539356980036802161334296081844909273988763756939497204326387536049902828476241171010751167646464147958928565063962449274277693305323909619037144143285611252795510876446463243316442949706621276020519753757325841358416616111333722824024207429149326380730651014108185244042718609115010425118571210946664760789395472825205025656239796135135071277111040109611289985802602922532194366892667762766338056433181942537507531611149214985556449380510488681246708900162901236472877998947469432337211460367348092736919750443978886964648035366639095775091584575490207740196451708655995827018534483387228591618015778395179671550536650133321978806766114122628353141183198677587065868799547389878649216200621286494306557141584507062407051378085803330096886121726321722773143149248584740998048633179798469386535566252216862351432548109629429675775615346650353512425618725924149106331584469842915980000822329793055030779013775968805818987258789047398873506685554980405453392847258289125140379047572869945834301189205426288700596920054041440139410745434583668799596279784371954168380083918721681310477267312476601383727274744557375902206610215965680888339751079686200763138172640111693651923273639576574355320992366034466899547739733201621035555901209328971491235841344025676549407541459856711211741388019985491555009457836836119715884203670598744875907927787298996416842665543666412366407532862640578355749957192081503603225603414073093783565209307761628600209854297551406728430013840970721502587238893749918771688255975121191889085948852918122775453715983543810885972507701449257926641607460155779776372736045054536620123955002127854592251329050686247259263671346400965240916938004628266435342609085522406968996488712159468398694562127852389413181837543682231442328218702295803376432272964838941843073356465768976932180901153515431664168218018435991843258757862570733961342947303494275330584780903157349777676873356345540975627409464103802305784531421994877337039953197661905966549818335976889337282515210445304679516077773451499212834585333855312238886991004366741327683012209992202556334442371267272671447261200897882969786952270439788178827631030968831854500981035349855675051908330749408097721884675417154325072067045801276284988117386047120078851279366939220163256680414441395998996853434374336736321594308984927138775044299190122095326631352917835226073739139816295855903131412983932354190211380892741784121860780633683986109985687803026789134949691733104508457994620757403212938149393299802141820658757633440428589028763560920457766208518211902044164281089039624533637351228282656848764434576648204137350346888961474404166318227690729146399388881077465150409665981806561257910418891227412545882571262776208416419395417443037057213803998592966912608801481904927467064445548407662781374645453727611651973278473140795348798845500991975083999442426728441910279258866566641903901931661362335480697494948945889669727305889499155355757302709295377638386022083405654253990196436558552505530265211328282391299431204696206863506387444328751076901277197218583989922459909294919875831966419645639190588829115478670224353198870447808105203061519208734432246623123542560157830444326586208696126023042404090512203767955667798144890071084718123836877835437217815558285210700560039261456539635573173900639472260655359923717364872116577736198319448805152787802388239311845216973680600165280688645800933471854670520899787479636058887749523050438465697723780955232766129764240781702492569420712280847525073094165011740546973395294369839308991032796875603804187062638126393112415886103366124520350360907150950168499594190898246566464005322540212508770371544882329220979371772629884538136667271347643580204480981663358800005791791361041516672501834585951401165761533815943178092149622072846885428695293634473248176747057716663261992571989749639402713198723805285488082851137867524527591954047562341970041824639256565296564041560013003419027499430149421353645614883657162692400602299923465746002922218447642817444221190297385614198369809100268072150864044159924507953932456237397452527460027832412353519401497403070358709308439581172594154204252432939837242365642825581847345230812611671383219062399191182031394376090145810852375516113374107907237944036214992641829423455626846799934582830511928887040897261840039118392879097488153243231836857309684648901735572982788439271711778709545417455579626218498337958864357392803638288327498281180179721445644750533517442947348718589909500740655670031557389386467112462618430911432307215841709480077504140787761763165059816885347944279704223770304652506039382482422743045537360544561951243046395284076610077106912616524145262045499345596749905112364447767393144909062882134074256526348496407131701786369377156461235801458725070762151278286183013772821621952696939133581813919876209209368504886291424528424146309486005991533783052646527059019060754917422444070789464612627491457689501758730470297319693136070077025221119678526123260375453359049193346718606927659636111394863189777931415942574878223651224293078100841529125623841303579918881131560962358815270162909658236494587882862137799811071752366817457988236869299597270552824869748347062585122764701915959648845563864112005615407305213437976148243889541277692107711424025551990396201423162228897390052376793450750693839290810512077560170369478675463074628106174323213822194913794720695619896744463802879426748784992359435608433639236874574835596804110392160868457268906838070551066491691086730734511677027058026641495305554490819032043444050416193638544882410742423976772632430942001042011806219296496200684749798879807035346374395720690089378333767780721884512295457507531605405420906430568508014310287881992940101812447641460338610393046306323454550877716413347093886924782766043102130792633393566946134938426257955680975486693091235192013227363064276279934781202571162553913167512133575017961765931875825291515215701335649422346155251674929839445023299954969085036789809987372737159467818384365793252351318744898078229914439774201408188029987311794246581369958511597016745772477094515891450924405375777212164907692031065022477963989430265728941676797404113459302772133979033586788908159119040516215592439254896469644062838779000738045419968643389009142981589988643408851702733213576798760143255959332252803432549071188471189173257178176171716674463793224732733002776872281295965806503449613707247672543639166714828419367687331263076862788819865282842171901321277869613034184387299852778379765678210233184418199366747792663600268696894547074676740391415250730288151959905255954890383592355327679163741293286572546591954618941002982572862596975278342355807664723975100260235185729060304306164206698336206891052306947382571262153276067004521015187155549583168061738567814432141464064909728412433681528002080811635726680622569683905198087593631666219022068782678278057287031500649105364246639955651941378367094061458376289817373344944910628859371779516779491692027496415134613527086006634977548677612849487088685015893969887286585644604433073440216168684847107834635910560215339769085432871204279110292445787294923036176173116616372306023202525498197108225094355674812903238546021140304018162121077815670409190602086681615187518395939019591576056424019878535168662076304420162892832081118707153005935986521823543849291252809150879361293545355129395143565329633175404293247487327934504196598736386584618602919785792074451558782742470610777113137370275505538216984697371790379407539367756636347478682069593286419835858882519162035039613984148804956286700205273477510136638936727948475586622292315638292177945973931591540905370536634032407012093851521716520067946947582548781804857571298417939637247602888592703832091621700916252336086188296789947908605066435834774576412200298331573748776541634170954860795438709360477890245719137851589736744260022378765298786035818418839385080985994529576656733113026816061048936854785683755736526797679232778742781530148630818955458968064439949574054389810954620028286815536107525504681611962032975858837687509647767029891067373088593942348706222690578275994252444618641206389739370934685704160045634371970574514089534447643540902645151516768526563702934657052625043500411252430833061095063480669117591370454051708779223637564233071922668507353900651761089309676546643795843426185519924568230693022145935600503150318678161566806048983810925853350497794703642569750933618105484081777874875274855517833044763068620544358017796729205726115901130573305116195111167041928590826410111788091854729461772561176994432327349098522084264347043174630974966172318035906070675407593084891306805982458941548084161883919266464226252565436766150033827872667310948446639804055238251568378568871723329848716895181990877246012078986515796918408052566482413307738998903356766931342933301191551075857688524730440831201978775292435596289128700521153346235858212745689123328292432694244293451284208235621287434055720340110639994264669558236552348566548568639465975916553433514328581632927836783414183701864620534344171387029220823964169697587596759818867543687008913281548818252687026618362297640460201755949866026565320002093351336621916987553128386089597192541821459908178245778325804353188604348187204135780769877189052515003348141978731680227418932201735867722757226443426795408690017235317890200403549834903801975715599320404901531019399691329904089576333296605890008323650926245964065315344289762535027513644853580317528948411888209337038896697881356315364349847364864809825822795996648098959293786288076593866622127220218540008808585620212157769422631441801661047661940535940079849747247558731816241283938879896069614999657374453201262390361615351718400185856314846970484892062540676468605684405634412566462114370236482253888299263415114139492295612013061638909616113532109930477242780824885798748295372950676198354577838254489716482533886483112369709315470999162609167912981215533942666600738388603347861436013010257867221711608215374171579578397134447576129624178967188232227012127055831536522797462446813584135686871517869920210960455821487464673167493631426320858015179452750788243754713988447369847573955831803339114788847860720567707398502391072733157963321975917702222026571608154694627326125006556488684940179575913277015452713238101302293402237390055190617470840845583662734697160951930891553617755752066525307847847031984040161618133380273153056161355139317504662970812638716310163748730913761993672718660697521416488999193024698429837285209999738540445043208756636224942847574928398975556529679227336216532266791062057276518626368614441224272293769173450886786158319341524780915835039602831610173922684907923059594856617982625165435723007878629490990069497412541639999722354413963537564363955359714334613633304981977166349728722402064564796291262811844039828472826733043139556028535886375227075291227784980515718594223891035770235137064441275119715472248152908285257992354918183689670237458805394747716441259837430088849656482254502080439609388749918852718527325066867688867935660008428272651255031378034219065052777472724179794724677139017764713838280916213858237352780809514002665331772375447855669412428734344689131258720142805919816905992212553610538742976046623743292715371267808589818034493702955969042551374333568229918031505636352136525876013745962027464909260245863182886684476992352404152131298652851840229669751376284915722792588303102146856580182441727399974634437176269974285697466088161438648571042767306882843049538327362373164149737481071942769124198614945369990909347626346679257840860451750736224394297669214485707828205398031382151498169446543523411058013377903887352519922311422060011971055801201341493520120389899441949571836121073987839919611375002248363872417049420301838778966668273430960454850874808096001147900149559033268389079146239334923043545895634302006439925699223994427024972945162812145961526267797611184855679217514257188273121764338263360936315884153458817701787137946865898191375814148410598978437114432486000760262165835665696623896711147343279486191902846621595117868578597627625678165874637945678263569527177398795800391314327495894921173327498921636033358961255860057871720716964116068991760302001647340296170335432543916594841392021248680258136442458710736847297108020193750660036869489115631360360098781972440033080200418903124249569053402438638122056812113800174133744118495939619941138631928816529139277479222577295275157213875046505856859602517070810189676001894904734807138588066802858766193628388133449190665186054238811066670574609337761542309282138176444954423400432962377561959665134901609144951404742625024918042433871834963607053159892144802826098208781344565311608175926218385416238306970924409218139807037201653831127743257722007964280314926538395355341875720879683243681220982224489148965657507732725086739535517263976737275910652794986491579210312170539553563877010229445633169534098298189382511576156384269339175090300298755673854583919960186276264351545415038927348590215163174905943549419094437589051848655166894936024279702875698566679579000587304149294377997016139621106184722874993969144822137259949766624374631513643652648789025281250727628238598795078719008630990083042033232472229608411425236670983092011199912278565866913490312571720490362537240822281221880446192653657944335032437470067307540067187501694056105867634632260605782895817226449627527512301187166278687609893691829193404451415026751993080380176227041535026448060415171977453895401715048690646213241913275855042312621358168039893598256336773796019058289925978100139099547007375367844707533986966582640940210834059116377637019706993887587269261504459370866568156371254994399552856708992937046834801511315593255572319921913135178573246947084678250210661476260801281892529922952845740878930199046361229503890347136049104940974876997504300744678635216564406035635788772812441203826427243054888236677567780871374097534932478697967088338516617863775153161926419564396919281546884046188619659593102612494137385970665543779971274540207582075563890126688386287125992706774548593553719921352762685361963811814449495249379208108204236915554208446928845405153823766796507105963597731679782186497443497935215476064190582975303501830576786956825705115804651224989158971592398632672131519761442772846641392344068215639113470714769655129302808198697936631787597855240255362367769980349633408445434457699983522374552193665683656848012409225117649423355174626135050267462401636183493926784653500345853081778764690469463014756213059011624918956243832894098768729458665693342263865347649129267261675766095158790115478793466722456759234003229025849298334297930343080686819325946066463622101779080046874627174416316706233028396614557885178641463164738038514742241232016943659838522042820754913067506737328217680552132746558868829550068173307500601066469390597350453160058516576101319625631995731679490363914730946562761705949401169037307240434668769457205245009933536385356267509172459112694125074385053575138535857157568334762845471442707271230696914132548772581391210317503388084494695083915166533192556556042251745065251737684900353618136648682602115715113933375615899505049914289720273712815872144409622296380146329561614835279584740279397914189646312509967195471463623440904027914157301387505850907159558082727452452794271097393587989044505371730692743792056563261864736409435175968710659679706882045585438775903947392395785049422704096648173046764749993782228716718022301315044505299593781418149736502336416728828898199306557397095211512853373056884428461059356154825660405562004426508974095257442500234201836532280688322417877292955368400933398740320161563959230437175102397865794093661716107660539168267475221159158900023192652996042771751271926225947730695604087690405183604578673492765716939996757777293268790598815131794600249533456130006624750659416692254256784621571863924242675018552740284752042783304894334630233523397626201451756135201229124408548858341385139187754033413977294104647037729992657892141144008385628637153247330421204804477223478648667555173452971648588463766910107890938955283106640582598564626904722430974140858409850141763582704271369530501847549513312556595044079186356636718827025713484568884909267751204979906485707607657640584117254150650478477860673336113526860479473651289463760261266484929460152388762591985167567773564718215924603138846274912643053477496844686321218772668565673373984505995708070265129218857248805723028078914420632692568457278779277313771547799219769252086933688230041357157590082219059887467981013416615025409302485002690870351064295506631757889800505839702977656102317060030632046398493762351801405563305007750831753119115061917321515950647239228054066046348186638364833130259242718536478143514738057557769587308351042071697081069629496333889523289488935270801884809843959657231202205292880442612948016722071389248296417023510189106144825277609971905673041169354448166975762707976439213097279897287933397132687689675349858438033405739022179283325362531125752412570013880405359261823050517898178023880319298444760293511331748465988793412786865995966014037410595078529239609074948923146881305856140416460193874130672917832113589696683441191416441662466334533085071513651723081558414458406858913285134883555524261812905468501813077371191615311882992426879471386518356391415934772645946121532848027393300507001927304338719613170709002459720332639710990525910290865840694518361280524598594151811307127207849786952951254534880815115280454554320817725899957192231802094667449289871205530093900553790815491895558562312295073328099571802011080178116063519986976442509715608430967025858535514441706529816479300532101058246053635821999150328567190451351867925602632012446695678986528104216039399253821216380567939828609839323687029724429558424385911168293234676895522348226182689698320759718686988447586736869014005540035723969773867530234042409244614145005470104265034541174824046838820366909692436042361389884257567126697692956265962508204545170479474655832125918724117178193990098801840811284104069907599382960932009039563922120218787427567408130643522860183819918216095504290729439751658353083557726216405270926864247917730988957680103601010724738657759675979201699762066010738446032426469978812390622271619830584363385540095603772793333291888009127828795890251400806196971338205023563738718314200073039961748589146331851114877175947798733336737792030601327602950632873539558997697733728195924236563651668021419619059802953399308768806886556161992200999029533488476092441116833712928082954216498942360111162685192167889411357937822069356100226638417753168716601410977043277984785786369134770589643206862573146317953436557149424396335597864564024212206870122147307698973888906682528937859241185599622825086854510474465065428020164584205938844345205959470968896368417946013285343806706336045843731913258949120370966226477613738734965720888012667961799440857826214772761568177540762666821782625694018781046529472554854140844266286958604749550744240050852313760492581309074803742840991387458551862569928569335026142666923073901130886662352195316012644954824017152751705525663565444323855910299882167452447727909048106074376989158415151199737570374642615144409760084219300364686480105272314583601740753009010984142747551568440752058765345301187694444245989690755734609614494625858963548468715965185932625405692513725143771079333699852547046907546508199405014554000137598339620463161394516271105481593913234088344021636565404379354910907717470768412113485444665626518230378021265375164573556345881231487994105185376087303357986222720846103816569894997752600296396411790832051459086275589026180844677102435485557952715620379276199470730465736330457431633146760060547506866273175968883240379118152117084436508964741212882922403576601668333820390126267971925187095124392932460607811178426779009975867547687292328997016420140723402513690728003027801994962262598138670745045503709737298300983825463694959232647507095078112253228816199401587022854170125712919867095828127573866582671580051641606680069730638507360242742106464107246676515296408096704637811612950523334457055354414583041747422726742170589092226494477506013478970982654513433251662497886286935700542980822504580030384111560681713004512734133399990950424192454616348543692199381320292462192388348677198277104705550720657606243816824924494625400911848873545679521953492769968755308817987558503970447286471350039229852401327127024361334227077499873447109411777096518377323228122261836742310936815758909487277322308827025688348687575233162981472950319102974354043865324986949700129358895659005095686854094286112534043662635928058215264256236008866727784373267188665872525924156940036259788601219352549291018638055123733623094464452692082136718724807061952815948784695801605861146457151314740453356222766466284913398545114270561044893173397460305022569741232271191718492458524965906010963752503984193263614483129626148830126326467229709826123844193263129470020907008489692067274584000734789666853286628795618091153681037720437980564814777220566783995459377339618479614633203706091916675580534790916914578144398366821096373525834907240068292262410290568210332216353857635913170392542659001398390624056865818082931036927713050348326924949748201993387688290775295214448470052453700039214545614042564838047324036875980845242774307404039271418945524167924118536959863733148386951466238470947805212526575433384480597081800331816452541725336497863597698392497862166212667633801063565352112331940770500520311379781429548538165439760425639731844939521108916562573252271558176779819799877212746287030924942388064835590751512227946242854967969125761715366351953387161990652416180916835901649228204575661524325938394381117263847902696217856796034875900541308517404086297761142323281418559622385217864269006293383625422840361098134183717591176084316885540816530645355786090823643819183915298737686915122697579094569073340111240854655373369717039782068815677547843518205815896324796870692205360287423168694645407689516066098781727228981046698708036761507408718195704359910053453420397962811646941232960245747406790368539247295056616555421825495396952202622531488661794862483416264442795376496730265817312505592640374268978721098608685913431717531173393623857920413851633083067690781791994393654060262657306701927677643042717358857905462531490317670879079680664239267575034278424459021460222155428788227030562960034477755714759120374149502420477469622705858286451190128666058639076004178229370338262621497346495527060616128972801065809766408563646265440092338598280660222237244388277708798367039349354909251098654375943292989623948915763479308856086701964199080551221863312009935931491139554249960767304028979173867664020199764665118180082200131132417173021571394179486162374908579165313716785247959688962929177666978710866208395790549330676884684404737954404353265543944113630370815172958145940450139529493311363282935135288681285197827133331864246949379486904906160182143852817874025975913744660270211621293382341076345881226705754927141324454181920067146609423004992802651071966759667137152150051885795579398507490915910175763818152342831132742055063611121472129166436133120268594600595686768870599955490725140152426086835108779770571214871861902648000443157314125638670080958799464922587209866896549961341025828408582747693007211431394836515962467800540555654930586418514412476090823254198923572052256903067762322480272530519896167365896913054777178764509934366938725408894173286864894901222189897645706888315596983970223514494679919654466656483480429836510973637770195156461474739870910930042773156341614720583800071756334430753880577547070787141894373529814546329412580291907142395610603539802413933397707055290926190308582620999743657232515585444085078706980974903919710039451717761928548804728997399016419526342506468978490672447272303404620769626748090326963950438883839579207405733880593081498716193205458503466557992285714131801225273855518192224170385175863635777846426546255773337224874598173254737645511540879628060205396495771940227226406721918700857674414495843512800847606557308980288665541764493509815529860211059148189671837541203958663864185856619664341639248577951332333494721422876182735521150647045402983637970897353482411116811536469897790796840069390276359268421307770895080936022931150254018515346847128224816223368115288242671451737766512200984787708141816639258237208458662867763228257459269338046930901162266382712269303767464789829894081608665481138015768760981562597159544066004090291160868982652062979095076167461405310661363442992772615889626325168354271090886884822360125112948690213164297763679613690925589032647439622776236161824170202116494869707599960205467792040812802522302728349466273031943648848291206639230507788661520597305122779665675783267430469446223975442297086112565501688713813209242079513145816515482164648383944615034703985842827051794622102015515004953574874952170134069466176020743291022923493066955518835411722353227845651191116381598678502093359174632926484469538639742155236404433349959449015846817973432088184109019626978457270646511413893611204131082520069575028265033152345979441328466120457600207063505154604615482752659297605327041597323822307066791395923795663376785677766924055406702531680175379707061940193539749595529983698490975244459217430217858266276968491310259049150332487394882532489995329422423652694766169056333437873706326712361403796382608397398328162844603854510552060033419830225878939384690562211351962623961220488704991666502110582171872379017318841270103938640469145603950371791904125127164807804068767704656128132242294141710799338770992505162241124142511579786099649600871757039099363605538565662504387310534381047365260339407552546849874619177199899187897107691345109003683952505786570836158704773689746860190223488968639797458404004576919659332263218791696494527947811764899795515108939163827646793843605165234218585635782930475283579970939933114180872800734633962440254966869270632657779928058472742219862382338937760489961798266411936762787537038498991217547128788208176941837150719396487570801790245801917917947941111996589994481788301887660563822685277060478355635216200540749480863674754932458475618613573768983421152882936928929168445615166438761266812345896725913120167044623899993028438573790223803691499664659241702734258921404184986024087023465084115704047581868489200033195848670136086835311484723469479920572972462902394143193773557076863081579031147507178599228332959624130744914972903833468300647571646880934836068727197433500726787332593696400644170754591394036355243836634234451455429019364487778560337314379954994463507132947921033930265224494256742477160839084080035711717008261034214760022611749529889976720498163740438573682960163275260045570259157428737321369090393914551657886373775788515960398320892851063548820627462756984741737785341566637324366299547264502453678186497015535600172544539087867425921449064268906744893697370217255735547853895636359167679654237934188712885418760620437704346859876948524545036217968272618684537729535723915893536782561557193904733079785119189322035856759392696567318705426483941175620819697420277059610078863629314759807373865556686142855249797943484676841685402334536903864797919130309116026937032659428070333313021067833211833780581459229028868849019960849926058076695450559929827328724140408042982137821875657920260710605486803416741838295889120652789334416016843492852774395090123801300410319490606071808601462192475096804870893344361464888878343281049932163648541314765842840858327163812406292424812827879348734592253620662045109963327686458539243664432143169785095821115063786118936282553479279519871723673805904911884865207410874205928617308849839463304814100436183506846931924679899374687605857984640091451959030708591592900870281063192153678201954693424550611802827588667472132077613079725065908044049219762484619087449631629765490398450599123465140304882570639813956727494442101327354094053412201340344625272742715289295242400370305827819230898723100163123182996360446454360630724890999345776396973894421922987622490597696817574767076240211309774122893698036999319202501545324252914606873492120364529320719057953436352201251982538380174355662500778828499897016942378035372700913268137308876105225698679226245208957880319230512755192043655097274355232389388110544202287949008107636376376889170640593672311244173241994090934695877552337906618093025696980210140836722816710050134437391220668820620095368426514318255833204925922754607256560721857230316067615560749295211294824324396337500796458670131465114687418581703537662589403909681018565713738263232622975682449497812975235426158754929634527419812507080837509384208198546442677060003296034676650213706884543508001757344846112391687538358630938082277006358871336464941999979284665787521055903122971838706728778921447253654724400062029656334804533797577463054747443681096114719274331883217016790894695442134248137847576372274941117390692209381861258378028244889394881953453069743805940421275261146827949902092198848191898142216764219969200200837474005276365410668083261738302867206537746359941511539609321257257422445918912495049695778529557107716001065814651842923987515921480558860920313830570733706473057963386872477109845536981391217717900435119329550211419139473158856692868720160336157368293764084046932558132009407752272785853317897484008107766810071194775734822926164674820269912583287263017541948410197335504976813521775654426325616256635175010236631992132463316359319750802450004415423417736464627211090956908942653198442320492107109000164228449575865017891997222619809374081291077821887816237223153460429530220796349476661738995721575303600702679149490896129066575040518172673016954395696175483467452377804149082104487066822882853493859662101593837715583311244662657609070242284465965710725142241160879363787526688069015939223377900198483263300072537255289662868156351809223477817242964104898109080238897378529953155751688767300399008096630393577869197163989536691344506465662850313112672272727059457800523437424794532961543382585990148157163244953906787857118616765158261199575602605891596116959207865300613551057726994285653669311087596008004426846931522542780748597679651936082937337652310658409694198624427721040557755819509308684001499842014955690538711005555255443900809218227180806555028330420544646306939636752567070910586108126541467779704256797632426979048206147838506965273998614957669048378691089716658470195934019302922528138289157235460566763346119404075892848738424720230436943388934420657153187694185730412153057513121448072869512643826806736093242615218280422959973577366507090859200956589182177358926877524982947191067612497515615879975544795965667108280841685175304330039039257313752462809566554247859143959431411277047989646601982880105019672640020336496829130353669650464773678534184885481568778530725177081415665272584003196555016479001214900322386295219575637697249224401228416525426239637790308277458224533974009116642009249600571396511478931179823296543174589227637198633231546260218107632117210947771649200927547903387677900242886559864527262234931485508845581104848397013061059836555966397214707833923115970127762636563842343725109619594234644724771198990222517403263834259237735851943181735652881266675337031573831773536847576969182547488934726443393700243223344709298073278075282617416053103206644967930116922915980351634412781341124515255917841421741888165359308560573774059541855028687535587389071285942946144648616844882204683023094275128397045257473265488854582375160074016059547244576752880147732822340159634802230316895489609018805869373213358393356339582601997306966816494423807403151682003284500233271435252712146984694670650442190611607980573355758109978260742885657873087551173780297332060988569034511902503183030552093006410645497031707776090042702142610979528840267196872806019416497756440981272540164651734878506269495349436395209850135458428407524353061168048239604429015288232471647652046736075280114935164674285106150892232525069273143975540866342204531842241960747003360951257331943950520607581636410522795537276227003181551095904967635927355717116264487250482245009702774935808266868579316437248082587390799359179862477953842293799042039510369591017158262414187375745003706077743213524244996465607026766216293172018661597184842127609263091263517582654811419865910397775845929055045702411598539236141180455175815467864803580599362015830128098424571494187037782391142515201747373650468198197258142056856304919281335859041905353418923953190146092434589804725747191113754390943370465234426529089512155627335384399174503068561465272047021251259803305009832336169565053877424736942369668984865665069692523660585073831715808146471096076283687873785471977979919359241507641030152751540173854754346615732736199603456509035642488825560371368704308083963213740508446001179267844113153682625516601247297610881275513806700940114416520050116051073371693226596875622450381867478163053746248236470118687911299749336889065382686424107458608142957738788239534579413490061582618162662869455630525998194288378935567688007158293294295394905431547056135926747270743913496141142234082066062065836751916040832811902265236701169156258853782465927336515968643938256347811202171795085609968334759517885567467403122710053440970242840850320024775911642540667637808489772593715309149896048159927293651498422600867424742033627485265584552502239129556362218616725628725412418663254600145275998563665014858550736477819064372205109836931177223283303402642542272125396583687198635196932142958837157564038388253134602482591085358858609561058517963277902153039786211860455777282041450288783861687966416662697321509228956953058020928479391000661627285838995786714478332953833296772514654288825680977925208839853191840021533854758204398735955078614246830936072306299901046855204773662106256565334290191169265987510346256243652497423165815498156329527447613280215389694921259978259345505840895097494185255536491652878232232381848258553548913433564487030313062816316355158284273427521432160962552287833850701327286748992505236150904804458080216067369890392606648143460281383319985227771383554060921742982604176994711868139466337928693681344699584792611039951014328653822086248857671555253112797074160999518267431693991670940023017165964928084678858922277437845381872926853617177473398426368635043107166237863793098712637501996376187622948660091242364581281534984178592604583485702896926064223274975445568653084051437714808800903815097406131379843698040059573962344116264372795172493479447791237069266400435309756990341063630940557304327810985701164744105912971415887407023190537930088832634332506328401919091747108239702859367212301191813558853944542149463325130137992898600268821806955160906320459808518176212683026495140403123124815684822677815681651072133364872428529264873063546812104532208459772263088763523048196753415785386127065585802055083907500335882065572997646949214686535784785147119231579467522627969749189343203595330371491651365802847178602740315431193851374676852710182750674810553660044873921701854479259172091387569393049199836372659186892157462413503953527279292124323161734848459075962487457195453201812240446870010999577938213561052352209053647020753332616173344517720097995792729840026105971235764531908447331145704794740102813484983181618538115204771791459977495537527586933236948109137050140612830607449180069462496050538435538258559407157537920792667747844247876271040184450847419955895303405706324804556797670729884902457028066768646840829393392956796905964264115704431337293231631948437111115250896618119122465784306775891822169410862107527569654027236533350662161371596520283536163099224443794755140684028242698504899097427414885450601115742143151613323606559336585133874844270472618666679171209024105150058630270756421134472484122785733406181667769809324392834918268480064304344302805205030948647365504573284054389301178515897299887867423921383416940866696840853076444975232570387823964881938482218863807653137818411180097695843816854923266860553310131177471082282339886071314332036174559412776327136521942730330952092122800048941280631621184758611929779741211553207781001355585617908057928388427689274217232543851275864999050179416895855887413009751881558154099878389036351987732096834126780693110279261516429549122247067958229075162682467066952073494270541948439593899336649224535678553113996226393052361470673391857123897536812403347213908462968331748741214257462590542076829893074211076941728531338421831547284559698267913255015088053277020484873317999820972206238218188924052091312830129066075661587811989187785848613310104942504523207741905122522611132373303800107421387427080258979970397708020471948975003760653717316779129120040446886643171517124877294161162550087968831588084126111514008910476328451520332282815921956047172605680505332676787878248385955456167895465219745563002927508360919223853110370048972280045435524713285175805424093780993896417991198150518112808460972420609884711961636244572611692151810200501701886314376323757061478944365712156220342132480230806237808778792397670180062236973932248513061345710864076322990579511840518722512823500467790934027887147335695763333344148969766716490418803923948528727999959344296842107459790370705454380586796902148687117560605125393278932954951351357982201622167470601481675257573320307590914778902903646373780809945056462662784249794938140070089133319966378735779371771975062409300075619202792216337058891783646402603691472467995784848495800770155151204352932831084224397933822380999852852135385458665825497093141819520428703781236890054905281001062336054679632844145510500252045030274666446319933796069449825573317759017596032720389054429246577345353510785302704035182762652946628412918590357649203841077784753323235989315654772194614103612634413238121591409024697789327503692658015124982370184474347466425949049903216076290254508806943587614655144778795658374162041654383742171599965020972409425843569503277011657004912444542096898089465084506811993844740084263613792040131045307087269873644548532688735907979763050002754198396171248403033582126271789184677235539298100078266426747360117512068425949778337119662970514314416236405032403530971940372796182357227230662273818129933693428920098892147698343521882373660418327338503478791058143713696784679915897164234032185495111245708706046759630797708367712555905562299583907777992638217148857254673191955834505986281995032430305212695455980540487360739812842798822397616172932679159594391050780304544644459854913159224732308005313657917017841254790838731456634070298906861112909645211087554896928378790332342185011574591837437210968987090796300167676146754606696176323053727536046753049941761996463565241478265698247317973459337207738771948844403047459805843569486685381071869128797088081251104271676736946533899695086589480921192073835642296401491386205815528077438203615944057816402656249875162202717023503920058673784437875658526328469377702843773746688160069829540802899952150937834465396073203845540040347059054103818162740674458678436129334065105525646724694214386240892558384260729052197108324099679454535929718465826176778132461218695512463922704110184646443600304753285470638783623350204175655321127016601433245946758554126866446813431424490486917344705061732632352619764931506964709017172793916599754379074046191897540751581283359119368072771106576805947311362039349525701020973123321473702421903422003243643689737260591573278794241331232768903812196920374974371501270671397728317106568368091855837914744307636079002047022120971072398055136103943928744820714483503303186025479619025777255106352618491388847356045411675918099906696668693393937674277259409650106303840404109010159797570938962630929980255199999488995104911012182016166916110884189292536992120161090159628813769162478138228584253507840431132315659046653117007873804107952997557970413915528672805987271012067372619340980431159686303520072724123620222908000537090477975090400450508045152648535007040518575420927210443232190687125397545889373263770260562672427955619340976163630647772553247675757956567861605827820568214445863209699084770129516214069497909965941386546265223817189887974846122612601177803094659347174762815585602972716128249128806657444847782807986012534454120967277712117198821868146849364650939016432617621977684054801279465195513398718855894753845460971295069029638490566448443061439236821602003150637782851056670660405012850337036028338070238898654131975007550668160589636937795367159004798784725799133584582030556917549119671053693586273458111815001558253752373813004415578921731028270371048925789183593538079134261732224590441829838353729017321337945358607202776797993386749710207002885549618330876632841898901552569700937580392532299985970417852869931447119373460631591993295266225599310516231455055816178945798003922317170404090962672449617034828293196778341927547045728344198185157330149547441171912820767972211379765641127453093494879470057745356291326699824365345309704680966664374525280162469816352724169984632928446322959195482377068553432246746085881207251201905105384785899260851026181653270063161048739000383869591356867290375272007181249123362697508063272220719945141432194462048866891329842762874521173364423222008965392304975217634718442492857559999215185637267759521817015477286045957383681637064415358269494348221882082702934942793799326734399570172736623311530238714293427984058265683670690740293984389772594245772316368618868661899385916581097935533910686929403789382663449188597530290264441267659522643392805385442841680370625763562244462166774488318314086764852834810167110674351197742148199485893894125295751259929564534930377289220453619398568991026217385949943745024092813383298195070128499333529408818391750090379131644202885232229840458735463050728132940271777732650582111079247454370069988963406440795068884414014512921519058686867943219917934132541304576356661047335350044742872142406640689808169784813513683150904703363133963753079827411913231610479998953926538965988299934326802047341307828310988809549180051530569855850872340329690301997605960998245388457505950034648522531228835128190436541676196107522521519466947124867904560729974719893558932411905702277414640101849940799134018588609231724392027918407258635100638212164688492895808466600894274754422655126501113625064581932449563470162557223893207801610841745965436285997383104747343353611759467209400143335002093044440380430878238094900207147261389599865018272284539333306577565337513089437229222104496680094432767794032299434144532813427041123419639503029280543939866812668622262604725494030598887432188936804404295780919951055236980738029988375107214822232617332030603323545125823397967419743250129907397041694941750538599952990366097841168756758785382729108788773339392673264036296314080624783895418562257195400336531065644199223748953292385091996326148087566762637417912055025340180947388185231141796783299899262414599110376716800751558729858458096641513663729720410613446320216820712917235240256634512525701205062618044472356092119714416416734738340824105346427632831563831652574557930940145965386505821592913935673207880761526608656558803935395144269370274428911143639464330902190824685505782808593294842378505690398147191100184192737622386025161867157013445069805192938424977064999108631919817622978778849922781388189555662545871638377193630611417700745246247746604971414432670009679270548347326926881385812359657484177193930728865311294453696365561900010289202112430735451477439103985524303838051579839213325685975356734435707368599953423523750944988996593225321608810548638374056820349578030409703549533310488435066806871658591816609541196871265084625901563008694249633948110362040613503854055533268264671977642121691681016596247513224698806844827393774275464230838241908078520247707387460283525480488334476281703963648686709222110494381438813588192996629738758764318586663953315413329805374563218733721828161598019634046869959069914476291409594511792318892167546541379164329843824012814780469358541353072386338624550213945254984096928213534329741544637019516324142341802125444459204680909796177522977365404730666286826442848990886683494068425475704283400481456951975766469587604409588836987031038576450837704280150768740352668350241425084632914548447698261354832810376979813011833220271867893659631820044936186477531514489900781075730226554100299191218527554326239701848847591406286135866714020377847281822006513649179894499610192706240171855045561362726530670391444756241692464176707085096041785582276884144661581447466269790002525942021381570584265309403376612321888321982024811066606324129234315064087262238052176219124898710415452516144584727991484804984912537605064983099931997563010783375765790880234340963620951321940677574671768652039787740511326017904644156419998698118143136922913444825019926688896039226851625505177588510542710095931189526236683055906092842306247481256372183915620475209737767190883838581319014791469153598591178988397794716259703510209051049559861814616091867237544142653786834349164080895224907619156450344349541797404276051039259558094827891341997788322659543085128080959685714768420372410538392144025937881352529177259714825983734654924291600262907662828542892028814984248526487316078278667633038295337731197013170895853049475266732741480917879447491388631151578731267212902692216952419690024181670845374995217090907441445562459233879404756925580693858684440521118783424061644476886274440407841344233126306811964262507125724307147032995374105506638616689833922352263552358346808210219286864264207658585142451820435475723445891567060647791995372605122333243619538257332554142340160798667727467267632511516919949209251140443978750922582801298413091520796217808144200285496129122970985974604125843209263810825164187640588778353416600312045838913716112804555135510079937635150248955019571669294946783612465887337510127187362587777199909970812488489533289002773742018189078585267978013769385269061810605920658531810745608566824738747532862944683062614107872028899064033236163384447664358333952221036125122326320618610479325123448804159483391072075439922598729389711252650240376844460519052044158857558247619901297876414982925352815613923290717232056088358578603819422138203390811355641729258518154081766602643370902007920876945667720829330770498288021527662351208466720131511703400787116274437066252804718917412199407564482184525371874276003501862393256125520766067190934203821813911728639458410324764935270711955364761677577567718184576977481962444915335932614878905319173777966319836520727883934051908739168196228067818379566419220993781748794020382607331022502400040605553890544042024622542584647973980460783198977437995386774484210966089157969343969285495602160859497225794857860554464277770868783474340763237093485554333874354409707322940338978808505792475590834081590085797513637944692678924488891593520251980675141960244205247144025749722516556138604922854122118969694209530000012543802876452889390521459849834170799323185339336832889640545747199803000308015588946026838944073912051595436420148719868183495979846890530504911400497409314082429905581977306167126057972490688218776769962265057588072006012123831110092114845168815012041633801674920321037982974503322200079976629458698596832616280478802261014133699482093829528904342268690435356356653167151880586650241797032616425257448235144741142118843495138225148267340391310652890152580719469088023281709369220955982012043483631424000191673092228777168902332972521208013324263039229861303965007029798087980254179338813234036662278038254772012815508816929345976207491683760719431855408195282562074561965463351986836547947030837642090055001781491796179359640156144818208073171508370053445064187432115483087799465875962055956883048926476491312970348434957419821561196337551068166502546820040717423491118562714020443333234457306309299060857800927260322796765708985270880759339449319413101173197697029981338196628278134523569190404456097350962575399759949703933661907228483983514808551470209932669230937712823797925141479689671085909235925850008135446521406912797912661793347469913748715940157868765448384568376436820285886669219695148722061672458626365652371803955437278303949839675666384159974014830794106113339169424597018504024915135068823906913990615631104056810283414295548783314804140030017158845375304851954210894917050412723181285059891501512968532290357485676566031165769458969832678374584626614143029609873629966896629596696464558238153174356429330999937702502928753506715270313984350952759157749023864912094321387691073078670650147550073048878031732538094867635604984717433179846889375607834587324350551674077943276682052149392129804119850921312423645074914487220468482656171947912912471712880291520474580907216392250882921271379834336286266590901799723910269514729608278690311487522207736232212463981203465282254022175999784169130297008442141404123307895016217746116974604841706903283455888311395964539036794736073968954043197468166031163330356348699378830419999612062213226362369174252149179324704559220764293012285357278111355475885682778190513765875835194670939085256985956681387232037370392143894436940188515251207104635797219747742031825539483451957582414662374326476302427486982864019224544230619334618660222996627702453128802966546492252886490526171871126723376956125632825672086970395781356079185472966572544618117614561930101999699881465617767345635002007446625220533239022792999306593777884505953612610980638261578566460756644879060758436139059335633189117598108221262595022785912743667913960431815803407250003403215167082891631240626850061747593006055759693937908968563152963464644618184771482137611738623462212638217345665415084177269066577571454864326895858817412237463928473930226190174750017966441953257949197903895922838403337398099767196758786688685798035178350215100234831176806605169619263389642572029922145831256708243151005407559142209122594612394737247098781880392999528335712380222303017781031341194563259202339983257336518546148672534085323104514575556143009389601630728831940910683300218884671553265018104517189638390788285191103572520947594536852273443417439322152640049776374619994475610960939539543915381019123323851886239777343073685961091910314432402139010908403381114495509029081742788740039205090457369272544277600856368717822388696754574589640338616763684610498516085313860212209816486523206931018494477924831199747700980881703926749188053576830791718972878997083113501916086529757731427913762082436069988887429654815457886150073625502792205094292606054902562948923433779457175570007414225088791938794344166730451747544754923180776906526319210193543049171849875774079721912602279595514949446281609597358159314639129062881326564531052565873083405998108978013397758001416499811699747659069285013576353548600530505092255898729062975775039947509746299825273550523457888376292444549691919534969907154329858137338804331173939234878646921740902128252261003552876952572402259493729714396534689987711022107144829963384774487358537011607266579229436543943161531060472159913125557984385337260001279949296052367480973859739947481154842792785099475358994392505691441389255857767715305063304010551677561908654390042579475589088417411148744660532975550889690212377612937563320866424654234027317105828926406027140969605544841151534125291887275604813869922786819777104728718024848359623194753075162042015369926855042578837208645312327048056074807370900435711989762193730347240852915833715734820654288985810970388395450082855039679971413751884363323039964727905594566229025661199982731416484761322475200325810709522191310661943091148019600517778414623144463394745465282776972732055672327994005080108724358560534007156886782239903016983758436871799288886381739610140735185981158206926846223335283475319878418113882705582182243147363675170136332236385651078709920185893327966629909883002354834106560832627036019382872986411965808175440663448192713205070160935804596498641896225691283817849908206448989146060310447753094962397960583155809039197068210947844740551733288671576152271617369753002333788304507541895650776362065137738596892932670676390944018276715457232310863095958314603493689659750105902839491090981638844749818304559195565410734547714001127259300608613244550800954462922946438841474069686129315107096048492422258460602826664760982156401171646724296819466072872867518980742937827740838196283755519116724225949092653388939802843433981721395102732058262286731661395144927812747524084420225043443349592190655166954015367043090393919607349788603626184896220235856227639725239510858951862517875471718639694222290285927047696095000418113821462699647846001456324257480853148746085253261703043230520710198729715610124591682943932870324780231347618185598862163932229093728851226817892123540067590978982939430659021510005661291489673510155921245396105948927177713066960869518791096287392391362029038640066365843751211821515071190185343029058643305383499159059074911717183294537628082097832783673097392315073849089476781188420570607549787691299076000929690202740160365117257236091627448646832028638796053128602138387821013923035572940980809745001326582110266025721177609349489704705277920120683480390993047205658301527817014835283214911635539566510867961063740739653718521309236956998819636750494714508649142331173145455664696886442629026480373183316484387043451345491626922655431088023186303444296260751368209590571477060298198676606954812802536957888830776950299779212480088723626524045038817384606580483088694232346187857934145214174870575805057963772439819899483960916970472345596953198147614767979632204940345967205304166378375406738636453391677647082383985384860751713313011885234496357359599503495875875638028127765278698975744740688001090821608014002549839137348456355921589007003059835905818621297174633494132625550487380232353402440615741086075569939417143661742651084599125363813899959261980281815270294193700948134727605614929818530618166932758413636842832020208205289485227254524121805930618779348198044890448238491822505975564451691323602323698576048218107322832583526961656801250459771218588233274074739521820945720628313200113216958761004311356120905155682467910170344233909907706707360823602080357190990153245882621949653804301054132370062569638668288189476929733337690929648989674996097098925789098927696209413205250147380014843863216008210088205257691805695579867685550766599796395203664933408907193516241467952316384577470195135973680488013608509402544430445653198623874202849405707942647035907032768571357334563329609633178565842069336477586925967167795302662335650847777182282404283689360390432053362338158151049183094119640350358507128654654998310637867575834797227625408660908268595795963611018942368416319790362796340585288462387763711379261835127693530002725309611395256954442024517008149147955511562007672671198360897684328969380055968686615525301540127242718619365071215487787712375911834030374281451058141551590177600293861758828461158048025288592384613371555631413335668250921244842669340763115520605504098803399826447814326937835112398783055121587719582492357794548275318770144405394208855081484959638980079680147551386221175912527614336426105123742665205360537907589312109364553108253650720055612107935973999146706617952261791692833980854223191995298274883490497887510071737501336721316464958649278118695214866543258506049449840095895158880395647059960252147046824187415323403794676193383923383143713931797616272765488584098656014480725451995449221986691884821575130395306448078217240839227653982792751858954505480551963548404456229141117526868600756763713766188197352641526341630689394450640342831272524612557976014188625547367579635499623241085262121290548053300002680327822908129318631397291559897761568928184346595214039514750205396188686042116581570332332217368801397297246177226272102319594102049642018732408498718531928281450336440921629321757961241064094160712184898911831536755944541574563257253626527119619198068338032170946789627158906027471613960642970319142467310519287420291192209318453221495968675345564069599548231464398366177968298166585504445764273109686203869765666949418683501446412436434078241614527579972482726906843972313740674863033649461858945445681013619848920626846822734900325603987586875299985172598636647034367142045450721293304774384584816935732147115116040514658302190940191390797642558108088425741989637371563996832695836916023181935263696462461360531163312435546658734547912995885467089149029866672522991912031315569054761536905039170840740431178449862509006042057393315868451914498840142360289237341861637761095581311732785404562833284441453160840704048293029725621560509821107395254526962626336622201989273771246895244067729793985442008043101132559028625137337429631063439305172357500949476810602495352015566700105624264047612010351461734945462925452659281991754303079423894790874271932998976301001853276567335129112812932510465791698229761535892639859471836829286792688347121156899595671907049874037658308272167361448799220969547680747636715619259221266441616863312833566626222651146939590188825767865241194494287019821700923594708838086967367804460391288960366917903601136312303182141529032108199472424180833661662267648943375895491636890906705491564590570992127364425000993656716882887946916392206948213126200370824713125286224783856882083928221707196574223349468523323866896236123782326452903875328861192248695476663654585105638080586244838552040564208973684146727309250381782556736182565466345520886883887213412140610549004699978090894934071264564646043858520170814606060002788371150556412573438926484516388324615740887160438920517319740307956690721142645487044713419739765993799153117271614799416983370672586335760320040893368709908123962365578423814020669723710540247268855182463442190345473721913987835917915251931238414133099391483685262889751417381319580324899304617856316438698725625341171878841257342925693823102294548028668368559640495907064174697762160114630636373966584199991216758386145581786984273177351152462851329482235342617303674057233584861700267825320168852150589033912998090865845305500508386970980083958696863606173363407397479996071971183186638574648583428025778929852256890572724005650655132559448481431574179021723042346128426005561327980683539003787461362720589798560041068314797183143268824064055347849397993611863780211825077444968274004886568586857013946568985208529420817761389432196369587629390284218819732807372544569439893259710949857520555778298840467712829428353444307238822994210467633468328007858422002029135549555981062878003105471869521216313013090905795888666306028388051677152869738441890019910964502023408868869343053787294757549045035555838818784531736411967703054853077303735354934842586251601916604713582411426898333811608376161353893902550052330681453663717378904996367135861554129921895584424872923359689255317180009257818409638242840662242169260560096535738961433437415572514440562719832970519601963548152026410316178643625916402317588128907189832851067738238628844355219983083100926019201833960471293404809776314273800107352100236712176799060989906933348297940065453345442745863515240925284645812204696621118199461640308784910574324724118225915672856222663365947347870788908284474135939507819651933209890998218327321540287615607831509468826802959870311937815544867473416537336481178565713362990697551112364842521746675204723177456271070580850351684200122828742925559482895300402992043401004054846522353522637336047192776174718006095969376207006252856369686600398337346282461540087514223310697963305571988527835521581290416025998641742237430836778357227481051588051161438735216896888453671107671099142965565254255289831537108707783309469215524270727260905582628204750753588852239396618698147457452577988571360032063664532178201990845681734377455984689478812232582818895328601326175918711145970430385495892167900971557084241495885220610101147300795244195857217411583169753228254916628340492331740123428756247355870643362475904475363148429289943179655928002462040466576050607955624502923505897904434100478353650100116076926493011603351487945566444039692540369660426224901539180676257669787251608423033283950919255639575733165724809162674488428002421138019095750937577101935138967847080851284305367685331818699118552821360615352046882331735704580512121054877039541264899205524535586659288641962206175176540795119566730870968247257641251801416916891036197456844262283268167314434394544816889921275634387436807928575731178284369696083636084024735034501842631061850343545372180417065088136491983678777790217147131807080308624743436065015197635430343230926268295892266667995095837214543445992828850916857689947282878561095433707911399501747404158837156485725324091261529720615056726633514642731103890890952667909042360139465197691906329199678049095199755982081143758192883100267156474798039621224395786854673851462365503363503762539418213464020125320658348805495400904997249212794363302607013789390764140165311600044817892153058375062946630829568690003612961103012705073922652806621707268681946294690432688174826335369751346728010824371796554804010291393157468859868759679602897531426474670459400502956885318240228853398777220423755304262995428860052031470214238838968092837553226775424929228235958171647599300550176156309415729865920044671682417253457222177057795684177674450560589462793206965473350242314536305611885215910694939180111391718841215725046007028188211634346755606413457116393726295054370328373458830047639569084756666769041767561168340250910945585129649511069906627394869149266000604643806544139839116216313902618453395624832648735587721731227587190316926414586126691016601203585862291806720955201701885508717866996949581769405686950662473115673205751002152429567532258696954391212162889426133966969744163893978604178905792068418188138168853777312031965444502638725758513093149551515406409939125493339674304926347421070187615902554586276266823531562638995005611750152764784615598327252543728616879994696486088190116621017734789887674293038898672459632663560736614616160166293262518652797322114090722240274613719331902087186399169358466981850853899177739688784764238702189224170090769382805018497940267295143368418115970960108189914168893884624353273107589064992012587561851507229077565213501369586737148931170204339427921662329303034205251351714416892732296606710201693705972309879530648297507064139203990198580979921425853216325736022777485556322647678121154670534285925870985384149460502059251812698152651888504865025976789434587804185111432855863525829695835691385016363855474945854583832878716341727548442988056685257135953003254050814158414042351098735114560955227853420325150889476209384487360265496168068196360957313559595634391902270252865036623878213132291990957577235244098778386646008586315495384726993065319467066292759395492580295633390155478061082522218310502531777984553878464071736684789016055460307591618637372482478645278052868700188882338269794011007125958855242743213086572592658392083698098391405520526669383980245819180129254085444198593609234387395251015767360531441654946616697636286090480459314329334692061702787897647914803326958387858705339591733039178402414737735417676359012116699747248536146183304293308668975529367730034298893482132829916848603854463580941610299609820338928698867342900204490707084568547447313904618031377369826022268782108989399278443355991695370002479682189915558866986136079114337594760430841080911545946663033020433740787865127751607189981490756625098700890453600351154397670550009235384481048412583771695908569241570955890436939770730536100161192808443314158839852277522492999089799763817225748548797673737962047080004089507440219854893507435382198581512056794867750171155619172064514394697398024315047791576616829463324624200302177241800712566163074291922002110172830877233827408406605685519359492053860552609825211253947116499808120463040107005872394831664718742664638532059042705857425733973659498436339523076160026415030815243492536525779422610231661887545412709593602304129129981837275897001588558247016361402326383983581927378860633994908596528467579764884477627039438674315935476347200951128869356647766975882147551753288879207980090782445799027080720666505932405077539530706671106943479275645162046045242645940546830321313099442752694250817349020907374635480998562160196928690590304753085418618744128035008897228955995469275357700340800791996830850527257435618200109552465698874995827541715934980082093954998437255307700070199142654074525104057828481392240483112453001554756399653344423378746461818779945574553515650590052259340526194085877168937501127900070051002825335521321724420207687664499133735494597018117734930767668320537790807393781479020864591866606518183782432213196886013605546837092661858230238118024299063641026922155860336558020681527418051806899609585177649995459266440501672596239297954378964785612281717314274609537096105223896820763646123444043599288166241672530312874742043028611097770769735696886688017731561263990667515493764062973550219861677238275544687285642965928829497954258351606010403469139457747063414579201443472612538395306372640684166411566525612721057294854195832541712598509194424827217375381321687321338881734781147524918265710611196063957203139171061558843764684145003300796872660335218929640083758738430727634784416577599298274072120536773508995811692001553170719045322844282424223765194858182143337690033950061946110954035649439761963018851818330156404547397239814325460003026814726428833638488307292502365368745200261872310142004838751115223698800582952555231141296850676563315087601248418573614738897141667045291493043810302965240645446914259438561284949438605394184037758893860172806350069252367156387258433937864591351673371391051806712827010715804633013253297111384200345545357939777903871827484848306477960821836556010609078186837651057006697261899499803539268112418624220419891361525775623295684166421145999248264917163192459073602335814054615511915215047128615487141647918056491521590205171785690809272086907975250614313806732050127993854995999314904008301025920527007730974694685673563493666363760802910174503145673960412971875275729932089251623536968547596556931443814159329098563485390695902660028565351067735180997829161842184205483589287215306277560422165210871553183425079370413955465645213670652327254152372871956594868127068588066308323263697697290776892047479261127556141885336650637176443971608753218711935497516304121504959199775290104246623643781917536035223090932542718923492858866612304245015932507456874310856147006880127495982974038025840539117912202476836122577047036781338469879642108201081466108244338530059085626985239885997620808616716973766639796200632478924692706108854267584270753412954869505919072861202496727751471262961325008053542668417140329069639544782482529958524839686069064132316121091969520153617978273094443251282724405539860766982433916941813023957297447645227107269749716092908603899404939460049023441631425524492118415412944833814966671423470662015234366669429107052965359391756278096462338012047302324422575939165253086885011041178611906022569367430784360755918569796475966034071731113683654743900869080348415486991200098879610743081682874927318828324222986750578716083057576140207001559040810950631286814844548382438910178035060361494962495522514079215461290849284868009370864496549452557788468985942172008624548751848920268993074407390636466445617511353039341273784068397297628388456126085614265118744705835476223022313056176653698005182753725786814117379966584452721315284651274081166613206776592285449929373977758961015621227579970062785628900513283924681705480628576037720910480354844059640284889693718959186167663076751245912998797252469893404278736394088649570128805179303587549111081458923077876118009737003832234205675338862526010469638575201058028533796034311697016907736017580137666933087912126333999907356381277672284472708094509672162181086342286430283719916403898239976730399881560228012193463819180685585444135154217290248729124409366670582334084795463936951016621697703307269456892890373551893866506181759777837505000873261307041421009629934906501068567892749610304121051034700538266173978789424017624051977631843341327976814437144236003036225270393855596571121938452479788358196911539732550872458284755265139291940099650453786644325611912350703748512519480245822829858146967917021380962203512439973286055335303302146805443343213208254660634521686507570631435063124490760238003424316985290501846713996313217916057443136669091260415997361981402760664747948328305257744148685993225626585150629569987411853196566734749344670708990920400822312456255539021877619058852206774682954302882664646983292896258754689058203076699718581015846593229782146435320861218719950865906888660309254522639683433512345779548164037525170662849951424006846281497195381252773562272130705455523579809264201403704144161638149223862705146374168267513237455987752784843474700878571501110530543607407347522931922096233174425844041556083102040515000786155849841521311416807781681541423509000867731298632889483976955553810069403846687117454578626116274399327434944350033226222713973347641151488359949358200197223151619118716304326931041553524467834847702870737101415123226622859016335207796445712579821694938771445965674878498124038669772488536434164204421620746780484168818054119984188187131216008168301749708670292553494608248870418045205947580875625749800183667286081087343172477794361669899208655415578903448232182107616583907982943074592158273551239439700607598008541665368909324952705370801087663814783957613893133223006115438532830686012872707344364577134362902171355375266947779764513437609978014597141540099863038050274936182202698612463726405327613368281719820937086269254265239981652611848460648535079253673774261614200026146356279231385637537767057494749549473600337814236939906235815401364836724535127329815541188901442419370425401743267550954247483945728538580623282393302801831476449989309669501587757297700725370123716635623265055182828302122433823905960776154814253394252622497561488020504335702295423439977199708203611824167399863966349051300017663407940805143823581128151669711332293638072365209012535168075411183227182566124499233348305434462331384891138382734923477484040745190845434319272800836355995463312762840630624546307254289480648871345060089322649651774176054678905068585258816858393570331978768483305627418023003952195589899584533746748380641923625550763789656349685690874796342909507771555653977268255736507374262324338879215056346065838282411228602820837291232472630864204929176383276123750799082104486401570803331783295745928409166550483678758442155364011594766451683215246669142156587908071864486280679079470031818839639479956215396247563779601959223834899240100997559448281273078974003176412703155056873695423290392748399221655456858542197202289743473503809625681924911171292694922504931616975614726970900625032799424051516178177276928339243190039444894891602362095344584248190966696866848944319494874340301329666640641477273954865470458609150964601366283293808594552045260366306016778863378802397826234627616630362368997790742350945196281742716179145575453483049662350267622599185440372094129327587197535082928545483701630374836068794483555483850828057342656450547534657754853918809268286977299817767850843213884854755633221444020445092916664349822831592763061441494042042759628542016396001982198333053050967041379572439389918634625068119984015617857559241606796314876411985661924951170764472861462230678140619147393853849109108998558398415261192097446328574141730768346850200224680757098604348872354512307192115936081607467635643440388818711844956446780327901974191805728625391352135115211754492395834409767311496196226051972074954524536802697573051042301770122060182448199928851843193381391498383228457749452285465244395647307102380152467927411087678090834699796264449029283791676791855538536245982796954872189405156035913749746374470617438529507693892193253898819564562635023804772674123537886486300158753983262722495481082369153804726560831027524649475509279551488483771226051894542960182323852395447844442148840044482925041954958714479992305154161493526991274381061677745168566792369362742317111000790051552219916983921135447675392963304288917481800848061962709648337514837370399474430656280710294077232872456232446359516210545828019166477422903910117009664379467987222142096990083517066570852127914329847366015196518826394256018959395534618770811820851967903264474612160641623368179759427198322367356677640043920249048810378783883871065569688915621830922095715647428580963495615106029910922066485858797000315979456370046464306970656134898240649535211728974382465071667877052213771717826760537611031208785704948474715898970913050237542848022807812093793255151452485539702163974050195951093327368363900095700814229028864805519801498668700430612654691327390103726456011651477502687986700670313798672734901741434656719000333874542576646716935111295545175951257712718480153910931189305050861892794821242709298587659563986352281077140942526145433771427336597887522842371244292397341205339297706902463242356197346453884343787004324905056961910104599437383939649405773483947186149453573635723438563491651563509025286204257179403594758820815844054508225469312285048154951564541885520398478282702391735340686578537862612955974441474988511093642267101802215826871422036716721547654243056191601907786267964865788692750900399242514430542816344053302677294622821148808550504650428202374798565607281583767692153756340146976000559123910593339163035802942646509482940951172977638004013759758010696781394408416884752924307916856162446696410818381827731871404024271942975401197892502220217300522101283183659227079755557766329192530258185241410035991904038173388725990151201827439877501115343822021924533978394712474155814624896481481490990487146840205363125162271335643587841149461152313069197289380456554447702158472316117101450264443827111416566810177958274275281179005355043367944889671528968729609693514367160378105009922826264547233914380966998442475759715660793073677287798586600101676962967468423752075032430206819987372329378716295675485396361499420807713550499574425907241354799520690399005993650265514341503678917728613544896052927323791604144371172897752134177811178031149024716403976105210268735304904605199788284121739973853405161645362822805007533075218246562360157823501772223301341953415391736072160028519018197468952704968576350154371544441256491894789605891225881690539177059110320116263612943885649732408513145152600762423358742527598630268455426474617769187146345919605516521169802462379497618697686904853485931727251434760778388872733425582956559921188413325495505865146194656569715016224445246748892861114793386614966472250081607939764917697875922350867108622307480763025785915950740079741076592141510537257863371751697480252749066638466310228719633868002099924138805320522359354384926668591663745030379551800101686823314475454070263863397087755088767475683569876284380344531212495876396134355494476923300033189331422303279329775308628176472352467414950853899588621755354940405827909460511611571629288993198526397595700446908954259585785712079516406880479812405815711319757603326468194430852950369483224720857765533660626004562514356388113230162405165278354870225293660554878339020023574891736660642141273463293458659536892984348619380044923094176415634959980891554965030101287694852835745086012301521173181516022322030418903231756133012180409910802253299147893758727773281990457106718177253612382881288396495573650455931310219854329676399887916973696033490200477670112890767713690284078297137368956467171778121206531023225008557222036169764506679038162441345878502059204630036706874491489449783890719488021155128022397755287232575539326655919685173779895955242799769592775467394596655173989743243729720514404744375079636962665527013766006135940790058918970955577153041084580846490967365687069664110732870184904960092450974532574844546230483225364679216087435272845800481357406455184889491583513571301696034567917285847920856288272679160890875890422249596660112004857904448056424132920664766869840857549595620220833367481965321619540514328674242750296025791156263720331785108808393319928763109906325304235430039169280245322331911372166989932150229861753774636743642706730016383042409843689802475429049580268617382519655907895356168141257938825073604085258372217257327826444882406029792309422408002428260465247230704152277650912898025181070329754285591464584505212732785566035809943220027171496983089924237890281704463845511478895712559826645289347442796441725437123059486588059329648203931321655301850402235600559907073920056125845569558627865433300712803896783679097686473825802734485620132100629009576662183705358876459281903423701348356974312480834047417611954633171551861073635712832900798099897107460119443448421823652356940283215124571029645741297711422942893579335443420073715014906128461090277216337351917391347906088650593003559151610271840101492986037700211520575196798971211093314757003286730037143828213879907107243752437368116968243087351012040905696836311156383264690770578755583220729458169555673251373356239684360703871396483322083465259892576204278812393689689001406074923638965843620579648592775209482413041775439755894210242637437233326077044148201579202411438807378654611089852080878243180072384747743449099455152759596210533606594159299933210043561471601626762807991083543276938675071037613192944703197406245784626927127055523906450686738851513352178929662743210760470908423487122043713485844060019393663236327063534915755267063287132308188260548171902902386482358811954352919618018144734194541624815584423649246275956332153417848016330841154275165306822579461889232203469971394993299453647128740800397167856298815054753153823035868919146223847509521618376604087398732144190991909844257018575822841666958162783661968168171763032339656922963719537648851060419180694595402057663135092348459042052500663446173206976455815343440809832791475420401158938928457578275373807030678781242536970508795704470951326471954016112431080524732865624166461078154055105428100200949437608831610181041493373451695657420677828864621923306458051682740854187461757931037100652494237976787864522524855540621478165837587708164487461658640182757946982241693840889654234260676078505290708594113698449922554757674502584385418520105026757357754932268412579072836060141603232042450799301714271976297362721246371884965081268359923282900365124578538927799856873571797196017975491436489748798018021029302268002858795658664566362076562257411563911036096940404027186950208209882862361341365746941317741332386114461952018686790602858331254578014595849193209292573774757380831430406847113016255262850452327919914043291554243862919977697161460745633994577398536059433071530169391240020994958254586640391353725413763780941921128004701536576858170080457292480030426906894652552465907205155841309126769311899547568452827725739349400136725795389783258093734897191125521449931264879678668756824537967698866694483853704131547796512389180684457877400883393495562916857874005992765063709886274038938056038581015079389618602972871507305944366984190991263740062120521789674788963283589094369796014034494604939061880555027215674123922916263000491752655612311479030063490960824208358848550418527266822999650243812642525579000188635438857286755695569718092083232551212332603629353564025388291537642817020416767209074607118777603953014367306497028841518530225336699925555989473464562006333416545947303350325345437647929060711057128880372674308086890727882959052507229572562414573660408307029726628648016161618042089315543418800624121699570777570334813589538491659239477459355864146056437731015921699575894429003146890057015024294172199678404799384706143759219447634423495559752147760394490162573368815018049893583833251008123573638452882337749225384204366749793023955697647651062887124294857812253537995476141973854743471347917078981497194448880684787626072191177804564333931734850666380384336181866476108510818841795544870135060979058506395077247560376473311701462968419498896513493383464755960315287359747340359054583407596330631390198918662907768052741637716943775595173411572556123381647310350127940619750767896685640940952489971343249121889709861010937737570120355788363390438549407248619104974804149118128776229100841561467220779791926642303383103174103071121548434073923249952524818057688919078565680204243546646895796504956283120500058476880215972157743668526068947486654447518467006138558331631792936734667094438259776447748810913147447975265712471984404748882063747163741811563920581134578983172256489396670977844845035089440177007759343358164990778201456302854663609584070691468948227158727631781598132333330330260966755349416655420531494866779450339011217470514389211923688657691678132263252613774290166468077566821014220562433257058513822082912826942193406513196230464220147820947620622418781111450045237315362197015632715986894949960798361260452182115672966605904216178245005030459809041369219265617217050703072649637444232938896028800012720079062856310718172287146521362735131388326185675788963379210381086167922516321975683391884680880866324980035429507882357079639641528364418300244315080415870337300864364777427527645881611988262590867926629587572266484230832431483819978616418140806456161081776349666832280051471305171369138637606645500946002764059045744622822638921698284367409350050759475721764088349756948439700404775299216853684136497124308198638349832226991922106189214851734625114172280535150717490270913706844676636577143101816846672901368158504707008209994283949236063490260987806955025799471558176576328349608970058922094412823849385965453362299041079774834163400900889215401270342730664283083391167418414791446736289424712847759423263269828621657087132888786051176470493649979107871859451679215776833543309569543153033528823367053839532409676130450288492798736962013690760469749891077017397449471643178254230702330984418561618626660880065823881126784126056101917463282812404468420825089953353749035866844734957755029964441977942701650477358544021250807573308212178350222142882920078644117524778798249073725609860050545507016711882104488126246349672886714106417723394233934588833497818389182326620002459895294332735808303637873074225835168258626946723790212315750182054446857723296100745465981610448557307945319490641809640349498509275212076987273969875532064497581268551133954855635080090180976382097659649539263215379680683460168719913333945746495355480849151729216314173803340044663956345503816664295405705219437409071131618655556352870146969847692096166771520515755415933494889416153956564074220116369096263465578065505878329098707664617129971565526601183903770354589562627278414680023917564513408489119813417340090938786984187032972049570350378061270957017011127451032332206790584329225492664416241962748038981052847022949471729665585211775326915350291514557251844373045193924796934644613246825802471547249009634631450620602881396979670432057540334695844986998443268561986243353267110914674191923252463594458395746533416705183401513120246390661111729231277609373036521806288283083268624529214374099772404491886169398560966701848296133524535028350820439685856920746104946927778667052480331218490814448711677182116207222286447448831283657079205674911449256742614837772588024865000714438132751691504936869278598119607996596527242955615601649668516116944989242343056448566484294862572795408728476997986785898953578163440049729909108962632249297215171889138350343848221633983880776777558679421927204120719228771217435493625111502749905117622221863117957963660006737068353451233814293671209222764266672341623406957484262594050287165637025245280744304035713627758039323445749688594261407015066744515000000116271950986030169936842026716790451132199605851984675886227818339182909934643365128452521893678097442161703976558924610577307731020254459576099968282288223143868072272079503803522532898370462324285060649274699078742078328502550650234755541960143750213357507452310639023363057665320777922039701940993760974153459234301263874697963482571857763568568338066703645036044329595265095532788371286858362911689894266176709074855400806767069718309430894370133745804905978246253147129849343336714725708691874353271790556268280966356223421322295457537324204788142753880006039900652562319229457444551219814111449468380628527325688186179227208136645811630039340333958374751129002681396533414749725231356027951706384903865660048844075642491567971656961327918931142538149296350689811087488756398329163235059059345225368033006421115474311581852517717063108827069941056555346984513183859805572217108059818312264933926318653417485592818261296292907258484372384070420168314545615317674679258982501853663062588788466320050175893240714966524008901481342734498368585636078077912659845280475460285876580950271086098060473153100755789835878407595699667526242956496776253655814340062759172388762106571668023386616207582175173281620507309988195305927088046801550812201779515457964433576333574172745251421727404788387935234058444674818327924975869905466369683338362215596002803906695831475605803030308792499913245352798204836584077643378579351048492191505376156992933217504964157712670116287051328718108104852607774583181404958305641342477959441643015540057268285864572662379437958493402988764507685729338097526274234277814246881811243674195104791565548608621149373529776747640761829342620716842106185259078767138811036249317843625710920494324026739681516279720178562469170807203707469737415180359593821810051942635290991244261518927307355712201882470954968950388238379314149019462293385540470812952807562934534821503400617041223564083367279136691851777901287740234851129966959635704824614060140607806453861204545782732391802988453793604534460695314484505527198430648274337717094221731771047143546712136156935688186678325789955267088637561567702099125555234041457108575236781119540562116582334051294447666028105051955728771009217061170897860878495632878769474561046788051549791421543667909914856365855317513237341413396297844544715100952488233077199232985196995682963985978371627116467750672142210677548425125919083274378066430077827867493535538474267945997878140805693961946857057235998677233827471798243596422430931144478799840728363394458726382486102679914354367971032003925589087161478773930335957225652467043857681909222543633904451333361530127520477889341984661718755374287579142950301368011094587508948897226878674447167282955193567187078028730571002736357138497944803004881444675991354437687259296680712356176305197865360156657695900650083495893793545064895127978662411304203576538118328800370855313302300602165836548987025397280822336211282424941333122700356732843413482986381352504019978590896215850834063931481661617394450165707452292034246454255617020127537646962658559593095696949912015510564524281424906242447452226317596913196909496732441047191635359491298513056241481158371695241283593683549468775118550736086365642625541912528030423356993588278338841486354655627194348228180346592743945160192660425933568043507790041204865611119578955386488696048894900963097941845117441868576790216225202245975010655534098823542805467444234555107688557837885270505181138289401244435993469865861100187501379206347682723166982701775261991750738563334633092040257498100185952923207484866325671820889775922780382972117519391401643168187872474064198936357441614783748025469860344326894187029138695301210149802208236159185544976016483167557605556113303401914967782399420203157871941149075746302758967177775223227630443009442595033293736644634701544866664581354239604504197710016244897158606939412969651205191240133019999851695415347984190241922417754085720949322723749122448807093311469816724668653895447981362818298220879576424328438692173666756457717014007568038241844743394266352428711157553730319292309862341136679395208681591206661984090153863791060673744357744284637622578261798669244916599947658893854254502867579140373699613103351878424816803080382181610178792498306383086375489468380320027025499979560224147466906783619569631311074279595298542514437375341779604505414799216094296380855640958417575573175313658062856018122190169468043983674321905546076973193404323811735726535689748797063268874582730991957607015332096762372856182310993355494580550358621923501285525016114615793998256247307599132752080380745925703610065745090037373565364001974249387994990963795085713772229362161242373445196903337249296904176652556782609118263070474914269913740195580402072944565381715560630233434677341120285565822313710367379485099860590164688383116061711813107451407037887487139338874861652718167566165470504957365682895764381203172739632176749590343417293709718419067686693206176360073484565687766932270428559935444421998920719694747418144059709726541039380504769762526957072696889388223258051022713447872188803377053845718258324816958352649619005170817438716469783353553827083893157426478720292564630843186558355853330231475207271197924336462897665042503259186231844569510547867216949915317037516998084543332286618575240992319830520766260912492754517539225459157355310397952391282222532804207980969353716399602948389420647795290652665781272708322284576719722948228911557614138882598353308416568357167090124822606836297092129316282343522837601740808196423186850592166228625969701180311021081484345870756207101411150759376931127626775805775698686286552512166520696160126789580335064049810592298900362240980773109687993168807336378764840019392964796441020854481457069248014225661923258962512371462216312981383703576093257024483831278190797188216483624522968438502009623965900813345716858898901386567796123110633214593023575719028377454251442309918286751637869894315705330537146220400352273678285298170925821694684008394659899890237088735432609266636662439433313955276978203386495190633392506136723775730210450231670100949607635149546301186144323611638584739130952112416150066666486070861836360171836024499018637410862542055714327817266721218367628796120783910862502530403561834465210510792111425072808520984698746397927194294748449924551262773946729460151926229541463295534481852814506763161149119624631839909046928714248758531693150486820852792500823820713684671668277572834596173505655783961190488274318656338830401396117894345409556144046391357819489721318704921025483618448300873660097138622560097657728193388578289259162085998478641534303673872278991454223604495992398710439005294798170903490594276041876683120246239107498762331128130283905950486664776982310419319766419918398922749613131330337449026463766047676031808647540636285959465494396979254471584494086412266508658333366903306481374494170348631476666926811841301518580177504802336366254650956470119154211365876423427396409466349737398532332599546625007552459204650833932305515271278334168290107993429874090931456706295635117962137014307974779191091643960463480902930476159774863716119587630986217988474416616123556309193362297448002668095705269342507580972716896023278987877655238164561499637678362597422936439015358013131715805759169307296856339408051623487337286324674364203086300431017130394280154538756702795777387041580194332617229438270323517102088014487503153408662042161103062416262654508665698432340778135007178081723484125476974277227899442330352280253003708124066383198057804457329264526867637143889740096682127422370693794444715458611255675311757853161709144971014845774447295311466822860663815670214008353889814909301411676005693806763778786372549231011004534096117256875396985221657263319520599367688704146712122179552314594082700948584966005873679748397151240034498542255371169050817815077305007755626039789888434639727020838229789448790858754853939739609139606715783983336347717130547421956946628255853356457282392046796254860325921103269592519066117652923338062293305809061726178007290235638796494600489701756495688931141230045003091769774124791988685906944864283739543712135209962903412641505490863218361033349371411753444452459999445862308645405603043058571492989641684062048145821335816094412388595004177019420425201181242504129434994549643337297630804236392108905251297481380776866026815769202430738021315554891929196831299471985943721000287212286348446432286252168511068916920490378300032337445417278577981594709082361548602457136736061391941478373650514354948578219739745056055919807789076751982594193526781672266019192426426050224730383526971759230064124954409282658424953841442881647984100431628272544632061710356132659966556496321085564228256555075798020936255601918968069103353250394254477711213157815661313395859823339445730732359780340348940591290050061509994559154725229387313839476683339976690522880321271710290695565519940545454037924345504873382943736794380579407864192109917612371443981747195767385039482367913267463407811927226408534193003755365992784297930515432628630143093076993681804207675728970531858004081595311642115288491478011447056148254944270082426036282208561248234748073160102856342443091664418518565599444157044363388508839939423312009976261791807580587408858020889198020973186268091604012884701080324951479714583614670421947687784529057606840763941643819392319396100483827687612633582668135020964250281735147728469049765234417340492773397288587847450241081179645520601977202313419738003507668778074318086648231055583500231304586393754629994869811418868081935180383065642516702992464381844247089871000417259857439252896480758652694878750458685148157642169812863773366928795973156570274873274007444039746159969705748905543211041534899606622550205970080248158935032592533852666764132075757294923965478594463160444308702664432137078349725248099983249372285465572283698384772251083226663208870909978696373991889424027564962079035029415087063582567052050300940961389304357671272980261263052936003718790168508183621124673941613447752916854206883195070341570794152091672465498378152628811733773197159385483437962678718686204983616674487164649472413960001099843413418815849996955985429892163314270671852605140258600047479425124760079197688395122606518033358182755331198850387091724392035931640533465872431894998979959488471149004393946533587651420215462985350744940003552037383531880052714505788380334818630718063742806062994975222435923839832402788755965171214041637552694307552672572032435297034180480544432304650774620053338759933214719425206443046719683333065489016120129929587507701103952874326756012696848863249473439057684790725497653140162267730343310037398166217968405120386459931905094472601053076750818085681806679900023709153522117436269473642625806855981538673812482518544930561663521738373235317731477582866585047513276247334943360582073160467146320197980892035581346061565643680339203191683054951034855283293468501167186020061988727833752216393707696662555269531688334982909363028068593463822511847700838255368284721936306693729762622976068753965393537757563051454914548730996864361734853591753214406555492298514342048549511022834371071378800795956967937070998562463897047577206955714539260802308949117260903398079207884746402848553750408405714750257222907833401409094695509893109307604060847711459320013831297324072656033215519552856120179189612377749648559516827073341111767539962827059141536968018036276205541379038042674290188266836680664131775050007259804036694063774671887317602601369183862196370411334561552765161637678828237743606052591027343315128012047773209544404632032969586835901981176422107501982854246737857724592221486075952986436042297699092521835002733316407934300323093709070526931872970585563574221238472840675893042686520616237576379594456258728698337267999733828668260267264359414407153246288716128408187045052187340239291385428525268191335632290343786785304742731167989263895403171185976864968374706363744393754761964976033026978038591614342295239764745038719226303950008014245044846087201916484923991099717076289128797656259706131882434568829208228209449043788214890693716243652863828593659465482933565848384909083928706791846538371067984910150516657892178815521009010104375051933931361834759031049544532827186964861691662425841706892422399170004770763293055676591978519489909702542360093262067907197039282706257165010205016024222440586853818422953975365348870496247860920884430704000658881588837803121450262414945718536925131584483523828027506503726900091268191880363077610299901017816349932616075438535837323965192579449886016935542607506394469970259668695277452836179348579736578572394178109769173115229206314432346747068584271750382550132385272639425612294974237292400685288202052051630931591035492874540551283594866086935244387614240230743913869938590837046237463387597627758897763874182748246367723570899276039157708297242548425579312231809402091004875246019456551486825519713739452326165529039071910238228080833496247848550629090427500056885965832042073174036048279800302115899230557314898806697964960171527474466696284521642467097807622286041140373915891000361976320519505648147653288838956230103571760885142889693326738662407955312699790609437398267396125607256741427500233873938468934522082794640508295411183500482737399803006408155432423471050854529867277226320663074348959193889191265656749583978725553631856975094523725123983685258699225987695064020205720963808929707326834540167763651568074386979269460358215668408263785027922537517090672381590688204421296897707230908212749818688031803985914581198511764061874028486969529785727980295474126795256964349729111845794841835705665182362314526313648356750809855044079473386905131934945849568392051473796825349964882409169806886697899879886820193080518301533790906527701689914468097564007120544708992343844382725020395267037874546912509189784584281441492180119590188970355273729234837272847218939474834306366907928936001776890645363505222725061077540840062558320511078896347742481099096185197524130637325283608956426422980923595321284625929802519684529785894176907635094438886589835833442325671126136416570297583796331713776319998514475411065177401807461875029964714682393502900099219697573684037316668581382152110208005036315493624963410921664932624987230238998584650469189408081810049580212677723916650686191901808273834583123502856972368049064917698608061924407143481768749364106105928925353704684387612023199403726165318163022943351505160446390916265369555074518321205911080718550147119132769360925042876157534695502262417187334859724087501345215826888541396696000864622749063861177946435409619882426062789638702725017003246017908286931217284489553686155851048025495247024079268227212998438918140993813784590224385388786719281722120706010345452277067120133469451440277125928524388003563188499018099399594635630591570469673882524748807207948308616986306009796515292411173819308012012254409285589598052256890846696663033710514704306684888930409566390173469272293207425226709437033388273391878757742736142217588637009768304226052162874258230490034404665362759901380992461799667349804759856728888465074473393792164231457015051891841920753191218496154182723530467637645389160264428302649319789007459629141597038970001641865857604726986956675056596649373260614393299286008979066693681355641750462519123609343134511089437006575362873856991231741846458553100729923605075294963651003820021961368623204835168760025631836480525501305138924204873676929920291710893884306853519242928630171612440291526220098650371068574733509136857115059296131616386855763518296455032893728996389670460104755003306629529220317326292956154633154114429061308736001058600060849792264446412717445619714361285870196679344302336436203236948063739251699740390138018590541282387381420394322278423707162221243319162849429886713712376950625229091629047401393459152280043627941963476216593406698786690907377801500194868484438318686205479526675102462067729384561440850161824979366313813993055527563313271018885926533450240553556275442395896005174534828142324476719395396716930496463242520087510282216402104468274912335338114000070405176438914600119953345790319007335862431549453718313933697619157573421280609656190729553645285195720398045440208610730311911642012941343575259705369225603714843327628280275741469073713667886407848541335588256260340342635297600592224267763902249959044009148436389966092578948756558475330654459367713074999909241544668099814578119289848229599041691750307262589480788836506587932285035899432995094146667833273693115198808439764659001457359174499320605617212226624058933628217164075796101276300817807159860955871307817502405760460227645563718941556541066683541489555503585493026274955916990245888569783548483335696126738610845963647828509463649923098413395369820611862203172864348057656637481080536759910372866302313366307122679110869796091759769857310661160192649111676339010313938886701210487780126389479739436643887592621478850158334410249505256493568607646670584162669140644048162380684500524822147440456345660823770252673439276722397079736420655924697586848086789817943389474076319550038874986231876463130025900494550452378077759925661701664169805649220399486005804295334400715923344009720727471326193365091602582903586504375595447145469096846116892231950108680132634216305937929344114679201692451311326116123912680941265704651979272443336102550327447892715889705008384703827487855596812979943370599726276585807816132090682985626801219245679778478391622716436757926713483683596771093585903817809750392477802101096705426309891983770576427313172886619932750014344594322033124816073040373885157686036885769579314115279819557637857392674948083048581580895523494731271129748488328393186334037935455561751268479834177983694953270389923481193059349694206451910997248621935550902716230526654909791010160209607753565277512741797823841753653245648276815227946390774046841836483441011488765122330692916724043244443210419063225382535298037618532052443718522140017205483676352162781628571490555278712889249476341599518858814727752803237611592985432323735805344571185015960656912348656734999796134439544569382485648029200750562395722027202847943907086338731664141056430386199627189019628112355125846082134162803348820239490869582628634531612966659392394062111287876410540217673529542574118591273570411206585705976432981650427260525318102624527710863036872996565507605728221746570023465426946885267816688742455720094052615666806416099123934704827114199890069644198055902095905494474604253468606312275384688143959311620278419073761390194270674078690032491741415089833823658574447710344884609002569354967784235345649542013892508331466614164539074561346221778100960130398653561139936326572296587206186362275884333247726331959333415649004669507787068516334037601034023728134575294120583118480298530707638964678948885144295112123215267059889025608858581653850283007582460279543533360277086457954833955006497336858771225780335588267457739685770158941156598650277212465671061051478857513679636956848201972770598098361066871387760072353005626552908646629101958813865202331573500632292758508345528237657420515037271901569005274569781085673199590750004268267410486959437265143404662879233633556379139090179364614516612466540574844904937399460330352035124528331249055037981840164931401542646718840434362734416880905885022279820962151483131270166960051431474759437411271695326356272239103954121304194596688580821739168349961222987064454341517752245648956949218027320836114950239675029237757034554325834026349703771274589801048691602887134518385285395963784163906775281575355829806710743942788389337213724858302721744380302808742707989084260965877419933643502963311947445900059932059405221549375176646204920008829957378975216200605023176105138574816829556460294182841599693464282898003637145511019054078671767579160625862387601519350901947807031038606527857214031339552977584706333235289144640713086281598195056992666108682939206254558132361657698477330719142650509869222087554618215104184044214993635663697877836899466016294326682925483203161718561973662662921561419444039195457481745833437251315197939481012996449149672190640617730084451055780869219262413197171073946590400474419385127431619221330753902514822162630923002512228527972135917057855609147258916869342303852230739557736149747370087194608967335935106964468381733928968510403541652839250017786590913645799280927819201711511382976669212389716503266391026503718611451756600937140213716946873107946580277509392191823763592613853877581427693288479268545616625302157328767475104232311276014388029743872611429388194343537206002854633356501276599164973650592730937892366092944672986652867951842096237273988173139089209708958904012273518873599702637857365468529187857751461882605394094788068412859889211110485257638321652294597628152416661433083817277674307661207845816817948278005116413237166576541460371301066371817815767179265695849185523398264625620938174772234930097968276328265901980409893769392509469657702409387992407353296883529827145312861828106690839844118497502201429651501358405754946874461261935105212173880895370565282669380645238289062562325277373528713759435251029915744249454126365399282758473348707047878955413546470617579824605416572831554959408698865454560636456298625151721015761542861913053141524081514978086882252562832534231984885189258488067474047655833460856884681729349047013035028754177668157180071855476929426106971002643135278244583470904037145687075434689341245238430105444272708711832527410019585550380758894053204781685173010976499825853284564291941300740300916487741676278197799998414746934836855363215561155828106210175808871477327157749678940006409533874695659518081553184507883266685316003765078441063223818935183917224940303431408639399599828427395784769443406217031634195746119258095831277135057482991305681291007843262498310810167646373687817230702725440099873036083578635336508744342508774802022021275601925144637685548082205531224418784347853931965056197410777896757456989494546540190555359750864877843780754864269656951444719303349697439560680490722991134316266774143132527180229180690491383316756852800712060150946153602684395659589742775515164984321968671882230287314282649718860486721015453944938507654807833323255267700472078068373329613056699303079066222832194558207119673853678324792957063636265097758216591646790144631613691123512994468193349761321372953318660610678353339553798471553173617884769480205997900234914618118589376314664088825260402922344171331825093773908424102945686461428736076085475509692776185341416843569176175357036727359584495761842042945071376833661521063234444170213827570888914176674251740900202812439924175984513766650567743704971350691429393280538063585547120696359576955007778053856607385032555293626056510569865574251961211438007073539392938464691371203002458770394929265645665805153224620820140989960690341814605379348470140995933852524163084815873696445091426023530831699233073176425765352255645642339515768573144786759134872506116426254456689696565833811223528234150349635072034685530178907409979033073377576188432567049835479463612085510124797615523066164087565459890969077809460018931722755484503503944587406873236609417319043946311787666438574303989165052298776737514420388825604805886499625377065342586482629831193861559867766862278825035948516814238570196053178343161793161146645871389617501314570951915976964669452002404861778077715601565886373173030387198565052141427006463762406934328630217386372430861377635994957296883973017745429100381176545932900279894062659930725597866330462720632442333096179643811828130096892083856974388779831654389888051357509483135834275397599872127316697848488253151385746157438907995213648955214842936798927482362501875048040546779642315686865912672830633614258035084377117816633952057074571294953923727101420922767909762336612446606264481053693870386697051296011694858619009642112050729413467160457012746990697943884377868798159868689770099072267747783437243299787750555376058387123121707634237889510692905481313127976758069492556250868398604980528107391345653833331568997172527510190736678423983239366699302026371899616024171935005659145122953058952517793606657622493405893739910996016206031959021096721023751290992932012851388447288323396732217200904789671030140879329686090003006783669896299177815489492543237746939906638197154547545193595715029694063457454574960341274534895420419173228331985598251508469772550394350857569254046313907445791126741162097870334530760204349254545541267090273663212731049700746457976533640681288028373545971826977747982339052223681313811723531814262523361371572201283232769672030029100097655592382035240045123394636930653786069864802933182285892970493501670712127254199795891458410733724245256975744371125903527119533846151514758202850255198282226239603001942200857584108373454101608819274409694491035292473890643946160134742684592923441394842903684298544424665906928967117968932623248759472425334389993268955472360125589764671910764124178483131123869536652675229283138231789134889793544301086566461890881459078697059654887863702124518918808351156170071350059980668252982519958156317843871810227545778411646607515016645338552399486131777313574298502238407239059907154714378442759929178331284345867390396353756847132872115644722881057581187067919530394239627709010386253844766651133843164354018078251194870720488894166619126437153494764369693288383749062033191803553057230749553939986600014172756204498617477417026515719356296592944434302774681218920425724526757963302012378802573952875451179675838777884961351076119063872725941659535991960300830130771056521186882184360778811189124389649830918641631380827424559125384369156494098725182410231873764626009043345119250240685274237993374940799364292886705202224799497919261220010947685116144229171265449186808931561233983393533438644599360369825472202723476009167720685827808686597626383221972007396860082121123600305212300417495099393071091437323266743130805417491436434328853992513210720007115392121575375159440570562082672489870914577072564165383647247367392783717761180265116080167538965028942930318197047288921072945999432242070962671457425799911925972271141636693264965635738775647395305411567742635002146073833134804207665236214843076678443062578000324491039792334022695793345403540676001343901244183470664504140179284736725405274043528319197437559518079257838594051798619652331515778241018220075026386532051156836212135807008932292014721610863724554240951665077041377315161341492807865167816329827512232355418953416614394131414155690170094470818367277686903703944109280606549119592577150410506148045246319224721925709118875137512752503420343720323356232734226471286092066511173668054398186191627117624785542328345022398352018099964362834636119116875146545756330262584069783950040509325202892166995851453258713704006464684153672298446754380916211543506361537390126096557875502366518438705791351700070820040236334393746935903385664374893898247853876251151108029931831798394605618396828868715092986054545277239370190271145278211181055924561945430368342656988081172116353653083207645567959549715924616339901361624327830449273714044554749819109142132749769681389301097835065198498793644696344073787054937167625288403458506424677761412187820021310778866547664400519998618622897430877898618176149144586849137290184810105664379463572307705930830103662219054852671466235089667572814463636876408385278575190412654096216526803361040271623870502238260583253638129526878206571896550905941719490200718074364362241153724782788219609812802255436941502867826506110860810577727316669625682713385809461176938368386258314110913911221823388224415032240084577160512313972649901058675611294719410748789791812774784469594280252546572911242931121162449852016202514468659070107011837104759015614998756206849479387015535831260175902738112950376402377190339144442826571947749418776205514107706364319074412125240424892892073242419471853594651884083023695599311251839875243443465859793601801512539885624889701317276638243329441073224068773414299797169501204367456022623798869345287237496372703744577478498573556430469270368356573956354998551459799083482140197466746989982086784001496730586766654806422582130999248946438228676550426056682681419363601909117054304714983652953118884068363016620121001156849739130841150297192276200111054466277710295266399440573186131605401274619800462677497370505375281995243503846880091802356819676540431954382023559135659925625729413794496000783188426825079280348774834528452509229320596420804596821123109618278536732745475790031847972839191305409079678124446188830217266311210857253433305745116885001219167726896493165871951684307462121870468898834285238290806772498536023969538882717309254938066732999821317270648925694770070351794480196964337220963160418722457400039008687059745591215807805999854105318240682617539175703117155049056504969703143636118571735070804303753562847290244853532558491825208982673582812971349395008236871218277567163112377343119219996578510675304501996618700211972137793899193405899390899901669528508708158491695413459404401908851345523399670933578276194711083696959073016290794195922582445685649165864274477537092043985311635847193886131599880311240414388181954900379246599561970782739325332593800507852076413698956975756236818576255987056786199908995849298617873991347606421944947983241730137910143140132232121528315985644770381180508081893589787016644891207343485161770522671492500290523094194445450235871151497533359727035562279445595678181193962214972376173837199074956979977058517747733399124376286929775665680476105436264412265660767154775245865341161868016120371066420285210478684144013804321971408574082706820155530760435867364400483702600851392149429920298315875339606358488709235657837168274209530446296857723171382080131860962640805626260904174191976929982349655657168816155463366637861071842634602828732626993163152100867391330508144935083649425705641622056210495714343096183714069291801294103190565951293157755049558666199895909168453023127412314547830345631247175513022390022839067915795886469926340128346804290180450268039697591437421824132162428660149973372723713699186151499481889287171457491842944574969421494432800604706099975626350243643029237132374545443957559870782987096014195092679188594011606888385060718328623295920566910934625154770485268045197115406395299392256216849836773692055413447690362752792847716534208520345543996063853278697005153313014757924279420453623000923982191049843813910071801290093027168472497649216154143415608966626310360339358709960847163612398247655024117351079303863846000346722597713606923966563167018706456030673272407806446457273749093391747122963019878422765538279314878357851736817149433372449655149639544929101665570126852401864725719895853935817188757013654385704687336619987336735150376571788512274813820635215342287540985821040726858105290177860844219406089521905949720951340235593016754414457909120487354668319750825078680143778334390195734109577124973040810732190744476912262490972936395116403930176517027479962845669564205608012833272139341453070709791034957736641469008325512904511015752357710786124929858009722130526690928644525214084244464913053231328696475800699975681537638543933770445727796469640350563995588462527026908038394924743688279451157647458431216541078601287181519023223351159154655958815858805531294154829019680588538305465025340680072333280867716036106680225453664217192483461445500274796901889405392849199080696315479217854922444790065401721794708081907912663013734069579247423288765119611886196659842519315205074453125794186552301237086278721384864534122999325618334098172273564976913666568008340952582605246052823524908155782404547358523195490544236940559770221386099694607339713152081252340587492475804353505746242884790238106284902310970611568473960659847452236538468620099603631989780935328731938570718296707092296493064364125617802514623006018554631481262076907099254029694139841672807768313062647704374386082810615525692011955822445366969440312365338444914663408897633288125555134787154760247138650479347990933869676465094851821696105228297294704171970786730523095331068868415925879493014073016259195248152063902586458287752698581629282774531114655049255359197791199695267180252984462360724084767436465651930634038788119590646135549786447347313012035183362636160110176149465051590213709891694244100459433216534234937422602191101673316984883184727961536561156402666337290534199710421160253231698204651248338754526569706198945069409238383852618180769046321687972765104451920081218671529442908279827331739423873056474057058431295913694111917910330729081030561332462878927173609348971362553601345479742262499909611885239679991154157876437785123239519605673500859124075702022336284293811771602700971556991043907373043295328228759627947156829522204404531579356638498581928120168867009484584680601333058180010832884802975571896575968919422048522482119769760342543731244854858963177686238281599239734115974822243731836945561723369692686791834403343943387018682326599446156554458192121808524831067321295674872135508257952532366272198317319462019480633032010633386695515639490150897296206453224215486984322196854539371626941923679294367947219607520138681881844454505290801668804090633101388262266490002413412716714490751962821667148956838831417733177105173869893002975242354738987875181362148807154854073159436992948387792782822282107110261544388095056659412446743963779823004165310765737131269475584290114729182894193302573070325507591879839589124823630986981481898727526348968141659229800960142176171295030730552228433574240877031902276956137148201335578970812628670346223103711749647812678109274400894594906117910046770979188009628858786524453631108846511968891253194578351921694115419417547996600073905512676698171211862768161041538602550525182120162346944384706964771843205405813825365750276377100450392432829603019467063958127578571180202892016534313708292129168218909295585653905140758300833782665245935625303315184361430693012637516838083634342420070192969062523973760104501492459560042730855786461868530126798003139685474335173999605836980116511619355223429572781686608567834523099454737303506725139523874333067303368205987450256038345109448604259880163292335000625592743437145380374536914608631623333508425387511479909795485699522939335365127658800447340017278635351616372530298921742381276248515426583614628432990407751430893592739560126931693823693587625428778266274032037479869351742367753864365004350931831069747651594006534615139928920462103339060496701560402571130030634853581692280901716264120305509762754101239052698194491771413660818821868829008661157504227767679104658309977785453646723749771683192301951686072823865354044212084121251360145681724141377521887094347011318867314629797678563582327926316478921373331118012038052618457933195054196626442859033295046399721265044221005263181267997111254444950649177720856378551370929825972922226338022805733164805813838291222145887632397227779296766597101898809718487324137256783757833273539251217076924352555418502450253643161762977904674986762571355804665138626832449019864679340384331187830790991290296827072126598915491846942023094442056316157469207049972995252232282129843222030301844814026460513868383730600805221298021119562720923985350128621338874524724911574988680597081193979394141265621437019006487809605044724084899602748033989813177680513994102303677762351289292431711602703782808564816098835331778560214173009913894991439557491389884063872017784880107167550825381420796543827696796710814237793833230406678246961889522616822612743513747539301749809533854303856794677729291863264104368540371961389688513019059493819985817893299783008599160224498651813141269498773497333288524260484072067410879932080909731707438031061365543096761598597677372081037570194181967908051630875713422140125441160682169007304278911958814732687668197630639477727783226527243085861381849533058605162843349258084157220224007654772445313025528007741930505324742582408697481324873084847262690075753612608442230339694738840217890089437298669353805270130156684200847868763756417940234127817595219409897921183454221720212358879751487391450752050561562540772680826814411996547372222605476651604013613795634314889825200199505364148560981745464719901885681486832216980553898801881078778773719920890723145357507113678904557531542831178985068335477588706360526271111276990815782934518492310298506348423074388905638575570559627175968573858781809997983039968803995219624470108498617846127831335070300028540580715061780748161610710042088494485955107558053721880996424800093074639991352703824623827705724707486655786381713124113187050309037096552353575844775017500819881932989366752000523692706560718046451670294970687926943307427284533047371721126863214321474975433379976271209530932103635918116203093594035537185601012045234232241968437210694264699223983134522359919277893033294067185215238940132755838365393463072974095642069297706213384580634870339614888216337081872034632826527836826292825961534217383918899261692607755145911484557840790332007818248602517141890408733409301187663655388407693993247531870268405147576809290354533666324557381353006846816426922809623782246911869459660079820257553118494478075095085681072027633413740571477979109031470717645695491934236408114794477735963193655126524397347694950574594833126852719764653341646753201672339066572881488251749701806547553524463277245025802514775987570508430755398990350020270934726177358595611437334816444247525148267611976656593716090203422211133999806332320930401439881706501272830103120528319173729855344092491166035373062705791263630448154267998316026309469468453014071589109073656020402398280371795398789005113570539531393048716481216615956815353017122005191965493295573034793392550912737277174201925546002825249767033384481006254595435283645912869203616300014263567084506638692643695365561226729190211446468097546509976265690057940537410994186606959302487847622223143552692959138064334301741506768909141835984520619027513396346834007163079916289552426406653597336229392532619947980710241774793990396469529240332420330847175644185813817486968177942772731961438640045466975176693168179945993154056344027730353433011905096954451803832147400085395957915897873903044285241576420542144619090229218258376736486675008881191908292455123144516676158007840690847154449357858120168408116925296499938470286206315128041694838442749184139347320377519063768160316203798092985041309579004781962430123544391888427233062653442704127995810088407983648923212415790617043177046295580634244099388420728782004367038645469348184325249113575045300877277090656426808572422738893486031403286709393455045244745838544830729268085745494776718512133007380947101521496852911673763538190227141935087755878528265858022923286737224427996128647238293902015805414211795746709258510639086572274947447942719191668208381030081374309624746534436321951042110543070977092871454525140252830210492125322360085316045109886799837148061205085001621384025938544872424457081014889395576802477042188929666459004883655646156911780523960518853534781863961422807274295984582964911211111420961458066338341768037666182219865648597587626618202255624939201282305987464418307931844787896510605503620159270765146119751336286212420149878623957616693453038099885973452793977009443489720165265395036260942024276581749380771453153283885677162929482513549388694502141882196653671887447605522990425679780439973433775301347741489990264605261327594794877101583553983196257999994831181581738137295547655722775353502033608685693980787936835659993474001629392841721680321782653655754779598766010551492128847091441723046860196824644521420302054893240419598437888797415420199571755978188739144542856796969173358532575196487073294214584492706071964373338390512978920918768127375373460768484015238886413346413979105964182903576276550049516101105181879018166901980622693655515529633091723130486541596172814644859373139290514151077322506956610350228992519166276856569744908753381995859787659141675993094816199933063074871719041839104283064508885783360095503696363231032673898457529171013086619847682398632369735766387749995418281906740338010259058385884516580169933798305509372083485479831083644898111914153532879664958747051248082276911533142240778181981560839676143957787451311671133654353970001911229724702733113523141671220293641014290051595363973231847785402515885489970939684005950368933623166242522164812675682750291745550547399682076413523462810554114849430018838277238054210802883927816698886406800931656321327803320921914398404099985710456323502514266105011280544363833812154614512722505751779974597073762963371097926797139757019676465900898157298584270186846109376780334675956626463545661028022214691677482267193033099105203333134188698622122278416346596332277001713379038891625505371190287314941352159633730570840720079713177332851440336175091404491708095453925444581995706937966823632115267767071323731387386713607528033040622220125162578236341037567415664560087332987862384437398060786727673141400127908167609213624292363510976942392123390427218548984988437396259953767069684708791935128104397933842982521120977238169500126610577775267185866151498643614718599904136690156175965048842857953805173189612877666992546853778096426431589625740488379089013638933513724260406495547513148632289035825755452628096954019288209012314067569577707746901185858404413263417813101084587217811507281612979211590386533697225669054379925071601808527654045222059594314443977950498940799176912543042785916193916016784879351696438487519980340659598781094952717675198532780165047846901559887150616419782978518785913020367214308592579563397955390332095742415090459445053612174773952971413125161471005554119721941100048303088451941760041696464227279851887366360597877478980250559017267900269084385586311903934349751274899004379469705745731592885785763913848783374642952677965472974048468882461780881577989291174228449942256366394864367347255788087886445979192720820737199571951862540574086820548176840952642083894944507656143843161557452698107198655319853085526698594613687269148944473507090337961118366744942640658836853562621209829032282620265714153896397616299730271520114821641058184168972773411110467843788288410023347794842230768177959618277461343780624346244682625862492478573191071857642074587337587627973246954726808877892909430533041678719650819064780307548567626505283346184394779594098999515704231102439420416199632719592649316808264138765062308723201876516567862074930562357802662469225284684516333011385494496533670375177892635033427901137387729327948053593470981736979238447885659261512594005657576523344517900251882990782457960338714300914955968128171487599586670021459144846363761606570852702655038284268198200123238467994574672357354001957986483548880528859187899841313793167945834036267808977959486619404757319830765641898090061072870288956269567681008421877631682227211170399385418439098508727173542755766454006958492061380243070181294297788763157896570705289120339790492892430409277518278491122175186716267432926761301030985412473977554893032658830327796586431394617174679745888157879079945125763501291305951503120335795937741658006292108525579089623040665725601514060299513113537127035914379477457975970633209186339817455449469019682609982324706249319321231884029588075362133852683963517662986792144227992874019104076970249897845474219617642640722006485881717887814393453091579800450103607173831677694657590972104181785374612174327440102778224220344114926024975404311933021763449781803569638978117742844048373265170639791473191908985934870742263161604166007029830369338319240722141186227983488436754754489436797357127388724645414220912524492906359639561810442336521209600443892082621907130307528118742867365326087231123746834265586343316300321587520287734163795649361901244328794613159983086377557145126237372932014802678137065712408851883357191709113788834686320405747936840079662970165631571380871322537350368614894661522847687071070833267592124095260464979075839558636133125579470803962832828287892967429860530206382712742531895547305953458334646180357526736659830972098856102065335317836528231141047556516700075648646507278496632147152776435201422851896748794345675954034702059972516031507707516601416277302274956613973230848061880974901409709499250339080371369646000548035565612001338955806482997964740720725432315214513366545687718141963160920525180174091161608540363198299722030444206315038225100936908805289627965034856831865113967768774257188220425533055793154331254225698787882316834326245547155330163092888963827394091708430383113181042655977624953983202008438607392586765530053672927485030289422893591133273192118306638368073596659555817410538750428375116346708912689181263288868263769354827302444511684346351900816377050158269107562917714447835444631103919540049286932079496240131251859122595217003804044574601014535176350049541160438331304814158986567095088540212164124245304415199665538703202793135236522845865033560720964934300587660267519562555966346559660252668468852639580388816064814595100091226059959153158063559227577435540782099166252931498114866020499315323572393264164339552274380878439730694477339692740189688577290903581207005620786531563984350766836072190035879712703263488228228307304343864026272692918146740903026187659412931064792392399967149320679828789402147477287600024345338509513283939481804687455343943753111587519491692305138101022778094183207528540372521202413776444892854121147975563835233508484023289432081998325179073602872434206160314826460355006969830279831993807864348043707993783512227943364640098017613299220961537755320670749700007641366095467047406148276555845788494513405470126999696381870670349849386713778761598334838415978727115326952287156027571843259901545572637685747452159104568417538215113022164949345001867275887173984461205895943186451246236741361871635513757569770755832060592160541064036420778097861166495201111771596102892551212745065239430805820014702668295172125934819045808463895642085357749449493571420210773530266120434931905233318526052237113584840545490167219641234450052655813586504494396093821722426620835647895752285405634979610125376503331878710320488126787959521959978817902163572324186847809174144653859331603392315435953164110028271493189418976050139612732329178680826616294263888992642736082465647775469807526668848366885234945500029204371993372288730656325646993712614822580110802468873052954755250912634023125169395421204593985529746344263322338407363781084641383150860317335622084430049227942464400407841903435439185283906319333679805530961605993501441324747331962743966489469602469567091938909522964858180870356493450703278434583992112365184333202347531753486176710745435528061753187126137346142005289735391251710427422421877085024873748456155443570014951958363005644942457275763069624524272291332767225177149324386086300789034574346475276505814816473518440210110072945244418311986264213506416388875153184552079631319433747760628836136619131126569273854255746790969911155897907569453672083224998297446006989457497615816065662938055293154963900931638328764052382939273704085836549370380951679404244956143669546521692533625455818371887532728191430814412853768688789280907238911913750316627544971841316404039395115714867546154988166152823026881038904972533992799823842325694058542368250895245813355866102986169750928656214998018329645639507273920565173528909828308056584945110110163587049782929440703309518394190199652979405134948992176097779660102969043982830214533961957085139513496074532887677240188374804266142552105531359049955332684606983805390686852613002823597036545063702933342631695566335219996527544796302191376335953397333897677937658989486836506602860848058219279840911093588712291845439403573606446333876724670338337079357910593440370763981049502667193641495214089131985245535550316087999099240755040923813105462079425465314639185699920674451146635615662029691008522675564453142880788988426335961639513746652377880025437996135204779237628812889379842522503836078034058272450505965657167323102060622516594496467343349094017809067345066912427973416647425833293179276526950681658131412777632376062297572867995507364810850240217497526453812209938181227618388510642409062854194513758153151012588930639444893067151893962790741002493256027193259650182032967508345727820104876013905227299953953241881682631543495432964388187820960639734218664178552688173775322649401599810574764950109807223413888637047682452743784344268087668577824799074969140252667920247510274418263716222580653929060250921740613982956262689489739581239777234303113143463590801576228271630058272200884676254770600363563781867916570279801438978808327118683807283659763252338855959750770901875024177499627766693490937873412596360693471349314775320846670845110810485137728893792431697617966686552557033103541328877577462023935188127411002610841033365509070868835854169681555596660398721157817483693457040521429257080679867753485670908173376241709011210281153136858716849910869096744633997229190485468478291137574408681195062517156716211451109789082317089221517768981016494712377821094172334088414737229529112111870178901802720375647194611780130113844460755255179148659582811594402454187956321016030294256307389786834242769219155812331804369669179369459818937535640450263549623832390003502309405672403806047342725015549031326364026543608943832939300543414086736225558491223843051917011587095686643307658502444528317598334882539466122843620626387035058501695493944703284723702937761270062722801637979867701647370237817144349552022278198480344832976648516621447967551252016422105096033678512589037183030327543989910732725549484705852090989641114651540455734453557798555992189387031305321923085043041563299133807085494560022769235897267697595151941447916512212416669478366947060577223117018665237063466013336096340855823450398212521388438789090301476348153581365084920036730231726788212577234744966994000635550507172060417395019850977879526593505772900799464114251866614372491354087651757848404753854993281637907393612491986832658561192931176134805841051105633129024845035699107204753351807540579286330125684098811668996523648080675483829449908435767843022345163625289280056409604900213618933690152778460716711498785272005295269769992788365684380647060632354221986426655241344262333616067318840032230501809889529296908356570580892947514872509176386980839329379312550777319582937836325163510907315315795463116754641971383648332597507690634376161603490916749990734592939317384656166512648727765987500194882108162384008218010093531523211116123863248085346010182245395839751815432681291701297242375692388116134437897369958547855712959668947571606682897428628597175109093812367853507152705954803685042273208971255996340038460330618701354869695265374305223169859521488511946614938628874293414803555400564975122455251379611320631059324627121532560146048617012305001240130658560242568124328548356561150550240237916788804975163339487419682201726015751430272785147830280898882430622272664154117741558408225758137128711255902202751428051398182752445631188765160110669422281036794511310427353884414163822408597886464742013827345491059985817875163790424177345623943410134297662214644135645682894030977571570294590162196342658622431328758758816125534310929475498194245627684965176934331326278440361999624511143831355065880701026208260167244813772210471622311115535400760270855317737785301302750288371472913595457180001035953451966985320889994343103207874874275342722691649373002636378731736405637672907435513007396980033126981272530001501623652685706800768405186376520998168545723172160165863487369557667435060222154738307804431163238847133921546518853462811263487723114602476371953888271790736564984275004696446848539832932622478197905876391443442010332515332049985634075728530573296535868821098297270703970605988430931736468465002449304977243412244116230181219731634071502241459188066454323423357218835440268524978946914934601700967909652120766507105457669852934206221876276049174590376227063741291574857799931522965013065091917940435335863064650917241404935251138745962943283415073627127281834414627283058311836944946583010990586741373899686634806570190311923954968951461876134035671222885693378074236879913287667342560768103221929870017784301910368005010550110447035602467288907427267366713970655310440841669252640819154531719454647323656237104790994829137963084565999714955239828230906008726068742789358385309604127894285400459024128739302644188264949334868542986679131930448724440512198791199786718190418467265202285677958166662193831025683149315035997938793631826243709781448436751670607981359172839469206556392834987683017224922031807019453280939187332243836190635367456127029509716556246951708113159783041321383229312568667285579578423845632871496034456175459800535668391353685306091159484375244041236861930008397651988292169087444620156077172059971976669718569671505769395968192043621844900203717815313318458894483905119474941469018877653315768544257945925824654331416412086191944791557226514376045013309455312964221101381589330722992664515043852560432884118531672281934950661525149473725896533652640915592413541542507547892470487175627193401466595183708031879523837276698056252226430971737910318273149902195838617033845637706139249712055938360103793000021668834600953728158871763808526824097869443304400863500592010575136295473570244538064401541897948852659778435027484691112457129127501681649417341154739316506751575370695749083344708476670330052873475544774353726225378290287786035045240640016211715911292171796316393760874562661677602767810969562873144829096624179470886553246726260509690918976708834816014454599290940485491281808071856710223853313193586384995334337509726010470255076619377918716193786560896171561141709320682603070114125569182533607662953570919817428670372361910573850985880964336341222664091074822724217268385205699658952318210693039001518524526863521593730986024535230073111098115925977251796620314719572764525135763896805903674628494927335659955086220214835139596502054410473796812579966200682211601809118413296813675082578487132536836647897018090248163712579101115973166366626700315832377119239313576479245489758954769547949036426490203964275380456990344504784374097547008027460489073271325858141737254668222464694484271872958124777516921192757080471022953175404608029094787599045965664564571013281050716305721238674579042334135656801740362632935912770634202447155796917400443688662416782390630575298824123373449465153011997695920801418561103819726158018549133739615821884101756057915898473824433163164702816033734110186791043697359914318473116984837201174105477141018105681317266420907288043789569015665263961515141187851656244194628786222521605040276116538166252110814473327134810709349128265815472081738737135577971088254059615549467524281081063210272468572125971808696955543890124133486673839187152019108870037955466616221666567472948905951447833048185458915633802014908039251128235993707557921297391578185886942868229182369085092988130859278019988129397994268854785772335286313005778923306866218872671833650377666117024633902446552954181146963761453129002209045788054484987779301340999050260592868420550346259478895136364416644180197843885555332141507098545072107919607753893253213239123285152317371362641943803129829525996603624444273621216699203057555021508269086328773809641972757266632205723312841801211075621005296435258062271538912521958884569050027988988385521883238871432950604521561144088420227184934368183442722675094273492625451775091028717459907184777821077629374256238798303852281870145083467851069983417642729112629275524656200836068797109193353111466338303059173067405711497818240559112052147261303406292437403870342151215544181011993546000391189883795297336163007068131325278371542149367169021124775803281667431864199013263741743641766114453508038128577896439214337131196813652310105773303885398548051141201556692173467323800387168314011521388928119928332348470190106196536877367077434238698671151474627921949311573214519967339351611081762293306712158694653039400420270488843927586401890526089220571859016148339485624603432726055767943844139506772147625218513796526979038027719325847090208388102032808242613131608146091580587349693115551330907868941508232992442745523513348534392061680442530449372013431823611528170015503967556511518181398852136025845296084556908272207168177679140581791129750939344505707512808755156517649500010549869162197228629196461908256523535649899328747156898200118950983751970340439780449536560867472690572849843219738399599255630804840725234666626636690890379671502874945276877187668097885078302115653010173755252294088801163915703354469746958987510431406337165651489661375571557287605610112987747617788305502546339633042485128523449064233235416236870367366471756561763543505785994074994912806531460925406427684977039102916454673718874992539083754633268426830880785649589561993088361921179880713393175663863744114507811648436400080192097120660031665192062091352951928002396248978038388700563011067927242322917985163772146724793695645935786910214447207149177054821819280317349674336070958873578358404644217931682629684544387629721000256184045192346072654127063913998234356599591704312731482493861024127180935125664472190484605915198986172137982455458122156471218692822037522143291245971828296521663273076040628386720172417800503258609580825052603279557408207109640183180439897529433255527936157006353440063513453371295319389901653932946065219865798429577575008286498629088056351951015703413078022177669879741634743684061308174154400423246701979281040921335637495150839856273437900142009565817508958144607293895578832463151198685374482519205119663845010692974669609608202671796613361387929871963767939071064677093111381647153921905715363546974085477226150427357470415961094422769705269363113370728062424671557310576235826455024345638814202448180288571050864329466515520185184094967262176664282755306071173119671905944938991522366458647638641373455299032156575370824472801701618631036803100824157176587885768488947971737803663390419295295459688544995428436927651509131971821644331162024386484741989578422651718986938417884137625291154380711862216452476702114494209838472667629037329285664051652172084781382706440669133305078138639979288496881152560104192456107508285562838423182417285333780618228877164193332545536788639583751114873052469221594065648624900704909979187152835225704328553179363704307344949509502399607646771040809297638253290390179550711610846265286698538210488377666821872706339994710487760034222423578764797188084912849333018777759313477080900600452961509493789615873079634445740523416219198286227426694306824820569075868690315314139125269066984959315400803459467981572029552255672125194250733414331290937818176636642189582036451256375286588639086633979897766286258837614185713212503809598110530113228757901940382539061321846687636566963905229935182155182146488228885621825031934079728462363275178646445342647326352003472271703636105507354749825649697777825546510995075639480973728317604979856573879776338433168289177343340002916378478235360697501662110170649859144490787436572533731006341065505467220846264599103027912362748157359739135002412455684656497057900148993943448056513056891879266104731045182457950962328225644508934980905071824852885330320019330009473584064490693852594501558562294804649571563736886684167774157956038803128457878856567196450262861838362434260323002439301476524662123582151609607496145010841128360080120499771156275182673373679280074891628149379994022268986723818955881498774794448492599418581561901960709770854290701090252954408744169355745320356442531969041245360525439058960629082144472734295345136085841840263004288371191284587458153803732555207845639002004603347847539171642279276555134246999013134147670808740948256476565268179266216160204468384983782679291858354755141099864939013660053640976135782898798458847455983672539281717963404744103613259236857221345612051540453850768948228627344949734595457967052038790475289285567742751950877016921047833271010947186928873965954399991327706267760954852642844992290436931248483771901081377730299013915331953301222379234439028738193448534184189605977520978252676181013047395699296234809010597425105592702301181929801487656620989685205601321353141676871709046293233680020177699022353344293495623917636910162050244767944741872102092029665748504300429378503696738165162079531450438692355891534158981428395322707929068753574296830747466875073553418148384529675747834470988498266006232307591264481482249756550279113088229673447760071400677883494370353239938272964684055239735134573926752759217480372023570403637814220834065279069368375343712576629231273617373710848877312897816697194028722063138305273418107143880191614317429640719576102091818225020247388917339418183116687500482808257226360764597466826614586676081341320253884711192594641546961020054758434378485696148196232744298991732580305631010270146119722916702733537740768885015286938787808680645666211335669813718434888786009176412877978026218620562739009727677463535422280054238417203663502660989464379872487912795222365542705952557399196792430917021976062670784139629636623729992041063810228571580111345087672235488441679056287789802500526792669755871196336229667652124155610386002717657037822032689417018757943835762770761175062378706728442362748663754340917062013823895613216380712384119196822736916553082323747154501186273412867478820271369243357302782665137261117237918021559887840682584799444629092308172123122150525441065005065662924671843760904017701998481691463036060657229576314299817983749142589890552333049211817702066752060466160402964000153562708831322798702434125066216781645611286246817841077500829738663245762991461402337175209773981591104180306074166972361580385054981841155808768408040968698017633426622801770407814389192305820468154287895217905601027229728168214368453286113819769134710715930942527945233614239761685776032248735945543070053649716779285581343055925791592452236043491123214473453246274492727478915103925563116352869115411104365822171759650306721004458408555346636390309457626443833499850162431458017278067379913642547543989152671379189340402902226175649068599139283553634759226046011564578454376003543121676935803281429122000752972710099970695044567065287405237016706043347612504132522239958079309387229810918494374368079751111074305434685834027951661674772877207866874234283479965866191787982735390278221697069205809577425457699606505920953501685855766597685785243443433868353806954326110807849669938647795813687407414545322136563855276875440604204631311097274442647990920979976402673819797493667190224201761037143315729434169245800826662297191177794893469069216397259493640403315991591192121575114903180180176878834918965111716141680259391393273097161506356749931890245672275683533845021568375405833162939809395452272906679939153454668570635706850824767234824789742673085130555693273613155702991227236035097566638751118791962134062333529596624301455832648555201024147684710390237860672857281459410488342566065522721287764357678787087883718494278581138710219139880628069075338220760215965121298840548747666287385391530443600948044944754646138255690686091179326310047765078070470834539408445097144823700005857135244844342855000533790450823025334065200469156378796689513379291274430359069674384388265686841937824030805276341489582997061077021899962050130788325395726853145492990524671255773085940643344652699473476574878324069639643821725739299371827415619139599496846874662456831603761634633566545862670049041035973112453647170502431164616063977494486880191093238754694229455372049027045028474483354145202866930002798218595469555244229538002783035941826391092072641902567737332807455118568001205675998708110733829766603075805131701725928053360516922173827319367110152536141187117871124569429761082772683274820149583900805059942304826770315306350329612436429734034863068839665876201761559231734394611214459701012358757489120464450322181365118481179512434184032207558732518295284493246407080536965079667247342534877757264032046335005347520433559401056378879045844154020545581599824414092561271849310927169802362056668848543816274034112138655498284976938977282706368470178531897428501542665641328738314108260601475682057146837045779503066532831344998500962494065804898052081463169501447244243056533714670289320574588951449151803893142127442070839223067010283716523520406157947014598636705042580409310412805726455994240230579890700045689684328291381305203664830247184010119294297575669790441583082972801132795429394717197734449221988498672571128712974189887841429371450211304121950669917469143475366307106557791333745725063245506025702055209583677175665722003779672812403054542591092336010207989192276055463707956025892711523082975910374962998326548650860699968051161450860378365154234728100066749897915808192475598946977259706451343931592285432283560651386782505735932802341808675260334879307110327865284328522335019781675526894815908272405238529615793427605816118856630416487155798257201413556361269713470535276206811057541676880615966251504338812337660130632329815870962233844809546913856144001147178265257652024879866950072027194686941721589999646774879104900821139833631736658499702215803813703577143166600618547722293772364807634793687189134652417859058071217965790299121091998706249677863973658627843461265755958733989123899798902607597872699366057276083194015757051954485146103705732454601311477367137377808123017126454217066879398646635483852300846381341702338840934505660443423082468110518239131020852983656423719198469459787022509554085882771978918269286047446559159676238455092505501242299086533139941139019878627182644494975078931932040651953994528527432174070311459221449781038402731567164711808979771790792662226290939538440076903218925459186418449431317221445291255580353314864787717329008783042652671884051771403092477267668168549645554064764666166739934344401956898135640306188401940952405389553796434866806668235541203726155615598924643354108090305048265662711501843405856402877827090351677731662816219639288060627227691819925751422837978487280450072482671085962093898343481003571476513587477614931040872661604138350994011463582421325335508778032681514519298226729870192187134279840921356017076141306224467022677536514993559009113296780285096908489535343170161756490821219059534013214524050864688251103740605304836163660256458011694334462935038727018090679606626102869370973418838615145347816536164823726645803692289038532778634251687883725919363733544162103495548268898110745345848094092185255677978293864377540218866441611892020655000308414166583284670054333886862616054820433847105706001402575096208400478450917772158672876895429289398245617327900036915219100341476038266459535454229309017327975143935063760166201816580720451044567323894851105099769323399033223031803351191898860449904176425943826998394934533156998166708410053546548437789927598392241644000900276659917360167216678590564143550086466421731933872054618226185148275277274547610434139452564447697833843188600557499355349631682724430079878119350228271083099755238770083276798104635514221357858956386939517642750162875271930632439485477384303668459584204175902065008930010865950035180051180132737767201478649460063597392568457833938552970674352557959383320482372924096964218341034907297738771769624038270974656831925778697633464346549934342382198929079645631252511580335177582678879008374855233266047085861585467717150529393384119792463093395237888950942711499558409295693990778420168054269093454098033830200053321946448570795472373319950316625436873355031541759043058608963396512780125699510199214072209365952419532820226628546851170665672145172784576622428182550698650786455146131998215547063054769994957663173403972087920884086787301934432036151565620224016179825080324304529875060335159892771354824817153808546475994261827459789843110766342839386863446602435459296086813707232287064858829756846640988503875313250688407384756297060989940847851119291813140899948408717076040076948011345365948984838745451755212212616517551371636241865039572618976846014934764446704577665910539788512143870360202355957183087773753346257016911549579083806497191825817692862342676621752059823338576355676463755259801075743368412541377954241510967182592944905239598130411932509645581836027963397361026582968020994033353410169758384883247600538419630058887864358609612053077603614044173555582617807840014182213481051447771112946290176866143566567663036014469128080604295761279508021501231769535879159959474466017624652095504113289966583029446446812951396987546240547018526711282480053100480543688721612263526849538601798904656750582554948156901569763814999002133607040483185474072310884708131156171124292858609990428062738202268294942170054768913180999115751527121790838263793460858932909035313008123131090110367789434959087144525985039797966811723147787484419580833055343480513710361974532173186571809306320155334087908693663726179093226018842652183975088008765994216154065378452752029343787800468718546820075116165461497039397005353648758972879152798109098114513427979821092793745450739588955074580621609551870286163923720901030348895495141353617583052699785162899926844656909761404592238119133450506834833098076555246738902690656786114932716293747882413030552548551326715378000228174649717183023149115239888575759670717953105578956702317786076686807220309431929341885161764663956089857979840998252374044114689620153651193624357944009901305763633145598847823009258797191931347054376906222418975267253857057544696828516598526516104044108299353618610167739480040391626269859998262012672556629164913894107168462590640966205382905108429264595137538128497440609740651495347246449912749107560043224463681753472228327041582062209412346616628730281443557176614711330244450798883736422914661981936436277298407738588888043793768728622895508251524912147926810601474328098813531032201470836484955443661574058158353458089752555965342408930407431615927274928756973727871683028252459202900153984896260544476815892071708994282017421394248263643956361154644553203440622277304067274583700062589042061195655935316410923541849229319607278587221574384943956365149990925451955380894579782993737065476461280784600739142108511538923591764837550054266656133868866399614890545115462466338906281470488435900679272820680584035584784570264112166023305044291740499554746145129741487773438975038155260706476084803171937711504918739277895446465051674578604359108638514344705873214826929650893110239122633492352476219880404935767427830147482239867429979491858497730454630716573675405432064462169357280375562742817882507023656110034303627665541759139063268674695156983808238356366069153710251365728174822719079743916072823370973183119711211700460051003717583299935052574142984830951887205893235172511643544542157105151092171881610885299223691221806164318129260565078818325061945517305840896455913648918371060993890331303273203313229721325044983454029013021747539102594732499622637079968125703429706291754584759583526785109670658601280177879138217208184504033261685643165573262052524921709950716422030381835668953985876677754384010484032030562562562213698710981519148978370982723946601895606960645862382837035035367332498991766567476535232424630149620960400683479217480179004397116980919031834142623675062249001085026937725179448973102476421825256364943214075700895673293865305068608665084329725707324680498567425916705795637993704592825739147472938656693573052744191557758248515119619070109572916229504682175834218620751033954006436780114071262639296067089862716919243651621261833562249462493246457735161640756004061224175271537681685175525614365835445034720973137606277078024874989059428422938268531262893597668663416925682538854847212930494436820547876225259886835239229708234013083280231572682469329002679010249185836450398952672922812223465320250538852542586397311172845785938804239899627720135611608159440075671126342739502610413898351277605155858814748933134962294679858674864247960241257159594542498305826440921684208192527698812452527027562623055881526921532531592688948933939986337233047965163183126110678993597633060165765297141395179595602385301751614306411562858010029415927491600733849398795597601109285766764980642800671984192821043362053807300953844232042844420364053930646496368971891436782915372297078990973534068245347817505663672227135506480086178873723910711758552259424520048725665199143674139298475948636341828930463421927520255020139956031392374147415294972307686937215746095233834827837438957315767311443046561202920979867864668340475209404632767073498828072073869613001344257437751900865627344307222163619629174179954872579461513292822853631631418457009636093111784483169271141611491915734856746070412130106065806230177409677953244916229560808135164245823633805273855400241334417545735325656748133801965411914684868349710696077244810946012214138969408578281064161893198769931489511607458890859083843241031742562092209291072050781821674875977281087884241803390950540590711527318343181262228247059681579481348203794835171829199540177411083267133239228657324369630301543249981076947402451799906713636225270363551653766893754086133991720255936207708551239327462612072635340137049038840950619835429005350516048611174956224279678470170324088378059427183458091092186769808416253407886523950740360878844472800151159055117134673167515110699988679491984387253531747225947678818991380956697660888847008350094233776925684437607487006189352715786951785418393188012148114535243986697193160332789403583524768556017229937436927063839296368589558736435782948204036070638907577331058461561378628537577322545344152431973024510276319960227214526445575337267043918237541903475247901777352540801642765034567514636094101377406917648399673936129795659325366991955811442444015778791214756124465595916364648507468836793803264245173566241137211266578981536159843268329697025386444382026094990269563224028730117056327078197045606602208264867455569107796318827794786607606441412553174606697610968298331861702505941060993192328338719503852622948869897043121560618806375384327310391662384548517263715792130227069085809645279341356622925306304009010107257824591351696805259683664531962343634141197933631224902795017849552541325267882403358456943424820557630984699192270401302444574401117710098740624201099553313923451499437512602615649255763836104361951164173454521013449992079139971881618298237276231121184044319761790850714637661997993201693201547595345104061160495108626972616283023867891115918513568575113329204036254014853513566393017755223324963069175150883623656280332434125852502574021838383513731882025389280952268331583230101503629575010115364142445764931880692451581084492438892569233766015521058236962102777054939961553116290319402898214280651700975699059541560173430310418160618630650967352142431455033527285098613236293049089067247113135859002843926310818780208582288722938268456706663799725958343371028048869623469224110273471213053700228448956618699376592882467092799284377601140383829412981059456002990854837842521446222623932196055267184568612338433161958630365166000114723084994760456479617250986097644922311193762226706621635028575974121077141617259308465464358036228380830807579250439864673652283019519830135936973162764116133747726964042144194660043770638172078103512664817042828900466702011683978269356495254477290496228166093407245949472091495305352988624101804826352384105124000161955491958996464664793361465561842956434970883803063425066889108145182242122933302018748285178843240977666012841775689522267441441494456440771486916252396678916151660164457333080196346180013771157393122326569678003141747635969555993719205895379611078795194018549592196190287930728399495374729552175911772807095983845581495696586627312435308767060231525933261648188993222104567936023359826519963185928908101293638071324082497009836341605485262986090952078531981075846144479349039928219195409071742767740298451930033928027174236494976168445026070362712090791384057785224385006684870772352156757450916326391107352000025259778231521580870638457911104935175220086841026214271921259671935970257701677629258529422602158550095842002266728545355846902440258904462499067894411572779615605511925630011641874555960552565420223912264130825925733841719198150154078267942336221580748356048757363907511128600537011926753899492399701425692059513682969541257579755258288206635704006743197080349809615212756678455302289690178917133933487575353313438799025681576979343023451344892540689891759575004539438414920285743943412164994814216895790964535379896372889694928908891713095577393927887651474022457006487367170747972875622278622254653065141162573591315973201345448087099163397152863434812152764855297746466770886367664791890345988193536689232241539349014177037821321960382271176944750629675839014049467506337329281844929740686178884765490387539910541082599111015825595970983403235019270434126677616295803671900678631333051222129460834062815229345460148080624162977945604021737521971074888766404268225695514130289412146074566834856208895749589195550392795796951747468589930645160182056108149062347835206239044259905498813320023022899509148621205024501350330175140931842186597987142379305355726222467782066760788200895898224112861819906166967807010761278246343608156282232630208936460280966660360365448368173253361977826205277792777369758921453787409362743752030832274482666180664168606968969281136672736038524022373628716268887092276520556197483059010485179779334991873614900152453610064206988109474019477827333495143599225032688734544626559904348652786291894258996384479901819883057968385790537984928595364422887027316962309929534699528500125950156574187812650690119116509110211911067308901708743257972076067470422337844258877721351936506229948192400733705474538737736217960263456760230174629577151299407757656540784757651943554021648984571814026601906716634245060305785649833781583349093248697534085826170286539312960021763326733621604516500525949647756572484773030228303970735937588839406276723492175268264414557798425547240881074450147999547864748892723488506631498652777674112481568014804394040736584662684960734426861445759417748691451337923998693780897623304661012391045707467005825858145994354866500336882321838482884332285494468667555315883006220872269908499746409409880524408969175705174523756710051127772563142215842644755579380307441406292125385565498123397438424409191513368898021066897316202890204619191920516111649115949530559901690182339291384806943942938929979136064208150711608704534790264772067209094432247320325920590665558414747425347394981889894255309369486775938492819223022220660428104231576206412779888954859288822087270943547986872317894523381613811390367386548946765062486759152193138898445711657793035767533442603184842082568669153114647453842247881118340563937693593423288849558685038592969299717405528441180873370990102664270694050271516163722513766275281992818434088445047261226053952952163714383144634880271992594666763554942485091514456736135216708735640263423280930079445832179674421534603457100529969166572162940331901896116977584969213756644247358756233416752707670612507166820459125245880390228781714151231173051217600718254029476447602705698371139358088753203684479037284838772527093377336027547019600085646066288862767175593024788703404816849394057091271628049479503237658966248434545676912154875839404938532101006050354408463749581340230492192474582779343235249947129963240758443753221880899244305099161440670790463407034136105193087588866999595661902937268531701262389761987492722455713729813427102371219445114075399444790230744517311202564787067785533668401532597457171444946455717690334873774356128035619556623030542641773147527861484977223102713888785759363879560660424764685739584868553010473995640510624544006348130768815584551130899016066879959974727867542708878198524597701169883516623958575651033689436270737778613614786429461563746805460411606933217715932410900097006853732390443024143453300649291129496050546720166723658508018750378352177117525679745156740921476900647899489015958021589054117882390035249739772058563486577498756496128932421663899453540295917756965527277432981191184151288785337202527043320913011106372748772421023346045582039010579070470853497134525607205717858896848048276742214192311871291989170036493031804366428844130202227423503683838025444971570540191841847037316278542570258499944291600573908175258949561890064957639952941845713036469185552753519282574319794977861824850080169654635709953137035328301291733924655584491831715967515620060382493028512349232864946475606930149979575892462041518659902593781421675032382268964178837388588761172503002512537802295227555113895788430985726952282417797170468911131094910408978396475697511818535824280797218352842027991741089971714518178663740153451544772686254885063236214935060434555599908318583370917946235330623271189834106618369403518790711872735806197652034065311058085028182894851945429720349887359139889679678658986970946688743945083276762599281068176103805148904279581201312507024028600272843426896258774896847773742241601346012036624829749141119440674112254233747299340486245095839438771934017172520352978261713840900869183136792640467590225294380993129055158840127610250213802866593684174886910327749142586639379418144107174178685841633005830430442184439185913044767905615998017861611783891512151206130745022587178917344632926824439512913450579187805154046551340278711429145327040037709339854894658660267870700242465877223711249827983644099065731798368826138556258828052048809980462194381422054961238953558031493658181612520651241443041318927480705665815394785857483086382546895393072318607075885132826141291352151056649502006457262463120651174324739739225996434406650878247606544530090063367145929704339785610835722507421942405125257718025490716096653189313138092359796803061603046265773853719888734317112742857266879834165303680575633548069033012078320948969395774640664555666191316801645576335658870818900839370828278595495214614315186043305162946371172586919499541316144002941705632664963026841209341451029534656501982225749622279859623872317558375728023920433597820993700720128737873037524785089983478958398145971191164908049973860333548689771938903378669472716332912255621596280904349284271175231508555383495222486276375959514849237651628171403417417559946045540523187734178087196712863526394217853478191342300793435791962166802186535014209062989466171937713184696245687905163003510064692636521590044437357793261411591129088161382168541751604858429107882992759115308089365576941261553003266344549028860756313061161295448748461102013786745162116196996847474930743529114045244970879792572563048480945024392987244569974644026483715840902172536289440146628125768261574242458709994253744751338440393936737583795887561823927949736654121598224896472693155009558736037160803542003013495642361086250812583171051039096449578553439697924375779305371916591945058412424154007663689362634251685002797114251499138363328806780784369473929349744045055575273877364520798419078560398988472859592511248631781170901449181777611082303073037055630621762317722579703700411675275646509275443150201232517921068267962832536621410781336576436194019444270060356806368935001704373903375538996698796943750264045833103079893610971117102815372357188519703454847596155724492438050248039295484049236830948116834338917780919262640400615197119853504768441611747351705220934835237780889137471670520906230659354213086623480237079831579399977589933382570003583539118482267518419080832241257567919411610092523614451536484898688408502608293250638844272848351430271342403307468368300209875571064812326179390412619463450921691224380091180956199081236827418262764333047644256910078737641783298914906902688134492430628325123204589365320499338460942260689653239895535881568683679583533530158376195121185097342914103989218043364039685153054464122979181131060726764805768114455983686338781086250616859585503283861248716583490234833730000403446433043481668566246209579414978803392151350774874122088763760795444862571918010614437469465666625035688726239695439081399226656299508772999550886492787144195614452342191806489817547684818566727487151101342387301164554290464491931875293110366521680013402551950478006434569336564520976528619142532306901034681416719963358770804667021888933826577017227936307783486580519426491393830559754630582059259788599528033575718890538275808086123025741435712414736072060469978454134701830236924554162434858498204922687322280413889161553914585834754140031558603400010643896679147878536099871066608907919150196685101989082099485516204704293965414295168651797406649057358598730845942719546224139964628572191197478860352553928421114744772233237410417290706460004433885343815244354493718976904847640090271064666191740137892155183436456641637065076685412628241959973805560861493792771786072143128247378575499682153989057343872169755860982191920366625801707291388795485486306232474989115072177418559793347273089072554462433668513091311145969523885531293924555797584862387884415134393155193771215974849546432301789282588894045910459177888946638146808148075731288885225655101267348789976277170748820500100764939609395179340196347565896855098803466218105322514550766244485899087348762832599352060888671934568882390767018758902957748901089651734436257579386303714512523739986955073590639978587280961035805824686081673418519593700194255774713840498760305053802736917173599774617670615369966759617512212216019528594240205019151251169774446993983402353912208567807316624163622584584835401271099329185372309523967305918174162532032166535606232231710224473089308951170858476807973987326242691973809957636594839136246132134081173145804343693428396332945294220874729582157134191819790406158054559095947274804230785275830473811910451642038302639810832751685641902696078153598055913239018836569929954074368797550721352751248209492073416267936365162602238422792720272629995967210269397412092577874138522604288003536641277021038082420417905135736279146920741819160209100404174514008833938471653571070641829686143613251592768932205629570937891172911120274468545822404102097207199132942903218072299384220327020134011906766384158101152772394619445429011356386875690873245570159931225246504049948791858816072632916100125753445087330963913009451574827954508041697716713853537734265773932143091074184717295185287437888897214974645588877355774793816525512231682129641583661286422140181330032188802731514153403686966796156049360116300071037792421806330914043265397058738294490036677545971346619778020228521454079530300902270660904233887513721344410819530584964116202734400844769438459066941613191421181476203904591657020182148903848863842600300121638781507762847728532726208458494974926232829920670173858803764841511172083541712035344546535125855034686257293920080873325405779291196974772155697995092281820714344718982970661678442515287383286502095847254595935685859597405093145124627269711228250455578150536086836041816652456714331187558312480599802556391340948903915523117584940373471372509441941184447155121281261744934572183016231058131405691558619908725872319648391484808604654098228585968562615203021131043160478235517450953649029584107510571149372749609780630211020571547747771008056641871133433853777702442144799083987800676685658176962417017374941274816557449404410506037509201164426419661025705475726104251736927165850773149583172978489679184827760693751949876436637437036527400912146122598544588199631801672610355024679695632665786808025516219286403724873257302623009049940969277111782426790915205092109679067541690855180416473129736350863415227792278885158163504229897635691666832195994882399216595686248289806342765043502975265332800591641572106323592754271589827850090978438699474788637125319339159960377635014897167806844273827288936310518208472799234777144002213254653694320079518181626194666823405431267566466251724618028657755168976494917500906082663543760104959908745519691561975522778456852972196491546601168123738401277514777097018123126207085428928773192615161024917529245191434278412145704694719346303180139465256250849362525728203800484781684572812418016038884881630774891405306785041218950890104740239416552936078220142641771973757748247734891253823209007644003025478825089297134402769385054662520464827236653167600031955327047981699669374837581390699991177379239898515174848959481520360141868253713050743951333952599465146642476076488301154101854549916970641211793450162643625368959117500476535119388183715368263749904964679238281056970641889319764109031772602656570606977774041304117778629669712834161314511632119169658697827480586807142469606427955231055348406190948628036260241343799638889333672178887295945411341403873042001017963837248016710485622195728529911626732547786851827586831442309696619924743420113214224283385447129643661818248682706671548817796354902848599366177886879111610037796298006902294380390671978666069529984957383532790460073924552229759442513869177392127490466544740766382956683834535030659782693735727194674036007457999687669268841413367017121208197756068755236110530719849673468897700730249761612726458341213198655913542117512443640111496487623018363968012820201437984845428072040007130927503249100661215496290814740668877202619079167760816485281959343597147752198778248645127491914345861758650115169088390812149552188783059534347030435666100694666709329693392420554233153833837067930353715966477828706337535639126257815919938235045513667625447233601248344291832996922570140816586500563659735012433560034472271734737069247606755351343887508691861796065406997881323931437008776909789937866970158148685464031621933951278532839513908978172663460059199859992622735482375520570004358874738881167769350327860164197773251435438248011933843915946639843833383723574552735499819208038641611537138754854744284319383960034487337420874724446305279859952302404571090178678982770438908235500882144214137235756638108340957048708003703293608560169499387193711837443894934562949817035645100595923818621061697093564347445369683751133693889151519661993890047189939699104374482455947151615708938387379156254483587604093277679795097048821156142845239947917503507627613459814733461398801918305465621502628477854001352157179008784314510009560503801639036233132639666487273371959209025098466147788892194750011527774343440995454995675167482963517558357058427200065370080690936479193970811995567588173237368723180741023778180411198973272670439385883010110754495345532490804918102372629635929643132754300165398398011695874585849244674370287200208309046126864263530323837043669682847671185810407389145634057120236187095635287582308630434081475919973144192338316034944423004468461557193681265635557603679515285974152024785251197508097767966172240314218029154910948531304069668934816331461640011975224925722071527601497130985793188593544456075315106458734359457029190670162956868199013771380558058386635187846368563774661632810837330102541674910131883284617627268939370754357247466713916137081268855578779649257210490929178376321678997232853451538138308942961322966655752477957302611142341600024079663142062746350885249054733777057622125058312907841180276897987458386222835867269443840410426734036616070497748814342088676536129359088616353366400158835996455963977260759376147627853040925702622967356484417099299391196008394398161482644050928189269818856395142039399236225020173433403289063831668989980081273600931372285456445170061333306595791745214051757284105011016089836900284342934794310981692546353674621391098576518761133187786822173288672034347942062461322172718036778239271688165383579267848947483857561335787630792384970035869230407943061139266439628372507661929404941879116799079602818811739337967710967885167866109167732854231982427229632571428263178175879024352127262195737942877663300924409964150294365762098152049531476182704505460837891442483547223260660579444200573745448752221980642139937126789535195775789400272578556497252075279552605614963567554812761250510719005427498316016713172687197962292094364267517207513638791779287557270105997476677812236508792256248364459528717932344003276709955983741467852564262963327858450316905788050345260283375465405752196359845121327584067634335542603157358124483620108149670640810101890970764124821617592653976785979942860688839804230150324595859979881794208124915296768045125161511350843439653439487034312080478122790519982687480168266418584454211052830704284747208773782983126020700826136625848144788796180665427680944837314175830264307939247654322413542675169832165470906663991710946341677892252026754414348906362987744672921316785526260069722596508495197540720797354734674428253183496924351004158305871712651359637920015515211311497800410079363000539344387703638547614479010031753220115389463153108908055257882789865870647682127142142669752154523584475026822081833841979162727945807799410685123657844964499691004216518860761757915535995447788116100412105829315204006517503343389884128031139300886344477881370208945030162920729827498412093882432306815618589434986989918484584054604735101568368999428007928385551781065557683944069853561196989815403399083580662658855928916852938665909350469309156348517072890940693014636029345533795826954642477689410375921177012782787676182230856583924531022900670617199437226878885039264235495721102508920776531927343099220043429353612444032190333990711333308438229813801168117190486195759231702226911842779546872110770980683993085882476375805923819072755251028901049944070342134732608718436703139428400522389852169494064906745218391602810314272573214334834070113913427732419099253437524678194227943200421876868282866308088399996767799769713740896910761374279594463720428948810688187405876051105139810383186094137618810340611055538374084060751055135362697977826749342861023232391588770433202448354380253205852467293511179657101577439453616133985518783887820376728074071843141800714081272855447395591002273207533905643538080930733388538562911326963642632552217755767394072970870981314572034019106398551610998588677457406302333295062766716088937633568843595321976906785783838539577447889816469848430740269593092992414890583070306440479137881066225390522412282098062507225415809067665366518915367600486449147371402084307402818837429175558592503270423391881812385329436252219506111754429171171869693513984358627905137849592896422642544819130734576898979241434652887752653651341983239239025065641524955757863319346489864029188880824560110495059394312826293831849776953235790311535655311607855250247278361952437819790576905121745072641926158878715267959646955532938040991477478199599743559935473052616647019719970722245334285279803956841740365418047737039668420927739798763880696896659575115104226181552630714426806432589417676421396529546316071522046635725971179995712805585176247477559743726764433579056259422544764597316820334419516105178927892818445373198765402839097183720996233601859223788017614804085823478063853713424956203853686824584509928339826570707494150667704217866265372460928290014153651813790663836379505796623929716085211758154724760560870381548479150522135404620735331079092148401018239944959202761502196855435168349266003148248024010835029848960438910271222805406262402070200020738285318855655688609442905510773322832100839856504433529974759293446078476938010231393291722613713412775452519547286462014713166894221432624687958947640890611694425272963265641749273700951313535781423267246595363872957666343006712885619959045409617969828576280272632732250205883081124937786282065314572759647502488508004281615718672198151224344843179094856726925830870295814426621798349570581744806982277258278035114212610916161209575523103802967216250448661518313294017785323744870969699779583024252741491445698031140030919430428436195927123803071020520326101218445959150330215076473758079412416077346959687181718423122806435187921267540681214574775437278070162620141329130497223821903293795741271746244912529008798099415465585500962344803676969878298723216917748861799398338723982531194477561317899285587478765181615109442890738190878775991678069154393133337490774858773534889173787306007481179148329493682503561105314309909795342891532280354815775931783471079215096394910756907411379298355469897230849015108108664941948700144178653647502045207126562300141885449886947840707060466642574116788733534746115459817264519746695857003917872379904509739396554382272344741123087631590639518491033331854066502432972475329636001752885995443115480424802523328287509321274323230889085907696777342470514451108072464378828433839283844591804397324017483623063494966039973731512873594695094102184702991970981578848953239938239685399521352931049216115238629931109961405811806790836498264371283574681758553975843489336883986173366668296521024714033845878312131177112479837971516845399462110547415588716235689977952906724672965783460797157463269686788688304683926523240742754640906273308433040490361925601739285964830167630234986450335450681010103458910295976495185322140855669364558964979334354285147169893602895072465282212438918483399445822500864189368269609880104802397476670965981006676708330497853833714037072705412989915557418746685697983726110820161001062899819841805710089539654800140528757098903499262895732458161012577439486419530364760082536506066471737200012778550042951889182336121086988370110900567234466353131141536800759284559060885737648895683475790923380324811876141325819552001078406845027904211529446769558365870800695751320924786964458610668098845198034174633710646268501510887641523246415229535376255976522854684121197593736511985433236510803486644631933407397166717866523250032847524986644364100676973130932962220319687171562347751673535492012876228762990827810215530058306231183649332383190975329434122874579461019357928055929925165900549544196662043703895699167397440626929637653332889046657320387966277160612579157641316582978587969326059065968882063786701990298781657121683979495860675209411637030473114827842157687870889811248841451254991347682714559792059627561096938891977894349599049661963686492932462693091803280263608520020539223841241632673980305581219342107647841620852967420342887837568311214420735946523118626053473227395399742584945188518242473350549785943062967452421581526595948570716941551454238397148291889746994474061441581640573052977134530252535139562463888153816899608869514364801671803244795845495399746091106237871020856079747423079213614769059218218402354930553701831238814414131060402795916886408787444960582995795689592191811394350666339082719287388914099019062453027108955761235819197328809948769950589936841341370916856301070362598084968365853855892697957335232649982075334256477672043786246296178259632808859860922627103055961632607648724909228980876249706967499474320218419421646015386012957610824466621108419498407975886504222962618485940608353356316294147599551422146396675487649165866599798733606683673022958990446918040855800541499187648450977694737080205176912791572247015390453437430399807425776110837574448884790031125852234045821343980741411285973504043271057670428731781870354755487559672679765855168879327393185786934881333650259377685600879652006803061723205201625783177375189711045192799896039128778341981758959595324222837085465473792414135823385358571983086163184938192891418369109652253360292607036897315277291732657235863511275989137823446949457039502379347332916222276286286029333158413089303777336061842465306902541153948393209046668471943624977025080718414531519017790648038730668482675865926086950136465094484983252640408361730037402405214327561053968382112791482916555282516351376532814269048444580426559167912865590298560354206344232250127953871881639379587098476281042856188859818560811979094302603515740590509176148155018299159348211689770548413621086439767524916021974611380176213950877065788731630423223738045078519548835750116430159144040232712693241988822111485251770929015328244714229434802130652709731867339504994874932160796363874622093677636706424726478089876174323866855771400399132915868733122280142236654583331796177622018946674230766345490034839690516266315850297941279524876452727977073107654340817803866273605926495332083425878201522508600775535636090433783658342446384887696677843928360639521300936274208073301836943655372971813544260427546881742496078477275080372984608610034132663765487863207577473524506456213658528769345750791621897075259693145681475365736728392823793713301478334321826883858629393189713206583916458436180113599451371272107050865925576931295839509517880607871125720530140158080814068824374284605802395952125783603066754073255830971203316517269642744231756553882451211574409778240251507065482668474696985186255169422622745624865662799345502645513926033921272239514483896265108691928606564917632937717699244478958079819082359643679383672899154959947228725180487800469833033707887825470264052242656499066384805517685480611908841309476841734153353569506687609043781908738299268664734326994338559656751586825720028469172271154765766323526257025300835250694531866487478415826679143904369328277427567744801377711408483105485215639812901716328111378642170246772815418522936704101883375726944918775667899065308683443085657543195145014173006872047327416637018922264254717880268529411146569131555908824582311415109756394213840218987495456315808026601231577205894765827357078280911867741381769801104151040282521732107892334204047083317329470266190475877924158720779212405157952796284074136375798793723926234348605838739985852788568657811385347361660971005221909211966455997084399417967470160324845613374339419176842197175591938584192635937674524101984098593393329364880078292648926072478524244832146723226268101162099703331786759348408655841083085819628391923777081052938913604970475377031114933365614416741509138083722011081725901495386907359282424791917010429969888594715076377564070242127334804825304415166543677070816979503798058515806705207474893998355692528604553153823804854533035767763766228321129958560305821722314494757766177461736515266394203103308541052030133029960781965198102327145603286173166096215858014195601647086745685753604445798703817991122421173102403525530580050463737208450028592948348980694178361465926530231424546369519320676270784429140817454252629499277547817841710712041337812917868346259184226382449994673142939376913573204226498756192709636989116135544245666227085265402983181151935149068901753190491537290679349430442314300058024647671544117975456794883547786748842365853545421754952079676150390326134094183208291356948998608215106710928068598732862903727574531840378026551946541744720668677049409670970993160270086458151600965627968214900636649859083814624137934135274527210985641011159120451927474176134244768314315138612211719038190310405489984147873519720277074706763567477946620224581578324631759220039907534611545646648944122451028840141546353367861489447434365240877549613741971358519028444933109602788513510750337611530791713064104083226674543608810597195751515851539758503396363395579913722296715964587102485065237590402256490998545360906130766306789196236971924510415315145372663170875348898807143744532765613593557552761726063023287383169570381967828349271401767346176994194671679972177022973341460205627876486217606940682099336624381836473097016631003977956562344870606848505688058512531477895325612630396367803564407556914603077234170457203309811612837644931041739821700527230977574331271828396621391747446098015184157845910579089000707553082233876614211434570719150848026470221798376756239611859551526310001362342145173058867987099172912494548297857778351600257045826224265061524176426487868102896805655005892667884632408067046998623854213413540397916197650073042023707003178307268512505604031027235289457977918129701863294016484633886160371307419682280992791583455036019528225948747830750722909051914380944840133203142269413349497939019199142349027987503658022850051122637260574201251912643494213335170714522952646135210712376154928086728141505388394887210542300375575080264315508851496753136048256107631672373932572153346904195335842464252419870397201639367332615990459421505964579079493882683644337133398110044208670240944929418034154938465044011590864663161363480941412689466582460857777716172613757913755885307182601957585787564616169106666211093479503177099336869055530982744217220624872207432355891825358608714698516967656108848599586767357294732662427971939640813615525120832456869557115872752223344804934487843524368540686414061672373661226431241110737918564586084113492480777834414941552247271201189594272530737308245568267870794358187558286442509826544508281493169778741134776296742557305391931333421265670891193480682828092424980527331618220864704929016527488140636722152889547861431187105392041657972318948049834940272043880960409434590579530157451447218746680028932389965499965213768166296119201135355734323996035165640014639006398668581473044978753402956397261327379201475503478313258066435456122516848792189717430149111482363905316251986582036903741255064616671962077065338099324966831081702218572869218454640415131511457200198202565615474081350941678778212650367019428682677268100109321746402449378733581592159107691313719841018084901001238178641935785364407565759054185155013291369101757169920156509457080656644788306822801301336223909754494714581702248696328867563285610364494158872207139961974617059492556393366353919638821427696453554072322598186844691062057925684990605556002923995017045967604305631039703665733078331872109010748407857058792370327272185092780471622855497653710334120602656726569848008997460641296262257950404565568839898760201827221975422095476466785002643453316703937079243025320432439899948080439951277440439592312360101273090362707471680692266483079462514713239722414737847124713310600801186356394215813907928683152270293470194514220183900751281337298671777602062381991477180478201375384153938361436530400558183413339620050575895436710613164108162082034610935090694313137241315779130257324875038051174841176992883799407958516286621202254919946465748227247156111087588698758923289398180508695331211323548648594417445229686822235592344794105917532677345507982584934795492476576645530523482010312487913365699032436123338405970728438840148328713112472640769741660839178286185046435525811889381087514407633856365656837758651467019595129740680642668694967055368213271309688742297852472258955810419723493163325061267564782784329248917620117459935529185238789182208810726994255919663725118750948126970292000258855470815960192164415552715047501212782057389945048696857035540344064819548319797565462515169291910526794597612123158584118186677104337967727905640323957541507869935498983886334524207868402554940358510354709291230608147863248571489535522983930092754630769979465547453528806269025480737245085379421099213926843883497721043261683804733397772243069924581923145060001284479781475318685480366885435841906655473938338195413590538276719989572479609203298687865917983577018674345696352372991387949242596932028533317849833306681164333429500080109617618591391817618553829779313482006588466107077281443909778168189668205993741526283548696526743828551337912297640910068816605145667222448649972929217103076410404415295309804338666316886533996843076065932078665478634891220673376441173381031146558258331874133314271737144469794548765131429173936978161546112922295596247466508207655538527354936852051704104493128867883802058297634728138676631513333692743672671804099233385974591411730894330674660237993223647677804766414388428369953379659084449460773680544550822022071771987109364615731889252359206175490201233669333611294731544878741691729353894592130604858251130592648679945297318172146053739037995473567056349812321615607924761666692499608727675123048866352392460986556435299255989693367041960353637701268346565730815997400237016997975118152820136228771871120658837376903140168634400230776250783201892993915724753930942105435149100330124244434279108077218922542395522587846742443207346174993631476540858137694136734429137210280824277970578396082032942999425965282349562926249875450512865667853706898894479618403361669400698023105609411107450609821734435532158064528504973042940109744603901569636156785648032761287051200937700782569161352915721411082608226407533623985574781610871719421062292198181064998714940753175687270625107323726460691877505993794360739522626739847874274029306872552232706291851438646094073794422242707068686059579340258083838127623202891643075060073760115904217379848379701181839118495133934836637428014726944885903041032593812437622830856603828998617019892123296936428510239596278173847264594584886298066505782997373478466072538630627350969581566868064877867788664866409464589120474398366183758448144037720541390497046409170647132680219772995692099927450860245797915305689151270393729463145667413892821884713604568114887158280719247136223553444746232668555435983945904403554954624643535388629763029448958075126253689967978206272891007186860619951461069927897830054907727015412996753445179127017062404817619002576723586684046042319084411931132028907216149884336481980508515083315709116625716168383494991772889480160315006069477650961791778495313438470307491193096915526960180600829774068929607885700964287089363238615755183636290940770014506184422698493890546669629539228136348298357887359969181453629289415607862821799666863763949637310190180735716778431414943870223898658320134021127421708115779371856258456564112717963485437096403535609431728788763729558338631970513070373276816666846345280723908572391402895742153973098586767945742661793666214989248994204765262580992252181685704073348063252107679351524260199467234879150218745883041911643578372643968302868117656386510178563313596038316304674670484065704702699416892417976834338023810314926891475403877152435040431499846343854465748504673860398203418197466049840820477196179598389114165265090037745764522611503962286546698816842916573273739209840054906073800059198880033545958746407505796208420152121464530669047539590666259802915279952372964808880995943272565843886264905085596572571105434348641928325153396506313428853172530851025318379701388076055295665339650837713087167977375965721106203282395331354900004035153628203571351542899791137237242160189059709542819956715683574754542700485933352998436716877592341900788759987037960145580137937053507530143098190311402561445074858171197841696696098129169718857191664999495753121731593601534365030136044474817283366103119098387532720096027860463949108893798499456255481527443970837511273428720698563626544524100637388033319180812832209007340962496263657164921079687224478878386364811609734285811150979230086975950181140376157154808811304166248204135289779888630844225874030994983368934233991799128248907697664951304153624812947632171572398423389961269376610987335653758768326173637165255023664844279531379385464519865033435503752587908065715634526290753242916178548746725152510791216261824286147625833949709323062675474054932615917073448674285754482036904049597325328251721249790816529586044544326399892251483682730957557652251707131932839134050858189904187242594321741727340012199250140347381662586047536936669212645377163198170741285010771616032555241330909807119717577119342149621920516228932464412010811637489653277412613185744028921551138973700339914074686624643115363402678055526472034399804189201738749368487017770020626445261908640516677039513393725251399568729640382540139951769081264151130713292141248903758348591084808322355559110200999791464853351849010729091992323751683780080908930377105659781850485951796136791901762618940034081740525818122875031010494972473261407123446283124534312495314440841689760714681884949082994176646626564196031291716903411952828318991221000996881256233329332640502997839624670513885546910588966660355154673846062705194974246513366250589601648367727407834798003219787411650643539454051321434645094097536596139668189464326845280231772228124325688847259569197632014552692372531536278026395479942939525701116570999179328912028080466710236296429939312773406811468520064909225180700060176189885731588211652127979451837994074095149619007937748701388875994267520708024582338232049534859979039945484954140501524661754740733524343172649730625491702198898134452575108929639345671424430598801291370566922949604083157811213174613010414878064900724979592806404437573232301449476082733156015411702714124740694863165904708347596354803871368973779590750831351029523864017484846554097604316710271003120950277661321840828479943934362137032529401119667789047526952517677998211521786337825197663286570494683779779378599841822527997663617645005635977700118145518199750219132668803729746533831137357491311896650855427467503686351982554005973570533066701035143115394676192163127550572257606664269847655544501178917161889188680638653658689998625434941126104959543716367675725968942153705917815708497216143084555871080641913244287755161549672412211525847451010489809081586221392448217443478269035678232637072700154048131806834620624843263189361623578785492081694260315704500415722683480558493231654309405163261036710873047855736929443190138647927600248796123215359877726397107475459565257602313141017071394051013691283956034261854005227384408556948185848786907052544880324306067270272927962383854838998018470176392013355541788023821438031252989952359427988575680907505115391653235339464662054820731829924158968483466088125907703523684217549017853818199488446900080646508523877710981893152070448597613693186258912582935862062570751615282143302355552841756725742318815613614675115717318481622379532699693814654279194458147758010005279070804838354576219083798222450470154155290646532940217517803573337608918846914761248742072130738472473787394752511576660313141642947877548748261231354125088861037060917371983473970742489031537912088762875126811643426149434927515091055261920003428022078138778148410661535349157478769277329389107274007641676054856032098328199281987807848992306002035757621929516301196545405661032980518370635077561431240933404550859017133806086706193601842097294021546338777350392599619309399120405410324393765488836241212833019683659231435484690566262019126730694666115643629830482086728420540321323408447556450454388931653784518412064192906593009976222521333254527796683597037841964209185525478313939879355509856909587603617942637697165806227278463281839429041404577835001282705312856136486391674115915580898656048934516005765657346294845692452466115701723579946187754940296801464108826534249799746871712708703541422754518240828660071988257868865131750251394698433013557849721972268223270746030900642094673299317746387453902678665913873268440302359828804653640825142113525151894789579035164790828418008339829857714419010512764185453363375100420734916385201602840392118724375879099105679298066100490252264269427801599996997614255081059864575991158932140347791479976700320793095721978422793527171134381953778287091627607579083650160552482059641368222861263454875403897271393332537567068103418891572259888870559182589015096182190018930201335003124880597464713254717830280827750806270348111857606570118703388715037669528742918818460216457473580768544897626834334910283525640079017653038899371749048034701705928951720870536662856572743448425985754142567224886621544854255730033854131726060075722673778548604789597390437656729677354528067086411957277923567670319766557010207191325625537005448206278598487569201827925558712688949148987724209303755275175042734448383899420745448586597705939937863596040825588689145505686193708317541678004144623254763347946572652437454131259444384519842378955008493620127822271972745273884495248567556165090010600952198954494528048162288307370881578596046367977310819006053185052463275503250606183495866080134958486740650732200811309491081184642534913887704363702624310464433978099177281668715789916717956875583807094434848535997890856592233088854849583845846398373286093950852942051100916177537947400817666315013206052783579488194183674519291824338682940960966742638269878386133009903885473351756556011874548609125986821645551950110286228006740480929148997147406053376721984556811468636444683413210287209868622470888587260718355407924770137323991575037796252181154525641331101684725461560549996206560539189671790545517919873443130298631174213575473861289663346646800930302826513134362921342397661480971631223212945953119261630667470385681444595141675487710212397314454611749504503245657603542596852279777966253302626545585890404496390225943433607102951905597154301253975734788284196178952762994745364874052278552602987491915708798541551488078702367634157368427626674726795696446110961872103862737785384107572405979517695989063406216538354267321048327810556381938475415976522774650487158781326919483076950842481176242093755907496053507519342636540396244756771793485062804924697967163152330086945331567113064568374525828308084583824980632208956948387016296710591130710456107214095328770025243279013348976831056834403886116843837671820369983971278545731224227963371312011231229860696644053345503937332834539936475091778905867156909141715424106091837175240605789807197418683949737965222235849061962403354028946326563956616343459802146896297700995978934064230045380450514569223099609438670385218193239338123112564458875300267647286138054854518090438062841730207565192537121759754684107499940895723785868872503402012503068053189488391998613295279989141885342704469737788597593114746658435234068484310903374530630822908493497318062385756626307425040407510112958986651624938866832461232918846546795168215915388483371696304926990409217054857584068184944229294774414584325072662492884882004898642085700269918980883787267478327403779663533965331150918926285003709839801753852427296596068253966753592865248711796886419738228253120594266132096500985893884988939033299433218419323687473674897736078969419030823701317551556257597174972943386285942379883852297982222039487377040219174470776500393924322839814413034998450804554587659521714274302720162397269590425499628187407144802629242631706550723793929081005855215745523745466911463689728577127126559269124715238202222032255097449078403072289440853690537528886125149524963558213602554108655432741016742742854309991173487654183704025714791633155482691798125893674431976460376716814659375298968445694491599345315510442006651050042642762760494372998042648903501663350377020065723589704765775884626993090438781315235117621220223317311360401129062410509911123880713990188216090556997644389451399027752787834894956125599138461858598599946564000946955863967325783103273726834762791768603077792109949830907064385459391388555283067897291923225860946500268266059595099440086161935569013426098483905734749274889702080041328554412300893492084508134103960848554879522936606893231202626247222779016011303346706948608059832661379640030035816452047536687603568001424222200595199235997662101234478536469952396336353052647926032247561293386207293569921575991424704456453110998109788844090679805914800175030601907323648091784352291526099368222293790911375544153977143641882664987515425771275716919092994822874641203005053235673414318382739116240276588021866623960389634732430986794166718019197412744084933173020339422362779996499040665786598107016742392544501599899585383511287322116168690773214882241348941519362664559404860041422641909882788198332601423960017132839836769687804045938319812875506657749754207383955735502357788194960974311083748609177249235605470180763594124361304351047913050127551530167615898509663154661710487258416884071475939409861711755270484451283876555864567255184283476987897504673521199737812704659656987255712394518752850515827852269004128931045421338809411295076252972434940908293438207810002283192621840676212413484834307778720945775119223971389421097575287382975338676694499294570855697112886632101501406072748346100889757971223439245157634079287684852808595528260508058392435846391052380474820971776520125783379167056647062279952770750275836263558089962029966033174423181468007349271935542497377148560948242574804745320907493198916437097680378199396126489027872602120381581114284851666739012770970504634612099077597967591195488404473821556833163233186796133095332151452572759477083079732006837055248354835887780206541075340551939468111913695891476880309949798042694513891864461214010300881033880034600134578482480442709200541767980324094624828997310264374285996650186894666965412276330575669968075938199815949543611311475381651760287166514630123353622723775487383731353596668686305894762587777379640084126974560828941067387533420656380459901768563262255860000979396059387841145695996496130021698731397379881203824490904792523549089179399945774102368096596625834396413981561341457587030037427165473009765215371031512808726173547007247380938329570573614667865071645479843052069704720749141921540146531418390985595166650334532854177719274369674391752540762343878922400243006852601060489657122625739113540969082144488415018766690106307572087004121100517449809973145752470878231322261157384909028347579616805304053102219327505603582728201307727567395628653323902064327043044554924171612798784645415150098889862097455629296437115717245999926821087243867765587203946140049796843664215829012611334474656170530326520518680373305596490805760542543858127720432938981360527653484886064816821243594933018068978771544995730784370323135469122978330663771773932764496068671380849721446220543261717334039900650058615503092083408528272054573738464013063936130766622320088813583140690377295201485870102637374636937831721178802146555966033388107724566732520198268477203969388240808405716274871249750014102054034990454508653522576213599860066564151253442180934808171269684814361253796354544940834027786491058053760758380506439793231548388922395860930772562680305011104463542284699638354095482585380250251449713948570879763059558414203376092005820575268675272710614904065751270747798265857223969738814827652597851545599566323760210264211298608827399974256810262575834787746959306712746774152502216299541426087730466612543814422538657642482121434050154642150855741469041183171923638445912584974431669053332888064969151460026801357512155986550433981861256862411393043084081505362317318044110116232974856157645103737583398175683776144213483742686101176733336713279560623422724754610832570642337791657539949190421731755041486821225162208630941208257712554543828518034978905515903960123462015625069632267658575777853930846100668567156316133141807785254345266415074697170342857679830646335286470444288451723070937479231182387204271290833152301414386680941685490948275002521845551473370118477976366152365671562438716687466317794192434877362780158640993050502953566084686007676321327812819385113658236347098548389188777090926005428144006321289370402241794113604308061858306260040984118718618962790381536531095468680652483631586574641191462305354030343278911761030843289897059063703755003083885309100312310262879269440172648628086848915236816923099944728772339468325128445864028333629438492577662092379925301399072431656515984291418008654447049379891304172356965909834096536384171766806134253935240933610809280465909896848523200245628644886834111111819217541665953667570407172756849828884045782337371312549517847918067346522797323869837503541598076761903475386214006417419217221739768134575568868358932619460212936585750629904061311356038677157018023425439189195486478277852380318317941372912270254554663740691063167709849135769992983391131336744055203544980088524620473686027019309091950423642885801609513900649405560869388625411775645637400556357175133074030842328181965985402215171027719674569962114003394146370378537264323243992026757353806986536503124533114468432032972713216351657436603800263707219308178970246261940115056603211024253880892018543898341734939402364399079588198924638052981090083610007683831752632704237196890038364807180467940013447546482055715323152918182746117897102219283209814985045130642150856093788645779032258139237422736953546332952277488854759890306547605307947128535717903928232350056627020769873428552490375663033349836848923538578614345633763796399111802519120889130215465353650453647527283913237452857729466787432678653914057141919309985427397982558570586552505294021493717159354493552661273765937896390018781983209522499945201772726465115515556471665597483502178636065416031339042950463528427726616218550438562889348973543305302634216355638651058814878403028340591761477494158344202202671514603632923318987240870403316172313932027247180722854180787731561755750325767281130613552717250178982185808792794894582319802974281601069377853485162662003097894139742674098339489927280538702427750702196973996524366644997267314051400426876752783996491979898310988110152389102165235263409050846518601651093426503611510075081964653076345820782455869240857034845900168264384949096735612386833005161270385273409267987077792488963986803746316156225502462367962053125921729297065870096225855031386434903232366989675947698011564795054489924459272559195351917298600162589224434408246953138364772330774339354302674670396756492984438880789678875817710474925212506240475760594190053904014478733060431054116066361078368662741058088000606291630813769386802849081269292560365674262060708477489696606876157914070482244548830168896821232040820076362491335532260389068937336651212493399095624154442841368045800380954486747806419487938328600275294743207153768226347800906485119852387912956661971482377809161111200280470536827024166635109864784837931102111820066603124178821481026304700499189882274643479273052046969672444077479839381926865344789446658202944078028395611688693800496062833094305056878781402212900648426405320644001008652976193269164306303286523919424381105468700857911360271632059982092240661630110997032745159458967411264201597825099225790571399420411351412710477672593533538770202609737165772413576485507910977111730925553166796431253389042782926128441578288552186736795382570098327733541349282728684846732016749511495956455505940610793470576566595052715029975791250802773026942863436657427807599725566792589877023028560084379939396705758060253885051224989244863213249688037955274632430624221995331410426072543838526029251226721581284239109953219439122080649383690770132377834702626583095278734106223814046003092422761081540880003729117839462204610068588054988026034485186402665378031250594101328838227376413009072883758430202759490081783080684003556994059951597369062108032457016092984031758551107198986758497534563854967155151530435623867407661974202778164660438753309995472220786153460067837588968671638774827019589918045649341019759471618153408348311874897686773093007448297391215480242909376926467159790508307790783871604471172110379489335186825513007273548062147680681876947082249858649151087415808133494683397132957678941016869460689979092444127073746321228520957975172660821804687407192847850660879088219169186940694077169568673781397794951997879750803516134706328020405655936626502418465890313220485020079101730817390668253829270645985995001943426464642516060147516511785082449471340240676139115919642430584613600220293637369374647193257515099073979049040240346486144520287441398861625715663407914756494149117932627933021663597313286143986643279164328729676158442008385737121788844680817810608472179093987963670934434176734754151835196480582276827146242203217373509092862926261680481846872918285558754655524350435004320404261294703403579599893523760664258047916971953142660932458182344884103593921028111309606177754705901418732732701840608088813441527750484352425057320329691415330926625797532000211488127717582990730629790620673848893513839751031819567833423974797976881519073513202116316622199569731315022802829992818464429715682157091613169245787609609189709791399576832120891101388042039391658646888390181688444092974870231859856769850565288968062206958518111887981558628816976071142680326049170068038988897004405959688381432259133321103231805141437028011752138129159619777109815803896534896143221755459239800459588024427493308631438306432007965892739901022425220188736437000636150385940386600504026672538254731612012285041595900973498815378101027170628369848238880984233841020871016905864791848680500275898046872535525197109439628651300338670212062449048878013118511981988505843131592580816003564293958975190041394676224114175742953192501187954303463938091847048226534213353068833168337227113379628896966725597544045025331943906233739685297241079124269050541035136995278310005958641482652951021062319909089005280612472844155276195558067629115518736471446024797688795693316566915521427974249699301313020929718812541456418866339258745534426002949934597992813183575364276363438873559010461120996835949501291773382843729263343640321507711650177226867348770551865301426472726149326398095970892078363850379673335845165355404544052584952468790993557401725599376335759443254115381372801544424802371077831306039386383534037565461296211441954629189886506255727954643906909463216436129132389028166169274688309322483131828584672687746904123649779011693178878031277075194129459696413022305713924905677391885348930148742675826447037011915633612116691999546821052518165428122099337389837673890253247479205620233852253256727965516641849903936394300105075804334261507982584423357653388178862623038751870496900448731789719769144825352151991575650173636299548359247321142765301682565583378080012058766961065307784380929167945367925382627371845975314719197976469738341660220385057606684096845729074314247753892388598113371121798570417278615400233229456905216720497433083132124609992345160455649402097592550534241825333312597272273375730391297005435776632169983875022161534620516669773123490653224181429780141096152069021404380895781817888913552109573791311755498871636169930121117400430414615364296807666325565770397996725931130951180417030808021475329296802904864637131345187487391623085258110454003057073963457804793077825684259242617842830549527173633553082759942393442365780635897006945940448542606606349503777975167270924137975148774999182351541604453101536180787845269466751276349829105434996196160625227845722005135027058311990354014815978394938704496296634496975989340175462062723249769762280187710131998847761047833717523719840486166663730943177197795113731199956775987611026711718948445667645665413162563446401981889829421948286496337462716631186136481470882256011096004560111165101014394392043548219432711580106577791810423443943226494106377003545868577937511407385966097141632854742359949970796956484442792339379427641736469994927322785930945475908545918703446017568939524882601832497142284587449984693531010219832367302148678247938530722458798735493975870356154901235250243767730538238349473810089189756521341020254030529109248804720630219778089956520284643649852578988609628745218619859913064654341712235774716597443527412825469968289072210437725959211792527841328132534361009326071254165468006705406691528609350090675600504370358757309029542840252621750072987003750347987676496639264459873242604748479219733975064440050432581571422430007536979441454417809792877353304185021206459227455783904701898320507893965083605617591420893760600323797795949630331055773174808897311071778186580272462523484055228702155052846684396438604984724418185898233889613380045844093376994942454529976032472840505696305920966589272275983546010188873914892062958308294570710055959894307955260836940076129121159932554891117577395493839760942457009516412850964055406727888216803697691993434743247961634831346305757185397685041965478871607460256372656321407129116484595703332777290551128518215117344356888834278949403794733750080358520917811342849096765445106315322282220416298991641554228089886126805101340393535039667241403344630718154880240276464475076983202476088262495989655681694600006404775478486381174111924195953624295548155512796987683804283115792201605518367997051688548473714281682034410960846922496931899692967933177758852251332509129182839731330228847500637688096813565227465661131077498179662324449113762716601830864330718816956391756570828993897545500326919974321066910594625262789566418510863845370567240813274942921259603530055461385764807647160213577567303640687490276502321808698936127534516351745206089883320448945794403630934176321117271594414374514677168850670813392339742956277901330611215848828685266725220007060510713254185686118198615974298341935288245487603849274782064250319865029481093614202794819918298461772294489963597347613053747008585222627617355082373981076616871047568430856469174415095739562457207501295434149205145436371106301300059551600019114819298815978977392500252813889524324992579918496397061532490782458823438588789099502362434131388368951303032820033270494432892375087820905211385972651365326635729231452774702318787804330721456518818977742954434909462752481484426598612150474670138187205707944479295547532866845773128601309201231904696530832625858725787732976449620874565855316299745533247896005625946154563175927111384245072753122443675747752400953866158692096216758009555190169296768198018467310354348687603574314040422583381160038453726245788175826576103101920611948757411535266841651616309559276367070003257199022684249408504671347747748843906914243141319119369711288171165368611889210305258473508585040397599932674879338899969369677182183572200682413981556314597892478471310854150464502271217761625795543593407225706258974730795261244265619223414107195469871737650455101150257332632511001054720642601631090598191896215240406844587533245905758680983196203812462994752155660176180725851074090099753151716232860196514244213674029880636446700415504584334962712398981720826399967480259358152087209529869667868615054036959301850443222457208841517031367689641570898974814487942337821299468667897251974138281928379907124231251793575407125455221420238091063071275097323143342308464398783638543814620624500538958055232743913639447581311451495641546515455942373604596622220700301454275833650589653989822752662079252304493376984194494730188156951547638163277231316234537608237528062192457991925796184689393200054565165132024567670907097634820465529652140822077294029431121647444135909208886890470667425026412493780217421018194561372679211643617880581522659765421298924869252976943725729894930227122477347558688662563797518569040861655004219861220515191888634925248493940468366849271029746793430939532784060630484056457182497208498601618322265215001523611075346295271456441851051826019345315392372288583579055763226780238736267929492839638169593641226068871908300083197402469493187120220282167413759301387154218415903555803990429860939947416840529668176209010051220241479388805266462254647652779629849418975742453463802474189545072227289527013811396222744283024498705445876199535561779028459528440356738288801766017564537724187833963345783725203471697948209152713561450720844764228937909685774698061858512012562370624016120439672381750578819021070972373622789723146355848658532849566726713920665528286960884992814767405018139775439474789220619008392953319061734543811079808403722900515695155860244318546942735678614753311022658465916401651764610619535271648685349036287888483680307236363445058644922388277378956355216598379565226922416580546254698416251287269847096671727732566263501818601231550994624950173854736174259541093344909952309749101737962053175735476858624730029757744984365953816272568931091422156830964750633466885262640298906775082062872650854386534628845510030878851414185625466971617889513968023696959327777777299144659942472380344532803259006139317960996023979198290116482043597933270529687248537449362396758696335648095280144362478795776053018446351067570767296735420958905267330275859483233203454662864588907071286379164888804920921875259507344185607762782245667475411562272265205882478438698240756695058771945674129606077432744462661885746200757706121926455487916587996459213694749711958636288283813156938023779012284313888740533417200501524714964965089213201271267050286666303645481853756783151880437148660394442478720182277383228191719878778281094622090855398689079131621579819148864484516307192255989642933316226355266977936044131651601382637283218534597873109006440867240582071079332928561147479695539796014179255739431600692836663986372136817619355435517636413314130841493444291093035763475915522716122635666053943830292646059862077675903285920920684741814946316899884567961620953191552240364997102268948078683085570419370294957314183262515713679337017513964028101241372010697007229555210452943631811276007093072130857085073061622630754902835529140285086430806641144618985461035706352552422538924971954602630075292349454778392188068126966518579762926326463789444538341532255854977607196324113789998955280765659095269609203494684173699238290573967993994786392003568432156894762371085602914026081727770337362201977349772242955838049537130600324314744916197300470434908043346214365553374438842434965474091814891310260639875229002690197928242041378688231279378290808209550577054980618589073864551242857621691474276842857456579248144838880882780250210166760745617773808897888711805211349349811955363166161872120655571468903860671014643093424027886372683995119567959081906222190462955697656343817176585802085375518283273014751162038072119179498933937565532727868798140149550674877891266578966217134426471526786803635805400551545712197662617697390946279175808162193799184250908620855220802951577950616670811079007234450677114357121024184227807112013419453193770170809104756778378360590559617075872058646708560706506939919989692483344780274254255443987187752903908101868580243491706982984171210169532959962519903601450890274112773892195117358235319039841042904732341835372830612631221815751588842856861457971095472242142161063960044907070311771789320205982997092235151670731132121496229453602641236382262328861808150850059222687317775038161426870296969094149767356081085505557562818353437622308107733273966401249522616261525041450536250232464744778378506000114204144981513686403125344291035193703441018208720432566621834448014363799285382020955009146958331134361253398720154048972903683898063345346795813605176746472823807850919224528550499985890310277262839462013695711189137151405833217603268606046592471695792134994135024235255560848222998592123973320776063157975792209592150711126424619416291020199260972777558483894252346656637856512173206067614575361108885298816253469122485632337640140524114101580551920013866325293559466231442170444440848086168719496992906102713595636712122075744076743525301230575018301999729929825236879711042952653498895642817931918168376426277298531941228284618329297779784412351760779351938559070912566487413093983388176760095139675540570635029410908784493830239190161816555270292861810977088920649221267566615977839758058587532587851360542531098396926034755055763209634323875780403258249836742970204117324972513658989386973497090668054815968650693836269237338122044966388920922907060638791691798332927855231573753487641070548547332914897903903107976125038840739322277094081885858078269753475761457232728181919943808649159702379641593199201003678616455463463321617347209749834756146939674605709994129458949495315981593842177637245690389254004839200465395390807168116422559068778498080338263609320151297770054931929877392030683309107814175788069890483326235114459887020433116354822663995303264840415848949596617901550117865231261950610813766128999283474249133578373068228304619702150960598264798275791112697158315000024766319318698492367808844803015847303136681111331904520148070576767359305471869981388382795193619523324304073311238685252134025205679490059496961273616686743988122286373527553515473128144978535924220657913118409203928651172198846005957430787328715079648541820822545836671760450097453068952228361466735333232937246699813876846627379291602025526879097904411317114142236375439331030451834358050262522403859225350543966448423386965941399685851024330306419424922281614936056685185287577133027000761008927243745851611184626446376939954879374622390271909991354759110838392480043769804386156860923600037295219809539951469858729470570426586204146652032586816845130062595954750124488345861719023984412565392842500323340195306087887665749528355580637534549419130671444351092685593348533749553606845094225810077625033418131059677087251116284596212381999111629924350012036856318046933046565348091876297182231102894060104766558160137499514295968937392569751282323005214424579009811054585658023339107650082002882257798083946826991638038807130489372275023433674327365599416647115466515769832637274632738415132301323977041837208194058549982863667047849476126663001524742376700063909559858370479961806107749874613264583029628853342232019388817957823653583212797695361027662426267841952086036497625845909187760252651221019665005887260161174268376845134092336178503036394742861690346305094718787896297029147929722711727625264091996074727338183590308104187259100394192497775517315430120859327360193114781455910657268720063179131948701178939675851509167856597865345836089930607790462677656758432602436439511840722029209378286375883757736884140079729005560053751027453193196796755636738506068983086487129632829148758669982970409371302076086009074594486670681081588246690549961277305324099842372357099959879348468986042908265541635851208084321820532153029499616759799336761015263731213724452068629597403334139133214342927990244455349755022420724246867384603916976782587560668512443981379925939812995627508255870635970849747395305855157989423601877294256926214987042023340842946383659360096734165238895049299051317693880170223590856254197492619978067248252011949378694189568836763624403485810497640402930964425663904951759792567950051980256562468018771884790690596402226150684481027868122386267342003750154609704183614748021296146724258540525912813809586440300487204249210679915295768803816140695327054532512202182491467249091509217276805946014485473667680129429723132459062552638915485363296991869365270404971260179876754973220258068168360303158174425911607910188221512341301847721162562218027061469723493092443074511828174402894237715765993979607655831489984856309775784734397050488193402514302751252481738871211517745639531499165253601869892771286665865200473434680242817614923084182426947099399795013777613200916999228894791788238041344857327371056414972454848240613252929991497309450874484097079165835778254832097589728498903875634794433076961464493755952126854522194337239999575204980265720178874027085461206620327614506575327895388053975602051308764579372936698366626639575397932749091272381896177241021279161854375763421716915746829804593023840255953165046072102807766443938554073493165947994117222305499734966417505734738192344638903632035123113623544464989449033134721930149170943016760479754959221155952219231795687711566684627109121767662342141752977730281032529142803718278514169092591995041089246497712419748863208168409622550227877148420060833055631892730285875922944010101740780702889619198267731398109953986048289473634271819793677743887574692559775816832653387741796697032409581451425257890186116715748996057783182593575623948584394002632960135558649732740333109082499173213383412946651153197541602433958816244002247222953895780477355379000117199361043709092505899931068719454830120873842895323520902491106087762309035102359717712269856463198469659510229469053063891119615178782526104940732759165984936516717790534292500760020287456349587442352840066405366978765904773385072047826811808651624083475161696235220957494175504768153523371817712946985864086992288931958583591492737371101768592282433129549317325618348807441176882038402840859644811993414685805668630862368835194559477471499254438940337095453778207239447259986717050265073038712091203618049122328660056325299538364564398424970480744360104738945438474955752684749411611760454753585771689811993843713411406824208787307086630359176429770743095278657970090099234720249010877908267148926286193380130534236657049644213343065702562143700261749234981249927597545136721978762155870620774370853144502827306776212957871287132050713442337802529486557218367681628260269672750586240307838956081261119481413920690481521585011835334238269288129814263905803936843675879373994188241930202313018125885664270208839281568148856346684887352679477828750487993206044393859644864202411912111607301801349310529916729691696122487678749118671258942280149533655854570038174456954011233309664694998795965730011146028107531535614497043551096831484307481899405074384261556216053253998511200092049164165433889961693675871324235049948498066916033656263086935279189188621915079551651221950512217081183742419746753311936631045786443808815226484062816038373881536505563648099810302978492296676203842985498498762337116909434615991322873515938740274603471154494553926923524206666634750150067747215827085476134641889420331039442488098341720818828856093482627086050488431721302783198707422134957656742040508132217254742142901856380724467296167018429776538640299972417359112649699783971783482489747806091572279005852421718483094488714845986881411467361749989736849756847593432466010926047185175726089119911828921486059978107358644040562673264109717680511459801272884259895141188959581448584802608539125770454866971273226877485642628343990060760573706285685336069999815253126563946770213367194868551939703711674773190610561078397275002208669478642133154216841107650866233161437283755037177319662793008547009835664148165890331441446182993754265856414720507683750865548077267735650115363910262189318547780538993471897107492935366587235323739327712527540194364625063219506810908729508482042156465564580821685570472551295202850750925640957633155186043909002696247366233449143688164361952796221399794264605754817667579342016528324765939050950551210581929043106820575872511113127494660893604072124022624215133696505579535488802795074032335073211006514291136341445811549465929634804952563792160470610689449221572912521391278668458528833926665406436732081732240313016757315014726416262423350188454105416916411566010767942583201266442444026732400609575524303588310105952309113627732844831495825151280334135541242292656815648751505171582175988586506390018929013009863039096350584662834697048008801928024466325806118010756126254866022283981957642455121190709488843792706456200492026836009237560142875302269416383065505867289173344217534714727405762549197984675415692029153922565290260046151282582553820431171644020164711628811119705756000809655205324807060356734305070361044589049231441374268829890552940466465700290356702115100125994736329567687950421757296892194371993012908398505712203619594660230762419559334449428853653413853100945590366050274347102967402166684176484214484539904690073296417125199133160143316821662095259927382203233653702953334710094826315360125760518952364093384610495332840736194251652979019557247325795320889065210097995842263973081653561131218811486993703370619062268249954160196215849721215451931953351304760866468690324006957309729385418044354011472561222384651346012105311058769735553191024248540688400547919822346842413599184735877083351658440139270341882734460222963129236040891091093903642085264727517651439295850348214031598930777523331831518463062566218925995773621199050713893851059477114840001604958963122264149656477567073518557973498532974330613593972283389714835260877914942408864052184199589951856176460220339122732488493984535938448977702349486134761063770710117323485194711866331960436240960286604299261874791399402973052917697253970141355857498828207792409400031513767290660429326037262038886165509671629410686781557787092922845016633060620211588510539601772277764114802801086985771176128995089683683348536006353020249876196908921531187466039510193050277486447617676193501382615012335357391920390906306500435269784115486240399663434528901340986075268467873192636343280774546599517220993301013134980206319639692512776398735259506544542042244780519084626140212013274905584023366876792507551027604973848688518755918177676678684857044932203416111240812411913539058497654281860723539577695567611878726512694189119493244942653859630089395492274259314747645677980656230297698242413805778506876748922068882721837424340101774322160888854161558483469873234400129673968283752535230409990708571597894506781888156619012921591043874754379991140314038012378462693357494095525816142648522257566519118535028214881680370581826149248167621721961444846396640198925731290093486704487829835338252798622513279890623280442582543135658986714689336568082066136942260764600662481999269367369964807559742448785611859029591989884076644786734093284470706698760022445187772071326425126188907045542309673786018113106865168960216156650064797854953548560277284015022107545141677349532792781742045620958315406460448420702091660012456329135407112636400373826128719454695717164341876542324217540974845138243278150687682880417242226425015821155341723194851866907383999676758403634477707847211743405723085605089522980660148568105552253735925312329680144570477076527077530999406410490395096999942992479858419805139295033603348523740179196532499060159149677805153250678660036421267757767502151706700616429423940790087583572837362315921180965755397820930642852571604532656651129292191965530438909391333303787545493475511250807960866883555834885881138029196393310752948201791492038835514870148424734421357678560278128871259990220072920536174850255592921911941178501011879520185158918251419090364365799649230593974012723212910678136898290181553282892281346720338497031774323720492588942142336078620811773454230918969347626744296135118411256542904387423198555950959264756545310885046552800186753510339883163082720573511114495798095093623455151762740995960417941112104892467385463673053323765012311568404081425384017946272237710918457308115132848503486707931138009760606055432996318662595687330635654989256856475426613571724391086167838992797591836197540980963707709613262552197267232846426709100202712465938522651723751125519156635584629994543505004421957708012450561826488648188913925379196931746064122254054085736803402505549494087600525287915165283617340314804699376476842926846485153074695824781117742243058238394539438562644924685822263047775163012336281264486464889689879925491358091683506479807582249475011550389425313231581845080151788506588841742771432422741318207269769280002895430148888827975670740396410038447511362257446958288327358230995547349348590093321003256625378467181354762772978846252066525108644397345705740372535457152160497989046617531052639116092822447145217989358628649136326013287562868314257409288123025080384973686712034028736510177796061706121568173630677365204620033063391705509726713724685603442710621028061573777349421203955717079108496908239642251867473816269262868116356498173750921387609852397582646021930444140907518549968313242368144163865414131609439748628166737708908917326172363101252105972229855044990320219838596884914507814096431047947588325065853263434665246894967465292446686007146740159993391467350129344403517884955744134449446203228152172976544150062865289073793082638796207612946897559897140281519439960520435127584999035224581290340176458719944209254871440427880348170752533663795510126412875547492963844979336105999069006396940902028712034557598627704846795859840338643722227033627141602003303939978606788636691475912498786074790268874341325376823742027425463127546326027992062791819763587331124105133261450093414971694934430364143635545417978547378673804955036642204015128051360082568503707323304698055373346125459031111331407010197118081928056370546244823659443151230357391962770996608710632734612880850785469340909893424854439397990995249760423676941433563295060293338504927693548695904885999492505283516109716420762498311175531528392411830653979607798760842398823181989625255009737763689926110061382824290367208964792891645680157336079927544906698034715364029584117751522848803632804327219987733214467001275512482583418256358014766917607968768092739777341165210558055134722589363127115943969206965898097050708518966820463634130052413012225972490315465250576735369074606608468774342425478528790015043822359007589498933122995026088708190918401430806321125592313110190867436529093095733384676660984797174315502241743861544191942943482383440991638193239275457223398743449937623189334826645336611976411456208609331341902713287923051895940478644294403692640988298867403246091114116576343697107060373777945101362559812126293069945122956085486390876429809289747013037756678246178454857419075637562550147296460509438485275631156376340078807381366970458209837738293158213953859517948618100364166679379672042539567943829063657524926602154240186510494549417231113471284516452092217733912114052536067831669779864705965780166535477756867600656405593281925713979082428963142372251117474027281799417682237109055948685137559278917245990270406744497190504501957111433818327184159544217570357090691454023832940756817366881666415216882952328845947684464757328187780818040856527357262789428126636964906196083480273448609482420397256428074265725668401603489220840032071682034020628088795300596093564744018510340800115907794970910970113006825457046970683322245645168230824252910096066517530013416072443373931308805444389019662452379149449881087376619852345701450926261590036354659419128225960483791947371591227862997962728715566734949594398319453665900405719429571618385836630121472497971665420088964346230430432795755893611370237295324118519043788319585524620840736070316875654779615588847531373218509540842208865046462381117652605067891526142584969049401087006834611244821275914397448623955621508104981397771221927304903541178572301903060909944046279596302478683157747212091643456430866184544191641778181729122618787927777373049015962362764105582885705848032017489407335271489658822238344415327155267273443724197491126872157984749090326345736399121054750156952890038703009647515273381736570930373921131434972782912934788418728768306793332921477616532763725688741177507705916123674876327183476818310237246669615582468034867616701372449794818171754310429079585792980588229880134549372649399006890017029314334830929677026576990595726733848265681510504286208719670175801321567451311017544394149513598018077985792731029712144629586428376466764636858174237652714709746678034617227659546234637846170414488804734381722716780420073530424150170587046965016266015954152634938599708192836400501908078925585208868019068873557419722861654271937163363012841859403630342512043888452597984036540902015502047863252926746701769411653811391254714053403377937218833800678711751889723579500903345254427398436853809968891958244002987265874498808378008598290119374135868761169730528678726166703843705471718538231667732739227672870925494273644764444500598912210433193190568299066269288873501395142743925633377740957714575926031014504110169814665248203351536268533550995398869442381688552806245958407264432172092009441486491837420344028553811831748313115401692780774528909937229512223178888373372041581356137052877351382917238680509646917507439140176833364180888012641140813063871631564670915406099956181463358973279512615260532687676398087563129995163032586118111499570889405446097669542292164665359266336195135507363398997407156021880322952894785692500252799451397082374941568826531587498485674118891731738310859931306339764382320511860251133585345367349052823464351812446963270525348984568616496195644433370739495202821745447452549070749250104842251566589893069762711430661185282133614987407444368069640660693895210909442661972913979784320904012631360024055617791326481853834280016737742324954170629548687485696884629205450563770949854343222330826225736839080052207242218794785400964954505656794704514834405512580959266409014275715318229426108816971511703771363630672138588846281037655024662235491053863646964287542176427334763482218499096775717496015357077117781417561275204475501802534040966632474944507457000043578315177532627228472647422905124326389107827141731202832741694550660441533252063607915162786133289229181836078576045166903979504467797484038109915580706460814590733669495140224743211373281994768109731200820101463227603425262293984252448146127608577075935799775117032867271599651176674467895607348275981637857343576008815101628880514410074865594485371066577234631515040933279216635300616492053394595571649736685060242748572736864894722715727285242158251684744692168354981625580840901147731272049843814431940297750961609094032827384974278603893372376895721495146742388614777676453677740832347956428267745980482409572288082194395392618420131179758255442458001194620765394240399030732695559849952101283583419265756381200776441134843263878359064301406661192006507316788124228241845281040547832318318579777795518515506345620834737017256677605021885638079074827168542099258651430021447126557915197717951801595802463696434453211808394126561514270264394802148031661528404701516427604759802141881110851735849133780356654812670501988314835561945102045337025791636017134548787023349636115018398574701328152201203877643176199010955354499020766598323816935546107359509216455733482930732187854302956415954175235091519113399553603536225950052372168899006801308283579019386072379379604395830830306348413456344055655750395823575572559190410724469055565893709712452198570474043599451389940943751286389810794336413322947857557732689211614998948842074578494643850087071721745387133776488512507815550022985049966874867167407098103908366061909315303629599793130521668370030147383949406177696693222488393955734093444810022857527392597804877172296784802540457793673160559349437492358473789726264544515657978873998996849892116922306311611217187691131522413324106235823543744946342866245341056202214510125513984272769230550333359506085075588664691919356491294473738687675591305490727624723541736622941282427108118401562023143178522271350950379629266140383862715299902297804934420099170513590944390342172090659326333705105090744224507971545782431262496809010190793951219094443664687748527892443767831212040384429882487509422675444022100592903021430396600987926918851650926353681485179903997898554913143726830198084444937799802696544032491200487269402894343898833308553784294940367434433378663703933977748164228260886697996891661662240790833775869393758878268311538547195798154677139939671302293978558449212164421667992372493076049610602941261235315919219761454674284175517277905415312473157315323089168851708663596618311060543492993907846342904759444664596474931951587945085669332897515734919951662981874638789596633056788388836890994351629157023716902320497391315305008431558795517047544214118734887095677457233734628008080687272897889567007460326377550741394757780151445919536490908941652514234939797664685585552158271639873518570454354707731023343617842934831015165674326999270366409192664260208959712931047569833822526986717753237975076684110580519814202028974818450396095577737636643774181596304602960951983426170157804146828487185512928857539346806480117202750212619769359629070008840764838173595825271923374080469936983265681281795066956523702880330118006742387808596830109238994626591496909471446319927695833930185900509259854994714243776921814511542460756000033359089775585216971074769641700913929425746148627821887555071454805677960835093711138428798599916894287754318271167695621200493973850366057008665462493740630221383194434448198676332248682087884566924177245925613505616860700076915684726619279049102003460538596014936715108355547306570054689623590046084668683276642942180293904459676538133746848187529368896571758416757820000339529276054271412071098945462237077114797718102442786713470088519454522636776633786837901268342060400823199806490519704748445916441315513480918681777019331020553737284730032295926929830904874443408750166779580565354257480884982625293358959452331594418488650491812117762669873686168590685934663025417841780971757769545353910153411575412846475091195923847142865504702910132633263486027985441089195135204591650212883415574062940642795303177859022693610605799057723258421143104135453928626286895904165609237001245241594140443699376298483540766733278771823985310255359052660659008070864194417766363969453830919101917818641549777692316937205447630974012804193433551714307844131284515177277626594885066480881077076409514284127787075916533224503272235367670207326368459495945841616195623513963155813171613478867087041313287344262161537429146212369418635328425303907826311679273299017614237324185522517942641336655245932753230462734929098562605157983848834759466444486992537500487942386968979776073502667202343548622431854176863885998142813804000273725497920673500364401544022067983999624853689736038396464392014001969554602301909617548383009468201546619166310441032218365061955840711827678369339105848024751912084671290832459356252525288647313968734053198986460134528207232292862026263971867023590404270609202039296705000701966058530928676943672545533647431590553153369524352114612899550462720924716405802651133352862198296645515091391317632496180101585546563711809305928815922281660048649940272117570942248016202731130893380944962094038751889434871662226983832411753436480841035476537916307378937187226395662151650783389699863938519910669016379506379569202442243404341998811189594551942694938424815036668318107227971449099761282887828062696739943552836466063036522487723765938795402069979203860329227563779697924395693840963314835693464552453907581605348995989377945357001865625172407684001722826093796496035485719460076746948184143420938517377347884336784210379931810116256142587894389603708353552682520184654132321913239619944690424690767718403612626280068474277793259858088266072725118834674993291326291879082743203670406545127765796303335909506318134353823052011728072630315235207150437798385993634724912554797071618142383571899056179411270096751801311510213162767023665277962390673504666730397683128359882324109368226472859672152391248180445335527159435670576560001686188505488552654164927420700644149049827223896627083356951246737160520125881498515631241183139415420764667290127228693195175510056011748680950728616374234618096538471357525370278947080403019682674936460347902579223047324002959330611844184984233463809641565827578708660290302382681765711081818018141566589711253414353281104091704304462686694910518751931126890171056430681400562604261749098434341515298410587349496859237849093436982763275528357379170241195326026028399791510501585777679969269060008835767611529744136650686683598377060059285604905606293715031129028597166979374237578678594673169902862063902772435533334246883965691626953516602924460813455948743456652328030351573157561506882614843772684082907965494899582542643114844118922200803862536383820337100554245713032857098307468394072373837039803706634839285553147930241269410377935291479464402573971632143869036801840571154088951317537983096190456856464548975414483209320454276052618392972041860729324714482351722634794751383796953734056144921319303640371650547798781506983979077466530040002651044821512029106261257220001804839545925487497155518114684667767936755941025359218038297054985438942732976282860648594769139710929544846979996721263279310117851727480660226386497858971018166495221339682681655381987408830080463510150119821559571096723510924526776280511778914484860729108675526266886165446729626225619838334624583209478339351078426075604198160748327077998960887723337591490675853493486257996138066978099665090952438730745126746185739570339379826506360983407873344626566820161195396532668759063485162344227973913358437962670946367635219255028738624133302833982915388209418537555790240304512636824838733573849947667864513763764828360175027707763550218386749313210038339044678304410040150132565478257506787293029420980467026069909442534131453092962922836852357821234223602328107617166679039228166137499802653064234838852446601852536269346408008442472638112879533559213192466330875976393635487191592552176859557984936859982836461875732157765953103887508611354206123980716245278814381210304944864951823176591366506238468130393783484536827226318148482833032046816801160083003075374378348191516140998957769809870828860225165408366861316197446158904658973765778921431686334658855269171670785608018641629754631162631314319624918381363573962306564135086391561410933526414147972332982242266571958186287623719488282529997251028564308775705913650937225039876615641902159908699052081824111580049545926497039299067152171819418446680512239910847554391785723702831430036905175317931584329229944308370521263941274333042959192571079977544357562285746494629723127946889797011254493580934941980871025244342827454966583341420698425847701456934007445700792098325472981902882641853810850886015594951545911002397066584251164665684971825818831333702322235452840229962318595803440107334598400214309327393319336903703911740901476533239760278019960470555485063689817929705898454143038934368111225214845812127692633667296927692914052418842901427468766015210538107143980601372541827649738760318453768245394947391740682357955848137419991362340060967148843725482086225311054576083231993476079174191815519523890898432714369215298436763818479479946781795449727130298434676132361130835329770347883029007647162960390376201919031730810781310565528155821048425082167065707697648719310799388191548305987502364211053842192516954591506128837219709452438141912673041213078541411830386479182631464315731241569818919268661077196947354106981778639325928116676746051425466809692514657585101381089454727784171505262967172456984436659896764950376677809417976424714102248470956905000076376224088579316778712068079094565784748550628987934279379315110828257578522780021343978617974839906336033639105104971721137859225248722171576055696936834925974537248148540328494028507527986703652025072367367640916832193365568236831594053730915438503330699254598161693435290135577829643226785388103465330305527338642446849521105112142311629605910925114686569357476546563016842927891545757124459490965004700668669889729977611272706630683318471250207051141702405387540607941364340912194218700429197265855312628783333792474467905838083003138777637005147430244875881256409045836362595929565027500299799487752111113880393772263226148051980869844107348731666998441960941692539283832042746780559259361309398444604207697607953584031001105357557012848942163138133838062790400143052554318526622242446405551168210480244683071492305547299362256687725971262209145413064926260647826058899386865321912057233508504643749809393534926910388122109156081274623632745151063164317149736788064224769653113036148750127528223143352199879357280928424855107130753154974830722978230361499207104863127866408800120201399539764462529421120149486550824034381766402536233159497708845003902751404255914513913297466660897814811707725651280957747504826997705337915712376135312110631287746614604308713727283579694486199119098748918946466444127682259768175595375002264339037553699734690338932204116786007591545572185824703878136260270176354724174820385428859730616832754198043078357787489911522386494008704330223253912230932638747123190964697694970677111729327749243113179924773050839288392097699776549871086189496053016596793478805850010152746417370432676601796315217583367303570182200297406637810774334664060083474830234687335709668940890600404850403554667595864058786086674768668261689349942732751063867518181551545719150322657094587813869442313884220316942965936752507059896487854508528395688269898174694743886281356383581310406842868373903374598149472385917283919733564938181535762143161629232207808709348028153041815071247805237639393387963421401682299295917777329738962034680892690662885373911626796183731215133728105057400547635628423364032369584655501702373036554082759837455324426610084348711239990327743409988086396997646839163464954082962286086643742781500446648754098812813808097177722460788383457554719295014688750120552031139766283859632573477741930539159391013188690590462767344596129374211927447239063357308848662221271013135115801502996767269535372214620730967099635105646850830506672797635002648873042314520514166546519958232665904850813719351452924423977660550621898832153068465706134739282986426147205274498281298889356263722599428420234782109161745696057795280324601292138045384560072461242176517887795789565441052723917501847797078485113979607977154366843335403530565658659184808357330671649730458389063271106077963170544401743690788044415011253256459689699565116136047847685925442383037268142955016636728841289729186960812921159118530896808584024729406548648082587507418154648023170883433269111599857940581936747621214238477653707221908700187486586778281475928179923890019961843329896126012354855641612523753782213032116158218762141683371819198348796323176584025035166013870135661847396727619281499369319912185567086482272193035138638969713099135003198759905706597211130449837870394939505134885080550728861513525641838259093943320059223187093969738116517486651464512924719015087305465256941176635325414293278425440410026552721093289327064194652435819781685733362443327460320056880521923228473169270786272265378095979806928126757103210468512870866346119329849929080140810210162478562454546750107761625960487737237964239100398169279425796478685792582073704169670492965436761825976561501624553142308132743465408636825820044339921171829233061648183589025540035253480288822754169775953698523368436220025483072507714290440783453765724644205103849188478682054602476996711831188986585595496070211924766391579323226660206963283328268953365169005165439120784624882185579523988601767326930451706032970608378073084582009268706380464627297025714864886355076692399652311234501397865285721260574549193832700086638051140518447542975966260868796495245500228716244406299356728213073171204389136779347934874907394841381282985697853578999228190767619581631259168439536052544561539546789131251344013654432817155649630268827129916793685878798317487370431174342102487896013110070915450296529457173966324023029496078627627554371123654761508170444111738799794882457250695919198464808477994930015791905964764708646452493535719847817990472692908122226598669592169234444800932261861648948882212929130865298926880820147258301754899677467578136771225622973536997030383021970261645985528722631738444766573483015830053761355496727214824570686287673439997729652066264141405811308898975306393077700238174476122337486087620094317797907314883860561206470065787569113059328539264602115953966489350964048495055977896068975958900985796432501661074142319387240066514589363184147118859780127063697942590025798480837245651949950064373881875449302255356715146184090635381454010973247514109133243738559637294719267169196343092216211674292155055521000628331753586992249171145947677148962219205286088551652474575110093158283718765666819496725640770515255986531369227034668768923309816331451976011742148799991074199143599317211387536869880240157032650954260492812362964160607180928966588437150217599845872887008568239559408329163982819228858576229044671932232679789124595595729405536514652712427984037393437542330805685951912219413181710040059176299083476750979391325191382561165480255326130420130686401568173881329623604429730552889379106551207383421539264502614717931111440522454173944003893531187228057940159751367303857147048467609836111911135098825747141284215446653409004356601887903235027014094332002160990548040739657147966661558746257211181943655198374324622995817011980150176409433323015613509368046073418753884914319450546511126744956914987984180700124011680508789679891994746343184900961709640008325266549793555092468798733219028901660535939501959730904747682679672403846410849449153979791910445686607695470599313963191889416600981278677490926544196080895996411242514864791841264067064356601058154234599648199674835167277265365868007615658051845032946329956936497308184212626721371689358963179095983653863481168054668364133374432133621840632184893995795196273355172186271742165986402284622527394020980685463935673809091586862633432655577336800212385043516068667479604707650101817456137480840950820107916460877243207659777104356810513047219397735207140722682126121387715162516706865682717833186179918337603827377790748669252640745574131709565059206368933341012037639433538507269932128223994991216603932697750379699492379824107277193701620906458417363593338351026175520573109606943494407230247299636354473560901667692726132784690144644817329374319377320410198841185645085776092022552544764291837039456498681853332693368727174454672945796394083411248105361386972665254505482632279509473094631438396442200944522084895824169354960773674572868577052046468538378284248664950970657002028343090723516385699911210642341953499469337922918755631693169769464459395997279074998038858956908665735521917903195512136448697914320850407450866518566303560734716008440399460824804176593513452036375352704571613407429805396582047522651313242522709311953463445619255366104172849093639633342618284962868688397636339762918436502467438234170101929680064471127855270585553193280247929405666095780485660310407873321751633864941841495653652149547903830498657262985582641991632230909033140171670413800246343824809850497448454711969719538310787520584888002021070451224584842743557069435012141012195991471145013619935462872440081942321251052613152683425911842553480292685512566090030000081657697249387048946809683183662161347658748510774213856219743460017519816684874254094173419169709899997500426420745718355747831530802704745993049825644198084957641540528941887834097277365626745353641068432464625812298144836838139213283876361622987012267226764324333199694483709756598975333692316513221699934756282116166525824185475043466964832812267047435925809020449188116981237039157220727648217599803253566479794459505449575538232639727692647479921124835092690018356536351454724213593900845892369671468769979047490169675084257977553668854946658354406102214374319510647126228933054834032442475108539302678627390219595508985224873521779207073483137402066697896594076893132668163517564184517007713945321541901581476156761081727242878873977979611915340687234113752977838371583231543761604164122593539576396184101674917671700704183165601177534796360925024422156916686366251478405729166740059344408446180202180104697701196285960372360490018830455816748835983421695929811622512809550113257062723827171530319105931629511010313699398958639784785673610846051831328534338456393627137854209947455603823982793528849339467518844627704080650170434939295272628683523063186301670331754203378146981560864899623329961126381412847959074339340876260797600181927144385734022584275184509966042109696433387810360329529803978445300726685703622843355160485216617691026112062643269286235002901642981390780567956721327762513112030911583392805538152281309556163348667706831370245220892951817150139170074696778973632991536063900328663385626961965581717254994122158404448211442435223845351952475751440488838258919690782405158169474814652294502406565640698949808285922611198010450016970506117137452348932822975484325418230861804899472283908272915448744575457767148043308503628970091170736870721195860691219074481807529430144645962237351682567573996153880169617169307143963317626025962204311111547459772609411802036784898292319242574513005822036058017093002860546696499532450171759550513857175810826393796320581693385435550671191697511105324282398274397618588235935493986674543838865273249482455317601236224163102150439396281629721563443680783187087057127204735058216983288383275304006771124715361514899760212539008231665749973609509995940889862170551863384981493527705066034238871670382570271775697033558646843464227239979433240837910763047072537980049904513868456935130922523037285143527012543722403688199572466538678317590730208681827631109608138200737949267319793721760021946814058241189176678871259822315231287916769916577827901203698116796289229568920178911614795426028978222588176055323793753037337035951026494608625841936360571165371279596945809421327000377682836249569604704014084088840476677852162275729751506961291820454019827049345706343720415309776627763568722462365946883500540861832215153115119429805017459583991948291287948435147510991638973768581403516708224663372884423976465980449629283515821535132616726486413280345735195297588914514644522486828212237799954477698798420439590187840335906133325390286568262042725577865391147079177107519485145902105132010614156996044374007342004043906888524918050056370068823857717381952028057831153350259824970508669310080694345483406082144661592168846875491310852116527634047247607192933893565781850882756044451767000845834671704216014349501350448435263546958327422712989757412584354540485070413836860924058787031143796627977326875200663584683196172081004736066432350281569322619199722741414125898586244981739389815162399834126351572502726800008835793281865086127292777512401788952269952899521664745133548999340432124762710853195343921083392707026428747899081744139822156191458087930358341337421010263227712587428587393350902787376773944565331526386765682754548589972575636481516134593611645335302521558172914324368432357663769344554381835959836558474976117961016187923920792502706805541675027323046514120510141882482030651002336537431868356745353356355509010836847376665418658777016665334847823968896338268178993791500084526885460933895695923019954030913322087633821188759837299458583168974871594668971754268529271962138682601502067242677697069941375434367718440128233160323192556242704991288937319362079105634085193357209885057513893321799719207227981893019644034810496810916839455905670922115773625802673313358949372298343563893366531152314190748549704786257901491805494907022842690773800640180390949616635690997529056861418510434811105392910721224305283836469957765920820892571793749380675238740862292943408503933040240023731970445591771358955694460853244287211769339380881862387011871604257404250726278219288107073699484542124449125477894544461041300696144591298364735259765062833310516680081471484706062551951713667665124420473265933148945153289190964503985142058396156716678965956938700253343401940591519700659467060035936986053611789071724845248858604019635583391791027926801848453623923482142537488286430045557834349728374193020915455344152299104477987076956936274635840880922937335416219616442827224603880938835696273102954715646865194367229920706080573989817977206428705061355693014639065163471470382477580336415328005415688386607991563384515025092731921081002937044412123725942884686303185972404912162038440514049146300558078214968855134742176291589917088957633877290194157167826503286134983140184630313784584672135855726775803727935629475135638197407504585698720336975120501809836820207587346599054176813402757665915498177801567858482451064458039599422644976380400509038027952345477026220798139026520141736169566316954067995567328195620626741418515430296526483029046366388814393801562824019008085151090667630436150021974012969288398788195889201109982167360655141881918952154636748327254522621296586763591017347139122284187098534002473693747993369213193475494618727699352608440232900787350812590819411123817814838733271906015108764635179296083417586919295872798207422329847651758279828534120744478347340685858202730122308156010675600122492788495823717976097747399987486079137902877113892354321220057813160044824768810431670754442523444468963712311060283185655541907012333531006083883799047862388276315967623430738877214984565350078227228629814406036489544799652849535616962007331478884496056995483206527699499513696744985790589307022900307886712053719812969449624800533983866720001944615735774111092870608057027025995668538317329923767215821006512574139249479612036456709801938446812835553277342372366216274890886008957914918215861755305432208222923785438215313128722313901614463290657628964637426611855637821644826993660070312007689397650430266440255081807362507831756015445547696998150716604373965735145210677730261586543486341379497459997198050764477290113954052898579603499210367448743610321216961635421883089001291645907617153686545704603286110066558590520948462169422740251797669192996061481465122058588172333906675239732515169369066977478719655608319304688343887754627630985226279945052928908848426086575857209854320759411933807569863431458197420147707882890564860189020513935830349147040320562024764892797523727717681177783892586734092235666751775466059361763395310148306840986654262243585537062872373679100268753555456565000226010438081074926195612183488268399592867310448397228906438027028794324717313728044931041002453270636715201598957580194192699967190108744790027879269737537871706081764384605597315543792425733134568936531433997166972598737787337677490156072462562596804654278596201439945564296306736458780208062146259606199145999079853235823035295350410395523829689861786529875730500915609938924152268359018306276205564491159646524836938916700464861946620148684176606620253585265054425816811120770381528513115310967642159741827280897667111809170783190892325189716776124394769575539680897089276431194091236276418353795035754087590100191843822966910568310394791940889149349145636316176124185618825938892443100288376161836512922376480586497130286609218940436276849266215509653877483369446854532585223487644548158279712967959065865939418549439458909567854476701939204355121975744380706079601309866117828791545145937731293988681712006368710772090493092051865598211875230209350004625313893572173682461756483491392337504198507062907151289069177006527757424768889777245110340631037490563292383140028957297269920000936709515695853262577726917811779908967900003686383897107380959686962949003068144962356078632860788439729297636210674867674156418130058989360681961431290253752789234098825490351575920913445971743313466186728523822482826171724235446834361208125396154182689309869544736950312516455988600565517869106920021679556623590329780103910322684632117801369236126045714498058107140078045497614123149086331966842080212635856130745523053374392649265065709048615644724188642938146245595074135881334076101719463750403343660801202521724267497887869631436595948571511060578865211447179451412657591116125346942994703864264953011783973951389340540842321312083645386445396927997100662455358254356223505594600926008833877809158351407488631935452635947093748776647516883173640868775305576964382601420263574903158573445665713752539847185229462677550319696315611964265393796207155202469893927342195289592778232162292805349888991314746882522222392146417291408268611599785754576554201204569204170286619427327786504201477198897914590708910168104956073072316303384580834708293936389461151006707562776346547741275488201701405918624791769299434346740048239291845639836010954596757118477756067244227070699513444975870791397168810912128797201633429840282860541970656236267981224973307587398293888382962442831966185445420953349592070367586269231425354173184210993641770338167511939989300181531973118006247134571404124851815381739946155511899681523922310473724902126578713822913474597585649866591017218886185821122241757339451713950663715128167243506501927669421370387605950611958808965658805898435392430067618084395166285289910016059804182342562866360467623945308854998306828495716799307149705420088727486675841790661720712502979558525496162874097073108734124031869732336265088517238402047313059353714240680978366633236659480328848774723058099377330616246973628488799195881640678915751647893966215519659444791829178065223908992488108735908933688148008290441006268510621158285677634587647179922630304353803316344376815339079482840336016806043740954571176122640551305017180369624642644043468925389206908557148394717018557947995219639709476138316217638831416157766986024657574183535756287428467405340963062048403865987415286806376238444244353179342720539161605934999455628013655125570402432142984529738701387844125191569930984785886048141213714201119635338190828750366612402477508376377549081182214597249551825926592488014807881499992282022566622590717108238660862325354117056309792194872716906954414889110535496157111704627453016717188382949638145634338723864022601834726745860376155508438143930741397621633462687228816113724108235906780646020269132817364053107630851895028550965620785980117483175448326466389123491538266619078651748004650809084107509108147452391696967116550311066556000158992015783940413857515527472621335815653386713101114960930024872368799341193584444304663466728739665524836116303416272350264586855481476712769063603364981893020484031986918160410036951411099692345733861583907230955156444419925470853389198284375183295382283053856951125083588051221091569316632181528818966840844005148840369605344687960365531612033360283759256218902784284042828068971936155928549897494463347058074767988408885859610789101734683233021778901064776499859252774476499941033214253239053780374561229522438106187847248397801034036238928825898557562707764736127280303138361670097613567358594024065193289195754909108651456393611636882457457507919307523128152550516792594016991283799381651372588373191161194062687338183314923398591709918134801730275928210477885111109891469895472551103702648574852894495226045681393685274773076873592004495394399214479008103529057152728890018484760241963092923342235820280003947112798418046175574728210738858847246940659030566535160341379851446541408876131692170139838083677543977728523387075002232797033068708410914533035709223068166921025366218047439374334358727231867641882929141852229996269650847428037555864769463259978118525706087854044123480789285849892630225958423309480406943296617623292361750976489069243714897920102706292435041671643657434559718957866899529385341781670496889617641008839564993951776869709606640429035880464404081946756559147258223485625945165078516115177642484032322447315133081886389577477155888210427336525930981875613432716761801095666984102613543413258228360575180760625701192789183561756025799474242951726298910175699217733201713222017377584926192630091681399131880101145947829870029511491346720713575466700103620322223734333373796242169351095422698234195156726447023459312758731438610903637388239581901463023451018033127086686507209267382464905062891810812465941926193631587399321762240847523139826625682048531933905951349253530384692577789891998231887312361577485425132844842258460531164822181348069519549245642556624433920005865066022789266362103722638469325687135513817010761842418738616167528244549228246419574172882639018033492825424057632711334374423351383506434407091424459163873819427933491540999011786909629789348642760755540513238790719503849544317997404310834374626591596691758567824549524166444129172962643986751382271648230183154361281962451345699940025253217920409925364510990489070741192276362287457175580610420798188657721119739191982497205479824732237333808506844829560923596092550874328758199868550456144920689860309356041399280879088169563988940072433492004278205340195950058851115480796568922376148549740092610530857219096857771363443576819004292883900378465911664972389883136191474552992967267743055047662960422169163071062673193854778177770471991088077204588673611893714265298329240977959465280842740406822542974692920655819307983530172895980496663919251190947871031913414054393504506476162370391221563508403328164738248261474684229405970061208993116485166883395238683001564390675876600162116906386821101839622974898846254338241179983721750458747506604564717702599563152261699839404953885783181317020024260414743983759402944008800721307620845858921542353851426702483728653298586531778263203744562391186189171462871050712444711793490231460466465917945636692199317183911077097861631063144403998931027564049040342821995823228179621396817794004317110103281727831117273130689880702315760794921933763428940318637155598688748500972438014060285013921245265420834006180117352273939771733641713885801560635021563367262891766068674600993015374750912158753888641724256670876522746655668591881631242673135724945767333188126429923613436103427586079042230354423012019291709396724379447040596164077648706886634726041048115553408459741471098188980310166216960986436379285990867556243666107808352926267784446797414092112324867677045713808593971655030391489676719109029049958981091620571606223594240524991872408986521231311821651585151023992114493537879789082205352333024369018734554344135615510216028504481725665070424421357482788431725086651455808483902328451116986690620020913528281882960575988822694863786301400885509954726610348972964891039146213194037918922849248847138821458115329132172261471397629570639848291014364840748089835424596316935397334201522907587801325377629530529155508512928151525548518809644016819719118835492981907163528688288095639246074929060802051442108653653771548759332313584928674434773616103769593496153802914761884465700724906907021795788975384993888500443891069631690265645355551159839621844719957530392994971984155045842855008484107488500550827893652353209668897762095052865509668069740619894057309261109979885598748518241355154052884052475517974157487014635699266635692018385809634299222076896821784240222359247825099502608307270050243389026616685037532635242768982536468537096269568755600583115248822045391826701198018218630251479799219025577192812725985728423942441813998912401880288658805791838680852536738599310967703090518211627998775640818537265742452532440038578311886325261518059864898731823769957801380073129373681632021854455515129472704107229027069909674927423101968427426823679266857253481153943429190778968618138755265785053423408994804068902204053404115733326083988724535989690973150309019367721547687006930081966883760334035965316308573663346752972567733414811875418560472864800214557745712388893070780994621021886913018234774600260154388997230078489974291588632272889568307849778982896766991991178861744010005535562402936221384957821273078757136173793374661259070954715768600948548009827079528384405621783528539249748824503785336575836571598792095899569742146754856627265734165789642853385459913000922895031626597593047871916206856192845763445401205914358960869627951801355116481624185306949097659696880274309732966337620757153085754383728153246517307055345413194285268141211319632726418431334099086598038560457608880454203713523635291570600361001836530406068421334059501631808415689587624195257316474229238252749945396899478113883464434358018255146214152400089794598524154318018192309871401721342583022131885404646229050678913365192660949475888252277215315727952434154457353637879576339303972301869617938453604872857191590857629110720604144813244982894707758763798425590323903094838960934341713507792885358452956964956189906208934961683784925247377752353181769145216925546379474879465348020944916091482072760503843879914767850289869206949471573294671977781651187599287523195483206214243713468167817068388654676525558719274122759225087953292252317968666388932948611166026007646771075765745218077192035225049595004444392822044735951391596316772189066544982857525435050266965143889401458221853357765762769173264296892979028122167440592616027206062828147249846392197763620951465955709782077178753727230317580539322613771995811789841171188588824514938794435884303429054509062266877541428293708092380211637567922506627509508546661769344946539519597277808150783356895978897702887615690113228250429933018501078002778153454236303647804299147957454241103604563347313130490348863803986372516192065842046298518923720229697854453963243254757190509679925373076305175866734192055975170838191598174938044309893551730013477395658796212124691944676638954877666070517046454990057675341241482533633245149955434306811585909660384309511198060022475319118680703238060004392726243761991382805514504972365777365570466762560345430246327729979032125349800408659594057182108259109955577061087172418580964547593035740375913359528941263086174909055033594101544455054651228654669474840458708488435267971779127206459399738266360951211903329991086848501884692609424526023541732394483420524295875930088915037136167706950675757479544661120637411083997433485696706375665546900546295396993482477358713292357964063227928560086952859961518924249892778927399441533460457933138650439629467335743100765089494970568810451309711486819996587288311699159003800618751807404666668331581944452546565354052407800034030527113242835526544881204435519028987147537520489168276175453440123680115936475951733987788148068190900850999353013927066773256518722385031601547575888483211381727691794579590038061768588837394374331209701332092118422473466085874886775046664127141110384285583629230855945193938435094446581818502825733716327430435744374793911621781905690353645143404342705445575338367708627866083544125620912105513836421995210686868170550406805042585296468062707527903360936364679484991836351464415774032886535086825334795392316999168724222627861043094903403029224983936317037695195603457950972135558871935176845725552338583755235736180222617291217783044066862933885412105969125550072463939385658077138547499111385442307583730724547487970816352964105837319282330650014450836518736642038954390544047963263613984872611019500444323701584250827813187411408737039096551094486508169067724252741410075221510717124748789419814282350670595100439854996037940100542675202357431517197914099836981627697529677814463898364760800938357530109956147407419097198097855304127601691773409527694904667241439796513536064663094227688645619963180367679977521050605963607670289803459946353939980836304577840653426617032522197074575654587769751363488354778998550348845231993507967212756415179954000702836791261839111518972246114960143648242239470022727955599501644170227239860096677828772458167837059876444351415290813095920070547807113143324287628226754050830779911734328912305399560881262791192119947245123622540541016880298266124516274509191963268099655852921279778725197233448666075972303986536334748972074091921815996057225660938419462407844247047335880318313615280962263858142554750162498073584377532675397806914519177638865407351321501601903316488360751874693967290446619849352575220329531731072219414240543728679810907544457212361180040650077991955369627144729302216798318666164395526978076288465890014477836087000839595325333526724652118336530341619363626437829094107501290729055338584384174403900637790145510377201292331053754402486647434082910148451025477286240634419565691454893379066163711076238689354122746683536437465744564586943681976055310425005561839949408033663667011996346168191060095767961494700171704082678228323662722076971611084545264285983623444540138833473478801629534214154697034111102730350233047529845726420284226913315550456173248065859581347435721453231774308909884160183401838104289946877899196104959529103247484960085170563208933759550104630090778788356495237932336417337390153597931499485522494758047220491134937779809508107388674055728523323368789294773715391896556301517709212528633815671304176679653728142250256992548569026601875548451635835244702475990711817921370653643995503782155783173967599448658347156512443805470739352476309466326655122472456908848416119389997333844532971379945963135081168329766894391130446548968519752157909285545336593341277514428589012107118517191227370443912783028330788834990318940600453385596999835033598469487860954381375390463229071501875615149850946613583591419521945453571724770041472043473143129688666617065798505110692228191993605090187491176943219509295355893640285811280084535205407633415228243720452387187021954275269199185202040692883643239976035519082772687605489130066704203899538456233616685168664542832629139783168592951226549682770574407151793598629596302558871377190886786510656621057010202283414294821432907569540427546093680678976862099857420682949591600082616196407613227776270432454086516241577461162180023522042045709818597098525127861319457875191956375242771359346593483063660691619795185652770337577229225457857101617720245224126813158819311422118757687415240503292324570593849669710697002362589895196665186271362847832451780842116756339671319594373143967481258637717332584903019699150050002555777645980835327999272514236317737357678067309746135124861025208374036632522021926703841416278492269556274336010713636552779770007736304173110259345398704785130929839081313268404343747881829184086278459087625042721986537168190359186155332833503427268578166999525955923530984963059305260920099214363994239831050378584888919192752794842797854884725975776210912078373218556896509942229676281528871659181615045872427440050398787805692148897541565023687883962536375982247563092190305439631006336090932469587903433274505824360811129662328467778207041703298467866174876030391258751976092354196141163771443442766895026590501389139084962999886505707791923703126427542639326680849778676145966332708554197022577514926492575087426457114634594045980043538782798729269939549580163016315041166778642455665453246141556957702589381683344916535664509573380939752181985347781580088354654375688079917017926547477730133399744659829529614579525089085936565374785050958600232967810186590950284980241729424900208641660592272655711681702905446560812304759074971303731814688652790223637072305154030669887594498182770147124406691778724239434756693138651553131176139566500670910172410358561968073318711853092117282178596501950392186000500537742811399008694963574873230220224663894419204964199404053613135450800991386855882903487523284127412003584743774123239386592990285890116051956771438700683516816727835328756404973697471079080321546432423357045596024941821586686126604898275808705451260589529111830032413151191007739207894561892158329154059808185851441807465973934357108794234226153831583815700702619531270240269539392622774522459239709439417744606422465329473846823084723381321657079512209747847536771367752970951693179084310785077512939282913617370688637444713116762437407066535743233859130164330606840683097987868077823227336052961021820595949611960813412659492460825672556645094580399330361056312934455248630611513073267663186763795967206295732356097217986429050467382802245916671670826554439597515087788664242842250810390665093379194739706274689207368917439205374477597535933329732633495794854634039482633170398344680969583109898815520931807995656730759472953185564464682529232133782853999982321955916291898727636701207532737032007311440690775179347430896451929992146896197869534712544058573797158351324859767852929661288679066907180847545318825421075979087767125986240492704363713171458692022013475715773280900804228949990954871444784047942535043776924717171158210441970439438457470902721537655260964952572349725750333712302273032000938078123139779824599199822776332096751075537551960314668364340753110777495561415078026368779422352567080237498237141464342962309563774481531722783629108923059245078676248923411320332137658913020515079044299696667592388241056318166098789283116547538931380740128128767896625905367785504434048286447505876981184431496756597647954251607093700895621910902167913812281712003613720570745038538219594636496351313746500951252778259199916774448473982491162607257041739681332589192941072070290549610814801786410292183880905460786444869667447728666980408111572698099668374498608435639962426128887176110188494521466287320636888837895409793445268513662083053625349656347416000949529304092601059578909023581996825061006616593643398310937977454571612750467352901760792972257807607208324458877867506322634519420233901500502976668957030131305569940437061094121674362946451825600691667029660977361152051862391950170300970257070034034240748808948930760942466334989434578581333046755231341040437461982539926331250469963740270205667367417301228670034398220554371314157445667160998485543082132734554539358479991365754833282807560429976307350084703122496665317864484024265064024215125383948595034933105375913924350223532590299959821582183364821144699220564167072061818005526659736388153589973493830261899691324576923136425687481687377861055265451743796578227438403048721699409561697061216607322804848833134487037033790589609742185564743893555605931240719595119476783814495772223694957202316918680464368732790031297906875998922035519322313537923531235063210362817397715503873558333858745799067178907975969597119626261223660510724025522633885497922534245056433944164196513487902112170778154526950559832535990617920109419162275425494268363956683370676779657900985022462812048238145080753929286378263737744306985031570787893461517161554016924247781441400971356005439565735698472396677886889453589788953580795066607727926454276742519055660699968406477424985547957267065327771460592910708979944762546261074061086337562720767508406085754724258417583961197526927426847241358740051858011746514705550705651324473139482102289890301410159164154635697714433396056129942760195995453551100789068482742997186501152491919105240233534915685937230912878451555854501480531580057074617657109665903858322691265095010637250895327764501669994307383570969631338184711594460554003531903408064359818418660004475910563488810832251830402467794264620265119764208288311420924700803463199630063842806603687010223690037616311915866540581495935688595199630113510325010472890379329445128629445153911927200978419528959216565596450438739860855982694864115599511461389154624884530221370706571487060130895437790078720268042591182582992396343024054814061621657566391744972767594175233369603132185859717509098461054548192481963968932173551639650358912402399268831600241438279782644908813186349289418322392778845686895100941575856439925927802063892519484387363801228815637677716142875091159847402114878562075150838809914913531991393217338059287265264136170680034944671456970594001328958610707373635460876658088008380674492486134197828327949055664653706257798901968430496742257212702268368516953411785566858478456693378446581984738154979033093266303286603201265174923434814301321412820254541433208573411320780064450738043881424614667153362879077031093628596911768229353531482250217177716203512710573467642183918643272949047838871800034391496983461678748811390918445119397810731192409314353019868061008535445279100165782305002622481890762740263246132599447728537764907811736480702220496577523438226648816682391490848119305226605161422574298194188145938375140798730328272588405636168542711133871276879767376050938777080707084183240799824666905628535020318591331407395566391297123545311278318926807705467966090997339612706150092859975916933491715698702250946675967621102007095288706807940659835249275398570773086659783961002330800390268618026858049108614775419796022979856754970874490891887270868749188493950141866947182441584093236187131942058084758263521128860678032378216189371466115074290603985944529716717103209658065091567967097684745499645656362287326426648602147507655406296355491310519397940148299570917561361966694172048199083342939187150382967929373600392997553653306276240029962217360046910239789305164748725685687279569105334019254579398680348772040432123900944664194607529712788638796678771833413304983895198118440880008618461100201639862069746816461512254293094183360795778645656149817816036778558410508856493696040549421532058124762270023713301703530694155735786733676289557604750708156952141962771419729131924964698255020318023580641826081117353517385720618489236346243953525969996637132627860783279097498144661265845674745128922395661238634715196219775284359389211498105735412058195742739186669198377611718123114138152351535449506752245328871807883314850527869760051360652194804335804958184875430191709348738822000074881755999134903655489187392006113191581539728007041748939199773645333797899141074624722495761423433161834591254843090831864379709214125554071551333222868492081228052889992133512210010776680594217861151233512966891459168793617480297571737359213066541495288786730934124215376653826122754242149484305953698968288552518511134059909687218825676402211614919904579632100771235627495210043767261789079119968624295627554276868374869859573209253852233590633779772260865207994822178616908231414376766818219819038451563846674419457867210760045412205536923853552202152315850705610713649439650426480349273861794325785251580326042841130948814177015925227897984215132950823638993506151098809069670657380332098698630221900766934254569156078855021943273996787376185829155121144120873749352011513683056108740477523180978279868140714607563384275832141626177417322860152577855824887038539875521471571858564258917099614346491941083478241133695248578058709854727191407480966930087671503920041812297062932289978501700971120375995280074240970270061534393389733096166179217504919386992382067460858751369652839806634474891185738861180314166290018871981637791466098806723408617437114536783678338189597563322822009937522126367400973580836722904709317176300580246616018037801433484628139548866779001786753987824611586924488693720503108583378078444736194317203034417824569825116109174102594716130744664799321560838172082660523105806887062958139403915050603818196920439947397982190406718111944648961629583597167225903554310717841165608749206778206612067836200103851819404536821758105802060876028664565174263457072617074165353453062300486511720299476096385278812377806513615505399204775736828080180224888257615511459481741304884841623945835063170238475820158726734912664733727744869788525272437814066723219977001015410375368936032536567783219040802849196554147777601804555976903101467612327535797045487678405891078796682370069918465918955898714074603631633680387488312686870789314698055472731376983327533052928047041414317274389004242328329293386858768969726935183779558224293584893045772412239435046306796869675172650127864174371467004106374196238866619291661893171358958341421916183944419607650755454025281373763124809044905849913842245421479709835031088446429071939305274273212487747870842169467647193684802888575269393681315643161284196605188664734983562258883942628503877448793984364259926813982227745687624087557125724674371801628087885073327442450553154115109236136905285826486682347566301217301876203750809784609737688016189264030522508184243196260925712129703935560915183639184970969257794493810510041440742026267997990756757811812216371998850917403697875043720046408954546162908817030435653623331171972579358640249151297677337620572752427253774112127032374109029723097644013855666678960824579933791384569113159340650863904619041255574252045631345774114505591011472179630724892659872706341552602296663663682818339789740404732221917159409235631585503313093925838983276967592824805357957240338961445111270998905384592642042201675135657714878163565416470628838325340909316982710017085411183997712471874991320995179559329874207731624446707926126170186048891672403682773138338352752941064517432855108112108618325363855312670941147702255824204760953801141887559638891704054700148186954781644460067993501116908122051044400529072110659204591420544777819432350185081042911076620204894821361911561548130346837271824446735481505381053909907893426137434005334715573810694675270777787729973438231859177538132246114650790863419066487399666613051036283064017776770549701539848260901746276847798654380725568328804567800563970468055252048133605771500157679924154687318134177112011761283348012808477084455497451972357143410124065085455455620056867256903787918149192965726613168587112093503352850415740866362343001547469625866937969855043897197916671381683876297364181771993537977775981949303904084521567900010980279249489735226044493592399311965367971122621240120724784053262316934081281093145644003408500876851006748574322939673246216487393480503763260534575527157439130444001226099535995905047532846325834264386753743307976058258797412696641977569429339266542739709730800060256700835623996732829701302093927576755701074931727547099336278104859068855214231338206030861368481763439069342456758292260654950680188881928940515973172333880175710256819059539692047876836232787963460030367870764434382253974866588695242392210075608910202154062996690313426898376979138152211506596331983369398682175729419732094212864519722391801255089497171914090094635816926136222342553211122779159726808620348265350738551775695991368168193334394704066809468809271507902157801732418877392641825082915929085288540562741238891352256325845007879115677082632906472548538187809400691606913665972092957351766536449045526500514361529619985742318060370739087518985124509582206382443408628659010738532490263502322608485605800190715998078461579049637304386145232934855990609154485731107154771096568902478247558294885088575255351033594052285987492229648264040461848970747040287245476554934009490768692223245521984688783605125906463972220182979752481180706045222984612076943579615273082926390443006212992835420100513172693718465638792247924417402335600560551360111513618725015786627046366392207732336241936220921712952785030270513044616335972698401164461586457093962169968723066903446323520579982027393872204608792356993559397682135159593690666696359393931517228745780877478328423117757809570999620002973634800755274671506786313173990227775175161883837668382911031268592146570127830506964571584524665487393144930015593370494180728861332651034413314413720722694564529816497036015618969413026149529605231606959047873518636366709589953130087182523814910478261965706153542620435872085015272230049696147855668938265252690600494790458501885502354322002128738223738530538884710924036561402760638209946606902482407479562067461760336066618519099641488023623148114722041668162042124865898401718524959270861769357714205223993156150230271416567297019481206005912849149193507743399446874427762923769890998830110769892020671456950666880419235558298972182408913994967843586411005503486475389010418963426473480756731284689188512284835140738311563158781433543154788319196822230027948307412191716319532172498386665384276881322338978986455730166707719124784999487053985402794004069719128500697797220108618001028332643711020094742877018458509832674976857195985009579241437240881678213003924134038575121870816667232066647513310079397864328450063220282388938363791539858053206191358772607909954222808317981209799179114656607288960955334145432255834128508775570999045191244793833929171908480557787624869659765743508960308780528936957365553632778429699076336905270631253979026389358232070903081117779153590266459299135046976577578718871753963287263995366516081470795466599487316688571130941689433854247187551656637045609469802363108446502537080627153479555437865047841836255100837123351374904900036930257641504826108233014767384147399226524687297794345466612351086454126658671773459114433663127567040285548105712243649486899657092781310601933440450550473843222662010134903844918556640356605197444960935488676539799781872305874554769328366018630684746620366131900731288950716276346878636711011226588172272831507114689593912720999316893450647985456785982629671172532401203387708603196394714734615019033778530457268117052197692453770323362359019155089907652556296032912511483613820097243774054001994683522784237385708099415905782767926671268023875290257768524007656626198839378389427613871464436079408740205206190002020022585621935986112466460664059594583664647045795223330925529041614462444272956985822992475507710783734166380750412143179175464513546170122446709298723516647674818722870989196298305430757008853859157136463956135020187470805943389180511149400310232013648481076590032913238579171539867453655324920821670571371986935998334251461263706933720295924681411775462203521888495319756965557680661348798439892262990137085912737564576587747133305023100792265680877728761529349301335986571444256672617568510085371192895271733985726329180208889473595069476172961196065536321707192238143444065531424567389588507342439661174315103263406211010891664568432510265255743252951961056769936132121722521877477348120127330623257924411611210875940603190873673206037846910860783900802159391814469966254980773052309822612283350903077605015573147743149164580156366527392170718493321062392508207456727846933027497084746633923889512635087392341257301712762366582637716073644053644511740731793007211617654701245623002740714830673915538115158903691113666618686956799184178201202921631759484096584984578392308716709655633078268736367679719432359509219132736452340424918515754104303371587163032744595358145257736202593728738854342170439786069610260500083168729090565766287232878229685614275088357882812420597361271725129351533702998397827622081458922761887334350114815815400505940248297672515711284925976890610265827216441859512461857464795333158493930710455925892686411815230022449354788500577842791446115422400972533475923180994972373390906103780864297920803114624955032075923139766505055393035400948605679980215138940705531418519995359017542935973550445444906291280508467779594807990940803179035621688056414576811438665350747946517792256178213189899823243503317963359132851504835414810449210588655272396316787045926202898376429018638692752090362413738853496838641304752067263954271879442290263012693597419726094385856004983428899283950496584356868658770026665344563912239476991719609889301544238355312600237942077603313388219525981086553307274486552643585776800217606927525402467797833551707789438898635397664287760615565600706183234291269679901498572379874945272039535533483915627257474578499367036635232818969242056503212073125868967530839300701236288308214299175985576659246825449814102946467467871637157751098323580326352605352159906455926790945592241455327678036850660035320666678394726290485907450055175086922838642631966965925534594222225062202690493890730347961487058309538710349784644611293551639654352745967246659475761719328441875170744078924802121715491055483360945350078741461031094733654182068039982408325581443309757806363818559842979086730747229600324380079498370873044793768047769143465552189990770760839557074795792381791128223601510721276480235669863377444911327018028693055034209191941234311034562571440661264808189097351079210461891937597471268983947436395326016310172381242390098884264736916821860149150149403546071735416854339767622198035095085752593348041518170065709782289279815335449382199107827333834876300298359012336874137074475387243416128824220970146820661910016476086585025343496625642851380844723712979187997398989815706115285956261861609929040009768098951744951971420170083058384005327024660934487111934034327978287238922640805477176416269771846948263676426292729994198625681338690275453878428164963230158226015777697270374496793723698478736000967866357789169110430598691429658649266613171526269185391810646983789240406056307184789926761759719062177671007564947970955204751895595922530633562404761963627081639388866005817228206268195965455538328050079005388901599268729348167366678991591893267257992323547057924947962130777284549468158968135966171810388221671475572039216891403774401968898004755270334169913902967858381818208095224060996648761285305822624298048172186381314751079593856584532732895712660722836728070554266322504982137780582743018073071726366112536049929945643965755280894391547020111804287509518476926628076363596261964277493093020451330538087108009973790772284772065134924942442081407577168620709401220896140708839168773789061122931203313948446750880031701584232759581133105091013617743106207024125159240822669763355811179784201955651899178283468179492784151789043664341558385372029278861787375986727808097253435554550202935854617501122832481925583100452875387980437052648932385761964214194925580270498485955384002999502706978637314362293699582174089150306501968742001204681305783132162599207791255465361873791527292116938580958979928311409852949746143070448626196081571169654188457763151168563364296551116366171064753613871944710544047535787865021705262476577132539865080376123740287963991851707826766919032200533455304172443172277030363428896246274384772063448780829891568891824068488418661426409248317732966361235971812490122252241409418531596291786626032918091501879068136312181825300547541139583040736157179340150560271217422048567722134668288539602111228292591548756759881892522389512185118594990908135310145497479482665907678077768617829509743973017955989099716654937759504151420422438521471422306101916267119634903124557376609871876545460329927158172214031789283261232427779313499293100199004359486150937490077783896736581960670178387479641015875564018170951864900761136714841317334702557105821901662633259379205335897549721112720887577378057483553451408922676164456410291816006124827225094940752250057453364394141108728008147441210738450518323044401781628769026844245487827509174877096389157028013843959037589036647773837280249710116816597820576602848629768679486426500180644591641468308352663408646042443201374670748001234872378681820351661899016194056498050353391206206931172390165801790284295453483013731341913061229105213030654527794387052978349136449194108049980362895358455961502019588537704757453066211785534713048325521433752774115383272751741358462366303148017203738219096362276426760719560356852194470818932257307475712782228525126700715828700771439222058365442910298474296685182985372132807371162844893791525296889707304269802581499108162940564564221173613692407239135197785755371884313491219250308118808735015484442720113529900403229354290525788621804201007105252423371774578117874635843692822560456214296862601305566378237749918327684136184864198594560644099593190439279815031859020894040543396251207511476031333092991944940233107740333024008800464208055425477612659795538316484742657348990526489337131904458888333922669699890638722125622644614665633717613968945692031036992671398149907097933936978525385568754255845615828624137060337016686266388098646895787604234957825141802220181858014248993572139215402624288090282466156885855535613347836815622269885429061538070064696577999411055316240379697002614338891509660575688868587804343925321844549483129236038620977881723276591824704292140385237173382811898573033868118033067232496560267966498420539843503656278716982649333952832561565129883903960925447413416586353040048590076971948464590139452452081020843846162757164259433004126328171152578491756740927735855143401899819868749112729629031379881418023640627998009427453557548261133509674410923819636086524875965926752668433872846989060633809432485268175387234311532076870357857355761434712428186514807153052469948263812552713677610707762198597411412086077061578276562094927471662180200398904594001780403444701664539809572749885710615326207758100327028149276738478163192142007323460641729133854161304506698323652065766805764455293839846604710932604038734438885975829272718647105736395264892273442531809528253851928687752513346355124110102948531123017255771864850178969372399770205136384415636806966071737557357669756957301668143117017794503525271493287736765902905685099231819940577631643669681521245465863500099127421774019413362521806154752779766846493155921507369257607379607105385514015750628472315148515246868131477568249217077278940280394467708226597287237536833356983923092721075502800302148344625388608946230290415762022773472311766027529042878274332415737682174672399898873819616395006121481314414320905267940306662496811598132226072511881253675210730365625833342961598662549953641473718687594427472538050667122598684797476626144047797719636917832648051375474276969634200499093739343305972108817174386250615767709391416088844455545968285568568796721772150068540677611934352782163351506197704984576475333790710971918489602729275414435517016217674734609151381481955947986902873243248889879409961642466256685886040927974616994573193993574582159495983632366850081672569735206925353148500296463500780080232382785870245364354171416136080840907695881734994499799279989722773626487773123131545073430980428953387535711933074621695189042082339483131007213432382224232020352278321620377551053551347586120385222238073962370179784463304142756972270563180177904054128956228549049333030676904485216218955317735264928895890280272149777593900402542019969745906248749105709222069222352584843269071786378952958099200308002965310330480786305464728241509950401721544705113673664280270368624381939547865001830342274353036720608954932727212712030785640788236983205023413723579481886535419695859206467183686781550309666127251442327545067488364531172921054042271534439777426430709127910859980391797135809173581937186897062634746537138820451669267827437963569678808728414285370750942694184671660868154343449531565849199002435616834170467623713404764703020466752334065217306335893526559789523619951399201790885291405758881724458506572576719064409462896511068533394678519276705848976252169990323591668987552560763378943985848096319138756633574957453765441241601478313466718567517560442416822209336212335300430843678246284462827365477784995508541672793487478950644787848239365624102306286087715308236362089247423572874746146590579142644845495794326989503770116351928962528564951505426963258190579426312038615486993341662150694558926131006343460797544649021652587930415160379089915199560923874880884135262524052317030366319557515746963192635937193745071844915402241710964712113114052962680917379723577142558582179278678668233689150141505702637125850677188917471585591033297790394556154881344146550354436778723300140447535750250527594976807314866469199263303864338235710713554067201784212245212897780440476804717614146422025336524189444236378272514338728184202788711750159496684151234977846172461096665888331426849870858334425349133453360241380200741988376782159603787341063870993916177128058696591363633115905943133604915115061058651727166795202228181898582509968768634868429783647654170097735589880765241721065798895967907664994934101603429971641288362658173873042713375120750219772591950742115370496953043353811983315814946806696162446451817752150038610173712994411766548049301806361543305740311633762292783548865237019419057630384839381380654002009613725454012565340266161694677009555658233479632184702192972177975831083370648460190045373680143456061358703349003898284232190162154945318258233472516148155527908417218639890545036399596712558290881419136355567711086387952970921033957679057860509744817892370191711269457189209804571958894100876688568606516939202065362756170669256683740360216486448183798855986895218644858390237178035770277986880125120116638876012861994060363885472105336472913602357161709365573880792644824217591410779353529270166985416191879927970231918861240719719900126186435138903625240253348503089152075467290329976020018034850648536581610047113800705706943010412775734239376585382757362198856151303889863423851647522018991220941795068908283746346270318123845734795215974075273273511395253056312955900721478925349018226399616429289370978780135821913200835563706811461588833099106038787857799290511202715059414624974070242909903175458383279231069164233715560505497416927359516071209704271565154922024140536274609918628076740686320827794470793919961854327563366993581821805347871118532239885394782345415995097437783824419224097474726350332086886306050044505707572575444556087716181520398116832655695220285160047671107785642282510217233137764149983237499072749655076464181786777895859420503880664146200621117740635206947380789751223866139407308874722480291263536906214648662789115133199112988273609313270441140583254352090883484493222262606018137280345854550316638783832669805446938301741908794826003982670819441020681917593545035995785291656246754724063974002914315571393500823611940679046511854028100114897588957315213451121139428690205304625433430859141398431334491903013685957768780704464333251989174877359087804998083116607707789209819711466724398693967395606367041096809398958445089395260565008321193485081973163845719895086484984192716788680712344342124861213499004643870140926373857637439303184408597941562717475662078278166203108461454062107825843924274377040578243531491454228944542613993616881292152198863350256694593484081247913001912644452698735862946284507629598546062236446082145275300503074776880186858761444255292153602960049629238795800377086809564593951046761626966062580000574207494478012717031887705465748620660460946729293404832188325971484447173477040460883573576581954810689828330016867680179132609275292522207717751599353332268990822368665928383671627517727414146357820750814369753967645643489383382416907077012989978375480090000209166164055706360798587953788650695043934486453491381672304803731100393322424709925398938656238859907160719010058061098540751608036275761849115799921015734842657156355726215778651226657603607685737950835623714014354771923265819698472771492722187809222749928072302653227649850185737369532178123133617104504373652810441467621465098746700327427267429059364553450448706386179652118843231212055295541484645804635229667804801437774901846917665927015268336641677057913174797782074472383811448018434605729081456186427842834599120270863577554806494489456756524195440169764844078874754256426877435863716995459134297482313569416377984105711349834486818187354458128268031820114746799945654586506134193440620578814922111865248682754073525483193510616816044158729742557325794409315566673200419621028133705972371324139172561735239199627671526077845587634345956327868387469059021162113562216858789971901845453663444571179454788854983703908568309722939094326198764217441892640428306107794642295998961541144718784249243657174939558861982137068602769287396623397506368824843033655008895778560075372323282994149339514563997834342790448703457127356391414500477601849509913359576572623845660360852564233258942133641024494726501721411415398987082164288949872171256798952238397302880059150330669311530517340355172164152509230926485639995933453285135460858432260192859275211051595828470449125756503650540768528711790009494286748648509812911003294469677346948901925112528162810986024834119909575322438168724054454801563202117774033956918825125070097162931481367963424391569727607296839258685025390942422386875001228884158476510301833406353799649139784505676139625948226909223753752426334196686388534181228302081241736013691183931180094420357800626183456565944893398864391275853006696310572805424836284252934108816698284322158375260412820167176889378023256558673104606074156193751930285992004085376866192325518168463480880842318374195866041996265838041810464848076325904520862150477630552008354038193807149231773485053434452998082366814699548506581216398151034146878977050648963786678619435891479411816467715033953755848074920018151193704920251727598571774388393335051552560118368377488604905585388423488242009633239919744002314217254412828468812311843960473980534623704779980702281240378368541031017491062631752813241103391848072137553723299996774743413747530834313614492953902233705779173061781090502138262159467374756116351531698740498344866526768735295962121610424497495317564308982215837514464604579967638919827870099249401302929975004906436933836382741284975744440015013675396022216368196379254194763074736825009408149175682736989008439578705409924288668875622008162090234712869018431262365288451173435208854049295601688694101687025314065031647819735939249399176849841315963807171172750316362525275299080812669450985733296955797354942430853284683822517763601952009130922010856806558097687590527259089946917717271700736500125071101389081246409683269057014782168716181145725315643831398509888368878182632555419937435490694644995458892685223109615258801292291389177693340409937117796401929154125488843920491645562068421520486321648290456120465582933907086384646500806263301589215840890161532424414412885559270471910847546036989734616273894153658645766039730012901166224403549802544849285881831239820606692260298658444182166569906643723526700589544164552067059796839416355679526467040730757790730546837939697973216690853421553559624607704548713072586805760536526043386355651845159286628112405852164412828109028730872019791384552566916123463773684107488049996135270783973416530956271336861936775883816984600596417484730273798112167901532840774320762382043882554422430947078632263573602691139762115984693802096510099475376749990840686672055836144051223479747123672132895435944217554177274279351913052437459171016828203760087317809616756040018197224958321188091944377553358043041170714520848662364543313796478923380528163860393378515939229145848122400908336944398850349839013432427480140068838452093287391933927868220503882945908375997236768493268761206017324725113245188100919723079976697027539208540679879434512956582448345477413831882271325009980096327547824030449348584975001458428340144102833773979356734571761760077468043241178946381765893433790901577951829640238050467185574385783822957528386812336897017735133433469608350801109903967562457769316555589520922678974541954733144248117347526698482796052764496052656526330337297718449630326576943342493480277416996464208328392069205782882878270589492610747185442676424589209182836327052612319407799149796955575167818996439317375553922419886260129496201788195379697218642558410338244832084630724693880049134362064757040650087459068936781363202135946332064620816235943351538841054318027564497288012653628483961031663786402098956259415636388678044963132449409458738476490136759780830355224659267346206134385746259420966234336726197589255422879005978744045432879024003119352994188388924645055006434948182980739797489870457320590019577817426052021351835289399900856313829362290717930489960858518910193831539492043033112946687190676405179717195527784595167186380672972008127865781431262293827276447419100557685916631559565652736128032439783339174149278779720726946611159368770088036073436504182880294263210252678167564885318123139428254223326816696698171680622076301477607610943997814060580319036987747302696115647603598182632255425738033796987076941329754593787001443884010159761274495794856687521453900677638391364576196786979831357781036556748952887075199006459865237011811064094925803628941918597768796033611937272544483223947328985683700846937673718211199236409596196559084667253746697154821477436072544825225794295075070625236283324231683099166401670630692086747717121439382879345823076824934954016800590194379296583301265381559239892900275049511449638965952238394095280633812415335507996346594495678232981232515084822050928372627398023629361071659207321412096998736397121952169810370981780254592179573159803414700215574358194257272181726082478991374350987439512990613792971234755064278332497125601766019499144231754952801917247794081210118484542569940626464499208614783444215105458744200978396777528610503198901432687591389489239042314334656186511830353603596437554046056976711649501420526769336179121509202938287575134102828878264602286977829832334055234724961984428686850253477595708928234292341603329084257315250781219531638901678175380197972947805543122697588098265217799229948196501577390986055164601813739148993230349871064183713532603881839351418881729324230464218948392961656492671324174563040152431199977956894485458246140134614163900372786706251075900967410136018934401338238383982616086619735949174748849749403972269226522371151711406437375464768638036593974584270616674079682318090832046664701230559090129257462681899529051100544318716644095876223435357659271236340371622287859713590631860830544130393576801341277314878611117764831335776958294151747037642145004385248125974050195922751984394900042298973140229498644619564687072294610770594333946819772009796891805159474140757919021148629596401386781530712642582334629887184923237470622224410380496238165881825980072606340775599014236930606580107378888257477060349539495266123619962430550104817896190664166003429046507061944808091882366545515340428802061106283969445957653624807972358579470462973400302992607611970981360964247921057635172921806533764720246815902492134151206434564419416603609304960787119599346931411398225078065683025332274240168654751076344421498964571759322209979958007087713455960647750770446847131338218145354089177623085286324709267923191513825975730016235866340549281306044507345189918788155802557248215765853376476057256881049607446732850926337509606279480487447716270710448571960673958246472282033269978164857483698161799992509986074101938468990699057721072573363600106950424679388600930424591517423501412154719208430171068850978251883718210414498474252010778486304056493042472288927365029346957727396198832443986481810487471637079181420783585252908862537369531106753530278278067952549882930855840092345530267017942594854294886658318640132066850181463864457155378688387062990967600874895602159478234515707140201907267554487485879375522506030969662162202653945619912255071255502217176276744014381289433153175365740778179796093921150965903888068637477434010573642112228584070689482094485563011334425764205108276156308194365407716033846176687272712236878562686788030529927532222129528937141452513774546366581718855052145270366275488585783885385973029705490675950208584686497122852403435285095791104202034384051065746138521002291717055250667017520353155521599197414877357902061703355813449294933397978136075889161722847863645122798166922578893915969279133715834242362669086430319894667299301314642777825824177827165783996115893536616968939094580162943617821483067312688149469264426378027002583370571031775154165517007815932188521389300776726833203100373128526434791461259148935061655826441654209546026663759350415797740858378725262717813523303460763840501400444534661550677118247898171974782224464382435647470567607747464321142341799549320914473267840879098445641384529406366895569585369598069861875165744896168735343119922188543809852437489856196917943478347991785115898296970681593346741939754499943760111091211313540433795135258623269376706488832450461991206119972939723826349868423512667277929764067669775375558405957520234973976755432244722139086031964347062801983780661422501614807017021290715927247834923654594033849129694175635756201946064696212333188816157323834587408855431598986421982463007138884500135872313221941839304338234057095299959080542953121663751051796966010712348462260152923194203149282269547652653353813650567940205850378726284392012229033562608568548940275617597409015109548311313479629429842848237448938792177911109381443264389402633076624424451819869016281335548376826296788048452660903614280403609688477758834810569819215113795527461043626251444662997590188034406824566570493001143682719708208672779063636190148787988988710888520615386279783621818879964280499884638865878411578418415125911225522221721767618946159804884562669124352892344440201346673934668924636944601388792847649349848047989158852793340937881190477622757595638425912650178947493760670032304135353308091870061690835882197719585057495211204533511282050712998288130727455213233121207116761223964586629428047390780621913505915150605215594254133864330391745107887170531071674164564242876698182953560108516506292830529553065101573154168674745264693834269710532483807062865319203372621751025330630088081831944169844469419755845753104040768102153526042189012825991109239284152820308557815347018694376985468994778237943444768028394040788417354410198452688164815610501030941249644348148829374567421380460956297633555305383718162063120359255582712445095229606596540604797040628385286954637767220631536069873610885577350816631902416924788379566249480325879771304213208359830216646787123060159886462149021467273090529591987039312791978186340424920620854194143230043330431900292480395459376388880335166311279803123922855272513078871985563608936735278300287449410380056072526971841346164669429112358553663106434030676480955134155076356600856421509073985796277357118711541643242439509029423381672194646630427988746347251614591272831499538450950114571086184923357656911714337359964911359870078011904486917804074654242753145583265851246375616317465173853089102669049195669191196543363621118290363477831415154034771960706800732019653752229383584627912216143651117574782301612711599841975815906512538830652026568625510955268513269969273473666701569357012289034233592412597919871694568804077414193035050502743598474548065337123797399922649385313904023092596876521045269548271234674715382215183256577529819237683686028938775020214712428439985889061743697364641324792579647185089228419774258610828099867822424137534176377666576074998893239137667116006345225767563088474485448250422493826672215252290504797271175286503146370731204037303719860312483497629143986978550052235887252852645443862237223192918333126207109200571197755622232111776093615879424023497845745444291379056233661432012771696849630775097073117267293007755877350854961592349814950868386794468426674864847436281527932066219438226773265489219747863032382218561205314205463035066765525403475120536931503032177954700812573811687694976849040027884939224132753596894149106050309436513545781351616502846035645970680294704783454603347585949026129391160141074648912267474838777563843028872082658301338997347571511744028830174919059247675628630205859379160705854126247709812533778275364030980554249995589425405475468984702796203423034565610467955590014240985213503193862111267370388089765192946686932100477388090901862691038768065025607259094152814273823192582175870368107707132108322236362924592067238247338060670528213464838745876144236170506756118513961288335990413685603388546408374275340694545938298492737514148101393269172805271968702112507191319448559867240297951299217199568806917636815176172129834773479353417490093650111921319449992130476541764448309890068001343871835747017460698380449439947295693966373746738571683127541082401369905724315278011975995108104309123331041678353164043370615826369287003750427812610066682316942391753797783224717333326108956547391989602831050014842125277549102024281450947168897729508873652233636540097830706439935391716910110283763957592896543544630746279119608118649732646733340928505211032979241131866345079132769736075501491308442783576388838957318036662205067436033478298775844179987151281096764112349520057644543974374201205806397149431457065356535528549114844817898507507140339613011601606259193145015293930686111330032552076517805936534397282600498720856801135110612896120321990851564523283927684122133157360795088247617489354008396771128289292856071017730045277339083008260308947712198754502565959920195527294906463126174610812260529703803388751437383160109791437926479936550156893704518731428776145360089139823316614451123790333766497015406844992029595316616144210397693879704539298161032994330638781825937356355416986559989812244149523171550455430271307717803848127909139346472890534691168914574086913985818885062234355137792837697852160212642132380255271774266298622066614955466365606218561007201318547890721229324687613746495664820584957750860687257118074774303781633882407219495298163200709775712399833947537133818022694545193024725597385730911189807810390436669993901316288122843239822684501626428571657954084108814180287648342188533545188766044998381667294320323576094018392409099967216774671011935104001726708802503815110750745103965652666253184562577113400124496017934973500530528810358375885603191260170054968130413651241976157695218186348146858558042788446835712593179797313673363077769275117934963949516124442692570048392197300671424056954320645657122883507112692806262604500284394214960901709258206408025644284952991646895895985725846860047036172041922810539955448050394472497626111489731336504953494794735979259584808149893113179917663008441477668024609845431449008713419250410080069935067089865074536038659422835876688968136299508935824990883007579406924791703186072541912259576536393176362244191800869406828631962390210606574488374130735213643972938941378770720026384984818782921977388239161952660443252241764367955092398110296436075915433902734627407825525797287835567959752806809042726715135028048331700807730512523904303051623910404283344406739134996737844394112062327087867923375077889442127856991410351447580113905248906911724878330810227676236541595594658188267167297195413503052345692120127719142321767125316116391842772649324354911473539782581072269511866058670141607078728548437300372237010718319481935493435961765182131946947675142307732756924197161828276777310816501979592055707700641758946485825098877079415474062184196548572860985636494145510354827916162961520272074228398758970619671707303522940207548487339334621253621083354360929687644989109936194169067081659679987322343536995861723882162904415441515999813257948469940795539843209321463510682739536356812926960869365083696852956475227379293884873143667816311760742076152817509617427576292747821663339697631502274627970274180455691571774181717023199227365082606378342991677029009418135937793179646563574060678422277686306334991729204728714720271064115837572018939234531298322676373123578042214521149015660939216476019031444433906875957893338109673214864623102878968284843839662509948586528893280712443176049604502179403023328192840980462281677051792127649401033753585917533155831573268197348738604107091778233229584159091429202089255128036130560994869403758309665538582016595132203914491894241123431572231099523176171740388282783285078960700720575723500347142412163439849695757469609242549703042693424963270490992271849740439007979686136972955949410862741332553720079897157965740218556827793436469647241518120659160360620654469447227030080653686536603784797214946531132397574955863907237625128806478704003293689226365430887098725124820443636196655424827713016292887444109952459584557197003949569545116896771171695755690587928274738637601169089580259479407420297813297963236342754510970768747291156926096383808867138275137309604593327173634808839562062303677520746796449195103176402422617053391709122925643060754726252985796678434103763627168025564092177157570772050386846824360775553077790290142110176061189287785352323462201321141270803004629766238513565533535644249832682828471049287013060884682157121864060531649381409008169145224707631455171591653225666147236048082777626673812980711475128916542998202549582070807592812205095507499662241822227347253505606393661602657737205812757079454352600954086706790240366046542861820677183203001138362051583921625180933116928958855900247398771840453866016412337088433505076070332257263118597373119726923804134859356416153391664691649464906262021110527891885353377342355494727860414036500267839102029643392894485862376022910531089813129525114076964652688386713050564584798689780117391219150351530741863176893071452490913456397009692770507616078617772459754201613560714374074588477035302390006897954425562539077054813430796670278131710713106220591863973518607489063048561056029509494519479137098294475214622379439012763460942146399006490533564312154841945916444000601903758919204160552133492324119978988256059863373761456181138044605317162789567967460470251254827065245192897134268322444533760621721798612009785686427233663585411161742343129279878578355130972943939008641667775519433436222216951301835019437587868087127576517814591300277542186333859259064137104219315407444397940258236240610943067492284797614319727279503604538606397880134703167358691221402753519340669157145006015092814659056900997348771069449980900804402546042856863044027307918134320408717953468672352619382767310753050020825751857995578840005263241133834803266210146065923807584292522300932072082057325957103953617923112668607287759201889394062409723485758434613376699921275373570247479465137029683196657779379760060454439005771492995651053228486808409696923108161483911338754411997451959145949520686955452978393866342737553509361295219148746473955674887010039052485125699423853696968300715765625185172228124410283026558708381934020044679627852975029920439344312594435298719717001184917235776601772527595210407157701378054806089625545935752871394746880020334868649175814115402384613613874300253379214487656294511795577262159542272367875529851443639149603590456036688488557319066680125985385321780961399222056786998955951342224158770871011450335096372338399510743711799503213160274359522192286870529394871200168778891668775798664952898859422199647574111849013890815713797252231275123422672550138937704714723045043164298272926723193730618572267183497451421261245568039315353078404879993438812565659481832283981169723801233523438293938469255362737876692408096415772318379823051413669709624917082776497825982401626293160509961151325231906571080194752475223791041423890378274174102460233949972709629959401446851589330878069095215341197846626683120271393836383011581301656701444573691360127298647238189912966307067110419957138076176654344120732978579673502189156057338961740890950208577306339305810163726375929897939699675928221930581497455305115625016890443064709927770609290613837034503408991816675321666584117104799258610847983598188538398982034585263845250960458990121665389403587977704759661185586112282562806140991957154310744899659849376755727202497153946592006029192640591300833900336398338576000090076037235356453632402772742855365350884733140481207185658149276741204233664871098307107642465039461217029755248590345952120248852464972542830259797351089920358487831879876288905955183472192070263171381493184973738097605248511785209718446816533116575924967900434358486633683607741212176875089403945699484158223980414031672481723223952814780041874923399983375058781182846099060833579438343770736703667951641686627621387875616103015739900693459710704867426222379638882493737301482002926872704334202876900193227424186708679936719162535467373215697086208397552643141018120975874873957516412898743589444071751806898705377640220720461572080903744870132580213271856702150350720131559715596614594002418274698493143426645662314876114296554893793354065561194618565810491186032996609781175693065963098142740599878537786166501969845396081210891175238170410365131946759942086417644635954201955713464170238197842683067140833136744613252391307326007101469658414646772617997993919309792332591887361580163734179012046802272962606631725640233309464780239320107437925918498858901690439392255214748102822467237566511792657366654022629518340464071691315209277315793250876916551261955454047403555695783961631234118642462615158277850066168758047914322092220449472304947160749269236554103222116976565869817010767554960502026221492130472154608387373649775850067013616902533642083832160017097884476848226800461674387674375001071324293271011139352448725051625718763726829392666670246002916896880069181203391422978347587545070928199022851917616421581606244843791383313068731692645482082516079690527767411452537012034665772693844121684298461657638980316465008436700798184287893878068709358557735519879489776883383881078260510836799933377187498776847079612253602935287326111745538924642910211864475364758262799886941298703107926967954930483224554349605987504870539032033592066286116094155999369525909874421774561968467573214382729253108028466532535583727253003781918560791972018407300978579258741967795252033846459191420261118203225495194340167729464376163762589095385748591163300375421716309347882237814354611107171925594021108255821261017673500610669361633811456691081581847305826394096029801598989166866004534744973516591702617330305847039204125356098061660378507121214346096951389266044382707721878025074748516876723986867780531979241089220061527156395794045055502116860513134901586625890458073686591881049106353735578288948532791657253842303128785322760480672673583471665739747575970683905964023172616922811298808141722049660701306601975655412923674570402949425304526742072972131386383612470702773882126877438076638642322271790210264098880328347937492071533682157605646444135995062062471500653454487700389074425901158542104658196285327896403855494276803187334850613483660804316198743715167550328980977359465042561055110526831222600977964177775232878315826578236266501069615617793196268845020488668848991678896400014747623874724275720024530044721942201819571825068345368120026341053316297512677691728614127531263027214620304276791497391527073157869190525448944512928863841827187638212647773116755625469130973484838283141626085121782214269573603173241639167962301357487829592686721792770276851193477313928071902813491786567243349992713802415443604153027180145299130690645448881053015759578512742677303311595435553251928410716211935013523240337487048382448284833411247792665460808424732605720226956462086263075145963603089741193458357594110478755866940046549642648211341542012927194905314229883249666962344902984938622443786945808039805483499074546727016588594295867997510351349396024128708458770493643670711765525570858648602947224480601010715548937612422603332146891753830605988307996584826582124201253803256390016780743849024679524554619166732309384598088624200909076472363145739248277794936107496850461925405068433950200645196658979548911265314405370148473403550844428951496606556493291093445813753514313598931672729481498342855109851444286868751741721989289181582055595530195291833380650972319443436819324511034658396765606808908139073428248375168663136460594155064320977886932132080888263957756055317959794455606663712932131501491554168565536158260102245963249733047836707210888464371835558510979171384082376957083517017159313328966297148558707680663785876312424940131331282862274554568987507257457476067285664884353267688185157083999104457037832574368744351828341800884407963120393988975788676327468626653808789764115969975832913830712165098967924656289014892350670231527669084734078415684882869088533901702180102166696320187704340422592086039077344544743388903652283623096198271445501167279841322147143950904496158359184284522418602143957025521921272994339075052705734430645808421844368418261527932802581698298628159565171639208700834913472039616633749715032045398202670891709308031703925689184918293489255406464365676694230448026647829612869329353745507805856501857300462021867606061363067117820676434569181652093967996936448131904957965679204761985146577826035510137352924650336873462097196061425716122777042620388866767221977251300613840712665055927133185414805243345839478232423496801244278609949623563602147882096340061869029285286751144934541292675556154753728700772457313190192602651021725909802028415158778780911525543638153012812526189511859278035251789692203359372131915165682909672287368083226392111160582129172502840973787962852867428154649028098802715073952189130560571040678070541392908924157024493886661564514274919118456037589090633169304463283713740076977768715636955702963603523235537607234188605234133406086857953619366983503213321290720268449057035608669538541827175242330711409898910191599992092440600392508239621282669366509419769068607148821810545974897750481377538414847773231220481379340587449455118237771478937018230466624942831388547293524924866976714985653428828076758545552104075532901314546887869263305599550046601353686519993867159319725805940863671988760430084921621709187031342051240856943043625792963647887370203986929097654366881821574232104112284572642847425972326018935068634496508192425440143109084767481120921965932937067036821772648338183067972620332812175725861216599460045428521719059261477007973922548432153005102654451400192904295086215249809346715376035920700182757858173508751040491737229117132088299766912174466984551769270168368922166339157946438555510225604223071981502584482378422574740217959604181717574659674882634751769556793555054378631992948384638771543515090695778667127320843052630840210101243060054825163476589160359101553775776683955891294409022859837607994429121342673299274710384706983635760522657007818860861268494346706161024017444977460424748529110197615034216562526921337780866476854111410936935290579294673077152125392653107797476727427300171238946747978095442161736393888110129842565103795815358123093629667381228513446739938389384237468288683192687247914655337288098725561550722399381866147421006619126749114148220571624065955004927831600178265456856463599914068014497575598977335292728669233214728967159422862559816521048047523242776036771811043106311108000182848032482564378199002326932060371035916950366193042348958611569277888795682519596773627663322668053675803698856854575163471360475754731749968139537498187437734101729569721087294743566234552449946406179526743731712489087934513094391886563430707314345205581995857462546349573743898348475260849417461141354753536218157729001198628692974848795010373888247949365169812825660817362650650139508896581868708993111615090288109757615636376365281521153559400489943752479130501413716346045733974424750151519305858254403578805881038305742872057790044827736078802022447725385085934484674960329721185623530464643252242247950977947367787107875544020180540635244751442480648836147372163157834486428677322746372120971943063362854022131160646327224552334872743235741171817080480354776970630328047045563347129173533904211657242481446364849441572648609872455115867279213281216208110830498968562449255403412161394072296823886362381282798806315855285802830820305438510593345607830470366735858630058180080058925018907452125368090619253706163410190762429214128768000152251931301753029911548159003807990363333655565893733123590935979556284124343971290884248273664853877403509127418997328166279793575591369204054358875713663155126190852021627596645807217756301179745472070389746513419828757392810073960377156635991500637634224313077827838194930985320233300423187278471629698500621257210812135264235598131429532966812180344854794310701151430399365164208787815624804693504454359621070995603334478709239495580067899771369779735199060392458362725699646764558369911607052412707334363040774425698461220060754617542927655316169014628785029556724394148726193060043982724806535223192244096983729639887414856344293183964193548513516855074992074661360864059799931403559127052082017937637047780290301272593991531214456131085560543572399210628505726708363715138815029840243511388202788530862354255459889670591299492057869989376049147172189518906673822612493489711182219056709600406416155844413877456905794337908224588421477697104898970869208583384096877763874417776295396824441258253021531784967209825485544963736589872631120869164113403500856084898000389040797414512379208521836812434744495653101661172115301748718449031629932260821423145060352183133190260472862922847748727285731606160009436976138762810026134916471340798515697766018218470836492387335306743332191720401449062063553112703575199301666044734400004098327850019048159848468148525695542360673483718102311294401555388136837452991900648284252817048074951062967783080520431502494497403439432245048864374179134047366330713629271821884112055658922713215582267641903268997209350456045155931875018371046810122299907987775661147038601249158502093904380882567864422402754930175799661600904374829460231024789141614928101387848875676799663033637756552846361442481332811786535953311508449471787682858094163017572799866204537257334964176395491091393422725077359449597813793012834576012725978225043203079740180709739392447175359774305355574426332699812583715376832657750909130629807349761004359946432442721070433410174833115796947261958641778869234994059257800660740639267964823559793726561046914018900583873315694450154997876537996564867147607433294010432878207687614495815127067989091872345977727431435393770123746557285208225239318042704850882381928171065261039828699382459885270760602137259985251576037375048773922696929916842510608439351579298980507747875291540532996074707059283561231609579156470336528437458506534877789223473242701237779841781438767470431409666101851467234439140764471372555569705477537369823452679703060968841697488918184100325471321019524594801622267155477295230148436821198122991378191595143245737011692133453625308679842246850076689671228655966090230040091090963340933494675932593772599519387883574144692060684602718912681076267580288545974458439271183723986651611513450970672586710664802591503591691383845404273695447729014070544278183569688830672100987228376699549033123947699022130050764237594039859896614516247674582421268908101244274734403052283072051402523309492974427482377820506821287890354524398071923756135429756305806358302699048335896956291927838139118742667443497519429752178262827986447659945604950076347409000824877386054309083016959217772592179987104956426629540078316315489390182248408351756339229982606553843048165491505121476867323950296822957855334181060930256570713443730240113968775788773493309984501106282186744524310966680055297557151646628174527574002135211092259000322354991079657457572334177211733140416576744203952612676367681254168639391903053293977752680872488685111784946654846523900778532548108498065695838176409962660059683107941212709224587010985761504202461045131081057569313091038646113628913614748372987486204065380325874442438730721429494759937642666187448105763347002457807065426311070866487180010005581712218995125428780794948189663883375234135857880621143793094577944642031937334790637233889179397317726473832298850203619115178083844877614267727034582176470861547381084797053349978672437258728472837600157251048228211781577722962344030008488486918566912101080290241654117188565435347405555210779995875953948195572133530944534903652351792216275514057090722662048379897761908001573780845788238149943664902778722691821851301952802116913718226272191010980798994039282324078825646716696976346701341742886434369988031765193733003780522409206061165541155643935407676799739063585254270952343989320674887165237938853206764375318245227221884364001910522725461338883558380232744164030280066466335138019725067520942158218660152901178583191153710041900897956295071489725008854782285246162115250203709673315240166969956656535876524550742882403970581727015224691324819410560722073820661772720335033476978252663657166883817488877084385151746085736545933379172078159695028460401599480655834543642705863715821326571767371957579439426982369008890508809661094064709220250176106693885611284252137651796169747441152088601547701795396738087765530644810939791062183793823038121360806397653029142598087040149604281746692975797572183665984348629754652787019125478255916460421596393724134329562026422746094235649941331765549560895087004813567385727939389759386255995585668134188397463105371214734191406740944025576612812659931210846541224805769024464072905028757662396516522040559604469587553728008389982666883336821343935059569024755250580610303684665222075473684423094220552666377576955222546466117570931235632605001842246459609017238527996506753673079681199174885134908695793521714634106024947995441389155502413489601777866550809033732507516315192492271133222224086872321905735232007228391202650418177041692780163302295350809901873319219731512041450736817222053079609688289872508703484382979163425936162255902133997790876645310689883513336283325999103395554783697276116201062407266625772273530983657547038622001850061623749881842501853802816784007894310035871540959552683567956779055922360641889647893177047396975214343807532300868453431586204167346444740952444016842822769713079444703133939039912236665021584706067671434934494487751098575023972689535294052576550417261933026992601580133191430905777358712374260583621141183592069685130177964780075318434439378209730068676226833283408119013742246383589832693095170789836900641451073913557473825594311761195864687341292611100671221334879837169937755656130665803548594929682258870944911471450820269820684655257089581644066728520538508478835951243555367757637911862138115510743114008533560636665558987666595265838762887276162677215203628642012068972946712662163662698397631888410770234257839700172986763196175066222212808228856229191410683065615583656086225922723310233654726051458586672105208241173089849972625599359125589593898549956429907700583022492863684064955416590176050121641671736971973664669738277708528018303341749920498708316955046042859690726754145494465595357102341428050502355287134494417620296379007455495455010778390620601363770902473277166845827123537557741083313845751282875902057939498040086515803752590496196352812601359741598649353215399991285699597560846041625653054378919296353919421487806545993134278056618243780031856925581401275908013897117288730037369177278149265482026232447202787522694292815887298745124473865754350324494055785147914964466361037462057778330974804962244029098245019114743621666034874497122135240022263496405403242184785265109343138130256804145134519725570737580109066892805885206429469021326580339228604008415865335415920588703504334613320366322264257545843310566589859241967032151608601815937407361291600116966198377632985987498483715527852211049363164697831495445978327439309218587625955140074054662363737218137885233339650503659036787780800459312762976547937775120778426033638357914165895873825511336636083303236682004675600690706028212251380103285671305672258482276480652316087270834092474001166614752391421718555064017314588950708232179731721203154902425127310072182646678765846967692171556532945408546836843578118686904813113320118474692805619177454069341243063266147935191001024812242971633903742702892365664161541640093606123490155018015303217036489029485706533457617771633465140713540530383514353787589011462838968750309866384691753654498787361439345101614546597265862527266136284673608572314280868723230300488864090798666571243693149741760547319614575415899618987158393249697723287889380920791054793311453978151368970862765822146253137111828999003547683029874544255270747181520174198396537366620871522015131178007039244938182923828688873147575094155238290966825635067205112998708735640201262760071849388687835323111642862331837160215589241909240243756407678059909239665276729192716950160411894136185249625026799332841416960211837348403002873758241070765356398027726968540502679262438223732230555988734805259320745463071208929654047020075983791033176650575506217140283772611280542601193529287842431158454372114130703595533519188053850683147798710842014033124540325124402947651086349213129503874838819793734679338094797342572772990619981870771833837157218201813557532521383687104263218226845859618273741740983883087738311830621532342090631556504114648134295943218461773451070066829974814384775968507417069949111977582790568928955944509237386656326253671939177921659799005421141729158905860861485245752890711742196638735486308912855608653663076746227119704760392199369995007153213394839560621420057935136665189121084805950591633513704871173292058557130225390037132114205287230564375657317178604139153192063770493464430741734888811669670165239332740110374219377763566855904215308858343577304353575044585044261902464576823809923113897624100118579309775406376521346798892875118824075116210231691242678648464609261034443612567436046763424609296749110185829713098826938750543637245943524852524690423414039663077736902819374286201437659586146677402883002005479569177349753927671854050712876294044939867441410872898312358059939731152307484922385889520256815324727262705375355713899056219708146932385051816514436775199578083225207507303193582533867428962634689588917873494818350960752892993229154963954828662472625090997369760651396912030121127888124615265963404667940493115056317398727590740865811873695934866592299759306040605222172650568063273792027744846282442659181218005071946843382605705733306758452426509355119742696040986360344589775319970947958760768177138684243346195273627334896939614322592880480105885671703442679932511991048846802577368250712376753003820429301032485891675994084226154085946057986227498756199726309660529223943247299037252042054758165880905679869902470568105882845969761287318115064813833769145364160672789358539966900511212720491518610691743316569346240620345654189896679455765522974067770310411133630905288456260107525975184226009892916745614372937110768249377915862764326073159601890344797860486566184151960870382273995276007950845349409426655329076450952184939174704861744358006069462722760237343950099608883134375073364075606763915447518283928998538770991956374492934381535659985672719248005061268509850140020331674569692201090321232294353630668932700009752661321666007972507877491855127637786616455476215714575681529369357430172355012924359115191808213378928316236720302351580466919185014608015962364992836346054921580027700034343923843339925723747835611389602040792402803361310680132538068934855628633963704155118670134249951048060791289249228084328157772848415961421223742257486257792559225384740396199755928749689040096369356801675391205524670327156212182239198807067144442177726579027933420320612611786046959908651292747201593329199667177804503203643757330973092746557081946741871608161155613957754875250572658944547987896971096714583497502484404735629705967839413033121586428439666473789150834430985171946720454869510249999950333967303473469019562577997100364763351890823015943601684422498520983624672853060763727246362025088989319929228524949652841704269149093453327187190827457810967219928273072544549151147900627305678900152908939600637031034340327272458085491165721370607944454332851431835422110924875670539333685343990464784688835647566674943360196516608958603591028619754282923693415190367570042963143020711494978546279717507424857852504491915218782985522485157744317099414555763488051080041791204370583696895571942382282303309645178346203775929411552597444069074437526442679573690515038769878686829153258142367956305794326324849548803791707469427820584627083570203422740399989354633438181777258962905498040628088810434990365071980617280479174443747683734635588649631834785662420042595979266355766426722611366158063910007650982487643428227152345096245272614332964874178456247220314189114047000398151970675873919253128648296305431013770376580675418954981122727384347924103941167678912238543880221145281924685417507971433033672223954942100070203919452638555850406059911745884247923348517982247816785953956191658891731665043473073889158792530040083799621284547924808606725316184545555580451069152848657260510215575481368396001536253057159920332795452623250670686053652311408565042332847626944363610659050904280458677034037494487752318073751360071253362684443621702497514355742071455962428215900433098359560185076777899014656249042650442930604011115219784132291556865551151094190868781329857234157194892484064705801463540728203934451132605296063791853734578514839746795261701987882136524649021959402867289642647442784689209396189811777880572299574782690667682547698844726471076229482801839931966226317759248299489624405445668081867752496100563826676429463549752168396842483974331351007747976048590250404854038952588150934754544837384548822950904552765001657022349345086631764905962893605231673432610009098795436479826401059270947878203865181301275761850405861139343146294776520205488273821310373791169800815470515948435867791647368764617758892166763382014660912809004682104471586026079910638703231673213781221648525623878362266779343725692179941361412394771246642569189247999265487865152409092197581324343910445364527310773743699649612237258046161779236387631250485740614696683699758552848821794792774359572370281433949856019659317740523239653849246192284223166246570923907612464956931470401678072918787802727442704586456023012918036558952997353338163062521848478825305424654632007084182556313174586534386975377229912764567395551951430129791431799664214880418124873620259455748298022294018160674119268799042142855146989740326328777801083086650731000818714185736741324879043679506044016761303580542112945870212415492899666211737006596206653562809161548976986180820642219601124229116692080270567288443789991247253819650543916405721523702740278331829500617680711801222418795343478670003862562495214657583780103459798953405475626147130082724108031045109761609778548793507724535866776316670327485595789649893679937624815310921912977777041104392478823992650383187440596824495018378783120165864447321855428227762177466820818692750823123761206345347243786699220276383715521235164971702018084291743485139929522049578184369134962490175886450946818543818526883177837331103800075666262798407775691433441591115648674199222712973003173486958795803511585105310887859537221304815548686763397139777781201192304758973537742535172963194015146866093311891582767900450829633549915465208409463399049907290096988395136721188828133097850426310443438055478834260280828208089127129460133755900003395962121869591932391315400392965889127965421008676792272257316386198858271951971855259665563756655898359563475669763203882051251216006541879996065717289774986449176374476160570182083227841906643071538683973173745818650915441744780793730896419916802566122619631936018155449264351053802193985427483267410258558272779644042630471739492200892607413814423647591342817791442334796455597861290488741503744837913440011873167056261894827869649426620611434375686187267344194440275409591421271952059160716491134489489217706554254352319692315699039022362924595642487086805871236595546768292346839549099748154452151958208928089349058558247239613689823140290674867015516615077497755916777607351183327114767203780577849277566413874108041046760721964319106579920847025957976503066710569207480112509226696106430179033024289593849867682957645022051876037584042601079112795013798350419603994207956640470709746203681080510828687750525416756235470832823955378841403182024280692377484532710409562471226829241317043598441571630643469512258423894645944748034347505185625331672492186774733933658109233887358805317956592002549667256520689936622393315514371197115707541491513979482445720623680585480282139578736922635790458995329962476633298139579827042799848893469289524321475221957364598978307139620783466114513713269205893074548249256327041493802844391694699023741787468003509427478290690539784573274183909122193040792759887365820303628225103520482047478969928067018996428958436633379840314706737225915631207141098739179801500471629993827974007808334105750523824530385557705761206934671072316326315379981469592034512706899887621256028052832246697107969864953222056903069710416557479558838619796031744639750344021822098594399964114359459119666983809819287539826894465049945165520692288653420513632514178301282271951891809632119296955195599218499185927714457968176361636832822105970309983115924221608701673914507377698285631064041159737970226463776459239390206074350188550143803443803571769522135320252992451664914896617204735729977842660976273893125098097087491553679420443323719707878568037358214159594818471651157390594494927214793490942746942000102333161802699221216305184040540345536363789408537962489736501121398035736522566872771417815244448867069929947570588461273732127411394834150609129657043947102961093278557087129196945795128324997101510864772730827200345516188418328236188050300546830317801114077391926655331308340871366484926911552056517966005699361815833707264131506765372569581012733560388872660627791472497293239324852102949354341382236181020803363380029880752002632274710196409814478564129177368683727450694703640541097482214428235824720160610207445011460512534226660930934872967325582657619515001962768505105181281150868627871318095751720125607234914844797707298536395364489860778276538030729543345414023306603294975537197439784671307779565904336956361785313306489266866329246752761215063059252559290028915083811430390500256804292341547168615040148740700864808958340827342800055267450887854942328289965286989699560615499867079230045165466026176663161478133094148649959470935876298748441056847923175886722721469713021103856431187136291427040848618196255166108636947759017362209753037211436081634222261403286398995636586719002179680225213706758804126204745271461292510175361683346269229692123423251184611158234152655701291905075563067619638780312782442940468663672945624864367250339930982876361908882916605078640609971009193095744466739953950933349315963219482151863877462682258188781346264429573299819014501482183890654601995487051999939222408993983169569876047926005004790099150036165909029727992975481695862753881604564016465090710551789960099166005367042767056482171320168067088591515927237367124478058610679547899596485280834937154986217340350483301763456573710012418513945653882658177473914208217533358735378335139205008389491204851884152701177191994065350245627229530258063962152816943770482452347493284988824002844420283497655254650251550630729370114488873340501358655926872828176895269952988991966976449135775300823523442483184817156764027754580055347605508081051796785301704682214675918582770270700891780331200690716185254007562261359546037937379467569513926620682644198411080633763076634184004557538021157342412686044401558015360660298496954883016170284906695040340597543807515790846898296054285049943771650974243665882977849908449233068563477108457306045166867056825715454264694237487389308141633664690471723967874465238451548531002003689213488520199647552050074092213211157921944405716399795649178079744882652344929058867488452122372034725697105268353066756026470698526775801912762185056815978539081702999942665589502005295180862758110429196603477017692459463230216581311887759386838842252555405642790112376838708300824707778595411432762723034114934559046140624440148881742761253338120927142516766043207278079451004465733388793304757167775233592743940536586264711220795521216028220501030721864550670170414161191659058557965130428528214827674956351217325691092678254555743072287477138413254243142652739565442118089301176463762337769619633477529008518015820837070622255605515121529816982064429077048422808939091933758215881686963441820833998388212737715579325282273161078245474742535924729341148900392788563855729082593173318261429561382016862533570238529221828859035195936314288228923076766795455611859859397119062073919034230329539849152458735784355596224689015174957336858733157297435203589832913586792452749468968199458686274606144693601163704242935864047646068792429697518712660601065341235527426070293703551737154221080075217967251402229598148630187993978686567823371470927773330762435568063343161928493278588320143655825770926836425385683133262074009264689196100386783269891960523155073099477877682834008531538912096370101817924681415072829437440418569111375958146849597095069075238275389194484435125212190338573606297917726009068424614029552704994119186407778876659294159984472093690403520992381955518281013180933875128538078719139593170123842599098447191698604561891707700951656401588612047453281074129005789772655480105402929105105650829281725874215671665107624045652066346876545157960353147536613403119491704132180298202831169170949402261569409101898783413612001705700698597415640361580116246677993571218688786991493138827974364688592135248359576714298629170939394422672273115178786088216748934783031770687913439823561694498263927522700676304446217367082940372432648172949030645680950991300599755000694719321123590495912967895874736419626936974319450701926562614724589864972263380735434315591176526549350588280972144146233608120480750488861384059888988472925830791560423221200097611398859718373499439103800339531135325154668096374653462328728684994348907181566064912538271243556911021897676876883013003619706278747492703573330322439526060630695791892596590254460689894040759301873256600379476691320587832000120803431613631583906267715690873700496041288827552025092934987030482426177606973487685834365726298300647839401128278100993560550239284029249910228103629290086758597347143373465923198833097459960472331826630425446543082244322649301067597085826344043745581882334129637173809181308538585527230933009917296848271779100761281810297468224181272236531199273116177116522502106256042555024519936353787342808860006095537606449297548392163067451048841414277846920323259304608043971465510177887033375929597654734572148504839195907632428083909762671856002369350306031656712025455321958102142632921261338336429975005050807843996947491801695972045070338890753434098636742765003344486406398122385126212283699809825758309724072529892577183814727153383934198918300868540755564608363655847539881029374744065614700444863894103941343188789500918379093197007666376369231785607856593976707503231852377765894338462639905035451805745788827526579660510153494898099985229235214610592669094651950701117305664102939824530172617109292608047761613014150746633485513190116892414470816198400617385000906013476366437919461235656416192380298167086415875061320706300300020680912879932182470771611842371908746610590752006179491300190000634380980223490768188446669756922477521117744976173817642218218844689737589801505592384108739471479431935575581482868682575766168038672187519302735205036431022254693877357197696154398311086558574385427685826836087700350608425217821201435381607985503940756709130278913050753952842409344699498889171589350906633525913266463370926210026525482574652293454817860971784665823486342310635843436644296310203997914356246044463505133344584275979436876758027881389896531158624975106815731169807759759761954671506945782744904010211830114640184551081175168302336552593179868218352963168505771687701865418138661847912104402285828904960883271729271313387373713098951971104193147017356670187580570203591244314572651043684120216653897459019599971509922532366560769017172184667978345212106508466716017535617165186808552447471717343738640751273386897248636018852396541016696755992718066939556495948679400353143638210197143724610418700963192266709489936431495838267352036753907882044812082584957904377915556703249567285113122727612633055863934059852141919984095346714032457799153546912755651151046553508897782707686136218800566458930290270844416252130498298712256682949317634527394966274439659627729238213920718879493172349486421300805770516625839042626766486833237547819824015923496866697440029050504683792276043987796944539925707109707457878521219064085883331797383670285963385382858707392156361042426901665733578096912238356628145557083725738914458185249918754748772526052462215903591390046348160665534167502243614784009917614322144292147653762933916255379345249109987162199511768882817310639323368786441940074700526356094466968504199331961690804827453972890509179953493705946840032172665576157386700882244595447625418425011164674490014206718502802664304184062890434650102872831732354433509683150580223839418342278548609977528728285881485291514617742571331648120806673954635254968592877306553129716964222058893299975049518006431858964526486997110844086810855675514393288136663811950353196090729899016768268100417767094643833938794751992846511879347255505949856118623838702402075568967606168030729158691733667453779493074965120353473373797895464211253256447069062654626769731766625573623835697357048875230138924352127689816994327799707612517373304899594961038262410269411673623936567415525264603882242016836089336392501343635884460670597505017410074024979743367764470507650770692797902464652715103479113099557705728611816548245404281808599127965541260717526023640583407794735100512454512513640937301083960753293754173254106118600671946201950053481111901403430461945911450509463339124555525713169665472048098369339520411506426989848041170067717975208183163141939225014250274140108809739466345146409663781564216946859773486380026239742502650637715574886941510779672731196283841272848110811983654458325041947158310130306275482667724375124093601227752957325428837168692617249041753392051233960971655596582537104093065105937508008177526455990074375370541778471362163081966996307933325474738262366670582970711853618979291889586130578199988305735174886336840972309730038017266577615971819020252171302057417461387307768852465565575520568955292270182803368031644447360021276292999242386899554391565959021109999769193104051658622111240342939694444685012703766807602737679465877766170421365358203955773983056472687496735166754132517091695801251431720391418389067305639548676722773792104201241746116302144343994276034747418660995766519074609366742717896110604311356901016575974798795133819941816389237870340393008976832781103989964251919003120610848649207624026169982783484061897269973924045197658107989888551925660901616161137354071355702549425417596390008929842977756747168979891370547550819985240731430996602485179853641691205618184602194328838860995461397780120340063772794538924890388997959295089768727959892762630017104961401083315748644194454505674075592737138584491285370219040800525032087196296386194375289745257887078032720033205969532745427573747048409116545921188975694471243527205766478997174503318448950625067390400211103929064537147268454813476839400934690727361958663360623733776125974012252562129812591130095825451063751027177745114901192325537023097476095161888373181160373536274252121968303807612053197929162288660069323972365997863791806723740919975030049037106774676353976240615643738435412063135192874225933528829662238498771133948954518284751591921747268974625870985953094857958019239244244566115954913968278158798566818221598008975512854319961348280716815269556445642306324675109277850292110558109465196385409172133331889588750227926748882190431536925636147429595600759297880757502611179358479880922450465579207280135899474144512444074094041111110214528780967240090250976058682705801808228713495318391222396507913226810670695307973949704077075472420080695446185157072532556216337810730410230950834642623215836437707667150132229072219031552829372123933531917591374878385272764652916880343013658676067312836408972756021765967173794008791798093271854470720900839290480883218401696063972531075510366718918627425461007728317117711952852529451619484889905398363978030682834927375728788348572124155317559876156477004671923236425571359935875102035957324246982744540994481623494902940211406961113962999920578540029066362564777603817084559119757836099151459163943083091885851831178515271926591192136153468886961027365772824478330373852725304797426300166279278342424497444156546989646251933123388468034267512423099998035772801145456237240003026686278396071146869970268434652846471000902226442669280808228686642112363596729975330424152588260039332762330601406066610087644990298890675230352060511480672104023058807423494970410672982116390179361022861094048937206455550654469440795178340634948519457752302505130311748081948118407865243581855723685412325467530691770902146032071737971705409085370191268061882399804235253875076964620566003626823800976670442354918932889464189172759653961463853407439734492254369166591362304543651402115978284827882699948669975900818541973475244879224653022792840391411764418507169909736550939859846592144169017324825014278716056961650886127807896185857383473796504517536511271051254407142942630635885681872584605335019387179974760886228100189559493215689568772223469715489212645241925094180339660250903276816050022448284194578789037932285256444788606030065954176807921540555131116929514609830336083547792726349692557418296872438125866096079421598752398919824442060877826723950265266989888325031389042039553341513801676493720261862653879301247725685106241580961609162613238966056537136282052761906791253100973532179284870071030292723308177326123044170486966383942612119213699860297267449173733756330291234107352995033892595636826842183675246657346460402470356333891130585542443489228918816863667961772390542432336850072825040979748397091596024692961223078155904289795718850630247702421933629093205884127683786404695832283561630247905678452325826539563174159009552937424506539104895482126766737571473198382243521618829766781323007940867055504229395023254765364445025055151630727058548725331834385701957433509951595653091416707767924465101545054542940496063457952397489580105971421319536609734317549127113082525001713289065505259909791398985142879317912895561787026626519874307916863101592256291118708591262906985006286306456127264997408408188936996489282055279641225420210656585564341482208684839295244419391411793281588062460848461895642662899239851869347295523981776344358838705755234452909475959904697652336146181191159220045852600020703748978564266809988518962089203016385922538937483271159175332880253325731722607192593342425323300433496971817953939607185182313708212454631361690371930134597140507893956268373799396893214359937834930405356161353319361595284091102363944629878511977022480134104120183416189065557860625236665260368875021750189620932587415582597345943811957037353497646773441666559768566529935223557895004905590800381680737109494971630363123827496977430495237698666707185863017129958138745496060415178484599917932542039253369547670900544995127479573039867472031952290496667152397522326030757371344130408317811401326967447384527647740173970696699749730624427433423695454954190175153211878295159419550575503282807062016599795048833859267309981231329434761418420141576185422107271378492795040352098318627882139955118554320435727188549188327669683594673923148295586284963356807370589231794136889983433514341906859491032705444704925759360953467569594789320475458684263047563458199128325703597587762579107919179103361036033002302014748669204169250075194347287719775193747207443049512845079670422816500215242005412775919776416601719152523196762812609247633562100396007346257332119436248462601930982068380011436097586347536280019112223108104784954556820447267369865728246996548214649005848400326481444492226535194456188427525602412839525880298961384263467174332241404929209024001759298217383597666825157068365249086503311206168617730146559996974713042150293704746502864572706089061197205648693301830828234103614072225909021926235466196144058932553778959711568538926720458325151671490798624762144053065873205357918265138372123889723382491295415061559168395991855641514796607217211343795100123852960084909289859639317314055496738963966168110220736628774300878918971957964120966211559518239665958938779420053247471274617609760152136629811239334799524341950088805806873060411297172478795960295704845455701226818289153581105003317179116039432451797498344910722393038134770095610708072089658358924274924304719893851057206270057841480044512491563562415572107546663020037525301696444176434655141685466530845839117529627633096483014086241570360463989792126199146468128574670009088197935616924032827107779978025486152607224725097125227447725419436857837763284822700949209624392270896504692952347580110806707167664025475982040527715659008066096204862131626781840680621508373377586947569644587045514193905574329755432405632023114142419240481997309989780424260481138326800020844027524499308225179709242818450666846556170665664960116490204175915851242410073402878755010607828767831897816861560075826903942366430628060829666714742707119007185636514946130602232226630281680543120109480835639703526263039300120349422154366415719794970225890532638511033082142671168678059099611135049472024117810547360927778726074359046479216146797834208294655530582469962510175985698387061531043120431695907294058961193627474511587550264810173509030273262875470914306198794530892171008554964287364883790805585157889230081425837666418410860191201153348372684923645300676332530275601167808339911565841422617883438375934519352750641792052682313165838864632609414324742754625627718830614120959807168333349557418916027313229860081112030545063701035295107184211956329791821362303885558277711151886260436117387240650628149865027320879859506986199744809435551606054640828010667940762146140436829958325801668959720768488577660613017152558175160563304185595611515410774366936634893805542543291775090791355555472695302309801245562260639226992592983615825018754654415745033064579718102409075678043135964602151068479694321175798845336191480231045673911152764600234433144692606796000723211698528128235315821350663346474138295850438476545230051944394889600052191944226365357545040463190771879966204176959202155701208902568573696496078398382900996237532376139260738074684837666659408156400803687016560549696109745484528136502121612722903275976698745496488317306385297189896212614406504238306307175701691776849432249798389278167947548687723184409361017354999100323314543207256007590679387940888603591386686193839978784387224182286675416873647141902761840028281257313594386880141451991549151400223059769810109542334879455416237859917784864472421671507857834511025022030882483743899200968285033316263522223791912700869628650143300116414393382802106422786478296133825744849709091069762949389418696286580600822233164798271856245949284474763029848965354118876284430651635851536381244042017499364660592115056076165403422708714687370778657812921682345739950092414984973302424356292418004128390418631213330777820001892160189722362022495766789440806807929811310684456728540742400817126394846416402112553054862917768115323502876823731569101242778590737088418519631400173465534868427933265916175698119303690973413542117213232488664098257287727485609168126238957236140255599112739320293178246396695925794444651362377429137612158228701422507668079082573962609027421386599633440802080236322059237642087114320419714697129135160301212546074528095278080548258493740758698876496492029928606478612897729425524119722481372247123472214741465913904006406675865192977401096160311314851601772176319846215394663151442993769558244165504393958525848508254084426525409697173357319529854738905459286013439520250988620380533171935601166346833360509747795168545326310835239121174609374015010348314770111071278020990269213043769410515811241818581674705130987630080286802677352648607550362449746227422413337995751915663080209181680088297737961251968707951339009105219591313486791673360826898202712721607445753606146842715875706127370503278477001682711447089848256437467990331195992728626510300231499067443877747100175400093036671066404485667016768970980657832619289367353031303747331193158517443405013384906399634297806441484464926194881446556586401429425525156123448373680719019822637564245335154525766057820685101783979570342826595961504983252779167598079293130797728263333210903180503169962547936106252177666245940206651458609753965802637221653176227270175839517391385378860431299996462336468539508064996436089488449637865033998642879220975690643170646362064261519939603154860671937122590256596527619907645105824105665755819596210497091974430742593329201672244106343571576628066758140842331965388588049641801970180035814008179263789669168534347411609674008627110923262601176087216420099248616767326752098221487819110061354478845426411115853055538259276961900523065938877423814962197790502086816451949479881884275273021909981603532470146043519843214322763780982915033050436794668558797465306544399135175234149021374386438272067510969014187137056115514495585093262078559561910233780230784532129927389151431335764274236838358384830872733457084490041815355032923192905525470570347296637344948712768545749000893537675714926061454964337600645029410851088586348358410292336881633125108948126293420649804113767416364001325468090021920015890529332254467771133945404831049436015335979387554782212642816031667669804479215627056653136527257760848472982972275075716158692458499502144259563261993974965123592034758332668423532039106286836759305021073327232626974241976214516482692567144988996472852883716968410734645336151828760028059524077652718989947494207219207464670571132660394534625925324043535676740208887425263664776414907224722261069114044389760109551632228208338954895123750924203963229377617538151371417708937186148493143372719567885316190905462422513241598828242468890657080940361849251843816287786918450605908992798180333016908291404596266662512127558851415191524076889124820715574823787724606768311520122147311931620624048141497287744634134611794613834003266064044507733734369962400784813851301578042929272612290862459430363535098733845937560615149804729029348111597762323482933789444477176246559746355371556495430072972177846834476706420029220267948520934106147460769195624466528428153117094913924084825251753791858978323592519982767155793174470467724752529658979918462941917394395314504897782210866542280481200203518718067069056291553171661536044972654340984049849218247811539689024625306548617547832474709739578934845937560120334098041322570821315895049500918250099834739419766135824646785201189854607060993715334645614356596343433892371431482829455416378171358195396508645846640197518375140796728046174528855503312096862477926620274566737689019231985942640775904792244019573746565430366877507881245977984213653175000039190310075641330334130565156035622125672457870372657110392109345161600556008441025223431454378097141019754000021718006484890143116247507879210155467881165423472625045694577944549845964001090750362891600510001107918721148617065719561430939723163948461757425206475927055038331897495924028217362128638572207876171981888507575770869420897298040589958207555842736227169131368119252499554209090685628237660047467641432465526620773936671195678394385395384413970634019425972554578442445649716635995056540732817279751320170949982405153855127744282843061691584490292551477030022526066712907773342709922288722294122205729119281269716805693254069003618186216155019386734869195346583097110287858947604470069667410910977446393634990275400794786343299043234191947810256988931768668218372716293720373007478970150526955855544665868373962369420521070283448812267218770001512252055062740734279040557183682253640455780320606821604288272876500898225226967283130237537307504557849723811266021412284941301922590462747187599079229779773691551556904883880331761025530452827394901646169850066375329501490752608009373902709324576366727986617811731922702574154693793606387391357853240259177755067068875840779016107815422469329195215349626525313399378853296727988607787252986293580927802769523245049147370041726469434959959649788692805871307582364724449414978089186781754233739847667250733676984300139188542085671830669747425063479456733176204926915594204755214906184999904112292974405367176653607307257772862497958650070411285807061330598938256338815198318176526074214526159611703032325267286484865225429403780619111158109384981193452335537413840674739808142538313121099875764621029215679800917805923095296087876650769470326160096692052391572881048157688277720214978902732490414155966414076874169303695110239200257447232086130697681990190155918523885257623597213641419865701065567039549292519632731722751231708666607502473580300478367248493914952954767483632597060597572099711249451787509172500589467853171622850029343599464098979067771858643481012419957586734071507167372770924056389288177743214185291622991410382706186502213342722332604705217072364991180109351837180380978027094373392612531889606919613317535904877357774797588440350583527552039985196160710590224586698224205080879141577766922545951238678965062623771340065120739527276632099316049916559117399968156945682790221503721656874772282192107872021276618148730181718740910708112146108307755970272139354050957768647302486578400173581323147161400061111784182594343587525230784879733938733842692816636150392765086127955606880091954939341102973364813851202353055342065455541885664967150934287832951546408950046125895116885853313967468863491367492344543428032118752724676255580429194939398933222157496075891894831860732841950247633204420882234155838958722764267978896236862866795244359165500680300744835707889800058842045866704084450553970761489268134160690703172963285551773308767256127354621886135511133554823946949656036274256936435803356621384356213498043063911342946112994337534286470206277300277860096181817228214408463723488743838715968614596046900782178703706075184864007094043746370425021703432194439064389213034245757563452296730543600814585108039607614622330021659682840412416208290174388513185726748102756562740402963308973822521286334013595906718352027410366894799549668567197786110500836231605915068387853134943218081561775739903654036139089059524611860700541180835080641685823186333016436441659740975677031075477664358719754757785481132816222365603031361956432590980498641111387041669949611213566014766081278289101070597066355211347354291248090682592580226488541798634337673213423704301159012663853744002018893975564089642752247388239890501782797931351983174636052175643125800611468878612881702707029456500495332055797841070234439948331644681887522772212479610290237245163431530882843324902364640049462833044505391066676184089830904916616833722405795694317306324556580532861894078337740866897868600542907051017149593978563575855814461595496763400778472481935587562742293122226610889351206392369290858048357070439388677510490411245929050902327094141519319715495893976805403127114452703977071567706164566199879979142380658586386497673812480152516452280529842582624153763645045644749283308879132304979661233245696649976833962853344564028214854968326803257247354487899214871417148721913102617555015547961406349378211473342032103636608309661363065018923591673146471017182276862058354717335485398320998415594231258652458242363373591029297291246364372675341063858958392767100133225796906053977917704081070782659366468254139379545098574403532639417700106220181401148089771424952492355046828433158913915734970662737923862092395470100476449736853764481327260414455976177967630440824674056186158123692192167490765910145840301282561429928565419458015183370643965672357496290529437707264190110724450753413459050958931834017196532965357603140262105327181979623680214221723576254405503130349744120314248584903383815962957952609355222737941540148812384193453412292042884699862261791442985139344363389061871695791104945785315251360102604681190457888247456097921666797607685138776784720697889575124501443130263335511348522672086404246165046525400265958721565176545631716088430824546825939867517899386410152378196109167362224413143051765728506397998723496953843286463772142920506588154560571458212464240023785473810163417759623182659718683804993966120443988432134554719594384388959760927910775738223254706497954262290453958450044595295318001545351761983748127510698077064545182945715350089100252524651757429727695393449354837405675206174158275739588264643275639745155201413318068212989386845126507728423813153130952058717854785152144840200636891600364677769787569778121060192581170294748429692128924548459162589093354734065649532371571980901617288113250301569499383958873136858356052518018208106631675583059098774309179798563873069247774750992495593650890693056259407958217102905203133196754467076764435476098124935352403424206506257197102617941596316428587310563666266305115474379410097840950461960190210242696390566046639348298342403289886201299537184736878601335775898202090148721672080055187901697971005018459732805009675112639995995738048763287532752204787146619510365194816512281692100433689970495811555454743585179017736008848519323193164022826476834339969593690193691595230496740656248300998340163615453797744324505013843814344010841125728619043027057145471241937328394328382925540780650395293162250214713777763476218245955472765315626637519312589724562831911055162344608124971152236061218075628425147360072744558404826883276430879059818087021132546997441136338136958210898419582452800723881049236865387077725927662352554170230967377220719940100080547985642991239323266751270652740225381591168854230093321586407835769909752442300552587760982699246096960981041349926315595055571563080894484919308614309680075445031487164727122917989387590974066067795844115586106704603282470223931118280700314166246992346183769568137231389824724250703875905318764737148724398678563698900369769018609697006725634988982316965246839697315748736028763401782201327126648082126562378044522746107815196662933504927246111127753045487383496709000701005655684938843899212705515164991980073121895259596774491508791991552208397249150263060710129934500985475506152670036685732417793220628409151278051178849475047060550184359795987460091207964805971486253890552739494479375291036602354478849343805349648545986820881400423415241855841026355535350654721204174916259129490810714826905826255628600547146391227146820686319495907318257170605165019822559423739439177797305398380728347463611424171552031874616254689477123244376080775725898952471666030638945436361393878561635943376372493483500784857030263602545025605268142086285335798843440192324703656626838843366891447544876440940353251843583977310557624839650299189387069451807479445722274788091429467568112491173027008581288531413245419419854628461219900004227432031664056435411411295285516864414548716628074074167577802669877231352847302249971393118681535134228248409653228903678810728556184890537998481213824538803271933895809131369402697489710305060916597595296527566883966420840554843712743082397554583962547748005505496097221348701829092116344125988912078706739714135426633278960177067281105892311414230512409717441993610876687989125804072490912354228230514106749847577814593066106253218787590200289740525136002386449996371587405327133445493062730423842055728605055007388327259025512528384579713485098407887554568957623693208934306953229738574076472827789596457961381929346483756618392764277962587750037277146406852604327918854064813970072782471636153984419635110556908244786906566108802838951448779995764225279806507001981054393974934705848137265568736889489041733083272103271679593816084898837536612839181162631022441521892907928338452957364203469739442733652119541033617174736274890447001345821588817377485061958872772272739309172124414266764382637754549154653656868428971333568702388779933061288838873186614801392140412794753317959194037735258545244956701112346032386965194158945257357514963450281789232299641962606257108448233277222058472078336688725219548680656412491090123766148663975058891911094208391931931922167241387017091464565222539196035542433136125165057764396391454630629993619565555272821526483813231949389591589549927484306645495959668819944993725049325501893135236376386182759415504371936204063847322214804948100927211669005876161900493333951659061766867410062111742896095373768202030269718798642748244532224007174715874135587842081224752930919066701419984733117027315799037504087679713469226566503457261410318760319343605550204943262783217106765338416286349394901700977530029410784190685429208505462913269777362861563295678840856986029122421308341865346306558605314678836815455184632446374023958230023937460487718666515139563106425536156323412836170312614094547487900314314866698766880425912831532586307784042460199174238943516801856112698523378764485857866909252843250449735873042201191423520224877340109850345465136150295092883689397716843819911540378510139644846252588550186296268564365654364741027663338524191818040830532228193179950435692700063869553871254965195540209574781791904899379827683739776135696287737746803687235972691085361126162541860080388314039347168135014360340841933593316458532383034101714844480110234899411777936739943512674944579800342130353421750067513041058247303384856207033101083754968041132701125851599900142612304116267335677981537500109111866749363110438517797283695104288062142372226221739319148678718750191151146829135526559350528002722332845036063434391881861545838484642089050358202506318388843963462682729779848545662321659258088768088798674857915717036580733350922104008743509186519081801245169723813097191874575489429972147151347155639295541351865366618408980571722387776015083217060784478163277099506538853332818714072924722836264940070157289330767375834604990721175563162948069984880086017276422119277393799603354435532681664272432828860023977794096116920031854682643283004633620263875035742946219145843730575578949712523638837896427652484585701013478546908836361429441664356090532071190216059476956927683199351003147132752361313890356850505273159197062888982797840390248625263399597949553020504778744242946650369846147210121637716415708792644633569401278023184653877910543145637135716016480797559301722473741250104389907372200914211682272972649311060271038687782363059621922911144433011396511105022185703741715917401315976542371830338166350263707715504506436596291149237630903105037195698805351683908745337739048464913967641014591572715292003253694052575411529353335917119814204353675801737822831663918549268743751953071140519407150993565794222862851903976756574873596591143666020600641353032873086480619040665426147958969614888413569845608492459230472616433554580068680509577430282697192749110693223064881832743160289433933230641796965114173673937583738451348989998711648469490952583168334776489725553484990499326834125816872424539645745281622862972293268963427556301267079335728837978913354503772883266307422664635124010304464309840547114623035220216636293155353280467853921612086106050799769700342321206972953852242443018966391733894368819551077437391985336743317054715675863704022334980221459626224446780142173428083740451349211284040540438490333149774553892037935150363633083049591705557787732634002731859273658168907748293381030928815177132703844600991081150739948559893690793240647371910070870665917107420932937105359379406888299851079290905909343512402549761372153627738762562569976102375877817214250103985825704771397958425205496655623250275491997062711966761355164852483357334452515662445181315895792559757380105934216170640246952509982478586027411161094104944600774709649460859331729297419368718505351357353695567267316519310164775103792224546752104904463681201100139226751680085630241449704936667069077182117769028718568534214395787431222254385309241761844210173056055227292708901568030075517935977957178787159988128767404940360750688779416564918545059593993378167241095306047207039014724034975885758832635814548261991064749539883340256059223575522607191144422082758720659289478078854086730624826085265755632779746890149439400947630498877476936925121269776215253516958407129857348165017034195153341569641199571557604696861375203258911579976131961273334584864828664987868345025840063815837535260099967060037249893171310277072575350817594754442217040259148017992900497590294281431160165008842040121121698655409876628855510296875066679983026215997578488179944652528077788185694890919862424853817612564517917379629394867588180378735412683870259639990801935745607856213081902501967148763730936463174773226132736896484338004697916831950771958933542693486179475672987488218088434979078239663169652097771453226697593184934717587489373722644257669167229872503083209377732116201148862574649356760888467535167824866208398132456252343898045301724861225096290828891901482938579482408992057436095867307133850678001465618877648175763757221059698621837400350596598445529784018215663237971340564835632303804679524120249835529765614611738552628993073762331458744182617580864580271061330675545599233512348369216873967773838274154636840894825870383562742968343855674251764325828241887482004542197148647742005387206678414159051806305583898441708087165345209056468576603314313944969270065765752802225798136016148304587754133077754770132687203700978771414721631090041384061290962811217460988241841795670201789545075938591837146931603951642194953292635652569223192326770645905868667725736506988234332488364269204618757349763314711026865166282930525773027129043394570151560413635932264775750110597453152033376253200669350773481297946021043158439664404190094596155066332252251946086203457420876526730065648559703483921039044200421262534630796521054546288520382218437133654852819950696445068307607669165629231689189585555748474547255128759418837766489575024110241156791467629636820309941152679050641466259502460589369313506147967205813980267481965022736766169677634848737581558163171931954962893218388967629531846841073323575427106315422610103543592123443109028258831680644129889416604890254861052004617020164790042844147234014443478712003851999922815388881935609794217070670816501233251347599734840508611097934976855264860858745857045388695071430423829823294950471426443163540584952228188935869318779314801953100111783171172036461351886654918352649731802528408238584012037195976493808376470630393664000535962167678447412888324382989116781964397851591022378052545792756079040495353092617590022202388719480511786363642367413691708901632247944838686073289461497303125566599432975909568503448905475472219700171384837431199703874838337033424447192954229084326055251705684527162475688496441831420798674445270300689653591807111914780329302542116996795287952652756627863629829847904138691107434721718089689291941687976187816280572750149360947240924059127106716995700153412478127109902431292071109133314428711519201183951951190795300404538117942853288482693862426522323687483494869730854568677751652753934228215643829705158308713550111096303922300809204441276046102777985949981826716079908290821718402930308648299839093564104625149770000890323217350845315134100708681123290172368542699936818966931385750931248887694787089458676117136181832268332697007269946676604135372060492956659945183650712889484796869609840412204482610924179888912049419783960364362885554763768151808829047200448114037368334505301875718090036383385025010644784645744251005525195671213177594168575662855790629237354912532440730192102154094919530455541067181891115919357805407985403416743723190149611507094417744650273602751971383721997634781178978754435708474949913692384681253501173642516933530053299324528611377487948677201886247153691493398168671181019267221359519989695468648927952536271242791537862749349806540931551363433709791659342368337204493755886983233161529523040753637980566608250059450563735738691559684334513127407291285743951957301999855708722920920266209794886378850552629187750790326613009619175536664783468761894737412245077616051389368230712732909573566737380898453781274073646813953969934149041482203962018542816001773371668782465405154174886062828262421714934417105486227736346092854200429234340354196311257059725979535101867252262876038946894404938062202274205288058307755052418517504568936281400501916539886462828727752747166331744145528703077112140072350250819029747483036029476787543444794166133010214590086541246592298922190646326977584562920383476952993654033775584373476945695182164365861134914778860742622229705316542498927163831774663035641556967663642726307313313881321371052953332689446259898201469672800640523205549215076623188348011789490490776629538733086996290411803974231935265320400231010278641737515487977422887327130014017266295995654592567607920513216155632225838964775968127108191345182311962815680630370206233187284231088813021890915055087128201079744522111914810006806130743095572687999681951442177343551335739295191308380328514517437077468575182968097926153029077443794654381762757507918807003429228941174118700416699634226166156857944739929717409486905620593554923746895172304262406464737810581696460942993406794934255201768542620242765976617044450427841000764584062828370722315868388443266240271025427410066613863698032860416609948747300693785714226715384493061582232222368728533476551400097560286042347442129384620180827176978930909307699928252445162477866001852894070567807983496832611154750306850098962258416503157698888432034311151001917838627625948035586201376267611598589947911851890656383310571581107905737187921380670311256958819631677181985119128920036337450396713222128619098643856273626631069260716623657998570256845060921893006928653321116475513109796855250531416109874199703243346471223358767179088354409593951837396514275814498053362981992518580726637406375042487035537952640250077320299701803805703203627092570756259673065664906635823760589527421590825055785133668260225296022495306987691068377336621791838977634427290124450328156330409581577133955871610929131068607118083611595653709314402857958016726316069820458480856739835694116070216636622382639105407319892310803651477441558842444601739666792747017769547465806336731015623753190670873492699101669219150940855533597104834898351124853586695986370830672910034137022176893143663123615017959939574029014543563127707777368349159058146870120499773505766423143651199829593527951658773435136687125244737576627736390491159721826634777400670492893135235592171093394457852813705600861681087889412606649385615480797850416202692512986088930250816145537295589279356506170401872062865843299110851335471847702051348009558514147762183247729083794328602885311578712170206218635534845291983748579489275908666235851872701904154853717094365800197413314273848927080756541783178731477795392590042076901415254119869166036690705560071239239559976477525912254990230546953535778853262781303053188157555884925897407465577563535658835801659561957090863811418744739623500273110362779963152739540902710431317581592755435759845229945340334437344627328584388973206489733449551641979896549107648320363106323167042202002554269424951896716441120888381862335031435802240316225136844512772954552879367424545843474939337062940539591740185616048788609773137397196102693013639414214169277490313168862321637147150941736444382727204916731342941407314383357410850902191443036526119699335795624470364999879333099429481437741462280026028870758456948241623599664186594658115957491612786528126960403105229388703852003968102402505025533089570331104582719915925902309999808298067843185901021076888814837313142166292790534560763243133119053526588482982560324276145189735754029109213113885287776045888980473203700378044715506745114218059805589759153713662065532133991589090705784218189049790025150650254726863268605221628860581907128530958097800497467603243290181302781935335475399394695033195692458177865788245112457800240023993593448307793370303212841888781405019615597797115061346570012274209234840386238415784433022995832703443638460659029903539608700443277338769802513867077809355354602534497085011814183175210084315837613887261385471093139801784268606814223928693330555195046594346353240066427072888886746483640839255089349795334683920516169820562868575568555994001712714912064243091300190785386911677146054167117878957385651920934959701039026971322508111217485394349015155918814560013921480637821638393820200161000622219533940350003958844615105439360986457623906398049663472194983098710011105504706484785661539782221540081660323494834012467200622842345174606087674101679200041463860980051746717791120621644994621855841759250381759962897753623691576571971070895181894985985369065706587983304471048376810257114305013578879753026948657174215173862720087514923340634899677508930956802706648574646549985498839840746108554323417359764470076504531645632570426399380600037059877634808459128403449822526340332080879594661938968477747012044842528671638731590502880640498434942187405166751782913561570214161531278771506307842466848586005740321846068337816452330521297491297740691868732150612175832136412111273133452771593923954344519955007907762503098441970168629595306821541867324971804434762506295517373125433365666772629674308097391114246366435695517438829445056956927019673486480967961207591482543208011301685373828660476382843599653484047172864752799916193808341958257727485011625228236460063689188397194487074983025374140968794966967950897642844852342785030088208893124408687858304850495881290436018944876710364162685946323700679990537821810454968168837856728559978618813657510078328023450179402792529065205789421599177556026692878139472015474557013422432385751535460951099693488124109269538649239578661507332808167029332228485737679938447821499305346237765902455265728328695644271727990822273518745986591874046836006085210519177018942910026781351682674152135441005803762245984547744858420564028895472580989744736640187545018295044350621335724699635626551458435804049617974977040949213525619252771175169200058059862540979014844121222616575033458608033855022026254446417279255943193567672845699383880518818360168571508421963680541605777826747791924070035744538824248742891542666875384980964384530290651294813693700746656411988668706891721679174174546997562931554714914831126434710843981828979272590174644880310404572727289303328099758645757788515549466288411053480531130467748736273527915756960887941785428495594690612731604493454251671390429209710283436448806369442744636585172151039988314620641250273102050955678811624109901682453285567479161191247569951411946835995885980188639214113403000959706834209556106827993087841005733847318214780326224497552337809501365193141599179244641587886198530623037015621927378234474258398434529617236374351533136658010933727264561667870348478800785401266760606075653166106541516248427618100485345812885510364225632279479732538248025593653979987189732442507965965447989744716715789582459919996947972943573283033268339436991509562271231581873923275608332473625104522919393532593011772716657339399872230984283733826699492278983933235890905098434464729411897083092805535620167367089643340103275715853302766554263363671316371614794329083803754679690209387859399947599011259704934153471219699472619745688089809098089129613176883144173931948452152983957430127953897009852057115296747271050776125369890137606650648821156737958200172199833170455858871344252676175876732822429616234134428113828932288129192180349563187579572887206710222255149233451829112983452838194519596095807629647811248405146128789757145044396595062121077598758764078425868867208356928824877122103013972268177825362116640034898958588435346222945551317150646677227175927270962409274917328474898291816567653777401287538440023513749560850725995480489267434438795826274181357300933341129852630584166300588362607957336599511146513560369271619770365585535219314997428243078344856105636657221651224052586122963959858635566917975064726363939011185780324534111991488836921607820591900445383952828020635121878919827177462668776495847479325287925397738518569562714187680178731442036933390968460459104592932019573151618579412195454822168362277722895933206190554356440207841838955783600213123552455170611673289633885524147743945215114855923496698695000165518193717514803291605515039412618963425732303467734146398744204725291576731506825814121361232133669836758275899385909397922520454660376494935380775117129872190756819718791096670765747222452890808307568968907239192537001458751825085765299080723301591907085857575385647490593521610186772995805646631088124422794345682041275151243548127829870323402285650213090254165606515530284034848017185484739691382777732732836017791138902990008944941424920533719454995420436001823808890522297121019678404068089148476589513973220568683644841544932418554957568404259342580203580192730961285331337010336774011735561007030623820772292168989281793554065421540603407833707764445314692818851789696599947578528728686041738035118388818144697946786587175800668759113366445786929073899967312431242737647711393291823736871164527103798145489717814058991113079827909924405671783769776742463097876959603873472016852586368064227213112772633586057320270567197036066715277198494036742708851479671910330627074826789429166556703065957207708165338128730585162865980477236096837860261282858003086777753718874617373890385413688899114550980882376969795599535749689863499930350614989302368213850743458641942927961890371759677474783552237148746229627729950506494385908163916252946344920559764169951850954029027252728152854609024513116469269103564263219699351380306466658243907364245986707089752182209816430552960739976411667164470765170550452644119075722780547975578651082924982983741449251326520073027755922969464852377149219897143551149856549265474058283531073879515091000130758108648519334080549330405160460032924981973174656711040407101259508728177023948031810725535180523736326551208351213629625147267741485008951735563429945494212231549289446347321955547993059948216329549679772773113198875797587832186363899537633542166502101093926376170225419372300248062808443810445446103598614378627246048173940402356226554909482130380039756216113583507369975009015399985137529222118369612918595987039145688606258186975614994456134130794750075180437645132058417265605486831972267680830124687567225435576073593772923686148475811382337000310598484214699910189798323488335972589857521901170663969237394600285736547925748584009353640533701310802222837393825818499220110769095091722616747944308826390424361588383614045715389743463600664477810081106814488210232346631767185752215973749126079628511571373911086945001992839972905541342896020755377846548112372437218858148314273304625651402029870964208009638458999596500326214461931242574528543802754858630679046433474512292548213066872077379166002757443407516532621329487011870010419285354921195752330642100367249679812666743967739593733472408062274703016292955779259558554315393443249131289254176488364184944355410937184737169878295760871845338511847022162415538696012450898126076717451504606870808846341620282057165238882613819751113969225497011977448034537460634344466473511596673614702634311512319251809684595176372197893132253637354227185827486727146983887491487605773335050125911317692964388063546093948491657023225029923330579608128656045169451697092927974370524853008431015687928197557828475602099354153842724334082358485433705424972243597692434220405974965150047007383916022446301569511242794036156367519669580359984518970430311232693870121762989239720399745068838832692473507742015486030709440242057387463439927225717465876251695745994238576114389111040272497961493825818954691209273579867570107473400789937669960204361594987789565105417916200228239908040113180572704365964319524072336646757191224137859913739722055128343304026262031557994785009995832698443363688045346894383078258118186694152607363785082697979025516332771038301603742524751330875980052165973012186550571860644348724640926010443498948661856479230901714263103633941263534939825185183336979370090191782270692664888576510259550285045491362936155736123661264791427864292516783334538816631212075883026253793668968836390539999498528410084932666803403567426188852021670888183960487620853377222294811049568605831627925331592348014255617418662821446871757325612442165741249633618083997752663872003086009970162901294028162447305545924027331307207971216645766398520839244099565944566659931214046067890614937563355681264746031269765656449442040681523919367067229088238840553386707686173111687266178451091702672790996894086071750580750616204539270379703233451945397399992132127485961824280238671402085342131848236979981067127027485323217859347605015942954009783920010946039122135336354973147497281458217624373601803452498459220893703246982921741338437090909025680259135843873344597752855025999165503221660395616403260485825118717642437752955157964479108950729383859098524237134251464459810407310482351519711303203237811148165444476196648311356786208298255789184064882297618183163896524851984791095601840668995152586401666948484539195977865026009326854215088144017805063474173413197739187745518624651804316457004558334620878290220995294886754043107833314824529635366555545000921277861041195776972681298392429189243221021747694570459798000407373826779152040491370093995548564618090446826911576273815403145747282907546271691047517515659071449693447768562168446945049393320297768281160375735932801211647564301722952563753154766081216856902762012655341007367495003299634923143707025338862105055353315030175265124391340860636879537495707624457598058840339360692015494262064214440319549044604884893905947064908729030492413032993031499124858711561054281646667551466217190283477630963669363433854361861573180798118862558748343561763999061503645317955469755964483134360039552929086408754572022413473240071982551213072557145469140455892255453088931082150989697009659321892166354548552200789383771326526615907562460860849296216855623843856359105882995743414297259442412373316805780432288935660234945707408774776009359902693478517138322560660747368671437286808783572209289863505524899162779667688979951493906432381039524427674071748481642198743070812367753389225851768655731838008263090537784128638652473698642775086505808339084246839754426253673103604867874769038621832394719521672108783729798256261549464509404616834978553133032232242453323316584720328779564931111553268958378102975101609742871750330102870317484298573580173883371275027319809960310516254754715491037508436399941300051365118344086589669906968557512482226868957333810957291101781425200103394055262448217002778504985219450621611693786286146208558362743348090928913107322286557495473008974970216357123989421492032448918909738561388264472970629830920574916567705024990883357379711635611713226683223476101153511692563273045582597315213688504267371657999697301725006795638844134185854995336728707191108779007133368942063273974202180341587010653584553363008923990986296286254752290327529134562391319507610246810043559262830971756974273313848231206193351517878178071793827551840001757938164509764990885081156866879730510761267019892064578927113379572432422886718267318060738780922378207994017338353331618279912595051992458215050254399809432749073598752743342614803807271071532243984334303882907860594727373453611865928746967240368616808240819358915831000212204845367363854599362591779617130299506557193980421836110190690394612265664655359099116557484470272235182958502020907910915076419898752093983682970072945001498798804686016944358548020267622231142461470615027855028541859401963337577007260202788587954952366514796056364542820123887176195349117314570140095447760394338941549495111186017244961460077825146284780288521067617940033996898742363916441497409876212833145835368917418962608597391616519166385919842093709651289904155390978830191394961848307486983347074081980332445138176855057144367033529696282459864259820270494541470786432437895541320626158393843761000291579970673814857730477788952294611716309757219084345414773321422910400056178745790275202994543603645346551718618478798469786730874186854853326309468829032520054507450053092456936815984986485660744774717764449460056876875100363868720948766237305094796130574078538889348899117658628343626516895901352980238006633042043035016400457155087129853704118026097961196815421108453151218985968832174215998998784082174521140318079661622691332479856146212157591550705409391498054397638851039578651818466435252628218500237505613551077744082279626156392811880290935237482887632655956868006984884794838269187227404730556528773684928529240261266522660264239935198151764508687751462623646888059074123986945698497923184888663490333847530211778577841759151156166729273964810565363510081953549810751133003668555100453699350726975308029738798858121367238431490515588724840092371538948155927881552849200942382629587559116935055208030452188521162956502618311280139336661838578445768276818881432151317049300684303001310070928345742117486094403751928367103546222262278358068495118105063013075238740867765428661221166274025018991524406570718582949624639979601099356099191549062812071875365976059925209298603492039777567419857674732433235451194678191632796960338860826915975683520681488294383705569193235123083130279390886012985169807019143765541912725702648378977023266994847710060750580241166445231405470940737554961121705407814463163555270588743625756085868394569114730795679365249373335559222626390939396373928185672322844652580921535434124853514915165765852553259636128082870176928809003178995234835930774285024590023606005028444129612901081178464421467837519106454763382348817452338384959212572168326633241736184275843253950757247369621025102607885492223662860831246774393211107258174080477939226087097369594442749744644580405133732342574475119053923615112844885656736029363723717101353184170704389086577640455227633078688192163372579445791045851659899843595825960315411813139483906555960549573438851712685797638359320742191572283420149580875198240428540728637225776869775125205238059727398377967551368689317494716262855939855121588044996473925118226803218106710897961188940160523267486493474900433168411083851312997911734439198387330077960772460720860602455773114506624119345708554556471423491127339360218158804073732634710402253065900186743205333687034616221905805518603446820474878620565089731244423066509952263288066477175750060211271396412166179934781336336873803821309902464398891424818877904901662488010431647941738232579289421125409131382577972832452199921117359092338141613620726205946481440991787120715677685910201644698664931469918071909186038747930118756616358977699815787400736955049415441387010402013458965280696107217229297654108493245238125076536644306470467281097855234543595359049593726116505744920814922156045280055583051973971470299607620319511219556509998996718380790530227495188731126041544018491352454129548357479424613623858205635108759523801775073088826724252066827254020542910707747911976809937455142994516445202820188923411013486529540644028249404289817352730280899077160692521205037461879686659758087722607610002850174107150087244852124310228710329122171900397842032422706224036260749926171679347287840414630162477591802881290605624835555919345765732092507746253605970221800963565428815892518943218209544114125597113225018155296709346761622936524205906858386204710305145174812189230181009716695888036064157563643890984771539327327815964932612553654822779988453128889497859654252363242106917510080983331708472022229896666818190161089970997041963837677444221762882445301346992353383243783045171107881826222104492335193393768869069376354350139493328051986196758755494564634485103524113828537263459761552302768234879744033735772935982975280200061665918493531900567675546665034713236670213150688035101963487778460726934081872414691978419605123643576344096433471043799062405452651463463046912739418938793762951484695708984175299974620940560175031173059597657178198782620123965136866252587075212081274468966011283972195343534447019712409484947902566733341734523042666958310500560299958598504215967568767047936092102677764211446419851213373838692410198326230000861995523895849194909994040163131020347802951146949526626347165446427813951786118228216801578444382603637416418939226692559600387800457262534264727797615135253071784767888216038012581567233346082188833640365374931887497362587458396136907649307310777392378008370556149126562907539692063351718282172903875020011212635342185659098147325869446880065790715944106008021893347090631429275141660675348175410012178561648535823122168974818294569213760223196841726152004164002377445134340762066816006991491288976928237241002981172251268484633243946553365221873866749669418692162042150225283510131212738446214650706357505015248263359148182822046177533817760651199571519417687842126465296471643364467689332420794337218463209670191514095233386287802700797887341955385235438759208129162947458255841584419537547445874137935240011778520286377588752110333027219587709124715387977574031649736028223008554049646503745658485847717255849950783727588062540898668006433807464507658807241474943668561388828553387969381762504930806683479194684617470264537118180320704467348908644425747939053926719334857907664116452119473243172835468211543064070350585415557381715528310098573548116000399750664476191271110278990394567564184202312977732727719554463220035683046379063700926017756352707362765552881202267857503989787279596966419631496368988570326513313195252909758424428829372606949133332189940588989204268585789921551290887545841442108855141189698230045385041915049789840862230899011914259775671799964267859395222829804796099723958154120168203546080381513996220459925029974318480825726414652859591225287199833940614680764562524975941383536869711362201689205377153043830594289682394426211792316775356417206028263954705890762619495427740087926047026614903939502681635654281996516676467301545288096831171606197509692908953248563759138215789377426890067701203727422880696811365411139229562840969190013507953766723367324601037878220337674197189700684587705526136584975195571665816418740974837855189337529290808515293821655470615683183401378063762731169269935584251933980823635471836688603261953974988812770257109386425245520699264855986360517198619008209911516973973935354363129256998224135844830858090829488429413860474946803755673897596968083627749709128847850379956238437796118870058240816018390379429550681864241457709943556160043386646857638179855474529844719080097274820452039072518422283743884586404685504068454034080920133600621505229701444174131360250276107407047187966296046264199578609793155862939484862425891235514557710685058120072813071910962848252199272563544077534854209055818418900597821008663466830867490293066808995123668494873612217747100356315425384780450678156788351329721171702149396566597899088338294263877062079573199598416215664809588842305490268677607623025078780075840442865836919521032897705879709319615931921944717075820807890254647858748422751156624955795486313576619855360948575844255028385093254089353223512596472998524889905899541796539623529580370637208207595695530997782976911646508927744858658158887818385692707089352834992460284164812313940445699184837062715643688109784946476144148794108813327667302270897711460769941757241438888416773229630490541590756149023064304096447466653085997328914790926979275944004556499392212799916092082761399626336367668965169947885093043495520509786271898581003033601616008475947593616682516282740945250498531774488751083178532790281594680044226476925082921773476402710442573087806189960918856168054115032638500926038022000771512615157926958959666406245742083057712180864266191054808099685248138882101949106565499895300063798758391608616960915988631876111641167291101223569978545547759711276231256056983223881948443938734399852404397533267327564391632188993983698586403185234814027500702706725118050271628295420723752467859703537636997823198463840694261433983795891842713905006333268826527994559715398070734800960477722360940562623852547523437435009451460285733703041654785340574917049531785941177038092485248668549679302480546357975788459916591021168855615372209013249565197805084245237931776039835124790229530630638786038342229887112705084392296595384417388024208135902092878753247092218311802198057726322957704323950409665586779385914597769771934450202189115524828689635991392653170791083895018859450193013839326877882325375398014225522033012507168715342127733448983547612291769683753768757363550509545438007273439432630166008322596107217928024827708121584562330048361648906284362302312254439195443894046925646307904251582005281957762908742885455443269351458197819734551405551668284354517072723311073818785966730487347080436606067821926009880542405766338278055886709080780489939795201627438354449292766515802762754414971928532596809312511477237705674015817912404759762856111294909361532189221996089592782611014767746500083177165426400335442547379989294038529084641080304953736115371838864914922595408138511088755471740526430851664816254612318200663415066634246366719543956032946676189286460903061654589393938369361027795226451433613744077274149682376825375847733075669378010730221674526091112265297260663589138127251185923412775025712849820341973843104325661392565799547276042796221474431525380030151761982108407409434769265731671102491773523186799922570232256205904205082466337965492584513916076242520246481344147313126050476411488143324986943906059148932432615291394299090678501710844708507592390196642007668455499722989866905042878769014101715383532264366517989293691659659439253796499311391808987260515138304210537354848757688455797555118075904165692076439013772491134329483339572447974971765860663060968585357396497008226057716730606249672563985389529164301156848933707190807904786094338161678166494703076651999314834909260260240317944151210472936547454044464717852568176388185809875034844796017052089235194521702227277326180155719102185835282972977701696881084947106066710272877436659003675521845641588079593988257856425621517951672957016219821617783332304357633991649582674486718997400140828297049041376113058286772152743365524323419789596284022593118227287076845148805098816446230630059971387040860653714511017437969833652620236951227888911255035910370930803642149042262626937139225118014607208884886483717153193573616655141487481464821974961362756413531493548825430257561227447504947783905603212179833546920431172873855345604928829432283005492702653924458021115008700861139720728940828862989778695036816756536366141370309056729550136881193514705455493864796261595859929157914469705437899986046661000602501450527191266666594459215066116491698120441867669413415373214198710522061687397405020071591394328508793072118176798789768549188949226273194534044610009137859009901916526415332838228943409977537745247361646363188060938334519127032317776423267698425545507096094783110533732870876178210754557963465999169886972577169783076292522744354645407375644253823550347481429757514109563102360030257833078418335597382061728572156627584918295286292359179922034863708296657152128428947030660186860810545462252932841293468537740360492165756046227861589323047183849407936318715357147923142508284265436426283487461707784118036709790095372944412366916165921962465726457369516214778347625086218790394666509920029269996537180512508707724080289206554829892888795705549999518613563729586676222445055566251866841487049577170092951941356536289388671804999522603468351562592905477611340313312991537293028972078199344112853990187707148385949111139621175386946587585030715754649675542374455682261114135688122755255324480720932136928725346568255529136467231480465778557364499616659403184300663768098792861104942942725991580710262683282936455723918616991604609373596625463782157716195865217105487953704636655922683824805448894455428402258359539887374092892407019182144824116719167128521247512850054364041483103672151692256575475626298246140833542336284908275721419781891376746313241759850023987807581094046414079548029452112795983936391610189645321923752646951614708877260581481677550511809254830929325476637568761990935352853643670393266830665792480515062672129097169687982984196900337771681100345583762207635975803256921845455443259712972360318225317958106482163870315812975194550296882013301330390171938517242063721101770879160051439759994573255066207770248010006034900681210174996167568723971234402361293577157661687851325851183556924047833708802401996002756796835021271358294600152352879565356951593124797655508672178452502862598791265819089155677431756370476274881439704675334579579795671579335933765245097997629489815759287766903575988068367443093272361992406629450971594506766084391399071818385635119976098979206323037083730711058849992934377222124955457410333985067765944275340844936684627462222798781999407721766516361843147391858652036794716413103212883511709850724456990803733024856797102182434768590514781323776779227189334937655329342134060726388249276784588609266424469789510595585270239982859828255533901934251169223338958423880983776664702716272557833379380751891209137845916290560367450158629985370306139709298693406309313975919195946987907095869643063194004036636453414294733524381435588377468552712967733154680471470027310022173412420354387876034309145064344682606255738843305022451815894721591119647896127532383869926397621973458878081990019380968980428995343621507769103330549786244176171904296301491832492985686087530333413425965324687582406283925023979049726721850096166039517051442830637062149536115407335291642711947074443569356486436816109178394917415218395229278898011263121278612354793565808628161130149889413892164469469988511323124531665419436073384780713420509434758353378960357970592686992528879203070695466826185344945602988196808158633211148438432030296186398127074846381100917593009126852629259848813979450254260921607401646782350529830499522407489111051760081692106437474614966166563458652091037090126319140385357948311825167890599536807772921347334675989713875608124964946959432464392273865986468655865383374760848960758371845545845597759593836981009720094509847836161693308724075967960004184427631101823911204286887124111371574157557500772385536614021132495844295067576228285930127766068214694089377804403801502091881642718138357230302709904976495001733432501319787041950359914111123125776212058692334729319906493047032634952717049136300662449205271105517033919604819095009811233768723238762276625410336621385645427304767915250937838795375014095656169152081640124760759335006606451924480460930562580226126749812195813704525790825829354701890667409669134296105685104499064643364631592700020556446657227442385917337831485769650496543857752426725525784631778947640537490298666455503836385256048857878871140592757241521297860423449085276314570771897265413589578777931232310549608330554763676245756456343151232498179556896505608753994930695381271617399827518240311960266080221306106768001557744415678302021225230233755234688317045907199930474240322871840206615601209951539982825240694049765568371515584776471095178785046068558212169367146654866019325203647692334299655447731446864690427994434431381646690465684028823465186712570387603445430915005505106652338957849426292162213541719224766610330317194259687961836771296532677738113796089474253889245355692457718044380158979490954372192078246126887385065229300745905037855387476502409439154276161939599747200766822794593514582992643262930359270832959064371260977454692024876762922370449717537248539477787756235066554438851121662876360327248549659464061576755818227564919151251353015766664097124689067427010629088558690208359202548140039360381868474914710716109099079872701259473907337017794891739248608947974959289529512779627634677595811043088041628690166824247948039827561161969261407413798165618954794533034097279003410809443344431346939088770729379638690289887972643367753874518712513134404680530866944970947217624771935948974988957529365378235386544831142894659670533712301001925470672591214869690317468700866018593637085616211857159815229430912827700266699876209252276023168332898889372823090794368977882666667576499068663475596287573198898401408065060380148472922019838604700048516022673013284220471263097140034125470527161390378245725853392124260658156388384234674183066630692143625633836657690226204669644610278658512086172443696874060549629723185557851771953203379286679820611208079846838407390565771469237794489936725391792274173110780264570415090230011629383813516002807154400739305884805949351268381622529630687333032084162721518778719377888106985913041824351682212556519189399103409848213727876259429974066266504783707683290058459534862952875434877909795165567837876226637314157383365766403779203232711804578153925790733244906583320802173303767254733325124837653844355294821046765359221995513810073720021653874095132566737632905166863062254286724263895514293977987398824516603756592955728798249274979168636230451497884203919358367914449570639397473491708312217820796049530357209051637936149807816561246512455357179039292309498662348921285507234713842223844096175763548864752377734765660665014639649904625446665952194929620257969700288626875909178200538585454489147849798881918802646245764423000598539765067606346275907885498723133185574579304650957423930255396465900623653729835378515760907994282570763727369966774321502043733940754399862996971860135578670478381034064135545050518179099252854904224216290721949349694118814179396454111802297871554691657844153753152622803008332839257842660268693826708181902753761006222055098592635749528524583958709191340399880492221066976722588932942065606460679377648515139756621268608273986792982511710588480979932345476178096775389681314772821402020453334534413282829852031310265759927998674761321807412019457438636283820051640809176621370679525375883833219950556288044522739218736096053510123528521664385303245771393505921767084160160158244581796176837297729782095894367955767742594686083961383087407085863073057860007172101242366310524425519064562170819086107022864521687015612920507808995544734228551458968481457338751515438599006171963118340048190033450962244305457652918306675263758231178557540517628276507416373707542085296034340539671234378927962733117339549516015261546314982028045779231355184703684504270803640089209661005410752551162409147197845791672040714215972886509743881111475977660137485761650585965298318223012353256606688600781948143934245425187045767197591001654670850749812005264907955367727678152497212868196902099556855792334433579547325013059202074834035495513448138144194725151765511051750601833330875024574434955241534874286645511181016248754221538411788826918579874055421048153284773164176346583672564123118351640264277970980286994338096214804716990176541419190129557756662483399428214017969074942341522769086361978983061857241258245670599130684204057945519499491016219552999430832347799664416362308181729475759600542417825026399116798017520228715186244884100264411974564684464319533133420701065661963028654666095064311069450403616192418858168388963879071504803918296118785575618196811075524711265948472709945599258867510006094809556088806607580723335449311571039512606745727212812608810207500851689649299359374544206222847887086179867778525670397195462700017453115295065064674339974465437050969924681331048546202088134920962072723057308147941460684199906251173563130492642247568901200594442139866949034055434969350586768434354891702384594514836628684565870215922789644379149451437528536905554758100601942649604643663289041778929700076874748159849269308889644485527504322250578825610893144248646090307994694694640145168055341547909110330460972557377276818400610688763685195691606387807626978450022098189174768502153404386378006055589549574329986334732875239058804317006455853022087921707286785154555460707885638028973764422059989032739624416529747423012176972947846857692578057498384563675551602293366608511660226049262044579169438867182919104651170426517118746917267800839211881295791343875977293056517046360553540293004870499133380257102210561480401385982958582862960102331709011432821032022790812172809525672199596140549463661831125312713328927982824573510230581513301710293572540833477998763392128564291545502094878005936271639258531938410561520778105779142308092907662290581764829821010766319455337763594925056396769074068441329369254943508762281546675874087964772763986625049472480884643515651079542135628722869866107729651090483142496360230115032257021682347324825479290070588809163724063550173614168294518725965298752608492068760658768558234215425201902182387880262111582327772396038125657511350468960554911631534284174619436664716498173242136260279726554024813946212331688691295418806256393390069983230578435586305002870052023236978120067253678379455277369984332820315944418360834816157451753703611724819755644462033256851041464485923792132312429488817537700336562692486116914922444350322922942484861355460434414406985279358879883208698229552897175672368242676941819629742428080372807790082035712622188370433965061443185033310290069097240845965878352620982975796534757216959007707304933104132038441724419311391228388665341360141443119478175969406987595739220208031914587341861936984904067905501941932571952025700018449983197358403356109819209497788399721406329596319649030421299062967729295725144380063836344562529772729372161093925155514681547248493674825391196492692147559241988226821474619464358464610543616845177848304066712186574573190796682699102882024815833332901191000337454788132535231233134172492888802352145828632144517949065110630835479832179846599009683660396650795397400329573781246153588580718541060789486500495411214753233370183941194066628595796577039608441994314655798624124669010162397295978789104323659014189121514348522063993294620337666415428874148639718224168046239930432034840809040453634504448826169923296327390062703985856242583843240326614208573330742924711617486277148605039439657003858745364515976755381025557231837676773816471206434200565134389362240741308878595092592598982149577515757697062443820678110015656132813949212398480328120345040446603568695203698088384619336592513604565019929148628972926689082864966148403958375154929727612517478829911125718643468934499302302231633954274681291313724614142156673582410583576689444443326568605478664733925423018808928680423349123884607530257165991789048704959001713344351532413231635658151228852343172093710933628279067113619359436329646477345497084342435115957771216643316002058974668401107613752236371458888970251845359991773534009122391034812582483374635497831684625897102034941008209796886805535879374755441494059873109022146814758127081778295607568256169005755342517372210835167757375089121753347745010320468662438904098157537158292992573305867101265065163543188390689766716792530255681769916804035981513806557846128925168604581698666211073955260227594716654036002742671893431357620905932741070421445111534733138064174899135544363974288490885880943697320761093450742286416113941740741523956155269832322395504084034921223835739702410108814537155310930993193211675814259748960339288537293182293753461673569236246437421759107026559361387972359071491183562688378304341936296130764681880732847538726985424221460189534710151981260524570881246105865436920832125932325594099600405574869537579311184211794749985256105332072413614771358146208330961066193794651070632647907254429835296867287979740106704058698530747073813975863684957821120065987892059727002642432886751367124061012361946074629805605199346060973890898597402860360573318666526125108276806440449507117002878101067029761951035354677999149986402188514147033302272665112711284470364106266294959330647619977464771050128052973031532554854307209169694427060081500780270490578101892739906432550844013629305850184939886949270238117065247182196498706497416110403856842514192466005074199996212343557228246079431627758597854705152332826821982192766672212627357945247464447065845661328691740398704302098756020716746489941615203277776401808186318638651689386453325738882117625802889360735732566593696729313868926415538389185173401380945531327402339761695745233798384924352170520271335546836934191451310325072349066183649275047834393793411517237950432878409117922239754972513315192912510483455515604962392294194550880409339803892979204169063271648212299885878472315336914774690702916599347109231096630102154308843052391125270944659738485750595353538662873315450279477346401575922955488468980527692733554851619941644449650895749453904597772003730477216936871944260042191835534817494291670640355391704429504030675040314881512056676401458592409326363873452931147509189290365139822297935050856076174287292536967721268635771090540964443652504576135042667471520846731682149290038435806718574623376281657181556790229765744787241273698808126700694658923705698888363354339561970294174145815664640539786917874801129091692584873860443965082148552189335141660431636886261856868465761445821187688262565235190668762190525981920972129465322850877938119533594032752442751904761277084330109320291462378825357951877847510550684177925572045963683769067218073198014594021536094250311544388823182123034543514253095232523372880132847785115171459765082330703605674968724155085885683970426470179177740326197352695847835672071821167046241857175508028656409297471342107667196716841401174490969391180991656307049633949482005508964189606748986805313857522649384604349840184998658622665716293152434213695202561163787600919927680873192958263167844285274031337069428345114909874294428537716120175967654658662346618761612432938945934099525584628628952449812430014722937035176950861038188439852618656617017476331873279049089561363260882271264324237275601907905907261562521989151432428646949209802315259405770975053355645631787621625489156590505816621036488465168968790987364516838154031601766461302977849498597880185358502268733582371714751873530032662743927858015565515026254983934663850279473818628166443897054403526175410740766233836210930249008353308018889841941520263500874490366305015757279830663748991486489463698353773591287367082101553809268098317202419834012773469578198388303186455167040137528193851936237549392608799725355065627636133608097342532778766568667404813196458080428104396261460945239390884620192108361740513146680373366235290839882213416600570445008977745474672579385391051042422399917003020385492646327668734886897446384861676903262131181241207792224245989442576927776508852112969910594993484235471973637928660413871570335158760834251911786724441662734436957002669791710444532056786261828295521211274343695988255321415387774449720569364753716638703009392066429483710658801060079243080935917023529938136910376230983391821552268165324966919806096522128532706598620356244929417434719109451435024898680251898499737219972853761935095424073329252556475940621972501990618495655484379385471410039133749848148866077010636024942955112261755635696494475470441496798927796520775142653275214947092774157795369376258107294084455300485584775523741629733667017828404395402446604491946981635873368063974996901077698116704941022982777352385776449031390257931357016931946065230710890831404313814099103420883731633969969429243876123049742379188060679785442142308919275482422513747657026270458014233121444236818970456439301722736791200824430814420351174337483372328416308847245541607827884218905220521770222021718925847438259267555261845618207726137393816384366499721812067373206960698767263434868582779119620089271547628566558310300327297431932296548345511716764199052195901602202119327332601911145273850002640055580182043422488019648781343502262535914272850634866040140013439085684104273759283007887145339911650696510900372026861719032405894653421757051921432458668729569285739665792412145137566178068079308706595784406265300125523796814222408780932633822105653332620490315309004513177764561666730078207814909834058658581920407539960576747502603970618178753582325046590774708510208310491620516481023716942719262437095947626930765881045462287410785703213147668663587810839549498339277214561330663380004694344764280354930815945899139260365418529806165980093052690246881053379274368205642780804447257146356595327985232591719218582292791978710981183019345720406447598280486173650724402418412892269638366177941681512648175128067067987934466292484556094323893509109302130500313393754235527535782050044027573979794305904107052890415817403018762698026542710987866842803458022794327904379029238980601653633886718088060857875609858820871613359621960805222374641594563956744418858091513593680892135194484435426825356848276687269348242843638980327023869549220784719898954594614064518243258685970509646844819400982444908892206853304631139708814411943390636194807995882832941684234425697773407709356711927169799403046826124571087470461985378527396943295588039292600263234261640651351952232943170096128797119657270673679541762109457252793540327971083438850376600386833103684550747807935197905908927641741143369944960641836488892868166202569381613678693206183129454393086082534476254259304966956079065522412079951252319560474621605896131090451351435327769043229636432814129998504562723452406535328611765511308712222581354054883631178989031378714053694838068250122954429917434940199126639968744111862246141305630708501746870670497456243328654366567691114350991615680883574409579171961784260736801055245633509093151960268929486330269014746408795623146314491148380012826793679987277410646015564226695482125177436549698989793452906880098228223827212223938688377979677469274641570120007068625151298206773930989233638319203875365229723804860792032921996182754588910799512343044407495056364297328777844941913890930784907870837084332234607151992609504944902615460655083490818023097062798343664491910573082985404720166178801460197864958154497139151713801211005841860363464028258755836391217631409020527313234697544097865654293262275140249221270281360324168962374003356599855456576757530520343675988664522925110604594387809291017855034747472895871412825629576056668357997418031627106840341239568105399807717105929740468275499794799771189921222420480267938756265217271595704015851618456528921794073120554352285156729595785441336584094391121223134056858715153248691643789646447718653368571424080244549859143105882030946836065220534781631927537585874422528886976306406182009842242814135111172771162478550287717874876039531552558662108163272258657804331919118680360324858301142994732407534464564395521660003234453674154047647710681382136712215100039299591335661721950844216295034242220535176507694687718081697548988332155050183606178194069843374272296956853674984600619772430655218890950515934328620237686237035133055036321310521133589036017520687364131942586356148432424382196084064996064764020502016536660858315213638892020954010690240141196256914847288093902787978436938796089340772390819246475010647406314664386113234784041543158823134169845153099468202293786279238153351989468556796028012493759246504783256488522632825441783140121589278552053443257996009093830053074922819794677495936730818738424481531324494304430270292086204127768853338732126704343397455430944894694102570950467825079954753200352324321014093343823524446293412293966456263861516046760367503548492360262923790658392014575116072944734422021707954190067867801989555312293134377636094354743122743508266701917594743770896028295882178168165742639937573553473861104794680191868403740757114584348168972109022602897864534400579479334337779510170685661534566168107599980388759909949328885734248756948827006768709017388024676467095117435677435714647237008735939570450685263470448457356319530580928343282723220960745849183925134375472820377233107499126560856169356264662191985413421997216924776077878363932580505033375948794792195077160330167433625782042883867420656419581892664027088199704802304670598501245931412331652469648976949266983108424774849369103477435954992581346599172207053512810910124691228556700971479847507741661743392266964253765832326348894854458983718686834153821224830094606213473680644060085483352323731601024851624268310777184086364901959000808609328827283197677233183532593574828046102507550469774998754579668851463273222852372727933978616506617093821238708366385652811683356857391227897221078716247925995302324651261471003337203979970079317383218472708037172565464550871919975021498982276550473102058327615085013312856482693384893193072093468310612452940409710516944738769377589666232443871568868029515713676395682810806636633284557843407246566068941207581183036519122579359426825542891537482471318189672755926951470770770081371955068428894657173258223669963361237998786799723753632011255050843892567074928747287029795027671757293473007050768428681287518345591699461240790135687157492368039176261994822519410850297006421022601857288949704694725849107377430800896548220688553418305740517686162488154899691840406998910486305562413850740929938878735316676346284864165331233675566305348066263701471513711608589438583512105497446204906237411141306228373942005742138414556336626326741199712844957991652008001612693411585011967615381969946530815661581290823403257256438058509620611266063321648594941486473752171294139361971708715884817803820633388496619061689870254393386481331218612799532449760612318268626573867017527264862378836015928852790875969766904842470047387965350064464046705068725973141226282564304951376847312772371569369330972755959997792902776492304113568587982964818472308480469322057297097826931061631296932939109071971672269200784437673594304850689773277120688969752773255988464800034212195420181966560421331720879944741091519917827557320873344205754948018711939380809338711495604257712537203803187710306366650733124649794035775732799511695547148576112779485963705891946177275531716520015850637936625686120462574840824661654663146512961935637660929887163853863531282224700613626859143863754416849206791089363268519702851502749950600698949286287202453638853784416932511250586890265255622048306786616827965672345785710050547660926928511548898101085854871803667021003728218111590453393644994290418277386155234528189890823084501868913607723765951360063141970128854929026645527816982453810836042253636751563046057321375735266476303727624142395097160271668675406702700541743475763746770913748574122289121598417174332509236269143915147773383037237877381808789052408451083041062871333511700265912689746411438905752242579643453417324154887319584694558735947422584296064053423397843001449681927395481509767468146941562082268093991142618180679186291799608004352574919966869538877289994326567982136630715323919428964432902481468718562083952582630096350359807711113416422416135298590528036391332102149807723862688737967280575649706271685301559859801237384602532964591735785426541379798532768229192222676135359673467664400041499260624586379616919358435225535357186554810271515709790853282381598524137742304106748479087250322580814196957671926236617607656179874811562675917612527727948823604575956827196178143671377966502442073430099897763113240635514557162889068609988678596506166732316832120619960621876979926858020592761649403134143653521154190094250577799401438085714781345645524172973870418768959377928394714576230608486290619739059423427540367643515671127406374688442088711503439256098666566469966649420922351087190592739365969070143051727255690988686295471557806279096543034587221880765569434002708896866292457082582213951229508757652943345814268099556302416539541410705879862687522810724073569814602098816706438674107564210613434095885259232270636721574608818414737967564700043116834416184152709957018165752307920248911081177247936584046256394178442054966617691027392403494108175298646695094203688748205674759169459682224910591175852326600231891083007661107524212713907899083730211834678488375251245265281951978274348759547094372175972581520196702888712737289975724087117742194927743762282521056909849166957831765160393128148652025770569197443786991508659808144976920722740148880108688600372978114809344243412559397100029595439057980510623017045875317619429714741386457829361250159529955846254096611099070401913612139584233049653167302365373366270104903775602714787920763649100096217831138468531908575304667218000367106583598347272971069057502823420847567204681139406868771698600413741608886230269246931813010984501755064869923414952199729153712990412085705941695039434537283956648916458904121656152996165257458135265764196447530928720927203007910268390650660194895944760795651085425939621487538814136106638672553333534276518102858579819304980176570446490906728552824721876448596445440966433697621991482494715976569821418981775666622084126668527329608296674712485823152338763180963538305984105343584142986289432579643848729465175730857431844803703399899725300405300905694090653092961319201821991721332417352009814748773137127022130527687125008627216424172977910883829023551417265012805093084037059561102266597990311300846126315987327763370666306829403270199731831044521937890484514565410437019641924995891791791193821745137473033210179313825803688591606725759292522687728878023632402560390855222292991325429855734142397915839869089093365984333404828830666791642366172193751462145319250305497557470373388143189706883757374447344269519946251459511009053698399234066795687107953894428142405013227580755520858592135548469161795481002295812800469887175626992646384608902017157292683107514753957531796484553814367990164814651533059556826268914773954240955098126833400594311011484130899225042018360105530273866064607155540051408757376178252694546003550863342751388353599352955873316085584204628350234392874904266482741064141282129934507938199202400156578372261811226845257242806016654337322804959929115653942349403929131187105325266500561087238229923320011999129101571634147146720276791257435628515764450652876722702197963316242042865302323539885309617300553373972115951478571791495232589463304284586533420192982045727966133915277427455980556046390991115847733332597468131590079103624267641580735992114394503612064538205012266498768608378282419167810480417220701650437582398290025017191943276666684321796049178269134472744662064603475190478217430374309323520493864495215658563864033492698768763272210984198568238363434250258806305972394238640235158576164580538753348841493671366415478310469360423563663229359822252005727629248321972224235127772231087399167504104415140220842631101113319822917886936597965559768001466223102488419747243275847442008158757864473014346815985033324204141158560047649374590615985219330303925130138856986497422828181461528801587478313192430532378209075520723319312559029670008119073542108643695934892049821052832910615168915834740760294635403323484812948393711024394918253370148225819322808833845034425529221678315480849368110902491876718264781457208044784347342563469533317730300754850205249425205948584307298134778079348443839914077741539428340425841621742090082919251295192999152694797505355176734784952820077585974911774907135717058394306800353726040233491490158761534628075859400204142972106076750882963434897112249937539680951485072132775956065074350515461469310713482454612007624990826186396794019737859718513462145799940017114573628595938636045774854276565512331214336996434079304445356954474348201867578324810089559841608342019164247091509648014330476545036856462817071599090724308510536695728134349397504040246247967116602388550523896330010132183775625737903702740674914708577459277416967265782524078161656092361366960583883771740624624439953185144375488651844199744373059423274342409418078649439505032073343410202699392537549402700595365808681381642916652970609638587843846715343969046233011581527779600888916487097366465296481028027656103371721683436779956883844842567420589756549377017381015428886349056144585110690998440708642429222889388588556589896011908008543148060282728143330863107531992734236191772521486730487438425120066154695248188221683755376924636676372223995993371460138477868627873636566804739087152251578354395811458634989983695685247113326178118104083940419748343594205971393544775212809675199349589901882640020611739022135484757736789849243629191544424813152500565192826128921083312952265120114851445702921246260447738168526316437389082371438880759321043832220069906846790059015523644868044068344989242897369654445592121624889924623666471363684351535596503588725356039410033521804452944890978830640040233888161634574629124310873508360923070529489509842874760419222819437318640881793686999191226616959388160960176194873072212048293569843715758232367955187979455781264775017169690794285325103241850892800206657589057083768217690877233684947722078045569589255816553295532175137730978457393050173358456365211119036262317027245492439899094501329674602022692629334088800653714909037820593065832491415928847835119112248901811709869327250590957043598289858625676404408989451765171365081951602126514118958899565006736549597874956442329720893931534752075482683324997099778802076128607632183132027027590699947992210075509343384805815700806007602573218989904564637632699348200004705580468703493667826601107810683307621949796788367181875392373584823120035694936673331512693294610094977415254456340635267985182784075608612775599500814444347213649798602315594410072366534352780895632908590316156802367555592142886005068969728945069418343495338494256451904009321024856244262816845346464850436724916714507598471616685617246649261842740640347989334222303578870832667187001525826095737433955377352590850849991382452007017571309157062357153020005933709842781336136044418939675177277492300637449481992553509102132804752238606003173150555724116921163071314565589728635351451562432770085228341305585022441384755725187742574768786345024163278455500864746943947710947135792672371489971552016141397168610309395943335037242668660117101973219902889045346699571191673588266373629227419019632764411218879831851911487801304689738611426304590841450309861942616415435147480533764626073020600247515822585795873724860458056602479361385205884993151872867144187706254109545417229969556011460585470655529708304195094129273936556691265699300135568692617954032107841949039798567368620760437332673091672688662875829827965368086820509124384958401847603725284547804215598273790723383519195749353635830195508327466725940103865497110308524157804142933154635913004835754818210319434999569318304165056325675107706339476316115217283419271979598398434751336969357092620991924209320701198740566890465375277544203684664819302828413350196200161338832486178080106111407341616065347618955390787324555517038836929652379023218188634288975142791408810936489212863155703177310502932611713761997531624874242141002886526341116006372441294838190938759084959755046522999832049814982726173285574286849932584180181800789719309023936485993189846530289404430653794717265771743966125946240697052689669389702151936025838683557412985680772772806204513461846181146846642078056062379373147526881328591014441531092808679484392698913637090373516717586267811016278828153241675738556011865319708333209893063712935860390976341604243331091347943940663331368203457459205811242790055991732205337280929692322393650089597980558436558113577781692519969544259354897403348098553662657650292813505536112808736616072675019139419433145726061456907146258511473712180259891329655991922460218982371235006968489328998085637368430501850756353900952444963997102823429564246149652061337132918777414159335487897550342290493015060384890202768742263234641251291812736057198545079734935867387852306377221059635113927169629694215619935092358012781211849154947774480541690107818515411418064747099915829775632101506695872466543881585028417469146818276611935454699160335632034229173914010331823107908148271660109157750127310771904088929084380327578576911216066009787246559454342867890113162469230352725147548071200143036567308380922998397873012924527868307557081845121171212556882991897551402489068663014955967116264350770124711631314603662530888453605886598479095170307296840452109731306352041110797125559812867626253797700581068958596431999645253281837384469160618088456724231133096463979894033271136057869800386901319202384820013152417938017905099004224919674959632904868989324436756557685983447044827231291922068853231963337895327010636616914095048855777071219489318806703713672244068257606880440528756581510621405981037200386083872303895560087970122242109663749023988082321470918094513246685301996362381428058329841424403620980377548893609366947400710270131744009025586193968642544338510343403314770508814283050718376914094675461827854433446218343026655870003907611432006522632624894315846131948221256340848973196297209640756176056618064734639358953666913237251249881695919390505936603893705571949848976346390685014678238760966376713170374015554174366002061022272447816295696993670537039257385446943937553658258348382340130340862162092388221568156172974398942623206362736616686191781565228017788642263433511219960621388958874449759689606144517230401979558197184445715114275763396793906639418146248215497293674193230472377358738539272669714203492135610266456913519820118369748244874857727924943692241208389215003227095232597287833264235937920651753948172282102002734226712635896731930246075498589281396227539394361087549340612271436587416022107714106506695825129275400066587027844691440175350129310718762633166448351039243182018261217466167870925088317547233597147855802482169019441990228300464879758385212285317382066184122445233048205918190046556103624775433126582685925713549584820595822807436533155006778165662674020571976817820309370937494527238744133927398075707057022920738599173576467970537110228605173209528472801603818567868898771995849094450740170405696279514685762535175059870796722566745006745443805120614231295170517176799483198371388917045409675868558245066129873366531523056803591128420682020580122558130058569631217604616123912722546825092575400832345584320916623931770962860434016049009976881136186216665573484811488042655994447396400201540958093986580058146512341795051224456879881137761134707836303319329113140112606882435884618783211194810707508576231875068157445944783346288471970111098895515003773015116735417109762117039964005385171782383342789881576799863801481708267560778103000569141451932334423164688955553412470545698910243380595099158556105259513142370960884857392171595400075521956711091943965161771938491315589497748231656669782156965018338557244646896107416454163486797843555660431026372714586461236973856718887826635181460219322084504820096348908565823436007862255349844663244854099297622568330018089172714100274876874146267981495896365790839053089756244111158811921099164047767478183536818449725203973640615159704065056867290813750987540660975525841319180539517261669137858057632291991578449531586978077408792203503112589897396167082295985519899037946488376858355342693248688197007513194831117467048863699478573534515000210643022088971793252308835326393246130917541439909852131403484363969556203205708652546638265488914158088213359682655456150638192489217959695307698624248032139440599940836475628331387833404977178235661162740730905204352624957239487224621902624778932261221027212113766190834770654625480731195525505480773880239440996463691174385115790227724835672709950555856256498331248995821134441137593180403773546374497361225561089386803633711350924505743135275294245644922146805122789976923534604368143452087768906446959167204904988496284262025455297862399537224280783991712694449863852838125060691556642528001955178948874235472368323234421366838297503052235534157728438391873809753729962036241055454114818843462004418272355145771292792646034421149316565346863120410868775562341267924950560974594189740174587451846155471291857091636068899987132408551426384095073589918499232687973375660881924113925804532166424078596961797555017262975083673708402895499742549964519023058941507245255354987827883060272657269371970268428276793204641176735086635254030016741562502346443214992767628062870512035500375116243707037215878231298172452043806696692409663354964662744612898385335267883135954615982890310160118071172139529349051854111301357717971564727604918137930634119747269625298378067313437877251502627693552422514154388410466226738051587819087079377585698671270722231473028792801587520208846388082148220366604536881800107942587323625061198526636919626144561120787803308975840411208118268537384271984685847564779177517864102729519690765451395205385276972799303077615863301879754845371278947981591663629911076092615335270065704573650284423438990392728526542973766189891055266999653293247089327648674545441226662797582989625277124208703411796072248500740507598611910274968294190323955024947487536527100655871990629976373355784319224940056865833284359999865220609833334525744393517377788777142669018333618044716883715912318462031521916112709384192379487450794500053408746945495395199832145426587988204364463112473753645450755342638696512314661010642864589020689811850560420939937214594921941704643856794541745801482869016407600143049925791738859047024962181665470761983248463029566955603194676686007336526392413912871128661344752556407656858002857199558240315218733634020845588498536013302140271664573795415115368419985039711286591520835429365907293791519838556793766759286000226444391903312407201678872275566275874133057091356736206250383164231670519303337036659251069093012251715354779572647650460230967113939917994453157791167274873652623736306055991440445557262531433485927931515560510715152627449978305293192396138930499886037679826997699213847210228638266043125483754593078245106309807950306198931103518306364338790632330726165544055409508211188546058159920935968090608257375753138377402763522446072228536271080533777084739469805773405594665402867732187677530960370227950321607776660772099724589103207032415107419802531849626213369218721916951882609841020374195387142939241985499295786716874343231443990584795363354222973780553226222911685914374584360318813349582506835738292073286613732387654614967110838077796336594382822044120512102907455353425850869657025685161526420544701491511935093932037117092183476247403362910728443984074665492660278882633025476687899590888897690235459887252859784505707171949724845980766498292777412809592338392780632226721574444482552155195688117604334669864829089258476323638742460302277786367768174735383679969491195017806811431853265871552174085865261889070979290332704364565281202101732297579835584255685420248281892952570947459660610665305780082973726798972039626838703861520803861898170760114457711959496445706956967697209482327488285069918860587641938004905375621438123843850651157059035130856678373923045257711577987846159874760650067520725171381464466876624574537245662637433205027462040059430742053339104471166451288828965966870496276204669082389229702527598389912786864415285495384977168407813351074548201400123005540197146347481185958290940956917335017771287399896411836040201985951509024466606992383509087980383835629112775567881297758598157471740259460264756764182954993061252401764897454449412728914259324517245711762089823641433789654534239471457952091427259850472216431177034062190623924569863520066106227627416264540052504087438220886126668068212435230778963823237714764557892403710441725912638527691148680233210361054396992419891570139174772413696332197165949531140532001887091881120172957964429579837376327697283271704070740202727829107421148487157075233121709591688105002939377359183807409824919491306036555232892875916101716880704083470499727186950565003640610361135004355469506519114681384790138923840705618174282322973207917229435179807190182496509182422495810669249607475333177093560015751253451493378029984934026410995262301124413227140467054704325138987499884968558729131644770724649657777863382833772321517808174618669147373940126508457390161619092830362320302895134459956535450616998022595326149995122962088879162873894472592159010330793684005221759617477583969045839225238396016720157337281475144448844179540990635215408786000385266609220173443241149723587644340215003617837806814604070306117574297718402195884769367867487125551503137752134412356967127173311384452821202696337518814339078549104240252412585743622028525584619087979626669526082259441680641763893499804349188072456533981843317230812460692144948903060059244947110092828184871363827497487430013725864452038622375740018990946285178969304123748144589940612810589812698636727040725001354535149329670854257604073387399240760917268362485950770818640973549018493128116378199407528485037225217406948105905025723525547825346955878313496203054754626318801679652669428939230578824990878210048499353310395505537238890923975001838864093189765100877772373587760830800692676604179230234551168534614410962740950213124158029895811426454589900913770095546993326335624267375450448117255864179412996842721542184804784269141637957257155055157422795202410267622244701414797838222629957357047457230861945120345676899162822108087253867767402006591738626160961915650300034383758446656148856688075796157026999317750713233759409242343112650484432401448637587522869960560044198074610096518502417281861814112214101668094812999330207189484142127748528303745642930899369446247374746322808994136466046249737918811288362982194068351838217511784029499384348463317158809016904113266761628933324214340978774813560797245495573448573224725941923716841676390425699051742373649495045550470382206362996660715386369282455541525214622952133061085845842228649741678123415847064341863559885147603638881310439657756236036329319655199689520960065767735583695156277704997783506747749494597369254105851501697945068785039700486501599516305825324700251547800901702962579767958244712066664440207568889654692348499585950236755827908306278946498220975948849930985379516818293816285045346507787315052221346113877743981230314897478661515326203593177812641323959404933022278235384186937448243669439190629931398441037909309089111558006091497061077104626285836896753580357005733779297625900143241194676867501377268046805867458061689428946468552947673495862479316357280521156970125829095572251894407397788944883313527875357385343492964035679065576410465396379039382993173502480921361241523085753244483851037918932765635493160347938945454762321973217087668811082716404608123558341633408575377177311191055715948015743944380125555288360925142818812312893252719750545589194709888629672351764294069258211547482776862219275913320591950035362345112599805186390184914250627002547633965435290172519001502079710459183330339532237252748600082491472648324109984204740036320163845839004323994870140593935331617168668326033920084096305540392745601028367484261243846738713612128204444471532657622448276953845274206849064000813664711199343069128124642412475540097646971485288359113456997749738247998065702212601691406474811368443938275812101793339548192655399133859214745090181271076245408125402526306580342412424563337723000746961789562539226039173179603713722668504553932619275343456819961396392954864289628427402873642400426621108899514606265815434720446284041615519037745798024571890418973143444391411701887787097426276305044456976595367524896149677545720922555853371479792569338874436834913873136427796377769326759060440329159411091211183575687453955940207776097611961765777805721746964025471000629914464600564970614031449768326754934242554603148385958298155229424396813297556781737638514971437979503789980730302590373366814287677498237109712298297157490549114278622558960157110520349575390916153590748912366243584765708332683182069422872136627297325094343706222132652554457983737952537870978912332318160856456031604123284242696818137783824232970933302992324843976084995428764222432795156449392538588542734200251306880878967653350518958260216780642835347740683616416864338284693127692242977439183112013366034142304135681623357622030881714584477237107393222374943027107577028326567861046920251026961885654784064488693468599338443016135283567575683250208064386982640848235181336176987643257046659543197243553721192582451188467695762553590966147531678936201231888663752305646390656127783164176983969164193328436673312701231253886253234867760247102928418806138115265727325963414356146459656330602197289641226425604790538717181249503299865483456899559344399299931202241232258372242903690435220842465778258941754492592948704073323929364892597150161382806376374429101118417359885162560437119684600105617271946149118034357700643319937744816567927084839345134953116907572813890340824718568806010207213520074051257106884956485745778024045081185475476352936351119924870676207606272468729385270607838823306356059061222527713280794578935012029117938484050258531961117045846368155157375327785857781403880161552721251074434128369959305669963356298890309521735526666359849542188554000307328828636331247707782149028246619400907432117326849185485446480858979059969960911416591066398522965709076986938772175568782557215170866925883057682937611740048065511370310770751435466347050719781459439729561028702130710526653509329939139244529996591196882117930108174916404068527409254111299817786126375093579877912648902960349136955426345209186476623628659921579810312794363030841206399611273951138626898806195127830045468774861493630518923981188257668228780339915757157561845750054842158670359730041567160184380094651951521533167007576361721004817905017382994364688120853889544213069538323780845520150222814269078103736602527325235246756857950404462237800684977022144161460359558291989620485040116688336560711238663448189477462012553202473880493925799975503110514884194136611894497838789679578887536774524136099219067242968460430304526197902357440971063910439028305792611759162910936712213457535750294485262839607183485606823747480760280654198484623603623038023400852701318167357796778384214086165591841592770215868724866823683073448699526725578411863174413192630224424662839960898990634621046318777206775461843904520300006764692889748685935459247602901517437146368875421718678741813337282928393151180189236082286212050483902803223132137333101266326545004871430881229163960374039943159458009876244788220764785582712267946394794534341899898909868895608732300497519933684945676905686907881567250222234109352366752956407518499971632375444819602821935861822733085532591908918186587584735523203193375503530090765260320932874091182945209024250473076879914910602884755847239507351134578759568922048855365223554836686746931826926809867656200420427130634416080270610990359098652141502348732484636906007854291607208162446837525707416126462470889773364607284167749096005396685440900420831962503386419202580139675811881267683004670554314210095086695328589932422336059276854098432619626175811122749320724728186598110478870840020302532073538962646066039616424369692656512055208259665343449652831334600881288671473163175689126691839975272052894804022806583401930684567883248000892432402507406828128288667880809881650859117996659998725700331239367636407126366063673796391954587602902934157976397320405274420555097047612184279844986954184589386257473898837628441759488179130728859852791212433430119161424932453520347228183600867283201154667745911536609016257391592346296760826848004355020767178827407851251421858243740762057327461176700858170617636759767179715510953318681539925343192496551782817656891273514425940462136196242958396637100997119277052965894755084881313025315783732057142320244147862822542163362456943293169613067114845987470101773899925978634455269769224312160974247252236489148755302160574130047824216807015485742103175092373427472075950357231681007457091431867487226072609126694037116395378791710376096690696896954020344138752402619997893444788890972944856638604083572830717787606708518301941503183943644650408759216287934892493053559260973306623717628437750806942376506627035239572259356430246383484789384452133411661737056805066028697426070266551468190684920532428624148081514192567475849796284077553485350405719115483864941909422009744015369507171014433725718377899511343046996555117423362038543441094740637846277126123631665522676110229830530483888958613556835256292565356936098241551425522073066871628709916180448237475835343898180244890207438726621684431359232562032893184678997819185878674436721249286278474101991833952698045611266588223995459720021408603031545603752548263967596447354091723817953655270168300102490055235744486061112052898042284210572402373479730604892124863038436013106097084944241660186502029026488308039628036953153372788741926433813669706684005005895796321371582495196284866239814755011992142271427038280678690959302174514834246080991332810577962589874242968475075692493859764815474090252866237168980743219209808208347337775814586544696946037725691677603148949719605326260292226668521316631907014152866039025949627363485743638551819301921210210881512570328521340293415921633291269691286114887594289095852457875366496519170225993900142121637023160477075153895294275794935541098216576394042100393685431875802205406293590259062424593426333629095393265164037347173845772091280175548821182991186395471854930619819337036313846260122043719201673381902426729562998912711104880072405318896209823891983897196597768728328181798379868489734970656889515268330705393567288577837993935349510916343377668278285157982632143742080406810950433833972016364973896331453070293741945349416239345124897718383468606573349985318648620129309286697083481110420866328633930419244802888027370958797835273429335145398679222332416583340628939831348436005038292486726025545692821608847986555078387405837183546090254926614208735203931817884783907358814082542365406242844567600002924552345146590193933691591730504794838471029281331133328942620238860747259215148242284353420832598451359273996521262673275537760510382986832451193748171621254762967821639821356840050082070060696584317939905489552265834960706887600855072018112420150779141879702204999440838817925489196305116639931823990124262996356200387226941138599391977484198894734614227832259560217637689256400714794253594852526370312771711830034430411223299379358505388706375344711649496311778694523480461814432383747164029102087425735012516442389755282519968993105251973913514792837993523871902487112758655265945793188429729226792641160297400771722742934583321377909205390383045477341644907104491113750685180515990642210327658979523219067049587968746297534463963510647199692231639497076273918910088494275450421670474089662062833960161899700830191510492570076608460442153166212693106075067453553635105087602019181478511602977604418738817902478632391282271335528149971886710977802485726213945388645739843244202874388577572228284116355245286610269224146904444650429884393548401225150899604092121531814632451170471986398456489875560522246579566832003754723734111552320897058248416093238405407731864000804799034440010139361593517143757601176369208183692454199901103905772356131569232705135748548552895524500254795845102320458210198677967138697602633104953378762842794011067194889709011844691681389717403215855104206091155730646727170148366917716050152964879927951913787829062103123813920061180527781112109475870405182778373740848537486232397976316456884764787087147710804917222363899620615203289794993022256930310914630142108369261523657672393133544735918778350917644500043667528805530112244293532568512909309929219420165461317880172839683864957910124293517885025250302691775941224738702327383136413485503888580840676320400860302630502088628822912822836595292217400108797719043687093483224463876701605609595528181123256755466585172855509039201473851404112843352247898945606609014173057185930401597911796984467261757698402925852934305931932670542639786247401823894982025261150493634538610233357359456693141840891033524098813440496251829221473052115393845816398353185971607548043109735616879556261845638360575054989276341180715515687405932740194707685125935082451979718055324437113070631925293559871454929490749312325277759446049781270587494428776987779307853326107888225349737633314964353477708292331306965353484466359249432899637602929201921305803927295362321865860950989904126866911965962252517289063489870338595928472527227284827621600095321611216689846364755786347114558933310751127086710812424499451664490337348777445584123894615104860485920389646432798026502072137401169925773817227714787807294094334533210429334238638751546717711268071085086344911280359564231477852110347520705466094181515962608626032601694085487629869142114032017244608857731110387844659874380264612600987837876332875971715083711988627420138166306158013972069659661418803663375140619682687401192022165323146999123692006076833944209389445402668317901165988321449243369027776773345571480168001921216944645144753327197955206635889085475429353927672408322139549276256956933925919581056658379963613530475703510741424179920731865286566406448735619693213400733510292230543849077793644332665339070771950901210688917630003906421715948013173174329243643577014537153551926545880457926298130689899652848549991804425013161969195680230348855528903496775097888888378487820220429993324739241137718840358629949309095898240446968050961985090102770295710940207452939946213787063184220282329278500708160572119874174325335103885570291885938801424414297353597680921397669069884484737764712582170543406269954728607559686968612320351227674886047230441203925602905555463826960629945437053019597216036194245979927836545314758022929312060491379618050503993165277799516205356811697253754132756838241619843128154848112029719426188545340247191957239490398464673886400399412088299290683030988061690530599906801704559944979194091614173883945163615075315206277780855556716858807742943717227398178934978706376546377403778356632462157673264857509473483261946775285369332143027550848835521307935486438156908172740545661461824175635559333008299341869745367812292187406043329201587050723640126571770391619219747651682377550721072329918078196685936712475314239675801274090562737274934399247272717928466945870325895443092215218477847861228832213912496143887029460762287763247487854521485904860304929224495381078315890808780874107569687346157220961139221523151456897396843936173663339790997354547420121634058431976191914720258737945162208522356783172617558948056764339725171711472831990983306901148887226461022673528679153430214095004353544078028956056426718206139397303198102119876930794925187351111799522171943663857884480526991006355852441183458301460119497956660719726190540672299899113440082735555777754625413651498537635879989750549975592814393497410445570876260873758553453824427326730310562526698016737237095521599419464643861128710522485918289340544163514958504473401184816410954612610017377506235954989770883841958412500908538184513614247527414942455826905383100900487262144048445092997816857940316153464925995593930132651508928858876030285323749816949282370050691669660085763532591223167548332952772413326101266143451188842954285185990952188204108665537399562550363286759111655566524845453713058983860405201515588020589235521578501433127498939687649174932826483395242995676643398170407198624670478941459793357903070056115133112170119590650621562434395047408484726555601650275434895170763374206939907745295330298422130336202098154888760669235567312182962274779840851695015309414957419234147020053690070738512025431607958390755253044657036627183615027221621430665422187552798013739534397402075339082121647630300345445073515504976967358851128517984916187112861331831488045488836215988066415876598251593648043794773961243670686649423718745159650425329721721141087360182800716427934015995919675565644159135363782618972625602647624264700979412148091802303315265936983974716153854020092288349409095440271116369350459463452767884094438724992249251731402821435626189284485541055331888350005032187503108686877379599620850400314116808387236616884179184415557683378401962414444899312667027045931802562835797074283751975013994717340254384355188493914028212622136114509950270180671861748351787946243975614950729218341967462849719487731010688504866611936628054723504006167352460688300881798611229464729696754142609183519293068979738310718767462782167295100652927300822725294545819263288789037336815380247159211182311022716410583518248119626471913601446166823474770555075371273602941924390054713336469039097523942309030479894602076277034092874281712568205310350349167723252910235163179850522046955770342809816425926650426643568254029488387997537826222839689015003398543665969136483225139307685699011837292012834346613482312051627159893266485867111895319461378243081668221424644256094915726818282290741692211665044227518038123919670768658813102314122354176186074469277500728162348543010189690474239013118344661796978093819558311947304101153508569605652509249467177025677435100373711031533850451649704731342668805105409923585413474857006840277042952139559975821269099575447049497697607032291405413983429848571810597360381349768745566238763517230848759588027313702233036868990818423731704096149094467272225509795324938330080638316074933528926850495735173427980051182249055149088686377753096082731329758349151381635488578443689361708877690875206951754358807483218271996623346812729560029244490091607876202385311521845007073909236055544161585904762169785376937410276737393258142450268191286255095552093584759078168941650200012517139247778418684478586408398142624435965172092328992043034619516230312884213036155669655665948375052425919948980853727758101313762296370522166547208107720029651654474657155942064560734337303803484178647166903606228823268924163575517681339814356709899010534976962172819643738537009712547335868603351117940492682187132501526850772662876300507510093509523051931784817558328107455487978473116537922126435487046467233761808543589107750458634008110039710167484162494050285628350440302140750663968505091028372849587243060237636119674357899503561495312461400913071496433396540722513768592632447257983033719340304867032901901725372941851261572826650026873542977139218642347663190749968204706581090681221557078600883309047979147822840306688430522221701285911968142467334435432605405984189807105142489407086569999901818351218894415913730556605355617020966889246992517420016652975130451966441459891168317758991882373595841327104559142876400663338883014393202546479701273962672730395323375451094651706350059061951929754777913520444042462602628339540012521814032645656807125025745318908049434855940610316969956140788974478388305851401955364726316648365900541976273136620022691698619716493013763737778678360729484069690730290970603100435445221111799856928548456865648246136033272761018609312665037749624986192228741069649992641907054699434146331159786478171224163838252381387591528238020390879335624680028405601309227986239426506660147646169208863636499505489732956180158555484335349195259999472800907298356457943387558668875015626556120559058223473688986764864775330789033046353946020633985853278547293112196933643862788728435651505589883736416763932979221254662254518905722878049257331519279503957746877761879092239235721363005606138352151857277659001223619963381171066541025821412907778066089502008299779265071858826773318579295553349376898189680017985880572996529019690634096815012759138866073444363103861477037611602632074936084374746022775746152560985930685019238653445447633320064932483386659114125684932018833908363289670759017588158688288664331583588511874030685893738691485147646156286180006402467243947330308632780847445989943901501541583137615930375856664330333659547418104487526193823459924513403482608538231698190370610758269880240274491774738800481771722297725281402787510693240677611443397642941783445289559415345968677636836080973366329574953926430699315964804747178155184741350494348306299477067041172437997941572349409704183056519611322770564507659364961730804909581691682102032547893203768036143037525078947738756887187302983881141023902509892441841361453922537949276589239279931679181431977709340725171049395127809512520078948686867854018512375090428956133451060035933972397055327325379156702453336344001417533892903292225181812860974818448646686552781699553256075416883072961440881255517086665485672458522022471093707866123439350806484339562423224776972386396494947536671523897243825411216617460196963643363982634634803515338771828413420694490742529463069928998602588121651220488797567841350502100942387262251942159919771761778393460424120859964388365959640697494150298593253958484896490796757477356571174737027924908245037762901225996002730073083799569253132988320875532254611847931318601497582722764939666328581030777490580726654822326823774072225977099727361471524893508413741375827344699679119153108320884443862852547512565480301386225763586497202457548099672476633241797903213584009621138122996397903142049115605269221628988367292845353294534044597341697595425155018315633289109559066774200647141665699511575030608897126257315663985651721156632738529976618966094847256376127902534300875197402426052010454119872686043572147955056855621926152106886192048021155817969164947647999896234680327427694759715545120685395530231452550791919886419420746933449959516489049174326425006529193951576031452548770532176843365373701684072832078908665931626346577541069993711184127263588266690021292296504756962684691922737410786754820023457540672639481391856550951218966997385127143474955253376135789001224264658943371302037761927643713771947958230841506652229623739884498629658297946728376405342169582373604202971859702445421056822401197161772176044054201894895344130811435768422596809160815078231728975442355135305384930740924111243575053472238076185182109331362671781194008425263892960428143644163256004463364540424987693950698728720507537475561159853652522513253082733275295713162921689973316218071297465962327152181693872813481151863802344816549976437438161261586445116567063622559681196291154252797531368961777317885487802047258519218513312353181399226942767499857992203232339335632231211076288566167696783940518583393845016732295559745230471709681456188981850627209208595359887461910193481282446264847312125341767784120373779319157065818058642216055810668887825896759577939138726901944595203246503547034425053187675590757485400399317238766463091238310810441129715785776076779870645908811725047926057593889680579991518662077087349083257607421501429674071889389757220841624682973155075664956821677604117147568508182247310892023402992151612977361149600841002657366439540961578301719983289709784885851112242973912242729856580871521510566431826884664183909895767235908844374385884870656231005544292842336412332817729646014003105643396573327651462766792068117080606799562732843785142007305788026211771634404868421845268586282489664210285211992943425862766926780357687988648723702666440082872622074933689936086113730353191465681218136585584217116382342589138861090689306423796056443688614973085754279017371042674079125038898161464121066855170550639151913961072030168749890463160983221553497360022678581960130140008164988441943583922119423805715593854589250886272629547151963851262202078687074353133343434067859593377539882038601658018328092905390134242492064142124547675523784222851284350912365584574516253914245506670099283803407864302516598150251490970567526925588204410853233642752438549836409951607626243322484048099310768698117921556410263476386078563353070210703478042924096743901121179137629980271131856029675406292808206096891463990866469491903451441188690064295334506225430271927481818113724157467824053243581873877281693607068374306539507882107635509579337244925846373666279874977978694972221361604206671111137968719449191956509900458760887970231943564055725588278263490580334079380289388485884976726673477385016034516771377065323466104050606359494294210721013115595248852768922868294116150076293115203044197835340426406452188028551368586175921987595774346986706110330870602802321546847495638914041731729009588466609585165172651502326068902078741973924858252313120171555537989484469697100133963890503293849363499278492774003372407376775102787372131855498710420840801575421014627818135479122890974299614369590104745261161845066394438735593655115256020070155555585827002811711611514398389193974406681220256376477557570913901261382642677873076726800543521234944360917669626214066011642336752640728725629032028094481806552019847395880358992715290033106480144062467732126310194906824151105157131544606871272029428922364945482096210172683262438945881004171821286525372358112274528595827522278538379671333796132629481539518659853972314582582314283282247893044928454732716423926603957207491547674975245758377724725554884061520311684871146415097136316539730569923316623805538776753784513366657735501762114738812813230970028001888875744816356258548050015675898695671962036652379394662119048654422785061838463648364303145662622913504834016998408077937113273080913143393968379840925931671446388375581254921895241049271237091371124105311080828373397831339996482071386247495963326133167036404072086923008715405563775509840294808498936997726296603144465500300410539508608433312507277998566373401023101621701080907287439819733839323146819047956991596953757332922112876872711786076916749985295862973766965958237868406066100588842600938157383329252529583315300681029302336470258867809374383133921236194882525586880188968342165223838397799050345230384305242440269540212120179717864569582082144545983912825215816878086004642872881022111975606939595311044711043183453844166003223677379807671980274131502384768843072550512988010322533678405228849871685259743571371996838624534136485587069666528089982115612531374780517878112102359828115981407009223782802285350950388531931925157636713175379860957510273225985979736785599232710075430132289347858126933150101121158593965899696548781974116510689519594226449325541176216776334165917337337937434425042638114037445396727585123410672149205626710290037167108908321638657600471709760375381646536802220633988839575463217116506729395571940315109635575488120196379895104970028317107856994495407384007134466956042802844262883825620534276320251834078995641349118204941699585666090032936167155259208831850794847870181068242011122285134177171906143779143297555486292458247219075780855645414553490065064638855995896558827207678434263871720700986728567206142365242348680623041910668094172716799816073860534658979711286706155861999208646004640790573521329470271382772899967777729238031754535315369473875903338956101191299508781254196334227928396036831406723203429186676799022514188439014190849508364466626654741134815476808029790167235187355188907067262360377098547718154830434038784547404385277879193444980873828456083892499169994072687996175119039944580951557909127772464357185371341937130087340804897876704258526546880175709617027910367533212908047253333562049204783231832342595052518925956146098277839269420144264731560559977493577998027197351201492727921976524374266621973153300049206798141596463657387682541725801595662100435547836014643301329595090597043475956831928252293082350992961009376814851631951760650616273262799246077397461326207044985801695303441331020279350317366748167299482330201443807827037079835940023219808556082821010852199424039688418207281125689408024526630386028023263167092737167238255885825680562429666275200867219832222839591595727393237925076631796364726850606743031925348224914821766824931687902492540118977548786309946928166242317152047821225719151248614776977768314132556180409420777241448567956490095378112610271684951905356288811651362098051987018442748412204532154309291290925320708984245878985234785055593939001818047878756412124079273365852442261231328513687161876323341820110278278631774602189529829840874354601112538797066172249296882757143793993924537021905129488019662809468388073740330128393589122880759295446792675537013878485792888704374767567301277912465089011039198407573780522566990972967417023557355717802211227834068011785059338914700637927221615141316574454525306481858183779811056293387305559116698735162570711625255304693175355638134521739039886492291726485541070353172812416745789995915830369898342171539552946378042825043922291865895616940317377222917285342371783350009248856422981952164578052148008480022041729200884467860080546212605313491247843536388720160561721814424163267899922895481021997688637775845957218680752049522949638663315257906098836755208536169862709283567358365839272514275508739834890235031845894620873510144772390491994064753198333703981411161656298513202654472928820032784527285469820865870389082746652492891110762367976998540828183173386589264089718890928036933431665471510269507403263181174472335301910799940603423278510872505526081973111512226780860418551314537041170242208845016920510837795119851792432772671305944103047288747900122929167785851187410060104134849246591576830791670787948058878800785737932758879331191855909157727123676073038998666625677671343676227823744270279547641780197610842191848965638937307739415171763295149944938745941910437283031196265005523091353073250520962859115520924320111157428033262180230666962106757923221444229396869937096915993992034704315188650639886197087642667631161714543895643331142128766534515211154255945155986528826191881376847481559899327847106941444720387599530552441885969696387549388180869511176829468721492012701408837179875832961681027447819856985426982369549690650591085310690788868315503792143758081501436637134044523423023040929121878170894560738809488598251272083467275712629819825004815983521600190306842527478999567767285263214032753138829676685361712803685033640718941939327409891331670927285397442168071736959857293765265387621983000048357162612625882196470274735627640131042666467994158439164630963643838038950786837638300444334093605979684765821501752722265633277438831237248535216543418142034791676376364398873899817410205085422256705268583621505638702068245808515322928069102777046665366981202681581186393810552065399691142779497013083181343665164867590036274816822828350485656206216867319951615081755448771286862672889971991510078917249572619307148532795667486436774485069556493923100784937549402652430197342069588623423085668385072373499802327308574949897325560645410500854010230187383960890668645213488295332459390395490509209584128849715381284403392795430815352104341830902572016494585718152382345166782041132842368785052707057827884394208516790543952583871857740893095038959073813197471699501325347687768664980653068973916246107717531992090175370550965784442330689440419883622618089855918075253876094207300205045467111467337323187341985538147448619374202524462429788352982769672051275195159542208576193333404648490360676928891414808632018944293434956591611514699476712926271713803218039597611326116210293748183089498342412922458887164114601987929312033390131419716506133293469586056746009261955177640559654011455725082587406572061757926220116223411927146884581609250476118329168861764670062778986205126976378979040849223171572014895606537087805837553305606132255243115508395698521527147442963322272170516108874817956245064239641756627843045895189411590283242647946868004816578971142852948630870608937172671450709593799101903260590998991207546040209532106086480609485921012434505794007891008095906008822565975514364124894432774274653154494387857840934165415656722975668868817014503105475260782513603151189492178014329708039429663859785452381472107244562058162986807936388224919873164352204683687702961477981959051573204749679196634821288359413530569415275256580923762220962972426953702713888105320319613795986983364903084714852597960112104542530220874903327584047121032487429430642301756481163748475465650749493232223922899993793274588499171211218800810930927991979239460623596153108142106029103785560799367293389756261311210954110221618317887664360537879156336564542751194286996845985942913548811476419255809698886600630689197757104533920751532816324116554595174358896781846722139633940293722362909641460235060598031602727583019133144878892872389402016185351541932198240199438909518617152137020747756033943691159411523110995971641265622572189471969805533025605021021265062265471728357461145505742019603054398527334459954039213448348878536490710509247539686642853405430587027143428715334808217618400470420510129452161371186163049750229173562289346324514744995377110992398840673370859761935314225731951053426238312565393253391663659135599172507048492948899388535719613494048525735958373825163171081824314471693951778273265201653936108524517184307374572644723745697713067503540258013842867184412649695948306018978987531536816503925674019651214219265206263621171079247082730040416104950922415948609655563295105539462912600869626640600489910082225699760891481613090137282753459624760209937400694838539241928781739060544915643371740510540392854807740731043347115566130611593623426207986504315275448956122123802818743693632287373759230719139099725142201647868961457465546458623603916518559495872311701640726759719723048654634717434174209734317352604362827573723653982734479099425510423739840008035246187791028999516923157086007507099819647641631708338261884835630406809855489758995677362499528382043289043340953914204908045203272627442558539866775974921342127985546498935805870836452493961533679317697854322753336563600481573932587338633746376092710287006104699275246537770815059926240489158140806935644558517976070979921114808228318639430591080609105319604512518685607832611120247243353396234362350363576879133655405643527757163085003915904931937125612465731012805984817331208690026166156111376526596686707293098766404881077942208861364609715503204336182658488889562078405946814202999480110865590396654950900005387943152655355861290857182115609367286667887406577478735900455912241806121916283190879682874490132679899767662875407139447561170327857552072530017233131118170728983669230991262418381601599289657215495520033244900251734757172792271200653223191414899406705754759885130816321361718326442010576694525171799935683393900280912697710351302065487039788160740033606568380142512904790736437953223738627132400282586357055220612164890104577137925853958230485969514272498157644330533377802283923566464276424031048942880250525769643168801146006659449885900941291550513550664632699252360496749352264505149446755572581357313463714256173404921438397789044499633358881254764216496576017656374366776736180294010811373142511599923528717726580423456304153989347555144618393506640311151126996965165586779215991183280879473300095329047998506190785732004886777137265317493783311067955438643562781648980013922606921388011717123564370528448167732232820670486299626106678268991136816078605240298883041156917923316183150981899674535809569075912179924875507791429052670572476375502639695413823824965725906121110015722236615493794187574639959902108983796682791646505704488911211892910760053042102353869964168211948934752597664655899868311274053695229716369025908857153257281941906718117301278501884165144869699796096465383945700107620914689779268742041403060536341247801418220263532295234268581162786286972335882671057668750293836192982458697869898091762759423043735304865675091309692549263261801867372641088773436013814065345518245503827469872743993780996488023885730124439135009955814801531857369351791313704976379308564732532595151592194103841157010580589806415793458584773751666346801379936521548019466477186920286031325990647428933774988332282431811169656967084113175559453353610000973267950817804086739455910235557112085373774609874201369579206771885330222081051025856872303539345101843040786413812232402083243388825563137190173857070172130508388735426943928077663959491712406483850560381161611353388536936434604977707329576242049886323112118187400988197662619841677488312803019383869236645241667884423795998574309330318495815787946911444251112516571195250145936000574620505680845667522722267751444505743242981638048845247159200723590105319953016929425634373150453456310740968618379186915747685901674570123831181801024390029470158925677129882795111034831503389776150094539981712830741793757073710747716948378846567734924124317261934049776179242268777301183960309833539064130724708017162397212092182903022870095670405259128044008647030694956808246967939852409605417665830397944069208013768204780286004783397979052704645952980682782423669852760834939897635127110586914761359151625345245881815977067814146993035539176274433557406831861520338891178435948112071861802152825092274661662701452218293739993524810410741282182624454208633181569362030941831910648962943794755608897094681707939238965932530406502205079585624201415300123135163577674609287123215584319405114095630606743905255970209665205010374643105785716860665582411193636200829226303921899264908349569530643027696008755919234167193558738528012244344742165468488740125658887740314805069881973482411430302748790197589251668747210229161048762842521640477875292288396755800259187967686035564695141856263116736969244287020862894966824334657178709177496814149430519431168850199307411914823796591310271616922704716802273053664790617095681088672921763411291015407850780016640021662326246844306678471291602456723506202824918109098618617691131364231740686448209918474670369042650764047507753629063590684993046900945545061182706412922021187732768238418971082103620457063674990383849964408734689059701819136458623284594526665832008871386943244087503701781049461946292075087583622979278568447273884749023792181607354057153775568444930827732179179550393997019497095469728501900813515240223689018593492848191479854308591343418656051505922489992543834742438781746354914527143437324395937503436401539855919439325014182005200207341729570563653713237472414531741492588840127132602730008240847591324014395859731714051021511462636180665123741698329815548657798048754077364588565982190250483718841394372292559994825546511801496729206984619732585033064528143908222377057860909415385128468293134036967996476901603470360870158816943912520906255363888605157983427266415766538200876546037699028213519395333503778814178725817676567113561359348243542443547427477504822823698496278435775532004131345551054556545129436360445252909241001879078551984008578161687730757887415466313011354813297055137490186035156873505879033762120769888164875677735281096326750906201549383901067223293453142602992915176231402123261799926801632090225962944202553231601010980805922513336920659093516020673552852999460841508936893855238488768702914519045668051747479207114080753979917706683720656612228551364961319311860742607444041315940699265784077783550598293700877714901409883056776053308341678007060708839311139838651792858877038089363660078038723832736275356548791830711385182024771394358395516330471991319593462372714719673275204935011703736373286617663263544914696825025673956833700711632376667184781230764768249437874215954424996004323795169416774938817452604723545470509723333237411195697798313457943416351430807032637160198114031353148641733627609130130899399968640489064274191823325689125087531413177216257837320223012044137947507133204860671028380128803868135718748977749134764255998786392089555395164478648967537584965054070669663201093223028945903757351791790100967643930325082915055639131890169383327885690642867400143423278982912285247036871683027821797089562842198984800861251096446012926707578769508948688051475341020900222487818808470959213492536508746829895487357721829754998814596341173552900996277623601509563641702723468393628986873317463545785412474393750516251232025208237395127116823705275657903856928273274725530421465542104399297306141346781126673736234143292979235288462401577621893899538003719539423092866448330533759801635389750950112522728700210023950742045048190169055284338373022257146579107992525199240863449748075295543983710738888914624260517209512050330110207001430778544448108416610070369049476813102966353164096756553401284721672717838947138913936442725168853272903930826286965597411202029482486221676488170578895776808235084064246017878921453077565216773785680856736767570184403625669796640709773909530058990061607649430261647431497775470114802053818090233204127874713000746433438594349148250575009127446018776796547881309666668759438375297371174230558492843585185049669129922630403212045891840612634521032209584642652732523627350459196235716150412144854470729714056679174558771116059776895398391068126178312731910913114361725263745833062180175076351731487943075107256418831624847666290518603357515873668937179487471805274495809922325530934795480630871091735772138539016670861855358365703880982380626727312066061054984686766797606651655818541963101028540542284896025465414980760552667810886555987361945080795997199046987440393211624720554647842976217985310369694730194387350805576046852583694377520431668689806515341583663344454630861359527967767025907215346979834843661621131730611454997198123518425446589394518273062722581829371233015193190372526301520012876883898544729007139620190339435699256682495838055665288786678185079796438099268997931404918923888951334866100681201373938103497032915089931251903945100081690825495924773604676451909509003440476216499946249325233539366708889153737640313227001277879739463131400591934912327992918227244350554912859906643348092156531532249253816111986204259483316670656905209300696411922850105128065114045790370953708046013782234002624711163872979257533325474638561930679436302573056581715096325466712413066473780003822118756101425141976725789316695062368958962036352031549860924356076398851282324191108028152441000025580646471423017983486921371836555249358029650386211230407186294420552466573955725004257427819589456901575164036110038237677319808083690604713105876302247965718102463179315195154376062901825400134353126343865566486157334235428276375470407060892553746547808164865299572206229832176770651011192424762906401376527451378950859959959728025424343054877191638681762472702324127805572995858921320473328192478450011040611584922871574260307803516870390156298171003808510181982617544656883114995424916988683656725567469109159804993350378985027811368554585191648559601696847604204696708665633751872051388947221417936952886139149609825928574991600171158473590214063293159743233510817720473783711601630447690136548262222681223963052070653159734934270824943048691275604751773194312473914700231015191458709020745905391213243343528958005220981292342451447956555575258723096328998607942546876637030303110698112047394653878286087273574624529897834481228815540059521807014624011783626268288854093721954384629644765930653939281060115736652665199214352585725634384687845407867497915929697516069234037936498534373353073097055315240990679160994677408411671954733868585965228303098990492510585369299112782831833617942716203179498668224927316472472568467641216403798131299146081871819713500716327087391039801283081164382249812678787860076787819080678563009637444673984954732652953553402138356068477671928216502363147175454519854977856688119484002353091983454110221636426353135419610382419195962688389263829726701650202510433238733963034047271443148658968956005286038397905972282036332174039647659274599538757905263203487873054249639828794939957978318947457511863971521818187086457396695169232786726415565305249006262795038304969286164390412157411800282726591564886473382533536364394408960598797658330418748429715842109230940978035648832957303850215734431105798246345900866072519821913809722041503840972772746514142339579342632184626547608561316015429636998445960462093934352288097135170554935361517248214753762038453905603813494046071932203691519903663375733524476292286835576608208168994351660022807321088905639721897317190496447311410151179686744985562184506798319703470643073894082588737951595208027391002993258562120716341831282037070192227177969644438534778411516470724701498598098884981670426729030452408236803082837435924510056718660355767193410312793970604125542911595434749802643810411631870212826709765800937613631173783713403967508834684229774240661469943941594831979270728870187737902828658898158597483196515200086636460011303531080369989794635316634564286479129781406702278341547698748707838712716939564880958247234082442332514244057648949915850923919060718293425143941791395295402097041575699921353466457804210813203378012501932685079950157925593415561334831757400212120982143058013082025116090626927881045474593432948652622385947959642664807557796048852298732091905751625724939506874585018615875544916219836893024616675166471076622371212443460274697809212732572350302926842735428453388705360733908315671786243638551795134756228640072942675167469476048075980814093238431440179192576525108891763699520654037552478016161296420143019729837362537555924226760483640972998770789227455390644558808676297946261465830310230604870339132876072821993424002766049607764885390716608806150613330543722711106943600611953350819632645804334673809889937455638318250874055295351708272894624064249856522201577276632677298905624006002558804974481041018400724240461945385372533950878182114973849436781552251216422318318086422827155471362655415335588323739445209277650898368354631429404421512855004543716113172544323512253812541350048718679091566437797238003105119893528891510167388525681385228899779636029694840728529995621448606207703499439827523485894033760833828621519213653089708609490849648342038852839069429424613889635744954644281849117169792915315964876125770325565552138100061590445236384764219435332878325190046137050878657844460878978835736858933865191280899299175951199042946935369314777369938950000336935979296411807190432988402273496280381352115431798428692541510219286647101847530498779531041623913646347403504205355391726500839787916583990319675668182587175062237306524710205563754357157138750782956711514019355657398411656443420155378126721676968449627268825324865807171169397930821596276043198543605368230923292069497874936622704942296663717809445272625660083203194137188868311713043990823104341443168906523845394206306597420012258723214684759801640425568767483113087402214713083088868974583054623896324794080727710693456077882157158254527855355528144899699586277896664492059290801575053272195256461696499096437418696913738859726038021623160710587782880178065926478798428905620072900101864734559408707714736049349787714697583029238689622345206175075642793567817367925028516001608888854021193897812087663956583866712470624020433138645770518525967375310666060194423299591406897888686703980758285049850303298314038855864628314887105869094325000435907350241616316107231961921241816957411918168574829257367044561059630230385321944215204187155535369778159352597889017494996295937615466310827756226373187318711532146001084006818420850610139916439050062345107856766224555721156343500474513601457545670297349405258118868466231231733978570469584307152195185373435762063296165131108331249128565082561734043954220822714947771197245755744289350746797604191882934476607128287253755133967624544838907114548132021874264261156202391373176211356219956390839907416001793900826718771264408025330938806807755210745721389098610286434038498408021552579348816571351805393940967193916711554316545551993039419200943607682951602922145887121581237368500964552139464039183382598917311415841404275444232854616164188150122329575602859802013451815782122243851381673839765662218359050653839707308613571964934011588830620880714259899467375514554097915175845567022691213545847107456690089410938998637359284651524185782505570297118661690953484977540315470185263460088731986142550678357750143780975677334757913897214332570469465439583232357139975056586791683993651771778673757491321129030206625280048033756496006840477578435141827346601456851908507505600625723513980688273440157730874151621048434653099723157803650537882218147438939316650244503975281869449420596894586644764747537004572675860116424201979016236970528256979856503571110447956412726608771856395957305276337535732033737314498161547738770580896573002862027459498520388942490599551211126324572308350401291958275997874856584092437802542369299121724756448689080398045312833757373944253375338492949318697541118824393555801941817601977068190073330286090755025291778593181332911796481070147120867550346972925250754088769166009462649679428062207852524619746690959754821559195578193012717664766728033104860987356180601387216765822021093358073001685878684009111686420061476154447619162208428514968336571486216425677770177940040029406848973753971538443926532037672650669823585454315140117922163515248981160414555469144464700509549173757468047985649997127771165314678663220471816823948048989092010436090761103561249162165245070045444484639171157928318343399289918684867700642869064849485437275950868968402592520237590659268303686708763160152483283066634281114448230384829169365007985370030072756301991464875670645744800831513156969801662406296177000533571164290801445988914508117011205409743550575416220745236264964874016500616611227249615847901115267701781513046153431217289762121259972710817872535370290269115425639362123064231260009708611891801613872098581327567927219086085412291207292778932852436527407328429486554002393143150591339594037031037910582259849317306681857358790761224637307421223106195399838312019662854602633732624852118475208096627851085479887435003092971944719674707160055079870749004069953513035879004118509002254586000586617717217103671130159819711059547828112930375060982266672848722807602683350104274814790701007964579863845940160586755549211087369221099332139908390901731195257884499543442456001319550780677556039113048521949530708969360375832191200412331965750168674041860827310136236921715931269365441161280907078886326730261666106751076566167070388748694191770458263532300440007595887219779730249330746917557102638576401228066456896528530930435417560576530464214701849056389690740499274516683933553192641080768827107117887112339983262332994195187728506698561032986100114490793683900204525333301379288410115228788841684742665406755437666843563507648088574871245630340721692546177239653457870453296393972853035690554968596669377512513429848566931643193840715492519557809459182038788310512269535572877375157847375694581968645888744152328759241971464079118677488818743473998471386577663295534166656335783716249739651741812949633504879271483372563200899025343567728797640422149375557268362833771884934736304051232810468863602337308413115512570831970862497311371963113302534415417607441289640765069175585188852735757137460358715028528593956992996883482269740555170127739361711267513639442932641882990539784390011793458663592558314561873313944333995534702488795411558131786195622431825261048398696002898100960305181879716327444085335716671353775159692009621283115493387108533398436061880267394652348477107324245799893248253223827229555347519023447334665952752579732009018141599667019834058272481269489642549076541197127569018104909311097434807883081003799542973137353766958055102477488229924181051955791244854486931173740507811463365203658641922030064155575525494734867249051717639589616203709347938780286945383589806867928071977084828361558098163126997675803840386740852882909948750154111731842121838238487805670852779752932934173829695074547786504586110290884831822520055130053486807505586418034555748858371718222838938631425087227347014810119519374662651395685580766268130944486411210263773871018000835719918310547106457864237600119912227710513013198919880122977646839108379084362919512306794405614055400007974435483247945091199978659116373072844596834952533558934836552919574142929272460313922186138285207578634410549792545736261784781352041622740863975152857591534852055069155999681475395290694228261367987074940251484658259179186592194445567321664129901735459079129952132913018632426444829006365780364794614624694004766071707963239515651116312203632739878225999158259322344988229411474533135038747128665828604291272795529260541371335599765835122077390362713309917909632809160769266156004014320014921245241542491927381467406446152873885927968698761460917034784721487571254376108843672342760038882560609155377865160715834761287878108236511601160412710088728518938875862528466322217668284408098632933805561071543123648411241392502604788062624693517187652871147456462014177095417718597575374214244961327412889513409375609456176493349989039191912802730542559511094970193316339150268071576540461913378001272976975961620996037770121718594855879540652609934998289241767147446912358469051452644267149013554258036600692818719333836672521298920722227533446634297761631358139559263019593331623667029046511720175734963096441658108692083569766109043276052078932817776649630374298432014882787997132812384904488431628114007639100626316637677359678600648030212787257573549391474308178491428815334427438216630755893807138956405544728456541508226459712594715741048077220072694082443080418565652131057591020488281217855292363153390661113937831679695491339775810688539324409738354299217212869468686060416701131744378387957229041824307133366159190180250684704887261176861271765136576748137484439528618855886787574118089530590073192813538645681277366967763142218298312210556653179494843412729339670337389411149005768518595323742587344134856318423933487498020703987282406776296128623555192772386153683622519843093791468205761692253886683932642662907189670864967216355840859355958444788091557463456551326115308209389855098003490302239478821319246346410270080071372126814643540429758906959175169221541198865645672230272243914197842509005683007011163865504233424520891378077500589204306982638056916816239650969935285029215593938655683139958291232529120402942723032118497540218121819854032386751567783201261057589605044786409474437849336727619499998327977593428689858922358888688226088054613081513425386472892454802642263367421051974472805476111316457738743223248942172585147098620069707154803397231031940490170445335637838010512069278426482734611523512159614518440783041876584429551992827441810238175100048633408946199890875540468243164304411614996540181297153238932037841038852754316744138645865335123074338477458890932186528494802261633097867871593546507784503384296760770650355306258472048462902971506613620155708031155112212196714318519560233973389629440056581288607418753247408015755944387200814508295805475241706168510380039787420785804576365612329678690005417047488109395247170077361773572690815135084367699267610401769326973549165270072398795152796183940620689716702816480373020986646875918556084728398188081189011373762513266725264329075964736803871413393442224113039802221387794677656514042311187124391097112026191297000116949448826706385391073268584916182224328925505866180841297294010300963104986409592805758653778247095297392177378336564796637726642964904291637716106966305245300844858443239509632727748650347826181988015495059681731900665520186339426368119275875096514336108886622719625516270529618488882540191489039801517971010587997915017610805473671892445727064660759801324715119820793760837165429440303120623019728767256304079607804005780117186344884040655073460935049811086586431609075878556334736677099632603554152357255655786162889470327691027816892145718601647144652868705329967059255845493689558171893377850489648288684372712915168770959902559432328379804889099067132569228588370015643959509497152998953434088110224788091075666759863484272523641101414336881430069593007264130732198415330626576485782976611967608028350258124758665572141805771803058788029230126407077473246616374539707925730403571254951917846898111360640607670621845960769918257146725493364541604070445697645988467525993322658758973628500294363874518092885740176057239326651877689515097065003130847692353379994949832402310521616922457615584036045494098919697362831785951287090681765810495454938099547904405704725666259576138314302709049850532949376235135623616116967647181451675760427980763470951022435137648087338851108029600846273942854971334110418593706740848969004845949121399308174923972655922560511082517854522577098890368046429289528536141282831842779637116124679047806516277775155185387927123887897348428378032749877564227208201304033979356278076551142426293956178496534410538617217234052212332943786800266854508695511683360117171750358737255833668757931740272198158057651267933056309794472353005197910450240984286351592626252236314055790264238251088498785230764428273260815205313029453996639811195868132518771253597898350377199150845999277498281604416307677529975049220753725849134128695606042890564092099872775756788924793622672205818714484644796672295823493975007341540114013393674832407784190140247240538400153140502562145521090112351060678873756120778172188823355443107354303431090642665629734557948236599585582224363457443750907247891667836985361977346514386354646530059730527368956668895070050439114271867613668774639247040987795281891085858416029495940682928909179778619144720549082983388284173074745624237844191715439127735049319695014743450985789140801188062891715364376639452554544103694470427896878782538593395928117610538656120522684519235900359501443316253362228339912561620689607169545847105824130292944623731001837615081263186422451996591946231515052628069952084163226357101803786049914409254013417555477737997469758687234279464885884111866991269987730570791708179235080316036692991612624238906030007039775278454882299826975870701096552834444756258281935987098343322367798136738851830219785078204840840457659205051227506708573218947690839279723537654583155337465022265537824842625596857783919799451748740344715463744878030264429852348648407835429859922531121817884276711164676085079257008665403745569787158896624383243693910017797542365682069653049792257210441606213903786484738891451451963662613408788629164447631240134944119036097037495683257980113936720693803927453453366508419591558450982590097111365056721499327006699195310512221261186546867555481412668763366237664272392523558530179832645229208672651821827295781525528954038402537814733303768813515997643477428776746045199786957084356863379784684443803035168869430143814582309906868437600842036836153376735338383956722951559683520128234522949072289954869226754859877637644690012036207657965635388415976737534601234328546860134451054031254900074181017653262961650221754078541687167074847424798500530458445082158245764165523314257616054437972255357577123137206068818901719467458088715281951573089617349220390249708629288617335686047493456132867294508540208823964662756496620557805881991285433712859826157774421945057561199494702409228781351417756629628036591366763103683926748941656962078814008376081377762527202459885152564584723146138941044602382217823062359881586046424848450447155742871504769658237665929365078316262430464161418348276651639559163286211532329147374242455175200321430172748365245353835815074144303502733766560373479761464100214673923034696465053721103277655593116037704548588969933581612221643544049854106226354320877049527818874457703945337709795139882295077733559381741227446874687927918414523782766164197475503821833268894748862524849983503847407684049387938976668203114379825579831074396568405426722834698045735168830405335343558016609785554849681007043463384811117772550800775819608194356380238143448144369747251347420839273591320812023110406682643437584755343505673958185435063165421556209827598696182383010508312950027701370423989166367042004273618637410534970828316791834334136300440284534169412074370496941647824077387305637159280668457267470290526756029067811579561007940011230853933391520425842864652499862254974617879441583166503635598967510628938201084215581886338090906120531386461668673609504438743965072442626601345301035283817737450663448698325372939691464068071894718188275196210634492163691884869039259683679406358367685865891371527584644826753233595838813636472540760723844057316859720115478750972630309195498454789290776399381556889241198887958264851437349199491123066649777721880662843288560224680754305792873042637111416499902611007411523683839210584673947619273682606964088746346824379468598442595455617592960842150552406471700295102983007459741002969129279236750242825585700965117746022272601887460819985310481880120575133153704869739624464980783790429771233859308504553956564048681756591136756942970912192170715172291164152758626931130259958168408695618507751456930656610147218723508627915155229628113350281585079929855138953739519409457340058852386084306613568477936224598276287104342128315001495303411864657415872847521476339712700785025836686951028652170211128222551790043771627239990884405150323003520993811506741605938944056167918422574969066923448168040022632017171875656336440570010025707190008308539670944618668615623515071210329985882038536172248014793172720835631113383088008253996144675265486298417766989631188990204238396322764045840116387308771031245991273918658309301540453175825975499962277380651456350508179053510503414355039240490936536943575638647040043452012406159429916733943965009003585135263301930064322551232027739816720394963247039228100159273796383575062720019351347662543016580799216130563974319449073236474816302627395778878006027015276348518322745903391548676180515593579316123526982117137869898393300653728888783900837823493965092181939240021092263972857298675406582554521050117398194287712918983498771508790767900708301626852485656207626326453271822005873118514735834380278072450346566860624906165793981595519207225974803754807430689249986556242816170709972828777829791211829244454559220296731122106791502560634165197357599010802611688667576967265569504673565481256193074226214153369797783984133075244419360729855157602358708439975559412639984857673219561097529731831029845759282998678527243651993949262689949949445183438508543176837358501499614153260375589833217006990066776446028346156331076718746059688144450075496789185535644491563990449706534592457556767995333469877959050043921481659046827531427031822423267115089206861794675840185240280566766036588020315359607590831051996981166659620771840559880765050930143254247537289979359867953655952013534992868164933235098218347388352212975331376366487840073208165014530315171946630166102671703713970875892325486883649455433493198538241678053167605642522391981569908082931735801501436034320852921930262693264992023920306913370195054957377935757955507010550341625445190550615941328157748163410369891030195269727190154483291138360995966271493742143082188922349628138941387930437556523151855322818519506330799115964408506241851310629208637042396828675731541848044169602529965393889803472858417376358376574168875358891790961795098600839351769583475653383824223705326177157575718973900374993875181108424304396177640867883015315761694296548730869886221463796354652827450635384409542470878593994768283781669710493698151116478360414734130931952891045927807198006812982831686077363586087105321813314031008101320251385688365884710848565929899581965232448877241871566500055990808656155035557875978960913019712272946229534610462527790139748154655501305035892341273424225549246238959250064645072045921535837658120103746150853708993872955193057610791576965756574123612475051579006889361202614621293715047776905007089511867894724870135692686011525285694758415397251091522131919111811381641500915219413023273034276327581928711467337282304912558365604866125297528605386528620983376203840548230761948250042560903484889273584201885932846306024507973003406947204732947448759163783970649242681825039128527090339691119316826661121428912717498053263340338337237353294000875261255887828111210204667492007067539297194061168277115460465346838711750350259702690534733437479019195925887660843052747531033050005192112524117634851684670251999091418083070948249321799915265564227138003682476519862847648238955009212106566175369267817585782116235085547981352360759704911584341274349578107788218896154698734665856974099289288747205717481768687238623206602536536723590598986509049715683492888703848120321567219926983169691674620012553384369442569335049336540802255137082934332714198101429985575887536222751911961093981218275919417806910854456915466528019183572121800646370563883324210069644055760511532669631351793938739377091976659770361519760845241990956128791568702943477287825948621334724152650383466106747781953559431454107064865498116961187799880270911183927543286670401736137853192546470053925786924903754881279649632632145044591553487542095561096140980159448467020107368641467098929256638818098331068852125014549498555497695808804948506966319347823442478769338497592804956944889916089086286213401738149065235218792819789120244177151051571413380119229798686735765458621562473509998228561860302688655275300053042186695645002986529091407212289693374277219458978759675655745915113231732917879136438228200422923827652049843760343443094315449657354703225509773626476255796844559331935826809747751439158497507310149194076841604994172678160941342710554494405647190035597882912341707426771001907481827946427064968053112638056890253478687456747397799622979319631686475794703168405369810264709434793527339227244581217074736063995754066187846553301777321521584379588971066094511480247152327480174844313412056994745399370395564482839888301295560360618016737297670471063178136613278146510618198456848987246400658222979108964005051442000712203450653023073284743991623213317115877370852950674031496673629800843839352674463540152656447521230443939531629575759260099392805387888125643274053902692005533948192522890320701919589708915169770166412503192402036344438620300053430932701235886444187055857976105208499129503834121234430670043271157572191190725377997722983728789254476064381325010779398680457477804691554463999606944388589556615911738452438559142991736754756234222163003921374031518761545495444720656794689935058402015669376022172216976991242499213323244355777085289682339067755967940838703185953357382884033645748151760714710668808280458713392019785066863629962633863268626180770382800108088028019779582932719585670701451990786731691094560744908022534166705479473146167420069059989864425909435638497445370358016258469412554150679380529281068293453798999901380755957969833913227993031087518364918251718587770523349579600187733093976423662743873281698942201165449479200135906205192662333855962984614347004035400919976719242562216057220439676902668276731200625845891143506692892607942402211043872457634766378217666024573631909419266444635798856492897494230291398436618743909134006094561995838151403838699878194954357452707056580062195451141881782292716527144073917408480606617159388494381242202119081972132971073117760887025740906709536167498720928170736158061760778228784712290933350318326387974387918526463921282125073915046387319875931328074594218413094581126739991954538939109909604950434476753183871862029354132322819681656168428554207062504470356433939907248307897109437023801283799055090814534258528170755081060695155605904953643185413044513857107244514017547107645134135503330398223884815420250663139727476528920542290452953960437720696907589151050784807957330135605277923631484653716081659634920301736952275328526586720107354873153081121993986607133468851382925365966331050968148483320409989606631720497676243463598506011042009097381019496889885453341610460399983083622646686280402568192227110528065005184659890897105095049473804675623906135082199820876110350105476880375901444287071774229628373861943989383388174114060796514920886548378566705968709378253080697591201081456384160771277987188613612092564322543303364713311319408665650547307518254015322846113891257326836761918367337231107363386853202750053110206458611848446934394884285167570974475247870513481402894121326649025590747324930516755608126858842637985119451649693287030113724143700556544114083469043328503766554899444636170348484061024787249746811868327544566313263160763182390122905894617822724713858123450082390167481315601434731137973139064494840262723648743902201425237370765772982243615484482546797857893754830625259330405243811214844364224330549267931628368126555059016041568606471543287324804208351872420104476656169127108139021210449186482569284688524876400516955215731934685032356811042501542048146183909561296495523957718337293196462813462956188676382250571539545583971708953481399028219454436135582986033114941526810681107268961453928492187770873695532072752921044307468703547971767627049875876130890578961537936233037497663030379335271936994263441278948909483956846298687603581374432092363581181300377510155487639918501296676585013415926282723823118236417981321715885679316371766736585359082089593131124556822601998205217122366395205661305965756186210571010472067691436720283908031936470011987633718332087132328315382529722777786149379153427622622221170797710860169273606154322263911105080359536583339799786518742256792140093705935119422086056430792293456362247022484630141797583016874745838905596090409062169049382464529212261448214735724800781839243422456508362482528076610135727022343795559129503704290304909608877147509999928386785448650755387008848104469112787117243373556731016120605761663556112276339578611954032328527511911740276769400413967035190602125859045520893691215562251417823596057757628609906160869035439513185340529547363192642050752439196503185419840325945060332376986282648644844110513652228858397068416000346022399463547280828681333927099575919183739679898672162449291337043080584298597498552589176692027531680531930637349727640311950876975863523583814099444873685236175515989582341310307685019015088674519858230347158049345342150805074397178239975478173320446123336658977107411556296010477774624853160011141282511832564774120387080254466210809806546099378824460062226790901780192852456729912771077940567575756351817254390726523998446208639147215487759650846234645959773405394075627988348172318042780059701359959546437686388106863081434543464513745721628090236939202552058380776030671329310014670508952637203657208502024202119300600642446659024531487704049979039682536996133979665030098755088496422350615873771251918277133776689617929817774637342258788248732276900509687952647120712709116853962946043972930972424740675374274269656393204883230848365994999504472042365262711864500273513055927344092458819440269092195503293645784081865925127173622817487255608349181592915635447808508755771854737503525418341392867525110521117153540282671876989068418453544948361638447127879103098575337221496009029219293425396081576230597019525511637435734756636587555874429212552570248453362220051867010142343922868966055121394615930154112891490012979873352884440732889778102300333600126095894744633804938049525033827874765117494970944989237220225916419690088726434873217699091191135479642025112441872770235661909413538718754765767776854993693153226094952979134458668529422604953534212009478340993955325394532365926568191137582928311550960473117174867437636358624120993163291425901882340987830459118429517709032619644501260603715645417109553153416891011784981330900297327899214812792027898356489093968709828341885629841157068831669904796046756313577822127124295541306589895446239986393616875667653213021319238677271051026229183373125146360364262211127185055992829400758436836344636611422510104110648464033228258488959184762727893919737693923432012771901104289932897283353488972799020282181241293672254237743161942181843933771194936596266796608185282982135656422570458719026619008571590648067530418230865332831260449911473890399177470166530465271860890509143242230421942974992291823115368152409554351196251648177414570004044597272356748870349632214393300683286092040020739612920321345841818043682240415536976596389909235449400225621012370685783644100784827259546482776343302265488538026824070038141489308598352848904854790773069678870000853020326115775097564637162142782803801377088303510152261145432271691096677149244112588591827184923630895180995612032198953689509596938847398843807976860288634775518440984039300372160430131600451542640667183161478925301152093687976059974824575887116032192820860360359626739953013030589433006571768969161743963740779407150208758877818392187236964499590140262943317581903184501282940697859021291327358110776216762299216217858504634772539249399219389189802784479925905591966514340640040382550224273327222418499788285162290205274181477707859862460155312362725302972048736423446529656996747158371576575301166300454394599567257581598184465057771885468253273228514522918291090642360604012549028336352021644433828244250222802561459311543566299155255872507747166906769476894823288629868231777023368955930636236144054871007816043657432041839073678679554600058589671945590785758312873123583021568141343267294490033314679693448204865280930437133192825081184488066027877925347437841448136466547854091576242432770594719128009125786229391093157650102260918164945779514492343787808297044295001372183767343066791666092799044006709900756367113513276055334338842653260515510258211059260172379588217413407568724575778584489346550646510587359553055998614348753194462054993378926205289702481786215479709259256281095027131456716286554742060144388960123227918196792751304101333485807200918494430259954376118696015453673726216501973526652699567131580266079159360183111545439571601520305794625766263585507835116501411607144014164173080628759527510134306498028506357095637374154211585901970728449542119298761087848294913226170950587651247676250231595210162918268745980682430688742218541741761444489284692241678904741720930451256094215657914467186760957245862188916694454551466018739046657683080049470627689630261005847802952815449675319302688772106801054253636217181604576693896324916400238888757609446165271821547832628796377679189965741928903535516991476820641584412238500290957040450438556892307851573668346484549801272155221436891188303076782963752068436812019405551359895183641447396252912158031815341444845627078595255426897057685870787529592272062242060314443681029741846968571317832400254605471128686280003847773790840383731718145697356475761315911057709573117815058052764643079707606337240518384894498085017721631046019962669629025945380521485484900715679521109725254722201031565482906093506048601328773760759177887573270434113443256387255900265878849133647701185936138539329959786393221612108434696263976544867966155774484532847199894019046536462960688857717706496047126126340960047300958710563004276867763878103207667953800965244846137324814702657200761559222652176716714733330735060083497369880486222788771823264622324567391377208768320256067511846304795633433054273150564231988548467542158259331117670730012139726061317663868315461511531039501715391689465278589063347260516982129995144840765968108316812402702511057543034712984245144497273615288889502036900083487916150108899092569340963774949496730313166505020718463083368133950661005011139834132313160870358297690305296657958309340791926911314438874536982485668525570193710694239160071308776103620462462486358721680214023737386804843650303810933693698955607159998077941261362874640604060408092974467908421030471488398288745211890096532055059817506930512223483373402718532654170000302848500259514263336362939495363789660956126348562145525175894610946515666320352827458214387897922150401736002565727839570928206636968213927662908832584513163790348073484986595401638470028825341955530512502503692960457296474199645763536503063751657168460299629488622804579915527614049215452537591419875603428563454435408564015825238608817654648153985769155639373438379837285823161694680255879125435618989121468289393340163937947533291038887520771900070023137764824489932698449990232166957844833734963788215688023294745569858875820360716692304934281048660491750134950465189797089974970695398550543785992538816953263674828058987595645785002359354257161122145588769745642316747303543540266120587036283522690342435942723179488277327573661781981729964976910963561601552065469102227429884831581437896405048636818208667418770584970201742403347170569521461864125420384995973188403806605260766041447383195850324527004142150229989328374453552722824729343049339939918010950276525514379273610178018394132602369939256804965016593213899576136938370122090920426420777020140965158794561416804229789574163255249460666382492381070110366832878087829671014611984878453463871786028952654022031881115168009329019395033588487874890827832905288466692629441712359654809494880041666837525065071790403295407915395337172134200321782490611534802787857813927731701212064606207045140353212377192771819598235822557293604048220664201016173296118031635282700736557126378996898539648371722583744178218776262572198859995371320967948674820210126330569761094813507787953954837775345155762641049707805451409956328268720355620147075072350236301668317603214506815751095506056396234886825932019136049765802303490567992660126567765193380276222469666830349851055016628715370919131238168616241849871071614854618589530395240096151352204207376202067049799488149721774163818012799983297879433725572976661981649006668660562607754805728786816191892939541724996654982335194541900206573285887012529716625417643098890024864888921703435862457839229393976207717734909676976851143549182872605326108303707814452525487844345662789920731778100897183334431079541051500881975647967250056859595948204793218782643519124409764763854322953272449470650545528856932750388878232927718837858352011449574953209239891186360459409425643901133765762345982464022384967938223769528252632164035972650501577342088870460316292926315486214703554803971233457203636088909756980965394271357298531110722388293761303535717603992421486632458985976540257486101806984844644612646450662167932147265034659685424407759180759083399378241085370447815277202052336690074596987724728302110687252980434608038116866702120094683488706406652624021046610686940937394940716381053352582111469496676199652980058290302146950538428381285425183233045533730068103093915769029396381335907509155518006464719747030807074892024367921629212388476777925471139148518719811378232023598777842022550245400013209977495389819639202581517421260834492528177871117372157503992857120638997601748511422066703385947751786810901284704306011799305122402562172611306367333158521508022009293546597385974717207599618433740524359777446118209920632424014765812608239331662826634516011041049706026001113214247032634149939023096689248383757589786107576662882332475230149570182485832165690651318529820849407439094673655999895697462422447954964841879603058582916621748779457173425660595487613867898731796063897468129037454552728792361812043365309449095255877255039197368093453317473113380639354862261764641811612552806027022866745928837180944468723908227253508980533809444439756653146399214524853334616564198318831845383607981712664287754902183761909484523558602437838784580276234900045987024997104696656943103922178242579867999091426224556756090096272838409286983570583198614000419446071835385037962087618075397434517308932442053405013027284635245604031372486201545375417540953776202706596108134428671830345840357171677272403027460386657040700593846746788034110689926027222153080403103186366925022944357177002882863615021346039349617067697010903271414107010333082898321188521858314244500629975689922968457396585931572988682084519150107969719976240404959925321491105731617043917159782246742317695175313597070523059112617760381772932878291983240459362237997520184639317206436174929109901330211326037119547193373574336618918923002695980874669283144311139102198801772724364489541200909901888744425711440812389112690925402922875930748513746161991190215141511155566793552081584500406214795145393417602618799514025168137562470113422498285764561603936716435040517268491377132360942455154817335770770121870758649398174163526229363531507126460586752113072991463814032112145362468028367913501109533391800976243618347979844903706410565343839243110128770626697550243772787150416236313571854233142783218791406360844436766834051951874965273501656707764045488394384465015905911599508659808176264681183988503816421311020830345047776685066908552608608368004059211441528529562433752673499892336297434506139034478837829611923278671956376813237875725004901532639071207477127171077442180240042341647851889946154586531127718766730865969229601250289010706472074097830765813354276574735521277661815795924780220914251507879848828551782076358168990383540740049708880770179893825332688413068043597140116336072170973632665050448802941689066587381728068283602765061169405260633034850657802797149646684723072384057972681814612393703892864521686475254093305709033915967733723204281051932540629509028509964382180144732745676580343589229889141095428255637158844282466152793361756614620839808312296592787259226818648819952637589047462996937331323511331827852604911364981326916613820041416266157717566941955291357246584763412968091693799102507916943592826843054800900958126878752721928511937818502102030230245955311622275739276313133525516215021141043969548805105170992972778696280025210426926469612926268210624962432964858983186299611983648840314666058846938189380737481686562316897015330510971366036294813919560398921607717837206135910333843773443319682731844613673874832744879212090703565088871954225654314873088446681350599824958960311299893561619759109330821007231629511848004209474852493487832715122628528942948469698022869212436910346110364992507741260015275357332233834515011387116582081231582265015748863587191980601603297783741008517250469059170054598780966327925354903831268052728702331424185429449493535688141182796621084833429955268142335881113396905716842444905586176892658264269826124526904176390315882247713633151161451296423238365318115371648347189308818992532219452543277410757051338206560949678279676814748958079063887194818556662352485042283192734273678967855696337561861183659197978441957041381773387934153746330780379341747434112899310793868872999123268253795012049350485405461807170690428756589285522797599966308523222704443266316461377248646954970457330648232065243120560823621380044779754508666074452158944984893574932800866020437134964267471667371839031501429834782329318782855703035689960834132120522515322016824201671896979196103217232399844060098094637677028038528147720924082610704314758434705224931199676726314157655267390092779726469489152847703376609231032346451003998814645765790665300819679112555068062903206020780136315960806441271582846722007621518760611450492680833070965587231762259348836923752577247962965166132288784726813278724661666484300870533621238226834026426070444488951024925865583726031624496335692735650255730648986673476242920182874528905372829431222393341754231443966412828807024834710321201081079481531275878772087110756916760186879402701233436931297816832778346367874447473416195267166020135106577493682035734408964683019264522673008539590727302301167985404764361623376729088273509560683808721676981860434071056078926693813739864825614935824247058311117332850924643124343877547836631489993932644808271134045223081806075167016277217040230154457976601629805447814753484281011007246950505499188015650963405423613377502079786119522838131464280961341246424128131874166708626671167284184965482009820187065672516444478873551576296243834274301151221435257679917951976815113319471496111588660351946729768424958218682776622788519527309006571764083031826517861431919054430572678632646507218460601735933007535181828741953300785454956277395644769119067774119488558777020095919417536935591534486749171242453291849504685217384729801531339270248274835357610498227896388683436414747466626936319436321210264541180168677038809345100145413346568744828729205566025069174140023221067581889325250297086091997120007283874456876150474973439283436505440734172628452320148340008350573533592223390731179483506846420793715140975710093130532740153253431877513504338864084788461134932926288250585074115383327729071281118621305229942952820826441670158404613134554527559596548950523329079076291760809884534190587707252250969191150406176260264795929958252733487970635411746074277293649092169064283504644501756319165159404209964320363229850779366058658646650813328431612882872437678982549678079679599932167272509804264754331702063102950861028605378815648257038662757372233856523821709924884177301487137106949715056707982792938698933678090243629993831384667214553892576740516482402991824120396964431040214233870786821305505154593958433148452908040891404161811264639582732432350755461234591583872809186487734751593480663250143922206812000745677668043077129548210604746310747728461075590716807438971419332071254907365252803555916488158952236096227540547712864783194130772971960795572379491836097157122310793981952379480496285510036619873911092930099061120321759749637297123463680523378595141920799196231804134087602233094418487432628319824902516377753342684581619826892729799967795679432642938257391944919718504456796822032733458177696093140239049416166353044113581781304780784290293965295623415325018820562898003389361954339192186354852339877597660021691730827615576813532738681377255075423220430155204296954611095138654743403313774025200903267497809986698683783587138438623684327643160877474477373161006977939347064745289782437852218199926043418794862562262837786486795819731335844290371617479286097440999052293074781267383006683618683757231290817895807828520978832500236472510314260628232689690081811643537997924862258065264287419631600190760447700415525146086201532609869312408410142309551366671953391222932642253983743686728041007065784009060356242187919511266763825043974256375902321253895666888905752573517498303556771496475799794247295106387332768214760555442536379733554436517236147211860517593074472807812052705217776047200656521998806225791439084988270537312346306067787250585818921154410661144366084197373083181172212940782007651981920475057660255388686836247979611970725162210182469282382861741490297578183815392028056507979377208058471744830639238965760586016567799712896551502849327378690638343274943887020325092836689101594122910432714892817841819490184549913623940068420429678059273680940185075195940006118112271186474513184354045096264350355913063323532833834653392634860037135950351388135877835122000895750063482257161945006479300503072372852359163047847494626421056149436872826920613532979312593781131610742113068988594570412040782378880758390932729501677997532425842766271819444271328373837737860021151845570160765344832875718141261013217345134462491440708822729651848244919960717529727371452643815443029243883828993636776084056946880230768598138112702677464235957924376533467715973463985243652885052904716776773844229061490434305284843923774091318314061229506502678063736494761547917142266145596002309535118286011942175393912469001737563814082952414602481058663919661464500960575345356959935657971518605071963703880980560749406605618989430353335189860459305283313680678010967398170694491784562147880247773273363432431854821910018965369614875773915826939012447957155413840918807653473324815325424283836832917871539821956345503330111576397417749168731601525733787684966515487787531939334565897452026778043877996706594593951774512505001248772713624432435210000904004288213303004761521244838794654624160726174125246071251594485365988160234969563270002442528059923714674991439005773698169984153767571130350440927852955528513651990678544283590875520455087601593596098015400965939342711905226039711838557814492034322670105265453168497570042808590606420769080221005603229811818189155248522680196838765849533274564893460752421478174189334682763443181788071548246777278391159991553174384894763725250963177083586525890517138229788692544982106126873894441535533947858552249713716973480083098113283955337257295020487559936598458007488460303604789006122907242311623694337275090205913193015667203367648805317718015522980679516243217336915638023938165567233120230307753400685325506057934436942081794660852204844482097998221819294836979227355158106182968001214831119371016092978439560953999625112058941823199729569241139041788153777448512480140502719874127221481741140851665127041818663720204538520081498129323265935622312221261117622773054784863722151800517891374985780435576168842337718192084082289966268848845321278028932877363549667090188501447697864869003840403376705424559896254533913593193353883674669924079452040688439742715060259565984527388608292397105897165325613357773420319329495984736937103728666791324263926922595132573982312102093642780503772285020695999434277622704061551559856111342854509595695772921626662852247421028415839777380293179454958883902440193419325243239645278500465122814540943573836115754905147949025299115885958763099777577179062627454370640167372899116391445920897075729288605148195239950117022158153352726185176780702789566624265761650136551107788982641979131262963691990653633737591294557390780873690804568584589957840314876273131996050639178636673299251312384527419475374196293528971479402172749492422069671796814317955498370966780133321702548523130506780080609741832941564760450165987769909021416586480497715574465436885603560799835883058937824214614764951360018567520727431951461949283163952572519775349535712965878579625001729728085969653988706471346161150103713381135200034072677059894402933746481164568303260455093846904369530372255496256923201151649666323043888804610602066066865484867870210316939474509683363517608446270747277458983073400776383916839902796363058734333229009915152535074572665209090071549353387932104750757061207490166526718820829729233789733361112710684860886448664727427415556217020286093503144931063452345777520902528017224698627023697029434433333588312705291168458838950147958106104095306246770743842093994535370364247543597023353430625556256024020346419653954552345814864442806636812668538271340324350727224260912647325971822620510606446484826016236049995495452993939740615998125829960081127990357026565821561637063989998321800887205070967755000061785722585448103487993035499003325860411705933697586836915235271685748628389020794866021715696229979757215775552877282263219418224710328527188127298273517214203674752279199435405276136331803999849410800069591634142594082597159523552376620670444813131408736131178676500626277183557308303395205092615284009523544714646777544466496700880537551891936631399209820858983962256321228888899367253985453772538540462629432517290217855391736310331219371862319170808657504706990931506030975461824145785629492761939532267097987790081032208476927780402354714723710635427893675408585325752612496998586009110510999045074281862493060020371043600107396350788512580146435937955541084852117906054591183255052405629339444941794881328879320166981319751429185887158354965443832813228683868622953150319919049559935746785508273426251920397988480454035109333120364499105804056857388647655926125635962785913788510515351691874530197029124537071191867598645507662309115100173068607721329246411126969468544251713402319227088042041341137175301479955843744426360916673797235076825072347012767337643310373595557575822461196719436893345120103085908871988831822296559141739781800128118338126290536414525546567959568840614790928352066696845098837196674511440331893013179049969554962180419250357275528706184307748570019729379627194566960029464156025883886458079037007783156854289589601274182105519786627119281421722101984544421060322683050899645930346499256902090239952518843119240849531143429661857547432278503769060073507790240934561582304402324710889437291024799794818939035239156848904940368184878212021079375280833757335747651743418254106690631289701629570115567318485190357998193986067333253530924074104618628913746796362263690589856460470943921174363474260208547929900292776230902262585517052196225865565188875832778753886654112281804623057600994486767227489832427018614328914118398770940286157583657961675662847008224775704353840795426788406757249129019128185228670058957899990789525988274014949789277477384251181798253995879589099330081027053725905456835970781984259056093061916830132079516602433997546149612479417200831597648644586775674810708831974955796469937666440034008591026926394573644326193724538889618626470867660208377601218826656970683972857202339653331109374020711748915610716454256751462705955596269755442584025063614977173688049355949863272093172368667942548602169436393830856313142361368213459135384211187494132216424015590809666597662754248542485807727254117219214265756764508178947830816163954017391379445606088888669091786290594884526856841385931200630953512014300274989925666921114075066657460596030122599894192664167475799818757461527247185381701112484668321392474680149944232744997548095346613147732661644029915702774518701717385274884316347780475216111559330498966647894791239357131746814801842361971702993123382934583488406896230848944047923307477492715464749106904238344563866285915361041093447735350914190278929942166911821421087742113081778569600151473949861457768591584765290551265536632634636125571700064791862610931644839948723918082800669895020802007379589187574023106189403395564026042284649873532450893670864249515392201656272243802302507050608679569212233813356806194426281729107818518743715148935547512351745688808749494388127527505854861374313309344579656706437168993392424137675749070676308686943817855094124378655094152383712953266988601638745448040256405168144877731783982967982624538824705378844947992740569787774423061303512182016784774304479949634813982533301768334638809369772000393296777147627042581858574099583170844396038965320560462087443232465369833600224013342239788361816718118499153496210195982505954169783140525467780210855810333074919096485598374901260570195890580882293419625979834327271893211216204756015113895610884605238351501217355008794251527713816602375416053296007083738327278523233432465300377978116897494483231805618511451020151201123773564484050554249660645704617183082615592911806490151603925748396545909220123587919449635109610773907448338620672316635657428622977046240290370539706751514840065512489248528489391308813914457330483621528406132430593283593550592918547973214073133195493550068577580878401963688807666314439087848257667922950257737542732077578153986076253532480525735336901929162461603354821645353237757735425925278184779516241160859775567806184163794837465956692955796222954925200763593686754915551433016336286288410780183627796063436529510294220838636216674873362250871105805790563662124892679320294644654895811879155899252451588724085540054757902541614034164059664811955310099615604789695821230986533314036223903149748788658588312325005078485331175108751425604479792899520353793470671756799403066688369155933360781979922781010362773138000265318284880405034358446040734416983479134385109055117162995969064552819202768681361602910959615459842506838778844621005074754190310277128059971582704380387361182586688323575588828074804250035658871264891958167709652856264276173337671155063207794982357041401201441273635474660551971948598190094991958355849203248798646442006202216810955105674893508464481544532971699713306918648261295504303456482516434582238295970565691995232391478168379152938364457096431814084932740353140729001720696812278969483530179977923777188306946972633892353599866392042533627782171571064144604342501261564144233731650878658930954962820634067439079262967011683797580585256011041094719004404434342860898636622431150317999873805725659849610200897224743806504545921169487099721271277971069704868714809349419553655981270650771860120167295003201548708745781346743483450958875437273453805064429058345970985646709803298466315168922461372826059572590597955169793360784290903941168040198280137618887560985671840303723532342941404237316774705831338731517444580025299369972548897962022734522453687818787196045626627603617029076903329644450700902300929976293774659219984785195703058299240831321504281452978896398049458102551887422337169091049355114874151261698866957098819343748696188750878482461661392049334639560625939132061475219018014137255897853171426809864863971571987062889095379855279591399559622650682864050780438150968912538231374266095172242271316204500757347921237669115028044847887947049282762828917460000832292075311171878013725902602484548581227487877305285846661221437645795629089780550909749052167143799574019542362124590891714955582666098808143361496257767189665434790368901693887345528521982276181828690344633562850000665020024553400586102826778537595316045105503956165595471196887732339507093172561477765174482898089175965768982557688177023308035397465456641910696110801137664444209883246937016037988908800133656324670857867424569814124057145799792726801227051864311795097184022966595999861166953045381730409924441698002258087142011945514775244912167693535094490837888223980475537059424494047603449390222716064178374421158106383106402349896925367522283823994628480145768791325687119481343907667596925048699894897239422632562627129624680543696832683633582407346438846045293298220960353517095570672300035423461834490681121768103833704794272691320229365879437131875914198439309693322087986008946387090502984970784406539561348345838144296044801508769044586779539154008157010077477496405953919767911218937105141034872668850832474020707727746908141663276658384660803905955273062398942784989414760164730385242636912194397262402891746073505661870695671811351789107045686655154051645236973169339523729004123477956173286086532940636814383230812970123912182908063787852438514356158638763332764879836126858807628790435659962095846184230182957224168240026285411677281050700726164223499097954816780141839815226004587846902213590140907487779014588502176729865803788247888785307589499629322292375289689432172413905559737490384020504712422228444554416156725128585049558074073888194567864757011492743223716377256367465738023303930830461514017236936929856269531613498207409045988894782120488704615440589515831476648809644429368061262615825191916693918660407660877021381656274594004711704489369046181819606692651846412413530561504743804122622451749005490420649336322723904556855114416814200258260670559957819917375135618941183607681631979948834889646770499257582857507914708662952858390779986741416400312517301334349806496707318417736270039821533398717926025106577261411830899794074431622092331661460250024576629509551415404302360338583262228734663474306273181026796788353000520722341706884047370115052700061348329746642414256627750206156194945268354840617047311563280495926112852802230635555821679191053695062268057848653912160110289317058329137373839854113866314676511843082733700165445770961746965658481491074727400452336203735428276062736942227207315676642336070814375736909418819735730132333786651064733566111424039888785005819263880727217595095955102202752464030508555412463302036419407350111116166068566649594994192019362160756510086796594431383007010958751590663676845752868038362242001322936852371623853446459428097587361116988779879449104220998694060803865892577775086103916011130971633620686243596851957315702249336765536682000123814010955751324516160526100683719144343005521641865861110653585421031927229075661488792829595518399153628431650540584191000700862948916997186127010511019844735711437571809685282281368405668775264298821199017350468716141631225346346451245924439821024553180786560754053870591603151916364088763218608463292277489515372190364455586439841404890120513540293181661007817420399725330452710134123687895695138215436694115083988798497242002916601437134364782760825464402037347935169348707366059408045485573919772612082678274403982473042669752757112115789591426514896209585456432122561962467084055014403820819070972064008317817173685054592878486981684002780315778276813588093184736644962490766601659775501489397781386019925505671637138386014727425446401317547928267913572660617568109126351623655559402210835893126118973451080853843418653198579151103469138308803033543485928452742053770165049590787048261937698418685422704527758135594538237351687203355637096585903746920209763782870459436225209657782886011955877995982151066019049135499929261690495722891867931610085872344501638323729132920414889569940008015221634052599672405329991995913984886044085670336374905890485924184062508397227113300824872069962598052195090591367510207979264953254258387381926255112660091460621142920903481877144740301091658648900664046621589709405535094307291209342990560321064943976157191321759444549100860706659902292388984738482965276265094499667128042395184475020828162360642203441124552338243450868109030688624002461039600990734235933055906490233084655589780337076905480256989518615176544334341749082639655782783724817821674208101584560226859543459525258953870355421202942260680061193057041354813271512216303766729977706756962240506075727310918939865879092425795569405483417231733328505421182447103821376479157380976151355009362155197491979871018084265649293216861058099961977761982234504335005788498018131700004475040893020256418929097796609765253143517215106126050023504191447309705412499049929570419400502886069867164718389982081079432692111400734394451196117129592080962180920371133828521415512556133472073289071477262536444794968907100633629217600104204051890344191764435588922579618151848457089783412774142190987981629646843476945158369644443900988352786391675766903177889856423317105548168023523376872759550115826636007577787160169404478780892775260932449479792827249165586836354925965455657792071415409024239826313424625291277903049597136624233188737758189499264333995225149319485444218207421879738509486976797941346079228687457339174361503879265053746430377145823155212902721518309748456595363734903557454373107932164010953424190739517676941002292662566295696265079527368267384800719414691793236100179812694062689096150373643920518080256580238275492589684461856038177015387158969562878976521029212461299880386339927212619840468178683655807677802742642373088984916814834047056234628387349399361445880812894999645160597614415485090997968519759492778097745379216483539738753717896622123221009357378523185158943678888963383037131597238253346874486244937258296196338869552157783331506388964782132456105203981588918355663031892820909384437828886677368677150210910382059859542278034225377947799816532821514919370667393755727114068817115940593944856908445616170198490114261844324859739123290479390811777212903907812504870609379494378804976126368852470988739006065009557592243392358962810868782066851462731900732670460550352806641472581622919568485904048952405736344925869703494414284013197378688040834440061210574395334038396132377387513399520161214433669883846035352729357061616961289337841618822691798967605710672633007653715551632939021822757788557759519001901090322797711950175487167210447949464197345022645585693516425589803097797743465972138286623822468810334589057048077234633373465030755260847495124541267420563558127675546682380827847233240836916378126807729806923615548708097630822854746821060427725556637512181447412270752580012448737907473659820678371586697599112417348966276826076819295892010431608950452382334875335249384922129188286510394497104240214277771166931268545760539005919040327129331276264412309222483088948169844279469921262049596218194836791991065187913188476070202257732437696928618405377111807339208475572201854766472864561284901896187279816447904619139323182841518635602626065784711599306190199504962711781032046376711710183952080085389438943153483509915594027421028899456242713766325638604802371956545868438090324643846968482769472616480693716223939258138032770318016041133512322473057631977964792165904812359743799709033975913401876097368505553301501133415264096841933126388224399314381192626206868212251926966709419425274954268067405449231074291283448729269491667570536367914428868584799214115338464821324831779359470687075118543888473220202655557922974815998513134091365026753013217702944777784997423711590653687518816507364369046822620514572014994362165545645188066220350744439431567596834089536842949393372831780601430344125165665759132939811243692957197142146836011250398969768243235135302984774947386744705211316166230770709151336361211746134858884008072024869711387659180465719061500015933835265703745139501152084763560944491451237527833397145162612580003909281526782537327190139274963755668328547151686362807049643385242025661177633971175683724254299719024489450626349741515485787528597621879808448533835445897214595161939485338105112940498650951118691809171247564878014300655266439473938731573834892384341816896548600483407146262492966434965040620726280512627070983469131322239411902751732018766713835085162095504823396803836014513785638285890851570014559429717450522869778810040286267566611068250767875667609309896610597183844255714143936593627415824351177538705032890029787395453874229649211104414526534245631474156216870118070290417581594246967330975957681098942304404101200097577978406446005800070780976772062027639767918132402921835952893326305310162446370058652436098627278192810245236353365733719896193163513539941786084837069586803545565033461216356580569190316712156841489029481143740714609466717048155546112162928180714407831209453469783575121626952461006863344947245652542503740593324373968802788807527885541087570373641950601180871793015843617533800087228704850065919707189156417235207878637376808332249891682891559144308933673511335089334240514200278796944131054767678439238384741968948232152735396903263388650457739220374331037347541682791007157679354302603546693571572831331578120287586600661678987432766056470215506457334501816098730424995235675843923527720361779073945963229122742382597284378592124117079870321148671715893024490620842715234799403895638364783991079424294506218754360534545464871577635716404464054670521864270628051322399766474282328233990248660344358648701985215487376706268620892339011178822868692145812358288353407705721847368388297740969274178997988989349450775312338748024462398614652366409208059302544196866168016377876934323364173672460571713874875046215398611937692650240762733303628918040993245570596374185363965632487889566668701232821726128646781507455143907452214325387637462444959664259054472917053962774554858279779897148829132298843066954352102468866676805435168135509795739487441217260941071806098368624826895420061025262404995505703331981399227050592366198403038928408535871066524964434378631824076728739437887761479591538862517572034997896904710050009328261598723954822780624966556354310108346436656857358545606573187266898930545732925058842184954748379483265009414385638820882884195321776660673962420253972147531627686746216944928310899232484960071486094822395488018707656695889964520480473760318551846774604067197083271891552545996744019970550059517413224954162731116009573251092154799873161529650549687010793560427909984968184849221203601712666886418053796800302957069870026185071671067096121898352581964933760045451060332956389014467222844321760345170052043537633288176910532902788449545843642143698251957725397972947891915382628085676402194627558008622529949450488970326904951804767603951457262419966206580925478009519607554797469920916977254572713829624114457827903019620213174175190273686154845045464582767790364801029951597847994645812519149146746953833009277551507701949412147317474389985949186029103369584724059696732562060509733091548005022252961053332708313742332458781280740696965507232298627199366303919455306301541873550420735421782745485846950647099468124456040755848898588436630462369523397266660062525571544728815814707549733172257298753122469891954154156197128044139194585733611007905770456266480906320266391632814673630135139905038317134788080111955524130798184469883855187125569177108525523224971721456518635631144474846231511001708782464633888813529483952800325448074361626072007324992335610169416850295972020843182445211938821269716196695265194092621841997975709890057178029163952919422376592674089052930568640617575488584906696206687453963781990779440652502494337737277064037868792144245861955809098863073733188621785775734838654987598491732508760210900732248221875201184835848306982122545344755884931914881633184300320546430444188523583348473853349331323002366254106685020698154868868271406219576559983302636873953360983839853081260102820652062981967285244225485503670672082201671036352413857517178914212172911873729452772343295178979368016787794082465418436267979704480032026537503114418489844843774374312076696840167700469738661186521781577084151942275174169045748404393611208883311032324636814225335729689388020432388752988204494943078874949138589605755675175684158991867429763612170520008101685731311479726317687324773283776840139651966926419401668532109258725610692389260742942338243688356117999905523224629625175145149845040757296318070736211013759781555206962720558702428147388301670090486337614022264868895143847408503550501324807560274757022513970662052207262679613177303404792583605096703843127957861455032167019531525352662234859615671398371243990287422752280866393593473197278119339705901637790396199077751725170790428656933250925098304010200332137148756105413843172161273265705153624894613219014694195408656758045929128552962001378310661979307752707597909872039961068771681815013664848591468677136979978783847747995387726227513946626228838881320282725932463559651212269168731857996387592677228303071096997331275800668128256999484425097725365460744524748233245260727710938700011660862736324008936163398515241584388150524254868644117012037873901180336148661628928621948441595995679849351314542862375196735670145738180456703505788696204134858737754523137449389362918641023875039158317533409699602563310940850137665509266156838882516952879806521981804358866995858763519807087219134166921266992078767990289535795929629271424013943451941102121249654162063500177568407622124893774236340184353088757618900826301717518321802876756827869321526055558597724528045850508776536756842649259625053208944931825821032691459769765764221730983935346641772920472986249075431813922711123469913669879093179801850976714807297207765727384116392798131522838978542103825092081343075421059516975054986175048601718622281323320102351278324861931282537292463774668274685498296243348579772228608303716624927439957886006627604033281197272610741836112624042875441196973814846291990653905520043000647521604308016913008471924016896197620043006587479924995248738199766217324808847128149162852701573124950633197966586212856161385990766396493323435586821826659536660885845496598810502666166847653245682367718681661316266031768525936913645510132330106183849075219076241201325066905475181827186567215568618551110904115722596427093618922143814943298182984156744856499417654958648535212600208296028475228377641089277918143758804417526489118995342665246604764464606297222499272634124868281897431954204714436125127409184535481282320566471690339462445318555437416404961257023412012760266934967585378292873860513817324163406633070076653240178853826631923744173228131879613466406680534009476137114543588136378464905557847324071869733476032932631354558428188668278238603173400243920195753601293055909642727051073798221392518575721855081514601141898757734368508505238896909277811483979656041059827604576136368388834447808116885972091234435771138051808883140481260505272503474976737281528651619122566294470586378362145582428286007021838464225192635764337084658242638610537471426822497143757479399519633684056093927943206363436743324107181246890855725865996718945685556663845017292432343265770106138254636596110181123359256043435579951772042468785938112684672310116350990625606136667471778637169112902003690420099881860378743275464959825422108664431801328372974856664082300600310416371971177782705483429392421123569651578625103275702694654589479238052173120348451676898997760772187338186649501613280122337854092806971629451991123096126948273976940356899372358591700222426196659055070580481504764427584520375337699980338030198788841337575719064121227068692957829048544128390041534449273798645370560578940722462131286210750152000066041610517322665521488679580983542533671865162845954804193298421411321403824887987230965649359915076663026058649341231361961083434849367181730148424944146139541904892857581758352053219139901606494806717741753222346349170338259091761681343049370532720183838302423844253460528935921708941962376037235843053828541773788500564978392088485667320212639171151131574219336743655247562056434633056281733070049762415104737338125598037414284524067702491036574909349153077191683885900674754708159616872719754176617448822739680935214190271017180078468477843713268264613825255532373858461034882451800928298772553197614186668299386032001331459125753691053113301620150032751704924247360110004736677328866695629899389458209609100837128414599444178865886018724053967154030017639289536687085479281364337252253881969704230578107219069681996652764762378681155551455203496005156131225782255883208771033533544383210504960707891775920043082645522278416357309220859224681996192934799968206553249539464967519327193290686104209684296597548753187023845744856045101071375706780170321156250719082655997338340697186753779725614334160456781388113657059568258433488441968205411826322783079474142651440875068692592322105143749123074655055948665339452724319146330432006388065098695089873365652010604226601927994886248156922679662305923992460878537676073311407968655896358812882678669771864714174852101533054052551907145120466438106330281315000554265656685665012616679856169663465102380130123692923422963011208030496960462413882946499401559332354388156207285360897392029041674801835053250220529001205624715148746065046399666697852196058559862149734097425538165006491712230057008562801951909469923105787100757392200038559271371911902785353864151994400632745804181528140799248572334098849060278864064838955551430772566949972997846823753184932335452345282036949311124959535774475831625699270311742000379822292479665955079379940064672240472516036339100693781306596834606292700734822994260287858332748687746333059862704680904983253184895028292288664673475512864499346686137208573872770486010385142067363024417251519605932025120515929518410468037893162526573212491099722778100728487500193360396422526312723885172590898200405580410643977950029780068578046860056209840264476177744696554474457103221991712061755510732402764247659844922776977989718158512337129195425309805991832957652969555979044783449832564542663801386029389545469040817950260170058592093872032293956771593743419798739942682945848586908564091408890447278447040501460367312353250183834473447739676787009784219528869340393135316192348696541457782091464334759008762321017942003341999426303999069270347507786208193229878672042705932878870196555298404433954867713750162244007063694710057614435771797211655458290196914180169544506781359118785588182030657779642163088141476929133856907377117353962756911925264723234835313483451074041899192539284458978458610558150710633892013394342448707688489768041029361769599982557162376959523824340553574000692102000715398426538771403699314630210967232533128161156478282343362971564659463391747160571982933620520211348605667230030348758249461074995284084575514128809763641146408538986163832594584095333727847193119608615580932381829660654128631445567213977932328037362929750336886154214864442867427140731660132691752610931839298881955637141810477897609348965119057421292443898281226928576392044536149081288873772038076908966799366560864134783491547548759843821414386743342486972922012577001764354386712436558580148971607759276079150077502094289879488298653830307940590798261360605484342372820248431479849503777687251178113286086687406520035292406894694519826852394488006674701694035581189903774704532526283636610843285504991646569986079000884513659884467563206276957754731879460559885979542747146719905201067164138754277833378690040077366119206009507966027480350395208748927031698191709914094529542463783525265836154151538745377057824689400204053678514466479819978457851798345703109322541658592647932642066973993879077740092168136667071679819814809483818237426859805688635276813186404535692726292335039524071719062237829943343526282332871545994647462381439463138901901944856882834940973039821500877308258541894601032988380484418375955863412212202035133381209394430682961413885264722272043722213643411612654040090729764394506843101515220708110082462804499335893375574794287736703131018381615636476599148888281477262136423131263921784497882718509553298156303480683312577866678195027033077615359486015731835308499359940219382818792097928864160131445888792659743602614361269936145073763915385070941616064702085413314129945853872641362256216866971600978691954304648250338567453511173523276184716307172063850624600223244957990132952642808067686043654058524234201832112109727571601231342764959557782081465785089502630233501955044021159672790792117140640515952189552391897260244122323156561713499919056826082047985804327653956100580636269648393143620087552734219727551834446416673588613492334802996771132593321090524116352860188534525029736026333017543826936267848781253813092070389071021502270618210572446080762849576296697780072153286744475737031015576170780555512718073433343108280394104788226945713935944104417224463342677762550512951764975148464610002561199387190684665663457924508996812763396479914017226626802202302375601910307486935622876682377745582818462256212034975378694357801626093188971456254020147682338081632312900298624274742856960206822525749955695472961007760809421609345744411112178338961830156923816358757293781242370325986767429806229849646078136004593096313672379805076199749203913947427240698291033913453992240678150982003524431479012945851090639382439090239831289821033752231773078624802762789991228343344334692495640364881381809610067251211948716822501616087575958739812359246589224665288819722389749246317625034875949551703240124015363551230298406338677213290822215099230361478234957201395905693811605848676837570495516664758831199503003042459638050650750135113976092644413813550645697910337210590819253929436842769908188206255897757440889437084391782782668871313838373323285885402774351478617878761197814372050140168744692514327443524761477329677948850285634307500122176185635386732108207353322821542458784124902840845275227514605165154285290823710950000366484277973399028328175422942940858289472206721173410428108175398000833879417655044902938891743562435054110956871848259812479441291518290886248181676400514076632851458208827164995250167791917387020637090077637150556949212917223511981777223377175291722008089856125739935901226244873112167409748785285400857645303845149167072564136962738350978675753251039926273123306782215703446552292476642697689061933113082207870998036250844507057365032972108647292518007256437050477540313803596460753440924735537478246294545727099790128467883155326172108315386074323234186805706240114336377628345734924657007587466571541130816257035332551731443499863066262002431964146442225982239357483427971433644903621803244448517921113468924988732770835723876649776545516734705988176153265460931370693509652594061805688487265055942225514181018353073932052185417444607226539248224069581562842483384465929789917064999204738923341927415099539730882404371327700762461010034829749227482758678358365475752864240974750763472252321290891801652842682236089494755433177528668674212099613053281284338162328224783400852989409780153707663408986275430521687497144346874046024692583068909933528007984911695973686858735068483586097365383735249950160211398320951394139964716683234166262144950281876433067065495962716193370011725505566148518816189101568225421353160268159671130824530465190014314910188619677243016775286583211885052286046037494962225918335951089278554034430300550331497558489228986167595553908882045693160872178112127662395436052874961318967837048410384819574552945115462079007937406498322516462178404402125775720902782875343126960468209697793370944676088823298909273028295919640168030480230108907185566249813564836964517166647481321982978910775847208018079643927266939384450959662014682428477618607600975753052096010027822716740022778415775637467955804132793544025069859376090605614829163407568569610011411349444891099996467945556635272614907918238734562520881644895207708978561757202901365003304758863981914116632713599313926326640939994171627309178281870336041342912414376058356592081549068674375857987334812691298693927604682339516776066046617807032342952524166002585775477214046190885827743993690547683343526705360356763077447459891386905458001242301177700386298204001519494970202423215488786006997525853361134750913563507422371224773741794414674366348557411062944540137486379598012441461839917944539814511688303967431602083157418886328962992959323389366025470182325009624152835307559999384020115480456189510131911233808876843729412200921476256288754828048496891413904488400463911619910613009214629471375626819671416280803833587147355738690574055295558897699161532676284682029433704549104321000751730961854723735578487913870756914990069125835785956668536300221060820958159508725988872559677555581313275114417763563245620248488017449147880724454986233437024369711065767324942456428673081370018914861312750931791929595576760511181357371847414654937869463862761346470690842516665031072758843898396127410241190675603911220185222231066408837915963142463218949042526770391521068796809175618942052100842559608160913293631515574124661133882622585994942651382426163845028633024638294011148992485770976263190886343326095216048667003075844790466487410660387592528717417705384847254410100870551587675845490080183763845483724065120490224160208551953349269565539638818104565153882920916529151591272019476415154694254667160828270099813160326774404046644504296674179285971342676472098620947247881081084055404724808626047648091282286790439202675604542426564706822618450264124371874626242462895028181497294142237761394305976144565561396046480726002356744791305396598601244826177885357583428840678750802521099338670791753290688642024395808289368874566350213281908738019923764661342428409981301628983409886771824917903270166739825293348192049764761570237480956786325780862817284263796767549253873220178887144276828640325264794215917755414133988428109773902581080188067960013807324713678656713380809815231643049621930040051594746491957032784181509455363923534473504286658518230452860451740039716762194829271666473423182499347088999727339943237115291829101749434295993686994359426941394117884980406084692325163737641163625359922559100180626050999753949504614970846682053802721289181339960855279093343466710073154570137028609849880627808517157639787520330346741702035631298760716252616550220314101018213722153798150164431615603340533753896770005294958898935324404402043349870816476834390092928688043354389254416259907624829394677382589526657226453042958403469391883722188926686906612339751205627044742252667402152078618598781220917999279969448665012651933926234656870015824499749987573790140670002459267177112839295718709311337433125544024992712366050136990845270923030015963623759070814914363916021571401603887883970593557964758106689725011758045799219135688515274328484070641622005032760677732828694109663480091358193354956700590813795113623948473192282554781131047571125983737136001414888414872000903238571311370656435771696620485284286164580165890009893683861231793846510241573701414388828087717321161834203473863357754571227763522934297184675466612435893267438292270031044777465503615903583324134526707211565268974195639409165752044322615116939999916089099093799190186493431793547806588300732189755543384330112507782774295703232304260165400089211693288967813199051342095374998465565546521062840161362506684591965108682051787502051637926830537399346599707503052142831571065621486015194771215581909919179521195706831432913476666070813179527907281325080455596762088569019721453554596481453417394009926226556239129277471129467813913947221607490746091841018488271387968382277149699610458651529828064745177211075787839134869954037700858322363796670417757659647079272768097528131030601599254757414371713192791525293803529072006761821862739339407371756740916816342503038942674178839030872770203195278264724650499604183587311818368774529753689195402470622765451734120160128088074119919431860401201376839415791999186366051142286119031644239351947983063747524766002824464698936428885498090153112174972592922721756249658881410530173017707123050158841865207740331386448320561534971078735291375111627886800311727548971555832108795966728849369670727715163650465716963269194589310242537142047978067711858654599803637814303956934791549348844593475845565414149877177565086804313554640801712460048193784646262790350095089038037202780886936656467067905610641090304603732931289919633316127098017447557487018878509540069914681847980523765335659434215821357246015212277884999002770623522633950026142066202172668126277184098339055727768115624066784102692995101567731691787676356549645902951223687827807723081908311321564918647911880398102741940939637675361096387081622182924343958171462340757601893778726580393337686937802277522883032559859150069159910972030221103939168246878659542153687034892284864455620888616180999088384653040472084967708912845715024690886777241695804483373972518475859953053976542772758657583736360433869795483647393037545578620853712167246158822506550403855150367169844445373777472401900451654593144649070758528367799288960008099335994737876201579613360387058540868745670211088869816591056435836046041075407580815470144123673440444372874564960377883096894797910618082222042436219067201080949304067424062847347817506479203602604673292158948780201198950679196099465696088072978645153467783666371988172961693688386653014648502579975729129179647750350295769872147002664652249585937632518628147652850985759268052691361332942363113097160569955134140568500765840896143396135372080583256981225460950627901574022576413396133368541681866331063519874329352849391414571345787427113446844835439027199660455740291466977631063622348345179987963739672749970000062881898167753794273705495751551281540116976969578078909714745262709030447408873983010193688435117809072121844657873746553922191153811221101887810080366047297646517420361028567368439598485657382940345004334177865041282227456293441470431102910878253966303854115702686914893245570486843667925586263668333120538185021621515669673302502065016279694881084298570997696335293229015573579142640952521570073338663867536068981081412770060832010341939944428963667190443851243604933232702763045598046334177032827989052192455984099734256578694643525042857140204826015089691390983365771776205082027763144286205272767764864229462266702627552279095067086896118285368495889378999235763745670425330887306046640236262276705804030766250143537755026125163581469627198590242635467854736108804605474682191675080812070270298596144950776499533519665509779025302632079159975960038069869386093535773929446224085435544274471080738149616974018736558566499388240106286513518516465532403229758486176535424312653086697230593817470771870116437649979820977626092945008867764936153573674072157253776894008765461904024369762861079340554162773324570540715546219545002000561702460668336625035410226733643822527532220554613253946596821463066845720294684735666369834975746198209687218089331347606149919421006608579911161766771279050245075730742332198452607211359955553955246050576816745174033396779633475913471572615796445571094292803823420291862958472965446978028948607272029181033040907849491652398331699062767387972557393214009536826540949983469870521227669153799643503095378612609473780543452252453007282275171927802557531912330304756665249710624161924954949471175246613539876522599971278412211189094048253890045533277757153382116974631205514799223096860987050095571169253355294575623013795981313581130712469597453800221814282247428754486640574755331252584976033923719822350096275371289938707575359581057385957354920156493803515922580242214909256172766832176481877967527021290156542324794367803538809098898239739744048168624743217799664371107510036051240484782152887933035989054752814531077898592400999587209651520042337088819903001600290982688296795390716304318551569401970347562327105726760187343782776021444900003516068182843346272999455620466513739195424745782951710480739499220791147557342517393401449575664648004407629755723715069192836361741986583945730544789246666454707289770792005320034528437371273623995946261228746436608975097928103010677157765599751483992112518421492481783926228586100791383546787050185564535663054418170477339627292345054880432110259826826678010039859089722188755468937393598350495351287886624394284959593850050952854940175895376296694776521729180321185119481731370015452776740873803058131146830587924268945696916512142826192127797085097031121514670251083618073115982247534128355008521263384002747275935891091624789817127464640794820045984024134469532342841616289107810303406987904093847625341484899534123436374890389371836294128814627202817018374790403831143354294799564968761239038085822125496910427732457153061865400160071127797371375383682776568165311985819134885220075185197280030758940779877459354851528858501540266595158926963180404399765436899191886459645277605626764204036547436791006945639368648234420098426029115998809321416785012083185312391067947910876688188918886920920437259281260170932398660475300959456366814911445728657888105338778462422102334865072021091194484156920406556311780055815941541140066041285064100887909866051207088493941110645906890651449940967753962470439763033485634368172775213752644534115862995857995980864806535742301987668067589093015727151110761741698633538904748786133596461139366541661877213669540076618331447817436001846074932959823221410451536144825059010131145354330786638012195466544463107999067433278989897366155669426027423360106803865570009762612078975912769801905493892002321015723886339918430794000935860190807689160914111755813486271403409943920997012328228001299796269612835754597281295766580239847184581324195629062548052295610143137986574174060418783275510194645263687800419659436615408740772178634415565508659912659030724834440071682622345490523317307332624083728766560786169442341912480175613283988865877043816340064957959554041362143452788852598858620354562603241157008514454717072169985271541647175743364400877732074461319232277512251095469153359051943000655727612139537603807872096458795098197583397207441331857917049952083516679252341680069336178121144836297979321032001387502353912815751789485948391901529190886961265364891231746401774675935837606288954652461365063791456919817538755456554794710291736970713069397283179508340246873187299858268588093813832626115068791727528875452961539088080722323167445882546151105290183447661532233389923551840351037094319619536034776055792844285761357676140967151567641946169138137082573839139052910838413433830012050514359612124989466879486815935648867496081315884796038674302426990546601978301130861706661017300265586928210480211054936616220809528291475440061279593355886958848395258864522082723473753001324822879349759927943953322889553861455077449024481122305991666138936825224784321041257199239028292271674632372481329260217640604021496021861845077685408377712587954184763105113422403577481819155074252045069449085812549072622434844687743538767499509772693671148149403106353933877439363537039360939308964145326416495569095759687683328633051583007806168337151182457034470773789399529571633760847217497189175873958568541918401592326276568667922022167595587292614245890853199756647565626345177750063061869434570035430330093762051044312880642273038550935930140702444379130767407624953334181790117803229515236339723108906316170964760216120639280833398730533038890823429697591193070233747045439524822906572357094935584950135133808260212124997641296772629850740361822623585149331174157597187773253316201999385741024316931975638022674726828459818064716688828862902250151580789275233375877740902188693869358833632979930221182014481560525248490103041789538080051541837467707577685069666892082375094114798141543727334300547314191267218836575590772791186390160248500832409061384620354857457195680578643915613551111498746452983445355474643280925808827211222676139314195244801087899772294675210279239761994437555816800013386794547627298794075735967608078296191918621049068323687531334681847736015047414029858313139796146921316737371421089650230480133203302547798485062070832459025707089665963384446028978193561269831553952454818388400932591756249604183284555320945724697776801874949976794388844044692478640513182376860901837866288951152498397853372779637345689265386372322149484925177914745551365079860926194593592885372830159526666565432049898565942339212620582306003295850834600116252527744277852075343891172232504725862552937394412337902863608048711737316481218829684757118537115650072596185473188036439635408326596984414122441281390525257436270149376733785357711347953698481548408331371782653225066919468685521028093107443878659464288525976355017678520599559722360118843627278192458858114352767307929086718212624974788924377180700163518704578856748831005514558091397022173352735495686777970427587269315243233248850073585018323060644218883161990538699948335507327418833116941838571363474590494304110690095711861200526291165035574166295792538156256888145797056726045136107731519955562426896271306313408515470159787496705295060217111401526490878911497432511504019008910784705281801525654189483336502367419734737634841067745046413227335647681687318706479071131437244782455523508588680083893722125997354420019891181193913538804311779249938435680862697087203986383473911741212307406185449349026499516292873271731799448010418105270526414772295327066585629311228811491409743919096680730465869308028207636078812537659797971778057262828405181061241437921091120615649062847032020171506419183297761643578590141012875543559112167929386877420635677655748692197682227622789305860763787880431237566975382900689546422354168484246500470740454611565378813929908073166132959540854128946847237322146586689211314488740590132425836814961485346526102349627516415930542398653528001135698984739355419308349629423507729476454514105608918779071967678589386179995964146956731555183634247217304150286963952651834893657601846279658208941617680288327330992946570736096933726294427530989640170162315520153859988006468351059455393009646402141534423911546907392941752027401039844237409741843269274937619120291405277663697105402569230486730503706933573797381995241224818853996119786697567925681039785975227534667815571098186365444258075984253186743741249468339938076889281611756288722531842887945717688264702559172394996824135615467706248885771341463613102093900324959455694631917894846427455086259474333814043184588471341520330193949725902057582577598704204709272538628380327914990285447397788430771869510581211760548898945039024088643612079483919667569345015077187700945603028562489563157624424994254192159363369397015781153783040138901508493942716250057342290591026055572918949008439596519476353524669797100982820966666315479376008290183184789059602377848665159527405025956991538351623921028403924336202619252160980024101662773900978751604567668530754165849742994909942026453277391332264505873488796148956696926685014054896282543779151026439688699979636881132344625017568425951458899230378821998722607582153990763030357075325981072432970874307435180696617578931188790839664860357685529386011837178154919974909825224105678183241172059996384026621002811013021699578022090309073907706580232479467666888098858553321772846366719350588937486771727567978022972551228227684036013606421668277524172397472783195076486867534042534139354469714513174417972154965251016122206613571828405938944567504279164487530667165905743667392668881118899897666114267216247105435333416897511999641361510987593781507433994509798648505026512984000764229763814288547773390394230862130563141193630470491140953221040626651277167488645694050419297471290812446029241500170238292842714835826271232427920661819196919601729478768260729904321334989421164495610246386703546953892057349733421420152581200179367124971200804625856517574165502884341426418911529391656569666735102009456218428495796054039076343478182025307480913046055525786263661945523269139877012521949585616506861167489934379782351859929559813625994609576124658741953951827847218233423457951422164681941835122038299201342607288618271599194138847014118328333428082442725672495045924643731186601835577204945300519381111361200297998084811085601358668785150300531285452115199693105990825862612545237452979354781804690821948170397364841455559875009366393835031722769248934238228027524609011493166064332715805390754901997330875939595394805993087134061580152500349546741881639439503584492936277718573154395000181796942576882213772427918584421961174510318700332702724700632103094529082605246665248110185824082400476884388734534868086359774824279172583787880177977603130780239247457894647854860164913070978731766594670623714874355114591077827077094109816525396112756385609124297571555160647790203047418148193960303927840176801384449524778354850423849053766155972969831985312116986454899898112943626587815964815472359641325270599111041861788461974845676493279970178976999858440001252962652221495123007473046691774443237985758358235528874678013794376960119238365203125374535942878138687589362709784061757352871130211400722365970608302271531648342469139479239382773460706936932064286525277138993589102680901343919503951971209966663427101701350148466850066122092100281727239372744149398327387406538685045921393161851455380956460829234818111071234762687933199523591251208627144993273854157962010015901842676555060559371009881713284212945377128882002176811937753380771086878672162343828783851619465526531528269115294492895816103833747657269468656161891254563766122223794419516500792879020581275930113912755417488122628070864752007892573368829671055752991043608138672374564893023228803118446453075005262511607513070171548036339827889709085106121751893518218649538967233336429947056438778567461933295118272413085701780750434219437507353709630511246156389443189728036807713454571149582339505198979002807414124629277199864808905062102755461869590609671628216465079633753515210959224932032350046202709526087558350507742501664668382564271355354924323534187106533596002408283196767713032213230843191629879411702639693712808120344404046869395434225503818665201273698913809863672389123884051170252124824436506708299347246970650360535791597883931863590588039313900454250602989216601629109568655185149233761846223679983174722710699006221853518633272342803444254503364025482203152781900685862626695432034090435049115938004346315387001584092730169331027732394613790057201431579507321992004387609747464251517263640392931076674890539172030807459860733474783111974458272072066821046862228194729331789765516613772649594540774918478803047784486905851061277118478802904601808939019451217970607256382924075960488563531184192189601114782216281758088392866385736143669355662682744602713568903951510465040649912050193806301446879881498928127109580397899685387318321803811601406158611857522442374833852900295591805149865790159657921224204991594472032262087114535112137281555465520483735864201901260625623688694677482022423223349712639918032907738166956113747523782653953926513367823382180585102308726910210871596204621349470508264015884989064338568428674391333308931707749833047148948034669691860003091768343527049934219594817863571466330514428273166175109385118297798830222714196878142464633534415088120701392681527583630686847599367931255732679596740126119639945501018478753115858707036496625721964891820616834486387007673167360419044533688879687315007626119314785525389202221710790764942274489631190507271556224821717385956469128713027427411324021692940834177777538720027192076627718776813411704357546226464228285220135256927781994622137200231897814836150175598088390291905988624822471635443808597408642699485505679162993560010032000473466845839393722066611950927607760750141293818611055818705167399788391092360642331453681531435804747938380000165145818775433322724076870625381123355345835801189379020236892885619631584757185770302128367814729736472061793889444792781795610491989035856741102893007285883751144494724723125798912273456185363284660850911626710078970513224927328729054394751504070682296201021301531234970989220252965742265429382967720041737601101672095674924936008320109085988117127567431364180953632369953157190593335165786452372026991008116781351228470684728884621076759096322461055923527521284419496117339658281210173567947655775073455784486110860319069370656323290532551191134812490748968103247578652959844655847580372889973263323861699421560724667882135726347418345452534440110766665439265177369043527124480529183841680750689186215127450311603879956036741941634360429869044976468632530847459802955857295926698903348159490544295114240606429492929703661905869594010808583338646698685233682197880121756522074340833835076137914144519427652560785798323623460142208336552822750143563307574804500088818701869999575353172425032501220193027988704584331675997725602442279366422900939095336500878022607751589201892952014416701913167828545147499205179680354415131339583936828830645008173941197470400143983925332416414733933506777487052905944798833847383221925349073453638388154840129608549899523618916354815605836691573753103234529551082291936746404321347106115052998155388878059102513989493719622062278950192605537165257764164115969650964413827599832705802562536745428501076116650293531773172179250082294775416374146882980162466478924763935351255111994760275197022705773292279562422213288268206575811571483016003116703860743916832386165530738027209710293599036387843041908631186061690587087581804930812103805936247400115807136710088122104368046008779627370986332902086694975184536211640244493927960294915447739366253356344873451579137745845456294932560801658325703974644709401478711283967356789652380801381032655787170134171517190777599721722856847501807143765049482252228812411796282529519260583489565195964907495438598911081133316297740573120779171170267351992295257779263225045437639164728752088427010665876294668626085421283778923053158732023998039840529588137036530595535928911063743304626368598815140121340338609615188474334215409216495788792315030320304668273655006049292460571191180965418369360927744667556287995846002187765046273719072000986655213712495072948032419375957966973434893651780348738300954307560516684879702839766112917703645294346525895713515353964534202655736615123656762266199135733548145067082806966887036783490201169539423050876821723925893998091250947630545587234792100231301051365146763125406891943140638727451383587889096210353453703470665114463083532137370000700762095724529554237375398101326495929187469428280283751350897321572129959876634402508189344256721594619210618150493404360760567397314488183129144586479396537221758020203360491044961931027592487449267142116632284557505769060354156188702062151303844474609685824210199927077827293413419231622799642379288166084715422608634932953318048107244483660911087157192849425379025238884728787425831557209566162919524469423187128491716003975806996161829929432977833214709313503448193782294877369779043845468126865245120702389229196654411376290381366456949075672859803186907519330950593596056805027015438690429419957238949459665667858448757910268950862652215896853572543876729660922692807742656971975151150578575163960248751168035933992141073596757574417622799739648734160451523805408208301211040741669247546290106958847297340024527720415451810719439675423403953263433618946166588280664845741098341732725211800776687005206036202555346166345457198876176804982175478910467767562572769769622270483329554559532447227600120712108263690174144532847109213257063019604831751204950923677074022029175311811812718570178370577383165320697154568429550844027087795455754961695225019883796093470868059091988999614613412299498214580190574969174575368457792106825080940270618804064535407653020282236215934915170527386297997090393112449857899042727495264018475118661685312888483777855131189998359399090014915376394709870733821607775169772062493699917200469529950999302555757063838886106040902566938447628468077131885037699913084116568110809154970650217021653232447966279329922058683028480311027621400058283471752606444917374135177780292539765485390291687097635206563315961320489042320773447304191036897645049084351822545684029396881621851759352631926000195907207670754954075453895202530123214896425608716999746076766260633661652907423221246508072816762106088002147416585962537042494280055912405673750370710717200656504396931195673266840358144401417966824323331528685768135434996018663723999355098768995205405168825643109213135381411288125193445502038363425421619489850476642351737608044502031569361778285042045367062375311814312442024338792160058463491169573086179481027799454341610925816167112658326084467020746852493778226459092265203469386812542363898337422465049313057932803937464376210784736654470315275703234015670604658727779092738327686953639942860245988726088431488787397785597212933639403711841443318628326014775680087605347344013342558906410680786786059632133848062788476453122227430284616057609714285960940617623244825983439839469870865337385402505886745771066774099135364822066965474326711424684781732879934924383318387052573196131631109581181987547210958297877567296039815154741220351696289006089479912365051341578125060751661316253147701931615591016272645577333865844946065389467217685228670643473990044321013104724854695725596118279347636386426274902407488317084302800007327078738627021265044320046636834515854514785820639831105606397466250745106416968329400253552038639954745780503110846085732373266690071846706057811340364203374596748255062022708992966995737391807482092341081910396484401373583327459213866865957583369333180356316554335133023439194833181569230495271953429097080385293578413206443056592285184581736816490874603091049536570302476047513303779270837779467047036490808163409277940740524696366527056800440620516845655046083051042419019103529434290508696583307298561552492601704076012087041327966328861081844212319540554892642000146802149891686411975908172401304062824921349485908382861853561447575592133238146502912078728493470618677357322643241109862779210705412804489193542939551849995922713824848832657001970412335839329478677130203259219662378932776106836229010792068612152221796085266044252827137081122372960148261503389805887504434901636535405622326631921769167650297137886304161531916435908704538319244151033341184386989249271732210414028576933129216823788205239907561750779530329595574321655357137719441893340642615226320676407703559443937214367217363131964742298266839884826663394269794866929054715900621559279240743821475057003412656104561323365758413223822714333093190631003883681974855250046378736718328008119818667958330894095508211873478244773748113813594875174156731245633142575982644873302412013870507495981003498212205191299483087905508303359423011044195365548182905107658519434613485825344510625756583713742799653351418042348763886989988503728587431215504541370298342608112705995403508774185699778651800493609103973278026729289882808959652407097407239726640834279232570436500481846534978994417429604691628987838428855925831493362410198684178382596745537728505122092908878603418143062263449859571303957544046795257887296326799310971536967505603618873735348397703944566405472505097074674341716894904213895807897361232063987934141944628635814996830006841911460767457986048850754636856988604922661408054391589519690324341938330016277830704991421527831903649173369258657443997288761332440403216175283235089680049045280731789866378747310595523643961488125069485145271773067487712945749857886650024553271554273485508021526411299324483391399465551839540423723624026174711377164256865765255510915121504168249001718336107152480902310015667644894870610536111284865492897754023901341896954898800494967534634267980748551873449729434990704782131391699971720988818624477990766992702273729648230565192231294133882834476367749331824495852841047496024083635192073492409471428761809290283350607952122733757702655349636045199727543594662371733903083332756371947933088879637437745585109970475011308454971290014652209194326918364460855916509520923095913938988436560153073417506522362423591275297739805950732324433053282497171556848446994850950072065244916995879689609269292298103226723686523889000309137297655139004109521879553958707266681394199652255381362218367345210112571641128726981040849923044390116620505596521807578000262586975641317289736832298406378561366130838000077381129637120631544083367493105891036826908770196136590506722599513232577354613502697574948316861094040955296799930832568185937924089563562181799685682578266626716351186556407077857094256109689057750927395432069577669273295558605136308636470271243018698813744098406619892687328893673980686878469665900292137130088167485328060274604287822350327806095067332724777868610725059181676845310272056313147158991968501537430721222166921004718664649699215735448040629143385833921814249677624665798721483740350746046796671480834076523967167806806634674669820311901025352796264406940022258554809378349871238288407511066628896355900690457027703770455017545457153178329614101406625215972446160307022883390477775765720310636668007087886993509452272995541187112012202776015734025766551213568545138230364124389326074030680324420720527338389811537380006733179561723421786845018978107752964487498004770734766940085242531941120476180754783678773007305964637659561529562718198453640162130578900456037451248919931751217545562535623668583528086641473102567849469068337522117379471215478612222613696498177486009802828947204761277722916858007075492973820154341813638087275036277562750530065203285642775363802722974305968965862808051252821848238758076451513624377148226771316466593801204263856905655535268444028288279219339603870343063298360321956430050500954537305001613251176873278906723972210737739071980533140390652406820732578400010985023198854183990974218976151797432984686800976627641090486637554124119074941616837554965422446356333487218011958835171406198805448503653660974407196885143036196749921273080546996143817417079812778511054965690750550140113077767959066390395592100245968340020067061238153929288950738028029885573090910923653831309829290225491002474007516642815145513782669358271896394038086980225654366608315354653031204100023255697672346036212471342517674343561007892282783306477717787842700652349991838457947439129313291601827822237816905914044446551210934704425964114762320356115081965972879031784026789820744327646960794565916607724230374136530104416685889563491051015705024340925417258083963831636166899512429029861925633404150577106964527534589231586174913269780915056701746999596710975172800472816063278553641736999069094264795933650525546108496095779747746039516502595938904792677061210038344177315344737141238266224900633646235617966078245021708531087802925372426332752941547743758008108303624305925801045453214285160877008054960276595755969210727994301957615726844807472032164364058562641521974239305852710510067576489125587169803791172892287210863148238071297278662198955563148382537159595970035065928111187391728236334443074216702357386493541226195748976140578152767784498351085199098444433059777826240085384085394634147311977806780095794741626657751676955254877521943697931113466388231772245649917590562316397658603335199907647239003210922761443146232571472891220515124870051855927316857816918831561610910088122046884952985655071513516607541115169419327160997600784118561449694341386503458787980968194287442623898915229456754714190958011966178448782647300072108273220106230064638407582525349697660406195894193855800797099088880756868887170198923293386468678464575946152576787807623305796953284265738964323558585818062655370679645377676050648413006476014930569993332965513445640063263524669565393961988568189882375046722551653876682433415296211638361974013066464636239977867365094144772067315918605081076157217539295296822952195548408509499193445247825693310748381913534750107734489779778327390051113032498161222161715192473578886321731379007487807231763397850767364190315961007083017196137543829928165709733520721960040359582260643422996457207742885036025155762311414758525190128801135517973690644300539853935600273577529046422351127077740802280461518354989196456939159533680135268022786759685377712872737916631327001779543467130246090248671535714131570958252907397729254588578190211677285416279652204381053955401422679136443786171537026500361074646383298085533236328250380045617652268585651287828928391665532638016171654074870444538945697693362780561511250400507207194983716175721569464018214018613190799453727488477697477385526517541952298321373993031510233809929076469337646880610739869458852949323549260714379742833523394876914390270002983159778515993945318860597509711442568981514254063809027305307391857631240574997496291419665670673703601592738218047946798608450019096149992469415776477988088763267347617093011872761423341502784196679071781296850368294394385934399909200015541869335123741113867888346583037813109727752701918375869936682936141767679309217738143747830802743183309737479791648629941000476258581688665281930089831242654112993899301087871923168197619257968810105403597822785582121873569620937252372505885041579587823627854904808231233476318904759418666476916655000878875307749781060908429797463036371863618778876415802356474989772367314514324883570744450375084057135329138373761720198321580143860410570164600034690192425585008302765656025421906232146026565780329068995950413479597136269490836321710377617546177813154710811130999431913149214086268554413126030490347778179476481450602854376410429043405397732615241132943659286915449620343499775923968056530308361952298354547733904352356476709079158518286662812311996593411249671521961283122090424314450494006948167696770360483785054639886985495605352982986695858815784126409077255330868445288767105390757657173528153905679462410821682745038855539804805186210655298418250715482431410720141008214408020416493240857407898126676368633528893670666861647278695365350439952203575125007603035731063637587195796874048262016434974027756980019677804500066675669094605918176477938700651491525238787486122543045466187244785716783970852211561427130289640467590700959941025336174520310534872173644261292446245023905213982632320536136605117455962500136024701328129623934879115972235182096871302344706532781925690102034295785039251362206760169952029308256624134346538897462067596192105049728217793921068012911420703414865236086856412085640062956554465356423230480305891315845851750531549981361043020713473038579426673747599038454828969070575687528707268753827732616233657117263373855511458854587202638433013593285166020173332050118685304521806854600375222647739216904089860234795132665300702584814049187736263280874136506591835556994120660220641853191002968034823507228180331031406894724188780621546305186565930091001102218960769281338791371716242415506837539135215681239010043617197887399681124408803475991154916745344166899345331557966716781509786154519285285050627894393840822114952138054726407274912084896291238880842017381332966981896087554466056148079265913569075651771351802866544280649634051480070236690389424566114619945196721745535291267038033578191407609697542452447987373834428824511785920907013176036728872300902985515152074126216838759000208500990889078959704469288339498358894251727717279945032861423667426327904458800940994301785695355621289532822249391159284806096388349090843137607101540592369807425877804708652117074042689358270769767765713624534051373864043117592059278627879039020429706306827629843871371520399821212950236475318368069639746472577459499771420810203452708780520333295986082629717275789266735683065284921579403996507027455803369177299333639376149760318850900199573206460636227216415618535959760530534655592117471492795820830369671698565263360033080131181632849996727211964541045853841319065762098266186963084178126324122061518602422730979859938674628058232092467041790314562755887295517689145509839084095133220165911898968176912554677560678170214891770904665986410984990821634216562263476952900737519572617364343936688654527093631240882629133062976030499608933051313252069205284443884313181224943800219337250296999759406757578044430607254165418266149235419932284047368293360184125940318642658592282013747298158072263600509108635532088405481102549125104131950994939129787050617982367580699840656345437399799286819851184641724717562237773945668147819805560586473323246116600907721809393882233007453259747665850710061682308127564977347021266531789643261158584479135964705642936607401248086221437832311410060340122894540351287684515946766595743272322657638819482600071899020814737031036913201986299680706258938930871902701392743558329636127314635962502062625787516126665284590319113187964662557269546660204347794042031890593667191854258660396742003034856231354157560486802914938439259585581874377574232318273521376516154174481602081436306132529518431280166045085870696198293431041748790836529089168579483937414933176366423374909855734889428751031051618004673543006447369544182800766498664201930685620132864044934551231175295440377062399998454151299804766954998340616372908097901928743480042280279009354830730206924465441489326532704163880077751559915077428756446304096471427340407085998930414058666616633153248438905458143978522208366959275690713440280648154677383933273577122811691975075241497496470366691438658659302049680688733699228514334756747825728184911685742894765927329809250179284022846684705950878894342384689319960269167807426745087818127434714821510847947003067058918817337393420617225765990220009801120783287246436698151967393659355399887509171082521745840818347227694676028215781344573666313325590928759930703628482348140821972583284396052498997563457312247164149041332159774576350946975007588061887145984766836787187855820709265404302088524591132335741059875483030400307546744142450155890789212375417895540233477872023668364667758812109404022639007524997992292441270427716513769250329457552159603949351036792450965426650009393985250619160912655784938141709841070318445295905365693551041137476917671410985245214890640219934877922459249423885341754841233270027042092287614709051821949448798762003402645954776603543794443078769879652828845307003946696878076938266972060345998547686471675091820676531572612006575603534439352875693152505455390561492187542287329458441043405016001020162925639934427220846124103712026185803307895341751202706710627718429100500271132579151144282799078634113130707382092926729513359175956887061493204273387279134340902739331942985586803310566185066120742647028360230022880053723311349628291158980401078507566825083533657030183031527878390193273147743664277398022837795501252318289166993245600938142387911223330243893326663617917248783014573611060620816280805162997198637959997892887531016881461802926974348774646219878682863558170648896500656058627781234974628169591717073322976749999685158495609695242277371364220068793162950014732688441235260039766117006386004570699527416171833447642859170714543713608682206961490329134782195465156069360500018174553632926980114447109577440820566553579471315025586507799533344354770984334977004308913198018893306246942358101064119691600054340166375032935891579039959896466570762451983417247644870469404479166735205640147980432702579970265157804600845053354670590667277371186269154523769966312285885701800023470908379498427893563075503222643264517580442578857050407248052461086796924772912706309881145437840862811076638918064910494605025852194758637662668280498655969837303017393447222681384575342123989690017095503912924042817052749532741343824712837749758603393520222426184049102526940407375580633285394598433689619985729860357917785606754118254424086111941310494457928255729797878364462772848650952372416343293958648670395376359680683933349074801807551082962246277184476155409168523664993499019468498027687068266390562357417088948565623384196551545084043134730758887392368562582950275653127511906305191178633301814647635729267329569137071376249389445878022751204154670076979844630592271755193242547697162318010270762587059895924985821154605185998470852567473181281448993738922186880904493764481676036612879416540349967687208057479123873269723077294631107064189444650103000362840371866593250758398493580635028933814105906351322565303709041114500193373028866665188871524141153518561204100949862207669980108985958545191564683800574925250274691926696572712339571082839048890353745611696833651590958069285573919201545747213935926418629324004321758575165471285375956019820247341593352531693427685419438114295050979035695030077599841709750451967980292860747406216275885957526248683597226371441170151566333260192890450416785566999732665197424364028557538974160660550145779854829024490280733058989503055749747652654382361361678505737771377306929695756908509012193369966933289946137532993838664407358992883612102303568784125203142132038408546853909240269801577192073826948088109656359584490205707321099344543773511945820263713461316875061896578257572039021938906277887349038915256488959696761703628818891315039784371678421510641600835367507755787136199266867889734511427282527302783331178417473579410519874232133809134950958452419795058063547971179115818739924104245964205327652244434298793136507656318564717879154573668322335894132562842362291339794978698228891310650740178488338565987659654453893503456211086254296251054572662440828484104444073837008729864331163310156381578079725384870481725635026082129244042171224847799626476001733865624186820052533228315200294897088362827532226501896340046254716440831965166930861261748574600348778682352045287386966663434859683029388918692323855344529097466086626978602760347959928914605867225415117919790449968382030508906744081359032986877791332269420165140153932079888370999896691159378820086436965663816220468215266283316976046112449498875756833234559232943484362502731275291572142361005287028179173908148661756739451418045020966340667857783723031732942786581839856354673051836998418701279016817822454106757434295003539875502384728140246365983987310918785878488729477697247170708012580570905913319973174500245998697591257083477918713950351877405550389346681998243794409465887485215134585434935206178350842058392169221576609604441949173160649082062344538825682671998324613481572123793316895685023058713065349379138200165455980012058258735790621570622972348712397497685317790875959345407067754701058606335911811347117076086965347202809868983755076659820726259924279665091378089516482636624840590481928196039460218757636232962911367450814005679962409597711976081806835533963471249787159022986052909865616449266738499046560298652164784544440614672357085131367985544743853381841670076614415580549824866122510615321084765480044091574248079859684250625109509050313094900269364760123879102030169898444584650612652365523790378858588422297303762359107316408098524764670788279407174824302085145702467786687699167234943706345196209956654497124425827156778320886906578092191411635657474798424364755454967678347249483695051012735345806127972791086196574604223485638635716298149395742432523345687973849887582971735285393732462963654688627704796651482944124956998527150249482413579026854204808533434081179756852038141342853115873807213052075302090213818725898514988933407642519448248852987958402360121790906169126299202165015697194840203843890454825471420980715161343030725133347633684839441220611374713625501293003493399612103235234372174386163355922181585594795487263101577012479814618637516014661761844801128994597886844657153150272641256431765185332431173685128008628697092696785993896878779448078151269835109414164579387319343466690366676526500142679005713606658175931760694505078279373037702915078649965566147398496034549232101039876981767708833956804446376695486686293651304472000669145268786496611325785827237565988970259248641667597856459832174948756041705857597950254901338340175425588182493804859272115725497813492125829782318281592961267798152513811897806078702946692680374846742224409300055252379046941986848362502595352278553590527348003099607683970084322922323994770502540797436453007996103526233192804712970167533818599593898618754478133829944870215045825964849562382256002781976929625711131566566981987001609802096271902413895520638999891095925934491223692920293803788752889677183502788081228083855433220141216497576331457632570518814204355349519214593189875587427061427857289415167864226135311303131750453242351919012044446346279919131507360388282089144320066486793461821062239586050245983104227169552737723367705195797825042004945793399431814149647928128906315639594282101005419711689080350467805488380080161196156162613287726876694592949041324199582980872086650961732782917158886091288715711149295216490881912979108895054090304561452578173140203514816936550657562814653729299451136213597654397194203273284681622989076328460849871906039672301953819623079365826328633901613359105479597711359874726867227360687864699565656669193125179134203318874561400431925911697049432730690510826012086988256418228730567282623244878282486633683384146614664377230725610313782658818219387791488106339591949334387337988423726576187415116579031818077031947491468531454668653481585671925863222916373317914019473055447238283349967439674067821277554347273092226818024351783818036529461186765656043717996496271861124932585780900181576837166814216278705293037955262882490164888158647877858926106306736843037327188970532391857191075835678615242728611413978658209981538399937939294137311209235070245215009762309619557973781263557050300667689235474638087509116027457469678128024394119937881344255298333443880820885677749376449344924728044564705155958771227447734930537447850376116285466617979049352671410585053561215889883416576845884410771657011350188238051999073040773220638639129123786831526756944613195532841968720855110186312900575979748358610880858839188674127788633754720261044688141648728960097481142631069999199584027027367125391499102918752788845845170883687465951733390035023086218140622830645400118795077925293128034267643634533424063856080695906716704792709450797766768450476405401853855850175518359555540785742027270342726989764595322321501169210596966844126794670448300854137756235043375182686646547485177453330155120135446786553278218941309042117376042497735634741772441508507040623162678248650877183844509108457575410601920475951724253776219346588621802975354383136345405426178235465160411262095185551052258730512326842977463215052097640935607409126076318096707400236271358739874588034698004720967671127919000135554564812876137697625101670539696616750877437182135471892714323840395663572466939859591403915575070704246005394417748959180456602029381790752061563318314080593672060325650723689073750208099881557584579521053894405906458867668880147109681519044887338484695483371643592724059488387935082572572700141554065116253167667679846052255402157639398354406121491341439187312482727500249084181145302589535725192107468584960938982224512977326957207584909122268825458067884776244667411788080602927401571756232776409136696950647770471588164126261160921790963699848589419304069172991321769375423672605343308154475465442742503854740663683019021104558413032653577948265249242158141517289120495716685918564034545661241907267818520217349057617477659245737917043871034312090865341012481347453191354955436660189311467041279338537961117255409911071714354340312411395797244587429612813214274845069355399995817422245942976114866500895845618642981540037117888218416434802868285877563361150039147304763903797581628323390075352257702072991809975888339699339335602912115221706915174111857556731356106420012087675380296815472176700932362846626708809529839709677879467085697438810232273919445682968307092279664389380115410124053168269850560980553897694733426560135785842931949841581449514275183038950504974361799350631924434901238134284269732966138067917651513258489965526153239037227543756217490662928519682185891565607427012299069752129105853339430808012769464632172892822327467540185024540058934162089686748547283478044116481001660185778539700384243097644027124069620821286390513063723657997078625003955960319582615911442586674105166675842742316722930518438083173312512363668090997181536847906466694530765144536459377620546805525915209211549721782493180670735821449160294708886587070698470492958030306919034790965134369390864693354382786889336727308827258360049755444808905345858317542363987844906191451625980366421118294795935711036388630058668584618389103144956905750833286765586934309321930618825244085565575507750495765104221899193119021050110768062106185167796628691983263380458720650451208221465732688174465799015871571990027576356789216205740653082885572463786471447635926994957285365688103423646731725268053129497259995348936620448718363899538296707688907915182676660313727159561399426614800713439265983161818965773581158153393449150082538013175204478204056773843251047564426952943548698025037366593519846295127683595965675351594577526254334706606658142656939225045981557668185843016991278993659776262491797574777367494572572017935967918286275131593397920746044776386266330865122138017760620892658762042303481704540940427060693910454637232805012011645083295184825729552059657617407470319561695689758997838906146307828721503785484464387570180348104191947163411908700382938316774679558999502892740913182240735926716992185760692058446152522057077660288956118620295965618783349186538391557193810264370999885548940004882831863924850017245385521473697770250388815599813870757087771904908236947473262380982196878556980643931864571314462714720470256799218408397142479739309053808385484872896213143282241433041502895572576157953154846431098003461170575378107012034726134781148034593417291154628957891935253525889459086286100909491940801743720691536068244013110134239000245959724317717932693072423840834183812800597684992510291049523239623884789424439512952415024546088850946311699612934774748629776068308299930624920921768123680209610267460834459801266271767704965859533696056461291672850720652365453926611323819085492971643176562610403959571392857093327331806605401122402433993292297582632018118238682525531458404329962003733012458097636956830910132279041144017936667640376398996279180016106939792536201164503449728023944981247010296276908704594711839859651971500377575803061453986241737338621247144853170702485826717771044953614575964299249928328411874663518835090794686345197714269978906124072260650651295735465577463019420569525881194322903793603136147225207423870352968288743038815202184161415795156251317521107528701353116070940154068817640469432955109096662690981650963859386503699219027480055992882947442555488674083914415923238513247459519988978650626239051420918596937376053610709435429138653950546043002110434310783758310836223173592030344949788728176988441804169953788983337951353687613751938335597874444703604296812535572509402726875506505640242029225537479197557396558344914130904155173038298670879097770965686160688217311549997993435462736372666546725008625371337667153948389943021929333728235299331207836169310968569089541535151203752445187592259393588979013965242419639753926328730312360269044910162169897051004217076206101705091323535574027483451991296040348797518267146438515309505783824170340608627979448456373241910321842166167815441466371381917005966620140015835158397913240595384502841376733346504884567909441415004465031310481026026849874108132656731663670395980041168237159335883891807990678880817608230278866704562443132640607173687327561103579649591162444484752722207647287920971706226266868403834152146186335170113951888366493766273085868093649055702839738499130282466862972194532744275466997870601152446022135365218484854851420715964266127255967036686342030967141939671839555047714569510618853667786758889246023866689991423982565032241834269645868938781966216613012616676519633693768923178906172463793222318368431872834014884562591003773303354642191850160736768916789429890753626504771945447699423619689470017048379631952708917542993001057076402142735679240656971173772993386250418103783713557469096918365924441632738641179788522403857218860938309811419908697344501269370524052407455585899668517381163056891135000011558136350180754283028351698225423087224796681078121114670758839381076812777724196239547040607948728841201210264237518899761479661162234771312349538420827019491772604506294109760224228143033565742230708043635746542353506903689985547791135293889407929662428002920185843947269578480298057290881225049812821632910104773195143133623947746061136038758127402185432968015201609946303730794188883532401012470347217600492251340184883123371610590464782454758539671235577822394353354984530634594102749140545639072763302010266117515820795688223538316487360893618430640911360680000110435799546639697513819999085694695571984987436256355578578497317539986040474552961272479424442066484495553705513740153880799786422618991362076518673815917412830545668468964863190976600050508283870556592997530146711968874491818937277187979400052995435679421117515772270959776116199684748683640502498254625116726545209282739322299666312366112885872004869140946903491614215007281233952861540789569715603102005612091179014493685389559953252266495388481177069956684665716483526557269120576124163688819329008299229783491403692122698934352069752074697014925092099674962716645645813671316424747377305711853458353347890803106351621718144965548681206616369564400808778779880916764721379604619832439869238774555444923087718595995845292923375631039759230133004632443016185999553592635880557124330765426294171578391960676339527796655516358028151229248646924002273549676652259910270845051832607616877413308332579860633868044606036600958153320427194620906474341751844183546078257226786539457131496395302613741651451241978026806115464839825329041101773930507285426991173661075037366232347593913205604877367217508946144087484473765258953766567937931482559720034411073544944364609255545618104815953457125705302263593561940362193645125041811477117952591043508943024742136033814461221658688933197681565148640156970172550157332177058170938030985761027453552836476729311068705398706174285883115798371203780240143751128464660849203953889752188186301121490650754992337157988346522105582777007756208677708031265898955305746534660073480031596252449897960661207305921211867486564854144228034954169979933484749353040293558807897399565260548711377963211133451855950340483040035340167835748457631545011636549931877979389083055505238139633111582032232606324722452911762526657855180051380390905421407359150441584043992545349398863780872825740945539019062648333662336828639532092244830866118261536927453659575857506160445561367878829051195673849486462331863152144064618800693242518130235780724787160994168218917354511886926168322290028245977587526314237523084656082728182959399418652910652915915060545273571655749852796689198966927526643093124877702058575158584117771417966854628763822776438180021715257333583152293005120668357771107396296220126930164697840804748308599274817749207299047791662662807881521712044340258618777229723678088218566594178685282113270808973991891277391825570260678429813165606716713385675919320977389405245473424157361235619211670852887429903042326690931840916977823135258557978787898299572505434336676344558987644390035863377022936279296624891572247912136024036691101888203872283417551202128992861079723664954197787439092674557699003341165801238130272939190347530334876716540325294903184848287532337274843754753337262014211590055931103643344736454178711707198807765252156305159081278109631802558538652669569531630730788161884994506494146374560619764562152241605258189098408342600432728928660767211193027096570644716597398932908407802870259632245848256770020351317603535031185699246822451863926196144269745995860748698971727999017622331174378004979852060613658782541909687363122023135796102120984793400669587891013338563956849603379369904584319604854554880475154230876680880720100664815475365858979447639752918643559585166004083120835326208764757039384638634914766928613860753090501656475570891902410698954117203010905233162885176768365246484740940605405941480758046246349612317784634715999846942455183283841539966457875385101211722146826056643377911165523234528016070019050321732611197777342019737063172720378408572625761705579977964233418140237513133065791470781013186266128561238853772975380232537771464803352084840002461953980790534288050098358692863353465381684528239804811101467038380406932279878765018842976900823297761515673970126278391698494991503160256469844119133324511608178210605006042357240668759993889590987153798984864661005328974268439159565201397115305697157973885618641137918994990251062457532992760656585937928484374303360200585036622933420384287029839909977522818696996022564346984060372094739146824259724528583063329699596373473618771735269572393836969669176309034871415175601845341078522811134507942923472790448007276715775730769063104604620041047893739325548361703784855676856138417871910763514038426202771516345168388247677442690914372245194255461097545150464299188303079972468977832830803003332453122373466136497308301626942248864352957593921780351461373660607057882880505747169364093160274358477629112188480698502613777731149593447257833781531177634572805524762037439021472465422384171162746285446843956260089722707241851577300850089910743249991564936870607138464841068000693470310098950247802684682738790703244698419658841755045584124396603201908933135940848297506132641590772004415232936033185167078056622120918637132959216296767207052460337543409620180091384288615605650736483122897804056434766714818587343092233046750538066263853401252230616102104313920962161192967974113397033260476674513564153553096096217878236269573063766989530481555193023747576405600091464980810544285903306394459827352683201302872946465004536178692767965164926728684222577890324292273720272193163167118065521293230474743065311608428123414819265830761794957033931489459372396599849891187250106059234258027567211347004518961609054668746368455102363974963070354311950380461131828992659716329875999219613537085066467476976703417192433340830358688785520161322426055450256278017003439879593479415190584329679031573946068472800985660945177293162810977486739798083977792493227385283216092979699732144265801211667097186383245860162295246081178953916289923767881446984261293475382935653152799849511017544080401446839259405199360707227535483290883087671781764154187505285298334545111625447258969082884229301171731111711473087977159455677182876752622831400972354989259106990236337431259930536628636622550740221774298396981234048106887231472224369207624276987120302088214758980754114134247136978668374781657371965997131174443681015357720767404459945346562132864194592480693161502035082948322465486805414929005907955972436717839110396724925120503655459483900068284770382075666014951130008948414316962165663495783397252114311572927345148171380429417030062689559663140864826755258489660589769728036155943843196039049947839124867145732406932496655657123133796867647570279609751879262567009773378096226003333392476823911399369027784109782652685554854253402875883324843066693558925737864789628822364927868071743024829165448943674927830984905003037543970498812908202095402174694010542637682138170707127403842195689841773651190899961590369088479485611252949467679042704991676990380887815732397108098164678646424817912221008344680667824824779175324594208633362189931660783282653529862719066877747005217866078523950943689143777763333703015621062473040215696357095855201756867846009948874629512341447738767916251373094385394879673541182919945566249391038020566941550020891254183946929449668940513984235330969503673120824430720713487009426291615147253314709213880122206079770923867381548284378458129819342646299338078122130125826318699686672071882872953887859870373107065689245486847162757270776787104185831663762469616907715642194628236258809549845843020266082319847732672668494257337815641521867161922599811779200542130169339936647688449150593405735780214407061003825114153056514114386411105014405521137214126582469459532953183595492218031690242188896770850998327038395856854788979467859611201191491341003437837736206992705968806404880812042195105140532753421927108450651916977186994224074096055229648536523743717593839279556755712967253790308556394554011819257071844442409124770793675172909828666173488391343574191630929576090293227720466439805628639083275410150016130077911908124021292223937704429476956988404789091369073995386992463428642635667698679819487394395206556084830012565655349877208487531059253467175752604567709966934004978174717327493992726809928333935329104921084638588003794538694611021561487665683689581450430181660739741947058584847327996003027287644157435332437701524412840585016757018686379144282469771389803824127787185275505952563697567902334509182772842883198221435749827665743869515120994869166468061949816595409116571950780576949301820631769161844569884837090326615460954004799922234726606337864693384973079250561048663490830628184162784327798182887772965868158571070821784824621142174343855246862190166752839133474019397158346468550890742996996380877930475511029010337254160403417536118748944185270185009556386693436866506386773762790254582634690253962258005169228432057295069636419077986847182717185764506473950771942319733393836284649185396562788142221406604274801081909950940026284787394363680735367793123574134240096382406272957958293518568658934495313432315794469524779754761009010622681797975552382736186782239690141959471412299145560264669927767256638388652694992640764648973105962831171621019346589285395203097341649027261204299220792636718330402545093652254938366439251394436534883734590022692736245983886598922168954463436439192871429821940808129101069418380563436498327336270309875507747327600819625676745724730926412723572722395399457511084270048418780408244869859360499448853513048513369787221163520300484847246557866998466558801646521763281846036355197951409389186780695763030000427474356010888674541488858740844329485318849956554221774625928770105321940491063507618167730173666649912765792291770124183457686833496381117926625220158804269422650296918209074737208726302952882606299701680793195005308676681696897957644608309592417705921690409773477110477819953864319555352140992262267870397467094816497665937543636231697080277153751707727017324440507242811203108832205766888856957171820479113287436700088117512251164974365973284992789972660828507099513252208504911750662026750390331954457939510796677124242412306831856381112869464122187582986621875372544942965160055507392174962868620521612806896689570615985403216590899800461097376567935867707635686926036283716786238705091622876683830865192455027901546965977408456236354871311980981201027099379475636729471805772825838164533920787885145840433778990185953737988292218355478352827385469288323772783616855789404042069831755265117966866069601380594358662657830834495831525519435421860471527775756345657962504228096700563061494027913743212720132083533189764109418595383356623254577889991512535655258097983100319392215807074143893449593578583952823881723639783701351399417806177829249655163202859033486027858341870998702293357187400260044581589492061202676837763251497050309412264936241577293791555756968099337416055527642571215096805576188172027535053817825023820126728283064589150486975637423677456817159725539619183563364197006241909628181792948092477224819983751368341583453302730321035574103868019386378282628960037468150954865715819392673758310653288468614724395743352956613530732108424582300661912579987307111108217938053115291327236488994919131356944906523337126289197585824521237760495395292406539444375491002010823107572178370524625077788546527794798811982845282672051917155483581113444550252494355647844614978163643422642650108305271158997497490459383796199711141733593220119983061963567220568083034980759454076382616017618880033201950757063686682182715268442095568118858887201139005972858832808387642508326841365904966616425600924037746215264470974453779899502516967787105775268929400679755856327850641168752995646066966540638267182696108662407148951771564189450873829227884774986496388814773816048813373049650644106790497302547664005397396425995978099110347377816343290606280334427612764517228803820760238172391852819886847459739116592675454567720633022569810679974138153858539736123298350028478698634205148153326817755834923936505838146034830184459076227379137387225416596927414381619361440292569021164891864913249948351728921689387306230384406336380889377615467875528161024673068183801915430780485076402277245169072320896812938897190232371635221467534162979247602010696765049845296026663247956365663275404199710400553849259641417572908604229636711409955586994264496024400516102727544928841911904619240183724087486560397145518198362995865634226277641115084146865419977513741895129675391387717322927015038324418000102023995395631416697790027450666497407162062442044930713207381519168250109430668669256106065973786204325607234210083710691702566015094846627711647649273093494569770509212771226212395527165010700704401447011500357416474079463854442529219470723733653684945465380163850248369503242724420841725179810952901318522263553355997897765828757111922605124919752970368497765317384027429677815708167299614617098226427372804074364627982638469344372811658733375069310637131090974159192325456475575103891517433134427941401455985809980752547047206988070374780681034822903199950491722168173519200604136963268612042254782108994670190713541788741862256840767633046935813754956301167269202184608996974247182234522282075658903978761294619946874116036054872170400430686417005007325862628237113103111592629049922653690601903049871236789972526931512511391533155620727027911847900108432189740232655899083431752264157696868259011199502033477654999463733979797885857913797520187015386091544886292755396604285140237546343014899290945774424344157355632335174378156823211415571628950935786943007338935642401576409627708138251307940077301421002964349408275604694310671163408099962027744723990137166534286493603634319382058889494058655761235707175237343217455403681895561171661863696231510724219237401796865644940972703997641302693448032626893780682047115830913006631470578889471917287251678761233410676692641127084794916480775345974542107433273901296603911901973028940286507417033498521292724099715689245273047946796247383712870501841261681201469242071812799269475311772667937097623286687119226798169941469479097226105481032782656809322940309261930769988734605855625242908749714377112455893270228775244451387681660581568879048501002109798818709272213780428205083129525811631436718941305122173681631139717286420502397124705589898645786899563389726375509226193732983414227844723766558130758298254214991101933613718850093291273364655984988558118456742375769365944742392244784433181523034620880212319031259128852692697080652896636840172750668808012653364977847119851078790896392443617171327544659813256360620215188092703750613242659826744622396008509827023106234664261337042039631235903548665769697456858216207026677052791388219729408297677038122251117013003633252957309254541418483664627198330274794892205427042562529977662618480604946008846395851754907672999379783211861069956448799460246357303473661866512945297586435499544104639153232681117212395206057857297045416241560894177520534752340910009664202877082025276764517054822297373799818611604659387895019409162627614263394456557448567291901508429158599260556581442014403780857855127970872909244585792656535035879381941188974987403557785269335390825208369050381395827675140362376178239417364946764416178900738238103094375200345953310283006875169398186095685717925803521773694909213647790656011365229814407866647675384277532721550692042318426178032456369804047374764125473541620214954929314787212894547930852875157563388374326025289007213507421692577714456947220074245373687961468279478796938663217607331761159667771048830049695942429071222254850284165501144469338330523571833391651553327557983421568612605934993919914812101517280987287535708630500700144411265019129021356686545052814879660612537514104104170130020181497959769152387042384731570451290325268790876006251559170474118186945508572952025489586725641628547346005440999893868534307737749130517374041684226772306978018124221274795509827300165026667572507003159395636121443066792326387279977322766480924602135988279206635216931339259759147595254171932002450241229890506834986808932755526449258507997579728274070911682755709368818039907172728857166903700856598127034951388292275079022421123442261403639240106752202003502187585357168087884330060051955998544380214719330163827644042375558877786925587027301359962453736705576533865898649261434847030112853454381046758456405493186546004962243478384113843765163086153649956949642513691395850609245314700088978563080292354066509644773544939549883604594801822647364612556826669951749852051951605234280144827042700622262263923455422678489834210919711748055635580595739471315206086729757128532202522491477368932534815168688746975128704691167412438907953572455797192934139606343748546574285701080642700934903036784699298488407499756378785963447579918427662985834153755961427450099987455746554964513998320363077477031907941831761710182758520788732571293215542378620956136427012987371060655240729899302086402362660618886612614566446524211812532143932622164003446003087163979978147389443164609336100413815911901042510520740378258262124791107650068126372139132196740824793009148446390722603663848023479024552062475112900888738339345356187646609484111256963984183626800873725515846403170040841100197056077530502399789390575719788893536082955444688562176075347713843407014567924034480236278318687696790513299181313406946295536708815305378706547804838268398516531432014217243675915459757337442643959796202385747002758626702319582586381880190050678499865062615414653498343482311222258931469894861960060713564262795672036203365883958613008759460614290930463380421829622718592648347078263299791459354908825900496691594894361539314550842832339183615528354719602992252315857565223333705525651377846327001306034398644573621316824770745425130621465169715512437778697822391435969014400761034689025169571197033399786673107325871957732509783634210459046372237572630329994449613421808084092829957251594821375018874080729439044650040150055912583133062976378555503807925832787000408828866830431215028430583003137459907255311620078023880833516447706273089889050404078752517441865981577445538337410225995628564028279144870663581039033237453097931688567650324718099100035362769117745758160674509378566921827750475911337629595088013343629578738672662726314122303390934163565160271010010385092899915258026886535817424754090296768839562894187691377981254154018330127383841151624231812967933455189480628570978328642194901859422779848288356671949116939640859927955983606415079626296137961884364353530874144450510564014806926238567400986835625339798747918710981740938744354082751986703695973696821879769629789424155193613913868580388706256763316378745209593695446346274153810183911102238027291355985691899073648125809275645332815230540798000881781429881583224013800521855219979248361298786971841464654209383423476975258788895563708797450857442611144037151655965261408565470223643226378102416637496349691622700925465876582378919127683245152438105700534624779967657036451441333989453233623679781751574344054780174105523596336898006293777734787919101793931400690337772128976616036599899055559518806971060615751002609452667802092199406911829121493401999190380580827381554403340715561131373674231181346084786763932535989705420949196570352257827639140356952068770406863266868365361757712255838031926876191578122136455382802272603461485704867661952883394627676810810852512264655019530761586067869192253021471079597190935295571327597290695222383167914255610609598860140537785267127413128538602868869040374689342799165781731050739699069198457133706032875396297911265689396952001235350584916881096689599698363014957765098610407859078992454436189843665385905594998587149574780874125622705521191860370726250154311028894036284386808386414090296551086675036027314778702424283364895883305914691289881981896833716687720516888074516114654070337621154198082736226272951228691987055538837604195031851629702978156168890801012380479542861582795424700377229079337401974325040536748589917781182334886173825434377967654684757527771985905399914670336190695354525116778049947571205746925491656630752166286209481577791718770195686197640956216963939861101357981566375757555354608915913336119163806434630983686487196680077339302506827197025342671687982306247131688561385438143908808796725303682601229780826730049986590667136964241149843496864357370468113198142748519023729490656203366139153541935923522482645523055610786410530321457565094436370224599232661669932029184272575294558585613294211043391023064595532122154316860233412036165309764200318397304440346203117742287463878986398695406101237075201901823274195816833309811468043202110341401234411842365380164113046269502959452317805300742515663397023750298699944692825523561089331866159187944676094758858429785587320404200502594987098664548361674340679815399441610398127864594880471287576587240193868433639806579537785708699420593910108668475036637205858081723354993550617134002689415600146128642190262414858757565978867988361778077497684726508061677629144078543118782542766290243345721277198420232887888630658647448441941212671183368531227705633003758395681292126048206320351398067496555765686202414445306025405795123079196103265940783518052208663574801053574672011374431725159273435807944395090315254217000590864743017261143802180714061794707767722916707346733682841415294095428969896610611754222908885635630660954781064343056208690560055220915430021058772447503265416655890374418022827729282824660441517342005001123242022084002169896673888137190539533124026203820587339056220477516773794092546507416078089823358612667208646389215045312283277012237168444282536449980501674910412461044816210672761538613105798532505977772532023052879947717386106383786304372335195973081829353607470496476257569930559373660753533250196493343468179286417211081512342712736678257796253563976524629850583019073258608964834254249979118335239598360800957748758716610051807296302194172810756605348437822689074229118171852998483674158182471182355853298352502779186340767374021706190972679929994195338465253703693916649696849334161346403815056258699165185696634243975718828794151386990081244871849944991027096408447247655819312964685313205446458201459954102271046967434249883727510716046222258896122003166160850462041528041021611929066741309887741511474993438732955261242422120905918938299449609688582185668699648149115595523214084992843955323142372250214390112393535774508471309205437189607434251462570791948373848527595853517960108039061067477925106755139754934810010903819837721732710191403074718509800053725449041678932012092630957784712950640433702963200585949401965556355831669236342669355278279071131026734662564704624816779454934997572580970198303726082558716493924006643015327216944002021889057631769206306894872828964152436031382233950080866795733805149033267176591582585824435274431294689971633702323856780932053958983674621436053916800765968902129927067017186110975971562527513519101900507469274419190478496432002688030115043332469986328072430598891209064560553531186258305208402396932206954650375049217130735830909687045517969967916493392062938958213499545103434233819466267638995997483402695381817502446085176458200304275256832570355128055385096604706286611858996333331478283764004600488920620638514049308590765633900174031172931903906268468610749525844134334988793434495146124759470881820192329947529742888140024394599050594519331097539113950629790307472860399516389747003349784417854993046117489183328464694147717568766039580297037438709750469732547749433417598121640497765285735346914197577150500895822242010566406172064918898487329242213906694258780450863966106788820147663197968304836177986155956616011194078467975604328374809289237205046602615383490962660373719071726360588148540973293892804652508727371986976739721781289089734340775451100964430937048836459326826341225609730136827076921620346270560282113352447009166237216010923812902547727334816865760920068164957661513417884653399775449844807912139596795048295878909918527754110594746569963696135855910218161855911344014792098054319462852844193850584155334292896806320154353553453643334687747869112288011786438822092376808358070917015030192819318800418482093798215711700295971673815759573739235032243856670314029678639918557744574296908774270316968649111668528454055340354821415394280445649232445313584326788591448602339084393477823189518117032995624028982759094124241722038250925290533576826928124108052059080898877988290073516008793565604852860153815790416006281748493492015397222741087441030247533910801093561896822416749141538697198883774008346759418623384695354503432012213909576903533661860646976532250698526830972485348131761733675770896424798188059602036223376122498383495646396598366692154220349223844272540852801405440308093738639329276112607349845107166840821882807825109831929168039053479999997409415001756988317042215423069466922222133433058362631433556753503036828699204974956049894779591404198119691691039428714246249725617162210123620286770767170589662002930971225530748940546504445867838144157746549960914636170839667938713903944679224731593183647593644781133530192507392259490185709599634902727469623434802573732269105625509425946494801752474717413584949763403211062454347389639713292686348809006827339430424249853402469859258498701620548187900214841815361681944428106198690241526177517925424673978378222576322046773448495090395077392059932496594164115199914965896758900538931674144136025425515239026347158919873338022964160483425001338786683289504515484442757234119529129413867899866749156877715910299242733405569615466048897093041997739879334077405124603426720581102050045937259966707800533514031431810995650058016370238051301343081382487863538337577238140605233487788371766123506916077039004771041833665150944351020438073895350884495330637954845998554037273810944748227990660751959724716916263248636301333504557903550968558297246746692489443405554481958238610334306105898730025568401092195879364046301069627985795857688182651707794374810000619831194171991113802714860832998498765229230852632832188150550914890979224052031498292928691885156367609827257213122384285656715367184114450614342807395346462313963721890701956061066203542558400924781710915962348332151675768001086180812916543574836117520802712248399328025117552944228329168223993237391914327886913794124607408545946255358916778087540722904109604766981079584869533510562897214248682096174182541157755516180227805224579085720062914089479569438730170614438498752761847063937251626393796465652699701723984216977392439196413872546866220340019418288456556532178502012415699655181969530955585832837536996077445563530403925271605104954403856180021732636112301640283820007308573894293794124583544552071600510157149659972637189919230626778720132613793382980131136464690472516087470080368872590404333530364758772129525476096295809229372700049683529200239302963256694764483777063411553716042907325401239859444027116429588425135106290623219570644410438855966812535242607507444444366201043683520509272633055527755350462166509416077947516737304794110034977946733267091986468215016410037007675535468214274120062249793129783147706872752216427870376253462153955660721612828623385289772031800941505599287558831757347287908838723500975014829620914613380663922454385242215962067077754984925492028283972749385056940031302607414686754567953928581766749930342510948612161537559181439374503488944461316183926576191761043030409650658446976445273255985975129396662942286748776659537897404226253429645763635018880175870792402281306074728803914408519721920428621063165040487543380524232401420104231046452941644275810628129701849780256684762054112002492232664625166613849942637664755151085155457292879977444630540717963717572045688727108585853565172179976085598228834037789778352260115735142184548877141805352446986905534652425655119486571615966189373309069986217590424901498796936400594219774916899365954478057367649039425754530717926677909815049119602836771142279917398133743171232377697303505861293075583613906993319286796668846404593850950508765725766446901043745092982356398695916895496743216860697969180434436954358198629479693568349188592102200281698618163672092389960989343454916491894016105191353337563405457303365020050059610712063087690892800670292433901557893189110184986078303286337822144285268761099601390578062925827486934521750677871554261078561718338767663445195981811228543680603884863249011924590742295107771751076718415743498364337434026677904151558274737888746648986071457690377029175179184042106687097896032670994860046589644170351380049436019625117705008539172418372078735433756505673775810073792890543849253424386768111076356862040732369735124163768384017514105585849304118352248791299599375756933239776339019341996310794187046295874218830765571734238639798756443948832138886064023447601131926771187686211505615508345849846175061000816466667823283151829018094588028706914069303219567266786070697432039658260873886388041672290041468341842637250851987335745225466458980863367713093259285287341239500563932049310942122876215295218346861926181752820089748514478653883300987742676901366659503456061807275684513537895868414834688426668170343262394863606868657996517979420663690531285358490588277872946022102450625171540766987104390832365284228649636590581502766083385032913888337328409355932563862553058332690165249440170424245580015831979839297964519317516662589853511192628183131216078445735726605897909733874205554652881246914817553866441450831265695451205639842298778028928410169473535435914787188237375224240052113665152365134111522425975546868634877907876854130407183810635690309243482864789990990949747944894060737636473698103442914384362470971846798130517712281140787194354156453476464809559977084315395717420122179360291655082789751956944825470094951256452709470587369827476668564065355874483665593398799671034881961142989939189847508985274101311341110478148840683497399173482437161206831263968914248756548412843219979016314469589612149493396764037551232026341898932832752277074703266422429222820448612128529629685041857720685934725492304299889413421731615918801608133239451448621247462901612635768147180459035201530115359768350357219350039536320365682145654412005767666189619075373255945830319784480953397374187861658881170338722289710063863294829996638122741953087994743811063291244520209274693785925517873884996064292454785742867612900153558571632138319577573326560092857088022723934092919557759266485148927669987088639377408747737312190366496013198816151793526015523348993025841771986060917237192557312042300205117336153828468589396785509777005283594694694712878426095190537095003610819620887898898446997035946660156391572966427446537389059798065904529857779477592408086589934755741568657584030568598620095756386028212543072374968381751042526529983762939795332204618352636994418287442616093868952799578175295783899848623345946980680849574560322229864620142311651711173211273826177125202526658672683605999159276338565081340742007465772645975928821351968631560420735280952183044764869050445485556274814572545805445120693933855617499110916100284408884049299525545347138904996858094437944025433396294533243732266500559652381041926944450102812298866840661435990307696780588550488339381420082424738469401961031721656512110144037189321765504297753140784032091849721618493944727716631074376857459902053284681140076591336964758300928611291691569015596463355662388121928569010261898111301780477770555677018871289973727983265198602990515502361476439527388707578295510079038574570514307349009678785216301110337124250393427718550335566460308334240936060978853766871348589583821968827428758104048522182270191149978881970506519519816580566000901226316269592171393634386427428819522335201095059294168217691566241930283684474152558029217511410469824134352197801358133365026904088504696661866424480566018951282598793453950105512735165017380052466355325886345870148853470711370443696539463612590937764264174357957341045349457837206374371215407577157924221543692209558921962886507284217137620972968136172828052124222319971635083914580724066277523278595624899806149130690255083353584602491907825373441911805967044981563466485389561128402612134238955342732579061106101554464539480956568356080618807223264097654591344160511486695808325054183600293965309209357015380585107801965492357664743966094533527471469796944814577720971401005945433535171046244266532192411496153611456665111124723749452241288951143532798227285894986323940693304410839800901711556159440047594349826682341253674958936977590604314650556793705116342282638955270533395031415829962727818651076813009887459676941276754585843958874694625026253066541824818124281657391690644509691061650113918311592044140802480893467381907100509538177998239318154042766044187908820667860820624405830913963130256805312627983712655266704385666996460687743993247289972094603228625290996758477408458242428807050864232782577594586052114739887372210265837822824449641293371506459681440027617454729586722543204259481244916515421344244496088353843612515217817334966922821015349385002447794001643505538308213737145878263192389123382507018753338800728646276652394452668596388841037812734495779671519784309041495165856379656157330233073833339436601870796047322573914959247875712560719034593624895870159351006287380229374150897593545059202701908990832972808577908079060575989458305590572776281815075739284388337976648823281462283516167563563465176219428275212047607607120634600964984200560443257797186486093790292505909949042979510031388566141690137922195288991145675411355050878852889370806173576565440011064810571551496744635450662746924522522518379861235262692404876094234408739566081631583274473071620187200163062910499983336317659406797952606967540866578446807104469043614477355477662815693715328220998959964677422648425743348108001107689015247638228091995200609138133051728234598298863939451259918092946137019030719733691132295940657022258906057475683362241790418960795279506636760064862192110860097847152923067244248782684805048807556151988074523879971649505732452062892097815128964073025529810427547293508702019209913751723496575642826011509570286998499815352945717238779311167424677627422572713456450140504359353525799260276785919477817614276623030994574374398344421050686809673944646604895137464011650920820608597705170280792242026647038309783892864688159154946405969673624861180413586373522208916370057911144905835169349945070474347265862123911872637994430864959684892168228499285567770328313408229809928427715247785583786113125634165663234320739327223938930428300157606343037291356702875853457245602836035367870229200437941853780626014621664098758807816074322775594058886423756223001008226175639556297367676970174951718028829843386198683844319811301674066602853955647076952000518834985409104211292845114761546067129411829005657981545316807827718125149173636006682189374416057039473898363852733985770329583139191779175440212034262803210916064562937032566175942844038003211373902691179072732102130954340167391593247144777290578034014019666600214622438670925811548383219170882859118529881000160223710009934075572233859791731815899972386429204605019656934410149929826027662496231061251196038455294318924353252583764382524324445330334345234590162765863158784493058400970474486740858944805596749004106932982834951520694697156229801169658787476317235216216450830569696045896479627161754023766408603659217428621187681709187291880485529208664570540660820859809985175660557770537822299354105021446360037888921122965717753510388004679169097379888664388426656875906130119513540925959851032414213277134915803721513225433066964081182619854082462323835108248355876413714148500036469768140240953434065670075093238179596178200020608383984355844178884032192112891515444021803544738385418415561969710366000203025032980963999224869873401478511399524751338384920081186016090331134776172172780444494953579471973301167475183165194462752051998474873856030905254485254903392361077976210186170116078262707659444562419335073296805313888350952205604893430281437745970898458955740451122693480326534817372209574099764504992651847929431435614807134298738453983419717925128033368840378779860562029482797827629450275338340273556741815021617208714729957330424400408167133216288103667676678895682026650555296486893548431501324923994707106523203117045007789560524566088175829682890371049151423686324176964552121338601076758663342125264013840574933667852766388681765000199796462795251656892908724101820446145180653720464118426763823268041562095524217401020626699866773537898455336120929289226830990850915051411998126272908133698088857434138397791626136672671627681331506365331552007530041259255183908185190080405357398001176327716278267218562781489495558501164670063836971475016682573172023417483363444489592776244029168480466683945286443267367186336133119084875911827934333051339534335816955213703330723143340068196853554368075831533263867179820375770314483626802707123249641958437043945143812392538852306329949886797059400437282602945040596840325047085015369553932381910777894187534517360110926699323312635506791389797434181176989299541298462512106586090112535362365219578753772070756786465912682598804058024867541556569310968978460794578258271215728891217727841673248581042049423140362534129393140643560881238737654237352485178694403695375809413123005547066765979781099645237363615411393176992442159234215321934413240500558034121609482271853001768895409175489711562183254159717794382088168816599471911126440125148859130762625406995658929573459534561115265894116405651806654360871149226662694758190665734187405506029983671206252345958625551725731161336734414397480505444991311625650900882876826558330580688266277974873190709081430056036760112140195798163500237310431507635582347495484552360826951197813963360751824738247423282015895252858071633374462731563026664658581940098694334288401705119464252814545439494732177036947290738333599699198248134278280563384846402182218865224600213347735503234405476653742584452313201120112761607716560932525412881850516578632651687488491611410922002891976977374270623497704248416600946048004826843643888971274533028522825419591787165128549625853856251581858668265775684645440661955562439963397364866888523966571955869445750413044916842408571679570867638037674707451034061472635639127168478246498669385913798293581840750539576212010942434129581658747381734146596891117822804680450100933686101899029246097226924807845579348245694689108956107544681769335510671568020129316356990453752560346210532510663460552367836106665504856173630513170711911519259278354086666268870266295371675104850933152208169849848036495805025922769202147680198491310733168736372805407967952964100773371021777826167323228165000235259512203952580976749356857337976620468182743944057297432549152971032326575989589312675336128876515987020914985544996811984508550055044556583906483184014756857493848585672468203029541576721922419818874434602025367633124746093201115503100276713505040955228422004650148237873327403317229010917243444847194321169758343229493417937725654904562819110240300513817476774623891274392668635727178121373291678630493491570105727829740039820443460692269613358678177371340135835074361240280396330351060138875505349995056364679675801991657938993929724934895314751880777001167682812971691748834123326157404906418633958064133338633098292434301692172115758587977326187744142053643167349441282575937981264785107759156284949030860144299303208794187567542794506085020165495958806130397640312988710293789338235802536260950458625434959035335386906735205087476023750308435864763016278395236099679496553958608095476618488657082722451107084831163846831207069723258653037129103014891121870747302904080446471029370731831271318725023626730852616512774449969266307711302690416317285340019771063462415647450912845906698851171527992000041707113639402515453763713723610097034557876305241977555101414053853373135474717401642855459118943691588800078885913559205581063474526113651147337745769599334963333330095134114476333191119996147338577674174889386170584362661709881721239827896177936263749806593029874366653453496155730782330349403199868116109674668217866089190684381150159961909072302863942631805605897015059704632130974156551156737146312946084087458849039241538001605908454271489928531777736651613729878649273496954920201051618738086546005556388820139619659341821941889128829598569491726890617125176490176556488604292394462641565880271915072923089873039015899674954993700773144208954605234623529976442828036257703746306960077645251136587196340751535987283287400975115437652427039348473915661965151066252999545769407503253380488698834131456006417979600746779759751079787415011176867422437380601714033113943681341325944467737871003344030391860221010042873076521381444766733057488937779719638421359957386221969205597765404379189023296290944988773286739781181812695566637265530360398109545640817836109162270854832211729545784886468552273938633015580874544700726440291133111901199663152915147078050570163247464791845820567748620529507344575674441491904172240233479738907193761038710283241443953873074076247152338223250140177634830924194171734632706858387621016739814724873659576759014566743041905567242172839893009532257163533196513134894885235484750761100862500686124776608061499328590907281880442979103701912406269717311510707156812565255490013622881029167391414839436087343427280315129191370425719691695833099086625553113576876466808941975891662653308350222802099476734439567794728047184553143552944031167140322399831414848901344919274227399215186672235004084546329997487380784342563738525290843548824353922584068953545826977702788901929438339661390745700910104888282514621151211789517479931516777072690295687012298336208849144216609097514121453786189306127210323111451055438757532015641874771348166591782298860581096764629806341759578358200272095348833032563399960829554936166713182669567093717093820148173560935021490792530496125511899949940564179880382871561922772496243058401272434399741992996451592062907482228135229162209756197021574719741575545780130749364875410513225081474293516191914383372465658008813717183120422815042101337757206407396880738695201600684143633734057409055871717030199070167717724908691961468748216567143632886255845208886909636072137039253319316803652686503520024183477046956133391878930468510875582683995552225230234715838487574583831132561483491245643476183890147625167231925362540506943123794506364806153039696676898115784446731404096971421327728947722876361679372142264976609559642371466976978081068930095797991981178508896191516416550884694535371854565290694853217915716172438437869398736041812703629553708801436806965021521989814814929294406369484181808287815254340017637658794679680980698973684717355364756944102632060999301881612976270344915969084244961886741187029539696266320083231486534080772116960714281389322133081381075896924344791714452792119425261096120457203364879822503409318537523830499865365675310496594189439776976873728423570268506407809790826801127639823747830198768159086795110496136129938211713569276377440568773089753145981694520498845387083065557516837102715641354708494763822764654807752061240191819545090643732948785531267807747145774812922140418580072302820722651307066612061375148359323114893897547405520803056696938488981484248333928758618714005184463370690302859326614074965087667355023729558430449871768859755268911875381781495966382077800027892506853268327839871701290995689926468749582028190375617695489238696090685205466221871056615614413580930942064748443684641412690563064730925071310016948018590914086274725047491202911606454209814724228690720879629678504574802055605657810052600094899279456037558685911079758334130308770839009792092846500613325604576296402583035435785892705897283372251506027935478944066853942624335747966717538439759656240896847943050944909236868753467220923013714283043113595670161527980067692134762941817584740100336193291641838026729229087147036150578602000814413313790357901732157893776029483468573727493444531460060687826362625295317967208725392139342412157624224291371391930536729262607897935975837519162870430854500821588949225492253075290248523485825728974500407112571398750887743178387140156385322812830081276959899429070521231287024258879929126813424720720085662651558623404063479450905222951044450257152913304109718676606260465463890175299765030458983980410178157504806070589547272692163717112700791696187332144967828886596895850138565464403063816657647244545329633466105680299279992780745225544994880549876282615249002118456111918119717581953550574158278607209457890984720506071359860823496756179232124487906853595872712480498124945192313161549436505229166597034073161959598893946516315644655340217451851843151029396576191044242379604056397591521816565460942058215286379250331190814275624671179332996388052571897369172787520327015701394984600775758239270598969703217475019141189140147629709747264856626483545478683607973364976942158533151935096194474971967732615636830831659427656410515341280130956462729170102016662603006890755363591314885874728691899545877098033043470877960721577214444950470048870393777681402509546946923385862269830490659470464560311090414930282421411680255421823530358453122357545612774308690870735887567444689294879645991501011140240981966531298713339581240028108852873729897343726300046808596724418369964741355389129166121711837092392940615801868102236311048020784890334924492214016838895029878160663845789868597365767027944822650558527229815889359499491924289996711095641232365776437309395371569378587519282136238492175725278859878659057324211180440042024067129979496865514820380662818818169437228648442142043811440762878353919714136856753757190284998778227815071062097033400869177274697120606768014501013969921717767996840228642759383396731427073596025340946141167166446847065592695635707743603404661108520797019553085414785645213331081529353206249697232846522726053053875649593645170545827447165809281648151045024104753452282619660393132748860284971319047118966132413550659498151018590682053516548687580803677024926973165212858213444813404295154504183050783073472373415642919212627173430027890001495909679951561204389900511790687002318747704338355642784652952200959762047392690478612289727688960364830974921850334050407445360734989705994643418449856428816796726172670799790809433883583187921053963294984636953795060247360610205833123776268782643903664242125863052633178561016399723526254410563705138886408933065381798319125372580958717564168041639385183434418437767802006047742631816813500747978397990159407492239193367256443477543676144699218788078657370136675440188652415430986987254503407376976477481580179799850809020601916786119731700698347063250149161157944967126359578458681995611302969890733095335819812514970458305540291320269784535688569349851345793911562703262994623879083173764666585865821306152647740045354959969773635187485626950989926216187806142318139539623144761857669525708703260470226489930176932032357168379206646226530215173730255874260574825258699469273998769993541995787580131653720310301161409812064795099232397346817373837101180166892814609948334512015612452908211129899924094443072464426104788338132021399967183826628934159153485900613010806719895641641298407560431360382964413602360435620461001884667923370049238240307524395038016318294536183631280413418977011386809823368216236023915592456999709632941881571073552097217266833039767262847951622757705731899519583607979256207749549123435572968792401368146743796980339753282974576244781118361787037804355826811357688611566805402392511736011197926576328916652364838102314320815356877600642296951160224992342767355379653386772892071155851037501288404843842885235586802165039722144477228197871162604429055119743052230349977989947456320309752320750703830048273464541423912423714654944493267894867845277046930683997176184244791820440393074064437863278314367479803666288982275365742471159928702786810178904065276600604985696438913466955270557736264134077498385357007830874573017008260470676340264663296120882908303513243934654024242636340398359104372961912839281225495776616653981687037341441492825591567753007720197312540135299896832185343366617772775548296836350577429393257975789962927883990636229626852946453599854189563206059896862124719046804109750835420243853568643661808633342507432671940502981285349275011191272270133818952617195695728176193937403701568611495168529681143386072230661455850794995663051008840188128796883847448474045806197304423181792625741283689295346126567528109936238050936741910162162557931005336172271729745059345686643845243741698323279388696196197327822892310482096751109101686560854823166004372582351408789436121153667424239140395946057199465070232446433286287529466804602228169332919334101824783961810064783882400307997384399266760005507209040555051495228078697537761748003512888597049222306485955621854204764787988502488486637162472820616805717171047824393394232786121778016038683632796993416655915827502582148487518342571665462996515106401903864135531724529775059800416641801978385015677912966656347256413586800900116579671747585073108070307997362938927644822393996060032391381543615898427454598343287423097686705887365113143903636507304089620624913576190926947175231981981206095005868615027131889848940573149774151469303682621351296470531889822038042631499844362386909888564595832389231666989627158437657028055551042329195445124126413471912454422738655186331764140506796984643112763847051064226964617133721213302679672328045117735430225040410503757403535466647020750860221927567677245718708994231243531215017606227383201570595995912135972587201028782177959838712506757849162147559291573952219049119200198813553352339953612260656067928893295371906384117268203180230647644944637110409051287303042947342848737959795873146799631461157045606191381332295696942645737386913642375228580852571063752673548405750628850269878619898072363810433872798605227960186801708988743252465158293916107824011716710722010407007096707711342686707415737176074036093304143978143385584678017923459482040467258930684186085823178488847680711151649082743868845645789001742003880840915436458255565328294863892734918256347982185736682391957294171141208601808781788458186587377740868056837886630552906910835320698259110486998016368060427683453960445696635818984520439902249683841563000708942888644091601545306804708014229008570550322774623326643595554282840096073637334665245295513869657321288549404146585606065307207986992108059438408610358488867068941092516250015004492213089967993046994324240155549509521819961839443187738926052370617249061453894363182551620749787459176257115561237154706565493039970044665711011203561350334763811872390290454961282646165850775009513652787175931544669184505567604296188923798945392656818526108763174415531082946242769624342936481100264932429006514509903286777847892099436663148485798565430128537240981334110295520828319387241960481220935270433594860393610872903126106212807501588919942572547027860067176521703868497395837062450722510043254946184373087972959195983255313757833479053246183971997382907612151001084752325593384032909959543202388601126022666049766402088796574455183251589279636667898670446544189127855541828458754558631554839325985069157669951876752363882062911286937971638589238134559635507747819648069653272242562446125004615712389120346032601591274461398235003319763765920057080959576022653918483703328878145306835940322617786837962509139378561217733358802206162116093238218810555749888218185851652345345190791249627022155867145320759790863090847288931739529085408999091020291733357239344671169981406075094649627430507034469787572875469916114583527331755762794255050835986367795136482951149245905781948793983187563109513482914937932128757709663413128962122031130141823810548612183833062073954415901756660958504118908072793905797555071774895048357101999929046792236442155385703252142426541433860542290402048525681596835943550381778011470591659037307043315628889476159184732571801607938524235911798893549046619978071387480738775368555897143950562006630429549449673539165577657767093617309803888058814880659880906555054718784984434706695197736930184002118586739153742472152583826394415158351693042269739988663135921129056921919587627772209684013940657315467869428276726995783776255153276422147226585238808619735522170005504075914361511785643546603938972854721049110192737319500479243645114408841414820435138586305045274846367101702126925810792581012605738377220229150769131506434686414897869376741419284005971229322309417187575012688825116890550093409186440735912031556960468107808641398119719451610151951801968973122809406151899029837591277205020752094255282801978766210466293805927714321705045623407917459043542715490339194258193162394806372763871039097997342441204398033733890943428276819462365420434488624295101583755241955442890709434842539594065851887642495698165876256274963833088395467932801663400787914464893061567169582306054992828591426901328647013978208565910492616040671059173948380691664157122463678606552060017796502095688466606058063829346750110544008980434107832741850696955127399010866570711151173349801072840528519935734500452131221742203670420774003776864306249954861422227901050735355952825103771142420606099021341231887630605692759722765702035838670900388986262923862256515465097079306133233177472071841829280027174978260418419371193233484068238206479522416846929977076948107126370628101121806521567306212254907188250491926915059437468342653496924120986635427776761169617059766207664490604837231889706319408372003834404231839493174668380389698031654644779482013467791003281130730743688700408329465396907462201793282930089050586545881144678646527443738125346800033523487342932471157268330233345562551672970555900668593221022807756140356944376461054912371647973545920057422106610310064717874510249453308907965836614644177531239637404070817937929979735223814428199885266211694737078195925793917380108891830936088648001331167718816322561245623891345654477813985121040219773334038904105364799705356902967541558004441124928861027256286160182502140023920722579762438432798943173914991839947035897245916041389629460267793187882793500250260214589053680518773356832589396895089164084287139578521069619416046942115871367843436836290683585752082226351370158720374069955394691595630073266724295741585293839566212042972856515900873461543727428634621069362877186721366333331124433888146755516881161701401415467962088571108923139793159204207737550452480955084670095418545839578567574967534516512235233697352120365158633042661474153161814210712389112177810177398309741528856750623180121515961235550488673976626839235046417875153445993478700893992673035505568899730926307865877883278615788044782455945878350846654571036371747032917343732036112935098793572174123609572137384647991685302838798553762702444629537585593777483008167532393887316906146809486440591607476561801577892212181610523173156859233523854558741533372822862851991845682600676008656919091937449266019011965169787400357071362232138485391622718880816407101484389019148338004159327235014592969881071873722809188434798256834950366381234230633540339139707009148108823650161468279856842088863142078838095112254637853255546239027041358953442250471034088901617962105020387054645165288613754262369900161305672749342760593264006156705879867322770060505004083906233901985912380755483489738693076490189655159209529591294448799071909500856786462037157323254174224062314280568697516289593101634476881369770452452624503885695298573020527404401791449142662694924821047337071869650837568006273753310201765225014433471943240054185932576791969570518917776151036693417427395346511707564235046031756643336561886008057334843611876887637997777903842131128180971325978803567686734894330908378777968946050905092786920165578989715213861278472779247317295823073420965158524116189410554052021869391957411934677988669089167767623043163058603507054635518528106530282605219823047017895688252537378575699208174445007327131320544822190941877595105196981757336164575192793419443647419941972901900076938354927831242790630065237123668538499332765969571116969697384357917379787947118430455798909054699993520643699531445556282059700107456066547550243127200682751524188527473026348881369091483627493141396656301485126426847578027650632573319244935083973828345866482720807665583421005320244806253431127733472477930481005914316265155234883213047022420964076750867204582479480548303717719353004764685358346314020865948520969719832998970875665140847175865193635442082357719786129029266164169429762060337156691994093434259825385560700075531037011057053510997620833359454212671752144293471652264130154862244269410004668666005642964819473041422418813321106656765019565778635347847505517710011954397137847186274725297292787189212582099916367173924928451982256635467595838262984946845094268691270945469171225114310838626056703086301495268754670073042736852281837336313988475149207860306132568675091315521088675440945995079010966238177920191499342048080932561114318440945779062327188720794134490992336752910885620344716903942789756610119742601605417788788072393192562703739193708380815181155966620683040468185117467643039588003217182709213242756452968482569135715677402658939207006023598658080012561329635102227171800705600242173880462464531312210714905042990604965557641863385744716821616928940875831116887712388729282845031849485625343290654554752641883797204761770801475249318630402619744083463300744597568600940922002317308008496541289745342876304865334250206609951883720807071868472680760794753023299094088391662688621778960981551631856483320239734599022344068986903026699846588208872604293138285571469741594602660472850053704464322744717394268741634597144356473423387712696139492854173118402420119018054139513925639738196239931999717661232434309423392652148332706144712601701602411079391905538823659134514506762823723396529381001219630167576835396690199622334265127410670683717396723087752200660081808894411497172921974594268602055563000758588355993678713671010145284531300616208259489306647062629055948171822998780303787147438170870900012045738493143272586853173946793843128190619680607328218696282733983874387171769982531980477407645360062167476325789343534355271948856584817420097088362313439207691354969700882396343937350142656850424497064222844260248231868460765538175642231930360836921195830179884472033762467693557717998365548717901388998025778504724885930373008636011680841938910155556010882001974109971672942899585510737676673095875781949575225036049117168669814159610818207794569391799462173092639817897455688795322587781569851934233435213776891649355636358210102338651524666284091616787935847147322741335504480363109055667534036351690947693119892554115720765450716254503266843525696146871041497229109097335199916987242521599749667632086196921185910693494625269076943345842401555811842242398608801868994158762984299844763920969635700461127926895470081289756436057709111588787942075581087447115451449411266488207349700174652433667234087644166900260007706452111284383736805965045275786390239775150961133907867948247971841980254146678467011734003765112083265969592474001203776854778973359013049090665288962793076472293468705676855519353551747849002270751534093865919971243482634056505720400310197838363117942571386795644679746962241625164988580764605465914287458649544653029274015896644405844516833462642057992379824730849451589229942714711530915420216373581491935518991060542134166384716118364730411470567607200691044987269795576989201483443145891604334898301620190514677766382191206284958081589489536073372030032171177732986944998988277495204264974601290882360290122343496957351586573617861833252689352811600358499972569038545875274942032981814193910027923752857236712554564554337389804807812865127452697703096751173654440498218400579421279166832537608540410023775558241241753114309244078524005348984492507796134609474238464391887109855419939449547114948103834169911942072585838861441922882562363061717802032517544416397957901547485265960015470437903669328171314307578734104964282989514691477379918141756481369224806889086692980887370053512818376372800673317259898244495010725492770757824533987780388318803485924492610736307502738412837431762091274238813306624970083890004724631178549369764835752352025719503219741590412045611639716914458941958976969500570043449663632358851671382288665057477716995322436039867180322349972128541187490423589782601594321122736367495423502831923670753294972125082047007685121391782393757399880465187162519443283538047702538235132449644990551430760698006395546429309542171373735584626852403482843846397401466947066607750094723914777423992133554919922599173429209764490240524849696931982328085639605142391531498798974771109433195384562384887876472413653184397754142989553100504521408618610301301938609926081727155408078681469521104812981354210205433997489173579515627530874252359344925423889152552727988570799593616316978565396794342012443716512202531014990645434614113400551536760858936526899575352819165090759480590580195924308647412043868347443519073685937586762752022269812102097042824840895499561246979685154600901542342313145730999431197362006478751289802119744692655927741645837448363200280655378797817063782001658951051405754697061123848183496115965225972021705955446809476177985867438715124313128160585215959509965678367928042973764647489524958295939682234911514994960136786337698888071587822229259552878864739885044199117176304588425776167623842199058384787205658943573886657507703594863385856275267917586031796740510217918348674343514393252907147378961119857179714176538471802655063783047364796748480668891725217735785712137430666152891824550689968505477103957041929451656385967366783142149344335564712246178570646050878612991801952498441504817969994938464933158852876276043109372355890218827114355997478517259378030527851476103888975967982203428743670325261367026149121035951461388930105841783806659381932422739067601016845232238513523121816571282638798094386286110338734112086832778627460809120199609069749874233946654128315800063611652248626466417879946888582629662539965464296591825476232633054926533587968271427950008453888468263565333710081451116875597460285658952594240604183613025762116740956469569050259156184028057623353288941972121307665947103600266008683408800151577073333319144062259994899431528001302485439035028518144535175172944343472786812175199316832765912794727819321793155865653455980634111945579125527535277693963447918892931070365274170436551244054977415166228458209661551703766894679613408797172079806506801481098502087639528427467438124487166451137485121953120353747534302259452325282985616640208938733023329044355414025328133391669765999972252973344722353709765839131730381572679139578785045846609678433927572293230773816084079024296323471873796497982955153124301739316607579280214235364370502114985159040433603691493383704157632334307527004601786975399309364043474089625992278758181873131585140729915908921089264734331385142576660084805755389194797930120409073141058123367611563719174874176159005696560880966018127872108801892977124033175241835364482762092362265611233842665250051263995894585281368100032824778402679018408818305034747234000344700849255307574939672930916484881963537535999579926953359559463051755928987357365670498013507122244247332502539746768562232214596679035479879553050230094719241593029474881697775324306178991262978661722200254150680907814795921471087286693677488483723914730357479898862641444813672516610964579730867790716312033590394129344538521305070779259781474295483288526688864856217677632815329441541656164196679145575118047991886768386080150525625531738926987955581344165136689585567774898994374886729492383293457324776540232094314832113803912206916190516647267556122973672090284906293393481126380977561972029798380130156014969394430980781428378006773945389442590151059590494034893046102368392948726193098639196423348772327889903688559321689256368511158292506889201203582911286744334451333712786192573587897510788891470791292558049521084338080002968115218745989203488785018223626191944902074294194364156571576511897838056573071622568869205794108674688320682259027006578302695498906809797485019545440373857861241473787279070766888422850034530973136894169866755176805351732735655882816463782673423253464482454426560213266871725662558384014021094048182449904944854974346462929873305987067282018507082584933525778604845741352611340903093971487921886076060915850982908246940345040852927823546370968628443502538308150592404289580954810388807595296705757896258995089622609881840069559863369837979176305121756190794898399370939265005628097364297960706208076896419295880708214312782786983309588391737614074664924822964947750341532976384734581283012908941937705013695685822279483921934835046155204511238114553402523584809011889446205602898096016418279423560532926300779437938123764934797594002489234400785191993888244938426251152594950187866695592932771165081417658940771605308459890776132674411366181410930645193960965860923565164107740467648540398485424579413378973489158620058732834949892826614153142058375542633253142490373994643017425393214341494715111799495985313186259596910108982500592983810479526638522771264367101410597204049209477528591743255172292330871230591180804678490780789207743587463370731788274003643718467776074160711703925144659599883065294472506454080802757095382061425992939958200522249581431833910410676792594323752261151418875175102037102688152584822149780852834239533091937797371454916757085330796723671324197869846681852073236805828558702408800423537826196126694725689489743802796278191980864331382048708849968443131254704363492466127303234777757261611491706496179495410997852338569446254131631043147647304018371054382005849535352506552517056878466768586315243882709269652330573055539055596216809171672433251811613123305265840543434598665130631326398768438279260300095470217604472840074184588362814545275603306088300836421433811977772623224426487308973339309712064863418047006001544665741021400814378090079969216745309111559889857337476917332177471393745672445650568592030642781771740637586499963663247971064646978604632182771317795385910818043723528626034069327630225225559981473412591889419172445764937890655599793407442796426354063219273892233378289830764350701059475769049052922765359665763556300771108786726963223941030893774145419292311922706411918238584436900745203050916067507019905031741407068293690909785479721802750244147511885495364970876744741347786159467859556433211104040482179664631468153325286407061144961705863215040127905323739374147452403706923622263218365075584812892234086767837597246998682780985938074533623852459802508636232064680576802020606110861422972176429070600029823973292144382591245596268518619009954244557739104048333288777746751978496774167661308328625074178489785651424819290740051004698165822338459188081478721388114620442697282460081384830802605828942783622785979526263748149183821134330532540493626152179178251132735524269926576335174748944334168840327956115492586100167248045429370498550039882635168181113208548057218503638276763056507631084634796190129393154197984836784787234176379211687902349351644898661832271781161708354220248847407699703350331095484009382235258370442461278320742654538831908235575113793066639559828984389445823248631221016561965637015969938153186701404215399739507454719353198731313091012188891762717857349396193307709073410435322680863356534374758632053845065741907495044989712326548739298877102323685463974707275534861879824135301044407517237438652116901573683234062234040157695574765798283145656681741805037148059679656092236994771236323785544721679278714284853453327147560915958134003262464203787907169076331330073714317858001904558207129520573901966387969472501433545068356535833930429235532103273143387912694822556080604169441718062046356718389796170480118375004773494606113917395760686638734196070634900478204605478835083287992276006466994741822188497572779177672233009381007341377447349103870418461942881766383067789516550111743604092544467206517064451729072671268056112932250439150869794268331728791302969640945005758864074331480102829020504654834343650855638508775447675231901266068108930400235068492666269828400641885792934250309027665021615712873101459401811576563392173539933485807440156266956934278453107438726915347021622032888286719200615527657567616186140833244449606984139179431245409903050442253767367692992774509591715662277705897519014136484869523299309523064845804266128553865537957943175047297227032925715299205039356403618735413670851598697043135149853917707302899731733064231088997843019378586563376982780205998852843296460532538158065398498278340903607495425994836955032138289632913362086704193149400507573915192041544500698228949628486269743573529753415054061616345725213018064708104349263570396085998137575865113435575713267317169235480084966543131744750603775511706112259951885419366576790949246670197476739045986103509901986156821995479530391849364861576562857434139704254226565534675991546072879734987609122201822251306031188334261542743798752699844687174522940732383468720866731375151122994486951062273355286340462651641328289917812947157354235681884476457163628430635801217341682064925674676060450955931842223962763493098154341836445990588698570337682904234329462687870337033960062791818915848711641983669920692608860676922833068957061343196575708795734203742586524925400085759325748295668480596535080809145722848775071037782708866310382182182508361037419622814218513348844443568763888363984553156778454690789210291555356074284328433089441735249830804051543332250503058968974331299375383112988162705099444838011533465244800899614471146393609138134465005564014990376680687881479689485622642137715634458871947245485865103813850052180461948046050415602165882711035454644986589357624894816613632680399009221423639531581700754043824236301462377471763612900620761630902921387523526687719358202298465664286442115093426991370138124375361683329872590539553823717240164488847601748511330110044799691088954805276451829602794129791433929254152295754402985239958005963205274432977933159090795215643165507679707664683596471942791578839785372787018625259717088080912620952609779604197456258958301186435993184324500410606671762910273738854172633743392650795041646336114244548742508605393857838536920738770773991812852464653217477984925564826388394841326643466034443561778117218036516802983555381439941349872912311487535752687371722648017384992884761744502162344828504121002198611630945867680116646761336756998630535779707420024877894889624083068064473144716198461266660183277090508815231655391338723142347913339599540237965540190343018900338563005531272591655391660692568549719975060022117135443868143539550599062332706080870797957677791048597971347208924758439324350126536889265369468556472897905165719067925664064860182287160717429974516562480968603440390684660641729669638395947484886439759528218989359598147796773867249576389862954144443667270818148533460488579729902739072974732924353974958825392855304432140869819345586295228145000312676431856307405993458775906210667950176972831042740059272922956205939095808288993382669145041540461240597339732987028327320614563219906471274664928519285453241275674077263732197220573567375100527068714933515910891974029599740482026695935200383666127944614871540271393749345022178310424509855155201315906084925810354609127217506402446670099743614425816950994603365536976264590315596838973904172650840319445463053556018379070218406627205249406314272132328504821138642634578007593960328793351521645435777712183870195442706758067185207782659801850133866937789333153529453556300989382958285743684932884466349704702977183406864905064594845935347763353593166469475907789800842088598726937640672246343661780267981054090801686300823857637847182383668363171943382554730651814844230400927862287437185477143388163243386639923938902275261677461940047093445394770921997817659139799578453416911259893286622861151823337573926507105922062399051849505207828490054848499833375733974805262286872805162538898427354620184204108092631774976177993366055170843120937145420291361497871034918635258894006329692997898463320836127098271529647006837417368864286098082449447898862336712328541595172528282597090884413518893753484211183176264492427801055236722410009209470281820705653439161566284242972217498783225655585287814929857780721411573127974564703540279722310139533923776917745354990043387199101484170480594516106329820187971430580505165875492245638220576944744468784155909310860449631925592630846426615235926404814833195749837145806570781277092992396959930846017500671260011529602696941702531564043418588364315115498320311232999709085427159962042346718133308808057876270726160974387662165232542309126870391453469442898588142176590113124494054010799993468146582668822258152709847346057987969282763103332321578164875737988876470833039793468573773047990415843501432849454353712235501560430965018491789790120290111621430504665257786025300606648674434435100171806252102409118968860640219930432885362208709120662580591141291783859428287278421746355522859528753500732553542311905708063989635374037224847868426367836273586666720484267669050095595828228893483070211336035588679326071519856647482646240004337214724427095400721594356253783895412726181140919194188925830852052376474162117374438073679845628566768056662883635960250925086762448702787669844299006163614074632003650675794712659208040963117600443957216338975241665653808665161618988732930029408563771632467774471632570346594170911946679902622097376537856272881904605875308489501505820705594929611547581960983170910632499341972763277205053866874071730163002731207765951145428711450151375139510203227028891411710307177077494808278202087426646399808307644115963575259371502062628868456258430966568381433393839824147279014810189903811675579807828900912269071119217301468642308651335645067709289826430490191383593827164382024406973141285904124435287803779020342011688985128217594378444106695791435873830145747041971445275627940007142206575852585026215353388747947545510791244267157046726600601238594853939292712080659098552993714196941193451389282005526506635045273006135642752945012657538859910100925780150453440986538929307250408091113972527750037888211337445287209763555691870488978320252117450664372076606086441186490153212901641782987121745026286203334951862750151421135900278783533823929543506216132097180906714110453894457128525179148044394005909016345531594815526190941713417524636674260349458643468144762302501333171492300474054654197251519009129850389133234671872547677492607461125854827301124161424688556797839951153625069604792225297307008364266362012193692263130336898008491496103267218083503065673587085393987689675369321611909921034772514738195123939111054549125550294521529664532482666389720698311655689746187915073564683291588406455785793228839365422133824351444179880226621798090415382010302792645947009799365296686937485419087152483475919962980531546993847515447685775300658269379687987042723303641054228653895831899419608254722448923388013979674905377381155890599199828850987606622795659565322908963805326904078396994660836777397663956042770147729463332612378143078635297895823575267575534189889913991824526546511540786500907969819166724296179487438205452990884090381132743263942571079383900162649940865636729240720393443651106692169473439230781465862574983668340912933648324251194837252286540903813763825622674662634628950228997917432070265079051244992688928296367308173110990577664424864026953616769412691834301964877948945107933899091124884536587205859180547575015587160863005306941200165379603683120483648147560304072066725077852723190513937527102645810575980758790427621288759598896972544645454600261363589505663588505361606772797285712438362477337671691898207851842116891932301292966238924764894790216847651734109329042924897073138815576491893415457131644224490060356939917021380687417493318833751978051157306118025081612182037425771881957875689230337059175608334028005001873543763430009960775251492650883459815937391841956586591209892282541400298677606623122782449045926259825276287945874541871245882845907589964765454356659174007532108906822399311848949745014891964494891093562753057725379324286079789345859333962640753413256546456969620585869276921148053163315420405331715252001814089092344686811532399599091687102078688348591217734355692593661682944795912439012954668055650967055311890128216106169280315487295657810734691367198603031343133689711015512332003589641493824763897826639767167638178594075585679027540490918037367839593315637004546509028606124537979042920227373880143823985394713233950369881183764273215477048863182943793842859459581653811432940110287510837843628407947844648409925345970065656552015270933012325933991674107061411086629953028640570147141236048934758198898645950159239748062823115234285394188267550774324608745218339229414641990463770140367001687290624717577728811080527825937916796972262941173004735298984521373867520060753189019769888768554897468460099216643275392252018679148930651391953810632807314401077723025029644058627080787856079077442077646261531717593013767110623262052568134922619164565382376333686613259825787122516454836249258095715492221709378564879891816212642647080052643738427369304541426648760148236069491307612900136078989112592366640155209650512473009620470183215592391419242879477787634834735709317349057620404651651790100479128000267198394642527872467621972465409448764770107067615887200999179929987327456708045131268723349463929829619572297152702706090506019224972161353585798956592607283477475836023913618911889270504710049357701483203619562213667196594141382897407280523500151869724783181209561256193710997541309307064183161592247442408512747889837659358517239075602781075210241491258760313386999418085643947184798891688735309005516927013116486548980896459289387915116113153926990889096224116004055445847460554325900739643403447643513204028549373943130041388427760324125840521762598818526863824507062367943141518464838040123566690316660213955752022352704584678255157946717152246931753254003691677624776351466425442965460103701539639206299379499870652351611490409148280311770246762960509110695282734639394926510483313693410779293258217344213618125551353165601476225292272780214123732981724963851417807653717114912808255140057643255648460775939214057362224352152665932483114637963377639955259506362922863981512980927808748239186535036465583386034181972694368134566255490086446974387503512906297829557921819196453706459383639037985090077370973930856797509298054228288910782206026779366769656430052637680083793636656131207977901258970805677703773338195988686644504218596378628248642452143731302592399651535015332352501831339775257322260065301457068524010694794932873835104052131322267691974872820707472781366958886883610518110195302192536103283438452017669192430707391408016799914620626062635615415803768863065908319255031360562078281134100726783024812263909328841546802669039953420064853802209406937951111172034141912974895280694309189523264120712770168839360523375076325789157749415034100038220903199995711743822045093517306111953741554865023420317720957120465609264465684467200277256843848618303031232044562066581572318386800004830596461895118406191394457214616820975946693577790066365693640054973083071194853693509404001355459471112295100561537714915045847795531447121030425410380779462779055526625494479846649545299347560575868295802420434016455631051045156968857836340613995418397441334436349507820196871312707015020586774566129318151878015586097790436446122272296195403056409021389732561015193066754186746274256238066261732191335106646357046317423871359248739743915035114816123716524515002181014181660599183184859783069985667051875589753243033112949462929872201570892230396665752105949426839697575287206359109701894983716990434159647882511643928391111107031856358480202737736009514185594808283437886044004306742266981197476546969201332520243732081554205681510456132081033931835543657462302500792925207058622557087043044961967708871595940220506644089651632169221252237076513371797425989965045230224758242126460578557621078152048694954372868345994654697505772852340180469413163032013237370543406988519786090381619834581748259487547827202986154439299162323074879969213867217843812698428480739465749940265205962575599934383991355433855570881803823083093620609114289776948371899672749776511468957035615007978631710820576539843943339322828197940468649220711047986049760620751943042763721717434143234094361161964970070318313059739932808021771311907839635973247862816920041155191158977413168889569436904824481469112555525623306841908926486760744790215466202884077829987088173376536834120232598616085639264060355242178673007840531353614788369100736097797225983381903889882802300970330697710978402390586849965458187132132052617478016026294093936330121254500901023330440445689333531599401167186484052815792934056070695819564612311265559442980243225053722510632512431734251931567678204179910389841280659437047156968906364901067499041350807772709297420105783604570264784029542695835683157368581301306633594213389351640964869008774302550266435549812288720580514212645780893013029847987544550219130428454488738445791947011817653939907709135648417495706502877711404084246476769729913618583038787961587402223403557666124962676253251100113947237082656943445069765686606117722827715789662193591697563467653220942348270844501560523973065562216667361324654897943827003806463480010239830304641303152142669625876847806796533594553997405547847125371035339216827278768145774975241942951565118789925069561816327677361855304988890674263028875285652871520288012818097258661153744283552206899594269055711336309760761289691142626586377313375210251226982225936723896859712790009769480733879671256753844619824551577149145174134342029586025678859515684227974912645309559012018789784472109075562454886448454743418597751836590261556821862459747184541147078789673605965292895798954115484564744901415297522801780867431716884426913215892348014551613567989490796743870875550739437997542748917810619787610497263733989826789136951560781455570485866786000525650422765286057473484519442381036315809053739381948215437614785364506686114359939765053301222927764383628984949854073759266759511364294199972102648337754130294765702139544784983325330757930566751501950826429949371013514844563352860073945145218342832543741227698373531273320767849009131248460792987680425532697983173950603732820065905904823638718740792956549210778995171901990319754192010700804769648234958661028198208182306674028979221090426340459415276432075741353209103781541121932495061701307251535188792307444559922844975796493361821309687368973196773307461256483697696298150621702005341299500582533826121337031614956390691928753857419367029126771775807607199273771387293447205036927540509258710954711270711660902054240987753658408063403160821620827951755359211274602573956083348757113110665047664587261109445207241327671381757475545148074773769235240517188724442336095784661656373947896645573433633825798214718747363822642493690917707078678001287324149389226028079666070861098558592386788401531003040254894128784888635486067302513761525504682307202606299193525690721061564845608603070841448546242213505712656429534142683252348963346948055168226003668261149414860211770421553995182687978983780498585984821394666714752035828981205585672084013655044394496880601093544184405458907253977918156582436101419395047968817731091367738059011605888965773711319106757239093473499459070593637436029352097216872310727150635331322463476663071909142305782852536233850307132053577819044004174819093593477151728383055053852389401944889361785052835083932933523695942828277822855566263021182477858711578852080051575712544301779893975890987639959816261895151825418298766812567684836286028410966480055501606473644730093444074555726512710173937880313341455791432274148943595939240316017185766035564127985085959091231879747922177832820357656573331135297414628465692086706248453999067159895979052991305304423786636756703839235035517296819606427774957789673350697808712486482704882356716715657170227276543515863667075217893044686897453036544212514184219028710483516670345015660696945644922452547140084139518049992941619903613960945992221969726478578159343648249577124698727135422797320077169765066819233501990044702482994345014571619165712625157504327574558911105819877160709256374234202623989962793367049341128209663807025635738131133305854784797686616890690792633175045620054770631030714881040543879770182378474528587913954981230847713078359098876967875314341319683842014097239956852573446397635726394145594606148788576022102522391071358468166130578502996417461404089422561829222347324195291532496463390531979485710574219831615658153919647245485267882012113912762013525709892992466526717059976636787693468254855799502319373376860362140557879721798886097116914984048955370775591693485056108338895766883471130726700011592704482519371903168023647533113385245277777496953977620518364445703278378205580701052770471817314756627015979800667883223656746099124427806126269862947318453469110319061323840887805366801909950536421866779186241084100803158518188101055816821916066434503949109357790723740229956196420665027827366519794211390571472108033946180130956051593052355752544331745013979121867770316340177050735784089062604699759577722922662502607241868874351904563998265674873850268594691121814629053741866425648770598299046459056572951733667012557034273082565179839880475154857998970364182195493592047609855274134155457437920292431743612525531636548403144027195420843206267497665025975409753946283383052785611031209866590171657222150864083175522733522860769945345230992512958007637157605642202826881229720946190785175231043191463169468628486662397432771836963275443352998616181310021020443104449015913778598460717624608855838243702002190687954474112242335424191908618119737859941084001988856543992484358795093801386259566094394768249070928191456438147785548993937011240580664587218178816149562317284973863753933388160751797007470725422098358971509526186622928653981602456199280603992677792100591623941159081888595915425846672760909764798536436183107733696330835640794574506334337879868679362775981146546127845089556789136947036787554423017115874454841760921887474795061881522859865995801736951978757905373452772508182243784604722260019128616365309164462692701033639680953209615843972804282171683168190132074205393676508739724176813091937968527445454054177094467442110027338869937614305665691436324306313885609158486026976177183373348059937842113312892370328860118572025504182393964953987121749083940797028601636049310382661748706783307456494098013345495473868799987215693716498221818771908186875590630674057737176717746029465626216173813781242541776576369102406683235030040839316179508088953218024155133363784036233157059134779490720464839021976525447120247902784960300146584447730019471703925237351574231726338171613874074843537531778046561143167830967872419342983609866553800220982944581441812954942624980903123251859154333358383755519143718207983263560741274818179616391347942531278723010560958711972585192500119767950716844513632626874239939108246754158313951407215253874583881995762983571642248071970458394052540258675209015167981740166524255701245173708329658697103601877846160558823798950930821368532638795267214636542137944861694923457694719032490723143871692371768091710998981078810538900213301209970307066822547610047155347074428268407180584368484664576260483162190950890517290535654790627091819792738499418258121996986049424958181327533750909187752426581023372813289357331906594066189189175691674981574970617466311371602997605879902718022868699696485307058862206331467425353935443627243134366873915430497829546738799798210963693018983251321369676499471696627477475898871582883018744388510283203365862638025567221376862588168024575009238353624013285328145583747626938013160132097235866463634332849351902605815579488914233392386010114249313664493205953491085324010640730950563629730833248326691913066844607867013876991986375647723686525678445438591458574095480719119538423768646772562416028818121778062209326415007061593235871973038822938399148785781345264385663623099303646660184277069970698675998706091395661143968368748665707962036976595447888904282245331681599371655151412939803353848032975532731772768349141187244667153263435449544902653524664899025695097626209543720572122315437456189669054526302179677600735639100852799652997326163437931920940248303080719437611211553949996346561873268042867997475844223290102529114920893081509839004880257102417126678087584113085832740366966771276099507926735629358281162228823144527771663665026677579744722515269637712019903462021308326537199871562371270894570876263994737290361298167076103163606922272175440203962413258665973212047098674828464934132894552350624070211834219525185779989822747076139091054695880671817328710633064132308545853103541911744192218392628260424022500887628392633924466136626225457343388597713453098926679833573364264730852807820837496669369438444221422520621887555901867246240039968568835550201335415260440611463882211343219406253329967854210942207479035685028021791944573703908384711184801021074529669937293130231861754799599969386482063549682092407493557701707267944903501498850321625135427264129499842446537543964121995577373037842287497205372750877762324529651827062290273813456439966191660776096109059688903088891898693776481482329364197032516863198544985532277895501198508732400296471694292433206311912826518715470526058516824692847445999218094391079912180377899097530960550614040575983694556801259357727614652416203860031596479758589900564034817815176968109234168439822500307842045653258715728131722266244649056343070462352731605688629410857492943656901933276845794547888840547015098241233102817487246108964045392021795550536386951207152208719275760813862291467706167707446408266434564224237857961676088863999060779768531563025249831632879718266721195824042610398956167336814404423880328542510392955524837268544755771300899444428714877330793604940728481533627043486118158461038978774936743405137102202834640451414599336818541249922219132390726211933947727238730794348581709326229140639807378866606603910631776129450301990842246418682914072350115499352455602456738409192869015459331801399861969484437056371945168730918538250396729470995024545824436340485495968337460605443143854533605655069795753096424630983680270251690259656443526137910391312833986014970560684529650439218362880134833419316649031007979677416666841682335517128653136867599954681822602727383059436653558907178275434666315094075646453233182428067972014383694942287791623344634371840330377531568980849649369176700285898731927998639431046433924992902116785071065692756968768819585512992801944028229230172125288661197935014060451992759976459095280960338204321047966032611696844485207103177803619824272310839863223230140893244421932128859825323094226747984306463043125018856548983536932938127615600618343378438343849820057142511019064882010351791026525662854243902494188978907549338470738804593625775890006832821243286403908175236428591971879819591456038460395727537173312166234714985335447060682024231371213164288933614423570885508870868250119449820627362470666521098875698567344347025639566093720139034626314233993280082772450859897300650233661905451723767260102344211667183336607905435637540638126432992748228553353251084336619730366902089299584465787851856143035735905204060697796358607021549358428234074657312275060256564823948167280679264437925158675316749309530517146586822666202603979756861938793500653581418431006742369524660849031652961098818081450755092375611016719072569737431506917226438631603177047320990578255224799615448120908061352930912362591120141251054526213989035005380993042657726121579769004909288796917342831350178684186007857263549324525656514687995312912624605457143471224815616050602403493352908137767132421382866948199962251363369190450030859189861587503703128601995784135962580730460764343373009698164246136183584997275900126061139646918544310569893531065228760060086143206918136711590246577396789018094444579360990001086832416876017431017826520970735177913614194175109096486512790328658915353265200301610073266150421100556814733496038443618608454107369992475650769542948831756768953212847574488937395359099583816413701002173511763000021580459379029371424640002535132655749918491264250577739600984919709346722924402528000938721745426375410042958664551812245913101571288100010774774070398970695193561399142030177336406870025656242652580464945878135126348572883759129631527945910685446994714522416271871287284754969063166794449202252816585052565163464781944982994869637995340607884133247331979562015392440988981040328489032269301323678590899748737544593261007134426105277828227698150657207547272332641369640312680431790527848881405294241648747463188477179757035450294645376344135269263794708425960692876279986849408132527043779660858031872619579474707003383315470899238319026441850964931449292307734193301683519256281877802967804055251259400726694353717433088629528231939111840024010860705390603828404576643055172342243402340097531234348347659095546907532112444816646717284697316755183280279846592008606515335187014968736391420420078187347697989687159908172815510281579767195476689352117831365854806318337808647408866750814902540572496396666410488034786446726087073363388618603612950366537087339401421145041476692353684703125482196906167351976668851160876668567255112962142317345013190755083763796814820596823105948977471293331901536121641385216886382133278766090036244571391854917837036258619242304295114780671163858056756647441014704317300135665658371939283441505387802492305553377606238514284147059753275717331335369485689703457329946897142751748986578889977816855817804015404376813084054098634035379097452277448396085816713454096570384742739824578955133334301867961603970012002386094535630706950506387402829976429107108058606609302693682819857649094275672421018975982157194676892926786575283779694865786438991428202781016355418838143200889677968504819110450983531384264653638507027537086595728036317707380757696757965575987510495474558813760743961458825930694192260777148300594188806050109565763592726874564346302011892466834249279595146357358742828044637177501453519419604398950713640085719625203169238279175598007690301235247784860766656090221565046964895273493791501533276146540013017830073944659755704094662268718286736446663058399107763550891762133411662831472044343745783094399695446962915440684323764520210848207302889592005274518079593231372318669132151245125425835105979858804073867757124000235302922460915572708274261624411502120079076653879862868330859756444969727877917645163062356750447493145324138163958695384647929709445951290802150373702624285074197923394499933551446678046888423462485064601760576477800707525387743602780442863975374399503570983454772403375596703253013247789409487004950819319728157573870957535129953984340250955183984217905107649993726758191520662117971912001338993371934633751244160560992061936659836643025409360293849760578571691706783110096183189134423179005654405637592669775771666730889080935507609114617470360017935013720609888307671387694691316886197267000262859034005704808806109681554411940046489835819262973874027316917974504218689414897177351927048837681375463801822820693380161095896740013365693719557417387560105448526798144870002951457276266602897063549481080677369356480928955786135159866919362449685379738723974334771450878354434637801328431737319517942414749601316333787997123173489404648801925281368923311554850439432634924587209285707331372907722813742702206485908390894796956155803094739844782311724717676090873236508735835065850996348421574137628409165659651117672088104108546973148377715814151841489042981513923076325998612170182512291162042918501232088016930650874954444517384462949265825438010815373275542231150509797358868842906114869379510859432973072518168626349224112597738468606772769457958100261744712919378523562181070649458272909463575113437065291818292810114485973270525773694001789312007786614325432614078722788916059838820423157366886879995170184392137881966374100493339554198011399786033005162128090894043985700883777052483131175120619489372011435504525547645393910938537299461563338245146050953760956560968170355290060023243250299692543567566482076664765643914768879045332191970057249749679968224065147077872099194012820286958104893749031436658282390536220281573885880336680244758175848582979079325959820491230732812990164416148520339599143028117689830993929471186460207410011958820457168280126093318940956341135589567224622362763243753928141055502808410883396163951297429109903952741106922569821343842682674488488212727485555588886747581437546484392653446595078492419987728807864284001964355416781114538855664630433787485103579358080083077829086310506391650673522841258328121289370186185565399532775871686329183949215363187688329677114397330869789088541907443256846750060348044954680238748800317571150498670525761942255917985163789489424839518822876365687615428143681120855094468760580464266105999904067721910290076218742267762303436429671233232221485362596253802077471174490051167647563088295794301876068602052257850572772513669845012819611670511723225227820963352333327160194273903478971540550944363521263738796146132425484505417097253649175033728464555898755081139817511483539671674622172351764507841937199697137310099398699036505947210038324538356025755429113209265932807892034919275052700488737043659832184418580678647822192885554534200505369298271646110648162288949811017525140417786734838988234686841862013657315867176833658338209259953398794628353746774487229668103870589538506484241869766025402623744887897118869270759264049566433461424484454666503576077398334692229332703715207995375122035485235858803847095283586776504142293362951452748831390025799553341742206065329151477518900224255647989411269765469892446205401603782807920946723303358556261552704298494259281398667327499301041470508276716727787263143057449100498919978606621716091967155321808459298801408204239262903581338212517349832064022415602966299216126046965538005958255013811032410470215091239020562867122401195216394240965383238579405205646216811946640865959294510198583751347676899286294469732620000256615838778750292484896802855101201020284836500827647082397508887710073748517155312440132824923171273733728797622926145694407680387836298544473327030392514814686464759346404241093228537372712302335038284744881905992355230560566981999437596210111442779188827982489999314825992059072909367964454475606478986073708959954740434587900560278697876150623830356687644876067858807761933047386562131827684153272414752762274789414852767644679006745923312475495537418285841888113122977623409566785793278816659105928642578592240217412168340467244038932464264491834345515857815639910672248306907520496289890666773350869129926999291851187459029605782825884138170339942864623066148948816254447182260894459926329880602858305639801556963449952917538974514133552974749894162210931868973655254978502296404225800561241130818648463086761280158698055125755626068530802017148372217230526380363475699705146759215744647093659043221076449186067055930006944572980374721479095298623900637600812646884516655817533009888973534324719536496100324960604449546038083460098868636651240529644048534251049064865359111253605659108405928038665727634885827418238230149271774894842068063470000853272359888622203612466173628610527005464741881290724529843331651105419838574194300462843675127953376544888731204156583367995405470222313174547569595925002380445069711573443371645245645265651589961149940686397101850656769740722191584695574419582058994656311346192175316903257432279524545673070713517798015283110808949880607975560517741368467449150556547558775625753998880345792681154128600843637591084085770480283686397455899289406847010942487055575156131471800699466353211833430109477646824588682227982432671269639365925558079040312125626164885767187041411658929429194903896170926486765899536005073838258721017694143958025366832531862642290124264995363458540186862721763696987311563783558382435375820186007330938657029463441476596893468213964075453331127531442604458141404433525606689077160614605391974483201352554898383336688553934736465290048942452493390111263154741341849612552039952899453786232683331465344981997550745469568524371341824374703653819230528344554770068999600807024392685234477431356859550052013342594531120533622695543365591752942969019675832602620544058832444832834959050902821238019415011873943776782518627836535961468377279174901108468464004268043837972517208267510468718541686694712940766424249669616668282963444671842429077247382273520318012800357303613566367910433510883897375154044290407661846938398631934172201739510632769891979344258924263448516883057650711541216161910051900172732725329502509455212695520016737112932603176899656526998836980009843665693117126700796810586258720396310250881469365619742332566575267788845490109988295660762572843804663658421327963798481328058018367660248991194223364817855845016008635082540943089769931397612990082866362025246641582109373650487596969186309338303857030753158881302609285717334067927593372639795248286308549911566134474087068763517163480036705164564560993688959303784475887982374568830587477838942445886807272363784401605684059602523489280364928067194764418243764001061092942023472887445329031363184753233011432501008675418578543750536730459725253895055756215507430449225435456608359552932520955339150365392100840483107273978008820642056803662334027656815304238584964131026658039141254499698340579419193213372842820680798777882689129017026126518379889894283959698627263488417384755995405762324167832691247424835081495473191921579322611846910821605060323624238569680043241621710571248413052753860851204672014781160815772190176201583011924277886684993420947994944374546171595845425656717463196655270916811190709100258464097136476380047901897503759807584206391480766792402516173858619348621963624551799041725595080336041283946363326093036499574271023921400153643748126997103610176659743977053815787356983300957840427552151862249133591882177842893172053155184390722229413376107069401014204871462519633032271941016248950536263527766215394609022580364821053656549301755851988489533880253390961137503639044007185525853838046372202864256490501262550711755645317601367948054241083494417007952853330833509836079284318205664869768822921066826965043353903582510412946312421501398074594747193576604906490164270035374145774973735140727832948317464855428765652151234959475277765205922413144886954692161577854294461084791787895764318075550057731536409728614445486791607737650296533599111736900952399935807671326878140286508640557172187125340025439394557837372536597193387158565678634416114330339869954269202359821378525041384192717897658921886321777674091610876061836140557127820144832482023400447185373230133038011207912706842949310160002436552569904318593654689966921747707620508440006547941860017743452180750125250877258711296131411773153935819815824551879021193134681761856841041177277471185113213391219065255477271159426663864044755654544211583557290637982541683814545511215468921576229740324104109868659300223973562354694278014790662933358654360576830647089515222254706460209801717085094099228003622371887125179787133091219456603309874816986092575777600554800000522068356515285768680003772393439846643408933511679640826692772795903406315247787628600863062690045676525820661941212864110524838604223187868163777939443909330690946130963500965227216452326795447480870705916331954783297745035009947048386288053338864912926682620520087956091592703802780729390890202397263317293509330927468956998053508247186778130979361982837277315583948816862588345504916560694720811398107039061872569763418138872076109564174619881882249086883967125371236950478008066265837801734385081376718952143112441115170633628245809592376600946433249087724500370884341441529183883111551352853144493709017579905323187525214528320596637959905055252282646543819585555835840209794847991079600677398348627907233045937668167962724305701808774940199136967307969832404926365150526607879078037649843484800875330626747426450058620924993049670442728816437236946332428165015352840642382931512759104255544290775490276058686220720160788477821367453216896455851763184406755370575992622969102445028111596975749050991457015063481685619896811646720711563437835399754496641376600821684903015848720977921424874370815206588450563641100395842770543928977825708074137257390220478406418491863117856200112831402447609548938919998094630269846162499656376891158774302333488260989009865215208358874337884029310155025633227377188188955335640955993507542723847123864704596890889703575569180696641579967443938264575039318395826484585000979201651211116150292645181368868163931679403728561513760936371670585398051483408866184273974558504787223818079412859242198202773185830575168185975591106273031233166615668373215017098354697434655223090264352459659096358629790185319321375793256950392198429719382920762662933572123659163798798841455647541361873958124395270890773182299016685947003805321005089246742469247720212333280356104341482315503274080989458816196839200158258120805746155723672584919507626966271203034030285125632449778394487787004885346058728020664863245457740823541415320271518817387062883284482116353486861855246108206531039821353312344076551548235859944288619541107972151787564905386227331010331577701359180474430423822596249522965983637946940352083188234544584820755833668016863390846768271441909436579027452746510536347216751537427514681893972030369992792861928728421669510001492918022815711466368711900572188418891648533131097544653235116367357164231828759004882802688838313833603408877592833222775017623077669019428681038850852831734998666171898316619919633170052113337685148538430080457995907071317374107548868312969035039462955095063225333214564667868122598580704580202651889307812027394876344041554194867010609583401887241281183515757967319719758405373572288346669955223312996313129725062010808879695415913351770879234665225792564510397027195482893049422104085680823982899221718345192315909578928533927960021964418746860662594329359508190457058271539969986300160850179567369844093396658749700883886720440402625610199130239570709048158842686985322198577145355046910604299000467516455493186617159016567556387326937902524525133302222076181110053151812583161247138713142953889963396654905506375340047534849250563111622070607715712152416663224271676779413209768955926041340166559361051378176289597381566197596755575104705931094800242384037336770069230179196875781601913363463113045355577720580123853037491262246989039269235158648170753220698501239251466571444926077218366441954952695430948599000202193479508784520793448159291418643667139970610411771244011439414984584226819536934367972372508700749199751130176380831109668605197718425297060467415638112767017815383381086908146182697192205602565115422740018124669140302844775127207917559599038727187206784176936745981277411907022370581167584693994227704156214516073007627862960818205221515417709631929281262771617840634944942455421358348188940607002191539514729591681869220114066117380617763766753875194462447338207596045005144526044952179974623476163490540990891652584786371906257545718802794918070491756760796128300223525543736975442516772235143741777461706914280440451264382130752842247224569478742706309579632550258679312900632955892861955332614482642005098036598868882743728065201630705302645681241435968995084129268934351787754845197296555607927535321388367826612352412442391205724152754257320982667125428779702603821929005973325367142230659695762821938297279664352260341323480354559183871459926028836736180883351592069840109030830096494916503787888040585353696035798209798733470045507370572124771776297498058727017061806025134256399244315604256130652703587279785482858098470061531024944590354226869116675299607931126438735807223252295238822078343131361021170217856430798737659844146265742391292324861423524958899049826711754360559223357301783277687459202194465179073688992336687821684671008603135749633169844316307442075646937554177259851039249518138120637623694234410446058040408081823734353201111602313541155384334869063053532855141387485451154218573493386115699505567138609458323460297151998965027143267778439084239617375035447619015062102894904768931078291885635581403776887006186352471015947936271708880753677028939873757371269922598966253107774872637356810312423722615727397076324479617629512975116376865875616423428580127364249393238168833992119287880680039016967184055065015124760268461500462394552108502083397424661866376186837963588993828299739310931566737699857104925061757173227057449302173343951149602752629313275859460934682576046839129638507219527637612775730552029265972054098879415363277434458976684813185331487492185375509361707811059287283544541977511377169982911357959756136410750363316897471617421093670388988618373593215826827397027425012795997943569281622861637980475640571583878161861183359542239650887879045401984190996951093313386542184915327048855287147879931644357286300830702510558319396008465113806953535713269945241592272490113858516288099138959903036705716310455347589858538093724079756704432586742429625580938718399161227659456774520493997660987810746330323598207189227332788849330803322160433815129581951863857267577287342714556573969743146094647868075620293131951355734161641706668740929312208202974362924397544847699637086993203005093190930155378623506163906480099567603535406028338921753142838558039817369628980327604536064012530667247096120802517753023705087047144444641483149211576391101790322795777677617940309390312100757513279789228525586446665622377209251189416188920849525721512232157283786690877000615117234214151080636670188715662848217689382675611872414508291201619323017964476356002020925264497937123831354117762249240516657646729054083250776614638844266690799281652122965007536255839101456433591927842784982443782586307010309933272801644472458320897644783287153312809872120114455581171958309381594963472888746798587779127587014999557920200280964185387554991668768638409351932502357666202099890219961296083599635313222678564036864596974918914837100792787423426604580783885182937551877566901595631991064106060978465531859760608412098817891158650131179186806760400403468864527906898246004331404769123242213329638025309693439123930612084810849706175832233535664476181678665931604068466446175089134530629386666798211506292530861468794341553026993934660606951217512417416190505746582319979594554932013526775065443921721014180696055871844619866171472329629301278323362632438883907317184116673312412642884961616539354322681654080666865851997862964068496605083998427146466629704004681525270469513748951221353590473091677825152436050218783755992547289945360684851066135508391851644251503037105879048656604849002740291428297013238342528035949226292091657679317007761020866541150324046272984188080830351491643152692739175539894723404951543276305575150411285719869779790071614713991768845411473917303139759648045134323381934679963149034475223425069206143439487564325421250047763019313734845459524424167426092619778026946595909580736256237153343195179755369721365581142044985854179261343469113884715270475284668243714744489324898212665565826867892149123861581151628807558866265034804472291340242262806568710198847580724299647375157999205216569655729900844513401783091407030422805825427834863097755354490453138432545750694023814519978334489673008971762082019995870057929240818544081379058803895422379701647038339953446033625884388744401074366411486882222138221473742382209604416084488784593008686438865279707119117421927098383009623442616532842241434369992490609421738023261649807557827581332041415669297487964086955427850035123799360321323617789085940245332662564703853636749647784795729702449171314244107030892788983483522837993585860063510070033643101970911409613723691381353554547118112113707116370370620299976851018668557563800427388444757052380447620739718560234971650429088874446359131989124619100249361361903483050634213257890055113833204930520888569839861134830566611401434378038819552569355407131103523265357455914500595185513387645825386521557499527278438282643246514477170248068080654199495181824871880240649721429597117952642902066145039181175213073517293800092038938190960252091479306395434133504715230783372605567277653088445031134972830627142816303107329903142000119437619495118013435422580569192272645404625345834762010855930880763670370327481134371422442682759020167224106410419883975697015182316197134256626271694244363574487969735525056598984513879946973360544100828586717929263624740586596107999668816747546627463322643982329923287878241139870354165596830952832174931810939142526105922119712257817760814554642180058895325618366801738668631503387428577253137094836205185510865712401353399936342009983370812572273937155452711265666293997845368983180689487408498140087597474141415377819116852414134322262500841153572907040643744602668238606153662093821214871310517580560054605133277069894960732304894994338702480439799398079582408735936483640826379042435303446575498108145475333544021972450731234667629753029538699021664531084567308156076040454069229753056608289521391219240708428843312307570687741037797627753301698221983130754215162834940018323503504640643886197259822469855395921992648234524958448296994902861218875579546921959553375364857161809758118090490386595204795286151034088754051342660126755372843883395494147842919472063916419622057978806187494045108440526877300376353956460675270240801131176418905228476312558999109977891056626487749498486693672365218691559858012669770439514120290066457646826231498908005247949616601669514467588716581376174418766064243040604583082857712915602892889125144034307649019623309855924699413128618606343123740011427217505646929298705768702395475042334581341479522642619993305755689639190481661401729431475567308167281935291415210417566355008422082832226341846259635715088941085158808314185558568506158745557048207696783452171342729978994126714172936557146081198603013618603344461369766314695769547196129945861948382648624522382186757725150242584987023041209200434725346937006322256253185591225380096648021608106498839343085721761183325786167775742789710738065178530588529765966179238662911691442614185445768115102126255050893039894934279832810224201474828597577144110119134681370261089855256925232337188464725618352638770968463198036252711586500206332653623031821709648726230708660700921168200610800320118831220609073594163002735181195802365887593408474165122388901163884155640979270002708446558140977712941438761444137700917356498692698823723936631011220928824904055567200800215396466462968372837873182058938683811890291394045643069462800826246167556401690269931232872597145363657634573992740336668406610294250785213479168284473673370206455208386671387510731008166618531623832242055655965534750660209423716299112653929916180587398992303280192767939132671236687210204257926530248751598400687660981607931511105987566515673634866594205029196960996011724013938755798902427584520274204153803371342982084875503286672336609952004732204061660300291827646945262952220613443984726554806661219410429957450119547100184508263170347364720799111934540631716722652835336100435908183907493054852732096222517660735290611691379440223227268742920121644703410112021441267677774035068457017715785946570844471453411169779289447874449834703275290268015189768185232324162883566315120795804899988809295211400222023968531313980165850240939696715473312875156208296108578525354470459637203837280654485715743491265577924472795362923876378082361828663254623310753648406713027430990317457131702727044716506397810270070604593410441372273489159793670851149768467822873847946039804480086849735609349707582892672355600669303715798956189245940572959563098281421551991357934840449357737823051377943268570954646464086153198780639243739951606665163860726308586528003028935549274038779288049158859905750051671544289472711629131732289323951918816262976181968891528521350306602397948157215085492950132732950813010102154022278623205327425029808574718589843299680896465916608980886779631883218361181454945662404260393067646361943964156100044375214099023822625170427822435063321598661824608123848175533911415044891838011920213670882160703757368973371707260746403022905293686880474849556678769513949580084606744126294116120935695507892625877171550970988241758003125830121412636015410370148536539192483728491273362114042773470758711016972304955842291648437733390483000533195335494954147461000347620168308936024378898163243969833760406282460998206661083923289184269067723205870645743862984644374842186526412109350110744301292609528091915866615870299922861109109098440095801931852643077989314381083747575221496300476035378549096206937617837758545961470481739515090160410914370082056465122931046595708350187358440441801236751339522986605493216482242368274961135241861981798600559287629439864168183037228767680861253987396252551715096300664811030514204051536271278994030619800589031277210207829299638636333170440532098654853895326942423763519095011876527500565129570792033459580001952071429061916079689248181477047394157459824035981568378741704366613540883565427949864752779212247856627824265332121881063643676968721174175800135317404788502512787134665578558942747032271854004709464903827328616600010793771179673302129919738797243337254629719345238246633668575993063431414603199645334449602774402283515901766403513240433309582391032647959038525351479247061765529505805489810774481107750481089080276495578524509332011650318156044665407367229082980929142791972318030311703929439837800387629158109010700918360645445451059212455124941095735650935974356277713289329515711565014687706819225270298491010042175030886104718939375356576890402202202702197813768504261762344053058390010788992403736713058842259471830139306997748066148744159555375920979021725430049476195173889792158487787141822190963952591760920734113092997314369953344456187481662675032203796358689053993954057024114985027751961345224972203488218740343790165757332592684069021722242543945606307024683965118444574339168152984050225287505799002825614491410023296758537891412090678274048969196461034644847077464258294495057595800097495208419379633748018139089732879806187291878923048201163709320882029055678036786392640320903538623778857733041702777030945208242145985934837230673385672462032500697293766062130011944378533411892160743237945741653957858894995961212982449244725410392616233702627943854488608837219853233383825842528955575549904537631079278543846761890735265192218745459453160657884002865842698099093016876788406229207300209533658697539450871420081913012832055479099296033863745322211837923136817580997871401626955923150093626395891957662296096612971812617765411537666799641374205460060813734905751076545529200505582182112300074815043403176552068480813277787466295727731180422716163771209967150840468455955281575531021515202415328360086835577974755331651769913970513563415947476085238991977638842060809163411992001564623286739902408983510166009543497497680068270873644016808749850807446545828510881012545700810294898181654644577030842188520441058821545175109210989033266186637264880138005245311459548254086434289627524645391701824915274033056531057954893395224206650687349765280615371362948217352452199224434191278021085849706303890178314687328253577225354523899356360466797987745443925451517628918168810921954138336558690198360728279909376535566049568569310743461794227464915485258860721348240470523627504767764042889297377552118365983824591923750386359143341947604084195064694614498323395366759185136879264552197993899056985082926010119167450901283772399799736385304939626689666086998143176145087332747017129053386752044917101409117635152138054044616672619355425945828767808547284321096331910383443978638599432394709699576495986442518333432981197305661409972788244355340895375448032416353318016042215903956869905859453422987161383359134211582763844140692200332391902959399576248148087332327008066529121283898382073243266718102426220657211841266447014949734903124232809210285545439920027421711318172680325750003671025237022374196392982384727243116753688734960153111641714483993786642236752403056487432592528346086023441157527427565398470747325203960157293857122370316694039158813177050927081038371115827818593187712017943670103172683720748007159444406732352779029122820542013173655183666555188317026599395630526128596446007418549021142606142018237825015295944411043492347081096431880671705658759652351133749422914858320492385281753250001893243915441152291211476419118859541952289755115977048366104578647124556342014739797614794863553768840258862386283769865946096781301465783039094698904748228256588041796484163985863238007214594177279725348303946710571618650127390872949396143578530818646177489206540069954207571175531550959460321081209931392988271737642698506824847997537631295180846188530412667009588205191177106106322404277076149018283511700740466509838691260985485762025990405480979166305072386676428069532176559444920282310219284914860537113521611835059897388449180995692215293013110269622476070790653170553935970601689952205875810245731819012573792031262817706290724136383849017484938389072346001474286654998407858605571125698727308510855688372200556371466051158711584016363969832484668027867251286836408266208354410455264661352768151052640932337953334459750977108926189509716307086949996314927354560143946871530576155198846720873621271315568071498733687345258723104475300251444608738126133440614280198902484314916896440598463484668794749072105316495473237008166517917190139864207474750114812734895818510847234433770840621730122369624273778496035873183049893263133264920383915168056092192534585168087961983505447068878986149001697563300618019944044298518720460158019277322805776963470006275280166760472358829700766451850069949600309895906067759523947425771353555748400114070094526330406581553789180033797324667575581202348806311017939401296177512043441498089356739932858366903450280079393598989012546614587997028999296224425799293149337831173095035393791965054493738291365328453798748834109735113283452712323155395071614525563171195826271120421060400478247230071749311398051784182927360345338805174306629670405320820833505670895077280790863381395905924427754165323737669004338039778810973303565136740784465062215208013009958522663388709074145163971534699433165985563613252355642332084247890986498112709961548486662249949836492347056956573146221777009088850897552894178222185578792983337009444463849630883396107747672528686843083929908644488728239292267995638730454286420574022292726903834187983163270277937820397169482202465959423171010176613992509815323678338389367666177037245632809479180962390532695766646611318782218577953171664331922835799818759733176932316081057827995249078113347296196683272760564529267663588351293163944522445150494076992501424359028823069615457136807758679700426110984450834365140672860124194200560340654526684858708338771570074235437980702467842819281716660413242186961504433357320922605221945691784879072595141374140868578502812314382384191496184991317689947723662742273557184619812460828438166408362932090054747668227803578467034913738011918187948204922565181071155566593140390702358524561906836541400881588603759666064594950241620920502153591062755494751734651238046324845223486520603460293369267418472184037239602357391714600119024338099493132012344466821490203939042395975508017040877277035092446893907947024121073483925578577998412597623764939462610901995733208820500899386582351249482608371626272017043325664268981541439286365729195145224518887410643956751013702117206718630842877589626727706832641940665528381256994837756782518802066839578531633295638043946301908963306633133631298668902251016612162118431450200332569881117591323363180147835661388413394830629830646904462415917549414899848862841142719710690655755816890014938121784611731247922662052037914227140112235040702806303978146474888011222938176228553673708087020893099527114395139773815074079646076295548601583074581383122074925383507071475332893466304873108876119929025896059385265458330487334329232337892397494594559461141086788272349076213621578208353045924131436809069509058166178414748834348265450100548812131759177132610548682941488187834926368205948683280716135319215287983116933768192571501389820883732209128355413585483346206104827317888396389462274137719808673691843701697421945645779109014121472428337420484269568996451779392203460723052035170045235648714285319044126290257451056907241920541010689950552294631864711198473708878848118407256057191224234515692558869529965611360379134934579794598907914985549093494247258918226523615979597230717500528085941998140448684306194552432119461021746598347157223512585291854020384718153352409769455439412569661563705231939966161738633235015959917123900918781991607599144394217931893966236320176953102894603528821686456327108823011869385072861721628825841919965912577510092105919315393462745905895626198574506008295722819093348578389698189781806497762642730245845556528321343419563747073523838629207808776853781323017256840536995210619993719481257053168948600949685924826202744511234867581569375785217244020375203414876989697791156582201567410837881885678919654830948625626387607517334847866500037385920150560116586831416236877053148933974630510219851294523471178836918052974915308772791504122814915849361792531377756003143769073186890423764562760449202872409106756327183911796738135895905030169949592311100760443667350622147724180654333227537730706564042598377463155694347409323844177387238652181510475984102394403200935661928503867295635246509611930336292970379685828840371765657278377788253228334221052229158838676632145125314874302622406727405363675621801884341815855136582997893106681334531264175377961621130795532671160414886439357576877982657423821737944462091137894048443746614037132431751684190763529879702298139243078453774796801087086216768235088001970128777811967847170358004047720340366328450214120686318380221384924368660782171140557815737593549886213069420677207602834082544046281862105189501688169130132261366400698249281088080750214198506063026459057667551176339416084851860211817659655805111714827422248070433208616778085752338311126782172234289138994894193272669224230986264668547814640802254365066807788469711457736136953371824997844526387834384738488071564254893994256979656260706253629690520370836197378967960834425100646962362761852772939484909162728101722230445570051045523723180951212409285823553552157905217539121828782419875198095501156334892343427820309281760231457866154790339705463549143074868037108829406769588027459252910182725010562595830794504469282280037660070356683751311068841901544388675433487559152381933222699551485325648378407019942706082341402423362197029989087401991492960947244195669895968455547515459254097306879740380768700066098961043225873690238418219685659298643048278001466848167150082262778625376853112917860551292253381289813414376081868936513993963993653816239647273882272372782161486580898468781982941296125127547463692662557225378119511181137589954463919775712220959268932225282155575054619258783207711608501727619984982144296600494374810880161010989452890929753211022827776575874531643205230050575527783484589861790795870308835679819605377327997073772643283375273672895760786929569873780850104787586452147545948489034566709045800832648823505976762377251077209219350855955334617894917505272273695548197242298174629059152837354409681614006891366145495880858612543983202658366620276864504087845271070254871408523206348972522180387023762564118660767555822414172111243889732081484135464423654057172907544778169902928865245642647930274499337746308273451194781554268333476651329136189544687305257077028494852689089993131947029609975599020837788600310763031325179309996974699649061894352136782551436998200040617310757759959121929716336970061182125865319307561801712687319662260988092733305506445056808801361583787029503127407445696543148175639747319755042480861397234420035007618811184496708757064796190437350501738130836469330866453736322630780977384912518576465597926910073616351850450341624868436556269484800729429902969735312997806543834842053341470473256318138756887084479098149290378910847478369273416093203178744788760677191992589709635334774991255658404309803134013818383104212258437346856143173855181474714817861766180913347878281554704012441985740081544948016391488464720658673493925414604165832018002979306349453791202093413495032864302053501419299509058435421237319246220771562537507097209080814779542285697084988277710881255460165389999486309426368111457632505855541262824064698633189753123246146558729354927239052038332592311545479398232811789479199746807631158558207270461532737725278116159190996777889309858783821068220536564884633394260510047988481939600294445116358588124151605152532028572258286035855509881918903606392208414077831060115324718629512531794313288118288967296711757764875637697469791378768339639496613241332566239506065582428332596762237133324912699414770503267365591036931340249105006356133788530393725463597372171450622945027544337880711489661085968872109832295433874085746755576888362587950826170519804784026874519152577302550290424697261312413387721061712945713657344822545152849552278883143212246423978437311325623199429682841781075298027569572909204320451574188236470719118607754872823671993456812299951262172289373242710707714643920804371989572876761438051218170995750591332721220399945390503347077050060775321009161687544050709672901468122782020025869761885190227117835601829998559708224734460818748600812714068370226231328063263485987630894502548198818096753864055570495972866486719302757141710174786025774608055952543371337626764458740601534462007113016199707296266776563350485947360912406601364816700434223874819757164202967266458563585663503350414392031497934063804219480886220633544918381212427628804424647955475446415901519951771637343358357356463184974146297544563050112291288431752224840186825148173650717167682985325731420200364557751122677966877039238821088776787589910295045093707612119325896432954928908489708765379334392342213595911890506516845229782225169427880995094369285240557510744319686639116906627293802742498919247035832002998358544014128517613447539193665939621876868122452258392757676540898101425973707817295269899385765421973478407757866609172187715984236809362872007766578526741681938154390202935880513791854548255448116601996542503581268962467018514483570796585568766791731380489338470508781029907902557331735474372120604684397735599005130430351557580607390940084289597087933321091208689358193844735983360548265540466294601936580222935074835653270535176339225018426943941759434037637550273775580804166322051983728419940872001787460973747807671103351577985287901001483746263711838061653856648985784264748877116760642272280634706253575149785543772792755901265063019532658307398832737385641615438200184082725059545960143293708123816102765280060980442598048213515695342451240942135450667085424241155359059546825409449043399903217288625636808977345970845201552025526849102676727526105976531568321525428520249009933202020457520534126330945201202949828794425655573640090440803015252199511043608599307315617860298784035370181110629971486064153563442068816043306019364170730074321259316707293659233777893741491249689859484119872270746642737780665065618726339166630958020938209342509030470209082247950878267130907939083180207906242100735323481643960306933272967836939866349419680073831184395678049102225311905176277942203994863246620842457754438542475368654948880793795277970245918847292593275235221117637896911241081454556083409116152165518180764084303362207000237729359160988416859020302031712164715963344199901292327379255377407107579547167983731209566254093400125305534301387758062373020720984258527174739901512574114108453160631814332903346327760755331488879569483009654301302994991834495637692969571788905023238954831662085089956972402436873461177688492693113463545479316200851489721810794735996286397359668798268493715747409752472116804376299525064639164204745704708163629187267426177823056813901388304924082882276993454545567901337307514211661022640006730538261343839497190470020555137505617101294892373967759808877814584328986941623414706842960746986554776309257195260252968073818407101475877590760022230362522136815845000695640114795042415284767783799585670238073137476818318126587312107975109754027154601509667754656308473833497515146235989716784806350106943930875168239481366574326827470490050167177698907460193624731370725607652964577883533414849999782130316054378390173366208599255738620857052196969333012164661525097095168508594376408031473172095089939057488418634181258954841560580002787050149186226400631609728824484251192434154416866719619061288472849487686768581691169572495201636467967689932029070307966244668760759409485791733901002485235120867995373008224828853491939365693100929156760989897583955895251526392894560339927105355443306852648299614693302372572041246398276866498852640577638505833850819264380478211468411592779492115025210987702785525187036121963323077331203556511248942023087919845160712696816418146603987356737210428271077880811708155651059742371738987753786026815524025052726757057745680787530315511427546843196688856709906064187167242850575443880598138244657529061091736460578227837680493232428063547357817488572381697879148347703552060739225709155247572690675966703643342991524403079564156556079414322733930725946643704607617138468688210781897046339110418301106912163803726667951655423158152931873776550238440760870662582868449614315430400514208361247062499013433288560148945922400923317550453584659283177217013481547323961713933491076471680339714651577338312817138994385026147701149988815121652447353547834806513706048040695681398158915141902654156607302634234686693758946929094993379379942103044679089112914819122692911420144958133544132464921157871342723717375928619522390391958854185497543820006129694798207750111706992211362624988619546329653907956435854071302592916706881301228338455360223609196480091988320813925568249571971380229649719822458338828300127231559361212873843033594708609868773634677560327078973463341560087560347899833358951725996935941758820927724952594987043658216239369295958653058459157359629733067525827568818875791137317927691626426215146364707099121149994105334899161093606434657027286931551622256772754752961045250532891247589467561935579472407674914000203473940647564191633966820593267853917530422709416755045577890652904196193952079232942527999746775979883783397462556590435272675603996278285224363641017823631856259328020944247635076622432287903048452462350907649183014264262214258958240451789298300399564635057919625843838687985865715337907643783896800857064501716149614132974210783231876580843512312937956540381348726784790267386187869196116376316291555363719344018003284033494049771504079303839225258602502051821219068526120376082028629113513455815762375832249045736527042903878553756546128955924034273556303894201135566012692672672913580930964065841462415796877721158804720005798621487242032547657163339051536592267261731789222347702091827797679831405663024560028696861791433688679463396541493501072171759860479393486671594204917735907784738169472346969838348399087818148060914617486838815744226567055771781988902138002831878466237665085853412808679956698623072173870475891700485894192676510640023487928922019617668231788538096146451974046313874566215635731142803056904874058571390944090278746360406639268750543471881752066557097071269554906066294047307603291690939902769371259895201041691123663349297483012310745858590861631863931133139481477624557762603497011324401261899037344995012276691128937378635222558278978977381003948399882283205381870178822061872190330207845228945776415658436773587536351494078117196347721723883324375214081998663765404098437572727773373266400793896066106851590342539177156928643298915824534382994971305150216310603281837815166332497432782305042743343301246624316597138551152356026855697777111294105873590526819061346182885805191922768965896860856758155843384211273325735718619594667397293202923501737182384765951665174028930372648688215076023470653596843177654822684482816610956365962646342181746847844998723296928364514336654651942779643320058999186741275577548659313667074071540827235345830850171355427211883910506910851506316528933911800450253715418084538146420992576877181871164826006564298462594808351445057142586447639514713818937857797601493626332203004435075889478450164416106779436681308235374908660746520852455754891728185682093009119239390701298288244914590994608133928257792879078922708265944900122074213935335435344038649113573487229026504768422177373802553285193100601182511984139258937293942360792062699816830767200775877439643159262275436281273740485121099579739751527510568092426174697057976815948480404988990521493772803693445447171037769856098803995842594967454779047199430328755211574405957744400596827467414013681014951278186261148077307943138884551008777136290395107615821945433269441606634977255002304633067182121793704943396505458801193404896696658893606703337124363995806003297593851002109898201061197650711514849481231751833214880585958171236555993077533283444825498474899270973520961381797406356054904719452280054603111993979090395379663227440561266620477351008724673595172151163151169658419987362612876279439952497567224425895314632602231972280387476818517964539284530345388025769143079126797594207623183477286087477161621593043593697568458150875115974817777083306585307607187960663849866294856278204006735909391888337767572207014685887538232945531443702582303350805778906675360302762040630233810868799488154231559361556466040708324642347922911870825058856890192839713481471633654269342689559011712453577982298665179744846416023528035137613895849763943345675581377869043046584316333025651661532337183469287092835209105246471697805613989374116544943103203977926698559395659605750461896571605359768839625611372184004146904751137669487380640836548410472295546525130028793731389302097875134882349868441086927779457294319668363942008326132055473589543223362225932658317735964393579751639245069533434160732383375048472770472542235328244692911926546594455622838297578409114053530438025077006500742477322846763826852503452811000046151032133935498530376373137205212434526920973285579129953523002318724417663899288332098417083891467329159647346315662431931043791484676034044939903002503360508719663660753493806764251397186952310141270928894831885173056307580412041238483175731400624674622404023805070582897462983055916639306159866714084099700038332743656188360803659952148365578998207658036855500813753905253128397573469254662155980085297541105926686720670708120024693937873913602160951276725338875414155226035971741626680442200145968345379735846791995306582227208886855302356308576152907498104534019268749856124006974274245018365095569704646926307515753843427463967633286916171102281489510146611993853812520461193872617282009564902115768676091699231610266380117488324534354561741425481310546338154918990026949825953485571033582296928298593688959819857955143943893789851327940666805018899366591299899034384299848930819449212402204853666141573434969914782569516367677277077649345281344736330912988762688863518169365288392464370171741268978124636764633222104951437720418694464499317026850460457412487068484450207881855869422130460583651075680460502296534224814081937972014414710578001649047838600344156493385131633911304524233860998670705192716096686864063646840367627176031494628499127010944333639129520247246957924459528483419092692138267829398016916995141654933019433319208830422922238052943987858113557465943312258407063870025060952098380087334419746490144215037077849507941989714741733643504290088560055167408912956765524161355694565578678049443210359969143726782869696286226492848069731373022986459379992709043939027975377778420719655082041197301121235885202279601619084797320756899293246332470553289511765212533303326054471763129557449617331526540128884685430281032890371588881081851283505082058637660051159906290695272642113869762907697366586385402250746287751200832512596004176212895122097643380101553200466879420404562872750150677084396407844970696698809095615248116876374661849498116445294470696016507903397484607764328291696985011353297089585779850275149919922451894771971744092430888676385248709636731868107139012758502061617405361527937554820013692131076554053009508490956934457572671167521796635294888768591085965096613758691320991815991140144282740218728851566071434727251909393078411118309377416127116742255088589476309041616004996151967430441350867748824130614640982078370357167329513480945727096676145687845619645048246085948924372625791052019659958883785345405570975087723319690201645400037210097204995636313541455795491457359272909372798784525483031945139853443638773038655815254510455929003791026694753168785461802485392606904920894913364489519689693843010286979576229907698327009291346668870318454331081794367110747824192719527735123441056294221841434430031849159569177189208559942814496477790290213391667991564515259185265945538177455388235039001738650192389474100761972098438172267916796157685318371024413820820794641845021443750965557491866360625485891935927604515547954214675658902837305670515438011036570437186418190169584687090945657241063891530356671294192158348482124850245354393037619738856992317159779692232864664816895324999662136161279423159821214878999187725960866969170751040405300267541111495330574207723554443836248886073855262025504923625395281884636298614156641980654013171663486404905561315353702826110514188794960988999355330331789799725230793918623247437235196989876178628222203093939791878379557057128136261435859070164336775207760221956773865160583725550833554119999984232706650775460570272307099892003054515680623882970502836002002500577004081702910069069163636953478016596329067259927033548381377712652173234022210637238677484556670281048689221908125359792686405253908969164852455837864174802518076448988839919553944526253133716014669885069474780219309141539008330680992407344089570497789788227368122907285982795929356871966633680215069354861759769787541267955548240436861886327995023436722315383286975216163062007051675564425080481578328886347487001071238324545112619679502631133363046286589925544799249790970611935903493800450795421857902263894593369834410591181624831156235472777068953102060699671189148620770989256546162818416110075845053107910726046890963178814350692153070946877449386043372033954396993796488811560322232787127734698348595911744108261359485066210730346817191537571967592713042788854356984535905885349837457143902430833192963848201244166199957384803936050538141587182272326730236132566837466267864843356009822643949966578529774703793051748882819724065968110644742472708665277451252134789568101493087595237200837841502530243019964521858371468402157715929140828925553232899326650003977010629869832671730373652390349022832366273730468624234638443268430985544320194395145313276183847597859091675858422456234030315920792119436571678485845245786532119344079940338139563765151164485546701164697733249534021623747729921886694457842716596179665324401106561370722866689616416033968272437450933131652767989016044731153310554188420956158416264830204223369526835561626473266053920825580299898541629429135027029831037145812092922427538336766098963761804046159990781164519652400926244742484215695596896297517082318154103517176544908643025668789547482948398830598022392220466526011427457967417547469963821351245903530265006519048012934331418886182926953122330004266717301382810559920150275046543947313976076042015861304090309049392749617151825811025346127791426393452947468635030756560531571647719959315863015897584285608975612808938287071563665385298847302645524680822199124726488106646333683582612237857822358242019273533240080030585259492170718844972044849826059732452913805109393763093136745860766921968660721689304169105528731891560379380502627752308839274341989904609906652943445060946805447882850876481756067347757657062111810128279867327944812939990407412556853775322522420773877450501829184586293228024385731422253364066545896492436209425385061189685015702185205290541877546132007478581069139666744159287803052744566080919566621344316441677961163400217687542527042785759700824395625030722048547571932906921286580691845174144014066570807627803055755621803980609932732198847978060811006735510917554272288460865696948448718672103803682960686197128783255093529054015947218853907671057303026656825280119054943668452385715219103686043941707938576070800092932042110636563896619177646204379545281013442354829190943491309879630332407724085247104846843139150984304086721363914795337871581409220842458533802153253719983945637308416173967497843460119093571695775733021541217168848618524553731858473124916806629291337239397626329084966025265618777145060165956695541999020028811438960600820797270112194823466482213774938831772348203548126409334181721357748313069179767440047870562186667911786799960642950756733630059111998874289150632419647088186340594545012231125777972693361090238925208489323091401257081195636429178289521858363220939640260460649038854940188059071791536453226121328680048542720523146870263785120464332963892846719658783240684348811021450263732605844023103194848552799520351333433836336789990314262609500790574908686686235157074201299443765469047185160480839785213946799214835415389255883916693822907095450735876218828353472132969006410233986741896830544768378646819521233575011859786658911541237991875482645995986363081156642027372081541776257019909586333651535682386988020380864576983355099004120776457476044617169872142399469856485957129055904257397829109606305256541039810263822891185158702109915520500955578831950129066751689290156834548447734029310734815209316580019475599900542706649254227896166162055685644783424868920366921439831025919743790723506960050899095693087543451435264389833302615513740202454536735825160232518780843705024509574996406167190978069709578090280987430298060528580883434353899543156601526918175068174447086270959845989902182389544351225564263513904611828622151347247575903724411581563246617281574412433948027124963246228846183092496178596832988069359010751953084149198462394466649995020004792033903702912620968206883879567653966211842698322255352890589993802640230402191027573320044303166020587967736019482025120642339339895006918546993278310565629766674491390134548624031263374400996409991414876811654037498797618648709717810886077680682338737850029912966011643652382724695296667810903880718975507283622565011877943790500404083827904614112752310051966799770821128851396429060249132286556076215739502305218769331795005575240333689126961139399829477375133694232972861897814192525484147074335781329492252605156059641480120508155024887824871010419485093663667317762105519670115251674466948515975538830152906465278968545676224019467531980413759992587583957531670519326997063714758994078330862522449970524201197468054362133894578490304342896541937506486287467777799279141842788856574120515231298450006958144345786040767641263337518541518301031309749718759109347593236278238936257150853977197564640495073565241140471331584578064219539266051414855373217010003977026840974046163939119270241990333772298127929288547063459238492833446915672225495655788109462549547061213519309410138062014466602747650385090215904872406904307664141671873614940938612685514643793068205161101409865907763617764893790652736156456343669050535715655509625443936434688114969237772381794533240875047567273365341774230716235573727042327791855556783049304421546495736057529021575402401279844654641276121331893045756094703552495739901879104291173109395899451755243996330606777961650985160619465242582753410582181227185214163175667271182915322408456287873400175921066990608000740483864379362598732936250088338333962847488263326668148426014518446050280588671330491857366459409123994991062054671371038638184588413666655379234309707289805054646858014655638240955231419048986805426950125485967654211445935139082974324568818615793442526330376758238131251538769703519080659992257587780374837857037646594430780980326885916325822541773259726849211827371261029006969043972542965210267651400244085891733076032380321416878549720595357003392232738784978243225203359205948378345888126773064237197089058211713275516892160799595247503530254835909101690617479131431118571801242409677507694527550276895876312189492383320869762047669301137943087880267456914606953056181508435733024916484672815212490494287211512269934307987489911482686126041099302329658200246106411262011126523381527576642593081347514951864161484379370071103692505140132656269603323786680027988906686697024816372291807817997595664140722672729895692684218555133180011157165311337168439263080853088627951567711582912008867259538801235816556912485868322006374996297919609514894189198037420353444037596428661082887476734706779688178239704639731169761349865761928293881395400577664122050770133336495703023711631710786425090464364135173162294337861491346591663716934588210213834023087192565487333611600521571637473228112458866962689333581776491246090492806241787661187152401763561010123997928790135278866018250849824575933588402953862789489481021805421765122884089452724339094561880370263307691590345036133990043412076842576039844529484789609602886184361499058151605148589131028367586599931285991672047559955105757455574569435384052727570226559304476692919826180542715250907119595077162028877373979358014655677225755506277545854337858521882419430788638208015502769613579721020631612172216978711760514858163909401571679530566664251074621797491160853515432798852840530934544595320272636188891414434595656338325528211320592162150989671801762655206789287270539196746098001392164344637461146272785343882718447961229755806860283647469500844623258828889238465235279061503159237988805711135668053385041573006952014834931762314540770531909450393855036912117809503744950627945327300284913089669318261752745354552577942057987008468256335363641495155603176989614050436227777753560306246575807250289277203128846460915506064150964445617067450078950352384344130183452025838131615485981004208747279107159743285214763685935218021733608160912899931676578506060913757872782080938591825037338907882053135735646275750922692191236960432306215897208964274614655616259421632575436322314268459456770587937205997146754983288853514400034959003006102677303755699776133201362895287193464268103547567495401384391053581573392858305460913964702190293995422038862711105671549407010405391332380063796784620700661226006215713486972964848823394650797119969086520997693678170372647944102622247290276209407555745428624256396143608642202009527342973578141300977919871410882632764861865333459346173239776272790894920015220237482463964786268755661523262014507965720614094136773863358826866286135582091018123416670616051106841267189194967337813993576013208548424839640937070503146836914625807369344349486867399239423657128364782242116906524195423618779718822964638517441750844291886586031398798706360635692678271356047506790924534696011001224140770739606465895418495298408168764660394803809690475355160303381813828879663513354478534266990292092022113772540291389189278987167415610635241397471533847142336293089517072998812315486467510275019617818625210406016104010277307483954704991446628420086854177090052354262001775336209902865956138082226052054281771983217838416987533071827425127388165408641808297273292111617615187571340031447488059783679976372738709187403314259982872948429052878817697722235474356748308005555246003466584311711829656980963380879188423998780598781445778614116261215929482862481311949008613918335069741155772249060648141242141959795691829698654383218553407340646691473473180859638691859915370663501272077310165266324070581384183578377369160421515712080803966339536791880983806578291354350986351048472610328762754420349543373316957481890675116050209612963598086444065793371647409825990912936515125176291939914527214448496526302574332578365836430346507360260936912707008035760578142945820657067419088028901415125464127457961307966088237732692840348303208898272628816565022438351838662970532355667314111805810141178240923974749774945989332180353259291512877028182072265503168032446815440564893593421226989901796239263788350573398966374611849865269474660870692068583843960286401278325285358284092660464172269127684044011164012026245082861842258622879300177425071196103916959385459765286143996988683394946576429599302098894973540364936066290798900963338342329116059024782420020048369807336309785603642779706758811299482851271962791721401512365578853177398677397883144141025461558589886153707338208722674107787682954832111439010682975481282412287868121834620174075571574206999783219864813825733860380616642637929968415594124220690544944839741203932244953445567218198061814500192867015328359293319796730322863799973991835813970357345393999565608614761635376696867267823064926667216884940967673456801240424292760600348814725461817186482057253239128085407191908548001940043137635983452598280976454778533992592202676178689593597061739457369654426180362460679183856116665998294266356011256626456760416461895310614076470872453531756177591936978047638028779043545070267218888110768388134635542470428642489015686958619919282521469795053472374908709625846114634677374292883306489506720936161532973404301557260090142541880213396564136273324094301062768237173009000056911053865094409160149462320327891405199193922793760612521396779120299197812836934326097846617720229385013343692623754467405291562438491044474169507937202694726530202824326591098117760635005220186203504008210790168879559353615698290990830887836162834113347680114691225947474571951372780700586660218690826975295718415082919534834163892096167157479220796531555069365827117519139965833535082949122247176762204956158822702055312638120088597027888816595546689632160742578456724120884948668870403788405787075959907797807576742289201422355568747998140045862501885660706416217775711867097040689596314449952468206728031549674545474718015603587888255943053819984849337140063868768105848886515847531372011128154829428862625694303447453152482452352237829862063205861627169237483019324789376340375213038927400052831439523338274285206941182291102063059781490148020753112165351225920779372132917719573062276509841512780327360654153890198926887720919214602329877903243629819451982159994451452725592934346452060907585931846735081124387179328327836602259054813953960150236253810967152262835124549679127994614153379162469086349132712579287191134226351099055623051064322241117987547963402101059025173756056244401892095563659938454020182235964286349327669421706404698723160065346384882666059236471536738668095291274846694413986098654500234890375298776237333495261759910724389445077904110611636124942690970258139444191513753846642936443941627845242192942384203050023939553720565802217997190797598599050556768527461180665098775271809283824376922751606709341780761103471416972826230691640990610925973265049639797934215050071758386086381318212799076425116373134747886744779302086952176162492230176998731118013174387343118502278763294768026124146652628843994151594139875371205571832349465572327141907641406380865718595259173112101669691689412156253298799970629653833124878692248480821890769396051580937216826249446905234773637701271369803581297655920511357151498235586918737868230188547003394743719422558417236548830868686130612768546455913533223043928626384139765245307482667294772781435625648565776025177593912363253540154851413194163061503548617101829283538141247974302304461209921540853386198597661747149651143408158079728899543749113495893207859347447041897767081329488912880875813140843812615219557645073995567829503777151622163940346478543359701719871854323208521302095580590570834424560220969335199274267326056758598105088081941809065225990399937756322141588687946838030499433301465341289451824267484217827714624532605937543130667401754395801901852552816579053122690442511866490775159123413225700344903583104228186735592862927891990554991414580039443851708060120099218012593097928220630702947764830423961312219087102417660119363986734068773323068007357036780237121790213470061761074262843813358358228431901628641106814985172078617908548908912709992157744370760723421184073900658471960492568195814593846700047809275326658471941909729163335461010237415777324861464849065641024165348909435410255301423168102236327658130150093835683730530928655798872653666771251488026844203794395229915944442001319612022325983953307619969258064669703163457810071527369253242878902023915761315285625491899399281616950960831579807739546280033140194857142189289798659326291158501817127470367650391328677479710541849908876982656318974115213017333909222045055482651390745151413298294207832894119742278881878205699727005413099632426479230052210839441942497152524227200697792622020412390213059868685411173032322292163935665613162474686412590357628342837746220300662417071564566413024626137852096564517804778072280180063734366804936755770905368701608359923052756883644167259282395106141282799318566720179125633839224560471174311825221260672125266144168287816412151713849678816529373729757274977543735125529059998643443160353487121090448470962437095422607114863104597384764810397982610433933914379231131233429621310854199233848570376541384590300483872020918565881643947697687955365835630446164391219628880286718869804051399832036553341863374544576376544671977252584637106253916701867906019035184065260686278053310023072697653250520605769754612243161252317234893598357423481857195130496702136983839194860876601835442470709449445732247174923303013197771157229437416481702605673144322924932409102258187098458391093026158590674422049484955137841857968249075803609445529270009822398297545292204829932262210529472677336293315235101422673568928158479004396132402745190496578697640481007936870741938455061928777971797728981636469997624229435957430272445077677667877474918073699137414816791850192353611708953544613255698442281304850564699044659904286730235076629050637395288835697184031648161166372136963254542769830650561045115588859987793341105774674009877067523056610490363190696146505087142554501119539708972922889716839625857631275764043110861549170921981161305249947560245651135801915131469573138198088107424920631542050599848344186503741690946311246315449142697219907850545263320269653902526243313315608386480721821799881636043591969693673196207938850798670563644700160672039081020381724176550837569764065699988502435516639849564629984193169340005893079871552447476565327315606207299819280714124828380778860886631206591196812129782833193398912108639689831486537710677144718487896301033402969515528620578644981360504455140242961243663982130645830784103451581302728550109843089109472804446547210339738989460838116738215699295388491628543190198575517745014265083511575926029247521411987271518034500672776126316014865392792064217681453524499525080746310277668215747920366111880625075649716698067826157927460026820282470697019857287093483460475052915738588523288260334244961133554186325864579269706421436568811587341917967276545483324837003165457175935213199347398079981365337264160342183151912670051025972019691138976897667307348775915297147361378704987792152145433319379461165692230854603013818512116111175884132800521533840239096486681383264879995214969047434725997944005653493450924619177061348543187343461424541947586671131485891055974256674208176100843671107899642782090330206365728112118253923698806345295027359892932064563005769413048689419451767959013082370717430473504785724493250100953751162691868269897434698954189653241804816488784715053469590404352393179691998558121973024706950333435775535851174665771760754242414427044988755523093455691360212717318632471048934524320902898314551108281470665763503350062765921449692303937325678337617983583495453992281866450597348416059672691392902021198967616683946616022680031923566257151197754084428001008108010307784427899228740886816288896938977722029226308288642422724125938268366460716918615640055713841447401628548144115697979894634701771953610054751295347085110150822604414496235353301012862706502187362863711064717579648116678353870211453826688697748206703677906895370368349968490308868485813981027189100758754950263901649739503968518323054014015537436157771163888891129430799970195535081957145753672050440170827175300900991236336837454356748805647976499137785192838018564393668309940944364604524038383055148928916691847065658919552657994804856391358970668471212588870561091896406891850711187459967416169838126385679716917209332257175981447003024513899864076816675897467494748246293043517792420181829164902781478802972566730702094328319811916837700387351183532747972696485707385684456280827357990317261304839668079450598334345372576203204459607582627982236762599972323152063126980945961639752713459836743318615632522897811076230522032162931638352679708764058042241836354388471227276654965115961241171069967139423635085056597296908245139509389827671268075345319587288099721804209964039564601552476965359374895032151463856945103015154221961111704296124823584623629131671447902580098092380169401288597198189319846341042884192300443904367530723185558205294871597820066293567653640358903354201474010084655876494688892989646206148893196843246058121058871211950984923555678506414003587136772408581270271802751474602388944820054638722214351245368649068777123720864406838521750145393447854425979686922075801193655318259524562404918188219267225114030696552228567757429463901194603813077903973737133952301824498259675964815052208404217250486183044195970305438002314699588549482280060892009169300979319637164622077954587217701289674265770508691876830812924986882538524217419785611323396911710797097683860906320614217014428173640560697358322054832117141890265618472383914484934729364873314132500817032448254962857734671965106200182027224831790830486850702270832505034009129001331158082791461745226243562608777309555376917402932220234343898387640054948867460280182437511744829364637833065102638309683282076309674153105397322749189274500763403125273863208877327669517044682543602797805674231622993685100421617264742383575727054398355497167725798474271715610274758738474619290943472503495234222846125609530737402138708565795485928937298407660986395876334938769217851164948513798848567471915621790793889648460878622815888285430593262095662671839375356777406175695056314785983739172040451407319803142327246229672941518512154840721695979220906175120317080647058712257904549586539499305933564075793904983191304156680913806257623640007650015614014469156937703008223059275407041967308014265205330240763789783925757324139736549454495036999089299006349915577862360624240135287403419759788202142638799717599532522746703521587360565293577279026124221719314531591695267308780294178408704555375846267458966432477400672659218514043183947441646743352148651326786253328747650750887116020797267630850026786102718282845460312844325318260917415112614854314129836012289717558900522094548639148636541921306830183106788608245274662263802390677725790908781521421783163729105722520341354424139188330688999612859472256888584374407939183716730820129066991931595521919177833988299897356904198289011917939594491178988631503070142676645084123425695258406682228520298673962659574713286930548995488878033680721371442838025691875578075038836230623007423926603251829097346120351633455808624432684908335367172588138433228896766764430892767682322817365317303448473423889929711552137460082720729965682838811467861681079918079360727578495233322041594403227513479596049529136868060790579241973148593138070284886912553057761391223002157940293496616711086466384602221343484176233748388028931383203675412870765249794188863022549376835743306303332940051976267768046547878067245240168771239212003317909224327907872665494349335938336004899617721237894719201779284889442336177430412690208237643990258629650643714628589317938811876463869826771200892814018775908244983139885126782090295503062773804601874130346823005161533152053949351827099816819925947267898043643676420837899401215020800488204177844339474271394508559289575270971529411043221148371310319701543892633106060534264761279240929939189460812603017515736431480070327040021820982645874575980828038198542092791361534863522609280207598178178391536356310378434181252675266295472592599382080664930992220854667731444517142996115272507694857596323722645899914320314646034993565427360593492087471805022588417769739647866337557806406871041615862584150916488248476717955266902436788693348071525465417358848853488658471241034156700339023103068952010498617144672678986591533930077125553585177291297784426301498679757324056680639168536019455361420055009313446744447792062263006803957106851932463807408221840288581921018257410717396142356582934529021864691661166840183438759284444229469373694126647320837988064659245780187596903096000020529312454555633842273766472046290965294617198602664916302169854922694937673106272864282878655719592040542403648331126381434463129736776793164068194751015832940590500610222651098534979242438041727711502690831684831761935048629718756599077986881100372798034784971713860278010327348011308078629296496088392868003178391698865698487759900089501654027986634382516735674709689905636237513459917946689630027079940386566423603862947372847429920944138685034963795070052280727262948705739033267455923830771344053184828204295555458221693710981749302745415574747161938455423494068646288532054577327862111330366589531066185555873171809109609631270962372158342685491836855575597992218740949512655698231440520841260683715028579976609586069022167684336940877140389958180820724769904540801699061615830646949968553621923305781279708288916905637644854610721352681074233557279749063871946733331694671949786400444011797020583528821300758872729631667056154540414242896073943068604695114291214737678218097865324537341277221647787693915250612681324141992111841324424422228213977127615129846353592464572828648092149897886852770769869978328418521279013304355541700331952554225631076493678004588251825492269054369207346420425296668273848019307830181977458988680195105995666215329556270252828162880390901382651411314580636972327002861210874590170520025239993686269735414725403439007818354970545084421523292306384028693206624517191243124677053644245819990100119255586525548830523798365022733797516273081882161696048269888724322276638059847790042191732064282331741259888088206078487336477458737576162128717378022914189283159188895696311385266425768780834526504985833027786378528750177339613417640462857205766300125499231233176276363878116251801005933262772161283903481758825459916535074098899997614771034613966721634854026677650442978965339957423113733508936872760956094861287245142399383738704901207452953342082320507987647763672644145050950713605655106308787719081188256544267127268169462134242480079517846547934488938408418740317424867450916977398100476552634036984245798597818285564733211625248653413960862301003623402740060402091612221839803482752609010396461410868494693700814012406845014502783608753863031900720871848253445306563219226752435802109316112710377957855489383792693007368514983902211396287746936714448141183842381519656659894751119663385971092090553522588106468547814205932768099026976055595103541822712382470348228476482467049129765968259470842278057344117778215386559910507880183860959675665221072459661213203157103600951754276968836173616210634846043640988993629541013865337834051782561765081620306006711757577564207898739902023884141815702033556378338012646615194663825982306635876754479256364015629825769199732659245848619297788534112044449342213026876618112850189287619919816137688124162637340138023800288300572286094970222140983151013156940116316731458869713123151084461084277928589324768493967136400731444227412684087616731082646359335396044165014478176372866270509095130761229347823028404255396439785052757879801813827751265893059699498644447044909766172405527045376948507915648232426040705029624903390268642819990344257129925859486078747747921646034166058848216215452928413014371689912130091213315843148432484318713035033341784512663157532393575733077726952154031388210407128079114888507555270024344878089473363970113163097862415731759145140876612766139141278487669580407593852243831154938813032004368944683992218531890958094040853186983436441107954262348506777849824350656713867457696735521100209756228702500319801024511967443539826520508562463433296441656750802540814985850846718616684319098526469471509268074416567194753462722904906838291205485275773868537641470578109273837607615988546980709987077827639147940983814858755632372523686120404913121228294562790625203453657511187357763511878187248161484189003051774920987192362034849353587092051337160195335384639059689210006113061320371192955737751904973885076430295244671695246403874924823131774757523595979370063006257163683680076498590281738499619106381994653454880962729989632065324386409555755062550449753866198119634945699229082758625146142640995229747756705481935702838357235227585338218354565287399593054527032210431971644966542284592769434258246343372689455339464744952666037664064515221977611369642045596581835843939661121188659907767503202592574524132592092418012346652061805108928736900596642854895815322502672060802873070069332737961489304373353086143907603508456953084689681811570818775159735573498169926147499244655187957647322965464685351648658672466856595867933972364791686936278640909207859265091675603459071971689374311715871595009433613498289734289649244490989577182933937582815459192305434669895119496512246081406429011839937577329586839866969127155850592222447479128062012427818944459499157107253325951065539353738285028088614453211717402649950004522355166952558734039336021199729231919695009643862022776220351714228993690897993111749512211299096701737889585191062027372698020297824580301653755467157376111698077105022133175767223715137060806546251658516742297785460954297677294300229476625218181591252988136354966300967863486060188418790382654203485595446479869643582181407543605602108656970250545659562910454887163318268711777107319910568477335461567684565444959029060565968134920999835543088137537639402005278057417039313147164011555793546637427449617901279777486271902270061736291339752782035547771882052180894319184473836786824812362093061452351769196701655778795539242785850453396681283974336344608124569052128892318089317715163302231389361696036649610242006262542441353764312775199470631131367816597077732878642350480468168233574135307951154812214717766310061984849263654583977545659478515268158057710497057656276869775950271791108101729338571919633762769107794146025715027858364253704851478759708504389190717426391249974453444841013766245145714480354544803810451153620237646226855713998210301149801279539711955915240141248615853169251389886967542541113280844338183397749842225840322602640871192645271767441978872195905583759690727387662930865448711048386782131685591192315232177008169722655083444164005817685743262582054934000886185982155010759891705702863194161010254996923880214012179189864623874667120486767646344558083601509955900750414503663662008720868479859262651736386218540388433224158972282921920478180833621698614387259487538986910051309433232432043928608837626540266432436589737339297849281609197309273677024066845581616372276073233523823431524246610647504450903677152042880067623561123801178401314496121303878719557272407284630343350519354923324241018738864859423223713393025895220662677579256520022277314919100987891778417735120137179997561339361791802403144916664119013770013706788785124987304509257363228339675331655951516782442028856333993278417780450430578626928013871603163555160651373081652865943661072109212440092426985273466670797114646205696443025161275378963096990814751397747006804171367205064528174787036162311689551367712105375313211121061060711941574978010889471136032909040155294099733286643240094745546964448157093224599495157391482726471344371902007161582567164431392024647113526817327335161786677402420369375618119597373287069852490042836827480687495302348053408986272789576818370020969287332785198379465284288719139606997810158061675911033204135851389001806951080859481889646669674703695780393938875899962301427775643607241796139073030364587049970121845291096111469484171102063752788154069304792833178179135156383635483888200625526566023355778541098918747985784691843158628856604394765200321885148121326862274209123422818809612051617264451334309337639297306200886639186042786290027763154121986366598068461791248100565393059314851599308422245716276512625487421181502349491723823773644953525025764880670674737591093878833649858196160345990995742666440398420698867461325662562334538465459637937473786359823006119514688399235829504279409389120946466623968402554170689573974118555323129818701912335835606532317098457420578724626053747029959068630720665795478718877085505706856340156332443698426513642196529858181917500396993031196689309948464387979660614945033672370872975351525197828576511375899540376017670420647039522930944464805573825590226923970563469127019201536249070659513737298039680243997745703585727813142267890473612016141752827928699553397151670145271276150797493622730086622916783753801744355597527620979803532013298059822921833116663473430761257874420715347266453368289359273851003384531737272852947186383808986758725761659779441052147750032769108300557338968149125912803338888880609564725826829502052870239631072189079865065714988481425800356234798042534070215931332367258271855982944956243100836122556530669417475052647221350924290064118399149976042136330762583850563831902243091341743491044598352739604565059395590985602028313365546637325179382281666273154099635708616564214746047441734592251958278988162324223639631749623663953816611011255112694556752532166880111216188323784185819086715003609300477893959199716736528560667258974318016718263972325223084889433948543331834438314542130075605755588829936738714565177571509965361849026394246006553300635243958402600672611948693145794066741235746140681490459992171686700859536558630523247777487863868648838737741395696361187857198874286201283425696129983672490756399175360165001274472801728787724761483912163239049299246702465380535197374690460563955098594915031792065683274521117384385759170962345871198418940909504542747467522210352800620409257484889109695673510936198225700530441909162916993932306853490985998150484359274317542666339761410157286339923675886016269723469727563416911546919481149091760227434633074634285516324211909027908117055939084232320344853836743001300770318907081118726701878905665005926721061231372906161863497879443015035579705994080040233169883726086833203243132532847550853777820134070189541158223153148313689956225524914809954667680443606618713862231325042460911545755418884540973280135894313971547295313628568996130089219955093638261298242174748663968252858624836519058569945453525144309208580964651448876795819939059377795629572082304972300496085587846870227599593300187263927424128713495361131867041076500795120747105503507895090037159342816629550605472419470954536654220761182374016559797900687117156978930134317516990844217708519967079972023662452594085886568665949972419214771167001166018832603341908212519758994044152720376887235098885296159782839702789639787814122851496390914488402181877801397689747734631075514027786160197904154100351375441863141425733538087783139700979831837177013416275480476875033313266940602657901756094006381523415885593261172109905078677844109243462098571874948132255062452756701269725085069006191878007233233450241702883617499866677353952787833732090597550090041433618964914182473614004904670687834868049208850582182879838291326400682204594378051367270453253327485803206704235378739004474955805811293901012426779261706478928276741053987734186650602522760668225313907265085204650166064613464836750720306034769557072468483091621790168151792988185471214284926507044244370382700837183162934158570723415752654647329405164212123579486821813874856518575454068943219391195148690402668340718673849918621479802145119749019188512612644171973483005222915189348504338721990573407265269607728403369986196182553498586653469165420841489824112957043306326823846917882302154443239216664335751949518453315562530433899596679206179829005776099289504184595198574470499163634593432545739243205374592456252154079193161248429184069854814308135597524506296794930150490045751168830491850649790419285295727208180303782777521153682147438970126505797334298412920899145758026933083779874064727628255139119980688809897553219965263237171751087744597809042100470439978314447155389608085848196381298048471316840912862657230232187217797378820341082752054202964398923981458116254636760591985060184271132741377029166296716065891527048008632420106932761595433857769052279140316835576383144740533058193547841606647159177499114821186350966354902871711201370716059278659338758282736858151823382960907143798051285197836527881596586138459718666320526864227791006791012973373230697074002791618560391284066372552616576556129887010066110691110846285223501412679403039694057088467634743297622110598475929886198980517453188844483589298919248908629441888378672231274219083996855644205631334843061628807226405783866552268870146948995538214335942008114056495837138779316156107700670554684036664454453307299956410217844376210005304154100186653385688339889291843796974365338971748288811204340073846066602499046222035255001696450442444988162785457568503653362532164518581633386294942728755977933479192651393317159357840082670453990487873465833740686645111907571702925893619219841144013122804365288262276243041967506485809309762022055100006499099695992604672671597664701133310764090618102444508999863829042625832193954139088187790702780345758242523132701308333637329577022344633229880622072670277503071209888660801550492332258587096261132364874062853890328634659186354315803746804330564643661495543119326338504280333865525026791083698850860386979704882841928976835600673386598519936665031050969305131442012666237912316165788559838783945037506183474406312741337653039061849854361592504013941253337207646830081034812123136456611416331289641845365101955496272544064292068171407115410443923584574127527605335181119573921264543885983892840746867725885792176916656899387372906766569141376004716089593250550671339297395137587537620947711664463752565731165946227697055902274919234934709206558539290832523217205480620959443007227066627212105005989994719588114629784429223814529660961245433892530313816306702202703827631816041399072209537878631019351160072793829935659647843321315147761356426528214768227471583212213294365359601383877028519483757300314649743569494947170898871002873348422473360200189270257108776297091038594984352387112784534232940172618814208383450529567909087452866989837461445220712949290049821813740225457476072529710424132294855088759158260416215054080938536453827363416255923875162578992452588490448726716527975943904149108624934254773128195698160589309160928507835473460947948793964732304608932900853920752407221254872410107903258204067274741587620932996636248714064456734203596119167530762934066174331500513797346759695829810882542454120012532421482918863678414942897030086030647683301016579446717225298005430766340582505617455730756767793455728443817384482335860598531236198688606162061004307917888984250298831866440197636752846335401886080689525854207202356550081866288936330752508190532963989757771384124449275369120434048998246994482553852963186479156274914370392998154041392680934709866417064688704094790980382074770772261283315875665667668079854400054096586435021291748731591695372617911549552257931785676966499300040389129226514734924025891698864062813570427991794986573590282827915197560740270587391965500844036834027520436424928901135871485754128203447502452537780976742105487902351929900214163916012838351572838441190640515074392853236556463774958514214822277368307022168891356563842113968646513084783964721372790923207252841064683565653424065667843213217457265237979479847452922627028813996548947533929063572635043099371626129215400827916884361358376945809920265180615019093013515016152112576812612521796539159792572003729279544420843612320802948463014919688345365568410325116878906399166483313477363006126566474820682004032970589073253081757652793577027312434164431629563186236058885896792553541699987243476343870469716877685891844964424669114746939214291491042626241211355710647917550761457793994657623527219274495775589095553794708257735393632745329562405349333279925683589975769151154534774655905074513642755378465053696477382448931016605788866015819104505823756703438347228955367109214933840632413350564324874821691811816434400248734292601378622270885673287015731714104345811921635649660162543935687031376017719436386146584696640832320212131701957950796194838272975378881049713876911583177213545447186787489733447007034819892057790300414950721414228938197933079398066136228973459081002810964366184667790265560288880511192011027558311312432266640186192980291738306232875868966198080240380053630599842624644278726105711189192325516602337223433850592754880333294082009612698199797395442726863333122974812029236377084887063547901787328302203312435945496668855708591158816837606029289311533436220948793622799481531314852737597067291181825224982971620588343543264627868263038877121830984662713071726513910045400273333295912477276882104476525894047421259990495849266266149178476053820364569874151208565976346119749843150799742839385978665050307462217325246528863173509921954443125032743090955303606469164780166372128801406315611890305327968484166148890419776359978804597849106094570948834427917923155371347940754171815951803667056025540371470180061416579860893025404194599699880282021011730667349233377127466860037081854815192565614325247757857058098981162552833591500156104514291857155399085978164660825568155855023214897077800703435630725285522515414889902217372806188288833736270438278608217634662201585654334646935234734438608912561843187965161220461705998849686072171077659418324833096167504722370043370996511841807121163162000340008728664081735141232625535684182574411629039623858833810306376499436605200369974196537064225548606505492396412033894415948598184544648609860845233628066445350558939470509613443916283420977075497555287420600372685955594909494804364070801635561577458881621190217390295166367874345108630519261053639053530652718806214697745737781501420589565713132488377748190660919842630017345893589451617027197483205895711444509171843298488591204925821208346950548838383267075371010745168149516630815140021028549315068855406450864410694942819215264666773994580430770151980324868466983428179315754945708926849742985815154527756204361907165468677929144342162012511818167895168435316949365387872755229697658431565115827636488481011647682062289574002574620960044218901454884739289362282013871597429060101720420332711667370739431669852154982463651508374956184098751116894065924184812618099364285541059939997964173920320619469478159858349969734598375226997324202530988544278649627807193585599347960470497361518808085978463416415585596290457994588456124325456451072365855787859461425203032623439668947220057546511559641245366328927225355603309171836041588724942711657839251755296823300497075531399081530143103203611615644252315291808735257364920540651547373782626898540611441183464755000340569626562513937520212325377876886736730607041977672553804072008801022443650439158323747498556361814260437836779387024830663993570785333074437484483329080249821722130161335988847853683792500673589143264333423463923655114218319814058714042022271360337463393844160359884784200888600336428914505442006251834213225593404067342258187718900585785428242246219028424699312539134704981923436917459211639262482861904161969838739428036313854563860756346132179932053929104304457001566868290250045552840362979547568529118094639158839618268863343148143052591293495798979524747274658213477219833256340620674131054332099497538021019698488296746477845936895178805760654309693817492520516612492589395891577806661591328433683140188170886804231122383478024698084332211058214457166567626049326248831528626514667673252249116902258977960214575666426331641232134227670264452249512983898537221988891617572595961243599486145445436809765717506352186351757920199185807272401883734744492014700636524139052443864982781143354407806911227387644913484945263008011248852355393764052291977503487321831706145261159818221899465275776137308888439656082433286763627163092058407365452314831042107909675896584793533652705978152852895962664803087425185951948106769702715740830685406726525314767136848768691327987834239333073135409495777459224491928720163165769193979802180805217354069687048507874645713110204066028765381076531705020345174182838481590257079271268127454175818018868677773529641263858609028933942320400355769024477107104873115363646462153798807237979204287760504924455656242449774709159453135046457943118312200287525403550249014774895042562135410481448844121237136592449290472058601552228775860859801960203274622273674752940423796708566229533059074206545470957415663225487060981686253245021972741912237144236635040951039049197688577692562914602884808585871107616469202634638090041006429590164735726536109031010244917324845156816655581300238060074036972597683650101580164626569283056545559395068106787685447241621319691429601107710599499084396783592963032135841741767811353261176206801905408931299717953005731171559684757771774901400328458896991980464857950409592004398775306259121878264375708482408343871885218736974262776521282910185685131845333542075393036203607562766606136233887465535072397129166870691583168266404875051231517701807234475801786897129288218785418218020975609075314854465395609517840110386503421450656355958989163734459536526838503218840302393354698430984042020875920020182640815765069208554728372286049647999650018244274876410703164280742054721675721985584227455010552770812348937822520386958720491475281806655393676269026788533186986130807191695515007931371457016698975892519219664753543738470859341583165297135459993049602145235826276866635832871851682223436198362217611691166533326379175937894230266516575925253140991604589202470310838753883935794033192610736514392961861844386386007898336752215279321621226445102106802823748159079367034873709439666780846693333725132110290930232660583744906686143774803166941101632961138192446263599637126161671390249005965277317286816651695128598152432461572362975613177966832499982242393567187962031408496469131461015221425744040135079762993990585706606119357375816521030322351286463958707842474509341589601439191473095525002876502623811655666324908102479111834084748181743318400654102038102702635958867255530413207261946268948328510185803569737877226273773506121083165927807108199487294528484009203611651698208624348022094187946707355411656935578707351821019722033589275672939559065657244367761697526391645964291308407720822965851283823292809445564788403793545117096393980303595425236633790157231010770065291827674541964112158048644377636663904681634002120365412589347927667451372669974553920909900122464514092235695259226846512609012310540282845069657918405114964950353392895163426881422106378663409630430302653555649258331870705871776026774904448923788300585940140879223814602083745398988418547054874505413911948564686691507880350337528048110036588410750754721244852150491065475200907336553376132648755222980566970646348313581252249086462199130543009251154736261600941450496989644288838809169418788287406996020937806065784063967094019285817236828966839782439195709225278972382471202678996843875659664511409351815492321699209890985401985895963358810330113387042549709423116063549911284985582549147961085081386596119381442502849222056959095418647839308993612383091950495307091485073839098385131344065648057321638216772805075129767223959181376385251237384337955198543540565442193662656122493762347674662310172383777653435741882611065059072229405748140738211512474614309090272951106500363484330629448463749069516096276567915358141475171552892291381210810271045953310092989488922040591240631888817231209521672961895345111958422711004852845074735628608394338596718526392129096037833500177459728447615242754188853723781070119453120044287778325179135030900054821299808001906542125202188456560637173541841613300905787432817265034338339823942477731145413445655865451059843951671369394868472823474240532717624666040400025133701806632469696532357562077138577701613414525879506040541572498479056564598349148716527964538985955826553171721938988696292320239803414494703767563793443404969723122126021449204775097796237704872744768324942482625771434614589580350140446765732663493805685155248706805971924694083866771222391007355456905970409197046399162576148541418168152190105850024659203561037706859460633030167198988099985539489220532095111661922679007691948685878948280058893654983455958185702666243229825800506945325693775215640361367165418712460825268778957361363829597390139508865068520266740137976378614558446910144866793044526724289305756123389002564083654245328906199748769408727990138167891077891873677403190277925457990358940821545716329559347853048005056586715407624852035745357655855619994142749944947791585491975011659360949706899440157387197877875191575951546246857752628245111265412023258935055157909806761912739767400841581396321014861880766747462664672169581939555083351068927748426007331727297195597592663878528085509105719584295451340764205990379855066705900482759443176970717428214555619033812621940888968623648065901471435600719527379569253480159912856975560949180922104573049078135269219909663711562631397308796588061808261332709312076505347377377180343957496381439715757480737765495241159496413483191475742918404856607206910637324873929393474197075791604632633916248172818126051803600073529364196606471870055611737272007966848534163470113855088572748436161199872438204218441674989758502642716767287576733717154745546967078056707092268752355622983173548537521251140519029858697088573470809907707067044524752260433000123890010567150788647830514272597166478790344861139011288146947132030446230060046237984673689039790999373506266054537666809856313391695340304316994113933898943575843777208787983917279472656918961190806009811007019845082329244096160933033142750167482727226079149951974848778587140393936443877260010264382553981684427300397782944508805393336095063105271195140931829844961753199536531649590406755104007010449181667232035064462820689911795724322416188167266757804117368674917338335521048533789666538159824882577999820743722488742613459264037389005066977039949129938004026102032666370192312853136833311582131925102453805482031009981901747490982401174394144522895343826151958080792939040826647836693223002239823503183151925752595947433687201982342758508772808570480739625212666473557564697500202346476425980057287880118853846593400256487706743038200718979983125634609558634226024401608240818044194850905044333976386512485889787630767873466886461109730434182377712028795643517449284791037311174153277920117218212504686037352961430259479093237940367070677941508294045038139010296941271940898789841789863806930523859391998243542908099198413061042663569971576622740438491594952065608444081568483976709948580298573697823561853364068645689679777881241690778196588735636299543720254840847035054945771958918436515892704779456981133477279471571312045333672587495734100411892146198562699168433523350199303279819779081191710140293059659073666340123452202713372994685143920223130629033241923310860533892849737734247538845615949957878123407957362024465772139913545981704523032055987068017690291325045797425880368395528533104704442703810984021057024488136253973428065033563174000724103950039570207424188360410532860478883202730443675623046193356137095498550846986032019422902476370461641204555665012021039854106540153969445337135770593799687297756579525804367939443823304593060290845708536131113613487553757012139291624934984285387325386646710366727429643250033962788786619569285077617087191569455175695832344307035058699630553141887630759379617908301595235291825666239957495774636057052934484768022504743939808691787442047718393972573108850572001741710823585538743296459804139846079703894378802793905405488716542787205204223356419958806892369288675695742010751216410662951343997524341647743371383443893903542994489680319391591363210970844063469462860170643482215118260194565207998220993387596964936106172672648414005239761639952425326826635878450982564827075772525379675502250796032110108245040868603782642384412410242827431915141645220128539849678399133179783308368972309020692100849999101614046476494837117608172186134947138529765938387497088388342101648039932238601048906504630280256702735095130143674061250396577958394698479047609831917669515693227639850742128174133269742454355420527867271209286524422601082294010746983565757392295042468335405114740034034532140587294266480847223493287793047483753700699359998290475961444767130240835480545090823085934714632309829788990620592435797827513373551049135976561759852533562803949968555420891329504435049895879439227495555850060083365733783211386611517906134070431502459780158825045255612027305041605192308712445086303201883482232778721196056618635993065751095521473332820405146516696911896354843621781590010144946345183441544751699450771785912507525527305990544560002135744320274037434762345108624105785357710093892238855095350853876912032717118139108949762618611991649633446948142845196365699011621678250067755891268507892062646002465721061585650760850082761874413869612125494624894180654915264267146382393860211230582235602256391259154279687550546309121827774026575862175748285720565165444350815608488091193719522245751243899295269271940592331135907454202629141976140757834378246592265901619482686711962892907291923205227046212081087978686540564704962267294135843531603851418649381700423853877173459596420110257685829333865542679506042113610355463589192417715542202544285984426457762326592492498670391424261703095789360513733494815546839251115038516946046889489250286448407026196526471111109920849505135592453565806380911989527839884571455384474439278127657496307251620260967748211622868591333394398461525601417996568332079485723643192077889383652002701523170300000462499548476661811051391227590308274035716416154478600956461633975744648739037474394126433704962418311226607947301003223445960584535618523001635892996640949316400734781652150365489383814201157631831934931030097079733606090185645880195224158181130850161363815849074045102626798187769063474985771091641348862648402225399544763930375968686080889317425667874030121629825517103922370103361820875947663439999156811344632198548607213103755861015977417242194681148857037756280383974991245189730931326708078507344252294368833745344390270301823473673681232453152446548668282304267037405048066809914174314034894494962407750161464631362278780733002432027171827732495222608491004105436361927660501211320541902938300286624150415177449581511124008357162602924502138641851330066935641888173970982797418085905162270754502596959963094183806333374729119191794887203132229119972534333580959810085907676660499175271631682916938262386868462814019869253466400692520278445018888108182165915008875459986349686808521561409227588653730665613383390415828003043214531843638896096016251397653337106610287217503536961567830309595212044159407930537575411745912771279429869309902148718415448737027854162138844588112937493601066054463886150300425412891374979478195915351871313918256934419805302506279187031117061636506386483858003013470876312275945379835667763776535787643018048792818975731988112780721178243757740101808241668752324410474076607604169697533248125114225931813479707588544871776206125259951665569785110576651157757122924683833187239615079438116778676867197626389656419031465118599995330135865105820186924357414501665843477469513471789536910998291884872223949583499738033489514956902070448356007700836224066965581982250080640949741527332272158127729932951074482951561122991428981341069069635089018721833722336567391260168557725970050374453530733997527806548631862375364563674672543960630266545739589180312768231209251727824828222577655345984286162051460898567110696370601789352069114950248389594766179527080094839909314173734024981591302796488025979275437294994522331844292559899294367132296751120516357136099128226150410624479137151697280697158967718529700578305494392566581146687249538052816963596307224812194079505249893258388504216695506693650295141019637401391726200060801540521357457770013129778116420207735857376986680602640585410805363085176693092749082509521177970776178189323903792920402604355795495702588536204585712005507175753915241635094501912127635240353668058589287714266587370256053014770322613502692930819734355354778445813450192827529643032643277929796507453028124479156827176303076135335104536656936281601255195098853024104256812433120085959860632774127534650644194582311075639711686325810486260813790788132828378313956608814760974474986758217201324174484330602215271012390361478105382017153816042440433007652359874765750836620046046166939462410255908777328989518510336225382357057271247222745929895814014593820343878482112072800788268591744266610429255162372497890381497189225891641773231471987664211083153230414593474686423054783201197829445704520607769237162810069176234872607308774506738058176161396429426834726911392926070826388040776063127045897589488793463054295928530878876832594770785717618348841323170206812815633248628519564551112547422970394972398231647689470863181577299734678317638190559367469297371725288908156269759087461355641255307229435818982701497495406477366005340739103069931682005233235684711885116270357063503859646623144461959281079104697858970153958665553420133646576156886151807203954435463013648510181552403660742123731168016124262040389077316309377401034928361885992476518243285137696483021546193606145858955377879521192444542184514829274874292532869265445770099161565896928901791521209550287690734047010527568977414526881191136453873224297686308490689415761857658028464709474173168979390187777042535787635694137133442625902028076463199378000002363033690208379260827966924944230700279999919936285993894165638818666796993905263897864258629039244024244012098149346306590296134593761072730935373794481397986081418176298649571688680450595437735938948321213159916521293135186665789264489282617999078713363883988760274473844407556118372477574699240551964204482024556624019218735874724319871717562196737104262674579436992005813137003020118084099125716740754175680904041957035095282046087169986306309345914627355954082741947595711477272791639200218764817974362323346364027910123784119168251454331528636242374464549859173738267606194110472019474067315877964148321895877837958790308768736798187101941032873882395397349747730004287823992402483768271808465314197224236979160824894088018694795167550603339773253487429161026890607044912126824192112681631647873227705775048092195361214501033193754564764326096423304076971676452444660329007707124172873646967495808892237944362399478457619975790020656841952936981291475769305821869557049463232806411584083464991882790604155628115009964059290830724891671608581137692806222872617247082562090438629368186401207609622379633165197621135011890770311722254744703923561160865431624788388258722852202100351145691001506448874933926007402434981947957529309850383936699045781562730598761272631527657410381129221151339789891674077576189087659426628936363953942594753147558459588315626369744125357255267881580547240395249159626606929682782462539902281001359093466286041571172221982557145698814249519304296101710430954583189760174415834682505481493290151849170349955839376573975801900868185114633455807644747929991511933864122242861220383056002513034388105559386987530027002999665433283896929549640117732728033122915357383772167313631866918407355690246291362363472548958660511315611452869823987870097864604176902926474454560955346959019854564642744397012453163746769496401805005027986163438018760595132891928724016040861508374913159332995562912567225544292411688387498240695050003059778898338761364406631837557803174339203972826020104731271588095307800747089381920699849472508953469673797948044939763411468875003048343122058480928464997182650197119416212300455699885194175191583261305208689632645911597905093065868596015333581899633271076187823192829708894901947121329380119010233918153699512476096582779449342143944355973094345206081532662556487537932235189707231423726783171051751637091558746257923267616639246387014052680119971318371490422166377168063201247648023057367637527303156244223450795482437570897946713506799887023411221686137251066272868282202322191779651142486879690023928064057261416753916827244304719937646011706531931425352398278866724987401385850074190765912399041258090170051375941154323986269377714067423855931670870079489446981443933834827322868971269499400850805310352451795198188902835619217703260216960556362626763679636610840137164733574700145305333648457225783045668809974067593291038706829774522355192990315851598757456948247702563951417542631055447231532178783469646580423628000683707821885866882641012040472384587417889978040063486345652537880342199009984041067454615653888852025846787518440507104862948716490356857662183163122126993717262598991638110336143817631993234058455882293563854581659232795416731768605682917247735882710251225450978533965907162308025953127618732248140204833009763746925972699228588200672069644866759713080397803571984788725611923041475485389371973757455551572596623744719714358711083195701861135167208487321998921699706043961901083789861112974834123791345332489295160387318527927910915089488018792624066991469051652662481738457350916803569569923423967090068196931574672401603081879709548003801173011865059227774401764774779528379046418471035178194799243214832077760896133983998206285530624371866367111133343741264575119345962046191766559511585978058977978309445374383791648624393721336279062702295996749015542361536606599784412714613362640892761857833874789538687001114987007058841168287260607254077245953083090328476809874695718456711547016953985700339675530577095733284450267702350281251315997852493599196696443818854143837474886916017101318206937695133282678934643095731295802574843685422953446393874648369258376056251703211345609047234292616254899705120686815240385982851292484555398576242937994691689916346985077578250281132872633641583624214112849779349574252294589563148961982803936516570157914731898618448152239586070838815229173838240929042892806058815427876550286476932957232229388250310255911790120162834200864696599115097050213694541018781746706405837048203546395386478682664052992710241825407008866637148893787244397159174414008564048961474809755486450260803046091577291485820867280718020710981618465307992156108074222384134667426439483498343345291812726401048297948746821498823010818587673270797213877037947591142768740847634903747643576884303251475842918909625753874781417493447852630633001192445604259149711626949019145804529138242598630686060379948646532718740988353201837406676946294437690806206569092260143648872905844612013985561419851822307952240645743103716298388483047020847683234789889196264785986316866378053471357516498320111431703733852002038299459212783537387435538534211656564220990260201828602710089064396264582358115124846648614057491091832661199568526426244821138402427321038801276890453093721765452184175004712568020716448122947515001671000287968792567751324161722951571251838416187978637314335783476715789451382134411491110497351925019861770408297490740593372776854039234226456020095537334492042327691488942380785028884170762601115052215176184107076337377121114617919776260003967732147021927260968955487256104644199287265201745685132155641061635374747457751547388650105119947767399997343945797008265245282274556567695788495474662332615565388529155496280476347819265533908142280405751247124835602754223875062604181017320575415563110527668474104036113480638265657730807451185878075437878416483339342590143556814516234621584588488239989400359362312444271784650387751263647911680399671715539194572771548428427845969622647601804850389796966405541200908718927109429378369790645631292630292589117334780734735770409227604048800721488631061281333811814701382716300735114792912076673642845562492628173846561625159191119609576974849991661923077109960749098263135209211431033041672559382444659945681822406072988292194335005353555122489803958652206884853426221924409964374121118100385658919874848794031853186382828083168519349267174141833464670416042984990587736157544618169412642729305597308558833596191658356751434428047134155028682913367097604770950429568839421188848168562716849572295523631333727327566560355054953312374436819228192557143482272037150839680269762223281349630609799075792533552716746951715678362198842843977301044827095508151769203498312651684869850977337712403447700461270068063036151329153228226926923259156997626343360753762070137458239089970650163209674374515331686842080194679546657216607159875915923480220521190571217509004569428200245729992084298122218973694992055306046901357289708229133954860037487558220779472065336005077952159093240575922903992767826711935237808883384350157284649493407730974671194410121713992632724379692156855256042023644820702285398247705787910977909046139321582017378948155745747932425781977157512819497609914439455612647071042983845004022933810504069325607790858376254727643373946074844294998557897916631018570961847122160601265985457634425176774687010009779994115576812501427082141944700576481397282262467046894046398059696258249727276763767668744669394547084488321246512509384596416590817277569832561744286124377133899655370141241215688722280954358264216010366965802340158341184266503837329540037982406482356817625068444862656466948087993952425125337267446478155305619060651024318975707349745315972490455757402576052306832450853933657389834788028909599632285458203862013164072571246912286347267885526976820422741230057847033578825854542732905166345009760467549206756134735604620889572149484983276459429810467085054095014611424011697622174676520144807404484404811922107801054241893912116973623706495154254538438993122869894841319607837744068911317038137482864780504165901654411434689831110408606797409108337891714169549286115702414611224224406465668365071850587510529241578627506594961495857811374783121957682131434210966147526311427061279860044783959467618116212349727574354520226784604511903978139232507556670974017343841920599188234040666449566196081426751263879536936293257596492694433003347573388512948739937237735082070943682921930971985988522504978169559171255933592600805009554044884461372223983222165905934079743106301124609338447867081421879453388417374937684407401536691062653084285391287004315984562186580508550190842940896970280871214760441248157458121746753443672053093302546718591922022453376053225068835641940690418504603062171796766127142562045590341074263697432439816582345533436346020880198474526555887626401225152916983883386222283525382621738733196909368895676280731091900688589683919497165477174439521238889368464320415418470920260171820940931705781997849900086780326069857359115811237783119210764802676554722570176857166171447122657652953393622097975636207834733506410203559759725188429059751103099277278591575166022070336160795953567657566810561178017478618642217973764991769037445065383557401781459541888591876008338456613984166812579793181846123737103925052126315259864703751978904434368171106338982961591815569800227565350529846065245805966359850599765343374279838387617944110218903394960385628914133329929867853347824777493371312199450491348256142037995529326385754552869620517900408870411499081310782376206064205803307360870966168746693470356423833976542996763520096559341527795523046876841315061053734397293478678505875579782711905276021321239182896131510881025159466193804297907497816696025228067483375456472202315244024165066712687439162882644705942093196304627812021940033267554531001928647168648228511167845661742155466236332319374705201944191276391989301919171284845740315805456917440276424157204874779666177234894475722977732598956391962730944060649564830872735909767675257808310761719547646751375219216964892434891300091032429273895583530405623784729440718427785574860042662705313823473959000874249189225503923209486527225922632919969172010921933312870462021755721121119941185477407643881662776859535097514398269240536673339518473821146159152131967439576328623487133230237142405696148458216887318212274444457670902388845867553139390880437732524238626968611119912335612295154404871593938231769676507978954586515102076029285119737193253152237459201159936964039581074438401121385938486187787868264702029310299366828906901865248721410812847499975776880030533738268199367290399219944343008100560805347178419163865375281062485985920693542296994827456345892442190780110747831963244957078238906955893654483321385341389327022350746848638218144058285457608985891814117261094549010001553978969894434074404934577045807759840303995801200603910051246474027831261272091211390510034842674863185144384814757505136164827488855864154164659588028196405098540651187730579802056119936135262658655394495246182458053799290917979534939020799156070646851293212377114980062986595484314623207783648077946712480683598295762932671302607942431436454532488652282246306411096652904680737053457268629233810928367252933959631426540043434500765035011141728322341022493941673074106449488778686790144514414157408478773440386240332741667333927082614390506076354984653108928445584073371246811075851514258827556817907909134818633020447348682655765129795423447557573087936034052426248148590453514054006210050600566684133805574084509444714907464776185832766075184357042327400367216974946393991942922183245432424733477744956239328029389461105325625785115094570214014483151130607904596765250198192526265981363227399045165920225994693898680317807432392112114682969809263248869906842280610075838825456535180198136529953070121850325152821891843106750916411448641966913859254415671924997352792819796266662483522951985766355012896731670074729956092184865908586987241024288388668710191455395855456020168745457450799146434099324384624579378204635100871645986680779578959113952243939062017515892450906477110695572738528339775533431036292462696869762332166132723965555183386315109124540455915405755194882902463034507512487824343190016343760399288017529655411428256942943921634869509025892059911157757118647829154996758372292835919632850851291625145002998209199571868870507484843146026532143125935964418638136120470138410153883636801453020536645222057227193489774433358013615522215170004928804075316912771234518017712991601493953747747649738682940805415376730549438572172027418535390860038132673335284488294041401214926473090757061075534949528430819143026438973112610771907612302124625888607593791880735233759594260225274735341303032995584416681618540716934132715045384004459218059039080739198785005064409663529849276703860760059982856261069605915487790497361392247581304658237702678578508829915628450953950301829152262469450067376325005679225572518105427914117158617054806348675594583454771320725500426423380469547155163969375017749318285045848138838567496159649742929903543932775026195738433945849314274673485495685030236359451484506936583038653959013660612074016846262515984124096695083291281017404563203816981718905325499041293979256190301594321712601643346434176967461931613968536954398566821786084876477127295881188186820980297587104973161605640207237732404324705445683918891567047056720613670810004112062836016855105525680129840548478192787990941055574615759299230855889277582441852414009430954280743835607160018728083631654972270763853936034200519364134556480561389876342715834296893056697593621851387219671309879527663410564502761249202076880790390520704080023668011481605331225717221759999802628142010887072448228908551029013449093875974828694785822636201399215917805203542355541927287635128429594143579076170614729234401920768097023952639679501378716559238870466390483172974959430797572544013613679806202441319031226682767614295226463886646388510949743803211561423996192688433444378991329683409279925476162809072536108528060715836989465003818880640551838278132023317760173763889542520910552162870648909987745422724879532113678288589275632450884874796656043111702806128668333992576344030513213213336531835331590242638336449036937998224379497438608705681005835575507941355746849436965048864527935351714694330112923454327618778174075718666250546537446682684394996922956840793395513601862045172016062750249475740567033874533833995637183530167495450994295071352968572459551515230366550404472117134332207288436799246050564427946955833965654844746710016487858667237325902787818327647732579316793243061297841284909353037748090887244713603952126460016651016108288944146623986230403306763193028403455769010680642600864375309091056394969568730636807082212782048648138204837428369112167078453474938613031091315419081093652652691156785710683128803747390811277509852481147155566413368978366380352865247285648828610844012227264369713719076367144512097058301207079897713663969678692697193591964047510619858711490607085896217330570153226319635611307744445101351415591939411921389080785726559575787964083598533372672330480672497264036989209431078477715959964995760660316959796821039015293719501375024829734237096996199100898994002071752792154128420290578501196091602000713009272723410599142861357750339614946371073561600123489252468627548496216929689482958144023954478801373255057534559001989411759674723193878145789684374555645338175572657054859424767145800425458273615548006329584203233919420826504369930866484839356748818131443980488366198545003138750165657648611423126663747335719429954641867743301513656622336438281407277244212244966321852536348466546143781218922869348987882528813814596609953807158783330734050683139499955716486996788685125945101427667089669408675366763104878114190854595819148972582288905335989659738796514258387242683662064877978734015830552087192261293978227042803906580450305488922185549382545227520316661916395807884123833454750641231968793297109003359079969972541261745515177339878846101049194051992169956491729254694139478479396038847223255535419535882579796828991890027191654360484525828175615103370224954782067700649441257767159964939523857227723064107919349004914647257272205672927165191245892123914854621625154955703266788438402116506513638302327062596623752075909959480755693723569293333161181209441950037283921045260387234540098765011522390061023262431294048817568011375979647776554044035326897396793859204887895283686039460267174561769640258047540968439439166123791449168319555763108230094666955905273940659423912843485817103838981752386854967221844063895792445428532778870390433192360168461193150544957053824564189457708152483783514555813348190335253130372511827408877419239228189114806895428037377026508546262215176346816422304804402416059174478356101466786517181933802537267492310618534540240644449757775248385504464528543276650289431088009453692545544720923375799971260843750831535857407880579465476016186456677690687451264555549897019601694460168451077552598638057351432640763992723057915305767963771599590723295612100762672879867335701134970597096144662044906448089875426694838251039130308615640037458753390593934470821204260747014391538937781330237337546055334747922714955756013132182438506909123649728552807394929939198454696131938602795874827191420622620180362520681541386742669087769063762633072941377840405750980934250570567305122188921832965787162287654522968540096862422164697458457833742658506211620115185757833251049761006567744007310670177194746794130950773728927062137777139539092125751202748459644328735820399386146929743228879418520172567984722401942109752147121107609872673249039401228577524448131133196173212818831407953065080122382717240892043849858300261589884683919731982081642919405308636357395486679454881513361228765143747961322663202633194927838275758656436848963494523137585656160798571807189058038816182156121933628372480390106425934234990013119071872382504028716445104358404696242300522936343750512804445269614767904118128093820307832051284093308170855652016023172568503111094893308403292705869631365856228076354364469286647492440642982502807652263703061561162011013341737591318685938639208160916248831740053616120017811843108873413916122793561246277150137762004256792262850759725125051286817810870363579668150571638293882347419942505441133980178561304799320564707370696188952118145463773593007803018743673459386540676225299535242532791811478673001406306847293174280519372102672904232445068091687406245470110558160670657497632860929858581376786996720059681337876357223977688474841494144606987420588907817142467330053460905009595664627372139245386008185899283138148588362914782815251779171505836433209493489828542276506160397829320758763089778981403788921608995285585091368035434505761126991130849359468431581663171860331029217661849996334654175309511541888290373249724711941755130990116093821430235993513895175397812346868325942261740804740510707396854595368351348345768579146957758223546199389153044794177850581616582492838985999314077937064726315391525162892629601409420943640566823762575180042170395948793722456813374099025259152058196407759574191516623603421736162819880836590649362707286610094862408672018986953642564343113232261114012051852110126159663974912201159896882558127406113630997159906978398446123371142075288424707584223921756338192086856525257465506772939459750072869020723382106552224263722456831316882866299428842176482315578940643398569838218228156769868175005233577152841494814168017524873219431506405385230312014998911507104611215565852111700190780941875346097192956742052103804709195364628478792063646648044682950501888270088265747449157862279456308242775510342957416686971304795942979624985027773260217980757297250785653757012556977320568280554897138806642235461717563520707509468410242251118006838728884725064093892548868495171103533103400846009707363942527820236652226135952114277586653374117187557012279259130226681343266362727537059126449415459039311209603978222811233803178201624542317256785540717954534151180861362628403094138172731449601983241531496140939790707360811648796978961232666408150307017280874251982350586065538075075542258047097040171156747052862542921370001677421092676714581708974965854972957493194920724198693671493056511012866215345354749682798047318351334009695452738836663185972933832747827407894650644014488835171491319685132714058614680650855469222655980708536959674847415075136411933285801025250114049004920705480878642046339716638336670106127523465846817848930201889875948241140288691398433887991766796200090279749378806715288210372645516908573424128615383242359331708465054399019306460790565250641374156948233502419141388496778388488706966631472888708325282472079391874854302194426146518806163299082918279490992036513829753427985117003252874748992359059482605873103025144325244273516312130479488862877299380444271697434509487406261032457685411923226997098978011724929483279341691775641923324090472560753132576805709947453841119353770129656450727384616315021807924551500618291826097326754830765160224866288599427399883624560209874156568685629068084514345405472817487181171783383331573812332315899467289420936050525408630804060232710128166311541820151246773613511718568909669570530876766441086246080399394221768895945430771118091014475069251359597585726946786686556050435044412081161840920169058794619232701618711256859179709333211251492753268139250423604156386463316707154485337975905553054363489901147022467139347210173148360411851635953064530441823764867143067131843101243176613886825744262203206950833214353186269011644993403192563616275354752503419363152292696206163801006616644730568442697380124022293381647293163521075984639256303019382056691919259469248498528485811497970988576421399903117434839479691631579198219351933346707019587763260354011068203186532407079750090773969945718644454773542101568417894059615190545379805394981716626240682484401944901893048919824069282993426770168010529461841534671300583515563165659691980819330496958305703125351463791494868534464407989366443243032856591421969360704871174942569100631654562257054027524173364244404468743748980687268009857388342982962301416041865817175898742226121785655005299272159681179828740141035718460044029374311936464019877111043408887762846465110680141217364474572827314362214778086730935917695225978994798157667417105991688120267461678015681538531496574964965322281017236163983541476662055398407049933388047057455901955149653292429645584504603118944218413263482265760657906635882649820469759929125478439855073300638518214770782014236864971325319598369817990868028555150652996239867007582940990666709855649482228376266864414081386574298502225463933025584548147045426878530219701729885329474901668530281326476763737769586834093997071230410621220265876662842644608881734426487298235505008883571554356871852086280837528220255552734946084429681130787183899954800105237778849199963838085860258353159286390640131354822044794947612046765397134740294584064434116851253622094118787008448602841468976749955268062424304737767832035436129511610250805061432380433937008595564298532633590973885199980673993232421418861056566385834011515396981122644355060497447310200143383277831188624869658408199452797809437865844123034762046737732899244472671651170826496756242875543467614397921398755614782710720044199107175517835240644875023529276498847826407943770502211534501122250454504545269080886688835834020372186612541371435038180623710711262096314021296311939363871277120235882208374046446875453755178970855127148543188828569983428774548645754655226486080718128464984240830078033121680030855613401387948581622693165244022043979354640965824732800410167675629437935114209329152379439636491808876385798923340294567637253512300396858657582317392432960673618142741853155511039673754013521736619876437555496515922766615418842182612509442580252499414697094005859660613508237054232562984154991169968231033190752230099367021674223209815023672800206302607739806269438560630288373605972530370533485630854094061462149833501708464199794319246656852142156821354404829804586671299473425316812967102092675003588080053425115336482256896553794632978637125162610377917427325627426149948464259479611319758787441135677281457689453048422021427371471592511765753859997672693487805930378006183910677431262334046194903002314628369471796657206471500993947462815395398537957098629674407707666567767355790715700146849143400102870690929641717611542381318865590466904672457379118963178366333671946636737861026438840341718897351727932455522998316241159206858412384280033425155976982672867009209505099077004216122688174466791476781181581281524131949001871102755559082207847729941707688205411771399099919422880736496074636311797649261192612072171660954624918869082454494180074917036192861741095494048324765146760730493065382444245760536104007384299023004223380423496148874176336157155542477896969656234911596138763535588520309498603979151604437780857981730009309196595058058878335762709298210447926753689211592773657233771726236781566839148701253607287983003113248208343223504561949501177824048485565082067189278791923522836720804464615478993302756339911328407093997147237253694226928045863156201064730174532532662653913770482939353220461640573336885842619479187433103249643668266789230723525942230435011944520803358841194216606880614551730654542424786891354993256273819307274470597061693429263380368464130819583768210788592487120805994717053340289437611078511928903739454208562608613701706172734382065363808436123030050105362623665093231609718694570637714316566139876163979377921802392829530299640070989040259876480297507475975506527186730445613247678807338730025599416978045465133251545819770023115417687486911684094438427884107398771933113030187347871453718534196919110394372233874424328648922125061382616253586199797177470650094565409690137970481629430245409412214606338288062447397498032421569692418204080828104170332076362659272342854733939751631868007693559388375790151837205307653325699102125676048260129502444183886702896129145614988308415536959599425085906752725323612895546510939113267406791507268231721426883511650093858154364185058377149626752575897971410353009320051833753473405972810084314668189441080616449402564761650068302736382992917575596452841972610228865095902441345736933994336694878533745469768807267498027100354741895514868399606638477502655178272237665129778847904910077523896765104666363474147852731137764862915838696806499652536785627687435596106082502810269846790937151930288412894789261935213215929057836020010610797865991878976714846151907355800275278613175815055650220661037958119410976995437837990231885596162035654605457258471608016982884855133230078917904439031828786304081628793921429988294824475373434714754687249401789836321605150458023093977627645189067083955702469385628171478820825784790869135559095632592830779958051921488453699413207707549514180989223551507963846144514059606921524146174130464317784624317508858160675471941133192693852350004182472439706282757690696603134755173690665466223649252172940460278823503587474476488137448045455273754282601045812869653198357765726026890026585858877788644031223638076976234440473943469036098047938056550936888656989567697794062828644751859306953363374851200478692942384754232713372313106170284360463494307225679754410611761596354277715082998891416544476951024922928570672347446772782795134112558773184611512055761856410361993266582043316969047808557114355866881060434681286666655447436616062988520947176801002218145486619498541963178273703316319860656556252095421658486211968168034616531233254406706953095697055256830472455251654856688004851113648442524993043366205205379580447537326253953191117577661950478232501962471731166338835371326222910395117015844721447382852024825934904840181116785054169843185587484068959089472932919228881344396387939220117190507032589047909182831747407529100534858216169306203992083606339468599519875073077980288815945208054880590102555561886861600820231274317210689453282717840311335209410307927578972257011084470323249272734061144866876058634584180722088755830915522621662207872771730083499362377505812049384676994887913283183889116845758395771724595998853468868662701376835615632728999116091906750606668764816286103412879953059258695590159127940598202791663939991829355551378574282044640313175886426859151932249555699448975317163528027839772127475697588090841107056313441566527308757371398386638354556992297030150547108566331170983753854308245048602868858036604771618057531085240337565201985408917577925647458760714538305159684217772055788375360690824428337782776331428274649469649053914047427910012235571160622981291982306057573673388598567987447222578523664892124186798091406238270030356369410663352302504888716342001740649809319307874063768339346832415437626862462957477219997741852902637153846655473475349936426341101119474533227132486243297149667076804464849848018807423080298986424788421891304960188634161909100907692706652715620343451379520514179888569380370641125750056953599711840647295043220506974413208573610967809298580608065336150143476370019203267140693312270747368529882905256126864411589518260980797277338316413278775210327980788139321964428716865862865451248368291293316069296325462975354876951294174963407019872725343298761279306928512826062205134731611085939747966462939778908066307783298983555174843668244877077538656317026172791610740059887159564979557981925470009225223347587355842542420033904766215329289719627902255785011080322995787448507435613750540192059241969489871990009583300651941975570537738906335962487473503656617033325802281374313992318337869496741462894951746256698724391905366261368822866139404498537054176375871923103965759612174181197230181105968761526732228854778431726261505286188646276947321109755487237444953020095226273199501585022504418919174354203487946415490869912265956813925636721920887972730520520605453862437214197093807809436239561200702401785098654806542852323462964435473022380749493867788169292151305334922505866864330642257319402845427710034367384663245951940909445046322570696092635876489089633045665483983048638370609612811743216154424288897749553580252223036360269622355127592922648545451392238956466568220977105492573155431319002041508527141220863999275322611557701949818600977479478363466515069327759032931977857024947245615422258841526946648974678951230190681825712054920770119660269214412058776936683649256939829475163839493482646652110807349359818610087485561733429525589627963714558831384340245075210978402653390971629109477463563060979050366771898048721835154873398091665281259979341302778008271117358323403466641580961925381414715134730116603963270698875370427323263747239908015879020238871479500457568630471779171877345393592681129203083142533566530290407926093352346639692573618697426062030606434156660493113020666024305750108358596387007639806784679711991840280308204662986201837167392138654072425329863644864076535980591013696544180693574463099605294723190524216455648311592710821244108841381865849038049960665388805938455148728625194258738378217117171485724847320351338320305718895632635530706570097101546364141076958439726646181762953433305762227750222343368912323312858884282487703968711586204093650980979551001722003748496682954458206109039125716376918549032770887281268155462110433445689743609777433793421525244431547330455127573712044987891757700072502915069121297796221838052531254340762982491490315448719491204341890428424869853630396835594744378881009235189543412288693793719506963029271694339121480860642525879018066093398402307516773225353519138211328923153006266560882315519251597055482981308016486539547186519974649305650761300386880451186754592150591230380884973981638802258841226249619107103413253712562183663672532869530595332678741314115147319896457846617925126901269727634749558040001087794445964115671413564246209172205541168764348655460087153037962314501387073653346610345089340832766276274099719844026389316060991716878395819315484977688716848820080089781663606555353737152752778475809540587444921224175458216665843209668477295995206386425154734582301432682740339315054260782094909133083381912276067715599573663473317731917225068344237815086310934014428631804468550917602839048750132036250391570816617063821027756452342508009830804716674522552813943894387484124813039632808826668448551599895245030658995068615304901728573186492948436753907901234289801432930503695524843677855055374925787433670806079142811362889739320288650652188801832207278244422705646116241304890776093505450996936717766088416381919151129865667205852141180223123703888109634480073218004117769687583778991669114033904006597533904466346510200232918930847670236309176590855182817314115141085616769010558914027628119166821587902655773879703405417824150458908633771249290728771957705351787026124903455441517294353210542204566523489753839953134844624396814456704091076069145289828632470388932890835219807654421491611363203270947733229319933275448042778692555466334768650676455520207724200189173633203026926380348209652868556282715608882104795352160505150666556561730473025335703472530412759643571126914543418603359406124734235478544006322859856748458142855274857715599218864432172511998048165303917809354669649218804759696585023121586274700033185422687858946714264505852341372235446466446919144594426960320891438616366813615296317069518014929706644273360679465627447684157056524014621605891600430594204980015659181678429190865394107314995708738501668355784381455447598230372162674375756201289958925883858460478211732006546204751331228408809512572477467778772544789879013871909111549177862473698280093054184417449098331066327186159386958055103829507691811211632268727948920939600648722490832517762958691913526380775885365845780730882903840121976298330906631567188936629412048469075680585503494033474932132882446974265756833197240025396894103705306233986950854381108725939894462283249503450271684518087800947549761517758316228654797682342940561616537485813690351355203529300713897400826497069123338653515337485425096277844345719545538368679685910181721108965880790163234671193940474223674178508735319913754500759054093734417968985129881862192286554907957705484448261171333675533976566537733318031363348778731205295479746050660692099038864111489306759840120553336326593289175397998326749019887644895204440316867611658887333006360118315159161740617717793054416101470212906100534228939973221217988987081959682520439024317750203473796713095625458672006147903249368947021218029290665196415656614049561056871188777159316594626107015180991920581862052728993738601925149280698211943687355575544407798674976946117009730427730794513479721815447630533352452977912816979445377037170202418976755998982135413369195932033783440059351126351625168034115011137575685106062644510063532441846569388109474280840400126494291162171836090172333343599126341086818989939524346964502262258827651114321052591566908335859812926989514032515262061396689712506508589516286508885838497696312036832650453893658902733344897841907915438303947098824900486720104080034140909524985741458677537849743004042053650015742762146339957220824515339267233620457268661628083771941329085907946922395681851881992528028289183632858936610597594293104318097774586177365622779318100208141966450977076636078176943152431689460779245673311844699676905551423138864689223690018390166815296473339150924056704202497657335532272935929889902915146705705218842482491232660105095733828571173708134488258496661480168252444152852987233276819676549503603199378449526847081431046761751206234715696640109645027575825729945497570999949544479898466713169587039636594658215420532035674573415413605904735514671426921376106410974288474886661603659454556516525461645772042997710488735856561170872307237774411422152890353692851203110530827536639215555361146473251791479414102183540770318749981675165857421582304102380539392851452348599964451174750966934556052062927579646639295719406089070374501544148692331263173265242799779908947771446393099737244216237551247946326799680002156637919929185443223367399354555566871693082984238782023998502429132404210076840406793820823761849573810139127646411956419981260590191542064599830716853928943685986428992961040751559703200142769619871329802250561193120593417056140076485130825472566982611214307859685690879872288488453236174079718272090676374311944086896652489102423826816170742342789406507641070204436986357050268208997253824696661921264474239448742749878518951947215871166071354789433692172183676830243028564278227157276589018268183903784046332097023134234319197962280186219622828974862698641067143238269894548092378685041432056585403890980369747968609186284697950118682443135908796244397677119585816431668052385737326270342718001465613029463681902857230331883370038957488040456221983040336563334387195610806847284057623915341698407119901359382922071554335463742716740920355980758080400176770012423170481297822983106160730797740621306595152438987878245716838900630455053003676969036987419604702791842917135916312387522561484710066426525159513469226935898614748267193730754188930309671630076168168626961509337586187909547450072103603065178610602268779222779144679499009631131086110763376552483810483090360962450127806510015320834474297369668848521744733641683544597813615294764690750642936812546146383316806897309123796770623134358021102500829861076492553773159272908477362972126662224089845147071232442895579995728976781161303674078134644757508961198378557819985311528694701024204843364461408323964125682013480845534256675613403789183804295346262812950700828243365926364073519091380150311233269863361269129194283915224391182719667153840163385198036614211178757225214291675920790893875693461406630804285941845949910208149061162375938998298406772393223965849969321446538585856972277912819240819670299293834665938792252101744644525934636670015976086732972558750960356119426185259124992654012795871947253184428226678503010754566140966140876706640894502771973551837101836803934817393294671879237892235742520046405532920881179891908433460205946627730930127088848546772423846083153665498903012860683460620859567944695777638193204089406399124614960155617910334826560435726387644635050138503183919632452441043868891820536029975001938304126501689653474188128848814184463098656083028890371678814074843538937448611640728258599255302887049792986135054891511276885485406982741057851060964609583694576754395307688668888852416012132758908782416654922419440114802114914004762314298379255003274245246889989057068991161783882781082028079566360260996923263679261848309935019924648401873502354746996979454119565124748998129494846567236039180327092599765650318162568374725633138802939547782512284393817733944367873628467081483565510653253409239667339660243181137323256160767482418537566200266326881578168091559814933102567626056944065959046036479656821742791351533124706551513757651342526509619943531781223068668426575057540667890201098129205286063865618562398067424764545347845584595501842413754243016396882034016854609047800359464634272149717532324050770308502623907685913966505302663731318906713074853335861950559791663795540573839642338410733421349983787159354358168664564476989713091541677660839012813374359150798797596293290970084156297964099630018251165262593886904668665637006672075723482039017597980034646222453575776209208154415990143200931382177217626756923217340543404465123497969660995278722145464695037761365258166551056226636938622913003140922779932096888150499225567776020081616180826220022810759684090240629371802101160234107040429189112017951427677933960442448153114021641682486692272802417604768301760684683634985244361273649206985258524081825575758405952768255745890183797309085345437603488376420484953778935919652591722949716342254845092110394035687031435020880673510335330580280521061305613664616252956091680619709312847008324265618667935374952009826040565696946879799769878616730574217272898420039663651801519115263791089120222193683366013564963161393452640334366532696508606284456214299815830756582460654868729907118786480289770215398704554546542852116095209183530670122465015662169256693093635690027261847387844088601424235451285074369470934106900314638253254342306796612620530386752286422395187060160106369404062378881172377279841496721721787840556573845013607595547267997165383550828616899099714181656626154119051398742605771957559674657577701401727259275253901482365424729257862444775093929512957102621907266367622017906510160651073717580125129101609363807145764035934520927208116560077116475768712314654554355721241641439051040047241039067291389583877830414880015272048254843051431983460698044378099754510760019707421085775815074645216858680270081381321650303527988863062061696214652623918438244952267526215099286782413810475560222238967101388179854535038275974257033619644154653329690107640208230507833329870273263078839662733271061113728265826936341164944455349792326347998084533570001991108345411426734917661544946832748993665201294588859282314566230205907287557333457594861211682870034084284575473663050490361295136183012499889231106783708220217944420224873802476147951950142718747810245815694144275619382937478183863202629196471489105188084627555821010585950284255035282284491393200096274960622339433488557189986457212134075387521899595752138049988690093939025029838628202165072572247088675685631581692246614191441984615741525923504265460263411280094352705471953440969567061618093647578095586618525711090091871850904744244256373671569092289584807693831902344441236037245909891556557836013459080982880387293169058698733988732477199183453806045225877789352408364039729190447760691979103996742833984677588966632614653649348890580470300531120221935463255305787192200039378141806092629642361062716521562169310958520904833944228349040090707658655680612630989084646519881742771387270487406482191311889367398278552363179359794029810170014614336968537106902856789030696600887041222213913018319632583815755153175457036700694501790699427627947279704954088564707829170981799860108849322873835016495404702565692754094616220671196713123262750741341657964685147966184954631154024826098571597709879095860952345758266532715078463303783275791747949564895403420926623221001782977112578438046187740883330665718985604696785404576217116803730104514003146111952619317981863330731953871660214354678973694331648913664354693202899401564034637650347529429426291698646866214736339209470745265211104607882783554271023357139401844476759849072648229129173951168304040218120782268755898181727365174505484934469722957825826476642409614631761060867346002902082659120659808360942620950546049563178686709299736646253598556933508324342459509069596349447726584267390782654420284572305219025161942734840442474541807428987875970895559977256881597755284824400471608311382511214863298874112743889365714675081076901708073804271422010593655312437663032505179648980752014551709137177202270660880250070865367636765013852914273863004318747011463109057282859127576290719425863065286988966161586751289303165213406321139405490445191853818603774358153032427874580994042909758205689788771932435897975363955135927830057609310382631901828915863209396119322062724731859348804058095403713699898675572710207914459945059118177230606459126579653524293353826614800043405199624985359622592719639701287730115080968214907742520161339631520225796357157024556642456060679339795678848331842198810910243533634047609386813521157534928179017496519238985476032529572726130646941899239884463519871079838686563863907119228670492294950483850805671679012161000188715381578414425606069657439647560492170092024768404635125193365895832889811576862002812727451905796281475917643122636541712746679224314158418307724162095607684266027152051696256666933275609271299442465012370849651848503844360473192821188406336836698266329299996645957249966757269550676543045486423890979174231843748064011160421697925043404461702144920062929570472993378477636494968671443853176176956884188419088634002685469119668841155507157800277440085109869304746010448848940651759060524850427639117210567765376005615252430577760957425145485357740176361886248695338520783744381128492716561424629030570273727544633645206131845730203100354388151198829811134369285676649599426958375872403067018368390647954212161010293600241721548510207445561876364938220614792358792264522768866871096420490617182701648248810375104401764335180362110535233127089546653425096493927757695314880557162649700616373796630301840918400587556433437369942186941663184452970498715777009015663150207341733581829221295762720589302110973230712700767746898416235798223106410920693037515980219931184321435778474744517216914230207961799904180696882729013902834845543008774393663336899570309169518563873074344342354487274822776369376145951792440956635502532254527432478876562818570394060137145106337400199286413945282923905665810580850468607064295652410208879398685753513681488095200317554572205338914183126039730167527792803493551899783754554440201096112038408897260642851668644998003357281953346787050683810764984564398995048476605463011245154841455055531888046988347910904671607734905785286718517960122608401595568004682599680072559424727109637128224894041429731350831813753849592457076893858142729583247483492703025063823952193866439298807884513802716236841362920923929282784967936770951898991388678959845815256759668996950568999463682970963477659405541530858326512961532214281353902662617548406687682089117450290561716279922314020460263368403277478319537926988639321330344118270573361027862734537124240202080895622820118534807558125161913610113240743542963627412702976493581526811029837104319904326630001335221652977042289482778212882604336339432160502582098217496974116891231976685922004537304739568302250618849065196304627341974625443873035287824852554004156869495514039155885951182815007031113583307152236371283865789445668144082884806891702600595946793774536588035023229882573761829641231769027133260346843542332996739719121847047372419753650997821023239508761280043388416585530956718457966067111094985379982872580987986658948192333393086601217395034095711920602718807688088336713955840446797738076425576421354307303215605659973506229683875138509927470441469994847869848755333555464496539157590858275015565083369748825887640056399598873097472851623768123163427318858184400113486837211905786115534189234153629156641115031084140160846998409578866942106678843209024243585615480322632231152412269039758829911258192737061148038109125926032869244339079087457207470856301872046595508976215036587677194150424032491138372111773953262988331546780560568456465751780931338658694366193763187757449487616543498296373526087324929171333599296447696659314414212460150413503979031429983508314690579681237233466297506419597821107727665588618660019075879257567341555185655341522631442551935140079707853535129006510815617440123374608452097391674475317881890334740419917298670342587638647020019753562692827972800832081010472003760861078325532827941753009452055470512631784733245410299205913010939886650524113660642670356982391949500594270889856050625507694699388515101999984136335578206719551523602785752306558904289894979475790122183251850936402810965617077272345457034014116453626650628104864277135959023262368130477229536181958103897412373716880886388033237892608543340275327368468177001177109334016251763653754495822266371139989683296848362042202742885161263491724920986497168610380604498427464013966317844548483437636774742248959594084726316173891574444437669323930358699759109335616947714890671537143956779280039929130359083427158809900272322740868576850278810219790650987651887527666327876823688817852062412358868156982841350884218281996532601220354987694885897917782132953000219789297047176393133533197158072873077990686476102854376472010968741694239733693403473813384380962543797651535280508307584770171367960206174263016356025598215376863639299103987072238631525091487082184260593051232040112653200261731502128095699250279139480170875693613484935730762472809801196931858122713047757287961625173661025765389660040573878013939631463860354397461002632801411709202240937793119895833566093419712462503258542557307829529984587466585355505582733450864311701013618913682002536282128067712440518168225387980077392936791536261591768949359777305849360016218763272620387429099283476198443066349122004913167202655773121566698677779194318896411833829050566917440372540663169688302264315711938127805065636287267729066749272430865233793214868872754882398893871528302048339716461208177443725794978040060052807268827906382281663929912829435219392044501298167279549603557518698601207326198031892278240661936331124241541145137770607212871374729553434740097421447685671823404879217278990918591495981753696424203611946854314698483566930212369592049481264231789907360372358009063336406468018540690671268979236958582673006917387239897450775887895305653656890188178408533655298503508493390320912633213878356395655262773168273715685803294676224923913482823821707117066936240064386281694108950957963524589351400701727776175561706683887668139441751612642052404814453464687149332618277099937688471411150538464836822691564179358941086584590595487350575625485288465240160284617442738723661570004178105130359057065764742952231603920428881296078470499754530534664841282744131391158284262047010402878458857989231308285961853921486898884854859157061790146114995025729342293567130664407722595809323611519379173080659554137098792944438688777637533840888870402551045642456284395215099943415899623918410394722474086679138731777661220339424604782932252887561333579878708825978992840434088008516916118547284275178105657803298390906583042281770679914836557796402935503787639829922504828164239259907011278788295189730483051150026183749018448924304286299311950646700788744598589503081536821004561664966325717074559740977035621201722864915128419636745626270645082010073820235362075575266989282800543001610091142327613659903446887680358865161677807683037133482851078000785342892132214545627353749658997208352299193529186732767338807405224249827987627616162414738153550725462601519384682555101808191010079873039274024077912549972470494432131314880302588386417682226608473059245174282554103765217784769853195608106096309485123430285518599188490628913198533806209180642292257318358939141187380063166451940774143954434182321236396241684374432776487117480874969719576320183377986853588558000699986856063534006823114739066203521094027297651299365051649306418373917274303938092495582745034656996117007665686441061639127175657596850190944423235852683420020522070276336405026908652662890086289912855093429734205739215559912725988474541803290195910051204765166771696854115932954301316054858483915357942721145848963429112438439233958473702685229810197499513212818084232520974755285311630473819513813205043470181700443387321694247897656731925632532389325828643370484545867297716336483650153348728881218368334295690415102895846146436009427546416104935089785487032589867287087407701618534646350769903887585470224661086507289384696845181234197175997142162776426913443260113369368505633296640347506784073403189684558704355980013290860480560829539780356857320210839612748880427686707031846671064802503540455263349935663082488217363408407425213007315604801461962903442801729915843301317235504123291034969552803789414950211882065776431976064146311103044555576404831649202672565794960227557813363301745489945994100991727205519750393096745095094891485055952914271559609577953823298154361795849154162276899526278402225675295571656858307714170169145758377021361336274538007530208058558506295237973662618277607870925203452831897685225492570911557202159396929526203312302229691339627037089928482985727941609767042301392413427075837743221185729801386980105650443052808783013511473187048293455878864544382652933416426596527741475210784608927356512009837452136651187545883859249009713679871155161136718388303280880940474604935270750000637677667484909980983090496461311009746825936795021570311661358227705040796642929569342255813513431242546762406134997359557635213915029316972995044563926917674413685926782201805827735558420993894836753295663720407128490507516439683956739054519029953214101705444081680483337499376272872735778364910465337882874042877480512732900103625183394923336490462136259998968668435664110476412715484545778688441151461034032535959864152683714609028052009769390582688611783995568517755054170189806526388702797470897778647257108924922491514674075221531244290685098499709858028076337719306965504861344905676682954144571999117167717427619054049433490033392071150257272710587165778965736991155630620251432605221040035361310929526661898637521209670473687960718247793152468611080890192960614354899005898428831980893017483986739009198429100541932158600503425823562123071145210767346164538214783070458470325015388964240209767592010325023114295765209686028814699660632175925359045456866321765804537391943063528597438527731218543566012998488314868767246221702657023853104913531265654479896168808736204067716383828694643838842112908329189990773655862787351744399603203227663014348227168917859934767550619610071547152463031021572968520676807455264537134686632025700806788814247560407384651021701898421283693511117113020609964788559907486090599324996446336686258993949522790182870955768119486367277489055584661139651411131915051460876855353255657979569879033108987197554622427983771771269211895714949131124031394125231800491535026174592319166621745331966787429464816836219164995151201712736629618398850876457660436895628300924094577521126512868386461606064743911058767231529810890964911861598522330652118463272908646818452163757436405979603716054602262996149382762356781546483532450184220387462931391102662844222039242354503973321607279409054657132994510257518192488589601602930220908341749282120226948045207622968645697507932225544919847820394335402160687417640741360397456761806390305655724166378968588494860115119222918542333180963732241061459806619840165473549374245166366835926436978113932496899120491943499592093168151091723804087527014344372737012367181454365870717404240774654886327575568593632276050351502422459520807832584109957515774324905870321942780079411904215885754609409891575840253318631170335383968909412699354237709350259813857259437738802566216476409500578993044001360031073517688179169779587419815761445018522880059574179931296673432885335026500757591401400747298153027698956741161268007708622025294430668506904888947088869892374254265904445016411749444550507608292818816565431799842004766661502587473671870721795662151339521969215986011769915400995196556857662079329326865992080280017745277477535288888447862918532654131539438580210041661533523855966703028256140106558992909521716968464036619620394694356893336617032307849469646136628621336356865663004297230535715507512282425414414503136650906641033197878062913192317931693534903497369760255274570708566381568068242278741558064341662911299699802628609663233656717322054850069389808107288440646655026031178533694974285406382926560892923479177024106530315683444178165240250890270815235904611441165310411589304091494386932615388795749683745889099246804743377236210207022198080634849170135978593740580392689836785794223439029940684784144209142461321495963699241094456306894927841845150149171456919994602700199812811850708754811244759867370481676689592931238553499670152142301603610341915938126540635450617778875593355591794851913674498949339598895556893534140316341442931343060737586111662950878340775490878382231478562216564701288997058514871376366138776939177776489042570971204959867420723318294744296352051848790638939816743617376590604030104076180655504825532233012236438650831411617557228049923508625294268179856741373902928207671772587457657961567292641836589702570928331494202508660810810458994156611405347345972667079064638388287725677924545043872783549530061899847087310749948351072198651350070300664552370665229725067017476299816655522372865122486496176008291418699487863238044253692118390819560292490191625614641466969216891657237670246169357226678532907654044036716792872883140848825964446141914719928541738530947742556284992464521587417282335449385830370578993567109974721863293565549207539944131176157717210126019690260828389368754354774047786713388021704541058813224740155847935743713373892732685816166849800602698480566433906341440562766440574847466915394970833392994386121607958269936055792424980961768485280731250777324868052941860381094563149124070373400059049048139465853167288829778853703700779691743755753851522527391639341720633259744079829040131230649237189122441507225603665515706597635315274804011893954774652601736169888147531311670810306435211446783803711813195677563403135564191727808236270924989820279804509303560762210363581773750350515972563409073259039664196087166136860522176169079919440414155135267782463042523558333455514328199943513655219378783134606996829299673282164339338089287162629127741700037297071176337715067467046667134131637386342732826453838489966929262455236922511478950433616455015562419546901049773686594446998645417870989317572646078867285257119893384102631187112660585075980194820817471251310321936295531375741904264793835909584677431863250658651498569923985115946341298852612945392284249275410490291091210763058383475648305881019038081771159560526639516507311124619979525560161507953257073041342894417270941664229628202891555863458549164002014352338771872740901015370945453115297350674942813299434912375620497100593958638830326925980327327545945144545506511212883280183628582093658695378215231407417770723640306299904329403061763756914357169533407002088489683626647348161684073028262698892707324882303660600112313124904833778290619493755487890328338267875409187022295379793167457334693767891440406711595034237019872243900213389435952347332565055206821612448490239466511204737875088961359831083794088436094234721627728796211667863166083678456773743969206622638450213498850960037475905278673994956075370407782632203726481064662016787883631258224838519955238734332502355931298317685111651901018409882061640226039977562503135634509942472706119044516920420932872046493554917907112013437494737955867683765098031861317600077882363474931408019032471618628532598630923381682064491067369065744960267014625644782160641935811557697904890369164456116569856012433012678637468270268633500173245077005141026231441619784732901445250183134089528215590666856476623445184995053859772510508884376623545821687399099365221998773702359627018439344583354734742233286884460900618315869687227546698555492599644990926589754167024145378370933101830513347506860633750715289282558674467975950276797463078232436154465769963127754812859176619503646169514643042748316687836465882414960228686531872195250238209538445465187671829164728875695659493728153297137750433403985926881023147426751763195413155169688578015179669152995957601961857435734988119686151797826774991533528569697770501236194025405382731626995113189518876639868535422019387996389232504514644244635754766683200151436683217138861649868993131090166852100533079054433454504801982868534947749785447175687531785429621064755727258095574393107206046615903364799243153665423210649370875267801194975579716484506271975486327016798720168090082247833045375141762031565832734626321813815595979758859023812709448414740932258343109353885988407080682167926523241041959235444533830523154299382845105796865077001731316142334246643020689995649310663913968400211321812954333322820859902385221930878560160830616108111419253920564688128317261090740998367819601831022418830126255126810034288853871879934302187667739194444875653561297438621478872176894315725824135379664078831335938620219438109502568689102368685325254534604265985485757452620288677337900220812435038954048700167783795236784285206548238464901781465184306724895834208834455508469192220701792123123514729549450925094730685310611353576279923173661694078320089134887504793245459490483436375870325853669695779875648869709975116301630097234071687261725251977239981138712248379121661060651999467876928960057056998134153002756086142213173237226286906279278649711349384728811878630982478789645785148128282561530184146161113176455156249883751384694722107006911442162847052197398528689401618633142403120143838859976848196243342106335900863231363240052241665073521455167760433163328304375137906427405916270329673274397089548033848540071492623465203039309510247276660981496186264359403122261964749995301278313091431673009636043454004942791027196940625749927077979648841053165603593357710887115132398852476914720303513379480970949263949788772063186629673768567669183418021031482209972863482225330284212967654016044094743562458431945916197269807016943643552967818334904882560391744605858752182778988313697458100282772019399422745284138157148456809821354562803789894219369334965312101298836611217451232325958208936440277797074283963077104222799170575336869253206162935510176491856528199616334981777197142107620316464825798463232468785108413575742658313870931314030400683973530095161285180457427791318187663774126801234870275180359186960942392461779791760404278489702827452073954864273661205087339993118113621734090199056545041407641960413883540143102321682257971380243642167276662897809173172065916731162769587517994590281984435999354771085776843674107927114925261800770047688779310034603096206726484188075010733015075841988730002558337578994378455364799812127111959178253485500742593055781897375539003421159258626007655783885903224855265680374083351016928381916499274735512653027963901536929755130823261536048912287594705753632217890753493621490370423088924979907450689459860456348143031605360203401257244163025062816865376932250482953454720986082608127417570295928723321191556872599101590119937908613192993606346536021874547992443698457619666274639927925658875634692093508969821686479530706024519026908344143070001811426985859173427402333026218773998466866101708460756887033384070975063456323538288068523984270021311653942498771032904100010492954242393796041492936449198414684167081142199602605031864275134218205244855338256384928753395696705010910493232395010405943883009552081927617240172685009533412542986640900980810192703611246727614245561017018592117015231417906709405999699226290159213364488614656819559237314768039694352230462196417828410197533030068790232988652612630959098682594633177178111303363310864209679194809814759726159378076978396211634900165219616688891919403619655957118375659294094717693678456218129823638516407594961783118218936977781945754935683142556174819980368327433516982074961036534809916584161299305986633703023049305575996511499339976829908468389561765550240441249049004024681164739964746249218982185786688092846130307046118057319730969886193515271126743484284403406290175860748925988412683698426449726801473528039605179275313307658330413441472169953598569129075906124529852742724406780028495932392664664366584599000358279681158858433093805253511112013607404487546886996485137747229719566295417617899518658144070128245157378131255510057052307937733801598097469757652557306940963997246703994437897568069852799710886224336228028899796486371212865406563056733964003659838499779861657589197565052085886358492354799627984424580283129706929019204247241967060407847994040311231538849449377966514083104568882739266325236004669181172495718127438861655322990635013494656469179338939801840499043386878559191289997019689087128408341696818439496692460952268831943473876807036274986856316331003016602408663992994719131472182939734508659006163510167959668828205740712714934604997852576433194308293676684674520135237154282213595286298427278439674327845701645109948143382636730493123104214929049832991498168149542323273886768945945308633735057997323473088677266929431768654406355291105994580897695252295769027073587098611557705836778141963856672048891620813392825436535799324191853925708066716155385637581599349359357831282737621817471546986022393252897446896927294095372142484246409548576514564971582524348490790736296081948263754863794490643344086197831542070790952443632562372158950774818598072520862893305578698614771702433914161519811529060480828027653007943783600740713394316992430260570266089520555699280541342001691908928891880654932002323548962391677769071594962534522727931095090193282376671227152760451805598414493256686276069414572837072563107172042915454683096871939537648076046955147688804240212987188862383657358542967469625453646253540570532482835473580151461469372058424063358866888521059746367786078796719848643255548350514608050958463570088336492599067750515735297043136866960076288215561923956059121312070086777567069354968704138356438981249368163230123679184866425379934546493896356362535265000489418745456925898599306106203924500060220573671555874568077999185404546800421132349558695918861204076467577481368394317743513254356615747109003507217378435103872253720252810435367586838126315033635224216962726809727991439141568555002539036107442985240291771261275527635871708248981490523342442290844919746857369602671300523553243976863348141963259992157866383377568686754273143244688233114857257885684573808758021965288420085762576865057016349727551217261592351459752463808731105662322544540012953523999147972583780831602840813600103284472440240234691321465927097197279975757894934837112146469778891710681023395935271453875638730764992775722604437524944510505577818134092258165727385347944096188951116333137789990199836828565494959071125507962820223869909633836145735965074376544028129520265043091927837372827713731057625422125982563903656578002148894742593249258772678417375641574128797722126046691904466426666669629046703187005918816531420120815766092446084755929827119979042150416564703230155102675403485506420693457179357285746791558371820210109194283013674295877089411749524309817126866739807569697050861814384117869960375106085372084229082540238067218503653567007702515472956284458544538007225674856099725819724725483003176701288472195349194049726992130460641950680400539104486112959402613187571645880093468771424787013195055515627384357768310321931831138652614164538977923691942840688884880044476027131388182737403575926869094029856945452620608788785514854896947873916926336298779669599954462198785499641774928876116673143292437836799969713838781638017170155888636621226129243406507518536180320407476713015239814642917698738749952647082771447407477047889342023010006354377444603524073314596135185526619560621281968381663486503224667038022542424093165024987011277238892709688287909289409632990215444969413949026920623508747643623005235326178682799862972605595650207365299034035735675528546175026661296760572237679109920265952851512657370703551537899070613198675375127184474822350308000851504689478151095882145334159469783420907747374944700192221591313384180482517029462533063269226334001065903325938335687599067440695939282637822232936061860061885734459848045422041736683280821046976034204103036449234559055292349115892241924693187648260821764041492577989102414038948417219597975651036482813039579878866536007972803374228983362476296098974922614566678790522011823324910176707016633514393178584520505870282946383246169201268277523000102919944600525826617801130885715336540579293710155556888344247905162767071679491167620484942882648248999044870638324118106866082145863921288300914930801302550911607405132179124301203727764152454146228939383737153495829128008364091302928433084343747468622832881570565965712618270905746082463947873453221404773171448843928229336670193814361006787244100204286070537480974901914040921855574911374076715106310008835425305807096982029965975074323936045362544791975311936834239531792289158058647350203263204952814548484211862554606791680045820704820546513793279731909488774453729869168168522590152141697324161240979597217957319729833715791705730610543451970161425367025529237949650183457009407294528854527771300981179219527343008329715354910313104525534311671918383635222533155319460053709557552544244448124274968942388394431097709794258075261553475463252846981795617968381485201577052843496305424286588208873063135235975818864934547022285118414540050022739243433271693069502002168204382271064469186400231126533951079812052634073674208862533936258376579329923033561651274173787969444003784532676047521443786220626389853902987224203883868730211596004158238906548606794153253029601196475303604077320617950738308790991670662279635849281634779546465944382706215647128872317802517694144648004880530778567558809269339741718734333269384576959315609400472007447967213944646701620342122123682159719641874442339790265944685737342526316619586832148496222058566623952298130907673788419745195473727132020937854714257854449783432193606745135595696707673216685088730813493967113382100138239273509443640111935755952959985504458053508034194699901860943377874247272701610050534946795739115597724836948212484951118295743853434099448341080273263423775048892501463491692736003780866872924981275828449258304206033377219656490363603197552523727317667830536532851767993260561779065640850184521272544251541232118171137322129490428610967960416939594567646628852446219398035279915094925219611858232148478050190044527196248016216381864401660288014644602077610715533194439423747159373098159461279525244308590395480069696138650055478535825717674040735123833154947023183946463518970153420388525540192596831093255990944860132743702900170206341009813616013598674856185484233735215840465780160066943158921270117433005815789551878235827369052895118550789820086667225303156805180085839537800893279581993661402864758304182557310727394117519580509132196764185698059314830156918981269195781569537542020201222722288389006099343291332967330272467257709039961508881767765895087597152065002703628012194651433518826736872469265060456812515346377816186868217810259536466271426476515132674131184003511306386151212894837615983886670236343257744766518603469903822707425056638994828730307132173773927390735421786181249855077371616920184882803392358482038516608528960961673602261482933938017322352065486849363352366590806510891892131151831089125539608112457380113997268151168460648397778215757486492155498412029080006351295327645238667797673324216358660831333719123255800311124591238731525109467818302262964151848276357539266155317467676938340882712138149828829455489908751062034722879127829008956274768896055181961242823170495734271090740242405159085777270648449516089668539529195262801920941997615607388690395263614260879176642302430525400574882803429736682007427613724536525323827053180772877543419482653142214282086717787915599444674718920925972055218772147486135740959484856172040804006292890421367235410635987748928170908289036746523923562643681506375829218725420804428978632419246026779652382343948687990758559664391358669004050668701919641682107974887861708065719519678428120415453172210080722824574374529872988269628358998285973735941055232803612457040652193470717102310699890003434648138614959450249957257836635530670433178956502292148715044488922567143415191919930408743978999987467700551775778668560661400471299898985556657579269281977895785848899840734832333609828866657690066426147663296886545500910008156079384086433221906069130081622124259977324935164910479200917884384060493088662951864589029169317407195237685228639171995312412246855498008652801680643080925510291545191446777745990526260288899606171509422693276351151851401336727136588438471003127198833518895363940550217537904719136342087309016440157161097394433028719686935718799476583805700972837941298643470681567871902529333393766447425441249595540367238062726573975215693157812304450778011741768099081693476225241239187335649017117275898207817884453830904456367813034249265793629938726871816534281240129810946085915700296808426045222790430226208337156803277302677687664180001531643276507778923869153177057293150484720113375790611938135357269158019046034473395031686472668946781022421989004730635872867441350862642474198723828949769133540952159612910701607107644747839786815114913181281301904018084598294107066818168997732925312082744406777975747675505298469436421599343991293945370036482805441066845228349955197441417324627172104035169121972511496172443070403801032198798558896840213564746725253751999775995856464442437682966554346530210842362710764569497201507971108708398899489278869008375171743489770206401937039547120585822415417112477922298073971212818055016344757865353595920058365800615552886641486204337283401557736133272723204172180480397512558909757360945495988451665016093889870208515421328037257785121467631237888973977212010125254741518427407384998435098164456546491351516277417958793579751885937574570717626881108764657861823083334782425835275458748111475551043285493554603849470656953379039595886556859963191100287992413023530509028615277832784109209186084906749725297094479816578631410892135134613275467412284667209781552177812884924209239799118069799933012427701938919156929798578573278380450824648181905349734376236935952546259916271117527565701429263073731211868850139302891385639198289142809656764109023038034181520387408388813466349732703561852042919984337272839903311915017296620095221721983037386581283958200551428934693117667273798396203848659118251153163413844745774935471712132251800349760926212767077234370992783762455070313076584495407944034316204124262335264017479554193366037647319280543745076379511304371535962568522914101437560117631255111936594095646928821759174292679286385224604928018173047304560502857173981557600223438566069905246144708218342028974594810833816926627589866970559429874109020116351425563396269799178483474706995785527372957272905483814246574983027805080862292270879534192235900894003870925464520182236499743553691184567940693204848319926087653655454309682387024695266814946820491450818915880360779703270953031901335781531033605020397492291370764389160600946988076817371908658292131503539668929466896892203499312045522237665247320168023906125089072403213355218688204961241037975647023569546941048989102021480997295765853594267593585227052527546651369122897043528337476097692425224823154866899625933446427397533871675746747447167933871682300427177686253354736849571065714796443198117561176464191943442583176475042001357760104888802941687563533203150990143099233359146173650778805083762747850934766235467878085076332145712333323957025176613662429903011006454605361762575684225163667027664577131633761685762010660589740284111643533886251819292704095398432280692516228837866966568591790824551105756296281045420436313458422426618201834555947200131610160445194827299404980882070384590941596314193562950357098547175655789384674914307776468427663841758703597272304763607865678929466417251100685773674833876464621394882613897939991280996252633006607832609523204494590817053669768888661436897014919701764230878907404980862709269601205145708090543525915730761884418948274716261225747094045155136876678119918324652063981626609582945891326964447619367110827148368132946260531472930897657141606117101783310008925798122652085364228641972931603483054251628492917113411803886521672566896037527204635303380633140188462865011829924694117408044950776634614200903678478875813589082325189602416263872707553443916048739277346789655954141331977961623747938778582587854146296393428240960405471429295150437141049961823749119129264514610262150930362385163876022757819376468076420436190433154153082161565009318970311302310560241368904336498243706837357859171440776371368069315621843931297158979435655357244061724139433294806934308730896258985331971873556509882362585339630329791243390082624165160890604971382778073072435122757383528914712089086838866549547261193449831954131582962025003230389094637012330688209844058808158089306241445045011498531478212044919921831142526244728735659176764709846003971861408515082878382378959142767556309424141091958859019874173566986089773629821212474347614764718112942179460656614326902392956902215368841497132230216604892316959078515262827140196364883378064238761813219741262405942672678267886732501241027868581357168045488534946806927016666496897552328222284076762269752391253145491799137300145891566131073474554675314812402812652260589635992175590413469986836459628773101488668666333822913789070880978510480323195132269271480144045684835198307721444515383049167424714964656368519462497973951837260623791704848287294984805892998165550670309067328799306778728322861684320311747161972428944266095909901685994774282406868887511609046768038854130595116218372317311415162755249727085046469924064287788531227485672573058977400943426424922335645185167841002827281442997667279801400902654875114787326770219295076428744868253469109409088227816163481710736759560031199186590584522678640788860810061072335312863152322769040728814580445976531718111539199822367187366136860585497627024359339792435254918392487466842824643413663357194399547802876515445688470327112752911333942018263454644963130171160942644863843591000870969703019035901008098189021034472640175137573564516455257354360246504583808212592054353735116366385490470080947244596621323470952791223692919714634223850038182677851620876142692082316147760298944148308328315817771008799458112374773055162257091035064376995695323983041113739966699088668481810923249489649081247953965387566114266950019473028013873566149942945058990666448338980960885366231220704593905634189007869717436284566923698550830912698438881369394969288441421369787053052669400630067402659566123044536904021077748384469129310360512753155502638705353390663389214643911571783760668299404293143937966204442950223263322543952697269460279932535097249646509920728632951052631901647154985196478418772672438045708113245993486455542948782879545859304190824773662043274736855607169916451887089023669863393301260151435736000946833160483930037997698619172688465581115346894042440997237602145103814035096884618102400173377684097637586732809339567271030546927655071148142427589716825832988924299208457309868002427677766186835707055689669704340696276770640929842202113862365224113714416193429590241368455184204298538705126524637478303789500622789900307481319501224475655997316604883003833144768985781173991425108640031996737102059321739228016616177329041545932934571488578633539740364905445424733985231533966393536466564397559824368078039258493817536834962333867009629641021434298749968894160383877539299498028045973353337199842205402682212957682882286973278309517416933824080777481905361915179659490984171814929459965879303916475070445635959927125631947749556671845303521702872953957714108736072435981538485340794554885728996217205502662124305992084154608646607876404846268096620671423808659666350968142298714984593805499133314147045478736034057748093564590258490428155988122336871381760597396641281628779448195779849384392652276287709437440274276910488217498681374918300915083669574288426388460549596497901711871286501883042855623271085628253204916591421550511786077210341942665889944394004178962995611383567009955959995825932576451258274306383210520732839161083737775869505644543751733362454569610315161635449224811184496387417714810029766147994829552690894716319544281318632570263306742736500440001359293480369359069691030356518205813726186802113100060160699175436531527794154722584075000784191480992597529904206710606634256555787982657151029708949885755840411039230545642742522171546244424558995947242195208243156870198360526682969310826382752682997059887463919168814263140905053095009750882157894476412889518091140275467043218122423135202520027841928628514379334407341613040822279327866309793852465651799906767924294959468372278713073604585708933193411554828151222703347476579652130146234327386962187639037483043417372412169890129143386407500425791144772863908583318161092165148422460069284816248679195697179323008073007245846174076335932068773253555259766274326824239245510559180804997191251675647462579207589890807083592052448804520620503570279484142293545963379818592929047233882420669876093116466456300766271355658495554775339644225269536813525411675756079590592930420259252287487662591950472398325837464923783641040920632750344821554591908933726642121464278160277286340454080426735165057451335512680293117972310395018122627847246087944883421106356514254307332479377927495672677262431214729285668004764571246718631310153885399014112408625518414985912329671710380200148071644370766673899212249065054707716179269519911042324670390419050358783338150234024957790591353834157496423440533449910256224767764261384856552097642512473299594943919116589849642996582636854544398843076630462038871602833173936073199128601481670649974016374467450931032162727941915366157949357692642464751713973185816346940722871073289667104922108754360226991260183810663416973496462928503726338027871329024285235985699127068998090966559982824592374927297895745257981236648090447930256902672579474664443507816155703805880847779545496615496218923920191776354959368327865404557972541788965077981119970482025071620470707469004134606719428328493218980434072028148885851637613492767902706266426627175351644211487283674897887649974132108011457964975532636837794655457614728491830172259612153670506408552123129419750499556699103808017276032511184662235194973948012676785739004634227866212169941563799007081231116582773920528230527699905883584793648981474442386320516466933529344726753458113112434957225056729167824084639239592180846868336998961056646277641961782178083400641852830053383048635672755699731837108426943844435786214905750222247977179316205061029819827877346280157982277758679294760237954320665396256811489388229781684347522382348010490462978761995123015471458849494632798758717479769209803972248865983573910721115825056929170145283999649251463931494288906116731688278757155513424600808478213202199101749717321103403373566861849112803687542652327513209597660329356000083386610481096139000213466874964023647238328965387590346880828421042764372604560689491623056426374466780915548005230964702988579806441721681156831127500555655456286984099676453894609515161009830368086300124477819979842714041566117137906743209452776848988090354739427199769356554024788698856295299767397444065244343006547078091556985106091303168824995515032882647123087302215965664166115034699597268983699646941455761400043996015203341246799206860206951205924570600129931069854533370532098536300020714378445703350949225265428196087915643260534005885758472844916654028127151329259590459970082110580812379522057378368151808059840122343261368442219674305023931705450851831589113384977633795526668536788975368745246701219688567116605044883165839457274541150265902088354860468505011169518033904396797250753082768829497690095281752102883205390961217490819435343561626201605524704027300137236816566507534914654293193937119723408988101961512278832663525991746562394387094904305039045183266028209300728673797094048451675459548302493914456623413780706640146232348833882444141911731916628673104462138861176157727537490809282023966666116541326875075531985601321465227764774585403569459958175737008226599098772318401779748158593317375640395977496151062356760199152557961232504782593793139399376790102143844387664535709909942060574986035730600166450753797580402610873070047973195569675961465769702969899857686620952584025287689170444086666044307025376547510984990801026227832017838034538057932725213766795330164167290630115831520469313426131813524936343712709885674054601775101533830491651812193092464400128734115538071666447385568254587975523881919481512758675521341713338527035572822560619889476774045508329571362036418878459634277044590287352544954379843852005551940603644139745044568317883318167270988220000896916254390537403350905633178931896172347880483168892603547167784718806268878754184592836017874464526107441110370758404561073408535116397219352851611836954650208856208711585772964662761842360202354756085649819201995767109697744730209174913076374949890852769868185535638179206998519670992195732947658279943039537166267730228252932621137293685260095472238327642908305670144248868225426242468541894144970774754680315775128883169088809982073140306608278209414431206366807732784993644354300505917448033715546078785528398825757578180914289589543617193626321259946302361277701812260827525782567217932214020919086288571938787281681083183348525484705809436487602706507355873336998135587513073768818128978839186715187124269699631063652364810583291174578051694453516299019103554895586149463546714585353177811623187074318836321451623806015047168048846774689670231441892153947085765649485525116886809014757389602926027390556560649702770520966489725020715912736568007070057800047547872536915758706610076395933712904507806186161688606022512208420813115002358538420083498232980579519741206651981961069761356423633646457594030465351349919142930037912967756628234856360878683820671496274874132644384334475405974118674435827617387093172381880984225974795711143351062720945104051323573738538588618164290956515687650830580118398080957582023507976930345333946849788339954780894774311721283284375243116511380861789459873732592558827702399326075398152403795046542785121017943047903258026251032195034161875893846123880094285074070627573567309182811087364050346489528113219727050689003157882752081428173315184062178409472924552262671488885316820331817053255095801770954441882040072038240228413635938131617714299142106522822084879565101128004326360981915289179090971138733951188724795835444967871484957071691359040259844885603824780127142314532149029499658777295244024407828537345747100876194682373420633419199696070446744687565968673628942395667641774366006430752949193938838240734673949644289250909505459092688204649705871685605145774295455802468220500860789769498501103193779281181865264537550090779977449756033657366620603919449255349215047520480229111007010307213995448681774331435724814347920578852404494262798696030347401554865118438081825066144827766766558290207537799488219352971547103204550108186242208008849158435017589666494274642413863555510075299759161620486492375622041382039687188628082112753244503241588253601399775949185884713472298679694699636736060673895694057439907839931873619917104151708729448482021332916821493074604529415588826169606783703235890655533001171399139481084515996093889964412047345769061391110218839366213333563907915376181851638804740507317926241377714338883606152270513323364867290978291677178684920869932314796416653232730830300902851648154177020768193020931343517670756602854764195301312048375202044973093233926348223128114600169380420345957412714573479808101894887291760498893355190017638357906447091859228391598079641145398178038289626505286669450022873939688027128814211777967450905301198274969227625341390216861276862602854406218218111375381988644497553586141094504849223549924047791128774946239735830491579829375326343994535772360327982827994833978885563582636658935944717107902515833314199649061477936340847564309345236413288129846926145982574329074941673850409301839287665319223533365988014849270920954652477547722850218635473420084456855304025271907543734018069411270598757093146867147769040761568399006742653040260678952181587619034332228964525346284840879423989194404676843802811915785770673711011885389517325681741725308009518279488825763676401985270127692133074176145711067212131465742079729515616914780502460855741914112430758122778681890952441308215839120115488522643173116170769623023896280690061902370358446021950585716414152556859288183821329918288439359930945631439440619235895605326767274837703912304713371160888252339273549044330310522093905030828554067907723889845710555693656706425616470640342361896092252883303786507085896882520942564586465811961232206288569653378672853166378631478261098556279633968614673501107064960731323370702038271145432358039746361876543685457234413975407205863543074157571547969339260528820698517824710206693518649762244141884226423113582234872468738983898664893151689116285474819015457712339866338158908452218967900606790265237170156405109090484948130112029948624247004980707825283777550023444009380722763173399154700777709332740081885384816878195350413945124116867751105086674121022718351774273451721195062859014175178365634662425162849866572889535473911157371816551226423537376592613026549808228682761490854292983825126969886806998059121161894197889146237495065251252704308887138320480929827032971833452367245203577734348198610865775559735258421377079393479055467847164037242178358373186284620091807553350370195057851737332124295164428172832632452319404670409898828438808686747250234644227292680018457822031354726579471942892526204622223500942441407619976710047101119012260860104880547749132961953058637297351624648879381508702531635796830317829253787459636709926045520177358359514607578868459864712983403270131319600081262240377864741250957082751096098430545389640755533708476752322311440029197045339754478638690675274479300052113507775672302380542831629778213922736478665866909908798028098846347071509600549495863028451786939187312945452287109090134161144937940357978745580188724562693841334829750867073573820340698584810675344632795821779832342452685903840557394040845512599418750130440485752949234835378516688518628802043261558330607161361783303634836024866197488510464527424060659343162932925948662622630888093212205223272514145300424288799039010753344830840236456176270056633970281582385398057926045422487975827441899508824214388241434456963881913574785031150124999610516835882506649151246495141177600456843225103714274354807654610803488315615775670831062968621558056104043264019884651229523234918972227604323401832815551081437542347799668979442556890366634024477313721873631137344461335018664001488986793806953535273439809800692480032436499581820686618362846358794023414794659846805084446799003216491061848963692177249504896776951620020130516178083059633840354641529565158537088729138364838781472488037540693762159815528419179510552016228254598499190698329854156279336985209601778665255252910758546514703643608392231185386108045479017168480413021759327285262681738241594689442418327299576378219254207075279690966171892316091502069627139876445001513249192719336129762355094327313686429867147658886740932009556196277438177325743509857964999163775031580218905180716704215047772679161821920714874523267979018959301789525541241038201622394285815086146208801113272554243560255660216416207464987306350509832067959737307328933262669874708422173168796828774449891344418278976694712951438007980678513014855333393162657546873790739780207828007128838417645076306224302156163521340859856245852851149844891296594228490272922375091392708349099649342312801109756763312436869641612521323048367763414140609816648915760022910142551306581491950094168500451143070114303491628990966558615765408378683689477381544434882207840514521354033288648041169745314813949470883582279940963633122729079468851013684929799297025599607995149565352748320251366581406013290845921445981167879403710118115984164897847419091605409319845144938221651490922251878303074769519814363837228615200859592766515979730591190968840969586530080017410633313883681976253878999473402452578111014996504859202071601519061979753920140716079957670616212689896741528104338436788848217287925100143832053886710801845718376603206755894997504100101571845522638015410247599704931509047424685518436035538881203586942159237966902027107830044143965611690505816822935143577223892743365853340795018841548367472450117213011968944595847470691795602706257206520422873896149010497434499190498099258801559167993786383934629902716666809987007485169122034069639277155715479621013367090216579521937837526099927293094388526085525589192100514353673402275688304617573261080560777506334126992738065134821491114338174914867252364682082539651130909666241783980985679201819715171240107864862332695827639950951063226394412941213586887091463195569427188911387660184977150582697927100727575854082174051383123858326975087772166600382297713669266625315726787907898020743639932456635673862597070340258331844836420914047273222401817557596930277766186491990002283634215431348444800850432899061180703794735915090662827553006193185872963044915926025732133723150017905624438170839349477097772277703618523683639171365473679829554805538976810333838003737032548292553467243038314054739236203336851864603856132309925719780086622664422151916196273056421228400678766882672419428461303219278372395908271263709614259539019059248649412930341124375097659168911838286651989133883967725484724449753830285254281702206838619475389337052354047595842865411358175528313097519166489451301058988891530216651334294820961957267450867138978750218825849486618749604844053225078910987143526299401481893649313229969234956135689707187883310324856206460407433245853565253040381994074892248338543930342792376627829517060293851102453139137848042151627229823210576327879683577390904440583931360603466286996791018061317037866103715676742009111689350254759596380483953259614259067694918366746874669486185792635006948263335977839355500943234099497529925198208693179400081708165411873392342852579019874434281468032187612683899529966797875258893245625235874063718595757463943142259477815710382751078971464981295702793413394132074876440907543470424316924639051976154493349241117832068320559095145823784993904790103509339857886029199277419076354112549994179756570889682962872568794144181979947266904914259916815954178391236852894960582989422666609250290885582711683890796946042189614866633561655154928963548813110194100756601022677661965347037974252557732034902779135504819430284269094572976225241553237836386622214429847220312422398808015952224220038507296172379596406597388354802275406137924323786924358113857280909571459510190489516715641591195743232440933548846333739719287501200046730417162637375520950688102028178304751051593198732687908205048952375668744211860172842865213348577986139154008139223467626854788919534553763893434594602470768746792523419083601941820908499652761029371071536391919203630697511203411264527752758275344581906136225309577484136651853223292186056700459662137303396492324309721762336566816170467551587742623744435698406983483314893787917441267993503918108978179222905611948252870080856339463186846660037252919814601335347101720650454729724679047558635097495662458611492291256458683206388581660373082331891704063529835091992936593290666200593666243788668939834074591169833533886974308069363021070027765929806918595590604528904789967769688772005951543615228901625583264505199989226088189893007191150269412879497712212849681844869638322318005501128803965178689422809969343986481041491297775752148664278972149279307374416346108558713135940305786848577239597999245863854478875619913835689422700960891489407993288372013775482144786757377829286613107376728171332819171158260570425204857831324329274559972194045438223848282752598947438716819606411394713547157411917246702951223203583695655338019914039875421799749425218763631564845953041521575657332994279710657673635343834959818857831022080293684586219368186485668681862590706795996596252049420866632399381182237902885975603458983473595316181738221854114927600100699248416778322307994221161851867481658922531228639676366864200220865547324747048382402018648928234173269804535246064763277442484142693783385931489962355069243369647085456253610084105049526555113350382257001287578381592016779585354835479561294794736154942237431374090334629496549493155565010873943443472424060600313164473854260097429000549820512462542495553166437248838786463474400678211784994221481382827016404259243588442037137664658677078549755732436709637064706986627902409726760488974641893305312583921020505636618333617559840836763889559942107403377177921599409955612855811862052729223234172738302437405686676611741021813311750367581519826695423808612562798808190919421621801234126019032968074005528814730391007620790379859880962415519599772888406144151652456948441367183206751723058399967503946600363489491196563334361724628479415723768235893431439626983568953419122224547455564234347948485722343054721695647256792428049824409986491288123482083664385868091499968761664773675152612401319563700271040306979516655907520335882204905093935095556219070564278614345188718564282022557999599767990931440923585052508006084391804495520002898254872481084814387262272087199485044216534165017984642748788034138732059859655137305221657442669214598693358058203137010986825590466377044504297740056740127091551570004743525724138465472912054255203432987379628282468091951967157907437139824028680639043563993787541870093378523184511250258629728248817695476827795983815862568576668648591704322062076279105650820187592587288305773832819687773921334966467173742697550136467209510601965176471084949402968315529972285180543158482893184438017994271513359588699479076908529725200463552103291832470536704397020537893310554913405068176218243657261429833774400862125856913233076776789112865663591663611491778453960338217668729538473023836743707293745840905268306297733737251908737669957013153307063949908456365725663746751044015301451380831339396607497750103567733964550407546192204284464355313147166196706008282648594256712400558640385560720509350886483586038816171326556215919225389229487825567736317570405818455846724380445441606358640416359255711801369779379881198785177089406024011154881919275927309216581438867906186720837451073069525499815997258236667013736836951234366248091176419157071003936166434450127747378084229906270389816404689984314854447240446460733650558304990142604871903611208590506516432949022473285699665766090261910909236829941784991400330686917827938602861195762135798938606380299372548891045911536380754954104889910876966150208964815661863153689003169634422555212503616159343255863393056773281373694128708783349700647795295191693144737138070808080364485469190489930918149140638783070077330840506497223867669425069700757895427254664129948519321339191748125620254264912097702896907717888744820433252981253808868813565841848545708944686321840027960359405183644410452846398569459389605570407059966378811863464355984236624259978253041947287609381962698897574397971118776766830104327840119464523180387834855809913811902912893131945179538245893632302318744926081653852379591559630208216434302615166377963448473546066894724461480124056792997710394428741350549107225601328755646223182471451573560333263166935659307168706996112635317271442564053839753492817073373520007452397324041688331391689088562026722627300860673956339839085433942667558218564063970369839012728562720163758781057317543639133327495602247171561172931957218121344971021575753983652895519848547320766009595436208180951000580950304789466112296971076350152276268280594064766273408593751869947592693967855028219330791057848229359430369812486714887718211856295337108489165034432296900635879324808183281338031810256850159383330040658643627998707788718297517695592455227742898159703132629706102352092602499942914020610549980470914092766818815153889626733584561795246899277062675753323606878740970722787371899789323255717695596239666001405906845616264616663619540947049527374169154774268065030048803222464257023259881823648585708177794493803713083745168145923727632004772578719422630951503631659838557054488837810489452108202628789281807287263473296546149715974658647501938074624816975547555191436798727780717598060098888742199251202186020716155469145039372831796111074130985062306349091004314322587312874855744050561612467648556026178084905190827510177943530671410327547645288842634260606965455744821927495791543085365737538549372884263220368408272419524431602184576467794477452966679793970836379620147280560862096881648328008293867874897216460444731637166691996427369002625795772511681649078128167210624917750935753309760088264676567582161780639566890878487413204642198924814702680705215769033384867991422345852752661883534941714539362779320282421032070030420486791601694885171578096347479291912907472890924463363424888787694069154441727845707502151325304555706965618928858816556350071822855641546002936886963406040520684140920999176938096968511530222467737420774383360584973267623057887683803996884692031731005641238284124239448716093969264962779632708139932268971720589117853226685333467449939895779232541748297363144779069174196620848702403707528868273262579374547774736491575766393512874632699912997275623961218878814818900573760746432372633504073698531364913403502273368101041419984617087369703158871890777324646147026989530472408239686885266808795294954697290494629004250504229224988896120034441739511048888467591125823423976688189870337584059218523612812339327472129592958944125145253685473317760731771130721626585187360628390814463008942161399369328825617277780316129010520211181753447306123185292530255869476656338787408969403399351257271866738605206599067548086036983283310828883183100979627940367991997609616704494056858562407173572818414056483118394123101091046688985187944719415521712949602234816162628580751215737706944094538461676576307690901274889502286930811560716508597075215652188561953532896032294735759332189840891339987879196009350921377733726640523977881478365054626162807210774409299539536000641581987620895703926892891396133614302400998558542086460351883366300711802943454639881194581006333321346433824771739074341720165613033136585337661790386745990189102001852961354716171540366636510471458866518478959080910407852934277261113077136644059420403285570949393250506963166091447103244314457081103115259260281597008553579464416567986961919336754201881573870254907087041632284263464188537673842267175005310628318474342145025172328827652970703069985919795713802350935032119107550312751842489501331492594270714313389609888658281082650761975990598882219806343125661870411727561098509605346031200338748788268797230627033568703996162733192091056780574631562168300954245465819109601742490646344629728787441339262681713728832826505435379951537710045761519006859992476643795853599931392015103742486089512787744134605532397655389976578257430123999679024846325074948892931864266065181005835707984620127811510922230106324974185349011115100695437088401053547077604034341056362709281131742788889874036464188812351056185837611701215686380771998787507688681057419081182840965363406260522257676984851258079908739375208038089134217546083906601758140216211250917583799582313366693541754374984954050752410006678412247905303467533148070119385290695684520878652522331880612593611657600415266895634052857550929989375824627357058555853616000923663896858078359488867028184285056981617817964231667053607419803835738436249925574808955380759237786041973064538903936045352381844159203757756155141898567254879005449794870385852230674727326573055304545405681402415455740619594504243183376787030316862213590551709674729742922200746914923689065915641732107884116095741137428638845505814681714797198133762330554761021607220336156942390488202634738687313577320996472910598897670609289454371164980842444039703524514211588729731633591627187601806929783893891468215079116923067087476819038222931025089867684732417126665377815255184249940139312170565412321739151980326640427561228892853637999458213075787397255047764311307740300595544496804757911794455238363778352320034467368856650924487134777100749455752036055944416541908035027683966001663312550167711329999716950278213744954848448027150316108108320608088727548016098459734255873853396426226182373351210303053868247471983415107677199192682205972901246690991198190072460780975944144848729978317738974672283254934237957917412123446921644356014584973137123181787398563692302207555324518725095005519141085357413406635781460291014770274778904321018853301776559343195686129581711504194655070238800808106555050834565265686558558034708480419899882867928074559419278472835170580749151258519114829227557056354398762800710508140203676903952557224040641263567488640700720936885166467576585855949126351587257480466834554416434138018717807467365953918248530138862235823154212411498936345545197152417989640402708343843500278585483470083619968809755734855789435118880195327533052454888007225757439430958061070199872291287936381367077507542704524492761576360321630972662369654528970225441529518962819432162881685645447362561531932279190846447016357157870695301998480629574967670999215562770517810707156354489036292767742102954434487327415321720305805549484420517543730442482600986993295267191858818543257147576713179512456128221126630231166750852483828356077729679551404125468457012548898625321144303767394604739208057847142986105717934310730476885868525157454965923785262317461035632237699271769572528558402942719127052495068718653986078247584420764010739652232840216316671035663419087152836202298449621418344774200706404804757187107511943939358067030247800111786379920551369679225425417825137600765365159138525385286500779729874744423806544231614015113514077263397799015725627691521246380334122245405995419947093835510728769202327057476240330943950243770134882595153087123421232670064175596955375299552978368844489508674555509175875964351867071824318806006057072604811576551038543924989649948337215404871215266351082886561089157531827816269430259505378746965228269604721943979018328217080948993051285057999824163045125701782640951892023832872757056608770193911887422260553689184395481874811666907106161952709515925700625739913193294886730044807467858348974440311761903102145814995647748251230508952278770406053759183295159131321995067189234248709491617745645587243495380485454720500089629587045952543336212124373644588775986164740546999333028324928402388048703643089504522361753690535575945326022512764384947906165329081920211713198882118270125952481933703875293011034686354836247858027299149204893968663126439784885807920449472048757648502425323646919764045796094790037368473422103965787109986355706668063009437672810744809169388504683331237369826019914143143814211911331843510925730666392704518940259016740576591880216941757044857349506384296448402612884601829112508108232671066002686567213157878612771181590493391864208194545321387548602559589198618450331738728656713841652748226351590505329846705114573496657462300517075366179977766917977766593259568125855239941181896171988223139302942948306238478834806247371065495055814267009199323788909306921550733960622130506577047875374146505495080506723645517564314952165018345812875651630717696375400228946733439874593912786460677312014804167921570215656744607266961038260696688685688691927050376628522859943459027899017784733303322130051104163088336130499773474272850287483860132422734644161671299165669308672856579916894525888779241293413593096565956547827640063937480379733828428836282704893203348779818874128579322706603655419795527559158998229326085389732268064056689155035206442782269890880344277885797043310993606544964397439671968541281990063468438145962456140600116983590610265536341343115972692652413538516652597851956005989049045150521597632026562182787718418747567057621886440079636387241634087206019696350360116139638874542008224242568841657338414840865608715776402615621458707571716909395952693654610682048171048241343700301982358906377980362437447524649325507249111892705642808713585029177936547915771107091821762201347974017300118520783754553442241480583939915871854928456903642011570914110271464877701261062790421761810912652180981614569732702809411092117234651577725823062060969392369450725117022733021495421647596336076827010641311179784411693503568987209209398577931746441559349791638139720898241711315507967100906545291494987033375613926530110705446604004933668886498702706594505872867073110345880482178417662630946078877386294400512642846111358184683345690530023685242550096100589837336674339232055459955377835657076734650665941635608393825502826945602617294098760630068613300689799946938947765038240412461993377184674752948180217095904845108083015492395839595795428844558804177621451997743746941025286034186607780420993702282999278911534367162276029748907809930220045589901620107856796265780369899037387665550535687289853181321344366347577947273896285199978106334299468211849263858453833691987601908161896544350631655656384716855948400551786006434179767768266252040156891143611926903369232140840811870851349222959878456366842862316351411628742654852448036793490859899956716950268117681607491311425084693025606813963684512082761931109397329556926154002910961457098287487093207272437145029861368868416974500622338100758658990288738536399202057787246234555554018633154695520297063875624676445041227431732771896463231745010964921129161349427866129859220279729492955037693801767594734274854711505301466575395525496008859014909773697264682746768762695713177750826948074499993217775433299639604523113199834076430382291209327345416499335460232682451041617305067804486853836898946722323932516662717313221664954121172534008484306050588063153501917717580751070494481571186263194578577057110489855842564354858950124664990867071067202546053001073207075573769144707542378716115957785139743934752103443429258203694660275766271671222207625053414715337898110472457573246925447462921351401473751817053356118522239284959646788571391516492361119335118990662207282006798690182244678502891270207047245100827546776455812308125536162451307215056942781587235038052358236541375307997817178097462724486075133483023447417357843259638114083570792070256694732721844022222213220028397867915419637193972911152781399244226316859727540205031384927967445535333415530838083038548205701946424589214096517420775343210757789162752231338268045944328085755783355986794796963014415983337017132157462017499364738371560955273517254805022867131763555577861586455095850425142126167358106806394698267013146374373393637941438574561746676288327273227532408859425480571952964471086297794017804102323141045871267234527077154966471277941168389914905809581998748282368644661457795515173061541976318333307158767398478639757473622704345986964887235941007877794567083880354522263871241460342752500235952126536460267459807716881722231220690074681337713518863979852912918809235087201575856342473540444967316730117225127134394851195320950874798163551065301916550241419656042660094079351621287325186601734598617781244282400140452355052468912781153204325709208747703844929938230399640608324229171120844441394943610079083624260771681303375929784341469009620137227164087362074517809720986501830230833231542391441659764743744414878025284891153967624637248688116607117113703968973061863927511730969461120017487943993544322650777646543363249018307347972395575740093178133106883488918728340052812300225416016181680203544960916455238962025151535976911784563790892139891564982307042139494057911838348404375151380074559171295670243085684010500896146659272308411941029779375341189929453113350105561383555890509775988535447677887997915946900115206480803337930561733546279839452587305652006615336812928675554073991822084001904933966917392081650827547159204526625557181903545091052282005469098038517750715272497468275219908922722097414926788735073659701172952870523774907027415175329036540494754442091078471256527429007731300793175891600949257937542424407718789089529140641453531000271795135250720057525362898018584048123690591009749584934344122168335573776778214357186841675915079173334300138680040746721278311850092462645394806834995220718344698862260184584753876960353760510169623616659518603231953386287989118314110681849463412766196286792946962278310080690938394544866865321355872340815474262174099990542038413360081470287217799048322253574547636774767642744243318434634150502774307965513743651094513312186682585399602310620664964538669098437595398532338707769371190068109659172076819904767342109654183371716319438882601420171651491220953520788594088936966771441002890095912564579538424086407027696555428445245861838813181164721201569238370229238712272505312513342230887458417075630562219301988327834621084150300459729526552603416583050946544802524600123127428947892561109551962787013684141785283664326751743061854055456771893290146374296647812754428045989997697017569009179868754125441451563078214401904742405247363528900357833874598550528417496191306442006254400307632166176560490698595236187866502194343534908080677266644573062117321861721642324759070845966522780641305225534826878626019675590007887329328818500719916094377506855543429227328838132367877797171062670988844695992264518233492338717695945732777399220512076030060861774519715846997329787007820906734854445034990792172311811077083393300602583141654797463773151355957623200057074491801861083276244283532881929296363707330458688431443809993202858296803008242883308692817124873291453694952608753852698949168439588742666933171027546267434288668733821306685954485050965080276518722373185224163211113698355808065710826540512940775472564266283258381240557934137545628390460961470323975087597903158342783305632356658677667167997683164552107100819586912955288610279921272859041025525907235601179052227342888779780022790822683412192271609479675461455029332595362294838053944674329883529769881306041646417246654596944704732199878806353087922484921615001709151609291129655434886077245906773361516000584773389983738656346082259212705641424211999097744788172145755701165197271635342831667945016220245724673723239513457804785156697163257122398742894803438508380511382628828835223927563742564511111748298210907058170901123628345973030074255187129808695568516224609950611570800193471629795299123499953703520037454538268004335321072658557112555151297221178269043370152464356414163307332425035570371202716152667423596217128202747042356694373048490525831568923094803827607101473467206955892830311519684357663152043159411059074865972038786928838895634489965003618942192054047382341378548292913023218828845227217488983557257338845097590020567774627682866431385617528855296520610643926456476147388430158420846153737795876437724713792004051605600501351143336342759297752520697612253712862486216572780342985600270769739205930574585158212872695195240830096519505225157255196977934204892160372522810521528926207663917761317882563930255153567570404074800608112747416686757748297845155231590609396579904996243861490491727818086828469597732919645051877323192603871008169882346886422162338035941971087946271666099447567435018823549787644090580516574090627561148773541759509133340933179637520509994160584367720194407368661567065388371283628504744970622264195470998710776925347076384973272308963458537136460660486514884117472296304058065385790671526940377723659176189340152477338252591473777900254421652584994503230437275213187810979536563141062908282617376241286337388268072632172551529900948079615686000341771249784750505275757189126859026082657380553074485054579585731793462230510051947014583394810835034085984307039630435849676557550806114915676535037270194934984737638296894552488070814693173330661899003926866567750283486355810587827177912338042091804497282422628512672894692692576879766533337801223121422847437886334781900453698205274453963832758118071259200694704696676908090875359561826846085171335567092626667099570681712387310862873020895911537482006451403707478169029305955916941034338208466047652193198907928607838733166506575868957574887532084273776844139962557033190289686894650578024854273498820675639044169064755244971032069029558252027183677397125306106737911689159983336824228219136573945485932773795546498566044188683005995382330478882910027790803844110627561814146989882277226323596795567584650985387024453873642501293834363726234169781178203853890791743208196275365874853760821929762020504056795697631849301891636206232457270631449021192219033587975282258146994719363151573037116636877751842003016719476952654181684307628696727446223596450269018608359729465737507962178717839553378124449417615105863539903432323028697818221105596691287567851340864673371574695646161588571562571655517554612534756471176201167119283063972291296815062077385762470053291394786579543079285865982496604007862893088959506880764142283941916538996075947761008143724888741142695192077400814688810707193375414372383997977118044269774810352192837472308547309095124968436327232918031618840882459550268680825973383178481277643367489185050821423112959892171345238944248043318364574665990710821482799922317606241643598857152919688292877916264308664408489524796576693409737379474916975363144285646692365083280152780834161609398018401253363370994552711339245362338247364405560430647085825830092156673827056407048722864916103957806034445244747008998436012778595733672143148318930421820652110119422217534834769841488476302609336404540276491728858843031039856220365511480375448199862114253171592435647021871986464323482213888837112399790744726384969484773933854444244594542487911653749917399190393522124581326636792621052737330745612846579300899001488647188641012409765855273901126177927384233330768837605776362496777356939802753224766768264300908867527782137973405714906360259070369676037468928531087432995289227831127069328574291009628674021843106854415372578443891082010764868783006778806244220826810701595127888535810681125153580920726667611715719445898346925945144600170330213444934911078937669706423546772771858266916477824981956507478912048338701622215288796919353381087164040106603470791354564656227153472392384321233158821727964744623038148454102624124494069259698929395497402244466376905713995427322852296301028657857234236490513225887725822196516139607840799799690835371417517485343381961206572358495283416456712065906430235366141006774221750065971483556005292648856368029037705691189291771090268313013440358100883009911541192838796135580060413350948083935353276044846312657355909045282781486793933131684550019044839163100986821384855752562917840545656736230339403906717424046556039219369686585224732352456467380678233001778679443054982316632886786702095639782384256952843731298179593793643837874795325651355473191950261018489203374975161394236667169134950857158100865234983097078938898916738752468788384257392105953389548495057931141174806093028924988829520390304695255059820345624529903699014198342341349583652637251955884517129719877972664161768469782888409638965601318853732659951145327071638754723254635723778438639043852102745832940771485870059063510647757644344552203077645972117390134705423070423117172489398170563882855841711287672739151872244433537066630288094338809476057631360099285744201031398175838550340788990466984347138230084317281357550105154121512052968762239730827990536847969471400095292551291043743409078515751448731968756124846595961645445374406947417017794260367732924388101674154930413747865160643841136242138100682827469206909059559916971605112556923985735834790594696400675357676286085009364131543667394096042273224168447546182406678763384195060651736731221324799768749093581318952074204664371067438103269573171693634193561443893262562158809721836083288727213291559918872022182343716807847050582030776895418575054352277344546220787070438382008389014076270243317121040071035336360917524238396281672281373422620368785208937564343305632773586395192768161299545068526183584031378110210645640963349033069148495037689778376768498266141229851381641682508237584690391488643744403804523076184583009190540716417017520827887203509478617346648624340870132961090768577669911144941117975459696181659324914220815126814761808644510884517626850684485686458855940407372283628920091347749758506236961625001775906036227945800974755543123599047694893497252643156792668043249144962695058946904069476420413052588063560632857122072963124463347084034306757119217092570299663837272141801496344164596301150070442696287155462143930401793737661233236692386165457915260797418291131743347983425483537638156964328815301266587783416460878021739990047371728616182321963468032655301008102345082129584142258777043158883337644688811878640440859098659852926246572035364170658127059187147865742803951509243705974179453871058328939534393684843520866317011165502366392370258491392492013077540053927192316349051836790684339295533443043077943118141670662096636721693155171825096063913906086034384598284109205335616220005892345560034265723546181643533982992469446749707243286296579154799871659077317457491431971172766417233538880250137863363975315051930865361543118935846759995653091306175002044304930148366343326529277866698241596564587289101468404588564916710121240868347327753666162761301229679549228693936564977226700723920145216035801761314745537922616237639083427776880109754258580596450897114497207676582336756117716239338257414110926337075504426949076195228632876985382935255171309028975172441858940101242879109589785541635167271530235471349339139728815998805432255620319828670864304291993583393289286851614638394949098677162792301636569344340182302284236614708204504141158429587963932667336532258384852102515170022361060201543939980232148735612738256993064614762208033074127682706149355385259120506268384867533383504863759030182145858891994955904111972483037096351822631826194004684351234635810898389125415794481693992525223451360501252494991941125199549426200061717953069296811892129059389856221329985251687195645948923129942121762424243881721268674970857683768213747340920501401831249232845217868368417873051757604114410747506726783557541188784061558493572605737099275027207036736498820629114869025376223335925225874671223660472660467400753009442744610157853774414480883593870621167892981703372418002312120460694902178084946432104957258860404634902295331278508095356225760871194865778180617254655975523960393621540264911394637018761680871890659668621661192570297332717349300943187999867425118971254059946285532850002817544182104573472981675590557223806849838832927649416872483979328128922179752005147736673589243492906813011319572093095564699319673397460112093997001731481257001445250298174672016431755677573038155909339740414158463405273066779018408455432620540241787774610447577085809342926860121201710356037874691062205439276895821336451699412524730297761921268573559765903506875598625330244637382351363085294612797841867390780137784023520811224410065400014771033473008313094295558635103562777123982216198664093854769572284743042905949712313916596463282043730205183044662282291833647691414047430054627856004665057133808175208045541964368093416959780335372164871781314913965088619420444233997293587385092781287590727880305442406287726980745660289616557359638338760918561789802783421351377331622094151927940599432858116302740103290172757960369928206224974286568327534633089314759072115536521495476890518590197008906020406646451885986630360151632170866222454767673330554188408700338664177477203308312704142431307947850508418246959508195852019997708181278897918457833384737898356317586892246604654806161626949252625097454939989056108630412860004189506287013113036261668370506948916776730965140672585660021884435706309281068730925117404610710517239285797642941300533020896029112116308663150063314612324145996634706876264038564867109129634120478713887796791348750521474011351530838216042453482686369452025596037639555757575038729659909167056330240028896878716309188018159566382928471700421572544904190844916897658267072733753735525310675685811978906258470797270634951069589567032291179078156839091990205688134925326079567983585716088417466728799128990526885091209433252494913217289907175150440157932941817593604029734362215728859039863415821140886157065821071112516002067021525229920627348508391048830282371359721036977905532677458860126313360650154721981279531486467805778071893336810056121538480967535330305679562390437431841693222143570629459222666569323920218154696180494167321339286706568091405358697801508829973108424112780034865097741770960311549584842708108960946722908869395228217310959183204650175463120644400734207064755956011128515384329332641697835088645656239386285845693427488899736689532587589780739504215926887357029936377742772797097577415737187854648770570180483464710504270771965519668941993625660156537171904992994294293644216329896845524557133683697061348985009448570785990508991661008051015822556817793815099980713575078794035446524367760515782017613290365984679838044619297834809092536982777723306139403739804299834520963141723680110217750566315068816646639743881233962607650596853886765127322704038860242606298959990761725089206257802490613643007039586473607950604384630389784761420437846209433135740968892596174051725211359697266313979735635893764308749695702402868775013620998957484278006906051528264508528528485614731343687731153366276555550603564573536851798462597154277316943331129652355183909519084062365454127239466289679445215878783147434435652398676838601126004493157165985763827118058880058905037722944120434270019334742256000748689481052169700039192937764643666814701593094110850690751566647568620192416963076242927955685730698329498804502622256236378313986755804559583886209927806304971231234974461606948593278638187898659567486728125402114514034909026433182005630220601130852255970642974030403155515917415322599766081158059390370796450183022486625274801805062713371915191002862110959994682131135874535347284063239965369043124629029546880355232171621548475611463574411143245048461568103745004309776977188236048409368969833879230074519808199262361160290832269296619857092348775482864200589649466312985231586403503415315169713642536047553224015347312943389517744454366205843340006820537191048029817399418314754482025371860151541334984332163694850649454839131631997834970270979961251989300377423123928321501907519256530404577296411711614774605250345800175956160498582247237182269495726486047290146839739227413900578357148111500385204453761089655415093100707174902612093868794242888370137623325453353866462889906807628212877499074894834252789004497642859775728839226920573538895951529234908959351053073167917055194748695932156189012623558320289856797520649918004846161702956131380984381313960161414769900670813995670054311786993677636902966513561708624395908420332908257079410983511955195497965007886169367293015492223448869925083400017908904697951315626324688576209676745266980250209759278392939279988513670748131639687196203805552894109596124344406623011609366727678992761600235186438028805115395844974326743727372080835663628463901353144514849081940782703959301092446784745235643349655030762457490093232742494092992744102166882863564544764228445314050872089414706170912053081492546414356502787594798197470240471338521175766807712578035218932458988460870044531336245967289622432747875890590808643434792038539209045441860054591401480986812410951409315633182167623817882276325133818652675290888100908592427612225041870389510329612337734678539712896488988946135049710664832797755920759594151926738987671142627230271504023674086927449930354989426332120142181871579593403551694936948927500226143971691021739442248126475080634199424121448632824732749512571960751602129512916680751279473183693365937720821912614615507726884536071320068675412628967077993481284652385284416571081288475534069717148894411368936740018761055679459264279507028205093584796994054989316552711608200370553757018717397771917735856744196231200488687982040790200743555902695064653218689609252284658578735349846820331423638418644102325554357091780868103222392981221499840543887417984028452861912799369488327485558753407782095497679950997249961068778701720718895067479450913411159217166803077141816056354862053549192836624996999338382763862276065221821905794305374386799096553863948686971742340306594855237574679508454216497914397115386657200378714786342986855246451565346593941084131895472070949267128524461262725070738516922379199911895562977117251333932468531098635938871811150396131455735397580044866007488804899107828090359441697590909726554271340967936841394471247626219970042019566218932579391401197921536493225500521086393747268881058653836940709498625114923091959680863641201906118157386531872919488936862390209283682439117699472385348750267863667927932263503541488133594098783476051433926093522380271904608458306226722602874058545214140283630192284515982840482913582228185810035931186184543657231372986649434369873066251561468016833050548387233189348295586717310642652567855889128450161172449267514801678531252733738835654320952182401725974561115935272546487964095486752514264480700255826360550791455607464760149274475204038613236360391525938255041991872436539549241559147183398360841313329937822582457844716402407830307876775506526107177388444349818759347156432673084668917694451034961543657456106946253534328178636722647234990453915398954307702926017635577354718547206940831647314783412037507932807446452262761921790590275644722600616885236152788490245363807757747542677145956067522396482703702834673129485558034616243558047963985081356440161782018775054045250631955533945573958742702606747190427869722936911462808293292817029704419066406559196269138543523919917168970777984690293199678273376837659448519781433683535679169636303919670045484464759305553702519081812854240538499248792416483308802684141235156544292584506113586279710004361183149719628110370486782109005282690488990737258896312898749079116748754261628027658765545979023254058733372858670011910598430962078065135576557357516008995833599073612794361494615204942278916666922848981129471470520013253858714177380352172144057733122045574983211702737581929145183958977837363096428684425730919140001820670186618200106647404571960155122302350109167755271775137025749386322226742061613103890953128786919524564709821324962363376857195529995950314656032273092274634152950041874133713402919428055838523721654153583896903006214888909899496662983990401372942872269220074932923976120064460736186080867498707834918454081913475431338745299373193970109283107945308777448270676785871366490021651032725701602023484373521738341454043137800331615039186292889379318131847127678391166008746309269831425172059949345516130859401096948630043537075128882370580738685967380534039615549655404809411759565239492412694177442972876788204092697089896440216573866399669221530651063777264564365702052800871748966493767887320844856288969096583884238546836518636865544623270927548150881416799309434753449822481090550751073699225304915430448701555768269559788250053975255441467490904363315915156285123100566846198387943954896293726093305772167384747037336891342800167236779626721064995179446204076222401875837836030721214680397125908104742474653427937093723188617256401409291281896936526646129325748206884387846901840692567384848737648558774017841170753127048305962162549065911540813351788970309030967862756752488268535646317717715923848472558638692376643797281452080486161776834784648831522277178717754170888046184770406126665748680179679986840774547807868160838829485186850193756560848745668056120262858086534733789290174986193865124167544709918288302051634412273672926757302341268984269871740804828852957174632868874904434300498500798687213867897603668732326464734626915881506332801037349011073995144734546107903915722355941869434886686849719966192897839252665110856402123638263181630731590325249170688236726419793957165374564620235560855735678951513020876887103987733062134061537746279587989301138871400471218021537833980488173894984651675088709114598446807192044101695958031783868598985699330813985071177337909938953443315124791327659943696552291792816549098411240994234604329581927846257025141446809316373417865463274197664045511886879113299961908820660745866894850533979579692672820773242018348030095516738977010420873889873695029281317075660859043990049752827468602440714875219353668829442641253305468296739455630841393533127423409322174989134136953614096148920033985259504685385755008366780943638033080406562085787921254681723614149814766164063195390701422426356882654920576309012156294142700850398858818793335532876670291985586835756992292076303171284086660179531211620193580390058148804961048347830586658984725369281440325695239006420052744864445809698713589429148595649775737019286474537719988220352094737153045087313234068493004986891350828510052488707884296967688705048138986595184259273438890014065386113844658021958365101523458534488248173224441417828566492415071851773153451720727103231653052960171506391622954891161581768650113479551551856993338745786581584863064295648358334978005198152057755194215281994678530397337042141351306732880608509571093213366541369811562736283663937289152900659875307394901601663829038478262022442236277854853096151907525590575802684939501174146072125950079792313245982707488672921857567747964230970014527507863826951200473531326450576055491189890055371897226540755924236342785939677268949087432557103613269985604963677129321662147193671144719207595869456222671856152426868461084386312040347056436536381466655491789697516824145102914713846983927205759168090089787199634278142014753802170457790503067220325612835930433859835254537513047057815610675140510839835299312435159067541592685172905288374811537198148341829902440675444481087681864093219865402621996872516114379122283828537339477823854108043965570969581421378200497831133635309047857983823655356448011172267591398923054997162106348213363846016367321101921118261943553040149714176222215262678130721075202503272568240844348396246913966820121226819948164294973655552795790917818563635019208296458651422657702833821895822136714262718510913819931936847313102794577296650274590729728691807715875373528378260464942909410927273139206793703065459031891810651519522079298699907748996588157384533534792247075557296178708807404753470118480785659352144236811198176132668140104558055281223650379799927617835838007772160393453823488677427053316368885160334664897764162904344756415375260447193090561108671903049155732077442464872528943980911218787459337081934956391372003535526982609872931154589657584852326111391637173190529774904595809330288232126817134681411695712133696353159255677303420439479434636365552207736439530533323730210529503337388503647756128848498850348309463425116038542635911329031111409593118724119117446942855014675592616780757273705216277393269165525836764619761435338924319645031968954725247031645286181364636433449040594546139342686537177729874054173556605342024312740273347649973385474860618884931810714753595371149226401083532116147641747903578377231161863371616330009123898274902716751480491962491656479803083371554046085173136328835697832168522730074559015137888596815250113148318204809346991873946987766098967781610774041725831500237894192046390003186625730813767534330204936194170576880289954081523040735730232795364194630926435641749517680928744928747208069220349222941600254830356777675080098454662945608376181964261248219578024640264977112147365549012826953371668790707064243120720554243236764363703676073690062988146813639148243146925943943725825579307974679558831446826939924773152855072694955912181676652570070774754423380695668632660277288095699046694676381452627439832081953062419984982773986508090361639209435392627235235683864655189576481948513046302698763472529958086819943137480322600926190008856611518221358006188660369720818447632866002948510868859379668946598747280348035441236980511489881063196781535071270694060895387394074060344734697243307199116887802070876190627305357343367868181623170215099113883066066695286588736455502412941222250707446653634275219273678091623739903012377705933489570757095443996195585039157091445855296831817710983344838455493379115154261454926273816542965897006507310360493513420136218970844181399822998952039309658478447859105816781684401927602213653960854082736643344329300001366694471485543866632135568375305211833553859775654823466805490792997313426346776913570102023717754968921508318220431173015427502252394321692975843441885150787570863109990794506653371378764612038828122366959499407492641440702008613328886361623910846655439317000845518736165194462700664299989399586844975581365260213902262070511980099747296612891462756174704538659385016788976877431122828980276893192413396118228300507199398760844239810292639808413915395934284752236839049383644532293277921857144933544099100058409972533491133066373890168176822361419712234170486155596663752713283540947881823563565940695928169456307569517038974531926764207250317846896624871635820674683803589064586220411923444249778785190453773474907944822009578174544635209948186912874994732715116023736074984374265394906914481007008834611299654175558569182736024005873074448830056378965410374580408714789189523378428990844530114261067437953143000520251649340523720075569694014250430988855685862263825313489862302987383713706357788083245979182306907651759044137219856929185847748927716737292533196620004300222188882535714333395281671600859970511536059155058318273547715610133906055870626988397761605564753572222024002663225449928848003869749558040107107597141469983715421970175404062726218807294742840098292122535708544415247336923700682942513703152747763345751830407870209450772361104582522053723856925350694903300287407652670491638796346059197755712696632298319387075575719117094806989694336627104142319760860694263774783351680249321155090345942640047721621267847402038601043703199678032236945033350453770843225571129520499062447259319082892076510081453401368853747532291804290748584391103810687569531011270726790000773159441494107039219081194272021984786702612369593962664650418588763044787880402644161554106020252282825778149400302221767762584683722916345495276091502529009266715984343290998999257628355360232926956564151053811431775280060700361898157861499648760317216674111028614430916985084257791669741052609650831257955208289293346068319087000862602746811643228236840672766751034751116066745890995059462775376080690190297140966192991329417268893761592325661327328536885639710297686382887961061405285920187788786181467025307029966058951346602567235191350888247100883924110372025354126715428765744078070759243276165481675715136708325455024383099982652309815338459231723024928337147280162569787485252368105708502667427528182003789585388172482129126064872236739965773657238950752252692127489484869313819509351177190890097890883834976586681402996988611428446227631558449699931973443826921582293628884271983057851295203796018508369309574193061028057194303970301367200521271081184292111282295397718937644812827292761673819241414641937439880079990829850318013373610278527110260459764707222776421159816070700088125236011138878178553912109023104400551637023285484627351000167508582129172643071295560034471252953368698678751372429241467118126699540113938313582223280289947155697761902235853315110830835130822797168982215413079700604999871501728603330722240322839747920353645918267080012194789569023548286026697070547657044850611715137906129695050796938076356694236970374577442684389043003456146965022216015451495402556693337603045302011388881971331889493692050806718407984612722144894537860657142576134632794127074072771629255232013264732071135212824666853318961658510971554495096724449409747768612846404585369819744812580181963286824406789719674912796620389658855346588651838184006568329713650742872971131891052000133773744809754625281214316000674593614535164387193866740761960133893619674607380959081971466003475730031191856764387743223732097776606812379225786878345641233247403394846542146663316844894895301189616959837618538187332743704165942550925917509471888273933180281938001840215353827395394472755600541341925560407152975656207087666209843448196238327076285554246023646184006093556893589384609237318745402758816374112931265830533476290537527925910411216064878565911567093922798665573350027737950191022846923156176041095000568734489265790667135312325829519020752175842313231117673941755351491874922363511725197045460373886206427824134753696067543719644671213014110827209617504152125632026171192553970281544126132411576896980214917010657633198726192734564098945786159166141484113776161679299600177887542405500733749152105261863146916317192263531580147515763208056277945594705402801006273843201632091144954183229332580957899421097532249885783598340814370364818328243224377215300224570698349155845189519693291590029504715585496928357750044656489820383117389989585899539786297251277050820174900782258017005396730572563879941861226201387072410384812136180409463529569595043189034069084015011684437570918918469574984079461918124851656934105643028851869859420175135665357014673699958440257547180751989121620295237326553114982557115736229427871283502463271857012490387875578466979923446575982919010898310121549893332771499686430449530337657506298258190168776796293453200449836050619370753955786926805332948229393726902732228321494606649857395618178630398614961672795910498518784016752391862954341971907435822663043775030280558190189385719881883148309441219930856623900376509396300398777570390217669971375270675780213493714953035556609590929808889824239809243341114099204419316861515359317820177347462243783397573926661314794042612877646063678024930391100047000681792809874925749418343271791729081861274282848243941249609549782922439895208470724186448187176476821372357606958821758877068060070893189177478704119560039212404953782444049165777142480379235890196006066259848729129656707581685832497902140607140463258249137172672034834620261866395925424214620438415508247557512480782333531377641174540615028744771368435777960747252846676422369606186519706550376119677747674230249270296253724301908219839828793486937454278879501373432707246220312453020291748130610653645979578492519288042366609158187675420659750074096374947269604534821797300504133662268963166031331959845527616665306503952960650362917390501789754678995728002566787010119735175432243640411484065820998159837934061629660057549714393820083798752014193696924565567422604742374890221664315348736450525952326755449011945382665348192946716370806762341217647368506728673878014727883182532380742571375426623783441656402350278634443847937949554996259117617780186198528238223636842588732230877746644811955590508391620569057645185857285921500533344868500718992827455339824961318443542671119648494943200560661014826702716440787799166497690521799863669859306954849199430651733454406520790274418964862277396382930179257898897151027083691388735634234702049455218868009557687712711145772376502808293381894025824166899689252039487914378305438484294849846234750765511586892831779915178998006464459649554350789752823109008910459555433178990795015994826041724552956215120550360737035346649111112812955986744158817374006044450896823131979800100763618696393312644750242376840218841952522252815138152376492209749920728943127738773077896612616268696296593998813812409070277980621535552314685361365223119598901123241903534570455899764114377498222738360657031852321862993735422683622989580662074927439055963234625133536119741537076298695763729628453406117294391987312025675076562696073724302079134412057548799138566124702475556596794921920947505701289668690865718025558129608672884913082836798124396428766930909422541809622380623416081611688742089905797958620621270213734883710640063515445900228614062458553634338902400721524004653094335137310553384932892920538374000195715374663815041010867360662627238031869538957395782844830104588834724757756997673388813262238822941773409453705310247666043729777014424290339319452541889543110582314952958471818215855965966566643673903576127777867258758612206128317373177310115730114901259745208770910735107252754934140915575812351845820883422033611292744789090860826993124675220652857409961573932732625252736731459317191529935038783444428541111075009626304054236474654723958549947551139706299711640703017976606668738215323119783556113924305950940291188027618820032171799294098607138260740042527440663149803931957094968440554725985904614554157608046614301658733498462431830276763439948428650064471388852566637095446562245057339735486001767185279512946571487678505030784986734605976135951087624626242900536133618431032832296894416631988941656725712586982680366656078827568007726135920535205927622734419802342735985514810006002714466621081123450573383258710937239066449752531709995436128716292249004736521807114412329189149284649697534239375245863464333377098800490426488657412267561716894337285959162506534432004096905356526995928627203135790164674994096756972986877580503311960543746623545229057601096527831335891273000547027712653456395770788462778163927815756187405898849765385463584612701674517239809273457107254776435685444492085844076144479541430265804904278949444297436758749224751105843440526974592370370162201235118617508647798794531959185365716314530960874104900104790037983074070507530267721873532140907620884746820234210034225180898215000939406099707908661812986441670544142574058215211691177513869233458454687095438439591894067969824766047603563321323624814579336843312357958396713014302572001536267121049663671696297914031523646951124767042067430008661516619903854465427761342581187152987288808152881796463489710369571219201254048122987222685326537868148157718984502859631537404444409918136043300578578614880198922825000685414596921252950354596096557781565051432833451521142320903885515476554277872570420016244590878734240812058333407843087088577902349575621958003320721413061422087919031990764033258795354609396034782141356733518267655721987340676591897304250905336246759805899481648002182097683779729716112135777404418891805542384846438692683548005299487762751870850823993957205528334698857681155983025398498771707748212161284539896426776931033491242982621673692523644981694996344999387284221010363516946627654789298437825173441161530941667024455980687904493307672300956608916938833069492153032514195173880122674513571972092170890088293163665594996520592270880482715063872120148743121095733689272205433296733374331162564088699162335399804285212391452655812275793670671811766932039170104543460879505215374851080279181707766805446667434400045575908932641100561456967656898463035380938411481099557518026359037412641409223183874942540388794871625953633531487007585281149404184046311743316055821860217363172356077212749423932557862354175787641857352893582343570924932338590870621019653274294284842791972451034670913357489180301048616847822454580731268208810493842729598892385006237215541869159098964583530296675483549638585174442751373434850505763914132654513991623627831838964634070971212155335569518577635775831721744614530495920585854405116549889961702520759347026235325224204023295976005771541214615332120371728140886845503487694417349330758383949996929287784130898882202573173561420493211522394602734961258528375999001297346591413199057449330449329722258328482446601573175159623231766209931747975306362471378001711714009787245449442639847128139550347205660346406982108961768448235107606579144783226544667134529026231726367151346437610353194215053644460831484138494837180747884095910211453748856642205137247004724209529294583822882031012776055812809435669377135866484784963260640087059142704015162800373203288036096278091712227374794329987828839608115174262275552544937792172016366561670990508217889553498673710957051443507879786126609687635415824904794029162193070741426998170096495512313458562686518499655256702073464013873187431590534445168510971983634465043145573398340802524655460604813249618919134942313786017781791425500125813432698733549143654041975829157918843070321327952534447015942479084864820445737343806616187583126793230521206495233568310839732097195986772925211860340096170887943488347115247139414727523699556824639013439829414954771079381451762883422255194650981547250734399264716902890074846019050034314618410663096109649715441071694123078023727954005127804917500070068517789600258447060703810383678541985605447801155816174352158579596719706939100176239676754345122529527039494678252262816275329367787665595391644429830085693769616055285248031655086861401352106181326098322837340101478400515239918469196031961360652586108995995091207148998282474618374564718140948244945406907471234836091216718408882299614367020698348018171337769937769805600990937501689727454020139182490225184001791006241901222817636290834292246584772890046900788976134785746095020419414770183325622567563578056834688654099883961073567365584540616993500381056074082833635016882235823093405019391486452429729705141425368330575319951152188654596867787665896367974754646466899138561275969844637351364103563214783874883779176325318503562918291740874207134954583488971579070731477535329636244406171536877149973426186022036095585339913325174997276141159894409497646559844409566700267256627014946785289445021908126681146042124629745074098333839847069151562121576772392300398657198989889501510831447570803688189450747542912982241752312957844610268531089980543668702347811013425536014934749263713091042338920510154151246202704271465039760087685985605560900407863399228555139801557989377104594963319453798330935213630445350912248422868447535427757860021136082125829977305843012975297574634698731216553606041309106077337211345787110735200456749259983564686498527361769975741963327228628003493355623767574061304122435257368810734118520558686721609903796236911240853303674213152186441787353709134512493457897478472942778901784894660719696295177876026628534220247024931774517786091052757438301338274741596998009327879321902655546681547651717150172923973020713553469923947124707123068467173441551677278792429031886506762035466508009475894596073770215945136627380663382281656017763888635340916291784965362769979674555559876523367677848767969350169192537905439735863326775086233376693393144549074664833324498180296023068832496038245852217390776945715486264568355663668122499218183288309538926940923915893844501384027679575452674631151190576332375338292707942752614444213695543985587526793456365089089759969778772068538889833934951382560067024541122443743513088947120177460333669843241422055251816346526000538006766174857643491783951724041618557496617927121368572340576827948385077790440582677850252511566669168248208943080668911089745577726133693808404282094258241126496461896501310691743103202273394465355344118838840867282989901917117927375648857554474963313859038775258864169868474919011806391954316169118456177705254248780641046632504531568336070386807958246311869480537977228014049466203189567655349761934364376402821177289246736331157685455890552132800058431923291808872785023249003084628526133184244038949246289590126446271397280054943470403806520495625523935161602218890586934864463586699431034286728160817906894218530429136503596734736396842526922278978612540292266917869945037114984047718598443846140761017516812555416930031220020736909185929057262320085696754618508249639624135651385756326162986864115776908184266162776780421984057461145145695917638502989127990936046872484613072560737971690244666603654915773663118102930299291289333853002388167996954641643428407594038815307763740846637395763529469810854939880448877824156888977780990886392276518507355702299673082408193822329694920907898495530402572041795143115005659448588703288118890502917880636120209495466925492739975767525585175464111568968117286177794494079808395461097919509560611318130746034882506620859862905737429916027065377133090730993393339293794597673857129114526069392802090903650007756504207163532162949462043717999837315580499303110038426317572103625868398741006359753421088590417754047746394668474224379934074334717372992827404434779907917129469087013930321314972861625025901345628882188707590644018193424202459014496223223381822282300620805126095896371385877824123715018043435716679579317861333864946905989314356626777858701898833070608181462994513571524432663859029149681207960270212221650260366256955024373772660954061364046900311999947687688004820534848442123201992771621882049147374331741130681251141135242107471849423305140857958050724644597828020016782599221531570568741190600235667020955460037037888277649956341523465667740608759712606397467728182025665009128749904139624620341261945933201000932974821697488642548085142296127083900142269957289817153890597273306291135125353575030891805417234851049465568698441401039522064353370141672575858651744281029828658161343082644118360560037370847564318000507380973477084495994296069209658050291176804802812342121615981152314356240980686897727547448412697645724294267322744778114188943876373311915494311407602096631343656680605825463363976660819575876172837072485041607246297799353652548690633535763292943668326267699120769192968045021128289802480088761231008333268072047382571666952190279884724106457571607054153790031366090000186339605029161387658789207589789740054340007856362471020181047080984429551971818759013994276625855084056277981143511770018939916098441345037064490982222051182230297562317890165967727295223217401850911290321419702968363823067654827566193498052529525836324960072914267430702082530800989502387950655082752456967264622815171486688303644769594310824472218148611413133578310374602239408716385430063431508611847607798687142334397320509816049787734024793275762048719715804059973787554319230383693532561326167337270512193594264618579685294165017401517290226451518083297464686784237117932486988978100636845661906125752735879064750267855519250517711325476722695380358105288801308214600467767615630601334906193447796832116858469495663907843514923647586822884127041171615390643235517586054639582714071655413481887823813089165047845117895844881577872768247420946718008082206332146551074269546633276363001068623998733078013250452617786555477565585315793701709600829218352855204238693904451493261272291854568749592046047562265684671935232401387956451624542836482834787857933875267576277813809329241876763540062816633777409262233115274013172681934203668648173394533594759325583737906335811438596845047463026346108140420114790930216328898620092928934252121601477414262851024009564280281081766968293143027302600623395592807376768266193947868831206751473219084163021538275460268108625957853926148104674375118829120077369058490786560218601308515866538563855366818621764247889717840716374629441367932220251288521836736431630024256574193257952102870134299966207094343484182401257128807805412326702277190535342740932074803516447308637158367139644916577331740281539754461114671661588794135776358599329684478591269763228832315362108957674683098802211453334007867774241089229085803710418308638582130129697369237377678531208965110831223806558866080580941056528339091081273333728545373040076295441176154219044501749264937745802223062930265369964487998417293873425381096754537125215896709903313130094217383606686183119495424534125362395860126801899253227362276679869691465554786411947590406717879542406396310271367018250413654718216243887533299889769868204173547211358008771869284224972092776502938279543671393556880862504703102355981695445144523763310814674477882952793609560569641949269974703257079763180942360448368245645168963845361060447812844912965390272885712007242225399957360659698579387430483246815686048145298226469122050269412044381174381469992878012670666315099616651069651229433131027208262765596775212014075446847179728486884126551847032560490509784965468834863031425524640940092141184095248233901189134078247196331387544455399548031715279997387667441653687806418342604656679137702026665731919311194720515198942676324643291922722590559761802788522632490818314921163278483594920744668399334539509254924077856687090414712361715398167264304199582981033736946353998454142727779710999465118381140700020386389239299430964789155462678997096117892873232275388350281754841886542144293439426543061089568095245873956113512745597544500399026370917657108229829835484606108081763664563776691807430236260924797641008043320271076435532220979886847320387828749422461866221130519861543889732194859411917346811445762441538408099797377118546362257693778044417664979639109104345357990397103042354221310481709936325496126714524631141641683985540572499799197126437631530088680127492102313200633263738463804403942923942652470738045338278372415566847607827087964516032532427813747499664984099485244572281582992096349615558082070647554051729803330586712616595403695820772629031505468847645429263112915076730622308945008727707366808566442704102122597620453754259953143040405780103394475074880374465099304133394460838170928388790816933807890534857296102924646567447559450337691549551513131266882716659180265465077345988148393741227881361488608559672861286073010528722425772981935824458167986112855560426913944607050799406611799384198717608352519708825267104450046778809385299465803060025480578581860761143661686552842103288638609954084370137120959432103788659521506540548405040229932995617446580579772946573640757607361932473125367904958507407664037016699811660272431195823448849467770973646187440599299653374022527105832835795990112217803739692978212777444713275085314555129451039479933060034459437890536159575929446419029881265353112405887830373508545510094898865002937163014044677521196940678892303237730193009148580493424406760703032921954051085355036122029572990935705004866576362470992722061950577500966825668017045160577034796444413325859721849696711298867662927135179070690118859425092573445910067792776609160468527716649260588250856963530498016767199361855622318610147827478907977080127326727533251248336812757493078373701876996196417553152829333503111212064648592792242821120611201706155033109024796473953405561412689995415171795500864507532192876360072563081246559365874789866731216062265921894675592848329530755482799169842399469943723354483103941059319092256535501444370125495412198080476691591738132358243251201014896060949513156246058514548054051320095511661547418752655114965158923345271180962384711222929062355523003364240348043310799943288584898185419717464306112422622877157263436451063883185871603104450245309331095106613451219197207898879102325167607630372768220150111796383033156353817587091065070015252388138804414540917391167815118780399941153555503385930204991877436752781223643613799541514702952282901680073977810942943728535418291804949756087990620812599367762997004010681530143702401109224453322351339613082498368863926713188822677446015293827941499634500171887819997995574024919529660506437837697649140082710518945726511769038294230044500636064034727986974505905573773674358748486956268321251683758380011987801064327037407815809347442270065162469131361761614033270755346678353893997447606558203487003438660132443068786423316142742843888220973997114113278885963716387865901613462426274554246079734832436124748963291995354941375058961566153916975898632082196057728172518253046175712779505059750160611753231216570190271323573528858506689420340236338436129848148007193431514405768476947979820633789362345071511740017106684886195060506964696210796051734820669455362621695185764087295391031608493178655411392301288691759048978409179653065311294115779515681146833871802575591769189743239413116467458719248156627838286405571127149110745928121870046225391553007957084868759377029364713893269357272006789771153092207714308875780152623346177365778111482839563122350135674477589907946909180802133485842352129470154453643760632670044164235128527498908437025627321019232708361717011893545487164875696110857492224155260998693117207996631778844629332012103406873245117558170850180162079257749262690613168167054437146866353326714743593357125696502351828660249443897745943535281500835549047232010177675132724453305980954117533959001430951135316493998596702218770119149400585196308928460789973532879068752917568355761804814275658996788696586560789320682446399123564491322477336998847347317402414658104826946376087042555589103727217722019341531329136225896781119167719561472185153513824413569906502740763943875722683239936366491433022260783379686430794465665014011859855634486282510271545909163607545704536337959683067665904684130324143792217045249802117424287253116512335917416710929393222800547133505053158457282737399808040386965855266148694388310149503648616168735047212876949215812710506591775483044972921661404038136040687601548654340209295012351512128063048142753333935636163963884342136328153295022511203170059251663380108478568917143969567066118601626794877827333013100032487035576082822596467857907846031036582352714079693283342487722222524615856424937606851354462814365490807698400950429410531709217706979804161958948854596389883487813497016717361052085327296474905950373468818513138852597490278788659034665674779769370299729520458552770051197364132401890647080412884869544148173458982085384066967009232818989781071588958822059655803416898679607940226114949664576652841093211241484609104632553690213833807105655396382469157319511798598841182880809259064313144614990557849360190386912357798326076835297795537065913392964632349003359222815921641201056439285478710908873653703977032867483558642364230810668227876569064666410884315338305080496438689375978201708106411823220707912664289305487525904143389210594333104813279789642664340802717269791907953433283647960135245674651733851986982546738370290637919200461505466563775168005430332037720175436282330938298824942530088475165590447527616555152546863846719956292432198807422032027535220437098657762129290229787644609932268028141158621290214334620142107029817942647406741082892146534609852194798884213985786241236627877113956755720022093413332868079770511331530921184095639762658267072784929872481706089728993174592721769192510338317547098613410437006667200639697370364245546987026982509253101021579761798931815867422990074372099207786691868680089840585924701314984577098495034112166871382288581724448814965973679698772083496057244138132163083507450971057921946964540025104764688208999957235607245850224054946651972158759475313600580534316117713677686104685578144599325560377473281886023803557073537068667471345489003695823809225587891317785806570379524241623382191256203980846686591966674616257590203000165711647555459616982656213229807616744823151749832312035626299450322629210523174064361225045542378464240833292735874840270169770804288180183356732717919292517479228607341426614510407180004956229756372559356492290910384683345172334605480840763166492844213009972066104305786405015071718655426135239709137480876269841457331280727355095851623038894089892240378485324224074299159136868085619693717843926267302547304768156996036523650183484579361436815965336260036093821112185138170496369737468961564557381102627284551910741994026707672531136313698899435605441136296097344064749032295300616470121094419125830250894236211627991259155432506526044207360202801672524040194182568148697653490844606614883070510817656813817920251316532838549177331391781019239751297509424147058617105443711124482156621017342953981500213708567580929482995122506142596678615920877198137885390847581311458746199683318446942156826274765944127078580294098187773145945209163233475614278612335970552660537977261787027297661907238770240854441383260934446789135679469099653631354213336413972718501642992195997378313859328565144662834605784374645091653532218659480604676176741227758692831482135390389730731408370060019545329389133338279575514485539136736959760460414216807895317823002134657795340795441252188410068899555404719267807872771230688649318239157073780128478924758152036484487284786693278288824106349097345225921362870577970475435377509689824165859705669499855604235363001380916118642908311204432653663146939363880050801223217652900914634627964603735146492447695242350876951135130903707098534010355327392471118988695654498563865024343766150402901525665308168997046726632714280532147893544408868885278467117713207820441198343997003861570434011663994740365574144978526116125470739652621224937255662670024631981797483214043852302056830257402385627621763322720869524093839331683424330554595794488877387592261714798612313320179445626081287613051460074818807293311327566493930008395006278270936998885641394989513682965541756295647409179866873011213198625545270871603274410793278880388720227548386827445412288213532137639003585158799736241726266026643021057876924032942009482034159376414606417109619811041057546727687317579542472771242749607638492860083028136109492494578399191017962113426333571886913506595774586997085082847751395826229074871109097757721698481507644006131925800056474805440593666275230153496448442831165978814547021160675091515076857065793516647092405984726239282141029575102191391549064736617233696057536058788358124964511419893146525409643827470640729004416738012424022654269925619286426013134759985456856775576545470739196629578299334677068046719478073538701892341517807577096353687635726086914059724142880180728457415668675200108542066796873594077039639760473586173636830730285554771426513909809976403586910871437623781825205454787683836662922654759396725639648486866858036257340500820982357927374444440662696820171050197237394172751452223473089238366737917095329702741615274249259568444845714754069105831120409813406512389592710837134837210274530212495920980578899568570857095558168031025617267975220921782004856025474046205624043158195953714234941470656055229221977277111362632916489556434099280369838528620083932515266496168154204771736727458114911895673576396799488497456615331453765757328707656000792272709874608724369725932516730304219631736618912569402529980673989238786981213687265737001993235073563035312880811643434763130607952989431712777846018660294983415956709360777869920691982741038933018190714534205994556559486513948137205693029310988780830773030274257808118781167244293712113413743546336585748189719390953158931081673991653036562801445467466522165651156258966865140277320722902730945864317912904824850089506329000542029203788763244187944602472088210949264974431258692376047044435887860610723218919680837515418528202696651510844061027539925622297734292121844272762598869893450708232525163989341933235345951712691642070658642929488851600916473457269736782958364080595302923264604288654476554177688575006766844409538201455430692540898837587346909435501556448879927166841528620721379596068375515411436447301546867958856000258905532400988707662645921411233978069806486350403533271530775918831521169637113723434960559241459532059213589838317945514669130628256043217004409880830506415986358113228583712640881155067913624894295186187495527000218275489263938838496261575697662153451783111690247845879924958505283737264909472914543696771011026048332186557647473732588839034429141248466796244798011230323815155589378397672051128018835904388037761056084144764585180774326920274693884962809849325913128344168420528898889112137577462185736083118855332354604923668145708997323025357462933584203882332122142897265728368153978842976472326189753278700746083028351378043183599514727351060678629512748915497691508204136208771520003974989133821085546878820815924862205976027459443571058049892251972123620718559430094850096313649236825002197000490075338188934649828523623182670152950192401056738884387909089436453101107268113048555691315606302587030803472859886070722270709602621669228734753087576487661725665126131796290162554870133529106756662820352934179436057528229525221087729338127719548296781920153186891681544470226196613468976789194715725678834813430146977106037285026251830219384055501173539995252111038793135344620234107333578146177630919209831103418792538411054468996072096682203097701052475584944490716721911905754115072335050090640119754750551707785493678662456110862572714317424380045482547939916977235262450519833391687369695633005557966770170490612596835544661576826302901777657931309614058952095360102621031156129862222544676098747292521828876050032634159887291335221948000029487313489809333385853844625003181342847895978772360405966825999543543010811296917012571755692909762383082278247799712425995290086231054097190750175839298543074659706488474490697421768136282813904386915144956591749568720978100943050007348078486007088506293339849567785113839832774777820367515319184080204557980503694408694165851677114184133765900662926673952584755883340838486273729116918547057485304606097080036880133671685669360708037092899270050465541679398423086210780287079059076434333738965527404562391751587876000216936451115330890969745529959799195482517252025623871098752102943639953157053673423921770137804563807907661738836193574220517681148108886195011761786005411329020266426855437815225579809755566020486997547852404961631655626718863597869114418526465872295631161035010619856282894148841070154571063287954789694572559372419067159790769901843069407527798557486333740451778148109723171339954180909097933529140136096481516376751328972189324468500524300951061518943784602777880268197532254181168797716588088757774248914370825537982643375981429439076223206388587940904314517308480772936931242586789700755733655099701852565169278163597925982411174601026364646475017489208259260531822565823511355140871650639644892373047919291605375845532377019127525280941938412701851691058803044733929269304668775754471594650655403780093314366432409458951790248082869787184300373127436302385561773280920164183843601833414193214432602081354116794012203964510853552718641248296364181889155444449412332114228488359095488407694746816213759286928813188862316976445259164398080772471411439024649139375707445217858749153622774674781083578413299843777467024562708387308945276816356602654825567402867319103483673795911317182347627786126075426888827784703567452153829261713871817249640382102614750042234058436688286960588223943823578606775447706849651946106287361115930875438356750439547145342102313650531385370132240036057702387592961598098108027572707313242467558800966555145472063381936546269497021197433408467853532862357219321358792728580696978776457369641931894107169397027168588314357751991754599014762981717224782147002755928786941423764905226393870641117181200337084468546844200392101064458784040779669507760854819544169933566226226443155607600671481679740828611489280746681348992343088452838837748003539755082332810189980406586627233909133523419037270007338277881853944241825705819067653242469050779767707768119043309506414637143807577805745604904223579166154017825071338995739241198725078489258188816123122302517919875311502446762384847516640854420547221944527420901932273111648310975097979533855164161015399637698481107215743673511153583462571436842973571396205028095507251843855897229320749309092607665454939887453925791391748739261089535832203143701574863716426723476241741356250219245057991026606355997365611454991431681111014492154824427218368810425432927897487081126575398961032338835814451228437059073979652503402086007909699824939768001129488031444284043262539984103499586345857117253154203962088265705338368074071204796544001645934931318840020319276556063204761145124725027867979881882839836369721962547414076254465364575201337098106910327540742272793433513392222249068530669574569214961141583373539197847505501060185127043610943346532562514718274783134023697310047124014656147493082416765305543988587027255570413287750698115121759954001846287040781552450662263921344893363785251625392210782466525112504572988523725118087445907986995982926712779314470028318736436044939757316871834880316620006320526914380994949567761457735165026483145652363828988261423592665076887105768572479626631345335040537385350961450934500553304911081206843186280660532629115311830423352902983255677179866781922282018642777261342761460454822208759407456737353784163265184753935430095692177083345381904486790311973872024363881791066674029537393879527856506279108869456071686952132394729320661100344112429087577067019881812091468214627129965931577276110450887363798571933819291340348685845165196922435866973872834544053584179262621237512052435365664860385668756809411234383203215090837008004094559848202605270937514180367110722388991087773810604845599702592351635759380628465354213652660635337783610388265376705868891332177600637142187834387846366073691869126320879918813235135685630039035514382328138685345032938715416321082856926984198860121629384158285868087067407039358516222413448434134608015043891871828681305758525444045600728113893801552301064917795311709607965535926506749142171974824414421687727859669470679666996610484774603628934249468773850035423477579095229736945620960193183000680393350162521139069419278222882594411996516296041568576332083048898269231074255566596361861056043670015298213276867555412923987634713628747169653361161937332604512647011536487029809269557048002006989184887378486982172385489348560648648035683074750200039546645584725840101390826838310705093877293153992422990801169108792887797716760966581291981477063506599468692693424656325344314407649555935389804505665101846568192891640943272251921482484634981172778790053319394588820942829986583320781620057583997995498354644271416970093039823184946313389630551679668542479012660178121350135151841311702848796642930022427801273908174620244352774386706428929469176809620968138428036142187522592649562669740054972057214807980456109130377597270732092998006423620347094675489346272926229283361377829410269245832296654761995901088218225296111737156483795911285826357630314660240829001313968153778322494016439034826481733098032802975942102770977110094605041545986375858634162356186622670963799567897434748202214378099389095706567551719990301213447512733809856663484398812922677397785343468383546078788964818448683568275133649495994219025041680692601436201552602041503044815331256956965829121500205315891476198175511083004392793306169805310419730544652736565297504591433315550665624426356432838584671695005908375218971140497366320644786474926530163111133831670614944289261042082051095385629781538414276617970436312101065884419577624835217722846862976409574458295173212567877427893320120904720556490526667726235910124193310557872336767087622673182965843373864114735632116256929409213957033502330105424259512314059488669897341708661778585931016335511806650115851281159049570485086267466334102862573495495516508044385502283698042400132957825973842733057978851425417887202922466015325814426554845919531018142215515792448179579296895683876258514468215988967164096336121191456593579235968791669787471302572512748359051288015001612016325875121002964803242275773356491247360921963382637580729094346998998014787060033326072216371990130016758512920323726382641898364681577932162073813342230129832186722848455831576116643956775782727628649509667230780513814594437355822852021823186442867947375235912062765700572337017451304993022826826250852914266520801761764493171542693640774113936722318318274457711829386085292991535081590776743625600292340624094355815436628112408907713510491154343611878804425450381685062300132781969138647554933412864521110263773258315037778981480280511343453190944317007562669179421484843663366336364263559054356953194475928616243321796825551590447139317833140451294429873670833502008092251387866110253883008841096658807633684368024692225766754985573360498024251791233053206431025168982435589518422121206557126040889452235816727006117333830684568567026429356803622445201576028031274645894424708398285118609886348939619795149110920503939735878033483055675859742256520566467840308389851818476597996113622236773508926574169546216002291316589270604610507758213281976031052526474602297506337219303230119976273503107900349608172688679442432914591996478367895565672047518808547951588283632419145488396156102593279582013595092567098271561675246439931112361758361904097140961090406342874980915189374614866385381926066862185898979587306286852658722729381496966154169569888397464103474502459638949240876421040165574458089594956027046501955765336694307324615784146264815758737574370899625468932356698643918556896709038530327964684534671344823354078500164895794150589938386238933251546612770104717726339522095379666644383221849830013862759388675492667329380760387919926868808170531387211264362491062134275742609541244283741676214262073563943084061103628493891818350620794551258452041069191265923160197060301418401206534647831564296295477484012749009149285204919131126984104293731394951804971992060162114218804771234571848965187509120553904047417427003178191164587231421107689667057897244479585173475232969675998729721520034019393143155694949054524422811115574166633373859134771901303252819612161720910426688448822897071941421369186007643932135175712345365744507936531855969624972127385894676903388501747906388408302813074311975203096924394126655498033623774982009528879991620501389881414799343259985418028622752018099297906333099013599735159753188917204508100914908257708270637910308481790862153785518722194308041413574828733009034617479304736171509776928825506662127143870116706112766949965994625881471150458039743535735302791260231400030710479971989154072540449336141598138589501585417035089037665596253367380212381199160022389014218183082121842771622391398222927691066966777823310139265025742807862053022101181276022349106863951120359724159713499421204016140835031224541040583041491824109221022166483011912862483899689920146178726724737904280517050320878956666665600887731498796044875493586659142904004564966648175795517297287764297318994443944388763790969195484737147972576265432762215371778514829173934563774013786351335396859080419300716766394812859717449887089150235006291716097191297537805258894924748917139145518558845472756358619745819185444278092628350615518351120874168378362211641256585497709284756550488220470615790540247670566818628169577838407419905867057757850774958261768749762276615872499736188960562027750291019149500478508799794626650427129560728086111080697716187334413316355470635012591358259206016949187425344364788522663842094569111071015933260105370487074890974106557769552961180329002467763230147130708974909276350856725111965300340457709944326050680013427429712104707724269736354740142995186410985020251345238317707302231627185023747584670833672844533313859163884383981030618502502363917606801309299535259590507278036107258706753661634171006776405207628923143159230413842156285794439844303969548867942062916439423328236049038465933356767259805590957648806210553356624517534731478095291159346541226012975743416276314921559280366924861123432370086141478519677790273950525724693455413273015462798900385411072367354901680250897189355859227492400525245790161394289135706463823823207358610837693226328076598159801715515087654932947498692762377175628363710376165877167336951779558462180206235619557907595578870834656432290641241674005910127882488000059295987326819975957222794325677980790168257729787709229219074610263487999050700249771552743367261944811902684547328678946825569982053761094536282687806627174720851333252643454156062141853304974169555375365568962306272699273546331509620230871055851735774614974416608634787911439586391174011453112805992902782199813834607843102572506068014966079453361295902568029511048405646394387886832124389740531088075533090162224803466239721869187534894898961111900948222129703844553308215701669430426249019158672673182779019817264032005179786887554907557184599767687788357289836107234831875118674773965425886722590269514916144370142698662534883491887007508139492298677915389641231522280617031689865359175726270347096988486246591106686584965989186705388637934523100426539299241120462056740455667834940819795477372303032266610556665868774967099278510086535625171458606133822423142813245617349513484820909423149603978514133300378400201269544935539735555067855146536406595296761332778553750876247934423443749428597619220404971745392187212939069258041304994350832090461422948583638648484738671293472243703097712298681684002300303393847657114838682638059146832157176379324366873811361061879817833320794437488513270445082189505653955414623628422010754401094999126176022869977355103552535311613442477216858995626752634413868329067450748838652475216201428636965706269857416122038623299962756696457747140329198188341815943134910029721387928725855315830324245801488694651534588179790497963725462214520689684407311379158069819277089448526534144055871883065510825720616809649518142155617535940166119660537479531374461793066859732013487540938953238928112545526280995170121869135245473717259506327538614977824363859321853699603327525471490597870315423944923457383128631573502175109278790584723920019209885607597277903009010095138950711033461901173602432041885375974811078054022797998317854584661273067698703881570745750929990075633059134935426747567884412304148102576774686667026219327668509758797929041122738854495618881440516750724195618626602803828592734422671214306253398112128306016039803852558137551635124613577322235546430898300433899117449854569918659612233819122686243085080150854799876796303987122006037862624047755709776812438014231579097429962842277742197622673038859213613181119924876304614942070817649416908980149356592097709149008118754131840294074258235369466655783283341124274240609275352275787434026268087079358878148778652187685245127100908012919564823859732372781654743370812122280975186808857567349483980500543149694828522092176205040663894403652659020644785036511003268549262050691566378709326009957428817953620021113914974515713150406938828616361167039644666157903066368919667154222413330271243775965319506800620961928682945181919134791120321181943424556295162468538233553717331279281481381107319556682772680582933463013278046973914573589568412923897406354322097710897936272718309676619176638844148944790939424117655190428243013918239914516128425182877418377101696937142452456500061844161429797268795755613795655054230684425650554679601976148550047302892785980480664166910570640347903274955099782389137218237758116332786847321529346024875458407736494432194847007483302180234101263394966257281748166433762333851515527688951239586874756240473105753955704366742444660467063205746867912747349370925257802547410667441872493114958196460921038155057745548747859858457450265974130873967153237193512490447108091115849965228431500189325172803732212086278409099347016220777455235500372471747887549835574986351134198246707577609190668463579364474701625994614037646869054270787598077215871288891968069038186743743268157143929369851708158872430349942580896264115575218373253197483564212114672938198987074965703830241813998505722274821483137965084879481798672835489907031854474422376208450738764950892390592715723481452598943184790854230562886690482393398690424106303118307598009482281172020604843494044984357954253296806994347577683907440919582428334905763195585279025625418161434348799831548782774196853484521498723685288037656578236389124801767088425576575585507635261153006012110238402976821173535195392358668859347131645357998229041295648946796889367645268801535974340968452530337006383727066385915596650947813483260570278232426229603159602001977932857054100148333937070891683244949648720587184797502475032296042471326157693019649803130023729603416023081671747438355055160965177680840933980877009001389822069917339621450872948554792656533881360235457428452529353850642165099032862606670573313324056527921052910961140714188306934176963087076266765553195067466982963634599844775816217872556615320570666269691650073128167170821125872394268882769024182336522748169883931970676915495171198244393201341003574902252667276535594152483228062113173118689636874726937131977561107216298787777610958772492743637098783926760970443186201815091625338848819913243634796274822347500462671928865102347598322867332941770124039362090613976058409292548444352974695141599420409253068458179736343417965797434446847303781813454937278629398651393134897941649850356115880447174581727314699644097051096028759651241416189026865756893132571545473416642211298061498190623010127597909426093023426578896277866916853428203360869021338386446389463371008012186668834381341048263797497073689746368241765121037708299026446890936505714997374906268348650789296835246761736515062058055080739053517591111660586586522565984123817081718476459198336687865230108736100370327540851313144094739741575909827349223392126810216198271816726785666110200851077176948787732587422151650848064035574014711871160761457232275301697957961478695952785774729119683214967086348943537568759313519268104784429793404977646852185986255369093971038033944378969107559672483552026327765946549558649948166190836240289341412953213132188528793448229524678835358669379971667860664513614006552675411221392202693207429140246742707467513701275874603178813961353171864984024938604956395901114093600248536248529427210045712792331371839772941387754535415753528828850403009589421939931042489970042279369420466710144840335957823894251351505322344020158411917371894442880312550400932698389044886014462316216280423562256675441166255183923349169516984673910230660134799921312073431076724429430430108173356555536650234683560094984227494603481522494683218745543168876704279831362261233746092769036762499893489053543273077803887898862309895202625081248553854453565649530045862667212424796142443190991171801092925148156462095279352380142220244153870674384132802233150037052611775537140438721211315676923678119811798487514147649069758819529743892500999923163391433585282555137369203778800985376990395542879625082882647015096907139815918576079690612622245464083099444977136311199336042070702135362190309536172149563189830756763063557601437287592909580832146871705725204663736942641621572977218057627043475191006332095706527678713755158712381102711369007042678632154209506550124655485929429780078927793754518375833425610952786606637812629161391100353054078341553288236682846852983267884466474170457850976255142355977214763855851273849247051769078603121024383732946736659639844159542815012822114219558412526085347025795162591029955093323327598607910442486964462647812829449818707459363527754565027112963479137449495394983240401639991522357198379232605078547413196264094800726452520957725936466015751676021911450132744760970208124586723260057044561901779383025442928680345522430184432500784421454801377025294940880428587495449778192349481325717769595687973583340539373198870710915595260459228724086689557924530773960379978498772106343589805120788167804704817418810394711371214671385922953179818427124255455268237899641842633462632358595785270413886924067813722807336230051115688527257286878793442661507573480192205416566217265775922083979657040875325594979828840571994420056951062246797507248123120378847408116829214779918692343850162705661223629851026127186844361046378971046344697225219470785700809934316895702226606766183858987677870598379214861741102000888157597260140763986437017220782141411317593572536607776617011050971680338361819588602885679224812614461145587950724949084542983184386806397307731979917113768847123484242822067868080110634952463736041655660104581828747594472985804681653750344159079296708626322598038429563697233443427767612892789074893518907881734834441342853784259536476895287400513889220518981269259448895764927017554354460744695661950489302637567352326303649311389421746365290624320248001447229970399465809575411980764528862171513687148822383916164088728900717438472232746796840649277736205886072268369564119210317865263504117825904320792341203023438378866291005957491594782078925140542847436169598428811083246850180499676792432880344160148842925371914338633390397627398531342356649400856431038544286621748174655399253308015417918871114788647061924957062343532160482405065530686163516340326711951365248681968298315822090469924139213816350553508559942258081605646327140918531209484978218806193718877653149728201809702877544079796225915972544633445850525378381616652083030608797009373068082209659689025030015162022813009743609062467110107745936445211335260428540522255198581224417984482036156109070533791562586363250307477321784348153650193300574141403205888025177396545528277778296585318471091964934632181691078974156833574412548878340641307733350200546654042462260619948084738280041402197509293983435669667191792088484029266167616368708185726700834156525043298642071256950312296527579949332398340029052776373939130766391144365945130450698796828378013361271267144055079841328394117540114021089797413463935521365566053545628358401613074108930043035002034256274425179788556439963231739259975508373405883702940505745299240394197592711958091100152149569485281674505115061006605036998085848856911647302937271060235759201271258787601263081297132463632672889439281486663214361039777742623304309718299967578403035532096565330049321541490186677311014726448601148458908619814832387115660445057049433580117487095709599176746189366322708103607824149823466736903400003282076758385574582017872332688546495412539999190359493891159530606721378392151672561511733679455011854489868022589886394255153704928801043314372713746923644741684893007980932286781465437516498763676240162514886574029322699452057880904134173313267578661439113725891034570219404527503347151802891097962188601619013663769499627362395997327009043645354114071199018341172409203253484213299779551236246296680383996636488052707910210513582982238673587568504289364896976490696414302662978875511204794566589329710560200750273809796521880072412273685253178573807023444988933431842715784021135537530799395813246066879584761549057268942409328313112829612537357552123113579227548063784760024345342812597419528489581879624933605806239406657688490140693185323243696258045577401766547301359111580033940680322878804715075166799879895465260872402369646099128034922099487683827166734438516367675722066315742331620635414025696986371377365648897705119774310419619027956704842949734533007612355305380078867563243713496474880043292483317281235446308046532756380458443896230751997524972065102548896294213565532169772452103681311319274891486566401325291368617580913829139912367283169249051666560149016812500729212896116132580332195739484001863028609141001062264571110254587372462736024255588752878574958510513912488742521202981498141697679808185369824801890449111800614298553206665767216877028924468301415631222747459263540735284833406921491926617448331561278851320310458742850429724602083684208943160365758539239758712848729540677880157939192809696825621234541554722287736859179411198338066326188527625576942086415401255515003850732249972432298193785183313108131697928585576611039419811321327525764687111377015202329782394211323960060583278563319892891601874353787109928741719098947649393272583033899537853517172727606398051399276309918420209062695061479870710550423464322715950773035085779687091759358047918021929639084521361570167488463246392793966867360581208897138941577344897171248110428032295762385395274870581126663504358459381756121894449964236639840072960797938877867422746275631959573284358755252808496867333191207136083824539463031146875195428722387200225069373904192230122841210320637079277966652782790855517859826255393130917639562022706316609839456941296605116497712643327676419324723514093620819442035131397141057982817436738408960574561643097801145932163226052960016733933658904656908611838898519965353649297202201838831465591098752631930995020829444399236804717558930296423297981392891362696857498376517258350678796979580100754506595759766653736560002031128858449352382385655727101414236849562254547017860515842282711390477360764181637920736694547425502071361435841829227707006592320400026134628592333800415914454282873462252432836460418300156197163169165101435093573353569589924087554220306499285033756106432414998205099671234986041889498976667480804301096021975910772153309775645379874433009489003629427774703969396499995320596639577452580670224547882714975195402738854946034735629718819046782353703821300853203479681608841830381591973790923900727947798866703886239126221403506711551253380539456369470121441880842644440760361024775055619259332240886024513405520643156152884930131429838396964913926007102926208785481512042684426269038343805700612589525550378210904868579571456216465200200216182837386776357262751536824968217336653843822991307597456825255473260636704286840972632654288472233746212076643714315322260114225080060776618984039828031625881391873465491316291092358557066950799941627937919699863376667703969995498702907618705755059927507263904809397869796733648141152538413574983071755468466031801688278182215081495942855327736609617306260178787185727729117533228901888687274231289909642343792561957469463811290166134345474135512727901999879418114744533160995868615005575094231282115954369908524440535472623043988265526707343632047208649136205173611056306636994752454958408513598736676984223963234905120906166338801767894364667606128370883176905857434026482607738271800392192115763318164030370757726948300480082063617988592729335436009423764875838706338999570653807426038764263701166391633551941731005988484597205378248335281393505630874838722070242229838943865024396114506843538501340425812278387326148236724091175403075551706151286016875540047483358179039533482008614806960949259607106753288015713562287272317279836928023633569719759466075519476033588703960942371470613439891652599594216144178102844636585375016294781269246822215164488572713184219896307638045363693523600987142544632686574286190963807843050106987631518100947358688248960546487189958408227651625738914807526242986857123662947321300615730412610467979154249778827655703653122330744768499775004504145114647452431314417216688688424630352494961885500087362892221422964016442014827821217628361109217588129920758491445249285184796839973059348716286833485525984740564370311201533072563727278783572146131820481909605452038960424489712254737529851700777946990574220133096285703264661142038370487053654145655445986552897902570274119198622654818967948210502354574164068905138815051427350779479713968604220019129191352960086240365871533216986834491511177757529605177439974815318107861597250898449380987460413237790490634991429912870315570956316409886129286581773061220981770298884854404002030236677458148650077792343882106795686190595892774363006552433766005948498803505960887667682918732220211876323869400765526464318033655966715359034598231982395841534793984397962317012037265216340172718658787811741824376239019060824942594415952076248792087315829797439201521303820949146686438606167531224873686725840036506525574762087818989256580650825422877215035377050350693621556977540692358653939543358005510800350557072386331529269075039238942265061709844941372402819895072084604170332940926014640554358497458837667514066316203420722340772483285788153355623878619341721168627782455849998164334599063732318127858103087742454503866101328719455624318643860170884459801683315447863641718195851759749463029925717718238352180346410758984340194738907760321380149455015426018573705849795606856368938222151449351550951683405824382226557128001057452361022893441557678530782532362537985749699258717161226338108738983352824664884531760708163080753399105044232901965627438420466760266585295651403543218044066864708958432913649909774388435383181729994369209334769060671157187937308201477849612190300029314232208780228685094807484103322282749143115145443431383941490323531038374142093061790360752809039630719433953722241785933041411820375517453760800341069823206024371247292339493982450274694997619630036467103555048556255125448171699466943115405699086580968092050511970553451289279592338052478555642493288716956249981479264102050241248484603611715837115671565569154131489892614119383137761907187046467647761734740565179179813583495358556172634695633628526738665985382698985309249914426517474114499517089360749493157604129113065813857190924209236058279244572798763236221758170944765681769469741472620982416701064437857375268019223139380640589357197897358366738105106017911724598429086902782133923677213718373291689511412134158512285132088621873481021825764597932398721586723538413845221333634976745156781881601531624630418768697665159405321273581796453482239020816209232130897162995877006698039062064162394176932600064622163975432386859791104054682122562980789963917037305861949971256635573126121457582087136288939580817936618672258785998691538929228003352651112127227637425852395572219302233552185648238003384930552409032394582807262984575173450805301259689050948756143777260019733406854877927111971313172807223075620291246999093374650416693402754383262175581231302880602189000989228796081743213307072251156292386665432244893528887436835505684206229651296326070576478900529267693203582237537731598416692887877653825061179226705491314980481605315687731552487980049679553728380764692333601883274375237603242703509855558524504819531557669739137234070019623068315235562066056093580620943623250919182378802389667835181610631369862375096829575877131321829306593971150677622594027518524603817973153704537538190730353295716122229767975583737048679803104609541384104408078772311081617170626328284226902371307956428001971010281312270510575300313180186963105951651486138751016250893666543295568904023254255175714729085961812662928720847758158383935067181559907211865404590312123300945131816154481176576240258900056557994849737243346728589796681172230065015298943309309055970206096151120063165605485016091794431623331936703004656441212520904694323864349280134414401443250229229902997694028539003731114900404359115585512277059747464105742784959746961541171205636418579221835022868474924616921820458997961309465933679748420107217629220785775236613358503441160208151640715121207058371757970624137335513557409902903164594689799981691317591407473610541433401176963216470270085673122296764848621209082139366608175615427492877657401188187433743206808391090735922200011094193573485618533073058645860248820680600743900822771834223979717632344381816899548992168554021172195582760416631505624907811349033770018662632621145525960529527182376155285917289747611685682402737609029658212633386925455011970776536284412069329356248397897882385204624884331939082888334329877873062578060280042551357831534764772747274838553036532802260196005068838928411960597914860277535790526829204752761500888972963881599688057961217209035896706731964081022112098386952119075846585658844702795771881338266960574599063511691954667660555597761126363861530463210436099905249759238114973399374560765198606571053554196401580502759467124658858545344767816878978250887640476151302534579502958378476357238431837309582576299084572023803982578782029350784772218129231414506254013920362497423045243293109025429806445829118243824521880451237860128713352218690322714578150852992072673918570681467068488114529743300768488445096821489098046058798718185802016287188100615321871951495445300251117883749179290224555573648930195777112021009153435546811547327915222046410741408281720377027399172009578166727901425866881182594693924576522770609216223696043828386099448923170572089424935454455346859348841753881712779392881135965281815089057283636866699936616123183691302156888360760165612580460634647785785876577032493380036970764320511852788645125967056856214201983148622223021203996588915179827454618026531174346990417909483961142921800867964996563382943349647434949951822955493224488770683619982198000722260395251165324220098524852117291025300039543415183805702610221611736687568821559488227173372015495544396420938272319319034677441845500329165642805563651519889084496430735054488654167744655200467299222796286319313905258916562271667068706171008343964267831085378122367299977962187400703806098231650717133900822179815627177359909693023068313847434612602235626985016511689065538485734300791587870352478863904013461116986460174126200003531184961892121943779531112526550437499883734143798645581312744993332036259382661652130868555501300005735150068410790999244280078319920087325974817603541043019593521504093988316075956632580063106785461661935585869184234605120590776432682235540469554540732018550393993196945343005458170236495384057573879761201352694073774580132281404913833442311641347076447433353061404503879911804282583826051227445004519905898421661623186544721787992584542690771564354978581450348344965728142890120172388007285921330917407680417157668536764536355234618115731820337494980228868070228350819280002791303095814395732473905706642159043505616275540456914503988402487633928843710398953335408446242099683246750167532590815348320084623574134217623376400513206202146487325768506373936880343664543542638279402847945060318648160579226514889049560446634718837337370403534033516895891921593716320805112349776054903952175144969951822722532578702785952591699261666642024878086878431665775036958582656482035325472451052060168953897981020164519483836309418009635017541126764357414525092868298140347992175731222972042725598830718936943081283287226527542596027350374964040671223448670093527312684646030805133125320078784669692393117025300189616439315562663240419338556946496266338513180346626786058049807017225004435234050991739631182437139175676210391818088464977720755478034204345938790766053593988699364850924109275635171954846066551676617892274587125823937610188229033319414376874541580946834185048920506948156768475158677598314202414559852028460850614231925495942259438395752627144082372004707724169275685597693400943741337949190883587627703993216482275398791852245333392376208515229192370833283217168035788215461248375550981031619278866577524438873324729866651599683549863058486401276715075273971393593867019663051653277176730999613929270360257592653194638747222446057514803932769640817705724135029846304920496010768503087803323358688320282111553045378744279847630589968792211286304122703289526141210375304187409714309991363945414512576920139525881878631241116168259695815478011527626286611602963939387967892495671420263479240118994530797924984332142042736318714972073564547879469168897293655482315857711494123297290297865964773276060681108127560913064398806959658072653446861675713557853063148656150418975093189592959787273493541819499064687422585874371496177335420722245053165785933168381340320140351032195981054825936854171001501413585542795532829337725194327940273119642069748789090922059622622597653991725500826645043709953670734297886021066043298346913007735849865230684309216848193576150758671919499150535597993063188753456652282805616882465253183336613678919780957616587352599851141854675983744765022431837408293425916301606730624917466473345903494164381621167479187530305222387245367493597571641696441091053163329687631368731505318266836880588789393316736834355033900851974391263379454315339527115295774917925673268955104096585100155960554409333075009588781145252046901053464071711091202296549060144261838675843204701652275790673893779100878464039734270120679904463597442548799546288023241081115565321587294415841966443547131505865773901839726734202434659888999464652837624498785191789633608316067304155082290753824123751263878995091101734795163279890481502750698433654053324061517825713136617517677327946894555182596282307303454403448631137113673722308995817154992168906291291213185327123024077816908052198074610060710055383180355959316388605041358307076719136222233446734133025994052699961558728335685294337504580290667200999464346025686428868473743882828630178733695526121309098490455307878624378509863220916344909917871283789923452155353138940659414953409481938339236324025961899812490986739868509348815806601081321583733320490993785998805359017353375451395334823133035808660572351793801588111650985070530804392142100004300887585364753875699819415909519297272796540391804780178175121410615252666257360599085968865822974531906643805151776773899053371098679789261251133678649442499086380533114933967290080455966887378492580339212536058744302477802644113441761208270346993194947119977447233930598618859638193231522374667188834448692942886544734395975516363597498974210403571414335856164924007265715554085372537258993039786140246830318466253202309425387410453481884721212120356122629550527757092682972958046120213155596258686021071482906403129001883515178781679412022177838685559214367387033838243452893076475292139897566973371832626371391022331661224933570721719814050183117378085923864163253652084205739349517163126533166065715534243929045183370825448750666237399727579130595042720222825453581125682494748987403652757414296188201969650507604364591705842163220435149123020239493381472807753872404690899778120912631437763423766786430610657305955328748540907274565217433969997651448082781013254761415736477015840319537762116217539755527830395568831582275758927146720913860711062619110788105711114119130355024376476712721654243520100726961992630945450241230355919875794142956962500953653217347437291514329774804332610979902987920700802160830997101155357916274447792349235627755896502737442395849322383662536376452068946959689273775457685049465533002619193264898970641371589654980480962425472358311725157583234031537713511136389954087102722634536826968963433357574033203282191201556554531608867716354265936614077099295005097420804131654297886277417673130542455970197558966306481469916782752659300555285117934664364024884344188091624257064003965957896962709020015399717452428089998990297732518104718487995979439011011667686865898664496845323558389156489037880409329163824304675520699629932586966125282409899137339283726679290727755661358951474490871801678105878731274225614271884627109946328580348653568474876102474719196024415623915652098640953000353000269184994084350747296592931570231413255578836750831167959239126845735523286412923166428328323529393052919501324783440464860353356090908891521404183354856221041676334638144797219912125785512862985211148867684171473335367301075495733026357487562878375056564789809324694258516665618923628454623066252179102308588488642128329220594132118301651708994933489455696870159737228003561175828170931897699317765347300895759621105759600354907260126558858926164293147545561481306719323196188728321737182659114884526093315927350490880540947733005591584714702660539032977396580970523937581209893951993496142715506629528116958059033858872521633354908541345769565829151057563641564428389553171320184326446594740319305335489290175357348380162234706153684551084825959330564627924290881405425754646702515511707735672126580094414503150303786887819279581580145462571924535943262172931697444017052757286398915038506289223441137200928880721643563746196281648011975982045451306300526222351239834561111785960067277937449242045957081288128728537786761492912866316681475846153738919020184205501542369544237684870407334614479272778974271602641541266135472657783630514867980282219272297634011531936614600801926038718832642733451519283275257471553371154333161796059577245773162845588219452022142296092029144368622572150953078813720464888633259314523258791019546163469802659156548440852995021428716103195629796635872643286333509979211748241342906774062687099921189879724056876575141646080706906081282507564349467507313337043375129190446245770194488632175960305600221469808320057138410059445664369856926971456518317595782581005364602049710518874396331617420890945997507570084189590390958562151083542680521296155580367836698013016250644816778840038297873072307914632934573714328804109922310771541607582556906643461260224068902621449590217303453242772226297415171463712971859233627982983287197149856147548003271170008285279287974066939627766885944824496301901665053277963039789803691231675115099694095450570568985367575575230738753152798379440565573140755064456304811341426647467169074737049862575092612323712743153350747017997089935203538139646021467921308860557000844248732035475638300263332458381892455032283252646163018046630423511829121604269261117153021267262366289371421821172861586231108295618750519764020143590996451650910857066290491674670526441835364569723521689432158571933423660061232689509626856684354204228386717186933962778303356031957302162135852076048859492239921839575038670235952985318580580968228676273555078618978367085627102675900973738029379854638140783134011878846100423071252177261856985202813369613380482259001404105308830063240077216592839876774288040196518662768813694015635987824200561143838153438028806765549497425710245891695459572836845176432849474472577584592433942786805102025202887041617721072556157448026152743463251697515451044618673299588510177501935021541227322659283017285021640941428597043459062273647519752270107797594179093444795941924897089845660466564445465964691144122319239170953932449916894141867297168644970907716565957308081344194591093775386037314839481283844806256567861090334331746934852429994545414381867448544565146425773813843746295746589653633489497004719116922144070990847605543120410831458188656861960554453660820508648087621908953420779390714591026057566020732578305871107525635819639471101945717274621570762305243910648469347809644834143382278350920978955872614533805629848330947424986470852985600739697245576528514131577439122608588077859651840805366324261952785297051791438734863560157465841919720641724337270673440527105222274373672110091634728757831514762561412147007072861130783720829755135591394675938225127655006688902968847435964855941575969099852190075282915540815119668138846342867555209855651426895444557747687755640230331028466001351324868731661456205891884991822825040539213766098630027878937550726132289161044443412007845602565021784979627179579526035211987839746286769812089313634841149959675852569141602795145048587040524750639024371474074399920997698905390120684697420215512141825116686961968242107049200061546496307072513196917141837460793444123154758647925113374958819021690397563902603378062040886672951939725674942177748545656060907323878950418860433795958435042523659321594716762128299872748413343632083482555479756264995149104464665974002535279628066522241333743946754278553967676437711164305281874755249179911017434539896927320065417152568803740074285730125495596345078581387606484489089519287116462842383031064930474468481363329761095017424277834991655297403520467368541852839505744741652750356002784209705286446793053214084274170271543053269556809627710097114438188594408454938170882118597520297023805309530806305155861085447196965081428610553273053719995839675898183019680182929576228369809445475752480389848251608372671113895462630655435636136441136269023807373119282155066885703265564018606461077401564103533677251775185704610153980253647680773557877889732463520179078573979528802196928130069375301731381208591274657790482786628415315579804611282659920635859761044105095466683091354141888889307736669807264580641308905188312064515829412136334919989610328596554991427249649688950112947355477109014685280739616562248600434189297868399208294592185370183007416529133328118400965579170682306602871690956008721735488976855867950619035451318740454888906374916109564239601864722801374177520040864044543160126130705954969789523110841228290554427454947914729119143075595646526336323964297723866105465830552841720869634991007283264554907583789175689299912039981834573140910462777282621649573528090750578963887701584860249879376146911170133637547481074717223538409544480895628417671230259504454371346901084131553530715133821495717053084067604926131672864524038605470766436720879886103609168118975718223736079196666728791115224605276267197286736180466810383391136564754275486574387143013609340910557940520158859154937173664149162950567053157525929097509641592631663582905052678210731239036349486275681197858827548780983554804846858209339513381157041713783294239975918895957555823776616469568068918788014813784799966276257655626752030762547726619297776086473642019339577353209379672641384995502694332884048993263667418057493164258396367164673399084795204661823119892552960156978033489974469057164566735032593783207844940071603397591320329813789051204512673792154895132124313676735658105921602436656972031039322185704046756107445071518389177087420107546889408984209590889231166562480422580811796317767654398102970837276618415575703034401476201335822026363265853685202467635478688382478542184282402477910850726424836511901308336058385065171541148831789203707120887185644065167095697196075552557329256226080978752416245927129837131910061418026945802130759520399879154398879080131534582309837561079707458825758596380817349582657677449781570554452945648256685282442152639360991132222592148161330091706612173510607913706806958456036065948312766009863745807236617933859854368787161661223135920942496210288341208515053517308422839580397016158835426336826889696861252499032731707465224942526799637508164527462663283912067360380993729141250633872814875900635985130335627623316127590838369659719761105749781287880106523082492782889504328188932174592485009290567251896281495896820751494338832889476550835783104497412983967046158575775584095990530770762092387290117256230117173346177152411201349360674029160070922682826266876696878510767825017968054233599650147254066475809353185964243373874195388389364419373852537105892626857473170160015666107620173324270623564069092769799450193593304377767516113246353979286889926763083469431337060108978642479304856187258019116165625378970092311537169001828409673687325754812058371843818404323974193848850281593420515668116887664638257100730599951656860708857469265343016231649918536583351665799692750885263470202039368036883519467865171958599701932018531542940724209264812902525903338452249719696950007505051387851481982451520207044206657860897976568363385934158285802469383881941988586261120183195128780390197409918697102228840419655586488603453901040004265554801086934380699766503426461586520340174970629787101450856898576162269151582561263675808861298771415242507931882850895056462763748634122719737121584338610645306933611233822476881984014041488377124888562445356401373514961465686901553319349572631391222705833291590233401510455251382363951727236022594885079746325476320356746351365164193113456596539587752540985271450274257991861607947598988797199524143206431457057308468983614096726961704854355792986102166532030752180323242036581008512983827955669085914989911737465196262848365374893891644530147961381895688262728004803279882830057901245314219811634662199142495356785694923271303130021758472770213752344164233428633570674486653844099127323808394715182402102557426989003787462037990074501138632426967019182156069140519137001765857262764781667808932443775100479607739630398482684766090504166316590697792249679049039018215330581760319502910729019033310586759342245849584734774856680381280990033406360001704628459179153427117311874204814196586045225415398443592724886815863271660973494092671970326231170236146029534389570373360425652744862644372712411351785090360192545860900710281923391855647426449986430142353089778693386042365364501624629848256857190655808307293151694760274508659496581097880440473071161599976272056723433543378114779245942053173485255710578096350970167319160518419644948048300761563007274785483419794378150555686176449078496762498431755159281551664272750582270946310239536946850100953856127784492429133754952514198068684542427650533320278705518767162034204825080094291668868626561038175790509817595984772807089801715804914568022825722615791187877082067992436608616671045587471456574257655889531250350510071570019482841397426998231691436767973082975239129476082651664467361733743508618686398497034370098944070040691037423678213454668513915388859801699584079335516011651199291624320915361842964618520415753341286427219061508249982527687368625495416660719095987899876223383674613789643341337485199535885155456574690149416160429463239305864934038306739290046919826205078577961833610914551370092207977044009622245043147307996755770294127517022006875265077129444271959793380415341835538781959481038440382191941971721577197487618366736800743222534845205865942009791053310731251380380483811413056891554692308070027770430913388210476908607893409502390601740220790221640159518391181386211641752114629521274188210774168116370233241966802860661543660983000517626954998706420563673281118169313055358419018874484486546702768681333275730464565594229800661194940328886779527977599385352871738340666687526904886573252325517270492144217410650524803134512864287530493162601123924128174182544619112013485234872777277627331048349736141312292377356261005613798757843617666999945516807357154904162784028192958149099700863060405998608724855838402901725008063500210312351816813244168094707589831243482271353509215215036355696193604683729710299621126752472732132490709948557723355941077762074069654145360382879736220921057190105108608496737326424711404682738410130046589100663185844884523542299251166826187085161326889386020504111861568283625359763910645947781832299139105207119029589204313056660851372106780831176867522583468185652877053025476440506477181438659437195537433735185385051228701985930177249467410475234882469251683167034492527799276474336780690492244082556939960887224558192004619872888584406057370319096202063311187643540099001841991173253828663636338174073981352130044742692023721782368811504996348987553153025882640706684900591622134541174272338213635173108925040918904156141764383197710916554290813307214824194662068048446941884163131210128246961222372299539117548631706314982586647506909128185721049332381006765546755969733477301202351230828850761071616434547173163885361479300265482022290365654771232731460328429105294937403923942240866672987848167716000333095403562363870245232262635795425649785590367903275318713530124290450065034323363819553024233881447025585545344701880082923767623733618536476220585879215825222438609674945700637485927228684963204705168307270684234170287432788032159537304976041160375698460290603665301643253860432720595082683346490800448573611901707862078051894486434012303434364453718839628833175425981208923927699039177533824608335410427020189271688062009114217489830863792543904495138029956790832323215917086172462829466572182403602864006856824676957326382133031114430853734259501527554421993932577842971169779500185247840331167032038995177711935876709827884290570940628071422685759245961744811815620924078802142626173231465245885500649711545094584706903895968483738968909165721383583096210109176234288052645444034921969872809179219483663970501048906620907005844248132724822336863963963630468415349372426612593626245650694614460594334637675558342007278870370363418948849862957400703566042200258850091303140682406040307024362443181393498406945199125930711134244887111654438114741748170161454402782183544832072743406597417939370878378194522579946619403170466302736159368355884738466771712190890263126803212636871007729329130835109368697884530307656612985705656181836601556821736933908916386994924245045908177659792523331856882038375370668070683477073606016530601617834306667614272496553589613688969190958009877930837410994417948927281520282950267404998397508219423635836540580700416507682744433069653384787031434728049143824821373780346837825151662062792058611733106644435873949950567713603524835340121306406462035920597826066464437757832406803319873211873843491940377025613912913398109672290637521663942210723662994118144599666974648307676424553182846002469485119641452109911696890818311007430169770886939212846989194496307497159943672870828106258343976074324423362884840706288583551110983045160356478212037789593471808544509248392801103741580023579227069728152556773665855439050202615586102440181644740844225625080737309228314441339583332269758660094822328308993512592878945571409696285800044587185956828537907782006471490943676174835527646078589959301236559503976876800527074046060110130261572245745999740862359668732808913418144431994827855461253020469555597928082349077723565212178095550681833466613841684872792038668485591524284379507800062214063206160324239860847850130398935870489431565795838259460382854491417247992366030996825092669769611955494005850779520660691211420708602755362644958376361326758659579249589044609541327561742891444927213382826037618971965316988692659892111597296360423094543573407744739830126075172038128717355731920498702998985687128821905713882495844773173820316097785427022640457367869235266586814611557443893321582043840420989093310113328803633865246573645907290738721975312718358446532500146901492748614539520329520623116678787397436119667496342910248818792142121655490933175201749217849967583237131801255194400637223730695824291167088951787829141461050382799488582880084087993605265033275642777900762145198569015608865385323677684532203333912992505461155760830860599178004214340746955563320557279768244787125587280694680314422625900101594877381268151793112187829969817682113425792704679227499665089668135980169987181558797140368698498777218183184830798156796503578536572557784221302793652671286608443844210105102892344625292665269532924182906435588710146777426990999082298269653329524903036377204996267688071326040256387854918418110525002426265299677747024622800071076185770581329866031420316765458755417035196170849836748246023518216447313529781394040386972834051563487996504935918941749091801282475262030412221874555552516276943575692358578509648786123865820444608539754451322865111015106212208026780218413169690946685971039077385162641916553525976766718401085539372131023997481383336010070889506816819603547767559720272638113704720970085468069083382447213709925965923676195780804173313791404670682414757110023016536790878892869551026081496910205054707373800516037050288920269369197093861033650610448289367154885265969152636752800413434821659400437604166887688583086096825457766578738586490157542949859401896264506278560583617344009658009194587490713917863656528086031616786846953772787832251826793188030946657708895008006735725248184617279351495946579164338474141221239986704731735220952151817649523246271539140055222901163727751203335629018812997427798794313717896250050741354032114917760951117668540198881095884259903252322623726183336109901479409942529698846158971314042396420320933261858044056140608983395846095481118345544483343718759254361603995863688707047786206394911472902764955440396666010861499478822206625935308488819373808507677626373086452116628116401531308857605566776304538757397486810695965400617112942490950162704221146187354537421162157183000755991402267994883271277604259172537920993093521422735698517524195414108151295865642562145674781602537858225958482724860284530681412964148025144685620953504628245640347388071565465614785109095082653503642238730855583415368114593349980851706973672363683865646574043640980522194343615448075141749509021787970317042637639189559051690646221784094572948196193386033882230155116404995857180090383904531556206190916944519858991477704648996269120014463898956578038920494659634280731702036970259717605061870190654688162571522261308881884786940938012287223898802679200921008320464608207356267513397879781890645814495083408621917721341209230073871592913903033678902505417039367763341274481860566018855009054567208052963851937665455678407033912228406549229167792379200607743017192098964217016349753480139678712649185903894004306889613896968282056106789907650348772397667719053586958776762334632624001947954459274510201205936733787927112046380503896131161752819968277909550949656141655041737667836257620133673591287278224002167782661753684078679793011780997728959199600017035996957106093114940447249471783254168490783349399829335188749843028503353350738726163885116601204231264522313426171941043010827622335922963727194195456314502159462910502005040098482921332306865985316626541893507547313218343903527884918138230197271020671506771689896342716227518095709965470266562735196789053016521270277261641924807700385640493697204309789112902626963585909972022131986561644717699321290323785379661412714711101848452503592381745152637137160768804247658344070556052919044287463870157229334448116773933400706727933382271298101261428695722787603550497231461230037970123898635223415372748232277179108834769055158077291245995283867063305325843106574570903575393647165338989535182121736286437397315986108490063635265922197724466946311495605060046249061148013659606140820595186657242945999919239877049090518570543328087712246994175109179199283325139166919615216262117640307612565247431286500105591713423753351345877058806296183057755707458618010357705461749720399877421356883278715930212482009537479422315611378782518490286471324704639162936559320019080692914901417517669463372435461795858520516475443819069257519234724414571743063908197299427140319635093973276173943019262338971387764271591750391406293472498761698381373133560063831631535161164568262338296579002238595632290203081686018758701624741037482572823493091253291249565740105718496278199129558367799972921805294922201355143865316966743194373020299835696025205230054423743207796152836477454214831030608963863686934796300855509967014073101510905430068518112023486560895265007999588992598691845128510018215994192348293333521932472242178216344673286145647585614964706709757059466335956437144707583449851123764358808705553085149354660771904925418520278452687096584118472087164983686958262575913371224353558413929295958673207134909670855320986279840556109494421696411582283421453125266919775152163637092728537447324054634060584487686446755857906045109145116055217209411415269956666086690529923364238632663654810779589392809330487040540100376295107374232865318582880917574393281535250933669955322997245120774835341154993132571820868261672622107002091556268343913966627511761487908290847747163822615423412535249701700810158833068325492607239447324462928538150033055134240357912562309333915049191614769855026305265315359228189599126078149803604823252106979857347080804712429917724722452595391523475774142808904650487292696357452096119772659064927561985605927080561738701492753618555693509740892260931884750739144708894357033689954169553235275919008619224737131135519962851731263216102034999043234282409226898876866563091028442991322230670111681738216264331973504502445466759200822534762644812388206446226346121855917919215825600883719917189892186418682593162022559494424611266123667059712184878809519771378918546527836230995151837590451832479120205254772364556040645951219371769504790161869380944906362232360735325322161618612231867692558911162759095195324290368493400614826267555685601906231573407461828167850435521110098279294927663641844125210046676330583290294608228007241162981711835018733463069185427306980055496846343537705113373337629361182077689083602080810457643495003711235951314658453200970914898160764041425723880019318916331934585657055013979718487971185582874236152044743576177770291867360810540834979601595024246699402686313061494301897595346897175904300033772185481074630920395059704580933911970821331074237042261281951755602272085392845525903843556110917166218272317609400317680020063250360982232490146312896644923405546201815988541001666204921420237125057449417211177909354806850621483001319993955842740423690143866137740805813558736668678473668368024235603716146969508894599760967107923583070122526547043497375122538971548460620755123855541174825598567022479342850094184208764882943971149794581598400668026135619169728189648252819646755972040789265124916732933056362892081557289058786161863324632774707229254946670205802755767344745329820071011191354230205444016309483537005831696107238144602279522227508284787104830087281061219691868449431399109034589099585332918616538210743046128131453222376180710642211106919059709967147191601982945783129253938608568851424515896742553693387822506968063265975628395351534692211220492494562026775377193709122393370020316180325513951558028122361597317704926158867268605946459138293977578135993651974898892451420339173432807524769428199150800051477917509400480880416082367085201207452846591996712669666509300932183519146510318140767992670394684371909178585866962295224427133582501111576454987770302884745060514412710855591099698794243077216966293266747769928319188437742237842182738354490308197345389275044341774060471557999141461161005950555703301350083959928487211974274562040127182872152583666048670223568904484384868936079387264184348370951008298494521968444813773616937286058712130209958598664594386818992892918358970046731584266087147704478231883815682237584141744457216562465116668818995669439222910309941200018354784350518466443011813100652749785038566080565601203540136667942726309156727403716282988671348686889570580473229181131427436983014675104191106167704777986486997104773951883486262711498607662995389370344119644321187238390474431340455716389670803171078690949348146639646204981981961399902925371250061397194548690710008778252665487629572362926027523852592547198439247663189771327952604786916870451116751454340959905081696431099334555420396736588911608563826252005457657676492275111477947273163428049747122753436592681065308966579638472589848698580646229505311096571510309626429896569385686129958555706595894729252926328341270608972320122255821218632670108726422757048766221005538384000496289160122945527987411610036273619682551059157584946476548484071190731543623098901271033402093804338050819387942172209337253693747705049148320359799548008951221678546797082135008248219199717479017190627319983693147498273254745053483277564373452618668332078820943334794429605086603664373853441912027597528889361368894089002974954353290533782823956765814456264198674441114995774770550711959442928812828140409045464859658231468309303996468066174506376617735251742295750228702085589751086239472808386995242329764211347032362074166899984162135507177669270445572137251410318777332640807070682281135275871745156556408469147262465294606997674465922504479813688439195738945962713174104291235449465294160845561824612718008498718967782675128912241769389781710361502756873083462115170569446778201468279562240503676836724378352687380615095964462572563955895199389879645300578035232036950918396496910133081416563028887008237018156990091003102294035772222542941999988350336373694275290715447685668027756125923612363451416946975515845542728080570724577525665579554019499033377266562992323661012636216488170279644932730233501875147242762702734873384452305812242039941866701002335860183095228455416212093493796559769739020763727807090346199710868360227315175828630918624478702227498791158125157112772933716712995210268641702998820424282446810403289265771625372025943415570741717331715207486788022271568720807822766733717726871736014089952510977021053272135362589910003728759368508396911786990391415756965742990574410286483896934083220603646449635136713366475900468294506643707060496090058431452484647620520849433105465535803898069658426036838747109853123710803388052786135181420458099818486159106236980852656633686989889960844628590588689623772861240102332703847743199462945464288319273298085860859688989469701464395673380137182490462848881742457991276483177906455857353939053431009980262436272683172296829843974897023783860145542392814954875568174463914318414986052467006196055370069613401979205766322907286765252775706218150146124862818390640745216373679084578316455186062012958749277762227894765442693400992704226079143724577952929960300494296658204438747799808341574147844730811078709211428672736672293240159512304506499404714032012232605528109519995332781863582425453088116175791653661049368140187367588702883402805188970833903452071201863020199759962050886972981144856023406370809479276055563099190029438598662221465957607854133368879564305564845738055015983277114063410296265645297563460301357881897576443045285536123386509625721209638714026993760008371433486780766270497355277169658216539709066178400961059113617442374051982057133289246165697521650017869381512324615402183302109913662843476190889389717696774112560679853537955131324194149382806159333815690065944003200126490130615184326117165775335394366609441488940803705808706972520942817535839781959203062007406200329264055601538077554637970155540708175709590707596656643220641448833993896084819536466174585819209184773923435403396775021001118315924479112209220174545067597503110562582671601340186635127960905529472984652226703283182787129689326320065824959472949836938942741208930069342479187913081029924884766737169466691943897393577696943911730307594099814958133957789407830084654323399528892112983127956777398853649506679464803661289595964415440207892726429247825277854563249941460495058787798386246732817517138998402112969084142687975251227062716051978553774631458668459723212393577848133050228604394107966314509497680504643434225958861953571371912542159682409935498169441604222532052819747112308337969048627148406448937968219900009669325325831281387734193459633996063987069834975642865815024360943623396003389069860760398501832225991654929713233590624563370282146987761947862047716973874153029379037693973018524978028849237909443845124133768200665768660845382277398394816177379014695330483634907844413152950055075306008215584758694486358698532778889336634753336893627774905388487579403976242353813601956917885287748296814804264875243018751837416803767475294311692539715765265871100387158733965483094637595901920448018617453213754663945916296025354475064680188397497383009063908848170968411444627967145576367542962708664946432316376480466298190744409451364248404963478180879553620330138212148966299306988318075031374030640063138139412911291322418909507134659776571729278933285402319776791418695746562365651502561054633620536064527198838365986921911368446375673787660861578710935680852048319317092323257241293598621594463693944796617605898175341237691045822323603051889765333660444018373704393257766836775189493906562780949454012935592839919106578396004149351209078064518490790380996886110166524184800920450617949839089938921854955064478277560310981694928034788012746547429810745196694218508946463891582017669255152521636094011804074442733636549333648356397947363261786188896283263095432371850174721582109219825375473870552334498096355672486564915611124501852519921571954918168131191203608615442310812738434601553430913354270313172217457250434433841824618648686451636218929340831502294166998178164985153032150629155633791732629230161912076700474276699619849932214046745433203836903587928132841447242686017768858739419019228402116199892826903913624374078231286991572649673679245594087651108233163619059286670483779262187076385507528865573021165936437760361871140179525473286643593051454203091489830093543651882053553040045595116665964197192656286763799741759056467001587633414900668427873295637055207704732942924456277528224847078980047251145856433903336977135390744703286049835031193832775373094729715297100828306001278318453960437788080508459975216612289786252447829453497498709266546228277164072517789417110109913279129703753004953020402992276898378558588255236733735029560436902249472017375274351239868751619723641596952005261675154667734030575938727502387025627310746965170492353829784405613334146958121966648169363339611214289759477893212733374745030279488526829042980773365497717443297415429151300056024168812784155528961485879253648481338652416033745288530539416673102718537481609579671166537244364837467384017533306279227387485574940631061618561691127857584524882093193310564681740496082668523037584953004176466320409772838759282213138598317092559112971847778100899184174975805777960958690402872997557784781907063495030538258146292691864235122672425864575514947953359537599070773441708225058226537273443487025478129916530082717345710660750966540442217292457946491398968517025753149476344116320883781771148208691831186778280370286072800431409730910498975647093510033849000222915613909319231797179955290764580949333720983272106330066197405401549291001259312482172566272136511738818735164860657666320087068611916810577508581982682698271383521036541111338527283921647744691294076901551088444704329824270066980505862170516505551072333797387270746336622385106595840182058366712471922889965587689491154391887079134374170705895406144962118062061048971492514604912014979738259676237553722980209695986662538667605405504199015320433068818644928754676106034103382830583228105870866671831244214509131015499696474250496700111707914870410960522377806366551902031539171197759255676786051792906868806355106381389178469680627781846948356790395626545098267853438922034046923384967608272138181962950073835288946681598234783603797214698942410691482697182228873571348587279552527956152265417786977348005977006992766699743017483209102162948646975852648980173391122033466897081094346758859110360165618755704749639794903815935951263809236656320742365504650226491111720161910034108068230952798480087749742320982686806363702512868581374865737946151128260833507628911457426125456251384117814995876246855046577273516061686542020497384242344021677043842643018258264349470348915194993292368976609532357176535053488204821213350343511938017769822478875331852830258517958769841292019638210186775811415436648815186436916133776689319393780966964157998371207716355095836090020569542138261104622626886410783527236339561104830358470400589296991462725898831239906504511081674100362573877570116662452336854991005016363768136419204071194708285806368776740976062568611435475139953545015680673555820054162854872757715090428419491081335846467880585655767344815169647175713546220891897752308732529184798869289948418338370800223116229697614800624505628676705553640831533506298006301604129405307729595201382260836304904230029753660048094159356773161382733437747921349119406402282211910631438974652977808502628516347185574198390294665978716423581277578995353445694300019905002969908529994542284984509235234741765027853356089370472790203781861870371269492392038859091669660409552761087858818650808172739806224647948541009752462561234224792494947667142638166499577948129616332635271374614827281494073782164070115262530574738798230025161699259113515834968090110755788381239947594004934359043851391765708901919691030348819621384047071652354645804814220368960546144292077564494135469012290441061282066200868651390659844985598220522793632982648554875655412344643219493242865638524554845071037890722084223914609571698641800826835629740284585005347415521041322409997015775722477736335526017427366364680078275514925745421556875941845589281434476540084086467438147063850606815604191296715700484275462835983095539142819097250685151563273805621390776837460920682265434104172145577320447286659945244452767204078957377522279431485242628822692760368248860240952570508678000116775203349223723323204550206391123823860879592186124421257632760199751886109665391849958515797504550353193367265508412492549082546661978154326932476765049252070989955508257935646323869976808342478314361334510675234627781204935211196422493168447427440725172115556637720545463631509662245447602540669905123979176140535403337535691501809071058318127226979622770741738097741587735272332290092855513911676015951200100541532313265006780260907555103368875049045658070321954443035496333202691526605783150705738177165235980086429187780440289547371318626733898067484391948236632108742963916275916337090265652139605962430535461315946800354219536450197888264199417061897901619395303872927722051139745725613866787023624769296258460060115294158486698308982041209993228828837432124052683581884196386510376364418814486458544299205208744875588387412682071864174715485533108140454968613349672876863404757572431016262706587423889616975696387180894573455467844981068357926596473873440226343838494770607137566644951934805977244149452424360891131024092735233281641143947163127274353141236903118829469803223433414566755280908438393387856695945972991798084234479131461465708022679338920140528160698206631421368686151461357292996894049986389687044695847315841608334751921839564598332628667633214928377166145626438716225610470510885892404609158950231592537293805449662438124913849263149304919796155421351259559948172198605511970794636042970902661700865093144656471828558534219095681993551166983070119100079326483138583311990393571432727502121486028989101844226213278690934795961315944853291835846417720009733986856837871127194841360313757443800082170149298761028493413522804499522099522932576613864539168480537993711302201438175058794629011891964726180553297076680721890100011211033966635146370355239840242336482095178186614467179151966239795836125849214774014152768502641524361676370438246734679222148018415342595589654406734417648360925045101154769182881201187250422635345333440694653338287869993443992303337316966495139029963732245339750954051566240671685639274216878316254654737841849885566292478425068899834083137247862990671082016739667279509610746600755477384443333188484692925909130958478933239128511506802892791723072092996888512359933552503307853996137893051862371830978619382188944083262892006557759339945676470281740137034393541368574234657206562555226146963841658271577658572327003905225446487274613899749371150285189299750826660531659175667014237176127634720385542228821368696981981521966148101026599338847767888800325926933185579930688698552492543089739442824768806172089992069396725233511789812010610261273263263555141186124875187182795242344824464760373847482888593378008502111154457734073348519993137417905470708273421815295500225802586607860866468537818170447733121591138279871140770946598412749122155352750296961442646209209838423852688095910298086782794892890458542189049449727712924340716518633185442132478015439352929346699010913323830895058517019771295152593237085328084019525758904414043681527138886273422487453192330276049780913915191315461924417747592175741041563272725274933377657539874390426250821080049861616387881178989479492972354309024525604691154194214056212920287431763898709865425778973935538941071810756563743221437983685425022390340561608768924192102465699578024347608272925088626197229722686643907546191833023177583231248998452557695420092220475166552970546368660812401603653421346574262039634591908376690529994834328948684915759783766763963342594091303312598395649408674165187886098140562200649960387506035934451650553963074234289196455459153732902553330801487025106956186964146763642562272437708876623523148883239969894232430789338092650354321729084986848237211250492636548705870906875210688876212497054751697713947615443816225917636697987772899084322718606517309969506904262837141067557283667387553019530443016705929193145128483162961461849312330883456922018301945038553885448332899060586316772438344493178162048336846842342523594567437878755328089315289897715487367269185946500022874865016961756156171171285396923103132091393541152777769019910333147481923314076427554234729760440369803724067872081754457223553141278052171697926614589153902023340782425935846613124346147456580453624438525246681407700611957629725517027419944627103166581421393406258450973994851325970916873872567435875001659825511260731211985406080222547948385989780610918125662355184225669703552603931651100848093313292782978008779420841735617715786521791654317619700652189466199174342902897669568448445451303617373337366513049205176525957041490068510921638321860946203088677000588438961874199640761701911339305675365578112205541565650586656704891470085752971745340905460762190026828577975784321766278764761128584425510311101417166655834207866894966799172950660799694286750589385533537827373785685821168425417550196734303087347627913487510697515734369712174875422554417068846951453242716370780857849338128668825208319259301393331448819885185328523582963814834343096948879886599730939346993522890583505782905663326508301913232559100656912714590256986535899971046270128388491524133441390603051055639249175663130896667711592385725452839245322317976473158593572933562674852117441143449597166456792054564907496603583232257354647182903116808986418276449646720850478461104927318313099142795484739361059684197260670183282969632678063643794334724372297626575820754036961502074026377124007522265122498255142484004426149598555044325167982774953816175852967209352564635875864146293602295517332885468738043834650292703371682249134811452851361054817167805573872575988665554323712779511177770568329582777523135139953321202299600422143644345193170522774224685794967082915845218197079688577641500417449608309480575219462633204463457104746676039257604708425983725448857449730033556106443484107975605870622472190124081749957351940044649777649589078509140111287406747085151110604932421990602196984450089897200371341086552173978380808144401012691391056690394649449490650304423697159765562211320979110803702507816965842139517299971675344679261030342987823041743596477528745430327303498799139310227255042529612060501362229136084843843482818082607642260061686109523266294479590062197675342156381924632053323770730366043257087133448733981014817863815732039009775602649818348933047952193579018007326322754593034332672669038125897264763988825531653346615362677679202663266994893640638696803362172807071974363778567016081115800492239617382377748723156463711628703754462344356850761096085313876423841293505734377847115978822116023764080341971697496679540014606039817556529633031644486741513071514430134519431329852625907319233673338004603452230144010633270561279723002327809717286650129877045600064807189175761788446725179647618612161692988520006792015017129720747242801646232639576541527797197967810637608098023089176181463528067394949048648849021260943719771399081388612609663397028342579939735887445167893874968403627593164371076759068994530343455873205229594224474082843186289394021058235694661236691036624618198021820840320622748334364362233354801317784202899151591053523749973452036333451840740963717515237225912171076997496105829115789303481448912101857722370585464390950730772117307169139166707864350961129104688533049598574112711124971382362221160839091088685050969913050004570131398711006741187114373378201817006545953489829070478623823858779993605874840774966680606011111197878505791113878806071043543638910198930682151912272932520950928795590972981220827773129578155128571148874567956394141889830502324049856448747884237164745932831960039219367397737119366870856562525880563903795867592098989676601436669729143131583577049306564135903272663074784687264867537697299091480187337886261813006156887620036535089812440158061966472943354371035670476785440747067970905150824294652752761082641639145403027288431590563164219184216764616556196365719784849681988403419524477077426616524477166841609708489347765036412094595767011854844646739201492646382923351019012686015770834178002507472630421216921499881857412781628369888686450867191931969327913224719956463805502357038314758780905911337818330422184127174840344692539083115461853440733970227597796146738677586789406391492073200106284186488873620020086252641976669799446751126686180677752765246000410108198262916904310497179380017616181830411153421034829076722456171142411506335250375136813636631360406554699339878243658855020366875297884118000977595423920178030661541499420859551728722410937548743512449244726359904303034153272301056009886657270827566288774551898010729700017717368309249349658148088166917969231307862573768343587677401017325698655681620208692247163857018825997944000601114532676455193861672988179254182454534001318482231306068801043579991858181705566427791455677439132694145284215600221827206160781079558903407185530505166955279663566762041438168507879651954126704859706962687318846412172853325626514499487259859952803678390879844137635192532679299844585751127027055608676026006925312855391204136741876462226304339697074315264708905122283681395379567119598389380507813485950647110733238353855130080636579954162177679194502847789416862770150472003860327231252953926125647957632977346268593731444263366652623814905637692122548356066360984440526965742732528480051152801304795799528101572348921690111304956989063756267731594698003021926476512334981695760778171197823173110306867962765120329035740305142477559137032391200532143047957005688893559354669874991990331140609709303663571892524816290574779492600443187341168761129527813097489496553182600459694518398079041974156849171181971355117315490735876813582273387768250772066545502221387354536511744650209874594091075997150565507953645568763486540248586816600539884724749461298955345777630664296365886978859303851686674869250261335123812124561645534041001352232042009368540076522105946066975067588941293481528386917050910022082954291110743496392823879974564895169398634267953585125936704555754090872377534572064427673937993368680885619745190444236135479733009946731178604011571417917115367363810884336548257814701021164438658797397640342938953240662829159817321159110102850485917282001686955640786898899703376679160415245346913215745353308302709203017729765293281293677390362911730750535023570592650631616157576070288549415003636784184414542771606958464981045412561299529356976966637035614664338691959557438559320834312481126591295204135966187636690210754048660152147874288386911803878699278115572635136797476559521169332148362156085865811652237890342971886189268685849890183313398699706877584079686540450263794255443283130412820809756609277146718614488994391625532824443219388305837122413240262493947519766497100681661150501931967690206866661251738006217257195130007319541014459630087218091043434407031024184045915061619500755534334177284907629779643109518915010164585597681774048296411892711000713607945769812073480501426424334270581660607522365052210603926782277408091292493178914385011244397546711186077505924644256720554890373290309894508203249361873701546046122557877513854646613975970125105968469505450623125398718464317103516355833263961940757234218316650286587041250242167571562892103639793277969526706230768962249331973104285113874176420888885312306860628363441935579193036525329177757514886664597659954316081043505352754762161881172227898992593701162159083778616059006192178509889198769468138389401483344967584026219902996596852099877661513436438286002927446896925994752530270138174553370660616190541553070527355891714967999579678361995430194153413450808311817873265585674148220438277995495682872320290409771818085910309507386234364979450363883041816392752463052740350126926645316952740686626620507730303447000811757694684846451847144888524056571092246265607996446798882815773361985042106518254165291258381446435058761247418125782534193426212435568876620606903729149759880994618535287781314018779234176814783038866545980784829941363413555374655248476989608889947989167776538198124849983877243324690110474696349032368654325692209813078706809515232388791795049425518408233960004620341595933801825752579939469302778483792096774388232354312251735281146947696892825677614972077659610530546549345048681536500125853783495940998509328582112079659452798430772953553225202104554145146066852865818337941366251031221643028981622400325605022043489990322307585573762032047547921262723797778276109370308244380823571155540355504312967304236836270510868866522972621493051289165256537897194291092983194452597983140625605637253655548341144668506807170990537548882297205605846150946525828786961030318939679539831843360198791587628275141403846249251346055042971791697290145986152405207030353649583240549717649560429160183022551547727365381674270430322715385817980946772158820937631650137401072970056606682877885012417384866965305298404724236562000703673853628192861180404123367069883358643261933973600486827248061445004909996231638829111856950440234142039521266373951754928696160310903044905040454212986764577304833050527713326121150550028982453158764487215495725090776306357504149673616169224717076718435291019054630833278160472686917809471827723741986060900833877089726035354486666913407435919587106792293721966206233110667337365884671718194516586844920968499115527681144599761387792986204262485200562020087617467185850527996143565424301204487846699440613608291842914008065794145594585971525895026314391870871308183652133974849352829474591062533887175913359015829699168709905318937903519229504431292694998853453999708801298782743776210230537795936301674646784636322530694467235161552310088389675921587797983273335879984510687492682934670319655664171845913213776787271040611125280704416556468380027301425208086865285815600889760110274481806953327442913151120771267292908948381390121217187890208683455905358041202380184411400470011892686027286291916850944552632901289724914494830825955426714331768995602837030555827911783367088262812520928217406196944723237647342240794531563049121177015666936787792965957259583913318533915773865357773619608225776395945933939936103547266253037770867275234232072577048992882905700712836938431795905913716699532495746335761075329920328839766949457667915577557419993300704821364747588705782780534219134793211485506256965371851879701789452195189201356590767868627726344445022340668159619961425143869836054748119345126617238935260195868339267883269271620886944748629269459457270428742654958632128745020862374720496444587012148020057836035837133273941978385257750720554232126584064427104057525942738025913041888631051310779636223677666121622507634376270002235614400727103520618879775328171969063105758872048131409037399117760083292193796255473199777560492949860229603161488073704179037367956558209151553941770144414570264679600656681697590170095098493531828964279027660062241992213932406676414331209977760126666777629771558278410265276320245725346177748154633286783793799208418765514121478255563291955423744366570629029315786532472458358506118815528024235831839447592536129695226201399718840343126295211523180823774396107892690513111323086660455692202311466236668751387524296761334763385960743924448623594198092766178042433524237342020928711849446704302157247804490361912673150313746325069639410835506944936903527273970301844790923015550693733549243596834971673606173432643159577335649175654736937259800234757301381972464401787910296018492992841971973472574578432051620162418343853898881456102818649122688676526458065333443163338035451637270581891369122962069774690758002339572962777171901339648453141805470907396781750401245304577946158726090213546433646011098015594810673659285698673800904433297673921736780092640495613351166618011334530356047957745577336900079823822555874834847957694571498163525178362907252498859640666717521716063974700610224549206490088856014591434029034533767826318486541984863466782058828404057300962556294305790566297024235708711117155453506461308733026742381260915064177734805058180262107231804709734884685331907204098455998121715431456107893422309621348100552032174664725909442896584105684971228338489300683266584036310743525839422386657382057202979020643987363234344235396488278818905583469636958762658151228805249122328761974181653424057115212423644358826959423746163367907028237952891257756305038136101937608589285698009575246344573209684700359470731916318933712331544821628395034381684239362687805224006506589367388860583273461980113806031516809079457642781675593454687009970596373269268401853377314182085537835110147683790220072604823900060026531410631844493188118886567515320525262188245390370299339744767083746774019653976358486375097177995335855986272642881164560342038022348464103927599419716376889655009979629470767461988424657271712343872149987376170139687568660317246716590398711846786978478418706572969252230436819926413163915032555946319257297323489142692418499253201589178734644419072574978712427041865216217939040569685979014239044939031894921592301945416140438331974314098461146354626059554211708142278924459259897893600846467730672357956962919610315575499529469105816761484549896955297932030629016677622568253134286390046105423699484888685326547789130515818823565878099081352370907342312163190508291047039407441023137292848136680607172397384394706237881160878403778425418537320790158935166078112682287018109360667700363476680182237253570333342587787362959519975157348524227113472222517299873061371128031726834074618871445496869647429224149432678522808855916265859593712209911092391181926720224424514414259074622174938049306018733829499095882879686496545420347556471158719515368951141258095731542812258172851274128857007400487336882711363045989231653140095233769537715262480186161445513464921048553710842182617215980203802456082326460361721670317617522715412182175534162344888272425313797804277535400051193881420820767455515922797661280538592211188158123237232075514604958838721891088980798539969627684800957362444298986902221719584209678719169471110786062110505401715030171429748349692634951228895600188968326623533505970249866136944154214497546777288134410146085155911124899799152331130026757527247362978295988601312669565619403961666318189648111749399374519119178787612105784588653447935390943558569731970899765195684313106531435488683607899320296981894416593725842625221503390740323859232520236951410536462269686478684627466235473213489920603521139768569982032967577575508736834073671169942084312268685040475867972260165946862410962182008976205070961732148862778926646849798764114752322839792610800443571946137362240855312635405077773306854738283235809246082011118605958784257195086309265729313894772481963611119510786084668144322193577083219975303022210156948338510855760435191135853597285902244361649783925233242183489979209926962260828495585314494205439925295142376908705436327693722203034953908717849912346632471510821782570045579707072243253622344658530190891723295552895457197667964989916219066832060099382481285677619424517631130330483854582798954496464716298006562571820632995882365950583319357488527208718664633582247245150592354444659264930196658570156906736731663673593455587068036093045309031197699193182828314842255407743547583647208431236017947710371531529772263583580892724720886057306432534112770019726826070672818334208484186971305170040802804176117704797860120597931177657318266463275016396791973364789885091675187498356862032323396718772784756880572976173123029122166984750827747674149423731002719105304669250406073048120923720337073534953743151492774000359268919910422707378538711279120211734042911408217926613208391129223699038265803280428694334251867959371993949782823289425476007539883566034503124150282157843004828081919270852231057799562682558568848103761989198880488979989769653102643712445201720669473173263063838437114057236731854891473247133493152672970624448011091974601596751970007964889156927129137776926234274455016583684019998893910960719610097749217507282160422167372864335010596010565853091272040081702922342819909003345913581294654901442358006306145300657071308801937099671390270097445275608292355090600468580187786120533242715114406337749812228003964980612842465826964050566153362458277027431132466953284550701744504379305149600790757291595552649777536683853021114664221051948899691266433989595021873911230062194240424504314908143873149576877399748337388880310423744603278402898054287584923655066685233733010605242260651280708742679620962910237145936199022488269634053894859039369727301327246669581345403046865525275900842460880380573398657616843595238670060251667552725832879757957183523499777672198146557205897526926105146874481832435525813508427717056184881626784544716898082889397435102748014037042249495354192633190245689143631782042888000276594176822863925290890496474192072453091114514149087438805566161044474144629968296041456878504296204674303284012938732954295876224439935364290414573586243198959259540123867569367699704387969039470382089390373957097231517150703027016992269820865597453112577635075883594493194724063304486702107079926654188671253063264322031988949701411534222588360737966132676764450203552989540732397385428798762061675504117070225130433884619897505333819423105566005586856957973344607350331013534380692560494798243937786542848406246856512020359731249144915108138608181086730422008811384233120365335064604476067329530410131568542475701474948416883179346302735369459872758414960175232200935051784779168279268304803378845593359099788528328863049492366743872998699170190614781112565708991241702824782656266932511260003904577615901653241080944568463147916520442901999987126953993451718139541597152173628794951377621048062776473483086445662280923656903249672829324806512172731087450163188967965894377842768159775879563298610238235573483798017508269419896390970793589141268063505570560692523374307270797378126817676548809896831628494966372325461695594395793763159954213857848493516261048387097675219533775898657142029944938410116011617095961435628070634309447667549263168965712204043316097433066101344094377504620499812826923389707629760163083340795731599686144238756597101094711431443502075526337990876664708624709883671168889792962470892167407494504820243147807867443798040002550545475939901853803956518512714455410712825202991792588025885536125844037138865291676134848723903220631397940448252422537604076071037207348471370670124010173496753710791738717549561374106536215722572408804304681404308860950434122498328522363711665471019838251793803666433442561550875858121768292192102908452470506428272437825871244181795208394024135737890905702551104455764622121400510568410602413088449924827283300235537799761597277390244051632128256153086028644220335404940185518107798095236994385483565079361764372475588731775339626155405614312068372080961012040007200415549608462236755670472897495407538108064567999528164584947033595556592699267854904310751466299506292231109967659172231245638097824784754324255733023778714769554552002186856127334871401082895171760106244610696082904413287291868124217150851236274459963436209616200659780836791402049506155571967185290791539218007811830196548754898776968074226439219677807472183448708679817058838872620074560231738226396857163477343827052669836199324527771919192496240796244490370257291422105171403091266074886499159736263670097657059175819385512147079540950855869208500197281100613714885575556952788010746050603805650915771908406695007847061965620209034877756056714303770881143696031739649881774993523559732902282194027161433886771836065977041997858107070996734138160236342851024939203120620061940381219034800763194627600770710383312958377488698929215426384296308654251093088224330605155759494014972820301582023899378390511312284615593524634987194060014585040479211995260494474118369663666615334541201765567031514292750162156342364166385317134382182252125027291333055461309443484678645871785434827854149269138370832326249282498467853022585996582345286500148821146489482978927103727966568340100693365287247582141277910074130904562399154251906964102957208297518792150354879713637641180011773738453400282724097719021049970131515674182841645104837398358114656502654260656603695198170376981177142612896601430966427685898122827554927017840980066925816311847665109739040904867635662761374337569614950130163815930091817863253762341124960970407222161955923930286887975193834772682873893620825848945388476775012800149237058482674994815431453392953695540940629269366908401346523192628755883091052148330029239838786039802447380390239485914049168969211347013408662749893661611113832238932321540472946656526203321762700304079597894468660046831877609671623095897396797831735236083844618289814403097953212870182669147591970355857609811412696225236603964172098624196982906706546632025478469484159807774947190818853873146972243398161875814332321260833461166789372368136848309289970502919333779700221545888558320242471715017196487923014227885610285547780952930075648463612883715606280504918208548859580251125486359630176144841075264000837255782610649894612477333357457917229175924787715384070074155777762729192828668622184327179951794657525984540772883563468681906433024675265360156309208069709515806005633470953804288261158276520791317372942677938247682276505237413311423802016418539491345326818773802943493811603325822420609342466877824105733419087702730766778169300311176935811565647358942163468590284809512560397112768525397895383458806173215610689456636344509360058413175390069244183384028442584682638330928392562002307646544445250262793544628606803299662212890156335142436171358643586346249085167268732677408877450294988850641645726582891301446289951203395192483101683794591399095573399364013797314255203091164249389825355946461132938243428730778107355693123339864784539367816553978460437267815811410321587689014702605428094851498760868541685730947602290984190028909690680934945383447566314448239419798761253434416538984053182800970658711746120653363638587735098982937080957612986537622275552822278016621045828585794841720232280228509930811111431412426156662844496647533609915538938501381673092103148171540018347234718394659411591617893890208846763912992614959875222355834370060991835026498090829207394787473510345042445859811913536809909688506805306502145551909697756827704169325230187357583133557782250803330246476269338049272429908976249795417120008949439331827726632991547845376274121950915932625429790809701715777219604891868554721753389994974409405294284107679372160041164051829618691326608975605848433245672795637452532067294324482734697814683596816709224185559552037754117111374492057660891366497320978867809823358420879418419750721178442458883153350281094100161558715425774628632408739507472339165070838703539334894343957888599941125380662836297598871988493658739433082514591455642119803210010249378260689777793670903671637362827016987234093197776476786947260613714035936722677653576166367528727645491438919327105808482683491222682829076705703243754446615179151968637955531528382721573209994040058689585891359979070161806893219660172109551426141987788916889450802115199474407555012170037716565068350768420206642542345134471139113972223998102037063612401736223201586018017826527330331228396839540790729145780444052816777661887642838756792389319721055106169024471046057536925748052111526695131543697883758196410969507795694114731344737038400906722881414342255071068513960089996107145736437241165465778413812706702010331470257768375141925409002992511515170911823479049546905708053944464321594238480002858711012043245901357041127964460869270106386764241759083666377063749040280699588325327249244171659541689089160688286118284706105340900329103341011746193937844566080400774068906773477672830813131641128934275643258512686573787236150647386926336202649779621060881233301622127120793285567311638475553451120240559583776440293236282594278675632045932215665135260986810223976375930374332510559417607466169623601759743772479153608227004154368702184055709681094206199625639743380849650939959163414417511461876995487402525213421641027244137232221956160177140523910167925262031542645705975651814106577883547990059801722715431742197492028656031447031191920918208951272789063368199026061174510830165518496388126414670319038954070591848975025387634878011729261829822956716062206487918966275925845191417379286847176968721768115985464800288283803528578363743031124569911731316816178416980291616188063611386142380445272459291860925363353536337384523121844465017507919841563557265925836506884509454928204013647743586877057773453907348393275287627413365270631385332969579517930664092074490759511198027381806929346141700650485513185535703857358800766881016651830966494590371898940128877859059045503908590728332203893974620140896755575278203410314096183711512291279849195095825237170995514197227350022414034189402454629076028739381938229881519935053555523337946958499270575485747179451115316745739671091292129338380492357743957280601805170693058725592233435845946930216024821597568363900652996299847157916936152810985085049389190471006392555282551787216031703429273686906367722122576189503900426460013364228111086877927989227619986907404972607005601680803503097174044745940977647075555487039929567749845129845881383359613523974229673531487291162767103649076538626738612060889375200068823917367115321807258299700272167789710777584297036855360965892368825256445590699627819479611994353581275205494546857494882811172135559717891212394900972058694197641932010804028404907921176753537053325013481853382160058877866544795890229274911757024368605166054491370887911338595638828889372895221052691949682233814754435951152112849171321964744190287239264856551743166457092343886488850851856203920340158999656976562162530792841170511253762493536377847628813169062965670861350178327517940442007220506630080317463166495735365422971539167356017522964446491291065013898486820945507878370476770288630773146110120101631093527745568675702741162376588187627880064792098218665966535438809366894250341877096804290637631964420321526464940001765820957335486645040275592558338036779569810359023984013106924943630644940144724247655721283874544972489235379172567361211286479048313087418114695749324603794059350877337510593461836942989134702485422823261535898765340939330041047138278579178744589288930489741265291584724716726188881833426858314265651663357654538586329254184505727325129121550241165519230685465819966959077979319432988212459382267997258857261056599270664307103217803095762302788356336900897626070011573809371995935978740084207965816437067118496331639192345783028809850196960346907550120359298958942792802217695801823525755539294240089623343256702047922766295909538810879782720057399390758325254324838218108755766086794495408502474637600419237618432787213813677133684974181569643978896603874514692559341687623429551853872863577231740552388099092220601617507295022622382772510744516900711527952322274257677216835525528953371547083251253467953531745525596463074932024038659957788055012102167174717526705253156522616769197239336685215836752000551436994468792267913956682687894597460510215469742268134708884095553089810652241896451596548240743755394883692433414166670082469648300867611973613288370300576226277057887777245020392316403281486291102613247913212408446231665980968316445975572838707889266560637929535609665050124996633930586009463264079563519402014979302168483589630236503089616460121742088740574350632621361346356092120070639597066043411156388182302916648738586092216623297598116832305948085997815597529699528311656065956954372439370522757327880712865655649851512879222342112902366574493260877155246187847477719350480923077386799063070109517024407522013630633070361936900770527086789264029710812400708428131333237622840983903722584165090846239812449268625207591963213993583723681059839104022167596953864339608680844213710449911741506358515890443717970567302117075218108348658686718005905717003307179401104845753796224191157053328940893539654356231017264758608109437921137438289511057722167615789356660431388369346444276504141839549006859984356796513459018115136986159267685293436878365647213874947198403310238922167324008245768842865897686191526190091479131018702075761496813432954539191446037378462995397151318050144245085597615118493420097686298574599915089446810857207208338284347745056843067342089586193927239019450830809700153583806804007051751935843312296399552502465640006110415577556899326312990180127355478082442024772122782353971555801739076555826849698269682333700116141506347774209323015261070462072835612849722779786627025731366884989515229481237081839282477859585161240647798473361114189207736096282739754779846774174539337007640206524240628233532553429633257610554626026403902333751105035445638305538471852793799003042755953688360471749557312190472028444999717603686596373282773616116957705992204405982212301125333270098430467529849023476026355992670587185902294364688881597710247868150433476750040704169960619713188386953031407960084661036644216934443786595506842314150379963079230988372837350175549505088504718010360245559364135945391314369976092725946793456340906441362365157069876370311418337299080694584523154333926920137333681744375346385162514403717447063756687488735603951349606027143744143641350379802828153565903881360352330969820173706028948475858539338515262206886462642779647454531323413577910032916448126693868183503838413012890137085020181985860100485814328272318787822000599198258170587514820068311696863128659838020800425132967272689187272409670720731895102353877607309162137355353218963825954563382719903408702052171975187756832068075205433439747785766755570820308220479940761149293630463944222581061104216608980899742059940189451105680945708246296037325712815231622145315102329154393652362152921611728537626066950283711105157417050923271685150846689300811463689443597629012596778582333960803682910613795797078124882630396873913717041316589928732815028177896042738388024202150180459646691123094429330388907292842583600645207700213166951346455075036945538035269278128444016667349555434642740477992643515117572364210807159673247419987561702178076377285447188150411038346932458504962262263073981150132543950118262235566153580511601438986598636935645699191006706720508175012426297465339567080630468213044196995338618920355071432869420025236109268248420374725457766521853482857633918082908395308414870878125567757317805882216758006501293833233339272214235253270448129878017693267750899968694434589318420780467235695581883453803601908848340956662633677166919639222298248760839637558068056483664215424210747279095225468958839299648840586664362612060646990751893415506379606636399476312966972321000557760848923423355819670937090580252099206192491879117773742440796964039436661381498921237351831479850633155091957557205802626081560007746674025621828192711336718225485651004808922661205800582292317438801871434146193594500801786213475269718689220848456461535778914356700005294312461245988363711410310314179740699277420345402514794679772608625790824343594297329731004106438305085488812172927591244655351455939902999903042879704132470410063151648227962047414886995564655746996961253219330531688943779153747969627865314319565956922188355433578283132360384520835312102179209871038272220665194147171615710147478972427980546488527504495734566405977868453506745933764565070623084500528838292521426084764664723003160755549265263075160114860842508879144584735054859827905674657441145071741951173769315808215734795282099468089596412668474342006798600175693317348996660830062134906309253982564671538096847711879884288516786566292372581139612957328901277328468357121616511056322151929369720336679349938157125075493145919962931744922534669413235180290820947576090620143439011243714683565786482760875579652452156849567892753636843123540452754193320929337203785877966989486413011324774777296408024447797177841154144574079173732252411841894210744283577925293234030044152645012018381406064016459190772684926949408131833506230018397801535577170528731107444752291974501735005837444108849084976662282217645111745642670877370258807167684583219188314083951602175407672733494925623852899782768187584132005850770475484893335802050081877647026420045063684111330251919993872465956478152651116865743120842493535211360595447078429637585278797937353122565268728388916039106890339697322607489204295927886482041770703936074126726200663655765574932846179049279639240114111879655530014986307544532742350256773761219124298784939969738908378449030368412632900977136588353476685428463321730557891350599312670070956418010852606954325794965081862557585270156790807833339534003538361894595653861916815078072328372515466205813897346447082288309508162185460365211566572605421184612820298978407821144162229426330127069591311153776831279198873942589202073004297507808672742479834203553793324670622645813347305124138263985647016855904760609712620219783432318426405105250894300041036465979271272047697413390150514616951192213904556741942012222010250783696702900946257410273704775200415570996464614990100602860305331216507865748588881210867246870550094267695550518683993778663842173477892637012716730232413925791453661160321731149465350500287847940819109927523412800370180088993945884039600768263770992888056033588159122857667145397537822471061407061024458245631328489584412460794388980193158082916545842171051268743531658974841783514716508204130651771635385640389416903041329559379710253492732562119317208563284114838248830478222945676262625335486156404792378960794626637442970126161244421578916857051403556790888592353161230265920514253145570841825136523159751432547937726306922475148476375061582530912886165958052167107672402684273848534344085035735317026600775496143823171461801109070369798676129046073316828140092413520247713643792110373708009223941144759344498271878677038559055317396637682877935376868099548668211844952916729307523206095984561918786915953743311511974215487775976679811132891185974032238421905552852816519843874283254221990037349329659664683856247634451413203766513581255305959600445248247274527432430773536729143605314642365940457584640801058343231321728062005930459665714969178623146159934550808377186164697857546956369038083559535385680407221826420550120624441999306212452469704872424945423300332456580670465719382194853677676163027938864078729151311797153032860574164108181387605375413564978377597934169310111685141741424195873163572188768218327883259635983234259712680998524471602901850697555975819550008926038789458492193055878471516483632755365267721006574841602114706009402210179848747144839027572829917897607030777250017951561637631306394857282712820380419474767743679539162995826573938645189840180263697366336897706288309470494085407050408202327069032112448981100719064742882693299258700434070883579919534694257117560543064613167387929299122823306354880950852030257084864254361132415049334061770208674393030359447716361521227908314200591279445778738456735704629544173676294417670863926525618323982449679456276374108344279427468977951272988202715581674181983040884685204393417638322988181863933283498038189698224513491529401823967603400588438453077613166033883716810056840245572803913875599580644286555292195724421162187209024287651496265645677497070522726755659369014583821836475960379030736897675865741966236650841931001494605124433624389761783556525754783096041431538581133224261719286507695791473577647131790337467477042675694964599216830796090825750588854266936252051808317409783608443343495944309953151078579172075574967738444151185094024889280565509601123927827220218271506564378718241337236486461902839257556055660821419995856855809371587412969165197411424976763024759679166952392598174355520050416789128124356016717071415207645439651385581576007703302915420773263670240498784748505552098957490198580096794400306951291018782823820630414849565436192626422444603724129180262240073663247595729601201602442377141556829978968826308541006625292074032028521438277669413272903396730363509599124847692340092620353835931933900486272100971825726651038077227062462028940685767198111728231175323742444673065887828586738091284941480328017413938272160430576976867979990205278711148333755236425931980623716111734745208807750329397088950054256282306966180048677715226194863566180668710149146996163465310477129762093794585240210699144544246506395206883342149688812410203155722114140243806804962055893735506966583151248898830124232332437733360159870474359749457319015848594783236868786317389411878710274122924243709411770610509300375721526533908321736456079057750863741849875026867346822381088210371088987069310945784833940937554063397785614115106969666121798261957737114665101671745683127987411480296696995965287740843847599193939948695814165825966747272680279285884083486127066908380015818222630946752126264101293792261494403585543871062839919737581451053832921357312834639445739337093764866828545823467659193701603385176370569083068566505513246752157341396626489243487957119686066747452970046929138694978155516653497706924696503345602374638778709842503306832620795277278361541694171332513915043797862329635419723565212369183736501440208710699031344343435278348777637358176510861161198351634071182618869786213613299897614906350729460466596363094462371521869758150119709346273567022836076361529883839026281969976087652457545060026295780783681367324254797676266276185613265348201072933806805637266414383192582246034953899096649270416139747122713599602130290475446815685101042695984849133189650218136225603177151809954246152935196177254530679417542489776648074884466619862670712495875771045953357106392256832684995606929399407869589516934349703941288549391147762004524062301569892484672685497219760060037298141626546691531946839775894406331117829328223996994846640978766029022942135954244704171150088638562556412177668227235746950820265765245691445817017537971927683472803376446759914426975804271724339361964810255941012594784045725933025823490216240499259896822061508432635828749883176643158904028065530292380045103325359400989729304860420970349345262933882258953036725054483738349202266164784211188647336794494202000086253988771143389762244287609105113999834123696508258892802170350898213782599411311756840889120784138115279600146061009455056166074508670265231115569632556827007454772439792026144163129216703622242549505249783887948250343381906525554540993020484952851730233557736216531023957241523405521673018129536493233277333241449512870227350504324290951597846343630510995783504392034080572455280876264059703488788106847870025262512978593387039111166852460635032850899089935807449399661924284558080005563423148560088507673775064867238637134689681993433974677714939475458111384974644692070645652021548473075069350859515640811774723585667359536388187313246375759794332353368135469456308671393080442730154546796202419296160034569208714883322352762156380054318169166133137007309176959576554435861345493112124222727734868635265390919136314017191770710457993028358465079234351775231992620913637221067538898444238475984653310021525331318067413631013052960556225133191728170966434718975004807130944115159257237076373884099111353330553467216381191536956640705693573575407182263600900765366378025867454202810730354723732024626864264395400313522819926183489204221668461583355986660117532536232823957668577717822717721277703819848578652841490668892044915898490161607095675522582993695516118990726247952517003874459313779895879726060241654762654622528956076488726856005186502926221311141383959933130776002431879141400695762917237902150014442380540343005783153691466069143223764479368904804506735606957389032004575290844146447333423840417154802592162006595776170825769500678236249362156138719921590877576465944840875561976379814425156592527939403405685029092807756605094307302232366058114217192122361504094801976154962367393667900459275584194684843441844705059646837551508296963042611795096211572936611261047219720805686843872236848430601141645891554630342866023014679374080900146471933742913295197740487265063919880356637369175118536993224514031682887278213618581124692671496892667800359536327511562511509580389410439640623655981271929620248593042507312774475121865970821546061836299069179976900635777818703438393984339546619622859625233804227712361567099673890907748086780524622785864307298628971098787764352280865677781805702916489281178118814647540765125372583785482560060831695897333360546702793809996450614761178795804292994802856584062725782652025549230508408597149205194908902093650904336197770630696397084220709482460755499573173606636373386657124628528881830778545133501708480440517425988512780005883965976097950761150643536662378999451610456815918341280021996947405401175980828107852507953498434065843325517621976207653796901379988120647192650054220533334739031258632066689168854199624170003070067939696978092871593613379342985400545422325375559839150925402981253296585765374443244083372750327319156136893548340626165193532824672950144472995355241618492825441406514830517237695545064296575243095941288048405022933713791808110191505825496805278649646072968577421970735872921122581721707950690164370558711114598264196863493561986420359668821434544046073049247873671668351088476726211919486025154064524676616726405295131593476942167465746057719788697491323815527405008239319947503710663847373026366579222407229801035082676463409567479537458681217825631724374035267469747286571770490173380580836594161135547689409635976277927622589599773212736414741868208587849570076979588669157935741933739090600283316009278329568888970873420787940269272488032426271221464697712669987689651835725178397176713804551226930558043417457805297853971957574798671579229978693974302762098828790635693364626222772743416029457116223976299914742747143542342029516340934895817159697029360852958528227860849056674637345359356921147196986510463986699404670910390421545034709641569341724092288683163567364463420948826324600114995180887379553791742176815321831815645778237569462855352148853054622454072022893989055112313739291424044833102792819892890819405738237773986126618313421280169251146018439532159333933094390533554711510505515752156171983872262101396621445164860523601367881030554006270500884874352833776216091141766091928076302762443716075084905124534724499369439355637433810899205434144296157518815118159295326435208454318352790302224723053761091186009972527140069430127375227960657635706433337316194740983525202402653699490240796357710617364728115144090034070991412577425943899836783261678368252897200872881571980847903821512954744344147422427707639632410799977826420193322036544906200468912864334146814379921355314251247873987967520094782166737134543314064864724733831603752184283270321756614735230438668554780345809014928309122644924362477015732099828239883702390643242634101680497585238714717341243235094761750449862252656592505097275728169842274738301431750642068674962376704823139748884947145970603410234986808350865359376761355550818434429879461781947927277073720404885079575940081117102029449187097656594665254447512660099113941805731599048114348073896898784261913257140641579855570843566689390350312000004656063380697947901097662064607094897361280214582821001439116662054822997175580571968127104895343321283650032578595058342357956066623749297625062971611267226731278391092600550136072154887312120434232097198777665186891627072019699309694186412153119337300213633067691457349397109681905143035245011242974582312246372941527755543589500543335679657035540767086941252468543264823951869957150731666252390005081957032682907043906735170508385289974900144745658507141081715396485665597281507465640722904224477269668956822735211475797018234166630723142862262508661155355781040354247940086890657818061986536073399599322408417654834362136022709363160189552723157470245190069743382507083417806911306205785733863589005408322441984875083789635106064053899519518873386232522848971545756335788930052076999785101623281122641525039314428202020104886473614837905374074595904230732547149268781193430629258662815848071311758105204915582107874047396305306736741000185714066428825548605485564181008907037970895960433820558002196684561066204003609015829567786024553783560102551707601843670507284156507512571779974132158643564160983107997369732200895027857234084372352427429671333922436525297764953269131680364460863551250957598829317615965784679419502778362460917951548293191655257215492690490348403771406776533371660630489649408231483452560018455006452342068553122822757780839864966618070493512516488542804373799167049153119427115961458408366372368308786408202417334945654791777329387391255247525765552137934949505398053894872772785579209510046085266457874513919336179154628938402280562481989292872738123926092972045258694629943434612946469206984480964711617576762706636355273163601548939236794311437082612559298811569948696071152277543284120487587288879918334002416943117046912424380565179057710433090976304246922899960337491070313293976849575438197266681670828746937485718845806540605761374396277830277236011234476225571336708308606522952642452503460963793564155721920834981547565334461969540080375530158842215109823432407243915568257022781350059492729409332764461838625631986556473795647994023487684163889807544584144150647252310828484567923985349192105090265545326737184856463397413455167038501191635193290884582705495579415533263720287888931619203075398018292062262327594890300201730533403120540953907052221663534808694365877009398578053854620971135517279907539065961683479445137521968901219427899172845443346400402080516380302776493983912472159993518870666902918157243681274751762645265269229060697153324114480836185027911074313666335558667126312043159814467157007190843803964819083822806490470836938802593660667678427347247691726645730217171778583625629936548549311472063605517043405352289557311427036545539020201612133151943753925935531857764044672816134843895401821506392407197697659072379436461555228409870671180774791403266168122933036992818798372411010740189570175436419906711576263298664556431988731245934679466320814495681316979438577170669887593591964430924429410380538507414509961740795018632120758082378858755466698012827695481045383403210488681398928897555115348578677019838964772392182182073590053340968664167305591749486848810388454809488253051234211232816087822201524733324376117896562976194877540332996511808665074698380207893310202653014559522077777536388694733382888969234584249264616178044272939363988618285049261486788333079265213221044770810700951481489875124328047153220628741288185886949711368873033050340010457123554413042996821416856475246675748129492787556175998965215260940760680748126708585964558948134252760654189191124494949076021533342105057548137525969275600232953970625263915875728326499533899291202931578564998752284579246229204897999584293463946698636117004404455271559328315094932465229327852149608153314545461363633010812986029624231326843500230197225012382159644596605463022227979794479419479724482825617606070374845630480611995593495286511728773436824262866122300681750960795049625986509289896399244520242402560183298131834040834755874680988570786765824370325294316355145183278715932342435849598830849837935663854386464677423520233708095093789857395556002558316557996713081378118855594682084364702510930663975960534860938218742510020955480191689908933615117322696720963458372362294742471384751557105473332935555563407597713781874999815227065739324314274231031106451579664222579347208412653374399068662987745390760802691697629645431745829005933433190479568626856356481993177596570815097519305565647098300733745338584636926272610495532892798836191327641925989699787221149319078680667886659304374026608779878925467954256777566928250531720082320381555383348273334995159751131106074154798036881790617607688185625358478065687909717182751010960577992099317456774563519876319893065432019486617064738066309868673587955401766358412139875389958392788638235973206982930056628704286509568430298610048254846891461363489342975355035084066637035560851177440266888031229706652050337258519395242646765745232242525804624419578768463230342670868147082367075617707104855316064872744160099515517665218357071652799297803693416818295725388562371743973758263900373739844803324714006311352811571015344665415360000625154087368493104071476119550061954544285634588254858024705585451977801890839538314154226307023256303071622775723823265332461520559702929976108521727306007821152479701416244085329234534447033343971724726465472590324199350536790110441580870302321330654642560187221306089250136746969453541244487357448755079459038480236780956617699534043510369287973422925162062960669101844100734775318865856945173079324194621121298529592813308124374784923630075038988011795009490523841569838869190433623268753898634356225487182986690537655142701112807241583761008282548174031097342007960214896815989808846163299661402027957463624389917796876900701583362220492514109262601501619703285165645045991292288528605091509737062420178831842769170945383009298968106709971581965028355474465389147508450526311432637304468342477153414916879639614624678141848731674956183261574124788523889138443559162654553975835508550639572263905758168331455996721884621747943557581921646652272761975831036422032823541942258102533810345862929824659580872318561451650523754586756305088630595660229502529973021235730067233520559404959006415429203797885073311607317647813203810230421147379849218107269533681595307745365156338286510861866477554085843041393788243167040713060074993828449937677536278443002865236865509941911300502181669357254628033055194721573179583906095592347605882949377035780360688237648715509694042253469053219272918259414475714073487934816964199445692116222909663099574667643744551018576426919399627232985741816569988577349857426382902511902251529273183246012250665721236202481859437047427821365008451530349651804508237709211253427008921920042221492018702283659092040188796814637314974443088960057933536066374643968302324778177307200357317634947948906999930248110262278448373346826883864656690631161247334310877872230040695940753729240471641916808323037423609502211073070893507092445678743645156326514825433925519098697080422942269529968051846095034597625454195522944726372075103162736093773083101504695658482606270078486281005834004718739575663469174500357189974655511573158023611026608879156206683686589902344288185741511710303227159884454489596366996986868855143070608740678616930277082278073054162785901346655100735008859808199936640593489887991070860984928035905767568081069400846436062904924075758028936777575764975878995035820846671871464481585379375881359530986126529926736842776172930786791287829762236977262519885264087624178074350222304366006738510802934437044292417852229842584259322410540564157797271355406160671200307449572083299761617102801880005172688985097823532852930564851119246173369272071041769392536998752594648279325523097641341748733342064626898246836872731070088200886365258020872332193445082510310827156583839127110017574733193464877356771149566128586714649554197397311157118318862493012425522534647742134783931173379985865644998771369129227224749424043400072425034863938680928331022781115528130751255820943027651329412544588793942620853556602184293551406717964579180394664194588012808953421400303770643519160692123653062232875194063276568749714898872179297792117168382522236046821460737891497845410458685970549533892748155607904592549615703495030605657592667069464832802083894722919995722090040470107309449040214806211208122797060033314138220961365162525315169493541524996553711981995727837027758990297998974836166035498554192014134675279921388585588883020126341589283301743382617289031583035199644582289589025657524046440585607477405823473782723874514210372507095837567734756028032909407615259198484135754846118916097684020796641756128743130897322454281852504725637773765921047525912913451661459891858714683740358509688752468212435370472088134701085246070024970365728113961132418929393688006387191394421603247892008191234667530949729861476498516081618616676790966249431558380027982376634296094699809179772783655175625472620130028570512153095293251757663949621071489720024923180482905456289302485066078539855545928008936206849391064638452490763452455345766564461906218194716507401884967141999910116500330769766432250251886476711189809285221978273758185620382176785682579996080851052202340561446817870244827984499496835998626956453723477816787030605516383933791631944858273004037163890128061936239411956948749734222010710670938746096828709046345291499338456673695575904741361789922728231371243179405997868423240846488398917456090558799528995779355999146813762867092081693014076130096127126028354102364827394302496558689533761880604839725545385935920699425384475194814364778287763528746991483195726106995155843169164107604701497381408647427238535353036631731481581640121488359554405383258690911885393933936707499147785694234957535539517182050816686880610744246631610182551460581675850984979120008897123773858027694686005207915703742076275375894594178811894238019677878683153720397642469591969833511462560293971678350578726286553952930613510137016015092411244742101512612264774009426982872975256160432142823385471634158805842336661734046717721373961989405809416165608929042987661917679307483151428032624407542327969288419802128956987292007467064013747847580700598637861937479564586268474108729142859568134796849578327200424752063326552920834481026445249660893597242274246553096803556064377183356994047578487523478194049530918694725468227337331092472718658459585379973507025586021560703444210720590475855150053872120014696892402355473579841511784120588276293327919367350054466242157506810506026886935806713708544065914905689650962624799951470148273592775263991986580823463358708626837176260708974352955302362467704983663383386012276375463265636303518478338232273462491369475431773284321101368347300633245927965304355098830546532482955931032549913439617174402192141066901362802613135491304079798902727139879911958103774109964146618666857385073550228916867141347088017464399709445852038115248443715156879057048532097550129692738557893705334765433666523125978700249825191612937687571941924796391076614509248554385409488484086586189765636095659820286114712080492694031376826271670746258953902705811448679914124519804210667486797059635070354308300992814966589033473143554694391612994098999371433058253798468176133544633522569706357905064898204944413676042048652790623300560647182244238717160939971678399340028271889140988336138932828435673254773254959451813630074647767271644766731773299304597724515805935638605199367409365639184793581050147851661433048044925833544192249404327979568093713570682844027932206745586100932982759367598513697709635470717035171785484137412620471945126064417276955298320234865711341307478455334280456465535834234427914560163386430767601704409598598035945779198801352600496769414114825701407703224543968336896735145420093330107982415057980633572531486595830612488539705891663362500199313238272545068160829499617178749641314590710573662190129952342976545206219258039067219463265027987327645532343420632997181725579120862328947534624097248871564665856596320061205078696783851850642720428027129856773369348985373023512352374959690322058786716615932260891785922756470922775555354966080314368502365364411734640489425730808045746004668136501244794625245771071334113314688134374489209823301918464393843603806282548629525648456465456406245056401774251203475467716634441949608073950696145467716317770152928368203047282090987830540141917493334176916824540054101020995598125467210947948787292458634461924270567265305880148669117114214293980515051016490545592363914236618919477625112856297005921581943352832295833168344118209711839012595978881702457217768782389602789348494265715707927807260026554944430781513413049197356647822372925986015714822711288892444938251193740293710522262196611164551320139840313331434683697486833709413175554178543450608072282819791145320323959461427307851679028064797652085986260442473179141679132683715366323810907311433394560161279213398377704738709152490323685236388283397531959694950662838001827635614698863048105573058950136335006659311747408808305190031282031787782476568827639002511531151429841669837846831053694970279425131933431062662226765256156170021711257047580778130459022383501760841900483442924458977634422351876904639007248413905034725736477654641232242179771722146089746749068116716095437681798968658506137646356758579365722184701423696950774128959360728015161172995071018730007481459600209633968166031864134576786460593267430860765975786688040004786368483848936020299382505343524238240811194436750157802062288858804210794959335365724221077185736659123348505179640846509141348196880821144790832144965457991156957934362018544955874859822777793171467370183787825933836477368884556975853092922384712567041227627367256342949543800846377198494872294708498495327773014164549523126691496464709315842546757476120125330821949464422821806886389135423297565191883897025284935562553341018686932947575971402650016636930544013050506434402055973537830862393031845674657679779272482666643160971359048061355889411429323236898504692872687855545344969086130587059584054752957620532416517375428026833263351324819117320910278192454094265129028120645257261893523675972727150798235493652999716120682826623837730962953984570584147640133437042539222129675522726374106423840892237425495597336777281782406655629017113469597344358904132736079448939743340794316753944150653649904204866628813832114391165698948654782222924535456939304283756571721906841732995783553043777171490085504922205518300126701626336298669002877934707186167800965490982997190361151524696021891710701282192448563150268716683106868487690032813019908490079477548715553235987329797193124506670437499345566331588615444219956652284672791388748867848472927783924302101273599114310543446327627090015107664004343756812393449006920078517728455143528384745045264102855945954917799806850387801509523376292201521194589422359234417676493589410288744510928027352731055631334120075014062944897952042304547247656210989595495429207424404540301983311491727855987017566599698291760540821958786003748552615991755017530211360673723737624049138745726620404350789745191430292145267617500330063145649840065856735344154257971531538968089803780960360949932924596849060625600019598775144236148849635537744161665325298919829774956102391701365027325199225840099274586414429346368155953102934341901046568709392818001824575068297676663404750080653848041779329049433802494998290847297094945949992633471002705007219598040348140325442828895077077926581310343662574164500127178641094616278458991078239598626474242029372896059284169152201465447386482165930820601228096158447212040461818726033099950118833143758334746905674708309605844881362225542367740335438030464255857097668369670664599864686802911393460591971330053414582106454029457763550328486004836147593115850846274878271061779870758494360315580619057148906165512010670323637179024732293651777347658492367591151030474624792414266127613063400940578632660069351769143450582248316583277382651661784913668388143967281421448751072839501932832896355871579045849570146060119915404841182184830281269549898693384226295208794513641969683118365195674445928788632708111812161133949111191501557554856712430652916190195645866303010769342220317395648248209198901588658473835311662511703711006646989685750690343298880570690435114227087542325245312747113519430149215222869567835980045455826551767718383349693153910168508935974980852909182703053701671737301568275549722832823085022958387535836131604879053882125473583005059176250582512813291840106740347482510887862731149359024515735782143921802344350348551437212717942033805377543824711816661711512802853598183332333311414379366343573222856868387765934993975171319194134078569105739441085915108095774207342443172073863759767361222305346733242520889473862587269269410492486221692904326687916988224588034195442031117733016630255987514724789405816927905659731779279294719898192684757722439491938750826512797222747944864041561516613228131464266809063210029787643290801623071927026431822643270419619703993854432078556125475608225850587455407684125988596539574202058658301442060383734998779269240009676435553652091381410982879693176205477377555907604191505024913349476192972966275735890546903965362755421385102913839987877688687434059648938136144032170219644807578134985165087934743602454167152705934052630069235931665973097545328896839205251244782447546136007687774771083194985629118085557649153985448536751373507907418845205284301264533612270631261093466619629226111722244444360512066112375062592133795316016493233877881081362007565121734981851847221381124100024480963697192186609352756709536651459418921617284938043542082918570735153120278575985404455755679031167435592043223391545067215798047649491375705070678888141274188035152365707963514441514465363982801513979958558285902710754816372952879684481948966865184408742749631356618347747007770308581252549677037750577285747313585138665319681908805004865813937936237382716905643329536901287649317450741136116258582311001636045668119718389406990407452964515569803191693001966578557001654101780078240239928443130402376807992807285430615950048272401442541468447450383057304459299753121034042283720455244320232525893747489564760760252234373651996745581133754651081310410109658445590441837150166391355703378547240993584356735676665008535733701526752647582629046386458899782142457212074586620818795299322074869137199210101886142739336917046685718378395122567354027137350400665144100230192901299478556746518276067145378687196006340290898696884041445723787167837952173489784549972906745106426194377648615871992474976922833917552379957441790591029676179745174320663736697891299067739421244126548388619743595767786894809653992291046825223651906305600486966446140663651268108718515706329443588433223071072449959297154772726456775195477504310737112519362962631707585159338294121785351999482764570445120730619657777492694330782570398797526191526046125691629518669779979492461909331934839790733555384725049243245295354014096476056081799655685563224290636649069836438675807997071742178151468495261197417269955396619337127032532464225502521728860260707720767855682065045951472461746167384505119071607849009356649516877003052489824680408110663341574661812943816690174452800723297019984460304113905219871472847675720759257243756563378441099319666588597870220634851217715630146442864231534151356680848045237490776508603459543027429777958358272722132635503234867611612964380948769423261882348352315910869846691192557210468704767422272387903858322631613322322408529249372350967322085651767379447459635159205290091631218627105424499283561447909190887172839864387950616973935954070859065241998298983343579778595913306113690965553024633791706539487401822152398942882866622320948753523025656885800136834750557706136594397123049142858363532362627552495378711991288693471191468351061861111005355991768239838795534095247883676193899758280636454669635618168174709242716641845516449545163899736758526680072909511031552168303234347343127599709394702998728112778341170125720425788338704453401199177054718223899946048526605849826899930568666480442357553091454903300116287903813776243317735839619002409190796852224613063956071827886167467399220094375637819902621673603639672446550099221324947688292822355936975799971483406810364307990196282998724352621316407462501477165738205962714908169559428815400705225644617786374145213127196132698434336600246008955652342864825127194662988513759794144283734462707294746932737960824788214111627106911747536499049797946583394106148548505538221885060976791742399818440273163115954100139882488237970692196529694439934567887020733532585849225243758027096586108346394484276938113356999172004862206496665224073868818246831840148939169777553202710510342378337925959022537555556146861322312204140220738272640280828640978165017600886190316119022208357968377388628237199635701948292826911445607710241727136718512335672064099524239755472858949723285232194641904790169687959681214454074976598404623337917207538373891747092345663421799849359524861816930398127568812346212837426385182154154279810056792227174743493073534621569791833125037964061310881155477230490364865989558954040630742339722099373679988758006107573483640943759953892601731799129166125703852868205520515897705958690426529222103041555458852886400418095338679537944569908232407518706006415071819814295676067865158571321835119894045519913079112852683025758025645866540047095926545413234946171949516410683510478372156027576551294685088769410194116883145110983542974474952186802477580060682318129245524089428854225143760986197002541121053268227921372338721111883893874970799999761744667172638110299080811275829371414114884133513715886089352121210690581598805421025461250288129506942616348548468362644072485481813477238123662128506699876762075293607834302520428793709177267240812068858256951035256084739447792051180514979540736056589419345512279883039209206058535638733321504890324219514471264712978798273870260842651745551661549733049085556939395820706331050878894701007396350418567818942945938004854334234975689889985190162641635596350782632913390349644054331863009307248373245249320202022714794310798959039770581051313568211455246843570180450420695974710300786915163479763239295205685108876340603025463553045391968947876198030935101400187982161309052552795202425952858058007449608147984215403884882335659462658125689456493522626555309281347967493052093501529126311640460438937155366560989680069357003737307558280195448571171664272185359058905155176000538400338512930903362020925353243977077067087643308379463978561276231929069282436565779752509139420100904467536234390556189243625428297554812064676632429208240170174685382135326301245401199662197225178987065232212787502707884768780320166107233303706140323116925779368245188394423518454798276566468377292201692741054924050779784439958494352452310029662573810026672409303702925758474910364626951317861896129049387187682027851827906132189069720419202344924390518564310608547655199590888021820421997736924211503040091985736217993223666605060082345047758687195957495677612991231276906336081530973771898567982051215740790083146292385658508571910348000179167483981410366369119714412234560524197766798308970777690459661893861044740393306951872823847590219374817173068976736770706980216504428491232475223240145865399200764456777284148199519065602438448718819617875614511508313275012819571215657513849448711375173421074019662108048775654739433102720845584910324051593955466398246550572695458031826146869063098591835417408935516904941515260323706083978992630061837260752618436788539513441516054885801801983911277465855726150307599850488210726127826635715357046652857908288391437222129232941767835962787152470741605922237585601244270938682378398581920818414465537549794984255981759166842618331470533046419912560872658702112587784403695821583888622744497615059172507627334084615558543040682381540813751879819698556130413595353899447805100679400449236212832921506522146964308006587661737682838810080308116555226624204557877671728678313821366007022437117320671615065520561030952732632801449399505682759870327662642267697891719147351815899247998850853143467341494696642495162905346069342649637741478474723290254730217566438243172278734298688814658487268289361978110145384691235282984575333849314412837895900368058573606229312693560800932243662636855227249302351604211877403367966614191783781920835461642339305536721399213544219947124666931240038393527131403897739960461523160609169525748187272969298160605123640414244975729562040583117440475089798744221918935973887419261150828334898848922156637009102883151354415199090703280805083824058538660378936958721812174606498306054073995586410472227224236729097800995779627551133663536398588370885145715385274709578430390829846798210292905206670814565325647372099043858802125094781607497344423745400969792566586683082939379208073052383491194226844659185671572195506170435289424743364581423356871020736524100772338614781252233081391075458930914330322304698194420576419237699826033234457188802522750653684839442459281870292503321853420755697334071614688812234610548343946642506305684945444346937876711017970289592605640884000173672483103830151095452033267055899020920285370004022735587956222573634832466188052142031373931182137097721244982414016340877888960897929526758411741187492837512112827632158128011580039650195558978308133687079347723582831650022159001554682039996494762311534664341096612937719011018553440213541504376274172381163018949523828989253486616232135279112829346959354990749227723580559575527595316290387372924563059306467524965159299379490773654835366733841385799330081067737479197218076630563223022391625515210054292426781037581458658716196339862131129719728885118967859936632445050718449579130483727659046530975839361446242960670430757147931936674234985522963481063659908974733052127718019178930806197650279208942920816017388054862887674144951275760055921573763745610700253996700202083608217767629505562554670036815260956370234458705063637156481937462155506498887330663464877068289908154760013776587137844647109400286512653376244553512810010307631033965498606658630749706247096002630941954275342415878440964771027462632513871774547148341154184630021645092451064898697890548131476368010047245042255527146654649124536292562118498043991013433035423226062901815044354696250328487613101604520122203385096838946466784443448837034648719985092276473875027203086282438614191191951062472433573231474309840049939763970312132775308824435218578521082044414985866310462364311931717918242272775208698929955877185748706727377787402712529630082755454119971581842869558293880679427152868096111959667434382860226724196539321195263330882854692387384056776297607203262280354953696921960239145831258159848223408425241064748667449847894402586223432418637138612668617798907332258981002753914048369510937017022409182848012149463100280418569273964232298663788266737845433226032224407665830447360849983628199312534638666054523965575353514054303071711917427964721772394203452748025078341330714086636739748740553927148858527854652881607394829602617637693696794700593999510188671250851796115461874029413115102866586398391551351985891547489380427156368229699228842751751156633743792994694885333103031565821094878198441853803135879700153611860217907240325238282707555039778408329229288845132440208742948650345569369154377484426451545855624466327429309486864094825477178672698285402155006899343500144521614730027499846104660405469081669577194460332297834738220600961400586509913875330457051955377462075588824047093863374089180922130567167376412499320951272166701211925996457552278442805842590191253012002394433951193926741822686478262700303082528204544336375055925541473175508799306460134676687361682279137785262378958107967830708880173409832802592410675817265682441608529611691260090351666431778274751690834495104792475389167121004619348058313263909473660782795723873121643550995233738774905036583316877067032843691862487105535174383416241188198035737652033157937646838156979867952942024269382017087617112034956396600392842543328971601928547834875958681605258027265557239268203686258989120776018461526296747986199509284690315946775334711712555237439044634001938718964712389085698338475144477192038724192307448706963912799406657708370334691111253189775629556199357298324926424572539436889581245239515684691185202459850847234348462610424315913179438227171406754484523575330901837069823888587916837517198237039424552132346469639401349510558186747897362160299408103791473880234308191720876751619292971703486781453330531015519315014331900687572264524558668356152772795657119889472508693901963256251383547492631278326772670674787966626632413526612933093085875657565935819814699347310714675401776209498963760878517230932997646208711525899384767321683834260680407925866060547209445907196480715526304781605587460936645572793833769051529401189664806905049813851643046439190264251731186222932314796907195780257855052564502969646612409838424835332615965207182865538245303999902641638181942292821677598244800383138481719171616529793894092698904544949621149062828522434240938420621283554001147371541827775546813237359975771752861583924870247511362178729109882401894036201424967909144675152499203366250552562759223276679005994864935978795607848808065225906781475393303121025000411620379094218436613100346434284267187777648963445308612630699552944541044300980066361183147607675271582018375337011489848382473595567614486179198146079976583168442413273758977930997826616074087291482732156027720176940877436594362550896003547871691500102412016493010443966061547254854311854130210814406793607209545062655459500321779161521467092856661184723210031007877525662805226241113156686091051825136327167389866734542856211079301656946121382483482812044346451440606148370221453066807172106555019704061049356569582412777996092734623652132507630653920760154037341985115594581729297618661340201908698368971198448411599267019449895567433464287437042566274103930002065580293626553402644909004173805172827635780640250459032649173257052977880971325249233668363348317642872903709097383247255366777824351337939895015632823299305316482945091141500314871856458553060683440397460080522938189368575305562513680198495175670065229937314436789409095960387577728705623688071317602510164398857603046261725578666184716894648727368193720593401757703793127854067268057440732866940136211250784459889925204440606991896618326217990933918018989212285890489359703201595121640654681157146198452566978986438557355372984771022037949974855276472274069866763729637357126117129887957002157779917284830846045398873520508890387538591211725719741552721113287747055295278321077925493416867601384459167857393777295436340497498556132598435447245904436791670174608689936870055872888293238532749000189441484974616646372514934938904628912059797861397057474596364876750192588619497462948770714453829242363112273725049995268342495891632810868269844113308132058987517001278656963592687957565156827167096359153254088071412523954715998886834763935242961462854747271552059128346001713202644387218859996799254851762719927012888486007305888890967366936127552354866395412879094664131268822554068559817275808737681928237340534186384570244640774056663671141073047769468216393288788413727752357774935893980318804499299868182338394083794950077220748689733548707786215545618578430507699054161284492556309237406216889103399750800004301532084792230043828902085848056279561737230464382149277561652100732733064258714589599908449210783537520595450937509209508469638354252435903896325434655100903817451723912766201121145177590044234682530901167931339935941855812715714522186335798478186495795560509759980664873352590800300762699738368945688835761319728220149880482544770368276195956447226237921853862253399208733098261318375293125274896104370914155966402325465718709380384946883715883155056433255720701665549987181824892977491001602352562709458545788061375738494663716549460607104788928815145436054367024770264553110108858566132903302120686053109865398600024950263652761271115279586637156843225879462828944172402461388943348057282265029914027052464391260050572802223059936723685990948073343418605484698755830675631031066689002772038530289957277932210211979197774644856497587983783679696288752213276937154400017521859871040143994427192162659562387303862235818454511756881788539979004143127558285870015862943029511679585930378846325456726265525953335072765395295388611538959660822708109219933943923046740307747416532595808223898747838146347873780096499358642757128632074019036782550933510737717490610281499887186943394277060678061033306440688779828376618615083083246889437556495115889512218059265363523216136106277131961527738373410752220008557860843446255903250800164119077572585055120686449926508535267960845261829493289769633537300237199055439479374147813422661596951939261444137363431868002438517562917005657003218809465892529770435558388067341996277062005217591565079419679367511252635167267982464604836740731810161611483794308946450153524862697931854886960498802534427367355248105362315053551652342329667751442615307469717618196437274069260336150130005454890148327788795874273088576247800549065562737133995920006618425855736297316711899864303260493243571346625908947625069617882409269145227811656362836349653265107441471704656482933325089205605532076973413926295085668505628470907411036754202945753905863213855112741416392959343078045429510891047783964260286038185857983597069042321631784447838701247262859435852129839868543101499020296330704372280344650051472180785933477980342060390033939293027332404431870618829494136939509523480658749169483265173386199721730314252301999117357184828223029302936631392529340990890185149810853593801550956194985027187997698363546812681059201066645370354330458701121108776118471322011037873557994311832830569683062353723693953850965391920308406991951474213243853462483822488418623759018090361148106550293891302619547522539517645746107531163247357296970277624687608114792138691928303922481283765029535748105447367858926873969994539815324980352287676582741864937071344785590974756271253535390102550460981797100434410681727804865310319654331236600832766804741542490768735038381519681017668344551602431894890774406530666268008505370470264865808662252811104365236954787895320024315649947455179693593176344307016163485942527376143236438183046962410935049451824709552345731384467279114095436510800378191263596006931615982737665935235616348476444779402922579335186718651194109872744206794465780461080899846072875323512574763753285001773514491227568095130050737067852702522500838787253334026453524241553689682063023577809692789031913614415675353891853289198025696625003215960737406939225204793362126625045491625475876503981604463270712887320785893324386229534203459690078016367075078702604847000862608296477194477166321936616397051556032708792604059179223269022918794939047031465013920954428414646454425051413684873782708048260194086626816540374417141286093304378741701970625400410279450403974892608300207076461264749310521499248644494424010275039555942921381872648169862913853544252134331171598087152564238404595607263658310481033060499104531852455633983764275318771652879113404380003319961502951449923402301091232573315985027691655289136437688635969993377340982991945438962603596904156309046678452270383960042933317446398348286117974632850986683585213160143895400086086824053895230491273584828196913316487651514509760317572923732485559430818027397122796965628322499087189144865991599936993629609108089299924902204172587255279321927818370688601535557721229977094430270818627571461368345218453506300114199175921077288010977264560397537038291439847771850616210884146738124172835848393202196791406830976400247317578498468744155195980753032799700824865396909238839214829089635795590413704271425988822998156375586921460993373843374680070669076791427995007049918186017491435260329688226013370728274516923402682139104818167787003623285026790863624509968373197993386886496405988623501700134604333887707039012787231861307586876651049578876417564148426505709834630550274879650041152873986231586793654806335432883829950172426875508234204735667297371223230092141565665855429108993628628189504938973309404707352877925336924377376540591753097889299376078627401371426225820034401175388601600369984665864015128627368899254021776060574988192059750792650537493417106426775942945491513183753280357011346573103672899870281512672567808057805965000904618905758647701195938094216580246258933587880386929144027873662081545591427903306065575541331210363012107552178629546977774957360731920919746209587110473885585328691538288756578537054017920884216372869244362313890543009626765316948831585808112179902181534515183134764345407082489688205400702925237467013005221132043357029099182802414538717955197245306961960503357327617440926483970339353638405385418590513056776943727589339677923525443846551574917416168374169778761303949525772742994501150595272792006708306394547434666378471835656054220008899115482163823197058367673152343714795928221129629547329140551064319980603718554516152295480591833758826861752119163748205976965727073784748026030929729463814602824309735476481984501027961039423974822593138349514545637658072725853884922045960539137883568937927272789689654452822634308415182746316135396662451762522175691243468029205399386604980227032110228040833775757817651393135268828536677231566774864063029100440571572325476119907878361790007368021222487676699244005604944217969090549173728486263034555028861498397670591924780148848493404977639548280937742934162719231215231724671401480901319378432421925142300471718848034353571231017086699518868020762259328966297145670459066685365144968805201162316901278350897678448840181776804715377141717115049840584514386624029358957868114604927528763870494438600764317028062810146363471266545934558594174960660476119676882881916877962082218465737886544497672157221931535958684627587562186152091342935468281655981911424043769868722198574358313699605697553041173845460629998109969938830236960323223459007129832122324131209853646086937920016860034649137387198598431774578576992180704522762994535198004679230676930172611300599664240962840363171655392724705043448087166334925993848057012642949627296376461096016274802660355447248604009709474677973030596010428499190448371411812463130296100617391181392377398322399729772414751071566343517968569304933305965830843176183165856436623765186300022233987108693937162010904213158431827664579061066449506455795762253432395301329190492557223798869518569718138979113214101235167379212819001206067426734492335093884395687465197778541148765128192781155756211110105326201999346024200547042884787736875463869895784873388922081377949088340143612304345664429809326160262294870017677820208017316856121782432269791711142981769803629644366573724245595145705696403615026876981489833984348243563325056088264580502486755642772959184608931800429400115745948910511138795911379115782499512545789783913328386765578416358873920697270676391393898381616685350031424908385331653220739535896209611355238003131373725215177924644344611799378514613453320574114175133135784037984673631229879557318699527539950040058870208501044181852736758157399425983514555912542677395038979692131508542852303070838321201206960199909337224433641666356169381303909358783206293944875111884124967564720528596556717224488820425351206977333325620703479609252217635251336949500187864910736613610684232826629677297760188965267495122883672045567749676582649787183582238318807172591742687353137349969381920314224343628723215179051721667587867796626592612653215668559702111817685036938779886583660228555268782872757191704631559590862258643864817900717994783345434189955923171477863689100394102656476634762540371241978111102140264197931832894711679688323726802400782576471151920840466543682296202110443963877255411587533376718099089378332016402866053266961756231936562353433084854743941242340194911914996205793444990022280665780779446580476848976217799832029021965519392830136183703648857162271734686583020135935724725616988785211966255956506801959838773914048679481329948402322087892811088642095231658215849164775739865852250958021502286565711196948415012996629907939507356075337346903372112956152831677010412435536364477785668448202564435186269046568130079467606594517036797190932494016345756366229590122550839102207455194620749196560765673831820304055084436051236175878139076920634204823608208027999843675897306189186455059199849215007989749092317458318383771675005954983253586985101759803642217872326260506395055405055795957828637518258282859266629914194314933429015261784829176237553553863122580880746202913133305229687772762920668437256354589140811289983893804253193549806032743300073730477520444043509014620560655152196597517961799434584761530789702989257322390692200246551305668041733625753126365333551155395597656549265734861095107436479861550113841491294928496706175448712673306795274834036936645307059872685470556088418219957165958929090606627323477799342540382863917889308072640602521599149393862622146937104191712773489740918372984870162249781602709096400207861090684100679242008215731285997800421006029635950623268580049233255080212075631523632398739841991869972151822018303677186240459082599918917397098224990998165121217704589582659564012800059390479581449787396034898128458730188728951738893417723185645618005156745555934949160228630825414775857233062678451575697361841173101470041242380902813666541133391975181342179785611623012838822453132779778989161484614391475081103910869275116876280602965979093167510624027300119317137699196365880321812518278960640244166732424425635448576342362240789620729145273533434973270990122254155391299747002600111053977595281232151004399964827230590259716640774002417360566602488906017760783336847249699676812052234273925791431669770431784195199578535160991659141023141128636498508444803888412424005497875723291683595042842508462750917949529069070523438497100137904184902165642351681471893014165442323903157372148177910379209021047803592026703988338358703834658943964566720619105608280589223340240015307426646856721334824869441873633552961894169064312019308138600080346266909054911946345301959392646058377814369663113414696365371784934239663751285899063356249963348334568547469044237975923141258819453603971615998605920424026497272841167456184345689958466603748259812718293981022613371337296514973301334162812282302241606847764283608644842378113627540879827789529078831364361043619742076855509529816451775379511897286974336425793623944271888592709209747759000280903372315233271143437117602951061601132868058599837958547529813100619596827314443082105167861267747367527989693153247568371227678468524681181293523497779341988712049150709162655060951891245608631151594485541588302062932892011925950235573596688965944757479017794966152159135132884611474696087181751677290892256467622850175453540298775967666931595061518300123703783173362072860823185213436268409793173059770622310201505162611788719902125341932490903213478731295917172319926845746892787292475801590343706616442516985760632530321691298063115850915672997533326506070918972403299416622669210396793497585919930339186879941084011303435085471335175433897318691744624159678289325802652876469619449324263952013955692783031745906699120456088479258350080171516937280313541946894543843844950617862040776478995827398680206445534459252742418398580357955521516220451491300193775552117862234343088676507831875166172818297920218917130237383233810322831141446131540292057865170149865108598150967427433638566716280086245722551742721992674514626344587138355797657511936824739860831852173740996102949275929652804183948260160043340370658631302176876709394566640978272894656246920529381590176988896907915965145525513385444908162253407412375448850017322152234467711549012494041964579001966861233860794969463894136501586960071748346105645841880020029021322207263873243290038108197679935144911595566385518463837839035201521549202022427450647878161037505774473712471761732811501112491906379809971856562958906511530941583294379201869348033280903506127005893219612342245373709039557010630122434999069782579888654547352488581974050743045652505891513905015338807388486752897737467335879207700503991678280751265215456905622132532920510015020089098153129597093230577970379542185209211036316258433963778696140060817492747233144129799777170854443691025627087312435543986113609281597784304032576966165528641252662419881491871788524577554125477022644496541124995450841262887004554757309217134077176902364778964608160608640300884358120818780432052499514129769344743495345752952572440904342673996498241759665783952439826391030470893636787016925916890502653386469555480348181288093280317046005500533603261016480161033266562007315044445411153030482927939574131309726479623424139906918448069224565885011672083466089285598464271120546065256145043451304914985682446360720570535564498455493441613722407415430583079649498334038362624241730472777460331058134714759839289341573753456824663595552626104195630750744885268223283832309911257609006402394343294503220790157542071077938885012086940076956001384506350812292312425867837644371285824395335436391200058139816318174928487261685168111899579375825534576304517488834109023411155597972190391890844631621158143134039923323966148718957896045831375721560035091314521119212769501119666436798974620712811290239486021639569260130280726895800013748003119822347024288224936871761557894756139179464329493646325877514607430008516090135676270926825714966133718764876395318258304576095960652092791651741577577543198379654686598739674360784583436117533162429364751655893595952544629165576976491225921678481601320759741885930010148704577942359535828663913842701227029426943054763757029144188666903748837358670720158806476628763090496233889081559904725708732597841974855665406040160041509499661857624191361792533873708467925997248935035038291609533330649590214773676091121327405190611772253165510991541608401928892245048181159858796404331034429144732836126171515209580528175484050142721335048764460875913813338483464548371740381958335550526080066922479666813803457834863919427025604053971658670044316322343919426231347234678933822415342919619260687166660425685875168771105717985250800345032128695662833572116700280171052779263993081676109149800617075277010092730443293442189927681513668225465771231219829983580045366758923226060973816103617075656869685488764162267248124903596907298118573236500283374773302298212259059184856981373914672022102288741956705164091376767599405773457025859017229326523789327502156943147499850715586427229082686317550726111375179671163546843799043199663577528754792343259967313682964756004454928819577211843579181900962881533743092776885774389371834384901886241275752428955293055927488172399734893459517387361579398372505592405022545450323788797421387585190357732627229826530107091133735657330564779464383021972271088662715935404582053685535248384657249372103948955702563911893471709593091561533933265001361907363764838384520486534565670849981925308783483539192478392015155075269113051284515414626643998164030563805178818902514436663506115188616284233168839071066365172426659832475509414551783756283057393378678099785146145345723118260549436306501824446637764516181796453386062836007039594828076394767489337587007968934894951170371234757205827895505264916252239747208450709504308859585581426184388333126207705020079257588660390249882147096724781062820245635791343089526369191466478545669460592364472526172325198314540533584417394089147907301468071704486164073378244127707395271557419743150096092991080906781518467016770093719003363174944424766569250037812173410930647620943196966866761307982705644470178198389395058834117200804472473212861272320053632945997683727844351061586635095468365504338787802514903850827242008553953487537240672310735424961690789103857529506572298154497561390653504539509418247601784574914928515859947807690588898025330876386612004425346376250958773987500353798250474536916233454926050095098437041466628269195220528618061995315901400072666039772356693820980692467761068332933085153382257988412534237358817982497107790943132746856992556466760390144073372606553689362021606374502689222903247796428744047925793461554805707387895893992474390668787019303977383081317861479070376309648937957275186103505968319440959126304652548347842359534787414457115970769970830116170331344633449524821911523652792344856866581374808907714537483844961186343199716579475090221214560941935112572557550565608897781957670211909104602201614476555996075712266976623763946347451700544636722549281946822554683454235257791492958713667894790436121243972676289946108602914073980087095591512405961997734134076448983120431287589883689691672253859287940923983348988513676405268709430681251352700321726952712599920478278933593456252216155834572802856785677258085018330307738517288942156550187313088896560631113891192336503433272884232562850490517783223066219425015597771008670559256828198232422650390600435671776002369119692456268660505195982707831124576207384933938583216496052431187847025815648722451269729317813731108502490772020530649284026212397660786221936569797428940343720842230600993853187459632552506843815619660714675289760256188221246657300615374586763802367477305146303614896000701061810947975644978008335566904692742038679920627206928523268876302725215083277126289677926209664032720182454857540808723138010843404915339617733288552485290103767857470570443332770912620005802507415084943936330178094624719106495081381591884514590811673650922835866978099145556447576101633480920219287112581776545108577472738803852960339020659266797628566121457840267236253759035877021074173824085983572485807502959723943564731143537960491802864712649373253209486672478600996538862473067114436732915838411717079276497952480987592065487846112171372345436842880401884199803745874259118570680892894016250181527423148003583254734856217836662862333512153439951869599283398973858780923244077510022700507546408176349340135383066768787080962987667740524929220395362656289005843187317559540464446125168853002406556189720850260973753010422970786394121504317009539364962991031310704637123032223391911534067962258487426229026110877095958931106144774969113222513295829994572711693910621652352541280542393144033502204507550772591598500123816951321946722282585709280571526890244912921788402451324608467509724286585000979897574499753403936267117445797846460897799507789619661017115805773786443566078102053875215163950168221201509722967656039944673927722518907241430263136155000302569925434167245040549983079074878120055384961841235256316951736675940512435904278145401474920550854134285519168088827105310475915730844209375789002748448517233729322173403436768375999216558549270993659375745486723742232788794467070952077668990173240424199523529496631629185069582312625666982889076593381974565441915930956128819551558194071994762599362649373358308163967248520904650077803462875871031415974225468211339100784280939276488927521682703535700843557982542992641284796145271830608260182061891393840329832307326419533835625349291628341614120151852503625462253696704088529585419748329508622296133125593812764016119887259491694933083271217422619265100322354252581852479861791735589623566279578227066437914524919037764699676863283801963258685262926963953381790783802021150979033043032631956956163740595951565474727639571057799105333079133949879696687206678465294257462320154594682141915854959165991597499260905411841979366462998666241882089829200906915618288980971111568058379200313482135889017186021029097318774737580132780187188577996921298403741400700319950862936398595529449234814483774428731671141937093425053790828271955912245757365342840043057573055220230103840769246566386746428401476205513751494042623156913281694662631225043056658442468715244084112513712399295208662158605478349862634319566779353729251966751893610401358025300850778307479298237798456057139704762165433258210994152961594683802817805448691993267288910823451380749216702441469299214319589749470923410677507168408331963032089900250445684570879096820908258876782060459961138812118935410242408857265060815024782130813490533423930577120878493191981206767511169895652830877155948871453559511008315361149106419625328947401569034016708470286404346756087224981535470098278002785973374966798615956929521442376945510851044029611467124347745924744282111826523961597184286637657432576659256707246204294494819474136792389700428037012449500967443500051336334646076950067756631109116865133546137841991031202373597058525484280819755709319659656870045866121425549467446650571019175116755541352737256893755307108581093581684917531392763455545882928514034955298559242025447393292608415906453167317319041946970004242585433854504191857788095619119553979409735651099778063941537770661860990869235977055760639606737204676462492397610839865613692685891993661189421724991709919475795976968509846320892181599873643153120773928195913598763914081919740900288419892701566377495143778645612575742996238576837899251914993808076950192872250304761567766313927171311577414767073933687240284917647161565039080923506892010164077659515240672386165995344739119798474266351002770902353270351240230222545824663392488338903734592320744595602212699252440068974972282375595648522907354480646037017457309957399354122676465245117469634878759759655865544326282392219314417200668224562343900118643279887525041292434011555622316374414359485361182861148678444127254192838386548112427320010073067310535425133264545513981000919395813619924679442660287139247252238565154114830914669270313199722394993197323533273748629362258087057411301608229737570478551682307777499816925554567975348186893296719090403241780061023075727834700397344234020864042382467182480276296331072848248742229800780720493362948622351741250648445768409336850108027619198562243595347261154901211027264701994646768505808143296136521655892498378330515435791372078189654604031729155560903416193570861224694120743657937292779232271846630212872996166149679947834137948770188911905028342190166393780882005929726008941513077676595888626336228136521732929557019298335300006565372100000456330399671860211298037140516894579805770101550861572522468614824720331323620505010150480901958111971830510276231326869419896530479339064047258328905904363384496692599369797813609737449662533718952904204908290195244446907599442715097639793497317390314418185532328802783291709670300801687421990703966567745400177286942353760700359931652307345343340998785151252616750937272159177338523972595191139238366450515761171641475858131386512377662091476444578701820075386801443894817536177659600382312396085981566435558314272257910145763191322203868964827457193157319976487613266433888216874111271359130004440530003295163685884860975910907284356086190242631354066753599009850973206754676818595992438400170015376252553761391973425494906494648494960720445087860140113847462498251381226677698400090737341369911346882803966158508835992079130712749045671417362064109377170390766089908648424534516655527087859336304601866507069332477031911969486964102931679242983563952002456575070558218271778640064301801706097664825538859969413583298439725103347233719863798217697191584189549953545392638706530477058208459782943067192194101199279774092329761519106031992738367304640262374524862088625475006625377019784684598357933485101089277101542063372769221744199614899930783933309389853160027179989588805850993277142529889352916967500243021973408926607764541958966811060486117636114545446796845693933126258409580293298484575254079800615684027558588152705781122405683646717229589376239087953965669279595652433745462253829965601227161552681417600904124046030603790846651107590020161228815349410195078490321417223530252067892714357935173059197527653962945610552788964139354244681659169683841066392357853101540613341968551963450423393848104762458473786909862995556300680325213572174986542074421108985664753140741469858915041769826371533345646024213763240397014496752524957834513473418702915645375449080217654494283281606372505892886705803047340489398336640146050585358559011201480430901613329603434907672397700205998250574579523237205290971570964204072803915867635459265184553614997006731615732188548023983152549940890917676359572293363318995770703110697767915870254241385459796319290500276968919356911150240168733642194462778388293411261444559524156929245312366068585763569520629615073457515650626756818561420157228448310759264420656733104177364459718480340501096251830392427987380356496980312825799383874177476781477367934316533184278513669876307771470288621771194854039943957815703955340678527306967560451196227355195364200681351490981333885794081289099972737094186371988523677161353375435634525010213355920705807853286806339703959195493276259736239818307780430755003433492608724115877255838546136503807806951766750565760298927477415688969861783990067647056001892794690845869347741371050080413113936496947196682858402024997502906479306519876318520626914287312712607441167011870028759334590185595501302250869020419450811667960414567017738257736645718156980228021958480722852191686487217448721193701834234873939420422469718327461828853628320826900547770683097048353036460728601269871118514291173354158876153435059456617275183860843725117761301753996530837667462712866974545769502935905041629569686348688727745311819020690734566359981055384225129781907067585246681842731851065783468980900288678345797614965925602764408453914738774772093075805246343488589241066424554081100849362182426441446478870667622388932238615242764082265566476141171739825036097931010460197517138293112931601878536020608733543196414373497543143899721747559988776155201078181221819566256903162768648264859977263258144901774113290753684343453669881409184789733954523529956694704018298346815946192496975941038254389337135702933237791263695637422126093295422763460651757532102144921208026637014761774437856351461103853062138319689527783185535035845142974668818458433125668937272043161138662812626322279604629377802125783722762795196648761192806637786675546755782641676616919199205502107149381053821684285072590498675595273881976527592363491707671253201745372064529069379398847373280346156031028378402962339529954835617334246855293672310240847984286783222754092206557409086768778876402804144647188790238303036197345108008520809938753313815494202717547678007426147466075502996988064919137136058711639376563525711685458680660637030129550386083834216178665261684256191999277357287464378763275683113486133302285200346771296446553505716689077177716038899993739046000071960070900085631242385423883046752442504639409257002480381093324918732633168405786396926155981073552726667542443761052746056935739874608376894306431059973696877944292092385743225754301142048188805944329055213804427585514730034640100710176368348878257757512756263950324684237210610365973229220374541297682406928700811615823449803130818345130274691823341519083542374758422757948513284922869117020879759145953803075042606997343817233019797835246519014478469004240868745206812642390589281806505705616402624077319778328183494281200059748841131783469860557686274963187450904782683208309253190886603934387642457318158342666570253704933011835988225701688808782611913265753891620074352443277443502762973708558420337304947478919629059588805101270575406487481230183565048793926084892430364192307531058733664301433337636431159876123844334259394002312887646324392397830758503400312517355693729396526119276689927841266829353535299558606818128968381736469211273908677301228731538143561068200341399664309763502828786014958964594379585906320576363895158648646951997650606969220866289978605593455026337131315580621959074331028690917515108421658002066161323403590171793432780854188065302645124207095812374521394978293238109816313918052445987018731842939724773808526575278909366042426918027896738558317898138496071895913210757384613729854230408590854733673376940146830419272386490414258988389973738569707908595421282910912482407259622735223153915310392777574414396795362497061294880738794636034498257478312977769862474239118644522070740975321566963839748903284167371734948558594936068990719533503420300081196806043809785484789271008715665589159499707535842132790001683112884628171216650434855561905703492305177031251787573080921291150030661825138082939686630504763338465062429679684305341450842162112212931512480811498957713450782549175891360111128835825297578454743758318096146022335325186151199935478302063770726497625736728442726483253085441748214398565880141569495991362778377716540287271599693139670758305018268015560051069575324288876471589457021236332206475575054416184943278459672431430813941112631934459427423585124511699398340356979259383821469664995970538066769490942735080797086057592948350072862197094184350283636397258209485382210463799534845460481187627416751489038550409548372250555786534213531759374835484162681629193023214510401278221250797227108320086921249147485286177712509289713788208517782856897818526741955781059564710054820622649265626438367978106338219729104233542343227307963149404254963800092356321974261896148301130201656550190661296612103847369061610243620805983605053853834949093647822089037653105812159374745240368323520769958195042146184644625470080299341798894211497186656593903893471550957511038010025575680713544005668067136204271128554049906672282924769004899181343536404666633635415661616925202837447096599951027514977959031707767519206259986000796041843514397753948776692883171199137954046584804612172535166459431450087009474086568241410082656116506084157303709213196753394573871708854903630667943367996836012412155003637689141775536628523537958715873376632402513837466389827273512592648959741450204094810229459615530679741449238667160714532013134198278875736561928472378644144439469351369221829881439031348553401979630038798364651610548553072003734576292515379042256750988154463470380824812248833527169182610409595929499474302587898347709649994307710058528582363891420454253985923667295675298575621185610092827477355527036230227122989992557465935757270620409967037144534521604171681296442695882619749749272530100302285517837707960945004351958872957535906868623613277600176921459282897678898431231270654810380236405396761329823573203596898909021769552543196466956218226254645184286299522726977153192940300612386027695362390177044692541358377608021900458768419511494618626251396834304914739099039022973364515507218359702778680791035448500985418843916131176611173831211973059687689355664402306120111627213233687347947117403139127647233211278095645455792520414080950491347220419418135753667047178851541140295212648177676803711226254900724934294820276499016282185621539235013497382289430837052389947593718589504166343946125863117133394627338247041106640765618436449345162256263459909109708246164417113271966621955370737306954967497433341267074892987203805102644069426311375803120093925711154727145711496112354056115111644007116344583072098284781761839312852947584984734820306494709225637609453492085029029070732253112472007679478951054161155139871974467251829834892369617561130544715605292652055736655340479822699518552976750378031500650197823654055470702303866877728765684649810226245416628397467348263131814556178219116950850267963156351977652607667608443075869160488403334759976216079939655224817338563580319194869703765080963278171812742590310140962302151114576845455600565746062630981453835527491020730289151427847770322803646715564243691393282867650656688322555344048735526050644099249473936648812485840466695089058952748641552785526017043800140931655103489471160248884246261178684385188042062961873803410563279292527356807176507454902851360906220647705118280458260340112880968785778115939533113273522689467156630312408837098709658689297054622280831345921393569709315452247364460126149076457296638839352308338989173341685168020640358816115789893350979421950974105081036184245344644146074817710644440171870245483669438663055669244417472625449245515336853288879468924459974739832253419129153866705539951578874306226555811851829649774199810017184256903025529619132064852566585205319362213846411747623370660585620448803521654868832156313045580950714204515620166660456913899276495845159454767901370723509134021289930033863389409938942865942449358851567929850670128388219395462351884792703038179461260127526959946890456333746780553012583146373825773366654277799917723051835128508481025990860064264324969215754289091242133308391660342541348962354588892677729129128369987429564348421726950929481332586241162745996667819929679917151404652608266807109396511211939979867568701897973342257660508143926159911237100943760792307054295104420203710064056855582700291098464946939303580513246443919554189278880386110975625224563892209820441948917733690455404943265125762623566534750928559069748604188454493555194302107546036790374092259930475250316372210232928729011831165699714658093962073526646935231254784623364838601118108321309615555582700860116885193218988341136024542631134703069131277483711078592859295734731572254686489709085156651418686582242290715821164781045697125767127430987980015164569244793847562972000360101342477744801631369281098157148338110176074933102310500775862209871957230554912986806008403650113682951379761342984648599694489789863307641121515450166976104636214497033300828690708844774151118133170247307111694252809344706908011769370011602236255582781445893173257214097927069242716093753183007639236085568122875776189663657394822290608030617573210145150145780307501271710603074629637870441989849680961904680712293823338029580276822112527877111680010391703458617839713870210464453530415320619960127948931477443166786634671745243415706526459459220374972971433600877465746048897833824965939430947972138162785570818531828442333199338890314169810664273549011886713818687957940007928043659329093379101061048529201560551463681689558451793514974733826918795885366486115897990378488427457186512034291737685695192363826211796626267909364966325214117724541020193723389221736349965090286898221483666029993167133709389014155244920062725927450638955387128857962230726376790726664893424250140003713572799193292493866523940142265642482088766045298782514977934379250466896387787451784413670498458264975388840071062335692422432817491487027751082245293005214682797593162497892107106884662379156934952046289764995275173755060844194923120206647538689779025163623351893762950145760725649003476194185024887066646039315843060204621615736239804091653523173939401800135852089063362591242335934081985348660260873866392429487574353870178334800109810263639973828470858102695660482533574813227942264793366515713330573784926247102030876453547919404425356959046251637595186631211587331041738419792992003539273769378257186351369458104303552649187199520498204928640585482036873216660366617957996125277342295296670907291268511011496880368002281674480511637110853083942828429528573045101738964113974055878326207505406915552719329789099543465200810387593794972306566713476396801237619390448719239362396649812114616346331910745952296007790369872595044191959946513183965597656545099967928149482891258672167079016692536260640468506369864711762186676661005725839722181652863150573680933960813358134021115644459571584810032665312648295131923384944765049349166106334445758976472603461685439924977612157322730639960419317671301741844561446626043782712843499220048815527835519926253297338416477427593529525775661969907782870078410491385092469473463287357948209984267090261158423811776385129267011826410835845300099910523553040492168615414006798912148856648042754465579487535390945123546022862892363795964179614083049416129572729972302949400577736916394063759443154115016511788627976048718911021122144035160810268292804891633736876325544637914229517508106043731680177099677403267798026936208395524829564901731526888070781411981439141342827273598605966095324031686716892659654719331716147757763727484018047315203924036776925108916802161894521226793867367749438453329676120476283376829251653166192608923332666388061138451444071422791348442520298684328868110576768735697312241213705890862003434129918005406447919737005349102096801253894566989357308016896240082066016908609207425277591338028914560106073694110110619970687963460112646718125090414710221575237136716770297094687694043112680934831479179581602416442640800942962655266946076236524138937455271899742989453813629511757119618347444526648782943842790983337615213216002351790629395975533999251698760578758512751148566141619302139273784220988734873578481591487572927573110253863937287562278553970853676673343404144949360118697539126998139240438794835349062753398230231811348006880269068726474613786041411535365785370085155525790856122374599696086192883211078944572593533426773874434244141905867102611164581226511669123502269843135015342245426624718546529442285539411683958172230516380574158724924064022125040823401410122464885610383037315787624366262171067449536148105531636591107329917663217707948950658895390736100690057456668112640293983457274773650631283709141004540430700602524555549709361120601466241931142811830109584257506427892731253442258718899216228399601537398560492933692397037233649700390500323176433108643535713905642087148490169789405768913884243471312992982823374260638764250341630922755707082262944018508964495758233804699595302511268712376832017541865393846683017862080598796394652976630622179682324938607552701507178444683094855301553637087608234211464869277474459303383363615590316231722611177509995532817356076461286522641579667621141905908071853293924641906069509402628091302889044779948097308020963480713070416280119284716062739297647329429810292753736030729841898645250952241955503249213793552748737084708616286489102977646523995443835008241029230901176847107903007116811156487047578297260682440496071954326215354852583732975275555646742287948819525686878819754604721154326877708642937990271882235995794456192488130717406030698294916964099098091746124404238759047511677012489562965735613828012086691520822538894651113009857150532363027658772600797599495385511393896700195637465118525524262237424047736693861975593983978314515599550702361737496488890419280619423649935450834832056802872770755796558692068999191551345479232982627536187597453043518210724331947788146942061289130176634682051965772596279454672228461617262099334854147396799637905958811143883836537041255880592220502050410496786924027332310264502303927530341980260137688308648464807392171621258530568128400235407729592418797058315280266918751489943884078500680236259461587139059216647948744425882072744816525322572478383062073023387320048798771696598912000274137884585494291397442289449483156911839028133966264644032815837409756725808590822133295701278998132775901336886267348291006260252258797428461604402497325365037693802920214672381528345671839330272208450857632947082309434530509412479475148199244176553671544256512481629061077973898739914018913484627158604118524467724943639198512443615278178171098808059555755796511658233585165160518353127070937199865520751697766487345862196348688689661740020467302018722131875934511232868034460083932262665628874128547660430255056546871523931033314586229379626496504295625072675525084350218004840206419868090024467341160047373758440037640536213612619432844879934218048821021056147646658748586501715961986094873732786282390083755720105729470014064018405846325470587313246990850165992995525468820352182932454655011599809374115423007046041569716232284809233285241165664592576084626647346138292387158797409316321011224530921389881041573087338081741530063466594006135981617374643144830824006063712752060198291362684307417328487792115384682058703247110928881826463539718126146751251345481701050033643569089607909115063217408708117107136666087379625946834448837046889691753781303062093703453914814113962977282667569280968004735500113527808496843551881606361900171818206606764205281049745352776254035141422032327114391910803069134249049355834776841098859954162673026556411403742636087954552322776645663514502279823876928466200334410409765436777414968278871951320944749537051537850783305268168690900835912409757411397716929763417106700339064432711447495305448587503919408314778813488108068155079050871788574794035924433326494554773628057379264346226415176938605520567233191523556096294466750518379605315842115961218402808184152954274033995501730123674214970484422202004604648489012602010478759325383738316714459122563315113527879831297590015252534444057774947533199670845004187312697509643391153967695456193867435273849164499852383695557287269356832273144485853891471332278088776877131221198067554527215485537830172996632952298100367032088895761398314866441418186112991239134425088702993635277514394321176260093483501075258970522056826629535078096014384835473497665870145970652251770406096828586592130480798276183555186166925077811711025825933476197665654719510640218716254118585094262899851399010379641624382695559985941586270412229419962571492597637356179784277987798599203431060370935516436767858513065262079303843018342977756610027134992645318008219499204375188460141282461380873708878499759931103680567139237848689062491206296567269781758824089428598616748222281411767246298692531773992433072267923075470725155736621031747621913527494812451149878868814421034304951589333696992302481262829231282111510213951132030339893886952310702152610310391878758582819341755929256349660890695840144706582378491245033918890577049860668997775958390572401058446043165011406987855595875443821590276900691581913319779632284576948122732399615505337383702070272989670749857960202655155019099744055734808359717443014470006164484849705400171756190914290400435423785764822094608918898825753008340298490058357191025064059008051151554284484660003854858068552887585329256377100208835619895991952605377031857167912231079102780766710009612470366418005340047523316306591924169261709380777439788872294260279077747606996692634493096328600286057567155247063331957193614089808165152560013485656557843096592064443576417910800517362681226867923401884891591420468851911764208968496431989358767637360297423344335970107473458035847662216287239132695332949042104037007938305151453926919796728571734737091551245310769868987414510725667202135916914668529324304926035578098980464895631625885142536823172986757042874119128641720546455498065830727652925485146613101727461942888293421647435503029680880846331151890395915540451587906672030601569715968574463377438768635544380837857706256212481334054974530557877058533505372221653790053346175683994600133244463307322214613479503788618392970333047610958655131853359706619225083705967329730233676521445121591401351834242474163347361628909539558242642559024520282583989013496062822453016945266430189599268205857817395096959698982695220431819308303524787871311812661486073444452064074431981646753696008710375995045080997143466803338351748027647142639575380345776856647938654246299901903578569462828524073198600956009041971384745298690235101626444456156058726354075415231847240679278313957319026004352985543890032082084158593688836882562312766999580913233544856884029810516304937450224472004049340887107992632321258518762662945618421831277872433939531461864765137980197772973226949350989761001943105375052106556689866658420735960258289030858524417812615679514868583508574151699330036462493285945542919685519598653089031200185223230875042142408576892640448668098145460948444533416510892073093092068303558946315770471718585583199922206466286272044278598082006341970956948973180674099320979667034872225922136819996625069981879392543741420088808745766288428449248413649937114530190537153266183488629388462726543317192818571405109587465668872486328281051379356920106868953324989550056451024542532385526096744166943647179651485571088133339854403356057866504878767362072315881992101858453967263474578593514890679875262864932866203735851274099590784956507992270119760462089836762207612057069730140687488196697335186103243103541221137345044338841654437135311248482053476354417792482542526108518103573901353985371344237872635717374989184059082522261408746143077425001342767229769465644570582428674074776322969150114697192124082165376552179230994540636429382756251869655169148683737868544446269606194525552824960838093264407345824458499866233212008222168261727093115120246447150486916489902035672066747563536206226110404395338320974783634972306995689883094876109348508808444408244271602834238525396889087428267515027519771616852514370077989079117283939057067189401071057806962675141144984157185418365606906673229811393701153475844812059997809336268339474510425030360286501008734883321427705721240873145316992837992524104084745850362084118812623075301821014948688905895339048567948395741528266897440251145896271689823167785293279434723899122074989318576007271120098860955560833889796289311924628887168040128637598224742492291938923605622280067592431293932918748847006814205569432837578654200967196877763473101292699072966723466388850324645151824492324196903673848936911528060363874984201405615633731565116790010974162738426551575224728451619949760371512945780385706400790410779893055105934224059687210817129255245071889053725309643929128775822764135047855293297488858129525732408846860054718244903070954915658255314252468225213829317994661477895837925787964183661246620117158851741775851809941395933613595400538901206771450870195360664178778382194280862073325242547241811850422919523110028655796362746896562990520674468887863401715762483418331493816005136733001805376035010134826069811785664148145565314164473368262499628153555865408276301579859061559264236232972875382880560012771894442701062866703561855929792218529715865025380149272479311095126994569674162266012851344996676093225428030026302231940691396322732596173189136499579283822415830305058727692719549218389474925173665111680993765798700419565397340431411560702481258775621938359149490118259201341542355240378487195779710671592410392155041030521559140736807667979492654540431223757038874334203667790336491868818241825730559235261529696555319921633146056577369303956916454483755286079248287753762534097957987357898305863235549922620682781849711111282434625834324202133636834222006040654862443637271785032678224094945778369007115340543790905688712790533138220800492018161901211179990184284506108166246952747132212388192735698074195250352583587769604902037613424959715889940318538585321169702936331943411089072417379541357532435648126802990701525446619132623074954707522079203441090507756107245113985294469853210344964959933927625006469435224358009803776727084684233764925966318930462309807223077359475199599848553716567441567144657845042981639148542603756201770308461094832722793160304648576110507814699007110594918877985717598085319025977711476182539003819857779386232236907986016610449917781754467275708457632411684005980590099487185199553299048032115487704558792581259439383686229161154205295649423270626111838236436400361666051367330661553670371540195675723535599764129132134870876022922540637204174078053858710547617413985104929073236156140511909740275165160128785322980879272875514073328004807015246733024370889413706731669539905940642433201692746850301076387949297639333686108113156944659965807097559464221235274386112225056675500747692981847971858402283252617321905492472906721770318133628963589611074224634410077789972822935212883420949313800734684022561879920744024633717969312099199447069003936250256645739822043037917660122999812126847611340270458544126286339126662000813827103997603983462846634621773140526384307434687361868778354607202325706034858406801269701410209048274681198344327804190944360511036277631426879512236538785763939143043940218221934036084272391669956843883645411069470927831439114274611100442129515996187155806149506119094766217904190632052103015916415621057558636880409377166443410545125884240300842430679706863728353156880711643630953734528406621115950756960869079370221650953610276554511832488725631218915986512699021322217545722958116012532042046690709383519306246101518372989397558364826414985584954404439229673881504140120885420854190395915703045326844653315558600889508354144904270700613538915375838909082316225643671170231306699469112850772228858112388645495057475532235548229833923321211600092899134686244712260413593793459244029880884608177081688545853109351670764895252600124312986334683997542367918898636397744103130100690981442982107646318433578452233028354612079974474504373671515944830008448000541697252460783756590629522358765538925906125581357563164181437302811213636876699083659441390660913233501936319476406666146444784595400997657751725942831144675683361932844551826363288353507817193656383069468996274754500442466197583128831640188511333466277356955289731341448436011790302389686092248603112508495054287934080032234203819472734465392602718804745359876261599641633195780474900932780138053447921944872943432361040939763266637471249776037953960242820413864708819496565226416300180957980404301031557078867600383974079943529145363769124410300197145815662296263064268984271611959608566189934367694910597577570547572238525373439039026938471489212583371916849847784061638774251421456822422709249137722945068039583570228253502964644235968667785407120928640212845359799786683981255968271272359071119294634360588394783153092588921329423321291563144288690228318026901720820031081673634532176212792033556642957312188196156483577269576187801451815577344946871125979480780919703232120475356159487857933828638773365362648585317238590932247756246380780998597819902195323179286058526919543339183408671069694874948664617747457495487309695122464297004161697820850443356918842065587361646607324605683288700426339434130941390655617687092831696507413985896972713452471458410540022388759744806626011382959763809868495997647158813540922452770084310006777251030593384017458120200326892380514186359420853020994601732806519559431428011098872146893550236615965257925588605314487274088610577871774299292033286479208771667919920435168263422958650911257178696643668045288903339766719456065691532821367348882619556612779130669948092879255420255783454272475712571473161308732686394589397074844251239175187775638668398948628164093856233270599009004853402137229428112045380084053139585766729697424778149749183623398464900772339823177684221664997687035515264784260364837006622719152762865777515957541724177438390720639412227385328137471537704730386923280354410561772755703506824858677864398399709356598877795686257951040195652304513790550400469126314726126287259616546485492443296827106692114870440096440294949121701476425388445897976933481709712443966128121603988620306922189079448738286535744446070922894768145535683245637448108938218242810883762872779774194893671212445586792474685615588865335002735847170838086136524340854423780992961030114115908503944353530409087065748830245164847968464958480674198490700466246017602477678128011671510900809602181372369641667103716413051074102506941646523744722621013512526129158802038389439441093579134040695455952653989225545922169733079252910821610937892761070850238081314902343985306703819328395341895590397751019004391422840782798692308092385831870024712535241197365654878375333941018576715946212163892894039275416765597998438806697412344094366814944215595446067247720244159908885833341067954450898455006103925602208361883960214212034443830900180813309123390222501544727728848311293968700874149166788816435437306576623060960616371112792765511501619021426935121775884926850554407792397667861339522613218445292248375964930655288787408683573881544507254634710427711144071663900092884686056528631414969398809120925008193278062333462659816495922122417819542413576151021200389204707771497979676041781676458459143833472970433510539499009782060239220588290973342580140315545223396098772930512980839917107647361429364501025818476810297427881689294729427894701355131375006682667632859156808429906969724453977393518243079073582992099199918311080211808685608746916290629969117312454921215518510897013408388687218974381845881197424562493057789579815019869214916913521517697588761679699100489316464531169169512301066057388228677794511081891677594366205444365589804549823366581701678790025060052696668642259148791483676088090980499587268826159220263232365759112838592827920341883740250560078682825915836404288840007108748552285514451644118025018610660382453012039481765068149312748225823950470572726626160506001970578433689873835705530021678806306764369013722696638045628764154274451408506544777503230833882015015085210397904588943834303362804275077066769554580037682042592489905570947400288808737313352186949666164805355422817566674565310100348720243836694717758591979483097967980154248938346532586377722107435782233991676173484734414700295401982077483524854461936705294499866186803239370653513858410276445963981355844064322155473451131012503466846917151544407892912975507592040658985003467847959236983980736102091151501987001751581616034003213809596296640661910112432629862810659144953921522143872082724678386825269424799847600473057330641715829025993230648355225244929385977431218498002966474876086672543631425217359486123934582602043052603779951948498301312803898295099258912965178571273464166563542367315327335389626068527443729897118803382984006713832669579372110660579183918372949261416283557692066546897650312388902868953756198997143128704367640801325783931735834156568542824834734831139186370899884514731557684205986529757878980092318383300810066595942710170104938324968240327772843690820228904092643333516160172139580371913370089888164966566818509494790179262502015947015636520001078017663571391481809065240723422443877844270043999527138796686908627459574784923394936151793470768201423024843822183542308679557923386700377418580434084359374849801364389357451389833971636030976497654212971198335915831078308660367037677438693885292973444811514577184763700257321906438701140911086972373681138523981299542975563254426881726504778170298406139469288666407212143926326440227976313375188948629970661211590506616886003042397280224672493539625465405911991704199866346415824419967658086996130006138369284197172583977453641639741184336486252906722369895259754951218703363970491273080718978240821083190354102714687472129286454134451755674877605479658853568083188759110999257539360710731692240767623231848135774781578857295121796043709656236790231760660641851144683937183874191842575679451017121516419980666661251201315978342959879910429914164547304120451186960568558926949944289792491527938776799859046318965113184770570446994182118955666327133472028093660698545724503899882191818175818406508977073954324045677311989083058805833579420613796995462075847012026689136805890976909978303487000079420808368801945353171247367187998850483790917963864497043132845847351086934525320443753539468548481486985644392949934466674838412304517071904845812009134474004474223363462759343804434427639522491274246152266298273919330671505462493273427579078880029921936844324473852635926338975157988004843929270357627654629784359147187109301027980047241076144066364337908955636296978640609049077873682710308133217570887470583454053518449452747242912638287575505910191686885282445346149312238390957010849094644054689596199742942986071824098787334384450905286388721806390191965690603419172791985460704185261033009162464011898160571358774155179481740161910335717416370211935731129691111796792170645645758811088249768280992262264350018841197805690180076042372094016591378223460592348923988361502739526860465860417100831358659678217441064993185317256595000011507304361242812756961274553844193706568084822138925342131003115051683074426827173117588738099424427694047144918267483155508217015445497573504367656354914846084846290331329653239387396813631340856116583153587821642653274647970060973797244177423642008649787038318572144145469175150263187302009184071292895947588557206464905913554779910291784763228976834472176780120499468066889161566321291852830520428445711205887290435746168173949007757162098912080819449529884928967381904974646537768923649821547483559206099740247284424057167502361567622640005992728556371565234105588341131813476451414086992408338596496781055577719797709491772640770674476410921344131420960544651013434710118777608496597406487030826915065137608336617374129257930235274938657982278448378157413358315774925269850244951931932503289673545719605378986626758874002335099658034526388819444211984440626558909854251806236999717655510018202737244357459818569969599332337227013391197054294246340168683817668183856733597560963391567447216960793247571066698872649577153451232988677589785686470976415167069776679957088523057044008638077542962576121454046318650337154434303349331586776053089987538446372183649955867179202585610342539378732225242111412979458741912876242869933736034687772261234174939853279423176882182329879763662285451909490822300159450369101276303195903140078609427289751189842395878223996823778755971852185033128255411184851326533898517562247923742844422124096549933153045145352126865676488159516929749582844958850651615609066114295066991461275458410851560237443462298356249326490930421370098750219919541006476152241714374650969897295311063328560573290810866744311987691703608224581883986074007454464330635200985829835664818979052772154763058904679564226125760029027958874243686888042461609368159700468724298792251153558186331309987168185573575158077046643739061725544489320186098845147440291904882596457423065294262222080511424091029798702973603783296825428810186198688859038380848414843958742925012940764719313007396278861509869609755511433101690639960600877722483259309951106388571456130209670712439677519935652636086857026582574053246930661226878709442241398731370920498016272115309642148102728234988639873994129919232832696240132478984761864083082642205555309755464490601859750340548223606996304851686120474452233865815857078592081246613308246755723132853748477689653626208686030159615345245911327681050634271203349742458266919991725102610007582037248900571916970393725110941751746832584982611852158586772867107840269552451800991343731938916926579703739016375657187577972958666149715809988378908190154206133886269031635550519248636620275155445276707941103887743014266424552394269106728090323983496419414382233843690292613910158174168585132717265020123595168841185294978373678282230605247432387728392398006168053244470652284719243219336674827304365932896319174120956268683346335480210862366053228254526456018040945749579788743291877805531420224606831282425509163323393910492886542474683287514242410452988671678091824601352543318237980031932448672714366498808515551156348396945032843611442527888290545404436139869663797171950329889454499373355568392995424303936642831219082009432184508681435624251941707347915120484760718268653307112497951418178838097451432817977946348351105602718678655692991077100829758760499127096290720001673102546709731391768197987033411159003819995323073931097376950360363473555233682107705350617380243130514903806041342887389531049197537391326880275896404731658062119868123748492850501530653631526001322248572031887243584854595306728301245242076280574145135943905261416069251605023384330057450196339934086872760005712768146757794841711120055650274031854717839629272858197420516049342794835861287354663514856880016751201771831057441145326150920652911936329980619611700269763798322434352250172065698583718828745698744875590063860052351787394575254021733073308539834540899814044257874169853132353912699544563072314632876264960280211648909898693485982166243240980138648825230320423462936103716939068901444789609284237872568155849705551861044352380621768163273543254155223540266365993140779357122616599315595487588817664102888575881858828641907766087895396328196280642974388086163093593086045863959081508405611928688808215598049723850677700267642610481432851431510164504744268101175843304222909746526897657728557569156237077887965488433789380681946130339357273313924486555918710659262928766359772610368171335021919277719415825240705026543567412445431117323739354225483447360314041171226868655902268388411969853605520381028061652898164565935351471365163183096279195994961028565568334355902464152730882638341284862405651847517507301678842893558164116702929347004650098780254393162010829358645599033010820235410443026422863467080440818891375673312845757264212424199080470145040212311677176622039883562482062801562884129684707074682822433534202368105232245127346456268751173641331904056394203741230668113542526023747017754875460561803314398587902833402695156520971479482975064421071867796422801629558855201589074893959768885587506282114098532112424692956996533868519490884214219769294344375385653679864499415116267714924337499545602375319872038759276475932828278453402671362348643596694772560306912540824096071175217820076782530920635854415070687044247461745403128184139250717526144791486311664991555391034008916335031794057901577613977593737341060934908236497776438217399316598189066354619755397953591484454833289135913555882828571624471118564297451526073002739720630556642474023959914606610273515224101019741421118229828585341800178066930966875299103688118689472156225855403457241324602040891774330367125681164805874998593959693022782179237983661502658795351832641843084790243338429978301021209459539016693422494878639926592101406966650089274916789043347960945195407505122444185560595580110674457324505486264167728046196366607160431560219680022891474295552296706665921810893076954688700929043090750878379759638289401799717462453948227768343000451349494985301893350599004107550192355456042935028583452591204361808944264703300439285504624472792511394955024204703559772587106124361218753685190966779651188251450322701559238403715625594362583878411717769957691147237330773319818022069749048660404017823722633927537320349225444138545393691845429258769668815857438547452497730720457540582220477549942618561690712946420769197720561119324070843500891203437241823252744250599078032898889498234648551529630113916009987983896853547510616575919307861668005228785919534900152364989539861034342867483484285410985246851574945280821558785776895583128144701082804569637026802081905678113808891629995071204332589392977166040433426888965737113200759627193734851265770704067234000362226984887726278995283438583318144495781920525799192657326002520163069482874901383620339954013056845154666910310874785689157090361380368554265552432488892375967516369639732481066917736742964092598454378230475765457299422987246183237370737585289840737839045089671601439331156577694351754640184694566684325890957047357340315994818308564480624072218823247160224519533222835208597115833078761141091631286297063646263527527277039759540820179769574596457711438654953736187611759915048716597350983504448783821729360357200413856754499258887099186349168808061666978866747540376679288216121146126441893348710994788758022126639269238598454717198063234865150163535460856171386689908467416624149940208291236485149575700784856452991712622953080523991262533522215845445994932702676973100099957028855406202914515959449494766055806601115562120889922054008260787660937085777417134775113825438694146398299438907933016538022342913191683043251292901666048570773469543952058639221738034546405009911698905949579144174532047543914068555985060185821166587698024599532346598987964387985588965586798441922950255899738933113639368846625896948756994935495278493237111584396512401078720062313452076681036004881746176683990163458465824856730393919497910096043209584514254472907487827291023721495239572468986357345118979427017921833135985058077907121772296225898439853913570188683031730757378292490907844133010917841627858729289399191549384053182630208329555379923345002331247383837470091921979385421045195298180082214098814215038922870665451939686324155400025059894409056633441913110496871309288402796554875313641301555963116262718037426337302295533073934273672882684219031008746388745339527955868055208130200382397335176228951023101999162770689331441584551490914012067342420714367203560437236916357059807871820059493250179481241089066988941955479107642264650252696475591350325739998148293584152006969930950555249211665518806290275940041221324478044038125331079715009319475923007136939599993669470008157531252809996088254613640637077898835914890554998496399522654473219938928749420310488762171486678235207603421480004256999916258091113562609365850913748268517372489356245331182797084037934316928431067000284216800194318715760066211783802838093127265312209684808565112938157568102697399890129363048417595866047665209738458699541970441177984004126678836210385640872177629208230610765815101930502301288055564152903995989021314832617130194791275220987411754083251632316698174978224778299053289787469761919886113758609566552696820872350386489855548849796408095027449008684113008335278607753247836939025655376197894092550528051380297064908429727312535583957495874179194918172964820987086956098346501699128359019731785990241326918514755976920328657777213599257620150193940695065007253547807655036405311527657212860924913734378513545312886688465853613833459598751526588425102391060897106084315718172637779554371573697882742847580569049316441271158250025874057051013360681263333931074032548059571258872323767504951470698742791034939193658955404893780596610824568017877499755432379911073848478066614182010627955203701297561664954034583038815729095777892079008318322992934680571404287421260609381543924500660820971789600003790620289313749349394229324652839925523712602311653205642599096408149665032406527268398407130629288747324190460125871997955896953924174154354929312267559762187287629694840838492238611818625031177637479014794736434316433042165023358678603168918410704233774542003099807678781447171589271342960152018501373463565784529309419544571700338783286021464030542173279303349797668345058775630297947084001272342185669348386595563823581641259339518279337251476814766033366100631817410747289438010578469503153384829911402923889767473532744525395983685319352600428194742482437223047638169833088077332473256223149294258287153888956421179091998817458915605633130904238674196946216309284100023773603579300766057205612222598617949141784069314141611573180952230776846383046593654383023562583829559112573653772350434507717865959478267780580809683175204564519627821445030816667673488244053367664036002345443837801030166483207074430967993049228919703744885095176950466516027490869839444463572173884162377589340642459021993412429030580200920916675972805206493190134541559071618511446940010218313947943134165102189861649708990859158875141069613283445178466782362836484021255018678491389746325132898570247707932975446167407525844110263193545122273722226700574227205771968481503821611963399547594175962751892993646487047862370894133905899166900264823225684869806654548824747562130677808768290131055280061737746090695985150124005612339952198764169660389321341965144083452395702481009578741778249814904061005917251673382849997763828591710817562828112357364174970492379877666037756770761102924285979077471631247604900592820637343095598764309408800594432939390902245756452091395541586466721105778832829942525755271128323978600791704656634310695286703202882951575397457026669007981187885653801399196566114735861056877955047732815965301243464857928170279071239670187328563635173563958617790981623244141045310289136645985593902924476568814436463274670343909188612861431000833431670091227802557585658510849362421225885179445230551129647947333386341790059235237593020705573626437081009771881023484558137991428186208698780805822445410464992108937904032023197194345627755094685986655102712123709179540659264186816296399877149015023533165294584254797322812344707236698342431901308713501440462536989044100106368795002464517781631535746687788397158352925848104393228555305758175431338961563139439412068906611413903958568056389527556463163970252749168937775420351933215928887589087224148673731671469580330997222009238867066148018965073352702298469791148609345024993650247126901694634639508900263907697036980981697121857475377157950549987141156297520644912732144637939019856009563865233048605321934294188104431061519899246878191637577404091560993557949851115751321381289922359708409262071005393338288346882561037352628397418154609471038527102946527405125362909036583231268265000556615821757022021432077245822836133768930002496623846346922816210452522598075545502421547710556265791133830431048771916914043026750301381421440325299745857752769023628736830158417737656369382290774368074863796422071165776297494255016315685260130636996164776764347395686331008181405969440412127405478964592270539223601054568685874231451166473977120661432436155898765408586286475462582741825629013678696098100519727784687735204977541828992933709296554090388225243276779216728043461798646469005667522814041594951785092659705463846757450340274050986576339982652732393794266709871004878819266910249925189363588116613374830569116460906435067580546974977654825024083714252964665376531038148035390849750385376100813947668722640995895234526524450177908121474863069492177293873664708979772448987093322868308943814961392263712963141078223990792981046343931278745610559227372743251574048138389084031482969769556535576008420873341017770060517920047603745103371308286586149292514021697262550351617863675839407511933774404028412774068534334687700242883850210059342571816547683093323184864669057333037329032759549583128450654654183651777663604171624317313325232636626280947858630313587851789543135175450747397695374733095311810569703164001214694463166943194333641940089587131397192368066698437661749543555306930598558647693244736297593799666840749372837255550574264845409552900458948092081727435682977696552968574493813971711744570141499162717822829584241582373090150192390593931890228201565045203417598728120186641067188536555722436333146117919133549257056792368450214260250540755705502763040723251827562347813421889120298993453480494898539841243583260365689044744763379593830216342714026319538470452199406855212332623431631789940748670124114450028530617002266173743456002044797528613635697392130134273948088858540483285971327571942839127773049868599812459119334371833993370552540938529128040304417246377135915314454384659599474989181139094583833208092978398467446496923029001758391585853105727780989842592672501939853501501620624959543915599040293911207786918735059093450865094751947257048274562265779524491782962172555733866399536199713195284075240051656389249379759810124200926076045263621658499031654760515188489089258549302290683360311636153296040708846082654773963566574086045598285129357835266567441575564751343859462099808971940663657094286592418795754351708625263912379331196546451858748383683379640066453218020623486017626450471247958717847546665417123185363468399900321194007398438473502870431981962038105403661295485761049530351033105917677866365713265116818311540666613261283522909486722084676730717058702074491591018613400842972909902163874787498742238148783982861191207630012471507663393066313099440557572896096543751708912336169660564456142492880470245102355142124267354086264444304336415516585074522930222132985004417204194131073159863362687180366992666202105586420307267417750337368842874597670686688275722587237803383803217788385002451661046594887629933713518090764148205589810616461526671321781578300853075275694396456478638461424072815412306294744338455109488227159738960387029780511825444448918119288350652012361495904065152664243792544001968417134031850822154703122765666405871030376730743816891238619802951989324302173269382146556659092900629238589383016732405829155089305696518179229504732159027340457202701056423353080058417031201580950953478701949574221760729919027938419396903037282671748410263914330339034491925324095696672448373839183565386996373002188875696406148933294955934024845718597200577067950903383210558887379806919383283843664193989004077167961040742063958164953160887820293048405110859040441215698450427464714133059979773253126787576242449180075962509519510666477970957161525061323739709661779260079285229021159284850314704586360647427380933132400677909548824003662507555753979417135126641914061872650036890822938685857178557563994507383715332876906310647942219530522143285216619424814069376085791231951100729735319170738866458865672599233276563049857905790113732521463801529302725663194209909742461722334822500021489940665324569465549590379198875198997950800923538820651376572669051814814960718357362899474185527951938832185727010917067980853216583122566498537338709543758962223383711664770448849408353420612855353839815460851185085237688269076556127781307475012371495905946299337224668064187908052377565848242078262664785135107347333308597281221697473581114198707612785409508706293021116961872916534953034501698809663424908849552603328827549558279006374480084205530842657290597348164886925346025054903722227293947728880661760926691217858662579099924210259993109937512083828392937261540746729202491706861640257334422518773291326995057614272814765142971560057476690561813681869061239939752455595796927794292316938482960118366407442909131862591117670761433503107212373422449746634936902420635783424699450346481605043670724792607422213102537165121535107717032067907691598670279711600803481921656819419849776380214043214049042061997758891001680107174773184240106184675417446819172848488018750388962036943428102212542688465144580438791924652596633808181289362308775548828236611826913618893348715607049421992975184241021693242425022694533462804084489858956238458858171329680017367070411305483115547310107329721290987794651330117594250795397367871565195314092986970888038068458612725970288682761728187862275844027594462655522689744389971992059706576780179567691279664836831237914158952077342098957762088187164908128816939508711658873272941691931215940496086549436436438501456226932100415854805744539020021868763896150755799968608803235188274099882849834993391043986473697081788775024720299810372978540530892977966837231689440002444265183607231290749902951227693081409695886279619231604478507917531818083448267991536975354006964147662306657210275732197342869375684536445928273729203353274840759340315196806202405819044870498927162112316843053326365052512404004955587897482653473910236315823916075529982874012425779881650233839880564811769906008148801862007383059921050087834307538566979211908418142856587820066769234433738410966780131652936908431179987439185418806213892579839136729771158586540294234168774113011844831682677119178833709599878026425503988112024236858582793484820460363627913138389195411838653386527194723642577286285034474187421800673429310480480367453349929223658966805417897739331403612745088142754820480557360752223852080597974195458652356814410081338821960759547816518671228928780977920670251980829326265587947529088102653266825313336268609665099118614591735813014081234513334676707335477140104322086249600754560016067170328907213717653585383376225930634544204163674394959914202602244310719780673756238019170091766591143274681271313412308182250092124567837377820342524401133869966642889988376881809532904815630141464184169795932026018930309091679664543498635912436316299769143143676191496071497673555725342039885386054645695508349717405799697010357807082075842030537544008671782401219962120342658473626380944877625227486154939176400977324224085907337570383047521198791967993406483661632318110651709293967208829103600642179175221616782395826809340287233224437013401129773607281289115300406438396363362362699287252134266811556087013661229353765120309419355170388218237110104930477283947027977791441859403223960535142908989595556488677499744222862648415800874907223347316998054206354503709155702390486936450208415105406118954212501057778480891229029932837258450002002684892579549079178984677312418088215274036089519542209184122786704425671526827562521063316760589190830032401824366246046600788893670531774504811920734170022606922261289774137870157847281076051926360601842471521062130040096744991644702208725870584344682798508210948462301242525807978791081197631411830293372660647731602985712544749821953710995636069278670838752727694737843025295207325222690840391504242679118999024827276317068998697832910200419998918395791544512662205636375343908258080130424313368124536082485021234614455325766068394301990826742451695614252514049324205578943747316209855954705614737670790837769166110919379478619136079207071381400866967831247609584425197175529548588420672310600437641097614789678655492599654011177323983630879012957682344975002528453996880725835492024597090588340353314241131957847342968739405339916945465222493229193975245467943080008176647903533798409391944357354376744816104081884975780326384095600004187372251230970701399470890016811319057070735598860107141546066395835431494452874652185313816694443453275151757272590071636803857294536633266589552548620326638461447741321010069421943302069880602180562363931911565864460305030354174803391174448548905074016779646549177898234289858696943386901118338266672392174445646874365004151674921938244627950968742472074990335715637225619571787248744286397373754580967779414650165707942849500074395473049621132526569186633867989612340165060855727389940585725640864979271357818946852374193113729890213064181735600981884782925411033848329974571368847646615109323172740627529127889989412766163214441338679478393822785773182363049613172476458240244151282664718061385715087609123178403893982491890508390161816837383958583644987446080835671066215347980055967905532633350287892546445024585769311454366859436990490145960949042517473612203219177771026749257735538151213735136145337638975240675388556891634114474061704448638566466554891223958730520416247724891934532647218637363776235347294034205471654727711890068123009969135282465223759193685889617654377517261420511616239918726351028370058530568649530780698389643200392298279116895072158584058307605392423076443846832017878419557230686442784209552822499544627286934504023406836097070258938845507379337427131353134697595862768365693487074358262911325480341322324623911680440383937501324016886478529208372712293333099350443862316024326727230071422241607156242952005269188346491543060323247467442459792419975245946159905781530568977650412169636235449739017969833421831227545814948471183443621903972033849416239973894301105790880743187819611299348082030662611774468191395763115957806217661652196746005694214257701620354561906602011839411320574556681905444445653943336147932346791926245879955445531097839474324602138763239649206359062311392865309978950356381373924958668490684618906043187634761541275049057757351656763662903098926079423667775916905336982794641181010165673279883379334466683574319542963894545836488194208932667747703193989977383432195699982992007444123376832742792901233458531333797053144750859186988614602351271337279153440267702284905763382960301684264618787589890928994319172929573366554051183442695514017813998204519437591917600142537281799413080337027558547256929219553477226067868145361099536722680294251206365073391798475533414825292586323011443053264054612391861360807997466158682303983569254955219999107697183630096600294397829399484034693330297484859316909311482934502703316378552925740989333245780010145740870185063311291591668987327822773796503200765492363292713420644322087953327946716705330104002810521726824153132753737621543608533279156551603151601545220243570212574650803672220598223273491760277655499578770200199345451053321915159553749897643233328999905282548805173499754091515580978301085209246913422900363826436643840860742286439861152097805994933974758455688285840582988799014909068517515016595305065527583726166855890409121383577358536551377084601521940422079709490536370376569282646651268603378294687606429395691229567443547568287014040608983750996315267888521375348681142475858042577834356315317927301433470748252018619450776167699717326037140678937388254114983807216826168639357367257328867242418831746413864401932832754065772492347591017648280874002248797421875231935437897664957101653163677094237958445540601730959925668420555308008946540266743032519426195179619532379118682679150865877715946953464084055198670756116562358759003923371968332765494098893139131974885257944679255879532816743255429541884815982893614861564762320670943909709407076054548623494193732855113276621100059989074187592125367644992390926687475763672087886683020205551267973508665380767534575558371950802506734505989440358873288735710710545887292252631606269236632905332169275068722462733419219086009659345874098777698558784724409578258509851711821742016222010358585202342829808397316422723132580691607402717937712401827297219402196092303016540381920221054735164545541960828943532703363323394922578088455717323824492089291118538983045199338865459881578061568400161917176265657161877514715159003854339919445344421945947046122718773399196416814223035508955066466255435520759792669745448089377138827982446347356338800627468274337996369579384504578990319687402106618955961410144540329474628100912118510790568531596249184765436454161539009956789562527044647514944440541754853841160739026595985071181749227057880965557476838031588529356753435536236302734448822751007214816846549582295156895310610211975686946945000048656679253539843623540073104213247723354705404775888180865853759778188450542145151402465759268597363554676740359558496532209233465717119288293012235799044834709344391199837196337404148544547556926121666262745655410818489773939868899227313712646188514608005618797882366881759504485662929258183267632357935607523470807681712420542361967293820891807248916759439801649064624128844202951393598169394052827015831906687505634356932679215955914884396736298630043097675344052033013901109548161100704295612060498224589247436081655458565903673697487429786057274239321424751354283968563360547934032179744996119345956266052154436920977324652600517338478355593406194166957085680905253598653329628295306668069021681889047795590698432392872744540566988487170150933367899521156144125448900203063203197076993005787839654728835679683682323294462153976340751766175794936977821506142132550795797184963108979952225961545778644250776581408626768402555894024136038724617592003937062183939501104444010588102659038598610514949016717056643791149297546133603817616171610298927807399320733308620372561238136787502397815429599351542734383777056994125612455287529904361299743774203587022283236701495919009458796968065595425419303937900234317616852738803077266836799711895820864994923652886961837695619931911567225347338872223520079432232122567471973716884727508120780026501707682072900203972662696217572720363724251183586460955890487063825703209025051298237575118390912034825979468848723140253938835913210146284922205794684005522978984018195871416279064839562871037927171293332113405529143896256636335228538628298811791704756216638278868725401085525916535296936538282689906367292179132509117346945739916464093493342164213980297090330482236331121365180774757251970428623973231707969886846800236893754227524758781697589169158335209729811238203681051067088212106344691756994711168648459537732751331564857466653500700337877336779759589927379255496000124326495031872616131722969443484792778104628249046165534909372360217477054614978789945053433604170879254537553824370604313841137871888709923026927534909794359774424064102806382543683186526860285788540788939325930309587330906953966923920317721613378638986077584129674162027573574312621418754045964897894478393318344004158521427111145129396194875694490443952635588910602800638341113771030931634029542890433103587210201148591475230669785789292178392164808919824107750618110017680657268058419545471149466843168128735743240660839762649169768032891736781700302681919405339846118796319137685055223377715891356003314869810641840458835611529237470345825044403532566314529636986177319147787102895076759355523213829820050775209599258015646879262239457194184095075610582894923339295796414079797281777171986747685407861405750488301608476503701355642874167300648500567513143548362930294493158569178967059370557220817419657369437240374775041973795416413403591240205597363740904297936461744514558222464619082315335734602888488081305100795424912995237103901808951391280745386647966287573706497487199806683589080293672049368802607135468734216467429947890597677408008091377137366248453935439302393458309556188138603811619957765596350501778350158666859274775236496128076754845247212893676458596748835958088956734644549408596268920054476343200033673340660565659107046193192873887972782027883439928347860754427214016142152048727179553618998355409339315763547985764282749970926807742104261797003600202034277866426036534339978719404442921182803728293109055184200952409499133039455970991667855165318290956784369291245469933072308533791184573071208623077115110780521067933937818613160037548563797166558918134569331157680729673110260523079794487229657807747612018480741642032307029927029305113272698886813874261324561236858964026439948562491323198423265260420061042278227906782611963951285108435786460069491825079014228565003260865362183247067555074413027258696032591107515266186359233065185888707119505052660773546108097212958852015972831069497307258563773743506664600381490415920908992235159071023326513506295908980031804143267728472809943181766183995030452478933054571080471499502707866320091210405777120921775701085733724944382884573239548482219212237156201601582150061173748448876430765579660299011869433471430599458935276230466430138952423047874901612847271005279199701594266538905219738091908078515985950019757059255762156482899208419491775672389270641349954867378306367027704221898466531280044640029336579340019789231791270291247505351015648006457361661379817695651784762307205541928166548301972680818613421676536205847826743335758013487244225093797830433443574493030356891644398705714824093077546036495791052361104185622191393169047573985680180060444805000336177284744153020489408570814534573337560425312763592529654030715617354349256358188414198075472287673528902792920871255921799736137748920600969092274560963474247891760024719268943834489669771977236739134327521306455463007331823542036857683664869793813930126913900839228566129879576505156311914589074695528743909853643794548503883443959932145874975061305810261238565676258142746778545146951825464460678634351947626152779087004407863759224895262262525475148537341624870915878588998767339346884542570672581152058818776795250691039258313577959532733585974149350176462160094670483600704175190494438121510616958455792231166938604067877285990747503223560827855017676123386090242143655883925238308068902433809027629586001781257219953473611254203487491478719324542264278867184770722327596278193815673925871077458362400668415443373621050264776967892294009132476991861265628971008512667043310639988747959090936829843084590721353087295433636855362080688270043862692339459155661349240325880893198656285845834475745248920065507664555854873322272213475784114215142862751388113094425703035488409584921425716227597689421882253536598570893861029063773886358348085026168197023833356689697922500206269865161340389724094808545538232089074635161147493958909022712323213748129953967608149501559331020749883476060655841058977181154681108719882576822005967103174428596268090017960684151828064487132061103604275408749845925938185299630202464114691169634794154219488699976220224963680257726815125013306033860696076403966073943232689555292383323761320458853820152032874307860124172553932462284555920020877432109493123450909166172351007386171865153488327807655056047346274594166720491966011354185087736588784724097845698721106875303459003027412086043351296019997051785951472547411151342582105775897107485369149456198743394661547920436766923890407545231864329201279641026795451267871620927393305977957678510230407668046099204401918041626243804636568236581333501624045926730267625211778475080585088701187292529150967394887198703716490269648943420512171419546858378251113057695218707915383953518153916306321009032421206980644360408005564401615634508412855413087153195703164059942760206810303848013197579909255551410137742331741490262637394771038128353404880884703014892448663033662643490512257186243000396969782832653459284028271118443814577033988701401217235334181069176408385869943195351287790146963324344763518406107228638529227506063916286222724212971820129828153133090107858359297648449109264152454256956580436093875131998562852954870208415782126124538361220954685626656945243373915201909805113348541661718562174506510854479827560924943683089905377661962743717668498251793797369287912469157822472940629796440103471459687046611763241743380565447132139038208911837845646495888524916548177969827128227874634413044342713610055500947472471880072153969978071771728604689423475551795600690966838616813055852820973395644048532634558400699117179711612485298895580165069290652922201165887264540299869644509742860872490683227517681254456861911349629334808158679225084614390109988957938497334590827693048554298321332843542379663194968842522496484179068878686972361091558195025424362497509516659871048844801410082762045773512306848770867348894176659997308696198209676934904690190365139157044979356013966032896538018113197826369765416549964095714648338405247669467355710311789997646116241282320147986880810099272216620190845786174288286452606561770973436246008951450531567555570890192641872953762140175986562912010211846364896826389704960846186324019303482928960931711028248978711921352777463737701315010727574792873496055241583591055857129680062269780703921711989113847239539603926928051229957883694189477593049861109338123227040878087422689464198205863960221021498009525812717440684999379146441363350978146193841736764484931132075895253395872922324508181623239985503091981753274509582060967543659667712908992302023230374916246264194052143897395191604062933406838530174795846073166860716317358912173661127509350195951525771093979879345756440485663167136471556075935933697314981130585605391695948133945286441530495713267850402161682252885511247130126330512531204549624359479798846271353454809868083481194529732917013322242293949760442155147546261243567644390317176738139025838946484959496344453693535652868208937197248765175833246353804061749420199013732490686078463301114301460393164285261155414633172771017443922036668219893145567427569178983869025294877435481112929243397827745169084405064505913738609425610393217527916973175709172488668989086161696308873810424081159397192804080419556803203818123970751135313150597240027633782805570871881556818426108798695833086955099108605428653697083281714080753436960036066900252012699826398061887492838302699021228241570762948973687449777536592797108270113012062802019836233531221256593767188535457633773037632068982223277650350518175857539258540310298984094393879348198023099518586426954269818469031046460593385763096743599821411653925819895414835128454856379828178083493794234082134500271145533827169126945929434641583425057821757375303764995779509289278734455694649134256395427341254872006611042763412045192492789740168166281469101332115709333012744835950147914823135120604979416840926769557189258825960408066385476185242085660183300038424421891644599192668616434495442839530662371451175540075772126901667186725771845355303656756815185091775917880950967077940510310418170655041988194007521721213235886274310724795309817398837406711683449662513316145484373998526381910194788614643382066860447288450891220099230376576331869924511972754122133662514648877464897047424615132583218605068052226670102470704493765509736594434804992909967098877435499543665951555641454802747673007956783932019077457007043583808406484621150666125244045933647107400727514388155630119819516986242905379712883762914828653699555240586376218489646421945914114062209581583507402529093151715984223467020112108180588226998633111600145475913840810369896242167699810576622885531826392996806007482455682579235014470940437181745524035518801436625062668260517332843241451159119083689700280383445328468424701573027572730454625261213239614305958244337767646701139755482766347715527201814461114962149136786984935473668988656754308683383698708700893146543368451781442342822018732794599748335299907329074816190304935281353710671858324234074078322121172540887291601555222796627700427549488288860318476298801233151281832084725616786534036232625743211231810449524452230020146916677449641004110277794226600910317062351060638354041646714694793240223479178817741925830177588514721390987142891858847801920505154956375540112823889965758517087140556524706401895823093167290140750067704733105667440147079327483497217510427157227037674203350800583743713961648273544237013874155537129848887016560713478322491844349020458446219923367387285572610182135985632840454323754350503957983970087659519763024660577408289397183825836548685351838525795493609018553593158891900612676581033929692431096880544114310976766894513026714939997913513310221713332005700581816975623018916815463004229394622503172480937858606009730107061007510562827686822107850513286168259497304284397580970197807265077073602352249818712861082495161094291805014146191487644860492500017850980156959252311434379929265072366860572395240939550527218254477280386895299204915976595126958500665173383656782986918279580892703396186334084888373486891411800805608965498212214942404979302485964558794918386739842266516076326946272292762967734066695780363610886864433387848287600700836377444031770710636967692915093125631755489673180003956767739602111430030344384356009728125405428671514009254695327105282672488175056480636103714547902944132469387930667742172818211425909347538988295264342706422817544998055069114411586327089127171135088566330394077223548643018122482934219057577618961429437393418523563168445133688730476237144322690539543351819775557047732371975883462863305386296517136368233013176180942547770142577351933900594341273689152668661436271323309724406571074849095269255424094513898554676232843662245087225456450218122284826955377249510104213957169841217728533763104358225736799665009950996194541906536980081833409053080431529382759950547239149885708223162078538148787948337848867051917572063648333816248411548728626412632216714734133556469154355693382669360092800565411752965977884910123986771143284564291813327640707001064224264723532866605701589360027437257532999993155931610388155455738774076879827326193183485764308556214978631952028856947909528003126290533527095049503940269532013169661221279347472992745290176598872059444333469305721826211457869105101400939143126990558856895999345066423203420366126913335399534081594224476117396001023131413791877957871554375780678866129759451082921173434460180548228853583561008458659999708320476971606058833023794419854938763208916419213977357176936611687176027499024073098116792196386558713429101683236923051661139414770086165171417413730653056589193590664296190667511203011483475113637014350213322722458257186050442002879408450593820593686351192291485954211905940877427656373565195288729226830759672205171668009261260748529724079957690223167485049771490373039417735839140695048246003039796289689974647686731558892187001874011387663959709029646970198229927084068858271050916626031523884966564265178360406143832952233024521439338219849143530040918260061578181578091041504914293088634110424567436441951235421307331152903915047536653279461783511143931306126757005439528714342745417498336418624715286567827134730945861746180475230353603293609160113567895026348486476651649326254655927116308280045616125058897649515410951837913535442807959361024410814091909588285425943577578782839306310567803109153624587653296133460515272838715534426582192018759603320010127896258128833352212811585427229363632165647622560161017226289561834299989649514960890513108523963965241600719754689821508299507590643454945206892366997872561914053913101878105632089119993340253075493783257032944454659874105490681553300017239380717667916892009650228416510109787468324374804165082941847208636631923653452172475006798386975582769423891522501724675179384576377548110671333229454038305883302388288241672454208381639609617134473299210926182396413553828120549417642176714035152710993395920477587855187243472754836150677533977339176546172256954412822806267992135961856113251365709197286441067847960963264432381434156229560570496497402688365765222460993479800275387321665261786727236590137549055758931357474003394759185747531188253649267909327571868489682059548207955284665567642362479148862630483554998773932216842923555268586035052154909031002743408770393758744050195109054134281457977535263949287402356200526670655508456737124128994871666740457154893999442846941483739055442619141208637215698159786431202634236877077035366933032156848590626793937201363875529882702282638618443419776582625508518445277608178521558618045106008260441195798850268226032774855294734436542621422078956053306851562019920964621779706330738481563452820414229481500374691609675427749066301280781765970162636873607924197913973880833912240068764385111208933751840657261575688609812359656604872167033739475330424742421790878054932526935733122999287842111411564869973445413626857477010091495409785862997358485818780943722749255854896840890644277956725451546923564430024069306248110763623811569400317655916081424466081995578957127700160199494896045439169556476739319008499599937665606615139008911481139823644836343801846205443027907080793971524999854755438671769690592412538542680963163772360578337360846072064482494758125316779472592174250760930251053555969169556550357739889122358183628773141525689377049849013281559101366149168841853746835294895906178933810296579748213904118689238985198094641921845628604122304784294058159547127982298489566349832880711784347001845503262753363958113368492788454542289310832333210674689866620004031343796977324447787791698822664993521279203205558508606588001038394379317458879066126065012461828219715618105866148654312425480910290887138074333923034846085953242971099451417799676787823693784524380448343291326715803885189606033390321094483858318361509740989910175251435778932050349099243881204766554015405114577437773378464298273166617425338375595419761662507469117350562946445816573790213460105167852145454001088986176934544576419228657673809458730337372542819000587010245728170725070973917162202207525418905397551503141920013067837866969901837414859125145692365990373904517291863951563030176444520888079831180351492356295292261796790305130374882246234166658988406494608166331385502617917797222734519320924930617823697061536933850076754839609799304546264485347525926943931383598956365253775972407274997508479017864500052549540585767017076682037504530885988954450913846728369559063928387836241216419601210754840358941762888921227340348050145388729854693384552028769590994726165856910153082684107192148311819934729487134336594561020763593046654323384492298290715009615958105057027940445769217784347727712112620037320572296805977920023877745626716116702880994903567111841257975587508885222892497936567708268824098578988378776911159524952474764764701659883595689263383717584216962481344618672394542897545430861324426648180629086519436221731513169180799397167432706769397282645850444690371024385893352950115051289172869142629936471474487722710702984007188392456460623751267467582844386179019399140267000783553185572872479121199767977131581411812659576328296855430254117650242289807634079686087806982930834869753392659447024290150262404633738504337464028594728652457523341778051781659088877402886940829187840305171942806597451179988182251703903608507892096154049616835260080467415434260585718559411512989684937662741794824521628318003707470038907209057263148596288366888444501337290320387649429101881915238058936515435316004210118367037991658147182955718027278492530373969485575057752900071808204310197232632178708156883152532403662523448231756588154501772309954443432635733466492456057589462571474246737800244760203597884899832597076992659046734192697433143975225319850119427325724942405856025087646215636912076446317218749920987210519441466402076112425098126259487458761334745339212643598421049348422509058867982244326390524476327227227302233704582836751452631605936976411302287872591454728524215387728184272426143897173804018425299151392348256000239483987265077485232945902687317374069764061630438267532539377478565462317581282726509300958053928845579936144369239225323032675080757878930233000106159528016194380828721723531635598893775056657278964116270923961351020191311606007095597453777671429640556397194581279567531398642523813276856406362953929438403137079966876354142807956823426973696732427568419437753186074250662982173949305112064236383397078917082833905667911410569541593273147120600185060190224025648420647425519914975957446414876763742797899905618328433071067071212810893487848896707140128132705065899242141008092008398726516606005066355778141310772943130941722876457054735098616592281479948712411490725545739782165372430815156354426958298283402438524762852708091283339498529476259718200722909093008833131022327838381536952449991709124022193184206101099405438102235989569010212995543267645722371289782932315556100037905831001653604259392313513977787749380150971407899425001861484265416584358685096768830273120256458856023540752786753414680388930719333837319681589287584140284934759922165648813576704972448505882630057368704512571089957364091112782988986981424950821273634815385244899791660807716227464512541610166808331524058125954489442265436863705070519225241919491605828845303089933222269382025999650254289633768270685289099813712233535819154033743381269411447910962708217358510589536248121261466875260323015515972911038068271128394982203833045959300384394601749792021235976658074223401550944570372084892948489207993247457813946751770034540613358463301565470100982217458187378800591585722244510045601228097804440729848777706649714055557824373253605715241177615127662958185062938155281760011587603778652748726324403065133620559667046244526577280482448556626338057927958279974984133795802645929256801413965772587578171433572693230098322414555608514106789282739765752828799231048896409689814657920012070072520526822587772481095675616874633333788319500118110432220577551153863097574505320014287401769492450158375725932267487785399529135175187830663608762833605844605696932123271406347170278967013615436591618075596552417080440856578181526266023955787943562902091923613906811079524970495284078141908420618833251895988901011302266001677697555016196620766343458404829174404631298929161589764830417854652130308469245101648472748080633562717279976095329801390518448855227728216744584080369810299314338030900461779134612969106206335084651669227020457023551921669739941888254464950973912681299703535709827064077990799399014087332639998467896086592537883334226054007290677291173025633655813993580704527343345222132135248442303504619596939733520293332772401101257617060914079305281673164500175721672341089210258386657391353570510528293881142930277002589489960200789743122647625048591231842046039693276151894285555998390391700181794829768830941036334259521796177760599691120606435364145753675162916589625933617047336664295259938420999040484371335981173713226546274520321233821305148430464133046730480181344509640924623310537054901669092367056075976314976432359202714153692562606204171807299899411963593174002509863462505432797438160500469684015272231071406462379068375942223941591068757286957605854608947517128939398784967963376807091409905293854674652321827231881405390081759028986833337579383978958363086800980326477627741358005493326855403409552109318938832758771266149194198031873709729371008290236517550286431807183368934412180235430919622760711896265894150753964242975340516874818619534803446730345699938964370836038001388820111795755604976329439992461899081767310777201591885642952645598010706430792973181717128506092547324890123561840586759501514433865288031329396658109136125761802575236755722813043563593710520210610331179148344377454762172523217724519158802999608251177402464082143962214243581294152467411159260106671522223361060676400729436656990945580402131391871150685699924476709817101656188690197327646513096964833013522743762329936683140768771016700151017223971590710974834406342174491332671921782409065229399250453089334580536616571994881494097148544222082366172506521424106312678335046509177991657180736544396524792601944045057130683158310946852188536848444984745054251477597319894649476120133034386572295882560434498791028848318448903045733823184775550125453991282176046485076666294028484308865450536724879198323207884962168986219338971591363349729953042886237207212529984905425731621674522368893207114380054875012007278580818633284034258992911048794254343409139072080380788977516292690203459932440365159242351684391386301211093250707508144124412990852754356565081627271869393499251267505043546979499395115214580924639251726857414796260878474026218692631334776673215653093619146842914254998979898880084605875826026080448484092093531917431007266284752029714260215580730313651796888193449021061021270242801053766720048192294856850238491503356813278045999789183256064515645861374633625760520475158420356872810212094294141027172696619880174170076510834144152384085502287564972726627688454793658570546332890099255086009446166664947495360785543159018651444531886698950851002134158877153726325950144761352788039711005065100995661127038337176215214373062511157159259547617344581983717139614539432133613961377750152597120848195717966872739367278811141396119701356133684247725657016523178789972167812634304648287097166161143513394227132080598237394615244089412717991512533276574934158460561617529506446640696031565560662817570676525211952985792358989966264133605666106813900160377443882744596281672820634174079713748826260635294806424983044980248889024991115188274973029819012249516881144361804206175811943514071642364068184917227550042756173790829044256383110572452218982630792851766619463118851024162261330077368748261754286811190448551694586700303052134090560934652618533288217020007275590602247858499776699716401253928859297415182546543523431707342224751134973354521542410954955988195424826193263933159496939532492681108005845279060697337033747160345783792768452310867710890810442792363020465020107149203073489536998502729727120494525638653932122784541186582384546262933646844805590983297037007214708919719858942766932847763893733920153857732196946734684773278834584125919171826239972125905045036140811383938766631564150821213569496689169292654908216578693288183957958142123928091786330495793388588338229560995358157524402194128855515173694844578231072074498116882451425679625069963872885483677683744361421448055288649599445684618732078097774570763952614581775282304322330973295361791112249506186210129992506401137085000577183501882228256845030825249925521554711605382705820185241229273562702923570502741927341853050188440551387799920089331181816134361478349375487882225996945129900342506492106377640250663302186874574957711276455678367869211187650081973909089192686945587612112092283642932346643079059973907272180449820224063379026396656849849106615984149101982424180155961024963143409073990966109877632034439863526013418354744664784715157263722241167962878018339540017730644279713940196667075873826581053788818861958994372154344169656028795321287809174671614238542505078569704053816941502072256715127894527456570900931389512654871169829838197487634408088285718675802227059464989023441987719590481101118792915705029169727169384381784679244615575678533459603015482694537600485381677336320045330501911290720097134629799517407676572421720013110030472798841819313081552087679792614220489890067215238476128993115299530211756077735426719977861233510496712685939662480898734754599358227112842148867603025660500414496355515955774222996141451506132281898545793920724617508208033540672876601920341886009624734803198709932861507127935121422423937623142050475640135428229494778058403465440301702825406650448033588685633485735896324309909461242853388087726168653927730953321370287218475423047021811651136722489171808882083912988369016420780007144416741736383409159825939549790946030011844340980091063991311221757851350205526098354210871301674376727784647013677895269301270558115078639240941952101159996489605759063947933238574545484792400112876184918998935602622811721168791381295549320206018015961488605284236725503444759823843528271714028292452392665306421216637164022782541378435084617334419376724548495098611856486851799435218292818881850979154485204070683642436699408077673661572345916578387772262442708188128225868133880343210894742025387767305601508389596482292954724477233735070241489479749003974017628361676052660981883513223647557936823776417096668012602130312768787065017955334862690731942190835585659360600175143194257327666912264536462036704692658958613368257749511334156390683913541791550781353917096296414784079997065323798558638929440644348453160355437238195485710312836338373160485478560509423138602992621113290728529381258964738525220093307864242288826857126881698437803174910004599366743636957659162670801297007347112077341653891706157435662845682889033535597120424648588228508448419861392085915179244049287676432864226481917862419454113962826809440379325710954381403655919864836027176984629479880153260451358094203673931532296343919035550739207565069807243147500222469338154622009269583425103218930361835263313794051838181939706336979391357713183051260448264811483251086812161935209573952982627155524107566255128043311660638989297463585142416451682205887671442106390505068625692078773651928793657526181884813770642311699286947737727963209063957838348502882426278066198159244522093490777918389527362026141607200506359487188015904362715869994171897218968888547626635251940911106791538737917715974981809481731385397042564537467216684690347999098469358307200550411355873437889093332953291142496458661450214324001761771443303481329913091702934777671079325622002548789980718372052221051618332416560151334814049634625961806430300734165929340730990489033866869776492705362637255954463695851056349607848765603585828176872203258118363099452014297494170281145012716742952829870259151542627695732446316848737557000409529026489477887888313543816618872031414047586012238292807632433729541160953146666805830398551857409228557668113050481820836135965796959676745346342065902095567526727855406084190679019891733361185349615758319033294178780354487825885596556106616882566704780186581707976204032371666905360055864330131229511207755949907565142809725383539351085471900283705513441229098484916022612817683475387186433792264203517350202058965159186077311804733511045070901726597724862349388842362091583492629451692832799532350721780684464738393884243932223430020596882740635864683982818358419332561947850262106449576833757336204522135041783298132470093827226407808904536913023511273851101848426201432663990968313779729773933802446602748729217266857324994394455565386951104148670804735270499924025940994319767584394958321112538309908771150755019431596229882093797023814598887768927486178987497562339654485572476277742187248242660723479434843238740505044470671030943480327318291904709581480217547958479691264676855840840674184497982752723337568040061261248980914487149819414330185498011633566805284634244955766230582436606473941354468146249161050324770753541713065766465451494933891683376191635731074178487727492948554255769443267944798827838357043626217578721086267467904896372224626402342909275555381583421548933558643847393310796622225839586366043058139662205649186473681987856887116877932177393961732492604204262956009060574045723046423056413861465726899294417524906250707009417744298132420101905153552489711124165882015469335798123139093964943401652193273364925808197204917651132360244976509935624556636933074025031203493934832576135063036635971071533583832732697352796095017086152650364297432497649750432999949944284264773249226379634039630251785308425531766126320942533890102255656758365752057361967091979461671156342551399605793269693688052806648992108893151251194218303090782670595483232772061633219732939477394878853219301490564492685211009302104085753182127565549049367035267618304760141044593720237349723333162816093719967963862841357228901034016051454615078438849391500040872085199762885511581266238497065635333400237957528660452395099697501182518756471773187006655519281115584706446527483888993245916785024138179956358491609531487250679472687797018690866189935853308746363785380353119459085009047978204349342276856389343382034743313836679957569391028476473090444684127995844117213778826048031540685482500972237576226602720928078965907473075584107146690226183451262916030714033994737411293842838372740930265484607055575274561733060785317846884537624456059789392577255174193371651367416112564879022290862615764617144099586254942931770816694504346497804619756629947613379503925578292830245351294128879221088475787484730352977619969698084967293125764286972021049108559568526310082761999866977777846599715506562889904933485579205221662818203458812163176065125193669612289115876924277935975632776480141119937366316046796170093672876147591150766426166565960872358306505483300212628036851885823244565167616821934343212738135704662123881224172915979656460492161891042618107574667031516565928567686741432135992398497288793089950943639602322156700557781784301949890001993207323444911008999221111379581342397106114358702956097172450451884222924336981264876782017695937108602189969645316545786987863265027085431675004154035043473181074188840653558254434049945431398055345365437718307323855160529540171383142847526637288347598968685452557396893015623881161756720259862907569877371076745819719816320542952727975173351381727880291141978899711444370693650015127341505197608083633213553579670250116185735875253362639496006778256038229106927251237292512681733188824750502022473697518851175709171532294822894356128580027821387232794319667665676378222289050856523865348620096913353252533371812663867849468083648919441600988151153117555394175272148187982881762861935711890467102773466727824799920092517149958956879830234452607805209569069440387477129074667896448141373925302932440690566813961761771082814909997751305707993482051362170689095471070535353865983567519251549034417749823885698133391982738820293585148227818655056208254709643610834303944121435341170193571491499448273917901656741647395725491736361906732837316784588652057341675194382468169335159049852198972863355139988038066529027525312005114918747666175454118619816016663604187608218516313050570848859286058051949249055374126943939377636815415900310833209186125785418396655862657135726159800268601907710537136596520498722296429228658596147785586261965664592165255880433205521611268162733360137162501414123201615170315823926135133432587480351576501651406184869813757686053326181836556378264219316022225611860024147112913238760604288095442356216288484683340052284427789820126205454871271748708650438008371681599824136303566137295865648046380414471735761730978248224466338310033699825039814319874283571293452672670765407187418698162068870287496192035414862496934904264410248772348965532721332428523520735114680166443763499986297444320851699760387172327212341091609873966949705226504412107699522741324679590664069595897012766696051288835696953282204939989775555799054442196351994786438466850235994392032185355327366327301276485677949978187669506443681236292060411699431797150005129682749082722888778107102201612384794645028497960791431101750060271840484344154712162288505879163449252746705285594658818503131942775840181782555786138152702512640366241807859079562328332585361193378977809252589366067584184119500762836610014004665026088790268146741879103652696216593121192079921881170697711594135225290208903583764546213695451314243436432842919643884861662339227503353410472502379135593368304758977834809119324336749155867656281574120994723195226665287595394623318786716660401105790106780346530131182427657833421344586038089791239266394247064609153795358385006431291389249426754939073604193176794601535213612825961840104361580633970647319270946234292968907947252398246316741978602855010757713367540141903978826481990378567711468736848511533008738884538235923566555837762842215994686465873434621016179642153147735898425755802177799419322093874396226910525819173178696288338628504702928602315448189636350399422619958319503705244259245687537345133435043721346921814976267308364279819953325449411355143977003076088618037965381356405663762935724184465928184380694774924685246205864026582927137960931457428938597990935801024873583150768792589659206553179212526650096544490895045293686376873779136751319885809482613398545738830801213786625017147924022793016223139832986570094090398481335925178574492152484832524068528426093598952513534135050606135376104079159152966301890759250035754382626224404416874065187190162618850689002876357206245800062421781016303852138648162587808887984267346142477353073002179238608002287141547532799359247633990457924800556819792295339734033794246959438442057284014206059935450748279022973157482936619566295086812392549684938673825472157014617557696404081547640423552398847022374683408478014006577708851323637796913113539118271773666075992946462711269935025587765834001978006812807029959035979503457413564092703813131992733280030411216072569485915819993899897398943340817075805799171813761544253791513948424472849390494118591007251644269168852142040028459508723033008022665272367446379318873535232189778891397423079860976986797579927077738077950413025195838875966931452419223543464142229987326953682914115423813864817507336837962646233822325097971424334327491302195704737214596673787780175592213356738351068707573906158461206456383662566528643357907293122098243773567665781117755660493181975088291412535742647447574656722275907167773542613285164589960296746657453557217080594817955888751459479198404762719223507282332503043410172751231920244582612814629067769573400776496232378737220061815773870557926181171665221266827654514479227694405968138809126898250984076961821763851456255323385455778787706153907167934589893174252077652790711712109352738961348711155903543681886987627981650582327861714942420384248782759476545805487962624968360526218117447744017867925026694914273139928110616631261203747188635355152656370282408123436524104591845214259570164552991174570962757553220164747529904829661789633574106977315845450306121433244974828402422291852134654547534366136798288324714132321486285858216781002787501987196905231557565007888914528594519241291407071451788248678146145422722874490139937835762152355536364565583968632791727516276543201055544719841584858959252299242020844453222947602020957363848483034442586355818792316587026767241730719559878115272773293547309201356308228932510422606290834812343922626878369306094987982478850130862840516475718056250786896686526820882138620419230266125717722663986417597321155293501572698558478577454537572995409745077276191284833073665143304130415403149731554913305860012842812707806730603672230953246070474698766584722762933177795934602542958521491396769962173785388091312868043911551284701924314982727358122573666618980354550197385640578405762341540547289790736278256806496803265915643475030462257300134909688624073623464979613059199061327643650598053023045414448664474852945317186655772917661404372996424922094940117600421078124373707061457554201793347625827690268662233957938622576357449087081315879025525987870163635122566997820371319612298516853517709087346913703196883140447273531139553578876158961126792520583968900940512537106497075425436237398696631486509071259626417761422454987388428305571999936414451260093546405824810726608115712857523196726743102976993369931776306672832670855972725795524045879730903988194276987132211264645077488060796480494728570587823601818910968931322306437951973926104708298077970432441234315314641845963691098621993726480135994768479644253494110001717023790437954918552110617417529226141722704401504546407946381795565161138614735855374465306817390575360559643002471958485338137572561672878134720902234131991522662020101884732135870298309694779737276406058032270250648178630206817672533631901723241996557135410359136654498524969629854005440524548794630513276296559156932546622135756875384334568696533395457384175517063027728432617886992319237275824639022721774318028173958082429380579947729411461331125223408711887166616130072561594161229208716268587874435374132139104813071458484160628419854637930013425289278432758092719245339674878056023824570650691375997930263962216047300601998940252475062200547816481865436662401915633681279108166738087903987848546354383461474322704349667949752612185172350394566095630385835199458505551773337023662805520462925566637791551977457136270798196727466296201442203714039585905448775364045176558496327799536223575055627363967633134164214059387914471947355723945028953301199707305803998577441823905076602135343748512072349690461967427040719491179483096514322951738754476881012597309872403536956708873104725597892066813399361160565110708576521681347447900371780551235995341398506533210369710693225940621630657669784730265649067989893007985766316573190811994304033903015351600962046116861032341977933559747541823578239718413631060591522106483595713248109349811284523663354520389222984256923967896562398987770555782151699043434451033861860988080475781812069094564904375945580499576196801144088890814894716527211581591161565902375503763950230600563272536357086309441292199716651919784658586737182236109608486309190792026293684750756826081873784617137445423598556319748022236309111675770590684756305269519926981711976471823471763242501005773491998196409276821182072317227351826944671571190156126350680509875144027232344447903793620350689905282639139201206341811648191179954806005297865088042354634935497949906418282354203098839327565051876313116502829730450777999533834202711335595795916973633611198689493254859526867037889486241963897485358808391090349497645831279791578074672149598864904412904217088340681222969551662788663341700895495097251807172937788929482161452766961379205618432464097428569134724964606095352311932358402350306243604021148583218804984555486482114252295167669307566808887650021651731916120020707727891031273468121409385397276691162945967833053386700656071686206296809455151768155582033269661023975125023608830576917585847007346329143664123808323810700797702968295526925955591077324603982585669223335155267404326067642237886050520457735058028695401669342833491021837574578968358217884522599888078360847512023094916993280755716718380520340540879838124178410104752596338204307870943369742065578517609471551273417549254909905509889152955529769694665652999889137141509537299931284612500776722382314615756019485043064672543270597222959123043048309770016939925573817641878698941873398405670042065286396690635377378076107324523406629245071186962245009960949804150298548318888924090778514434421948212585594275423007465700241284840937791340232312074869578481840950735299714825410966995687563253700112397445763836650273599193354743560605434788143462647406068872471404124881311171306766056952462304952406330024203957806213417506331094967629742038421300397089442356278163934632812699102140497988045102634085966963165168842720057701758900100281546830919644464020399118667865671150630450575048642587071750959555587949335313071512869379503312194590117677461484935331601827698685059426967398145178133042938062669100773568764352679121085633892424862575148481048296974112022612980792535628986624427152781304753704804352610671091595356730687586454531088311828457128373968670713753998295652618619533933868236297461850368364851425505734775073696050969570961058086414063279543917227248723736603396166742453196642327397664091276779469564366308617903205595363095287510986969324106968356917865866382964436615099441697945528093863853841366347527006793584260970400609234898815648452190488569596955950973627612276311925730225819018622042937846672215346139433724576304355538975774757883558954208154918929323908123794059712754035745830620202030584793263892425726667593243619349975158536212332548893223566968926696990995376826426813163788304938603576226275492753300344515258756126815810536049989899628699808188925764745767460074156597817934813693643555676020053416269370683532660251086216276266108156705139476372244114375661351362990529456867573316941872480631939371844451569614072860194792431972610927408351387689538782104937162930177993426723489055741206730331146298644657201978535501596288917771432168878600370265269933667104225899303276143902227712141774298488577208308509271819455254390635796998482226183729745994246829772045551406803406219227491135237010237637441841168104933723586188922829301481519017919641759858793111055977809822404210856250548020915235595210330677063715822914824097632124103477222518337079330067352213925826499645352812147591468555024791256127686447144636121929211610433052173827171107081157642375875704110432017110628004272424607677431997446366008216425984124589479174941131538921218117345864989276161507817772366352808088754395404068567266279963116888139371659178558204985088893204335951162584771493254502616382672254135266716128949864098532334374204709866499832774056065137813855940040812709818024177413695495558577109432444723441480534733117141074234827401658029007351087486860771454523942391914113116414044485753763566612565697067754700016390590868697842452716967179162066017634291812067771360844975155061586354441552662966310601836694569232516437770908958643469602788625535134318254785824842108111586010852399464975304163542968359422716599335500240723874613634740109860077174847210682608810901370759980830191223407112063129054359191851413351428587492883223044600475090023657519113302407213549764735340435472490082892554986026091809345063695171421553235669345985568819623949409700846032272733001302768991382821262833972285649456467755214426634163072267129328126632521531314452684319526296097768639986805019299820631030345742334208564095250812966485014414966189426496984836465911865710209035177966573558147813056934492785361360109490085578339241573471242504045921954093763034476653847118930408166262212010450763747225318144031618880993806822078350569564374153680477613128949276262435276825507934583060479306430730954156210175041845036434392355653231238317249007260682679366927426007009143978449757484365204951134065609309053340770395120600299908408603493456502482761014013709484590165928092616450798837250588357434564061648431807628603011527405285777883339407049014888869344605785535746063719181044276767958337205744601315062191142922563811163730228069031107106883141035603682716961944264148507363112802098781863832658620086752677594224779824620827511996461450197715057841041887276918351605689610116436930428375825417710849425023040093911201584859219805321599615834452521978357763582460245594649464897024252921301956170509662284917260962171939027934940752342614476330515529639570524006244715591253640780056550050064809971454637850985466503627441340303626246074052864311210127790697882177486626818817883162619935754531015289734748006197666740634941535584823679294463353882088055188102986827865374289252318917968854963329683442550222822332978030409868449608930750689175061009184735912790951375421537478092478700641956434151768417764792538183988207685586612612959994247109567896675450842626252546620136708732864183824250495449800546779390139868744030947407725340767360027121322853592470796694715013948082908692074557467253977244238174794319713917126433860499494264652966528715508657604474381760776420859205073602613079972146991292091776590386126860490799787503963012023590187024933107456372907707553928615743702646813542398323535220057084205337722511617970662275340017646186548531024251977146904238142697176647480487990802592110877442979697729138795063946137478128564484215526913168542282731427150511164295294748845835995561507842554642792918596020987135202384096181567266393107931905276161946429958984734749415271203599196809109812222422209093930765149653977881878148971547752560184693775985192730381831332054642291577378088281628188822090356602142031127851435645873912198064991549843240467252914192047623025853346828022123465011328162080865514109420837596920158240645293975501743663695979666358134189340844566156515277696029148828292242422981924459328976221679560109615557199005362585832335637099793711087770306182644682975020398070625224530115660418591304303583322806108799027153028020010898957056214039944116054685184033266193062374857120424446399302176988746339696297195678394855162429865282762781719223934757216208019377350928574941984974201751877478084814193982621440876298156567098293587011296836149915270478886812895854920990748353450653148489391250277644078742631584872531501618922778484988976838141467813560244382008529031103559430122556761489468118414873489930602956497537655441190905435038710656857023997549499147751426319810253538653061242267396583588420061682516894595287759383298824632521189042467841563656114061943742148159729804928393851505979430201445848803072708993952024528797035491629135494828103008068338230747047769533832375657670447590028393005378086397158939186438318904138088478888324612716909681711549169345608928635413107155564372640590986172225763084721211606805936933485642876374520822308518206909716159277690079473350507154404044718832375577086487709159669341671087858482531926460117790879883899943701235837806468493512791794771923851205297016697552677524848382253124827233817049367411414594015346660070125587885721466740421873696387503964521431670366939913834453898834873911743639799982283828195242295159526334531583086000477097844888689779378794950886131065730705166516147388769354806021929323965718360249252135328232155772082650893954268713044535607499383208155431923618212727987576255499877990605382289835652833854941403652236026532137974069252221233936745244330406012104638890905416714241704184152625123120037222859777496603402356699305848435448382595902202231416876273407133914400983648623707010530206800850075865770668364110153831879866178496375103240742608377674191625367717194673443806343449182314630415528217263037433090628410036562319018673475940411121674343210879193258659477493421544867950499686561299660397759772504491371187004689344701319959657789270955845924206946488498101981058449027531659689245910739489490303063014556215918676254862116794783367197357157063216632149141946406239345778192157589348457703284306546821080803154243624236316007723021941529885503473772017744144801891272951003327881743677502999794314562068581232824906153751824227792620050295528240596759914144602571392190079310436129079092944418852742316168033480553491717913628982254735215920775454965020046286275944760681390591334724279349024449693939681527689454814383811459435599364097415467288904339687516748503233836821508048179409687784743898482911389343869340428468250131617806532860709471570628674137209252941706932430972404037529888988152027772933238952212739003868727675866170774765718125931319514586656450516831551406073046174016333678482014881675704954605564774589728621887027497505129619633045681328585628532903068296170869894549169383192104482259532354258472772838259006713522096299092038081549628490260110276263120684201304268653845615258221516949062771685653771198289409491047471580245199193728593186977983910426153403285922506156744782019887128805427991044772136929075569397854640041141533758114944293820867466393805464861394370693161270319532552205710318802327371007418837387269457960142342880917509512591193472320157881538648205480348066577480396048142469028850472530034842179504789272516994284359264397865682587857533997713795183375464945343571912169352787835023881234365298563447187740751751878656338234719716792637658474505990403874043029758558211579832196425417114907037770896459247512642460813038466416612000690032105840602531140342555552014350582210587058066944565992038738049325241694765207554702358140707582918143361371541035212444484129242538639011934748598169601417455099683035723734729116907461511627364967713591934235569869514888273104796057146972031279765204013630217673235812196871250973859737637132720674216740736535653998825507496728405723276437669202841743322858052111403036069242665684906528471069372141984890049209199311307152502014181217817313782984269824621200600441890892171425378828455731193680129049066920738580845183956695147901651322166963438135628061815010249434222407594700977258611248446132504384780311885191135916006213072030837778932636440134510806473868996855176828182790773373903898267027146907272361786156827469675897252774536110674405925061333269257596877750886931575611158638364034365869062653129211664853523280156741376561312819403229290024896006134016872354150215323782581686234660168512157370371214613952296212174270140382400961445068907496909132042072915261313042615463286817067296321206579907581510384698788926659747307642206237809998791152585223021907488814630923721874470917785251087613208671253258196269290876343904548803685624293508046353115070378295747473222149782805597985848733851997724004702125942559794039702819397636340337677114410885617202545352860216337104947930957948873669144507793607410628617660599660861522405700729116871360509767308253756428876488475268935451792796753890256264428860845752775055622014927441657995856823175614355709749441173226648871876506103125262602231988446820163753275932181596646198950363363209083184220031550030593755396645432399878923601709764332775650979365842731918140355581769609724666720063187252361466817141395907006260728712379540914227447340774969751357641205896806752590694952726032886989476712780713976270939602348821090490564197711093850368604697070278963496364979830141176879591071383880651287609909042839232822730390475982946323269892495496093271253056606780101128537121382366160110215277939278197388775223711282951232737443584247676234724273199142940246274713663778335953989126335491912674347466892930634005799696016520277330669516793928897079910234884752061147049018828240622721457862762571042132428893072073647099147543656629928226775873718418668794961082606252868142149158023763771489047887507817462408563564544021098914082792986200184103942453944986795165961290174197308409034089407787658474139544005912964879308588804293632581733829462331066873285275761086723158408867659930329626617182219050595711205840115631218727361168788251739235329969316216783824504761100485644847102620062435029290742534575202151409211731120515734110796386271038553525598200005875940496436509866024419590810387149686935697623005516285895391922855632865386667797757037058871715123770804251069191761014606727128542843925138930484725615913896123815626151572551219624911519353372900147967148302909402718551569451876763310202039324286748511998738255124284131663632164143518969257295057272482245834725687940065132503537145955261317463562753040194578126758185224206264322005155227643410328212457564310623334335983449116986584261147212027688405570226242021981773638031192266902112867598788311959632236565959610032198106454433142816202232769608037386489460239659752648509206222446612205514732441111697229678996516873702068496763817680688710211768722735501844651333703049808278724526769340520193855544631329113411718240736588845282855355181856801779681530391012369596299800621453011388628006445049822806600111977358668626863280921477710735463942494668141132476469585715113913531951171015324605640236951789269611440038310600805027821835092575171947124839343282044940164315811543103286027754099221044646526723471859821382513735676904959600959460553146469233724113166721873604220038931827590527359226326646317025500774423106471712646097280101870752254950892374997126541154709754077925407746315404548031084784921729432603170603124366613801004956903500777764496289248183090623308484351542369289194233488996142904037458280741382966977794306097344655470039007498903643007066539844199279253653091517787499598031185880415539052441691231165785300171538993927166889951094796160859084180703421902511480563193794514267831520884705468624771723684037840481842636004374471992776562173425642082794817583656686524274033370368909575715083923682482911178940685133644127741869395621743092397852411477663023747570445659126929267504895584110145561353777591956502009995952993464547992309070264697206023780010621357718897248533563341063395505569223910255622829392827246899888788744509579418563760240861713486309463485679345939575723827726597859511144505198351848538175586293666362257390077056176289310108943894066480011528537228677135962489103287811131710847755216271736597265688654906079605397973549328151027566724022630844178397255205162597632824684211969120033565817391116070993117156757185551005288225284332416082508700723022746034181332241051415374390310030248266419413335897927582196336671494769990420298358626832007213350546186744378582632924999525019905629179981790541581554048343629333467321855276276336056179003105136652298672391201684266008018430685786150730098543221823323128521625193289117362795104419205473667092213866357353906670569482890039617744247623125390514107183264455244963962303650685936432014306713863246796322937731009296070402448327633013682023397409250785522482243501339855564910771189456653487992094109299456088933454833414668069949892743071081186079609434112448832974331832580873701102689494139235182075018211620279591575515643109581315226102740639328204714563303228495920951921419136126818563322611621162478773343457332897131463421073904431743951024791135927495518807375500957717417673226898440437573471477238748929041436885635220316448568578559589443360115278106643263281120145634795461207026127964968167755703562194263593157385852289547131730766618006744589552053514844411533071802599615667074344618697078871291531811149018404347594650033269694446382975917845849502826533001442109605643554478152824500369480102765759520105623362802501508668939817118650220230416317208451851555503641865331496004776799314639142880245916631123208219434175881288353663754984181726746939857934402997295863401446051402191524851208585625573730518970150218297574860550840185606273290204854214871428208917360396549022718162685239279634873280174957411673685855584126513906770439013182707656761205773741810310563933350122906424226468776034352748855723875620568914471012954542848667251340075377842622555464400052401626338970938147943385758925764686939393686135084485320169050937640962959456394977457228295411640309269612437613434104076931324084302789108854830581350826352102303515736234145150833520279235856209153660207884817028499855020066979985929515657521501338842382054317907454550372993451100254617795510758398443120720851690529503005486541720303829773854867771971962322750517899614789713272112215541074676772085706315432917229049928947708033727410058884529228911555209991910989477539027770536088659218806613539795861927645425951242158733418897810762355430559844349233170042044891379368828942044529842580722548556206869557475157241872982855518185983336876744218459787237454911236956042509387986896724039332117378721340024017781469117909634298018748335664006847935422461564946873314863604819312959260449404248795676654741244524169710323406314110946143073781506823792301230828022276493518360597600018447210657303273538299132510831918989738350370678294835345891776518949396679307600653004594390572369755319953600660535441273013202372524929105405807487404205414603381913070806623463605342774122995042278099473721056357743920812754155815826691969378745653373352783272097246147292514546945978326959717372808477216056147830719648573607774128770802120345106510513316406585424348992982897370687472277783572261682628863098033293286808231401584686620959620738194207102933516608450149425300030490463484184953961797229785728837301962902179979396927733322043119451132008775540197622180151243635279429867819776434351887279066947952921513141822236627273389811880038862199366661515567538910090015003133365609971876787591121591815728800538256696377928024747326896151713198911509268118103937141541089101112393346675183108376099446183369963813068263260367527964345625025052681086452509583447829326113054149934068246455750495636212701297981616105569826880316726461378147946534370224063661067667857151133845647015582960293207230977021053518529523375175389615056128942009552408101351838387227850156241626558440592561672276959349383658177869934367852905761156427275759006829911508746302098923727715163914701283001294164945090341163348110494642650731505573797450646328671638195673598957821108954107486199388358806643746328344012313134781126994280783511364142432169216630179529828295730291788916609033801328205193668040955098614423867051223522909483818053906019430015568788358858051687320828264747771549879725529521975729896700012397337861523400054501826552507084594821384288573305967807563656819413202219108171056409363865728075575667362978951502353485829717262012168468571316509810621192952875765060215728559769036906856604198467498508293131061215260112187492008733531103997118771492824257170103613542082542954465528614304244139460666560063766523028592161416401271011526569184115809250987900231791599284733961994779928949692113264447522478730081240140150149229343931117772213150750347059623865723218741965754465545982504177757209698439334490185537952821680012727946633534846122878334768998260338742049536791289906843704338971005186499188401052852689337498218806298564153543997216923967091197027952774944303814277266468773767149076922898759212889805626017414593431643848516460792493202914967196035936348637994468533757960065126140617640888333421832399123097216586947168141856163582524307437422958098781950983291552570931558150596821172925523969412856507612861872376956039986704703295982714235412108801959184793544572172410218540324613264391647266581366676001744380053709406455959085476464954622041568453115206635438443721665856216081408075681813204435755088068470878662732362290766333700600997260573464846749924197096083259285284488267938832088470866198743056961580357039004023247321954161664601707559790078404570327706166827044089411169147364835523711612191918164333990457101273258977684199076170885398920516239738164764114405873455057794128550848829026513004651610834919025325853717064111457422531197584666621526930231192084756207735668792320067023901747497114010532175813215472940399585246314640551406098143880959191490552035633614634626824206621120111543628577953469782756358918525047816349366053402847275405833386318487099657839138729528568413447809358186592694780498751522851488858582285927945212196789480008048102821437820748837887275149715155463269886355615021103026577566505145343212509397522075789939288595833426184513000509290118684737108215273575434550198848165587889228809221568232463344912056357425022434093819939521991520940472773889976407254127577445160191705817723186122172190999722874360399679031967933215284503389393719719795470087991528519978739137785583481560107190914170585592081011367644625750885246574135183644269841274276546732560044979025628648694875598262088639363778192053017962889334402274506258209037637795679181101544113533794673468386909523783127869767343235585366102718642220431755031546424745234613909133108844778542835161907870654613974860435244262688879122391771162168191531108236742601848618374334411181226664933923413049986600476621358814435798313770175380428493064298872495257240463140700059591732068180505468909687431574469023859718836785440750164191697424212973046074630180133099213521610059535052219233414680019964184467085070656430027266509021526357287184586774146709266879713220591937705043552310217398993321745620469030525781649714010564774565258098104581320363042976787945230550121795373451350095028249868797982138884875612538877631925749366854466212724188738077304080271653450015048099866412888053767606176750461434553234026551978773440629075189541953608524291113426326402770978969461426503396670393663088052590446082035484311952104840438367779809895267897030904904299111134560064234136107053955622359302475972566762124110326953409153138431772328898766681094272149823003197462977394892538066239744708404368015247639897897171110295322774933732276959927139696184429730874822747500396333191875591405531916258256999408805574734599469965677237561485948710970078063810862323149778429685302410735941019819975720485343041632819469004735474588933081642087863020906152927838892538088603602483537380489006277419660758801507806838064422022741032909799566318622899103650362354289509683212049326811423058338032932110091212627732834395664550114135591478126444106955058282541187933513335011766976697149932664504075568593319229368320614244537648765464201463942969685710946901661623600261974122572037825712803702980947951136338209543151506556295107362258958584183017127532954925841707656033771343663185655495993544806547672775909322967927717004920324468909678797564790913745021427339461339651379988518157443674888133902875187026172296676622809211707207170068460410958277120071573732511141408418770783513442410779741868676757762852260159700169476209161507026604067795029361601756503502067635212637565358772167868395569982841781388068142565862628281539813849579694935256900654295327617577137920055948385137924605187469078013589494318875626386677574406407573503744706824392188960343296128460956631364160819036447938855695251549064677709690847873486506312363734115346006785245900298567535124779392197854534240439362990385984046821357330687206400153165130008241253001276628931250658725264756705512407970430123869813312790565751257508890745756809440233662062310502126307813335577777491840987467574901621265518473245468801077223872199277595359417689256410344770987076959375641016497995653048805920276447523441120347354702892077068883181983679364415500979648509367684693056410564057261445891951703775513715410531146645247463234717760386496260239389927350498973532059837578790647991807201015414997812818712942501801772996850363394845040747111174250678968155887989811338512825370863786010912156559576552834451207442576741372012857181064626513177507232328580159955304084240786752133658230350130234315539237087747820247524762988541866685216130812970871767544245625074766116601292960318377314305843614652778481296129354191613071527786898546185303858142073523768108064735171910072607645167448093225626838037298268174092965505394996622139936705526923335298949055244869596854903637393394524882878849106167461211641922840823325504265217477225932556851247684983328399773238704391734480668929553796830974707801669117635261682019967428231867260160404839062802392216208336175452200946727543930856586751254978233201188929041380004696765367772537700662458328809320425533603388844144097334912578534908228268610501187282221849739662239127667602471850815332373316842517369738208396520984106078681277525449119034565832276166662694528654247911630194587234179743854153486590156918858681754219852582208487786504243205650006583775099915165551226427030668115881369195417087158815198841107147457444103400338186819007677636549553219436925641522288092400623857274268232148655470496842540914607033606876208227625332149824022862240253643124207655996925135235318067787856435425822773917706173986011361569417523710727439625400066382714968945496294380722704418116568974395862929836908431163733268103952424602952623553396768617665134898188762748796205103280472790947962498811356871559569362181435185168256408788215694212760794544476262197673424715564173038911944014832155374246714845116444296743891385167839392097486876253279393348843253377223677292424116755298684581372741836628810477814030002422728246556494156362205183520098916455367437326435354278703364125465455880715542086815664464324694246156480000698757874391117330920056087070445078879136439816559169763714073377826643805958646825042909971248346790162384505894096666279756801776459694962833495689506732305987638201324810508607599563741024052648061575930274945053568409081141725248501363372077032782027324481009992637298404234103929007343454949474643512022504455508221399786097322653732728979157451050821890592506700898786112213437256712055188218885498542083496647107531289883761407446082733368469540037120500480393644326017326346293484843803951093549443143647217608094481251459547314104371472941799266646894165933399532643736664215185138222077384234025380106427296002285378341024140567724137839034837105010173720744691446958256020373175652373513270330093474696258650345278764485601200526161357686413683566169326864494287106984496771105644800780768049357420247118763957243858628851014697397692861444251049865813834473474740498548702545012996905162355580262812068154899478557692094746628410875293251818943038669630746953128222147412506215531831569194748877221859105255653188432102062916763889038729851796508540626810659398153543287398098489872195887094250120326745396988456606487136751677488384421169329280125414164595439928576333932566030095603751443487555488834675709704822963865276744522932908371553439412794724162597331944452003606933256678195553371846651552309684002474148922339075491468912021625233689528658091078327920461477813832364755796211147866948426727026468178196682393248238501948114038200992195686372520539436547337229421818826901538531012270742728369076990956248825862414803133441623461074432061506500525504407913828601268603799478840993371606579075481070598753460351309067496103167009061240200885679282470755432829028323805993020756518742544805265560415999371858527678280133235962999005143961901940121856618898850538419319877769586656611024626365243368454683046063046042897200400355321229787644990004999235229185298044339625726941570600405798220378927583334706112745261963476807567656790180967122572029151448180480330785351016885063422826636563581727895612150879724763626617193108103176240090150446496108421403409387410426296787975549099688706094726381099011474673081144998768771306233187280200910998097820873249170993057348665741912643753381286497664558016993754487256520149715760356940148370605182257574059197969055814087982695314765294661756130812979206535945678434023153203853954949465259930230477851683676915730998140388642990732772255032702014353177885503452511851454419046662691396563703071018968844086428211180763106588204036191006311861124276373921072349718111940438711263541012274962659442530407730773393950618185288749561731214080358266489119489096515029577508859031242402475743039425299338633275709665677223340296051255293745712613002554537268106719277238852631116205985290745445114631284938008552806159800906188261235709004175266901970395796403439822056195914463450109909500329651918729447402353764730373104672727380403910602250509062610819373435632510652886124881979203873929998741780269118005082783205970515554307737112820799657790064251938964902571878513446437501071560902241773830220225279497072866563236383333429078009379307771129715651424689599883003330029605261486459706684700335165940869687016628333160118076684666071578049758108900483356617854114636974848186787402665993478482043732448128949848322946290571295324517355378373249729031256366360956185725057985508332895883182460389175785518443803738037894228192767414535161140574946488884616352660419197149474503516960602971841305595936445000699564491495231807102664213158293100325464302792802037165586006771931234484684590982265321846970674483010986779712313637937782496401382465714711992661396607305012806241652327468002389848925043945431666903378783928844527681445879299668766659796271072666475020889546209407311698031317080831149122446636111336257794284190858308931658288248990393512784528650665321815482841951253555003500354377839425440711408795705046316870190790339493071296229957860200207412395876450324065518728998136903410205788287112058409115480731874580518632239548034043883022220838274789745411165474277784366593189746037720944143256370059920484746610410148343590635811545615631664229778595362985581557227036518617094175336225838931602259628634570229931719243492912577637634386550370824175079689672603008351490868505782393593325739963085170048073015637908230229230100980877429297634467423376090553816465040916699049907219795539403236799096340045410325685230757899938758487547289326428862098302337040010514812031530946732718172279108367407325548565730720785661108235672337037869746283811497170815213449060733651423221461018147142444125710107597042117134471948576692334573806189856380932454628873468222770134768562872408965032277064742237103027176828517779847992311032130391481550346898544453613870652349760966123987369144684907253283774375515875461851638532218759393032993954629159505840788777730721636741109115549660814019050056814359938723674226528578807273292146346860838011313426524149291160244477863001524206102923755225116246825798442645604699278224857260241410403536646215488317697012004993459875790112881990847026689582868506894645892559892700886595502356876367722776036868919365915211567692661020921410274639012955865498833272710505493344966602452724795328277315122162906351423684037053099285726379285100206962918604240512480631513540068800024493780910563973301045361498256498475264757662848309120271075247714359487651686525832036026613827692272177286390160810066592586852005566698563134867310396064318717426355756491855826732575663270012654954936024092068359746496747316537724931985432363781216813061038204583575606642887990492755614141544421513590849552138899319997486698578886365768701871161367465529903756526222451746575804591459523265466294336077225386200384098669777835710120235890422668730367070726014568128533573888349292727950194729970060841678371066256779883321588534947108826380786161216610297132701591529861165836601006895944612691816372677767424382367711463437750201633282100026325803873873722897840429641176044441804821836942278062200560477000744602222930005009425762369799274220787262649700058772521487678790612085002573511155147180143008903675335635768155154179953800147431794303895271043158796889338146140168748565457035270304408448240629241312528247090155542844116739789144603355455834883054715166042304661819366219494747443051225797990456205719432693608188476294634454182159801586516492370409526148201213090821966847716488274888271003938246263676614678661771868460313576566401315892743423785287257569878386930577931954543203569726805808595049837917933047945759004858576274907551820660293062459550190049162325600120799334309778055405461180950102504245803238610554234526970868575735105531249596027540937165759114849233433818203461488780507793527375182971111364284194004831197572005609563177294494287336515737644568643324011544318679184989110007717096132514115816661857116919291345227073038749174979897010251724194299118815095285479343890572380037444519957311494490865555981554149080826805633543274214237341123850725394157010154757022029087714553414113613727903387944846629185784992069278624887852620093984070897609389419846575702827481783009966135213500835564024700043546004963734020558515230143384355013061512745687806764047191590064906400410624995533358714644444459588631060859717261197927239053484595053507651013541063687873822278655500281061938665791790993605529087382494141964388532186340354296852208800512137172267835442689641418547408540461210384761147057057977483579722052526794783082899843621672764222596511927123511047335444435201522902787082169856190585308361872046239192458367088402633783723934109534979130559239008190097328671006979391812391294309991531284794781355343516315139218723737889647714820274102908171205542561705490362381304842570368275713990582819865858998365822247706974161008122806367270435708691644378793464609723929907997876747965029185013403284660389014781627557118880134075528353879527716008239144240773659587047684091253265579619653299473904369812512107260721925931585174693433857392890046380824794554869169976622542405801596535392552937601963530690844300440656499532198038440324448619728955071338083973807147065743451343772771077342095615226940984887604483085854275283348013482993577789934934425242969662027041875366624318333322151648560060616426143649639663245478734182803868532034607701556440160895754750988523305055497958174250643241704668539445137657139073825477126875570280399507096562030992584418143060382530439298969303125873577935935183932839138361068099275517639316249706792200890404874099584556823205859277757664440062065640753745070509508078012220109196047672181647592661648963987932224067777438321938986467818000191605391304685680399956675318861655552493411223437244347479615443921804306284654143837382300148297883181961096327002702586189454745042177300782107926860096005134724727011238466813548675706118166717760934073989888193741767116865286712251389847573843049504685265617534809450759102330806243684305531999210745204149147961638197968239114407535814216771240532407583087430801678571893071988152030778020019524911427385051690837262729300414944969700158645508832399805829801255911935053168544670333122716587512689615431807823666018105133925729348621936009634080330054353212568876516922870890268693210307581269374005928790476565458803964097615731831084799322521022165614941562013354153118915989182758957003979005779931947845662104123640334006498193454912034138658184268424901209096172754644336578201326237212467083712533560000014600367132081171379918564079153726865841479824609026883824790497657858268534916645212194095717484960014176532885250858989557364646672645685671143817837177030162792359149233000138812984590510022875686494634790967455164787935318763209786213663024581261850281469054892869516133802531062010076592446818126098725366858654056955745254864689834043786794548935895933876395881392933582847368564115098006140938931942205513452741530351456683063083617045001233772552384989343216000554510354280635324635732406091152168260904481010363346740052965796661208611065972065267935061058608435219765297219490402419093734810406256587309740066008902338399517660790679286803350469308465230025644954336209178038774183628053347730675681145359111031725742403418423576841259059425853142914531954620634959363328648001536871665474419694144208533847087687381452146806941651501118423637815265921336385466220858353977801524065678610055596834888181307587778567499691054210193729282599594721931368219258324866536358925555060923240225121129076743713695381576006493956548070684469519600294674986142599337363471327500023693327549189941772104488128986103482450363326417447365756319163056813644573728416429240395061757062210212121261351497925593964443390681477690474167249800282214815346967700291273923951944972436557857132139895572269297976254406448086680872010381885558962812103215419920358098228805483731745824117380346655956204413967368949295696940635088142044345607073864953842098218178668177908778317021171461898461617660178076020356571667940979523079534011457568311175045842453050051187450240045524269621971263316857979532912224837145184205036931873164474580816395995130193346474482860161573402517485578580118495604358450158272784082112447525667181002981344031672579300652219967739315074607890398710679935817569800224535596714530152907679023025042813539019076998433452656295293978751321525595424844862254377564091478383945308122615274851845889862572218554862964948985863560023461293621066014293188344979152484086384936100213863944192757242590877812100755218554543452678173234986130632086935785527290167674097170917171722137360948162192461641109741260296175908707909023550532290213781136701548141353326564318972453305226934828303494829620447081010807537200118964198304085122282961542622194491219738090121750990836392015687477922098353630913648520748261132478459596162623482882940498851461896946435519791588645945789637009398972704179460409697343692186960886076757688160662527345800362989734994798312798166296649571505169845679597237311391161687068904118669950597543137812730518744172347971672927823647992480375037317475725807837941923441935340545946810357625595682557158625324425332906507566730135215174364997527263398397863230673138257834312376736337370553686608471397424721337321749944379325205008327767097746438840622103787093341497723752804147199064914541040026533422532728886480706473871851833070854751937299957901721842103346806316813904808577533898543204153784597304424274125306126693929619759988600257114278255121158671616326654902317730563118695513064070733277850226421191263424725497420213861181218881100873773548726471748713822501586087092402976039894506663033786784190118197235294542358153047564939390819877078093759631989034339102785296164520883741586092809996447534205962623672693604469383976870070253940447956176432571075040353087015856811783962677600115423295784955998312012873593737118462067698242267091288675406415554543499349227262070410990815101672183784526608897266215801887251606248933065424929400590213704314906635131132401813534655184162347198518038406739580010923076654000316897249668688079287576289282163693709237580678294640855479861518011698366536698950817950987788959357491760464491017222599722853981129342699754018546264064758038760392147276010641455927398828109084163856633730560511047195570061150885016560297519433671743292148788217186012864950732405133503766661942835690939216279790470506012005697005418051502787472038316984712947745088926785704674473058883575875669236904089836710730400232120654277699776254909967088542050744960434429309928466726300316670267584319033040697795035327029625641936260008969982479109842196228692842475057030395196521752899626297978102181641509908032238971042290597497770757993964049159143936862007147843390032618059317981221423592910201752964988855559836998748703897389321010372549169678257735463275188210602721462887864118179152083801681404610053288358576337890197469628033564976513133394261427107430132348467946152271676125868682364790645314716361905791329652186498458872357572630647103782375328070381455672250666819062261054187880721575820403085307763153226699275802353315409008503659741490044273012658073186775606585562984094764942602887929598208878874189708718798202721853872601870848338677434251073240328752086842280263658511582565398436612992644080415574072542852531131538752499832907909900038485188157714120416226807254302158123684394031415308314534737987919348944039799276170034111523393967524162335961184068932770237863510662545521412813283622680979947053880164995638198013203393276050107821478298047806218478332700735923751963926425933161558956179051000496752824534835991566458997560292649355207868729770205242302679143979734535517931020066265081831450376239295217020623333019734288280221570062824946665044819432242048019386082019111568068806748093077059758290685540451898954883411988771749529641504807408085704465408718369379078441644423955218268926756377879165297855573850553415345207850223777872922930760016921481648478245921531309252679478614492391627007330004017926838730801397802366356727944994319427058032078996006452718230191285939845324316727351767459175568184182431297337703298447045973366992956916135361229986024408672954921819609156099886348614647815092814221283608707736186363916284826531722481852640186984404574918560529587340506082422100742953794199341130276729114834854270286415164752802798512042838857752559216876820444590727476102647722792566050491007702728447705820181092271670705743059538475629431981463630189027184783201897969459320740292121543457404029679266309480105810484215643530338024073992961115025822133399218802000852647470934029901022115843992758022681349909903962181461549412108224350407151937730390403414688294680001689524826334453481091651679702222968590359740437138134315679660740013455828925159249027984523213461751845332961496589707001954998952885562218388317102234236408721715488768762241142973116537578768711019549989775654066537555627706312427396357071652235675818707668158910141316111568689828486506868168474117147150371978658127749512073700197101956171551115594062905728638413561617931786961941983047785123341882345975696063843098694763646679536730292030505295673561092798365598761752203140754154042568304928051476735562495021020895604897120616937585194711294392832383594852812228454091382539296317093167923628293413651807635941297544971268325874931898339811837787427915726155145770126197846949984589683602696932224389321091274825566367078514782600144946566389001695176824339179717650182561076303952184099654062013576490079101025424875924389177644661034573733133343557133860424804451099006408341317190900188349414652785772694050457791373898429023458397803756333733132296283124030836405444404106819969923471375030432626541079687574834132708714492596209747842601079942285711987154034851076007418235129158945420411045571925808313854854994118574833596966574143681896038788614326110442410241928662839445054744349917912059298241362337800631257399225062765815444091915760043352266662101250761050678893198850305810577681871447693554532630537168790731936357121500492927529046894293639010235187395219710586578708427162736228966962034511817162947806128122979744707271493736107221293017267862270100855727210201454660690761325687296973496612840652487963638363805254313314474442234361615665755359871100620415265236861656836530902824060269153659574105001584685833022837431997823863383936294861211742540335169530551635313532514605704087282509538776733127849213387631102047995271891762764943161538105474011323218411280048666216337266151820262404369649154210696560240249589483770963531777414224554273497074925009920448147420248457278900118577205925676169637882490384135244639267830557961562578502238159013837241542252649013900542561406544281122314130857182986618339155476434381762255521427430820155798006766719197883294258986437636970841542049993187925734456060733261242019640134541999490712632228920702864262176620878649308662026865477761248369401885005881434629911957724222652290791500631269235998532160951198291984127476692309992544767580828088365089667238334054800075130228383778811832399549733733429761346333851597932750167075678270066091115332103351391290209307686632230644673820008708905222424685798757584899644246776210701579710112343524662372577058744683692673669482488829851748895035552449920321187536991506464505231582034544593170762568659403777965223373006553926752807291993890937906980733632653749633514824086385907176251730888091428257615265543148908442699213789125839479072734249690930978761690733754614878568539928828982087374242005140743661825554150988267294802706051219836316466344030040934552231098044796773715321590408809608105580982252223560439499626288118800905431625546428758779044651589753765588759584858699008758375550344489235718463674352424476700096844094266636507704979009713279687168478462625889475740020517368464903434009629920429121826084533100150171605420888162031052130527641179135813978977556646289542293481151930300812123310553721645838730095393126370317939719501071761185791891133443120500945175345240018385903614038135115712778279627581410000309404833033911978430280242789713162273783166756403913136479364229667603875170693457942252146960238580226803677569398830257237806948675068856815460157404585024767149671894354116606135209717015843998940613130994356626862810237740196578188847814518161087781100360885722791765863235493398930159112385326925744508280109416571896868405106943432883952160803763808195724298632875993686046929811235663677678820678805673748738118870977980927485372364426735210836628130763032331443195253319290887201162250977714531896756849524673012182828594851835715265497474704687400460722721804661783293440530741332039390172771146542302691834340494490200649701680334089240699716425364006619773528832911721238600785459467691258117837914579755063248537935303157407814179942309803745577104246849998022093961136303917388938284518107145618444578418446383633800037772110659903046791510915853265304113381879202102200604784771362321806815087756888535856625913370460077320652465421479916032141768050296645490738670980335615615899199108017349323648630077947600625336595393078768256362390484232789101250327527999476714750853173738176433651527539641998656316780194451764168932425546061511386641141716496680608561535535637983199761715073195641512064761186373027432911608204756977230628612256706726498647379568653092318494940975152122393917628623799073059560209748063189110708883412975893757569259435859066482968985689846891298187922957238945934858265957633447296384450207134698198972084365674107339330960069348002775323087036445597613085275662380297316565433528267613722338424732539638890655917074267799684346507523588604807091187564730885198390509644097760504763935050819667244617062267710680969154159184094494690618833946006775161433719806152607428742219391017899755516622752975301974152184511491853733402627158113673643064976998841822680040055255268537574737104237749328487542153223867493130518379328930541565928062121059363079140782169995153875579619445908821984575667019828399768582001139275502823336659587519628961917042936868987225075023976241845366620304867969534508563801939203579302176282995217348743283570143007121315609269994046757346854330634900755853159497938583942016396140897860647229581830238398103068501594411199936842265711176568814220976289407494112539699280515163456109506914530233287294694279304693170556871228781519066046664435389926939811733231597949706993037816544547711645229627791846448727007047324225881615990972697536181473855335133588996566481548316789861360635171522054994069025252470493041797941030924851364068320942079136048009751444330438661894975938634530519017196105555606692947342103931556368814299550905841405355231642393989751558287349843423761498175940949918581062047410882381814767337392677633410760109584914025490471462859121323973445230968631144289293890729355727106456429047560405296084104863398132825622074559232515475877118908595704883541745257517632573048311655109846000601636648380764201765655036332037402071598257191032973297008115153420515125956203118266680742543017643472994466474020645421851772896427862383565727989701012078464722396550564395094208467445547192380814661979067251800724176829182868179154650124880498520285746653421988375354700777474830123795113575523772397643275879554656913028970465625024728480435128156896100927421828899400282417449070807248240380216435040377351278815770712429706987883674173839280314486177779282939487409863933414604110531305135849161395443972885625456488647071278266114590352611554448474526355784468731818205245944308752688505838006370606187983979191555323592131915785990595313900183209191483302705732053168091649734644811790304772666095732932605005579348181035541278254258152340785116161251846308535739636164863043123893005271313227240590872973543368105483161219159842547839260324818696891507498643849972317282654482636513786390735341086937114888248510033406283994268951248976362830554643189392783612420216941754872638851465125190705998661711809239214808837856482685082078712785457460830947912832681208370659107460808215922289857478563555368843328189950876787061583149577671753875492161352173792313466987182606272213951640803475109517357274831193813505159735176571954190880674973465234396901414146848974651781249763753907566584432507255863354998608999272705622313075438709625275457710810148619490233630527292966563830719930922210241543422976745190100214268252329638190573058125423639086785131797402807745320884167489699943999785175084350348695897342393015989131688077437210128642537121960775616303320734344942167530144499511036755707041254723922530363381204355366917939933155511746788910659107722302572480645598542336287490076900641057588873788945349280682286057173768283002874843949400410999016494708178197928780156881517250152751976790208951416309228176011203475044831415645766980168870557553676383542307020373862229877652954095037757297424661504596983950947838775061082642060600902889351689499403889948458001512890446192634551247262408610787127150077128590999494212492277826969803254880435919740883598170855554494323510453898183287657552659942579704403487590974426383736938289238601950517215323465828260922648290162749547499684321213089824591393645430929624607446552360241399267363240551521301697058036441593257554676673331810526078398586786390493637596740710774594953078800208011108827504697882216891320386691350737011115179057053968229179535344940959650801563573386424515634811303368591021037308518934750987046521625627361447902469446781607620680589596762518278750554453799088806761632165809193057142722968912248588729714397109136482627388287573535456814442374812784608975119783190529727964189676145324350300503026133923372026978303811407411533717727083628057739194921885909922050316100150394120011488907297878082332672447006493241549349981169546813292183370108298997050338023274738568889488077691211538174626093459349881271172528153730623189049820622806527833305293452015322198243027278870104022656381474679334477579038147909591045184489917281597692250983958611081862788101233926374556934376305091909205272775513514434279185182514594011027978629854110390975213238634804336989646778061230963550017301053775540611818498204389853480651606022265306121803624386076736040872369214133680570685323490620223555016244783022925003711514440487394493058259992340642603050467802388378547918065984794866692288341143055929898219751525249317632948040048862841595140723472097540551972800008267838460400811598965377291762459813829281924892182488693502962163983759366278702289356840050412703606151081739001796406970581738725590765329266358069350571462147814998953671391332888468779693045710448683680916378707348693197492777572710623582605830535304295001696409553712204578383149335059834678317149961695452746639398854360784579685960472652550769816732255728562616171670419974266603596853642391086083536868568988352841845034010906960017441553763618818894313782904241484562342746677986010043142255660851936763601189338927010758789123613091493949340087397504104540153387148037281966738552936389811883556633767175296046374338146155145301675500236000636266460896963592756472049693842727738477195783242439865681987844923478291276927517867326301794936507599626901903578166820216248154709859787025152860070718219148902220641211923643685845457927942467183636229089539799994057250783414548235741776093760081774019261192709973744503967195930582079321344226515927824583165988143606466149520599392672993569817236644101721144455611209132037859767185589887092870465976769444844729889827382238832735046228067307802419634176980360525608794534205347637198142074831271657180037798033066441961605526319433021221686513590987232131834670656911117491494121637144942916166393680549335065008188666205946447190744371967397853017565671870582744857244856092429341477007246219507619241770062861940284921481299074620941137354834885698320435763657221204089471219208320166313800526206344064778804132986581400468372666356702819989902199954015502569655091168183853022136874064447788088257601820145601613178230014585593147270679559161921159659423891036806211638775668505751243920178407641707072306595183224305470325829485960732403688264131363905585811942327097960258199911191091901939507869164393585471962565674199830921863113314704689633831917874354092159728200898457684160957834082063205343462119788466067761656303515513085774874214140762527532450102973947250691216526289299329512983547464955537524168057106045134709075713324825370166058315765165664676515659654836823973655017011177442803274288005289970487367867349809864773260246246992939744375749809717398247506354790526172512135174173284712018492329075622713671336204580176260519399285376081798542343526964840394541060395175456268872373483559722563185114791920600112302221571877532714647709127380490934972412312054400858060865577114258575515334589765074672799822050007259998292498788594239895175009969254658615604738246094318560935905457343261142281272220328292046590840431817881995490535803395871649563302154350778417956191011804928065155379546072767020264766244959643074359836963632155165320844891487176152032706493226547482448860820163185018036554087447347010681780336793156017283170746852168563940044552780011752354845132614251552959912658541376262670653440709299416311850714666312947410728128907037342391474759045225571751534152229399061652660040438010633440194902423703496905280500327304348517683193371458816672319655531137263167196943006267540094523816612809214980025730462350881474436173310532848224830159899188305583126900502275721072068989833646275673045749806337402392586249715193967805419225346737069152033125067743428292735187268742769326755755187714021305130321998136498512101041297096490534719814750345340180556735326530372720300494921010721051723631995645871946367021396641833479421002624121061376404793420051702005984699345404109704769999894521038467300112089697755359960503204351705888761696774537682535174732217282527980368158632755799538594606802108273870158404014904862592460100146333977435439746341373620052467496947944262994600885607653254765197503090736770061637944232456156113733165514306601488759114294325785157620042567016113127943916117078432750775651070218369156737546376269625761606394551446323300503414642836658972967638502100797471965158599963531780626821818228147910849801317612604135357454102639292933019018399454596511590186217197622344297830622083476077551053585198841770089999133003838513700903449762291879927929568229988997226955147175747325202479284651039881692629141098629489202182885674217198590597436193771362635646824770709179658823170506183325386001503076355677951376946887859374528710035568357580574116053034137561312745390655307681975435273068091202127906649211183042575280989076492342571577448636422230539198312110448023572830168172289646768231115519075622560238538709729569789830594862556826801581088140138618167052155921690694574444350303777163294637052319768403497571710616236221716663501684687369893742593405958870575037972809622792027570479735659527985935897774514723234559767711826201940749855559313669334846918522603961999596030165061235860977002664545553871863571927381621582160028209637831843903039135875698126051771487306007772173771151285260652706732777301308291597983280000305780680352939790879837648899276970872445345005224161683415343273738461204244636018881414690115493851232097444858907553270653090792329877923238522583545358574664204894073923491161446591096657403975643086304707222890324545723087637580394833323520835577857133040768318310462138021385961085840730552263670848167266855210875709621110794473171784324761275037510670978996441203117592210913608721117616677876996549817429487802828236451056514774611147126933339365580417226500297122328917108295057713600659545045394961447643777614142580268801260807809573221729873393778237271952202046074259255633418596730653980288632507107851470443080743513179932568314831593461476891822154736628067099002220577378012733935112275857143963682603734013959477195269386058955082431946976771532191315878321697233285199119935483690491014305499252428455966207937796964178820513494464840367769653147900520128980976700966630121906061429647179638204758046298977359076184597619839227213766730981886819863525841241176328888486219154413392632680924370615657728670658415562059438468855523589548064296591404536277952840717168106462094184682179406733840352678256801310855947890101416497286226813971867964443548836679543801074065698923732637157245094217177312289916187204505929690538329233691753655865977524712242341776646953815835406869148084260531550202910658772814504548415958111544068831350424840186538296709764021589039648806258479887707628940863676111772745544293577968685724181679463779987136739952049647885524764816376898782455161028802162937700980482398679688143547629840248804242947597392193158996706634314549005214933574004250942898226859786866343414332367870107989819176663462069951040131198992216775809013230175958976654270790694437229323626491546453241762133198007311897865020754882263229905037584105153684805505927327447917796430245573694644438327362168134516986742981107632901206091108104320738673526840003708418144281034002328084772065559550971759411477423999271848426116483788393942898417956243809003141836189341110369336503008208216878102817559325653505514340448122207302868754732964693953220570585043432180840897919218224919989442011414478334420806826143106912655003227022667346653893221874549722947881064109588680388587111478456045789342225146386801837561830294881094601029842254036988449729990650932589808545945015791631447535392139832627441630449903028641132636951090357057902099104631313297013708983405443855867294348443767157254368433347941426184290359996952137919507775666795393150789993851101062861658490464636519115648126095704654466650755442099608842972507835145803998613685564502620993817908827954651392202668828730602273772134875173726819283475201860900154294353271017670078781094870888473361920506136922309614890333117615130971420917480640232881964617988229642520883166288310102531548566401198633797598199254885005616281496949631634080383681056590511738442607874317524150233053910759951331830443096547206154626972138478142367954744981935070243764222795153946174028160454553787659932013179812095101520510360782778606408394655135679765656808355673966191650849642190301067770135781288443124005726736571039990877354827211877265062674156845833177470346900425416413291553001928358921656963266646172973450437331360716504574124140503467821739625510126168804702554873706470689170189817395306380919064930411033078166140518350303069428442254375436767757530935996237968155921003550278789196515555812980303201409177458798882921486198700075998785214474604477958487698497417867208170439459601916985220433295269923740577497718625217046195065226037128108789054673272475869441649504397155022303191345797818899599356431926662078571088779809589725062992233431571088902104091625891562121427235785536890819757504426860672624525852955558027486259224496506429918765731210406899779827064803745365179403172941334785578141465292967998061706475519880217768647082684574206559034421728042555288078487384689099138944136789742995287789644808102795085265592215439407164438138179648638628264161643641244523840394408755950134087909677417393889166123910181450197635912073987568495785750433532413031738674206558956938882220116256496071901301712507188847998084956548927918655790498739414924590907945709715177564064322218977981743980644048963366077740983395149364687991782891777465514657037642596889977577759460613201343616948900524941147039385680045872588979335440503292340210328838380799347877857002892212999616864758011178165698961807224704493668117765218531187035870081278139552139570563663253263102336405958212032347969967866443784882496217052474618476488066690447123299558817422723412091897254065854569216397362272489437344209985521974913183354138102996037607829605384652112616125742456346081898033311094785213867939704282805755336671388378085497079440707892505786908122356692778679794512918383447581194796678854576198563543365537482315813972700964751322536061212532466621142508019760177311023934736882070100689755457101861863136870571889765203976989796882293574454204017496250197279427940683715411814632713837269571049531509811639582839119972099139564046839179625385925748308746997652401212576238931473169607228552865743837655389886296885756107188271580041616122487238625274019038405918434187083351995801889726150672206134718269749982856820128691397779885940322696085301382174062507938013448021471052909725752596978472465191418383585428964675545870106363783519574900326218669649739233381205143309020980348645881777364020402420995919369323409068341910283730427062926987088933474921642741417977546115559645086429214375766913549503303980140422671622973604596163306484803041496579420451627424112194233993972258200508303895693129866629992024704074329740883159979316846901354579343548762997063324420511718560857888919940877282300295908476331386385834327441198414375445308366384939479018304853049711078531007345779033642434457927558948518635434802714214028524202285163841910928708030106714555049663505552276865874757794377381570546419353407713666946007715796453020651975924362921321133239810488935647176248434679419019976986481961823277535242446391673785312561358817033971616766283906896728454244469717395403559784698107109536757504233414716407896847392186586378588903232583798459806211567178233537484671096395128015816806032005746774941319487450066599711647426059369929863231059398253507388509277675652299308011455773237766345214797297890586181708461965724306003630234566737262695707393303422874840200780599133042239367302369671752446666392242084855026097012501479247712211635058799257814779102451195726272269776811389851180742079166076027459187456312128423500530929904918330701931291958598103855139013712317861925452089763407174234365596463869355985314027581292768712733938571999214960249300773108704165650458305441624794274659605694936967523274828603028687549929065630463191899054722157059726143469262837470942745572455685340919120205023342724539403472580953521888376948178038771672835556749517947821755892824171965366764611437808546694474263489546532619200341948471532231306327042900022275791331747204931529111277082955485078622900961098809814090060840893761830412775162704491974513010614431754435158487129369139971480308347130574109658718328684667909552234476881874516602381196081165738846096284939902313830042861407336060893418487207235868621010668670889659085328160109485746089974032206969432792841349205654165450953196867670181565417129307490811026157529346812686864495502123173857369294964816673574979539236306767352066430806050614335991795175563041091140659994130666825463480801813779753953174483079622495879561682982791190973480627777469732730864362360206609878208423998580513651441067832543576519526991439108452067439706356993159027110681753796183866980361902798119509912297897037140126170004135257392578378478790293306028866755524313465510315869072037748797374813053052204964669864068836423627077866508706227272333764937328461760627676251912943140923933123481282190789878639237386709211680209055639093354116574672571289349520360201693573313995752127052999540001868709165074230593855628136959980058846646171869458433094665817934411208602950244898023022247717153934527734086404723440556086011738471600844240629067405651507757057246508593474948249811614272472263154335350560035214811242425311002424561535730870703259813596888841206916024413725978708763506084776365581079945564754215565423972087491324184100042009731265188889933959242162411549178786295446285146262969921370149538358175865814251217932993027978744526620897964994374145218184657763664068384019203927550543935699762205796848253625432134795377892537618818365590072119372220982211800388056767291017863911445778196362546541856288716262942358149147995811703861478125992340070061922206749522445754415727619922646292177160895982665315311681660576103983612616893556818988245113580116765083383220520443583932745366410878578563384824344886794586486255734264345723711398815496966823258845172165755344642902485884238111222937409894803427833211226220313672532170891996564338077010863965500551738140005251751848478247202134237945696304270911787972773142410512347097147478833777373775764105144353711257765079799250720460778690374184568563075841616492017525838948892125574079138988868800514050653845893610321715172435280228719486492635160370102487612550327464860028077906733536802588512255281515909850940087364074850648654665174872887423628599223726831809588213797545019319798434584667709345267477834487294408028628096948081151776638524200113371967111588003183949849052134334557413723840460292505132867415782426111090449066034969284620622628389820635365697854408009245109517853949103335620361514484375632483507006746342177640371403464444142539312253224310623985569828750492672710049761129195151825916455838831708919901928818078060176898715966457995423148444882400637552263854163590460950727412152769346089715378865322345236439764002341074354775531393577993276875930888370934295157687240982471778379075254275048488763366129089868288833358679058018069051825424854064727670687593150416910069622627883713640861985145517258411695315763569390693052289905899182386961763918674378565758142606623882415520784899616477061949800862007551400508432419576281173152927582215512053033589381856940469477770676408171353372768623902492881070470878733089269927703617159161528347733718582470453408220261435027041584328111353612984819103350906958410354601262010187383333490616744851175708326701111442432331295926086598333959694673842292241800968009055373644370130004362202543030465643819750568784595197478049877383496519371453404740114246648707672715851979800956346756711421361492064590079691862652671682895698163440114795174118791215883933326436116164633747695278181498660596236170299038331648974643883300754018417278464432139967531111325386451174243724375212884490931048647138253812843658344514134365420479444398009822404889077955077853318146182422398289090294880673982679730113948974143686310193192837875461585724885597085086977335037005910100582684140435814037306589851452796541928275441768522476046191811750062114227385589929471001001322931206372325009678860600442619225144764329274515088580569829902116068077593096609240816108429733134998864259065419194534680171401989424027048270053445333278945016080753049545942171477900690475536847776253234807752120356946345311070642660713347031182193691806168943300282023764477858500359730843789890919203497008111230391985195131973501846487822745237209909408669147859942770764236643906323026008095282029770859049217733471846434685169632272321768649259952763774298281744193009135885222626588655866357080017691048874920062906625329984415883566776410821908991688467653919543144351371863514366665027871138076566542356386478136046281916291956108801320056635199164270903975312389959040046290404657247478293736715519078584361849403592663660667369544149977476794716523198284026717622496376333553379972320886897676085277246075629313446305832165068855249179755716400411057489035093592298833166807236387212938847235482471694464536579424011089997719436531739582033653426003818782242255178513436742140451633663159628285704861113452846442173977945652829148731643769034953295324511079734482232140877474015512821424858199155579214223715005548935715086142763398548086440511297032486598899396540867809088531496977357291522635440046434521993616107601266304223243842514413562503696177782708121626157063464101754746758938539172770781893418609700718918028612527347764481154407148545148256732753289908708349545864974898284170529459724914362526208987905180668114329714355398065743599757831446195657298195024621450298031896671960690410812984291147115838953906904432072575317196667518912096889621799285139641647500782999210128116853877844056107291502218749334840860445220710047681351376585915339146839332291611454756835550179393024986775983076306513948129032587792137334139233448646255025047175506933232766911549302088504808811939791708816229359745881789337513522170964666610113458930923278576479783356386834049758367626240530579564983406492499040696387591609260326905369448749172974350631893294434737162275061557069627413827574968363398396590890576690471281924473135967034126048953525695985390866243700054651426395129434317646101776332281182355814758237487624889434545016925159853293983917930829137278318360592720195350436147211316656672060057777945820681975152001362689252626875730165928357679924301701169078188773160716795170994784554046495236445561291535291174381526271490976193698889927000084195897121955781876262946619597956115377762672575530024770704885775047558408490800967488736436953641180157749050714206192470585903467274084925267194601602157085889567382471458711480270888442882078061228033918335717758398072044708929113713072204324359299426655194417358249048756459193482428613638361746853689278507217534152196509609757783141952336739082419164962407373307440832756974478347193237477317204914564356829112714565917735036836844578550301292194126927320930719592883610234957359885448509791203771289660698772131281192781442655748822054192510623766662954176760766566793953704989959385270623526416222425394676939186467093292529736760146038078456676275565923176984527928749047038909461218390122786174864121880702185104587157127223408367328716941735047071635186314752905621497339289828875549482531438000815208182964806804701850080065681699706307479745329624624427088604155497421906814576738579667913132366830330508907290630527028378946395015634327138050466506683857029136634610887675307206337317765053327530419823588104080543063119602148841800574219946652708069510591232323327230424405921947319934098469475327387753482837109584456665020672038723515004361172068225604324602959438036009981895442472311013007597689159734336392971124684573776790320803188545197149288426174370166979509761218883372057941525250699666982679396713744185223240862468416534379400080576718919290809110043227362060312681570139623610333968204300339679294785583333340907941728833455458181182806168669276534837565902626720899467887011027444299662836390529251833223878107942980387411154404617494817800008340310074868272430023856440420250118194235984784528856874551114457258313411456014145814460126464652709170053802987271984146214017385824638687699643180678797200418587684789743298381487349729454021778020661014062118894372380058171369189663918312861493178843429105493094835245193148194040496096194047695848851551017447326469889653863269210903184329514818322387942152152634754137577847746082827575500407217243699106555170569547484826955665878325504414355479120250223706129504699965039483489246954833320870238502873285037076682493026160290288167171207792683269598530735150950295467949019080940162019607386189939870099345894199404689281998238344296362585872043442283427926793405694650695521034879704831016414669745493531642290477688702397122359119501109804422843562039486212031728049014651922933215614671345544359325365415737697028705409735823424340854895708112843801821551418269700638596041895111120482638324531377267505908407313307385236203747380294136127428870287392477521413383049717249959349815546922117747047101005169127357652954469650199481204964033179346835289463884802687774927276901886368722265959669221043097602211732608601926194357977427037755818951428154782982222755660645547852092023802119755470877554645228355959132496572384857362624285090017842360561568164220020854052998374013784211118274025823469021562103815365203535446606714368575953282636828766175357157420005876340100341940520417382501764680611132875306117405600089972626284637945444456179953220773573468312723434528686868579258093358726072639591288459757195908643326800150943373686602043861795314789311984859358848891822547208632963400642792988440252714823610398637904217672071411116469427380547980030610980007710874771843915908055923667110538456414642444012167145365051198581407933236260531880104050953098154144865360676831219605866582028931285954222516578470438244254966989540767876360408180937368105230394338977710784021147153682931560064486036522971652895745103525991810977335140439189717372640687768902547694258814680903737998467465142794280566458372429685475216933829146645034333686276263866521778312308294644076375672564949264519043446957583132758367873100911959554210023548935776290107450408932258075337417887825611383680008307852306792932903227774532656291374394770970190714727453937025994856522648246612705404974255370525847123492806871176059931758420392001976762054297092268285503632133247133369016110901956959540350921030884795666715523976326451482695555855164933792163210373176652818122389689134646016772255025766891474075902206755103041749229863493272285175191210171987530486070853486185171768062938147860567051678476517848335141686845659129954883526444892591932130014559455086004401166422738980081548423529334733189683371929997407769667948515872607497354870067794079506674954317344401561686320988044265234460520380052826199015669525866159321403972325328681439387901146273825239420792419931975068049784488988715489540298767996471275925864843256391713402342448165554532567620150525298975318511528309060296087276588343719698859617013439129161768923168475550794404064712530317634700670323323624922466863793179929283452096507129117914190247640623984843828809716433111932550985092596983543855690508431178473322957023239752868513001334522135809656302264016974597139278020189405982526910446475435808186000778192404218324715195741582093933528958720675126971440602344207624504141341356213965777833566609962515110422031747280980597667646999790775416290210875372127060522329419510527094255841183922439465531620038518962973833230085266009209745057996842940576074723735655112551531409368581462053007035947314049021101911069377610982158600996987483545668037212469197426453622149466955411910176488965453461114136336611523740928337963870243509265223405782870598341768434274609897347899060596395596919834983381342317498051017829694305800863208550103436867476569180835465515643396003205765556954876338966849829705422557984920322181506919793283671436722923164316278999363694353089298772147463327314572530072414757863274425280887449793170619028049356337410764236010374219741561320603879229778655459806323684945591350523070479934655278065384701254492101999614079927160281502415952535791193671525197925806055868915654542749919406193745333754466814773259904685073200576560186507974206974986716368325545553119803487466025436739543582186918482156686422066414760347981544041405522858278561755961753242078914955620943612380767788124375812730479666018264186925837080473432845489166047121971654030044242044901070280841939619136555460141099208965430891935126107676509009231210732815034060324650746437588361394306647617631723738774084219983415587357369862295454785845722649946545902683887406906949535490379591369478030184980905914212938638067453685983539089236717363477595068807169863538418299239765071675383380881437635095566947243345488980273222879519182505586756531734022400040181070072813266477542698653378669260758473793237513747800610995803325653082511771497542620802264298564733330475696180214032975586367571626821602074929012824653414607230405425162233502118605147415126497230995377255166573040986205509479949778986221222162621296604704706730445059869030334787857062850672791760353494361350039883364932706090790897284991440200549554095205835290436307073417738895262887689037421651530055643240879267927920403863438837543282464354445788207931721410385639421970629945047057944678469072037332730725818340321769791710803356403677584638187434435813315912717668311388033146176685162431920851778374823584809667799755860056934448587170907841294806702622801191633689745949055948176602944049322796752283760030788338921591052982428756892170852855104216760483368280903386984989289861374851425868562737712906642274603930689653137452359814630559303402151590375278145155413754048293316022674361475387879104701685570629149328431401158037473810572225089272369471515781454366385553271064858752252228095367679501700475662646517127709949545128491220601053543974817052374898036902353471463445227784840044270311839208020582220199445422229420527611284521220584252895100360297462478801644237357351128854216839198647732918966768493619263020510800331620976295461980171056088493120020556626111165876287445803177884976369119535846982063821471749117859753752949815190936419989914877566270044682695140648126378800092118325516325314608895547089567733604984531919757617743771046128251834469134038299510077122031403382382046409884048019398339156464860683463707305394837841487651380506805751789898697895475452122540843853047300199121675292239829026903447954609313999017931810517885747431266258124200172549136621602205493196608205017116830401087933072989911829880328632739870852878385721120370028571078469410077098153462867190261397336036935982063432126528533457037149606397215909406927157469272427410000142670086996124163521852342153709606783797010813588092176034046658907489266321231681463440406848261882718788071428206689692367804793818010775698133329963951927136339024050748150593916727915337711136556056541042801149577269979122468575185811526400215127317857143889863585951244107661967763406330212100361432674952871294438970857303731319296420565066581071997142762852096311322843381205515659647925447224566501818279257074458740254408906353041902276252104717731263813572278294624519921607402332667681748608560985524409911286956102268364248369610378531846417975051440614267933086287924662245330928841832282056126342237843649571056669916973833056349697632411141985283100788777600001706824293486861808800944399242690708195720291884335118406586593580352442434196664635202995899426129767736828043342705087138680866278052958564573428685073454220800360287071022339740126563285625969004957357718373560003738130564677837595946697918482320646097741485398629921855708935969900276330405971008112095228432713401410115273689728064530007503280536539724792058323856240948535969738571179002742393010780145421979355164484909748169784085463986264595716674680329979337129261376710008537583160004178809467905759339810336130136694751381456209345495832060203171169095588511927248838852428972670513233948551686064103903987733988387909151401651485305789477717718116921211662451370745530658955665722492725772543892794782935060735295696295337886970444515047499251224948484944445410354172181216601601466507578066948548554577810312322264514318369587727541725122223406725913746097739051285724711604613001629101222870960347237442727299933371678512867460208507255442776077951755634636717128618951821146584554944920902231296727314574978936854979566828938624688831057499161406779005116040402983363871312676263441753081397353694825385332439901156792473565254119535219178684713831436032058824676595963073086535163343879846165727881435886849788588836377549260519358125207705049437125580817193200947599415995316808878286593707635529497536401279908517630778797390719265408181510303096695262920520060120225166391415467091500316475306309152368992788248768691272439315310456700646986164944993927014079485510114530312747181329632620780445732708505719503647783423791540457248495170771803366052020861934894337152067184673806429104247441240122940466341940792778364681658645527478656612448882665085028461684219284715970564968614309227442130236753035031111475021796244332749541417388765319967578287474078851517367634629125812374442456045259943567140774871831061121681754669929576891376814288479614551914158059785571376859216654124657939645226639632183943280961723176580846045713556671849750031951751534229470297247496741387793785506593797936764249384940210131978216340468365856706293910340602828705882604792656228577962135815387653928588817094480753206947083707975192012033340918334625735639324852081910722769047494927425662276069425607906689176050061110660756401419455965670634239656925737538012104117185659385277112334034610124211754381720960397192321493050851744453662816289127436797618943544358489076895024782948138554367232846148650582332756501472739673089503497270935131888981839724719852556431858361199213296632061907008557062447798581264252543329806010650273549924726401902889008039870589277563919988990832218446303847621416180630661780720242114841354698737026294948535261036715291615658549085497290018857488478516247969311652567999819237259986253508000610537640755717315710756583979960592585589170790021335950828937568770727058005852836497956430687479729602030284299680633996846343645737348826929683290610154334475822423681466030756656761000359641275470600746083390678323090315134095658301900461153337342583632230849120077583164731050242132863804149821771820264542368704680972022360690420270211524072260991329169649422974484060130049046240748654238303869532903114013822377995360538065689430301348428385401103962544217667793124613445764691673969722425876389844265609832063817037916132166331677883279857270804172556854743363760157015930101895817940975403398537136684785683741419219646842265043518817527852440901671007092575775998584440497569042604417197054083179397857348293640895300260343699959432178724467814321430406947842503993346744563355621634772154295717785117795334639970126779921972949976583512054989885476236500665525281269259994692219482077927405569690055043235886205521910515938358330121185080891373994531396407138850661529575588862240919764374115870843716544925739261968250963651481095295482367289541059320020895536055970447208505024387680004916130366794594456359333225566019495144053105106919774927334260287391747393493439459038052028785295844428864934167681389900086636702322694914383494450488860571828761586517326961109246934557599656371926439943828410713581343327070004721574904368630884271039726094896340706508526937485665744473025329232609323142792175038195638182942171083648025600787183909744979785616382157250202799839539135694514110516858552697569420527938172273903919480288249086637191994776420673915873046299597378229903364421095307398166529116305744004702697753938056640558638067987365362726474599226400202746990704761477298727639433534290297653665624091714721012104654571882203540042459260914257282038243265324642978272910269717463641909992266755891530661912389284613087384357604127531063570386368598936884511224203866866399420512151494484303732177343367708670221015170048668912536891188190009914389088763630794395223941849274422372861537435897768102240942011994687145189220729802874185257549734386308845218402795954315675010724278775975779544136324864404172746517320951039662387047077054152998251500812683566865164359222482678014292628634857589582080615150172826746440422847538855518178834647559461755145695355302639460521229303599261846773487935935469792483600132804864926997027952402716095845912987462269501714521821078262821978903139993769828041853485624235531229808037540272684484395192438892958254789803971933676510774412649684458405782454207420403952300185810123050022717693074965037379626620706609579077224464841615992219739589735201542242871387002138807169642981739241935039051140087070290135585229739964508946513704698553965255859262624489346116129224895827551230276846527376893161005979678180623263954445656918280801146716897921257410982343708893162386247649218321513529808863677710098840956258956366759908076169794285150351049558200125579485948841120732696068010323214177122123083705850282529759487452817539014556895450919523628403051257396472604322879075814866582587805137832556712384205555210947136043427451047416455542243694689514595603276363386445559620773812674621032334149854369144751973261953566594929237510773484619870493412230152697763696216137235096261420764431003140367273551878021092878057865291859588427344785370233712330757346601381246228177766704441908257027568709746634094306737532853440999086808032809243296028402749418324553366010687721178374054310024361444419101271091374950733408186324418726879050817736335128869947821834900400595985523000509156884528786761264514463154351889571094088972731210668526994874380975281495450663815760685562258961758425665780904813067329678813475050516275599729555205518693183630476202631714021514894839473156311417277458308709882147589409750617095660357698953978570837670341217166596097460637249208616631201189567583797225537522362976222790305495071652402757825572303949532110990751070023853784628853358787648916633513893857260453659163601738766811248335111750887766090254144638579112951853225346315068107850042268569907412485392178388061701851363391654496632738381934120364706941981864219397337045040458238147958178217105708453631166944839826114896288455814021001932811726462822533410656548640832218553927303018144771507148400224319381836438973595890049498827002534747636077985255833714275965049596829124353407086112725210918819426963912377220036949078587773649477584565285428803053711887125372988181423128838095200021351688368835332934792723314533951265536828749652325907129013662442717043837282064429848997913624865408789334727733447465210231640489349039693756179501078755865433382950534308680759588539231546306988508097897293006054743101648984283540198438912633798967853503269884436343219671778249546583262230566694795311522799140609117882693222133881663757406878212372154461683209320142793474564385246082557319673644577634156241922258798183838174649208593093579753628888430102505154215130580045777281882025542973032210715572071112844199821023362406929242578512717617752553099974111534750876456656695100760979917573358827333453299646399127525551420762509603978187886792316781491999417866270849712182056394300514788431356864599956233608187068615407175682063410359491498103977885083893115984836696000468156313578878868389686940654506164374618035390989543323265824484602252953962829864481116080641443414657756220322744440751874664189903711472474829679003733461884762982067163966927053608734309849894040913652213147345821095276295995810254796810523566882436184755550055359437864469917217914173084070239611820695034802639794133687355895043021831528823298571105747894629298160555713186592007923577450891561873700210898337845738021298057861502263955835233747606932520770226565956093835771634683555758152096074130637013937709292067187908592664678240248786147606174275127633830387567408706331884274735127720485976674269192577118245715100232774938804684952135211837807493854713274467125313816747218724454222811808056829603900794562524267726128698912147640942587456389952363870730951441973667416639496890437361105057864046280723753764595006599949617366159912283799977294525261943572664419431524893821759223626394290234925889041716656907182445838112694417361059916933799679460509552044802713678675927472886401380256864834865772143129203691726302093887661708168585677108653517026244697330607799965374762032300597946363837190728393175193932535614707455066726573924101503088713338880359037648131142889092357003080042455000494931174039038281018513146193767856504718723301509238036212116835509200765519147606549601516370303767162092713281486978513159714248935628340345052826027876969712503564899571973717715630076884718675734921958242623326495509937484851968201861305807620502881551107354156229089043247086237423072349541927239872627902291673842354821058162511771826120329081845671578377773403323297922664573087651935711162750969817304795287605911078532908975116856943574223185076201748249761712070297977381925023715505027791016363751897822312263339459494077003108649217009557213887703149188773964797037280238213292197407613003851645910690938125309584623176789537929242889672303837015064090960414581256845654499056925496730853257998388011193886492607647612079416266880366100496599978268003338627292908893748006812278938662859488169051454547896224042278944373929906095458608639821329231804726015717238353238496638940794168183238674847630476736792913703286876205965472134591559328781744200809008708228703938136970186720853616911831636393507210300659249210520923581525760812742540959444995202850975448432181790375707250727643861089329178208468976898869885610584502579888353420593985362143582782828231689784396874543206321173204022903419496731232415136219455633876634968679369572830025190638703593419918912840566391492954149877229352868861021884544150985629728188834982221031274092247052523878786416475129962602675842086184634905880039769198829706527122377965865184475050945743596195604474608926608030488095193678575692203150677121819023762469298285502661608967104267177191731869339407949615408534797359885419181977877269448765715933351165138879490645508650209419648084332355067801588892985980406454072576889596404132518649159244147193328184868573298575353047232834684756801937787784871975492296672279314298989193935798314758516190735801824462786118974808232189310294513826694133900052703825555492334614581408016251983802303545515952373663840267031482922657279960526213274324672127769557187270045773951638489431971547721987431881992051668395357326998943282080390110262749218102355784737234283681555584232008919692415519701631842421519312640702106204774515059605046557274616710203717525993862463755221747195135071500065178432759686695215082710941589270282077976414164444346737637738974877447302879918473927876930753436448849914066498352582683996553882212111531615938385131832720155946805647228585208632951142029853596466893378676129657603932892953489316294629730970975858249812435745674390815817372242440790943230151268731307052528320451879492749372008317547888620133300596586612300701458043502384952359939119547404760882419128327435164600986014396040564456765354265765937713610475126589344260641690089772605126407606594221286585799507075067898121775702900809496155505765958716999035453470615574631551109558680790589211499130389324838396753079059382075963557486066982114068798536375387266866737132079310518122561986936640688004864239634450271050639144223823931790399129917685440815360129396606512974214173881452080310319691341154612489257140051987782863003560609486093448872204717572702832902409893201140969407476446047102923028738271906899413444677929544585094393157158233334252581455828416331869212306007911593097381165432955158364585173927678561123312165289589300031584391064646688872314235615870259642511858260106131890611963658766731739816436394966036937800439243753872018050706077683969369643939122441914127237681180588745358241913842188213564001734422912635601536644456763832129369285718257875360737389045498066201744158366752003062290688208082745868757634062476965291864607774890139332138779228654624232660104007647340850768454498348336105105314249009350841552273312991591623043765477972169949448819587521116438075109702238912923677597643847919205487031372977394122216416234124743595246181963079668331647825196607136913356890769311316261629962293620025801770021876783450956517198659217919090297612195731900091744748001556542850773098446049697502123451470593753633868900495416659227078576072333888222220353666867026809306436177883458997988871462294413129774164711769088634955807800929610300064025277441063597583423705009335917979982242388833499976531934679423327603826307222079682901756080606487924623090735390081863861084153258788449454580095003990133223112037788780263724365842586904450941527147280845837006671585064893553393241621124426455319622902160132346234071764080914623681203391844942004007692319312691407907291141406153184322622071937787980329321322737762460753312239043819200084822507033641815347862989576200596101024650482307190105750772606319919914685846085250893946738622816670697617586682501366576546191427786497665815548985936782022763013895961913221591323881573732199355206776396643228459060746740128681969535927120921183410231560766598577260715339282063844152467512332503087851037954846364263777597523449028557550302554345158780729183919426366622993526153884826657720841377393735299634295345694480122638287525740900296435386101108469515409159574076265459020517267225044302171109491994254535507471216920462854274605419905836076410188093038160283302900027470442260794434331066912767841324822126261703833454514026426996409561570158376754354251110692055924551597152997383348801602259476637174882830822656375557851710820093248765322796876840590985903994949880611013123234295325808967656073857178682946784002574868196364565529375944113598359027232321176536787256120932486461972559988563497658509437161069727904864037841162330799381168043277907433850490232268109214965184023906938442769700565749543725317017932057321759723701978441555454007417466431481638714504435313608963152758913028851737085720768239053909882957261272348823271125746266957561417856752460679588193904499790059270672731327151606609849465009779477036231988116289812586657883824463883989735381638778780396555605274551316057292331823130271856248095947453755628768892942522871533239561892239072459909625850778612584056724383843670271717257550548309605450536706134423341462471963143931951487391798133639330884531849910917811019063981710840631650375137420956149093030342940704705213664315178475317213129042681932034897318202546464475821411980134535198700833877581732635748259211015469257512387470966309583785401953712477491802453812164828914981312562667291331818861180492782914353431936359288171422773091157379209484508900350283616916808473078598117582239171991664837107889037054360797058624934300477429363025496666719951826161584477217699696673295886661282414533300974404629406330723546225438965249813789709149205472142495830016316984123013053328446111062335987250387906942311802122771523256716251662877162481232479850481119593111734126345511822137378172409419791279076718165731654303895985385659846980913456680479018391997762555270532570087230828145340664548587537009508436943903973914745523246498876693228446653922708061974034107727693622910514517305851927914155936727155067645900046003432483190101197614782198018213138342924856717301400968529958608965914733873335345958897602432698337407791737080281976677460576271642279697619805954131177755881420812678484931696320554742640163061936199536290103335759864108262452354827448433201480526918496887314525040113243635094755232253021504365834277027865003372508180324986933173748685289782315149979939747812664301892189921760520483590898088919460516229253995488839373732664555781877291572657438899551991630811165451836909909654786807456416497831860516823203166985925228392001407845730589136672621935630808213591836659233267653505073619946936341653092306258354473336044264941381625783066722589475867194079459219314679548511334829435641755004309577688363617727745702325170485655300381177917911891747445650809796728767319911283365694561331193554109274474448435540738716792109516788538832205704139836593347294704359692154581070628422264106492863594986992749581164957101742073585802512186511860182663835784065338681760270254250470388212105573714917032307068809048149734538445767364584006614109628487931450571305323372272339222872280492595041070159015398218428255090851809044756528175369931264588927636984246581353806526936233820024825291553111137281229574995952681044844824458987902045556864970027233588213866411149578084898462392414312447602956925471009654484412299285555051002988749000994244744937376162707193387109843415853997924179448024551527691076877801051497045435804895706081030487300366962758679525429107898456350639332760045904543432227213798464304147173878791093093637521206736942543753627406449851040020691142385762762953903540103486518876084912775032749814832028996783677782672303326003255815125338716700181377880124396496513630041381386439503652894545938870225093459336122245614873823220625759355179950017368849021579384976078884573003438743930812636129679493264197972558213072844068803879932475528664114322326155767393490411280831912138800961622436413698028266290711504609792518992393807663045448844680822035716338456983976087718866398790082174051424572033324864995696567466926228133331409402816049579350145809092989728177870007942538849824683615569103157685877826408965354875638984860723313930433450933469173384658554272264515480012194545309549558587253028460471743186351673936458157444403575812918805078513357042305566913647590099504278884246470713006529979748198587168334336788972281714260028422362214765071704197205738516665388396964850910176926130718859128426397981889917835768905771074260378351624060414031345844439669963129508973026120362852804949998764079219338516005895148826221223528334877035225086766307733096993859214485825714374336300721187820679365002231427185714371946674908429716466633835480086050719747017842933140653665765446397983033542085349759490321236503126191841173748480531662223272407003068583494412984046001338392898098010264840405122689289789156317467555950772767551085450323834174035715249999288815113242057341162962027777402864319272869362799040615115758036760049777876660248684073981449425863235246681231772652198936843626869032350004292674353041380645624861551091927671059108201266507455009505649474492758573065003030698605123309075288694559693260855453626687359408406602956603667640318244403905256720298253237311258261490766250550405215318264527688085881668950173023815453274414047079332288033879412772988626137462829957221264493928887972714414618136410070334722867010806194702795016192426664291466200065492402341437651875192649377528952695017736372103831355673170735599990580382169722945111358843088260719944107073425405084371044856507461014019499679808825246397563580473530877868481803143810293062445665266396285427300841688859960215657911795301330998498209095408283618056907977903976970191187603035407071565856245742165250267610262146065104640922847029686813769861033382313113374686653778385667673432526826635668558666500159448814805904931561785303123488443720308534680980781960997607582547273211354147788643619829001998863523551793817983066968580314872098431912190481414397618262763435255571550575148132241496132879291041607142481532191096137077893466488837524417857378570566859938327472119006281446546284614402069188534737549265174017766519243718211711185589967950341519345717956151118875143093454855382698479443052991012471809020067834034007613983025332502090098719691388361158107388794982367288373503309741281144268794424689521156982480104081322339560732582715110388139380226578519763565375063661290652079966548550339946056612358048314487202363126140162050286830443264627475591922244802796908887680593461248625430358166140278992904619432436420349411706681853818686307288882433765136920115416486957161140358492459110186590445648088029209738064907477095554218338210931890798194225451167236106463083573569001252904131123156319339707130385410828034645907593637534618815420220082890369433764040692727753101382283548164690009139481321954643582873487478042302413703067821029546910918408163442059555412935811444287994506567466171739923795719952655620960058082098100118182434428652443504046820373871172394707866455435950663787986542688466188310835261786530427042946198358757001901905279940189420074902518306340167966709108732922511533207854595602901492752270008755146867217971533044722472614078816889206141569362808262386204746199037081306803069836830690213739694970083894344137111314953469082413104893492460392852359630695788160119947205238886823063653693627669094590150584784920754473472912847821823989278311382853942827088467202179846203557407705051176379353529560426674537776187414326595946718341720446977183988977151901485592282172447802182170662442530428746472021500205115734374057932814968257060153016564364359968652253139336769544942151110974112310840212734120014260215029384305575630537615367197573882972439427402205872120160142238612319382562812400146189118865455316958800851278040213289066459380797814206112816056711307091763416007485894767974780677721572330510309306917812064657780778937748923139990138219756764400627413210950346264075993345429886194472408056661954315246970620316941737704949149999240586054796683200567300134522489721452776798280876056897449276432059868374096754358091050690531666056007046448138011003669859073578794698419450969303005187125420513619843192473983023338000613961789583158197219754989110148751540415385110468142436376008046815336565263943439263074877968217463085303069875630664187120404764209355576721472129305229933960125470113400632253299062160251525485859308681721358342485603380172159195602146251191512201762056723577628135487034555125952939696847478142376700067135783644391925267596345784161719637966536589642184675761016097266157920494836027148818906039842728999182535210537086926759426660294605410440672356383211580383716483975055396401983441371294506635994655346939027612905913670577921306221670801589768750931221028923173248324104338199183876730508320982196902642468123247356236375562175885551233260258712057492286620571008877665617737678634185455141182906909316711041832115930871576257201267026973045342864483488843452035346491199791882702345773296351347012587518178139225802456164357842404374713501396893303419399664852831936450847005366639875832370233145114669234665397211555443917437267372402783956471019090191313710854286952501232853321602700125199472086274586583903019882775105770671335894003187848123816488724072519401109259041714839587375569992782413853494447441707115127125058969067473580327206283263255874027081393289781529776817989366076581489075364677988893495822477907196035199287354451275115806313289657526824312226363611178686525476633876032021990492538897672425400979282261240431793784374864816902477526203785508453994405389699714044002751429834394134002915383926598798755410835133586442013674229953895029572754896498661307703528285507707691320139531460945065247422743891412035149734621767742230486501702664005825672423214740321033488912890624363038148914922357973628079954552914706208270275383053453037340578433494103995991175953325070524222557687473707049625785840339843891250448184532841677328431865619928403052385276806718994517344665665239739961005332145438788639527035160534512240923387575053583790965226439030496504749164235439207355495848677779862484638587517967412216728847192881200692241275006146269610197443297429224605231558721452298975673783641742067211975520331979813579175753228858632194235215105006743217469051387943873451383587118272224676149946236352082516190965870774795990511941982099947164773458487828809467336535755034549847229654361355533115489216851462345471345003250372833470927708050564591616323008131626088294494360520434088515636814684967684661016955961098408899304740872661313959449258256299279550894080527563656666327100265581601036069470172833862837056161769110832110994821231406388283326064977792372539157128453576346600689200991664736683495859525179545862471601777107943319882070824131041218731541429836320499620611867887559330189113007027998966911499913979999439272046853801608411326871763843323102025817463619681079559403353958920304694000627149725289800839824880434003775988941701905976820474327037331932560038689615047244537359187638381654167458097741099596679398810610127021705254986709394199862801144341487493517956539939643269312965211190864958423177287053451619096482356300163821491520396586717244085818763307455408103415268194724062400912428533632876343452556764879995854848104625536708884763623037513653093811891226298456072524101446464246750892354119740366063110323161957106293183209293802873665277707707283969507263509433423770982343757183017582780980901738293864520109855888236792811873894107026596227754422378434113266767561125246143441881104125521002010402889805126951391401072575485495377151966620804108085129211366484871571190134870056532574915313185555157732709144585814877055545896860120924890515317107078128615903340875603698845498958804356863241918573918490819325298890869845860273967659745549397663272534634339996113891283400217136562191421722693302010319072215181837041888481144506053142280156836053964328945181994051593752220714711673410080755575756993295638476123988972710453204919975202662233495800444371394536975399140909327757227542418686273006691945744810557876614915209625970003106233599657320411178726624079162060561886839854050047058763450290302034457643941402006927363242785362261648433224619770103880789440013150292450321425942273549085463638423961650603086868692943406161066096010284550773537668409085966027506596038995306155940615499038560019846870724734688443469637028627896394745804561551180283596612253961428878884248411654022224427859112436949151551667229346086815915386605467361498455529743809338226173941371428904915087599699230631915648691511183694681153431309829149457036464258270618443526706638152629565517640034968623223159927523092635852311258166630965417137107576028119641371544807622876541902180272915162563927472029218959966041843637065482538999066434439704781492809275879578338698843423648551935847106608772239188256925801727590329117834438095202507730728436251791564147051833935912691377611069068315129919564594262183327186569528946937238494449272249620345599180436345331497909430163152466360793211483607900685191496928859576121255095893832079190762127547175606756469158754376651862068945267148256869583080299732383424589929886816237666667543946941924310295300817757444576279605005066527953132359148166491718628658779165600458184236620915855454266033457389972248435178407203219189436560366740959276855187152252630775843305461932102896192602762780855053885879128649873138816243152918729551557954426529311549242640208577676304672171537226703611321373188394303816202080699342766604630886448347496183524154676995264816685007410600587228463371683682933443903461961464968664929483374609281564337499038043824690022820737389158042287417161463895346025418498007967032691543375562450150187279610476309211438539578686924541080933730410701353508719326086584340407217884612646210010909059067127450696906382781313557905252362397097467183529460162730326412825463911574516427516833166290620659492091304201569137470971372630450647694645481053826478190249897880329738184553662935234542714640876971316219542334018090136843710047933968276798745748410048066425105346545270815095996655989049789041476200705489325063548044525514252808986572856759485167582748443454255276786226348895079064668271085013184492468710460939423645912709553004081991996334300445675762398733805213636339080918293999521068950148225416544066861933542594907108682295167842400196983939120956490760413205643137590780223272333947280537539980250652847669932397585118245454405367443757845113950075966353739373705476856367132285776530725151636347858055587695777591675805341513377706724301847816148910440714453682691735567625039793030315645647280449807342971150251470060213545915297923186629703849638299688072155953861033282121382690346664890257599737690248509763998833886087317915429151123649027517397019409424725934615711011058902011579080423570419415327826797210529177077295833370718281119894388731117199161607397317616917197043498593655749811554397643918472129643633370585261840816151986575669625776478551822482977594141818603780164511269578649880433083354512369622541780422974344275983741422341306478490101099232961766081497603671231684782336303370318291354783098061782287156092101329218023516071860273867804747477890051620565306037664937235246145586522582544860253257033451680397378176574338108219176592798688938169181974422830510420805058447504964146890055826687555080833737449764633480092581837107515210309761502713908583653359246220834384892706191820806102473288353140733732235559667909435814853187297447771445361780476721465962249747220776678872125214528427447754721219172899568004485547177938450683891691616230698540939306874280744702529902334473855790192545828023994933523864567683858334668138473519770640171821089903768085248387223076724992821103115738425501952308051977871496402907248555773482344127185575757168611070591225525831908958912418018634299545472690506571727299563182608896381483449694053498221812615763899514501779687725353599554965927886664057605144868631128541964206441285838128078732197586074072039237020974469137362601893086383270430388722052299149304596127313625951241895668637192045811186671936499330168069240901739571817616869744836738242176042097147850701892421303031278263102080541475955002836561206796641165474624249045089742437535057076496443663439171845753964365248521746550516163840877967550570847254078695458911532723319486652537514363011740322314710096580507342460543907346809683204741906219282254269254952717841850578709575954863002491962362655251542085624708674687869416395137245540391572436775978743165658262644813187363073080171011562686095519519360602865860356512367524371556946852907089931835190542436507481680619805852586527085058607881373539083409096621817560846270366713552989721830291830014405314235445159183045915957783231055933052043583669284461772077707721829122718990115702441731702766260327791403636011740466940893902375803924989164798571225966782492170878965210531161479108992737529785031254174063696164359163891563028127279500928214188793838620957885908199158815261397888289407390796464767018641417691567210049316042190458179488908749311185111167957833672833236254986317375223233055953752928434233955366457137830800245941296696636028119554329266131515297830796598652477210206423847033265771201092709370432147628636678845769406793814140061402775680140709873651827641566842494211395371527496573955413523707491588907464123383765754947777853778027400255907645667266238279126796149794456966079980307209148177703438999347985207415452507853100641785685973202829141931262881958551413191795621305177455492653438005052434324883227213414498772968501342042630399746565820642891187437791026338490341943190147225130457303419909772330341140480490847616238664986055213324039798750630435257832573387365384846687711921473207693086624400614046629922614015947896898840231582781382285961711211373881945469833676899907153695742812773023821732159063067663346189741844225197902408452311051790315952800308443170924639261560377881917816837978229315386463427734329618795723107254485391706736850766581957658667243216451215513628620875254809130430698418270447708958172346221701218520864147040034073614437414032647008255675130536247697322067953570987693205616743531496613389946931252254958463717942084449797171637917161596820868269289535033646016728869343020836764922983937395151067060011837680774098992708947675467145573306604856254893648536787931641646897765428909775847682689314623516415209503246383346046838103482955121919477152874966528374992629640735618804105364952042605273917857891933563130569172065445125000611589948570105690593236883368163195313470595090223896969183301507514044678337885940557128495908609430608646982878182048482372252682535483262927171279447863034300203497237078860520722747600712323717331249022746716197315356799920299759856244494572299555348188434247202656455031240359228444402838079961074376753665098706070946903991673191948737402566859887579797946626722776470527294128538405621412881258297136924121265355231500545239795514057698997131922012444111251487194551558474972235132844012012151073650471474678808204434879594370368863950474331043636603990261738230978226985551555490914485408221366397270229895770766592039370755576983109535499279332837770803755513217066124727359861376583228935373111352024091074587926870172052106364358479953086968083925200911474801669105410747111217370567593711209072190942074042147869773950327226906612977288801298038582042614374700886972627892225558877784303244000759745103702158144233794075344287522519518102092463894865769731181746805819646010483769755347380572837341500750047507124964200708650952102611827047000758889734517170400373620662108424820331295395153926654879650461987053408826934812636974572301601414009880157199014318157913669217517935284766283471433138908697337038643268120925655421918739059891915958936583126168248466595765197776746494243902148227740207999348281036476140445129356300419328861641666331728986169550098679965543172207294841042907772643949951850129622411384190737702713739995946303088290210384592093814806908287749258718280012890710142379536982692053331068745900587478898090938915624286445918841021282484118953628442184127892107892902342992821397279441929750184998525716983310477708017746791780037189668632705760229044292760721722339426633583651946489228425554606467601837061642011031898875412401165970884936326196248232711336897765775569976123105998928085132111483642067733226026475264463106462312510567168627585058082199492691838569160877972242945131342063127973491532280767264119237954413743496529680277098898945833858289148267980695483690800281194799243398783023406872528604586864334263322869127824416892109466045162498245275667281968842297886154780942824938057343844139763181133877444538915134509456256364661478997984471042879455893817739292061999537380499434943319904616289515774630125052142932734038916174893904667102703172551218062437076724384024749094710784944145999776204126649599412534566472598086874377597300683472880190519390707429320085309771886849852197162189121270036561014808044738488059946803105317299459323736670043976066666218636020452043077530872877672663609792008615137395151589876067590704662078892062875265315597449845890247685655255691039373608190349475760166525216874226346886226319858593909087206892276172983225588398683940718203376732161209246269652080848061544519329746839255853293830600295880391915604787886239432827773655299204931546974545524195303452623831614297746130702107217919556732392063110935407497393389838537710181020895676970377977184898383278270674697244136786013454279092328141328347826292944516050871737773162800619937060883769517613768758290284380865199496671428884546642159268283836157975568205496577576897060239856808116380742679750061970773197162598156432339962569103869024171061272867769742143951061269812365090089753184732009889145219844681157770806871446531108819136491454982850580574388710292143611073475742420718320076113344182760089953217568951163642308575044096651233099662425773962811126490076373548682968361377518865682832006489839489422395042224570622843928754124433063296924399941916856899978588026334015108162714471673199831317385022008291739790156623251315439916771398554321464661885748714472692695948569466044435910227120320980200217451932586413598726966784596010285558253074847083434409196659160722950170403169969765542571801936001151333808044648887313958572250624457755626841419539714394013720142446798602036037799950286137356940714189760876803146343222300559424523153240418738185290960852925122883804031889967603820524214682526484507863566476634940058943237304081785518531856922095209970160810924255198493364216541319970629158620157581915417069879681645735852368170233202887646142998937543197677071777002174852655225696165624607821304061649718493871793596127869137998526386593635316074917027298905591974711203164757234539660920577108766578186294853664811132410794156064628171747388611999105154287686798635164927634516849453885963277799581152461591095529009826555963531263968389005726246678414108363334193890658186242225840598258176105503613419583461686927906917444379029515372931735469877268024489602447517425367563001868715259989364675632603064149056316507547555904579047856160789599396424025053165023345463703361561966636629046108075426432309198968121984218126061173058552991789532721796627858284379460722852497659583491675232074861182128175892843586040142231171635880076797239209197804158139698456486247912953283580135963025041933842226469913687343855841076032127018122742161393028496210104903417275171517539310232688050616513281992614025499205716999408239845038096119860951134850212377557119675543260451603274624951836189149817577049832896952479165511907498200944946106136155160950150303473082139049130698854581067837480979413666469750050355077847166648491512824070858013641393949015518643914239208422261128516338217235077886873233083921065752108772472608518516923123304751845248820586789702202877247920405961583290909227737243143101679928486961196058069854775416309383149454582962871478764696703401670048143668748370049880341771965243393376230380489597570242185346195632585174014999603136902563917322604914386738241291572555476821927087344538504340789983110109169329251906042653812320045836025307804325285424223504415577532447065973421727285063594088926428328422430842125362022727182768244432548510885669131617667941513057713340156176020924167257395197567839673626355670040177486504522910005176483900365010068367761378934339220943369263664823574908486373818606153791421043396537119583015649842387165588418647476541866187399176821089234011531692689408628400076328313890959455053488806638079535354721739957337814872561518954302288521156318909707588902642438494003801881673028479015366750490121712137225274058862774961328220394358128727551274117727459712301442477712466169323790266736471752915686502424777504238968933821593905303375283796530791012327160283448660983976128371487437625752034848324464622834226425152030145385238584714127989612831547690194258887730694048312917915279783053719108439643487549351791545622510764966374112233982970439349368851007400757027005100131265807790595594299400898048700697045865546809664090167920016196611174426836446140876650653112182280426892007369302714332605406600897407936743537547479312697833389450860630703855476406154233384886888750222483807879369637732364766930296634904164672528978434480275011237664129029381901608656327984112323106003385023790968818134304749890084676007490624072011297646733298505279589179180562090604364711778616429256380257639162229243134214273471178462003352939040668619439315515983415122862094139722588383486547705564457167096693037539124247865342632426760804355298348748276800288103575902785676226310434703603256190469380020981657282165286652056271339223665748071381624863484457752839472155432423557030567994477986049656662857602179284310050599376764326212633727338881667946985798284945230194578096535573586939252839651079743046636351178164296474703098109487925244502603088064932018334140725372527810641523742120664118956242847393440138594222924788169883493333869855436801497822428210245184154463318306343266986252124206812509414252493165022866350931674090368238010054291702066496403340405361931695012284238993882699318925762418646884628726249038159640093194150407327551823091319575407016074468424578233725703957640151026251935866819605972390133985714676744382199400040423478434734200455846958205222695169184218756169807787202992636695347637811092382918923933718475068266969436165230291191199308228053474423682871964199812225834159992937311722161615104358687887078677241184458159035879685999756264931015850003686382806048910310375030497281798662778100475185052708374290530727912942712260954875413404648954118544641749487887540825705789137825270921254631543091823783054328461445075631628244452002299798478850927143014546294501427288367044218775838881536341871378378578600772298352721853471089612860242808920080233377071462122096979093747320873141226226488790968576345184949941243222491931927755126287725128048930902026711534842984027304277490707161938293059122488853881695881058336479875755262448916875375582052440453424345059051654696985152681971594785632195680204893522405449245592171002056974179586866893891392322333100673809940063039467833700764238239308981398919126770768493020421134094680854372926210887415771501866699007596777765695498682190562869037497287315052148882722607621733914333939560480541642755555367767957889586196225102569394609234643107218866014046192757181877872401922417920074909960143545292137436914523164893935298010398594405200488224639156893432610905888463097509018395267145638921644167161771488373973400443820561499420820703563719778237921130960695866529699536212353348129808371092441238611667848659762269840881533099682790279669075468699604158153897827744849211414888175214185067348940553837052285368562228843492115345725043456532918099807420935746989789406848851659050531113577043245258168012749432929040169835744829817875832462145643367081576576739425762588414437504796766059918393724731414562133303917839066212477115824113179006447467452653317779654004190061103763031011976222851570110922310601748849601819967356347481655103367127251677319288600628761099123836081402134489902553816977613401240485272254277891068471554513123962528454375366980086900952924807017254322382145680531727576321506074026216097039711332579426495223922224774398589727013094169717637182471210817166114394193609026912790569167034908485036991840366054180824974814540541407893440141833440829334783309957852784922603762210010309501352627788980481712826867079514150077642219182634328445226030350525440290757686592836286523362339467062419161321373753278735755553611905341744788443497693654893065829087737374561762447709840141867745947173376025783455451460974601414021792199400669753334529301255898207016081831942854258890695461155653609023982218729889705458770671063740178116015277026063931179204051202276749178176741278420286443549052974623830364416772710466915251051184812625867659972616561872104628370107288938082837502849863275884874380269972760568632911870275457649145171926273917205002132375817539284516725296952144712946685553977895954637524591777760980709971938607059752434782278007809332546500328820435269016135065242194888894712255756587249493033656397843018955203453171132530430262174293643168208903543594982719764723316285834795796899774660205085768423588507483270439514295932893375360391957305922805231436143661741008942845997742641807788109320033362786046149538117872445070297676965352895861364681621471973113468519520176697977653919396592884309065017079407297619385408918431562008932551458525841932075707858082993906108847334350329223134244076022324333167556449359819724303495671842572782818913850344018562417458301381210663953581096908231359271283136783406137333143444376768192501075922993907460686886335604744143342309154949240936265811340103703461604323635082839241071882445697895915933003247414534120344174678289613723061549795233802447450590189700860668483638003936782918335825281883212351947327890239793382149002773471028347290131962005536141067193479885293584314905857648155395928204746618227770162804273308325643213781628363090017011243827004976120166534449030506860756824501977294709160268908812875931532370644838959476044029693494747185115561611173737857097495640907978942789885303987303259495410776087874368476296308484779093503785538103990642511100844294327173418246488678246589557209686903457843044041910237558799760398326058979462849759629628000985564087027415600367884667999825150229150976892319030861728727970746245568484071387275376896949859146366269050618032154361765994235651556620169748322469197566930414694338441795528231281257038015301666901211877941770701955622368306711430299933054034241530663277773031374691875222336612408296547182891719131734471001332635539306193469792039285143506132571341781726610387290636713047163191557084634193566199436393733745053187586347111411360500143090950144031896360993195998425392645545502678232668819675987601049559608489241368037361632444165285828016004313654711813507937503785477911342191035887042249549428972320577923818655558939486025546047133257225845053837969696321759905504652882317774956226901037041318371350160231898268159358221418234743593721083358559710268025949835997108157451670466345178361928088713977864965605874163844373398867191135316429993526198108352759196827854763952441350100366394151045449409482625220019427734644109651482388968488054497987729243512604640420772150532944290129257651442989556011939453617400379960469220553708313958651097852826174445258772503658962014223825585896003138408066857838474459637252989715859269979439182935463337812510670146227377707156961001962150395051483591360602704889975441246051103386173580851359887230311836555773780711086224214690355374663603847561690204991166335859494389446516689527271991915264961522917992080211216746060274233194218711036041701627267264960479316529360258845973761976674744860868331043598811712403922917672602688785918789665100085935278550834850468983967013016142881086304086436898631624808252891396127132549725731541516902691216653001112344983046033587783805472492926243753393603676491930730498207610179192701872878140318017677178933748754317495064128574343616867315742979808225192248292747865019282449359597213822136176597393715405681887073008884063648824599069230870276096749963010270675816366495161051042357455269317212830487145635742117101151114429237031021519907979349319796451170922694975783349105886286011990429683179804727972103104820977996251785349558921119174698391714814337291765163467512735612590389316595063779690968463513650859933201102067523757229769604676391962943529001646917157904573486729326495965995238782652558930166716180778499053440909146449702907420048895548918038625800949414923009394214602018661325337933255626859051986852472733789453062846286139403581786458880984963836592525300767821934583330751936159373184383404997924703625077222951924654132760065647465826059386028569310116220882275607389221379757079488860597218932101523667128559407170166501548193283369670462402962258121435534376319162664236498522427265163722678916270532291161008722907564990278605081508271790704451945383905572687832204418462787420605850039227050774828403014246123948756785389888005818486353966542757233359445067398576236767570636023266621497283477277549574122798025910770889162897394984954311873412443499153537834399127404830446451463761201507091159597531697038863399844359587068270354732482372146779510927216143627635894480604182300183222395669934722081152714315908237335005803269635111323950416346406472531237256087050917118643853255812423553426178105027269648170962759239955705751968544572389792440936499044683352831564313387586581908759297820296016987142274818041507493570219770422462962068998844724385960059663242995560055038038293921616549506354715990838967656917030160949703576127932027111036655344377790162558231154844019025692415782646338571143794911615923085196860576073221977541587690565388837312552849804091395977329160978158472722898488089051417042174683714633422246346848556749163848635281737680703756915989371843235581824438514345271116495157519003907365559789601065237396753522634769792893537081938186057913514646015768331841195797101240720817023034676657110112576539498118583055418837482171473956774100799386254446955786520771293479046239537633371903442111130898057227195386278512498619454565129411834196221965951964716207189517733392251570881041431145710096220137756837384761210528750023031345212187625451968473635627840947353433868682984931215950289714124982534269341637317892156237717533321110000249813433301210102813831458527758861841828979904559208419014177170485749670728200358137002512219377756282337706046646973231242628797361599806794534284972717543012586540953856176516654010110476920583227176648509963918893141592138831607852953981653199284951055502144811199922205749528413223842375464594955234505871918718967055060067749918655968824816909368517354470443978121433669521956601622139783999140230932527916483600694403246750505268561840924819653416721451677912600263169401907329641703186859347989706188624429192378731245997668835652328691721228789495870786454395625295967231768658369863337029475386063313644074466533491856532042072366486223086202485478611887776470671225442099297536602659479968696186698154648457849169732169999298382902713036516164602815523484699875145847330887131742198428976179451820704686781908709665353901612627644318845484109563710127593782646803742728238795114514748593722876954196308221709711713349277222903175663478959737254380411378336170459328480008031852353461973839571308358475393032589770661571968491990144365045065664978983449236495336877940325847120429787348967766898907322948185220999922512230910325000067566936290989281876941349419680370539733107036804917851255805286252072824618549867051307245311388969966012069115796126965975751465521020708795009619405535466358683463296695598598587590595327762277091428137574386888289084982552427958661084622130920276820437747764498343695926856934125427345049044641225118554510371322418473691034048643778878420573739285755282197728485989696081670646311994876564874448575175460615678511989859452209808208767999119324076112640751587341081340283803135072360070896204685526169800614875351873600515063672189362924848448097464918407295954283904854480173796766633156179691300731645833871405779521396794018206258150420816253472412345087523836731125725672449618758578598168988559157851816085349408532798750243223997747979165562663416208327174280561641425916580542628903259239670192956680953763385732625980633713887438176533468074399544734466255491499858345380930128506845425913034140649565227180328037057530022691642165860334002431510720704084469048102976691463604287909454349116756026796964163448089021162876134967389512262675528520241248791140785875981941861078172355635214485391111135785012067507031218393215192307429266194951970621808764665321367536478102059132967232240281041877409625402339669840826668171624654442051811567033551457215980835975687254901689182780728383271310305303131242426744476002778343990245119007732600734960930448740324085743441489007668292323878060488111020661190361779091125164485049362261738424162218052722849831735299091359798416593116066955699365199801878507591275769034596249317099161981019980871490310394178195162048765740436641657015187085586307270857486855802116902566535004809875493962768527505545711489659976306079086712189285699704007213051620916485610088468279543411749832464772381305249437550238455062186984442590448954832635931968054293276835455628277442540616833868405690063795812175039860670360135189412082254986835620784960118605088638670274568173824304525021677342162875891953305491935319697917096831741448608572215706230228224176216991234760253178632726937714836528508290160681015530477854456770766115794672303542812820035249148650951619782529415720822480536702827520437695751018492679461311396161330415262865447841390920542513446935488806327296052945773617965162716696976135681919895791835824666198362592381053765431998054185309010771505779174121332179703833610195474324044351527771507187737461516738834226826180090008239089957072965904389230825478409381102563485919006684690813905004421666234194142048627874789402068501367470031822248302134088595265507430055517993359004240586319151808903263956540906143002261365637424136805082661282153097781581858295578059736747990299204548277619780534938936416953625105559887013417048409997677444081710003377617128591744571877557688280990736541286822961289359952535840733394533826138756905253654423825418340678811513378545199482107292917992491676923428702109022473769482718060039222040188198945774333589519428199874942701252424402441559095155189618249901796278357453080343669272706306708163466087632845843965072274235032851101653888947986400937458215458352826743645432580732291800541565653326581931052096200628348066132068704529713232497657600649879138567844337158327353132457548992459389623513367859903903622988765057967632212031143307156327428693975261085529226756444574769420352530948082920468244093505816223555993223585189106715849031713444973308760005082199728886844640263011378228555599611751074780734464249805882418724876892707723434107740997538398178038196703457359876670952044082716410457501259633792579978041992549717515329205933571929147427791852389581395496688296218173361490943964080287802510690383086420542698483190171480267077629381419657144834170987227965588612150313565012749658377077134385053371055503724768518956222336316095991913699103154268176287758615034301499879013134786481362508466935783372567041470638088543283222281004358706413902045138276828754009448192443069052485295291432981051005982355886906542114926807397948292924995690687947336303321654163173851287637895337632650817696167943531942882991992229366573830859304242312510533438076856826950281561526856905361899217855501555968188051341602875664629170442447516840936165853326159218741190352343077768230284289654651503380652806602951355537181342333524445981028883419645566647120736934754524316108071032426410855912864536493970817368800107935413171946843971620021943913559888563490802648078853438802221984683677070228634952429133282203965982808848522770601136431818985936494897816532445058462090784062842317065294928847298624623997421994257612767227290867027655284953522099430209746959859114525514308473509849924841032624769729565894613010280327118966079635950529640491341343962875338723087906696821047282514066063820091723595252166536267507558517723719705500469138698528966045196432028951998939821585565716861117614302994839116943690145934271492075174245369412616702782409566481442431637069873254073478604550312971981572480812513407868158585625671505503548224954372826532494946577120574736524370465875996710800221668930984061695814889723658460976045946177719808382479757785347471545472417653185103738932472435437715361406349107760307324994367374095029850628082602773744603063893321871254342323752593470528217350900762482746679009517626194343781274959528558171756097479507214691144972120635774698043365385809831665895542920419023850010496496490720578078487130181788706284373994276404820163570633027167394531921388169100555181798156982043530774192357948875809149315382341397200549776158227427208064310323767504234180099304257391103277058060389192096321436521705960080210821182202640718140609652637832037731029299589966788572179036736702588750115055085075589079416529641831897954869653405902092793237600568805018242639452994097760357523942680176871606972274237055947874843082708190440779499233870518817869202872802438487692083211422355812369881420987524990267140508538137911651733101703838155706482996408394998019825510344018303445397369924221159689323293269944055763191226845099676741755015168926204329592973546047597011482909031024296550456953713679269236274570301301699500043549472455060503732326286214386480416597338399601481232897288149481249909508776334293625962199019506330517122940371871946264575843232696892711540193117814216567757340446882238500061278075175046159066128549737829505243836940560381735758179854429853174665874942592662113824325826083190851215360179818591085703351103348554754253903915193711605758249607581969016023590907950131446000623518152441258992260912025990891169675550666630494369109899436794049935380290648485007916991432919411289064124841757243374675011303048968332308275976431153965895458900513783665274932718370975096029919499488855403737298477191768501869853345336634643026414415788700781775153398985982682206087009500460754519299819657552419017925862370271708815034637276123759495691613138791442251434203757866311145678693880837516537295720863579202017495578232954547772488718419599301349742902156517947029533436285524006594429279968673841806700293792865372740621455361617941123587312838441168962308753749042865545510236179050660042635232116196245331742127931686271364096129669195795706622493989303406235943393802850387892162115158804793620490454014246689832273530398538095065850357040951312236923129145356388705598525160066598167834225948109567357370379810188286175446850555213218948045980850684785688937299260050013493599753122323899300609205524502392092178786979381007646262708913075313270090437517483268126590250121388396865404777126772825500252589899372341661194838645521484569455040513716114129716396318509263145939425466599957630897063166779877504934426996623592331537269372350615489474341328598782635227215079651253442789424663905713100881867969800094199909890420331353567895718132524428853924174052200162936296653011992632453753985615060359617111071363724277280450118689491889736712868379831541346154886117550507851244876104115527246112628101817366114410795311267029322722268444310960930155687432479571170481461252208853776513930088530604605265675809609775778717088475474170754706678850309214162600863406448713633972259336928630483302898998597897388597725478849669061254444976380824804937638426290409464241767008402636364658543143732190224771618472128593907489145499989824367741724342956199013306955849611548275391576259349531441146212010872098723254313871060878732888771070243897219053951837279862472817630675838685906429819993331758590337151971582477727020212561660233247342369695279829053184364027744360176167536966178042630708027102113179525823531051934055514797782128876548357380062859918420546738358387967424480993038051579659492534179602472389164697752318200556295090769256759264241173902300242382908437560642550213510456590927628876061040600501419037329044612097811786728255509640621875263959423813311202455850780906452560661585857084701368237297695652590481347254048680359357431849028786164146725978632967038734863404558790690303466154794002447352551209974496455227746697836885840786454640670206178762034178840354434136620022928268791893165778579608557406788631329564662425798376666449044779378764243535784165478149942731429433762614551365872453367512064378624384100199124192158191712234065239207766013979009466607063450499586794287049211438092262174651222956432088144036853383743875983310520604411777311375490111145312561247151554595815381963094364086886378107992040157432606907254312496076785158203050840698717297478206710940695182732749096386453050015056182451158574262420539549072107281144466243507648134680710048404793968779646817989867104257263098313371610117136289530066278049940157496477636698866084172578855567080420187365316803563856432669811404073387611003690225049818442646230572522192884205815802127601975595860588395648132542497156535051707689316808047644483679539331859264867950005380476764731528419125083767658519547096311303322051187073823528109864331856147784172897455470214865454595624698528005970739191912868446973794298715556236489458560838184000011406724956188837747276271190351186719420049558674137152496874712000967368698439409380810160500275493844414534545367429067431846061953252398288815799122581033852833277828274719832598996762487561985308481285200655726717793034055409204062880183979392560309458443595477658767709661030390783172163261260347737413315653085717654120618912362118774831980855372176869676171072259718395322929940506590979212132891740176505785404093112052049290839691745782004706561579801564430022783904645801853507630391960581552895846650634067733987588577275194797149855592908185516957620587472832428821998300434562920116579150163462346560906390470509958878631915648606450312279705095967887999517558315803391374799217928775293569042006266257632646440684342150668585283908870584754979663083897263473337691914378301779153567148917254065059982934058139507171854875503152568974452937644977836638897519814467070075407541437554377024191470123564649909600840838145087116565907918250783076537633584887147162489424738713326044405779648264226056854260799987845119789470076322580278008055075402146406435392526551643062037668725964983932139676966747273576878425152051177096895567387434649815263526452642628812897051547729219504071842748020137601102419384929601366440984312207984092941483968377454204899557150611571332692209704196435229495722953678435692512250953360127217518006881539623768726567762534977739556847550890921945301995551801891551252232513849963640470476871424316102992216760752831573022940205653463684759174974040244980930894630522347591444157888478967630917249823722365212833879861246521307834895878758633508826349837260779861847093593690229243926463820216430293382673910063562054679938139478256099382850526151056132556645107862079481396959274424460056650626341241823119367774754087204142236784154999721583630953728771006962240485485539949653025242488557269945901756050230535532822321511917466919652839504886961832109753426132085913385665287430213557470047266268470542926072018933211289232953620267395831666847921624559350876329495115824802322556355222429493108921620764466903384922369878346978395700803180177832067618796303181712352001935128293151187517976361235474489608918562654517727371919328673604669544427242622167975671539822415552208913300583342233377431947048412446809792384395543147656568885160170554165892032654583551448161464219061314118265998634075951507243352265000886361302139619493515010187951638544142861846479041058882027937295373244567020459605061918009139844781792621676142161244171463260172497255294984516906917853247786367488995970691812691372363122262299466651475129830643655423835691650967430390549571282770922288352047540502394239907947024517415942423220558609345313845121060534755024509766519873638640597747952497745378611321082070980980279025618697855655159403577328696518586386299673743206061513273559952696352215328511650207078067528515238172759308118097560426377617362271185131044622659031306984214179963334359315336360024121979562057929051842202634579425272691759995279103558033708639360975810940525952552730179010084540690824607177385714373548386409303425099186128586108468189422143930822859368021728381856655718567445144048263676301991048928448328278767502618296559748505288659751800806448872044907056395351215120516966902508362403329794470621231812665507692743307690524841659062213539318519887924740129217178754093708399319167379470738348765347945886232305948284446999068603339912912283913669045076967288134577899891417602091434705873550973093576768137120608198461206796021260026092227161280614704104899452661569245282651468005872605556313407216372842058527433156837664291833928693365921255674713461000091069944548859237253129646765520821699072623426873995869547803317227456852748435657424933049373996854263024317038711689654624410896303376116734936208857573499584872321756393365286574912424221059771719843432978985492078599010975742113959342549633110718238727737089128146408251838526570321392985815441608727999793013798395417649094668525479103815428849072390660074316373185732643352865156761328172910932337045834547994672297475208837139134952739367729122212561298171434835519186356045868497652509266458057171311189779501602461631585364519405698283144575598525189338664883886766967062957464913977852483535096958436929665430455843660870170255465290140985581767887107231562572255293290664161786155570517378121071352481932431046033449249702205692944114608573965013528815096721292228537075939290012004587560478793261535450300500902777650975306734503507918504375516598794612223167038252089439208166192055691788726820548394853479578363489403984170027883326633095685841363172321730313108151300669366693657803415848234655198375085580973608109488869863398109904343386109143437520755745658630421351926186459942023015835638393291335313999358617441248897499821711790026736145022509585752276791892510265522478642148515016957481256909247029210038604150077128976419022302221424333870581301587318046113411916130367519527254408908689191925234623854449416323996661043641715585630792146492212443474189504850364064491353574030314106684198956959604172379687612201092873256214444790398532652221048480606553600052750280666019206691267187228253508983241396219358098362645534394282007381522046496645943193670484202590070742850992046990313693058252816655763803942699808023196045381601365132894628540635266008307809898734319321919394979168717522843712854257400613698587030704518520197593188433007616242866295883434326510653279215997841250160200985566148422071140246730807053254043787251045592641382806557818373949176914710436264418243053210746641511443338943087345385093906769937589106875636271129955453886896135810181602520545107568631888742723042678043976225013949397778467026336634508329141115618769137434062609377644446687380916889881954894205565942992219984804270890296193460429277034677067988130920797056988743058827497502802653158268103297613964005142758528661906226006802090841233107799797499365160626414921513650643972208236251853474147035884646441396563835643429341721872003933900460473765964474852849263626106620233272242270970967754555239436275586059724227867450665759634393219417182984249100630605685193886005527175988553630976048034876629413317343100167407023805306848443444271017706567991579054410556292195792757047980895975550651703606060008766904974284287456366725371873422673233774882036090849243291802346701771319350967061419009685932027840099051977021621086666937975536802265035209102184163962602622932798320838628871852866809971223494748970419115592272804982830504730015906737544561140843815758158643540055780495562291139849811924930864929875675851993298959901285052296203956014773343579285422250643292871391804268528812209582318092060162859868834728940335822381913882134457291497901442620400265437494701413470743594582022377697008632255312060733466265692045915926858392816263343309035591483814032970366943042199219093743870061811650344396258952193892134738383150311024617025120734596690393020266840883010196095761146200564446446699034771176184166751768181107416026534895138108901912974778101024879921864598538594708382106012726677218164090590952351435683035842339649787611679151936516800006302034588690373560490499019571681980856943271694266723103916642123146983903036527754812138717730123132214782580857350327389991694419387552095589496606938998019717760625084936975013709576545882851330054848740842011608246618525897436337750096494917626949984076430249362556208549827284995135974957652894709273311106493201445168056232155894239808544305824333982146183193600480104981931967141483226104767145719135379709695038166357600266403147978463412107365729663588788867554082210345813066086785342789876902780119326859658922035906086163709746713458799600225449421217756753344573233982676064849504989101588866524105826175482791499134103587562265840510392857668159081648082284999547865370838927648531440938003800860363995234385553956754762778986679071554842256987894941168848381519038685973051662881150352253547474046623357147538844258754676238602666817929139761461429269981388426354954479316395200508626206971136056989545517919282084105955601644839308267615064710299514146717820808759856326411127516586552876722682626522546435402338785612386934877602811067401279176019878262706620421668237769321201113464649110555512593727604403738667629700961021299560712278671112052622248213952133647757455878898654253831763062325578849648772804173648129242281295724773614105593515390873623984567978682996274071061883682913145364488218921019086224223079171281742475259250352928610058997788722460804365274106900316941987667925255666744801073731251225025096137580813980790680730096268493525683200612209729085295217132551204216857655303478693934877144095843979632196936720531853712050129762444454870859121695254430874043123053510673028363943944934343898799298358089757570152945542737932285655919321011901763352125450660983874045130621472377138878981789982692241516607396729182497867005839770215132376178304095883660898204434639166383662997274123908577928949883597198390923159185879826149057528830074540109985689944992001429746847407893736333683664278575452831830366439275477287526944093920566924522888369373367354608470792766245623716763736183326668044384139784869237611324493147579950137087985725215714034850229894898674320087513441832940996761389014532592217295307456152078613333022058368506440496646514536670698317283381969824557591767097646520186952001455926356880291884845706264878367153039645621108373423610771485133578437345896283873306896227547500919592058256395577987014573562058535984338534534345665151492924033045033703115346815224427703626341124283827690823596801049796974237254786447421914493740089271249247509597019325170596868530415456356284436516659252954318400816965380937342796356830810776957752806562887220595512623436900022551268849640657111376954457940928749743117150476084667188736004627973115651546527248820588794831935788995306186477155941217719594416394931134673186488842748749752939958731094944021913846818345361738688003035338021005145357775512004891995932606259895450631469622426902517721079091704066006618422973194924318647158515621100913888169647750599200076968356565309805903975416558567929635583997954297017818847903922243792449285511610162766566840749931266428321996848877411613640999426481628635761777727134331891892285502935319834000431910714326342055364620660215763131994892771559627743422892074488927978199812519946482000533224987499035724126048237556967620027740296693154971184926614286685028146855140004984310675645204146776669247929606554669362761449545834302730609687530359910569473282811692833490453347395900727661354073962899460977556730149459779004435242375031914246246471632618623312499926849898426406427122570330708559136504554784079060581195748278720802137976973015734366092558192957615435368372836044676478387974000735103669055872641537193302368004324316626884992400808156344497747502291986411280568242901374358040047629242740392699859211888283892053319536657046083109692492016341318018856881530959918636859994239686679438668024648729817789016543962903162277436721007401620635559352803313497552483341978962676864953145441035391410276816955567274310291562900079350786445550354475970709678948419010444521935698774391554447416932266573932417241037803404844368958152666421534930172005799961146759251279970474988642871340851348509449485179095693345545881778795761347115809721568879757419972601367980343668346055154066314215531363377962978366503743857768577988186933394483507628286437382209429154177320270857348958284069215350671673968464950581275434594469414314076806015500181570668514428919954567932526569706512382126185309575614049336922006104652500291306754962996283390038668429132506754348823303674757975491117920001793843401457872852558383327041255517995500546709472034115557712832264987373728984664752546165794598648935086773164119485071560423227130232173958431798603055394691648026944071681570902370390423132982997332543227993639417975011931832928000772085477527678035928685968111176841242777382931735724892538427679130355795523182726200898462289569683137991618943000928739648106041776988102085158065894048197767371600772386970903210769132164091059241473469982562438702932877733796908345737584689829857156654178421977091957827153101206416896123236418404236738684352615324254965385411098766991820630594417071560839745285488639625002918879771585453628698420871313446325095629948192623865664697365020224894244595101444960161832976509393098647765148181840568153853852710994466326690223783931027487790307064037816645498097070744842836304866705147350735594220526476159717599505902118238528568921216326481444918509826746892499215543877934158046722941970198970440586120985159568843957692644350196243291137840712757359881217063903119565328676952089898625006916067319369017323864305242042428567069808340602481691022091463084987136504219074554993737472434197211723940480302076457932528594777794014365251456270457302057274688603171876789336009940125114415378772471378321498411287872449882468622857295870049340394219200635529616856638178510760586115051255257542070481015036950828011537334444293636218782578782846682479894971376867674635165505309874937081955307748510560276979249597981821347108369290908533658544092717708702734197510209847716843832531081296322047524923115110184428932048296149447323979301198336838593642736589307229099818944314547201156922616369068958824551774038662118053534682709498337739362257914473216531158803377936659933307539139664150305905333533943792294196819433372582779685896963942905769633128718496455343037471110479016849621375740238618101040797595873260353900699264146570245809091484087490171741261175890729880678977847009863260456215916818467907133417061898801682214547847108803274168595948358168049094440555523943002940921800457570935134018793430110908549542513111943806267774600478777119121379062059942036286649256733350951700333963899511299163588416835004195119719755138003178343090015633911090767913966635478777534057646378900638279729438613818596392543536029018622649735320051608217396674136158490077566670026217459676866916773901460366524893726928626899855597912701448113464685278034987005387594289028956020973244735415452282428096256462073535392687657657940352509303911501898373543175958268541840113568339692235733928432287714255718472375416892476508303269094582921786260222822246722769650159221445493066441536546402225858798290970313239467294984400400021070429962302098131662141252978727874329312505004456144127768112891060641039623155598595135754864046087934821620395757696222449883778262168285604205716498089568955298123482437947647619874337644040345917011666397572896381768098146194805650315128928268018644325087326727864994934701496129830744996555493954416855882138788798113774325249999884152311642736152171578598572262998129102209842329401544606535223607546993091847076148073326346725213180495248184533014477835067518090793864944427408451644520043318882607143693944900886769520532735559638935625395432544023182503482218642189706089257788156140625555501955034521726269525446600370012270475273445464258305163927126328359263433187972913619218596218385578052473369034969909181583722907582655793856686368659889051248385988951995635078943438792905867933717582541310653446310596818019122583196080574798476906575928639539889649288482471342425543939616518656776494909626719008254019863279297068551803148820334459227902530091048170355270432796215798577373674717865207281829181194378192318151125928532933431456016634605564935691679960952623563837765717341267536319139190519546531013697401414259270653758272638563840920090820693142952550871229702494426278929113282131202681987714368733244290833521843230874782837187634441078095090589171157203204355699933051586500566695847463395302165755497663166697978352837096337320231577084019529001972052258303084264454179035283359681448841823469058679300321706867965494839867553120070310023670993381852052143463448319272248082022617152594189705980417900223842245245279179144662572845472991698900219496827571733043181738541604621225229079145599576987117537003178053912647324433001131612257200033959365088416124270626407302768646662445959000654257825961293100427356495790485802588837075501314120387487120027949813205519920291204300031705630504401545194803943435823948980845411379708202489117377350195178665642534041238876164371107070910935523123622690224448255713268558465527950712463608703395884363919712413760149314598374553525716012608819413094996094112703743568501906441478009537326787722457760701434844266347853020111762055193334444419992200351412435068146945390493956903306151726252434937437313938590586529642186539221007198615182307571781960974793238544970458626434167982742700738061889462785517844308232545685930615682543106554007640821048157482977925743211281469657960196217880339767765784903506699051182694855950391972092654969053769863206820812687114363726880141437738684285402476393963723500602666094461401079683377764553500899832109494456407522465897372922877174156328654373344278097764821737741705037847843867759234630118363126671379875024957951785237444926696662527909510188443808407813806035245433196958276495351937588473933668813597452608170276717481422509296642600472119865343976565914007086102121240562164282370789585104742291902763238515955243518409807959027397635777189371598871317083152870206099172682927551852439945951325305970904889395310325957379967016576897965376515018248597990452486263362833534579759625636799888492200053295437535925972363489453754432502674487659478597738362213624520433392348304923367719275075954034679930604462252584393130495170424764452423214984848985419044314511746366316292115931153115995797827682590638760578789919814996775123312579147985488481776358272816833846370913117330735170504576621721211637337980890602862041923287533199942819284979718850875095313766628767149834917695108473950339648450307244176742775480747933493027643175275847739892938406902174923578213725225482080349945436728236350384042136558780625617419877269547233208246610317187194961868303992019648136869704619321238859932039740046315112741793794980974042227587690805470204012934216396774967804640797477986030337445705241094894090608274996595900235255430006233566744071019585960746807770959196331753530469719540826344506599603496801448315200621636666003766868875070804092494989722005056775926371562790114931905853543155976361591757497747045097769026379955461153441594562586502644181848343369070465613138909301091603740507500476343148360960082989905180057156844894761899995851026155269653287302273598562665541467780870053707856962237936732472085611174198029955378393118993455971131656507573987426373426805183933929004708480923379168999231549237092605266425597672015748558263561814591648426737875609773243154387506386806598441675087713276107152938618430785989803006366277789892152478293885845617174893796375631387946690785070291289664764630463269175823123607861909051620896217127708066812100351601773563062817666528167995874783702190550118808502618090360586325884212261367156796852171826791906744921246857227732227080459742981224749617113066874522701250401495746000232418680592555134989599972361159293730149723126807644195001938736376287919202562857218004992457381968283928718635429881335624082740942514004898593134091300688152899679612551628719663891407336299652421124803086281472775487090114037785066952179841236298116009375511382656027311176725849085885051122842010983306892654010272860787767206038499283922364724906408514491877726762203926339148205696485581475291090105476462664341185478568951204526206181485475499325880917758807994943201319351604612933712458480073432466997188990500766635083323912598245159677610054090859000890485881323429947445767722249896946141788602310131271876100102759987129494696787582042392499817918349492061636352841475176411052086614597060017018954983541406163856298680512300814869158333318170478068669202525194023087842960254834457866206916326337473934777985103095137517756103241698204648979837048926904897313384641345253120773083674074347046520517268606093926781582067013684592507744399902392579683814022902013571093512486626590708608974333987614688353867428499456782459095310862295033442978990855411473700058733106046946864391733207578220537432003714719175979592013007428357829535481170771851895712806968797873558430660153506599783011647574684243784302730217929802801162644083530004049390548578226842655157483811756488324734764119950682912797561210488591133795727130606007557030052564053697588291306827656724991699916555904545676285520267554256806098352071395073236482447090146625121918230012192621708914914710110221819796188712024547737777818790848158050742493221696033944690258714482436868357561666428716977951265371918738451053876178638073898300337525505379405187244684855342532747951335074562591093547646138091410302115300131752137558807598848636364601916763090411362239902636122692654614388177515616437805783640819959489592753961342863079123250378605459241648086208763043131617516011284097615037895124927601420103852092789820137588399465762786304639916818093232379132902800761056447556785010362965576030665834305886183177416593717987202670678220250613595386286494905557428698786347064814133651432376083695800047615075462406218228576341290783489689676022805844265039148263510144789267302135855859525035830650147345587763952912062883334832455496357659798478196797520794797838915105142021509706419761221934989152494596696787741246060092312266986817135712560238108977942304132794029678613069657266121689968344539639593882442596111669104078683382613796728291480089174496565606946073853096149400151399248749852757407318042933230818449133343269880939055733293247710320391831166907399041219584524602940633939423496222974678625004235499919052917651294655066021228495808394570752588511257303806718927485936556548709482348139396374436511700739543433151494627317891704742179259062831461819844550883985522278220966900169495699118661017417837930462518950042175230030852911798047821351768086684264501858495154755041891202188466215743669573411761245991460922752145546274624368836130255250013696764659842734323477893917075872297718553155157175639706315278439245729093692931202505990552204647938543165477191976108348704259924763858588752510019604347354606407692422502188399599440910697597848551392288146075141734754914510087762196098716515080501610824356875913765076191978847026336656427038748190252696863964324932748452390004074229977822528464947395569445000390047726362187186081767232615450098331190837931430482998207724683835318182679549999228948754796370179564254524313084303309887592812047993768685875880211789390244015140004663892838454291247427697132937955540588151595913689294258952827509728383884517089842179729532528779855414149390706390874274778710737836470544410688066202195263761643255987032802073275152111899098318085879745337654164423481457047622941808034640626137783331563722649197173411654215104147115817463104041583518856848088556732933638233213194802959879011478260096687886665304624423821451778610438623106771159122090305482285124210051937851627980389227417664019984035578626747930597210739226603705531543207981067132366392885848927610349546119822296356558700728990235289654394435042935874493531715068603068770770528181882971468824281818458177499785353861272376949145786455850046108355783189117072084158974461831772114882099095694170524263623594739168835567908651227325287643678831222802195742249699160315441674893486725944881890488999835408325851437487801606895219052684685817825197092060317041931193749046842006406601512534992248589985831298817881393000395386566929308295909664202535340112420736363179218744834536080658895455527955352968903837082090522893423345560378472203099172482707869202715031586360890445590895100409591345977605215381482074563446702174866829596568025494856603730647926139262524327565692694760827379029820537278795017899787632918461512825104610987879030491935969173871108294783143642619662830634593996484804261784636834638852941170784821500636122488383868923637533222791832867053698298968042864790023303423316412724484102704891146961160915099322042370195180327277799093620961919273905859568736886861124979849075209730806848916622167268359120560113161224731741258712911093789661142557529327667560181858347960552522486932286866362370718525358944537114879039392348696787652227024538437380470231281981486818115768908655712413149695293843769795860905511425252862642208225058537565362226385144693286892294154151365961486219068752686476553846693207039317320408325889858029413270075242943454124659680247805020009728824396324219445313854051949514294181127210866566271616209350838257443359506727088529277991538942492935889393567553258945285028688754003559949427805615694107888652907684749480328993256362871215486654435762247836346401946173159766041718287369785069381024595122313146492740349206997142031667880509013442510130408265922243357631304265904087163180077564209459829116760937843937020515012326369232201056384949643435167925004880008995909678452289227363872766559029830285311911249545906692751852806896229294630172630453319032982726040508881786376591087912940747932104576218179870593644973312007427514764695167372334183525168137875669079567411837445373592804774536749179925572761737093734220086412015180295615508073585023599631468960064848002486115671419084265433822462292168565276010906729506033331851806800724666495367964342110393328611881008880619711347346941569760844335534678792641419417612318644574848845595146915747290606768971054269229760734941667266443627236014007131976518061676248340342130901144516977035078456203509229266925342104811887712016875303320401207500001697706507865957265832652931108496028055440629800205451951026867708911935536773732481272649076252180579985330103727151046047835510015452831822908475539386912640544127750568380191885628460217756582313839239103179767796066127372696075977535264700009326515024248927870060755991564765449757529092497005671140257080127144784579232797724621613347792018394015457308135494249308209818473918861441537399964866025627571597136301124841457818388030631572622950678792447300754275151042238866322668372046517528861199930030134182116444844789028328941931480395796779418257164312037498213150670439882156089511978247206348317225373982977780530523068480804388828361417333571093959271493682494211396551179818292245626422403452991226091912553497040484020395883293855423454457046110652738769573398908075179562954307983250156959677950870251999544334543167447981560019038903246075892946801022356722156009979715270973564125636703656054669154124746209450345108013768435954558320319471115481845280833514937375201219010198138827230456448103942582897805231449561996648238682807584082841951104776800413880580814320931376993765406536860001352945141684910180889916285207461288767520712938843250903716142353935272387725360859407672106252392050155739869884313047235116384513819229213248672110984101483589769096777895580997867991066302611793876487161882946925045603060284590456840217410128040778959507413047457536953262905789884688392994721132356305993481518994111706794852785386353996758760840957003989051032839817689479316695862809834185493042458682336405251605031911944211994318964783114127643080872567828404274679775186061114970626036310279186971161925797104186810432230683372586965466005275119649583989916895223386876566279648472123458094789069389095345924931353309576434168004692159445326771888757491533619528562625869135698182309139036989581863792393895927413765422771079503188363935890773008401252955705344805189549593643797094865344858674980525448490559570993676253687310385149244374263926506995619664421774529815152884831175905814617930324262993490632067036953336741127860096643337621289646579971185120396613231580704253233393330783845967629054985768254671032340573130464364968499921917244397852402793648584977844627490035938100580956275958529118744935774083616589372330794802419803209190598340500128061214089115551083789452024487390646115310232624055350944528548525660224536707813681894746201116911252510691717232813021008850881554327121967049892464570805749553731798977580221254007852028614753586404563479199711724176780107917672296677667546977266778319035139622460759522672648244357351597087032894567917143384099038590055430487339979782631904214083671339989106896043335383301326618385866317883520184021332448731807810993723848186764194557918236587433905879101077764374700902163662002801966025471450972127348905638104926879530210259921894501083578018491644428074597079009134354155093164077045372951093537809174506074478450328226292839227592497096218845260685598893658127737466021091285399280228214810342310880140744744749558264055008315578760832132253796146517572918046054832833844539111894504451257811302033181221964406025643852120881767629085536211234367169226621390607617940219861631537420828433813582367983498526508470303091798535313908373055299965158528261706728036965375252578650813349554335609865882397966913146642508066634473700529577709464415092693433443100809501738972997143388784050258846982659662258504506299928701163790622959502167055579438926142858140122240751120758559610080845302391735838119193027426812650564057491569799787250184830814979526545545428302684756108380831802824233168653492812524089048816031248273462764658466868828942853729101112834117485782933519771174551227196491253071528082339905422930389257880540917912194767884191777223036635279530635768599746096225398880962813077561257571670740960498155406273573444859075929775457234328949273911609779023773984440823182011060922247734606294751620970525381647607436596915043367648672049143511960069236392459909226971277493888383923809874830866379018283106562647748200895070031961802983421628304534267429164273014603764473613703501515048063873815277988605794867905873498529516850769641846675977190184244407841523351003552610751226753976808990235143391730936865712170370211487025997522792750795000965750117630551866475246284057856779690309774177020342427929719296992054478854511932038159249367527257017506687061396024569605087318856208765311591644086091636019947827665746900339963158006944155012012994631750233112749578715693072487271353588950144011359095811440496867876356403189419656321049046098886483332543468878604101196710730990970397293792028402052408619145622182528076354326010698193178368538441492758104944568320923109186702244659702059039611188248413501953115064259965340359188696487181948653552435436158493389521927066425331474425701857121610647876937342820761576673848470473298006473442160251582616274068795409978708963964866014176764497277837150584573920552664478272456642403661465428642977786334463499518993788685008813958811121320472702691628845225159798394117477318793132793471718110360311882517487179530555900623889231940492255113997893147793958795862197719507742466254506704665526135572957202972323211358858599887753239797492751052930792375668513803940576468339394581481980955885455256936377946863984340644158308049464476451804854266984762119215374475783602611242953745673451587118995670383308581907452424408572505003164860204493952414508558297117074633650796213027147314000787065019218954130660926355373996575280990888923056363777886872735139418346188122571956820218099424751240929485044039555872982939868718972847601941182006575292684398202586254966982223086040073635254538891815556772746876473415056637440087852049352668771772107509977787741294048664525816165863032470510592289798291351022540163929333725877709888194791254156928225560777401907430424144826477419340180774541567722790619882099688530055786795435595906109768061988731706838660784760588188013702388661692362908169458264567821419158634672228587751223536486746850602076371838624559122426150931090898468559084257078740694711946453097116244231660084230909179266424000352914930637934103517343289229694889136735744305299743933111289530856563049982552119735694430788609198395944306930105486498427128654982633431496472680063118082968860428509021720234008497516554831505526171785291617578008587931068866614816219592680901728707018302533410603707581560898038258542909390513208400240056558310684591012710774480417631350015892913277373435530703834011939332876311576965655238481600369556763171142181553437457513213036797117587499515296964400146569129933627298930096084735567803820494384642156023200830753822161549283684770281640783645172515851524413613394067537145687776890279443963401113048256561408371263744230503513475846361043766354467928164609127068302544820593088589263883885164786967314395553596966908335966269629284960343314328305179473433861932519370401246557800550354047012372274311384178870292814470932456658868771922097934169465960618562491743572474024595766985236862708706386253019919883758112758144892541268980982016217683139116474161866332362265996868731686881823524555691593876928310541009394172943494775487507086459652274695053180767452295250447090095477340490769807937888898170921135666297699646926678019975270947238370784495263831298007595910301020187259968233519295652404216174682155173932144878370353271499193813320685242163733529048364153805111132994887384154802740497001042333997819848652420729141483247173570788495053205481645602309495518282264938939548689393125454955584830653445886676832782376006722084374696028155250952885452441044171087587128701025478947436017655889936853192318282297178093836398424342824418129485644276538647621464773691529996208233272736056616121401952698571765059435632332728179522667588736329968961076721325208629728637562549876425940692702569242566622251825961339878330730892868395851744548264778084569027512343878894935669346315096974768412011918290631574977701410237727039093531083357462953221911422199771556405835778443608626512697070773531396157660319447581589907137268753782517856861701944427594565350065787035335211294567651940543341333618939884617808992975555234488088161672579361318317193391274375569562379106791997587014118039743727076105012732689369187335155552086836497986108093587174932427483136744576399698695936303977495116685148672589590243296064292121875617900121999234735236075149852584566191953657930452972367364204722563675118515495916911646634044861330991966947175115999547994779230029053583579649267743374595910322469422541651637990704248764857252279080236161656685009126274286294300667677199569718186845269707661233228339655990404863199484175457219249787621161754199017552045820077464008592293843088912006674412808890064932826909912379322578736449987379262849096453695130266552336513989570198746591042120444994261568704653967576756966281286408368331702401175531280517651340399309889551506368628441164332794274962186620987566743839597184759303943546203076089796114859952230823056028628599925728648293563393797920742933694276405735689035175433352662951803826495392335677828326394771204931804256759651226494118472376556235038520365749650414832869335946083817709440102049185302885916494296928832797156203785605990697711513742894136696818553460223346660373443848360797432410187221338030868082927136062780125679579985922436148454729865185124379408188845213339180461020495819560391279864304485301444466819479226440834068609568150377565333636496005093497120368530721131393872172367831497884700191067323956562882827795347473046391955099935848574518253067663066546984557152782887165024092337250229084430254552796634783897471724912259963347238406128554244407643946423737348880723150945067195553611151560654557982867603843519837054627900948268880171372035413277284659185380768771110276342098137106615133237140245206068077651052442307796136228946730832406635949067191051015047926267766165870210930290430926290465106984334914231109068966383104950776635378588890020596849955472692098747721498043128485522635742368697356687255954328550091307004959814381908889831179175982790501179779849167017130743098131094309327726040356624198862897457045330409707155215713173424941258078463948772384934291009848755976134681954921319269581491620547356876141043917628154044231004594539209833445824755434768100784256620287077995406451180280216617217666897308426353169598174454539909279777146998158060388209798230936647741942544255527950095806885104244332631602806354428889970538925286145336812733648231172339249833039149443433887824592794430523111410559645356361051547292854197599062170329850375510919477809208445723204667863724828143109217060713070249244584983325299017952254514937224924984335836944463702715285751995981295322695656987588071436294366847945961970583409406319668610814618098004247328969537840454394654915726122129963279679681621979296151688204462902872348958535700768457308459115944084739372219508220259429572854409253870593926562295886747527130749467633910742619339412332474389730654708777692368291541158017094833321631178626097454622000760636356852741216694981830817089216584591648694879222955910067505255852883329568921055269931739746393566359417154219626033708108808775921087338175469749136595053540538771552593805422817542007938709943626400306154833892889473440061157291077280581211853632603868607462325139431796863474181207212467219952887250746662755287865279261551569108737200225010628104239705739316386002581664232559005142058837391597519842525825773841380925151633415796742139852278123319776559489898194962096647056648114310777573962353481808506546303163211405701937877232717496374485795188614472292318657739984916540202795799768247672781842058112819530705993357738276178051846748249451256582282355785908391651871611495293702425911447100050559163902905738243898071595689466372921606771118252201186820751992880812333379078812901866781096994610116913873117034605357399702107023118834342491498021563430671614549722260705727753299329063632164227496503612791235616678826854837329740947178398004118612381921462353553267007934267428307819073807755966143062906514254718383205885071600047940371439393787307714164626645492987846937181992152433725309602827566929780485463481474719534848517632197744509882640484617686459851902794250862039710050130406470059880014905798375895469158321584698209976733854826960115173186282246791861602015041626847408713826050712829924792116882959852356560118978682653796341874539518749204968101514763685555811122872529444738852313835642884621718398398975820005683433862511416396451961169434640325398355060103108834891636224461564117353006955858699821416439047819162402100720563456020050591710694809664181540019978597211310079527509784333531581120276862514286499045608060874866400355930529348341412603994036098115783807451497363216685166693528595628053983306714422208112412516679328084331335196710715743587090878793924362708098870837917055624535053261626334997051682262263014041721333718883266720695057415172919909574898711079733436979022463608587691741627324099781170872393856783486568657643145299418219799337880339223178384679045697699728618519781380006484188111661420734239416032972769175834060295313842166895646374736011387288771425415777483357613879104315378392126252987159746616857023027943459599265419655243886600660535961171092801764736358441090312213394223013859252601583625830605891496728232152801423894430524614681523713927777967196250296239974099081435668371346681294619971143245396582945027007072112702790155409461587509509143207209090015984643565533266477847659166947764074939751932623868248518589066131921135702385726988838468750663628240205783109098836023876475603069612211537096660004721797868039743371602977764742812297707117215811628915388310545439364920365438193492910935824242134408039053100174369803958168070546040091210159338587672825468051204054997270493229847817696162459386058087465516258369969048577154809494291729984357258691572217267398493702778282427190530251896321794634804419129825293386682178360659929236199587678809423388052206925638705310811422541468339865428968334885494622157811223639991907931138116306298915922417386421232166272987819418153721305179726672037743828360618010936295912478208839078546938276757967462165090947486497160988292531057934958139188053672454759995958925393032953607805625107069382565089100485480933162478038096787774805568077820344859047590880031295289128867609007832434482866477606719932673684857721053541438141823898941827986592615756322003906924502705173897162800977371180357737452469008930599338368467369262297133284375797219336683704694539949157390085270387753215784702755873114596360455127843784265993373441945676602689967212247814801087619917758479622959291173186494423836875237285329904884948502901353358934457086993108972059316062627911974033461602039880515913781967700228722590064931333808088787126368804615255758248891931050540193337984725034014246052883748845332154499058622236856693112811585886408109408716383500793401890470538430884579552616471684042750035273946171193192125410427980021098606145636282209705099043461311612009225264825431572527727967480939610369745654460963155844495836292707976322202722568544018611027728986482114239882565425439694332838251672432215712301169979156934388352330884827888458289060528370826866840282603931721902364942439418320181012487475197613477983483319702667335655921769398520903097804440086660227804308839417836782457789349009607749276040969770084730403132665941429376183122425000763985363201811359120196766787025627562243670992734207628465759199846276430182776618439890737232174823704202665521823002179842359288106143988571131716155459395138106467806110671847172353633934549065464591759915460257167940626563655294529326388537014820779226307164974764438989411005427445534530941976858874418590421249769588279325038962774076853632409475377589515275901639390233333543257551979167556810117343143157239772518218671507294239462206273101428507976305538066684144519577526862780878281977084574479787185380169850859791473537639698903667856643714208453312930006057704485745210483720483378401187844856011871664922736336095215232389423929113993273579401013014383670736525651759477610088201335557867047450727599514270840912194910446579978145658621730573867883238515543470222587182795281243272416456713607907033948879988777260506074908536861702526128644434689891577312231233651907799860301976880936944620702664455337857978233755195752229007385730738450062289067687961722733014388849920757482204364588976069292783860514731284415250521704555488630685865579628962640977203469361344134129677027198252869718418455243725287186040221808083161518270989527508387083151753475942406837422834582423342816650606968248111233453301600944141930483592614246882863600166436809531820916387212556424085191712299964921124848453924683550198267672555764981534975233670472211488246722833101009656512390175726081855175452044204308259371142026021675177216413793292883714029225877542884036123567045684204576816506279595090761983617756076125409570968739210676877445317050074648022131943565768322787017908509930911835602761771130731621815230113043455283913102456198851936404917715098726968714483306216460014102443631928931594899767218692043710507475967698952468538974423553276287928308991070777037026982208344879149549353068074765275250847910142776803456203530114512009377028544894019752403843311540528811528049282826820656105062225788976890580035635718998859223477107373349878598891297071255893207056806239836662249754067812509655623058995679806118713490992506626894741641879878016109661541892064251495082650529474873167413504067431061031287531950825862587673932723875162332836896440435621697667956229551394509663073023545894062235026717075117676367110712209359430552042974189321943392421939862133996551883251827923639993635357966148987600017071676662641889406607104661599854523616186806403964378762708524389840998982529202297802035319269537426280240851718631366757713735063824314891537293347218756808487589370430332421389309550747510263039791788631523458028002048531477366282640994407117928693442167004045097236420224310125313181872859189162757267824487904408410543007009213655679156776025299725020063244485519205888392421119714634671857217747801901887746904950717584830244535104917239971973685679404784350716571100076821191657608663857479221940154551603824965570720532441180807187198986545699999637857582348353033885809729341754031791363155211537658679316369768635148528499345091100043348220670218084141887910289784455828317737061772966354806881430070255739129271226532326982692109275807674379235845445425615352874922857698146891383137849244299241142574688205641555299129811332926486782218513529509008863187090959301403424316292882758908565175274924986001567454275475660076668719137612645090535095992622183462546606322929290618824398815713508021735575192223479424035575752778182409147691224697356160015005370071000371833791770647201846391208526763866808556231754046150757890966687851618051802073584810855601074128502271105934665009905122995606225085109215525540540296498809676194475423285963095950786504457352594557612339232607199132887081401052554110958612527553786825353277700591687532748677141986046977004620063496152060924068221121089188099273709021158765206005260583851510913337331567404133513369428193606990727056020579896125596283435156962192910962558731124489659707240393467932301262745301681603167718571573921412640383463950878961722826125343529645091089660959685071038984342648039233512898424368212774177348475587981278850770402276400113448200393211957806484734967636697996499077149238647944117190682515833926848380852615778968444154437534993987310036099445469200348082928087188863327387213669758150828916788120764026689532685941275813773729055105537514055330978463266076125356705039115809399134821074854983876459926145329609940148271925525035019610996572150026404659228700581167552900477442365297188268181349522453222384217397581752805716169817091970591750458410957903017444737332556881359585454677061644758943212534992615439186673626075482276429523016294758607073823218259806888956106741537443703474481846908308395803458040684674723762624696253242497571430090058975877646034010689736347020040029548486711453450659494344411435088241953601497656393191322237838215862815092199227834206449812667592133389379287972333072814257491642934264670970262280865233484204405737287303233352361992652956907199180854963659969957617646209947813926065594373691120400274908789331253849569584464150961026284985964212052187657057639091833089854550451766704148975433982993985420279910600415609818100785015814598081877989164817249338717469213980964171596053634867543600566110235541771548228603180458221552220237860148138185070785711683599423405808501255383277976277408883353629640291912237034527838749124630587459826941798187781132365155871637039843288466710850549271728290572141231453185130108291458238659975714833693346321343348389258949336482288030849833756378502801528550527508822603753325446131454792466323231005823831228387262751674311098225750854180556249234614229211740482724530520013544184045377249582439357628125452730316449220277789311297631251887488840360805566974026362450551825348842127746809800690045050581092666393027184443609017610841622668973665842609984238311496073919031699337443872739677718047145773231235929167101322109772540098806241037176777785408406447946257695564297503502820050238562280448555283360044242026717309027936474378168385342376034759570159802775942770134221536740375446633674485292484438012098154666110208731470651754506441964937495017564815451481485847205570076991209149544754225857385645265218115310976326623139611532874638112534157117764991005918792150555589644586177216470777982029571771347488292943231021534868797941399094394516317730443624108145196558932903188976877559338388588809176323858359613529668016283436951531618862111090899861614242064432755276443658996555659038788851606882256482344943369747761950692434393397190333083410290535141133295759433629951210460737958339504666447452729020254697053347582808549798071711352938553087471494783850869414162936519929870503586774278149550628446321489617816317261996062789624469129648813956211698348056428152617097480923782515846027499731699008653535833714617034250830656896465552446313000626775983361459542150673502993626297580172553735424561739797035653887123133399343646133742480515368378850186278863445642020965569144189681706236958643749262129189866027374560950795935867313276883445271506425351574807825130966801439325132905829666991576867438258720281720114312084200356386520453565902853827841520530400604139440008977935831526564576960809655137232603322213703994753386363006876130184419828399911683942105615626029454872912444574836337013084196026044137775743338254813979341195988102633998103815421097862773804766098645432517445167386646144367367780746673124783816499304916258611856949409087587322147449103033757139003950939757527112030170403291458194389424848789368700009298757183951849710413545255610890774842153709978128605659151658786034137272657515825868289498923822004303346670243569275123587712248131039341324971633481154333797799469035706949790882365995860140240477404859063707397092684106858154498889893421989736133651330187596776684149249587067702640725898789321092389791219030360735624495707478094603916688690625312479912192868210818753796331741633481838531941480795032250916846453893721410530771214254554174069092600038300392093190387537225820854635037906173188744634818582681912312227463253195335887224808386497370250521308880129160792020020604152659530001933310115920972512152868122215669697892697088808218673958955678669958831163312189549380762226450169833817271604086432617609411510344637838643204513468852759763477186571564993958164496866060036817091515109370343996664216432272568066409776000453522493808223307942578314463876568686703963341526221221378631518275983164661882731358241670900388190214343657798189361088839543406483316383507824581429619328774546149651145863737243584435495293057780802915511782889488973744539858620807756654206525820944867318561136430249821292640177954275318253510093514668551881737686567925699833647101829104240521531343010268885523020009287563455899969208941521849069636821789176529636039348168497116330972784198765203248820556904911421655508605034150416906561432274882276187458014964859518834696163517204144688783373358387664961016921340472409202734937575648481612653762150684585685633455087331470748915921506672726672744534071428649666555383607546417702538807317059133355669583825823661647212539302105467867847690262216370682093653338837049913397512526141585519246288577047112026251507456662426987379120403470233933542530385511393189087102356225339012000066377320494336312655666995399044800006664945601122513621431059295758629043541733111662909516713589265639810549951972586173146450107791564044682529606370975296009053264964419500316269875804111815442697193589847430929523578667125405909777398421663641766341045759603324455266481283392885694134443213768399455848301045763273787040145004821957479015964048130655314064813456467891199089583373659666397780309332065661220306282860553839905826004752095508931430791398825310741016442317323178961284820535982145691013598461528941110551096443877223233365893233479336885021992997395199706006236580124792813783526552501173108347596827881060202536911658204919976925895264053301596411023798348388469449250343724950807057113829002239363968721877772897524302129897494273834297709054468538845172845756579036435646800689812223547352522239063374074116882884411118668450381285984149882890954195018219913328981474001597160618519451827409647572857530245437281649726448271680702815380172229873403084504455455871786932052646518292591676291430198173055830335915359191173123673786579714982267329530578525193371657619581981888847865099707787515525048977711727323474954651281414737146439514434374111461281215472850662054503574168643905299962359816134938477085410887340737907448913752431104886032835013969673876593975840382354301312739375741426098133879828151961205721857422685019189521852491732953501468136863066255382352003294447289686302289376904781141317644775589309124398337751800811746259605257566082835613127860710827777095489469081311819627999555251438856503366933318808441965031551422417964297537728640306697346829125640787333608549113132117117389685273526730308385710532421593328353133876904559461738792625231129041252076879209357225181097130143174704094719973838265172733569197624248668779808620880338668359614198043263606939215238891302508982808537780884474806762740616741967501996325544137668607226475943246223212315827154586653728102553825061588430797645822516925117689286402117058019722806232705837513576113749094942838411936640622702209108039588973445711315929570207319400919482888743138260475304407929967087344231108942586231871236200730172806245877567631941556797248616062174804174595694800314202401634093221702483163646923481696319390068403397273430904788423790908135003042726989891339168380652430790368597613344152307640168946209558271698535817307450092259347392900941816940710146999126244622491073431542827349959171633151555575937173500222425528554436392384560846403855903801494609111547312898419882057571590403232670877764676424034158111383211624740756639219129300599081633090842345732570875012485983940633620968136660217656497146886929790709627865128145783589418095198117989252719299987967022951759594538964485713102131851203332959476308908645677394314545211286139024157703043947753860734389022112557606452660808118503401513011287353878332104740806055972174225916721672546817124386864054226628274239001555340762721499056512100817087931696109765689259852208057228493183648054624955789625309345524116876486940515077416267732944206342569454087708977644712638586184400252563895138020938970893083111260385330835468029351499882537617051476154908444230793566879884967858624545870416916798047979868709136428431366459279896459019931017197025965568981045108198287426427960657084464902266522588203555882091701369082439607468220367088195041224417414214969580499929781382491507211942302431767899910298533579046564328541442178180143076427162971335816190614910564556400393727387337789273973400691986148971307391189280494659550027449003341619375283928686660722101467954948055796415697795687876210100211930711502086655809295329197945866253916802696692326425279990622313534016521336188628994964587867392983849510193228760166573838133793575663559966036331742446884758716582494325193792956540325441962179065141684808611117115040843432030047038529515594228801800433481986328758966556486820786633400760325742140731350155623897789965003013756649676033207144627295177564702124219488124300282165864897145719908254152140681070566083516790331198686094344346494089650235124565842104990444045550627834515272869369941997205007995434459622527981996098286223027060778963191562998247951529284075076936682741655991303060385568700340710465004041321696880109504021888852917808875862777291851460221368499958629311356931759653634843873504914228446818361955847831246793323171106199900395524568939380883286507550633279313662361618955723969117133270550565038238320414901533744922557539938925966041123188162203907825569975379094352206850107641741080073791215529649689770525070505876625814208414658900329645045037728307351143854005405932377188850647423207296944985906391238938569942013843564936241323718413551459852294674079771458503531548708199260019293372998151306190574056430123021787134335134639498262367701319802251818115703327866751656565573911831645959692566952864023357593809936010741300471529215842324874134932148262733611985555752235484480169650782783303359487728698139837691619439335062712365853691178549982241871345478258421396242832818651243792953929099891921998782610766260899940096323591314456864747424237342583592400308338230611442516759870816733719241011244861411851807672089588340239552600421027032284211806564085852085492499927797043702619435089595446963458207626157773167691636330598196973813843592308470496141127041183729177123185307087575889287029633029723443930700542057512235651160531950769365784554696846630497882585605641561389807152380400822075529254901952050552271200527100710706094508846841760327884494521293284891402540272390870816725979793179417340919141927649073494461681546839653346569415162057236098493313883642085508425336875703853142807147677490643766320444198580858739278048625150004521101287696314883453491667518741580816011284911005767797488607543020679745657707074993212561068723578337496857249266425762049095051555020303321908526203654291397505597448786336317065198241306019028365695598336902512008395919546072542948237589311120434646149505134543700857673000271372821924495923812801518632392978902732674919625011916655647781758913287870031365917517009125218210433809012339499020190764329842538553670576777642192814182472743237332588407960997777272998884648131962721100283848143185316129167158242111890195104229505891265127214294060208371441760893950736645904112439017122611312925368450353856057495559880773135660804472792834605359834592417944295636889561910213603275468259559160319355841007411285477909392944033919974539405003086985136540658110176777173587609741322870279305546948470735769402680816643986768141599627531129903712572760506813680512010493888862332688213849725561613916820872345936480934655061273373596440123318847441808237101093475157228921566354910128599256684014302881769097295871863463702326143956827820485807267290890633807045191555429658175257671265801237192799347308927010380561654355819528428630802591691768064394010116420021193697474445839031833969161683295299829838467676164781901653099204748820125825439858695771326569161618580059160474369663276666423367585282122144024534294397372909568062877730996889657952147974727849496489542907969060770093826585874917332828746154874643968778915461388391026022544427654982934156692115371086806452065912015899791478940926110453288153857506016621153166380593330448672268814516380005405481723206363081612832089111395748564266797635226114732530143511101732391802408417711380972226053151464388754826747215538778253275696728979403474250742802703835934852987303028435901531654941925488529301934993224214028922739026306004806682657575208916020140697155800148774413705786954776782367683318574709418517921913588979397234222464212745857537632585795266971213421941107333245332749563019098982732407454708926790025836680163376299551025662512046382089706300799529431296936225740281385227994903538718816112393425619401876085669863850631867161308374592259542937890492249736058995746285195830021923637047498103231771884986393471431761240733568959520292722095598472975328488139542457352302448894540835961242296648178356754842345879874194289868725249043335556074913190626461797498024214985066478276478891693041457267178440972429600854979133756843070121326066058951761986447952946305074514181691538660456534011831851139855726544667784499282128275354188982997131448450809428681888380595806776441406146083566581583634109053954252577346276959078866167902407568650754471865145889778265360853285129540101027988532820596925917034536707336792414042243750849277591201048916047856926344255688344794532578552562875796141740589558505342406586897656524250663457177186379515914280208289024612027629883719356127914776653802381125169585259757311239109551404470494490160268705559474627280789013590038211853315629292731171104892755741606242129335133847687363712674656642806945854856784101584955857583766765272936161970247075028365444512417744276423501361641774766736707219721159576686756400681399059604229947020036517413796814035050943943673506646912325362173187463297896093238513219759389333738935760431470186920234607393484918495558011346978832495237696188747982494789489553822721635852192389124757244822637347229002460458592729712544530691568509839580234051246060087346057280842447093233279693946313609908756661977705529104989937340445714050352167884346120196209229325672458658886366563704195601832920860408671800852235040086078450779294013095883704247927083532348318066254634878859272118874264845037436487178888266495094772766687810898850015053620066826329073246637188879654518937178929039755437552790031474962770791173103254416758991828388534688510562066628894567434938980594682746698565067487396777541465133503880053215268304290102381851031900507431474435610149177449163549918419999034385996143842689176081809091605369714021288278549924417353664840248815909629902462761924134094814109609929290019391047790358702660489630701716002178080573034598285423807057290870692569490124093570990245973364750495416338268115205502263415889105834779364764879411439842580325541654869904494438146300238709850125483835691202019716930669962232118560562952380864924407632245609932078529684395125229567102895330615529901700266980627386610588574590534024385810064519409372851814740736611069504989286097283207712617292164853312046104680661831847995029775737848150508014124345497646605499997714351693447063560929437015374694975215928230377599423438258204033244391007254279104829678048112226398730550842939276791415927113514493621977096571288634993513082113153061957089269300272531545252638045943798446113373820355238895073080153646419663893492074181068182318755557726611644633504292131059341459734857141726244724736699135594201122522389211517096591554247796243344711027316174903685578362732533835233220425765915616032496896553439619173552030289321674611372475991651563844220054760931213246221398786378368731581035009398035597805808769422050656148617877262564280352270448928531847619198857640427758744766576247714573531729873021955682627700135305657885891896006719416545732999260025392655825325272369193833831099370247174341386824320337299851574217682885783684153660401813354710584655027614532746662604152559584696087868358773827858717905441735482448028985782118584254591416080123647067897056109297024442810447279827709652414521032033522580077517853718113625646152826885751233828702772441825481347989163434196670865727198045700599957373352279993706419394946555831175519759443762584016840012429959097904584193829142249827042845961673389590859030509066692021191231096417307054065683080666042562980246317012290300455204404155499938487462978567728527401983965763208023318590381273893026886439839145264314357925065273139715926083182566443677570147283128563094255879109330680275063732996011472260482458440694700721072344085931552565418044744130948755053565786722759716196702316043315645068871059802154219448381049256952424042942559228757958036706823719474065009693177919458813325164057276884186300863183528684168686479748110110828952394853675257157954914853135004760793030738466141850915525816469865923567186595631715878681149168600604524476615325100924483793130731294760702172083535817930529290358855202806301504037265569830059491894383938730295050922826754711796596135585101485211573576132917416439070021460106041419886099919019952792627549070201639341486105559839576837282742608296874392392439527090145706428424628521228753176840377730498955937156895399206008530469776233344090115208615482977727695015542245426069650627435577737882030098081530420837183841614359374371415171113396071486850602946093345463377303067259765496117553585502737167048069261545576663843877327136398249041120311752344304736173698370778639962291833920400930024292364313838967897816876145834526018720126067239789708699964300313062029574286631708718093919014227443600559847769500737279250504724831736742816053390749163566343285685386070254876750573104734352493261689138012541477726201102864408512879001048839633962035931262557632689246087346614563415637581615185235617237339669098757224849959322457254679837837787812961407761160381994682518358856362958401972022058359284637055000977332356816089098986547667506031806985803745605561520265195002717494147821710666862924455399551679992935266618788563981240062907316591027231260233365943710003669285705371459157910107738000060217340573792102778152583525938355864825238632103054651988130677754234679422831187709594837716443113040768995910895455492878644378574106987382191799866908276989264158931885291368642302046713827875728347539328346341062645880063831430998261929283844416166050538071313522480595878805893799434779351822223329809535431103064999065322657460001199320553349996369965441580329948067135075348612808884844707400635888857540244693924382898206981145488952027502525568754427201444732023862433254580347084966149354991345878082927850564630851926562552323339819673926627786848978909530204561987591865626193563848039836530995409674206714923794346515932738123959908999337206583933217069677006352639390458210200295838692358244856424679573949075361861773094311652199829106337704939652847253563675198376739394590673439866408297700821395622236307476889603084769582488595218135148897588859296307453461817705184231725465246790379473726586798451517399872296888659602133081320543777625717638389727714447308876365907434300177250822171616608084975679766219822253138377236553542955329992593693479609871461885358447223124406543779210604005121096274514566426717882414262283045119882091950950940718515650636632809619806013019351108792931281720294901257631241726987218436296931950563615220008098857952963995096015804215942140338600555704375197402059453805811519097309038853030584023340414907313431800166095044887430119523800535440274661830553223624614600729787296759773735800366442096284698348204899619130215408414697153350134497810051818910385354888855192286439536394155236048851128138977380483254529243191353843826538173665618169596962346479857069626307657466078487996829974370379244848515655199889999433513239114612862979555171354982220902485574171161270330947147547166377555459565268340939715112416376020982395305528809876008844406486690914386643236893180037761937060888473255478796026476586866895501409502321643636643967149008447341562790173740366458435961478273390506787786090881969605379633081200338123800962975601987825005450829146484122048287172589476910843542166577625406999502428718894659004899694398699832174902633489441515971774085101623575697545756598326409268609755221670776465070090814065209663204157255698348562704134965187159023756262648719883247746419140413137591581188043911619506322773629194713173235286846562224242903820952401756108364582509528966804022143109448289567965858692749928314919861070202149289956270053872883555196223533036798964549416121857953889825511688848427697316754171934797473290863754764990899793326178914501651191810388486139311727244038731480747969948457658926727998914414068007524036858395059267277417820888307308626440707436883855440413564543545547458921310173871019324599979922353257222392178598468694272747218261125125439987512577430148219725500263328586069140420607406244462346148132616555635366520284152943929960524358832379304211747972867911982996564513539118891647485302914638616936713971384656551856559773108673584146822378663640142096687333299951468298211664678671752635988698752101804846034021667744708800913517959460139587747387167061222297896605139460316221417590888471872404939674282663908324662296408630190456141517596491711128520245706749280942235639708066541039362881676211996623056255409975278766793306975172528074487022774672021613237042629170596419507200392058748541817664485172201185429201727885309077889715126758434345414318758846472439308125173173720098941107615895263072517294613919040492470216885002382117336617694061163905993953825429487016053077249785789366186466889600781944130392689384937237247162976339354896867161473708640186048702577387371421728409204772693115053936035165533868292744255800572696285532293828881720707615157838435031993016680808091212152304318694962987339237242204022686665819192594525776720976902843349188372878290685364952785204306257443731343834484193319736990990782030212174652291463517864106889023154282341212310099333042942729378745960975813908539310083637663149031228124267048302622238115099754913139726487265187569416665424229127796890590943587991096916652904271816161676852181582739189438206544602907473037331983005413031880305157037772477357571794716392174407511924367102951081071295513143847076191619840040609490340327521114974497717097359197648901024160648827518819156059064257386678907488492668994369806763114421925685749972820612904053706378769458524837095246906725199537413881814644326839358087313252301431558106818740289522369081705540494643065350196173870105473977758515542572321853571626506569805162414031555649285302288458595632906573532310950166054348759431155863465545021124691845462067128040883120149275285692577530023410725256785667930725395661806426178895083360646703278428124657799499143851998289628538382699631972750375131742299608522829839764359423210132045788047554930261706825469709916989281726671068018337651590562626682216415786505568389955371803916067299920774399748140800428296590399889447215576112967034858520941096575621357760548194585298595122706802032447020385478024722752444400970287716716438050976716579514380309187154393336171741230256422674677450790564129359437149636489319193945609418699091919918269735983149655643105460156650601374082902844855798819418029466053537388407357490240112908625029594866479561406563113737185452541707882068880039409459747514556109280120254061790146709265865830542766286404848128664319152046124806752882537278999928480507240263152321535203831910859422139961945101104531922920419391999414820925851281847047045949697049829191971568452794695021544832290694220773262692381733365850543064236500919896628794294214742483367723216021047819768699676155155194540127700364727161281268161348551537422378462039336711064338817827505965477184147110837057684082506851753685011130671211893617152908424311021186726207053686632902278374116207855029328822021329753680446540805796629516141638976092778492832219611908831049992178473102982530995742306905306640132303763944940793796339959409546987345870487004825939038753194336550681707739120916497201576637402294140569082256597151901906095471543971084266633071362807065888362852778420750454818092752913222318511766545048352500787376301262708804836910937031355750033056149219504766316322001049958973725629492731235614418806274614469791521612134371558023424119663977311358775064695444520926067318770887879007726853154552697242976084203710046770042325069210337741113799752408182276538682101709577988433117530384014166419956789632030663744045692163626265902898398026318557719152932001709066856250971533321230372473953076062160960024404393433390364084155958725750523057992868327228171552800416126509188794765984683325652559424113163677950101855438959692867865000362812351619879590386118704337454406313883867299835559799655545772118763080871631906012116889740609877154956948902120598306920321043792366748574278439733785958300185732086858687189424250996170806516403951051723298226134108169443012194379957205949248655652353850341901633547202630471879592922770090087079601127580286556945698988511098144305711551842816435901185136063292542843993340312384852647205351356829694252516076981100437684059078627072581719494445404447858897244633435543844897902471236333752848957257465311751743177088955387022543274637350995730095968710056880874710568719398066448118115101303292915382903677017523601319406766674916608309945163810302182261395533193922946469834744477219192080043096254735370049199935688973273526658848281329322864928669345266523455727102644184528036573033607081272535653265356458678063962953155590716089996227247520570187978986101999820739118792153671778419073925471261992197648916580153486820314942274916683011442089179382950269364434805617110025214645137425578097373718664340297134097361943312555894511341022497018346881471482764581629054363454315132536433816700104083919423576690867864530085798236789948424614086208219064753050939409532307637897243830767334408040847051835012706075533611897492226370387911527905674747871098624987159236609131304485025549192054936570471507076026796510207353005598217160080965734870869692985714147328338818137134481507726253871332195204208533523684114600202090081373329367493987552946451119736671238322058377332785430843119915545394214626754391414113837955739296342384945080137129294289593638278066604034333540631113024110630801693547751088753680884213957834926934261526519769545237180174904944576921295914327912189143247469523917689126576849686357025636157007338873989298717715103325730274342826957711927040144306982380813880381150046806310341555956413945565845028451277271806506629766402072939811104690222037154684626535565901489362679889290896003575658244336555841091366470126553432856090514984406800413788843836300816055421001702315729064368317808605872414997977546294114761675934444110727488216788127991273552518835156135771785847606697614595860699459906062529245167064852643207384342522892747722634649486807030184689386701407637717726216803367253147508737242243597882666694785628248201269315062659438998456212640386585940239410869248199561566094611643800260972161761091682800283337553703054292482951347099062966613691450144225146020199008850306142285180250607419415244207368675734806937621693672823001624346085485297679398130289920358392108718157726323012877933177835963655058097430389998041734179361574918460097919190911546238713642828431845109999638150607867268170125948377463391669549335950906029941476967350461680783407252744259012337571059082582584817232842663808139600592370928066244469983566181519470190581990463423659512840433138745698231745364919715301365540387543262490364478380401919395855487494907424131218512711365400884211524183382042368229923341725794325081827408211007291984960949003004171467103557446588557134344116007534671240611483021998318958368775086436396325697932484481791197332354683923555120706902762243748038326824198937357678013586136681804409668824904710995667355671276609542716668770145038120519136565001960185090664541848339643325675803079511357738254853985583426236430071639874214414827254047644517464069208581239165194558714783901851488549166291841020532402091934502076553493570447740635458046101130847935469286784990200862363880431127786812700824209651051252126097605151271042127324349863603096760660824101475587054467446824336524838514894570397543947964179888468263517391140954261054564983278818941192331865692790372385866758671991370900308761653966330609978663413590644820865409186171415938532341599070658374569236026343930543481713635047230005673205624540008254446553083834254171629708116719579332128003216801633185027497309426346914299718473229242667914048005060121660078382971440420391389561977099730430055277077825465688407444550685896195137996437291947386557871785151154663512670543925416193032432080945779655055411803936301705855974474036349043789830976906863636213769132260316015980997476708599256495098825185241163643077203818873182448832600389416089371543081758406406772681514694149457727665740228407995869682305348528004824663718753177292017812052303610287415248439899313481533355804145686282869335832401921383553135889501048745046736607451699995215822897314411175081587884242536806473058656274138802980369775322975247630880570937411057091624044103147832457150007535754429265501810629913382652389750444665445767719811066589352428531180892632955622566195876407552637632308672952169737949090653430185946726228064463642462281550287043024567420192189748759123721507952476359362179442439133811380600280804970258758404177829485169108988771353826875593180714502325482270615038584754018450861359952526144697098227922699259200043712389921815151171352254170002746157700196769906490751717658253769233042001748248899401301538029219524714581869524242022564686459625449355890143143595710589330465101139953680763698136749988593950061107210321088588472825473541875486661589944780004383555723069264362642031586225449677787598811598886480935174146456088791227907746321425498551539985954681548808398822168742951410375434444907397887072447702367158308184053482859938676401321250232413078725486158331126759201235800943698959698905006969827363007475217866994738861796952297746584047142198274928600686476798927243870185110166393143128193230005972322329878735083596413666772014393870714187600633893570110557831818450653528608030214017467329081986705044766136800432464049814111389850811798055336379747554239581715190527565695272826847339330235347856676944269647507887304321645890058207690489844231109322229410320355538227102575704678895115130565450127515487243162059526188976844830263252259729018001920410364164628482589576635124324243494691225841018436541344156231468900364581359939351160786939280406542995022426850135752711620624285873180775092096665031897455827609578837840749393674006161219730763808414051903769858399568826821580966011626832064149993965439690982512703002106259333562069541023065856046943039569084102985406038541800670406773847607042285818014776274135732812342418254516807553903742345319533735339750910514146367495205798802284031654309908056867855946489353449800630456513709707379473897391727889059003853113135478081706772153514370501994749969338722316087225424682465356777624510769703189625168650403991380421771081165064917859767643450376546054183772322890406062907082465259175465516180924073085588719745795890437251811449881165409294559115444161768161474636010109352852902404616575953377092558047061183097166703703659636367761035235117272301013420609345194414952243899450398645575229866169620912642316943141761468527266013624718423031404816673455847129644921679109132986677867060939908298893423718192643508656854546728202917309983124405818472174485114985453933364294622004116052969474802338952845433218738924956218075858963500769097358503036452679547622203972562091568659024901383217677640442982657813431268641730620654565971256541587853291584124628007926709578942460976223085887895126672615696659172310932851275441347518599826691819625403481109088507431961614571323799837363490847355585283027802952334445268503838821032690112663197507875477269051857608164931249395666721968104945915534697828278917627239335471059386706270113288875823174133745397649460582763800625277711693579616651578628675863573212839024089265963701629440337525172037370181837362753303272405969714820446637605344921718381144916983243687455056289644527558620628743255748725428066215153412375261121115262208621841863490137729466473212981867478824389431523605179136987010521520919994110118551171744750672806349318658780357347968160926059359897403059982786274307575195763045592819338999824615694246401655925366163419981040366826024510569764854901639759676865042899419755896630002166262362118026881658648839210004030321023314238435922402023593845852321320256537472566488731446812650078391474647941542491039838478863336917524111137337872638960583382655151780151578993334999944094739647853122808078006429351374199965194110513933256500365924312475628528981145096143291252900912548809856862945446589049445931825567672467119000679556228849059548543364515308748206929228623242144283352348512588189194141226278720101554783261048844561192513650141641393880247805938002159779724420736675151632512635977015313235714762564092043651511863193014570480980692074367348499492529457605521572718685526309961058040726622793064367283833269001673672906223101680328013547443095605945169265535388514242140163421560157729157454577968827696327694157185470526352918116211096917569256661937771267819191279655723999485913591929114581286375277961765833013215519740691401047563935865912821655818161743534921652271058913536333237260434612929268007744392579595975152919995599727547055247105312034529089644760249360620260062305543474538496856168038562820440300124867716902444714195376302438528356760961078031665111312049904367182790983564992676661910240218235718306757374780765713700098605688324727040935873135657702455890407600012287598594561830137197537699918747991065629737473527933052570060893843930029024917709167625123206429449591217127131082589495494217931818697574544037042740495474394712486357751307882444520009224090363061685921878902261169908799670319180604230915673338100572631646371474864315172712761963343514143638672348362905053106119662555111541644602926851377316264540549081983293209373254352831153059044602446327638421305991052790517601473634579569721302765023586351147835307945338285038153731369087202611096161961029358690365829801704876843704308588710716989943054165057516052010167098916673239990189049962037252574213101708771942048338666809367768554888794161696356338421551645798491101644887125932599465195998439424544775793100615772890547185702248043829275667876404493373856384444306270138710054450478835707637844650510330957698736805418733058199074976400196308906003420935671572943160485750470954093852865600306709906912953689911366214479340736839850716418466582901059219009680262856410958510132830671869615333687636460722023103766946013954696471784280252714450025252227859265815768609974466003106781073714525559409063859871054653493453429699302357184954241544513410212876685897441100713353794540287202546262516848994079891277522537380466739130806471377997293584240571062333559797876527898042099614930463161229465373067943984209214788166472613050388439966097092387513193199281134227549039683471904899559092346656626883112245607578788453734785326710504015531414155863642003618929877829825969572248755956451605188286248991436696069206146651451234316354778236200486613417699171503416478169585251438829070674727834138570150690551900637523714191267566025771741258309631862963801050747000521383388780140004154714046229697723661785559226308190359056045915968699494370980055834757437532163162408783502736471114432670701398207797369057063199251884565337436278670755441473267337652247415302897005250124553787420330032984890011706998298812009903432145000096298027945684632640310686234822567182468562893886497802599598091697828253993544088216490429962273268448392685001253102430848011546119270008277778205384871654258528305510618525926644135187635411405264852408655876281723555106054126113279593340421280931283643554851040981474585239784366820038013453763584542155307448679881238530715393029551360457858353667413984722090751812551961573915969189941534838792194814406089268623303930680083815626341827429498561037656558620851389299258090617892080214653413124443444896591355793883029886678202755065346678850556328825869037669126202785137242421489502542237840827065461503769045566841061515449526684331709178992953554287369319089348977594118698421721885942597543530962476820449871530840026761554871252983931501906518345611900605473155238641825961225121727481880951521833462307468751974774595121121186134085629471362393462611727268843687670778771881348184231021597017077208518660742934968137319984159934044938861224829913792268066115127448167587435538288257994614737552899067625605518849264144674326024206551445159107876188386650319013458021355326056213755427244516803342108505111976580879623801823993756284610204046488177511400934100968762398908584229227514636787373625749128363867106114501212635547052528980260735336778010102752011754673796644333504652966717329390187413965608844277754598521393510175832374891714096073742395379065065998015843083380272452564637089954522439272379396273373674805690306421607922052570717785901038186875418676914682991047233455426728245903599500492785842368648167670634399059743379753952853476932557831409378282143808975929822579229443862589149180702442623109954676888632771189588337797998140946557606309739868669427823221253192538263504981977825133141626027178043731323697654958573897340912023711888895789491031793752428745206954386913501068654617368116153777524716184220667298463154033231209951344946758695531934778528588301007752115578776218592575111565099886020129341686517059473369428114958044076221181646784998648365860543450112370818924244351066411598239214560004247801473727557601250736070018409418089173271469806201386298922436095763911017145797454998880765691486086477029496577002380623095014916475866242161250143641946634432138320150296494285715518706915076806788554367701323347286561680113571013749916072553368466251577991397284347346380423923336297202498026326129482629989604876413130317077779797561010156744815534211373413940897585485163078646894064175531678082628527590934320002308440154654620205199514060663534177088067301965675137938672224627071939800864882960598375624475325075023347503437159204957529197107624184502211675370480536878661706552864020762808191065379481244724020663707245209299137358327939317093330265658610573521428099088436226517432075905085385324077391912285356603424390621278211085968420723185583658425695324876125300299650356786523221454638655865204343720335735038415535230653532379093172331190808469927668969037520468638765612006033188205322944057583479307205365972600501079275049869452739018450719008445650794668609929418447029597420491974213576709100631959755068628722075509363438332213852628085404187344554137672180954405413343459645900659072035254687843623975906626190962913299240772117782517757545067312425389406435025299144608400120118810184207880487698241660086458276973186480562035791435033362050879716973711974786164866514413649305042241070186431451155718041725747012377498038728848607375945867524309936866048794589714525498842975722880776202858365290419952316004687329096862159285110765215624106195076842171651093197278228526730948484190483327902145986158639811574325702419673964198559479381857064911902209275770290994402005574671405198242997624171958382737589834607660801540447711534784988560201268512364950036318172650425221775588385321912509876028590159128860632941646973802584072041208770039287928101959409940968668070783637531705244094252814084756137318901602456134967455826388366270379369241343664774301459776113598154764662117780357507871187060746915073151654583586498725141378612001814283920882690659880885616993988796088346795401947506149882817105692069206947257253347283019077412193036614012686007142655699996106121475053003998646938206787643320905650565536909670177166295441854938965248790597749847318749340565630029083690069407268437970211639678650608391813844798714033401428722868026692288427580329062101090403649639965502610037695734758997298356675446779213420996820700785718092731532879938169315407131174063526589485141200462971451199529971129849168733844565972808270312490802919320592742361377239986011348936789520827769473517287790702324869421054254974614996939780853320831798889312267458919266284989092965002008128588412105443469390053585934190052343613103158907176826305801185091147254808101785086756077383716573175768600314543807450790939350391805971324833994529932838777771810652572661079839116584047006992833069195973089039604306704312626768040462490892089393524329667690435174770221649140628022273508732466538736764030614260850624921278540482806719085637374697065208286959658372749767813844796691333646748803447611753843714147814103434100078255623571941468432127037993663403639729098445146070196533761020780264698768444754808403715352966912019871678964241097557149350198323192677345072839807531639241198605970487477676906828560554114783392065685541989877401467815013461270300969040753907977798833775291695793364286650910743078666192037434827826269592830422672185818901516576924184528228801910251982097495031523510145417077157521320688646761033674223366542503163773625023164994559098675488535326757373710219816613197744434018100166682853470151572731555403187812665149890465846599124843770764689317471496067755628814826319025954551905169566990057774213122774397159875442476127408107382638689125378687927527979937777211790868161962370332270367528034843593662737625948290138789019017274027275924777364860420083671580922929194405462678881532835042834521781705424586697554031728605474182509389616631555828830465898477753313898221044551781648227961268656208806357021432604484955008760159209763837003556735491444021889456273185716541488837208776119301015192667416722412320691651601076729797145406992286237970936938135457277603597658419838487551507457993199501835341876952901618959747599948286222651716546898132358744064891748794252166460762725149411969090907248173898577501980228619188563443577451112210125890848128921275722854903715127847112237256427486063427112415751947241324826240102934698172444048190545239317441980512813730774359718055656600726582820362692999728258842546346460262344794235197003511627352776572351694988945369053329310171769887767629479553092623963172726063301336914908509413586895048508800514800421273808617373336634430648546839437418944024990750501467399839594914699362697638769822663570396749776649661854242524155791446562238303767163891513192231093643022637980669326980323315162704479982218554946236141746467986138606296543740047889413050793007958689720811616553773956947023582268259455053356407448533827632825418301730989627405156179957275462175669746658216881569105706202664826565237658702766829971125621543679467744508505805215365939669705158727250200038226329855382731288387799885864966563422680186930555371451019222523745726800379309073769043264109549414953899450588950849889339257642752488201382602139774684224104097390537174797961388982708616003623484850075536059349176077168836520499388239197130929330228643582457904731661979365824430943294483878384098397351822317035306916741721917271191093907957929608573956170226138934951001150640551449532787561489693716911867667868397398194116331203288099147584220209797484850588994194751391886812108720206811848187828247420101630948224480751802520688409808566603451669057677338708422441934419967590131003381631659389508997607950709470336444174160801460948860510252200209881138347323581877769194952564332089834734359268972601977671248661572265708666160588799015843073852099325004143409696138878569170867561028746405271400247069525628111972922144155615859438791380909901781541538607514707509461132886353348726631149353107462876785879256204556468143566320215624918870437457839370104514028457143142108016321810455072437339381047025133874098006412735135461070945841123771267411574752151874950503661144233172850776592435132972920182877231198255391805681845600072161254620685691057930971008268147487444814648016653096231293871869525080058246558319497813315418163080914760945209593514007578657331226050893934059254647087516333404677852633683259429220096663032893102745226028706225822899172426481278416149605622079278966172604731610166714921724155521257734835832238231319847931783765998113543432450251078204729061565498814471131077592199139285481082432462475120046395620693936116358047035077740927076628780109375842964225743128750305698110814044212765097255765163116876756918511590786214705876875930419410804411434145631435309226023658469373778569436712388571329510975999409667888951568657255895239995256163950058832815614811311114114164914770711496578457055038964178066755165850560134872608947941025441321070079669461334008660224131284028663900567569249758533054421506867557483133788544561773242451711527147564962049592181817133837269328211180236352746216645798758136215357082631016022625580109868417798160476737045648619484634676028735301862254583003477350147603667454721431378077798127593209747974693720357797137672556482755720309016601928982285379402640630520677224305746875247171871503852606979544741538831515711245359453911352883503069948248374105410574208938454050138441481896127968804525286867789229336874347972912695106912761232113854914127059571774781893293826895607626025706153832095318710851476414216642067632204251031581967880332560901972352554911470722142551623477313404612632028467353666665086877450279120138931174181604528788429379010231288457219769617286912476721135855319940216596348678681569270931160128196746016177089151336383118214114237523430229504687620966620673125190727453263742838951811031202468411123438433998937292764879065186452103563034268554702273127076731067139748262920436131623248450075913473039200662872827121580886724266885276182769755749621774338525350860302655796518264254371554086205650151316575321034319334673414165799158058071195023982321068867595023311696839911519850996512670090145511215651952549258113532093006950293867819327721689224964248206011002942023061993019429058626883212473789566369438260138569659087683234312422918571833048005949546526144535914723973049219024794137088935676014970601032499769096764791876036060326874095011938998724340875867669981009904093685278873347037296495484932359846871763857779868396476879569937111955110920655418561979183364389954807300177417020398191880340997285609839959163503518623397644646957974356777211483686830575124660471417427051899278743396886933935245373490220874359862834445999043031817610645779724474055396690575699659464751784684368080103001181109502979945816153914407891234976836111600280562276686488063313786613325114150637184656867050759694569744408012815804880076269326191835826419005883708965917438016597825203438756900074825633195175805578406101759366666103412954982861012484036519859544240466630006650323671710131013760117738538374481262304488912427128197453588394064191153677537604568128774898965802604950290178398197549369703000095845041986545366577178613009509719057080981624817768704472373368948538408845047085863076771835424731060019195141228082860259605020341186488738334116223674597326281949403209858871568945811538854604601556518099738170987340141780737770831573600412525556103973663460865981857422854250678412701033908434593684343029016035964197767718434711516048387247109557366930476622436934454928528151519343148569373587728495373990150994948165015247839143995477760816570686139526635574415536930111157294880431615011605689708609013060518896972225322399839816572961225329612085840677217313861396926433745170183203842938387890580513486779835973841782850263597336910120703835073665356229491185276296729695410654313750959144779831184452384995570058223558942671223301428188552222626159014018533902158060571409127455086700280224967914497842583144725836140797245471854049960003070118749596213795776656733890122512104924233491681366530865247347481893253820248469070964186878304073334434599636696892600657814336310415373256965008353711045796396084757717779734303716791989417745393970966702790123669982667032281897121215646760805397654775551879547587757932250829016618950899152320726355887545658312907811969020793660306021996647822500042186415699633426075756810331049452159344698809189390879709482457296279331229171881857562040008063390743097104119285130506821741791435251405543648663248208290405404658726432668150817109961199266610138062971377692980149708341295223344722727516661718722854886927557296627358575147671415681702556372611952032579054570573541043903271228270255229781278052361830133575036884482548911552466686870648778158474774552354699326217192759777681305874835846606232528688776409135089539339295414747779114032145240672707266858623213602093785252649150768342302958228992828858037577050340180752260218922412921136697193665373496206228824105863460230308037570277811231389039084090231680932705855720459368619124333023045461552130063007789388120366487501416405666363472752640697968068646076427110879132781436614980016680321904711612472403401059783860065621435073171044801232708013576918715134194930587667618428056758667512917510321018833767879724313579645517787941560753077921701209903553844541441866601031340668496727881185671862389902702095262039581635036903542280441278745744358676074259652131152164391213031822493468570252348929661775213285802767302772366106112983383090537962081919309685802809274738737498071112900569122343298959318997157398073801377669994729270604411047332767596650879951336685849595808061351696448767001953892560578887522154669246616693811652742586060305435798394287300156879108508057803304953121976139309589148023155805906056419687531681752747429204759124505868811365301360744098700032245553444036747346790901712490204075720174637477111952707224887485000838541910594165869185712383394417410062185411950574551895356782245243308198161270368486592211889388915251964578580796971857279682348180512277037020063080255136300506833211146789371029717966961129466630729214230899150849581042524746084134956122570995591292601801982547309173719707042028675241083516313993662609268085533636816110643660883785962810106782055182506423604950579872447020200958453880195426876332093593145359301617867324711014676585462827128165755682065375027222396787154318708619317027402280275738073709765761592719402004351327952979068284858527891676745010678913997210942266411666326498190955428763045647497959990770878000721045258712698311961051834080272735130275508885585515529307170753833909744875207109605319178745169992038055015555475837836130928382584597392978307034907874201421303937385644528238837015355682033690145939101311470770636490359561337942590871759418366829758891532611350835870330873627303107251557196437982558646116127927582169063612899674662275159140222827964630798301939537696864240545334395046695565650350586361743347365341100654125174530554216127293353354036371695581479190852064637095882524057682254266924747221401474037009949619197527785467822580421982782284158086522715861840229422888819301200607604538856816168784935118274352885680358283526380005997973334937405158087937473903479577132005257676666894190330790951331190315377835895113629930472776782817230401212266679624927906392269593094260882471778980161919477908081476432140781502821341512272857504615720577253834173644515787392203389986086998704887487315252568379738578108055145086069482076153587016225165049273812907198317956470561472160189955318111473144315959223475933906339019409269548758587815949198828084583924071392335791598859357338373460097310465524604774734865788153573704839239534290038645485002003465302863710617230883344640508751719847569872333692345323226126958975588752914643611113021331310302051868970124700572745453759208255346089196411295724440481579771334727689485271912232955707888584011780388455318862429251004470919871001218867413695180963319256862364100618795219835656959576964052148279831787174893661935880956735372875237388045713386995751440466193325345354549461282659295762764277457947268264431838321605010404893845067460276266184241472020154699345210547065555544532135615768532798413047257620467694619956362857261870576048436510410989165202810580660375472248188520967684637242874542858977739510595499700003635028821693829599079072071492207815658235241898920735769544016520023204135668451076500715131409791099342842590782939835323424843662517330654204345182675671232431354760694363874221296421020445798876268382225564416396484555718201862277494676382550590938763655656769283345037115140376978360003919119583346869904375793678143485910318963087521683400556308578665377786456247635649116489463766355406504258344570881747492095629455962491550850508265008095726274725196116688657959611441002368079928254462180193455349486169605629183398645136238689705944226685951110057273751838818978106822645217830790301594228847223089085375623112650968439664631012685464337796148686638742284766787709322367752324832871125548870771004607366624876234882858789626430594726017260369947791648184987205761573779978553053279594297684655760619382237587019358835192170162748348858686043079030097890232053085116354183764227054166024007322304390331354389064764752587930465478488276141742849775176953484163325896090323123946315112134460058130899820750829380693252739919535205067215740698956196428172727137488233586470077134647479941788939757489497223782201644007643593854525955125435156606284260845949927263908298506462049614812225915132965209470783409686438871751385985753158154555181294869746639262958257297348651413039270472134823214278430326675011492109188983987187800080838402407572273051942315002246423856965990421253775877198240278662557387485130057703394943567504004826614452553184175387149874625982704562798841093237302763956641090911170715843610555357734833319303849775020802425758932323925624358915343802679599480467199131557660906829192417938910520830828429189798271977892678073396428673944810891796721182828040884959524014089938899966203758060432835481982285338218481232704122507514223322304639572649788377806477630592306554211184210951849021837123030975877663639659530662304256111090468957010643280421259834061790334839733687237619985642731284420361474426480763222757953789053091746258783620384837893444642306338331683295956979454165525101257801285610391211155102015112110160233111488190372257965355452597419775014731073091120371677946617132656939978226888834128965867733197428026047135452961276432536438803915963640116025846708033351037089397338670460668374577436436140376616011639081088354364444561540280285542438505012163133892758792179301207016483106411748975312786530872540985956422721708767124345321745358170805621943787332068298294452284228712518488743597913881527077946334449048071519720152748807977133568186378473705025089795161536742436423579849487714951285013071402351768736096269523657928860807508410686516090630189527349367975600260300257991963395648337874504192816466807382280100918038867223595074757714354688359418483583672015665737338274529317822346284454356914570630720325241262560435998982254603761056586273524798736841753161941114388680786870914794485034887060201760692264959450711178157785647433233822905159563609621212540824737763234961164590022269810361708188893830688060413174576310979828410719768816085208487582824696323041821782966818140659176379729216481205564730395043556456954750317238370169622128762866537511955630668094308786870122910519461408440553063107906202384734968725439868954554780201320770669527715283281896898592092968783120931609714454489168375029547801055936934916223584062093123040091424953164025268715299749462533678561304140959634934410858483431115538225448711941174488767898627952279289405593807970935253666842108061566636738168423508148893202020799999767407620155349899839913087167535851652141430959920452003405549305165259471028214221115421802599359118047054353427453457403140884518593863402250501193934346282220147889335959221955669781588623629386661171538542645676512106084385100614813368066555196970535045812853846976764793853103171926153265157217499639738684629491272574910158553218208745785872218523379597312352212204122475709033810951682867382752323660799061471057208945506838658324238306479927222630650187488884521515361981730652209804205307250139681593554274071767883731741611706687278381680207203493959307089041942707075271490507257041587715216826902572571092488053671795498178195904783983991280449279198779550749567333422573961829595270620680861378009797906092317822296354208089729299635684827893275376067084704738233226909892547790783901412248148722789890051975327810606306804963542253283452246807117596241102168253314898620710347465007399189843237009935495635610046116377568377827507400472853567012126234818064335536009910216644712861692254932745682368345198992928546146941050612789567334983967081846685588539883025896159499402553750061980079102245230789374679655786540814188900493016030806407788027533871415806488354012536936877665147886760881937304969782583732626613639109275052082177663423987970430119514572060935476181833015365492872980963101767104941197170742914109324893373826870203383958575769867256932733364440021548428838421765767470096894796998498576113548036184254570079079363202047906661316055161816516434926728239800630436888595885160415136724332435087305036672088956426737300675097004808118866616642005375107825692693773685250482929240746591026094763009994688767818836962465753469166402141088962164225519921757840667043134691388915633719370036334897005127529722921959524786705364497801496304553372820584020829651156461284630649749276785471168075445697210701601337988765388092565139400021912618305329572734264294970113353067613619204499651853121465263668406530648812751576600312099194106111190655538911202559111728627486090985473380959498094278217719058224426261385441588798156192184031828435629170038417109598611410521480298536115296116131450806327428626729712066099988395430646533124090375949098339976333888507228946607398349052171064966975870079290697590959234519434382508623363681494314007378546087707564348853564492567753646407547336021166728367027036951593577582150979758447963007763031395856721544557387567838166883584996791261015717854618212905638221657959359739336352293852777972312645614161792683207916404334494814315695191685793024069329661822268484331712587333143231807938469994354718952100437713055063934386796628113350919525929312484905982118113838255984095675046070161039476628887829095169875691931255797435612192230063186194390597951628914567367715726651772065299839747209340300302855103848592212545551062694950661794058470124901120848068460382120125441750812843904701974995870567910817673088764755791807256008584903789266380297073609471442186507185980378446221029813481734251909131151302362695972913980604287686400284971466781880678364579006578713567307425227971880810296955192152162458822440171896666534760544754518100980561240444802752765955678650780222747215223281355065901676355042696623676868632231132104507302766122514897935719841921447116341931166018645128888394204202269239253154789408637690905863854160438855556275436770670238223658681277510935856487219805350807006329325930549782954453780146986600470555951887550765811222051224894630348714743666078130571885068923761308668169568894051127984463880644723094263497587595021577744313228514343133538351709912842300714468455629376447147397155312406982925351965492623351129661889508253368942439625786511376534562934614823200338097038015514445808793868570138674496982828011418046641687655533829247245812926032097937130232220473980749922613699102305759484892390571374889432728815053717144800664284072885680411431296176510236780554529618341911173905895301501519840747447023143634675242147949564954663301864366397374230254314503191319828840578346871898727766385052712781292304319980091982518868674904716142141376823677212840834714251577806091150537408333389148712364537639498928861343389633776077313360691519716861103530243801508243369820167848851711563842017301234517116949646483712030326903383026835715461637535348814376433884052172573913409075306898362252252899760830517671501654513120663673846716806020639679843208177015828014975751510846077306347287130513581315454020413001641225692202415284405646159972730006543165133846646795652739461068215323096476228631162627956567873372714928997653593812598612833584929623942738083011433996094986863725812012040175238240192811607766817011042485503835183500997279685798514190622915418454341669059513893820009194189274296678738236444136475830009479419549674295540298206790837861797972467716187124928660949041256005489634117043640092476798292314680615044826857906504966347443070276635895618804991496886494194314523730021752605942145432485730411681040158241165618475831059597686246729929780332096215509185330062272360603489431468079526452567849601268821438896219447930755593989687661187052421623523034889814805334277835223484342789365210442972094427738827322950969031553527100043968888236366566668086114353566421435920751586028465720523563157983573729264043114854260143123928115124989298651877534049600980248121913219339195228433531649738909205273199347818151071449018916265468904259128747352984217761490010672726306127363855527074272357476273569141128404905310661366106917191998664452561745922451917451925107164679924804282170940827746420461896957029744544134524829842950591722779143674215327527948219412372197197240316581624873712581103669701848568672205866819338660405376758952742124934512699646754078307763159008019984462589638510725624278785588824335684568554202146379495781191799216667623638920993257966442639302525761581774890163207988377116869150898386590656713519952533721692117259830134593154577300759401615436395073177790201802588706320361534128902046587248744034003763182922687486443254967480997412883605946944211518223435241199528841157415705344881907222591992771782725285419873921665231337428148971718711442882631065023827993607606139854255368883505003672367224471800161471789364735927739880626533708684437660063785648323041470142048799859660608335362897061441272108258890877916184299202998001384297439016856146732713407437702293252412331142027112579426543041186144096525369343072429348138215537534909036817345052533291319207824698134534381563050287854381210051417394427362542308698273454387879272195510842444984442727828256142219096540861803967463532980454301296271007629010475903688997538358135219403683806114979130078274155322025139942828642005429099013263156351511665258308764663814973585393838159433222601333509924001126422390061480771050860054957649558093580106624983599848629305991134411662864533539773168817294440078182677239082275527555540353982141341944532467670201707434564213590118918629340356245286294737768944229134508510924214732087275904279497395546462511217455931058490388487967868021256673206981919304248868772610305405628107698256917357139073738499004227578215897197154810821596255715396342605628525461185410378080134165292387845557543080257624856944028248149756846827648702665520929465611354521366199061935430389940064336491787502750859921195257813813503503062217010436562099513448925030937343677787338085028157773490910991097616974675728638480850868289816669913022515316362114640777199261416223392033620354491721411402505470382234599310670456250211905255289602350656024686439871249948934535678587548348304351298958536460724181184231678955756030725365869093792680653737654935846555289444411828190099481212520062615910716394824334514755696019930171749416996049393815570663687665751130286307312630876060834042725177844417675481486659743590715904546026227738091060175351902202737987973853799328436713264111718915492597143665704882273305800017843361962313090419779800263236418971207329362106784380360382514831611467661757823175980737506468351274785436811308737370289053724393181049524743073297252513800324377275814659214626927792975163128510985598374282892884076135108944202588278016282749854132303923579542286259793714377689958658854796556696131408677850438610664399739989717580904624529749290776652873233458956803986575103475255436645480145337047103179881911816594682387927530019100443112243614718584916843625388936327712256911442515731617228808649816396381509805324442608182388647052328113672832620902004647254750401670371242347858111109255349702217111691350394707856790380320472511864117484006846468857126218129678357255361501006403584400766471891598933682753794010068650158948060205842254780463884434930778396091111741725542381310142053010762525128049288475369969343768571458951070846926967354011508717802232090248237319879075585305357390005749762965499079002483827708775655491646761243540682883484211234148434053113909703205439275363056705097809761890615091894967908956871276155584019977185083439106564181545353606030717055126603533636648482192173299742333457101602826694701701979569721421441448808622763532271915421570121648365185323908356070364124019014009841207649789336844287801433964275966877841712558589855998527233900112440772481040575166178897407111959639025395904767989389507766380332714189437119964632731398739869882050132754485301018220376088836444384396946193260105997499317893621941051148600969211771464456285073588127663149184562576261320900738105723570362478062322623758668776257545871928186467672276066345520606258127682756074091648646874127610253308389557675593281321877046053367648329664965843134885154014166163824992446758911436802079022226842375757008513534699766257290191739479280689939283403275841506754208167195591749086671317271019859730759784993426955772220199639384893921748059875766499180151748569502564220228531118863974273812080324052674049150924279257103295682402952444242317675247824521776351633262129669212942086552598887537938821396344943482895469536921088818871820584422771958974756020811946893443315557195346537320791130291329769667298911426865635335765653848533007431485230050912221458229691500855612417708590392723519298274107281516742961776162218068118552030602780832968198963147978230778764864100203480004109335457765840349083729949290948943499632167629287114837947494418452421464574022036267017959169865957334113252451679833164603242895416840627421617569062532779405213684152688361550343198420798949948465404334284401174789747301546449268377982716332717671148938891129396755816207622988201195184341074183230077362428250536109009249045296154983012957727524361417805666764067212366943022316173851843853511565435777859423178454544179119603525002795327541534659454528997459300469950922239888957489717193710788536983490754460620627917435525217840175615336851398151369423413670450320148935923195834212819950570037974063036216594766301932668398151984314570888780372871349817056667716961806256364413859863259739265913951800223460860745557295655590930163060927820672806479302381090816047926182407523705637030139661180793878193169390722045803827649594017549679367150544956729209339984758413304403374918932657284499332547222885525095961502543905218301051953553258894014469545138041052799989803331922125308241519805804948605569251150889371826117605426714764209499250419176393724415079175269149534147975492540749974522706695581395217948566925511698376115405176168749868741170163598462283233810855049256540942800169857860085606468329060547277176874245299395216611420448672417181444875780703845906846223532150725947076428439818342142244937817548287798792758137948522554287406245276250559816750837413466623871355083847929467883264089039422113259456289327406110494763291847238674940589807665787197723974727633742845949436088928661677010528877999121764370903559760382395405961917723789736394032551204014010955558512102018122753870895636304069125614759205496100696695891776616695355450233278222655414223745792000317491911955392334396758525197080273887409577835671711657473404690531625562591629827610775671288783334897485507031803574800895834696255925844754299948834821709151768069518360669290047732226810681658250388711273310155440430415900761295104985960634825397834084195913813497854070338347823444161356059518848468960974359064935095991414289204123532797617753963874725211755768904117728411181009153902115502659341476606712406679311792644720937027116937222605157051367002127479671610001882989186731482809663900737524722321925804953117678908013365573283731268476818839089265498885799458722907843451070842618757216930069066761038766332381265220021965298447767857585748599477868321818104121962849346013841133022107382978301896016950367797157818185681402339932994903529716459003673325150460547214015129428496909968633610821419935335870192056575221950649429495471555429726386722640033373305849954587585260032110361589256366191586141620385271724391938666570414847296229585659164663911692815365427706220046678168074429566706470296032090402476473522594448922875315384058809423015007431165679949873812981971521354338708474418833630531589398532137941378391856934903671475996864432298380267700069158865683473171697988633221575171865899238680105801669173649861731984672270630012232017674553573502735636627033044051383821799554845674601041453677823680408623675069794217300536996123551956245489776573275361131539437971530825783772258166175511619376930066512913816115050406727151993771994027223736244581080581822956226547165120115513250544945592452712128983212614422712840681600824543657112601595199935196338860549550499766028498615863683652718884345792929867867478973472228979995265267296894826485827984521287234712717979244871306487311985853758605673911401280845880267058341430080883499795570911019021698366812974634219995760306296296311998261959306359872366809892185363948905983001130173494648298547815036515585602020629358218814038911792082645523024890419724937046536230070058160730011605379950518976041964209749674029459433676462269022161758877310443810956368416103158181978882758527857396891607339511027600946189974763080440986869089816711455587234118313790236856112703325366552190152807514721156891531403665700119712904945659856844074896970699682188435508443435291369076263432426821307781538442967242202093073000967114813558979187771734942078350601647238245340443395311194150717729522373831929585885522246587392379639795259050992968923534061340779954631088027068465837182994480704214770607608989942639784920076505147630380731638148211470562636350971603528714265869866218752781384923149577098761793600406636393550403760957171633041787163358253321350809446535189864683992772204791924809576183253605300488729095389947821841120447933044834639857227743987205621068458200886347315862995018855448941537417200302836305502494656571609530031093979396890446515982021223003294014754654240710553883938350888557430786001733665247990472725951880035777349755521637015625506424514521232065094196525486228241684171310324211705363937438734758163720346923675379881500753248966893823188935912784222724282021773715035722867754991043036715751483740335561283842209463583357029419425122920836850453717577676847516161844417126256219136765568845262302120227514098317100338435980949132792986573356128085638489066896134502345359675247431183063380636981960757632452687271442390306263528390379311348383539990283951370103746265816660896057089473049076713707429939831442699566930600852164770635654592616092506105498514990498588846951392145751376297588956479753202124968863439012279165018868724683773493052841073895808856304378624743754983280810970831597629496476103905630058150414573791252331931294592555054331392761784167577674561895379370055605263146595153744902752389443965304678476799307397347165608861181426902401646717673377290087989075604783122960805251813307354827224948043453221680472595996981007593778708894000166602780956470616044102176838899996564289192070710754649969271844926822251989093138953080315729895543389618324448384821005145767960327229903337495571354902813180668543011632648384606144019302556387211904288170682014148818230850283100726981740760204527048613504390488537596089123694530603974010483756114892582304757238638221197195151199072982898718573037112273543928842895881260392435256319056279744645627318983473454865457496905030514303800121041124499299240059301326070453619872809709290193820363269198256246151766145307129199506051260263363153102458751128050347224448362952888715506915772807243866803403777842490802365424348771414468750439775876924409815709651384410162978789951245476708384407476318657780461600258462179390360591695176881585942444367467543932385601238746553173341672614185837373447660656413903110960108768658765759076611141621131078857811072069864732666903334649686250111181757035617502934533214652422921456366172381342039411900167252038084728553829575746674104591109826900682622564058664787888980337890344512787953117048600119555838120662795680586033034202696516863619075919558510891185675636985926308592235096581221338084378951044851419713961488463789687713628748412829550391697838217673204890560657757121442006600715496959039008437314411421387864772750195204359166748296424155111443713913046184674061060138474167716713699535069974246627144012618514801900586815671127356179631568525421394200151562902836024333416763001761372458808466106034842357712866385874823689035480512508498065803650325727027894188395430528788913342261819857601771784381612127746493909482804556730827596790297740312059506750483141006685104259335198297602893974106024031846230793310872725494778222037841403194623886029194953213722183720010449433957716877019351666453896759349151733390562607417873205875868013421626698921434262445028584985589740449413558136010787848636629129419565944754303404471442500653943097800959088417160060271716801740552221231310430369987785394034570261393299432060307408640717761296056810246445013899430652365096263677717121778918011585635631994348560666256765502068911174621200349199080519057738706207225070572054823647103878192906330403668998198630244852615729490800646646552042347447392613141434087028363425631525972426129298459678875150268811600684002211644090865545190819790769770707471339040547447203877429193213598590622912077469436669729919839720390128168931642615781595607327102851273988967146368191200133890017167213113210015218393354741057852032738894678812089448320501602188578449052852061486805019286957681213560632876191713769576828483421968234747241131153283515340541423574417571696836994650768964302808353490133441555455393215911355183324320002834117531867643123727222634605399746330727488232238012635371504267519532619729624813668308205610319291017920844405062205722110328776320798280915532278420563493610926084850997772136737073553745395273530821892325724267646130245653652198101571665983495973782726851954798316872006200371496309454391274455619713165446171135994491639717144439438447990219060655489344697573206420214500489385057168823971394456639819515745987983222507989410478620701611352508022366910076399757661864999846106714109811393185145934457155356721300422012812115880014833411484947538044991801766625961984448060439997689738562561263919264475939829799663088424197920508443338886002099001325900046704538705117112697965042227976648326474567031664075631195796728862433468825255520205113481864192788103091647697216000201654201156771339365776876704065778099006182832818387380528673411792867618231278779486925833824727909447069497167920665097976219702129658941040079770747548692656764022840137130519325745219195045310850784783980738145543803132996811025892514037812094820444956444447539239553631728000900153074226490837097780195957040647849283786305829267015155401584833585530085229525057662422716432759113969755247296508553150331079570318296921132323773609809453514710844986567592964611240423243039924476124887028049122864257342063520525132751781381602757290895589383277897313664559990800318507630348055649588331401199746522998772887965314217976945058990929036352984429333788902970461868308825373526367407129934017582824835351375415703154758367772880721589346833212977229196220450665059745241239816406417458745406158612839633183350610377172840382133378546675983118200855163890566037494232510527919607743987645062208333138390214760036396303337543412382159285589821876895261453190641097170944336612720192268589750340691591408886413204432512049045130316819371622222235702347677998579393538387952063990276819473402159783809419564789800613461477733471273576221542966789535174061641390134253008448509013222572426026379010066936261034967366213587793918013171727451740059566859245436779225178888584949363755733030650363421023288054802072377975250476517286230436322696886751972779382456937883847261854614430163548485942030815465156816188627220378334533037086036891197983928139745986018709754312775027325642377520289761468968415399011378657151346235275867145630026386516923131199747194399894718264486523961305186729502955040374977969121732363113506632967144135622683861792157175782358910325417445507469277330390496248685363230293023479000641777689755863468291407493468186250668092396600404769820968117324680200830334094427602639094189763817233127016842430924219132308477919829229026244910077768007380199437333571797224802733047797840893556771069069551806982661884383633403559925003717394996196504831057085753832784460539867233152780038180873039708496415024718767476829006965553130158425346472799964057645869035158830119374270182958098616958701602180319736824420581036132287813697465728583979623117266024227612723955560111372064813005158160360014199549846474522446605998133567798668877809252047281476942111769860878502645898731686339736111493376538071715559014843358821692844101965577472284935402605197059066266865951050961616006501500160564247962671622562320900705765715501442115069854693872038287850476862094984182237571413045598125293237471910965163174907360963278708861523923255062751628580954532245757335807311114949046696837717499715689529866510615915911243229255637324011068918249021460844193342891836489145151357220506016531764803600263137325846852339981675333633707814603087119517093884726101850458107681191466315767916950454247583287562465835098942065017980930895653533101786164588227151312758667841826505000315042212773299579236506306897828606547671676568751683676083743260421171598386047991780940827898778606492510870907956417389653040494248346137203585386791091549184000488090414369738424087356988073161011824093827107086153599894616237075818694380956632173451200812823238633549329232412408440786911936842135517516501663340665676645382031886939583262906501781976164975778616162201512324853785500037946916577566970869564791340374100380823039013953288839515834447792842720213836363751168657601167756108547029300338592629636669609621998148370401396706240042716764682771153463748930980828415962966121413845412824195746125635151721250462500946426661165500261343724996879994297763543728976668428941982888898519252600003877682442269374146486342482989177934890419531566175169774442448920233949027223340815310361559484267585823268625370896754001596378142911869222731174954532364239623172142871509163075155617772836039210942734142359894718303024755888658150462729561007114875487857349095721040641904017887972719512400052029824924273425860641123971713434462364742235917753414873740768155533511271521176184191601689754816644996044478309102631939936054749955553797261386823877431690411473442682510122112418694420262772292615923517802240207103882919800598540926630972931786820682740104726180742845017302741734845832543462933941591384850583803129062537465608668201703535782314562927239527609690448573263091435838291086711010472568461736948789384878158762742035877567503107274506693093198280451209932912847018044104988223143638027289106524072643356728819938718350395796092265607473907365411041160419174640917275161955833896785759456524419838727869110571505294424773700492182639029652975968956555218779086271811214263319246749471457419036132863474403333035686926595480595124914042504097856910528195564705671405847155554419155250319039806416068866582954732084449440690729529261099700482270029954589285268972450380248460232844813828237891148688480001406607477243367246677671075217358564724135721639735138668591306471586290630096492995513050819572731206157591771658861935808930461497333006497701706846662201272129833708464520332773869200157544719974194974846347622496136618500129774311388658116732085760050788022168400008962729870011709568584369784666991384880482030804717859996062312127854463695947731381701135523636827837250447936230736026861592175325772570156039568856078744817542504364014125768460041415127179360293303714507974454351946850866780975224352856062006736136025071445331550929213327199255458015942991334593438138264010752333674873389081545452270698841715817370378609234223358496282352140567899243099542744817430347763291709112256295681949828900921979024483091346287851790196996731117457225002138887753164737857981557575528089139241839936680470560678559375604165254600439006420935727323487477281178865386646652424364727169890922837130705381533281720667279389961367547099122377489872312646151719544809102746200620278823743078164055118725763521503244870916182215696163300844113164288362596714834909437022710651300634464466417461114384192256657119938793074925622240028134089616456071071202688785103706089385084157915549658646519482249727600214580080211898433407115341569515267001568395357104983665140095363487863991849651807769139383692648481500930950170498895818376720977009138297120765475151906209227213129809587894322401413927027369635176218789091567833164001505545905408921910888196115804348671307050141525222653801315001464124511654739226387997304472362797488337050619178154162115725303459328001462055609458892768012532838238790645009733146438652657384015004864747911706691773133303081641078776915446568182820909318373316838674847045072550827720698680942257451933987683869716040517696896531902774804409364334596495212303057424372489583711178173970461779130354934062007690031758995708282686778995079594819080618430439696966211535251733510457989517927241990883332158535090940356768307270277909842318136929790942191556857765227704649705642561607314923722996507558777863493536038371388634518684508351874419506917107528104492746302746101392074334537658591570680023085500767501971588328149586318350708155447059481917964519319960770552810657104071070437071080782344901902033661920613201246632086126340721659257951355178216815252255232880149600015868102655010765531717471867430812920077650998344190693029945444110760914469469466002788129333232154603836522530722698320404255364568942239776418973248341521310676673842929945958119368783639755444015152053703028747925983839367837873381811237938611520261417004141159757433362405560987810810255100563895097312388993544556364299684588194563681924157108261782666499543604179711309081089726118878880704642033824266205743071569677728386799038960221636711862114245054200919515499081860908440065522463071063758270481608144907379423717535875033059150821100718723293914729953822223365931132323122990910530676886677020357146261972690255283093488150541762011540931011391400760231422041908827327367672195686044362838848437721768016009527354330438464724837641923730668858190289619901263334852665270848133709415763737594271694264202714580268132801271049832248221090095727730667864344055740623762879231972204820869211079144983480946871956639864694008208203360055813622421262106970394534261936472265758835927704178898090129148867880728093957371575242609830890697444108924383451841039952077231562392120782678983081894710538716903093949163525820689835003572108156641067460544347987829911611480664218702582981736852104473378773035679244999846765173679074378679201265187844616547689919658239732499989857616970753592499930440195637724526073180833733130344086935810507326906648501237339127596883829740035338401392872492858614453231874150445524943102275514649730777949337131464328209625815036699902944041267525267369587108489513762926869256672935067045331006404067058568205891133270952063355068493720548565752359006725787163936950976547184400844975871571165978838503784172872585351664874089187842444143734176596361875228905318509069835618399158307982652133368407717431923584091544306922096436451275989715968876396452341335632040224777017442571971704756128313815620284509079774781115795531119323650989938031998864970391046137188040551031127512733855986867342342131413943158891903041013740135341429913194266322668631056556037788182221660526208669462291574105344291918775436693574742955382885037881935856556297407431020159617096979305380176113867836954020516319182487959969270745581114026745258020945156745259787312761069129731555040777250147715264651417755586033239711199540301986684377458085466354818825695984709632973220356376278798266501547179025364811200933111703733963333519293933385079599681344919076743052321769677305526875598506877282700999384385029107512201270513819849436320811598888399550196088678223338578654711391593958636331349605886073388356525470899304449501244423935624245722862224337606828221448992144978386102166209660093088639981106325082696519323403195941700562789892932932003252424352079784349252220753342810137567471261115624448439891042938253988004171329770316142587463961203899002209166788527408798407698193131993250010842889923671710152922875152834376037483642641098825620237772387649821002455228023272153003980781558001639441636877603549489656745198647439204348944143821494824590409880803514354757880503798442760946706418726541214087392433213440889796691871254376913877109851975718243460171081319760182174591666176701071954877735372957626934074263076107969645636562713559587121708278530797241335665551415976500059860977730192000353644683832912944400091994823677954994165117980813874888516202443784861567114274790051649244094602148446333341519062346507656967329940744200213201974388610143801843610354497766865456210152579061877295155401258830306866405365890467765835461959853942995024555150503457844378147111137235790024426809178825296186577497931797077257491989375012138679352302108802432684642531035143362705402402698486507158887172101817239776818707990488774068844595581033579640170784183896450042573900097291618691567298051088319589001340890234153394538812719695693383152188760650492087460874621066881519646446387790427366880425975937706520694392180426662723511200212434313649009029021685577506557168014944859249366401133780208082281537101573485255911544980437844648346116759923957400740815691811351810498291684408059130038054316205993314036854662018888596635239601464915552331142504910742431331359960470579316612949183196992231001467300255336778272922734157089165474347613269655064981536803139743793351774924737831394604614054661726404742409736607080952869449401693455214890066709552362290576243257856940799597973399646896331904868363200972854962308936903577926773805998556469731248401624416617073798163930577737728288174410723566656320781195261234220615581110272255068473296220805818482290847137572260377323702588276560544005497041353660918496203217151950885830912041410117649814348941091471182232197369418378159258493324924735057415481249110120573030848972967981252858618921079923155371430674677817002221710916866078739525298464725906664513825849102483096876298355611414753212189893975520557195967531199073644307371909707671863547449951672471075817412874525191566338892951012545149631577195138049482378350664478205891928462184391800160355811715011075625438602633338800065316958750853194656258666239152721897485855847382055115476602863190616439061397240322453347774519769590356984564479319458995436963102042212682349859756968171612024820356299248898484873150221413504413041297547330281244997492533747153133735609787968415735738129715964502665040618625481566614974125491903946669421950862799596211310239466935008055102247617550177073975063494977557807176401955135621084949666121242662208620510532405551287003472927538488518547664592943632383858820212448852895876679444775915736517249610625163311979784563716276141987651060374344891099549542621937495206680346700553819798793107678104652495124139131316128245829217108838047077357880709989654148922990429167048004533325929352340143854102408045954039737911254301825994555094744026586619674644327875064855539402073933039126029588634962260998017735901289562897499773385402756051877743590898487984449172256526427174097346084345062789098079218136212421807630530961037091621068089083425602079139541121046197397902921266384423988048340469191139903999803963760801016852031688775890466442051768738061148363585669556979248682340424811893455879346213215524861855674189623574768610690710051647828498600275304502732712615743398616332270936314058052820225984233691455142578223586900754853509632083067514401546502622660917195971238939388199714786305338492421613198776671845399566979724874576348921089359656247622588840089550012749814014864485053288465922511337117998268517341260619644460193246991246070247828407907748184234896815974880053794704107043750367324892105385493032770384544389226222078144472563684482030768299823864226174743750295084320210274795521289477055326562049795966833972748328894673732801514116381950201122828402751466558520084787190965314550084621376569724644020162299549971644228596063957844148139082264037171242581397069814691004239308451692983926710618323831102649314435834646552854396423508430245989490602313884846294198695999749495100886101731234076899602161284260860593409923390740896527283783581861863537822484763525219878301944884704449713116195576871442195262654585444599478377635996626502371679965929479338244535670228077084541992893995394553817384002563856734455899905369481493460470711236717679606169647198603335922061614633836455809288417714952766454866952553846247917286760008794474754311182975492960323667536629395195367528662237387251502859409002582209958753221108070085927644079678844123842241784370469883250981658103790549404006484251187498976736213052015749265252574513229434140492014670958126618053305094074655727469945490404056752360185827298784836506401143395372790843173693831902510219849110283098334849465818942284690654725094219545098846758473112667071902370474323129133818467691137528376635738579775341189232722701677400811653550511106212206337362598054491864219966762860845476342218644958624302297119421739861093186744006311436977213593996615222333569045296040900957647835723754689369988662684006000716046082923551683127009699320570326764059870653149602886802269237618759967381278969550248743269049281196662167261363196020349235909440483265501508104811862082268001300787637155930350330444435156269198066861203212722139034575312159658051997938706300683191650883065894774284049609378912680383738639260474709110600310822120886762415947122207626094337398866994605656740355326270206364433422795853964019934017066985955230476983482269022488949345081593923782091543828239375096310855134255942966681945862215194847880830186924412300938695521003287031155761536921017615790198555234889182567165291645493805774318535636817370665568752068728895945020553248397991777550114174500188456468355567865989547514891583319266565787211369006010900065500349967051824046082027819927970630759771810693706355151234721788412385237620575773670144002678347953887806612083846061534404172223684393171882184862677409046395949446127253475041698168128640932344510514424489937557719269515246647080567964311913187802618850499621930514153014025840592872538528309011683577537471285381159781405604165361763880818844559351684589961912874415121982964360129932001079559731546781228941378143556271498494949179412958192980979280571706593796237284101964204163015835264043634193820527510900162132220467022531416053596461152148702549181144929093483660566863185788788531081794152093014134051299797773939014709415959654593920933144018909472637261668630599081216088924371534973321133317958207628435387674086854830570427683139854625729019547133220105800298134447170668665542178407660834563957605232610267452673993774619676957099386870105474081425255133852873702676619775965715795985248187675321739856311389430067414471961330711448084037028025509220205931375990521587222873090316935225377158382662895133119590715820347961688478700985305715147215669065868570979714026938866206009844987242713225245564245661451996862712441903765386637008497204135014004648751453954063316752903767860806875997117180068412392909224321558732235315451532250358657977007826661619527672471955656405840564382910242701572195792312201066180975159352688381420358239763694560743910957990326556447860607059078110842541811527426564137839872928008717309232231387962350939726246944143259012154536992149853398157650158770547215179614537982332110165129948958699157755354567534122615823555714370020011397459681894214048900047859776349955443475226937660297365200438242796799857867450145022930836808998242675706829767519495899375343938646491017388511457722478621739518520217998901725987639903450153122534275886237952010414165340759372317150885294875625509323222054404893232776588259631719380927899919677133808671855913772532918952343416147023220240302722875835670204656650183686324208286341233103783205525660963769593509065007785608544286001467514424360336721465570423062400186969439504572036987171814249946395231973636888311959535769574896149591600431114549049449183845259041779828613315188893047425982912126482999886392966740177010940609029596549992821265668149125317095136230997674240991265385440805628532353108714890175057002620900378797652103314654770838782135173841645711125641466932538682955524584298510978388818173426449959335161183624031630262683634423757866619200280718959445995368866591018992883954080928943023222477680482770704448861598618716579041435799253885091843276381779092396246393022840412430730288126533080027056717740815092376876669189362358230181879514657113461670667194290088625740019550751953606510556811133611328190274236769041958774636171356913847462045642150867894286233339763785870201834690478916415168599926341964362536810894250338565801424433737830830183886463482211670307621463958202427438650931299366955122973015886095896155052504777073645512266062984904112965437251191775801781055720175923446564847848677256832095809815353883854689412991495231211466945295078798540461947588658452075553938326718154557950865889732265213314007784251239910320310024056156152327980645300857883337869213836022240137008182977711113464032768928877808691652909436463657523563774075079493280135903690190888803726549205298223339614505241344781626407847022921078905654628036486797159899442886154864610861340878585659329150250881275787702362717919809869106965763962636151376903458467373010679462972132434913860653616624760700229527186143389815429082503885621139331420453765738407206683822481331004634199097846322706017040540410270903970709040367641648615691687644135540348596142374768375810968536743742216610150339216981694953058401248240420782152386275921847333067339224382999757136443883273893379485639708878950173287589913848404893729863974973703783482230370296930881501951527863418774102848316122398124285551132661389564076186045550338331504865735621647573134335188576906100878805252207335702893431888227107790277699305468902396630486352032883017721149799075717720295081061234692094169825522028308274046811554074971663289698172581652747893196851608829902236864878312349978357805077286766899093801050225045840006606199303333656128779225403026485813050101723725932068513803865628102528999836621868661248744464126197064989705458049581265703479363237124265684303042733420738122391241661447400578192459226435127235843334241795466875162705043101505573439582203826257782992642400827923115058936886579964136069808393911749099000539851482167173670741398693636782063990519250288026091839385585567643426634159100388597688489718400909618277691944803939179956622901365774790489501108272589418410811370630411587246130375899275481170800033197564681897611656332620175278077347339245879550387869703892108343531172213497162130081404722795640468794923735041082919031364360212027712032072842543070239803938430216275929950594829264675206294994631216284596820529880152752169044681248713971998643604188147956406778465101954459028968519073265246711224001776238712087569005793869584137915759755978400090742663473267784849332024710578816874104603414924830707322169206899091024784644272549137248055194309682070704608652898412822638264092567395801621058509749681738697248581985605002915947282834835371392920659364984123246636214152855380570496030442676038712893005559559978197768593065298289597012436948580797686742477256785654171571756414768038723299718200038902697797899844913291870998015531160505675229150746247745792766276083382849382937991703730995741445694369876453395996608340475488737708269438287566432570134260737617635218487051502586635250203615086513711685373037887805582464448792600203370461841637086017785919085262609700456214591124298714260499769863195751180643771299274058292725353516371243537303718898398051650330035456879586800393443125389215972723835507531590850542869126619614469051322467820570210337391615878804902744920900379792793926098586413068884802835191360995566500380062424150894487995418967662188754216218561854392371073842417403521604194981337184318720394379170461937486727350830184161298793680376800035308973842815294942171374193342392285903223885398583882553011148736416942263971315639522669090268079760023780135744479291146109708343390883916073749921766495753020980115213263732809074524518195353601901644385518214406846318858004683018805673215690121318932224186889153613276320036578404392509387233636842078258089965798715148446245267416075696123323266177302757771393487522055145682306537918932821511494213305585100632614464330955289592460227658856878252425335712286896976740305968961893517887133774985947213421267043471672340679870933431416752334191634054072908868855677686074966664556863888569038907645483531147653424833225635854390389104476528983141438208159680602146428151716088066360623743259537493532441704922704856722819994789120765277451418591226485860027670209556213172256073223493859381327987504322387403569612036211197512831916356071376728311795469071780376299893346712672081161823303508381998919309971671657701611623181022965270332970415914877607545935005139859704147121083069696924752040918534551937051140210068963940201738650939400898005494814162823685866579210588286694617269360887650778352616655173662634820117543113225914026924062357669980139987156831971014117044878800479770776258344300404038580814775692569033154449230575816002697468757903114394842318213871015923188632328757255172988084844867313387363236658954996066305069096188346742256362462406475558131351694531413412263107978042524526551442823843429021719375775796984523992860171288962639636948087783555712291901423087366467641971228092628862927160286684025114603507448246358660524820291247084720447870223470790295925048156244466120155447252817593661882400877110739790560879789790712445162753017340499534763434107455160599437473891956149127795581094052286445225571034663305781952617875420266910119660536246947946977757599467632536836650147348930177777695843916838482824086198218113885073496846061412755770378297830584758898650725292415985694201822019610965603188625492764829923926343297965787074326301654640734415933225800440035635108028905082333663520813227375065637546312811470652611503367898916405529445049151874304381976268656639014082918856472330334143798526148476772240212408424891835894941127611395198812242666797250831042678576587638221917352202534167244249771140960078174481309808008467553884573759585552976747772836986576863992871572544686172302840544738385582591844064793897233094237435273442925323612987160062600789421406948845547446214245008542387246288953132166953858326355728167222672684212969696710350214936167768266046183380342588601394458247971981575580644953166752255825556661672265177623368035286296264803691501408074492556202037512597583950731257266512406263843098004347824658463622647567956952345625894573493004915470736313620490580072913021922389354906609856116628602089917783468684689284475827207034038922953303115450664159068574541645430069166912413763699501328838962450646783095534920887013982833326425260657864746516368584642241868486730154031968910593691569844027493506746894077283654659470718075585625118228303972067459527063430130690668400097005680586085346315621196654808658443237717097786688341007063308211398672506397204861567808157339011091573222084576894008002628443508884363075899080850166789618932295940003619970745887880154901787940609187502878453608499060522263494341940158100618599266852688571004864761488905312357006397723641990099359876794016617247643044289779801718212766481184502542673308687756101458248279877418615537823583214092618384030570187650203877615271868326863033103449836257583001870047068117634403166352901606844874539180872150781905146203309958680434301820329883796869159590457619345260773168069253877751116064967033281716514427953336951318326494460788992596698022655824878713654522473776360940922247901421239175981262746059385457921962403099508937772969657961389296450933188678243092829227970113900165820086253474473830260704919203866834698470257869933809646687272725821203270347753971769281686345693255008635426345502450894945810666411889141712706419894899499930571791388843579655390879055302942777899870818245103149471034796002662115457927088668229239599955709291116781650959553036568321763475253306372033653832775929383258068802302698311570832704476293173844798068834540082635335911596903326658109908694388104826963265396047442368885724946016772101657992996490618677082795641229810486499872600394140720196678818083010841580689430316812158028640278946991512182332771639909463343826565535811890813355720758728778053667353220412485341283252362743161825380743853316348895897810045827248245224437902190803686012276814345595744824144850387784830872652062390201294328232289355765979932369170791332563193696375329578935819877453984216940822739282670187980162084499302332803980918842169788010554729068554528139409774080220970245112878058030530906552042824834096902160458246870587392757466377731313016534715459480172247259066561204159660114300078510638425165460012583986368301590951285778198103864216539446147005564198364284226428706486923867576341204866028485653037166796204241436641252064510700754340762308998496286889911996845297506038860663518188616971874875227016271443606256177189681765305884805032756518709593786737506847583381248786553418339167893458045707189197424452305359429656966231924176970130031663387406440395943712479102063654773026773233605793585126527141410954456035684368954125552708573525278001896071725495095365630635604374080893049636150162009522211275617849972437861796672536892280253823629011028466072168582289318663516872326927795650592635947785391432670550433346857385182023513518011422687876207761540368233366961730578493271813008663213362956395583765738497314156023539862367968607333776058422275032510407690952584058349944848878435641114995598449312168667721326681514099808006989147207232070982846660713892650833104938039630930624285014349348661439613450770147235430518569778917666215318752584962564680678060925600302968746050855007000905316341039967357518008242536494220835358906752760851328844909045374836869456682726753741217508438248362661839604783110285235425449784127069631084464052111675525470936615529474686934420882531218278353269705284148490922987357513843918008440223174329140056124338174659679101223838451570146769298230683071720449189661564561914488937720103080738059923101968365313009268772114627931837124970777891415928084762490136190732948269803608496368455050043153214004887028688859330382686416558342008668652834286175577220119097586204259689096697114241563581938126463625785070512281612002104643165133937431083851479784809889550622492515583979668281405600605541892581277126561411121508079705759109673791920745634955524914380318818411904034425407031212615845851930282110296748259852735227016501367622288044768358149325712848283290870947634109234556694236575332975444361420084176846310844335141806980178268635065505355601553688419845061569412091723267867971070848068982484708672007260616822522241340889161802496254683578923243857791469349840444179542241345997675771457455565352481510932530053323596080824875176662695873676604242922164542973661349569694323527868431931443159864312506684952434720638153419032124480332354945883213436911159210153935065904091767276931966952672318736534139184623966375806851306856966567099216930365756022796774839644137732070145447035595641045419295383509803117187270164198903989394212706040901508680321809481054901974294560542455331077526231902236071278629974791482020201287947962057838296430238346996023653092906713529619486533860714358812092552909509344766645211246929065133801863840555958968810703659013695629919842200928777875675799831262229279250795238812316393442536378828199458081420261881852172474758862363351721075131090659158557868734287703904666627059797306605814645733187336331485029346769416462593398435522881885412451795913535924480675000915980951532122542327037205173796652060561360895259808990141133433827869915619923113245869013725796923837889074167719014541559617733807878344913563319756073212376708485870233033397737808572937820708208359993731219668446843963649527293975926085954429233798040877691369653445890292760888995374021441313715084916401460160903623861989374146033218849627097608608869907705420203109914205626179982627308035747028500351258856477850137949773821673554469717121375018833216373255029335129661159622292186772228081360596822906081720608686326797964509848123081860070257646274947339351438325652413173662287940074467338378052135311910144886723489594225989205394621776175900079009704237342672852732116402217646941508707875987427770039551465434797544671481124222093037666444637658859059899202767051918554787346857309006177884211365998773486916468023515645742009724300888372633050585683824005098222749941050112332203838070360709673784378203544505110049265758414150416433945384219884349413301854491544662498482741628479403365492639388032650287853935372514583974740101841754856086445877237746634507323108904630144208882078741320331123332827620568841374292785454001044248743749254560697175481470826451530222747117819832582372746907832004493934326248477410102030437336005298712509787226101943564099461615736939814572653296987309881654769930484649073116808204589333093502043708045366804868170812887861087897319938224564410377184712908084067669951896167236872914402166233065987255280238771657960677984793762906059225816527787359848021005485835196621908628190724959142894336731527729401031390178519819096634175689915177488771868329084426836627668023100419816659221458455690412090753155766665162309109980994274109732718766170476531529995846863629951640638790495589037810195799721791328854808117157228517286339396353482000035234173314960328667399553041163327234333079474629679633206275105857165752682305753689732030268563295555640710560262811445830813475328731876311003056933585677048578900601919220524985994998527578819492220606462725624913227570289451950188861338507672110460193914832738862839572951651735948082905118852248210433434557083111276557098183356030947671940436429766293727265263897852560043720101376620158334026853730138787830439899722211641068683348171532830644027098945555052650911030306395822883644244612214870800815963359201119588131580940836673540589774509579540829566059829038744403908451776832152708504921862789473112137060221290817070123445874030822102543041484751233256200740160537516096064112109427198480571226039899805000495567012972542478552231531206535204793175634425241333899404905458472919947720922637046305688137871383500874095778389633315974261398108264668695701232817076673486323351154406991261475157256124099836411873775035569737900225656209662660549174696249778092438673694845123784973126608057319810986537680740857578146635519467744258639070720276793745039256061672937722028660831855600123081853714989858794178022074363549639325866246388502850896623929811492873939727687343084084203242809911145095034141779945350357427057323125663002426578077318434712681587776235929255220663419572429314046333845188233745477257873361957794776075747865841873151869271972112600489401063972109742640615190304046029723792734454740226433730611749876198611778180347710772004841436213533856452046061719487977459523014704821852143897185951034050695200775511836062414837549225822108446168947272302151770160683079773563591629703944033025710258301040311656648004842282437479573858263318562002727306149543055910188305482174066408137505116844954955954745854577131185112116171648363236603653392325280103812159086001199369121078448908917369644876594631231158338192790661410052164854089297941897544457917097830153656542833899065401156245569605786394039291050196571283236594449420483921572443414212200623491074319635029940179971657853334348171251829870426653315953420405817869716157877295678976015140358224244169956096341699574161626788185078873649839097801855504682709745365985457222605515024597662931688417953814363644635218660995012833322610758456610597813197395691249560570625420045374709944008826728991170607806502357589759691621055496208012191828205315593331484437891574081020890836911207218998637493020306528296424519983980077247213905853809995009942818929952606126873187621948594983498493288011537029673014202899215005252123459375087378519207488444668546232421736728512989051793944615782596194127608446840531137448562082561138604925451653638518285065557154007427429587273507658471195277967412411703804974417178750318536394070189750417586155136076452203132194133824726017597695585408657175245472070175995926309268616113553686493735530182399815976809533706343149085322687810143469743554690922200799226916118634975123280084030446969380359827191754265467318506021675443786404171134168621017008922954938490049360353045059299064920187196203096007457900928458668518210056802175435620324678478313830043805700292842458954603892675550318106574371712586011524203512710504243391534623080760530963386398220540439903753233962700579437548264774563256076252956350980633617386483311567535296137417789505546222824635401810782287759489510735656311789132036384007974638322660399302124636780195113309228179874972396531819131110975042587226858870347198980177759986533613569578589168703051528374732483199001357168353412727718261125164292535733315494745975791243121012490365294570945172458193793193393103205900748269730960784373401984776259647745261291465115663028892821205862114339753926891733468175529070449829769472035820305867715043189222253321656951278085782011478045271897552489183967578986404828523220834887767358305686419578199738390290139958858860661927236706394848799663139110139679322543788522986925767467838007736500329093355764798900654027503387222716969491729157174302216906936836554864404938249325387610354164146260353107851213989040140171325199702633532536464287104971862718838693299280879112873002865589893463454859630689083396253019771775013169676879871317194303956563227528196477087657156137292524958910573152011741737751082952166718193278264729047899821184102831760681242955794408481676866758704342718838050231504160629251449457972133941817912324754952811201339541510569289582900593902150690049073209615702930163836688756486736747474500172539483818201513714022281303161033701788113969849138524415409049105608471366180027819462437424061963953696020092663385181421982212702682746996231284832489272390142319914015352399756766462224348765056016720956923010693666990688544875588805459612251407550965252383040397856233905019938445065365233704357532150379947276209620760705558039013938014587269498903764837202448490108482521606113967143642469321628375046300316131933662119261885452490810449981399175643904178855689869994893927109601454718604111144621677303438345146404592975461104692002779083553699046829994966208151373006981385576211356780682144910752637692687552417519676987025491446791190527689063604006928691557238885536007669029736400763556909188441594961384002268351153584910630331892145319788353423035584534202783152219186927253080807237354757570937120159986527802682473630368665760834857171523911023988780422594047939253823753718776333237471490932553252074675214541436803968958749159412920730873480513802951183456202808817999043937206995491253167200424710188447971275585301705758409259806479707937620485955548343643865080055877010155918465774636265744645062907264379496462394391642934621784183167572153823191622668987721590957958449008789564773250418350921884248699666844128230200336493670867848289326453317707940655900438862431332530738139780581348365533190889562430966728650791195283298462185377406361051576225145532784736855527127223930388153470609310328388636799219160967552434329069691082157965341680094981165773117425654007386497670436270944075467152750489916939215417580504909911761143786706502498309453940236300975113173677973049767287592956023291743365965149274620013624026187874903610961375193392123309749258836215281288485311509908996824647560703616880459888174754820637753025197165393097304412820525104716648148798047331177246756304488807419202468943347438044566047232963842791834632658695443366629025402187778526956266359004390507889395880675140804536460104081055633385527129488463526806568064822770658808756945269002446993215157526878120308935851928890210537436610077448684385040703787025907757925189619591000892209094280229395876531602214213517892494135640729726562368440077595599793277029048416477156196696525343715070646776060857890923877873548420689731353874249052911503277608875915115518647549337609655318598465505677626379087982258845858741692353563910584622537494975876371925106513380633501525214265324073647002361152913170954444156974516758200442844829579361684092565006997033398430694306776067876651889106216970214014969034048509664982671123010452809975158066543915660523164738424314413462803472938132351626394205825207340350328181045597871690839029382706062286147428855171549217458155141964117277483490962442547762853137944967651699245153518046671362830151957576895205363251374120209419009121511759718543726255532545344322521239230275388451169552209664481727673805124715716990008774581136022251832901691872904337962191531466884143171934640618698850368107571068594709669072401585968355118897554890987222192053161883682051180348780977817538557753698681794889296382861723112899320754750936203540868213969171089181447551431294817148891515905144205113745963278828523431369824821827306899591630168930868792219099248855539915889860936425272029989619830550079209403347526376153842132009075354464513825444565751776810525717014927034742163772088462141546265101376003816393352455395501726939909178144116414639986306240602741357693900601111820073754400853666975294614526139719157441351795304384089491644747953110964350550129285791918472752095518344153437318818149748952142794980915675897880787618700160943022885594818504460225835376878356494406482640108840638955640116496331348766737421230414097715504383462562750800581750725894667542654562407629947330808077670692065474169932080788933335738114749721934650171628358388857451259705622245543987439187469526355885948214350877622504039402506772865369300108630205556939905918679562267284445551779826475771694423464833577114691418386497620167426408237192518568243252341396639220001697468360593365342793578143178570990743680209074024905191545367068097793895342864406153988635522020240528857629839767551542791770463756662569997621023707942287616847545848667577790088907739098841384609883292937467138062686648758359882892796310171326666715113077796705606568908034062111853979707205122141677687998839154392433360560795981450492767851089339570563570650775869714350602347362333247849223109739629063091194387670523879388856834015861927840942578183175425985205184966028435145723532208743610931847330493729995592323092048134150436982972903704138376134342800411444462539756556433546538849573413794741997855437473011847813461336586158491179020667817417051417886631625304169167839342161871938373865725416192393494022472351910549971572305988490565718589671037981883207032632607553981528531053702273577360041415664214186180740809906294572622756311009620551221480270628049429078557766700542544590770949970435118546288710080845724072283075524558408264764316770563528787622296884302334475114472593479769972249011761838445693109232164759866488771867961676162557199493243782237799850496343447913210588803672499886820567723946234400221474814440408995896391185525969295862623395395348736494131576221328816981391312663291156314016764081924031119724793528377916632940862797866133180807969703729478445004857933923330070257887083700310813294225459949610164576841166226650920876162052208816799377856947420124085994578829851706020206165044945094697310208119915223717644918527115222845135793705945615018147428879908747139086052267993014608321480692071196733195550544319532239110628560728136003181211847593140605735724394751555786368169540798132963241159401447432501785510973534036734791301163193196873948411979874515831505533025311760145172528417535023744116269664846270438779135517047833295275182580927189852376682982925072133773229026518181155847919562674219013661597065308465648008251263749777640529029112332730214384768280387269790506032033191506637312435511976957599085698329213815244760311048625445563551726430846062883452309546244452729559330990764789594292595662750473231427595171322787994031712965992570873523002959281219670323992493754407922967172950385878740883876442655925693711179025668508973959115996173601923310125721441262222431329381753480305567218369166234512976612777172533821801750032227246774349024020840238111189719249300317068936935607930525817051037104469055802650482686003588485555356896227448821303453248542294614880875985846094225350584487558355160390426570549750627229544612642248655410843646305001478625309049153421972066259442502833527663268106906995492571345289387378296540963147419507268322608648296125118771878316153655239005985693904637998133406445936576647354672151214255330178485868836162678182798004369489729296578433165952786279135750843220517176492930184337842960423489243829297161100743554668684145163811889659471560215781153109686895917608722801846597632740207958761050909169376638679234038520475559281599660252267185039670797348072689939492282973556477931080355498835151618293543725368703091774416650036431915910463289856438616989085859933347791718915136677629637156501325278249575518857065415260055903586780863870020072182930801523932000381677587220296427903137517570685477418810696090435294579704255390461829332897101031975570478710292216846456517203742826116904128003054800428684076362231864574858635278398182622271087415648136785249437728708514189798678274646481637781247431642752175513081931328085155909747793929739406997785402628715333544732318563710355810163892157010545373935886140813314761632009463941294918455874459229571508210834063978008964178578157905086808550734120326415069027450091072158279323484536263935991328274593991608088292911382962344674422858039227501112639531121632370484395670249332561700366443694049156367955031123141693742858927525348148977837423367076514317432654839399637693603827303790279007062997759524711494801138994053444837142742754835846460590733093028297220008564536024178123370169530648033502900341109754058202578164953035254503377299582410145720107247640394854039058786546378854340741058501061627987555422546213296079927073803822490455120393477715584924313203868625842020333348975432520689718850007574558636601229365683122739248521111263021724544087053903310120953281492851652968971595126177879225840741310390497497593439849270954481308586374797130759335264239795290379833666225288077554332997815671359066425895868955021029096853191139127399049419382023293932571638963278724562560853147626772091085878380237388467788595253776850804209146003223892452326104286707160631470535733001496184889989354483448480235310147459135780402015022137845896542341232845305747472746871737710664589442063035882971225662283414516056641908765100111890828973543023798241767850955851588809793400436945493815282745031119088613552254951715025660224154633806511549466407930166420822183730518961386349147195920727312544753280000952071510269636499755686232141428323632859148232875888254402741074831179128638668771815881750166049910695344282615690990195227211002263305865900187205277639893832966880426227982670945477874193461214583184571725703365443174121424726859058290134330055437043275944300808539804030852157664140632553211704916048710914476281986252092171461643272873277504919768699395709328702026800462315538761911728537108234844592671230829230826169928034479802999430911483714626480285112067284536278131721514361227587778022107665348207528549204262484877207258666969450928443437832622897345842451672250061354235666600556210636985829456420215202412308996246554389699411129229853463268833222215671024464853842812930856007317087753290174504060837839128684007775143349995415343877579525333475400687285690635835467452840548769638395386038928117950259928537086620666819419178491522666625466219407592886355075258623816619087214616324333076334087749896725104376659265783198581928020828861219748331550582516581887517994738566844784464840584217934146232102980970638911220534969151971716346724366607335528411638010666078651548095967504296426820769764922512078905166498451488225083439936857625760548798360499077675781736419615593188848852237937513998630431945700226221498056830150590746888194762804440269409214388168786279023514847061449736423936085193212035160446519594373545689299238905561852810468050174483540286721512388477605767777759554310636177054404130999800954287799169225473484956215385687807401376159330199599173764680166281139049093578865066894330714557454143296117478301828232412773281701766912027089446198476972205373188532910235534793965383181129849315227297693226106860084286901959578069649561635480584069627310507156960315250601925027266352321707013182891150197340476105096663582597663890393327768479110316794076732734870964867642144717396702143967440433379243721534400312158902441564730342294941725469550294727951123619935179358204039271309142248051515391297562979507582637159096288829859133922972297690712504788716514617261665084119849211149997068856957207198719233530219173114303378939641255314456616201916062370650247175410070202280163652269021988761702782721540109229263118756824283451836646143806424368541441923849300561667040736852452462082181583537769654953685387330503936917833079815653222541291579696587688742931478770228586100269911684596148934107296366935381199516412583661851743015051875226780406928799240089367975181942883270460949272032164694526431137899501136093752590413540122848386290427072841787760691007556188682964720755075841223662426715876381392227451070070542460022054770187674094319974902158143935010728369830040792358510676711050217475398234620000261654278209474775372714009608387447506777064469577476999055467448681184294330861994390833721403457506453795998980959070886435417686746724816237622703151097033279598485094782882104665451166632375404495892918315391706607487949673808349319943353024212729605063683763476888569059807145331425631938493985206129318428835097438916746784523279646920075374285802178549192241568718655199803072836596700792822346903515640894409272487972330801159093832835153702549017831069961663736954029015865638635985791530858762313391929661345963204760099320752537864838140225303664784400115603680772581393805036610268902185434767834118164339372870809856523253272505854546711126360838246301793549531074262531750391925897159755391463959862928914198316086893734564313503371303298026187233820628103390999631853314575728788436985237118914957379655197571562844447701340328661783001323449151946971343620828709275757333468069066162300607240942565202946402709417686281359872841580692802544711940036605703888929907821247772625889147365116289918517009404354501465786833887346101350373911162495347526742038146420382679882554899496195073375125345897844648500241471508617033114003404746282782488745048060260220235389749275383949476488155760587863699035278201392286711910788168402757334879787820320776377945469167519767323565523843696597498467739388912032719758008941369265119305312941463383114265713461660358669517167136291573199953989971599281074865013875334736124411801522763784957000931698551857918831758255751187074017051514981163798305644173902434306129590823963380192099652543087997238597801181485283982835416855217256733945638839198973395800431583762363386721471020981119290319726171527905391246175208633542424014594067982866616165560007672772987005037526329613081780434637239186747767191957660567261344348694634923652995605468422774519291866076672030193426428814255917236235014957735497930760222886165758043333243363407374534661942649280195831226228760295971792326474680290810563032899049971391143357907494028248882370246427397567597953952206035740576707536730567953890269566893483320276653132202869926458737232582601756925243207552626841375322844765046734918496943550525182556665932739451813255573666240236929706408522571969691054910818891617206274060476814738004608650481644648061110329077631777507507667051270463151103735620397169614323484817471341539498831871891321643023054648389636926730388712703563672241295554795885479546632156086366256582083455911511904028915079408100978029859373533456656708064599008728512573146629788586561467047411654677513950700012263531579678268151890613902363126898532184291937923487315339149519524924713453921704168741604802831274697140998813417727617177876430165284329110124635774167826719803943870341657053792624479855813675430906565481237279569981548927250207207327727016812761730069605880818138467526587349386807567794784320842935203524560959689833552394370575111269014587460845038200636497645938924587898270624481296627108369986178806810271159509362415973047554616775221944524378024776190494590431948011749043954511696551363828472938167205285906293685517894032120873729991214243031304202734291523732602793690253425442711853058180237163080411110136087855925983650854977186431141093259354707191472918257410180788317860570377594631827684619194340816851683508198023588908042888067510098398100603560000952917542695899269673246878759553456194790861395965607463685668043611154788861592928209546592443696450094885540846363105193405466314597856530187128747970748830131913567936507372283641843153940795537198137780073622437753664761840033163202291378285203947260772222351335955291742917354148310104852310488339589791869712145125920606573798440572817382059118070746870426523981268287869246126619714633718696209042801646711428590733589014454394434301021638536135269075906915981767448762599231779754280847655388279335582123829409024389930128169220721595374982151571219922108320262042152580094821356354354489209431068425863138820696357582663323771571476336101194448035213012139350715321646896655962362505581993721442659760351947846292346831660694289369633309998378156048718415420379475348100685641024650174820596577537763005426089486078057808249128996566175750433694286310773817085702149412411948959835498424902126146671515833720504047086735385925452491895275884216141216320927984254294224260571531148835211658512279946333747564895432890085446027073572972672870548492343547195872917451329790484402594091489353704494822741649300104617246943107882570020084628748400709417081461177645187331695467551657876929857212163611480917875781654624321909229581145859953646599525871840255325771501348271722603152962902132362651021782138452037782890567513756306366506498632839505242329842984775656263823072229807128410543947605757067438646300621434434168441001122849601234551043892692425290151557246152802465017440539490497481033792174234571650945271853453189038881019201761551226763365044471730444371624625816148757737244582560293560755627956818015553926936700208968270888254008969967691979342843753127802663198723543537308718872354177835942476157217369235730410772340270839218340124937884368173323257982396592472616021440194082686914141338044975239256550373665239818079443686268669071947646946957464593634012979714716142954913653413652285844406596029246982180710513088269703123342096886269384828734352938846885118450269107068774111554608814335890142004532623519199971920579639230446209022785576945851820068277984936350367997248662142965102911075328255972741974596907536727891406165319752914664115360453965609229645254435616646980472554304008338368005339155409292397324685475207850027785639034174972775504796079382681082648537876292938745655117785376708146016083148598798423948014512969269590769339245613627218580875662920805847698708355870388991130282318485148024343623375608195189351967243901596596181562151642315427650238262432507854269764322024470790051922055091747862543736216494375823373845437656934041887891028114089604911283194177725146358817259467025752337073341692767563083970019177686052020913532040147749147856040117317637929041159007411904134716579285355871643106923382685136032185282466047318806679565296636347902225170978699499935652866874967174897930928893938769370806937116233927611037724435689817147064731048857270990357936210200675960784980024447357703350195586539774942448498928430709889385107183754050446137286840465468161471201926046501415775462345329928257210811283220560130764701616144836014104954515444133816611039204474760318508191845286889330559457702896474371748956935784803585398022430583840533865102660259395744374895599570956127082282913219420115221428676339962946635777555112853051764481906887059882288877959604736964636555662479328597286930220788234746439277022201833837994377217054696487753081697113857963054204488520044279291403227865989390319632906661232898563973478004671394060430835606725516758695030912660539121434212192824476198336363037996205399957778542028308346652373517103106935170508423691617739053600825532470617748573997231660706582246875343294568409826615954732417522995815168837741608311640526296940913115348026268649630670577326814187459785780262494227091031642559669114052592403286695167901171661893362411012509940700218386900101274171249677131318938619598676037450560939341026799976893425995809476642770520235065549036065935778001010641928734128149899353632747023451024894575858796069054998145390491291632276613927041580652936835785453716296227911178264881233665990031915754920729566114766723445186384170029411063522597725320710919499150123459506144966457746159920512236628336417747450905186592922023296274969853900176050064903492138055914989351139038431137286511028227559706126880606620308700313334086408345330886258339632228504348943936715236724900505695451329840742411008464827617193506865261155461168010130018722927287717757307055964871096505887541040569440629082708313674794941263091961732831248808440504579715206874770275693589168738552441569582961411502843617445907627831521613860532746012708049431670258665058324223007055377196455077923062490870870232582206989130669708882573373970831027407286351186429292112611289693195515356876560567514068534800626989871363013152240769516305858227384577056216759769276758018575848545244555279677766374488516958257728917260347864255955492286333419803292086565195330889911926237223619882050204080868887284531331812154197002619658900491034222832891753295639272533308045568250777084868285121971291145796953775337334697859582829276579393688585131227926900358614863549928114599327933235939187714104999750062047909127456931247563118736842046196421667012986239023617744645555838825663361675328954382103469351549750077004377938203399147647138681960163488504701195273315021249801922311691675974631439078634848029270992534098217296618075590398987571977286446340051395348699650990685100928502640076708471994160112156538840551211831787167559138000322153423864640428817297582230008018666728198723820154147530334036193192893164700563987397160683542567577733487639758292200227956934430100564841923792791722647807511898105300524809379430425494780353170684762007225425445501503272322436995323098981928364808168781860864874359498659867973473582245753331530162135194184027348842652811743414259155438950367410203951019687206971370189157802732087644650663555021927092429057820368274069967395674913875945056247381507174786055617507106062942688005035282251378488824495342275347861412647033748482541059009526060384956477326515111879491226370889191621910853513384752532012821146771403405288291011659866080069881866525534258313671691333645654340231791612675043116225760450823591342826936243644251915426310622849540520593626781583218202932674189923198208629012064693687851725740548937081211107131306029173198419334129022920269399126455792449277038904520311814082778981488107862648822068617306168338588206704593537195969961820170517736078005066869793319634294717019191969629101767084559684631114547065141657045484159894329095692817992602793808074310965581618146330962498181399680688715268590892709732246465482808959884590988375767737802216465462236272656597527187620686101809048933118283360082157648217503729096609155726312389463467902682249395895347875776530545468412351045792097078841647908192270505679237928882534981597224250994618530196241122309788484191145862617359954269879431070883450988457264500703193008333482374793511591271764213713168291400215650312698247364038998635243811118209139737206888485729081709793486372111527236259339111093788526050314585671115636022965681866234723159505636622351336456757579123109658220489712484110841283697437615729463924378628372888690272919593624289291242704238961858499613114496433149306929541108456136350991952577123165611943598247328290170041764989536606740363362823459348764354727438093291676783593712049354714268759249655906922085431799449211757477368895700201135012364724369140689635068190628651745267522395704511174934514846686175753304023425944576008217897363539101855297141940270002576239599289490798789120293384201882474908587963014756435684440293701712297866364047885028992475093605161261854761276928460017363075513822903697016874077009828519904487598932774013707549113353552252259402028840949218952636423075364365265864093014982433502200103379911058072490473497222219950953361899026228192590268111312484431335387778011102356655486046322959542646204596937965407098568527167449802533470197122063552874976522167708023153482060735074121567800175795998617463934876728799936908839464131063917054245211095425053227129073893866976213882723363758807672719008606497525785501618116629582274185474735071337763242180534369732340609223183377693372392693506777217199156918837149045829401080636070678597489921129473482694770941444092081872070340884143910192578551833444172326184703737068621625347740217915629313638858076241955471475129063207317843611499567064971096406532740529437722418500596058876575266824858048968710244288291385709745438855871971210533007529628673307437518405099387834563947516094031194471561400192316029622321318720518713314831127343274981755982745978379127197499554921818605932346326283473675660498126046959198156581561838725301326149959371415769803620875402326439290696542843278591147724681100858886453171823491921758175082757000667736926778577374505650342247160740463419800843727240002304689952258125118335875435027030213972384550100739181818933550494048440673546815563913329716398688970190881314084110280875023869589989179937215996885805231831805272718168671715308504245276248639775783130079052234165733893460511289770479728814716356676955109219239589092784212997059788860126129478138441660373602057793504600138273454782928753052826375552666518556477997560766868641487749024375629439910337197476180091471233716919727995260342465646021846807471465023322848359180902459463280634720624280297056408930188345580079106069732305924974035937768288695872628982661861809673729333411030090916147449663221689084649938481740458269016679665814020430929177179527241431431724368048964671159752103698000494489235259946197436391215546248873189670451554507463064713075752251247921984882372353980977340894680329014138238354285599679158037241004667503457051372585358476836685201212825295855256835349474954474155746484236750309030838026315832716953398143451005961554257360285669159076939410663708815723658979512172648846081525399092891162556548065131923501914565803405675385658453845712992911088037684227498863671149918001083574255010481492786478263145880186174473364972047860192960850179483096027013047592679812605213203880717493656133076102698870601337189741696116692903281134510689140806939756926467896166970127930235435784921875799670254620604051831468956425944159064604365804173503137535147558392300843715694138772414603494347159011903408558124209601978136960804126486159019279660108787015559734597327629747668028508343433386817056361575371266261414504235546490695544830703269393987343089117377160860145720606729664711407228738996277580480830411161793265287636230212542109373806434722888963632748476258744952313695939180038480881896747917079074250998555794387276366726071690365176860848928767020481976580181205492772748676118173701528008723532574873932363133436838499374415682632311721647877184814336255220986279387654756076168292040337976273874933061445503909532427033999157071141593031065680742217123287937095752016200084929223069427484610129715026614799885349317441541827441463119859651367088067841548199127298118833706609931557887662428607408669251744621639185867906598345540067711975812700169397903746268969194254041681030739609468477890949046640560298160657067261128900562607295307384493077995297791210371499066931213991649384384344345444357142487960207631640732343800373123140403635658302687773652458836848191527670821608264939109262251992730693126714779654092476268504941006734437635799888456748619056376564184432417981012193774164826304920973982448560837380134501889929436208028579181733720798940053937114379437431927803478860282003676582987190654360083062856488562817832253473238921688280257470065785962229894078683462211148484475088285164052107817740394492302367642111105402356973037291424190242023180564829874990362428887650082593175737417462689086054524515560554147560080177572605896360524414159612750141170778928439153001924053953406691611072701757248649139111884694034726648054323467483629792308802950137123904472447720624752737006437339687090624195177896764637990355358453148078369691216260530898437710970761483950015676019060624777431273074605751525668230218080933854525442110383520428691173520209172686574627957905579501880150050695949544028793014382486420162775674147323672826916490121335003852032238302830027357428636231249082920609793615093034408602860017821966104741836768345288286205485616589154003883120924144326492410906422382460173617280181955761179022672803227289922851705187967388788852793669206379606022960217684465618076097512028598241784934848704644157562295692735673996402497710256124288764474160053453083759848426695543855823991028046832018928101146045851212671289244877321585831831096234794113400912268035113393752145368735895176015914651636857734404535708475460080782169555270570315261589261386104000597023044772940856905388218608798796020132753483165744330069114459253026580279048464226925198207622741506697087355468152388723454091162718230706625552055924879596728091732254025477164394370540814813284218525959042670418144876774413914902790565895029405188434936642672922039539098212419796881921183352197314836896199748076787553044754644288181481202609285079632127204180178171507923596475383521509316883246125876977885115675180536451299124096799833834057057303994905707695619563166754873209347678208277190855565307230296778105864076427578746885631240022081605326522207476283422839606640643034045646651609759654522352593648716286050001497592186417800003677302047050647637235157489786091088801777824148048494243092954550089764819604403782876533761339191700127188628424067163162231627139591811257800036980650270073384521541019825706932991368233755900197163994032705142293323739927395172957538048300846061040799338264112177494209282012692660119258105647516226500917323272555114802277068211246747919744298868073769629538428936885896965590055630888053620686636959503566225613738888419503984184819339813922737795928929477778331199798825178601466164304900887247261319635297615066360242720397557794720702067181193909100538530957870720346280192345400013870989303660001531507311578655541412213554376348447814497793887175812957504739473081171453041883212709682277992187776863779671984955521676622550716809709986285886516896782245763114033306344462243931063207486147677343001610704474129544564285012316650069836282501951997577535051233862056281319408235211691912081718424941794338525375129134457948111519389433878325863961239083881236864989054112193995760830234739332667260843563276398516985687120559097077239727192198862922565327243024922257911812302840884835665496652825426779439437344390374749077645450816752959110669552353702301913662136347443315832659027785201642824563821301865881876634764930328030596274014025736270477615677763748636327731405569014703926487161739414738270677035166393633565129620893105979515610259002382167641212512214371550163667775588251423754412523990955296682820390863369235079917562707358226439624470881113060156034100613925904437713056107713219150538239973941286259856727587380017938209328758455106245716779035907070657514776782214121510395168641552435902666427787717241149313195458507841676962276860824827463886243492940487850501160130153775178661912049208424918691568771502748838693818574866242287477959089790739022496748192865946278782087096868757755845052483139482673573485147558183602051182654370144662217849917059243494255732309906685961582476956932974249710745176914477644406672897504556998639997412708207961052303242969690573997415594474298210973061501413296263687679472560021545689495685502146821405030364650243802762752799525620174461985439374167716737805925404754591418388943624463253558068732381978080198905037134611576760769379163103778960956625377602399714336324599023221340693768100710996188349539522391168813780154428564249351768538141841311149676325708807876336692684073261479414580924639546824283002714511326453436034279501725631679691672874267060443540428906251124445544100710138661520237844304766904627416131713918405576711651018628471837629284036582636904266015344174865552735658950365192789615946322267974130219624189753294263318154570825242692707576054921851177395355526967289434506697551023170976607049380352661265926872972945198234712844920132620701386063116366573830389661717996802313912936757174100960692228111047694537585794281399878920632754965384959905340721252253874351223945226415803559961281066152844190135257125749389371947942186681660399343185526734653806058921823895534651798972477050606208329212111007504465008505767652428383269285634895923541392460094806247399875085631308864611902894939798289819209701816427225797564324093820388162780931302681630531298585990640872833255830759988938174574577117984279010044408017688715342354248735508662176686960692514161219421448255898917725165455429392470721863636829524124828839013106142558570241665599973850151727258846353636172527082989023768723156811964620403025441939242141735132728913185683523680369951517867215138375163704798588874179642188223225733744918815568941765891504404657598768341335559703826928306300657471359648734472317512245996195349430111798681292425903377931273042478826600370827505791787552555607591295444896967871023842441093072443077521673969907108276727260137782921622385683482814175309459079739174544800675804709944120407368961380403114248400291159067587014701183709258415633518448856852928085244920535158816278801422790435779796933300692847505790926027126441016937267017570941230594127507148460453363700884854921834006787334059973876449850676057049642638998957977541807122838556596290923447739847634860328776607702607697193764367053071840236203644920546158281035751752230784355760971718849489089962203710535837383156279424661281112672917101901530535310177013849375427850270762243792491971625724083065874701436142510071231580910521054065790103988637101804946171975849287032713456231905425047127895790617445189604396192721843079042592045251918507277117477315484376162875138156273442984597115948628201383657850092082140067859536556811510463686150554855627157662867541975284102837290137148781395760686098606867243770288039602610818142740166285525679482861064076093410820280727187733704760271964181545706901880689695643876354472509903213783007083603867152505479842212452087523418394054875776838455600621753349071109975697405854203562169193572475962945275087696103851737249763711811483013416374286858174145376280745612481930767259147220270517565135094818146956909037244957043680024393980174990016162044232955254744684067743407863140471920549534073614146066650630335656058584364510654227570530805748297557569931893202601943345578061096341829441873697225019788487509848942220645468323930792053039801928061502723899782220582881527434149956347319291234196142993461571566830218951292007327900182390427313998872351799409324195912113566553573293344492433995449793958239681778733688451723728103466537406970980307219710531146109685678891585804647226287954777302629739529636612472203790859123632351215133693767835160291774698304145961205529869127300832035445495014840732481113545002243866595009994262994263063359020419510100518174588565216258515462152830594065124863891258306146058142381992205631102468680415491082642745302706244698359268897427566985994366449515457779572989437552496695220414543758178924309722036865899583140031925509870840393803709122186759000643308697145078482951022499967994635164881042517220001088582897315029759027568859768943822422902255026252113965206855289116683879584487690880733288734374845488445279431666589853349843953716722852220248722155349594825610348074336198262548342185857963438399146466565469392403226737319639418442218734591429967200618096749792542521421874045000278629864950049069739670099699789499439856325955385004466021029251281938104848048199145581733645931784033609442055483063931429607915668082691912821132497427346682318252598608416688977805984260486327894451967724469705940404988155582394009871582531185576261291196384409309932563240093440755340537402710781924852939089327532930454068784114311471065919138882946669332561025824574154941426224114810424122130437798573952623872734534524132456072154985687472899394607111224543546166446958505572964129401288560456513620796440258118034547774469052139842721085781020366606843735548277233436800392505211741789205181350202749969474843552019733010575186110696161033927038033973306751882905921716016539779406656082760132244325326449614272162350749002813800987960855079056615007883474287652138006348952083398378875491616538573293749981824250888306583683319609714618903986357485708098357759231740828564738993258909333978051002731811324054589400102282849051395834044129574838515872620907090747190246739718059669476491300543377912397653594135080186981160914542318199988390361341922814680146098442930623264015394683192526663760296027872117411522421872880100054228918779476919036980655751481279579576849483564172012094296937838376462523822702177651160877815925311486745545163159107992496118783679602463652200682587256954083243537926042192626552874483800103729238587342301931376207801683976448615665744828854905175389694030395990900953327487804358038286267658731930282310980085403600483418542866386883845210500649431329087982540854159308248208922941570048056536452331128799048259720226991890111440031542104530353663006758130695950020174800154914797880341178032512120687572757476025962424588197375671300108212311891012212921784037992210918818585271914901271198420799472026659614219136163912873958909858655497376020873844315172159409414264203395846544868001992674256332223194495762037296750317451325468429232031282963542604560105794304494176598610474446607890362717602866176357832021148875696706867106782918196040171075427427711223548196693731272658001408909648150328080793477552734259801527938404371330636215657374659693437356967678429496048476877874364887424903991901313340499933560280605291188840116356854518565548800338717784919846939752011446040740211590031337686148826026298111321758384389643484452585199246816755721339861288321196664398609106908248540140320208955957102006268407866984828037620036516165762368604394846172611738223622442794722520958402622101575795170305773517484910139813823215979493367270463715368239598785722702664545703774553670831430991279677374313391708513821613678709125834039842792927708457336335269606989690739822815560908074145263854376465335901221374744842856687432288024651945402501513292088514875781705225782686630622336214142535572218011467328031627249054098895383761553431698426692464142812151141255658842273544495674804363348183790675461346635182303387978211781790677930331255554735628886971560160347443832843886316310427491010895084410074909296577131547024792385278523978515284837481750955560908482537321137415672769320230567646683509007590007878726088634688317617906601226867965950349020846752399393369051597166877069992770291279010176503767034036202544123601622869276584700496954102549496053746748700172542687062631680282647795799234069205862833235732734108009008791465735090835514858270007061958556170961298034924736487836625552814402938991852316736027065688906545456441613490535228043512499031998390585394189442576377970821690527884064268368259511118477530974612721564550455967850202722398913740010378934965343440818549088530391197741266990433258238802021892634010903627621969129451137325900939732042680477886736770776267859184104691481930817235788852136065489085897965032960736682170474154767892789942529518043800457080126740736336362146497260709249385596848566009326775225190480661149661775516965330814245959999880713746232616224484815679097102817609400797140380408302298120178635424822830916139315768705570224232169612072768238331006842909561497840020776984360455878031215261808964741939206461741681611997083563856566197163250948282258913288033003583260444288388547772293939883102045995516706170848283620247627535139177883268514132598187037743750087972648721870955297760951100511755509364187039308758847606583474231726235759345779170030652647646646944540161454768842142886934961188675410595634125167968165486926917749438938119596163798570784182881481741639197070262619863651282521479578313784062744881464757456061942481379649279626825765996466158452818284391045100394127136871779403330469345985792287294646633264836108978113347664195689324372591600097346036095675703102315809450284917828941336523011453794132492884244075773843893249984119570662923056288034459257427821642333013032834518753311412449863601978536859419897250654557651618703711873702985182023903488664725557030178860453559831262699445288084789916287257486917131754331717203492262160815379334243596876472199888009062715429413136023868995526367748992855871053185721195640028054912502419159672715870473072496209412555231293673546906846891446362258549967104112596947247443881151210667064432238800694591164893124895761085477156272546869248197615826441766407246445247519042127897810103294127030868801048426500340272607280741545522648616905112627598927152384324916755638304504367147217679604135320206117496766984920859528713974272794089437267563486459264925152262471826655765015960803045692878561761431442498373563257911887946394845258153759749404390622797410384830812707993549399832479143050827901976630254721842880904637365691963754006248756965513724175049125441058585593448418271589157276219808642146768761011770285236224009213146474174119553878445982766884562540802979257542592049164754374159286407027563943396064371929120035466827549302990828478503358377553059466678616926673436401399530707063714704142030221562760267187149948250512995301674130936719711342486753321217984058649310682227489252134084699423969175234855673456692144526116845832374421160222401698522266444762987070193295498355612887859218358302585797852703821463532971162296071142390628756227173665520418799853792130100193797247592257755709606674225003595186197151497801345961918424595787046625729349891713044746515529606494585548861773138146178059397087130614042988672040291044274504849943608217344707552423894036919787357480419735731597564590735564289409623243352808132046322218477341222430086687962986446276552992234876576821613777720853188917302025449000594564731093155434943033970437289889886801637430230738718880228348952650357036683023800691508523098617465943826736781758605957900600953847287986726341166126638798477599426447288725524830254939352150953026327894511449681446381144258981343573671209503697875578529619371608902361851152841580607434454256979414741781532048207755732118983202121161294213504214319194590844559788752975539499319053989662424986785565662017292457697060004007952816278985451883825720110844530514099904847068474843694956336075119599474330599385408994797552442465014535413648403374511387297439781899351695998613949880425432577918779849904723642665977839785198909468098969240534380450199191708534831681943698975041622833028410043952283734544273099001062027630008495148105438152392580645446510365489943269199796997010964029534441370464297029156529816783839088297618654084298584471853174757788456880746088963680660796185582337642774113828976201854622012557274466343158823974810436716295166891168356946841080033532745752986942529033263978008771093826847944532255391069431709835149159795174894863855745211540071160811315954745844213647797251820289708363428997740884082854203147138909495154443818790946930853721058458318207616717072695511995356672277543085174279852002107967421412626519586239071758923640529700485824573484925913808933684697987220907755552445759967373375446708368742258107387933104493453487829097038144215043173053215637320808857848277436466756593830591787356766894170664290801300292909883225439424042909428610327085487730573104153243182006711893766025703881923452459212836956381642944952658832920100362136585460674739410688194640601548874075150072297448910337150506478009482017121745534257162771244027094822290150816382146475624247009188375656751098426766279324566404077223057964797839877362118753764395266203996546075463107803514642289080366227464057520815204820553849714571139456984270527705953100410186154289720223117666632287348816306926990697282102166179392251599656950771012885902792262551070142252607886223060684284653403622495415934007348728049377060782202734381755289136472057928228404334073739773758391366894900405107063824637726525574560454203596308525353537631635971574794672560440308813494619644642863910226987598446290859148126483252024877744194919396553894464095240774642497300453864680815988282331033451876791901908831579270177942148648987504886980753049587499929188065884704013123163937635542875782420069965944394162914850759833371211446031237089784785697775082819812933074397912746311433649374535920333259721576070073239583451678124903014130715893697960915111242035332942244262881461358895315270365845461430987022894142910985214108259625196848835831858512778898258768286998410246042439648196924088038885828464670353478967818028997901332321915548647161549518423660842577431175176889808181458885910494099745214120105308416238017942022228122154280718113061943259384609863772966470352719788131836112043046437886898823802911710902043166240187663833008636190528602352611493041741700451919549685519703156668732092719706799825406192593046493416012899271540507426969838101553107381643085024369414861389052532422435483478263271598100417729455743921284965015642901621069085992206556459704711914221361289953924594657503108039733190326080569397735851056179808580607410933713780683145815284908335614107988581762085730443236192584634688243088893825453800946479893472389358162021494878281432056345162182548181212694951171097762849690343732043866070988520823298394748296923575730457701592648617683359086615030022820466248103312372815847021323976584307126527709850714783383924561847017702369002295119786247074592068322262855481853600777448492277331235666942519129989355027806437955034487427914145863621352972101517863079724426285811306997751732709053823444622527597629432589014444468337854866699400663538942548662644762214512763160088154556682981154938627992638025219504825478155242398330574849212563760850619504161484551867959995921007160398139665041613690769219234426549111794312858612188260959873444533980209789388924754442279230484965345918892552564430099703747186715649897634787268583288743266008724268879638993996167905343111586664617688736652529515684421159245835052248132540547736957544821616428843165959725472721105139643222786948917297227582012824291691720491561017079471272128398224326138924584237657955607981456033232208760542183431017918456492097263100662302995564721324188862374496957536100257826989395415636447261372551252927947566086019650100982172908479683802874742788280094660863102820775261392886062477891275041990755690292273163572384401548614037045603112357278647768263405231501670256244507534557516645145699816468186434278853525210824836031868614000254231182118840824519328452704225531346381799316595869636950558145970839795931243057301473016416804812416168215876583985125249467811347242943465724436666128034706358199980025561326092138845554725666570276876310980028730056168294843891495617913679185503755527510903910594218170919219378220634183917431398851550663542289641335691312946928015604714878045622275132470149021780130282210972439697057807722287074040688955636560063542397798987882918145787640921691223646419021316503296064073501323829295342835869565840802256514959515049205721657321742321460501752196562870652184470269815695925039598964631245919680911905177604158366706229239095961513421825924634573151827721950165940821883555484464232418915916122629357479446309412197382792956469559930783613266789142622760045126458869554616139137943632861895461971653540556830526911324254546279155663164138497065499184491758453036109548713685402828926511727784741598949752376385619034131286157878042912234288441903316311653376535000635225245607058175387804857490816585582863678380000306783778209198894141047539786754915633290066337179086566663844156213331053925489750397431325797571026904703860993603301060198547217858223388369281813905241009015900208850769750135545322808747863276016160940412750024322503851028843091379271345336796048114403895163790450442763002268011787193153895967608469518277707100776662506099956569516889904718192672814160309764756742393504968399212033628270173804161962227255314888822192062192757087610314232756851354439615591969104351688729892157928692836195747228200875626495745231390972953555415640844994132835600327854642063143300268122521559324380960480024438403873416598097206324685801105094983223613235158088533632120199875039217907168752439185590522194309210785595221265978156461778083172616523827603976252739252768020435783405167405867892724499072775447543303463529128924981834054241191498948062786461756717963580924382291839579906776571325279803170573445457184104178174694654253022828706756047405190430361644892233504622567979511820567392999333692083998495071235506684439077750578165679710063407646498821685388915034111742142612437550692681909240353542487956988332461291562524671121819391139653271058395848576244002832960609721485836360968948451427587632821396079834360811695499724606508612829735844589086951094071879413473517106181158781494331641437662503108142999324196030400195249252280665854723557818272865338258697414141340066984589018625078613713557725535785299709845846575980839540506568093112174488579468112848875634735881758359024832194141205509445770584821399862242565224168220862383468986369666941179486516544125319609054980367742939950437466163101323471534856914591793247837673095976979397793862402721257387541770443079305995213787059785594198173331280313001651779686234803354951596204176775981992491831545513628173314502531853195816455617457891322298024799444001710329760010347269674909075576543793286523120676722325839955533302962091947805583021689606618507272302397890933645577941676389596825385365500312562024155889985257803175164133913840381061473746501911064189113944963459765315413767828699848059306945918816746449687777945792213291857408796650355456152979218321003387612079447051143598434955237655001409029392851487758237129331181863763505225627552955447267438844141848683254337514517029049749214833761986790655725512721963198950540364098547586137206997893287115355627684228983176756045757844329291951011757602378184747177691976948965414769817909755719733042383532184230075747399235000536162358512545214833110922789379198943635425109267088031447925603556953568878121923848304238065923435877404582888368491017349365352542956054890961232787728252248900903190795454456904411175089134097599498418700336049575343202534529772372825134458294119071783023897443086953531247494729262997422315297859739620148780699741538294879695535234772003325735075607053807074132398152735219810125278273192316511544487431932945950334742665174487384502013065242666341862649248319529667446755618218935053334011854899483256878024975732912642664498295083292393888327535305760439876096588318832773893888990495482414118106072104821332313744065469748442443292696754868164748643917026935904894885522677873915843938563607390794479158792865170288629891295219022964096964204352940453019898586567859383944515084132806363622689558560692481181963651474525835479522850761863526520838325214193852931727972392856995286789821921799483864063694897441450923971603980366375657595073268537802855203202267669565368023426214445042619777449323381644568443607371820514311220140736530428861604771431316561588662797875209464477027100415032536495631439020058816920292943381223544546701777108439826097927353851352712459536917958802791986649518910060066326151268603217134833296353905929363156397624138364436628452380451474983041389894058632527142721772271234542043177017925667310833240408423596079890791650571513737977123496831909464736612526747539656674516851072993842483643378812899954509345212533974056940000802763654369875331208692847399317427483872869571765802050307299625751227624981268660536760071481318386682636004035711706468270581518089440400773325083538300189754338851372523162329689024832200711205497126477236036903809159745446723163158491664250863686489059661629596653736923912219394938226799734542558244396109917879761453989310743447711534787127955354446480641549660562489088629213231906450948079518544365395016376512866894545597543462525384612994496578261765415315002477899795913335670566427707104223153500412094628801362386196109585660481888429017051494611318499315737138189349149501605510024731684385939292067898563469042325360624989994278534594800127422762521568865336470703599639195267086405482192035333498669725577927014951946753451191187011051090858001905198922122889560908761971835752689750891273266327041627876115496698828982713622656145800534924788368004886866002339224704503342334588701690851953277183051786714111075345782973080356126638386113650436874576433975656307153953662126224041186346820745945926626404571730939418082445769296260962870464328572265419143702182655310678048952839612570922151452295601869625913610414505292446374332890693680146354813051619082719713925866861054766162228509506462791414183519994438971398446292835038717329278890850258435445037308182568235836765962015442356426518775522005302474244531765532670828520198567359978097717813472987821615542216258145364887713478160451295116429542921297690748626066312716366161555715408077940584644189850194753634691852796371201858577973994461359999310297147453541009625025589831253515467223215841340909238257725446030583200857829515594754224567522215756027647131609042535037451679194127184001494470601748553406783081037257281048134521770985657188552465732345628224634850809084151318645234130241617453517445928657368622030760960849176477586994031549708293819454560144173011463577526944274737967780417967683183990975253464006619246897850406073255719984559097486349113435269016217307496703271632618586623506395496188998727595432859446115621621919976460239357439992500045069893814110152377986028205658246298431731590805269538313602735132249544253719134179119110184233519171728463688436289003368988918746497975160398004989680693957172033269838618996552858758317881354989486223136708412504909725497424704394865652234948962230675876310420757191920452931966874502353605190106351744260839347140942035062890137957814545081864844840293100013304298507234141254308055084270638053051420628869375696484173694037724026850904258451439901686152008676157250057567084425360105910908829348057280953696995530260337402497553750070282873470811782680176357037341329046180582108693816195773319742927376792198738854112946681376062519418749229913309526138073879517463471751142688282349462065012800326101925197591662013331758728565225605745139649241279844920297582720664288176165866504551734872812095840285417606757116049965792914691175838566749579646426213115425240418694898396408303234520024866880782054627815959260292642521850083380314139599526963292586799585096192529817986272946398233919574586314954371877880028052230771650167414760082058942019842928954846698604609589194460708266757311269341993796526249246888288049169610825578168132910389130367430586146768180529920886802361610486981137381021723136539822187783696473636988161995925998972954430827636642493191746648797845288355221327049381670248260242467261265171320272303264264557780961459211650378919440285568526295293853625916312781540097257822087231797212720213428228449269620027268808623750999244457776417176289401315852949512176617314014011901057860325864353599105273218430035271045046991796469800162464087076998017967708046864613843837859202764359766046690015140293247244504467526632121733194026431377508052896289505387461752535468879165935088530652351071988516424719131764906562567424435563868072888600965194860562306654613650054741151258666761073512542389486113158530675465925140428543045376001363020275702093491767343563674881922552886715199775230056658576990618937690527677749944721405112590669891898461723966053814289486494093291114221944758870399910955941720076201614448548936939722736359462275241398242199156412431029004672681714557829053580577675502260848534577316753376848542715997671370813057649794934949483428163382144224081476764600092005032192105308997439660296511534277043288790735233007137970857195776838952203216079565937604735736203933151456351596304421919791055261910031192283027845548281749262452252754936386838845924609496395241481149170490682752500544445366824674458015957790168842833532658744208114467944106184475716357934458434968809669672151278514482722737620252542993608830086104411399521893927731151546531390051143522087479021022316791240674133046846003021314724365727176474698287569648875628198104672968811677193461505804046406266161323643810290804645546933528720875667053490900359005685337397553156727883745910443105508202173880618454599757250182986198515378027378492724282597689377874291545956829857830172951362611299399848989196839703206928857759754067678615175776380787405599683174861559878443420535902178214411630075799836848170619999051100300758005392226673392477621252270944978895844522107656885865573348016204248325667382270181768487657104647747176777425790443946911695014370976913012863492112289338095499657534493503616308646096579118747773040751471436228914981735987813145287437823288753928139827865220193717321175407560886348237075913912213932205694912885936028802852122860050812502430537188104722242814719827200352190346227902151288922425482177145735451106819948092758543960624696682655196000869562170223464225666541060292521457297641099730786548810138498791739123247537596808344119196358164910750388407520401376609181624176771989975839681302442089621766245756264255113102987045578324375929885380250573263655666651412439599475779831231546411249896284678300296241327179246256047003987128976064463494678871872236160273553666831435348529221363245412549657669657963230713027926739993952388966970984946889488662283790830580972506542491315641615659355220242232138830995976722971070412751221489592957768708401258503751419362654948455524073544764307520738023271700774822611958431066194865756563943549672650077316786595040486155157856067115637684259883807626988035306979267119476562318366344958191754840145931346782962748173929809721427585062722256149359023901353038023379314426489534389856543395878998664758120036334299406186617792180380025639794005026870273343783617471060900300080497519304465843375157495201534720496507939143482313321312248561333012829516703915914151706945577364312538236042448243316950709690721776891396708339706723590568069722252188079809560003459884610220948246269435359454935231540763183958938750934443843062841891020991377694588174131069617611732710799209092722208186195222778455949513606606792165688988701439597509153117962297234814701692192465373485358920178301210368906632581018963538782202707573187059728466117157878343719984124910728355940230690281722148635558054118336658509743895023682599835809928963703489980799501678026629995567787184973596687735654027840729243094766012006879474551428563589919604920373729927685827727399754655224230244675037318995549299657352974221318043659830331415603169221930542883687594719033683651048227626689719841949678739068212159433821532547761918801802750053913468401454552919221231393422567263361189321921160808971654485662338078060737495823918794729968473523109606446706221527137315190879257334814006372741833583637950860694444315306887584753952029333366209177742744948425608547397294474930481412148166522621525460164394957703789974999090102537173554059637890880037866329320305992189639028587607028911887715802466042140730522164694612007170440528855219896520551890212085845502048358431400244419864626473735656024227950765578521182535758217047569576292912007971709523327891316052262912566080434503349570128387900187080845562823909733581732398878152264546143628548138142130486491118601326887650541199697846560251402155900574492324856805245869407884496153019689541433105402621444687930232084087500953296059663218260663419272131780693561975207198074494053667510130112561566696901152758347957513122605205745145912608916558047822579499497808549270171180694054609109994342066808193680951520572320616096009581521673494051274951054795842414081685117151593142684948004011531213669243985221976310277102464702670681820035022713262076096576094891360889881302425914358014416790327956626170742597733290284152914667123105881735093267219632054675966356126741543709805900071153444053774112680117844743719883941231074801452363221115515575607787445842805830308297417197389720402526953716384960222192896145719047111285600278758660663201053739709996181387338959138574110783288765422173935415278797673513337322494254541732643725227737243788189826529657511675244761094790695129199887576415513084109042562178035627506002921296564155746136561718865986766742545000338476414179258886826784627569726476425580360588014620752647837484530874507398810726944261842790287244863137490089355884074947740890869801464011643037228034821954611679681281108079026351903771443202492599829182455243636948890883705968802619957880335383725373963908557803563372590431162614107950843607782677119688383790010697311911942383403267623399344188280486165125316986982515608409163762608082293751305844109622280373267512207334665889624829503692194450270668937304508900289540291489191349517094066758388046445085504647532549675822445541378766821511120312210603456473374994966016810932159300373075641984777304465850583164714229371802119677017281075779695742688872522834003036001391181817589767891872592675710282918533181371467073523075577272872584518831426291410855044875212641975791770400271998773729740602233322771887528235649806026370657945890033860455827757250660650456111221245512651414418675174938020888493281047542130291422900602959176291022859494653609098808011398592389889027860182671508139767299145149960569524858956691945268938341950123869307327627956446837708389616733076877193001676627850489092563381516147010606180157479058255013265269947826428828901394178656723562747106392151150505479710301977769022621942813425299559440434917668684450989792966944032751897165900868254910603167475864359208547996419454598833244279636708783389093947329291912488693216092658753848709259682313715775716622982670101849855456655243971628541070593845742198365656236000182571844335090392074050093248732114063175771902354774668348806674312587394786194166966821920870187585949635161258342247336857880373991418997444380335266741223667078565828047082783469567981646009276104889309410996266478852639450929160259436473398243052957547851417104233934266842556614373032450128229124073890241679164758380754374561005122531152619773679173913352997956562962501724914280378084400140121508324631999631884123667914034169606322100624661388629655263620074355862996198529016607940906270559989040470208476445491875596686122223462087485363668316098529082282727911830533921035514083026583248752996450280149844571973211487014958167874311600136288255456461974365304111700331274322457648873033720033493649574831945461371591973731260938641394235153167018693999590815311789227207731793925326720192460379874519167690621160614381911146156704694345221842170573533277720082221646392678604367350480989567858592578459925481150466971400782880604585152786495456165292038476859218147947223836309563278460530079201014554082207853015261051826966467656369069760790660948954040864566329111389557708637737452993905570959662665992189838738597172750474545527365776025636628017763062599930544603241202458755331966300751519881593284187056475031715895261627635620895870559153729766651565640811836475156582068936346923642090738603972467597418782415504123385557031626782251668367827266730348550535858607111516636612179615628165220354709384460106588215713985613635500724740589476950244726457698557143579566578313438920739500507813382999800509884275787904601041859066263676348765118632123006541868040084444783533114012135035262441097698386719893521603980782253584951870558587490738749172243614498547384055572375210260753065173646670055322123584740286532027949127541041578472792619683801244975871462225000963093124927538049699143814139553773043296532444823563540344910342111433679340884922375788857302881904112857282754799361976998506095095742889237062641216624732847569571840585268868657338450763392529006397197992870255547778922500184909002082734327439167449890960184505387605281690027476482410237570364892372904944260988208094794992542647842525878398418958739299750048336571881453040074254424231023396922856469014472102608016484530468394616317844080680526087962428660546083990718726576126316149690656753789068252163137275180215565066516726514227141731804795339586751000247914489165957212171341915009557179474352624791795005732893321181634372237429004815264779868824958268611678790285060163775780569868805397816366151558240859977348274955426375576558151817584788546673028518502879391463703223871100758036526425670422541718286897443377595585225212113148161153492139838976494528823704447317154553487638989981913994687248374781254342379985554680810010037426662014021766227662340405498767870576334942679635139447045432875229975328485088154893355029211396628443964546853601463143825897485509427758527786973555023208581738265398578477309448630730333906332856959824732533138401594327886225023565126350595496006133093699849366301996694616909484047041344569207686633174645298392175956623960746986759774691523186814627853401941812864909697964414042456973233395972118491619980221814467132774785010324876674733335884359038756228830018115235072571860807089190804842423972150941502161491596467589647219326090694323996974933034061018980934930487351773127348551663587876617321547852075688509648686794471045317391102556667729262961857703357936001520466088086716267633739533006379146129172695633674376665219151188331968837742634966926020573557667035460851550256361500919203076322723997034796135914384764399981930367987896642854122919285596517835149136870096608074685542171721349107540164751985913510372485490211523824373748077823872190880815118391770548972534111626606524877266305480415319769431868639002747137937975567269694191294119936197514515944293187719286306898494831304138803126606546042055059971085430433702405479354144004949314610641457824184761723681468873217620023679858359608506771476895321681489825014412028386330706970157909677403579308092397617325352867552108658209488481509780808213798718167280864204197889665985908268531743139405598090061049398275759995307188353445976719379926088086486427894346876033243656281513344640198736627154792872249661021645643863846543065003089641837155212228307752813769367319262445406607044753167589832190351909939410777714841277335150434219035358176819369854998416329582417238276788833490601416900645867027259892440716844991369012781438935540602300576150099014607668217356669688211035996396080792566671504390230595411066818244522382655469036769648851555618936644814431395642671668035869717909919853591926945441310755697748573292493836009672718347827887055446038249503516759899269873579346208455634182268149415117836254828002449975943779948712796825983270196465232778306105744172436455083747057752119390052360812703468278516688481144790535936345017504659541754300739378366816576848753135109163166353940353876211096324019540546300194615284444361970025856026750389028542339282510923778700066324684257390320507535306796472006629835787624427637892602320980165984051790285401259624647933023947102116988576326892445878707373934385685351310242884133117855173118731568303423351260077551836000032090566518441304869320310416673289929754680578137030313199363176117848712276901280277621552885446965213957918630629629826203712913373706483857055888972797280862787098245964180030145091656870943703336488857599851613077244084054645258997260766333508259386455177682064255177633943884646768042321013209566909906855336559461726331666387278146732178100931329709137350682162626625390714984038734000030126006900807821410975018638317847036662233073935756261166675076040571356817281058989909453696440177534385394057389066720274747321360947170862864575672401760567593797876858860637224752513334082003272264126618012775494258959443134854451160849481312422921385863591742608032630759914673587433060702092644785602447608659734549096632724780120968348600409013794829808504408393927326726333834036975898155213803248702138481779598825451786255324992954358737902664924966612034730392103949731572228485017177197543786467287943739682653941607655903786176538707526168538509841150780240502820952502307637459645458657207077515543483930932488282857470011115821132911313258955047368457703728734202908805045162174740404166189548259195337704164411309533314062250152206437873938666355368025707726274560509139993698620744411364831203226864290295672384337270196969015753671600750364982749928007550688033448473072450299598083433003858534220802657019903732528917047343160112405347186108408265009002063284971792697748162848813910590346988886937354268515114328325456155422331916126525152089612710580285787048627193199707605467451818374383796340230273721990311938283662909279710294341712684225919015687053026556666232788128274340336755634254434174557147908812989388094659007003546607685629641970006219183509471457584999367093156901414333191643090436161291903126033328470406538824413544405048238140716112218227385657558528376740011208300328319729120245144628895039676994782092808234937342189624787481093865897780383687979001767676708050368528109607700493775735212041578653069006904760703993363659421146331245062359912049981458817698007819065704561316333738448106313701166255792987950364432169982271753051719822363208481709395361860985044714843000578979140929134312193097370977643625973496604536285000515941954808027996831868706962765603772497942090090497230093307050831207934098361280053936192950392343162887244361524624997020078237589109186618450149204470690971331639548194894850858591169401814188288867530783083892561171561099951888264528460434515848184800988556201179176646674224737412620675557551193894989094077700464328781363412220736467419694219483616742627764795743305758482436066973170929648604774912800779220909269701472155540634525464489642784454180830960388539424907729815090727618231885973502319463609867524395665049167652639341484735573298395419335793389374100650954416962559694580893372873406905700143745593902457116374679402692541769121998369544930579919193018029586159457854896767322315462312275089712542770475426703301382099063835337618802119657028929784498325290127620637999649206609665915098246408348725311148838412797077632396286384241578536624964112790096322527910958110118235304577746441793749236182518372058468835897006613826839909298917060678150982021945967442040919172057822673959654101882015997752665468156769926163462979280443730315321782066049030266083533450201498918232431623740350987160216535993920737155545227086336805931095721721205609373822780395785518879281231808005535809452398319052749353738108605674080417268591949531342853882220649683229209557500034684762761023119999142686867701622623238312500351758065418511247753552849206905159315390487834944213433853075897329040543950058626788659282271054712812384367494036314945437496198020034844332316820685537368970837572690882159822113037740276462597749798434685066906858108618912873792774228020774322623117163676798411699480842208545989923673560999125545377722718223684774632140104961661853872106922000496625201355992210263923033928332333461878351673054484185927852759529678602529394902894793170891669271890446085846364828754057457737540837147054651225417217171675022904546918605517487493608958292276134475110532946532339523546464906467320784565083923466346673077876723246620571874487868172682828661436160856845121746350297737705343740521874885632070748727220017197808934036418936229454725961774550940531200816993760933137005707747137815597581084102177932392737669517999796951383419400368509682490428335316130685356106815063638898557153741283919760771165691294347586570823852812949349947495068268349991843250656459319967529590289060386991686429855440455857913480886010932743636724758103866590707945040300808762460262637077158496327321964090703213374097774817129312996791184834215696618353538507121585722226993984291528175250560476588042321073731257697057185897094361944366364001663789514352111563944473547306952372240292633399267268040733078831582791052520341800620349385193355631500771927849870692061624432157069813935050981886509094439343620583983998351083907241599997497698465943747713274367586070211606768243814629756290070571192215129393450960049631157667347917080311035521705728869123835104466032462163644674461263475444519172220795233220106670514849914865569930036768957361794514067904632278381503158376278317159831999152074315783468516793420831018626209372235845565578893774227513600041148482428491152272312415492824323966460518889835862637332030846042492525363522794077969693262542473223579382710393513406205754227905636043787871965343157380110005053394157702128830531814613378431729546084072988109549767881729071830871567191147424388476128646692162033097793443648915401876685044276532991650527792980009865509598404951443268998924573422897171625391899427301787014417087992177750893942989038172226610873427759480382651537102328028214338282006451046142386742965211560569673696603712251518273479492087424380818632506650623495943437462786913002869910142970093356105279421697921831675259977719518391587429242626663481769778807171924023786160261870146611650489166951352019998268236739217137326086260996296020614882450633281423480931020650592505427002024521548830486491437466817942259681119618728843075389917466325854146103816651874911138421021873482520068702813272218541639393266990085284085568737977801645020852617977621716958126879456982818156718032850513263428398548142869065264898992921904551366684277228512789168744774272407752901186937759694744974307090067376939975957447821906669121293340838966228679917521448099376127528393463941880024615701489918175667765369153467043430133484145230919176137384324233795892090042252535616062271416117044047615200366131009608258686647991164833386658944811872623865523527905157498081610343498738398625017570376366267800501140464197335580333509725885071882483614747451721474240875899492107714244596158631934903640396016573123364048847543470226919846234082589761323134964922569579386664360238417395430030590779452056967031357323307235584875700238014943601047437742866136334703933791083597239379851307126180425493146377523257589765225083422247269228468920061201717555373711205695427110024342482995783897113497025477487017222042723187178238595759058143178441736520550910875488001068078418633049632527113677441640284509894520487554001985078953162574520487921594422494593668645666592717587308959119550001560992040322926920296568292349740866330136975727715381454560176668375936102464105091090858231483052274716892845278781242846697560955517110270535641945626842143162580041979362329059143694803265369043635221778753001853873323562834814005218420453927254885354013375395922882725081805866929419278913534894313007362879732593342800811263383399596905810126813913454019886703381248868002224704282751387292495537110029234695906376891469113752082481518587170707126541952570351927385143686084796145430786809060886573039858757121196720907193004220696488442360609408791237786598127231174299780942927495436968727369728084852982717858227720455509411452595732189896849015891780054404422107118671414727042757539137601240765968634861126694635402671462630450316172386666789735802827284836291641952482964853707069291383414722217593397323432643820659228166936346779490658975993014728332123865626150536284126831791290953011070898465864604060441128037371799395957745238201665562403737932930492764670036890467145344296963828022421174083472341739691722140458508068008499239542342836867629959146439663428839447561435149923554484375927547830199496768413970208634439601491199280383938181366858076882469655948616278809119460937367839534951055929132555555057745750805628435006394921054202371541700579404171412069062145395587194984181510816534071741122645564083203248512966509625731625717101294675205552552775065508318005719483085701669059962296300419243782843487306503493449785391635971757074580642593962004961717243068102478275771923477721076954171883554973946471407612028778994589147684413755366570725331874407743576296867131749533513895006170861348449030391320078307037642724678654923684795134160657452519559663346884130025695730336361560639798860047569803191295765528435273976944286993554946576177179745795998542536186512462641567332867167848825555177100595956539973027349400698941533137050624204813957121598861949564711070340382516468397623270360568876492181420979470354194051220930169461450574952283342601181014830510827635336156690913517811272428126112306898428355048057721074172070879652520514389911822580123326650669994283295004923198530570494986766098546571676055984499886102630585654044295967028712340763511318294941155769638829497333373112966332330898323323624613225704335940474273415968690999083377145739381104110032535767503298840544163515888079571436038740944986641724061164462859416867935043836448026181447758994194521549217193522187787036661394598308645236173792698645280689826347613762149534109880037033220995503537135481516353542808478394638861903505100549470861060762795544354850489173185620191162699119381076560041492091595762715239305603299872861995769775250745057167765663368673693384336027187512558157005774062998362298489643094456977170575519970746030270742514382886549329934452693833865907786908660244850687039070875431339917959807478882847351268366998104269547110340301644353553888047696645870663771218332299451286618703128867935535644848697835498625091367762585125275102041328548359235491369201141846790111106759274359162765736313114265703755999718931824090643484841504838050374773672242345414330930092694537880303512042643281338190471759570772174567160138156340607681061872693631940182996446575132218188300210631524305007287491327567827199508064843061167627063228751650456975983785886515370225396088876576822950470927592613481818206853403533921525819007483281999156137154120780481004235894784702264633458815117852075052092469533508688334554527273526075806554932727069580190134679988184612950022534850839756510364299806043906243619077133923052565351245687289469225392193343301391785486748796515808249303448710078881833716773949577644493081012572562679732536186609133497437936727189709307910671260097011416603743359389213683134730073462556226408486772587768188808046617666035567448623400352666312323640452604907133625673986117502711136850072427637352433649759523667142181959047660155487405426649090172234988990473432774840104891934341171258099213384793347145585457373440943970124639557332743462103565723481881509930126054048084434049053159776258141807384763269569758260833598380323106526580425184816517614208000401390681709679138201831082448311980746982005868884415273091079841078607458778302715935632151287527350561538957100196007963077694767160045638282929928641208838930156953591390506162588289824215800781777354902950902847468359143168612916126006880737496640638729866020889748332104801382817018153574370680484153179303695482557114690017338552419883639490183492773851061160766676221329100897625399986920126941900036130221117533846839592807918468030851111856452227458845880317818620125231967319977804524042945256584550711179513872615728675061833281434751844861228496723190284453709136848783200871851447044686698856780230472134670454306323350386605371309458603725451218726243720061577158435679316229770689520277915089097811219379274268506362196527886091930168625868094656551864773534574896415608671081419120731595417004779339454123846358319275248542424841437355684374706263734494293401741833965039534664954969051085959522098488744495494319781687630821744709820757776515931304368537200903221636419292711201109945697084075092751924794188342575630236782273820403056483156453624690463703356177292076474553427004972842548790957212125188145786112933998017521581711432420738065376602877345159460540762727749590344314142504719333792281463935584895364220293320437577954288148144419530109143778886839634127218650685877518272036666196592155176876120988341531217627161588263114489017565104819296534493235990498265761304305747576080303982691738515571191585778370998840066749233897076224522930433643070311105568497221846907327114800678980303833333223621803578734931788022159376107956101337738909153918615307980489092645149259938567594024313114728529118291599017529516391212290493391180631785134396460090232806695303010231761184937587303105159284725905834860217660501237165752938299888055971119876912831076412057338207233827805360522071902378325474569801543507789766069408721971487783496804889316220159825840104492027518772658527631136268646930045664154009469891326489308998850830024366238699999939258819537656380401630020853416413433081370065388236189969093088404517389244269524985344441192904658567523479743581004542981620596746357693308137994618574256834746651778349852775990412996688454625402481820107877703836141598927620949566222409261348535654424321992491889166658614836149728099282419374027986822358136486961740335276986935773298819256437688909519567481689847618589402486903471535506455693632172978125380426017196324873641223012142431606285744507936724282743806843044134219887326487636874265805226841567459986449467449667092313803949341500803472669799353730771033610782270805080092938585331048180630254912963277432014022735232549474236562522573662893749870996333290204226144020886489287060459110056553799933043456549997435989013219536196681080470587637339111998074298750560588377500565881608119886040632416659208136726145470602175438927895150534077909306851061261424279963698481635410045282193266598467271380243513514576906183824939977727005436271716252111425728761768100819964467852455994680593646537724001289167183601893523279958652919274192247876051420986920841403524152395513781259925331010430925703790673775849129601243145936609224760021721993813417445964499820491357182714716891817216568254343361932878869141382198029177186757477472749914427635477810178713647455101789160241001518888939164810014297790008720536087912411346581812284316801501751490142567530409839047372995174435872070983516722172450467174682931094043912886807730481137267229448921846888957282479668982747377911181964184110390848307137156870325892565696362773110814631329101028583509292057992241935406931911592993081576326992701977103027057276547173809301262004852574951422896714624860590501263128961992875813968946022789678090361960137364053187582931643722711599004051327940933383939941932948871216064980694564996042669814296007833874334537479890370624107228374769617652926637111743493365348020537100220953696318367781148686629242109329648738352630567637058621517806459810569866613504661285882854614328879858004573601092723820760669763063475747642311108050735697147273843888166884201757618303233142292742363957049983177510007666159733716638675789629803882927766412555564539154871007738982628750262472561544120042441473850253745702191350680276858874852637051103644253229903603377822327524896360370227718923869789593768018670970176592523405868745740478943301530727071649485771442548623435876555023651451608096025466493649931685293045497756673182747460045229974555194148355339882239851267984351034164662518651189862353978928651671215734365021151256939471338198664927684495893212560620196872032199552580624967856590909183751528634545308841197103122061324352068071716336652895404869772749536460807584173726388699494428265961121489294202031691959386032705777046230041247472706670826558032507880840616294863435867049533690503228085442943987528283806630337733727485943188533772468618335245670089985311674900870929728383259780781155326374643171431528692886213558270312824773027823805121197437835700603090467626413414038613468660333349035140015197715948392325235469113261175770005613131801232585449022190841831106496281224401587591063692922312064429410998803154263818374004286789148274769085711163967808417156463562741265968041313566023553038321792349557108218454657670558049887345865755164614434706136198518885209547488668338047238304777629292947617447124421262904401619449372512604082649873940741521327948494522667126045148552362959834488831079499525522538854278374765820051491875701094451875249235060959930755567822960618892007245342192271359964390577578017540936696471763046072158296725093304110932718703319917359936688836762921229726236307595717018401680870283541179443288320389981472547604210320741017072700937125106765522301355278785228059176561457805313750294142501388779759445016054780694167254339996789910410494605858505890633035574409338701644869411256826531110527897879162617991852291543653987370666208091274929817387887471473461696866281299764481560634499074452880998171260224765525455035162346455788992574021949346620132734162007745460545357527121932707100808615427780322455302565219681252914037940342837036032847580341679663935978892132064786428346982022322864378763501726887829914450552724117384039804903226454265160364775771289601159342400463557882119208677010588211450411447861593492873822920184456476589673235018057954716183438770497869877669230128646246041749055693259320512832762068333799793440804226713605807034378743271291438975397064210475068863440378410037535265077819549879047422248192547350984434082591966008763344389700068561531328944376528839773503249002606192004955977402271421258357513243707568830241962998676728793127115286072515558542300594872445497418335461924922248184378388214187864840124041969828704877634652737116806188596086274512842282922738260524200799130061977387452836503468361968727531899147404229216482179948825645439486748038716349004304972709043059344874119661823575921610016162373142251016187636013235814427805473187931233762085591863666317804043032144370642267404214911886106781935110992377720415590168853114793116168451143482376751468606413475278356656767068711515069853012452516364212123193201991577058925143110819557016099968642042710193187224416645818780141386348677336443091728514515385177878529123945968245295524189438864156332773266564792134115961910061569181288200928221989602377627392522896951712838871339379837571681663652415568668165155937720102471431563949087177473678136686524827016564081139381509398187920303446445684730358287214974152814633020423557922099378984108949046352111382488316105659388130676376749505719806191746462485131117176833465529546911269390037854326493722384035941967093959351224113513896049591862912457262764795094717997453065850632520574937794115140571962951131856897731814405850957330312466010719550330336603083456035895755096186265725847078708169376986404535497229281154564196440721677170503237877645696582173921189629035592775773400580683921785514708999579424101123937463808585925739882791727747662054146189406166992505230274504609257993487739427407263305056698518322937773283214248627118672654419258375835588549801195564264486761978093650035589982456280824959770759549499084950146766137458370054373202861116269452404569977872435636253329697884911043095746560068845444190177123766768958964262423152649156206208444136383485659773346517145072192672086563084117441457609620536427159300251000774549438622770603598761853317371068057102029728526906800720022976286690570706087796295724992453547913702879286816884669241621332805407538013978983604589938582097472379171130233152757595735780468406742269162434289011093199995964925992874574407258536443141320484662693761911870678909822242138268436616416878076412001084123815542950012403348972064910321409950578378106272498894160839737571746958422720913785948285216337716456395319457500125756169519098458277485608392961944262261564538864766977624277584255514352755723853768099016903982381983797682139956695316370567664941161110883233298176737230871911223165317738259108180505425016542877252143381908962545740014992613225878355941794425918765865114293022414619346069687069611621547945504786161916210384660630519178393873905337750779621180779428564833335960615575416574719407193347976219993180156591406256112409604023753167568808379504636495093205218582274183246829823806257946864951410764096257051325816029408508672712753950299721250178753924935264530140514877632527846273196683208866213680124775479251071672909033119606026442155613501887725075494451708052846808079417736917407394886969555521293631189716299827219018297960169043777702096922466827100187903058900736064570988963071074852064551191913019602718567482682021428125504381243853542025676827225807194490138931744687851658011267540303624518375105412017396991531449483876464401435508931261800080080333509436317355411178723658766259121416334274593760872435954168944485365844632574458147137216848662702721596197011758262694038068486907531724411689328334198356377712549990503480625959987290618149079911805190411604666430165361433835659903122088796524821358936154105756308318789087032890688727898183206094131859858990431497961839515933269759850531892551749630794746596866633281654521458419060468828528205945328444298335052617515275447963288403269600325807516967767917501821457732297304457532778868124625077879128998069698112206612938606354748705756288220667811230896052197485542030022099565491200292468124806935583326431403838445000989262668522366694906723815393492497504485790679286706716744121321663788825729898262187536199323127972407636459944256050744123028094464186007742906049920459105971316623005687771566692530212370977935377159003936347096270638123762100606885541637443523183214215870473635045143602398781015156544359731845117581493458632553770775385874003393200918174833857705688803220884859477696184334369850949768111099740207518422153509344315968964227438844319100055994643859290653549193227071640753509175680272623469645898230799210293463986044842985865201281709337732484727178670717087298417862315841339555498270401277620283828168343472496770853026406257988445775803100946294355970738616651312368192357633956918287382520420717541347423379929884347345845954068777494747371157534672536173632790873493174533392813940481001261837543327708107411775944251145818049095253446377951339243713927549715267734005118981989344637325603840615240978217738244273094672092830496698068605581905377172927977213712897989755878838796114107140017996848477606721864539190413009877719718595007376423229906739413712943996308927320947005013711401485888252309168255090198744110835280335164742174451745885947444106232259910641275713644942963428907400351805019659646946369186313858341901985638810303728856790429798855800876960513874891912140244327196413158358273949368939892985558519203460884836249312467029666034201290517802645848799603924649261418391272733246816861003427357737303916071614732335999326362030101713762678281480534080178086899212835535266580684107207711686037961441476287256882535150361973249092280731663755691125388161143744124879752041145874011615450287011065034536984268817417208140375918374434609404757991268424403027619771810136901539400288024351124043665985960925656356176381037804597483753510600493498346744506742960094776784034087241191933236149622335048987422923203922794693960516906814541458298117889672194646943165362110638607370934181757634427070217309086921746934406167235558310710715560578799102920417173100567368881275643312759664255394119991665102009918078212672773289124759450962092955438495417093877668640858817660190950988157034892585584675779455202920206652656432630995275010133309122905286907706657066751395399069144933665410392849820880081984822371208353697024875167557091082419911422317977624652015781793358909933091923052523690582446406983999554736872013115992027281841113273566130067396929550553806043399609365699609738492937625751111725417344484439184764923707062361290887167789165723403646153407834107923176505849772147939135660137098533425218546090854058016726690978113914358549384111862673385745164360053924344475161519085307302120001604337325394245518612071582930906674714893502395065603050217549946454074347569005560956115989684460843107217280037408998301086391478646944008295249665649330335378833395477297000162889630688287317621444547267397050359548654508477741919158783347827247478227920958799346941235249610004407297321506291415767341691606867039688219290900103430652348575493173360199393905952347768161234776500888228108375170129259309576842319634986634101512811437390155678474322253627455680391160499575726546752454874246668117130159838168004711771143636824141492844470068078105916799779340673561019373328063178825844685700269013072895756110266001437353654146917439181086768263860901144167006535935667154562159467627082867675752845927678600820079693957841585068603537008230976098613034436541974530861369551210522457519605648196024531524750232943345349933264598002027524698080096291781513181598972271400392066020652754058416245966787806783267089574442493334061628227346788616432761393239411471530149696067091655103536662496870815213200977097590754121224639038810444026556861762296554257243282881075030971661929552982195569060708513143159432175285279056291335786326141373494209303376543246048907528678069666570538576282940314539485100401627307190964499922042054331820483493218856063027016280975408316090246930017307732534340252204583138508350946420853018626365365527188075727590911112292811953747630933900543117515545737959505280225174775277610871263269804981969382753060030199189768090682143284021129600674890331420049990137204655521515481765583434382391954435872655897152864622773878699646781907557357523612478028403900440670651888583717286149311868919451875220015024278091625460970390727259103733436944396992255721863263927286460861500046789261432663019118139768020447077560196118070096458004019777911547481512906544195120397859528324400521341409572906202281304204729683153834277596306251655231422712888745539024966186568417312994572701549872351180028472637937101256337911288832438800734005916620807140033573130223544466242846353880319379644161442846638104248264124518404843583342485974457793131402207640444745822007467670640774666155525569436057325992981819957732136926394550745810931103681194867272204604711731743466665518681306402096539997234888097922098011917766134472539748760561238865595362869260507354944120580382379217289786606397585588440407429346165113426583529125716288860290477158272882566597174770267254150516397007888167623374296105130728290704996920815887359823620340442726990212070204113264509714771566259596167370798609242802367920515717640905339015508372427803004344723348722751656744314625155097675903046909122832733255875996603496997221067594758694917304992733822288028182017519836062607085772363442111108005065869677059268921158006240830893960298020267785443752432285687427401470478861802914617338665215806889524487303786884919444413368174632254998490468920915927191554129546987083270990745372254749236910832994915359146862871983083116645328211783937251869346797807129796532868853438236139160874494562808168324255997256115416456427068328663256000737129536552817990049442715074412711577654454137885610729194150584814316550538931623689078796862899597633251908627567389557372192058647945850024515733882737525424993552164876655189160077723994388293576793120469198738114555865988001082322734685786027735379751043352241183304332496137884998513171389976002171860652279294592224659208991729080367603735181208666207111498544519096878561223169674549432824996432756186531764134021943694591761629629320478072823792117203898038747089834174755744137105875285957386176233796316339026071188824534546225757966102200956529424132027218814927698496226821427888678408874637177111822898520199026386783033417852405033604220032568127457096811791360331724441939676134124933894809280206009299540228421898909624796417669007132642907308934016254389153290443018385513564250975670329833502334857589490022558944106528281115037377832423888056545263742570890020617691407770134591255090701436460897220035586915260948050027571536738821245771625021947264238724792771251655527475828951799852684091242652482817854707682619588305365587745353615590496650802830008032037296756228146745687714709487925064052227941173425462990736831938174833813270660398601656856153910537098856913371464217070606590621092802940174462201212020645960138877730148588145278783271263358534174741654821101649231776061989567162315862433060501718459175675542217455593978136227656961291949316876844986536042635466371260872486211502361104177915338112513273936346536215226246801327308016090809245992351710355381232372292743853863381584847699907211855429960501722282261442328131086181574487688592687578333141490525090342469930358154479712779749776298823178080828153834482246790585584516209815724450198312406432287268122520435387012912637423151880184981157389349770737234653388047874280053229603235396073616768150822155548408315571278441062991866250963172426708842276004265159295414922844478071709884323534054313634067587195902967788311262884368137796421478482585250047598718116595526212326264635813001017539514723318759547277075374794945260847892305944747021150188942972491551900739424641246002482152238308402274248212771717483492350908608045302736865551690248843600307193526941179120295478600303133368794442800569276833728667253876813024788719293232021950502700879887030722299326787730829958475804412733119053250109972830604675171552609407427276830854006540552484216240505295032977115015598135526628203842209266168703771171940869945531374190943932564308301548373612614720137231716074057776116098515996100000257667026518823683784562651238795185254222993011597669496646401771121986934389034933281370050198964055736360703065289295908680595308788375777885347393875454851977763404672355609361434012319064378147189662181786736816115687949479265600462765513700669307997757788624701979278313481392346669016559477448520293682387488528562488934467333763702551292306694239133223580591115721250409993553983769488790318864243830078216226197125760856803364111735743759639222733714013144313406026158389502579703550327635943827442402357941748682911944539236105820374480114000637687366295919202167871658789508565920516471420113564667873771563119382387053945836468918695130018829213096677243898048245879239750169278035928702351680948221836144817948882190049209663105305440059308957511424926801056734714262804097519954660153360118446810611777310436555263235086372152758518539653123503107670669094057975512831679449181004857644821681647045610453692599081745313006044684695573168145514988874960560220454735958324381452272067329218471392723768022290572102020508495831622598032034899731516693894179726571955969069392350101014276508080965132786155806037859113165027969059594935052864332380958393952584724287650924668691038928085651062095782802211002589523002245913336740308260524375796952754946969850051092318802328589415028981104820101936203963346048672588541482379846428498216989986762669574366770720496884370281117581895488612237302567996395505999714747155566205277297444400391795077917782580019872683894841433359475420066513125701088732153593531354149345992172871011751063922037973308701177095915112915935652334829301345967535545053515719867078275591341830825734360903924033841055969275874448406352473457083055103638084811869173241331199760519034141784862320263542048140223902189074326894131396632957846239742404808775453794031788060749340071081591535928373128871703006282287423114134071477747789625543934485380768208211443758830319240396700346960858066042237364603458772950414308679691823638999551875345266088284933129960631563363048801386712331342976780815134231829256717571738301448175954188094877404506407717037487105513276159688328992951724789960336330600890685270544544788267542807469015901838614296483659423053122098936139377873461221022118213833855254658670204254967881014044776854857042862740781568273392812521151418926940105911848448061150101556906306281092150087329854351018557615913102620267556796661901566708601398345573406602671264827697095500614070547166512497958634321485535755524359241045410788845182445482860380856727715513924198785748638486405911400193924189036557622349220574043096902107136716768127521642208214007015236416197572673197086633007460984184852848498477048064333806797369984097438201135870540140275949722000870710684200422778812505012561970038977838720868866883884988968587776767444631462004442693696974835802047680927888894985130321216313812144406060983170287487024000317728253761669471180577717987523900918913488219667519595471958587025623646544345833328584700904016845890490304687884706140697470894153176298674055318103375489246938711880557383015445608901659137024003869472637770164074115030429888617878297439598894883669659239481119159584806563903510231140081763112464268348449160301182104617077859551582629586121103870888726510320125658410882597587391523918411662617870164267851983597337086666988967977374254171886164309128854527283841738759331424377116879379583857009567914427928232507440094924026886328560276411920688676698625397669150563259817192506012975903929174502335031090450975660676543984669737228907164283837003287628010679964864549835338425798473145962019427607302946161130259674098324377611744089618558747745857338349457307943753792410004014981043290946475876286262249078752932568090911233767054806343709584502239462114440884504496613881854065087785795385101063419303676554160398983621275814319071805932521523977564176354732834613093402271939064400235559200796062868989559600224297479136457565370863357806344471868100617978788425319768074979374969622419292054072637317649694900383394430219273061959985099752256510748160956523287650932897899638612169727308621872963794495204621010201671216702692363077770899073431887374822096464681253687411785626946138893921310904886763228218059946512171778601346328795802845681481707296740767107434703076809222953515201027542288691215870945021952247929404355724553610705480538222986295190343806146330063118075272665827265067365706811139539425363569972159135091571932523694723011332998682133994916702024165166681467503437633280806916654216155904869217476367300444637323082839692750183712052426487744546558375245018676491936866016714127767447901594855019073660767320890544412685713571328071329816843284737329744802167097656273332919824006891611967213509139059099376650319622048694465409353660746256707906547614293637847916263871595949197777918874150910861108660572186585100608468832124988933973507592996797828986003010131038695663949101136185182816596940428307746284676453287322792059766415314752685034969362929467507921244778655682061722708630099896899536310410054084877212592731501359262874746475279659320546282105313403806658678434770443488009063077961434264674147327870555560526817820988979683404022367666748966624922808196076176873925290611756020750798200881139386390289557916957899535823108448425553134921091405449639511344799736372178533818635652630616956406108746506201858154628305181801926924735316962068676321877607061359725435711797507662668924783756216113131907617448306061851605219355544839116482199076480265409893317711548084184441498941972545942367984309538640424855077562800451686913980489446030009286126983979160680108257260434338215152184702160463153646850034364966068416440649164421950629838209331218708245238437836696763967714911431147995791243058926831225593831241091774551980193115688200736986218511046536029369256556365670881332065262774356736964298355392856035953214428579421015630078076560626501911403169240028192547204610970026442864766786968366055192287071501400496742311647597949846295641609523044469225772512201820335123028767648356979106271725463040989162923440695232032560253250097742843164284831902005467313381983126171728726622026150649113363597416051418814528460530344419923919163964064222976732954270758385298227849450749980536690382009389339471649422570314200968869194446557118038404002321722975546590200518179725439461827543409439757121282986743509906991377256938485327159324743474320444141023409627614277996397952404938763192747522097415044778390744882948683257218247333171786571264097410610735669862333490419845425517416831138872035630400209645069487509693555828386952825182673648154618281407718765017952805235555383522206461149541837209505671849398381503248068134698228713406023948587658798118417893236187635350553403164939339358323361304454133611124461652575766219463494107568621582758920394600669222026523734971267632514595508410949853410855748548392506124126341422658742085155580599273869810251416291260484622919480594184098190971833013773908184441160661356380118977561486011065678683235857422873994689150938834560267875805423022253825969518305469106171529303310510312672590422607857708172516717612284265469307087966325970239642123391735265279396070971877671365115528509136902229513524177066187748813190517114111888990891051923424457978968839870809194824778023870249440147278711950960630942480969678782329654579564316057662665789228424655841831122296594087070578989608869193713284087697366922862698738604455162411846800461046096795599506812182712823873374935324546665197209412619220886585762057083272249282985154753781043550208992427737480254079481524078376032264622139012195927190638047404779236767070738331882392346344260865346411994521887368664786699864799076152574685476949359539572954116202548344765992262542035372918512503884690183625477172265876051632784420033985645562138576805584599801072579282385283254750192381938849367854952019209967644418110219909988566706859912721766538587665046801738255336334082549381095615027377683805593335509421605651311870734222340865778521376046052598975722039298243105942019436214354132225431527290054068368752059664032474017584575348267504761509522900274103776135636726810622507219412129293738584022941486409873681936097777880466780349932137206941209881450083624430070967004370512169946887193150185358705969966886573955193753188487213889527966625936733532837848288711799698263799691599112036097441454888069999327675290363778630511788665735621390363338778926748394566063841164777469391465960749056938013165991648385730650418125657084591350225381690250220616361010099692122994691449691371533226023558638296639388136600188882378083403509793208364420616907036986867037528058449562496036021363525973525761597473771523324562598349713872991668127926708778610501177921950211757821395723650427126057834521244308190194477496490406908540518105188030725430915263502697590517137572391077497978510263111784210404621745747598204335217982841934753049839934530801939550173943392060673574539678023952352861575442030986120760036745060937438663118209879595211763788009192560384809630235622722979357908100687564596507346526648478735626563902536981957781763618472279808358132653922593230103175984398660951232430232454648632574100122237421744047798371113979879253617527091787712444347134201314523958240200257372907353247029233132977727930638604239990708089484236064108674401194789166649600197982750103125559799289010102899330847111220838534563283991838849188970881602194598272422768970975835877214383187552103771381070054106983973163497478548862772372207898154391561487205241841698418854360332310865174424475798717282960200045401704971064773785571073750315605913153539357601127216020697253313357098910816143007117998536462991560391348210793853866373037542368516775126597858872151324155985210692395937569420832058456204308134074687048802897309626161290613863663278405866802119820562117972789811677509360638366827322049573900116516710054332953495478772951573673039156943797163849771614915974128689076227856343025751017332770678684652584377096486744062526475579545884065038048963317921826108991120825677576476424629889900581550336691622453227218539312647368227310098918347990628055947070648939947765490592393157578638160220255355017348572612379490765156353376829557397929259983655063671233997697775859333877979920180977576115714303884521014006274323834171763903037743800818745700062040756985402510639561859754447081998433354693244005571650651899184662446944667171604481346774439493208559481721240508557579954220078558578218861955513266133195662118933944284333352573640976160306068809630591088677755910408704218708552832364519263431072791222032992120468699716602348783327573813081275595077440822196695385650089035667189318536306746662457985778937392598623347388868422460569799819798820873269976982672044245904685170225105180268492385855158957203367357107830739744120909176495112805198042450531935869959141156513433416063378304946282368717251078261484280721271716600622717891759232496273588255271969429265623521034151970951680737074610517531385090889810767015317132250858293757967826010867144048329650212837202492414819412304498795546766249180338921245911658065403848584283484795997817775917142866446992452096076958690763565437322976541765778815487127132224479741963235484418267087878967880392006441854104312906945718235054586677217481552990453441639522309866792319675617601088205744919103528600146663834186013496290503613994920150321258666885866641558222312415899093231919807200705664145218826900937974362485254070820635636833724799193256254196224850858474796119757922819940325129051992788601274261830862037628750617731628729572091060108767647493673911507174443985105725075825488742496752821114098850613177766637702460115266401265598911030457887703833215914761642050104166851901670933521737134197991486908540219598424990694638427627593681553023057717209888832851243061289111630471171090081547840837014910225615354586106463788523836200264925397168027473187523760395032859220608975374801010097931918111684239483277709387004878183725705584252144275503258218314934188450562578699654050348965464561119346172494340818006743538512194527912237015887737464644269531521301626660250245216310393256020997308085598367707249437859692325009164840200177503869663626715634623696111210477324074464240288677894841975282205275095286409809797401527130256370738143426178515736300697978478710564416324216686355721714297656926738363540603277551377686469681586371576569578271665999265261298114138919501643952777812111721721619053569831159844345505881709517041462907140439803399205509166181832716639588606134176259231207405054084000237170532216465684260709055543428212584087453247969095876568191545136009666816439199949462496038319817558399236502497575068776298929187550969474348857619597468295816607908432277900230734097284894147081435907002589671027874863399475839365884032292631984682799738527951108574218327322880188539372745482438650575277761599490545216930367656836561998804387752393668165451016952506219115938237775872930314759225864056894422437263225683930494349522414564782113417279841904189833323035951349346777407200189722148838236329463864476438727424362264827250035927458531318650132770417507611563652011188554144710407850006450968106106614199142595894054012978514837011325694585502020471751511509838517783131857898029988025689308423087831402461462326162986096473976805646562450341331475697505650321024745418861887806863397890367642995409327616159489450563484683822609766407754229004386342123978644258756467597712256286895665990181043944345718333817631339293389372299116161292956707474591100753675690677386014647124933859449241686580935291251573204976600864524436704850842072988102621696442114760076527331640162841825875855353596588182021839554549571302610921087738197704145391225889310186595626373719843701293260283639478230543567369463639732769466248463997898295792457203297503115191019569844374370721975288442584930529751012507049622585409169833865938890669007573583453226024377425812553559045573084550608064024759588835863595918896104992041736325443945650519496591926486199527278681456567321891948496684960992572937404228586527194347609035204739770504105426973665432315520097041462811032638948594263459404586209808277758665524684844863100769927241822468639597235371289480198767403919632304877432777109890097701531040679596469147324027792860966534649386480879584807214891791886076771101744946983001390083741194738374084154144689737482766703878181927788582917828468891014768547246093998438795633157374145428361375749122318049731203012486591104639660549443211904495789169318557099483060970980755396064425526060814601235244199436487846179084699836684020159977633483195547972082972701232360593497034564087368943919378430161197833092002761540615712225835014271276075610290237342535564929881089260195708922461548009949701291612360378269048963462906571564460834970988180139733101241567342346464848515154187850295378096630433029091842508361381223313210893159605023126152785163761154677257176336113690647488110964621266944052720091691475057315711854928113647929141639975666038780095216459325209175224033383669380416344919941090389002026532391080445707847978109340131843268645751639476249019669395008423339405487468028212490560339778668144438567378836683078061276031441220267512626617087031741315711534492036000913378980116706608266377626477750559196702699881265828673660755249677591923465303939185241725757179831643974753765837370465754262348471011564898426623975158996353675314819835272018834608520048043417306884315688284572396437368204647953104171615916449993487423304732453900990772999654423138206110908842076156147240775683006111977101420985575973726423101952374933116471484039478072350313158460760158668342965582943475448751794170436618731775690692452077622826735968128591869136333965820120303368400784679416858269262643036309241377076344492822115270168505754175031038437458414689356283334112654484912517728132353994166227802106341321412919858977193102903481516447113355111734071669680565806597642845484454570703650706496737730845916349531485089779987045168802040262838883350044046855401453144378066148948443500181453142723126167017102480446443261229888983394082462893037930422923598594137463976569768336578846445242493402455100765248125801959350272212097622885860489413651274578824862812582246480582660324508341181943831311559853495372926731980785048937641002691953089114767860352080127333768721653928446463128712451857663396907819663013793771918469922578350464689488137698265567981400898940087035148650435783674846101210727423738973345394153402294258331407030432599734205094049133125429164392784013712593948940198768837725815755571678672295503604481887458203556645961637337907763028084673407460317041983709549087390486564436299841559578817675226119489951328491263174224143594421369454878169173401989828153796684816694288609513841951912254340401736435301143536244481744297136676911762766404541445224209198063415221553595132839991854718746250451528581361357364054964508217667419668849459115571258798426324326082730624302790800167448732285073473654335449863739713891163026177283140659207355283980500678226469457663180209913304732658419044153770749182143626694731471768068939137944902321757397042842386808927105216879752854101177815234657887196781070236655175969183821117708030194069289588941557662908977357664908855542059475027174512822415139670433346647018855870045895425622551362308590339023613793543161430501940154087486009690930953362507692865797148629591005777328177077211265993109974483014386418741675808313419638453874635749518416693055583465082609881103461216750260979148093021567425483382741472170508063069204760887626811855184597515966656480415204681214892744363596074757946858678311229154035369928799505961515596932760690129445581817347378472534117030217833278380364189639992137774065288410707353692276675027607825744781305423787001511481751088028616942818566621219973746213304527737224239470489927241613274765282199408652583964293565367844031377268236981709726983621367599392583043998886887229406005958326294967574260278418147633555558513311332407609954397402460708772684048159601775654948896428893280935789253537189319635797653825065176243109044301462330282271202446435107483701508787344163403401032555788338968674431804919977356928083027350234178395875699824264405975899750227584400915463077999244100093848645752925074942438702773306891229319481097312808699315985343016232425136189231116521220564522109380892233320937555568361494939822293836742235847302201641579227937580251453866168850918962999840561092317559246047428433245380124243767829487653997985521439475477983046335749366626901844961830621125827935915179625037338987492860574221868442204604924215104750510938910690675831567777766235839347068201654042943200381572431374777428346655713926165919723986440745483657150960347722567420990859278415470109544492959491106797677705468001751111740889174651387839763377577052270339425545611796894202510632827981976794415107044932178891441320055995629765517582203540466376169372129006697719621804874463280570544854469241352870658906604144192825358155264658613321486526534603781495058253932297179937746182883248584401000131718036489933664925934918308185817687329233503689034033830001007997997431009806426769055586005666931497388509509932016519083079526300593064946446041825351511690426492661800644265574570163124399292865640094529205395599768309471497694699993282205099749742922306991345781698734941076188888886708185864345186369070360024197391629287525698122037853807513288846802478925775938642440720739035273913230206959649460042637160312761409290261903688595062554573956399483136006124102361498452195625114292104175569498589318146101732727291292373005660431925658826671652491317398280943766698808718232871490998651532950336340342617566635213857219163917773515325577042903350597042244691781476158294441822463983904200884518869964860690266024483791438914088897822895812483954089705717100072188544841467683482436117161353402393542727283566108967165125126036166766370615117504590797059037203647982264454080472672720655622239729288384661889231437420745993613772332470805252784725024459885153990219464796826856224631032903202289205858191274203931381602643629761463143768710250656094326805193277567531765307247260378657018193451793055942832531927655874546720136457079667588482094569430670623169150591871316926063083323286642497469444461429319398466526943495505072641587274176033743926771139290430764596740705776697442185597216180893587754684032633084054252583900561054970080445833558341806978617630542745569536276762404551276015516628023581224185092863845519549889696483507263762596363581148208824558248856579558481410753465080579986867713900294298411961939710665114406158651147944797221136327740625695983077373892743242317528035549522330415779746159704130901926953352641251903632327053594058251304372846401674362300083544467366580765866902102036368187379556576725176322105263212877915979052157486742593025853466929086068700326225234351740146344681205674364227307583960055081338167420220800370781852057085732052053214113664651920650269367340480959641641194593701137001354464621127451927716690576039657751597524112244322449754141887988862143732716316747171894387405589221367439908412069316138787353728727526781784088832898706593856322809872001725692845236084575174781283418029963213240098356482018443960192521898783825439920923941521662355685923963511937446335955199039486178277564714548893564289601822929375342530352000805674779948407327821290435378242564075292152663235450900821807674289367557476461514557813766033653037195937410378741755670741881101858882553919155959981505215119998201426984520899481127050641764565201461861247892490438182225320459564637742038889430416038178146805652662955905419376673096598365681934835846032585468636446262787445381951062668556990502751534219079260748274737688024536385412465318101203418171545932269545990746139417862893026398018901808637775649915315708279234536729425874158107895443039505701637297685097313842745595722793450578458836856249454908958066221255389155482874911092313645729904146636818198247985976064198998748447064917823395042322560167128561391232804711036703345370724224587573026381593350359659215153620129858924839109021323183909296203990296094581368666961156476114004460466079658600203286150968464500888002255686213326444492244867164048284856272641556375033256783340178987428603305163687264819569636296889378666134024122343949330673242356704041564250424590037071138284861480686697396171726512835718769683510773688069167037617750476948701159032235343614768696398375363490946780909252845495388621280469509290692843278881446601369420076204199665603727447085492717626831703847696872660495376178763009979376606647106792159586854043007643038909322679779361510119525215161985549318332124330871641431605775227580089857073385355364781830785435694490083811879376834269239676296842204326404117538647216012091117867989622801449282496574127057030803180649558179616052698673091918608798749462577319313894225645709740725196444876541422800754699096212985412558080476631179507429920503789742540214123135500641062194845383733045870051626748220349137610651622524703809132992369794240114242778961284353272485358002995542867731456477613289008453996493702058011451088291379963696372957995229867622025203022415429394694690494190937396188889014119405292700125650920468735876881716693385038601677001572807504680864185657166048980151403905265340022421577323693807375890607964002182666468753181114418370513395969109079919668150529499636822311629787940821011489658573714645932617618974857597723090647594130592534692906523317471837055459843268702633063244801929725657367834253791433715344680451830355230423274434702931287212015276994887633990033930851866761797804082539208888583128150194262438683234487695711763994881005557490379469699776789683564724680223190268041482283770000198557829455595644656879861433869736629310388841328062049070568725827410822383428245397276207710793940651141818392137525123827442348503205670299448774228929566134947550600755762020478777509608057979033741836411927256794958915444069005981922218011180027001556608282416748013241158868511851484217740984661577036426686331746780164052548549350390606200003826006198848085006232357572089677887832145283075288830532387385467211924093423169998227184308872998301970554056145746386062689378193668759309042171297397220784715495654256371947889362852056083301422043922523216958438515806249899272835828976583794309774104892296663061669717611338454247129326523801257855409895089093756912931954024913178581388235136090217887606054825313030204032196028549465086281999609208178285037053386652339372975812411712466328350473913775503144395081142171602126704113326506383767903897769050091992265992596279022716071667788579633599056900125339408087702058490332366154281659604209001534751094936112963497005489482820892442273323419416023488354138283565820999187772387562548086634514774810609974191427222333993210175074839582013225290555117754024335050201156574843329863818178164534262649637568595000482217446138554599382435711988749508721679334084668343597798267563493211629417928119538857805149532451594320210801937768109190812966255713078163350202271381370610531392474502982038713597660991058710930517040649254622689627153627081557117005879765141660165924651776052083696927972887346750531348507864526753220597697186296651263042864246620614579235992115149083268024061298429658370478001399595458296368160099825977259724867379891732472724544621874879012110256426427370358093821710340118222748182445587533276166440409577102162608008727667364502336502381332995686167636093645662492614709502291357810124793676305287649773558123761190170547107662187473706049158074459624730149334871630517508380778546480356491648083725884142324841083046182841323059313332780726306022399292158666354172400164030909199434911884395089756513815157606235251739936852341105524011131999175693974701617790170832966330937285512348484105978364320111210721479285496047260466856957183550230159777287109751812401237722956113810652970731448483231462959911103337064800369322709795702854000157218872101402556372671819106631132604378382551595952024262625028707721441112859002712958418929148796216699937126364429244471007180139940829078009847579897484477720330106667609446129692860630093639223519327112260718492352992154226453107121798919406365205902232275082271789009011560247294072061612317236184493707542808074425514762908554109216827960092195964771836924570444552805883287565809925071974244321895534266657320468152114931474433643236443821513291835629879787511584537361465477190282836041600170161338406389483476070236249843590655925259623985067258625867105538966018750535300004748791012767532789745383915747233730695661579289792481815326230983966585383208030398621546732969067304731321412764632957823971516592889141347241078145870434082585684156469198004343119937746618642028873736946925185650154383338130547616644759095794504437940644046235439061812854679523129691863689391819242451004750708232997331941014482954170599254560900584171823902599597996372667054825852290106165830398866742505888090250771474499800623392911523170595044480184296224827080946884741154684597787294263949487114838433692606431289039553857056389011973744981019803359551615586195609796878294527864217827492735333200663130471240595014764393295777210874441569849033345559678508464527395163485787384064273119433552407253642389728780386738426956873100302032127342459488791459746175900736217107753259635584292041618363690915604746423342320186692310765137336151817671246739922655760513179417007095514912047974052268718570194611778345127921167462922017106533197780254361322009333859552099031820244955177844630801627034480951037734459597980529991328192397539993887909124227527394202260960576457264997191630363247971378278538380867158752960368045647592963186367582361463831014878553661491381356269090279344475072793646304105639673318897717294596622278053582665322333152211030258240549979150630958984790668960027182994714719326695895590321599880617042898441598115929826330272035439281662888424725980158572436436214423911062892069450116554951735575872402848920362433654431501159971826486700710879404828511988917698864317248890431334933179980417494310173591275458271257092258268422469445788350125667647230586369855098564182431813902087047551565217249355940411404219415207561029363651765951835018999473903244624281108447479051017096977135041343946847934884258658726121336776545373630778432584236718601624803681428205904077944531931748298626182137601506272723427795992392576083020118958201309475362381371557981014183760299865904452593546157259799304712111168480125543238757300407612686540371864086961024794517761211584749418445541410053900224735465894242876688217446720098760791530876659133746968703463052679245667823551603067745281546871895533969033405951946615849466626999310119684873487737409132158826338784486057666156370710041530254605210906951092055315638781058394413699534161582991139480052724333532110347466862490736489906327968628737490180176854151722144142588996472945646327257959584954502673095516872373852000782875817473880875180355915459508013080336440482280548733648287304747975415586779903707022211455747834591422710885425053509197088630835449954642054641656350951812474768670219969452053149094000698107375049645194915933340255457870320198366814940177502551711307916073687880285536587583387878669621817306042122879176943287015065623908315277181500235806394176783071358612382778142451269278862428399428078555816550901999068902158544080066107079145240637329635423870914885280604182723519358395978273059604474170082354335063477835058090979609428929403283760332370287703756374510154310382143822357809285371527853482704222438805583811682210936803878804319597444297891863845697499533506190631826424948500635419829609575436919675051616819426200796137067414066004487298064365876520879160075439504819319149754228030657762056552536547892575006452292922991025663038984581446507510630536359726734677453403837604932058451088944791376799788632705544281758457065749417980988780331512709443696408438372567806599377028353192218281027574556334493762665537344043401663365287837077314890630906089434815188318193445887915970204716947514705260609619646437998330957173020497415136688166082375555947788240246893714701511638095193053497112917079061649924982588091713724698694015562835618896040703624465317010309413074762563129399247492770411904484947943078751898459227618022551167764999824913000790479292592729282424672399294567201510103343466689173026725302917431082416972568867288768800323832261146666262461964860857940394728302001064714802993685337296480070072663299730029319152984483680184300537010526239834714969992571927657431160129296955895228958551201141011366054512714961488700605797272742665176259373473164454933973031693140676574098055764106654670405324934986253846171072534256357330636473207666391081978812684556007185790771866963181021491709982383595069821289849250375211929603260400607263463817628294792723059693743770392333912598465157820709032012702068825669747411943934465648573705623314287354130100156937853142082709631008001108473440686003481021229677267960844510692102171909151449060937911611424245086003265974077391286320564253728611429947255859665724117092824338361487150997014371370605584475878071981170139081860640085247915389830297688796532649221901387326880556090039905036321736647022499237774430592551115242646189725310196224458669441618683993550937254481680699327877684135962187827113936351367158675066497576215870792054516234043660254910902380290523641120321388655539164596436331832970587622944247046991102796910608229976242267996738224348438868644893153524215419161676285800529821121145332474386903267414010296543222912020901537773453058808534696963260786928033225907853382414037897143022816063025014711091180014473457471559096203020812718811833298371524014192518729797712213107489264548016781891452817691382855077171794756790340073959405458191028970780354543992187894222338474748281007424647069317227663550599534872441943275956316211423873715520635168030562511715546580731129208606011465300719686549369371811175540837093951493179954498998422148862118064275750812338666556648554772785817602250261305912898499789991811527191741918975852614259872583840340430092593652790152237024930237089635029375820782929499622463649958889430303862947729267909015622361093458485013818501290786742383721158322601181509126959682573209836846802472814782058603040230585562302858942278958665704151543970141560059224605128059981300274455541789196588463835588056697079228084734977653551821950675782613706693977452516509010066713405852527321954611955307643046797780498593217235232651217737014341350061963045897131293100149931424365011960112553865955576183606865274227809753171459660656866666565454133134798166261565101906976919715836976866015593211920894170588419739873947969356268833309032683167670829395720972670205237413961808656333907972569549495067158236079756501338934229254879413757869383399745961947114011986981050710200760332046431852243146442749274404983406474798333807378488185890213765774275546352439447240761524653591623733506702006292178540964395639374364114943210055620894041849275875597852525522677182325367758445363528416432491098942561369757885345538707869429124475558579159074870469752643405763203835064891747442913757643178059690725213380384215679091924845916093079674790140942063570659832969939937009008482722076542465933806856444572798205027990641851364132605611767109476108207026937578483416152446200704541171670416703261706098363491007436023517845319112053529108024103848125860349643746930837278252310998282038029068023484588240379139820142636642050703597744010834912074133071294948892147156218658750040927467936030586684651490484335346161169580217280495700371092959276690649869723546460723374427705778579129712200340325629037253741857603595848147328027076835694827576247499433530024999739378717567029344954213663204708633806334647813047297212110343085821172693100167142611740788604339809347854148704648871673630480252554022381670900251697796809514378075794820604931851681045725529145571864431121266316511130568043476758317747338905390295902520326770864620651585746626681349575173706365703156221758397441177726684895166298710619765531915726973884935223729609078404670783359313827117513573533021390101838815723807588590665490952768655720543464182447614592048061747843880199926285368568485438998376368169578660857735067076781526989001070813193616002412079638975664099269066134407877296165322563416695695514470796504111982863550613622836594166154060658410689372118445928420901681559794095999202907102739292497349414055052390714962806185301474483413457044277053928274042154500807369840013606061251076095244868389273816163979092707219162317588778203645921566724347620194086464242851877835471098132331107269204476387362168304450507572074333070619869313157966144538129229751411275683768196770933746079785063017510221613338963428904734524133378892472340793488843235089819339380704891583310663340233647478140177747672638869645589888682005540483853611743250027483909701655586359409062713559391110548850055940582432126901708831685062574043051979312352897295701596549040148011155597990584601585417351074678163774161666100623839084752410487403319986181630654645749798265979822891020444310158288092246889886923882530994006425736982064390642076993485712501917555596806234815593241745711131885937028856629037055816299209255836186050560443165837828450205943375235277730314706335190284503705728080940482039231142452307860371165462894428651540472598490295166102367782469093984313787887960273734622008996791428762395813028700446573360886083289982806920688130132153507594016267420041655669699812623473316065216271798036325817965585032117390947126054435205293957915854306665649677671166567939901684034574639019807606555498638633042946937339436242991803900876960685915862997328800919355282879407404032931028225119771540551867774101251990857759718312129002794947989254340101228335879728859041394686080395381486458825160953766178130078807661555152980882408112984311373308199403720782629805773551986242819646935960599916515719452083312271710267408741788550041472284442129822591837691529971930629449191164726346476901578654555115578068366936237949582055998097175094314414651252055745479114603388141056335690682290513041527272624137582892874741565705158663936025653928034871736585067699295373773088878970335990806742498281414609283268079763013965846992806372552890392387583090524034563870554545477600479470447131671558037143173641246106691986109652965241998526284038060636730097192503965573175584816372525597419371470310725113632167973928889954695747463136471698314551071695964687363322831534084861176483823709180857288674957209870759747577653624985178266851251187603279479610471263973250909848853479806092887100892156370342487865522084883124020283998831799459647099822722199078287982185788564393754649025282577023063845317925682027957760514750956790268210760904137763014160110157171420882702723931775769907574559486537540535014933845327400494826712574543198637714905983627995300882148943017311500527129394671234697461028214806042256394252507519954867788162830489487899587641490670069611306325928212621658691359182263900137450304639117010304534269831717117853162121636415727655951794055532792104958173851156973028729799485743786583371507976085692486197703331107181504355369907247899283329797828644126896256705751000391802908206991226962929848503096768707847954479018169033140281071388922923604970051527877540355713307731505207000536985476664674786651365508080246760049518506550252718473287192111879995168089463134519270771009987430947945565093463253855039580145893513368860966353316899011149736687930517374179772473582689338429275216419655333140664446194873353575184848382982871145627256089772024754540396633878664059310752675835670662377444190109781667642125419760205673194651693563368692356052029948108455289665869543345109106071820142804103811626055900982145942913291368198819023487918549118345125621239651290188666419312933271914062154541451881878689311624101183128296237528427756687012564192967930971829390930661095182145943186611586888759816015562504891634705723006412585240904313035786829432151961425463904562258798942465302319165515391028515902592630024802308990372011285749929536734483662634953905219097815621353469281021602705259715291708613413455467245769920132225669889895627334532721199034065660432765967746679405229377935906994655650252705899859400355541205307942282178235178621631860008413802971372640733459341441066525733657666797028969998118964015564469291699678863459487171536680086663506543746281212251431298548887263697397452923693751022141576238134861755511751895660632786872948432456201156109738655601282251194772290758786569966812487032265035056304320310623892937436612607130269852465323610201650488481556523923779358654832940004471313412468010877131505358630284599698989630352241553083246668312160831216454231340991224919837274922575269320282543494797147435262501216030249554967637660871399360720445468022415929730014802311384475349011760398525236469147291826227183293999222249403526774886884926894148951082409121731439407954516436057940867093172212052689476363055430836613001858624209636822464632249910531001755648099561345238686989371757406293480434940982616581706175242056817017671478584583052449583770013269132971685973890093616496326142469881352059445260416013771272351479600267053842587702348430367849727701656127617866817107535119450341573227670428844127299063247127937253876471692986666613541457536294207165639885093103727732261633268075994408599794898001690907010953298949161822751478951924318753762520479820782883512290002152535263942592759330617845213203696421275441835995429682854534555947688781689518188097275601258018133049734286105986638590157655375856969671340226946324342873619710360696616546826097388908198526192163036900858070846010287342602230152367228256775491268619098109000063354749077352442434779588097981566196901805685790159179330886532357087406776904005500494864578521554452809342028451487895501599205300554427935510305698686643180935272071007081270052445034778917541242295194414988939620956705016781271225350831336562466372495542462723455825531508488724066900384712544686960193438161660449713701174073178780163636323430540261901846693002336146429499478504370430488311752290499409642892825290030060253875086753863796105262647422704787974610073657854241567370526064930129831975017752410767724236507261575122240685094454861720162519924234518087918172360463278748843765000570072613835585455087552903565841555516788940312781546240640015297961721141211433461614708494471008859422226036282572488540740477825007612390356469911470324809514783259759506248829702966595118637845393656622010215094768744358787685007429515026240150407339698316157469658766384168250388131754416618105919007684654118772818612825376131388158006772123973567657977053861114086196853223767080985487444075457490732155329883542718019756469079422664932458996237346587391496224125065523835939146954950708757177370074827335299562378604275404700610083239723123404006971041913937689254924370784893324433212869545292752558215523992696563103947733494866256674338458823143763697533537964837142655645299093126070661341697542490870969520260696079866556763216268536195036562492225332811286922946735610178223894944590740106502015220468424279350069394885710770713797924531842749686131603148452951963578156124688685519315265795342712902587970104006011141482902310960556638967362351368576165596965249952351342440369527396311364479224920461058163904893810569488298968554145958599462948112997628364288089258540759852120930405411650314699231643547783920372740301478254787972589306136598167265629323299604381667298115881782466703291787743732081500057736630274904839529329703919083443586420300647512802722900459537775690597586726956862891760152605725310816001662893961095678874118726426772111789855288036551580730947900292704831674110125507416450045263601814002327998654616384998441313672917826606894636458946770169444307107397021393655276759547057242971873514965540411139016935526867047122052234904639916425664522443732577556376195617293920115556116547448227880923825501198246978529541995906132678316120010792905303554513143663360419813213016774108553087298095947185464276978833237151599733917289867451565070308796874830775643692729507744431094894205819145885956106188036652800003898173027065808966481841895774942681711479647139685347590215832485323082528159408217774198602299174029965256327797982521549861966663256370993161216207163121355370819735985649953096616741390064240408322489351551365611316144393550949936738591192706094381949780610260078772301009524163032762400445254668105053474873921443814140097402571608782267986941556630811286740254939818379489165645251418397623676993680561992177715290620995696387860576000169950121291208860591794582379806073377694147147113450082312110692393067167525324410921014566878312812837358689369875589048839901185004449084540865653892819471838071885322861940621130096105093281621692381307009951774302691374986718387371524755269321491230701732475834107448425994533898493245262629802869437652239556965094633513965669385575050106292477462061386372080028514095554425590584650116816871814914102059376566168110568767860346436168667260575506803207337894962996504834687326628563906561856252366949064608097098591695281350175754591155696094236748600407648515431141893598634573909007142677022419807330543367071401214101650128078024568170304862815719933276063899989578557401888585063336681591091662267340851271495846327440083212828313373642195856315227026883804675207200232671522635530355588114469855243099994387297779742192960516934494546206238629099723944622072534860942980070991846751487153634632475492504672425056771370532919929715699963805472428956460616076163648761843589555036942629877928761962947844277014687375993666159871349903904669739109235628462996517346172360812198976348215968046567591239516383783012194477580527966851624398536750924156082230639969652942539315882202360422212211900425155361050594010534250930630661371272058095543309632813423907478004343143109763000845475926024680075961282188968515478585583868198466386642033746903347170043541805780223057242828155363609869077439518069194825645030766251559377393233741560860153615303905962774077515335192893548160045658697794372523663010210085259271335956918270286093126648851374707927282774000230215805175716088105685586053032675050732815340882330254233463112991500285428304467942103131379829408363959676335333688544072999091562621627684256341888417380179357055569703547492149770706520567690149539038623481863881629985818080890058504732530729625508328596117945546581633491705525541328001148933141685371101189219364331798356954497917951496633252037150861187829216236323885276866880609567831780233976689033561575681737841925347408390040682614832351452846455504032806292884172593737538501597771613550511659108517808334159283657908163916669192840801637713427888790328977051026481427295349219063597377953046059606800346725623385486731397321077463143828691778374263841411090521436327455068388820900280279496792554064118227790053843058793248068843597499869824522851168624259626947239811628026991929026652225177637329668342169118527310848592557860005199106783181554299999328646873341120802237595263529590931074288982389352774483453993453969421696135122057830616719692443942924632122333167715898369162163673645544626657459085484898311066777550948701407421843159056653451066172055934794921545782794455832749973312899209275258299589007442808912441982979001398575280828512810057980715134383593639425078420154442287293598262534538602625276353087684441105834182082458438298095764161421324621197632800116180502407039441881113858847381242254615504458755373911050018336761795553954377453693902194507931714441662821695605017690469581119958506199337234324261020981046824818507056748846396101927582317422267368903645587563062764215389302330109828903214271143836087382932078583839111204718637771250820319197667518671007706773943145942753257459115837507275140431589929705761577713036627379023903448045349452088536528050763017791991032977481385376599161731662629044030121306691262410666083490721439214034748181054567448563689026858940794675128335472282025882197177686338145460802440654360242771419972817535903644391744233314304502832961739300271621551033971700992505880108679931716533544900085186596460124344538694694013659809628957450540245281682841696036198070094877845786563578919300224609851774875594221020792518127158178506619412111372243189808228859248438392266653896502292390121812948836294282322193898688358014635623817734354980744172329918647809566250429061076890691785701233134560957948469632627699966873548515631966932699446454597283319409174056201229030090274555486565614341931554885578794717197652157412557810963058369925013093913609611053793601788124702813909763543053826167825936069898948694502125536050025690320631997570512159734979816797311966364020635532987926039448651861253622154420952373100857777797421167711271301639722036033613079499898408227624348161396173126270571850386361581184825953401053993732899581908532848490326655751118498545538601727288372859563704766480624009578835232011463459279301942924716461609694011042077942763904658725126067251473318735028151762033564873657028883427647352840980116719136616255087194387752026037603087786293878370128742254732895706091622095147700235265790992256601801655829289384844250400812174892579679603142266725457054915021699701682371766261299818985734911674394599079733430182088045004161248151536609740446433409209871326258670396419177675834102959482080073324636715256893719394385234173870731817245710463422263349320321096336952381307395637946298823380941925380569096620331874225937225716902189003157735709020048670269062263169629857500532184952928289294412656128978953295207754716625699757913060699577055545687731935193692624581903832235656052676472542863509250231992174764487289615038155118783528987712503538850645421137317320811398750866097999017271260645861337292416083111066625661938341668909138832554532542846929671504141671371949454992227851967410535748260149957154791247033650990347419590057771637952818822787439408470110008951478938358899368398989133814882515245788414731752368002701217473166508401473064337794284527927274688818354065455835376331394282396028329665361067708426820863556494697806909427830639079862472489200152387524308294186968624188114946626638692979870908390682613306445182368602360740903135468505862650098280723570635065882411510914926692747102283148900454781591494264894552850545695659680410229084864938569471909677796115012787550892713927594782149059438594033558915752233645077115596035714040555303021995070528230488378323825892517174068624852923938844329967366984762697251268298225995479745175277419899292166211891039253203452643460904827459219164128801814010163683705038762411428120475237902199091130621788015268711752216412240172040641450464698674774135985718700874170922350035291541489356228833066204929365968141004660490179870709104037253475790961101493685302964442283257666139240235501802045046734019300656817909572237192912477297477093911521199675598559180213320740540120908059857671231413156956378613236201835143929511389260832546468905691848400857437485449711037487006661609670459342392072801712109600240645908723612763022938601548243820006216900378687543978238348848137537920930608965522302556377348633852352170780545938653961278940388552727920536167765039398578262917001324480427601062270999828732867599287717690817391354245209839831371634817964419945929142419092569944736485186537597991133698392726051625900377461508643846658559687051464792632178602366463141213683880903691437348050332371592436011638437980873108799974142187102232319443363874568983945688038337098785224455150588069948339579302897522711644107362038332251420933118053791654696864525604897963946150610111434687368100241579917848274543463216479149646928902853884708861238841534408995645248932213447613456984589634160818637346455424963803274481302221067360983386530302218514788681721310171705590409760215608978836152443418250287784346225977623286778889984352366897889880628702790026080848580257175301506852650379877156534444703184462976953790966228187206284420231286439827744087549561601714600103593950796881591664240234872282440970503324511462835387501200010934735263186808034132919344532142105888372356991673137107454824578792751256433889463350966544144065443378037146646107219012523799601365979886855247496526934111434160642421192539313733240384480418603615273980419987238185013517607132869803416304065144599892795424881326116732096288320297146464319614982415266274844120912546250553727350119287231239212757117388388414493742002291637545458782441000789954238338304074584384319652296990899654184823050584051925370838467586914103190156224777488484788586096456397482657959232628712872543157224213331192940797820138972457694472958700082217754644863748729966678042156444564090953705884216490153742454685378565720388281061916124338423551734989597100449074442522224135034157517334968305250010157198283007948545825870864264140191045487858616128676617850360652504477416080386439059688438080727307978495826784858059744932574045307277594700951251503658767494267513218086781448289675348618626324044876582726871856967044519023071764966314765071507970214599910047558631205738951849209021951875184762051877145941530700526463069881385807854919638724601909832734859837915894386268830800578805078310320103962873551837543199536001172216565105960301140978641913308349841142833021128622262863352758789944163662126592373668704022131222906996024427011064161362227728935940150696301624291381165948704486378709572803664364339172760962588224847397358376085473642876510957597995042696350019615001049977966323693713242062166509957303328241344317975070532203804361259359175938454480159575189143795332905114007559039097068069219226521090344473781181883341590427139637482656392399248143654337813288505776783797264873109543664698757102465345417224049865049372044733300792584271536877232030882440780787361138791167767575327854199854791611841589971189535612561987123906299506107078187185906968998019905784298261910800612651079588701718109837959420805216590229050014598452455117652330367550294975092524178284443135733548265906600246634898637833683128723546840067411972871724097736713401238839675263288853178523670981935343180001431331026818456410004085486602385489022686338258080650459028228259668460606486155775337425849992329585199570270078034573476348645814338082624911921165649368130154421583761422408227139754453425122717078017482912186748341910411539341234177170150202849095789713304801331869707361041454472657443682627780478823229979950230372483525706620580169884452385332313735984191030435076851361761951429270414997678552187639490365513415779406529493208222790215224566003582132572221077362098760927461797925648544845864410012785772079073111597570460610665320368544893802361709331459747669956395144655302116136759202064123000603927003939409353453465665161985244210668203726509187504014700179036198009152174997340906940227836135517902000282079526199583088049325915416825760105572507135593410576128963300351781246161860379448881448495007299066418460333545991852605604993596191871234609785369379551068623378392485645366206910661962498678758238301200242067088811827419058704474180780728037428705841412277843213437368163032554544478875847088377955581628872704647017790174128681915679300365170285764799201980144197559550255625623744039577669305505190469087735145215867452433526654865516545171717922665635734054006663356124423874229741205018834367617153579131434969730732767358538377555518379062586315231280203309954941983170738586280807590956781184741724290788992327906093863075034838520395785302466757867974163598518225408241840015162579503989087537083467500886648359637717405961152399826817835938123533087026434690349323104068670155418293669791870599615462974729782956168151553744253963986380902748162859908209478898111526274858481907973455303327377308646611850021770769731886396567731272994030738009646997784945731889341175554832741659668571228561490232459119841093037880514588642655999804703965561375290529338146737519347591853535810203335003828187503086301496962910632692955410875157327583089268754332646703915088514168067797406969480058620469632192535023261512847462119804446892006300098772814463080963475590234081607725477970092617022756526192066535491356842813152641895865665151417987986358142561309398713489418898300560443579433648770530988607080130201090930394605186198076602073566134955970736642276500754060665861178625645886609524863976442279133445327645127490282291609895073874422885756970625178098360762752082010002150372196922038575236041194945919876482129119924047015901239089407148687530324271586160115223304943429650331541155962286684084429582301639943580323771499055530457482262181550133809020024616913108108180422445677618475675284051733968028243219310314692161145379793369344436954154729328948778960026050921548964098315680699123784736550205132715322328060176089963507935263836072533327149552342409335295407658021023872102284807994254987099476262901284561582552339780568311121212350911103848668813845636416132108805023794536833197047162770096704049711485673499226184470663519518393494991923290564861229961965393648925394751786402175463430021905564248861562483434965155768550056414851621993075554826057396699000613731369293489705300889364862939447953332454748821935364305426460464510319448057717569268790838247590611099936073283323678425055096286378729254149012535134827417443286626226156692867616217520816647713030638798393035752547943423837809526702031178434245959021228817783309147498953521075808275919022302067019289557082943205761272723410037512867238886171909647106437356863162604722994409345005102321984651677891321990716537840462709752422568762521652867721568565545187115176262705168171248729030798284561786902185429728451167794782783172809423751690945959748242092190943400989901572688012314203317041430264263921964175874071839175645591677154696577578366468557483691426122209328975953975981843185058113215101230958775875798937359721664898005522172125168982476792021373539190979121640534406849360610334332597161641308918598639785135547759592376099446485503758120312388685334608705785230615220935219068196342407690630410497052945158430055064883092800667602145375382024627461416376653794312858022371539888025182702665888164763466308325120329031526494192823853745956814636774156124040516917434812455659996846145870706130387671624255852674780347360233125021275639821483510968342446307449545340673754782280760102551849858638189142983992953689382763374142459137593115993911195745557415881643542287019378746508186126441497676127263345737540414838856586253480104634530336118422124860076798337958574100477664232574258401428935817165394728654123197320754816427486367721282031807954813798453932454764326523826081036133353661048052282349256760024233018330751204255863077564337252239907109702173659527931011149838296830486328502157994712854018777833274172448981516002789304916858693384422387537234759169470093394101366279167939784706745542240061875773061733642982310939834098164542532900128037240330445880811016252959647362382875743474577564268895611653236321138551273564327615172243928102838745081084058582935100870386347052664217064871964332451355686194108960556788049554604279881098901027140274509848203939332690080462391730815566398509412978182502731542731924019491879049039605478153135247114661254372516923430540319754141124772858879718771972259900550846305410047084517293807041695725617727962450225159052990989570632598692001491635246129556902808011553836690418773197045398861008974081775494778739460661866305807790629278911344227930265386455549919219636154745028305629839802576237589950842583306580735226050422777940050161943365746187034994280938233224133705373373134868508571545419317771705770841408503740819566206814393380797707496657412840330690469277105735425499583525696884350214250674951404999565980897201176618011474284792233393262506878009456660814073686322162355102370090916820214087432295507409359262706340324442001152633146609986721123564474848444832461815811259210711621304219933639914844663727191561742575561213717201896208575180358426357034548642420635041066157854884458816357095801302847011372316825527228744070911084399952079610175002242357879159507585337316990506127232239371700339011619537510909088894430901237281674364248567959457229278121994765557439174349306651023606602219994391252637867585752678318388079983853558729753822219981971870786275358984893263615852884072285547543112293142275309398568444622798609393510324889871922031593005464362480103907914358067119424564648475534339212410794513910009422353704000060856851368435812236554438624228028110171073533427717871968644887268190074876531727624154772417484824599142684025983402650062962681800581856901190320346164850299534841850808624501120946683122706159192616414721816563870222814950468057344325765764476337418023891448609314438469825643774588268611345615939947440270183495965288786935533822657143845994704950589964341972641848413582923600310187584059878168782078595067604911793661255205560946492054285314886349052952008505345570071880488554513086125738724763503852830131351251355981771088651983174641595796681543881467966621821029862323935533084329783962415607365155100249246411136508009839338524943691928481705633532187125182807446565216253448770113031825760783097670785064063812597552735737918694259861474718536695557668885347757520299844579644646430185153127921669132256851652416160183963779658089092942887412179165675165062357925966650718826666800828584219400286516662210565297968350867911388471558760505060093590567090199930389928917154809959182360715185872798247696273716275204667257236362055111707114795965107576810814911831346432643464841595061674320809406604564990725260628831989609203534666776412423493254249625696412674202541790101028706492883092436824153741027863497599558197201513260442082520660690875419099257292987642537247325649455521752484321538699206707994929370241499850757812506694324408298481712602627135865445963721294282676022538051456526151370575168482632836142695631634363360365212431120920688953540216775107916727036407179161998413565273495351331483146223236336454556502814741736275383058186933127225632099909375316808153381867744982347630039058905549882368308071982129905905441310490051498506373550792438845368930979437826610840518015211609849310199385077321379034895471975737727642363174779947672132530739750206656606657139079216114755835923510568847941063523758164211365902424731342645706387148999423214545898052425321241623824354700649570894570901606735250687297595166598630481551895077799075302728085507481532854128501947187656570772391624665332938670251201626770963314827449242850571248721833204886249406463081558352885843026216756901205057543362890149750497565072530067811732844470400608483932549444018569326046970263416017606025001979071081418476720459243345030829852476905865505356099201165843480610272238019210093110533193799883077243728113215590419790278559073337122944913175694748814058464199218571415753108197541366636588126763914151480946903776432121910776552156017179343361168229035863513009666259383690458750050459272376142828135088937490150637711885644033390872920952103686603014442544078997091596702045491746911619007984919412444773386856773548468865339099638034732921132572172046695970108591675651532306719808842615562858778544842379987539881904093433711279084736876496204583155884371562901879722290501842635499285294288851817348379288401394017824864602530395951276501293116109018293449872701911510949535490380232674162205077444397697663960338991331594146445807613639742497784858453817142012951949546483316838242532859638281439780828484542013317302151459116999416346264500778486594378763288557282679184625252578454153690082259547374760390456529907276518655123094138690619483113529448471056636392324344367505071373815179445222762362437996940590667531135452357062647000964589433532805244770184020789660135774105950810459626529222464394855001395456786722996992428139143304249235099405784692907333756792117788082678973090869191068851541083977501423524603097618911747444120481943523765850898065014850383032421020538997308098167535355615008575021699436395172995901019019774790618756187929028776722230066958665327180855503866610341734973405718404743176319520116782823024193427855843772112561915859491811046318311114904626198156901793611072174415399615590037357387676662616700423695198767851083570913003605541135006145385454455587605862120320558783978088456853949924267833451200477467221376876751905701322462822196910784300198127595526533977699461774863541118577003604334481665677495063330605648125379861105656358593935272603928654875597356942675179602492268870161121176728135214100563844220281086588512442879490546889707188844493723168726010695041695214717914373110700683243822176806363899747904770669471307187610331711954522669067488603127404767187389701126264562772188952430939291813062619851125049989917168011313780458071849591903047384178867879723680347420381321549222983073938666943412028538619077251675789349016459081988779173612617523133953847552471587512194410179468715595133404544468760635700900941562251990430356299621955109777028535117874102464730550997140334531324859524188161097787174910736997671909834445404453616531435982981841667003945450753859444213344271445879358214960103540886191869829653804856245637245633121217163408240011183642631515427525293958962385155940039389078148250016261999137908782585847651191951157285851715909846934754407391098862917901884147196355412992425951564747421031979268586100074499962756238143816922833052775430673283584178419714311700389102001164505293760389743487060125125635821104040898540610506980837060442390899660706461210343800975110181578957412554292409900515746711433243716814362446328975443471839201817720217391339652394363828814713620309291367558332631526447152626793089094762579665936703200455966963553737845327483943712790689063087460664371202200864778628714107772130044926240722519011202856135696644621021160686262527486341915272778116895849535562863783944362046876110694035305944749387570599131981999981195856402730537092790747459616447296754246638041950275368158235986289690542366658844241683614037298495513202221475030599735092752392084478806133051248270555256939787285300713818661193235578564425725218098009345948401987810441688703367071170657774590642465405368389602297459196616542114615347956990800257573751794115587212633965608942078868131996449726042235451274885318659107983942994309495521698542315527273316700950724542789051743068437837388401009037886679961818196105435912867003249208183389139026865060610382467642095604590118048905545123096573188242548931769163111003724022123624935016941675489736839791293311610508116038822019821506102142320372882166668667557555481747922912186810071117893973391722810406237945751344394608675716145749243906250865546483771697698983823185050871419588018666605679237731684895780082576077638288838006128200156292470880222286582423196756658943494447983398356796607596106167241239954606112517563650399779529241154177497819666392900460718022680907026774039436257923333536020374593836164260426880051670405270688943088397440611492161384007537643982530141379077362658230703360044498947189683633070745286024690760786835722654761432731847533401747667412528243543862265747037528006799475363251559386934927758804910672016368269550324170818463506950803606839536656829043982030179134512178079167797688928211327605296303282754777059189504141826658007584505146291042961340147843151694355367477749338643553165927975609331412732677075298822931578654177786339354148599375835172619177441339569923393258918065200251112264814119603786042325295531061212016439263834858050597366560786697297000886812987362750507446492786120207520194337037143238571488751099472790936929374080728164728800662522222557758495845500981210178653902889497323029394973365028558889794160821124071670152723456117932958829615326092932956457829096343312940666670893154932740666486316218511234270988166677964790008980811168426980923490360796164064748134767702096308393936408462942024225742759063657170126689445497935185963646103158545979400427102360646365362068946527954508827465890180283614753730017346632926566479570428975686794416726497711557869012754058328573054888621748924638202763473375136666278575305852678608253977948661173243530538319547911795701301581243715872702879393856260440500022579627758743792507045847458206375932471436368573241657196576745684910434581245618381370224827834945229566959773414024377627412124090124534152990596377623650202640868444963311659163185205614222474612473855997297584716483846050867133597311934298354297790701029234087124734228583317827502111158451167691685845451327891697632184627652197166931730745261093334466050602055073035880380561669140003598131993230200540922349728281897943524704092912274226651940335995034018228083118930146705275697657719615004878548639290783191251878355886658828411298848020321609499824135868252774898768980578341950767686659838110619566408092873994737392133482521979860983593469953101036753023761213867145942092274600693477906072820947425081958454710463610209180088562675680361312175936450392558477051868887529448217357305403600429461919112374742394159740723165336490154347647656626385666055703730886995928794236431011351493859987703898408589019063499773843212327813031720333900586751204096688066468889155946076642218605246327128434054429605907137758684315061978830952806291204948640492290479170658802873262310087039361408149555083458509657534902710058846494228000171551726178277602896317559756636064243335401258933990292866546423090217296943146064270529234244941627985908539069547943761701460292692775884511325126599205928539430061177603135083578415002051411126678923022981473235003688416383700756022137276379518679664251646288308112905409602575861584322794142834483087747260259054361498359889196942613841891866464373977715946551295876127818830868518083831108002847582254813834702929936899150337648189711309517191136453123742221945653807528295078456334363579271682934037200752494125971281499932898642185902232822629810592671491987917904179652561403068310279224843298912096850290679025437349224560314675136309770604914566750036783127320142724047464644805664380457643232523685338537606652643231737679086713991755651705090758204036729929264495111997717403635224185059290129850633465318913897554004980546293285923832509467499237736907820163583425950276697691200334915119034681135664095800633302850284994640521896187811547308960948001209783234977236038620579950821148583559000926979228259294981467061080740199248484482193535291964923644747818070249923884613706840574333164449607302263907452775591946017159633092617243126176137757752432257957349572707677944842373339169387156548301500969763677148579715825408447155364260378221753189396627744861872948129453638874123668712447291723239655501834775727094161967014294143585983399921907245612841067724007533757115358707760777745754127775795089722920769193373555054601818925625391066657753417443747917375466453209221326564873236731978154477540069764748665397803397482798960310014264617990518128656310035983489233715238489768904425151398845911142249035484734983433380199439448372786330162303488446569441112171444966194536659457183117169248415044056354620996734368917537845332961708500705454391952810508851586733030794724972328682806252992993537403834243852825409767206212009354002648167114754511033204255290511713990819010921796447505058927476151510732060130712269106091284861783792056659028203834902785675340936508303217299165451403388202324229498048880470158365746464042859432870887260959939068102672593728786364348990433356258517654553957627054052793299471488461813487634624771001842433658244333545925579338036392799409236560180814889179526273227718389274028647054632309374636077985954440960509265444911459070907322630132970286499594929451192821722835274351519755407296823958332107287153468411459077871645336032132093170873845252531995615520491104531732731838478040826336076016655112575258404259693252096655607193233481454284383545664189249782878787715174906736579589773913997067348598131866387731253660972064604479126289622868510051754764943713850260978411824577827289677489512370973981511944891064418916371393441777159742450934384111330049476037837407953506190868056290295840240971718622718757293973723334992180767582406608830428742350838801923561817627507654307857620613228328356310570942667068299351649364610224587160959463410676495671302458061180961072197413242044245475195912349188653618660728970167573278151582847000008268502140822017771149305496542853519802035205067634070508037419541342864481403364877665036326727600694342612838509671008838780332586729117038268205892917441581178624945929749025246535452869647762148817755419246928047937117297116118696051372311107250487491747680176656759547455043421490500128320658743450480841038031916373623308578828233383721762799283862493294552652347713758285444594022334899912360090188596598123495541856168435006922818813386609273606811377813127156232334669793163424932491351511635131794452146267556166928053748262342598157411069707546427293758110271702192626971361498985189157661159665498995820134463673453001075632354965258563592870484319322819515349478142785492763805416054696452130829178624473825774651994018463683366751581282038315616057447929386727151672074150527249720917088798896706707936998367796355801468581415972981981458829250375762587821854680202929667248899577565941779700793805746346079154901560648577503032234680638179491800478978062306461190658609772420128684967237153972349133734907060079020757374381026335329773762696275740360003084330381791018659980098860501073005238727582422144997520318601610186650240906134277635839088203376303795736686852383303072213610001741266585912367842673695174748788699630523893454515113442776531318621237622769552770424970543323762605726794194113124689299234302318304351125685465697000722995717508085663633050686168133177973005135323327368142573964995720352709100551322807737079660867860096926542052516237871079145899334756028984488971904898655896212092854816876142355418344142979315388565460301785026131349296586251175362469788023347901846524685442892483965352296450670466981138615862970179254888987933764390938230147170029508693763493322067356185147676069610875645848051839367923361074187314263314881597245346357324626733392498229851024261323119923700828592691972778900483420804740119019843729043078094051775020894467434283002401576225144549082355181415602720106296089304120750741044423331643210357505077339346367880132292122352093127762003143442965794633482622723231246538833862449450809875349775210337731852128249543448854059760657068745767571270955216657544356852255046183353217957800047876500356692136783691579032472373177591132158451876440625221259146527835997043844627400720090563211098619232486926320532559303675828439111676159582069173518020029925820382735274849868577127533998911923846296391401617495193037304913110029013058113040777811066485948201026037234663604638172168540097509423187529368644766590039624631147210860757567617579404455968378854199269794421220573949407326755545508501911574796870753385747488252018398095761157849212359598198596416010067390071160646693896238949820648419601660918980239172314875684273438506340588895142041426447253660887032470375065206417971195643083844640008993085627017821241184438422527402174387425078208531915511270688765947955599164098671298071906732335425540490999709873643848532047304323849720005801429101286048555786046927296889623350750309020517852834940646076860941612414664784126028847270279996726377361461802182799345255784879235565379383678190743381784877415083100340924908542568242655693519555358938290428264614468393078286966588198875935556734983865020243275947148871423863381825492310200248029530862263759132799010149225778713309995510885800079575088620855291053698181882899867088129261883366307215189699838652288460811130361053284364899034488729711151278277466956167592960909980052314313242513419375351522439423006616177434378478499821542493093201904577508064472975813959177542956864432788914012582325593759914581692591160038397311000872948154648093627380280711245824539833529164279941345506883954589993860399742645260944546394609868174780694545301389396376807017317384037092943648707076245646858877403025940587386458172383192774736931058762480550457637683670228271372396167067116839748884802364380806108021288336446776960014239502768842493781479864234035898446760537108831062249001314250044632322412659329151758810414072762939460890450914093763033075687694271293305960623365857400329441664082244604354835257501216799970207085668697732039845761751161619842447121926952280739881929076662545011644143609046763181993380158533286606345579028515849277794785492512397943243196725214889799285507458371541306289539692851910991167626433536341431917532447537020026748336735694037355090813773729129831377067534469607787638877182304296931478831396269695433524062382229234665297805293729937608065360396492998869966789115176043222059669584224996174590174610227785375363206937812252735886443705824148085019780987367895495656973827400015830970996180935323861583877059409525352184572380236700285793035033393408753197935118004862761937025282984439351875216097757376907052800326459492302858898517243060750871073837675865322554047576015781887459719510110865574046799717075643339517741124484360297865446039081971231260591284484621917100733916444798549400975094418768413078719687082093195064310180284407234252364586821500904204957471102094878747186037778392184608469421913540874692226069280197160381954464017362586813482240467080291664545397928220117517869734723721844525746761697641018639518947679617458116395056476022790449045913150931866975387416220103854292539021142154388895232337956963669442598848432245677099145862861860726428632305160784615119966601324661389179446449541979267283129346712787548326648647528472231993602425324826711164127416535087561915590907085360743257989751241484682480733497511662625060757155055821627781318099360655099815063832708661401156510248069461061051841030884409161693679172394459498730606440763499549733874211442916727703012721763509096045593178064629363850768697904223144763949001345426436843542875978699473109642916902402064491795781979137128823338960713994794911215798184714081959753218630386027017770430925736207744486375133671881978689259500482798128212791184756109351616732610311794730643736277342546773966736296202801102828568223724038161686450897361729893263687131402758022373845008776891966468442650711287265363339122254427183185808516520011830981060851321338708261726122863239178244503338189383959988111796721522105944987165957584977143226607506201970316732429191121094684604705505850226734893400378783015857465461163939993412699253242118538350947594736264082434296491221827876380119057792465801121766613396169026921615887740532538611469198756522061609909490544554407042774265329394548820066560357167840406879278992436791975236659201817601363176351028119436375187320558476809753277448330944170479239019097231401705577796826368874313690140470726965820101679928461997846181547244690162937897608114012988863425677146905164046835788266700963987867701735961438616816913986521106424853482526560685651038148770306019451586193146655001382903615392114689946989971510593961037086553779240991745803787815941032205216867753025347556878184340756891837582471101589055449319257625824724923442497947947040096982361242759680657126609756375055001740133772067371330896541573741729946196302593968522878142826208949238687142392628192677917769777385550838508218140666604857769277877017865176375631276630227594704521706681335858446797591895585449143698271908000461107290205131850347348995788583309525582471829120001534347486939657673474149353226459187512816361763702560686300561658841133541761527787591113672189459597023698602083906151322400460388883652373043188192902558671745883710406771829811649654000957702458442169096714132775410309715746914406208164245493357120986847495315549470119199797127731590536620616895285911066867672335036009096047569171474897997869825566803374829513670533397022785822898787073719705460804250609694813131214888379402586694361848580252977600685295831495622265017537990196844813175977006377419645991906391606685918978695930030971599891696253957776139588293943270527951811018674222462127943648139737972950121700789859647944291960080895423852069089027660456688211736413301241055808413206993284872237846536791666933188023395978342560008635967329649778687635820877374447805248193790252133360257107199665337561599347389560308447849313647686443598990516843506724923854133558368121461673803015341313894202165499611704834694647399244505777127165682474118152750430306688656121252756020291281351177222661496220428074926303064522945188156574749580932340011684204045719526823271622720735104247475731241134356411537174319933872654071442219731268361828260900532273729600219447596181155694779174172898984085639052297649895847040442534261529891651340755862353799076884991206868828976180770020514316176047995789967289947766811754595231172433181297660990569593884509540405018441643580850692207873661679183652037217791618841103878595068105110268768973328163604874175703820996437132549812517824242812700245303829552840780965210665369132137738736234440462275953298228470169826654498955788155504496837300491089507848528164012410794743805014152284865122266584683167523050255242989149370352062873632410995053539225707927101356744481970792276975579177705487236380539878094404547537278657511337033281096999194694411453289638835975414211372924403237040910339486520565595298629623195968164031445449960138292123393843727442901276800581670785586827249562639195333369446520905859547798434803554941645026894037629039945229665315730510397500561159746527039127681386335057013341446000488112993982025488768528205095923009647240551846581438009870963635238002976954023273272226030257065912486022902428728716375436366378239419295454484214811904936830220219273962159110419423991471984837555671243414184822066951772263565086891977098192657827184029499188925790614915638142525657747414551227528272084994849598928038067287580130073948790440312361054105094130363881918328366951620110254219853461681803722782395875536109330033357053477798644958917350963384657953434502811513261703608242613633138602256251607027929946902791038258439767557103743861873246791554153535018187728078501192680533483781794257374574447178678188096611804894768051686161748291393455934944472566568009339657215198508231035135151506743903613295488794337591637737041081199975163569369554779648827271624653205811147528961037664665338091508072371105262982214708170456935338387831267930661410170606427096647900019801342084107855800504055418813030664215754914256094081754239943032036085595817905527520617674448458084021535290505163273872471448684300327888061127281496819806952034449941093422761398890062991744681849746342219868482009621658634664491905121831326675795425416267354734648668410655453652706948770286317045573127192674012072329635963230336456078099340485589884649831496727257438364932464853051606192596827896006154605963314158066582266139636370231291497454488106960289069895598612753870838820544870331938731513003066068646055015703948714532077033772029609201573251412063258032527191090299678385146497081422488462754621328477639757998360289607626556577660152084419468239323530941438250080658357612289217757063892439119692136300191159987019396845849086582806753758637599814430070175008243931708352686542780679828140348166855945531635431947157024245335848348911254983000120348242796279223114149347891053366287735900239884478030333943657631060520253577857980439315953311440355026306703230114393984782860026021881986720951940072293924630531551257896007507200208559381781947444348057560416755483733200224495767467443594702978698717714890474697091388319843922421132814289693409282070414707134821880129319934139271700150446346702321262722599972963656823396761563357732280927247596691044394096449084904917843581029247490879856279480627875223440932535045547345818867065225892203994123133465516464524869147917978781238467631234529252308282336093114582075638812990010877349589806727444886509921776274754405912195792816703773066577065221058952113438856256381100420532040270639129855065316956092397078296223832081547645242879511494327839314626052223632673549832899462231842909758489818668960921297494383874361831258305482762259553005330435711275551517022336742988989226499969762478451654087160134729281030623838348272898421893157091170622758614161259436361496651964990304188003683422410271216987445068453215625510801687778036514604818131773285524300854551432781436622860933259072656506317839136583069193412811895420229981193569040023765588329181281294078702700183641271019176713442594014814513786457159143622647565357511794623294423408922314563727941348020407915065187921989502687583963007163807693245644759463379999947423914154697504543582365015770699931589997120014792341313757683668963867044275213453684261663296733617549386324097946768728802490584432139829193945232865891521591981836012155494580947875355941875584496705475441752034869336536890137937215480210084343589175757612102674871099337867907697241780727439422373827961142502126665582405346054940363455590124402764760603691067914085969046131617132532051112552458679203197629933259731154394977739353684431555946800133333399317155636593326345304072224730237428350646252036619051121821244404427906549998985510577326399460454752769668996056318181194909779099772424330448840520639187099991878910025020657922156960378385761916764029157643582901872755324990853597940928318551271387892603459853145709851993438297450560284441087877643492908758232574916161728377807223544961833157768346686174244212282838372907545318350370114416227625878614780926243868980494487062039345368158781059806482776506226758106341167797023216883614938454791233157703135600083388324583849696090811151570191475129078480759101741453019190089588921853779375498488986093511776009739119311048619012312781532944095301505828927631392232284994936857483885243945768701129364383931947054677420818282240360797170619701934795205229953060128478695830695716489894631369608347171300765330429688046838651012041963187250478451922051411713392419069540171351231917774486392487933741042044810941695213544167491523029158998107543879049151057873518396422953041800692455235090022852271324240630208291786142243562203866756051002124182659856810467987608797623082633070663290754225831331690800934063432119330317025467982011561389003645830753804898385941886526819916363422682683045669499128355961411075859026840205027746760196579958932679864452544544818339422169108225937002496998237882157343147273384456262377405850197441627516614844303158750532438395410098598621435298518505019911425038305927668516919024878909192846060293605982509319547694255547576254222433573226822482449971186348565697624702424409775663765047646264654639771114261800582475659258823882256123704470099349435319410791453274141277675283973600475403080811807336582815506410252601235108361153596532661442862423944507469121488557153410366407234996848524175203911192954948799891132281438942805608978984104511515140207425547459947612684727076952661686459218391431984616714420786519531236141779504566975434468832739511670431660849758976849532002374341329781123603738419520524071314653560108463224088641992627477915133529893507701358433430283188336376629939239657061254198753161297854798683256297040569011415780499128655047974266723007658835722428735331528806109188478485183056596765865821267295512592731839661103120427021932123858548407589342693731050552822299912811032699908587561719171430527527513517303080899335954091225245816814203119909356698661252115790782634337643413489035773533518747137418703145573181820708742071407183570577975529994709675334422765819464231112868678005292822592122839091161625125844428984280397600598301931462472269700767435167082351074598001878564332671784693227579249536912047370603252867391115967527195489264723231852528491555373330720123867117138109291699344476194889751544292074284555137090177651749752321161169364620952804991666560024365484005516996735286868049761647474589845974774606995884419162211126549217166335906136499586900382900578055882331862124438365402730842661104613677549936817585715905845176807928999234726762587984757877403441772674299833119753859906502996015475720627660416371205768055493484611252401898440242621792150747412064347226555729266142300898590905925110918044875879554732182758644247674547346300172432376573980538180875541452764792552485780234755996421567565708626608408017179256443176103119346232051551020823026067536646430358132546120059868129465131470783358591008277799270637090242856056114998849002746452721829075166997618246149117116652117980904860847309867854065017977585418603661866747080645426619785862089207042825817417809378474749435846811191011646825786077925539150640257160422970561617237025903994868066552912820985766599258942070192433287036423405419020787051971815070048061742737326333577064700221441646379139132982713567605391894278850657621015153527391251207657652804370589733555982763421639206088122631818632835530544111559177305203869537652059211638212717252534668051482806049838084586810335453724194429485655658053203293363983942827942131705735926694671169031290840040521550892367187778375608995934481404843488931538472724564478699589434392298007835367806397425490580841272299600905393914324031220220756672749362309375742818729878242929036074271657243737940734564041039500814081003205628256007742871097283019383388546521162474079641350146933626820461397575478330468366249353279881508815076384625577081867947223377403203497188046937877940687295150217836388239776818292653077238514129580476137001237816817864855246361084539510107950365884486903548117901536792196669050830313617631938239123059969996200291570800050396647196874537715006431657874061788560865732144823689277115724032643695498327893080262618077595823481182096457827989910619001309035857667328243538416117537230559157966915030262216457635365516373725747796376451459447447801952934017436063115726671139499927361624972717218417443854971855379297555823124082288995382578576035424152289775399067315334748663894380177879927444837388286631187046323936013302438169572216617895247686824182688797129030528638387342025879584651542516634403344845344418169093320235144790466349853255932373191459610867001164288931206849182765200931548863825262488825067286415836607092488497496933606089075063803257165596608277847943796314970650580925634790090954681974287908373369156396203042251558236417996085896821850228699041687585265272897025472895065329435578610852552936690822425292276803403811248844518757578736239013305977945175720776171509893101997998501211019515980208950444890211331882623806288539774195459058459639420630599522670925405098660664703457309136154680736461067368855594456637322726736792157755668725497967336156344356371885945048551379131388488815435831883632673663492625438210104006975148783033609507182846083080354012234338805784661254469633919660889649171691671331760913125934602057303499127439044391895170194732629757250081376488157612648295748741475526930043419806522224691217049818477768021436614900964662710087352898992245661585081717347210894648365334095198332356629421700259695923197024508015483702627124870918221725005012089440462657598844797023135555735096058881095986141544913325489280222687219339572247531636504302724412581769974142702963401180344345703006422805085955869186852831148819142804491927026017552275986447874578457037943716913334578912221725168085866758123866245119888662815910168642949012802137167491235747531460311808884302634388298774640383435735095010098323767971963487384732637197375138127957026528603110796201993272968019378262085156639364548966501988839029634593282038598048985698662593236877425358794598156901580855198740681153571893209369818224196146279535835736913186858991797340474252304772400263618565464251333470838913385627521595972545339591425603719601827431709843204091820063039773660490493301445590328380669660470507954635402128592923228414069839173491462947387106810207318291512080874079206570438231104058184336988110970670079420569990436226792234401490438244389748845154317143767140998379685044767117821600231880296766189978743161295264314344154997110418099878977813047314193936593297745346092029147403718049545027789447748625266406126320542522823934146180513481604087575281442688704316069614927903380534051930280483206101783494421412256794206460754900765001144117386689870043026884751016855779419167957288529736147304437274012475654703542614458016788961852261055895142371819510722428219645831542329351382296293875804638400247697007940259090887561020226499491270631417887222879530565799685870230616808904620533123993115944447572937215292108938945381496595462388729701350012296130404315170891021419218690813104573648930546466189699021762580861759002776059293344640160484898823780323537965598947238777036609058849559755712351048687977494952345811197612195535864597288319948744521487438849847735871292526773710960465717695661441726493208772087759993378487654336145629531301851020294276604753399957146747897488110015885111511509430755965281617979098075218613113221935282003812357821011463053884041662679256498566558983617073274149098013224967413581919086282240253835784361854028629632905191299711834390586056015205653292057694839203848079766717567950539768225229035024437812652461157842835607374592535288461396487418527345782849624292275331625549355125518692201054884244541238510608097055338809270416635986765618540579809268535920059230296844135346613286414619775321343116982835755242634339744062233871641526485368301133290556863536909255869599685262104439982924231096493815815107972131515801276303639764922283912703856353589779408320663919948578237662392590098882777733794884458553550146539194062594404494927578138453140893979533861970754679545581447148768259237154242372701159785826264825025800942795529571525595006772391480788230397484061619322700272593417520703268600303462099434802759374647133843185194396278754654624989293190293738297166634922741849780567728515283645303909808184931125633811541834480197874816360837836563592348228642105369692493648858653625242168412615333851961698408436477753500016477601985494847376379041278943389047275740515776496999789113922289034189715344734745932490198520579375968163787905604374259686232055317802717185210110581961233077429646333709642372583162975969997806520032702385833518172672810811053846059947307981943839082611944577253866636548699512846343515516042661728052664484662083829553782338221693242707671891671146243437742877082949810980010964493501547025528617585004401827520308520044545115152232399942728850847690759170200091167550734990551660383899443748631370222225263929650258211356861328324205998460118341785684580204981506608583560062043335808922954715730358015802208673004341796641738471215908438175262344717184774900826520201174480985797738571242488884407313903541652139718948408905737320751652190291213768906345085894001012874276220258058456159468696955728394566114007676525963451288113975965349572905264593654614991027915959239980406352515229753004235100731527664000464466186556734339876054483743027883697562556923939957821478356410736254308717076850499583500173544107569814444819322630373276962486937278046346390980786438794645340258073135625992975617489607216408054746248353464573324812197816950051224767287568591025494121484231946560477618275662419857978257574716757955214452527376683522925840473837571923927886228910519824231932636920254271119975652652234833030169811559607573139626204180733152688416649383827312267970088186552770249682699539047515411357085724735912133443189690277971853432009679376325545456667525508314585874955041745367335467742563734433217896221913768256381116581020114233805970962522948085860413398505910812052593069384798295470459473997559925579751720116974448138334982904671731286396825791964448648762784846344109162271327927370573324570122990354191685343006873014985633892365822539615559584994400286932390247431003131117528669019813251462909784446660665926148050703170192406896903812190403261653549623464975154662180469764375621766675733159030245700794149936922721721747967712154227658441369655620547284272730731283116690376273110301680355109789740877935314562774824636691469658928125146863489002802566393147628351673111698689360415540121147814367707243932971453149387053394504166796991069838495066514963998190903047162464953416429829286424488822281255809845897078677773429566786711643080058583529445168723238438141378465698502894482305013632070909343354061816268054946970957248392565491650978308750695902624370445630552685242325064497531570048409426091541216814164276066693592176178855820210115436246945448675229689632267204837508926155371440660564686279407848473526962354274131942481942944760677414810818384403586253887757880558882452466614230563323618740363383944057807944829620942261969905787698124058821837724526512594955061532263455145574552699000379982392091233246659479954418539684813256877906400071735750998123675457400091406249773792438492697595564970945013438643864422344945229301726411690837467066443893292832752068803063663539808439064149389810963096260476095019530368437394678597769678611896170284347340515126493944979161291311503261669259070373937941056723311296535950007982048912009546678953590297029731373916081750225227430682051644481838813144128200122693383741855260479420085319459518179563395470743198305582861688718167459953736314762209182922431669089926316595079013068481347748084532585611902616326040304610069144332869250981170285910935110373553041074105528144922005111362537428531777752998646112073807323553151665586085256616442923177218826208707152741707892589764126962951918568440208392079222798092158965290212224553203928616392656201789185711461093927467952826278841291470378787880497428072787432281947270412206343946454908957596671668445738922920829828647712208027931368165450085130713759170338641979205979256933553166260432690782198623494811721988519271123486539138669561399821265089742631010239395460473418247353344614973501341811511825994383633967841873684480493316351432915170420917536470155358801134935704021381554251389275159020574235060551778606644406089837437741282936374141318147359958098437067974008472186330145183304242874996178150514868387305103291807699461265299718344599168789902576435250830338688976478013656763551111047158563809137945632502913727483227116051731649909303769303180262584840296623337125467870225762728134461012453165011131269139757475034605924228234440807701367700687560547803651940823808920757228261661655767895903449467894221970204023730861780396593755746487927098884676988551147319255578068941105872904119632513973002784967228955156614101661613841518308861709835695695909371102225671727382105807497412569325470414099791998293462883652658824527636368898952913863298854053686030859663584533578325324568145667825038178052408303123007281962948994740755784376285299082962299889684715546039115277201165399981998072114868431017062477885848949791066748333382890842470947903730106542863120070642591780155976315899597701280864902317597645701715643984667902654236344972172475496503140059202133634424819420781848764928271934368083356408660146175621696739404810066155477194223406093434405754312697468212811270436496743747571415911350992701859339076836042854932324805726771621364507211599911610646738366929494198982847249975180284684192972466128888187627938670399298567750063091722490527334030289867643845735339315901590613977662838560222310406488804548568762358781284439459987383821609019309956332081130148776726241087808211282620187228424298803498775576283508878871516866771917022358519055988283477848371580513927272327829986251170557890352417911001910421213527895227440715948862670248882882737304003040252545300047566807122530404288132361793976640884053718113329520171361308884924655132189779426909244698753858004599997832520974874994213280615064053895023080111377034262790595097710667081471303768277254895731649280139182291537058103297529082752865918287422601616596433966235242520192656496844412102106851664490810028737762590554109603675885137636704449047459451477271746176258062711568440842089345161967614853515089072375315097944820331012274604773112725223026586228290370619840889410308199194079068120503545920611193046273206201436749480207904036771044881451038395389425323667103937440931765778460173400419376308123678214129297205661730968241772496475784320525835467198195090009040245009369959880562556139882804296752276189272835046923191736830806674878726726816809585076827905024069584371202339249889294476357592483333772651305094993633453525620496059800262431749907165444046667787117767713277746558652372272137890363404854503519296361276280453660080722990770039769677541569962043203410530542547120577860369921667506380521520888348876426327251927158228731726699221017227195926615748946814725130005432348568124891539587271185109194107125093083931909555158514345233230012872785017454470274635858742215748251032172206960766301867449591375610677989135822164479028940287709745559593728928011792000540589888046305994548452459199256548654441160342442166086016103593594680256037572784429352063577599889502509657534643890546435383753783341834842725154980933940541484323012711977230618474138171125822040845335386567316383209854527772973741213454668444297245433879438062774788137238137759539379007220465070600647834498549433612053386672631467969199300253611644599564666725936556942732971609202656791631618561919350716521725801186994156388909317767843610015280080796951588699921464563120422232739498962606094033358811381582378378637059397128848060260075712515651896071711349889804666954095258926258000715382890792395002230874837352624066235510396026779036393762938488098839678889518407168468985947940687673470438128039082607812837494275055785951152220048638506189009273542779679038752890812296623493321206068115320656290034167734263564237352288839429709820303047516941158956302280934201184318725484280878069840670041764902675592473086340606873600138075089390231870891004266205933949034812102218948170440544022807196440182128616434876116950660371064779875848991294274327258841406397618098755320384106406022669762849104631712336243253886669730975743767534181648348435117763008381694370374572273300886437996525129754985151025961755070170855839439366966988704856914045386433162895089517481792000984130517866616212109442098575695906231283366188151510111730867299638588719323232537131743445361727179167906338820552475598153819484996513319856394787441183287325810858454673349334218580055927142127239800632838486118279004933790646258318137001306796236030956737580282005237215835816935150816561197928308959909337685399066745093428720560886623388515924569568711793185688922747056595742079527600519121344356111404721310787135939594616295398749424107861033461103793134325465992082418083698787716961631389613997676084357575367513103876867617073195279618002026280172532853339015585488792963903639603507223832298855919620299227940073143158022214371628250177634975133539700053381093224287517364814992144042093206432064559149731462642543921215433335651321029745083207832409657875816745320571964044789447652824992968508864232042021274975683456505549095455221855006462653861273542689104308308823797797563065877349983427150338137379213310410738150939268522658741372382077051572839397081233156956550165411292713028411640932471033266806578644889687953219519151083090398963886161495274535078487850299704426843485168144701632892272531089343519155514265015675877766237561082083751193068527247007441727860996276913074909993779728083504707254228150147078155261414589454563162418648816090526603040839620881540706107989257690788457247347471103379896424646209834372324962212367605147107657333592291568908420955696049862822802502476957296848839537745957182596882170246728844973298292978076532795204073559271425688055850688335421973411632515630060535245970463159964053827902390393555680707543105430825765989807955921499668900457302552446143451489022273656784511270887910872633673022702031840451277480692709283411182299322228084688096682489270852434331583373033336088483492430655103226818051010217233193152112587892909887120025246169661213738833841532686317799078750285652061834175453082543830800196747216191654532420451540143735815847771536571825389777136263402443872678606371213008168957277181505281677964121777761640330910618645731125970033625194795388671032615328874120783179693160408152562706027240357214522977851850123908275439494854277902588811953158026606816627878033255327187239723932447845238474828339823420772835913017530738950538397736112058202346674639900947110898369059983214400756077471107236718944366414223495569849843210413715186343786310365924608922984929914788856248757667832068785945468937690569946601677450800694282792492610965170743137632647801813456752808496165132805864901729934275744381472820284336980282780128858702290671228020261484454174266420249114398911882288057727604181498181980734047765766060105042335986056778822584613348312821160839938216009998111882771607482836511881992264883909304590230251129132370904909488879797920420405007299264379620016375143893879812800089890128077449625383572472304116325988984636356606501032245523714121450708062492393393530706577691183760847175894701396414444860633298882339100812388172594459825674343695342799691375926577256127374529529866954848745260397822216469979247081395629714330083593467969540709549137491544797822036437520327334457756629649098217316336757296495494257162868995392010410345027451703023287618825601486133094467464347609676643110370317396028236731215255728120246749386034769793628786272037522086772446736418357118223223132238518791907464543903472979993236199762527503315299381052457861562452581411923462918968866908757085966451856514682075834777565868263432928730918285522912381916049286645640954532455121804210283402489783699965957132662781781633569231173470511866789640142209001870428720660066391601968822591371318265843508506846675597509620798429539647107739985076483667991851785108128936104624940917801359159805660817276526193741215661287973177465174456302027903267465224878794870999247804856775951548208746102707712769949776406122173789378782239475329849000045682335620242692451237719974867083496537380046674407647602997848075792661427347731549170969091041919526891199802937438496194711475664294214809091014576017227132316508140970561080785624226665666592670769624100190945311228641217396026354919447025533849183059356975589402944415550025015412481846637053171385393597180136323368132753734021894882127812771222169588558748481158917092813372717085307480073598134072077610124165837635507795413747875277397509650786811070789019023127983663970405726542975842254490319963734306535944385608980512281120051455367408304262886823755763924146615239747025848308404926382341265686975549389201905810048933299611358677527162377118287531694808947419623440931097916467541198392928922676450905628917524573503063903741413517397943928378510839379396598025216430347142672071394384382426597278867903024868231765724856506308786046013341493513214905049259282542689622360261233317717929913156364319262837778015882996620832690452226604049885077778255367828053764527759905614979850966420506177983331854509463142182935914541694759716420249373696275868777622542548151285255955772069377176145995980090664356159573571590610181015761490551274645930167156801697159877930581741692863650481648493947739908201512644652497050744856684551480925387288222059712321711440572942204327853071384164512426302729005683358542963267879096835554736941696344412895392151987984318805696427936601080799029611949919256145910331809206760593920242585208269935667413908218345703625379687097391523861610323887304100712248110322789398999046930086944493082390301215058019550509968008928677696994568284673029229235767824671593665260769350687336250131897111705827560552616640029619649766166918766348305428909785136015845267433032848322345541948013324447603134359886566771667555237544008080596026203579825165287001512898993788553879389595229826822407798580856786670956111670700789676964208093918233299747636103885905462829941938938734355288587359231412403222508007604217482175841568809310535541107869101796832266461469847213118974123524568524102514589607580498828800524471175045187763206071030767088297038259368672152708620783701019681325139924793771405198424623880965797050942254003882949918327151069431251848789037511159764537231959737741913085463725575936736488707973326954083670625399930358299367321278517193063413882966517343383192010871478333943351424163510966406847139095119123395645902873802672991819369024379838363719708738820955435628589627099817894457494524231602583322529170493796045018383946408217023380165293040359811434989309035850453110089595568643017912193648014536762308850955266424261372484998676798441467600321696234826263040356779971186011078391814398773965307423316970249199850161888239507925210788613959450366816696507850795732751709520332137459830783241021209438495439352062889794492032368679173231446875515153637359322575431401789099886939417400716717173771221755978629579950647566994554797326363279137796715288530315110033018963735887854014950716364141456602160681460136523587758712768549721647474788359872931883502296870026532303584154101386083456092144635104182780175067228067569696446432749358617626209028842496186272753994809954490724347339016032851029756338397605055917145264064501369238722849639087068178628038754709551995132265855697457691470503220939964235859233734081338843470233500713863059943948997169043864016538754927266325394781198965558865981483532688467216882253998964494099617098027942721010102560746604946646368659447951341456624410471120967035057272771854142035138026417474082819321257563510845816679065028242873544587176262216898853788991241729369864884432588012841204516591604745966217556551715809967724377912320247480595329461791056300797178752591745743270957516860766088603962097898302510945216779114308038011252225986030018827959888617143121419532593207947124954701876705149733277218996100928689143896581500088864640936345550920492583219175846732015922232369978655741390110638446017197049547272102618552092895901755336265841254230342916689992804767672883135504645047308033639643957497709933862169137431162429376321983340111114110196117291469687031419801153633082200382151956159423544034606429878317976145666786878008232348539778748927979903837673707832944964049610032554315895457124649447873094506031796944637494106422229150689479783994935276390596861181415778743286474651448458230146276489996824613492298773332619000675741450362456080439053910379755479251898509715522617904243197819263938790762696430852894329489340504664288660835835522011770560958000324986195868710408833095127036765370467319513557033771839957126389705867995786479771315474489732851307756140301911930521439463210473646000766499556792969863662757987788973799502009224707359356251911767398428472989810242186006650535382924661785661022891778630795353635158421724261831159770206506131038618884068520201140702195367390915173991558420029293943397749035662634654962382555764133975389600026268837917067153904293542236370581338296680211383173900347736470443316454333331592363025311733870868381597287590202918769626999369277213001355150411821228111938830703397572843568523906747351902690578708562835557452749491117566474072981250706869227271904984769898669601764720885511834745116679731122708370258159620041248448080933768597913356526380570768070375564869614728760632165026104651164382037556997874461143863729552366064824212722858335289670359577342894055537061039542364933069356019665992079573637659291489183566497097051122194829695110203690247181090257889335204922911067549822221296584937481889732462210789379082877853033277355540982039240301642980693765980022648978733587686180335880696852172792759669246525397096041915529866734604057081808696300783926889813781054938287546255614331083321079752780284866738938731803168239503275310121884111624419592890203777878636887621598340145442985728578971228571835669062775954207757014187571236518589954218021528162071443254414400783406684914875737448666869585100164324069552893233359814004904522607016458176628100266462861822099752271468925290713969629222845167854505550178632152657346811523157992301073811587465505589329852150997960118940210430781798419565157799609414938944555739566013134639107096974575798785260442204443356085264077899448132939360644720014359372985812079364942198909167240456658350252204764751199640532806265439047488784968073422220325781049412860332670077004990363473194419925282477770417482870033264344598684758855643471440503778851132659732306422057615815385948026413204289045318876236484276643917685525372377341197209975345141314909077439538221712623454349536323118094842056040593235045170385628348585825205211133454808907149446766523178193571670395480428733786472878551358763094144116718996901072876078477556789505410553854490823616316905288019261689306985853574995635737802998637533435569000353933412702059502373555421351995616723232192167733939090789182882582956321585614810847035998886614794889841346952998251639344471020699131263225642762108334948089558592123654689821737552825138613931217103592609695351696875729739089869452822627937712303040617213195079111325303128466571792051927295996699128220212972882789840370328794114698160344649207145745399243891393867491504699081182697211657117855152129614378918493637860299866392368475604455889557351714209925573869758337679653647545575764342307253743670981911978400961503640811624886146922688016884215466961076774360367996500119581568355010251107326365529379324122285596705129444912678651562192211307651872591253702140528134049044237435838509598953954393704244531435770691809656580583653973415089603423767149750442638665870599314793528144654667321346598105189501966634135532517525681724242509451988295551019960602532667710354780733435801614070258805196116540522694567682707842109478886682922814437098572655803688820046812124278560066598293490564333276124191955852094142495828046984230975191159591783842100610648055197323226635935332546608997635125334297227665677737018392454148611094220955499224009910852555560097419028329636662716438798769724548805154480915960004696115950324286900982562817617185634781050034853138939318889441630598428899708910604882164428720492972129091008137373691456951490540212146331439615105616926182808403870920462960784247839275129057476805466949806669105919238095361688476297912996715246965665271237998532130866040252102433191914161767557148829921363876078838142209101078008607909892942508807297079920271848538380683997229484054420477028631270611350278526529305961221609320303680359230731741253437363043776143447564332819749992862996493877933824103453397711190574023511644535251624098051254141314521549588514398429012930867480811775453778497566302094145883462308301059307271002764467188045407750369302572547640247162597421034691076664382138447297619962199599295025431882090342333355645544661161927062352958005866705362706169698643372411039338782091513557385848323849156201569482386575934786036258817380216027000157909858029697315754677651232147421512335972408291881446275998056617347227696117265041053832867509540585847693629456667417270523160256331356276046828019857659593978631291984523000829323172054436779384511638702383945531586792890675556636251368839892612550378996642741836006653564345605542438516975453543729822536872523695337149640830875925244733679615254288080633946060183671614455690286403494800421809546689095995851239904778963410077247603984944853595529319178748034767318899832241247546818582876697586466966416991801861136267269090560061847973002511075045388952328380546485087753790132777280229295120047381272115916771604169087145553556570198355684609136935360949469860550356301690151578895807195590803145491509238606679276654727130104315988877024685772371416105999493160167882907732515258239404920322182410106391102610618398512708825565767132550292454903296522584064038959561301205601993851308526191957180869389545419717111789124194172595748168352161639128295351386575934422120757950619705717828396888077297579298981559512700590786418326533018057731793364195834351657492167800870541502733117946457962285483965634090783030637126082412969964863050876771215140432330631620616193675388113634069457311586921820833535947603973007400204892289606575378572997686892844476170516174595861065930815518111566807930759527166564162668110597945180571994549846673946195597774590312724639459005366352891559380312432119727295734609723995943138059439436526926998455341818527277720391236978511630760955834795638814224827866147149163147207785475239573933669141975274239830553529711164805168017641813886386879698134918377851260555946788476477448669757974667245358674668482068481221535635882649403719702985272260226461657951457138742767401352127499698270220901594496822740794669491323345891807788049207232020088617245353788576484158129687624918958578637732262873311456866959708947394546169678058902649876054653506999305287852725889624499752959815282474466155862676876372334103057185357184042234960181722254032546345128128702526535023660322397617476689190243800104164916928430972868582407949527759807802586692348033229800600903871994184323692370292594824290449171179589037435083512719175374966444682724453173753433883901269414356289956721513301939221168853004289335093365082046037362539665897499544970549979125410302253606346643646882489830743254863575199895054020888303033581983244397429660121907322674049494427234542791249770021138213693784547359338841034022358490531944106601917278658304303393456667602607924861280539171332975397872629645526029898643227205968084287599650368109627504251294696206090773792845157081674383441723635511511930637111661139923673986808693152190630098646974449414173421592579164816851453167963829393599807444142983398445702025879351826632218671450276046431958649671435932987209493627553049070909300888470427663108967279321843156722705222859836239525784415173306088784669416425358675531433998667497371729824354638199426978440104567966060506105414733019494206446055889479044519844771962363858234247413716907253162608634465758243997894884923653427490833591385145651973079210483858159583035253552745355349825393748217115227331191556948275815616870378196398955418738687727344760874736549816276990697011880589239126412862994456853373126497279710217636383175154290338477516217858132174434393923196134173465514340797560974027758147459728826218593963859247814099404939609134724184634583669973076577419851708282541903305018299968802490454822329109282646399208397049398276918227758814153814402048219593652029156906859306605091216368668392752504597410840179314823961051981143286798951322793557676810849475699782539692425659257070557563969334886612095302165613845740158566755739787960488507233165661329987666583383521313597539452361794626576516868353690965788300594837918353503056016823573332418959710017330599060046328393077095371466133555809248179174511640913686554563200379212393879425640055835554122355667044225415554067214242552813084929005761043010865716955380299997583095199912205774511873993107801531365099993273076442294970508715841230004477358551378149220179929716142366134781631809951870875332600547900099299337545529954889041355400707451688440891189185124985176642852857681390772402920699783132223938252447850702220019342321254729145034325668578165033875955007230435264115042991941654135482791375563045704194478222656811707834807731056177696076604189582144707767622791776753689697193717674589059528019052693181804919177373955108992441394035227336997776787997684459194606881365770998304851669016652458659835381526817418089150481843546118644487657306373258570668223509068870348819858754376013680481671638373540940335290910256199026508448844060043139704146810839458843373295227706959849734130387755169573023368669679514260382786222378113712082598576340040871276981809291145541989137281990661066998310009055955899829619177685589563232650343095930647240124843239978730803224677943903779077627289965318339068526349877639689190044702499618026192457170575656356311391143549073944861934886544319416457941970548190353504847499306411391980570831775543388828900213779693630342482751696189931736649701542302464432610869313360487143455542430001447851075564118783615275853925356793679942838519523715086516425064746779133011331901359806505780595254386249607784271967546764811574737291629743788830355481614089937540503656158798594599902164592098450225521860341888241958948800702704931958318272540727657010366013453000506523017036723441087491768748848506375821852915648834498811057948390406789802947408865102002472996637181815203660348599379022457832002494932086826030115753422835383814549865683879361304262258045068934915767730361072645744311547808636306311183492412224884570973465502125434477982135982281261709471356735789072141313017535051013035255558236814550111883427072663922284784729467729163893154191082559532165246284971206761143675513601197158116963569630264832574657035281563247147513223180647504562189026970825040577274652279119121026223976572601995702635746336981965077436155487490379405894547200654676131906534956200782886566315630898622237490700206867828989744647592771186188918635820236172252173184914631768878890681013044043449534525585876007023612787868749390093342498163290677631837740731079694698726384719783160028782032274213573904690535349393944057545847777785397725743583277514063932017549508397136146138994994309246458314886352898143664134905143167770102796642030396223334474847415186487491171271996004653991116080352819141784786927258176508318852478735668709427870789482834475685261841066139127874754308735186523096117558534859135647413843986090462079733562304190662237932582819635815036806246494838610891140851689122882738514715379226952974517792551572227868300940009191997352709510310289087940823117851902306341822557772421526318922590627876435502443124696661090878469982669053325234290010683763332203063097152301843066716003575258497052434930253496220240895705037365547267232280483808438110966254253363762025277131521240383830354333296378085186467507835575934066950638789149991128061588190934647945762059783444733301326286375911665285932755644337060401702389818408245341420916971596323535617868292805606413206519417375604744801368922034851393800613700318669010090432279880166102888533627151519341514207346944315485079079898513476820470677951943672933277743632858985636753444393365671253836928723178302085070480409912744062476600034240323663883183909810824278878515792544400903782844783812595977264263225094471181535060548910787618216482868243198082217429052719299875178198335240474807724414188540671556131855487344084760964182722309374530041073933648611358284120810218095580776739468156790271377071313723196151020686706345928046838083860266425353420202109630065640642326140445789997160033177966033024692001947407467176766403404671295880406908719265941727665631544617099796048190958273458542603190423410305108303303418889577337295607358448876146421622477019669517771899520076776042559019960301661747827053234004253723027499771876442625074669925974403044591929057993309588526283209054493571711199248018916974868320346724158680199935245361784798325791301052681014943735397137917048686747479006369221176273422671119973719421510776400301407204040007417049679723713181268346868210166208820355509052449010164911007395025505572932009696059450654322184405345693969619264741191357244916914024313931529374734423606540927551872315211008119828097221036548875136737267785499283071939977147651091048580486864637811168973921354900257567752322551602449318695553553004682078849657159471491627688582307633451442780690707845843369021697678277584246646514101337536826450103763078247848829022698230321564557970794875919643012152531572799266429559182203900803835235735621527399306470485690591185037512641143569245474070956042717755504452491806980215576345663667512418980387915304428379453106024392620754767554123311480315829473772831360061755906499946030799810010160895744457722839726103004895306654826473818442618530621080715460742839264762127157635225778325155883053582270765718654882183935715907572636335453587760057877622271409993138525901462133814357662752338008420198703297537480607542411914954501782325787969766750049472140317784084648729607876980719192264434032427770461232857760629469299736145865301309729009697741630544776442282610985888698190285416525097185488982802212774456751766420993553048136896609589609443234259153349320173201798722281260001684124084623167862326661723950400259175027962652082091011435887805221005768276936996158540762435625029739252635777235562619686861608148493061761410907895027804617528793783272010803969899789666964992150844017841087093011687725623341915944575861806978559327368687866861670045576455282204508071562513478471267819164131329657287448551523011597489029881024385825967178692046980154615859489900424661583669636544984082800509362982486352725074267589088554088300743624505672882307353595753543453433124390228099854995124415734682242280650806173159090168709732084497689786735163528860733509365813046277623230425575729457796417164461251236010589648006551159974326245870019282321021524134194617852245570343559739513040420983578799441996539324227512468371803396456652678243994290965353658925270881155672493706331673570539992037088991709689709922689021301678661422708048125968780308259396866396796828967076301753326854514808541426534046351533802763464210474570020810748781584230930857237027514600607949387355546346663355897568232594588082831589776653227289388544573205230615216011907652314167357202841511462557261220391499470832583774654010611102650028506945535286822171196340545105482168591305921534882648186318970973513585416480687219688661778120020921848503561279599542029311725579559224882582866993998274413624006702088470653074373006877812367455101709684241344507157605951852587312417559251390015920679659828284070281920363962253090437338354538583209594729272593691596991398686760319046872700247170746894844871654321876200741735360446352417477640306563360466944470985962618286226364163498988275164720201591205775499226104239779846345249357422526019238189917554698921049171212306618554989181304491578988521825470625188963016103989810611104654549925675478864912571344085891579454379215926884787136550298087241416143843996111113456631688211699364830735891701147298670835329312414663611312776776665417143219935244559479656085878727112214306060531781041979896624760880140896558276415824943001806206700473153881253657308283649397908935836915556674351212580256810105162993906307963632129930744947143216851312820412935476917230002282784404835593573526313296387898423406206951321768199945283148652908187186309618610362523386788617931261227627328976224719481937786625669400989872608247972760548952669814604888141234391949687206716598165206570376127328899892602226114838741424318565654524563370154136214425332787606321370271830888560756984327267844859134500489664885508832714970599388729959996720812481547073560488066673646345806474451908096833621043498478015943102621528452637466622611311715770654785249271543384403483999075093009094469041580181647005011392472712245900878370445446269499575908573260030375256747271001106292941701518762888545631426770888265654332950004100957283077759852623834737027283731410909979975004318462586556287290132148103949363655739133286012007736659831174579707921157081537083044893436301625240632814849133145770406851145306233087002425021501525460640222982184455302978125446325483216073820485777750072364888428920812068237419505268103813480828916734967026598850990156721838246689884006084993634956663400168767042082051239656635901863510792965435130958672903617460569287370738599042402091427227496764105359389400581011716230517697082526020231617249003236418985749877135210821276394258779075139792260029720414607944849293834277434692344392284668968732830238896787758487829690270397019315166436987499747833070049240920709337188305812540294090341329784165971412640298613159696104341972946727396243444689689435731611252795051115087449821389494900714390013477870509786643799662114514192823447956567699980040366330986315628572592837906025730462299553155136617853102393673408497609426965643511498358277489233994594426306191469909008467335411899523570002841220072140136981015473092753271640958752771410655927837565577509980751177052153147407371654107429708961416898964230930147276312503563932761141768011350501127212191905888933205385521630098776882018044783960451233286586338040067130767064333582959621515966516384178574698700622056965267385145367582525927596146035943300425778273295294829241662255277593126995317607727151619089937357251457755858692404854034069122522555574125238563571163356593841507749877645677775666735934916426536571295420370178411613157329460821156713278269892637483185187296573467062114100108807401479650579413283336927889872876219605491117252716457282674053091672732024987853785451631010242112863485326649341588118379411665084070904814225653815648245972863699870034203558574935149690741179125574670286909792395124495629240737940895701470746748871071176430561158853700652067231612948524430585763620443517065389242292133737919447163350099303950574273846214182599273862145229234914194621308950200711414048841504918798577538983121112466229885730345408244689081261813467533126807945188705912028797128525749091953247824602970553021155319958079198897723351501655191128121128346924685470597030912094235337497280586325620590764321662464412332895544190226491850614060994073348602077768287451527787942513465113569953339043099916573051056326831449501009083586319388913768278468625379437218117069804884485452259171159331890458289032223346723897482803441430656647155371895343724109017330986481397991588049050573228469397386265353490613718783380941531505991529317634482972843154057934970483150233378645607197803877821930589455142446345881367467123810707314487804786734043843610942520853885271755617837770946066418122385027428799441773029055449013815559432175021062137729318018516126138681747393186751333245969870386684036548511982412893616731667011801320446419875536981740335791538171141410103779638932529018872286862721937308751059301782628639328110803241913224310331104984033391512496481582107680964534816773653204588125036547868105020506678182941210595837475617402544189379300870974577361662429150903553888759684875886319138394410571446802005009657795157169895163442397940286385125949449855189994541230726710574111261915128830270286153229004866362392796559124315552848401529707232448936048570357940187755664290664507294458190267990403347645565146930219938593549885107322765476825415107483556722465634780113491469430306892037091290324337343688438415379877375310778712048924563769994667444596233516607567435558293917406255685122986659295462281136303952869289274323805133935833153658644112512192580312609415759262055811971817024290358559322897053583809508726168371761473537014022374410972080863410324758544733745637851120942628906409974985784360479471866446649665110753755865217613844190841191125806290488453562718061174861368910017044762025533633403029100067620376520186570315243310095330452670358516023462210577236847775148833250034793660281958966998134623339768145764977177348401558215351745213344257328405993856068715158153625312639528935834677952945029216831257188231749487595056249291884587628578039800705681887019830064137602849127312320777101756783307702628372410566145352918658998315791854892629862570028241717087215727111029137284290043598750000662980334930635429843746518724186611190883597238998480857382641114700978408236060928334790703700514160696234067464440234924891808710708070291367007096371481907247852900400745820377669076238400647812714459771997516809217924470552745620099437960734611684277389444918465217015171608527160395846932129382779409981804005557438826200978196554770240974664788143340943754212041009749084519817004695536961133618196153624676861444437088041365899822333385136747089826074126408311602188245669736626335199778806003332837062745075865425128069723294077726074143971928120261945106370787392833480250685100720383114655969389204932113221291613073960825798465619964090069170641684988468856632391188050206208193415026373099238640851792904934374492126928423220719370492858321513448017867387379045010235950539433639050240642812551733742715703065961385003713125361110091850642686115695951911772062398322383414088346173239316364017821885493259118810073912185770504608409788861999819163162376809369454387561097580814420283088864768679158698245314737211195456709562199902486669295627741162229544580206465847616752412253901879554641540149801904823334346424297738394734056020025979060293150555891142736197810258787369616350697416134035492287958664614502232208167891579692599330315893781664941173486019010431427630570893721186223035974197750575863931919148557575239042402908311752500813821808057411147744838892385756865944646684939378820048108611841158966334373337502587707302395133025085493794497004313981738786963394658284013895753113463411082713432074621669261107767405092682812701187664378583349793349338136854203877612885713762620996474941265121709979458005517069613076904696551606909117506336871622798632246465234899123344248567195783040284848285402594005073423257636382886648670184767137098556534748484963598992803640770470387539287172359627089269740538997897869121302629702106321902796021807026655623070580724324431239294927522908211439612353592786807202615364833762771372086945841738442657861992284399842041575303118672221930398722289132261616645707557830336584310153173645442320858104715599735283757830544983855611831092621113800473277887199843418419695882048814886296611044435771694144078990431501598657188830143420265263923057866434339874167378739409730120108404722602338691809766954369586942728640499751946911806502667032691590595189814248775705135845080700891940820533985332582678842222117132796482382405490414491649850569117075361272399308871657061072547574800243636129609429117218246898326384958334491361900807080228294973460120435742944483183214369551088490343114203370609040996382943357877853480319614889257070661741182876962399446517840780903977727332518090392825608936201595294207338410923445226972110013046954512884735411997957993905293338188943700150095158270982052806837814504660932134291537088355792640415350405887503894771989548124979273805776722064651996658715592379804781046268042091894262072821693964048867387502475971988480260204730633387085943754027327135453200595262150728243883845222630090621318980668725299271761963638873549815222927997266880993995900483276379403793287017634424436965352536894777460006255768662106167713107565649619845063202222134026043543069487444806293186867006728099333085649367684647018806534644923626083807474426059640030814379736217047912962756066033767896769429992967530505820390555667399456067641330835577690127523607014502242782745727172504187800429569644069278393330116660745228465966018940367283226177843592582047649621604015023183128505972430167169735002408517484532418035346490525841255711609135539594883347086831300042931508198733552730398707305073873586010949284170014738455283406830587424951156732294567937882919372280397041415619258976886960449656437185202462066214417019067906429611471773357409179609969348568769803447099160026851519211592540318586262048725851425068257613594457683946953185172617149386013491803292016627944090166790511059283895401680966792378259846645255938249741447730650151065723486930083779819647106658193551406636952940837426907476146931091298197047431800049821839500822249316648645034108148495741706834363826901266905695894528438857025627822060985076028191352194320879848917886845023734318763389439012471919696724098571775783721316696824786472817312980326743055130315836424439263853932589936908997838571444205776861378563792711236078065404225683668151033435363412545017456232740495542144739607884952696635277075075240961945967796223047352998930103423081050264505066922814311282463998411711453779473771158222446663305492479478484038943714504303340262584105096081764421895265331089675594120514729218142433458591629346277566185913925087045849238477359712211999122506277679979889752579171344213406013424802850123479347980425534974063927047120666060607155072434620498646699274474268822765181635849102993211378706897992029531941242716755179263259404344340082578758534795447015470143025787285803348148784699667546475502945088436758426543459913945168903347727245083489965015985927906633222837462606272682350216141728927294509214450905054503975238225619325554372871296355967236025477157630287967939366480155114606783768020027378244465799098152283276543855437865650785906257815092524777645830501147728304123954586022495769744990069958708217387432305777024306526833884593773163509165020522292391948936836442197043908497890838444882758266489088915122395496437410167991807219624188194843673747700667918426355021886638195716438117434554472167282829730424706152587574024591577025896121918250040032336986036125494443982185790769040031856081763498193365112054056677904395106384468669744201590786297601987086750413412277480430675493897429396732314028361196634840802229900628451152449301589889945442304806633212740122700142804673919698567056565148261219178070424398465303182113728052789130898383063453156098885288917932972748699321476669943740414474181840175733057667737569849615344665463798916358856306898638041230025309926717650427384748039951836523010732928402585971022498066505022980743075055827251368223084052293497147254462199471429886528304084399468066187666323230534388147554166388061067052510878736353392875600009126085948561927020232544380754575845538341707747221130426512209503703353477107155630746044659627137984346037635364225646742707328516974415748282157966398363074341070730014828134714007740498336747708157904826218168308624493299833298858875606311978763685527275401518528693373379643630400529679156844269042604966318855406965463662212199455470447085824698994273460798540121209694686699755231858947275639117676023268244083851410980827983691432031840156907856806417167612475795119948340572343814529815194752832642976275859224696279313606488053203637686886132480715547334655819649849356370082695838338248814862101787497920019310154699203046862045015112371444876999498224996478373197508710403706364995209990149820586378973107812678439228635193072085868814394654037715233079200701680948296797175025666700529143414730209744443861932013394078035856939653325441490377115800197636073676165279579655182553864583031828768103091587402364978569701372416076379813447819738071475509198187367353838249534319208762448104587126686125721294041350039401948015121963268899180987418995782593243537368200678579057850982873683552498809424086119662556054236582734229027597554171521449411654717967644690021925154936443013966139151018840344445895863140617068485462126540798239163987683904090413742793397354612439571270743926793145616752762496231625903627515003101548141721641756554523266785480775085057670477323608818264322440093499839520091204198606733585635640723734987906631670006958734291862778190577146057913219934054091003739186942498802709121551606494267175772226827169946555223411525540668424993060390819015118034128024455347482675449876612170184554121921372030552473151525963256204394436282796907281190974245788874693719114898373673419022632205635594118276023400627686709837416529052874439299022604914407218844968619202210299820564280977078878345887872628839074598073762269109043463365510512910143474225595578418982557602697537122850498050589239276134487816954637581827549773678578685101422283870061413360873668054000490126233340820228161321169266950307670414006910401192937585429651235562109940514044678196666718871310612905998590653469668314341140036255869304005312957251738062292168980984801101121221720822112011740613100864132228155091332051066867837822441988016519472724219625781843700021179152049120783839832586245691821407920295712069945820618134139927863888678218891924327746012480844344559426793089787282882343383333039241180439540657151358141335263539243552285935788443442876204494322570116669158783559534178796333093311817817764983942240094564350304385342836783148263160693623986424293054735100538440873615839150723979587309899957623508023301041119658944020476039262336216812709472034707075580186416593261040248501344155234253082469987329754430123661344947513248320821915729029022144648426601604852005952045344517101296782792054900800261426960969369823073536680762723387368422000456548443401917417710164740463956170001334960526536214245289353008399446995592511576677273247734469892315785388209557938725437243657990330802713883019059927502448218941545275546090532359486653602217584439852867109954524085573540309471311066686377893138129625686791083802894644816389285710347893186106462735370420585008725192571781079669496568231339958796965206041288624506230382589803460127526959969118468483646537205602366685091536545348797029674974561684732667339978651397722702428060515052949645395551340494649210827948523369496087839126198495072169375207309483900437129863261884618405732824298988885681787791519665566494285574165896324118320928830768012685994549866716278846280092832019048533374019321024174313887180419930626819864898582332191349106232928933026535000383871250099047407686575717878598171137121630161853079440715813452689831783043237553112655670442507164530686736826358406171214475213659760097671582391143047996379197266665228121517873463364474763303741868613590334441396134239945829829147135294365806605776530191359112445778300846094924338999332830750476257238152881415693808755636537991906126916328057511818331005615801250721775824497635017955844750733034709907406961069016994567459037720594437500158060465089994834556101440727442333265181607873418275981955447923480532411312536922545066481204373999991217063766682230512646036464896848002222665922527252711360473082342675644508729620025529444016344405263644681098535372160451147889140290474223352788503516995887749120809565019712179349691738875536689607795516946217158087735824286596360683708281124731530073383564053299932188495498285548503649695374548850104181151614873116952250295428950581100458284542463571271649975563428015830743724829630502670069347014809287131528993962926370074630035454220663369364095283413675101060201107438575158188840467921656824533274254200674873087374670379867767199546137958943915941557015929641937860419114627015533313530582860119848660523515205595186899085818971125902636663640890262923163683618197079313884353824632379622271692480728901646951323421866558085051149078479587159151793014751617053374726097622957466445551072571181317034679044188306491029541441274070386245202592064313682449227320042013349834109531099872429175745465693057562517254370050048576860563142790779323097975696610574773197155026340616460421315483466398502392667689316219744000121265706004923322575062664877212126795345404771947404197253128956228576502165804431942329423313624819347803842585849788843197270757780518113241011189816837622602834187285451490732860477996218427284238753522819186393171527897013913572463890100254361317413197281328483305661686157608937352045933885915039911304678871928450255453657142918400578380443770066305082556413043230492316559473109851463822549920949953340427882712870806196943376366958422013816397616380619795141817307871486111636072921224267107980557190427921626738601598800103927504212720913998110320091392462820697444140173732770064757911263629258088258728193853064731084235663723259674095771471888399154340159744854567839279831049884962656958002046836278310413120868289760885170257366456489049287253986116112975956245187324334791023414999347736189235431842838334363671172600388976600215457600599672306270642651880350800134036664507303004905556095491247932619523684118505879687173298285235871065945104043344164851860078769535069311226301017331758121435953505634443705480382004620818193922272437336478465791393266808446748729397222800077922447415497567997343533758085274438421482751053609967513394787545064789758637959922708840085341115430129034087648452310960264595999124219930397158541531420980890499025170713588859021712686059865416835554147001507100450938706534051775287864189040877444351554136071966221930892186120162824004448328264327703424981905977124044011278939987951608017200913420021516812067313181071637250871089110311144985928997734572964057956751610692198187614017665396785377429739251185318808198597816038507188087702016134814293571431020031897210662598004358120513141875479148441841078587227312934713072194116550262721417176285270009497175292694669485414145151764166097720512477073001868321761010224302757388688281415138413671204630879528557056037252243693366371128656650450375990722705414004012304581331106167857697027949144685931219523629757274990834788054606229692597785753371029670961812670584188605897617022244604414758981624544211700378179564310738678194980944871407265680868258839132126437058826636496838853502984202914777136839193332563739144558259897836015069634643752960128021772838922163416016138854944264562740986397759719451282936394751816186203622125268190138380188387375979695295669435267418944868701435105939204515371674862345244435394241700153329848413945517948926259470432281443750945331366923160504414708700593150946765867519319110975751123469132805818842670195404773446787211794414844168398387309481626833837308674522729738969208342544400111871127268606316294068532702812823485667663640743895174311591550372212720289540503320578608424017400520501707070717663283282304862807738010686282225050300277288901712809572545310477740868965947287096766604428029037705190940168777836081284936827650059061583052981392148937105087002844109810533009386419117952917478476370084432791420869928943215207746640096675867003754648689497634958858640045758921238624882277249336619072655295259218064989772545569928123594713639259781243432585729987688539661206485359087089329808353095707347294348520446188185353365012011102699199630686902319548223038722712168358588178584162513856442296161189217269442079482168553116530671160529379806473669131887121434571852054134779663510156843864304522047791542345913609661536824812999206937269045524749606989463223933905700826863208128906622424538376700611080486840515367810019519805140286614480201964416793404997262655674560370492882055239607421537667642021436910472296562724386762210582358801353067949396153068011972192812499541110836917489555046867073905886292759809578209817444292352613143725177284527603185614173385464538351884164450628209150802494676437074677830513378158943525552014881023644651138216526566463523720950451007878188430428260899423822335562942474932685775922341234302965306298727137389881442364060641591482865129947373027815789338780556465121254768899992427072375489771352738191248476746261576127941624161958706800466601439848915732296882204978544983434439195264107635593904559144383307725349489378442405184669189900519539845699109071608480734505078490732863005316781415928152313912638040262780488229087881985215277246857498775852801765822643902346615308389741642900222258171857702916903764169571625615310639429130040531022242040753836282755237153159921008299748256327350503262900845871883629478268268945286635996046028886245718805908743361052348554218493289118621472817681409497487346919424455916040815253568235660618156700246904446801781494273904262330962704119949530992898459050094423900908564773531590009175779833707166912054810917486506085741758135325029220039593963151628950219490178130020719252345355312398698579178740287629978495799341871308683864315110464235719127590766675885434458973838882745720402243526992988278380413496389119122661955590166769011366869542198013292659699716695802699806229649603692518764352408032068325210307433266248309729766749694546611378451080324357541576097037726789118486440728149959490516623927424898113591752106904558008472019666596537012665312424554145789244546568526995169670098369706205822837241669826821266170666988510056998218708688536630741550827386973150565973259192369500065258802547192898810855436864649692436027856721314682651812851772996601022629230358873431337544425332927239018884300178172521603055458694470036661643975523410257670987100750612550984434911231180954672878358380471443367685517265306753811972108515017430236422671051906064250482960238195181748662632037852895511726921145437080157020117133784636110393909051759377486484472480170920173792651017360780282368178243810280892809937270552177436321563591769334351699055107040851483221388443703652271718312997100452620785325477681959270471763310607846345240203966319348174570959884526243894246554975145511965570456147396483399107057184588469236258212352409434545709735921230449851738868024767258966415150604216358157309130212965187338111161640529996063222137007597279146872584657716171771970628988841263265891994569190212062706334618654513063650309397330176135538817835760551527562889540092466979919349382141470164815680730874500809295492528428777320087369355266001952763123392683349300547418549763572570392188949673971733456006979736018609125693904863650856812823276267542738891069025432703864188916758745254138566579207495565706338317139824751091192633943128199300855194001254270314732912607869882725340895849682367428432468599091280994847163215203272348220305725421090986061976795835974383550128612479091892925683193507193391986310982859893215693717560561282428164267181930521016413798110656607643502738541512720242140360319828948432376057307082556891800391410409989913977549337143850607686261830375945096842615265117289862380323189839014776378171648395422413655739511263986211910581636007906445180562317227227899656366905821680590324154581827491210315336189928848333118613912208010818196292413266634469004670701889297259042748414069025857575016011415891760239190689018517440826485357810016549301030826640075461455215874632801446566813977308149741762989276667027363938747261514731981000893974163488008131509559514205929368848243310397347546095713719613309322050673564525066012640665134382500781777440974368752446562773171388532845520258061670732149584468996513407209035733195649498281359618646532776870441921318123688813648832799601624431753091415182824848649003501224654129165707842901752960412040154087104266787014958520115484090533899553817890988564375988977282084970699823627790561852085563124543932101320453987070558406402527824714052116700906904408311146819804296140100346274216009455248239794561759048168073100965293840083278138724378605766587421218345165385775455140497427635348552072477370460822680174673246639463317785066004074215654979313379470950387118502632983706211668753222701581213344833743875982697104456223043671370127334426846814206041845994297525701078176643828923449245727353868024992664815613382488081870627925936650342847569439302954097226897470858257659835516218562830465478763040457480706387314079079022094356356289057096712306619896679785969051017372395466792693983096116197402944653626910034608349202417563916007794051845190115507956450294273543906871678584862623308515174093870885594596329216712422613133834650853792064683439412415261321844785218481310387742827638488287798675169150560289498370245473672558103907585779698869642145528294013006938853917012253694023676617637411577266873094612548549539207753923093581822855835332809188281046631354263541484786515747307273970204109780614493857429888366610447304895756637591013755869252695752663658774918264844260898410099997238161257900936629632972044118359342418207999479227607516478121774796580856221271489394104271138686490223554933744897548810139843566140897296327139229529184026716896580979871309510912957983893729390460907145509737191972092200409981562657729753597426539195887036955051938312179727413998526693544727008850550810877000100165836322356428044853552166514084183764092479480417806101076578876621720553212901523136045190722965164102554585848078392952841737638497340411370021005709805021233408109775813727835253454944295570141471741168510522627561706220300211524278049055138942194564870743061403748361183064937770129921987296133304138585977176684834558643520773982994628838039536487408758508377685792657999796198716897085257270681212354405703039692944011759675616953178587587263981040831861293135337059276209565915933407838945325004603867705760828835971412958157274779103128287268120752551066913433597586272247008812527705176806815644984680433235915551206207114014894795562877580801549074143456234336183592985670363176634518221952394269668141907324948569885629064672373596288636132852713433808706113253857684925991580431660813929328266696891738690960065759886180999832976704695115823521654575608775610836236489588755272296381927783661468723088555096764837788094818872500447002688733707207226403069673588487728477285006216993244977903782498400208599667324064419108333993069006127352297904313820102523083177675665397338856526833904740251358662557317271362520739027377492979547836930718113844670444024567623195134447707335182453474299558324365916435119065935568365527334935830136691172863383447486655621063668966503401890644323919149108234152198125469156050574478575954224306652340543406259591403328554873230036212730212609727170780580251074471228055991052423874824185782321892018705668065578452574850955721518157053784560585863867705621182261617949192880103682904274630262629145912735080923056170533453258839802905451058656208083696337841321492571213182673120622395101964061423006183091197152952367841511634330212081331086433770352052539059436755236711542125964968085250467525496622359679646072982011997317333748459310069584945334187379212484597911861776654659385643532999524189530112637719767374034029355778154979160971216943019623930900024376753908954397069703477896149193799128295571380841174108665855362519972437364435590825092175500253034545017350008747049591635269277389731554474200026383753445028623497408264966507376263659026692957637777227734020046488511003060049320208343196210592910548229712789058710640901385880942593163736001308799765869150139975937736910761330053131171809774493937350521584080098396790173941435219179874854005313468358331830397309888371763713512615889494280770557245689102279773917629838445406495690100641639988887754902184053995482409485098583574225721985877718100965311181327120147619258793896804654367809283170251626243101344730508396500815982482134002254408166075931602348153819139642092324785062121971154837713605013006483125917020893340552373132704373413316059183161555376673270515250280726190737945024758943183896694233545339169950797482028024064128814156671823394829562991546748885338543748340219604321610412454742366231881853446758454755358660837248451472648308736079137772734759711332557221575739280170716679880990679760977386739420256258887999788491344798432071577627212683715540663130174916452963460950406278097398701577055874708340778723494180577954692652831144486694727267540741606532609795149602307708181821713801828224052416600305380173402469694942378743593764466053218291771551723230157538814239487960304933917315832929298374804103350716770441680749473043588415112453743211556580119417201379409548598756593281040180067809224513442573631101069540981527162690728168923416392588481972290052315064620642499907813214201858981381481231532812013081602900334684778203403032044436094130084243675515473038139900041118796028815107080118352196260191686785726201068135665873022024675447389776109576666536040582335346543180815484260589979434133226538009311421944140596646399643097043887570154826071170402644573725675303978931788749761335092338928188618845843318341158413699157686899074866809095956269978275010435695478123710106318323504523633605915541907580137083556437083897627794171114393651148109995848381720972530403457386347240121998133294768141814649623125377490120536677487567792417477419403208337564111614036890659341812076978940392246027318630460932118561104896506405459393985129499148342904242455216777150856684692819843062403432064402311242533784676888822229732155468904037821374107430418002706034809372901224229782438978343277892915204845103743296432962134399478362638213097896435494421217311360868795823842225762730716020419298042290059968150456221808780837116006717115350907231206987206988103244650504887288768413026533945532946637918458359965787146959122253670192605502546443973688378141310857013771622348735689862451685862514657579776710793002165946707958222209898046237798826123426075006526679505554953685014097099732397121046316933531467060637665013104637446569509049545563171852411617196248756322576906796412145910555491834662818633008156450988594645639300811786178184525339626090607444761692737941494031938512127166645828558020798487311135802208278154665128945680569971311368038812468470800679771385040405134452548514788425749253750008746553627514563381345302120854634003366228939109160909567534940087869046853744742526795930080384788963798602504138202125834924259942627718184441729478626294507105686861901961936695153394115537082082637179276796748665235934364651752949092565677277463628578502265506442552573714808952866996488728483784206003125384534826956999433738373239637410385550521892985185596214083556294415992253581995951624378451489525334896603722184076459445391765173880126003925049742066375661250794820782328472083749048159017155323552975481626725340187738439256889592114323309965837747497696327551639570547178182458649793438837189432052939671889845945082029132235145370302281848826364071417853261329304798499064455314685959904364442870289771619124496926890048848450656966289704785368546177915096126781087005817887055004037925255796063982135773249689049286327236343983350838309929226684120199478374302375189158154006351440037250851184834701419758652078116869283980786454526516507582752989071126402681394299551744609222900639436550168597991913357649724559049483335857077153626513747525274168079657841448053991257157473953289773918937181747370411882727276251470757000370869980017336468217960843559149154962888532450693443340588164894737818005818971690089949617079824087906420937504233300919269752086258164088373522757060264898181951342105901243313952666672272899087411219180002767083115400867666581769201822630065194630216901114305362860878833138882451175370256630897602486813455636075859989958773220034049076452119667030415136312631199497689405670963397577359334287399395754817911836947333528390381599643469025462618020678437634792015613411983545181938491260093120687269517541343302566024273720763922718380372794296201874695237443541341177440167230581682600227469933014409868008971094004448318054540765974055169731883307360987102169729997480596267171087274138034424742196013783358849046858765629023906311041507769367134731260151428212239448559965783299909683926582087846507817533893775023538852860609175378000044186358082440144684747492213864442163334297064080771619783695707729693080124753379612240218487762157719520856978180439046167565753753557662734260625095861653277001095934139001264738026388610885701058098676532444046510351104908144942739764009866992761850340318829657629333206516136954943264748091049820117387325030077776555899113059222350038353494681946249977464498010121887084638730200237064269838447934427865631988651896839451803687522187364550063380706692725335034886963981459128129252263707889332782346822507826971778762458688700488108010351680755041036626744384533224521178324451951182610366649632191427026920422048508725913630768000547786964333804591536661836279815733304411980782726231719092009643887624107945821652350797388297951575756332900152636675221702400442843576819405784744586097770500943032296281519542243697343425302643837891148516987666840159151281735870522821876094077436564306598814927262548518964490757173771841669063168801546312848865891458406872007963709133289213105352362488632450681420169102232085677609720789052899330921300110509292139994693029609199641118560101752081326186388641641052368506165917803760985437085984345094878647533120754892058023678407671832693011999561274048172578322953668367077522624069116387638636444564492897378349339084922968184619608716499394478573699502136045917316819333890976037405170717086339825863219273207657342733738239704417850850647710486079112975897778661327607350524818084561334632541027906840279164903130965804281850435684397361816411246096233825521473679893084907211607034449358022709858746023031415535638642840189890564521448631737605708455052256457185225979711605550609766549803722914134628513250625948909429532586409496794313992871419223128203466780935868411624019648280661906320776377417620799062531323273578098603947427363518166152288924841094907190690429132094318868565170306674438216649089967885354336552520263853225943535645412784169134815538446220634200491482303921135446397494474557245977917856074546104380219942233194299657384727070161887241540950566397108177918671114962265947319759407614427020279370960937224879266710630691420170248683686972160105034294156692390725180171882640428837115434723972612671605945318581404144063429261650316079931064722577756500191248908263944859702713308840249936520414455185709702363438238551182999081976618660216718903773557314410112913102283843506770277427398826302453271343769873758828739690406974762081003223127681363369248009403530466510051587116093303236753888987866510765030709491484948294631469035810428813350201251336745504852017275006642908332919456449693320885652003681350846767628427427494004083587890381559417230342249313534599711722180913022884812790423800116256415298158130499861394479240382683756661126996864613049600022679973284578786437098338114617960341902634804606813391192064462573830094890140325188994835796247231260137048889173025746074604773618789261743077491501882488837536496667050021183618725712029084613377828052384704592400428800786305390980136353508701943700179068549659517873469180543386397983302600460740453174548065629672084937858044079814549850327197917192924636951074214814286405352049086488552600491029067479655435947923810262593737176536869408567831607691489989723064111493212630138921975735824323805470061043266090136079678441841453431882278962271396564572191449914761661014334853751773551650688872325602936066209405907023466891026338400983733522146660075630901094920563834983461368094338437660118504950523241839476057574949102090425823193856631148427119294104401860607631875403837269826215656051049977859104964407455691736368632704723102632990987708547342043479453713280898730706448363605979469137377312922130187438654087581163124068917135168856658147850179610938584859511860115891524201437509080848036663713352778667875190597805184226022879499873567106137875240216695945277936047600339532913369508657576517993598299917220287908162611043931163813322961877776718449417277448051229704413992423623654623828368515898631547908105590448802293644799667155924646654758481464047949427301691701333819655002221768831083221604775764328086880079547272030642213045028813075691744918619425087311874289828516171168235183791452954694358810531350324997107845329421109498387108796999699124778802191096731338674054247266659320211327892618541145319364736609971313613722285324687140107474869478525389562262222672268888912006496863732451351141399308899560197083140403786333145751037303211407774429692140309836546021885396784730997827240574160339035461825057484143883796622139178599133611653250285731830304337479414167391114118294380739214876107550915369029335927350335760838511713350108012436749830113693208192300123344008671439468055446835628113002404512573156022232989098354852640521567643103965109913310585949413212627971866680013308815044160884340686549700816998912194372012861010957186092226097257802867219980758573556316204605418688066296652670748171947357072885822084259954414290067250725591051017874457389096731602665808533398271756592871327609168560617761618334628462030138850287446328378479249009279670428841705132737809971609298669785603703510424216515039540034600053107866085991498616770441029734771224058600903895502870020985671568762953300014395077294856556449022403568738117374952504346159132043233071733175175996468037500709106126097372005229934273312168316735554139086172284819842287703389737159141558553800266630528374552289600862079414200333996759674956454973509956446040409983354716776492594375173647519975213138382905945289169376766069798943732741073166226729496339327387011257781775884900737084989658808269181291092596827899228100161956668158467432673701476323194979820289439152765228322777814056570669518912957453148277202101985880805912102928322858619205468324094476229727694780731134816636020546568617671734916512492677135910023730597913881292163833837354414209264379128854866434938659053120763805386022592359993711551595808932603944641405119742614971466766561630489440945341165598166314108117655470503200494009807470267789467143509759142700533312597117927123692352654137781349873822489564528080960791204897149094397801624124334539320770744071336672858499401726035138922049565049770852113637742763010251605061718302942368234122231796618877072402548066083777675601304324167660191185614463089349513919732439990530473566369090286474616099063649849870424062823913064364133243115243249384101999326278765206967187596821670026714895184724937978962554630631571950142068667693808725896476798439065721282098129016050585596227462238722119157027774823121816853616109278559491032948865837466456353008067762048193796441276983217784557123934080609171576224539180031963458232719106570824574954564995290236589456625433284499062527827628336824235885854427046943215805445482940470828549213194343799021569190191893739368270548168701219315738898131266231481647702467362325886417542703152605785385857679372675107981371545834305589256047897725030409813779520328434788982435189219031775870139909187275363636400914681511348095574239370409967989911395035672414409201416425229162918652421088984057754938613995209159082392019520624274884515267297802570938780423816283027407418944446313031273533886765591762268257066117416009700062580975508388027177332549216831286090510157233604681083148429871098199591414495773161930487970387410051672933446338674438974576990515508768006276774910406766334939198860721088243809184071314264592993978144347285795983342844742332463951658668518379574919650123059790089308853960122815538092717434947204615772001502039796319743339516069574022386644105195178423923839133115514688107525489372373062858133825267641660822346775580747710586658698180623784552745850566666715422914844304748869640221812401298344040614256540153347046235472252416970837049051892655927168504155316524800051548729669361381972397353072354106388813449163931767010785804040653990412320990290325484167133096446936754298361256017161363797463313609911367604242902211002459734503388553237198325247987848843937074162508582029073437633276690176412376199573535119287504348141647006237361939762658732511073462515306863634262622284414815933319477603804920618452650692908597937166223042724560322469671849919953712904062601833136857266344373086245951827874168487432580711234164390122400424007342673582676032793892480506535259201580871426933086159110879011057805816016889606493401693112720120752764034789530272596289408001600348995541058537914156083850830504382188554610639648410480980031171701039880079080234698769640677850895167867047321547971645228045448623878580977472498737166448728077456241243412267281638223940106474861708976666848225238820190560274437281970916324409033872212344528597468477620854402169157609256222598465665259490551189272998219484132076305508301874779580785759603198291009976268814499806244904018337465876393834552797862412509240499305798079348817803522716772888333595279433007727203785018186763708178657962096077506559800273884760853364768513968934997235973330122648416907316681686223272785238596275530555235126922495278070142179239147831340146025468951084258845677844673456331635874551328474328513034145013313153370147599386276901438461608016402712267665749572386253879962416398718875609299665924821365773895314768678544704895700670784825608972618463952562059732110314148959635979075847204573128432982899170763039597825325304186221448603651681992582730948617084519488378576763619982455511393464147173990570685630346536768334347368393061535543955239628328892864365555874908319532977950798318820292076755362262231243719663943698089954715974721941710079569853083692949607923077899848488998175793479088012497549448188472246874051880543009159411550147988032171048665165686229904158086114410126419716869374356342802541453830230791027720644555246194013904197273460385218561257134093108148928211331660582404396850618185315615468245930150593590928283246072489128922406558281601046303134986309314003496668650227157147068461539002833427189635816978529500539797517261357221034834001192262614311167815193315976246532418042507477114899847580344194691259509309230846965094205272750776547462152330359849480221686338813149833443703212865411684073919255663729756831402151399138691020539697404337759772190326453782448547432531794801795369401011366932684362851109728670429946651504389926982927101538748992957703888402446584960302576643266134325706232848362219340464285310879161694543417047274904651532734501289059358956237152975387168329891480664317188756006646855858165267395420700796169546627745884146560026933175649469813863246835984393386485256482206192979877516179727132324248921511393052116833036281411736323616445054637094978190342717325457285569996652592819477234797581451971481357395116339739197658740955843350829265171455030695823000918901870029738075775677679073384892186361033544324877999717894468093519067531651654820523396296475991819833515266665240670225854456708317874334757835897178959540634367416154243636513110007094722767945217106276248826464367141200022317548518677259871462284115744576813325050039083057837460002678670716874458841186101160105896175654226031058455299535369835189644076567922948843558080592798197011909335231948437235808400710983654027444605143533528152226265516637674114931219525619273946247026427187433926895236700057783417460732115851713934732233446250800166948613341152249550158942377580956664601019233837953552620586518501624692352562507414137604926753620438143472221553963168003232159865650891378025987537719228414023029633025188646441129351120629843016100868316331364851345687339677976201985961772234287720527331003417655865563958796779446412019720767002990952556528614152372096745431314744971897487087999791881463298505389426689719203337385907662474178616430007823142090086434646725589404390674118819413117425849129588066214084671090577457385409088892195736271432712188486993627280403831628258172675696400316726839217555489932852779473425599362838406635981364085672156092608706185787386398340566047046624963583936410367904533462364165540810015630216763202979035982268030307300586141740542413907644587548510217163202226635598435778551911810307605460334131294328416940171479577388491606689439978124332364283998743070825165917117273924000261975128930620024215734017232043024349863186224502843344795553761625934423028401792872196970761315671922788364599304693222409691935891959648579702427273930069048924061924072850067397015705041604957956432897469569494308779080724065590976525959425723557346911536304900099326052573989611747569146653168601007960436977946882551341734919382623638110593138863739641507510775330698622457246079026299408744857693947291420758674011924308250749017459353536140432633439225769758068950948006985183756441069328269272154325565514519465660492169799134549579532390438159017882189013971181402625912904754261382749485868567548517753464075236737193956790229178724698817440535365515126020146479107766843299162309819448767014776141640976180434714424638066805066566234153314953788521495849427704605463022120919463967068733106679980183535735322263396887802508532852569547810413154401308583657903390655047413372846941165981415631521423292138602905932240911777119882609455469756505016245502787010151076971686106530641786505786259893625501203312904981622887577894018005211047152668944600209217028841986262874563727844141810505795565245613375297905659132725319085647394184018024199126057149162423028940198510221891634186807754659894257426179288558759187837861667450399934812719879074133969504067538842354293201167848425250154672270882869047395410786788895058371587841185611791971076903756436150964750800670326977247196244821509006913271254993152247074132606703283366680787749222128125403889591323125043975050879666908168908055404096633065055671739041401223958597856632127754910608417042577323467760655425448636670290651467440445967706463477728292382426962543339740908246051685612938570099529885887713637797872200635350505100911452369751151464187593832246083171813149540930178793896217635702525640294274823020067412086783235681891754448783049636188221881310897850566681160690615190147923837157859286639254140323507610931876016549118387941591865625273138064804017727874533117926315936017563141544078050696870592798992424137300199528649387885798778005427617748354687875947811938934104651354284542025630605577436229082723791121841485824059781793116629210200246120773820892252370081081273166584338112539198856202793334654002309415047036627061715773914376865465145864181177340162872216093110270936553511190844892295593799586482852831517013416421630110303853130541116856121822577597599517745288328750000126227116332582222432767751289774052140347266331689780791694892693897860204489970653870960767537033343395628318484126540881211032717324958061789326838395772664807735265214027555594605560958146103940023587939217693254426652238187380508207151431796423538827031129303885806425728979327059711490962668273170667809492528868164095234326433204744577836969873436679334432792266096148775102671621302143840198530469306318145716576372483551143767241293135859652841467379340683444555672827481398335918956484754512527602157346452151364326594636472164108270539899699589014396136145286995750054863884273159853569587477165716052603707782015099881972227043958331477822991899072227566114818193349815295468382358424809723936433181736160556096362711705405953609627725142407985251917565058963157992693466968124586235565089272947584544094249622504354370520096369985226400810937002197851829864849540962301742883527522393284235555751800086090161673358829108260269798004425209428489064685072757495481273638809599130544909336807035691085993751360348399315833775398151255690775710497566473874791590284281513573849671678077868584301309618571387217568630921346366411710830726474487908527236001454686286554410209475648216281397784501483466832378679490060015311816995850056973801961578877630080277016444638334224768755363060250692406157560503942429778703557931231057918124777369819378676543932642489013814775966334354185934128062779233303357545545522928101641813153988194276856368460783168941886619697950329441204881851484445205818381683081752785157029149273773451809260409914731193634355527932489396298696436608727717002298423248232177429946510418948698578123597953391911740543775420008658741008524146273256418673019096627146531990520792071683660422714854980052728250416230054180512964326623203476517118054290692056376019648619341160801215667717219167253695954384577205443678015480635867525445806660710983972840418095489172067320956053638418893380994411180697673358461188171723138106137906716998215819777633327495747289671252904843629530981687269575701415401023421177954168597307513270818154395749167832770417827380186754586674599613790696508936101281338225636990863652748985275299988417778632704037489783379498306669648136680378912961554186945659306188065474021166639340167136892262558724955806090506342503889743606083831812971728660211926427905213575372055642371816360335839180741646617303507384779825561261851427729572305478905206731725375809640711338195571297237520216986147275017896348627754065127685816792718705926277116924536184363835913640601983196107624717861722139762820485679609686204831995338557253059302796941619461060622216996905395440206551638355414088197393756185336741424654262633245720269068626744649157836224870939233535840381336743206248105344954758110433759446646649579908746552004592678209002562981422104439661861292018129081938535613522947718436563533908625677781067470085718392068529452617436500576236198841874201738544785209220846572124801814539030440845809499763237189272703976427185445185157116932816622213727832447614317680153658975429518378031852436751643787900060900276583346037041485085631056786325735576451852118443119138611394455828331401518018193144241817474923193892653461376917642010185334824019769108027720922347538821025222014809980613518096385381221972265632396705774305298901342663097859202779877042687982365987584137468808621687480070453728485569779267857401818879628904680153357685780108399403453434260408701567596512510610304734990129632832126761146640561858928416122574762054642465279652996619085455550334297839719250062139732023236242429925086908202080228993838876242772942072321379881885979855737034862127059872321808362024258435691342701883279329897307700122586691085812613399957399304573932365019144209657722935044351613864759312264542886097112446455562719041783450106467026862627605970496748319402190751287046825595543879198375220989975681030250857314648096280707123460548246746454347137626376129771459825137752603146137002102780916355017678734639483942457202578815383588727439052770930048158948007482011215829926263800505868488934042484233641780206952579082137617512076757125035670269970979585756960202751922113322669701289757543875602584558629023000209951260351239800005883642605984299333884746664195940150548277561041686735300755016914068933866222142479767973843753603971536625109363009892777567107432791310582395176502270475929490557315232040294772739716943408572676415688561690100735468682176155190433240890085967408610717404764357764929899241030340115707295130147016230266802298608423474936205598880444997739082077548522929846929785980121862853408176159774767993421000499755836534526813414023780699659865253783821071005682294925808430904770127693640997794765367460801692244489194692530775430230589232804183028459562957918608492574401047340041084872302212647091188519717288331558292164061199848679149956215407887838858926407568481902435509296255489420202230939030193574670185064611199067496573879058029114625354719420229334319303261814031419871147643497118336120566664976546898810931646362296013242734174612217330055805851602404888227336049242447366152971183362784182236261427702269518549795303233239064768753261709710422535315663483731847220518594037341445451724894986087124352615798599804678527997508281845373310001716287428465695519686332547752615047087319384242992480634692308591622046915322403276586997100233944376896299203339396949993180011193349451598872679914421028435110950121754207877035613956043042895129202870405069230475311850514708009559357642333813338135615980790836122735872526438048301142465831070532035442573419439276559986139196227513431502322595533065537018929961444540653254924919330490066794220881882000932412805798070266477924293780057311628651812705349625314930467406552889822506404859998941527006231833340333744709651114231473054593447457465394203944290363081380824407321064661080026343608843345307254934714338247154617194699935728852511114962830753131897984877797901794714704129411829597915786888544047102175075325123018628579361507729724422265153254086354816051275959528745533340292209066760928730446866124230225242159296101891050899633750888445917276133170880802299153218428395243883583241870918730193076084781479599303311827449971082763246469225603664543385554339282189896785926284157270115241473821378248908001464640861559743420915062455713124409775784209329243129169618968304240596733186529458486444809753638481821429205869067299067259575423183837803762628435663305875182422638908358987711245609921747359051953497662980549063210743783621036257280757154856786842653764057718170924172840843293777213400945217761913101966544427724742063486204153687550138146370229286632895863304690529072281627911744836712978500849321574500086652588506698542371001026738192033826060318589745182512473928686994313832067192671476876912889566576733724695205100227711303046396881203461253614930764549839111767051671794343864309552946495657231870549989262953805019106509388527333348753683598129724847134874265180745893848127445043906514237903481596369945425240259612805643240200463305302453909185779462754244504519669972227515609653436809518448030806157846912995552257491417627775050899422182435165326598831728943954049366791942013116512791342476858017702725641317972077649403729827011077838738931467542310735228550519583036287384964932509708299368073257075383702419899404356513508926538021517604267823987508116335245347492574333941658513502573368174397376738386668909802089264996530724850364232917209576219548065224829855880767512770393653538456253967404960607798211888910145252786037221739333797166892230121984262123870940331292318208848188424916094666328149587324308277330118205762355634885924042440747223993088631137602261962246758221200304138740754553266298496760548783630011321049434880366830110748384168910307907930050006854367895423419570492199223527626307858783500629595195348485028122941065436231622402802232828889045113475763904983360267990942596919612881948722291906434174805548131593148098662802027043762796261427508038739072685371416949095801776600408698103257118359030293291498711740095042568738349613986119849196668969102045518633021980703560545342434320997170563347998424882249911641222986983189315908794865213616022038049803191914006350592397501858850634343301864528931528699422975486064203557940880951957357873692882633533738473011787138544147718528512844505754192046022228329220064887280490915190093926510028710783925336346016269043936763718178643091254885275591434932430384511431244019722817848649608676801010038421675820958449933163684934836074266171115822490845310719431724147896674804521305365183938207177214601529948404155145853072477132253216290662007982491936600687519361358243488753370192262645710756365550517258982095477927094181907751629443608915612817987379661485544596462468461968846830030102838243017916247864623837147834626249710468326722168392137512403295362155950379278675816336185409264049024329295797474526579630020691161938905639101992206874484384561535572929773267266065817631615870956517540144008530766841398859086411121936711409208035170625127393868726648666158432966922653024690922264954056147224479812866039765719942801636978462402013245069088835324812083357554721798179598921429823852924377397838915205098143119622841215834203100675193782297823949248381394589955965238230615702742769818208167247931006889958813615132989865622190891977629247999296414600698258734657194479497007066392717280505109495358330718215443463492748326651886487806630679891178544273875185039440787941155108482061145551516895719858624015202269960340814787839849120188251153252862307400933737707186250793615493478345995953128644494300138551359389133704821944161689186629210060946399580095101502196344465189198484312412244653380425396236728212054835512913097106526351993281012406291487087787187408480240464832505729997169618361025464947979161221622934552090928868958944251818718584391482825751193882127729005681535640623418990055282380956107826670689983075250691641267885177362344195642368105398259200799469023620827712374821642755403367918771386351706795798782572643574778234040315089910948786211153515088793121068567217761458899937209794893658309757803200560022397448778545120337409901030188985354959822988268324111737129088121238639821821298934223238257165904497945938345849084879749093693361934097697347415816103490665523572002429306135471330399183836314565306929402663048564769485520474155877018693495734073862168427728499246649373838243493485896040112295905205102816021454009566155665636642808680198182400328030792163576450937485414276167067604264336536089473213054331518481905245096843879189840623011271730566259163957769190829988184906420589634434300282226340955571685468021353128642343186858171437375542773488456738235978613563251339543650308980679300101427960365318954003759671323951723042732094446678993281858748597518265878622007635128827274823929249570254180446396189327021547196377929454547283841643721686019332420268224679671207725005498376618595501024061672362625297652193005068183882728792578454814871445488881052273349643492946781969600084073216213217093086330917110250347232441686082527681570421210652398295035317061273901906759117642541824689683904409467278944829127562271662142141059082502869804509648506179319526151471946915235579497099121946456892909720685526289513138901092105839176481639949205807831667926843247255596584592092926098985976218871904568505465600372398440577715250510717717340563884557858425096651264597240588990979954604227910051901415885640914497412612561156137862864766643610506984702420083113957957213728982000866765544489955387516414644892864373226279258996030940269528093631199506236960051146465047291727411501937505643134027304443554908578252472539394812603851992888075271605534668699037164137203527813588238599829925100018618184016890284617621673120782861244229439436944461907061105876362595718724570132442130355733875496643642422790847237092376318304049279721576046693130821070445622298603492387848175373720740904664507150106714919357312942272272382510234040606230154497022216752451621023055535298983818899189101122679193324181912678119784933710276535163082325844867475893129661630747565812244935298023775892022000824619494946836070583124234040818889931187989343353089151274248487332534969957407535221031848229090271722332684651126088984867072268809015741294727873499414482890898646943878058680989844969221768823468299229881378341302462071714438982818009317549474293668849653023685940590888894233843974297800148050228656074662385439614112547969095351958378091334510334345272977856324453931628599247846173061974741095390927386326251405229577601587590672178836594202651659137002932030686212413850070635952866746395136185941701398468943727034758932922105307926759570112223835211472983112327111741992050223626678419128438125273916048703805891031318685988720840342454103162794081457002258843722790681337722032984827078730709372528656463179595290800555647344186772008758952001238168148845977379495754615903314374909829959621337359447312905983667184280523805287655451855286436895513458507983830407463741918904167021808400181067590846431411429656731269870399760620510410956425281132769624910774556378632346756460742308823794302496734286349509158216583399758183597332040291929843938037910937511908928372872169383557891310352640112834921583273833162830409277947187508565806576262764762011767715436638885188851602885689944141725486296446165033203375207651494431726318016726256789482556239229508151832987178730944175471024573825824965222400911091439825740596714863585154978503103127953986576109692972100931804075015800640317846134668971290335067004163080341568039322539330493075640053334270544988394983422912403031460095054940340943449756044949405594359249511446737857095623045874426993650637738442483562424435028909738624343862682380442071660044973841677411096667647787801752163030313134374268365440226856830339421902879101256854044909469500639529977341738370900608459651822722310077198569295923847118538621672308639242888126957487003042286878150303214960477905945556344368833483601966121930892589418996212360435462472852639472623950389689961224005544340559637818630836105394763236739577178833736435697310128643240854114999134291212843439564148682353677703854948554845007314652004382842352168991057578160859146999508414670999231218474405078857610323752020300140486132153779638146340852288182880223952495713844275789213827182944859513476624223906579468954069915877458211682566674005741671953567217712919627640960947418462904972663961982531159485012211929534266197441834074841573931418514162188927385606456690918567194359675344708564405731462324941009860208627867752871322972533259621692009482440373714641895183025322157070239801062749718369773369438543425833027593314223487073560504214953663979528804402028456950796829991375848466988276000136283207329837446785757986220676752520655280781410612795304105221474733070035908042179675972865688221670661989822480010386449205176826219283239043426001050168815350009174221467389946790103751371042641860469692709351997484857786308776214485251462812202703513930660511876683382180388326527585022106456076753371563863441936730774885756503201578929250253274100887753809723404874924531108661934236846660203929737355727537795231284818783844993622097782462394842797001200802359899417428805589675381779856756551018188558533430244009584527193938990605923601320294632316340007143737250191727739222331955877847997386220643583305578110628792199990467208205436999497903552790182932510972196191290050884697285008388262399291075932249533348027805515798233426370496390186234976506158942973178206268672824713488104608977163753941009643264804947392920533611796494491822900078872561141352874543384615109754304379356784281673130279573713667019632986249380652870129302304575376048457235788109283724383036903847549994983500356991891634188602967958630143014000436098359046590260263263991582868708237282539434522131235577465985603418822963730605805222982174312601138448115127973277104894265561930865963028921484905196947103093633554023618520525457506822620716864979429008346808917235438378447059808946630506359836946744093930071056679344220731602972501339100957730892972922261574039100483142873836599638410862461281797745657819392535846838903299478478822360860298895122040438805977233648729261073630547281428565774855426851931131842780455866920418049412246310116112227512736879489809611429901105976153473626857322310928552676211651467296549365464746255866468699515632293010530185496725754599754405208939499194120287484244730163458598944533552526472418248722865459223053380857124444444895097248306886971940080184149011721121315798365781906877481538150152819247131047888500376629878281163571523648103660550413223574334576097052228591140515021211536341864694669179152373426119623267098223153580199064685348964818158003692892051435247969955935356986009828924439643520942934130039613676069341560918901459674419067409177891101786762079109316853849264065823754622365750345510704093598332152878429994896827095280394069683306344276447000444667894127775773584474142719720943723633309289055574549997863279691251305595459336398276013538270918630587923637769476329124456087048718114183911806686266980575651531642025388213601403979352301570418801197197085605608552567104602861705287242854575295887965137362311743757826993164597508385829317000706032062682735507815921197755636643056495703860548135747087396539193838608111107361747849522384187915315992201860980988785988942830280960127468205758630578398097554838777828939097259255954441018673902337005817772298739599338337359077929297845529272620830144969907728757393224883754636680476897753809338823650758107326181713013023251230341810451189454252348889001776411063410390004102325036872597382962922099606231369906688183354151296383895624190631932561288115055806926995573105637309313603271431182476047535427281002544312531184026406015540402254477008975990191315656830547845798586433708862292234717696967403478570253094824449257750236248519851397097154770765958229213139681381848668286724761327223794566065169756129873857316247724186393469498427076162877550830946651443852462520403725111785728879743189145795195332699247513112299468833379949861917250664611831794064627102129894094429556463474780759284341910622412117533073792994366929705623242124545127778744633665734787880041978415406352001623849898520850718220155239373281717679643765702482473350588902184946669727703609006232695044890924834800694406118629471707830607969711843116320978180528069326566328155952532548371651994186162728238739896199100097267070621176011810289951839378970272058850708494763943895394468358285386648741312254525781048853386711453334938982628781299555733375153806993207999047493030923066263127953650632983436077456966051742786938618611721815236112182886859811991348821383003729904909255112949159573341967427502023745053925040551739341098458733619159976145438420795706624737553866306933331158411034473231163450463292936864059700328326792994218244375435744140812162848055185003144327144122068572726801262963139054537056352977570876569028239727448148102937195599398070630143396945436499309725422466863771355326418319944080834177936844533559334604847273409061039655119922178980686658430167766875954777967432715426261816368817479614898319492293705181360082073315341121558798815342476511510990181615739337146600175187777049685179884522220748237212381468088392719401981300735133974203780558891091814856283323300355540235257444860112980227543234372804209795947468336416838583654496484367852538798330463009048003214399710690225735800040976437170969097087368136504556791363204564430602493201168680460163607148585306144572520196381141337400958575386307943736986440605163492872378680200123294224865984456850212646494336949920829166451622281461000266639194245803775133003858937115280704445100833311174977067083527530698028139575093091611476111668952200361888392504820267176053795744314376625372405314083104581553431225803925525918146900123673086215471382143100620054072627627619823160009916056049558518123828111347892982106087685647178144749194299506258056075308266527731018400261802131844431931643521883200498603711684834347207381890508656247294336273435543273761083033415792693824224810060172684205402306762400067050838882671456240378327162269912623698067878865553434450137220557645654830450697181296490439526119219918589609230840749850614920884945956234997020107354867058931491399004872502769524565362083277581561787944399915773622183674646753520574209766293173656318600465250612918001910346425418697946374193266468525967285990407261303806316101220194015566949286336980125660816899188775624880046939538546049649247091002284678979541787091037255698339685691192567848942628672808911611616587858499193182446306105409740637772263237929380537337381018441556193706314851628383169586313211067800990021986559803109499148295415766955761482322368332411839812783173536547572454198461543576039388503394667289224295317358336830381640945458755137393919035815546758475432612774230928094325721510797762165094168678553719965245571339791616579998361337099869609041685363644030743324733913342223542049303296026359608549529803792625580041006192861004202946966777367065593053234247220720764195741621003403725393042786768433709731326127895140126275752174756549917405819735427286956784655487838503548536361439882397981828128716599083779540000566374042750816272803326529415660488669518897503910909160741560105307743314749082874754577410832659707557524732445158112215322158163922971016798292270999767061405529430455598638705897965976976149987719136286151211831340878742816212573384836020523150348365689319724294491951040740215614400395316627872785601302574236062360043081354442625104988158608474601972407169809628512609417422545318175737687321162418369505930972638316702684960444249514379086324806965335722028829671836582130931790768056745105747290980642313525063125423194552811577927684136994273406554608143141620827654727802178462921239382955954453841669150226339509284543799021934177603196770150533696838953848659935294721545599659558269180613795742425446387407548609053558963857357965476009603741010178579099122791524724217165861525131242361796003157010019570732671714346282945265761954453548146370837019867376281104840559046972926368106516825061409215684772122613044121400255417397818391226490109067132829404890582453098240532300174314788151321887566957813140013635410545668106831644342656169625507478727975420553374256949651964710281533066576774051372205367994410651564387681231352459106611102817110472327135936845148537003114452353212295605986034502913332137958072146554034119525203481860366422192434634069253015984086222741564063459558926110541580727182638825609738567763050109625155557558294774789235504155582518584258056741278329882530592638375274327500616134242421604779030511739214476077111434287205195909974042419335644901379203643586057152925382488171779018887401604571816773628357615449592441169680832136778428177167973844496583886496086563244701017423331280041071592706055077161631406073665299132660793560670459301075132651415471207123687781605273443736110347088680154309427278414847190711996104322264244028037872198807886351683243355581571907982691259287298406941640928852698271475374334702897023234256892706305301530439362502904918168958057927625293983686382759317530755253413299805051347046633056534068422297698847725629266323195425065691168439157855190720717676899421539536331130360369441250127515794106259294667952421715643213138348996439679698128199522479332041726487690911284326968182699119664830151253162978717016364987938547823282963911598628982021137150385713805682370198406575814562850963301758900488241853904949014363899345977544873536434150585817929084647868618434886135424447765980947519402081713530486023975228822361242762489848051847149204034955474038821685434062085122297264645393608169267028305842535250101715663232825377138190240124963824346254063692228790646192248810921275001002960287923088732453149315072230077468755677129547302580191101324784548790986027097085962457632897493771842308562684614720711429628730889233828207733475704084971464403346549586344606412757338456121121651644182867093295149600345991257697820920765413063435033707158676889224267676995856816701620367899415284628525400888594244470331907643727412202705546851898536353055425565471727895918706045150765957474080213219921361509161119990385683505795406596487978932140552319427801027204940395379331111904111874919375286520126177132156360354925460641690341666425774019188380161407636734238083807505508941983145689179141702103141708054127397179808851152468123119624181697687530585777331552036773934038804200986646093556112629284849708860954164566819636575566539994931412930632348688766653180078926613851567637711110077796366057730617798686978030708383423544033991014033745263433929985149832892971577901951515161366658306897530643506165992872137576356758070322505123980914145231514313488628238646631546869421687523103989356821792173158558165817935233715935993207915486806543260198496156505862769176108022334667840603248268744678930733694319286048638676901600117673006982050598043462507235106785397436555643194022547989888023099570587386463571135848223842294299636296289233586946886716494062089355098740132708787836027211450534449697212193005515469255886675924858461230771113621131032094234735729384423809153383394383531531976081647612328512304337712210159522374733791694951338532442823428019356245822056962957417077411491193847010345828595039818339424023980633138339507273035382569739203263177183195345912236546594287080722999254049441618844389624501188607039991889195252829462867413877259459938136322663234413460772581534774920378345613662816165062834624545033756818035762500768911265160380154015598481090372059566274368086242564946450344254306625057206841668489872820678286751818151068251969317093451638516056774372774438468497955479754076964836847206161995934586226257789384408649588084973213940383647071426361062409615209725139469653536952697359479141891193703127991569805010530762881122370797431662484938687102398174120248990471835633637614923977565234233627541955919196580369593243720199750488823475584462994828909337428261342588744268849740989677543205749527490349863854068252645076320712979673743660680117899668678255486789565264892252621442952268229861493970844930140250072800193055779465676534497637748138537216332761730657300188931403362879855800196019254965134879760446876361752249420796985106780080366184072806228815452505947764310560968910611232669557728242784116355304361824493965306583955826827591165520770289541712566747521650684042700497547008621995185032038460880240537129796090988610233937371382024855761102835650846793030397861134384196282918022539590529697683423988475988587629558075201707303491511585450298861291165313493296683422488278803710359405151242019670927332107002922774917787417159792337767351403160172930332752136339861880282099343285974689754960762493629588668014395119190752122468822018408722529430088562018119194730132408718023341217546488076815354202231371069172525131491582105196835667548804684490521247113084246969069168759015656175166967828375672961212996260748392565218256290186803134815232612178943080510191354470396607729247872312103841119123588322623525947406953524381217398329001580287240358613293008067487183574352947565569524334326223597629832173744723822701693125121213543502581635805203888209076419995116233842416527481706771053747886044587274404789846479255250404217183235595529783863610702154871124780803458116109049870999687686924281550659948812679111542480593139332905155126136404438055369789850616004197165317328406716121915967326354905147881751064236208233198505878457729249457358109768091780103845711939648263292740676873134466872950025206810559006463457225795682753814224593677843790169721460756605174857104357183397335942366230753617971760743810938500021819674392831241717551526928469076071097710619266751724357189101319458062354644829936139568399287733674946931660818479513746180776877883038295080933785642990076235135872645665264085028570724161792056138108679201226874881508441194707193987526517581787176546471980740623817852919447621209927505497279074979057804291797768087954634123407370815231764581950699248968103397889923004372644781115254671286877051757603508791774036353399919341926557587777197872211833718564731343451223671481729532655699687872529200988599290664892576411395553900915777357300448939562154536272671028351000876502664577495147207007242959477757787183094527244593316547767239456441376279456277384906313185238548039816938946385452251998410504909992950092430935875657048266044445354223564150649486867241294971177803328259123569821483754356943196749786196035226263106017529908861655977024971279045180986801724041190625300213648965230433973416113794203580300754153536246719157010226633153384496321603737053936004954803583329334696770316555499372083420115518856779228738217776261197758954593559199772392931830049608726110143510900663573290443986919722257754595890114715192963310100919879453654909401892055643825154296768763254019585578849906188462133817652173024217273576106513842335620401568013720672948465577043485497917760695921125714387627451990197321932919980925218542134089929642312025246440687092093921117226784335672852518684934711316369363422974135124409024752545527605604753401948611343958921210918683621329720200703767382631702595145997818527262824232681996693927736737009566869735465284889814505019306836568352119743875966931909921365610653703764359926890138439992066033941465648479844075943518875144505548550519440709632604030751300003295084561366752708566407904488806732516341633446036581068639575366277589013784191661447960996926970007263587469720484808760856045853591952054339117248019440699721488591079623590046721950388856146777770314555434843611802523030044939130480570470826993043552161326321743262514837893427689468688665462877329785466490428942477716290983227134430605462062533051357545130625087215673667379296886981745226713303344802121783772859973709297321501909022486206045741848360018288138264777156007933624264477843629822938785612507949225931967796708915842018228470965051418360398650854441204621084797394652803911894877338132552921634311027355545761127245852795568598735048691989454092644766522155875145419207582467968980772433017132167772336799111429799000614019683392455065827199189933686260457908977843351173430861388633559224926557117982691329314695249712933725186633705830532699794877259730541505631536078614965312990330616671257718454760064386412573435251504316226816094086492526013225080985340686375011382111274343877714078888523623422010676680772512401864896678385791237119474696528860044803756862600641353110406434018402238729234713861896102681797674849907858733514783698018805442843461520616175698053988574128041709448446278552323152903615708950388994381196800836439227315360325060111650255007164721610691169625461810921052944976756919905354873687457380765652102344908691423373023377679048935652618179471943902803833739852302884155514859888953046109843476534052873692823758431748327268024342831109626338647709659501856022106482212523586769511535429091218109617894288663265619833156253867270075163733567006604088451155158911296182084663881371488708423147778849448089714330585047324740577284759383476729407214407233111153121360391390834828601508028369591170413440805408392432663960042853342935397965076953370810936943986989285150893518682022494562718310067484881187650489330687798144366326232189625809656254603047085710578241865739412981656912482960665756384613722368546818509642939694486776439759518771013806427956470793003225997995825168885733076620756167648843636663929268309622756063883727784534991570993715899290790084666730989937320557339216647263562460072238177434608053718120074102482852353486157716344639901964011483626800346561268210724686278139294789933134404012771209021698991256838660765246922972331913744664434865918161604293497899295856647970508569556548593615166981899772295764618577168336870663809028555925600902405453238778752804442185915648705383274560172383321435645998097913900246055808097294718832138340345382612379585426979243246621289835173449038228945101453302101599335361997040900409332940999539915061932619892373325533525281395534714726027353628722416376446940612675217397227879479126568528534394545107585681877923633916908850738269806456767566269196819456523772592158181518686709455310826193202365360133814291112006040518100175729089874168782835703351127823104160764376926819151102332418988839443033746211689826925324975262954886996821753606575020078014809171303483432459251571948380985414986131562276189167991816456404866491170619028216180817557864356000168069848705408943439038646342077157307277441295380729109366553627722098355764946519079960609781592881561290320189453592412964042007972476577120984336188342211033851848767680382039196232028874539794999376191918592152858053635230404559940568324034416107373852857026830363920362403349884404209611254859968138015056501292753286622660818771349928284362232414539272185055504787751407221735414744319114656998847791049262744170089209027106668596209785260490494242646051719137492264071904461091649606511149949644838623794525159701962400956315163607867961927238576002774015899956421375528435159801749313565957205629189906353079973442849273233474809390666111255773929996276594135632847228741293124205330498112498691541314540509101375169941711690885375690244980662851010088195513557372719833283433622272650843078951403429047124270216240378092657801923527690169822805652313630918274023315615821286247813900531553052636993586892454720723141211060057801681901682651319170887101403329254789813728415327279913633240231812583372684034786657656215696631726590240274235884339227357313203411802351407577967913007553241407935943840271129293542178279895494091737786150262348352784342252854801588259539843393074573311242258874403589424430821944108735836128082240067397669259031985067903018247816663386721094888207262349998706811966146316203251727128435505584728533708141383891152752672927881938765336695735952123029157518724477405337092645655154265211075925526265484290147378582992610206359712588398521316865099615335667619659749178804668106588753058678051984099119199076852830457521746601581708002929531031432340751915948263221293065389546535248352270819788020718453988635931216703451846936300666720437129850592118067852624288659795381927005545007118860435540775362078746077308663641161544917276589066155040304142319362394551751270476215125448403378992723651410944051841290919332955360788218268907377365490503973921578359190116977165257198531660204257703680188980439040529950502200821973186485580948081240429106554239768811456329607732321695671600231718878017258784538104197003299223511485243039627984604370529916895647457714230569891122097873692341167669119344474359123843096162775017567953872669117413679540620704220184058952533009659793978260604536440544474255884860175150350485410749158577417247120635943293279766980228954690963272518101648423324189462541431839472451593200643910292808100222916595398117867220418601485407006996523517273554661354411827715104579568380878014307142462674804852546319251619207940940298098072297164108243833954075740783240285018003524113006742692062737585730715417803797412537740734154272419094240685922812249407147098238877631978190505686447082067152231459452658833254187324211285239556399706559262828558752403864679775957759101646871537105254960070018801765177807891969857766336887693732690507554753490951908399246142557607025670410358100503377422933462771433259836136736888722519660602033168517755187358398252491031669433544918683699577753664530251537326627940163492200557231266168764798918873075413022356683537114683003121596145775030964626560383955918996366922429608320096710482737394675277276997358489612682822310282605079702121081485432395258149638650164224704474592772831153092878333093587564710804751620361859250832194085745920042099001653906991434367342887740665558248387564039088959385763089911933523749271582399065615432412871889049534740101894498772794968454023303978943636363796769156018791433867707798647405939949141866526542523517393391487693889559523794892296779513797832645062806947496906573652475536996109867413692011776237510088193034668923768279754309770818706538977412175256102837514019062474310042571873778599390362904487402421842102452485860654243546102449947287158325952773102279867341058037258959471902303192121290990146733579432882028944023243086432733803661461180712047848633281695101388254756361897334629571957665280881905634057768899089022088679680940897314861778597698730392200560988601691305239402948695329218068158493300028673652740962481040884461528884366646268341821296327721780144391723742065244018187557001406102444484430332663889187492689815787783142178248470894288863834516129750402645363952322342822757035952760180788313646121989612921567876848180579575170824802739635868280121312135158378345519674479181424487604180941271087006531702108178093327855337391335616655503470798247284670439858884167159575163384917547211007269631766346336735386849424724512432094379014623574917337499917874050176702188799574694753338723132264018224814003669878121295017809382713421834304758772705578346834039242544942761104606559884994175521309169988047119235416349672542120614966825222365632942591627335313310190400988383545760859397548772243560365128197044620610542855249400480144030900905212956523237586897419258521806688132127156297734010171585867201197623679824398503240703977350888068785960264448914037438475931106044817750919112195709827475703025614179910378575122550334288713166355023670871373363808478951789446510161712670277403648587309717664769168682268492658097641618072749773321905175772970786882832503984306039026654707074128800895608577880011509619606898699335326424468670311489025173035295762170358510393337545128832228561322144061165067385081619468882324545283646530257730481018636382799813309206391526386437409314107440929176180352481483337184910454646099736894990875402259738921814621989064386779536733768684734701501781990042212059100288706978099556918053085875950294500911465878630383526958566553232666985631418008347284003699260326004352372524325178949926569942323301980252520407109387044501744248608675723871085621314599418897597347087736554667190352398177403640023129948086605196631710677460598183495333947121286673516145921703087799345714152697939741025335622295653952071177172885896558892931915087577427442652535752402361332534890391362485608314668589253563372154709719878680908694039756069495892120448203473399152282336516013092269716648022622410895184923689883137052858406411406783832550057568422499920584767969132795458650293472546623774266967773764734030495292041058607576454724656882893200201040835521124631839758591378167695448870600847620856453838531825897472476465598142331611685324434740254365481652680598385660426976434295031166822490549973786543784112214764143026650637901043851853489185249838180650372250452800627469306449991729395996895971958011021045036586544163061453681209143537561374241981272544424973699395299159795354618901232386527605945822387861826381335007767601642977943634821418506956180910237173894924389290539686244077372837601743174359663789945674401219639751127408187610548319757766602604416119152910937790388866763616034493616055668293194523049745644743844731663780274293719417463907483679843720178840918625613504855509326682223271511399197462181466301178857517670548280782957282109564451453198234117441573698808687027392051513601332389314114763694278836823231780397426809934345903279044979453525650062996742057906495032930347129886536130045031743666115353479047301547683848734736758103923562270459118776879983157190521622279724027918937234130202918393600410234847136965453166391979519285821524888555951030800007818874034493078767556769640964787164149131572752777237426367115279328025093726537069975083280362947107026546692464174279486636163776850481660957489315339865883879164832955950942818002655766162301275394027610843403454329399008066027702755806892599894932154809812813027277746337955902733104009959528134390206821835795972985240687839279769115759180783314106894079015617087794153061789194698075388703327210796174881249190779445841869418699153035984999471323516308167621418099640922563479748722547659563741481001531224984485814495164359146613419193379140915089294652815626247399452253993903476753541522842521206109984881769981599214134000099703549800871605225025113365088586206648658819486345765029413067165348295713411824641919877966948884744128010619139908579411541977202135343240112111905689955367628226010458873857058416579030079522663981273231033636993210749309796489007549160315091257913248824133386076829731330103449592998800613403802064732711696885210266206908444551012396189556451305594590248126751241195357114835635683597170068597544526964860993721898579701317187613494507313659562946066734559388119895920001169469910017427998246289738803332428819353700405069408523030540785494304655726319476625959222223057207691903357636617358679974795302612337069419793566427408409326654844791248920731461893942881853555518864756849418497058148245153830907831991139390306000302519876461493353634681891784944336887042962654791910459075063539235966804278618768404516639477923966155368042357724602859526566318617580709196827106754626393028637395261014685119872196272137014604849071132667222992584106186374170639794167356019758710394466898246618239862379503269222810527090665490116639552571477229902263976508129433885367392040413115738894667197124120037142940597053029941251716164546682052990531773129846101082759965027954485744461177287968640279557489980904366969390938227170827334040571254204368550932032309580013822508629748111206498210742194352993731738164727479127184570789244484878439235762286251377561038402873950651234287990599079545428010276464410985390736844743828782406590104420449429648693934368829844637966194928627940198652520037583941020894681460081906015137486180927797758780871227072552571783426485134790244413350353430092540038949416386581630460475825761952752114714229407980022033889534741295460417473627212186292748007161675214551042522266032349322533092814885120757192388795250417810587002435565303326197153453490851401111022423985905595226336741446028200774794461709901936258322169493110059278833488278123694077234267860601400050781245174516616096143002451840031770477789155026342831245438232440578380988967106674770607962993250286629294249055128037176717786521538915348628407974303042208462567153716563599193663857011626656494152043706417835570595166300866355239437936508256683937355076334385180483843199457820949888473596987190919248836407814454588731949079283300576944900090185913687195347662271387115432820925743075338456680571909477687758165126724561080850049141237255309297442630810926284053472926513727616884068081397739074923966203297422372793064592782392542106088187662769673647951390558430540122207688326715578315481486317277592038194562592877792073534770651061691887043380350617604870823040244539798343254198677839486893148206053973267418434459605270810323466025128864098781766783399584286658343406551318492520696657489013053109642977415571734784519192980583878907171585110510722594532639873497642911980479963720400606760370538877329171028931029215017060808382382714900750497599156648630858766220948509912035088337045259773101041686717142007112206896085122406602451436203671557732457789928775385270445915187044235744974988905800788435115483576041735340247537315655737002971670899536128798729962612500648298664853285466811679731902098372264716038920407109917793505500830027143136646181939155641414685374506837125696701151610063717451600950175180280867195295683960937046174947088293057150535079550520861883528753480718903347781827378450025765636462332405038323239296222563332454570931376147731935611256483237214653335315197238868433327651210613298314504769926519822041954777635723216618220261246238258038341844055388622598956137591491447811171051358131497751507809563644352101736287607520529617401679748389375792350174160694693220192871790229906169982498245681855656128964636393859582812662769570134802416567988141743085041230151320082405571681302921646539257593764449619329922372014672923033799576634281694516620883306151367974889437445258941429695660249989739469762127104185208457932614851854791657279535443184785539841269606106381397280448516904218874268099164812980950957829479053931539666431026306781695881317098156685799108451404904155058385195968681072026545615063135118609512408193856768622066211548965007866226552407889820022675226240418030142452867557214799177212980886614337366376333837976543539765687251270209508944958436164157625243508974046667783159389422096893391263186390795507814068945063217662207130309156710316362229982807584004702793223309467424603327369856752479283877920630035676482962241688339759808622850865448131887760540028775277665743212711696268754181133384903668615555338452644542526642297049570033801846329034671437747629830895129147901291998448102753519860086546883856433525057537148812751751408750982863699594440443981942440691826255956630945001487727459441259030262451143768172659304855067131262036353941184559186352324658895170022874098038893584756210209263546896185063633869881898940987887355535688031027709034660240508385871803487601731781333280717462012276139540062997739201446911276392507266782087633745777048958781877067976375155746620786860882716319619967565502629601938271739816620338081628668353459813220863370510954597154852709107792040781745932030926350379562197326524006219991196406378951991055442894041431175053013894508398688997894366633587422649504536956790083296932315084443811717310284942683212081444863319414993205822691427923712832793304567698103697578093188273174430987064792780548075189300132011471553266635140180633556999337968808903125961993022715687534580161952740661381433923795870921234853233715224099064937563708600259912842798273441953200852700534065642091068804224064571100340740323823170217968397374865486326287219757732558945258538180703595023245987608404748643548683066389511590476141418040120917023547331319191830962087779329251239655016909962987724124915388990514153072600403967624524969197574141857200452230993689092217603040338361177976558820284236079004833763509504481959678914779834732573154609443578631278687902587714875518327945167047195520627218566738600521543919125993062328633171667148013801157117967626134411600022514970399693517220601740541661276009821653642948836388030889823456476522505694642933448177408936361161163555797585638916061061735654416906380140069931580740713435723893508361794667191208681235891071607373538177037257699016173122330649559947468277496355013508895572379851401346303551594803167603510776868901982109036893858493588828953103646956385358581928094017228756426016196618005295024078954155423987527003596674059760619572418171799152326889799167741910185854706490317860279426116844026833840555510921096932149928977785960137470513113140227834505794059831977288222294642708177076255775241086614418366839479689455996439301346942216620338816439185990879099088643133586454668664458512611978421585152893039875103229134477367798799622043626506249028599887335093456731375724137057736006070366876131141505747208787435795163369050447108737265011569231458095253350978211868370001958742909500890619264984270355488149188308671891613249072152207767803153925315025255461192763749073339110133929695461821644450390116880899215433546561464992917482525895891448987804333989003133758356485383575529589840969498582260462370323323091769240164813920505541773856058050427532860377038219835652062474942663370947376631328999703534638838920783571441268030681089579148877443985198679956106872754506711445301183730710878070496429034001706327689347804791232538493776344643408080145242152881819105675144736984227640718106099032702854985063635305264274141037067957609499007995449129777349249175476152149970541058673434368917221760970538337021654657443565736255790981658338208236895510210691708767721027476680801609588815882907963318494020944808847241750485401734822243283468632290627270481784652743750421682780685333497329206110954666081921248395912470653481082610683992563145166741239974889786372785329168766125639094968295146868111895293325910562097993063375180601669227931813643725959580772767552566326922482859643005986459974744647001667074345984259661259719572853035608434076068480209125873390562446017598080619370151087437718456538981827564745618236760463308800197640117684328045042619161442710336600815164515740742481431784917629323478619861512518197184057550578539588255883048043533009571195167759922600859170781877782836033983504298441773949316784551504403396659767386227206895962120740661461390940485655014525088117911168859970604172654355137695171367338097979721767477782409876149360181747220000226706724298274400616294949910691104354672284944916207438748981007725791605020900681824366031306364289765399283217785250965049815264596038177787253950369243603580429320013743530470170585752577077588428681998967554271730505609705429813224147750634222122634019309131635668269253210660260469439821643567955592143620862348350218967966121937528484665189766806686579479013340038331698251300917099440779180156010182072908019427091347704143662822871430682612813950892242111768088975410673774080583869917483062496248428049002363042141035801727983252503289422845939436886230862325130173266481686612214522514514734674276269021485307330034123409536708685736376743977849023805572780509959292947961290417793570743408212774752516229506891574250063871413691638139299099293936065237862873227605041727930734063753167326376211124711487803501041770763116407751913854024930260269011135596643110480849359958761695947523970587457227906474072262459097001262281841994209439688860537009231039935565394904576216648053570593475437392281990881860510628233727080833969651574599339711578405396651087926458310501968618612163701059349619925566557110985073274720642508727253893914507809705926884171802882966605832786046606358232192436136388099352605067004073032951573200932996637441836611820148758532540453541865390928584046766610872437158710246259694905322922879335926966422282616392581754880552965242932751789246840824811427187501543598629861475423992919101951348093055844502153977282082362035279727946340690307505795800249399284364613857926126681882218015917765170058820549520042108648194110101625956329517958936553938616821115053242983743161084259720001351557234067613553170971861317045453443494495785844806639134694354713767386895120399087712663421916149478620210450331588889338491261819724714414652791251643217544629768139395824729211947175826613123925598617122043943031530872668838971064889383570975380458393903110142651521719769466834114063338337250879777830199170547300294611753691254846892159520800451300897598341930543368705942959550991743173104246091929467535993825310035123765277467986475224467968371027404096197025364889601170178319385463289913440336627738849815983369310891271343575713283710681332839707602562223750454709198367001747099554450394358840062213818817805114856869661841944461875544762751955268453995523066867108353161848414413556274532692518846221674145447361847078562803139550700657777723029437120026938017155286469826968560083410832466346006953641670398092733617146255071688286266394236153943773014392944009832916040853121287363403025186062694677146952893129584554365811105978008070184196343717913472703189954090105889563727431533260648103016178593257146479825100669222502349955434808010211938195720333119849982512235888628523209322228680232449562919502662838159095767838924475340062989401631692553545661289634988288406315031528181377611077887884443025951861854995966008971310849493467619991974164064325950845719414848432119123747669952005621227298079482812800570415187396200380425818803939572809395799527845637522618174685031702493561076782614638781879956289384479918269725656794768928576881803861256907734335500107978226182530131606966595600263245526184272869769736041205689931297020370313832157534338062071995143738740800166398707975557457145156650217009416177578873524930076721855722794932081680333422410095265249196622651863586041682405615409629106290845204633562857892890811972586439285836249781700522995989904025714070923649087550931500964912504907543258930180447129345076852424020956316769794751148653639098910441854582076750921926499988773113459976226859404534902254471589287143064632088839081812998981714401636699046413196352247589430480188082272309162795314125402971114183452617784384342422258688329026188595000297477614509841576090822345617722821500737281720367375116299656872847927846268254984118777250869960977462243768501442572839851883115524293469677388240250741977384200580913908880511906209127480626724596117838667311774189991066836839749239515969718004508594766282446634142688842671058432726622318967819192849387804660856843591077014603196441970143896249705120319816687623010165011903138485691286847945285688970181854047871437212857642823051391555304082723111965155395346711007002926452540654179694344266056087728763222573566536963092824700068070920535233932235898000326361722870496007005109469747647293067974615567333496919248056255200857156234252135611520742194709431204049026324235287000197525423318113563385579470763419253336561128243019206701399026577977723899668824944200508023959777399915520348505408672973796292863870044881818993450476547908286698407121906575520755836131268806781625160034699841930107008489819914009038637176438406233246957505533466683849006083041983394177800146379884188235482307835792284110206651070436468568226141422126639274279169584479930806600043696913701886191636388841618366672502447209100496616276650801095288407947503525658982434975204773588707612219232084110207165536459492212703357808841589500872811380340262300983770532247365432053344317475567572396645684731129318274599946149483926492436323234295780752084756765206412298024979099733320030810637566624026958212021815420017676826392134340840366829451946733230102986049592641988372039630477328988071698312298668209750112561236512475560781003049283608750970402635485252807579170989750853195402480124681968457081803885716433018568258434677035660687423732357799619468156892236583508363880924565876318756063029973598781795330228411842309189061791786067084127401924619494389175551633793540562437880800328413914986227829388295895924865347416270940753539761203858596888291346518480727725409980337072552574038206715988200639664863394460029182119300066467793137911831783155370926269098997898241720445912701088290780059252256323687874588476374930373089159339555451290028499167576352008226649411935160629707446821024247581602202323724395462161343262852569409943103190587084379776902396881888883416331833521277743358553927133159049915859944759748781084509583973007741181749311932811759268141259748598266410842265880910125567509940863616954165389696054775228826120332665021444586206570520909083919691487068991346954142572521032767721735833237675311928309115589494167392094689600120729827140836528873528234940702664434183011658667809985429707026058876464446735622232693135852623469228434125072846964231904133991228188485158658390893875672589495123561707390334221860318130297453112021798931425337544655758718555073761381364508755278016106899965742760914775367597258484448663362450799406598567298715098681138295676312458666492270133296836914643243924126530538185265646209244563519586339290303000767618289097959595222035351744630632623601589195466540191205425253037259907742113074141603483071409864405026411847703468187529941223484161966732060758290003328987175548554398007907659838373788914863940249956911213951499077954836004786925345161439974553863861983519848300967233900948603223586034997002180405794851909720952984592325510597812016953243378159177374553248340547746925159450705350319032770218305931890442080003262725333715658369305116187707239086229363605826441978087197053561397462763655248352712059599040867104932208899621062943649779306433506048382789623143260249499319699383987180636989692269195950699540164778018516072747191695947939419818652308462583006930868615538271780661079053674581487470086233418658987395409785047344116720850758355229081508048636735503556041003584101132710065676318875321174927448726416360837297935013848861171150193981184910293449654741009782551338574662508336574526925757272279879162358067826498088123145309512625574331993747530648631018231117827927185139543964535171379627490104935393549075446564631257289103544733170041033254365473182474564909032599092251860402717147705086358684868658799608431788336551819557866240713209240777990097214985433110033004795879931357687442077230794661450259348140075887367955316618128983748236406112690304772100546864758624828377592412757959526826923865351607774524594684366577788309637793309264448698339725235956825883669777753259740640574656993609617176595817722277489000492178247546750065883758421798446583369926670579052312746674119648946379826355511932271107372068598891590845352926326293486884162399775989071110650438219242890815701370861058706004771008361081994989657765846934969227122576460995415692069734456336488157625096520131642445758277295434283887085576569218035755635583524715758098635649209702292539232048390211928832860764274786853729087332455095173935951845098670937638346448333812861183696426955712806350146921385456506157553875287468520371718554403293167233426531630910008031648546733146822695711584506995302580986617990031370015993119560692235360670472133072756266827854582820280082872149302785080239072017705533354692646463066553158518866679475359061648730564540643272145462078065375400828794129240801479163336148429038910502238319083389972692762810919734600071728566019970022743074152958766493433308990320156177944915692646320344952401989888068245007215989963334721277236422068992205664649751374746479092595559747719905876269341235487496625870035158920352254361622144394557739199517075574780636086417306868499305512052874482476814502604268102460481606760439213548275190570663592056187142354637591890055950080221968086858616984251223469314924388347502402281106440531546280277425035519035777026475666086832549501682300133915586037951260467378493187045246483432647525775188572833997766976054243670718787932321306392593690261610737052361762773783202338205163408819605851581913895846046261356286933834465389455245334979341057282768353270400940342752513946394946339467917329307513248341113549019977843488526755218920527007223060742229030763671377487823386689203512373946282592134425575456992172683181705677297943204004325591433609587326480273764685098777047223416136421733707630381092741243097522294747007357733870837011388415610159105879638971858212922319173604548419354688256303190422505529357034021174109829887036802705187158316183872293427558105607672902478915072202228865912178946162945947099455347779792757465864164187793411562930576688585595892897044368393054600511453367730547423695971165350274930301840271771027116802273223812081494610701182184272181919120260577532220086107014581969421665651021203489385847401418311921303128067616806187429077816623369814685790714993816674013424082938745762701050603870856030957330589278892175822277586917279416320188535471105395793558180396754164159557173478478006387554512011798680236358333351509819602422529086666368678526891763039537217076033460961727551123991875494274424511722863919037362918849864286552365331062020972256259007211487377454160199107529388731613879790707062633848098486050815381051947194032016606210802111184241792784334122202109637413580030249065354377451963452124394924571318035759152216049417629496163070589504595580218759553244349080062734913567166250931011576599900632232912112410159335504615588848895278108030587180371437789637648259667254128902384901867208524878501878864010212070605900514074379253975225722272895950356750119917039833006394658557792441773970470034375012300838494318075970931167527549491823462473423250836281353384999287181786939605485886413220141460965572705479800229903586759650174686470520647262818070971610595878160827709126797689199201692727067019064645890790346123770062808780499130307601810314925093271149898734798014753218023185242405204374302462862987142463283421923720498787061575170200147516382702903174045725565887240936589887284936787213422321500144008414940967248941143965290179013822417346093260402348460856803782202968933703728625379088353133282859878261098012004358264183277430857951923879418101270407848436199035793840226184451315120158575470264015638322006955702350129272977863740652468074014683383599520847103973810742582734064246729176688947242962532173812943073472045218328201916342157798365841490542623813842987297238449102958320496145276283947743255780109578174505672934575829738085621824948774187261683492175305618429843963595016709679449723398245274401887671694294828860697324792598876294518055105521390275636720793985968703605705566534000525345765136906908602861631686896169884490261090626960701631321329834752747839629712005787675032905969025550998561621951993501463265516914040189361724919273421443020301034958012767319175364162990599247022340809789292664611110411245094454706629442487876987254065100607382066632917288587436376829586930539537188170782650132958323856233274558215730385877518389277360019490445678671024621612422968672245128492263470899645202254067665840905042898614305873993947338911427664692604183290491017632319619335609706372099073921359532784503291599286915718635619610566017522104927548171323819300924527865066879916280422902935778540997972087996336303222231989976147994801669011812865274251753857011178247286359156121238257224680465234389739112585503138509844422283065841972147129062682584050075183394507213162832447733179147372022034217273555864931335471289145853174752530325586921094269306158477410865607305841665174542511741609319022074761329092334859915182515734615717111077371344215469389655966637042938834425955556048136246222097034176866391317930102295858366770268736525909732745009153375236248863632686399892811020762977787542144710774468923096060155295183871998580756960327239913277497126718234909937370073355296795157499042860085303184361880877745310554765280750683812053185038953894925164622341765328284647049577038496014834945603455260075215421639088201159203666120024372772768936506290949915253540064523290589632365405644668910410373421688285924973697141070969159282852050576172469275542410484031390497932229851711029356867451870793242076920838067832874257281166691114258593553829025257130350819948442701806841590828476086918893245007092055876555583839902608628333962400643434778640953223260596967142726301706812791058935996880793001561138941892443430142931775168552907144538214482777573427588757658349304949210661149316090482513814671221784503008025020288853325802491113308012400914169937118382100817825884109017075243282659107010641688360304837564942092994184392081974173379155011785516724424116873426599280746762871294802460114069817232096786000690731836918773877574838257011113095373065191598580515813935120273248505230466037992674529843951532180806115639156194126779691972209995117211826913407739097254205690741787361739929905389838336842996517960844387801747613885021757822868356083823814072751239438783552648299917546043572094344212117689554534601083527248590082852369520266803099545202533583270905424478496418807977443183875935529257723775106363874446818431069875944825953970428348511293122364729161698653847165868612670575652437017435127795101245857077798647626027097519122925102438863252047773220996673360472895179075382461523107793531032648194557169556775238455542514579165785307320404398801486730706516436718771781091525139932322110572891997185688382131412639675702555387478166209782387291310195945434031646024905776829997708830586316575950737915707341107135210999763968988424903961056258444351862498747087209066041725441277791698930908514692501981978423461467397306617963418609131607146584038265450647257025060216687964827648441730826242133133901381548131385266433138921088683132019160182029620292566797038486746207831885108048130050879267808037327910567261559552411103469428028700312765663610443955327859322145960140450197346616213303432713228404287863864319077826086664257064297908502233543309218731540075498484337959891780397341547496988456911510994815803736183502013550929155373470615442324386625961765099768005900927230131860083606303850845419889015004250619809464333592387120125607146350306902540642456719419360056586446925976722943793890091646561674677700071093372283295204449366163417133843707094059781015149513394981975447006591013789211987985449988881002830170969012561824547919065596128671554594885282089362454462786511797741926859802036404334919190784656796591273772821571688993049124357123280148386699097755837777050080816446096004617269971303288784868539888075538441533215101771530209376849411912668988709303249532963712231541669278531601903958470306548558062366532811543097155295769398935625972595711766811397527106462050410470777658055618222389298088908743548162330413879898678450461000391042701651107669415973928345565475189070668448839152554264855121728308663825796721953015505197422341859161299094659998109672515107581377794057986887529686870609537618167348800267865474885757934552737581545736089656300869012901360729479076210632917302274402432289171680831229939186299547414388801404364416376813243946525490554193251684557206903322606411549183326496330757219347523286013087279580426217452356523610994356292669541989126690692643577533209034460990572796663487817591520650103530366759184314048282915652476287636168695405232358198701016196722440034034445022582822707466095078651065175396627578510453575524473851480164445078610527138663704277177655729506407101158326376259963538720114108894394801882929186539295278161738747922670711372473764559008374198378226433371323841392823843645735051852822011916730898179599974138567230191178141686778807534453131336021909340220219731046342743725616609651329036012937730482391988898415097999443257084341531199982500024424728492909602445140788427088867846264831642402497040240988231493999377337692577910214884628960944613608480750284507131635309586827020411839493102941400372097627178702926785525635190494315682246764045910762360649920918334464891913527674821834717412035076304602478962204676081387752875285123719160444747337195101037308370265176041772330364712885652711854933893330664307291470460413468443609083897067210692612883857763666825108107306623994195622915771372914437086628599855383537603261686654471248704948321218479542106476271407201976277729532390638870360167270051981106148362532137466373990789722162384858326286990102043383158491891081939908474824258798690288702434210375294746051759091745899774573662761218402705714798324371552777444852400469617749495846176638081894703236577341966282393969504010420211798532448136812772793557222779059588268125848226250111718623042772179593385553558223293891813081755848396873438959032864910209857525776173312433877702282325523216255917127826786962303119662668793762388353114368115617655684488986068310484281847963851629688536950122847059758938622374710941692520003376323253746655546816470037847672718354923339705656134243663248120703332447433506705915386546078253765540370752358869805867277175980263923591455252043456584772914526439907757586513215386122547177094448508335130544127925886122035711891082375611042681482797657481334195958667411582786379599319652702457000218954672776155789146587065451027107278124036006241296025515137651019242208936860530352858165435589667999975148207711096527337976436434591299316120698715215445739231544603275805837744517870549684965235452148430848556381779912074295236896075043373796073887521871286379859013287711604280441970812700993271513146574790763130820175284870762149513278156755362857102057502273556951937850924616755536749775510416543976733320367599933555117927525306687438816796107689318975479399785500395425335940481384494849561554039889497072487467126278476640885315472427059535032652941238151679317748542250332273154494354377677193024594822129462355010432112566470397180389032978431565357656272885048566688373668498010147589957310950885620236527060601653671590456608160190593980380883312706625065622705107587732690499436560647361431428994417039075714497170692315910036053675219062987877667560087879972430926284383942852170016624350505609726610250417679390340691504247840944089758003684960160385633803539083007620199458634462436295983399664099699159993489457515031407532032156089738003276453766377279451668497878509721822747517300966549689310219775695663373261188204750306796965447795943758989638972535695537820396118838261524259087074593013102216285333108048577284212066940872438601013013457092692204286245447229951239379271677839203149847037292882718605903246189695912810824265539354848946362366863484259680715591908661560137081447222820594308659068685331126876938761188878899694982440531995503367603405385917989263563603355173537616362601878858940680826077509198368036101086013591577522214139147550255775967304469745115432652548647003803322657379239979229970968626744971478921687538752117845152820038483084997427592128425397392029763564684681315109270718029230379931522942444654938702343663201156184255816807997225863330332510420438484198175296177961872613941162524091192924952385209023072298145595693376524564940042742762543784869968769278079513634923119696781477084377248693801417812395970741080593447377218851141714720509760795055722091247956744685990717497384440669716299483043482026444369801342014764863587026989613632259388848929274839262764269703647705519525602795195190807349973256615042739293350251834752259586847022230048112347056169423958880505225555024175152878977824257117779366323248958803925381707167269768116847748911565602460840593581903794865937911296192707111460925640900563875650543153366221880748972155582615418546446905656183583187751154929074794001490612643152339615352822087449939535714610231868394379535114366030902216234336611360501481237280245661187775970162226076068626846161455928106078853970109605641906340581397427475385338373791529646978423518054733938896394417878425396296839269633430579849362977726555424603497742799121377969937354571607986604100754961526614954730700283556917961529065811019747002123272621526618834457793242957896873222035803811407983943251005146816032478867447351446409829528443933975952814545717078720429689769717686054597763908119204384093339325539360038619505831072636071263251218369324731767896774816582805243585931555624504363886426323365628541959425635805878370607008262430169631249963946443520868908559616286250471396063674892726026576567988548683218892997950764310633687740096159177537878422477244683780003256668126687752553493771258171387786940782731346501563205428785409241989981045118022339513212082966127758511731559120588733465639524798495626277825233320331747759325428329289246193661912302834942168747348381702682080932019885404814568575564159466719379212159707860983347437036261178710063421474939697785329511543395162445593209955610705279518011060508731485425793014274323028261855865539804915988304131484925293856943352622846502442878680144026485811990805805281909578715897374074973582747267705924592950783584654014321472365353235809787572527679053150239569603791622980234275111908222131863969271180344978171727157706323958736834275450559073215803717745112104607636545933079587604552097858014347269100718132315214674208841532683584296467618978899310219613167282671124627504813615121817050844315708917298240489897349454399258130927983082383050630253247396195915899386530474383168492635218560254120944728193830635618100391101941202740828681636068954955636872163290629788540279770974833303254851635957997238084622722885397961424638156725704199601448062710877197927633631064956114085080438778349773738505586240414617496637431491670033173095420202426595550792096259618059761352556867783000174166773232530767575000557448918854039704377415907240004883428666030358407078325226034074050716905461457611026926783870414454392179637389125138696270252124353420111982465980401156113619994399888238233406616354872293258043474447557606485249752597212470166653357283128346118048020417472364464593743397762763129002717895695354565828018880824270192106236515419914353980673654507812450318662335641796988156921297464952339738340310449289528378420990403481921330593071968104181041622057042602286489801591328766294080657498566436199071981353220438750793504486631542101560244581194678490232002435088499131627202403725311536617627904092669377235445051592279171066673835334952786765616239131972843830096390860499615266118444117120869833850805757641265537206403209380582382244527741090051977964465530013643430006825953936601138093816682149848954494093538564259417343448054816827741407303396387425287114656428073555163822266359005172426095301789748356232935858349979744595047867268818691519056322630620032702557487757334864571161079821659504916640055235485848799569788550541168473001346071956630789588847031561890532540095724698086578095188348703112311829463491404183516479347182226478069250643080400231270676208834534002489537905618305502325488241562627231126909990982420996641527767051407323334531166416685511838064379156779438211104948625531692719343708840069797507188125533299304459264455488914224548654672556746119799106766339370297183727386828287895101154429897463619702782259196681041773058158601458327187377754958500651279441187189018585097108562234298649791623280966807709315775284519357739105239887273138688781160679694185588253608216766146838500854916300125091716204322558416208913914219124878238489109422069149348091197300351396820257520268795961044446694633008263938366209974221316618651857561458673530768824543740788686501312360320993545999918245350845841203031909589961169495336036055185913712958138859556772194766751068488284711272577361850939229194077257980089531755604736708650822617504695030656624871953531957899531028043796638471385597485187102975266708107357475539327895833558863489025672418538678250236778054164945522187785310430585971357856477423471445491366314501302478799363575104010878997198981732844014744315912960614988366031930549480920450038168687918267892394509648687548398559990475476238604852715764693475477620185033569207443337044517895212995543959187129913868428673982404821927268429274659978735643765992087308742281963274043489771004776752858592572228060882776210207755275774547362677218764679700785140609247597539426367702438353794543596233678262339125667029434341545826988196760179763888315952807186160019919504709521841230967157486993468899139820680905354786726905188243062063918770478954501109608515738003468198638827029258386752194312080284124135907564519809007163995189659118641727488965283812833435268935361622475495583965278115218817151534801650828260832405527096402810541995245849872687753173315180021746464015160558762237128313733519144213801468361167215543976104829037121735980114982833743621200271227808946062243148215084136109455505268056255293476043090966851599108364758519044080148226449051442070549489629394112542330349552193584967704280367571070000036898315735737534687904134161057511040183254221657082532002842651237993583318448020229586562544940484445142530837854719749051743523432503367580909060913062823269945381269305883909671025212216107592061320044798190872195544478592222977170736469137830498727741029200502890925500958155419925882597643972279978248927225510313151818206108173058485383763222060211444983142731784542200318489540116785828739492642043154146092471430858679110289245315739959832615680014591886300233943587451922197189361614493815595518758317246975225483648406590845821260515364875675351951030766681909145080523328514185349301246026636491894178435217353268390059223859566330252914405646220473241977798722152593126596939831149220838960182349559594633917927243856824230746431159920118124233179370925179552575791121142568063957056729466962130835880901757324219639118563056445366204202471461024832175512567549624658897262995799948177984550913571171964709109137265683309100302569075667982145215406339255142555293554101340460804593430120221428599006125810567808341777629051684576993177776514759253129421381718673607792554275496985535298672041414057672603724335856932827584387697877659105047703268984514608899769094238244147524224769788516237142740792612135812201717484944966747359758026422837289432387462568062124593935250314644573645067005047426258940657276936355822155654399027785539109346676929013909216968124275824320299783650897416214690628011583388652724463431664693642934767734740370308867180021083908224116964101557816181207361141852625374176322782806820048027864987160419850534863462232570558830374748402602779847050204810058138004395307056197024045785938913730790210529375327893542633869210665633003105609220699914187440651587986664053510037406304092656034438768008192036854923082843924175940704937271126597381087808264013897877298192728502391419495349541347945113269186845298923242749903492077726104888653329432761131150640998486714151390967848947906821358129390316977558321935559604137636146625817013915772368356336240414492729576480146150214860990687957766634314038171749472932517744661014805886504715538264591781792810845080680663877444002378169958757723880093421644404421373153592807275861068368062274662603040928619030835145659828427208214150592311241095110768098397561823799219866391251486666743157787330275672468322031975936950734228142694405562041042733046900999516845659567800869987055157819437923177671341900944523856057756694114309259214100469959306112648099604936808242023480409225402629612363615814931282372215550500162549046456132925999587093375960951845220802499387345748614633342192399080319628429605787665239065548921713399048175737760700047136840976824232144332321907599479920864475006796628176619613598489901904188733465269351025390312379724653016533993658636664886865539873578701367487539010706754358450583759847178362175169628008758041572161612076733729763323343828798130684753068938474264147058254453576769863781206626437096339303186626606242012715654478815742773538766786753085406401937258838188266658794471600543183824794981118187324625627836601701385261324746757458944753038973757281355799656413693483906306792552577560744346100571698325148879228361979734574368989622477670733788022235215774243316752174219812090460107850534087767700393724513357037943674384002346431741573469006828109636994387559639856212253213533917073869807778978020326962595557112986992204563888915989580076750541100215468498596860375247475264522774230993240512394764611362586627319439099573572296580470495427908330584556360434649899349826880592573257072713920228701217737838935430815288620120616278505137941214987708795636329664285284258555920608141305429853000404366514116276872255608015336425241485039383033925124260278809106270459917481214209944296709194716191782511019793913595947186558157246125272577982981000953974415962101210475210481443690848653289954010090618789772328484995845945639143704329824810006259599984891920967948329911176769530662789055295234638405383337040934320726408571477904255987652814467635432223328999768496455984238359324351477940737022773174747487010812264582566385338104285755845811488103359300850679642560820133059219974522994547480105372922220819573989734769823685473970807268359168025615956942927291201932078864418296218962357418675916915708873282953180689645430683103131083311702812127615807288829487237634022534205475116524115619401898308978951241646417319754785271810267535214039547654291952931054049739762200468654631343732074862450201874486092561794534391250633795147147974858080355239202503530862064277627496475878763371180612180935874040149787642392078575683375367082172804628299802934638507218553424053284220832883387155009429719984124149758879710769680598305107582579077647738362847477493846154100181363286178095147260463497948721617836815770608430321714450546973899765152854031070359358807659321765611752665820623579210360607347484826573101793359418599642211219615715411751103400797889000598610880489059048430453368675189396948230782223425918628946962651506858953657387904431467928508871052856745095269545380407645702771482754430733896775657240259425660536074895920133125729546860840269329749801457010866922723585507342198150243384649931860103715349489963127028341721865490691083591227282308994841135110823661143651314538964222250515209129140427949386437412739811795187787176670019498095369147255151025847944809970742920273831866464616669218393234014780422117380865950604143148211451922665882783519546136094882055924022188391543213433888160803680083056905607049994274844325868530643532560312040208151008996986251533072818652034172361875495046753730987703482788406269669871528569143340279599698594167669706642320939724626176182504775403095687911214497968902151966420869086585686835534920467729151170060361998501861908471252127666958450420987059711386754320293477920476212120691874641435273468203933857569056207983742370428213387758028958797073881945545901538411396803880501985706671839806823845403123479653770428205159265085332304078994380777836023618442297395971569689356519016067542405953665707421926808356296490902203349230268179940867578257258820960740801786882315781207912210489811597848239063771411782058897324899178955251566802125002713327684208835161700572038035938907811171049239200635144768137298563703939086188414135210219950799053416244881705653054843367373500389837506556865518966207537162936909077308661855531922773315387861985187387810377907359357258039315201380152735893707290258853403191285046359872048789743310963390442533605064391790030710742703633868949389155309009350474817938498380884716591475565577460879930580156734503568583079012302989675014897194586146277189116607998103460244590964984407593524646099246933583331103754475428763788121888942257030961365182301125059522541249474486834078449903172698825639500293035613835095389868822079492341928094438178606089789976366518324858927849801787167528223936870338337132702446625100750483332069447535822775974666444026899268914610932775395181778138894428920167950258919360223619117151415939965746559928096902077504236712154004904916218721471029171219898272959832881644265388813575169755763834133294682567042145944496363487823940258093977026971356236732883810971637041387889140064387598873892730756237508103941419286172086166395681581672787009740541703280729485005225286567117392581019301994348776857166307963288626220662908472069015400851517300807808196044620713703718948583690612492128564526171405982299050004528314814499587711497934815290223239220069533388882168147710099943466700312113119819736389209436721990509802492948108023226644559000002838318932854003121273039715815379335619638516477984323248594609325187628470333145575666687354502743399687909447093274169898739998676331456668579243448081102003023764448870622885024039488323231371404306742961438486892415661655631438436798153046448999065843091543064533314304289419716532825907579996969868677157716223927202696144145763479409842153345651979068983440753735570566101162510688727556942835129714097043484390796266859972096780387198709760099716129020382656801952264651548588581669643866036067166518503997903490687996356777452239091446797205301501581781080416250661992644295133799197180032744477921142221707790845990306526281477473340449811276381436799195086252678770376315622479374695908301819902441237565196964588851199716605792735475384197353341772988674857150212582187756723714408381894106263664069603550254082791891367651583223894403562174722128222241442380858187597329943595012334194535101221678112996222408388491770463619890789329144503372440862806725787608974768947129422299697900812327731999532399717630596472997634295108074086976109124285142808291622135472463897927489804523071380352803039978947563271406918542508920004342180293124988337103688148257962003680479409626986381772303322042190580567244876183138824943795482637785845752702041759924049274009515172245285334818143668731306293555461178203885778366500998270781423028002616994173341799188560059716447347398897676952527618790249223717352993746638614710566855918528491854240123203941593568340642207520612736096852454364866617918141730171253602514870777632167298972616933564041450730623504005092163644070428838310565781276350926641669420455720589786686748739814160999947146698352575526357390625427322067139845235143203745150738436906768245756061336345825242217060736710551310820117406646058168446018067610117826069457038776047052545491715880580037048043030213592650076310620680640534883666623677799905081523813809770952290310278923656253036921241463934086563397053673200680517716964224929508776576785658266312763887665838339141755181269627372891432983354760325248904804630489054712279757969448638245879279438466988079724644832609804460268683217107226645846783076997475305343332032210916471762429549105479980063579176042212718896566091099571309124067459505860069588947907964792583005771047408119063796755790109356311393497629586382691625784751992038989096145420257540410927853505541629188206794907507169522227898836937499088724988223111341898491859541355625176790639202896664501359783961153986969254445604839453478682083947253905922036474102315399382038633203241782933087245969416349406023620373585779696843687953282006561253237272565926911576100326107853153453157323532356556504980282581502575474301491125327254954103873344867349257726437328086990161917294816392726542200811364258878197275469898279055916382429503462180337365480570276907004312005067689067766635928666629204102279741700431410227203672246920873548553826339324929779886731084094561896179313993413688480802043357382634372551387615627278214408573677458479245039986203107262789367220037187438348203973680653667340388036157650982037648799786017948026728162126315626260775061404459825881293360452393004926526701582457524213642981398388373266435874079263184737555643675287021779717932026351463428050945025825741839287456820583351218185361041330100708543290411685929318521366209021065960416970175411903635722844741372848908229941297440627361936762509361022904665962331488946929306920575536720334148064943377791036289173837889709599855055308715710860070329802462172826275237652183702504490936617740905217734415470763508969414041415009197812717794694604386716640637221684218332768917977319683999200474560239301618557109406407898644069754186551881296709349011187208183886622589928478643999764075396059626865286912583781792625885202563243042894198658439237610349267980213064274120520710390733838305952901301152429481590753703557356795152954010979802637563999888815029847702559513656797005077216789035174105460912745453371086106074953258737376883352203534327537238074109178127416825369628038595266049318020818543971783124771987598627453043954075970436676811410276032162647446348249358135966069580210022246411972427517170032481460062906529725487916438385465217431157005953958187234751862625075682017796400093383195100375530282688311895878820049043257681777001295756227101046342126327520317896370907799639701695214024803981608302039909495658038957786767924026249531252699528967832235386191528360057108367185247432132976171467805613224512333908569527657462561567668514141213938622765406327624936421945975003912336392006876725673929765255880753052644501850446594015606674258812233495058600836913653638609490905478452575147336243756916777875431336519179730399945890215369435653518443887682449766889852739652892581547993270677060654632560497630674328321320766589354234881391840897056001820429973948409874202378065188616618444760870175698342181988799813957961671533875238289160522220731190187219922811820755519329690345238554913945710015071608525235521600704796180417994147829750182101495133958315069862291499845696164761614510200562403938482611807520882899743030203431455732413317517557443880874931961886296580675250606285155803629591191127111763469096342037134141666309005946028086548631855212645573875814317059388413839416052216682639263646671980725379761394229459148060432014518571049310040450734275155726912846810757510779771738083738367140661050964342579086498787224389756592177551008914309821140091606322388023711287748619677418777470813063071698643853317213672259026547550876725299472014924890332920508306181309666246992313070925680626929631066197030199850324069580128732951669632051080285087995159782336141287955818735532800211402155045132740000013951149266985446435157092204968591291971348271803670982920859734167510097339564936843496740199309367437063054820681448971239950868621674097246777141666905206399776810606641831702142430406240160449905948654510453578115491932881693101044436672254431911695839584966437051060013216242061050168264109102295678215879528105057159150652936013769403889739601626124041140747161507955248804880452281725780598935803580158336899559086540341046971780981910710363198850010689187983212826914782615545143261410771785346944299209414883752004070925594801193505480053413577336870715379731573889445688732470920058207330456109732869710798891408569131640341081051673868970439468951948029962994055029306976689809543941702236089975399385852231407404541054195770568783794747418188506554995155905300507759447513061560678011626302292681606699640745910020457448483913757241665182164978105754076462861593206792050814356520458802636775170877312049043360071393492161993876325454270390984966763395626537982517944974980086622851749233374040530669144783892629052699756000202011132598153472453122934709511696208736849234848708990430731695334263483206028316267598001487447596261417698537898459273373789023454404761216407377213658738506558574616052016041145248045530117221363339899699236370801654530972568766954276456714743916651062747812281093611743687085162871274160588231871424846240901631401346102151429047967520671339975732392778549015323113187571953814930983973566146960121352995681962011346415217836079639650268900351790567969232372785914925806738292886658804102643190822069113786294141119371598292519443528868744874205996703061804498715006002514103127279298560276930948570605316478464251508676584065745454135412354069822781361123950401758210549824830471003376218943402068719705388461812515698870113889060391188481713069480209795492270518789988770505138191252765140958302024038532023768019728633244435500753360603817434053568847072339807774097922368422064013103886705393761880000809327638482946570068905141740787248669545202269448134476911692293695548088828006674675667363794023099936486643520643581598017699802630255348705932274490807445088899438066020746858868021656035334033142786754080674270363669851113689363515227783788082807002085521999212674436820561707800217747722637960093448442105773330662150492195599413044126439492220389675461176606930385624975939405310917933770190151667730036532620624600892098205310438778086820404351421162977721010476470745156703211698890104396846861337833456642530832354397442080882707897141920094208959733405954982575544012244354183238079588279239695686863586804436531386164309426976457434723683406061079704139385420152576334153557384292865941728481007551077215999800287860089860700059107401625165096203619139296508870193306152950921212004343531017346822509570472495240057370804344187307279257854709300527797690061441230272212631448405700299937563477990912909545376014438581464350382002501979153785434193975241793119362836861358089039329974260627649071845412873885017334955929905883532124057194123428874108285665305945785804437659650642719491214942903188450644215289953871015073718311430688929309990915297149967871230719350221599846160827303272257977064143683390301606413363581608048342831063101984592295789803387201299948767606118586935208818687520034507982131822116863069384969288060378368757164280218278102647697485300831091454299710855551470001677824162447749028792728262247563802808312649478814732169492637391565680012415353987583504450272521150125018346799702264804075524413389614029154896398906443303317796031488164370791319986153940705533400747133516046597258022022271441057847334756961583896173089318806036830016712194748617074578610214970802727107359555779687703064905136258261055502595565914761879103647611206343420053355304036051327782836002542004369077754587444215836600696269001882130014049205379620626079526067273717233035392763509882829166654337961882960053426669374396021376864965283429031941150364299997637670834434940832504326841771068974424729484194979933855386665698887368464508715140761626598400586339544131980996014080352904178582071077089884659456041049578760353222682860769425116501110931459015111286725063436511244502931486802370943270399169332738425604603532022772667989698183013455087117610112605285552416020758250668880847095898891405555452634400896688863405056551284538653696004694223011080622090146664528262284542617663224270312706827445532456298834158687887754301539188180549610182303716293623351424582645158412351984423448640403344401116539370100688714751795816584100557777447852619076811656649201510131896819327099994609648499464437160075770132929459802368891675716986292671215948285099866572894275065867623961339902274293159144046695557605113942342455632440096524349964862393146996467095637881751155550873756125684050441382842944293049786726224530864192083680084574179745098374045127527065602152059697896562882744657248926629078815486101211755045166640189164241151584105332327920288644961806564408215447329377191516053555687637421737681978141144868043897788444837310794639276910566079219862555566513913924611706714276596415119331764429408275331224540238879711681641914428011133651059226657858610898625696669979590126705455966630817833876621124327143810361532400518780929532006782189532482778718584190857453832849215196697976715170103009736007557193498012282563537835953851480791821744480037058872850505173868148389098339244345272736062455332555770811064008396296664389880066448726102704320487250116107547594675798346184887393393350601360050723512767860224787667733010285503457812715754143913319288624324608366757312557505149022905879818350115290684640224233413788525729019747835066157677583833418533236311328986534213344470938627408063136836752426709125791490794515328281958664129818363635082197186280336073988958384404619199005301689654693787533729260057805412935272065976568333451010643478659988410136477473381906366336885312542767019009466223269224839208869247362107808754527578641847707153364609718310640641713157991158942700685799793138977785307955047395080992042578725423832402390435263599048501621586784808034745788664279369297426504905880798742012259407115569152868304365857154115075830227215917808892552816554195003787743251322078124403632271505629134325744376805549517623620066408216738764450016996510803888226847926524176481950568272610931501658821340384855192108903043460044289391285094624132783986139411675103457433322783357681532653862808345104937888733653482924067946605382876302762892706058275153541483288806461022158912436724316851915416756125238636449882340465999533126617708837681828707501738367362634300043834972478111602878277479519386742052781265365058723092612782207746936162183183965582156326892697917878840730757171853208856461407704235714805287814151306183264867627815436480538169998108235349895574920219635266260003207558088311579132799075146000934121106525977778956914864152733097897341013682342295806321139121477674210235770219712206351047048920493574260350177162264397431307755107868616805404062435880095241950932324958688232139960065999282802644857408974529506550438442853533458418766124188507783029551949989159223864057080474248247685599494826542428695208545926505734404326308849008843806705782413174229001842267940344352710405625342234851326898508430373493286778592007856737698782000014602834989563530296013557995827864203074098605288167798743846643665226260400453304613998802795483132781563224379139023950310012086810966086171361049501014027103269421800923296602850162000557503289173760146378737911727128040228975448449810255483574767072366616922049590053789023137514935158269299982551483924276737432698576946423952837002481971948347543720741965183889838023347532956999232499930344668797638002987798707266667985245266196857376512519548506400694356871824923604999755860003954745234450877249522538804274722738044953389612335049214206740770076516979367699704255245229360261000626634236324580395176343539614743962151727311396502717453024792124816906762469428815034731284886300483184985551536342481832039398121454254822517251149459484376883559481592507065426405272392331017894849922683292020881994516034098202317385504934125724183410497734262002025509155818570153362091609490642903516122545570542696631643098696098708641122829460932074724930534221705946136449782437469697169790517841761509500160399349312993283241096298893805033467495086221391989779337535292319654447927505239344455945076414847460633587508567932854611631443018692796113608127485376692220091027770696550727011208101825650882657460243754547454047798875940650611004007059723267681977196135759529079217521110371562270410236084064237419631128792881678188623432807741535801439209430476109978889906869709984904989499533110582249256179954633792225767857377257283990060717693485408373457264742685309036827983284143078948664915026114073490700383566513267072959776918589773380017018166868740988857965822195369352948964620692476419478737405137184606036095173734120363615659529560972145392305359312954122679611145373500634091533716813536784747312808186308134472582762860523702344458667761476762855237482367156134633564226727509854105676901778145840165516273138889371271145839987006270995655562893292657509959248502852951722413122382691743393838121200691776893380938789735142162975651292114650514994973676516793102982491894821106966672788207364686211959546214702512113892744853825511196638597618913039575921944144149234880964734459802131945083800289966494467406901819129346770761442025545279926756162343091593701289030511775269745450232931039124889356043316219207050211149528892609563645576020296775749512272324851804137256480233419495637048151029577954681768219626124924876720800071081703173681661387429144953991546203935648499157551668052407771452778470090411221107314706256810401224779896950688699219284019110044122910910190365010539628676485205610325727360954918646895994771789200879816552669175441433064707767097984116799884633101522944677496590491841865878423018369206276095764224882902871020188599042241921503853233347274456350295240143970578834948203866317892322592838170346186485806896804796604334662425084973408126967812129811416819060544727522412636099797624701260353811276792939485299919999559895844569168507161946613409875739123238705273175150913425077172012748457643826652968493760538606040201132205386506182109756229313775709691322508243767442754606053547321762013526655500955121645177615885941903162891227444092487339227537913993552246992637169061453835174941972430062994181734393211842083847129412025381507811787979262095794614515867471985481844153647178052167360358483699934716034852087278468413441913227678369885883844667259097504253498465040747261157706961936274291857649075135376494078480558195008928308036371187223786484195777553266567912703824275568481134043033166058414487961616844348023227576045455516145109333937069335405669233883686230403936217444569313487469042946222952713948712081888518620772372693132515245710696913592071786537621768718356063090819562795485337929853198934731566710978429897513090630842096349102968578772021917006543789138099509678169620185384164027816368876111259629353228072827669870380059838256544969341402007744775313376004553456159512185865191940141453067582409304701673578541051251097721146584083587906107010065798638008923710099237189621409013900296338636082833783597136752373404476165155834557924227050409236314342624644828575188991685133653651013741531439635628751761283260263696227398634792986617492002471533027178815097030505143865812906296163245104256547110362671262322983957970246238960795610712102156550591086910236079269579050543858039319199985237841007439192663293931858334247345668862994498337516172325642993049287494441918990078771513187227592708612404423831405148336371394694127630300752655077557214748869733278854330736489809776572667637795962147139745025706914858314544230794750926614142454220358208620602821917940474965853337125813809516986991762571889774489120127955183108771805842654965486431436412605223716695328974954254101702089080375399266095503007939626822808692083548839764504276332664530355735943513091759149041243575718379755842564760584508687207940557441039530306583232069635494904853460827012305064381087193816800931951999642895563979573482005113727302743670889622210934089191882462764676321086160600638298640181406587160579917803373207905676470717437576671652039578578154797962293188607345926633329182517271283688351476407130426117085975555615097963271021276711698483829166221370780130252515278360105661667610126118902972170542124027801716105483277318281019159366945765394935036598218744150415205194668646972461502601552293755988266426845016353109957143052464440708946091830793821942729222108046035424460913095395201214380810865268416000017977763674085510184662271822211131843142919415980752907390437981266768498030275067601780815888805169888390194207402307849971946141805719382879826324421270678830305923975054168141851708549140288627479449236779568406374774359722466572043521324843091021843029153163476366694445851539137228403174384897913952401496461763207688052036292230768592853671826769563169722430232260820269955675909229555419546471652523921082560393800517388807154357002682876533872435161091031630355314221419990483510617424100033281276329346219265268766853911236128963658528195532763975285672952843154550038116520219371474769829777653151461718313150473351766660862907293881037560840866827338106804986130654210109378936846686380563224780428868066860896062827275292699730626394513144428049408250345673908323942799382393714808945943967373989098955736078136603263061578345516726421316088009552741411781448900860903533046310945682423652126127612147082412895571357320197858190967949590996515056483284247479218299634116418248558353046019156881763131833816450410908989203004779404118596797505800219197945407483940166190549871506465181767859024177274366527380057930787357531507179043347072340158750315233251713965207037796397099400718429906505979490406657669205294491295129906620153399298909252164693966306218184694649433290724985611222939221502812892479307133746663413721723586247539563509205435218547426927740980174080881544593722264267510207247291325508184336872367136986848089817888349843308229678024131677577275654290396911301928961288497195335318809232116593036531158294462802514630842222320955957978353169401696727806833089423450079308108978793739459589693694927951634197425471718505520248290604158992956810303942823352848218315791144084232869811091516089750027917533707577789725951841032641931688697039209445623450480740065225077247395681871099921426223887234215607381978799569497372836197241499997361502422833750360766769992411464046755534315584911301915104341800119251738536434789549219602462700527272028066546618011856472746244485811201264316936707646916217906040742594776420195416828087429244328386774170591582851639642200734715913354411290263048501074977058228710190951382283023013337523745098828726289182468782464038770902977530016970921621787298696094976840574174773719298799201678872761002932415714404800759275430546788613625603903841733679735402939082711977015447496729499702432821546092035370857555057275193818078698787113851884242454283075490818344971538520819889017672382584854227461487001527441477682095056303226432776791729997153247439043815288704679773031510409892681472525199449445948878489554978792761393405743976238856052917676166429236879888809187715054783932311609358592840847073132044479628368669377500841404484662846985960426143826411733133908426633746684690473968849776393467036723712547252287720664846602531845849130246635071592991819097385865401728999869815053172526058844989271390372215428032509227166036565631243116420719815896369049793711753284891324225671100984753685393170786025004184383044442712619419296485857845139572306167918238159766921664509912203114597089058938634763367750000256497714801361369247541928765079887188640215448556029147174888839134020764411955053393796813798837411941079439877466009566983270804143882368508427236447249062557326633849246743046110653069264017751614554893026392882717155666303465899497297129657538978548069190340837242777435248262961472413780044077086695910778864527435643386001608487233968919605963002746634635502671481959313618014939400022622169294989965124218216775841394443231020903161993916313347510182921009843952782435071957260204812428815227563895157371238974028156829057799589957397115001473460483164768340101171750356219983159174614638758792387280546252178453176983725150197487130537966518243175473916138668707151473220000230218785646777086371168532704394682090326049030727243543983081448450256403872340178608505043460522770871268901187325152869818506723719485893404025459560927593956994263227545652202817176218470473176780395051291741170752538375652008748769351867847501654730150925092730049980279724054463369442484049347867860053641307535055465291309579706749718885865669889361968816275555753042985517015001653874159658309057236136797141530623513106753721717516702123555550586115079998167982901649312878367475270270208547590646284627970072288683321587695571892961537696660705098289674863572422738988971572101802189145559034388834406613268395067061862938429182118780422750433022303199575652737449346219406021275145835337434946415971865590989297181922881617806184415282393395564080046163380390057500530447320627683870024117407833357546784907176246797099432514434443667313565758574437838103748605284006081581246852104651322887318325464568829923393378557680036819369239028367321887751028192463468915435295094536179278681397126437750451952533908105524882683532586985759678486610174301554599506895667091010625791588249304292934365226615333467416796173471411685716544780129099227934028182672495483386256844739856518724544719926290229969503044683571110604422378383857530005335928314058613327678960500773810961826829796595154845013432991219144580212368405540352013060141704737543191792663673562537471018605541535327305096265506736598772693981551636956399962355151626205687651389508933208610989312513243546243788419988032106502692885341129342443023996344481807683057357704467475218339716306058485929094979234949783462607316267680685775089232162862141370693010640368082531083157896109962177420718783261999501438624393403998895367256204336460766578325871398457344017248540943502638661510250104106850453057946613958315285729407110186762010359253902595647598530624583178927186546927431209685766421567550808540960895008803699324312082633741083526322130927136758720069792987338647640391046467642551104957844436304178191022553117181255116628028065536899794504863866482816516960341356651222049001609201752390130368420938778989871005495213504803014667783846494881626099400417923258412425456930063448516992120819424950354512290440295144111878612079476266646907425382355915450075870274587683959809055229921344116377703357330444892670133328522947071367104756277749884895646611110147343758775372607317476885694503251572452831639281769489099363720003326028835954148634059855519710935480105066967027193314533071105330035173211638441061247043004149318881207844299404030290189583138093529316832902300758243892079683634746785448349419728284211806683312746258066773097855424111953118804240817024110146384528553547497059787485664916423280050074236598916865349542530497581830233205063323264563006185990500558719440750221395417580911337265968776496181197821653619207124858957458922360604141520403736001766833451980896879201435304195442315419858400810419368825474252337929432244730219078500571463067053623883290297796481331948666024611003411973499305249989906521845303572568624460167604651012212727223609617725867344990753350057815756647985647815678555742462589639852217940782615038478961123829215022232310761385549294150182203782561157984340296600064748983682734414822910436669176281846728498496396554418766997156981103210459010238232345923575875019569004933994660150715836217149041351502669396981699751263695099556613541237832036212556835156086870843470770109410299383775355855301176513155783517374784185640291458906910311021539448299436467168993464186355106705044537235921590280157851985233690637613327544219398437700815043231811560220848595718128272843033511015369038453152852286141753796601146470629059527561684629226971499274916607099689410612648901893689766574318603522144806664616267709958754625789488600889705613640696178336394981983654134551140050734651313903031990867205035345798623098693238693332978110972994934913495667127905211881724387305870169927111307539413752436496761934181303935960307465484426225825919542378434652049182704518660488478047185475026430783815720258546611666963406604058902152542115938830482759910980825974381916292265854444587061505810248533059082320967347682063678290907551218581446635104593469546263316331026715608897915173063050096994164984736791974574637633255870191486390405290083997326187438250482302847217938248646935234834328054261821794889200230632367799850585820997908757153138391137132014974993201772452347325081287134666078313883041881415863493536858536199925735694242171105000836425941692710304358257553603081990129771637928911611504198900646552465502400587230600806859714331182360703844583799429218895812023044892961756788513658480948066219814772099287807455910775154993724362840847847508813232952981454094134812194035684376328056778064778827564837513046238983928972740328805109172969858819358712215550943217250287221605056230785600399957054852829878583028742925524627530327465638506102819396563397941369799751723331037045913220490458810128911706273530360794758663871235502706484276528309686941298397491664546272682790578325599262918533078615536377070428884701580217380128680615046273955732684773299431977412265164946203425969844347990980380420373300878566620866759977266263795027983544195991682113763553234778480434087133880440752501588440060590457813333919312445769569634744869813728440859328671437497029002381456712034004386313689075325470901243484282902414573863479448405699088790834265595136656271806858144261151596973493037031183497290496262118553281653119258243919200148317764783981598877468010920575312998559310648660136903553146528513650644253939422334655124535681074102375774519673822016166675538962273301526948146471796967186783551908482132574040891897188475553489042166111746735562183598941908764401983599186868237586559553963517044874092421696328783936790846036264397205462388802968981210118774076382261002363790106472823883817622876810440236842918374830199266683598001011265154822444391214414032283051297099571876896234774955509696554411920438395094854772885863217406756805949667276932383259898271276447107556101376104488667905717612124424414047917697559195132309329855340136441679515280496346604741724775723763063809031075083154623334418036297534289319324607881755561517626551447625194920439459786761569787898254480844305439588174394314975668598666800590673717779103713040581801296466210762970293521273384317850472731935765240315294726629664527804367571150526910546876279452195167950616446722467008160404334584513918971298584790824944218582403336506050199095814338328631706451518206006854021265332156505495135354479078516524348273590844727231387819701205321769692024710530516718297764803336307758340923692493712886825145355421207640803296368239016442183906801456637092318183843221673250600183031274817511531279953323006874737239359218272654595999634910677967712690866644870180486520502485734458645932253296976578481249931400142014836333813612615153521256106064902787142657074985560365091654992280313290007654284921092894009146072891256423271828396703957582988582867075177497572967936191004976939471623405317206598093739504871379582506411595122922420435083991635463736785162213696421354394432222833014059407476489512021065373695831371671882691252166647788936658192847982807679542471979169713923259377561835926015016299261535662903837838024808504484281619080891321488382756699577520427256774994148522814866840866298410000982211156482821989421639971198017785097455319444934913628485315993098033532777797799232748218728096986484116416222148854407440619852644714994316206682196997686361923874363963804104930318730449288767029159433616923662774171306063110311942626157924720923660476994154169681820298805788968382615891293499542961726210379317435601066165366584211203703310459348211895580715396178040405341753699651711430063913485676238491143485878443969021196964775329271926755435270346969389254582913083942825434494959999477327574357420694906557772063687582006327856112738036191704543334459203046567404116318520240210904464079065142426058950564468772547725830478981305407918363882778136781606911516094383353776213464850141493448788739779417747429539480461327610939392939534716284451962828210389791507355104928804577932761953483584603033962030576791459281265154017864895070597748570654122716927391500485231256939044230485330748476882220882083829620251911642169173698257073448388818766113989866475749092978518514802087670686560901600506721618639825049246138010955580888803179521589759472020430497656866900860347295987966813937841466579432564931201842219526503132878862895149539401697630322736136214727141106654789149483946043236951148153194099487573921670232766845323212899341184498813925225816728642607929223950063980751546169002844395802587797903925173003120682688474125981067693621492922019011145968669029136942501648720389059406821222855346493240768866242092518138310775115253433510210237857487410117912245622307822942520881726456556972947567413242801902271443249149614712454498222773528163942461950720598005519496390921189554150359470436892775716635718321478598463634323069888207023798905203199987669399460304907512120500023179711821678446355170831523356519052716290194225799762019250951111225797372922574009641169984385670227342151731996581883334989310636602000660445413919013694328043738358108212682895381330472007049473645088081749047751928510872879558989313459956139554554440623132707245915401562531023393381771687847557538794066567223857090930897077233185462258983390264295875176700871548804220028358993571861456751126268686253411559790870370442591033198334048891055868954419272718270305003513455484682268851164343919954876025556549223318820653442712038336176319074446529293980524856705455831034549670809107260471397787783371915658179270928086334870137686110449261336371941862554778299558890052536668682075886255884316734967976928677868138246599114148004708225924198254503539870212176009969422203801075020721166329404331017033040621393066658358884718459608888955113717144422028632549055110304665531600569896536715981552892952801362844690146597958912100444545315265988878075949717882905623164028502055236236394521335544280796931335838485346589688509818065877658675627543381412510248599216893249555801991039566062132617579604920569741086839022587803077612544251516482114890121290984448561221876378716210118764910979263198114129401657831686044221208419687129050301436917660420918719554202632782727672931074779656339381588060070361459395746296040704550142902597289539604096346984260146480226759845533096312403221300694897637349056271067122713008773863747317680595844616637636122577335523563709816263276474797143390422268066025031987743421998130894652025244234444102933451037757497912354018728352667699635590105682021349013482340984701436046774089167088627805704885869985949127812785662898944197801729136046201366983766279673580791813811031063562659773193459317928199010571006688504288897904665975949055574614615674963603452497915327916015924075046781495855454227364883638382893617484755692562375164202943578241079557006904965427380479471290795248468384210667632602997293344939236893783512538770221230852330244291334329107384481805871840612522631662379975956032110667488871960804925278592062778937666121837020973080197275195314878937247561234668414837650857929794014455499113248119469095639703066096365019883750174779370087850391924389240255778159783654635759913343018688712896113166107598549759659677617903880245158971983808540272927094873057821910160733101210447374112284013250979712200473807897516213041278140425718170642819213098168580572183707628526132383913912964062654149653341283622432279811376234565127678268147787792264776620734502613177025837286348215018376453920039482671323480907174253927052319996027405683044925446075427067992518860828294974963659639966832330197193000977593734018242977199306483352093299316645423845126625365622696793445796875189356278596715312487186331310012577173694646189246065431253976071856308076923223684038333545652092132197110322719535727702844643651880048248292468579991704376110195240292772695746299024828040266050264931498599826116735126463290407525756598193478419251209483548635636482273405688619592202157030718950024097371053589115464195829555671010947605572819809321096394694677952622216705660026691572460729617465995928676068630556170641451702715325703024784757373258927079531937302248990458477250529956797501866116165142696312683260641708888889466523787961569403248551073694757375882224529823179860824408887507885865338297275098100570358543462489430514248090755281029605982715823102941040814430013411454613459624423972138936761246624346538546944528934868524422802005659489093371313916429577999903716435376979304955441566741079986216120948635332889380975994227022989783117556813020716601426826158165530145468975613411924987942227943902547991486744416900756215703007125534345748691769280212257207295040415826003096530994840032012974502017438964380909401874177862978503527224049293318737450108217671579634609461485392335649237468670293786660041750531526314616365430959341668634175995851698639822588209321720443036612358806051043756261646819060238416061589142496737937102568981130043316137736620609970090699931641020298534226306076133294709080492554423094636248323422010618066713002986498939087987453452773153201260371191038322598343027918342645163392859116710159006013141039976858930448004194102875464227188932192164934701347248888958986073034716714227228157004174302214092684307651189558936493521425392113195901361886899863382966699473169693833273304990956409732094532699725272167453653934950617396406234986685096725647334172622349201204651962818388113151815201735681826327656235254772078821884654869203049626307392395517607076378096066614626592773299932211846802112429916700644984943098124097803313147869086492736435345468616311910094660322159691944511117943863966887447844965653818431933502221043589280182747577813625917310054378467791845913458170428816660383609380022762533694264411160689564618353341929595430102334683346051910781928969705503709606580095136762670277518766952544394949929612819463887049804203033663795518101999074432896766863168004758223192532944607919251959469490523730856767764046019641358923715184525916401746892720603349240211167769674982545923631780817814162194756952481254336857139014385210780024699671136499041098753466804551301405225693019433563628311778041493540379558670488055682140071441958015945776080268568769571858155195013418994458695159089814626110280258845556408915288808709333969454267214684121674631783084360477251669773309533554599785524018685712345412421325649847296376677250838738475002748792526952582963952358454576075578734754558746445790959470693532978026772402649050509063562973530688513570173876340892815278380197406836477854943862848786654738891443030930304680226454593717744620904215773107294715328731426244318803283044186688563125373521707565168040896678377732918495426701194148719802792838459704998887125532897794304515172420125347959919014354545649149878795850296644528430947517043797635948785056635551985129733492685552444980746770333302138755942476403033139816784929660478036779625537691156920417153768429255566000438218498108809958453628256089369688509860351080161275107305633420881345660060561776312775428424742401056487887057766497442964539950159114126349652512330277902033834576920280782179698540670412780253856673552826038645551439865440351759583632117629037095120801229421890698666290708968001932760672673777325000929630119907823509191043895842635576837103162851004361707047436406086363367071392848220644754838031322310612636211708815765555835976445500703662917733520251267395121401818552457742333090726498530874586246209750439510981461143757037942422581377334764359769073547164053050688587124177612105970416399372643954549012870142468168016613089174736269471573329500477593902547342314714742638706692717347645635920070377132306242825171745962825115226891705304626411643760421795242388056049321204287479147581301381957990771098194891169850364349785687918418070206727093528139264234059420647207325497513532625443701906993033229653641347581384097906138387370062625262082222585127294301779208429335071443477919631492799425378558161097099739828446618059873769010112350569947681922374798642808767848918209338117407717248966762531545917339363724275318577772914251612731304778522645569069526947618790668308307758075489040873739055824208830668032996626623208608492252067612953499331228650833148897200471873696819438116715490060711172822004691098869557611184678100941483080753526868470269217778776906415992018020046371641473670540567009941960029093596078714498366475198800906235303210075555083257201359915965558776953616816282641905401304081039845737578150548927315810929792819931875139861179309410211217554816385791436898825822924930084741343649782136044160313129792544242975976278583252720538937078542284038112862258533594133743775195822137295729102635879154087550373795536202828406795422836670752128806434168933255196208052798418439365511927257600791119188323823464166199117921097327005960971329687814831833072749549200186799409805878905002234354461998411779442917743130075078789684483627845695515388539406960098748884775958032125005418529543503136912524913999758846999606445005005680248842198231855686456885208248898145562439451206507169927968659351216408018423843904798700569264530674205830329401908033864974760392828675114611355584480440846889149111522834616421213916110432103462198296904363045859144977990135369254855389898968847568777801577736808737668963317951074543458704997767048117335765220328954245679774766324520612802591453092884661041018751361036802035397552217968499862869108525323531772960458918211371233677326771497654390416493216946864592345009975696458988741750454120204005128684551737318843420824566743273459444731164958535027085490295722778102161622262038249455210481005021352324423642523658219876638853360511178656866807045752945087734009992267312013225034351296180405200792579772157390843602444864927645865984779022399724546114819430334747314903149217064186020684190697252784804662593687047415646345696840652990937650848280914963952201406560041381404851689218128827496590204061803773368014915619409908575114208332069202968594397904706065962458649919047506018418070233922430273113702792761506769253726534225311939649304212650492040650451603897981459244198622573256975481700970183944744076575492153866235142577945754494378330919186481985299527241927742218782605987760847425301281894800747429118402834988216779433623166189190419599863062722522985466144574049554631301314000385076623486982778215361037518713190412618529795412526476891437947883950822759156491949789876762232656798814538531594769495881699173786418773044306230237028096311631521605140074843769653054074541887464285215152711630170059720470704007426865484259595914868620112275966103400842481877761349910758183272019979766532673228601659690062597109542710027567669818803339792797542763768781095547618495012154554368811582284522295961947552993773357216583304932623819348446125140757754944050417701329866336924376944928792581184757646576052801863388807299291510992326088280836273715335743690833158066808437632437774769897701401347357767009285832293716992422602823137876903939608766757067380577998034491664564332860589404593194551963029148045709254320166392758339667596014540392962900634733040641942401984597444363250696866273936679031476364850489714023192970274783941357925053550852033178023515283000662975987083702511225151197489444642151699454767481862933497798735769892349176147254588198578890261503329588473980275567931439231148738192217304433158193952563381286715230045905556236153692355556224023041190343757247683048882906477961770601995713667889019786494925999956816337479978615835715471032817261340733646279221585014447555068772131675248932096422503089433250614904349898990295155311119540417691046065045232544156044670317360185877788078364176404775647228749878397341719381975599188981927510228592067758648201486547323769623582068637886692295369649532922920055723338820440389850671733214311827078126099160800258169892388711117227642619259844195719553978003388354041952817805109402336799526844783057239805296108559190932310069114484670345208634576429200097921370009159829547453931331069261097426068536798816742709406408631821432089448137985591808084502736672376556113999711106646065010654869424655199048093204899426842939783202331291595614950277014981157993870182257592135136739195268322507533957858345525692864244200939133498888250718495666759728362763148944043481461416855629881488845247940166435884406801507985393914858088466968518956033329823684051360302559056426557968178727451940147177710735199962366966287303524711614936557461989471751126644723097256247275353158264291222452351362005821404552064579526935743523517590116847051054632827250861098217225613506147924275979871165362179688881817359263328359358575072895862889921199770322340291600967490559383670646274971656011338254172439756234816603891648021342734296169793431387092684961014918757545171699283574847833448254173731301160649115807345683700044337217389296411095602554206690705639673120968401242514756544028656334755936714158697451034261521827139901013126609734182000351060695964413028801040809046582665034416587738639007864580879165471301309048071226221375068813844722331960156939457423242231182017813234669672891870656271363783227842768733231611128985341238462530088188893951465700351781107743701523510333037683260165844046536013648853337174748816785869254959757488211651795523950624062885890713267240573735409471270844027472462645102280003489143309815376080624486976389979931038036172986752291856737823084034356596405284946591666470211354452313582376857374025684733491202303731123309605411006044426902098471177266603646983659199372826033306393885751027652991024625864212913574924457952388405259545381454053715524622182109954345230226950772854045868902421023876645562368295107529291125254728257151195076406632240790611751070107816699103674877200808606359992757442316873525464388863843769605827551307949206905475666952810573585463754703481395129071722875176790901220177513852891283981413842679637323310618996781327539241866025266298975702660035757248359995649536969078959075986437965179550675132973254621915512248469164118421010656084401336313832801270397687667068783918093120787326879819501529253776505135806648525070503832905362022080667816649465166464504333693882601195837512558436330555912533670739412937616215776711196597527480543819341977752179315270675254649841534581005027298692969232567207405589135797475410927047061599739954443037241413138689770957943724009020939744292569568109572977320349641456867340217371947467045894330097628986002776323296886058002974264218796197422984218948334100937018520788767889390792799691584317455691017085477016886920636605102065622173913276834905864444530456591491651951106377296790988521976954191005814650165129083694195751181406082430119207042995458631435014165640745705163152253989647624905839029111089750200463356406756129181311176539907521440512196101963632481401033498009035463619135377879225457611521347718667956710224133332267026399475239002665509342975319692205216484512604288876675189513394152484533077919585580025080355104095337512786106338448514872084798653912880427400683474379984895344566328525293797114651103072769405246526836519444762672636140388171139769995347852554309927199255921896126210919922042874986024885895517495757959529695144059615122449531639167350670915479833704672512943319285540650875739627380562471743311264109673491167483563091428842269803545715579883062284857321592136379690032823570096884706299209882849871174599655196777408783019174362586378670879207107059054089109865804216549076612380720270306333266980124546997937140124037925010286264865072943816616364652739826113855129552631998573740918035924564235012731210479938957721270460341001160461373741357782118746577583662747718098334237971992041811038991999522476952697146148259435783422546932648113912176440526975497482155942551391790244354678078105049154494327872238804193503870512048913644310317029578212275313428559876464213038194346582567345686127420553356263993910219213934811413361044053426263151527053488734408321086458417800133174166748368015901988109540255760666384630408723731608285291051530775890865638751263361612928753833144349372761247774003406560274060123861677102309145499193861249840493838743874760874606189532025218844107424022430023796122438441387299015280092094055776771112095170063118805443778921338153298095823497920572051091548678825964135448310700857960370317272088579095750292282614756095658064507359559960099431660528205093482077936219434388620567433043014519234929001769057364946790199591749179157029591318868647630873329224844108515409499421409517178003812375878578417005686459576567766471517055137286557840433147381922353786964927908398505087722578101952286098914477860843492596870114984134897572848975213405491599580178591255347032301335629898194148911511761416071851143608652180107332221619463131719833176544848502140333107159185461457306717880360557909525390741703265740884650004315938880877025253051071929385757503831120471901371758463837476621210264206718585700457932578497177697511969087769230750297755888236891226065395752250944288626830540267982273109588017603479097004497236358253326121773992631711083896320792225447738310124664499988083750575663074037640546749692327725484326642589723406541597814274727233038769680834651342350783401073459237868751366901682381414747739789459060420774687300800209709995632871199894877799205964278518250586515186905751403963049752192430869390305269424188853871427141879626516083506973252375758864724456695838482167051202676740189510685756349628886940532840837984254643632325245473408364432887340707388779699810980603815675119255684608660472696906963927300014415901581298839004852212081844005446159492182997008580431443331329374044106519298065474950399709766630717705534067921123165751013212107639051966873053300179127774696627518695151961444962810847948765136932731784171707332881018815929811360229552759567490925393434228912244543901429597763203291510937120699979202362100645475853107938326243510154622409879057513188846885442483137017602136029665942929607868051415978569505020558711727101954071613246784772370665721147125123655236071167617100869241180391648399635554019682771396088043380682807254075374641021459822703489518344532221037012040428583643709182571158824910984164853740985158536572467173013518244489706051233081973612945637555437543116642278411945804389787941626421827464190357162935421511832350982175839561116983788250596270021008362802540281663801760859461513195394639452037610037139616654188020739904352920226333615833321584236960047256667395244093070879822135124259663624403379842513017677551049090128515556706262125056872229636328186283061933195071190605736619161619571467770143777494259073124884675083339555468392343759883886432772102602604520370352205837641327477217843911592821623674521566471570714743583324321116255569427281534424870070417556737791626936104086662577723731349320574730989676572339655451668170866490997481822879935592900279365256513582657336324456614992178423252256940219916539044509546088269477847755233707927599975798870664264502806516797600343529157966903531964218079505718610182239853896118279016637578862635385824294601571403753039101615052248193131902857199732094632396564709615394594353991624568299447111374243401211043863463077733694059345508470147165180903524467336089344474577026590808097008299628972428640568013661445610531284647416816140856416519300645039384849147956870888995807943019721364343079143653209694944953483777908476133105713073670590126910255742902645406394406939246754499742149220700039996197792355642829245677770012833226002049898160881725875199546032007624644410283053268162204547285316004303131448431261992809278707296773801595636588578709587361666820277661299032540952472587588592091030128978012386930595542275925834316148254260820470815038643112435334743764850677680338205581942638372380923252298291041210322079725167627391387696867085416586893983546305783213374831050182394278141466710595931560100558222779643987702767442202999167925410501275250231824653335325427660220007015998573784788213225277453197115995654707803999589535558942487485085421271882652590644466541993392943487384935047803240310663455272067851437055315981274818175944848959336912411880124733403305096318325488851139807045785959056696137214843171230735548297113944165674987095544918191666837061978774088786703533961606430508070066488491337209103814282883044423187314296139921760914509400846904904687757998822200172286929348393756509174791009136737556449427053827641573482235960681155041362349197060903392160719559629310408589659160139078532866760794082990745958078604403938292563259132245833299870047598679316905680902521677940100371791944478652185745492115192527856948480331603606514446859200479485277096882493939856276767062344481479786497587592289857469889629985006411598803375162117304978507190811193941675413426402088649183453212673911534738534674579036792126654227808930975628787242873339146189401197792761555707229591820605018589758004163962938649574780589213560600802433659566934803675831786711481258528090771732085365182051744619811037278929987199014920597721162791127140254476102210878507356509517012443284222836361091512632792989483883817211391706168592881546292955088934151318694571311030143609218913782827589857260235677596138056894180973203548499701306010416712965345787314666531817328429844127355072512669933943032738884223433836902331390718742117496454794393414371460485317804100535566788173947875779582440672462377947129650977139942694291402198145438136614011311690787394027514841993968435709347220268217115529344770558157542026790724070118707560320242007260099138709387593261622755008254687889199232593843981591764584777074519338326465406113567608712617601406743445907650861328206517095749191065964693543194286587286430309167600094173628891602494975738391854474741804014295185413976860877141739254599390092293448105281644447828349662901093994049777228919222728621606265068313222793690655514839509815798079272139199084985282146820948565920971949172721966706037258689998011468508946596573887287013400790918172720329206075679775011989373540421631444610825483342746726964835913596977014656324344769237178257224039448309006836797321390013553060052391996571329269434422108611393544340198443279676530578688573306826695954778801035306656988267013234549299778916448205729947705522620974837235331435318448401140343153551794199036615286157892982876895081545116569285987928830562971577727178704025887492168555485838546393438620485431621381227226395753906508296463239723767586681446315015214718878351211641011831367334582993899663168658976935847633757984398889372245328614717417831918241789785923702354813033748753558353863966425515609288818438023454956300575411827722705721568811716110564104266783907221559779218171858077491990455983658524355600492716773335542140950660219336717844690290984965377888907382642937420930892180593627189978181883701815458521785863277165663477132493941650306774652838465196152463493511569292144099676678225552627522717067909930711085115209960703418896547240730280092130439018505615975153982798225269078468645313552925226036729097532288895432486562875507765990457345349017318106404015088519468472038852167917515331023091596354111636230004741089952549622887134224115345310614688096915360977779805360972212439414818931280848773700930678881220059499985508656330734396253837192370269948075305118307819160643325629579092699083037071071885734149369648792466753965475542042203336118632576046727226228782277639394846884629813127146087927707003567022450752833617462697527846651029315513139674440465034574662860760490952170561029563860964591309218902225512020780495150207391426891483032325855477232636935431790809955941593546364682648226712750092275090180322785251373774817160869174121343730850307704547802748864326526587974820007739266722203196777431700450262334172503887477060264710045869556650226190984621017713340924212276697594708600488533367146952669557356790528423175690757284857967011196264008568612562131119535474306058054544151129291903197443495638294951435333016767770356690836924519885949429633320804915824979421006855406058241031485548185758690774212033057771776114435800007384006274379167235166129028973875434077751418681570456923996992702784237101429743006062880213995417813733107219250388646572924953679001358342024529806530823187488563539784122201958782093934178090997496237773393215957751229263099813575212540486019554380432669430970376812033823150369041383706508763420567066869148587346686150565945294163859290017438950480190576148993965938747033598766058929107165421336199298190791928141849286738836331155938560249358955011174410902988459150361998343562798217765475938676905937765497122084523468828518411651016502865646085176528104534948952549877543343735637561928464524276153753498810137632949419174927049281303827786563288371487246323983538376712907036618747976618903762714770262762410937751929252430535060019132356518379948348896296797371463314828985835652642989348912300413457438216255001670829300330162280001320431024211798564940232091437147620315127839661709354469220178768148403920090275718566113965048780912690604299387733496868628819032816932290869078464349777432609165663915609740782845100267826163174241510428326260651267836929096000149173731311561276846753544389620411826762219164165173280815421095017004892961611073092234635187151037071743748342081777871897012160677307777015730600814953609465031805653054342847082078332742369174616167664229189039380453006412615138306477539777107634038009003286531065601836489181090913121637296539604596992644317847500191515488179564303261662091561288136934159365161278541004862518512251203225673572597464607323338852985388573745467927340248757316252489762652172392110412478300163892839142782670896098977953317027128960779818960884774218207617816734762749412218368044354665635865538453860866863951457880506632822369496218052331045222195463215698218309769513520156449785149265210480634557805638765712119201348149698668443356407761611691877087257424457960332451029123342976647446103923244059482765205971809325742275615984853205362820175252466137556546761176205449264011257089721034174115965733854080120655576646704057681291680746714426000449916887534649469594902026707065296989806593847014246042952223636561573309539236009468873913866118870512038881497954901177129112560176784780649805029068182304949263515023277635736890688225882365939565097574314672255504569666676938405334587579547322989963579620024001607436524193920624112245064092186944542246094237871255244383582745422161783439485008866167346815343406705414030161154309523147982723592088744787633911275209475745263694516761088735636325809232643701499653176521784474882047110726428394328871395242957652663962772752312666541095262614369493273781664098818717803699409437895544612387184781445914633492107853629332700263946968583201534258476320283983602825926264160228121960507983613644827883763177550278407605296842844336320333053955394567562319018386294720627655647844200083881900854984198779555777155133609830486693058819855529564950219290382246026011926485871294000845308721668042671700840045347161949326824806142604674605739812940836037052363308654042630614158390517955272182695511629647738024389035474046639273606629433705949298763214801137794731422248515133712905997338041665767051082687183198107671883346845895160310625637528238929663733742199246329019537308252197768125223185243605155774785502726325136014659611859302028171104116096541697037557757212440708803969796074300251861538005766568820898903174668705038121212024276529115142615063412069543784031894683061744725557864898932275237360430959998421784202364143053433440580956616808958627221132039353125828062144654496471745007796633526586394133958810085901305143436411099321038145800765040266032802974430243279486028445085141967123152870244130507337713585786031412843884947346728836183505443989779951357712489572437443182677956588356832574723122669960868006690385350254240077081035002117998517099307942502652843524019663786865591017299580740929881799876299282013240370131475050793618408499014694944331003189108937637398744034978189271044520956148564338072097804717776396737067023708663509307496816846347136927001493477393723912482053089844283900647547788255673161251974913858758326322107222000226751440018941638154635668995734782892915822340110587226819393254046521988934256429513400712644658545939297406416173708174464195770411402275010230790354234719654133866923692283482223695438015582034146340294113131391796875876830783169135963253591238885651005075286933876218242403272828385625171099210957619118102445667515200461236727822751580551671747418262090731735502450598036905169528623578524768756676299962210289318745196104569498178487069431403919284298757634986274573171893152322525251939343611475531509391068464594465778956780483501741020741508554684045638138092564499516503985179577478865057020260099541247696706479119656057542934022011425969934339415826874651026206084674015086117626355456794057680690929879751808717795457205998369543843472070774733001498320899508804948901315916465104452596023133420602871326241727652466038608201644282083461870127033768002555922863696180593163323878879242409427088552870505024979270911689681480143228672836444353038412271915706790029879355867896979283395616993156376993894981307716076640697229487419176203464165894547457780807324875258866143570577325872863894536866345674179388730971451659663154223364018349015641084758789212505534915598987398103379041981598278274624459905415996650789117750310310049143188506316935626711636327985674952312692453482517108715058094618882811066742980180514833580320500374817397023628370958469304610364038938034358681793254003919463166533985319857345322956873602053555138327243969234793743479651938550535591688871944700843556630608887796527887816812603657593481251086614168126087890985355710227066054923480121874488102996311216619184287317032221179974716959954950567871633163552284427308305919198331346385547257137252862394259690518860096878361494667336111513346299587181519984696780558132148814407058610183084750601073074389582225831723956746195330177992909628136454683125158026735386698576637135361009429783811227658270661713153112104331419081806230594021507914795508553164478800024908054592477457338238486953926818999855438273581286982933774436840763189173825301250161895929787917583115604954775306835145358623184320459708427560137415777514492491383764143795951113385671212546995561918380222122140243768449033485470111315690075921666459758193479396477322890302000221175629851601506015185206278329560303127465956819300514984229817162663603882332128508936691382053323587125748977447140793461272470130780965346462454929642420045190253088794978618919058527640690472612268095995980658929589628446063484869217425300249727047137123808622048149652259351479967412650439947703228344454332919557064697509743714389823020557093181376254219116625888039451464215822080485648942971702286240705125148552544651573467909549384438202052112318511093183375475690002969487211645866116327440792748097733135826402048308756798604293685550652730113196216063966764006610352692359269206120545560628401124556598348255195566527533798208147952732121120102168093613078375727584945619104949597866357541481864451292425241720573353173778965220370288655158707000376569064109850028365732526521804568426527758737606664264315570745765247847459621245548715956495157088970495850079544458530717353508223323773313812779363410339118574602291200560557619426094125688217956413750616735577812918514972153437156369178400593572806415935986836031622317813472075887089852933864243863082687387699781800531632376088547988533887532709682791101755049057833163770004648140540303438933032974566413339415977626294063784169294606650699370311020514540811897558239117401285551290921745196852614242712133061438664226640036164583471978968148247784595622809268181337058608837530623898818699035620146973903676989719049308486107636649679395267200285925043416072743572561115567724170532489601519559516768479335606783528265399131027109700819948621556833474537332839986174490774788327494439822939849909930706300323770757672058960780065578816711015695447081194697092277291624429526072066069292767469070826116934289213576960917776526154903399193884227344332584896754053616659228877672211593234545455953720928696894719910867648838577742584780367326852435046071820767788887301208938892939610034418360298667126631163053951123117452868295224671632945837435451974331482815776162326779819919843745662885614168815672323766455450960756171751954837807191077337366251938246500073099275007844754822675505905697609793400962233758698434407067646593951314501515722115349714804727948836790047624095178799274024367659689483515542673235965392781748239193103919774632076327274183468531870395048500787867467009185491425417813391187169441978151158192551945490970387140798994363858825165257506617721716750130755294676292904651036920101116730145648365899847138949041589329069834968809193319108280475169257893597710705121743649133429656832696879937370133900181400170796964094335694188802677951104919691420616477316292608004606193936121258079595952076886462516706268165994284666171176958113224899580651161607931655658161080448646275420303355414016061979318677852615174954144583120613359496600423806664208219254470806197114864756074681679334563225147468109744660960704268818272618190096061780607380970716797327035123229386772859728373857428387435901937943697084854371546253624237159387141826362107252232248823497341501785453728484533874963895016354679581721241622640434464158590395241542341500597573472094977950817717420811564346966373021909574991500192478904190177033971668879371334775351397058002695313142818735347377518189455703610669455467721053251447977404967559123468242031310150983462042966660030042246877269040776867826659171483889233372456224892436017865499967616900502650038157860954877587917249349288797065397335908202939450559013621063883990210946239330665146035503205680635135493481073256667827793685948063093710592847455585403664055431453272281125193842535085753247577804279306231826317717095589711626087301152513884780496193392561085447318603534388123255604969102897705688869342582490545399622654315680027587955163209000131683767675004856229348399662492052819743162795116113989473732693189276835516034943827243331878048888256656625599073986779908868411437700310235366926092955626382682632391043866280095103262288390276733016029271402157873370957027746360165601536404009204014740987233638141394927828670621045635055634710274570429174146638028762095004912988597511228882412331259297764172150582082153250222120722788578025350570481352156699028932287265987156484678648221812186304406578253575486368714646945279035250131427149697365579297279139392549756690482332228706739391094226770789749404447222596326618439445310815959013320173193073305082946450010566411886744281319817069746694390905060583079252299285753685184005751719953621468155032807994515149866924589277018730701402841471557672696302299995744244460861138537785063840637383483326005872653667883218013230728675392855830982199275007542863316526287020966408448524418414343743330324114905392141814364393061140336304802716758304325447196919000844461609191583290959344561731638761052641381262869332047803837468882449876805822106160270739828333606553715554103629047659841778400164902254961712552010154285340796902470207826226233066609899447551952149494510997448529528202117098494313266770521151448573013245459969956282339827605138841404055773643376876979540243050581734201768046943729146483484321172576121366126633854352408093627710908223063811428323778137371514345558147110568122096939411893401952663855914919689017572978022045142228307523696587594448030970042320504795938928615841911977275252598228927324238007177349376085793766450107177849458970823773572881773534366940748954875861435201870077759454817955200779583952651619377503450539121572664715122148667279355170959847566121052997073129590051103452553812686865272342562049623145466030835517604393454834863010403081383648416061492703326265262986297863332135672375130837187552861214356950645118544112279478641337291640686462358547494908088279132851165476525944515074163355761253851166149737336117976536449539976176610481583997534226574944384877506290644390430234430011311362313773247116459652475884453878503807825767933781637873371460590767553116779735791527532265822768304959802756021179632837513187848274004970630176415183350824372083575133977114234878276793475104712117021597537403235716282921986968855549638822049517305481382910205972250452028198031479322452206691422968579416125244454816099893727414763170431425262980292353462623135485313891020735779043965113597236814876412489124755505937562490820259924257308220912781998655856759910480136517988904608688725317989459469576574716111529339472298106242212510530265417551016585743798957174584055006436062834281494050257986850823680682482846981664706274724607166046909980385615772892966145623909510485601306821875159754384426060225355084541126617018016762984201825973114714739213879164577441321638019549738375257016726165923871793118031656229756686371710640956732898583363302486730163268400995037851726791480218621839228949761742983880008959990667115877510546337509422128129887245020336934981120329816033006473407030457892801539780292692539671884563394343868040783244023429184545256185660802183259512626180412819717491575980026319851300918748737620910801427463726998818723488792212810590145111123623959885209860334991802484261775425290573908098273962872466043900455505394949746573062963761280762687354271442198375821884743445743072609062974266257516708080521589030726404876075799644504763850460397615677992336712902696175794377636836569506061309370776474006900407599859713690557554607861605118999258208838184218952013139153005852762713890320930335039417489184407166359477857487646398474996246525175047369827012118192547540538717242749350363270146944500593597867159995520226010813702063230447468334677082753645087013189650961030555362315910027136559095541777257497912314495009461486269507561647293419597741014446923871934747413863392539648154736700912998400599122262301370944958082117126497290058530220223585106555467839505718922769907735533036269430702019966786621953317663859712559630710482013433527179444270756035327504686604308990298936705846852100224554671726847857995609179666098591759870036143694753525638354830963083122555921408807377307271863186674593269208474098255463650271025226776495358657100504012182507588992362733011790056990805586735359164343764764950985364290550400928246212121817411866551379323082399137427902838230611436339354295696837457653662819828660969236294323512254772537107252955536050057049993247403610379237832772690550585234771816653970190324951220361060174887852687592868883511540547792424362123403224345952672150149311876198044975960496094762546320205206855870441021208513682075640044389842931176243954504212860012721438046422747787496718313868948889118822737494914980956014421856810784205825213276605722836358883497354220489237452044872462028882106065934207549924984344487854327373876398459403404831479261419759448651628574808390362457638220340071551960285114558395536166069270134623888449224295086482357403438788166086238621678719791179409413235399567956481084029384898980056580907766113681879895731042000419361778229472760587822390446152118430994563666422171976488582097771979390385444868195686781599387007289316065739308359436532118589774267569038533285852028232861293173199482373970302602622326330740962397271441418638575786408295005390204636131369934993207976318573433709294824028491164846378911044795367326636671983723100198654238131293503959566992507656843026891640653524405093506736716359891262659610998318157625885994326564780989568442367360784747667743589972577911137692130333442962857317095631944514724835460790933035745251762822001768222143763403498308352063904073707337611281949494309214248274056896897748865010102118087150242529302614458308868652820716943346710805401798967044147701020107293822454504183924347940106410455003834353821042633062324543627395274921355005776206718145529651066592256618853880814027968649734002131713389661706366004757898094328354630457371402625322192709276009508333034571855460229969858088255012122420819234122650491156726211747638679706148846773828736767079251639359012223505129316255926198266658069439013596523377094717654715838167209254832480412955074691051211834852537603178950740612233852582109011608760462398754197314803633593675162495214206854058825372693815860701521870686609915253619888070593426660369225820226381130561117297067752952246345611698839982766929732590108907015379819098473139893837802125029012243203876553719089527036412036945584888307819589176126855668896359710468629988350185741276613816174072454059581642221639162275447649623377513084366969528094466627294131939613006027805845889197723841381392840374137010454116403245359584400370986400169847774437646840042820811416741912646283263602419249225867562548392519840408973029883692823594068254808693094962180521030288020715370054379650343729039171882659499962561852332718877294124346733760513848874757167728657555958606727261093205098373957349101046030161363827157208442340589873319122750968460671660738974151428121516998887035289388612242397679342064346511291095359809271177986419371583638282738032314987352546157207054990416477257145435366405570207041406690530375634951797812710150840884627898169570316676965497606978601310590104009903206289076879719311670685327104226852036681106452004865327242753014480901403251137160330703912343088919979315913912081921222724161080973154638220122761450091594668587458267994662145641193812880225568369471134117924006045474209861930733191774551731290239086226823475904545628787819365015940387843468449074266208173922653308505167778770520631550028513306660093716285059861043325855836080442028796625309711799464276524511347273975685097950553634004266765021828312925738202337374169188218385639757199291125672980060192743051685808475295301581614578910206516645667878132725796656580174224438179086338689280312671777482335924812463258499186345502045762795850063402175841601489103533236707122673200612765612764214989854772483973800490904862259700595250610685004758241623451173261760626990495728112095801520686095117971891570903363081505257782435996819108908252288465942672561009462290113155015280936602100400169171163527780849442281448512154850469734047141948446493990846415225471783040106829261949526983411256039776576166642606262366604573391575040339024974667886259806252056389308459585320610498161932722995609237843183825837491366924505160816830030827546953017122143779693689806808804626401606649589178100375040339802579768626787541484995359942028656523120678734532600603087120421448405703240479536080236290393610028869033361900766575777313144933190250547774111028624120524723038692818016620829418671875430319584200529317323846753517619920514866731871037722534485861780307934531052411720725447745548590510075517574477039796261550637349830101046778487762086627646917391226611951238480502068248359808652730148944692704277177202150678182807871630640193963907763934911316219988145422384876037321251003253077606196299443733851398985232732953832730281476879775618401059134369406937282393503019856085220607478811516263063393959716406168974192907792768698476766152586588229752273205609353327058603696619102219865544517892182623156814076632150756067651914495957368388496788574869027804164207166297660750663608875420157088585244272428072383405771761685820931948349869442366532991309923880070355873863060980409486520222229083638684137402195227445896923937035734877166307952094890883848343923277150783245275285516692875380134627074061779798569519331662388035521971030139143101746376881272968197283771629419182195896987032642174524399588529216978519175811828953662992081773277247943710678339208100146608081728525397354008225767870776310881176114195746614808628980552988876000627407746147209980711474578943925753195023953121914312279318514187837701449986005107467934375484495153642941294908870049189654557655605713111380992398522731815877375359240684133604916159947622187446727656112538828210843227977918917916799947322068422322390428734313350026018136366616530305185515271096444711736430264509093625150648527538558171902827373243810240232404197496396036972556754044758543343367162150106882548271133528346742538703833205820823968011904265056048329779680952526592107562293122352987211241842658579283934334091224381825984871747554543669696516338473666854150233150782660500704819097882875535240487048202884487199061031057831476833820686812659378230434288849039265959661654616558269264970858520514428986510399430699746764961289723951444432981521637037559761041146518500833590320529696998042948506815379162002325927792696066494666586214948624050299131726482599368868105179791024309146872847090170055242064207867265510641716334449997825395899401001950297071166464825177862952320794904343627311377859962014292942006672880438090721483239606523763709718797282549808198120674762898804459565019922840117545974139195280042702463019591067012754979987710092122579015765257054577542899041913548453987700315691776472984139110882713351418603452865431573252730903324288396456379869809858046173088490383550827946872591666955218534763343401751814947342448498468842853440447943862180226888994528601540585522247098746210072808874747355641307090922823883946886271955853002342666577488464006136131681143040739279235972466261449468485050801807944751035829973454797892723455105916328427735808637391145817977324167357903458867065039206978715017005298194813419404070300372632925636813643752118136344096974120744376211684451240254716877899989662103164925583325878618973280973005090546081640777067129814103289842742786870963045980313749315799455155624079918084064236285999288042269896556500104904658010778109601113976950585544984771544100763389411628439352230879097815873212464779130586051608689361629009458998162787169292668081948602869454486847058464840912995168146354123903501338226694997391102472265807724213396637885626640559696869646876140644786772932888632032633582629938921901227156502877899546597759455067281140585684714169242278924712460142423686640158295764264720575881252685078456141014243714678620085618500393561221821326503054358311968802446654535178606561778171996232654897152166648422879772745647360334086210782213107066462750202399770934040939217751973422574593454692372223791722482010011710021526128140378954982880342462506638199113109294242144430602168195486314357333239997516117540637228350985379375146051936268408666083587664185824345665376740824189174169363669938469785800690687930105464753049181159216476586690843970918425832985642218201837236434585785150993981200012904426419781472115344385144366003301970831573770017420439940069401711393268978505960982552920379380832763408236822344319820379954905251823775852063372943086967832204621700006120159471602641852670536304480459880143904486048356981055390812333868396448838857508352403964616232818781235964448988940562172593952285677845814503727509447821691837361290028717732528863469139284808469331144026186912943960039380705382317132051599136342358915163031138988138719960945672703133508827604480429300086652242837553328908914597871803459840011739518433861879042799685372566370072164092628318571168612562659412773853760267240513675636004901644793022179027142000722792691785476080010051197479425447433381813298752949317741036945129218625429554077448143814144743408394245858710295071707388324278753882141308505563939752148566323768076101936328077455398053796373964503140787339283648843923268407988441756077048607563992725391771953667993760276149355129481932541316593516673389646198790582820444717616894437228070887197101820669230771623925582982516357197859501474511830021735472708719235275702394851897534042037603603514901652402478103118847521975732024404324055273689391357338999967799643269383677629536423476931780921964500446394789213959175996336670758189261667041433743682918106578896593263076880506283653617960132074342027878969343126130090380944815976224533205211041798766315551346592859033942571001425825841484942187841387096885790963617551758212824003151595407764307196394869364786167995603806258407058745469576215910065738600687591510461162782909064665362831867101718659981843040859648841568001812612604763801772940561787438156489084345388425504422266286235915102377364139343873227531041331809427926386966267211182949619366297687811732594671729819614581489991397619073289719535698581497452109298914154812566109387178563396349342183746675698792349108952411577330339293988916060327136591215593376549225951749489880623095633021624527434695085977056280627822192605578561640461011540903967069431412371206484053413645290714907789105052510318822507450759672469833189174944917877219959997941831744213806650893748782615080928230823523065538775182207697720145643575127396278160681548894468716733092651610231300793748896030635617022957899797392743401740178940369033087998685412892243495388837183308279099070590697389335591460273635077252220308001003812710620722536852648954902230628071674149968555025476966531293891751271188239976720894258629661056102690605404972591001848257781396787661884922528334502754978734790247937325284034271318372821564102214842408690306566540796327200015718947251198717255542908871941918917490363524894509294879495839622433018437262353600969469977760525084860422775118777339568539332346060767725001720491283817325958962559300545414630686665642016375266559365773578165217194336076119670559686075378818447560592761547784086260281101681517370448682851522612943951312727295197865566927356180078799513878283662516822546114044117901721900445877230891112853866245034341803556549237828026342069800829021776757620952871250789808687193620507437640606376800893190195228150814716799793392145864937508495651540074748272192611544630346588303808165991556912632536231987631204193734339280369720787769023251304241764102769316190349714423414783992468541162902289846362614226977240901426249602514125122309944964214550076231184096528239457853595317845384635313264326596510449888758682493010007948592409093888006044702775028440104008685862036249582470102221253419936825312702628306625613424622277577598193006725094591255092762467670693330412482540274932973593718497795214034370818558122009382126546125586480745243028767350043432732144355331031406994558148785735291029805888361262244874169909457572360133287681865991387774356046536493601988450854512060910851883703031436132143112313938084466639596436087637219261834496778312696134507924826445320803749018861050798417268698501718427742742043323977536001420129058150343814208169992652717683379438926546384145511339979609327656795347762423446488095721059542528707332860254782055169070639917308345378195208898134851976131681188646748587115894117102847419646074601169170078232952579166417119832171694855774229885036592246938753410109985766570389624727879023543855682293105865406523978571351059496608827470724998902536806717242137295967121600157783086817444377501843148468102406754104710072415995402260304183065934645906960273334767126709962574220994565610596616899873090765592661506976806801302912081528535690273962902604550131837044632260161586002607286238023699197579070657783390127124074228207519117132317608294591913615400690809792909754159100756191855251942818088393680751153630600251129249773492700416674297514831182506496594866242977924878155885233709152448011555150958449844673690449102249176925808993296191817555029883541210173155716391379771232811907202189967080987584416044807943227831647962759116659596915173359631841939276700502680071064385160495345648750535680198093336937482622232582958195450139068239173061963115970917512008735462205367139887779363434121915482438912411127327129550630097128981012197798904495208339263307065729997224469869590659686998161632602529183607916483219995441564950492623313190761740378829322200979316963716471793376895599601301295409543760566090082596904547633053694825997033749918691926263079224927325649956758441675944295642647263918688932323302342965413110431305899268394163192602273046408995023636665175181612094988617162651240137560734583279200740224603006951179313767257940823258452817446326729150366365345776097024331712404698515449538702462169139769025994732343514665079193824318304469872034855644341039653901022952307992002941275914284870938751930779923649868269881844309889434910384366246362784682595729572621561307803036055499916723229468843940757652252302109481383144340284848092650248544510364084363991367143148963576823221442878894788917087085939043362511548292531746060028813471155025595328359108173732318341228611417991220339747183968011323883200559276357132583138402553955013015528270908078111547310087813354968709297815597533929243026523268159377517128644206016030396330841026565065261985481118522192319977541013270657533233928201632787717258089485799262698865827863337142731153280171623529733219027869184459430880176961138828682264009339655486317831639633512649590138293157195453584857640424705822827797450819344034244215666374986045007119480677915081788652118481898356955362800518323923069706815250199063032611285740207646493363413075015165818369678722831215149315233820783672328898410083062200116629318340438887839466218023267262899611064998874193856334937490972491639302002028208261280503419318646288715693096153216723481720940352288659455924904266893542704569978244066381441969714317620765771803747914851678150736623895033340090843625720234091972227041192132234883992349131521190463487951410149489404719679001314876110024840702960919959964068870011876281991518504885363939457203762313055443325129908533560486124837039666617194373096399491066467849210503860164571770467770269516033982022859649104399527062580484554638080674734406307150639801651266326536064343845675718154257030439490427983563936095480813696673182366357362449198113752915273426832576001191391789953374802016154396226746627479993918027973172508821058204111341203618523907725053241299363017447569949705228246286012524819681942916359252128898851006815502931989380347629029240260430713790139970371614369516402155421032946728487491402820659574899268481909017309499719459834140932391049949641424043588481189236053618937351124854411778700490110170048664638992417668221448699992270885385006868052481907024174603462162003768722409372918173506443649875046349435542254055348304567196374939538378473178075322776678470525751402865679099269156692364730728574438473800977286900491499331443112590925423628443621198872690929918809887071260269796314025420653873424502955331638569945882953323484983174470883187109705259816154461315847199427451451856132980836016449509572029771574979800947233953128930003785421421546451653222456442553471616704545628499355480172903040723433382983268137280261464926628844298363781389309834179211738716155177687690722799049728498897329348530529237362060959391232719888625329885019358092284172510916500208776842729412407968070206685167103673490039943918456280776318447586867760605144722384737848291239367339022246405454421206133834861773924134962211778528014265931802511663199762166821987079560300106589743165421412495043894588721838542814736802129976373764056415534282306749366889429420197002976931642162268323980957489881814940320300578841883681043859304766819834358927241618240844779629771165318361775552147055198484464660768038060292396998405205813917519365469400015510840150338077182149778624006909810712511336797826676976139704527503325968283947942963380386508295043774424020544729712803934328799763416989506072848777970481677824209347778930051497820628533186845327701538680843805062053243603183302550971578065362007953780729142306341127259030146497961092466326032287206822044639776555939412829404131493603317287725655256323345096353653439217306671103954937717813960939465439669985826769339936402316733134313029181296872809328857779948116978559182518841756276339030140721952057378682069011476618786972623207348833928092903215608937999956514152759899827584362506518959037828787607611364473268629342731055520659172789192165308170800719565833853975575833146753710403042440676100848079932223698610443937693670922695400213301222915505987848820287106136303841829092611572842027211254821155254604981658022992992447981478438086026147883410795647023362290526732139013247273899629764424169577626303313783392454491799209537585376887035316845179807089515669340990583588415104632061674061782850507640851407431676186998371797190820677415551373036494186312372943522551108286737244225563292393576697771190714748700085656847794320043707527410297197566998819390763497576249729298940954241606371549378426354547639123446185039279399603576698185633231263304874135323711865665447245325666711553021940726348119052522482172183250643590395367790727862250245541279450354939664380927791940430167039416678542314926715262466311293545289076553897963650304537618407690624051246163909712243553862175961500803652443338118502288307633819287781821811802015024810176658661882415909586016171997686774765585879974173574720232100617722021739079963180064100374993729320168046698219354848259962274468635231401638140371995797416175849877509069214248079950970232273551754698944875845363336859043626922664351507557951794265708321239817060220202638863606937622570932519921371590642543259788875566504194211052454587421207290221274026664936393431559061445473302527284075661214247540549721845417505034110535899528136675386303601176427806074297744633437097794344176412995990186835695277671753266273089775443629248768234485827345830933586248274025626708325856009270628324559006739140994692120522341626458596367790183915632678930605279998333970524371681346134072199155582610575417140607530776764568034948789782186114340955153601184128159649789354580505046327356753582664163183601592641494738372386204116405832181262369906566748070418516351538476239898555592359122626305410708689272685570302432861684962363959625365152406738085443021071257654523649459178309229994069986935064448880771226865382904757631205291343009105260172422217157463935292608511505697048507088094818509878263441846166031347644113081662981722167723640450577593032980410085289174090483530412253819239046305311383947635694202264945364208929372574995911727358988260745320812086305194451551536519816055234563309885393283992913356255952062976760164248034186247172677141312258410949807749724040494227263248805956731362358185847172340609482561459787086342204500568592131087296512092359269956001723717289202980330322216377042864038833745375822445066516037850674324674643457139725596255692545189127160145849714739176292137828974738611070238778094917047627711094747864720685443716520154879765485675546858131289896263711103029654100448090366034625628874463335761774967214872814241196901043790132964883744991516021105173002180724099494688573339545023744857056195424546422571376812281944331565844252805647575070954711312285542116269874997848682582830582400386259484597235721761923260962014994693945601376602365767821723393507428214078601638651609499956291474166651792045036162370935148644370592291008804556696646772134596715652667692276070288772419588778980487428799097548168021144914739062046207671357455728348339955874282768702204222717488139114070472798118502938275487519392017660266715761518529627971808179752338717692202009988884935446573225143133571943572062259282525772589588653798716596891810802668249046633616324656444051004364759250119111110452808442012968647065498529929495598090624504525243519386477723847958893004597263054906858397880349643567727068991965523613777024651936165498103096753944883466950938279910848700063975713418941822315961450667249661222110145590655462434215072155559979964361173009176627664408624705031028227848887525827654945438614447131642481536253266486183176687541307165179131642655234066399257018364134819784696919590908849591093424854990676160235539613161570876825188242061317560004493597457912084433373154766745818830972128572328805793901700636240036848579139981076188489498645785813342956034589208057148131509786805450752751723564047133884120288214853349754804302405609837930615818222288687958911161342292498830403710634635361348821096315254534178129404841822696089609805603895147197776540633781759794264070742606736018382730634943137202425155598301251443891465937583557803780374204149040144301578087400794955911928413849879473770951200559891397616519888826219905805314597011107310758402186248022871537230153928199846560865567084554804131129620288999100521457198867131881453130880728662397339506332137382429875366094346028173371183831446692477613242656681859245642114506373215907969597588429828146210529758773927733714814343551189146539148596491118978382994433511356747117488381436291201488085542463709575962022085437597095522223564109376847797170029734172614953474401108354634013670692096829099911637600593807667078470610557795757033913490272634981217542416415143432375085580920636976364452048088706432418210463018618416133256845009202859535945944340520920470609285121862107342638831754694433684788018589796948095521310703683892384011337033715419964814166037988218137424651533225334567188456897626164051026947893211346934746004102950861116869835481505325754662824854378927323563795568790011446454784344668400281675465807190689656766737598349750624239751223725486604589017763445485008085302076749790206192572797957574753807380150382699957848191967702936585127745903486994999339651264998569885320194246828723457770372933749792767345379786057245869634053543171413553955740287283786425629937690220789896625122343788619967236179269522524249999341254208846501798642103755203240052822854114622092400532438814020714075545421631067981775359996997120419350889619878171555687377557046295453641473987359612296815300401095580102095668322783787768832914139782361037414059130870757843797124593534157134704786972370091356371504115044371005573696588432919847466454581256305611417647314312821847026517108618094771918506728034995582121471925747216767159651093615580633098756827647672800950427965980471865406914264721936898097266468867426285368837218856389027185212426771916711819583682881224749581354618771353137027245433512372187711656212421680270212519628246928147920356760353602291691139512004192489008504507616214685184352063908871972716302852701792611796601626955598331830990344986588465251752597153865339080322212847451723598031232922965510433258004663420457235981444681056024667863316418650775144539401938404717724637387995362627945473361629963867995473661069714202116645513338164502404135063191548445153708878146130288665149630814281144598301985549544804511428162934494203682494066755692935715891126360192722432832054566268752747193131188554725407192878924017312941555749465822241602964519646537916928016012101978611736838916638276547095662299767854797320036372449932010723717210478937321864014286028457217123016013351937046828398105004904710042934910375678534733918312924658947720763517202123684498837954433065624369785873982687510072089712487560850112382130439383869386651699865088872653909563783517313709169534884474607336755484527709350770640074544205649055511333980002091495749613068984872575872123943748860119352237277343956968652835510354659621495185414237349218495860242250304726102215463933218877773963942146870628639289099708608340070902770730711655244407471089744181699898031088136108651467599272862572087545073598425895601825375260843765766965218069135387028863893768545747160620059976085202289630582899305063385386400829484360233765805846298503671626337116613788637964800318493263801654399374988277118629093551878588804301939542141559438749128290055573411214259972306039736098771670705603673956059109232354941905541128964749912644223198390410329859042226660839757301727582385592406488741721400559966688238737279247365760030023210723024581271931861881898354525564254503508250514183788627585952947343430756317049073923472591974016911065780861313734903958751075307865661667181784660870162236167851129145128659026917398936806882327387781728389818829244550168956376214943254115949088778601781931298613244187938125474605235278840688901679311995645409064757419489978974413521522689082186551862546161343593564584890719064784880131598068757823497229832220722500720417317249551565633357345619436459805226133988069914627201680564400064383419568931352420594368033872609667358736710285231532209997574775778735676153195222849974270885196108501333674270946518554403016730671310256346436681443839385947536745667828061327624485253626821270492586694043969785886170299179911332613182025194941715187964051477275861232306040609402059963392594829183133587275804034509876055255715753559728855953331608262353527959340496862663477368628257204388492636611507568996095188016774258328686976242195188099818908866786959416580909576326166323654235476406487119877168162661873030649795250764060302679654437540587846115387349561970714580104219403720062739293445795489918398774280052158409675989194445921051904414573058352477965508080688054278608448838536932882445068024772283945405025910743400436512884643638548214506383526724866486176172932680185426291465831260226625722611109429406439792716564961405540743413934095859797570431672545272025997654593472697964363006170899997419606158390659690793573431956003344773267717478258067689806337845948402058292190524970212071190038919481122668414028862524007294674019919618967962918822706649984231807277402556791790919996194567121651626783841973489766336872598137970918104133782761406078850336964282851536436490873876224781873180441451395730770158076228831560209923387359320558258250638720464962530524330159509846665669620411077517879010511523594779747840906478152204885628362721564579357828621646031364867515496298758581223650773374337234176073764320735871007442173562577139013834182402325560995083118708658090357869083436694157234300825917587706776596306992082810433425488940999635142900050702978615824400160521661100002012755040664654059126783568733015406878650749251683741989584900046321265145089238652099498488494809902114489886198388920903307037807308437492554750540178731063000399649650754496017848740259422232671484189072364492494779458106343093428923513637973790890148544144851547306395161568509657877602210619843541583020157996226226264286528705000403241532428504893382840120950794298565846819199332312443033194931578916229520926515910122723291177803857538525996985255491152220213563295234165612728346738030217561213550478100282710254331376998882692478021174668327430154162961665459362510896422092205729889441011992454634039163304509969111160018923365475974732858325692471903980086984889541706026884347351442681199742088676474207656357181103139739982290084334925514388620355581941561549873462420082539716690166935139879486923445779758364342975885178019101659704283507719184738626887989699217255264552533954113240225614932719658892449445496581730058217293218650970578453624913813109726659166299469580463078279992105307303903517404854602789458069720890172350473827786250767043259101543873082764674533108355542665518861406396630164937879831952875599164143818107215961748069621769626579025608314407931381549872512169366405732634496014193718474459416307750162145390138793790007041495286590918964928746222257153560549338954041305476223360569866468131123070043156920220209875348413691705975760487320459148770435351681586211787934984669867850823635619844131422726664393607616592285139643859671555571235799786376257024881749127321923441523943543193501725760916210328183092473633587815247183760491730011633353751779273068143579630032112409061627479109829337776308038445186533414152549418299292670903670053989633999766671714305762397962370735284736926109866971277052922910510378983462311422304446838650953966225426535844741259128403576843164849773570467436091567599703457177367954211145266017174007922594486785668099002977401651159961421703510557400732906382267901710365558631738206933249776586423314185841283444137589771285825379982637830547948081475779379353740243887483396863805638109390617422179903912479860491084304940151446964871199000356859379687912969067246749706689408089815144800839520728055475370253731787035248990713429834682976631930645687309946937694959536304752099800933486497842560949331598444880786281711365508699822518227492587740966805864678210212957296444673739285780769818881346972470436488316831374431873375870605563990093467098024910262373016451449834469228208149307279203506563935026879471576410778643229229483863671466825874908580108910911945084557955101096972603858295087903726544140166982659644272608092496853871197290840067592001859258164066549265385340822493969586954931912567622337114053025061138527753757240041297598612435970510954889839082291126653654622772460706221990363106361540722834255399807848313875013260913319528035234927705345584356609124346654520832248040756895040142068538709693959379747595717622298646404260282299697350748791682026927205826779739949515582315350676758542757425039684281053169641631523534213203836269166330116558921113024393865295651758752029093442855734795155114270342158385479629347816514844854203001278106737511562740461886723690756212226017297364526489063164676027009532763036894110510816280580065665479046343649731742617713017063805813801834927002801940213065544910223858643181532290279426592847212473146091574536337737416292088503022085720011889947628334600559474483393578175330686496858870857947946774412364351610470142930069192885609282624459841634351847101762257175709657405299269742945169065430150750487318119182801294241044031459389503591302412150416888500054712366972815871940990934196736195216208807809084486669955150383402114341725651186478369513107558747801060054266896538654080602315989971819220485455913615272190294879556191720642115257262832124755811885186187047969293731782447594514563674296261872844031528221111585616519868874582791351931630833299562083108531211080619679394710381789413452441979829064478540375784886173681140631875349781482553127290057471048996308578242172879561999242937068340596799607497834190233427559319543841513173175421599438534641745933860321612015110042968314809734685804271134781210878459332093865464570031548268077284792884655191780320992089320907578189564038859531294839655699183686411860626045599629457358712337608379567312242399328125000998737073164776906559737808007106286402883633440821630907972433314228585905697544049638105806929367887681183838377210142654570735001421382967949907450721583127367975103518188612706085088291471583583533678050664540663305451693811857284208885444928446389136482398348039355891744907010482492512573987990518481501209254149997831752735724379073149831435962709934273021472170883389424473488806934836924001002943160638137205476783375920748868606947048877522704058358562334402202564957213058533607608994571176467356325075813549564997101050565237510735047799590841742131947388961293970671447258525977866956438056322815403021290129223596823444470868889259135625056042174139537311028413452890884519098048165043961577384692407451923431098220215725038074471189452647282763522947323150363942527822857771331894404722877105291490592160032058571237030732552212115876289848940610726522096015792911522288727930985907164623304439814598064610419974685165373296602237197478880843388548367032906903015205124953342471521634015635500890971207249435380177932548531262543354825479402410377481610491255054935727346729526231455443448613444009148479315392231767592044686133977822756376445727658564846403214290342971491450311041472170390363142306772880977061057837326965511753743273612459421260146651942385887002960715000708510270678925486680981627269503502163587603052515594265701790448182879176500875632712877927240640289283979688798959799529621710131609317482557817279278713493689149348221057847112917610529683979790301086841345931633050166081825427242926646126959111804574916882610690879639392266880876575200113868401450113207815524082109628331082342170658470294436560156961736895051521902743885446082310291532982332229649583312172210797796737380113763975496336171943692091778313817379500708695201247660900946876424812026994999309161524114813812865495624985157487250596592198695589785310680132410950754680071066076939252693363319384596862848119538334195347631165852300200639497398208364550603138673925726587983040351550070556942512820073913182033900955766385478276192785565881957746626189969462300973622991020158637437620992152121547987208103254482105965621580869863286990217223611644983331872919986742447582632973791704344553657741282079100840701875502820604001001239345389029002521246783558914184756959067586079738370153881789736682304145669108776405806863378178024065269130093351937238534892223714946181017348327398957438238377846861908960696589474823388584762613916595754504241034109057940762783518663850719404168388270768391538225608657993204192481971977312419866121588219118990746390033378573317269896630225508869499023927638573488989781837423063822820978589560333590654563100236672072872545853588702456748694049750469952248451075618533171716388613506025135930792014993939697718871120281206315566725578854152422879065077488876428445562033351588585027434618679720669707579587783527057530853206068905859978737746916072654898166920499653012493259178545258673755574779050330374906826762655566597136495892632145530509829065919841168451541739808011374124911913791030505594672581412237092144371315578657658455534986204337350873094046390514933964987982377958976145273762233435895613895224248213756854834365458701538788307820562632817371964453067173456820632578984309287946797021561010096171677871389492804420568210757813675244020893814045919707092295859121628708059856834984431237736995945470766177157943241881344112308780500875318089809894294889327811179917914104943140331231761760141264974356828075946391331841056989593771962619510099724193998761875391711951618375782716627530984471829137363370689684410210099356459102868385883135352044939433829154611157183004395995001361413645302958030674443100535713506012309858335659074891947118637869066756227891601329984171779542230775265205052880380683774379082745269546076956732953940715341631616286571886171127718403340785454996448776697877518774600174980651315022216564176691988797764573842765464521237348666665554609881529570909621419493378965148017790462494547357602856250960948248857408048982333537029023597656352735351643450040082243513384869387536137949069041344470571010901941119093586329798239970845088216500519716900235375825634325454877892591889896076615698461216000562895973885022468898018406459878691330544247633692548442739483236141357420100301426489012563645883647307088076743218376543316329825302834670225387790524271728490619634317787781902337510639141782720609722926658749731813552022654138323768766159491690407953890569850261275905980306889956342773356726313103491308969349879485750472919540926712675866789091316792665550888285344666076400172940770140494532010876087969166615623950464188999632066812380442861925516658177840812660338658401629034361718286459684183989897711588710370088112285618035726533936567408527825797627138384141967086616671401331696970044471279584412110611400913363595148559469164822508847489225533350867666240413497000720947731566038596289258256732145954880741428039805136328211164018717703854107894716388397849408323106318157681331542285849226051967732753840344179916524837238341059781622527207772644796356819043393659274318840805205049223877378161345232250164470072935848345056539488702319408776575550536215470402854520544533450587482872354307439219714098486150033719497756853550099939214318943442419725645470773284879136454540596244023787529617779738180565821782490556775290326347911410251934755314447313763889564039739937515368245613935494254210540584162451377421214248897231453848381689820921424345752237799577209273136401104055757756413562667039627880303976097604121725472585991365567381640133079506728040473560420179251155182259682183105002677999725847632169362790512524074010151068789908446678927672830704381015007293989518430317201697841056968739564708017837478675423108665120730056851328522338056055695988209680601531912737811594035590447091436716831532541431836973138663273688591478170504483164620608069334296433666590181012190568191947742152145627592813970991815294646619438115119581947083834477781050679054705479420904287321291097259936968536538946144382420938370997618871679509213787871321973133741397525640346139191036291825087281090194910306649299794272407556666769158250718058018392656612602598566002038357686478686849465240644307038459030362249322141967643088526371925493807074570003641648928694389566357194875938480653861696130339622983566272953035556016193493317606253296969976875587733785707373616660613363025712236494957456994571662312281896062967492148151634788847477472948890622433782374839601456412047865187827700671612628221960789069077866956720264060694097488377896134656502212531095957996139662179327576434613931863474597354694202063295575189190978416804296530246135268255447505678278339305095054971717208128241612077253313207485140918534656211624162600329744808855811939347862304222960176824098917906358057111984305909825461297544080876065502256126252326717415749243035049024270083619728420063768686092856692688048565627633235418573548299604200830836028224779938433315167019764638187386091296585232662289267544157570679791593208968897068409807933251125023014480808778338496850328849688706034591708397782366492925208920884386877439458647558620740801986597581921913857508980159982437545155638712597511219100810768484893231976108314829627996092346476433004889343615384585480246825956308397703222148661874229774598906632745173695145525373494212767837730062500540036443648568668849850237345676242927081798855096372309074252195073432715821499587584205217520599749441970784616508018829541125958485325383918391590764080934299483930270490819115629776653556518236921956101383249107807337042541595777929698159611675801398707651159701302962349137534956813687057659656334192554526467352198868031886840882247010832519148938514547205006611540709971811101557434295913932781223320023508654114986355600434040788938652268273212450308415127391570865986221606697603125211178994704285672386857085473836347161334446248516675050017808384574818585533781318028721193992160892731354298142222914452315900740360645239868768935705156818482172952020501183230946614764230125031207117171838078850939583092366526783280626244113098977246970646449197048813882338508128906640603903700363661030432614185002342646952216218796745094452494608684634788908208741428675650599483388161114633373970183128639294651034276003873482894238668869470513079663924831063415982362954354552522062580185278141398819685402647722610793319900605037935363382046249853133679847134678875045202618278079407124640082187300841343077630442076610383537216900805936999755236129292054268342617901523976680560634526383045759024438225682808257002623921719085859077928586450330329041440976093082255211469605641454597072789348353368280013740356464332777693293751942977110327038805789582721094211543323329993894341995184711026371479205040328817553005155004092706511122688393603818212212826411760307145221643416407411654882315113484169844863426729856321198944596620979218619648591423860559636227245978793087959774346959243499679265946309661866162736271881338851537363859637448135186074692637362756003496074568151191315217818865030799780036250697950522925846025086449448006289565803278927209842035422199715087398458420296314563608385609916886874416799426241780200030984958140016025923920981588052795904922536006636751406088788399177941797071886086192995619090601880286258314501323531402470584645112887745962928235445955798586274715715542951403559151095798364919335874164407774696948985303817667826388688522212906178313883531854428579592208676520650435239181299113877215397793991483771640315928413082733111806518052163650582487537542586155197686804464238593533728501683248186181479448418967071067469704808735476158220433409056029260578487317990216075940026208489284015082271960254530014680482251318388986712689431721572447826413298491191398070422227073413998007989241896565700741060680796204876277874768740968692447431352653614110485528284457044639570369242760840835364198541899209146923409766725432916084288107705698987897267633047576856404616798536597072509880672339821504663156022672649052554430363489190921616953610618886676698168074176951831501231643890959851132354463944168195831426100069819848859335227201131210828570410367492433171647423388680049580032131220833116478108227499194714823317233864945076503099964580412168483775718623316800922762601634561462888102024300136558337088184945697192066269553012356793575890996678177490184859741235175982868626712472099730554326611462419567276408059797746174234052082515778910538959414446705646732485506593091255411830001391674837549337053871706197425884069167810156147504514429773502267440494661532461960895066538043705808794483446101177699171749596118747758467137149361271934703762040148706184996184739093871065625709708864423947525284268434830695052903379471773967502596792280266824998694896401966303030182996081189857432762714985401817853556210302581452828275939225835501245475356350997578924762997631772046527719430144643930772119145686822558309505474165530865311817392127289010953983776146679215293130238401884664397901899611350352489025260217245235849621797219765234661559618254396230597618210591068517570600985790335108781914600678684210726118360491015842601848153341911363258706658451387261743080958951361116357060260588600943078705730962387269529875974336498028985799779379786607943980139257399323372265435701973031347166374131715637315446712040665347032155491172277202277884238561300498890316514229574037871608528056224742635936550362456613315010042194513067579823853472500229490333825133635416335320665835783450858248131938347805830157719600855470301353108583211026725383478805465607379135833084142812301047500623012370501163945401130835701172199505645917286009714345907768824809254921481817862524296228927803590188636197389977800232622339324779593071865212624045718729555544654990480398536442924375615647465258567066730474064615962827792952053591278673899314336275516079630379464259402275210014339733177710821622731297800447945259737520722579931465491998755310358266221035388548907341043878961768575248657983701072824250410647996060265194085135170730173067081523961719792279664712070043773384692610321198890830448655973237911527979739311492136377901065510271220772816979771196782475615206204658130613841975067670723249388572877943917364789368622453320396618776187035338282453103579495032193017580416048852905923570103272157674673284608039786553904085824746489711005982629106189084943457338993652979197137623369342994180404674645195560645287508953377342995685282591069095294739292518889587847776956764989290226533576993550913024790487058313974908221099213538712737872144822580955900246986979388856445674810716734984805747676018009835406003902379772775769879223838489476742182725272116330103494881652978283293498610549849702118210742450732471479631174546637632821712888779202816995752086652721949286806438359419694434037738189710931127008648108016584740314611415125908356077912371942135914802416334059870739165413353765842460431487973154643905371185372883766749072463576231623499661814148055955479638806043462913631733576744544806819886075598043922294041095489995544249259649393258255560618537165390766318629453755800085304463295479220378434961647353837123557489613999013212392542048283825484844459156941728376585186814844528520532977801867168607636375893868603537793160396797958220962011300023963131696011327998331378163371319109720687484289156412921802789999645640697754470500189378725559608610527631313086384639339935582825627616749462729006512397756721867947064637237945895877959477555995520468923758494201323756907222847411241286707728290986295289621190925111414415753533978340704231026500162600077991680512254249883902274443431020117778828628974773175592284873456303034180848743552152376666039989985979895496229613413890261676019272586312316514376119524941737580112502567426801099223670252817368569580233954811140666101274401837736212958164067008238338963293014056818514855256869599881499178572681979658376455866301253182128454405751928525377045535934023032029498971129220829755153853630508684952266035979362355384417895440795556624441390378778721883562897464344229366227469564876710686618254364328580417847452684060684621243480383674554734769558916330611101399390989740665574930294465511891298276988094168286716219193286461400073287582652458156926952616366750402645674357142066946042712364582436195344293467272594641966523346733725493214767354981730030353830791860985573421624092531081723279896715459784913409517617680422178078875558205931196227992666586233266115747560001491815194025899785485989562616564955308044724225907187303375030339545590825062587488228156542666495826168353545845944968081423825038297288204444159817715710087040799619604323491511028850877462868450407564783241015713360761680008716501121335847481070638161563139222524940281639158296031895383436790188376757473268871914312412394327005480298360539593653532299463277178445187706151294432483031369269549761286972003887781616487329813286130993800395677571502774759267226861845140621114279836800539047086291998063052437082300241259849949825085670258009915582807447122082702148724326998010994607214237326025126511921270310614028346223940414121182886805173983878127561590511691813415776790133322644575247729460638465630064479639602494584070355360756823181577149028608215101370045520850845834119986923095832200836965422378556716119583339469766264152866529692026914814288972849181656600868135735893069908493345750026316108244808334427868391878477855524504549594564661640084046288416553469870886761908241043601672634596304643901276972187429423204893335381641320882090741274920825434767105747204294921785235753083891759100742495852445613977980300083296776751860705932568521260653353330674499408675828723070935608630402324993860993172466470679286215151544015556961033664043876951621213277901170584383820254822586381075312287264717691520051262347837783654560389640330689268613186264144804792770332818176615511980574570735495732650146123233605990122033393870128672134000111972696795710144269164505351082000178324826525547312623268110905914701579279279504769585158592675871878778964146729286433082995130599691348236417802959850671231612104862450295748934749710335194342331012478523386958850611587808510169201034982562856009000734984591315173555879894584869913596035231179912105948585120421129147422613834329411951223053482375738207353105609653595303789542992045839509219206945986299626580350920445824856092102950005631021598828950001301461256758751400293971214206760386472925865151927129268307382481869137853374738701489104839660117290758478427785261571457714830743818397527431740779081095957169381420277464188738597237682897799893265313379451209018518561099297483976605949329049213164737551108960662928913780100822081571925738090284551731678334767098026790652516562338430648520619301701150314266109623481730228863107092125396665333555011145595783865785665579109990887371459772264113052586695329466097123055637373514982593282644864643774318731603510856362541995191101190145049606124664918672709586198923389576382852589819064053761349770167096491489083713379216229485036658917045254565841866677384910328616483107057981896657923433611174047352257243753177680820864284322516899363220739696135758326416306950816276790777732807591092361479170232151011402911495978768194622898847639548290092338498653233702141757958616404722577694121163975855901133686111245493100307298072469101167195567107714589999176947099208671265358704231229227862832626432686625247244884460126090743041431543929976360880569972013476846403732756552085169983244147742345720504555973920303051117224218597491287823786021721016564414025220331126635225686142897532402783324888640062244704949776171936056944406694112206597919169097746102205168785824219866097937026674985076577297912686602654381442065499572525893473987883663157917218585441341297403297484136930195114481160668771411818099885231003828415048124274877434424899183842163988502543585824983179282346573379931513138985376760418399844229834346831324265305128686846973909756148612623861935777639427662583369453169145979527266752190206067997850930855841930577017381540777738442157423910708809125271340003666091799198483900086261926950742393238338793751240095565042804327769905160485393585110407721121118892166908481852686949725187474071210230808698717174488590670968543882962527532499823600628041640989028230678508557517618788843303693716842503070138103870618232084627533341271379175814935757940392548942315591967087371217547086698087245653903949630788503708909236868799060861115383500605496746417324872101433546674419876867003605547155467761812523963044987256313096885594096187479561632773933200969439483721433936922528962276632601624437041959573955632784837279028749334789900851419976784309523676637732894571163750797886154572969645107043336210913768595898894463259855640891631745288672693204877803814700899788731989661192358193011216060573400781468312289697791989620181819509233087553633641666822003858337556119921226141257838705925261576638377216707849062414713268035949528008805590482679859402666587758301261241261241887163915571469938398948678106053205254638317305331925720086141669556431417543781794256094972166476107952735709431583919230736254881464605513232670092437591694596095076494363087902901239123580903949319444717010370014036210711182811995596019296840351388393735036609914594064530777794005246276075358701016441386509559671710490615177735392264466825844203499693124607080740296552819145846949635477786463289561393193008097650148484436122205347108172883069756615738358334873743839063384619483478266385449050082564003973763661291347260683781392695556462259160229881470970383146714100985684484778832832148371203415257823879859755493588559617349838073899844718904797779440037984504654149038585179587844450968784708167862648261476726700957806202703640890533256573361342403245302681470458119966871408047022098589619240892870540395724714585929662056955246843299063624419401049329812157797755120578261691991999914001556797652679233189331316568059560284813046782914061347785062004230107774595133390648130856770777371307426781850048455296334171433381778907488867311016218340766028277622508643046850509911208725007519154727653175480804501281053843510975709923952031721735795475938473659312315167483786413718657508627978248782866748285630051625819614992215803986402001311628012542407091969920907340941178614914989035555975116620309467363824179915115372396366931897793845728985383312222044899299386819310067381862817158281446840477726132947362980015603557841582855236534691924679934598906826483761715853737504535388620450406107289107086184272292110146710633050087271109825770436735124465440727654412014679798366881668958740541618924468389568699977418132012798529145531082866348861570895262267279166561470214443819644625107726064316831649616179683139767599010523654754166969978457293103737105569736501257490236127198430209479261686136226577794598252949713731574579523261083717332391797444241744103317257667534808617080753226600374683340653143489172953478748276362838713597772941140504335355388632971498052412948034150074772436577990255827449808337795349836307621627302159607673743070184731655378310326465210449634004612145381841049196924516471018212140986034736208675524723583506650116838791018919911476077623360790242420867541742156265911856313277033898114335338802957780717457693456527273105860974511339366813813169985379943270007304651056545558511815915237316912321151998140701869486559371484277090254388524371636526011649459224107644974600622987234445172135412323509232069748482168154046250151467143974113512867086692563997149978583217834541381687392173227695935160382420688016444801258303752481522656911944927853592661687211179965832055351271378680963583168735044552357375735587163975747196306190874293756795070982486935839022598359169449757052049862175813590436772119044036937895231575688847541292208338761045791913436803037485474138567634387156218927647674668035991804452645462998267275626145744156593418770248567077283292319964886059557487301502273961526731546485205580943038697775945941507100206016224952547539366983662364186125889637074410146659495665176257107217584372231095251604940288315852567448579872721301636373431396845595633874375742594577092920953990044670694257359293177280804537817566943404164594181423114259751325939978069002121685537973027546896349023771305197587786062067448771814472058447459753022876573370459842134028605273125736959084843697176357727138948868718089623053356474910008805483770511507409750049307025257324362437414504252666940649326512980962509780178973298067651859671738494780598620471927740210379037317595272076599921842428155990973824536364195266124386130338879454397060671679117947275370408790418461290852436284750860706719995788963780693394629966775487781491659926604929411446579225024502935565915393404529782934513640313621939928077447752797359499786658413813996689241306804218572481640407832114398284315175401721163221612940055774364567677231699453466564113008002834454555634749774597974324697337592266588674013928874629767306821771416909749958991460872707433680718879618671029473312751386329632349846822310213890838823477640602404923830692446899784268512792433947690591929038424226413220988055441897748582778357563393247079064777099750555637774879946222598909722683667761522146953093226089882264505903168982227689493687234984786275967927963599858528634383528744627072521804237903298634229867362244587143605284859634202237072994683475388182185596705343350798721596038261336433265147494494686979191553126897771946788301005597246552874239961882066277191098648267498135872840287142214260328287072091262807799864421745535998839369650590301452110802779065445657792992146342067432640637406527287830512940620706781879393690908294936878404944096900752605984503546365332448860812497506765648166598624949389876977795304655893843390689101383846480014072103425082543539181483231982762260903723213470562684427009676480591002871236518700319905623285745356464205551284102824596623829192885481965571488472975938160049366297514373926549150808984862371543450778415016690925998149389295913384393089575884850102745311537110157679135968238445417013228704580638674726777256203315524646813650720785756155011906439245135963821701660763858989565280606525998269088694723587968614599957993843267030263730914704194823409513994845530008660302239183178391370939448295113473598805114192223567902117818496349346321724173462513243506319731419976412532923323289126098924219248694576321674140936106142384352136208873211039869138310078282128124126074159290468334717703802534144723662675288356854055111839612905974025266221420759003891008138009820874942979073164434212975417104424783749478547608938065645880925844398148859344204669610988530045397178041619165062523063723252970121104927085089159968654841297435618486728508110786695230384060893255243492572133029645475761444103925893725152961791897232698310418183635574869248468076299281445446206550205011141173009145690098414483974771936446926754323500614674899920134630044632278461430006735790029998131324998662422561421794791581722954797829016323503813458439888078756006030929944718884845482360678079638332276701762217172639303058996308113562305774596549302972742440607185574607395440713220600994250581578848077310087716629744738201005457484710390200114664672858188244416903669918720763805805328263943289835128401373520386035027032055150958616359770552909516249280939015728385069070561288721474009413802555053460178753207071633149885631895893101797644442306050823203958455257943797988602798041206544126523891192004959679698296960150518969738416499655665697887427716429497878021471466068484340970044420360189937638551617904012775472721894854871645185650392584275072709749103254034054498098718271172330652134272583116591485491514876091915117643404393836179890214605521729775342926628730331591997714929286904041997798515595003730504292222468464713260820711346366254275823039433823521281033615182521599542529965679541671815206357097992216708435206197839141404272257657769199060224887679205845269653548678503200013059704680885826703721193503373781185914706848103351333033569672503934388917694610924945940786095262819722201283256499681745106374034380741554403609811470806712830619738695971976863322840915251962674019295107149870975459673673628916942145260587459025452572699808111260415996452076565384080817087423572683154262139566899118863240376120462676394187309854798054308630744507703852014077854044367696403939512208148615960969420836169551981652136730716389515717500492680187582693550603184868476999154029941846457503381382424617486947232054285938947471045696440461309015629636213153318905242814759269955258708764835966797393310949685313142479772789012403728732376229882046375469824894095381372474766264550400972935564642200973265985606948910808013478952564930424850600776204588863451173590860951054821682879469512060669657019026633816173758627194658429534724465589982027495966762089482897736843219513487968190821565529761920017363257624472569747493228055271983160523922147548419350288862711942784004640437101603892085536061468054947627752420450348996979467725821757552527817094253214055121322119787443327012252881775097672852342545147524465529430645832656668422928898798510320636589206347434220474191371387292014088913293100798205458652719456273376203539389753351204391142033476818019342857658912216805880868301181405078850592422562953493276870759254590663639182522310967267346763565221682104495546304532570344739750115342039449856981948801599889740696681812930066228437032882744241838473628859328959244086219983919033427549174516363956184580232635801394456289979035373167688110414089353414848766444461121693230659599457645038292702823150987092533576558990923064974188415914263577771739404237646179806320803935319945893643431400165615649527483860014230593187616089358049916493939409339699522864446011835759456388290818873993282821957506475755898584638807752395076422331109225645663981071534192776699451767098985234136576392690822891604837559780285194382358926930542730768109696761287902851338078752746892917850854932350531463317605814644673283464276594756744778582504530807542409779392233982296191222159137634637758293391073842444618477591856930773268605065214107292297478201008869451765986313124115408017397271201473352638374151412766842853679368808992175696123708024735064211789156415111304154058283715799303137243812191093269911905480166989829039534258139519597548982472012334162185665666409078515457882544864664449737974184673775398881359938452761420223813132323207709398039098655528136413035510691736426335872450787305401259475822087165022274067901546051570003009744330585133750655857196683460918233359593488206688274396279669466664036474655796400188140874653236704954255987919223205188842642815947901635261452634233308115090864719907976128897233237137017248243011844265863006205191985911116922251285997904924126005178396442609542549255652632954350007112390545457116985964359879793750996164180007894718048314201076264589850733316599996056174174731290471270143581332646314282419562989891593307747091136961019562604050448844831666541449354609843308696376714865826731326090656802256238205862895322353853867296345857950198242787195521940849571064818420611250214806850889494603906195536780318389697323640281904565366749780909228932885006196978256182515194800526753029011851890646601982922244553332494077587455125120389378640883092505702048848288739678305923769401565202974981513542171353743333705878985942570586618420970226091059344050011515509449542890024414285052633074882636999955455832370596893736342709245039841836547017198156121187268143927760437089785117583633744378866452909348655773536825811030665289298776993352087169692768152544899277261992590518807775355984751544026595266236397265358861202002059818910555445108922238244603486273909539664323809303810414948742524166661124725933985105991258288335406896837768456575747330611231071374707970866249999332286026238070157484818128934104926922184611757176966113597085968749222977746901838286221328692221601266125829746683299248647528959236622152931484860600717956919625772941742409558107037448632188705912987381183238589903189736371300242184032619923806814869508913903318085734922270316175366751527131947369617676857256915778842863998539717959288305544519320342197914927781647949277572323492710056589748512032310078960599422269076796324256378456157639468638572428630325135206519131614663060281351804500244758743741619199904300452558001686283548085802952967120153168449987157152431750039507575293630847099356726998933644482505851148183481258061529244891284297470397989989014498189750414057096482022683748562056059672643093019372491032482974357512633437302519640543891775622524752461492406357534214517444583832315546186259873165725141791358523709359734431999861771177531127971235020987991652262389690254571553507431824001519103605099404761436345012969308030763039510113364720813390149175248450678999540786381849391014027523039756946992383742188410412745681963377413071646210368780555787018743337971906278247904523686272258295042172501127708139268742825544231883150190088210929573002602246168598937483085817084822013951389217832262835435696364794162334970517300784804572178761423615901977751454540945676037350981645979014328482441132270555749183059132482685822891049535523925335000393016685992015609129902346880570544477078183673320885743647843669418731926546466607971145800096848284839648562578633970883970991391587518299825846694138391138486000121010795055295208252928916702302853648885084831993088361088767849449438617474104512189606780366743351909995380357504693526701347895582323321091295298490281619946590246219324781628028883917514069376350957219816289318298343252394862098670251654973772132738251536802128944048634473068823116803359501973462973024424379595439305407863552582344049129288651980366319467217027727238697639340459936792953377750317226362291872887610070699571295742900434895829933140784139234072106066110280401631768818345299019288579531961410248983311875051145677337753997973252296063743877326864571004772608573382110606105073866192538945383879465055165329288902653674602677737429060030114080742427512124480591202971223096271812206997348526506436793793815564630509938030604457221813650712272243542299633034254256409714061091479136551363541901018899718537107666804271196653586674182196473150399832045756024310855508151688338463943268963728189960717675089027656023698089080796466967698546987356978077953384344139264171836683624661212340551643917917810409355563242624761852867223615882166954657855056545940946301016388658539247195725472017741791005147759224632917507481607770097342278249772966158196333348655089576761932053582064556787296794573604397180551378428118925860749001446606237469550602415383892302843006869900934591313079868540245527919284304698690671537918250373075551854485714316373831361160833393683343232158952654011563954054288757577548605877756011231061876749896811890480151747184778527134945422383246115607543409716306794599854046642087106916213354412996253687136292259762803156093658631572438552890954144829467685981020847278658835428550682331734641932909848017520037944710642946404016811408553072391975443916083169929201633569983304462561322379898198545869462680870475080828271566374765583617302565227010592376918223637550608932636554837733352664758328008490113920515955874023364369584947658581108523025824630551582183266311195624298662861717404139843947581352125782557389700856160165101365715842984809595855420249811564070310290649463445892430820400304292640654299541036667658828662479301608651739918305327213098149884751627779381735640565232392159243616861066217722244879792615127487617675962836772528803318865871056483687216867715216909179304814124194383235595319495493741718588755698110571662793653405962637820802365282726784276288489711256466009701312722924425489544925424630301734201661195406654460530224087761482709309976195842368435822873218347944460013803658373184030668518360947260310660093068180401650551880820248361043058228407340386219620674194357318534852242077445168162100066127192308038061235574681734679331213590240712413967307691397860505994713027149980241186686532494045166903042277179046178776681259249605028839959511459427075062276976223147779404907066527173761105381050573502804452303251425732580700825330597029095395445030187092622330007016376415989695416867732644759484544183277317475677290513986374817015452270500898357853808302405420231809232524276688300960423615561699320568452137992219049529484902540369390319384986806302462604074324490021121024315677571221882591415115933626638759970163943540211174438025767904803318648279081332071347467284055627122509540169419904462355468023532895442462326603684932435372228049292085484742207627503626487878282718044215692642400329024669155913121802170394812145192525752580042194936091541293362818160268157737307670023831289673520215609454303073525805898906751654543027630740417535264040719181219189309486115945421417999093951630431124437940677017010914068261626571528819506836095181967299086963223497288566546850348170165473510017238152504129672258350721739482763195504381536929142959726563919391052411133320776824204929786446095127067137818958218470925400691921876478697970516991245899823707579525761104403057383805433172258482441319475179627242794546158082031711710111816558183535518846502100930392492496313313099845754313340905772635172317074354845245489241033885979873501596995723818053412870683489704463083987852542846998195750929190979104425343158303158251526270061610089918193521051284483614148652888803945894938033154638173516753967085957982716233446768968501237257612959650098058841630985646676033903132046300202614042139064268733511832804864570330364783151408218525602843430236706663302072487999620872616578886894551760423954619098955911330048244997609879930203928533734005985787655791289942053867374676818681492885841123974254778867920471760566825747322202978052485550939084658597529273480305994932555663842503226767166736768107225371765817563134419861686615797188133830263917331637357654540657472850464980418625797286876600389671972513455400182943648574343449481956601768101285275727661817124166900300566796988599078038328149626546571156103374439726740470798537169131015733559835006033604836568317553722693632143643308189249678460075850002668592823946290652658662226316538547765569790288269077833663949231429618378638503749912188752430784079521282183873615984281231917549486472946881511869858801105318325501752053419076217120544761031758088808067321310347706741475875589098889320043590587944431577551123407794311821793325312736872523225946603134904350242178155406863536935879492844826509649213157025839178839594481787963542820547785083017961753416004315919861941163536115382118013794163287654084265110541728834980814603688518457750055127114875156527741029885360467849050840789139259166389283711102651747219198028671785744544030194446444803271815987917715180585156338135941575046272110684539392826585111791581150293731041997442445061776204889091521240014671426086830733441307485745118325190835501968513663171315630960779660731674315510041559843838712705168260765369829096512091309823372271253589599863256438463444008721594262692200195437463654654742134527196664957601063194493672785731469917816557502752677258924920974260600573004499366121826634566870252611211875688930328209608373237653119091834665203317346506747781470417654319275599951168057069212101838637694759100922564499022407673982618266940343227892523908998059245622850731577357738207757126789226155868500496824547734865439889245477028904642572120827267731868573154658490482081866012120489422303405938810898623441046216433390158054029849765467752420737546332187157449616016854290206345421121929444360792892437428357980355367593429768930307964639978805434841923872087974562739964053135695473311038171130643467701236143714356494459457939449601069643059305746726358994507328084327447323437109931493026177693901469361654587201130579418984731009828365318946535062673298771025691650369687326533428400680633630081010040953909360203679987628286350636900637786241215517376171493547088591811497133912478090829842515436522328316730021260578362878998096486738207326987336563609715091596707015879338297300877524092790019102768284461187193389552309705876768938832258354051240590031228237805236235646293558845532013329492321761384465711435492398610128970214151949752041873893060204465124988622550562178885178331799207629448617953967330295132183225737141654211639961950624289061274756177113164724540309985640241076551469082703153852392466048592602414708984984523954391717681591403228041440400550900441218047471894979960905872170186257861116842692592179156076629790431100820785579118397152706997907037472216357938213526383759436274858597699423177601301095220477607844414216704630309258012696640792734494165810818502402518264831478480047993664918206238406497124426912353585298506571173793116893070860612376149788398798288271388363281444311223475584118092606089792996196974217807171076820905860959380419894715395259295669035087473737015384410272059138102018099748857217576796947800691285823114907786601333578880627365589824925164056789683813118035710416265450024574933191370007427784703074133019281726298116754502176150648378505949831621643062852301264851682540595756192965977247244718694235375169553092976020207439432259975335143494551358750394893842555970279392140913568712839388603278504368188155534201936060901677182873389700749418982308336565746775362424907555380704936499368201121287280320150948258407170929621122759496930393944617122613457789593544871756877707219617004854224392317032314043528759992953611323538651091148718175892121345001597076633087077275380978623278115031794477506992489737571021334701464902807116738258341533546522315627108703420533880306908412671751073395555693671526295995821232508176525638774880060679792890992870667873132048260119653274320885161283007789557742858066839470807218508851169088711494327497331180861825757428760343880790066076716026180874272099571472876922416558653819442819079139244399513124918672498061358615397496556630141300710612256877510502699394178943411380369947797805894352202600153091036738539857931632269730200417367961086208109059349255430058308429338601447106796721101530388438928665666159590395220752634521451291753814591101040494144371392271618552914233750903352005966014081669304244014437159809106925855521386269261003261339759461116124961961168463041022358794118049624724153447810094079213211297912995948170048746331625356480910420829544387029751811404790993065842167371267503426877707106255754134746474052875524498843092057613463973055438422958488889981337286642749961642956038211558746162859197015041448783640096681712335347936043883239352103334107350156216457031877576476630376858997621899254925609242061982234338926837707484918053828946786500040796188596223631250764310421710871249921631471166179262787574597416438042695138996110680801715219397554783644385142302373326409228986764401345873809599605936109250755903521129524148143316028662338708482090847914833037807746756782784213554784379306110093350630954520375477466123221197670051134745058885956844714432070673539390007377716554596875890167869648369394842497755964565794718775961922696069489972165141465431112688953707863069479647363703635519782551842386787088384908548955284972064387570314605069740531098374875012071393454149276039853504313832007044297677870295637518198730815404041408331038729836574481772743687706602252761579692639274582001720205390151567797031094810416530372316425218457378669312695669932909001772856929981941409255713626354635766395313365037165372021721613684593790850078983188129770000998128819113749079270845505172082931114411141221239294731335990079928916962376033405713122417273803459946199333096246397308669465212057232001305225063668365587343071653022632727621271904196852114226934106682614406652664588655903005901858977422612624111916089575666381194414230777168337685225704228248037843439484632024409931406510526093210216531569444918802729920629908874775030610454338814031779662002480600056593793114340559062408368781871702702738348304330696999842343354461193280062503948651804620164844356947699974602267004061675497307898944621424807549357752542939818314877661803170469316034670538184627184150017483079325367720738347707313747958801477736638721474980143986079418746197392012418657981684145463253517984335152188251987055035372451879906944852812945500782527168884177231904417011405342990807801114887028118653973199317969623907123717339210920802801282077091243368406714245034151694655081138550885357094726630422152415654569007009831262355774334131770451439700336714173681269347705116222495469238643612844981030264948942865622216669822623473963324979323685839673386251354240828540103413796909973197250260212379200842081989163106208141817924193792843968476420862272207664097570984608482691047604147963885851120037832828839622738836026140499181291273404090473870207413988692627553478952666019175067867051978525716541364370461210582604643206216806908955249666852583884480128398744236262283371095072165669233357028388678662260766625694523817520031353289985094107750119564908428579747261969402440895803044436143016643169838696532600236203061806168811499895820021427541014546995014341359440495340893899939830963706769466367831996822847955305785939628667299467150513884400270567881644249942811432073744444347983655409804956622228373351111245370335882765053966060357842027489529591720614935456069275319146123152303145626585350879986659512028314352673894747947883391309923092034386560145926566120510904676692829709029785743487952918026316791024770462658848896969145133434768820704720395541232390400319483802210993008332030591578199001295520227377778126936387603852567951121131582234718825197773572578461166698528304894970305212045421682259155932109314949796640484870360140354335559275459443455572987700022885245984998615316203871461001168641008591689912786988319924470466297503122407408011388161039011812436511275659179021497275989003363637416623794401653449585322080645286243155649893991593188270663675204207371475989618560994181268640572110937513737530594523473053265427877369393756844289458359872510618810741421052181042585615341135407781634429330825387660430738998887373141654236889855766515968629796333577240644361511338653381779191617424362946431044906486662088322848171669767632239477657887721500662509234805593940292779885951236699007286145489159895677505040190699328497884997970518970725166392418393015226838092262732584680496723428687137577328344578045388507897909454000110069401269242408575652003329530525355793364708078311972634250436719593472613673832978085465653606827727937748165728986304327155081352429588204964758415747749780064826839188417760884659464098860537034462401860262526501949529983704336255676172252473129153772958018580415306265370023988363836003088103381606146765748106105312592314390517777367830004087608165456560264437697076898279636745347805364253130035021881187187538514306342348573355969190765730554225163249844403639961174518832248718761430250809682700230387448522889300615385142476000375045691679359732197807544568232313637048730632333657167395593376178948539464340450922713405495040049245509431636763448876647844562965525761281229079873838566519358967552334485027332065646280946668225480255255652170583713675913094069192364103773596133788393406133066332968909956314075528181165120108217674770376021679347836434537623684755771253226088412873905200826097244064712039563714511285618904004173605751568785220491388036563506270072998395354440991550792886520053356462699099164948823148144095926481162488720038493060669138137844299515091104309079504040998411820861710974407921495635324052031727311765554955817324226686262048856222662105188569570576173992887004161164550644084383863491720741995644773725464409638599154481651006384001969946223891628193460921670165934386847558935715621058493139701357455109202669056041348527168594392311877894586866518460929697742363562189169393506151893069079175135385478780006097478688711999941741802967307650860821410642654575975760177117953053208732854541286934744379914513098632710590256133666463287215670204836056096373010545596022911148908163748321939947995077349520284257081108470537507539151092274991937220264482038231315472031927453230219476323550751300062050559051270122005465955783319477723617278687254379246123153741307149680622029996240934830770541714865691835193170241187220916424483178084075855948097516980114925052573064701451973477896031951314349880600468009459359126190351437145759715933857707035551000228970011796664392117352765322031567317067800437191795302323947307822466094747712015819006178502635472586194934943986455031227328426967731410030925470740606735685691486964996346976518071055719673064386776049624507041019700965587100561113411139644965627287520700157021300645219664060054809265815197346061320350937013835579961719672912761385515140226814201214146106548574189199797896659063107548242233684704959834364580524554034007192249819318306658281647810043352717097467293840059365540240138864502099139946158554322845511202746526122390782303302183592977271805456747652282725270533097867808825384177770398204401567273430446594842908262079973919571621754226835806030226039208801433443021304369849287000969516525546009587248730429582741203499853259140835198336570964279110036630248060806373200612921511505190100957322977208066790507955260486296768106858544006459840981967992315348662442438248353607831959219320932596723045155851890106869083061717787088579086057160350028626971808922307818666709171685540036143861994837736992006569373757488218249948657095154092488860769621430612462537289648710476370679843636809260441725407776716950488091878343588885020126046292893242891338863301278797165871364378007365788994929329143017230516792697868443051309912764583960524464066634191729805608042628434593452009645482868636606338792328420116500555744696258050094790578789689570989006803375620824753786612156034139876670844786549416096599695351993244053781950855182083724579401454564007810408947305249986813366528935598414524552669509389748940336219493388210545635752084386538890762195578467937956886557847357290631124063686970330854603158510037751149255747285818160318081297165247147523275245169737916624724978872330959686803906065524324638069198466334502945931870384154532138113349378214723769525810848544574222599801500631638123642800810619988689118560863914938053594434408197000614977109454311526464062654794222778949673315438540660274594753559125875208762523634581270525599917873061189781523780650796644002249805470583617181878678807629764754778642085637847222974145446483146546413496177688659903515643240949771984597251491686693438120084848671471629092326361077764729558713456115473510822657932656762938452661524224142536657015228439305872482300488066174026877520102186269712797043722120758123672897940364551748950049231924408174860730773140382964072427894607359178714384273422808925066744733306050840562853466236651766659134342131880681747242114594492023580298023827997185400549758666176621540696416966416529214091928850154932632427066109017176091110361225724324325062264541969695609344916614922992326395420802342614585181206607903928716128797208404044640630169327539769068955722761384410635655396787226990655630773180396293281110850456303739750000525649002522609955851329968435697193283434160798591177175043903244226662547349155287289071456452783887595201114309463389778330663551910450218878476490767968530812607966636070787604903543274451028625785287975262380880820593328670136686793320533278698594555543541391306629811931777141615452102285000991801217422984441547159386270288721996260020742864674472727339214281280363222050317362487943785349126278455236170088464698443726302691323500347915797101230144869949249575990094107243363880997360145444397022527049111225128087203903207003288443593790826899795598765986564476710385948923956825559170179384986206756743119678537732319352267097216717619985306031832944090134010325583694288885598493280109789977626131241661841701343059328219572145043209827216699548682868291374242079104561073969746098817082614490230929131780510232077500063215536077275945129279364670118398001197642331488062937727696459617321854230651972568802079098688248332324528086029916006104611294289818239749130758226363333486685314252557853619562280516122835229795201180693582030003033898587325163777922669351448103154931022994383916547214239493934136300295749221302828204687739960635327380627286310245644501456426988476528454564416693693027732417687942644009474865078794854251249543571674734733651898139159794255827319559618672663791453271026574893890333699343640636969861516048980592927854069199546680946435258320929216346211769919951295156627356322948382976100370911415062579695664999551266108686676363057883934955986950574147304336769844473917955412213583739226239402323693353353079621217110343762712364024879989010718694915647353133960153600013953918494069442591222627373674780287710814362763970189184674520704956984254229430166236480891929923797711636638913660922055763259971400259020914559456287535141786590118150106709618978772728586076469388631830083935545343759147829820308520287114325231570218321948895773363602613376880960438794035655379230653199533466788128083219169461724511595593956438936144232879506160604638120008094242592287905586136006310457985169561530344663301520994577752982240383568532052659378852577955195772762497132530270447625043812287815316649415343082112525258266007695193419056444956509646543631770033849791774921439797381397102310428782872542827751741110412087949509016844089650082332327982223098668505592033288956773303890398084329426716055122072836024497075479883629536943039285827185236675859161884217814852388624293235302921132253099714208028723776285218138505543027832911604589454649949192964092409325939236248973422381294227778229226677408630292345224263574821853797983532976419827652962063428228688673427813647227058677825243027125307499305735211390725254795553987809940565093961029217270750487843520607012864252294301646960605247520318320341150752338490906691116910654708957220277397305585596710520980997157663832261949608442324848213945288865647563953765974804521946793330400908262960762190785029126865110700004812734650038458101894834668358009875804103918687501143311503473300663086925535035981558508356728019276269172343853065752276043690829994744661021058055516889169037060502040391703177982439138391477470127448611642034152558740599497735968512673768545435795753620908148130181384960522417975022551179151239385022153657907454201536014728843602740523165221526924728686334527198106528567344951552273012316844684027607156882628343420759884222681173337210664391384619925459730195522119951239367336138436912343799976253229982210539443261775504496892944674415286082406342127747217403692553832974922531220090818386085854935260645500265815489475548858746392240928757197786174006446662162797420012833282961120250914556638502638733886144527500085644386265529803335921146893715398268241098052691952311667410876370116140683265138160432959875496677480313126510444138120475698515759715044235349827349808530120471436601504714134959228355473195581595388905467442440848147798323990381948308673895809962628574663009811218886966263474092477551531489889482681000260574711898442566787295190971991832335896585448507495220894215409725157965869153111684621382193333751790632710368148022976672454254878702083488226442661796119896987191234700536147169985625233527677409234063777142867416510698795291427433742242749137232345704904460860734507204646362556861325285218983830546558441370197088381240511572372432120303112498032722571165425878120482994984221824036337267414447971244260600934904874879301944099881092254379723507041171674652324051392387372397055832164764908080819313138727423988221552940726393403208176495679000892925041898384877183756683796886381314981255945227080417844855099833786803192934532784394347141088637887881028633035026423479224742616840054542467540610007349575592577915949819038876869744779456729526529543804060793050907964306996580061175901430344937888517913565978975720419051571924099970747513136489287858330433672379137562675400336457615309975428357242311951134781560251764988326998058489548403093662589479169831825835778656493296350892282671580683099144777560850228340713382255906729677694549362233503967700152089886082269613703439347388250058548758064174120428530650794950962080086334658481144459728313490400514109898169994543899709578641111515989946466488825010125971255016862915547824402199475834047265195065292971648167420818869497063762602323088500613018960271200615214463386857027054206399230570074394054378193995993371044160893122584372474277498154931970735580070302017791710173736953240947868565302051803274418752921325822669401382390466562274779670965671608761203248385172684235810449875419805731879252323589904760233363292250688451919634929404964212746597004840952741919797667543170079012138942519592853638609418072973742878177402644470296700570516525572863704111719997533217708820086484905680949928715464875690084651371004684835387155846733645771861656890782622974395483859995501738610441143537132120258709239428595667425426242475977591900137228727368020741006803831099654041459119386283304628847601711589223745574226308388119757023621708798439415020471689949162281642851116211885931275610245785986404338587214015643053243088646711010162891478751713226313459384818681965372653126302304231342717950394344229674029892684639672157954314210373842195390777423248080278077013609754760079374628001112135582709128652879483631141971697197999755375287406787029559849930653210443820477328726880591758296238648653980297527994493202089801671553550933786772938272585224201626882529261590243249206680533646458493902851462453682524169019338742648320811329278672273250079203798274781490180597938736856752294743343572836900442703958374336707799768991627720905100180912929312720187570885245150182713829093053160743953723774028696244169540815900161065616628270107563459023251557504273140496777507890932156033326454234464006616372780217928308623161779770520803712091380048780046621944003546378875210408628974377409227629043321225049289832326806104424016055425301635912453804753940828799393026537936167944548200702311795311653315043162928108898518914205396588167808274287761881118316701613204539487625926679163325876082267804443542055842684938313759776767778555889472591736503154799921211376147191165324686208889035687550476953266554605714710534003104103966986729675150670164710468796737451114289076434580751039365335912071925856491731158874754936772853621965555442437948739113614329848131807739670359501877330267774435660356478013176017493457087762299581684186980686889814601221862221204812134721818927614745859269014688937271359989284647915169205539816109173142531243549152201343933355243759769443258023651720539556789741808826107913408274011793498155812337766449664669901649114674834719202732822306521680713626399388257791141687680684600577032282995199321082425981011490794310803871867601463221935381051594110971971378144208528980615179858616396632794872374644716196458388490985772792090246705505211543911383517432947591094891771271562901383943305441963401625165748235117513899869960576904622155869952479849998292020608642421675278297790986901574636633922657366217578996965226171959538440683898056076664495808633697571902680982265150990621984544355411263427087489475019697054069657112924694662007824973230226636241515618929420064507841286064999052579156199831066730124696258789816741052376739906606369673851458512055029563000941357019668372117313720812649898209129622191595268856201027489119541263725658077109249256549797781916002956426269800277023539390939036982279360807976777443886568235973365578024597988795700289188549494517850334482790939135174189627385355868347297577374828418041536355180547690781468685814385617144539510906711747298507283240495905572067332266687718983674336908317485228780087262483289337351673278622295930141026430980270856272934531603438315937985158384944680087442757073350941106675201668551038078563817275498691080953649846260113978141903097357525233514959598549151748578096478050514252040082406679937961135418789122089106218566021231289699663553398189736495615443591777695676849474462915666426438764369033698979759162776771426817435872027064411401795603075281035961215434389498993706276069322956988751175986330067349695660921790553611028478898000753935040209132359527310266826748607020445724736322633445061032974182130571616750105983764900490809816320142471330096762789916244710478577155258908876586632611309390312022774074779101086508907033423692544310271035934368408689898593576869919695334386716377477246307345502702575662526275231016773190733994906774140900741246289939664486494676064719042777271778439865738776519175791290549073055511721008352848099531289194256024238608485356832845834594328406102850292101917264687840935135086438170965038872098656168631384871439286920609000071475062882799786247371330856349115304224808159773293594631430457911596279313094951131463837769374196945062588253534766684583711669271249350567040379569542299774916176894592691265181038635515647873025234317505855850771835073291462961501898516830012560116657726987538160042357088053354358835889874060515795452458997326602349643858653532515729135534948892685125809131961049388597486411768048164888968592277876347124406235469814794337989433159587869554648370131704698642711498198622406571370513160350057674449849209293935846350204899634791840520469482886913490242580399387740523447132538757752401015607947177694571459335431875532221437150531123003229726326102830013593267817597694834318153420845957300066892209272980541105905981544360888188195510721889496668916278091777728466943769753640138088321313894622914204137708020823932412883724135737355865078829228708790401143195624481024033595727016182407424213780158041782351817723301599141013877684487397818015123227052134902745279486858601234772106786972430882139481926643777286694713090273409546002398429395056957776373792200957205250269077523007184502230478112060278114563649835553792136248933686412884739843966661258399672885173552485515404073657810536627985547174052585178590630845881607996693331165499511403820993057621203333013492091948025919353104275367982353420163125723674445476632848975290383882216977653259298707259928552662170712722327070591819166051761875077250406038159107409152561063956763351733853815241090647550421411819848693727771588974552382974278630332297506637117943804151740890763588975058835739679262158700557783260534493245867247070582809579510908996804575320670586586879353535336945626146455549568309966142190810552966242539658194855562077309739701363700339817529145094959626428332990310769688721472453484433276878362977089536026824836765007538099535104787723650726704738745201777166733345490866491471534653123761937210717695419224378371413121574120481052951415839864702864921230434587317976372273193298619712221260007310393119789584833522287530023894664051188122884465474861020651693102969823582135959949617563009900341234118297176279863760279665757775223541612866846187118736453159973889683734612081629336940057800216456541711812195372042249512915200481706667243968484277518472831960133877566220323668717602846110065808230657253047773277106712060807461489416507173667043155292350256610402167675024033421854072973884668658709271863516699087350630287738724574670286040955629105354452799655171097245443132260633243575022392747928226492873954210335995357604983495162017154062877604929532493765103287752484468793219050829415472110734414103273275429892513803737926377028446623772123399731818311993666218971881217654052506535196504511657607067274922379510393844492218881771066371896112728545879918860696333795493145201502987451188966708049887374829826127489206721480491920097516285929916251316433386647577436205393764259391077842166423733158313511614534733503444515922289720437985559577665292076975988828473190689472225095140931763334522398834833216078369801507911430770322218534080046913800292864744751451794351146280348154178165127177685521333334382852974221887093495810445578974221934996507871579057055000154494173642288176264717391330825978437952293114847950169263317856542109540143992883763521723188835191938422779087563947513193247090451576815213858503995687003923772630654938597635392338117406991109712550119068873822515025353757613640625751816451783594415859066887745373132680205119384561408230506073894523178330338994898237150668747999105316219692717317851022181225266985014814251862859581424156446018708184195764640374365227692036271428379716368226202568198144614362464928481729904077894823526961520703911782789377608931053127749867855514317468709960961140763191327123342764245611353876103288563413647398725394268571219073162611170205444080915767720545520905686692042676255154146071567031580495737346624170366559561862837683784264685712664132870618278787477836314554722333007432617469826277813831341411319591500871994716065818010791624673727685729879755862789994857684686042727996819069838082459859323896290403005849017432641989756245329409472871839388550927293731317781201938006037089767182328087002615709012912696517689502887384232805476684902129314859080631214426495392681209918341891205859776382243601908260723429128966343337674432603129696636793389957826420969131698283538296504295856883356304620107338105061279628641800717540040237833024639198478671116521221596949018671592323909707500897823594562358294474711731479411411625689223146197357642032858225390449766275673477366834203180821168636702191381381476237795992583293441484953472869788931176971569002183013998209283017133296514586292627141754513971644784715371388294459542496247684693954264105595201659681769322659078581912147673020973472428566706074164572874297047993070548220546230561993799446741495767020149658842452678112819391219511743315255196661929821013769868580486922648459353086726328526248014960887571275677286922432052239426223493829757232537146341864186332134655169399331346305679622099692911913625890005428915400807920837917100265565708137283912162267961248939772638683546103711588302414523475021699058922674096333810971377390501805807237973572744961322091900651859369102467165283003232863093207153204671149480479369998223286333446015018369044141954250746528391309993466960138024761067390244013314142303688785324619670237710069798856327641776930766299227803112356640432258232734687920503950316708057851745990669975726714929997026618679539939519154048562227259186970645699482557241976478920129412242359474138676908998078308654757233359266957635704706234219596188704165588533049805000549696836607622347355471057728334594345295552501060078434972595714147145237471345664792257386775324433709996005206831078325238869285293162038334567661682145445153257415365970745585595366928439705075320591873640243562787269335844327860141166618734158227441451260017537433792841993212338084649015649187811868345949609425268074415417278482006824145746721926525819291943084146618714385316339751400672183447919978730753610470677237695029640602273729596008230836359442799797917462563826902240263565256881458776253650349426364115186937819114239623842843183833832212128972647125573176665240633447663834025688734064427894663471582688425061251185325085042192940583471979818276817147235241693863905711033751364027312494535621383349306845294319560197568580127841604457467947422569444752588119592492902856951003309422568101312085810417932886053338777544375288710417534026090042406401871237787194061625239100264858799817418998669170194481969277326753214070016792560272142065029136810553355406152811241259468898818138783039509956347911730726011791239350884678546363249139746938468400922527108347736232519615508263362896958258003904611066000939798849012040445761849564178527074732940775718799759342914797752873280967662469953043201882064783086676154814162457519673789884850021517039060449293708536434747160386528668333275134603529814139077175390712560107590062900165185006361943589610321367115722916187907648575393907891436673841978107263432025666559444664186331783138462473736519021010235894006272556029818226479823582440700282132898785286530266350243054954066318251281575684566803802680029448694352700658978438815534812776165775010597164705687713276768509391484503101045518274387422025565840159161887764258007099774819179394512094735645534740071721442658775456315245169481996498233060446500102742491287095574484411669852448590720098706937023986824466954297191742336775270699081718986058775486318231663123409683390347680522845204123268338942929551994215859251902063384094980623947564392726890211396202676687021051221197841508160961385091165303850972415601665887481045395420405609155788047857395516113384192476201872246702589748545335088628672055902626023335223850291179491232217479829261553881387761494302820295130006865075397689669959180723693711640433411379337802330132222108344352183985637185490660229763479702574609819021925741296255922213847958420779037834806432760187306344657929340574012871163001439349217346095866184834149654918551892653406710184979290101120194405394386590718670877849759727162362447651290047042745501576595265993318312764107763269107368897269693090152795069896618033434036965209643052479264169395338652899484999622151960304726346094268170701457505100579986913400550731728819614690175526641126513378424409656666363397666542319763073669333156936168410433531380341980058473617629010627050849472896538790708752603299661233743918529477392785446004424124190823446938817666140145422406596412921430874917942888486047803072139538821033936278488137792997683091898127087516033194595154240193427903476622560164349895480876487815999291022412287357935653898058391069043592822080217119574398273356651982905899604583133545471283573503507439981760135588361201638628591321289338584182347597414025482865026457583846763780932956128865959984422259396934885833423377323391384938926803418166105980183172315134730973749348740675943274220392922573810996757862886701371040156679972742813831732100273189914602121285567513574184837779049373421803965914339854181856085378733653419597955940677450428427489430765000971053642126004045379608640432788227459454021491692418299980403713425672023959452946823548918953370683062741816113900154273443897081280308867327596328279782515597153263523590327488251437256610368397809073504022293045055604324062327298151995826656117884331376923028457453911741136353493031633812172607067075935535081082788950122583361116027079863434590682782100416222567613940608610673666214310645530509186325096936989684147380383200589300769227651435393790703496509437141773336568832705213894142490643734700250961459717753257023800440826085389283640108833284642696069673396310278877369620617351126273844473531036756490094667940726241742017384755042267215576666114183938639708380233619102318217045652133799298438950139693879932707980546950059536416659052416173683348856155532256159827202616982024255371044977585022837479044497842770596540496103812322693029357233569008483436619066025412501210821947220107688516011571059011864923395331982336603244368347163075696881392687363218853592956071364285435909815487888519443277906497707501206807261772776621593591369636702230214471692069013995688514355412950441113778076188344513747836940789873010121389587763506800190280948613264886969113246068564899813637800228951792584119136917267074821809914566610744469729293945075269899405493327045545072806844022197239948245210178906871512992136942214898345903148538101556011015389958295246383603212065066622779757628201263694250123405530648606614478169663455865071178251146075790690963547495079676735966816236396130137967510896554132344754128639437142770946809016298154457097055662156434305149919543569896117790714693558199126737108515200459788616765081962561705371299922147649340315289313708546674198734705761703709452597092591917620025171984472671815932866539188217991796965110438898670113108266226977749364687668074767894201094060005867640542497663354967121828499833418605625033413614397780532902025867824559859098901084148123220265561166060899526636029529283120188838265571802849605200276009841438385403734186438002416380637851963970813819916581931281705312246858659527639754059833908524306681997571278016565938712500066709891361896618417565938044142921373345033515613928568279624069152425400348648767144777115911003505298444778590901467536763554820270723065696022111310211971929404436228581054454492108410975136522328236477698406198637608691914278194978654092290436888327576379178278636907988801214101482792851298019422147273360104779979947222186509607667090001948359368724484143396359385607769107883826895715788040559054570514152582127481585176132553960998818297018861799712247655023599656648009966398769217565864899903251818332515731690006109293727601080979023268383929147308537575604474436179207281999569440856566932807938700042899166189406842526802100434187810966549130945286651656775231475499255198592593693007516603751551941689137009640366590733188749635440198215519876166186375126902022702271439811956159057268719597954109479482107580058701063338141099144699880319833037018683757442518552947588954560317051779487821306427270058578946548148809186800660380578090222176235045052826520572662444531158318629608149933552560246396929888719321531988741651590640784144999423164226134680970452496746713953011583764512202778860067422380640472848055110318503805098960534628285314046686152059999420474457147869353471349329655258316025547893755090680519482924782815282301929538618060703626795862158632512862823773120155054972515116028120090567452094395334548731453281721799578568359570169415432001445646081039834782691261918063723915294066801032318026424157044866227889896701411602918580189408133402495333806834574627685504557090960345462555970204536627814275433197058443565979029151552435595956111361722977913730941471327564150877926072696803149580122632699888863909028182453278005476855401297697806799438195973900555062531060727826301204157792499867887375927014245197195566478921411807341451685682057345147925225691862063796594640971889404482353056163961175188206821343335357614836507958283502383609418508706554031936998890133623740122511306530135526810954818028414505942792046154484932311091533745024322799799812416925963993483857991921986560994273600074056536039150933842821412689539250393604096237980240136214500277202206087966058186493170320232066796226083854190287569684124763530954566574425966417738863410862647447461257630718465319171341302123929324269926402206301379055718266102307428153494536024627767962501269173707376417998089658751764304274113595852225003905275494166956912597930444283144578089252170868623157898201457038208972795904421680952697708863534466524470009591133460939910841564624684545904068633907915394549302797990518088380768894670714831241718241709843923950900064429705359713836088185368716587462100393071911982441533980909141611628925609107841121089019521157359841286124805292852400393185793784203056494349384727779449482136692768750255753400486848352245956647992601939804702847175917650755665612008169440942514720894300355397082265825552520406621514983959831830525397525028562700907924121868290557614940571606934557207022506814607960320852975327542081905429754681549449915540261491698872127508259191469458746376284779877707687432953687461997967010329594055156688234256479234387147891956421251821936271947781991439693166267384001379576111629745295272950249945801847079715436652737266634958881542518402101303572379140011766991017031354016079370111864571274566256560838030424952895457457215446399212112470496721064929146567083742663213020934797160616199543363471860133327362790268549404408233279233253463955435509321403941674426808152446500761829101226343235568061014043211188196955268016961010538838263225484751571708912140813136148509869323714375697627252265859498909771146380740608230748417879564689109416304388731638641084568066048757057627581632097961440252205995822866860463414054151410916911458425012354134788399423899043425810766918928180450564342840181335435186523056154186530877641241573932950125901248523562488154777782758058877867973366417010283846488387769827307898957335452321736949923542819104861981642620382916659514437426668408794505649587785819809772269254955952237148019055233188787117898173884880073318483391275898636841675554316373269519885752141806931078026851813451704657927997732222226166824902203573824794476813347872103019896196773400407661380276719882512913159639204150206794044498129503426445368455299570176845994109070575007443752161483627107322573027432436889341664235283790294282204490160158306875650841630672464743258283891121342222685938842642632545939797678384551780096901171850095682199261007706610369622208408846889918729215915727480125454272745825915362370475585932872610470552621566938231727362024419295615819569560447539830370699274571218572775864257139627017233190273139616261523555969551047182261903448776604030725982901241506374985682433350517770370541676471312698798394857590343452376240925214312899587682624280756363241230487333473099468986942637021501114459217594033891820445894463411122778561401942395080472212321141632073769104780713177112931640373573873182702483962012599914593988748973995791266243938709704847587743850710278424789615702868366139194280219041721425775529390999155796685313247110744459183641582785069039373687401211124416491411551168273718929319949585146545068242844268400576781656178926867550066799883927250435631384043513893890922405705700133170137439015709562388524145126366754675059727042690553649860108264141192608079770013507052034061396021104967681868983609115750904056605332621007690157922516832993958458644023646412914139320766734958229786011975324610783389040748718756271087896306274729871402276489777355501673666300032977385056782653287021450831205600463128840005105016796659373155367448620919670890003218368045687293052929019286999644464340489883121019479575352905909887836235027136429753809647709232325976708267780969102934910787952523619584441958056619745324204756712285343098507390577107297485690011587042060835234418848304364602837671211888339296186737152709176923748887319195061056919400744405931113492299970421662942594128569141586912966285196980612777289916718851520903948877950833479829736587388765534603775619287482143098450609259557145574030341304189017086731548305514280981322780671748782197334288486103357798683657113673251882407582618373080875298977432680668572531207928792694667455756729021448515072195210533931191763024470197755954497542177176398579340880708313983147109833446384575606570174511357251764639030157311520396950704493403372187838055798227155288812536610923061493859705192147046296777629743428959345275486862678002876930275775273923144232935092806347884739453590664714748028965890774288355557985106760447286227136933627950066227653709342219969158268228822619083261447900750363403349539064423405291090647781496288557212633210477113450068611556449940526822172976260155671173719764226559204923750968029848207180177050041826631975558394104417377547069148196745126594028801787999148622940681630024153928153198666647388211164475820427562954370798075141573278027253453135924388790272745766210423813333921556713135268297026403277578435630521585181571006765295252551387852991196043282021625922720371191553820672349098881272502216802705019749485128895829681295951035984585080843491816196592115012638946954462128268290018174355713173507214962138770774076246626066937014629193192391680091960097523521784156359036349705158021689842664806881930797091319467743751737956478965571998456937723345030373054487881075102731942799927634923216721189869546247544689652558455312488035026218076447788807395565955668477891560489673099028566446749973830241823363351813232204852557926826051336228183941754750819725098979097378532494828689048491170831155829675148164721657416540592731850851489817818661302698046245063610946772731170516937844093972209789421585608273394583809986875302443734792831685351962979662254202605007958302389677048782237760995450007097372912247921402443984303165799925540408871124155740405038919627077317153886422774835419241255791949552784617654301137340242304769132522050357642255329473218383985166359685415926104203419944824433803220773433480116802802852857996321534948854564309794185919978884369700482818155522858197050536076051034384310862474785396481478597520632633857216558339346479729531081060831023792840202229630717296337540044834784462779401871109031219953389285700181867834708575390568804577406056642570895850547904510199336638653719703430604865300517343641562257664960659669576221306180422985739583250247760669574061185645672289754161186194891761785557351202528214979987550459852530999380661797374231547068808252991584319699490403953912097447176975526911500523628898536687402331189097083685525223038933200168497086410406714102974465940621649125132168868537931333735675348151905798282184406802689159993075313465330899657282575412127217698351416486770079741118139039210128214730422576385449826936980596524303651112104424912220962093161291588504182010845388861005760437449806232841582129073430773135853742856214224464490092341097489728355930138327572892152571141490542703163017202729903502351509365657106761949272928997183168250929288060263683928788338197390483165265397100702264259352315523942841460209235753960587223449119280339152687598661128504624877342678483818708305713864692153810322355913708483088985384084439172076620876822971407169670056085583616633325389876574103460128928439579040106329761921427827159877230418013529929828600932735990956922148847369654389424900945336093270086682821688591907172939952954841948928018487837080167069724474405869569772341041822779475707187425178188629356248379870676823591855129980438093903716794083752442772076505064525970088053974382446462263875941228055653332694411460273318340877494592333227930866554169939469368802945183516225303673186898465509515933614456328958842871652501877686216817811387596613741697124257696931316317542496701323424304433410930243736567909096856000079375785790397420025750474295629153293572950045415505854596065347947264289214266644337460583605685201263601817000444687605981490440465078914167271219549005240828034614903666973877206211033536459091329840017784321020933550926621700060236586326967323481760353080356951418069643256385459753037830063470083061330841621478922893547560251247543047834876194927923064823122884550782898255019984330558855420079301835880247128994889555688896641302130849676758872809972854143309176636346807451551960313286574668446634547359260851902687659239404876338863147964779424663926985752986703920188381753244917219962462899982270520726139556178792576813853334160495715976366508863170502280402397176706993250466666919519210490924721619523221712330701954990826705509268195246144659100819998500120562826785554814935063939151966178396826870621997242575129572081762991944393715233548264633446794989471410171462437362516127885273878263632731385012403965268194306658173075639224440998893200439284183068353686096503930187203480641057567903838483952641605213607932911924708223733955126337584761618749854860111553929674276620776373197184677341692923430048847720157559037171602436139953785905882889526267721016857633713308698538680439841342407151382877006512098535845268928228871578871400106514801600573477935424589811098543934531412238946641881316337680243837486484213359259950411152721108092265927528729357991789294199033874867212778256716156806620582481722652839899963972176025494917942430132680504672775719466287457151711791622540477816168208946843750670671298468458543450599181305619755247094916467736440416643823949976358519573710869788645700285381135573104343293890348811053727610469201255275816132452889166515693175715314078912268274008724560013393735581860325860580101702416938045100884205463608784261571719204001127081758350105375608909753026600553822953632183206213098215873718000143066216947305811341204973954235793232412050498471413693414508957609747367272224680539328506783074101039134846588412285045217053463493678466484768245113852040158535450209994236068632830348822388850930878316106364965145188958903401310892223831698610152014848713788117407521538778632443018798929404407268439764100596697154464321819295546679156422113221601722473078138076437099438678118903235795351306341626020247925322447759565722633767866358869287813061483197866813268401930771451606155494809764207038726595620076893637869565249118337116642506024753190897970057581379122172668761582529191400902370678245101097402872729707413048468526362051860949688237253867620427340345748475570896982329999129215529634577059431445969700208735112573006435203300003731959247145395825798356130456193291650136668089169590615863505088168726329060126659321986518825143018535027484960816260752068430524727769124091758413680499862876193646087721688228987761995017548347484108434325007766819166090001656854516075845545344217452403193595232464783497988521397720127713411791528809956530034118757215825598040266461988230635003606747920356592477096704846868394136563649646301000621199626289602400436470908940479108072870796077455903300199986585047968158173484762512503958396933805820172433742646418137201247901635844948536615169515316092630277892421264546688352249632080172967399506734120655193081646047620905911460241912443217641243748091527695658294943176026750363026595067068438187293745825831638019377299893869140706419625005506148932277425833118480821769898016003946463013746118451079199046342920932900353013099750545661087659055170605890211502956873243841791882616011484906171118417944714134099825089863034150930472846474546147993974853426876427814431266957399202747201488858509766163723527910117273759981073574190623322494986360396723027853072848520974082486195627182176262190806484635539995098801868464984255675300750462365802147338599374739222808973136934465746697778722070711275052296601317133954990362258629638461758065329785054581050699507609444228889829233152018710170518147544226705250422842303932638647520956556615014213886223751966002105605174972946538735814237148072884985255048154047207415219060929840706400093684634669903771188437685619913518808164470883355504769063152083334823739403523228149329139538667686170965182377095827235640156059896863533170667221033501096942372866962308703120784852550057469442502146113751292584914819985707716853039008814902791027736977490710241827136233595831618172926638610580607829225179614124731466201570555926895267391668309887601371366506164607515195188338412368874405856117469137252339281019249091561125614233835463226132031497856684903664201187703335833628541740607485465536949957964514930570165868583717799037408226237459870784718778930406805401482428355659481958451623127443967164713158388536823164004665984690543312045124498765953483916768229389947587528253927672126482073774868388371019872725530615821507936828866004065148389695683743397539047601883376579263795213569719245698141778621993212523266666040323668000155665561160415833983195649303197202292533269805338515222294238674931627869959594654873524839359279305436589694596379739165662311510538449883814445193756883102672511300999383747920765486877149181592609355630373292763604933977701200702447886798202457605148772343113717851424039101105202067587376872725495162296005317988049818928030245526389345793254207658446876551755075486442970611137134602278964553027239371984861718811683674023544504940378597855083827204499459287320654886759703227579869538194863746345681441068743777858241548156888610147163104612081766890374254032908665171364071945467120355263649645590816324391607084484478854323000036827387607008650340742550268265265388215959978535104548225209569550885609480467792517796299531319233040500953439332517329268413953188771615365073856484865557968950856729648040126678899401022573688359189213979218751709743814447218481609013137861331338917696419342893702944119968717883551076644096519152306319421105019504072604566184614475826049186139772072603980283824345017342508671159938162525308877906828567049391116621608335768921270237667162772364222518246984307470520348332207178908901009074148872404524859090080147982828958573820366698481346100262714912104264754561362848931993614843876535898859881614871031647433841895422776641628265921093956541271033783953940675675838876000932448123811627674832538237421812925463091311320951704237071358220645481284808205608377571056572768295518287963947372434004651548271338657026501351505832999514903699440722913369438210028298502042371297837316690716418829713974605964324335979613823252409287127121837726891157721886204224471018298568801701672401580467588379407159033666819934352059454877941438869127958622468393133697968222011666919985875276255159807653274833791155884046131848864102760334797175671923383312737638998115060320430011320023288866159415040563428904386772827983156908794582433095533646416765144634627066858108221886063906592559819700818684996860356470875394226944885581908199249814545639633055340100792289823552810963483841238235396682698382051711508024474977368937351459061358997730835382620191819754186479003716554573174231859251506824835615776835254973246121718148274502601905979379926601155348619425592627513770642200304236336964497128546406377241966310397672674327736369157809827839760888812435172763844378961318829281234851117738949473016924303918586049087510224942416646997329704825933522952462700484677352011653376383649895332848721149032799226190435597909539836385207100667402463241806982586655621745410822348425400874530130474765399829840192293656868992764922669210566836679401891556269250628544745792152482771381849570792218143237090434742936635219604766491913161730668108961618338559712361246506453377976801641763983320394847226776813177711551315108858820996165353932429354785157759430815593848766615977457179043663310681506148390656355085968635952350887845166179478922611507388815802939146647399307752446496269586991377466986894472911328831592240023577040529023211976528645094685911240205399114513642385267935947977826193475051415491123000966896132322942702133708824112292296923447788064436132795681901744688197410160884213379231247632659432648241795218107854962410416936670044173597515224064153215074725071798561786775644500653965115303165024301132511465058744759401798268877542683982052861024324192012343339197896693582992049069809579271187023678783196412203776321743248803280468637263784782159463416757485235822228676932331172901226088424881349334730098789706725165646376786693400454942679710638359417383038767101343005046980713798148018313212413033397724327069325654383106860331557832052265533360060938378152712693419049365910043964831822512378648250080083089389560392510324660129124817403638831344699030911403111724822396397945166031402816776120257097537325813697785261737270776802807629406416722574638796176412894124315140582451652690977716042747606490136345226630198526636058982497055843440220884607548595579299704552261879175421044982689167900443404614425887031279914763951206872038903868694543668715832268410144732891208507410640642207866185112672202433723873689798537938163971952808423793968274817101201099361785783133171242914827975652871093128627327042462766823215697383379379069450990132523700956847669082113845478866186109201670684983101013690324229883417442585610425959968417456691469320422198161367225384040616839064729387339506711948933562162236210814798274785678598258137966709213322857610527276891838445187641453393720520769217748250550220858573666384961519005556249792904088087610615587396240274411039456061646642611749422326942390695982834417055595555314904268371946613439212699449584339687272567780383346443377901353907819628386807025722916427912066077059322760389295082970434950420557084959828188837410363931196370545185373358668851742764512328753562309173389649803374561136968646553625979721033623590897698193042241012230366876023013979287291076469056372450535439000075249341691329261017905371105920396984762927287102260137139749919330932298462618884642161682673797991838011319830734897560898153825941361012662196865373878353180218224753329011856826846913974033598780861111678702920907530314902885290916683091964971653023818350665917005392773340996218772071428088491277712989438212040344866013775401640438297703040949037024325378832965129258931994837227382572498939182887204793915495277425980617234417663220936325611859422955349793721704511745226881706289065479757331813784780316540353983227630738808390214369924847758498181716270951816325795205520942665514634394482735084983827942337617285924116542212378305480682382866635757222933691469345243350192955029803843809151943236903887412075787983175146662109804414890346732977829598795569123027190952821960082668817274070659026180419750119889868599689236780574811925499755241412096038544233974908753951209939327204509949626566520268159694815553517990112763320302111749981201826464709191601016643721597775782415824211181564359008245072625543817457877210950441885023991232558825049289995396334211196455986861908432988042064079846833624705644332437104677759230511372862983753906422181259596185283516978992708749811538334970983619491610434952308417251367321186485629943580819306929926667656771020180078884421301405184202664936951432605125167550484688194094821304954347143077784871573263026148484408303583911026096566109140736288022856161660385808104996729493694809830445349322602793002650228696244840470015533734143338971651612177859931068055886925648846993797000165977114707662355253680498308177950931189844715658746171898074301805845900477839922512694729243394904037194842646282346858409981252700323000583467922581741323222793349780546326213294176234249464421788842139548911380032030536440922669929730893032199586443264535286164277696662956259532685374790534461458289941506285178824737728963323484037089354927783301337665383532679434788304297733818826749957292409436560804406641304908365247040430048277652759996721255916991715858098567259253003294486715531432959683978835121478299193052363207240368800170851407415394412221003077113837605033111090484286021383216988588416026779281712609138567614483771125447170963875532438505893222464812923101661709010074899390711965833847630675317228017544183716784888661999623027659347098260869547636439398828380044791325103229115415626489838264686038645982957943560472270084321681680320425642982762724684191428191989710828000178102088889670157891544243033375729959382440310835946505162992133456524387081888595041030130390734878272314781859603297633554524830704291366885679622455901419344665787906170255804081435611479676786490696878466709250891445436935784721691398041313381564464554250794404488075084275564543838254686870504618346909190790619590172974271811326013042711529108102009485245292785168827015666177077549603512409252504249642567049764265933203859893282631863804189981975196815459080075597086084798187670972487115077311278299127899757416905098167967650071309948615114096702150969915729031581728723937972216451617544359620396522720452057012112164758604055524438119276580686422297084692146418578993298205158116553608512109065105038761558071037421124964525511884110942832364738467322487209704799496735065787922268564718775177718738679915260906695625535621860820332303386145285665216657711846130345597760205953586528961020320369091579861320834948369483721059714223594579060288733017911772348371566836538043667275257261469739863378350480781842716681141764612395330177452312340631136958597248513411387937057842930684270527662304932329275130939913696831065577535519541298143410215186093577925819628590951497779930607517721627015278389993314836019285719745449977937279893321990321998388016824976695030525660695247634516702494273818511961107732512077926597839524821107904551393090424964236106558478688666191274951792030198022654733538465403262106191244633227638831984872779513226033840028294405210010959625559876571440129810586736789280260274541668497544276733958360771520317190004455602465868250240179108000646098909690148219908518110268319090491652346580365365682646414778059279736385091174174217278274980446757895988590586397984095683540841256212296234236615218357201679437269653540090617308370874574704168771123720029738103683742816628064534570732422279018651109375019654925719802893208351097851015443073627971260317628704230628056723636959036323363278842911641300647802754856536714223388314164251228014144026693303546040297057755105360710219644433178054913162102849482163803821830680928078279612188164652917163548693482844272273359048457173546551472451911672052775850423826825008288359249935583086952445046699285018435322420798893795549460411942002931088082391514957462805690261811128075537798643127312841544111927762780237951179700931065811474490257130820415158075143693402896525594436266433274960365116972632757632264603023415893096823637180445150167387921582919526227547213804558605850848243550308489471526928517625354376083686246686329735796022506464913319762595093782594098448484185815211318394661700251603107007604393107072201653621345695012161603082322540905824382074981570490415696826903487396035566197211484313614253918369521317483314143477956062993864182386704633568652728057329695273902778094762985882129294593587449909392565907218736547464265091883714693874434214400819362864893042225327692143452559047955187642494409428994833002456244753012256592839300392800488799206456568803033641235635067822137236114685435512915310425410766753956798591515416282621957933179259574084068982844218651276866144288214452769522204432949784691211802085426302461919651644339458274897108563652471796253534958279569558180620597184617439860275941248366324844789917771603078780413217464143528692630442822918771981463072408292353036274199856477853910826831163718350317067156414423307145925659343246734294847910537905664334275254228934821295487131532514758890231910712146256191971812107215762590527426090565353483722046492504889011185214823292560670450087626137933027330743091669489383991065758350625216563435452956234862800029547328572516392668001467434907146761427900360311443725469239966664659259895215261989387408863697724221123936212570006369084132344619852608206025300631287636007879994867645876562125341340602641446154241581953391130460213057114128390627254137768612910838216129063706911358892933193704269419849208886982517769600863557162807496788951733044358865495968822083915196965470162786398673468064046875484904493069481652048007958191021853367504301781426626893727037238706947465718543139021319676943152622728180324301865729886046290444301145263493466422453008755720295100690459919589581384984803889149951649345506674279294233249512297551227882779472451136665668675839189039040808713284317760662006102311189704034680489580604798472826431947350168516485692948423726836129801682608463435372310648130597053845899463884541538325833008654658559246110481305708679348456883245796938789080989494286857208689565116086341325400661587889142033840269118566646594305865802487989940023421959419863716042848018244739320388115260640720093739190981517660276675900164966526299996624929235325147331026879383379235748783194470108377533125727521743814664190841838762143924655011224257727518401835797044728852523557100713964665516591225448371828331543048161965902496497504018646658914602659695653903813930099926899607861064524789306583248599897372846432718796311698820342363545584033232480883288599794387136105151211773960611937156029140519236115054859998966818504502452111041580024927113549274451752114193366303932623821859042009497838179975202638927679279178116660524447478331236531550136773931512508719524663737933291628704243661083135569080136768560273659023108856325529239677591834919160862516676323465796701694503954893806211935694700143229021579930503739906621059571505529119106227981527760402859224062339096076386721720147225629729454324418140123968440140353948072530086201742209405682204239056597856011153056109814231670631349531423977002461764632398293883519401960655611447476604675777932792092395784247661518642858629456004319677298820029586171867691452848489403758885108766233030687093781454782107422183566161241041307324830430417851180440410117713373227409750231662313358156711836815244365883901707808995650344281738855806336981414868548087299378285179039132354743105660322389363099671307733886347205988393719038578609032108382449911763987612888474548881605385441649624907504504870978657320672930806436525130558480677808350397365495099976770638049504783601487219044390258847584680927665027700008258401837824320295975127974702471313646031366624682001720330310338066814282235450595429067573618555965340185972843413861004011809204633100706502137231543182396113216584390065570432306665984806473475198652317800870721005738460837503201062847831739992004663541303063702448469184113572431093125321679056409257473950469725015441540281930434428934708716722790217774964824712098797545868411145604411327900073400609326155166420720223952418982160626885593436451697054994081438927206078233992524612045437636638674165631471896195299893275605527260111014743106087246412752714142728821171691067379626636455647152345460501877411876589432738920278843092340421371686857050031131295398925113812200710557985318676708809276154596135527523477622796722858627730399543252752117120876807120597609702302639999517002538040020124280480579867934559524594458452315610224595701771261974269110343908611202666338706415228439843519938203911541561512494224864930451479489980419611087323644268613834537896273096796524875284313799122957172724710960337016698395010139336698902335516754185475158440252894494457076215291501513677733015996956260303473702747584206777854213307991555788676585423262021007522535460830752387357504291181839489043498468741807049286631772110808104285330697529009283279298147508687808933190402234219883690585644373424501130845797487740257962399600338690772496292979916136079119347883743275292416461998201837198135442046084315145195578616361642193528050143245022695699653441236032171407845292618331192732670511579443782006472285032825188377113744029950633944100757137117513651793954325271763228461691820214159798944350527221191595440271170582695988678888808819998490624669822586732397252368990724812757864632336337514400555021822542192567165376113678618082711562813358539928723856962007739270250974632039799502053909666998588209759604424463682687220083171556955756835325141792418793936124799241742859392263419590011865304507763894087351928890534927478276969165914149538492539958690022069082930905976708721373934113884477913972861793964504869022081288617472257693412259647458375279618983715966472757699615287390643956231333668208581495973278623727105807082187725791276429313308222840773826196041643477989735773437836998142265107717712415519193822787339973144551011297096219919967891589897554543422628664014580347776583965068071131752727804815968362955831487597388553965182365453421080792293873748206531350392859129377532261401841038773379610016135662724709444486476868251714298237296907933629473597524216527091308621246978765046605187256996556438517175284148434874091585374060559499799113871296143566765581182280481531832808653038854318981197374003514731197459663542469405822670807613859281460692442706871924335781501234392879778094991916692283641703233926003182223160192757571848413372281435121509797348288152725204516257205943331214478861546524659947210485569112794106004411579058595797562458233277581001294329325381414823099132934633613680472065012981876322893848908294939310504795259059311322313471119659237069105387049099693488626664905738627863624086219118947142769496925539464268086902513668884903449418659148912970760679615414550446548553394178052151923886877182682886995128324726747691474280796995938418806232215015138603882737159597545214008193841455958434328755015275587016859055580381974512659360745450979400496919215408182484583451064529851715542484495938280899329682003370619107153044204951629234123234422351468212487548027331727161211678322153540472757994852757716686025560102673787436179648987103055810420337673244071906913036622883040034251094315823578288164924039735505331194498912567200421487394426987973969655314427503954526600818158339031643275780167148427579944436885870491446429679052787908522147437879963569793036208695406336423186955354543988920219186836498628935899471010075934989816800345605146006422348231729515606739839667834268973793804087985770168994419507456357013948140231303557260969594695393517682165718901985583174476544601430395258599859189088960053002346927045747851399988568946145557375183805755122134456534263214018912949533427539072929751341403175309459193139162979804152392194986525733005375217239561616128758967794171322189553914434683259089159059929439902337754136133465085589231770433181011988080220470040595493160797351340228712319247822371095825910677801788816365464964368647286984370208446548695020208532663071430506702635796216853439703952576648131237388520866493991953956085619676734902303646820287618601657636124223059226827232732511989996171080218091125924484200269116723810104970458793850899291785762097293330587825419114086672579340778970761614700737958176991722798950738341003002395193897440020254061141652393517908594550839866156639264013043742188401959515651502865563599870573327615423551655652363308570643431932305527963088806609250439246039011178670700775313254217886175186838681703563020917689156281968087289145214507771226782745313557282031790109845127007811992936167131118362320139561717980797132101991314920465180499908816483180652310220556636221667629959772429229712944116336032451482742282312924356448919877478711842243213535940051549294921788053953131391000088605936636101810600278485072077831371539787844656274182344361055786703878227604868785296554211888567018349559668609373153861007789723556196893553885764241438192110498703196375315054021458363218077679469462888457153374982691269126677733519176524612047591902532068743032202648022537671399564272177717993905629060638723195047442650856893966455146636420443225313292537337052180250983001090333997886147524148854386714970067857075401099652491826728265986724657712171807319885200302393155094766527987978848876902065420935797927179539405283611735362554772905309136077781530900498803675480265715337806198396289489269031225450699335852916827799691560502075366025447800560792949780886634393606000195928786868702813063662454143845079391215849971440555891619054639070909666163968653971638116522562154874990356835382529615665824984993546757008812412557894651310501423434628795278565916010217420003064337075105576041481508436814366082744460423317991173369544074298084265408975698458754448467000453768631014098949944234403629198506448377650639902171778923836799747187606409376637980290146399255898680155962218954864768259465763309628638145072543088030652927041340946746016943016833707941180342998603188355590876003326514231354820941816820971327476345715436732313092150835125631528654575004285452274052579908633213908608302946343502572583025487822689241917958456904230061764227125135096584648215905508992801666895371360716278696093108426944060290360641195217019138720916482832906306990306522704439787284025702707614966185590484699153332739031093828335604740689565509353255154562783095839163318942471572242894077458599405445015713316238430197173980351792855419995830322836364558839841664295133634078750392697634078900268195069372522353088831531196313884552294112508056707925861149252962076076840990169699275454967291911426607700416313912691305954660916645127550859288301199533309246420213171968792756677128824562244419124401276404431396112102747902226470347289380273677189515285455128786310580333874780522239567671272038366375867578514229481545608217587974978374807602532433078119282604525274278620513323612775928334241292658091291686339896629848686738678449683008745013407460596808886598221830401034046734382405088213422374641885681845485763298195598178362791686628623486889622737653536130198926297931239858525026361496248717654540942362064512617987183422957481234852056263041599420445226230557557737274432173727870055569166387939312351146367925906386932168221006109760876360120251759755781651627841069333843542583023720610600103369809868313986977915952030373960879109875697620175580531096115246906137627344379763735865060687745488763522026233640278346185611388261087852831034603651908917955381114980276141272805038876258748312234636365806611182370359528514490760287618316468949800254939697521204326046829666283769589369348005716659992779987624185455959321097600240176992521303006528791774734054219863241004082526791521708624202011667795898368981351402168073850360420066514774705212827804963222337964926759092752492776938082657582387428745265345076846713447165615926566194269493801537794358767295128569793404214165833500308148044046341964219230999277607445018907186318990511990225660492276163197924065464431656485077740476471943474191939430552743772754909191713319493050954675836629416130984583376798265387972968517671354387448361219561483972683175163748805683290376784414458328913841582109059268357423326246694045352567559771505002140960076719074100342967566525130770134519906953263365089015257711126468369865319013197238761851850064838276344002334789603893008101633835188419108222601607309792385801799168811270431343717251895185661324003125622615257260204264334615886322176153297388036455250660027876545913768096148595993908077220566934336094742561835530064738444867328123580655489661001781329643211603584808724354483639924477714971603084007290764992957812208763251807724877189443051147215519140178234789122190448321711567884962104558947885244468188831663589869093247602611773265495562251002416497191478905862948245350029413232268283928480466044331553993959598703944357345064987781988947351286409162499375418845896576081298995936468316458175040259951702135120105534472561700840798786913441906853998921512143223809828798644043509207137963850332534128546791278861166703663915445239960202771134939054750730391122397310955533561241114578014559852706940795509779237067344692519574573405052954410741882066104705564332791521229720111197213805887652981177205563618965927534381206684540567750351379066829972589553482389555711067913295856816245171291588855624182421946833285106559512668813448100783797474293562455610301215740257837811514371675949387900318739888295888945298744725981699811932556643270626768327177880661283535242743226279502785607164444828800747781830843728070769669867456447886488345144127572672977788593162993892670719391744457032745244449320721756179695795885583132804896577549842291248660322006902213287616289123110188874858690057286299102026500571322727819195054618757865699124801130427130655823621754601499720398883671375900204493886762085614107654799862829395888516594636024212699756640506199440273322763687758566826980271790300112054368421315191777474355473379314727190443186092833499125908505296747399369081711734518579983554980383642256020637074585415510599830623636974305316044479549821478496770454135622982475998216174332969787267041307935665819496549928571514985472285092825474713428077064577062405442138991619606495488520423161615715715245012899287603059636806118481933548556064352412396487774596406868609997410177699882526109549375746274634079654027799771363078697845026874669976462029087010930051367821533044682889397075230654106753181183543558138944338571239509461778211899708029821848788367623988796906051849282255910157845311055328780167767971356361619662738860195061077174563056194867290801811464588775993417683422094451702229666290342762963229990818407088629869082274851607873260878916067313944695347472289047170322155106846565615656271735359932876658294837374405408320666221549812673870516491364072219804122931399926571828025784769068095607897431798413022867631241814716465158591869900888209722248790139443167281879297021042775593756811235600257768000896746794316914724300619773244511338571444029647737034638895152230352364470112068118171514218630040349629310883862716731040447913598088228558770629299889479297803073235637341098554313084509546374162923937342325758034660326534762696718471389018552562909984149905563005202576389036772026454085602774186421555879085826199472418352513198016340316593139921583253347164170729299668584595223056836601979321391613266622077013724556615789396827614338331482268210860346443091642707723395918021406102618656854358619443603667838943962261714951669658162829530323724744204365983898109955827957587405550454203930041260780773142040595802201618824966853003014267696856117659413369597084359282786669219993652144261661561957468615791757800966152619334878893728179876459668066392270501844646885005552662155377818304253592140344159946638150128820277485873150187293838906172790859107543068395123581112064700567476818877064939733080602820634630020381422854309349574716196121911768993562266049086994450281543099806247596987267062077507832937448265471967166310822307509000487750417936481440238408188343777291574315952942064514535104329413208615995698400006105932942689975748479087448505892945221642873573187352714644806108789211906296022759632259797199645416188079446456771952855359711842514014829543943375760141034788706439056276997152666063725734357528280209968318932053606083018983532332202964953577449592071451816955220318609177247811749502982457338923915277572069022254735789831479971609606457912848980708317218669946774761669948486979115711499187128143556387731875824209549403050374061561662147464406880834202749646599702529641625225474773208293143940929854141940949884304331118466920567597568321658714555852611520007890580074524865014584998783434727841222073017307027468488833071652897422157160842396426356053942474734839661507415905638797755010889861510357584607467702500419833319316941179530910861572617805450115273332409801433134396200767003006895087343670536565486807929858325027525145305746416140752103054733450412177429510613045155361890093053872551300649628784731533916042323222682517538970309490798971944263947958249419889811342375229850721677021899147264293502059003727336603970711600003490299795505185556992244012850703130265823987597933511896093805096269958719994487854026610113398203537238971035620867921036627107751898963877981400645861673765920066117570421728394113021683547309480153397294934994196219519633420968104920989420308319055448997460680413886057480033220475062175760446117053469760089978210739798437604159625801996660243506772608256125577662414051495829157612399150206353819613792555828543001810284641058323358139294509090904728527780466456700778533365374563069227974252378294993317677409429716853133614562189005507197815747941202529729223355144435455221382607840722511451588505819478032778227232212265495368962852729429905829895487062506806429367501682956750200950645658970193237731656638514763044263647831545234043829269581266655727605804735503977067484172429307896707323878440165542989050323071277681082646394597581646337057330952550433680056862225795049096135135694343074316184762366552251499605282510259887296707592507404843869675600654410600707466529953586456151124301515893670667552216591429027780136569727194352271860073294484175717782820377561468407306064783636051067479380093646657704370327611290928492894415341120050168437210531940757061517912103213112897070699727709916226698631327846199721912017463401935567118585056777136808720301326925493667748632467654715840277384058487089770299812541297647491385212896028930752933776603833018375717128491803056468275112691077137034642519894824298693525988578761325545195275439569674647442493711493396155317699264600934466865729779978902242872487824222454524079725517430360361498945433631288866345980545388058170529329241091045575561620938115614290796872118058814665425794366230777808209813378006646733559147983726375643340422539364259646402476106478288189390945713762458854770313871199663542189743068218249851517479770889920812794340573203169317645232065984133365915370784421250591164042057698987484521640071785718230670265046718122262307947732004709136031463091534183075729496394562217389422867865515345430238628663769370782157004567927852419360543661407526400933169445624149553690839991482867408610978821794731175557520713429372819069399010107620280311020316269541933927240546256688111523302833106925191883200469838323615396896715436703805244794842313485803541077352402977197953977756899183690095654383292351053194176339822351533048873214510483094662270960570187797922643136263552755748172554270189042770250897166655309882222009107576645226642072125625338769288954301899611212673886733650242943225912811309478212939294074065786193916863847956478673404673156488803814291847657588480840463285724038042109229217321025740162167881103633936325480325062733672523791852348443669785242702116039662118315120007281518610344853554093575360356839516838338168710894151138980594418001667879157123008611754650839417533367830437104881849258311781585285638312743964011525123748214385263344407698141702439553147281967706017525457291894808954293164749930181602591130883760732149983347657492985483091351453267706478024788755995294036534032977867108300750036948274537279916754700452357556454696460567414411119203394068804175631985996284617571612187792885105389388882150684665852567408528730715121457508079997636499344128190801962158479558171071868885620935442835314635726757554051600249580543591728368117318994113347759883801906841333112269481770096634533123358562866266919522640842269257741212446839974127532978253915786978746622792378821611481509463785915627821972493433690864485623281573518260732554622308060535065483789650795292578024373398178462176395495280482994713173267347672260878507654388306288112876455313077754836877062802947136469292893013823396473957062366487032376896400068174034221293471426794378626334648006849156204399524142123624971597828262450272766988792602423663749306718169589932810755367019769068198226084029777908294228042043009846530011574982160959142926196386930558281994734020347927986829500464956065776740899469417118906261216689151350971609514287760833755575669073908357638896833478658529940798584138582770431431941558255365515257171733624357556605073097424357319501571081907264156259012325763364156762673136383389175307314156425863898717128038830955557181536044998374865611385695960595567742663777228999542498072464483116206742760598165414452099607503355428687905276922841815071976929078095162694641692104849493643009675381725761952353347630209181837307843937760687325039794825660348992592559324652536904185245088557260303556921781024741150723568252304836543693594920134212951696935260327445383097390085968339427938307467776491124935624422391293878423445830231959404464752974371092905108922501763251920929213482301158873642764384463606094235317532117620226666101679493743927675003945639785054147485988091359619670861880429726054550359921237820447874686442861120383015935535410210481923465194440409413471785013080296181923427348655528212390791197431318288583925079985579441174318110910540139503086415954675569905894856318210219993582841107044555918294539891285265394491121017819531084160241355179288133149858710951380944712627460653366138289827830567731102955844770299446426345149443856663380525543754296073635542058280492804802681712811551445776499294800115356858824483210828051189210568979511144800047988405416970988453679138625762700588071124472443489684145983303858035858410565585132534614847972852074212454819270831519679951027521818664340104891611287681883904966052395461867996650685474925758304128073846177504268727103049183223082726281400799084563114623924262112762834045469683142810874995609153092538323925286634412939296499628283455138379498276333569299566091006278359656215819803914384287872650868096567466379828462032333959570755517887784339405147506593800439959341105028654698053243932806917956652083132530859104902513970636986532191126819783237724242904952414833148534943193941457677521344339664491361828504303573838229040824418857767716856568852238062014016362040867591573303010347624396157521798130969297712432718446394961945379324950057293398018043185275200995373829808773431505097730308540832574754335930060908893462526626283001054580537049301280400957227881383270743422373854616768715552768938701783607618563718661639773606989391047912661228885633949088088203359559645256786213416532183459155065597091271365644636090282236160921750657731082776944693831309800182956240583057943780291111662660374113837495324769989978965217743447345161920690741119527407400271136484855412861647931255342863221299762601001649790882760616794174558956127684328934957339210183819158956957356720976433450610162314912738446834476496190050876585128796313377865026606989415411861534579052671509213166558016836196943616894736751308300562652593253759137095416414559149618668531642901222349937418732357374506721603584220246291422422775121589648416085169786993298499282047684732142231803134158290176820169318075190355317119603871886961108415834519531917292348717849803729812812881178575439033382957246614224116216512964905161197879517557050576367367788664354187551650138354125769720548576790383001642658426628162942776217718957507920449950643435514252053284030619549353873138238668230255434182778003717788923016150644533510466280339572092325860176945458303817175010281009631872921760322363439721884070837401874940657231682914584440571261427988169746814398236467755518260667284166241206148299170252272315434182794093582891939470335491491329736181248810786970340537121809668955586541111316905396131262539589846582737290678145525737378814917682321551118739326986121117367617737916105145907838697782566217662722755394438582100868858977926870176998829592441739250240906705134162291610331441551404178054138107726702096578941098857237360526611605753704919857730637126652861021660635104018982184749804771075162320511645136111713491443376285496171917339672189211898812737113696574574571925208027941871943743142595767969111194147776483569863976153927837568732776236205371291315009512876008184431187383417840857471347406206125148513893850393460474939958641200152003255712251558408344369598633040294047867668149578906931546805294098155349137956339580032940899764734183616062435420514037835287391647130696032568418301956566508616826142936793772853750074998836190732228502510136950867282621628481221999562339560161494461356490835764963472374849657217936241113351825876835088658606803175725361312354978364641806288722181515853790385761493000118157113512630510017074538853286952292207257935487696077074170153945526293590557015716579841587681381783635352523611438726623657116118448975505300437608348503920423157108258830827309234455676394457200678392371034455106574576023746170397208854499685727442658098344541158928595207548761656874668586636649497310880431487550779168429894886132055293454862924988048630783938606617825068992623118172257231929243491652398430221525552375638670656297526746128323964975927239356972121125257315785129749152240945316870425745569691197624245941098116757025148127541936123206546821421296304582533604414872876011767524033874293337423846251991444245556167080144320214695006493278820656886018725275900274654943689393533603202329705480058503345782943987851580199751791339247745554187679434191823922044070969262330504230805073888141820804600773787512830939687227737924760956280657048105571272411164200185555126447862042055469256497016694674452588412209283937629212849089837122867890324921809639472837308687687874248893741549207553382254775154936453514726196741628887665218412109215443111321736296655575750527732130123142111780430132174222196252632688358320646392834544739308402270730618832268531930903660226704370522954635156418005241255509148797124323991333822789097623914919732357115740868398633555740983413553391362848693670855967699096502566284829413540580889108379616323413564983131488105514560946965238815034145834722657944250739133264003802113439088559356499917759071294811908493305687209324007642508085028208504571750103717567942622113762673744210552620819038787571603874123129501533955316115497814399248572252487018308824685109408945909822604058673832249596173655259902023260648655737483652691259738813347376246440530047073192801125162244183902122409581022738868191711192493927832338640955681367160667265462055553123749997323688286394073167491463483489741267596276043012997941210228444800008416595330543027735005302373305204419396458792912561973522230079752350046208782157532909132390838711531799589886196810193771185252854900155172694049330261571790339224098231450814287231394766022232889550726934638749793495769089923463651886687054537575936205460979817063713762952881817753194889457111025749978972169660840727530370158781003840542620820450458999904843570224326802177045978392433335189226043419900692814768564380315836589245853979106050787686650793567971736291208881497850870801929797070644196792619082280003173733207329436267808501743232892766625987825495093110569332005961739582598636083622223150354633427479231858977501175566802815950874818343580437381490673949440997064230391235231489133660980008810887806842892781753191015842269744395791233882037622674065364427850963343876256003456409466258645280205316696154318651836898754611131950703209081683375762600137333235714547672385804883102081202020801359305090391817283427944381519826651853100526446969411007962070832158926335590132445483759818812943456496985412986291572652811548064273808215924221233166061940322229285270054254718415768316228446409078757498307474803972341012603767848441254022914785676424888382363377655127112047119996499777043156484264025014534612725294493402074512962999236210469802325961039045955204209488656102180567774890641604604916415227807571139911532215287121260038306147941603577371647328874063109430774259999422360217403665724635248967997086481865945043937677858946481399046096952394386305350180529751896289807359048002520181047752494256712739520120615742282595362419822996561871283000650866414351464682569759831207546981045994300571106278597752891608226630210835640637071814306100395421862050981831567893027776165136313858922540765060274212424232370097281407482600992878699489919782623760883271360814127278629114300037277083475372164492771632054843786885025501208927287673367169549896295403043297283742634221790624471925972481523997159756498764376869969263673590580779144532430010180331569362290285964012944333894713506146061066888191165717069196792523346456648600630107239994737491969964179456290195411018272645514132553278638099797692408460879485821354515297736271866659254573635373655148735168384944886815838644728034617787151155862430963058004703103665807434391263098956199156355568448547636963552592651384752415604137220956317713204090059748189630528360314939227053518861355394745880567182072621087651217809898366372268244875897002505321329051792296898121789388126932790491080778745606119902433104914935184854338486694401244087961814122683883019139477186160116633010545723901285858050188540428098290681403886060089228776735223150136219893578106091168139699404183075868500366441940485229855660207317824712818643582102158331696261338031755906523790824341535858073809193537416065697774370913132147473974199080604795831012368672741982347672140328916122140719177154459328863041447414547919929674819066855202850763406830232199070909674037440125727061263832403340415730390032377910491231961065850811507753160923481272788235798066753068116285070749406659504840401392214876924747187516347439517833022190927030958077243733126533369337477188084325587372938054235484406472079777766734910417553167938916378138083875205672399956558965002115493407735385131849986807432664080628023895739373551336100987421630162253211898024223667426552751815498035848722349361676637718468833476390236640472214803396153686585236475882360777034638591519243846978028658453847585415962364304892187883817608478209546744588309822742169739300838353770228527149607859334019866648449956067063923546883237721777231908117207061249081382387542356627404648984595641391905826406880646186991039896040759327215258143924767277683983089705887903893135430801242612567808582212576634305883202398976627126372555324070919259174129671063714138802142171571160269065863708475328070669244925470180650602589907239711815778298175054836153746760034126802446133438179505693518853855838308185232536340039305914208485329409120308001677191837168548673748374274160675454054266182121720001296350472604323472418483464257308701656063923034950268191681988251443388656030232273063002325532287728306776285328514492911685926299246243540040285799028916087202085967768263310532362455069240858516333667058097351140347731602062563328359908567848272522821717111683389165283209219449167063760032724000040922826666366372332056854832598112060243839285889659821542382673827600198759629871612048974051832588679826241787822848043417916902093684082219503604150635247538992108005560768128008050629798140619122139002124888043155232002241702446643786838409064953811647573360181219123288062689754712434426113511011716496959688060664556592696313616928095213873080330458592015603609397992288897048986962478980109696299427159104507242578971483555818862327135832870570414855757558461263326411828994755681820077774214515453128230478798184996186943540730571083438283901488281875854598089888443195889292155635297240859228001502789750971821418961317137471234789180169875438445827337994269858077161403124192819345769741897202443608477458237642577666448679482901526998664584439324144561525167673367925491218070492766489988136215206107250232319442634420703846331318171749865728751178469415243948392868976124566353856059297149106492707590899749157483870134794869033175287422591123980440649130846523186728763790953159825794540523875977503337087464277577032479307655622696934583017878050886889887460021317992045776957969934597094518382419252002542130978164038976087221037136407359009128971601840438618232892454387117214973470790740990126574403040939125019682345567124955464159066038827382869413482804827193317278645510214962235463799038199196245841371440986616364068477146694234150355445759228037980513198364414219173357697158172176056426459745585579534404854967701482948623294433972992553820578551798179161761870818530812365686320981107629060317508617535425978634785435244385076852202592492827758108750451784208340695274830323719243349535412239782516613582769550340155753440693923612833626881061123268751067551610668470148922231939561412709667154153984847291902104120054470515007128684614705423346809337249660208974480807120321009810349778709779256626149094590287627613980973138263603200013240211985867890002507877086542964895075782588886599619052746963237532634984040642515455620118049294825961469233349786363820695087338395467984801935754283301995409435678563270926706027307484687576420841438482185563743586299230568745892838836018653454777560549445987578245545266410736183237071081021576154577835008333902712041976318971625322424591235000788484164141454533998170037516625889826069877477773073478696355655989511654548147564074985884778732832204899253853002638102172631257845265100879570582207496036358328711211572840789927218002330859578525870857265493370415650821405968258748508689983675301834625556999982236074833493979152644744572444351729524400961959312101765224259092703534258412228426740441632402828477095978574541882960960345277075832932230233811547052507449728387496500659629563768790791789211121368568143026948739511536182087463420811955842126980921276911050987820381098486539180145656993170663019722071243893301877830765030714482277421203169649138428267551442278064639466638116045976968992425169611878689173995911048393326935373077735645516198824251100859683962462337114319637779615112254146613044696873166411307653922261890642253363234672967359973215029971607903767496192227717855435450357348602443132717905267220338603889324805600776234644234115400616886361988489017784454476038881702307148308751010502996292096667653843059831741265081692468540140000407571623227961463714883529757370966775121539658930344414550295208206206179325380895280233207395615309287271413124301639721074226718205261152346212028541967029554003285663255141634953776249714582371589807092744437090253518305630076392481411674135157667695012074819625713746040473998299823482673312767835587962031798428337152268811180501448981742756348844880410528582272395617797172652993609087513330081976270351043406879121946885790640522027035726235731646034361861003667286359493842049455023460749768779017591290729839638875605480358599900110043796951861908883789429300929622350001775171520798037782160789944816225344166973517406798268442606809189964835484245936805200994990505982403924548303987820972381513762750136879189307358527728118814904579705795274177805172027520487654258660161126739985367561990091926841738259583089047146984567252433065604393930258091106216916870892884114054772854078124856105021563401116123666236800889449132285964423658287624681384684675222504845397247514956547583176076574399646537732796958005304869097561630370447987873431866279512365364983350790959385973556708674424404401690185924931448724212411771892673870027901089450925873085573947689328695014413584584014218080234180543034988924203890427059415149314694428663662410816152301288685416132770507226569188795939682367165113385216635928396331075134769578312853572319210872328866648474580971117875158223300973737253670874970614841709996603348296205212187291345894476378586106358376268442133435597887084330275979507807687952574401438404632476154041023157110650411898898610115498761046849574696950836532977073513553842010089920575458408562795732916111095161322428797836930609145093381501150417699213499002844559124847873604038567016480115430430145530039124719228772023765833666577875810071865890558617865058269270767173161179152860815244664849670509904199817132032391173087985781840555468870075497962974495065954160812018242973373397841140667133503908584455034416550619331892306415080805294013289827984932873669742780330619466607371311152192253258296622497974314006765190396171917551279347159197420363287389171542792212076952031868705803724368531163201672198463858800223573511432246640297987644105579530572093945850184994887460763640909949498939805752176984982049172518334036230980492994705302321229185715689197414816774540438654714201299018784945945540058529166485851942953926036015127742461805585738884464037091656759883506221651522724929098705456582394685640407630558583056543642523012377299631569496768787052793117666375575542471914096836233638987628595408974959754710231961413904073363449838239922185859419679157075598825056898333692172302168165023352352284097579973390448521254262370176323507121541512205912568407982488432584315803230362911079515376282729567626869444124051687074458739875749302568743212855681246743347795514653402735569770824612677898910679452990276003208468305130722652981164372594701175852615252628364844870260798034768365375610366977688702828776893827375723796071002989704259662744172616279840818389855811009862853004065467865578433247465115261814938009231664849093269053893337034113766408203091206052178809339152445014720460219696146809287415318911030410729355237403097036701073897290463552945679386285254341217733333174315892309533501339801313163247276324054265892120018645736652129521280861658278742532843067466367724182305573416326813354307329676962731721672420434894718003996468408391863663054767393307037135573362152147965842542525151506169498076466074192717628127026487166377600563431224696027760556785715314320525698519949369673247414865233464241887784883321484763305833095877814531666190548332186639790001423814939279601003625836501779655626660672466818972326043800892853126623809947203011495169450438294074706563566399382908777368028729977084624445924612201126012579205033031282977242678978506863486878487758102798438120925751904864678383459045624796103818755367771464580931433772283021912925567473722616272137945730070731973440141679536417655741623814063688100895701150491198992708688657043353763167601102106316879306570111632788635832119688005443427918714357092810966825263735287910314864554565375279507633207755367337045514209126787602382609550377370262584795256827454268372928978819807380298724689594844006942057079588860181245157500456243049968955324393728144483931784346461885763447169322703069983938055142080339989490047322417175738042719995239628478644366259354976155705416383833120923824964446893592033734893626355513583950760717916266308872111398497595798742371797901538385310210065637824579689107426527345984608485497386554658787106685932920677396016816484830769555961762831729376600323642418699950229918102942124740435165468295296420300158514377365233363471906313040316334621667295819146463948585190770110425616805263446559375078395898905874597004252746023533794252329674227155383602204208840317739476820863633564957862182261088741090433668683656465250483660954720692528812816976900130450700420138326070754506198919322217816149388343606502933504389721747619400765149034246411560880864890944134932714718446908175651592565101233432695463280775816847660303588442636730287284802336252424785219662139547004696488721338694172342018105346405244508289510182824480911813916051438438903191802250031780811542004533244983450737894469851204084341697255534154139431719114909878569533205668530334492329637413413427116976803411017727873768800346380366340224200731549927978832756258187755765368353860162797366165047043423269009970209156564656451955330405335827951485915569335125547908729835138741284247557369801404186711708443320120655641201853662562135116283181306003592107352245339299987191456762228096481815531650303988812144343369087510690438108594832597752321983970718666968736679196435281345769175938403884758732593845313160805858530049631470576340740786584557241600146122654399463968355131829835042506389046475180341956872895444622933124952783033456050371990577660904921772239314327726504476418803131789502479827973963289465189150794685256369366889319820067863354971075617976209625499171490401803778473083164585243755969367704876645014215416013647646763436749630208276843209960864780677960267863803327210932893804610434074375798310979519460536215806017053232107716197412043960789108493330173701351434496484449672458756173512129570733214110056407514032782456977493100823363775906623668547606086314644228072375180248467765502208427092068489084595492431842826947256185227375999281369506637669408958996268076324327218117611146713354087978055692381797849479432215905289153593568863386468997733153101446520166020159291175361984496565222341182902250350896865715059536248436692426744859696874795100496622873297695226915980167266944887744760701426083106191857160970211954908545052433723342319235852787738167889734904074194988971991004333668184593371234636271521526579123336205890968143831147964597719643381236395486642946769797857128006023075979036058593233831079855043623135381613277613310200361511625341505178285844656807153131295855898159027379659741631334313202891956890175966575634065257080723514144501721184328404136902810087529836776679295880502836291400492529302468679461623182850249193290908875080385384763086915714495620486344975272920098519998226162845385361791256549125227706226230431350821245818951307029924993831672852080156353110415414385842141525367843267968012872095435984120998176918089839458809456432961054080568948982597591132739823426696661980557738937486746305932750887181732336722938160463745781653617261136252430928610217441711547745862735735711225279031205046811849718807050313406789168518013150308291171124375623989920794719474755429696629575774624250341812275708826477883024180041632373372155420815943774433522126524048224643288973643829787436414758766910090479872583098959334801327000827655607562977157810239600477675601161155373192766718700274808403710366631112792834622447390149483727872010425100812162633471387443252314468909653216368855076151317676264925790627268613087928261976199997426311941063049411951321220372195656791122229420405851850013565954286704381833325288851114645713206070324179463896447209291413203972256803370366262455075871975393122400529609791616264701793491364759896419736373924495400290245035526842459089921092771899961134964078561555595804814785782578578104102593915296022510446501220049199856567650949557023375183833476983418965546004155550920108778448549468200182415049519985803498001802666447614129683538045719419675345688122533774156638745874791778856194500209502597108405786447538087996413534641788584183833081373908134803727247391009219348018388841150786055529638548462194363267938808083448718430939074243126579012132410936890878309545329816470208204611941317414284658783910317932055965557539587815798932435152610239634832748829981187332730032828877894893539202287474582016713508424575977163376103578606573046437329721707741531517374991562935435926125547673596467141927112280669741264930714627460752695847786119561837405631669259123257276653524702280932175893551178420448891005660424085064358061062995988917315662242337983783393529122052918736436994083925956220937216798632516459874397604659226793154620902131695263126485019253767643675183485083787332902649833969554972883385624555989229436738122641604229325898614526315569084194875504172030863799528623872805582457773702595294507893658376255408859492525025051459638115754671020583616424036607087716750465280357791820647451397701029640899068288215071294355057119572887630823908072435499590451939766507993679357365706340193833090321173512590039010436581633194345910835911519757405690180786560207015667727725581125845384867546649157135719006823129077448507298199838695794261604862255397738361354025037086656540077871033998197913952135154857185034769497539716215244825075750315491529757734144204748355899572276949922181068502986203671565388495675738167747410228805062767651169972451418513751509550867935571540859404895139913943266085547715155515432368058563311037127204676158317787845683412727701922823162165124146155212337777452470090619384487435285215330039696894979344192297344491021690939039866987136474524237357377401375627492422557621723158425352849334054866032287235432042515669951878096566379999595422933911509507181690840400587194226665121075935017968259267335208030895215608375468481852563219439318390468554297514418673779597841063582352019205700289426865955527551423505099239708194296907103106136146186564269220783458718129916068906151949919039579119733379441792091185881627740446459519049211812240137203054336340769822511325581679099682673020277492793705277960645728982687710984533647123320131237822682875066538294163500238219558826429178121911287812037678187323074121189135151957848726197310619832335604877063959012343048527707890657332485917399423477240129422859482692926267007313915199841830203984078340572682334563407557461916700127122980474742227598448311965984936143972153005483625720750231789833527826692818750878922461282741026073352896463987761654607234816274433356628476450196475274440981487914705154938309674917660165387831604841224244997110383194509449459259242906903202873721338931351738076190375804244687085750043774976371824586602726456787384767144965255782817441442636495106659721878377206595170090104178983649671945860587435306458761287031568831925543291264529502621099439190704745930670422345911784457324339454964658401384063802561658064484219548305211003671872903977739228363676307731339835981437468388562348388634829201575506824306977853263572032843432709915173579470052468894501490526597584838670362783470220118439262748579603392653736043821921240702810810406924646256688936575673765401557476453082556483051555332179346242615584666562336000614191929654394075019241140639708411706563662545862137951031863116331510930249976659500102717231009855568286112746663546864119507221463810293396446293544936069873338217329536833902675314936708077755773677684773560345001503739610175444735789206403323497292141146638611013422142625117158565157758139641810344984643706701979073305662141034757753755642012704754694719446980627263662116742889315769033523957548451447463659570610184255594821892073708964379911433140147127135471487024081044283693069568182642257967790994348802071855825389012324072559630367158573869476355297380001766776441720822244691519594197407571446530899793464967519374850709350945891312842650853151794040211226406483105059065323378223965727926836484488789969552298430939947495355457378594662488623498510337402819733057800411742463330978259898390217743663421661253009391300237380236952217049355570242948537900694780743928275283304571278714311726597090084170942959820531761095876850859370191533107544736970296623471378427838894565600506268270307769891049173059971960548029664795869978825118464722905655268949360675513916079440059919815370339836089328857821630921434429400641556393904053431310464449032249008275050512544400943538108617225115244717645739180658942731476844925259366011293210594866319829542218948203354478204710765020903215438882120719650584700377741686905913902949648985742628969005058494773969054657790756096232801863126595500398579127753738951703580459345496138104016061318634125895805614160613006302193516715690606304046522577939852001354773609099642306575217539687075320496169136441219108489446252860946281324216305776803391340861313381599699695963188133610750706775029852571002888312584825381411145803357709782703184260172809850544007894858961071874192990086273753274129589421610743551529601329088611331209020543885413246572271495235374767501684322340955384682076811053392460438691426654005633758198686711687444148537002005510943307840474285315475076043642314576385629956472387059176154290108910212477916844872691147014514566129159594651553424200154990675845334523969920203872358652836781138165014275647974482460727099190726824553640736816987923930804276641510463504159419842293446932126150793591826164844172615691937455158083393808057284959745417554509360122214431438242135031490102432854249049347026920164572317714504034566865003503529301223839152284247022801389280266957863590099976130910488786171772428757109418405404521618505745481198179510238959770942722828938256474729479122724565358258111504834357211353870353938875165202436370027879934137001159974002175697105442890843744502525661679148718014984012666572336367250076762719477735119708151749824831807671491170000913987750976278175697504795021105551689961583370133626685199980024933200454277945368330881807962509434583945380564527850296193471978908109158674074979144454740955909174158960148436291361902797685746158808899106761105554385764565586505913447048123904572638280104261482935341690395514539791875340086267495834835827275949208320148149297555652578644510975543187879078347658753818602227437813430977351146624467129523844490179088658221850985990794376160383569816879016187304752170600756083692297477828160797783819262837268365654599107483966151727356535429386094985733950350159989600417273551689923297840705110599565794690291884562991614953506321156372199892826798068408174445321713896275048947269547298399472894666171802281732787058951012569840801606648864691853237127528583991435475731322728721417970901894631775911819412712014931566467175223079242462169901878905295800089080384388244705700927493459349528587873014708307227332296916141785435844447987885235202959483176163044701476818363874139930105117716924135758356048052277624200637186300624190479669741260435271733379940273664457841171584230798199298556258217177034052928680759870874980518336805940052982156847670523119908277526961834022887279943605255882216127620985875827176984394076228747601964044954356370566587423655361565159694526351939265064987968246737767513067320811323477279537103534432767416322954041190695577099884379580550765478090710716184672824382736855786027396354743157384843935791842934190181060534498132520796105058485767738471057648708565180989703465628055889647478990099188118182640257818211691268100324913814208459020184936015991929956516227938670924559322603725385532366472361496237179624733705045700006702746022232957058013264777851020454730211064700486427960733502924580023023585248446140069353807816230617509609936160942320907939878718338872497131751298696032264575244198786507008081567705490563647462647584011402454389033898459688120856051043939152883670415650046504554554863517169066971034129422908256386210305122222055713447019157486892955619459536424608372512687014338730879351546201919924688973954790148478869462383308837986756869686147936866830916639809710260463908716387991488357009634468347552997398231725103399827825125735641848127259869720649049382052974225669378539857710809620827769132478140883094421637177198845052802539300381581323528829221856219758053206859913042046943174852610370764369105567370020850379062604401420674352262363687343909327227841399521648174694259796903166558200351764268620974838634037030854950083333798688151917165518525361046713753554589718417589284917174066899159757235931907643131856698243175554499187253244087550219178648690326181555211972304099032140958197314891167203137247115155539017503268250268066451995485896938391407804985346961401056776748286434163608621617094501146259667292366594324055569373530540135693131577593458806485281725123726634287961426686402792992580378652422825015543831175340885467139936066345032520672206521567589214114259427076039750434998688019814099551342531248186946389504089792427930040584984073183951563028266862853473965342831136881068636679057923430640847871820114467081557628180622962017537599098775360018349752378109842211264323148723273207807162900476624719177725629825319694818123508155618328741174141908211430022444727442515210590415640162370627703053929907125348251758221444950640977871701605077390110437070207092402185276617108515300719990487426449641923292361906314203867833983589723104386749990339450731369864575747196173969121627072028919681214172085381246887363982709570367282900198207235720326901988243615448308332748149682393525610008165702978805529050205980920894868422574288261210549161657846795945918422574968031969887125775525921423274152206382184067277517996768162755770338108531724416672209391647993144792401079450071382313481032671062477667819990656680562796851315519842599899270076322797953805109436783068044711161954055759790384975086651410355148949206373464622072905580726521861868854538434213977761727636985256436893854348176007727479388084396388804481336810676056249167677393542599209851596351230501956752219714252272073191871246739648523832090932500427965803256134345618207311308753890299752114451983558091804549418578527384970368808990595723811285987935615529012190624285235300417063882620135867167344181571215520726738082312643644167899461854169751585045924356462669042964973041272546766829134767030250172892895366340774938132731769014674283095073743872133486984887008405105710082982752395645743339909921640005843212740383755046223374637483050322665234257877544473850950914215049124037019310980291978353386772768214670799256288772952130195212136479053226498892823238253018918793038170255986701875850474266181485925517190578394481416613298424273284840168462318962452240513106395001877036038780595950537740099388039924448219600123396508889433066702599468961143170925429102958691552826180417737612471558270619247888966800929774056001909128016182747981742190821290191057157311895552377430507723931732522142504812275814978850870270782660017691248654446477521375696529024675451220813644566622194969979125995526556964523930926348106953825581384746503815778112590526423377992536259398685650607527047389963784357163588711494855502769747222562372312013971588171404792836455954522585312565875360261815280168169531019817524073478486544383378952160990274154379170765970366226219034373031191064859866014015574592869113255968831660123794860479939878393966207922471017223881614817646115932455678971333783397641948144745553619399588719079923725798731991087862857626494293563434545083711589860568070832440924705195553950353455099136102909999912901420765075136396769768931928185061275510256608073673665792614159941448772504305698208120319403738856446333791295302967870445808024099977622240833673663179986402446490373069867684122744202240149757567165157930039226649660292611667622301153784993336961607000294155589552444383216065605346168989802108701589306556750368330927847386281155811083434988032405034807234229991510297490992422759076574820112006266299832384616976874214037694792854855992630157436949200925836396061611173103470394923521614095576430751079007190440183370789460546761970468999518043790804420435448427374595773856147457757912439103755097107518040136025827227002881963690340788117774029732813072046792983165802751807748765093702791574941491632522415256577176907247420083639276502519361032671737162837581656008938500128701899882516904393032002960711869968042220755945251887931137615743002133327980278759002946950790202256689718475708959172559357639949651305740322358192060416703704309095859169217385442947543584220030713092816409619645061463254305106855594487527464094505695160080130942293488205804331479866147216862060440227045624680733800940112648484502850558114632905160806454140731446143084233379976144545371843608645307563636878561978474827285022756908113337676855972313130350037655439017084396270401599302332067604753799244435346637420793265801459287941040108992861530955766021383140228767144056848145762678740798802886625077247568552263116660480272504512347022203990005454585740069871725752192982688109412984059661460587844021458792527320177374953983672569647427204343561067254813595835755398760771232832168122138877531729432266291109362328705913921236611962420921674548303753574663987325412909966408863777840475322596552240094046561718072342137069437049622767292917800247831268991989604790048255105943732784396742834859973633156080175023122260986934831433668527456309479242638389033198129510725104733533353934965720436680218135428882657423807994346841720786048832443303409322016840243886422347717506249992720483962617686217595971658796014283049214110459806229717990370246586192464075020505921655227384751148189531940883673163051680840772566126957738043400074283937814380643017353528517037272216857705439529766699161309564605437430716121319433319314337239448078319341103411947814456389069943969655961911867938541430863718689519861485609520903323692557417824300833090358487310962259350086437168351554483233586580017287442934546750233507380540910710794348346381190933703461285537971492011166917242145234798624182855432876816020737356270070961048885205103309940422699837931208507981483118885002590646198222184551879098906635419674952199293590781022275920315699713956917805017818721646286031233071763768395151038670376144183188432183753201324933221273419050440884468104594035951961563026225476072769851877355506820711141541289364527615333916867463617707097574235317494336538917021699031666339185584524391760131275250964151412917768883100230945385786971555925373848046041196153470938651737992819027037650365851430607430817936415092537763810920841721926127153944332910321099916650177777908402811970274478262850689032777934547445939696656385301354003584100923615255549413645836352590454318740765073580256383715244307759720407558588607911618082733626155040229500102327421296484795915818481489611596269303206735058942203845973709376163931168823674653182584813181921170818379927273721176265696019775409281850052808239587133384444482613516955339624566769022463269554971808992883133319144543772261128297548841841360659391038209610565651606599451639375236130738111938376168389994241927306666907601673165024050879777289238149759808134715834958070905087951907495194757652781315024241725773896743905732212789143006734480458412086949888177955004009273519560610676274242954239382408564087272149409586170213952217755242559579115848592496258209726560528127600682898153124775684289347377541050179493916702315135310933939606732256450424892294267275458334023562866496657846250292885169413911698059396878375686096700419936994884511372134877889337132372933887550284246704742680526876139089290025810661538031013982253345339187905674552633657540328302730558032262955375054594292289711188713318509240198965671266854118173135213255077147720926315103299522736789149060494807609244744307281265053868645960365454029035743135700607485488530143974321420713905401700525033259662482633087311164047648158577014436690786890158816164761730214848098684713931529811221162326207064903354714124140548996534090141372193207309790660526051964835909286978994613289274290258184816534409353098141980903686750831204984082641341295642131509155187280901908809673667073243373156778779865728396840909643420113403730927300366521794343978353957494074241207890333429229576373293448591769785705715269030526738202350698724659695661040732631993867196393866340789577211395080359569011815255900524842016027371391981532813476049649206442453455384755634315894230966079768618179569232946465961183832194684647150228372014682676129298481841069750479327229678310823037589008529938739762766263024454448780390473054218819932163602451069173964839759582438198068797477524869374721291554304234354395084018773013565492770828539304676122379736089879416919604123742478958782737858884125233179143907794817902171941440437502606351591678297949157867450431259136760306389379014859585709230202793700980338912575432628185004006609916865174217429508057086855393955826366140424757315419146868006787677822429457801930575604007744520846567821538223050969911469446349503212845915782264110314536332285773281548069850371257252003485175043371474884525395618667545428107406249936878847242202211503767499576445736319112081105259269852965019229549589009855041108430948452795067905831359573517062664704998726438705682306920512988986376098970824649046599118184201759944836385613977471084344411126280342048382826797500127151631599398174536139098400630349244253044592467240206422766955663579043574054256103756662099606882792957166475146742170851594309109836511043533759381634708126732936938734679208638980288823718068509365197222785055660011084519325325537102903259658486865183429336894237474955630755897814741932538008429420777376869807818277030273848382511222172076107597912054920815105585297954136361778576280624496917552958693811136511714148229998378658597528399634972383243921894509816628635835610085652909366106304256576609817083341282545732766067229353866993989221830871138135541568244908569129661741589620688563942378547590706544255889494382731090997086238715516803939757416644078085215393881331361158351160798367737933054089759853416357268975807194789800649080882291286079766961979968742190753889357494196284365316717140177256672857785269478034059790658069183794705655501774812843754687803000816926221421783813260636195100510491055019035953166144364513589570987615666327169362691869977077625065007758959598059211391046867434894549706763968791353304972927603115252771144287775001899978146560688255474312147928236839983729269882013197106422035856896277299745929005037418586137418326852798521574055643639437556305796543136005964921137668735635437337862870161378039967475323311585557403635390529207798181879698277750379730909611669925888068877034161192709158924393072984614035263032076598234595755314115228367099734115314236121362004614258832040229906717420959881982716542614612771575394709198821243601720481339598081284109579520819888260781851503000275993655140405233249393176202501391082372934052966923841697747486148064058566393958514419781661672070129416657631021382217763216386608388345528276118204271456032832788322511414428278239151359911005994494637307488328314259411432690589057734702744130558040673977532524585667323967183477799014429936268177191007898474361017216113472569769531544958409396777432319445849684451699531840969797565229573964283328349296287648034469291890017078425507714404581701603411079473507656468011247520915484663067658496503431188832983448092924924887722104622652080157274424358864377090003863580647495431925677354543702704227662088407324309539287355995658967589670767133204403254989582549771048815530928599023874742864199359250402738078307217098811124194587935866355199046277390097407845590122903724949418623092527114234510334801770525894736525275253483340835407440196386041125918865003977199400873706521923691638510025590524600104804392564516143205894213007229491549501054857375906229939764582312633615071524908694495203815510325480338756463467499066446148419057854571573767096162645215744032662773945071172207600455674729218118037839210693027962930294847118262238969599495535636452951555045820155372427758165699556589594198755513493833406317438353366990669919125229964180528987454829241525029913148156711182427772948204369101642533403127384853487627496807729570475239079920960741709434933643165084034350804422725417053538244739736995807650742788627406928551461599042523057214728905892264369342641067963122830297196134110628446146935452860847619349940577084349151657880971484015077226091211850723536735137012362878456301073053556895220319183365034069596847511926562200252874327443305076451606465831799379780173200700987907031849395228984057322889952994200795666133176120243733372264202366648658233942152518878768746166294110880826606752755793546807014270050322326289048243873919766054170030027323868469599796413601790739359598879771006690613992764815947364944877783358246613178127437715328840336602676214530872046614775711133232820355455802569109949231422528184223576105210889201097456542092234647139756981492251207228198923364287193749810332656475721488776452583254847414198180855329430562842846546264245893701815457856450809275289929581279332973706081937639438910415073755177434731686669336655233900401531256935137422217009832045371380753664098506619518274802113524636508849728479706045520503263142620882312199066224334301164529118908315939832542434544626697584882001387294677422322292214674238876744028948257997886639411307499655293918618139703554400269133749704178977079563048493288282948744492595548474568442412438672608536359410903317490183886708152539581223778092631685851527358971787820079569685485604295587057057936461961277215473956886291821363997356365331677035328005999899444693824332541716496018515746786756975526160691722073009862640014798895153738411101409060176117440140808328120362078691174030981640626687993794588364364727915640473318494774619094674435628593772749188868537185573163642880954751312050375691661960798448537256188034808871160852111432868860201045066837508709755141118920353248290559243716489804061663579785091070612914647747930187449307221300334058602544759474189680126365671677860170074806906717606500860192237233186504874356384854990120611803443629686004212822426834151296189605994189514759464226165406754368000043701204472873062312084029569571743407452308506652465479293479545290242756102245042519734608696896549412013494641987432046476720807385206057521563129681341709758037948816415835829524645088113656539078604596074582213619263511567085776661826204635113286906394813615989173640363256644126181725775989078851830931754075078677137863273433108902589044887626599612782684178448781009985463566836229332633165380497924870890064766858231347417414180526390923057759703624003250127750741814951518275900267575438369345090201137631649255604790429203426655665075434457176778516172497302442726681918300687814340751839234588126766821231626394694766024708941654128333439521289207910161566690636695975474715592552233518631079511063788769682629364337641351836853883510577040326157783331631042745466194117621045951861056163184832568748852618276196105597052384326601997312922145548724890441658256613365790765595942886767818601855993327924695960594253810902967895939545014621001221211785377978790381718653298471027792152489828014264486974779269214098668873257504001460766342855341211579056551905589688307442626670149473656931824916590144484448833632715871035308306325703017851143008906988471633303381904931862523917340426224402940926051945109191522219895049723137346778425506451933101546499035730584371799959558747707433132136230868748744184400764836439207565583966482434585985376216808931969814016841055113355505906374689351216919573833017470294106617236299463373490481480825972628171650692642723422027436546374816733871488591872136481399152891636210396404453480953720673350014568079677156036748960131014110856189703303320146078801994400627210390937794187611240763008522884545800288392113090273509801501519772899109681948088194414805566442120041221806686704890097656072417794459280308553254697037940144891915438701200472497799187250338097205119548443920239770598763435280964858337237528422542863771084065571533121355279316902832437534616529121892342294277678243114095738584686124653603536990011545548685608299073973675148861666125871107129302787528288754222251627102328039427770610228945453351645948080585880186107142536223077514645052562913809792524465801607648012871338722315182981668899868462888972043534646580233710773649772325035976592362737787608629480074494316485860569539345713832545431030339100592072185159939216467250011564195733287936203047139778803264934159057995740188131604540376785548845531897989912029799334259924317173109493398584178587070288243126961066871522954991471787349867875559018653767445086898109120265842300616543347363503116826114274920794517646856632683867695295486294465090842125246152400694550758163443330203865843597981950236299449231269243877400716897801212064801302576014263945277879113095036228427270014098823814027753389228421764614765572433806540223799988280457109595924824754118020673059788123827306539507776805013660565922683123136634267466713181250825329852743387052518251875748450571659996396467468599002365435346263582308064628910481137133874258130873466362251936546850667595104514128530877981136474681035362240912258456736405354114110982465946464060046916663463358327583905908106161923239980615080055036564035553563578245240058087116561947600143361784018113565815766642685429798188836700059225027490147177927204272885004152006200516971720453379544126910611303675302840098767896881770562372163915453312710155536303009049572774805853469202467839534866871445147975759711551805428122079597893032374371944910002377300016800200174615697861739498524967346023485211918043237890922323839768883291544203020822081007491790730960098602035459979019350388491520752740836522361098309865040549724560266439990647228598602392291191732134197305103426961791990712366963872497508028936115527503902377570138411052179115230635722932336785944780813094388099481785647754791524647963321616494672536620602885165793784829691080988803168001774326887898648946769664659421568445809658357593145416513913914403762530957930681306443449208757561411795321383405323895126021366002589204022009952003807641829138981130162378627642504701722590951447884758340414473786981813338016295775824922811275114065222730561566443122578482359470672102742260515628885232557715705514606479881649330030688686549796524276647376678918148457291533649534802645871268377030325991826344073979868364861376160693915638202351045634083370377549179623351253189960202424246486235859472837902171592666539900341963868131149851165856637201289791097036745191238251829897643394218570759272366383481187249249662569392282484326616050475184943795914650408826841442657537493464131305130230193951452986193456851280616786808226845240007938548865904462261432091723019036189630363522275781508630949980479149832640857395085720641645324523429495549024851554985240859543281749985609665935667022963180650030089438298941363350886941803612575808597656338947599401982792237280081420670503590919258565335286494369881078992409782801306369458121883703609704703713917982414985200100154162203835028766959248115471296348842698527145258323976827093257329689258754302607014359425082428425090648840288628350464303006024900083900708001687232511355869705112160900561909143406358747914721083629796623713098114525824961277106240615806939509646266893511796794634590657216411569121325783844293555010334051288824503376820246334787975294659312067449604092802392794955488839864608836405990969464141405067521207863104889224794712597470121320729038038931142509953385190879390609380166752823307746437764037529595819785474232115114487495404323413202830400372828569273047988942891468535813409138672223156996070841044228789052909772039734701612673856572873998200198290618153828771319515040039088895114555316010588748363563389036673658823279727601844877981320570244510317161744483354597963843736642719420232690874214835359725097569731220353349913689862181819078244845351087346993241703380810491753096033147276494031240612041521858151087632798577265680318543520084232130593733517454542684909539023232950238795880839900746539680039763229560923441969930511672537868348960333381043198047489597685379207619909569811992631639368514785562563757463259762892673278312604158383795610736009180790764505153457348247662506970534392674453191397603093061490724472426959139039669412953414655890800102301229958281516065552335254182292309537658737195486674867074878280304312201580509608806976194876335473309102328870648625561621591902916981161342847523103994345290293276144950051794881483454272990286996656520266341996156003864595662679408528702173538996221737943012187954339621370191351097841208386849882027709920276905407344186842107729211671495425087870565014469882639915499010475795593844712697015021905512932438783289741154592583051403336049074769618460572492387262447248818177777617456429815002040912438463609054153648863242631598124899648799668888953470109689149469921790548394740916253509614264505131134855069508938086357178357429794805778842485319250262119937724833562151940407423992440086110357567028151990713444285555911449665293661162670005924616250053176023673259496769842647646840017172419317050711836382930623531409424560591512253066830124847008777463172492394575423484292826134532591724272898255421977347458628968013658785282691340257689666028198077357957533830900917347378525670940130239362651795718788545776717173897906564459398599234655598659908246576202194099691400770029133193313737974907885358479008178904471910113936004236756134017246980489579129018376611044124868940144446205584843787821452998428354105747150188279390227680200897338491398191073020023092760485372936029903646430284715169377840071676321787453201251928718943870557839144290168992358414470436466113981871216694310400071255123178563546096881545403068896121287189276886294287706701097181899052876463274277501313201086422337663888987798837642244260650446265698572498708745554523233389639969503248038944397275441136706851845302584867348811721115192513311745414619557593158894966920520660077093817598160912177692435667917101914437952420150214554736521777769875843503139615678493253406376624658525744559696705973679609218212741661190205514190780927760511668846022640783140776856484557507033094889765735717094699200883444084641431559942086895448142117594674639435303031299617448491800257117162329920265043300952124909500132610444691387587556377353466836014089277070229824431155019174882464580214786094913326974146987913519905762743461292597517429303304375800393439296598421587716180096580514161541652855459179847992547583099774997473146971680568551469635305922185989415606828152929615640566675807578357834049595244611321757785074274993992175237961052940205503146169245082376294913230611056726774824907553473253508570608238093766050742502686621854291585912981033071357941498117279796971709182086347463886515764013327618698149459831689184523527406163333823994357974548989666709141356229836258119776420952404777441823295454342321695992854625987411841536585278797127321190714693391782980748794592951679276309637078785523112819497199454220574140332898492991875680213852908251091710716606135047532687050954226887519807068422239483545410548510437532875544737879059410485568582307243557516944637894880293004794342058449579858733012888116315287341487914632176050190223107559203899478831105218435784602410020349312381292952143988246141790879135655455104914706593340746747675893241726667589593444119340018837454719944827375515534829502064113538288014728897969748311745030352600102326852816769058818170018916354384594214861839754843165239809715014852868274590583573039506837946044116182958347840533461595520101201335829661312525257360283240492938919106641077255764221722140674520634158366539437455370583896052262835156863313720337229740391597550920051921738037808793452326978958064815226073430319352555719976806374452224663931663592879456708035823842850782993770289185528430849339592986157207310906690320874322154954051580979739307465460967905071085578102164488084311628987874906658417415108201155758298050559207156598124390243416417114288816843120217902596943427356886448811071838977241061070451220140846282961992779605441797432473989352276818155494224812425439801369931507216175209466557431535989159146172270530110182459305149956537695244444100407404535489724876879944431087377666709447889753419375663922325368306274201357323379200708357272950883574615860322275068769622491069921525705733025204566878289013277403735359271112713774933458705240553710874745715931757519035456359232620587395442863623582087450498544815563500739635461066125560981992542892379354387226356814064248836989932532104114915818011355901351886758966561693132929331221162773612492972491287700337804600995923657694141441760381927022086421396632303985111804676952090602172291771157054865140833266654832286231807933286494838414360582665229624703080302880868922275622056755338164035256966827398280589189410049480315727873511748436253514447651810067893141330443084485463188803532661708684155222056068618816005153037094894342556681076368433978934078238844699177816816055181583284576975973838229265229337238025130917162898064304844398236032448417518575239275968927980300628293558848535865949578441040466240014322927291196630268441430276710976257627262159894432375046293402479478721251439880844196055060502787707953755391550744528622884926896795400061131809329180388757145975434924435062493876227449815509260069552774727915616543321250723974999899501809746332820196323527525758677319316693780588918372687124180573215184699967487602932354666727495347369847677792723072393012074652845636340644401960012611743687207282528152654565482454342341502475463963534888613022909956068905852624429856793724049608228886636772541922901252105592266979421615493191389665306726867878136459279420957155651990254170632839434368586467958258259886021950068731785383802074340055751816634784975269995594497693861647153284058226569934774064851976678607194725569698207059051506979664997463804979795284191477293030447702384135552257857910872340005647010391393706204597504522634772035943293304205764735062123485557416312714759158590140253736515655237971844928745368990675861624113993919858900648936937465530258077286193932116085084040381175238377811337336528430075769344123484490148774340221847013942202495881697220998911196596236729267246541305898104234651822406774782180427783008821143378888292882679853375395340966284053902788999850629962619794703721754134939361184964489078898869987634631971185751596830553856077182823891142373447853728637111369278889812608730994176872320205725476955253149409528869934155794741149892775943744645627126274115674172417615191704224151940801026483343693236610111148642069742345198930861365853408443202610745990543029457172854992533409871715115447814959184308128770646242934078579458546226165841229708669810768014191299065373764083847532149120652742572440563976717426716666882356344250659610408840920037387923270982838875016385649309787296719075491240835534911224223542613634301674599923486533842528411842297576083312209239932532318612582298749329464487179075660630134202855935717098084124348362419437790012882440214720640643576258795117361864403153005411559079387682532634747330203084078763917199181425790301384640870234284547034355263582849951981419494219745816222915591656666630410091768237876891433913271533134017162000715199511291046329625635042653718416855527066352387447084136507709199441937801575672453300190129180225416717141154697844983054873880785913957187580172034185964448946595104768587591301670975033825225902288119280610185036098262960242859411763374878203761293426086863446262715368379099432325807471628708575718039935958327477638173106700680558671185362062816208981043591158017236617825745299671032086354691523331222394858602699778779540361669268500475032655377025480111324996258814730230147755846102775880797465799248342298709620409636615882557843717276395383693049496794650974405244121736201188869259261068215527126205071507182039903581601602286098757936768491893526106806653663417726595086971505845641728870645571904707110656719642208295294887344922920863183265594024398549240913164390433555462500289810566160049652601616291838774323904439019533597817108220078023101502542717851358012702457874606712817195487486958907777345506831389537196547909267328506847612834981516625713438923232301821028817348382305597974068511103471224004153957024437132834744160969797414421582937408034490990403186072565183444063683039488440656103651735109712497852542724121362343311892060477477274881349408141605614555256440319164785549224680067500627720084279666538683915263028892958094284535031270699658984317292320184473677912655231239626160463517592887953141056885281014802808144954287622366868473975875107008013918918226826052203111603745866577479697654002550261466139323280486492991334069788655864231329779427486546384837301659034315797279638687030839824106014228798351330328928598438115058804307979412867354947817931549482356713654312838675701428461286873789473996087746995268841722534471355609114899058792215964196979940428083655221563091188971377507636340967178063583059506151483773269566218104215729221566422487299398146171297507450737210431594593972460143938716656624641512576917836869956471883158339709824287656139429651192632791069906642688350203239009243740020801896677945544767216663488129919077745906076871620986770141107202951216621101867223642804036230020017017863337064071333440545756637610342737500670982305752376618012578872835402473572162587822668444363327511499426474556532167908596000324152137993532768887848471372923839956204145006351144070504385213621760656177333957130911744869459268491067638149641490269827785227752392971928191673528306166331436989666632428533282440522752740891455690560138034268059445826790891647443936316832784119235656753563023958704161385549324988336582667503755795553361605821296011345449786902461634749554966472336793795273355557115867666917143602391018093592148162207048044788401389766034119490032154929552207642432887646843593330916082029508662117927089465337484860871368851463386861345288979284321152712788502825187864444764330499774037962019945875554638073527660082543815470172972040461547699350771507808718233454969094409433397980548698184685021027731252908201825562009365313241972380400657146915717933184319096662677382819928322135189362155181032049881705163291389124879617139938458618397792144846356932508774701820463683671843078587505381300781218566140080058996063381620776668175898129029678901617828142023262838197118326461251236025098857723088096737456767394988301445731938612962395194778596159328111960848134239981518275971934663360916573431769642474985164691908645515987587498990697278442842876301099403559041475639272795958942611120161918443248414312515748761722100202510580855457623721780728127601959773457545559787508995181952964657634060772398721505804808206334588511301984917884758306642799638756447233387105708023370219431072873671694907960001863022761109299745281190861290777777096372266065669515279543781819467274828330660840437273617488395432915032225453162530553793875493866330465499656027972504973350589683405463513695570948708774264121034395362369399814498518799009321521015550118540744903857293941421517331594272860463784099129311381182866347429695935592503702366048951693592090920617097200741167207419272455608508596415256439111265567764670103414393252997391168029737549362762983021868641358124376116421974311268210329233456949245905374132622563067428978034421135285163602982906534345520746501203725868070178819100428734675966615770873362673643634443674781317690748695981498682263744119270462145344889268827352731843043088803127238245244773214480976991299100295077146916535434571854406110712082777100831074891544617583287070316130046403374590733804291757842980731981973508919688475432715800846121156136332032230382321645298910010374071491313808458540174157937738331020671958105316816283498473899996556826002036355060732704997791262207540012311337713006571832693641727468204283000003630370455998611480674875004745030678940584058474422671004572238784688240555899171444713115544552267072671680381325955976307508839406081080039930241326329712546561855918756776940697190500065400213150069005455349947512419774831808472457171025979817781499332065125088148616057942613514531545766115633294594258333424919242359891896080432478245188095225501066888426139712115391077429561623114756594445932293696331827385369535495824163810116583403224964051706099628867056490470270568962941627772196991157440797702887567315607520725217074961145762461382902198494157243653561891040211206183128159464995717580736460169062004524793274825766365767764673042117816714946734920518563242846450524088880292334688861357312481022372046871891798966577687611220061616823369403894642094838099559064499485554788811218587693449098310042848061069065340776272283412247336133421587343327763060689137294335434282812129006313158350833153183243316389472702727456872512124513436472558071244917783636077793289965713946743715188511555894159084304059452578741894441574356733754246691001616509092973817482563786747819192691665031327133268783802426517311105538562320022173202805300645580841969684594817080852351648190367678333269735876773513448577435766088423111273746081896188383803343676373662925784819083787033216522972187198370510891812780214326351656102310436382168225512726549364764346748555422771697122515782399807180176250161507173920626040724038318137917603834706468148825400507383586714687527924589855700078690456314696833551882956226642304270828723825186065452833025803199547629663030769041209305797449823509967072077964239750232297423852382320796549580235991775917367037112191806555599147816441164393943234550579925833755975415930816544004958361153642073422356593914954454473797758843198883870554310924838994806944247440131248814632683359306842801224163422848983122317639189926605306321854214205342503294551521839049455872079329216452004055569103404591145489237499368196409175842208010120124707097995293469822181044862020525654155194548308519365160843131410261942585611064758217746572658543919257550815477432633846916470851886311776050109121083787772503827965162284336246654201000493925457440900032972545919034391456446883604621698560987469886129865942275486483075702739635482123323518258959237787122517041285519986557880131772254054658783169623446515751116753939140216396118334268519106941519906762100489941395508852803189280649633730790816883971388563314260838800025980547847207140648833486959615899558910950249827886381842016318459722497107132400998616767016246218580472530808512592249634456077301342924253356040820217336167241784128061454389140140885412946172360382454019666556440185691568727730808516526764737447144200233993764342029204046386890596900157201454833664992199762308661001550708647587897096487004047171889053324772065303316926047765207758438723677382769375888892639797313124897397957299418094211489082190900734511244504949088501646646699889136480241192355021083199181312956388311957236955824827405075193260796844029186487854247596883574613815298477149172246252002243367290439626911440674831566514380473092498098400789730738938896132903048021639532105848775117585373896263628713224423060603277120486191724512902524425967543771031373703340147227279715237893872129696354607231956607376754195588929256623173456798386678726067944920424333801717106475734061516364179092154421929544749090854956293376502837006685104751223852517410270287286685378559814400317299811945273501706587366849135986863241500998183931947822673211618282629598895447237695134800341917534649841108196976065939303516384600042681367969205917930687344734366810046053486651886554490541086629247697775731562001739606595536764402807241462085216940935329551538115007903370400634616932487128820095157289149478334725840800339201227712071585783002169530064112409299268880596159690017287543747622313456807742835587131341773027818065623941795017456313479156925684802203550525372713047379774174423770625064899715355244407508212130669903854657182409572467870655471069761102206513668730350928034204108889267658322614935550866103798064732840725632846887291959561323302405322174112857522014272156929099822410452866313733153080142213894610177575537315554644450592855073015198876045285268569398078624594091037806887289717118120487548358354827698188485510473287937314167449954859068791775838153681830909247860222668348725543603041061331582613285060462374122261129402242991258778068399905686627795674614154716819360046268452795533696288576869633135010197641059895031640042849303079483211751866171529081979378313835789219692783070867337699506541186059788729707250300457653625187467192282765185834718026697642773985045049158350241784142239165275080897427672259441593488852313204167555698301337762693167742651662813024992768607349933138775214586849274971995864879456842477677362772915045851375097716578644184489537612879622553869376558164419712688973373914190848902619195752783103997148158591558182967130541821460808298888199425314973877426589901742501067019747880619302366406427464318993685207935331703376585666313913867137221070634463507654076331623849885076895837130640223970721912534563110939860940455109470160057447897247894720939828522058584996835960884907416219912051057312462571638136907313509396242022214786615526203105292724778779204270086842040306975816318093773054000678072749396980900848993368373329429726393399683781051224318176898379421154831610802310620705834265001948405952578955015141081415485800941445693155653700354200412192010851547285327863192384409497759191728951189775504912023267099085718797856293960127537253715646267385898715227568556023122243235090942006109213556518228587778912483680584727163396740669793930020952784195744692950811970569675347566588402294193011240160237594318647430303146099959469357728504492063292814547200993212720093133402393220465181177051814797640792325377214063521267896762302961727429707639337886353075966091888636305150937224927881895174758090358884927683283801149864759803822527417375021946717660971148305198403551976186070688224016982174880165557190433099193692604043291119366953777346827244801221427082944511085005295216744560633792320857986684343912937266457691973769551306087058231850948629092137211945208027818569151445360057386832595131708893404562571334982817504718735480351454329987797153664017519419596404687760946408593497801556255676939421277099753051942288614366358413238493429971615572751080640050844318067853692947208463519788417026382454372278966169138719673056666948234732021120231808378562543321498011686207258450180892034371141590881317454776478056102598107872588942485181371352800925484327148479164562132110033809883364917956741267220368351756672273267462530510257242422211944917957049956416048902238319260800028509656947722837034411002866269974486840928781071297266023416693854905967997790220771097940742095099045523693779440717778840135948752342458819566550842292255662048179343656752002325258919655599316115277491913787768395799009465064860822619667425453559657174469157392998351457389468542088172645746379455225875278365368957628366980708384780226706085597694495767867533988974654959188445377838073013423190931538186228598316036303656486594202004813382965027049944925819926569385390245866317811855836553914599125063134226551916045078318677624983915359900368505409230050453635346619295497871590538936226788573736700002534259776270274627323507087542257492111764237978955450009078008829319073365166924137444914268898850638450756615933911661364357349648273323678007703378666195583741889986991928449686004602295333015189206170816194402973047391668725752017249921131078965097245333345697487700746850908246552662510480613650010053912731623644155102462086295521386241109152699691759936321657342163618041863726295396584437198521800373337203216419668911515171037296566516642378650667355003892947771530470418780653877111395310182690027966297852581153794394808429527279376301788405853170399998769648638755873450577837324339253351329623788468685266438680640496974859946996878404823777468170654804272232712176870587029199432734786108521198537134977092080091006069959315733288292171349330422146871319962334475280890459125205338726914136036621156407918551788895409652443342465234494743355882622948232365873771219527252982295938437205923932064785188318067201705979488923415337609271052888971847794235825693439425977184550086970263972967111972524716781866120485473147966786000520459543621949888387296792162368522811287835551402718576931483192172555153779456310160798760027965783794876044658995221653597629198781021937690335884887306669235605239923654405006676552360155595701669851582326995189447255462671173198240880922228259802348491843170294667174676030333700983404877639348259230179979455862456540603308501067735433054448850026083374389417993788080737178561881381849851954141793592221438957812071389536565783641453664440710048569574958227696427715514638542886326346585856738985827643373917783561147929244380654216100070205724743650450862600963825583408097417780768767816572030962031739863336288563571943894754043058160751273930767662246458898590015127288421589825973318821824272947535681264306017913623534827828323935592292388094924391033500238829033467127513325113485203851592497283775153547125116016413882666113763742977841730120852907666887444680643575099136118701698983735083958970126446607325521074017748089376239461285308841666922263387624966796976990818969814663161108525647257928029456563152064928245460448033304600254296491364274832536552548972990526774014079202389379829061866663965401048796404159266042615421390035182066778899687803226514054773793737607735772717357538560266852133681157512734619145115963166369256936236431211499779723710543318794534459301096049472677617972521840516837568415566786187967607782561685174052290724450895464824162804862445718358027431944507051581996059421204357911691523212742228924143435414825299432715714046016554529117132652206505604317621665758539965480324640935858626964898683084717407117432787451417060692072543616946916289338192189845290590518043003069280323877086755376409263392493325931195054293404969362573564748284449233956687763360445176023109058844712148708423985424105401506017119272413044899400218277975929427628850158277447804517770729874685858285160099297688614177274886250349356609590884638077975062132534351176124862750997679835740427059461305032926271610116871940265710709550061098857752152849832316850863574027572597019965827385320351549147839105779552738797526552083593891866075328941693154400867583333990159044709159817675393173338611682179153269741849215102901053983522151595126659587804857247006022892298247374738781464034375260368547591038929069160197868220105724541201769534434066605955954720001423461740103844773191977698635768036616613396697725640520349507960628126629974137960618051246392095693234125806142569416615332345595294235275228793682805998422243193467066216640878815662785751590304684906466212828908685384446028763166202023434277490756635151896747117779579726207695422824227354076821026941574766255067161593331713973438933191274780843866422052970031529720231106157695230803997432220051500496663217159493798936126121763155903772750779144200165649852007808919723878869724963609441851951995313639743026137818367548335105354129536378460126278674451807734425580213749973659082209254219970146283657305190072958447438251220554345796103956568539460949802416056990893508674158531442362328093156353796814680659602570971203930001131071197224479609313334042002170234652299061232433353456168615962429691692271372552104335874711961667833020501890605671571740299796810676602535599819252142865719904153604596296530580652357696892835943167901277638880459727284012094473192026156183653644938366441481251962764599358710496437844003360015922463562154096880458482388287320765217729787994419880589749443179824331805363860517983170797239167359531755147209157698319207796345387933436963461804663918468487423565194321249934640471543822991853461784161146248541655017951095853573099964893939278502299620825979979081667249541210526289443717089183910613150856430819515303778621482165375510037708658032210635653689406277241824999438667584817919467974664224696452068075018676071883457540928343041879653684671034850677572223418923417118176149710260264817698002586076842069510779470449882313445017300116899856711839579180909843189685282186937867068611278487278091044087549881895951100477780085236483554132643637785176382767802922602763067264547104368328317658123871568802220038466295991142562003743168845260859320051385147673073561441078891406337973522254942913996611158647782406814700896165834330373249614738203593874443755321997344100934550999421343944016238998949263133550579618588199511642761598726193646053849432968131858360868691693268560411389648062748264971846677732879036419611619772482761881785117759173604743248403560093850090072057014861455978821161605760085105240134290854441568097194661648234634509525266042627562873876504325294012488945340555594158236329819429441076238893991763059757948805136049023304365966933771808981179805958361718655153785794819978857620871429419918652613782213817283943240444955872031147508995433055949379737237482682098875383096269864716350256914261664805857609041572175340593511144271507019552100335337393486409887583207102057076480576649276264113325840842956449150816867735853041382297404542949568292560673097124266128974470924015430801175091107949455951088367860954384238899094901695781975654994851230129634017986303045253951604518904464571585972743027242415535790255703978270315955081335805098063819279050267292834548367121291748588278273923386075719855052795999078500694402783247920132963047178835979479942223373017805234127009908112848023118391718663320964387913376436534379804945811103999238281620533130348206181567457188767917736467427964618207076655614384093374989499745383319963475789411892671021649325944979295352781044025772311139772597882208930032375927439927876505870170600208039243783589120669960891201022559471364133642945988509352888716390454721414001085773934263704595647131666426567985538990297149398177645039975445046336888780168909717663366194254585788878096627142369061083703098794660966030665884232002855247302447189847693769366592840995306340571676744332808243752209795095641983604519121470311543416021237142902407021229605632304553588320054764007149332074784135779856653491544921847438953854979909948654200522816355815825585803490251764167772262636327605308187706673488120824730976982992893726083791656719410526228294138551706008826234105256370263206719303057089304176361954756434179553352638090842781924895948489676018998112706744394790067214171617124930839195758449108898658430011898127204521165866134798772377168895554583542898288381502717662631233476368100724859036264416138591644607874903436400126237470068791651632159635687442508859975185787913139760506204750821661282330774291471543011505086929353750100191337689573815347858073763266804227767801690869147726691718052963141995537085017590585629005516334371944402199446392099992829956518104104551856116815546624177846410524115659160482353883938308170676697856581242361552350498835033633033236117254918156075527406911752575442830875104206268901341403403589541381471264977553102063890408409864804145610017677369471984226569962900964969090350876972325753005308258076655167685169962457906079070084101883117822293036050094269266865632021189657690818513006477154710998650498933880710243876374557448928774798415240767436412405950512465547910669380012019143564411383756021069121704592887647447101038052250956787071930962949559451513063209057093087479510917591904267038834147404306518880865963628124865781698810462061524592595231077613706310686210384468259672332650129612523471495734459652940963159264692427290961306945440209138863178413092228568170926627828103935898749604270529690297634419141788319015393319890250841239847681487205729479699547500990951547522765143280391744793718672982317478845398686002678541652866252925141108420525776523339053836653216412858200915077860273401564692545591586165789598369748033307324165454167684786715109131991962733383425418365700104112373694032387919107453706663715870502301253378589464943759107531702462455591388857839839821427057807259139601021489614689109779054645685887010297365139407641289239948488115183976586149512023542089516710745664012619838836491308851542374431124050636808528425965186894348282343322570677208256055837324653761386895437211829030381833738612624204516359376095916202776696689575604038222244329702889382448566836259237410001037601857647299359625993611929459139040296176494839189665780409120788444754281696753270031286535423029901862116037489125370022602196175445662995715299086683156857511159594432476259926856672584793399072052968776491511707260089469621642454325035622831131315724744840386065834224708642724202843155233990861965934271478752832190653910759773534832455774478325027205752339657095482156192441663850722570669042778104776735502307944405056002145504981239039352399227969548036740423469878999382631149058716185067277850753585452357112922630117556035906569630418808070946619970384141067145675942000277477621192459799926327829420445716189569095564217170584173251970168723513929597769463941770521322201656295524392195380374165207022917798838211220120321545311409985906532241913530183357528486360427469393759533736124818135918834905088889997800506586391292760577407176208571091613614917105651608687375300863799549343921842463536697206677209698766681980886759717047532509523441732514920353366151589528844595557992195638129750252560402133933620139286481376644860709287830243593492546718319333175777145424003692227932131386573638289764131549142901761752351192652129797742543812083673679744310435794397273123857720524035401584648615542247811376525145680592720295076090794515705939943391331470952385400370153084130942672129459146259834580044148014820384912847139688131169072605278409756068761131945415108584308053047446122505119696438152028253929981926130813663468134917585199137394731564347101936075129500069415313247309436761732404176873187880191958274884187449815887147060994322163717471341181630845516797550912157497142588736041856960214990582254353967389300370156013125371286172985456961217105173845589555883104611826243569340065001408449059809086204101806906641762459852925463376296783325195425431994631287405931805764969099322617166309951302794379318841357474905087551584917262973610679690815675870288373408786663351647731500561841349449557981669271411745215086322559180939810263045128306874464292556059887437331089165598485929729983371135004383588802381708454055200947272297822963410846185793320022872662680525191990853960681493386652649672123528150794691700981132086495863510541361084667227824250221783655312367434479874346283800613900139547864266237709571695337128673371576172203165116260220183481122352195241409552689427068811582496865496761196386685573402847230458325056312741488981981069227868223305152058554446482682669363622897022839433549159333567278626458999874973635707293102155994090573395022196626545505997962549071815327301107167904395927740397235481086014500920244757559774283392443854099469640939820831211934471832138073970322313962404403166438331072962686212426289818735190869430650567904029233962771356398650239191266209621191189777020750863102652430331715626237181815285090339986623273022708326199309397922669749997744306379588725358341212590637713529574368320892306879000299715959438823255271930122606962203291968462783583321925285740156779957046370673313945236689819170337146437086492701927586053717925267862339494039489738902197958988087428320682715591959705377908817729419281427290634134848578886731219051894714048304255412456322530400535759789927451226575794547742722023743223124453468613135863307856733216264812957013972174701087135024241123390661800354245232477087792452461246609720524808818472277366063718053377266017144644184679595782621236938490115204352841317332752249012248450515019968305848663607901766875672887723821283078710926837043828002767457438720067362570482603615108059629135999283311751377651505269708938270489686477805595770589781420347582073079312871274263792323382282169006533540024720422832963485444702247590804231733044233936708474024943787509391271624042970972178639799735522697429297190274264621318019124179299178479344019001173044087629288800437060408465592102195804729964065589055281030611092894515851906520714492221823767484507748897305483220800446636365587118243932599547755170091061390205107717758392532322603966243645874773256276527846148053794558049456666233965381375681925855839327363487206494023772846217768422258529219943539232819757632879787399405623738918695948827728882660351682252757073642084016760559591492261271703720639694174495454694626083390529962829406836034314311246625845113176577615006208203753425443902419035847811721447261389110758591886804275347810644232507361311595676094071403156615929101272583408269716062402752347300828944334406708226961703058771976597564237098076322870860399014375300331431097909838100798288718569482063478569075743613140873870737921307299493281882410904235780329765076613665897246463493449102228801721300541676687454459988849169403310983978502239850912534537902424022634075010800013664365638764105830194922477896780915140349822516504690533813489046592620072541425166592317964966366532852505985655458780829220779706067356257644261693910166728225756460961712606729638227189996212167119960091223270992835261343636669654194068453888255214817855528210063534113374885059961335333555258532680533207260443974036896398644395638069717231731686327105683837041242757366443095487009393427863016067220711417243591384591811797333683484359890250643057972877833639216646474972365109749951002836729239633513548456181080021344252030700433747711637877850796334561150806894754225899718650300756720213870771925583379694086481380235194975055585611208934250975385452419524444914407061903952953130778605044517284585130117813774977210482481487276699284137979447163374667449844912477853686862790178018614457140231331096325425908677266381612795273652692963950434698901143863128565461908019147049829155035437730715696768609637152896504498022835859516347884819856145693465916238647633345434298984714048719857158690817794906582461670360849668101163245347435476061749087547076149354429093963056579697114811061959436152699834296090127022508300153294240699593022295739553819987591509269363135502697761933233588777280160767325114292813862883263699150815122580568337538004731792660111958698781356188519996352188704609590969414579053493404185687931541278355084359111908637221843030134610902335345127515477341453525967160148681084902823377837493931275550808423744793419443044232216870548457805080817420822841943682302009240089688964076421149079209444709054925693928339867041611141057911313398285811913338577012380967000524729181810362734911727358748521576290052929223291307312290726108817138767302435151897865324290034600573348684950014167928504309973444520526414165178817582253411686078303389110611961190954894101530435323139510463080426084846474891399869219749878563447397112993822191292239069677056769908867100138344452581869314979395625849857130706740723733303289790491745414322518371189171516879841459660724692083305761568168823574692093227805235600944730260574583392548132124044444454276731215038757034257900526474309461081129155652092883670336925263000345934154717630064613058323907451265496510256465446994591349507936202725140320313413330979062604571453950247885894231844023618055256202075873211612071574378113087254063775651223993680557027173720797463750504244696043900366024950386685724339497387916221732045767090569727995508814642535094618509577652866436087102857328230153402853945205395579356362261611939471420720677630648639403540059157760829070570569467978688972193527299790553158990240629653322271227413383767646408508816836507970412390591112811321522311582072272350309641347965358480604678297417273323708485345447834275697444024122987361507516551918218149099566514450615679432653961013000542441663027267810899161812789043898213534522949360187196901588537103576182736856470211109752066230900855149169686610407303911201696899995680942481425621625584845389673393340234643749633571132527355428594859985834617336397387533259901777667682201428665760600897847546131408447820077126623196646083042078938864116687087532835869894554996180426242303386187637732844113255543434222329092239991954765783353916191259268804826676126779063835734127452825365278560244305348157908109101340051432183811557567555146497914429415546472685066629267818077473922088822303645061520572016729462083598218277683031287551072381755528756606567926621600383503751582737499455799781844226209568074867500711633402159752822883515406544373614961248860421558413554280421793714576372491056243250665013089514803842050605499966031166013538577911324321672113621392364746171492125449750177107785764332487845290387809763992092430559751971025163411440657448315111079623599103299260604672899996804750220930776417223910176299660436023498370999244663429865559759729090660245761308131163292399933446355955315669412379057024010873505359863300643344547808656499298144957828411568035200416592448553895657444152714503816136012465447797404042260082211558888350124145435524744012284088103901086571958271511803115939223771791922774032212837440797716230682423214086475710861111184815921139816305952985142582446245404167866304218569782195512047915771852356144777286046876983786865496141629427501085522321626828126544740992046058224209559884301686098738607966883315274921000928027632471410776358875398790059134719143485465843736205515470404629710146465103650577187475650052327920642080027296915974629965722834627403663013321645324070735692542289040277023507712590444145263226876811133938764019379892462275137565760068379741971947446662987283141181480568184928951287720924772837672067395944186319054963112143325926053459420327457357565495676985019130262122070171020306721076926843333116609660764039047915702570897034021700956245904350244791615391863269111729683469035373711527736863936179917596122262185791921975008470523439931960138667801468780655426978872675605745013788233613129303543100983381822482114367834722744660286116159392245763171196217674747544490958684400687253814621014811930292051965580111511421150795717655709630364121998070586796758349834451273977432743418219150360960502109678270589265234181945331228421899735140390116279535493256564988634748267387595362430456275528145286907844997522167562887996669535185658769089011187065428972157986635812950837474936946591567817385560496885965211688793469724381573801231661505590275369528151451028027210461452235238754838792336899253556318355699007564490334026907609821445134385086316951055971688377297290940738170512184247666176679894021083519020210289656432463200945676670063503685848984320946542864052900610842842363106436454203122608308972996546000076093269166815598987374112689110781513481796302448079629494394117379758171249971633409686409490146811312296781385245130453695597377271669004665191496204309285574734252144988916835136832618129153454231050682827502096536875136848984406137877517431637102529336047059061589143888105411950589995966306278104855450212984756340931028258803158224521896412134813309539401707864370842423495578420078536128658115015683128603135068790921020788100448821150261578283164518279556061872079173342605874516992401857979901387126581645561878196130781008268262721567737376787694966876599228859156719393644726190471669843986955172191128642291379322647543633968670898775934452621756097775563670054169352369246060379930438429265675372290163224799433439707593322755834738407290806572499181286765085466605663417686226937298182891498518865040908242966735114469800876631580597789651645746138850172776968033924711597072703819679267310216275199974519432243410052158341974268488326636969907098380972263627773147776785414894095657235364829354084833351377959480871607222709376736392834424072332170430858822898037570150244676915791693194745613100887058780369916726009519583665024578943538747647158246053775317182877180270110953906381795262833015674591195295839640190505074397164667099127663881784509170900542552370103848090991250125545212355665246281315945861704644672021089738250867334742984447116863208912109029974993021172900375582573772378543247604759752270168368445307827436489219029842984952699552904071876329001246117117216587726236631290346608238787282701342295260617613531309746994667316238095278103441255151400719890476739726654218341776917120744279065178425377410454941909872876048727728860372364315815337390081948585523374352906764839926400382342801287598030388352672008198696024695596321891566030674353609270120515951181093651387785418566393317791845009818342413813712706555819359458223853867058039075677572111735042365256407806951045947837282436295325601053139816396444512097909778073959929326824074661478589149657418876849816494713583751456645874338067262921029529163463586499301415740943978834351011696362035008446834667045690372955061141371451083644256437411269526216901464213541562511607828062351900068891267236188121690302330851708514957907762158604010426894979897262778974174703209730758964506644994808809125057055913412087878578803465602057738122519326428064333990170656418511170519463448978768526311971929063734463778893472787014303489115953605016785987877366318550737183143220346906672914153096459226601287119081961750611674511400657720369305948441668073609476068690125726411915606288454666316035955327665564488372728661899936533607938345494707750089728187233940967235024112897723905640123701475084742984374923648448298444233631150868352766256201156867665454483933010959534436972798500996603154264585837847396494347323848805748860105209255918690222389141662016029270161387245603651872744623348914591148723706205358996833251417655541287756753568951370183297426108918905100103638274925950671002004616480795802821745828548882312711111110924114632265147491438532138181447005942646273443680762163354714977811965076084440880797902839785956446483959274083647329460241558262107875544925275930337030336387228659642110159160767981709347475751719015357033331968155393121482447324705509318327791392794287587878794196931525203987632141618862551116325291495295912677694181561872772884043591157506826846901912072314835322587080741371571835032072122019240926643968383789982714678753343433121280463125700227349068259199723476218785768114715169782350442257978247561140658694961261394413084452485249862667001183993266447249521785729224308286358417650220916986203025141426374531088841457533784568445511236514279019633829720426220752069657662696109846859209750993994245281807288679938586791636101975094484069854726584855373885103042401131467678710605127389346943705478738585007156074779041126516822162068799823669412627775677123578773888053010446938016806130317182586589607509341493042588310415253321952231111763602308473568029279846590829271207260558037720937151713588889558967265176148590353494525232871945573551757568664883796017619712746439157629916007942933543984352821997155822399999788964615484860747690873268375211909062939742392822720702176896451047282306806470922138681964862301321725345765968718888565105844918778910864856846524649097544064112381701197629566389720537304437346425790328513554512911690446762373672001793465110751500970103334610181500652364154059117396746811281748168888626024104151747675358844663466396344545659035306226863313194688519596886428264778999021943802742289025357604038730229087211742025776370588319470190124400959082503724778110022563225243632781873937509435754134496168174999578907083948095079577796532713156629823649856553931892402094628988641798263240832742584935666247541465575405354004877852935752989171830212960941736225419052690232753274018601753944823893928726236842655210938766888162581985102012613966015397322855844222893075503152147570924816800023777017130699334221565984373146351677170775842950677452594543866220747126540756971499540308860010713302696195935957437254044412384992075488111518662250046190910728569147592908905273192983372145018509161746859199006790534770348293790596300047517571620756434942680548597296858622690123091600478231132912372118669453673259153482055016204773946394675934563133742303358398225914882796007129498881630474007671766833267382290347508227500124418211768855183939621323819230194163913358106691064481404046211130758512311242985587695791013236063102042795510369046847536810026699926046309663173423609403969349198534131091139416493214573707835011224326226534659212407258701154899348118653398410363224868134268205740755574790701724593118489358989504587243714801059604164801595695365760597368689976037662360747887840875914308830667705953834963896593177450739914692761895021491710289471364355336995512975158589885324501159942833749643597910355942476403649764706372992933078160781506591752182025831670641999374967740423114635931857175073844331077703215618296200669677335203078329400671321432932327175624397424220058946613810273908042359065778716733211744434959761983282852449510226410454759645999577432221313087167338473932200434106430260944844796354818029965412317040138591067434547862226157912598511378434219003015782796361508736640087052901127539303596081448838369729650795983437519230294957264441152602007422311002016211095471452098229604289934104022091258066003277219861789682112095447542681926106846883871357816665221825195971780749241884925328695253927944177215488226412567444043125101632647043431901822091165469402105761414535675706020470248050964076448218007537624886438706124397129474572156790818830489263597726623895987570992382406838400042469333160293980908764778523424177229060738018917657660834195047452945912036559130708204298248113593167902611037487274573938434451796089566079785857570029971889929977935762573798723453134262374396745537325904452344571081797379007994217418019885249830235327197372632456410861049875130635477269671233855938311757510659655761457513958581002453170383625738713931058223438364648009973281745374499296053624304560611561060203211699376025280869248496889523738518362077625947322246146896694133827253848332391945048253276846338647473300024696636846666380935443188930668122049651361511042185522095129791211646558482010833107151571796071863940417736862918083855104535038241280863562922286924675002654702084308838600905451443635830289697758973230470483792648799788645031700628498841320980140073059754327281081095986976601804710271176933952006978219158601155679084750297424529559061588021875972420034690248620096579494580383676823719886137112340748504966981139901317374931399690126312649347744881281653529012455085774354056342630909575049176159449999650162241308196249150561331583632325867272651392780207649245547114375742240648354521501820584225220605538579022776131185932215140112927779105407205969225588556740259553866347157436697602433608967368408568357996501150390697665920894540766278460137712493818810700775374871512581595923835785356431518424175266230243813497600795354988414777102790661511074376894235147131732970111051414324929746625330750806001682340048070753640904719899229695362209345600082742511495024714504620281809351653575068090095473052901542523554170003684792867402942830202969448411651230129464571013046947206796466810014357533189285905141917565405446804902940363307184479879307347845615651776091599758493192571870918829350603732317139735106982502794563019070726897129767192463243768786886541136488333531802356739803397147134546822019312245028700384403970738189385469642594665275766964936044254014744006016356600792716293545043524223391980648448511800866373307573880294023349583810121828059499214531629339198012034204350700064852660538217659255775541165614840218724686987936012645308731539837530528227413362622395052424161304110391670514109676147591815614831556359917514901718035413604707896846328936785134848835978546345270716798149247384597975831756101540555390216874053863001702557850153182551877707338023399083545077513469912344142929612596153915579091926684968955818213974467620972075370457021263527276778978867979515970193976692249394523119384525818421391914364537494059527532164775891538660783289329050086101481792366677326856986672614720895116492287900250505940296248484958698258766353483766695353803521556515818938498855836038628257876355385191569735185977214833451297778013995282208450334262410305572607759734318710814302949213484078800566917989989826569983505171290094519338792200048400803340576377726623600930148823702479731244494332177207336561612665739273769284610607982360770601638134689634316382368394117174494340047551361813953395466825162510851527140191703578951226319616461392005647679646861675130488398348507694318445850106676983056914653368459955684461340186494783436352431614010277865537262088973078225659922418023945856381495173068378998824408272137703148953421120029283117712262823604532186005924644528871920175400621426409938419515148907659102664280280097836801185617301210255937222020205638084625527761871284749924602169808361465709246814484174557059525614066295728867952937725635018240622234332253200964853774505562750600479349773580713484104263412314127185320384482630583801630914696627173730490221230122726847582818418023124549044208093361452775173324612621261450264766053882879468442177890420519150017787317685665540063563356875445616140410115021893237528320011825028509404800883652226024252099935525784087552413791249330516239446729822873703833798074751336810190191205381976949651932208303831480676580311748029205408421840624152092539468820433207685675458998442886973734773589393571110731214440932495295390291054249469161761413598023308757442188056098944965571957418499736077598911787231019666054188658176038989517659552939037819654782153548977735614012537667656776984159490536054221215567377436953875018835505783332489143447249185227921476724611716933461819225089325552335776868778266835822742824222966463993226819608465967996352157258697553009723169102575214068146160236167193808892449952023871907299735195314908510345732501685763838177807543438415368800270636038109130765197001743544215962764943042106370936655039632564537534006605210226382567231448780614984997945071800813751682968343110735439645423460157617066067959862782999413910114888583832612315189482744465447162692084297141285840869523586406873125389533405064560219823188516199202072455918396946057836281852295139289047757797460930263551431655323973602756109397168671775545499676805923420764786047980374119245025701666290566262690984448298661819744613177653496207230928801237860733213190463858465091329170468737273041592372651663302471684197587386609103198602363839106478385345163541508583611245144539358469879548944691305296576704121218455889714450489156032283270749954062231340211730981914688242254149186335457188663005519731869749970967635878210345558373286506346987933421339670724290592516627996036474758188548802181476020684039878899381781843905745056490952306286473898484340174006931784710794791995429377041600716485763401607860638670880513468489668455193212729595539302759195148872658224520209468387649629151720123048239397170207922202020191724592898079576496305427991113224128476779351534018271859336221315187974398940278687315408167920472463870234675829343571660537262886130702811623589974570027783202682995257861722500590560346656189286202853160248942346789140573526501743198578304337747078204928226639752128092545674997281318342724429305285311652173769103491638539155151349958221333510876683131610285848383635230974827297368421639063274112335591066681466941071279076212595438457384543430577967844799438376367164065626390953048061653963811335930083113157218384197800668433701343249168602104350969626462678189753587840179887652048593028291086834226766080200936336197320710272755370344028441350158864142558443872046062736796006182196911313078568662238240986511185324480641859097938670924900735760058456769727311699774044128840412314313199138346708301622908894318096378112320337253759221147653720407371402896255301772975443112654426197212875286619883260568556282081037596266017055851868734657237605056610749860004772343083177260978305131376208501327264277162721691909076051371945370010704545900259959874596036847596077106448861824615325013857039234454119292321742150044284477139662687416356663167547586599939898277296894491186368380718553566900492171855807071344962874267944164562446130184342622732945112373693422215475348877066197422210767484932895264614472772419617177365741901524319123039789536450739622312371913106438760451773976923622340170236090820485480643917289833059258145402395611175093139444748368733592320051977114276302322952269506621656630179397470951036811850388158501806924091419268258512761903361000836729034631054633745932127129157221443681043325752796834916017118751823011559733632472685913722257679110548274686005179092959314978147659495128376959360622000492361818135123157537363116175052779843186164115531766957349906572041139524389748029149322130603539336162526646352841652866902908857086667182793818131528128017943082565452606864546578492717625705534094090098638236330890412455768410075983651814765641022620550936469745286079115750573702560912415592362619780343892889951003997285810697247129796978947425442921061639040710437833750514869560365473235807407641482623554757317966317008082423363701136354101227723714105518014194229094880956878882905926804468836495200602033405585042704354171941640435774195130482458008068896784144360963833354427597709485302734968699857693651992439886561272759881285127715726220164984307620019797450116365648739429071120556079547154125917185135245419102333514794069090902325872881125646776752834453613119071274324958355926309984797005150899269904625605531150679549050975728727663248390817704057142576432640354974499727436630616770643243669082972261277571717033881053042078500896018287549315523125457436744969572749238389783629642845955438443812387154373113986548974212985170191400971144298207714303029884387259395193216653410283962806148447002186772219676976589128205378114440542906619901693861194384200777678047826260026094559474317451366575485102725595190007781506223974038066878003946670452534046559023770835630472039829793477280294300679872249020997676645693171216989503966367308575806301296754389790525928028486950047849119677735408746362327371326902702949586186833221141215851263628739568673063852339996864224039421489729975584446900259043193918378262780267742460968939310839344398235187994931810873717671525088068867934548876802295266813057716751403077965896459333942865014536954181531424432846290589970050207233867702274833632316274315873480091364289709014677681401326089343892968633612131077052159925109185135981684873702225798135154393187272772353777833764186993311931644614582785021606144276299667412833145564220413091026628309414383907420027325573156925399833661578562461790557582095081391466948065521889045384547766863896493893431706612632325537636370921335631115257477449746722015628704937353633339116574094669492121963918339192706447415130890164690139711870793446319239583802651190333654618287595991001472843522364245283598747412017129156312754756515790830638594318151941389567768222337231318221219970975856811288480751174180714175189706970410578602919444190457334808685497928160961078371746130185815989592431088600404407253772468393274530982559054721447649711013769936938299900984045526054275016723624604101981307050066932987188893686470041773092845109254974042645820201937933916539345150297184824952185928178867038243762263758356785552622550233289070225430520481997387440708314380293381717072991517869024183794325655318490419076710045750496607507518217417074071372848380594400972641075611677353766091421305275800690939886638878461960463203788398627884983194807886792790954108707540762528519924456718621584661066962842146324453116433883711006041474870263855350151473469769536350993580650560128264225714114641748968620646238406215231619880464499868609090946414780835293362048012085151495786922113723872110128436840427356878717889391571911327547553841352551462890194613122719445281495743422006723326461032229264931398018703289084075967620467843021233975240801648410801015665550083774215619286061671762616169726899511319167093324884670526289890353470474554118664165450418857417324309758557373554554126052586434942234043934197556302785260890587139354021196729507252724459171375674928243222829094327799014533541625129713741749316016651277228163806299045525909740118506503724976288219366754672342690572091653124591576567256739317203697780685866693765635115507131402286424139251199325728173066121477403266671190490304740435826912660403387375742297403189708532453528116075712648985005120049304019524651571876759229406864946888250282142071571023097339420430770962502569141103210463885236515901378437109645985712136172138261364073577892266358034124927065871404961314121905398089014060967321272418664863679074669742946813643335245386100035428573572145196067632877998187407870106988090196696606186720761853696128905321077803944969206882938183069115625019566730044741469552726586647471988591670632497655706164109997567677580722608656671944406915419633731353311658890774517307451690255924930784599855111305762094997253828494461767197123338757095142168580003693486189064548284646830660737953110690878412883693525359359042094774483812302685399141667332551725007781746463511435732542194373605610749668484378850426860089387259134383636596475526482303745377404411784566717958990683296142140511888840287342099857080401457995005399775711101444922428497496427076372303100582646982061821442587083980434226384959691121597981037194411088388555788172334824869613793663410550257069713013978487703941110200313558549545952695373338712152858780025447514477175030095127455335588037257163636524595541532781143358152376587130153048023018225710844784715117908885434776072129452874930474048464879401876051799740554577372852710205079262783314431067308813466250794833900815869899643292877597421971466247098154722372497463208625048063054299107681715805341498289842430438618327133074799840949028113965975159190966095769406899884717299616705423726677706884815214468984559303353926690314419079803451602015379746939428588274636635355187091955392490336308907446256712714763327328684475670171505071276316678208915415167219940409894600060314132891152719012271851851113005760885034686289830348257351919728101947471453460804452043034863927810951962141022691519178294195210677326583620546379366139370995694558626065226128218313267009530035862025071887995061003969303217804278070253496386967600017201689630713921939608884676224359789118537623614474631492927584877493793444261906189822908974667233713743585909100376951882017574818674634978207090234756850393109667143864760482851752426579126373672908179834116863145478623249216392756845187374981656997561009628972053766425689198857827098601360049905359907337803639731354864998833406601534081224402555210713192472709018420330351212553650488138726226032741310291806032588384157848619907045840627323834415786418558514836751800904443796978119836454532866188444529643361702126994203566891219596981438649708695258458237580454397300409961645585593004251041423706276116520369063000032963858510091909793647726398954446959885831863224543875676764404786502868578029151983595540780401201579423908619641301578057152333090715311792940413321578301406024311084673903377696331758711492589998583717944858333973749799422565864534033278395084620015222815129425855627065427836444574213652932403440733468559628277498293761463921871183470134166830499448083129460248891641474039401942361291973364199274712571583451342702561523201375074746429974357476261144772881424282065023460395089894301805087127637020121196711024967459647309837639708182654674445126372055300846724853389486556135883802040406128912536124481133064384473670784271440757246825929656799651672705152295829523856929202133011864417291925007921001320482965123882782266002849756112776970896788568688663862131183900407221536064573281564158529153059666010888596622643447437754424191012029889141329161572988472071278783732330159505579506395921522696090482558259817486637003964256441918867574183934207783030297768579849542026596527625647098723325139512969305647526730476836394619405357020141093919474531397408401722417988381093482099346655610430293285284279433199289951364136893839479246131798831025637897303785343669427419497440196957879302262117416345762386202735505020040193999831261349582513335080507997246612384364714477466189850842786766541603956907501632280053757221334157019417962248099202676877392417203715453481059811967051364797681133557024601433443122515038607286018169077478574467104924717003766070572227128662154615763851799202647665747867506044089160659573055810074743740738070167726786002234831374219051805769278364966371433552337300675097239299354025913064647469014618389455037003862638654615812015396774052786736637545504181869215095829436024161853528046798269479001181496547243222234180929357653914408678136876419840652279299288337503621363964741700630340780341458665784083607172098605083134062476673280252214758049523714461190924366287068963597344168047399307722577750511190490160330057339564434100009113134617990664218012839119491917442681067403552240249530928271843118950445881553966988461010502413762064840522448097782359391087599263165022915563962936909067182339691675806923559578052729552657840317893513897540762424132443282071112854278388117551545618899710145926926305738302931420625064382060576356225507745607962122972290231346428552258271318944604430698336608254868526645150613322307898978429522235669595066897268248825826158713320483562158053237706687405055372732972589309943788911428343195403732692396215157322806838700864428940308276702929454983487125153198199853776417027297289038677713380444902136676755508498848838669947839283153102175643812869958992573260053058366294109740012289952112810585203872018543806291544603636073488630685474404004233029527701701458622515007079595667740306357625482985309713155759001326100293777690778594230196441228728301778355495729949227766216050238651905568339573806664673436233513548969307582368500491812896188481863317365410580676353264553740704221592118900478617001645348200664802817505430916525450255352818736770613202295809547217102075778166384085590658277426623491817872044494705463336104747105466801207291303008782258420042282177725167096667179225007047913253801624066173403775021152152815410069536433404150305166194467316441000828575337322654767837510320484582799991986784294651023415854498537316837693724779612196236517594774202640309813173325210686897514990608763528476260795390888344508039300276388083190700122158372193454724298642227443783531762428929066156713857740507466635161221415233778316563071373241632901692490494541054533855827072103033459809758601299536336923987227521701666868045205345550036384570379073457135610362466219043067321299038995788841902041796132905367143038888118789206013541795790135338551470635608035352619518784328178182852094436748265545751050298145099020679537537541468556947091084604649936264756860107928601780962938159867259827642146110122883116773479427858772628058036684282614627917328817724753996943704146976523888630785038121500429631998630313784800747561031156236625441390931414977230514108725507399957012250575765127752783055351074968677945162298799802521122717404098964104744287485074397264039868584573441037513004900175621143278153641395678958917885211387428315952962719499342941045435545015459896508454395688529682256200328379761838280052850826833609767867677651258776707784070312157638013278818917630300918308503641468357878397894859572856075026663441022952600384584174586391277791361147524574753969857944573413552455141538488572730843752658171704187745711151893301043738756763602296692437269649702414857097319041818643840569986319531557644580871858712204019781862854726237425159706017758739029930251530915907136046227276318834681851461303830977968929368171500479378807547695335102093180225734965770475507516872115693892813006568293399928973202348636912074460832190972398727188054265174101982299111450687586428089679198214923963934712009569636989582529231314644630806559188682179054212509226604427551219287471712835345138904807860985612775577359409016990814016270472668500136179022360813665173222870361127117270304410423732638850350787056290739873515176884218179324523570749787537868480822426701188639870358818505499731063976471726150960058974321278177356838283414794630655993467530276697023287004736202507517642465046232198442906649113824792752235081107955531743544266184589957866829413913059419341079128411979479079973375581507383620327842907044901760773803555372785667225018623721430202710955025374078866830058692755814557876338019006494348206330098708697927874877188821404349069332403014016591711391969132306371899092066013877449572626248054342225255330129289744606251049649540898509807919045869004157631804624464788982752553531543664746841233168313164687927992230146678204021036419920075272965368261618486843830366051655455866005167532762908593807535817228406968155957053849505273726945264057142680689075130462350452710251746760367395780041650843796030600745461557614429996517203947574328961912772325413011885474879243910288434801565111881359351524825025311697831858937075805435942739215639777450687256750524129823666468855501710226820673475064704686347323387005176433350283101982277012164885367702950167012854347913891040596829635549207154429173626840440727754909957113003569910826837686795012106424718790911952365783421391633921699498263284525144047611234401286764450580673050597306346904009693126674638373169331467160432167292817950817503860571862454370588179150891484381769146842802570754831733970964589366089716872263642373145903313159174888703248542494747219749082677397993711311051077721705541092172985381908040051125377936030026205407794022039093877189358637117346332457220120767160556970497011216425181484560270502757112765721418751664535618242407745822811477270975364587506758500490173935514567744442789015669913887211880770228662849083987651653446235081181095593631840313132976586616333971366961316150838689948371614328515410822521402146968500173384516356806378817687365573875757643873616408147288087382262420312175542211701425662407750487502543685280053499487292704264767954308421383268682338227484063677827200980356200716650786944614816294001772027491119287033843418458149355970930159143670621714671807384073971677181739841733162468386609200123102656378160802030272877285377798727053337259552728795292832896931620964469037760426192437127282248345703892933201041469372430156754085430609358173860260153852601599418783785995012867524175078169624191644523961730551799508704854550146047051218079977399246448696023137441367332090147841914047864821673370347942692906698221798190314491880635659469966112142206916571287884540234506880774589357353680498641480293909196672680857483672273666412248391037823885151108395265844742201264114571035428475714222288763558739064017553163435969649136253685824167061588729439585789915991562974467797034657371117226555084226680166238548832738237855556778575054506333400013358534420268889320699512637083747338860777263100543557306730396426629691137133785225330934829833941067511223853596930861460374380161223415025277589333211524971867170391557219453503539911068122218449328766414437132094217962811021230862638214071712364310382399054196778258388766643220323402657751311509687049299799817907606248683601885406900998272601386896276877057187210819725345833881929215289027721140401724768034449479093228114437557768097043404042742892768820331753554987996123085113283471589217505644870238500873469017892582289734894920487670070316550374524016663458693782937293141435831941415565821425147168424090208776783157767279769890448890892544540246131184722860810144701656896278179902816190545494143037034260968243023027162576390479659991294666988446286690042713056214291199362327248692877320726384775743924517245941237826003912865082997528184251658707122983129731644581276574154410667119066437613005046068331049831634011203245178584344611189300796772322449631551176882953187182100784749497069887137051943609287580831475254630661924946511671865718820643522119257621033298267048334121245873701670114519246893240626535820033388713333378888326491368817974871040187168436665588329375829262623361046624862436882124464385301489053354616553105317550801197418509002005095730263566861808193620618556563141694180815159351331026461553196854187095382650220807875632267579652037706016927765854868471046331586456159859426481719271435854101324871512989901913422282748247708733089295156741834775011980765012226262742070956482810728289438683179497293909077773702617699380742117940259913854096359253195034194332392698063196590188397918165092697808300297045280469000076941807173321333386259917892118181686270000070802588826481114605586947209347726366407682468952645279960717474982776851550107245924234520074731403480421110164758810782691998471362969591067117000411391959810071784636027286038420595590972386042534035862442493679276009099288206888379530350934745872355518878171600343077869493798032255289872491994171409282689908076472413503939728647909155347883767772787697240844708265597005005495004306576963191453100419615584853758697393602125501814841549796584209917119156261352431786222327595731952894699913245767061714332412614555975520156534396775258449361637710758626990507745069263141870229159438234753074801199036354121724459361772041483283294861434096534527537078580381134317509438200767923808573344585247337723150966580034443529488747093648197154562698338493541587556543171456979571231032015899423834288357046627208382958541689437082150299171841285586812139248482930546206747226151197089043006441882401366155361669644876287743575858081859994183046854006543886188543810126515870235492834866106939695623877991767317221451801525946901169697635517127775955115136294433128023720723581292462104863191450943638235601062877829469892664763326762479180883209221958535334145720864344240313878549826154454006546957162603357068828032837537599819480411702599694540729753506952621997337599076840941929666065560621031740959527676338266721763624488308846024344683655757056717561786115426642009696441457079443908088205965000927746729637062281627987103682752538119865074040534501824774876362964444373853285134697100343408854330589842110285465940177253180807288339098360905052970721419888205387363437056254415136158163939437755143636173256038854010749450704227730839724921337826348180108178108677896809313091692974503160055872423154224541430625843828596090108763463004117417240978708223658139808362868922800573261552150868368879474218415647046400160884550536803475693736064381112969032956191176799543896762892400433410679968152828213010399462540580025137888247999392583409234079297109887109062257759488525617833840990709034239148001426440879683975575353064031094050798925858042734792465251108657358516263242599757930098446136933145963197770865969511018486073387266159685917870065678516704094521440806584902580915691479871368543357107861463137389155540118054733574268071648219787342998844548339299059733262134980983468115330926412878361243716526707430673488622008081977264136187512900998752720079964363607720827051436363672521360187078677164559908507427412691249284617541666562232723508831032922029319350670039400817742825479374053510530178022650067104185844035645474069834801591995863026974647670605692255015952014728267450659233183373178114203144919834774769524885966892022034120133076030945869940821474385362438775227910907422628005571919871702339697990700863049054318706341168519240635138318136590535810850158734056711527041199841701210045247092150465303200448115446918492028717738475157951936589557778406169821421526364864528605991133326218184749682221321516731870215747662335254886667240466544536709096304517909717523422467374378222500566070439528311028563696318926197139699490230642755477356880944797093692037800730560105516026268029149782305629490995928758973644836562190554010050102967925886380236359170265661356779294721412628436910600599885578451906996644448258751156631195540575004265094089426950482132589045352402639821976129013664073035686574396053519905668350302515283153849507458452769908846190078823411297032673787815288135533339683114215552860731351541431369886808576021961008436620798666815215390153537067745107892125000514537311403966986815615653551752372736215571796290142471243053120050287038285359254574194129962440832546202697054400035216875955302443342841920716142636247085218730307301587243138198956029554176696980714809484351992561862342601390751663844009631148394129869317452793590941112783364876524926266069539293252912051271720400528816681268144756283053766698950708613108587372480984200423009915101393806506198519274662255748313567961473273775776604086802585884258979117251785089052138822383472694109654908337474329713229928823107615526671738345120580808892903389669806725318860270437761580964068971213163183839402893737614669561185298287111507326958566356303643148730477164452660151037595967239916571070091700883937899043718272405879032833910815633619435028302477666957799547620376222989517407804681929070611127262894490029243498609283455953666558242831264357827028239838175990297097631317113997085355939408338236126682938808201727318273700791551714417145615251796270260419372723549075653732811520731129579646760315178076469799453905205212347520525350043516572014820063131891525657917978440780325118252202948126662270989179719038486609742355610238335524566087339349941328266835971634329567262780270833173203692955279088209435594681267778693623806319628655056328963652764942328597490567977122174401328437875171907294794419192186953092831367624297726206877127374965787593121668009173996742501651923567062728453467213098169884459188702789657860380494597824859178587639625187705721889542052549532798856644339310603940576475993725310719768389469985189768708495047379584313762123354403666336105074474945825491528055449724549188890328708647661386981991169101277778097631972623796330545659161097769183767507013721936725061086969493333600243540812367224984265819258232824676351582423576579961792811469411224665961522523607392801374109833780472301864145369858296545549325767948278470236571573809992496609521090928696652622268268427989107049706349858553194156041747399580864162245196021147846504682948001447183893332219182524076668670858466946997951460494960874839988065643820239644441725186770945705698649925623828353599622478095791037698604764163995460868989818868878395468199533978906202008590058301990138743023635193489901382313942407161670117597296268172287600344298189285783364631941682262871060048038884447653565770189350862376403597651540779597371976833857033493398193226821801931689356981040764755134424364219032752965950842364408046070627482454755287099435947721027535276066174292092990226816274482675860149085741498006316093127495364715218017941697439003000210695880757132952581355215167369654135766190709650496803304199897819919008663121679922557345927935162905318935493680169078975099591086387911445318620671759618573409087822040844016148722256943254693820959828015023962873989557478499532976427093246559317704757749059265812238710352622760778114787219437585889624278530561523606538392413953428392953617980820129725415693746496965189802933160562010293557937521152668924359323228447604414151498700724821707069066245927366555392170639640726756094537080754737986635530490443602257551156475466365154303531177667690511657227499944615877810101935268408254580061692434675591058307328290264062218354152602936885367966902868843108159024321950450352357810252734577814799514661661345906728158538626500428259868279649792440480035989553137150059074842392080392050211390510378668349409534192927920279065933803439355623917777852497728767908585873811098027769930511737089921438997771461798835949243891596381218889217503977925490266970160880193286825433493602395185748932521834167502976143401986085255227173447080262618338846882717108954143075064330235188573049164702673337607042692152564880476135278039097987080963010502541746953549563573474277290439651805749394306692523339913131320579491295386596007441296998243312294317079749398451875333745964856456149382395364149221116841420602965817946437344540938265414090723220613960500184457564066465931885733211437883467812708085678011321655165204555322237652284996543801960525318139156109794306817417632810721011247095810189000484412970508306394902420085506940402924108616704131854358141053760973006835487808069645829169151071956877804798799434214395158971955963017299189448191198899885011365447068873514825297279809328085929814834859029439427120930639015894801207660738975821683308469098859400534937003335045959644729240989029844660796207488958633614166071835478617762055194652366865371915478001506640702122368669720163659668986814056726393602366956871731652545218275396851562872665452996087748653540509758329817251308193522966850276143930631483223766513783399137910388441160376033115844790682486779226508235593338169584780017686875196788934731817478513088384155694969395179491046987992629493583298738757177405642829575977874411735042060586410958386647888692855339533899332250404024177173728733441571812517136417666535690747767829180747980419955536093281171734906900008072212555351994246420068598995610601234104025761411763285032600980991134169742941242045568503902543825518247306375606146167010450063636270197215800210311384731074434847311714780941352100768865165004382258505990654757208028738399598549078351739867216171634858294609905199081380229688647240583140872467888393946889902334301818145647709459674437342051969719356806029376793668903351381512304485503468801773566077714730337080398346547783693215475635364576048797645591324580679117227002903737418771505418115898575412064627851697031502049675482537222443340677948475872318236376946644598399083043463206718761686945910529861365326360333741187026109586411672521622341091084642342952910660047031832888228095857224025416596018533129038925985262798457210013380167331024152501674560960715753301875539478419468775146765575838768443944236027799079765575047245130403053009918019997439626327795433253116311148818799690360453187534983538077843082263131645611214735096188126133402514637346612512861115696367697443344964587130426805545977845289291490426626083435009615481417716396328038648551554714338136195071089678296743938188886339586214428616342984650105981637541791938106058473163090120256906852749518445675119572323924014115045948473049957697119935082958669541647937292585608371831943276549626402885709285934481836207718038682513331928438327818176879712786673791725754151382027530299983872315542787074962886457445051905575285768940229197654636074595857686904003192571267902734739111494226190073938748252420208363619018262783450261660858149157278167163491563881859073005592909622283317237574474658723762978231436924420110306028755254426028808495389056554696187281945220513585716687824087721689478527835262914982776933079114971520107714835117070491837435915878021624583278706142114187244942022861223286679971090933840539044415362913095555334276442016913960083964104644908000239268230271421333380507304169706789754489043099212947356271818176894021691290806493960187798506959880335851168533308248577972688843455599119939387673869426664308110662944543565065823643558072126808906509713255046888373017471382143348795522928460952565076691763502787638141292200266143411240199011752080978525285542640157085763832386329527849586701286974349333744607227736423167711471206273893833533967289513789799103233633983343791522241260078359038491910268671926548478874601510456143815021386994758352650821526230179298992925331168485826386251016469936878326395687987743529734309472204985398996327767492566678863898201320185102239244602576190264329495970191671692782287097531355116129683805616233752570457404512322523093130837859283120384737636565586477099232072457831788286332125437938984132564951168587413965967018647292597117663447729873238054152023222144348459037334973561843901476488348750423153175807469063036619926618808784421451553953530385125207342996441923134834786634345760611066566780138665108870934234904619353321310679542668900502037054612080069705871400802594284939752945428064526757011937924687943761885559751634281879912273888628500906082647265845506171246059629086064073432871673878767299854840845696647989380999824733095105572972794152388344196701901888809316268523739549025789613843960662042423475267801507276814199144484252515920374361171997203784504544307524257859896093101627609424107727769839061212063041159405746444364569312572351490673427257885487332069901039483018367134013701886979132749328534362028058950753850825374674065626771006904786057820667865384737013383747024249757775850237446311625210430119676355567892277258621395612275757102746797102566972884093051134641036140940445722853787658599177988028871357933828142194780341987517765440109880987794689249220619157732709905620460706848984522254931477646261607403455040855664624171029775692039778153457244246879540713430304202773588317199998516677451074077781946049020333984190873287065840845583888091302078945219897310968160062098365532243083695505129419893322602844260904250500648027869537767949618092069569057708855193546843418385333151077475102439089623364718741981621281423491214388658771432571257285210067617418650307511101973512873945055924116207036098001917499953554973414294072295327815353415454091562897004412937944190999495299775354891165301159907442364203713743973628294247475471843080413323511179417406694840139683816760962313092229506967471215641170962828928066418360007038387411151941601302850367949456269349199972601103412652678217978124013397647615619524444743983157613499169118350773766412273705223200300133395448631623946814939369648731174448849278391094403778224985077692637086929079425584483411229442536837516869996983226962122668808735600026760355159644401365118376761157646445068044327149378576056776049849996140359023032824439669894326995800236697208749550623892772311683190542227036198127090549136549727210854758323968467192589422893430603230542578624898274445709223501936298510088507369724757177332694163463874505713480620523767165055794754803330558090202433185178398133281988458884430309491930209889548948936044060003882174062968273343923817900271201893543216654159703556436716050763231862354988415501582285031616403567700335986875932517228396047818450402293823676534335146428259188537208447051076154310346214571170347724848276284120237225961966213470226610410543222220625012917982764617453011006931093969889591514494786770715693144041720133336693640642799056909420420960080470971464623372592944673441674084082472922470155847451236601710279199570131112586972972567511369916907099160422032607047193418702810393372329451633348911872314287792760299366544358676258796797626215705422479159776733653125649716950145171564703813255880371876758901473786498255822742154609234672176261680791687862875804614150188884823251333021479389618342261981823255573123468845257296139443154318489986154399649911543811612630679080864306391279146127457644373809737699515906968056692875290055368210662542318209459874457175780654526659560999894222612102066319821501762027426065161559493711446178003298101076412641676935722025877961702092817452289646792330714141150185656228612608409788124963724961093218530707828882392096343311368571327671129722954217062787794593176265238336352268014304798608789511567893723433044692355966750638163524699893361490371277022480129027856649184307718490173600170895970760034444829862542201822678370257637200515603635693537637873159399887922669980038319845255314524099150787280829031138568734852446834855987191122150606601577465217278214142768809960040550669876382930614833244420209821129495183095656047647353030868539883172242058832241757980335931949753513210921851938246440583244299202727686143357127029112806831852247087839554814073896444708386906903968125747225748223206951053194077813734153290316958602616256444484128632329910868657493498186320511715281055949775917212666316108424834390564783346244557930469325876434791190735944396752753566350171456522590756452208135895404782131569966261958659568969431181088965633964570777704947508754388655458137397959968255658510224767264529676627251101272090488644405861317462184818193100214984422331793154472570501255571217423360189096473755014333496657026707797611774304651372159399372308323843471238842611248077562272253664919427179942680736192986940638818791818458493411787262401376063025136187936523368973993238866754507510944326900451400619545839055007183666959556971360786773923989929581928985216722404778211981303846040679074133524528906797814712662963212843830760816339036821277884894772819439671570346992486662090913806748230806147686942530747874893189654699550499893891477215978009862884417420487799846936548035492711051939892165304495348317219507999517937314088253416998479262501160587141788992128375739756997037802739400500012756047120257388246439662149734380131111311798595716844788076009609194890396925858819323774868909017084781792220409265212146002498780649815639884063036138776480614905716502841762181986453894859527022862667979144636369661292096487898260773247011609329363345941868183442436036553335199971406771309890074994242514195132023806800213997074542482965128490312088583410297226207830889620075769676655431713253311884732816722492759487790768650011024364230566866891460080740525201804643087042370737105452197362286753354179570382962108837141975119844103307914906966432540419161364322604293273424771789498117781809688157224830259192920730229873724353389033292119913249047880042719360616387362598666385990341158255544758673214183689604664341020027723694711628056232685302384890454111761597607778663196716237696556930374656601900092688916754367522210518525280353992413869846546103426284660516759448042798360324553861513836198548578842072054345775891654598495956750196056906025145446955287859726459290631134998955736669931699932668892800187807400835108734666923464074975969217406675677083578374595081862511162894002206082849598515104267640482580443200393977980884303022707927546382386335358995454768766092538635153887339467202011459142793694007927742843435298874235220929836130876668700661064130011274570237373274171134577771702353556601356728206586079874178037489457936410513302659551244029619362145788431897694974804319247622144002993012481580336986080357119336710140439121511784610517648137228105468534910791734248904338585599606020964564338147057922172190295934560942702461715778755918675567593406802318632275182622727512005593345608856159725272007233155737418938389149770300373220215266489468080728195243872921620052636586885226846332114155371819134851777121513416971460209117281186675072544910877281959596809460102045386050972511277717995038040869201362190501278248706347470591842583368878186109447516676334741905472336250113548604886339232731354035736785691747210607104366467631353650599013345482748296042198978807306516132569307056854603833850335004288967645822819457936375726102800208686140634469105777903043261770288211711212531452505997722650580832664499609123307197794773013382420030548758858459191433162833664417107149008963401523487415786732380391730924111184417285550183874622603481043226697410516434121575505799977487612587680425286291105943678212307918582733723259605686266798273349982732704719910435600208000313686648787902080103186317493877670098364127655833756760518911954713911588012860040138617849327310216260830520500031491195625386180791130731580358451091104559927378776579188761292748890948567351171427536093251222895130616572810515932888487489483231610793815218423472670765192272716756385431742442790933999569711587446785837697956814940811284306195474693178559659002052089439818225834062801177468885597805298330921794531527298347137094538516178063841325409795765827568333399832593151259729288530101303581338145547261969405077437907930536274923180402874348236092117738499750695924127569060200106862530913992159940582639153038889145569620410763927235746938856875263938466626341277404763760557425444087960065174548188159644027881459979180221276702104901095903281559715781583188797163025294527650019436803694785626611349755570073030880947561600722059488104978528791811386624868510706442326467329725547283588773573463436474318845846197523663672379043556879992580198892290333708331860247013209594573090990467296847963577350940562092467571926060388395466078790855538849566884962754527455771743255871538026124276112358138034147364153684968032147172311823413038645686565381115782463606182847249380419554767375679915312151933390385549143110097287805560966270243811125663985135571949928814886287618969128413933534371929917526588001694313269112280788328219250224463288199429897582908455413646261410537384225746177444670369627387962137045442173467370274961488792837887041671119328702151885783698571467131194176404002817509944706838250523780532500759447121017109603348081771384300330052559028232494372242988576442352387060367440250721118025882301122918676197689598514771749068567688597929899350185087213012399618397022775773342190192095527614309969804421499368625351960950331303746585412705966603748534224572208906048399142711646410888141799206318756672865070779839978474985049674482905509383010441839950344582391261437330966595410444115212951797655245047598622907378920578645672042001275854031344579935989355155391332650127196909687715600345616519727255641634602434260125752464309436827096567622252672456792334544009657802135400010446638235880299854919360258971716609811305190356763969039341328957774263865634959184180597062123908666757347429984531609495677342190362078053072381341995874470468837152461992728075506398320530230839273112531140816628650292573863083679670645157141312613428767300825674256059868111884219715718644746727285631816194690414233182012242543337051339511238058849492171308327067568576170893012581203948018427125389958664897674949033663456451701530169060904785438248292734502130206094016828579081600017761746253503660951756442715082156155813588087521981959775843937330891295659569571040162324087422080676486822185865348970352577324987711091030467022834775503569584153801151156155347347296581953382442923012175439148131214309193147818533452625871113206449300072023065781887384467182706371285252333203337988964039564848851710519841793222353029244036888860011154111299994627348993931872223475807324272904753546756342579282341928417653391856501331229769527766134685045896796982097001687581761039517918405522440596262153649762351455403226747405446067151507849469111435994185621271518060492968735227263384036332917584655445686000144702239046535746349199688158706798516930835294109135693356312055465348613289691087733838879572033522146026112150086523919586451246192290338973711335581342908871863326304567654483235778207813740467685516339879853277241871054011961399073566463107457985458434007849585199783681145766835984715086861483970976728614188616850752139201047672569775278245553465101835668124427289144235546508492890302967961510800965373410742839611357275034874630493865037986514647784009778173656836610296662813264327890444632989599576883846399713205773666566481249033450241519234631906554864049846173370022188759491393478262095911395197481182747270888519767721066876169843271088937739824788111403245313306579108524299834626790350037707376941661397272200909014537484590031979499630422193853038134112894291345311650299271041146419932390292914336660465150849034797551917974622257461970631702635132658469065247006204412281264634457078808689703027420319029398191668828142970106055498722265189767100734025263738420977601177331687702258236524503288855719012560532775080956544852809588756407405148659596166763100054093470771409677074467320278965592995095840832497805172956878675750883066561105151142660365444625869056162967220939122969540585750290562559742519708139474596686596488426509455464563254362708284202326870561933882360694085671314257498163338166886227646392411969904589129015232061943281117310279017638429056300424751377398188272583311177735239915776552188376054223534667727349210137827011740350544064624240832502294574099400297652259816302355684063396745896021551125049599272090734315962190597402186248285558654621094747917535310728497869837832530368816408169474086735965358348648800194723573996639246763883354316043453484797757376249669002764378745903288356073772819267475671298865277104966715337242014783886128396376603637426160371802206262779644373915273374836352252493778801079717210853308156060895990726337914868134126719651574444094052494675344936836588077569262443535755819003719420338340402328384205905150169143059507048685755581043323774109485413808276973971987865029819063582030359350485500347899522520033066256163138249759991062703849481629409650265164549187968733508351182932028304390026575755547236151477954284042221092686432678898948311783685572312177711111600477296567078795237939635054216623576497984529961398733945775621505344181579864474308062992886468867864254077263587533961751332940992900755560464356309675857456518180542048981883270428208320646863440215221511982740335311497337826947954173577163220984027080419657290784886585161756978344976270269912294266040012484616699433915249168535281389019597712481863028646145100846799151878070831127352487571331902067514492914080229301151837313822225017414876399756079010573087862834904385601534507412286994145442107111922643923526835498328840493961427365211379316826029744639966199424168620512544552242968172612842719621206255551402238695898126480359038522621272694027317523114935988151876327396149639664239329639117890855851364225166812678375271730314231016599307270490442537887126652130336056111982785012422717496730644317233933532115882854882034727294206043817382348227079705742202749636545401710736358703878445437429823990752877790261570260055351788028731959938695854780554838323430473939839449083173695212674310919152727239572018680635533189747620708028020890237679643051872415961851650410653833879667165720322760674106218065251500759684132148494218833893448485564140123337140495010833793907627670937967329430287804501645252529403255506130023779410334394872254145426419733558037269673138625898460351382885960325935616076068487377095628474953422518725465488856493333651135804556006384216105304112220403790092990821150131270495289002485233120723762069321271099981955064626978648682095772696696738005869043769013004087684891600233467120308817395417611396167088862214248950563992169874773478946058020790562121682240175480504440444979754683165261656357629209027489688545298847088389173942150516811352316738324617936642044332646917786287841265953547841960258378665013645537765726390971455850330266263933331623348938145734600852253314483119052394972085692168692540340801578434294579689752048062074929511386494621800537776177763495272725441902289147982998308918690616036176450032047997495337400795087354146023511747960695190019680241953212798879438304447866526374627980651326019303707080160505875580460300603871494943410718343351349125774500917500996354187137512748012220024235002157139664186900936344988185791435449407102816738073968931557749713029038667892409581463143302586710601356666962264773942975115974298665765877534915367849591218726193193742367057428782179457149148108493596052938343987187332771800297278888184374353055729507509004343776675161594851190820023721532970725965688590253249907741588009621599129558025665019717278504579405723052504531738530907571814516001043917235509318839410104890474729402344100244983702909461445718835104304667839375048652133171676843362462889284593752356327757521105814579097674009209044102116750464504714522024889719337367589471788312119153166215294308213642110985271466766767811489720307242264018469912728734868841299189539188093650829920470816316513067915384152050234776048056218718963367790981561568456244229370165390402000515911105270410777607695809736038841658272078635763448999183814972770414891789652770595244892942796363954494597596008105133320740399878855312233630790651325670795225457928576527025880060863817547735968119914704060617104514908230718694143197086525739857378741211849038835333669411117516156975392345925776394255245959912169989620371727475242891495598302710912443409612576907637648597276137476246428310614975848461866738582238878134277282987791826013319449286664467559357495440850326410121291263917075026432956425621434634729155558073117182870244485960738920783067726669790215693670979080086420103559987429897951906424971076639059443105571491814646731395369526239743535164879118432686065800973188533331064397399161140648562317659211719761808937475031362086762233049081688552934095113407786431127294198333955774387002631861597710680304586978290066155373918559856316077045736772781836276714379483460386677996579430090196457303305620510400810089863409576722007606295280092015574963946553505573280727227773382573051110567377228227873022432095420125364751644120044829851673427374972146269671664200578935794222935847367854832271072566464517817442600530900187321917697904961572822574404902118189230797039479605594611920781699286748394580550755549555942212580387766059601365508757574551377791378559384239501421634578445944696254715017757736058058476522143974040468207460597431393398594220324160839236339291036545104570106573064481816376674545384872902625807854891065823018621105975859159376213384088952756623710955087151390833585356251328241260936880488949992568223149054176961095356971877201727398240310874337740375596836670978327166912912332669672909022915359579132493706476843517150881163383522286102793419387930421490034422455647000381996621606298853569533451269043087005486276603380043405018700365828592002765096957619875719028653848923745183349667377992091651281148781327649860936584639213229760676422104404436919507598373305578177021622586229510599909825030596226082718746116870982396142531068672652592093796509563547283042153198551578265184301766978872782687165493779640849431462558421659146075991438847669083537610443927921679712078667287507071026330792775797586999725613423332410025045519908335872956129675648242039605003497413170690817076255366000332326609162868245810774680065963563850023712420318601898925361323880632243030179851651628553018266113921511756702776168272364172113558908977886285088527107158843476591763232880664382422014803824024890824878051931642758048499995593326625228049669526405329157190810516082633623168211954411727317322372602824724818531065188384529132210498976279885507664862120144269523120005545417470179559193774792334700003592608892662689129466062279752442665683896813563715960029133657149848104591153126648087846868639743515369323530477637427953615771732212578534207598565159841924046139404072398743072497643648356854624891458828062326390389308811295977748029842304019160090031244227966264066635241514985275330314333016852749167829867855969898411740811134460130310829698951613899453813007768146442862868139900525822251755969903614535520772767037688681333080110155970475966797524948982506273929040164834089239258850921053538577175474842220097482912423769859631507394754461750520410781342929343460767222386767989035604925400014897008198485794722188150973188725909861208192485980848547399818410065003911338951986708067129463433577658159357412310462385593916922771813901203975930774597665658275564134750809279082082683131614853727045745868116021509217342325185366420110886931133968163546703184427438860293683455068953628904240748992315846923770100042351927080876941301633792351004742312791560478804903610188839841756045228699047688062007319686925941074007417909286130704743417636409588716028131700858482995418729475367379666771546298055646592138475352092742631218401473770892598386673314628293734158114897966640467288428976421336409925146138578132735942528730967339640382024884653221262857713599430050275177842960560297276103316382625549539573215086445433554633191568966147672632154522187170343270321827558927893134524585802910288512077401804905926903950604650250586429568926822514383091654454591173284594522020001770458696510695906611906305608080123476376062799691823376792768967506311936186686574625987355400354355935015287734583690323932085777467913915034786591050919327583322871234504308926089840835662925811628161155006913452233357508245149958779906149698410154069697588378989084251880972268345239536005728492107566326993759863568181112479200926716771515756842618011396049458009134628802958546697745338687891595415374047947531260941256247208210456938361429985511625428127738596756855484656027636363412636495234785870861920256723984657583360231538180502478011217944148440758324738615873457784489762099802294726486257412436062470692522787177475968366830915701189514836210324370610866809781501600947898838705160326278293147019107622992467667208101698333225473324061969750602674294224520484011338287916166112405590160557529766897782687217415924267690378480962536090021880271856630802161952967931044532242045654823922588955500305265159698401044625632139861686297746920645962710042499812935214377510853810675480906213404359980094392747512059132593432649357893863677686191911278254238578033382965324252437304265745307526882494502643771322995545821454446683097537205202588092285325551184549991096936147452950136198157975426083309791786183623077921432980989668762246850421532714910309285533009735496329650969242776837370345182375078917158717316630359704452741434008335839788780370989455769600078764006082507266915749309123956699696384112653586256456353912222413239576895072070901244357265845890379190936519178358460180718793908173771010891124667623698887846135740425118281348516465272814033586634186654843497400459210598153166396798935552811078734654206827704437724732701932118949114847254090515735432923796118340074239437026714661507502653297429374079433575125933669656943099858584420156207553758255863508468629579593544525238375410535006552501233508860297129710820263459492014769104347470548666486197520939111396157822842841166458705024244654058062112459339500451030538895551526092214226940733556359546596906680698678252493253961195449136878769750013761943445112287714135313111267775316303387522743753017140344049606488803717472731857401239324328656180961328121051012904517916467571864857310223073750744618760899413871882007219062825850548132526517103861713567840388008836602395898666432607817800712385143960819132206735407449060109210053422360896776554715053192587267331403635040727847005136569912079829309109561676959207607312070486646758455516067297780532669741854854108150791795703549335952952623068838467960400996389655960409714152718053759097054177147744187610859387146777483240735259032289403606586170403521688478237184529484351981778042841139490499971125357789709622296180654924545423177012952355208740744628815159294485483245098794463176226266099898843245061173839010206768437559824834735045234160670349836701934069470157414546141750704193793531832586092685990881565928746353651769538265474750660767326593698851869518841297340407814589205747745520849186814970419071260157421950726894254984886278956130769297671553258601426266087485935859899736641119844069683154160673286058751117681633601161749249957686604552619830735630222742957686653885065143808213373757942790925502140052164804856927474860109681246686691863417091491341899890930678136501574162653921008500643643882175736954014371208774766284712320795278365627684899360621735599491732600296241847360724316463835752086667853838426760871821303875811155774434807582879198167837394429882736988465236874861131473223623121470828488425681321081886389321013402958570776389032189915468099686378636560172036543925866737437038166840487805464929754613867100377259716997125595320529472810659507165586211872118821378842673024326492763759445566672848126935288362727370451292792031293279387532050389097235455395518832273346862541466287158183393410717810723568328813762138954673658882238376065568267230438945327685795749347207675941025689287956627640318191415196760995489892803620095994627892521226161657919049063039670433828863849584634983550110414677182772398941191463567054838234379680089510780894754333453712016358756906942819464042261645499474319055787398345959841890654546716708679909394882596504734082715644925468563557010245868705926129408721762437076912453188584227463383778752399539540930286064343377087370967851618167079979866168128845650250090706319126904512133383453247585104857557458966832951639592918507809603331791770732467847733548059980025006171913033318432592887168176713655642961026965608735646064937410943767593807320769531539681842269474786526569609207294963916514587011900451096862664453974524474940530369402822276996912411626820747300489989419642880732517257886361467185712547995709065899605638130825596224009997934024716460587308489799827950231475704615122720364545603187872486219348670643914540822917075382505888237377769151227100890998482427181146689250002884392859599677702797376459912612549542839684448708541583341110189361677525412167657358962503951010593500785034789129220900500778919014912858330785153807706924006971711792346094595369378401385772198829834491673005028988846907122354215525989532842116143205215618050759512437817791821792606419319349659700673314096943996592518881195416902087028515873024462679415460033636449890611793128001692641301359428904188409147262731446849248706381433574345561705632598203736453360853114181401097900299145937075841416169591103399290610841045114708476797392934954479985543408917277283695201659651185143918854046585371403336257705526823743317676629555642717348531932563167691530677369632571627246573629618145824324853557071565076452953603463723560320984663386675080326135669952470451695462971336182418156216085665737863527954807901397855603218627097082076913340047364929762000580312246178141032122107745296318757832083589405641258454498492604183510985222411374497645500713801418207116199647190456783749368882136271136966695813927427924877210953540031369020723536977885091917233154323202618838936566525680776666068037404370801572807233571387097040611464468448648580113772029713189006430390283522655896763520977559261137403967988510532732563708019199414488504269646171796261269348765867509706113929793056211916909712262243811702920115710209416560432735521341112593652160739917303602913001906661713401564031366653579365641460188384617824590543685556542045711011058331852634197892527774474301551030457463090917186917303240429614910176306802932909073517803379261555318778120237211079137225206965896526760236780277029544980011849001367211016467397060175482544778631984793251062270283708171980118237255405973348623660227963894076177701625547599401280804589891936873374235147594149445472019893145489642337603969670956503787245895929216058191758942858762324464121073614665062950015711787998579803805994467747687433327475267356442629685063477433848941767595910517010515202524073627422590525288847066322137772215685570972434434366748501801762150604793887673141184256435798953592956067675228493297196664677764530634521308550672342865941038387052396490037561087107610279941275188178538039351294268076991540649355081537320492232686457793005849774251221897616371081413620580175518660177769184897477745280862155658822193759482362516955211993662270959525026775211569020505313921211855486506485079583114175587506005589263660045872916439244099162265598016773298649110556021773654147851275605058782642419417051806987943333564749198365340567145432797699022669889604638633378437374708462713164799959233115198966939719504926732512441501165337092297799168077533954398421974692387407527774657183875864090945572112000901002853083131736183244719599963554265912917478301425898362486587499558178770078677872198631107653269550489826158952061979031009831661871953555798639592562989118599748202774829539377096395692086111144362333821902357122009926750751211627856883218687220691299595009161562391647003332223592335319686770357329078132917888782025017651119911435005330266170539582180411282801467061258605692490101878278335582719492872364777616848066167833843273814836837881066599311751208652223384482071468049140319905964039760479519030862602275678687250040703118970479305716774152463775363530084939011058633660124899245500812789623409157901268615358940397780063056446563531621447292624082866791964332994003684544672515466807769616988268765799012569873836188723839859133425920181707371103089141133014858637945003824742061390906539767012862947235087034965029351542352907850577490942544773139163591687306271338410914123507545718877441314969129008183487876964184290495420170414726201108482289514965902020590078634833083521802770954163264882852431530252438338490805698170155050307585367237990377889720838260380651031148086390613364335827938807002220971611703631364896487320443090635644189380003833687123419888596827372817945836373966527323678136321607155272116925327652685338322018243647545534820635419936021045171348534360268103679835577944056643316151485215804289752057586003753494877425625102877804640399943782831982205661768485661494750583333254705998686765856041637416518891386613419097833549446773032895819882461301632105210320379932799128622227364424454788903885904766323921902075665530963075438431592358904237762175165754045237421247356929883691235923115693583676472735962633396549137179786577647706305185925311581714739174047008983509199929233469037525932904976893682793509457199071033854217244073097608197502037358346455699238224331337342127620391113248141171280283905295177347695669004084091093329918481369214660026711547219762437695165869761337996531725887378165166433797033831943368687769675577049063459428427177256658663906391420694158204894147650400983649659403900997338180749165845368567823253808825971955165774000284479166802993588774875495006484238491057836322672284428229196577250498975496347019363757231182028796036258799324017694756128848892673274815019221436191963002172802221712292378205294148719871847087696805223883872508406361136109218539761662652839911254628084383115002861076561366783275225625700459556359852735514670742813585100207193315379132097232698833378674698181244755063899997055082268712368617727432732912435901659221455115504134879900742038998314015753756879231422432884379157690881782606176041689885553251357935147143633034457039811431733477070837125385546680306616865405684039776423945991600282017079970885217753344438353726484547785048241255694160500277587028138773005295454156119717176749761103267063755182475641115647754980513826027647949925429185917284706152067219881327443952831058873371777258184821297466192569755431804095262427379728445016282301355259704911142369277591729835227881465594693402613694128015362723126113368684961344007599521832870758758608279376504444161407304182569265122212794253259605608056387243694633225504394720313586990275707840814123647832784555706701459668425440592390464852574173564639932933605473751885626867954684824799234549386238482587058337276206610770269284366928874174673872325875078751536048881113683213501644314207262712338068905546565834203261787207716125828344797974852698269907602429024270589675387671298247684862309444826638145230797541349618064121665555732544773211074901917615721641928578556710960172234000152671007343887015255189440326611907723437926009668549853620187183864479622433081612681418722728274611399666425572058044460629710830222597176807176778298373029625566702311432604963808306341920598481327536539813687945828725585690076731578700814870633568174347185417119405100364624132312539192449327958780738064012207240555260831705982917166355173868798777297985587897891096346649029182146965904077985295004506523919178021442895973884440795426645230741604722274000058693845121338946750700050945301018246486272039787668189149252812628351063995207176443568491937602710949713761399823532919369240648314856454468455750113083318653237966781218310010136655812153387530896039099852886909433091823914473590780553147143419007569531443374159572081801503975967054965730956496623774917591115047752744476288212488903436841878952325338681152067360708509035065352215041838172098625849524170057743138570959195467137682205683385581518010704448680490052309311216143475733021342248517224161812297475637897701966091703421999705619605481387381597099682822096567708751952327016553844707462734356746519945577200519998304363957174034607344612468673352945546382100582056038751321047188433341034836618220251402850062560225350479056561554871940144051096180779433626499700810125425142986097581882976331684885497575080613488906294353214172672636213473369756223904283253150419717706203457205516845271847505336438635078567197916366776970316154716283854699042955186647943723148798309010014852823695026743396868175991270301464319685737152092477570749482943405268991545607425358454013884818413063506010609923363351916056952611577463468348962198560422677350260169340427679464354026029108112288367379310264262743100077033085050386819267951295383125836768982714910015106334769986265445282516987843958294275065861482821678235372048200396111530769900050140719628961824702393888647040562452118937614098318236564746181658784744784012258567547946381039693504933775339849059444000891134760039990563554455366274114832133612130130579030979791145593879959594141471102959800584231322337896244684657991184395927360721622191450861616416069847416805189336383744588466624408258814858887760345806371458574975350884062152879696947742415637794976659300541758274587602562758562295241823785854533226605004207148549359085566467571439328345513828853460427378149674855103215288291577278687903638000421992984101754851257970197319399431664172793945665598224236935370285322000029634656516885798685942932733720658702032884985333540861574309523251462092719622916322039983511268899606472532930690418282410353829720897192844518289135559371694317917013861262352472754742112623819820904833094596480480525008740865655318675609138331016007869294022225347407508146765961430891619005721205630750034800243027531888080052652578670734883375925854982364345221432443928388295606265729356648502195027595247568121369701123851990109545031381641925349156358632582952012958496087380711768083399555688869101074578976504936841978827042831526765274165077351044699782368611038271341824863264402800695672404184375643074964446387767643770530656360692682994768867600488271587682528928582309408151385078368036301763512943195360466925891836494476614902585710052634976434924404315677222380149668831920641774712955068526878767005847435484872246459378843087777993718420506732200349612149157217269554099329074487429232735037741403325280511120014823240588206014573135582230495849869391719260607164649213107789416971390040002783181762369474692723960213955367587606199015116832918979489123158963022803709116582993504395292782434414147936238078060061221950804862081449501941745109502466755302985104068643546798310970187662880610137864285706496999658803318832140721387029150960817124304362335406694393713489174081458777477912532725873593674300602942299447872729186062683373690215166696730845701097833726532757078395017658717768467648414855269562128729302415479281888547598569598942147829502821969527674971921682024299753279235826843589839852301583799167646967590449558627825333777644493784200518134656607692540728895923854650216517013509885570852233791246953269355327900654012932042804789010382206455253120375494135634807579430047033748400283481061716444788006265267129485156293578219348882163052193475647388951198975655738494072683624286679248265909591897424974844448083998500994768703149613477946662792494063070712114187481991728520174652091807923962495758504481733854219655219776946857026042256001104684245108462237710944410568524254058102421616051487796536915850953126514341495515203666102159218791060207481376261377111172057604988495042543284230518480399994117242870907642246713036457288614690551761658343461517865024581645985024102651151332932123681515308726402518614364963030376570504453911290949273327669611834773781963873608660673894292578327596065315208972786185855245850681103840361239542629737871488027549362859810442373394460814158112486823767355506380806415284857619920381306453562261522521513069110149354103145127777086167453059544795207190411979495541709195462747771469886621888941856888428002177461592531071740322485290390233381655571719510505159914774601569144020650166603567858102396331464495817024585744232413053912050173458934163471338589098281302800000315428723164337287645704538411484042439260915725501461465887033351649062475470127681730588863326837175052651007135612328131895262142502738416404117063788424626922259360065689121515684590611144088330290826667583127861828432564170826903474591338017125711907370395562542120699521992375936782128982670606013703474333971734165985609119271998503640256517716117428966156161497214991410197409711044051465375409665148133112534103294349673666984570930557219987806954889998215995693340059935856208359485236698177332369295200212495000951202322766491823864980851880057809750131752157244495194943446088158476352213738595238393721068211024932662131705757513776882891192574505261355443134255073206404140362863058522935521611548533659005187343756368533838655848542205427576481017725989039952048873304331447553816794727759585829215203041425454373985548653706050386251121522979344921639513164576220382826399743839459734049270985771565070639495808360006772513974818913830867653424112838607345826069516176270848858698063837447995789333938381763117862495206720694720551935420316168199155391969482472507562245413735360180917115867961354758916433891187418483682358816201195378645674761747506883657368547176130564626774522370045990470342652741906143703742797640612629883907748084950604717254528022422319606144926756522370356419473523415456860634110184628140399872887871442992654229572543349616195334562835848551093368467040134780193905602532173214578700333590224249095445391035468985985789047920995472685590589196496072218807791868995600250601018146112839696454958700854041241839248961863228786153601816697451014289713246944175923783479106968959393965200559843105050512259399375696072875390200186102475949991268834147998939154040537436257938751660421650992432413319641229435086731251052518284618132244368931799267053735919786028153057797926121623490704288822585611654383434434550510313411710061598746653703374311701802539952424495093402971626194148424706873735679812958561051011853852182018419908769927113266095386455608067797239219298406932786687447509462642051611780731780513337518044504303594217099857543898443230358973885641555095515755091209053285809222053701310001752912487130411211417511091037352294777200200533454173840210576016191691441541158341315180060813217631616343561549529843224907555627835956532094047861418943074551239446169930896509732174834156540435839574505315476836202477544573027538971600828067139782750898622461284503222940495807628530550755469064806505249999995800488168223168284984694990696282089952524376018759048477989778593369809041423582003220885620038125950356236612771914327828055950384613519352278336574935095982364892393494543842228571771641695786396225511759755415578737324688399762166917348318036398609864740997619459039748239213079049046681029329571399650721161553215989953586948357188153631651600970970812642518827404887476750977606006710075006868853365202548022029400350665780210798253189371979255211296079420202600575923077280549020197458124347512128088403487021349404421640942724345024546729943342796766056670516741324990853225779102979671354300077322790865759976084183408484066687930922902979682897050139877905977141538529119367612526536823688575455570916336051868508766974038276637880523303298388522845729892656543841351605937608281537448031088822674615228776349058794542716407638881597899037926791055586814871173370122785415885415114095347956385086464114442699802855407744994316390075423831373233177260250169919894392403974819821972983335261551426404024263732642608638482751109807094561796537956617798175459067065501245258693729697717496506825467499709046214815777566548537632409073442273615379339952542834751030309765281790132986724170674976629225449483312110048129339261573193253615783176795945594435480108494845850647330667299522890260254458259506486587461727705735558896584413519659159813269214468605957979402714411322951444705828764709161096521459056317638455044321209144267157850805833158873021520924843782486299095503018834338571429365505995568122756150729650366750832081724708874460215226120243084891819630715065504514322539485361223544084227871169026497111233837140546730344387823617270359500808820414141243296151125706017400763168679540342231357757912676393173923000770603805588025852154017770903462734449853133487431259409786820346105630724671008937889005083790783731781379462829199897642967575708582925165123232107725285585567929592307564691158831918778613694063283086987623239357133970038547335718545953738214623975066178426755133170796572755855040315979222667900563294483749149958375230210856403508396761544224305133534133158874723271308092633983764134834265512229700556184226927408259331981740823101149382433528627799468349382465295679055236385155873204591025693731402532745646193405544007211346548453594964564241736506332125639345060066133131823229486627339985338400767945819437660741159892146225843890323433011013970300431962093651439531587274653378010657307087429269270667146890850816391669468818994683212379751337247771029916446565784170088834469060331664901888222757996248307989899039576398427207751980782635652737580781246164730935702683874354392258050673896796114414924920350560075886925616502776396754949533396296081210927238838514264743134148470558701461759377343583405918538410052416335750781605929362288319372960283779302276348019633005170110799378432572089261780770156651827254705002639653472878401187451585764407279435548256438446662788521684896876069563175858397155027574305804573604302461558350726870108098304572332125531346366125492610422713216929328786196548147183048722629905042095522165675770918666817925347173811840554089395558066266133830620647319249727841479938464374299406211558565438939903557026781029621109228426780731535219759218288185201490205902863881439520967070122424853789609829884481264426723586931791472215716250092889937023686887104868739768696764294940219631844813818922748634203254487279338865394957268731611312589327571012815184891003160833431526683881179463608173530967123252428468489238841474259225789333755684699669970457324214968498350672430495588992540983401220876718803441394067320232863681259684066602157148133036691737071056425973960977614611653500675645150151118859153070527784064453911886884787236867810711173524505012767347634392795955573126696378108876916277653391774624213004339307243099619445642774602856307710494950853108597461514778286845124766701751425388865075317550809171079325184626621077906562826614930431478894243891270134592844358556763464935727754838285310507374864377166989335490531271344286268474116241117184230483703463764676430945308995193738291417307272125643191142103829362006595241369851860017890928289713673814202258808117815487477762793716976038357465406681780358697525267117679836144590402407822161677003774631748466145814383857006677621322990330803107796579628722494750850559221221524612376040822060420396700243750472889549363302824085352563390894255011843825150185997870322309037911866596460784734098506877948712754474253514620769879369190875656981016844255953964013589351849686504906744231970448528512486399295142547716040179416866257831715864482709764787473477476761312852094699344053281263600557270776665853457501235014458415734028365142717415697084426042503397777938237651138056858949710923616163767989624530722753347255653352240621551695110245259317683477922945452396932326279606367429131267666186133069624406660908123395053578662275641993876019490681916687934375543472295269584448775917120033371374672482356331132220785321115403140185584465704274982653411763883286263706127879660467476654910009821487241383875752141552616345650488289139485851565309219949283144464217026647686660563420873392657054030066392856657201161414922712498170417060696117113326003507564768761796465510202999184543250950229382933471060696760419090622387697165441277323121376650023997677423048338530732399267937908949581740466497020120691749225833984732945358984581955238600408252765442096153830037439564370603270789400046480999556093569258660459765487120723328682254936014691201264621417291403948168193058122754244433303001735847123707735313502590566693210993165301705125645262808822416378222130796222906300072041113318281957519270480941476043940055085610982479442460236415116642121790984769562556014319396339569837037971958793182841052735462366681914060842051758153072926890999251413023119887573563232976322101241549378666826905704718842935174314059968296447535673023752034198834570550588138293845803853970733381170823160043427478348488251123512323249498083615865204383519882460236437289869377084684019257807387359479458253370053008198457026458809487192826489048531216610822389230796535292264701586832676981388902586553210189366699979199943008860131607079102763478365187329788873402583658393811197604097861010694740397088828471413013505331699532377474170798714207674383570539271338353934057875191141269352045401495199576500628259125539316261887067747740827868879576346496588562554797185331808097588876596984728863253645373430890190422697988209187567686077476546515818831641123663743165402381548675992857891439809360117755142754361466629501369162864620629426860496780522600559380288116979334284998533276584491335518096660312992507081162542134775959246230064448341859884051607239498361797330112386564097122776759920340375248226468650016188010621152855827595145067855601216135054849974797755425166733844327423734072243468877023670062786770273005556637577720531017208275197037356612405444150983777949370588471595057434052768231061406291185610524706800741217137457391468909964813096502937642847526925453818929575095861095735694399010620947046609368750688667943455368297453997358421301940886464598737123611364659630712769821950479638236653550656675526445193605562771000253987223666732397456353473609458768379933584274687283438254883717783294474684137443085753003643999959063585053456816505865073423782186295236422973966880311575595401262508304742530195488298772798465278625789924740603520767779710909802930162686588266517793209908222514888514005984118262956388595352198395661345349357849474420061919575388986249247622192684053818859399646578640449650676438700554730665865162488876331929146381557189883342875841052282721505544459988004463756539777614759108866075921899417047776195629361462351403269995591640721389905151179916678058840488266511306649013501294058808408075592272548020396103084247746378132678297591056805715984933387459247643291329086998670206287600275999731027497909200328855289838453963483054989307179285794766111501698105596678121668635784428584343029626732057859228375779746814953418399293343144998226095708113316198293665996121820446992710989669363381491406927990469468824430240758024742776457907905607700325052337255253343867538900745569624261276997477277680473685579088330347678357093524187160749926741504654690390824731097681400186100106378745292052772881455294859151506456134116620608022102248667849408274693189144957657725692374384358236737937108427273909069326108373964215264599541326428533434827388940741687073502722919182652011934453480612782804922391159982886738754930047448137745930330646190964548812795201503936265795936339920617904113139724626016988190632262731014516539959479197626423263644132307140144223166884633117290589877836593036760598266652646206707989496455161549120060201683241281982904264395368363167645666328187259893518471566763456715975767634183221109169729570827497530998307627638567334948298104063175464133181683428338452615776946807851793186966683372856240379238333854196742113118585309573940187852339626493365373410279022004066920131205193304783333093912116290059496849144235838591889715766559500656826205642914065824288371390236793823144935851570028640591819914821079189075215348094718880975241824978817498996555516721429413186117421379496401706218135492562859295263068056892845528457280868071481369485338523220899756118730242068882893225089400972364993988519738166457540107840390791777263632052469599563333691015979441069126155555151839015940237248724888934145419057482319894431355603068162242981789970801207509070888412832969516935223125813562957226060435058464549880381361254912017139346495602333976833595135047048579625644110660370501952396605699180072533848098459106647598553335913041807795184214357938327872934906266617667189516863159382076716073113681592244277198215517488756437045030954911617633473789609806078199311085839701345743463867315571947394594119228899317430682762647881822570260246297376796251304099815497376211462729513473457791968617307947881578605904670026388686662537325774433578911582085255673642000245414096830467361710693554226407595448962974538870851462815514205114245073452207337280258768415800836974332185527930197183191191809320014706669743609465025355852623371832582277571499404672962199560521650065597212028636716722145231442928412617017176191404968395963432099810297067532600562236870486418063968655920108303710514623927371092630878673433226031220207302378885202147052103521016804692803458998285138359218279896844095123929140722252349570529048356524179146890176084770802998112145661685440503649733810589162299096717615142732034251611308290969136097616717303401678499345169429310262029950558586371629336441503062847335003158905176355210577231041829386393986582251638239591166625834698933369462562231703609810743364767249856839798359656827041865130533498396320675919291508840192790338222955249359857204658998225207631315713024982528505795037470885210953384723417382557557365975176468995642213246253790589272356786411473464972411411886867638059891515505541932693266860601238838846671972372244827005894007558042096513451210322374191956045929872217059635492107641861699160162395230092548286835736244072129495791540159946126628534781909779882124476638178156241713629946416108810035113815394436492169926977351866354261656037653264849822092023273311463730083998557402619479707754579731782346540370755265427915888829262871224256863363666586382507918640041435464273415649991631762316859990683789098704714675520072967363170132678588912989392604833721567988154542938953710213219341466690447785807512307868435100061482504526430821571267540246988871450794549198786909552148973818413571088504740254942912993759635867753736358217941612725137271269821726331948707812497058645774507780390568773807530707826686181916253964316142577928540464896526933680116468112357534676393918177497711150317360885217474932428792415700522546370724168017400200589734161688841915302441364644754166607388591115825372384907921760651383967437281950233864010521442244259183185172337698393453418721948316320423631191628132630096501063547564771912025459260607660903853604667810778795978946377544602770851664598880176767693364045764169782282401646927162109210884850982780819866041475410330786297513696449550607801256039159004468032209187174550898261300167051936938053001163361202837726930635657774321369921287065703107941156290641976965053545983305319569843723974157780684813609126697475440837547601767900360991849004860228844526564843441557616885655086543238473968259743060957863014068367390184407596097523246960083417674749928618618237465184780392777392839879994377941978668243457308776441415211905201835402369112812585212439708962728760388457797532897731777592472258432368778615177248423047602457544589885002264476601648063397196380735557944809643690996320888232468887736118347343431979004231114154199412379064505847437425177908796501546208956477826480358238405217013291957496584275643220666654308503064921976269901694572012805239865527621518489285682370669421488749334724385813399154217260179603739346164769410108113639656096813067223468268335811278507949133067436355292637970485311136534781445768874812118082706612318458266916182748825944430858802839236278055154030742186780300306280557093116301381853515819800846994692923454322447661838979297697478598658508495169951464655711465718203655479939188184355258564187021170898459122869579296665552885803005886139958887117811138008857307545973410353712084218852160869566759202884254830329261021763754641910839923585045823820884017006655938980225841471254382988129119856082703549396011194967079102750346458009380261681627460130350630299878738510923581145391003441380575133905869383025946216564596012363541751542448501936415927912490659074569931092002908189905889293904180519935794800065617056253250059105068649635207448669551385450008561743282138212877599989556817227188478217457672428387490998237514209139550295655374257191351407956580121030101230044616229496081167262240307017685163725325990749261925797140284510404002640697495816432479691909206335746452955622781744406606157016431389199390683623970704772028387284151369084591958678162506698965838274897374004854553685954913795144889353289509867998727064748518514182624255237834988877007695712361136300577233701538111980916694709514475168780223659084519132621120513700337792023457882675246979560581927550915336406377191127739760754883596751061479094512805807225963226442594683321897833061298215055411694248847062536279374728876020282442766269192996512200021886572846245965032507387454527504210223389069241967431116998369604525566669933323824584667007393016632040407456907357847364650279732280853110818270348931891912464460088186112528355715573443780227199732067942028218079328703950455690109424321704359309335825837797395454982252863138889951365580294409870837813027994197637491527287012693457175191267827200600839975587622609787727354672705722327411537999899458641717088028973759957858934289592752186191755793803830205621121318997234176827496194606888411563411769468270302966215610268963116484544795941330877543973166830987064329340980096048707917818366213460079860131266860868413459621751604396281314031862736474432870917506833155369491011811897832077080115809821436502548129428453317961438171641346078313858054766152714689646733053942206568586331972608281981514909289488393596293768393490040082766863857346367842936036861865930169295493079267055606958829530753028902960651697830667012288240523628155067940852650296484072318096677121483196812789626668229426039986280908165221379031268380099449781812902804331419204394616469102699975963409023040768574745501755988906108685885701011227593211144555078264352458328561724163879551233480494585525970380009680951220141748369268538754924388462352660232892133638439333648830571435467932348539714114324591583604529343485127783892221546503759780497657138882677197142183006650902257460280731726861485759930723444377234903716454298624641325156440341030987985757474086737055469241272844676458592168091771233725427297553498136160282877168432771097238739322101525890624176707516244749969353518874835201092085679155426528259656135538105081359784498408006527168183816385724450344855097783760870144227817945539214030832626802841775042160200422169077347093973403803355545867860837111674490203242945978676370932000993678714939242696543412030150829472049750281998157646369329941666941305529886302836852981096631630360195250980796460682881482128687800982827897864008426443815135109552460557723178863842615552468174529564057237381968771623121046962365302940846728679069263038044889296529722433325881333243338314591387926843919391854772780310732523146485034798122943126802821675918310301725506728662449301155110912181745433229532658103894379686539819145932558702864306885008601172895537610290720736606157132114857073026829205293691683259269860524149558665058276721026337735178863577507636235967400717986624005113172327112187959100599809815763416839786320168903665931872188631424760014044480510217306496818686937425646888449390760312572579150081051894148390822414628731861350288551906798263300502985316902321232780597007689752129048414904145087293626987666726891149487735349227840243451703754945659712556917129418875239569524564499267029523711655789390014783067700761816289807402677871008458508576747869172272376699024377110034708377524610977261211197909839975671556845730897982691769187555167630418805676451524236674055986818128347512147122030892561517820852265483824741975833110721521567773416458216739451835342128463029163538511308361278551561918390417498576787880144346859576510299869810446480576027456154831796136900926911714975847652998495742252698574247453378067009776339848293917871839968270340544831341081375875202002921233236375494930478111307579893478048557527769543421224309267763153885781158661160218311995790420099439405298074262328317100244619384675318180177444631456198807499081107778405552596500690489498705977865699567369415377817505608713755684978026515325416450818777913146571652614275590888465075788039820018370593322979479993942400593311777847741742353746792291459621522213744586627517801391014220864539789689091070925846894809405738423384159836641653679972632705521749697929718374283151014632748695462094724959677649848956040044571544914490310187846311793210032989418695434221479440138981222433706482022263503976584786654813600494659577411217185138614061458109127964056903300282021585206049159300853517109130566151912648482328288120584717961140893494784940846886515691012637276388698691461353578635473252906132276812715994202601904006762923351260415547993356795925246067890301883936123896877509710099168373409068103553278055122670930969282015058614932589856178482516694144605247649823406954713809347799087162730470583683351724264214721756799343395040746728437616655935117182647179233175536823907176948654221737163501604142566673284143898141414609970703683022347499224208339189538234809939508652678095025801760282918366285738721912426481779385554764924505100899739782605358852391502169379789338390991305495261024312324497390199823329995920888698356334108662741626073374907462363307456722372156639265840169086437849979196373915381093782025067642023726796709224648041927146672796609515320679651979997812551975458401810344472490825452269584204904454370030510361238270342415609518442312142341791676487832647793162353375935936089115516995922775388842894267132127817346660758787032231237825258512024879084074980407092859832791868597246383743864176363091885924863192797372881662116138092641544730272751120130438124745608856710879816793253951240209959817175283673287169074865044012731025237612991552807982410178373274288154632298218240581318282523867112615089080684903898506328711256236044832988780764513425572588569290285863627993651236455442712896175346492702525929093113726439053380181076067855462330424924997235903017535257497025019830749010373693714875360328046652112296905119794637395792279854293501433692596840804453729388891571123326246324756572533192521385006615767449173337257929881056938989390157337014736840225919269286262085450568056379691800328284309479704715664306604991409243854352966087917378996542098780611272841002115608736239224566164621137751040990250992445095311044012053784261043185698692843116847996281848589850436098879547942605806731597231568921821156045104571382761703470624286867442221747550000067653540962550852244929385154096146829761244267910028933464666180831755454560891192771264150071114402387924634994845189968788368355231661511892073586290859281952415219581302813580274739745695630678677744787768615594551000857033210591094130118312296847585324929075649662792069971556394048113536488016656981319162692724530871184263166356393830632201165861564905149111557453570345815120528015404257834058687972257501573653602416079107340404205598408538584843845951393268937333617682685935026149211753976650457668006113858735943312758274346270430709526180261731970004806713514322531312437446753741261946011241937943798127245766370685517444596200931815294231944429944713459468865583703230256346210521918785955773136187885003925041774059516894375997679497284145377124598687483105833466042623698051663629555479771127321779007460945087690615949759795113884228978093091791341395456793846566608157685928949993721822531927422501406740193634737394752909869454296389731149600197108306579815452242382377154152054022978704228045521129851889898589757995272812967057626033168224062624913237131334001897221753047140625021495658133440888620647870713216444447514981519118481382886508103961106911690659295890785023095287809904859080124609315512809359969545150809908695607178595316963137594703128342323368093431419281739175612959254690958419773546073696740980973097651817262958575895259017229249031392911891870108632845310610885822034850798997016634589282297403685160011756673711665622712833305720148779451946535754057479813581567631569282324997711167950718517726946871272893756507341359534877979210349062819130887444721975997083830993116838625265262558517686037000255546595683819052024388427673366298234807760560869939674957873290500899005994993630604468416654571426901663833095115105523264749441933504799251613407712069205778633190422900682548023033059546254540474618893895077695450088495765123451397450785687528734641458398225634734825701020605029892973779084010018010158509948866628024591559503572639628887561964220668904876651098260355122319542926655510135169174048716286994587474373773112954303826828021805382020344763969946355978740976652328002210306273506598745165840661925840423939244472537326861695811684251373025965292875515298103072857725037623657212757687684364648750837085631587937497739624631041264442866757814243142484297491265595171007694746335752488418291497994528370204006842449232981943134166558885666647895302083776061938530272346789159705695000870635707438350831625360977052263578488329793052929392314090393268491547301378557496589621060509446640241046732402435813370182562853254613909239940838826123840360345054584363949244707748599165792951369695201659337884757204425760513748597650508106529584048030147670761385978549137078525201280294378747215831764622689477586311071716806649031711109195586892860667687075822468288906852483044381250175048496907303435462230643274534729890869904482651756858761076737836189981387700150825620088431169986291961774551615429615524774855306243512821271710700112039499679242752127905209595915488123174769431521628140739246522774525971221100618777633469922700112661728321871726967094270437718441454528001614802671100244543960452000391945293932854477750591165362346558700832794650751494195464556860663636275135631993793107668712615830534504516957885040356616118280022839992451599469119162134195620505928219022516063863135022358701526947180354605234064410883303901745150729720900076026411998405674541953995293346641717827497611001306815271815196954004676938656787240205116038678681966108122785140233157733997294088664108330054639984975721946125114098041639922065414788640105545960529011292589918158987124513887071802689897544626148167479655982706128222058811719931494196917309517304410195148802539108459325078040219858221443109456479077960148747026025185339466251273732741063601615735619672575193438156737667180935126276068287059726053119919096620906812120819915262898779417159693169939223448066128092438254256444365116016931271445650888695701298538078992501094760228020600303036599914013090915531579897850501906072121609883858548922418544740193322952399442149080152431426035139138313685242909909946740462439163449649630866809750784993613940897660915272583900719537400288439071991357482405525328905662427800681485951534822404951986791791214572359181271153037799534948438907171050021059229245572457505563590119588919620444013239558002366077645724975879122123398772763888980515808698427068139833027672121244801528493743344342909409686302705193388740268650953113700987989757125413645482718523308135753267797538557365695062999594795897960533714829325997044611465676115860937785783244492597040600499238551609271196482653590943411953909949257572599143765462717324176001068118943914052599749933361328792006124841300931286928279073519113407212144526854470880581854783812857829070997276442008116849196158369498136774511892275108408320783127668877449639860235820339794032851689149326718063938257838464996383323265129109152284312984903406731584160194343042919578788332378082999330268388897536249086047996636852770413210782235000797904450554498223235525588516651211769054608422468783232799517672612213291820049864406245912789633128156018447612402958943083861651154614451784580643234254431898521383340510148495728844497311786740375432044954450011877918037803545777268292988422143764242743608004925597150015228511552360288830897587082339204195450973819070442153164089908895539383928838141280411766298793956677184869401712768631115321371202233437837756977840297980151244055223273413886334003383235645057163809283193991577136261738625343332418585999969089938757797981640998828925011270429834704990024921738420220824922273825195645582418931229461613029364988109452417566251523018158987881695287102797959109080251483428569298250972800908928743771426955774180560696723270519253075042059756661463430756926735096131306891711439126500587505938341981202165734356625626102735277446444800532601778393842668454126676928893783706584290050365901803418918654661016697670252945577483457110548129278724348088330659466516230099246358927955645218243751609181828997597565023940708804090363523752402149296295243096911586499332735267778914895174777525458370427247051036967449383279597639615163634373115216699792719182933804352331661219642510824423684536866218442733937929250846681588602880854631247631717410289333340301948323066491929373801110284723495436564431509390196398628918025784803461353036605356393197906485742175786306217556200060914172539606408988086230831094660233489848141273692256743581760753947323177355850257038156164091084956137185806210628528873963956204749137794118235824084775600920379730251954500661907331938352408120850475861496373271319893600484874749400432254162628878546088343526263845621081638770692979498221990292958043691080110114706357500781717332006713239022189040016681173770468895069298783803708422283671007890202092498301509519152106532223147356776735037886313171497735718541611528993078680584087345326481805803819231454844781673951455395356088067001953986704782607869425219404125106618373723120056326712197690963009464547982871154049049795803453187957539319720471925058578242869301714986129853740863806424491166091733008473319019135061859186311702420768222744553486026818259073498000845107685420531393974415326892957625401229271486964181365874383400772505458990062716855693806413877003168217603318014897824379429943210225544317154424955724638367949042898463016024149809239798559294601697584205380536528317447400209555423023366585309774709830202418730667655066110874660214435927112529695560384055036793343093134340992335120063657980254544093536070794666747866452121635662963803039704105024577242256967417316834606242675084181359011101023712475408358701075984355779655003121323406301466924590922358429911301344274842808582628943748582111145196518691267835207140394561861973212521232844846969520562897651019680885804294043599918768686902731683417565842761932392092519879968092529856516320167482998531411751810662312538496937988135207052667044758382790471063252407920805146980793148393689906327901372022073365615051642741431235108485604603690535499160420649807473680663051828045199967878333935072677165922411384768992414444212130407665682278393635362504575796602895322405044226557256435056626900741325227545915226521339375293722130110124911945307036859875918167712464054597890894291390249360497655529157982047164733996774003521621601933732538549363329959661959857539233667758364995474710031788291501998502348814848171240960142202354043619767581968839570434045505327869080948648963882011124022028488932031376112642050234515865613203552852633815803167735683295101486344088235492961676617471345347973676813273958414369427692756818658124473413486192126327537200502333755104870510864214857586998365273225370229412169511302256784487416048057377336115007939080743280343448592096621431052882974938013153500647866530465122997292282741936552654577187615528010012579279375238865952653429161804426772476197389036528138761314162472450288507355569968094374351056813967822002135258134977241660311692516754256721017066807646336943440381396634114542144791836833282438308235684881832325839881012697501769930929705144972801350626159973219805441942116770633599409585308392017736831323030673488890215609315015342236224500729467319761182638583426313625654011243359919356964725521924734210227082911803040225742716809963622506277557549597494862941302022302569970738927681283837994325749651353408695295861465385546041844281677654657901646758919165340183004403630085923492668801525044232854801838504225460444682907587001986243479792348010088361484958594034880011376800930619851042412012238123572315788625851413134491750845843655972704744581431155275153223202300062668063973981348459850929154120103986847044321805696241066594310549754521836278322488615923881222799874683655921527174407037072853219821371470705190814659208396608927176948486292219033869154831763534287643853088859709391557504623411236246854873806950215147917534863747509270357448473464416549379254974816413210581916206877269587361529650076089871936250067830722010506262605376942391837355702387006770351852145143204411204395706810174006883605748403226292098378247451133023269545631754379631032372614306154362413102214613917909345989744075082632843813731751757197402458487247922533965927716835646656187532454538172011573562118564835355984065725983679158860386005579675685361805691239965442697305876596683798845425473828758881755241181254727172891861350271965893348068109689034134138800214024474342827589971473363176107883360525012117203609035754217588191424530440735063030275923416437937193909738007919259126773091286341950424890012771903907776071900496582173261300137244991099626045458440243409408324944226876799690736004331821543354065895046955404855688495401919955426304312252159697393563843365482224906290786202960356671025815882004939567483298100846102348921563202061831403417889251975186414192540527517099887195539404502802399102373499519362851761383293423155189490826690065166325297274227914670108259903851636979802677934015107877502976873871590629718361052872549848202249574514919641450274879862472826547235076521010772590422462026012893249767759836073131734076655239758200719002271687592071729284564871207764157295121976436266930923658388247172687188264245193113698873841972229795950984365193218035743693832591460274404360184445825939972737888688016754645430782579655475123974656204176378856164918760333952616631932183357705354254050542051215562368399195415162272817681156190738700155140750734459130360779951396977369055125832298628170341708869346943792957142672306872667528385737525619416768075275158925295796417258654157986485145561278028886663602408513241235121416132472259686728361255477230461303955412210828905968239838092732962704198535512721570380579838829023459747199106163357091628399941787046497474734565749845753244826894091199182474646812593526920981679819033277771432395489303429679484871029057428890851511609531206128975479200204553704137519699869337778532175473105735471740459377724439229107591343549599987701689272063859839435481436347851358695979349368818939551199883197132290090184785549792439104278658480585029840602631522148242632854968711421743522680758968085271985023882209301972076783047514157405173369453557314861981536011391134932062017310973002917981200760518488485538551528391253569865534336182715758101463932760390951606335558537709481213793916850300684925574172817986890613793490897857929179528856159958827862524085845040247957101002862014595832866401283850274030419459938136694014821701124810790558413055764505636459485008509083332096887411246020167645065940056243045904493987452301536864281155351594109609612678152892431280386398480718156117013653045491691874029807928468924558074432709524833173503920520233424913866550983961074051392114967516627324751532296254009603266023325750087761194166820481825179295000094101743762146293504258651847271910347301732683908653231437379973933679654362378005492936172835944510123579963599235745066262736482529205722692467663447469027721101139496085545633084118411195031566438877245098254915917582998056581337661482313747925040446259353030396414790494873815744163982430993936673373076144437041430164612742650548402389798453410713161377075537008182257658219547707685739986624451588295773602896141672513095133272806740467462682491154460806242443922484988685619275037355717620776713631678694012971405717207880889739462787122859697535269694459957936530339420259761460450721542787319848662960445647163562193951218086533710424266036581120587168330624544167426598254970392409889342601988275095463653867339078325848365097965240855011918172824455084084422219374520293247737533635757387320171183748637916925332697928055983028151981873260696509209971805638092287231814290673072585558866450271600719558419961997253120521541452454765339466762177864550000622072595847751434531557958335235850989554947942639775140400808096163848221138451530683057047839633336819326988700705238246930592902841260324564033353365743415599907123968144179665435308865083422933479841192504939894941015336653086736694596912570504559814822420854138043499619320673957924346544158774942498670735553221106740504508860583511965006072920400885738563693936660058846830827765588270026751836052580572391579340669465233417773022461186306848415897561132311402433424405901784225666449857085831229455523315102636446198435847959476396977287566181141095318659762600470911659974566279523656084534468688353204199384374217578421878055236099132976432119722403945513996541551870864880597622886203336116430973396564376827834993831147215413694431024765656772577085177452983092245691656605836506628050291394531441424152476931529601272185200148808031114488038524411678408665784194551458296124278061051403050119117322716002462331134359902627223229856203018734208964971379821399203544197976059943187342121238287837911929644548672252103350197993317999642831076488537779190703108538518760433183177146096186189556615785721178924873666550350471469875694211123387351377111649560668331093559502436559256531508623724699127549113554867269552534786212293162526998440029664460701757627849066684299884465145086800724087272853663416722171021679645366287252692925475617025587065286376628726387231793445722787787996208638805573696800435623563662764495060558965497472852914292218938227566873447672356911219853138842275112853875874223109063211203050323946156047188915307719415257513768644262933132625363595681306198596108972883488497756397515967325447673002361129889579694316681258859412285621511899244455552196753153721124345352057839138184535192040940629044805663560049025706768822061737494093615354536902313750338507470829433062411308627315509298312114716457356540982963896350327353031514913474258796575403710526138316785601954466793957314771185905650356145173720101768297642073700307062536541921039537548404901725672555280482032211658460586854205819385807938142957282182770720153077916769915965320814646218596948638133823491724192329305617766824367773676502114649439496914005012742168663555243217069527091380744441566855100083836379075684115014090681796380471425941717322775645566643245668261661745937902357961790118133639391878040950372320457896087724579035861956438609409613696142794601232291081287278389187306618803511918383081453335079655293264495358343839037725983074933424071015340338353347145016270494212154053916760044811543543159455117293554641825187031057662512552560853824300257481010247814680837497593067503535107369408314796973080650571081555269512851535397476580916565047887375981878856697600444411928931581361874581637352848707094415122410236452438253602616458896174415227798874127769829041940258432016762889099899895983332875091993368924496794289598844604855474431144626102239753602290434011671583749495751460482324828447243389768904528344874016943686132980640130320423276194550312086671372216268834458672221553469313302684633238425543538198844956404557378859343503761379802458682644774794085898672519525811433936262601627688141379806632902416041156350614169745599417396692354264714646785412620589321193307730640961084836051253554041862545211349994826310340303850042917739200818492514676015312945611150520201695003329983110705977279044397951836464914821855800622381365819396285467728099395491644787437919435139463117245542913319941843149569102906349902052409189055953954454375365464195668979596807831989484660854277569320867975454420407031754217934401395427458192513425405642719454612830304962210177793754839157715065409420398912728251703170869317511575288957330523537170477240682093105060434928707616939640113789276977013395892986824165481691590723594347165289827221391124650852109761868530541933643686473389456933191556085947685457093686234585777022746469863818980341196462815479725270991525938470585453805865765786552101248338113190265435811756580787663106840014844974521284481966900207234214784826912064240721613369802825869566335815395811694460878821448957998155850976233828460977619372866337372826081035514694365223507921053658617314038879489365901567583113636012107181831624436578228183142542107769030304782117322496486569541453051565124098449026032129342872832654956135103616861496681794674567928152533687711836862497905558947222172705168199524368575507025917749481231808104078786115437589977332990181631959203798762355743235683687478510853149734751047123440196135170760149555615617531591101371787526816941264130017146911853997031485200179766390421378670367276269673368831524669311811339381248287769449134891514245457535061345948365776660696768325258933976247019470434892515497348186016216318928740026070442786697346522353550788146429207748152456012319492510951116544981332563886560444659536327640406742169949742228422185608332462344091584952219781195292041000067585724454908890149848287216739918236057823413065653317403862469856462896904692159125208606935661259530151941547360414238096875622571678879766800654152625616347213052908499736388544830884840969966248008933260422152283074136721364983471244384852320856839866613054241378602402159943238075177579563479091156635965401396770577231909868802243832360644085415781374139929927479689685458677518478529705927875250762398351806142093424632587646210835095688673996943777806283293196116796502078205603662884932768653945542070920226772382471822117432799277992058785748900197902203612621728779558355263696326567609042182203316794660938937682196194746334799494881791840797290134067954122832224567926640319733064326961260195740352711701144372527810541964071659723871785906789993370179288472078153890364175719018207091955150151914204705250916138281255669990385872737504660254566804784770374394366956935692533054415920483075073552289309087172337990578375856297341099027364136477284729583676600306488946234184530935830933596691476864079449239698162029903629709130687576892577501144454381385117233139931513329781340141003487796741627586814924405735886057433942942411782266189209820979266424400151235962686882718040065640455442208511984933731343039588997427436476256474844226411503141984184091052305748259252961656938914918465779511564687321907308496337466395026595549183400621113609495881881747916746755232001455551679282349056495304937940953507216115882341237402473295554516432705502704045629141768614374932554093978348709138203311734665079558331810136324984238198746646874416490925889537318607943999069750199278674999500282025342074780741632069688257022636172847961627550302581684351745662622146235337988758813804149748348503471098584613066555429811725438835358825103339109384593386031883957671142374329906587227872502857225448696330623334207998192279767780223304108237659236165335795582939630178321848992832876332740945746069050470121807708485595125461737347532033283059181629260604524929074804674900236015555509066880078872614885642357416346878156627974161804457574792260361597249065935731545772069728993640240003145785949123825457478747202292541290579111707800726421163578726353094662932157888383491791740433856702275774886588126044257662306567059592183022217350939251786428399029364006228307472573808383981915655655295153284013053789101287496552590800894245783741460716227225520044289067233914938074221477386132379651651687181529978827229738511174603133472557028592922256594663465620806231712548610764101789411352925576197667514365163395402811510127983396207840073656489306787473801096263711245322459497320646129075290749871904758533599738137756957945443745129419361618185984309201125736363417084467085569789987020435878366187779513943500127733732553169742303033437386399087549767106471585472863405583450536398284136223821088167164185895120706907571584838869796846224562435956846170858454236381250663061223884695858453153734197270472096156965962494422908374314678584427657216966134809954904408053896351250068206286427471053272483922645535660552282612831605135774869536094502825279279616650289040264225694614575706453847708732408581781547982866176335414692219338184483861387627801542804145050885022292686639702162489220008026528432346329206085237460776900983892354734523963604622382380677254695706192587191409387946340283460668646814859294690948826045272972390344263728656543424084636884648391639813758952016855401521350648268055101474135714751283135779147593715883349016278857206387647913465993073869680592693802703268115042324590299864932783128732198518546400369946985044098652153737233740133247917335180951232153831815352413834503531421032891941137259268575222773700704702417183496373305528368262457275457918792953137653349726548810078687184806640719056484326500328545090753095639812150874978103982986721710955493741034951750629435158074542017858725047465674885173348354638226783716194189714751804901031240344692570462788695558136931672070682653515094861409108646404138264167799551329590652246479562404666252004401063636586297275360888281293908886529754338776999539090718609769914268876921388391485855480419634974048092370191602978729747092457571640634102397184331225190133463298685393410079730372702899394502493631397786703894889905837754834022825676241152217230621128718555451137110216422716723370163535487091708906511448539215000803457115410735379280304586217654475815870980340463109240743768247890495814329613853852300744868559727420210557155555385309961136585992540281082395489558094431847139007874568480510861434955109993213988991312532785573061619993583205018507406419586016086911214864596479680766434459021980637768317979348576965609927485668823340238545828606888456108590627496610080975390197145635295297455325699470001538480837210968986783593723271780401024662207532093217282551882763863899394211917137806564903946142597908181983966241792880181012849488621257265997957980716609762482617642921802728585693803574304442288993638005417130180496722125347227114569583288611911234600488351331629034485146464432734922535863787993111892088200828417622558179277989290067151088113861911602811460237794059653453516498443695394758425628578298145146015194621763742697250771529371968193256790091265021227498129591094986220223902280580508492516045236989137501995606720211605668925244837469119463718977110041708868205520621334520670009626806906599675484121495601598072994144304624795754898897351781373696484417221930026697367577621719441313957629912595610914367818651518433272408718804453612155863749731647000659717009181722873155540789889755348351595980454840613589659055741936413094279730883685103507272248148419706245473106299133893833649429316960866573500001471584630785279113442413197595261207477972062388966863961972003719311181030998784451879004754557697851320405016648289925945942067492655805043550992465047722813712246722019741035249383423380912782357686006040715532419393515241598983279965073102359535537646970899736091248722787168958615861045560482609221978202299144518192840658017459626654575556202998478103489315865320586394968592317369444558436326374331958933735130993937144602590539062748039896939098744121871382591381394447827950220336550876434222673517753631171539421444400008073318848327201178078782925245594209760557637006029917655174857106933368833500169077152503844986284573230196273289526830671055535489305679915030431946837397245803255816090781149319066471818232260846848476891627278589037085825177534925969761902717085801210169750760461936386463249157688479410143915427834518268933264299552910486004372922702971875372677688859853737383771571535557949568549890093017735071320715673282689228797367134019329079533039921142549700144488380974073950285926172416419604699891678257779907568175021778571683543242448230480679475884220377441267021722869780143392739022436903495294165524355821203767474582966538776118159821269434355735457768953735751467445274704922082316292063374328287986354404684048576429232694949105285677466497047337927163763812572962880807973073564311772309257365440167203835720641457687459197518595614437921268730243251336438560878508226544052480874226064657716436760093453342632009935398685581623844001884084348076296849434451623243434317116270109593131816041056348124842261916523400511269858295229715739158536784683566560862134446745495411248937985018888713728325982120873931062062381279243882953510155479895531145384440001446945467110105314197448338994727039922537656902137146503027814227719326246455861413184765715084762964094593867754112522545133465393514960114466634728188920335221787209251344857611816628218479768836012196816683383516636345426328661164377768170888199899184371367002564564461231823700697933286756935291727104827181355473736413786473485958218041693021296956449346129394476830712141117790129278170730314733272906964661234375058625105511167178251759108534692150523945605676740445829938129604304532775483833967003508729372281934453247376379243409594612082284449430425534208586612423108231725965259314319614013551552758774002593351933230637372004123247812753734049760197358960298863825008912701491074663621841667097153252752167382077235517732969762310005703998432575964132642964860896498105283692415087340281012511609578049455277048577267347371314909802977535918939683973992857841331996375168138954480266939292872578658165155510610399500768531897006212824197598736590511832299534865911677575461754659771686686868410222291700825996343173298724510252193873064611084496649592885472126034837894293341194694077525007104846485250903282453998939416342149392453133173652732074191952448798464463675221521035459677431235043460399403782547972683558365810406563374645723351096830175700844402971674201468496643918544089180601899196754367623323376951985553062983303050525402011182434586506853654225225396889019355758082386800025639661356059505961868903643188827742990556437234866348375437439071932541607388306166859533195585465992642228044678320979061652446631495739182972737462825831757779538105702127292776471565582783549728422122092536908558982218605253926381566827866774936534244360572910369267928677386533570306446617008606528024024306000582287748911612281181944057310774800644452897605652156829917634250102104973058337405600192252628043020565551737587660342523453695080017137438788661361055258154022775620364368407033098217644450311094782680831550179713368962882926920304822122948466944322720718288960997013398535785661485290675291041149422481502427769966097883872918028261020633580106840802350991433352750258215275618816608728488879207576686131868187832492199355651215987902022183847207933200990954199176753694045569745474041024301184541484429892978542931424718859757289133910771590188079013060400918167277889888581976953170531722294898179123206626486712193810153308141811142610980985017652637433543592033333744473499271890502388981439657557142713350767722517834356302033778029434027976021786253442751801012681506189487627152666215675437896961408060942156055540645102333657730093928026139104861285431544121335631726806336591900260781349314142336939549806638530000039313668207406664416993942262868154125772406212048740944537554240304411074280304857533515388893193212099163160285741302979894113008324195615184316978958033576601790078699216852689368657371075893248673716819582887506090151563438526251898379117755627613032742457775658763753925655857885205499014023080884181823635971921924713202873093431974492257966346243510404326755827478567019220792831111975404225624209126268697927664697727960735637739330454616218659436134464566537736310020360035972208616991416622292432205332077077381683116434209599335927064265221134354872119032568813851036664891722969618869074906554223483688843811416625602188672744983533113540406282595684206250920641475945784773485223987394517238750583162673362540079023753243397907245736318276938722278483851622921172123170319298468779926760630673759755111467677542818569404460893340504881510905885517889103554603622962611536588879604584098630017847722251949220339512310027815322184765786820810166624965929146289857005644141000556658188128133167155435015053211954257778971680015119178118689147974902456625609457578511629222526770220826725880281065571535411263673612357822977809359122013293243376981984463778717814400141297227912455930373425060037091534530324427825442858092290905205877137547226199384256685164302016591907390876824656946003318630497685927206700457401216449415948217492187364751103384454370144984186473867464373248731038013636029463524762198621434399179856129345865470819806246383741261449648314727393920538461854729506233091013291583877494466218931703941618729100286892883446824274829324790453877950966781103017427505675565381387932067596306410148966473570651887428116201829666880647750596995607674556329131044953021401432118951938251971746550672061740510587672921147868852033416776018821616659426935208805313701776484369630296629516719007622664325504998779187082094373832949785228523312935092098020324922620036876954987842303749318506370688266339016737531737902969832820643077147090645664376849867823019764596453213894593940861941305160184276113258615837881374068226252353138518075071031034736547609014544579819489863617324495317289124766346253490002901490105753118180875495454187213550694090208548725996883684248118988494411945217463904581377181110803157777239005781232003611787175364712782463219993480128129967046579512714526856933400957600662761921367852425264444662487864119663638611203354205741781091294834923894639180054897384729824097276232762182340911005837907016670796687498328041673069835630587703643967297522734787062411212046502608304635772774044125846982127804224956661549411378710070170709656467940593121969538209861056992887361847006615753170090399565085500452993956390796747059072177356503802112266266610668116663860823627437521402311677578191689472451282024851450738779087002447216666791767612733841670735549750219644239904152320595839623372208348454185769877283615002663309600136042639237618559392522607877458137946287894458512089758505453759219873943110067716281110444792692652851789789820002272865727095782587942496945345479080653170744694518620322056270383138645659500132364018737015394899297489298335987855158417887847161427536783667733279561756629328038313495941786515146511552336846450493414750356948920156056330469214592620579444202776465112939807348809890069937077504870731663402427523185227405206357033972673636437957047869267881567882254236078980640771538946232836218295943619302973621826071843408729825892122897650305057235017213685534753676788619944040988071391592530804832709409468907779633462267014166207073392017166255815137343059515441707239119608304230081728231652359513076259512902034866864811142670233504069614810688515123972005144808697426524652730736752452365091082800363355268045141874671849183144944211073733451845092683923006123955207615031678360008657577687232546473242635955921112662043734693680707957081795637811663813821204565862171147327632662162181109997917477163581111533382571056166521084826290013293941130706048671347829460074072136381518559786553556955890828770421976454341085773487231762474301778001637910661141572098600327764907674454347741819607876025333314475973262971437193206329044068197945905463894940299908679126105766275501171074283968870511927704419949609057020177524953446714269640836501727924711476945057208745683014761676039666587162954154744187451082025219415664555168399806847723045653446363508623966705321104385867320326898100991429871503469058419772339212624308249631900302799376689711673037587007158824675144508877285495880069556766424766381727341268641204995662062834480473444692393409081064132639377466619025811981861734554148824329189350561779616398775053096291533827496062394994782274400383384135927715695797864228615293327637010556322393171537743153327888707469537862943912096253976357887018574452073536363516970785316228619413513127426439257290864759930685326757464192490587226678880304687546646623804932824598163783742234939545961957030972025462863135665339436794178154310552029159646970743917146976197295379496884976851615467049024465115107431257404073701150706287986237933170246503173843672645105977945677106361820615106872575624193037766574483873853600270077024512171509197397749445061373810288414318527724578758756224985153297512337274267218237362820481596632703016590433791488442789004749274446688918580984061508834406089758254396300352197666346828910789625189381585495809500010114622870357026210426427347320025610820729724929475567543416364439874374606012397320268384126119418304478451808428239978523238208035499596914528084992616286854723551067090331399409166809741771848294941405735352855913522903486040325555343162356806222391325692932970403134953177777307568950787151527768063001441332937527189508907852948693955589458311953192277662725905839678973383012664258056918529105640933878887831821018589696239288238008007489563634815748763578629514781014156719179112136442272800814984000374554084986141088662634097809118849042283220949014570116464465794530254233718559244559471283916442321579148003429706410486639790141569714363394180087530235753679015460418106017536494377565073221705470080259838894199190057161685925965078127843444741013502134559094402991352266681080892394406310684625095229540234203513806935571506290561903490701449009275579876333532529476741931715006872751710523404736009758628414624333589600134841089638797360472152078934024571955325561658339776165237041583975930028342565802250803968411221118358871307628981048609076659575079988739542529476490474122433023478404815936647942633073239520844937839945998266951346847594528424306560762111797310004661923695958732419824972490591223034676338933456768719637583567475933867890315204999271455190450565959694452888201068090224029479402920073596921876805431073301887441956003824217526038533867706284734362106291369559158512135914397782367362828520345551133039288017920434394566377273613910964366213477011156705062704709581990031110666040118480274266302823816026431277261098717343386632541718905633981550757670108717179940627613342413642833117162488987924919921193131926623944673599931900775151061984135017751205300597827506654405863297284082365999622628665304225341142233280105076218697275528610752562855696272053552176088219773150504822436392395242674252968265565026492292487745901245852866641851420163548510741108633136706286138967822886971485170267343661132282154691258981184961350039530818252606442110139734707468757017875331898592353674187375388727912276886208335360381371826754282634466132048428292768051613256692041190555888318982503284757551381686310985106378161755483766856326194255304953582954356380748197639789503811791465443276664230336654991456370230804362741995638517533355709150636412661654399934229668625536770613042591545982173365299043328267209051954630781091410379151684106164257964525985222807158617228209943471782191997235446823046493380909261536117109586949912236766769081887292761937777281691369116011487628064496209772229411809979547920589685045822808182110384798650062990294088656044940692927583462528828936029621869839380314923608898958437940226369373191924999501833221780487448435812434080027147790900757861454389097809527786681541792481723905748962140370175007750043268756894713441046152592882326361698494997986274670913633364323289662455380840979099960580386777789770019074421529694108394535581455294727647182288445486246390890764312965668983054575082304359696147976125166049181524140631596631661782127785663927079032699420592717557954195352289676640256066199574265908981883729918921276338419460936888074078907914097876737633809140221182993816121432691773024653466642168317431020250450854996887017437086645046820600440358032553362359586896070641873059034007886290501846583127144531121103249607616453869483799916716198070745053752306899883724222309860052828922129027952854140588554650614268172032541130060766529468868116420126330913168768437113285204672460423791736218582690649834474752823397933473041249234211651676080699768925340624514745427149739782775476134343384840991619348031084606534503902646923830491512198197173000335400716696175381522904975987984678338046633441435828849323854258052176489469912512578011701894002207100214299690382255042863774137480268706377129840901665973889923241060859817886396347046941497303932365594739753381680317470449101203820020091568666825302898101679597494145854621873897300849335991873439745134900255129550362592086509114650233917826547162132263941496075780077228547869494749696238444287842872844428241608993643144825381719138754173255182727807309097865672499590313562609562552281790725388434234035818271618632032862789496465244365432551973901244615267970155934072537002607629394479554490854405461848679658763756622887459692786994080936369230178225057439637081599892056044092115582398935842649130693510164566033503906413589674705561810688947549159083839761300284030389369046689132209248831226086761814619087393405790102333105755429667566058612161658526154907912651361088662546541739397510420972853562194366580581992398429624803537523931403774857892303208459291519773720675325707962377815863704464610877843579130560755339779792742662506846564793909147026302165154217340817121119943506342906124805854495709905317301801116002955865190107413576888914296423897834884539452173664423055084976012843841633641964410766792396676311877603422428210425824969822871882416077006754924273432608439256581590621678845165227918263774429836104464892700381010460397502917822503192105217928702169341828231678943983757686586872452488164832237772641148072873829162198646542619105338184683793931033376147492050527042702716531072333932247176601170412472549831489427917973090374786516303257970616114748524292621333208636443651598069171065464610776379468891364474935230687582174832913942396392752828614771204289678877168314657292373660374177172615947339615416611005603273086865955005321163035046334579962836041510758820043720582353947303030902018579195903088777681721910470725608784152424418083250327519768857742640444343947319844396796769913195241434970123469764061406541783281966250292161131224204414319717774202726268139824311875348428471550870908390794037450050596468176862907337206679652155185695215302010530449996880600147576749316179277559579840527246731985707146020685644504008106368220096729191622689525060246459283552299580979712364151574502115958719093930833356374478846798874794570598626461457568824689729783887980605912910682763045570029795142994672915290813545514894027491598604022488970239913571890950228342408699493010003308666539870203252913596338139872954135466726360874820610238720314545360602164143769154390227848931150989235620471300674775754791684086604225006648461950747334565941781334617165332995696073720799155711960874461738912962697320882327412022653484252202176000743636320881516000461707843265775606188524950973999212862594963708586804231991411685581757441101907953201628776708107123061465699305627123297368113607809373041797597009763787730356316496824288236383150522316394736394627340621033041214018249004591971120822528133253865740213253021516435250965477134103149196699119267230632379260855007737070965235889886648383990112598720751483543228839164231117195368459241736506665946616389778317348384308084529649407468969663246422829782716346977248613781455285553543393271986227581569606063473662668430192889107711042912342232566963901920689587993930274867653574514260830862120692025526008001040313280350827908768994629796880394426551756865316963893146260331041231318963916344089384269854582078251891165917058036918285799921320868240811963485157629108033704062715454604596527555681940611177235301701580790214017778201572604763201197197493741608324464553404052030084101768329840323655804843003628492608235448796801846386334089003620332445942594553763846837561177530932144505008150575918065580865368797013809915941223154537035387680451679901467100419202349627141159606518923795339048759509530528252851763692625060942222302284410861996707844578491214038830177538738206270194387182100441947289783205103636587502245684740198445637921817421891070277912270733402742092310027199092863279350499253513982705990575600818464462788642625413591678311420518837093959331622138094642618196555546832879420410060711905281289158957796797841498963175017417356064694827893405186561639949643186592745392544389697356505213529802497218808695143121491189776629225651943222948706903597724019356763010855409855097891845912416588656216914324748516531695382695494993791640793272364772324687092217033493446266220222185485517960520862583566522428513997709022444936376868205441530342814450759214858043415342685210464886372882748589802420683748387891591677039268029468240602275832584009777682171306316452844936897068677583951684837712913764260251380102396342088814562015543607337383029183882419140725891019240272225084154405480788430331154877392808856451295445584330813161779190333164989715912360038493225080310253425863549597578545210181783416828070361400212169302393705946646983523054075951192447406095019789171874402395963342905465559821608679234031044324122338682601282130915589749153202484203815107969474525014489376598395591502203687245973291116540646343571672085441080781443004252875371224222479410516524822353403767138491176719140924110240017955528963590251219040741047535680599811081800487037221352347810714084020432814929559598162359753087111617389113749942997012243701885665227331323724080615016339142317537438094287762831681827547087383441147184566934801842121300870468919852195167858549319414936987397861861108913552136652035686901264231098565940056220432301881886991037064340390828717980075708068617469702297007907155393342548495022638078246003477569080489912345843113869493099953603227672513828776561613553806640434864271175318670656910148282825516460085602799717735912264805649751762417206696626989848003632525249462978476982115680233781691724549316789697943295162431537768872400164185031889380742631188069727854462803089957749487823847235385870354971199137394419027122096634951950808605121585235691339305459160551692552698525117367720223119525042118206344025437440187569125862414836577906431857355770217618765475614487848974825488074833274310049211231628077441715854645442112712050347602086181007538868253524988464701407737115843300524689287641816198656488587057084410761214219390129698876426788035068174693175208020021093801777613536710089037274262862886992637186343344202433179570579234692069950287623841168396171005524781685179582747082272613922806714718642400031966580433053976192699429183170128243867280921032327895513941051559459068800051286026632381493884394045760206373307187949916930283797357308352905704201135035480999387639150871372005044639255143210883101602032150371682132083977251395088088630258360481893050661481446025620197289216257549149532556983226886571679802725405889055258335320618193336159383048328323134755895706806262076114952725311961698905500304558972862938289591645023692263762914480342047317225911716654138777271543764390297092711222930239442491671213214204172120720806226942680162943283819682761582827980174935882003518362796930880259417339314289117459242587964501824158348860333033270320286215186887111154028188123554569507529845357479325990690970642905889156248310323927716460703021423192803819398397726123438023411388076375915129204305491592780625976796305979665143391102898158926485009290644293410819523365021732121360969155579835366585839687160969526318731014219807591349397416901388120593061966663992186109194988096956458772743415555053731592805148762930979338995470672814059613897754499874653433111697733395191947002056195464334774867389849366189673141933018333427874301573283836977923439598167338342113447858141338461226661261896864568061901672713065330692271953273061296055118727014804062634712495572138928047489884660829636841688296505368233791719890853344301921657046026767956405304046173095463109767537898376019926629443975740570778286165214894377972216654992940855083656521666186878917005307119770230720385437328660584280304091883595657991594205543538274333538396094055508191621832088673145332142652114919452002511594250944644880677340221271302046737839507571104457422645175523027307298911978428616527822363510941264893500999081880071623676225722746198009669689385774254739716141171617658130284103336467036993944757433718685362497824462094050456008602068215781461006771119208387858149114248237436724021092999376116322029101001550053455471504549423213955160791048367252588994858990263581344962981260084125353386025337241499896603875233038900079637217746480277664863023719852690450204526787662231595263644570826847861853084420448956481518868332978542244132307424659432515245610391199343519407269834868773387776999382360088342710245784363028363901689478800534919691753259581489367724783474427876062366801729065069580606165255973438821649128626186715324659081037495550984952402887477038417008636230213044262531161637808369070477398977361541462223917627981300166654157874358065817893452513589280396538189400057659469670527851032747494459910626779327336235687756478246959187874999076536994018470229750537713461502344003546974670758815965207603227158531757937407182630907163933435176640238902779457186889300706033655478706256629074256384253739455118841668479329662532411133184607634624160343914158446776766879566508681203157928643417661353367978023543740517492357675351642107385950088305454410344033182702086059805301913641818418909991427164808710863844609645720866743478460734732602769237649752425424411681390848740979894542041985358198618880775212256117954499487206122735588680286550236713503815632363554794877510972147595883061343964307502365626480969070115106309364351193598649380068335911713778946915746863615159370377475385913169611350084603172868311386145440074789339395193736446402494256331650383535213380818432310435482582080750187595619471424544365439188992505047892576432496323503856002774760139362469563338162231197520699064930293601988423444502952717538627424519170228276029737720188665597414230786679567797064163617703902043600196568000388074304940871113508781864409920481178739941543380477467500787236230147887036169936414400331056685715056009249977122480336164728631791408578460133350063393632800768541812220357468956431171921687668361941743391652482205388774090312007528753399150972507877025664365002233482886272776018910064823211033439495121846167304982867246576750853396420915939991518023282178906103596476667384024366866713757968660987600639061825464646764857702743302745708205906268678996029095830723539509661259435813726283057907909287553523438492883808755268872432229204268492019836254899549283128569352606855306195332949430271649673138797115336203746077889774051819188460810621509338276700523164555147912150245057076614312030870563106271948164776250080974801062005231866037463469136835754632855139117567045975147390001273504777282034880574177169876035297542194387948929553204220038759537439451567309264676389215016552113971017588980729677258131541843190713644911716701829199990800129365314903527777119214951155931799342227454781905888438294128056469222315561558146803344407881957662959071425352545164210847502167878474703399925916845297721394179731465990832702327292420368378235556772111374343849227183381859601190857918254797185562332281014368214826442955540270879479124968034472712721462101653487048844273542026500825945816283839486939900915126351539886821305573382699908465802203243423961853325963297098542426263837930758538847853456896874959097621424214770605642180856748965405386702019481590448529787768006199277770370637009024336204284693288608067989483512845052369628575498144629987875365811421435995443150604265090232642042222703522309864686199222125186462370241693217387927594892750124283165662650292336851016955410238091217064573326934021385340714813973325671797748507142863007469399558241527748311377189743649160342248544356387695252186565921811080515782382475594720927411983516735608524828344631377049277676815260344617355415705956284328893219019675270548559487054371906052514997728755444215751253790403418511510449268163156901923575472917148444206048389984302178948726320661838561592752728575081164918425389855644676798263003048854956960053094943457074125230964757793027543634440584409110982288725477796089719521623416384138189054953891686752500288115229637188876544762509709447759179248487119251824652110210846759619760834168334851248307295605551767240541276225923887546137608277072946738121192970773894048925613315785879043883718246210090336714542182781203147168157474191323704473239344043401562521963953178061621811241021910920342664802204788779407778572950234597596461594097377587926190429476866231638986148108178569732005319817589671368550924182665182542033172065700965971202340609061376816043439823148343045297200783266224918169798251466298529263805188854415731581407239553371251167392557854146441443410637042123673088777837243471374992050537153299904160253648224850542762594685650619615602479680706265489225607687535909576719234214760144506074427159890638351684314558513776007188317628233920955168966711168506590692201900978797501863671938959210638673306702515361245832764230864769683721009190484213845217991678447087971483210507620163782358137994034255581784603273978630244879926944765990413007722254421730475031566758053815363451757170523331411758818471739717944992846158157207978970454643134550519857007834247873557347224999566190536626230173686182702968415000609898575739779778096478067021555884540644519746119924270919571781554351855179167837665548932306023573278323345975303430320473292863948756359105513137308938800922479699550600385805118352461369087214033325151596446351749172452599857614536747090041947775725171033498698218186154712356355613195721400461641533259579384364172381499326405682074618610859177764249297541791731309642589524060965834514064039850311988170548629629523192853160831217212766033169390196670207754223437711576056196834574762399962619662356124852301366518970353848816187505839794300892817484083497553380505354339952220869417594648473134967352174755903770790291071384988052767537282311056200776851472794419724197522389877755037606267065480787707377688976657277833542406312662227405635082567747011743571828140641565460719593781498548878944247731060679021075686941606239437577021712475143134661904794931032339388314664542340596289987966869623834422892634647249472272185867628444058017770538034558514262010815452521135778258853589912060618568001294735400395787062116703577610489309323941380140695328912325651348216878423699203587469050784210761782143362623842932009342313067068405918201750844573181718395778182894340931289232503441832736393738977261652952175567675189083457392029942375268489950247941645404456585296986229073790124673594297160263866267778330631602715995025228804803232813718459586887761188030382096058216086128573468454106223595891401923056990198361017913152405467898572416269768682660105221789759118125282840311172964931869711231116688587677489872941960056556901146870302912517689310052967833746286760090960550777208638430462500520790054464583176366135293583323916785927340712078401886268252279849421420724500487536566193828457705436967675672526716334694607690200090007594759129605525699677425654726904747402769435767256163942195569170364338247106794472939651743370270722177414525034232439036557051400870372095653231915334690851598724013570563797401449420006507375294818976440270282528872283578021244155482800797304662950304226560439924782124664479298486374849577580055866191676012362436937861805037265685813378232805981649073274417655706259703768111509281726683191939002820641207851292078151701647678244283785934208739168041692424296913515726635842262806189907672692259541677760342016027278909164193576268529090798478429311524537195278235071376049676837612368797059651527953372400782236754170510540451570321570417527843380081853926831123925117669945700026667660414501813708526819926239825883590261098369109406906089929801775671223044369192940043355916494943809924015103283812290272828062134077757000420955808405916238370131675854111856093989596260451828123892995841253388363033691588901855433822415492862060161727354090940468063658927868986961798932864836921051021108112687861286263015812761911313145788584833123252281656918942831571151319036967049029694661730823978493415707797462083905551784039900517529165250789241960919172000836271252521467158074216782236342077935820439714224459383981897199651073342128416512684978711501635877550952551676341555391550883972729095803998064022771549016436921999621492655924803708780110404407258931109173073625721490275162781070564635532804385812985309156205237475838429420050953613937829037835011547688044508782539938207607675025009215575744697689000164203526894628919666421177813831115726650070767325471710977583764888974560259421961110608607729259372949785965242395998140428530842447779380061144815502100402755683173089015070357492332370977550408204833745561927156131168627319232427720250906280885480905475313503633375763291529747393703129306477217511275604203380717366057843366285166457281559815233384505433617537489955481552847264663265696669982598879336501876058652166244620841591607599151831318649972264056224127215406769677164591721259139479584963735335431216342288879037927874458855880513937804360857585521271553520987359379389997051821092625792182281253579749309199649900699276334240347978531104140514199487477677824906340268002432366471013554577554157639789055288643779531363934533532809154260105652552418666179792837320859347126717330204301243136543771408992795960831846485198699784698045517210687849645961913938711267138088116052515863941499347064214964854453128867719341362345441525764863385377146252090852966801563896641303454379836205657380805075271957646931243852538401299460883303722317707452988947970122378565962597173339260550319865625303408207098409910775327326802483576903758321523455126973669306833582734465948800721316425431263945699688686371627710339593258091952524368388879229966632144724268040015979981052719451079737751782641956186791115421484670896408634644102411756466411352406699398811305429025256797363359073323657956750422140805009761205935581500261127126957755783081281149494977325776515472189795810187133731983409048751416931768018109262992270778550913417421855317137897436142146819905250298436169029022614769338568200567622897676859930764707731018062485625799368201200781764796309814007923352958543653331036102707233262112070176357981608643588022644385371755162205871370770448455592568486871340339875408021587180522720533212860647623160990566574499725472731097622506014715617122799445890179285748915799391648463520127551635755886787561244876401065772969064520860471112380272216026522780642760659833821857630396366338213264290409446965592952128978123845046035230212652506290887458749074824406018067099119170150545934288490338280779802072077706082519926612372286652922571874645399936290556958937810141128239785798769564656484082555016273557633175649462548227352702640177250474654535815554104158687218428323046139573423785549466094894394141514744357868932204408617336629253855846145327713751966013027214061772128259515616931096014839240247035311262766898221204339442684702070259009627955092274407604876894517708661727742945810109542503057723991013691841553588404923518127448581343456452550300916189625064398875269198984503636807965630101482806139128386685281913971784351516192422113495169602404544517125387837107383114822399419283175759666792248723034860291386871780490102563729551114464024391676955349764444748999116198000021289508169471490762222874629478364973805827794737069739837013302880447418350097428116891368149283239624971474393406239499029469001681408789604036583564386798678585720229809150267424450574703427688258745876661131631105033906961278149766397713196750523036228449897003453503367506255571833855366083243000490513454678059112263259823365147160075687520327544057263121042568732337113173915400814286010139647692001435611682322226629782287792446256579137753515176891179654320233719530480716247094582417777647103729924597876276229133074897503837518937241903835784113248604841995345217126404577089372394613973908770566186068956934293597089218919393860294253520339487329122803514088153775544792668590035301650273628517262967764525854782900476115068110973813288610811940830620303246377875260818963609979781198646175312761867134964578133392156240249555771418057124052696669051927278009757633598694040673744277193930210863707442496209594396117260139755141387002602684483825721238436908549118868210662319663434925245298358408164927197831069094083816446904168540403542649890484572813178123143999839955807788754869529056477376225219258985388096902038218379781938103324644280463277974887235220944957963048944870208624588204839302692424146341718601486553633353983135243655376874972957834302533183195806143653887037629741853841572040098610013152901643418643302725707281721457935460933649166775314413235828112230896648331068126882484530782390951212758154253635744929291074641012620128723543310372831909866232782283027464655384965870018699421004559201829108615087379737308327226652168506827501984386595752795917209381727477732519959641406702036044093399809138522471397432312577608684541164445949968830014868275895934787434723187854189033963576920324381956138525449160547756053623393361946380788227845561214225678285307677944847702643821006933906782133759574943973949113260958915418255501072633869943864379371454213035376792762084976740510096013688154312723646907102978380941627362101027451953480861637312389661579113564078254460336513234362290585690417949411065910220118912451180878964749176415564688416909538774478997108291381687950606445382187299360550290777955089528876302715778726564743522864825571064468600047407056813225507518225887073303811123967882565078787451775295197138651406138390882986276121246875029904981432099939548938340555160506083658322711134582627300003467082712797296936549420789510349618322861924132714119516107806541242984225194792031605520485552310755488964089206993976471497086146494170352187376346644759490769055287140960350397164204625736033754945882535717679620809832152755007112241163434560527544239704562458067282837422346467174353575278844384013228993627344911271693738220198395289093900203147960881822603990123695961375333511480004271595537275621477966749388680053436004233527712336662616090327989256974754693999972852059561068652502644623248553300022529072199936270760630411849107581174765758903299488330151537480462191154745588282900656521727499475524715465446292451787975804292224121210768699989808643285533016995543635257606059211361007709976332205548371767673945049951531517979748085590773058579105907300599971848802259338264763072899607981542403844801286522230735225302467667786001524271651760011459715542254827914382153498602058635187212801893043706073617431094524786475289684520805587368284114406860190652290355137524537065604679259996130167389308642781891094723654715971118233030785419827135016751822547651376497517995123884126522053512766651362366945003270966951237399518664703560265129537234094072969481144781753337654107480416338485791851241009918696991205191415950412576037909125909774404174058731698440859591339018008064190803557879114153797569437657135091046086929439626423161587414609931517707323504975461630612757369827947791789621711832548942676800785284958423419984838221650376614461190235160770287312100149385484020199198163900363191055922997252360335387879540873280966453405899489438928853352924375707815108615831958176544130696477196596291038891417627973553685218299182694796064091892720403182204549571791190754632742520985130965111979558393463621603153782136517476695576588121763314439013073098252873588399180315362681187477629591416472982211787722641410778586956210922033705112055348462202998798915060063427239192175518002664203012456314774157119571433618335833312956182464432490736139407573662810226981112120194910728784789838031407405270043077642012973877072501673345934887203737317098121290520606009163358164342765587915207113854838756731562453695600708509563574325092941498048590113312723467694322674392442320920876850913726747506524009364932164460916117469007513634233515389435332906349274654317504844525489614133023425081249804441629622876539135177153000805909483132825371327420864081199245070443026268856450366045571838946226764780552301773948383485155382722791650397720027765463094672991451987403243668920610163571024045053689131470155322676720265977455596832873390812274722108845445256735359612379262211092402764274561433173405341548052198831757605278738639933426261045882734749482442020396873029539648417335427428327830203478922567215985548040961209737474350310248782022290415456267452149179883434835025861995910408518795010712133809730435508708567479330849034414290046524912589041532222161015949457035015621450018497577270619964409278853151974036876698590612133367298547836527650181892531657966389495561377110214355018477813187012004647949452037046220781109570301418798923852157033296573245652510323863041313729659353456561327728385975087601259599201084498267465199627302691973520439690585287183076684719408567961595974282365519845960093489292474116106794867075153127400234699192399990911805426754039169451736330971807740340369340806348948338793869246306889064504156489890065665651292298467712062087553268575673686221283864321648513555293003650776520527718906528668769419083337318901606045559169947047793771338401362238164359616985666310060326869409722452546738491691820215645153765957253379155807380154889664472607167367743996852488924586940909702783683213566152767877011627564487690380580395467313475171793005772899066444271995077109438110046080015812013916812062775965268183112729749832881866198428528762374393948448429493801121674027768303617732684412029635148866570080143215264133400151667204516176131014289459419140149298525997738356953518022032915794441505378853718211566232302786425141286997339668685611794611537283687352425873280288262151097910708941881777457059167195626331623061630511108261866640717252624274070809145414141296528241019154808257302693145226949946986091668472894005463424843536538210550887187385904584657988159887331401118771858908170163353361384156965208235568073088552192808565591836550276827801320998788323321624597058178113392144057822593726902255376603415679118141703632964032301059235247385709379532426334776572776407784319144294905464562237920582654985275836218187683116990078079909512600166746843651532011102734812536714138845347703908359824269269407584213856759035251353782508366069798051926418083837082009128943770277156603227266633016709422861440509767537694657385377604059063617314179880036913254189124291244993784479882655446696166848380866807001193544336647762349671908671627218909205755421631906196726160362018591868360069215176266981100147809876306031067299022426579441461146824084934563745289437221344366485016237968901519274014791858836518144820720235654271281219791698360692454575046644064959809144988672355923472993238041233887542677704030057827369798748406074775069847654500456842957248716512248679402223128223292726686854145170863840834268486053619141179208432467764418790338907666311806231288642807747033157745293618877862976731559727421998631578569862174796255986461090119979496803716331546803597320766640068882848495259874286127169409979382930396840965651005900920983323015792300335226523823199589953791070458535975694767234270946769882986301293618930743552680853590300996594659973321589777099056301330584830532054760637601786490816047675355089775363169985075903826345848282056422311698497266384959315477490878191048314466859413973778606212500132949336879285501179455475942682818416164275411455473874902183778079489506328625961662122400539266552991610981787520266959316678689270348156701704851513840018822330675863434195881368753784607535617408443543117178316343585496946487882104343480074236935839077754524831372983649165039664206546340082986400727753637857450220996361921876577890173170729057801663715883005282868199618887508093228678320567066842372563733655557008370168447151900245775594867789659274584943196525065134378646495284607756566113242332859460318636723523461531630510109359857000700844959641511278763635560769886976953912934513250427609975452255283984699107201435445778816392528515842807833072356094730709288559029502785145931282585476031267906730317881270253174467817837540443953198708525961595504629762432194876132707461952988712439995531890536599581988356211227304176631992854612055594179179747487690590389543587953270031075600150712713799619541172378492580261671494051905094628952115037526757600292737346554005020374547813602410937964335607901380539538460356879006500695920220940123011220168853846175196035274247638267143800110259006838054715138212871989743125601507993413737640429694715656387094854557450044603587928792422650878374035566812449219663981130432993132323983388688142168925804680290527904263873827632050712243841019554508114503060268375851180886446466255545083921897498749483282211164181881560558514585333167725391547361844654232281327477428409735526495095936510329973216823901785159167849690631920036702995035362779271300727484338193537922812788951471065591036981838638893341172858878839629473619882149737740404955738574164983412350917983488383900472000370980035555050883566871674147267610308854153381087665174353272178551319128415527387100741888365014880756604794150608575316886627528817346999844281943603443294879225555854486142989587997417950757506436511370351694414702686826048169392750321260067245006109531080008983521545152697681983525142672284058122095941215799445503658325854584870841178722192453664266664420285908289366666248763041581025772193771522961498529812988974065415466235670882477756403164418260940928994209674231912790699255683704442544850597127411754468644960146953618364997540519029067422889134699475096004504491415738011814949454358897360291968854023029787801547014292122929481756458210206137942409537066073127858748199920248907962684112888274415126260618853579086695182309311206916506506483176187004161757635719696201457073823832234558392429592912472879998031050463447493487497302859667311081700379341097127329828453226044228070050689219687897809040975388755659206811545129385635406051009505619987169774414581582879019915485352646406318419941336533672274119924150391993230480086878010168715361319647659951907132175204838262882716278934415373958639414061984252253334730413982592944219141866266671760664374968063979885898478389535606339978882615400111543049082488685623365239664078365729029197149319069052022491186326022961633042149537926285574521106291582012222311497001828731664051160712277666149751952152903989932992279542890589911207033646156217913726110564280628343059749813008871079390318699099920479737245709881284158830250372267551838996020535203249369629306455220854602793547778092163513746371112684681866362666075439429322410662290257628156652575805395289566173896226044533985759535872375544706731174769488431153323202922060304441264810223402278776731157027398171235021701275604900566536813140140084862245767788152212132585041708091154437121946236192334954835816494466197750312435846411980192044364376376792658476622825151020597237503848342161152019613361099238465791965905886956308284243717464725039665219930929121876701325537062524471640526439072431668955884264035429971229469961329969166403142960932663582944102028645556961927704217981024895731559562786704400723729492651074176163003992655020656996620182292684095649912361900260938634628948065619354580207983313776405006185941291312722074062899741404751679677505810016382938139187671279663369747406299592353297099608824618140189330762797548804970926845196592738533751517291500961862445381695560578428313689230814057802742187039147279075238669574083027997207628269411744499975066324589805147520501699813680625435320835801829120744067071329007418390411336382728492817020659652300643700043480987156625369132994758041052840186327642494389864414950017128779854055872896074702851449621511994992359175348744604914381894423266939759521933910785533409573290466812021009038059695743477324819960756111654285857516140649502304955314442117062341243114164039274225780740926410668484649496180465981075772491696528592078658122875267937208555656859472486886448681485260146348564279012227135638443752395522775856962783401190271897169485291588326515554096195257424562283804345414038039310620275735864245475541790152787342717968926312339720444503842161078064233477101640374064464627026959205907027492756747962691148388787767320877517360141001480236912925455830799050822431237038781339718919239713975227680785624810581862430900941106301419357151240859751310454645926775932398666792242494517102734600547989615153439326758687618924235300999736335247065979510657558095129663460268746431241948840183261472360913393837569219406604587276147614877685312240703927802706334252027383897294013095880530531557438653256353426694262649795702079802407898725278813176782133226471284031451291441942059718955064589187620514090513319583888559877497350970797656464417054198395525458479062312287705820466551479239379958552105386750006473866087642843716738245925668243205076770388985191551360491067762456829599941506573942377075357451341752629170128512481503532028526289306503552769372948103299518393491064250771657567778804942766817253486130227196448013474406668113318694491670315824852012052873691976140419934731265576590174897868876652025492381107570664923736600444032740829300282734201100030364022922183966144510651366847946965372780819468201495494676262662854140567585695476038536057848211033127036499980084009610265195678001381543517774574581087106915204699031429259895983285341104224209684190198075606095306463614910615970187704084834787984629505391755318147608962319936843703082158809606067933775587473258497404533713275151556009611011650070325485980385760705903791128818496779693528470771914028601425856310645259464061462394476456750017198413508149533038450321800733903338986481076262713105274364166699783943494792813316512692380967676879103142750653114486491413382124854821983405691399503635384286757820793641498676638528627062989236055459158567002913380251371200169598367831216817813955656782359534405147383073161011528402792417144689231550495514774570167334546095834912738873266565703835608726941240721811209819274443390144031153943714839427378116170154043729478137472483116924393002816306204497363556589083120093362253273710143208061894369387883613280980810449860035497951117338531340409507793004136786798262446405221614587944621695605700952727940906244026629867657046175722997577434300693076986658659402891432852756432546732756380615230333889962919882306809075901444518515292050916656970863450571975458355707035472739415227716391784620487780368315424860994714996606490130699275094842841078403022301346960709626828605371641465721479935406177441381767611897038360914305576955681219408875564078607628994462648365719941257680190485338649088089442823453713939993031560543014435490475884979263739325936040047795992448337588062987506667967658375884282402870156300878418106398879117999994269534889229694678794291644196077053400402661882547128422478849106524797565018656219938058354861693054346679212681606247580386699071368957563756518224292255245121737246738789928486888612849497220445474804302847566992485697918572714683843883676689777686585079883724404808640179686189864196266673703183620031068133813177441482816188849997062018389211740588542653580522394309572427202858056578615051396874343536058750885770569500860517233946021212911429735793352479753146850450092938394557255142353339227575475860274952372354865587508109064761733600123529349951986968426457235336812178209992326925044354811033499480930837526635068477176659993458384874267129690901822124266197098396516283336272849549670262687591674032555009685527840108160512517584188952627271157304922413893482798464579509769200334477538215334447566717502269402001796521771877779494211695968133053601312602079110007300719916794316386504915879633459701378377062122794327507814276547654687008919443746131820500987814459351500724636973479483596446342059564430799759004796905729898772427197819048107732581598791115646148896406050882632065892432236897210185195517540207210648477260464972315304022604823911671961835923543308917799882699816326565976343906646511692678758808703463783989707452351578640519637951892497757249734007662521128828877364200810571239034841751371169186332840591739118294477670120940690548180512883142465406239178156904742897893302464588039027437974185458518492653722592394599983866800901540277421062256602976446131020077291137649719217215138877636611213019071301571227986038016738813163454152781205450086079218585825760826264925951588879820679896113725353631281529908898261975572503926242581894273957853612058359825306808071854378557349428584907438586596921471556206958390369630928918059542719920036198952244220663948439615471303086567649968678310256780920574086900150626044002175744443348771245980020597143093360641914550374711575160443960658524946474281481309747179171954999990746421377142954247125911760673325639666398758090317512783559226884847095692258562083800290969824418202126293094090910367498629798442146847818795052941254631777728447253947116429623594785842761189105222136724049634145644074822502645582967444212389449687267581217904026907309982889966270789114771013885201331365103040469875445833860433107790628933138460410301415841793425588008260154349936032099025411003111873663263783290960661921817441820310862066012049968333661420735728592368521151148808998872378713525781815470175491977786375847417112120286253726728836888584962820716739784381175176509859479758593116249844760520344911516617587366838476500388572102740573522952928023970689884189849205720502229417795159049139668879686411118397532145368905898296655850260813456433736935151110508336426683354204298513729793076772124172159923743061051438244718516601873744599544290455941095351584441641714837112896117306317147143709148376209176299947638542417724207148402925930026572985543396779246779095528074569733432307896040407903299172938040482627626384198533615687290971840917470122538881258357372964158441589352874207270593514194535783419612521937543474343034656346388657696173067447982139546338582815929584584384297717367073024487179613135769331582657820706779229242682584829762346158497888439814041130048574403882296719632252548538411775023003831853104775205883354724441209017312484003801954528678483172761625785914566003590462306538805650314799899187269438019755769315117823048950252807371605375396448607426119028152239828567428381964749271688517618107839588155466318813964755818081648756378725616883703505642774915559602448019752255394077690042339130959594866944379728702192530719956661599329225376840609462943619387241148136258821273148670414558915097319758894686463148553588964655898554404270229923344861050758932947267827038387236100148572669811729827426198102496637034177252283084444649589612650086439922211438946940352001026406833014004720408307015558252806891832975592462505189486399062752614273292587391469696991468905123328007822117918446569805972391056981762482635818835461213500728080146533174361444528218948511631757950931685456175693430108249774136988601433608866847413812526329868474644995675276760821429318152673683766518569295667969657574469851043197384048421332842528578855829742073216711096619649691720612460011064762154886492469092237636471398806874395594703303710449805952643377060247055999110837762197265100642363321387412384808722537239582406642841966407985433178975343560448486587211732175116042830952425114314242871474984866832641159636795070928859964101182120235833579700292823259343241598086636437414907114225925536420227626134611508421773100764733435301416864854141020713153056209945071940953350424091537883798249094675472493734337422667427839446666281399785492533855332878403166712896233493575491925893261578029852042005393610469483486688174234396050505649053432583172929320427991121571720516160426462120706301834508004127030060341656589975342332676626674332766237537931107911933716550998821058962787631773799148567909089232764501635006776888086121262206712847447741337784931232732903931352463905180591443293082509681175273702875918415903427292607955800727382281383831744212632147017923698273144791689276926340873066538151362873948350251748726244498300657220046882707301223249466130616384065861234265404037719096851362244371364493124155892332755074422618042699416750005516162466518164916022366355348635576441643772258390252557177116455863851712114439086386954499648203201025149062135442134361909159496095440549219629545682565565094303046247160165550962565347818930527064480578826678695720642844481148171883598420336306674887788993500973283368680194043664998566536171060065611451173217727304145539378466086420795900268298128507712146388750344231322220525464829596492813581740976495668150921482752847935311273377773181856249175165638151945951015883448793180514976827091736520963559382187188227690882360783089407698332993729055788636464898839174341054855309315135214849438657711125963992809680099763622335242838116885776606198996105099728305294042764497898452255588702208462735829670723483441926150931754268231213273587141698043593594202472977989808318909316151402281313167427998338016268819746561203250589651493885473221345143800657652071587245174222311532959319190993266603181316427729122374383741604010426943166068473181458414257870132787460688151712035752473162385687390730744775365266375516909738583738779289935584076966474124230233557014600584502538030222874606127171695012558056674652794251897487390776230183206825926826534539042155790550143774712752173618904904241231348467424852127103373204619284048301560270445661400631328304138051195917655526895367122240523736804690087389274980018041814974273187184741565246177224954298507897295878058248539844227590272575212999213079506058746121675062258045498770783329709934273594943220030130125201599999214309331411680419471455043741312566027997607903085004443620962326681751981824315300183538906584242656036333413424124523541282596350805680431396888963732248142859973354354248308146479038639599250507331807304664523938101437922702592280207151439960046504499565453516379005654063260472041734732378585176333242286529441242085954276989954455065580731045798363793381080484036934102404039105100195423027791807934753102639473569162006111136725215477766380511267789008081097660394064434184863867393485797575993763882576986842166551822644285465180974941354379991611103002594085453359966125072240899329748294212020408844623884592938443306880644500589650349258309555547859100710335217871468161924191239642939007881017211007799505439253874757401454631621545542288459898104210870095788953572360578404145795369971738358407457644387668622549524913741559957964038907090797941388234988768372960046465807639204992038496858117522150258563735888219992383677729608927429847587797092115211384859596278879321366410871358980526933371386454609723518749009060612001577117794151503363142085071679014999192607012595714110443520502567623399230291523411997216139986862183335676498194137508105983020301641641803081601748134780928952523626411957177570492476601541531892693911341975696094581621559141525719921591194201814108308878822143981527906706009645842492827435285912103693846931752207206088383929297462471928807277334195641454435529460559055878980359494100017014539030823386069592644054251002878471512990152962914966778667581819321552000742765646326617383515466779131550104651732034107054662811930764246543355272413080712022177536695743487256365948390767724111073940097053515420084587085876502334993979315061468532679315566559396543007065383106950817474733575347493645908656463774020634938950627991460623768812805059325671287338560920547152070367574431689280057184384934989372492721104239471565865896552572564640898911137339782544865151848727526704705827342071827358879933722120884763746687479799360886516357620801140407119341511647758714134863960189624618417307535223071993529284879256015621042625411129585090871282848985741795061460708041828641546067121692677150880445703869971750894201844136639275856049661398936944396252209619421064167705715269437337876419588758053058197821680898440786694969403663430623084228427223584918441330426446972089542871287939615214532572994020923759621654956151045554748378451778470615678047099303962962325552662864994480290219290398666584657730434691217560141227882642749171069498144128406878986909836680035670896812946224461044130443573683818421656957317366372010264613463429736861181705613966959057861950836910000291587833706267822409259344360596058151864862470275280057760428840099728566617312391258954263780386801926318694304756297002929695679213997268698309174783283124702807286861906534279359122310606196565559394984976996465402067706500363677569371879614054722211673978030191252510345028503782561986593570596020882881426067535016533353172182054127357942880438801171334303502880445527373394399458973991462810572226172463087916815100447455467768567863773577156248239948163108154005995249080671293137896468150682473136157374098261358358445648736107655475891412968762610182484980004725594654963957501409735861626673394926641106709785971279589232387933140747046917736818770984771568014678464358904614331345543958063943515513638764360639000550884650652467355834262710317225340999547718889060594508563226532867197896468389254765586378289354721600456181506174904736039958834420016020776057595136352115720058393993425917856292792315333321493480200048785387037678771534407003417868682331777190390475700045124216623672848547550260570840468808734302334496465849256905564225493961321684582147141992935235402896575242282049647790647430726579657486086030214803369202244623017148732298223371317163407965329919736870672867829413204668290457314669367899003869053284476872958007054620865636757116614583491087814831657956518168888338133749748506785815679678747314554135628855659368557755913487504419128205866989314091901246189388215978597430247636120557839762043579667317082244467538142593047262985566852360340269134941897222470493925475362195101795194526689391328921778514867782583011932881567283282271109474085562294792578090317872318451778239284877551751824876434104112789020335149617410696294812531548054695232015177159191363441618671150856462951009133076059740046458038242697977259713047980959130787534361739366284913844161842178192579980088304668683163904084779566841130542796868294644363368800980176622257853086977845918990322680620799975397898549832018923140351024161199950909569209450802551953805582958871046733005690303735541969920425917130961200527890759448570540734934129658339206701537162079823292894954141194979867704104162322710829467704456638232591263730432020055440879681242106496238373560988168805904857249704886517768232279275849769137568192890559220869096133380964511844517404533114842546643227954159675558446614956393156514214233386452464100795953348037639077944368369839102955221828948076875434015738180647082688877167896609949986305873562874112262696018642100250995092207468510181010677074710017106430981274017103161600095061493853262280544464909755206584168712386954630029504388224405970621611236931609867051881647055442208490668698196466343961119880885876068228893347413283008400395173853713127111368208135165193797768745665510934086798452453565517041227695001806782450239847889129834428336170585291882374096590976007581896065632163282306558835794404827327722063353073185518933784632382255069278022666092881185030697702735476043807046279184495841072060567292919743327847040016163979044321130573391738552014841227609182209245096957552894230780529713767885070862550749323274970246690923072653595547012111549237343280685945078168524216144229368142322115456213986212176135826581003714051696044958257163983289372556154067124205011715370943446066280930519021211382582892726707691399129836600771163447534786657539610823249775671118498600408297135231935443433236550944498197137494200796694169938742269370989009447127465378532627137771529620924739626698491450269659104975364123653029645689048270710080757805412695218951573810482437739756157474153476380891939693325885711114408278635393022526921587772286836745411209627819058191083679331027606644911837196987295680810771605681297168553225101421927658476194620843975354980378020297059647369299562643946848079991256617114180007390403180732203238836415508389746520100004588977735613870004005825040834880029027832435617835426173473278011298011185476655031325604038396770138879041083999367541779762214890268576935258796926775010346850864212093738287113636094057856860612422839694609612388099371354478248862813817362465696832402687423571301453084118085325120055519463063227218957740429592986947516807447096000782452359941510579505058481148231186089753088891159530618805049427901570015232966884442513982123575027156380217647248820653275171211503363621837027435553771108145770126995858554219949063569815140538236028893331534313587665038802890963980699985391225274366706485673420665682944123559239757287874901586467026006751238953082812586689631804688266924083538944576639233792021492707876813273338980083344363144163840716064993948598030169886785475729154726614494510912129026138650981737526784395603115495384251189763461423813807120863605947372824596885275586033781642122150386682651329843311398427996634331797610361163996187146238127774932183880291272580945449332816899752855536526210510975965682286233667389878485284237304307886096480972719747572836702258466024097712658093119164935397254211647262847169807821007414860285479836994454639155322543807468970757688264492672723668851733923024837504228984644094790742707998991394895850776248554963752190206730716959596342257872767288172775714293520854098791971947773658715470393354020486512458666233812343632331458270935884238451892751246002394274711281841290994870038411711421989355439581320802103143462465291627357417485000162369141119341593939546411982098256680293625357204269888279037078516780883798772959897461139157126276477216409427957244955782196817022058011975678344072902906230139347629194505935893264286092136484304633820586553044733537723550784072667126662679060730728786092005975859521189043903690596380526875842371118918563635266750622212091632982058831418876726725077998933883399794029200929512007134036524547109790479280763535628687289673793152027910670247388305852474479704846974846333966966850197461032181104530034389183174118119237771234983478007727954834871254327764276130010687703124807183054290215000500586412362180619242823335816544324056671715224867195346041682876210382053405197585485004980778063661989352428844919012652798181196863001424507183503305688259919308258050860336624305312107628767643059591606414933366917916503465016373680292381538839242660870933656225147090487632757808893956827875379537410566156573667238021341720925952422137108704177608668665069481518678819823195098996157646714917101117494500603519359734563681444206103789792090966157422787254038275333798149594917410394229039819193953565876887806114363270118553592681955566793521269247469376652678130724791026810485423601941044160071422710045733917500140347634585336265160642285018864619851703906793456164548248754188119987121973548102372641935599167369670877862751314125887932521319902522585583726572726494429441460022710922387213954843988400734377642280045761255512606690599175596574815842435188259126459950165229886339737476112871439475497251021450750072816288324750761705463788311160148078924078271677575546919160841716978595304574137764099379553732950270881113136195116739711861398882480549768473212665610473858296743423401861056074282404345113886305522675555665402855390569043128614250469819307266007179737002254475449912757680696565319942729484791115324744246874300053406067334170368514754654970794862847509726396076951662746460334838998704293469147378190275319336310629630770098158065008305222906642498678446301560852706307547379152146139102937258104416309749865760080663088246463285733323363745797957471953973910528627542491115855155451930881652392902627059345311528755695898566105438418757850531300634891532785687600008859850455323220017580291768225806677089664091407951479900884651060921408548062168548205232808083086678231558977170713121354722670898217209901819717723863198906752568220764294305062114349479430797119736310917635021582326687117758922049938083648365173647817269176275153213168794791369026014285547589401844218604494939638428765216379265957618995957414543428306341078566652134829992953054720769526012073147124335672851920136213493594472639007276563948972472424269007243032108131808232136716948027631196319199759431829292810917996206561141663760441844960606058578055070993788389095493629004330924557501551580628263045568967576908863090860765504835161581052063261768805468698407936744522430331297956086193169528187200360042791538851327485482535752058402555453110412163241135072509792261929857676505987416002405001260972247899691697195587051158479099235957174258311472915383215385565026836917931936748735629754216776994539876614892204403752336149029333445480850080101122140808288416985176308834514162719551684218513747107158542336468564605485467149412110949739099911239680940357479759905247849141801099400282763503908288731540944349751549703412317314135592567823369747255234557466267869537935320767367852235846028710205638872956480493155038321171105311343641940898379358791049248449037938643285018540795611981285566091280253987492428066444302896391447807028630489042035888505011875703005608396606015611850321453625609989772217348297954062489451751761753409417279310246254147893650162732166338628168583630702669570597797317020640814974046124556888778929638596808923275735884151775160319891155802503474733396440961253669195245070573445017104730845360360414751754403864834026658314162864544744059097616763196426075106267820265826145169031394175503153642556265131308404898305881722879792815474928397371874931789127303655661033956158226716849661778522584859590595341645198958805492333717266331566093009080431364720105273421803259119306155050880554052905090819855892342933369602987908675114598088921644761667996747072024190708130503498477043085839705223599603287189727977340416568074831936872401518020516942013358227957226783580895286300743407453610984806939521491710962962891501571870260170489003757600108385181652288337012259888336987131758495165698939567220835674720937832118771076892640212645494629480974620263542331413818189617873406970695714730558748173532617667310868086806949234778438290778124606476413667660943831821410705132508754985709923552295351143967047517688248900934190936208330392926727951891110231541293449138516439608077525575039983751772168672260212116823748340736403703737858042616588554338855448131578394601604645816085522511363837295532804643040046052051020319214319552470571155720458889586010249641680203284783538079153366040717566303744103104422492073293920613659656249136532576847555287327170580452812572486286738023107755882638986690790750266717272354998937609719591450161934346587907964950139837222842335315114319829671982769096635862739433841491699622853630465508358635982487385498038686089382385428321299733320405589266645217306325191525333984817037183072369586200143006216333789149332877254847914624810546130446047678695981513337351838752620720867944463866750681632464896693825965093144310759048000166993826770779788724026780095728849119512284400151352719099393357641773440333849124045205413339663585673488352889248222210590542590801010953878133101592764693816306065816171043234841471860382791434225818953535228442609736775289222271306921674615456966722549738323727026167754925248503375043654893908136086639720723390901546668171407110137591110151473605751173298969658735534728433293676680398513565367650802183304886714185839348293777481728296973558467899451201400556747767508766484623918031487420119180156411130489855689956788737065512404347805068630368608590488643251930556697707807263213656481110861406331398047500257557634890058686518910946554960114962580092630380055541037932459968736072959479658844624255662656545792147509935118669830509171785285971385019378129201985490960103851607355311188064016529475785246334970349945111585964260362966851099006799292609091813484576266047110284355834974542935525670373096873820418786180166606600704761642504514110910334544682269245663077049591436002105732675319461388054166284673275240578185810284691961554351502135003941358833183834013187540693269491606602354445415236400049478814890822480310031358335400983977380434889188952709136926119884194651990806483086340252158953872669953922920615620666241847783930183429794864540793510229689215793623472067088869920191855816084488365611668938378443300607935452686991057793095495704105933947296754055381697983144593879980077520880279200844412676935058851911329067634002816690946941263818655492816920828280641631170521373681607992211277093444175814125227600369092489045270209801754578544136963964283403142171380137690793660451080781211288887018749675621436717485839069630525246933483006293819786088024854900726772175211263506963852669922172361219693655100408712892140690544663096743727418892038747148514106266010275380115666720301999085157320883926103646939610624675395985815456387817715179048943632813027201329533459891088910451650673540348190208677809863741434273986402061446925021915324685979710971310884338918839068535581365910207409409598249945851695527982138000454917083580632156723817774725014148175160146449962490730199458022380355681944941480357904691558225863867894362063306487304266957018044226309980188736766130328815740130960580472936513207859154707294522168279739156580462896843417566911793454108008249735270799882715703868931092802272838005897031544189106696652530984579033745091144319933973077364047581362263245984104808029280120295606406496812848007199609982179200451202955456211633130165086984661826482922664046186602746832530464362812803758870965860455064318824126629208814063864271289212312138322828679831304734615900882324233039457622250299869378471150826914155539542181188647228023302470746046350601970611874257986047509548209842779952759963054350193816676058921862593254248844634013378463513798864730663889262199582873863375945288068172474253545330013641143070724112137525461880011510306101804852568077207764434190369960089587469071350763170819120849894636467473949815378843382599238922060250386989440862263750148537093153071475504342211509540616889262645695490284836774666577146571766217811615927012153529181605311924456435374766221442224068659182677939883087068604897799892661258304431760832082263564982313855823217652815559082569863107866736680308500168885365418016928233092272306993333083278642693746349128497405021574093278488895450404575044727172242817249761401166514538914662204085343879287067780663863947967490979067355548422094398041320741831297081885723740026392733275328197228378974273540377235324477089557712909434826742152998922540143205257141208579700094156868268403779421790995490229890336725640903455665955377005748826109413365489844143930653041663694670699295020575847692323371733902497649171646120104941321895192004647998120736117757765083861040369739257033201179396971881747742102600813841220734498234539981298052942645916188789020032115962989067354684815797639865564727580793052224996202251520981958718868809235906731935617848972422131498120713647537851061584234862686763433624445287735087975095866689082249926512609583626675307895992334135519692239722249917286808791806920248473523076473548652088878322424933855933817767535668167213124924995594596014645341323196046577083248594181447500393488149446618060432424833789967420526308325404119188343611535146189980985906280132051460239492013990754184323004034317347701016604711072926150220874677284386837179458986626495392571508512665072231906920640264861168006934309098456927185604507459577205554888099848092073534242708234846535295971296044487603017022034842346472734624061674260208320320573712566499963779643086589252356810631394642896962351328856204023579574490147393838426162412812538170489101077303185344563941723039306176463517353795755600352284405762706440585207582843288802228258119818786305983766766159067485745158415262672553929013338636258375628297552345353354397223483745048088676365525402444947020627120110616269390399246473958830393072486999409378346112430421646876180449602461196947588936472578353226090743180160622682239506678753759875226355279104343031866550803226709666825722526847797073909657558514909537913558795475456467757863141834774121362953473000659504145131657259415971165529684321076658988414425443641927532384557094239875848308356146264820612589184038916115987806988166586990479502999564608954278215219818539888135188900597888978203961215111890901486447678782597703804938198545639563750577942614525963709886605647197682121332146130768798082719066863616016879017989857076269366558965858086643031567447747809281192596979561985658714564906942594833263884910700849645272100593033433566909499303571751025429473598891860752188895158360829832750410549990398261432931188131852391727927154300349845154634089678958900659220596321071712014817243800848320086430582769781034230274276637695806672179391191629642015808569349809233466488347533090086610966945155227634857561766202624952397125553069040915439437758231433785149892421859324860971469675046464109361690392348358202087200445508394872439352371843909364034407454837497575200841667270720250363050819386081039226567839411175926407225091520524224287590104736039535416557009185082370340889263069542253647827155564389241311807726184240036101572358819845983052960737586080075086518464034817843294171167878086632443556596755303493393516941019376945187106878158704309809852921483293172183553464601755893800436120823908905273571282780205903272879122324205890150375076649067755288483633557098969108605163520074270937600448357788148950382703292944927030053820410404045793713281549785363360672472312501675441340824172423849993597617204697955102910116355937900494321031949878478223795398392304472976190750151880909471226230071943115746032723262742850558153182966747459054528585712093426596826229726037816258330903321374014416370490569249743486248444351977218102897894241911936841446351041298074573685849433758067766682577521013943193133625202460180211223573479985827949391050226736420552213224677365865974106205842475488409828767436196688135773496024112905747899293264216989534019471882468012448409546665506548203827727654404964483997677344483418703348712468721756355977048383932123150971959867103624780368786294441518413188229696436217530571392499523644551040459241163471637778904878923384171738223552799802167190313749729266378425683739639832109719414133373983340189924754964058952450500666209061900853158320931791172159204832068495548613419836382263152591048623922445698307751168743765851497039468912429928014475363281019648237469469059181025246246207576333801064512771118805343125522013524789891153163216772225192324962753044424719740716718646814129458505683088078263643663812669320973936145254653107101174927164383702806760875777594210956097693879102726133184260856364105403347818563009535816405906624231644710897057473254729252001547976563396106670268925983798943494201987144428991563633924348358037994237960780295986487759390261999240747270093332299821417619939663046536368810186007164748311572120391208492574813461542096749508061301138841010224946078768725447718958575003826514054147778898763155051679437392022422703346722458875452458837665274143259939376047937644104840111554421058845686099120534550257122583638268610141534397298869715507389932365057746316197827241428339830425087103514343549983442479626621266092908995139613506053393150261588992856316066207372200278134402595208204183579629322028286886121726347360332586564772590375313145271744046873400352837550434604649622319098555785092721153806714074043905104772378132988021397132148679441366631987612112021331255674710709092184689166180809223267301939157872275143156147801393034081924071868516503169405292433427313576111741670320536214391367492688862676804551480975077230962406045855163675165359843541510634447157075032596479510254501764207699945961467430802816767985525123934318411224252708409099569276488753186913698383559330445767401404262456168714362114814080819384142651009456862255985774104773446028444097694679440685183866548663177492956250514069707595357228532263033510713969517495186334410002474105184021448107835635783563241391692275116419683641927667528199861699420909938368146862924040439402743499868901998117046223308887238996082632004491098109514228131277855620869760530856949890372379310116548664753503081212314070903060756495493203872476327362862750434942365955565026693523910019215591008393385801365827343104318615339225075190213764285171016422683599182405354191495727474241195551946151957074349935397254950407929989549038788670267182926987526417909831761288250591565095590850088657279106039467220796486695284840227820338719502265604742633589624643635259615963537267064979945184572053521205520412984947745319368697347592597073547503513904324383777673882556934017800695580530550142164132792449535638456615135255285018481368169577874035186773679892526263385056260173836220837246756710428587356007471703114011191478389265718690256002334814114148211505974841612377301349025646723610098806106559071672348374882782990256051602938790708253616455431023097888858032986957172690499984171852049771328690805803217008581338441530784030073628249319412733489309823926281754077503161181817615890982416748587924973563329187946702993807547814359587580580460413382072313090577152259877147019395264172721908898587490087083711690332705631439621970083037745202256693633189030160564166328349263186214270636543824690230068489287426885696693605843077077536241000496416227307668201469447854890628637899777556269700168991197078360990143187804127031391435678318968667815904872519090724737090353463605699724188841952601893265325220817115800172632934485190021057487385077316926544172796040690771345797242541798826106754910259417797900716768478863401911100949818221509351505778934376047020621845565483490728992352728117678506344214235224056008909148056360511837248298808530405703600932404553370615669442797631235569454292322288823225216892183636904341834153841528229110805204140548862567470063660670621510343121904969279735151463014837920403157891682587372262121785205827077165227893667712996654542312562553029474026138064202112406840040959833083844858716792151656126512415720487812148211964042931836286918130775441464918695482859481039168263280088787174808135550889443333418523588581339395083103459896497828144968341932596716279555356458191977787102878795131228484087459818200365239976668106995614469423484759411868813877827634473058306329149707983227486926836666055965658976490206447227879613747718353190534197486937394968619727989624671917485671541507949114410815938324824166802226216312072830906150084197670077779009849682684758811253841848780979721393343270802019124369255796839407105180189216349142362765807633497236552600494753059854278761365884261613647797504116420474602082442193721248875174451556892790937413053741518599295874459750551889054846524731845948621573881886876443219840396051289839255154919413022587815266707898871722424064664501625907081930769602497785414183592116565189864501241300088323487605196950128591898271035327948157848551370555222084255240584259431883792837590416711186887005193269401431866905835531776286866894047680110491121815805411967887171606986742054059095117156582970013448243143525438909284937168539462606256951252379176945777653614442181091813311451326216342921587733316202780883452337124855310099607850264357942899241971155380064172457939953447516693914955540221436679395967548355542973518722341502231109993526266113639922452809650977766698335913509572836958388408126150586540921854672087743806107469592888187731095986099022460676030886457403659287347589993405516145871224151231848061580242353845378416617513303606205307641396762250939770029432519612465403243300443789368970995405409939447774135163673601203209744902146802149400411900222632490155316998843218149324896573114779077323652127941718883736472503323423422485369858676704613261621146145352679007997284257774080807703328389551768767132204106318291041265162766242193179335749671466608786601553955347892700888454955263697335855796450383265560306606798421163466917365045748110266799950370477173510004970616595649216550770431898503741632696423896183303043429860533442424005034806707238871110580184142790756684858181982987005187180648196540913861110791635731559687953216908031533808452058859030427521545016431415676475837290868181248583410056170924493305211553297385058399635450814508175585564824059355293403651140224450367509205585763400210623723355002384121025702030070218336921950042861890050455137735255086398684661272853565473304416889104309225457690256203295688543332421092684756953868229021073053117898266976715841426713093484906043582905947995896637317341363214045428391550439146243807716335390947378576814761378367462659961135654682623277612936488078150783266262176783062475207768404987329944430599099775290689982210940130067845068719419452608341537942728262366831782143906886672178275624939686816509615868421336902363282914408967972921210710854400983482151300299592289924605803969905251632660416494415630840358936554941373309851585491633539214200709293147707070575854224330233623031079316391886705066238972554327417382634220261181358055217429315475919953242837919707636446416829099011999058037137158186051671181700876236149377142158630538380269664764521934423706350476889150809513595591969290127333971415986520246160122812920092660606855819132055793778705125202513565453429117182663316045631012220097460534126860592081073055367551031235956739915725429271006137770930565753870481216642428835334822731998666287442816880209918466580527642097622079249701970983482620312333421750232624368635875471320448158471567506215480345472935153634966133770082496187367950132225566311096921584536760812267720444044592582998907008675083725028585055985506673557647959857819607142130602817155968216433056650278755959784900189473417760669731794294824785043038514989544431502131558173051759395932741431260409619598001787588424885477333949445514876131350356204230003785353154656333044121337888860398089228806695794881702266631816442276543057859352207202967141503302851920849918808236647928539809165994844908178887539228429356712397865155734669890052198694152419256923132193712277485927345383604776518239359853139652647316753277586234231626637396262427035924441300750339599624472320775815034696484550342077997158824921617924253198966126303716772240570408608141492849732749454991370673506135023753593347027210233079764719865797393492124365466412799363159721045754460626228838171848248761235500001928873664314748342111200260975981409565908201517358443769185344349845200277307564341352772285548466824851465492456044821721094768131045115699107694089597443760602789896916936604905418903844082362486030749353269129650491372158072989206997640875819173110457566200602283583337447898444834919803390835926677095474531753797644904937813656799940643912037279259271898178233117436978946561326536896840622471139416951927725139531000116325049284916087225318339734711273333054375019185889272889184797137575735227812515685944382700739452382560930983769510144924655502877393451786522998436052256221688755077644053409178113527956872518377953940877799924577688460004629956547897351999196414087398954956041498075161023633001103335600502541284374621128766582180092522939668440708269052959814450554267718821081760598017059420273703262503662830891772332398675335670618413717941532950286089022930817120245018013400339449286872891757207918004842047634665173388308501393979826607592436961332232469639823536493027199132699136404549840462101526911108670156177542669418711515872375616158261207428819010415213768496622334297547627127638234720415958133760105650736260876715906514609620732971982599135451254486073130342261211930906169899808225505125070142696842589652663921841756052498071647026055714133459481976436372221073314682056890743725376013133665368562655329840202027667851736450538562628697639580174022804822021107719040124675855232485274046844665161450064285683286332236251746936903070519903677638698367548924215111669429455805404780803104353735874892313198052559518593557119427700858474639345647773292917927210536458264044465127514934697070934543789580949292481128953939103298086271049984107669960342654685891444921438936994651666266212472804369072150125853874800553677172362811817125671655964070885127252465966391927160894803801999789192293421683250891256059895274137932258175535165597206270325673377760203067392770819918468257097008961830475697082186644964885135210488713911765826110454821307920059730576427871802698800388555971286170014937706691596078988962700002431064075872819859480897913825097587935575753976065563823459195360141418190462249308281086288682161595262925822867362652350012276096049655213419646934479849312773509522324269708698517178852009224073544652469134720817757384742901681169103702874435765039561897509716256937713571395015395940768027106670137809739983723125086958944404833327843343722140470928598146282778796750985984311403039035279009069031719933119025705398607483410644413934356522887602740989774465910013584051583905589839103445824038155898031475659336355520863360040454287345281906328202569789201537956074154250945725933490424756911783966455531703305102464458950882479175585179346006293156532509351160582200916171346398907242533312255581259133092053914946760939230641395704987973276345602461111962649268784920473285393596784031382533942462326076983537920624947543652362007638877214580211980835396914326396604793143203363430385220376937291902396709364767779143880042605430926468055340901765680715810395644629779947816194535504452986275041746586817025294906061181591156997267473809067969060492885715100596389693290614695891045236741447019925289243556113117786505472936117071710555327794043829587337653878359092084709827064282246324779004228275475939632402792480473808718975860431442790779230792934793656235289004951854030738093660810086755397212133661616672773442962340775756181741005625800570118899177719909063292685033269718048202593794343642812558845035667904961280585791239685947469003981888770185503375196498464058069720022259819778080079068977531051220543624014812494242074640552086513500579355660968220759865860468927371765588731673206873843221944336081410737281301741327551558355951783235217289979878705462558685407921383763360424900340090010569127790613632391936181191694542830815189638958232884750955775331001608599214843940970384860192942899823576558109977871453504949772320176519398744477942901209973903417746460757409368357774095067031922591917964021793126306852794227986346948598666242783426517415449663077202326639875862127681156897622584093190560518721910833706696167901184766206922267378222324500272063510431835311413705374948809436674368780541777371669830907888612525919311048119925587786718004534124526754758244160904849173897990802242913890234537202271694641804256197592054825926372935123560994113847265930089319082292867888764661751379199308113082772109231165299453109615315052072122373574606295558445441816047370854998685985605501152263110771148484521214598953697193043232616429927609169946394755593065901940386082076729103643517380693782629068423877220748546255815329823065675422150328586281717105112343914462335020831750292450954419906185000298957624866892846075943785180929809301789275053188503057549979996197932773557252254085072269575466366310203174486198196040523572477651556697451169274169248764796400890435871056480795701197769686164417594635843738533878133813106734021693977349442435440257070916818693612581296443206506589472549373164612756519469547110800144538092824196486023411556542595442168622388551906873512978279356750602456681548673373113148819744566705988874930075197550885001520503371738364996636765359293297562327686644845982902781209232737362840364173988334074461048813188097706026503975374079406789802580114055907107881559000567392446504255925614322985882014870386786363268424644876818697091467404507833239305956936682394588068465885112218641637842214606077571854855600403946983044295308710554677922514632080622679694255009069826997969944029382343718248415843156802571162709571386034787152596381756307985794964952358135861597928417109371347962598546318876971779583785906084607262419755870698106850424721044263845061038145617598670727056235881700943540297778123070652266780735398897086618939823393260069782219372141575578736369083557797564114573918741739589165339455863357283874083743538632936738301799177549113392207286748785685368710843742542560976377417000870756939667229933039022063554227566668193723299581681722547734439841961698535141601509464388210389995865546342109906964263504914128621805509785741984783714591018584240280996192859223424951029814711483689684843146014340600318019433656468941880213445580776437888109881377551834766793021881193955254783779067743905228079883623964924275955377988734291281155739003135800330134660428612085472511046063523920741432696009264513336591442560311829907297170184189211537017783299494210503305338419922061025184113842489681973444828343207194750266676964061990903135928979749717469316345866691455783975470858673269212610693459275542592963825443569851924320952783091981963495390307910473847596996018216591617430498425643750586096014337601316814575482553501456989119576656082233120984605696633124534232616282429348526808606202962079481908083814266732893011318094200825367072731371466462015922298617478092682247614549812667232158867010610269534038506046072433340646556111144676410272807103586925800953870708991924321462554204047591217454960430851575116255115194731829162336877766768661071665405758678661462538377656540641645531106832562400318217769978418196948775048878378466646049454208553441259836938751155495859918169647710586563607037152736960044688035466689518011014070156553258447038221456969625969291957369056576586254475138893488876621677956751256354333504524076489135275866454680718358440502798122676228228937075745109405951951451762594463749865105764201114022820176896323651337976479413880082208120751997133160143976424955770582385007608624094441612794844442645705529654596831145350598975055608027009919124126304084234306619933403205341382144285620481772225621780620138096180533115696283223282866774561063599302064763544954233830350679638940923965728196846356974486246929950963582602052990157643420149461735726389771165073163885006632617724756859704703508920411665628397220912258326714300566954745367868269573820061875901746330083724603978816198691364851967848664207642446766815353205833880090176838118362269251707401491852437515950959554671916616743736551445304360315700245290258493818461141735375208380398738214847201855384129081190996975261467234228414883856185777697447175224307691983966992449790287725342104815106138340800924094972917206337138282302229071643033524895585094736814622339726776113077255150339361464270586972794221638913709644220224599770248856663431194807024317594632603227728015193462628378602612098202352352512123546135801728476575930799443321413316280407235044413137787584930192491523151419617587345098383721933403239570608997079552798142369806065817843618640161784208107375744850988334939017423325465407971188903378639886559863444092980135961644888509921728800374326736335935334683829298993993087841152960983794793400292416953376299561933505230731780608012316673464801632937500918266831992664007993711839303107798760511789697917047647225233314402430180023183622998325306780462383158730193004582191731700994479516714892011599737274296590475837980722068948434372327245419709496972236641828740226892220305557270831128276316058932314237511598771251506425506966105720659660527723944818347993273271838846472938162933100768750798690703752806021896494762069779284199297677369040341814908178312073326093722699839950065742960614477646517314539656786249632079506140922426627641506424191826245998990174329037397385624393061875179470502471820828732143789387879715456824044380335127454001391355936270565751797274996501384366321716429410550536121635898322499762154530939915153967166803299520845212375879139139152323755531030567403929374772009684804655130775102909895080762011622967415421600368902691474962151095602217929235788614351465479138209143196704191882064782212353299359262733241490646284121117853648222292206621601228800618481309432482952835484788764189138022731737908176895373336002829685998701026627186320990490166140999532920021266501981593709430019747513526303402708790395065144495495157251236608207913781552646319868994805971564697885368226547022247257787882867824710631082910180830701261582650706626794043479376459101270945649693415583657684376201256578267059862253786148802808115537794506652477021630002300861254424015809620885470477574200563913094863821136896624496928715066284480437777913492844600965776403174018499770440071180411116191587766005779846533456431507056352493955563845752571458689580028228420064089343517272519182083782045966297507217711562190547958296101395521792849244095814616770148275235160257899952789781856822090699175984745654778657992370084089202145472202837497259035790568005015497885212071332975159713013434703340096477555338490100866409753261327875294904846685662434642394659251103753757251036597418802595564594810081022473863207204603554025270038410919465749974911499776690514847194615605345750717652147329840349969272633977539273406858636988700521281455368209174345203681814499318992600484232048304696984703482747627969704894249775967866941999187585710226431226470635035576031001741225842288005868307708612304535857125062865785242635634282080802892453389884009759049982154148392577767862280369188695078155750662751627813698950107841065461894279763127552721830814213417012311749847002640353174672095687253807462540592677683645909983125901557899712111612891506706556367731642458241401537777624134910063186275882087852359375067497938863302380992590009735353055838506037514817837864272811414844133558134347273153126514329105134268818564629780418782688927695994112142257910108628621483285033330044425391682026020734577277319268525892871666294528390672100547785604700145949505345866150247084800951191154516839939573244553546169343909844355031472945896338152328881615821268330335925605994362954574549003087720919089853823488321699614691958030240170302359427244258141241448411114459452154256184866409454038763635980551012182365361941775729218650559858320770619348016796293541510785364752503245435988502849832554157171628499767460099495049576644426333349353678601371599312633268489207429182070764604479238872810366050498774277379740134265758648699255223673378696776742663367901655554342428112484641844369486052633691877745953779441892355348434967542383292821390481275375432779182981003425128325767379679111968286172985510394265850311736335220907406592838705031614132592632947934816707796203957713823389933860198883508191808587463672513702734834198222651563161951160992097888792299761259624050368752096213997478829603018283576969765857264824882245965457228735704551546918119433758677084685974267674365371614573100082973579631491513796594556808991412900333405210606880088150980420268885674264837773259080038177144961459511575638385103337070322667021547285229717228351129412129095993593579136922099573419200077676958720808943699001961599175530522086879804469581400448372639821807496063242359740274707585333934183377712972605284318843182940447360193353496855671446832673089519923007368384135693718169326411807957427251389895374299201842699644692973998566953801692233595951534375158461912697492064297228046470752618071426303382922043982129016881197297845546413074685769960790427105240117772189109323712638166137651582517404804891931572417866933700713052447961074361361459168265148221380092824939809820365300521740186527813233979207445385441185803988449824786770272674217942854007140709342876859405531776172526394728999439289870327737817986950109000709304647728801543776057462228758310667890438495776603650975808074970766918251892296751338902980540926686387924396304068469089729525812254799050646562516471947670645422456823656529498098548589899987813991143462859075009935188155662654548896861022516300308474522675159070960340614290577710768640445978970825699022227341082665932438164987563751869932621720681467459850644265426954143031143083031704814353086900607385525488444032543061704287899621342138730367071571810172607578897291590294518446424581128018740834283580301688391604778126729826103614555706167342566482529870023243694467024384256502353474875336828447592872914692574248822737849766199206024290944368214857583377678756466797833046843066649393618860063492721113729801202070696647591631550059705102355842870690367999428570709678063653814727283134786657505259142443807874389440159781872936444577153157750175785554869626381242696865960100483783683680114174695501540584622679856304344714759249183576085909951451994630791548455343376193003137071764569585029448314083818986615270682492133381558886373595235323338604565332983079532626310908030764579116214060711949392758588206729532810934167291369834219752455912028159002779602589401728380341233433384742263253087932666052754418669179922878348585820096411177579622927428279263150433410629671940261978941074196741867906252153651155552457609782672070748954488921090593455386402842012696320341118705464044632056894221431613748904832266929294736882281762437691764262301125363699877857217422087982584727301402332590084011757420067914441802176695907322494054771840919164890258494451170916905487513532434393196430036036781349071766506665507530893019563086961683021601164469792797951205789398733270406510356699849404499872442342405585852023135838932260004739514555786999716940382825929894385372901617174203650259421860546794398336502743288595278610843581605445711922269234981726756141911989122251816632474911902609760678459823510177683630689083900589824913433651674436566998160721044258821820979262721903314614265364362574561940225483209599593723959360662732531696637735837671776266155764973822719411979129631168674487421408626414237186522194149577029726633525252152434855723056395927941964621442772359223034265521144562984547861370160361586307629710010372939724961211560220098475965077784876888400732260470351095985585354707158707650613270439393869007504211426801684841233609579746644503018251257367561818569237864039054536228905296147111388611479170508373076038575933971877209762464541303844995495183875645082722182710568866180268911895582502977873527370654713372549869888660501323089249123522852823299281332228561650669629626546689900690579753596793142739997740292607639022192192058776035630215027141512530086045122621912810404002627919336357590064341600996706688902151953942032851070707890636556864235363665819161174083286883034775513479622109883917812172952273719687416977191282534869059596847792422323738719710621574479569728307451832035230035066702550393190184020192020554049870981483195771140691593795374639292536648343085713242949689047601789473370579810188548354453435142905298078778870673384904994319203345688445711174433206074394041687892491051488520800438685199640302373581255880178881188686890755949293822033232110067094026029843741427194492755046765454848899806434339467918280656759518071656871379641727288778977726875375232032087365659094206126065623851946869113004157296099369849504649412807319553806841361065258055314746026110007208023470141412695268268957234634811255479740008184829451937628639616126565120284391016941809170556428003414307632234852532753236157630284426905951696546598080889134574618477740474247784905149346862937991978974743511617220875854384971244641165736575672564255157675918542020945309017331920552423358661545204064937818346654165026116196692765127304499449012120227520999093806732736246594387363301711117940374717840420985238383997611191832935360640655517525023299240483735412942483070589725298239611828773910159193862564241941033918166607323382071812706248257965991357930680884111450781155971429352117949425634566034937123453519227333864335666289814441715762243137944258976756445465770426031391547638016091165432691324571819427277331952512635060074533985550712850766189266568903588472537576985899967326459633142519193457890738177438830361851617288542809510600312573183206210448133576914626536155873100051227898873753764771200846290054078626942082892252258086631740686147718607570935995255058708516726594516016806196021126692870904630147051084765561025475552829471018076665374804148291590606028262179402857414522959442497710883383339823242372530449920515125604710886066560400745413137980886222608424868368283977536992411039302457446288659738841696701966037077474057139498945685178426224637599098062995092778255030940332737594147273315801038042464714000705466893726642933424066086833413996825368903498429143527690408648434774812367009272791020612535329268852365377474760144138592934680843303782425999645459659346792071725475244245313132349416837445931671494881327899245765556409823073870244390569922051184347399959947354986502698603777965506689642951147352103616292748077579155032242444970087856172504711271183140164861617801336579154577789959859137296575160530682664272211766341926587388395043148153562225931079289149363198644840040748134020947282960079308447190114455723040143417674235161434921334643386950160534579027720695892422268110541494670468185658838313133274857584225066375279095534581101922217788897132583586051319063744278004196841497780058793551963727932052259346054571124112171738989563417685383606664928258047363078909943026465710775177087076540326958197258105104195071419565523095834161801697093041689700833078745322046329421352400387332933644324205784613395046955041219461803674351072081628998249346762036810428124251638057228498436655848398329069131282983843897695042870437116041191927146597843266387345922142386450635361076949613852458320069661804313327530982128354741864610807173180907577743335624094784157418254096311260079012847224301791092791431154258540722166607216065940034145708180979095686350633219706478392379989771099751623510489198761142213900463174928815297209424041008448245381722153161224109830603668939845291109544263928716524646411069119644517501504701560439364124826880519253833130664084356423519909573174283601073166107710562300209337238834671987028636346044099569184121180755509569469493786703026586452998805239936983402908839421538127368036445229563804596854022551729353217860357070074174263976049447736626281430020366658460621826477076474344955295054944940568779123865900689561524841451779600818980031491636665407136051259554534142651931690020389750209818266430782559458917431847274355469079347682324101461327248504776586802520332048376756602467298938255619203264217729468370954287468163951479958066224734175200231457427592629575583702578264782623624028369516604463624666306594028488719415689345776842928981822391729311074495039322870231017540931400459863425952627138220455935246524581728706923934214884705720661262974023337608583710338243766519888258055441541475812219323272571809219041377926421728049326090934837141982969805496153002424908281846536981517668998000605005337703937864774773417286065449604415035458789127528022218448345031369292472878531241418786436056379266478234151346039982322978698309643846368519836132011146278308597007189896934031815490438348090093220503445570834633864972257488938882145920351097365777465014777497260643340973562954615947869683033053894552824289215961650551485542138565222286959121510254493695507346195530308768809042247839767192049308875362936711944853149514422689614281413063961593984520147755371528114010861309288976578956386711352980951940214754179419169750872017583934706768042773235082082611844981550872386475000778924408349705738781864446370063869481268131339657787715878345979728844498051564714907254054854316174790258150158719421171972615081511877021943195671474707257462493474569434014114286929209341210200929134466773479518313485472117906661944263047680610635934465359927935989172295655839901336641414713063657644123002276711875680489281320168982559598057910399587403144823908671385087757288118307992950192171800533280445291167190918259505218638435103474422734750391743358700519217838165001373669222241041160279589904861337478286457597071193457938380768628090497022960202177394547419048508057264430734285386849854802339373535528777637038093490305818708771153451981759147195655265300333455613614628081889847249823387473338106760573381722759646302581714756487093842285676157619373043157093273433373296869591003347091775216354137159733286299412085472568203825728244199747539319523868172671012398281963709648633223006977062768727129456966299291570369359737847600364826504306242164834499402137162007643593972490861246344408883972604340894184235830987433687385629377964439663737193472459210777767704764272619805173099119558935419973986621818635093984517946960514198291689398306320924194968424843824838821632688007908535578815595975866567911090586050344664969345046297260183364064819315854407296414802502347027855952070802318105787591855036431137558167281196591616562305377879097681179430095042338885333590446039560022193276286200036376772610109561368475463493385787555429601368246190051450712014345022964155134073341730875371981992229855790944952412609298450827424970918869274455179097746350809841001582058703100250711371892208050040097798697544465863102726792042999083763432375183357037580916183670784520403584708172910632902838241079286757373336240452689889826277328819877010870294840194973340010693215829309239268274948049054423851286268549692235253768137830728900630817101105149180102860580804030842093699203473273351435399648494158875730375920127205903849533228880405228810500644798302096553818359670538244329381861992411662042379740293079574251869413935820406668587126694839906708256249978940592002114217360129334265323088972622678163467346185166423543289560979058834438447217260755934500653786210237224625581700608831409720381914348223108125608500718129517244547227081544542981864737296984187399711851043447205850383551071790553556385806341214974035518035601104478221736615112006089088152017430875595806467129111456688447853266709908409684219722517860085967121670976509583493194603382281029268182686051921127731466702756551438850906581475406870472592329759731780664395820940091271708707429906977775000952216983816135916054090138198215492974034735339957515902835908914813963900947390236797775809225089969587192765894393818698661936811992676095766301510978617012013948878212005743574870168907543761060880481470485361582417882930891778026585816096690730742370495774134209030322584920641114745385463088982955604690406674589228513825577723895871636320959881465080218439224554315892147878778059597806315412262764302821779585542374308188244271702061296482151350390440215845738445530381901972719942783790509661220307699669598012142690083870060844744264063840499324506913362917072645215368333651822243268300738884090215072594311471016191784778727376306500499786471705062767911072813640777670596729918493201305161451603693744393155096811928103436679840603685723166102930864472974442567390592578827678936616985923340922175275540257932434436212417622459422724550085372481040728842394677072734369497736246530030357308921623158204084880612006994500675611311456320274269195863975815330232665577686502714873957899510424784517626523086613266342990848600209221056964030350754958426989043486386391710207078831931517245109363652662596706505461300551922883098528175456215919592996336649596503193502733175808275159832890542895876983098946158230906936399950179735564912227832718347799520399836836631570231319970809014536447979260151758243420680454066416486271585719393765371761839290313249764117867456444293898460867574065271610662148552244240847276037013529634307501800340330435635711860613786452572174024222154721713829870249702465977226916940757677724474303090228680876065500267320777984833262583209072281426486885692270826410701695378502000425282158147793180589837823371822895718735818082883035145209183787873305838961944293616380177798873328415093565291755440568799912911412795985140792175929363510951231056743547599599343696463413034273457919350270225653274832407116912784708513979499045247064904295656416254515301345699543252351599239024902284275309003589562261288027344740119703941423808857301463591699911067391221850004940417532196633344827173090177740080129851605049542114709971446918124068587995253018257919882762150206272990555281625096994469590514734692854591257118872792009207598552072517698903528274530291786687859832539533583067855550234584637892424089317320878115911526107149799275950722458724052113775360392932801320195637256356119786406080302991726483921766294965033692889489971055265978133246146429476272152600814589688926195648862528547322347798258561910404907888777360574642832462184035384864007572873321961389707872826985358046043419268563091965040273250810694523171253230820745469076596618286072718958141182148812727731913024554704713112680782450443816993967315117369816597206776028305983204586201674229334915220370422523842087950277156895024432311750644052442893861064161496175320700924743547681516148137754966058653411519292842828970033437257698303810600920850041526168819252516158967110825795965066102945940450276418016768785963225794899758525726850183031577151931860232372265273028294413692611702511790073030967527152455549411628584661367112379928172376613041078893376829834907825721724330140282972281284836093190461564746347276431765583767834166417197298988932670709904117014865830740262012011905607394311598448685371372580889641051147670413459334511252662804796850465095037482720775189506014797041515793815742031336193721140599121080351138355630282747019525273094406424924669289457195367032114535612244230070794077738676630633570516751310038710114672683658643024229906594599594451379463379611269649128575432285905269251245334967232769602570661117485839328753767818206991066977692236831966650303832211803855116290069612363468377646144509877080496366951784590954847324087072290168428078007067849792822074037096139278292315375647900185550474792245432444780324144973833926290705325743714711099580667566548393794081224703787772511724362315957483335593292671766138847888281272169399669198595671488197320470850573435259223589487264393380094412010747557658470722009618503707540990788915406902269765314628760326604129334076831049513492276643248980810724935776281372257758676391835428553431268421460271456024247563234992391161702875287412761119110565784430757966608675202622126851743405520995739857395062562081360191726935650943538758823208789963172662337412537267869971614616816278557568625117585817466855814946460979534629665233352994835849419507578418507428471172360105078541382522794363089534526844625572464140035264817555152839865401121421345206878165393735843602616743084501464769419773089128847775685241375420234504782196467563993465999457016005768997477301456904836283321485726168436525881001380676969273822152137546155390650172959618798277775741716992803178345300286121863456094834137095749328581731841818847583497966760790906770295155999080912763319500533392746009226968382401059997567759819615772059974741053347377207839950963863781335652414151266993784601257741443483671498657246900718516877533391146575792410437339889954691141171110643380689417502222067378673087164895888695603330661882341783729897300394002606883680742218615710302156579797518341462053252780155076910122897164783753897791211805090865878239190940569002763543248337310129375644112185949780093760706385574716344665664058727081690108644175459691217422778157365319243305247906799100884192294494205297235830448313544253124122258914923072660930329686105886642844333676274813805506023947876593553753916570143576752585878906490416866177283906874346409939127494419454453497604838460851405833093927481755253072561684764457788354313380732038290971385716834163522127094089058517525051695823110419081693564847543761727224164278545489435231046573475586305434855170119075030458544987251793502010716477390878717205226687651314424184098751034563960039730073694551003139355909483462036292203028757282412154314891155900824834989751291063136401930699537146785242344024309327610554380795460596420210156968989449612867018397043957275027986772127523669223114169781845611596139430236985742605872744991799497657962181197905280298598137977497182947336362352662914044813362636323738000969101534532508031271728655465523815586080766761360356058728085158299079822785016723900983524200960940322883998721275574107445156552212714268948947641864753597595547883817620190304271961836116062989220125110214103828846169945452250584457337728633006759016913336006031421296294435490533723075037434717135704113059802132976772003914149035549555776738890453863442931591303979451857662877085497621064825093821123917722849748013559175801913098910924563332824509412147554135217900088275669917764213313009075424568105444937855309598389072582621747036014667049070908667745331296735214547801042242588570210505559177078061185341945527755252542133658347752571684276328290864188627259107371855120265565194067752934002397579366264410430974461894934864491731612885067099740089490873341252687057351552401839034432529811444049307767260083403811491682901736606566051262103427507126545744206266358022545162588794250913700387411654197803417487547992319529960897281058942972152451716911902099765824487957948641700513251415885066862167955965560715882826670177159259780496367299219548259567331462261189726264233305164212731448741342956600021189123144779795399493288341655253763598577365216737554544233742446590651795696157038473162540175077190356544174643513563407642505932444533443239042423332369554572356578159993515077276509843511746618365119539843107933319143666592094051794913299617822106166043317928372363580461095701355517022317176961926569651330138121646130548770006366861078391767113176277053984594604656329941907130452992133243697801028868673766709684205103054176585325783901547699310103849544645814736446392127328242687930251376353458903899814455872488839853113726944527969665988922963051993138864844665248227450775698752175620956089388258135640722804005468406029487873417158894469848517424375745510923040602534281365233993127066452087678132743846342389210338729267589007392577974691245786153746922728023954407800140935866265379271410827794183848288808504731457757067575908837046718711681579677330894795861509431598304978817178360750945859032424189734795937400742654814593136864232427676501312274712177523239216469650137146684290433686654550298533507281237414442107527358156253535636312828911300703728964123129480372669185116852388436375798076720218483191717842636870256907791080791139410210364487883055238930839578233732524321340325100479706955878835961095445653738351816233573799492568834073210645411509936470740903885522368052765728493246753455273788857352072879219166824817620295641870109888032905970451361036489057154169384536448828360456953892834529841906504158824803248707080227374785607436854026932551176188280955371461175220159136024515298002926276975386261288688538436982598790665800654961038370562754481047265469728598931235478591440728824820043705408702630190889451309138836662187113315487580175536876082603279959749412336287864603492246021044032121602305421642250418935431805851651931939648642432736130971737886355009240392372139909910944136644283120915451982300796559330037784889855520545437863511381153377419528994122580772258786854428383065820265532326032008080257873807164846286657974156000815553250451456462709314883940153659880881001945109164353606689123918055805958001558181749417034937519401171019868876895129204353611368610049320304383622004346955248606031543312873352458728899443337303564183401753587032973975828362870130297292374388902801059482062133613454770683711089880735269897324418787692303252101726983042464571921893120128970078162826384831713462693607542973334569859327381342112239201333832948378539757839254838094368771892254394436342867499874798764894443980893200618822245966705012550787535434683410268101881157588437357131986579432143651966257660879297503040687579419078595631359423173323656783688416267287981222643786983466091917942720809557315879445422041708185120092497907727726699855763102424398988478591272566599344106730571662464275323506780146714180318254128690230952409949584978224773543451239133381019864166516589120963121848476015884214925892436339281559216657090587219274201831755326734166131237184053265185480749984026027574016936484710446933603785377644104591960192109368330050564960658918660125022274747114738588909958369111336399666397812320312067428762494699032526864889826342840663547110055766278656494370549696148286142428477727890575293017733439975250689359774641876842521774622787290125844396437693381331568479568335374220460612894803226127903067983050498524043978402182560672736377096859066637531292471386725564036331619394955528648802294711532920160087386332919443631833350251870361426379835550964385417400060873847109596113816919066493668397710744662827708653858875686115497997336097701807286828020440296236278170609412486475597433869720579898192987690961097348969875923932618299958605158337264476080901875250366785559085136472968405458841343798911278998378066475683176502461533752271165462092108281752669306437309912158166777763395505301282158687390532505738068141217332087446358518938675342158623906852403495631213689040361586821952319867228966488247541095894263599141850205529404576243348314334469268235552024481825089682530268743340987755096084960432182636134581339740129213710043857166059475677646026776177337087478634583852986859949616624931000927919126369300724086409634106803031716622317440320513664725716475292727343104880684403677897030384532996461411561532773949134321328443278266085907790522046650710685520512349665330915148797230789450850189280791965631314672742459433439132050663811706114913920506139309218068102172252614839689388335193996741858016594711873646044915230144818309920988064932941042316334871966490586564928503863979787409176229975822787723816508970934828490186504572990818283274391059362002335196406996005725927507298713621047287912170157154407605441423086153127736091183087342117073789302459249606359798801690737371586357248793518418858913747141556239962226805871666801631071025528808761746064113681886279820591797893186992773800666192153947772170087779500975602508360920409081599852628856160487269505953219154256316025124077160477882391364418175149973889572705619588288240452584042670138736129410231367027916797506970192617008353656412512613373473621139830119692293696206294308933104559831171730653900269427704130035716282046910144831062636976455035042062466234277233837126554260212286275550501684820232006584986325401702259610331293152340675295147230219699870434159744066218938422263576135704279085854010465953023592617103258900436947663200976187389494704518957076562067769612717985675240242647369516300978631184073467944354178956508226672266394877626533809474301526367677591430120222313674748540615332415147734220978214881454971187821451567687301013958678773454285405258637827963334777730096177322914113321480843944885243147978555208840453524754577529856671685687858867515181204152174325297725961627258371093477680773736796446738003941787648583969274579530532225634600073774442613441935424625104482053706888720456904231086629555100955687087954547400145222645171839402929770470256336844886025965987041124896105712860974387947916825124530378932933629026403655500958722506948238779091910581991724845108304171556184425939533060126815593209831379565908327168861629005282424865419001732303580174403614860547614790155359956445720202275534430999274697584652757911687447048182856022582857838018244132550614552007767917453738137084361630624290694603677608910912743529285794784705145667074425291399728546190201644067186933291638113949508200177913409268952993965507313882806439333166477520515708391653624370340457828653959616476119870713482800661128018496772599254865107228105593440667991852070305367768740818182219253359709578489176380582954902839871801032875211075045939518744160876530378929664829196011800969552387327056569793509320780007554269373650627325390161375564319316651672564246715400100363982183674134247474495369471593108135080246051127635036317071570862522770453683810493009748700213454703273913268341783962608871016370384537402505506529685706002253159383894181582536677798656236108401154451682797020297487727376516070908997799620685231136937231635683890526392274775755598748057374707421677463736209753095457687499382240873477037507973161197342724524896244606810297793711352287995105929763282171786858079664399771163626220483897071555031431093878644762114589544681903021141421732577626741357402074763792396898420499843482330404351235108518373596992252746755035631016159133782008385986329078848435150146668100175519842673417661279071576500963391740987203624295067260959435465412125240934272867309917714981967209655496909612290811253083475968262233661640114369736695492334016610482108145286214011834882983985519295244923408509849664527896510634776805373593441276307311205904352863852527848094229282047532444749140327412278843757681367035919996251088259388482546182928607951278698712621264040361577201893586213940708874828763191950373470177075571689857725365922935768852651002748762632819943821361246103556953884133811627032479264237809651565701728046706354361072784270978671841645075707682375417778093618312794619653671652218464133494824397588184134698691104032474054033345561341895621421858266347188362323633641181529033287083447456725417394850990920999288606289991431441959715063827466625018907468130452481742202151758270618910683574776182748655561052097074437050524734147852681407600219687095568257373735569904752447052944758979693638810967782286221152890324557620453581756858033336754230283162324960748089641813522882937875393092879507257104873155238249840498544076502461350188499154712467307362148572716301859653680947150901293499746991842546800035830701122628736262670852763612631430531960559733148418728988829327470508086670693449877227297124411593619403119503528349983435518913779344111592822379538433644069009085646732335608621247716804877828250668963825760257989196397348928430566617038646422576602287176842946181862729955811612921716019569772745173266018349670508599265721388784461270410803546346762198016474143535274694227807389661693949602627806773086685567860163157382470246449783062183884094301459199203150522246387942963151622609565929488271789724128159541454129891357524894068428135039624137213246480457225833951431974218250842262301035269135276344499701137822173078281394784132455373275804681919564819476780405497379596024469451098113461338747045580810345434101416993852379375940072349708594285724076854934734322651036883212786505819954382145643319133728737432234708907529592026077747833962173513972774926361244923619408971446250114424487284139819021449644463836983209256726790469167392743249519822154371574200263483258752686152134636868859227619567906641779647587055227210651894177274160555538461339300093712498074329189843845572843673124105383650876681739229173673115798999046863785547372293427701417557415746898720488083090576241449166449192916169384985449900535412900514451111755307548468616959292335409987470014866465612508553737984172807974328829986819907931194202556426456923603675514072894039444930431133383905969808254435799479456613349030202243400037926063044337004678833730874943846385886536267311166837423837293051029563248245344782339962520536520467336313166205459330448927094919617988046286979219536145697902970498955113851246811038663125841770213798577410847347128530860972175708461327584782474716370236856717051998507058282461314863012125778953786470176881531838510349278189352617976535035633361605300699941787690677903858431528615282846039244787765491851073227027602049821538269465584052238922352220885032272071827702892109717015003641359782582430538715333639464675152821653646458692759729937297213171554404859499748184891933501574640929495376602004265487086839624284799250699300010742594459227098671502189432207265834934975267427512188165337009339272493248648850069492884249431423443133950986684897203467910593318692342655909400071420444992470004019317642391969202494914909739983531084172710768830816864686114494112280031464291519928077972695389916759696214104186771309237696335071958115320635274174968874310715510114875309537435599249963660080964073042019454792679658320774242521542166267615715208766444889468947425621452004198749010194263627770111395271131751082645501486879364699212586775444039749736029940173044911122764350805152286208761619914675477567644932206001142460852261090259038728934963733819025476415073691902622271658918186845619191691419933996976253160979740465972324272097838501121381897215562126273240805013632762765074896456281414181346666633378471941587898431269994600671997617387003593367468119490278728342745271284982319020043529037430500458816005438164974509743409401046314735226618727753869735663502360702789003322234164025380397507487439920847375916046385527017572288789145077344156427620327626036060526895246246882210721924611447791560317319319859026040677537954446949194102699060793261546234976286579616595352271957975630536749111480124108198195032726652094851720757496900985533242659157587316778864846152209080801249919841756877797366278753929655009538156925317182945590292231011760527202014779841938154785870393260773700778436937816689049244333058658103767452405724817644967097738746887373379278001208907846829789823300444129791492427630827311104368001701772012469624853102578599561502951059006662671252766733678863336088285449281099542932184943648330723114866806894678962329313440064314962027369243077568160118262219482972968894827841694815106517747918898262161626255620801051119181046483602091148399206563738635811306248145158645535004876285347839003906850261686997039988311872311824201621478752884964006157450364476422423410489365451970227907043372990773423378305454674546281234391437655791552736484167343214140987849161489661745383266071480948215564490228874831024514101545577320822489065530023971370722037469125078078280921499400144142797759743377479938568132078118102500669375320713626975583871310621521869668124751470506190439443895586627895703080976727038047830823351493503908605652109788101044473323847238826661282421836250087270786049885640017945299772561651331629220021599877605572782052600055684431547623211366882941872371616152971368045789044452368817139878804697440620546432603859111932001639170557708556763145999180965017016717718804732289988088885268958015055515317948853294961624618419470769874791849652352185125900515519609264382065576657449041137548322516179600712427805883690856123543951154374268333999543058587727872049814675293842293656269369157048459889036429549912524838402411672388356635354714489192394710356669067122971399500717816767078386377986642565401643720869855523860939581525892836000483103707246647095862448079612585224027964322549831541446069232250855189013890953999563450056342474014249212875608667933036285603035494478301068901301037569566058987218388252531216325837550284852816727134403252444762105731230150468776126575720896701284348683096499243054339080261406368090232347888009138313758706309035809159807341859185315705161957930411344009022843859068698244436264970880419899165866737216451294357133673579123744314016162760866894327250460020896268517879233649496156287752484778111268136498832371345844203486313082186132338567655921875019780142568875876936362799630992632604450899883744964238985374660620989480311008259373749235043818106226366238543863182747927585565191075355476048857867976091219126450827955041291545827244080461695562828378711653392824822402655531011430926420656572915753928453633924786961047721393520810717331943356352233875346233867664753470607838865901814590844995836008084175231054542564926866870995419949199032630112191135913554079631435149660430368662420738434832618473476688245011582247955828839010416976372969894917364087984152026195795851298434104306123970341297170892036159444422155751604920705788707956142093149486717883717687825664566345352909572048950003380771107608714943207277311398341511602143614782440055516682442724322400861232305221098742433992434363514871736044128974749240184463729494747901378658540960714488526870650130761831922058236633151822884294884297555135360474035181701317425487821373420149935475082702357790021915650465572148294192912431028359950738035362915715000696469116309546756249830395989011571019156722488218071847140249042688924759087807643080951894356973047805306613683159219079203195025351863060980340329480320088238767297346055743653739717257692027303557662333476737639682130397929539307148186783504324905747539043192031173891040751480555259610260427535284824984843231186273789266299323720366012065732036489132658883932042077770893703014275218155485632960505795193495228705021664408977923923214638045945148688525448996810627712157596264825271886383955707897158121104698936700424329652513162435804237824889751442666779473444932477778621704816024461513325511638627446000403495141137217256505448036561435614023115844770356414965810414975521895985038650807287623977568532331193420970715892956562963524728069208498942885774805000781720437655081394112497254964631240581300876563128349761853050962138293576132237234332179891146940943022630028100049787602541742224059511658443586158144318216488772949076669264460427260811143901069098490628784108841299758053714867535889044653151055081558777255424207853542402243945753729865182763744879520775761136849082939995150533429206542237422371553657489303966376860429941436043854928015702134967468102567146809326272571373265053194445979705884719300843750780227559674997822920975809555047758567655744512220095851927278073064967748261892487696736647145622766240786848364335371345129451162217559727270171645472075943341624018357477187851430398462396581579810046387046064421413574760312025782663484963389295241830530046576800737924168273725204160871572766983610081855883502516735301972771843650119405003623999455818999467593132625480583760251046528407718967422286962211315603036789143682658498874828131431496867167727942218302562574940201300912006933829972648817996838289385694007373778423351373420916244026192602174704799088499136277009037980649133067997933968835781193962413959444179621437415968524477573168119775314566410150761942024692817507291800386138459886874696182859690146710072160788519197664028093322156292621940166405118375786223497070770341815506565031994920214303323267043962784049662531614711365503147701291693151413584532351795995302086154440115358029833308505436311681183234531488693410527387217525538014938603569802499509104255614685119305234740917044362810390837520853685922547378876905194798600935622280975982282409008280633160971707844657579297744220056664798424383742008379673151917824467086755462203911119848630758904869803494697309253486961923107038112787634641799444338828552126821529052043800205847418754112488470082790106693510382917990223532030248839852843985033911971841863673245639500822436087665575670357174946590548869251208673892221509427160730426160150002195632176829910162080343939875246865788859939722122586891585236100380555030750222780541047449643058768579447015122041019659015037280918749096537126388131995568886828561241735082072067879391937448822295713931208272777549852409542283379685454938663898505496687309759232228692817284240632791825021418024230368737315999191721549597899908594764243752385877866538161383334670753980162556070345410602955177234968582504689294552722779636101695782758411089406593967501755883187807194653184041445874822508617575653725148868483153565069213348879335100955557193075972427267674606033681444784980626657156760694227393303913016962150969056766175480971818031792322886863948429268353072111838155833037430433553283237917996027350060661304866129635470598350318963333207478958281060584890650400893398741978372446928711760438187622684781643599837437863549469582015730860052095380074116918794629062759337562454680235921238804874465234557757787533321993556901175631615701580541149187175157327237217024370463873634018249837672584309831420456415875070873292027922344601827561852513917464480322674373347347434569029397909106269128903977629425622685402787219194460189699162984023786046403654717539794192944079303498291943225944897424627781629608456598479916223013065490746053674473387446916877885872864090954508593716982697336680956907255251220673863424988722717971278545357382450709843996484427560455693375327666724421408068392076997088885484386555991000795816657145929285955276928669166952582042514286923944029786466320593218179479974950718611292356234308216958728860178697340896283629506310898848709625896772785477265716653106566654177947664126399876986943908925216173168461505525023637690009779362590311188550667612613249546965421087058875915018181108743594799874685400542648495909004685058065777883715583091194955692990380613428453760886175721770059531707712638779967689336368805754837758074924556158476433691341934385934167620111967384472830356260869294938456287953856800527547305729761978300400145899542967791936555607512796468403266538820028072492170057399893860300309389183813023134958044917023520203516845430187932837647026299877912231100083980835764573599394064083466009603612171708947495270268374401441839096880950375661786415775645990729533891508938763384414010064233236715580539905851218774422636235239719337883998105348354857892215848566255094881427627971313082607202126485606805920232264000994075616635507671671840920561192864980238609010179197847014545672847880317220699559877680223043213246070462466742822906447883894959951825009413983542018122004055179161217769921117975040994917885965314975904144934447019972585667842736793505999619519755901565783190752311730416130505019203821603119045252807478096832974686286515777685558692230264184787565177509375757221250818455043383326971257440686039425233555847763749329664543136245406359905956622844019695402227034553526647941836993322412091962272633227093696652983197833507573977578949732686564224628222704869113216072360152925844008948650017704515135316408781503308644179624886621452878037943231130867950767332637665304988950604739088804751950172445385748350448587111359179056398199240280421847575250217164641770029676848271353410432807995820552402213092388989380947768632213462705444486218720104266997766114901797459921960231946117293331387393140974882736067936023416078706930705818286834290810357315897911356071289504903601964843309436038876787339613740381443483467052870734366147985784198933484657330989059346577042698474688254696182873124702587189061472514018120999296349780279836298875892496695656030156766688310656038534276407141986562497634700662766537438751580247961478001249227963855757353680336451605852943010351671906689326239187124718279564598262938499369331565285547503098993644792638749092121451210463541180571329323586107067619496351625563084433313081342442571181549595061642737260282155861832189794904822827470240714606355938803696008212004420965728386270612367323583907947215504958350927422791898525906148231422203204318466518088638237705573064863072293943282133812567101394316347904403170157927356888024089577922303285134043788879785164352159131746745641436603391559411606594554481200175002617500023009516572539535733801145417694711152110808735140217481273072418971073551550816739855026910244515907876060828531343641286487697848310641022045160766449758263468316123008031839257541824948694843085847221957260795083567179477532363260397211509440786802161944606238190735122238730076783580516271643155625922620354811027695767155632536907863372612189716625472332795683138013554465954465885672163867060228126075946048775861708215536110933993669565478578761693584724162534733978261767609453902418148622866659566042687879024794174328880466562813385974581696584942459131567076569610488147846487912620184148007375830641249927115304749431377880040699451113944504508464783825897770172964068550732237395967118467564841652159393571394643398368133101138146420030046863340392495743791249937298158394120583146352928913783853046991687710223954814255388192674577273611109675132629104570330341140956507799682316420897065826831238690386382193508466650104617976952755178178800463043918611655734646548502154645692708595792890433337541069221709444542320222118449419157693592527040821547286451655904777739593248773719782267136516044599838457922064105978633454858164134378756701814320741126593812612631929966299515354803209720801271005717230941263444300813063201922206484104841983456168494774758623542875516387197436674033241122988724560771241088794241151021415506333278213768202885446107235395933466752933187981221625590037401474793220981567924070628277268696882597410933010308468898433386939243628898905662973425792951116438420803994463615984357698287995665244724852355064520056421822566995363839923419728382285826473954186932210675766311952344937583823945854327406267284251108329231464721428995939258220840594423344654610049655841303754263908152800988457951930125163585413523342144270962889153182022691727439066303103729942444291729390012221557749552934745091550833933223883043097978586399398246822286737000938432658610699289822333926067687922907724072640691670036932823732048112169407198420184079206290752319768845246980780475012236326089086018838177308248576184839100296383420891759199549554772975690709679515614202697509192185875878613353663252878307883393419450289890035648631003694747361758102774104180447664437585132879721376300172280103286246312476642921738619174929506276244708572246789157232312112417459701332994460608672255022529713102538759618268332940461416124926510996215095690716383973994010084729850697467721305488617764709806162230963795093953007341990790401873663040272355329502870038875369580663498714072532401320129737426104009587624571171862636675177443839729780386856515682473905358292875392199603053401606716586159008062467408705220723521426652205389499196508533872063189532184758732409282701227121180053638201504517010288915853365609178988273657823626174636313850448548064130666733444450366847866095006887950093507607965197097072562184299212059304925726614495250884659979266234511697854452365745574510108888804494303436993164539833216518716503283677663873309875641282188779435406082837274660260279105837430045975344606991814833524015003494534890237782575717423429307807863695892648410594271441761705183209005755358446864656951837152569276395348499460056849577758720376296853728365442223192945809578177690614606182726037271447218712840123979187434443267136036323945459872975430188630617379553812192308823092887991670645156753053454253765881134588992569679796981028205418791747788001708938085022349421607064045614717369989523039175804138534367674420261302535370155714612004892898577558549360228061173001358738835124809180966147776468502016873213159772335837147289799164860682395827668421575805780196008353907638292140841231021442555266832398225145167233048505678394775567672782873384463535258797566341374754304092395799999543143931483118990393923752260043694929471704668817547982714731712425526129186098693359115215482200342838953780822130112765849847826705166849980452696322596892748979288457303359798600799844868385592406941760454524398229760448455620342680157301453352797564761483945406183540752530720228964018589719159654903448152696153873782295608294922494819756783370399181033512171115238821524144124489546883159620640448032694285655307236760688741498188792273326391300716224597446786682546681836049979489930995917385848397448333901354532224899555770199129957825185172795361389466986466077809826069320509982775676730363366701295492449183509065200889936657228244709819609470179841555384952645404177594712660048991571119535457143657611128015980983491392603135129110484149196696385543176292458058833253696229824412900083765275848120605740972830436676097411571324712061905456085851489656198242673684757755837610927278381852221454284244835197771566609989518477701937137072587978113084172585597095257752191305864491948797808012776301331101858506274268166819166029483899602674493336192412203213935811209919903064995405840667226170850002280104202166054964804942468156551589022126939964905646006846609969021437660651892457226164583768383052384866284101656431404122804751034504797671528326411309409085076568342004855361794042714597225678306113869164628928023272400817249130042522320374847905137824619878859989356144137467377570375454308647032723778637630489029027156178717437446967579115243857926683771629907536941690723073545598580302470103999335986194170515713718886562892476730872789862128724235638739472747148429961082730756404085383303322944114703324605851268873497258678196312102493848598798920968376337551604180878996094041267768354268779816086426505254745412567728333486546216191033492894248481572723623447963479125722258995747654390372355666456281146284600749561734300169911821026801874766247385977346448534155261366912955695990795332825538127967593810358742897079347466041121288739115454345526181810312796370725578701821036496939592729252679060750401582685044055585451769802672324690631783459638893125755349991467538572166233591662992669790464060933049929454530128195614638913481471361421025886171315769848747165512316771105740680401145872065161667506031226952252973161966432772394101063612440375123607775762475879321650115373943789360510518856413695595279101223963185098391254997277316125372133429291495823604156325624259210505797303321932175148852321532294174562912475611735120343770655390798218623787161176149715407244384146659981285170253706215089464495945743916272635859486180962086745533606591675855383958837066516652569842255646311226103461947396952058252219074475430186806220106413405820239501739859541069083076416658444040556853708875930561040884860944185770006176766231686045534405572692262482498427856222312208380100217098697626825028113429236300805734264120059381438536966973254829396883062171011361411907750875587330613258395769916676510326630826319362985600126244184788363345618148869637412031173985715038669803212954392926766508441977474076253031472686723212324779534650019112240226002497850104480358935059050296712532675153751612720770196304372577670621335738859231232701111328420164344114772554157548219434207484917841709659391398641945520983163353767870198527702564648356905570012926750834396566432976858801850502639750994539043883648541487205769448452478393106364745479714361039716591906206174069188715917852889709858390944080152915330060921965111506621207680456340515711698114572048406632732496002801677733319433859324947563638199740608127116594653966269797496296453248683611166086077464250214409994120836042549024738101517673139261590924002254366015555253483742709182976698041823725480097545912485663749988350683145684229539760472976360986393003569172761104129039359591229663950252760948215861587469405728655673010013885562714446911272283633762764589872782649404778969223096167849104808513471760444794237448481708566891283712229695207285970711570343223431116071409223615181736459993963466444328114672247509863225639901319098863684466574311168131494136800450873326613398894071554894581877395943084742748586319096940116220046383083057758451208404185692394981154115019885406197965280706832285061235415692037487801702697484456531778491714755681500323885334939438127369272983711269315169412042100187655350847568248215165027521194523174867056358115222973783996854405508654919503385150889612923321617207857071815902132092006426270682155482403848329657226739137002567829808712156321577777162088049938209906387048782624782124716217734720246060816938899641641578464872465653557416969361758701435520197046335962445825091505749230716652359603255165303420788571546765978482219913279145646902842680446805616425776880658439632030692077500564429414866996038212684113391994197461919725129483492884248247183734182690579947719176327979337092250895054931208934716221305636720377871921715514100561725274684759565615834458047440782923194563822221944318161683806021018407067770112776605545951672373630759494595229826848271296668522466031133214559881943214222883122589536051599229105427775865822910239133875862953469710934607896080411110687916202941043391505079251955254311642423761832931692170673862164768857504430944995062568841461953215484471923527747460398859904772862450012752531065357842245203666320327583098205667015041388352243210020193378762753700975112272863432207447634653055207942312425658702107795228557637843764201182942023023978177829037955826319562587006185855375063093469463373172621554434770407155430740698786707206114632977610877847386030303912767097014939256827858056117728007337381968536671426110422473069241891230148203813486082574895774303209671876486065764789627348993469032857533801485207042335596321024084338129334640330201289596567673712336951167094799666636892561802565155164146951612030463136718040594675081677377381936968241472007396423057166819832130660193150236490021568539480245875571730920085762538446748639560279139764322931071410462074594889003379236829292352382194628745521588203610029665341971921168467746134254361891904490679008583145485873211208637529847530985652742616535863854218366903953673579893191285115878594449377473663982081013079851166436048701694688997940066525288501277862106515416508658224504360068679110397703212937328890083055051333092889130810096252672741161477015924079671898708697615903162889823036569760911716045349470709018238503556788862169228144260686882387856447472391964607485058489893704160934808710123912993661397936977904320235483537300988739171418176846186981221589678092115880068057569004337360681840390183066076172192987251673720728185637213863894474018567959357444875615849884463699069639797656032427781682996015281547360382711038025470768170073151185739338486025937595888802594300275682112133568031790898924768423840627725467136968648061069017866564644812184458965934900130337951861407082875591352191844465748552880302709828384296824266414577737299444628879006425741546339563075038771895886236973313675083120168460322947945047632755839974579965300286627752096969037107858335770208830741431723667613384628188918533156957212787031756718414001538642199782673187700382242149610575263770880238724923968969810166278780085833679911634318352451446260713878489321847462000166424972562711549169051053697923307698703052390967653086734302945993023015072521597425758652469062544505351757234278670408589483582758820259233609167265703789199751145030740254012181201720556184319315203163442293006527478983508505832912697889160979385906167864130080065969228815743080044270801461832336427839213768513970641265144644142143226432887705998165255388280175836743365037065950177948735948867174398661675676847108056311977343500040559303399581837571980755103925358055611300336196933904754060736517704671741332227291285750950376914220022175695503308740344359161864589974677683498584322783161501719621524269495198840199853259421642340580301547449983110126086360270327238633158696310732228272815219175405976561947057033439414180735491398847303711862049211282416392224357782258333517244373242427638980642147647300809736556999734408774845004127603439126986406145332149737485894052600641206140921921343121280276699370978371609282190926344889383403913003101494027272407593588019126103508567116299084874548517891693479463587806659906357132651836292221565910867571650829513305444408726908433860916385742015078070348594880325663382946103383354753738817320969402869849739432649215186329432190026280517285488653222228897085601929911907772470177627045485051709661641380376898384449833955381581739603866714812443570255867797369716930119190784729273800178187321334651264258735344557289680507180404947160936590811049095212640176492174587819129256490614818411719260530139695622975602271924719266834920026025495760222160308707337385937749042851313505589891662627065319656239965735090324860754878622562435829597618611727941100454593356378787241124527071126068317501986666704497890302933693920046591507961131831601122968461080663175571250160163395032823362174845289092798676499783840207104305135299018539399624818209656334695136775575226362582105670166201787302999022281924705663427595503414721474280105155039988080503673533104143404491217359204569259277299185092718590937693706653836597063042210340656306933153000566529058972274989994058083462115991591455899291979623286298254312894073711181813643723269572478975743351176135129004060966556223997847734067777167668996595800069490141998365784367130167250371141096487313505860855479363932046257070650837956629645817494945110853581541595624212423109582465433699223382963406893508767336956739012040240389585648276312095053821962008851852065641952009544660344885446893056575891727333244654849604939874936485272385719540608777143704520625168937554146850584749134828202032698734682711678098454339720097253306889490741054170444459783366046892289039149071484745543327541858647651006466917493538444961433401233892288937869372455150723147062547326706201833047894652862501308710068487880195871077683962066817363668361282144533252025120434364948045211656939983165482149649632968260950938110816027962329860629571328862173454965841952584774284144904403738361577724149419266415723033664074822337224953309411644461576688042137729303566025164325918548947735096231319171193655863657192365825224296073723301437528822485084847831707123486380253592831758844979408140266830228479839656174668868126667568891698030560142775561209582295842520113100888960701238013535436133994347090943215748168078191531040194553855610414691580635286042088630129610339287839628371734940020861411012853212355766692603424399442161799384946931816586109642525931960038035668308925185376183006646784709472612405662985608058595102723630817922842532682861313110491819684225042807422446521977988945316675917929651868533376985693352449027234697035945783681725802113147097001512233518010153042800844662716217766739792869059993200587574130313064782680684872221222898908022533132346035743380716362762188078818619318220265497820708225225437830587655222831281780676683598588330172206130603458059446161324186928673467211717427817489563199430486141202777841341254302867696615547748000219835804658248151798417513352588535152815129709284552581519006555859094937928928026350822584586940994529383147195717336735695471763291393993124237624754036227243832762678086845272482940583599921400365643798249732758807212079653945223546762975759907292300501326516620301168092795548532215542716581803577349845264699504840526824673066621498300014047684232184611297069890882523032696038421749168141859392358932830726184265547829849388209710611825001512082947476353727322897275394722002972152098800497894327497546452796739435404580049226064669766683023841408483165780625759338998452852467081607484703698563388318824460415681040480857286134153918966495423600614343327010900428988494428138220511601104577175738189578564366284867130541864315324891473978760619384027428367525276806146344112585993913080395164770374448316656308343904988709216320168723381308071510272700869257494578850850015568437096465430675000053255672969124845520383799277875461154226478804025479327544537226299024288890556867087004066035306379553388648765923644157286992380825082690146425289721877029541012083545305408735932036048268002784674859411181601978327667843139631534518561846117445399950985449583837181178004059312303830753440104785261657270307613329352168942591819486342992089862102384302260871946994745460204998455289798479804221254257893362005635223720695249233256573408383045634225595497413096574339496021755346753005228066983142943153973431595148826713292639974359032744895530545281633641135779150557202444235629696070699123582682803900603852049746196361152957296382207015942168955995641062372520350857634829268528196145782705568950177314991927816740995104439398247296191820984274248622734037343483428916424245010289866382493340598988006543830234929843293799638255934353846723513337331859253556740846967959289446191409586037030829477661701183196367351970100346914768896516873070070173512443127366364150331168479044087119315102205446596296058082616506551726903710400257821532390811520443877191037741179921292579212111648396551123393852328376513987247965244844892715887705013301375699132500231417452729077386136102672530263639119883084055747091419308611889198593293188136742359061236588680011287319727394856415923236468768015133096726027634673050794099148791413748913105558126448228766662848906760392550040117526036558780921407726305961508541091548858669678721906052449913251937163352651498323453713225745783630499248084474111363348253680800265541993995833390417980277198568465833984566031374001044284280974409663813393001615115197307345804519336145587581463860215581548759075260135174365815552905427949795198627818922575333339933847032878210348643275041355345197759463476843097651977217447913835971786545013423697142817512973566107760827773967897294532463867900339760076239913772391827909072501773050790018226408823730947661278916637814329992566015997965661807665951445433697063173592100015657690473425293966788685312982300517487541771521089630481710860314460576018464300874113283828609203473175992155760206542300573668650516097230011102127075217308376801643996931994019882378723552133165673956045999669173162372673044299936956448289259231767549654179105760935013265551000906152004204566149085741597271683425516521977961124657698950905019341581663402133885515509955972638976268775290083355437349139701876323005596519712063813330344378708587172418947193051095296019683802195943903539958008457710177821494340115260099961999165903552774284719471404500654875197757223282390923625313241374443224369961344876579128318034402057038780778584007229507368529931588894616870337505637678329510988606497276977108604660396453111896656871531307354235051887909297233925667931837850156578183664206340007926797811642945427107850393021601476147868850983642513893928041458401942994703045223749474977496987417746964391462918268485954081203220141730268189076940286725417025791903444856589854868677232437823699333753757689590645910454031676497475150813997599120635071253757719779015300363135342131769047235906126494523803979397961152964189152068154019374201419629088953682831088773912912955504315869532376556942039914781108383140051770860284961913338715937346244275616514656045575334144757627926386997330179619293596275312759038632529342864482484069358255544890434931668931125736941694588498261490328707365867957444544026573619469479605441990228423945198636965477233690345677160890009790377940674736212722415971512547088452857593616373925620455332647415277493399611644585652276827508387688661251593332061358238831489941421478341630708949574864640871260270877105466999659786466011360639736887966922849557148296832485642481542063020753435846554093733402303159756610185631995369661770840415683387709719787982330224484623014330111497443310386069148952004805415130886452484584817917717074128778576242316823734905438428414179484783362628136815592056309076214777076641810441514134529378926839442270205760487225219289864554949130605283356412354662135286861260707385461705648896607631450152289853713190199975715813369159174765673150838205287160674822962155513385975688910884903601854644395770499888066713866994599586993414691516916679645579337192450133627245738580670036654167487598613972629222147010800810007360844842835188509814531108019286986289655610432372973178558151009901407253295684113546226042478473129183860264420020072725976332811673568601346184931188496676249629354416503620011241663138566719513854378252647513674875324794810748597005656889392163347700455980692015575585012836740469506505728722872246492458245793987589530729958988261351786952063766233035775043599434144351901640041369196552673050120979662134520104148733445291883950889594899017962829363260275550609233214637705663430128381847583269705595713958254973104287380256400251871082214808532132601408756778483248798728172408948656302978846878647676636274276123712719156344907060813278973027459421015082489811086864849399825433591666243138753334765151764467314089893561340891030408814914982191053567036629701543488367159667793030779751242396254368814794796332618346891225898256677464693585072625404923063301966284843729192435120796264003098334334994546856222501004100757684930701752939733894863170997231937376342222430321483015149250744978904827333661180279923249663821579040193303739609434181104744219942619993658557616150103627862833167686130443269428787041360340168515243763214748498387811472188546178807677988495274483450963622439316537038361146358318161458757457054030089091972417447374233524835591524590569211730203763520981043795738206449503706147518196361143849497453670561766044835492519585896409943156048315080673625380824337675946160503014301575131499018266988608987428427074079249250663727632242721115293509538009521760438730188132143181470602528622826881499430907595116522704668600875598586410385106810008147996583660623124925801587569710119663443826839114648338836033297886206484845429296429610194145217153490482108180046357819485923657317336836351200208622787952882170963937441070276738841604665129409735597769451561726318150943370474183137830298164469856734632679918067886299561532626412022704988056782197090707925369697207725645961814880614902924224973920632825422795197824917514433364930835101382872798417532738479516738523216082714494408158108303988714860999099351311533400460898021081188983464202281969956263320938154464346336640604150220151762358651253175763688597708705729962674777055010459776047811824592027801061501039515648987243385321220377381972602593703991626899245886528100294498840836739227641076845913847350483492197624123464200670904958107710128074839842569593277810348238133651181121691403129681126300328549836562942611469151863596474901974872187187790410508603583760540756661991836908761717894970109960326906569404656365937484844278751844161813077367756705464339882693443005737809295625559496622077442566433510243826750638036904332550791231886786293949798208430090518632806863059519413672721803443981899799414024162079761707760362467157362699568421211476855644681991989694619009954390627637900141256384651699309809941953467809968586728918133696690470566952219413858300850968239010525015108347503967211889746355415366719344416769067194851308913091268564986685434487822620352216707567703521326759968534437092812289684655140373499847524866395478236679165676853833302006457217318162691938225526364064559391955458368008691279211769470153805127214600008761048010322451550562984893045444237133791554511106380304712221648777705260707572980456227790699136506670650272992360274304167142126176441160651543413088991190239564722847572999688338792715107672688751568601353168688088468121719686349934101840723959860243528910397646220727649046938338692155605861690194744380828812590248483960258562479551325837283472480183494911477748795241526454018698521784881272731505647795464788411994443820934420613072611362609933814887367410314415754055721629880664854620532467016061512415874473309179365781005295686359485346018517907036856436983479904293359009330207694336313125576444156525064494993679796204733072018199785865046469160540116308218751484568481192236019338881444262719792695823998786650223278506321046777476069257915222877161525529878835427594844707483702829921760754676523715244598106496766309837304149622720165435022940817350855621405020890399921092512249959763400625466253123429962522928426086976166902966235944481195433839351337289819760933399350812812202919667339952585720872698088042024062052492048664142889260065525927432915512015233402031678923656664307440288213300444231145922049347843927225567802823277762974508398054115696197595190704645979162007984828624324497184000266539904620480038736728052021027397186882954055212210569585724522999449602144381160663348941950083522341379744360373835414211477829925769555148524782361914236742795694989757330932263735914960120792502272467732865648997338488856532290940780066057468562106930647429875094774126276932027610623003668563689559482166002755963333647717291994013322305738475023249797512285044251254445298146141434124928669284626159719358696107261596585480874975628754901324960918316918985879130122259351399717346923304343434947702995695974287872309285767788767539675657191101784363773251385889786003911080427027007997673932529491603648216530576213937701753608702629033820446177743639225353830510262140834208811148915418427524705922288828029477327682313719808389744322888083266310545657399254202531979888706635043903387385531431126649624983449847885414894677806415392544570567348541723976857900902300466081836631158823803316531712563632789607993123574423805716089129745762636484059096302648486244422922323101823253501171295337401526549582760768609509854956241376369606947291869034359685950033974991097612877707785379912524267446181702610022377292879854975577001861981487562091856997839936888963497775667743579994455672792749993841203568724518183088490928198461092565074521388919181777861781063099325846951320516126066659472642088788372985672988044321360139035282931878954254401418499383989179072908724018758960904891468492692502080349481103371351542219133282866436985535076435945578608842721547326443675270414017143081816423281889313952170477267191512918169544027946469625640153356254917681280023025235535450151781257573983037348113622469247415410482412609071878614734267151616225319919732213773090843555613020589742561465557797557395969867089396975946863096130532427068213192347353409275330193703742068375243073379118760879224465304596157060575305840289726230685129014812637019687344514247935425888819746823291655656065396100216086853965607824555853555795935795667804056577086604611296018738638149209894806248429302100691750991586567184349554675824353455734975920790692830153409342215598740032163812862442253890103752817306234870618261785357929291650388573255664488377281863264606624448668602616912696780239714121861016496926864985949306952680128497599871673723815257703749332780535392572035512539472023305688370615117679292783262783727668272399409057757169958298523014365440032088841962618711249001235547063140567842538300617486939103315533869898223798996620672097568391738606183453240103419139779646957867774665595803409706546233483384281921647046330870856483542780582576035612109069263801011039375386556736947508515597962597259148026461222781639519687529528118098487613215831209678386135623347040277121737348210415128064739964519050663525011985783106902140938686212772350333258273151473970203353902978757371500967491950047740710646171600791027670797420105867030704034925465549779376959149217063264402579156882710048183782661986064843549575781238889491553322380008484650838488257205754272574822855706126548501309394909930776479070987941769525993782700209635580237294931707917444540197087908990373909413678280178261680090936934196193870487158597160914736508956123167396506631357889405129826280018806154842471827137168488095261797980483308286995853674657814654309648291501238929646746041037992605233252192829856962679222582341179088976123526799842868501026455411365531196642793662367048896363155541772553699860469043025783520069767590091631449378780224216198422495423235564737265895672996786150103275958599147564713711456422508635930339112010112686656743905237132714743202839397717107423810669815193514107200210649381363444017987601514832716351299537125018890013109122434822922204427052446217744744560266945259303097139931406205786732321933879681533376522135224034043778303174276888867841284693370116708453167000492478985552329384520865385623026006227245450747551944994942831499151543649620053594825587163910427361714788157288029292588111616232700013075052676062872743773108245007376323136334002618773974410487056129109715319486853516527643435742671401944680751282399435722512229126202979670959170674125368303016235840309975975995130162681047235681855977755822667263865591197129795289172135717096532896925229060771153277312765171732793841604312126609781402486065335644990578086478824560814577719186746982742948718191338250324416849291363199861370435296270529654642966356580061837829881474195512991623739568311210340320138930503920169148734158999799797282219700740898143192990121251202416686951224982782925513227299786854088683455847512850095428294470750072190206460705139483281564015475346976630347518253115335084978216162861401003130477686886317530202819340052597742756856822335712056800459138926945112449651346581704106488188368376500678001636044839364848947224528025635927543639616455894870253331177121339827069047680146428418896808156502382492151184673608379305911057082010639254786933667862022059902736407812348510490123032733719452067576023177831372526849420135346042503438091174523815717941903552453631899836122583863180894166814654944212335481757863551343831941397327961904881494675343278478374462170696679981956786205675831437762343361037153021637052377687210842408099892111233553558140292338662113781228551459761631740857060599870752302514878797666918125233670040464665401399878610751803984351880808778323659333878775186932526620748491865062621896684196152581598968498063528689395511610764861635536885481888640186955765273594904668225909902454551233117144182662378574352735788686816129208691741291341724436564811971228422224291297240522925447905703319055005786709566568813257364524575470000982489268542189949364221736865259874442001877664730411783986364707032126522841885271791172120324870523326394728838008261853842669771730532771790580724191460908372195164980525128742597844348949508635219410116365501280208305740859307358937965891957363078497445320579710352804942545739914456541859802629382879945563151846933059280614219033946598869440162857278376780894911114281713230020540432680939353079907553208908537362452735701846936370790024291422573522174073509537495804032628434208315319891284688641458066377770341567719812990733551904946527400142692973161369103105355373796144246593930126490506220465754758398124120333424328552997085050762179322812228403976005974677466323982932079472233843916852422968069817005948927652105051476539803147040440308525275432025750895692476119047913744720336363205530788451192927226273036442107641830751310235588431879167088837688270788408197689012161859527958838670018748055535172546811474788540154818529726644891911470593489965128717446551001602989234617588047536525999503986774382227394897112812234067431212841461912610706750581138856128276476106941537209823800926355331066517198417949777070630194049618333029334813044405514215489038847637105495327596021066242815990616144105522242262474004127426779833064072880942523798319593370655631931256911432340796563671780747143675150178075570248390216835108260646901062733835286559594808020100078914313222153804413659135013452659398068085146571391955640719360428283519707038023425060595384622013290759416615970600099517316876225984691752719843241469352713701302311561579724229092903442084353685524390418635528793534560768409733845182186975118918728608604091759962086679611039063541873118012304121037483735320734461807838339141501505974064716916100189336262367732827440657668820874375093926369140958126625913837345813863579199443172504146448049161316607111989416799458107327073065541480679494464710385046700083625683153881018876654551355961769530298119948929750082055445266831044360027956995031348652498697473582364000497510858986366215427332448130806101783721829674123702284290613285573563985521983641878943635218100850493205159663970786062671170857558880265427261499004586989619615599458863370882241367599848805347138879133833126654912410363640539140563566933535096269541893535745771475879745364251416583141342998269179443298753364779590203651910379072617352426346083597573533240874145450733913778958609757946106807124157741869916516835395323231774862549118176167197084908065349569341451282836437639866535004548611363772672324205431332481298474454231971763501591416220794452039418118673190064646209478786472442989122039180430816305502558647620330881611778472089959078285747351561374428921463363708613455227169204645708391145843868376310081401928307705305755493476011607392266456708009096967705433479022996952596193950077759605091026474063968927338802595055712258626708766487421200178863924793101054749490772786270021366873292368767092645961200956555976084658340487732715643317449714379143847921182457722107642692381236014763201446733283372902136545438037526897447757573377581182907081479047549130094983211492782481398311404176190615174794670608027207880427697649782961744300431982609414433319876266743374551756468046195468680715990706010082991577493718994006613665657935417409753691366735453464841600110702944226700875660570496077599588754417077165890593278863497937277339847656248749219622145943798773201444174256252145708125725598129064712879398909655973374679314989497616257782282567799520989628919184003354016526557810322078849527809647291260503114350011576137991284882612789769153488989664191991984338525684951354789039888619004681334043025617033470145136619855616466516688125417977769460881832316895626870788495836034382692242416325648311784180965874426024045879737288853912391907634822003705316277169285944465258336365621060629180957757783398943492893064812027359045041036075778217235558717059425722918876189065740060792380439173031997763722898354486340264199174844068608876702755453283515074111903766450380805794927520283175840859011943325611072450444083538896698747573747895627365578969400376790476304954230744032957203738282786244148542749715490096026874752616042067296654154139552804497889790429519717516694120374038991214257110775641773638443685620496934425211716750726504658377801866583217531055813767236927926705118661809686689745983165831238844088920989809735353711573350193809840118098971710548201327402848075271955709345780614071673790851470021033941439267258437069743431913797283449345631764725067812695772139328842172651197569552019975310004524633562864750811797091682130506331180078265687465851314732247217279029635721294317312898531489548081020452726877686466569665573371032788307797807282091675074384003836629579429087781416361593936463719302418761379093646573302026839213253278214917567739844953209021666081085159224322025281805495257091348027577075895512933181456732464530897020954921218273519297692244507927180322690543352603824154633076770234963665412319408357513568514238453834265252586961061539976125905561743159860706833006234997446949080847176805334870978974089364922944114170592973690682060751255134474405134712189769053150473591030042833813158787006068020648175999763994608481649146035347809548084795511147789601030131989648695084043069382600786479407346381925209003029545918398261366743146101511515189310599216822011993632540069398547260587479905300667204203838657116273102499478709904282420193194957545842351649703686435542338002096887903641451508375925943827995839238081405482614047282571316990990085893218294356528958144769037516866322780530410114012071884988140905326185253758664597890892030358626430628568915702325756243665695622006387876066972127810408610224750574110754369209752258031231934599716857391050258101343643102766114559699227672691343251524813567493032987866939341244499892120854049475144123406512616595939487573868432785724224303833734074077580618119497508657439435229077405908603394531338971141845336282666952239448319059320453361615133301858494358391919535911679171125237225867625146180979610415427076431943933035304100644610266443522829982600685437677956703898483798508192522788391227378871976300106024323707307093414798088561968690526378747299177296491277394507289674274974729199839066933308880074724131295454455909135511576483949040862195559394238046697917812415490183869340711133474326586613840614917170496346761910536991083216813520204225104291365178879351679269170649231994153335681093790986232040908056084696199607989080845255095948136054506731190358530766187984337211671372289715856835576360241244709416364765940781861079327313088339838427517639772993993351914794662442327180735109900937618113333967409253819440951335352400017768434238710306475865353921485660810050171071464780388958049816915156420273695628322677501371983080042766280553603951829160722255714404130034101566086471332579768650543875690761982347925678696939704541454684674255364024625485655742846434149082213459794785270254018706028115275583639034784148408813527365328389255888997473748580627957209540281037386133019419070292233582018870234951036199810919919556006419058906271555694654992374925812176737136345649487153639214802313438583961566078960860745112247749878233363972913831130526779311333493577343760130842269560989211816022910349325145837992165681064074863506731530566560091094271533525248927740197202745241426638625606383973443389164019799545874073597296437000540178374153270130659167978820041984655859156764745947147900801489203142415090563295211480418897033943452046759575571986189019464694840259928140034544428447747848745280757725195648998364607401835979957458814606018837459904337710660975698341461412017142871137547799918028985463638980177189894102324829094061419706940507206218069311148453769951409929936408009532807927010088183440981998890468998211445761764320875792150337576070890702478082739005696602661162124721905293990198001877184115629582048500833251067002546295330186444544246642751963502749327267777819913071082051928756789072564380949398032580917252945964938126025471846702268307430398192159856051852999129541714240808694160711928830873462563835673770419628846623807224899056320606570954186249616259661319325284658323909518964250932456132177402778298155870801487636300029358067834445024906299496571943546147521660588081175929282130923431649600023745065183450351428279562347083707711925880363991092977892244823319170020796219567475609717843732809243511009239355293698390276607419305409005808021433061758391566749772303847656609398582100575277842976927449850503946485110683142030003189126377629071844398092333143464220308736076178401554024138822028591603348883785463595467666949983145349446251776266042744688789304548972360308328771361523879176094534961934602801777885990737021717151925226280125597585027203572309290291374989590305646353480615616586515859449178178021676812681627382727772721945888789573764012950011341724119375567685168008250907859595518194025338108748942885531824821737803084111184024806779207746226839189928421428886104179972087164862910861179851632788968304337887618988958800843731165048016565571126717112948716146725481691739924315765387943909686217938296682427364742375326643339189952955022192656493525389149923322330432456508233666477140598805762514125370095898327782122421584517161956443140016207284924215373771585102021513259853987718418555886660739911823778366945843013044703851170073160700195570376535060195153390252262146007408998328626450056148286549937720403807360463793354494481839882007137057374825650419001288038608398152767046892973091214186464743227481921577712916771613243215237415417759962113377691642803073129838503515983640736311821164583020765716135003071820972713468815337072214278002680110740557452105276750620349227684379819506418705334751001482396636140029682052128365312943370769586356710037201590805131979671778880943168057207882189880704338652924037613906615668689359594446245469176178073440485477384173641116188451600489614396380492166824341079085461074384666016840059616681121400203938019840354808949648137493155743658848233844708446917049350340342400338686309402784517105037104868634635828261537719527292331321237908205166334595286751340607924133193792104430345076632674411520562874176686928586836464834277731739525088421303796000154340105472574609199243626037090959606257107091902355512345930518216084953455948578671820665527514926217204959623853243727322732438200911267795216919863762902421020127610812955520640441785060285320308250239601603294797309673390508871419871858286593666467296467580338507836992652425899705848691809116739211139766950003610036891808139770087826891551166429915549730179547970889599121417413292712810400299820573229798423509297422307385853294764387034591942603297710037307059784675081590472315017255891507800428347276393490560703747413094199888020147953150712630231217428011207639551542756703631637404910249612771866211424659568944177277575566747059055393071749300505196067281274071640762847290519525508414358276782050446199663668300860681871150241628021178198185581125221409559549716377796942242537638162219847471404935989927229697230783515917285423632130572190615457514103307471260012434049874619414053101970434096388747000932035714420932662826195513170219766199776400284539946640322032591004621532307475613214458448013378490458321073521501846970604699353922024050191147607388434665222014355050106299430794400351371004127924479544173082385552811476006571098924052243879566980567085290721580914732298233687214344822262719025455321094748898428759588676358476395659216176440355697668854113139289566964948259649269411989476821974054254514083154223337010885770436684950068515689100024532873828660874312830226756247115025688214664054756606778094436036431056662134560961793518151972809008004792911431457775716549793958016872160584837460456187319581199183730269454971804862294935143020612905810107728068336332179453774769249663529451660586329543371792744116159543899772049528615023729951428219456822398617891473244037438916892132688548834388001150049934244014905171790235685772350292079827685243911776327914392467127109120532904489836553931327383484926467073958550273984264070677654730888299459451069756216078966078677811637939870692257327575992353809761715099505360634881125744122183173529455749480571409265757144979440563193759713997536692753007438678921733198133778229454905559366218677334395868455781928900882244282198849820721233309424020422433138193535188006660737730438113220757268915906476710815431378291247767163368151018022901074110245328549618861400385611272975425628207160760116369848151314872937452156002132171337863825820633270754417169386484993024980448403388329804347264969254704616253315828589742139733250240648741563547553113168742346180747379237747873749954578044989423656947017554648257779308772776212142729815663233457327634470342105600350372902986669183087302203053434291919115653535022481042522127387770617968939034748095234899391214087733645045515158859842272820625500465323526009329132241283488647941051652013303414906323088317882729510441049708281560403630198987566690291491823054342712682044191620278436371979277145657681284106449075695566844155542899144570207013693181793791106581366180977935886715749232566923465009094915014305365885355704351399659277064823677365956325517543478201653550102949693345993976818480240945072656179942695408252284210343899075737829152293624846952316961435582331535143241299991660724898064345940430983541236508137924738766755174266473873552067156869412371062729343774588214644354533758033151266040179113180638173455870362038290198384238037754982908875881782811338440395964854089482884610161433578619539749988681277639257763317718233136431393346722272537661724170809457142486342565232605652800752419559705744707137645210514220827557424881514288639999663135977351293854544887298785601528349004927689467471608702625859665373087139438405155329825569051933668839196043380127529803240456023334490002729796270984431345880463014854889356008820856630393677873701686181944122402697193579530939956034010227037589302165928759452523245989079497273805905208308277235948955676374235154478355695954746045278003922626763907472737471761116021269476870798197278302142869056811063379205638052176294506378048018643158402944130311712716775142968968689463700001111935807679816532803284945892201074014865705424120476861278799856331470278176408752212991694067674630020501692388102430551842545865282565297749466885700776252215988050640502382451144670950620117920290705447427604567061037651979027217360555145280648894671817822064916935876840184430727438781131707214210947028928382478991444629344919883265362413260102567786451576938046745021793661681725842026718807404196602462425322400931279110116401277885722064712786970125468010330649393822783168827090986409327372872632042036471009896758946725379686942164673815739240727805932141071301659298709076740188780956589169126188957735365891178381606183788941401067971624855027839568595594704477384740650318782327089392023359610038655041904228051440863123222879306099922780197098143779373123272685502710250172555545237834607429490373281391622840612817440918869124061446562849360280524072476832905201988303900690151162215162131598849994320905475239251864323133799802203282406180363102266740298568433425115918084124889306301925464914103763438949626450081967343232959707162251209684415062419039239006750026115652102396575494508530396608686113904416519744733861665770196348820968793221483593673957336093519796394671907143620221096298535781423029673690724338544845012835203638916562827417385618613427771679691458636723620094541369275659852347496970597942279913499076554426862528939962621899694230814475834738693649526668443395301571057629585970675559051196491954857210485236150004100722298243503522809032042307061799769617303530613263249058908906749637899927225847470513039876199623047150134702009904245198066524849748794009150347670980018676280244507602118413464036778099024021469281919050294317664661660718138229208950247163553204916043029916556647403751403412707875577702853275991071816150159002364183598537855243017551853500763884992011678925559435353611902937515731918024335165258706488071759826132693607211983407999174846339814910244901706081395481509259178251224396356357314860153205885263130188108095966781775910558538507263151455090692158913722211083319953715025013853047487167204898488277619319405371670528504962388848094199552422368578396300447249080432327584068041109842799074285485667861833261274357807661088586942717395520025825835672822785380881352555878356733071704875841197347330788707997176081813806850078117651383072338107631756860219172170920843498802683497361565927440329474500933464891830353876901404831417619671488774867854306372812181704636536660753706430062527495350931180948105187952644513969546546940377555879302885182442851336392484605356744547577065853643328303551601829327174747686765588854433588923286227960827123608767631911391910710407433496067389246519717412941648867752329078697067853572285349929386086980900315218015952858390278134222602646590838004615829447043576809928103436342835793322863171666408548393638135106841496114549258292187616963454847236255508624999735730366823996114156922462945229230839192082775265047071866941423552887650875222624580750575904374090820588128671853693317269579573431310537702780070069847337501183679092644830905355969580999331268024421384467501302476969291877963987983822893922265773214281893239591481230539851417375681104090433837374963708950309816065747852290247072562169619397561838859793001118421302190504161396743629542167483312181485514364069263164520672145126201588435737696540081819545567604740388782349063805277006707554792591765991183661344700247491481513222517791917476958459576672110162976517477685096774239939233792637904832864457378515237841223132224416395615729987838840785011223146608672090703378824862912398121290702618233688492702661994568894080493814227536449745341720097861553828460326131720382233989916521590869172292450712460129898482882182703330921465722096885360880045484784497134225823205450696183040148924928358519638734145637579744855246754449613324662783986265934742935329020251348809373339186116508831092018930583402017112976232462188289576195413276994872876015338405237110200312785814135527042623340378473881015185665528758161457928331317636881305355310309707218295913855006973126465724984079625546743876879663022719076577653029606215458948405302128016199066402137321712601944396887777415376213536967202777909661515803509025813031359500340443250927262547283443304699857080296236992234540209964071773720408501219408935129546033599479935616921761965670900452915372915971902595330314510978943240770697349322148423972485055298222441198252644784923029781258635516764225138546074595431930608917494433456370501985865605214791905541349547214727222242213309209424762343813076491223208416939562782080201568821782406481217748916931386897424314922958409113982210060779223242587616098953675679433343783091751203311794456048299171689386002833523844297521183323800934775145728071982897753293498968817712517638908575933033489454623630253569626619587799343902050436254729290543439093250603001933586114531618893504996138117242678157975592740323897150933593619699330824308258391893551997708132547114212850418427856399696247894956978972119859833507236442119567969002320912940670777775797152867141461892876097647731223336399588610277898696801833394458811398922060517952929251180963122918157145059177639920492113173661178757667216059955515007593055214547789239451744673426278195959588388099867275473057482924512384500782144417737587658228819235406662173049921854990263939323584829415265804474034218066061546468035298033778048949934455517023025352062711324965693432701528143480656588028642178707183246507424202836118271659766318440899046794877035114210988605779055559420221985141512802979339789565761506530858782762685217379955889734015247300976707706319288209829880295161820517451756242997880582500881711603899099679090272599638475780978631952451461237465094409776004393908223860349149189572645256511169177039491774101706688301817699227649733542629126443962839118706201248056134968887325763294979982118235849996427793160879366754667722977916778433203891411817407485414189844482060396973085363725834118128893473892233022344996432331829137394734727740176378041410195709929435054215057861950430455679589216483051931958280904826547177747834065490205713938235421090451329790559224431333800269017496559238458648123375974765969430725116276476646744429550683156587363842925845887434505746311436127047766913295493018353834272583750890093339208113286398366306708544165142899920669834957313284682617932721275309366417801038256161555570572645715012076842941205433691451007293964566035953380416055225398785012812103104572898955754123206577567619214445745481257752043362742169986609340135217608322858262415998244255948984574415529600535051572473856682032038090071832512222125057346301017067117067949637437530257676241985201727484586108855424222134937515248952394006947951111991645421797968231942854870834222100154512653501966793383837241771877666077264552919814744821669030061224279411946604516344885016444956757469943894069715274180468125807796817673519991881456354447390623437220680934235429066220037224853165777327299394575273308835381274424459127541265624631915323538248347027767838068456620985158237984474362990809444178092765249923013041653786773400730783912447670936379720024867372604719182980838610086299763289259688079457294043224415405550054368645106509044479655861821337043640626864429186293860523866330425533472768160757246688726348127212356975717217318363705934337445100741719759217965579359608264815836344841142620281281014018685681121844211442118986095353961794195753348532465279777482465315548372265696706567163179930292737150150878765170153977825070020816869894847796072787825069664855985856036691393040683735644998095399724856273082516448911135053423733937092311612527738945843050211333995838895180182640212789416365079390038612772653780887178857556527009780089099264114584883322196620559524156772456567750580259292054060445508991525271737823512839756005742343732142868750868228381406949688595731451925080201869062411528381114898507470147286769676207472917083109932671674055422296157069479893234203282884493383641321579203503441883710181880909134072105233410269792961691535871145526041659635366666784380440618623824093636909440301820827570315574650253543470371034235922667328659842462590547194735520178640590139523590698614884470355346199613885449232735835151886463356439738109507054556323100711621817962122473237287572334779341060966481181233427653319155762557693195531691284752998016211704326574950931532378423830343791899805117541010507193201794173742379351770553890893619166488621339196302464753501511096340841249568586510476836203456001255999539740920809463494972069537440283443646038298190221063395761081554981632110870309407193175405777511144371389759127675878131571161453541851384022477004213934986039827084640222173206626923513819208785569699427296306755380812240965875608020938309002965840606889838846953893860932249708813459644018988362291347774846877664111724763110821497458263759991340789957365312127211693067294340897299399752610077529874307802047435211704849811774851835861910843953354438801217895512005581081158290357516770423587103563032468386104811666699279966605029692462869520118435829413660899612884761108319535706947736609115418920800747725963465871500810457072997054654554163820816760584676197750425767563887525082419631744615962260856906179895026299956120098711035942921527991871113127653242758963178125111231017086139389253419405893608600098870970214965337647466065243591634301258856574236260417057058166014508966870996251189448014416595235630561372969271046926962252310577800551060027304671300714356497530256743389591162131206126023004422696360140561397973836098453170790403585454691051257036510435308002079592880341358346401239165491145172846342783472161175124698841286238264533955634888595442509950116093650238921103437614634225622901697328654423314417930972912702484534134167844014238073134338951081663819157783600405907766192119299468132649764105531994924569927792010377313033641793964174048378462554585802322087206222757042661530524606980933668965455246647236115720251128407222015708433001405650018369243425287676228557685646895689518785512532917495771033347509241554844725066934179000126782989480166057198297300593009428601258701856897131957314476796770118967808932671287525760293492325167419487476648740617769654956520593067455670152272828145524125564025826837289181933422418994219443580237287118806282951848060781353501343943092919675296654184329559918187111324068704995098119416676378439154441022026519812295971846970442942965457024600521079966061169623883798318142654270388435735811200714752021087008143952152791810641499325637624502252727295787820454246197879072379035422853016964504814092350784380078168478794986133975177035749158719900108194196171878608861436843670618139084040855238994160157581585382122455237888529810958434668037190645447634991099739434300404416308837960336783555864488038069446504003249216586051220631478648713739211807965145656731680712845968952225984779374313528009264223206647472252494135849211849002190707864944564494560498327302957853619346848406692532549931228152612683590940569414072333385998064635429343634872801164538237854790710560168146841673129421089171481261506695314508626916579765951952047005788925580064952408747079026976913522834744362845045894194562127668031163879331089860817886091897346233563914536551391407922969573811459431002959912711360771650829271551931762161872055583653113331951153441863283217433195785230032760751660355714086831836879860877952002037985606689484860662628205106991190967757212400002673371201694598887021976535475886651598495172630663967887037700688806672338067335494171800226320126342739048534121505075566340597649683526262598342831399046904845896199496261825291025770188446310470884463130921538800331766395638269986498002913507647262313923902698061108990399783164308218417953037560634167856753393833853742999277363732842652635176177306536349578090630214936647713864819530070035732936998551398806880823321749921370361526095243507466279733100247039207833813020151270247830618580479686123142049978449626685406230745846818957670209717400236189515203066017209495930461273393501768352658530078620212215618120358942512037322517741765643644381989911594009916381654905820635581874641105163558812086906897035430269110447036070599212626088163006830458017318136908763211425134152304850031193673560619725742003088824067646077766491503337932707777359060298763289789217650376864998748022380831075865920825703540858563913802782256948769235482400485245500603921077473739474389589822946852095047222161933074890671344349081565426023071849177019551207895869766562095885381418271877063206262559028813155860338862267604751304773089684923261506188492383655063779381804451925990831966302789709234429544538003564894396305500175604527091906295756435367947888648883754547132851589422023122028256297880143842030944232637398905439954806350231312186348311607008910679668047001660226265366856930502460337565646972995648093897830107599750114898804032520437402632161547139218734771004751985538825262352907111815831564767599691523147227698641753444199827696399442752834218020173064638314358665084316270681629701390804202420610853175672075171063619657396985393394410665628776085133282107568726248313184835784514835193727911012767394756522077872106663454473991702593806374411942469859968690699009780213565902166303450481293383219339450002192962545262711688218352275565274213083399984317319522624952243803501020926124642928670612873098231499178106002304342884083283796585896703738210783660137434537208719439061189164994545624075155087334699712672805617908087075882671286509330453371499606527809823589854274413003935339461055617277048783520017841206567979502253160910567892353874799176498557395119345154355825637858254224119402691117750661973686407213960047199452723694611336378029913091166112361871095050004160743587869168465509733527553493338347980635800029096638760543830777794393342743417287158567132569059868800492316616856637854453209280104866422082584448896346111643271424989547720881137509406692796080080896307558156177070383460274163321636359708029737086448069973123977607619821707916912205705890377613951193553606021569522592303869502244463382926859724568522672931493687542385033394213686938407204493880489284672694815849126804181517480705083411678597614280480345574210612995160969998377520705638844588580681430636464178494100646466740891246171959385804984627715709453042670954419960850653404896414296832375025685872815982321726709463948263840566661875743157979308361677532956054981447357760919334181665885332842546936639121352380984769416347348117129901800065567171178308487802823439564594164249958229536783489622530620146929940800774744234713310894662995795678841485630133423731072042340310434436960758262427127668067458871751853130048542322379681916924859746991505859767490714871365272222370531898207380490232899369887194735146681746956755538617814003002165678779417645897400812726270451685352383572137429774100716694395554174847432436690544944040237092913714949232889479809774840759471212721450376600437701953320849317365966775886691199790269005788594995985988945336898900932467622276298967209325413533352140927157832084763498872598208699234113254057568133571309954587310558428424941640610227038424120272288558054147731821813499889765583636085879123576112544976100583183639933051332433103099366681309602415409903368728769912991563846315367824939243255075749971686236465960625930283720519600143487742224351150940240547710233546530878029330976545326068020019392766137268884902571601472178226448247804096839882899437124823392511191787517042503418849934216845149175871078175928255426802840929300039266266793513541921797995010579087348118612506397418547488854086305850054586702675870931185364123118900955209014561783049942600475781997837114803515013095378882659059561830654181599365965621934263168634438949781481522395135012884231499502568670511750366704720395931503245449063012200098954310217069027448922853779207718801228536973346057350008759018930347221142228842067622754254206003201054980082891434743296589975323107973622975821286932720258696683778151621444828799060554215250516599156952997055932642191661727301000103053426551809136018110691930622181304779715226103801833702479921174332295731328529242642004661506864341224093216750212394131624649214321789540594389604838609521539428249340006691130334995913149054510885790883134403560229105200811845020445543488239038768983498002346291166615889092310561602468217264558667464184865912451861097673106469211939320488308596655090395764241497480284871585119473333765635435674988229156968602219194302142047230372484028335236613033875299048101171131202900527867611803245733806826876600519131233919463710587206453503489867835601127836985523341448400316029643669616940247386662139847935020084345642746099573157370628478081473522475767626032817486721743850381204479527293003882797399677376847777502878289305238007554752325548119422903697289792965290340533248184662052760886341251200583878705519940901311260588090714687195992192315907184081751812532336171476727047069783347733042327702892568076688279479486520077211186410520913852573560338165981592661330248821274169688706312939624458426469881181809997223399603931292771902283105766890348000687936947258600019571831897347821057314920664823997803675850274366876719266611017790996635492791136477505761493314583698699940814899685494661290155762703436176983102207025783327748713054467102754186769313235413552560764974395163611074491799872480036037212571220051179945594965913865243317801160831616623569505367522469088189298853281607790222925020680776813991515773082412249559375590025077812015749481556985683394792259798756876376168694825105324017799240455810257187034983835220219405615202478490297869701807095115513978348156427797531555971385772461662653947145898697194159066643989534454363570734433826255816464179247353881597130451559613505645918644768631456587729860965828799307417462742740187803537221764443190751314050183598219756509219603895949467399260890443268260300622391618082208647378165695354808329031503815731708617245439343227947548488761990436641086025266894305909051600213368342436225207396007647339819890875481236283813093660298894287719910751720173150762610591804948645634263986873737063845519771969890309928282162339375748824320191107730916080230870807235931147455942376056388283142681939121712330492516080425077780597751179011369849408744439226996459408857782477587388967314923382749506522628101213115455602807527418258612124303266442814705974901949351751152351304326444081778408384742772044512231714012100705116901881532141232127565975372203744197685437258967766288002836304104197502046292195689713521791660182047015225925642494807858716074586113342671004527051907183073340944311890409440070785899219187463805518278449827086624000651033820175875319683366898454933552574959140087129185259736588113676885237927246445280969400706425966771593715513769646248580591341591345310034610219911304707111823803125149824082244740209508600848670820887760072449577101789857421118501023972225051144636189815196512529023593690584689983173965228771541491655036188890651485882140552329079494659392736456364034345378272850242714812312420218972392358796518198230035788288566560236523921098459545261908945072069390393866637338222328502529901733793687607719508609344637331491260580096188669312481132561150515321121493246743696447452288891609398493204690072350270359228606535729517408817818621739845503058971144835775322972836678222645417465099588062543857077771998076873001548977808925252943199839408964548291744880375767185556631422920493504360856952172963643662294785274683741526919150039324969214541070060723723174406594447807224328936310056144863138611208388965764444547560920197415186697382600315047924802560898504102019385891997086899584518713099625631591085587569829615756487545080381339882614578217006067454263405062449098815390632712979339090957661439720163618896623014089276230169422270813250885383966794659695963201773468376646547297096083274516796741334040681703396052967156705000859100604664830987117422424576227575352707200819682208061906742909898904096916747929924007996340768940083624101249576332832217912155946238292950162834957636610114101673818860867833962399273017056010997309067803312384563995010973233189162529070447706885851186363382017793761717826868918485576191640913609845645012236447931174323722508607910261115782271147381647434078453283098381266268397525213213276440176192757929403399215968169540936083689705471737121360864075625766799118920888171151250293306184961600997341564790871548104897550052029541942326699378926668911018967327757347492353082016367364950507286536768699219244619711296617108555584046317238221672798932837740417037150245977830655986199618380732501926880328154959160604323293495705721479661665532909356798811634524964059481874940015184317286835254476193885389374636155270121071211615659980783842884556584464448979404446072108195750554348362362053808148238151380977997547558253069822515832774788880880516651811201482405520284367384888259269203614992710607155574501323402030207660649651287712552412062780286980722113441016044084696694707411496059467117151556350121958655248277887090608259080502298843027624891334471199681476029625532358722628930442460022558470027378635087669547959722486295392045021594796828565368906251466717927412839937432473997924483241217452668104619775796668062658649545527521200229689040760192887106145550476900603754729436606787571738889221159426253303420918267385447117819332261332957087962055473357612275978150059065551169990941747328379163506224909270531186089527697877576612163442978025645647298887398716905221291280306256199741166288622819398067885313695187023642824158068487994177980394335686520340684676905428498927326924519230563962016682837513743520470988215359655361876498140024357802619234429641965230087596748666506853175990706406505472781820688984863662825277716803972432344075688816943751967809544427212412786424456486570544891910564078849636497450688438152143518946280030436378214560149617517183779479645828513998796406043282351165677584874979545381448898045198976770536498931930056332343867971658825906801121194323556347375059301580434422707451234994992716216738106741185829947760056732947663912066927857981538526876099489697580305002712809201398071834917670503249238025351233034876439691370859078146871064873012595247098810693034210701730703482944993723025407975663117126676138214146220139600121797917289913326648431201265615593731203307600025133783100961298762952430341928332966324241697456211587711314196593823783670927771472352009276679576063000581035942806291241446853246953102465627349220426012119670346917279473928949855442737080414953154162671083534616581336295367984023024973741428760390791190241480020434482784563973688140627702525991728963293811082305428831703689092860524097954220461407900481907491003345444817363174111154779132549861958361789951833582167458974305636336791188815765425448576452542407805818601639839687199962180901446820529756862272542239367278484144508540912345912675173920422394790683075182405352079345001839856004957308368926419807100683975454683954164215170035375560853069741077931082932905560351227994238356821805884358679010540656564209901781667570253508630337915254541859333979564396431406903643014048651294904868226900615924135832471424934101131703386338731679073278853901033249364697291517578527318083927497695352943895007442299287810226969611879774098732539252539156966421502772588047963970690607460386119005866169867643440087624921552934995551272213125790452801912878424139346916517220029240223800798059215555089555845162560859534433140908142083384215965051395377987322924232400739335060192363662361472845220551359386409096525233308516237490539624266452404158648972232257673069910122164452147410881946819080976089243114785410300987511129017963728382318806487292138059352830550867950626665386630347914091819789847221374045857764376382968705821267932201710499541687205119706444996139737407791337660849451469623107247125381566890779418034647452223060666063971178423324959513708725980095364706940457946668652481823852519932426841474658208977409650372003711907614588431682151411082786576852559343971819885007088225970133401020625223547389406826395309386203431100521813162096826712144192316532705665223836352788661781403220676117988712246364350105611393776527998380195675272309397530049944155000556208609771612748513542312531047582621449986601229801884906625726677514356066441190365560366295563730394005953004414935079725195688054285974503765362484974437152162252591899036026118362504760656047206654351153369858756452284998227628304077391313066528492750352274842549262530125647854021477137060201921803653686091513793319468565341392001918278528762522846597457616654201120452184303906589402191730796564576638975902595074320455955451165582155950370708044522017484105542833219522049612699530685787219694207959954484871823063816381709577743053986951333995349228436165011085716794615944597125724795885497990029642568806827562401214306029553150105961928008918212463572081182393069088741089433469580786014375597485049756813316577090007134915185481220306422081431623091401399529502182090872372538563932506948030095193830037008191841266279730297453719685842430643750284680953985526339934863922048883978603673431120774222595275834353357832318038175720952958598782299855267732500558895734474546772200357080224783871865178550839217669639501112900772975388344349894726420571854028470467604788819006829972914725080306670307273047638036824542730401006919367034463185096721932122993422477282581578868544165737553722135200156503341184415004734456551494561026705037808214099193015369317721974876017271830666034974090813971916410721783359805785235383907240989828893690628508984071504943376385961736734986104536479695673026880000631804700753792804717883945854285598520561449181558411472545571162910927488260090417843210055096222012974799390878634979668647857334839866500154785417257127462831482761350077899852775449943076892158587866283771829750998873961286039786882678902696764168238226471843877253501686742603028525706614129639641281305967064964460978075241343271034651503312453988589116393663463385222911783872579562761708357771869340441574736187494883632985995447685013415420593703760277840514648995202240060435429768003905337383957610752416118938043515189348444326281980900271742821929165069016393131342854930714131378736923336488866770372481052923387234530638940251889675064941266659907398451660535545183478761904342129343619546087628798449011300342863747427857349628361292453455169262015631334496837461576246625770339822768416560677306093031794485223269007337147167408196831798413532721289699309204699905264575689994157612377719092712554896475566134407300133717861872393595124290535484304498711366061908224909191086929456439659363071122349316793620019031212362361006642255538971774782310944023199327841971025092756053414360949624632552822073678426514623249028057522619187996188344924066950868497679759489497117946553580481516767449245340801817011647703493344889429317132091538882625587431402559730419289224984080376770245356426065554790455041771314845667648846180318472152928900776790262949164946183436560618936638003280485173354401997397452395374712314329489806072101601466370443624073405834428050220907711949941073059694580741014869465737763733592842356787194772746648397670413094226207435474953847569184831439371475669628240611227484796237057538556210863471713833202454321907650796030091932347749694325279843659024550426275668368826650474392260020604665084533154752690639605276351676630775371762762702077376467067234795030842264379917484201166524720363341455070653771489097634385602230167220806768481988998539399271758219551909236508558298582293460046518800263286366718877633622826389749246400921058704028193203565902085740733679842373101799365368220315844448080730195453887271963790597327413579078480737608886826621807205093414394685391890885195584351273411725274067704321799719972005171363053451476848815284553459931264099952888499954254883241339589789518308517009186870965247196319586449460985897054089750315586425758417914664280486740474432008921959067402102621263220986644077454463734054862907859760570834073759401811252557287758637802375918410570074749122828448418458034039074599466007189089863199420124783839405307743283132148570343450923065236996942563293606557498693378809870782148097185411573013972187535848952236552673113264051690726509012592426031377011579502589857979193368238947599683198133816273489291866174062776534632239161820797750559527108164382250094660014490455992390864750654594973985160295579087011354362430982837312607388816223421770019818695877420030066491042408783031766822486457847769603094440172614865716287716162370746837210796547152347589034270065730574060703351591393421537561791809154172876084874689105538244590255075790568291388562489436638470929163091778371806426485608665803425711674696708021624602839505800690188474219940339087058926355651279631148534344026464599224254676087144756691026744988174622094389999662021800818312758811580089671959422461553950823810856949054523465372876072856105220422572648230947330902468685993065439691681537366196418445072047257502856621544088008070770569853523192264453718338130939745611464861154993602817377779944600630774541704253187101139824849382953795744342692328945658345605544792773061080897209249481721396031251961833260625050542378316202352789624211215102582486696476533730687844386649551141217760348639393264088170959057213067974647520275122587151831442564285249582636267583909068338261191553498392338875297311958516326811876468571005891097562254769607615740639806261035014480618556349978608898632242002930228434521640328607728205375639897949716353601268392408464317646500847376199414400753110904159089441272305848157456332194771468037901973925347475561389571668601677020753928258058614697026314888837791163616770708571576981128102893804789111780954504805699640134017066817631083985383538893649000445015225170559156058293535009506214816314497707907904624364274229906286760884128625158130320979089658079689668069494016383709890162475952579531690413097361560716699951376502488342150379059551001732377161256425087488466522112777290649569261418799395385307935806722969864363596764738028637185638018930481239262378740485582262782682556340407699603029758885969234376813469911603820329568095252691013853725282458655970375408953362663070738340597034204765626346295954982203057571510713805390877779989197399680404820552510841147876335676122279821509894728794068430974553485155826119847125371237108990265320916295709169799868363430996996416642296264982579740684448565383657847798858636226514652914887567738761705397229989019411955748277334082062610665639465543847948003922154162323987131937019743109565281230791321208111135875022218943281355332942242024081673307364588732481761116207342652366365027225649763066599255522339727012487261951870956930982531257477501461730057434554043545282098716878707467689684963674757051976695295387331319807916246481574380726630503910744618846679267954173069200327146908507975959909442675668790653955092916336518355011664340985014282551540958851820853055900306033619686753695069290535343164695288994846992221697466309042032262191328915672161573708362046880538767770996144845422504753314868889156379962242517621956165385249770680181723367088012572593425379068744222533703205831088987860812445107082596938583851844088291527392243845372777703257270720768523802848952040165386681459471629218689086637713314605591575081957206109115563839235268409948049737316847061579660695921360399338997002595864982474409096019003686248098400727057211283813293277467578033797603600342119628914224319822688195784774389057890949013770537756814455542902172070736268524860582759826736506716729043113138224402664903044586489468432701409267775165926022213304681575434635209643535210421631211251958519396672124250414004094869884019171106136013747031082549974643954631712909293286511008973787155222726195379713255859951256951085546399224044304580591488247207122515475280591335015533917539568772895159136009339196509520025113538717067563675207135122628658848771995183229011996961647397837466694447767341089919970225524257069548071539792487265882178321101897487204624098044399623436005489659203819395044875075254714581768112904925282104767028078733837742934324589944001991124768914531160787540205940805178107841412099981613186758964090773595282620319847776637621253745141498496431059179022722748401068448368533212906681258405354995629975490051988476904182091852385709185068832608879325141289817976409589756785069247466106270756605170830774694546475762444179626259361490336587828450132846300022579623714685412928724378387472165804882510551367444540317631896191866341643173485076674168086822067798960326917487752332002663071740577190618615425540602849880992497847320157672220171374822879823472620129234075703362936626367483888689230737818476671199522591694416056653494194397270399587058266953261070883918089199374593171829092823439968078141012258746691927675713341229571209586396503611235985527223667013764120229773400474151958512405336717226452607572830688673120074222806845268988054586493659273278750516386464083984432004332232379566976661337441475158711784853363138497876162160341035378991158695533416272955081454857112726141796130777042454976251395233832577755740919576831997534482113719991300396710228673637697100396754621856352170567251192411134286108660944707501969434663922366334989236094108133446294555031915713407649145450530229399522439343006510297416202297406781111994469638188221138212714407529293532163803534618990598576720818679223393494917001576866175146381074679286110289308765596194319368075038486777095290244337663550126552677019787155997489787050701644526213444567868807281565151734288245620103887731778817352288131605366883959970911087199771091428607458230729862467076823345719418182659275283122129934627557867820755845656952048645977207155256100962507772367906556968737440336981062966231594184351419039221027061188868435990077589593448329193073791271658604642982442387778515341531707149538219331840360015353841007460780770756123688098984877088621563790242993066911535892847261846487380561807322360197914297996258572541499412656252765229497604754373881429176489507471155685546318105199337822493712329512157123269783749579227145524328572052452921413316831069307676846409415790429499699401314506384122667707485469319135245149662947240237001011063853417474311950713229180001549817546771606253021762821308481203753695053403514751537116848353084869015425773661987148854087186889372230523788234187996818451174112805616610973915034957728762280509071735817791522936087101875563756161161526185731092547927882673371002454662968648301354251779520859024953538862488559513999779613457340944893486650281757642122880911136374236291481750522750221921297073036414856954509348213168065092065366146925732942154575958119130328470192066919943549778659228419312806844271966605421558512704703536048869212754537757946814319282754572262674425057904933933679685290866137113645736069038155446790119179530927374735517731270833934775005624634545762510668744248240784207891441231549499626263991464560318756460945534931056006232443083885919578253170697922842916046601816164950447297119896686274417088078880213584037314775385535133747841111247616085127412482512988140437208857169664874845450491573080981960542183393755866176956591906774144257548827007814733083926820575915635230880140819601102978157832220095574982476009564301790367656515612148688666255886620874262959679896925960804819836215479862374258347141048407043763286135407785540296676321299265942973576429227164203092092307125514476026610945880879597255993543132194873710584826036655755967344729693030769785872906733955344259311773387257404535432754413908275035001565665145197063211375651059542625588968061242744060944465361632143232363585559784919324615373223296448635454538836375722564390996346100714366533777941325764091265513266485495109747860799738609057371065556995641832058345924856717413131150908306232832263366598282741595414063420520598037946789198731917325915926267974261873826905770184345558606641967677713123993610640404576232725099678831003381305226500740728646467918815232559983558785999383577315272710093763129816451807294243039158291986833839740462635534062723661000251946043415851961648745550107789271943185704221032487794708157326551562821357169149421311506108472609615771774327752850286789928981291334814337776317179225986656704382215642012843127244319353232168042978127664497830480100777619024674765846669263477637681592741164158644347599796430201368869508114283250645531268788808901092777169610576970070443993494649051841635694526901625834455479077187203620909988475223150285865157164380408841755180845741485054240953940750133371807427429644267990030407068473588443684244201732037050806544691797016797982409209864320075373031686630004644286217011790706317082195505386440842264054629485438502293626990428807677132685360420146846629505744365140844141827853247993567305493510567081443667794854452022608231219658120964919747801924585941196490710363346297986919240749575592509648249407039603323634076227900531460002724271575364931757647208582813172312582761392594817825933505915587720525723839603280198415171753380089819313161669592404084578980373127804953602488559624610451446554888428881454284666590476292504836749647324877014224604241580550145524849276914907340599401928254242912813311580084159494642214873976560232785053437794592003299297576877115041262810263676655634001407426744861193327578595018923684804333709454402373027288180266287018260838340394504772382620096625333743793753330397373483814243857335665828684972827795150809711047407774266079941450373759813027181923316358909009130614671680810139034849995605101237755599698883415239642822025712375055512974159918667107271927691645680434153476921488037699139512069579421261823340191588429974699030911915210868397260392072956230406918307952945953130328490903464317436848252453511166135974328352927265910044788151544581612920524900044324767976100448488301760682248167496209537050285180442952192978888689795795516787188658929806935231150882039292429279404479171212848273662597820594335007819317040627865552507544973116330929138545935812776942992389387250206326683247519333171880271581046770063911878643888893235230127373394363544895769709680705902420160386036344981488183565434722730875852392586247529121976982498108155501903132260306566157541730755616859855960041639458416625722944481423576030669007378162715167925545348945578302250625183219745294944968055180581346531160782655588679020822476759645913372893012099615410038357296214463482106413566005664076966242951365076853707086589782627939510875336130283902183970247874745227872176974492097083615894101536886380442681946922571560091541440806694016812588614026372315897590307089513059851384923991593573232201540699241498028894620586211594443686817367886045278497542223435430212369989185835454346397048927385178569052462602989514797920201314885751886571992661243470279110261806119029429630104567035192749844074433769072761772407109384590569939677401869813925380934493484223238025323150076967524997504057701510494911002093427420710954993290483586592080979402839045196617847001964941712891257648704938243488744158308872325966364007666835700242171170469579447304309464565617094616378773128059432646724099955224853926291971775600628082070694644763457892615756778123698695485653160739711967435800826135455789162065195754554791281930248959465486414232558176552591960870884337447292741700212689823815334759860920275090232981048581813164375659137766018101738729870867860635454654658034471099225668277883804233337180269100848483557282746483744744512114855852061503838383102667993639488645744768889792419910722979129979917844626110883091572765328416970639783513280980303716186907842946056408190188201007891411045055136600197328650150335683292206264720357014949342863549503880680619228571735984057022121857067828013154530631566007169777247169211823322313656858567493822181038002064903962439475288153418555507974312796335101251953041760027586256825025951995864733924294360245082092924883771589154005739297376514316818037069150215647056358764014460531437011040643153853638219262858965106187553259551801888292257114658312604235222302644992458749759897482369472812567791863134881558410069083660140961270122955533761750599265863634893842960716856358958752522045132546335388622072141576179354593046967688701423512411610941190355973187616686719350910055676973857671993453978378804909985940698817643757063475077012544416079760389536248138011886213805412281998556266385469934714077914230325847242419921198828845043057250273483217148787655969020493517639930346341700071159855855537294835444384077658279310202303488523321928645442471043595069760380790707164871717766361926349816844551957021200540671994814437773308159948791122775110296144459182628088867898522603490055458260864286165273297703514334926932622162163166070099040235790647569040132343454076537582973744383267429753482199443582426467323353120173930586264370276660313035479676881038477961803746382599561698226596639149514489857880451942515375809377299496110479599177155852828687419437084189430838317127008348904854235817215333465808787634992998552657221524351285676630106997735461494109742135378399732731733226272745266072191493521413222551244362659793819478257504769623753983630658090464490052990234956222787072159223847724570331670794817683040406065458361048830498224845274571237923095976332221956281900519916720067804618016271952328226375325442585599376532526141615154761442034574021990068747204191776481328463005357410998638980373302629471812566808796112973677392317130190450517926807178547837986226559246225831408464601733415433105766314980700319547864831839118750850730717816505410113627200559629581091825430444974145011227687144931702221362113417354587701201723281413012802279559028430029721763815740535935401397791715567189321116165637072504585506664885789854660624604081235428054548121313595619012859221891622404155222739405712836683153736194742040650583726309581570148777185444627198377251816618893467531562193409155376749172438954687816012272691662948350341417388702248897028614046114953318209071910506656865310979926402512495385867877178789434645764482041764149654092826143210183930650151654084990748769371189382236596616104605621581613397071166740404484804537025047717131134117881645305547146328929366162181131312554216012964851739598725451278476270772064872663294059287176442713306222420073337343923477712889605304101616764716805016607415906427427609376103730960047663704636790208862994963812230379875691149992032047538523767824586220997517221989244456117750433233493363739247673603593914961688862284250397563692778706205973079659037457900102987354266384598694031275417527639603458616780866672841105278311916829999958082073761692674731394351335745183568045784770303235435532177731999133277451486929098506700408833606470673285469393509855334984266350633726189233700408257449292101593456413538480252801914180529478774288140081039258526152595411105236883768876731416793242538574740962680176035322509620410092376682127841636441037449806831784820885964846528382776019726425416406252572468373130374917220466257930179514776017412817837151971588362631734233780531442159341801967440972372090392427843820669527250817059970933927356027859350808473316850185505750362300814704744303312595804187999846567746376866075071928760624080114411945587583084579837121482049535099749014729424874596268054760776993020661778686827580571210737036277987963141212661926065794722458993221867085675497202075294263134387653529401939928593866589134735772240072830991565025847745138180294671571680819443338562772142934332755539032526144611113974815678018330701846724965383709524660910848108682741813429070232143452984136159612398461732801743641172076533968754287015721886138645516861918836164396614047855706997872480714597647740709702884971486538819145215269315459814972313193932776329244071485586290026146260451726017237587105109352090432361807796889570171634459071789595498751079999006714442616197971865984190791951852016781820058328643665400523065372039339234186537487399563756612185644595162101140604699515136775235559477930424481429931827948532403408056968124915958202361777220366837369471161052611731871644894416186117135455512523386924756951490376690333059596043039668947943679672267162352153820427478770083865705887021430441851028725770550806967768153048008125779515977696847421389151592739260162583024609483433378426182622369439059013725289121623148019975270605982438528890149911812836585241576816877906577386186540080860636372589929113252733370075230756155217437786994383827180144077623425231048436835832086881655874703686778479817730569077245265317147196030645630506484087540938861251818586713855578484777404101340197613970436011227222622700213118782703908510865536248559560719887416612134541085135207393132659130850166892186803416045069022616828500831096217614810092467207537057604068013291507008542767452992404323367368358800991298831524353234724206215297069840248066770552962656648848678399561722320474412664360357432151798935311035309293926688118709457875379001571945446357846501361978931169617017145582263782460087349762756074209472984436474076010147898129861887948377611485055021096960444767312766032403261671432129759244033698575074999627301496387923668136972447137856335784551970470144228613403489556686654193340738790066136417988031672592782790958424959180407223685520749919953427782665858399577129495497366414279454225804060747681985110330468574733736439013492396142164582961796656525138187613322643588233442315521800923134863943956208830998927313018102621626327199940742560890138186932706978351099932396601331826821586912733808398480490672040718937544680807508273967859103221430354727888897109206666768268643738289325304605166215064647108182509417271411686344983643195091725452455748738408153819849711196729604618078125134816322442040014424398331866861362937718627817152681257275853277728463298210683144192977388528742874136070658277731528038342573987118776879048090457723309554941049463556026115507250952861203754285380352210348406382273746363907933563038295139393307827023501726678729487816446384022822007218505974715723525708754309215006431493626638314055734467270627659005824932225982803380075722748549539360239494033796301152019225186201617351978989413444060192837278044822748820568993997576929164450412825022128668749262675148783288554088031692759001432831055083812473686206686252788750561675074196167415979469856378801590727316687177874861405363699171932405636523717170606062969316865049455096387278623213232571800113881852907406549113421877311272906065273795726449715358468792908749077311683752145969563401255601589027422366314958544373712626689768913207272825225195963651901712287762492808541898423875072856137121038850922018245070734550886726366546887579680506731800329533588699326040263130883941096921730636467264263213404958127285243342928507354082313911206456070832572040417474298352444069554957483244880273615542811513871499163791956841184513382194909359687164772534985461733401805874033358893610302961202382579233291810093429612219501442080990554545168924801888697226592137456836835279603333531915346313854198510231345381346706305952691615828368688585188696273400760010515574682602920927376162848004721246064756039488071084688515397814312010361852542903926035699469952731675623728647291380963996634469436197187927281914252320028804342135330324756454158838324456620943751347737038100348035192789402346013755300559263666656483747557786024692110802889047425188414938506622414466616432416773713910372442073800183816231878560802736982001929526612457712699645239244485549392562217091846804822928378162070549672935653509785385373494610871428635429539951388643001896272922411203085759078084184976922080937528773594822541298347575833052562362181706210122685112022660631732527253780792669359393416029538126728648099935690404688844486143424020016746466806882618372977272560127992239771623224638487942658277401516939260871072707052776060476720857041152309237351544211652771679006157065060355439195392561852990334542765300946487269098380277982833650365435723334006890583291615474943557410288826837183325772470825416856967485273176965949310193061054614641822849246001689894746829638542092180929057329346129875570394620558660624614639837788928326240283572389782498377571999902410353563825229620820159619878841931808952889777690843701485551536441214598628968543692431789839532902477511222088833078901277991398762267804472708079510754786166375004282636594244178348535113060260924646415794435891963479596928396678135104625006941828173656881678951518945540355390595857133382320348802261632350911909665803589471475833921200353835184722428922012614972370334611594953559630757993217941724527820477197832304841657737196282708566670712307935320860267386809409888434233468064403871736480678845127283038131415436757425265811974824859627744271889924354565431292823444550985877155696247989798961611848834823830878859025048169262145830533803695560331775198931758758505908661747628124205891216837875970235455703521302914741776975831933588625208479377080957573425623101517175755048844289494623999616671917402488252778541989510157656519097545008950474272728695853324616544449809698407606251862653396983420404079277047880393747816863683113069016230191590819159866957659905278134703178607557349266730280223840801919492235789868598060768444944425287485558374690999616108264274277507707962979341717792745988654894045076309422048145506125658123903493051043321533598607077600645021716727075692724810943914935525770296470821028287492064836029983500383479055306893706149643233435494168041088238279922375269674049642569348833676967280444492785022510556601245088819176903506345633686955135906632076807829557071090637345577347946777040911710783779115220033529617293181931707093294057571325766735369955012845734274403597169129518920229483430197867409098073722979341173005901068872325359106228549840135722194380106073037084932015448412670885067906022134166151726269307615089208947249793114763561017735618959064977803554056361079119974109573986846827234062235193045183489336753876178792066689651382684456569033833288350381093182661948436579734168720410435957822562349027977753473745932610540773992801610910509693678406216178742928373663724152833876352247802869159875628074831091358144739573315660924717527623782923647578786651431256341165746587243097424378603195025592099974874723314346437351938072819751766751144119625528603918322704127649400488708818161528638426840630481771846911259857472055569614508951992599500105914912734515940063797020856102599359606845140686396593706585989833791432753073283247634416600263845035954572794990148692176031704978911705285930119932995036631746030443895496011235005023977576882007699954823632788486099887107358578065851034724932104843425398421226343929090501843441421754414198133522443721461560262095599869940295193026195027106618901125700123508901592119443878384439659963120959520526411070383131453256646281777207667267438180684496819646957532627043291098069648589854154213629481113885242525815163746152905459038864379321619947248003183791950578866048682977834499764432022853266870876621569307646032218015460952312227299417562257935677978046962532451923402860143751685064259899696643219657030298999619346391943430135816453119105694670799002876872392068497360290232340729170867651354155714641468715668906973906439945459561442483866006515159622420549076053188415051918219510848135943661506253510294904710385098875389589047855382765524478432224590680247617369488437071328798720633378384697091253781662307546520228127991393764351175870281784401075525352552494508930415734787080764513535140037135772788394010076946829595503663889619467532551083884386404388187270181178480271371635814060397893327717961905153582638961696776465661382675152305827465836204518265381270091089903685797134099566326627597919818530518858951273978270244293372159664509651944066875496100814067194338955394921730724773387945094451800847919518014308643601900228083654072175405008123052595064171668523968007976368598023410034574310698105883162335861975910484217631734725267112896142069054179033840710351929655023393336905077372279995528500525443896804682615690179778529328982779413939675832137663406185629472092169590388438556168162791082335775440446206506299972702900851764470873038645652072064420855076538586101466562058388443696578337448981405482407616617202495337705813932900805629785462757970588044420108177179278648148349734842778590104662546147534302511334624196765218960280322610937093997386399187980135838805751317759956127175819235864693708043628657251826126636467905538167154155002911805768836896179133788832876184198218150344043949428438743958224732919682174790742059875879200987563807509617495627649591681224952192547017292143798038530106369792221107693429008785721705058019236864585105709181021682261955747701767520232711959080988328624924520839149334269059603764363229683821851887501065460369607021130554315512426371610899077334278073925164282731724486761088465302105882150083520476090449496621286795938842932447089713727825584513778705037940068765120922853060432932566530662708326679856476184046030895626278082054867966619276722402881231340194226405270619439161849391672857348737037075942940974960838382121654495071907404884486343449540098291479113296629168728155525950401378193197233710133912265401334846231231171774434199247989764437055770174450934156415709912948028630773900101309846505554476598276048717740897616113201187275366405514450585006194382882196157781863388418178915672510266458446792901876260927722229767468682010820319141151939373507036059503444009823342693765593440867999698329014333407713748597169379182998827003514481349964741271904910216150000947098384844117345233915094829712003573926057683968258297517967659704163392647250905044900719159618361349797826250141384379325242723724284925364455821901219794572799237528840832877256469054095352967662899522940761161409497898222086320903607166688878353185878591218133119282700878153920423416341102995277874263195732280147819284268243677353141519360558524027703886586084099641925924084996974824913357497697394746014467096521188861777147785060413362364901920361444903853745583203525143584230223669688997199304798160148849030340104277410727719380154881169733734755709657775833318521787735063982872063564334432587859134448337377776711706215834870876335057251537703832018518133948941121578747533124030010940740250976453041245358624570389801509746856409021215605419173700469472412423827917596296904979625269519616909072179580065331805764976770150720865897021710556207570650078993563741756775234955491909951847115380511296304418596454238909352803618066043556366677087990208676652173411422947036249927266189049704971852531146383209788435982717593771825296379888445715678634605072784826173563694156080911834117590056614075439191174128646480435381380907348401698618431111656611786730394736735343139649498394459436745523180413033607453177453205260401609867228537068991297485836444296826541319997997533133020741950046392917613619442525996484004656153542488556724989564099765286128555381669496978232658134103794195653182072293331881341887295197052415938427158458574155699775977915715847994189554801606322889153096864839129211998776363722750933072891369991247140359357566899336981681433668696184701463248809327718395239125902805761002595877246997641557919408148029516645994458145118491871788440758179750690457069851634417451335616310430151430053695975374193200242599354848669135749547239384394423476197837532589482963375959941645658592586738601861913659306985778321823746586282161525496216633564973464151702939430982197857007058769065919364187872985724035483524829201482941073549662465041262935489617983880280328652005404209646431573031786886107351466667235803752492361706099325979522186721586170716791835725340807054536509882885602180642878177188919769580287522344309598667738613637758813890901509375065977213365765558982237690652955087264133463428981532110740625017502167296231767381499578266356572030729737624938866425173517523559207381379436926634039115357159516828833537117900506215959960149801780839753962468468996849727711620388297730916393759701794329363748711110033185277861227769748979854472203012706309352159167523559728585439905520115755214051016175576770634056938200554478939650687532406432691658078765098853471852279375681836371576144105926059005170851362305922848467632576406005938089607061352639698598188867048726233502172061711340874253531037688780081003339163715348609960247699110013857317370216865527108433167542987992147604833987161652932878156626493357374708088293255239554027575477614832104570759837615899452839466003553739938563272503066304352919787916527459560672922088424383712753774479961806628539355335485336700257623354334274802813413666192787166116878912964831600940841856913469972179299704701207993088873266076564641827833698480361352947764554031214274288739096562976436157974326455970329343361193195018472461908277635484767472537228595746855989964689655626096295568182369476068040576343448692338639107983042278415762214428509705044298785952253301067358089206401529289720416339658456071960741111032509003378133615850854154112642289011066188063844300270701755271962093249231068163953550325497714596593360727405574449793435571754356593218327717392585510451141872630752344138072413400966127697588502122110712898516190201934079215687465259439575375132420574471910599569825985499295127300177239448853040051900423942119662982075052414038721411509391723722487876952176509081908854498808502469480676703075813947612312292170862227867669174906745785016232100785966321385036199686329381328997882286433004154835457497881697684418346566112240395316853579852708924276099203315992939292063098342238185342799057585224709168451156747909131209656707801172777580892989864586752700783293168235806383203051340013611055498765520224851830953822373570595324908323628573897077682441413992176354744363678082767699046038195558354592749316622154749844970114078289328901293989323672656155639288928070121521296907700427524560200502034784412567561760771102803414795201011394248369336779431531529652162342712431415669899705431721427109099102702794096307098366515185710231840980492605805841621434701391920128169113546340433545181644503154975076242317215430396014866874417909113901375179469600505079378433257371562698800427984147259164238851903428606614726214006430015384227644875701666024890315635903577913464926947293707259013513268437853293476465989957560722892676844679127556964293480032327037737265805867408022842029381159621776432308398322949981162604190350020208209830404529199380379382975787880620557420006814654968978085332662154713387051258577990623613722989934110560281423131531983024946520655628702974552227774178416838498298866816633541197749595161688525893432872739235392727082897086924851924775112984866946448988687804946499599535388788455520581967617523120321856468141049647197103035671451778312103954872454981816545515928871006967184747774711961368877351997006716532674679860283661857601665452743097056043893453517771291937981013934730862322168291896314634948580720537046036531555068783952936173887016172567842086110537090975282671861522959419513393039773128313721024584908794465792855784796636647335450757302430896822619336975129313769494222131652554725396717068720981000543571045556484177895016510708773712193394632296051332416245536164136520838517227093291486074686397551609465997045506131377876084003792906864502124399209050763165991360603600404094841674522728242033370432217440174398129837899123208633099872933811326616093907521766637609817997265992116241785256417096767466115154835430173574798161457903324594284378294584459644545534733258616390085682334027286941294216982576101860032268795468287021700123012269451146417285961929075185478358288992170461847261054019355636681155265410012126984024474510220045744665560779707621589396901612012499331869194890366436304424175856810758326931149384939403149599351945048949944966230907268531474746565508193835973265876130794068452048587918912879246907905969251338759884704488481347318456359828326734263938941379961648981522871392169018699758562084480817253840915183405657168470996971800104652175321239982286596078278761507625823266132142079038535625576333566473237099248570302519437516610732543586125886072687507784702252323847236287451339807511786657542402219787157750520855456216312589955538839760077864164396631101031993239034453357680755981078859376328465819405411834605248334444960282708682880416587192180070624942380280794475459352226500842058596169116579482692417044703411308261102607393696798483333224732580447213439110835373768290527486386425190570435308782866427758145980855256967247320453450704667627318818059464721157762821132870245456292580346340826752428185254998099647615575643172080623654552744610979423996098675870176491074219023007977588502998786920224870386439144136997575518021120310047929699750125402185327494771547121639346540892596676923000533873606770284855008280313987102520294109515797779408047344011969356265074538662112663265651156450657262080466620052035887613398861282696100578097252890191375507640085440398425757795896675503383762870321436991471608148825042659700034383890118351915849365830385484392871948500935973700094234046610185837007665627283126357764508475207142740023556403527587649217796210840491602334477931459155138115310982002002692753840721564005313521359467193561254837362711332874897801961995474529876309839589229662998037705597469351351015171580635495422587723846993880896835838139855211920705968037148100821942089678063663486565050570712705046968964459849739015186259311271497275725555429210698277691912834493016219869291078602567717469786566062443725689629836507540057001435193534846905223080572410967673435203454462579080866393733910441162189629715988765491120227227369790622780537450877148301457825197107449635588075252915453514540756324857103685423934327947788281931743788652150648689692031171931792868021107415468167595714580577534767026804739861063335861537161854675873428561198867698352829941245798839446675834202787894226851223023302967594717026207989162847133068084846368968450545136670148714633941122411845162871581760822692043414566804051886431480328350525106888340930962992426556206385185253695251656287150425516886323699293558379172450698260392865783082735076851953979784651276077318892989466334773667488148323723412552539205680404190792710921760409824195214291371375988375147812654006131065111874868256055478873541540040017098526473434852814746000148922029906888787781044337577539096177053372358286665264702729960185316779239544717131241593758280065380077748977385663664408534126504803711826609128154870513148020390771799719066524532490345965172136177225127627921436797398457250501353464549809668257478586315181599027082314021524753656742758986477171956479108442332734604183808110670119265153550114106901801647430625714885478311071759817692339707781704676257594061032421969035750879678605349591921743975570604832864153826157984075478857271582707391838693926268864005883346622733051006066653437590039342502146518372575792525298121101844643553651222488558323114371579647832957789474647294336567106866804563538000363967104836434805305921103481932505797640203864294087484464449166614505849505826666911080905103293839558279691173366795098970361554290176169041326817849833852670060303548599117415322629961342713181539096331426181444630382164002455951120200330497879735067227287666122041357368314061400059540028671796786017138483351129776613091776688642766865969514584745458111385521033013691084609175132468432560307875751888544800664085591615368112677164944326639501797925124219881873560563157358663884830068918234120967531405136734192158413169447224833905577106708676641424070954663586872776200150226947611890881503747508386893377868007528384418186952476498368269949421561011340948821301635830023324254226750095322875293679275698063033346359640172221162129433708088282233580653850066510610681572207249453209372955523211562689913029904174615895799251274942065788843721031455780568434086122289331724656322624209937968670175402709811147046816356052632389532594796399875781413301053907318608257295415945259178746080485654925166598628730545075136024108010822153521116652943633353599359071458865240794507192091560370645983037433198452142356244242009888898750763384261385442115962424819304852206476793444300671372048728254826591470787674415771429992014659570538496593677482593275318935184188325465435916817500988304719730562290389614468272358092330753444607809080700138088429307257027812501515091007889447511775912128699564865071381774997531979247973343937185944652305975991274621556254217553323888416227239988623671430950382065209528824933312577841177728656328001484207798187848492237207532202601148329595329855583200688221371498150115997424100659906081419551722676533083592642341758466458139669471678443260450385909821720600032876490538977045252999565812427174703268517195148953416344416787348354670562945712163080442882774329428750730145566703141787237484742499981891144574257267138501143982425884325138863896338317627093736399120943317590506644393797236998065744183155251328806048936288911178947344733419395191713718219943449047535831841203794323116629572254847170431965643036771455275837139281381088768963202291952362169509991381741311973681917042970134388165642556522980225771340973886459259719695600508734408006178420222041456802274856988315790525050783160751275560256745190175590080951402077871424464437012524090016711583208394984826398552851632827657422049922674311901092040900758652471543862946963628461109061538732868000991302557721963351670875301325353283141344703798630196918537445092515076774270460862029031866116274901848918302055559786107870087950000168517161056291981664477645671210636767980600400196862768754289079128864637315097974011129699891105032176996231715936660462682063087148495661372378146154252815807780467709377948467710506420116503336155860309670043508241383319476162370011459968373573571826265835672365690985517926884919250588763252954275965445876054293917902049931371738695015918956262872717543871805537668782542197255265672192770367635566744400978382152498424634083511345611840744320167883577361892489454770614276349342181391380657871564110426500962672881703345012428557160143590922834588698916420351956746268403681856062102489614784245393665405866915594515207836970729894549210905448223585818817300881632385895434325825689230780553623053558634225234411406015027597880262028878138523192495617661505133903574084300031399452700778599490999945582879194823027849707322157778239103978104293669103779367892275373509925672796910971613799804455792378071634364249536898023961465527096615798506557848702261189261807340988056700937865921945599229704030542165036208180934647811042053495025274450724083139199434021796943197272536101764512731849698511127319542910459103893450490479998477425777836413016461810194494673473322566938351474949855018622411423007130404773745539306395013275397764831973022257558872483382201921381365068456720872548183016713978811176665644742641351608796115079625241751446262813317911434418515850982579682066169782782916340966261109449227697314908858812603831388411236242168764685286422851851484858005848989960223071746037705881808399413627603112012574437698602200827919445752063078709805601492117097079385833821405261082764018660595407628319755605274194074207977492615393871948941399799300881451160668226113913429356160843831746443509923469488912907797281708926218258039753929999459445255433280524987895598016300437970081149709144254961151622513886829015108994714052969527878218857153743991966460587789807990489537739103102221401448435085763910598087855744983279956468441551956623247679485742435933444092801438396037404860464427046137766181880665419657226823211603394400290227849570483423679481460372612963138734884992280604243942870250876242362629781861680507312258214162380132082522640561176959408112284009451318441791045505307257138084201239130595039336985131361198285731266547296796363317917358173204812075660367505401385335347946840577822984229630375170880003034112711783340111462431377717825248858479163073229772757721728558591283668991435331724365478554372508336934359242438423703759896070336256669832032709274652247882938450626821567062885072751719324508409954519860366764569297485649468947905519048024173826554584167046715455303889572715383536051421782434607373572168192627342704478960453601039967682578257722310652075184912722105911606866350285574611336083841558242625922746312605162234142464226235354550956113886760438490928269864096033808152183783183153134523066599153899891348085764510268263817629005412404845874373688978827740676898837858875441339802261155729033976118366125998343271244475830899556554420199651942008298355426208499379548552402603329288010283660694965052920867168591621339513817522580157693526672946381087014107393267862172223074355279283268164074648137112476016837975539687443892953717496201539915006974566368889548074337507394870378937334999697020789854102537427719411871636613623497187964952807799552316425271763848788939904640079712937738817943442326888326272294850098578725146872230866506069336246325619969750254528784963697782237738350645793168521886486310740966833709689952251216507925569306041484860805857808186787431842808828237261511529009217775439195214741731153994461415509064293018447530256324963049203954892059638647474588424013257232576533802541553806993048350159771068626086898410561676019378083541981997105182738205536589635634610342875171896620602642168141617322781057017669154245249225304043507140747299939380864960900239437243563039231961851998929697969182534661833009098402018669452213331433297361274504181899877480455287154231279327464667646697788588722709750396582175817843951789128363637733600257706718446526988688637288911154722003749676395431206163778486989875220190843348759975447478376991100860452297945285539216072012195267700037770745711759435700698334206986019783041313171014501172523987327839970248052536494953441681745021964873027846435855139565403217757848417668483506882901925582375463310227220403727172507043494323620787564685208798542965316994023580348662223804821266571305193808902850695914554068540417885032538924583906187841960707648937071851045085771722025336106921144442264864088911764741146850036155555218606301898772811423445005476945499217074571141022284097157950874271562261289013193718673781606081918423863879727266655013679641048860894480571794006278175216313778714770724673205494539424306180253194291944053754633023027405920534572134362549378798352448274830522034652894656444068937672737444940357696568182360829301792955415664677184661680856302544314075867304401784182871008559128344208001439758438313347229277295494527974267848726898398195461911181717028118147682988462096575485658633051537710966995454986231687535816521822205746900037668873362429486450736858932518276516343874221497899179506614027676804586319355586986234323129413792628974420911988791126439962659104132695951963211700081064342643298682230423121396585243135123891426972794165920038151304759843643387818255655269334291115543059840848905482700938379215753175716084992214835210476746211811652446634199917096140374579015170720417993697198032496473359208623999747179568944201804339673065820351609379368770457591384232319875692980820282683510464845662791625003224104196988602181325912204844492771358169625824140922012315316262924182718943225653714169112756468301714930609236649839402589343809534704878147867313056624223570119730689784812990635638010818194277531758648914939723265553258086654592619967652757142153510708635205658673234643584474457236233955791573060148452624073272184388130689750657120963753038636602605869488887860022716140145605766629082762605556720126044410905085925967895227426234954131780484876793759252633688418036160922400994263767889324892501944872898588335674507273796973005981057286339504277516556095536140215182808914887735577678781961554469207786735292052756404441921187551797450404553481561614236539501897543742502034877971382890235665046486505260316067310736931825689210926122956340527502217611696391710761086975907418617704766402306894206751671404572928604345404435713043213233499263795246610401137773628863849653529796660149556197856548025825822723688583278279881909887823175984234172181523733966852003530346839150020877107598407071883758766511881087782756693951671623204323811635105680364549672144214230474555249777666612375692521061105191838501921719990615381208270624400478392596606625059592930049558646028676743288677149347792677688040544342538347223851187993223700446657899743830176518886875995346718707445444317711167024475708061280708318390631221818249400000973179162090748103762217048063724157555807831444453489881131843156015142395760799440948498147467444342939296589057613352626847038250117979707423796447065361875320337680257836357756305758990772744388066009866630714643274328768264263713631347616607751756476670250123017279789388229811436903599020504058139662605913955312600218590014661943626109590600099191487469709143127748303114705954738161372079185001091728812458230140743358985307324200415011362120323713122362541778066570915760033211999192001121184357027504664963508480257718770549568578124587609882729515655259114861654011527762137005220533444718816462133837532761350856573955813645775222288163247616085355793186195684556983270321510958890026645101556165373153694608162762756693749706439558176464906365590417534662239973650879138827434010186907615240472281782172937622151866724633856619173714080169819069034644729772081413494537791172789445747712654456576279641818615091035445762123717866644184502694867026945410904722754448378418705166965311775165977382958194545318622283725182934708027980950845132250284465814497282399335910470735827384209266863639688254977410459591423671338752857848145757330490018184227255834435588308756187615446009794022656458683582268932565083186729410713227921331280880784764790594044792725867758988064830634536056025967945689577905423968906732394733388206120107863844438725893272973011274068818849128689970967419549406521371673252572777467236853656983713906138507271073258002608464605690694646828731565761739134422225118108986169176922096696539903634946683712347124366352772602097704566843175263045951736270222804001648142385622264889457575047695519132018909004341382914317347608695461817406948700557644547819211936465296056258460503385205883999592668084288542591255653773537633811894717310193997248823856767557749189777997773231856592268749853729156060782674245464227251937697685718244333659236017535011398208646613428661550909863749190780189560726422230432351367641171876216126135209891032559845331621250116044921890012216291873543728747704299781702584344341636209974204552005434687849047920916395425244722144771104643967649864120461629540488727225205218585851751649665039852692647657885665974688736063436525257657527652647839559135547033406359831747371232070029576163228406314746236365030904487709277523285889481856123680722708642414526459819793782938767299887100549586948616313721751973839476576464313429159336169353780930761990238647189115245034035092089086659176818167846265625546492652802318266993228968163566812896057525601006213097346767853271952039278876407498219167386777028638242686190485479031667017006492549894331680138535263129897623455066731458696305667139549369384564424930537948518741507500954539165225490363543363033821483412683905069363932858156893169147365691922649523505692389510031268005694724877799506611343792003471425249883522720878957919013094417313683827361970955610570816899917112566240171697330365004147433931397004529979564990999538540695171997855162939469143629402942748283020052165276944826307654141570129629548961062852145671223161673532896864904140986965502661463648065401711534564831188518477956918943169198488456437569866656290632727098033251584267301252767565644409328181944490536803013015134862048338422139218814141570165246955682930781872723480448629118709941154723045630237096683944959790082181603483175809805246488842130450092677043570737447577105101543835190641007393969650454940771630821157690090786658234321554959906647237821297713572558979674685328829644465784163612292930753644749482650773291224949765354787759025671222168524434619031036466147866201701585919277541341173313263588163377805281195814844326933889681260163404118918502639498089905870361482621416691232031490260006726125046348719806500563117461615567835062407354635837585147164435428921692993169507519271844534688763884571889142642250153082425284032862268511487998918221735961293723718655200198472071994242016907848504334641326589892011227655234315296510309337176346498779825751629136080429271623289344923022174892682792431002271134353804676157011410738864763090090756224164392473160406110655106912062420787052636190429001032569747611906684848298626890099292309391839796670923657733021591797118884331230972157338358272806733838658706314529731055680832580585051566048876653687481695937394219656997802919919905364538848280618952865429572629881200568748192089858638864576178235304567481079754948528746022993252996541729269409547199163522088398906253131192561191155026498995365791461893351538571858960541452087211672705191483267685939504054809008956541162434541406052856953915322873187463119322222606248200576235939359423162784725865248763404426469657073745567775551394635726094231560828541634702856915174407129759759704202059203296753304823882707954647777382471315560672177402684883090215972394985617953871207338911856408780410578636656713319274821567806123368219421925538192134695398609116115065765730944458196909933762545312839782253031368542818125299469842368343619981328377435682510399394480438123660845393333686657376574704826098325169213859708915282569345687758218912916818946101606147532354776815118166784129028266104941565224730784808043676108619007256996634271220645169675639807675945862277374160656175003001665799121901845217976556743622273737247942157391085840591718483657772458116125979103365877755837737067032807166170703309119606448910121571031611372959223810911761322023060511538081753906674643147327563476584080296784997481964641047479525439264428102914355314944427968135184074942951784023063883923600356453222853871667847165290531736750480523532388565083109076329881107979632329561769510101783575166532868505244355989972865408071940801208698844050871054770284310089203194938899818905240018034028044501477812259572487045764866229773053273906361901379671083512614021683415748989671697321758634296416528631344355574397884793580668872858715473733743778918225087768330144229173656184773150341526138607582055442460027154510700413970755541183272290104875725576718165037114743622198219552154268028887046521588422794735933839838627571991835778319303236383262415339763399665246958307695627438779651173347783313741106314812250424726188305194686443349931021331875593323298065746170071853259420101072290685224889596203694616818338275667124362050692979888482864786605844785054626116103783763654272356455761892791576263099010167830737466321755037245830429807581097480711489442913076737442538518224413019740186804442497671049510544589200010395929195424829409599517368071070174409430778945440323694438121496259292404649395693015499616736377402535498071627287741371888857692144844477805787707425813919927050259492382896520139844775124588023031491278577249655776016188568058319977080291041843179779494130705607403504485234355811592569640031313512868610125965805816518591572454586512032299630551675915163003039109773367449355672075584295135911513070852037980634438694922955483431951954162909552465347520552631898420912320681221285653202619099153348353033092418043194926195786278129836467773549268966703148733098474515456907754890687032915193312159493200369260705925158605413121760485439818546454458445102367223718893354695723392061590004441312646071915336748464758762485156662365423989759498510696776631050636916524792864297207338293961520601899689073718352329883283474513541352673643374049911643707635641518792218038025097938904675544989362132290194717550333719881431236262753649642425347907017117438951211025934799777991025152443045863078592421100852661117228677279492032428500310512345269020907290130215600533366388314180027445561630213047510174402211823568291726583180041143076166880373617720563780007808137802238305780729311525225218885210051717674666209161777187775898049745896901288301998116195430710424075570515923101469736360674399152497517796880061148464283908323838944951706340302636177270688744544188881508616646008976728339733987396256712305752245582930830812294363635619899434639556264169856901114428662586286219260584395254898855789444286591483695503034712759906132564534929915381877317064912398127367890147527434486872967606661197716085082611317432064499769850912996287191316364082912018216560718896455428730370461894175245914826769744034225161896358524710257423058047555178035259239009562687161726625039128292024207480707252695465006314321947865724563832883924900603598873340294744525030938464497821055927684083274049081122590757573512657808209353417633891356604042427248249291724168401354298868318497715956304709157549116155819253089964130380397295990186584856916234348061437400874845583351774995190921341993981887358026539279672821404646003850800816114304179859041488383929082892532005452427033473543875708077905804103880343036911355170924501986431466272016343496813427825109025965454460414627151600710921978998269610751635596046367417746889537925120007235140567475770105082269670245388789776242962382857484848292754525835913516010590455410878048043815053463200559637487701123308943376771618908216637507295912264359228693790183361239741123632210139320674412852235206829988424507905804672097931301838626082284716443264502464129054437743420855910299351574778579667881499188539010359817031239634442213628186305161686095494726491611803762575109613018096567814418041623320333731731382249226495900740820088526340811925802151661365844512993407317902857472645166491095129521064787782121063785045355617600246004128969849128937898075189095896239026669826099681637018881357311210386697853924541953439914408870135016094101917559492036517937441474997010670286433005889510087188417898180447511183904449514029578781111533815412670947357659235612226011462348445569096667896980548686431791858067878552265290752618792578214707473862438664915388142493824300604758044626387671647944865229160260059422464449282021003604884093447456135245336362937161667560829494596763704651386831482950023772486387892911111197739303552641932333582377345537445017956355582993704298194771961115386643250073886670455599454690185477846518628247022015029276810021310511485973469178106531560390805676157983762768609740001202468140075132393526346858111992412142485340428126440454845552609975012411016918296389927259022978934624647177296022270867262216606899831938980036188173770140359576230402050717312455230923747633916530506552896053930597037223352827247221455045835588487402942555028449030636599470037358307238866657769205246855237893507043591988488494649810006940184471738171935440866858592916574874098107303607012535013078359191340849120870842231436455364113621881386577712940151277067416732410123273117732952256555356237576746827728648614266461596836908625267431312049755323959649361972718432648645685943125920874468426699421126964164228800861389585847535047912079041544464888891876087276208352793020349778462739276233228248207396871336934370962730478332773490932223730092551858466557343301072098220931732485884897496329906012361785010755419656143318916373657368025845038221787013923332010342674619228324501094000354474403045460113751510369934247354831558388308501468584523134369749125302416150489199093385660992094938147174136449017445560002840910019000124620030767480504928629606314948617802599922218673352031925316058370950347592645203964934655358635881797462034947726984423364903734226473302367506194357008887876730617566443252560558344834967277336319053447978900036935488744961462918332998093372218456399590445129514785216179399666478304209854508016090723492488442741334030731081313619726335229233828326760468223622800955182822837257784136044223700873342291964752935808389887117852501597976183647301263776603047118448248677896268513594768569888931275674414455357107883606525879520037151290823634999027927287533944849623517378476384495930212584269429901633498717804482436624968314891567646801731377077942032338931621737202662667139086440032415875452835440558523765744564083009689109976471945727061343810230907859949803442393787202677767792072293569452991409111823104717191526257325025120672602071999530210397550310102438858881814515909202061527311072581715876607551950301463801336893732613067592655636245553159415155042358744176940909682838780460209932771608427099034001013861617883648683807676312411384091273743447494559693780555597530659257949724008157299379735471579904930120198360694327567884628833003231413592433477507347643219433577179259758103540900981037758071230284036392798229111571275637741694889529924896034878089518749588227614738700101279649945454730616348137699366402151824180126315676071312572383218128502051954986852807633347921708691211222863055956897690580392396457195431370025236552632507246229611432507262897932677511183492576808675831322536625020875994287453107758743871263202518926732552812671234428289641108928268563017573457186422189493134542251019914464430340554119682616897865339450043857901581831264467954559997082850204584585291637950298705419355816951817948064915760469010100279778889393263352067879801551916644532029762883617493453505820754742346400905618100841635267401760807021555520135072792967197417293349649109103168694833035234228160597466542742337160208608110529210153406002961939668478332595100395006163879613159684240867920140027013014985312167210465780031895518773372803521498496580494567211068690869438182005615864455521605086646659313628041266445817561624661040371765495995104381302997524475787602133259221769058855563883128976694269676200282030510369467510402612050402496824180109653859951226064656860707655821332593281915285012127773932570454646652392007821077338738041210734435301934441645987453149061162628894858364684605610953534606431538373550663071557836492305448635307351866906584454724232912379463445626085889020243964023377134531916546415188999390541822138237009051190483959980062388738177634719967311809420491315225465700874048114934997874076948625940120333312664466752372891901652168980543373855701790421414749895290046599769703464240525145431234510832140911572825201526885305049703794659737660835194765122959391976969117168447017773027023918032045736658019383072939596486133360847894654175706232198457293808400145362150267177799293858839906810241938984243662094916108164687521397538365842731847456266655498187366468792385760784180885076294683685045356490017315425997128423043388122074002582778738504429645859448239091721517474404318566411998261492242364697780266749825142841038997453528099127011543024477365760184554572816919891911271741772131990952306772846426767616697199704450719487680803945521619352043479044362803600721966338451350904079297182680295724011370196570493379227907365176390831154491203831428597030708566877254881654947193399122175084184093387134127452589062101548685776455136399429880722453745087876856300685684646519247694706347776219972361286423877727862674663368852937955956149820507168635229583130988020706124093478659750215689440038813675031535166069062369898193797361963974017349584714209502344012752236445527265959018979199834080629152123187449254043072930664412000152849134843088620653104347841015391763860722883905749961889357243506122273063828180076676849545254908044122009478671056195552235824853274192927927961670799926077125836602850514592198905487120201794371476947543048688627776592647765101647162418455575536623692973893191162599508360686144758623447114251213004095863861872666142882712514771556377303271637970086364161605784447616960946307949885137626170455557835738058461324464687893483588021859397428509479638773148339904881154454637644397623570751628479030052773412588706526192823531962890111797110109235999134226075983472540930266671069614996033171688999668167977359343365893067093605955740624554219676288755884395820657738643595057086099628751432051203810417478416029950304365338624923723649702396893435627599782382406994737875689181432732361770419071780128312226794220719297706291621063898937710122881724415994092518304423940460943787429159593652726359051895472405871115239376251855786012724355350509981452665842163912970201233821823582332673633619193735783864093589554105845219828791273329528437519847922024038855712896074763231556315233710338419342313775270752720196533684885484192244121929452335752614954522088047213076666373096071823729153971449863365475761758503366390975589719639060365058927319522325600982899792758487295343063912091242328311021200628427918004846512761717113487157328552818755651439584813620691082635520777866201091859597965691542140847614808133023417433515522534320922471187472264657405709844922846309601855790379968142484875181559262164217814734062741849490490176738951352455066266821839515652859355387847561675897748444215192303989736115814980681917544188746822637287254174618247399133489886562997172135522147598788196583823462042415542294098172894851197749945886280931086223043699924686604130954453071677492196780988259018968218160622459105563127783804441090028782936129993318355627339805124026104014618390532597106875590129527588493638659474565458611436692005623426898300230264012386363033780746171415815891471785312156662765481577598384470407925185417535560553987506175063148299972391340917064268233437626708912101079916790498821263784380950930449201242998945842746032591686338054580704578893673819594865982568573665371030895041330853588631563950172568194777907854370456636621193849131310986336554526920978487066786778707269535761310647070361282268967932573869714058970785971838222752138866414534944000106729814215891824734174016663012130120882963849466290840229757456703191338416478703309101618833497458264003146784647739715925109864696245184548126746493614880331363310955844013504958829173265558312505527219494231921789042193035936724160224360841236369956235874219585062083502970462810917459609285194658765018268512180791412112318762868800078337537015335899582363617319580662999162849991135463474110842405830670578656797820278365045984943501972374269005873257113619752379099760484366378797051312836281338761717955916986129337647728374179196176396488239215525507526832230971817297489376563754665357756749460634050877355353162212729279475053902830875044271729488804137965945758128966491537611463918753920847382012818354568589996177276862981898825749679587184783856687128451968792466201725530420431285613276767979842403940031914041411586712815259230638224676521600355156540736942020640942541966317920372610975623944020495649034551151145151814425995414986211043842464665874969343497435103138320893795242381118047461792230099778116581761054804799708866967938475404025607486566805457123145083039044709190131796843832568487993843778894964760557546593474986339495032586932822452119352876998157428817302615404443274496265304619208907736826234761663406436123403593556992473713098429696118949032229272907544859250627796448103623190506071111293441366952091766481240176331413285724407497552167453730319924039409983273348908355711199096257785184783065262175147589476961226483195989678901363254169432915465913118777564079122926376556995724659670888189554674672575471688646457757345622188946829064392626931500591541847606507377187116443562408598646860993403091878781829456265306631983087515796459859470471893792301116800691585434975552787871400835281624109122952805386471624242007979642930852843987368381467596371885738850774464503240961045719829627190121162712778298172154026685903918586093154326917095239047541258243740095417280598968272157093592924628308996284285650601021127487954508251825110910487574735594343682153950568794658653868499865349954425723212579892309748161492770969363622362176205400175271750536644915161577519302718764000565123684683751150205976663506657230354141287855269416315003503925235696970661930479205965824321801671056265042336452115128828925541352702726389950922653723550452531600506926532076589397569197778502691031340192418992294261698859290057540294900728320543003163165258423892281628893780646030528248869260477066499655701333428024550911382335096429170454962168691650744944514734504247957733419401531845669798760443897511312315835505023629392587822763471607373124123814158723581097742799512389328499395915637421753130001948325848543285625822144337444917484362354184866670643002822674792271593981437906489231525351098394894473095287949726212325139036422800362280606954562785608888862702577106207496650966629655288633231979601309483591218539115556623618684269214050817651857917821731867419876679545895628030566193375751565390823929606762769434813656997644508436820574769354281113165750344955714498114089510260855232324455059267500656873695482302334634493508009675709459897267375104053003991279691499923995644452830252677607140045915753016763647129890470452363418847145082339668124591635616603516171852518400162034338122193866887674627717413184058234580068350254271826564970274616124384898668910723483961492175827448487813910821299773606833779383954667134879480744901587034357353956797551563448661670324428418594393397306159981925259506367713503757028122797541384708951466085446931565394940488987056188497732443686045735536440864894709981544757493651455703545091495221636182623422545049536438397452129443285665930903582772291594968579650701710133217084284759275276910633654624239561013728079531486157396829691191006902232522674049606608537175502322715139711388609814634953189976565112995899122648499661448783056670751456033915309354624661317184596149316990507306485724046503838432942342123086816671027080874145129820757706985380120683293180500403525761525723693144884387042239394587202330315785360774191124297645000881431931566250635932141812035055232349852770669982223964788024447764195028405837234830892389390184406242778165643273079633432372967943725662201375304137238604959404478352992994379043014250017222183588713028106329809221742637787843062187155768248116796390509429102906998471378642469483480815096458807344433422125229702069349857149911693744084219625451909140973248518965389334319361729201866356744306449834118471639235942439312101936730239765776701785024258142321690585564575491568663348351961018938198757820644654009712162336936933736015507609978983238565331808143649921663170590061684251654080465163093471527535602369108636522191177051499020884176299485823805173911533804062457581876838582058233838267918197164019467528385686507128043701940081459424874647254122624723515617963308794664471761814116967561029530066616615897556324960114831266016233362607368505918560465251861726187715773193722440927272364094000246638708658523310688083994084272327731337811521139617412180967783374079316611881522323332418708569256194721070252281452226448059887014877848059225278390234925838973481701169906377739498864997686216584434480648605723330001349598648262520772775094385747251704239683532560059288640605453935465020563103076488185088406716502926289527025031453586408192621327777003060918295755392005077813209736368207290500357691848354816544280973815403934257765932544072048015355488032105288361763211300307713100299783520999209334912618175403430886727951599647864777863532611726021222872121193149729522027458103916489858761677848137919618573704916537967134577861997635960498242086760598366564383517419900622979596389579873597014872004690999078220633444614631532707202481756870173581628988680187957258396068836442289972616358273699830052406689283528146720775731586042834944595291095636655064703482816981165575793484625866845000085532129373944121004619381313789617911164407329075988671672667929737080281326385246287827049497817736741159109637386260798073506749246939371333371368495868304574149644918851235107442952272826853475774583709936328828460994779406900213947499387441785883763238068524398852138996293296082462132997137306815915462296960800077077963990301186761287446668769359927751253941510390077113316551044279261320663317024742837407499639035706305688012543361638729753880942260623194348155812507511030473174261839679624852281479352496044332533207095894038346159485473291468671563912580701615553162748531391822933511691787085517346038640046647060024619543671039699778205560934507747958857681367964823519356083893051569398992897795929587674314402491743000663497104496312437387915694030485441835840258257394839703664234073319738177325800272778984073510822299287769037681284851681742291987085362816665252180465488723971638710714644380134938679013654835012407802097590002333873141644311827028484197144802642247284947428004077143248424614424881333268730710996730670098534129233538794074177062286079767761552471060097788356211439608411763330546129798243061103631437297542624943204890688255642588095742483118384415096545696786665613145355780569599754449257276761266599421897850577415540789682006538467583477712815974593771872129732422832726041246235845741090292823240356695909953329111115987167805281169484087539421110160463061666698314188429791858885011055823082852627123866925485934471649211670029773136800964299493139485662165992867987971171582431551507707471386297896898755113022444774501256461818497087333901962589102491712360583981273611794984598052261679981678068974466131689026131451799324384512035820692074113384309654820676432969750239632325772057010279377218037690924457615590090033914803447759422733573901907442954913841624974771061442318145423787247689377121350821174744313291719175823302194637023058235705060990902239391177147603372924206375783546684187709128084405087470561753933835837711001302504236286947195924314151817711468570987385256339548580987024902122945320045773371586512495936412514993135389385426976136837085481784967450998674822406385319522724276551035598644876699640101269543960728959777095129975961076161969070148472289944381109339580355151915862325477671035813722476512909435689229415162148168303507525834885497905223287063392138336277851319295960813690689244462833844879361572509172144112718188117702379239513830474960356550187512526001209348453659120716960627787022972107327591048660817455424314115982438486916457217635109637956152005426553812898244107751173200915563426810636476940643591084202170218969688085601855472998054208056846039224158778573896714222707090649419605933580739535123876056179076642257818506078308790262175660809656614784200321569880231679132912304601478255279119238364839018207809570391463326965618689075698841309067672713652305654775033784644703306805298207593631896220497999345013339021872980060998543460638955438039199824534578323588383113829508636761256089499990096129679171703510368239930383022942676399593983542743009859775417111987870844391153155211953390668747116342552763503301218897938771430179174781024669671794846262324570883371798415379297123577915964777661815681123968056030887682907855659262624288733568142321176518229649405834462103819332559725749167281073303128208941757137629745663355087450367079240438453900570064182555260961028955394273203675741872694569833497118634076578643931424258204084241445776846479258925684083206808429052794755624793971420810780431393231447547007865716388782897572653384898756960836758902204273747437981058606433558162389649408135002658327349674921514263443346866740295970469959697355383888937298349301893482753307279639852709977157920759206395228079196610820620668421612531149141632264234258080200903828595030367793981650016633504934028033060480944413872931062979831153607632473227868589890127011576622739062825400609946899953378305423792040447596054046933615297973188337814204274124731782187497528137345849825435488628327904651304566950578384403693958936973815262007795169927128336895158847919301244971881916132947117899560490055300394972648000285116050583023056581615933939505521836275992459372052334313061475448808466108400417670126079296595920119864053046027598034507966522903730208063886028683900652500779574877259302189081571888407866052729101534418076218313814184025685481202545690621460462381405400866569621034233442250322593327130898988381807401602556554895269108142484471041983012405845330673971375830711707022267843755512292874339395220879096592789864321471853058922492114683756145551020423056476449547005453891657855786317362011431984795751075046475424367173816152265439875801532804070386723920251871008178708109574524301805179969648093246294424636223587767235420422928297061066545757414729167242855838506878903056609672847186654364242398569219169761663938573545111348451103095050505523907068493807763581143339310325906017823693266908126984907206343404183489885209092905053961425233037344737548352642304154614513803754294415569472350677937916081362070427423280081352614582968552667307307698484460988037876168882144366399765928989155486173527528781722131424166521960969066317974862493057019983087323713229452081522996693748470144681756919926260542139111047178429622555611701750140122795153242380389641669899303061222135864108197618958522284080064391425954597173411631151858588062224757058390475440213633940746973353220542870223700756220037148594124334970304528158832662414480003403755109791360967547665303271047598363251182935486963656533142623667926443589395334417689078922863419547781565921740435131092615784613224750708786201731782966317648074146606815077546033161146216056687614089277496451403302834719422811460503330227300829676067813010261674355043165883353272670229300854409194319167196087742883754785586039383502768429546235425953210535110683529116526351179224884129887959714343805994369207622395218184599962363024709704073213475290353703571740598699219421226011240698333886514900349161643638682064073655730865761156029641080117863114791755966001336568402543492740089002867940798897304704803599466040774779266624860018083580433524686879015957155981486734302118267852041595323725546682850171996226629629510331944857527066753664600807901064604092920335905055614607899803809911499412644726063781571892966734135886438872332958802838549828020846149152811591028415619862527022148492338733216583117638346057227047125889748357277424387524434420813266904048251349795856068520263551726292204787298139919585879760086559943814233616697264970307865079097783687926354274867393644340560986501140117706720980411136710372383989972379070562865903274210890467791199541541843444201462685070188127923433581070176429161224013450371039645222357881876332690967071989136437352573945207527643807589382695138688268617193158065011133212836343266498359450970240453145211089937597127861221513542273906652120014963556607045070708815690385711744615956680858475636273061086745191174681561005035711839327194426232027344524505662562212160000399812186678785678229015762797815950626893580870785863899838854535922024426083900326132025684134259239847439662554386130202850224025131809801294952652206908869085724837103004876084220293210734922194184784613000006407992267005165534532450340623808966292212384733310401482484386406575261011112765638217570164532106860680131666051506882156497181129904308005663020157138776462164124884261792364832778718107879965007703586768342113043687974657972609915344047737839691630286214102910529373911971088032018808476411242472952990173124011415621640784906938754037053402869003604788876009306530601930605921154537486013818567825174550918789394180929359017057817465637204203668784756587729758559666096438969263140162951542160906937957590816713230843331976057189398396731006130013446592829501395490512869727607338753026778773762690222757197844518528459014698916726140893451318940888393519654497162518325538603060958147416567747167559397872454360476084697784129926485531328489283616564922759304210161676896064265597050111680827407722231844177030103908769923023604221938281247956948002135812315373464091773755168002621841738661617416261889962188201346730115936450447319227272377551089922886484561565299299037642335841398484827706340764143127178720081364549840228213533109858657903793207324587045903668308379322261868087748452710278608678606806052774824578657540924636915565915847773464780590754142913284452234386239071001900915616337990036571674250637868275358132752075331961163395048012151961046164134537580489217736913740272649025263251724979161618272532817780585611746439052625937271019979364015753638089947534268152359723545271535661370755859558392938787795327069604741942533422084000000036287668203160434608673948680856517439298732058268937222291756106085091759477219454355032536864733886721213883955309446837698263926336644825914905086797141099585215229693504672888169350622392603950434901597766396313183987870602536367410555185567768408857567742318241224570195630323863614583391323423750727145781645725417828050323457008912214509796072810361303811537894419694399837359711450244911186379105409745137733185332010059577006582816043271567831497772922455256019268747246274403804505762291104266064779685087541326033721281001230943163906265825764330714000622858411332264321255000213322975605223261039407670630054804388140853629779966783928519762733711392489879856621347061925403408361636832081221347552141273416267692916083185828576304970346467630587117932689801444828210794869323018026407952217719058546087688999766412935036063575750125751476217565630398950739467870059444847564904547361838410468845385256930375903133657943463759131802288926656294291850426543254415577468155604851424918980340194998361410012444395667765383798974405065450701791922649251531969228909803570773010998529687144469083031387139814288850315428672701367007864730249842446660540708084073774955057761016752887526049495874805617382974592995762199010567821414997917566499299530242207724443715127953187956724376648089893425355855255382593941575236588933297192445266504990315025742894830386697586172209516240075783137883924089473267133436353664342075218880097435312253682315046056725930364397945118191970147188138141749213072183080026978711603538517988493564942352969394530894884421665368949541795311144893133810086747194364036350873462499200945594794471873739801999356247611160064889718033307748973593655330149774597293964799558244835881691053965958289407078375074467067448604847496609177444668977083463373327761397444933385023480063446253623694316220312951568346323289813607155334742953095639033036965700536710798029280481784959403529350176980364168709107005377186314518926115541054124056490788789702698610507566334670590050340265509378249238060916442244752785683443048919568303540371200307906908008961676792723008900824797139618884640129684652413532983015129740951228189935581504206856915183357319878177764463710449168579708769073000620327307672865825871609559970904707418099914941882285029833653941061426036790857926271331223184671137587214563773880257746656295319440915777637178637116519964422036330332021826995218139678604191956073518990395761918524825823589168409882845398028395024253831464665507132641797865488702093229209927919301295146848013902564167114431963680655525586811730928146981533261076424735336224195461350396942688720285718030977088453687765096735028705850720785270739261854594749470097734234033612905735461734849953810313262430489266581099493097977523544028063893777560103093194391353983727495092403070564530009645286559739089930073425546827706321613120600228611968609148174312317131986327882895391863840494199517897217170510266845196095937713653098889487152574435816487527076561200970815338263213174546726402868179544116214454524172005371713127918984620041309304244449140817756157694868138303436258101352836075831451772004635555132038827052410024076031090869468577392275960118811196519173485771638101447937221377368480101813847574852881854099079649875447648067318095006621299847318876091909769115027252415573616631296002864532516488588420328153813007196408300112552872148514958279454326837763883595048096662335184439370991746853614460058786218248451658995824598953597190341894917305190253873645130992561930212064888891725023757610011732697361648829030124455900427966805235755340107837072353905901071850301281377966393576116186422637537497743523856783970695423917423742115946003683891667011304625238144479134783943640202386416959848857033142789810816337023133287778014707108266245477092379032761462729959261406804121913550617969790242254090223120470971439445108842355042409287938579376862545989196404548155541939494590851036391012264597885302979724309968246167034983878141402103463243201890698700393011035369029125485670931684892587595718512170345904973423640393679951474523369550771165309597155394122996776487588795468384538646534831358295662325209391116799405460548594956160564816573077768500383136459034149105196142915134310070883264128310380339086988056064667984795327291459276324645493798961570543033873324529143487282765333628902353394990530073208709827545712169960713283949458998052918691438261040021584757311083991304412994134311423289897967653069231216728146233132124757895431239520221921889534575144813062259588794698813857680712432986891208301798768316646039110441096562523348821883731514780275879170170632301340221731232967287672668276690712910738083027462952125521701093401526284541262568074264410371520566034322118873992398899830545099622386429187691611599522730170765950427811302649881353574775040582894885701938322279039849466349887660273014989092449995999342003232009726005912360408607003258715447516550425923162989691495730135289286315088680233280914237654417138088459431915707242995171692225726837185595276815067881866832778278791036339227882693039031740421283547675018546967505703418676650548152295525734395590720977222185505931894410724760480607139010982726716179497705061404192801269015513127010272848014740091847915813554957174950550476110186178070197972193082245055585634238002068259106694545071595710062576340916496066141966129848194505231844944813223684774601310634477569607915231077238023669198906941368667707042918015381689543612253532335733933184609331428994277889625113951597202220117966622100087864803312895569037778399779079762019180259653962634181280077993195824434624906028604795386452176444978738126225649533638281304692899204688433614578580250688691552623837771031783507930235643655593681064531468381427284125799666618568963695004113876829414020195914786609072743307675847055086760419149199821830200799506515898214534914889555324481825194598526983283833082533753869448394944316003193864680993040944625409173120542921934367146270746137299911056737061525244901838271684302582194513446204018736822436020383317226928111628577253029856757465572575872501294852046863710007039241443162030473888604459154316214652064764174259834314684091663186187957305004007672025800164200075531846109810107930764591292039412242054789293974020423214632871178689604839780195206073529410568662707268024707641095639565424629352403674274199444337353619799994858855390234292919198871746090013476958776754550074854276431683425429002750806175730667070846744114386505112941250431281094185867135139791618959723562357035004357980352925183398794918097839664840910179422525818010274496767109377384946174003161735419654605127998825061507640927657697961396082598543118585886240698701130506114878048920956689021186790365515163949683016787706891185617979515694912728858895159739669433130256856395403902908967627264099039500048295522565744110264901285034290604802781888721252245674212363994825726608668557788071777094938071448276794898010398627773510244384017273173051215787971872209093393766711118708023402749010548053653698676412310936772135850455089725766901422875113707658307469636021863781088765070590694766506480863385323932948130108434983743971796175972356761109703802308272715972404049856825042085184104228831878665898012814616490832298865198088208967780610194377940323477420163672606407483569304124781013431304662451942222789293343120789339456194883707107654602236098482730137993517966666456501189594587123706514433658207637162437007119483120493933271585725163973827704356291669562837763687960045513692041075167130649261350743525618335708560889320494400867499403811280613354973826566412710990664259993274596814349195127074965812494308975651251559906723395369712173659755219942879300721310025577198360919529160786281701807132264540565998136191260368450266352031623610412881180396748725391548801275232386257444651173055041442692448863281868763520581966997619212988499162077323044343718857857666404693162128533174007930878723059921800971086298038475114084605909142957452412987725888171948137768470866434748904072269900358084394420493794385297935175476318342554518056151928440897114558054027146180211171602706496785622647627440027748585086700608147639140976654029730735731648571057340178815667594909107331136496260092696917457660324746735173006597884947246764236720922557322939446500111755898876292969138583015394762400425575675839267987419999979374893265801374275150437123856597445840462444265061043708729136275177928833830471432594334617123330009042349656015206189583655549235956220978286909949147358201506960922730724486594253598147829003382855561350762204707914504423219811773988694916044685010410050798952658620576105383741500059717820109391389588433625338037828488022372724545532532781355917319778408258994308781910169451531783974882190733188236952539183111847447476509060173022242317414768333008423012923974701676407961124640979402289924681077676918812671947595642289110645319814818735170543522812555753497706944413599569311112326511999268661409807479415561788100621810412520076973369906173372566492734966119035300077445165865006232356922227023987973622997409346487950963171363213734333992982495723233678023702650531435552131795832311233325837117354382346014172042114598526314594149149286784942215490931753743038440895540715783711734670605445457096445741692335541924944426104739521694262424662188271022795134912575908594318753744598888439254780682500252878354954697467485060813398352808580394792523477033097809481932175442639822448286303673678622702550291103996876811415869207439720946930240122464250799262070766127268848841688070722117730428934017301003104631849961064057432192903705871397548282775263430653545165102470816248436806673875541457801328806111224850476609878807713897687025930073816925825427113567063599780660616280623755271256526668147897072887729255026311423993417844652475756669869840304132471471953157432440292402956626071772807931759043931221858251267938852172728265720410384426223123304744986370279668223257813839521557617051821487736632501090776946161922326658987377599430091988587157407332385257228276018610212834174981228745980218999843290858531574567279747690454114044727833862492904199184967848991907341248849909310772634768485951129061298945787223955844313174328821441711672639898568135204180995132265147600988317463095092461235126777293856638941414477165389575635313952644401078822734630652982232705393670541537944963404448404690201034258377172739154038922987106574098820794811189567598895598770686708911966724174586375963273293104992268333233453979521911390055335696345088256648276217277681129381355640631282775959447490342724698447008902913126592767087722335335170835780819732003776847852190922090449660519923395622128222115308322976541029817333526865052685279995822864256508601215356878201896506646507290759223552075792975717730898476693168313736761073351664434160417002142570136457785853706069982485710728144894072606392306974797554648973019865426207543324754750515849095897530641134592793531399262485340150582285641527475881526837705378509459845370435206287113710803460149915117181403074342509786446689728938604090625044785021597391382574704091658761124862478835257990318249809124297280849762040504245809074804923388057108981496089947828658270217729598021358691883278026292042364279109357344140299373741087286160555389591004067858159177826031304762316720134291901909259613522999967343926586975363240987448706718384813709997063171944857027820297720960892571351709191733439886323296536703444458210752660465780742502948644811028592346441726001878122821826076392059286506755902829739741606913474062268928718201289726105069644300875794738274012336288357335266100248671169324440993676302102215306875121291697160781911434767636096137796209685923916037625096122233803845266167734167439942141620900490904612164494137141790906382243518346154554334932531466596496473490497561234351123011116517948929262019573247269938555766541542799533590836412893760626586510934221469666251804707590578196677581058157463104593418029707475735786080586700439625207818908338440887455847177248369178800197377697946536440621231271943985924647003535176554594439250694802132650600232060203603297857400549668378312144511602309867003049774103331394370836834007310438411325616410741323733856513513533174991745443296520566380575847045287829168746196762530184804751943074445576087979272565436944381572904383052448395008859301224282165272306648811054868492099052535495961574363170656048863149623703498844527672029020492182442259096490148482544478040427965520832709626912496875065744965897100946909346248188394520316840775471569354626884033529966099921889960996664528536596697062790934449438447129625242808013299375893365294147590143421218128728508618991180818455835548332398845550587741534590775651310631654887904881487034547890464184763235486188979079140550267788809180632843698763226439541275364505061561560935864828389537706951962089620422136363308827836000647728352920375099054234712398981996104148464394321849381290407076438992500509606978382176790282427584379623397588094684567611832954784913195932170351315958087805458438728835690273324160113035132562762843871897578717068195568473456875387620238603041719846813175622111179064118123768959254262524933890991403619724860567506527431122215694271998665709140448845920523869463934943081786946855096032591673259696876035859054523503939207050308042275058262162001106767201196112347391503348421199752572383221539315130040501356319832364076339983383809946896603141880059843813017382301231446494114082453756890980851305325109385471901683468495768451374058503472118807087759340030540125207125488358805489265011964690145962407887509270209162771900025797406174134262405025469200066387493202774412068863544884886769827621538424781287197416137474322907069026218671275201284257982795526300748471527575125121867514788283223908880226299578150494618461970058992214739854904645374294007937387849128085256994537979292665808259066613169374599270839814560984717367256814552112291625741576189550883955456433032402915139978073960874185320651877026263828618020516679260353869069310497700082811731416193496630157615113502527172290415208883010983806911390096024718854262999982464374892786770260971111078879485984600989859228628092585477330523957015819025220353778501267911893336996560790565129460533042012389981941215961826865189059252746175707940136666595031406820191182486879187325257860429063561704648387048343083484318950842651367021847196780243667628484428310195771014501942228855062664091879291352157181513289911575493879300090423402278134894913529458580807633771836905334150847570453025250984125755105628970974084824201826878234171146694864287477147952696567663726267063130529387536811651180451391616338518178935370981476525591929106376329124571242538968464821710292146487906329687267291724791736951671746203294631016771588537308621919980283663365448453442877363755606496796377880096484716829168363789297446169701188037393024764313915327187322575213874783863177900572665169886393208316809096277372457175016476798722707295192213892619354934970209873849168954257177685461133467479437748198798236725349889965595764097745469096016928052851779669107558864791224027064776873444058258625951988280559669085602952746692790309088958985109155911647825964037653918000686421574809864065710284719925576375443648780800630238874433121210151222550591571874714531799705321832492633277682569691825628836228639075301271978003718323162051508231790813094785347542858592520864594338161646410623065409536123691298315437710007148122607434587611942734400189866361754339045097148222156220171157883196161890529595243290299892321416909467735237505012733541927948334806452328537930274519929102186546774849109572664584852121142301005080540709728264621791133627522150467577740671268028809151490206870963447603358655112650829670018514308059783031660264015864721311126983824768807191738564673615351507637332264666303754132017494531099043467034134889137617252178247567227372985881793444517527684909870400251834591170918675007612650555120196360971136224012042566229169752422451344520990630516248434878950636151835760982093381588402719256047438864858696389824842781290347523788297839409114959781195658221534130837726033520753554599659926080933519178261212284506247555412151884735398988644134560893748269416447467316844707905108892361097013987971994241787796495642676509694960595686640393726820355192597044970787828276213936795280998760037537249045314124783637522484824733594922628661866662595223426400709861651475914785115634012107498652765322203582594514098334895872688946933996708497814561809234519073020745321000078774837002105159810577470758172506617533624692184892735307254177157845905540389419998263889486503960810784280179944975860158044739970897916833052993848870435362065087802981481591588305212795307271465400557415162056898680966162166319609818981293964329813019007202524281698551062884787684768773566036747199587031109507760220895194001318569588691412394109441912038267750021109974339703456694833276640373895326447171570824851298157555297644805713224605072647936551226378897264659638227218375904330753961314800550014283091529384188343797845524204271115686111091353181751841046954615113444028806824993932005587445888122023639877364032988034249845439339922859174728540643330323580493065084784668087240210427241764495881887997176117547201146176203467716745295206256966167688509904173160887991051243438434535581601526823481248563960852524683540826519313227444665360750391083794819545751969885707394191887705242533379471915159961164974887137687098156791917015887790706153669094808120249862042696031870512448215913840623518178502333084959067388113371839547793891676930359033339900886139943442827230021475980641850927258034914788247777327668103306506064670167565744244750677479005091164915120063019500240658698786481926065861697744822004934978335763545915800996936406904740697343005414042322737874139063404503514728160401788803184204661686284647050707009163260778457030371056485069593780717418558211564467388072643353164792472821584938618910310443893958411866449676537082169675454943848066134289136681921796309081215308357497849917877629870462116720847574000287423806191382541367696792169926596740539779164929682926140696521744076108929007362972687013204600522704062151081285029927794804071419759866058375735561829597361662168069429056809465481715131092558671070066773610721448130108599300062558013996215644168400560329835985579650186788957498839801328204821931577312176934040364163431786268082693771805699643640126359873503152672442753975445988729202263740808988899206230719768239922424926640972060410737019256762026019452871720937445312224788919887541118530738051050431107255193581275932170383059375465782416477124393835922425570971390893329972039994406461411057755270990541237849924012334114153591744526728192046939911713869615170805866575581486982914090139763030900572479442186085777489984829692697026732196635487216005753545355434755321484713917772749127062925395392374192640532414851036689656676642730419388162625558180383070254426867166336042333294246325081634398461985522852421180387562425917106859019064586485974117744651075067806210180059065595398986311969949224115162321351224188077832939878090498466155603603234706412961778784324368766039655914504571611886630584770988483134187474730545477770150248041043195727087510194575690657368260627958856258461378207198115700139577280778002841418037104893556143668534290106732053315132425177551133406963843409395791152219040944717667891836965547726643284791306057090325298914913688940290143793413786928641922106063888552621730715721894860144162000479143756963890842387647648103704232503567575384784959102893224012295894951220656748792930469445527603967929430896250024137109032857726326638074189090356972746172021510229913430455783611365224632614040564695426965235176472627310090317025286055638357757780036093103895433030737581535394653621117309776802324193081479438912403554756182630093121746217193301173593899085592929687369831482038350915970019813466525696737537225833397883168834269260412741049718375237535389317164036680129949935148576805964698194798587000206197664849761022875102052358749425894048307073146622667850039910113151965434843024222286338414757030653775059770681705616732452906761703471950041568509440469026724555619069358638408378246837113222036677171321178601731813634182094790286749808027398153150647151391598471827280872303112643073956751136876666283919979346576009189605707108381570183509360089580155707805369634536808707976213057100646790908637510446990968201540518566769115394900725525296654978280986153962919573174506379335748072028161698121703210177567682342703525176791734441467594578459056996447691876380711649173483350883606709383312495765175182066466361139771427254003549747219509009112422763779550018049558789294749533527745198184767096379227392622871356591845367750605868303222169222296903431637401485316495975541645246819779835038768148276576336055933399467640409275747395329294568273028118698325248460655233474636166363542668359964866854700653437008055957900966751207039998144821791420651765886943239081035188413645694119390938108984013457525357758181810662539374317457979133879642688776623097515307448604359179057938281710133467408052121207045886834935823462413322330659693152995177122205032917999414077563558852134320069006012111829232593409443717328530715469361686860461386144305809457344485692240029993115509866594615729734207696591375248054974878023021249805389960764523718993164088028524921160963626081542391170107975011933611739089571140555239289578347456675645645992598219656094896359922050668455441918204925220907603166088390380476391040299873927479902992257506843874878711611582299549174572816466683528803597301927922919967268578391678234309600843959024677948104882555830620133237424330582189825669420542420392596260533160014744670406878924928497563791919029151365790200927572917401144100084834345009499767293169149539055245346137099703872770876757271006424926251425362653358496318692441978986660422648451371482919702801858849161707678165033340283455459706737830798653754360409497378784770266513100075884772507316869036271072224303311220953135065583862788573572997943104828045369137446206098682101288006753973749710124497528770052460485141740457946569503205304736366281669437014583705905308974008557119631284993683677003211191087450635262278820026092224287743697666826587515426388700411709841455462994813569128657850437642439126152174597450793030866623878121643387801624466447397249524429123174520588952305430642960033506307777685145732564839494784861233670128274484616908092022169392127284406223632969757591092329523001470864039984893863460380852753324248153908743416619783279800853742073032590065914672296951669796873640236545783238700877913276168961745534480976352056553783299632338620805140477251477058679051046172303761005018329627481876188978480045604798358619213108745789443975005109714376868018372987515232826952772537140340836738901476231467107721594596256416336340393431031393135333053873233346930504360241419591167956630382237476954626320464100598105429289851241609116425805581854145144334622576182207293762724298589965723795860543802982947367537483073202681847498462913540064850285566364455903940322445203389591329733476433749466239991267943598716415089771898390983529597697246273401497610653253947275759163204411972788021361701534712315420090121915647703536754431499052166136069953154070771222851779960762878054752020914333130731007559255312788220775496742950213744187522288898448071969127014077009812530906471052993480913917092380908644049888370248143360388754611765898838447411562892682603553936060526946959284040927058935652767026514546185070408247007171954998434903295917503162355899382721687196591158625393046527933854634409597481244062962618062968748849204100628995860269400253100149318407172254871794871420481824913007280888135283732694533277244824924157737277837314280471508284275780281048965936868705737621318462844309747663681408664487316403510609633831546564059622408342711961886304272260053702090657404461362577309813796525675194752621683723514565806265457187782762445246960191577827857130217354745758242609061405720868576941111923990856197555998429199317175278742237845235513568101185709138754433309328449521895985312643299301958601435535122768216065232589279048418932463560354428875573500950408470874282670833877487409247970499221437817936215598895659870307423385930895296013891377155616792528997565127123345407078194503779224312557598154023419241405036812596494044908155929519695749440894392328640757110324976278168111087243382025449570848797130576643792528530476209094932230735100610723047908477911318154061156604583648025074956987281017564802868204582375666259129975743987584098073892563961012933577908109178201839873131463464225210685897251675807709361034856613241217718533010823928864633071247060940835889320656614625346419091891272399441260177940305416549680980475868853593222673487041124501004360534088215610239552607050826184339033243910180097673447989629739478885454501819496231801058115917131138641525573124912732962177007339662757027940973634818425660210425873688016722616478674164099010591264026295272711806005822085093857155728426773518388013182781493658067063357388733733730505780815590790737579466725687735034381674148462206409041613431783843469753991068212777449275818072903741342271290991964448363972255226818711917715000846728356792181977809060207705681768410470624972887202598222327621065921526435448083670408482791577910078202060173162128863483518565086220876800853639507462433651327525740282233463322616886198678340667482342552254412223720777756737206063059193302024251677944203581830935707832841473247898187968681002879244626183095888385184238029641374075745145652004953011624098041901566871860775068318317532715975570910416524424994166129695724203019559876962888797048226580332261367964265156113215997057817668414955182763627742500759723330115342956163410835422921932108700240212390022497040584291416111577351155303712486904562873066104042373306168001154919455791655175766561370148061368842035381319891844530232762584785295844661085629633733569220529493744807597889946081823939063903888959222072320274982402946852842650214317733113784816411007285654270513622100570541314367230637531771256944673736158297910907175613563951278701330230361904504606315555864291540603997366003556063031790287627456683572952278301401175668021223531000833802569859969545154119764516693909075882496649620726909296429742451669446195962214278949709640621063872226873266094916149473738869276504163928573764533997069484725748381833333400016703510205733865335266072670443518148533233914220114661187777798712931282577839877502204638745623198176023724969532386714754159220489046389091565791239699001629030173820654591739393651245506169127547780418686573919828849364520278386956112032183461888642642361099056221216116199833728334743158502960404670034684797800804085851090947862607510030071679396164628857046038228915198009997786971800034981572600717245182217050051457157867906050796052670633363248510574671040326032445850789685530035856333317229993445894155948352856732445638797698043002483502134164896941497119556075718854178802515942807410581089875021151887770381441623463535348846770915862462610277116875640359474585017050377230931678682613702544015684871876224323638169956806696997468947831388679538227232350540158764143914578823361909400308910496809517373971593528530244953564532295804019523745422468246774432271333430420305434732535491423794630387908750798046040957084878124198608038795473504500194217766928768183155166528117444318390712523818981075638439430371632371087806694057114285558192991112924501321227871013276057558955813932136946032498067240281906292527765520290132921374165071472925081880194393783541399525888169901151123307496592801402964552220049400863604089463741964097256472334132816635738081077885583903478323398697221965768647340885153695204202165968727002763354683694604842400557438541385869753048662568549583432099680822588531020858287645766968447215118394947874197211295727021310803841713454203995159034972147855823351054363151641673022832010032961121562635463625422253694475625281679138294874681632567543064638115883814496716134809219523709769105246545281584659851819554343443643137871312708598599000307668051244354502979442648809663727914970834037147906081306828159000500751895727060182060491817042468241085835473371748731988364266803797003647265186720800150930586069814010083524646852069186129109189696820470039079469558600661448984080919810005526897388411375947051677446695036040053604708995060697743841189223656902144556139263147787648472671043492303972821767772520148444458238797807699353466532731182551711125400219560900136985161845858508521427173349517408287540453934034807626288096042545998166529851470095612636479403176157833917925411773414312874470753424386750405421042950856258125446226176750249887371149740513238552650553292432507542609151017147427175624628691665573291780324560128694665879952067440917604355856029395280619852908314334620043359514108856893720337308276621390994920626567388011469066818426066005596078411487541143944397184757640640856188825721788676104962747147221037566613583631072101105675529260410665793453159054174778072367181192205284203094173098324031416804559376162723567888334180406145716061849252297895087386970948502014092348049562339362731744054997743658965760179031123866409091327405001894461491085154767064549711327769649984245254705234311323316374135533847207028552696011369084048283637529605637476333510974739629540545705462902107696399882140769764393455851154337735531057964912503482912383200674337584939182636330071801705346683605513141040520965171375593956547915126278879873321555877970810723727690668060227260096154956325748388310143472771234325217654145703385360199263234137912463082568594627202921198147485015274058579510100658826742546620308370940253306809054056100974528963898795019523907470301921107940273544585636529706124153372593115486126344980584766482150259330263495671877276417396525230666448249965619231227896818580838866251363113454477906384999931223842398047592591172380621201729757887714810873531999720716860096908954453227105433571218649165649351402672105719892909405096725454544280509197712999205583998098870466721265850256281430125319070376651429071051986513952108931242680532666441747218007992352736564127759554417570574932646172509316156317733152395227834174173685758932540209258742392190451201014962589631469813768485061535874585918449829822274013255533813389466810775854306219285574332481497901968385567616427185680625074932889849660798951775317479618449602781224556697445034575454234692572583462623635231435541954992253826492658781995471235633762048354032175056698652349108704914705987388002652161459976182739472520071473225326945120701112012645573419303572012863483910055365104416722669464346114328021889120255495254063151361806666589200735382845091468883711328048564802116184859950635991884225147393858036603478627552257032243088639949525887835730331203282170346222902755424175416881246600747714800225722358619137060211047669587124132084798445164404073829386029298631484711590484525033433955275085669272757232413226291502748876852728647572507729716279045493686870614010416865441003932250183246502420670555456549505212305912323734859829310568664847009451756123310060223989822544888746940586339836705164827299252520098423588107061230201510472806370699801697594969756439299089184355050677091794657661759900616243071930924861023174584011326473731466099895113697461893173700420254349618478733506480367885969685329126486482708980483885052106165779604610879657748988483036487049483145044193455620953430996671664940769206958758106790556689314198561255528669397661726262769638273816196399430984174435386488518611217852375887233362359855958358749448192940833981128212124936760023878187471537207126928996329383269511946326134773236201639648954193800169717436698112346998801672922738665924004955456360121505295004482113839833877735922113407501917054426245574255436452169773702253039485588213457831068549946768724545053696405181460640821039658434604767982798098786374782800517760789407061367243180305498786089883771647368305277718451513766098779014640530330121219289585564088601735411587493223559467390672477819879364753993459085822613732512107099048761318442159933698457127774388025377944140065451113461247644123939028312060176590314411189050698127559029675827353503002335114684564724001384948562644530797183150806479756705846918049837240362913026914312437884923863323394093771213379285189345705556319926794922298280656644486028346087255924888787328110615929882907121385020231987990135233538492176197213266494676613508944296647438161162804414458583473713349589112347792301970582574751316786706375070125826808252065004443764706635940811107442942610942750001237505967778905474561739587968253109804161193637002164987469369143870332015812788193823409955016021954816340228213255597415460669122422111069794159513107681358988639813376570371776810149565981398279076065782869961777907757185756357874994354809590861050137195256175455569935590523043269834840557286764318329107163863425947917216993850082542138017601501428091031876118844529372873766565232143190903120260500907775748255132990128512241872170254021577877432801610945160793137435712019010256284359682919029826798899069487729272664416514164285441279057090618037756762828490841172946717330661546334226337200295442794045474182614732510147694686041313755224331749129002700644935879977284970380715113657581794307887036640448108648765409174583220398213584862503885849582955437411642254969792912753771926389146389478502615408936127595800725784959303701700887732043784272757831709950928992434997329484128076680580831563423919061799796590187751744340926778960601595187532439409788242431602852676952669171559623143855120248659727603719229736972357656952802168475114456133039929379575307416898587960153890739779598822661553733270870119812108662896770534983584793061943210999849766152726405487128652282815566458569906316851949249173682154208621007216330422743389287803021174677790072038125030553301667119337717078676865633798777581316436848109900450896020619272033215599320447370520897877437826389163740508220059778562977350089610680206146398254641017995514434263834440166353336197715111309001323488294941404073068750848558461748382943161890740105396430604852318162715572896752578982609505745183572314559081070264530128827646184931912655866142876275663315744957799937725143868316536763880869429029351518118837059033836642044993419379538361867981280344702248281515332528009285007920332236432240857361259834957994145796417240941762204901432927575753359029928457576340113426177401300125740550501810412636783779885573904907521285625313459703528352212583833633491055651441200147132500894193384949243515438916312105834774841424582797801739161353199133849619101157412508757307407090237060567982493913936307950284968057720371166872402667441668988264601184463433176533930137005996587694560829478296465081887950317837829315325612012318375706870450345994116743387924601435259070051770999043970033678103594348891516725057357024765374541168614116536851526875690395085800912639107315221228136849638053532230746997317776514192571804859673118685046094261896237574096743784929879954167735721466959815986109667805687250946574844899789599178587550864334443033935875179800112171668880146771233976776801530664178855062026840981339900334546327335059588023071317898928678486243223528000241855380153405395955972192310849122573077276616976930263368862790891740771457006642675732532265473641739203645042581579768921685753552985055373286356339983469411280566249150295681350913426908029968260386639939807147011808482171202763510293168112974126575058336156864593212388697754543815289960569592629506673032775482844547454606138303246163042993399700671666651925778516985183361613127286665881403587326847926215278827328751529115230447750036463669301382755613509827593751844901549082325788154279738322336830548379189931822541398877623416917014265241732111987009201903273384691874942193769038619139678741978317829063846465287091912883021252376487670507639635752524056331532693922382688326773269723723713391375069199226615285938608754906182638637787371930017264628074670968534790856982130841256224176325915245013002390506542541355333336994355564063971828053230908506994013802229813804160544481722706196042136552643449902541307045963386922532971344467564609268133464448244560016877789863968215240902515010868060042310128839011119200939480426935280713381274068848576233693022409385341669877307756399149428254144732819249676876771401670137797051747197384578782904176225189792900937034279711779821865255063681291889778680544356613562002734504549780511463042560943114669627093275088704415739973878192603006294532966068951636657518716589539577786743121071665215536230393410295576942421838535297245062483694947562885364575826030654978746961052983794956184495233724098726161299144374555168438064336794963980027371890903080091724845840988822913048618846255515738332253050806942678603719197720379968873925711151844274186123670612492127655658167938123232084927915074518812212747516698061504539658594706807069605470297075869707261262938871148893837346181469750011190689121470435460110886651469028574941441266946518190702528786898382394216342941399451190138684874385066844610287003698319902694536346010144925150246518634385932312280325664100191436466887174626925610938044405538874131708574936714963097345411699107949914531104775760879971537147183801254859269752305029432523654207018389193562187969626503030036668329362631504424944097430375479120513439045717050122110914684640843422845954909972339449362847063554340596914687397662108907554864666141532334176097398360942380140105059972790294129738303081912095389046090833895401021863325023092306817918836331285377315078657469525831068616234921734563715363388688616647805338994605476996199239565312949121712928927347700697050862975729808160742672212546201157699351681052522039723795107952778699153714926972962347037269107673551657744223203135464850959618951980539978031303512463683404206756892688911740760118709562716403079362067741883857433202636888474191299844640920161666408297880464920706530631814401460955829024859064567554485069392912208960370442763866231768908656473971392750883904777317592865799626287414147580340091876729094018221705547426813665543228989550289592662631312191385548669255539576659253092232458098838247229164954649338781071456538951946415400041192425961096080392980689812696995984283608604448250682536916085892052900633464498393380323615282910873612509059560879246205347272919796551563598500398127740594234972203987702724209214982761851722323190032169440415398830221727013855536800848490717920626029429588776343866460691209112507627287655513628969326645790084112879706848351209107017522853185403091131937113744571249865205806543516498968793972249753218989485658231920253712533542239824067608724579017746197611066288981322313585740672628978705509952630444405559446271306633427047145344614907645825394530732621022970712586924414664918941620159016929939179089644015883970350132271641964309670563159321416456059076973677549213973358847500516800539622791374669046490990241893066674407776899204111455519789384203707644847198183366768054226384409343468394451591810425323771600219740806268706891862789384516526520809606996826727259202728148835839019118743185166890289825276953488914223874805055110532882481429810793332050977665468785310224433005421108939594584788306448694317571849317850753342298792476887639728588380390883561420624960613222944435526889576763325167686582665729015624716565418771955827218512350678734836407354787756001286028311566134706737388401707019862261296732925339020376946014066972477913729086862815703344581343547497081201764905226069883292371176278068550703754546266734087247896824452590621786414649560439660322484160192235488524756576333479459786194035712851455635943676253138882803248916326142412299910462751761911821119860143758612943705991184535509307801530124554932833882866768379121035201304456889021119441494413402028995704670505796237724136877610785054598631931098826228344957542598485153128237226006166437580381776982290985461840548524645732314033451398996838893777034232972154342768197583689145646485127445437557811439736345490853638219593672079845391369682228831170724943816252428737178111580145812136289388875032226538710535879043923212155769037413771387187353998168440648373266796247333566128276509548581426756226920859689866761770206957426314179484954769994831774557534806445938159536886669141285854138258440475502200763255066583174087826520992988135555771240964026792732860065221691119111725260140938372976958362563417881253378679175409313053768966034334564267443731369537406797585114849112572037615608593581164166816103410391604089150200514039183507860890796520174041011543086791796324332829785340243914919177917196941246563060993759245117791833797480658429297993732689354696951704068218474589387162229512180590050621933534918825414313680907875533833914234484562371272345903770019715719882510415314590615945728640326940537044363733810720906503064022889202779067768553876394900929899817257345575551145725713552133494744815065673806870126368153465875703826626020244829647659394157972717306307256269599984873666376853610795144740127972589269252378149801237359867340758328976731282758063354015460170985563945585748684367985285806930680849552960082601515469888362670432550352762478225007164038508887122563518621226726671164461607913789695047467574257655542296235944621873728265159683651845530319534947910239956172714797835112331385760637554565393806361520539683556677952020570004368345295016973912481079467110176054230093596602105875875106689584031211116045732363992172167616711445272144942785885534692306009432330900863981337619166979858186778890250945234103804816794866506184518241427287794400066837832399228100232964515737007256688534302699370042675742090003420963869320389885379802502683950344880210556040241844810357589792637929045690562838965253142520761276755542210950329691136221354041446034365420004611218794554533901960584691744009529011777848914853605820181899118739098641039105292244435104163790998621827106494374041039413368188667137463067760065402035047876705359134959358334939045806770157569908815013481548852887411658394642337875382328110260694271476991642030039222803824319038395123723093746520018225514519069428173167548175770375569368392073204553575882649857933498067541741353444202022329117079748344886492231073666883313106800217168815072357477211973223014549301188633775603016499842690831857309890343975351045894278761581164635017913338849931544694881500316290620099693881627409711165225354874326752847361082263372532584741596792252058870224561709010578198568186251749927129801143515494700558837535027904154499401189160126596242540608179738402239325804028852163330266904204045506284225549531095479981945402794395842572742612348800929419264741234019057634888723239913309117357958867358559704617277511690778965266312945792014732675734824442357596694663223400902618433573562999160472476072235469506666749640486052116235035274470093970187588056934201728861366318617255272689311232284573656533487716545862516956570641236244825712437985761264863587767427030117293962725177780624222115973132328847594849537566016475759140404103550428504845916072663487512563634387886272917687312243793894748133781451804572875765319493763274627765940092946421540989852325573393786876537851999609814595689323828085469351483856077949789320783814061537643348607932576713722308833531953173847387865295413505907299793738689634798033715530025029205017295486181930988831810882360324026672526542452143785520520068988777477233769608252581588937542963580830211330015161975095243691410510673167472442060222140191575536298641510094590897707037378466656493402514374448662978357513786246277596267409566665854699681428205306014287217973072618941706789073633439503743062130081947961322504951070775689243994147175766215275362423404569639386095866464275561324084180309777575083416459415425563425189246907210857657753702703176197781852906553280499264908935343852005006087095844369359002905271274775716729793426657495888421351202220901626039660192272451195172475737288917936171473186401403850260514573220666947928648067524671741795180799257806363946755520514778296715379300693263213397870835586881956873230337157487495757016190676934631607484819625116545587066840889188974504394643887257875891332029848010102173417684764761584543938537613293077119610975779338024336229992336806944164572788561051140690184751525204742587341508870933230414791749240289197178345003878935276400529223921107549867418383135912618768737535138253856605798542533939890895505386974926579400326210354892098779724013693389414138533984906075913093314391943342976135203597347754104794717072231489121727504356256316450934163618303974228085369991281599374001067770919678479036603443586287492249915250668844585194373189108278873864337542409530165963627894853435611119498403932146772837573974836853659582110534187876094731743488527454564795923096944051489956867438823021062968144557816678333524230015705363949152912179782100884189378736425504146754858379439808611851018248588552840479042054039833056450706368307209047812105261593451880233686050460139875388245931364279398419809713138754570139838255426240183435805831519275557687520054018467094894642824946688555019992368370276678658471928055328097303421741196852778412307623666411249452514854233890239060760435284550279850153955380839207684420243588270098201859601472252952494954985570156913584222895120655345602464832098196051692116395292568444800736992526131780127244144870290772405097657627038191650240014790317862703089450120661196995314054096770559730588509345890651222619643784934871032305336980634597116595909105138971009370019590899758167616406457109187936694967046579864140326085045618010308319723038085493964493551272966309586783714686400226202652916184383686251102638214985327623293947070223205372935934194438522593775398356849439699462587019228332546642473686184750100611033025804583927553557250223193670586527487532233054196294424454514205374663791067249939806375114987883065111118752897347762729325912456633993555803572376854965859699659098086137495421997233422039252079354950756093072867052561217944722468360660962047073282022598503706689323262048036317753630937667209943112278041029227022663579870998770263054067597181852979965288183429279604183034194493747132332920185944100438827895195921933318406915963500206922282129236608699330227203050589591521980892881024555921229675832794190837305824563676916545482696875896643161972118446967822333609709492662032799269153397657753820768536771175215187520590146461760276709792089852335293124620124686988951231763047030242309178109760883632715933358835866983583765190665362485034149901423462900837985523934777582925857876366797569330962199706929959493100069109246777115482531543864230588913704458391222248435670743455763704479707205825761493047915433563682577315969189223639441836323141228853672105783916478067179751938217669054507408388224345919182467878760538766270450756128250168029346769908669216868252024693645962513522611513299735132062873308443365767720034565854097012447113505633311065633448858184373808225969018133303573959273061376151411465350904121249033184614780686514126662548733883762405949260838774657041165283639396052133487311358245013935922477832757618252731616914805163476537006191588221640151087798877443028374777910847343994293782393710459462974064986180484796000030545876244197927304049804542943915696339834591608721544007596422750049007826057418672298766974517720553746230604489962984846840102492176372113890985599053560328022532285979853242552777290067274647052550963716989435440370197467142344238417280026737358950756811871861285959310781510687693334743055269574809072877301563385920674860814342005676662183930665360512280330973697854970048839153017943180683337116076878633079134487430423350924174808873909491117765966580680644367742956355260345948209601778827097837900913674691622152045081140851130323626240425672259285526008681337976978638042277310099818890415518311853470154672219082022422915953779202522655715965802673680278699997282740707875539701991892815981298041174805684732583661346037631816290758841697428603172907263248820606742537636251411347717919201754630861409447495770760306012243977550651524693641589079143100443084559888457586754593721507805254184676206953864135880155221797627388510639306708085577477347120625623836551680505626112499231930735330741586651071322783641565029347944879568915079009217382996477166269881710658041299238178888539056221314006078932531434080053433384226079679202879719274455806550344135253452709429355594903198134396713995630549752014403805219428739466508548997662174754850669499395589088198658873006601096012588310469267289951765308015465847628081937351979322196477855557328989572380068198340271029767996361146701896644787518060652406245335077351439999451230817548549520946927916002282458594645431169522255548222369646968917422128551780735655758951868548452982775930704499418323330258662088063434649385681305211430405573402976849700565564120026915054460811827829850084265330196594307660331903249451793072719368606417476340999039682257397466049657579153199975086494495264795779875138659365528358456488264696548038693575620631709769826637503708718414723826769557933208701814506764258825742051804406701625944062256171569438914244948530787854756784747757503575149662370891735697854198401842262799996160472404344934394514689454347790981142434960698970921747710246390215193766204496166709898232997392774839347265553524537364768832645465523045917770795356300203346244279034577673430302642080077604467957410814736739049842348934558127571351766810904537545613018055688775125639795490797624210053409757627685670874750411281700204713321413088216393460522377944931403253467004602838445515949880407986518811409467349530419927957635260588980172552385360309236483048240772734617913745719590601382232174602208882960494046946895070406043581875683475676023150952212782352735493628699307767997710162758126563522419106892379635208478337105830238342068252314808138523344209685298790572003337455427429911741631700314269620969758815622267552243014276378006474029810628159342666465356914086383587746913464958669688759606361634159678596869449843076856247938095110473226888839037146205847906423841491774904636222183752556504478117253823599624940600466019617412968344665895790288829055924460919206811501576292405106854315842209716163354090780490524172615558367761142339440467354218992181626442235154102424103516004691435609688255439038057938749789986065015395510990218941173728601059541101823942023669583679306550153732424757164539593796485970305437836300030263393247574321523381309904588362780628002937235746575641283306937365310643523292603834344148516833705807778082323534659341177987257048488464951942118424767972846484687800496230036112032084462859342348049746506130250598825979133202581767870924985929027528830228544662621012295359616607377443337938839815169837157357467317632558233528994050936658644109035227055976475101118129958607222978055917448605585889809858841144861933431308717603403012466120107491239941431220277685944753279639332786350211647043016712786216306980935687959452152496992101926419971426212620354346858868540650423835604211884014061536915223590124399255235208816555607294219816346207426871501605273304801705247102387848435704351196244186330190635477321206522321074113732837549022861927139671948585906017976601184441958776448305614301699704233365417076414896119060610582148688368817772563501468026320655569214691726745413770275628909145829620971913940713011658711762160171917033304174324711336195515461106987795731472462457854060955302883564707416504124571752752567451519631192531514761626065400858970723634260654524602937974198191962336816049200330271004572335450042954221304354565659543774543646978747592472141602445771239982765257657275017805252792837901422804468510241633843506770822647541476563895731674871125654254083275624604632112068093653859502385172290013022875089070777580825431675017784560038953178458481527054412796373593053280260076832421229195944020279351477657268686195037058203332234180531390091781165716784050530458133325618627816107364090682894790809015822228657893938477545177120296886555371664968181414767162466400631881891260053932931867810238939626288346206455215097125690291201551478920513460700947559616973475037126010129857789738773553571753762017634901588837765387502857259793153659679122304671133576096856034914384108103169495429505871071620430964274572723231077287104001532157285539056081105318999491619817418705495529975972138433149882318534756560470791009132689988367655827636803877143897256055976636007214690384625774310813830633116945814511089627453707620554048814860046190963179445214390440206343029670414081654061096217729119539717839839442111182528056048019693256507559358942061175413801813387462965889585187504037959641213252143421102119733707435706899601515340143092835726677833077841676676953361638369627037895281914084674244929149065460232738311189572902503059901804438789380233314971036986262892140987012794041781497467539431146096357416165266087896282338140925868342696820666400240554482789432765748369377055495751721438922269958178881718089015954002877068154542359764929782471920309284011472204526445676874160727060544834815600388685047339834951521109969457615762368196506871651513046664588324939611556956477097615645690444484461625005921558419531922417410848564063270800308183741981245403134957930412422826572105334466473782445403214749084683012954392808974155885680768252337195158538671594221426338897639380540870377179119291893861355809988058295252675930376712676688626267022561451553678495647881982925614328567466404037119036209853565870268024581095229669111681846122091650725596218418716094948431358159404158574085254299440382012111771401866458145304000551166104155085146589416647982349343475301083473172490499066242475699913972149127209840077784194321367234079640426320957262481239554836860625593917311591112408444733924356105556139255322445960150208949079034139779593994795815073306377700842690055384890205434804808145207243927482207721737733574540382330161711375952361293781093735425523916878575926655035767611356121882404506797463018388789786293498938324063462040950832122169846547124440032203689327186175968240598502440317896923908317299929906899863108730677236090486061062990131509966427539386392061909675555249575371680596446933163501767823282871416451126148823149241975870640336000984108799587696174642177255537253058833875559925374317648389823153969781528963731077449780840304337350321843960945977585823840855847766799811204422016246045700075055425398864183123328232686454693409271980570035435878837214661336393345198633653093621442258642757229302986194254094927086064975813696609628574550026861257263389934244624430667745542711182348091220164206442062402359667262825918134280973604592905174683192849466251004571508184132090121664102264560077038931272634742771095823428804298329633509595962284801505524927794753818041808730001346526482089672785845268233827070076158577469620609086574124444219309123769052771141199249540173786165002921324548061021309989079712533288648422854838770628422355015539714791319732383342680355726404208674078443961613921097454196020533181951661303952572814698756346830671621429663327669175792044902016085686622070091177934236773745286902420058672340353681485977164625580334891438015933377186113045219125287192893805399244979851827661980480811428519043933265764997149152905182219808963243592104412701621696474018659541284644320299391594148638953931229506741282069601999173696325944154462211677826410107779910473861492151334185490792096428817624534521063354174829425476507512338734062200918023533718300996868533779039082139538156820287630204880746826088206567616805821530148879817689857745737641426900336269796255864334264439358864636071010354888923579493231454440403898242267802506368639829635308821612033259986783729559173531942101234760516736746512225768407504345205674237281840643083405299324701016065080676244971097364766107554308494901819587402036535144727235545158041852594923212019131630497040799235875327346228957692796480227807524463093283188033140409415914246944493483082623395525670826033351557665173987789884253506214938970251927507796478908974638307469174240987038557431907713883950296560391979110814953722993985436199090863898583211751463649927442848929120289290718730955283123373573951057613352348296298966273644614544129607531996844395905685124699324386005206228580237137579944241859540433869252019072482004582414480350512871119528096388517850106903544491046391705388762338222208955793625264806021168208421921164649389311117476997021640298699717358899485620985008491838614502923257890211632838993873435287432724601262929842526551270780764236014544501664241456146511686373410513436058150346189587095639446432051803817970650652511302844191983376524006450464320550973900582804725557548176323483411977010461172264798434197037886164635742588668641756420549192919841404240403854531881683749286185982349504398766475498655934611837886612463776826488713227333130271748149555333861704435393378071876481389417318190326942373306993727973876320536393449656446141485460552882119720071569580011297242701063549257646309405955593943863863862035434903699896783934493910386675148424987211549863189432532940277852216502159874023462153851199149076209760499618312158207627393848632180437107498331006005655785568996275721545417207277625822038520316985730921192056487185221104020053751346273868763233006660735118679485309055971383754489518371406822273398429637243024474662840623010077198115182327623892587685807646168679809002628265032428170260423944976087904897612760199109344496315255270752459705863971796693533679657568424023656299761707548531359632924418175854106077166927985210048222167812943126216022072332940921675469908123263592049351519635860658983320876025362419595625629709911093738219206620571461998274358147133652303750025227151000199762992391630536842560666833426904339044780475017335791103045136481892054946473510879687733065463512329796389894226508800698118801628136543696018129733207998790679397636282231627758253264337684006840603297859791053916084858909230774698802510370831939418617455552667269774543736147669152539387176351484836607794346201251470062732015861152298518157032898003107960200168419976558567473795867003093698856932762895317853529868441386731223510400510953011311214998111358210492620612175452704529407849234569918372726281780046425139951974523772583980085473509523911378109247115316925767091504138156157268154237395792933227580527719099494109488183670021168978834536284370331021628662887732619244348003285925785675911603629860839048084325214886559756704478563648955886645906446402809269823870022926129979345037430867076568329050592303771104650987919764165900635800025640575756656683651822777778972145242757230300460669267292702098345450846475917782302562785005514202866792810368401939112919825058657638334675862393672348449672462146172341476471594160915848394644871127199863054064740895975676343564376737638516820446344536336958204425662847009313548094494735656449867964583893234100451495390175270469699134232613607227171524814252637675945566602582401456292131882090613938494497559394652452006956236534189875124789784245224350588486591697326504249736472823072868086448160579757287321997093510454674304903569635604981150552963910481415301358060382370438009623318498040582623715057257164238311625808131627731343798959474321270030644644403901984848646393785094849065252534781208824744562488372236543839082920915919632394016491715828287608522635666882919208726014110142862517656030873317434524010097864171337347612998669336555804320557787465908343733471136186506190611871247989189629719008800307200151213560322694847006102545626985746152156018653738123648631636099178913469280908968230776339920198408171317457908824170837165821564349586105408574809575776162691743631465630433033139724175254794316480873402209656146945693577773059147552531516552095185538984862297953078558170845680840853092827902021195178414981196510703908074173907592163170718186027142421895956698917155102363179112821690257975416761254319861195972547940684744441052752855512716322585538183497248882699447612608023477954422449024223290444742620132509875939481274991697156856243601175398379410313121746497754496763459139274069838619099789623990255503043926863910515683131297173458652737988502881410296393935572151542929683528911221193297830363171327578044036080722150784621233857727083749150577904457819768590458308207205581343173068312770709396674551884222764018152589157332277535390385083081807637352912544916946353939136086686100208531543479482053956220184882713660787138740764841317925593339270097638577814523029792827167301908548833335602400494093628388898973069311912894806303522763551476349262829768160205598790328073782597537911344867501107611186417612384024334991484508544771423951438856375227554009537839624071895178715611063821016876275995782377215849741885767248462455771444366233349386061738425436092911229830778241289958276493420477152907646549022726620765276762581101828063330804727005198800159880874076628033108382309325030572872500378404994355011899487208933155112964646284203225058025905539750647400179959367379955325874058274281913119057422406609880592770662461153349448999878278662691138966370315688865128368744838474723865360398188354007291135909335999979028734924114850097203073106654098014370857014933247705030025257562456488472283230469014308585235542784457211200886742626397333871936321555671262052033620453498091222073218801915218953414277087088314823064106699568700543304668406907729364272835187979259787543481296359576796791983960566839765298993660326479021836812385048246080415328587046521276991954085318994696907915909846861938157852316459841561446631618118567289984012006542411783459926752696456409636817986289799013632454131926427311562544822564657242242173951079430468704586974932878512673378962018723773284284093032903875609595658022807106906675989547226145907480573837620439066781217374901170450279802807701079432220016334238473865229322240467022016093288238944982995018877720454404654565840019304810594380999658550950463587749970379196700224455789059793194988741704446318928791356589206891453079922619116502064954103760062535477940896696046968241835452259678473114958051906113432781380810613081135724645654180470792740760213279549306894625650891228274740396739864681954562119266353277537443750110806890141612720447529901156362463459691101945957232235775050394024452856257289621677666041079635453709968781998749285990770636905286542577201065946897483624029018924881531006832975954129265073000161788461571218900834503929289864185165830538707348271581195303596890508139407988994422924890552829716838841343393554383270797696697445281951633834162505141102009726467880810520073344051976183210022762365782206347958150196149155291999144049763695736398445284809046157607257359998813412640849255589584737845272292507314863856685035944282701081574287962918122672859882499489692697191475203442948640817652293924295626882797739196226746608436469056286878055140086315368104804615008169269957490895066328554912698626127918653731953304720604784567598670662398881949208079582727958332144392862433425959030644558630325233597068079718764953181350728389454159829822030478623172728347523104004135522703021096029239178970204228830482388310163929045600699197933712142552655953929554726276074281349791691507771146313053647034621291106262233903611001634671684511686245961341025154204799327239438967328284526124871229526030598008213986748272558612871627680273192222053186612453843290941791201357888414828943186890986353785868268030331148646787217032456616416224944185988530187379336558709913225080046342898108689790870162213457990074715560781897499066775533309113328549819401608841789173027203908698624392006126593660846949137591538627717724840096942036408246414992568367684622788507975054930850332626683232876424308013858522025089525801686251263699577883097749129570073505756213304820577114896974821969870442801077819444781446441114019339205341475013086974986177022045259331422452826323545350227397361000114084327239071819589722522582000631538602225538656380334590347602224430962761004835415251105445351188964863984146217591340458053395170490668165703091360412446266097850779147205754295842127046462241197805424246666752675464971416758702975607317059813815478258838141402666267055481014756935614832076280908041497645706554899842020275838599214100042039458502488898171552939671999526722061942878716765780840105862181051318166125240660786007362822984783381847856217246122136192908744525205680610086489572822988891079835244376607040285502940661724390521977466435395317181970420135624165500886492734690887196754581161469843916878792560016389086739442947890717032572272071759150861316770828487440288153873682140242834584805150400573992426024190982110918933889662075225090906834688476610461686255823296115969206571913449417506403539661987519652681577866114818197960877999761728791244913248632491674073613770775182973892979270622105066375918570391224012981627998378003784239712050082854350459293262409639946882457529567591152185484900775982395625338801810475229071654700456773937241222820638776126171752337869789146839295680595778862649429491363712493060779699809928961130142764075683095606301431397185924898383873155409538847885689087769958820475858266983168947492465094115936236819038412317102942793304509162613455095401462333073897814538684268988242458595327072193318271223506365268160705356413497192308901307613983270569560031769646369348532948924263115286274573852152720037112646519993288753704838502450771415594150594311929388153846097263084286509765114364101270738194929022383450040708761057667493437882274663884824971254891648229132573895353430846224961010110809640580518384422179457061530363008429647337611052764851076061863724939168851314304334330781178219363379764933161099887133393066467576858097890442880986636918683914724649713765795784541171734291636553185842540586634731737730909067827575469465976039146642194377131791635551300114163175833344240665347172751533388332478841118648679903626619341265483443503349420905709331195287564085403802087545379526926229044562532258296722843660985067836076943800672758070634923351985480420095712932034764214953148502762601881988434619442404637635365218825945142097473751011944548196793176132093683320387267674824497139214498943562656686472292575906236269175486669494162491819235259948213803726860130297053544468721976547898609022593145815409416093904193823887345184183540769823591366547527378443844728164053776153585913753886928518107116446587633393357445353763573466870466028978725170308831766285568151717433863359041624950219014761197813919363533942276972725107210660093705309664884687589292105666194372629292966853368360990542212555269477836315310639011084690717279312350074527120134184516100822683755178248506197381618405900108974405351460482297925337699215207897544071943798936268405991887703477809245633783262620721420804286761625362280778141391190442595080226570010328562713134476287228346111842285920488778254927750649825029075031073937689031443573332259338631377165690718260355636831797056736096942263186707094751765377060817798641118078696416535636814175440975388622904040536316201309569034057158052194278560694402453063835009849621730872989547542000686301645484153270828851527456314236127240422589640313085368307644027131089125864943161730191374680824198725362350650449210102464210248210769680683275438445134246609046973491374666962051773587732384828200702279587420037554961116596197796861949379757896400509950438306811432709193313379169029003038736902954686448254753077098421437112761661893802202201566524557035183614968632114080573387843071066972414864241330729884664386000648435944774740942488730646229548832324065486724692431621436014480732413738954720078691690591988657755759616882635091163064065908518906143451563890555363700863674994408463201430460486884104265693122442822240310172038912405982803656094739332737545607518291354944701156758944036391537622481843613580417108797996790545095544422572648547297129661228985256165066825780716428493823322219245676792899513378752142582789100941327712346670657827742267301506344954468801621132208069654265454597040493393878045076050383629878835854970150169465843848681618110377244119632028638305380506665297633783756783753998555495145583519105294602367120641350209463711782591423081978012923613320363234039468232292389607474692352590963521922455136534627373264440961965799500903562739403833434819839772102231530148904486088558009069886337918361838819768043848011707836468629528783688164499093557572789840762982363137661737149616188384066424361388040109375135869260285272114310655266683896861092349974593089974484252625922498690257451451807974440320911895526147412472143627104624105220718553140008555281150179984502779624742610318258397961678337303738091157127157953208570200273771977982386059251177019140810315692648346135113197580550929030832148281855410576624158257614373377467453393997600735221806762432130901639486258226090911230540101991766513894247869620770779336935116293659228018908565170178570510870660355671377548303509350806890575645463468320895858132864397198351899231709555584226254157168369796632400812185225640076014271595999416773427027251871682941328247847612804545563172303609076468903467035142077139614783768432052817161643918716635941702232171130286717301173238702567309735893102676058934593522172432404448151849405238104682851396374439052176685198799932965807570916501616658131028236562125106148627712302720466978805670647424395513140422009183702670315697425172107950365114767581198608434219985821673545604646253001025906586610135295145512997127851794277176477181583714180753385648241639310546465121132033943580710720323337678532400216317772624611448805649831045520920694382177675563299132236965967161640387147462289146074115336179970312010513288836889338417445242872712782729122948190450406774319191963919770177881899681388112586916321991522382532737403257968670448343991989084454951917855505377625046742029666498836908892366046930190068293681940083904677205480774721819754308704138997712740806405795172500971827028634065029988340489716833784701215878453918419092349310278903877345819957713437079353240735612208465247689659424724896832631307694769172988446347265142793334717894706673146598215163849834703068461086272847283548849190378354989939766776158109398339841240192945980294689511257090838102191613583411409925109576392234004532783087755355448802783589139568165642764865857576388825840557048675732709391099859558584624504172464602115461303905353262201445736508477049360458593093297424863996454702705021630249704049724280031543359539467674371296448008262708789005913211301989421279412425071963201044997781586175369187641511092112439536700739120151444392032852061919234236671147185981941939879066150356886586561220519563266077148810828509362123474502704387081039831072812947816490686385858985451675544853946351805129303933733715971070826145188141248286099163084375753565852012294171358014912872497544093682005838202236278410724184050758662413784104428395164011228411598814423121954197640789361962552970674287884171849390511411313572467117976846044972605398509956437582124579348992458737191672148455914030565945017218796225480223980775350782150612105177158294640288562884192638286252040709819408087501126582730514067398236231301485427930855948220298432518749310691302374730334858662205151770766401864484853268042171839095804504731877062513051166869972764805395990552897153679266430605375551467608611511063670562204369370587443673699767119964507931915676906052891778799380553144324988826538580171178435028483682813924260798461851832352353722644788509739316817813398570408569719237096543207530940821692883317413980723804099943821049632987371446527379072322200946832901829037473829888148389963570459638375129541495946032622765624979135826253600768306323838325427455615218804063188886432587522388868875580939214549470059945200730865112863995852160465675688789720138178779330511937451397491115388276485030322641048372319848564124940178355059789340218592106495522142350420785513290934190397787708863187910223620406469317510426888715677009398136861193034101218069975343017290522780122784469723452119447541676485220806707855420742884107413536297792623998129206194878517239511539085798709681143888620666817008357996987455894841864676542983534425554382722889522927784619541905073453417116494817580257471571888120239141783562643034043203269821699285916527425735503780704618767300776085774916057324327715191986456099095812726191620573234248542447444378273186317216959469081388441334387177707949978609478423759907240008338569435552623488540470878283010285180832668009202708925384154920496183228490163297905901470317339989648300654155191241964688980270583015797827903780373039293653767234035384679715598856399103271448227139038408766074463909382707093873989489529060831379913323747429338369618265811082042227698418335696066033506110413180471884412289846528674501936805708297396559447550489884815643114628525066975316633470300706696912288968101543092015668552310791156610347037044055099814592914710110109256427666925341411282927694123461055908593937615315787253068080164687110721908006334247984002757491949677153964383466526721614267227192131278397597648360078907235534330043957432324344277140188929503894115280130214349275010351966966509644495268639256199894422010151994217538757242903146380684251954166938117066893699254441959162474194045257771604229101121087278498495161217429184685313880525993161172160787178394311548011969341568999211292490624729039616559303901360759903523978406571463879904430365182120549336874757707355713953718390629948770902789997371656478944814252017244382107323682390896227223028638853642165460140292470184672012870470438875580886485040713689422893397772982891722460675403401974732188203505423153058678274288924498100221975352511349453490963398122800443943696923283898355717976654504247142725785531331962980672644795078612783499226623831104010658001259464833774704748668988533154487595095299436633788445462706684175057405551340306629672965854828363669987758622726166358370572802838440323213496417628732227428645949049301775395179347937028241577177731694214276492582209416691053008242477342193966277507757661284675064210387736661200357969862092232584999842035128830777101817485926497410354614551235935925783908553687086895621104946347812900396801729649249579890505606991937258700996052628075099814053619552239750220596844935036427565749291788986626004286882225049006949826325723567351884602211536209474482962196414547071391821205022902520934408410284628496465571292236293124838663395383570527002197853519047620364527243707617130167099796825257630300490218430343412780345165202986530012203951319962663948573727779137039519735736682613765350254256896229944984240184419677298338528074002788495032892609076561358752444825095549430802409416044686008349405197609127543367395636584401696550644683699103205463794421110269909325687457537678368081003765456820050246722294426913054598836763713510536870540683243049102432267471840344926900887092199150193693960469534089894344746549375606240903699169642162440447332647057972982516151777751899728684226134015379164245747248766606506253010432042240094432296853997343812094947056497669761442149078172974084134389043642221393110799575865554672496656803293061492696997746442321060488889697355293298124335531897285746497398598675337877949700706259884789644972204254883326884866160828420611824996871533290907313448085073081140537949889665379496290878323581129320273547104858630101789160616211746477605164930088217934678822836825248740595605869379330947041490505278119226278268212105910393618304840495466399076702386362918569724033894028928213939773102573887314592843576804766043261805982038110899830347605007351843092306846504494479202318578900221112503969760223379451819271976690411950589720207304405300959319842349356562784348340950565488453964296585985142929030599498824503740466738094354639782016791082634577256273140647311762443983205246004071218398526956720625723831890067658520100536870521730659912329092429472051855216491829488411096287259650231584074714747444545087578185731730901936238404923872570472404135617859149061001518030372637148572311864271194197160007880741780506584723255927608048636333062877322234054628051226050176977174178555144855953327741337556005750438937975605825790643242481713667323870583519355617416454866511210097781573003688022587428620475000317865123054961303443844368775316002514726749303131137973319896140393722135278013990470213486169078863970631546567915939439545187536173577717962647060192073720658869863107807194690677435848215263121083541861420986258771767187171762251449009601240480033253886399894605958027089668516080217183533878274487981818859844964596589975208791423744419349557789552028501611304969663987827433912559159647357811082978125144653752669702723907190609088155682221706458770131439135582366006706874560350012937304922719547121934550343358720170735538653923350753021239943199031329547106178869568199465661004352018753459402118338707759928041444436383864966718093604424522827792087537300790763000073871682211721120710883396386794343560031053230563360022422962982519327127727770859203623762024240135375483446139351199754776840724510229315231778202900013894379659007446741942772287061821830162187367934147012254100549156690689846079193714679569320429191172954361333545052622090055299235684064301875042943878839524599301388418553092277928567032990825777884181734883114973234557241943259098629733620104752322190235180166532969432794071872211174080145546106516955480734509903453630123195609385530615489059202908024882442145153671185291048820117800262335173640662244755037771375755804045085538055245785345461652249365963764489273261948392906878331935363798029828757868647424474655601092128145017016551450257173195483666636389012581422099733576182391096948895161534756774660972560278689766950881617364057059396089404416541653164522995754276786981811837634633166579272058769080250822709939002107322855771534619360106981049570040946093053423240631729929883605546501986284117010501857590955298136277645240996585333099180877101259443806131278061123945630070638317830460346848945629288058668047119108586276583215614799900656461660246443027905219133622722423413980904541583673643099876040114026940513500528962463512099272910175241487748164945301569408985745890615881510895103162784510097781189854951344824649071336541559860479992156775941595335720712587878984007904891029448784007637831830878841842563396042564170148096272856549319153378716466489053070691275656224450482075115318201510396325152818982452858324444028691098119848197032376872393516635890814242384749750867517507953449330816658327389460772133953445504043309949613677612675640740931632186048035026622299243452624244330982195594226400804652364805463909071393087366805211829389238750574240191768205469410463856986154200742667508976767862315786675099029834507405213556990247500961610060693311191551811425126368165008561328466369705679587909093595469460549871435180609151604032706840850127912855391227102197650647363262914725901289078509930579288236050877203309064619389175622616654930881145491591001835391268343621551413399870172434611487348121613893025343544881398359380584187278391960287127304729685687714681068987791979281629876619296472255020944322810588925176822245830028626625163626490170482948267766266230473565036386355292891039586972980201557467180720016861608713721995383675240910449930796157886515681413924432561911917211585010731131780319952138714714568146165370574667233083006172851340587521451904706054563547449446755869837211359266616144118299665726599625478905916485540727536171298450684527193861201995804108875969254869799311242482082941900155380601505766590196001446683443682745304032435988851204818329286689744374464856282871844159339955717277664178416885512654148114424843403300945890831972896116101542234941347225774746097403572639346674137178420094057092980664435899932905510316866333882472224035027871833671626383400315809860514497482144462970682876632774960486410499950024188569415159771630107282038431115594336866235750677374588751642557865489876870123678571673524312654756366804351586494204513926698466729068656375005809078575102230273967067515249315329780287004079735669793918978104992945540625397251503701909194798826440312563186647979049638710853504624788027606624024544916069054445336511799745784719348532995047115909383549232078561343504453682752400558435871914196751586882699048224343000331813664705211209318107657249128644106062166343093937599565852487497453848725023136409981335081526290498957949372694514442370272464968749072247361342785841255837870595573044489354014287488626087814159389378074747223744677292784006545588099241212360331096578352650806973722966014407377853664351798192084067565514299479984965565023205106312239911680356775121162030420205467803253307767774114703004759577208726820539751700991220300171162646881109285963208032724073340912301335340001586096374341005582444164273271512028462631770057826279831506921724949447570232516044943993665021455523165629557720709228711208413106915419655107677255703636893069334124993786210077892115230129639620361131455627413843421779077601511076983307402815279557508061395771696061643124791493970653017025996555734158243285650508009609988155659978368310248714556949646177937077956711148215701650309228800218574837130051834910650343437189287376699440512393964328672103963894138115622918990036074640720003165887479268836506528564039047716731127840852878779192883944136866875235815789959650418902902879930856674113062213958244552724258921931798965730515201931903329866824502229313393511316591901879648750178936712777751991111655283799157434602059786172866292002836526504957646468971589834447352117893730340713893463205161914999118041610810735591867266688069557931103787683091951600898160145583829468937937254748284129766333747094420797979690519705104747377843990563568648385557074649537434270800962485333114032582199775307350094739342811543126456565174049756368870161063371005635559351547902782169333730911971668029718864583416397822418966842162916394397872349179084108577295065056559916442296908812759613181519580866695646638999672781657688959685602760951853922620744419816309683617388402901546551123459678294749892080356268129668324802662308645832722452358848819901989738527783234575836839547460297846090993040866444928800577653912724371888288482325393936998395687312987359423762514503388216407517702474234576279570635001699445220523092308620291623345551422822227066489567454753462819404685345274843519326137060824059999146451017471699259107762981632712565528736799141738480373188398055302930350409348295666441823107826475917690526812240816114734361956803899659124759650166093151878681860165451140189126510068370465896984481800809459037280977362431346940222856952164168407721712057922265637851557860178305252024007163981553754161892753555296902611949455008832754027578739113707718841672083430800618275168001831830224273277220020358121091383032515181561809118278469944497639958014230708402372582219268833788603756731976218393660082979032353574747274493310906723396476000381911922280279374707336941754426744758744136597446425918323436084975603555499559284660800720886306509806438720988266306387808748025442376952206156800482350042794315010962221027480435788962848856564887958632041512307932127103542605635014745261368239857817029779456123022953999939915401946387273509410539818747642161824062000709119651002801770600426420420508390667523268861004235791867784056006134657873618913930838096705266471420562122669086677258726512908877522095716369496148624571840103359109165547902035312264150149538242226816729402156721601711591568705001878777510885870521111788248038406828453186414413183551215337440158627865391641379115778201584882814678547718875777121312347199477134314269293866620147498267643550936862018539712351751366915037329417978566689100744285653625557435312745228981202739613746308606519763139068265289019594042826878316798768504796017230167304093501832321004299302202357770458950266961718530316929162327654486257550087682773235237995981682830761368176809771562309556606862664172116999277607661968553738218681209371004745341392537940949966276209168429255637709371919541877801009480028112529948725600066196834474253271407410771388687668095952077189331303597627729154675890220716653486153782982831825902454883716523460260206595624999252613723456017211589180129397759663353570251342183269740210625322335875771435431070133882385457242184170625327008394117701674592275737696301987681884826763604054841288620782807537895637395760844242757584965361446612609397279555870438381234598472261768278807339754256077932704631648807854487924022528498068435675506925417970350456302617151689523596736804282973337536810994621309912733953575910681743193449485668803800264302338265516636294403574147036841141881552628784358517368393051144714463243478180815318948399708365166420303867621954709825079612777466962451176698596845306072904264892986166344675674611859841575051316443576557599140665819518298791385252367032908465976482330852240421729827615308746127363867123156909321433261703599692144462690446504737020341724468610772896246785566571370334854281580294114827698605900870845612629156352932050059315814895557616884304433032547463925857640741371749172947531420245983695918587913908131509111542596531355288200966010217211974701087426845782565702327968136494703420272058621675145078450877946699744706125789548857586025409941057696529392847840633562471919836830084608940134601250739340676820423424597186335986963456049916170108463878646251392802237166325173396911183882709126224550691308601327254604398152987303454693390319340279781849536689819491389790574951716335792605298202358855692873141545780766156645727821310299360656814596395107352017770112875763367913741645013048269034295549431363200652813889041617575139217499578518362059369066054944241497744884088497019088270759975071252616297796700705204792228990190750000689544376408727562147359019774985298496100043360392525139316330591237138808038139652312162226675936141059936383125171933928553737652028840680216846696267736644534941078276122160163165676401265144785591206724754838501671170257022307314927069116018262289899217902342363489065205176014345870357921565499570688698734108566730795101240279509395659131988856500913837918732053060326412008657004404486559551583805087810888593000254983001477432189314977155375935597333710860157534029628433576035510334380870260026902860121255491256224175467205979352527793582146985422355222363269761842130044757912242582742046345746262853653946405257294169193109922280416016874395673805675589852364196212264458783431705373871558072282676432401151510313999826921039939111327857049725931037748543477972832524974164507803305096625664073991645023910390309711496938532792959377228577044481944495283118574853973842368508759903940986315345169467449799233396286285080302185495640874279373171130943067042794184211248511765149241593368758036666190939988867621694777273840465275416377865542042086650028170562646230331532960148968117806016195697148137808135450954684877268900991809010082172583611360252232546203236091207173433402024642110012773332531081252748160834122830215511531729810125471435545825889510213761587221804253883574312350180462177578852948313353186607196625869134806203107609939523407936899537774465364850536657455667832889829034286813390967212582688666797518195377247490747325571850872786291287380386541794188257058323762731947422104878301678538134085627851890087810755392791599461577039292576908788231489468111756075095675622002779520631072755047793758991414610820043802242685752986999846469671103833550892886775486051422545730732959507299169063200288651575361676488745044727306442741330864202407067721359907888443396687157663700969493768015451029598004333098834120522059690732373888499718714302794296912962816927628387925432082900038148668632153373375588596672773094631716366434470628598386534062775271938164252569352919954391764168005067027729421577241853583666202286344328657761591695731847204743991763306244484232009296486372226035854212700819286554303582974689650287154188750048091825972733305844649226884690215598795190470167071300446237915418194637076735456318238349448596447026357137328416691185768695989282286244205002768532086603295753083902639548835696131530526372183098315859904838103981113272862672280262124858991380862936817541096839110770874247662652340529412362725884280047119151037454582107730642916422172823104319777511349889561077366727250994122463243360897957647178786390241832993069616108314161355803847415139743993301204084962003627610416727529178484583194375510697514809131144597443159718690561678187823782950769621385990562171119730428545311371606416315769566830233423297130913651268737775919362935546026821805669005581144142890961956904369646914701506684352571221287189664625956057232709490986544039457551260500177901913716448845795851307097489071710258873717218018386623058523001163494389882031508351535234406363224247486867171800430023653844210166267526030298014430092695628874998589757681905574781374301318408150623134337089703938827577468391261684555915608443142461288196983936590218677292515547455719860816631641864552370377793799677139244582240537146591282093882809078380042256662136305023679907467205425330447966686007257830619361411674173162214649798019095745271124341711976860221176593571201210881295904223092687597594736763697703939280779184638189144074162549827839793169135153053786165149853889470297540187831276859329587552524146754191570689223575375566683220822238219725540201035558883484636901105714651453539005140178687702090769161378850893303122338833970207594970035431282157133409979693254189701518057843199924175814306165630656958262934845895744862561906515895332046855206957061248467765002761803134587138582468375557115318157737995899322877157112435165139965760862532683140807553996640713890200428882012759155649556257473911751255258923198522142000115525480527396862907609573568404160663726273104604257028049760149854304051816663129429920558549853353306650051032425327382418908989881972066721856299099491876301260087617779208544377944241430821429060333835523777153173017072758741256339134326821531505138409177709613834754192139792212986231791952214624467202210666049893994212462942033864133624244754421864012263697325730913117076941196169067613440509141082211958273234858361772812398269476986059931971262818818900269180335725301126276275148836565815613629897522599709184906014237044865307352451352657906831093615016182226950823131948031227929429052258042412912638672709282717967866516399271895222917460407222418521292980186470296099433598445706053000629512513180422475121915323393730196119861806014834339385762983250001094635581067432805226549335402297980665093813441472338962237597321270843337237927260351156635933818720173030800786020509713827411444119692295619035468284698595148541166939236336604873175701664772001655688872573778255652925007446893670604200980099248775601020655456093001891253020511206842100546920566413959810410539640440404397528950423759347358861851295069439538215049999267607193854168816809892827909508098343444108360612078770655737669450691441895909502356227889408446304457810158207993175903160221968188100683666804228421264865458977127347851762332044551600052823475554639532737440047774213539785247026708235204739719830733192865817770258819395575905099053877455424847498485982186676021510796250705836338661264383559496054778100164611058792408906865600898124844641463304025838258689323184029508617984662576316096815426530217531816003802805610742059296738185355502682979330026620575586677529035671014738930149879196442464891107163077746854606719055306122029971926924119779129784012338326097808489460207676967550751580464102569586017617091374904450739156714886782815686463001859398924052823246200370934943596999024541311871261967449068099412157095396369949145627263266854502211196998410715557014097869271824072127724853086249921986227823636647862441598557771774120431434387514724858792541684327368462193616068412464278951400508565724616026344387906957026523878773539700466331866206510238092860340542658300265933983036538178245916827505350525545115030921584510408634257680327129933741889085381486724035657256023577110463675358407668146413501530719947479960351248835326561526855228921734843373357995031878114084452494397445376185432511940666061096934285084086998414988522079015258707741020334585111249744277196636380606781012860582979560487565864599438492038711804652133175154103799682525626929462708936875564749374631021994001233123337887433036308972556775553382589810045962100903223589031958509423670886333105609910440323703038314224598852664511678644803581706851847604791742653797474000753481741079388082661329357749865128349575825957473321891403831126602841509152732225805851625777767713755658999574486177079219430643899260413331083322342229869012247054427623631447673041727977301449707683565262775734876980897045556383705329421594925201932278752113687107707816334208225985633656748022398014264239074354628161423342361318463735083822408735642661259641924298006316976014962081833495323664850656539400488363650508352316720614876239061463873926035740797437817707499838919132588713899634040050992695557692530475337442885026037342828519838287468561556688908853010600840359557980403650119986850607326542753513074202654484983958690142186097429513124570777693834582533613525818924202146189050332018800906410877345887067068985349752465242752778371230619220284915187286160565771207226873381421724893028494171640542265316269761232664621108542657217857047818128373825135470598018354870549239520331189943819286247021479723100678268840109871772044415357829771064221385283279418220901325371607594282425763167777550146461792534769308708964526848290006157539072420732940922991947140127161226390045607538615991230851092022372767813275768709541246447313438161626518031520487966139332624915852275928154223306585833906752663771343282183801481388751140497677613762994017961367741092479756416519466179204659002276115741691972041001827807404718292836112404605854631561357537789942922549117386218955462089379871105986336195806088003109150271602895556040669600450560911315114572009994642727606351069844246106922706091627568144643653376513620695941239868587273074300768083981854566121273641158647630484452402154855326333019389581468191054528608813187389591012170900990559952939772231006632603597043904982769672921273812369419211361882750964880903791277775526796940888663135890877795214919610509424646054238871022483723049727278377672043342198973289786415459418369522190978304421983533901207371061822882944600160818331232849491235879645763087323086459509724031737041273534402577666074408807519995358802515632464702413051591456441325554023290085365179282450613008123959120806445635201510080686364296748914690780926053457475819152262161706799507643572381093921481234847686871865944515271776359223295248008576816420179674407068996621356860417791956626384934649680769902021935682594843849915496556080831842647028134646886917617636251975757988593020080146141999159389702296836255610020285042259089951518443931430361217755816454760499071630848941142886775863333482890116654673524795228605055314342389086301492252566624326303614959366820067292778663090358835787815124089286148999171421634377029604372135346556129564190271899025371378193721487998660854828000119857816604102646235292927958983707449541781495485325016241208018291297225786484050752906165097428562829895002206274592942845754780214141588701306682409649206954242305361916884668255757300752787199417674462167004152186839206317290769808413390506236852219506840574148919315497228671651315212733264853057074340637930374509053742537745357723094946524611468450800519155457065395180761950446571716993865229392087302629768512119458720553180907518824085775697524020175371630741197006734523054043566749242436944483498718426783601419253775505428604160145332799855634059071946561984462144338296006722204325443840158414403335497821755680996738590361120647554994440264000394648641434930088933777670930702192573995515041074707689726252138126414396244422292504180078282191314425128071159639740461835590648916421519609821324466047700290592566262367052217977722628513466230788977286453696482138106452726866389253074662885962637440228024834464622492167128076996429673996899944722554085115523263317894141776091603503077598360670301422948937111371905091922776772317835302551462569559141313250674037331640844112832526281642084284279644427723924872244185880993056311632451616478995176459885356188778159392953210028358044752890734417997661242258591161948978245926058437991142006249700923206015973075616431903845671952761564723396284904328994749240307263248446280339516219927824065574127816279274864399154085164601854221943290897566414332072109018141254140846588175183945683195899434622255132989195054193872921188408433897659424834185017975190589738998777338933474009256318477923683396410288172306652131999836005618558790724295565931804275063167606541509121670003169245685319567569529999074712253211857859326926044504983792447064954823114629931098384480501005543069912423001108144867317560585956478463036430065883665327027095221233043914187398433905652079179795959772907370087737991690060390175715202401920186014852016864929193490845588651673046206715938039190031310852262285824158141445539075526626595204941989917928909087989224822026671239027180579684471102639626258771619164831872621201720526321011305412966763023871937379180045816578581163912649499008125387995845152892036813106641731819041202181123495771201920818413190426020479689747219975397055206766055961436706900453270585004530281716688580206005299160435848669503938385241421163903215654965944056656937883092142000114629422739330819243345046313911294020460320258284383403648741264967774760084953959589987713988797913752480384409646185152612061827971926302295867044752266731689919665052775052105215423065831024033557642090188463958569696875134423196809407251684471072509081715951280185841198595816106692567389745461334177407520255029760683100159899852084043671371581881252488141802347944127933728792907313361561863702054988480218884275525322035419801145295241348839276112627722181060767750559025861672280725451588815704927932670399943946664979552448450770416054028337217700228627292537065105680270728097931908392043577938453271766107965123152479584908231908174853604949531570729860547059671707737901634910980292144973037365129290877783567349335837429850189046569382431420157216498743432076382461466349777188377452218198101271231813286836760324860367475215044901342207714941238639776924712890961534631113203692174313161810277035639967358562889102630727659526318415343529096309067019551231159337622468462656744817299224758488395218384392776041726314916637024835990345725253612992268954541694046341299394059139435878005582783472618311481465963826660977595927812357874451956892660529897253246693034294704813402454648246976143860237853632705297769292426186132482729447009726566192674722269507770101570138532219526461465183395024028346209268724445398537208440651126534264482791072721928745474542404310341092987583908562399320587832086378108988237228741142526724670442923288704588559705713254480462346886149768128299512794519754320745792520885186576411028966044348991507146831971154757258565625409795800481850912649168519211721213421049286528536165935843611678026418514325668547979486016127132856587707517888636554816015353029344508601439839612912831514224618146937194582884437492998133396355999543124862786319637052796704722026462966911291486900603717898934518214309292682679557273594237379131732023347436324519603286367537632075491811276487264680643827315866147432490377598742321398145710364476519445776439194877643591680778154380956176689326941368790671414387662688274550165945091586355367022246476333273389981840935543308386407507834922014508156211507889481753566012345823209048398467442188739059545769887675948145177014156164202367281776577470348317419670324324566002796001109604865532980706005007988155073508998788895963928800268981704543258726079906405992248912311451099509572316826878063206737024634266472484538930395976375036189037539624543313456444483196686277351378783214288836514678420134734366522406566306930645833371915639566619530151527631144183945576061789647082515740564818501459191458689840302454940779719642540766453466654151047241293922791031193547677126149994721872336907044102626713041448205861091953834413662269021194752114982993443497368169750246752671217125045401145315671355669236762809076172620530624446278086278952730524067969748299161520069221322460773043086493177694756289616175565663715857719449383600748893376127057369240505512568412452956047209205818803669449645194197726573253631934167100820096084183574018655857324001845085265005934386311857797892056390563467002894510523417393575740496729313915106182010664746692270226674936305555093113698715334942788030261628748539326641012395299929912295252095278858589296788198404728254182967868780910310510102376295440214833640434399685326505422679537501647742983175069754407154098452743729223430555757876004480516389062435614211204021913102790436786027603280224150966430193272635792195005371208643691696709629101207415947313074593409259214483597617635532818333316010999483255702995732347383802374820286097745863452616111664632060065804239744716345090034320882225511212703295444593917038717066363913698100041470618860880296775923399481515088199044921875296077521565495178747523725097783425864282528558323309479319834827480886698688820718269603316283621225701084446151614966030994267912752478009691947889982536174086037297276396332066160322984118946519435368426233561474644966463684158734641998891888588423785744072825982893334392698165606847571047511332367557513424313668031670924860848680339326891044692556625338209223579057672206041074021887459215302501378550084754057483850200866822695671071093737636743013574762592098309628687419880966540600521828609432314881442118870218648038638479460610945042820708084063009650821610744175112914188857547564821616743752140972810418417396484833584215656626092101841310125815200080530098274331494181128141690929139870073263207372293384780798913426853111910703380452280124259267693760394544084626925686360749653297665451847171480822677918730439276577831145704775031357532549258452382815203786697067034292489411712834457753076154968787662236967867565911660414850554512268812793319960841139892095673801030868781365875263348048425016966609943410501383147633206256662460400898463863421769868636278081352241250951130420653292969022767007245979913191800769246829142791000357798376552174630634427329432861335993772999877750551803043815275827047199244103787669632665317141884218974713260902687362641795047349433608384883223008773136978422140240284000555657828256255255467286088778494095578487167218219987637227367371707017996612529068173747575470450242088590752927616939381511479298825839989065170256006127721053430890276858410142971329075495374588387834834274947146426149643917770712107030657207987680198659445660643679255231647949398911609289504422326395617769026920675806719739248557560419726329198776662100020898165910136703990748593408289891841946066454993361489300330938153878455519008171909858889391998082682789283156812261896258587778055287909280963717387075438501766527686784910603342414171929224212925610441708903306057959916968340992924031626164332340708995786523131751666571075663990561753161663470865432376933407702710302061826311529888940550184652389742587133107518515555643327473398243343260401249708521012636040342837811094065050949203329368819470969559410301864828407690055035823229103745980198866615568337303532092243480480643206076052248906834542626169756107303461136008441717053690615726829925947461552666111789859813426299347068921860621293345209521534692576175842678114191961760531280433347943662687890332636915506754558035498618368161358720030774994425851626344634232878955023828283497782473973449939795502514418468151730944926149436840082436660482849354035271045594369244720463114046284057743507302382995767335406597922339239101775584909198344952335225952305070492206454160504293520217834414231653790263388698768694152304413204447084250565382338741312961924448267272100542540453736912392584091837924407682776193927106387560496008031593425843621792355517451736234617550606922658185769229181768642493677089597350441645144874840306110021593910165904024625511849616681192728931360034296080516270009740223346417834471962888052044832013004007607578279533278056554424807231397717074256006019861866852297030948707344390771995353269238660890451820586270603168719301081096165833332637068324561990859651033121305620055690257093528966048879093897754291260544248089175731477065721201205501342388460854282395909956190414727096985866407258737587140358282581680529627543825526255245319629610681009233890067036082192932879802860391748636412601048067292071297004272122095607119025433195819519944246299389147289572388232040880130217365985004975730487810642576671967832350731428676342394915068350860495756699118384368596381521837985909449387380491256781123139031844327582706107183744874302037110461980974486588274855460042471715141197781352786725383905916375880236577685754188699761516259538038508185748873670890301493739742685396871495142183069060952993338285090144053161570778872937726192952981467392589320997862680533915168921478473487108889146743106236750001547268145290977078878087628910068165774575489321258647944611199033776037726062150018627450668107600259716020101486292048983580680487232470573158904517057852911432794250984040807865914101206822207373388945059855329208776160825694959042652847009644755821073630638244460574276703478101765115069847126654534063651935095885347752537716487726966559964904223913879607618212126173333552965792620314232977807378349222445649917409726016441476943069834292708173796756696977345594401175933421496615512042570312918488742747482353435020167700985942397752544534764060604673419678406453935117423405256351751530494771401972225777651709804389773513305378878234770124347881586632297936927834052767482205932257840143810867541124355952984922782380305531907965386206624290246047175797967875470020832028629401607026238617028451538755228822019177236217415075064438174204457099143405577346688502939781219482411724678929944046098163310239370753712346432177949387087426666154079959017430144736865134424469622000557673547867304331443307568060985927384037214030418867252843258335761544043415047176071935861848737403306251891415774253166905777768518541202476965005939064503932247667947448585993551366159571893790230769795563986955287018166528704385976687315323783247614194575262610442280233821296804791324876618825892002587276059462855602867278622153758941930208568102412829138877668387634413355268590815334951786858574637961990811110156634045503513215768144234655897790831261133991055918129958945956975226729240747373526943358188747201170819003463694389750734726556298382519724936221687098705248166197246230435426247618860801235135066262740702469421812888535760025488230928729410216591357065163502185802526332772723866332375728865044652601822217711216085347100065092268722345071149299554450768566146164350756938045380230525379285295421733673401723817996670322567433349412048041086419654123452551199653818218058593277123758431028114512000245889831150198626624658259035042073898182366626723896388532348638694345437958403716795075675248599439246319495839739468196429069802024385455482571511730115915450937757730332442288698935931282550382476583031141543162143518713795797171589440322983743862623805219871926781950752369918749722446680309563016619950508048650249876344491641700833334155165019538421955519344528484292642962418767082001935656426814600757410974838934131817477672016218260651786934379964473719712953004923986219350634780206110829717953446172735368270492228716062739172125973489308018190842423017168545332195742254968584614528808664935309554732766964889441531312482579849789449186206249276626363430215282496049468525714693163184419089864067660904910290739457360685901012039017057499913320338544502267172365693029723485817887516273669724298151987252889732889248846080002423157800066320525252771245587555282414546793508628275713246457944259083764899649700552490812588928688787724438315720294475715091177618069373546034192991277985189072766639967876036840679075827810980447601868574551424989710230035372333212283777442861433861393850728843704616047589762303483501344374880997668061996664223539804526907159297495401581830371479456517631069237584162681069068206769337052394562308634032955420580021131836877134343453946892466524956728324709263479416743542068074717189296494082390638646320091777228456250275484559900516346662676113138274360424950022884187459068310439257716436088390241880888225574970693369201782045058634111581722794477414737455688933835629403462451945278559898576959273922955003160042658845433066975534627754199016529154398563362908658898197672903287950541844234588503634047456166393043815945108922512186458121031493648708374009820671675865631533596255945088553829771282836441023122459433973392039078836292624220730369837078255488622062079995303338897463811694842302775078513746592035513401668344665598478835097506232550134733330377491418492417345398999458523999970094932448206781353652244429021855057957541679123189887364111640389517621118367934782863944587024428871218559626567526357097879848857004000733287751497997749780175231965932883727164983336323064581867687737791466760656456881018664699111816115125152349744177018291606398067178774187715567641335144882101918734542485967639210529108944813681266099563367803895210119325914292362927853911357495353720230246666417817010909165051895674535557971391383622082033838886174026789161767548219911176166952243335103049337383244761907110349703154329689503526520263711092753610812966873911600517872165172561903795656715420569935415699847699340815528180671897982972120425563478739916797001216809323732170698100185071466880163022615196187167649926986865130639519726551369043182057755306935940619254464941950117693001187081338962262444666429797470556042923748311538242941512331978729632891074715089842553319162443303766168932395936652939808894367552200630137380301735340563103076891498330777689868378705993301582573623826005647334462553299135763424401116033356947230454129052598542414135653546819463481456042037286899854874675894804182888141355730955023882367619884926710041158769796187119288501706945698740112619244713685992882738123397052303439306231351943389268085735161541870747036742549319019685423336774220362715348109607428157671001070270547530534622110345702416448499731194080970828868464241034536512663706859797467419149039921118320985545069423505925767630797975519191347382812458702515792235671835761440898434868421975770451292152983713175116075540049262016438395258544574739921375277971950599048998902945565993232101211389126471178898293658706454321639782344102919664326845652392709294152657587240000654564297637188652854753555045030854388260973661161986342712532942285747108408977622278198316486881422950952655879949042985980748681586987356335732822618412915268056918688351109217840619555142931464929848330280709696542286141939976736571885208915030263157564575019851699189793342980304500378975187465037255713037047778375656970648696382567088072154735027421095537441562804736401870382340491768073697616780813048035958541822492376650067022387187915182925413957866996335985765740869818444388325392372473232900615182088417410552178721807725119058719080586211391280631838414974993774213961641298639681510624294452832947000084724929201504101613955851619239988306521412135648113221970167297179238082006416536619465635122912545382130810891185353684149909067548772767092272542313607155119973947975826677066040539429755854973332668007731941041522985879892202873567092099172280144389833276822069297834216734662405719399548466847870742880388215246915210045644043736608484993089382109284768599010228085709527232484317018355796727013946489248769752214730414544667998242428384424770214530185556378662528584463778659336999969509702100806780973061604273112821687567715443055423619266313327530151090379369545623881016887416309821812693043977426920822812074150634553777785035568666652890821458126181779841853666321402255491009602023825761980944088593814645347762073709430868720358822237864618048732238569445882942141728876721030923656454278040126566885279656400954109990575452627695230594254764411777738346425092220012587669516086571455079168942014463107047720489869443957592782636784973300183850508228734291993597404504024147809018383655441801413467840650621959148329925512413130498030035699892643505617386799037006300723954588244626826170206906899739287686617109755347259592515161693140774126339977003733726165527400811717691062402598120804110758117531645222035279143163143759377891979870602406245035120739982833110711774501453226882326206228805132406054819483382010716792310686113470455591718928039249712898535602207047830141131794666832501345203007815326057951068823234578601530473241611525145239165679452566567255769892470943889156069761904956512159181541030844449080789309854022673430135626200767093409607406625092268081210533299292301286869344480117144351011464242273194132865198704549025725597571243107682740721753645421906327558328182178857355362896186386017775982440647380585990016420911571059504231441867087137132490873731485646592589641496240769316890061907439828089546507219655144202207826445798463270941242625349709338614517096708577392712226757741285711588292240096917422152783946238379147216091785105868280550263592353427909946716574309816627087074762661641643333811973913833872394073152779289306327193967132962328838216888596236046737901877173936170536973868112488359844079186812762240251363573967511966521856859100797548349583898139727663058622340864904045635796992289318160454629043958559070375445730062021480392768991863187290580678556242825887992756508280292735537896153158906271759670283258558854023484691075736379380745138704355262422826080592260119402426156414389318135555602762438541221085150193595753806931126068529375262386345346849643547352181658917760558389113721603471226585874643810453595045975584246876484128749854367089588166639728245045435348300054011090752754743514604047840117370905475200870289042346738412589863998984703595434875599098577269046203101598285760191001579346186750198129040241067757484971132924176450268242381514485421617283893544393609185669859873565216011194952200352889722916060759894743685758339018247519356884625867039482501039790618380294012237278708396265579452584299595065865712771897757757230141835006461145268280219786888039385803220646622861974640309125922079931853908673840013116041283036797413168013824750652875095521228836151086685375573757427435303999011108578218605152658853478184520378736079649456775174073177943925069469276811723268365166436075086160118628678114240025229508617049997230675383282123369521617405608848949737599242348923453353298199755539149468788493483000320395661928994234956291963019953920213930060792132394834720998258022933193706195568830157861480982283656835546027626377785770357260158231244413104920203290523450074173382333694787549495337885414556955327660105587562017146959614381760994689938978356358819389877909866480604723913126815127551412287699281106863406854488696743204095885349968771444239387515903489030542808185472324870174164141466548466494920676511722174616768040929625469794846184758458148857089268626647960248058364147600359069914217126519748582540261091753345126411795669967993988836534700854752776443617651379494797436060576591834175993464669384534575321043623239348260305009725942120871625768496633092960698883121032565732275528272850373490697516491199252553596855135643760797891755740805041060068192055903318772384966267971019988862310866112376575087062141162285272059151590336007134372996905620034147671133894258065473381120593783601754781877904325879914759214561221483143387975508544307567975520852934361355174301341435718913200467197610782080293130051875473963249939137079138582713979448103131434348760018847819686626537861395984530003004737098798317902747475485244754999938338443979400183005436121982243516227243310700229818700431622343764056952793421849884953716455360712415280474364431060694233373277070290431363165095542138029168173365942925143699968208559848391395329780221024839486707117932338572693036880718685542052849004760385247081793194962518977900291892098108733859502874196701615322368520061060864490391189905621489929082654469214507688869110208884937057166441938688490266562214532315190583586025813196179323692436281389967550505728973358846038398638807887169450540584397455277692120902055709529349829026285616252699969626777893522845966235926585541865363289967716162653658440179949283223115807872065649633771697292355045658156121404017536911814789461611143118970602136370773553051751641181910274175507664941213780903563061099308818585639238206665970457856186261651423102116096011709424885859784012044362650427891772348149590178007817284307650962383435611225635754705454590833615211978577716461445462159927086683840087079111069006441901345778234577916108817113629061374194773601677220622625063566986575323214264496796566754043894812742000547243141854159263871820947096789331421607782804302092617058646706772513642042420877054862347581523945441643144256366007502828574156016906140929641859750098969224607219604533225055132705932500173734174150216390086756147244807318826404582997261889381606315448567553667031741247024631000486217988261762390221933845890483980912732515231920825638782952093462851173294074676727444767802317485694876318371354739662194533467981013083256588610180310184998503735380133402734853463120755596531723803103758769838473329389980650828962294167324063737487260344538736955011012520106989798114508369614111305953497524426538513333955713481369526760276458451468288145673507801320629548087637117615558765094194290911452121291504745878619703483761232257833094518375653323203197520818133631496821047784003450564375860300598253959574558963005428146731631018621742110430667683856296714894233076902527157361085645530277295654469326408601848321197054978905139791333548661814231137745418310709808197422622188047061387666928008362399570758561216364629387705948955294192512347277685140855846667259234022926818723350951633740228135423749392368903931422330896865052703195965369574356225041760787925373557856494076667565398568111665846523626618502054136839373693589415934080687023917135722851764161681361098727738437340603154262469567254319821613949085296268655321725115603135895380192568319632881123559371753553836003524116532761128334153925549636782432400994379659863079496887793777851324627165538377079145120911538449347514679323947790009756016346974741543707699927760897934108026716407169485674518128535507275346196888425831084751038790994281089253365181277818914158848142308181103515630532313284124908959461242127861006389532263329413171117774871588551450216309927974981987006972875040881175224926917673113228952755833635580977884853789119861878649878871283041756668090475509809409411038648459181999163628453619344414444688425267668610093719795933521302922580084278766910080119978386602217272961770048768544464384034404381822065045233381689397650818512128444338650423609483101427974306977839481833303713577279239502339641588733889191677158737437888009849606338429182407663506016650977190153822981544049474346158584228214302952473745920782306599860010183258817476846759334424630070878510179035339617903353353759055885047859105648318081721677667919572185400699832561117462214212819642591185173434472897281691613939841422651499501357966651482683588600712985565200070421551842556875219536627196520607249773667687086765805048752924311246212640888395858153775538308126206786366307114373296975642534751856247458203266177930395476251162604882264315232766318787682767094303455383040721054097360318131846260022694436304166822932561989160366248585623493318905754109175607281764582952777841547902314634079698637630134244647895618946346910760008359639767486527890634986701522676982458377510972870810161497836626906147233174507688404771665499364726358456578148051758086870187464810770925262584355682764498835601661930607915533633706511139759189892974277780285208854757770387344277822386695282220095598520524992650172927843147562652115030627438392993957045112261354821414187734202955799113973503119429011241164472273722389812031043636916255094126830666144938870999482874138597207838544938709313672732023913323005673188061088076504031548985654156649103423987536713441612461980083850748434049707268284087808234079566182608911435850782137452663822414642573146460206911225578420983176982183063013760743468517454301317474485625893152899825426618327601667310282856469819378146480279710330207821001334698043360498829199779613315414848423277387351991595632659679209926406042133465453988878145637444160138951087465424315669648542450146067367295318691662651237963121153085482724770045564889843470058775123411637116588029859609516860652282894471302845794320624922026906225849583124018357185921707082400839204310652142493022460918553817956870682526501183356290306151874332495900246027145443683301544201240872339817865260158715436461251796333367791825586692406093116294692947661885154323496491116134717766403198323434707955098613802105393617420770010209609587067379903936231768366088291269550753577897201690063133907412393038307399160947367937502336557507998135685189712075056986777860139707916983250746493095742962815501886310471517849377720916920837056803986819372779435698847677031412061446190683955521830891311480112920622586757991484547076601237840511355146502415358435194054486607029203888963435835291385493582162921858963545066852865788205894177478749703729320804552159322133101438110657523568715220525727597361953925481077215453660910721940348707371747254948798696421533058875939746949833788960621122718782931806895564978971235731406292775034937536225501323099727185123029034905949426898079852574053191607864027215914354053404793205181767918551861474925932260736514875405167773753835981182884177724227781407041562309640402441177821734096757897602107874598825711493892782122186059041163489266742900987335581449111934771207126777272002816151995050344363372466233513828678614520976360584847748448111439595502893465211747252963360119006434505686334417250793487938858280814685386565357921900154526940654079183602496723018763138564089345198232473376095251159868835446837511824325630745266853402720603857388904512120925333720305177852435631500315996663340169720802687092748261718479978292250173107913276481421153154390349730101049152062603318989300501403991627805896982291602977829232299963072318760133992338082705699315987373577568176915244269235902246627220796955578522903855855439345781021241889810777761126723185054603395708906690435039646716349495185882116744271298019156066414858727834600604984497092389592955131667479701482944980850931694293281857911486718922001761137356406952465526637852519243356389352353770089670118825343838251108963101413105496402868436645536767673898069416501868413270689428320894190449832048169177630276951352185103770770619344375040189929303324281158922292732177021361098210417338673653102829049931639325957920828479253591831122337456976009606791477294404560525076432482982664810853959458019416524661664411437772886302891900288952539686322241003263991243232370818902451514333118964074732703905926906890812780213237519968145539564432686077900041819455994191983366045582170513121386694121175062747043883757297940707346720187158925469957190555318663640834241442566435111353940381294377847228501675361176245491845090491808356431288613079182395014665168974228466926402308051241972745750237512717104843391091421096493406041654248608291417365070964793737290824626400311665572994868513260308168263367686046605713380419094132064472676102732180922975283088673377249907665247816939451404426329692410337333403266611445520371330785528151497258395260448449325696143145302944056479493372124617493661296109722095436367478082646290571248412619890298418581557438301861118024027155206289710073997517962125717135861078222218175387593424714347982446394729682531291661014663324159941693453074422953995502820123757481221022960512843547443119769919295713811391832436017102767794178200752430906675926642637794434992965051751929779011086803674673264166594482361512637181853791657275136404607048835172639432809189958546856563235370651383648013119684749300674399650427732006444034297108642692407101919526908942300817207766905108419423959714274298694671903669118890251760609349002945029036381302101513165494831933465854814412317871300064924117443144390608946239925611895380180046017742537839837272154397079883466954740602823373207497142380505718886303933905954438523380262291602091542188453919961199211603623740757985775030042270241721054431293368278061437118294583409513104279189128227518239280893765064682289268833214945489475648407582726648074101465798059614587073589748062294801293991911137800413773119625874053874856895193875406504266057774244582421010314601477432890031690962035221847904241307739341413669624982015350972762577913103632285513394063735800595379807626912090876195201471662144384414965767675095106920239469380817269713210602067781292767403172882270523064494035701626936813219284169977692304719720559680655309695732567316183784557485069465688342109238819709470449793167511741770772361579707143545032152984592192290892287341705687170766602222305353836858305378434667305454004399013500626306790276930095176884141072574788969463935979246532187652151464538204114353748033378647110074281530801241680460952983839299395884960292214952018104593403571155410372257035168620576565786310003844117940545750635372312221708786769021271751977054364133099009553091618471461091358993565541184712311020074504902958283945630856609214826118211285890955940376089642376454814370077464097291106387542712871403785663412684078460081880042811939676089018540388190284621761960483391034031446946489318263387686367884996866414047820336465791977045368218380284530327261517952153729100197234203941085307876124033262499417307590805651406352036007493539816422005568635967319774020537081633749998099412364537214254150335161555074363142653109801961375643411295315219748519837471217257814189898541737661708692781029025772945938881464471694266042253068051515375211825495765160455147414991250321935773473035187347285084924324508879365927583683328991186721935903646270208206012970787118407642324400856808404900988850429362728212624207957325197613902744854928241223107373439687847570372564331814196312180550094349839899860021642018925148631286603514973082992694249811628989681344856753036062469404309426869429805510271794790412655829521248582037835756905486156289760159779861227034569989536902062553744241690803806756352629603063054934582521891056473247255347951793164487859677928137421639699203006818732304835047500747217548085225174023017808676891832697205093859755262482596045775228179074370665017293422396367539078385454566161116598109575412031505424566344214451382280934500331649627437563040512398923867549395224508465536773993484788776723394367723810446949681964591960809942981113574731483124965018343741418587778476567235169819996308966113818686007832010572215511861550294730633985900885307303371309140468918373514478501739501076275437469240324733536782192363179936913908000991973125352736667689982475611114204688645704587710118280793558504610534023338223955323180278850890971423945211265937951004146944587393966855363510304761844846211962407920008443792580055958503109649076212351355500389772576641915324425100118016370727684037302455977524977039884097772434489206497957266466553769969580892415254602680983907299008588310579895539474347974746695178075685120467034630050603137518632291707119497022861734275841054978601646084288806387992870104293885073536297687316092241358789506492801377494669850243708449103228303229558654280127009597310851950397059763269959906945611916892339071071394707055689660999733931438953397945174066361765832136916785220716538036465942079860298500221965336184851952296397578776501756297692099119122297677593918319941001424388517721049501851981048588409615129168357143418802981191725543047480400843495321775463543256812103936096123234374227400410378503089172670665437252629929437148923321814975872363297638804740059843353613425812179172229353010679461600114171113754751819266035848620851608322129867734167181406757274266145206534237989435916827401184403898376182216455034809093976033761718118699214135749404298212226945759389128809325042923728787010947045209263276052647966425364916465270856608596917201183503069232556187522966877217101937260037506116990941029543267021003138926970155945838251707901696516100563151536767011401691613217355774141797827499702845530794908155832101814458916628452176099769288950216329240878078383003723272679869498003033697284115313160945139855620123620600561944198723330796615562528452433296287607164049378966168936060594640519986529648205847341618831815427324646577587689590165905716171032024337447019688463821974504731195632601534412825045995207545003095656514672538531733812128806260983939525552706655588314810461713910140472279329995057990895915309106943920383597387461618134746315772748415385769883565947253429217662308146443930336357400819447258190460042378561699908397913825350178393568545807318527105524824515366976043558438269788488826296010192626149703858472194855004135626873387997701918028919500411403600272570308191449695077606693904312816321844938641124980177312897761957827561922290391221018185464444884828559142615192341599064874113284138340285637948969921335760412351068453055174472565426518769698295420311447683824649608367889722503788664760383448522550132086902467175470588283797526358189177839536228774833428741411909786894942111601770322224197405076886006899990973871341813458260649827921958165745591737922122205331070425971962955996292063879668188613194086086797897712457313901129312521425617967311680184806841149917088567293409183175857150115370315531904423740718678110853686004947271955756343350513261053581334925826563504666422090868126249579024397046972887630987047220879499119044599620439156277382241497511013310831120472103282001598084086040340582526023284331510854652528292806442856390320210479123774216577299562350002955637708566661694278299100261592430249719992460692442187072383609893841054947000101990550111761466151295840201908537381680107226810061237041890245401369365019611355726285438660814812032480485391728161578366535288780447715778871255981771662235942189645733017559610866768971869878835365071021400690996192289602883730032750847256647865349244408577405280290746323951441899481100128376845658515610563466930796825629349424275780685816586804744557251910696016716163802704823519341473565319235487906210023231611271949732723379982214325589480003092290380696928806808147720660174455157180121605368654435226070366286442642075559071896929400568102325823421434718077858773139017023811971922335333912044846251001662491342907963934615037563099348880649298109017566893214439344989952633936950236404342719180085788306190892636474895647316634844314863911282474242202444676361155066343320239642183597753650579639203397827918027438448445956087572015056546918338922993484043077852387022631491274351145612283317467667934630133411918254855628413118504773980160695971371817298960806976066285939037353300187715831771779461649149114323429162855980518362686303086195369400241248065193001635151832423432323188524435033983449423897137701253208615127524090550218780744909424283603495982181231966785029079963785857858288060614081036357768269548383423964499518438764604500820217406336809691558779866308844550908863450523716010318562221520063897595966524693773020271328617993824568158269696465623653336499374777951571629677457977786177028491791010846001135027102355010555431581399508755459833241290624022809854272385605553632945621768605130685021081108533888499633203539498935169431227305942539850987603432159042451135657493912265376947239558887035856305802236486387752423275786569120573081280860302603663018084717016153261448258550826976442252801625211356472519073826717682295446658149159344725682921139142094068610678614970723822322748164982944181581801952051025703096608395144222739016445143820825426900179222547555561696200552734244395588501052099834801342136630009021002384549027439770870558927737489547222121145308630720091330678362070181143030416953697676728471404820347048529645905105231814664989986311255052570051974809607698578480732931342767539077912444491887338027217631252323735367207158112535067600610316450859112396861593440854017207881150105125076339177881579722550255762691643830579486341485704552044595179535347725145623484330366148458142945106439396855364178618802908826058471052564203673501120770531514429696306140671272438640533319403474458351108546749827712359148190267360088796734512717615029369258548325766234529981233053503324925413992090236285282967528504924049713429782898991960216848880708971858595022640986747033276296538317852575523000307518974983931698478193838038461323601429901152405302330977707552169359886157358078403327518256463833686033123775607948734372949150679210443307054723311031368893303017053585282430462544372604822232147952885514336394969884925256260562427340547592022073394795925762810877144639421505556566540415405255202819156010366179263816277209490613608299908759925359707758051266605389322135101931579195265828423658451865010483590060611114205492330788102911297458316431136130627194739066195631099589567592763589201561561632334526915367782315705455994395178323353212431833930823494755268506926642164341715648343097885131061032711718089889974005297846651744631104700890928344830602629372480267775717103426149148118920354072319603762996342917644159421477993458245939153382116366417113838917238561606191625328661288455390793918076444908295625930812294490181968911464970708658627606594686829937906397451898079136827103135090105455530175263792444518469211862987790420250799604533976558624191570289592154989932272384804935976573694827812980552073605175847987330359165140071427546262677497979497716346615681544705810162989242963698495167549146098571564798690680365806657849015719848998479251882834418520827640240472378305429685655161498684647500658374937938660251505663230571186984868539124664736645791230179125754372519862326080528087910270584948952866494125003907487684978238735728156806751978870176168435105744197785550584047595952096120417541597520955659371327287876226629920463332433622409110483733373216939830806523249338750102715307691959226724530227219104482461421410279756500382525602813569278449019700240471650123127849652288664187941879901688805599728643354359179396715790275603535841003727571884654093589791977275528242497410179395677096470557389108888711712628961139575873309539731492839753319123271669100450316228365983841339066289754776026707404756798063965545395415913602552587727705691776622720845515346284505715598223331069743163766930681723710067486503024850953328230654577420901830359379823815974002808317285319245222204970164508056206624541617388754311625073062587713409837073445977051465009579360071539240598184147503386562534289844390984813334939072724137392656734227876034637573917121038090132574641595805511344720653588576763064049237444153933318461639340260700259136545146967702199652465128324544726097916906791193345373271994981809542036450969115631026109105285109689553714992781247498957495593952445018528574576121155073870235010098023905452428121635919817616053546323154109530234596075917130955102996372856463669176168327569828101796495298866419852929238636163675984849604038285172368214319375161753793678965518026127039262117440748725694315793955354747496961624580855281495314247510221881398501015335667331794301771551179582709220642666411537093937166365230495239216164886546282447185473867061274502969360666588166685601622220368140683159974013065388145303548595665804119243460105024603158994842877826952339171620132948815427028707437005649387453312427365135512610304616821515647423151072052625931629385285003764011712863122899885621243547881884637731618338045527027910742240119701733890502556111290256849716085416923645316247687232849235189289137264286429910608941891765678318119382247556956591476942053586399608540331668132301955857492742015365476655660440475196088212461998322299510031490879701390753880873609719168449287077925677805966125806326961906726590682807307958986680545199221495501158213301545286462841940568630339515025229028805555840955447003851935014521314447208820150114671605069850545494073054937107756199174128253668151857225422550641091718069638163764624087168643826875168697565152837742760869260414857060979162979970406003728820885619836354453009732766717395832856231178296744148650079962131301181200852835308098280062896561860241232288715782778798095682189994693166980371596751723373906891599700973914343373026213329480658955463165335207557707121912695411219923495344970859251833740843472721947429529615118035861974902277796969008796442262253759701834283452216982716452047546635295033009935170928895062462185231795952744391046125987104230532472260303089318805211855786086922715910750568463415892507307024022169316441840365416464649183341555496466238314493003450754082535089472356618303088673504925640737052086154898614380026730637705044232551076586134766755088017396865359404530735957741703840595851001568160765227816448933351226970536258054549812090867914421411902967550798085217773196925801802125272891993794098644293487052686451762763043069175682958204155411644225877134213243583318399291149418528212786086613457257525290379051676677262525908124804075422714199847324696755609398210254909625540263594528736341026177500460996518420648747351735050411632321134725309750590564327073580199733029416024752238479220589094159264864230484529258737812650691168668736627492292040654262671051143743546710856490851364272220666857659677253851195934249022062967595864775907951355962126290657286817961703329318808470278331899638943776451377361738789127026596549365209835573276593393916628456672371067970355275720793685087076247735522840156356625625371314355951467691171692766042003099180518499304295798259829140354422939730084949167961211216414963146059494301371910362584566569792331873396363005832554114046460799656397457294615177992226762059879347579006039023895592775745159535795380687376102706390957629197731499456234775650283750932421905983618800090661644319997921875498354485282663794159053699486841303269191145190138430293394220967334540662832651847416065583957562611572093392622872233195395663633229525794219959749918519951016516281044381749395020208011165002098389136364447660396965706617423250362480062565084707404755139748696358042687977697837045293704435887784135737934384690658221168392902355222136125516877894253455979907258131318655465868293577504775949691328987168879625979791234352222257517448723669863427948937714301975791691607898287030515757628733160956389545825889217798574324628318526559610660004032903835968758780994416242944725720153073754580265346955045720036288628205831170691457365427234468008949769022030973470514782144614338588315007995407520699851764465818103024392814488465933166861907152591204407867411344487246984854426701103920587383322796332338577818588867737126087631007859537022993976109522132965496447675165599160816505473690835341958863387339775610294794363824258122140812070640126971209135106500139335248066961202008549601700068021567194860299500198347888639537026221164609786470214410463999306122788137292157725145768153474162665162574689510019651441464638173662186079850929610017590222241971543324592616324669876743358837042028827172933774012713438872649124909452604627732252916788809462528437158189837617462269142264524838716478056583753825505034188594906376915419473576975107926451510719548215489779080933082035673554673771549012510013420499828195556869075898158170125842488571419845690486513175626170131769913800212542236657585064033349678700769569579465727822778049101970866756556842930441250625065362630054288243262760967810335652265247576754960857669229590341106912558140026566850990329109661611373634619450510549769469517458699727226618959407675199979626815695575967833971797262434921115575128817973474455954707896647457124638897280622122847179294982491580580939473960826081600433048536364566818903672859485949785978896825218988489089704081562362714250327471822092810438746112175955520115182159493838740417241699248682204662033092345425448299975057332218640458176491547992196613052710512005989666141690164533393131533578040047335964396940905862497877622067430903796109161878067910903183262467625054005328306459633558346519589682102592023728542579373583180250141769497699453001734002459957617455389715074983510787457102285858357645745596055389472221176363684880658175463016258851465140026609991245507015109440306646374947012076436324253494791376687926401978444981547480118863257882067060677947848201223949785755255057515467163376097452407307731397191371626841427502322777004026002060128252790574155931396278792450471429454122745509322961066082281128021974046525678944038717593450751690423833304636226267614287866699967145995811762045230095356281656179258988201549607899293305331623596523219202094155545640467746038942650399913814905819284032149975165401712025683641816086828623628626122995819858244519842299434577261417562286524133663495811498232895345793873916982754822839325767191382815710632788694851248340602704940497387401195348322618078609730198423596693071211463155425700293346731629560441481668562298163822579233303335009105839885299341864139247361903429555908460232514608637519065830358378619259913120196582350029949873782015997686311075708522957298457761673902478435483145683757799670393830162231548596503717441229251374644688646036840898223264441334885019651715978717297958579044484295998797639085870282097559696521553798591042487949231289783302214933286499951265315106633726522940441778081487614075376880362494184243987552651780839612944734084860231816185479865333247373969305483666245620086832749849335600455560147379652758337283134184431846405936611514926110547504184766282500451778056719921609518815922945179620602703250424648245689638829855961349912567026722579096150047452751577964171673326513441821957591611985111471126292665874316676435880808983535863826471752295293391835695939728561467758653227460186079170494873887091113618953044585914090346612258732780859790763605636254871398985644231080839648427326364978979824650034328372722764724490173001814939848686415955354965554924498117958707182818097517542640152850269705645401202004608755450238977729351718065555644643759541078777139989658417971731792557023116739676763912016462715462998398655405066725782913386601613083092343995492619534826371976396013292237668043767677617743836059501932757662646681733757763767425647802492384056978108526856131913286944850666016766849073069877863168184921821909629931012660954186119089298072085414666863202942103437291212025011724126616114651248223985333022183016036136049035225309060724862632885988361704815659474221231619709751238277924292685396224381385527589081141181557328459929518743500063080007743280048819331897964723850109546697135649560558134199648965324709223997181752061105831338856823033869944662139412821101201333213751925166913138941627399749028441994428341740357154516766855570532385906358723340331005953679242003504825536901848475679826729248200316947157920368274134727223248260146024310220895662033741736323593417076266277584681670704856482635583620075980558388302237204815370246517946357240840102823559530598316930401981330605688736107420465342650497463245780528654395375501653598171282567314082696688183782863896603491140400332650615180573172575588723336274103234789962459695550653028993514500231914576851459523803913695271582270633864082417757689575299261023334529767776834171862940881420100906490255478198189529378058448767687541363484413738956486913284849011962440358494721359898989505507402878838217699818191769614313719461732692532574111107805066904568235049762961021209629751362857732015357278614370117642885079942360529217849248128667849021587805369192800203138621138728216521669397236442635104606368419965972544038334705518323464744500905660295888586868858126157088944688513594183970406949745527435217918164332049331447513443466429557118363809777041804211779629863434003959335353634969513313881910225992972365743697003946536697529749127619117405645010521866039267717730359737961564733312149724820142867879081364938227014358811205653905744524297306074389458236006748467042753078662493408781015904829425697644289503768966748803565648947578533515141077771158876170222102994846403276066665328542631205438265373097302057673843517729458644594199715693266872490790336456103775656807049973935658480886498796945296810422009521635111947079905529432613630111002589267911908924968161668076227708534652519155302358939315640645915419380195924374278891412803133859842547262309360746655373908847714898810673894338622665609201750428198709732519565504619484164408571947154691894303491062197602681847968812464362006626495568671504920073210198121436144263436258517701752025302255274489607120942193075605289110181458181287104460116791374142914669326451832038312802885160273358870991966518214585417216458369487952000579502636057709498015897928228341764816109735559344771608187211007603919503775755893997098415840574599951238133725961834707786651543820795127159175265621508150109142090120856950335296132051800150842714720828275330724422968261936885318341623588534215670985151687284172268516275466790195477246322507604939909104112764294669874675699722037266509728980215648282306494487258776942375402700251532809211371595505030881797573583056031117710422002574518008721620815416054832534770251649859666364017213122787453957869411134219421103187078983276512850151982155483455239321121456800816784200006686640419467504133528719249038262059338519258197719357167354105479618020807185415523910449128469247630832958276160511946974956483926220033088387746925587426866236041344795509136699642109184210772669257184447809484982511431419418319006648153340267210287130978411740530182110123110731598916667896853476372678449342365053334448091672150838816492648296124202584029399622617361997716251818647326943836776756660535454857337091086460625730964099002804215964089070471466869784716342797394694372040043625032046095529557389638493716685688195887626801049663022169767064768542793268850415011790458581115158633998922134656816036337500079483760488282950483393137037202816890060473075199774945439593696504955979436132098719144179409138166088863367668591019266000868544219734867647615107301338758233610331531216901178874275621914332150512221099821961145624147374330171101037549631212175503607949136247031239050427982020026263331246358240491092025672225165129041392258916415037576650307028853462964951260053518740466183066701781254921490880864688783594494128827729022818324544132194272968655788096307385347524520606061317161427892566028490329490680267636854643122232025388444643552023471795312477379608957682982886012698110237559522979886953932737176578638694992717773363420665862137059863606257031891578333207689339267049439011551278583114558764734830990130850345965410517558831790823537897101111638347123138342421542833593401756472514731403282156220156075539907507125281226617608367947899230012839283909746378593350688967560189730417115740615264592968588133276636474167711883190685272379113030149353671266451776170849472250641511719904973428912038981248167061676717670436479718396468045397683250727076915365111308382480772317774260839960295357782512120016567175805497096865517530072292296170120150395736535613025218598210486279027983005735297571868967214524068444855372711108224839578340986116782862900546260518291402830012016431887441580805766329405070307648047654365811856001241778771740801109838816752220847630375961588942223687856640783706737811116076386560367050816757202139996346669863294862818678717618070915009602427991109467474213332957708269665090192046066175609707713890708057798769417160573788922464872822845442034186621968563854093990460279198100931420042695731858957218423418156394695090765172760458758566386366955972619191248357076047671153550304789324358030933562231797574505957227764727178315341846645745253227660226379045465294671340024756783489538615813250028875061927619368201354293138569712301696210022156742884155587683613747179252798926552976210181865094802651391790884051554344333910832319055194254158570288862799512558995009111528420572874803895525559208406404783987623720075482062066693409455999380027332055840136224040814625090824608994088706141394674664250853360242379150725605064897494029310264373063416427802602143155625656469539999669569098673961543559010573480667403619839235373298290700926677206710778033123054722681763259335080514155537842711412388339618189599576968447970362778426769708969756318976921849357377087376585684012997646648275407267126627379011528913225483919075836310744527749676056330851418723366009065049175169859226092458151967032578775329478769835035587917676420534017582782885950700725887228557529509333777548743391611625033572286184104441156455365984606189164348043837615947349942448430260178531438915244040902650053002887495028453416637127403368002365733558820505471748868698369650740780748196449587228777684548459419800319243193042646576715630722221028680537504669509905294508835806429158368527969418061145512765388280260804548016577916926837194708811679742250189173185381282776188318766847345075408482252922198137330798785824023160087478591905009633871520227191713930460960710426122948199305620675859562518441725533426618730202242080729277662118103599119447468158240484299675159820952086835692997647558436758295047704521085876508391208996473569440965635322445932063943256269724121992542378219788317469244285804635187978321905936864816352647636973559454001924079422369201580520063669907227857252310706058692109221810054561447985516782208396958307981299046507673936171092474336403911705314205246867333353180990882411542055683318533726881392456703717522789369884595653753738491053303698304270313895511633995089514686183933991751794482361764407184115624733842329419656544895600122706408252224968170014528966475680028566436923138416083247463085054911177565187643620455566331935438641645235380606444997681261488952320915824266710870194800400877990989478667406508259259755281608165144247003716052262585783073732399150700264443050906319222200543697595597053162360683932410772331647931851977194600879451866627104213450676313423970371706836121889808904381671779544091545985604258912724454018699097908089516820207328588247747815893933064611204582523597694049785264679350533793111621768789145035796718738744177799354111425966576340259980928327747576843086695748906240106204928983735984538854593394008118937152376675113008478158669893797795547294304378997904875825696932102617511907119887671662100953705909033859180225490323244265417432397029145839948928582435688083739089123770654140671995664878531597745265618220915372323184604085164916971653951930583120839270294601730393895593884057774384428680172093229544650449442751966766521383925577087176288765077741944650953482998516757045496291978986052226403993220846487693254882841840355937062859781264256113264421057479926179129462509978668734098756834433516901878370748773635498649024530616301253487123032107978372134865843730761146272439194695166583530157150341311979294716723291746000454121325405236776170192336127420795832471457009456934978727644043418351268626201810520960164485836194766894107206777524312832505702189867443077628947250380694905452646800202124590911001033918307682039820743241161575336018092371578992862051233911929661940285271373139199732730261005211224061108001900902424525879596433411414500800454259638664535696697901852235893718641363720651891199199679696132601644871505160417918943708312324324609703185476218124041630881650438544411084876584799198042855533372473962392099586388648782259918369482956357386484436527291454987651825263562611850938651595688629240428248174534025696062924467116842271509982307973929410088165412212770596720177776730107155717608108009848043205667234391560197242093705878815682114647270765947097086162568485211786196584115683211794670026835503673760671159341755247038564146993129010167236944303646957411725475838220833478679018901906834417115483592793272262167153820760716639819303764666125632617473016129672528411154252804369778511197605791691374284169848152441154454334747726449568128945309234934147695058708964803675512678525394526847980656910277451999049519799180565613968526177671076580646863755453237423310457393979380308905302842663117484998658166999467053231783680133858381008424142691099136333401606303850413251082063192639218037774568722899776397142714103154605170897155982780984344072866192344617147040706665962573999085214810676031504408088636805620512916594845352519057885984314346178181401702921437442525089140679843684762149772625541002157919835963686586568856577529538486530301176720238546950027191258533214991140569528658382037888407361143552543925200559806673075693528146468740541203880104384341437557523599110899057001776028712176146475859288210258892932609182984341913104810128373678834935686778304933472266602226728187103548289695947481823196010312605508493711689380471405842299195177663140326561331517358398952946657258264700168953630847295379135955625265983212014858102539046354921083214889856074053706748942141813922617138052028154930773223750082339427535273788965126650562964182720546843100223578253871091187750093603059326344067802887485715524611858606575177330808836076728539352348584975580305387511964209623496532095445600014974976413473102871062846068158130607738833866650004772899049294316417063749161017594938555364437927609504745885377687147697992975894610654612129649317776223420354667435590019583129081177037589952043440698780413603262711140326807062105671800735533636851096088869549930738129611399032466814337537041129139573568244114074696787233004860716273691429845399376744679896674236209773887212698174938715061899133600114157395425637034308991294437138124021057550000290334937888540944745057082794859714813362667358810630398428282352447750171374373809457189497072063850276461164756568213975287265698163927665823557389105324581254332653837035716629405139933894722241474336399611923095469691966245931321429540470171158623767433844810319852023550705271284642469025394073543596629216432884810751265805044488466047531228933525975574315915649036815989644522414070842258760618284146986776152970743225393920841585688561291195573782420705388395466278563111691067127547907101891535516759321578553291202917525353104473353399214582357503154624017568423590598600591632964628360902131122637159182130179723206785466222805020750488050791178698029500820734000586406707787181763039309596433679318665545463163100662944237441671727244731226119733745458473690908690384824864322893954933733139580472763764686829027289962237177240682172300665886568027941664209204438259002206026818651668722709926652308803404176768816734786710117173935766400048118266593008452777003893101081679798209884871985165516322536762551246724157388479548527052476390513074954213816527385201117867066352680300982420023619904193372790744759760776593015530570254108146620259333156489436913537965795516763150675941257231109360194427183023059752136084475120666378083981230950962653701039449650521290888780413799517683368345108804184161570691658252015739772424687954885294577031015468040209850838843169285575477724949002955890805905794937426118349182535771504188416284987760019972726373170233749099342175378948516626963441533453594256491981337731855051935835379010007879891455902723830022031557702456651375295916789403441428479200802158111579510427892817035112266576768486175137217010879793797219201197941322617217007687087222576278632468190882840597530535733696825333576273540939920752862486778267451516999604630894157294322929548499336493752180303853867874005334302233117536591433516132819065692937366229811181753955027339009907179270275206142555452035705008131695904030246251047494438690771459639533353725489837173914484094483350462518115959100169480056975697807558101942146605918889537587074878067745176636665998121836202059285961973442913227730906845548462755278376669473423249051934257992474093646907878186413936270143160476625225848451108108679383176571135373030475819100514600649620586457831460972214903069069067243709746353404734741392526969520869869519288241394928404805609402068628773327146764480317485006440932969666608447760350817209046451486203282345018859603860421289936677109007068729413519411821851428582788224801421087272710565734924837315358310226956450538504040901010678255078983757717618937206613281881618818544831063023962304720791335314848897152568581715195978234106286124521885732184508985953485715754370396161178949932634869361642502512546429622368341466254111152233978707357931264701134029731041723247101034047907398017049533631931895790464212813134611548097615565683438954710591721075161459353385333908890842405845834224023448289961923278928634537191544592570664344365642954618196662580397766216420865331240684963398447758155373426142679921020104708283457780135357395250774302341735720474321611219052433284003813011790443982249002766501097013993752490325826684447591194948419995837103849617179229292363685098202077317834754875078469307557408673102188744455886930327179581454113446887162937527389972309299818865083143254239804978086247013350281717598618782620206787047285597115771408608905587880479228968448746702796880435163425152922549451776893638827813932366895291233416387214788520497356797498394354165632836055128280495059038272710259509581462150741511527719270542254292774194958946842113910035618825668214146221077026668588912916005215158019318504819573995755519208096614036326272644946679563114284162115123405890388595917296309401194250727992142940364878728517237092652283422571664522122570605796251593819955416411430722745667894899127724348798247421718836025637111926554394868686466249427215433097638175616391589589896675817337231159163614464266159950695477633168905293998578231704966298331317922872085470307236747815590782238648268205424016732943976310422118048468218516224423719926730643346476313086254041920193000724627939415194952768460855458037731503917772318095523413313312598921715819871228582406801154246103586498955335688410656932365541761756586876991273140426132909541893579377248803714441676700653578456811096741115148473194469514516906920256778595055228305017702263918685879585216702858057082293915391058389041597605339372045178227226922876616041651769427714203367523814057600319536244670483245037524274527049000998783359363456253390331823058662604699108705876784583375562666961320647621756959391544982724723908995848853915121783748053868719659188823018537903397582959324048546041434702597966468689904990853302902462245426500803001619191260372049790561641938461388354957401161604157596363088712604962999756042466894632413507457482212546932606112324432082162151234341106663298995233063251788237303331215100303835914651302446316165834844062737214373937873249229751192666613017831365403079449752271079321650736560475083034281893276268042137955601349301276964913922185280387970535973156235509722571445809413265286520701924282089673311016582585452104604507925826341193852087405485752047265111987087252155828447562831064954389190239573961514071287157771093090193810251787460621848878646543184567035111532057950601938553608100977856414946804535465197938037935327404244286995518846664624514187382857448676763234531959070601923423870291267817808524731916211771506548325275766494134779743038406052586273510016776795836323931474514456052087669657180723343944348578704001795213695872650855467144237921539496921058977511023646253702139312771420061212245775617364698413799010821538968381848901914205470069424148449316806331606386276872246567164989820028973497706711617171636363135833304553529371969838529222023829379056629464710776468675887347741110879116110162914743753508683401875023764336356489867330326665604342864250354312683897842235682947860255136178282211159035257316772477967530638040380120946654285630696351596533932690391600237584997522637535116337001027413325091553132737928694213399257147221667534179357107660503589073104637235195342258193469462669631575427212393977182102459778228751079761266967732309783940782693395450271280588026971255056122660512312145744674118866667723917716329466885470151276330935885223101112221877314740955698831181504554509484217965849848906920145620146677085231206987418066555015445771769040702593524807429420145653597236559567012260616497359213271072324886507187200878339290177279143455188849522177026575056454546612662592842483401568310838920099329829395535846276762379966243154234028375585991607229724596697829543774687755196842561138806275879648643218587648814509529989467599064003931342592036670451267156981506444782227052744700419855865633352593561732077245724788478498713357825732771584901130287354435588310897576228649964609817065719095826276440378834139981244133043259976558715775103379683576744697524202996416287190157859259817655740501940753843835702517388243985367734782331488467847219887393040148819049424164323128990488984054091502911280318906450074109133978069966982206654189297138338159956137767796438166364396604989561130191832918299100881279881747687591898956886598241758967548591204041645977351497290442216426807649664797016933308365658684899069267129309752062037458371176737921229325943355595569416867049961658431896190845882274044516298332657249750272672428428728979760274711913504091665299622716224333288511387687180563295189438125661450418103478304881979929383894606814581430069136311264473311671623718748134851817692386456327822814740591086373160720969514210651288952426896732648079432490150300829867647030467030040724005827154417160644146969824946776309717252935941178965974076921695064687550039393773194453925301824158593273877758277954675374363462421071462271396835421495483377886098530122680497787930212156808000589609387222739975450989532123159991183229244070405813972928068352118368424284908155505466996303252551783334702078679689153400176692691347863954353786007381000384120066208358144743932784079873023570530663515457714134340124221921437226785546100809034176579756879952708951667080960176335393295391169284547354625636784532851511671820610141075803307197597515755448621296641802656183049367226719135706803066838582443826061367552161765781437051100836349904372942209931113363227136828893742945165414411060596174113857661810625380516117987232535800328417890652670884590580986248420309662568314656249324559217059954603270101600944313624615509175455481730127648516330754099623645337037660106321644016541631393455990940033357643895549939958508714945929502214653003357469400016283534378247839826371611049810501170215800545779448028480843816197740800115213280780670539406018201460033123546392164733967450726626477854901443067968838912078457578717010250032563769238714139147167717775089342540771413859876041848471654769647150073665456512531671616957279824059692464958238499836256139879453586158503000889335011316138178866778924381859356452454213612627571254025229046375619295294345238326494984333827006620378784095164933773971655244085126184090746202027933915396459014274487204828485562150435240500172052750510647799730014857503861265665494352967647652191076050114310197643376109796700268816412048996151104193715254429576616494336687429981596532398914199101082132242330559139144120080133829357794428857863606677046357834650236993551109549499648911041789088904828845397993488183242681804590667552476807348468579848549037191057188685378435889039249891943666913783654968969811125856560090085101181258746636020551576565541391812253728192054739139095409590579737014031730788919225759066185958976844729007538100823809778514346333027455593294129399447754435082590516694784191828133348779240575302690193709186955218248130228817062943582263123487113444280837056620203437434625918000837956308135171439389973266533613330410515033399255615912073927866987624964238042972491712643505221995542786091973536929102696728751871189383606603796811735930814481936590047107569865220178279328222931287922571382879415010076787526597769897635200518133202071459995784017671522753238612383248229412391157458709385008632956085235159526064266697678299817928823761345433670665041826687768356036798574595818692851221178517104107421347111385370883152784790648041949321826827793732686646464996892316412290012294655146811839209537037553416836396849977201934063374430563741802538575722060145746256910010522072777142866215809783902763943824684154396420417449697578351646700237493769156452442733630918680872213303739904025709589830317095793469981689992556418341100796617985597514204669574509110356615247842100858854962859714507751625104931076551618874259883199447475580712259121136248133052738289921777688749299297910820952154088424493163009055211138317098969182127416533204000641179168962373701018451082019055518045793835379847396422809740190427499552363894443572626906503011710840146377940881117100844047458101782606919590798766296289137007293172257350254896195125580130968207834337897436966289521793883341128733930575230331434844030518001778068560192026066177677209594451145222995210481320483330522966738895674310863099760197723015937041953248215723199143267070285354292195950935521351569546417311863643294715947821460453620045701814819418952519060265295320139955624218067508629435065387422956756813466056436318607949381942251766012284649325941039976762551459385343045215140995368984353381216860560928793448618906378130899997423193312800608022565405305468351115348294897299982877062522644363912832179234145177334050822930779154204636362345250968702558083627153116703405549498434117162305081239205192064036428122763506911576949390731450057072971583613411757015530479952551522525506147530956666816504042900317713525025452834662669253215581699296996675177392433587074067610337180740484117953101917942834625331422860622412235309064053866960085040341066256499318778479095795716260943095598824690020369278457446777722244178246607938041727191671602942001020294975271650583221666804094747364289766548744869131941728512619039639623893466977784891118396359723499308247735196185615543487483824668953878949150880456049990763587939966239388864968094964363963774655798424428872052901366387172666864543797813701996317123746623220645212025397653758753408583049050753005020114730667366279453185908184237353058858978717377710673373900428943891366939790141322529224755947769081486970464018187769616021988571940285536289555964567718154159089407793645856159233764792390953884838619340737358749116837302678689638883978529833700323615638031061595204276764917712391208285001721009475142155888144988709569816845288627979131191592243423613418036413164090798487433169926584068263175845864164887230126001179478940463754171868566561326419056703589854861980227015521501660721122058308903749495797643681358038380114706737902896819311883508910002365065645198902241968297941015566838185546658286223890400207505029685689828311416522384741421572207697863584362706539522862303504295667650933959961027898559939518666074026666631902022327208876443178080036342252706127278863776532023044631708208904880931095050659061968717788404025727870904937951952513173476474003904676509516378061360825589709506851714333478530828354722429321362594549719864842580138173899391214572033809355680776388201273555655004499482578067053815871936026582290921418432687309577338572894490489198067723096863888088705630644597660094554624835181490096934604598298422420471569660158544867532139931674359226394550144541230041364387110801269174345902761069827084153451498491607634773439835225798909314036252997995388046667846756834384468040120599568313122197130075089730765977214019152556155682694239152809546146343672832164089569875283967758332138723676129379507579908482031469569676106531460434910090737311061395314056727754006869725510726135540675628315505391744537590819698385792446710183123813179513929565467510386348140688452784984123704518609941424511547501652119123404041583407155273301796263281027068564722301598253411935336241273166618507950625806306451016879470528114326565121758244293073345839623413022647908290557796393188904055223942162543782142907575997135268667836820453910974200753502789745101755712437627053205731652550534353727114607118874421066986052621567514109399070380491936952497688281594863407950361300946049616013641421786968744027474328387951247903369518047267397840157501273166181220808979418011390243589745637128040993922959739123410258711666678060330059873802502270975840356191024825566290884001742047237839956558539455005791564781128244240964037693474961574620377198895784717742408459557626289236294461568703507400414449150615357874406302836757615434548236291909824634049779582780756594286488490144740177904927716481872302365653431069502434061428790523086725657471842821508408713567522638765867877203681522674532371245068992249649410877612035613052512908756145267851486218939145616650365041683940226074005138657663467270176595104428127401790288317291847291154085532812380625917201183052763619765468333865606204369349715104346748116738088581401740995272302387536294727947310407167284134563171920957010657655980857365144487344620319302041351942037255723242849545885089245794619455146734931447871786548824090571554241949948518861934681774988192045929661737689532165063800828095713498324983571573924926644374170520823525637370199660336664456608311553032984187766100716409294589836205765429113937914491055933501480675752095015549827163779732005775786676361726692114821909291559401571616250813358587346443669385043983661084077340314428334018668009843661703326213571443255192676316114176546147736726202712564631762775420304714522581030043823160322857799210058623727706488288888045021886588209587110137449313043445139569802384024955281338602138752043055156484244465075387295777032161658866801761809749139026163056880650892982602757827687768547378415624519487234881642634483496663628048457132068258845687630354803866586362672326495568004356242935800741859554687179527808600664947207334374160025415530860452066419261331492317910406189603849481883730005961952069285676949404302731047357287427518817023309877541810145656626404385846922200804165602676873843855856371007930249189785346886704064449619043076165045771987938906478821695642735400520255556129459516230696546814052457188658687049190579696097099173811167128263478771078373604523111040358374856913797045696041689149895464345481601825817452208944488168613463369212235992604382412688767079060274197228322163382224513713839497593041350102640708674335808638100311611108120973702329311259924070798408639664403024817212758223040851819989243887320083953688349745361493190525119523630674107361483914771273728522550163571399507201992577082873519975275255437876472396146276515225368534718131865588759343918460191340876963490594026328980907906642148687018330179422630172495988164528323599064783867866737875473531662486472410731626923661558644862876626578118346559250404439310273264735554402914371102611866905025559897370223485590904392378885805787292366338790902801352271633579250562226827510675859764617115083190028655884348687561598551543489588658384951498481171246752350653754595653101621830909100693790779257265526314317020593129563590067822943492163927916279835389528811232670978302559192041291825468690123495642389903271249951965021802206258374792449439979322852874506245724715301046953808005084817137986045210162326967627577609702432614792104397886969755556747881629675312962757971809251779653547600735086524553883293600840073558313302514172644589078427466766166986441698308224890398345065546107664682388954044041760136129730689243161525339898484185666958824203943480227534170603435622303405191361352262274647863045367785734869618366840034621676550008971893679374699068678132672194027674892126043977795477253298459700941439266035853014811813181180821487586040614581783615834977449006490399639265122323659656475317746094452003737075673835692010919650583856998105075690896065755451532532502384011727825645397355769866590598562720048346416961967713911562404150301103100800180799207986089546224569663271469913527239025413985542947120995729402133006664910173230888283930500170123403764374230638763735492451372475694142503265163040903366828579637265616920254408446546340004520455728116146101027262114095949438499743094120734599914712185808202609660633270073590779709698764479032864524376395194431335675797173986254700511717909751945911331353187257835869523445141770081826474351782163181888539776833098464692698728133925004525009661971566367800722319732343362839111347168841587020740312443072382842419122272122524236404828394150172682026685915871050151874626971738115973514683598362223206924189156484175130498869602490272344893897580322988619219278267858985746215404948819771409579782452529977797598077469706540260557733508605665831539903453337479382339309151800990439151140897743490472093787781216917249133238370923299427700799593042674982591514489429295567280078307787952819625121027836472980587995823316514232168559091069735172377967670893579052221598906017549299094931924329832142045880785910822038392789912000823363194805587733669142633089213490912957992308767022756706627172758581515166885626684514544623386861190793407188777411247012114423797017706268698641915413752200995505971228157354145711274466711285779172182879131721326782452732651262052962679673173163182206348951885870638149429139904207599863133422851768402304598621565247627499815196725420014825772942776098894820933366217967985475107231644672862257131005283763618946148279145569825757941311830366163654566988286425569734569829726775135247157921628886027774902102656596415919911725111772311672607492311316494869703796237966353084747429709658616985582937330053890738168435213822413775273182746981782150139678892128154967686950231469727299001343712838842879736289562295422700709310769564635314216407528500789634899606669578368217596985615115668712368441280878899010735463686617200061167077940199220465633591260830715734590592044541614768246474114476034715034128780735322444274332188645686018045660659537147267190566043452727358631996768812817475129335540201355856380584731555463966313201589721298227217392408014691018873764374456823646987708384605398393661447577645151183468889944764800027890892855542372142954938030528783434841436354103722391038210867836133654444356553378868259297818023283171894590388514964820386641310924036822771347415267311481487642071177188015629794930926988542225590130663173092518908834577588277305965077899964729473745073953873807391384831658879935115748129823129205162718801021165311082875672813861451060488280443553927574965880531525447990741889874191360752788089103974896140811635498420177977533165356167935484435235815013275826070771756052368171732027935689764555217874520837417787647626632331001962418450890120599039875203431655352264765992760926545118888380947667808034278564808776760862607924385902160556862970747704739436360863927868880875865890535676309164755634648991042641444866681392782402644329947275818738779551992533306692631870406597067652323532565396941481991628949947095104951267079011832263905521872236448491826561845876283751141231642277571311053377951218769705363704507310382204767767220288117151155859606516481817490298142831489007743959208998536543411460614746024555220641285986342736637301250751600675101329706743947731117788742664761140627184237857130866647912644913580646503065600740934879259474217233483087153910710729671605097580339113524908376280183933838129894246988376121948307823377309519572963711577500085894874961894871490360557266713674814494919499778793002321634615864418578325460162303310027576108141345553439769347956258923301534533699426232856129508880264852952905305767492754138533347074845346398995807481152817663365403805531507722340687104124932322009592294396739707936141275660651019719029670791079640065642999484026666954152725284051981526009655979488904795072613839147088934629655415053817361831206735715275694240180437087679345155857078454982810136483682846886523243051886705455209301386991518197741455398615061651548177710061527235413112709185570975299357496167620904805476548118916195516307585337625605598350715284965956014148636727108243188808596106866715797637784592098506306733081780339124923383909913750483777509496374399472034253219885066617408192995698766604156586143291308051226204692084414826602950665683948591067972595838149882049241716400907868310562725827088187007168285444262302166148849235639911911705526848146422815314366671395856081521148557813440921100878918192795342134198234486338072885659553205158342563106439047600762259954447322874000031909726772245286900676906933997427859190946109343225794685131738128794434295057003407341943683571958563330080792877726092098423245767409573208335547041133986764983670745423403063637887619430109389038257246295653339794073657138157832808215584429386388488841059012984276347190693934361996626555845878258694218365224471472422190132652386047596444208368878928300791530054843317545773247665112605096283569686404827758673111530781700431390645679679548753924749780343157806273783248388338576298855253876107887137668395975714436635136721239126408310812502289940156285854203106520483304810479152263814484225539543297035082386508820670896501437725739914357707170537003112719684339787246978222687215665805939323481919751832198915796019471799218013004276900152898697442409453171062921079277472076479625213236265865301136435144837245558643747376772308776986454679983302109105483492810686875507306031371403553284245119028650579432656553607166749921761165752697760525998534610295557274928576264729209545530264731950377727816193621595557085481839865875036077160629823587318736225123235209960099461676535175585445828000224372772505532297817723661983837316217748312127900439200161624102128018367067327354471387033755090313081324062254914359236575822303624842351167027968440274846652623516794873067527570628083659045330857907126102298940562655276290433216207953005469470226381773444889117236418115637262734779210918207178772549683960979462501734983781210234647378988062557357167860304406998276693439939488553321388031004825183942747268695677061766981173586706140544928205701374937346754123256145429008471466641389739824181621243041422939347501296963738942565667871469089661727505173880071766277585431988081773951455617324842370103151071133072883255471564048686293812545761834639126160556780424260840895194861332074839515732721790427641893543458192537267935246541486899352970982282669991421884137752223885097072712418055677450359586551536337467593428434759674890586223117260341627604974339273823089967127292366647745482045114073320271496919697097169871090220103238388216583654980138262283478168441800372194735350374248814639837203399211039685300709521807940884689159413593773020639611493404687373174291575266184595345126432775252988452659289048253311898162924468718196160529155068232785393484125751716078249693759587915042224279356648561534541240390990254675515936908562211669638959638110543955783923303399107914247258097711582274637588641401952640679744153434000245647492607286371047069762728012250635168142014290442511447992132682398342744658406391451168706854534316959680339179404906014538931854910669240697951803037634103674139373344635652018083706962086552460963241371763603624008492717927278996181271881715922924658728305588636983606608718000840042802170450873791560991184732588773870368982741244114541611731833671224340867773644524767729656741172168782017800422373415284817726691318573091964532067079341434697319012294745578221916358254990113123693668875863359242554494817520509922114950225047375808302502246056172369199562605225467288971564869682671612379583054847588553842368252888189914575331239995684530388683557770650710465804164530320920873647813608748210460409913258653280660069804660495752720662520534663058775577183344748661955001066453071637399666825090699733798679339933220919775685020660160799678139420150991427671884807947436798648011999492099314221263074264644342142419154257912625706898001598048488101144028038806195756359462271180429040400159404781320697668353710426152339140762891271860046223116759617221653851793126040041940421387053569493542752395093936192932764800131926346817602649679887136187290620253736517833790071117472148365725437271442853607744843535400008307233809274847039053739615324153479690405461943730770942843773220656816552939361322629668110597427892477114620477595091516426508186133868739038982544402053759293464709502295150148028742544317051497156184548043588148051231772850204687550317377137566596126851783020298416803074485435424028277619389162455193293689420782814969049412235357529849133032179175858479838412061038242295235997670058249866251935666838968388395065142171829205527761121162813372093862047403361742715757381185974780087369914324489035567949480601368478754872861582749833596501404735092869180399165060957296800429213107569827243193473565588220308525847167640909079731633116076311844293478948043381182786312001250069766144291984590659823660426213380980639051925717821279651972427679888948156674868990662257222962166741019756801195499800135352712955828405299890217015773496059668996044404088529734560484270717473159228982514463374499450765880822354253619489988698862040246246608039906597947686452555444851879854072242524125522680431056921150879479605010689628523341760581396843778409725257565394025890851222235045440603405089124182910510682860947502031078325521941736929468666176629960295065950628693769482897215930394164023944861286101534221095708958188685027501922563315691494446238720130991149771027060938122561824174443756875901681000971580013824394512908269299691582860949492414039421368206453915086346505466554635794603896590599559645423849112825351155279111231044941904070414938134978879683627137223734780640031127372840472151221923125495839328776871420140427896952436352809791742922360618091619186194665824597131608209400065547496081981089277053228288131037894768452215392463783164039231185973337298175403594054527938163823477203265038570842239445365288327830506472580173955061934582901349962973392674503715090125632053854752125184179744575044196822631634083011458817528111194217038758766178970236106547607622672571707193206506553940620774021959242933255438170355731765708470403431725616117648592657816825604936896950105733370733167061639465360006306172091064657895928519869216903155261325797247248971901678072841746960866224391482265019758369373439708228503504484165364923278420838415064657071199394259607601529311123223672693775101772228978494191320118928204887105209802201898322468329548604420885605978447585715052121958445384432454948476443167137406607095419649982910600573185207679657206632716357928593392585201185322717657710806475251842686711240951442450720701834073752665137332349738312025632546786887726965989618529826637045666910113770655256601317383012740938620149318620063849886956133276491240219534105999377966267802506119377593242198301240268139426172417417450764194342000345185651717596125494487858749186741167171124688826286626338802267821692329593837725064236467761185248534395448445535454618629817688829744198213083804696546444282095891468942062478412284419055428591143680672630946119388135059453701765545883649364589118204132257674413716350916559845169691264517913824588178654690282998875401977381490461389050265872202970551494822907389212411526055479555695284305510642551964517749921740990110127618763336655116222598486449290651539994390637489694312084879665768378865467298845021265916179389543859937185563828253238906064154140970543518524017924595830765881289692628882727116894247419191830276366687210300800316445112335143473470823049352342563463477554789900030325832021203501064919768352926435819688100845540121334121176896466032439344080765022062225639611630664400201480634216031798265655270891051970122846712613954397930692529867571053401621233493672137560689557470966640085823211878643905111141171577079314936013117757811068892717378008869112361777271947219048153683824906448377671829565579817917450462135180611122927644081301959522564185916755739867868446980930969586885549599265389027184698575819038784089877458967777479510273404678059789367734120526300387134091151936454934800946435039953070994151914804002078886662761846706772768872531687655207309215311468200381091076708332415425098759071560275136550579360098076047471598142057500346649573608584751186999371342859063568315101476567609149959487114219511231358998177288721857105750987045872619260833695623765386129818235039141462903778762308606713939294459986912635209367936142572043431479608397914918771558068660109168056194413170640007433338340684985740149116116313527953214649451273184305758385252487140313632765423302583660582334499640267871456238968243539191938565210071889929138724676972530678529828809003223530646126895631254159924804911336443260512136357968866880877662926521117120626105520712670717018343177867295356377066640288465113641824056857956865143807074165481144314126754868822543883711169584592352823777358625214836906901214403702428816096710849951162065096487977500122160047714582698762103713828809923820301628505890616157642139705054788092675155845972908698890802886460182152045420097093198928229952706149527902375918978276436137822979931897127926545036161044931855289510729440595441228915500486909458225885158398702122348597257730306790429611133877761537428296325382086256404987619811417668961397910077820149515239024973405818068219214770710483843202635866015909626031982493890520813151136857252714044955802176630168683522398491978255528851320310065541585561792941590763087509845605703530850475419160417004503691159331524810779484221684335135165230307433682897006731429984398369711863394972734849214797665517679287461137151877943012436126593071880928288832072762648612472622658545519180852547798974550733962590660307363430975208781847393816931949313123781881673465897054317389285109140083250135273306351350982042777175192029625052491777982229203319444731954982528729780038617634671853098183329427243879303283167331319954623042192689647462310563265493600825622725275492572140060912378567507647912693222496129496223761115591752297775754444361216003828857162245149596730859475820399865223098272916196142424218257904679997705025427319360350383498186691846140610857590097996447270379123813905094702377879553447008173593128432746696998112535659163909625070034556868025756467178983132231792644262959850739739685403949052189658693851178504195980527057474302590318147778409599576970114700632903361471180198467405573960629037333587043749844028832342208897167914912851420929468797694017961986048903711895858399252862634324535982069723423764192816506439657525170312296654578310565799404325332038517020601643575416054820509011227162545033208346533717172406651985351664374139316219573456595296667927554020850140411865782779890777883083507333907880744995360684039385922943084552171517848119375667231719033173391334197593908741967539435232344164625061363026493556780102508327161171670557743098726132413693889692100085907982599271493106432598192269741179281633907641778323212717423503201573857693975037186025421777290577228120872723735694286343804314063856473424421045027892952940220487097836816773617976853258344318330970539521638305375809902162342021478249235705001917040715108127310811682699155184826848001036121510806395275794998720437415415733451861656147957456233766680188091133279656009856848600753803481995408510340771321142663195589726091808826358807102767990322465213925221693901004112243634355928138026760750453165757008942853515697232423956152467641232633892573593362802072044743162997851076860283143237700148222929846922691401265005312279426588042991904180824799081998970795153203676117894458169943153611715402774945253751265651904127325211121615769537371223283681709142118029079634161782469189314865046945587377707837192887531755665626699367147086381961069025476265005484992192811351652880875404601515224453427044208570849465735687505689900374981161921415202143397967171597942835551638674241989638000957674350746036415262352345171012258609274929786532680863298812507591415543631278659639077444260778777132176253574092953914549031179375931332565592011349931994464615826788809748015045775175672173335839705387560308296579388509858171273770968963008260825050943358462360919688086395571087773097764499111534501239632619077488228678363854048988783622488822949226785961251282827518021296050044419033120773415770754042714214238120977764236742267295230068267109633525331433769555916054974024596874244561811356766207366045356249630475082855937821532139304900224408599939456490521069628534067192965427510376601247694943015349579194313245121937673504107046781683813778654600144785179538318445354383098054786260191294300760108192164739073162143259949449729604674254558029764247529329433545940711653043551514167896006561045888419525175437547023100624436075732316753340178754720772490193486282482778739069959665107435555965093057908963634652384539695786074152275270544196442942760825604317944956412146545138625168882523299416516743261195494968969463542644845825262026789180570912088174732637564603670572113861716250095245615664929821716173029702667028611532037868649764219962061057795332505369943607894559067882027734341348444023380363280772675890698205729369326671314556505814157113428989139048337097594617658628232896788263526377565183208597293230319537771306190859700443471529895278162367151945291870389959714941776812297277574942768145740353828378515482139172330600777716784062257000442281103679202709002944263484406565584385381845403272421396387178258923441309258075834076467675102537634229608212275868769353039331561549340201795789295588208057938196161407625113614565149450450976080170337192967561910495815668259089755058175284739696677619727378043725273381254358135450503291139790542021347281341073113262919333232418509315773745196927466236479006231410645297610919206007823828861822611016015349879940092147936947480777539934398346572331868432397942804034716488131911918915475870077321257859549293994369291619595207704254678176499433022286243042796671249499227981052607375308743090291377257213020519840874576721585466566213220964330398201237535543995522488047255404578179281683657985914515755270433601696802810690032477743872972895000047510078460452192613334625200635213923495973957915116829912644416450639301770440294816356634720485382959976615585507284640515371347920850078880408393418746982629561365276740988654980034183899669148266845368561085948548088143785071349774072512074908568848792213673334569801484563783227508846644330079930273016023479804593176982934406972731068340638276148979827782282515385427480128160221238006516768508831059662144844239183336326233225343190979405155859868092210610194450928483077001994488730464929000645055965466944802493867324434056775372335606677177665507893862599287203496976251722229750761422429410576468551385812853281571241015509840840670524835678871405706689488123497738388725559880763068341569359879903392828720900313559614924943351875623910014227887666088647712897516689959576654349163684542059147517362261978097226478188941436752982300086422741322024841469079597988896345924225489427275286599205699900920273331867232360456039713093053901037947788856157547159600624571716581462005306625497866878155660217573056764540447890478820486294200921598656402152374011171912101033468304684022611265584469454928691474981273379855170169625668983780021314450549661364519444827726444500354043543375348212465207202949383096300614475235717758860231912866468952590916946534147605209602233740703443311235633104114507444471801184226871699821123012795460307074187877187385797669963238997190142424040625925786048200146858041441358573599577715144602990175617681854391055133534839454896032018846606815144551307129741318923662251871915626651561953946796660204630024637816440684716348083767738062554185081122693883911283709669965490059017041482124738588726736600318993077845283983791809046228537983018042164099979848670234566982603248457770348279168892486410839806993389297980645860056227041806181171767916244464318222473642753924327547218974497320695218057577947996506762260827627658818719606376345611856444715045975233068186026192707343849598820576520673700612498019354802213597391026255078357314263637539916612609943072067091583115866530341867909776076759471558337230334402943158730608837730479881811644359401092327404514460404369072899189880794879402039682643074979835602804696227598510323715287569139825138654206417834964551760915649311849016386212356270028316302018091410496978197394329940723574836613577529903199241217571545306129202590495685474338714831823136123149997593067024860537579254744933161861830802814868095668644789776311440921992679785493434788928106989007426629653560039784794224101938418617770037651511642048578889183901706616105324739290999736774192199504379157599950159397717322261711142989368178064406450641254327005865566693048285610114995375206681095297685047028874293331996469594224295985945501032018735378138559424412034243000403026418200354960030391814517614824231302710827568300426029141153116981652327245787572225711697414196670236952571127070874605823300667812701027122919375929659993504774413958766322917355196426112932389825568202440613404505876665683894815997984348385708107634999224694781168283594779702461648143033447845512338333960304698552659995318870894791089464425097474241619919969156565388673279523191425701407559333261417882513158829663063567426359503658026454827738302090014503490438362229397565313142191685647333018475546099444604793963402138940319850814190975982957530370812173314860000697923884890476227531837488084810983778196027548647102313315863000658755834847302241039406711143520647052200530997280140479002855774793432375672944063377870890217978545713966111320388561614160840014261511375004286354680097799087860674984243498539849386272815582171200081057503089194360118763665152762414703359226733734518119021940043664226796866191023298390067514632542213577177692555505920569630742986236459517848460936536587517095469388887468259952084811100669673900582885745063413591540303206939183748361089920257425305953008463559191157942309160565983046278111478694739843967097637017651073486590351522425321004076076903001810768400444025377172006256651399090932087600137076792869128531979208026833903683944900679019760294333851991738011171532872820849328440845036095686295766904820670112467780977888671391710845419687163735065905343008658587797881033841013896567556003893947286948163744225154227119727993714096134277965576998642296801476862864708414352755895208761579408438549597350306157959983804690131291088703756931921713190964557410226767887346269662261804437358275335462645708195530868410725889693779394983916385677424624871811955584914011015696919000394640982933772241245543761734454318817076883770833880992496344682851690774443146482233277351087401215480445430997461863674685608887513622125930663950052184814266902018421053073904724110624035953275118938679945679378449358888383195984002843344126690729344609604166678079226684907397182456865246715558512320227467960226421495520011304775512594349616216382229657679167445750093133217312226100172093552675037439750083833623387957165168020046580942606152475073306850968605281569962867559411131106977219623894486812151873714349698323106995077824854222887576131415803695827611211973374386021762359696085729604475918984128249276312199439524704198624352140648054312674885955866848722431312333030300247223737324777323846105115082402269570917981271783610480646196358536778281432727025660411414503787420118123131702560473799540795262960860575319046861477653869480021246084970079257566589275493375895663564981586329494924616818648290703392762804729289288447706027551380515391582044688117877663770888262683489046386129772881905304855873987500497784999826952684085620985302622155910122089807158798699130851642595472332693126352699363441161273485595385252704469241246825371349256847837243056151409613747808924776443067823169778289028135521718015287384484112486233876918871465360038940343044900722189876771273942709374991628480236094928223242310348189338007585907927841293709381997354952614922759947324387621002830102824787218521703573202448616119507409645446243381244533062083715953053412706390618307642792072718960744565931901695919551450406303855487089763433794872899081576277770038651098445052461638278378939236210067185763722338295455669729207038347071845078618148883887459630537640246018864871884548532974508532118912219064568240885649687300048386212461176462328834784616475285459312963759172805412201240501987108931449887296937957630816171157165803390764860719703609244191082095662860906444737018977249778048850782251009243994067571694615515589539409664910512741733855090502172269192116092517115598207017524004060968850192838668045446272281292480394434452207678787767383429610392078820637895286315780848716984839807741822261077767210465253215026199603485643355421725420145986998243541014992431602219537943823279790990098449815258721240229976590342062515770461106244864996042190160027223635968877939492294598566504339834408603136602037650456388994512112154682274515336353145966806064647711848165838269398404325805687462055378713671417021740046789933291325246105257725058460528733310143841764372999487440309004573109338970676814596805960915475503717982602122763441649977314098249382269142909634654697473436206232825142485018744317860522119377348765381507491569241271948777195006814489457918404806205331985729246382403951986628845701399809232857662533570773966001889894542469069746383156639748455919522481748048723339794131125834532215257799086180007747572058851160057892657937612654132811532737972919182143471398865166771921393006458104101460415779196010940476438682628349284780467317286724423646986542636728509920164813778139129009195810763902663707714095237667808207559520347579027314175953954208110605818695769751107742588133993201519132613632084863856688073150550082408892791407082167425431430422829669849191656922950068379022519822982476905136680067031650415400965825733809132349801698892969839058098091994307970018119651957601095359820768300439063319414459524017918771743019501497380584771934395965818477974882961945597071266851491948924076128534268492358028644387924178908636000005314053369362427819900118978760861897745398801467319411064567223723578239007557933804492620965764997001306235888085343432904115929422060315436651769961360323645147742630049978355737761905683278851465019443783828156355290086638921814458566162289899724459695020890431849167307031928437207836540247221480429063901629282122504807098877485532396872473376863672595093125336409437460342224471520086435159062036205767927704220137420150687865996883579769794212021992881310941644409846970179013335687821258665755302582165870632782693014307282186577376350227100110795706164038674055152054389408619733527999523497721848601963678524750054238016408934743522891733411562833511243998888802211159137725844395799005010966842075274619771579533426135211058883887568891300303588257897530502191395430363008697174299400875039585100198988677656537267758312570347903924244686931182188899706456903909668749706485071660559357709934748359205946643584549428344817359586292419293378423756065503677461589141463818803271367930272267831662576383128331735879781422755130257477195544524831429445185912786769475732972775032684925082394254906007433312371866782035205731648442345827233544402138954120964833647078353959856980754645299572965502092580252472525201688226263478609757705388201930043143813216234270186616793345146629427411963520745888217853932116057974990041311893812185518287938723455372456041403901805374625766216179568989057889808123389148899532771871351944734216240534141293977959326995561508263205670598930630397692678006390249479681590635679526715881010356833538431460368087711401069597466052544387395626679136916886503125685654112294672575707624881763230701917186500387815302550425118405769137294263643787808160845062909393999016583774615158816880996156092636855904502979261846147434463447277540565940305665414857287144289268112208580231222761016677664444831484800162025716994220578827510334514065211073298902312569670587751317073884772784375044616308853503835085765528273717100647915914412659688777492875919182111737470411898642782219073595278622071089415651618771450598236421974497823618742663805165100651066783291929064293997587588339340471692836166192756627884554284970888246396513905816081187836659458693118796950384779594980410151580122969782796685367147011031214358481173126194941374567666824822042189232397938943273640225523652909627696965001593018379867794174322964827187607026658087785834538159900303137859447464361144513644197921012603795385491725560824143273671321396419967876084433521521988856926898345421856135197795317879229324443156702985715855283126566485754966845902065697062662880431098922260251134077297831399025855027482973472281111854269670341959271742440736387895048713206598307687237131194089429802594020285469945616514897840272571578289150698584780058908597376265091415967037582280180896581111454470723871677906611667063215289235779389417454996047662669969136838254286066491783224052221118753559261311073337728373301520409195508060470899321940476426731948357685355027631366703595035035317289252423472958297175604623381778420192434095713614303414729328229621717042021250950322417952585498982672720064083593074589815312009232234784929455794947478072322135642647660291738689514477386336738131313712360198583633028867655671392485735332852830256372937583862623548944513844577009723892618757333316044254428058883536222473035005284700027238005795990290230447258775093351631930910235541390909193894351091237817816592592674354125803362476556341506280710172162684759291759663384412713903647323743057183969895559238311810103764244676263684855085170859474290012492575166331450694207401010511814582109232801822298306323900651181917996610693472130908009297762330857325959813062252997680148913966940684063235549659887651658728447839483160704607865691302386126490998050943586482435009267086521138149020658933268102171867623850259662779300306167564347010663206498212729777109245512132059775229953270623993623160052154684240130850656446947323665088143182203666025407484938272765638138112861037380138236538796442553547429939437464508620147124331344257601619591889383306107749943929653213167975387795868997811222731452805020737747121669569035987839988882422732041221753826863783985609385541157061582337036697687028057385990059108848773213667276958065874153456112599684645469383088856632809183383468452694738217293180830820973061416062000734756230056354441860014824738273525842481695430953085615810117724556084301071075052904569773703059590405625572228014249409366184875235976941808098964864790109572039162407781653879941657282982272196017736048723186596847686322819331197503596138698510102719305929734287813349614583537122322917595928231954537639755139602131066565380248557589784167876811355018870286171840133638609557640380395954728353276106246387919355652863995349066570550269806557083385267580599975603718907903159840571231018471160953851513209615091566628314654268577699316064857271508784126728191579909424550475759833759054592929260327540352820732209347689961597206545946586171384358101366720909604807543718040871856180683511153463469231822843529474820631095245884806601085476041704916177476031556487223304679922040223279670865287963652877047609475045352682685258534782590085323135342510345132876029764989371878847588324288982479276385224428582638672357012488389855279589683015528822708780737769281508437826839713885020034733280864695802224534960726257776895199283342377202166476328666690070187973550826524756194792932438137787198451159772697520939958672871037170771096716299090668544760326881363170655175183163475346316351262381752014126169527825464656440909830908348400681051594948208258210488113882752127465843717469510527266923052441214538485615459919727799129901865136221203293838369022228596263996295690085912971096735238794828045561063508757183591936991220653908511695227683083286845191092536100159700377725105712608761196305790839132514379924797579916082838701530293230668252043232374158295963822458919026693420529212795293799525544854125228387775350020683962893205646259543171647418596550274369686999107869454079176970033980525288627248488962048095267863232696145562196045607135831346201421807642528766222802850841921726562764783284385233694579424233986042536892154135718174091145369863100158627297040140918921035637424306592949422470208798719252385602148861489486970019933171502779765095105240041577806519794091701852050484478931209406524584830882474550812210651036333289010056004621575329914072685503985246262524159013330314218546081025751841995520683124258926897722517009141617795646270972990066104719644907699242242103348506799256453701639389598848901176318041175750887424931807149942454478264857111505927359464912873303766595196479157092520474127119748141753426851955528956274513891426554692130314184198899294236961494589841352450078702317718499517748877516106079317106057739720603232922965485593816113314037392574988700772469955406225633363123097821213115928702286234112389658484763613829105513932040834625808476760059041562270697785260340733494752072712895832980919455311237753465480008470879166552534785299382394775642008096087973735493297490940676864748104572775266552607093716216687821869899688828292951547720335328229489076819729898004774115191794974086844892669892452735116192574684083774320397775511418888689492710908971252501456604284829795770467102627217217933196805654476801738430756106468330214969303363643717057383275665485221463317698969506797257122630770605496098282564926816562154463081112000865804144287346116354969738392725233718791544376225425665993993016644706662558174034935070212132854589981764969586464000272554276297498741132859112912685354460566098134845034807415452440159839667292475818624090940047797314154543092996940708017556801055672870954750342288693426964545400086374004868263225347497989330290610256991617271254759441466348561982773658416790158708793593117230110610654120498400712288131265969766164398204054984342720509939733760151311398473351346426802922046072901677718059884498260780281492778351255109896074513731817508075373629786668336992560208627781808101005198649565021539949533512605544686063465835164233595382531421441075118523359266502789627696649490621395447744760914463025672495854250281462100240035700126061001107275955240913941964854307255861198394983814166292408750673993668522280618696878202936876297128326360093761103382473580240478056697261168316432852571444032811498515838475843822250044974522654194781303608119098880296208276270451896802513835501467645368870067583654013570888414748334516433675805093939135736743562622201506445678959615228809788051989468517349241456274456358666897087250225297753662887833021713773709553725379806670309056140614990245934224011575904078601625150685709932803368709503353685173999053444146442539100445216846861682435707933615232660985293410830710538747847759814231470960210817663775908397368754573368994647170148925158151517945157141531398109368015586857706920107147282668516205558238679041388347855532580994791082188115050666310447696664802425572652141247894850127945764615423490354960859804780021157657685512779581214754514163792857460516607475510100897000557670317052770513417234978426768155839977459510507463195348051314362619292948276495852973267765819724475824569165429607580756492247999884895052201927848015227559615229959979098146503107306545258701934431621212507609146610751350972200400518660517510308251303408155766565789069822424697741995151937391444315746969028285078210198703735559611887681917880389135088513803672851441124798728957317991362318222294508255070080561433004612874741233124180901945741931621758362231360575120745532618077845864240714582259486116607375490666413578424480171242925827167453939093779626776433003919059498457885303928594769274314545036765448082436196264797263660433028421514698297719972554854011739284369697017231173145120632909138730117706828394398410165739839126206737740666004584222893315093369811685198331305011748640464655165633979073046848295411386174504311729118983217865393235019486450975937751813436404342660344293353583347158955669075964982188697718576374908485771536991883382201715408039953426046163189505326284075218344571623209055336407025536740040232350901237800972845607800697714009784521365985489038396050171390860801063171110719439692473429019463126043424148236517955091084159710682228330158114901106572411722338941028113696688358627744123580394754630742366997728265996758778315709654854171844826251573915039561627022972165409872904501915136671110513678857266219180902691884945883128401573901951638492190828215050221397437357966655312426585158871723225877664558787986838192958744056786515868201850370799312206573195230302522672563959644085396488628422514833383316549045372929288748222181474821084800144316528210142935509946796031196344213377378746909723592078530365413808136494614262192563811361305129682807798684114537580896782605493900810835960656064428500882863998683266068440155202760191534893312397322060885612830429838505674173240478771658559327118144952940785213213282736289729137112662415882477790125574545614704681694395140632014033133938661913997172851090058751819985856151762541745565519981182704036493174650510219292702681328480184532273976173744121980875296659780911070173671817830668054924830445262844005832344219953665904085293098652272955281071665577791119815406738291083915233815489726472822564663995051834812435766658731687597765027880449620063761699746981154667651933284782117780089026072162523137405465196354536333684104634921251857220066098878908532178768504224266155335900515876330331275795831022126432089687022720437903274406325102714497137783644400588639568842749741026447667530485841321423375604186118874645464984842224683883420332804293714294568410863575157304296881043067119089519053203674499541608936144234842288951295730976146333196116813551170508606815072267042706562736782755638778034964217326923643439450355923636009478093556344087151335286682960422307666668396534508025523165758343516544532660228839421715063576083132459566450995057820511638116013874736005335082450666399346857927884931915690231953204340572766950358103268061206362123215436509660552528537021333798862613462789992992149286541858822538425224550998831448017893354329371818463144070247350969429767896207850884402649458023587764627110375737600105271393294818323672260305111285129283860590290762429628895224634698938974927972568636716359752201331048961860185606481682692332728845693582854096091128001075989142773922986295648027737927742287490649561042579380908554575367556188229233400604154471279103560427976100791170219361766367004697231069306083391808873384948913218510065074308945849694161265880536551592271900663026402284611021216621295205920464062768883635973162308031280987188295890492318881060237604002964593416029066405217316496492272613448371865995037639266980285639671354644305958902614054794144094749503865458656725621822023478599516469520649976047208402184607437285210441254825026295760291956849717901292487100456884508292218269963499487524926763736531187021166950787465835843369504831463485696891270021012888075239909628043168504055062817288137882696533617739374098864479149839309333249068916258335991897075473491030569169942275719296436728406191571188562315685608324672124356669018191642419874110677440819485424328147101224468267048643632911083396064205807497833518726933045097049838890663356996040707335906472615326482337130278988869842561735393738383991383601098847968806302154518522038888284359718103440570463687358301670031058731886603532465560976524275628405694123455227992633193485458810568851753362252024227893861537006498867629653498761415807669867799498058434511053865827925626650950899023323075596645390581761105979679868147551587879006925383777610114098314855463824581065240497930069604474076355794487318308705938705005535709510942821655947519479754829252503326823287668116844707134003123063453909629433409474380959300731138093220377164184471824697925577825480634151074144398030051879335065076939427102129306153792783327897243445791313440291054526159061552143806355927283544336310071919572999668970894654384308967138874490247961036522042988499764486142657695997862673482764673367552112916890994942757709227526273676969107128396948626602769948825357303510547352818606346805864266004796134469773332118504688003172716724891221245217933708820034430460530331868035602521940355867288939519121058600839887600791798637145324127028491444277468127279560601445634848655109905399535977894288087617354382780882575943442001106356366794311505164827075124857439746670896568181083154407222852720484047505730158873107712067855637626973616092270799441512742410115231218206507670927458736121032466133999345956927157010319058819944912234249823853809596503213891059738134571700981123727993051067590002552552043616352455241339080778463444485896329510128233866546795628757336714234894295889185986368267213258241790820175820887265928700909808379133925546569128640880268532359978850339130683292123603455938658124014505248653699757539060883181453282834861183681223492310283640062073622300967688401230374627709455442916502604940019083347808965740338569116106420195590343864384155713602357098846677605651207739013975427002396352234220527085044261121989759971503663459254955599169434460339986991864359005116982160818705118532747421471639561896485130375857895524203160482083750701658405174992189917407485728238277969081685708085688488748018143386608272243692803220256296713979522923763049398280066879633155919822632989541742208321970182966958620763681791980913414184505673899752057690695932993602710014469083084458752487887959016133989057751848787626629690586784110138734153029811848403615179144561090067221937812514145600113727666217287305290800836144995801170654875155936340928659411824654123264783863188567231920006119241452604403929346610000560349108051980795563127428844588724882395759231376948592913279230204381415158210494163454507380474072072356340474720520894681221720215706465580318100617948176031744733239342529296265396710087160781515315083245736711402516174543354614105328135721680085694018244317671240305316165752047454211314484109254829237966687633601596658847342877408743348140295393499029597528618796455186624018222705306911573332464059581370975572435109687550242778895934220238995605929158971458683394110448342208998695997502274137476004947950474420616741816031439065028266413805482862449699651341968313723440385830651583399798990322491373680074508329511409454218632102469826885079556451724065080501325995771109919533134427933199655706855996017465556943750271778625441024177553934476670212704852274194674899442543503449476491876321366589283754710291687467616786698193467492496542201402604129010639375472906969701774881617201647508309874606370843466453962181894501370657810130562116457662594069871539416922153257516692670018095948493448357772846503393289721586607646728200816319330760051824349728702339023797878743347590133449952267169558569732398281389002226177733808466822478362502966606487534999799585780689147371901095106042689401253521894988001980543081084257570595835211840188646379328074526491964411432812794223470150818750167227706366684870524723687668766981800043480719469441952245834248165177035879142748769226846884674475951604279720442179306508704072277246417683836306581283456591795444835488230253254490068171856581136619704550133501061508330714855375527369381534204884775026237764321181569714308481782007484439843366657981576802153840846481845825268166687421593855037786570403725373624058762623856108351379528023845739768533009330925235920966511245721520490062679392015240604901460663941550512963401676058691322098764680537064134351872386942056004199125607436012099210884948189257865747920721765488851218289898585153929917184777681401802242856184701913416464721141281677297454084157079689363477695662288348504957131477985797576476945718663155308477794111811638417027821672732398010126241304908960151925684326790193310472052560670636585885552527702304465126698039030519799897890899322770327601584597843885843023039133599193642007051986694940273784615563640882006582178637567049851590406768646572961162044281055771077211064140167730773258539600543895477701651786057675579456906313378501065558371307929729674727377213112998308802959645702041358248906042209500978135583465976647629328809322579413839448048972433258326929878095830221839742134175730023035710238609381394412419422699227790329088090506162732619254414951670570717109355858598361009475643466585476004805151915270182478495621083112481585884707923407186807424935901041822201122131782423289744446411857570624698124658995708994218666754342855984316975997853777554376211950001583731804040736714613597509975676070038465092775117211132122109061720614378753567956937429881743962395546657872667033803799330559899984428523413750310775909968615642394460778613530882525930292934178618218092163411139001815805967882699054325208926499810613070631552686381786843018135188385423329372953481673614310867248907879559762357332942077116987142652589039415198284650667696398740477734921057435546729956263877971027461463450099296335949954468764303673045818357493298024386140537135864849093684424219641590323709219913428896337292572647682196653790376927746146994700278176351530440156334787261901200352625006614697606275803067279948584973590346974639171154686600665623666902673654205757545885572679196574731859024105616811959230144779025994743357789174252042199039778028063975672098679645563689012600211680007361123298302739173164691845583658055928635728875566445495398380409799722817214887593028388555394257899453719341808111984913256751815208650904258355194754807970191644497362226966449137605239500885806857888546580468263664161483728795363625794925887413811043634098685145873459230897260038274946578727578484212790477171112580517915594643648604384269619419775300451619471474064554683869467923033358192064753289365794191442085380017817565410380278502320186905769452146069754299026586829516913183253402198148358507369919041376208317103389489053609880203545556637833060205579541584258207216960938296786906327118204796760995162067606920980519746936994249391644846070203195994833130169704945753499771746715101905743912575309243958177370277125568812153888080960716257729219316882886958154327711533586160479604558077587782462825479031455191410209006201131085819322692523060932908192056160785861418888287335514103663097613265700160324076129668169502245148687572248993583933512221982541281905091780471436722901102747242441528706136648906043785656787811635987206524921895788961557470390643168013040028114902030463136830270819292353626762765566906539606247844421402460749434924873012723282911718423246935946251731706529958349058371549087684718974385432105872013977799770530799844628558825742923078640086528942358808118291192312988271345392717233280674295435096234808761555837967548055223716913145182585994534209516884852715532243030699121581102743136357892930501968229205449615567972899897108079478045314288955587182998680513041762375501373804543958234025572701096945931194183444333789721440651568692253365610753100052320059210739547204533606786402281138231284630022210587250895058581570752728047262992640126021209740834986942938719923504831207676489753264268334463046003321854172126011380595564456681865252603125352063366524110526787707002875748502568462021313465554597541088205086448103467390554562831748616864453079631584083546934824675560266843528832262445449160621762102214754058087545469228085514045871906118392762118513191369833750835929072508980241247705510065256901860326047966173345049183652218410691913325048638833637466992136440293510049502213165667815819006869415061164742624029146872631743477962478320234803023714887648454567363090422572741406425079113815248930143810467753001847268304385059000121586419194392731489834372295437841467777555948254742107392188561170963656362731290917765706028669702936837365538690612649160771616014639783744685504090412388908164833768606573808446638232797200306787793654191961735697474478507838468611554139372829499907474783788543641799976943509360893474614303291358077972906500297560658021669983707635515683667426218159499867225510812864180757304134286229924321042729706131782270115076298455252715724851151059966784533586690177938629964337791279624016756156752255933169854518922751687971963456546606481980098017546106431547674007140684174299946590058168830938948451300831459535021040354884500901005865619144035727016948620515297208427622713661445309318250624738815445256786669731949797131129349250431104932535456141883193954972356824784519893402509411394421489101015618768380417990526214237295533063939590032603307494888785257216799751390053090062842602382383183456365242455693854773594596506836783949833478416496341126856600752761652632898930231207609383614825232375238201327121234611104784845756197520595686729239766165982459872969584890298463593100265376221382882189024335156563380793819842253694824303333354015104592830442239022414726941909704717954563721698980538313716329328266891023630653505847356504765426672920507352966493711232989670600503392765390453303190788615293807908790795854724401403834840589378991393292522066282671731551671051807674404497887496573911894939338640439631892509646446147989172934394767787984974252221885544346451548356714307044358621700140420265633795604025415027602919946306647002783120047146971932708556391487388952966172980209321654427958096901750337412142339020304215068922041118701271246142061489885483764981719764773416842223085627761559979188655652471991217849838171429572435143912309583893707950584335606303544690182272388590949327768435339036632922525419199810491538804834903925219568557488502114525268198037223909750000559866691294980666144171627595300235214530403107660879178995110200585123246766260152193158252254511813584638722520052055494670577171634505508648683046642385810378143554447547335641500989029902453971849476516182742473601920192326957148381194521538998326258584148508309671653166222356609668622738867033396016274662976701918874303821706117278062687117855638745063508844445033875313216061451367603398719743574793527445792434666575607597908196245874894839633936060993199398847833076670948002586299260006128108758717542558875273388783481035359079901669837123594571282464735223191135272257466314518819911008921105735344120601524482872361616895619139326383284054053171190925706635917948122511552524465720698021675431367173736884114425944464624281522081321967386292212463785836988016365346778640009385007050609105585731177654105475288391039334158885791438946953062230453758882903164796772139752462310792536578777770680916002942224857290438419470841880080168374678489354630938096772290046861449379208756225657192856184381872531638682958146655857643322032281236896321785311088942704097620652517886781367194184944846136272239476968308044005204432132672622329417950011481502768696445429361966212120962910136945474006981835028630452480484301928606722435381052358612830744147194196167064276401091149190304613774077080303917119731913236296508947570790325166028743540828458752656553455652198336066240920838943453100436199138596030464209247217002557390477143428116323001153449381261274988185286373959376953275905202303281950192820833150233425433728441327021014246876234171678906860859951454894903986669923952198132297477422821197052378483966147611585292962249649563324455067053743876472998169999799759000476248425260859982599707997793018282467100096050342515873864525479389168080290505909500535382469449951953564639285762776814465072075788763128787762918370339589567185134638145729562341262661716326933397706560507497968389879130622743914419466944668430476821922978181847772859886766296093117511588947026472056543185021240828138677424541211205836518280472493119844363778400245692337773707750092502822355162223248495836264172536011240584843683110745894969408986114412948334933699449496338227497757482565201538415707710578057777298411860592699677930822158825607208626921881542406978588483107768874801162779948593806242766436404654890365925353295183829644313902614613896336830431879545437317504027876628975885951386478175629330350448045986576014692775600866422411136880447140964323594742465607322784986140291492521696350439626232690449349400897249487145022376451386868309856869694428600590489659339724045388420142328988180029162533747935224105823757494807451513325669684036956925399793326822597319149312569912850617615460280763732271610506562213958636653134703700354728585497881408273350534931202682142868174579621040931355147284000759150302177463427486677469951344677982963304277343193835707829019574415650410416061622512531792882017268750208929458282654342071136695351157253244520247886437520385222529631201134358882708521493287606260006894996286035898146034922159995776697511838525708141475000996047998948842974453019582651758018562807795079347980154152504246590374488996688398103772704674665113826091038263391106969590913590726289455578819708700912435081709895924315031485588938522441329352978128933500587922211949873208410380669652608448431727117766316737584069497829754013438330770039844528460923101900763391430350582768918757632924809775599932228015335615708050176026796483378015236963813658038797553138796314550122063350074385238073986965692343859256452835938150201772283531687428739285346330127938844693128170457815738443575231949434200463999153293650496833327207465106330245020162577671684460828987917218102855625012512484786347918823836799017236085466590923357565109212723806634007768157998141985884533919464773488520436126617962815137508129861262712219677290929876503509812899335541240543216101602946411062920877090698421515992746773944499979999965655111532782937376725852388258228610177274672398891596851793332923140995459290611011818479997758030991042227170312618977205969340724194151539673003979990611711757459727624511327375936279541224379721443637253681856734237563148402207408737052390440137928442613412868335483795325119656023218197874923639539099844375388777500437909727631104168386730645937299831943292430620086693415620101489929441622121010363452007266594854805545932450495337741330217012588990805642024215604435782173175115153148714577131561804798329926670870043902103996591158627275626794835065947811812820056220160097811274110112518074364138735556384530203948776522104746457093084204511459664056959128606569279291235504616379764388421565354551162489446797763750452244292437694032815374785385274505769926997709820526254909961993054299848762881285426815437156814547679980270689020103720380122842430202603224746128064535575761735053983540316859114815934202835964268615232380977917371313973563126095506738687026421684020711786679282017039829699922100307105087219898067121318084695202785793763367691326192323511346570138896569289097075210591385716767147302238704681328428071680870546432192120423965278730069678211379151183465332568946262641802173743729403821350607908750951925279970016429501759910340807030895900815977129276150106523329839449502701549384760883121841360273666833220186552597756107142356220876073040524977935505068806894551090963845238681987803448823695251264327162292468836747677569316165950576295602680868806544312683291208557331955720628412622153804056884291466988064533110505847031285753623140408245913150067433479486211977067610717034238614220381321617801809060064175242318264073133648638594866599816419666153610500938642785912672747285006220424053146348431199916163202634265995790483266275799192297949397664558816557120701542874781891558413784078492022402191968675465103154374831343531085689821759147216060901366756109411471338724955209753053294274994628656295957557151939117101378931879017873474026210534260914324348616228015743465148899143259805042215899915480754581062940000334493282408562353372012829486532805034220289087018379360872375420762140604153462892148573855824620977742356894017689012200559892995349835808658315005515735984226283629442646221818063974398071968178002396333156393286738487055703662787861760872341347581186272374927319281719484588733573251442085137934830829044543370354347507559879124237153270407447096265813950289756328501757342524684063434289704277635652924413590833205823411088250496842383118945963480312486106247022561993238613347135344402312137416033539445805204721412294175081794988699818156838095595688634872061996118209784369259001828528252568064662511199696037440094255688895648448261415943682775589172702332259322832287454959120701566069298670981443558794037415254568686930310577597675404689322009570165949003829252744905160149817550714369007144662993656860188279512366024952166011377863352679039197396032877641085229496615153352675112093189362116921872923384946512819655592501211807487722701612811108650495958508297768443033562247990314708046996470042261620766936533760880315741411526597776733126681657683152688662860662016388635329747814994420336174880428982145261398908773763381337651221726186481294718035971904955905928621351491443625146032202687712820487171594765907899191503425669159580163728972530481795083559349626089071106526559051636038410826097998585269431706256446750314467337139942584510024799267073902102134995680681821042942682736110521337873569043059656571454676951501500799758212358425927687919428535492120964784295651368270339977818828741355098714384165890968538761871985294564125919968383036694500026632995329829668910646379011965837973249874386173058854808672842742819808986681785837295677319655261150666118309073312555320788606288361891729639233734877707793669603958381328082165536395498712504717534609528730045672121558807124707098328226707821445486094082877073328849648705403618635690026678343541091344085633049974174469762516632438818006028638164206063068699697519640917883840413596531616818529194061856071224475036289756369849802614634298741494855173543563429584488057485740209321628346957944678772665340537917445194949146016265459599893948924544119813293013050437230220363299853923028921714104901552647110310941817926210588448218935123291832317128997584088204006578194722653023660256979574162001559265615551659677601743903624413369312248916122004981685689341803867531420546392018426592697073706148016123006397869106338922705106448001456305195030720876599870546309088254836033485510453194751894809246657302592460036636957634037583295639863638626160530968416079933443155627966322566262602977258870297094376505545724864158210416562227828495146102680575469647691991886364659735392799602558005995397297231637204410337070315950766590415663251812255584207185478455582410120811796770473219516524286130305647783625654673487007843053068689878210584957549062573411767078548380209890901124330530404612745136763244165010679053769057218843085218652728830912130756441346424725844434698883437816017121574489420306531518758591684185576021156460608462074252147195925631970255498544812007770967698937069837944857695581193619800606908989403928217121222519847897568235955504266742924684054194722753497259450135166211481683355627058235318575948020426123920899382122799341460423431481171301581806506878927402466783502343991516130970833329041161846020921180967403314491545102628101858731911425494751573546736389266318040943113966386585256240024827394767514590814100894543782246484246722045322999863709362702358196042485984874773235686156591684519818661491938645747151556847351414839183720159582769183537226905753886475779354263675226178630926952606894924742099767484768010420266152849864297779357699364275785344627069761082509856277755952369653068569153254363442694458312253841861141792501911023751418720440795169088458005954913023948205213734791316330002495269578222337166851037210122117489841538356478362675019616561621141607074880788513691873893812753235998635712565239921488147646318282065428649432480787520164321558851210479102321009468535548060293681404698828377469729041185132636344191611564448503375867111619149808372037921269012519782420103206142002254956992000690026770531002918654868440959929073188900775911129546857159245336281805380822171677365855776626541705561263218993798011825283210388697120247860645889536326992928260692915247820994760604470697228743572842979074004951840221651985536189552046263399564764244309642385754324125779777382038154813070788893351673519803170673973939365430297993979829047181568536867956339130026800746404417169464218458513528070423777495809976983693269300094607482907755206982266823787531011831698353612991823671316257142938132953099110990502690917463492410941102890249385822290188779773843091387032279224870329678324584550943941047000892895325312085149608613138292211114821795599209572821928004817433758780318473199767134269669080680304739368547650535586032107700319200605847418553742852758269513381510883210693086157419872138891004303869148941608724008589066157257102999379283016400734039846977308532731461042507812044338038461472001610864610112375204837746271010995558425631345118718430454166648426916426155770353097595285002664374321405210805677047404226922150292160069310596991181153314861675642022190428037788385604340081577457051891509967930582901774582714311753828926258675819897713210552217492697507792281083926378302267760100005251123827881609374222956330186631734552274206251594661202467726464944465728506389697075326908012467039104735266309859735037010715526238916753993320521722816188327496992524694600360377134171148564139576817195352644227204926349413149625191996493110485225639869121882041271787756163887428387687238504366614228571623463850583713517894087604502341945699154572760628495947474512168191916188311268755829205905063586467002316976807607174511667980834501300772405606128833282081103445621678700312235920644652214358850833352181901420625035683833984724516559831168431170053502160819197293319829641079777888099327889182762035680418635825857094208795664191125826071462632047953496825247120532948413820482018246985488038189217112615390097447407096413625840663793265131692848248689363664250192558684734518077858757258760435304382720193202971911525936962452168741240881964672722284477015512510718127304038590356450993671914511096620254387850743124556134256221142952453355149965786778224446507573833457993284494030974843710079282355248940184089338467638542696432256912159288742622023549324143293838651641371468172807426898061887002572704517110773643960082389498603028453609514233659226700635810803973993678271504722862925698605578073902814664623595501892386452487744061130228159022850043423044535695104685589381528210584680212492397958928991643971292774776730677248737388306420142423433566535653614178590968582632901754406985888697372057711543097365750680746948348996193227359640852728137761533342277868488351710149185049057178830058807557946260608889319149772640163680005079283664746714473732640234917265362938706842822479986721478376150001570603989589563066849176487652689004115615037517383275130420211326396330614599515578806828639544364428548615542744568307432351310964679083085971936599585483801794522949255684252307595521876359872490932914735781247106160939375144491657045872578127793021218030814485242725479981130188468594013157828125485386040332745397553677849257491717748631442874087569137167795660576097523999072987118525630551826480726239910532770974668762500416453167378411615786744968535335386488265744095487335559392655933862759054341214631038444368372101621180529737396154408488109380622225497225828234654446844193762856843498004770658229693079887564575245691872716361152934314903788259635786008753636348334962905524321504889701979948213091873362404762302785564360609473344447395383991189275362474920511515979102514158460668514681189074036083466597943087152806816127179945152889668135157265267304062202604467302655135693552174728698813540267708873996410445677705554988918016412254193867118531957481915893248563467719483616781036592882224434559256398422160415552606432295459034215592657019041262156074389155388883010444865194661923232534845054746250992541375650457887785333440289732781144001670885673130709946424819739329961205456568206755425436807721028245882415359536854641750294730390961553858009574363531033222181246096566953998442896756608055238091337582425780910421111045882914464693171603939122218082997513303430368398497309388702522700868856409599071095898548663329045135330432489989926923456206012784765635687864425127979550677714827328422320498295625263186834463017443318231694820945507195440107882567757078916060777342699360084800660593255631687190500314011633832060262921365636120711300312083968462854589815427503725942323367403001909230644271734028900025543687068702082264264213159612058469629702733189165661994868156492195362091731504366790295162003046252598959494877246108618717307520708750909439964004635587564357095395655698732115523529501347514118170455479245565541909925449068509022587128791052903788156119486522124002309299841934154054342630738856956275274802093319178127698064184093293738623755880475703639340393597723503393544547413376759998086543037633138247654521643140369862954395381426391801454761039222548929153229984736628776260697478232695885596932034274288584161913001265236711728062748186284063424795544670743878720956407717992931949475029793314249152801438951367397499825279025447138183832541456264157949331755836208115630339337419589932308885909200309568973335087937293503145867681536620014698401904477485011837359362930768877745837536959065887145428577806559096510379140036292739321115849769172337177446480072456448906615806502510908844312988475518441497570888160134388762159487433216119291692658898122707958019900644995165166787819723658193284255411616739875188985345512022742546095653141107807231590249998195989051467046483150453234909027722356398870786364096627905002780893384230547634896189352121005311691276090985634369721680883888001482482968810412907561699155252661076656160192546128544755427092663933116151145484418578739545735571074864687599529194425598865888522962238099905590179614045729352861345109090144786242960119595751001112352180650501416165520160950364096366919800722883803949307574185889986018718233980304330134784470752067235546937071810474052014935878520995236292869313725863591146535347721215362068922444396831703908016352703601734604217017384376075388550018476489652016172347293009797580491771295815545096361617056153075712081891605774193988357018802250517943529425856975003986960848471501038668378076112401660814761762222100381092881528696657052406880379132939311426552201456872344613229614392115920412187268734893528943361074199184021859577309612215432161401946649997052196683223797193146968494029567141080675437176822966259337549889214737656765362302050565311804023116134939776585400561390844072206254831154011045165514215261372944944422920849559470244457112013116883266448168204733134748962438397139943678712784101876457875401968340621459993876796451873955990753855079960543930161764066749956308644913602979300154074465043094405936737746459985917142549464878423830359517480362057487930921952001857833451387862218529242499817877015767319271052347039014103425056827901553854023422523834778428357371439263035797621903201982422615811213565464218423236673102183621660807509069011462045198691682051113734991142963798152044737427766010979310592517632011744713729789254394024862408975512018154824375096271569713308437603675613068819011303727746272748517675276231531334192121304641419767121439694711080290666588461837412638659474608306452033983586051113724151678770487152936834703642525678621602181256235455296636335033621227438416305107539784933960506342879276546340974906915084129366935475964871096676070780559765190615598243162304686858913001195347844829493614649528979496806570742592927831487691177226643019211995082544492594492900214971374357400158692251530117865098983404684919014462857861795890806734748270701672965929642231433732235436153828937219538466894782807997374252268925769030120189552750444735807988813056780398702600906044034536092297230900472339743196705912875784022517120190985124325081776782348578195167845944255220777697649129270157886851777580568517570003473908403444582171715513032229041801841107063315430165135109616391009793551755808584602224033484633193600362209970813214286013479177881455802969683858033709611863503905047563520957457551186420395704566585830305622047018284910720444633778009265710093093197843617723308160843789797064309128092180059543718358669056896681601795447591335524135462073221982026658496283275468374878210408208746133597930090584984193885972724575643203578826927823619060135963170628828503967024833309776330991206105440307214979836117349546687097402348760275903957740558290347718398860176228316873385393979059964237541586555513159328090556040741462447288805127993909777988132365258482531240966310216844408034833646146372581869084889700059808461518444860862423558622462531153567451436690787415985917550019253438412414615703800183383998893028705262271105947106494436323579497669025494607734736559045801755203827590790523992819517906003219712941756326065399404747974882513776776434701669091209287300018470092494382810476585320230171411348949426474198826173434715666624818863324447115958716943336062933145186826239221995896784015911961345093696837231329844443881490528762142686424980181268961211949838500597801973981960023351747854358315335528343754617743557473565304923959309276615904282610771895116017621505063178564699200675435117617823359111736662665792209543309433395965475626857695230695956211822841881261522631882253328850243334135816671761421814864087601057439852915075775692805667148231825970660311493612500017946771710565159594685039548534946853632434936025696924165720261898601050874235140153846789889229868495175969061324677073254947840815639863974990567577800150681561536970300997866378159484212593166898778094306408180032713600174822214610151751349888803806525789068798079394951198409749327039738876918730293601661384542019595710993892554394506831249279082683259258676245127504880809055029696187341990664040111263471509326651181817625373125261781484622212208915732341389413900653833871487310548399260131229422500779140084177217708449505126686634917830005273414022071288443310958396479303724153111338755083847103233227681036227306982299363775208899913406850851816648209103561899011117000371547047744552240096534959985145097503353457577976003843795569474735612088236886336991233091209933395735516767514351730880169418701885500116237965627699298053383820386699166806291054686450854033994974849448877362607471064390257409857150487452589440038046144875242794781570383643000307511555764649177391696069107427564179947627410533114338721641631677246511769253100342337006139684767116574583847697184150184260084953281522155501517605815833485810765350080827191734531323439583715279457009113973550829797772213606509951066744560972422387382413027263389791481041492949016253469810632911002008164194170167873729613505913894655645635315240219569597651762602986385529438552888724002106005754563334401782241095802609972384081314572649007021962378009156120216028320437032506564213641596570849088810822615900086364837661956065303437295993020798826882103905242656869996588934177494327641229744499473291849992346791866581125209613190285350289866186142513693378449843122154008390036572576416018626709754746930068943875101203120299171019098216847446917126749242648456048896700605371609861929184361398525316733866199001963066945098599316180073518215319220270613377202234949698232596942620671814193528284463871704666522550529353738441986006351782821084797321060914560852395550749236652886672228990390483573401166422083085426581580829761178624745377070916411172382870284794396135550283133171288917491617768050772177227851089443007180215812615107527623400312109790318239982393019366719711838987383870440222300507001922739091291384827482190427242271937165185732637323186594257850510483860342029518252816813045956631013629730870970980867278108064629330077845942978676263440812639544466089331905240018715592115356435424111807551107819095944316954210428970411003689167902808039323376691938489389438055723394093699586120336812598149868687629949549849814855178560228476276788368307690021634663978899998659615441724254192101688276940929777185874844640831728524246219034727465530805527098961004420019016552425050308978217213776891974567130220656008945838518132871278185151511839999251739167469047077047007907248042894591624012643634211739045951494431761019032512460893602264385846869826593759015762188996102070853501128614559246677202527788128527531473084515128127645101744708702188913694658102753622529445059225528097634808291493920855088040096277555630241635075250967848435942155964098722059245497007881050801820791269364939698655722948980257608637441819382409341393693649029758052646301220834530024549457922246230957132513395070250154937623113984075324078415741495691732317104286458714194521903860267935560151603014098927130453934307569282253390785407247279608912337621921457254236589567626193075128436644584142348448222776120670514353850315415990777570198784723474833042386385465880183277988910539176432268296901745029247711330991856922491389660256780052911138180372553090000045696003085285336627985827388904035963908887463328473856351766284794999695343451484434885595015009465722083772330407704917257431272278393648771288737634362129931856327830812038520745522967130243397575885353025144592027748180068846024106775522035713340447446866488752445204247323649640718295749818932229272486226533154651437461665166014178080724432455713814408200535836152996550600795333861994157715931494645435061429165107654554958974264320239931274311190020845836491819643503911567854156338199354756359522773981174149243088330505208584065466161639706481576297806786233732427118526091541837116956680955352431692590100784115448844960311796380354814438398221207193274287120955572233431710514827697640692061101843381280955409524937006480505433790901826191654296780040030194667162790017950353272151735748674294260363061939892150355472807260089650091106311326681040111346918776132165128673366096733392457507186457357584766833468682237080692976662633287565291394499371207424847930345623752617771826202018214580153986632388923935796569268978921912068825581682510074939716867987013320864194427849061278994505937787598123999178501076064647660645422977972733574925448562144877627193327129628888033100540646951790217352696944518772386022728743999493199166217107839832405383545796936292220060932525270325207005227766160509211538735149802228681513335007818135294810901026410193263586581739557828366873416587799512963729180145362292404192347157489332538344014131364300701687601237621605213764157151229553615760053747441979094378937788728653320683527962143773828531280608553899338603488494843685452981191041938454225222520215821082726622334722847099223860825562974882232850772585114811082226378955786737687165427706263669249372784950952024194119653422314360828101443149171733346078015702083704164357390600943361105972737357653654249206504855370951262185534648147279238183308587555843987609124193994560902237427849899664084460210678300290980546490550964565918222816087844769066802549329881341998585135363518175527154621660339614200328567473997518082737906604997713007619375306490959245748544503137490766154506752543861615453935931255343326030137978120580062451930211349537955984993684211540724132500796371124202107947044339040140989783054615021268388993376646766448666312954937680536528406012786070877397525351730860616919616804456503949317136824434951573122299756555854821290350190014367109892442638926361312886710496258370611793831175059783552696786165941781249381639854338825456352476303930875270210242374093092942018657021373388833069997727285425457970415824319157479559213247348941061777787471397271250658848620156907545234978726424631723718644877886519441497767119567165479875760002394914377951455587710403750287321907654763539795004805970204863336210615092782055754643261211245986004157745965706826952032135737697504336982315131448957436505089478767995054600740401283588194487432303196623737175036842567157657674260468781679223204782193972631360272108965046205986805768382146416557695868917457248100470993164029150803505884376897509717147263226789880928945904938318335213786046098776862909707316231670791840259761643833021289022417319477977474023158320136947050204949235245679938862990122815092041240625407032701155074510688589907804063645494354904959896872102393199933355043619916723836712484747946662989924720881736275401994870906499366651528373757533035859604176077213202300814993423268837135989680914485034478553882562938027064423749815203698080957033236816930908353727111635188664719941357420429414309646864361743203695732019110164263613064412647964011449990759280329924078045318935738126259666129734115355949317546324281182311888809634535357435814764419171803020391249092933348410860017913416639416294146621675408280514403685294279381017553093801920929335636566079704691673806817709707320626091829593576428304953340525818459974765632683176935593662241961950534993189608271394568353693739020386487950621161879811088274808091693143647319210845139879362914191764302478544242365316984880463990496392336124950990183383756751223185702842029868916966037805950970074169000508761445286036990133246765043096906015815201613365380392917016491148210377432166681990602725865163490071932390506784471080154531494616096519326853230955709336510517274573648893978729135365667847150002119018916030244393825066659505110897764338870640465509095435588429789046351723895287378705580102196037286513460214774594669881725836522688163513514240527895056156646309886542801692764691455904594750379213743068931745100785406101200402436311281309495395892807226975781133505684586673727477479027757462077293475518870221883905047968577004400846134736405077510087390688975496987344488029121188308881654680099528426563397592578984277449303525363309697244441069468461539268849173717981378911925495669251126342731310982358316873197679695641635442533236457653236603480831141198493683270803200787881367662320837249967597602096550151928363494077669205206733857062951654496562529924957990760080444911454048776802650478603516980751063232461000724215339125702965177068026915571521383914051332597094516365444500828086219174050184315289463524758590175840157608019107703918780201083121697803813785606943094376450713144585822952794913049719655085312536277589659519750552902914489257394038002694654180138766726152583185968246013898882613619947002512161671595916949653186758704994345487338508911376560903969947339741531435101642446131557499601565786571484369692935658413448482823082598017515684020759224419824830860083022195254577629896168879289533638455965899027218046088991161770696955570205595176042220393892129153000532504755446643199425867449293634197002946153152427562911390634138439532604460750909238669093675343758355204929679604727750388189709195374781374480455706489354859495857066984420616383455900967152987233124910108466793994162596070671304177467675541602730962532656605117152967480053479535949869918466200549754746479796878515029032362125902355956305544489000416728866231362704428721482595892094371388008996701305420517624078429832254822030386413362545178407280802991164360765095241625808607654125071500772809943438705234060170858166625522787032102117561373383249196657084733521026806306648085646509103943721018514239046744409442146168877774971459085630188896784016103121937719050610816838855813184241677860921083579979370690765112195327377343772529654123582045070387133287571063062257161906633374901107876549540728809041806336484224014362875183094328938224925912160632293036921778466796562339371131952284249823626097676069587963436821713891316064270707577484878632156414874207727463597057055242515338383764308521121243874257720308280724176166285387786327799212513366658846467495665749227472120268202815171548650622414515174652808583823252935503283856742858321682813296828716336856091179740986183499063163679234781297280707651761850479372492609006718975496871158743915556731841785998299880840036584295913071877190837198761775913527688210494168359071745695213980920538869548185968039468778770768443574259889185035832156735317642489073321328971008008290923099374292300867250860679706429946183389114875696769218048944143158841325678813044635459338699437576541130043118019473928286242863036765193096053985309633613802827656255602213768432726061790640294045203230538634898487401517318741286709450395573547692639590254048818604341413193437605319698834650853551739687529692433996096425425057877374524097544148387123023316703629306840227504728851523657950884494435425021464568762210567532522765187641487880302102443391282610642731944589888399564076052258208864782069875021714876223311571907985791988559968511385243005070055444442207543105146802135387172766754721267336558301051737694337298010284751218836809728702624437413192010914932738870090295834900184246716478260861149660571409047369666629006840654758963156464845412856836741127496997814495041155252664080962224372791026945128726189157516288140821419092962987435448555346753959998608336024353850662211418292192346894780855500611608118394787969300174735016166265913985894725398259589221743635698002398706617240355660940628296788963974443407792449505550534296961070859719543403698052100625062547945263284305475189461185103390289156101150251135020499537997362579513296474110152376092256373839411173595293548817914558837213832286163634082101020050131490983767769899636459164111293920664728689900901512310020844002134277125838326220615517243857263800870852968790098775910371272338658827415524614957962611794579150802877816659996422802198389983831539225845945846743880395660144465201244482768176111963327579885850131247715206449694823611485031096166114459504550008807615560576073310600134235338163855250307229204382634461926660795868205457828461715193079113905904728149656902091812087282061456808103627410635152028371510746324522836980953587732707228118550650122497743894067278102969583816220980408088060219089304044402026832037336214051356567266433623820547077455337106777028262186077658722627204681695498660731387539615478454728494227826998366058995108064175407167757095350897421368671523283492804400011316927637473343441990038412860957084205657663330840998997366588884483816502120167238656499949042015627362468947909222821846186362627717775883013057578674639359483882075521111143671481479478109071153926847480046963788439453076748789144191557118079067736456195160063998552225101655514980171728257998384656387400400826216344599628504148024937010979814733623674908636299607792487082955982909763619620550738862908320325394346131317901630791514860997686291170523453416551924553919302216458733153119902370451111299683357238175571231990743170577222920229526718653332398494216456000164519949216622528329607541862475444505928439443969677449589268212859909715502051728684825939818736061766130872331251721717900682489994819307442150918098220935997401450005797737933769719645570452055064522575983848641041739902119928259352095120626385920849791985813105972151640963087550363823766398405613119629472224968322415251097441310261340981684017883806142283424707995996930750170788530158358127207265180855968776009755320791219152024050667931005122190872589753382002749391604602095088859591543838633671783397709330879169336666646902274597088151419924483398990578462817708178561996735686280992680162741716109785695109197416589297492323384821167619532512415349105786476851447678844389359668293539870248432524546003442293270885281414293847697102716278893772748591238362396571643187775263226724781594232558542028899185786870016590668711066062424320381331015790214724908570043147403082040362314066018177324820960174858119146836384985513408158285797908472144806989095680682953478260534296897329028732032853394740370159550208643985125584519685108050673114427842605418959963492613202316083016092523626861880979371445403777571844101157963967208403445765960078376648580654474660776132570062567577899221777027635207395916401157472088897229644331744315921465043888110957875272173881160600888114957495789840016587920163984880685707565810011713504519071795574453791306362535588248107976948819118455044319235413220002934056622516516875795923863791934222506106224633827725053964995637852248405692879924457581247042719881073068382292938241815574178170703538748642393834132233984429002002278549703467695897966487634274769411888731180494703198904172971796862520744651115530090914516317933873494453563970245625094105297350057518160463976506886219037244301604028448856067068149923554631891981948357096463437807943123415668934436713975756855043542933778690564366555922563342552171266872631062001372039949915533464846821709486564093951628732633366909780569263037159809010936627899189944921993998016428063635510713113085059536145074839965706990743430891337289788323962186517751773229523248942572755168122514454390114488492388631909652177351287910669085230491405720652631060877247724218180576350814632521359509517649987116092199879387283583613643462500164420753667416107150211360760310804280156069526348663647331452534835367107751119428442935484076247154872439704075970633592472081842662056410527161544103029089422381355574923676271686562685463234947533069995309203724788196630443139088292212381291497191820668041418298032717238275087538408243449941498142771584970776529300335832496541799451809096745745696366158915999151610157437698146491817780027896396372741308384411447696267471508100995824110254507347090227310250785950466747747502178909117153597151010119209282949029620924691751587095219401755042013112608050259086783606543042899009436852486534239487650381515119304642804058581295681271958198577868200613140744881058732848248484758954605181397858769689083993184193565916726719018578491890670185243788650602675052533989849276403310195323200857615245003936309480833582266082507756570176452097088911604132286607258636318752729558243624624655423503163503751349655416180928173603398798641688986680762170543984708883224438518308411645089489549911868922914610463859825880276766940636399452340810070500666750823069995486046737530331638561161178446653501993701307083398515847274547608076301542825544099776765560199797409700330205756533463261885007937459741152037680641637204736012576844010805109159814935427979740062408884564700436292561052017164550467815313746893004461361930431332462738713318917690390913988838582882406056917551275252562583215639713009783514492948831361126077343578073370784351052108643621284656578193338999393951359793970124119841173043803810622549557087777680719981432719493917745890190038508996287644859086196628140449359643458437381315679192514259134913078115089080142078695926748776514001678007966646774783267043806460344660751266315067717170856846018009780491842748606189135959827136220268607878171742742647390007336883931672985991848012170554331461673619718447521317252623098752774237109852862955377980833052635548380889662515907814374979635713487270463316602612753104267321990943325191316478729559296662718128401303542771589347517873551037396944189523798679115219658524559628448366161960545212246885479221700294254051655561016517151364710943209760294258806293101453511680606777628808739836611864134017555532437537059523432378062426667437689477230008362659892896843891117177145137770233481953915455776895295801352302463131688475091246464356261254612378391347182435508868566621985744292652403892789459976905014894997586456189260793815723919539136119772911743107459246625516286285985721302870640857567818138015026858848254500572938447223724194788080434291347175581947805043541131464918260929003240419007358688128496102733453560518447645587120233765851893243439551048152373399128906662906875902820493390563377479209615939024003591386397875176716586807286891628816809923051268969352224922644418702401387059593256913859157517041741724784803073523406566195429900584239106965970201561990470840815988741911770416396281913424190653477821090608038468043093603879516518539935512904893942097396467353407075440399990859649163886684499095219053002624151061216307179952756624267605220024126949143497814651708054567877784117318992535246821406481062432763687371426685441885158803626177624570454320665331935103817807691069075822886559517348450860250417565802072070819576345459580762926771239331593174595699517142510229702484350935242659169454188636966972195250578371702864274580192361669556210913581074663938895210318561846247478599201557664293035389831510526650902502323523389518535609667949517327627430314784926971267329507543338301344203505124892296008171071710422839386336808047356278851530511377974390069276085860341350045587631065032706379688978899698568440869739680292394241673226040481883497503903563611518557834746432255410469877188759929933159104763518128662242857059801824224925882267505543508125939213949223898527066597693558799589458898900959658614925566160517217112493381162173422577878053151122872848850774642863711774024827298428642704276646383850469374275211241750901891616081749795340760813465052014246854809729239646441406718402498232775898888105368813502872201380670801512176519092080001914404359329470890059065991727911920621126779975720726457598947786807211425179808214736694002687478039239116613431218925673758248833452881923084176565016446512755526510581185423862638399050069635144016885564553990867323670696108448467243669205683579977393098478874982345345245593001246002531474013842245307216013226941360926091897039001898748118537082661192248481165274909063531860874077115588953528304056595415636258465727607539333086882078173708274009960499648165615748366209137359775407779689005899399864587630315290281889883443231920521173810087002481958653851520302418894685885624232498359233662168273216963615029762519625475688680445834878958559870023565440455065464035368429655173540570601495406571173312462158994359978337681721530975461146806294187303651222305571020692224425439065409690538973957390307376348576721239829315035125363353521112716000029796892057907514387594964657600259579543336609364562574675007035561772157959550124057239038865507378890313728781244005352274301945400073664196719056926086278032753164561560635237113928854346910617015057930764867956331704755396203214311775106695842019397954364774989357101769893878198277078128132134035673648518688883075337108851275402912864069144985873353931480779152862840915672684586271596057272963586866042817523600606000329778818142203382713537008424131839134025593658592064610985294144310931753393776258582530007263431501901722592500621872351059578838460288727361042297789050891919907428108725893763237856045965174767005831042938955288262045269563929282918384108852062686853846446015220884852277186118042032633698872625092168557467814411748827983442534570515622116470596694689681093331709455711981953560788444082597589717895373545878905875700610874611754845591875303994819816746928814495431341177263456227899968101860519317176302890171598346269486240258838982783037434661693056012524715415911053624100906728035203629718706248758294713198758437810459873529133245505534989734607399324188365261352678921369199012342128709036685061972965683336870660921044253091693900407389751186955643569286491943978921198238511001665745298398616756119999127321948731215650190843221534244072290113050490952573054569574249686301690735081456205881144956339052747524959025558292909018495721074346609807462202588535408525493073165860617198932534317366119480031876955894486582034884302488803030039567767937587506560709748659360321144172333634450941963824649086689414045544609845625380964351263279934759864952935456408262403220058596472949841106571145494523213491615486251810682248951815390174051086965643832370260988278121873712627600787868092771322354716465714237896055299919284642932746637360366960577580679566276302852313717555004854361540033776348046987248540777050623290881330760461882044082868128529033280226712968049327982422971074700146767100873878672909630219839778395065885114212152029804792273218625792541655955051503497234995226883749104600072739042506403885745171821476499124159778450892438199322336619309970955648663063826777297313329235925136855891354855460669403347139607108316937413341005465414549653125135012344486269782167390120202082683376635311646056156586774994655820593088144073114466379601222245114031307846138587782739277636058629383503624815552528659184798365536100809521698404800103479093760013893490551350462982186510696170975488119717975759079986173151292999289478335490050084895820661641139260775313882990711920668164073994564748209449601622304992559824811299216926816493362297444695887077652120963394575048649653832584841084208775351910273736368644107137119018147925637476378217315711102979822012510016091220615443513554298919156767735289420630228006176247536469704106988455276470087594005945668385431570098374549927278459284314028786178605498794170800744484606455884048776452206741724456132307759632082560402860425607038458651369613767540659235508789259524226166466886829883855700874101596943832986963801803664719291533777408923838861820710391735513809765370939524440436030450296831944007189995579257146773434940877778773329376905976763391440686690889790623000051075087886870019562636517292879771366625571006301484836770761531918661016368870460535490780874297182134529423766979331365085834968103995710013007302826835228114028509912185979018968650372201128763123978802763682884549704823484658958221199840849540830804495740807590921020099953560392592975165572829471136218176526434450817650870001200955055940670995013189936526215491506228437148330176277124141152023717742488982872800668381898690868930201206537982680573538559107744544802526770632149899779197709560312834314790692529975632564352676101472095722234378019805440556976554736540816589168500573256878693879023602293175642617909846805009606566930239237263902654267863048476872443503236487744242942783470595402692142363292468005289837185271634343928520792126221604140220799126232490315293933649989282181730050013923687084152440495052564292010975337939449323115336944877460639885715299987085643189681106881681119558441740944842363706432426131692177973472677983134719981793605654810430655480884058736303084222097938431109792396001121639300906146682185243813521231450347623552202620111127832740370825164165431514071554723908474155043751298821300638072315123950550902722372249712031118910473561260385443637765415985100801268845802554768885590783935045159332103192894033842332157075690461677377602237944327314128815900869578806946675809062118319816907688550296821391102783481168269981252048081291033552118052607906243082606034020354556531974547628551824668149207797303423039902415992860862019841423231040536365308175466315775867586047115489348857857674569584480394836896717765101749661454962062761914033266897683214188414655397080055166306444054851492729850328245678408514502922664440589555734200447678601470812796853151186006051393157480305767519223756158563148106733734852572537999509534864984328511384875590179446217416220879278013710015269219440826368562002882448169915676960870422915079823268539197762439656632709783690996254734237833521392886754494659420337589221216449860819342732934499604452345678334217428318149364627147287908680174068364132031016821598861427927513313487189197355861734955717945991201455924784417225942047085079095931873111982496579397544340561929652922939214334155140949558636438855985594097179249178415441347897262282165689620682054250052146727867916776679739518932002354434852353365624517884997522375359990416658631037726795287104219625920347443124942129056657663146835977615008068048613742989805979430866940903920010278763754724610305658464563334890085129421047932427360038580566082974114461734846877023195327917801260202708233379615986104662673890976184338177868431140338788578830594311045570089972693080211457894575889234688625151524792101735231407133476248719187019381183985250642867381310325885403114285181530774974940444173203582412181352407952125657372187994289034759402065990694636080081291895709427673256418203033329362782745390933824433591639344186619810692402055760426987989224658717404504722253816549845242090533225210134766108370453664209806754633390511657683643421450614978990966922884368114228480933496300347011635772077325501364233774400714973735786557199051880294512217010145713512321322794825617209332136399264966399939795059538208944593738924011095010234525939850609880506647474346303335193161269072034978836765397263691968125586250448713033923173819642976313803633464345222798000979265180518447224298715379443361305351069355532119578480626005330401984693135860141422073737995512209860663868242674177823782454256700506380040440790147310808749769665180697488625744281553244989910506158535577955834426200907376733590001203033931783787367709541402473228180735487543201602916378910782732311121072975606813290801224496502749279365322678827905343247181277113844474762517114448284491766140805447208647461565658216440030114128300895478471142329647467685270060107976721660367154959843849007485320049143843835557639292976771895112897871594341433675026551337836678379451063385345453073388492099814263800020669217569217334191204032531078810585759038079953854146337904926539683263266914012417750488252979798739384074307982379387624120592781704510319200756777175539402566332665746161231258129689290179462904447717663065088925453151021768528478145633580382542630384618446700924656646126086485603108640599943416920101201350035843715280254412220307970100866888765376373228983201278858903383922674573811357451334745611456598966878553918288662525935524733439473324310150884101088145600438877834351332466431808529981085351874836897282466453288351651711095614851400070682263021843561579003520190885648478106529976183454410506678429011482416875401677730074878915917643152839265414413811973573823075749755169943163670113508335754368846270010075798123422605710663524117541571451737772619183526405480465379258649747516194078915194351181056878980483221818939782578041762231822596538178614256608343411319210982398145925888877964120527848895858383808553863832812756165594120334378737840502626112802427224006073748767740159102464457158616760599779990709959023870194470131010643090070011327213897250418035430726691676435721450114583221044431261343209992582382117706496025148354918356650551498602645740287406624941091974970812115625099154935594595646561466835793644967937555062421019112672290792563623512573325346590703862942789927803139518941586709660205581187675419563788930856022034057829314303221198757975408552351039264684121793761764984506820919420437068311272738751320889187290933006516021550346413754846489834956827693850288009447416088776078234897986268183079835461285380266344938281406904091107275146415961497239782042327207765733269620529528879532658078650738272054827086242295840368769305419286532175827987494823608733812621011688849174928095479264623061489179841409115346995231093484605443176672463717053599751049776026000880833486867135650118104003086063634423866777526846148905017912613867406267929316445187060811924339898126007985749039753748712809112886606507981488565652074149185972255748172167978566391589798867812489750568283727546159426896793300648961275377514551184467037267625040151094129721483320891189272696219331625823499875691516100787430992222297846413994779207095005661205046699613039606141008528224160081629243809912730454998598000063240964518625623542951228316060510129298413029710851432002944118857748593039803240819259570328872570834697820254467789010412393284055479290157331852216926513967602464713418090288464995513172438905291748063470374009055088668817136428766664225014943579440094687596587937123476311216500361561459360161699234411452292717956788262728303131224091431919073596310315449648503579881658382309783366586516495174873446489371188539007729267351682182260939965382874097237160997449677443821325975716602062708903691363081664740453361907100693124673192973573305349920172765658734629844637637731491680951024773239749094372879067684891944597921873104366627248267446950347269327536141003439859812094642879192122023806381783073215097225326486538326557146291033391526966236632035672008667325653809415083587240700345084732593093726800131423242366625915957817411768393635428459464801592906243472667695058772999686228292109839093446942664451229057480233052719663613030088710510372130695367378118215651970120386537752537804689231338015811650207823525098918732007902939052279083479650052724568434373528199718599492695630326760959087874285613697146093433991010614512340333029724519064550854796399329697282518360526376161508903381039467222671176222838683884912975254981078104924576512259451235800503969435858485949914782710171122915872931630556110562759157327473084857415951860457498738337186905941850737686645943463733509840906934462114487243591969563307973872828805674407951172902867056804268268544547638382007176162037021748194253706331167841064495311127873018549505291113601409564325088830636554568621680012854183003616806514671972705516087535456417832601692251746832687193608423058724725692832424716054532282833834004608988006284559822066246031047430580549962499341616396545750773003855954857558156970193357506961246539214794958504977705381769324306865274105624651197864489538158450498034262062636267649885179355355241286925037390554197276345594272384318232193728558920900348172083493126942733007831067760432303986325258021681119042238336917029231916858377540757001458651591064785111715737130512607149780575400693107919060762306435856432482980705726699187172078658259879793179357280871448562341005926390195488684454235161521919630012628658589777459598182098525521058154641758096217140062563219581415571503500577109561547081139859374750243484982632712257358217373934766422685414619279221043267093322670251520661771469388969682889573041595725519242936080345066562723538835091968453585938430960022335327917449054774793077266140059905387477872108175855343676704831566458788905621342440557136161221727801859797860251708807861401457251858470548484990559940891906014489628816312218952672010049825541823663500422144721276268257864887084089849399182192264217847875904382991944756486937148509620722933722364770434851239379105469078302661093636143624455984078903755168155453275317997198305699580452365661473372694667510098256487025993875025219347620725518623196140899059794654913842437317173029036992365923937658917403450650776729873856346826474319698504488040787940578274756392249028425500039123957849791976247073395211087280399173749608993098216666266456209690837238955955046344844488327252627817093028038171482601224881230845390620818556001830963574710733183387965540396158358637642157396944520235948078619932433022232909168746894145852241010417316676672475363540492002462135477834887185070724175274943385785347870064624938383218616227019087508224874270473678131887248651636903242092420255482406748771350985269934099650238944436399066094037766726012295362425140163353642982124341681166728750343815176588717977887164947764966079095751222139998007237760878356052472820377043552078429994404451955248300212369766774538415317746518247184741917768287319862650364513065521564588658825089864776221213796552829699196423255489567485650707701341214921646398370725957190131453478942608062121044338843325349950237518743855207971999606529050100092257495199516065828642809277289306080118877693667177525549843987235525049289342136529898681085085467867586607743988637119167420029762061156726712867575218342050659512420051231680343290438447968633378407308812092052610693179287869067535849527579875906201274320115950328283327164990835772218436826268153881709944835517177249183748520461043233368692218199498382952258908996394542782838949230827035550797203256139430664908732681734061332752315074278431661544030154112879542492514460089137733067470576590533329927281483182496598202866790987966693116645355103141833440788115921067184900344532581979633813664483612394286922640447583203620549900209427618565245733743707425867080801900232894262356009607216801989828339594542762661952212898417224904840270102101016245404351354740264712045458040490431892586679548202328538812069406732225970300800109512182468887540204567605674655001092459987322759736219395947363680315622684345216072933952493687528596236057620260940701264410917599340113749989617586581031257309208142016889283392850061994517659969618282406344523618053357124420331278543833024345414541107507201295475625789593377538238905394995197471992112263604583654578752247242239651772829931018574500862232492865471158153261661595524715363157460058509721222753289882873414210264814544292877609854936015800956302018956730924032298465869427835928773249096595960172849877149921674055173173222404276923445571304503802515908910814920531610054987230579247129775814327291461836986441397269776454674991921777668209834870740483731369689246639428666081561420765009566731886898283090321734535259277130814246665648186142638612359859910210143458915991440360899316915958090284248260658063359003701767796451793700074114773329264033111203895445321003602360424303711245378410171388803003335923384976976667473669821916025241603420434833655597537171552479452447920938262850155279857318384166188152952807665579442830413410368133492001923871362627121950324950564750427669519835245334908942024871685874125200870424546336660305830018442114684462413387330935685258551226195044514446614580418508808200239843210222947102492828338544977498776567048172615857107934002422414182536389279582324101350129790502044072572938875110545414738537801342483302241199459886051604007127637301592441492576999693607974549667100337372058464757289321573719001334460970695861763365953106097509177791571205114755496555486027987645292838084688692278259096944064133670762983287238151461292604812132610464046510213232943670503242281852661461611366194116165546219144821054623090118753471365384639339400310484773246217222048313684592657364875013128318168314029361493468667906149176984550563227701648551327583343179341588473057588938502411177404302285388852824597391668524251713357709490118856192124473534345322357617079381004906788641916665569532321671188723065458649933108865040358929888390471570382278035282043184178952456094029839152017927632728792135124186231331078460975349897568562522976578651537638228760327467811128885318921632363188637213864498970924507774981510878315414813814255558916819247891331825866224186350051204964702590999581159251099208196251392708358134551267587443029661445549744548559232112264258830692876908798066732673044298651532009732195285573017879561552270496966031059485778289632128711072537624593121391594028200627605868549269757030085357628682750998990773988419792465417248261673824946746094899606346440065286736628581151304483949588780404401114512783933645327572653028684027356725313905432075514345907840052709769246957088660960737868477246843106201682674373988040836057524720865310585262393049532642732404498103735436114458081719006148980119126710808345580843080916866990442670338310690314457258956020592460808378977417094575093458863134739086869339144213566963277753135263420594146841028146492439655317640512097136774259118958518562217928171640189108618063826984240233513694561325693861516598196579475366144583269226482526670729852708861420849234752650198770398764682322309652218548178497643174397390981020797298796192259317594288874960974109391621624074082505235176603186140995401166526604025130595528946013335139021562060413671708291430686939027844506298233278967197517964676446560223447263997845542950681883538140695635144611124305666686570114938524890410543195650484961058268505945364004660350607666746771800387158110191886086519424876411771547038437084926453107137047238355787882980561539812285347736785559852787200687076684296123108913492364001019084828003602586007800557401399259161873060625016876114731555258366880812127007858430702976563356765788559474630427954634131350500570953592931979601478007928597746256960563232624980694830024125484768007809197777014899006444107083453482756783810167268689562817315443685902512704665591381510374202724265692534511329673627240090801896613530468699061530607715654225698491691629712116350828114099987000013916861730833437123434292463302632043341044129794673743318750891171184456635216122856143843050510403376333245731005383823277931491325022454690516484558918637561379516360458264625820986043412009535973421199687710321112448206717375581477297875087187174440370274082412329220938370360095689804378905662895542575581566529383854422222788043830665170169374904851268290619885828027485066588906274099942794746367079765828597118654820376760132857740858771410435023698838656193842185884249220590846106239893527318524830906579503609266174528920543144466141850215120459901108273678076238157824639085228101702020337337974425704238672226936704914024765803330558994858456327042733412149198878676464947054260907879014479117795858533254428533723686115347092328636054677049054233685504257465745154969064731363680026078048280597744495247799558477832896693300194203270225641278540642182979318717532709603453717395228614190675466346933381300192558615672404571041411568868126632563497367301136032211096001234352093485064075627433093264716677730558212171569590391387310999536522235747224330346337644026384789231858980451066949865803899997777079040557881412795694751035723799004787551911554193046060497305215340252732742483531945106623711095901621344315391952384761534285789845934398819422119953594904404032974186480929538234626757795148581320659493045233961013387588525051748444626403875216324242486726198226427689392198493650715252738181222671667615239983146063580568508641082837837698237322813732988586627318299557597390786922254412409222723997559778348232395769306294122904770406843778197926786974331832142921030883166264830663879270336174740841104642654775767740899508098579292721283115027254867317788319022368857259173298300675605629868930224640852077539428107966175005468794390130614992885793501933670121509358055897986864681356184897419252055873747628337258792251378602760167777631379274967432730299312971454094316337439358336356964125071359894340017555408960097167132843776521713101756318383153664444010903757290246212631659523080251956589100933287312879241952703757756162740403023417333703060702464603318498855855574832203024838833169918793800261602290525925772956763969888621971905887056662627822674524151413407474743889112291584218027331972504728534137410012674580174718129188707160787033085749646975598494498873469164786227514330419049564271346759414258642312050293546736846753548750419971846494975116560081371494178675835646321354376391316054276043319215468869445824399840754670872106353951971069074389654925468873310227668893746810841993679034603608891101921895592372804389442225941579673103321331695691229252829213367200210251513764945695518497606436949684972237597009970283776553462482421934996147693918172038855196423009111955516930481260251582134517064900955732448174958158056534118808104227459318844756603359280953778416137561070091250842365544940963457517956400263801572970392151105712431569681763392293386192313800792297470706920054161849902038695977939990802266027078608112706295627794472699523927689316541534926531847586004012814166542559509282358295391330736137385699843219903485147880424902577159136309712950337236061583292396324691430235153679644271892208839478512317456650849810688153557026870711085304215784994296061357003449379632993373690780740214390959645696176160134938479411255741220321218944841490919608537119718341408501244264582688041317581302316356724322347073715140932234109637433639072326320403051054588241405093206433937556233902608160657201600614911111253575887656337010768493224030038128964901256585357525778755120030212714025333631447611865089420858485529685116007419222812972059866752537574135017115871338447616722901952222526426861270179252368610137427301785928302167003767910694915859404076286791285331363449503579322132040169042111542248319407949079270735898407071118064600719085713296033133543104100769684874148207461297952575108328803882259310164465239316646936380005381973022715224852902856098937608156147210691619930417079582920669786634102638508372886570545337772050449404367958583213700873272215585473801064867159415018126517765709781968488720569729581167055865625225750249809172256961700336414944786712250187078981434248582363594913516456625117209649849652088164775904275402374949905141859544916428778302597263830935491363635268078485010026354590523872442844652168242250400469292292735982532751226451259100716261798892493519935265156686585164066434947865004472322857015304553848175131999274202298385166281918987796174889404754010537156856953527597007136496432532202493133185748087699910329974946566899461727937451102656190862824591014671817191343268041883359420765535473347199966001217207378903504164925075509665065864573569408545697100426102489283497076084893273507723803501603516764246569785143677455217474632100677186384950901803133134309431539573467924999940356974780990176005227857356701357954501311645629905109287322176332271305748395953498922895166359463101195660469391636045229057095327009526461841413465216952578717868052650806677183563303856595169046521549128618399993239912186416365374831826458628806887241282494190719259197128164300050214571887684625480137690908259554765841904107311630638298351382547639182544118688930803482676032490093087435699947859852542901414141075189391316333324580345614443917292942421503086471248537063651029295781466009005808639246476286331191235168676700259899707735981080205237021252497642175713060581196313911136447846292052609960175909799661505715910941300509287832797542111441911429814456121199395045182709450742604587882825809041359847526523602110051838446136091508713209318245444647502179445871788810439777509146291877302800641444592500109348069589813841158779669760937660437525444023320365001319220306159489416820712976924671889897087732746681655296271854377517055572363906441393229230907869566127455716207596201756983344417821753966421961708405733846680274392681109310979490792019347198335504959287053201947920000508793602379828911379913835121611795404613482305807882920938161611404263664246695095995722889399989193869874056238327944425923730435737143018039647099122617219318282024999425322388494337961366359748404153659311895484543133184507034975780215625873215808111850568882959454229865575353847016764015132896608743371547455358040981298470985201716052423000231360105247145506448168326390514265265944298513544821582387943273591476431216032755680688533430476930594563288994145925250698022977084895590840158184958763904053854263174856324022786367584255229221171939708014388770212756382536300431699448054097103707240368314576128183464785912603606634543543454018623072697706807005859835381179234300051458591838766975322643777711802195352595799046106947427929321619718297811860577804388455190578515687876801021361014239575997845941660063723495455788619310299110652334758987232143552832611070973106885336623323100158301373008890627088195351665169186090310612890053792124730816155327398711972146425471005134120405213038070607471213891537390903689620796308337670050674744430050084772669971504692298214473832091425032450508730959698149821745409016664351950303529136173969611917483564886080034785392421836486808436240259627111156288145224139923372186451281654861796141503412125378344659334697439259423996285053981782662038906286754307780305244740953359839788575711604607317047329257849338866857448768374007172783588824851689574228861673099000156371441310525057142473782752270165887985458524286166759877029492145832602806788144821564651661888674253010009073507648843888898657663810597958010826141251927058825974841848506623843948753462280519488010478009877382804095625889275497738907210770835469123188649203241397959534242088394622999672210804154252905166121047866924375971186013459326122138064280260158294601715059481217147406814594482997424463669512294500224261303807059221177525179684985619198708397316087150144802121322191599104650224051642065699881475345033168450039520496413068819702298439844872820762527951196362697555994219256598406636762172846021260659975681599981548759080025084730906443287879035835014331906774728832993435107796522684319128072118195231138886727817584180997384310182321317236789203166410881544195058248782141980260319689884039212476073424939971196692242130393487998268929237148102345384536213498870090219883935101936989861735301126375383262482884405034101546876180845358518599106358789076691110703486107658821514191507639185083547606526217423241547726973040244312039934598452883339062938683008588985726340533810826559271698519225213962464678683303494687287795965646388026864045125880670428920683693470355864628916287298674198287721388842260565091185734938081146561834103971968677136636283063351646506559863488480133144226486389550810327783746823374970943478975067261352601266875365000657417570680651439343802353424485102159473978837611302985249184185075649930309240846062511404505374433110452777554806811544322532222046335516939332377051838323965344441289347673783671129716814826688248542863272105291697316834010019845084909452806249621996321070799283170629277744128758580716697300771302201579857147292690807085861941826835856682846794009156479913994420552560608861823117256134305079439286930247026886249942846073870051918643638032963827016116950077117490234263666091048187123943277229972838087620817082711327260598917581452487807559861401782974123591819814579114151774959035680288226090577508831440503935003167472679419673293922853403785543533213702762874160682271679791579900609092516927401740167812856828671562007710840140628770167761691433177611963827395502320093398821862232162545530150390781687344695606053648490757182624050254748626176813098881663583878250926230552769453038430620254521856858876054998830907295337110140821384628918204359165217152179248915392003402987893556907028663101135375644482893977818098911571786046668311154101312688436758829895683788838588807461835059604643500945292224925391187481874899690851129409982969514073655328274640093324120520716038961372475788263242736980707915166525037777453292866864281404612244679776673504888336154420586134301187452027804919814585908480280883212447994759175112359270979666701645064507310795229552182647422483169092627416682395503549838903379882758272935769702898530253115592693451491986356299747092601728417626576158945979509619045128095543637541943202351017407583100878276916064211056019413901301200771181588344006159575506929851146896153593739610459926753514798982185824712800567891139132981140598451265858072812123922353170548977529632283759612673985336256598098204904514359608209426205460900284685218995478203574181963609673629156233274826003139680712912996269941253927411995417792116555046525757222793473408185505843377387665668757356187923169486611546178408693906299716716653483157093911242052341347417890323406814949598656857751031933675808587907911151272018210209753465708320701589165695805271850237597530717161337464649582478291009093323207385738388044710028261750035828750917846252271863213980574763860025066797470275230664851715411946794822757145093835402482460311781486564675213160777413637435737190773126783004440130367101911439504741632872469861550694698553227044432974386700490203275321197984256824611630245138024587573894219834744755922678201131225473989409409694702154674966037410911970659971965466948857830943717479110379705331295753809979848747528579576224565545489032503164040369294230026533960804144798962692921392647194940120539466263336679804044976026792456365261439824864868027450142920802246977332438759362590575556563824431266099827978480154800876259630434223305424946824978862492596739516693528011833234720219084570735545457236240677686878865157298285745562981327279230487761776689701427651276724710590397196513447653941694073415401128865594459961600567258407559612784785680051187633991763526229230990388741789350814044050786066758455202989856430556928279936532831267358330938112695517268789633206775926819125357891334303931254255684132792243588705987300548382258537129101595293558051146472465315419139415971498187442509588808357797142918966174930373720376758616613518695985288112366381989220032749378720835902956726577101252965964356616784876376347880607015407098326654830533217579994288695700224840445882925463151125505298600145869345371652141982742411859864081176099872667654187813925065185972953714846500897327727824398573191780960717547042467575309452523442910969747405925911086620405411988051226166024671364695141058971591707371474139484711220716025722245678259874062441193177889364572052069828426668921295945785132529118133096725936860764980329650902158834664826456699011273421668366132500004864021903223477568112586758499723249212550096400152419752207501897490249850318510199200527793398976621675214769800382122325969879686599359763306875893166200101035410596546020920504694579517555472327427744449372646498611559503918375147621230237400669921023140477235480981272114374090127246736761642670897145298588620511782641472696791164733987241829763992747933593225698433896491634189168882718644580477214558047604691407434628000293275720009260583295318051641808167288122622048123865433103396521296091332939478833041500171983478659696829331660771713466021549215563198474235101102639622145090116261997788887574127526942954359115733540400158474978683056071750745970420292288442874149888150471046773010872808619266329849238605381347442184411712271759045738591054482047073021142205624018463999993118692849851586247888894415885503753029261440719485119427998622711294748705569592474023460671746234297448005802042770928170540116260330004542429900090664407188039694323714117617823239927191687748342286330681611084695827097762979138745172665698356191207273243880897614074917443415781663488638043439174415438498106130552210559020142450495130001724227394871980311531002607144513838848026721617371788322747774349574547794247771700552803244735337976507466745414209361205384056942823256424979311458911340818922305226457760881869010180495064853496911705887236562392868684787223840019017426230104441185633050361541085118787032997445328764813035283381582445913161679162238512779782171696402430417522961470699202249182452865805898127219065152939079701988792993045511313650028570953977944692880696749000781102061549960940817508956866848749690313747169018392782560575307396625790892256095707889809064725211092476330790667660657457890874528692246362737696870310960394708302207017989012198268074572895583733814256676120081628419343653388081042620482773737757773751558150108314486099027359894463014760558447368389673734492996879512167327237707024681430203897020023739011432614099257578995946059818306063792180617584366171544554864650824814230922939194288913635735531467055432910595694134315746446807303358436681512543508674893269383805412642498700937030439941900983975837261710840537440112485976070864417423808394902296818934749349370055771807350268330841320715463144080052486522394037363746115711448721236164130450115449002388287763203539033967935163183072260098711279940784920121656099218705224662752128978888967901025196423331574026168927338466166169296586051692882017106502861610026445856246108781507987607959980883162967544197906171591040230499298849911296928901940569254187208044863784377578053082022514776576712536559010459363147723206055689638057978890136024101022846703563117835880790936816174101668552071822128971538955720803864756196794084240035245889372445362283836783480587964252729338093995353153557644192148822752979018316445580172723827354777133574310747862440951729344261966483929331831631217966981977916414183197266387326391117750041485535272051702741734631216750167488326145478844541123891363409804808935710042077838078444206479960906460316106374387818530094329490573630346268081187297073424757978894344755503507747920956539124497967109602988483715725549040963903288644989138588636147505521194100343126685700332344061932613915403746595744975126502849185375444118236220642292297298717138150924014753267970649019042499720745130837044166049332384818513520152583899965507430897364760366672124779740574538619126665919926493159797849347099616296251073961063297949663052754443165375196787232656106004999137943139561007041770657092915630826984170179194799096449905324217845616869177745216343093428028368245686121033015300482529852739584544787405490432997084119402279288350876223554509327850492336920803926555274625257065565114838134897138697847748262601757676892499348750574114165154550049109617509579620148149951585278734462391487940135877387376394678548407375226935822794616998088859143740764148025194087477408893151897424012027791087503374750204905881489713456497958509887154459212939903533306853878521805589636379173213553013926216492372839664448100858475452544106429478043120012050654553099436618067039078973536736091179036412918583934348714502082697730690350607591604315417538537545521174075635494558276113364413649967675723570313430477558719057087841546618888533946555845965468388366484154114111118746700439321861978332874360050591192291344373555580493458755612096220201246206256169868786895892684632582283417974341966587458582652284726963062545074987080402841526261285176998284808639379693732020893035817032091611836212091785652228307228372237723552146054182645432131218955467540226113969059728119163808763018657671494952683360223166564574728405235672478958832636268146107770320677027140760753020541516681026304243023191168202945492805364191895602233649815805180767922149608659255937427849607429744610929658405839968796334081825712959908853841500986754304946259939103166431633727706437805803346999436786073945959147707506925956097013033909580316881058017367371061785363385204650988682026898159714256419047129016981384585817956846927664547026935826653736441332551164864140514130853085047999833542882689115343972456693467591318359530727615097798509477867424648210291023421469485261676393272652702755923464437322265823261641778945326384188365809019793034971348949311951666407841801335853410088425184940260754293146023252495400748688321840070260322980969097515279172785031139827965180622528670233718428144635791988469252295873483353712805170891352078760141293604085094762301905813880454791462193110518171088645168704636916685769056637992064712358418322031590657100840315739461487565376989700675577285877532972960033122579926732087644990003250015294457214473243269551559479053398149694275838405493872689872909713129325764532692087408529050426605221530503396041680000509643714998629311080842499158204860360828076223952727256530887760100912148280083597649497835214408883063301224600050498300640599087111607057289441041745400113274042693166969562322728855890943180822418407380230483157993567140649502081831308731845616925334777543675095941112629671424523052614641533005302701964752007989827249918679465737530376772399599510512408697136968119774716565380423305348531369842439721384679849140587485263098788587130348108029451233359006026418943754883430935535875211226703031895601642946110208801849266096314478638217071279923155527405943027417619238391927320581330553329282175945184839228299399919524280203474389646337675438740417756787986980409236966318806972643405120072060641079819058788439233629309670579694497872037312508066403633076735683848901933644188968154114290952229719223737460449364531468440215745611302157723458596128702494284898786580745901500292682256328820673027445057285663211759221581442195328759982458997093634655062284617298500617964812716590023526926709001685438789601537666681874498037247084404883520055193511532211793024049551460097010968826213782864238352776692691964046175622561638246048381625127714088921731863488921294940563797205137400593016340942163257944646492299575585172710029500573511666088299797058440136624241636327392556676268914722653485295645199970670637237423034153518588523874284334844553495075209857372426461511356527280288767615087955960255990043018313673153057307761281213557399769361247813695790439865951661701042713667945347306769570456072671238013018200835659836727562215627168888498049084810931061620926300590205512316452211477519105823567306718876434252071551703987892865484032173662090795392671348583798590911482742159409822090508802792651820461774064843436621593195916189590756424139076487492500351796015934508795833839303644659733292254761469044612945086434326849158571129044923300892273206633081446986761644560012024484573045240142700082802445844621417622639824327647699264204381364026469388375310221192242810324249463671741238023183771732706739612960864146732056190706300105723326828990567709130713834230729103088116727813584539772143492829963578266466557648381524624899319548174594953546166586115722193052249737693643505680625618307637648897029649890993414177345378159603881486556050300112861885607292647284185298413203336219252923640177621042618645184666679609898291254609235004802316946776677810913206329391616357598798386510601211770694904010909604393210187475406796356177720512130460953167887356170468268403149948841219678197061691199569869067175447376352057898413308133798399229075846955037295961444148009338768140530054055814306289209970867528081287976677706218140476112436700686614047743676731020705671374724008432522488238396835594241925551497942504965631941573401645804437726111849666713054875447254134222174001011718167520511169763836260587056584536522037232410605020514410663083819233301490174313341434215642074678182013690091789579776450376284847037036829959229714512690641812911251827954757556683391402175397312216059832053988431074163197868509288243624410400944003494591360728659319392030366326449155676707005316126590420075508246143766811530092439370406757969007034612025383265000934206267403206946572658217474187580292831987876122443940787477848145872693846573853948603489450203995565009930070203358616657876375520367571653933001976061437662727956561977390041438751227773530818428239050782652963126584333672952251034308712393047321191996812521042558521086667359310220877560001324856533882178264866391913153033938761911307675259040075652096446819789271155682305853286404090189749572548414024488984294835182078045637642879670853929310294331102863752914572415428515095173444906331218152497650524988675734651076668375380761488869923284691896737794837955608952913710070133701910887306802129914305559213526020529818253723109860283597765927403836609909228015802937550483143182199200525808592150813483393335961734326242364337206147867207592638555108991529850986238563842765515759526877602719113045384558047177006308008950604555070209549793434620926849943058966991064346134383405388615838764018797462009740250839154254450120812296164086813325852337809500440456955732985398178786107658921608132839673645301395284856629039398033494457400555365648668347909818201274876663446947566418560854354542151282682756348943743801161100930331814785000748453340963156135497786949441922325603113918020764170393898029308299727889955523656887573274750747484431837536182503783118408067103828417593953709676633033335001297721873524970330451377607860924858476886596759641246786531496960840874003718589988568271024420472394411230689539463476430793257566113339071607148059306282231218881527571139118929829951103472891128788522319566323628206028608428723934185824736829718547667580064273252892208978903674074568066082118904628048771784083679210923177043427078009318835613095092747635428264859954229673102220896383185479153227841174972347989350569162256335799241423191223221507258759074187458152795606920943756459195919926563097783966619986342819630438313536526226062434973159968594142741875204457846269255814417677828396688437243308364479969523057541253654854044042506096294737343403441075595890908696814585306385395944254401216231655885357555553705168279880369850137849474063070425171204220447779745588369216334029806806377136747034009778421110632241396425845953323076607831943768716634801953236541255963483188463419825736875579637963309879859439676785215404802413181424116597312336681573269716992275719919490060558223526746413137548730748808137243574188611412891041358730991913521514980147153103110187392635568861916023381600672270219929383969025721502260493925657476864650488340883385704983843534665726174374543361661744175230631541311522853207821596483757031919790941819582606929033586157590584348345162047207823899778340114449261334805988161200983963679901337575275630973249152593637116773936435914873120293753903669916845853186648789390209725363014549298832718467370416939780757103394375463041564330313527297843096052223102763237522150114112468349462249226930766795128923672438320369727116238904050450650880643455175922558255790124722050872673872494740578376556237635732965427113287532751910826356231819343968077073349204932713562082335279267488947709387051833484425034380944910880356245789908403261480040558996506223143421788097009256129758839121201637854245870928188345838088642830174168263783180565622271546801601832733103611392194675520863493104693796418434950687778818628977540595328359226926696000289547750896525326142482340108333780249425384622514157678190263191661879403245489227013841958785574299527217144728386358742452452849565847360513470043118801382788118441809689823113292626165480067499695481909713070728356623736121491639633316551115340971199025223672747506424651737609287706817125153960063314014707512293157554292961458420123163669309934991517359174345632808256702770807204896742274556360663140446945968927513824634354955866733657147546397304369320344314265976187851815837938703843562295294911972886266669563720795678856033189108664620209261495842431431934884174317774787266072622926719975141590803255229792919781564195486709137079321245607633590268212611667266036913548859588842691721106265729076551462122168527010794969471678015630364491799382493300398195147607187893790777107142110620672067403494775838962750387558313484171329192146167963429124717738215756131080977019812894433002196116975757745829573053125478911213806053861902323526688504058084608644377482632209062521406768043899397091534903818308317694081234494534304569879947824864474898406694618046028983813477505477091335767843876322751805923550925370988386785438540779503352841449917891172762137481337545110908440730981140813823643556280914374464454481822824734617677258466597150278070537039463988072987501590939413631022373864002867270575454400411950873930410833752488644644713059862697029673374550827325611422503602892473706008720446206603655938264975108590858443005718193588047157261471264133478206824609146758940379914000042483933915191470849828378353233418165335401080334006891149803310378377393197694617658471819344974250264797187405208968525314474929627036794206404398727573081094169905481801570678252861593823397703648666561106399403123313192924096773352659775831861452945235805176600145339373217451792012321993007941736778235033841149904959505222942843727542010146146447745480457951902278471078099841294721053993752531152900287321899021841843373122440135871469080930730280976262692931837627460074245235498707013735031623322437194267836045202719229981789803625177574343215479131943271489081289642643371583092162783784471319764885045531006477509087958334192634167809317203163434350945725267881345927392363232083505207832125318661110590589904138393424525611540331761610775333407155735363966803553795875340587135746609875027646613701193639833582991488374573447958338997804965475625698658351004882534359042459769430469825216051017433573290234122389645329640346616554848090468396119548418509548806279797005557182652842438417726694649637197726169833926802260068626757444520062281285792400136437921065144365122719827167087687992770264137253147770781306763362329941145219490448699533803419597199374977205165151625953694051391241963456623206392892428768600557954165152323880075644337156598600563682712057539539990369299491083057790555336224627802919054858865494924312435419025079751597032976383904120587555800024941246716675596424991792049076860734262883330775767130817645444380414784490851732687115482934720735444885321831256000572773863599050164188534122230546384314979412705277032425945888759899403813593722650763116766711063578147288390670112861910946044026367393495960538675552492717002758345394082132923678776972820990975820974506399677905966112194580694381105868491700892071312961439918425046227890528194390611587591555772736119399286560473524314119168022225480548690255389004948001871208383326197465357612981662734901693875687521988398351204354506432590907285158778338630804490164666086377356537905001954332207271180617284039248720142759331038974557601567132863372037042367170355439743940645594363403326343437439709180321311126196591571573758090982989992472836954244749959925526906818679248444514892795538574742815588839171642537331416800631658831239352826356188717432254773030603102716693062423174784927259960100912874559989939765752791597637925628230807854810093668523371674818398311229655681199721231859856690958380636242083995629722741447572379994823063149285938725735528421874007827323322384706981702439221624911056964242728865551617975384136556013492597593466000145697323425445198063086678903456834201683879475159988429425271094264317957429914494772333431452225897181902003798037665911767175611070442833820091916951816504380407493530862002536607445015905101126824405704519889281975553835015893386600492212132348634512524199329196335870198585938022014276209300890669129557888393685302823453614757746710075903088005107524571253232913922001153857911189386179766860821916053587353806026511106221869559396472727897505382060660951949633691944154766316361500276744347894403028231157312921433987014803352398310758073967607781827962893857133594020893843652974281316135704315037544232417486616386962808759053702521749982413847748463361217314105260003316123460950081267075616045762759781819299009984238779542862604090400492248341362470677500864395292059518952516523226089711114943139004101763823931270227053838294649488546827469975149180950449012690496406201366970758236718589934080503832327221632539179633100795627480681348192933723883412526107185868259918951307405386810009940332415102493873711453354644895820036677343774225041979214843283450137301540838545968101471138102358953298806815442414113662718599103073312298353577278800096143691674788705236867506496471550120086076912050414494422146541446620534814064836395995881797498818915625033446428582293273481460879904266206143906748341575832961100531140076207116929100178313499701243566982405900542918921071829739697177500957131560047158844605031681399245123040614256095682328594984960341812954158372709482159544654158416257311958950965504756416805108155359922343813896970199133975769443151757207229950030048123902716061448198390583567198065026148392856403597583194247811918006015436474915684476773224091749206437712449837056349510573513228824049296424868934945529897715450885898541779422491370474249606228008219325376393334468353961433265951771265924899540447086340248511485108874659795071842488985361286001730091875695898428073880965922217536749876469572397628354451029471034082345000358039569686907124976510740625518281556491228479621218515468631748834071693300786520014663417270559820203397914219388474826159217576830876458840678918705420471917262222948620943274728643373234305588764785357402289723942096420872206301726140973140783006447884092744668354736802261457374618445340825305544294259095746187766670593999733836111997405763726439929444306695021681405695408251921492731746803339224790973365261415039394624496201887967654447796371427099006607647430946973611549158105798072889044753837347422718459674027642137525823421830376147467280583159093841478098266845512672095474784635492398431286027235276529940478634735517774140674154584928113148328519212786997567518075286062909985158934092289135838628772475697279832000041390004275564897953032462311981039406715179610262647679578162492123068793406783805330729777694152920235636159104770989240078851434611933067244123635990553821258110708125480970440184977451464955316253797305382871283872422807021631133779115160665821980451647254947232142355396062699738963335759459438141245781252413881554273254276743515560936466195704297470194676394927226180802749249083076450853282480076077348096794645493182538529715298442910113070432277041508723322561196711664354428392325830994651112464296317685154947320233929750402035283007871139613001641893829068945569561096917913322188737626132251339840962446711817309988242656059987701698008325775359241728351052500689641776713724647243864545497830681691289464612713465404520653899025795715427015684625123157963201744323953483242430150113576414934463209201760251561736070186580324100645913691102087886041048567651851495644851950002434054800012778905318076224150619073396723443278616723676207197855582782839705448221806117953742134564857693225283957673976817510828918338583298967978672831910064454665528405492450970477715464571953029726143569912117391084812405695595723188695261099603095975934902465495994557392693414223052158071036829126788441550910558406267082229180068720477270695766514421201106780121070465243761863414770761534345309444762199238364751307222217318804432885992275370415853569942491222115258543131825889481497496867097749163446520092650034674818346482539562002897364254856445468355413849551074223168582394538707040513928848584271706951489341213829953029239803182422476557298787678004012250338397478616885912064199544365303690806313050858901202707747464586238038052253237685026531987731782642193667695404351218029617711034447512164671845745126801803758806600185535062917140802220583159936501768770973787652736670257261272653933590254587588531588508596852233504472802408870266925041537018652558879098553131642584280221314171101379167350859031205843041452071782869209805921346434660117484133603410551343155002592296301452869957218729789908906900269016126869526652693412601516507346308906686624265223465786958972133780043916886101783724279161270369326909302998889549450601586077879191415150098639582980143403581299601834581594673100892817998642726011427055020458729705195268502849088544496814174218625899479024867893990101839571431978688638708653064900809347910988613303675224284409823893923742872330916552303708482277262673464388385205417035369364398851505463350414947519542652471191079490288641417562203073345596825834106884947538316577684793134224791539875168205368821208214766373851322977441567642014007037696230907665300025315881499969947674692075795638398223603356867966140583553569767073831113521554653783705914318395270646507148289058729568052443250435612173685712022422311216855198156835060157158457474657104332765888126428890107482507367036069553675960154663949137024923588433798551260447808173165273368011631364840564515512836500519185940437737768169976486809797512556946823427200432404716100382787196302349101177376957699323513996502412140896222828930427677711737069497401839883915709990479662174501362469570757513712352677286982182293859033642530188671017428646204620965690271543267960088846771976804578390194586594664912618434849284114840469704647352905971207289135669096687744391818419110512071635467626452942851292985670201978719919903178454429431951733671521586399502032086975006524407348496596986853517904349331158355892988195418454094505359734041271790890502820349574918254717664890827760035179477689433965086578287311296752879166111335834890467344137680977245610618889827667678560291410173830016572870933136458757291929473326488135067604614504611617592196296940892569677113166766630148973681093389762533440648438853665235294358490070788174942712808165344357969780948326953041164381989330648272802635649306808798358152761969506058254893592932867001914046241957821064780500762425975193683198060859909024435484375537895596682108185614049457366066395381742480279133148864298553482897678116307236734747360436308328448825756496177083593385447115070643548624480525597856893145066720207402412868739431903169136209352390855710686435617441493444522035336072595168873557605886917067177641647185895133394965472842160402268696663905096708146986655823948591712825812856327362677834510649022274345292343768879366056492415050582568569939768951451931420307700835483306927628867878613630829193135629002228211968489540261442570904184448044321554315020308449687284096074004355154661337524019809552406944141038977075331335912127915357182147109901567275428055109203970595580195965477889560571894818518820313799315109921288403598395899674619037121044708319604822110110421875721605504049427602101942710835978884970708468392246825337210900182774469023982047487511859841871700905684844968474897033983511813181910556179210678541759918959808728200212322369626525498318429397620318794392354281543067476121101704265047919886412757722035560303089256755328875288624582202924798875776000502652280038502412345895144321956962374498719404426948220980935108876202020558371997049461049972353747351316973286914928241299463612553473073134711183836773960265167822001626712032272243111543179688040070368742965472406622935452925227916812414342467560145818873757968950922639636418032649144161113579024041537902990944156828074789309007323137696984430648833410296647195249510138846413603222638427933611119461821560904341769245962326848304259328271977208727554975125435675473243269504318744572715366440269340688663340089789461459568917041511885601408610929754392049456177796817116486744763590040955849420974126471987762951320221688870237569866008988660277766984731147564967984481870637116651559146820707714404343743024319676995609191118528250045582986985499102816012110848741627390509062578362541706063668894068420265682393690878878415373857093913233953278449101142800698903435869264947175651284837656195701902694590207837713926429063653079667363239532358761762238378589029076985408550330084456932369387620564831516601590411810082042444411933644967657793594330885969237915923594241018482682472822834517251441473753549043573396756928416111288865662705248242449569414827351251539757431732910536941570090717340532310807898085167972690942183016041250296759057091480918728392176895836292409198395566184030325625182677527441134029204643520257148520017165877993855966348715592670458816434627153441568658801461618906723845878832423140245682157335221089492047949931109754224744392829491964329479391085562536709225812579218532476834960537429532518168982460957728886520352906268218293183978706193038008511461911065960370487707652267192267511975449594007960520490907157319846208535610888362812415693120452150185987466108928631327014205039162352154702275589863040583421200796228219770594626026896089100785736978353098773801677758099409877144598298239387332490206942882022596536446072936103910934281162322862191853329810537593119203758295080183660066179610982822592387766699829521899417668211965638830438018094403049891000218671525788204438846223874228612834109275273700074789644135725378873014795136784813673000997983646440734489747350271260319645903218237576434938634883624284516356185301336599028290519976500625241919106989943450199246476606699977503155956195891657234001706440093719677687615491915971237562686389075315857906680227022376448540166972537075962350236824830644951520471488294566129394435446419429421689208930559222999063211483776483949258587205075755748140988007662258298926946358542085135332866249787991479744450473194021399910601558889148875625542008291230668293589256758897687584371642955946451996109444286609970672221892964133311500543012195916326179784456318286220603651379992028097470858390298578157379705909426176344184825945994655887653091294564821549952347228396051442123452184710690400862762618194994029715419679114544753753529370089939642939252904542449172149603376111520525401280948697611195352844086257849430066727338564327664502274893603708384421156055692364190695154212341666456049809821976797214772552193612645980129667238655171092245273199816406736414882652561072872888146050517284758077782694457504773582991300232919152940015100187197045585750339065530052184489340680696887555685039040603974348110394963140812941359576167356921131417078459913177162708455042948105570276657491725153700510343111567829044264766654618328294452365064515991645815000601424295953723285778867386320825768433051692477486430761408181153390730627922545211579102556786860299874442187182937143314667596550177036906762752668858871171360832316469482881461305182241422042561925808939730195135624017288719634759993005710698691023011701736339404146331383953547852712447637031714079404357589711037906308428325255123977821256875813751183660431125107842743744326471775219115929006722053888529230169256240800031517019228997343613736304055228637633152446301554640174185977077652689376109802790642732687054078653241840503007501614627094565970921116239625651868354701190187861185970274294565951347468898493534086657860683480438910859697468950248022920096628645038010857368761126695478513360800172098639052520800572149114438155453921149649569498189242839857948383097434605485099391905047232515568111956785264115786189051219083377960099333432624307234387304697559672940923415661596111626270635589578239814661405127750076991116608548499673812273203982291963528781388950013587247833635492840423231738866493025084528133443193443358495474783701070243479099884352699795156266199827557929208879517372521409065051063312789300921976946551143628357894263930787427269822667971732189557269457832502770267213818983139639599545146403104842471165883092131937463292217927063193499889949939686209686158098834752697748503281485747014133873276585485697432711531453992860610666503875019320834498243738594216200325223932115982709645742286301673797370113577246011537107646086552695168726494465790266343036422185565570970832977369462983330714020270262096759624811145302213263958469652614267308411597414615875443439943158854994873113510927866162943260758004410638304053292043826923339542540320764714627247513622314378759970200108272419467061153655901838809025700339844093766443831386238964937992219801711179498155918421396962214960252280262346599549727544855386930004599882339402078203503779568310764443389351084073535807720200361861372317506477281790143656643180564211753868999718689858457598504240641065419198838372973261460149432966218634316011626352249329312854495626550196286177251704908131903999289710056499661687346533303802481998422254944628224874205692629388009543605688416900685273125351589069716072314942747280618115403979838125863768808631486651882976223416716356111003683829990801933477661445777492411032530003050686994942930989987338306120066519588631763467195657448633468644306831400344086240059495243231134868683634951539137091682885298946869649739881066079922925726054220224907326830303486623700060908387475839320461996375790704342325537614221381496228000539502025006313326576534998073829814160507357466216901564460478595634957739819942248600349591288660387307640686070193999650773684028900044984589922540565160532635819154514612821337525433507379778717656435903969500164468268441023845195497764346192765282838196429697187644599523348152891934513350347519054137682300529532669157581274371606777062860038992262762788876459069926790444147706489258723852652850472534975632841274438235325455543507403501744578460063699897861792160794218915666710326739706834358039516453997306714406537656124576945869161470772342372954506181556699140009479932504713225092742197367426375253178038796812601019674141744027070286479759657554896247515775949255061528729346903485898559735345151917289296363458865322935506211768118565846135357663880816623454039201838489355288406088569116621706688839411354611458453978540201887399820612652385273249542387972344677367307497261212535476530231920626249028934908238649821441028117576678787502175967790105803854392056738286286703753530845185582859240613367473589203263182726883391102468623203075952360649893329959743654342090792812509173897506541309476486119794957819914905904263591908900726600299427892970377558441881791798825276721790351738893023009752685275659347422612156396960647498606292831880784890112977525412956487116994728997311032870987186182346122911548989386299540526247625988907308506781703670356162754734615579292892777133017569135519369232043774170554774311718361039376954701418360354914558650462131687340446733961987815913975863303662410345628745545056184480737886224849793908060160339619392911294862197718831518787634514077975915558421259856076716943568954010275802533829135258250287263691091615757133371947507873924741059987342329702150209453323287775520810781909411937173660824960971127943365256710950441280998706603845073867045149378341963098437882069482350924819971887443363028955812157906319666137000785240654129059106428722372898103504605222749326985243534301592031664425620852110354110367152423362319246481374723471283259649940187623863897848416837415628008074942687656052439700229820263100282198444814947422968271463176140232453270281233843184929188873084602063539424541943655542555550889241501610638262656887634820194863322415724162253234537284951752774755039117135643580784481280864667994749370983005139809015535728348982497386786829613515459237512633228418285344678853959036481467706707612604344881612480999502957206045194669812970111645721777518346032675330134724639143763561028513008514908723759723529477062435144290271560948121203166462961850021160536971469757681204929512855884406445492866687429310095556436027111421895241655937860415341162075770836998876302249526575191350121684071386472682553173576578352625809816472333553911605614527035939491831122343059867611150555758928496627141351947875725718393491590458195234590552387441987878281112273021741397101644165594999491080579435459729967681926765078375233393786792689361498262238404609693039298882528008520661179680221380348067063913164154673677845722459527403762602678657844599753632900337104904528702551340659708932810165264739762307726405929350102391964753302674068291435309931522914520671503572493889818368220985089271484567226587558874394897386028535270507586236295187732177400368497914618252437741613043687366211617815945941673325959266187770708054987098981222725351688917720947048329760654535336237939532717715947327692124755173162234926610787806644053761353294786279300480804832461002665355352110914683460165626864391852691367792929353218153213540137207741281437271593552214143637124303717083519191402360775936504171812011726747188523516748083892315901583036294679995850876891148003187773409337825775217578595747435428591738825403442018768554590958667052660413951805883821340413546667773152038356090308173134243746673608627934001606239902365490522599555224421931063664737048011166602963436242612717969838311482141040056791174683842950783239306813392423807819992429642122096127338212286627450271305495060417266735753346012629046703822141482745516817615238778706325075515805258343421356149639457667147821425831519648204315616075765905053496574728740483229522924316217108630627802049475527812804028705923129833119419105353274073691386579672384605499138186097047897310754161064826273848256209024841293603570167216933495026430185183278992092990642155520040142667567760260770832205953649981963982355141468703718742531064951872777656406904710581943910525793998712904326010478439599964111194540831841038037189027882584528354147921279308148650873277878107142244713021746318283703655827741707244283681096630645302856123608998994651732301459868560628522709934879054798387941954346555519326635021251116517415710433857991113175833848034959874150827137970928709560067554865456755174618570265710750520749377897655449228262595240593899976313433740245030870106560970542047810223791491807509176189881544925858770792768693064771091130498737525198721403462688616422345253291165463689894817054046099439828248409880781540729397527514364589481936587193103846443534185685092296446002547954218755072807846554907452640538033159900101051640564168728238091205305430619071158827968674919891330415717338571592088510238446363897748250045040494644294258345997703510628988318794814361125888118425731213344840070434336974081166539986696588555274236301227356264070902560862883252750316763578616777545601424435150412035489983511082577461729894341642698407020249687616361041097175437399973220265343043314127713460557282917564393299927528339174677882015071682425612107832613781897227280662201682292130945076746344942667044523063421106324128151053470047192932281114032904163099134835445152763768907663024958716983284909761641520803865620158604632819742935755824190702196774134142898314187149138138335219850335622364924394532207650695658773010412756690087255679603423612987382094483303391002028147817530497714812289880164537882453573376976310951951811437998437816727943006906672786798233650849172811959510160658024363020497110767743768902017888843320935019795807793767775654351356474685958267494648943571434341679422613617233772535577853627648809712780328094080699378233022437953926855389514895029398956140207850326077712067575677014845619538174454418332008015710746232572375818430708537885366315268165130195486162854796690765685099575762042756306006319059775845836977742819866047294284483557284035827503963802333772431512101797096589579353590400237051540638363525416468216288962414261073605855369817444998560428812506779128003121220428089726629955135506950435475938426166569936953607272533646089966208233180220850182275720894248136312055319661626222153428485273115573617516667652260517279562359886030252264383192445591416995314389090954211927542974538518687913954234677811754504684857182300553462333089307079792786039535415063445794191868260384300771395838814495182355486174803904493807125787164219288096944565076606726403038968443867885166401148736276786440930194667831852105017987664935586894276812020991215594233985532228147066900209866685842402130532978627735999568331727928434192892592358987812120538945627268681741193659229206202588928592835867360873324951706007046172210410876948438095745145853606312057510015426974205518830805270578719629953014166629829132409141269614527066711108958907940270287852441892513427305918045532110252667599866139856371366023867126994053401495818462862703784317596692891509904636572836734533753771119046592799569908533741480274801944351608874378104169073117314317571508819598418349199205562179902994673641213100483833342173117608393399522495138874911533339361278473982004498531864821681773852010462870608020452471342192279384754134679455072619153075558362990121741988129576106094400486366693125224589264811009634556568415515485111766655944235193464785813621637233733824296455840011649787920033576533790675188950002067282693565005172295518393592120865700881482037302051534344288386076480043937171894058280442887499397339594235836359147244823110598644708919883552855907828641753287468149231695514036552336852049026840756976811548094499579911879408823844642526474058341136410708669451292744957733783855106921752953209884236546026284661039502952164469447705791231313142184895912987750620337224142394389339171598510721644379354904576913297246309354436755260825704842906476089849462127830653771331530413619136378759589661418945876678026556026689255139741988599964621511859187662380841167420163747581783409514607190530869586235987818710449520296960310598253592236878970301329079768712137603908178668483469351622018760763905935200882922525370859885352655134566831009305281909536465142238644505943980505717526222098625708485448883713371757769526882626294229260988828933289064059052790561304857851295588486235754932723275873628006199385032873948492126796821062384760885530152850630949892782097783181883480948772508912713471275406903712739442933318819699207369598201054870917746654858803152646164861788693829295997785351837376728638897319819668071578697585798158838544409616691131026744124615367071689247742257319244064349051523923810155416121384029872384244252093675450709541765963102452988867861610273461439053343127743397854565163791133393040277892418262420233497291125653099321798315042127503284385468099784206596914698182076924583492105742938283724399310092065344582138397171561836964453422315750168206787715984331116688460745654346129965872914016578722324906526352575842295892486154346279272373917273067075175390247436752522837574615366237282430515752772912825141892801265415222934485520517238906150190009994365292431989562932161893035294309295478421816987793638137292182381969901896532622536322421206441365921466687198428070384017831790259800225141772995433962672460611611830083473787764473986704847351748953460977300603280068278904438535924966519204959193849394831226988814388294682274508830664668286824592488152961021776015866257826795304154114408176537462945923143087944705379333228247768322610785904814036583650008821726648797492166018697035415256887057514327652029903425252986736380301852986897072175414189350809105762405017325056714250481330355386809868325301674732107680650578308652749069171698283805792458160132879142762495268044428386884555548230404690681027299374817341208763789573443501159831397540023986780815113338949602278225553337667879224710452096959680343672360611076886067817241188937201310133515170660401785499971776480515182958416900336717078175229900471485923766253280371989705070917881521667126328307881348399277683692794603377983802722570956207437781528267476409859345411138875419655768779240674636802256753307477013856341853543019786062384735500138323793403053096992038105832854490654050162302930706377697288919781888306089582570833154328949294970565074779911966443386474633542553925321205287911361173456147158583181675437374263408010588651752413368777658786456205096804880131513817333718671229510700829665208711659325803753359036465925628390172436211219370160230098141426116159053314104573692602342476002582264693778497673047626811895546223374532293432822738726837070600995402787821585627179647363005106595113420830634081420713871453265365448322664386447814284359786834994710001219371238204780539461208274339315961347656523625264608489806386658269218421660793915645248039313085955984286945454529255036183995251246990488358970636323987120118071624873455951160964283823826742109294370013521824141064254303530970267130903776267103538295843452111266111415608436731135002757209572152393908873352689874480357356066679983915020462791376266795406466578199415753809227124860397132690297277489567054051641648412475980592449677569310404514187369571499343167997031211326541422117093719913248833440041484604279067549688928015484032071367917774876098791875141062379841442652172561918331089691774172930979800803103653874601207564415668203777590345156218182630019939676271762999512825007145783334686449939155503935736087845657459779263542224546949437621287281104525343285686635026596638501272214616472714481686785063875270929786719852534899120178265403668328642461696624770820610845642640842142950341655459879819600444564087019807345747203401217404732813683837101353170552048659749176949685469532600993300956947624770539305077618482932405404444636321771225877062115699165832613082402996663472709857398585966823196227455236315731051683786762605947966391382471045260028972491487504256819272618109574909959401071069341409946232423138925214613684238699927563789752565606951643836094871287601679725096182885614833701738571637499764515762387980357949541470064294657524608128968684573870122179662224923764129693328576099420942789163465532111877836512677638974897930111821359239873521092706107378977415473487253525967138092658001058368020462265190350659494340229635275256034956386919368237344634675425414575480657572734717086138141650458684989819693761977682013147938971600534865560383875343468588111000328038370686642479618297079853915595644489436918543212014276015710411925287460099307006171672318074254697647932236755335119973187575536079388299903711452317254256866536977038055388146196762141807702120690653652491956005714587808927636802994698931428768681287211178665906582435273089962073467657546303897618059711724995605477167946739553863434975740643588912645619054456947367822449525049901917634735531364042443704864332339052251693458896230361132986930224020676126523556475789564486374322982105644918235753099098171530743774527696281293165788663606173174534972014040196455743648957296747624496907998629533998637216950354595846958203180958466647222374367178218408939374767406213558019575017128516555495413279709919746289858715880573806011542184680714839047121485835235300251423288129143741138307352603684693278926625668091576809339026666884903882284993713839045149869928012497043511050228334146635069340174004034996245391227079051723237897725105821784158503282877566518058258179169040255400134413198529857517816528094575416858475882037468037043392983724837264181296045588520828094361973781527915652766787641129614789696657332278659262245530167713295025846137424859006562120377368115778987030749339844317271380670306466930918296209658343171823707842754573849023758165849124694965967797900152401349536706842551181502836862223034264481214094649819869837196145436667942846721012176219451708119440356449432102991296492947302536797808849725505547203138398418829481929785023457185419250396799559252544105075075379063313696773337988339869401511371748502597068446199135867658783850578133516814313057705697673801762096229353110337861939188481087245794159332960499742290430126591399588281632054257354505963908410228382857479050261541731225703823926930441495809845019256226029914902844002175956803586664455066244182341196139703595011544881969987976867792663360690601582709690089462330431699198589078517539427300093108006905256976513196577177551563393056231524389636293818936396138148248093364283674456113327741422390960991155294173918452460629479207051214522777175109564823627701296824428342149447571003440629294145220226467091997693827104848284686387145477817930048594748679508027654878958444388143639019221137485415935359153788623305189541720610578595286011278931034716222303462991141005570099935445651039656556605921738871379462354960215981498366694724426974405988227804798008704299408878846154180697615658092232687958819412237269222101446787735479532852932169714357626139887619848312805238964207881884666524740042601152017780120552228377712072820753734237803650648549697491200408149252392655123232224608662641912906805621791025633843177651908796166033885771350382829312571211249720522957458237930633589344026778315561002663262769823589897300788091370944249917326572230485591884874499492754729321403871983987387228401355964034170975027759689095577086352596714994703899537581678212273024095330032431593278420239300842862288723571399225604586688331822749841660099683880694361114013654985113724452553474937816524838777997325801925535187114161862959714645124572582593991958213438156647549797166668004422698865047954430630096199496208122593901854113865398014609497058296453870575449233900793745676106270396398727458510137199111777325011780607128798672246161048309793192775013162617662139927968322408157634325057760884284642509346197092692256443356607146421363552990584870371952235136076408966413951171618549059763302594456347238502450923469838202845296989520321111059922939593644746282262147008455988106977323127210187993039116414187164545109675007831807268699300356193376153024231511807897531627505512814916369722525335841273480616675437067798856396014278802487655140759924589137994906334325659785330181622456882980906185095124916895225001053836247929262951255616477050321431595554256556259073551619778903067160518066846652589265295173315098851061778978518876024192450673926945404997116986610451517621385834747326697390857087665221875885627226450603632673464741319783878071847862137357667681313218693544757383177193494438384067129079481481414940021598416772811173611142835449607864952223451813511048063926247582827415061334203149556387495186895580924328752019969389849036845157207448889178074746058073221459416981628510120245221667469105012880895307409654193485969737959207764590848300867771046991795298201660518159077955413021539661330821891583200413774805107837407334187456262482336904925034565561692565315346807214914285867709794268557185988723609911654390276091378358351833184908717139382163563464366630325097531513810134458870307758990532665311987376284164645508552647707622770431338585981878185166892052239988041113830407192772416795155519560119451875773649363357666208216206230759010505379786406631711605905089198731127573423938207065673638360698092609644409656780984237437921083327598356818180757886968163730606601521617974330287599528057591567542511928563198298758897769673323759195533146549286926019733889676242352114563759198373334357202559298896725908745190845300938631520357289649463646667741637474305233121771728485421466556070514613989549615233296545683498934545910469355389856106755393688219515073989715182141634315991739741572871924725293434354878960285669955135284983883522010559765293652907088802404122542623245107826940245711371346058689546434616410228796255683216591422174902938236372069721231487109572059687780696420660028531773402066333298932486708956463246353335740791229688365000267403326983643761899605793222592475707810780305234136214392088673330680684439049679998362947247338217967557206378005288760822481847645077577819318340018408041467292676498951460706221863865095174499077559648660791997636737338657356298319609921477124166197788654397033472103740713194757969584684970614836162705151374259950323005166007289996044329589338005102018914663124983381813538700168229926038175261575966579120505325156631412535875611568749332585481979321789394385908462923366701178491516237833509001936237741198168026455542206007050534278703280450482126763513734354719727487347394691855437940181506574361959318702645999185109798072920185423552156171355723080629664641847269425478123186406831556291586864526787802337032525582592397012271893096885488681873632326324965547556713131330207022376384075741239704543534179733017157671968327987169322917476040067419099153618761013089414290062204529276091790232906565691319743301021195799138183175349339774342661569118878868452596458058769443188561797446070994869429617710940428296787552912046470907274293548618143525304267600244748247170951172267512775084981483554751006540944657327526454707808025348520042577419907579628946593065691701747044854955551519380444443080198478035146494250406087011421267168028423112102182920901829157822219026312749772578258397837187591572467245023405394884835680012170187810967948661993039180603321049592904063217708459428635335866956850482092379455438880095056602478413169829097895480672770177341506895389750361582031559931508843524828322834595115327711474128426272429951143139237117480289439713370086118660345520944976763980476681067481686084174949793706553707792797628735701979693616578980637648076371506502325935204351032139878643513178910513222265946426792145241582274944748599903221043225696722229720018966953745435945798273969477603878982633047309502793419947358916651129913932141631019035774512485879617871695988435417014963226907275565654776710359081697429350834667967491709416488264846620889171991691987619976452345563431769713355777547332003833746893567425104845942093380274347137691601825154066037761614495498450337880801756412215883058530118446978504067260647381097330391678075506810974995444077580107684439953300358899803743399856869270857049077649129551435848923092444128231972649568047552654266959774455812313457293857895235645664926934816509119803859996871525671642324413693875680734621186911885607199017581212073365625503437830934019205563303039009604420715532040181279376306912000315375228645703551265674474059874265402686712613389889385566237471481844967415178860743065296567028947914904391844902327571032298584997112332427342786535784476559416156302484984233395333895010989373550125759672692056235604069865651559490626215880045263909049253520641384945467678945106833001457816661425178944317086384664567280501258304376940389850223785145275262533063859208835515921972448159890373782185704553407880781520657928801211103799570331621764213295350479014314325301849022505271842626915032626901802756618066588438137782225911173653260002262290606556026188818018363564479049282025371306150702372455246382378547586620254327377171151046291509397942602533054397550622362527050249370430171603912027986025505825652713514585299517399923505720967058374637518147992385969554156343714191844814876527890184848691277408656400839247185700130289562919164251143473996412688409334632356293730536588173030465588502715681035044580723755919878832387017809860928866563380905062519002797765350828318969175256895570975791429131939697840787196722662492090484942532348330644685884713225281701902109815848475766965755715894300896085553798730055004251510773587152820393200148356971667656199435610238326373876062147103582505420590011355225402287896630005965539771366608192237845008918660387946276856940716756244614136131557721187771144671791824219841489659089300428127927655914264057486236462743283024035085894917580227915785158423268106982468834290738543399135572321609030773597008853253385387790068553646239790477865151478360770697241818160271664631134837554666373698092924950986414111095200633058924485282541270859129537766921103652916547312498286104670339568848342797029819230384962548887093084203816268554334661824727284955559844003094087699015694624169159656829047045902211282626908051610664202583723639735518234741482715208992549643647292300402809193737716213090470991773256978164279892011440074407889599830275505662456380081262619817789947163018344856501352232140398514284043685175233613429805967937831589168344606118032383100071304177577563435475683840212708277479294129546910189498318788337034165059572725858064251615577931065351474199572089269400421318119556724362678340685540647984440501173342913040386390300122201604940483224115464682402726502137336756994985802176725647512818652179850056933749948602901234951160173200328408847654003762713517301729975289471801356915382974852203143555941277820687081081902753862883560953966956018135296129234530017461837859030532458521953497479340002006138926212523348037102583388746212986757180893989197988580796502499254689360462265880345046085902579916687592068258490734046403172647642044095860321909678794861474691490055383215337881806220081430881342472176118091675360239073694242204600750376033637549465721496661613584248864875416123066152354051446466551431318061793594439113939105656566498220675266511119796590111841843893415037460773998759224753196215021852974587873458339485472276639345287647452943706850303723324781730847062152289276851970326668730363623117543665898739529989391744661497360727640132252859702427171007091111502650390993172328139313060804878316062243281936043701890944862710762132277391474823577710371432330676390018179039598848074520389032471783179332405662032115572757559942412018530176193988981982548257396198715197847150492907000571484348011201197267948983622442254628566856393751968372323663332047258962707538212169579853517219802672950865506274758662514040245701061384213634416162629934199311572445334084884098321181205132988141465202537786887698983452913302996620917251543463969817857893079460026734960782035410675950149621744885409565425140272977168685749561368434460179236944977394491542131577448542572298571525459609876659415237793489608613323868294978947725912120196776916251513339784326443815283724366303065053381640062375457395856733240033024641106597440547728812961042304883662969907229227072054429093669731922771609485627749140775710202381579450638713684106478754640039554565485312553116896835110713720677068271356370690376233236011496471780653678658804459625180095222688288154291735491711005721889366402978398680274615453339488976193256094482163402539082702492752750843872559323502612396325878023411802956062084062102827965011062882570146577066105512049006632542159841239055983109708124090536773668172930689910703014585943975320297518296481749074797177821083177140736446783521221864696770534967844234243853297001359147139397633533992343661476046858545876973723056611202917257754413001467161363534136012848951637436215033721480152406743113581364782517179490837609250214417540768252602928464003200698469027455752774798319321023299586969309955745000277572143196049337674989361404377914131217722761735065090368498463512453484951416328227327596211155522396562503639422554988861874053253101076303757496565446341001193536449256431248483163045695840307487103359699698711647242490092776859209579753742009486550249223483548534276020470140568201396455017573738889209064032891624301187540437194513066008133407974087049729943456021243509157828203035282594699129691002528678056500770781631863027713298436581496797362712624057580410778082745322502384064757540833876400652059221002286672237740094406139183712908494747611717934884445063203173191380314027438823114816633741324506042127178810988365711845815135289824661039265951242459228589911430581026116409049896685187155161260594107762871299333293815609932405583781566570322079162715375003258219431201446038531709238599929261483179274988612408206741603168351614271077438419381259517154101033433445302672709341973638361188006975587280731077191301629681179033482436404787125993539929815165990072929736310750739452704146527576689692693117493155998981521959233399382460052808892811241186458842011049331702510304525815083536496524903378995860018132767862753841837927254943170064258602917252054108966002268964897055950009144985758925618213217349326643859400879697744964244034808050009974579952604499639122045620693346560970214290202641469922620335211501417279668107185176531807452828116442439287458899944115585852975116162167590108732727698694001425286047634361235542951491315755480791914428090694685986256104135083803226525902225304478360969263364236106405092143916004132578146161612154184273808478306695064842518626510804025999166441826633467490377474454484148965950487073367094926790116820909142712419616687674788680276858782803923575321883726622243413193463935183467521701700747599587137998192963410908128365691991233298917092091234692716328936600129119954195619055918183432981344944439264462108961942974230510218245730324863376142212608547313843198719230291954223037385965903592905567347638073129112077562443215898292990416904218045591407659283156096234100188153515472913974159699907015456135855397551635388261716732488619421889514401031957461738857947573509808176000934088000989524325283526683364473450928061484619276024369085510873152750364006490271549793463612528821680470320949221459561138769233987344837192877129327519132879287593633079351396913315511363675615504470967227381218414685162252604974819008195691775936325871097745063511250316814693841933314451312004136323766505344541574535987908027875236356322453219516027381089971569796518835999204736827431210537378078962536418035707537579875168628702641270494408798470771398771848076826219739983565291071048251342870685765602098606766380725136493335615949078595724387581825406940893936916593672212795310816067232234164097927903080565078228101923095865128974229914203696591565123938808584826678640424821905363888658427628849037927227207175972822473989649144133474451541446067828406860581777828300423580425431358470484791784599383244032095322851963001318823044456734846195872194787980732022035774516876872977034803436284142493077772968852123987508451843540844857930944123835678827296054852579052281421949280235768349451674521320246633617531022145760654326134715969396932103385507450616253305324503507897161763717762255157870762740520230273472379069405478513763000439530286210602824663390022073285307263768556454440609246550390019486551588450921330952377760028450375529498147808709781442400255415477293123363358088858262404967177338507171803733013161801733936796424493924042178042146360148958268309081869243988689272308246034403280156861634094757189335459673722446042560093277069969494079831659532608383351163462829408783444357984916310432931725414656855396942362545957852432376162151849843597902121145978497301396314176968274880573294609728516436115139834510097399557000456589698076441232090186621195599057941884442958095378299106437760349335423110711930202364207587263357225409628849801454724882639977677827981749506341281609241888742096470518091956114899880934939914003955359205890400794841715015596311533970592157563749337094243527202954900590464356265798703237616350231251114149001460001353740751385158978745210284011500809706820699228796063026550758923304625262292929598378265958304166958257736218517719477081916394498805486587095911764399985355454094344601419754169802059143541859816993746879442182833512295452845238269042742802364856525962896364573378939143108508967457572183454900659408745425164923977267508109100118304582461101381724223722179793043502410891588174592313611349435143815495033110575087309376802372079003594257888823293761604565304409913320268823122976277841878989397288976177539153933469784540061884703328818993670702906675221938387544770353750962946274519914810437763452769225479091584955356283570049615617707213513748965181897590361289478294712878520452080401464371479885743793775933792143540230058533359024780337378660054969211643651106793556130642668047957787019030182262789765750003838339139122246257453218261810312832733448159124860309569950807558461811661482845951113879463466646986674188333352798810815376047169840117673059602270689225273489191268644477692006181100970168721080386288303545420670208681581029051910278110281801147087709798824819864046032847539413326528794355809366017749679654448917562088756079579264179394998324060017512425624622691040634235643650540775593167332024626102963826047062376622492964166747660770707293134668397705961754061489090897269449937561079195617460888740588484292801528606076144475046363136476524452823712921304828459405042569451031933788664268231020214613197266798942611321122909683565618259909250115522988594544679488720945149662557122414147575283508214528679789907729299484202611224518586526781362386584819490797649961901688060956299606911475387745175416760024294479680782322419074564479802284847009561802104937273102753284422072643071524966017925701077018840003485821741455393828709625998923277128924393566451791385965765387656342862844598963042455170573487701762289164416000027321621760826994476631026887548566747412696275813481939578459033038245850698166848363458183288105557431619053041534375933813396397587818635022350677295283021914009894413027493545877222042293641009388230596853779042872003326564917963545762343871604648166159246317866962340108728349436895375372680947947820847561458545921812388545505142594314036871274363317344889687280445061674330951559114921829737502100634237581844122293076258083342859365463733336132061059078233680257379326428440221416071722209607399642258562123395509383003093783439620808577416520130757451601380732212516414954827208944976123593560142436774020228920151276310280390459600324955314231303407844868657446430057796293330741562691383884028338605684704262061218440986225597177803091742584230622869149630699940742141364646784771873099058710083156329594889853859474611265751056346399982864988681897866537518024058772054746493362514439906330380700141876281990395406617882301417191270800733539773386315741801819763811246321072219469653418177157053081096670499959252344851600545575391586814678591208244399805650097094672170086569657852724495883102484259354415635916112463449886599594023559149371207121493473752470854922550983484990316562008345587625277696754901854344559806650090145375706930419933449189860756155372859896131637993195446482366478272445828931894221269361037511812518754642684441130241253530947569439648973256221270658947190705909331989962257137440074195155601990588511735015267416875391750231335074874950484481927107484899576162896146667828951414676482683154677016971496851388988393150339608912515198939966814152143844971764365979761828756946171982554644616582592948458865919466305378117627271204507758734372484885740927601224661576243767751456894238983261875588959436804729071040505421891720611467912160473495942605448301175182013690369342861782258650937706889187751549682552585659618042447567662691185904688094089588777660738913323062910629087560270503787384549829581619892598686569053565306443650524488543494008976441566302181886291632821844248727879523888292287775174682651194283635037124464348723324347835131699538533342993629573872603607776209929891527377420330094102369395949288174170187929363666266211643164761740294574362721030903178776610666554427490224699304617432738387853314573536918285296818142897212065536937863102464784366406387266782441514247210737537554415713842745000389375688352654812516748217511217198824394794304792588180538422624940306909385038566772236780404008619601508281654668622219696926654380141954094519031781455015714073052587389306774260923575822889385084725341854740222748869173998691828930856643193696259426278517514828198554373033448836498252167762168395338948988656880456359451428187504065834740002085391128428157235498045579634042907316433260287882616755212891670353256626024028989465663953435895961766936247403523368343824279781086928735766690717072168455384146671339663003355104641725333715165098194257512657194805751728693279236634322641195629051579661558745672861479941311533577208468697562579211969296814325011258915010329041755237402285359874392636608730514753696380410958472027521773433442546721146182806409084188235908597692168414865667207754308808205398065854773974437628452797400192257892927127867140648939953335152883484528641847012292740300961095545554195640991345153157695494716692259941013454428479706916627009782206506936210678004892845928395765973917750636062873906405485738023585882116067878591919783320120134188388331369173190244472507579306934225279027704641309594506975756898770117766236024657792512468069856597149959719085457345834272797434319766821722032238053439884910677877563277597760927326802649942113182902246102813468029595398953958628532908695913160273589581620306517456864252130587513338967355049827956785661855512296449828670702680303673224641717180056733577445092131106970808454286243235950350550236100314831482969817196928941104426185364216824143638467139786945240613741498738457126143231291444765176942120862125147552875619990951570322179740584453280132101467486603384255757871236365319391275842566309345478579119225651103423324420370885403881105786124535770519389301784502868694493416282874764452248639145312720544116884779813487435365960984831103328485008014965883937864306642486731411350756110366272134685011134067634348076917430648995567924756117256490412945518719474110738493548430407976667235204539942304177223292361378493818185264894247272643591092293356587712973225863394097065157181650101103802794603473995736947151897743145158787445405838954011693178800833923912323421430134234778440396434755910975707196247675550165342762635394479345999558287033787844643724190173621029238144897388181038462818410067557863299417545966623044781285746581296828321487735108740158915384392799560262630402653738194177398759184720463348008661370548403504983770265444393061118475749245658570011827472255020118089522173281047925893923363885381151057226795570659768649170403364899492983775166202068436125347057093400608764787138913106341453112845750626890565137157717907774024038018400396918852800524834383430374267356199087402612125087388855074212124721951492585497801393238480734108441252029736995729998097339442231601334698176245878606853425803205901875543317420084707141601966348603295693114172394429788585096324142814240985472333356893162402033760463525062802968670409055273864210220939275741426445290935098154107524366378018147129318179560825866521653926539566280416358551941867792452595859813243902998843447945832363725107043443996214279660615080359309214593470614939401496862126637440104850984134249314096010196041487590860330138490632980488912332749017065796241212994479088359982268902376290206282307065613522659715390039822788809493622241570752776871781102270706860175424113673476164460229827384876883175085519680174520240148565373594339222626462059390232162751197197349734823092482542221910073245531908638761618456762734640630863618340134946742234635441706883981124322454672281512753090664066890488051353427436048791300259856516629015144919901775379632373793949270117499665199792646909510547829036277684469904880937918003249688083329124129151229967593582654279192923201477625413166715330113128083302921554887308367912064029493030005500402770537611921230387705606662551601946441733015806163935711425453254347148022527357956789318450238095722733846286415478134926599721563966333726040555896205918334524453070668022346381202978211686158510792327336781398855294711540468711882182641318401102172124738964615664799475815357017642203496682150299576975072334456737284196044672243260124242753154653286205819666483280570608590534120027301287629223625069554849022573888500291425905735242102744893446596194625000423560695773189177799759409520621758894266401666634479518188462071978374945059008370564802820508409990676701971006218896457372402764451141927140106654507987471981097786568726298189329068252723870233309448153008822514295348653047699078744964164032118760870974571232305428995590067057381366427588905966700686669944195793415778903549198994994169264270489127904979188963593862631701517590710183771716461354256213258631246763152953938718586537456216174449490911612689448064134657830984758204613692195917374528193358567420167970664733912137890056132716039224679608073239105367735939687891356560259535558413239450752393616519614725305842988021642800228668033151381005473976033287650964597629633195261813785924086441041838387065168938593257510234526763347472444527544054292489834854253618323023012978890223017665946576727912629796000198776481806814443639356560296944698893313823646936012412708746402624199873090346273106673688178398864504770117520273684390145610739015899897948164004294530554088699662126111867192203439597837630926596271068697655378985231311331591097877561022566626402838940968260954038319548706809914070876768955454299738145656991136823336389713229801953549583604920341009252127163726644725118829654250718028501067818334999506326464164493071860403245736248425021255536194236034428799810549888677836498571772830320215172984718296814982669561938041543273966269987971132587502798879960559916073354752340536555855328154747011251294207414085006378800355254785359001629690344321392217001622175015569585582871043449732771559691444468676367599855902467268669204330842324051936807114611131583793320768157715583420639055963962838520362006127539016014688219272360446928822780608209069454743824593134026493179290188830420589272319071043217689608057608098711193811915285434433087143179878984453655055218327468409137689608007448979317472009265252194201707749521104047879805353941780498710753863023358725978208337141305636539276814757435641517771252065942666174368881862870311743602320557005181726427908457833378035003129086306559672052682390067322013017050254965964073204143015078812489001225821573780392525753779975041078350310415496648158567756713343605288171186038271524680823978641312379370307156315703962763191407261219492551743995982614341925947001230887218268467876670591771939554325004077599400781643468266233362519972810647090727340258706061787592837598388804773375735008867822838981845948248749493931423095226544664052510739403351439941479837426817621991914479591707784664552396006302446526362107369595663908764643066420433665207642365294010926013572700576658157570130848182113002362314034052876665688221646324976067516341679796969418262856568514020583439114520680603434102252446163274763916935284661060251151736949116213563479945998963897253512791602199228429660252378536853691338736405236972875029222528280246559859775540849481630171260008266232746861937278502738607828608007941930296632010488403376256809373434366196622137098068711496798102952629581531286033059461149809014425301805796287090960121197449414308439690570203969440455254037172877928044798756391249953332950016299329277431701891583007918724665404596986938806111001440669152049326099691875165629200547345889705563682578089489894781663701647314182000320512094865267869862498609886562410217161845157121736192983695451075685765176739690003112789112207612645912757390637541871962106409035822863030116019609131640722983434029965577104902456762944839422034137088344594927176667683335365871425244185960378023601626512705768469679923360202372768448849524164861588713069636736974663325206157231086363717409138990848246362924261675702121604964395948791993433386951748883289323738151575877672310211719920049547523915331191634360177764160979066310907905187504599914672299285462957414299793869586585734208624496019508651506044282085435460491096036227135866364763292913048568326786920477774730389242875468936623939191651355454913387240776749964005913839693953441880471925957226019399325281952239328382347668546347912114592344791558206997347885259300133181601295217413397708071734717221270747222882338226597019147247352056432249795913173125400227728398374333445734790045691946493901780153323260534957252053653293577947315392034542302776797382876421105878228986563280718260265038331967895643652906399580392010442833695247379426061396637679337259475910190490097043815046782968731868261080225736849955814586774518737459573913512329142710285110134474090136787629865484905960693246990428714009744580003663019763769581364080493890094651795371954552845926523758982892181769638240893475016825023514627803959379063024246546205863005687381673692424924774301629918749444450411605729086765249286566201555164733228606594512348424404951982034742807874463164014675993272932162199602092020357808798541665391163947280298044491582494742346978160985235679540704495307196604806974541396760817533587853878835557343165931529369071437676519590474583210672282093112871491013756118196379045154970422720198073320599973336766637560357501900718586914578149317472163683763139130275224894963150721304843702742792027010314088937385239789634537389570193959913887627662989599418133484180705402903745182690250569311052790140975624878521747454987636981039374342375817749528166282892269728748504168813457980455066896099410178646346981102761742114050098540842356008334664091977644436001828923989707741167865753148400852739441165213825671844833895484950665709909026583806849474690666498993195290833096933834775075580577339153653883244855247892945967087546255196181681322689519660894565194012975264525365970311130353038895237533856233266461583385581939355149323417775896169478909403440184180905474472490267074008412012852154331072445533090485477821105543869303509449457113421589793521951526096761961527291618922483898091415119570774864939075279885436071499873393680509308460490696016263308218366321509529623575765671706167638093387615303514448608677470854880354902833798356199199558964264001583870292411394846289083613021207102644591939997279700195383062979393220343998224156468730209136530869969543271023258029884800649420744218494879124397382592280324329249754925436009026635336404113208109678248382671273736825295073011686126662882864435860903885695077442821197835376464683986318229271683430991170317192051071814282423501911923565083345470153361649611728916086670053428830932990544603408188095277783516820540695505315786036466239984902296805491666470495229536761102177461275351577874673481145852566182112419167102624254501552608887222857012410787882346171080815856734141750775259575738910299070150413848289519371294351672747636839192084802311890516266840018244797505804760208617225744311484690410303433234810700980890687452307462273195805239896473377899750595811630411865208678151051233514378058107300179727773630294962530444880048793867964263433333454599775451278978000702359643300976173511010646083544202499234845874042120632700890591475769258248266034097606142589834933562549865217893863324847914568127173398814315491407226423002902971183866275428448452094636877825356158521214512200698797695683095622084383765060600806472755798879442744799403725101396563693791577853966467021879174097113720852522986449321801659731155963142417956970045286218042494619892852903976705455688987490532331706422498480279365891839093081577404202253523473368115873443077347803352051717193995164725801346272390290680127973432673694239400540804577879895660387742974208827843447801389618999890301999368318677448660758291742214527743209011652777353592498073490159562974458234145123135335214781530908395074878864891245864571082641739805768416137938153425434630309612128241125810420970320456560851530306296361573652495480477094078549492096533059091913207625583354880270347753521346993223799960020095283109468810725507256417547139488000006652146519472710031627340823015184005133275139340925411495690015250845159140522175396509800946239832140119030171377975851108520042976983965053499567010775420693257805611042254934901227004910030004297928397682477088196226093357869380007019862613444625903014530975111013332217656153108428945583100294871821299787556810028080632418572694224437990461682164970018495892644720665651829815245217522923043015970229058846799123951119521330167185863775298498604540198100977896950987376221128336955388362369053653508117512471345371077657542837857251350210718519750467970541041249523843659618514658307168926033162702504604000857350042335074368321369119069348182713190603252827272317677252735634813825433781146730939808537681588330633091566335419114404093110271147978349255389892194807388674885456017082068017934353459981057188377855621631107329192892699746084261244707684459527611250779645958139591968672815382202682300554318122876176348111683373639121292195988765081095148185413348121805294102491017827006749399607912649968113651159037487758245355803542058915484953196982630793913463541093334232894763837279269550371811308483946406696691338491892360851576081080921878576960438026832358142427044428132609380070883650375020325211439253729660810531572493659061173841142825750063544518951180391066273184260601658408685057254055970925240569059416948986396762162877968425123251715714685656650263814406534986759576620805543721836319926850464525021839034250816693551240660490156274867591179345105853812272227106024102362204150324138875601363417570076465887869367672604221673945280993707763241410015862236212044107736729669370532198674839363944978015877694876976775763443260038339407957095258831794848421263817528059160894804597821561954881340265517962556903086227110690332439804771751355914270516683255248649563314644991926628057026209614863762487455597017628535752139435876639164721316040763117544916096961434080856105515487942629699504568204329533035342771410892438425091189919196256939654464694376203834584166036841428597644103622874442948564162678114510875821646669331646421453206152385984424768752832421949546223305139860047184979964242447138387676640905713603387963447001801619785580878197821402294427398502560013222275167525670261317423551271316074201321888944139867307065381255279672797619001754820135100414909803533367169954082675761976103540409741020018578877391902677577492903139348928074739360027237360435116111172449989214763597878509350577636988358773221597207192693351750390618680013310761015994161778543555282837478644275352511845097575184206901168792476897748218084899467580685736835022487239735717272384526266396230396880929808588507492124948202697374736448967915376055486449280429659211791479483826768222321437501515266160193185974267441515677053284114498411811860758259863048267875775298362875761958092338517740602381330783011404540723970943436062862147462695553376243264399270906145262339246078488251975984284258702715326446548775064775185561655997484666659691060661699702106242250701242126610541925461533960387691970030297993015849094656785815520196833301594509192615511300953407431324792433800689391718974804096182853210328881970833899613670611190114042373950241386045609896383298479092446132933587162664569783474706568849871584820542100332685720764180298143227951157631653884960600043776947620759440743655243003545118720770486416344205971125108331406518782175868393373772509204884314504280067008184281634091467862594759203126291074343629015382367278516709877231433382961064199918733866303681540019379376135858323989282193993918784430905054201340802873850143766023153573468753931887385908482398690723697512456058089542792138084357017102721118482427489689170353652572029422776879502543483844753027204487853303160848743578495385271538965123699028211916366839627117942300412054842200343469385898355284207433959795444690822948045440706721202063594325440410456150257465480260926315942931157119806287382230613458506318804083621422283209082360511873427312663535101639713712828625013536737332847915456241375273844252530986460442724419764604962371137201407320047457061894375570848231458165522076488687713052189845607928434542929020773305315576680796365450419028458778261891765498533505708902148023871558065437586276770240870270940714223460606642147774688745250611366109568364425909503535708378249980549120327078092364776009016453537818026269633648492989779550658374069056908639802717752748567608723339795988688014005594921148850134513145001834300035875379689227671017895532778719715913043588958679662857500850525478354855071785286766945560272315309569398690970688560818919603462415051402860954045947713869051520214782793535462967849449230851732483166069431386544714494578061368060682726541473280382351713361964805118299390274182619474619127206756056488730478289498910026495247443958127975204093160819094533556484123272472454857511339960303061319106022920542988821060506127023016265120196885696525281382475869597534547553007959508398367745381922958514297169721310302320781180286571498244109220052725710064260935370367197799869962717983797806313409847521397472287337127290053190865605926927244538882887045797695492312212102793688118967393490148686935458810839171472164463810798785717053988226440810420601526313713154357144819332714812910371999083785054768370251726743529300215364644649252059897682948672727301215334382278640067841788068062837047241358748361864586152756858928297449839027975156794883694040524553796848108892745402649908819539376415425780774096946905802913343057250517706061207731163797557041833835838712206738580855246239536938792409909942943912319171158418744785232936375635911910143866027527655346881388748350891816901915149474329140316801947440046300819172753987832878652677121650434456720551036783354430301193613067102501280988169198214377976820210294415606939975082371957703306853656505295209701781265518432010836844370479336378104570815476121529637830198741930318629479487809341400619812921093749930054789789254060697036372378974910504776000453453008345271485142796833517078633856507776593997952847941291132901485204154004105432966946165288277077310987163901698494091031629783121229403753416143044570109620805960556285698181213491818238848149505127631737152270523888214458502431679699562563018445042060367403299741772486704060001203213434493739842481726253788909962738747357217029312603243585278018218147580016891485325708782900803733150973880903633693604687188916170223241827063031341782623905031700557109729161656315794312430675045554705320488548690813244638330714614194243600264536678700092645934721720355011410162866117444487225643846413597974479758023738704924372316429564938505895178757252078478218749118721503147185270561781415414313077968170879781969711148647833874598522512100826271125971566808680383916568893943345545087377598910480083163325435433388595416053716027000019835684702294057410310349667539518552072849933910650251864955301423492953588549988001303149105607599381919702271090844612420827709266521048319334082525043056842243479188690255593417170622438871152021668553953780178344552502655653462563464811719304080841233668536117964991051616506125328985304766038741956444283625994853939576724525894384562606283172221833682991445611003353649732152454718823613406015574761328105018969148764754326867400540863461315711980729899200429546006165637094920968802793149165414657515059983327318819242209111225404374514127174936205117890881014458255178510485686280559336025837557947929839691230525585286817691213999918474875681221216454476101222040321172031814431641453447685169689779583225280431631718802536306459041382024655974580799715339603988632871134408853570200507046871024835712729862717456879791502659840625634969057665879044150824949800785577618501324906765829951229730552798555029768237857332142342964292845857325017563187596578726714465893062079793331749675860653552359428289021016428643331771450022406693708499057100829757751930073206431550474544561403409292098277955360681253172937524914289367870233521959425510368069562411579985462579208364531783037927385226220096688890288274957394651684366613184690478975649687862941025347691772890977580379482521340362596851231652804518243292442854371935783559156375544157437318798723294921272215938049826959387782610525868353887926231817288246891187148661609461289835692470063020442985272656290236168650285896624446390830711168968103152890564920942550869968578800816050240883183744976885301802233569902509670120992751244139834773845342421606390469866245217570227615412761381113730491540097983499289280033471677430143327840543674480518778705640564218303925313423687679447452326352853015799044100257500193358225667923857693061168997198386868380942311675903822304437597644196468221291827860764906336095107902652197488064545943590448113555742690146123723072059145733189449080547403266497447598970555777762584546334270798588762965561042761289846318088940022278579441703282719157824013169485403667453584653027496750863923746181378192095585040950389209733428030976797645766207165496722817474714508355445404765142803984776070663108328384469714729335973222414899049158029745240205346322269019897319639592326643626546997827595647348318099679362822753792065344904281978811188146599332854021906926501664835023567526139744720281885169570882728654230777083760181126013901743123808262698386420094671142260832635642651370377884919773053486520567238192522390510490885922726666164620102626888706301061876123641723742814484137820414224222329004956433429315168287361699602270133261297996115374476781474176985747415747349655700090315896264666426809346283901141291677627519994912831246539327457667233525858568636509663400607567650608407424108659433505654686850281429869305945373257434726063807745802429837183908543914919991909622129405749502021582597671498489640532401653000449328169103372829704619775410293938828690617996279240872955577888791521023626499584355269411147693675833733172401908796041632594580252542942840517883544672519692596462053640699377451199250074877801456538699862021021427543210983509305989256971523739097501525522231040322435563618388552448576098873654406742348657540070849131314735747793565708022923910322841772459132342543175317309047990604569420248513387230422512718859469678279547428794701535850901747316400805309331365454118438020124079422882110819311037557733994274103197788278251526631542133995833258807053557110027141010131637441728081391633274537935168282833826925708235196786606567890177117293508256725869898401843496983960854690279970075083805435130496964937783330984676716787465442876535319259810309651789423366758165604808514248861529695019979491513490349051709321442957771491837828325857492675113150475239786297901311429549772834684106697059512476760859223518054082110255518786433825202973768525374805631265047140332402875321259542104538794100331955067158829613832306547067117258309721145700765645928274342961054723250280569529249673904132036383798829449528350324705877242867146558626123210809764428304554511067111786720654274243354446001931202620719310530871695132341064217266766284697701288501977577824771197651755487240216216691530882619031957881900257732128789728834463369055636079219337806948138138130908371116187455352966094785349664236470493918477897680007655288176732990195026332715831017900758792195171677640793118091617614280583954345814919381479534306897523932320899176984056380405903065451818161242007293264511402325183223721435869300675326633415003242791147637518253684186018881066999021244742975259945119735369329774335343935543540921238666187617444487183394344512437801612588604087332975641555212277900690975433792100262995512329655462812974145391289267112039895587966927259283250699044189162319675437100796819995327438766776642345520488600736877550433642635965034081323905559229418086812233308049096519863751758914930292959884088139621266065531784665729155909166209460469158707401658911570494290048860726524427212493579378259651092208903300313775443697553818366649951390008412222983970671802798545410383417689622292467273357680182333976232955781069636248654879875120363647249345726948362222600035812244883625374926763623259947703781097965954264396254603282611105592528760669213209236792961466653550185563057857496617589356170788611475367208272023652817346836725851230679877601574624950341887128953745817332657525972430733563246122768265749559404667294135980303945292554402616232659057194981360526726448992987507551582277193009652047802836275104023747044825572424684420174071619368925301159150845650810788531484749349362807875385506713709952336989517602678602515447022153647891455415172486746872222908121478028302481785979891985196801813288210435641279689964997718081688249079831461900037012563421360666167049099897595924391437862094376818080869129294430052901055741145618257391610125460465624048799065088251840288635936035264788549760740228615411127387659342063831817184584411665726708634838375273970303833989738565649380346242017590145527758723128763091135235598665766981869736089093075993038752290855966886638784534660869923826821354674731336735994123666891076760058766242991943227806514889047371215523293453474310291022799745346442776248430004842747165418332628575745078161280101686312367119542307983374749375369653636972689341334765169358306138768239358340365611902828755914132445096784839612723252661919220569124856778676733812340962313637815031339126371246654180256804994827646432203623594919865586147455045905148984920171940220166078111152220472419859727491094901261657604735160164501819814529227890692858854684939132237580334115706484168926467468586539060154633962442182108368656581535604929932881230987995441262810156754634276435064416729742177279626914637048361896418068234590398548148641984745024208477080011578564008734878020305674159242608663105485078862623070606071029155204852442283285395395802450578793400889518808298569659002384599317785391461467235858577035031327069514965306789852515286773496008216129332533654350995821066432963612391465266163180733759574777507220530622625003799815347771098953181573078943987496130272521164410283513601894267922685031715886535536892557710161908911630521642175865252523242456891438200480733381210719848364115524594490169642607417133232523193223349701420230468896512454837174729502721648030433711000724251340865209664299202090242061695530493460242463234276293988448138447898730486537228989672162045088262899149583683310586284419718023001767967493720577724989810563323772806570469722438446271903366861409831416542385392812701968633877958298946750233855423202070916391515073645087495079115625117238835899997572490977944481873882098074193944325554459895398187288913718590585695260010121607394835125675457944540837503618122183786525613796757542361777934939070282950675067931744323376623373891355491621403680397895897535409015132631961587538608889964523039062330939138754365291885881464855094063835812928450654043984662189616380248814994281593503217646547895242615070168548187069572350381972210632410035920003498512340259972331565146162602042415226694983501831610559419411086729610984112413464202825282973836739794068511890321388173890544781868646637725309263623624001756308552331738522705994879710437940062546480640094335193411166818270522736177932962676785456322367994464187465096507472380124517054139821092270871581896835405916661856011135193272729142960914651274679340836597269020468102676214440398156715124018082453801102536200341273077254076344462757244103622820757972177833618266942227587743567035704275791039073448566930720174443602807295437256764749032514299616794415347121582945125446808737018703475443142404863994028006779875564979681421097014898392636546700856370272310508808437938243068336904732607178273684298190969370230137380119444456692881544399532212875014370530454008755552579573640439369851431739508872444471427334398434157217830527953638438734959296939588445586684371166343868673369186812158860331934449628878765091066190233236923608350408736181058748863822185638388578483766665790999953703824545975478709304302748363755506033075911541335651536584825374478531755918498905085294442347522668720147532890138994292354370246852609570557045321161740494540648597466173399613409410335475780930063779141090555123660742033143503270484509412946278342789445341770637360999036527295999621207971683763952941302103573046891393449027810708853123374039132094640530945031485068809202383839885101624216901172225989237381249769364650153473595189167735803257169476517733224040071476063442786680436816307233574139690924041616297716852591717218036807693628098264702700421424434229562639590388443859268906415545779628223059372344560248622426429878468226055854756728744978424142803596663448595794395192852778644200192416721123922484871134383973337849075587251072917493938908390917271484846324012256436343851409478145819659945044064025836944796907961761563560291446268760186674236384270968896765841291012097516815941339242817860442027269663283868323106564862181614082684573691029906903593363690540866865882560256615542651006535442764141023314509468043431324212761355321472443040623208625489437618095613594355666368030578367742677534154790827871614240260516684825998781737153524027448061936207730411644580299600080630202528406235892266868740161404144548879957627053646486280715465548058760125807564138542703613908728900903353075522095179587545389399353064774998953072340557512650629138262375726597177944480870909577902380148296534869099833398977325522807618854055667165387516340146542359973371384113572458165958029023515861713884806177155632729620133006980873937236920798095359257790594823924603740798051592027292637596023631339635715082362226588889573595369839948415228065180364828783964651623762894406472227824121524030256632606090001910694459200905517498590413439138734989861381190425296275682532092956919020069757309901122873508612788270564270423007066045316960551492556149430179735434658938497215358515215944152656160179276975328839099873060948614303377165278817670854273532284420346076998687760206289222250331427662185202117462529270312915164405831889243890897967710235482789943353440236808756934241349746449470542619261557698437003899115628020019226408523116729415391146877332626784081411956076061185691594054830233597379225344793275073430659824727047584997942511500273876914178528443974450660875381526751237195831307809258511100979598786356048838075840836456241823113957532956621409478459127425921240979908812730952361163185264991621840278611808121678994307774080631408988535090511510869902934989208734621576720963887093997038459281760818889003193639157883852018878257272973366084015607816743939525543568768746633791558852372340039408363992506405829792398901682012294434468096827512393495061540388155110656073480935844867552277848099316439827304665986160532223580423265775658246136946234722799612076812139807806736937186779563469189375806441276762408741933220708233891624568080960998281473867393456976476461622273757017328161505311173997822822018089174409663513447172859619582173780905119769461786377455115040486192566110086130456499892483687201526574827457984150685720345190709976688975676859257020282218548754946041032803506948871067366456136195043041005567528882816760087410312682330796127564728905742480933808165474673265114962473459079363156630899787184779817708897121479820131998680502583879619980695437132274659576959613811929601257009818376969288976996314235542951494021690038115429441926468742971494894429367394506907404613018926929924774539740405843492545646585328371867746006438874086240449216464426498114596726964504814146260787816093554235619978875850221481486122438368299663803252135881940358345039261508829711193510895372376538543165076936097831924677607019457772711142180615728239826868831405840759644089046293095286058284655693520086552064014120732348973798068188844938574474555286699669616399871706896999226919052423384964395574432948203405753868904738429873173935343528559380253808273895213066118736209469342709032375351047297933245578782363805203386847306589825947119203857275573761663053438285791090182092166678238329721710651276747404817095334087359933035018574534947169277660500723724382310400394613362273084395214514642080900389852539384450573281028850860336908231583888323517062581123537363224380403272097967129922125889315264854267627146015383350081216125031598226602385662743680177193039179986535904416713827096804934244723721589083728635718035787107500175280228263569322792720969442995599176996680920213719232712795318522667430652958164491408483188187063800569301518812665384718706179792351556967361394933011793474372100333710449484080901399149496358547836009027281667639384219934455548135451117429791456386246731792954528439154154752491677369763406147665385915902245319300334050402854621798980856451343959591212548063069868747783727764170427759680341125956285009982497965479280604826688911642902836330265093331988902735614795775545387786229150264389829072643903028605571148108271840358338047198505210719222287829297819714994814712658727722580815574358641486077142579764877296286761061097849727120645384602387781106505647228735121092075322915872488063967277291187023919749554078953201904629874432083681111002124866864060510362646271856678198930410374877485149583811567371540126192016504661167628211602260655208863777047646584327298785748510363348988014014659914691131731817194339994646353836488208808928971103716494821217604359830596420411787744402009654945994938878164005483842127537970244042134241801809256880462889814419873033206967924107556577991360304280668702290981461233300298026216677589348440418795903359208001133764475115818693172349802780703832885866579368721125363761809058895476184123591782451262494016966792311707157015681319598121538677809742565944742983549880825104174272238578148444355189656160392191302556240727960502466252992954738420181010788932378076869194357815934411704697302901503581469817735740068131255132702607423789532772589549276103463417271101873675252945055367688949399574841154126254790498137939674273681360123548323024450032115120727651280198424812509552031631850015873948860858932219513913271469692387105100108744604734401683583427667575529861155382058547514096117068380974952663564974518968526217348376728553949685996390183352462215845948072926196971082235502030861881879048550846094980348155082697165643143649254556891092165057308878589593363595325020595335254586173114088767730739499141616165958394824463574671421786238090558830690733695061671204546478424126279437919721813854757949184905207864975824676486843580849956343181793432576560177578357203914814970109289419709421433734211569944710213394603259727590578999012188648169869674702994111366648186659820820167295356374105111769119546367062563084087238851023804234455185889671783467675151839173800422556248775050801408095529943323494382946435002365871300533005278585781365942527092967239015251894901979278899862337934843882617814164563589938910734400923587921397570545009997606710013953879518279695129259009952980994927000665085275573245283878064845936872757642603144656000378208816113694470125395296527051031421321461268587465244679623956759267285987283554737148212300756764753774268338158461822268100122275947883269708602171799988548897405836275864902042711716424625189365113409521723035891833357293927743499904169360974181781228732431931656049313624152001193949667246674196006609826441763181838531961946931677323423233340052245550908493778312653949664208989083667803642729914125012231092530500297136457209976207914717491111055823345830200720014553500912779564454905355046382293229353439993489569584092412861334775511990467701885816823787151396517615896174791180927921280018790307677218898269734444834268663933932925039253933897233038195301982145677703367627432025509887875649162783612191389797145113392263436757879270822963605376436217390788393246810244522401445519521266385362233732407550057227606046707930426727991449422763023244638408769244051015170233197771037611733283929858964944795428850127013692663795471314635645521684595808976433490886701948382114538695488709739563831976152922193139783265391192471133250776371195470802337802988705858389212831722787843227161756531446699622910646363930461867863597084000413315017743822932554922531750862685752121638785916140705505228312127023173181637558518899867795272706701341350324537255614192763783579225514591222658374935471907242828202631062825584164816013598072347507037831373319434042305942508632590071557084566388264668296248243256790680267954184747113135460465755701254085581908301526079971889593666777659275943766521042506738085002292782666794389434636066107031104784913956464718044147122242718250517228056210698656457616150735146574784623070816478655419286503345361490661281417629797941950769991655907259847105483886574197039408302444933690719031694344481113606863544049404440792547226670077043689622912727441565996037217463587400576424357869586030037468195843684121864567076069394045814221040679519849610756349447046295064237749890581391702932494822554999592862583336152028014170326444579968761945992169182441017809612007809953541033598314153027290530810758494191279014445592961751777590983541145748541366566989030358672343501941316513469449178478828211218842653532914376588940637390073293313842827284360533825247078045573983197870462608265376425361040124049874588247303256567571917378472840481607307292267679090168049225430544026496948462321525764337621705254016471957007897419636247818798702798724021966942862070594052902348696657749339008519005428015334909857416180993161211926008211615594907677348671368482221884175727845508195434973561824110350647994336767396500043563060266539606430610193714232391352499637428610897325577376587542964294535952800409093066926626391137003929461841204799898512710852196349347776185839013092387499634621270269716626086651032431395774529522745323251579209889576980327496532166286949013076659885768635281106224348025859232619773546739016417624179919200058642570164780582273030667136565622917160657380247733964485681739774172516028927365445973457861508963825049052522286976356628887243904825160271192884031191802564885273208189855956673432690275446787759778983578586746690427094684602126909670739494564569518003604443289765795824854543018921205059967081561160904772609346310309108367023497095539448353348997393282463161135361495947946731796127063103503215613362549877959475452107667010176079214579437478647844836992291666442090180959563985978421224014847729500474960138652517664350548953820058979821932313420760424260801796727137382597425045468345582167899267895183195643446964067652808576363627782814412151544553761443731819106533457580156726073977802352754646955936776781328735088236936966501333812057274508060991552800797941746728717074729750809741689088220234889620897291265243578237986759634668366450041414040536007422736524057187858722195474305015407389605380170330314017896502805701365760312528724327468554384041143407383401165365720657767490002959498634252874958906715733597823662238353990097324639480396496459470752642528652547878116041245245851854191679065696268622674576202859604391576183957099560272392979047151933057638998474784217959485098669254432245306764070902025779272698785385279792240694138917673401869473257240430663924003268280933546425648431148433730862426804141857969489951655205499981292066960540423164707153878164207911197566647291375713833925740152415614454615442181240939035580783100269504101875001536748961270811121496284087769612505473530816153496179390350123632655786880486755380540643235304030343277626455560907586641745749480227137308542107245415779722326898483150902566964610508594719195569812027292048814466867028808042213967014981215725808140773897103168120395764691100167986876579153610030210358223485852851858718799493757175963036754853123776837712184373224699393206456195634653372215248958846807942633053828266104675198126220500607044226773481924729444567047809944866977717614014119049838040267887128040970207927636191656445918227649535137890586108996157510732378935420523818505659764938990319843250230618370932791619219876411430008630629689532019880736981202400416265532618509114248534854216945729875887598942765943552817358640137166410383910258209816317191705197597082383297112957025640066654403038511316346945875113703147690595325774145351659195522803811915156766479700874950264039402861119510934412573405926592023036467872251662875030711934828061829952353114219529462390834291051560758843711714096892296304331268460835813128654469748397578662167307912651022139287549478179633216540249095427401712503308567448461047273669722163532548918950630441781534400566430446273551644585425546917355882116237931540221018722950754466967151884874714980970123652608141937820207660786784082997172670713471616920710866451913848206379187727756549427592182162761327245561672847083674561405610159867482097141704703552014315801731261720696561747121508851250140298883363272034760892900877895728581331292245780795853513392788859674758844767849810258799215783739221747599822003057961910934513364303292986525053251750687751419847590382950921759029820057614829132362094049929913583575091064328352219814193393580267250543625591738055228453485585748403507491515563583961830865225285109312770566140645491146146793455996338037865639789794824617466897990339248851605208414881849705480112788743038610808291423544108022908773303345626211321005419729090225523772780218917931993307199861863497607472451987044722937036283745648646766907419821804868389715006598180036241186938861999519055196735450425941152842135453476132967545936013877461188440449215179504171012981077731922741758051706249476749631826673477011223801514346495134283691153746191844839331791227683974736027577587022102449635867162628323884223839552235261224725484017191707609858614062717128912170836967820876481809797218251981636605408368990747308780581852774133831202610782365117767067833821157706262961337544352178857004089867600256386113921299804894839182075604895044984957739882374756144730057226985263934825614013297290568605406829303483540456686698272232749024694194745584131439486549746203433438710787810459065774386174829498570006149842398030301971295032523331485659702629756881705984067586818645717225008812582870658105686154559077688191463009111837381793274672000237446833152690348393980383075961017264724614750407685108177824282928906783484917293461431387089170935206596118849212688864202414459549780861816930594526643428743904121127549140391363954139998579206810108316363824838229763836054141389705404586327148099595018783218404720126112105619772414662078012316263640243805572277049940903129522829552903468155142851492913442352331251128762382840386980040465337496526454958386767961838478703163115672554563610706882466902619707701417723940488363560292922581593593332611133730579964710437502776196863028510901102049113868853508515149536237401838439779181897774260476477015007144877628424592138959489663469013951638693607922740637931079447837271354694102174275618859115261777577730455817766152614805790794718583887585535609003816552750307697487224809479861724309957213369948785030373994341735313135266571767564620866126554247766672957039104767011610915678510618483097164108171553774281374960122039325659597483061743331054896495504155626750171119709647736273192762572766888499448113476003635485491636205246859169738256461703241541216107245750973548340675655990778298706997561351237869546236854472146585392406299323265469159261034026460136397200194879232825825338016482250991524836282669179284372145252444937639300544904690884463403460565807895752034825262762217035377498845593902504261494407434582986254926084532669071423168931350993799177267297874075885205427295445242140434910291019609079215260265659266894407707823551305592058960958015696943582361144647549773562814921282244700320001343460217099328834550170959072642221709642184645833242146628115812636796570044638179568240220947233198822207350952133234034130929018966761174003154611113955131143588915572304281021385859974667590931310140717274372115450759352339390292113988386414515417600155503966868645303752553134648612556363307394074177988935122537525670346469927052295134262642927952653224425591071282794613429999631340318625280498202626999159081101539570384494409612334393282506225323239973515839532097752616440560700764268612141064602895435223390595671387302682559577526113571882239140009488186760221104554056305352738538684867433832093848896187359239856171817940256631146121199674259781693916651720309885008518869977835230683918906978673595374989127027746118345229472572024061511231518360753667717303096074133206525554025549349287671171041043007766397503375633301280540517229038842392099871511891256377373720568280177205214988347290144429309410105811578167692847535814303239421697810801959003386224117867165736951873425225894836607483031097941521043465392203699349534954750507983539938029043731939387322785276167493943841137268343576785894947896952546829008267648912648920531881607477076651926881046349550232257897845352347686678565608109949186960860819812930844305825928987434572694301663771989253169467663332195586982659594623777430138935443251694634362894683422101669437524768849221503109722726218643193589165156487646240081509567089002612052327731296627016609513813336731718730549164908158902955708244687256465760173692981197684023707807372090525877725120471152092844366581933164029847004253414784901044881124078089297407995456581701499462153949766832029192277735486941024070876500085255956979991122756592657525605389249583567807942658568783582921180886680310074637597509079633626786852011814824856566120615587524987114260838222776472771467123466190772098726594304450855804633366752058774412294187749871218153410054409646477023583712550518857183974169578288960147560723514392049485381321967567395730938128632307886744703433626718543941527648483371108662442336938836871972822306428412128983636759934972583058950250006671875352350597092544165876741021681987030407805811383857652152724201022655591281570665827418446341412803489817089043590694328091598095147442339341330374383896472255502001350278194989400184968395275139569078318100386209719252405642118423605087789822476841041499396731027076154030408257878533458058721911132699892440422412605250642216641142473916813854443439327118569539311197400236817627901665215616516433983276163069326498491196905259210681860219887522121297985994163893201759334097936843858971773757172875116894258917586067090147591118122230010259466039783090093390116877327788115864857334903828601087771609727644505761298162720317428409641986032719614370561191157807674339457611703008397341623791328310681446203589642086357156887794222106068778510517918246371727194113571781957862562664473862373400683612021408593361380456629363503233133348965205216683818249663482088197740864805985205771675308268251570268674906426262118266489264624806458964035960272288534357753392187790913725839084393984655740306353720003667374906148531294483953617437217179681506927928344102130473505848748892999231570216193942123098926866540143834200563102775480581553308856822840111462857086761168359809323945267892490214221987275876229236675233562835998958019813760726684197996253369347520081755294960716921086334509360126192821052682974591546411841269061890718302881326679353952928500143835275896896706280092007766100461768364744951237395967760879404762939243392005720557934716205478094289221973717236434473930702678712321064404614408752978941124256865349825439793548502803617615604438633772950428591782949865202517814039942355186837910993782023412225419915574436932595849281837293781019947012557278697369192890359973638377050233734249062371906064479854329269734000289292997974149289462455236431373499761071709709460926450937172032624891545539867904450364902453967563172599030620720552028244569238919900833218434345925853081292521724653917720862539096054448868309196316394738212807001819809526922986405130052023187973228271229756167834685771089548699168808773321874250601241544815533187570627787119942563285347021850678729005221413832383289131365172532077078871570085311059164351086150093994079053644820526225363493413156064969482212854436560439942310567175691039821536034184422255660233026185882353349783510144587465634142271484596515672811354181948050712487121093136930860802607533789399155003431341593280077128575680612989946893493347160272635745605300397085406433560034232099503531679612614467946847396962260930841734897916862878761998511970968827348539002800924026193614822776000568755574657770419829963255132978692377915891335284705877316948424967936622495298042515578867865633780140505752706101816531212158595345831181708998846233819950470499080010387353787376077790534744411238639753041251509076725401962152512696645143488203868160528010082013340633430223906892298024667385548838409409370113775831484970796034161311616712997242392832055713428116147015182385246876973362992425392443724362377705687766055367816593344929324833999496405366806169153507386176824506740339295971288184353164761861510486877670579258182656412749074425886868634188311089544752467354691271469749241935346012651246575584954314669428242179929788738134593622935569599456990537711872657381097757126610443446827934836222903457445824005055555858490583386502721720329586037722518855884491433007678360690911427179285483163568321469677261726277809150421751366481491101345988962947177805287643923963271456658236831184159139724252941875652654484432239956714933165901446235280736547054046815064423798948335558725663156623433751910161522958825406811940585174343017406693628784949224555353795790836119027258296220755147238075377562789223710928213445574689649943176420771343649310669524707145901850837380426995138433640462849552946941263050310368875003871863861527105977376506795804731158764287219993893901629983300895825318044855869610744239443962924557005004564956970045091140632470348351559425386121455014004558426811048484614805684694715798050749970812914940196405465245957151356452288856965642711847215435122001056999229732385051796440156920152767125919254576855272102767990597810943911499573678534775134567813574573055666267601823528022860947891983058445160900328396572810221817305503442184953012644365630811651299197321918391531563183674679714562591806832329015213898314148335507909780936592764916786501617257440714339932602664636407001111497489471346119936985431937696427245410790115696562298107894679951417807447746551072636206227736299900236578902180891076228913665464865856228464385955041264149189894091016955641990473377381982558086726509499460200808186862927554964653506059142361094963765784691315498381255133958567484996222912726371427830666140448563253847983433777081323658410660228186670960076182796747376605912655493116884586862287579650279713411327718247476604525235409177675941390329186352501484139926328599098061972065764343500700523406294589107445735464879086042783505169376335591718316598417532125099739757344676456528449370637733854009992617186382987495391581029550933496055171352375376420689489208198962235144872107352618974935710657909678405909414789592010058157664917484513780368525097649492164828899317423408629257034973370869259899040249920958198232420149392360985584884746080758721187569410668631129937374403231433809622526371478612882734951633891864391288654598686984751629810189012117001343492695875012952081678761688343269936387123282767909777770532813201171374010875989378205830463151607774236897226134835873888269698374820879588740501307795336711282213415523956282015330664291271191552798474859396301749980425791659551468752980152849302954117689399228038889186050066154823166079735769981301117215024713097729885726108924185832499995509052841814836171134811592224644242112324910020811475227059718002835152112206460674606744118000230911283751114752580836408522777195736677206568250668295955505578872599828828969142329214257343845125360890451289361948815196110978923606683412814544563621515571559592679106072294024125843602325339373527119969710093752651108009960931577472848077328238327300271051119536962141265589204131727311913944413099582765677523602314255826946578003594105066314565538477977015734458794067226588310627956797328110562696716536020403430593479321397436308649277264241549814331000830179382440152499519291314287887663300822020519215416308609026284864783125736387934629668158070519802688980081379933331546644812222132901019342509808282965853127147151049749040432305521881284868727044398988190904634416432841775903798627233550803864804786575867520815009823320585608316449525945827337463302784772558202728236917500643288241785176372596502567587750173554735054171559628813372215821043944485115435388707574612340849164568046850412177485963585470715732038005980667853657936653323028968975028205753007458631275807352465114698088037590258718940868744438897185794360648058339891679268826263746843106639779919987994238420880818751242339240267458320110767767613741349305368160318971239804189966367487750107648103632874799288162325705594844666642772743619095839696853379491182943388363223964296779290819007436480811324020752249026935833893576321594117681552753324336453577303855468869270405690497037909008841310521190415286133639202948780566430600010692371383466093562848882464975783886301382018093865908810465763330746183127098107606219870662217879554757061072573359733505650289851382206534021551314406605717834928886720389256824615810691254360688506404660623954417912762636960321428765572877519786168909694145364687781586989752389759058974955743068150916732941734018545116440058815382390421023998852188328172336417874155071437230920703331403898826695505070407624043340968572508496951491013311908772636491910292296527052651751303824677553046042096243944461378495167727476638752794104625594019635213223510137773784746143832385387910419048884984088778065986305648989643712095925451872961140474671673851664436699386835928514375208841225549077424359652186140240850806317772325146848814881319327047044469691532687010681517914119813749469663398775451353108414498870293648391408932132532184971718957751730778518061802535115932441825645953828426984959271892478225621911089157591117455437743840126648109285007083907912653333804705051112345210375217382852664635597504884422626035590342698732576719043580651447370588081080992901324486646971285891631957208779046526801463468657574179890982693579875357350545843936589180936491322742810924828877116033426741191767245865559465492624241776385588575091986586565395590008645531069962432459616739132489563721744356534274554735990871070976697381892476849686498769032008335394941312615510558831198647161207139382579364597839593188051829284623507540123955334465694922780054063043528551157101025871581192597615132622847998044775780137124492417979155625038307514793012424634029210672077120217379141454879740048047831656393110991681568858982911047527669526840295605424312471667696789920325674769160846044908141026678398465338075434019549295936202650988511919756864226333075538791551127148582839788729337726586661749603069367563698661820543092036508615842589343529747558120092515689083158330825279048649533405390442723106650190282541628813448089086169622226713519708375456651260491567604501209906678565682312912753416745685753379724740804644188292534845781747256122299697106815912607597032430458509370727505449986021931560128049487810565154187327084556877851692498488307962797187918787294348516079470638560576165572268676010668504685530697389501346267008072004529187059458275492180817936808093208067827488161481912928352037235085183622491275022226555880847191292981665167141807891237871906091400037274147929223909079693319176777455261251467235969957454859687594492075914560688476643393082618959733450055556423259656909929784683672359325728543256153798650559719661147768468273199111498110826989446834182455653776535300671298346008177905162500002554925068534630871370087396921623567624639111880635531059251652374386697219837288067355283268306706554228641124493366974357551451511191742876957103126953410639122683061964806075504660260648718505305944373026238364993194160049835950566593444234969718370239333022648202125457466758559761160217032718771050237698067128095821558711963525891651617691137535143533370429766394912031348301191715120144496231199341802092330215804540312593711205884470195886119706967944129593276915794537566033964700320421733249993656303947091744628805697059085682694523555277100028447647456355952652386287946934436037802623222307526466907651854072238890405405128206932726749906201741935677880931558595847352868588881232988511962712394785570523155958301774609127685905849363174670171860901551059095444192606300026732427077557108463409021710728038941666699499982515516345280153017518554289391044376807488805693096256120536721578539360647176735587895454459282241462727113770041960989264418767381757075542321387872072386875786650329717784647313528073192675544554187354504663560044624258663703598562569765104486426699882968737669727007599299153533554550873061522862010485576352805231937274673935946815096554298254040681027520964150106018621153497772927851885465379438719634007957404805289196750208325348591138842927008175734387159803483454892623866439166265922875431152413191307288668600227255635610744930580909214753859216837023666208983235367987894170402124114652239921660017390550243451453777002441630348875068806514520798435739749616628877375700520602072702871511752844825821092330117201752987807117415343400687362594488579205014312054568140936779991128468716930769449354580135681710486997153102864333372512856477410385336571395527405261134501677379966330339740783165031142210053263324277264564116087595214218988439060691951844390251365967040031039584096531130857883161559433168269607800353679027607540938621597764798616329202195670848266934945358471187226768083856777652560582800127922191247810577525070783766167394325567592861705585489070383928669955135649762919455602457291793495016552977339708831635329603406966576351019826225126962367433121605487146256904773607791169319920097982975257398613304582103203545243572552918926999430954235783117415792421746102898524809020898317719590191543609738524542999659701142077518110768356958203881036700384588395081627291636357323412331324772321534068190389239677497178585997691615221821840175567873072777841542926709013151701850430152997226396516756973100734506438049954122339669725390834195498159814945549403457899946319522790352555179298540809553182671145241481041856450884892452440029662392750697014649930151832162509792175408475716157085723986523839383125143835136920364447348922265677195184383192581489956971408750006914898652020543138017620889551398913063752946080005848796199241814562837933844890410656539885239967433733951986264932057632242101063965246724518521800260458051824917285977972443557002116831290440159250975188166929899602635828069708588046931538054046548204081425845971919277439981892522176499150874946546833106683188005453719504554820829080265619433903299875103185006061431532720905577796032702601251012986910982175205486956172511591030025326720157475469491164754526500770472948265764974266098031278629466799064864478735345137516992509470019062530295033168637219561435641589100765531792186476231741968342378092397072530905194036869322462840671248499441354749170393792998314603222826521975153828610675019846621330073756019957024302028963145775479053286919122415600154986887810664116277013226009834797520956053055330496682572263473114349936317117901601573243506834124979681406272802654772229792524702997950720702189168232681735962409796786524627630353993239284190487714892004752092375032499809775882707993055532597137294697615125227439928758580170201240518966591675860729222933195101649564628630671560734017796487020584174538621062299048264040335821703581245791828594057946434685281813757487321964301079540012479827401259293382768024858922369323185386307613872231205978688436155415715014133144097901346167608446132800077470492901446132836185641360222702846004025317660959686331981737978812170812210312778823836348902004887024632197907518108036772033085933734784076065455382286158672252992946725137537316459852580787461545964520383787303152628496130755674715870620184696564539110713363874230868797221012555791781994644264775148248793542461545637682988938876067799440658892302483548973588372324684431461970519071109935853164619093462093561536070535049373022893191432807648542191765472216878345916558808545367031868462056548215824094694730723815793812730227618699018129352683915489499128584994747255484949350748067388822987186303909612177607352548171789811664056797475079708022591872461863334050700388547479485320005804811813918088621827576803544197972138301326018130387516473146244651056502212123718018796905916765162887944106757847156981831169777205261925612643318843515534211561232520850385368233200773196027861719378845247421248385059510833886899774005829530946089130375897282969100992455258048641048814500813533639553125145804290961876130139425880662143150968203719768111577205416035275124143088488278643221246173055521826214863433792108339850481562637818146149894527139857232138568826236754316372051732093667963695135347026158343702170705212624294393979314073065154308992973695055951004610466599842529767913608031505052504058298059382668006773185692134997928219494562533985801195065207166244103127546246317915180540831701976904341366498224546003864780796328297697679615326602042173134119605203755293462494597070682813792537976908333026491802379590741843566691484610574981422228229289823091819250540060726786212305264246846348401184532153237155379038001801510197596236721457450039207855842808533981381529078965613918329981176892506463158627206459332616318734964080165687870410443855141675249538815923808500299592753554139770354537356136593624680676115027806710626194139910091544021625577742158203706428457591133980848844925617838305543586895108382564522788705823042928388184100391072790206957429818685174964803051071959057458222687382641879920435089733034509572396596512668409214723933894403783715401650060329431539606216362994083000449361413251426188572434938239854326861101450356682607624808010519656483854627548126766407530427300304163833988432012715994491368653907203087426972779099320241064137898524143267314374142793768456790550549258070331364549929974499778740498568837773139830770197058810904370334908201931584016786966466457042758325855163699715510572451204128102981030161501468586509001810610096833482650287888208695874268468096854788499409944580201302778552739566224193199676500616591594798249172271501931758684502428922367850405252648199938990334704464003266215947328710078279629067361627073903827033871651271589860551283252391086831100985717134032126002460685683525921171550015237889775777658699296087196316496383460655126802871986775549608946931212074826995802379413985025137275694165397786213053625665133821620579818785659234048400896927364044987569547801935561283391203006871651774089867452428326213513392253040981991100444441936794692003618064693868767693070746430578604556743399982049396597970258091003930359640279301977963565605103196596539937834010319663071821204417080770826448515749328499441403902653642752587421324414561214142914655381710518361803331277275241463339850448848688356394586648975406991758947067829296817638845238645234899468862889270636260715622896100648543911201522687320219877108407415868040185009157957539796679411557510210489359083117304587440990498971229850764500680483052866517926275689906617603971823476224865057623418017001900440109573057376759533603285714758345087806647932664405031963088065488917492004131861251618258297807366781559654256007803203134063187950247384006898120911517402875066093716741270231850267936946442648963851302353846313246379615174846390306037961296442518032096828390409061510381182691526743731119793307606959879253258158726718799615616635773171883420984224410268826101192365993255790979753086543787873485276301895452618859890261621479965045880053941711688003381023966216931134789346286190151392097953053081171589864352926162458371746715226419316878730419549557331346658555321733284662083527075259490152144745032521161640907575714412865756609013039335390393255076896499467169197334786145970543361914894409813799611233096534528695415985143662782493287046249476164645573939486322740601526454551672939510684319273181625204887626745400690170110684276841461010320010101553213615813584419377811298531959271917700499730881473261771858570625174791123712320166542564637207332686461996697999742382115537029941818833100452226526562576623290322180637071146328534502237066131506878015985828715415947484295478237932568349175344497713114950624460527812407646516101833531018753741543683997519627453272820387263211506577252643293663772134500643604804919207343837314989953773001566915301220575011129856406897139088776001936883193852558093538930731586952015094346099054625551494935561844495487560322178041807035091724048969774317799540624040864424774075957077210204894996990808765501392912082729290166727920457542648774105791074424121636938343636806622411878618260201173756880924186677609273178256361108618143515212441589632941147775988677514918111496251920993675129530951103583862469514020107949984786886532972617877768085739072945432227600562902133786289383956749200634127432207094179904596503071906834367458712836022109015720092337592278562553188112336213420180004647413318702248030211149835509266512028528118960356710407537006166478744023565297143720774595098012457408098414740717722373875587237055461442696535099344744250394781879837263118720958110606479404033339280918695642093611962240257991118074492470985010990277364005365199800087467824959903470063968959741729443366734620973054347404314576061193246924919706892071597474843273783822336887814661535297948250769285564900991880215155306406874745286932325936292327834352653785267452189446554909189802090805749227110986084383591654808150139866814988385281836519539257739180775489313267772374033340236918784271706966350836531005650911730078436297559071496673399449314571484817421352884748711505559913839629731101064133201713040598261631411464973834755060988005357097673812358413964108620922789363899769959867643928649017718489206736122091909271856822576397606272681682058328520161605897481279871917407575412419089621225675350112708508062803481519982401236019520559755392079655060311483535000971325403799054229028416381719020497739279473749896508567602600844774144834654948713020572705247431207128871012524085417986247198019191325177993494866275643645649484611801146493734435687546998445652292782344194310830248643063812181132287447969265429772272115443599185284733253499669738625941657731423397517812002847435889713854166743724104149895737860013232976115427118888770041359428267644073680945643964713862535843348806922896354817445056786948922074947203259490946923954485754577032732564856077527448745999498124331094356780810564514320392644489431682056748402924809774070026689518259554565596142280352971475794395854109524613278378475616863072519986782942237224731900514824060442117165309912878701582351785761462226839513094595400804624597874261732159631036480836985809992871738713594324036223781070429305876507647607180946488696021443507975615000507237718676669262576592082360716586743897290772007757272455088926642182702428620717461609149623318357115029321507131914285148153904321014108741472178000396965446966612447428966097832853615965606926835825257257251054957858146329933133859965876948770372587006940430276136638647938570891229216447575152660822991936950866659614707298213491642865264595923518881705441315374264399354827575307713969460899443102717052220044485659332466210356985784401918954129257905147686923258712584096456176301860023020508935344772602099742512880421719543755041804387119176515788780633712497507043596900121211123334404984837957089439718544253358076565163681317774151569370721423607176479244785267503779637378027033843668450864565460811350648406538616413502722201723630927942658340612828751191863182120125952552596301948987409056990858078879016663383815200517767759091372902805956049162275677061669654085258272859992684383339871004864494766792839477819490372255887391441756922775698171804331768637445208064251880284815896876091025560829715315393020720180809854407633222934755516303106153824674548108928097201812456852794700809937430080857363440369425607820232261852236581089047591067372052307434635146220202275577945401811622053162048207977385853957698775159107483747376349255520440590790100914235176459814106385849817041991304240631310437400190113870854487226845003659935289632074338728214924717930519987284424181388033940763673121581323271337931321541679863919639022607934868491123059423884483584161381347529467248875996961150028724961933333808112795554798707192869185465057034111540081011335832057820998587009048743653079838187767153026286760203120130246375318858368433427721013496586115022903242137672200477626261052682873798289684483563195258987914071790620932888119706598617043997681261927688317587665350298225767117741589491010935321820193800243504855550659839719069689594557352002387037383227975278854791490419283886659429782957213243475735166450606715469596906284832635601219654201483032015813469812414601581129931216197364038757480553156271709318993171099926437875476834560912926958068290347179601616715712164644729647461686694206799006576721065490634389265960079665224782632143622774750981245800263071648957087555918860638448945889798076616236508513081983177737926682676132180310595555401804166725651280935218422301952400135549082041954834389851900730523626190531030030848936590193279040118776523543082001343055964468841258622096434731454215743473688642993450815774123164804541555798683137929963052332815524349539408538414759258627273229616924250461188247460166981746209905281713388198131051632829302097111833110569031286880065170915907246086965339373001009852921605106829902440803899540740431037522219782806123078764987218741630117139104387434042319739176479125568079777409499248755898461922202655835632420599432472185889358447423197364573988883870738524723629552056496525675803870429964516005435432604196921368811819654615891466210340193275382987318164244637183190590894038167297263363969343040814866592876145049620284569054265625200203576337042335362604091041736148505228500945365330748672344930159981641874508528534193251621843989662701126054735329984710057596776415342133309711986176347233613118541331947279722930719649627440512938292322635507864119531190935272505996125802032612812372650115999882629363541428923196725426065689381515536425751686002250510730939915060724644533523724616743548393578973324790654427596947632065032496537212304730110176415385870015185664144762630600190873617797380244507295867290793713176248100583828655312804500651533018513658610082298025459089282113151332064850347857859717391742131979810725008247394421747266187327018266290892162711732545096118197017247301058814102576175546683857077216624793867730379850165832263165431459441811048607309624096543234568682289860291545004280293101597616016625281677022536099547987320069920941109570224800195823664899127154087987531838507180598380365321904787809488017860960028738246125098514731900435047259722630748207062510667173632737523492028294100906109832872456172222078181682471367943342776238686385609706446406066387742916643940460856066528958639927017477234362185779468953726960985995542313142046895570150282099089008488458844451034512201478396287112427684745920851193272625581286126281610552351832981058658897843361289507978056206906196733266951243306079947494068548041099278941393826687708032878558011735905135442367893971381346188408941428595687982545526354065609822491400530580490659689370919713433192671350285401153947795161464759668754563996620528047114030325389775768243424133509472170048267967589449838335616482439277998027306450721607944860570512948251187431885160602754722960430970427408460415192364870861309876859406357140001749476756105311073321847148325588778477342885733344435128946992023420094802388403985520742768509834484764786500185626879864869126872687306913293752603947446328459878839039432677027471079456741924523595322933838893002663595308914530913626667623900277123354302928764235051612966683677654060628656333205912355980673367374641681291470041462348616524706570313468785695388331520089077133183635389078550963377742293438427338225007799515706781807837367618718932556301017720697726639850465190469469361194073602185605313873525012248556764681245220376445427050878400068472612222256515033274369923458569125571364335304457214520100318252296266598019246545447990559616092634909186569952304222144125898093506812698570512035572807321776031231139111291552276358936584762640681307889416896586551608606782110498388479845982950671741671185907039678420017775646371593986916752205085064931981887441004404899459956987312570888424185635661747201809377359342411679906700929104822175602473364135841601448361019495917657223365630517809786970481683888874016681996225245293442043644847886204112983050120846384854544231892708363838613403959725460909659241134708527974269395070172440837440033770164868367600262075119509960402229028173047597586999587972789277106886663190538579467437287353465782756462607317339054686456254050902184409572412039126155226860493666635164096219860222172425500497255260763988949309282223553146519516107457221687578237577613232843935556530478996299751812421291614764409424513725284308182989501524198725157685686443044698518984030371288378752546431177328435524458039762825315501603335187136223090686788284909975505317016034515766815678120001811841766165134729036163880727020703912101686856253540280440178833702548287019835703761757022474631401075266002307018379150497970996819358947962153997581954017001461427654220305107133140726574403799152890421633324389193483773369448423360499647745623091019211154773687732924071944764908461557870327248074750701119331710388569821197551024495630440996778132013340438051096899851102540618773289263843733817348235626496792344981900132446199671335238982395840750354965622465567844351742235568120915166934628848036261014303058166987885744831976335734920299729633341752514965786233030788952975934398883085226417452979990623509993441381742178708924430119669365176254913408068247585226800058756781119541712487284956452249448326726929839974630658636399926269914972223614141212257664584716548654053518302168879891075381729705608787117460605294557528139898389469016214639915080085363035540368742831130818281453784272864040223234941357480243063844533313585690350836254116604654564161618262283882592269644651331041317624013024974786426309688334719520228346329895887247401886772446906765095840638034291730477702138746796621732562432705004005177844731053192356478136778079346865832216629170004597340871816353601290203281684564134720562028789283265623681924375718724092940256743780106581840770064132765954604592014734223262719334415243818745149068181662875604828973556804288917259053880088717847390154429968367998042233412359681599874880171662644554618651787250718823164563606712569947544868582574870963350175248781506695569379916069039370291961613437692530980251826522154000531284079500524455833361498576706551730563998548117593406064070175396406127004862325405833698661391920896348482609968660803193572947973067553769301544753567084265669959197097954457004494886775614804325410723898323776393380861635601278602702936421375625045061455960046168002620857436410136793211779591869195204321017667804562516703580887941468744868142777977933515558258254971464967470294934480389396881821576082686274904047025043863483498818696501165008814047454504634147031095077198272077167253572636679011325858594108116273770015086127384706072175825365764308957464942124257967244465376444014021903497086785211730044643654260333101675904158821033496122304195868580116679961324827569032350951122380541434033565970016987285715000342547133060724568996703913577092084870213113495735932144164010893521222034145457830537571958913855168960799532020549090688760198419871051936609582689962881839012519209594033711281035864483276321318885851587817713600830101920931433328982275514048224047966050955639983402156282842995109847198132679987834453797848256446927255457699955684385103589736227454850128630360229710100050310866807853616238195744900835688803387331216995621323251892213182813381238807585185803361724247222509570236070894655908942194021581825480010026365853412496684986552221293198053332198125467557943396351563168085719678157120330520093807713957733346632245159337351672350082035901546825747171076616605846942410130288395861692017030842362206560503032040290391473093264312609065135201261927098679349322432772003393541714410202350267621634758701343260080490867423978069257813733626678531713771375604519409099315392166672923294591391429034299293943604225883222437249943423471261830602400123915923493072017696339041136958906060668948012403279719519051561450809551663274907769244686403624690731023222171081028994066570231463394368246910707357902036974603260584762121292241208825781586183214839548076961637676001562511742056454787576302902451008560406478093463138586154890522513673602130896689329641658293114009282401650344294058669718805342014744805197938041943635782696248224919156760086959867308298856563927715567699890211645295638606166890207597813780364138657064165537006616809209793756370188025031851422215169087827389144193738904042849262443581569624954931342210240260578004847065143224698461542598524702041394849951898762154649223991111754740637248372569006564484310987046063676140044298529380165137279031866311647316254352286537906351116824445018575369403999170169611384092993294385411493029073229920670526612057566822597382418036940255732435091841154852973304743723931829385523178393124157715102380560976188029679848958308371019377488014654032034492180189919374706251461742032461125514780853950743709401019143752917452821852250783648136064778528924358700479772699517439562796070310449294762105472294206381838195532059168955262650121183209373017085720777201789928457758561872159586187847694767177156974354859619908432479506164750118191811211735828164691114671664140644483147214833548908031090080478021527935611699062955910422758869660768325589967922316195063932280495778398218212376650579740016250557805757844115959672053050638290035619449673019740657181054626621972579167284319056692803637756240198359016203413442875678964795343849706185846043035898476830902094158078278804324145687700676917906278606509560547514359896490469147035332382978032394546115259080935044857505663497897618016688219253866781229410279696297371037986554628572969415348264328749022905652191947809667334330619453897012163857121157184433245735583979627567380050506968894712277275130903394674428382830850586527824541564588227435647529204451560428759487671885899674761812541798633545389158294815631970666878819455641556998765848561140280991497922664496475105193918186603908823886378694201098114127239692728240451247552150842983366569595666665964402409511547633450828131083713342317124606069820452471394159932879724435337240134521609246320646027083588742950747988817703987119195003671779170982129503264435772440668144523759344392109058251180197623281713319326361796793088916605669659405232246248124165589784575741372694079664963335655482606715729394372014746374284428917013007179185328643099393091817572413519961034410674404666176556523782340545050936664406885122145985262841852887188842203013785269076448463954099759646943246141270535665532828642674227902460121541496389235029458157832090756698353716272535962130188053074857541350175610001553191105920277089209304458362137528262660439896326049629850407805286507725083600714299638127334416566981672354962606058762730634964820155325697793286291652536451577225247610643859038983451281997855451463741298000938068013981294801821859031427491603159651744663506590718233760169545547642841211634276015421858211319162302458977011985300158606390281342545156689969138250316153709552768287747076838951164616461374644830048334790765899940491883878740589834916242335689207925211036375106174556043774777559902471628265054589564213471106948660363223227072583069380880672189946564150308077432222150258502999736611575693651414289413780079160998954476486710617213973697376461728898577705689638077600552569119367474801864309045864313757654576484352916406495923255582223443234047549236154854408719900600158008926116877854172952054313290196662192495836476036104815806292318376934547702212520189172701486843412079787637986653162226420304003790982911226904266744010213564854944818576524011204505007327286278104424461218644234089122061587462075392955380349288425754437577930910822499266427275014296334489503744332913438257214817776666083408362589233872418491211355745220500709863988764663254613614094786867230960962539784388818565659570199763373111420417085166854503236635337191845053204773835138991739942779918427996032071276635578649685273702009868752127282273305388530841157024966711088945060292531240890655281211119566461580533435459920911574214981504848476436679536380724338022002707619859431161830539067943609300425643938016952167037462148718642006432581021646963946533314841704718253717346246659914975905889078319099821988040895794093682599803057430789201189887284647353826514474585871513199280999377223742582130046904160121796596698607312626553608092666855658044096885996671207353360965984075645192125703931371438149501893632186580030770537136248736850424931081834458875810586691808105334455515849244284877383469148264109463284764235955006174342083451388406588683108569603329643860353208356588360080500154804566736425643738578865559389549509160329764462550318153782431286377921941993578367459419328223469100991140904180806122466498116895298494601038686509025758180976685957705736289960268965986889133342593757991072470150807743515190520922777694052002965042697764720768629291630247481186653504163186949080810393885547021257882596447952915473181820990318659205337519925516176805934299616260187717667438698959774787333076086479803469941145647451531747871526081452760007448850803811429020402729458923736894754842043443713088428422307053688502748429913404536221375548983369985723719748553267770713132569007366598610691967895636875648678672261950096694761656685676129164735430991936731631424976513565326800779913071138195601244889588746714373180649943452909749131760853854163170484607234247654559687517959546869359728315609098694784979699529972639962670183212733436997336118369633879912663673657150373267667249833837270716815591737007365217377127794258584335221966948113487000679009534247447228401058442293559789178696889333406065070882119863542541845953149291750602377268129362664592446622789652387465936276515756969572506936421598345862671685657259845148308866305937359038957630426032672297503936127318094794829883440444774718109335195478843722875376936403065161405947279240474577165461581200768094055753447392156177196708633143946587044985891661839092217047108904754947050192432459166014184783243301593549140219618111107506001192110074126629479806787132652133487522335881113811812735953162947026233183369946371176667355401206720266247086394457978777616390462467215914390633575914807470424675352481003421758034829112303348728574110587778288551735428286343713396712957275480750591111812504998631578193735462343711177403820756494783761725897697079489279649635581609520140527207134449005516336589701377164292136213631875916413626281067603143603775623242305011633984450910164540642166212569227358632567833849415558373861077736214140314670263715321635223194999727754372646275275453918051093299492130463625316175491594700133516037236651885950318956299935029893603311290403331493795610742690305334299028208069456506780946558421036489263716361617703514282015164282438844934371261480110463584150657009115650968586847024031077633139548617281675805763155362931852807252647451307863668427676286085225812709581963483261817906071170489660599987554860912166789406594220105281122977969109315301113807686320695225272621939063327446915685647438913653961532387382450502148441188040159521504980223113120187665911163942961992112732957023874451165960209291323444338185090477826478959516356591533894845298215033415332786698963109241649342554274941690990914352342279250034646355498734571907605923333029279078852220369635385649507287221929722222447018524889582287731511385339186217499235353218320713460198180714036592169157292978701926401189606289540344634213236408213338245926827388261958970030559111208542626821477820142193695102192470084617177919030275144734307570003013957089858244290071297897957654241889873497702909846679323668605809460931431749362068612528852802838460732370677530489737078435850660032062231940572022134213194639161159794635411240263078644496890717092624080530692328750416471375399440684021707700890234472296006673931766624726914970468783660835954483681429788020457547056722268734964937287796578872026801789846132557379098273660636708218218806015891450734243116243697454718080719745952052466371385591726598040862567791671935807224593450831529508821424242387038662596519299571297365946263657300955102004363134726901232560161670484724167315521406834496910028631326791344324222728545705995310640169130534121006611898934174552892004783831690856221880813630247297489877536421136686790014685488980882806571795412435358162335437708328395446886219244489113053253967267673667573966529237879312080963756822048436165935637222031519516231654056864799374408418659577472880648259844814013345409484078054418833792025711074195385392364224769962985056730297437379351546712295746364245648556216590624193188912622725538337733231028909054723482448597168128133176437707039025448456996108749799720554066147625330877483639545232787828088794270346977657074229951858158933003728841851901989278288466123895311542956433531155813019729147420531122566501561152036795351837549850581583976324964005355931912328263456445003586732367462683685856510581551427881679122767546291003525527766593657875817348069622622576446351376847462184749733944837118782285220897597907151653325676516892831776201106457325022553040198279905218082243918752557654370085289412979154865928008394275436521116338908634650917046245645925802404921658317988720277844046786541597482497931303839021980510161414942896845447937400328462976004979366765892641044714746758735640584886669309859608537463398286572160182249198159572707042554482320844250290541295903706189526781344274461391653048420027724874133201821117979848922345758333886704843911546261294491628404903387435179130828817961191310214445459000528373719942439422693114498908296382294986700769034528164937331001386840883758503934950592799383910979219122628873546784990911514012916574062187630916148819355141717263233375865944320465734713078553165013938789267811487535411386078253730644836799357853004225220398750679258465806337497487497882964353202664840897413682347003612383696931493197361434960406896365532552006589439130596062835018414747309691885236791387578746923215395414516988955924162918098815967057552482950989747034020562622920218096072238222609024388113448999272938588139442470018830427833365857862112632238334339921387368970471511421000713179090914917386967740100343352921315290595281475780181768804024446024554449664435764778670981243586006767605327345150073419717183221030891773743996726750921523658561780057877048797758122248890226642533288206783760607652073782382965042659912349877717591821976499853735563357660589064966919773807541570490027982965869249671675109202308610784884253833321783504874543743021004601594611927990173942881026502443261204473616397322447277480892877964430692707986308824512861935156420006340189269601828842569098257092408796635010273541234598974944497855617787260130321609088642294359073658557915818601507712281330776198306743730758667646441435093189708100129831818189939986170800163149028334094828070059752672065157991143976502836400598991408461715705573160843179170873725855581454313456107175389928176315256200661785278488932494781943486386696752086913816078250814189849261971492692080978372111940000906788924637271839729926744875036096799920171960816561367579578661709185212683290537547027225960702787500520421952545502287649235190062115354233597654618005224638027829818873462404250816662430937483816903855021914026199884135165608896244428696904895882012467081065042052975791167882018416082609361002662549988720884752801198235796522088862613436580697329387190850968796438937639863440317939938916769721195853373318470839151326350318490987593309065423132096350619920311423504357856946946299088899383260509964321675595434113429612869493865771239615002124767229754525533634133668772824452268392245213464950105672500151646843940451441333249713861398364116677371037825001595565240028282864862523435501620422683001436782629411977607555138709889691351018001775550296848651976430991575822083061449249012977851575301666959617262503148485818624886067008915600295470370670305529977081161653014828992659113176574651645616059072542857053540916028147626248257697955319866794736663665902267315240898255038653810987165259014903481324033039276067160530553077002452185045663380744417026446594738270483799657021840635779277817298391409638630881628813330795811835224893554630529571171754639436107772467585410260073446581985784657591662890543591408670828139996057309021147418487520191404693246912478559515551765833695386120925531169558448279821007319564221060130130285975048602209280202022358029200292747179121817086473222969210457511996288304300495442971165551277343078245921664873050033893106466879584718288712493442062691167611098198570936418315189795262644277533381694936473850278046641167350464006578685008073397678893029294029673379855790502332921545693312802964324696151636448687178380515948735034904928321370100969211197062191155181856265672748964384095291409533322068321350406591635441866665554287902557197032682514161367180348742902443541273563804869127101925713961132794832183498899914473850254741587468574138011057271565216581756160191348389624434806545087598940398166552866823048554523538374366588709263869274588067803715220776336677350176597940553994632927378444017526187573861703240721697675190070059893902307024899860499904461554032819872700133331765286916114841940376824213389905182324241881042032771370122577585772141131514358160571436494794630198991132436293008091205686180103469860937227877060112098893708683115054307970796623201041854460055733096946569511533721830135365107429487019654268929262405473692113681520174706656481138344295713999278659232091634945425670776426109051048581810727881091943219016372334122060420335967655732616438991162664204061204779702530233795167616186941218392766358803750887932911614118136416286149175642683239129104282099587097156594758592664489479573093928327436754516806300336263300530304696798464803591047014065085537514535978541498320800326615410700869801424037828668696887646901513630537501552003838920308099430845008222132603119781433548620570084055089468651378564838565803122579645169623589482074921918147941502353851010782241284635518563741447972035323738025969902437056895441719447143635331750606620791566825561757689283719012574005572149120388199917409804093175111731923326047068703023002564078052876110856358333795512388909377827459524963241855470689329362393622664618258987067242893011688994489738282930704515981721231447861807082374848618174276934112880836104923878278897977525720217377173833429597298696760499357387352962002168835708676154597911418404457622560163858162452642760338994521100618250967920213983145529464943064791633488507460257292074307156030389290369564281378397087973430021522329360264193972068953277804964479402307027127151526686840713151883423281474916292300237277450186554526660947939319929529110032510676620123213005504227081948243578739237392516451660577902770248912196370334850121112135636951645529301398246467236416795854782032181244558661371083697205008275696861670130424380278643062766287073307249784545032156872570583489022107294026882611612610464269568807432682687244469075793946405066538910575079112507609093822303779804545637180973901601752489187062633692756938614272980273182230355931190822101428799060523250616237517805295640571069626745967157272828063900816288055136452287969010469554656371416733989811318315359042371489974210408221548752089569888743717508652324947671900995144079912829124099171721221726968893044173504569392977554855960267909903432200998982154980966747698397085446270898592143708704692411630278216845211269144197858214643623900983435442123166004180301105655865908203262259286505901696792643816182140558014953230239029819436966296188913115349954348324369364702263201728481705692067859333034741364287078039929432585191730851094927320625992036881644995355322365070133545219105880973650648073013414997553685385323819179200107583024837837562997408927245010441398517496678115669438131713305161679160858095890160999992988768605449743192030630708602275209959816284454199211656540369375958921813634997095784533811062892529125940009435146408474677026532678561177136782536387536674031977309273940697427453542734903507642845801365654465522862805486238938851506353687534563259021598737258689532399064642529106095033071096202579080001380694959666116542644474665489117584585879073090881245811103221859328015257295423333825757898983089703941678083209962224804063298363156095980192111301670792638323264848649526672696564103040022999836043720449108396599015650268493807851263516386283082904673094153345613498285412542504746407988310354980608175458384507675289976370585824515941779785196502051002101861750267842062775211652902579141387015093709680661270421061654298222349576955181037396811483563309869351130899090516465013453488028138751733179819227407483211999164615304711930264560548787036964792754107887808835296346718163967088800409809226730872229804964637256927626564682171728236455470609284763204163877114842709554576969589419258009427895680951466650999034944345360436421803556192122144440720306393209954211441692523193930597006732070795537130519343761623651196631850733355566446060031069527396213981222819196200311745169887814463223357824429483962344091718103846989802808994045430651763630950587349458904588346218361089150965914971238958776313748713090319567167991027762243251599366921053741145125228574378859909609856702941002403858238628630877886568044429137669421351359256379510203978265471460535989898750029346255348717541573889297922165752485188737156069306185475382685739406094414327836019588385019548017254068610453860217403335199121351088121680536706415909648519431098910033106359256216993740588441374490351173778245173282301198880125097060722492561458284039604701195302369035841273234583073778176852977294306361589861811364976759518069610179435583175474104447795610770586992866172744633856868497466358912746083877855859080612505960793804308913089389653810312038717584994471448333215720269512147565588160265350769090057314907879826758409280786564804868343337961668142263640077007626630965636755025029458034080830632724231897050010369606554859936312355923310045543334372316900714664513975307382457281551160354148036635157452124678839561845222513949821365827659575142145719739617965069590722058540182616159043807888456606182779026055567978511648973502812278607367535501506906451311547833747882139871457853584013852186104843275768342803301029372067790109820881806158984271643756772669932312520584974603753665899745866395007676875079892772840091581547059600849917459073833975811935882933266874164737125535793889040589534814695146720511803943677980366833769312980171978260058374110111074338611275859431806390454293014868998709980515337132071267741235667657496772272248253978457403749918131114573324550737176470282157202897202272708301142771342291703600289690474616861501993572022958689283377307808510697678815143867638334197003828783295220483996784417359945755037750087644663254531341432082865700942327232542183656731064117654152747342285500257043902086901530570702121609184978066245365095770259177408627257914825789812835092801192283714640111909633725141841376521447936300865384821326983614469553714033270209701085086860343836917129052937810479967882662840448952253239942228714103884846214299894944068242009197590938578226019526916044297010159569744426735548545902725534498188542735884702156507211959867161432280478778982747976795593169439418604485661966547814465083018285142489909601964143135586417489783369772788600034278136319112385503593086983649015517882311173239230203092030377465964381282914330621200907560166376520725377700609229437705427921612731951835212230108754448005936502725226993435672357701213991866662686481453766814447378708247800447520613282613231764750648845190731540929828256670972269062263476225909479335352796336875312610662677715134657089469703548417458939540635754203450921074631070062473328491176325906898490446584199796356194118222804610403074977931735890059459685111668739745265830378351547325906905392154959507980525596367779137954941728298559442474642069157353628764941328838156531110991784906928095580329090922300322083095571581999145680972126232644161774993743868494753611143425028252819020778455261508015793500144714301582008215579055822290286301211361517070856001989421778466243124348258892368898900983111607247444894270277537291935844530726611601570123213101796122733260740136601893195838748694331342063509129347039331062509905696041709655983364399316877791503608669657302468820100099977518350337210411029975941763425616502030709619376331701085110258702738318037590079159152408339084725953801416330647264649577816096410245069059805534585433380787706713277376829155806811295536121895287518279768002588626645502500358537350816940538447113948919248596570218623215564996219198278047439123888516688909011429326723246306160562998359110778993826692062859848019876406832557666856912956388241666210883634989387628291402028136350063588736114439302284110429633283766737940640729037991195428058492635691719770992222809039645019272673031647485967211162340462504423106320102463898392767689421532355769626280197730243638666369711885398811405838034377110521330154918098053892765214536495559521649628193388347944621761363483378261042204265241249260075181127545331593639270310327177268130551471745233617050766478615225731753914915208704905933895479019560894010232334163455680018757256264568229718018143400385884595294290065092091628388048398088885217847402122762883987021214391919988429134120817779033329498323349671095943931345608144028617658964543300778543797175046474902499699815233008659920847664249260317660527954927735570557853506070407136706443196926589125994511312532331998878608024473607704386486719514053174098048906853397591414176268175805249243282561164281179851515153602040207900516752116233991604453591205685095634760989160173287011359291673075607178986918956969263842970606839493618372827791568932101981594587813209826524156447047058607993574537842788461012789803837052923357265510927494287040671519076364040209285705600027581828523418776031370631757015876595862566922509914228144131742175089102332801088011347571663315039774819384187761363392911586405208784102583369927469552584785951752364505712981238369578565811807200878341528889555758883331176358134828399542974954296886392674763874954668440694982593487063992451608918950433300389631743541059104298686023740415560229509831504569478763948847111817759984193399838758900052230950090736421012318000769435584665255939099287238711391338470280769905550654171662609629175179980951934321382789936081034142356314515118440346851109149462257498357401427302331328463965168397004970224921371611301324714596448043358157555769746560498552688590905113897585763487077857462986268935420015557939049250874384893325965170829292044708424036758887659177596423185733599826413765189609134450156272760878584633655660115766914284227231740652946646587246239132328806809172799332059149036889777362446158932736151082430258409012998714580270391449768812836493439887045383683445907039354452529814679578084244507374719811253705997960177122164081984436663384946575499805451665569260961146886473079926634611077879889820314417313565022722514533721361388708496506977786731874592412430276319237159341929413327323342156128464893132705332203022756743079223353587641043095049010053157282379155844089066131202544125262509833036481938671469153274966907547846964010843181285952573408730090753303778613029276670070531850179472525231634282671490736871454542377583356428280430215978445277235032646876976505894401782243183233008491870752557741707495409956717364444196566318997124493334590144451159605955741437463583376506190546705725458932352308844503557214496040881750004481385472876325025698544748514157683704981330908845478369021163117388918381069828514961551843158281448452716732357446852675985488906994455438140381340172337336861469478020932903680506367215416238674440397367529289521325046466081703735708559934607455920947670680968748670985106532736832321244021066842700138331944320902805106855091102653374812198893087139716431120568604879558536924034880962086283035198569824844177585312177750602890494480372442600919139976427621863911418244098797094413117560884140430905892743850301795903613694474953629176034627140543374716313414039259625124033918083163284605957424421227210763905487750304815085272985124709653449416397679851361988908719972023421155595543841668935066049684993313076069326882775861614601524284402062589984402738600812550948888043042152695895640011414590838844222184036481916742191850018513211380110444697538098375699330639565879480243724705755342811337978014758747800020268752345330514140953680446586553519457007572918212172250205726853436198490691153195508332195372908311634726310755810943496898332126748683991671528115588200113015047797890550138959420031442413001595147311863784742318224699683485047143854695374180861300221866077900797336191842050753162974153181332506151466829883081374693244016018821110729698775894121662885732562702306848064458391994235053171658203628545889747326611310366295263207315960734735061376819008086237572682160716994415612513701726634977899023086352379760325894764538160464214677457257665103662925633125883056616900355332008520052719922076316974546565597284826445538641155893329492770777746217518847454735889212705404257939077644725261202953173351030672998908021673648101826830359699997059565930536355448343994438499998555503056463471888771883932813439822084030766650444312105597784045877914446410527625657467961642591216580604908936097239889215574151384047074909074135899354963328990725968386172307588396123710659480880531562064238576907194054701114166986771828910536224356286115782457941500808811794105539553340322264182608013570716790134400263572313059226617109810217993206163667138790169815429823525877142318727330127613131320694843477014195491070676114862221994012392776958350661953375080952090199828752510335794798729152706631578645611377771287215171969527518398376840725921226850393658221674055967203388597723376680107865530114159742984715677328376339819851872016094872016148996285741845706077390023002544264189923608868879573541466964665333836919512330268510311082206838412187033221693012580745566747610727847860389395271987729715981431152195263824923958851281819709915858762714023635066402231988069968675671442875133061065357613028591821976780269761673917095329328746658772537258503552115642081362567529624911665366091012270365069130597666571139542114136468101841902670331617011192344260677777872967861261829377710080947115422848809461976335085339889745796510741864124040257330019722260645162178114000604901934451274882352682478082744850576025771489122352924598664332313200737221630594455989026506092565481163684563168614830527059874797781968154772446398532787918788280911417416060025205187708254923928473763209259444711731978435081508487365196021532778387721535055637134456343868891957288422495307785519453013966348173553299203393823604192174381264851420110411891807301152553736350116519028090352951992319230738622183897618156291560994826610668035532418155314131942111582366608395119913670955898121881217019893313298322478106157967278675759140338632824154209229785263976965234120936426543550129517048352844434857017668336568353641559694543777630087741308485520470349098338495095239407730383588486657911853060129915790853823625966628071869759146959532951386227089602413327458427740848912694560195033425599529629937288880937181937374149600772841330012857393576511975960127922334247712982833310155868853779129701945701298936949627706480815509432491717645968505759588065241981751222671763573310149346924668309065705119692357967648244239131978105437135373183814683519158649075856005544657101934013567400212630526835596236576995285942581500771313553430893258198186539383005721946346393186447583638367280729990922776788770390544198555299362618539002957740455745180904088690283401582017339626638841801420303265025061952156796386809232116874749890848885992287696664534146031867629111349269930350039898623758025936841717601550607128257138485338581786360156277709538588099766239397619981419303185171570057890286932711856705715756439880261725294263912537574021043842980175256385165382900361079744916084476611650759623918732216265235172188191817774973170660628165804872216940925058780329031003810254314406222247157249560739984758506151753135077105353331343239301220411367790623922829748516089400237119115139947049191999210363449192862887236366716342014578654834644145034673484419384562919696062956426981486769527622691919166536658657306857330512178594932685311135310565364353989419294478816584463575105745582691480516289463090813776366479846832263428031481424928959069449800399043466773798992544321971798387454743959058917787247313625773607137427620449499914271006627572103225109239225598434949422879977615679971735547963042316024081286932796651791445320895487809412554533281121766316067075631336466075183229828060676181634719476730335641388059401374111416890127293540980489586315954929861355789867615750084146632112161038119991764975121395613306196772856536203843895471532695117612228654807776436957929279712874750030793849872177191172192283801707934000968298825241081968459419647976380818402524373102519214524824988544296479152572020602280722726014118644419795310418189423356672791723601971337506804402619692132697685506591021537076026236116141442994293257678292516915305112245519252074806053581659996429562205734215372300554449924479234600531488042282249448912263223750349919148296265654544918558448913623171645343339769822849545728017675921073014412152792448975933655408909095427553483915869794965320482619942590252432338249079858919989197775235361767945420344625846437380973705902110736196400630598508089345248899580084234706052774706247966137022695311331892224855047279928668046017831910542894392319948115359576426206265394291389019986933367048383655890613925663640991770269671681847889009360930629013100876288053384840647350543246338185026617847312785271018282491383119674209956446404135708128035939170204373789341936802358510422714289226372970516035149412195548245123467154789459577930358392714903106015503552810515877185916508320946750487973609943387151193623565752884703341540138720331098982873124729992728147315812443209463658148290059126838229967256907433690611496123091457751294205277592399472708486971364133015458644296278660740664714676140002644250534146119301261198306559435284018124185918156499205824797767656124724062280627706660985745099879396993209997966033317169808523540158488428231873792884545521902832385876550029453332295759902288788792687368053347908914939800236696941139076949209787948629360190116189389930739687163528193886312051964962671429474360151804294880554846444020009445708383907535831493715138891365805683675851168440927791370611127629581047020939387376294239654931476628888338914959751840075704966605952258754433406543108285689638515717636181734116651158865682559249980488149289391250047564117131337260109714871226723911505353711906061423928679809740009749123277340045265645243698327329433170146751075208666591721888607404869393976683237156094256170198113169557384741383003563168839059339332284393555300323620360416991939876944863645192171243390057836854316316266825454035024026083916912200720596852067621239914968605806958195266911452216671176620547997503199088204290510498638628358632621609457246838897076982526025010606011505124343839445677013142244539539085159617728408336901006056742459449307270919226407317113277839019560746469425547925382024663221683296023569642183333055747002453344714935063248423550085646190069844735648374213648983125569630886890888334798135932965843428733703674551222562526290809130745672332314602477997076151720719191113736901635602711101419309733287594545978258556852670977907393998041922257365831893718329051092162569082759014097581436899665791335991156362862400379686487700736725836238027221008905789158563114513903570716274472751824187683564982586736755067615141787544301733645270063587277070985964633029018132036855466173968263356957404792328450308238263212003388839274006164533069442559824000884793218793141899872902747394682155666437592938924740382763998592113591158320091048376229489992818682125680029108418625386445556654955412308168112676927860485127377718202942382519941445551112774061613901214514139922454020356688216473042826677378945776892661782884506541861426728502069531975020593085084747659908707304040212831312639254908064599380785574515057105259493917819164827547686986448080645289760512840775764242532967443395960354902733597689899762667710884103641543355669248261504725989391184407816191207842820865474401780743781153523337187354823570275562479863743239729865132448412691198996964685077735501777253208758601901449533302485963913337501192966732846308655298662889048267674130186833712290122046205164586918403586362036460518863918302446589438036213987181217996003606838519050962789356277082217609404813716310796073540271128735294697276029614030518070309500912290237310822477521342373769397142153422802614979616415100121241901490260645085046195442662804659925994166396801085637634781553155549505720938018422884096639943455056002903622169373344218561878629387662086995138648723321416983588712462349313770606077420373276320480880706180053128811470106957743023134702146048879569038330963375399339511286558157034729479753635688895817580358554391247844244014722551397242436410504078868961905615673652227957184404685683437723656128033048015780277436815561202822384666729921496693943284216796271512167470263186400390886159543097387575666253260956117784898155300632246626427291681468400165540382683249862851165099859126388158651725537862696297000040758945790775261426527674085453828826592871887857124049812049530943865001837205449991889783041700691923121133043465115788647900612925063741885429088797301648872786249123415869612625582387834090444576807240638396628224797348908235411131725950965821738475080544052876712262325079580354230144570511963476343895015345139569704215054891179224899624157389375135940717191718027561882266456856776196846780300242573211878721832495687511459462536755562899659823053329380065649939612825705096537054096296828605174142588269582265123446998688884371139503578941972192352534193404076994210304806733165084523857975995438763616091982804597445461428923658237531313500782886880267207916907970835291765143401202558611871674560679446326219904067094556499209394729148134532464418732006942334051095171978173236433832206757542246324023898924597621827450517884114941548360450689575750928075281222296733640983120556122186586177665970540411135869252356380877198563101718555836938315325314955304697284229274545525903884823537852084875555395162366368307562888735207548589261861237190669716002838632395066401004720392071600718819025138642745027134431662112363039803399930493918310310151724182304044127545396409805231383026734697614974901784019793417397624612918925595428264957515841000461829755173452527928800211639660568997046295476742648393788893065961149512051336200478736619249811918735880978556441663145819906168085787877332733704788495458571289961904311593415889924066393588756055558578800044706969649284764232892080843989443563931312067728591641889257019561842404441635988501047425421558376529727229584605310379006347570933886496012451839857510672525809623644859121161238575681644267993363379676378427468226163388220906625102364684091352433155180188610725185728951776548010465569672357714013157483544648919306540720685558814643053205388781475528809330180498198857578315391018832239115087457775664675639532673690348072218489679770039030051223158035192599521710554891218349052717946983309093756399161535798675691437782589107561983974102668555280415083201291093203316286653410258243967129479543686365259618791830784731777711352732206409655668539371927860714488998049666999910345679002874848571918981975498447640537947669511145096057750543161426665258923561951486347760880566925416738029219138226255979558267842727820526123391738054604182021039233992773816794588550044332780199112565958847945665069695740978396801057552332424500782176098254789956328910280596076085367848855257798127131267290748179834863084506917170882308482622973251583756186323413801504399081923293724212085109125377434732181711135293540692742834457843714953924273473056578972995093066984906740186990548361000427580870955191989140486393633499710405357824057621075296851872804088055360566714087299765499494342979247551100049960850802734228065465885106013341879740709654328796946879269015152518270042431030962947340295628909977067024483055835639946144456227942823522412514949126803065454381342912540863151159749812642042232172451141794983523113505508850328976002203515626838632694397405789337967117298499034386431885394223622614175167091378795322152055624866261034695067943000324846061035246604301435805878043822595215307752255941002205024676998877886142889351471732992204987016874028610101556210020560077444937337555156288421933397604922772627395178765587416700440578110514020957633345955733171643136592244585787677751457451250351248452240275444179251102314109353190048151384802349495818142175255822744022717881491668441955175588881260608702969040067472343767158460656173335283864087645468081858997187482402747640715214130622882379973756915895117864457140897370757035313640798997921021334286954615003819853775457155736494896859113666159643731057421819172584064800514948412234112679538026841261480790219833155953277092055616631595147022440835643033035897382333833845111950641757633814057222597593722879496364359826844147461148571332634718080670794547819609212296425195845449231639706533265220021924737777850771779514153795183248575673357412970175452209722525075346739694550801458020141630244378563750938482532575252686908528263750669294055624601179545657535792900432618489627343750893757343343316810841315095986146914588953637336318956916580757223596120936643535536766844567865041948087489086362595414514850710977062181763234840577087555765009901217805480275083044711643891125232189066554215297660420442911139984584949587651517690475852006413305655545160716212777647366735826140027490033266111732411428305818270827053430261561632542850581094050249906165263774259015593896086024147846976118498593497499008076163768490463445476421200823444274818637056870682260815471575269973785428539406167038126606815142462247245530091262671209406099469828516286948541141852500548045070650071648036476294000908831244495659999228607781526191942604259775715962377756798699952440077231144727146926312174112630053123913486152993159419023656239684760940046492828676243360197404823623264241713289864567355967877637111114588143329521614032223089638083589839621258653189906031263099860642080181908310781094202971653373380705043169645135819238540203030179930336169152611995798307550980324651153657696916453341386820801756804830868870191472353086914600439706105536828298562020000254448863649302104257977776432642543363523336626252797034293047070352842841459588532874832381564714494031332933075099141704958255244242054513664319755469816326987710239958321098764374289889256788815054907818721238523503055675390389271235983419454385831115980187440823764775041688885319347050873152037082209687619470619709419780954712086637663474653984202086257151489577485809199068374989197428694164570162321119331887345481691495510890459378627969973191000038460932684293946093418540201389562894318024200698628125447224127287774224923449087836775035772906304922767563439576011207003054558304404543272419172540424428533245736037553288951858415861820183942053843687116621924761277028559544682489076453069591032937876034577277923153159995325427410748202140974839219956442185528816887162191763601176756285400229351650122705282605421200352945018096814338381268554612330372087109445715634871749941728777510459779346275551686798805250212621471517141588006558148443066103756951590401258463012901386337997468023641534217286973413629185976575434077897314168574112875184980362475289613115585420145695990853213865697323105292351963208535824498785755052771692616940664469064320660522558059927125998947124839447429987312157327661740500536847929730007939616432671425966494897259668573985123422606078801663815007223423111353228004403858684696438114955378722079553579128972883829455478298510991168712671083962521383890273814313655913459141037113926078689737811391121487478050185800539935135225082802417748313596829483478705517015718366534213316332377024744756962646511790808705185825958315417725513697730267202310367021405927184817113834722621989998018021976952593570456968908580060413062087952449522772512878678701843580825338300704104145546988939039966822688708994159729855584696931081841996710845926465169409191913701519191556022521993164185746379040990769708149831740457072977082158605202282465169508517740582943580366181580205326914886218649936960078785178862950653918078376636293983452193505563666822492089144265738443965965201745183754447502770672698404232978386886831362288137738606033800143552871053409872020585225325074140421737810404421050574724352533606699759401162552765439689652178402173048893615996651725887371283838067194991999962967855730089950695341867934690468601077481969778461163186980141988912235484576146021471135393283914119305484431687485399784508750701708855968657475994453454982040638804409975841123842702192954591136196182268295323937341289500788196337285935539888806111946517073363035309768640928609936563495678008915320026960855856698568158737017650156100135217382460097722922258098687612338761870379796489764466759064310335021547518948404449841265693634138748518015494975783437497614646273977297094629357073345181214043637072104199179126865766476114919503671230078018602412137455067833926974974124829771746828813134323455565682607774415267045947260871831858570009492175603828810047964368526595280671249942931778311634909825347070490848199210223414263579944136159071166142353751668709158507966046636823104372835817537023458502475421549466686933208111137600173771538413680792158982036732756345881980600545049344675881666566422424183719333558596015184717086678452286740157883896576115437748243758526106550435534664713572185671691762618749829057090414880318522226699855200246003107044839839216998176521598018540097451633781185220832738958580063470729130545546328900493476834985414089871574987916127117146793542455622187272294269698376647020860441145586265630936780013795888176119848311232007656526008872440095645777094963178920265694792465872904450441808455047110206976850114720976449203823191396294219911757974809070712007712411188943861762965760589016877951090263697056153098079828414842027790221207031588487423114590991220635777523683430116142469542477198185581261846594553013303006994680846266784234084063896796824848342961451729654715711306143148010809706077734754914870370739844276574039110119168978566469509327188689362395596645782017059502224036833990253806158152041423501244956596828682981498441135753714332741619884169793532496486298710469326503659648822285335790933202171545682838851027493979169052798763063171319399782118894007020384759565842432328355178572020121531953956116645087062433732153555851691013400067202555960663030351613996821060957157384148576620819422155642649373170978042224296186489699630164812649727422976451856771713897202766262537152900788492959708168176791100022399532398071201678970601549586258489889521022033548402568473740277087995350910716427536285877584113507174695586017227547135227516248458177591353074471112683434381324152716450577478597711151905893736067716578689655407663866405280162071092859814802000282249556939802205240501733028792991983504547660419328996010419258292737695922299596737860899648183174908136972834519629030318834323116567140816780196948429029962757651044460255764494361183659131010123701321971728567901640061098806482764725010247316573020510472492684385408012128693804895516839073209727396532018004641266540137210574201586992438589934329144855115402554394191922081335446010966193508475710244922888849779456449575785721496609049446678024879526244457976072803769906551003370455412714794870991290576200343132826011552970594155307891294140636264189906889233000787019249494707167805205605852472405989173536592322547132091390377439704696738144551445009366977311723775196265220130715003938839043102008311376335538411050969299847390662192990252744047596065742038751108986279315747425929204431533476038048414455538686174391156633718287328412230647848225352750356149364047932698637747703078902183438936269936029616304232003435379912784185832315491952496251546750507868181665796483498301192240139974882080490174965000665917384933566855024358177838071748274936329127747317473530257853247913099525007409619122657253867100583658103563443887006389634461976061981903716881717787931833576974868479291471786066879769182304046519218875140729214037150417949756685733586333686066931753824773538204105147135634146278649823759859845265756630794907139157194496539598481068886334096583358378680203726252143373545807655888234198632176934144784579470208971582147557708212851414207425059594368327697483140983236763236456620053109157664196613065757382082642833452387546865995207089152681444500122542131380591856407629229994868506763426754434632764693392491576676676869246652816568464362425546080212431784273497761934381801695872553445655046271291933685834477724160259499561480772614218096335988049264498908632256473673243412163940467914345163100932751568405561640628848254763191349463857132869808607600062528358540494318250968004363268895251066765066137807584490773160861221770769000257766314942688975148072707575628019431280704960913347951901693883083990617727391182354806930352695933137302389702055533082027235732485526793263976483609514665169570487346709728803337391239826688094842923215288365576899385992490378219965884588425389100491280476599506926499842815112265701683965034127404005694426885933066640061473777615299363084194943471564800174778360020506084381961726841355344458605750212129725728475670361390453267270468908614174890735153348328721339398042658401375240570814180369149318793994757078900414551889235166333650271372080579880984689686669634710073206214188510331297725429644057986504787884164099785136086654983001311982240361769877317769658979237643896894499593453367441647539703033205769274618144266660266611026777897822124867979478033667460945159022626704655859040474443228498451207996872876663171669369338100762126968850699106013257418067163338630865544005966934396971582171589218035965230369263060090333973589639699460850248712778628693536980505196705853826053894781724958958085847113244083395813710168012055533809774174845461878241457291472004285379548677141958094167727811918723814580969457664195520645290412834621802904243139926155483394406261975517775527097758219763717578802075228587939382715200626622241080282944548296199622787902343625650443550593154997057022388172960227081739156599330839690103481790652907765483670904180679245928423823782175392824823846185930840510687057391223695421121322079389337768224933889486435628237929637725495899250293019382852689030418133317652346441230477250643417052216164972455775355070527673778961525239923877250293821941831890736572715433896727738386298069934738157490848412351122337649661674047099916070888108741738195620062418897158776233679026263770166949990869699425651961541245457966119559249807308228882858513530809597500366763287867129859120133818295261971349558234217803934788495237252295426871027128811623426824892240981211511665356125097936933871074644368467556613901922036059721206398583651003216492616807354405673002747010343282554338140175692950728425926567023378994627802805412923215707725919217904179102882052958405180570642306858210708653451771729273556514393788794338438699028336697856993121166687909547941448588266972837703572677484908208079505724300931088587296824688335253399400602438043919901135076706383898360051466651499614654676469477450199828486623181549510593540773461751414959536589484154591265516348820491910369308384883959891537919899663336558295907899460337087345520214352266357504105411916482360491691907238495159790873941756231702508935263831282463222466320931248532833053697356693317398205981962250707684765179475415069114264789932262314465307153018720235652205498958311993044785763677097314120348103330478993363141008024419526152199877486668210388118111897586082672614483653859810367963929084343892837496446173184576477904957958139683671427441316213458264419975084180043098197165094101311811429154954543994049323850092904254929140370353103835873539417442011540419350044032969725686393443550597281019926362671664149467074977333744506091132374363493161015534189259996642261196841785233131272605281845858305457002201815449068146441901332784262032848226885579445078451874134804042134303760101314668527806759061886204686645698832723695879687619112383396626745874097108651792485914343491137466653701411736772821219683217947589375346180387575125884965272381270975284352122112983091960806757230269107165193371342032992415970640455789261737517741257994306657825867554265984874909827538458183196684131152132662211836059726957425587415142148206619601229800442210455203764026965827102411896733857827024609761391733195530657161029297901959453955632923451056720547156801025748260201266139171034101435667678300988278646221837095914075177163064946246941718404114379916563641202531368913837112929560512226895749376764060383469627789993067143341044802521819917674082290055305449554535388074267437658714602533047516070943625653987583117801845087243511819096483679472414223814599550058611628025714092495793365695398042729010777610956574267904697494338029098740242567644641181633540295428394251828613714618341039270019760128619906595512918633473862098087119348682994156369036670371506544667646258411195729630414938886154283619184488285614871209462282410352789812700058143411820524196903634378773460684053543107572582948459906908643167856910561183430423861292683241167404220110002135757185975830903561089215355115343829923552062970228691951965390368833437054090712856136749638908337736739718674260978963458144474899860986436100048502695164837303947896887318326250785192514378121734166329582369261894697755015239975246925039828043322247056335412232676449065219070509432258943294102814360871090894530817518271463586656861190285912446472864531981964999549091828648161018686417699494901220288476309288639819967394553231406820454243800447107807934306377830117471652126450669773863182244519229240732644241900044215584946458714583479717615835460091377434689362018278082544761333751991667810374545263475625659807775676951108284331134199563255497149372387014889871356553327133595512404989745897421118104311202480851166688606955348159009990552911968683423762456743673401388510906416554485884371582855409379640435498698020532441599056298976293567014855071401447433722174102771431196336583025653438460689331018142570343889555382066738781902265043054350101755492493099748060555764694703543086067045026356610251831978287303948331164094546235056266019274612544624510262009845471469744954662020436652718250200426633281504262452055621912589723424658548914135494687251553386759281718106770125501232532253016676707236840262756910858913114877216224196852790616552230192325937404975244433946616500877976810657660499932763679857521009926006928806830085354639960806442766603541783679012632507668363874115671503738672356695002625428401545490882956968906588459803468929240181613013168190188525058399547514539867193404252941983245240634407012107730269948453977757985875071747705335149803785291540097292420538492394580298117022278490797484304921154138186320950017799764725711052563768512113117221999882138934833294514916015988908475390895769532442529195047967682846133172719420641505746825712499901631434912974968721034967278616379843707269447840197175646826645863043295863322432854881304473110882132059932948609362738263184463338161680912615352062485068182906164872656913082164327372569020178849233524181645129145904822075540484834433770888910867631378243961963538828568478355712515481232342198252842266423319959702059200862185861364119171564694352265224962020026092174984793467062729036677100186626091429336151163238153287601656041771137892661744192161849835417588760496072139162930730773092789605234390447159926799543691967426164252499637278313266112216288350014054538304246663988313919962896315052993428985661793740440816330763588905150385100053191543343462516831140772757669478934105432227543501914020184682260566480190257546518631422013755171796282543304077547487366499984278694261259563452337894659118246751855335516131492233324842734528896704398758154228661248111669942694280355766732550953394013542665224847623778410711278778916337786035777540399748873729450867977504807370809678884418716985526517219278409850406009621053521913490048479468312221091090313655824460044912239465154948042315580950038762870590262941367039926448206763024019735129145865658690122089528672958267519238468617697452027662693932754319029220102896499413845731932409899848481154704919079396355752006002486287681384927773652830883365988896524877280898883436562539791935149397728982722050767608600532024071249177832488509989696233268468733466871212042477996886634169216727671829015491256170599055261782534699053099587856992967149138878242241998580140021081213261286218232574164365511776259045466850365088129250476354571310073600720307466595716827051892672233293692561126189853256081527876367380741148889540070011635668895155344244846327140400370138234468489229843876671805895961723265125277141634357204087655773277921502880921766383220752749599551354454749234558155558196519736976941750007387536156022255957406536418807999985628232486127493980801066071717454798202462893483779500701504907413372828100044937657635937023287360046368369404902457580322362350689695294146493002786969097531789230574159974036245499832201150316331417365169241300898853422111261070762910772010400026422801855840752158796271347846273849082547114275508684213914904826733627756796660311309043729947836295717277283474349587460156537618821482694359183485802865375541975085619823961861630766819716065314382470256124011980303614709032532759077963530189993580653974753949385811994803388839537703780893811879230614881824132254141866021930165538201019156687439346197696593651863316035636625234102170097388696780749659962676910616468223068623026502007776658346477134536904481777643350763169336241873678693222972523881625533688885003325307334679186164180306125967214005611964831995737870531783930891951823076879892776496738104460781246745592504723535423345813440483948206664487540562807583246586720361495101516378800490151263190187570135871061611331030732827029705283707389287547260419352779791795465162818878691105537596498073843712650489533767537259410303492092107042547284730949558105723709824152786460898245387446065284080016960350790866989688544788042527704142039083829988935957893790793337134566265855360625013429472332928432120633756261798786507872489047262468179639364781666304464567837379371426985258134091145359921266235315195972270940081268913541415399998164267298727976038174719319835806248740443400490251829122428187251338178055890026789512199836350461003267002865314000369488033759574681042478055641021286775790063164459343100866183766649550250243195405159573843687221487547808371685577471423021744585264929536496986799882014775052335921094509805436611246841753963350220041459136455537023325528461055240290919365064179365632589025571002819235079836539977136874817305115494568278467722219180661022520464810807655251878566438109139129123052062487085508960869182540707489008588622231321459856248990954073932572332387656245878595794832208606661367391361870860508596830141127396035317807329390916687708208370091417768292094042722494861786783203675202904288260105931645605793864756685632277589356664811492652771951828142190454658984272102272330438549402922061255684476511583790478569861674702186413749111371016509599298643895464964558734432563459072562264518410943699925191895950179206602417553488117570970565234846525834663387793319767149556501805661188889486872081986885705164699135065027590083909170729085789320226220433069531726708954649746604299287356456221654621666660402032563180695827069054000928766652028217349183797859112487918786253604007430585278205934849205885665891845061149929009558175406723787079819567460899071553211704778081435709325344957805613364774616236887689985531374532382328652469168784983076085005273924777020233928340490417929922524540569366220145316793987708277993171270299728044275853424968423771046592439637642394113862404672892927844578566991795578173435243467228041681286648593353875855826491770110296310554394870219305667030000328352099448521423039757258684543091532521848150216456391918119360141273621994296816508098816774479259667847571597817650043166323082608733306300078574562421893263334299068848010533243707298787068375524656682081393855471599855142156859350376852951728962226072488315861623302169651806188975057850163585746472323741407192930533920041083045342218168125927911659795098075770369908375279862035175282959640534703929125925025102344677898279304215762124567384375414032906717455898186066883614798935159640231318792914210266332687071708856057813750454246182857900917187779387340315888209568707952792980786969752128732857499112828744247559930337698502397716002305838851026118889612809734086773112441290149975706291617943742972807889164460151024754215062635490774109599001704621742490386799295306178303393329667795431570403082315758636209502459797137318781535401049373543322451674697055099621697252680690259204713711137167864974948437992390338407981862465485007978450222946072979909441855277871344889322803312177465123166025483162222398912988662774619653441891275456809206519273392232150689246340690711190333809443781401051645869890253059218409640745369834752735608986716265745446707880491063301091988901563436092856373306934301381957378696062534797323954452573996467002343603732097938482864425678348499351233721327106473013052523835738513476340438765525274528345154850266604996495918978375554517424890008991714394884713102021147989768564518045154748258111965242380823423280144697860152934463450117008911111133903584792463572577249160489586421223334829451768139016967152304466209809659587603122555339900439917499443487753308855420244707248964812162017209207887089235807289560173416529033188511425836809210369890842154033801545146434669319706648375413495174139376687838676940488591752929376498648705114063346026693537150434752629548778298634018996875745421009415929750003216460432153701410736420200351803775613172138999482347970580488913413855736185663621844935258724472579022818462706806402506796226763924293636135570134619432855684800923779940107461050925599691862030918997739910791979134529913827064850759947999274795024136154682155037837386629399690785990631597379000644448837664816953755036710734097371730501331931876166440276553552850978053065564003327479691975578583600956524302752186845097160654030055775046748240217660690520239124745846749319234019533858202202237597888240937228328518656401376668017022445091610712848126738912445509593067294823584296540206843012567530928477450423304251621245001564126489107851824372291950500675982565728228932360854686756908176195588628570108183206641258108811120491176313404363734539449924461554206960735513067328262963480997020732223897795739770669327994731031493246590572632248012121496722045473982407950580095069366458974341762083837944651655493442884286655658408567361678141278639880077507758733965282158781089194514808951690997950071510300947729758447908527170838269834154132735203220431761162562788575308586877364602629834478762417344773456205097646577944689603983442133737516155979403809284914442979772423028415587896797912674150920055673262573537892652015655035371396325670160960822023771623723898706882276391816722199115063429961492143389708246628447970066859800039584083399511765320139890380381550529974615246626896154369220713906807039714361409179064879635473855305031292046803294830325104959759693304432998745282530530452298111280971415157461340486467709639594922973713768358742441512581217374858455449006129423249417367422977170441407425551678904932491266986989125537945842477955917434499103164895795405287637537453610495638768076562219168583392613109712289919622744208934319471421894062143109303558786556394357030427450352441532525780126250575785378036665136743167265312759931002878130469162051985370794359974863396935147736608495535140732212354309292021856119963431521895812439233286643795146414797559618068883143100913931617204696420665947036245105834044024243196342749414229168287517372980136917403597059060825106714843060299085233141076703277400764180842405430642995693971623559407614254241948417723187862586134553190240268552137475039976218997239385387720814419959029857019213683098492420813049940958529640022692964397886449420675732945845563877217636074366828498513984838261907894144327597986118880193079361074281923622707813100245024526742916642405530816201839679541777820741355449914499248546741593721690715470235691333331075469496483439586685303848836113591278808725837997438299829020411414047344186537792443525070713856651717868251302321114211962671008090642443412918010802753768592722260434864518143178613422723421385693050647690115736938361884781284181318866968543517791780698587766157207806925329324303161492280382680911159278537116617989688193932319873620697989824216125810798433411716197943923168220918859482484063162961374250627245647096354833806169179284643596837516870509671738629724324438117041041463981214008497841180092825115401682695412823154254916678296795653432998183862057176682059268583020151507150420531816444957510702544643645516172856385109768958053019689923385975508401253725360460944454483963312450946382338551116536008362488965333404647296205142581202445029262537835059087789384180244183732042956845085671265228498842006010484646316598520910972133089361903885578773740176847329713095697760566102186063010400847577817267589238632699504547313282483262084361928092501415383053403121402949001081909847383828793090454422007677643148622606855286345531705335382834564831591635478411548640215743841601120048138692356150965448034667262258815045822424820083319358038932486128285680936439574695698216260868166885399856371598554560615551978319281059001187187288204272026355817638638198320109875725624699270482921550779903054939691269584056418462325614930288204580278432087637357688217343406665789596944011854766754588824272711632797954482560074067727682938240752146313464560205460523283300659330369851504821103223923778020206463179473451457368854078439647530289419974607238228604563413638122923272194454991841495982878211112434528266118970708300374246813593999009802777209245205580884541330973869194735281010695628179304066732954170190006371057109849574459505556518844627002210033295281165586338859871569486336649390407604102033659289846907527684235280265925889880572746122313379753159336617326093521498656087609483601442579462129514722794181331539851644715030216248374057021121895315152126981183028378566188245977259700665675578937482066609790079829859788952218239996931167996706340963877910418479657478884810673256357099570511665945086204388271138885181972519644998681033746937734327128797650411719251138371268900717435206037882495199595927210620857765241537849819642623106334793438354071412563266467304679795982984033864014297922025428501096320205396146970969833846291832362587724807616032108468303687582635464918835078077331301411318600764054935775804405657679173763794033577804975850184657846944428880929443369461973052154689018531735708290002966668321376643251432740310914721295545420362080156501221451100026816832367646198019923599227776235506139063579954820741678915797161048796742161992286668244414931603035216142265902061396460938758594744613362412044771580294195686731241312127232770566086861619543781792170407261239229110162325431143153956116070456186446740363073984676313382508671810500057721806289546366955576186200643123164096267613474293473920528715663099663582195940527445260025593372011269571172808398876433380970674639158068226752743364879778063604990762343310724535200744109779996491203894915516088890662838791369485039573704121292211789651616275148280157898554570634212829832033472262034490364470706229418389320573022427002161934169053591392324586113173210789716769005574106180918998957149665217406172854768788458215717695404079960570100954779765530003937928743971015203970316311874457848757120161483139356546502985810256284380326000868941990896467863979358726863346203986125543436182853656869003141901472695819675428743289501343917130202038524475237689147613265889844309465524578759063309848550760017109468133972051633698028268816346895268130828495314019419851819007382186434726482628983767208443529933562955708129945583118673062120248688852033313090735800362393131313584340034484230168325815971382167690068514728963746415203250496345748942818894958671748341176830542007132685893918245732566664260195995178371707050763913723795929013232952765282725887843271705768165039184424381183564501475226352505123566932304296814432798388280679343759075591514968616345486132974642887691620468489095618980215160598194608996589481145877151162666350795083462699217291379076227914056793252594002468401257900034560928462914620989057815858758755470078757421510683656520642976919630559554250026555184180839397011128911230036144714385114414276419807919982264002136425945361496083908574109325439894386196145438911774136656281217086357827248829464115445041143007790574127468261667051073168820749204145085875498631299004980487477278476603296030185604847227729106657722202037256089501305490372658028701339519028944964390939909944026619560740284004678114874587701251911176244045560026339642263175317394802160169205724215202517040153363972166118105830301761902707203795844853976868424778556903003279716839183025228599622816992472630392661794837954583780179207497649312399735900540154540592820251160176521297571123119985446401750057114086179905699553039476281463498021116198895500680944157876936113903294856625001437595943611539811794063343148409269623688384318514539865583760131205699014187918709412755213625937503956758799221541328918967987614545601305924487974765726695809301288221124115910213363339155893497481911661846273746412493419117691892180833350145497748637913551440000091726072797780332418260725336079845556933600862137972933579886295535619532464104931195356892413751676856784517273893302278821733384258576417058430555202277833889780781099114671108660244548034351527934796985141165093434768718068161094530999690551525961510728682425791030818299038946547552184159983651350109914470379345792788345649868632235182722459857605488102141814244488953289740298284988154401537342813581042251489604722904431387819381136370205833470611847438318872987569385608994641991236596637208146930957319822245385094424876390490423167122280517213974437466496002346113123263571679857099196169337631389204101710193781561424829928916950196453825109270274030318857266788022340307069723014226500712732735698558243152636721004980232268847052140759247679197109521836742926073852728607157190929880449042531715692585214633643594018137693979493643155297283286243810154155762107367324802949460940290784489584446260854323375213897206171942813878683957267764213945892905237727090004579453524030390269212608193637902237593948086316383769915806656506352808334686916642691670629519138068650869399528816986781192478177266799101456430160148784337200862378036348957346599418992978210722097595970084906081457089951692360526811042340960032906899900242413683827485833593156177324321629785294190788461417736606940136781443973357997418097685901628751180216640506760585538849463418040094161544782501419112945646950403731779644093447806128607689077516425938993996926775328639144784222468602811096927267219399419323065090556104213991225075166698907876877888585077648326939921123171283191950613724011060935846530519996197917196529008371465317677073162241219292504471180932220110530909736135552783868259253479645197192354077183425261449317716972194348113199229286191084207079516362004548711866069829549123307071182078409800626368554756780102028247139289384994370710590652796429654563333120636995411380791529662926855013321735220362995845714300177047724259509345172919713749862619612227943533275463478112958239139434963973547665621764622708283851169774398462490226298249055408934650225978255375499510180593271964361177039162951805242359214846169918105895117285898764345749167768208022277146366234660338483675835942907320506384819943300254573943625697762797697292900398711020124948154149183060872791642711498579468935288404531181975055117203095789415492199044624949427288507737086545898131909531115922245605512171005143353870960860087672859352435116399820788728682501623376571429265264827239360235724939225677923423871412092918245559418888507046387172716146472333505223726046433721475126473652386404665315815614377195801634382315630688058755393527548563271376269898635365160125961230347710217716342643012407743502385291095830586992664336031234126127758752567798854154542078477874516358551303419518602064847861153483837584666579672548687551712316043716235976424343374735549450493044973909850161603751671741500352833914252410904308226627188657613791556911665458751394919583490040944825901990800359798311472227199540542277067993903547407817782750170250354752177533766194014779932339737021209067960091626346875712150957965204903547375086045203770187668955428327613593269831524137787342540794134399111254565626731346127633189050679921804774191625037850985034947101033715642091482069744577438937620179062592713081986834879738622420996358110614159955440676479721534279140276161358635695336324165557516907004091117265547734072757136062865144087480670679650276894980845781391565470487967531816937052975145304072056323615881447833120772358622157480670899000827578337031069889837569277207155206748723521973729278505707349334101630509914480259995286052070736095502895928764923698199168144746255900400273521905577181124325406970942030370590080116456353787207365581922421568223082419171541268609077174169823769720497515437279038815842141065840668130867044699580072720509632974653322364382843211258848672685237923096227819240898846595180832843026540603787442604673451916931123102257023163811178383566851651346151306661947603655407615812162207445689171002852918297848752426998247426936890327849566248460936395909319928552838905996446763666736356577785444635483735965255433720256993787885193737845385122316514249097479717921112442956521014429057941608361527173178134847863494779471982439358983209394019989326961076721268493536982611389544336892859277776068155082043045889523781404749012663314962333575171310368636765532263594886186992300049617327219166391110588371145357533201417440404063996520984290677353116120511047771189272452045397194148170319637874042781878616831577735741570162250798556086197540233537521335091195584552261391588440669282901364187679003278739163344895886535391379370536188230997320903793015448415812381409742594506355721436136249765418215344661823874548011182304090879919554439953011672467913939436080346094651546529295599088908074447742051679659716316255283142895800248338489414312026102389319561186934014373986614912732468429549060252592172985093361580470967326969078815136705785999634933693192181206106701061138043480090822603313158783019176710151572172804725908326580829335539089381371794184990421442828061534156577403065549450120221740501758151513659446132130240135788047777904861677474750773201253944197351581944610871577427892870340488118381828664057073234592896336738326680195358319533307440351403675251652935227283801654141581582947275587574602022254000508073308364111383018944999738054300899781802437670371129322477196268230589158621287498934938426403154738610523626952620040896992888395176158527890576240807054262244137098093820017152326699981934606707656030989164735087218017401549514178180439819247840545741031677905177227772243790999131643031129028710659405159586707717366025255174842472301273308046495103943863574852656772898097460883016576527910427443986808257309432019052964365069051664073108669266650559640017678780516179914200131782767712944979162854820189503620015625493926938463375835159441680902818862616656140254146398185217514091946262039601854627384930600470493564926831434015907950328613576398510865982836405266687969568062794404752746646530811809363080198032447474070022202993835221863954346211063106955742175260330591684616843544916106964186283161635901854656475543851370676280295048266905990691562085704834666870538447690943689828179071701077390690159866498066660818319935056196124514570638388002830806857651931282402509647544289639639169735440191991300142184256590065302520449381891412345337224808688204165992598367301866740230536536083913770202218746404365502343516954431079793277941241004290189971515257428161853577487863288628642879816342729815565678395005732434690802990107645432238730498090153916453020906851432291666730458674611631706278374515481495990559822896163709413088103012109566407673508884544579090605260961893169703442671870485822786766642202478921378911773230483271529651195920828295125768293117348592411275188093964266091142953276784552841538707247458535121053403746111055735995102063254608459919892037033134311835642302822184814638884225437617214128794457462863414057419751724176971708596740133881403923650622240630903238845002791319729870395395335908698250827023180677474674411527596328517644494610588525206459865186177521288717799886419049231974700522493414065125114017189618782327298732195232905789289771117734163444271781878399992514363420855553390150669417582078019172708182814825104577794344688931505144611998864044515767773521729682369802069796773510310307177584062021171702239247422426700926348335417825230537211335849084486602303205229715321048258875325493800556769717778572952410584711472630884490992487752270058443654379989845634965269926893330834949832345664491974349048105476418075838757775613386099694720286864858559030915791961765009114760922995650403649587934676246419804092026828669832724414528954455610550660241473452186724153630071598610735691181730278228067586486852024947170845980439743018052580923779109716509124432089009230404633773290316663974897154107265777730272104993489133404785454453184891218832037203383455604514863078915230610509100798808159945293569562032969368086160978693406654686560763333282445928302145450802457260454905375778801920783496916975683885424565142587039337366136112266453646417671034919832084401840317569219002931389530054663780059462226211431284812837473585422035663009398099091924213059042976865105408309488837863606610724721218977303701787107385331091672795983757330408941795672156533157253264176646587918819199467598178977239169731876068491924438254798099888918112274393885082005967926120464892162630502670263613986207984070103785995680826427786873862648673856444801782462658400619453447699743086453799567192041753393758964057035922965933843951051393355988774348135628592193016964471632934642679061964802642287433455137630022307164184028437555148883982666894288072648226788277267542884401742279410642477363063263655566293668438893578042352376848679521680971228824704807652198405094373991362058708343284406699431426306060930897208681289582870419072205703454228843583900274606864980357766269215411392681870491835147127088854095309638648722273009136608598335931998087712951014050451637706981583400657263990429438191590474692177392052727274930527632229441532878770156605906795904843748675986697781053465188989356371170247322557163982072800721121287639698995288607427074730549104244836894301110568818660764581520020826805632615294288519645204606526182485330960557735518258652454716686907126878974936553107879292743859799617638677270539047880715221098033334420214201189674541964149424304450865282170556976643298838225987029140045028175763736641272020833842586865637298546999739754160834564014208219434375410111788722483231882392949143663884159048274748541766850737129427323214029333082427911565037969683378984169523660688468322879459237203617760492683119572037690676520546529772839459103429581576349546569839170925250996439095729651009660325397149174445335322872410671445844022421494420641133619397134094411796774003501566128182891357516269544939046544474469426665031334038075992033981506338167765585244740457078905458366167939147133529131110612981833284948647391959583557390858921591752043723015591273009454240182265845413704921860927054645237512856067954838996532954769082942157756021787498227213253465624962245577115182127299782945319634990373346625265361397977665829938489808655938525550062285143584490808483307116181605107448225145462417778429523064383241331536100015894781668016563894948866023673261818596512582310174852942226653701968483978137411355176597570520995045262845213914999961308199944068911078418986148882895761804883290182998497119973656798737912268615942481073665751368032884064950127113733936713433381424432414806416889836457230563555336488243658668398071148153510377960232633472780358252939694043358979254074141801111756825161550212868812287126938813866598034655529691293437966167550582536795485575979078145839146194916327248629974517317192746289959371444920278923412450799221069988599352723902991428439545052491068621695030621761656046267880802511723232901481716343587768899524356500082290068451228280358890436130338900342635211734277869612085093063628527102249008884728565323044414609099690410256761508884769909938770072060245913055465316784490924644808223213185667654903372453433100004158858547071103425140033599705431118502977558404738214466204943056354816984991621419603036998115674133124859593888674093795218263575344809491798792574646161420989451181279458447900601369910139858408869871286908784755439252101559389874480849350740066499840042947679475952969113708497124013889409852825104084852593914183037541892332255491779339719308674390873072425137071871088682367958824394408927981815258716124718217755570551110758332706174557102377299320770124269787791296166784812442571088210770910122902901448926142198779586220985925765361467286200507339022325657152417490625737775156435085111285995652820077705260539649227920665627673060868130004813084471755637188438909649599065040983301692922904031326149361879914916650369801244776321457437715808721919532085656646846362590946654387841862841884533144663005642654048863142310003402922538137555927330760777695190291953248372592922292786474713250342653128082927526748525523141398572899027145124665462972643864444471258808910735480306706540907414898817714772338819022324305931399960582568938128482936398008835771227358896893125864441514430087739967153708548516574606692255259627048157270251441516843937952673049744384131965479456034097365099161222482567296519866848625129837599874307431609051267359929117777977255231862068275750926417594215042181663233628573800144294574260077353262223670654869968031739647645395403451764274664310113433134989808474174304928382695411228150633386979829612593851220087737782356254107737917137137098612325873356777200767225176267999948098093853717846573715080456963082030079521940092827477280454396707395413698109930584958766878058744296105064911484599281726901311396449573350288102970478284425817012180674517515673718372060830542972332361656745150453407811895230143247527194237541827496491231865645342208287896812671957872533908372177901245561633234000283258923515775219221313269428877063179724409251831237682861886603806766276964239318411879337770392904013575336786085364097201293299086472654936250631062961305153701571005343935296391012742928585678085293506960572214317395681639503593870730594716551313067059510921819799492208549643273651515489468228396127565488450569645905409537042513616628955252380794792653935871234613423571467166106855141611574464139403169329186812973151434209040610425663806907992890214288996696421568420388277502994565681985824141980597887844788694665338984029854604303161825137276896875844392002868186619189955634389110383508463751048401948403198002725598579495371387848050025312693787783093165805051973230459096759880746706680271465173593802780667969155928949188504828975142183086704049797364264113531626030505439857782920064311280889236496546443621763551326377185469660298113798225505566434035061753703655445213587887378621770363443620038776214833786411858826989356241557778112779597368886852001660398652881742474962639018538249413633858950594351170474127940545721115180591533680913710447976515965426783406354477103537036592489744686976679740754762554495585762164363052739288064874761477317813230129782049815209732131117165309339478424242346204534650331121689728776626988020336901533465853489805810553302614203857217529707329308187424236152039875154197835836268742004469857349564839131282988274115737417290624113225073333019131481833914094899563355437824488485863659618536881851919702541785040985097479987632507198470466885308825986299709848319727166644225435519891147967492118213038243074982560101105279895706782665063510048996679672114157170241654864042238080088897054880799926095767837649739945327249738420405713487455565171115006587318580357988708157506698689479733872774005907811348862138956941516014783263940038661016616870953287593277387648366089617951798358001470177049450105246418927390673555573187034819062876119515321252503338708813977782242701194773581771787263742713312246580459406764372512962781022424198873065521799891044743141549082227401703655181060148517515515847492267408390056188839316364205731434066984249791946470630363890367945352717285991700441237757972606588361780903996018243626418340547885028335373160008927893581646480469068492554321920864006056432200498175510009387243148047589404691364271417774481165808146350892811729716870158441511644600445048840884728115767218504859649856088606979375948672812543813752118863658945339734425631465711644427820698337058041418404164075564594471049508114245506860192030610058688738270163014187626062458266636181923473853710837814679970174676598060127275410149526174123408068945121624978683521920647899116778723833724114405543086851434275875140078166938887707828415657739466325567257947189483501506418185614918323435477093198750673138608248406552975158430178705502911578306728120989641159697389125607915266507221058729947853184006575622285036621884769034420817865071002109582298612443585417829941652145640819448955147338138159935070613344745998629614233986278914338497669311306415129817757291801779185473528084579516378304769901221680261343463994791149779875911208043356837112677114987334868878610861294998462731187280403141715813003869438063033080831413356369969094597509898066307235827863969251865708040634572283758892846179193745867583390251692604068495053716363961962982031174934533876540008104606996628315111110347206729981344979309812013432224288317433103937476433013222808699100152010335021395229989431469648171253087976678949004165276682126968516591596413638816064850814372099241996692288806584129115307995586130316092428886362228779787975912917066084126367487249672946988455619990939775394192732702804011303290996521685410065742829992160980004667952392016221282080588425095806520409812181593714178969519977684052983641947373711230379222016221801522883859070373839506928107420626324620742770620000715781898306764270233182948831366838893725202821241753060084764949146327477187044689976312416737589276832968801371804556081857610164118310343799658974554714675058051933146405543195305403595966420286268727784944695683849213355103644432544944812451938925891779900709328597044914799007001441352362354583421555178129604788752902756702676003328606756099152175540412810418615449612907437231152898880962875270915594222865901640011400162196844710884476600437190502587000869027525445564396181025525772002790217361233252230448165841763198645344515093791540566280636695170447441045512211045730480494463229798981595463053702028271650921355419875772151189712810711137068347074692472555454063645676509864291997079283856842989823098625165009289883902361248886055465436157441505763536822693007407819957059828273401502057241884645275495956174208178015569227395782892211679317392929131547036747583121879253132974663802698751558672290376085394293275990740957449072024092525873496304312512161372645093286009123090022806582793338282566760853858590555248776790996691002044344778327140328781902820031744067510849666156584907516480210395849443033699618995673325385179881405296466578313175487985962918665484708502154554349412964421906646419724115789084605373281229518272217278336758107224022205944985619042713748443411872602069653573319318109014914445961137656418902102168740739699366881761543104981173924456763188960397590905425291041614744845906762519295986758210051345372790929345887429053566567955559331764685706701960738395551917396869990225453718452396927672407368520084682627039337438522453963845891556390848188355208806242026575355269241161411203911204496372379211753221590096900745510969226522488595872507393071349891390442788636327680577308091814894943147979046684793404217663199127338471748178630117014263711136425302378810609665206631244919148136970314396509081236733428757480234441540143157944068554732398497249951672740335909204309020966772801661088009411544709769684287400198455225669857857417633501088233310969126514162327206001436405876896330003892548217818164544651477869246707949196919636712651349238263871808677261593831135923154530008231817512418231130454473516352953080909409502068921871310815750481377923855182593338924955018450897115817947985339119579548078372042100670284279462703978476419999827607873509859590305837383299721654824309207595358435503599728078274595589630435337739879864588879507657671218539920169782117255196351915570112453060477086850018654679976640560503708689828425870519998356888505008482067360869736102007329581206013131399922753437128073577280896263547611253921938914896587449849397923844200530613556756631549037919270411412062971591666787911344386696057617558470040906718117066476950206552549460391375609940723855193786456088232120221484349221690780868908258044417796702100397026947514658403030860067372847010291374970026573877963078426910835134639411534876134572190651911384910831836887867365185955997420215431742764530738932739472533609616252726001364294399715626934862979657433402165751645980135829034865367973400460610838874421988808064216203041006964948275261260568471776932364910166150174025603504924217473924544850348810517912838709640404984807008166936151210254723620256740204451134782197208706470009284029347018344365994712762544722017751257832438081776637953451489349521533232212649692083639625382795252950139811124565380000281879184176406449736109588050477520927416216577291903615341145822134760782704011644089563704327083659874082313452815563478761349238964654758068281539596058609304536043822380541227497072593774010329503010154204306796729222767031318914349669958018471309500863092114334779928047641933138635559579760732222105138087026633618933319068875208220931995923129435128809654869338892813106870662968849596554227672821047234665319845127021239697075342715569414103983325290498792826887926063521796293397562250791865008457534579215300160246965081539243118846197914637801846498263081125944729680083191822991550214745731167178689646865937938960299600887806885446564188939847083657667509271524541788349818220850686782384064200167549700762547306838865391369649269855887590514332875402434158203036250307782703971614462663184532274798747481252674263814045922533769457743675480411642499808939894972526153740519361165104721496773637237556848209418734586713683509476956112237152929801754615598225767503821982920062467781192610554196242647696056911802820709014181116785589123980497192958717378922138728294239396981294248789979686947056214545455924529202586855179278064749472400475067209036854759945311374700050879286270892348083501399444034260077931649408056368707974238655893835140804357403532320245567041221538213521566977201377802859632395028440495707088953529724927348723273729929662643963501707768185212755850845165532633781192431844679870072440005655110331681336270915318523549627284678868115094517916353815542148808129199379528177593790541453952439827607923306620220291543498694607260338521133910460078146281070201064408457337720252185192838721306820391054651367513971511369483597938832543540951179379908009654866654202050372167344021528710767415630283199999500705376677819570992916816091590156209135420278383870896739480728120842390686393407161825538695043357240537495631379292358232920779869997767974000255611787849586955338690586799250546559694856574405665930243014469822467496979600545411004240944724421619211303179163314389577517288108369555197357775872128028280211547716036165376642897960830024676051449024333807148713310068490582860966183346706207276408292730925473281728975599618420702649534335441222248678152370160250999061457415217167033659518276862814472453512382964531982637708787496954125140553514007519548496083103971951895278435435300086705904403510162393128395365168177467065779646382575050635526440246270333625839671772931872973721208258708636623550894385345651648774425832793723530782726286102612763272116736623100911249656322998830129367612302624857603498409389634834593796932901218749459940240157573880148631322894447185505110860116406431072960011637805646163384296741995633663647258271183682520571529510465841376462192603958288904349243749302618815199423461531596012582946537246269627872786528753746353646234595932758639359095839916698887573158713235173573247489246720575948130024628708615703617714569693354647863645421495678237879761508987989249640768214573079614104092247672817973119531405055566273378126509084099544500847131886873564450516883890278133614211521436072323566834353923767180999268567873224255566056991087200762034632084623085621077938140089429274397303913696089841515165627570757297442933215172014001819442469844104798020350213070061346816076810898170739010903270991621810253834843015868850274977418156391469871204180956210474762068050771504167549352712657814471884721044502947719038948570337593389597941655710786103418639281772817966785182459954504459215641995542697260791046126272442548341913936249798840735306215583676573311674122771388137556731365539431513633443431811674212038756704620908522701276691062879394672320734982984111605563472692214941808702685212971984391697202485674971377627726121334971971990025093129083849780065050898518730791724190150407847661838129489441096440951550904068988609930257696737630092296752020221436791821225097224083050729946650873419879230212976481182771069570071171594644541620690051117926555381021638172443604198641744039630842752909631173536589155049308120199368524841304562094618314664568949693116239039958422032416988469420887174129337859760428632643647915937853984080527417009146393122581058972578414744576946422702723953402472794079114435685203963107245759491985456541771582014577717918344130591680433627594713530401817117339978665131521856590208066652007157158954598434053405464131208797262336439136748141290560952849068760102123921189500670301476324332971653153290066094408102896965205686365490017047751239149751842816027089889984612642870726817568727611010469801247516113460099675119600161929281414335500208168622474941256672299264902310478864652876906774875258868829111212834910123175902823565793347126273251977186111411306797276435929231643397236503927949291565116174838474799525973973462212396696270813397125003441583042562541205741333705452705553727378201919486025261108668626554133423497639323137095601658919482258194935133194520964396506220123240593376374248810370286289129310854147819558795484841688598779495797427356961475204793534282958801927495329292949909851699841984639959989770435719864032617627065788205202966279104630162035973781148913104039440635962786274976981751072240142273656308147728535250825160159986264090207479914432239390350798753323638550308880932182503969395755801590021930984365947935470063097611650508038632528492608374432755590207080777226890241055203023475543847492624604054464158175954959803854633494818960172728538056632981911163896886976975829552480407129530570024035686251869644326899685143946400379036926846450671275216065608921699491497414889755728734576484115391762011999181966408606411093510072521434730775817572328487667030628835173314747055474286977842349823225036385341260449861779807683984480419324883691662780438288034744469712456692776196757371968812305270255402110730334662632091429410725190727480135551551420886206870923053926741551689897821079870529221818449702722848986516640032884120000843096128897812018362976799273519492803425056435067746137779243935203687308628491538743649121849189005798461318140889692271642770704066747233364129204197058979548876464486247115466449491370660494706809006258120619250062207346479953629171072938327109854967205256768115822179499736666949356431195742309749932806720384102247799858838913752563305238216949073970477518433634149867753673668329420398350878244510118319696250472196037984882460578996467767871638012630463764820807497989565853749903928002576654734437854079599785998783591400198502695354755731448757157656516152452829695362042976192846989547288331319657492322365155154488822523140857903839810877848894271785857449771596919292566537122624376998465797844637976898028836338536491622595936064034917634768828380668979545172561181276870808803040632845239657911054192274227628670562439121089418819507966347052665936518021148060580637003975253019668228237785167590140240266817190450343215401263639119057315108705362194885664892605012606855178549295719891335608702067129952601971554614870759865694419534275311638269176894437853459915823461276076528913353337938581311255212165252486385133230679091403325579117011235966600411991973885477239091269875370258940536553853042243230826723512546371766368972518106233202880145346770392369258105440159270536588871728487166637354497627998832589339542483779289917044273761663261631594178666046404828484601126075574181905700996595830839447750290748297061011332325035486129808177500839931782706140715245206131481724075665835275348445431436382548577319093664891657178740485489070424148058110699483081733546560412922006680212821966607640500707075057703392611831980092418225466895183737350202162580695657855093383628999981513326194788332868045448774304302968191840516945605868886377153365194956095000828783916807995698625138589768713810262496672207203996203581356446460468723042622555397226448862736839340725757210433030824397420981278129663497934162335534310485329211947801662275060299541507826824215082464260835622578243234766738141008195103294230026051943823966544628860718458415753117979319945847552137130040347177314493371482813332428022769381136521468873520950394178764048840834806122918805666388436380821900933917346145074060755448331536237892159820187716522749485231755181429619934313358169033796768910825604491287475673813381862478336789531579557343179723917016704287612139475097282128010044015499671067034316041789825076655707771307451883937494655183438165834535950281552138269777235400037882595233477877401790250553552071227178147824107043129172068755773752638293594732241266035672916213167010527575937216566919206221828071450036763720354070829493998178312593069370839374881655801243093350010829794923885644136010947352411412821022157730858065426393413044401460733297946180306161036028847566499740601104946320741592366141770692461290917023129065274097811930829904700200657465856109047481580937679076426858633950181767534674099512933972824990026891773454097902788049634174469649066622729388696635519297109856879125873559147357586770461890521798958641873752961924396868745565425998663006071755354467318364750227024119399983876695700214910493864513398115863919561459844236652961899029417978366633241973465386130531038553950846006438278923988797906436708768929520711849688290750486920228876291332903211615045121047212379893963611944406944079195678607705130199045269172079117767367433017986209042529712871717939032754143861755103804104541491958407373951826081841559016632315209861045207690939476761612400893781402148689299543398001065128138662697659092872899668637071697270765350790999989289332305338733089495419073256464113182386532167255062676117600283730869104210102526843933272233047246667536739464588382941518166030267548379271377767174629364295303834769606793017314321770790942044980731742008787748985719025495930657364174061326550755927670511545145701129281919452434364582755802723874367362087998340005356846206297184252530942654980281691632416356917792350103971251770440072876368171501332164502647060324859358753310644949053571345139867683573904401726859752801742368222712232024146440358941916362423533885592090088684811050918310939290978857013255327709153286820685384214155693980638615093587783132752862072209223105225500889940145022438915791126491991141704013706085561745459361419960970069832292235522845114119665212810642495133163737109440511661912814494532543733877885634669234325243773723826873536008798753582596570208966342629039782010171513326720808076517897275832817232927423651054774310864553220881242086382988285719757398167426300162399820697168733117944269311914825142026341859074448645334874624127776993064053803091011268478083843173866654278385177692257731870456597057333720223667182024039283502423763368484763369052317051074666577816651503200592139089797673140740591400564959515474823514503299504240882735993286035325372135465087684520518131447599603258215904756084318332097853174157000151231999602124076567870483162401082445441862991896322562362893209760561863090407594296940618993563545688923010495102799332809140221737871601673345252130275813793606834816882850835372832375822562548194735183299938913352859145296319650407275817301360455947802539391564504363312419601071827276074025293019716763868858631800839418641057071135719999942718907370214916237874535621434748108076261193009704653332485847007856175190923386233691864010092117358988802682238110656849678239283502343261113474301546142923963860547830500040262205693626398809917841352221572860193641183356717229503376294852596812515476173011345871178658472433677820785031567714291358696041125670844646062613964192079877154157628276685062832397511488118266792088973725897762494942696408699643825251634188259572042763746335135245092765124626489048799018306516930238979418273539401660518184734965664339834590203491917738434064425726316324486783890461994668852016057084215364679899861760334720702132706803921656671440810083008702175024726932741185205075625748529229353542079327919013304051025129470506305598584864014909908451476774544596991760437394758134124699936510904393692123428929613481844749574519443875558628974723972117029652940510929115172160245676749246789554229026745225984686857626327891217114425911497498962669613282149276705809995987931669584643756850166366449431709034712372503880970494558055149252055858760866900243259270997361110207097416857793700402087688007926988430002745544026508017414592295441185934493052169006239474001221276028715325694105934005510584767872691157982782657497857581078762502703562729084007963430474876765677470457299526327828378352909940538759763967159307746968047605952082915173513427574470495934363591017886622140754009444007692304801254156575099357978996890613095253535347652790389651389583607366429025425652332830626442470516939594065636487394918665677405431941250894629885304034109785222773699186963890542132084234207941880005462381886575152649253555937321048846557505163879060437085903090010901394623078508862378200170887429030723343238774537331568887530569761983842664892052223022311463540919696026540853808782269742511076581819703913068278811084409154342033975326067666970313290967646851371922678343005109753389348602088424990807435081692594339322076541214439789807283733447866427750574857746284645277499641645023291044918407255559683288684814248546648798776017300914137331732285877434327609853755474075076671104133335409136789189441416222003333052237281466665901792960805916413264444862527414853120776289498834197976017357834127237843551363746168046126655122472530672947300291338666320429290861777635235797035299121568304448966394118740836107341048719253519275167224054750016039859964318691587733580201234511192286475002680727149984124277328464900370878698333357305344640698812984872747185719466107240563979829012529775022866785372150225562349765798078249397309095216832699780032492585925990919983958624728017712899636437945255127082810111513586559693763187685511338246954484890655524309086075329997187451025626166164419253353285040999336155953012551215310910786683905875555848996660167806033246711279652820304135656277337822102601547910315454618469565439347589801232526987166172649373835662974379527030907962004163830050157334745817457505397962496325690461153148749069217124685096110277725463500195668968695059826460799845200519229694366978455060383678514030070769455755805273440789940840119558936006203099518408997301854490953396851722383001139960570696157662793709127623832131673394011529770515795947882589632602501650214311807103717011380398836709874812019514162342648676638750457027104439965260531960625731537854048757555360299296758674960274333577410872953238208939080573542205543256949888885916035193123599918856620105803534464301554459308734709902477383899511225068109061419504230904001524295203711810621535656515322355702779388962362025594812276670091325820667526110086519950133507083227979973355904988286420871316832727452433387905934942061462133428778398621414682377328492211394888006939246576864517723777323528349455352303362759789547280422276239306701352383021126392182144876267247681545551177422030688911896184066183322613422584277697705434552363973789860215222414174653918441336675110235559853802865061086929057340847856450261687563844759476469602364360879983149587677748885630048161728080602674130779558283539261997407305811712620431088955842096207972898682909949071164138183977934515724284096379925005558912862389629676081729346871488053096284465046579160505452398235219944202060284195452159496347689039627574208478345230208076715509777767953051178861241021364196308720917968142546577622732906496506024614650078834168159992842198987950533833572288542946485804657300400399312182488412863476032766160310361273432712907083849183034098632736718753270823979646836097172911384986778375576742127254314453844219368672533562787657620779026601896245560200036508517114753567336243800900164547171620366122324593068875817888839487133833116370997230049735434572763630164561970760876264311035888246069673253560421217904170189228573044239506777804604874738047765407156053767803792695702906728816457694267273841396162673312583133056857711268929189964951922149309731536878921064896145597372037253585798554532082181895844781264561267182462403038824379904950494105480113817614951059437945850984537886736203980675926070278903187759131654985002881290959879877444623212592991437228948875215666985185222463122353929568451115603087835819457897415245717681313136636728151504017046886127440508104313202444172745673115336340783511939317528431495630159149281062134337130951713240612353538319334529334031244654260514507466636279628321063010984657845412105536050474139714467042799099101939459895362527688736498329164080608614074243961236044228512352315163948087676780248193289437643688990719872669859257210252320048642548385287180280150922553756528554026055567486308984216103524602358350490192149324008577619569840300405110725636147557623483843591250727541872629345202237640946521944126941027943070689645746248247717671782804408070681000113695268740134209673424944238467359367245534516771626481706128477974594584578849774177224976121801976055432457315731108156952600581157986778340227469092516201332874369682833996972171225977148761014537246081092482914812172956898944290869195912451091357689699531964685640249890860853103739601250126492794387102481662840337631415609885057541396621470358898767355344113045096236103748649963428064064695280431664597027652663412330737797653674251866590028335959095330530498024984037325027586797177533357774262073543420073104663500197427388722817252997627201975069096962578992978367343346686990334424296729630308020713091854242986184444236432189922415619989186284485705210972889066247868227768389054328461235213143075695787971771201534289003008193252042736092620190903850685152510807195003304898574291984159914515225674321780259956447992953651789546828677146102024020113600007121679251204321177484648639059120956992369736531277636512570539288407098058577909047748683999471790952195563137234062427740344832422292483732532515666168303130908115174266918215369315428550614079204091142051343387534804043680990212578459348429534316501179889085790531124922063886463253014097634654703920868312577539524982609639272683657492389239167625745903317868741455244432686951562870695332489178142827130342178508043785714566868753276630218082808953872138241330223094753404024855309611639408063197018614000753656898997119747416652708986326122915920670121569725901038680829445914412675035667975761090688729074204576593243749454451209048167288684077643607758770116462328262042812731320269859985415071598790538880452691858714407230990431891150009267546216892839322812733588987077999697869649727474437666951071905845578203908482993196371043568962399333086253847809201816651699473965049247663157045892514458246856959875329205031603154239999820051937128430084945781981868231658943882559974395977858550227971042245062535589047999911129018844620557100707972337495832838883853638835579075199827991977702153310247580029759732902735368098413112919720170186777300829951801025628794221902443578845695694882877288264667110276792044079340908654432887741593259688338681207513283171775493098079496054832839713908183346452543742694707814882915026399693072592852658886032891856933229872248895358260662116594961768398492217812004151452851868345039303510893096285416938953919889777552253175897045401368614863197245688740095307911980719571097010714527413823309329618091027985565339307853808977551479688621816899599571955056963883480157716396170061992436331227109971971423435315389877055873712888736109488033146993222007523484247137950880878535215045870896257245350362029435132054241660530021084495584359928184808140633122829290431056592483205257647749931368674664487027090713536740497639558147088635638523224893347422210720024397299184420687336952292312303803811047556091891679336392808641272124188629675144052562939373371051743923837158417521197489330410005433149701404497576126742300513692791927070533095747329484221728139199676974785703780610429633332763055423624843698914272443474076858468644910680574602769834940357222467207899558711154549096580829368645489412857155439084266315152528073796457712040191881495532233922268621512709121848897750202943961114940984735993118927068525824818430888233590358403264005363735555504328382091071455520467358266975864577564431048956531748200932059092889693298314540004414175588455069958424073321029006150222870538612913950130285867539525092877102294338938848352255639327402639302356090121119538816702819699717667247749755387923859588828778699639595220433924325794987223393631565439043072420582218311593317163438141196666392850322287636714384382169606190765430321160280166615578763855579170805412446289592924391730354970647489228315189250539775940235034119347935277376162262640752602360162567935085255592753072461773072078394766337943420530091373753744512253115444933995489432633740046181228509258882854895395387862762161091077041115631644504646906470529785900953530647393758238864875974489629551337903805162370315813678089695277956228465826136773047469282365585388139550861119571549908254420539073106074297276696138432864029810486956799674272917566499876157359771972697798641686529700643327302195496086305520175679082495630272845940200884053581568735420569599133125278012349162492890317331071922907606089444146337640871057326570795518211663728277901373621518750784049012763198569737399823683381257726233254236235428806596198813086027093653584302260799043323417776751968822714425516863385841761480538605292055172848825352375651747320600735159859736041533445518299485037927645553723569661329102415634008528755036661119910563123728133665227901256535436444287503275240803093746764396085283158971526793023492724652734746996915877818195063315119252712669305919473293722824689225950419700450572007867910251085680673358112446029359631269122601801600497793986337096937315470126042773019626140952726684209978279353960128717616197591670511824037813494845451514828414142813513067334625955003809489647075712528288502438659518897867122428112218878458827379992657183592868192525265888254480396483652493998917788943737085035190807015217358501664126733808280242258668513690776639910901887972395758868378243950346722802785952039885991830429994747084425029280445933224010596787161918666668618562776924129314061313717754917349281864053493574339727028207473074929732638001665190470752736098833720929350115145482668230587176289597387700365894772233459672643441628114501360176470286127890146866347684536533771842321968675407845367421925848993494718730897276138610530963849992753081850229651458525035559238464485390134109124075667847564240787240070187349518465648263064740887356124561586598341056396956188780654088648805082257906962203839294415452487133710113486679464614356364631520931849612086833270189414045249036734379789124319499716619282774929598967508135501829743825232276112461607535576054990581285180757914211079735370878392756733127765852909627075873552492681768666351941040105481599692217046975688911917045072664143742964441775862452504707192601811897436316017421424605110760389774254227266195079817905602841430988932525595033712356860626033877096609725893793481814308095571346365087881646739930387104242222422879270800548061239217312334579673124726173587996887578455409763729016696077885180431094703484497088987240496843402017994832314669864704840850082058954429009080101797045176982413590453401736071795088416972056985404180536249465508458270305087440868246916437546689186608372229103941961079866172193182949766255072322210570060963998798567609361025763293654568609684234675978623680769429928544987129288488655171000587203048325070279605631995194048256329018470678963621577736029804096064535505040271785516009345942201667483493522996502055519441416494136375818360982775276201159056319216385122788878275597665354343505766654070697532913666653367060860073992100240596108932859909489941025942914942634897062975392418190611782769632882484244224611508732190830061092344608567138119716221760634381881940341818710405295065315296854380578734327429889623930135503354808772706672580878939105092691767224085394968844180271158564169409634365953202041400691755386758080310840165665097388506125020637189258684555469320903502367757454073964661099066510047414540654748868894101581701024632671524417445903604947226550834288960618780810653603465533414416008656955708315864637145145073865921584581831755049163762112714314130542219318149795001204775143609039653793839305034638453105217232144862733090663278010060644131555824613458707122110249323860423772341413023706475259525951152138734797780812569930606041384448987457397851748940759750466877892439247465460512176901574701862930144394403566151692697278166384597201886121443593076141377448448829052798495437394721018778560723393743768229775749454119553311715745876613978141174599100836240833325937959944197986955907038714274733346603903810466012319875840776151218588721719317073035198680809873056514197964157673607534281241944146711003698957335503000810503609800610436194416620162674511896484062389460085825648294329330812994190443905659910201302126039550281481436232121599532195133910951749460130319106182147821291432818067425064216278083115218325228080114603114578729132947134555666575046919044712405821194906253261793997050814024588390589494624048955437433221222489826950995891522514641884744903058051149371250106046673945612703238834147103633287856890115058393013837162685183100152808856403299170721783430658456749845344304109488061175787878872711178035422964820856809102953886104862303809257845530074582275744454341896745159214705621063266293041890337529003708118383084146436406311501581733016498605169734758803363509657532250605577790809283897325531400127696508473421916711086787906967351991084732004616878037145045623651508478556834375433940898240748112029104795213985977279672037242887957667016134956187271705630328149986345406871889311110641273126505700717241425064460391165655672724108427425185098849477309807961966025051072090086708882822900046345134421215055216336776094395514782507521906183054562848561845728491679395478015238422932879620013999786387773586792593707451680051619719496315538205739589951460720932418107031302345585562468400409570335699604516127793125826975515258406286158393254474083815811160444191050495902220770645676219932692627453112979295395296176107008461606222967373410810306777881433206083803553720018471608869375692210233185283026460158650753752198066104803958385221745366737654824321508586260454937048116585892847829452414560882478289958632185263990774128877943826997832016023073871588077869084447873202591387134983451917019016143391345938701655658924917241368403851267139187007585942156645038660116429183931247369403732074218704700740364619227037178573057218544753329452131564839907798075257197545789895961119297717686519341185906205705913925311558362473648506592320504619682085830272431604748441168262151185567902445864241147268465833795211740068052455065156254474053056256008898256746679429110059561796390029371905715152952093994329496597233839484001704321545031005533936410792523993422776063135106608790756736616618178922119062106048784823312945618690501980287326727051462312075692019628378978714072811293834445246683341878529945827917792054824406740192087233162019069912793037128868229018433180615002633007870999079872632624215820942610693009785882194134472152995974514511316394263669010475995832489540757185267632552524921752761360932669176317766409322930770953905954383493273002757249855672600158900254447358156027053248570506753704615111514469118595994419109726492231014362220875490322316759183906305861661521671292346855993400236974603434239292658159440787359432212838991770883451838475300529831702790241089371774822536659380528910584043218380722086477301525434957775974396150287847398936494265596055817914609857894683047451463129562870544611734816375618225777404110730766545240695526577458711614714580845290039142257898387032650100455773305622143458062449744211751119769355265375634014366856667986916265219748163566824678820902765177673069015607605042957133343516920598379641897458405226947570478816363633784297085398793138947048618684903319785794508176651942096812876291618395981456596353276130771304139761803099863215956425491860602462969588442998895533665843462256062819704885165985078609281472438188141268358945444119598262650638485315442091453637363106035653441682398583649954496067665153277491849627762930107339893918666404808036001460710491786773600122892141123070700091158951386024203091060162986485831842064402674428853821743586165579903946381996712003725398248508061918614890907767196663710715464040953794361857023866260761253887619362481390669083151846070542901941945223556893121992382776819818220596430664709308448345817955473886561142897956143550418805449731444273270937974740540962199973114641956439320523007042118681584719751469341870130862010873872873951243265895202585066124028256825831160667048853282207585939990840380081364714803219255343402806334093960213713329711290288717782100349209952008569753090600417917475683624334446425145498310486381651176056954889516926394720770049367646539970992322851511217389061493930338064076480863179578413585528341757866969477646015904339472720433883358862110329090267029666034170169382979945996514367274095372484996897879262226920503937707586567110151750531846252249057896254514264542285378777894118199243553265714516915169008355620486103330535594110741212216354140604137246970545806833538447225712255907869241207660523639993897886245969077629656802754562171853430063951419374999126846609364408359074880541416011881091817303129745688119185447526019012351876136427158294325642529134985006683233056586503143435159287926947319727326298219240236958966153038357628234867643084228895670757082762956827156230924367798515024736062906606522998634913354622080022457641781088194577614540963438402820746044114086479180622838863305396531835984941728848800363154577452921349476112361352306700935506941200471354109873456943797222807620109582865155876307019173190543589607974145291314617038922292986146804923430358836666582494695514698551081181317052737067415991463387442998926209757599614417284515950964944321794564364148070001726392857319340627514164512341121679548649934514243829657155487200212035674131975077682896192411613861058745314078951872706091494602239564043116104952397114817842977476250874971320931983042183778953129524032493495437829811896362703460191569853272807390366305286498603171286099277716611271177827518136194611864482456055930895332903151565752611003870847560489763095717388691182663295875586500156667688652742777018497361912010698875465590704490265654533235383252376299814090243333241616070962099261712380009848398416093199367674522762952201831898154523582612918604591920206791237933373660459669124887259099578655783228169159820799737168713583672029200269983041759981215060760144836438550606243923352170917391311822495558748713434964829091432251606928198379306002117433681164184452492850740791258129948050163889042408505395338026176261421997932831034605121679009410317748648613918693783386280697566488780754636243146922664206589802820802900033713173459293503908155841116313941832932686779706518591611023973953129304102645849507479418055081824268900177831307593430340369965402936138801266844327732339411720318837977749312733317794590018319132039585814105100219207877590770449909086638509533340477213596954474099814511245226898029286957397529765530452117055324022414031945083809613392978843476404699842038520525437978542218366303090019668062385026353285784334374212130831651813674751718253138370892373430035414616098597318716260271429291904706921953323163264695239393961284125420099333886207035578237158172300778682836399553772196935731608589064341304762225416591330739639846794170634141961973580040316708327058385647519648861113543754912646928365520787276654216644106377083402589660137560177046705417043260937907050373222839363960068075461003596874694856530387119722818013734029026103562952287280547122382934310207962757454098247099072245997720484691207371640645098288036040945866110879793832752915345457219041237162116470553729893239387079947898355044330513359503375537929113018950368883055779274581514752094547798689546431928392604206029914677748230447119465509544346114696531843840528775717719223261680513057362046320388692375569593901472406450544311824776625498076317935898689879541399631406899233375942938660639092458288114142390851812322240617260990039981728683409266657828851298420874283598543884957751771439301244813316827458604900110240816123631008767447031476330344580696660539617094433957431254627251241364973114751237503365247811390939164255099358203881520227232034684205072822784798214816570733246535281501522815172648193281274198670393924758850085309931319540435494175531090225568446236887236850475521518312633816433817916102350121406443333926640977782847232386033183548876480156189645582521265162673893512274596836044960141921573673152728492410823826411517357470416275416495043582688033915757910495674087064825191813126339648874982077813697620331577052481756388071453549573114523477810702310811464041641612656863392926961820739424538872494521910536432690007261680799076317336335118757102739316732425976646814622539794219677401581972577742016505744341649178660941266821490933840482141588513059833001784750755463174414263528609413201722554658070309570001909624006091949415831766337518508743840326573387197846452069482308477631812126935246598642802000067986231670526830435500479818256618521290947443116563208348298042555058306459871665392246834026541018959546368847899952354221837436003081152289451085851516767957792957330195796713358141322403785597230666505918052972316570741791646503077817477958843410961991253030503323163962531385021891816646933445996405977426611439551869038394708807768706957382964588330758742417462205065007620454848289646777555713433729627691016934588310440753070252191419262563412875124387954392242087022981019121538953586163178193737008114393140399501128998253471922294309909478639563887788197560379351591931812528561156433258885213599982732202472930552775512032577107879946136891252425066125336375594331479765202125192615104982616436007185551973894782230960288311622004578641892104591236409024825140556849368864654489720259322169236766214753710827111121370687932053773877417334593932478259597205212500952473748022130314240784836314781913117151614275237507853903665838645189969204878546860103343020938766978218218582479832670362194010965893109790290142218844935282272876484146552837798463290003734877135588793610699783870079401834710500903777488229613729792385403557212264652177316301412645487713063311321454098231337635910262874404561233041703159425619574584868807746474485208009013108445746531646152086542654623274089543616980050438852507052587182992163342504770460307953205018131260176630945888128764891063528646614990911622479369998899896379758761796041355834520618825257290656661938626855577817452135632530062251348460907273755966964931978199303051016306409283247913343961042209223034345637481543061460744204634671429519040683975819875331659765326270150046697140971769377009675477516247836615135224675759667089722812220095760565879048748993170212011754548015672848439013383745177002045542841992038860560054590776249257085968051681593437020708865155957596557882018479380151320422314508377598046074256461866355212317918975237638899726588050285334336579508311389460224988353359934672540087138361310527889376163517247437760300501312288811983876965967056819128659226217601943285601858807392580806375887893500321358527306226531750938466269553996878227024400022585410189151657567851464967943110691450131421586580017020439351619759364827972208056559618986990306518291596700450702734422327841848955285141038889336110313331340211682177734491109564492959544581056133616693476244690261455877686060632435769760921892229171270006972918156248239949108776325626767549438697567739100299328846108932115929607016950791701479092955463185885731305771430799761315759828294961015775977571067478103822223611173801645137749273828313615893708696469222323503040172302137132864358019542056698624888213691721305141192395214005804543678675154334354356786405257730280283621553352697652232768240393765891670539810289531380813719764256975118085725476998730401908654780598004145883872678754612457143289142961975396369120715630587757639221101230870602903392341781641136682542485691945986479997436082929631340625303052531860391488367374545921907098662821098270749355305562987773436200609498979193856482723229425888733535714651577350949264864474970418498048361448991015760529037725922374918846779644388681871741620575441489698042734838508745521600986665187135465785233159333772652325568269588935097109412876815778251763870810536167536792468106861663401316768221666313612654637458269757920046611449967146815729108942888308902687822947204666526818193812764659471193287497454355378953785143868039425211414738311450195865595908007069718221956064296121026643600325968066828916216014070240983072331938375358134392461714289922919953994891334935066653989043149236033352978941379136784128710857889211713416976614495910754745826225291094295838229279804873609844617126138414919474060800880328051965323953674802422093382105716159358604378053092389978340278959730001796477484745064894632574735791301532318285316408150537553031321283904157803565258168853153556359275097653591733378240634381982574904034334901264681860715687123611277760761877808838866470837015595918250539851270080236288585039695253028880451656575586218018691960132203010575812845923111614315173732928747659473721379021745408520786634264565927717969063074298260808228105766653865822453797588272559022109721945604535045625586049065945361346266555232249825140193218908927679584026206170942195248275615298972926839452634202919542424532053524452778367694924536302246389721445200238701311412964907543658550976529660200020368671973702010470764385306797326898154647967909362060712269963473206457953241546565193473823366927639909541954957056861079854962900808595607137309051050404934367226228883765560469810692465452537438802589945480268111753925251232047579432289770791612117021531010852978482620086486181211347575944598313047683197012253392472436356383139587310012678796296598532494039075949129798075627592477990579485616094258428679393174056720770194854677875699398737802188385789264439498892328607949736155592573763425828906869786691143684317537567129896359862961623727646755177760976099139067766977466572169928866705086825055971457289374276978277377977541803755027991987138476146410678377100874834325335077805296806037206314036200857737100907425991303146818210132629182639793854271187168945694933365908897328435725816786366508098613455163811794752976422272201560594339901658767261847115354605424207837624471339915797302899780515255699085976867443900709374641706324584716616519677988859562452808839909535840745234886003011105512384372464530422166155245217409977778862232130637425782424038557570434168099248192249013331768788243114614497155362235641266184119096007052648319878519029286036209139524036339345034124133501110505280009063114080112462753230791537444713404183444273683773368059521202048043224251879540457660662306804258026753293974380330547116946242702828028513557482524753623229457165677730727002401130861669684435960829689420005441056232098970906385491455004881698669905862708234433115885208224484262074882679470770002869329220868401619133145822329179914577781796146264520278822334602895003430639369521123037424356156595230993327234935216830576855907181158048610653913265800182810854329709240891557038518298414429502055210125429153690852538528459891977478768198115364443008111555790767010254805734137570469780651670152018883110640309210907615974272732063096493869842751414655860245651621553855219604181370476881496172329148466565386170456407540147546611582494016926961447402202189593567905286140143886562243088388347530954823695513414514871212485775742800174053960198072485201063184961686889217128006398442196499236959519692878750423190231010663064614051723418116276632291845976256024681386702936812114744657814441757983680965046027897593386941013066633262444326023525987460192444483150560058463550344872607353202087663576359831480515144747807058432781987987439638875443292968748619849176510361840952433427349497744050528556963865466792935197951258559091132372887869379162309644564004242681934561033165278925965436330445241901063876976289318797842331337245523270776921435270082123565168581016407590210298670233581918388157731760653271541345139537057732835811203337754393161578305961209529872650091051686317571095564705727307462699843655765567006060221651069417515294825786773171859456213913855523981680702037633212380902945648626432613100395475886892328230323240444210265466698473908118781790082743404779339008878311450299834192424285874052365626549037201540809200058842782383742418430043689161540363194873096559473461677907089289240506837340700632171668653959090318045221627461401958358111388103168756928929681217908495516709493188042536404107267355358533588165482730754786763698499077310106112138621937881454124024588384604422273153506288962880143344863761214172919748438962796393277714131481575683348229006445490209894742007775222601696912864120062857753124347761055827516181667805014186133949570544441843200953646769294416389092560720007008441842473750735068207498416041055899987143012895103332488362260221480662242640352922773039760842538506051397716892842606829163092469632158289641978586546041093485030093634410583731717912364704372884182065199401574610098871074903604103260065280777340478697889926431348871821901229247469476569500605760026069071181009015820528608455927331655670941002975900547623887818508347194983195396249162114536856425266852449386519177274596518406073531569352799287982027486546219166358167492821396485574028726360097344602603990811473714429860130829705299449510100147597806970035582884369530330115694696048215386835014313299881516670378704158307874195951565896143082532724894619158539816652509357271141244639020810526670878036651596233924861170959187156448064039106975997732985066350981019598818614660972907382677176993160312912503054582265404479122032846636191276225201467032157583555527256542962376493188922102174408578491517310527784424638002853991908248049779191042705812080074071562412602354007800259852949589725714954157978759654618665175991213644689063565777810674926917156114629262564104362012390860809791147451114217884249501197947850437092866218411728094455865288066031687169010572796651386766188710889684915208418900059656976968417496951176459157749462622638316359408547720417796575298437955011699772926370913950593562367731284499549096187604124006731958476444180546725052717360317685829940977165593917462575836906781638061903054820695191280550624446126047416609501281282762822032280241920088890331770473876922499810233604354852848791217758773866479623898590327100172721544162430613187068806328935469132714051061339800609679967464841842083152712482608849057936799315688149429360462481239220154454941244120945706097771125324464899691498934841057699780941761211438334484276722291574719175165520997112273751572559528181093913049229133209037607930260073353447858573988632631487073648634436509641008263588546662007936939101326597456365786456472790492952466797394522198702938138222532075502556520536381630621820336359099801160659340415947336333478157990665292710986205897220740246252804347791281068657718262301593270167947021027506274968130029483277535481567069799818330198298173242431295064480766241917992163370876745748949106231809459247141076331227058318171088051376104007702380853020122721507994233382599864038664464188386118191156733128464694673573069984929892341749519743918465934162271172514712997370060358488210952242835106228152265666794962946215748110060392075091655271021290451285391692187251658568155723664716774837043171430295965810369966440368073355748708126430147957509838056761619105393164408656730715262554953581450269966486454810780989091661017413834794049018631298768720907214124436274844579949229625899425397319828845503430346034614324681392000020800502790656084749096046676945752301369736168088307989258813669862274606119602357178506227576592605957240404692082602462436681398205766885944654091648770251626401291268549375584613582928842899155703109227087646711638295044749713954289184832610001637944414141502053270454414837703223908941213856395736914764579554716527606390459506671079525468464154245081256867013566203443097322407114347949778783100457765419523548503661720095061726798113787997140053415022732929531753335695770303162781591539506504617863411211603091399300446476387095817873749318296347334255659248431080678224230637415222701073813989391828781937360586412634872871305334145462904004540526598509875242206318576681812387121401737598533350481983411142569909193154641492425496326962538040725502636576640738438165199930211431389143132498226051480636354748969403946570202954842925914207855184390761455651354611399950617777984853164238488964470144715690219976260013848887948716283477429957194415728016522816125313353269991968852403469780821330714106716882734479628136088447153992360435844559181783266680982789097713004731028510954380765226801845213473564981418570584488517106094790174981591223035598714775296289606887734429425161351009945658403121877911318257903112329353799094311152054781070420572819337903460737390832595683939502751402470664660651898099568085677932672522078247815162427742068568887581873430843735548677109062875495731401663907884585738401637371829878414194227016485468196681887818030451907026481853243151062592005684340094840097085893731419693828348919077043410449200453297683014113256541035998564752159997401148865572121426752359033283443241802940900698264579812853811438469256674060817350437593363121650319305317303207037273522734571779883608951079703623773538677651180921259017791879314167307339466077292665314089583257852745433259949004040254183948727103420217746404794475841388538761238794091743054758881503412927078871652099333505882533910885596500974256777563398206175583282402966826114166460146534205139108477855183427719351764207580006281569819313291119727633449770356210430590654369471627980736482828613959598667295368213714603403513913488653398859388310326788354521645056749644968017238884815273764344810578285807685454977332031865935480028198883531763454094457047129193125949079727029164542789567839647871944085899544831032022461606072022128024154134936980930911225214381119574516537794254667913706179201589124362104754869577104371336104599683038986115012321543356209784865439296469411493961569549519294944691521772225096490806673551884573186347874540202308095339457114094895132276537595371997111922625217160417172545330971859546651794938261439341803165747402004944072245345631587091569741804502705248823266104544250849802818011000733072238529301694129172587494212220653504931507250051998135080742260695281878719741618797785481310884217810681819660461430437029683948727772792218653010452799599471208591485791654051731513244474551120899956676210616880852982569137393638121476839907496295108988001484407460410987843062214317028104193044690332203491761504303198991776837793231037694829365835335813300212010129132019340579635897952071090320137587419510095536436316031849458109401249488535986628291387763714807375331622945729164388230724278051512060029508201709578583545069714975661673487536507705082643467976120624441719014422007275320678153972337513939230359482277816128719090113461175357526185140717865264152459643343555503313555649584560861489572247124034130946275757168380042996007662894505973567595775039978615610135850128317459637022503838747789899614157742353719953133248645210804593611373493077831231514819064619234482146880690338307291116522199937235693598162249210237223367717368183007773385936878203787380076424907438461800263766505222531186242754735659504694053695179202544582675214782366410730882638152810975718379957641757158558460202056805143227033803144039436557883876701256652133435348233760679022369229994008582493275102699673332222464089784732590409595750273889839659326328090694708972815173154616788022623564268917606520901876988331938079763079997667382366859062545201471006826999019099851906694258823620843729520563814060396227499637173054579560744641437812163814768872218590482026496836283598878838233476464814703510053930910097866682968459276731539108889944784336664045757672280946259797797341550805530293792912923019100899491648848730621334656971513681327372479986179322001965574559044359849647968026285525210006159330303767194871409744389462914201405604510094367589423974768024467367463340008573370492808362185145544889597200309157139463398085580271615789144536904236513391732420485534178342662592808146521192902814815424697665526637391526880305886681871097612068061586383623224498969208047007557961181900885319463513161553530417232352055140179926745377583530676979080284268938002389994790239656220661628944899904722683472859362827156477108772882374772669740996525164460735216110928075568565571956725729278186199935372405788374075199613617207318867470115079382183342526726383212209628004755540256786228143116552951176086552626014676441756133009374097086329652847615466279561630843881057954561692941558765699033764575526291691051565974582013811637452413033743541239202697313469725637220878428721393616203404507445308880350584754127930727162342174085113772004873352326749457634813184052197860414425674134904842035931335040340324539820719568492415444171605068049251964373476123350940641937934430119050423787100348021559948076976496294011384066742978644641394040163851312050078661003131702412989533042033071073993342123465577194586655893111482866427991330014908899434740439947828399019237718885538780304900696666592560934032757656540445132262108310831263551513353609074721101716112982696110715995561030312716983046580289887078106031617439193293708070959975970861891024028492893597985535566849403956809216904861472291100874553078825300538206714331613351655341850074677596649841268579992387015664771294967686330306581055387102020745257554163850997317008801269345108726624921831628540156882954962847344761868377380639066541598580626817752033939006162597718195309996332609012991993982934619028502105632952206595976839769974433729329214955492875105262470637277565064210291321247408593919620080261435673408478259013982362178384886704718640317671529216026957808722220506290564356517916559848281966900659049898427812171082056496517825382654567147887680184716879097406218164424958779125744597348042971410326560021687907465926143982442162392100611254171021727485741088986327096215682120517908899782468697510375829184250369023804514890301823092805507417049410894848986256967481512926236848275752647003535120436901939341140848237337283014094291745896909707173016686274892885410751595219177931610627914232757687414450933438870276767672393444399130906654370686492802389974528128376611864744609104378966423983005952762755471675672722748255650209652761108606681655435813337020812402530777479927727451501952737603344280291540500865317113676734208013003687443416301353838888530486247275599255096755512212651275664712238843374800277256597532151557672675068323575730976443570053498267004697251453257132774815517468195343522876253076835185037163127146598741703935110477655440020046391882521417452423587648316281091298434017751595368910132030638459771464401739622753914658015050306974903296661635556179549752067546686753006830472659835434581784293909948529934182720509724972756501302512938369187844945925118072237792202665972465260120723915106611440589190699844224727783932815871207580802255100086004274019699605825599539224804376046625796226985268971474054825429807080491774507772185183996305577397622951672417982987399767022159685150712820740188386872516568409782703339257866975836546820848837971859700789290915240214196001006444634020420002141039030622936713322348108163206916834445747413643943908919976416124083683854691634053873882974309006345296446881204462899351866673618065266632059025259380300812087448335532341067760020735169595667349618688150039180870413034939004703354271341822108637918865024102587655770531206051637091516132949371278247154762474445000016573451053140720808637433965936410452638482113526271360094478572046267814815794750595598306893460565940405402284173831216983586310910182345871799851164343072436291207048547162242541367993398829968290608289910506610984731943818597681258573653578984256858764110194045463794013461945511549211539552029780004433984909846549503507166652027578947246776105086192324247016287200839217886855678109002687339606142481216859272569030540361568713471318586866563002669543811722297302933367107597264491760711421030965380279885945472989306037743819393699306528142595768931133444474542733700391217509952818664417663408500726030173384310087783870425876716270103965547596726235825500099269940482233585142864545734844758715907563168006527824828270173231683139770726394095278675532716027964010613739255030695819870692304715178794241067875004917692641451512153985172513563817918891485724436769480798878189810287392250991306471386820673312344784296620276052644195399076190780175998335041306637709460259855126485361203763836648915106292500491807546225615252362976804958544546024830486761774063334443445732038264302955062198530945428200060021924971448707915180842717901420298922205149631837256340238841154494613838003711851472675816738468049793379175513116177895063592167110598323413652974305553518721153632019879653838715926757940093393198850734332120686242761812127223991406316282729008681820320960504144478175978939800719575822357151030106927770847976908063750153389055990074537564763034249834243277227252630782048199373261166652360254739363561860280706937837368264284546205009402730006825397516547822853701266007195458237150956621403588634916225288592266190913436366436548115893797357351104199008447683079040911025924602301127113924665104245284203052539285764885374375693212139592359392770548316648669347653114724698496625217488568433534147083240458338045820310135775770279099473118236603804607210460910681972382863456699487495508668826289644720019606297813472507633935238526747519220052782866636813018680691418672183247464002863006737235942456541535968677524140978804718208000968486650339313127759486210575535194366375372699548170754025964385618264454404560292290520449486005918261141298434933943265138865668584205987214071074989927428149985065167764181439069217244846021707718674867944901123384799868372061090345745680645079310476043436942635249931738547730504966164910922601133873480786631092840837735886332188363289036547792908854366788926643715818459231250476824392948689498933404941871452603285388523012377126529440128193441559211107880174436355070297911102724853663109135781414749851244551883688377960722478082822348146487400004100562797033368787678871574165067142746479065392638442306918089457685200388423013764261646742214320200003673134166122282450978513557983610133065184719937339998199011917429712860636087907259677339152497517509008328063665532020640882992973255210769060325691815475176349957924909916096405752990419720336065719821887090561841520201720331825240904499345574377367330549218349005001594155951027095437116874870647898652538568707051567739941898006223080251904462336046017647473616188237849565394582791665779519904620053840789224770874138781790374136147315055750358926192345249143445702435079039646040372033468718644162261478168182662662626242322162588154172019537213242401421832317736379661609090883968091252673372550574527016878127077352560743426925285645486496328527023356376222591976372844357415187905486009681569249460418584201015749747141325962341544895927496645170851191310512119703944287552940575693682866057814065225797367983421879889119027190095587380939892202764783565984695068126853294061980497889835044373269588902684440954274020161178937960358120452905801823933036159764439859796652555729586962550335857153871267459024717205591234558697914461011239541842735488424584669534697766722848674321931428681970511573189408338757691366124095200578933427571919266424157839430034092922080143206316714605021446179913213256133117152495103868858840993938463354633922839509304724909808667476102449764693887444500745395487784287359689786111994279093548287051171103960603136774770147162259658309277348958033472673503492599307516861871628404102477069724217176940422537140228341468336541568820955932058664090068204941242562881282088756851919739916032487137550581410113721698203520817381637642948358365832543616442594266092575903123432897212195584494710872087041555755462386503360961837292291140176156256592200688174457859289512738647573233700512375211668592319834405615275788152123373529166421591748448966118152063842141899406880602125295050781055924949879957025384189000524643362302280824412027998061280770989034457858533254373705762629966026893534676809532425871661438755253554483973851224481121441518301310509661366684750866124538726529885795714328576944401186828041646604172628664579609704893533956120844314454864072800748383985985266276610408968733971519467406357094893615715405182221075259237335306740399525448171550909915651562078883751471528873912560468372179705375429803136121820403960946343905307302591022571827098321016187203213609495118364950755581431700433104877945666094195116858747026124277057204471751248895469313370583516581626501711034867521147165028293693421607543350271793325828641720454750045438839166669941642099486139757022882004256485355424919844382495621494305180911572491328755194536835328348365426050401714817043735404817686726812152179782398655857664913147389215854571603700229318058616801560380843655398406991849143983546010871938669116179991710883246992905592879124409626473340214994867801236830532127417250146823773800743139547974842998353344587499794577200661291143519570933636251347189978660520500668417221417430797249784790998157089623700149122939402297348845614086878765713695693417670749372190988190882506466114773924219780243289399101572272942704629928829669873037772453161226863801194996812569039020001399916224434957180961678576259249867252710064635380210456509547716408191326370216546501942427588988768933195740769607553905806396151266935940850998215006820214664588629739165591648219605550869154398021078052380584707337299255848484996641266475454294508754002687669770314030019561496563865102200236021748453531164824333136681946392738051490670196594030502130548725982454256814561495346732229419361317078344076974088096324577757120763674228230882885786896072239607137247965154855152475859023221757809714132575224381472216024697351675482684487828129572761499985589607107007215578088890791509465283470498707989743932156657982612121211741534838194273740150392970905744099439928825456524984510824575266081007240021418926505651628709264315580322166052402806022557657655319595644090484611929070271339669171167555102919047129265340187749958647038801879205890665681228055455746948858022236417549407537670681069106466653094653633798245363535350461694514121713205202187960287230437658606298757387662846978301810250951279860326498539661013503949022488704659213591481144457622274867610401927512253328367434440491868105736198846183859466933497166284909909829334961702199942263898818544564454501195288254361039743169357198603657359491866034147801156561705116216175006350502757772379674971104026986127174302029119186073283832506474327605236924772756665863910069816796942779769798939466511814664774859411648165404144253899497676418187749293626822011977911244591312533516183526936726255243365675853463800794899354190496188601337026313593513019776384050937158147614219175196288569722894547031983718424951229200340345495748475213798288466888025469929765305589954551064962799738717530975756250603888319727974022305314509503472672804944468573050473209401940261265061489433475804929033664948127131222936371607308525178615857740883785548058788073519685964365524855816585214828633529830046958349045472637486444773309405615575521311268141638800941625301726389319758163783942935558056196732233032369044397818064157254824355018033226238385282802525997766563867153433417558071942105681913272898234856676615890162241381328817582510518362357392005804643195453449774743082374523965983736683151548819103972251467291431097636970436990922118720975594967348613811406005747096256727491073301612162847945032161788868296875483220050735706678969306456250085069019571517550770322133976724262878522228835972876306119839516658234871225753952884968264102027331453234995083222982347835613373269986506260716273599631214743371536181005181169512275375598224884242542633813228388091540527200384343407144885949161129462323135412368555327854830230748241130922771801682100391327548476458602319503876339374390226332609593800117896311631930160214157618969607712158091614404186949909781901644244099688929680579498425587451388596063996557389973864423415803908044361644902172216150318596427255867980023932675419077429812879909899802902134396148438597864706875001535989621544969071067342528528728763295291569622168642757215372233722804620968036136668788889010178084447376390696761140342133567116214355205046088238544034519378820771646978293301624555005079087600035236811165756661529634042679180972138543514401285145584185944347832427259160954784191030547912244365338437866581184370433515645725074725773869963067431333332088395485880219045655693020216964617513783788966687678752554575326807764554218062345801657528133473814992339425401964652334494802114989825359987459505308651732559478460867920844102328430951906164336329076335755165493943506945579690283232128412120984874830022725342465574255374749893726941732082067365191112950551976332820405724078201213409309392798595387859991809021586402510448310392207383552981591760631580478122389159323237779054705829680066035076056663906229832793793633857885897678732780962329746918739755153053503935051605358325722452439115742759757971072366264674282619112259976033198518712991741047657621742916026761896305938055154444819749136073847345218736247169547141375215311258112424972560127240019806439891360814700240567029033022934654907894116592570522662138010037124542801482802767673958345759348684224593069596886208734410847661448604412166300542844281617012325101155001600729512561522358683861627049041804610346114968221795707061720422938509423457707912993309604479916514601881082386113533573415469222177446410282094606282245821898676774973171679016791899618056189367843337242146487050645079171705933608176364036624585580856309863976176169611594131636998820317972141502089933635273309284181696664239101767235097954687024612791595491135479886310369440158549028059958691954380764928175861017422384270696262422692258424533213354508855804325050362391827063716720862306360965265452818135009277629087254436536419538634189059521284431266987399031275561349639041518943815789085648507506814245202212222454691936062154824366259231306937657564219665973760510896804501649429517605685829771668013403089178259595304826177111749468534260456552212102967517963748805096090070560068524915986702477780227555702792217596768637239690518003704345765356474810842027344592734385594814965589788740452435047993345851936436167587149103097189791126136045520539208614655643057905864739773711277005541114409390434824423754938254619616067725721126094191405357406905287248262023088659006751815565229571182051173114882883530984529065616468123640936504785139601168896014779232159416715541310594861728865414698411576120663504499709648826085823747222908248133058733671916700086806609843288830278467470934145284539582747337959143101668089037096379935341952313891752176321125739637100058203678027515170105476032095974311022331987807232296315612222572922912779137724185467236227776176585854769784445276627927190504804882999503097302993176384320198630657047134404657022443789190022010089278131387975884832053530908507738760628532329837705528667484387710504382514753352335907304713039350790542762150390985341283940727194664317190067230895802677134637000703361991177881452114126915159176329007495150906934438517468979670166566709985241774006803721422327795889776499120757914556681103541988215636913035794520119512856619963391553866770801805044670593008666896669334812199901093866405474739290463009664421718512772726986853240571494536338775495018097740431964972342337436914183836655635840499191110366985377146347561514782268418108116903636381651914193652921425829629447517897655887563543904426273907714022128243531580064998109397662670521821482944338079243685665198680292231613507982246725878602940526995943455457656860113618417408585467049183743782527927983718974874668100870336253726742805164392687461529468170786685134427136705463495281328361815602275415372750344851435198488261914141797411784997825091447656873587691657558700175471229472423444837335443517324597577840304551448830814432406075054682419277090927911994677298970359482707792110234441836509521105739690908455120999603435150042471121740725711011979764797373714382677764806499190624827842337771529584194176756090884380129093386091412601860615440889871303812176193377589761691155572871557451370498766719766310349002484086562655281095986317497414439552142507861372889461458046832032339117994260406282389797550096370155761272936128183497312055700587104556307709055300847616462035446218340924206186844197208654398911552946157652033062217456583984764118815582543302262130269950963895978001355681187674245310563995104145322249062180253138887525043030174468424288101320588805646857840421215151147658145549258473411143108765005794147048149402318639429000190708763369324499925468145008982870329207081510863604763642971244816357983879453779686136691479562235511613326600784620589895138656607210323846253957001260457593862784956321914324156808796479174498519371718253763575049353219423850865283667831589716557419116067661234157506536569169840571845226131492395602932934333001309562313535203249277075990175051069706716591550305739618293777898143660471447587009186878270840919048158262332142208647135412971577409591991056819564679771831299378193377149848326318119809478988133682472247330078114364534303562463161918543027723198216844373897181981180565170660476328407486823873172796407007400955313142041498189157769701543949715753898124402448115387643902976144768398290977377069959693358907177642920675798000951714645433688198757972687047646921071416921301525201599288940886723618505960927265049629810911998423751029779042577009545331145751121576602524611343504468530345933151655325753480169265574950257464202589868148442536631601563066001293727611938439739452908528428645522717200181867861409273557947650626351856823356584232556164157900727743239068267635198878757872506988789740002792853584045268812627638979733410381813006189444004573070561994823531202593275457534386951795759499194884129229375627194050410123213042769460986704970686216395171064061609242151406119141812727628465030219035016826970883245838721807394547785745286296366282728972839154160993274949231692617505818109876483781001874038860889840644188513179827162089911915646954031622730214639759618579615051047420606896681747504992363389655702749674706197067051496866684979651715811257347029173131368866753765768811666797170080354282727382154354155552743344737111883157826768142446710195723123125223157134098415404407575856600330498579115015678064973283535485789546598009314766372968797925793672817622297914051545187656320743290131914254934243676510844413299215124373709703164721698063558775977348351632097318093138113053686405473105814763645007488723399193782678967316457013316069946605967456583391465011231256248225827114882849095606662239904913321123935094181158823210935958107648377897351598243401668627863159600440143417309630475899733746915066590544429651712545494120046858307313314408955955091018808690473769871110633433040116222760273957616125353786657670844382625764265819697127488282499799292857088806800392460213463403933819474005378593830245094508465709655942293451919214676682862052843758520721928937931614548430772562502367181520832557644631213187460124439475615464688757190833915104847295525328430105782989053842986953558172824329902475723464924063168083292013759812463089875158336340932393832379100482128607164208082497587562782669289175076692827326389731109993168327329230159323890391351183824874414576891430798586421041559595342275302574985963434238255026614507923404563749977885226887167282396016586092585363824835814311036057007126941369391056362360774891751952479318815113342514310274974607856260584568899666901539985862829598249848500078097406995898698500623725670725997561636915928849023972415549907848969020760747123537614112588731490728319753559124684481904671950286134348442254058891679264700464751991113603121143080281702684834261881260374502325429407828608254619384125841282995215428217117025492792233611203091963192129624494954968823444393592282768177496830445673133685200318169207819238742920637550926191579076445548759337019055980254261045673640162928898275669005414447656190529676420328243494532187608269308080913194936285855393913563711731044275371145780565964500384073504447070719800044971902468936868580980109169441426761280020981323146199696147705788374469543373018109738223845501479919358042356209367503569291926537583589438937471361884615962538853495090994526718474199611427265489755605100111063293389999154069490087750176844269390463514403166851451195889778272877420816090080974411312017247020970783695988304559103851816058599363031698432256768872935967682028229028614494035420397907215477846576150102721774544919063498592085013413972955589580396227635296783665492584996983492008531380151868869381353275536507730796455490440715607653306564413164593138446552572686661072765159086623026990653771003775127629938322863248608486490102502432685001775578574790467782204795924515672802866176265446722629675429465813852759755023603940226568332805907855868057550326980072416322631198742929170471372832080618332011936019495263054611001970976996750446248501487586943860861098735453551651428808384396605934889370303499440971943886462484279950145341026990681981008379075567969485267954943658845505445224052838305232486080539842774752040537663048833812154470766012247281167031890433859436064446207358476452649869005064557099608846040932317323872629769954213012563443702283811541839126478730752773097752298976600436293732947232329643955464607962790149971110313743244002943269882774033323635169844509210372699706362289986896639871364826215586859340983367384436164455322126029160164346845725980801156337981376524222649337324473730592750310882037370022714955059278757313444680394011254438825862182408357515428103556519443053644903482903987741333028139355665451732966643637631775076995857815455249049321663464921270145892899397823794153998099638201047891811763247969490601267304006583757423622504005309822945322010374842799813599870247120534080615357659881564756778787821801266836138143941121606626317260992861087569270024186616521426195933743058049941597111843669337248938421550887782690841282380474207500159552084018719365218890824275036566494950640682934702302675534574546226968955233535865978940846065414803553286233120282524088537308970652276146724976374226026862722946258968146206871229918511658257105860088082732348694683406956333653842492380936185022866065906098127524486073853389148867165954420307769743808334907821379524114889416699020282926084265232753164134053023150696957453156125946911465031852834293925460524498401933788282048616157690675116955598965963873318245042076539119729701813263759992484429047086374485202246414640040264858287258145990775386329821847276294929890405854595039747861404328249568713632870671274340290216643608218511987447977168898274449746912695029786314873729137507369072899138440300390445623314371042535682239688936094004134560910416629313674960933744603303078744675678661363318417649533838759289907633588815171448352963872119022394825134546743378041381595924155584477543378343161026853903512476898583184151901544710190775483257678469907968330847203996933203679375922201161448042141733085945449942404506520484465076592911296198269148566910597540738506169987649081282746743859312466430290752695262658726273213363430728830277790669853273681604407973057034096639503664996749870079080206267956006013552854890159532012595573428835016093320581863001576356294033624217936518041205988263454016391901094452982742572475354620221425127163625636930006573825415337930302365131609887396939986569969496015712803837775905740178143792650574128461439783409383624738217179827200261616342747585346131882957291476812705910935371392392604726341462320018400416223147028794272970176948308161058715704962904248241883993805598027702095268215258645586964513225223789980281485037758571870544269658031369838180125521694703216949805470541129251156408250616250718643361953660237183976284497561272080427051993437663289801157083846527762729343221810696367272741986629215536010342604250052007246049538974867985572449523116071304489493635086041364674296584869195173015605976452412033407252433885166652082594364695614046606731404364586589203659784681185567008310409374329468642781471357675580790378601120692814228858291415520092094893011785732871275840721994492672033613012747839510613406545171057010726842746150245334871204676971634526631703007969128731663137192902779834533091688354141072587856631492069214511046577054124128172240123820668272228267174173023330737776735642889957551212849975866393350137243222764191935745925930109375135477113030294592266276343752604329361318045248704310937413767659480459725443729940282445282666530770534836664419692630443794131294816752072017755448038063249059898462752999771450085283046506842989066987967248916009608225671161182665779862645558267852762795450025735528649635851381844069726990311839135839432791216149175273107531650086244543026188754501193476468815964480300810993970624105020308148169924609292976971163249956612803806918935053610539989657107326365057494802767502755608544729257809643473067820225709782604567194805235788219577870549416572254799205459301257989701604246432634590354053250075278579214121277459311405302223920420249730264746137277791627815980249419317283012271546174788634281368004358286324141391167246591961012189627537305995225601105631255016173296577288265793411397103734458270184527411882170677249239190552086474810011875910677125476738737287225251308055888474630205035555348512539285081038210650359585071669972864722606262833710002147294986463876277294995393927854009089174643596370352551939261264705774438158937151322765976493763195406531614673846983723888371525292309894542499827391073831265215762402495276354616200304157751204703550626351319486628762322494932310400193293583501666560331830843964415083374508742161382122993758459273513047972234023308583830531906684274530955501519095239472856928790050351072023019365211147089608831142200023727909775136574179504838204853203042918714865347787084984507468669620078133347327595639831965244564703699977839308121166115016233744755797570035791875021865687509929358883238037667812882017245781995837632678095386724504762167728197198237243786013142421284445820964044743005701954447859101707455192153895536257101855008019132677986671853785772615114676116528314342921366278797370380495784556287585457046259154752135733943214464006477586901867365735345291924078213673567301360759344217518264995823038037474428122528508023572035845774650486133489868650347260504987549272816486193716855197844993139797317845972982471434588486613502493279129996357555879479653752479256628759703551277421102498193771340312580259588577389592134284641055763351441237245748931312247733842319254437363566316673093483817087169956104111400258273829990620074561939726570035695380180994503198161259117474734667980391966738051052438596957962024557229098825045417347933697492332191836805930688063102671728766360038601522004023123290905899019709122379492057653607743182851207840872249441423389992283826024999241986927756212460719745471497643290738968286887455370721845953930836035484013926598013885919443087660191175499672020988685246729716306303940780609889306855194462133529428288918324902705887744219127772380034395130782021716342789054325129625585099742561101812070838611551815142206175550035354859218376805230626219821537360497370170037188185871590142660894513458040901886414409755562587801673592845155662551507404931074469078980470914101951371196325088352330556633507392919896901329886873128234263667962236121451078225456896769328404548386044678619293564979987994743413498115154363077653946855785303859688800731802799957925379111551885243100836000347025249352910789079452184789983802825739604560256672522246826738495596595636468758945426728195187856842845058479131193565062093786086483750447633925020905040707577971879136435773504450326364081577129880932542736890041830574983020659824681042054600819560128993782893537508045664271145381212708503169147429293067101872545024797671940400056521513010166050048474065937849088163112020582803408676942217825866939159029789051250324142734772255712590398335798198277423804290313417646373550013067954201149611436031054190126371699249028124332475278894175427637832904402922752731492944077360897232005894121853085753133827076226329259789868517252385309721925639915053338882584181651072011082865111683803053346893944086372996967986500686352206345928083396396303058409590630672428863759701307409178644368843463771779496084186878182969608847122896383110827008407562369395114326511582709705434870457417433787063264578498506413239860408831754595413867816234963109464211488422259002149859059394564907217725503175992669622003712207100563825263175344332182626504861069950688745171498248975426311478356732913213226136884225652043273199375051685512003638248360936223192204406889067480568194298982114076173312704229195370079921599590045252115833561576075278438596810406443792723001061390906570982082527247224992134475382604117978049526983075181890960713762098404507968298686560665713021529349373058965380069991152923032316218877851795413637902229515053311903472757323047393839274549950363202064400825799115675564205971132351978794739331372478435857276671112087381834621196526172830520627049869058068201820567936959294128719032071928259192246616416369053789819379763791753974126065445763009388780708701800130216486533662812085337449489190671890189864599245480481693530570866477091296393277350619860871184075238029915165208708763758837874834184905728959688704940478422220212807055861238105818428572749914946144982571958489467345359595897620315947393922721593788247185561973195722291485191322369720741100605363926923787058741467453293739134446225342480410306257141870039070985119877010367269025151457913103295988688210492630068725367755288938127074947287693394460608691326475949732437738339445595583094263935922335823851438007258263490227557130859085274395308429120824477358119931268962414535307403080086277248896165011731238751841797970696705130901537640468010717201972899426410832928847330958550441727328086621544533960597744448949720642963876158448578750036216544665216476347869695439247375063505585390168849419716572664617808308701475850807763430225393703143147150238443208518391132568304768456848864862283707147375795632494774453194589020780474487424675235651113525359562764017843082813597273344297841774938005451683441221967610697432711657395808553285115715848819509353958185358795137340416279461342074255333616325433275585395000741595012098918378774231471903165119968855994946178438875996013049980869110299044807180731493662558519978059538163588401401533656976680992896841678492797875959743264082353521975011999457255794058530484416939282763595777918039407759576875378050926305841666530588918331841220444242102927370705655403919848976679263566611570955001309869420490437968615628530597061874330347164319484532785928190498275553077292548657619710625197807994480379859282957527527797730087276600065980606420220232085938802688212333377443333642737250655442957025205432032615226602384651834401703848551681691218758235375640648755747337983884087474200639970418109684718400663286366503338361415412283836550506005727932567022734837670516047339936105987810245523108352256068159415548275445110056447865988662160391957559410851199140094695689157286919262145124587517399775355462865180609694350665644411912026600352715366847758140707524927339934146070614081098577854950582707871353172264671641054228234791025753335540385815211650729290665787532406569710063322673062481409910818055613580125635460753441780001766972744628158775462364775916585728268618642741908586678472191650023096615552771258110434566039105770348055075520819880852969465109417730691127960857145222409147005910715797880447382827574678103157589428464128913387654965347784229975209460524248207842163915290309144047835094927111181087859861164441703642798574348841919996598612963024570284188715110623612836205364114787573110010239161248760434132270292572203227654674471161753804485387940738592446890745268127657850552046109272378443395525887329701488143776330260291562694020627850287005811635116162657635879521836360661569974499110707738637379685029809274396313104186210805450353336433628780397875564428705606390316438402084374950896887299247321678358532694444280747441859253015818540583004616522755202114339397470313067384477829155419488561477491255569341155717848748917835187421224370049283833754614887568257315462134278333839817561845697426890839146679247920727391521985218082533877012603956829131868581999357845896147143506812051754231175585038550643459420928535589754152323903135954818488781520367520429687831704157507557935954177814803307299910507242885731533465071255685066116224449057676812949140114781465703925845231412958335062347096813372547658545177340540138861064025499501993332427438040285272156798123968468417583519386503862805394968114936153279615621771364147627198677861403020519663388211994530241803512728365507027852961795944963814930517333767494577064904312809188298531879246219661534181000758380998668580002268843017268846037135031536357801904311039791256347158300436485775593462600898228670454946910551744238483242450688839096491266895771979358981924691606589627537257551277509823938620183490202164508402347690485842962603469136314273333086166550296460287128786222664395688200979644490022563636188094261117451936876410427322998406673385555586861421654015363878972048201383760045164612739217864900034451793129667621466756711375776780317898517253662593781669596340175308993598732531111220704960469187527315652779144686513177290282701686453494043075598530721481249477813459565180114237703764746038529955039733655912928265322712973645635978246554214858688225538423685015965077031718087765718141727820088682314359533032122032807736161851396820795870644825200356056619415349073294980292590949283103159021996533582110240695310856282468365933710570411925380645146506717834999235232389975541181182834860719976908494916442879865492155315298756159897725146649595963036857641265972438609972491523541820947909567831912425424639007066153604044301361500168095650320581485697772810933101147033983148674206233595596315279239935215385812133979115617332960046713711196658309412411438578926236438296229240248740480598743796367108310045069439536379104247465159546239882288347273749129715622334748023896364200777619060059047759429762740967635992959499703744060939229984156071832046057952587392905126628815707942455729396396948071354585684884858107050562937018518930386431772890859852552239410129001745711308648733064933896147987310096049679848103675867312552827085777783449834919320440541251174790684122031534245372663478316829755915006620688685838033772265330775421218216063904239754780820813081194006163743994626439053417567922300095336204128895779522626469959091032502510648470204780772833580417524975902965462132072019510466809720126044617441067081012827306969398828931212094086423738908208343633929958491787885868490221250634738673702557958707722646657267721626540684449638160079166745151851874702463191379636599658415462633341571906687259940485556464898866712920113437348371411775941413283690037380410599749311607001283583433924521051992354727422066365421271530558602930065615819648792552829352031957726517619816485029291293075527592128852680437075575140020810210758129472634192870909854965196578257007461371537315458183256140177145020941709981294935613770787223724564953323053948860002626235539861588478711333518951331761496339661796371192516447005227381782513179979530256162845463097053236089518020762301551719668499884096303903329016715980915851825986683765793287318113045066453024718326791615777547882291837324791532806917735470194992841519625543081983972323191343607294636638413134752948235499252721984132584901012091643573713006829457471445551671272861063656629229404476395195820649538706837558066342136862242230498247245714770499104089257478791110528697229350218419172127492960305901460741361552568904819089424192461284272688541015528946656533265472090141928756152506898830243277151920705692566121440402660901562650317955987496879146567185415259427742761183267701986739120269871755853969128093933945057045238042984816004316457001666084967188780939910220142139913672597181433903963220535736278875542788370495904060740729553017166558070174056612674609805815478093716785790598075727243024715814219870297160944781288863391108969617682699713216933486719239922687064967460168681144438184796642541321928668210557720309526692534987039532001467967741479148098227094391617119888849783213872733520521482954069809866215361906243309536254310969673068035924367081636439737139560418651405814290737276928174463299324868557526307507843727659167957330743278760832389225277105300885233363861208065665399146592112881850061725921401394113386610078033077904905241870874240386572679124631080708122206302216699236991264057630261142918353974971873497020937424523153212570326875990757805714413582827287215684000714124777478235648545472712960404071724642320877715374134407047874574833066173532946938975260114315388066214727992512363235575195059799666394532235900426149914979200188149464181659093477518337241216146796801707730962328590206660211976103309599465872257514193496488852309324610436990127543112738466730607672748741740939148742281285643566823318785148209558309337386510783614879574403811518137999972034679853575638708162737032561357255432174552785407600035128147883225438829509619893570093180625007117411566776631129551998002758072768970990426375381674154284720470842804543822862381632011617892105790515855127207723301042439061582881312313142888085842821018012923320525479297195178501249616151561096211129033311106566176664544129776446774621840670821747020564748980986418960321182139227816459888682269946187994758795192720175345691489672071525949417639277656646788745730632095837464306083751491766422298715773894496214809355657970902942429441032604140498144999845174583527984971463992127832324924501934243349471616659972445197096294980003297565063974941628325272062234199703278824256194088283069944129487121514238455197157717526603583742935233027142339218277643845770107800864984494001448685508210445432281836445984426408851929161848278934905988288744881648320642694055456241128176364608089895928929586412685902061044614612059581403423803798240898244530288224579649369436234169436814004594283464245872359204619255530476942911796728473671578768036229677556924858044217242260159255341033848539294789829519462934887649886845293969263829356897362266922761015564643775496350465847024461129697861191623212076304553790790098583816401336368915633840158257180453441392451921973455910422162815579734310136625845528991738445281404242552423450665291635922475605234164639988125320761806739800918894682717882373126133266220184972557327302397263466868718832925114425556577047898867692705129702286598763260322126907660138384860800979917180976354115423495504042547717301141092294821873182138413093481262776846906697412146760669506706376766640176941434741837891296690941639666794597295145705856958564862678048801940993098899495489804445964860383060982141395769205708566720181748940166531403217989773031232949456993724035262671372104439204511558342083472361993637390897472297843967524287219185947879452060310075439224776105423179708334932971146429340079103949752050750132835910493159313254974085687713355442936286400535240361178371711913514494382980506169874915717697273170788943837019082759102714398088926496445377972079551704830024756022112779398496612082517681234807518966977284062883883167914305059906852564154364575027191905831336583427699956250844703557209712356980000280721729037035989859991579331645127515490462564126098951760623773979003984052475503033254724731111927441317051840525633767821787000078242478733922286732239011284640125862894010143491878285788546858210606506219315751590159691726534788937182341629979835466135593233868773801391639868757060990074974253049440314391436821051515913475372490372742731237968745178059149960337491743540795460678418459042433390171789076345803420571061793925784186853566855311492729156331256887261981939105488814810769484042263670782868529895485996546287328498518138313058019384679077067891512368394322739111339803903507228214578459430096922162543234477661397503389128272350531657913138302373036590528130065470778367618668436749169350445360495795249774379637464292218087832415862107920568150917881548272916893241107494675062138595429663711209531974120293666371344411132291341927538805932059252200121322079658548921608758725216971793471670073227277438180454100303373871567578243357255446750203627395439140073040895320655978923192327911510239381636714053910781612645026778132915774573766957652399788793237737124718938018448027751329855236338476315197295516744182028659275391784877216956176528532321615772011645543845354780834065207356192458911555778879284644779989221540127543569502069948431963213335034174301724585288645403754236096053001726587080905379719274858561585059212196025836036383292975662235275369195935424387291065251314729493332188694945850400065718897312337658090376011424118041319357834781884846238032777571871083256683037111833646822731752726595977580356719197777796723720591841261252514689552661564283847788505770798671852602757612924520522499607441467278742976599446289677225566311408082445057141503889963418979965021081989550425851687384424673921313170024084323072122381151158645176081045121786229411624718936993982922472446136584044733871549441219016749629806048427469697436200511309625505806112776087794555621352695077137399069100875444593642599804399775477658448649403221820526398449102860062654482585906924261455428610616851795200768118623484198101727004907699583371535199023081993560459244914009303501372207268203394051337694046558180734677267248076801123666327384927360809221066101278633059232449808538637478390892079552432873639362804890253901887220191761196435338322924873693003182372909756715969546311050433285403498551446914474295391445881851928564562202295930133524327881788200798714420661901631333145117122318151698713296281956591349698861229314629429770143669780714786337382408525375343257207724710989490066750081915619644804828915267396724150187784850811611924368307559989173566629097694836707408216470295970662766515303980491144573675228253719269524798583161870762485247600719548480247227567922561105856393475429840108125110869609687003054306139956759064765030060292078981488359689507151289096422053007534450377055314826261971535368345170514852803493816206038596028309912362259296244761307987531426893615672942402778653167105317109308046798739974250832986535136679030159274728730884222088998443653188653989158648560214152206564297809926546047498414814341379352661675400905792721008526655252893417754922417194615848242118125822893141610538542100120673341825809609124608377123305591810933905157484465853319366449587037085107491078409020344437435127394119644872925139726958152376949213883368770459637375690524502287983505250809548073531184235491710539148470499304765960522398812095733620650384925697648828716194385877906434743027430261632394177098898555992939961900111862035191802317378063272629807259909349283715058973241142018672435392202007068175875741780557819135198992213252675228781579000748324796061622346365043578239939365832633716232551452401944384505268474090855884691245373833917746648310114967371108396658784530606070192600742512109399472890317767053882596577152371833176569796602829614218774751367091319600201355462702060174588725947872516164516869006219323128598615623399838410694153101435702262676652422319816035757658998304566718066768964838115135640085529404580482425447277376562523612070243243942164804389668454866136304528047526652506278208680400983860194141927141251303437719231053599347917968926136915476645237284781379701811534202462195953561659185183803490461234330319256275544600598264457276754050557881699623529577717656368393186818589120770375859496266510226681403938543857607917369325166045423476513986716880913321978589041729323909530460854848515293581634919324060752133563274965125298949679241225865403331859328917635803600835268935084198739962071883414013862728132500276948344583239508069078928749550382085514377631371319850004112312280132431060677964334215674348328293206739122469685072139862682864511777412502657732429903012307130071177034170578509631819035211084297462035068888919631177341648641700059239813890188073510156930779389290823612901057359793091699932785035226626086235590730721605795961600963626812614489909803486075186152538401677704315360608696360632349930193813814509076326433034817015913623982151213917377276238600532462689678401737222422485259726237315615954063430962239820644341500994390684435722415096485019973395016999206550089082429766694712041034026901058782632039648453495571014273736666979220927124322751575274362747781802109955546376359627828270202829256262052618148283212017794218123558556207112719212731129417741140305003867324173244987130628909102816342787200270969768120150668272357097305303113805238491844695424221844135208055590975485192888098105875168451415507959404712222527961230222137813066598773061570008367957330110945228598912503240303852146900108773992738816024929527319451972918259975618448170014439861877446559598044111945433686087589387407510146369060521265955280974332158040141251385687425317310517496535744095033208452869469163362489828742675297788882031945032905420730285686416977097700712929923133692747823808722299095555677636336937368584465397544825045840098101411134539618101599847722633160232876610420511857439723919917224860007279838852739201896528623660687573027756134954611129785688591938703050097624907465043448445612103988935299148473288726568174446684393155064949449249814769713881504287996148006148513858303586478125530388852963077080479295490067731350816848840165440236105474750338062599238044763586335394882415326613505219895976862229222285463109216544759638822501208324636713248660369858718955381600111336665136162490536056155346997325386888906514628652055653169201724616056328429689214768214880047397181743634154713581707563014435583735688885488568627995741235337084719290437826021708754939907583498906010270665281086918976076175862990424605903670696934711276036043564450170087592212883428082787732779759192236381484232196409575067211057306691651515954708283643823306538358229853384999985321785686817669547970315949196621734330040542398668516325916164542827442147780329350439506660782475145741131277379890478904365846320806923184304032421152505361690625384540901406675122628425519742964474506608672789933947697637786040319706071165876160052247862217178021274616183847054155747229089289324326954307919114317900994274952396729286388087313669495168546674845908049775914805218367302848618949799240191245326907275252753144386450177781572005886620954882243243187880241285790595165114731328710496027157418048242311131350117930340742470797984878544874279916439159678005285300633172836587756009207566017975940552219323616390125495174612038470060495201929767876816111976851951688559654073471689031093606175242112005959633441107197374267758751834915633882402531141596108594055108526203441698434062906133700174758713635518685820917852473478478866556805112812843329849568827823389073565762292053798184389357644846518307616109002655946823033916284513043829340529715436574606144639669511395898830731916582342898842038332260092387506631427370172463261853532682239302909059562233799475279156047935284324142969769211667731862630552720357685064074481855305525914910630442935750766512606299185801612989691583966963118438217208408488853728208861454562430677089888550320797270753598254473265160624286021471376541920468925100109999547388409584215254230687112292095082728331715942228456933519920825728244831738437053697252437469850513836571620715850174304797315488374225599276196317427681682215068076312641851990018846173950592942949781318148667824545057171135936064881335594640191927008395193787239491390037407890782327397466190950975747149772581846630071303407487646675313216039161961429867606876499504775350978615818808676169154958033390626078593718967148416847564318013738030884821872185825685463375394405135161734806745462685184104602852136970457640331041357747039857382063384724607791893654817287665962688706884305849324489873467378865725847439721935302251723975518939010722639468609585752373766637533839973954531511749523047775400580487377795370945538566379477125676319925875326597959862414855846506530975527666154557992584382402790891027503861781774202808002912218126588382864217394673810814088139406222298802428958476229161268639628862772736079055630825073294680229165753049355383396889109996025178373852332719819728668900875831729856516008783213344715074893725873375151708577350876193784229785862608514564283022100079671637709964811532862737364806828437702523937420467070980474690128610280985422663113291281312769747642279865566341538124870908880857730818638329451366044491011132848840708787490615251700496233861327644588972294141280813152738928205665750034369604012136947220609726636821076816577651930045954693465370079736167833436724523922292248845622803506322661348989194698018411878059916396612267294702568851204934115633271501105091713627381106578077084577131776427095228555359443539878745629511242907233000342691386707939509351474390518231729467926877741513880730318794096177808818749668222951821103872448689081685190041726640493671954423023419952742142128005362652494268054644501953133991507169965165581746048603895777638492777869646787751181281112204094812156397978338009829284172963142865431328214748016062895212766162852607136324856285682319979099531583725581274817582639604786097160674517272140455050394658493690408641931792210274881387890395554523910219714844442580667568137819296564906194841534292959468675164047957831460498240264485618062123128224832988182306945501842222302336077728288196694568702188825623425121005547674637221327749847519332301344383781621793412929770912895150490854788209894693859251340202644905245052869143196569425827673984744868360139318775074986285831010752734611292095719103622214689739404948183909770459669599136527625108970865136807582343210016703297380934601494926202638109172319328560872220833721855847604381275410458292487632194905466661589957169762141153230985526631436178485475594894676949720025391247700335234077053214931366895537888300643025379426151608121802188431190511646847784966555508789478078333073465471352268885400544557743233872674219250655300782475018243763562378750488626304549084819936726369463078507555504581065332138666972704916244671231063046190873498255440238152882460667671719731069827220028183980107793606176661354936847651765442363687760275982571584142960597162112931742383665914662929033903217494180397025195403752908840240679780291514825111910991984277058883214033702897339333470895682413775047420597635129306939275371233690016082531778775464799828607796457392148653892191037793282335635222880171526708513829944684930991850943559368418525105419204301635647837314437903825692139547168375353747738692856444994241881169865232283717680480957490370805670207417182715532200583565082225274361539165924157213693309223794191893754518270080599267477198341950030067976000701235755348338218520634307739267074109120875648423953866437765024940809521244699887940586740449591030956390208010704421490490272185888443388872258001399435406911076210745780455176971915272010544609710788285388185892756945748771676754889713815553123275661345786020220204708489078107599767490301393012198722570608767096186001537788641207038641701049374675661328089226485185253246190057814169252050760396657537888858765613087193392367602871901310855196200051590653769602364950460579789391585197619329196019640210027896284705833721772429056381534426404613405212596757609007740579124431180891878084616516864720985377581395353193644137474336986710698092237353033037506940574047892618707663541920659700931297852425563697566119571742470080071925278554781537821476924359714002942595107786857016213987488507146284048222268453868355699774120474323774919685188050703497254316541483869636445920363615743747368205319533027423230199387630836503371652853888674191913079573497570934003292171925154354410589527350022821475599900556412274432844143197849044157821167299237071770628389195070389940230910588780993248494197625473203842281659660739051960789547669433738500781321189761010820887258849482745132812690405533362410476636329791547322511903124517094698785065341200935901749499296412080264715616751760940270273709797767325534218400137477347888646150466261470201348776657214685705174085685715384936674285103432717792159681030207378682416856899176295181741579600483515201979696685099885338158306925958579942703326944282594266853960152194683826689540309029678652033746156739987999415377642008940208276448556409887433155817230320479843004615354805230744463626256619745640956366427428262817173170243811152777199386627100248780162285714900550000366619334753606923722061353020372059599568198470426131306479784974008887798328667685728775632559840404441407861483953820402677272944764647299739717426844101397080926526123191351490483338338499007723279248650376299617403293990578406189415256879330720949424689129719996114142044180856852134832851950821212004107923558549931154741044316186922838610730481806018692838961075247673080439586730222438702189559869671302465086331544777563240979260069077993648338014050983939388795634604239742835260304307299180098311512576475733987297239536700645145547391469246085443481674757539909941719477172482226481711134092818054215093316340649633133161429358442886833740458416898716076025857376717411862409506508625537917682156301248554589464256641529281611254996988931049722588726521549251971340140488323978426888112912054453039510044796506195959567928985431279578242709198220249742270599421430847415420904764119255573992653862593194495695166728789580632265420825232469330900909582839276200582761015324326025618215290063732407211477580939588710374103821370804601388294972962181011468402705594691754543095461993132742721337744086914174844625653192437654359141198951184320196876608704095624473392324646496743604510395262832539351459440263888810348492375109692688744677824493716793678656505207888487774521520741737756655975977928056777983262249448159171753345165601043235813933423680456312874537865774603698258326241896592589099925238319681260453953385205542976235392827158725621252274840049967498923150156342190017125685496686362466273627654444223235562465311149526322526177585261067571190338213291720376106841537979230003645372525754108596902332382876282223702191149106784719010937045835142590343972265319487850938053408438164521440803467357212487162175284336811628253143967452353459133302044181329966471467476665178330585184463844769453393512826062619035338268066209471247256586984882349624583014385681740383057870123485119902554235018492329934040784936886730221436393584263632905695676939785575329979749809718536976224496918470201019271575045628780766662762771701137343247749621242444555835024191010350988838502014273546344119889503804132462609933037560091615944795239746690224629978325925242009033504022852440530228825672316015465067749533800363422019366777946076980052804665911248496578400846806052912299088145726909988383050381709539369532835986204480312841353632664699120902961004218420147203542603670786410007979468134495213465800090166472364431339309235621514542875756658415272506486117099821843495312834501954461915004073248275386063598413826366701118743479324286623616039072770910301846668746630743838939933010781210695196761277855727146112728021823662728429357541343399702621875984745817914769502660853508510881898939442423415919868417489628389063369795337696172856585447257371728968345957524350324581486378390613652537591628806156927858044026662457313052129565709345246197633551347177274003808049735070802195618015007044354078442195438566373766737744369670687085060700028406624920853128540066696552590368344118372838269275656184404455509090890859439013028683926342371223056733351438356716193903488727787967269940059901909176047122344682840440719720672105327152210621656290439884862083623237465679745830501696678401342544692334560037762983623459920088390630364267586827404339605965839385100273792182060971473382973661227229356860797319371328657621350750606086527887084634566146034794371927674749701989356805659401997884722475452885729674672630779972717944336681156492836032039598843996143521071755510585571591133913416737554519060698506433915216053885028123156246122719682486194192444773102197580298264860586629663921293063875227495275156412140712727238719873631823806030805914009054414819484389743433004641325500338865659065404789034989614897500382764259686717347288793963396951553440950161576065283692774024126042432488689181676674140626008467964752155524417659733619763251866697385969318817162836950132148407177793835138605967640555650257794087584253445851184035184531112637991320250147954752811042266710633884026637172405861166627680803026267382035472097352389754592525385469466845781953448451002499183027907386907271433023231411278259262841884715574238891611742994821587645597980296947773140809869597418911454387946385053847186510507405288856324962311241693004914495150116842996975155024379423231325282181077693352448502009842337884688766591793311960639098001783426629342094348993834617530450921703399243342774512383807830437127470890425120205231459380171931706342759086455322310568723204880113895386995172135368454777854680338227063210696647629682058563318411439151902194709953074096508768963297818312560924369951600963770662909074901723066082741985582471901416078877706324399767284582641952011471315144114697033049625437832605061723807225986083595775693867640805042057024314546520244413800680092593530771824491380603190678487921106309160727645859253136514376827944453386836697721076453445238774390502149231127246319783571088210845234095181698825774839594966871694210364819804537882432103771920464738159236134480622520207533162748933476657749211432437519250636872134937047860555557358497203668137198033024084701283344370320108856817057257048905781650557042293163863788953265119690702192410762874550296629233664436189325068928887077899221858767466775756626926357235536865553478974966685138848929325348520945541030571722531662895293804378709515114914990551370785506445139362852686690525422344664023690716832248644986819137163785299099667316299643004319423935792605877765426187277976602112830690794602820638177670115114144060984846685218249404110087383756387949399197093280391016915312089118578264563964634961982434697511962714856642401619405910687378843962230097135089532859481494761986366336958845939658392712168341066112411736730591938922573790880815670287999820002593747325172229823701049177552359010004454875264219874873609047381031956268520823967249867780710637808981392120986266074215393202270716658917928268742982311793151821876932658083816636297052473053553145422623297743844376477417242558079711186496976517498910361610327128109452351371143976377838924196696319550814765514926802262354100907406565717384582285368409881017884075601883087152528437102849989168710449015542115901821274656952123001411822867576136329824223829087804814463610806450566689820556286463019591822398115824192018812952811331719645797372421125322331297352510393336044365336657743778690299607097768024566250870738684673079617943400422722180568524908650225541335148692080438049775987013767700776607812194484589144280097451472341051699725157167026025709319606905421480124582061944548185380186994284360540707743781400117748215931495790608932226924313122824231300171376106847028142693460830941533273473979956470331016569085326554847917519385175956897324132633320263147940256691348124888581450291034353634712528126264761187435923948075626841770563483272902036533917115156981797001191618447481861924307099734223322216743305419565088389461821718855657203915076537300649183322807178541814499316328205769436530919623751868525788324043825758449578966233558285592522710867660119998804868682573210596513860276841790534874306664308735447372990722552002744799797244525900384599340055608302286248927618843546844328300366511553173864303101946354884784714377214043075048434354611349917091392023399754566093102859307684537319389599425364792123096537284567962678870721419716724816161671735853844471536391291644466577686900309754693474580275506413078087322285819316532257149520999339375090023522899388749145201758800816976307784119905091894368559934022605387633116340747793984480993882486098033712463390317312532327583350096605791973324626055436474953058602632875562947875347810467830955020172552309486874687903267697064666520357058853111374113875705371437622115414023862484842932387526874731188289293982866375940426124614382998919155214660183765368373285724654521689926135132906212943016281250537606115226374452212311141165996460552711561912248514172010614666324152132450587133115345663712432244762874156449981281744357048161942949520465507138001183202202418016123287865613438350987770183119953300874136899968867935230127821013811083865444326686889507990049927418359391216112679291348560059476277519547874149779093487985647929651474380945927787161913140218920959419739150099439693535080499149758789024307140722024859748581972146794228628508880752126261600106185839368136906850605241209648418339501662914952619450044253591003522002244820973519799282660135990180746923109471864872846658336762072835159355973899758397843257881054878338071591315673701391537939302334616306150708373429827319690315700175690502846205131784506344828170252452341222098936030251895304464953408567228954612517714322326755750987439090092456141807271751701356563719816010293565955783001203493609738794634651775509702052852575101638739186438219782477720231028372026812780324374625260020580777988429795761617711949506549033418323539217456775631339029706389109743527219900309538825928035039300172669019615439977626156524498359345268876672308907648361035078518135987028395225237940165417071877360843827802302651306448633128723568025917495071982720488344037312057058328421893240847628436485228007910765591332749335852227379515745351870365577177150809162821566148323284396399626345469564132302518978062140578233685273406799657856668270989739150908322751054628468269602679056526471316738316453519553942775575708059341262408706041221014542307647621963447738881457117422124402982154793442185111328431506605658192192314425680873570141330744066559943883771486384783797490457077688469544710505570303224495693802254428769560897308211744818372479529782561780870102854184754435722214721909951046005933396963068493055455820122612519586207600463282113246702755531439632637671159983320406172600401002416427383470197810332903102449156398242961559155544702855673796084837293060249856553653149437468347255838538930002539138848760983389831029220664268591513327688209055009944794030989630911257592703935299914493898408521878652821338771556051621061500411007722332999385940298680713788097803957919219325402255497240040776082188711870732322305160319239191052322403079693048894447327030987660472674264341684365577920011980375233745950261377052961432105203052691722285799696045546505704499787999862889077462231672164439524837111082764062698514574555319807441235702391395748678982465123355865746473501463437623838607199665458540332753522954987368514807031749353532194025680206167033361549813255166637200451453754015729365283306929583256738633240947612462617446733428793711913457190581714707569578269041146663837699835974641190627247585287522782112350526720818683696836222328872806357619909505694086508825123651444563576656582483936788460848190884316342165319850493376364919697598538342069268587060350663028533095222813925676427469446614253514957266942818807369547462296692208022243044673897722044393507401732794154186777545254255239961385510362134564899371659045158025618392901852771432643526177107139423202535657909368630333512041079470685428145419709808062722048668302782705234919836840122267496378395001972434617388687489810902110513406509373038928476436502883701274661312701216880562446117534085519280836637957619292967159638681737901632188430607165264960989285268603644996014493359757553973619802474383637755960400960380407875453536156132598506572077415492804761202028957673694482539470782197154169001685346703744817252983510744908630708224822929698112159961658761356375762490790958974945317117231457897899282428915820809261737153314766403404204173121403190022257907212378743837694400343881040576217184034413234591993837828512303692061498465805924955954482261272356488503398555057567763359465923882855710516166995597864440737147108714623840056288363874786866462112517969041566943601177827578411831666071405358500841849847758968868763673955558735479595642645758362043396253323494518126957876792542642363269885036985577930027351160134562493934877783141387445488440053963987004385214863793449562580942330641842054038238040372735424647764842755622395773310409375457251303204335269273712572799887144686241185706940623405901910850007663692041387002728620436355395975352408688475223460337790176985478771739425589173269849150821473822579341283426063319723347413031183840635809493185108340863512327418608212126228583361184005063264647117005627538352862494795855658217293214664418623566169842937368483832671940532281659902354431240807076869592883490244689708053745752936773460469657922668861507573101265720774919601695090195720502825275674129229130368018155873636888476934474983348935216951719074672981382100325467190099314935473642246560211036862731463379711748856673357651035994518072832075223340496375236736152542818736604639435825589523217205071491730431522492563553562416926820482759975793267115279630220288417734515489251723438721865105259835695029857778846480083555510027337845542368689698453039743189161070123059881478856125436596733233657367885084104712114163226079665574755376529039686134199570621101384029675942471841791594086284211990513022295496300957588380752280662373900915048286914805619286564727745492613247671292010496047136879127767453150664270306709355471853020806750569284890579505985502012115299295077484091769664237497443046925647235902450521647596523245521702034713868681094360375773707716449848292038052722285248104031631933691435677180966946349892327543128548500519294463487650756569645354490424158051590283454327602785685449446394403680794937625045371589022732914326295257145240234998983418302155338434933590344740828555653973343761561448268771473775349929589148367840916468400406104845083277512686131980518857515790152418599097988861013811794171701411918946149591249292769781223686447150353482504071951363805699563291471822723936004283664808272548990248332223450886185811916668428007728312899581119982175180977601042428095331864850973627048901878066432460290927693841769977767034631914858539387781195192578573304420699769026413435318291961828911650527563268929440206139826443107971864819794451514821813730216500509652441729001555859149071222462015725428698801479691674004100769312412604023865594925586752005147582342514992198088028806790327173264825115641455612587212039661932256779780623010859601597118607380795769260929913511244573156215279872938220624356809670794184877220238209854124684836710274916517076870552975092687391402489102496084267699723158313654505858290075914523547619282490549915418419046944949686475191355748830660857691313728080151990480241979292442413564937823990964227939206616274208797028609802108869576599219841218825542630740815493161512544229736381106745215229318339608538252997167337061762187945280026592404859021412541317873692146727927513633534620476162350921711560328803638783453954648569483901983736236831707510231922459353313038711644914970680531548828359236424742762405037163273187781978719935314138469000517945157967833995248861726389510067101387107921969549602639693784796816006735354298872157726671358110014419618081973932885702421604185972409331658144978816892214646175839822879027034108783450754559757673619633524513792705435554541050005458989729930080241272944646534786580804037836911758363161707816034367350588658777137584133740757222069093166243778796501688462337588649618185670046713280075116707040937604427778489443116470067569131755228976537853162750117667658761061184113564882530809783211506220009235283288346650168347608021576066806998199184563622865331424942014976540546062778486642836831290009499727947109643569793775161372621884380506209425211449967294166382035835826173289189736559125032004373386030243717207411794125068522022547123825181778894919418952954845981197355365637331658219536664153763494445235506760659626168198679723838505756011289523011537001365054487298363592236140984908833719048373634884909122638494472514492332963810302745783796085787959856342360221499993633979294930464072414697938438851659755899851566108031908547639772814159726198799541726116385624636938674342390330029628224069284970648025582717065721381277210659982845205665566409903939655116677632044760718278080515936479054843255604307036696492610187520850851311345476232628719761891477118560965440396423143178357140475156707378039634527858073794990710615858320286900037089984000603291971844732337314887983451119763671104225138660945720461517802498847468993090451836807421136596812675548650775258128116587722877895838201735567502262061057511987493881087049404973862699164384262006839006830296706575440950598064429623513515651709322763391919377727830508608805210547561513732179542950849909429564767026744214466430640281405227952075089250117042842980774278981319509677545458677954853919839182460377901672049232359250388675328448346953331093255215553121322572377996041098289813702652971884974473143395755770922062620664164152995949503347245240365380566959004170096455844108634709144565400076490289790460323279016103660908873678007058434434023203081881895081340791317761336980890714147680776639705119445962202334682854942653249629038342248468520542650343222320870147606253595062980081537263011379036642662518128846712545037187851587670633891502115548575036239049573817423749643710236165073489179102563491837543778405271698803695401755190039297516590666172768280737189747287152161190820684431235400654902392080409591067442965748469983582553308937047348294577368147189498506824405597239221861599040813356654158300267985570368159099663066681769385587159384822332327197299562572622345983637577171802325616803311979977845527406512802005370969537506732812238617760359205216124827394671076288836979481747022794684647620805903990505134531065644251574055053889508866533839881416080607061462116574552549854189140063130134003165297066112033002433937453188544360597969342012944080184566869870769294138673851432696073540198249122669463959738258957282508023198931978791047353919287949840272378896234854709603083661696691898023716337349572634964257709081221592390866154613820378514851438164285740501814039603032976155296273711479908227828003710625458488776854481358241281117624086502478827038681956658853736379993052420401920094831854136482620727945980192741685875957016158926245099668230118584987424174373408012397013882551714843109249289523652004571206531100613041775640262318266119481942000628818148635533343632090966723818844369595522993854148503608818157613425902213417633123308511099390632511427360613619245278354394251856764668919956511801875560878246815382788460026911521645137960766578731102776772226766094938354094920560417281283518182252539475455677675557003136000958244157844967293798138341121563912194016642616217830513259805569822399467656737754110936741066801874426506002925822806150272070332248246890676407374575778384823370493207125368181977768992971099193004775169695613260503230890620073564184047604980789148783297311909105993188485830224956688054361764194566077572722483991565290427789097594575539151991952097520945755450083197769932890859689123531608161923620989708601723103597498534212495447159554610119682157295923472135993622421228487283954985372518542278525504734170134547926854011232798184416457624286885346987300460599851117745892518257079133124269370636852192263384213128012765525799081016465309349596612686555818459168340987160268532853980371438380907431830914609678642760750260439370991274047066021425165660148035834888877858221558558187071872658856329956622748327253422045191385942196655887060454912639018529936936039404251693939882490040298238697977930573881605043628514103886791628661963854497955158448612228493466714116560148449203423652667173579404189550885473253955106071527987588039926535435932834874229818353299608580102882543030243518406851639792994130016454624961375962227767195216769089734275757244887168652220565865576276146651785927133097504460616203787576343932236792140408240962503640188349224673505588407435441683449239327355705756729804590852509832220753121615805252650864166263182970751631074619402813864751037750184368527292941362142272711354177962615106739370350988323128183638406780437765069800950744830479770425926550940016364929320246758582601685820014999281343666577894811306380904356321303868555068460897280898910063096340113128241497744526272336777929979145369632929122586800847433242931138041270222711123899188539673571482989565074348955180276131259120602356121163431020478179743784895819937809492830941552660076039231144886156668515227876272979234526626615401327893125417126207670081404929593197788783051460387321312497509228236990736367262649034164673398234400109380496247403246162083749675290025257178232813596206582223852877511801527272463136283095637465332931307455980478683760448156556685527525812430274057278181425589609193452509101105870639921495397900522633841203630306886356166755589698884600044356790083439858674363122561450003125221667751227530659258756990562731829025147741827788158467687679417420412758256641956383784351439287857669885849530899288712500304586555787361109663720103063364260716817812303769151198182320216381722591559362230186147557921694352759908125238341934180040964587762257574379735636368276360144678378202087223513961130318514809859712792745880470450854347795264499613569478769244322906374533573158727601951935665931627793418969883594288896751541923384590526245473995182958476494278703758881626248324685131372931773968207407914199901934294906803683679195182232183614695501108329994884348434644198097625013532632428534219987986108919310295471915954071787860083845000651354459103715133584264165547123708890117763908476529426993923545526643583714041979799614668987652655309716233404035554388825770129690095230235869564246141919648148332168834433172532157842588198602254119982928986422637296861856867070350266675726624972514556829417547654267754344752390802248037870021300764735260919508998105344206941242963339569337199329911929327198465565107642662591529186512805302633460859190342317162000504590266021945448227262667723049015655693585558153778321065034516303308666447296824162905042678686198644898236451599675311340741266488185260814815420385390156719745620296217599887269573917674393549653271774216454956921581272104460152389447179379976247246300025338445511730690260034883420725763869142398824745026640946777552903400008531866472805084880497461960647174652545645598178891687236997902551925514701552440632781836610648815223399776741270907126578547716824421604311566764174399968438993147435365875265127836603845063499697246064113262470315876742489480865602586816999137565831842970941628606137962712828217848670765320914211192062387637583579382155162374266237341374999949549381858596052939580073389635825264882589877755617035764232148687489843722442142530935053821691656168797985434099736540810117049448596010771292694303313363571866354754516218541897866973076622072678602343482768786790133677990189591948619309536037725604514668436894696910728791095982901262675162824753165800444959175419146079772264140029945789360353140529379443338097942458356126718185098950217439823414267282503583024186114709040006159774404984440251931208277127408191391403842792858736032733374311166116207836000584003587003208002711529288524936774062708744479213516588036096732391845058829713194102035416211040354342901912649677705092280802515821422915774652745908031115248535089381367202425206328538318541284184699106098697871941368479220280847748598888031527103447822250677633186792405969148760368779426865176095028775782016043267940259679771112488571129465248869860218599162401249851463764932010526498595849189269158725803523646814598706274309873398532790475117507508951467194875692697723704946649713403577181681214412793947248022238019406097080089726763450234734754524154276719804825051785732773743905738118015053589651616880922050642309576636942542217076517558306045768358084702631809305602965739692982176282640183965597910164684618436606699111163716597492880598308903633618923931760385671647689708517745781325927971167831726115839777550274211995068711278249361340137034844583265938907854698365465676897408963761480273894858845353429393215908869044579143514964956797268866250752888807865231059033928641952893469093352975407756022614128491193969719542291811971396555643145931731548360618241414204468391153875829622199775602173639643718295365836688647076355755981749210152432928681470994028600447198216057415353129988893912426706741616113003015962127832872382201517962011241643811949538110011124658468031450237231635783027478892270081336422251949546396929510936743063969211542799766025711276539530577818714391211374074887981164280324328429470133077527009103308958924059298937027763313559906668623584979404743258352536505516768958885401864111716246817181864904758661102019103098889761931018608322180592995435437668429534767241426098641814455249699557964433932227733276888355002586834578476350090154833088977045055566916279202453350270203073190763976782847587976901429685845097204730699897054997824424341994724225192137377953715476523215277530957437961996436614827741135842601263394221242083516884478658681065535046298880027674295126396326047458281804898681320079687583361200217970520324697473696112912958504008069498147483406151725857177329946520677805223671656298950285382864794238595953961467935841586726075046821947309500594013445772600610405596540169453872337849620447750898206823247510980119582068691436499448196466172638745724470215964514108586812380582495074473117459449907763220380247455139629557060359330674918166182398683618052936102500332012396709896865910048539399994823673925776568179107312412533682513311583368301711992934140701126268272910992946380573239369519966455647279739303865149966569125279411969323044740441761675860538973299780134126350138486548805385295138232714244668754006892818075732219992324684144586048498969071209893611493016103102838081477340138982200284463031251754774966198373668384238472694557652675395198059744903796408670449586196041755541281718346628304297653684933138925150690432395153592104420349903535906104413052591904840330855315033496221654751744157600992304273590164980818140623298229592597853510139400576577821095772673657891890886198619665067913864370711585413745069231189059998288430570892698568320491083173378749524407406398200282715503339991120510846576056547654395686817232730461519867500586830761512379630513370545078962232785005992331742669055117281125924964648528272606410931255999595566696009567464712369014474804616759880400208777591265258918734444336558006395881525958120678691888400359402255101509725882296268944637829660731132569964764544869433229499510240768225343609490472112697798931318608379380420078739611735593640962071449047035264917300532354743896104825052551193843963999310867395918125896217387802034116612964457559844720528543364378817417762025011486735380212774931872969057523117874908452926241906796569226463100207195370013297395291443251202058078287015428653697939746290058438627587367848084510836150697837023564955043111029017676228529611555056464754282828621176510509243745483414517407146450233721509951959315265512280524117223802994242101856247752453384769362305414700824541478569220542869947696884676172306814886124476099428227264786256813970183862732414804042360980814176027168138291135576304569377072030158279757911351934709225164872276504916754361099012222564899034171687146489852932910651756219313387348260450665091069798437939002196638608725790872123399369816453538574586288824837444285727913421042845281373692958977164002840015724270777028309861696543802223821450514081804379132455855630881875462640666959593357689542570745995890503619999780714493083551183678633136257885250887532780779565673035201570931572428906049479528378371332152958525948874313233367646872334325106240024494925365786013368184768991741572354794152071709354839223268511454126267571429802731746372341460782544067565861932156965571262855822037549965811455374805913017500350903075398021685032251095047650552503674042338858028184036304870441625491614174652695605122727216765958814765828924895721008742667640761617607030976303284003594224033118613149608521689144881494793245171014235238945896752636505428918657904941629852217736852160005977056392306586797088212057245257355604689030218642742074490170693054813488979832711279908567509430147780912377728883870519891206540280748387328028788168761301220015580336016879901705925507906939936050844683461738170350867445779124336777745324413974558932995446197688063901509649847333494081299905093967168979753438222983353028786437525109927811696560400642182196792957623035316717084265072160889855595737179997756897821221438865293413662072762859266620866609472376158427444419798909711633353940831842866219057414828171486217355158370136918413263693908269299762752350010202572248251051617760345291166664164238796787051671414153440474422865980531186930103074195162697282311106010388258256325167136726487946344349184094705523587073714269817150036765415121318764186021439322119231659671417702707554719182758864290401292921258735421650041911602592113060522436737903698164223436922154313071837582425232987299212593374320136928355048916636900446391256613193379940948249353316256183669375668525187362189816859335880555413751765050673864130967493458622218880129122320779608366453491430152293384933725414267260261609894945318937580063763511169913216219242272727382033716476370888870817463712781683226887722476947795095472250942319386065550807675999423047103060630324643062151539654816984299770802842638064381783778950557127027248890503114835734200303275385897817101505631585825468538192142562153145280428022500398159789045165374242763207315669796538098731787091174929082343406912447330772911113319784412771540741523629994488712517570904212632887749651621645853871362170519223992190910415554313957727232384525353229436196988565653741068257629654614041375793618708316368915441581872521425392955105581802078770369454963978842506641858841813288212364437369388747457910555032694445569334824291161615399625502861052206505149934894961599206677207455249438678788826399612604501344801132078373728305755254955123713851594512435079302885130061186290642305607408930540133612898127590498632686937826560207816736194959389595345413798641902199719533352667737771264538004739646719780403782148852304245082345627533479910806547061051109708717380830363713051733858999107826579464251056458325828090984384116630264731771597699180613403096831360920450492651559121082699298626520494196060533758891394261268309201225264145278787882496809807623553512496213934450970668719145537154516244580385752655831104904424247613279720583406250045946118590804161880877173391170244202806589790198642315396262083601903662432347593115259692580917756076522725227608218052338185610054721843130586553911106433502888866875066845541563795236006610775164281501552078185904485353141793261692219786209855360895611707716025343168009796711416180139606640482905457465213762845891304844627595213104662151599410301143644797685943759322218642702305038990268366491300855925799605782269867719487107242167550652272738631667903805510557912007721748612109485759410777447486778813829715862328050381570988157189590174081216885553017210470421120919425563810497069438452340006568271378689644278263506720265627705489833314741800859362833518330402423092723497208641403578571921728116079903497315884763911952359397290258024640946118441698994731116141178319030332477590810623170187654166075214410569745683608491059276214181257012524674916788897731011860602313606675733032207424239337913846431634081878194176690853834603960275410625013058331295234671027621754619223872039133837618366932082862066096128010743557161242738535904847655482979804022275796938163780415468529392757971380967027829561901454044889320531165970921473400630728693471547465105559210108849113690900849584395459707916282900925961573259926360872085607377346844239433013334561302645821914866242899070071422969168819029292629374912278704562083004047772389314145717974981090127157201493892301761957299790332119344621383852051016315919559040358686855965262295888276132905074027035853834875907659191427707915257290817389400172682972210802675081527540395096505695934339866866982178543906303739425580129854775293824867585590927552213178822920313680578836820205476242953196937008056515329893373030614124635169067465470394346579335523227190723920043034453595530045854073241912931210654256605976005589023310432167191696893246016925287499627033165611176856984329719395824908399963774229448716689362468905980818870226264063916233053855661920359506640297523311776688759539205269524558817892688366502740116652967067858590915493788062360203247564505025609099165151183510672309970772302870796311655738247399497052440564774670262158392447673810508027053325561797915257930944658075677674827340101930431343266361862176040149991495920468464176131632521880171006061544318048729342502113570142724613877309217948230459669165400730184818216855995125748436056219712114749264507968719680755929293782966273752554421121878072230203956503607601326323593958440513618744508408423330040717736727908769107008094194467722586250098143635118278298835158022828323359435927219916126167697697901829023855521194738581900086748510901392921728893108625719780646839273806438379363634518300000127576350448911638061144694622841799900253567855835718160945385961349748753390749259711319842474956017378704361589217235068052710328481087188650456478217066308704928890356734128776290219345794795283142782859927338289733044579725071352276142692028759132076534660643829919707366784734898584551266701381284554478357552036333633924454012048572201781741538381764092596293092690992687685401732378603089979870212429014449341304623734447861038488003846908036975302022744584821487794727121929982922601098244913695375732389062589238597570925533700957702665085827521109834328732841934535625528478191885493015203217387272542345467886081471481350621579991588594595712464028522736773070736640572772281856369617610854905439218760648287721441033711756362196210142053409509310440896561758975660524944170036097396540528007976533132971978690438608685707082789553421140615773323723120834903443216109971677873377954218191064092815819539986946714887456290558054208491033558034802998327165651818633263315182810953073593877413323246963336294098203194332973535825154797815731713928405083402192999580524242717707016139544890202888827059725531969746793645156242207404636406113907710748611288967111282146961362443069589840433016229007734249314773768843644837760271899242915936832703179577322496258626740210298140322108896040837707836952017734581232189952765142377356475122486837025904638439921367939291371178676430282966184581262926821335396258860085235506067941158295402770899099211985619230625161599642015281217408017429152067850109558493702046442930386879645431951928094308526238766265603251398641407432487118136359393123566220107085619425242488661788088300199649764438325038373708854492504573006478321553495272171095006973154455577726203881858443802012314657615999048212990395312232215041110106761992711507735672430266893152835437630068752317620815284107571376895959734510302074180065345385611152679892563459754746084534451980520460731366568093053110657153582404571310158010427476192182641124563216019975674662736824077722208672331096777684569835012026478656859329595716288008925533991083694949427089574937942499584220086616437975476717612526044283909434475102534028388284098279645904375016874933250993713161297853055046432359984796070409996866152880410201530673714259799587154584930962301120396109963157135587216444708351891421166051532180394442735724385346536567013573948801153694785906932844017976247026518710663898978681651690403009017545942084995266543921266966505893684123258032251578820752892965078086964380926646644084434967604991311107922542707327944158020405576249233732780215154978130946988805499375866317417716106238431633906552599507574295356177379269391274008779363694889997089183272477433820299125246336829944702166359978182404923743003559976212315694934298974637489847359392388294128054683392255539303414670972528694855052822886005877220853189487884264451194965559871285360922835208750348887356750079517590180671229098227339173759686885324378453304309112932497613716619950113033318647875977391786081481719629530885287008686612440332847349348383560421277721519732465331259468363701281942765400367814989431605769025655294361660692668867768617438094468699094089898132126064005620018974810280476322071300545843247528586086190928161220400656449003960162583725603385699297092736733493285466447369170827105080970858447616457458458747291608740351792287611632630536147888577244984286667081067431182157717787939679291514998170670013266336781002766813554277313980082056056618697243125560848337715565403054047820127699029969622708538622974689474349669304280769379164258658130589438673148489878313392891231798843045776007987017464979032592917171833262183343280043751451480144146734481636927529067400838667144605754444185169097761772930126155100110856056038495112119378361228072662799076367810010364790431157483038849390712234158360696850979203350750162390554837188781456940714486947734337167358337571695113746200004121480356972088655726201876918586437092678498133874179981101312210629348007670983746952144054419353171711428534942053817125699476758861393234900187686371661486861883751301730271555185935464249050071617347096386502440784092088502149514907231559721158229584380791077473767514637482394908560528373957625149221204173529426715169030100374001105167779744498286774293796731036211533937093798667235380398455752955415357674331993561837730182312452987609535648956030689913427039622493085719458686593025933167684121168295644193314817391007035062783625987346965590447099952331530857424377190789307609770232205050765850528319981364554759903941884819800732732088594432452044092081134626263489904256588816324108774053028897699872108508511915722711996851461249307389653201323985168879920965459352857706705258742743051682995543095240756748317420806949216530281336819934975397458058637172984600489677052926404135930260107381197196406663292963099120069472152486057999220569271845281016050545650797685119061915379522645827634704404495818597305407091012664571152535897744098081525149310515669309979534292575645382648662791059585425890724740818771981902801755954831398985698458570132953914095850309495199381599958451948895082618029897010928634635389177118777125717928792642654468897127632939802446926368747855948548937317586982054481198116442459075203847878264487556340797714357133624697282597366420826764647114009007485403733644301341574161748399175859570206494426569303429540984041983098809354265536544403696146335047941372752769443104523324299943186293147739024630981047257208103908175269600829546237154345183367980263017802923649101105208813568088832496851805875952963551202054915334182137089481349116283932790187730896250226162132439174648705538083140074849873196229024953109839763095433647783060706009879533764098018951717178182232299678172278826804568326782154635373366299800864267889923026930925645254845000567875583770505177368954021169277086028236167753513066906107909288428836917132642602051341751492825879067009091874888430829732285760301161954494715297359109896135177789011959403215576850283618482952433628273086941982524570216270943282010921116447633740655685608005207001710262681931347702666083606248763851166025098958402629626000001529653988149066174153147937066428328674490743944819905099240346701567489114720768763113901795986418258493059609743128032499443334778710649912886939576815754781037499518630904431105892440346372656005516906461200315672926919409731565759641411860166038549292448759411931755624449986586203883054454212356684523962802371619716721695060969063179888953436046506951444908072068175434852453058116137708908991981444698455708665163859654706602585042477529330875665743294404483946637508394972693062662379368605424741162428945627283721791389074849919700880701633298753494099192319788987501101594949468442013901577723887868710933240187243831996824475799862881262965396458211930726545884188281528198986277365166348158767532880169906673766419912459712299991283136940631533378181641103235221620308056007941967954507606466907865865887502227141746307978927698912439096727438623285221102830094240683834443794847592989880640354133473409229195919411788997011893286753188528443596238688996987708989876683761966598726801004990395197671308097529573026063384564251875713017609732039435168691191312932630154899020423262135834660663380851239807946958665842075444810051690027562215232061768018182152884788763394844266973530638071348504512327043188819859215034568999482307017637650221025960507705370886160725484011164052705946681047526320653851659414669386456706474346354656401204203877084878287969370981857337924927033081403089749535541752109476048367901960696835610658508244542402443800439005429782277984129416278528532944894485057010250024203371719993007708203454099552604399412879390067716958730089170212753532452350756741058336575133572977624484447103797490418249615998892262922177712513547268327104239538432542302363703050517818254188187016258671822712322060641198312746851815228428643052170160203955390113524337917553729039695394765648302300726698334525749923698946749714380721264797196984574383238384596160786226524680355653646770023874295050875002074932035258747299204796449952648466643778149114511842230195381882316877677630925462271405599318415080393571673042296702979415322783700219380942852035396568991597500130750340914077032132201541965217919136558922841319778078671838667165236278225340567500294397319887642877490521049107490496211064332951859618089584431087068434367887910224462868069032527232140663734447427705271634309247242229189710624113200747155602556243131997646742190241733521801639088946974994112162890189073845582702237147647998586865139015837632359566022845638985361095154502799511494458886412244695128634934516226729195210726409830672757548944994689951592043784311363792278628679870475527541865448175391254889117919142069396517930662955208245486875867129246634403168765052451785195027936356903398698320097978428618842794814637403132767113048454743956716650474500856739081907961435025751185721874415710113689233137738735888741802896283269300600823199976712601250865862929965604858237181196956144953429297881624307394073142812194595574752337602859691805570246140472915734461389429037184487162221634884729335200581234172614687423580229774112998508939738825245390095945905059188697929378007097986790459092218389615159586413383043685393202167442216075339484926764763494782770755357844407857529100513033153454821696121759359511044839857200264875831914177505441791914361913095698462448829474994655672593415858709915700209209965957469481726694070964262707526023049182051263293753785562089310848796671758208778900321951690746298022534468833084509488844505136255490585844744218921493478862350876291514776330094901876916626976079838773425329508466090727582831708678172416978445632736476924355071390873883451921646391770771846066927751931407486147304649757487520138596068537397304648441842083740693047925190496689762018025363309898679456814846169381646868092098355233750007744645794144513891778324677679406349211398749080525580481188056458115548790376064806427948883419459624007566155493664172263685475039791604861315237862165025106618549704748939912694252552314364995625945699794893424890108667738738196669659897867028093866133985196374085399888786582215548782158421805889367292049086667305435603098736991288540346643940708428676692314295365728554328870746429613287659641092527098547547467708767393868580958879366124039681566472698184801142087743461556046850709540998780423667508464026976404532875535800711261351178565101517211085445072529976692639823932659046372915696405641773056626188726671208636911374342025610986606164437261392231675609879903302694012925751593361969143357028951716617796325909457765792511669643900510655909834160071164034060977393210320832135218691879604474408246656435882829247665496235330660759762331772989450668223129562579535967908603497910022775881481731403139990251736916604219460224936895692061346220365432867619778217510185457828439536599441282086524718606922648650991243980521034446816824375518658841826922884598785947014653885386400096646688294047506841297071538706723325518385806281383772068469004221844959385386913641479287706919485731666098974982023996313820258247458001790528043755930812691996413872503016083684720183079740393337779025682269883063938158933111678086419911588508531328625061722966206502133174404210319029027604760229310595780289429429127738637530284527574117802839742331367361432744249834798748505724539699341270184069313357764011902922123294856390876955904800595154764444670551941996299167535461000482878510878255030810330069705237591210185787180434759061572783544439617467688153295388568363419855973466780154904521213322816365691172779965118614990298521036470506509451607881762776228931138132316746733610982543742953507708706861424501214288251037573579283426275828383110884286868543142132807034207454117154159694762093263038259610505124907405699491000951570497579664766104600666577683066892878464307037743166459415355551388808542758006508427067844363152390744138620630498650868960741658749709941581546446947063258183156263641565184932481101025921089163089071840016657792955383230071967010041130011713375153229344988617335415067351069417008794792534707396722247212467435159605001413947842639533266726171292981442201035091092408880465377791937695464662553362404592595765922125877163535238735219461116784941012117251950846571850087416472638568554077045078495949321901610328262413909969578639453059728107479534413053407203155309621335265944864504552306879886630778581748361411802900733355405777410502804125928323414938065453427893353152150088617982310127503291897559614931680876218290596234180516697391440126587672565614118149088951836194923536856185690366523538748506971080893137858426788815438461923646317065393020241376875146313581716754103618421262674442165563207324168672009015710981288942148914006648154100539080454267389117690770687850432149620791474760746369594931620887494157184542622772164790277401771354914127013445642136901271103516573267853567721200698133615148386828861545576634394300016774951152323360540649191490642211920146105080359108639920454028273983333037844443263238005374960930263385836415133920675573920665687099189625869335812633772711297963437418017628534445212540288582886843246723974163608147083896577054684760205035393564338831325554093823457545207648097586049838699416241323230298056216361168421144492289084626649394861840737324467068956177047833481589965964169556173625871873994696965120617941678615677887258025649291905939882074209237354676371106174178453638752873144598861048581144972562666510580432595499029764424135371867320555442677166466155835025897038079239331400535517225119775619616089137486071959087499753030433728971972975217397956829610100939803548054562218804650419977516023412850380610332900607208791706054766910939750960706295055893692823008950753459911373708948456365894643960206940586103078769342663652279860108846001883091891165167821881680366958471854532299671658430516811140395645787332250714675079910849525582300285136404374461486947578153829648606747336047132076457062175051156785427670204783900547869263832420899473984923949726431432674538707621521202695320222577586977815907923785736824854072168640676673746525851946641626153718097535531045428456768343804935253653665619350248764495971495461779627355331124972786819635936930328950355044641885740976298291492652942401322470455908357615756333503150894215865097431399147435450069567232984505903582243983438811506667304429469969735947159935529763125690679515745889526545332836468057627062610840510126050143338240112652913422391808944140107778895912965804370686121536870441129387110460450769931450416718715429244206574266144878717239049568003140933447171219922012782151766892558294643423684811424209888111571109449247734686740558728269296280417134533303250589637188612616029319476188186557008859523378661426190853615614053311801371554559933534404617058615980409507239334303119224905800944851320440537000146440477423323791228312408679896213184311950341666322453181155918762519203582629019301627321092599968787412697645417241374487171218357474116528275671731209003013753022802593451669013139823310340533627179744222392016397786052676980531784837084344233216080441771276221996397922637143547882318082283079075144580540071464551732624315902043616307198261051307727462567959650396108534125193166766055348884310648265895320103735078625837471701018091016157637483503992889265959123668968437378683044883342250886690481743395966290596458455206581872658941560669724835797872441619441968527317674049852998254322524397718027250733336190622016171784390941872867527265232866369075191310648396798891605737780334063627624135770605173452649217281754480786985455782724349364711896096761986990818829546215019101731667204771256076226460465750315560259006731397133256350289643337355515379652864762070556166082298464763538753580583569546591336026083081973205587394705819712717614304610244070833997577195617918119768772273198654455632110490449061859527891174459604645070431877814642860083808853259357940038607617084297996519558439881145873059165159517078440318084286957306997140822767723840698798690452108104466098557902404193548238748717492709125992619714467014817611357181889257007686618611730357277638886229567687757056059624383359279066311753555504820179113991842778444531157677194090337679175596687231214842963829483104570804316094424980258372418863743627331638282947390260859674585376729605158173758045969125999438537146311715830333082283961503375389029123301902652941927943793222546688294509341338605669413265414125633398158346027506271825139728265356307438043761466041373961468446645982587058990439225413952211227314936938329548354144972234172676341517194504557608603629288968059855326091869461039847181904848077599514100255750087509384703424119401120865019719907679359607730290509294753713080007357453224691933606933965054773173590849350458433874624981767026387585364484351291399015388791611295319259233490145037465559990533884229118985718599644780769658189759189662357852206947621770567816019195783451695916853137706563375616393262132651383025012422654434897750838080966253661266688532296687610598348097815959911892551409321003977220600751153462605559009548145578533843512942048878606615698120175082751127632550008531465098587101223234608567438114386775780041048318274360417724434317738681212318873573128325964084278902253624083912503879194004434948610751777035716993150675468703793129390552985274446626731630376863818363434984822636192384311211365715953086317783121003862821218241962859534072738384871905469821446238581651055222905192970068588519389786832254149239314382701622453013136118023638802643122057981765231334594075411618477768884959998001026486525019436494563547716435205078402286315097954406449580134050076920024383552120328183976504814218588731893193966630800474638876577442426752619684525100549295021390895736610698032448316880395626623497367752736484169332751720987914438867758843148081166622409059109266116387773939798158035429904233342942477918790924858223777737101482703879606261503460911256716029527780132734033950471510847643001836450217255541989126335861219566994959886622749764338904623003385430917933761896116621748814784102900766338150776649883793760075194408716928501281709307278745321253005077061523894650114246913219784947523236701718660951234674237182484373579616082692112889036027301435113363366484097754069044120328409872698391447036896688570072017218276182891769971004763017794668334626626547260100060450499676605222931275553135869153705300189897543438555217976827359157431596824986061519438597984577536482959385332267056587149407162922540233526132204839757811816220529172655243627406457155650271348935851551463437776780939287220656459301553542563617749869659279317389160977659751696612229386336932729110406188957551213058170371242030397823013533020536978929954550309521426946783209295256011911882033345799208307954604156827014113836825489585074636148849754241860260083028884949571723451265004443100952861406306958194899316335593849271872032281875785139380645524335715273720262442613457617089104221654251012441476988413230377056981627633949085762568686076714890880884300688829383810163465873075360397678726600063891525883549028225864435250001101389314939639824555451061532496692875543244206749411696222556171958840512172641650106045487366202818845482305834181790547968475413952476592728279943491375703100285765727221306028441913667945857883590261741300783840617342029054308738833047570842206943097469816490402726199098217175855594223368021248544844278060216716773515096064962204380284425448849495545117392327743621924303439357764352014404742041005377425205847654256723336411507604634206047786446403727375948473459702800459574189261406919145510334970953136352386787168811884574237985188743153543125736940929449187207920947859856092862661408823130093553373430888117076015922646112041217168681706565116451735192176570747909123537466498899990552609134122901937094322177101892648656662024741443064764083356970038618607555970932577750904595127628624984273499349465240931550179024933330457445758203892041892195443629464899806304690218836512539430242049534207726398212334420026405249551495152919765141821871644567416250588075918678917450922055099433696950024138836239144065722736874015463785552071696118911416559928226616161042771329900838316539937595419244844871945367489152317634515800362692048198550653525503281343406326227450311421844934896150827273253981882907225536806594689770651964722732412906956623363203034548635632207148711656571818431228154262879727225313330440037156569770528422208305800927023441498748769817444821253848878997173306524022404515153785242609917257252350025969419224722905418450795431586883946467552208093243670536722234498912875999645372428576564486975542110100131792409792718235442189632246579240199774726920558078877925087290593308633378338011067703606136221796461169340988061664469293671235126855272429380742797193871985588871779808586228454379099992858201997587554697626152967548517614430671169657177260609964981314913313427528001015602727423481695812211136423463064559989092559762581470739733768180033974187940205975935907735592192895414921808261334220334701874724066143745279208704861268924449039256010051267762127944017090717896613673014398438701665249313756629528489114629047549358785583941491375511095318569133639397007489235819734509659962210743369048867241956235848891784873257144574127704615640739512083557221517609038139704908651906371040435721944485366563195193192476482726806860565259859644703505087043378693319144227755020279135948215307246401756106397291228663382867594926535489116382264505817825725940704929810730925674863789430033966956473150147202043983980958511826698905241816579877102246350057986372238908247823729811656579592744885622080461253367765894090927776420214754657784744460629138275658181402469586705354645490370601604144246989857663382453939624963803289992487123719127640132506945089443711436548644357518886085873064675756265688590283954636507570872340264602414523094436190845739089949815990701836424947172178699663764007977663588446705022773574081233550301865716062216516771118560942757322731781860893032606496130769238556539760333964565696071351472080253862865926030831662520322888996346246467904727085193007992504575773915833817639113864490561766446067546294500322601597238138633180627421208283247354278917920404122336642134890214396674880040078651299031744654174391956531278635916616693863232553144795587074652415492438174185802091158778801624909967333946486860483280095795537783139358710979522487656133421125675202463169747711790436709248141075481195042765682269031392274732504240642332183554417559287854103590568730569802766795797562735051219252636136387627222591959636045243710128415573516684576276507473362858551489889078225081380771054912102024918109986475184244979879609275064988140359694375001972846703452082861087511330629606554221129181033707663919482029244730108114035242924923033092864791719387794737068279226632930953585772733012833116555519885189594120332241248135597176229082535906448348347214407319837624437112361564176780603417950175778852047159695154907623617152366366742987047916658893758945239178936302803673639126332517918995512692071551123105825154706481558684225004536617068082513252700456499607139477491699007103401274419100841443290533281801032682742039759336136516102360404366386474284597270959194089321803973099351262319046471269030845048792537313615281930538953141519608105382569514901287614193059784839897391322338119785123509295803911677630127918258297019798271518212737078214508536051344546601360927078219649237481572138087822611594977828977746268741584280229706525241256446719177416075737756641519796016414130130611636649584082926461915593579269009384593268976912844518480963126942160167152585293345909222836195132511800301277604174266316364192066250496704333977538525341728679356532646971525845507747082885598811780407550181402580657439146169873296794014960354016139251591590003926282051353519876308516564528848983757697838306053521554077777322655486289660860899245033610789240686025011065645110452683598701334246356268604110811038268132573352805780083450771845668406267860836556328560742396807598566037293642691721678451895758186394068814305818905783714370360647222209576535021912807240925425125993983489063916752945224963725991121074358580707623439609557080745892011509871220820273376468178697893594104904747644686896246197533575558452679416107414572166011296972667471849976541845613247782519728821268125000265211648930200153465837335988786067171034755857043210204324292374598336286632779623234036739575417214155787436124611018306138923972934893009856000746787198167114604158489784925665479729880183517538952246012161085028018620454521824686932373300641278264419886809526619562373407456842369157991697927150254398609608266391439046602041281571672697598581697028426124699005173757164175041156539933383088658943743767496998488404836990215493501650787159717164807621709526678464596056282087691826860426184563046731415334877223665350034667864396796415669404945925734011368077782581712010448962703554381721056409602283487680203301951563396246724273130857496974506814376960453821167390428561606534821148042241321002359842571898534357076990808562408868123758741930170071580853695093277975970641173794730368050253195962383468258775601887419258631952131844497874535116929130497085640115002563444197470095494634412317357547735235726745090950729006155067935571640961339213680928119351943625849387728029033329988919322465993120843606159449592431286174539334501489593820905877583230217263028789978545508168871018300313432317559115777323983563591549214836431956890506164077109827359227722480704472507367197241887042974476879883417666948486423078869258235683017159987820232700813488754395351002816858991313314086531531487231270133872979191140938447393877179408165084422345147391759330267334155258477237107570469202101539227393585753181757120175593197547896301325142059605955594876202708295171094256857527602793605775381212809608800614523736433522666677644527357441479529168781924639158360010992402812108623067790808843485264621656433739730111347792775861644764578825299862585553869310422168794913830235635116114515516720526612433393013148419894718873640162954488854549700685418919628656500429947814035332740129793370556254805291282225842166350812391581913750167848067200751437978970001845519397963372290402388835585460428124396224590789509393051180708077937344710543923637719727816448325631642853853837346693954320916182571882813079162898208988912336196862035910519001940445127198392394770400082886744330823084680842236974975348085217060733304586495127495690980446897279735770303303670747923588517290266483278464438960422523239932916616686798519419117854295673940121519353377075142556863631138715953605538714266375927465528798280502309163110412501060497374558185921296745185710593010964251541594540176000808668036065889265192383999571804837052179225672171762133094822524897796379440134007061938934037098383100759077149474111982776446769706813632145462049156146554817304968695265149750889454201794966998938245820113143649997874002445511017913696337796923600144863754205903015264136531805878646223200342186234795513174794056320007871139223422553397848745072623840315306818482723231429195436465209716005225540091003971271595904559908874657284634980485147884293527228755895617199495371238159534933177935653351678786126378024161103119842302270353340627413281376935338747465523099043630909558455310477839882546229552704599277541007031788494123099847902764788188774003948534416259688475741005201447593274005861359163143093293347037858188582787362481252684259876340574016785018250924671392873709157581242186170323849387121084738975800250177760414542548694112289955474854257433222823277134733830374307517201288848182982350758212787340851896390559562093228066041365598236641723619276667023577991498479695479367270133306033211024055605599124508378941515892410752433270787711258303686338800441016058999209041182653004876188588560079688474021559037425447099887374626650086417168030957993673708473644710121878304394430398100181158429432774663306962697959654353170606361425380031091754400411728154527653297237579405429645620271269803885808323491975837669070070120071250780816072582940123560279700925863978048800342930336778623732821483460762922004467019933503248147104080032500007945330741418317938000140787135176687240820335466383848858130717575880830895245530333004149782338269415207245246443837785279758755507237394394048938344328518326001518013559802003418153951650778283786511819835196133580849123595905841334643845324692661987210602831558847142316233332604794866781671676212277520259255287458882832796949844370561984159179728877996173932786960467631250648512497017041551335117185347395617882230506116261375818108258676988219483370113755225703079688172763157164674438375241346827446453560561361518124300631546193783877867909102804156064444031586923497584603971738233005415648859615160970228962916420248857780302519980960557148029523461683624556243269759264402246715317747284605974304752309903777985297323143392280478652784058676406069016493696100761174145851613892282085665057521064400197850748943125026093214869972952101467325074986930150607732666860761065169246622309766347173836789909134663523409859354454381525835292299626400265346999014953239316010793463002719143346188580430412027336380317632194491109370700294721498501028208908049472741170971732964515989924220530698110775613156371630157653915552661615768113657674971209258747661899185098150793811169983939939427262711486841294965598236312725922714068188648976562496207004920839153761608119019647364436497742087705520023688237077101920434140337858005092747499319325560552301752987435013548451822315642265446731542627379610110035686671455050883483365380321388322554011398141242908761749028092934609140904303776015601920520739953456092409804533860585830211727003751948104397206838127317619041028916249978108733045311273193929821585352224493894476561818718096281438382876239434064320388805568580285897125956984644342832472824968837680968518213386565574116013661204441285629496539061342021279786605671407001424308484093163936584274282198191702690796024843148902930714589656192810788451477545699283412926060636347590935038195802583290441518467858543827157972906018613334643140452287519262968929941114680607825868565148077810720450756901632242641686199134783081321063726423892096423112368188642467088821096387897007228108282773632020004679341474708243791205666338323267544764999406505639259728654697464515338860593559276162904285020178380029156500295332354705453423949265790693145968083917737714315855826698808787334832495758278746214875327623762828847145865295354557907144288324142169813035225750987978521550471328694082811826146744698115910008359360717208188500155495660062178633531781116137465162755523728842118881817862870304085978026355526215699425024483302776777241694787173349206915825292246362813769259269792863641284157248421560998458682489293729729009633063131831455679905623682721226066974777784069090851648153525990483246554514129405996712827122173457974219058573657728216052848461783510938477013385678538198964207697151782236152341169151323011749274478637151040823139565476424141072565128599703742580615542438112738639155887809494899712660938013316459336166964709236777064614778810583182769234642208363216645035622530904753666960448449496563745105824204978968331239188794290384575173145754888405313759285255650118772743786745407944981475960973581336223427615433029450590978209335023051907736171289186485442239480379812680613239758982422255386205327078943874597101075875347014913878336569349995471304775506861267645153452719095730268994681828076840860891221511929352958734939208377261614632657455162904756669035819490529031869013984640462901360108321243456758023589296519052558479953736849818040210049174171132390894830947273694975674460922168229577189794186788586683956396422394306065955855929084813703769497156191940647600903597321806311061073224913538639049911020600655882504586653968066925337309892561061612462671643891941795009129220393394568671022055772726261800355550526998347722908101004357829823449266364551440186751829645708184181048958636294483085940921508074126978581142359994515162484380852086129437182625372588359010032330296426484135463042778319029152070145284352979419620649922938223845185939160933749612515408065336715995975610783271085076084980569005587584103771391386650563936790222734722081268927524654791571937683683637064403255126306271622198078181404612429551913030354344732635575565573190730598807348545111612824051061020650356254972982038645340584875657599661089560229610763068327484691017035858508457635470615151765935855529800178666873127612824452862738436778003845321184976171838963846112682137523419010411670410684544837604098390233794646050191252850970389959136165502689689060226657973443775204545942031471047627001695103566766801980122837245085902242191102801547384124778673612362920907241993380326110814859661611625026957373845196375811785251195500401801315394318569661304102606233927276509626124068698337019273108942383360448405664047174392084641682389740264992610738642816418343798953414687686457977936694923328927579130914240064984245678961360110646148712599781434502629612142092021866761317366663482651322917827719435694098797735953941900198182259118010819722662758773080657605192104450490214819694709348384687526772537119219423338197581075033928566859723672796895392029323975787281625746247508904994352040881286937403075701805746936940731949071281821779140051116763446464832647406358324108521891394600525237703157845071444030733830694891660694441393907513179802072250461577787092696369803629694941265895143669947083776756721670812587744578524163183838051504506424428397218371220600641711891477692725085229236673812828781600687712406070314784674791327525148721726368907369786159157111443931511870535359249049612545344508686675666281267707165778038032513768321301415528225430632017149520777087804388606353380816568497211246433277851008311418818014600211349106877877144849279069205331144567522008583315825875444192766065140531663819669203133873282809459619486957346508427374167648848280200546308810695754372202763452074467541668034691290439255097820108229915159159892260689625590640086519948578673301290662961022724296360462766881795588433255010268890368552319169237491585753414305153378701355206235161586943051418689612413255292768542510426494218500979726090115050869724638723171345759455064967115188346542569431620573375300091207854020001333815940834800398097057329759779382199214886684496076147382446094010960446782069634647159544298862500931033649774307400912446972451648090294508752393337395627578334019161504426398593976214432137470895142180625318172543573032998015790120429798534747553345591221310925260889450455189685539780918512050691538704624025526806837005610918665264609091350546196632662166844034152466505244186370141390984270875371444047464100732193316033181827778994907667003609693124935787484510459155192937263801249808345435867052885508234109452796253934085162433689614471756038026648435214228838276793683234027005852725960997803870944121056329272893762824631883876310000561765696310452792204668468299586146814486055571507802591200770803286244093103451363400575051162855107563610919237400427807897245731030126405788885675853105213743695211639015698849078781194240920833374096498805219856313081969210225819104184176252376622294855108989645714042372490246722930569384639843416105093973973505568357445145657781222986666248558043485583341556714892672572795607859346782731545318232959375907488950092598221777828345458567256623324598909792838353635403027691787798810359716829283329074503983395603168040493409677918514221907918969101379418247480308556306108101360603799770760710567584752439598021514268900499533171354709797284566471678765437578756317286186818754082893995822265322193281279710221976683860727753341574456075025880042355711625084939974725333213481762806507171925080726733987607491244826951363360066085744070209914453186418104033285798616665173906486875970812354762734683060208288629554597841370983983967323993226359766515919059647577688439831285876615362089962009112765269431078273820447350458092218406501441957238691553592275476787731416288167691230868767112644922023478923047523382652397943962371776459641939353401159160296796578977913677952246125395740199576507863543772571150502451003034967692525901535744769610487905581966630579952730146024670554977798755596240652125462366240918037730682695233760336338852100208449806895942646092626736691591018885401915105457020974535370277407505741023912296455241544150321956418788904860546285260433475084935830075541958739913329424200089794362335368911484456863003787993052252232110424104246755808579320890297959171381521867331474267739492767730928584464953311812214893827047115625296316835907755933504236544613411519962142615713976632352842107338175391819423441318155516826065231050948080977648147489172431179014533550764861533274430353063164741706907555429967432148168149991824986370955958695570191249604854007535621118387941685218814379173898673202193283515355321586146866720411197551915322002718769566152179094369840544002103916017567007045946432684068619147659962892014700638781529923061186236803246153777077877490565777118879955820158601532491858898139137803093409322954563101208534415795917160131188800911249339711060886646336343765743423354924561818113875307984529342633698479117864408230484963035619940443610945189917516789759263009470267177665053603387331675099122643971223350189020367290080589154181728794144688842059779225688401911621773503120515630778976022069842482010910779828453841099135420400002771555953592627697574480150959695203618273335445985629999005810261467550178132452916373659189749697062957422818469846719225106687558800352670830656490939357019523864677623896810121048423982840607442968430082976124253890165024905961255701364226628284270500187318980436745833408669635960670772244754682900997228387685979765157122148561497647329566827853533171516631126934873089019133308467943016045516694097509663751445802425168493252103598330481536084802164368684895024159287074864038735065742485355736589151234533081121201470925326917856106378349193935445891898417240655015585726850030063545650752787031673158942220452608371890530215617577689949950190282078246211477548493246622420381675715618007998175061618261784993419893743870889733620688370754887576877573388832443932643906651764584857905790993295758297040233009756865941705577457432621354731566485594967172521822548118094261489058768901129152145351199844494511608093702910779144976596994265994782045349822470745921800542778756719166996378663336130882384021895664108453026765171546911646888398897033458769466081469714819295565878044661836812407190077191067688960101181036273715131939769850069583872175190611615143013953489354381883792104313716589273290695258099683151926921103490766411606949212638587625945033156234603372438300965782366772530415543465008899926904966999256225098118820283292473737760339011756948871672095029064246704158811017366664480120377338584466685094654131558814658225078705614357440079625746912056173496052280382235808562318361447287357342607428602816580146232295074023307487379772976154770916196651607938236677675820542177029228131753913261578153665020262593183112649894533666766445218397274355025546237456130195949387642719990363040449912894650710545708179588416530458172456841323559676181580853676389081132932917603728372594103565703181169575170422446861733924031907559059290417078083493970801976703961964634956586475347235702197018513182795053139174535095328720338338097062567428665983842907667360578194198772466386371035864113513218009063275230295834366494599774391818966972674282509107163892931458846333576833794758841944725453792605441377882946506040827967706117065816984114530440519017160839183334553346015386288392186352206331561539473895562663829542275453195461785250801962949218425925302416668610324464612993536953293173550133521289397386496298990584936878850531161368154572620955087560094232250187823708253593106316904493047165132569834012866185259699133518822368282657929854472190602782677078113799466308235018379341008529190712230555234919542100938696607732729995516555712593487070371677187823910492494159248673879932812175587092322484110077957459942906396981914710429009260479983754674028292702323287694794313530556156517242557905100468755342234696986006973350997111610685488797184103900575292066494484257132765419929158225448798394977483744075881684877102881757017336732169123452209453667520254810998546015999938691936563555228951238176755624074445716665126185945325993472598364110459589233831960108086267212712345345954764421621311780546410255554795990461233114642926632172147871030519483216185163732802978973325551440764625189856293837258369553811192366373959133438266072357982536464375842015862378013091884022841417290348146594853217580231599313240247918771828421685178411903503527165220532213371560641728072145950913687191132899331530643497925237997344484839623770024925663603156452878434029691321963718632064318689166083442709518230316852637401464124345740595393392087433369923984273355972911860183403105950259403618622335049079652833232300387105224744302184465807246192124819339595902320362293939393731248712660320149119316195249805964626385791928433694766750114083946158898459931064402652795566772869100026371775259637118085850962198276926545678548947110650814670057473956810903313214099113486629506166690634393727055109026379481531744105912631472393079506558507499636913124804518055041129240020480192427696128624356136414260008327085752369026263060326939526139548194333034042140988070331262222468873595524392723033279700134373305645787820523234795495290393780828368603262289849272976250524032862105063587524331839467671823302309616475725580759104556748342298052713594115091298036456233372913604007492800580380422058784113176822023770201176375265426280762061808630053826008891972269228985258514071518509323948682799717778393053037573532627543346896757296524919413279285211256644269020383799358597716815033911836018655305678174597634716749166507185432147322414355696967432140460347225253522379615646340952981073194316994528192936962476838684225631681173557854705711125312879356365860071320227951688713497511579920599621219979979776184765296497735907361309087237252007245364302744650631387807812646546400083521630381698585817226660931588799367499332686189584494863184881334018249143756292694918287367602738823060327484047670638464451315294774553424110838314564226422757271101291871911985688901570585323486301074710626929430496239063129982293009639325280613301534906054676379325496548827961190072879883523376046329143123863657207453785526508712567093792278386392996087708838327083351303810068269222364442662386709723023013215127563862837402557503399400742640923427970316387818276065766394053153252050928218259279890021245041428482131314360330850372516197480124234299360251644178928333681955778351842144509737558990191865399608311787362015771877861618443681926479279657328362061783021869600084501638475097209389726574827695699109045354672637116873748321996218757233035703440950040832296161844815728837399242056027370315374956998842130571013168584914647475253682560224369561330447181857970810147148346915683128359006224346342444817105957880169512153817106817992524846312071373639161267043551844142302323253397786204041565735084651616795534418059684898161347277323774791594646421949794523787896477916918080043557654851386469457747625589994675071964450793240079445583021607607841754114247040013311336175170874409612979602239311205370349359558664278257685883384321082881505694162515104221360831325088481453136501037411647349690096069245354002391163809700825931243047595090025658184922552901909901575231303450166265252946509424849377966182534126523687141032796780203679185722694184118712657014959418843989801623368735079645653113426703998738750246360042694426080929443496810613690655594559800264251978956251236202064588561221292742428400108936646666175631498769617088726365804963574832149610057477901425254574729447985508506820953542530590208530307135828640237334298429108791002122745313311788908910407111355658537878541905303031945502964061933331046431660815396984140178530505315658937800646269657573144318490833144153537799023021428152900164455464628011910611072032575708150022982267575520224258373190743768912108416224835642344502782699546223027688059605077388978058147293685147405312391466867821921847441903196281636674794320783553801079829776940988774788835906869743380430442940400455487950183878412641055520774728590268600171176479268588277222165556869639042916972423915924871867945110869331985733401830150091628089092129343779429883873585217588085246051338607749660727169804807390392910513644129567000654337190144087378528952001481911403137323607777264933265141086153401850054320432868807319668392868700086187669638574068658407830112927668873024722662068719172648988741643999595812585536124280176840017136465724117009547673435703470426276644620496973870529455930942278232230403255294107919123223440522427639991810811743352797145433532661926042138334148691740834851904645335244193861569396969874701870460935309881794397642429866705109880107406744864090403525055423212192395063636500398609619247186083177686394598720429966349123190570783638854070425252692309549880563117418498531786608406779321208852699721763273083601852902735628002516134368174178996931272349213601983296861056143992019119490770606930848640040573175085562133438361350258993856293637812296938602549613529632012530823242994243979482597019704923198565746395198680472798003416226260817881840721282845412485755811205561403549227003549349925613299088929582264885676224829961855403427183789656742301304380797714637438556071530342090207131651093661370556783446622897300152277781657853522844605962246761353655489561851758952257506273859246170904648072092082945547557963112715614304693117832100309373156653570369292314037723980690707800093470020307954125520552884237898640424442534508651430772699236426468609321257068889335180790958246752837754620271256449570439144261707196125513749352420742941253543974378001733286527994893944052947705183071923644306210522143806920179396310947721999770762887408105264572064353068410256480062583199107450323761035901995183366555297395832444972079619101425149685648995327207804784953803151823308578873751729092048939786584854405408378604033302036720295701485510149880945012806718019807613858892653360675053713046801224322662838258728710805130670661874414961952364804453959185124661205903495266832901088776900677753666657494853436999321158950389535328498298295424355299665279320412283715349782439437662828667981776346946158459238959538669937189181224408140029944048870314055154880605981311969978472198698561826177377660871065398833075520722188704873694689367548204547100153107053052241562899815069318555956141539381366188640393227609639184399696075247830570475061391326184620648945095184709125092016960727481017174649383118208203117223517771162108042830555459837389417853011760850374295559333391543620544686306099831398464415512934092918270618627211510299241696534783780410149361944342134911056792267059731496569450962005308009454462848390282353878762210294201783286847117596160468138619491224812689796624298404767841915196832131785595265536051175642005039249163607649387434267971452889577793666384761385618336744399054418582089479142285865036042182743553516550676732903393964980596022386415378398764823504771566429362735751917907789868985916628710690936692739647810871730474801085668222889167039342792265085013242306190222589478893166337295354784671438170587091038907932015554135728181460764829850876797048065228773724072539131369354474170628117204852517499261206297566836983613375906681910775055260000152258296507380492247496561332040059523440770685112292243912597512136194368962394538793015506666030912123048327884699473760551983354845420161391600753858132424286596546425925868444890014203171002424178819830456486940258112551598144994983029530757597831512369893191557902986106277756120179445274350415249212700532310333340507616989490284565928511423748480398284872421204154980261966358435611436982736165858037369031302514665249939195702826749780697616282301988392714023598202812424688795369377589508336377911837254123768217333445278741760269501127881407343777323748378008450672136703451590378710985813964186917153963211945454773617457003971039209330003849105891767799259325996318166734600150440861299573156967711337247411174323192208282384953466202071822809451230681443511373332263421676424121808268865144496924220116946156813932373229400271539127345734787176402037205355214510628775676063057389919301861314356917379417119044298587189418714882797842971062292249517116250602657751571296237778985819157667766854443459689604044304920975123519442645081051091730249658018188218017033665145312807756920018562837113660443109314957638426771882615111309787863830310182648288544893537603222376241811917214080697434549986632039971207329522857959830107347012187296959755108712227590146249108580423388679062370082399414584507357077729171319026868849186102759387227347155569490410346240863271234482132863582890577210803861240532812571899129632117593204622725991956433832675889284901934130608180188146149075369069470540530944152842872556232104807118395911970037204609928423622603383065292375374250289652608183222969981122388789300409331583438196127862312485179006865660936686648088973577821084688322549823457897016280484701269181938402249062438080920734156737952929808440967402518963076237523012203435550815747670901257207449315765324419170688138847710635086089689979974123000849926085005057738044576658109116664717549087532713334788164387324312354571455814162336950681632021650082342211912831291541935171021268831238521872831363542717276446136906664969710617670558720143022322018019031299286747474753175506706518134257411295308786139111343335689133985997651444653464018312327573982693719890902690260478386754500057934670755841888370631360268178132640317404358836527155160703646002778958788550471152003344425384321011376080662455384573962802251281395297125510823969832927931867166409767919326504328024031036551450416271548506871639332207147099209486610766022677525500623802444125032966314463504683018310542853391438300010327667670287578988151417066847092873950169393722849089044022940513763065639890761996992467806777511532163551473324065780005602207255355545820825319675373771819306184125747505548558158667406192969584777290862077562675138020920817640201423662534329167829540320452108830747006461733247051913303774532799017638548752538072480301241023556853656780404835274179643775504287347873469717988678353495159059564948976700206890620063219602575225525260470403945521383329069229973379858629014405509039450436186540318280344857306110816933421844263580959725732720211848902599582559182239961082872280373817414811207630693933227664588150568569874980039832473098084655058772172667703566859560787623356604108403267845960434592753805261846212400355679865171566061815949765086007173924977964368019329724659737350867886716458033223057365520579761233188470018131855501248994689802040028220966132365985542927146722574751121900603661224020195215459087924864855060523930277462436309162815452649368718855822597722330982855370711049203842670407871487305415262981018038121469787111423886287776706170315251110798793415421632706749452371767520513097456671521393288250131423477149143124698463426074604614363115546980989636335798140469648104449742987081086926307651576944384425319097452615430871206517235247437955134119512220679630531438763654483040084437811428431689770977408229357713732104066886348553201604683895522425519548206807116773952930050324223562641234591590963265141878510601319578208241552999769932577812699700061494057140518231926082784818659845932755474034332963231277655878329388104344341587383016565067509579015384075549048951917664548746789408667815381439902518943870101334553073813055169253583645675243012661161730866073963502982979685260613398777335511517234925940345347224016406284422605861155569723971233116405193445921719327642118514713831090815865269631532960478498639028709269905223965325017260428242527131390124851095115026690067563449667825097010050725928606166610248856669630654608074457867602306086457106359494225776210767709076461195836597970899383512424505069034964302393395332813688746331034452561860883463633422718786969261050606896689737455243150159767040105115877814148421249807279143869495780734051304059471915103476398034013102504100256938327711266415215766983598757703409935242761293666424604419582007751782878159802038864698618044085169389738097410434679589208511776185504964295330134722925763692887128346929030749398079837401641217759287790607980851601977007776389410336036176527223539760361232021366299863064722372615542978846032592054511650969101916453374474447999959499127308287213326063254160856702745473664057071566083284033301672438231869519553630789526840166803829324872296003213909990507195731134107355499679500818174024209019076101159689369727708427272350213344665943631044697067145582580092174337981608403868686751550840706658000565178214835512848350715926218635062511167684742257015286287010436697743596178162535169226487754521838989397373393619219849840521414150567812950736082053912228343638347865185784541448119111416676975078734788924979772275784959717088062957774606966238263236291794157119467603679420965717793553447033894019255722542216457086216583036727786305119009838496680961566786064794762442008324949145769974712527761155875108778787967352511920840493256298687699343335695793440230693901399681607263494970974226716511163673706158460734614277270452448635725517480866982807333710768523207072310670903051583371495870556693496595474076267979069163852251492631062330933928409347193309185662150860456797439777713973857785585484960072344630233486702342840970178821368786866345291506663864278383064956109375131120780774600888905004302644519589648020672405027218219017635746157558480300760505699244963354626302049158375026457744836999679651476855130689622639753817981253568017404831538398571724582122242799765921340987980408245030001214783376751180003150917493062132174082882754989321069059521636997995487076601802719975934917640514050814672122519364340404125550398115368171049934723358734042978817986768895818292449555431967262857514979552998282649626456764526414347515989860723964043034894312954804949057932820738518505124487965191014819416539652360261725637880702068261545781590410175275257090341415635395788743164595927364689874835767807630760558130256480152007357770972908623616288963365490906715892808563436241584660517589847431243556565190320376491458395415543885825655879544350504253356632509791359681504548348485200678670320556993488756556419814639991161787729694607506117177151434104584456013629717069393338968555788772732480853659599258979935567536073839901979984243054255264585787743608096280241324850739991080448288615223362780211675035933760957080679440325988380715040405920167232738442843971986033514811565141036678959421449539940318941804096482236276031115399157202060610037057886386144599061560035156221589752562169413050708368827384762278577564100432682900345568440179151705494926681611691741837638357785546834272984062088642946837305170974202390913578550711360631743466206632080705375742273101077763779643270771539808015339949031419354390420684060885490407159598029686435752897666542356789385171618990099123417659531355254683811428731087148419874567826691695983745889490818333408307081380412694154199343434668148202169288886922103487360700978095134114313087681209789258609108404711193979529125057888481773143373672425998615517875504096875285812158217840516270939160529331693147072692535293944167044631526939289625548314336219045709157891672200174525911515044006061349423864951847309243659866408292553277611178074074896577777100792988093245525977547056831028532999853215516098221541042650594279048409926619127627887845992971279463486843001773429774667007476262282632615261980979213493583287106913080834769938618651129877034228847326340841643550614575377382090176498246129492979751601416306140654976735212647462540347800286676455431213483751394454865685647253105306487310599341799217480045751388818049343980528977856397442646074170525544910710072061604915224065859162269035829477858335677754860745716538669289449836862806009739751184894289428367193243447237039572372202238888420522713499746393819885410001431321274420968212294987704338488292155440172841027813554691444588272045057842162457101313126524380092495328610159812887020682355434500687786860072425820586832998356880272812325092930908439587772470429593520840914014197855722068058798164612005849517917720835509574904678751774222454575869067948688580848884071471637825555654822935996897237709358996510145228841663852163360543992153931613516448188094241947557089935821124826923328615747190784134579689326628261165107071411754469135588146898498774497672526981577670785984787491431052478875741763350343545825831452395331712206942298631328966848530552819154998190728820549818620686994336269555776567397859806431096154311213376876874317761870249782972793267892382920149100268182020572231940448158741238808420926161645385429079622177888623990509465454962968705495433971031571712836132803837742428549265592945645359336313996304886938992687179590234185558561807866591073156943314250529350842532128318910324460277633626085265218637487113886953237192305203957959602281348007839702908371733897224285573583809983022813700037837399411174119572481955928822075984197827764747812534927305672423307135947105213359396226384507529765834670980372112285393820451016723353129237058115166775931896033183555036491149710382617999161390907584338664073929068159431599002431740660919322617553869071313121014055116386546198190948112674443744518076396457353185473177135271984937244087165978026289133832110017522187541556335782010143367232940412772910764480869840366798128231530667748255871044131978520723127946774478930332149252321738125311322399513322238982292190838838634008029339698892295176209101517849972781584317793390137039114448271379389314781764640853457749129573963703847235171095956116183427396687024216246540935265979410553724769565264785729960850209910211420553679099741696634955746287888059237461920086095551291685434310449154493717589177215048444708393064380460274535988573358246474503683972494143135993395733827443932946565985653428811924889970590933602621534851794835397351904448344121034199109067012045626307445570407317311133603163131305098717814197284140265868832513783425670662332426392476436119849259754824136996372786168360610631771550078069092629430507849323112907568922395443667271593146059533353024969776968113694471472858277328786743813958445280671335373703849435481557746143752836395357284441916634028731189203543564568121001401254144287514496985328052346375157169111162413545433752119639179711689000937425878967572659429992936038467019939117093675304735259153775401988849877094384480789127678718403425309486744138560042839900522241753023926452965847102616999073643705322240069414807980053421760062537529850449166942274960801562599353943725973507867875133665955903550534182391772798210183918137619897469024221651256253807527604099142936883648208244946650470857949773964441552932502447381908751932744318170898626632932472692000554557307621094134868313512320199432101451751364235975292094990078319929729187004128699898210230695666715458920789306067437766561995130191419857325047939227868552590723668699068006696177379927016076367839250945958241999092425417042096768181568805773431462323425425721614427350529636909850496483547165244711820202463570645610133224192709442118190559987517638762916233210521417214336264775066439860067825507993975526615153886228230373660581613988334606022515236762558443543064769146568549095968850875329949883062109599702993545951532826443814739408971127881824350891340803555949638278820608134062729977412656297358358897144343219427585309371080573346843170947523310997160275916698441967224950219408825577944872356524520611564689185450041040617822584072252850301242892835723168867737282731850485437074262488192470692822338447207447032213927284133598345657543614461610215749362717509812813493054314523558515454180294852571698958060615765764468835240046871752367920697961751825030414692166234265201018651283710685349341631521771710992192661664217222235203383934889630413334127118832770894511749843280230162845379234298946499305301713908967758600457048135002859285257617281268823841701160481229795075288159596093569594287862787383392204811236423539721840110045914033874018745975934088041189753740905602024335949077497485295606275460543794964446915446273089002711801520326497200408479323922191005274631869260147055594826711073446215525853146871598441861269528926191186964859732285500684467199569847528527964100957025646688811490693803602458489185220711200370658333730275395677573820973481637033683367796292913453795445412092707335607301482187583899024219685890800016253517630090315833252440896776476581286279479070332720860864456579338608336165646963683054955554043701694036638255931160300277345574239013966182260802696808250759790292103622661972770956795144033399437643022576834911626850999521575783511349880697818981534891140579931885407162965073472646719194160520388071819009389591054721723849784481760433339303557267872293324654466164248338388935255520719403512800694956451125377277354058846404725372254693478290667654299357950068948966443932053929266431892460876877838485144301946479589795611619452518611062408817337675882118181544203528752291252488734215024559467679370826387351393532875014393482228279347797910686153842289334277987571120944221487218594704771126874039254458044482243139902289189978106704817932872656244325375948695307570341233034358924052602057182071990818964900179221535276765940614244494520895273475133284101409916658267378541619076583364895234625261809140076095575450112062426127800104240666500247812143867648770727290242343545070012735904427246384510598793728918466958636740595412340123014857034509356210404606610222938068530837986445819369823632652297318270464236492588181177006278194056374762678612091144279238158219637664717192587291846156491638746013168174789654499865430103495058240981217895715237450407283379703198351544847895546002340307535088863737452980419573149939264658785313989876136843626479347348813456071404320136043639346613267485142783863250261294387329053396300799617762697618380744653125451291028507551288260534720289672856272833928636525504317616790576145123491268448841014439893638014561759613840926012841355022471730865359901636864404277092654313537263634498707002157819996644634505190808858180102600892218351569145677895507815157130614070548844424126517159267435402954128525137096556374062881156094804971978346637769288765453072849735872953023908294740535553108633651413545313465214854389850305556179199495111835576076531553970687266084246038530421884332618168491478455768587108930822487226110051412086078442949275815912429245762085351837727992198841069887801141760135541459541933345775355612017588251286373813695461540266575364634178923912849287520324983657112430939620796552304272720714565629793062335134061182173430560322354697879737519895368015206333807007542232815193497307237340346090151066304833409889555520274330132133583360916564987355493037217971133054909853992392630922967830128090535488979875687208934939832917299156802274223252622626543352423038313594545437425485302332714160781290108961817173312220799114129316547702720535432344861533289159603281853694912170703084184290345588343544260708643196006552290891681120153271268174425580670209226479010632847552182946129693660917392355861073624003624176408198870980693181715448255146468023083997524394831451990249718181268196975473647749151350409716036814804952520207155576914721659502934456997974918445948779895840686859119538798301384916778701276798057648307168894415221210208465317438823741616404566221965049393143459468797376586790344729511229283290454779910021328078561476140932607330791138294167668868459752486201075175700035377528208263480671046493687841439565555921599728210040355770435804686348170110236391563537839416518018819707330601960513754172409222925544757219619501037840170436333666244792644675447553780568158345495125803367702147151237749848180917141528148436947950894223752841728592471730418136277687915785035617346091275098832769441322699672600627758469709339680256392718102669527647669510113972081566792662957840832567340012641890518089306003440539276618168852737639788229424455101247547858052626956728285979893080889184928018472961596475771433647050751911937633959731048217224395389283758720382954485883361829477032181575930254559795177940779693874365973204793177992078520585511841819421387301756069076265421043243975412536983523403958040037709784168278451169342156965584395629209281661517570353562644154418095677397329393858128167859837853444177626024324367214680881312582242674140869509294480631351292446772671085307130108985920834201052636830161423860748681636814114512071799888405000890711449774660168598922284754035826504036332650288348448519261226260086882451387797911026483577860191900300025930421920934668320351501652168886697327114104194809198970280319253560779024072145638356311359354599019319923548098300717457666385631063934306664785621628761159331896475872235079160458371137506036427613741060202517279189419219307144292503661659314922671456245640039046765949069282793780017368944453724115921562050873699485197603535225993988152497610102296073622467790296390663837871863840425239959993946130853437456749738575206719556012258136651264432731349590448654426828695853704385471553858038124754458898361728944319392713258603889090749977441320890239026916487868285868892342057400787110351823046429279426682684589017735769728387526211139694290163996013577811338503042753477053693931511410230276018328862502308054461740444068073997930634155606207610508541735786827946231545312330108583658524363917835489941432346714192882042884319920226724782958114492546462792992456761965586559038055674767120106057368848666755382459010977679140064208141856863537479999405045667596447396408190460116469194258716643861360008916211720285826324105759610691062432856878033407596808131619329195715972709374668511793166502478692959914776026945926075390413055394138126394320808361891000143640172006172979844690479787302225428380855156598035455979335494736817261211439210179931037912560291546134628030774338953096533819940330073147548310104931381094587268315972265865494399724124414967129496947204823830073773708823681754793570781223876842673648354570867267317479000494141426376728709498608441245641254474286132235631679235607904979337277012847184692676424496962044372626297692890377591296516218026353070001513250949325898038181208282254754833250616044695917161420142079714336644817774303328711349493631001718840118814626836544373994151049466112727095368082821710695017686038547441647303090639190466290018357492364714260711328273122899137699817129812160547668040854244131094155242666806856962351421483150758552368294396054583597647088811390564556670249733229606159354482346876388313003165120555797635858806966106185671417203374297904691987890037498799479369145333159138440371978091983824376029370174598494638684459708338231241569367237697101793480522178372774347115456486510159569127408822546030185685070084004474599513800362388651833521528312610886461007200865917941691116079230962281620074413473083345242101649403537192989465447431843623289330509498506896722770364121611978952088068961207089575642683835852180441170311575843305320724547863938929119538980824183314126869736719975744022882339401274000532152853503267505971676613506351470099147401737629412389132611220218321182860535781284024072463380377708400906528045211889725244422089467752885569643049033216054300338420191774398365754405300960860490988587961572160963247216049777223482776202952737134576790336862712691373560287886593207368793758610710268760055001296485538729095459790744602602520831723916809577471875605983053092513686772408248796858911765638409500689900082650538654283412831434981559164697097725486576993431466781983066755595214848021220769222877395994966628807813728667853018994118723911787813187955759920164227334972045314243424408458851608851873109552625888673769620729790948899113328568221026659022974303974921758083706009701926769058794603128436223256693888167271223591765010346657095073935780244712723572914519848090295527196238134258022071037799979844852619121530281914705197522855558757804341240737721230279657967335508789322315621707702869163886752740117298228586215695113818979566847297366783541721225077913870167688574822619088534027459768768751195859213822868371718559255463759374504968730123983010045711632731513877369637212607376458028483730890960516090512136811681987184988523862330531896425994113740642642308112707751224391699263865782099163355426178944159392885285094235897313482109385499690365409195874127707050649988396026763982456633757093401797823818942000576293887736441862398814947242258355146010968879778764622558142487555188366421512132825626711269416815531266491566370415839458672711130860499014996128692591614939031046739656522437593115911709309857780096496246249279830153322582851168308354172891277193524577720676199495515239665133124519805168949679201379147724398306425701340039691086205298132042978891972251039737897689130939182949438555005833799421551664495721573922669004485852695167226974696630511176310943997840963902518573984704906080146226796810199569204381749993248618516372946380105650057937954155398942719017489203464709960722124123394327254560280283517110719973038212012461917012463842374219690648148096086716454576259549121825843764296983602094503664289700205176297414869460113904371113301796254270749238554234621737414670294524624029694180066169146422855723888686100151287370045704267062189684559446630861989437379783861831120737760341639872596144219174947691077934580827866601661575832838412207611054470534756519092062984870132979396200466991551361228015406436209240534217124803291577221195882740909578099571169753791210655400350386484175387682322755497338764934974379968658226315415724473608080887867716992445563789459652344495515081912856700798539564639062802215567841017082091021328610235013692148720615153062583158550580992243441475450140569329565003731744230437470885510400380132197104413145254780711423286071136832443406940352641521459178087856354961311854789328027701733189201424534860385393218367897268557869693668883995076970756509889345140670038168786004693577217593625680157693593243257512068934703646148050806024549860723942460678893762890241335963454299710143429556249061775611538896210588186494286567287995641207792870253612085703906234938334597510820837824539019551132716914313616035182285087298923304002708230283268774675939348192540856216200309165281744526737656378993757816981294590294230592406744263544188995429486261155278209469203254891443879843002026389206447378860150245346788506269203323973770872057302440556029400143248582631308048910687324352683360204302397722480071098778267490059094485466088018277474980468294537129966740433232869382566775482213283836707780092118387888428364510727028768172318993552588833406164455557578629185653538690521394041624721275647195532280786742095080638161018289386559682137422768874907461722093324451454107841890483126602940737334970324057796009090691978184830381207151994034818852671233215373292840965370923921138714399954087498428879909455790867182386903219688012915413513708943200448914782428944651060027990304544545286241907877923751067567310014973004682274586017801438961137979131827036550697370518352223679322843919344439300235369947871861684335767348423728713563163544383462247622773004004873188792505724993064695554291263964682944955069321860234074981585748770521674372273770695942380907758866128118368664606028620792846573312898541110126930581245137943312806792573441518603209992286043778795925523810401047817674916168721856029828675908754320316536042165666600149254731160258534835863868751851690836703449089084797306939498147245332997837716418175895897609759817899928135542564703634170516220977735486740524820997337605091593126148807839020344087471491418946586344510808325400744794115245413224184084601562533320916187287966826435547402147509542709628643774078560532790744284360727053155532687865519197753403352049414427750959816707552057827825969228489123148653353371136297083820155359972073320929849273257735214882042453370197663444533006567689849417521186468801881332807314867787343631913875318346382755078298134840410641041095531123935246979838942440342942768952299455107063287275240478819498565616126416932846244462875945829940792114749536677351799664481500102598891109972290149813569166712564211801338820994110515336543545158661186746697726535213220003348263670286742385647003856219523053752381443297503510277632844829070326901532566049900502678008839409859969428439532157579811895996221589619987608422856934647478799089023816911604333932814432585853074352353624581796479920453138691752958782659236997690305279456254464535880723706820454029786307249579244727911583867599485440323511399035577686954780774343901751142644850397458113299626683806804100888108387783019977414124382339200893012025325403870540860988808042887864227898758832353211769055291571492705664894030401894254192725979091864563749351972060531983936181760177437600771608638324509523624209981816105879360763208707169622173872222437832981055283903965302823041190268345529478171728959913441269575194524199956465442864782172490892627312230675487789879361376639155096945154970187872383360577379295884213947653502654305129644649666923747158703943732696290183903863705202757937603304478542470414403290957224879844926766508357808692160714394428691131097373210837614413831809889650648014312274938086847646498824384239843544033038993561354011971751072007600043257576623833668096634557556384657855034443987153013443138440777813046894550078394863382629870426622267427194396245167026890918433172443139165960392427700877631814787861938992109065445365542069771933392373952194938624169673453629394745364000125194881527412625713188479031827853734083637904958775103604273704887732340489534616100192656995115929703857843913203397069338883322321415221569211355637021572794416739624370171648219143990893330828583000413061171485566838998378258235714059021588800519498575839659598794306862727084001678090150350347567000579898464523699317429345073539333619345132151530869691209237070555323243771795449748257877293120355530972470496449575309479034400933595074385968474105485996836155939683687715818191814217820333571959099282590990140826748833720523083329243537157966960392783275570732057144712602672285864915986258497551342093306817401725026533133610555997136330777206531409056184775578074263794252057902959636202722969126452275137669715171214458898080993142642161078735635584061368568514404880214584093754906574662443477434816700257549267718519174790634948889939741964886828719968663587470348573382735759833015477854734401376206172989435909206680848450486258929008669593183336529617711415134845928890885789176730969288445267436734788458461978783818288418610586138044668420469009073245427124577765273200007185344939845891978868848480993133605694258330612229063188940942833822647524243834673675351826127726348911008847931651997550040562940678542518340388284728296016549862047963364019604453421632905229496654622674944418144970601252740863135727017385453294964210899471076010337014690913351880168332166006270010786112500659033777771249933195740610434085653169514255760109753956968178556436674325634748289106132979323583893383758497659224491625383512583827507603837801921972910127763761011280874915334018590279523203347710645102862212995105751832211174856886987138115505579837086983203642515140807598355689759862437583526360633128201822918080269333117989302812603693111387631050523342158311349652991897108553259837992905774574449923996054465142248627115808074657403531812116990530195526655110102452528574000421615292977344542289580721145136177725083436417496485791539707389099549898586132628226556471967574783944358316858678703581289113819286950878470138174920155790372695057801984539749015330669743245722252746401158908195386731316090728945993640970414613754309254020810660787122240097107821690496495885852351357854845922465008209416950506817258232879432532147241461592844696298425614542626068950727930464628733444838571963549341675204447813516725506234227324035253087408321733649323828298872793395138259152808607639226859122024798416800093485226927537848918637229757934997865073972834249661282506088308683892508183306606653702105405320590649555591557205373798322870225492926888414964293640921618607087747410193476558844109180228033002832107465773876977582307841040532649180389913460354239059984329672123613018114806884112560218369678977808350611539621639247260715632561018989184331084151936168037890206768763461535739055934883536071138142585569894065681084448202958986495634977799752234494955009967501180949500214707253258745633118738752458081884192191451815156486667866605730807356758747872227242486035634976377846076083750354278509957308478061221131530944958233590165145659137829954177531360383329490149442520831975698968619354775352215979734789782790739160942842452342947034641921924247160148372857488405963381182658507462211406443295504358278595175640876741476233339411862139218328252221090436874687706779403757735514205506685701712713424048456876561943629056318274829483084051163491605239937467645207595000175959200381438962543634139188901540535430759156851104170075487395385877594364439911394222985552001709975428197676097515563990924822989327716432938290405198870435414325277127309022936237275216750600470299116170017292203204351637670886923699859211895321142228893132881449769775492662667655931961097660880907756414656216881924234616406346371583561309670836344967628673849584451535559894445560131777098973988073591619912903098458750329251804962747160724390377137108480137709685164189096342994769738193636876404630041362162162747610629621230754084320223370019591940739520048877622629691430272395127239746610861559550286374117003376355602950268042462795616609389437200818044483731477967809343223649425149082272318664760014690755773173844755414407040302136527062311789878060723453215696834597242882562639212494513252701748180993878619516120794164939257368043114348203569232023997933471984134950559794546007291553778522564824091550964208812682842682404048482452484961432048413231539182826911748985908178854239858763369206176969722241436382628862550517251454143709429280469710926037137927661967190469952276294888012199020609649972607061380272932615617837445473633968686956444323396814555506719126523180435187761000982259862431912518388681899427797610531461918610948209274817951662705477223856757919983352027045241742933925172198001742665561771603271347368501228512534744173664877713958559751606245320146176857605756440258513610822298185816646933018868951275803433355376549536441471431607253195257425751059571262637474828022322761118443402209503705598469415226525933548608616211508033838706676368359946004227613669861895695057643355873135408360786802745723866227186379311239015615614185387344244581155807193353651012092147353186828431557079006616759153373873714466052580214016967558779785238021567752026309321544412456012202649997064904630075526935935415865881280068991684249545216217195497421777527570789921420064264099654740565597088525422898188222145356026695439607473992853031782593251297763930050715659552367300142241273072257976850276378924485762140288374246476142053930907987018794902948851592082570631098380907017662986483935120491086488411622978184562196684978834386470883613939094788202035998409479164594873947268933156938998992430089779442867576063281079840817700435924747891204119452956021023018928128780857854914124257269460032784105336255143274643562465456044093602711689812853278476965359448473420222704198031363416690755920977392427806976076099103153068021137823834333836469959765561538314793522595051554044798005937924388509820711534350108603304074451103222568774573547375335868745150380906059550206800429671101242731271243579224194149437656494055509468669518848687713215542490041225297180036797303522156659297537959378783012041813515249040713516664205438269895797991025528310709088802647912693249232528397609430166763839972401578669694517431741637150701365172081169620482811204202672733866872207920450884710035393454479670148738425552551339155487341046048813964085202461275605769698341287248403563870774820573471644560245699759239307875214886503321720604184304070125419363404785504331940937004073781888262328646451076375910520963224872888145758819658679642243543934658951832389133100024420203103648777125770069934262601427828202961135568531801873922354392010522707548581712560635197162434164694059119582626213662596730550283998430944427691061678557414148697309400339466429104927331050598049959160885434471224389235866583165256938939162191814014288894664214977556443738526139273694459683197432066305120291386643170842619421755596502945775667138506607573942903540755545070029871993549143724120524793759067343807429310214047775715686281789567446584292604941584818001216331863740830697737305149418507154966973405725558355626802109208110954769496369192713388267269347254417164647558894002345143372111325635389757262523024505928619928512764112631370210057088424183863576999508551250696195504865119031363977044311652146387456588801976456825303684552439061504493359910182871723971401526594965061348147675587185168838745828619751425485006165517982466873649444666900108354910985100249192267818159882541361500805779539519994255397495738250573414362499367032343172835909919779217058169607112538024812705511617092626026386149986416261210427350179549078577248368721559401707236843585001559557820142064433426597055584783847938736028284724136014881892144177005008380914040143977679256646266912098461089020435325481896707575728553330095844133582443777098905702785473729407166195747313787968389627390707158137391069781243532841714066448169798594791843887502340466141099389163226926582748308740785070627866801849440089888840600723691488895073865287810197780279755484212124941748990119241645885444024584804345352631609848305778732636111993507644855908902045578659551856423571019279807968457750774033058243088195621829328578732949980605182018328705464792294060088162951391340355196052608056789264711281065185333663668172237010166833852578654308670041530326997611355672239581159578602876705170904092356100273101412024929292872996592872705415749008114087429807075815427867048382889041674433242856585180789861832071987869624717588679609807874911277138364602312573197270853005283000199431047568621208186983063771332838606778870600532626920478065934062201733226197937138249510577987947510260843647069121162645307399196159133016150409059212158536388997277731281634211164809666001916551218459609585937413694163874735133371843174669108585737437204941793145671463289997584964748764171569414984685340578057118172290067316538860095990194009656271835075290951926039394861964711082823964959722657782919777796838286338386422788056412656161966235539454730917880815843472944168398519069355459516290554691371220165269076379955761542685269509115259480773836760975835091691907678645059987639368007470603870838773670899937234282700848777559214341008252579046444831287702332827553660232227288605979941009382145007307705379940128570853665558366145151551195865733090687223372749461535235702517079123532383341737252190191331572351607728191834824207526968811651681905868553580917961443050919186463850007123774436519213207754762802868171633748441355815249382818824384237801950550519152277272671933192626490379107360278264261407327567189793381820258595902411504327251588850570510086550346502967837456782709758917534827078810348844702302154880194775186573659720270328922401934814397926841076589880539298125091938966100149126852575812366000760155191487641345933345108988470012941612371178559508125009847704249887328535522726863599259233806810860214500065605608815991737458704290208003377077549637298101712937042427422841866919879016035896529663242851971140672959311418724891237762556309212273998040343366063197149239228171353654526440899304486053354265728182948888116108004449577759686554198933422508363401351666629135257339559806593154696267879284568374002896209178841962655751486284409047867296003332318436819944418628800198424806375090579866180151110903965158742519661714313153983949502156336876458490627139301491321390873144433192580586258544222353446244246819337806597825784729802128656305784468482825771882202067020603618550671336411430985985012584170759831376753271676561052571828080715544004882619556724887148988432081565753058277765795727147768572241759413274852906286574614109980156862354059598308967103036213704597279411039685166623097329111188669906040779380051512655377485929953398930856695154293928538720257658213131113655802353856295038051498881941211363606004550816026473172417275291154497045173819892751078636478215747689968816966484588063320878181781007497659308853784795296027697395771004091005185171733943596483814638053857896407910228733161767476708766138277641503321747003809287619203988840703405872728099491014399263248682027792540954299626993330263393563433457599253350732609159479388969395362110032307047097126648534077157879398982580044739544938095931367461252013688276168311772919553396839188922125642564314766544674732308596922134684536526089061230709531770399585972636390444756395603597929012137393169069948733968937593138197243527051158722639302551679472669496073110935380075289916683922287785346633262794652094564206442112155873551769812384105559528831698410630223928111769184403180069183927884145109062459746661459549660257821018110883793835700109770248464900297070840384127236982266344012992826311821734331190432423295709421466682585712997226280302952462613766681246256392199241265817817551898811646307472541588630804258397781126519498233037819539517699307722998307437273467814621041490093759622312626193619745555235122087380576870143201271998434824984695384953865938991534952171723045165760318709804545866825497552116885241726812764174569944468454273750730867297183161698750203102421888121852530868877489250609312512927917278618368643703520945857394543400824229413253128814068945535985785842996217586390931028846081914738419741556111200633014336092943310007867667331469869327222055947021196524008062082153522957661203099971680748509142367045693704236627190390231824336884381657674129406114405983297944280634242243796025794618747927582664753142278325062350255386451180212650245679557087658139111283757334058013984504633706179614578086540925929610551675123092495257719166243486059337634750743977445479500171201253657495249749373663967668909917874951214886266695858754953598270996255826550399370040634849712492396892499302038983283992400094730750039772143358320284217984060700887515060381427085391633346835089628132939610471034285185432722134054167087450584706259005233336832287991356851851610540163992217103914055045897212369815793180166572713308002710758225350390279392234472343010276897583185730699243593070983214598115068690523439949537346467348881772999637563048264997498704505358850357462760696369637518200496744397267798938339310649881458035692449333804270423296287538637695542034877701439335446949868934058900908301829139967469183595335150823515409172514944337236881482609162418848473995359355171218536294030952313030962202875414301948603765558033085695717303916037778789925156462787370113539269582825821587640500685957383323417974917140368225707302871748220931078408289087929808396073144791202871838036208452323928670840274120519348927649203914028135798168229119001285384112661429677169876353047306275795114768114481411445822648293949394074685757399003416487377649321010343987688534470348765486438362400941136976214629110763012123528769462735071201146632148602686954384614894340801214992690918139703626128959768074172904602010429666320717466334918674931875316885801863744776802153286309664480973972619405233717669551359557986025238684728790443520084204645012208575377575813922247742360491309669184395004349397551147119139631298305175610088353640061082777865724074912732370543948154144580525482432637052377117524591033822984377116898569551471644088091444023988973618221738285922017244313029339644444317705117782994867293383552560900652435168381612353231156148145800000287102353891638309814530178192448509688534567484353175920960279517681666835106917222212394901043751719547261224330861119911413772884925396007930419959927783458486301291804467376502864343046230320055565628884433580621946877323643410525443152379511569924120256509077644010298483713397070712975758245159262539723309606909160236523986128667279540000918104906952626423525716991280403637188428001340387884073535824026226417361122567275508916962409905567181423271865989863372317360096151418103112182829728325562826115731589071544915641352044041753520692322582721312097544178139785890649639398543657371559454540684626008665623867044104364903556036795503537249090352723589449943886277404584370583817420553574883307302773955933602804359591683795385153028828958103100058037727713578611757875517258356349097225046895639899981323822418100049328787264329220001327615887018114077364306597966813260217836902312793505012496497190538313150420429540025319452430946804294977483089589911348149789521206975026253109222726773237478659746900806183460980534927088981511360796426998479570168929207977115610075303998795618341033443934999584635146395550869152151301312731817811777214577496717385128768339216265581321981053075736971846269728622224503174979422760998394822870194816882969333781999283345267081482441734621194720978681071862730226770372104577622915762012709411830768504640589543872755009853211515425941534047036750810283553382645433656153724844187088665032562069539738908422581800916025902600569738032484998846450427589109654876663525101127465766052447587909455328397576737575500761617528323947793850578526020445683065518484009962006078586349354463574214713388792366041454695135764521048989791239826154812479393212720257792441316940520524658413621059382950834495686370655193977726628570942921470496850640624582824810114690526377244090705391585360995441997579173063278380678894228201758624809919022601867327785294225822202493516800417821343850571301993408297672061869659352978378079334410356058801938836974959285773801044412383532636229672514570584243792164357860087969545633237980460246581213427758718881040111278793647342531529879299203789602589284125532764103671445076647026193333092623073831690803027239989785029060694733932203123050922574915666171590212950762063698511811321160516993093525531110577247133549237783881376562119520841416566418412358460703998966861220429852759073340967002704983371819549852428285112975866369483886635042690306937071672363632014861706361918269038710571867568599469348974061746434206266827179817799453581978983384679430409648090591283963160524368845860544501292614529133047042743602839244733906050332266366351210561557394513866839994748141160362579370095885987304572561741053182276929542903790993262753225196090828972392794384689756276666934269243218082347735471895605793839714715205862286337830381349477821058524922004139128936621046023122331706665408163845825869923973248618430267716616082592321015999682575403071991766831468136054607781161356074654411892643205387446081794119668107185440352710106234703598007761438938630107802622148252325929143857868858159075390443988809199096284631631225682066959033901301106605998450845486948451117680267318928265204403687777609190124460426906396679157928424374080286790810376023703415515430521264542370799472692950960312192078224320516114187436906044768393840169045662050245724004515471052890391981332100583264557367601874693277682718244238211612207991898156518841595903852240571455543039678910893382910664662252870285782022271687024801064328030934521453394023594276216699981895116770644405631347472553520050487874885230465284943815132817996401873069763226001546613034952111669748164782236283325530449771819755035818882830831226569127162626607979615239160658786599142043283869829464022250470403324215939183270828111810860877517952200305823606015076842753646469089284722346457722126551367990841916746096307522077088128284465330951760345201928136843083774885962450704968253055141952742322238481962937516156161688767343908155075933252467670697032867849936009238629166370468068113517604204080760023772129245126002193373112336039913879111217210455466653956014811217099448482418134967091131444388114900281229111688272513490263516217235160619712610734855953107695410698655435168628777225833480008027830249359686889999833547293410241689767505682137020197023416267734225236464076065217493909094093635595503035413854726404249551102052494251623981896219223813272160796490799801779527199629288601575609042104687412862733996419995855810486719986708179521461775559646436638979772903973865815023673594007359425075466236024198269241778034126843519661342107419898906160406725361575486128789217769634723073503333086918918406418910754787042044493868752499908485236483718336090563740751281438669062931392912714897075866588854133621875949626829298572855885877208331834787886904511968247839838027243629181501017079473539833938391012430263991023177288143724409198133630974538799905249822899715666633722633091904556413699800264198225075284000695588629842310758456252391694697953084613087330132494567549716411355743218044480590134664396899004168724373460830992107340151593217264925900218441629956837285872290716423318319362027106359996024925802540764502852002986232677293483949633733325771422388342037404951344531099443695959313615303499477307683805152446351661461742098684865345136098854900519704314799861687932260669137846358462839120956245715451771427568298495835031545465388262401526036617942002343894092524894996886707238243088808389309701507031132643020279843493260843128292642001203671691521896212441197584675422858111844588558083304598811105381075207392479161744060635717873108106479374274085134621214998165501067069381025416674737837185132419585881920598127694949693125947800544070071759768912104562041038192623411997477200667114521790609019103340369946167852167258430895958974873387898672920854531654076454860211202191035734535166297734244462075219911416968881499068389618221407451674622445686405697397706282566180447415929926518024721039986635538077720790938893570683275040429246527430780788513459317379892788474829330522205298032728461132724170414033565154540756836771349713528827597296224843611220559687208700853674294499410968522711636748662792054817759693626004558004048550640932713803081402207173768927612513375893733218199972897077304043851734581407795639158343363905322439636340867800599304865305890443122099944123547223000696000806279476669111414205418301498882344764905451655696811745401251459406425579353852254627343572788241508253378057761788039174560192779627744114333071188776941027751757906912007429200267268830185959564832592027471740331895864415063794997328172419990012441396742109015595808808808962011934764193094862215684560758933621606264684158208706643306767448260860554834352259249814566176700398863150436146884783271982450868503731746695450620330055175927319421267254556391989332501074735598875975238440646752313262397818663756879395608297235111487295671229561261167610298757808369853525936714986144624701309163031853629044317271107006230641640647968830231947623218188719176567268703509419136950738787062255301329901300023613420428333170884652644944295756230328903793862510339896719735756733274347980125710194869061622385149526048694258239400388979667544353889052093875194749046535937243476944980909821331483886367776576482364772749824514586572387743096091484309833224879634600350053488716836329663487316436418455263311687369029205938724312134676485058735409496959609983753570885375230640063775933876923379584384634180227840781275771518231808585100802252331117769154592614631107889300820021107490691664971698735099111645880039617201580971093806141876804319753788067763852392838452745305338050249948057950797304067662213170144984975363578278674558770132460773235845143987343858264260059728922678776512068753252452741707263264299668563873123759018266787779114921636497914942341585922300389614752404113221839375361928594177827220653001518962031064231059630608849331674969265098334803776599362433078155283341725454243012680056195710122744745532854603598527439171839784228514292142533304036826013794416013869959147648138314223034271062426593381316699280251607614298605297851716034322560016550917741296203812928042049731612758786061925815580124723194670558500621196828413898021626774834915960044733609728749129934512216542247876312159285805262990980054532138841839517492360335574494841687253782229557265398711056980198932493505027734700682759395697543353712076073765239848241174282419478327223207836011591342671699430415244083803851213732847169563657267031612862120858208746474304437042330798338741471556319309212182397022129777004221491343888276532931360035477221678623020808966087618065620314059566629525393066530683089366764752316055904933119809446129080833634949417352739141797684350326645246481531912367566804925274157722166239122657643514916435443792359173889511988344810921447961495380389296654520038799488146944810634693444830368880903656155279542060282591959164597172924619350518415965271203808199527772873376227626832196339222076561600444174610573586949664603065595799283224684027269070308098363849165881055618019516752854331708547135317879565136077952290690783649153960184985937637224810220226997007433998784126785542274470308098655520528018437187458785121936173413929714257387276849693548296024877740209771936967115271087002756304386357656413256711418587239149833907324292766676298617849600317793860838209180680025822387404258802986496316737784112465454504775234543425864444966442098214756000555373796307946420219112615838087194610276053451184802324524679352853616863122606314496198593741818086968765635849243030959545879001587684477011502105579574594920202400241016228531183077741601848067837157223270633432050179049590670780724562878021769451161656766745693533050344936431500513227023645224326205043609752463501375673436213177919968061793066911249491931697663047580364758902025037799633660937628837331434005715741658112214086248270353781503624709915307687334560526102287599130200771630409797003116150488095007860126441131335028385361541399571370334631733031710494904314901913396284412731160099933601495756408901908818634521660568344312824260086792316020679703047896705056148319936385033463425278777930962198500943442187883972061957357513909895507078918152109780305926245976030979985812219335736298037676674923864874651470177890548696320502032203462525782845716630492504621414158341367221218698859202514384101007079597499280028293935153506456443434113217339888529164151144491837671076625421634176429215526312844409590101301203732189523832837412354809525536303433936064030288351772486034629679456004753789009916686739362115542807895161040694943029789932173322258446998546526316674579215585957094667761284628757768630951638989845044424588421302029340827245634589848221637585697144537454227755826860722363768380762365709954140053284490057263132657352937706282468928442784245737511361535212736018074815866463904871436946256968800660217182613193635023779261651357375289261365035701332848097860624432541593318093265392365399278318843780148577889623797039027347213843288351242903076660861940697737832715483621976752581302497724118352162572328647587523781239494598343318855091459999010827337284470480377252507165979277084738619597077161868275957203832603272784340796728853073405901840256134254911242371975263591140301535589479480164547625383999204359821919303258111862814173295434720099968632024235116121805692305021249298277035948879625288883227032680700409437564318550010773388242663042886640278994028283895166066303477465115672737674181957728944823612875652841720188104066043330836266446470505463583412769058842500632397227729079622328208101605626268826302366754973049832919551356778543976367683698990337716038984951867435614423396229070793071310915890110064022569066861329534071806817620766021475995442375966591819458646114608417410548010654605249734414679406941421250831037757371972284469931137067711095445393125891372833357069877656930653613692813977595582780042024301156417033165131193901297929655811059366038137555232782307690666009125836787564926370401919063469091012177299184157441176366478918973159928827246203465449227265819480905988038807239943207321221450455510429582349130802087854108138213162164667456380140974782592625679416228684101954056922298934554571851527651329031915770819719575665053906974025111693313063588528644739828765128046702723327567325684924897133335166125449547080057519765509186928152422551079856716378796011726786327431568712591527083416670452736286974770425451131207044743060608602612212285887499009446777257228414705601047673709962055427717563567882148157727276453680165065369690508533843435481509577718495949263903391626786364125868166696073307322350310638095751956039955110534396296153535778227307545344001255230407213562073248135292572353031103270742788909556732753009863483394221660045402813652754966164846170169477432158622816375870874902611958574653998292186202173576623705139020250239731322424098633357689675566545723554467878044126354064158237061709657278791364392661136754735158400903760704820763169355772934062781604815086766882811273324796641370927463430476077976077129962914942799485433533102746798222339889819841905407436486405551176837199373706287074339558284050053114756332869076250234962932126716204668996595279532545880033605649966143206123905979676064394496783592437432420442646809312971211028725357216780738173548390730482798204529819864205723421448686518397030852227564314975138495217778007272637744805009288388136238120475634232596173618709111511069186554124647597798054984365352797623840687974020550246406229315185829225922553032996798829321331012339386346265265973409100122955007442883133600444312913562053828681911313670930548718366277606448733227943079526600756458916431761720451762335822315852308133112650413884133582414073053725380261983600331451332199838727775529666272359363882153694037266102622688972828397556948414512820943772414906894949297802888323776669315445202952760825715813651197785115126402628149355988120159072651675432199258279514608623533001560594007058741545560018006609854357516960250630210854549549626790355890354159178076807766113271832619728926557594552066231686595749477284713512589455163664239635707228724388162048840034688647308216195793694620436236265195893443484673268004394117176234711647787694936853999648593009650542271290863925696535406074858206097375514945845647021719078958118257099339846648058958643067346738117184658572067178238370978309046907036914309457275052108307568904511753585678626059397851163166118977782634377789716122412320354758120656909359903212523816941854050365324415337611481416299236684906248146353703812267747828366197048480935331653487317568402539972732241627672024731409141096752987772920976067061637420124746698896709922272724059978401068520634991637749440511744390065249689665494666239579784508637875088649405039355130436699635295681707368468995436628547006464817285217546151698171365631795974546569069947324887380264083827746003943041030234542188987215232899371544054412302411584766470139594564955857289540252557939375388790797950269329421383082106167669568886913710682436288199643991677482406699421363527749911557601215098759815249613588915297909764793224761447825669327193762593319625357471681445040652263657602625736711318481918795414947974788534357305475894514038673435310913995701195937683947521848849195849314064886507829446862042946945320640124502085202820928255141657832122230827162172383344508245366586356072953905264336061915418531827887663156310978540633519674465188117953083734763307339108929322324058415960588912480309602594717888780106985460154566354676586571861355475234523402924865240964412175828094560859152517666175913466340325748354615953653645123968454417581460984975453173971911555323354676793901828330359103952102044422279741930178209552376017925841490620307587596128337947681463389085333659347422178666852856904322752971649077612771171120446867739251495586669371580903673560374454037873651846169721270658833731901414169742032508821877237525993155844957413133798587963678309688889999303228569789335638623398706994735136945816661765294049596642459509586177722475096924790735327497217545756859053348919081065152435426610720125058258062023963927310879997334330261013801351900155936919018015360425242506142818841720976122776900938803722038658524482659508417875880219454913426021220861957730952508684068135597859316837850849938014591406166725982133110153795190316069913399926364897024613443976398314795813134221820224250747740868507287311413448165768371893715310231840224877358956208194797884161838353778078804548947442231877104177494861519105091567026381756312525128466971655441041626602288995842708485264660928519668454266102212691812924580795058669910766795180224983096562740204819620576016354885073919900735776367702510782748143906560332493894834255422286240709130578744196609876883612857272934120352888994627349366437878537420698918001321977049916977461766239386345358673458977502786859023708691756466501400331237741579202251797833522243371646338074017703676650850355408052166804847170321352449068352617135523198583473992381797161872627963219404542272799802695602958483026972468640603981970479455071914363340517898671903807143763003131542356362294643706751842911257052039696126323387884231823978724138641424467003080126011624777631161650279969293318115975828943725724159530057651151120398851666233212343573936125586334153785421897831522662678910053576529415895722749745268750944556122489061723350056837248007482282528368867855662444492750364437348849402099705588321058433830202768491192890813367276458035405262531035747566998927406053602928410091753653083763194896297865370721936911451035618294850087842060649336991695216474216998222541732897090874580548143819009738092787838892428107707259804463993916872823912944610314567203015110172040501061335435125060324856494656614776925165800019188904218676606178780399224596717055891100892010813303564997691024961405696674571541821888361837066849336517973362878065066843091652187832547747955374308212051204977249010699024751522612546844296994397306391423047654560100584542828757795577258837280698600398555851317585043128223309592774797038269753886877043485457874042231891903909775871376509331714794458106383939667624849586153169527208090561619771933088057633776375610633771168622407328559992096938382960668149017314764255924759705362353365538288282018111527637421987971413749543911786258143212138998446887152262252124236729878339853561128394744395189027119626390027410864877048923677088161480832229334042564529065727215646021856474486298841610936827300799762917621256091448721591752727794769823147129031345562410004262136846785084645400424982726338376326764741201622735255043323498054718227391744259795227472497128152986092354612989621708943445450123492161159773612800482374951763791475955277770995002987386111286245597868943810247509062308177679756817094429792170506498358748669039007981251771355604883344402512671224527769944940502949528339395294478900534255435446839624287119860093273349941926113068014663893781227164773620456623603364832972943148864105615281267136212006922449464396769324895406343254644608708491698277812558300365146139890209109468538672778607910106839435811001017763343932212473770648556705101693763938146415956166216877182376450624937947976407513990524454704257923553388055853522938973577826113272879809952018577386486317530612471468857714495609017725715237191415760125127179837265433710324421561585133954782529585521140913957888938906168061470810203902436377334565178011621425287555752148512053233871393195547764662211606818932031179189586932939019907071997523299008432992769761079442375909153153105465607500367320987510958654468391056765403631644496272140559872913358706758622432405797836305673404345652803758318251842428027710716275066649463665966313844874715845435557347174049434917296801090535826432331746570441611641080290811790522783943308296822072385919592975150208698203479649895724666265934165428819291391400750583494952059448771953941180268123327179573799575441150318677718104442988436801290189449368760715424471492987230650231239786047449485624526480664409165815146235758014174342503991951491071435236250171645862910368849650490561547946059980519612285227995196389357216617412070843508356400574879139390616156197472140566019462500343998557052850596034056046913136582992578486343185303829679011486373899561327512227233701141461238232738141972357717309432448479166915196297868156482112663581344562586989987503699031371636138320669583543242747083010133514663569701962474733167145540388813928344487327028580696464416118660027607635627961623231982947356927966270328999879509769945020451913297383201817484267012891776293609250887570469792082407629983739215713538817943038309677857682769317085389666097668979034960085384378429726218292324393840455103695726492868012605557597957514861770352249939048407832488215883433550894835680976452549374962736972326183307065057006429742588583001642048720119056946277222872397494282372238950201991148151293349882260128573740923914454998412248852609076629384284069652497813146314199394195126809578677750953864632623361145406380377585826709757101010085440134198462535474302241253613150678899728175622178017061879668241131841048620740796224169221251724037663967566447299559049982016989382572565903228877475488389227417308144613800377527342474460532869121282269625610490183448569709276477418227456606224052044082244061641453135506251654800285617208813430126371460816614564784582374014726988820729953491588241414898495385753870516029613421334888392729734236974410906216546885424225896040242120907485895572735738933586108390666002463787067432644053934316230167424831245635004301065525258885210507762627112932309244540834254446489376125806028144452348062345554250984568053225316393744835845843279227530364467503366105593106751262351686075029764881735592221638818832979649655242844675183981941372766473723208891625954060789706317156800227486119542160978888059636659601390060974609438956404294849021893734195473066918485162413856311911373878449003878532269738578229909752766418542192661626421929770476913171678440434808703743783021695883529377123838617976651309735005108872209130930609079874711977375098097473525142793740205555338668962114563350904194020221858147099172749619207762427291628290867560708376571368749123065895111461631517407910082783609506734735209950819816560347770196729598701044429948100068290325280049329625377250516287725082035600837520643685528253208186743810948215061901721434108181773234576441136953763329423973244003819046411153314520794703733059103251083888059512682648519359714696138554379828278550296944323908742514361648846754926056121288345814760970682857785910582317676919755524934069748193733641812033699472266905029314347259727658183689283072247311612660010073266547818350441925332732397915670808079674062105679442066859726839972924027356560247506388265623056873596483652156312157688299739386744744510939444606305383001818503099560579768529622955676468987312453225680621092430159865157015199874752983608446845634888570672200652723305491615442545606097470672067710743690305271638675137016192463660956911431675248637383237661258553155004277763226602955053351865690558259407276590576156328310781594538026071248625033495130933580619627319359282298495182490671223273544595950779103446629438694439370481146094402354994251531878217664986500396649774763784662957560494272340857730468977506200740938486955312754518495631419674162011522192677586161711679853872959827000213519143710340069702207567444266874683381585231472631404458347699501595346565994564960335697508807954801200455556996432365864354428334195036325539184884417364415449737229988643524269164290020249680260331923596423184133229329255104452462176927715898920829147859645934907195564903189239326748691855844176026161264621850804934863526415062749276831684684879490064382733495737701539952746176703618197387896440555123790061678713828035334984016324656655682902007523267304612690822663810255745046053351807417017695849082842584314658184071509544102745641210918858365316168858130430844269053573080754568467852619967457143761150761463140516675626794657227515354543938571325478310231223291807148729998770242701263593913856812966693814508091560514807541626092138304581280307517879701244606472546951474742674299996938310078402463337442626200709996812879879418648937713340944513573035086837343546014568305922662426559196817636540426853203154457144035111836336433565393005732737798394503492816559739309068790340776688413369969629598064635478876337928294508889120687790862689927482036351837290205803043340585871714734491939694585830698732891887096234489782596885963763288900942103064212948610716343020963144790929571654986734260077423450557735183754297076821835449752739166807815028404390939718308830595270588605561893994598163175372960395565712348262011783954261932955340253053461770542476578626572291362351524989551043607167993363426876892841766253787908906130619549419850199374896789161709027441004531356788909808017204100627052367913896580004278611641078286297294868495787403152823064824738358680781741625297587963516647898993604791956879227251173017917936317006995334579621515062762099758466999719861094005744569787179670078893187768142565273882901066738241742661156341466189310450142645066633679727680934155386999195151704712078457083742942616710172722648497569431329305725476471120321571927075929237330864177491661671782607996964290077481546669111275403498261613928006016402223256237695901871414777844380074491127481402259323638859797592684057755517741718224653009531450649024436490168566419202438317113181332423345767131058392777064778931725746227686100203110616533785969030023447571851290927240825399354555372550988257929060360465857619530791300311511104368043289479627055086481373680642485962173964868671739642333936293253999498908479460312069015902703894269970521637808302326927700244524600848553704175430367338224949045177724269624376184962813977463382315721257778038906620277279946589582319619720429686238530386995491883182769102274120005865155406696319525919263943750553779135974838905905081637401040808468853860688720769383082915535438578451062332457410798062341887518634109863773927674138361149843546311663839965541723190409086151513767709804783735981866384642673346749426967401993942816075136112577087665157765743624435312525733861982315076613884550816978045149088227639891041762173685692305767605024211520922710032329881781543972891784872079251142121402420818949825181940234994758883309331682700337367242500028752099950197178490718122412859230069997621943984550165025250975395506605680170750534011818217788071731207542325037758142339371932584264457962794472898563036063961476639087008027980378549762737824964857685990671176867901602714717326073650928052022889109087889720748156109118304469579976378148595550840915417780407840996316250521198495346341373337733811040119867300566569123203031745062707959703741677382849858290098589693514555937799453008196615365385020114570177232761048956977707557294748545235542606866319291025886822998043769821201904972581304974035876812176289245243296254332246076360848137312554700996178771668180495634029202794819101287952806187322575292508818253659450462302721958583755916070538660051574905036198483238907960517732803462434922780348619428384765556611718687000081587250274860291672230865012393211602815600797261496423500002465692250821498946349060756889240987773634032490947884615623634385153971892257942473319859070674363444101933391187078999010396458365541287797356366631268388125306724373733868172182857503379486752592581745561857739169008226284657488999547460280124913705927206359816888552379445349191948259462337013401324268948922599796553440361005277783647209798713816769777001282460119124935290394149345065436569134838681324266883173165773766076123071951413056579843305967473104992036443162724375665366352602029127176829662662818475666891432989982465217826933276173928032301270449036060908158630841932998758334337184183672570261484091031840437612882894680970181006276862941341256270207905342518330929807033632598271441531699094664887715957063784969738307413027976062815370661020526090649378240705600192033360345429009105635237262656962279612494706463711076172854430211686866314641147747863007708808990981126769340941215795052200206378990319513399432045994922282540741961539354228545367722499489477925162552177271526974701694825862055206825431549342882690265968581480030888610718095949022574094493400516207030263874574836476385501075354239494199648478480286854328217102686847104054949005573973914468822334809739215382270222846460006903229024362168366416813498039786900764810009205702065921451539312229953749494456659131847132035391979779356794535484168314132472200108109493371242774619313232088258321823407606000081428106129320590338949857308554932074295537389361954355641812586633106886789870789042470222486290562987955420801236648391391587678426530136867276629956683339185139843626266807737705108919787342111601181368698797829104489290263439243536676977233010099310720361474379625885961319678602009701352233714794966271817423985519208879356207847914406385198623812505845545466054023136705978684359663238259103652371514990432511099531038445367659348513327968970647950560801534989268036546407960607258995874766699884357845051512024596372850526118141727391579526403113895397366054985133390350327132141353976119037306175116905246724428872138628362040175100649250544537745747792845275776435337106792879323019474322810200294497887342348195723315128180136451387315119404290631245409053363211593314053031634831949512931517183030107997160099657152013989948842380527966363128952813922470394156686870322981439120020924711169280220158140258701109705774406487201173261078412108877501806280307928654637395677253707191777138654239414844890807885192656431178039324551194114865251047740269242623180073624536272979826931668140737831428669088159754870161099258315113889126516462839782956487300797552102534185147993031370587546350971157517892848103343482319236653633458730115023598728993453225494390791436563635325158972168765827180283000695389973416994570085514064898044176199508048953183352486102825654247124452343442644985272825192143673929761988689114264546769874461505363704161977172953013192754530423436206895428733268294657877450889933051423780251557651080417058513277620530376694760404299213056444806710647458892768510267867810021848180193995082282573010433269225487535656085379749482686892819918455265831859640553321420714257146549284920718588070064760974721589657783086986307337031321686455962749423676121549459758627638748388277780148623202444153097765547077782365496372545413973591536498507094069371781369653149849100761019221210128135739232336231904826510169643349883396540167875327576492028545277690475909807743938448719393015089377744355361247518827410547301620039991102597629182984950896956567667482231276965311150331988190347024804048252022323163674693272317189472342692478669507160437000169361326984181493658570371893062273136443336259920498384639548314007191616395218078594803468338211745780574621837940305987615456014526364330188381552427388155891712166596524383241996756245483370672283648539743634165450141024205839348647308612486003119778663775921993798959568150764834476190970297951815857806751835275620213182958386257538734659567252436398089293553148361557212735914614884381367763835967508508367386611083312279523356337797931260302625536964534104306391338557128262100333645715235180903562064345500256564766000027083481144340053009189483418359949335706245928407516809554043156362067979278499140754061715627550821019923048430998277537949438798632686695556319469983204923501664730470434563980993294254852196191761933525906979915825044965087288477101338392306222058271230449551611676354398814960529842241581062188123472353212931911813915850230862994218384674351742152766118679849867248512965005224922713148995865261321247582970442393329729252074839552122417552266078589643311783241773936434088853658795046707012811869524881494197597403855231450009636529523723088822653744959122308949268065295973668196327050012783971665329578867830360154555329438622934276943217344272084240824596810770834593764143745444162874821718268221419791775439162336428010354249512144295408937941723184261441822437863142184404529961121855424225375171537928117487676198542882259712620001958895303382822043535689508229527264260564213644085688315576141682222763045567802363232266721168750024534304047024528948279625786173858012998536258849955282076519449534087391838110394238331999097724583390836536541300470794937687294526310199756660519351586650814082358328672147632903562931661874302796026678671186467058379042008705106849243317678598478725973451223400672569130291478387921879510288842512897255524625428577309899137565378538972036379280183224489497350093848415021583513733917248232811937322863874557772695239221443811637953205723386257443387299452421245019527067828879365314939506822975660416616176922229662984807386464600518526329254335020194387043499865111854547542757648973892764267065830818725102887887396801547421394197011854947637875822998036471820537943649952021122417882055550505141355197200063089848133170522760489442462108158980750809047987827279406487890442370609798085807640635174547722039830883353895078311559763345122893106999999845360618514805722588760297776102652814010104906710221367378182307584067435795511082944027158572276072518796894549405655592932403004102833044060464128232600588400952024615945885085234205840495159426916325729767587936455849806005190400525944253237960581524606313804115130362051435119820315313128365105132928058061823180378975957869763405676051937074828482077279266624061427432405090741217234337525979447286252393017378113672122213588344343117546694450125954803474921116422032871256910619743217519673705029311156845933063747791264643255298114993059439667917918304027466961952599999690754584643361484753398286004519169775995572316404499174388640227129166895837549308295866623654652184516042637811004824574372009581341393981719885784811251494372535400534955725864469486239941711945274434136286815381800142388248458183460298523153839973543842696687220468065966936747699648145565562082153005946068804670160027797344707768155920305571972142815075416119884658300257082601939368052428711096213441229992374723263090789578436425439933022457661513084278908755697366075999714684418265361049476225402211311980321248846882345965834046759337631622060983493880722547491236922037129075931434263371274502222821786647301758376776595627228419412759577133723378214030167072165036560977563443095720309709708064081599652259786673763288805263991751544564526039151788079499828389213695439302714036393167065529335510369874166463217283915809706618687477752515374506228089062591203084576108449608350419671425029213252152530509133125487980441668349936529425052014041030767239418976047978560943357266260730472335346055530324337561294507324308366263005921438949089741582680898518803893395277381029515450972219854594065954355774739925449107733187798738636215434836345790910463526011164405417537022534079354771614979680018014709581029415957480597128120371954000668376795129466129787501119702239776454817068071752336721170400324207043842096605477968896854187913960361233037047813893109985735294590343726632032022197487330856065864980810480078920953923001627628018295593052793193863020786333600900272589318325907710594982205100739019073442517401907113337059782322406451596694644846113724905476211446522908388733113926939450838180693367662614230769033902254084192956476955035747578515371264015799486154925425982581227709351200779588617959819241297955458907449651528550718352153368644082710570274131732373129610010112380930399858918670046672969410172978470760840554375168696107669072477425215085265959993001258192967278991684926597971530017864467662428191493530051557753634526958734279137759380281292263449221767267613210587723572184367166469304231079048602689655430957414032109147941614859446058902627371900994317356754804248369489028087017611779399338956109108337181152103339839910267869601517118439522106853447909366188360094324042598439341388163378773648448645553011098014520250651892337230829199375052098596764181103289792218823142774100626526090709852054505972991401749995158639244860763250168512284628146577929219892596290057647041319455022383625316078516831929075428546362258177378172200384218007853187327319168999098029736886988296731896816275848409832565676484612342355733495762942385421316483307637951346876570300743158300193724843445768582619834643270390965225249847972363234767259313732368391044305203821754987683151044900415956982111591758690722454606167493990678473640758680360093357925465147997906979157637710554316666651219937659312605604451962338378118919797026369917129843999509726678521133077968971952113529323585907953098744548048682055762822054630453798620076709123420042696549574007873344361192470895049571116341567395945633942827649639903364500556545825150453590858930462239508114599281918996833091496528034857574987646780445236955378558249909820366641250744901048512370436171206698689944395496472214021144238000473385831723542081779519671055406143579186223188357153817887778101955561549382460344227055515937074652111265997682443656000542007862620954900473452067209337871372254954097007711697243110245265343319079866186706969585649927370821735994582024931052272166152618552643956188911293689330150200266107884792563824418123227428133896094786124465631614626901523626733476718071996918282388532285880997827191935084807343626553113337612317027054689415393804806022116412503712604614941586439138156327114202313803808328288922057749887216512045879475618740620875005993386852345670924429977065088153033761319406599351005298603564650988511568558980074208577578574276086730891922962343304708869850248160728686606349338244716253261677699015229963845413933024297792543818500714434925504936320556378919591038722717068229302905905973680518661655333040898662821158149284063502533361486339677117209179409764211294442324005853519348051875638923132267364586121757341370826726693129932905913718512068431815761693827005122148768314223787460610670609614939909091600697130239497742678653533223720814563718878457126431892642127305157926054746264818917553112313085897262569953944995213797219973855052688370746551658558428262467591428586145184376092464039258529050450120444845922358966814141651019006064214287190508532753816232412114862566666476341142860816862750554010050866632260266641794060391784361266675477143863005420637483527079132481046551118709819141414325590335700248907009034498651303773724940865639020634950359629415598453741015846767677604371619006230639713066864373908378886200969695979789506496680872799360504938012231572173403471449629749151563143089333196041139822411018476923879280829009893527725087970646553456256802149805042547116249331473140990233116960964878445112520255231365390330708966839159455017227011591850973382599166179749923249183862068245034353947982271765065415805776091596785933286989713257480674579049342690381076514196403399816058803767278553579750841060463038279421890107699725479995165561194090137183871691981573896421465345310933006525062255709684180318588242925491517308715597848586238385348516326446515786386638076727249030193853397113988848572510891349780640968030340628434632623984216605261078035877470505415345999107472876414750956722119339719571601527065886490126541608478369584902307082966837257638160673048381859978191975875917576919085364038075035596037810781039291996063676140884229650796459126608904727826235226125200231166769253072815718171967970868961767398696133213491378739644104926098095630242669500170752093516195916201853590198599613555509180333096816691515262816862315605529827840427923846528607312751767498273338793019053841835056211865146842566702082647197555730155016820590450963677963206777792192901707664581505526244190349737471242029317233247007697181129357790041344298902832705619351206553411122781387894105531505150772266592403333625076500682031735371693829292434273035908987089128415732533192331206454940603162156157086110209627039377617353192234458221583143757260819039541249776263688308701933713570570016409006755048248379421939606134455237697968752897345796500717219851094641331571456959764333167521924613804040205183569935712018956995136311744341093239713054004018751349217316153067246405803927998287265561351679763183201881018765879661317810680987654656816971885125973142616986179089029845953137856871747419644825869277038289081025865569486666358390183466618644896546615155295923210443049720913910056163231249501027460109421767075124551777594006068643688090593214897094244472392647350832298423821774461963665725386704050233732846337775825620833179201478956050655834110035817631677887622583185699253905242656211880265167596776359593623471870761878032084010695097194159029138150968171795186580566978932386922954158821163383538493466032603981728514954698347781812517832149253031441368041674648319904493033403556829499565245118710948171203944708621672395719546577399205659397717220021017776281265157489187315745817368494668414227326410327979622768394886009825382518082106536274240012308850561666850370573157320476028073040070895775284624837124965668055701767112690047343276199187516277449615681797887999539006457641955377587644168660330616215836059800162976887231088323999322070420667802030713407805658655742678616379045083262193943194984027326538597983822924203383088211682486362739687880976235835366257479660039183731051943899704535339216759126188525749540182331826577512381992748777461284837593702229537693711173436713805630530605810180332295871351435529103318635654372885451517225369923020057110083392283035304826017623989178868759930902503308143961385640515848696360418696744639422712293318238964090239066143569135706930361956197661762987165470725293708319961580445903977779026411779519515726391718359492497562903289676410122645382468111631980487996643212886065913286229444693086299999693550255809176867571961901255628278459330856124717046020199713312441155380008270365631258252986887047220644936198189566659928634966945967071928790530107343641231608798986667147438308110687026445259153975580538092401964390540313030449363340615568814407073706373047022168046392319008367779282188461912732360454099751772508571979645606893185624179318721297537547038194099677763790649238429237767284821211931158984631655898613777542341086139350832777489925540742544222412417927644255352127153594096137119183773894748180381841900447194791534391144680530684636676179942818558377632616012938396649255770751011459204849624636101109289931682186994608540122893991604549769522553095122181816387948255340219449938184933327819329166296809503783082632162923451529821214624065751335409831251428496029739988968796684268583418990774870019553515238935635918843502564416342413484809552322928279586768871017415602703327377283967836725599908264433085448381684959018271347860917705739429701108981445530086390869190159924951539587965335653281328621484769333302790316089883627632616892528041106561074949666018344426138992307696332771752714328016499704610328260223346486192405514324295754997727629356716581278707941748248478993285017223369975719739649852577960738933943963131341019825030930547367476245037346618721077312643464996425863424639849654360186687540508134389080944883051902346346002781514222976174334224558317616349720609967558124720738195436585955473864941149256765654525801367657486477008302976297844819327262053221658208649841414050495550869726558094020057182178243677773654126210215277120821468778132846935120672162227661174794712057865836830658247729121177403518609511562398146713206622075791074601489870479460494392306292936034984864372000195011575541411701617812854211594703723022737557912260002711765913359186051900007461857827428313706117581892073182591280768741067308751097470925139953450322353187223081383653833213925955235942736872997004744216892583940208366041979208973635047149460173837934778846516000963093004876133787320236313079961610879834615622487338180815227600204149673060397555009701354272933535398100482952639058596830158376828117056039329293513850481918114469259836731747357963009436468294438097057132854299283340653220594519258522387621165357754643553855048994791522161422094606970001715571924928664657365834153270899933133447262499906988104609731998730000149094327912308631123633761665369511833332657372717526945536918536020762708691552129574282701101014494929090560355467389267591068020632924500893151167159415685719003095685869089518805549125249325001919525487694893190299970742258932965185874607437372724971039784311391899684755491599316296613158829225436427249836521917954803034681647967772615297063986850001065356218349114772324607350289060034002820170378505138036093362324606276478838703195066032217031850226927050696089399201294066958064132733790776852431372205770328968463151918626808490183165043780119164057661395083656965950275716805850138813317604639241833518508356189278627603074672468656845869972079642998722017445343344432145602640714502605413854885553453406765868311807328728491105330192861355391517653085389317528291921275204498710843575585868288881600925475739701123631187255144011509771447153963269534010959318620047537904211681328728702962656348480904474566716457186376656888014878219281789008724526916973267685264613674269647369327737537704049273783439464581607147136818211399646748131581220755169361367758908083152837870147509541742501679827782517633432579291691980511323289610944026175075091513435017996733333457381891088993143655426073578225907614107163953738727738894866277035117932233085575406770179706699469276638984043928422870952173888497580892075317868211913490413696006379332579136494400387716908731832036236727246734695553989363929580397454874108774293342305230155116307084359853755582478550244096500820960161149488524173816979270789645579142136780720909614458732265497636722871291195342603086752880828479987622382471707617903813029354589982185917874205869504754760260235213259799432113746467270019525744976777798668230391626442374136636774786345372646795560891721783406029793234199023344204707720564393629754814346516708087015969415192388840461999902571205441260923549967329295693367168764860142118851816013499529297505786644418173207689909491776926574243765929073356741010611861361610303799289190453477885901271713581693229456766853601076928316791819932623718998398632448038777996120723372881957882276097085857010555402137791912115809648062642858193051169035606621921193213949273690598362564011580275246878780109665482056828583761885173631944888693699259342381660868819231783875192528796354435163893681028710217622813356118795913705686173177874807840736868193830689447381171204781985847822032238138789153781764243859035218721554436911737654552095948393087163058045792847462333106891816914628514282827972584401134222296454378143209582095305270661668934715332218545400465549336890504807220539759071746259592880514242446335711033516437325873165772651731902686204773004670038073609435622575152194868734802469031234141846266226678989727598209258714740337792395123206968906994585074492760527184849904709091006665875721899310304726979496522490456554481496583451239545765563413258620456169972475615568673118588670807066903418501617004982610900894764576406307246771149786726450547645978832997334215324667348676184770007475815276855863937505242608598444019757001777798918209766810682070031923150824736527082957454191092176828645897460553787309485818999803999627121390031132825942961622413842729046434733661528314078656805448556761700573504239049030110524466324199331949402189086512896213810011377539583127769970285927484613107148832288449279798307676363889886035433799559593992304825630143936797615881061241721644042452103176566870377611044233503628868578335920348365247424122133646924802830046696071205776369100611969435129216356105491167008575688509845497211119022274238694815594949120754187147694033745611373432893307182695738613132508799886641145928871117355568682549108289497043277868024429757010650471293828992606330738983174756534271971720491827406119379367066224408067079788414693399012525330949206346944426872163398415289255797397081687663761365879255944129913927266368666680214958238458208696358830893017506010265292186637876284402819966031132593665862876273585069076587884699489373618357607059356184938277925753440985617644680675328826957051020459448703962860973723189260680311580372249805558058199464228055436868437128226046128739254902545445492451558645764130537223486739055283182607981940290750235251151355113765652203277381559259014969968511516672995863067472438489027373074995280828494162869253870404049552212933566288171629700565069331764076842008764816032484980214875077213366414964262331918125802027572888309232857122541387678157264633089401575595171929771213579976857607308998141771743963680744926291791251377128020342651799536328046984111894249145282725208580071694269793733408338123191603388942759914106919756093525387556637936257211673677792482530831485198619305815284199278851069233773537054245436268009798702061834791821188749215854832056977136292792175798377766449553327834805925508713828708619915045330700212875418345118095598639714749224275205083838346566724759298593634669161576843481452257852574600282792168130605269128964726970080925707303079210805693386670698995185717957357767039952163869813005291190485220753980404074637199635891748546907364288440513682386744011273522956231890146568783210553820174924510499046135852720191196165513879126395251608102794325404798424652787071146271435238298418516260334738044993717932192046333529652726781456864675461197097423538100988265580651302610442054805971860370472020988397137812349349612780269582888084929438558510373589274325353807749791405679375661933455266184644520882841433569312471049894356643464194757900154939317869309728374832350505858686552390313362343578463654313388186709166835231172055967162001860261334983895776223391584142564492900783307258313689203735779241974218594080562645888288082545889685494851835705522374838357421506373009771325542666793236110207535155427913248346842747383777901772449550739602108309241764682015609618483480323241960357677805094501080806865621167263113535904281276970636496404345150520351362957379709626392204581086917108012230470430318200501631650768244027478118188913726608626781988571009750394342966645996836924501047862869445828743111301968871129050190951531131577101854122597183466459756651687317149969003120661021679455028960778441185206740696570170561940729445514937479665653374842521951072213377725937394403486811513815674574098243916018637680583223630357284448528534832239195636714121781636159767812689606246126412853754259819350280375074501251407838393344580902857075641760585869466115760674962178252798130280319765346134597619325845463174862653439833732181945311049769082368132176708861327498852311192801309351618244358042389857685789025229427152629105304429435213605228462863760759258271606895988785670423696299584373086559179908388664593272954048320674506804775621042583249607800825090234572644701968551068460876155114293606082525942240737441749782354607137966362892302877426988790691950393375177025793957880799706183592116783216568126213716699823826744322693372737962900734000223454978447373755222421097592042000473410913456350805409654168570370079758372400543395346867995950592413215494562053233415397285603224302444574230670463521879687228335795076048802619710295202161043917159020828527356163443229349793023176699153352454676646692098127750325321739237363855297643062211811086296357178311402918866326558349632104034450258191183080176598268223503318227094420253619795835176105389466453041105130613909829009607210699040892494933435774247619725306465499838424685333341773068111397664406255165314296568682700473560221783797259282431523980790370005190325193056738779306295043422187279189828172112620320494474913538422621624256039808314655363604058792886173562213406161530315304782208103132871156237678931968718035232889484202330586034632028379284207943106655964649525771341042773333521281695833336898252407659655138186751860498478661921895436628488171836255680764021510893335135921830050442217571771384740321493126583669321864538702769147235775633946239099467690402192977702758832318774989069335375724170791250454811330738842638918785363022355664877040347817627913116045671630213629979063190755246569899108569128933194326018903926859847049413866171505661056152889707940088776524296218366658303935698758567441132169099530117534960149995723688789573271655893944371910376164806061076728569874911339567630432827638334091884847937688662375911820685631761054229328749992809953210553760970889746443348415437639362015858808922513368324769991787347451155026476289220006524312495073823218917246528685720373193269956129033121280054662305112504592211646655221900940459726204526739019339867898419546685546385782988771355243137788287606858842914633042111655121378702329517506434346304232851980428097531464002698989684758192643340144699811413340488153326213945008102948832089046391549850755766105139857988835542142079180279905076079648471695416678112493541459853004926571544058409116543995903615786297501767554444893305918685944030107006377816267488706712954970849921097820683683916748162911170546034154501675207664661409347112502436738091345110085937225383341839893758640465063176087878413157767365269982292561024887373052921927826643985892085159370466465818393625793230003575495848237273193647111582464747324807185665891986848411470616751390876595236385717731714368176225098496067863778676245557261982385057386751862598691088692691894494012094615235433256215843861398234277350349711360432452569241598558362340630214963990375971080572825622844507050193125492653780488024784513248572356895712222878350625126243663914883396885741670068124491652148110077463238175153626622901701039067825826955955396975961335260823773045776619611403104406868785153411739615015433657652851492626918250520682083424761390338547252951860768628929969340957766167233327800514156244607741189758799236836789935931977267200348230639403456926647406701150383374809916066716851751853674598045475226353860129440555518319375162561086921048389086985151571103917399888213222975478726789505303060535206278728141187923162774318412233076669412275061441896978395518263300616997654373425482639360736727841612526986126723295162492521250985620029649930203834960402199435407752464633159321021060235483508856812391897561460155537186627837659691174847766291063031767825881486089820592175630908075455730057919923338399111786151131350732356106975841349196985976241779677377743509091987737656993019324630419469379378867845088853961308328020793060177797955123818758511098197444118852183482799582193144678093920644573917325796769433700457599775077233926655038991946394495957467297692961783313738765630655523324098968980720823771662003563982976848883926289100731978240693562554715074630485078648839276141312948317413495214547764690029966338483732276357634460443156058270204849131979333570466750352901673066088065488497552709740776999748583676736875267500605113275534061580068777126386524733272699398173529554750505778328712823387544074678308613491022358285077832202862718983707415782471668152915571127837031199863821905863566673698337229394246045044684004696606838566211690662446532021850149524844930547875112369230544075451954984662011316231571833542460048718430094793924587326080949371417187618468161037709058355796156060563905722980921899803533096955462714465342641898521407083709496614004637467726730094649701840183808853566758779269761493883980536707390685212744770586136307739933378638063347700360300688230898804318734116100673168845203149726891171158794025280538899886757250355682039674540134902607422506407241108223120834677164515296157644425525172493709249461735711879447293805976306176449521728115140445517918269344967719020085872688285659448000107296105856749000409833920661377061119395354243278011011435237893538344076723130082491211506330161109175734820089812546484716610749579218046583447934789917411770462845098883905450680943493230166153532133500154246221746389568628339110815897271164599361157318540234485481328711362718299234458126516034450701786260859183761727038648006201734090246381605603205205441518035495506295750819950894567481077090396982804462715095745640649634895945761569006276211430586783042390337122259702667310799487964436047926494279940771278698818556476113389574887465336017661226962269736740147774824584680381768787437850919861760546373134847433007460306638735146688690317283324039963951825103670257060228559030428891822080784554830333490279393854027880621964089209518222462021009136407428631226268337615630833764457796900224711442351577614785997208895653071241144166914232237685898568070104203350530532565563965314025822456173814696108461053385831395062914059030414135655608755429736597393256434729458319404347845068759917982080461556873801021502221634804878046937846274554183742550816336238147046547267230145393938009613783907320218869754704032936400808362009470303866218221348227467633543557209152223137950195977228940586668257391669494358030783691548207277392790052361493957561942911584023055275442247785410671829161739894503963463478342622563972513087754203303662105601947559044751175338925745404526930933581785093084322470904936911316539501268406520005552158528793887459851745847101291336481806037767312878574220163802539269449813333520474678567746708729746691209298562330252933841017036475609250237724138264810621027347366511309158378130996670473294146711664165344051372647504108226907231379577404173836295284880917599699110185257434808819731953308915382588063634853417340310929349546681406055540413169139458254869097739891344847955160638174900754887251001707075846764825776641028946945545033338042599222986643677419260213699640202981524055022828675300753894587828768772853234405171735570998753854765204750834925014707591648211941459314002260275378019773501367383651370671695908468271439626502599731657629481302823567224831145741115168657257654158017811688030578732689406576402746541568308112025268365480916519339600356021747782753347587711064786601662870591801977072626123589529344803895174977105177392825063978229107814545562056467744484806842510077248387598635431531611209809204748156656094411544056491076492080131141589797108303039375130319416281774784934215140588449694691069916568221045729684709126432337626056014747466006962979169178330663773589814976511899105267289970961465241388654687996465297556162247561269351209331157443031035445009722268781426181422660231818224196354807363933909112857825928547502141041385189688808016879231844706037075919409685854553630703834672104009191554571647368756979710949962345019417189243928772715801792336233332245256732200295259039194460816260576637977368120823637940841323456462544337413172239704709348927238546859164734754449536037078059096363574078242904524968717394397051217175853497606869442924133737538133401258013988067596865767238067063669472716854791485828350090110071514980743786940919120359858598658568666057969433179842994970938523029753856589189111633926303561107438512977101970409423260303814894828026384021169253688937460498868931602423584598788417381175663752963538387498030035379706978962890502203946536809227959291307278842553191350058747971356499893165891642275377648447253910017836554208430261921385520843729990707940387876153859571417640200020365529287118269561208559981319619583924528255382710299661580321748245410739283014691473570541032069962690622697554872029340279911132853927457178357678758202070757876933692230191030782680105400771889644895625649759034905027224353459989449047953854514120778792993700912054568546884826830071365211194237445090746187793668587246662663067258452389304345289666099504511351361221840615393658546008358736631062423652012173563683813081132846830137653035986797940536101999740235268793942377795851971469610752285369343047768161450186883220262000746812306115614285098975755999089459241718461179106806374514066426728462846027275003857352628877809045603653750453995736062147661101897625420370868034011649000626495958029343271200701109296672452664083039990681452629911562205355667211527823448027357950695740301777920214770160657375670650886509705289734642657860736496933322435442943775392633247394459479036418911291337434102927774698878249618353391748329997252898763435745775255283297115431474295570938979335954299577952367265328047893973040516909518043044957740018022032927829888366018279940461722726180661574524843429797572279415721062139642881345360773386308084607933460574272930699995903790913346682468915812440648979406853312501136906758446887709091053399785825115640026806856863882768047337491851799739758671635178288133411915465698076457659950353744870602114299982334961251580985452271865575777278437760104952342928520989426579673064722851595975888326617310251973338615056338891961059738362430008126832583601335356211997810376235444519127298029505431296283582528472654629544613603277679416682485302096731102565540085681733811993662586994199364880419706006082999379431124452995843105207402617850525085049112744386117167426749228402780745124245156700019167007762944681062366690412705921414954002064111204224150577123452102596678289345942398775423070748947835873597786088501677744486218057775804541582489956351714390249532926777216990111375934254331926045995082313223816890694491632670169539209630606877212406995371853364196201775160065896338339255318662191408719249143023741322886166691262850196249590335185342167893846524158683042408797499393915509314413482009327026394758381126016462207978806412446231714639430531375155155126788405297850897798444928044878881125095383423208196297396400903761448675098574792527833480564619102802131743850344397461144380135880037636858377731972085410337074165472862000004352462537874111950096143610760618797243641982372436725999749339248590846829981022061669776796272762016266688251639911654311017820184965748663561646298644321030693126678420781450694896737096054898259832728248081709958854794457183368979127144742636685463829116795949944794958929106285592760447851296811436384714203373907175334467590702258654441330610751129597495055544108901048542270024226282809763638473120671318784131169346217186158425686429674908925923776058296293658503935173217995144555039765363558202083156614500805430741226207993025806123886390861092356650723537335588725108425775895025507313928378742140889346038276768075215646648880724524537088453282675640761617291035359655151392949197626024999420044080109350182618538020331974190889119776733976456878168302870467970724885024498670209388961738579861598114082926417805089280867922828139334162126626191472383211460664677109293809269071236966936179653772030229960972667892673388362703881905588382828368574099368235420657689339559871565259246340217349547092025046218965527935684930847886683134139162053473613374427833325609069493528760037991753794905986547329090870224848461747952960593101750903098335183383635934907162766434229466716995138824578380414706830020240738789244126400713677806801433386089532784795175227361654739060548316250031559052360811144669207433752936724117678994365774407285522829544601998758548669049638576804717304285377702039021920214094994186749499106165722862328370237767079119342873750782801487898781220662153862877474904045782054567764783896990800739399550005855348092276746640645585096526915329114741775576971360473111118690793550202111391785024024140187862169150613237916553705282511418063311287912383004308020495192708334520536084776475035717460342421878789115987198007429988679485747737861569872890122164647970153168184036239569936832181020014069462656419326493475905793307905259405044336349108995618364805863716270655713729170685602637611615198236268382998079264721535830200720082464356330696571533248327316971727595504705730384323749241813952174792365745959245453331053529306778133159694019298971369875896463686870620145696010581357596527104297267827149866628911588191308809396936150928163959444465386823853037298360908711414225129211914283228679167266018041318007839215539049685945989351245639384247735736501567640316042621789401809119498590901024626361873027155853544946883780818056847818515769321577845508779307685918726792794243066712432777946348416977561967664633275123143616579536432122502397397236371744634114916840413421517030170960012076456105800441788172555616798060192327190936101849616328054894640602042261351315322492493697811723892813000771837857144427286670795587145852674341238941057867007726678344593556096988189258500134546406431196553187896490557990876968058873922535309350595999853782353988379872449976290884601737670684693091604829241233859862698989386074582569385467681404848291853488640462854545448417140624687672300138771643480613777492802902017550809342380920649247118898556705231403520391878830798145231006554650622930968998496242055000469622945751853142356828589323468662006584473270463956936178403668821083323434777078997483999004025895440806486627604835938964006287060491572034194298506626890337156012065663988136849606595272961393794317194965650692875567914074353122582832557408578906115396091240448095574004823013622577039153947296772108150355645139312812334950670010766674504866000477714739279477331270908215496714146597219045610396992115073233240714270591918527835934978205810065072465205855375169609142147311955804985100289202706124982877148483454349821311261264376796214908192885239550998390710110102267351791026822301227851269320279971483554280994707519841145095890421647040348160815908411458977201477631207507601070310152726321503971069068277806064735495650217459463337521061267656302161369281796718610966602259122171743222696072659413334764711755825355665469312331324167892174614409241674844493536163495430239879463244560356885531031041211858527888286535462610733383109013615690213525821024678791039740337581395558416527436328921681348372158026713704324255587726054095498730482899007796279588798035674642061522256972362972408747731871584687177265846364338830387340893085871698223636816101452061570801154571589302183023811682369028160729555133882478713386348789057931774153166432289562672081359491024122003491598491755405069231530160484425626139289368897374076742286888357153067342268146451734545439737524630472378541168713560697409990095206274264607334672426917648323421077791261201866093905028619340669046070081652617188547466616204921095202708486930528067847030145613097928678366486175920637202455225012061609474068138023121237056130034477691734548553471552227324682446638603688136432062483139505730125798239854867192364266324032259805678828016976943657403885835482739375327704098971730232938451648544902234746428617090843316141841840160474807669387743283969206685040627448092718109851513800683365378457108500762866528574717946500373402277889888431635446297030181155002503845667180656761080265945791468016436408444534199607009733646426108458618800467714998771294240690351426420790025096371259328044415359691873979116727355507975526934560779521904874615026756499834184124326259044410590102609701949942328020176116271173984463554891457657507947959304496270173633578967867290812481125617827303934760899792657878809805776130259208872444062150353132276229271957039834394377890529176436419888631207977926490230107854351600352824777870759060112195292872781456547401560700676188114410602478588532783420691678114416802820805030013047066792905018184212873908927460643297135233406875536479215010019892486854439457059322138702089035119215550378298557482643134318480521414367074394064331646696074757997132514645499597204040627061317954263400169804869742525315441164665585110422807455405845205366141323666921586243640199595007192903226684352839990526215917146591082542969506941198226249490420670283017738814292951447040990907944979331188950126125206920370958532855188866514573532186501101957167305823833506984987320069474104480575086287647454162784300476070464334998444383562910894994183782592690185643903440974833170672101373481420582692406571936691626202699506605969792586539705901306566545922536089287905647064445345966650325131462427000438616421580200970637617439991750710159841703825449283431596577118644165407965514537998518661538708574987464360569758032150288557393585479210424765632973678553293824757337160418376100617799730231950216598743452476669804581963765824173389731894401501308737162430861792187384315708882606443250259742831539228499584827450507626783031074793326483583327815616222084148049957844977941621438750871277847742288631960303851031882645389464344175135354685649248853760228118206734581863387210574222148628896858663510411580353274916910255378251522206401658294986294769859508485125316819388913392717324105862277805079983204952890074644475017731538463769670412132934425595003737830884686054444400566438089227976698958745340592767243505100019269737259691740416065273220560598982488617220811861177227385743509834420086468811163013448891938065316541381984351234924198684420485067762676156251327536785158977921195059562698756221222693317312594142339656095471286079298104235752027442832639841984789956412113442642473194642419410754711858359236426022818580258155115394559061170597887901591907759039688138431694657553182706303327971504102359912926860979875466149117406901596567704866161513826735324761225136475427788642818637322008777500310059226838079012550344799783325549451847773389816627025807479266210263991433879748647500159231703714845671958437459838977158801477541379800274105766015491648500306051692770313873406834394745027681405520947352596847495925631206430056876001523819330420724732341581789364043832147612045683685011490025102883414130376953737549376122352853215394497963546386029952420493684207234181725431388015260035271393318334749944783509870840924761762443830804354288257131222412939227964486174456887790320270375173354556225767242480023767493810642084853846674947228882742353494053600079840838319086247135525028072741022785247391531665978056165219308853678259827285672533599209730813214042053979828561027004146829359018571443674236261860659837498151086041686184201048741525842451873765688938214831709464349166373580165020089193036657917799888649366998528328329111353865377384914743436896244171065247324746372012314824746926034397132127660031990517047812111320837550629884526435518896553270595290752696673403849458793437617569369721398567111452432713205503526885633969946951857479584626595178504840704983978160877301032259224656559734537921669792604827017956931702232219189009066367119845775391149625783445037996922874407128381517843525992444852770714628119122370576283995142533744716926327922231362971244790890978958210724819000614734288244987644089907246627030465948832393206063787024333430454040225730689853047171766232553612782559893308289465617018184688710147037796607952246684655164891252409194185782321986224214046554976862547484808371210203765249790726927576780064576563079340051023737341889563770630783052060060324616984620489421666249914889486893567850591233268972123902492701067130425607678732809692372598309662600139001460902893780480960520871718401109156601733958583710943550546910642489849021846418464066547176570777949664272526582622029688173786559292769807561513531806269937414343166243241506460841522356453136136557920891071330983218000451386025873151952494612800276680361273397146276129572674718146255308666066028690972291782196152249201748538078497337786942906403805219252064930274973383361017771502862204171690384670366860592886018643200305430630409291350067132578433306064888807148890957824312210502027959526072157415482553118371447194262837843401339240314330408773713067168708428279824115512777586340927645577283588606141753760865678652949103833191873432788854726430859035103450066419588185613386023996543599426523666009135836114606121182691162826778533811594072537023603862837683311101003296003432244739518817521481530827784012933352684722397044413940133349918763553301983685287893047500852642245159918733329682145980453270370171256648136417122790071149664433669307874107276226389952688927977551522702023460967617115024502304873972471936827043420837673388054840962366881813854922293651159577666404491551195690608866145837211001934166886904724532662143686827542631743319565706752263391443838100948516514151993275536815237782515445005712633263413186795339485193747469405562910101645384583931749418122508364855727686680588508715356996328065989677472245968816545364970661790229140012991724452299697192634681963663917416697758239236745995419652158208296264127553030301078318872566931090282221093744902347116504176284629461406494233694395880126222273102962190070246960161613360952001693932358484068111404387028303341728525976743768956839337588042055491388320276359744539037610187875122712148124741265089844884890869973050717327947498574761575013617696517186210957570855201910673911893899558801508942687647039946184532368344853154996870216090601423757012351235481874591813151723520784169651550618611903610524266579970332767999856198761165945770575613794934600486972564838073376757258484283347157382481950863887977142169162511780472387003587205029304833253826108670268138995844823615093389974057465171076562291896567405519855000278822948000012614419886715784491806173879702367408643297598044964438561844596831472473630640256012768370998586444094253156234674409672732499409289748181562955879060391663732688677549640015768785186806331282837684575866881959976860251100989505592928253646540159700407715179741744310365951293734265398950714007048480527817889662507314781989416445093586957055503953865709126319016529328221152151851780185984287077019268260293257001774226441771767054906498480858148932489815571153699122441474507254147360787978358893417208224206240551395636810165366491726037328807680654029730313627360807583822675120349731068159821691329901876546118450367628294604612547345322379373805968987648037241359316010736343390432312563884053888504819106470558737493561728842818027392800490066871634553144230112751599993583653204499949627855686630200601636538873137838316722144608721507161879177952098308199253848969621325595631972858989813972457806340830743209300095869548308885083446126937104425157371389198434537889560712005291141425779333464262684843982133283600051155251640766608010805926879369208937511630529791851093887572563031707676558251770656080847211640675096503705465307412663306990306066100944513920173832461372854833459914113519900272615644013387755050190261942115447446800201430935865013839656161290367617943396196542887481611647536049085776071273896080532699003744950105224834692151492535252042149953016677034178465483334928755879274672925332453115668353883873226672205899599470101320875043937214287274652812964085952827764270388651141077121547371783090793656558815603815003888135559418834407510395331081659785311711342558287108521726345904191725221986248570179083767904271783955665188251940083700675235388331398127742650716645290304877513544800266328285297985655934960773098858084622693463272588190977139247049202614111551725096270257923050124178875121003871058313419077953958662464162703507428090638139448331938000453811472704127266812355061925661885679021050784047956709327058398948826042731207588141031225246478988731998918378172501357481841967395046913041752454702019012542291315494178509827501317012817162828719061410463475876379864044665163098298139456723777178540321583832060479114823401685669215108355979276270023407061983390728655478617422691533546768894464589670946757215967362366903995883984370375792654393763418925948172823864969284654886769583108612149621164482650570199770968704936650282493804174094441342946606955741805785166492943096920882895530118661729880856222198070662105349664706056455184301379288673738547984685082627001569757460523400238860055301464640842223766134432240839320784804044323037534723412029138457016240347769999251221218490155287410064389977016552241502283866604311096471736390123895171429486260371308385353817620650731959183265087887073194455472639029555016430398250088861872077103017414455513263142601665009534104258268021143080900006087267843975283972851562095706290518718024350269558067565028635526934064742906056710347674987680425190086160446739609717392875466391264204885922588469219905378524876954450622568283630809276476681660608414125119685043916928392202980034226912482678870987110795002990702352483873749301784509685793649832627415048490438634256827730759912365685933333687152843004728580846237766157648257893794687926261261090764624242201520023571218571103580139273414098091241857681257992758422894484657169992013739854280936928399299583575877611273758221103389917362895670243844661937651391901785184376764359059492723059656220356552066219084771198764068819327373421854318875691460852772381852448069214078049886446353264210932861343075345901067407381521750113756498396114956513434569642873147121648292311146626741417962216878984101501645015943183426094812949540235705062247678044550455062816874970430005621323572341069174105232702147108160523754152851735413320955525545252274297373870265388929841874348647636139023658095507008899604534933861690868500244218350544356982892495610275054219505069047460443471346379747140386600759883903016231071274358734857991575639369203475374046931435861111913893926246063937516726596381596269558694738188077604697000349355581039814002825474483919949059828630917920814268949382357844193346717962191643379074373538888550624957861551073548131151038977076245592250970005996972530805795863235494474313551154928366739040648073325696992064134513478141886236109883923425348114161726378216989003567275972094524386661679923645508152442112529636755777856697366055152417229498394702242173539710008584683368312644427882368509497547038483996590005920187884204184000321990686922285775243649159438222199059619609329562543545685355349968504987517041100366261842862403603765958613594769240581342908641611539101100534182162721213723578047185032501809962521526378209322253955404133905991642334066412976408141239660220157494223893307188521874251753929164143262504642151315146852529867893427479836046153367907856850071493163567536404370200536084831179050764387169020894138442473410101599498575004958767445334497492303622739288087841974519802587803209911459782501110004035715917414346405119674704133579366587116680696845832779451227931466965727499813982391446375550757678426879980996884872240803508758519289531468422303358190975594740889715975099891162163593389227174113102838327371581046308990193589502664396459395154633924921024374718236055157209867895183184075469546044220741780653377512452553206239544048673443185318244876851395767982052578922856180765904283065598816737684962106325835798917160572549918706010006247080267376603808747262287508328133187405752136224121499886038303673702599438764155786990180083184266006231296971472545735331741274561728496245913177584805186469761293036228643067537648491245156470786268388671793692723969686820174682692633504301459308741623528710779720138757339122199959660916485076419813603622490064743896859092147413029787569007284760369258680065082353006791099609234611097460708701917069392148790044588207693012687971069187079637122640507767631778678958556999510101824530475465931343711426608256685786368152499301721449171450529523655004387036805459951326563579272350347136998463021023932786535938858704944222932405593930155250485779081945408145009568588864864769365444601064289528485878577190261542230703014883740029306729862157991154795520968940897899943143458015512520682393507356855520271645379369518118657988262053905900236034057770319569998713566430541295069973921586662645450183969928680586238203769720662389759132835039699579475257092951291999509138640217553585361082632489690125962814527621980089015231233480884677885233457252773251591156042358899617939282118794876337420293279611721662153379492796238680726964931452227641834768096720632798602060978920524813474443527743242535862979402808645750563750232857163028077008501031007548768535475629979749293922008043229102602063526134261990646532539221429378822828347632484483110762944181597041533330949534241139402559022802308161552532475025802493473005833979924850860620180502035134976062352863196200942112974204432548270492433874400196689850333998118844010095532893491784344367781766075926874900642468499586482499946593680532927613748024122906235141776799947860901467105069539132142713893653042178854006383737212044520414797576085252816906946269280488454827346238940739374891955155636906279576383241683823551696075873049420272124046213234439103086846451385324100505438623346508866824147057110770183220541354812039488806826726395237093649221070926376880729480278691481454223470533865976574219549633039901422256878112889619320457048196217654819103835646835225945085017639510878592070503690549220494826441248390339304740211617298281348070549557600648791598944462925616693782108835137825604296101100397912296926661104653575063577485520595998847305398754948363774470342418184626753635630949836005849590943215987358955489516283655262439121898786237967184719115248519815047813988098635143961663070594852673432475895216889689503502654192944531800852110608154972539266245737967640876929631186202095592845742691583804708042523817269839385799527558047710533885609450281188981218770507035324909463301559653954032769439940556934975655499130607535294604549306518171541258913912563234137235615155274665784596587013557801127267476060111687833462765638597467673949326664469960392866413823438637779514835991673587551456885800491444669346894793550042117592716838067707323525849695665348181458773258681497558893626481377557744871380707557851706458193548283406552935595259797428764349169753137795810828570650482837146373647537466232588282025415629897178067115064463480864853150372829300164585250968144890877063766611357713180312064746866723731136784376042647849700410202328483560198603635256071956445076552962788505152505591003329507553432982334729133088340834445973732322774203771241434119739715679970721289669263282041002600153270400163098645939660583060930408828819786828703122429469579984800411838672653710437885573745919349688589645502264343468259697943546157756538839900576234654379801164352271905056048034355039662594792457240624967643748405691964058186919407159373144034535220607620628361987840116275956941874584462352852441613359242351137758753416380949382429151556660004915661908891070402551607659907525609984689482448549209671826283817522152583712526325349763972718642272844857953603669855945556462791194748163151874254633416315027623226010012700136893174900599580831029532295446151201293230006586617583663345219294827883448345285646645329729766049466003665390798378834073912402459264575324978530944919225618684319500320827340297800492546242038023286354021997192919243333271645928443081143721137602660267517258318543115599155354532589045609143128820266616118168304303524952866447111737836156991308822422429009521643146502002380774619847047350652312370788386016128774137269131207020200134467455227402319417722225506164804029223654373657564428098211217861566078113497735944360734660120305368484207697568625455758938346174434712536385399174768942872222097232712861945417334349797546304574617451780527290923919769748560621145511274323398398745727194221188640046017194690849789417610606755061781580670459157801000251897264936164362364344076050422850938087132455766632183866070488673047372541450307837920634138187613495376290516944910647776477611848932199336543743256255001237693003012911383028966285676942832299659378366483899512555376504018895619960072716574926699989638833391833920237899610219628413473603059018896782204566912582910831136773623391611052658437780653212785044241795770679056998928349315521867739447415009618708433483352519552673137645688209241677605300735557287980627753834677856513968863189940092233116970110944945269298897181908925330546901551908950535056675586051492186892464545805417287868371489019897465315244099941228587154553269952017383219129617825321136861049012367050887203237252883351629267668789026121800483190501670154761123011248460136831262248613459639513677807765555024083279170715862935316461124368756484404568218100549806228975902213062615979648581663241999135378177512626347995271066742668697196830925888675687661686370785173596494232336698601549785341580981066209672868344296443855982110040327198292564459761032658575636715406682244626070082609273661448637305220937447341134148722707832116739959117546002288810343199049296697254467996816872732775446831072068945756126847821219942551283395883539251952555459850357286595007553526743904787436066033110408020760835291804536705854132869356961250266325847982884918269847833164191483442014796094924610025310888008278547989894194513220761034485663274022881063728326218429968001442881532234881419944104176578292459252500797459662463210861769550855158907854796321268207845917866950993300635306621298156410652122006943844361993954444795042354598694158060526627840730203738960220371018717157880424149540735632757690956627935973789813015053858799412303847555693466229333430567049738120609335720058431538305772945457166615516344949863899415441054711242522964503430929305653061155965740259877677449419570156926320403457352381967104113466992636735366205059910080697523227274144428925628571236958242953078513412525036206508467838042849236522217703874355267830648546215123032051566592251916252078528721558388877899719495037184060338718141158954847108383835260032947473412812980048081193601663681558275476916827695737700061647733160553224069081348118792926656338207505132549199763270455005431937445791931399876817242893367216716788147880194417323592839511123072227266079388307134099909773478337228946299424831776646407505560238431392391295248625682510946782929878556254792931902826425175389549609242548527568951967844391482572509866028583453125618667048188279585609116722247549494405499870605506249210076168990362144393296424641386085344346917167682792725904583948732077565222879494830340442984755493175563750860086279364916587316850707231154500302544554030645010607091975439713344531229054068940075015186660909908989415432441644516419788741908806737168669930932845687897544272083478812293325667777967706651346654655470866263406121846846343253353841397347407964439091197963313669430978769916473534239428006633123061685349367572763760388147643483283163812499049535964722427141277906264883902747858075874285501945889572635425897815878739422867643574771074440001543209508647177603222011323984971596661436770425068326944664532503811938438974071057122108871559593801862046093148562330574255271185521182764093932180318751834837169969900145854850832327566347843680183441165031256558193632158158227478659161031966402457611322568761688399152143697896466219152760025784900562337601656913281831274698133942466147260086717830420680401210069327188888061555904777892279487997901940465769597449284621663210476296947330513255670657912109826787435773113884667054906750796113951158793275472470880755709433768929079761681906296925077681452609725294222215430181050188358125387559466073015567866795114308217097915443972992910914455761779567334352482786433259017906705185427913934219832888224186333623825559247531215684774300391723318892820042417075341480285423548171946731311592584119177847559288667820824581130190822634309466203184024834680996850919227719860675543508896901205100026737691527477097114838015382403408882748695306284139623347282794899233479753199209561960024086094664306063049634957248942610125466349207824888238989054608996541149204404794179098446398414701002357730039388224333676516374203211532748017522321460813239409429245609269288696055794163433853178718797914922684069076860810481610676489191381751305568428813525077158300289273911122846783974243278785416600620039236243255163848739574089192108615696846642649244697620206560279153721784099853022912916120761988696823367017566756332341334742078355556195173108164455328772702943927628532733035921911009319429489081966097745332374013307281011592920280600899369755245881874501365044643409015426092372472902600415617006924045804857776380717743307705772578169027110510179625314808242822248544958205768191443040177368183405276623226615460252205017974150135519764837417269380745359019419491356967793949853381194783136758124232176134335170645555522974651530755430805117167156024217602886112604571876795494417919620624944521611878794148429597923535884982322365404380533300301480078420234171511802024707027811306103508469558304041788414276384951488263627348551296557174262171546134606406867772635512850599437278611214238682435762981701301696677063001226112877277413934940454975750994652974375382900094957697500467688249569516704962413030647501469293362395514134139242276638216627899082974293797570796213037234165916656320377774824861439060448412777734288744889808077925809435399419730247380329767978012810536549659906281722043328748463562998282088307925247332263004251267521289833946860416341071244741060107451145915781420963269838067866920896336679085216049419031459222169022500482259240673039760098274988894489017026583073487684150601825775057937489886549337331226858392803877018331305371333834312115735495462227573338724185428115374556747276916139613405265140854180576059379066684942615612095775483853373834456019958411813572511529991731130965037374586668659044957877504970738370183695038395846147011877667669348293474957517202163841097597519226057160679459360674315509500908392971709363990155309249573299246910304479692479047020111609122496714446771343630144984895051195703393781884865811302772378806903926995512353273013192282413857343960669361687500028769194270546846560485836226717593406725784262634135025961208941112129223418320502662814671865010935048038443410141347061706842424936730890629451547358452900093514523657530260052262455164249207012476853967109393733607095408812930468085571958891655426266490181822406147679718003399337569867055939770624982830299874149595288319728720893206608984010466524687418959477098363105258511014017799231166263464618711659968288788432938385301714451131357086556221823673998470524649671103802916031461698164001078406221504828855826273000185058336476509960462664833351213397595890187594893677017124074609667560830643625088177734960941990614683625612588654898823654425619060890234168172719787505916942304459336247038834469449702341320203937903980737301955665134534922331969022327698127428585471365916605740183743399270219851414189522433070823617622223976796559634647608687075605609094298744071340848437231015658395342168879835187138126913638389491982814293433582507565123069904687432783678804537619110570392800169557314342438688938054198524742899877010951258799786167263215554107260380587253863129212287388341158812958036037410395801234392584302616604893008820578136553830499114464420062575200741049462196098403049289557287321522858911614930063497322862792784803849619962645654089531753213863240923149131030368104228636728620057041561992983799512602804953345632619937702671907469324109702337292991649983500981666863500805952527529807751118674741728422098298736011028852582852853219234245413440039575013033964964816108535685027694145100933666909374975400542272012702007462117113644628254681166944001070098361644212130450254174918285367002114391651534209869915871299759642668842626287499991986191756232685912745968668347954620774992822319908496370709412525047311860116147599694316469153741027971224830736313728208940613366710751918004047719656472830489471202082250865725225522013562686793651970351508650318763407015172715420882215560986910346886766370668713296516978476699572707748837294625186686721992064133990327217191352622682212717299266590241324917297969027564817933836335310869848371856198515837602735982345845428401839314292679299854061816532455310892722770794960753584904221350489929543199033650715540772114144073807044686921738095234101996748272310029943439960054536010680682516803923229212494425221522685779213857606250259627662037429133297061909770958588797100673252119473846960007025840739534115326928755286636089525648193580069393200641268570246799752366272364764388002956055401833785076191367000243239615420461381374792694365515437284235905095480334546510869262142885407031995518902689124044512826138678623907247464701323627702920706802529169353767149325250836063221088855885535311436596095534962500879640024766530173844850913397857076379431724721745075793893212215909660145547490420125707079414695868770557823450086240352743627513620174254219066632392802177371337162110453868066574699758617816653043235489229799532530787426177133516113585105634251560526761205247611873005877215082571754914089072976349483728236553678389942228656653357930714960668605676892579367036318219121836257963384043628983754060401706521231912309627439486302216002586554438208783194012607238073014459488836291599354318320077627885605547429887057889431548497311850107289322222909346643037782987995962689485230002675131878869891447088875485474092005910379412232789522474755897124210212469846276576571970163334798555769254321624414865831944585272736742874611751847914901778888863394845633295287494057500696295981506039782911803685377689934002409059661385832358676727131934275984531149684855581877119525343962554561016506132298466765130186064194429717562378820795055759434819869165289647067605865822175042477564095551329133933808962079398657827563150644493983958636591018667366708703162370040852518814264545925049874501713493175158333924856180449641147668593286340496806703995877680337313116647515409624279574966873493350240826680437069017331145080533323867996956330758331715086397428457084662967367619212770588367613651928057503286487130261715671359404423467923996575162252651381159173408303567885156000353648111191079144649064476438189913402417827826279328204940693449248150377629033583481008406194403250201092501924733945878647674657192295917617659344359769391856781535097020243891272039364031555491706378325129043443196228224243476763690844191814044328670626995871034292691346476446327831247226445715949179603736306321537371694354638368218882308663244885180114399468212732031823495671162944878633759601745714458839871643723582233101555225808107598705311838441076550432367298969647175511906101071224709206433069506042071197956644668044483403237710841214568203650924558442412650070649090929945975488189963830784419971346455548925040197827555500045605809962684694353545641845841408490932205681042733938315361267755614409930277595348415590601028355819393300444055202562758910381430699328116464902910331348286882660907919276430712249666150527879099302225884641661726005095909821187738966952392244454731192815498088036216789492775624481788608500989843735311271368931851821909081164777308808711272917564493105184589104200872423837577326529799456387695152394161477255869996145842345915352388132153403292345916870625515150838531962357987028823852527267954067142883001935659565349057157004859349414975660204355644522894735094943699940003364545472212952673725150483124813088940929341257732292289621927057734280082625980055010575828135007972519676049720305001934344545533629918187243632031119963999995787892770278818369871879800967280138662240081476631296275120409794957089377885709259976095568355313639193035039020108403545946339696761297354584401948086855889391817718198122404460985804890305334488055133851911332182265284222519726080684439575121018961607227076804314525575813251260263229355351121792704547753100360710299850518972924989748916729305214625803380175910681340568167643335012405222285259294863041765135819869984748398247119802812246420956324101297776163563601955698178271556038440449851323127802923432540907920580368444345888494673113618591797454853834836221912465515176240072785595256700525341575283588561332310855705796789375341481786234659878523119585994921904341938929082084994411143597718244453950643018797412437704436370794734604343136482271957010597815598733741875667958918032137626217170686499218352147947182635451521585807935944675043203598806118702915774329507786765101741753204404369268113192141544776218196312042576046852812681123915185456865893007912764890684375912135218409580348117736357086189676598652294632317764733224177644484784166105603029097761463373423095629602675124798556376865950980684453320465070016829926456948651257933318782886879226750538688147356952282584701077365870971426540433913320894692351245624984019154103011575164635661148490057185641281560892508717176657702550995497360301660463506967518419748058167122545878008865886166964033140641369509249050375174259562123577444572190531383551755051000044919338443241708828797153489268196165348553969221009559005683666031541986528093386164586971045270563348666290216650202592901610434393002892023834078887769682207369588811955531187293310295434221667734908552331441282788013493228199484900189430031307079341667061114598664361620274807014298759018306921421406255523928593507869087089632727317517247495670636737278422325833838737102339738326558417393053546078672809496775307909957747354883208347721676056356770572083058201678795114095905044342565246623001654866708863623856388027309143076483531098674822089444564508757233138813153931194013625363174015890377422228037615141263743311752629271468836975996289313977473648467996986206107353235882440689953459576727765816457610053478461157886755515389422802946181733603122556625994339147737370826468549493816386251939393867391974732476033538542979642560701220946266527571268781311682633204846987888611393863639737711913663549519620756317258000507014503469388338315982473941456065180385688456584128441602879819020473830770645889507433717671982214166447467399460653683375897136574359870425172234398068467399486964414924990815902525938509043459026544480089551019271032969058666978245541841735586519388571549083587680815410985620399937998285301553392918108927781003148444806518003951338989380909794389877373900234968232851963355888115031038323159827851247663136863135812942311489431081911830947418314004083842346050705073946595980199879449457079928575374207549255588739790874797471768239492164191689885503648479445979574503550050191312526633551368422887337157702863080309950481692332928721680556331963108186074886239600250965243121467778626954326239797182128984815352196559971534157103909117167545200891890264497748094779533843218487618204595384353504723132698500455758360426082228596738999849228193793690250119293412324280153761199791210076683538718177187686475063927588339217680614440356657521785576437126509746781952398643912502690190468243979808630371564311292608878582010241147853174870340113551064730091686548856135117793796898490932713858042967867018514508924027073264256175132680969347774189656406363532370614272535121294772036128265831234474320310780168204827494630291960138017570267334785216419734005073974028076610402671872501792444793931535895525115741441971268467191740872343402144903864764347817829621592672229060749150574487432496080472574383332517818498883181056248754799892007988287873321275790762815574543815087854161289843627241663752390368628544819044228010222422491720574611338986073316881459248826298817515127790235441516278479143761795897591658358728130541998346272024376653486701759199567341034070920373983832129956374944337716272893988925058106822123364720214664562494635729351521904193564867641906037997288910295428831270325715019430109413625714532126001527801886201239684698506602087940810179416730547170466138583992265355505109014910844251986686532927919435010135061162831620525683895861715543141976358593083953085741959234042823775672334859414861154034991615653185451245270940037026336603188946965635012587315348402435053789245198127372144404011107115614519458453195056751035069896116924745581188878574260843986333243452580253153666452556563442298547296955335244152565003222061516172067747216858441182427456418207546978031011337771182442159563168882282602609297672030285723246136189787347172520703291024714933904418259683096569650424110546269758871509633240140649212219356984955817235146820542512260885106174814029027065702186385444484055983232406688140918000162350268730798480181202700558071378315015204184562990738469511025126800969942058427390146972726820788906483247198112732439439755690748931825295067553519149055024353365595050728999769404843991523248895133508520388235973760500525887097032289041899004757953060242969849109762489373788196205815880678691769307094929212970974538418539852461197310641470575405944841855496626894172257656528668670194215192255766200170965066301384426308985231835041644130396774028963227543614125606489256993633902837554398521663767079502244168706864012839702012730194766547855977419450829816761353429144017608494705503784147745314364227231767091118778067497499894820563901107864865807318865664495982667058266411869378532638130723436514806897004046332718527491309541176745818570553907079399696544672478886200742706296248554289124621235841643110894233588298891829537107717360326986340804604523366449442862408467387622488787291152663415300537761411061234964674099374931383055391918939269670409445196070738199612828612442155815841556693377473709893057979459955457312094149816322129195313996677903249091279217923920453255898780876565007937856491649448759987829963322903255965635883784183648831576066246133666769653356880060869751403698274489843473401097561175331364096376633346494834605700166087281892619239965961469485339992957319494374580053583764890072437641184020209228019003431296306137532546485104954529534619875196415400303685019322402545494397481733098815743863511626603577678502400921945091718669777179480491503307848003561534765366050179725878657395401672765702361924085852273045911806277295116821579286799292571661536059367380144981343178120511350294264310471589610200613317461563936523492186637555187049566753336453737006268470238304644968665955747530617665390634691697372422519051934434961280504256526504877631465077218252665089506632983973343680064934715532754205222600450448626736831842233403024439466439877906421685569552921703335880698954281618702298426968661902659775298887213466411012750314135414184207751684053067790370406494956897047898495938746345700835079686886131344115546757894135540985380181223532726023643451059185697871509010184730329279312907430030539611562695125855402399438867596029380299329049411595694167922341215873433575575748402469238711117976986469783073061807160014411534404776438184343209124140783305193199141925082511919998431551437335018404903535795393818089945296683898936228431377994333337611797557878568093059954652623205538083940717028218916202990063708330711573832479383847040517575628197496945231248277759048459710387107109163487698652598106989289287947784552944593610894655484556369719578005584398367364112271081785764719853005824117168027194796272280583306108864762172280388572454798160343943629590491554431875026347074434734743267509232511710189725314062713867087520877611505211916281235641540954325612762622923848229652580287015942966718548954559176391577635226366170361625515064809180368153180491515550685855293475249260689446188907000768950948771740128854664163796300735920621279289419386484327068985582631928132797675659644090103679409408932359640095797534137392391355284356899974801908795461018588176092896650959936247149633214132261188749198253037538851966765809091428394318427889457876006458080839675203736498891929432113179121868480947806268649672272172988127091645439083246877649793406310595012020607270590768039697539390280004486956284831167714286977556335077506454751949797161580771124279692800557531994706834630917640924704367392357188315543569658835587815417908055814717883679904391822598493366080462611502801265158483563680878415492793587725415645343963161821553030215903257570320126787464422535565857703592679314761048397882697819985941238721732705916519631589471499749826461064667595889384479996174475255433634786580650320759695158124349010610735462038503704781342479733015882025248050277915749579531201402261805048923715412714638594231490049205712675999075089109591729727324522210724259817183460623753647356365319290392218992556031135157363303676560872679075652209165020509231932600502216278285511739513469010742830973398468118919753851581138692719305054762696303659549916844793802516819356637094559145178320948626076366737859859549622078011863227591431962328525389095111679852466966908871083826139857024621784019631042698913462824061709749693836496234338740350100882416808442678649627854803305036941529933669917136897297594852102734101177121306543441265793053666024281372289663604846322073600856574266257649003060403584193073031289078953987874989654405713209180326508977508421835011624567127597280726486240139479299976400822218089698550777205994352942715743105409662079357183241217500887770936843219227185622133777738607870715371981975501710059917947658976119735076926510690017892900676090561386659569039147977149585076037576802128531551315626438029547544009943101764207275033781748795837522879227084990142192511575414470438140031999876502509525758342064609156008284307515274345704272934500159722374047839159051021229272890349813351621090104405784805737718370825844908766869222587355630821486106825425734409484455909250932691904996566319581452848532520523311850309778119723154633250655821133426913182199394380838548226271781119639048432383849551154606215540103802104899767604364500627668492306819894344532342068123648018101771569632929700848222155796315590035838508832968915145897844029742453937405955821030993112740341800238821996230302210333932692458625641211192150681748589000565870501965628597039747773791304754215555490325728992786371813644159040580384375986353592453564118649047285989322009176525540247438186780180552058422098636376227379369984367001434445018605444283243337996590695439203565325213404978556107890629634325871473405559180466251699666438957872913604095503987557635804851260984254801081699246719656550905213608230244144719935001353096667373725325480068826767087107731792556279654228404504095809790324263257405219133974137824907953404776779266324044593422814224049113793260019136035299381139339897265425536432196291841848869480079998654911211911225765825832010064571256140296871823864546240909278025310317101229178663408196155314825797582733188367455846281059998308949884718965307027022598087157297490801191472373674588444713333237329938904129387886568245593895071034013257825380371485712445456356187477238518755258511357009809841672033169475284558428462269644781224958800476458888240606150548972694676472951784986441594737942020256491864575103966827799741920772397152596738863253788760387697217472841490601331724880077433560514587378158695875987207921404654000391279579986053075868130843925185029354585664212647783982391674289322839885401528202529344816170974999507339840473432066808213280027566441564045637565281365465588318031695989802929730303183605947242941680983863480149288810492447972671460064081680712846275690018557410189696390567993853957021848747317036156198753385228498020397036543676168577715973567094387925130977578465761937706057454431789399189725235830491106296148580685665526757607684246470437334246335677786680452881125940291216972009840886661852662200635766839892558465963090344367992314143737356520779946732974646468022642818373541027657305553104450029068893986928860787680003711056056233874454173609095324183827337391242254767261946706225418505645210541415546176650757569397406120254151280626926456731723225490617170220621344610403286151262035141028612178312887178589028959560747639213510347237875448692751661923929083878293614023876780297718094706436508834886475153073422982001075572415576171417365484266432831587690081869428278591426532617613376576735756523283029339898432974946274632678322466807536293182537130331683838086997948801882649931754816516043257845037435090310312317673827604294679200216369171868726118690572451265714418526677327465251070080513012520594437772109580484246858259658855295764764638709028265780692887625592005026220424963862318960226315995033145182271341494827869061490738500380677865704119716012604423032374324165756202059562887297380339485116252529780533541207057804384531013407267637317660736101303723418827367323154496554357500114865954766466059523226131811146933922017372286989056273033442835212646910415586549214871023533799866792403055699003724555246683434661169729224883716548628464936926914538648796558541893038909976463027545495713301703259324205262518734171029062802454150193110434673574196593899779757259260778595078070450619045379600273943875378973083006173875582626712546413320043209234045032231328704514796765509607971817590755463730948559267142438720279239786445564782363959790330062761173171599266267505055444692140712909240824685297028849442142339743964773673833672801455080302945407518348650369386767649647302346573099916535180219657007528162060909075181730018871719535509107227182039471367886122933579689974295883150290580493638001074841940669651212279869581451332880425768153842667338660242542928210677818028645515676412537837206455897361258598123275416862448296502715107076475097520534131489599775112563542788063466073607020069283535873076816412086451895827798443172426948866195962881939034119423717259310559816086564655479864216848549499209585767116375366927240628668336517428586579308694137731525657138794378588724643488893839803664455057224020305996415810082046827025034837688374819724159291579856087203746857098933928148732952852739564660186657303632489047040160952231744745326329003619338789625811767441503570444673140341438478304510518540364850357241896605620794422663938414071340664877295114177872945456260945235645401547362841591325916794735366921724165305458205737367313244916978120720549291073211581180120986832977472133873651532432691226122154103680148461509358118003702548294943907355497317806495772319031205373573833970475167553713803536949386518610838669284609986494461197359788757610021023774972721655613972077419994700927095468155008132606135714042059859159057539971839005631252655769873998127773762678654079950972663673393951915125681664134272794916781083177919047968799202297312299475466705090354471366211881605835475364584404312276904385668601311770155606355139467373590106466790167406484009399030929197489790575232521405235576917634745555226453128673905070377503316666986137335662265968909501256888259408341783365479182593735213283026737918714769256339518425032047912435031612175664652395822714693822516937878256295175085108252543051737955599338971543002289830549583555235498971482204732752508944048113165077544802504947034701868349686168092569942564439428653700595826200590580141191597055866765738616132755866942179942445465861205749556150673203117943156641901779852166524683273554499957869367933532558609768385811840943456661102556687622979322295329147140189642985629026251663650190480436383245214897179443415409677471897870423845045144132504453873106006978005166256621330885113454345637017899823952170585673511759855381936546924834666276048158766801166659343803083370060440729860910212264834413764638275741075233091386469524714559965368402114376331506143894799938668475713120544752848324095884079066118780334645066773488866129614032373301857650108199431977250429260120342417254320321563281130846071751498718590395400900591078506809006220340165820707288049300665047216197059347469517649884333514859008083249101193246542071297934618272158115512341083901818209589734466736934425276824607893844692421989374471899455668154561216388864411268878102073904538550309591558740659581528365992956343528692030745957255048922337964437177388467982571728617887475118361662944080967673535857779697696168792449316857654129856704363276089887410533782823640554618826343860471440449445812711050395928683250619995823230206061498892780230698724201959525876370073085173114956306443820586180416079147464325911084298174449509251823452662808404081681983074988393450980694860561953168929369216443278267519648067279219833121928913163581896461420758145629781489891711992353346437582326722093039417636720331353385624547865359175555327790041265440570450997155913522894651748039852569286598541832638954203500364885153923120093872980019374501829462610900566657059126092831253322109186497389506655531102757433074805925567983213299415707334352193858677750473546419003483348610107757196939487588515413222610479362725322111405433554419884629325884497626661163491768906275650587988722632145082302618598003091633729709953690006322317389005002922097109421655586571570383575566924846952786024720185467276274802976421638896721583749986896229393420436986115313144759926954638136327836883078158425903943662616290886492922707009650936683399363693526172671274267651084064984236282449219725478972725449715160308753310468782639532145939678908918388945760065088898148380202944864386415022596540251938724834349336165540108212033342724553699043210118451492689047109026972138076451017111651043366782470727196145677560082380735944147988328442015425740847272971781918954040196459426363171935884523756803523503543048513342477064275286353002649264308997517473398279291818524763714147722365526006043959886320117603675710850269986567309430686944509830459097189695819895060763985253672445104825475630547540909131064196366601161544811869538132470433285269496235085424573625637295182872336425744809688051426233882186776676178316608913108400050963376959063840170141804044765550106208373330037543280536546362489833075375224641507418905183885670676129550033277038696862632426463061932817795770603680817680484725212620671864270482271088032289375954789167941121420568217406290491790518826957872468194196014249873176615888659770246120499317672744876273526066075231138081711975166611938281708958808358956955595005291627143852946942474100698686583507648413288746994633518413745548013616418383156169192884600806118442840063424063162685806508877783558497382959926424343373747449362411070161312522727999524714619365632069412960461566753651195541786083613660300637667998275668329282821167583491168804056224537147419824455336363455878315070963472882455654276319005349205779296211325656190934530782786213469229279597691287694077889687313232514335584519663702675404472370808743598280357307051343147896364062262986792909632948591380200326934135736194840797694360096503484538279234137951782522739404998653581538053488102882200383158196960831093949842874901954195292984940599223773183467885202676509038505129056505799967121801580004445761603194707378689241182207786990822432513868483664042906035715335481866335826594048455327231355212652551733301020097056084453432902821098439973443212173676778324157863986302720374178388049530494601468179628513829678201353778531802594655689058340473757030400722811726509246874120505319035730352986912170999749322458845512138578106781483595898331986800045782948564966430365646950237575379775678507959219365250100539966796966469714855532786944813733891706573480855763252203670060591787224006454427175209569081925184495184618032745059867570546151953611110078554913575629821312181596839448773768539604991928528584264418854853240578529495816104323933328133929293325685853623159930088492060178171193251305643470245741010450083223149168975801655860879399446952834731357632143317248890525674585113639979869982091557806402649008804077332137726769599027135691808455302954907546400890071883939879793477160847051475593096544365032121140925305399717229902880017897830993959389647143836815669983060385015942919407207165686194167093465504012571160771498472300601740834101556341048098875001856520078651694858611842846485010966160695771231023013553953994404144772141095824841781210338609655276530248974222212191834972448049126744002969185844988002545744535015425578936076379910597549042577960721010070528723098200284416266857879558087643495330401656161726627210710457320410089720625038388663957693262725630610069142262657704997457336869457550660251775656700776704342036960777922039543931503062103407572544788311217632689388770867987873251415473558148336165144048747485376463793317429121112172212727249056875658992210243621309087216361374501711209836433733970913823373824674524997816152015734013138823365941504902708992292037508383142687809142622270604148529289477766249498018046722092376413127352951654045421212944251176222296308489054742143181214550670618203429837069952527475812292789236584583785341981416991818472603674872634527173621528418951160911765134928950862087727959887087691911476272666431860247181598152670917953587494657821502398777676667262679996794847367320556642358734651699185308518662319255398000287634028556973700001513948449837090075553388563103429769147632640737059311163548820897650883715526543912455557699203307986753255322481132567350746278589674538893267380892279409400859433507894751107408716183678578016732488932992535898741982352297625522523916443740911470294676422102650307024396248062670826997167994866367419731319439595471268202527919256805261485888242035412061110676125550926689083132985202124192863597357064124248640192545126155785939877771826327182997943602994640871780345763208086144927765547458875685843340663794683447871791265200681175467418020133526586737387099836846563210980173065110108794517893790085212133137209298197100504625533301590696779954762459826674368930485975478273647938796094521706606159895184557484907138850098188612390677689896045890447439341175114560052934999334692689295676207017337614833325438978433638445855987837251333140375610869765026286647947088226540920417840443343938326607799080715626755915121758439232719941600933979824973604078772810420310686307248301926185329296863227907410672552378453400574942913439499718505087784400168822835319492479454050712386706677318111499149177893850176733320236973060846393616686890777690917579397044313758358999940008193662109877256014762649669195700662193105622315913351942193383709058726193658718074506652542839062679769541680846119608752122712753659293446714364099262036496809347158681239033360668484603458160579544652440257274617817414357014648453714313944111771177141911556671273312572925229149010048293150119470674451691139780975640299374054643806767817210458994781821864320470294405081776077870335539079281231701330984714620936793388799516004608234767000576254239462030308563124334988455839704373860224747387262513018504860764538754769199269774688931851354328702635661938206318316455121277132396027847707240299630890708707002410106110215813281647190359238483677664244173375869533566071275061806519032970222666233328788118637763502873804972046000424179304264339213050304525517116764428379801669442394723936781117400157292586159737273992309323355727936051893644046780957363544653739912588039053936261610219806338792988127019160601520355166685421470909161262492716193283778759004481710575203772927630069018070729593668842708707101502774924498694497101846956473572187945465435581931224500010332665298983097922601790560888455264253759568866873717740322948170877831459988616429202593240758626640654553225525497366230433342590895052327357716048775173819136703131724556338380829914093760090256060169915738243022978480543741856010691575579514538774331256648278600865416839069462268626580615336171396400240663168097214463638926546251186227864936335903346052982944154358359443028596402548998424690245615910376838395108511689972585231890705082947216333179555984562057531730552081904768252855777428622310849671249645498505817156316539270612559524222235801829230616801388070234350216823629167500533377249578520273955888451921232885664907817170792681773313831594123254725651837038145780044970901001027139947622938802186161338686552262160407205534924059981622755072527731688530668666305960045991117478429313993561675819485101156414446362958970631503027179469096274278273401431029653034708577647951092285573631027487810946200751366180170012153627704692163518103462595165125118302962433243318020248162707941170332715423031651260973483594804662582799513091885272889819323503868849726288922195758449481358957661933608927209276319895029824471800208192339490333605094468445080685593329905293109559607998578171239518488329437850567191364789647969006822655779854705302090098529647687696368275779425124360590836320983441023013250748588566841590873613733075453419826348575538575211355555029306611870124826607162393870037541328155575688701662062219051916845743284967422547017663077895298537895600939049355440595133431223337033640391267428194003526456182949744945938542104659664701765214120274234388231736376620129256780317674337531311454095284519164500606018890374716418583119007274336750720667842753544524891170377746146312462781917460424433448235945808937507594142433594866909935210321293929377727738896414216928732520109038175917025405072225178988316181714789584472654256386409594783322828283382238000400607254169089843138425090224919502010261251277134195076927783540989343012437885580465114939795870697551163946904728333184780798491606275383939701311680609301687367229268962035948865180616186064546679953617265149317359332250857599127976993936089296030482374264713524395513528620852803703239028172512904480421897142873125784390949119289823450684577769808482830065676903304338548665723949833928487359552235187309159631877470594866091901094163893998620890206510535412678262883405790409944733871885926756296255486810501384772784556388236642907091092758716349534130940168220373554741972483376579341948480364467678392397412666771843029853057071871908520602726423841268188592331366906954821132706075692768737145485447537851307599185032680314744557273878371749556305607546345991691341144748796667131458541346877136141806445394711964489198974224302799007575254084114623783801725389025695480337371898035050252633621487484164898154509666829989598197935096593369848524551088298958759679056592961147876290966543997540675748961086007466322475445975153578968641211416836714342651351440492702066491187913219322016177529328057973815555254212043185165222497163652358696977812426416819246480105249884627512478964249215887259736408855518359817541418100852243475958395104193687286926199787938791903748106981844614310402870096278230516579492260971359962368331091065196148462787953846770912623035544137317024618979427964566915034235389574819866664518071726505974445982334617261110933508929382523492836706123775247425424786931828829915301828956092256329499724889656371101753667031398470520160563344965349744933617616919311115318739028453993489562541159580605821067557589986658921497477116837343141734364430186740410439214871088871775486168512127119282982145423092700712294008737903884598053843648885697111007787270490434455379603128172000483913494617143503474647971659781102944977861780611869060422608023337252513468254922780956595826534349234975863570848603887260509707091836390209250960806445219711856029165196502956358835891519606938744636805484928106552777505809650048612410121737597049953396263706316590679202266808473007182675804228555551002551976027089505512835902130788862537788210585747557472307386013472065881031912124481230810460463351656246858740568792726314226717483694453861628531880533371548336521193523013736005816897758518947370114921530729374861133325443056338188314908163446354488028498035876196348411245133583396959138472893138311961946590639395111429609129619376152809569396652259835820171391834285470989091605814879385908588325473396392540125061427200291919619899117961830422666852961599147746698741284910940027097493683610910809138633416145919713171746826420175174446948590635096585656992813199786376042388814491449695422999190341215954009643309060857694964612528940126302082977045566893645316567586695153843539410660408018287804605723605389243753144009392023544118963115403492828247041596227864656049281862822121875217631856231437341348193843415877382101353480403511434182103041524244913531459010858511792836911176295689523257806380873546877789350219879736075107301913590395094581911840143849006822157124644965439750140381363495688219784717438898183416672722281258704991416938838573893284108777388091591111892254825537315767947241846108330653357937749218787937467997795216013792862912951663330817180094529359912534815964026889166279197302442307332798478876591982601308379924901202453052597646782683474207112575589596212348094264359865697140331069653680135381339272300067097919862698218928048424636715717512425059564610538609514829427830908581175106522267255670116514324708868268011682321265260277867049114179698565641398027746243323785514821848498966494894137793547789639552718094497911880470685098862104421635725023423552901303491312319455723317253549958481328835314975126511827517442741412987059794297712364184397603994652712201567942461846584235223189239139871459567314375276068789181737358394206062307572076715511275655812017758487891573720184377558211868514306925566555925270133008660907889019944008434061739887493920751435932869618869819373361664542131711182366676295303403780347293400718442828734124456405036514101088315727322571552930131034719364741364727108609721481658135396082292467178279993051107581014329059940700070401084553491333935279532231423195386348781402910197166252859824107802738663412782304602068250532776083395391660565450900435863222848728098473072636470590666695639716827761362493987812152953808656221063945741563462078721465144300586694764195234191925802531641810966173821567208020542039073754921627223483770852431363015575995380840380783242295612534800396737143561460044364359393409730474005817718514736249784950669178983399748017543487814868374517470667631336448752612517790031442300930660130841582364994438621462487980109375774721463600319275669047472851718593927962344594335084354607702511320579116360738018175034519170300916442126362773272899783185359322546670887045014041556075928025083758831057025935393284487788731776520246645806581615102384427931112485364732430124429532725952718679963311378778879536181699176832660216782251535410598993783247811416119231583230357142252962859033377720846456081714523798377869553227533024754946927866805625085949482704088985459371066014997638457431734552492493626727650032036700835043070887619236393445618715413286189836294063882837884033484422534091378016822765583695500738888821799841358320269607371808820899395869476866776317024714793730252862537827205313280328513742542594092584035310843118851304280664605360217430288160737045608342815178196383892067824725208024294703778902496487497720956186536154955518696119828193817082858630830840419428915013316943390811765295187465506969331412029618810361544221037639396319789684155659563318855413176998210137738840713320332607242536759380843015556365928675829091920998912999652512601944653336151819001367543573015343924147221557941627385521019035483704098065332265590559764039164749047989752526392326468971814159301983622358853696969108624053319903040589341404899014704798488825275841287429603310284128918629426536228747304604798164277036454026303607895187013606356350305798269491188035634410334723552461279193450785441072372790805826937103202466582342188147728858541966983743046006542964452834637308946582294368263936924010257810989513396422381786051759500109477253055567786551393908540843533786819090236304577297699532498906171144419346149240295335020950274318707236319337406293705606508106759062860494420596996282345088639742065705874000700766428333457309502035699776359609493676260913690995839695615274369830284775233490385871339766977063905834884047881607950435987041070970107577331752087122671115108610658411419178629269100722907574218543723266763950609172479496116032102701570106843557591423423076135639984910181054136648876410937963225962766389265300629281985864554171129236832087816491065376250571630703484086328345906524062778592390715700013157459091536032763463781425321910182491468900921051246686572401244841998614009170786856403615104705121905869806345156476691083686931266949867934801139266573466906649339104669037898939425096039696008420866239055508937663177652129547735648002540662258355122360189336737633561469288279405768766519166158802945493243203047684831830253883015527559574803852497748863644187470734639164364686974956494005372142033805703763535336987971265545061892353716019170322937212007352810689668089917937692120119649929730227786785635966748481460017591272078767401866275829859119830797312733811960189022408380217487323016680844597615971934636621400481469645207315441937785936026351092492046740238326369950233895263871967931720169486177310684571068442992010071576967203864359851900105419478588756828248712226104462666057962521329231366156720249732600392774047488185088405159158210642018359997982021913124442250069256127574643545214625243134605694605514956234859196096879717072296839657689444619049968647596443617407441800740518122557256420204977035621168700444213872961000997728772943480926447757810104723833777210555894304658692159402917139767597628142302933075139369389424853097403103438705454214347644009226849062837595943418944903321961302639848418238272305014329286209304267016204498241164449301118540288696976301322212192374930550085729697565846681166118217308228033819484432411907990139177082082489061482329550947349412346007015574357644018592912920268523262435885816057760564427568187597464928272769911436842822823805764035461030406360342957049583139148286295777961029318557023396226134260437748316063938136538548507471983810211009704440736697635072911158062771453932183037306361149179994609434188137215220599473935211346558135445228406940554033749888058775582299575274994964982908789329228529582355414168451753028175953715646006092981749732251905187917975980293474876546867856057802719076870453558961708751961107903643736876555239667390278318271423386107769318815292649327345648267181006411166818147532071578647521662573319740008889543726650494169686394357001535939426017069013649900808140884578379707965254288073328847232008663885287409703155598898287196906887921355986112879896761563905533914014595741769364099579844232479643795643678959906301133909603937493799214155079843112146631401574838408927104388543959113532430245536257672072662670873915483137167357155287418862177451502821399638780727676322509249776651274329523077770970811798876147084414333113137611490720146691097694055383621948389636807000228043609792773794782349305172225269210658280833506763928962893290016553836652197921907969258066448266078437623985148257408445804509249777977298660113487729928275843374451626346843829340108179394980314003975754492685123420622236414083534425881972652350053555672970169643903201431212909354761434154960840014024875210929316030133663811744312906865497871279456932900891659606963286760491091129567492954612343734225718284043058651358541123979558440397367790664592559222768858682748088982284012902109804213226115286985737263218129842680582325526249537162419452788927088615146644166913890564732222384677103822936410294946564522832382057719837581194544990723002506340703511259008602308029053177426831398032247657361775404847181007507362600715343942510970303882941566584431709770493820462320322128704446533560186612715105763770057270564482716853317793048427139767797536269837626844352863667788806778376070306723972459216621028713282643144290868640710644953373024983587193852356432627436248412476612400002457799077395311203186053997544142432682923940504582437914017964979140127125918089607892839098314538680165093323902722411472701590312517843362979188030839693714708852412212872843758535279724388478805182382025840166175304993287890780847211363498985990933572804613297649813376191540862145581457803541714251626437577797183592927976432410023498471753220494813080064229238420705223362360884101930337278193094433703530540278060843125970899993811198997002623892721087762732929613258659484145925546033853106322947742862901261785996854065608624783151028288342733916390227511417333569806827743756592307859298987080431689842858332582630480621991666656378132345383819967729127949616176714422067612842890712302518963385185164489921434702046365984204869055246615807757334754149401700443885285465249770399959486695388268016911170752558089911934230151914266850682220638071005205567613317609586485819437513286431402218031397189423067933574320600577594598745338293069279906726514073013010965218920038178886205233662571219672913656286580575966495757039802778503095084639512259616274717035815201334083662686607454037476751690316473928198421050076180278693475404881739171518276636739600477331041184806732280101695459827839345595189286589484258763128320145788114713118951572338145800879764645586924648698854416339192345039592741249034730419132439865928678545581744437703616162873891319829879896951518977716207208152094446475666154310880135161206800186874737619270281205826932644966912684462698715537907464944303307025748404353299760016703970280126389380810751332618824186591882690646829739756366298027284547259909581094815555178743527772850200479137814442778837908647220926238014580385251412353309888800760416100435205039235011773393544465539215749117618357173121185360993925481085785405040444801239952583576783908791032607584403711107158047422348794925159621703214171943661418226509712218195744862229727515015311357575555637698243915630583295898225250223355075035566747467680379477761063951309115647824323649480760921457874438439537009830767413154690030234424728218089794365380348783357910521484661009162768506571537481180934653344876255989482796777284040774934779433013880469367826060251932223249812259165097182774999305851208054337394859644610549380854919832486191910173640858271841665578130524487607620214434143517413759375121781614196379544799710090344378929942343683256294883433790046212849671158525630866801923430476966570224380464745594153000470760376218696417423951909531441966578976971403990739114523766201221397618129253861775548579449810640140630544468752671847493535367038907565718569571229058988425508713940154761583657445799820365626274362575643124108171343509188339755890384775770024635188836512838823527182145120828118017957877886835866819763423012715071928278066281763701519035861867057185425423703462174147602407669431941630772677072872109484226806208438793558769104867218626991875153500705031568926687349333198120322346470653984628713722554596761384598161194949368646075315261671665894966156088417678446821397795258307765504337458258547727265023598813957799767036431444088681420785812854683300497960701159544592369826672923575527338910176859784860640268814494938580977329191196274881571477250209838310545280095963398328280849755527091205215193213231285896847081917569647213572150117397127997805909278443408112614121005388501077314362539974674126906926007926546249918278139720856693554261009283866101189366615770916709511732870980123534562312559708563268734053373655761891884275401820096375370042154388605410778722303629553392151211851792849636830878086635326703850248236401521065683751937263079889312922917572982894159113189351828127647461227021218405265328871792723375646763602354248203954026591245085625874853676193942200488052716526104586134026060299778689570996725949013442024401827430613684835564725229555678883932839079151838298140018928109063868769779449386021240773191982277234905552634266526166161011215134944533775972857565438934001676053899270404097342708623285368597735146533309434009949641400121797776753700673787042414984542367774555175742384394965828900551407343455681443594504880869399536470318023872392888095102816143598362678711542678840968197414497137351164198851976685839907987256123328161863674411789848566458227492172201138469630038915997191587089185307777521741196039836137261332698192206100035491869209952799039019596203025978847768087802845681387471546810514368704565973270705172773593460802904411979923705000417579898450522797622744650360739465292964336462616364080478619659825365155437548957243716511929964147311854870519597562700918528216528045819538735821112438299726205431217506413202003739141975703892850369395716434170236943288681251492208533014362343388134046215308404470840618543240389952574900037207136885357519083593097359299965275510870370391469684681843816352755399877678682163932293029700859781248038777625647685295180096103144347985331715962917152942800413775939383149902056379827490148600464710696847447489352313295776335744567906193853575737022750706253599027102702281344477342800111052580588763777249776660942758644793246580127348125086591662610757427891104142736567990197007406613485673860673314696322823699530210218846929339555293798458938318312782582968017924648728641025431952797880334055669449022622511988018260159232421279780936703292653844074638562629928283498059939761422156126321722657290668311086754323015126168027461244908619078749314018580371528072287771322234798389846694876883106583303266974154193045763289726439448317042663419407843532658956376775079095330891178963689863806565348569606098014031768562184015529505147009493096304818002655299173436763847213378833862899568403532688110950351084433299460218489480541672315189238813218125332960605911656960859400354941360501640815493058778794403202495102165389090021981897628439399070816519814040636962151530135074859105806464569318603133746835483428436863907968500144029614257680623693400186231050422976962277107298896399360351894459728133843659334299181301112610350112002908483836422353482203796646450149964717150129302408261334507101556459193385603204827070639415087647847001371222743890641946068234652742534876904569271213207693811515665854264977222515574805467204470390700000228796548827624166030467280370627574035249083624984390764976034178731236222291492394142555174831655983788160254409011752619431628304433942149429535054911318162067363469742048842490243236853775904226684938771226042164118004268510804208840928099974544360493636061210021252122775733550567313662523512913758007645326851919356348197050196099341640730940321202609804692413043525894063923230417136694960809165573838787654199257947189827832743787899936773646164362468025683318181533609103249170574552065061595548193686546513781635221053805955909109648574738313769432766385736067281718378899349549637734816245029548927168185853438175112609077297804118142505037907274321485814953062469304139492755231471717342482781718988300899321499343098405257163251282765062399863539514671936493820291874716206201305824328464393778392238785664701041325565361909779603385879845812310942517320126124538158000000851765081299088081089496278544148541298156612348859148660277012654847294973448419065155768231925115871076820447413984695781713480368264264380731702804308068493394960827318164584929840625876441887821562714808544368569057153070296600070307528403901230335660784331287841757692908909877806174036832364342276048110817428013805779017903815746409974668976139591921846060248754744051760628458585893846931584575097674007020412154696132253933768607619990006712946001292181518759141195796752401794937412936555453906885478844690771194368517052921665545190596228265205939832414949447429688761905731673562672826444567333710034261031986553929602878924947192602015245756600392812779681088316818857010697133270259838282611812273607723862152863965198151402013032829372646202925847763368889640860061057497166853346426829534598795546058528644206085858624058589316006705434153267425117464023786824944583687088338783118537633549512555429494593251274509353121262891919392492558259534804436351350276478685507268727829237022221262148133798827404888162450326908211733878170375802541625558363041568852163672449687162909185602802989305741705244653327472202005655845537531665390322542490969080762862956515074544735218117166800152543205734665108376815661419123764826008851790153236300413931638626228330069269534674422054930066182886698544630920500872246450655368056428796948815850634027165594819240753272554146133013378073425692268034743255141202154921444882940555783146653313165655620243788668569151368722982367780255402864560049858444877856628537416566806505698607825809633223572440006930616435966830171008124089385914349590697766381119215250874828884828469790264822633180954795923839450507907446000666778289648900596735042949939902988294629917506251689477338755845880861130860222292302981472188177400262970729497786885144147665767675278716177282067683676045128951364910565725740386984802233661799827184130697507247956680793481043644449233949300725681236676543327008011371530562305400157468962514542829321871162472536426053971725287876507989738752969302250986115709237175759938334029983655684310217174419060248188525038614554467322205118748044420352663563998231414159224207563834327973840210075329707076465612233253744394885766010776767453961872004928434953320494934660485886788612340114199113600761014053843377662684339309186035584022249817897576791296128056663730937686739526171742551922482652815939035714332744050618440084359099133189168990603208550275031011663173549125161528007625013423902547100981810475510421993931433605602562807977617031267300014547857264831590808997545677165104315463668513715182839907372387112201554362304351221140765093499497492623944792894290333392975091564721686434444682022567299203510560850287187687467671545786421194919062958788886551536769185125830310346462956735602408675521487749724521245687972028842029625791480505047256897426266938048318441942474468727693791600427325635837562730716660473141347717463156189690127118974728469460312290775340747890265996322107694370750336217615277467034749403617148636565826427611238205177726343026412063756591824049524538214691175039602751427436179422901051078614512451604148064597220846363513412202937520877098727867105736298554693533354311121479514829578452716369579080998115817076554773804442549335792460178913275586546834430197014228311998020421410523041389161577009246693617952962560592819730862857331549482778347556770347038421686761450779075137350167725766828588307737242210431632011738685721571411447347780819608748457370018185123400182862960206614367912269116062030814141045332217189373930274640427346721826133026164838974431965537911598339175582541531488191801516509940428799224609751111112299839599879520556033173628074415711595389381906847495477391044618942204629940106862135824691758871606923321080322358259369311751930268369031197937588182524645353277014201661934116483461741838110954698470651120436638481386717330991050033457989401031117404813473935174730386368045084670008796388009320026750118160589802661239000841153965548659764257537242641333720467009816530351785296331872965271955968051057467154954838546892996608554657093148300669419364020300852458145221016559193136822130391536304019630969587454569853881411663145174742623170414974438746897976105332647784257105787388659704656224113410592995133101707370204201412937332214481901032587236689656373959592368088323360924878218897922905762857296387133511721840672719308674832839695290531429879567551239041124809208525161023633248007476812884688697348528257178933981746246022178633752740468292796306866530193537375918569945541409699043033281710988888135711337090746199399745979046053497749154460776191356687850180659199530128230609633308168995265045616180522399221849283598758051242577597253609526834942593011555951590251657797477219330568276105080403282379517948293780176213344950542100977387579123335667850829314141064034811049024909222024112557673080987966126409249978134388729586934258159410350509821020350963283229655907650148169064234937530978207663571521934073290775629242463137929598188821960842267331683663870607420133100794436330406437584804934957048345605343153287266522589741786943115188729818997949057371727837005201906799880987703956951431828501804506969944933535450794756959290764568610718063996413139918936269603362547941786388413179923388414522277910967967809040666746333044248545992334742707330003785024448973095618085485477647637595207345304397567263226845737402590394327739685131166228472563444773668786187442689823245265148786155035615034992149640712951881446613167652747567417498069659855874575560087032240933058400075929197315926484790848141184513899791579302696163691552851277899602045793250724689713903979275593249131938291941108891527302954643938419430955853367227490444272073033577201947445884782115122176093381959748630981378114632427403288568819627078027363853596256752086336657963746669809002347571871127052758193805990990527855098592853172201870211343204567467307252721520128209707817784816665721273279250497761392642727970065835336179807559105084617383564214768867872016481589438835181747007537667833102896649968505026788284768193047995216552923633035745134951759621117868651415430655857797678798462491764538824782012658091419950177126691926594120516671511014737296867346984022509888897596100786528217953167267621925190527697003301172051122933857465418061506640655270863821780810630053117873093921160714553271922931257150664488802770005350021692866196254974871814249312766373343270395094309844693507413414547042307278191115971631566533677100266661242425660569762078569810472327631452707013162204144050427624840568522136446341277462215773173077448132838884608606500362630792320081374513121356256085379937520352320292428075642920218515619685899474168942614434154764501875604228876370093911927869703334885188457349984538343147616723735565821799536549392494410478396299491319485133148386306375579752176640714754007089205556132474186477445348032720633994442585666462291428986254219665971212710763124322110511142098716703643329429859333258509475156862777323824041592219291783663817172079806520689904183545760915190361759934082061081912295347119970266043831169765941320629418468228382276969619325087504869695224672461225932774843863693981455692365264130922758106942298320978030100444993516593499764386362875885824635221841029229181118026319329335304903828437837892372433782452164900400942486142286007497310532723259803837374646189372065508249129676571790123212427353949828228163370451622160557217817199418525547815987527412858770697636645176994990258369751559283363036303533261302040663679882885604972472325645162834166856619834252500330411953361882318043569899164919486576340835427397454772995812946417372552765004647537937467467815316719185755775881147039909247507113668325879655401020029081648779476840425409084049708937526048198663855507100916072512821704561316120671583036785535344834402302427815489031220693029915173461022333648460848234432384019257266477416070135704885632099358932193115124807639987970160685680495410034616177835488495545226611685296019237405102740730840377996218904938560922776419951265070795652311883341259490631976010212329369888472159942728692440073005455652703061385283453398167453315279709057008367926269345564073500578026920651541261971225055732588175435251754388292983702568823604904854181487177497771842517484418223823360343991919751731023647618757840333517614070007546445309020677566821544463325391020090885436704783008720505421748072698604315726684527434305281993051487422038788019504288411087942533845037398160850852036595620611158347033110653476961890082461947813770992858616889943790604425985985684611821710839879462474831858824072149834113203663838245915522574138632434189668979735306622154922038885164188350647923880063015351824768298283842770991938918467914739242243341475993040334609556205842594593531846552271054731250440362385156799787307677536342243059699891459244191700627783085177824366192777149669497079583941086400767540463287078581825069022047393727261300287645636163570742916422122642082286484645524338486359746576736322580513723096820728934472011556463794355076686506844014626495505339557246470685683493301938073773747110571716170347719720305261628633886124782797649379920168163898491434187590238910569717015689234330969301204853658788156552054372383601757949554713138047393607075760979510340374722241028593291544664764883751702935424055924247612923954723949071469212240705184383935707956790038106097838204445174819545255464393820090243705181661046279205310341983932123962284918299215162579280965009104664571269078218848397192045692519487642650674551452996743018629574720969432936645938640279329494538404988451801984245854923635408543077440555067056419389476350327572563537817067620841614440878409136997032027938198348525418098127720460300544680923805991127099233492104371960432617328640339315745131974196546580397361759910529742854336948588785427777517243657276426034121220494160061166247079823870485964659810666583893428288542345427586698253500525256302146774824578964973392589150822356563683813665501413727688412666110516019960763496781570352499354926010963964250074903035363392180652920012077858356623579899251672990729809364113199128825124642602455435704868329586073179759394229054406102571541589481563094434810968243839750663633798739764351584584021362266243425194056782145387004915518537226103111945952620104632886953041056119190317559675405081194955724278778945455054843285010215481746920000410181823877010006525448074865920726168651806993923683262423437894670820200637393060781036006592577348849700822137864916850550565000258805503467364200964640298224585824666811837591024049670590629919756226582294690106434786461110747667163209052734289138862793913929000898179071445119737110430408296109589720066648434685314640593630826336810416252378448468257157275441795495247917686744226928747498837253428113049498762907018298723383313242263077806818385306915674853802823099155273560352488229353945874595449293420388534503695167942886003554369585688726877631291981257896161761791208202664491657309568238203231367041279231381316174262832214850926086506444108548552369956280647596254728198000380133494184884388047671267834314984270823077068650844806576489637007381489602432046674541128522216061391993296147717919189928563991590697938164689528209830498742477314627403044121555614241190062365779550217744919093569997599641977889501249271604563323537930765490244022176806142274084138123516252788028233978685875630799590684707767946244441020423252917031323199365702653226304310123203400285459143869346236986515381599445060604464042292044396164378938004184241889435263670702858265153243620862719287428203729203925936155710638554147755474825802134413553468234748384550726873295397044289581584479250337991947480650030960982526585620983491118447860464203728655473648739699462960941572274082030943125023420878686818111357989223778296474680338354707539499968157723182662900043625489289629272077987821283395071426717350712844110069931739252924155635005301950411166207052267259849797380512028326566101910198510264341081489660877719685329244564393391171712998511716416573721051243339327764094897240549723352131740361117386105455107898110658310649155497877197793630997008385683678956877291366788177756620201839369499316119101257748621478648791066157133906419244226785180102656729241930343851628013654460616754923032460552068352681570351056006062564923400753179191445413173810436789822413193072775353910219406070822669226176216363032794393110314525450601261173544578653394500152023585082786569716176386567815692967760444988028052341673295240692973255366792986306939251357208265574990141277794853095176798825129184844752063533325408631094699630651116895169374720580663001353641374538653566463530581906957528090201756577910363832915077913096178811119105354667223574544113121174237049615577874517222869012411013387196636589761155755564247781823610637819480174215121165732929199618702156430846892705468962903313395558924039505357878464056271625738323976583981864642829198666745295348644699382665533023519113471861298963230127697090341473345963282710760634039425635954736627802661462383607032643321009329704749688231524170288141550092659125707067233052144590814260934644780870900895835830570395878761039871268535277269950351601315880315073220072980163308813023192289901280819933949707730598383697767039901736564078412732360070449628212283844845865000270841482535589709586825184266217725622274194257647061164638589790137888158040233964247143961362268360201163334421834274648453248351275879397796150304147748889219711087369653232364779525573215519725739039662784181401619393053850993272654131248394513460827131089648046199305411707221433144776758951223751387197358259301906440739005101867346660767021773109961545051412495841368705801861167251837771314662974628266436479795086596190529351828826414101485735370873405137376280572856371175489486152865248284334224802458213539732202557903024940635531690218911979509105642852604928520338080754812592082743354217451453964664353561882328159671218304366835584923387525641657571921819431813089386369744332623015285181419566253780848654207002049659988725711291497309986543131345420461000352517898482466351706015799724880526812894340299309432762517632301621937299343914010018639957302775194176355426146028900678984078004599829444394548826187022174227700069877198435980359629541044486060877538756681949730492451739336727685267718760451434959018494128306131785677325741956153485022180113446715061587021795035704241453952967127476614886722427298381972879699246110807962949176218014836843664455616681882688640317368856808098952855266469186242926034997266947174073950611861958372566152756257571475078302080896656241937476281917071615252792032498119077915272317031684462762435224994727880303238320711631891515820524445090541861813355941609830317392411984924730364431836677335037272187037195168210231184780442760540698500221897877125716668200630965514589866165739153787862716303854503249132727675218253623337034688555843455753610670167043538170922878580530728782394682271036974591634213619119817815471464518801569991892658954364671570955019350548165615657555170233936621869253892359473499577270627704085197113153647320495292003527120157560037920763478104717603241980578652242362837556047661428948267622428550198255009375920403314120225833198212476215413059585034184381393390253651484961179380794399203566548280101346340017781615025572575312948619777647772094439527296820519102360225090516901383256843082475988634983496788451825339744703047055396389000613424374967936263507486290151962768453604238340219653322724818052955898515053924495210594059873109285632428033580596326781403857743835606544821702761923126257044276840450391504487454165207688857741371047103010234946543806134632459135669480254692823964459184685371519446252319699143309171439019586462627975421620354763354629683463251453662339396889006107785873348319546663628890910975471139178212642982651298321013671989515678542152617466692744504104052915550581258971524754244260208781998794512332267954299537535570479045300273375218883238271725656859858875712910319143458369405673757737385335361857317643324979309887213636644041853750735576070486919373462629838883277715683433178205377372043797077283259818845247447028682050375820440109365753597209439255768853301309134335179101090757000889712448082701899023932731589308155430287861880636356171121202339187258542453206730478195232590118948526374398940241019981053805207697883828173984423543401579153890760197620095736747560707149411920971774754615515997189572112704048731711128883653965560602241233201525965031759035181981506312049712868620120963217848939619837362636082621310972966618791480262075269981826257444924875554373416167364644362994489041518784618651712739561431277566792350685472337187507822546801085957240564659151192148929601465543289771071876759330478593422192507969161039412669302284905226229982742030827798599753405419311314173014753506842164000475435035076850312289302136772908354611270804778581494708540204828881833257315579920950275735524252937802643732032218072588145239141136142342462218412462788849434052195616022767610402928643091509041920924729709316477428230582760016423446593307200660385773822779922945289362487737503062780305558229813939900612385196627132081466542986607432313575421371489488436524585652610582738821777542384267392656144723538613300303769768256854231817947525547128207890242158845416519876698238439716276777528274914108792974349554621491272381085126811231738851423967135856664869188125673194235419580627524424334898183046143628285742566361692955888255895247141599730998171500335679467362496757946948601422699118464904840911178813075714654675675175205193703117418238110888698520609759660665538633538817683651285626509353624638931645538720820060677969381309458877812724066241785794295036540533128690760964502999807356494134171946377590561522225563911759939248785019380668067826714184720500885300009056637648477421171989905998870405827503215082254356945965159719683081730671993583841547142314069912455848026266237653419808435023558331211977177881483055896630155860585338022154393253374523856810857665565479035977281971475059370328635257331873742896274374781862821626421187501465033571089173112732217829193566630499077087780011884576562593754496567637649962874024261902390341695045280596323862470671862572262707297080409472443375049050762459268335261143290852793687163848877277551602255851900634712822168631600343779778273973932171260593745786593805606445394054317884857834676960384328402834910370992813432398381042236811162805772611925461536149352589273095000049638672678720691723994896530503695793884956611677050372982960277195023564774549001107429040367437947175537382766283392101000968155160705512147941620039029237584608205329837338831540255454507684291109916229049776486271299411151653234039215613225304410456393701380245979932626632573102276472942311430783090212159400181337187573162205924942392069563555869595694014632825140771166432595569591506543089062105849621609940751958578087488388420122356212277334613566890018311757170252849835113802058930871121536498815042818397128479634696032144448146825820189972164804921491736608950594635569282883020995577933680085682231339405264157619471567968326310777311167459739141878252333108871446647825908060930522462144601616348144242795878232763136792775794905979856502170073245461555131950839736781132018212026458316869312001791803100540767467918959273119338371561675199815782869255762964122572358941868610353458073764600744833878993707308625460299850431612264847605559983731032491146977217869948588982088285509242202712819511169716585976481380570402259127829530665872343435346683102111052475105659077968124881429165523202773170438879160603149617977149022907125424399822071852069884754789124489667602793906646819537061291725759764315078227006722432965425505351676609299028501332831863937249380581031875071015192984685514354779405457569494093456865742813395970096785115601918285114787696289360644669893373276653381840620390916918103736661722325311864677754359840540470988391093033893829250372777425270840542090906812128879252128530644948993857112890103622548437956000898537351008287566076848382796527511366417125938902882507470796107183226186010714152721385583254025152582183797127593741803476592566409810062991400351667153438129333077866442054511674363955425514734079776775244570422922670976111249161906720161575989645305762366805887775657241932138451269930043013229457801634681232800228272238812752772618404182394730494604275774758614122213412165625686453355651911023354586632404421028791365028756443714543790587471450163241607350168072920806422348205408862163140634549322210320892543051408643834472223525077450199334867661287950223467924846953523233874948458222644306054179104927634697051887115767865293452794398982383568278364563338590706597785746974935574615226662137528096215419892839319336577731034305815967233885649800564248093611395233485876681132039037278228698386994789460826666199133048145647004022363142557922812042266883901516393309420262720401798305466626107474356124317209918422895009078658659362300745046432268732360076069038286748080094236490260134721399823778066718091758865767281524343763972405316382572573457614698556992327876904876816402673795125980890262749955656048312824072668568106395094771226872484175369355493123946819330290247485746925535244806528684575868851186613620552651270775564552371273277753516550788599393754776905388565004497629188444774482717551675140616198529822816058961968539615195365389571845123024836900257839521677782790580068198470643760550280013069588471947151733259590058930065776112168194035017623244676453216821805145644025556831567728052068528296746881168653089818442826402200095013659470859466840532078450095317121379315343073842468321709396104833613915471182550634024665755964779271679236232851512150362774180055834715233487025664583558303965379589808141953664874019417686052615635537907977224673473234858857051026293532677287172306476069757678223831431658077806568022165066884862415682137799362986591033459499148135830261292924821283777806427475893547677962939950498766976334775200381043067679552278741383556161327434197479091841724210443307176467530395680480422107197419368323975936350841064338756982500164438740980436496801183311778342975790402180075908598836523467868695731963645824323756391730779231941636282138385065676803778011904104419012295805711228208592814221009022378787872781519574425915870605782239167299233916187006786643896697772387590598589452534178742261615204001616577493360552972049818794832352945507154085724257333039496107648046253803449564141210459768376933625963637363086967728296487122268184543638927249935067216528468859374182586836912425804621812324029350547703632028274185520104988483558368345805843387023133688589723073913801771915666689326092448449888144640372495802370321941286088946453968887198320522316572244046890996270667325632545634601616135832909607452087953248097963778887479498305175277530592281633274199444256568702969558422503605006250464519816248427884613574550935912874022474488841931377910895009759702003907565265855993925672143772830798535686896075621320722934581084447916912426135357656264986118277283104769417950599115258162414772101542724417467463313378784356366754486858167407779842197854338044993806217636197696319863825678104362943253575087813880373022958108527281109439529766155072181471923034189509392472218838593753497321035594881105404371423667850367703938441628845961032742327384375969794260425059401109336337998356265807367558184960849150608770715600516934591643419038830068917350358165589866807635843029612018385579453765106805906736743459308684064526553550580635872729794787424942234641896825782734355693772211136013226558520424166566925909147392711461587292037591822457180050844370027288655008192335620306295037220357655069882044872588409402218569727985463395804517065686933966474229749260784821574037334484983197998433422832145016795861168575557318383669183679843913685742605722525609856485957555689068866445440662516579875646991591979859218857466832529202000812789268973471332180327322645584549090896976389455065937254093694579160247721323060887926367883176982248630030160703780856137094447348337191123727824144791762236597169708051772559008378577150739617469991235243107075715529893712447141602719249927384319205175307910878858055666658906367974086842658274474360480319208964746378261295696882521823857876502422505697062936384993216935778624760939550399620458041884575637763947156019276584523595848514230461872249882064910155375608908204775240082299121549448698217928052263846672740333752071997764440827360753006529539948777683440043210870193070244476832412079953041435412723425525455821250109374524759965967240069427049713855687258988493923088187854837833381477621073565452139903624126448930378155882654423334216572051149041503505820660507203724557704338890119221987708766666265327014495018572798544056264068230917497283854608649566687889354711593810640140192551472008098226089389893976388192619750497960900716411470355282760751407149985086299171193966500551787248667941031324725543539554887574610451541015704145293206055913575527789576631874227256534720983687152838244646165240513263942177308469585812590996138557950102160450262974881449152870141123838407395023584678717459030498117852374228139407726186197838330512204536272454427337251333817450446919110165023801058558088043091785612460669809283519757394307872348827375642542641217873858484212415365532863590484293514589053011877930691394234352238280266145082615579922699433904865735239188710390169219983099335286371912424213495953517278076910482019727802668889408674087715179512052447053572538361019395821358519116735907371640318866237875097153990052034002378757534502750653767355568718575587998671849489958524020960998365862198841426182917066753727054987377533600764823824411093366740443096957835334636841434859762230204233708922529807574694134397493008108204343973672872946578239952291474727634817247709855723255302610081972686805733548307911638958953437643893968342625745419325099598266547522021797588304030057201000391344422581869281902652343151459112089997201094128981391273509220575354192623720826886804659887532525056561693163593344580802592719132021510756321041290710035689240785597610501605040278647716743527442399223273994915847912923418949776860128548189971501245980141534370563993654908046309970541398878826627412856469529380606311169917669156819265462804741236497247779774347413200814535021442403304967852699854803186422140092069964769618607809803213800374815692592777873726055813667045128909625467065923845178448599355314210677825173992867177520787080928791685895542841522869465693037049774718895903749916465273310495602072605037697718194347968468692660240518858198453428394815866346457970162270894348750000295726087392455960510543314814730451068298669199766065084198160781290348519343759210919316537053475642703959813062031932462041048952072963349193575537870453959854521059211916511075434088682810289945479322007129934715506734254464719220788045433171581259891957746216363560680215319213092874064852895079484832501440008920321075224527446752144487137674166855805006375204610134755774959426609544524331361244164145661031884420666332540376332299072469922888531298848762089509395500272081415411335899842138877442450862248179959224687006267535756332784106962357675268795580267986826813083445993697141236386773618498814130908959121656920350245597429764797086435308744420959970405087553567334696014628715687307244787320058655885706580629575831711760081516225321320348269489219639843010336493462132243645191201697603514679341935202581297364150091773449524903205561018540700852162596238335366676675541824787674599523752703352539604825887488741432438019897254274776374200339714575076769043125638099573575394499346515435388201183276217043525206992495057069465541157921743675162756705073011742378607481902844869141646549786744447395742726552254093984154518737392869210152146491142918570288463390897506509646706523436050651094059401556033228774659487759975637166500853459342300725487647239403584627322381693181053813835174793530246184452145319251027387061263271716388756970956776140527813412594213674484148767805718541207666234845489088717349885153659490425820434705870332185365103974547262310242714022909849978292862228847348339508108868584003178649974130049788565068876324491609778306214892141510654188667098712205737592897419440189824942926496461210436039018982855438607850985939701490952673673117574205163856005537284484833899027081279742842081416604457609941748781773071890391479069849347650109677345449423943579387464400299024598030177126640927950821202738465724862092538287875728757228723809765883408563692124183927374013357271420221906198639185693258889224399855917169844328034678577027754829205329085007106477632576589960458555759460039784110535540782869220741935442337084320335752966478513521084201865269947406328478705858598813143376795525477327395627766947857125790620863959030217995889689755908236453309744448407595790581498657947540737155939687550820463033157341445955807685729989880164324622446692001098542821627704687747254911444438645164737309992709696331709926077026042840874206593232792151700590265752232976670819934748419690407861507661967927246515604733496986581857454085583969879081607273913956654641479385168022659367284556503223029433796474612107130545872656883486526983774215913274734007341528363936160985597187589795908434915538755451830586925045137143962297786246369210211025122524669199576130541422464547226469484288823021503517233128045157227049619743930983704723892347875240655997664225086721519715301192485999049484274953976630631120695646190488008346985165913189479927826504985322957213777878471737339354836917376965647126242609826637898052573019567950524718955423206204246023474093068327520511213075163348743791473237576361746220410077201768501384685144319662139018228989382492833290865308126426816281282639813050377076173216267269437641385466378895365290353413961494849805523705733517848880511045239377621366875608889062676559136269612325086506904997044877964652117687488622380416722442230546350705097378503814855377594143665995425486336214517838709775903922788128221758996431704215742758309077016196539553633960651097082021909335169796705550135005645878589178419374667960089821153693324099955927016116228709111277327548055950148840305585875577593777574250900867114974409868710768805104076647156539170113255935578276396976171810784369504257534431395507347843191272722657614361648242313156421289283950139502782389571278424555763218627994045275471214398756095814357481659310734550318691279390534101264377789119836088502304848252120785719296590322754777103233322437734253982146709319754236610870012180373177334348898318822867734688949588268899769149956022993456920557986992507809355786259337677034273175671946310622914885489443488810103768380700412323991481138359264025099785480983181466349868052454393811162220112489309424190587436534812765507149695382021332609147185051130738272185982633455870097223483030015210513071002883894198415762882083910247425628162681636084826144405404462726445781535108401490290017629613780907610670962970630346380133451389639663573415881658484409861302247343341527721915093531461499187795296228666403308963640265649423247521684579855278677269078668018786819832008531354004985948681433594377549199641293674130668465302528790703095766208702582963762282102281780762943853082055965714351594717452367990030761392484349004320310327257230631691048144654010951841252010098758229727461344512699237045523004851645765923941510827872256866575120468904408215490828866149133599309408167908298747211518977612605707330848523624490312736559607957291385852861387507469808977397679814500899985525122074226278453671027924743603201602284918306361950380622462184037900827227396463623244942156414148120884431985715527590558551357232545228374219667140035098815417195137907162916012297274610656921570564828272174030696384322675647041121645844537418508900848476852663630689309309952503063358979455022466950242995952305861677963166643447639384559869793743483217434998079516882680609133464898666430031920318003607318315962750817466491649844862563834411931790420943429430842481660739863618171157696158090101532494106736026090709876060318335985123229444633721779962652274473420897342733385405957126832966631552026595921575178659269602838417019016143381183592930340401813591803859441622296131900074398887122032263598797360662810398417706797865997291146794817337633704734642016071951671429001537382817107263686279053662214310999349245957278791834216467469123699911757315943560461163769900957977125994422374469313425750072718239940639125564704768472542987053394467233974625628408912984640039316788040256402995434704998514664331715809250781685453508309232888447033563023025616754130762693746338091261019713587350986438146593570278270155382884193860343621568005456426260640760734265464326634242004990895848341448378459657876284671483557673703503366784600178804361553904027007562709663817706581054082202702816141115653143430555035265692253234795098232500251850674763281862950613438940351961081402295588511519167349312073501267021703596377425664355874446274641257048032851992620065111425631308247237334258416345727018349477027295882034325437747452382559422961539139039751622057101545245956179194905499993774814569337120508113506596652498277737353165866188317626702213004900112919051549966604663153255288759904926292326202751964666833804736564821655666210169774303325449472842883919045864337957317782113166130342178196358157690059946298684474317692726876099456276807196433337926191380225753501293238506532679977859912214904431772080624093292294801938447423406494271488850617119349194489991529971436614704087755642296448654414127287832104613931570699633528299007208337012004773058964786936330092192404153161723533538445990840174635038318260960787163516975900531456547185055466463946229879620970332606357410458465301149441000965612876199444202970503702214668577077144280679345574549106563860776451055466504493984937920607112115146127289418098397864730229548260572543093306251194250278630463644773543929964720731750494214779103692295578455748092684654612004074126162189681891964228825192305570367104946535260474416357283995817182327210574601248647012191615758460744457060522662020429910728462778547642158220756022553447485484699287580145913961171565635375285869010589805059432762046001815548824851631402592962634933274105498848729311851198832791846579789961617500543310095945289102195013285115633239366524351251991335064654898933024127856572061718314312022938567233683017080363489670569622689179592935669458532850613184820984549049258537792704107508367722339733221865061290578120880414167525529667670626449513659121778648112513375718188863763845581425333912880464132195250311157942710123586212969628607821383295995305754531713816192629692244665896022267479954102528134695949310007928924511216197731150312177894773720261952895803894717337970616482681544879235400457572518637876245818173128761124510084268289205429414282242997310752272967380876644571667710754498832855200743385703503140709829583810857190284725089377231079595291453473276696117761659647841025996893884408662610859639292541501784198374166623566718267105445922102304093700052592200215503398995187128764628103694745050882643072100739355032604545300106504650244078882092557796804474428118752564291811412405547380566650915754849723894693080212437525767533723971542359771634299981165326575900774606635093254589744543178146903454610075913717565832321054988890732092916550388884766871198898080841674868420772796498268423703028064350388040701814650725051528793687225518855239701033573624122623281650958263191331187121083456176158442455586322796215590931319332859429283110287349716906412654182723859906859791648139987522028317423711889968942429587806632549643644059321919585518161392184992643027101361335946811593131371316398719931569364561866807513426247471481842190226778769383558362053454215823035083106052785862952782910135333475260062158532529773414154495425584268524723133842324095653171916113384000728408875817220157988399924992303622861302465610142913525371374151653105240781626068235842019405818023642205906943362716566447163805008663630919408468615353668927597880754124239512601731984258495677725214818430357563707458957511447182467524747642020426138202092001563762610807854041534849204586443240293640575393039767362469584405884583535675847054037655193737426645394572315684872778610418973695339848691403923114765239202678311201765641438910235574299014938843451173136847178230968610914774187448394368237671856317966294407858896311787063186849098254308017288825042617896354270897877438850737239110546365871940410150786920824849724970763380246282262256799485954083753732364894981826350963594454928286631725075388588751144099420066912614306147427122392824835457994518363077428981779609135386579919769915016427733519331960017883228903665810267997884019750179731008154069211927697280602385990408488997525616523229300842433761592928714567809245822815144714360757991868491902154857738132032155095202531603771390208578686521968807496287102168977606098128068588275810691017756035677042682538711678140146977452565303086697275262366304745321119469339153003684462802690035706284814339248660453082467096861131795990678545200096391511246219584893571944443502355117202172610992367642405196022119677349808581399431378645456012428864388233560111050394133093889544065918396406936456647293472291232744592705139005573997525283000081477314373740679257638643724257715441452294942573858609275661196398216846779045632347529222393819067297686491019342401536964073507409464910543975492691518209424098885276128661838081958276428075499528009052934802217574424877463081233658262815360410431286967617505884607382427008504125055144775072083046809156947938579902381230675573622475493865510457731333783602862133793172319913368594435204023955757989494419163352939481331811624655496600981617963751114818260994614734516014141658768142777522719396329980416052973228421158341165504635021136044580385664900040619461179352657208959021853235075992640224975481244811183634106498447960269825729784659679021951905809986246365306150276510149944528829091283495203726730609846278337182311285959785360210230332897513991614176890126126766252389723589433622988686192840609134888131149639478511912879054306647016992652793628022096218167978162957039996345498445474248075457271615468246881155626259910409775871885739621120210316784348931943837023019908956539872985353274060782364942036968600863513077707159383322414784445744364366162088583571186282370377335559666110494903944844295164243493183951213987156122530542403010169396903730404373249380260545946951737884234141811228925942128967017705094967803516081166871398261804053868974665955863086053588299526524877558726520184626761086036755064229708409963220948405242114867897068563855129604713190151376148592136220128396182142640652738943316561615578052517482731330105191586935463741660993505340765062035238501433417225403016270068807603079776144320465673404716794753486546667365672086624755759275481646360271873483153711985735332433538494133769171423518417180302078576563048101028388848741881520129916905420383899579810423504115114914840428577448494637455622906831137490531688804628593021286457662355573366223400075847866529584664613202379508511229002135588917531792565381074581212411345465690589054572759485540816655110502520865135668866205141385322278702304267535875963665616344853227123997331060184489070116866033602546007719904846889199160480299668759569560933305530081664616027525242656090932857806529634397438741069853471465852715962460920975936138080628312232387047451133064745627782361312371560179723632762351338730766450466116574757722943436619053960727125661712645363094607188375387158174718731561521317948244484863339730001608976743404141265620378493210583232614590240029459802334527580107896162323694522292092956684087294368363749001482553087479500817874024087688923674788712955159637326885195271186458760369166579987396167241561289692289626957891625680582746989351042811291927177943081562840299873219563824838781234808533330491018627282502666525038562575478933591734703288606243727933979792235705866894374304344629380827721578329708914285138715859035092628623629137195847290318786105338091234502261338301081946382029594449493826948969619312061569456105583966344941021748926801276754547599592588748870830830376435408135277157747135051447693218030224413589505561545677059316737455778646743055093731566107175307157830415315132405521758662904110089640404461667907277562958159524166069537119695910445053909128653346680055167375871222575349616018392321431363825980814992615502126539762599840778951660712406958861947683240469663222275737562172865753815981742013126333826294175929195639534662053136425305560546978680816237996422581190677528840249690264075980822849655450343104133177301247286048075298624942826450077086118229341138007701567480211193835278232691554688253944409932991067635528086452045558541357522597888582713987271703733563768007278066154686905525497843413930169448567857744013456509070713371295499838321495752359633653091441385666076471453012671413865243817112413084127769149335237424002649878940668342856613048919080602461827447900086515251491806014698242992892186902878908292068488532723459948197479796258085458897439706623195766584869326163887149920086005490833442799307748195699310890621876898742035438254208340298677363928117779026140518892302891890947347946573812860037833095608856559395773134792220293435641135588321529509853217043793513010792593680106848959503386462851846498670969741788751687697984046998683542730644235290069673596628413762225036994619977395055890367015298445959209500057143158528968530298946795983004566192161320213339656059181176082102104861612008120022242244403559056642851697958023522527727315789503872608930507172681013216950549256694375524676935949690878442758385725640346694241274298598917636668404930157885560755395451899814135849388071042699051635623479205351784504246828262379126108206709794440039565782718300258443497569838834075348101185972852480421688170912639727770568705917935841902636312217269775906451911601850232913352780185142235997954915127751592954419764160799555820051791462102743349028892486206385562095366309710173196846172132056937498686532408957009797544417340330210221275871069665785373739510973401291759564339719615815113683822465421102264774161189181949069099951623558702187858242262402611419113291666196273788766149482863251598965149034672510490578005535128891392044477859748437432059249920966243125913927683202888039842378625037959787444428822007800323826853818895743809022723138423750419606952038104607784600298717890811896548724935922469434420648225240086128422917315822692873775415018612523046972017504343384774902195588030114125178407673400697776811630087171144211373146323149851087202529711632580631538954216404490603860277297965728533574818350465316612511155246138169534464842465742471764861304055398263932950424235633654272485584508667150614491919349924256977208792341963133978033603333434101171566906679341218039124264634848791071478339753914261186236911078691520333616667757611266685004011758655340521966889416315382482169080316610114600283487712931404232114689083797724828489151285713949673032079537404053038463689502288778145426624899321684195843608117911611252108901976889529790479851732771335183683245450055302833704617346543353437604012048678993838908799015645341865916998092004745147510615417550790712799316466355341240424787483554292022732509410733827240605985888272524380135116326727839877755415371503038450357366529963930146140967621821177396290147174853252164868746209270307700408185619110267461867243439796305622881472260113330533476555620236770024747574567634016020095025617326030732748038164086795091970442999326627027283958923881756411744973999328156613310517422265964074759673482264336602595084616735877487561227776544650044770540825913457855846448733586618417781703354056166484115810520938031577929609385376802020108237118446450497002056016646128481893878956927661953459426741456996987811827767259853346145838842701657977046903302894217374521971906119961222949703916431781557840332991555087534844241841950395797802556405119465838744886191247098073295541525107624997163753097584462389748911618687535098146840104172654438708351652265316345531084230310416385946394755049536877371922116776534998750379137653994992397372079158838539295328394024767346986742812542057466935178584278543143734993428331648539048658595351057626567676894345621705265840612840501411356434755065706169325223617499969999262907784469299518758854169263734741058342577769135945951817847740843251934872690297117859717425788681020348951821284569479915856363343253934328589235029497914373861757208873948582696704584468054534731175507404557754473615340668630029706509717780119744721841959027002415548393497257644509194989250739201406024157586832241080239801073655176666301059542511954395221174694544683547394232635403408285458787439350431347217533974111844592126892712503779264701417056966410300649899718498690937781450023169554684212681032856755880448839545619598620233873715474203311163462472008099324737672099580475544426323438308467239550220741312386519009450822402095095645588370460188081551225862703212174547596457827045018055536962531145228601483257768027567582781778174307043938260492898135697480618169141772241714804836598016146881381312112916363831841611894900839519472792735639752692156630153444188085174724568005876457554135835775459279522462745146627839319432370078452979399856369375976120404446942118431534053272554251685035873191685777329820606261531439499193625224074477140875467031420509257472397033790622017286410475972817589821975072371452790998555243038774748713050903840892966352592326192803171172551865905141434205668102370457581757395895279333201598560973779811168395336003949474711634435038299535629112387910551262480022616669932594233399719660268905389808677000546426245024751067219573949977369943822534702045543119848229119529196759024978397660198615317905406543929246216863959254706412611933853574164645124653595368510468409018562006915794529263736003761888555913459760654213957466853035707304785126779888514591297750004715564815015351100076522794815159459588607692798078110175257585774629492859031847903479905856694575688340599042644451355406805187084499884361139924296583075982598784210837069657431247206673943563363592480209538031178367152104879000647892028537064625008584931025298344734258430464465222954695791900736111207489507441454724199840948691366855561502926476392862256834597409281108805194329324229810525172884829385521115673511544738961092722587384867347979505818503847778090669475762304550474783271264836534280384728197586701413499182426132945515544488603988775304504820449955137154714253795926814031178398496652733653455734450580611803256623043858215384472515022063945278529324632885823638554371610069425731317822035732851430557824266096623923918572777817795442510264033833602215365673356833702207211427676922924584507402865951895444123830134389166185411473335019004729573870710892109820101512932695758663908789790303102305413297504732654149703426833944573341243656262955722742806238563359028593045564935212475230166825495416852000704198834848920680499857795916305655321302988350106996369881844939413227075903136253120136006402620504890164175867388400347432949083039710914270828103657338615941918529108259914260413969085895764068772987876968915764847311852481763982764648217591210332602767214159080154018546964978233217729400600720141741788459794554673985775980328454557810273531707491752405186815297028068919819525064215254966779408211548180247477939754559007758266599528960420124418451930832065405088120971197410388676026074559922043217769594328078711017308648789033770800263454547889979561145086932536435046880086915859974066705182442141724473168153176062715046386664938514718754560769415626961902619991339205063429802254589429189675657644852184504710781906298086528326768162191409643439030633068631875949610885380917916031700593691387973597245706312149019523411670838502263437394960550504600981098796819147822936786262732761416521131146834184592432232228323897369266980903386370056699743750894025827931436143298739851129211811480921710604000857308331733571380089493747965719830704382656885531845238213532442871939453999749646749604208578741659357780301430151548511795006419122024353357409418620472843876825032032305684677758252604193040661871772875233556427302084403863899369698084287946692789897123622930813683328738018862729395185991523294247241172383318485963473577813270095194417103847993685182402852587442235427933519784224403227742421411991224237181987880288023692712374790493993089547466382272764421711565545905742164491165212215768009606112846839002679288095185481808241145767803615917084359029143493931045435684785807872276688399251150214348559191763211434121239744176189763050074760206137700285279407284157090917796892189833623876958432666143029288568586813441266903436487455149588158049137169680475562121302014620423691153029811385208755959860510391962764297046459162345696684410333244422614263447864371788452446090653783013174852650264639966927275442948010871105323306169002076788457070927544513344624063684481836892625936312887258528710232588263664822258526555573820552035645121173775746567562444390148457658047912221044784752855495045391746893634827190294197275592808471226521096717140203609226160348966395456520346887949669933878975514676806859641781168385235680077922902398753900646713223534799362228060180681377771018526130750480409787715765485709890869808001354916103400389511460947599706552804203060392925421689631238582167547657558460081008147397597658379049057343067279441381455898584616760810303158183518448695501509551316519998330955114812955612574512672061700487358672121059981515165095682029597746760981717643041979635917140454090730858218570832022844449824553925835561192494109616805467938196512004950009813857804091345329259494550739598942639315225996024791151584257370044892778659178086215553948810700017644287150395740734116675054996251753871460374676105248555461088600059095740460229449763720368176682679819494280275154103164292068667552130955052255422681681193148883442696521551763706371441708154706890802301866694499157347125494878698661941481743650197197650553747812037926651168970886523570422270517437067460817413947803382513204177608436191765982677341994645714208624297307474124525381263416941106702162897152053108288854513291386162182163038796601590054482106815992879519297662074165686063009770326389381908501327311682051954123270261997617847717171093963505643748463358555988963257497283929786370325430614028795595732548833377325945761558652646156825116701392584085462224477882272029081129950548793719115849425135292921410710709191121762106979760313166634894215215850872861869361974070100363808388091161089016075226454986723284309144508292455269632160794199283471836449613089597250981384742566790452775222921408482071476338495648921398798962164026798247579577200600900338612850332401130490915103276837906476050632902034285011909850196985042647607338660245690738534018307379597876493775201917331243038518102516915007806704350489973862413475429661312147041042421409609635762520766899651721569950880068856404582300408390495250205508276425342942196484681875684982205742045990518397286999013854266320939847179607645013737564932652914751515007492009971034368599231240689935114106130301152511637556760308608477884995134756160381479402010918392721521203584857410122007958307422091067582029313422318272658987532104695075611421659590576709875019063609520523034765104583862800742605578010512681689304255188667015359156876509182629171589202271657906383235241999508621029181646055136456204246241876237227425668915576804633976982590065430319550654816396278142030617122211457686914265671935370710143267350131441949908443772895377599442628582708234378672378354078156880871508843293571627628700250151024241841029185719201078016304143914436821811579022126375182846867047179335640979245155189450854903845186569884056667535782363086850983831195709752589360478238859476268370105133240795007700517781173423683090105637587276063316389982039536222634742187142758647445337966123301485545310234765235103031866802354447710616687871227735614618914083415497144418272690810449430873225938426460196663759680761602060069964503014759562631096683441059464328887027823625584794055953146984359037809097199467568007353859393730151138108488465036439442541540965050199672696229701515780193660707958110729144629902659032821751519495673808592860423727388631193132400556860856726898389884508652522191936128638675068185606554943015519073185630808077959525406901546984788994604268427872782637047407632417457147495307295981410848556844603370159712485997941247815344345842312932948134460483761261637278360202786277695157027804593201560545719892939436692129785622851574788416077385974349339806296314689143784755332654632724022227716595297420874163511045898522013362510221361162790103620526875727509063085156840895136470470484887622522483482449177959652786684031777830202109040440462472306534920851348273681380600212654374823352890242182015083898453808798989285620095240650515292815653377844382867383244517200266581678592045740570139223947074913396727620130189433549484770938619659046528774490065515456368329637178804087656138409264207783074006758851890327822331986740190589778331827004530748006946905813591981726023081049345535137237035857816888266339049350674135044467775223652949115649689743940492477524908955287411118773732320093494272771184815269661520830981185132324808521596409600540157702459336817876153412440704878466753648217581386930564785534197358917149368142315131732628972490934298060456436654571575235604046365103511145188735923534246491820996345031597799270179305108300078284130568090663464826104965057962109538458525170220832152618215983684071889082425005508379192597734106634463945258970959127783239401057446275342707522322610250361784640460656990029137810667852963110384976203613963952388201854570653200549112609225602902653896499903787179255003434322941266464715346320447984523418604605083197284459224939521133472905599196434407936186711479147346095497470681133172941657832959068653238387910171188697648420746161890381905325560760140680511470817303887137194385772187721544022662121077205870380733297829932318597961380339318175765906915632611772474008615446665610650365778734296900848967576399393438751506710139965803533273509149749644218751668270576332713288555915639484024513984984540174545123332846803823524286522773061878576489129813938677868195529245504321552034178960102747928758183231996642154150523195405095347523568786756970816112233715868274580750815611106245923334989085711451879597317502695890018896624620747849832431905402430827087570507115173124325544877439245812391731132169091932513892467407682214190504750033635900693139639264520320655773439231474377175669749911957736326114805572282625188847732889995087384525777653964386805439002962322120041032919547187659241959925470278411922379764324012036379910832971825549425482116128060204976872645977412597460689924618546511298422504531231861036293796206208350483760598384696461241688042683508560534749287192076783643532346591880926419096984440432749533609808908505904006440301759991974096350549586337290509542026957197645899808613910120221283807815451411660583375818411089152910523920099541884142165663272590506319809416653472904727654471808044021702302155327800305444372926718913612726309014623452907227006551442586462797130863438896775728747172827278610033362321790808601545771376831096759870301165302892907534816129880454584442579044621229117862554406701423152341542430305666452757491742665809504049471281798565150755154183960897446955532757463483860903382266625281653191491314590245034329043172773440933485299509836831307501553621225823652250868548083373050992687175938842422441186779151967380951843348205328084404334099457111857240173253113401359618586963093387306909221695645765466509860073830452165829362956500177159143539837434228985233174651286187784115270058220281946736565046531772264607525812298319597846124849485137649887925575117390531686063465663176969289282051187034364183115163725608915412967040166072318481037640066673097420263685368040549104706569316028750578158928170837116678006715342457557133685721851100250368600200914085682203189230060284714634531456539762834439403346745877163234592882087942703013604274451349375467503137764266651569663437214326226394982644645495351664842861384126093364512390605321796547240232694804136933536919646062961431363774507676053540245900298747023149006667497578777892670974579140511951927315076917552792635847648416851043653401642058067999260406860622423857059836716278326255284062910665559586818848805955842850346396065749872615502069159300276416795728066347351750043103032561217674263649167928846143313023553752840095561053867963607528089444984945174944662255654290336552062280504349470460687514740645853215340366402537561893428993584030865940706033459996224358619845280142255348409904824290553277902338836791864861535117415247248023139136611796023084299518299835505626901627092372550916314992439434869116090720897325428553452821653323837769889311356623174444922428546173898723082415481930294099022314843596839259081050232980668081223365628606696361795542678914740811539572062729665968782596103404299786286442023661523162969551851388232674347418017870879701034557236462543743839019039385260879297896622784924457142241666108964594549912045773955387724286875899843473524176424696921578280721792259712412032576781824437856858960642118351958164529723900920217779788481361772642666002154272883714985198380746398686144328226857200510087375629113075244459318282428412773646436558283363153445771056399437099918766800910416523344299624021011398856062562699879314428364074339724533471225512668666084787134334923146859948036427260697219526518580493608438864596361866217599992948756528229303683057424501237311797832514957024693916055987535186383667317774233855596703593065049061274296008535309335474843580698027449983529285016425808534150455740830821732521218816520685553335424809864845624485110422462676312896758328743617457964317542757796893275649846700771002643184595668659542454330977922288142668678870957924694539839694754639792998201032008007472858898269929154717897118497183326071382827371102560088082264362193526681688789476316487403003723289414122409895692018066318515994347374326184870318785020450519682486251226843106044639298031250675858715606973814906875195027357898965356889328980194527288046265606899490132878137215667056072556023562322566768289575104046255885321069087781983461322163635372230489647028844644864893651375279527556233039788717604768962828268441178001090639535983660112156914412968451290303770232186149587625119938304810686850784116713556574440226453659645913509957581610368511219585250682402750839552122614653825585685214083855677896465056201309231227420945953137023854996837161782524557134575106166389175332744314796087843332676212260388774568918453905903776054026911577891333653559648853173404689507387803014547441576709090817003299002105606995480137700005541227119176974058114650823224142614704917480108782761767884890440566322466341013561233533585360732999857434297934521339257264800619003795283916534961588739726550530306942585059402868701782911974012082453815584051155431999532613557079786062312873289210517077607648821048525503100205493088603570256483247265283721442730172690460715047199273784763256551538393409799314343522590912649900736564608802848900404553133542140808829071100534320073571690108829991083510442498296744562142489944377573411056044747163713507235627649106402847121572157327041565593410409171879552055285494121984233155908580944356834799706894322915305804505340550143378786858275858144174481730482591150470228551604169098306894630847700915090000725683442282512681804552436717350142451942098018480384352222368165633053273634318897782694528471009021201806589689202821827884423908168000676741326608035627568895443942447285424100141217014685965848511214946277559722749317234552709152367612070672681301229000304400420908666234876784521503372747904630789087895606201560508838943162439809580595111504782411718515514067745357817034608364114368890467836588751124651973868772742841441804085025240976675054435385980702610477762034838241633092601210882150479443438192386824807202750299669328006840132897689122744483397863699702469225207882392960739428565702201963888129902886506681646960098250472902191969483948883931273870727579048911896510481308580018512713827272546049178390510838283756496410399179741487189261024964578740110380517532408605111672518430883171561921279656669318990947827558983995109890134676131036911978970316765975266931757783376096903465214278863914485641099754079686434706309653536577466129422876501234011908809518005716082990221979895151234582445282314949921865631275469853286855620058929137864888037035094710192097776730090482881304294568997187116190391876044730949454071305660074705806453496709225552374277802521709998796565508345253992316421134648737032328436934455755050817470295424821903947859157208828575006617830192845982329744003869749344472554476995659764401522596078869954279073047943302099071347549711908351587054064514154196052489257481383283183655872806560570757251525872378868175735737151755782090248551181506721951066938534802515529730475560635300420602117249625577367353906300631587871685582680757919164723240382452739454285457690408760609307989071164199365621029853114747823056601943244372907205717488074614210306332725348902612067280624139306710562885657564748615824086225244016483778277054579548346415496352419573078111257258098203164045455570847881424606091464953018226872875143971468216724210126003173624016297841630971798443433090148338370106643533108366394935536604479231050777859723480145903377492543885996322306643275768360752414734223470268332316637495883336035535859010169234344184101705477056968038267214323020129971713020466487257395027015218996315883226217804647902205375729282840746377599663717936280459271700016938906155766798963410245953988371936288800389972729007627615124564141513801333050727992378759385335887543935196704421672370994653818317420702574020251755348198049805846576438461758942677834144439130632355536748627998221631102033469036004680466049166174833672282548426324223487437897510777636185896965440113192957043684532741865922017413367570358255725401545573112043779769806222573875890819884749495695506687705100981403369471169357802475202115008763022261607575711066819611126721810096633229718907799221331656336056363263188073725047797713127270218038554200518625398169805127861254886460622063497492869664773159905255913685162603830471877276562471422316676350608188919452344493575775866361490754289922404475804908323163231835161338607808876647448675019167518797133053068679172565933425982222930333478275589364999203517607697377276906717938065011876062607132277129869074832337834833790854695891368253690343878507169884006751507004289793621462595787810994522585936474026443567159295964920872792858419141382951256859973549834283489233783014273734026678575148316257517674319852203050015290436723524031947081880459024631114165855735699804362870117926134126646757225616188832049334130587423499979534737088805232711215173568946328998385515297491131373764151068836116008792332285521086903421061371270764891711534803663947802591707784970154914050601052021444607464282792319607477735651554258748929179117870604781674555930147977896398413555336150414222040045696643468863951404951755135430738137315989930873264311534150372755454138476204693618786188415295177939856154231571513811144663378991334630537255934148394398442815864982903221285442643987026031352589767721913217562837565813671075083713224847382195129741213124797611003362981662982339590562230048960228243323005033139623377246418500936585386722359328031049429274943136218051932724491228653253870614450031747949510018204509111494165265674753291698094739740164833706048295691169338139370626714194499553827054984627846652153221058283100735025719897992219304983792297689073632112487259396385397145923736179864386872698659374583045833552489613007609461523745803813725920499154902012383842657726799395557417732295431916146754704634936745086002879805613550907379581357348769589745566273770996199960814694863923304772712505466821286483458781468578725340622027605717554674921492905849260204424209263106241658192242902007027986658493428655700048673063508615999471263018918896250751239447958110042092609031872299663816438526839598184302557780547968443890086399381425825857756053321413329015372553744002848890818999965794819446226733214272729682875715699066646918621806667317158819710574990520281789856132427150825229467667397324046868080172569952308941115194747382649230363465267003699752851503048604816171061297188444237177212491039084632682463401048057925052399958645479766040198559814618385908201850944008861664180851233794847540933823414254393887932120415059885385837404537510517597614535481119638023136858741199919075491406185233983109801701632298850244086496100924667041024268730790402955325786680918893560308886102179497766653505574514699598107820120592445564284586365898011117247403137026052067332374514606466844931820177886506904989681933680666976266343191575942216278588694778107174188182084435824547876242417865231546600997287232951716498058089922167081726607904079472890362627960406085667359758075009154797750141412068484724642448314209868911573799034707965840667288133535318930204316846495697899842857086508921106448501142629605184454567880752138510181603951315770757848456856661643887423233379836976598703935365525376625129448332866443143044458352044629403806504206754559218327482815210441263121720709913712947252213099753941483903466779952263994663673028911529703420530908164947488073658779560586096019563464704871881972145926269804950722456589478491830243346168149304306517470406177279957855870635466604480359121265600336769815810958345442825569536435309565759224855498216735953076902585064579137029611935537507296821165753015826127497521207148731543899948767318171509851683291112452689484585683026795831952158827285623297470195497553354321370356137630755326029399520780526412495196840194514214926291082955255093625828310615947969671442103265713335452634782297641419856406486528984585695606084468612950846235612824510678142395261538902232875229871554118925340748709030779284378041722586217659647001710643344184368934871160248355145987840047857341371648949062107521819528692122451076812533132824253206140717182004396247008197563484799377327904602594567935765307876635601477594250709054051619449723593418879441821921260647538422077467151800682357050590163517066857462574114076161802196244500755138212226836218187250633218925911594857193452590290014636374492759341533441045485269305756375426951147883451859798116480351688521228075986544815990719685862388753962706329887886506266032390415374282577469203074844172752760574004484062417656817964224187003025818286864898501865600221243773477256439549011555552520056212577265331352574134621996683078039843620914106830296867717499981728202280274829157390698567229849031525099362151083723846029360989137361875901856576550169003830659697481473997683525937210322243474649258902886161046761901373071828236846359795022836647860935253781965145073885623189178731111220932049361571800886676096817075200083413650468913512960722732252414110152508285051529537742300068625133966865842926314787328167994988777415660300704145120929747172617105088077815926257020546630389601657964349188150528726569672247933793791248353239033133605555346421075266369203071973087486453550592067921901547695511189579961677871886055557578501570547669364979424161565112246110637808957319875809021054026407855937561500623869950552876023471829738065252289798072030634854694772049462970084232163627451930369147506964634446934724527712942274713852035960577364001128739555166566988485794837803655550232639299262123490875615451771833501229650428781063078253660642265578809165484089860215400667564563053371803379161640650634001789361447760585649523787515168442249331989920112179566109469356623151184790911753294791819204098398246223838143497574993001597565424082841885572621548608077078818240661236593352636467059275677133152333972593142048913480227450421073970684953608382720317368337655745575762441250582961890112997752844407684137333813491742053166848479466580200058651220693978694457865994830958977520621936623089098237037728267544342940569607324938200291712177117737268376736966336150057038412178143775903856756279608047154392726315890879474135988537311992711862581757582196864595705283358802684149419334392410988072482789728524220435568703399614813414942940409831928790416777903503349893555785087903790403488875895252462644735952913306013892645509065818050877729385430933249712871588697112850252432743804089260382642616886153920831795532442206438674521361733342323553971929420837421308127532033049696513871950490840775770971350043771753661080943439749392086238087590626507945448304202546251497302656978692706911224584171401734351312159508191350528117560929089786842811846721547490182080809978099055715947798869756450665727985740032657731425909933228787813541680618998204595695095115113956850566613156305515887028324372788957872024197202953052325832780790437544441498783324443481603587024839878685949434539851200465095356461204218129947038274858983375229400260167764472365042601247562230530039360758283940658266429215015653076201509945812664255563200448510268899176257202053543280654267031338308933815004209484381125092285164358795512107848506725590018159460746873935976429220491215386637906496815745000384692896887883057967479495402040536625034560745543939918910859837557391180986243909251652994657896399124198778031742705667404849983913593107339596015665715141910722957321853341234890577115100039789867117981088508031383381569763586938234608476752550575016489291243153895018322452695978316545469776032066679167955398462621909362317685235834323712585406576731136140563012472286348336260058026210044910662517851626795079339270604625087217742464367057110089791005499171510233523794274687432314534479931921091673626215782390064121162138236155212529649360180536126115454587464876566338753861911419526614187708689504847882759516287665411126937692480266061051550095272942069127802747081463992494956430733796945387593202386601418258688901932565039729256687377475495531712619428376142146120109339809275593891382652659118976503690681765663942833555404613576365858606734992523650921880697234303971570486316811976509197870354686814576612531603539196330852245496650510700433832373297445848690023111921548993513139824449689641728472271687912448814282405019956406642140855683360860222623330547335372511068252929530960490084394778722451111655325051568576824084905519964686473726313766357923626215758128851740265097801118683717434068588518858863445071453508654971494424887769802971176631979794630396624868808765533814674535201975053685943935484230714727115959184916590477792311653887226024527509657104629405242837969173879167515253683181110671574267009051640774898255828587998138366192620084048291004901018531092658557697839585064840097474787451438556746658059969853264569728031835632071978924028416368434315042298431803808376202294179360415907433380437377772333560568020383917533657780972479053212689524423451933921550605768381861824715367334188176856230658569657510196874697817978193384136591137790641741677155490436544820680951531743388557522589721565763360545178872813651663016528791506165988503685800115091494163765508477774283174133951793072857584803496939758923423806193409081438761519283145840488862571392063627434346561762105865214880128545618618461851124436955509326931214135049752602713586380132876514347194444682031551419294588934562342624561106358132939681896654441208539911807454809433320968286999411433577878187471530697982879832176160880265386297999250473609418925107190021756043166120346098375370539146960769391896851014413430518588934764204850870807832158109162073362961468089385545986197275581304042273004052651260230432556307330959338764473128018569267599913883652066726934867553897296812206102280082361833056517888769385668064898171301333713856490685985674831720181286226542478337774269084181885336817189574265588845912653385872397145208399086802919075395302447504564776310752596618424059100551813770192891159089653953095443067987749559037345477897556249105768393980855432645519964630663250195563213399633958675700538237158495298348198537743197686374208228844752489883774302723983036309398977373534987359566549940464227139098850715085735337596663069236271346218808676894819008336196146415018702569293389059867025661861011872091899625606806970569146293991611643793934892395337260029117556636148797122917598873981467807208175683087186623926347508225278853080735927774605547473717903223945185655218224892889020316678766784403998585804575856398435849809289747550075572555716013969930178345581186456477820696510672992631230804328488870848755072172229451744810429840022771320118050974933445328272883272816789889757039624137208966785940552863679132270369756670543602270407810339357496748028218391575197907312918042506258955956033995224521473667936089236537009629726497099783832867777939253557758305886937673525877753306110414248069673740303833545601861274933475114637551159791190301558752295165993894086069807172361478484700704107705053126116385507630020964276917651895451697313112286078978284784091937939280088524996229935688596012378213267897537355332281882552808259637306720550583663993488953751415232025752215790904500150720630540805047975392513935907968723901328334911253941642329108538289657593017712060718106422571561127616049370503724899312786675143230341751055039152345120833843536712434000708493916024022764729158460706498619634694367516575735358002795969964398674683906348933205160694561391433547868168701519831881351698999997778359118712207591351266010124397203541814271404922638642153842302079504137014409302257841944042624538632276135928918294800603103712383661740759752663646872311814043509282563535660916273199933844244510469579523754624246798155109896327272227081142317373866613162718123383467209647421312618944136170484306677777271671885759195262706593803730708875619108584232123131059579992690496582347475877595677555127920311690699266182936220156310137734771718217452589354495317618745527086810765932222993677794943185728416011363683498867846099425646264226721452264540256653107677573324631412402482500281242984054099147438163209445818485356188259119253562249319776154589221471656071336428538362402183816751212044082361633980788388075392299187559550734711280533209665658263421649877344721929900150879085342584462664456037472055614845437945409805884793061568161741727995477019944948139846405012984813075115567843138917612394904029154774929325644223498736539829339576906005550486281937225890606152849309471104356324239093215219536651212141931913050825609901220168832637418637773740292903379242488696161928168537614820058143737374878428962825953482058118717468716857852599463175923451883138977219409587128824555530059249525868232339671741481251216519988853178778623650008457088548661355799839133837222017144487638512860262020856872358739586776793513509316824114562058161528972980954657760536328732780771133809808680525973823839728439024400066074039111027341960511312341385977098594161879402856228892611389880168321950515831357821741403947972185844754441415198764048364777415669187275722414302267798997804814988630659184910197563433551707320722578814245182364341036070965090175390414792342678635323638469776732733299214661829311774694252233668273320866058534869053003023042626586595375381444937283989912881025182374101975214941700080822512821958182342975522167089903560656863300505052409366068964720330005130915031818888379055262063527152091303205716264127126510875212911179237100024773318575821880580551985532014339686052264016340914317416407375142849121253188951627244294399420165038300686639179274989854382650483145673837307693774249307823200710396043619297839191367719222551104502112051933452987778469864860443890172282289863207734070860616163686366101660032976609882279105699348090027466491417203187460922887035446870829839213390157546385303939780320603404941891537953682172384393234393901981748729433342702016073375323652652103891665583221292748756637001540641665948202312616959962920048574630233746570973098563550967852647570255856733222976846267053957038508906612573388495093441634021371127848440467418415016870714646173720319609931539886699785019609590068861897307291630262792622054673058692494253199428171706626470927613484614858607059606005982405842282449634510305779265701016390201586911511985973234001551859648739327787560356592317839630921829853213789720332671121056950888741814887649324583839845117973466144346203418623550327665768060453758965205117935709944747319596345553426876615678138434777697080643359935555727171890598056100819247118918853444351591469832290807907448046186012949050358175967642969803871955584801290880578150821045252155871115231477533215163943097024996728805729295974570674447347356069119631090963331280266515206566953181677155260638449471504528140522709386931485308462324017284711255283255005355207654542394421803240414200886118115120243079617078402796114570345875966719160103582982065741603962713365245844516219817469287910206132505012767525682908839749970179150330563671423548573099455992225795377111804246474630633460506870056544156666030187564969208772677332191264090645612082605387671954243965192798874651728066941668591392990937658804089897760086980769355103593902226385027116466824497159519198319239041759031056561135315648179124679224886878852432414108078725446121673930114791222767229202605877537678503385193961269501058845423009131699331424009422278955970822108681177343672273586490699758141436312138777429262887541297180812094535066204989082977799252390803957444688345101225769026876418531113897503196302493976950073478144950020031910620484434649377233982101985824554743441945270794010345062074682421770262761495363606447979813662519158163165219737177875157811333779475007522166816259771797539297952086838216282497850081777034866320734119391006015239172914788969932205650445291435647003855051162756476924627064062303991516177729157577930656646287440992385964938239936758764314621165271704337161871677809337979814028301382037520194276943447470037974408850700002452068120918104145610944101852249125573680862898793419667467391874199121795948557880388088770913516110990207718970550582451892000789900991142668943560731456854690746065981312923648812572652533538662413728127636836413032727457553635321846466271690686134497783940147118225372334180898932230710979980861612445318540301516693147529279534938093969930305150079223282996002494038637721781911103219655881908188312950609210461487615504120401404575295070357938614812274783006583276757339254498762807102412550509761626744553470185676735548662986999454386420352548421013585425204073691548562497733280761902551194278152016272509726708814074137945729263724597639087573305679975444362296425786940756149073125567050765641798354429695426533764628117720066265884763040061714518227570723768668484242280326287534948559408909237031429769062764936963686448265800139812865162620446449290627549758456204178823686188850026450563830714287206534812990070981413323379743805093821942040860246533081651853004708815404821035437333664056653433777195694113544872741385953458934327558660953413024693815204842921193145211159922489692836734113380823679543231138487568570756706067573938804010166693841529374630585930456019673837336611824647888745104586600603494437828685186332624100534432594452453015479909457384267817359338594442980655450545206985358651211962278464441415615964676911358324017177823169468543378082836927347995820958315028998791343837548411680235999516049251343658073353128507608066866931242912400323687031196167516051113513839721928054016925774758158626006084441956962313918746987149249201962699549854833375814791677840887220062110117843501424645178415189307826134494278863112342013544442512046717416361244716490736484814096993732513857422604459647897584654375230102972932919560320767618886591170223919202835512154782825898705363198064703237745049576775584999716148005840571196375724556011101747265392102926561174926940337797784572965719236342690510544038740671526569126272984174231030263972926594006789185162511580039823438387360088899173204334523108919937549273432385705316296293365940118484432426718748885917508533406201711427474300484586225499187518679062673384631526223488263886896731805380931276302556619148526908076049887210712179509986894073972186901302679748366597174736618923627291766349376176830605988226089941954268134397363398463784781401369244091376249345869573550508893033407223619429622340886640954829793158392323198539415729827377044344305272353671770234314041050238349715157280316594915636269390126483814378288341843865874899145850794854277103113825929987046866760514705343001438876245422104321624882975188679216412680761702044042100320419619646482922330416661739600113727486583385209557998769974186019266494167737103517048078214092733537121638543742457194560149342141052469624231818328190811960130976771887510286163783060772849815751197639685100331151932126296274205678939328473844186955424880956936831658036688101682728206216019041417226211855389367121217725697158184148590857276029393856736459588113542570028799070145239412629000109716754534524528124198728105490661094064304442664473749104259728892022648690752864514798370807697452020261935184726067180916699125228997612357882496027277396383053759350887982358683102161315232472910346005779467287824975642893894443655044256320651367572312294515595029469404518275215392251976180107530251590227947241113251418740107573420188952983561874402839720363104547703221146812107913676789278856237524136984024982775174599254739126280726867484145024809312445131900577682696682299546612517122887058107156392253510479590925312485655624250011605826077778149283651473596309932047675363629300784698128356131177535612401620124376866350483635287131191444606953793786217820249860394419324971143472347307109313126190954526593268748226996678449050234685223049856086997197292817360999460635265178774196787518702106935623154187639397379792908924287373978047925297351440817163215286109349976832275976987400904256885395073663706428540244533470603847883479868190280521793156254283515359133643983859935224682853975181725672802394364803413706623343582507878942469556695284118777988890599687162456840267096365885969580962893749070598246601057168879057292210700805776990180385623381062681102709414648086491667431271394885553922544887078530985775617580640026338929282954840920630098512088631969390572601466081962342935572242266818218124140480960768603336673033967083994131599585476335482047904072640894643789628803272474299153072746126293802513362929166147095142934850477300639278169466908637269207300847140429178873303765521023117220858311110999391098504111644712827020745901027194093746191897120551808935491635454874848931813366038633431620981133777926337267619379711303171030414123317745185196569958350803750051017363602089383733920555090883979765810985626727069640041280678006272739756374653692495728328378934647247881428323239803726191772208539036976650774281732334322090236521852840363299045345437263914668789826633389543539407182708610622748185833753182885336869784736677909224381639960430228833062129234133046910174684538001648386292055119815929674346829087080194482296825887035576672714829317562309348384404532193676927688977975775679469630830249532828550982708283827198538206157134498632757068310955364248939673893008697091235343874466761483424304277363751758424120694523213598275601327213854952527824818167300300662605014288411194741580537627563261844784998085245404733860840239811066633197836796449359061594675647165880893138136304205432742321715594084705692334115456961390663814621786104449365653662586108900297507697704498182357687621592099610928035105473478385320069298160889464762207588178711668282727433131427093758891800896015558029731121583705739011418164655116749479062646043439139688384176338453162376285862019843329738273411379020464438066733206216961187352277715210101072985658864031684901632757436780874199366279897096997295560774835034727495874024731841758687975928445541094672240343117403421334902339434863952003027988890684839305986302901690836599590106358283660052293447889908642676672290071289611108037649884471008377931538352499995836234532708770995114434015564416852704987495838284226903789117553310124330912622603114930544849648030365908015307461722939832398322401214970869812920966856953848499961519825165383787527977989223196503585643839691845114201139108781669058391187729044982714728553259345375308705350941265277754430983984016331042891874332914971155406570528876796445721706198700102310377079241333440543939943480173899322201915245146640116783036656121512565846703831484160886493613060966127238068759866710646442498775966212810397054182442366174170472215076891158415678978293011344265950069786757002103746746480275282977842184195160290028524777320512860973190342277562380136202601883905003383462649728813463754536713160594035916360753944633578102496145917399129994953030930641151505583929859009359709887096793083700110801969303030994336360381929968402995792814184555566900131430583360662056714883434526958921352925175383273171486076412856023259228631713053757711078897971590554121581847390236347456776985190711081960501160140768861865671705426741767877910612310793940200670586659450291144134873328935954780320640663686584771128149722680878359755986571658202662910903270423181087135403048020562846943592744312731221960182939779077357833678494105421034003675930947777688806115065809244489177172441583938403022854420327079244032750995258258757443960137969010880113512262484231747039751069333594254299819379744229008250886464150511428978034591125399286520838819744650533280201323002616038823124212349348400805347513407294362618379590490966262017002595545376749221211046258142919780781893065746564227356764850306211918395900035705420324014820401014717865134399554984238053250344262209696350442973450243937174824930559122691629969620400567492142738986844155738805310160729031065368199097554926095849202414015680117354801363023148474727898229920908754222742064223770254686188148582634515295037675498412627309285172463336001711543269653079996670178463543767084395124135686385226695923875458699962724750404363562942241602570094754641865483890117683199343223983781068676087547978376776661013686636452904143491169554722204971565998099271565972841786284175658435079076528200864735106392458689155728561669994570029457012163977452453013787414089323176266781136757922717472301967661047655929761164479267873945333002718725510833209237565735339228150793144876694509008934440545376366533175530733554967028915403349164366561716033169850156675320965967625400483466702310643887760168350986456422847005621356264325178750506227057230804822480406645300466504067439227672107067417716721451011033276409061646390184203999914670928051507192838078851155785928218419452242602593571473165902757585682018513402526603766541002963488970543916838392547063972739018842272707849275699213085446469605923601825595664245411888831825392916524742390958382715579010646861680700996831940233854044902391024549303746242667435096184483182938382702367368708279559886421886849922212591932775071716069931950900230625495068954261684408508989993416205704568692596453878454984523090711010160631090161640044344355695903545772567389565212035093655157621262851449759881339003131413062831222650112842728192443086170088638308397386584575821928332637145876609525290369878779556877009626100770923019800571277760251290091702950287576173227534017983097758439101328425922150464579314894680363512309928678807642950803013131379183617209647758374451991019524939160160080935954940823361774355567774223744689432903121921274478841330167233495034399366378870573049127220598422095707463559920347520689276663708251094228428997465737738508078661210939374999406956866891477813537738238370332356102258087748682072242490409645265096953750586548954951073203479881981472831555011457545541458713200488965472645709670436214203381010357661025860135031880211638169430215523494797886078808915231277732724966727042845424406141350507470597509756251855961518326687878328587264423674046473317970751735598552127889229213003272970249566033090868381343997941238052013050935091722296443937042944163420923510036010925071485318087916529065939153407907565837792917852859656301827255213162159344362226827659872810894167487202298028325443439290288414407712398174622480421686477270470237356056966769680330716812171370126640882684044153409407154185578178814179947415526732629183627414053990365896438620438661372208737854010691296114149412213038443774947069660291985765093152641246953610171254935809350002751563591832392224445474474504891977413326730069068798729461462947854632793716742396313646479840867789735710735772116612785287190837320993997678745413662909205701185233438527806382913396586949696538487366775148290725728379230494051031366849652399524581506316811024502122814804302424534695208193362871668818202962214589385815302223445009512844775504651321732753111021420986820783630036070477381615597940150071285632208018932359219018546374458271438608105447492172564216537172983768552284607652882008611049237952361347412415874691527161706013140812511913350549842611658543597415075269938398473516910956602928927087828640511987021429538203471752071596541126908772251391252764670479921174195791305836060090535621264724654728097293363228770022858383752362118399613560960906979598973887143869120751555689699094708076679502600200736720216408341994503275017877952032643944070482868071015752599415545939342320339127882734677604378982039618118691784818498457335757303698024142950306563821309686863691532631889040149729939765985153002189124905906063439844045863382827220063113745358100169814269211623198929115118427998730145028309720188416178202178724653307704482782988969697717399490318483806861129979777826227218135773120726801693983875262174621443461199184036512166148063379170798951404632541677984746917081402515011295021633007224619106640912736506139297098791165341777928307600510866197264134570115914680408826702389221771121992649378253183917003227570427968158308300360237252977076420903719768148523950477179905739944480955235592039377331001894848756669670429118551440540878742507554425872719061915264034151726396645381975834701908133195472045831647094856395656378380786760976686627491265683597303457890312613595983603729912828455343557351279250955887553227793009758882331957501221094405408016311222167365862311378059602228760888390793917543035026915561382108252645997421663185723826887549644236643048162550833908233720563423654427089669214742708002980063626521593477129474963370491239619178788655215011549326541185337222543237455400281597783403708720122534103712626408792440458794737728419242244499884134764172593922934875852711396666197583524303373307197776927557809560435480564005409241542237990165449756680145151033571910333661237728429379900881546932673078454544322916771804177969136061546672569731069265038775322313787503193902886183890058948447626131887644014952959321952648169043684529596490525182744310814035564035137319500835815530892323511543301832050600624756351869424172348843627084170743994978306293367075122188397640687358038980173901601939345171113271852390646528732049153493035071715433131436226302862110221478336778365097401343757302734943819076354253146076628632951472433071659405798349344781317681597152475004667245802449006901984131000721159725084177817357124863559839216180439797597186710984725687716364551176173018123173214437915964472806206939125860481984289792200028881336414256702557019524814331135713216219700034736872572658493851570646905535381959497703927085838175469833576814629379856397674015579521312057081119164614505714142475661540528762588377813354011503659591126044894312845868054075885846299486382947448601988653954956437722848224679267458330447515120978573144525379529812836183479528657294232800787870838823282355264496176893624309165866272981905418866623546137728122390558352462426247254149918643458857137035270344908087227465525072414776044787002511492688059750286359798117244114313180182855391864004741036134348924848555845059024894477150601825638626315176190456082891852476948050506041823564213007350026381157887959049313163819528288611281951178982301459975882809353966423653713711282829792914403262479176042447520864971806412017499383512364565883830352745730097346247393304661714180176303368550821003992907359843463040508467318175708738251412100922475703747423332125394966494179684969080148700961192981712920829071246775401537353548259331686993507926533131647618779318752023271787734041028855068289845308716834184489158794896711670183693501325236654455123246067156864787110230532062520540894457957560122480832036878921886733107909036856725315947790779022775547123577343956542824069880725456001675389075506646833344083672658819251655880760961454789506097964847377808307695716763552143474616740466985006829059433720200259886218501667832602870668614839918717364739881154293056431718987832621601915058222245984206313159655502182734755211174934633787374281566615542249647866389188830072863646565284143844584022113800657631281795089393309593522363257305658150579040186438958561838479646738438359680192188589502701329404875857527815878146585012821799806682483036455727650862513983572887366420863084076547529560218291246470681238098530990885464685420055964666627253285280809569694809113176584319903853228536557805144988530231932768541914944162879587282349339536259179058947682349131011414511922192734571409189837243816723734122753933929226568196406771505527135580167550435594910364395004525961924682463094920534106748091818131524153530253265165249386288076171404278156474249004431212369444787032041479166786358826435935509900652977522209968956999243992660062612305204834661712337800520558541314355965357091528826243334785820628855616331942444119408131735962950311784777678385040001933791239893091771163138551162492298691252161725777705110445514144190627608186262484086080395636696802296119582497099394568161211034986678977050751656764882629827331228127573080411357150834653451749724797572553769008156514668182491957636756235148867059607225343901897890056110793133578099506306350577931883624739043973080524920151071595783240822116254468099676671079100694461354880222617822524483238843350531755125399071515557204550757695537574908444316518542018688069471212170258716770126386804734152891581599649638105805802876243358499117093113493857625574782899929142297323328651183151237503275325298983803950512319656547956813886598839973578323124004773102721663419668714359532179568432160940724717650379196699630026510374846584794246680611253704007592989295107057965960029510977339616956068115057710901313544127772006765316524600493713194566641349416314429650701140947782465609359781354521510642197809403935470335355329066182150229460532042926224835730064009287429235127439054162580957619607153748189664450663528610037635833080786047656224538911927432807815305094748164775314106259035174772517045514975887525349851110193380099406201800203291137344766488522392075984519302463137753453404325772277523231218739250828571638574477815876112163469042328305307275931135423065274338458336604367605582875963598424389205408906461412924487521231234606631337301567408813561806100619273444354297745768241034806896629315606883749101274278957131839026442002015191067273409211126571308407309081291986907942128650518923719854277133236929669349370901934600803345756604448400806445131013494004512769285375933468791041886226324901734883847535502707368939718052803214897813932749301383036602357504166538145890686675148215860710419504601134585435219439743293345901044725575704585313949684868405140039748249864353110008338413623658993208410401690462237394488593407423132384713191698777594978833180847337714626768977120874339825862535168294521819558778729918343954878125983598286829267537930882629107966574531756745785697859889974799317039939459745772194918885019080031157372685223896982251112131345918008572243850969196651698020655796953470277001127408232188535726665779030954544423552989168427012225911064944086467679875876009226536790434130678673879012022531010321621233105540545236693085716838871793022657990869009755646984006562401891525218840423146864672626209932804079586385113703149511244658828201862371351803317652603576538639031763664859474197109819204834771432753792369683484405952808581835460722852205630412343655535962478475418969751147003763220272601803923295154035856509159613839088207465909904663182999144455136419318100240132326797205833732531747640298450077609486444633898617168937288986763222903537457585038198869727928232567936316303469214398836533476008203401115265263315020437595591485254477179587481340251896045233642865139149132135455641780104800727418873527308157216662215958485761744554545318040479448848996028149804000276076221668169872807541356196350571674007498844185651441362370694359684497893373003024465862816689056794153131026972150260954262242519469784968964751764981490920225654432705781980304988524230750713071604441011506188652583065760310186223741120054390939438384191083202878913686490165364996282301696747532461124750648489629431992791841823774439099714668429902661284317179518529590438965807574638169790874434423120615345187134567501901287573036194243071317287745923819853782346431778590528662951967637209631614067270211808324418755745405327845119699465047708247038625870791220972791770341626501995296746754444252166506143957347564335419107215654133534197483925469180179727327793267735122000829405249604309307464492280038796005971420167516564062066633600202434388877741948271814642658139121071833361423951490764272500620177616970290095254009991909219729450893974584803254812555429139958025956179619633530567700692069253919522258253452898650276869453499015219846486262934958331749283525243046006715990780899886756265868166549972573850551397513418622128262916902852153943884513982281798149481429374166565371396335185584414624651462311793060669325453608590498439188188473895023184164435138872876293553814729077753488843598445126185673980137657835667707779591367565014271549480569295915315055156813326753499014547130599132872108303303721331070119238292660492742495925273344764655665267417815403105293770714455846468170015592323015997748862836601002293420713269336167626212164164950181944503167923314303783861706649016248754393959770938970614336528731289308514813541841154172711026311540021558576167064198707002385997521038754700246892181632354603520742008492759942120898318230828196439438003418490328932443870592051086789102101325230891975585404837470218014300966851917246364425556761304567690263867037137174344728715384170297970585442951646383749240529681785198833629234111994924440520779481779855580258641475334980510939849802879858697799715309431881294356505520486059459404438702006174993098423067560700705687753237842394218203175620052211577177551967200575975249130308304305145047021677622594102875789349010574462552308388434359394618105742286404714790767282546806944355892799198713731581621367985410178870424313136895885540028021568921670695897389045419145416399188632302770589391570927439088226459996425018172196016755516316412968921469949381119642103886808954495125460814431954865923392324233210483880438392180372620194511220646978364429006232588052244216608495035206641278561075913039102267661200796817519727502713759641418073651823354678340903328725566736799218534824248406374250921640842915447279834212183108223156817730704130527598661581075927609835626930508214272645110027818479785016471506108329437026309877523853015164212631067587421700163717166154953132675176894154927608738159780960466620429995383354760275022565383262734883787207391851059165637956717557714561414745399657841232134616181068216339711255797937969260204943795019789315416629558316305537598677332331801339050765625439423176997634621133221539392314787032914597692616393666990730181747383676092375765006093072995742161825503723652779435538626713826928880185954083362031512213057867612530587828843882376957766634306722494869079464935569238984686027896446002993356340968116714972152994630876293247200086090437190248552170598894694920620116806216837888616229277700571193614240768418365560625859778433710873748322476662761967639058874124290638987186728154555283056650815650189326573284368770449248586678373361177248141884090790803080344185348437868219956890327135065657042904541825187566138123302618149090670991090569306937649601283607231540186981802769506607817759944585403203055692302469834719982638549300235309238458586518455261083781038243255847187191470222227490966197425779165805746364236144185881641139508501221213402669324247864940693625393184621870332673131709821265302938827790826987850296296775787542439026208113827088906366687349550861120220553746048306466135606376755380526342814889626336872544501756492981285580101294198184984884026768264278647392482911867164502867865221061215968083906484585536141572693422783103363538468388289046011696865017608690377562514223298378275241335542270823071144119988532052996723583396716161476021289063170997203027566272727559695052376675413849504569185456805544726691445267531792640743212188959207452883437371666030989556374525637387675537704822504903276278738802284936654704259560347986484817859310752601232470842315434116581181190703149330005703193418098540428728523171896332048401229594819273398875409069440357905128128625007228681121599931998339775863335829340130601131385284494727730515037074983792586353443466547615646697768245378943493162520569305312919030862081561867933858872152194526543295188043532476006722900026133287608550541958783574156447755647449299375928927971118507620779280300231825657335946383912534259353940668793627159888602391016583969355091202935583642765385877380596147614301513007293338311856546764543220649590551267650903239904570580652644645806190561132160267787645288344503780758836687293865547012760005094632044144234977161521307011204406104379967441003873525594133178321833093726474634967265501911156011999007764207327953582229909538472422431371641602416482950826263879251408320560378492163617070271757975583914679438481118627252977318567974691320743822760938927785230479980725986916292274955024931802880639830919684705174454363667535920168411864009272949863199674571218812827848195139748959985116603559195343907741256698087895942019669726821799928814769889707079277545303516948470933017662089313237964353067596725663673777607158143112191313253376173404677631056418746335164766593762831415729546898572189063253264370963624697737644690281132412536192074696981021723446037426414453484990475721047293946420193492593340414877761007337119744796530307348334872837451031039266347192450390201264758096162696125204664675697685062954597330692769233372192228541682754361289207623797051562995582122311583462212650371622553765591912854896734818318435271602922314640869295479109055402848462343600632382594922800192273894783028974339785992931938760043453018437690547153006286800827053816243984128313207512975676595238360447052253894158974994665240704454303704862519333817198359307642918571420452829719017273857357015898231822933736240570977962303121495793797415000615615422244032208777438921797762458733081752451118875850406709340515445114361019934325252614724563326354248782065981254988259523082442226479005219278070375191361624171155517278565225918494791240077004483958639098171910497909325384052921647715929367343100057207227378677217244901948178032803532068153301525437592928477123152579675512714634718237584237689718227548169635970351048516176340085859180574305273023478684849716928611784665856982956100472261934435829984357726659191750887902788129646628932771000823932791878236730721724390398328917958789811868270450106278865262883228141698499943546529034527242357121624282853544385676835545007426598130229640101812922698531856157566420031494392719430925196483287635815656277788723938844616316557703193940741289904752945610774099278171124319453688287939718918291559976126785863279911644777239827460759639182163350537683841229209573578306025279814193390967142144810527735116076106881140615855217863532786561486028844192851845776720133966752554669711074136812230269205490122524697806185123816860431546455773710827421461010142303283843170638763065668651772647847495948710625299009604783364990381499330820203134118254294957177555944302505794681976444756641428259087062032695583098897828029316414424846266128367542439554861322795329590715336234040324072734255717212984379285062001493268784487166113459600641320964477702756920637851119664025983653737555997710661508559009899708704393405110895725688921917177130107630033278293092458438406118858597767861592819439687568094381811622579260832852494528075490159723277727932464518236342050193994859638310142636219569278001220503485743631731924866995406935676450253669763887201879374169642044284379233583249823664117964733052769695423234449906413003561454171539157413416745924853050205507461699542211950107971902493632618007653925626495788964140419845004412790900153097752205194594646552309147239185567951281061086676936534054364497667150436620492281821799011564974923433900567012562853100100081097397285501856737521312588824357780767545018363066132181070520274455240672296519819960202318719939933952334899621107721845585654984147545765028611218964651205164272294155500582364207279683718110047558535098565690474079273496617151528269272142070005792957724094824333783012676109323938922965049027594613087200119620098675619855997816427647550536676753282041647194379992257136492336237587013227105341088683838370858924109603868619297443311316161707229130729096591873074570256200082434452069825507110305709351377718343223766687240045779982568066418204235179523776037648360165146373181531742995738172587797579992278991780853553289669701308335836494059122460969116556998344207256794431673427284393559891545631661629389253658081424923482565832954686663333885822173725639094316297664891730337043708570312565470289149836047604136491541583332411422899120571894469227204627652536807622725223397170693807289068073893105265385253892797504177533919334442471781864371602450834791824876122715242944903067154728766000346086980001111326660912953631554438098733826615637204338326208755306751322409628622604993373657129972912972013175844008466133621292329810341546159422801139791217706918095559910556106590208219962595429078340324639842813640850791984279295413401736724268894533406770469117362101756926277405667849448549872853834538883717882385639190290738596110789467510362322003444155860857226464935547511099476079813797588326405160009669166954801982370281443500257996474297442431012806234152002186377763313875840417729525719744653242028880173293415989484357609266479668840591123757884025194662133522806421410121525434134169900319940939413426646988030706797348053660416326724676190254969716246460205828898961677395166257623938204034837721225044097755684710807451184591442441187177068346012067201079237032856137852316047534135419243497782434332385444160032370996223545650506374448714428201858841441328824453051027150625545686957320927412727601603553406829822899637730241466125414659645533702999568426758675075767266235451216045709828088783557113670465301642149952492743491952211789705078882859873340317076284018489638791301536277173516107147990814709980644399693107673732263575843943953821481679710415540879417381042836802076544269916366236050899239925388893938816645151666645058008208144385759851496436685147048489845969452787870878745718435919647308568793986995718604744396477048517357489926276587529267001352111697992878496465596756654193983881360040560954045132694731797422766790912603875772786363509227312165967436538531174644871720542895440097002678279977070499340204043856953110418568283740926714242200324897615990945368795042748655346853040796283106025326065961767048217929435481966062451083439249991757973534889341506134535802450248419888641561571691253576161272649828612507435679052095645273110652544895149040994039031632630462965746078245952623664709030965528192219293306024734630747421961853363385995655972289247238237315617406876640118608530125707633910643589856854942087436157930923622711586647790117368190919966149781168235290701523887073117487796534943833603392838650599809970477440009733717960690008185118859547165493789011106318103787200761242152178878666498883529712003204969942830218438452393917648455906270595373407731980515502723300999409280957304383248290519106479135626430980527946192456848516895206193476801052455540884686635626766622958629772202499748631799665590124448123110422676170140023636198583545655958609435191005734234252416309072332891234201844955420911605227159517272369126527174811062971730751424520756754444026724578299886262711039086463223856149189236555327884541087478862653213638899010082913247460671182174335526771201452999234969841900026431863690239285825227809136580528982412832765396001240775313513825684341244210234302328818594173941880218129423587426712479803677525790114540738390802595915334310360246817746000908717595117271081370108091564232582455786297546170140302820306432246052883826787729377381508925311751713527565591970322683077154198737824122889380011523866745777663674523335428655069862173070796637830362427629203578776027283583309260415693906363288322117672052701665896212930007697564069587131425919794407320397020220173000309543680952255575979823540178668510320280038951296541715880215058207808719206575493883657998799365443337656803672620825717166362008137322736494324747819707752069554174302345194653894008537716335580716778546384069645217501864920303415047223118748552310251841460044919641851413226039774411596982204896307110388113414406690827317140154899620493900834695665515639543259961518645673388066895209405917684430938367791050314973022871541664908288467015051915999814024140394826549313328301851012023136310565036746715862659990758897427394077192208786808999525473415863042867163649317203628870778042712280905828134608644108783240539351916211791324097337033430856838304270741634463098020803260452307872453475908271673670599926413261292746722481981892337993858115974721900993496203239372512524728411044169143406519469920454288124087239219297605219524040459089788178283620581278633878161634542739369309804329510774721656667020338159733481200817510054000334401447918405694404615810116396042180777533939522739757744795475865649912143289890003335844431062403204994382278372188172354003865206468765471638322718442999875845526313112389661220060390891009494294244283295529411464616360743338624211796951170567037590111066010733372421551420368071875504185602298514758315046838816241090388224021993662553914211784696219569404079782301568428908713768593963393383995265309001213259622134712394313430065880743630839011115346822646531831070968914651232386109981653008907276261471071866770331027253659740633744003321365482954733922205974853454665652159491819213225564478100518737082431060238559039423674839556139436376780014774860371676306090132758486820037835185870547754772965077465437180166483208545064920871989139775660347663502053165158806149456582518136615671380055022152653355262120818743307168846763104433783100018891550347902607262873281368405469814503587014367133570073319666562844207715740673813760038969786534021370263504924453554436867915763241035005900814959994945319531137222950827830875600271833932071641364703099464744318448784499832536277012239646575530527390739268659547366707106444973183093779457160739103566035097256205000317925424954764704146357874725925476628904821682434134449722048058949654591422319879354564433827010467684018573191925873049856247211648004643993293333884198450276668949223382824787848163332010222677574819785919794202748476162258704065480512982481583357964726636859583791804515973447694179029239787610280530396108067572838330841349781676849319942944103383160700733804491722170068329988368870025343347270815417397806101822794639253596845007156408180701906258440495652853865145266894227841173839147350192134825355428889974994264781113592475803714329579189537654181224901413179073123114489113827771299620659414590588286271638706259477837369035340011308365668895936937633761546137641992656924140944681870947450910702779204717178219838614525312605166473068330784825480711990453226374324096381656249447116875404986974185804067730578372624333134434354548959321026546370669151370896347353288413983420334623207821729386598680649894736803043944729777623994058547407699844422102948288335067597297890183651806811442787547360837890280766564571082302594196526661118574496825934797930881492160025631781973171458263995271519050248424182223448042863359934174496117107394474195115242870967460863782480341951839348839201363947034495166230822855573559200899869132756104154574156117255319203457728205524536825364704452061697481056233380279499199057854326930719114040072129003443995054726557157842562486141759279969309221224885367400996362909951238184080714763857229394261386532879307125780359426876506334906463511160917785194163210242594432128667708918186940869839049709559772106565475441435857389711373262363648033084595634904337878023531675580969590773530016150654980715279233421136794282105804500656047624916742911819385286679990697178370650303895677339757365676310708519373277027988789984972227014515781327153816542083283111937891477432245086816282928024324569436469970749275134350731807586540223389722950770891900824068013143857248909032594743868603891649986722663797836396296781267460028980402266141567734370146004338700081687340861783566452581463002287465007530211649340672842538702390535930138972227173282077225813484567828138342568881098619674780647307121321865174883573853468336405346588397919651238019939354104081720183717698643214886640208682071192595135449310336479387110745813157149522908647251410298009160762380544788118442494074153469894230696897742667565334237781452004366011226681276927907119733615603567056380835700761623007414863507641773548736078441006781121830281787946001578459471326771133069541028208892766220920849250078545602352974516199247001492476452277371557883380207261482484996383266701459119049735962177716221790789302442014804018442212267429271477384778879696543303939120437778934790590478002225760957182112798895885768881098855935803831758426781747713631230211930920933149151607039303813250031194603582947419390457010765318522139062482156990001065921451726480585607741648952724762176817542145549961491768521236200551292798895967839950343550422722444789797157466839933655244495326421477060813987658718100603142117638569303789700838644155569350894601323151242220339298124845094411440074744020595150906909463111759395414828594167937719987691649721608334355961434820752732239345713608972355919963832342122467865869982809275862292367436168793835858184566112778576427714803762356672409290294517598258962873706259464111713767034216828288836816426721837907926014089290553782407377311586882402499869596289183540368826645153149835352153410646582972636751655221255810009763417716562780227330040164253090347829249099281087070613579897636565250619665107988642367684622299560113426144304668098119995863633344962157782741359524636722379336799632509479849921347096332160235220741644605157604392888813979935330513404284329557809056626818412328387222799034064557753374279965140908445393683471174790420203630943097267330811099117488696707996793279170831644268747976352865186494239089924488899979929205244910507932609364526349901213933874866460493281835188932164036369056669421623633539577861283759403402064169966195320504870915766814344781336627684888189769673355646292494841605298643063196315093519498345266500695722822985677666911484653353002053247624240999220444732689171501428983976643168785489646136958801861616462837834254386477925397963710912178441748114173471321808933559046818119050971914620679557720196390542171792150613940827189739321357989132702611439618113592587496607927302470819600742977986035395954854749163838410928780886071315654612194013299097010727334937232417935238129524584324509555967934778420361858484423920913157394374669345483605347982021860499322056223188658469710428182905870202345273669638813742548599257493024232623977809526629864118372536115986631140519314398961377824148736991338045462345757040481029011049310168455186282974668051062867801353982635035919975898635511098079323957324676925352321656130649499081406535477253952048993177691344296040253559395672970207014707513956893158719759521265130614773703876761728569404815995400995203337641157030371017012624139433739793678392928060668081705706829038742630080863789294624357256838903601710238111949367641957116809837628942248282563475250893347218825529105125679289285237591971647779290112186566859593277185409904047587537610659707128494152884898320202012029214691713050374292732962164181947033267360587368395390100743643127843073713105475427458710337185517021482960305935400457840054313426518515505078423965388777047697935635017491330658926491750784007491056256157583153795232316231641308086706706386486048903380286676364758346129397999154141251303260422000347926056099554355131766828034996286431501111720140234808462751374200852095293306870638753788929187832217972379931892667954144030526961397283596947362429540997711887310859428148057754957733029819391368346885307263048116231327147593631729171624136498053482127203497928604919664818576348165856646153490129275904281417032984707865988841210231189607306007731170665127771524155444211288258841310712881785891337269330236400895804547095545508028012373032954872163118605459646127095245788743047428543795197747142791540280553334553771446353453126570529117332859335769189290981203013606812518764795976777655949664567450761728304542605352976677103699032701490949209173704209468703358875341468791299848401219778156740313622483349149615683613758688917700088087044081425853235548968454148917394744381279666088556975376534106831856649428335091940576265321339560608850823966232829587687313254306898788708546513919684991441518145738855814814770931683088724177561685503691776738762264510728631984977017406686237843901825026984874694217313226995159452774004275190757269116349092487717471535873479469850140277454208063006167686430548994138856808568443567910646821304360865071751226157129557723670015312318557756650894115729442385759981160679857660136668714880234011210972759515080615962343862898422389996175102318538728163214408529941719528453760092403274170088740022840779093375862205015253595489696975863068110315202561955650615705065123665560129668239796498507678299418960641374198459930798244134447774931635401229400584882999831963217599084231268491978226744753401260057750736835849544747627471384504359291835126210287591060045600507340087534128123547206362008610949832930356085135188785082707724090429556376420392622135266755600526556175630548700862261845038878610006017142916983388152620175482965419250633721543741299671717206521488622164894565349959557032319751111187903137236343699112046393537392570191788147888013382534080162415906486469712720826647091909287892230161892315261270993789915003734424563446451394724334961716572750827995064239109957455636181371288480233682726831609416178445902004475021508800874417562905837465041008360990976940850953275765750980558218306868435770962820953755037400544954285567307796083983808204478579993506136747515042846423350533638663987707662246313503946958140990028072372438108371916882091883384449959549986179131531954412750908438922810913096774741759582753892208473256454858984515777934526187148186949401882227659150930403270590065602055998646180245958458569424968979431753397279948706376433628701294687532625592377239218827169145237721179488558833404552068594097572916326501372367596657485044672303982957791238887897328048725840680520867557771339120126326404199883920919238279555631806835807845713115431558447357705413585892216561553900232525664979066980929101715873669312707268344358031598394447590350409414931780630656910342241504912251983890264630027791910035910812414714641512720583879740196755076666116206824614639439980224494821565875701684474927598131119871387800832685849167670273498420864867477743477371494313872998015641850331793831657200479031399984301741400002436437154717724092884256250103300167453127363542310649975361767037200069852825984531337436809506906041895548517706402734726232642561064042254041203773803108899521043067239319979096684892998559406286587514332594283033107288237580951974413728654871521479004478233669853653003560409826473129514110607321318615706274561497978633947002838387836913780030038381959919277747142653060919624847266926041540803179297295228874997546192421357073195698907577832819333329121892006213242141702140801568967526556961111226778090065740437171152553739271428923176905379323225340997188637342633144105133408420949757784267446233047975010305755531005980923940244258494121536986061149589192501836386548673986605301259182062095824796403544968654150921825733080565124452764634879500833642848071389344112914895972512829964679215730197646480763263172388131311244549950235625970948088016993045620567481275415798716817331011757939280262520434949045332354771319765998331358520109717620713047562138793846210687342546603808012719884362204811051932057652892075497653565089972315498244380814153880544212162982074982413447273130715840799279688787160875599428599333367728395597437479665333471598331089835587522847013951647021652926063793086113370498369125612950473950985712958213008765097159110597753644858748375279884099572951499511643338909106834580546775762516326702960658210004088816085598835140305183182377849685486086586981151075371985883096925960402081018687077488574613386934683058358067933251492394374174911091299146038021432097179137917995254539034369368682500311729168238848712264314813470978898525343524477214656646572932958078356830880517610779696166745869956987374530367808892298885028348106620477505568585078193304193983247769447504297985383878016515479240628065844246964152560793744042991162769700727195953149805783023028608095636760672473607669313945037369707905472258317824344169484463465618379025173645403350416862506133518116539844546472321578595767723296752480655607579932705614253385105160134746601922705715332479256457991661013323544816686328384358205612201476862030428704833129665002726067942813836333535396750734195543055649686901631502740217736828825349712794350675383545523708584587958614210791033803221660558064018804306360526539427815791915256138263974599800979084448489432864635970205792450992164619407889792837072698136741434327583906695592871246097151247576514439319930910704248836970705187641668156641108315176878458545782548057225153852925064106159601901055604878371884089518052463597777504767781780492086251715052215136789699270314969922593291183785830207903282038524981794852949421025111777640428040195371739008245430044268841260673843526946469846052558906752379033232803650848334997417386199104111082049236536553494954944822357537188748969699714500501321450194326773884043846910371341241953997816030903849770595203938736381202932005528797823761813222040294926291195702698722498581766251181144908014394524845881946570947362603047859589328415131870219618142339756469928525176102168719177152944345053995953598694738069729457092970048606460384355995759273671416464548758085526929884043929309410652223201732211673661597980586812609593810836529459699831492186244070976078796324831276318746875665319536188446753837703391857445298702832225415209121819954846514864393832519904290921267873033572071976328621513567663114662313490205567668952702126416645415743599850024024739726744987726242593110754204963556843544233567071519708456107012491751208559002065435386037250501542761440673266297261144017918771942789031201506627883555838059380827767055000072095155443276764094883368197690405143183646195167036637082060230983059076984593190463806603406684021735300600283440011340704649188533023216344867338808971586341361389381278495123683225923065867782732413347633726964000879138148777191452625126180175907093197042977762554062143849083716684769235756267182675883026510282160672450050395891086823869608489333869531653754649633018065709074769359776359723803341818975279158260566637093218846662193740295935251621238439220101512723695986019118517193268054156199492506432744246012179943837154747295239278081344433199630763986930300175051762957702005571251928116970759661440070522267457955550835445727273164967866499163949703764510756671080522548290614697030875985221293620873186109999298524700603957772241248340461876620441280330564411259766676310477781903528784787199057057936034166448041276999814955179000374385419869519711002258150982346802115949734275427054596441956860422123549446688831385892438720094525122439685096163538894638707654469174266893801340372713230829275496513946691672828119220298469945448436496474973206822025798358573299259941903565361169917322287256266568988110439307192149810652449700400464026658688220523763678100080958181840938314560979383643728244160282920821154532354565119767231747061232661785555199811666705880327657412396671331194334826906252471815112849787810586468670528911338265993838984947861505071537851083424277486238249922487572762588922576082974811355131104683765212938795713353853596461774332114776756518659559740244007015739947913365391394354422205257541331872426532477710393796439437562729098314340719770271825246190228814205183151860162364243656061285082657757130585236473882440753987677091838441176543750847897003245699493586316480792162417500242569126368097458645802307338842388095818706500594452666866477699797530278360703159976789468361930679358356627344886955399185578770694623143516688224066203395254111572939198739527241288634018324136990546277202307297835698708798480697727689574583534705101195278940901786682262097370879815838764672934729534222385995450533555479433499865460511076755540702650867224489799441533785290107242920327558748620521880854893081000603474941993509791300465287779644024847953583131281994314829678250178021071978577429862942668837608445541800750208228014197298259349677222465420305626973746611992351850887682109433677381869679986025822469650931241693063456613190166886076533266336842293367818893331665579201281130721681618110687088259016950284572975385101612327738153506463674060140839737924217546745040474467230168881890915860612426462163563914788714217839675456684683311410579061432321685386878825648868883413005111706357503815369636250912031673757771103798841989653414905131712076019872001010322462080711841362789917142529161853235315838136369969410544519146852822893618327419473398143225925608084397390459564794405235663484657714891367358437956301764990695355905065653777853644008853663653467584875582999179167871923274600574553560991035686022052610780784978154144048741750924597182206502890096342322427606795275019503001506121382266456432803628321027375666432288950478056815247783680399573230088352156053687311866929913494358494351738958154565389217147466676847490445470508313044852555835731827902470053151597299755840065026124535826329633785006943193850796578143876500651376572141222204477117475397874995596808501846559206918632445905962224116855903562929624652004057733692578787593577446426184152844522912468841126375099750075464664472875012105690807219424473782667697834558544129734362921804488386762022643219677477188019833733178757490974979187981009149146041242150691351415888045804439104038529850163119925516546188323157027279182813362392329792402700194869858823692384937274310189360530052968469730612815615028630498951732058242527150074567113418291045556023666022304192651202107824645573081019617184262383145143705640168629178545572362054458577190245406155711347846651332175839385650033952347360020189887702969645692769337239502045528243211998074941656077954270773230924529906215269069372629706914404300105062797719864753130141233716629755473650876574883407714887904631772179307475031749627651183892073563094074192948438806232322422071775323382069600790453239760104751327673139701786944849118637081385987764314189073759506818698781119279994280824692657420185753068100218854868544913076811130567010564893303058081070532609481582434505496481568586328146229816183364928306837046852627779562403744606797185456227041135935691702231908042466291635025855716135953516353154532875314460171588786702816280310927423822167980805812255753516171239080035994342770512859412167835800701852211417794647244254826739052293651352659235084853549616336205819375758722570322181775822771282141110719969938277104922355111430039041564692412611438768621618287797997930599381472253753390388121208171356221826655404857897902589849751817172792740213705771754926621800351563515702482365090089770005842518181573797476288410209275265300867769438903779467678564899622559948190868223222595792834811948618621349607980955034050045922422736373390771275889438638052882468444128970773615958526478042909089670535544497823586770137337751710507880038540906452927439231774092023058278598445225440601192203676210980178377534697644978552823116710565678900316336756410524453786199535721305766482143248238953743287894308037340214982383384548082769493022979827703737006363910694923412524067006664280387923814295109518198246939114453148393277142621493390527384494797721475898818653884562353350775050412312346236204126376759439148842656679364711674092710389539915381703921545035795683360994961535085343571749754170147177857303523327328821334362480533241465802524340665348122653360346975053605813123032246794228261679046988231962622867375208487360524854406917726260354802299415981074910507866415400964763159895369708192895425876816318606923274504011067468952308663792289685735388187711319257858253572552237691101744132953546476419084783933807664576999381764265243888684048769044811454570411024260380919378631143974755028648595483091677980091108073476698473327356569284551024404101465762774318217996639597758005625427803718211314945350962952753898025334138031537725491864188797270727250906868339706665728603617786440815181117877661030898515071167349804619374660781571760010343080112305095278210735050980155668240418980919695771473034283155806053966742960549363507202293284913065253507729857511388902571898762828133485964072587590265389515332434100140269002740087194603421088445214855781189838546963313157148877604988918055553235252640140712837245106799543161679483080759056647292506981871304952568207065807137924444516967807898637320050835862131190862075020825893893321262584483580629348664259087939895348973030832309620691041167940035127317779992190151647106707259243756524188749072002479554058243574237740441618238804675295916493999222650766908060919129743326252423041618202985089663173721550375113258575259392058705322250909409306250730518499537695632542766267982229749947106762916718464058329881036173277503273515304371187692462642387763619812037068127117270570006230571446576411616328546726007593840450712603053462125100035826526254679019534604095581853108785920504777143542069543091603211514479178471221382582985099042460810057438825901445551421471742885467625506033925690384186239226214291331649739879555785567665476391640589678202339676624420128581044520153547435633905449164811522019630344444814940939769003204236709470090615478242272839829159756105145998271551135669441499184465325320207440726959235956412308710884979399607926437168303935532098945491181658450491789488436363291699253275044914338237816204100334844035952768341255222966653803955338884773454653657712131212209104796606611193389810917501228523367247648581157047044020417123085417672113992113236489946054568193176297225973965193847924721277637196149214856259908717741525596465429277561483092780837458607199520665994135343964407978911923484582987032145825528258162672254072377672490619845544010269435807158413040207347354207838026653648392909904310845299331352283725530284468284432282715299580374661902211080765347315694297009237031968742436341413102688911232213411330812123419477717127367436788147700518334332198575909340351898516506368588757596558259977197777799681911370382427687923848266914314474489704039035065942019145122376759947737758754747887890970541016680542950525160207446240585052649254568905209236467732682860463242616096363773789737134894017240568751483400871259462883161848964253079388181792195617867780897430712768039272453260539492616659058575620163735795221660753262537616698130398021486859898348272989106025355373969325312725067342419434552612365312996577766012611837668373251005464731173992776662859899719790917270664484458029132056959405199798610684992909053615200604431490808220874502696459797200474456866118606551877052642200180811279808292148405861549496601572796620428345054252079370447791784067466198736333873659199643278634333647513822896464201031691814588551149860388497004715129448672809756218883103090340400277135755590820255373042313300457163116567025000487766865165455174422945305144715706881335953422561411579015229241462657663376762315604019658960081664994682279770847179682036918396652722730148927636698364533842364554849077168650325155482570776875574558499703167350122426132464288762016510323082052903918967469857368035060269961682904005499555047001502249209287722118551725013576520710570902262905534719310167555925833951753156814870860900842206654667696438718324986593411855626186642232227949157065208491678433321841344778647838840937524667105279469198404112539760627315069157827266449574745160464352832059569021308620387458592787374907191433603243540482365373030747608792947774365644251661459749900682111010373441623411991248495263591357873907049306723745503446455559251172117268448049873893592316756629191396951096287345318710180555794411120409520217427184497283572464813570091550259711242484332076618114101225401025663308168272532103887243162975342130438081338090327745246486859161921095396876262586091053167150361677668992509245932824903318911128382911954417064002092985992336699105573633897535020300928963374257823537430437569116404628746314234492820128377562072712665670216226383806437813058353124956660033951925457422018639449862974710400572802612880115077840583442358117419365400059405687542929594307795077909866989554681511373703193248373010111058332199396532557798024183358076149151584801805471498668789012791683859033869652601996830559633630295403408425621148180771968160587122600108462332719610651338215537562242697775325546603544398102304338950853080100251399366723199882745837158792947505397989147418663647562657608278947640235639766563395880108990382831129061078906919787401113697185477252116480666853829758556055711321495980546165734703267349938708638326244995111993631860940755964455997602825796228923494319954136027106184246079315820945216267920230759573302555299163894859367621203783619702920163725828058451361476323687690493601307521074150324995448636042383847728556302264021095244775471676502057252314421777549068394529841585683039398582788275597931943511188780681426293246470655494544493027715161957457638421255824313895706415004384376033881642739944853106929144030501874861618753573071660231832917635826176179193123639326758235021679566567971543506419852017446418175572030754861756874825882952687597424252232578692074953946699073633508776864098988676324022599941952139376533069476025358180708096428050865099294908468641122038285710188560060207488370373339990639130199622187996626932962156219375746551994143858229594592347335669976325844532507288948683854163233713503722795936267391653179383612699923272934565731762495033631010379234728544275017282627295381294349145641733223876731744735658570145462008971665738790114724610163078625212378718577344816410483883408896038035309480365386361229152994281152097277551253113520356635525335565763759716173980060102396861715719556503628221864274914207462737573188850122001265970761280520107687622155428172489417167905166458804962228992337628632600683132128623233071183674939903359919990030896693453744637238240842847262626036055294019909215601593004058375125156635525137993575733989045469250318214950239212512234651531542983423721313137138045145010460088174142184336021107231175340655500778199527565628713080623201552850680836277161326141970165813223660039980684922669480052135870491171210611314065232225141954349693740842943445814168645923782879666293238630916931078176687062603396308607223473313010165664811830079380381346941490823420735585033506813927399449032752941580760083450246208898074820239446336324589478005311050137031354288507229395157862618190954317125058116561839930492630604559993257147669486289798658211218973529101222922039735336389505557519344948419170414218255340231887263002022213930904609600676512580175789742339732424163090274596944168402857562509677669645314396337166552712385963805285519327031739522737953744235757783037209605978982920312798511485110445563064157828625620852777856648833201149625069068873471370369998527243854323974586372069803769409762037951222890806883961930219208307427657704310187406685057493949816158771229905906132550898428166532093356514581142550476172799670922744262731153401275078668400995746411344430401794655327448019191988062578441167485851982867497320836364703596790319854793669000435761767562499259631625739079204201000796683858140110339003240137896724823704910857985378674417555998561644949956992390022848588492941140128091133721034250038088983819604920672241168979794555706528806496198201329157415903214879166001958629459759394810224672838898618887947708811572395158259675510451886664656996546265049629883120158771953512936468389898387380737782028487761258894196086935010092645534723467336624270280835592362032686885826289959892482504946809800444969543540023490210464361544621766216436321795733968351116198200752619465325561918917386030643022077198078507507215692686410559868091224913567551337709590743115838784836824193907764695554952709261875935047802459469557758187785941433574544308406819321562981448612506884959100781825895325964002077532700164165813300879777449359740000545667440678918917369462846751034985272147933737694094887313141350706030424827685073051754349310779093838960747791601270160163139583523550121370334792675240853673389678425380968593288900576386287319458358609437149600753086482608344963353749086565326035387391853018584581699088121762198925236425720547590607880342616835749517003263124923222515542882847696642665134194694405662733150386161734614912085119043880187164616511229866150982862849996155844311163123407941076481182692800138010958683207982345763161231257051383628200672026216428775731488460621820808427235450182859485381557810813846413596178477907457713419125088215868579029483617747820536944255909385641315716857043901852854518179044178804061805428739848742646347987678631114444293179922536560677832067868616519658617614336487905754200119670523577271901629651915698946635012060841301828272314641461729900979626349625560595103882359374757907492542452900880702669390485179421508984993910269701998888922773806560454671547366809697306190726111102587692733267369106014208141346845179825183553965512073945980415348186690705363009015291486080468216251759266178281719718689106371659437160109225103605878643968611605876796809178471931761587478297044598446152463202905982386438945335833194899218119613773906412602914903993379872550536045954935794359055143078417457569250304658670662052407642696378089441466906671944173962910316191226834203147395348418817234458678460213621638002808381641080631077739543638042859718646766730393255972163816005985931787081950403861173138372572213885611078096418337152788482864571287814403711555038932085775667088852324901141817401062811313510042871831942556766645031518368844195543996509975352348410923927991157703235415009377967007597588822913069379470647253743630302372209170512134293843529065555947967708266161698257665154321433795826837194337180164933994522221502059361311382047004898772152606000355055866022368453376931316520560096727214892282324004726924343511202222105684142591014533527720621302477262965850037867076358680920320552080106158642936709099624373192340894581341393628629269739167292229291983378412490017387853653398503883123520203607871188093375326256378482733453691046726921487586616370371565523774613852405856336728436080626279850095181656666780020075070906522518601142983917649526088012656855012987197718678638453440109953332663116296795717745152442635440592505391159975271190853345281683341165857940892541796427630759796927487205581741281628475398723019511983249407886725545945714060875158493302778884581052177752289246820576318793423940101998684984299782131977334561673795957898044744212856754802779246284255241310662052732707924740288115997732816852171848433792425302371030056238220644075627858638601297988331699676347857721380556743332934917721394416559830273973326764368434303697207553659181786650853142540859533253333662305831351988230430591677942754434679930998894942979312844640960835473069161611104848751394602040188840416166689161130073065756047270136170705691021580687832626871779163614414763313831364577787232712846538937612839018036852366771980376095809215135132881689205852449810847187952964576219089809488011439855863432436969459642568089146407850223072054876639659825630103439977396998401945599359955651187043503226041243700617224788929402155620586437225533846323617279777067055343978568758300961962396843643520110884764358933976367129719360268480661966094193932492804219567882558832308592755603465932791473252417530445695691104217657620465978868042973312369917299825130806460002979191352685068009727345716942648536949771546150690515584850348390311822201751265139382213819587860719153527763459057772540321490186026800149337542682605951293853392549453080525907508713363717323072677268945251391540891312853898900070857505365479688401471941171567245668107338134399612465353972934299530932239114065970292729981512728729996913377133923315904948691820600100174243691277648343521651055240809447203957121624647484230851185214302950441923486056023059465534446581084481571452697580643871530547858179985617135828102916955634986487028717285602979927946507227514471618400394438596020417416833664593741065683981414648726346673732241266801154706813949688431263552033850139892526158474735950201314889735156481405065176854614851131460492115088044653788327211292983237956401333761297497770610097001763519083920826758216832161757427172359858888810409003935494390572300568643033837415807868404332487300310396000609613775073856532356971769990650047819704107635587606851062956822074629487935303081547165178573308402690754144533166766604231613709677939456099581156437233630859450279534011281288217713918352348211439457700911788258529389418221000766946318367225125004405037875486932361666257317737873052987802457446629856138259874231074114846066625137353210685400529083398457365190277663696656896782168585310288893118775684005618661374118325130974153394515177597211162048203841367211527482451716175499479003277111277020108024433808671126579276041850130585498095935527321588549616174573031192427018903439900710864215549511449907356893528648309880400848182429947908305746504548968008700363214280120386836971624028208485589733699123263245465448926766506406197817379260630898062633300851546624107507629156188415089842814183438830345705752867675989093907846895636246282985551014869836981161295174682430597337193740708280128995808439989342192018460761740475746710265258464903444677534315042161766852169637841469037130968390969478235090002963270731211506921466287408495174852168931179549605857306839640566033951304802052366325944666713339030725481199348287851541891818999821342458640661531808663018746104138562998835451903858188370797722896738806379178934920241286090697507861345383453935100199172626336633887629097839429628114440053401265617755456353215235529426912290037330579782230719560526708025699958350565548031603547430481360764093751904483408347281272917134015600411050102488553217268447185236373950610942269719098456047908250935104013362001708542819873760357336569446629031415436467946626408595591390055117306382420643322853941660080551499885120809776316458094116897387119800605343465905832510673781835986125242472856576088328303795175682880778296614850572248500144513078158149229943201074874467335174983638790286510248733081348813328513075860443362050241688411614123514074712684538894046962990030521959497741869484136623326958055675547665546447107461808135536614348424708980149574199818067523904263991770590533934155061791835421176680617577950600671577174740601267109373297692257828497674431447125527845521031489449618276658796460192091576846871113227664592949990678634997114099563808428305856454515848545219344283941052012675037429684074663555717622115559161890893734233850165002834205247157286070287828736821261089650620401016354705819988217979081936889973817848759139923766641246374390524010168921677388180892517132786465625526029927285567676956713862513308881835891814846884030432403212829645423882608973300882840130982370999701237197908666728240293910769458306965914076771899314612009778447115595294015113770131446939987993635851313320304343367166342689815733652844592416819687800248642080277266710599795312519135471487924589244121727794078175965153561819481731020368529563204646040480875041222563336828416276226775829723530532273003360093010930702857447192874974449738817988821239253400707556242417061612139035296685835889297481887133424757481062035138934518670652789537590234480542116742937493509923325941614388882257030729035897942825356981082484296980254804718132336066679630060197359872186174261752605806552310955470478558807260988024367027002301635196656167669383468302531604545411071607555842830618478886399480515947257567363943353889269369748077631665941028487011065908318891607140802722782159435937458097789738501056172990264521920509946468569698044968712297204294191289080619305024880404880617645108809988788612356467970818883225273716938212304290161040371498822782315861743458584796208111917371518737622562504412034831321130425269395927912769457284480563959091504403712288104896603648053099941267324230523785832634258130828596575884642468071737764820908320655412927884329071367408618921574968443924511280851227965090747218663848758445039249280695730903139820627273759928204549492652010634656930032436012250186631152563872578882275378670252326610367547917150561520451653340410098057118369940560093866111050674504902952540243205396633732139088466449011385324787926180246195550805648818586417071414231390228662366115210053144124119021859527240240451598992506585416747294216806358279421622979083806452708490150541020984939676031656612198429709472241776288830489363656450362167279619276795638865394726401731098864558942059752327366527744134336220600225368506309162703792625768755819942951054992514846193069374274021092876637288537136610400694049183205069991230435743799008545713507743600348104879086111940581049351650429276827959543808952568162433239877118013444932322742278762057962421309082832290634097353639410174628251748914102597574329477372107963513810810738625848299500046707635334348829983024251490244269382496190580389766690372723907350039186483460267168080868733912115230843649935128046721717710960084634852869099132635229404924041267851169741739865607778233129712678280304362467631172974684776628779010809712552791246155950997425295087992415914263275694724280908860443796611183254043647472071077048288578133815561912473863099377703024780943427309469712184418478624300279605655420248997499724597208539445702056872133851446163930772133290179995740062751750436521169257068927027821089531339409739170253750162314602779197970019159575481175696262415817361593834655939179609887403748143579208832288584098556427863686969172979117233072273621541308425483299078521049832709101833449132706140726108948376073225195459327458350091937262018867966519119835116993712334626952562355136467826695927782518312229668884133137409406136964109205964746908721578701881826619978191038261824016651959264927796308958474427041380236481809918565265312184803439273876610495456583457690862215506783161897305130503311835466619316715601671090867815558697895611186122214214353063079345982310619795471187355953353648614791310116181271253586865310824599028856971181784232127783292279044475119992521549321050791244605942573430006515732947184087959578882366041568920916167452819220384045233178978904268226119309726996915038397859817926051048940129059686340869697968677691523784686361719528216215867443805286333969451952083209681258684745525199368921111871315491656591872766281987301374548950250467078714467680434163156833762583630092328924159074310760529355309053021742648657055018747361765483307667844340956161917487796073892354435280507250439752674661983642891164770302156730558125087845469863728072837479900809382087936220453908122019659415159966865598358738514214389479905357409044841213913707959509487990948030348347491239962673053004848855455387082624454526425947479509749608388690696757160769598114362845099908264555631937228702440128607224917150772620705520190225365986827653176418036137271802732131905124365228433661448267489089418222273059193231455847291108329734507055548051222429674135775623006639210335533470220876645504622382841603210365556169112118237216011894403058289029763651099202531312893716027420965704277556367828538198483373011441989385501901911381301460043001002261425852261581322040069792337043050480006221430637360089931013872557105531078730964887325888598981331422436666452648361195426404464666183153072992959342245887411102406473614083942746682456628858905690926344963751699122317924931322513609374752135989971452060426982981779207158117469655411988593989925017664632721599794482476917328089252700369575755233755923030876338154433864905931778719895687028101436988622130597018817665844429664091905800262963595640070436055374723326211121703666550354379621208208652874172906918382619587795820188016202080699122215264529540362710768869176125631412878286808535203215381967844515166167227129526304455856694278758418756722478779966774819591649376193558825131556195174955450501573618398639346681053448405821928583233297377026191269086291386196651796513715475134611867055971599449751440430363597727205910958314849202379491163893392808210910167962334390952059765681498531367783349266126274314586469528338542197813331307365325654547763227038438953835500953787807067024667181084515728762008589780371957905677893089550700284851854360643065099054971107381399576323801281880351473938703293546386381237894377502622327264256336190845347198768494999853077703716803247091526729892594940929202950911483013153983232859196550363188918810284203316499419946867941145712431184983418278339671955488343526523618504774193554310794552503523499042659814506908874856360719390360272680525423959123375157688409244330652012855265864355853461998052924424230970867440889452804089668956399512591595749790342852968880441835030882583122622389102052554298656803453685851725154310206456538331812099940361423956916118012622053689700248162811000373187720818300908832347300369735493372537862353069440457757320145011503512576931645604108422731311490900799628196741745285722511967029117248970673804925062591225271185474269796075705476038532034693018567479747280854265987062607752773037459997781732973014962945357468393161885923824519697893625117890416327153602263340666132822059889383643648137903952979656891256841384043815025649902232762349365314834359599354666734655295926121265367642214154855744772505337785459775311275324084145679734581788757777750867739155087647356088209896811975129125652379492761779360411791367087473370594386085065787971272744918115032894505192415484848705493540427363936812393755633327853756083367572782106763912621695430452940425935739524269051271873299204438756594243714373349196164167379434601978726184771408880377304573194510537546473407269528694394687332772905607991563449959244278804530708976275643524875191413041582474327648124079383247998575443077615429158231510420924405545971708001608678896547674434875261906156210897132611258046153473567932994586314629602506730892606748604785340526022061664011167261255908988113946694459150305472217218148773925587954040476498740572374955318081648000775349920232643891491804285508679605129369749902712758348051184310017873783087430567024339604581832774680177314585475455836279136795845487237476662594753456254621436272897447701237686250275519794529294909771721747691794773373812468978575689175765225960223903059373090970676318213299783804203626315868984841595926901466893710896984724733490006717661139186891147183550610874507067910458241077888986960486683383970107798698970962489375322378484420928070338247406576254859174039948002749392556892185868599039807122945980393682636983011431873962799279425866993935132780873745842412898609422487336774679806892909774618990312655187817571950778172550100745696363488010898411624782255095807894348642998832129013334813497293895443583679324929394253328534728582897453642353575265726247739517584368647094412139351194723479883299172431462705354741099425114103239063537054421929732464595294811909458682491269511842125027817701822478268252400732647534843580023597864936096195025906614729756981267290163281894374893145632666446669512840517902295168420522277174681132852890191695829669338947897350265561398996637926098636305009593038207254977292455563419986140560317421028404215527875570947246352276216446061565080182991212685120618727192849640745317294280002366522550600819845225795732991172630180265371942967208578698538900209031660796241324402987210146029445969040877932178335304913251303641464332951602710159308705687447571989313110406739105676500194864361018724545830215864936892025612383817404799144278660596107900870824031093136374461540297255478632202417394830171746519946863491737071288817232396912248499227813313880741842236055853979468540813395590463309761036753028504999902909762058500042221699247805861885764036261752953606309440182648508646961565484047765871111967196031473804379866239522967063314393612579486564814868739693234732789664737392294988778245058240019945186093855102630012037129596507156979559676967618728005905576793665439344417910976932104878362535809901922212084809146471853546623248247115691623383953685513489607065574970126751714995818217991121967132250529342197389939164143348449495188395253534595764616166282928453129239356465594667390620697741704761988313782346203087740811118945381951804817619206675843588192105055083007853127840146034661256959792022823076349330736082872512275469626296598246329102270250191304473409830291394247214005277146129587101069060549292813018442973496333600402317965111011297176362556891193146792453246939164067579905110714478488624525432077467208774280603836068124173649626898605399486088283119051208836798621829907742432839480892938572573313029424915122367803405530183232292909625366205529031012526880393659739477418581437944313642833859032720710282428919589421023228373865282238248948266796145898246349089016262382749766054301481351444322776458015453272311181527140142898729060462589431704196295196541195553791731996385529027280745250402672104013757868310302982557539176360284703455240265084819957208066614990215414639236734920215158718721216396263456622676991048858902493562420420196997705748949306797266535194015950555151749457255155821762933953031931648554330905117318738222119751070144555275686846020726733933394185417062271050371596637961681478190865467667980577268452375625655290820933266271311920542661891072834934206847642689617001564101591944623271139876976325251904125894420249935949534187719425185208635692907904693186331717605578391316902176605323417631278788387947598388147308288121513522200000368065067747496408065957106657732111675105805929212993433260582684538936802490526804799602935128764339794368183498190705606584442970499775271779875442079817445721094073737432180423733558506465478345283331446503687275586068521996498309553856700286699019228618758750677859585879673698773776655504522450573502183111262733319258824041575020006115671332525896778086885601509864830431412601529701814921052978281835834545804336291268890894351362982700304741256005097832778988895627605259596503140172428962228601546064757625463485383057773738572149060840571828616240956671581690757809469425551950744898608436324252924171079604604955998058551016160346156564302670478216747761330335018519509634910442011050966857019787736029605806533024252480624336651572259768282750000467329385892850467099848867338982473441373588388795480085690829962088324955962700690624571325732484064859167064427158242502412444133344158368019422964395816086095064297226447258976297714708191694722401168641411781490956722237643949639894719891929317337217485491670846912163480328263327575032303205118505730797469629711955263095095469368921543665191886369065397127293680476023017326755348911447580815671616298367585896823450655823434446897683256778726158626880685663877267038812196563824782673889438253156744850305989163521070954431013179569780985853811724933408529247228521295768245028176375856265587947996885735718606069271523718276292064395330413731183265082159772073230397622088999268123034781961624481007878487700001322217996486583979674757905389166366359430910253960386589752715973095524153510275519627769835764929058913389695325119075525729095507492706414731382185455589596410739747341377848934744354227829374821935698409050210738524326725362616813330349230550058986661119181257859640826541052155548964551269995642056305250948315822834260102809033011023981782893227838723430023073771017187546301105582722457649495177588778921338633841340299839920345469078431009753478313691555004618047758350150571686723477456586540469546013676198110856418206837828204353928806857843260156149732184378276615781500837941800206394857149787561778568315001944775676872180606325493654785186939833317651423332402527139469393826112643804123937541687181012177573785412250074135476326386356779277989371461191564050934383779722895760229692322761452248714782808771762940534298493527469159265863672924283667214625933215070618839887693533516377544006206239871013715704674270581169186950244003139519899947387899005107211267774395846090851822530816599845413608401065002180485300510419129678481815725385259890270919564534764614969680539798913591680256705330581959717404828115249562133111895225000091204551410869114676405865333197209031056201267094652584888428001613758681902925239214779006731244852387254092429610045191105003998958943704084590598282397919410270459815253623098431849799376700360326043892144567478544607261163730617740072817953896597174870408496661203621970048997322272562970553835533137209651906096796937409477893921541505721709383427863913911909456227715375129530932687609323047819930622560484210217030106068852869704818954932284789021444258015724635487427653705751420687636396008322934006417787893081593923292605445400387813937634228165242556842232897632853751046399396396872818340061365828768128352431870626331379548383236123556448152141072140620927358953166487269819153324393467541457891021628030829846151985869906981150038318273122168942340411132174177700405823974778842882716732904166653850813845306971282572678868692050846848487165948633710538137090564925086103375782137831295580539916063410469835130345850639329647218801271601155443856219227988718514224107984159766283356068434772969756986351563598281507454357050045296334255367861652472939079501309604365989762922053769008004290312804503307294583446039128896168642550777378739260037620148318890346469150909355015637823025299879964436346599591364971260444007149576845164538742185594963803904773608834184595936800054655276969934487494931037896952639582709806061952288289222679095854769641162938803190093924391420019618495729879813621040853978464488484225613865470441589895882434888574562893993749680203019632710674682295589696570828246915684488811275000162363586618624200751147918281197587058729294354351867599368009082653907195166134977284529041759578104837236584262761571222669948938550343178363470956858485954605130691204346445369427566321852803243658655909510250488383392503655189438346119565701350462421245604107929744393397865532815968357412854706207972852775972986125229366878335297812477822907713404095401548445053263544662406742806984691215016789297094363466183672067441873177891874251714587562053504377602309429391281565692195029210253354492815717031610751484144679673885519901724162416001611109572927597869901379973704147005124508419105899989312964919836120873148150492815738383312002381512566520086263744289877710779968330532352347808192235804822416952690297675052337548954355500010902287536123192114347855174020910375974859646936976449813218459767952485347913023744110982466562431596249850009540290145527777394779085898439831038079098474704528754811955220270869441357488252526832812716931002572633958173232331787147924472510769361580882764744985827213440608454261668603932711906055660885659106866104187643516787791632410163939322641969910078284749947652082402508197220284776715762442856117950839305779106575521016160538102913838691140079939552768598490037388099618585527643560326791865353991007798881729054646737668400848934106760901196831313473019415969072784539413898939087156476308349823586309550475967949443839168187001702563609628357491288363732495279134490327269926428521809785914217954244841216701027029968677877360453904019815771709480050619582616029060656457258857807106136096345182356904058508918668191642316351346076010602112565387666948626809913768749547092475393098692011096633905387369430314004193167530110510803696832713613140405289177575524582349792355130896995895994139773627824799404572824499270922506358863022965295690476029183520746269984004414003836328913514238668433675879761203393115761793600732129936232637583047734653439732952099538449728568629351394836355959820072196242869469737056362870156702824734083412888254800728721059029530954774307367789998459119535807336153431813790381286458670823224186661228760075965432087075098231734957292329167239064544403548621353647568241916582725979074079213029718032003610551390902958271115398001841428145279065744876671623111517072235617383867287952267851085851768541517259943908271685019765096660645954325675429729938419899126588528163612944184747700615314132378700056913120754430897345842239970072756630372682177431009892734270442260354238866590487658119965156757600076082404603584230811544482077025845396272817979926355925103612961025923111494826236524925866028697648571945764679832530889863194443416204970587276775456424606801836471748427358170318262318695649111907749642296994824817525563273619585313399813539271128976006497604263951949389576091455458399266128922705236266963849178138728911889618032467009074325275673754610932671855467039915894355521125689190066163573668923593325292218455992157436800176616883614269000040823086300483394059793364488725799082092976497915000377228755441200554430027601264650238786903453111844044830618027007332272928027585463827166256752777740387412098269782984301652360503784851344752693460467466764906047919578737600211435446725972540227260061410887047594690291458294614684295835319137416979289483032574661977626069493051517798322650401830352040818118484538150009104116733921095962526644800287275216789408001447840864910148432730126391714116229026093354491808697671831289994944724316515130887754414125074504032299268688245900936949310894585349860157995269798395827445579717309613378665595812124140311359426556058587718017184889505858488875517691278059378967317786451366586744419378834964693475983215626156587941534433760457445723042893053878056594799896914055500639227411475602909774110623634588920971338170895710363419679094079302534341852766624849901815250855490894763755563165561864524041407893765654592374823477776727042622140589255193246561457835669050132519937433517752274162147653005101627795091204624960830778870986756224317799663420686059042147035443762989593864343899680811607959188879068623299702804221604817759189328213199737027458125755061638869992905156508724089316245635303500615612467599390012314842964604067966352828611705889188143094824905258916555506488602064844716588931941451663257082101321242248264727649126098839706609780062127093738259735179296361899044155723194188185850496511188778128825731735294465624691842327221406107138741652802184708337770308069936444561689336253378127422366924995000431854719629266747935009504549884655414960533004552145921847629380784405273457505877535611460390441650952684471375957280797206748938108857518824880200726462540295600896241265711842322924355406641122988990766106778875056219100663418797447429465972167999896391742337359736678354104659919145543415886866548890143777064582907359020538712449089788379697294406701682836741439918150590865256698825049683590707846301431888237522195641160179721329563703780985889253808841846683560644204616718177634769474544601253775635399340815902678265908473074561517323297257880267251714164577933066305541620066025203705102628130634903528946942056302141845361127009603348085528071967574589132211289539096708539490980919897637742946120250007807088686301208567834377091926537267077301840859867322120716936659543167851823357356396460164591672512488220465633161500680456775281379221241618871630407261819253458910376400949970848054760414675748123509409572568552372073199826725165669646281164313855839126147143370522910480645531782092772825114554909798145695417075764060458875607448066241086619606632483891734575937348614070711531072149708515154018262343433398390772432287377176299733788223877333364181564442290242388238066560362886895305081351877441753874450060559198446357494451031239955151889828015804259636050286993494894657208356990988343513608649942361725702400225469579246468252287534972536440802146230094698110284901867009837448920058795702068051596601964846273488421875208126690737173168136701532355420023180139953433948419245319482848764747795676085747389914364637462071678741920446668793350475482738629522910064038291361201243994910732203636121833954365475352144484043719984423315221510814832392672891706936221041648037755727992227273288168896298832179307231807049593669979676240587025065090076729340298584351245523040221228143446094354449294135737833497197414302679781392636352265861138736456568338793776860932224090500027240050164836738941708007572140306208521600195424124641364848759399092671047835355054655673170033490472556901986456344599169057432223457452349473844613778785640493258494533677921487934577415820289792752367687881149600516552120225810805901364414895316404884686178310298045825225773311816421073748232113990508966412281810106765061130501729434516387640355203773708306458428745176307603759843162681333204186453641956003302540088558508763944897760387323756767865045851953485630344353915314210528623636188782897104551812038422772040345857473107933385210233383277207445018385219919709279507407675419328168414430199220790494646620956898428543645930062593131209164024048475151525548869884732292648769598230448316294412929470604306969705704323210260560528714914655356060798507677051643672797967287168321101533047121694787714300206015504036761273079413788176842573788960122672948259490528913730307271748873041438016110216476770590861238562122405926391851298398810781801651190625230786210542445424556041445429459782410059048541312299661017758268607272933902481227401033906595922694043686334948343019463537770219332648526066885383721453604484967276771796989984297718437323743955396020445825817869324075293252904286238296779335451022367181711720555555657553345264157010592315267618387262460254181052263283282106191652556845679131738650171406407535071260979711855553751607933038313921752963482528027014071024718892783862565359118864812356075047576478817450039949518259661950685677397025476040047535638787319459043123772052421876229293051475646528978275785208559407199141005860518489245129288103095162647987466505532556907601789956177151745537179092776354837620603992281576468196569002906100369408472009792998880336431294327350192881331319255879938162122357259403712182641702095119832280371427219843688943225651234268487358873785713604495106936424968227552024505720274131960182561203590464308390835543094476034102702622305191702989816180094013963724524371738743287520055811222922681428020391849250247280673716439433469460573031616528219326023585802872086852309224808515245259244709470122965253019299590775428638244966105498822296439926485605364501632143140724016956752238507334568068765278043855868374495926330280637809508798322651524225485797537446543110933695727053614950375849473857310245994909822184705201020135507781911652774372388464974848431824265523998498137294008396699618696752624328325688655385547906658467445325312695116092494034542162197077973438158744946749111529914883158295042365397372073070036681301422019968946567936001441290757014788141061960155346016967145690516502224738576496294330754206338375138538051917502514335719075772280838077462140175206095540836443092262166873166375709943651956913630939575085754098199262996073777696403970316617348488207822854856089909872072684420304169160904950717227023331073214211092858382903184126718762539446063735254983890926089589443531596175995907278807103587994117952668916151080741363905183266016145600970393395120262760578831949723235402881949495900423305644266468475362286628161248640578622692428009565432654913648568774391606930412870798365895580592763285166722032468942808776293107420410394564887510110772428975679797388466617601538799519520613197199096969165632517948545742174841568491207955551337515309463027893998714699429739376302531802022186852302691972101080815373482469446735524960535381465368576885212849385711240470351881195918603355577079776925785900625087510562108453394015283584391923542587910596853416957356398617363085969974926507070789252537623228505356308656285701844528618277235526128427634414901086069132943433052730149307648951095859394256597023487308375050120361452950704461692525541735101028703132230596672242246675496067033479718160540978086059844701643668770225861712331501422853510114587573240648407751693686772589894056670295237780567122245031291115695029439104168428717205801287061507791184809386585706176914903988499598241258039677054842719969403321707892835770880460237541611931813761772598811425721986392393721185689012689793541486856629356254105403664119221549722786296150679063579047308333073488518971441349091012734835673037674156192315701871162280441715134521440987559035458210040920632611690886160058793594587817467667815265839390393880421851972073907539884037890036232674627976093984793668477202790622425845266977174150027996009405833138486314715751390026942848260569950660415092450254016633460999701215330804424342803207868520072942278072627603167515951709144863708552396875103792003150943345537890949122415787463516028700180864426784618562951087671548291279129651553374809694728234927116473078120331081148193712126378764126127876622381715399983696790602092396793976475551659614161804486103696258222537158299217188327960237739329184800124221944829598717344346024790406764328051863116073556491905613031538129657274423690582744600633383370347673609163300596017172654984788979628481675835024287318094478864746260717847914845055681467003481136773692171623420846507745024899058177407738198788262318866484601916469773177324702322681163061227264046666225889520087489064333500473096225432117130603384458415537726302173187841606421782932123929579862486830323952571312608935754674313265148476849805461638540344456204876001879867629356706311649323599440720955124158081265414511291222699565860403915745741155836167556955764535794907448406723918274316140058287061127782823290112687443742605831426492925698307810264140322923901209038845994978733374493416231696224778103492661608513380930739238092300865103458827760931725644301176030032714377817135123698097626711942323210730055199912792918680112244013329127849705389868419021499879555295648437473629103831421145301376971245940406182762334060958206562786844470560668464479925865487334522994189762025988150442374059592443838900263797180352581042305335423963865218921570934382617971997860646038841935581722027476318955113866651683240762892060846481088506211279617261758711857231615967334308472640043412951019950364128443941284409842825649802098467730048631158311396646917885495394122688994517740727239895292690001090792849004315348133944788915556743783451084063249424041802825569096401211588594725773196869745414846223945111719206792202397944093096910674583856344968689559846720456498482792330764449040604690978114701219144072153795504019319941691244002241906301480680768070908135253192240860514706357364207432657162057907935253418581669523010367177037190312874794379390871197360657869138375186677229212013481826357787487577151002226410068622908528679085867512198696496878617797237960414386584086741503899044054058040398237025843915017659496771042336430342843353439352262567144290530190945925342942822602603420227996184359878126552224517153095836965828903160085912577319208761187596701944789415284937740978003496671092914258775802658983193683025778284676579562983944664837365399240613450893948587533211327595043682323237917028387296282375837467194380886870220752906433631283670901847350354188577553901620038514105961794060369197656286633555409302697440547843900339046377441231162905492543582923691019310961612249100726382504772588823075715493022472105791429073223606498432932832241248730766976033932435279003290173699538438259721652783850202535748546569365620865564400892973156992736343951928712237067011988009843005210387995213598722304109011802195022745820890165277013834434410575452834681524320562221414534664534344022966311655142161122896829898531353696325367285531521340074223548584972913052551199304005087524331028084595563976696683925058575852071994763867416279716045110400946265609610119595874385351590833529099110990097312822856459377908102823650586195642093829829198359018138601382923261304630863571856527689888970642579708506212044079226747806873880567666273691250248669553851011400957907724883735528723183091450867867233426876244979605096687958962286310587566672169568445126917897247920110858313232833655763773040032130701155789308802367308559866701049593295736381951501374250417639496350719553763192351069184287310099579077680855691970005543186631968812837890185376769765745500421134995083680752025172324554634479715748264465695455464791918094687492278631528718788986571233886383940815977652359463317807579467160786184121630750885675152148210509866197637756308303521319441614873461242796975505929886440643575167581245069214006372125287907368895537205959169123568379298178440457788128827135528782338398585109677984250734652907135763235154306028424348420517502644874836538306363580138513488511908171434638034109640471543912439138208848187579138013988326057681049795623653959919169317034650996464665185542213062727577890021392104169433226000230193455713460421699142065232428826875031812985807946719094352742767003514803312388480744443739427717948254885218797807805476228730724480981631123302057014048944224453612501262684577539940882426050461762755930603968224692234764335681536961415745922436179428107781081310386735919813710731022144349982743590685472445217466093866622444955570143943541448490301915163000044458522026555608252737317169767006827843970659312820573241058072400803673846143788329924127749156760638411877966252158978480168746204710581813217567539398292184339807008643153451665825328640192740455402970510315780230806491877652369666537939976983653544075386262781580596100485285176474546611110228638562230722969010504670965454769179259896483979532708913467967303850657703745825763817838455570690706201398258161582007640246782982593387169143021238961922011840738085878462157513937396420794190004195037016391827392524439408250670089726040920191124081784440153352988758645486335370014276703709613805679999786344168932575827522691077742527722580025675005315749466152797326290258846059676864376887737471310166834818355845616564519560479979879357092363175506824965494397326608352916605423619920187674019701248707044628915832298003822959770721426509477253062231368688687696019257437249527538809280299242197224676987082574014216509124690442496963513395625182189662909790926414627248109591437735352580876796295149801032972988492698016661113546201768078047308331925341770102677511819182717644935332426196725981924592820372121271895828205858412127892914272843992047913306317454680660534207172355856517023798939457011046823032886712933875644466569328747612373451297092912178770422465296430242621096420964608351242638850200556921255023280761362804297797490386962369822992639928442138606155113555247407607324578385987468507748533309097732602589383317230635732710761125507577551903696522863556858362007439366904744239044206386404029901581033046031034143334169771928938285046322092252544518719445554292879552760543025051967139200841069011298337019715934113776288301294671950926912423433658878378863715646945959091091392963727256731754013786502550018753766841129381581020336583981164449764387311113818940216043002822878204819941061211317484786486812883670860070813559714629932787898563228662907031189095471703644744964398319917283924585269197853315526038366310293993461911540836218579281621233667982363748587729658514020649301867565220656954943476643782489092104417797266025108299801779939192999504204502268621355589586662524512045596348117343480807336622058470525078456557212514147023152580263359773047693434868781085856842364850991255482049049851116529302600430723334297682426242049684718934906935630168410075028847335590973896527869324363208938473217320109190818320519580958017707431104333741191723277540185647184412393702022691681662439260801104982336451355617858342466080106901213554299856879073107491985083620403230443712233311296198694198580832063958651289089899272793427564393190063302383089687307841486366677565528655273113043569292194606395993427890766865242268641633804005699556004550953860004000220869168254175919189597662107390051832909979018319396372523271745957517615054225110921009877951371199162709879668183521466016539155050536327468625783798657647847743194850061374511704998106303829202920325438171941058964168738586762171828206016911892949939334820710285885404744681491385131847317574057704360125886262114904968096411496819464354561038221843720392936362115421721768178755694987772975423432132466699041707866191552166729308419251758488755528993169906632809069115852916771871202287111000698159475334046564408640043293755014097844564461616722412614463200670841966946205540708004507274588664377627656448388230493165141865456003007803144487697375611172136149634977950837425343246622679158385331770324322154808904133912590663139083911725959858158813946448632654817097800859664886461441857031272915780908703367630924609805660614885389323657130015455734120991486457999078613234480047046603697864997704857370072260974614976063422230159494650162997801639340533090635502143861408787750110248904421174668256437365651346656828891028989670504323231981265983697929455816632281002543877797235773556979502419640968974962149342908586492473075404751563803555470168691276800569624774640890928601772815971916485198116575904902938297597690799035043485558856074595946816897726889081516499592830192293472707702324189537114866853422040207546926501765005233890043221572994417642482853295990476936361139435714041764137987992248456977882189755709306073189108417497279873392879672884606539743737193687272638564414779352575789531990266062352892253244909373748413111254415450979330976470492302260534450891939314146894015973179021445821012109956817616433402321243332253088547590949757431591302230330233945089876709286884255288533093398438858470351735490347117849680155874235899988108937376933307920375728476472328255852179660566725814005708889531934200618413849548968386056309538129020307084927996718860237957214689776357926231522045357985036074521021856520257544988465948074689869787052258884010072158369956102670421921236583777795806179997915161361225386564905284656219869655006405365126133727463779895606230484731286563696093904772690744434121898951863738968429959101416479889020596522793041602907001522108691900012792572324981937064611401267906710954308715560389129805134482604630010388346261274560253427164524003609334113099502830151279241930260787480133239530932996660124090667126790615010786282215901139865826279365142218511074398240855672950896190721010798892374572322065916873524393003403723463567586385823087966609870128801791247422037267329096946159142332038013637476503217876787208988506034672480389648819496109120511384595180728371410278815565449904521300356215167173627740851097976054375670311262110779962074719294514323226940623365913423421029867195489916478032182935541903495434258009719176249841094301216020692496850070839610667206138655037455530728291376333782152500244638435602574520910762511564816845709459827734056805777059296799490242729321084088846062245241135883324083723973560322540662541617266687077205787063072260357477382566252579377320630115758134328898768333988370503716192305169549189230666021100081766989059215793010313635070436014358249452616061378455065735127756492858711504191345956947151781223501116292977579051047788837383922127560964700639063558005601295124634329899986786378217944573128536948034430261569739188681818407843992367060279302807177930908657716383138260261399312844245400646795171342603191735144668043628246238763541283879973985536238104416397808145184888624141250682305793566781477296659038464414635690726972187361069345587930259500664858736395462705814415743441861549735120168010206424423047827775183194847130573789054619485844029579085269304004787975808798337823037998651693725346471217311298912828855355606405549598524451928169864612584246303637248293550873918524518386074464338758469101922205537037952209238151849114647021888449416382550538363759422709690323891582537907725397717983776499883704278754642063534726458021631270963812228490935018079032115759127861441843772662964527780014264098282827753536952910073321064730063343627398705809862304364474728287847696622320267572031988704816031723130809606315874306861180023894130265041009972533054662168042551819821362538099036853532537401303953979504213632532547047696250408252100992582794949370328770094594233387685871569898853906692394421802637866037379458585350811755401865152608506430216798444660954135240119813722728004457630071573924287957372533695716566907247544367920073685195644110719126579219911971969833880949695413235740844265357252459998708867180980367255390052502509027548693390923827764584289083627200654650611123699394157496083632870991711219030215560006077433035848293487209764535213967099589492411335928666112834144005674142427907715815012430212995407675523312031800962475784059648501184844047506784501477459956630729519004859442734163826688571679622749032488224943922316024673751455035190801967868517528812893725310165331857715543194584989385591113540215221715468161343663564298943301403537155327677090905215555942415211115369801696334747015266536827341397787339346924746011337139725202182560355968421919788235584393489305633222522646754576574736431212576164901520203590644303068992609132726175104375429546999697713172267965383469439433984963217285992982716605376130675358674871140000050463855188154199047217838435778685315682381933249521468627773798689060914323583128709983071943912086069936554223770292618643336172600943352792426410127100200993246349265138361333573379562487832997336278051965806344443484998813830031225716847584607572617634060509032876226855583986628975559779020658569205785749868672709218446995540770643008033720521360013796103218701559267758394611349049449484352967056249574092574539994972002061876040542568948604070237387124132900819735483755528162291893328271450899481106678810406930802850586301866428043925749715663911453010144076795341278274072901982602747807602725341796243174900125587030193006652646128077978060954929607931114937839694756891034438437768012307249889216040860861329143989417840235368936819053551232431774042957546655811988577086515263616627321253887096734584714786652822618000859533799411987410990128534746939956590353275840694801873578818424008682730276701733446763986047445766656017330000222941597470660512573925292853446330747416992321913611342567464480583939573755656903099436269358661813039713236805346202901197637109331655156115628004593430076647990566311482203058483762711819988831361521097596898376590405645356874548044018605146485871274770570571621463876645861926717954837663739355604811823785601520714860996007695077444268957518698596924778423501267008153508493939190161922116740162028312388018398831588054021062240193168924024127014332236469490438812183123912135541942351196171552085198911323513319887716327224470436344529847749517175557146226638680555850016907621771811869736414496169370225969572684296307921450039157694157627623492690638445788107630603718846685047757787733320533114158791178409870141129727954596229961130841084902147630173496263824379770464145106080167187249232641787826711462798624795311257511941364880650902175599996606252127520775765521763521417653815333926146970445831964174735903172526375404596503553836909281046820556631831075679540771549731323626360150040041126580023474094444146610627107696921518724647889320433617183649810438955414068305013737859925304397056518956900157945924231562718672327230232994973289326475589574512030305324656838364316774837622811662713430050780649484841070848762181593699772491912362619238832802366317039946952153689649619542453310119087169594575444673833903517083866943279651285123935428309953443550352818369714656214378139179183412601490680535565530198431531716305297380083717574518446943810975518628184199494981289592494903281403472810143345797745671204449535438912533263214040775153859314234954762920119908417118315535092710609585381272780151268809998201130074353359613323835119201294851079017427074490196885357008126793442501255159585038015765304944029308877439675616959707483528471701115802570861686663421382934986657063867515795271351494698298007414236315697291113676002190615682040689794804641829928045547531665092629205160650335657348103770073471301356482469383988547045774698601542176615876519571599461617595001965305062114044164615858047781393171127417123471215069789862715727077150967074914079422323854848384595368523339018567919784403215912118670418745866939322934073308704515624016002657321354988481475261822099719600748289867795590356209801003424595406383570522462478269259338935497839386523760369211050915974194315369770830025485549812495263224094448490385373159607396299942556907862102562631140980231176237036862537025042561638161087566381604474698273420809197559983472156576249001619377699078379957664807218335883042049654710535311068009780738485605741709687579073393173238567861304430580715115836564688969483649881025959304531620241622237956676531025660413989477573084884032052986836313659283113623652676105121222607589800285121304169138118216434919179515425495600198294827717897248948906014760606802079673163222314250878129358944938191914902353671570819519009039772181259108840337446657276077046024946465859878525637360636834160746018290415457156056775956978306313722580092336082464780690455809726745935000874868232581934490115860160614299699367506949590748600212716667614141900852477279172408515295686419448035383439438374542454721282544149315155324534534673125477257009373599274196563592963948990848473352090462992937526581996612766482852292176393560367070567912097392178134222288758025159594763789902906262686798691000614359524393886430442763060707921450913867949025655895819365727182554342694538423059977914956143832841727489614868074362607444762354225491199870560713989301013598693996732592679540745820730213940131865490873071036245559671427513678930727229344067114267129625780255392897146360988336225503117290192622186644747537978384890395829670351361409295964930744593432722366650588806546047554655697878635889599827239369620936600130062493448585521574874279613807096688444982963991345721133184178765676584181813059055904902833678020021335474963868276793193442598081320249122843370874603595872572707003310428236392024149709675984250919226779949893741477702406572447456586452247848570406200882262748422324335717059752245403710900371315953657416554431436859898714536844353788874597764725450051894786561709365534195569177729731442833861826766657896145992350573065294704626299722345263478216502269033090232718802845160688843598145849855423252711179200808703097233826227466825503959931109073276744378562248365035747505168999665398152080560284063199847431116242982149111853185858871320658715280610026439503908873124585364706123467626147764683384298276582611650895823880156654524663939536246475572005876139634937983893420796832211160758664058942141317784687906088717414531331594615331072405804395182940515993629950329926190339470632317084448421252045764467669428995917244960952752857435325588185607421251841385523930891588273600543624286698093031653733938698304853958746013104061142289303750907640745437974969838792561719803258297483247397685757138114983246067750641835129183159752553645849374121441253571045548884453083515637165096812464636968445320828698256576345600392176787025069917687509166344946217217426487907648856404533552634200040476273515233278241036808182621915300262784436912794016425668408102619200803632006309843214723615783988139367230841378351847564999225568966780261624470543415002665073492695111257554519826547291042200244902448999447187781610918469807469002058338013060576219672723477216600251167069817647388174758848372798954859705561828349444638521590312252925912200507404124069670601694131342339402802138284434059239933626701709059903661040154456009654194013053649512828752903578655622022837959153004500703372243238387916974346094730139283672104817986539298325503455877843993832741811198919138900553226371391504967508175797483782878100718704003587707949204907021187737076273647620058394307720024688489189148148515969087785048993986388848538173836800002201713443109817864503065026344662716148293590694751411607016304102954139593715447510967539736913013582193429442746859763025467905817025316699835644350067027265256030094734940641961809569253594752532370075854989626995460957456669380051051978400920159797019329217070831082660091582614692502276395760516893476276209681231535266732554323765680338844221496256454928621846903706764364439435106310321303952575122901137647628827417628029888100412152971750700622192689657672097209233275544512572603553274078721632616994311287410893687512095446776365466049861417759780649963100829213100617117244075749445379210617123508180204518298721180806396985281317083732070638008251957814045723395249546473913921147881097764785271944475271351444302003455464757719866351180448170027750215946807244080507119858283208114129182549131016573873493596829364930643717808648181541979017377891505950278386316632422237931824817884186812349983197212691359033160858310173472285851186116364988937094151472131178418743498307667542509859952982865912652777788587604713907781712283625246763928461963501268187250500796971208255869834217349705797365455680096989504572478348128482868473862802582995386157020206215919209479242935243157597336197842550549460577648957643851568263720474044065755264119136611701165564181978838731834213012268495938973449758084307860078771613463123532553403786268595417612452111476849522604583630312305312833791207535846758035704343259356798691409416167951805401913278171092386072202603090100061773132904743397990169490428832671613010833476996089697906425518051016478388062774604610022498207676925548838166018579828082147993433684952828764662341816701381700816163301370988419064474546011893357171075338061072459101899206225527608596256118816053692500290052515795760488525549665121091760375080340969626104801666518073860762447823664614647844926296169682816182668388813766685749663086988246338854492173306314372960323403812930687143357473878178081184923790071737463001215411218444873769883647060829302141178479919033779669678381487201956854486349672127272138603900333950242384558963599406597701174253259268438387576923629572472895948771161454123865457483282850661644691649729133454075566457366788139772797701406175242267217254191192217682840766525363540759892962222978278466811687154917375835360119369949226243043348995215697174392593249349974770951476716199805736860204601477428365892150570758145621696261134662582162559960494442676779740750289545832955796492237751091815456614387765036149845426447093756105836027014214654692592156491099658429879090764126381191393599147196631960141531065648951707808799185769822307554335423808822267830417008617060521624511682687155767849114636253855344150028399277798804664774413078742288459898863493852359968438553022207660338034055503250379102850788725940016843681859776242527007622978130125751608184423956907832726680892943556202327830488971356753617608548853562970038611168665205144868423371519683228947718689703728647803577220996685206407981057683113329689236311761239206610382859639010159628562853194444676961734762705800453552076826586326565164696591288198613615798359934466886595612079145193945788287634348521855333934872880110518822322347726256288533458096337219608011668779689253703825218523341879726819719964194797456746722659610703122235618729296802848813016796794561974835108696274696051278253204590622640037144772286995367510964016569664550420581099339430276171797009634723694314543585990405290964198012493480097647026801084652086606415106259755455024437456436007487378029672787208053347790222805973296168968228183297853197940739966098790737192405356540440752417818403468372625747641592899428987112096407786370830048413151841425742342798664779708772333696350306764254506628710631507194782147672454870298109503933838721709129815329042309336126703363003114127576424279944106198089900948438070606015603352622543491974950566619712697897060891647738367728747728929524951355865422240658624547395766743534537892522649913503604906482192516260119576052850910363328121454332443930252270626007471092099249629285345753111708782651175009336686616576909626616798389257053673799404751993383516797956986135585399548556409561044841485109017342113863910663967262132691654902940056937847566198210912717988573517726824735309404791853383882950372972960020501118061541728463351259969814216120934042319473336259871663340906668981775306182911672551878395199616877437495480737102114243370986117454616867226771757409747781025370432240381299275956493115743879011321738312500818226774025525193447004951788753802408581815591975702243567352179007205297395603547564427656030560274762162368265413643415586069777771040840971978855247974387762000408207115432504876448167695250664134588923305498916669490322110914163206775334082014674435216037133581518538288874269298777562773281064610420155965858716087681589314190297286664991356264183273147736848302481284855457316336472825815616802004643995859619800965862529407673033286052431239899942883830099522569848967954850879978895193883287511538286049298854108668000614093204482975389900792513302412205194419449344623198612291217745502766347402430838287389872324314167369208035274065048777188025422356096368859972375773609291686390125011621913709437716942697717702143007381714270937652338218762227896795975297444017321609801828979457932121384778616144361370450105143363706576382122103630299716289876322227603444719786221234342127054653113753581847365976080011750167825345719895749396519211084981557743137284890198888915359657235013189918008473512061392652013601820982766310704632088510717869799491415335670954190530636905983127969158314707711849807966844004773720963296208545328828565808428566245891524470031637546465421261833214382303661568852073052161981090113716833546856257065839908910698725188750994379123350624653095581341100030268380069983310488312408031005156247583834191631923856451058136256658831264798939765950465825064689729092768749739002333017341104744738556941735476619326406649398990369990791329108981084571810230809546033009859032709055148494270074693583014916029174549100471390768944774333218262681486672784890596206907279373153674095186306233049940737362901681246255898854881668999641568786297818838778812193085981069174623542572750071474175552597050136321383710230869641340077628035671044763445036648760781116419545264806546737458871995503478449293333377251862825753758771137997429457335004495480204417738383873526704187642984022675528789038014016850508838167238351142548667087741645748698225448507242281171941303994173414446265767616632699307256623253935751686244500296907985057361178664665247293767454107385609323949640668747450212939614772934358717311704435701995132310046918702153064342269579940839424168009273120195544322630815625800568532506200676632275618922369851401065483143144143839761542742119702346265231243695711135895011305966443891562969000495561529798378433557546377529175480885581947806647546860801042018272601350558288925938325257539284444817147833865281278211794044528733411235108556860328332240958265977021818411165494866989621939103890559601222443749926153652431552214641763056567598087782946898109873649955401767930999180478719357964837462916349832302057268289328657795391532842249425072538220079101960736561871773923908180575754814876649447804517044343617994702084569742069054105960619908451614676662380255191082547865533932459497450888121862599389299576794740757048902082445713316059530717838251107021680672955365295793818050423586688393514834085895432428939617920440000937401305541604064269795763536015192004296922421121368750915786230565670359613224695999067822097489614354272987999130924791970082189312001256403939018585839706649334156863383191975158275968044253933608811793282229011199886636616866221335147275440110883568413063365327726641835931781313357358399440382958749641186098445313869927080720119902308554236549770296166149932902587634276900421264408373015777597610146460947935928315196858653272803932654596698568498501882168599840113316526705520128589310336893462166933983759192595794506634325812415212221671372176670088676598048018224399413508483447133915007952358247543384677840351274546949511313497991319165896938863605434583880645708770524635060419610630388530124611376642159432377320293697987530723753838459537035794345658032125049045704694033149704281397918624605816582371453750712007128057374252638055393657903820301787034307180564159577113856878326226202398850213832870699070184271396073856679955678916051518486638334988362987147946318729665913198776244651896147963764213874683874552005121572654413446170408846359518560562139493027903280238586706302337214505830332407601338954738508467311234962021827363312542194984349130119736988865768579896042549890932126374485687107536817329313076140770758717510708863712989398079218784356591829326010121537925801509186055139818779791472488701677383592426013247875618827922397676378050552290429258474795675204690914450474615960731822978682436382668321283471648552335627364292645867414156487582562064323234292084263301778432427941068825585505360603571075628387168016917153795238085925726114799256933118830945553089455062058456247100640853060590468847850556049955492094213348049918219424882019793972735317662099469260236243099287009245845868556218601432000231569525755437462471529648448693768430751510436841261506500131145010751265016329672675552474675377860264454375452112866099817102352674140857980690768788664228859956370085526635206582487293602646727295682273775705695541216881762107379411259580784864965018949390460982852894788726976303962483067246986065693345696901065140387674357312723352477375566249778334329758621374850960715478648684454183348592489823874852572442686180618884748084204948784095860627245746754391030217694870021799800139412856140531481453134194576128556656178313652017989498114675537439998680918992280834054625282448910740211872555285743749261214503125794904692060598449976593944237836430822168827414594351110655797383754350880441536369402998428231201868236840313113412838157954305421951862816388491436739733193225779907848222242012172819637766652958463097317027942651157555594718361628796404737235098014567668728183851517970445981359965371995317248743380602260473469646077203663501793936674071763510317584089086445572129962265328154080537254234314781552138783806250822258043090484611284798482303362485418232536500555844238298233835563523846478716938895174196467561684398497603385659562397627183530274662184164305388310884706024063933782014819581224588495293314463569006022405367267238396686523368493690021175224637066097625350081233171306667997177581727466117878798381236157376585338579607009017003646387117472182103561760337545858367129097149876874065580765804561077707967596739674962531633315275755055511321454183899616368471454697215014904710306406366013918669457513859111897869621835810668697583369282475702077395900718128001331966691789987756444235415750648661727788456726369107727857891053563514897876935196290645000573345193305563227122483437482576627991290844543338418952849614924626044805014029059478192086175294641564726963092813458546127356341367522801626299096434523208907237214164511037091627932214927567433933304854823460080670016333056951691297354337885656557731720487392118520937933250619159762681567688659073839447139586257658508132566884799384673077429079284353139896972195409783684742054124741566760848628885147566774418891597682695124414616163386143998525122313233052088529560735463370592371576586283446639198693342185485204703640777415498055005611846729167201091854509934416666383746891088311240529373438817656582207107444422753008566541982426813783889784343278981720496328423388939074822746658033333553768391902644759180183645296196167054862279204002365952560554579502343759494784704412995494937208154842274100214895030844279781490925478435454408131056916056135083170832485563797027142274887951627043668947552217314755010786230525294996022187121237592512728847818951775679545833474600695819022766392295925133431556540555549550335060537813526933117712165354466401984588273537099618242491995704837174762721047234818192044443666642933804003554419504324678056095335113163428306814655678511963095576574864131115132045414854372225688442896299332087955428461100712461927002330010308522998461256235369602168560944764465407032249174270898485614357794789555245833837185706870405948560274779884748278275431378112273831257578972089755509806798811536717126447007060803693718533232483782898812359631530347205611844749360537035697203496317299228489491747164012527782277512324679491900187833126060851036536928162601858436823416758066523648936162633591843097862701935038388081666009730724632118818162232449273333412000054479152716417985944073849335432526265419344860358429526380917978992458635666060946778111354304547462795544341439475702775692207777560204568524703218475584983385760814273019410458278678468294367625696127864823567989465904643573326590188040323149445093375950269341927545644261134514508987932278686466933869655539639057451695972111393176217580722030758982727146954578557698438629636697642151990715569817517187087666842177323838110935924522532220606883776742411019716224524002909772086552105006820690548335947934714233332989432239226854664726767801497413832106272649076112571414866163876752876454766812992351621139824702228846912965465706917246739159767039478945908332976321064631180302354697271481102478427810486617598247316132518254622923698639486003098459480126737898427488110027546224192172400462798223987004867879791280221945068056120385560843528056889315099655528806227300402707900575170998800457178569819542175536705493207056423986307417157051585353006367581619061896603486318375106136884570449643580104302588595519586409799933784176188254196052631847618252675170824664281038027652103681522301220540871145538790543027438870315873739177380924855385593000282236937208286792606060228855462489424005868549847087880511653353195200684404801232219253665934207089842043976446787348147448112323981980468753592774972801896715711181413497097209756421864382415963420124532014932206258173951991208263330847740409185718326528005977621038723995388709239537600248853038464297094383478896552188766275794481154786107062764319196988476062981458988332696399286507398717161978818499186817764648569728347046586934038208302305985921081785023178211277331644650631391956318125932501989426678900925794121169139381270677390910647487226033514711233889256432954814740998840040984939899056972748164370154279939027943097248372163505994863782809217451833961289563886796627520792486753477404659570789968868407170277751274441858141006808817931840069889048321116508034030383143626478188243090859993027848936943956210946625688646050058175903243586353828782791169416357407454895059140771223104797449408340420489832583491563728002667475625591344003641168610319962342391270661995637886045559140297371131020404207822005357585010723178423838536603886358044156332305552630725287462911325673829424932836437096924936381781513833458764983985020918281166047048649481686441948078465455089895434743275387810088204625021091503138925855722750561089697544866501380425187889213063634605065662954569113065369616778678077023636953422774297892268703164678181615822117536940616210989201521760475512208512876234024045786792205867895429736758488296307832339571673824708951456861073968832168218362049716287678158925880256536963310689287488880413174144031809553123571413790904770558493128672948338701390570452907843618053292352478975845439370742785104456069395010436519219034794850052074549544182797551109925051443964334820065895299601282923307428503384337900517246782498947944898601436580949429104400575482894229854368376337383561764770148809999192700960011160044042719337645261548158078310224654835614505503756324169903297531078579002202575914647373786401934967025916395005821653820858915927229208132488215027562316968785821322367350156820479320394564550410467932400830017621155887291317051116618896722971780089684800830601036800184262574423897041999717492508859902786270675925820049601993282050694623850303179096273959288945590071480661571408423683767966110293508325099609937909486266913111549777956508656483771861389774644307703236836244956380380953488886193642201768792332721350071304231757911448687527291331248543673103144390556320034725808852411008571025554440467888408450132899870072838754400117760206628834602261997552465200489733882233144408424342534329987706791702535343401217773665409607865433159891687493814029822544160239035527102946621910520656926540366124044472239443256336421288792795023347541470544517448673736634134659797993319978835841861395755858732504521783320023983457513550302973346118474197930813325533531944569353756831182664661251719409246088570950051113551173826162350965359172740448983799811575305696442306624585502276239585825431123305217261605376219106285242398127678739320360911849505354427966094872611080082020186836891663078013857664536142369728049231468299745449719938372946189018576073015265809130278707031236708781716585689088149790118861260536907756336116810865563485028303726922931241891247565110703622396924203968991156952554768439336711907316939919457319731561396107355779798968817036856228889549962641407600089866508922646821809233115724741341389274860540027055522964166836762841621903651020393980920575503244331360685451399465852730371017362470445809671295657335328161851729298388195665989584351102652808430080043065272719713926185102971539469007087974715659379769498703579363823484483976473478013398152981654923757548497828177972036421345261471145853012971044241022877570940524078219187197356303254293984003714063409337584263986805042055705700898713054836987424395099799097898881364592516593173845139098440759851042142736948147259686201241275344719124210138489272575259143026995653854618441402355827893112828339088243396607222531453548099903188464343985941785631956295564683580064791022076772137568142263822595005697000068513257546959830002875475328196678967439413227615654884356736320886479431041772138130204472517961618243907397511835675542339865752586731330573058227121605665440445647801542905777084475087928097382465463676087881375977746466542604531601452076475358179928926050927814364942551668473750038666847228356026621831325182090205207222966332311561773048124157259638423993960133593851323984424412497388778493943995689022351645828075187626073363520642613956049555164312445989678871397976127985787751638625161367223361057414260734279386618975899227187518159322801298445079880307814177500866098290674433322408053201473834877430489915666188834044326346367782184417790887413091421046824885518677345766627982799543149035011135490329068987554913104584469718584825846499634932016860011615620276570187638998366233081037253437602745677555858077384699923555981725712332963359000957934089917942205585714193765670323469196849271990972709510068982222229227092439573734068366672237010984174709343711182996956500575248717956852029242752500042331384949841192659046964845817533349303533664682498638858478849866317667457019707739328869999529533135757290042224936292264483679030317294270613362895036529594216527709111221222480713050608126565413021583394660023601558630939629146191941370350412980457031311322151358506800275648105260441326908961946980181221315304833328375598413299296126449984723420758520905393124503016635043496030510321246750427550957217202738955523201859080133539913308018504158971827908556846471390259140902613730281801202637598419661340191812602553576053365978316305254801342211488784347497362664619898980869299843370109379073124881093764669864260845070636427860981779388322322320776721159454947643033122517785874974490701252332798092354782222521535569560571986772789154841413089992059140334814438089772291970184439717681425971198388507927616722723456735498491494528359492639438449000647971656621624573546450979027400816941160592449563409701604905863167797965534099755637365299538965840062603683586174021549466400438587895517643514226414899458773418163249625647171701844110252626107427149969779319477310017967473274618113584927561131065503560719338301212997533313502054141950141495513502102101691827589069811374851796420623802089434113298748832163735411560965114356649541420142606254836933105032254062840624487710607028650263044010864198884321155491884392921941477597363990312078632455042661098056034551621944554857883128986205722685969783082967903291382077108069689350230447031068053108003523810955484365199694721007693985511677262318038418104030798907013389412492913554552572790920857243922776053241426643507542993986135104047321174075030968840575577809408264934588460519927864773277887060853488379169463510952179000827886880083111662610009151797517646919177418139630359622834593683070970150572737921748384388250480125075165022858195837418216393123295853524811124817104460505466334465588061519976085426551401855913218650757313281575547869762699187870684788404918593431438730489576253316515352701648708900660339213790042409863539601918727060823538960279677112425882590793584624099478219162519537787010743711965828896787851739917997751460522220716098993169122608380233846675203906804712757437043539009298285272563155725653677261134627052673123967867276516100944103229933844965805450790907203989877221338465133582201394911036264850961300471830358170503209016549048494143431310831702419015472028998455881233181599940266181042087301665649673671036478133820196968077018108981671590226043689658909345842999331672398320442170750387531983578455509552052478710778179276249132954477463017869529513247532118072664653446636629646091256849697666055271124794491262327793527619377161403502952976904872732114473593174498725377875058630440894440652566051156134493592600878141037998560550574827033844487806362715299457127059996029129474247747972644744453906563562511370166723236827999419403482638968367432548350311487454264065457914077000928470332705934206623456837795386340798404977608714948767161094245196146096936344971008954746987740411940133862133823032794869543982752734598407620850794402997593067107220265637374112317055090087079315960135897810511142157456208339889894694017947893612122257624593001703979767458177100115325559026223783806869370130628636291357038546026031232121721344664922614203921704692305013319605150759779036386574944474502893437430354484096214840453765910678188393752328774304529861632634874122586008716132094503508509910572125492159230283619075086353242354027024216906342235940327003549269550691334517188205580836079787304572206762030655842627002733715917814244698828123985512447087673850569997193004123007456964186309867719476480716770907479100525595137076207325135385622214127910850535098249137461850738124435507270571318751825192178521078910801178078350467808419946276849006769342928397506276924669829992954496134965949123507588026240522267902348756917292465944652447051615870394341863835214225280773713768880170937952591581349112907393296846984507401609419667131292305737547136649527504144793795272989227590969536912145822641339586064431219846953900184127036595314699638461726511606590943792766020195790129355651443965002830710052555802739619500020760095544759762034880204362882030396114518294605440722192457119473594965861459456818765970334500333171424903770562166722435264535960272183019696571416130450572702674156502582261018809806338972777257812729715104729851171811598733139322290449054814354296793085999437210630533466001730672890575349969194939490556251968921703105161195185708154114299012142540782255326990556672107819330751227736140616951638684150059438617780002495679674519199125351830352089415667632392624625608173600585806204783954826460912062466929088154995763164063710304964417729553539744851615022708428839056626355725144190234150381748611890409525275230211199841461469252513413349933992840431240581218986584009883834845156861114171433811441966608742681771925764828862054606771681069756557707996939255789884380429706756067900253679783446956002565687455285978278040080659419707032241295495601423110481364791555558185717820151598349327974103396287408882592264198267295383474177900222937076643612110819751112867017132986722889057556099267989498357223889485701468906120747236280363968582071199985971809366930387816141284132506146296745395000042813240361604916134831140337372975681141800824385882132539256122471045773398208759523036725654489364967380383126680690886428419906579781716984395325197582583128083443596330047287688944240994498608739531276821132991437938094644487282421292625472158320892605370373493074011582766719906628438673006534458616669525647690038649776408647015057950390594870250036209368807171770091832851089826411789371924619166632470576514052070398337589774014621744853189104249904858822126916215529368576794944160166687648419977383488853989677011362761395096617260151862969206049792158536770357920914891296846643833519982872850934941261502833395674117293878618137461186487337362816732157791872901744314749934465628978820423816826471639641167849881003786246469348906445148717564154171242318376448674013252267436996979925797828144786434536408316245617632131839724023513837400212552289525699264419750592414340923900638509758942222969787906555278822107958820889896197607189072301566837389798365349652740526859543753805849123882743666604467795744406473858801777173846519377395850784964809281962953164340119817392654069103616724051363401699730886510635925247347785958696149997655885605716376308305793260691904326605208746224078272545673501415003414171556773476957365754529099398454031246001585880838522613870381005818085277336865104417360286241654005622157400197485323283962207142561581003587599568084315344244574670877094413995762431303586457055263827594690182883335587175435085410539814711150917189718052559344490671328375013499828661882420851099107736748896387790375871527770070476442496638088542466423733552251172424006891393849961357962040919505536945585106202000963489069386244570180758649311048768334108148574152783883216566881872323126420951357519497077461891658131558992712380518733416098410604669110911161911153193650952998593539350661697143797102534429257168087812683528459978837427921779473690219398266920511248989616140453819774211990877214045233122735000112697872266385876081903412786352522573685130216811575877399771193959057938231473473409758667817792978153723920377154863675111270209781770471905443793178709731779569684986870281006142218234922969526326656886928927382150992430008982734050004409793632565984562738091928578234563525038460812465188217018629801523155785391014231779794679628457333609403299799307774129277182782726651119666101415001454653584045537602984246743826602220774527241244611569045488298300309519685836995175462830044578321575120186819022776340444998316310723885592180946926743681996510538212343987496119831564547797426581888814546390863064025336900219429072563512160314879010181062959280975548040321819269050390655404956822573956782698412366643647410963191378037828878206928650320404615367284101781223433677870091278744777794780056192962720900662805527186937619867262545603946542980075460100856132000024433578923614580377354388522731269330507597386138428477333730644874411278695768435301080169137512969998653772190410543916025159776713234909218605337745534263475289139296831568460898842893304799851942650966534323059727975375839690675114739437004041426318712840005000194928438806181393615365928879149070431509533806041234242596642425631595061609859014184113884858711941634588823726404690022599087524554364604039497672253513018781833305923572464557419411319698081852480380874351864668820931099346378345230833956472655934583209417107526844645632609061408366333090858803549126172557847888182883038986878845048849264191326878369479249768008593947680880577786205887856581417305981180016609429267585503210104901606161976841090971209555314950809530109364095672560629057935431973697265799566046791617044795762355863122912219267353548494214667375110197879938790684792810599982343531077171223856995458619736187495301794558776795368323627008106026225269776471694603971559588720147448711131185030265859752293699078144292289752327066555113294416579735710138753561913934659476456453167033145564115355857567655237266882468371979461109723386070806148729347824435502837131598230623939536650188571857058087237041744228326378188056924060985065194847899109201302067410831625833244649848249355841458945809818403110982250258554390802982498306753441406625244148260301636913802683536860531147918637403775312984529425397419118473648534410972341684698346154078357138678550272998440661011325008135821919432846442277887775658881215085176238898700392593132556120576281023019629565517549982496772251765928745730158265323076667026726753680945102157813356083964514240602750912120168045462436284611018019483508280445871973307604462504519676606203023826586996298180051388171007873460910122160497220673121842341676177616490454925604814707261194716690996234688020938356125539758442409247653899433103291982518383095507028422069313634836061298589209502541028421784101080485154737390258807536500094203980013670274507467044211822897614713857006545686794916273107405449489237810194216842115138107861513991747905679646520225825210057163535596857457713412964209595111851263541294866059429846029843270235815579326615649561296985509722453585434642349148332126647775534910172657737295094644413988851215071213515373985917416924083267176649844393989163887062453781387891606226186103749189765708574011561489154454321089208088221680850377224379793965203786390298283812431486232330848516750930717187122292162860844336740766053909497334170385926393095231328173389465009248576926806678886151898339482821894182653802686918178481123920626161733852498252480872193800936173769907909435349862154710455117881931794124832365660062520937418214459262136723441908879601575756742015484637864758612347008383523121236967543153208631502516850183813126338208104610490130342620527411381297277265204376538610013389439540497292754915311550450872367264050400447630172547388894064360892726819707603366847980449622073629387957034561643264103468550956940413065962188241748982939664014006396960445074175907273542469038782831506795795553500694232476274434903361475276502095303943940420634160710504469558171235785024039022733756392939139943776054275346240429331799225643887230916847552101978617177806445288053868633607077904505539569067065763832005004222844881766126702565504336975638870608750325811332116779813039291913417528150308049249499759203832455737342275506913185689535929303615326248983628606030895093363345465884805112279174372140819987616641505607022569867015730620800286243080992307343375816620540949842349699767619861953534816015550467536905806225866904695963743186223086384993864536828956088600046172076962747016138468717903187475957076888100590148656627770337223188571589155559280560706500115256417641687130504989505958497441413454391582058454237785601708016148083396014585444924397455203730997701989847325531308666705967657502977750851954708063962312633377021417934980998715348435730540399518302880901944537117684086080947226255136204334220283867533534796359647796911909706043799816004722278453080263170474245118433340766987000604750103369983847326684068453573801827042154080239997900504160058371152307659616037750188482699225673525208110828635109480796805368155039942594518235653367606830236726976411916244008013585840810408901483792679995355590309629574898181326249794165197747472094569692050604376327467330250855884966285087869339200143592894623785319510395218856692120334709547228371070077730743400099119171982365995532700146991341477828837733642434808638502539984920011682300710184753485783264165310931857129251697736324291637858036672257782268176768188448221366440421684893601145139661405337647733552832355922160868756593267929222417499883140329767625786381242255637585755602140263159111066246531445277229813509666583968709298756637186391648875449245071791102315915781521479242007613229793454209401705070493629494128375382039288623231496134627558325871769343526629549480295588937476714279598557093952772974799011505295059867574510692733062768594766453508925849500840087307266449451610571522466764743648677176981031998899566802568892099620665867693345232405596687125957708099068906033445455914755987445243550629072732056036605182240686211464113767039629064093916503286792578561468113356966637001903082699201866674642166631290996254979017846285231802456743698417004589385049474130873019823063402069496991577826338449731187241924600537458696956694982566477750968615209840653977118311917795688345107580245406523709968397649187540912846704129747132735371662932949066575506432533545906008554468432643785690762285239361973942586186019964698048626248281985485647151105382522771790794584540538427479974683598778215607727059502409902666909565948778325086609742528267993105627112903572137779841453565871996053475578878552411491362192406199954939544639353230242690102454997500675985349150484065821439364001732081920603856301982693382227268252676015085847043508259920293440170469283190811374955379142798219687071306671833957837213690442693741834384333605142600737656492296203836138097177898289832933801531743306664144257761264691990194084637865258143730544318220805764550766034914929697685051339887098778724090759690650873950446643196074754197731510686022012102165354701578725734832237999983698829670974634935464771572551552987427103056275737096785914573420973920983107498507738591263512682064405959178992534750356267796543793034808903244468006471062995559768204177041719079242424574504294309257755451402022475663988628091237641016580315420114942153602411814468222313474010175467491494002391786532433783930649159586584357566633802441611711300877968454345057946838681456659196687022401944489184540785224750343487642898195884130185722369916232531968073590401327980970134553994683820194117873545711952562250985185371063547890451300171796023513292099744524166281879108011209762162002507239999162787629902419871984193467079934518741947129761045748975504601793442531396212974585553239039590543019984747757733828565407283155493852346891036061286012865773057625147897443211737695885761320907242188305395912056849819893024723909658924700181016442695080453007203078887654373878170651671434232439412011719521829083088396899157868813119363419447872515539456559748913119714947307222581674814641936641036453663401244678266973266505781713296039563045886661045894383503225778926569143315555844927385740833291406406410554938869870163994741041698321639336014652838735622639075912530471853216758710347621182635334025937577295601243935395330036707220798012008689828008634824456336648895311824804623123397549227424563447794726633511085647222837637729673301287448353867084420457244050644623173785120296104538607046291214199875236075104639234296733791122420686647814115723894204972930698253388734897717962776214449318164696358114365541777420806087312213013076829788260448516152435152061416176980971164135683718124327479226083317775997079314715999413190658639237406907764071838068070348955093288861270735074041077866204201067713173973211153547607603622794506952777472327880973646268401834231515759151594907999665112481222278248835859831387653275293460431041670827604298870869587294244036729493736556779416705881309405014695231271479587558725300282390956461133797904623756889426941579738299743269373263114396045493862140263743652688246354860997118883190685281849933041493143327577573458036769019616581782315565940344765660462887005816527828097311084239965566902926156654834055672337009198397048108773198984129679406864677891026874628411275560624973011498666150660429468472596778120044598904205675230544004217919581078298658466179581056275726491804724766073611791158182592773483602313487758125800507346797604293366090563344363865663934959317473038929836278266229888815480445839679128809135204478482739802967854693794974287282605522743177851863938972744875392474320181902159409376875996929358759408477621432527037766102287671457300866950087068369574370874112436514109958161413417369226620800037998085348846310750013975730760875084958579868849812710975393291261782728587017745792788633989001114592567976014464946253507267772614410259680219322530954304751413545418465037422516299538505836849798597201191218038993567464506257179484428029860035300172459863763300784446066379362836621226121908906168464168716217078774575275653493137255520500759163824442647298717895917394323896539539724132952035588823966092127927897235344281669570937944545952933682424980023913398172289883777216529862333162665571795969351481799941724765491936172485467286045901727009133731770948899077962741294571266944578288166651362872963957292518942378028529807740298324898365447678509608639508836118610287600238096751704241025607874014463862562150246081748102170706920392886992938283310150551455235850721634886995150892132786641195964104104299933163258997049940968044735987579429589227013410810743232154587916092536277433499008611420544097409803309905021715611962314185354347281246429070838292180295042089029551154538793845600700418975794379128880194046423846064688295989792944262564561401824578653932969116573657213850807975128077568033387950281648372632943311578743927997660148630579862445282079638905176118768944193724360063786077458703006675829420173603324137090236460867100099500883784513485440376241849257802400420962721789096902752011333107520803314696568782346995591666279754754424515669603843073229096474332274249309120476754955384374251164481721631878223296992964195402442711440549611005763328717320809482116959331444443282474670447132736799164804343857956981749397651364726518544244684464986276103386000355129134153619501840284995647730316435813247731896739537925666778585906234287247140904906063799381392456906037040334898326170498760370594384336024965302554536768128224547790410159790157354257388398434321292435344796419049589894298250506456429962049323032128292040048321423683683330986205961180302160401701001613040960048957488851569433669693732821677348989423128652948081293857020041433435529095958461733015199861990484153351242164232493156477064880611339584075660426893433780140312375906239449098424417624117970514663246442098082409992396686323128813756519269635233236640483454016364148696313054759985603857020253966693618013759340091108572078677889806342811437405418951423100358534297119324824991318711880862594501686822441844752640099680834254082165222935291998479026680887147263118253266539208440727915599018594350991174060542630137606196720458157819210784013483738553763837858866918901986494815622675210844805949110267144554659459282475690607625729946517345184268277723063705884259482477350612169283398210368972427533965973678099590354220909864275360648742536879168730944423687021063892723796170179744978559287612618463343360199807250987616242693362193118707311920262166472865461081406136140581511138903869307042093360780003988500868596432907582870013790274095377753394063049583315074716787696880910045445792864087012738111456271984333545573349904548302487267770699100005547920901664611434977129043749027853097937931867757749588559500622990516326627193645413485610682656233696342962334979967477261832159903020071347655033153778074443431935747649932092881957025502973928236795730316182300369528935345782794250822151274089168397184195587720387681863591669324487769437090629005499825028092576936661421045708077091410493119901894063491625707575389661257747604237548006153065233241581305291583418682089505907163070180468239830499260972908834971323784779496739652039359825832350820885763907208462613756123034321861806514971567271300663101446473135071234500528410097558548388081930181715595389612598733356028479261836748245564993021328945177904270312128987027556396523967852433918009165100082751714382757830703426614711023561281441626304273644925337425820715613190924297847334949109499347589440510487130364578400935339049358282585221330496490356258191086130908897835620437178459580135111885543536674054353671234247124502578095232916321119443868561213353948163374998667362147032062951446894294944355810670270675844271137515496277841053116215700220458013180118954677846386791374662852684218311444480684396989485953058456119408108681042205890808043475295072327715510963541612025976294280916335694765035380507159915218171097795673361632330147345392688075765996984920952978504928517115557546762228572035654946517062255733015917037193331395863633867419498527405721546011192035725321884449473180462679953933941616476086346112058584012891456188145230057032420671904386565427300001120438493316216752253966233215796497890941467797653061773401557016841885911965210562439984899209769995887123214748436636486380390755584943270342374939658903909636774634085486202827034637292286810311578999348381077970343774917239422358404072478803534524408917986466900870576777251434114161143155293169924118608498276260637167580716141770608280053274844846105841938888175236735383109307010719670665611820387482685953432068738197746036926428305978933716069278169758570819615954521092919525154771728821124012545063874688325144940441385258048635605521038253319456839551936810875751903563440039511779476165955864509154287139069104163968387254356729926090778408478535940159671600960951964058444441464709335125392194268518476456010737159228600614217434471190413604490275613203740937042611458702708315075668861239252361630644991486188033558545562925246242182069384546190081857288087778899035883661962673458254860721532562711304397088076321496613188392451158673629544418970754157096781711172246984468369785328256359128003202679332845337845864983965407440529682787260042625734517992583011635193558322858656226297916707138393980897900232100575444837902523086213872377946924846940191273260160777265849886979835198338186397310722776563070056861934255398757620375358719552010985167095249336058441196765023952840671647744994978369889010018544645871593875394488182390356621050101275668399270571441221330798718764447942435606175301910109045010260665704050970010768756755325517476324947797645032035805257018427166589395451925077787372693566810506974824192616453044806044780095013730443813281296148028407990504939933664112323591062521020742725208939875283577198673026756157258770789362803852224417045407386776543801800562768269460833359251702297147919749668890783860988326452625122574950673407588650408567831541617994079278008259215954570772342906902883992145918358380609817045063889632397889316895667745597478757346473922903532999437465273452155046903317096104748167438711462866500628210830519416290779967350622820310364382446380279460455202477203270283857185742438208346902659826891250005472854917061779767683904927904259588404433464076867361637531824496424531004724561824281402246534524050524100380593016508338349208923537694549663865101488910713375335448139996678416557788979059665142427274130717203954725424129241828238874866753296372018305262260491338282916484354937659477418957833278087038374023630806104408531785285030929511338481506910555833928726154501651139934144497267481875213857227108776905806991148664908694018724787535267536770385028740638467941178548569049107161400140097471215949414529107610062838658856827709916816037436797077220408267274545966236648514729681929703447679045465289959514179884904019717210654076690262353643749188433899011194999124465049542010708912510565248399102269501127552860403598577932439117761891311714287578954515095703236046435190241667985934533563801964234350312180464881003444188710477632609543836782472443531356965109686329705027164881510430850720634681197114700620483569866946829379499777122685069675965191576839326208031934754907851618993737059862208188355960294773060841190666090561173342961850052274544648910737198105620080890630702910497323898976072989298728769898622726522680065979540991149086034842173722988780381062263285152053697999317503672610451921100182999875636623220486450538307086741343866640247106795014058989885689137662073651431608055401452452263389169133631456269398844593778830633342275653394482911249137492228533820046034180079562112201631635985495597147942028576538626197353476534107353453153333444906296347277148337965046190725953643528892806236597043194294359024081497573280916056634988842541134631489013700274223810533853361187679354855194975359063729668063410020172470780094058724853931022035552000523925425289588663198755852949799776440036741815897945752434743847459932749001829692203540717514192868112669059704687352956935090468338877984173814545752068448048771875868941495131989954868832781159570590974370371553022770834449151248973851252355063556638552125341741048567452399762133243763176720648529832392841614112546173543412496715297519635452118359962254851227864218247547116661909486282221118285650885116247715356525306509245257194065319095359787118780664331180436141492216239562889929519153449697319586052603769352335900289250627040036783574020152154769615097674451603734485065416502898826653446841344218859664019465192628913411967108665486192814076732815175248449468740869151079969197929403232072476873943686375510600361375438136448725606443387651741139007235392209928434744167084833270575584709805960453341364075492646073020687701550671145428525104929255045225588876679309068877587267741336758905189287603874216011367176072241117909089763175428467392753660647471974197854840794728811834488208457320830945677963505274158736437560251817451446813868530814913651317799172151194121866798134092879930323687663852185404240767680483892992693623410794115714836431479311119830394878040608331063219211086011820379745682232472835360189441853201907652157205606669608588503500180316446447182002247978009672185636986007463073612303253459293042252275191786502142878732344551150005548901810140889155551262921260993658171402062226679606252306683202665377128476080586972253769889237300512727552957876663061607420733520336119864041710909077611778684090463092147084456660549023158147811112052166001641494266467523380071689601627267128196988788195488154862570023194398644121831289764597409424218023837233489592923906797940669582063291275761767121229090328835823288532146247625662676428846859269525005370839874836778402521119712525432555899834337188129421758093297471826769057509587746246725564358686326340409035380192970517148334320660681424996713846504035464726707515336538034706074217169799082873769664643638859371656680344651163307323693317695556253232146960485980566986596675547743189256599150138450522552929291465939913985104854843073198117597999644553098239692192105710275503120985154919156538207764007556282470595962101712075300624178566951931315095797473492274670435073648913169371770100441859728231926354937244050912718978012112312291779584786542294740599444442987503484708281547135223175878400578437999502696304742924156222410848702525150707754070041005648810252427635076971629199335696098125302912205599851407655992632950522706490631686430813865308484455649819485313381111910579609416262944898574850022061357458001148154625411754989631141839965195154962377819197449082985550104373812642352605690463363863036826654044989881880590706373992177494153478991337966845690693091542262682133547129225067224980771115297514844738396926694007598077054463814751795247761767971171174367298355001351154359712478230627914613920745360045970314293792008713075603936096825001754719510695001192683311927056994663207474702006540033087378835293885861788189402219537454083442248514743844939992678990424195119261243376812890438480872067764219477283327414806920265215695106692762233645644172079227688244550744951740711519174591755156110507198414259738573670281724920084436480079839497854931326786683267414137312784639540718605960137507444835643755280950546378077487234557223640835921980783704705293036204474075903804571946834092129870848616118832169757517079490503875192312640588290171854555066517258823669043892843403577218527906493847011570368148328311634261659259513385109235097689097766807726629187597350960152843435298794375596216764609807883357405376385960142402141096020964573528075900809127445132151861381836395300686704226074442246406983211475624737613392318348201284926042009130325584020869195194640089251247401659924169841628816027750693209869771720100828901153847694661056819021292967864824172993759213956418087209390286999749352354410705009339464577553245975530669799317549551948548350077085274942520211175793886618257001203786752537302589039046417654566147398607851769675168566625281033571501467774693495868600800281682713427223080101119233164674037744948979399285645544585095361068059740844991688940340862400878456815801990727670939325464046738667624400894788883642170961538604773769060933736348544156320357547860867934375228753700370507438245981298991734695590774096588754305134159561700132022635729171546716171114935191693989366997050011419949690155466340272226995839755912632691798115573945045286340135942545604687185192108992155055709867515588924192492436166521317706061631028921556403998641572600416694737496146469279652918938338097211891485134096655780360628676842351889628090128508514151091269651408242055191173708020502761109202510922735636323875010949351040370605731880170640215290450465590904092804422323202723632839351631517787368907824606710796902717885184774293562018547061903412287712912581980087189792328920345890681051405945578583513656255213016297064257339111093026772558254608317140885019293227735615846003424292449372402457243666902884123145897152904635999135984921878434320491412108836933894185136846380622535381976660044507855942181220378479064083211649089561530686918800046665144313631704884104539900676040698880271831822855849356008589430478194918724424232175878272141843074138988559991653265793809304719755406248660697674770531323858893646211680579233985574964975455827187418979649807782666602053553660307725975983785466494795637942832923104450060808184734170721728339304115850337539103540293724605482873037465251397013967732542620894756842574027535511584868848019318293904807434897362550387626719690534550782278661594232894798410718599974728470568004161547054060482170074899647871689810291446544504587738104422239848425370837416611984583995585974498491800713486601204664526759257866992897295820271192699494826784654666322696816779645581476919483247844701452430178421800967330086312716263263693642773367727915911787404178108536885925033237626494518479290931943388161036752645738090426403744597618561619045309073358773474113204374669272718534131455100323240139679255470233876016433604467035572548976904035432810596526123599037122624797647499697576058838614761953637768152581592502175379029672835074468098209811583979335493841294763769068718784351324401264543546018127301757547639585524759576616745285894530355647753532768147657434511492910338569858986930627332645597725588100869119757963042028343687741597802386761956159329991203052010787131113066277099393872922305946603803096618506519856133007310797529189632550127536165337476403136671977463629185107825392605201579762153435616955264815802108413874211414915533022294299242800109426220999274209345548949070761235176157513530240375421363190006975959863783946099075967697371602883379920292811838095921505190055799020329622342798150854277524747758686904214404688957831835806211561775377249191469293026994574267527845620683022734006853134228507533307136797892369927644665144667546301927436830110734130275338964184690547095709412006525190738155926886060771748779723889941584668030903297545438188623322102937397544542733506576892914136878584571745331918092030018999738890680715278398031443523248112215050373109190181760284506792107558401304980925686277034156883401601748979211868697780797442926610113157108300968217538356165971641244597841634142215143704803458836339580278658217019967174250032385719329583831615068663705711892600311644548255913816352554028034566160766317593249947815498983162453830779359696402052527260614253133014008913808570111870535772661812918059653912862580812066966183277337234770091451890443737677124622568012870924630642342225890712054507018187981285334008900716032879774344128319063590229457586306551237160315329712523807732308651700918411272094968332861175895660751062061397108326978408509765058681838155718328521222781130028991393109454933000219516288494065432593188990011862225128004822182079622520595949273179986578289615571295967565196417447022786370991195528605387915849384710336993995562424754410539329490010036403463540694005832970108871344480754621238219851098121304870459311729082226461817087111196064731704507988773174622841877602373828668872313558031060340149608415032707021327288432456086949527243009141212304308649824333428002327915933746311467337392712673442153925104331818215307273476293470887717113236924460317228896102577737198912162617839764748891133332864818348368329426672316559394191913889745594072903948939501554979159066033475723705567760676479077390845019789836954256331711053180177789794651258273340283867997100095852062838884378652031743157715902130128103233299514720200668261955855620130652832584411368911624602853442024895019099586165967475059824095266336190704371636418557973243318465725732421898192205636132684330901623867029393259182389782807767367211777024754947116696114324112805020377979692133929268349531096118470220458267848623695523904772577671529457250148496787242655031703635116290691271922751898132645803311980327432831501835266420717457900794144336284971818492713788395635008618412286761204585468437630340661906471480222757267131624896775221304511387520129300787043263043270694232176790892928111528907422198166969102840433269981654271182304310892996366432755310886710363637395418441155644689213703698851430965383459713232927773643684308930723475368612798790386642107606365535794280206322334637136270728761813025532326450013182690562479247324886834017032165022198971218965276740008153856803758962256151868463871830678537081328129103886720315501042939491579805822916695761790194612813259720999738900342999336261704112494551188667901853866624163058616176848982365654662913164367385279883585931145334800439833723200134921589885862579711939411719012284694437987367309873956523619690378449068540723961436883960662253581603263983602434938130696374984554777147186823822686370252131208145405912990977147943258220982277790239682646599603284789325421962694731690047382350265766239406933997533220199026859947566780592535514662776487888655438287564129108729206408314172594771996481805796330781578308547153818222230145443029516446120055619060153608995743111981824322609932588822892438914857746542716072986616936942421495145701156798494364990210032137161136308076126475516717191367243323541831052600073649748033856723199577216001473742245591957933382397094865782411514852674556433315592373728896887374477789163372489218689881684400223840287198742885327719642862445614819892083769041933142737047899592772521866314318441417144920474169137942003866046490620010380591187632292287683965904629933502733704142531705363769774279956553453991299838179313590568695295505626690957922297642768638174709697305501705887617541484845802265300199742668518519342446958921804617766695119838904285080207271678665344757228546222341338549862282599203434047408391741881569527768292088192163820593823836724680509501229957737065383534606477018238385044871166721948902799050930304513223472341645034729428039351761269611521912246639665275468300624806640455564143578446141139321965620191411270206115815502384618269732223080097645998121549349652858052087014073467928164970491019345409362724994926348031202479218122154637427763266726344620313145592048909802107209682260430470549077055461818216495120731771056405286050724124627070116791269247713770178766764278651601147337989229298650195960905962326377324244042220721293865563930783908031281743104564640622249690511141560759433525250416348141692261749211644896052209802661706936784517820994445513028561766891251272376313693596126003321030924407327486672126087300210393191573782438583668154214022002548368351405956096615081948458070872765275092637791503419353778905371741054096129020863849042128052060623153739589429474964497947324857549381909124832416677699573450125255894642844856344787553449565516599423821852915693073917541481717163837118724784104693207406112371073078289411634104519262227647887228743853908485095201899721485673888684888041120811480672636169314771309384858405805146612891944391824823287874828547775494967018118290303398485062458467957389566915751213688949957772026460674466441865654593309222622181649157829880634929622794995401636045945634931934851951227302595026422217882720692983279871531490047265756835589466534889817622674509797548954271883786900850537835018629819413278341016453853061605364555235456709902115333676902059814464376721573593444850932337756756153918757613743193556982218492884984959869982741868009376003054446797332086843387676991458332945370818798069953076202074607729306311678840649277839662003983825265167823169545749958253349471581454234982045125086658690693955199655191567313681882221367271754245131895202975544962202962705996278512905552626596326652779819286405036959533586162294591672547931286533072701419908027051408270684724721414674838000810519416376624151042136503286609156892778529216358062398097381933896145642945237765264460543844771386907099867535242765762504136064803937758235405395836254777232940604313580281886790595469176309878126591463904366385272445496423854354694436603905250517628456118812207580392717464203297157411736118636270386023640741409356486214843554476814908889537069052637452142761620201831195114336115542926177647073201827625298619362984347437262531193193125900564823885158739980311800681379950911316270564161819430455994637762721949367261424840700885084298715897141290356205402152238536812139870559413923557713470387782508242643465709826680469812571622574625383927952349844959168754286561848027980764030923487861909681234644148760754405055795274584717698004363723774272938738034320089179574879298372097549375004076448732700144024537005732521039394620382356556084230839159081299299556190455307069697249262586001528908265567930668582988821565851340944061778721500951931740476694715956863745887934151431520722986641501924962485298888732754023698204594434991809833209352093888698088494570756158944010352967446770721703207116252157120725852028036869822786380668478739698286292489596019284154575152266687340133713122606172992832532501442441677948433153149588062689533278966479646859673986160147453269536948408411645462164366633677614015742090911915374110137045517450863290466275344579959851670727880974108411849489584760215587441517438886621116221461665486082891571133840489012437104039309563278621394041369509187177281912832234922416142409691466789697908354238109607128601711388327655862119342722815781510492743109443938320684993125570859104244272155765704064094188326422675393399437045939979130291235612082527614326652048562939843485060815243590700778588436863693653638107603680010865056588690801011916794182562342574583948455643670380689169664017685088615191709549416797923198281933250038846000547846687538819892569901270839738352292805284537874773977604041147442139369839357154077653541192054019146013265197976411569642760455959590862165059597150766494112515829692378474744895018052186476752190507910126307284468159845854402767491342849445448686792697195010350854259203844292341359356751172505954253578731038799327802583948967233292254455789694036950567549588148380706954141515102630069055739094992798752486273839541847509344345320697479653942100684338777353049122624678691189433954358971035753084167029460653007347081708854396023293250680990604602291806925718479606694722016531177917797522743387771302867902747313914106619328022065589356345473290912386264386359332209708419930496370809086448262927513575176439495942602760925585605506163087301361102535819430557477074715242141316179921970819599500735081240632410717844836984778890596270879100383273553834652114239734399358692964655010278748389030014242234643766099280781888409875956185597799773060740697793876053820572899033919041313052494436076903813026539886897174357725146492256542156610530244493295756711580860414318736700591711190346762852738093062551106173275999891892708250586377598856964593710304885317106811065691723226246809895345057904437626533211916305702151687497083452674788126327496929579499200082049011173793664275507412859670246055684337356122135039918044145036060326132722830020034562911615970303391948003866113563794454198291589157053061479151024794450901053266149107812982963518231978922980472241678327736270004854132952268435734859380222016734797341058400218406342691442352146731865855112882945074358289660385650721652517760222701265078208902082894839871081153915894986561862002281549838375021757517364182321452633613191315865183649082430734369600596320234988588887845473746335453816717366750705884587043534144600577364801455195272413644563903444450674571536370047878569479216943349384584604193836016778086700984564070901669362700554512340685526299144018424444391212671242722786545592389746865341794407670194045871295727844850714493935033660683937319232456471814881524627523381843445215017188419502663576052186740016836830907130598818967938763548146959805099301494944846513920547442141183335840269585310769677436442110698232008429793404754179610690501493499679229286493263169764003717567650869479106031529257766139676662358152214619027467952252142704184319698797697434523403706338385385726062618971248305329074773357500779026111692223908390242828561180481385094120857015300678443443140497380934478523833696080670473996051590292310063860205934080980319078663151094164248733470271152823208037279145919356905713483745066936127923270472609128442704900760135097305424912475807071866452357327933009659083476983594916747682116535014400988418601959668835894019864816592423705489260856278467028960948957957020890417745527374082469367724355542338337300143771059421275681404236019538418123104275150678750634964449484289958749023734029726769119813218783773850118897220115921820768167499547289441011296439661703457290763509597336500292811073258270661218280616782409874039929232642441336560171726768668282840869056830325825844383397048280150456938026103403457372995927795472669993133713920599152226995452945505255543548178184982144581254823428672092251190068477944518336828431035902562830081185250545058246237057485664623356527590813601720774383570213730929355778969308927203510752766022550165766794335246472057874746039018441799618459402065543567983032745912039000395855993473951759542323737936169545782191113405080616626641843799858641886164918511044948241866979235733888866098435685262754602196167691953781362080815789964880691152435346351657458013412456385264101500348005640647016769330591903155186882256966518684379467235103736619351280438777988466410816295967017492110836792932946796377380196052777882695721783883637203912922135809926574665311839077235519337829244427301156142334127198308133202071210059829166814162836502551338422046077483499810431581044790603079904980208110362903995522464636162475226544595031310356091433697899361736465062272506689603870488704589319807148071540714567577106779050405617169425918255225605035034665595917435389658122878759565980545365015247688158325754302051586664948959535469705842705625889863342224234202302650036531245145975171159682970627306253834632054438275639681240090973874450187865885483748319345244803878514540025116211260430191033280853963952466187106763594317004732907991966372460435948194057626007125670012370597463915005850340230815676189862639236453809247663694766327447139049221498664806662565672276885090260844097220964491834376433400710181737884948468870312262813902286477392894841660394664749223386906539593885690800256679995546680111568362255011795357080434192698762227013402579955439585554153877050520448613592834175541049147538708161008190670117212499374734732907837621050844210039918868454019135963483224051960309237671046327483368818903858976092981734932107410358578008584507180537958330183611098240351492596767263229569514530888903849173228758428070784083747503617276004496721602229328540198406193988369297217859225716764227179906005192352342020976584347539027515588858443191971620851498472841305364313630074140976757080801002127704879752142322231411591697543162799012585460465426572108106925138961515472127055877388633773029956782486684163897997717601550794862205251033458071678250648659394000020713340960730177908767977226922469620173604325507648706151745848570213342664630347921330094421791265520448730328320739201118305582171760099984487285062555704629615189067282410362579615242259160366431105902920842605712216005410112641228833840731324877520098447241973051776954927608288007850584307684974971091812300746055583692414042585881132340388726145162442467755163578101916626809594504524418112483495961609818975284489134430904333725857744539412176809433393788708611816826598674661418377742345951316289601245165612539923341237103425671850143653793221002648603956913962094973115879483530441417451735196978111890863508759115125694264411746459296223316634592762804562919033382909635736750067770603879093801037061620466847598913712211873679028525850270876457635470234365989569769418314378278967895017029312694063867115783823441760579634600471677348000460242219374407087774958930863675095119553813928469895864585754397305202570350862540042954858850983895750727716977883226375723499505543436844490905379571605178168660362670681235621804742365061746754734408928905168276286206578928709462380210537508147996336666769875464896657374512124443570626282301182212454947583298306005859635701147181617087371441968212835281998640924094308521282885518865864132900409385824164673761584355397351639400964569123328809436492519761231879171135162511533805318856173652709806893267341059049242792506382233827146784229165895718698244580362725575170258874282267697430607318206992606250112461396592710936937750021227115225697943040121201497996519236442035510781638280555665760976037017505080080962497752019768903398874511613765897340734414000114817642149341467770023851853087711824359161121154505402422317003598650792975446171524766467136867556353543848642223656307886405226387749621887313403281938927953833442580458277754832040462676997989626669935540478712774383766519798248199782432098909454732027455482206200048043064570076071265680682713948908871740586334603432754037569278744267629299733610661439219769242610980090030777646213596652314316461290097832875086052873995534792874804019952657153690817729528551874184157831779155231876943820519018407095238326989421885010645034274992934622685420062204683082893652916987139454720025523502297560814935994332121292657622199155467225353509921093763309539443692258375031047185250502406962549865751336995980347224530427198641582510237703975757884564378332958221593052150772218935251255942346444231946003123255444361338573645885574112600415108982192152385124037561162135695639982753760583216088045942853685568585276099253953280182029005519549582703110861965981495191013478918901855877627997522190216138230853136548307845024760695120263729405004460161356933594189855108504553774543140779140843292887026630742511457530322796526950840222383322381290778372406406200645630483528842974840247098878561436409330325560427257573176308766925780870834165767821337601387974551873106198588036127806434867421405527037440454883240463483131765557691811527581990812464638974210015155160072526291074606092628029654719836924635654778854523775349032655655479776385318668041821649261330148937069736480973643813858233284156209193726843727318614765377704087623518432483178565995778268651579653156628518818974937591215575608337908318994059998385791359409702940557526332989165338077768796257104855858038997922790831137200226747963195585834104055325346675117514932392869142401139179117714944735703961135253321460091593209200038554965978328261572030722562826187075760031427862625152515742062376515807436364146245520394030344679029972235857881954355197104550640120780060257119687439061140995346093401788014719858226944488176380749175269163203229389988181274049920200864616546577532837555719944684218102696997247252485109723789787617735080018540640151366315919678425523575256275023801455585437261361800537817649521532204906766685105934706817774158602271430059868356254316469604648492401966153717240156672483354241983757752044101505039740616332200780280687267553524087452766970686375730259922554568874695669746237813737255699111400983496134348911498439658202953509025803304487900079463130494736555012256438206882852670281655845576286250834418822458497759412075205571716755891980378615459134072596549055642997727520477230145133249171400162510994829268897059571939468300477736908776728232120127820204370325246075709238392217877408786940643709850238435306468856497149532872498842716893734675907904354741829204795392399746691700575691743042500825512177603009897077032133578042179243325953178241721539593114914979600613583247306859119361683058077917681727720150191655382011165897106737516214756454965811816771294247516215631851959195858941439560694853185377779994002984960232509247081579827808796735583243866553763955822440532596721278523692793477899184104943919841446318911440686819911572448909037556305108275131333918951124156217273885144972820930253834484985244620655736132611498623493175379706235402437423737276351842108808163856106877185721499152842891753993342502900664280896131491363509005958023654139535867043705963374245909617970004678591399437677720654658547805355141086768664814175027974733323095573993509411788173372039200702725336764486855026708519643921777327281732219754212686071457646012649155635325674412077576080435014183226273318084576345875263019692403353122013043468312838874682956061349004904210643213781898649280595557254063765159795630715080651910868326956586656016169130448645633475626008340496762307528856199600458249673313649012564301648436276505654687831304149136131199156863582688390560763739355264142416066545239352672658167369447803018089790298951822724424206029523820475626179769969047055910278092509183591766736142105324437943752197561421154458876470517958122890324964409193312677674798798863471646116680432948889852264051252207789803929979314844131664033591663965278120883141863078927154823917208522486902269992735212622708187325666763765499310824767545071010439391475617473215247264253352152217333992121667163785822532636783083371969769733914148060333947663897747046951367896158641018620878900995691575241138777798574479885746723476663385342531817318205308503055832703993290293211531386178219894726197611063784675623518845385244005032605216902503381291772562070553670359157026747799100323119366930052311917865723928088665501051193176448033577963979796308267418715031224405346023623587585834929641393134008322495468292623478706660204284349709325179048250281569915684821285985795175617630987275637026477731062736507969619341706748302996282313412425936679521645732946467568221821036107738964798870759907738403531674121881490340368338789042762868310932675823865483305310010654056749318345780327950682675970405310922150634215229753677979292385719085112480565597393033775760041753038428883158466318712067439331816093996965666580978891883353962252719053338813329129966569932101579448500131983742912188263648686773826441921402546848113175443185139534988265504862748814378295053571073050442488836032087663741736553580413478835184410144996011637569533740279963676645650461832581176486898064682448094091640663514789401303606585123852923554498995865244848163967148533010339778466737167917896841312417309473167387415504765997655710685303456875808817081346866660724287798421429302160384319407276608927976202810449342244388627037797763729010290053882659232243250114196825188818811007221708969890819365673447874595647904703338347290872897334592199906237019337827772374158883535601246666540860791989012711353637265513257899982376856807760037746925605015502142349112460483765401599119719677696751790485464932393336672762476669271449472985806623275234532844276850407439685928276650529454710073473781725605563226432641381129005701842061802444764467803925503169933095416491796026591280327856203130476061055888916960096227505067223352771026483074416422003503788064145306929762350914533968085885246008387304534230969800574112738934113478199185252387002353525160410389781468792812357814192911124292614427098045046802948974070657965155945794814323422659983373887927620698420385338007770965869954473354543974626629047857526553571906874972968416873518460810940602805838912944976161352507933603366847479705475669900531190561811185429644251779489410943222993244364541267578536608613399349628461741129200189844340180252592203926637120336483045435400420036771397816398580606762742043398980540361359324986573284827868685075735430020366743226239513829083131754968032483727056533114205344457247967366114333166950367189239887351042495466919596820597336274208034149520429377499438698284347312960415467502246581112058875506373882769323862732216630579495759026760434617723946163151959873705845014891625883447891344852691093749485404435548237843749586162014990386692249786370526283962490062357253623863561889224457407852771986050825684627308220819933006430969663238601695464193555335828340645759003336784296869208118150700397195274756660606657650758066731125221472855875691184252876307407349944681658986538951904590505298247239308529721642366067918606176693973613875471041409037261597779716488113580684817370783254803199011636696445266571075492384642009329778361295006072771899428687079344574587801979937349387417989302135049762268905001140632802653243521675572486547949128063344728242175195237736850507833952304082687077777469178391026692800036243046120475976713222107236784272079268117286291288083216990385529156136025546397717247896315195899989866203052146189267798100362184681416644866735153697300096992925692318858894810983057109986186155088523776955334024605448798313471439951016492304179010390347680092596426859007676852199798467508204604809233671336962375161518481636702770605521022861175118741151928446554851616568678657829312649638585263489040897018616479662214858084923292103730411428310261439795008835756511010085614564224523552357043730705115745869261100830108227987077723279173732811700782915074046238960003900696755993670609492724408248806121277285717994796453167097454315643946472545352814857858364223688976466043147377044913616808614565100739770956598310444351580393716240894059932816706910568103954462595853410333715377163732002871895984781903818922494149385825204181139165542403083452256788504505979396341212932196787176501997125601178669897716964039824938080474838185428351798334552349619855964588186391807924173413680201551072795476060546037963160927647366586898410058847677795572535919345501174363966354063074908200799699350397218075128313265317601508425412121187698590368657861542867256386965344327675853573973411964538190088686456703085143233632906294786849066378000967098525892922650063272841505517400744804683693465894125511558918337585527848775928371469234969576371608491610924013738756911312137190998245744842901852026910934736625325899994031699501664519853060960871862888367612506321892838494723201264663455487964984701491896002122754842697413329492863857409092227468586355304740881835813218526140730644983607549726487744764614311077060953174296867340280880483282318757119160657252701331797014673445919056397450825626343116860178137942596452682459414006839303680883933203315424953674634438887690132824501401676328398621554509377458240092474084698229807795545417445035994440294870710398442100208682784741477375576675066095512853395154503988912369883898150863429507626497408234494296488818533269495203131995902799091394339646434092432386893920977287996349555396166608001844287591907474451527122879349402138069416330327451771110284982184880623587274603168660829667467090746127815937229499253589981317306387093792684909137627778432678665035780024424248187869903530377646997003597855871337930728330185025524005573005870744055931299415965876880425030155748242685218084067774793256424812462532506873704780538795071410187592274862369636444068239943118819693527337741739152809336453827447703087160085002645123895554758765791824294313689493650911526648807419092687034596574646127287646078254179796318561749809389583257129422866314286491771082590046028399615147791433902854058817077091578522186572929923338355597468108291998694938501356927352219262790323960756117199571457943801313746222309345548859140959280252339825408045139190025394779086790931385438192121317972192596013813928628549074524343937863102409025197746339118015581061292525967779343619102407417925086103607130982063230770823976399741051267738746205266881128056601117721935483200557219118190848295747097087129495067516580297228378641340348292115426090649358308882774305341368139668234354393036971290421171457519180679976985433251622833297425062804120510487727228306712761934422204169925311057120482068822296316675316968139225447406737345074196120582620877097757797543392350466786404580447018225366258704795712426831848634655437753909471181761535179643035489921471672721431929455905795628481601056443047465140799921720721825837372996125495569396103302815293589333160361788449829233258829590123812699151421078793745313321941332813533076706492687655116361069990416341155266246668146803919894068565192778172866573706694508939826177477853721916338310077462040636596401064500509230308793603680993705359611354779217561432363392264568830794627955430500171231439349723891934717361341173738528535678337951278826847012203329442317117931657472065244459138517357433356923163443258793623965749677648741950150509571598536864052357694262383425205329415150478007910866064898693796514601320850093626594797518408376776408613383316502653611924589961582335029996723333947645343359075011917984292849441236819033044996360871018522283555766855117504592222681396085808604768686742011830269513270727395181536275700072642783591889681498856670930616063460294033439630856595042266231188191568424893228201256633322497855521399130508719995617450109758171571395875148133930999221354118226466830103781623919962568348703994125530130612319723771791594784863886065245769292256683508590111387280838108943688663462312430360463606707098416603218739430205870295653232723733678359495156226573211616703823689176668127243267910866041335425580596207052258602672712471719877295704821057943238560800804152342349053624970149999357226664674135329697368636703707372625723290350209470241439966206774164020596509622656237071439638261707131147148120049727956542091797616996363336371233175446160575148675931093925571046758756197657052260327170042790426848755044352606715218706009339834978484043484177594192874502415164751871213683383440655029175672032197178040973190873040567075727323430991018305443226602097358228735659972356321119591835403573407869416271008212383497146270031509936901929746758858815864963714987348466560796857952091259114380782334621535635487040297283167142192844438880031680916521946051574012542104484302503903497865432710628803374839213074981503752807919555260008356143246747305040624120518970562483143911018415496694740846086546279361575156062286667803131787258252541346294557958514982195876362636035008501017921420331982372564644913313022140076535793240299932079859816586053653139189274464540543800081691380844754632729897579350489627941963926998989414225613608571743104129943496786955633214527945894443104618094620489079045735917344314378701229445947582596443311452431458268894049482545326592201950951930795328252804453089243610566485553644351414869344580963885183319208563885361138808444285412450391817131532069407644244242983754580379376271846412604354809594975407799442314738530676528060008494264359545992179891604300821168799756344629812797528741318040870488773996751175563763477785067660853511585208225318068409659948161443787626579142374866421297989073779262930110116280245816029091615351735378657368567220660694003753571360070429130707570177587562509854314437540256428951449672964134561327146317129757602228629961943729447609874082951573882612901594763581135907554987584787620736001843855909361182403239647335845160402547907267530674943232476224296863975343580711514702918280775631130077552281505057236835808012920630472300973144675073883305842096350039206994620277765749839432550233008136672526565122069645587756635937998489340990110368637130016987241940548472912147968542051787382869211397571375483523205459722135431515218660873202577342357251236408391773472804511031950849723450465597274983654271431249933437956320884018959115114909923210946254948864577562718320825793945900291070733323291178119890952591476198604295702903334853894792849764172420946308399822868845600646786971885099401402994243876370830312023038757689394570514784856490190151228508690399086553462511537599042844551921767882661346184133757101380691545763594186968269170070775844305510869409483282205911555946568063748790788766505002014833619555588444628603081806123544931510301677110588199806597137064126482717563495436302120593473984126803991140727930903530767225461546093471821463466304075958587224836965555166522150064220758618331749990646671778213906697162327740179885607318913042504336755137542723739048516075744995196538255672213302986097967940437705001369808159785336160103223379347694321125224212846639654115605198757430717606668349675699030158216616436238254121595179878896522556258544422879988070633762408527049270144458731923979172717545011434515649524285333090408580343347130214382837980640403228920862278069271289004160984483592968407449587842643928415009799205673786499062726538762056504602648118391880444645130714058683577090700641188959749136394783931022569876986352622426904679211700228488707125343984971130157692789230339349542699424336568827920225752743166308112051690816629811390575865051527334295059908814885560363464280671936024815111275084632266107596938797870549909760228445757116663273155634068874111640801299248610646075214226435597295899417815123439602128613707056311276477517481294500448238480707361683915628951863035429225177898607283649797624766237498695604915353111000531100582446413084165945388744263624994014822575058418391784764292997992526148060976457022754592689935275018738809880660133803008231712156843883223411226084350851395787522242097778184557270320225431344507249885023964536344192046136335748973004944300360760541461589902263666566699583203134103575409671135628699388436005567687031410753663925318218142928727606590396105625415679878955994853662029185336165359120397267749144160684213937656730697734356758436445071514385826921638304537665562415557110237967996688321431071523811719690412640891021341929781039360561526912302113675849833106861683931476096720823237064891903264123680515573685241475763848420742611839921740021065409187726854182795549467417162923964006758682662547824482407949269324664113427370945331072282859224250912610639696373798981406343448623767533738677836910146244934433087327482973570118982429692936994243468923179565098859270702569509287536806829036981515520775689754591019452379826323448383124333913743058406075349002361362334062006761891243526484805987190053900448159838999495722637586394042050457152020981015549767939698340269395113920319799009210874061358676130820426941562450206518421122318184045859220739548961940702110648714712905899083687986773459583064992078648628935392625786465739436243732938877947669397882768218726405511761750272294570845461030922911192011777529836976792536421223244563602528860503589655071677123910087139697486528726489654948256147982550764245865069200892940271964712752790316255110031678688286226919766280760484958964475613520669234579092481511730417634652047549721717530497728693067939778072516549033592385641511190544860262467926582085990870732661544020069544292544955057598620313840693228206635896554971368541441513638597355951397376916863243196549009173778163949653432478628639948351122191191851976268395082619333571462438085058770040224479249546210594441398230663855955485298877013884654929725157017994109998055915511488901421362442660250252826838797551797711714783596790051602181406600977836238548776662229055402029337203727536240465104703856403430960852690363244951203952385973114836775577628087235790691668678652808331006072059671042474680923436834055737152741083954739022871181022082674928542962527294063822888714673042016165350173761699134852318775502217740169080584343022671970123013435786326785597555818443150890810845199281831955144204801805435346095260183122778607181830997975909666238357819281388216926232769339672269588952824303786678355911913178523775165652196085903304212928312105447084156710610419504062693331684048213814366731569339607256506107855620120303795867052628288008918941545347850552030178272909287541201811572822909296883766972251179303033306020795998491390582680140484205478727250336015033821529706836566510404196558897360090272248020761819598527694877116276283276195653269355656582481804010655419699822979283309679157216509749839334812619301394305164089806334628732928744156384437551427087588015942600850953410192814756872322769664204034272445195509955173045135628854021083277837616003572145466255718757418161485881115810478322868550982511349368050448063428459005145840966092524778832257622595988493061673951640020891082451496112622884025758768831161624860376792517313429648485079997510967051836883636553934900713272665224118279237553256318700428598113488148700106491374759588083273925204652021147076495333016104868373246221738347244317270132888731340861369820419851604203595199067515132296635886206102581060819506594456606940771101060587468545117123999280800313304135890742300596742174881405753375579819204045681831499802422344650434489207846692042974629317863575698920178000890503117170427124468869203566798721924842118827631281206168388139811713678500551355139444232318170011112595232057296675126307634153119122924404283522264771743630328270225472408180965541143263221709788304186337391975061795256789826895650341423212032821294961375304682051869266533329814475199241115810770974921599050466288801627431307579474083065938649773256620760833234167260459402342796616404915586517329293051359299231074257209112354472568607087864186732011138408136837278051847683867702154455335012636163129808850058548238992146978877393268819521833249717009543279192425092096613560989588086024138855041686408249528880605530008232125003815313227907069927683204115789142851465883450005622178177306751599871582899159121914324663144662582070074894454710000446058422290613802348986548193799449446286841200066995294295305391851498663603416149781498057966356280758220230890576065786231785164512520348795439000583148238619945183337251180662318068856998598975275217198184025985590212545030415957895207698695320620372185303445237466579152191928510967567306721428245671031404348863706371920138967432947273882047841733446151684632013407535488638615028064882204780125064470646818837273692356095913042254832868955029919412020013405415139350021923333998156821360925422554325016862100232161421672379925911795658180383193184258039645501486722702597123689385657407913961035779383328107704765684054827363194054040248381460859351417728525351751337801283283705035769626743505206333242361542886546754838730416525280061731071489043223265232590258458110255420236472259900140292630483809069885931166073025213506157992645173608225846336611543881122109425261946220421798952218581812092133600811224609182772390900229623764956055524913441496012874124657721363960233211054438505535722487510142421284172540621235888573790386453085317964028214079259313612960561230477756819290413850026569498423810460522476178440624699606176957137819634120738841101512777777104499530158345415782485410597907330415089785782125636422744695912215911940653403985102775839691070648714683833371016378970031094720379218857643037268094359920292938723072157977465124026732291285064818312838840395869168239525776132486330625884980253119978093336156137259789520322260830678147558756555078963744359643134074241719311791963047011219698246316621621629700496134648221936443389746002782147398688544162589305225902490786295628031068161546875146981836618396078417990474541562401429791680967590599147137650161587660536808923364262634627988284561650566500187277089849208283872547493915110311882615229112422552805579206142141657041666581549130088181227671335776232051104336763110153673326861267815795560056564984738286064304818331183447963518936249683730858585232094890583331869529205075063272178808769751188730682296552412777682453668865955842837450699380479919846612401695000405329134389218373339266900802572690757134033874957488974921989508909560689483150987489724129891076849020995386025551796083551716086323657574075431195492743502643510976176466570336892374151707975368535574491364425133073577326027155303575946266377719873983319707545973434398344144980007412724299506830974073655413792851803730767684427782105540819851550370436515590813002392444158906173093367326971287083041640970242931440756140460294832725158684571476130591349345389438774101856744020893106306036217006853148590616443025373545656329964607380345678656434039913251180379221456085214786029122691270782370056357476232106812365665072013423911958956939863678031929859130511365185345663816527765035219123416761411775749772472060699291967221191350895209677553652591455697748952650635544379129976594683100013689758030843421138112423599868911448867836436079725771371189279202080771989134231640084212541084056561769238147627462282785042112709203383672577437401639552388376946771933850702306842620207704642873599500357496203790306017204313458613891327717710308361383810971378277613076212669842569571439552580916131708190492115969159652810339106038619789193309241719676919031234866758675514583274176614700663187578047220828709074903852964638142944826591947450510661139049866750744589726102686577257857922235957949907355926954532612587605202184595690502507929596344335050755478702983118988200970617564992538295580372921106286865730197869060922625409588451656376852040418490393103644841683433954047645645350919479787167880098247394473393145853057122652227911078476170282202023955495110362927952284156158417768525360544509466770443158988645220048891378403181838991533395249561194941654684163341827990454877002914093751251697354029937951483199393469934435553887295543765821737152219691408559141778659492961313346312679102743712731446506946622949087304140149687775276599674495404766167070920018950063169908895630720475570109498792398136994951690035263739478684506581492985571797040053536608856176840365901768832465949175830109001101553346775837545188627615418351552490210609975420303109615192050814730089678715613322230430048552093912687906366821445727569278632535490075305989013492624686335574486340513413074211814330278081614671662361568242409050702547289710853274213530945217492004166589672911279043805387262593996517352883405887576984736001223425437779090411662294505643895166925284705929646449234671568974596419506468901965502551251869490480469227061660087387992717556008149058115445332486889202724599604187268713834337245141220633639824287371266478460393277311591190530568294931793166614591172076659540424922160763197082925058368876806187692406388859236799312037731608088785487312091015028073771014170642809218775674113664089018940261743934592947809974179511193330429658739971001909987575970703619740498931853774308326192585028576363120097876003706293195077990383439998672849911181375255638537121233447735780560896006692529778103915554594942575233372594229152524660778373144691703022732821987135698422758356486587035423427404209583711129641647050009272010337539065700905643291136345450260000181889977035428877912007356662439394943553850592671520381072384138779266182912123260013337965625170244876065531115853376508622855779406375944907540825537835363560407512832370809674784713860968173437059540179132276544334950718268815523049301376732386566513823400210065959456264830230087328137747468909573952340744952700336537886965886060898309636180173532025130852572361313394632998901452646003110033322684801344610265745686946695609199625173897256716776987338352532997969414496109294871687445867020911539558151654065816148180083192163564584629198670843303730910157869007629616721929156336403993823875402358228842853501328045680226440549051801406283440241987110345320591386363460437146366439463102011805712573630282522174364571775857178979491411551892498282084632751433682508758716738713383862484325845768427700394985277349646038323768000053630518697450772013519653140855295097417150898857814528005916480550518087806374102863224754129446224134297910211874878357302791348067474792785148534977743956649148834398819978855141603349242232090858391217476801456563777453278269057827057456928525409152885212989533814271226530252996442006276175275379634878239894644442487851321330665593252144449148816395954666994766836415108386223731666550169882959260524446647756105660444832524658392181547074309353871409570527126146380827650227212681764131352828410725790612925974678876103625801641617838403520388190017944802492312119536126566219357857167387058084649974499567947194980744850868367843657128723649954081675321214885030690109310525028615924534250534021826120344731837779214189700030685542620294969895089719328890987420802700221416221115402933735328308691111357915165348807570972326538923252643279827361021762611733313079218131515167678604153751543516566812518943792056477320091002494015368874360519251777137235044617835192646594846104418283320159038961522641649877541403799531342033838882736859048183421487866519344591919521247332006647531336590493251835127577886124022073209136397429045424435057419702584529716998680745369941773653054289671200140220914470188648726933565356974971124138307299204518571949703818076561077578985082346382383183664176176782867860948594930550673641945159486972233213019784442306614761113196674753561183835241674703213604271642463046822674546371770574432546273959954332829165705577510834924714765587138996930706244076164959363204402187805828721834055835878729682116426159230684693713037619222610427158025924112359901234011593800700006183899419172470593183335245361213789665049677381071250173422049916160495015171177619829303551458459952754442467838034350672787793316918948451033470053338844879041507442796549336639674331666144631370505064621262344917460257508454678222691885895117390752317538129394503850015578490415724145732268532393615148466459571776262175358251956067620034660852490799945709719727580323953177340490299423594829616166557607219718208767841975119162468248881249757643007273589353622608870648885914278945607517999223908879379199513975115474393355323320172265235441703404459142305708919222386168103394783240446064222386826165689763434647216506277485332292976798777320215066901275800258854799878141386374419561075432765395956528304072466755984585425971524897119478983741296032802895214717413423888845921885188072013259107133218008153136161890085204662552342361616589381892630363409148510492442477469396974979837706200410598804263627599880158934121055583310055051035733720443000864020705226726625523833294405437923556424473403300023939880844870238293143253234252428313077403939208320029623038422378340779141251037716089429794870237228676993684941540711416759923744348146436753278744683088427828262728343546223598675581038803139759986443394153742817625604796739617005755491437116310153661326228060997152113906032221624143396173461736898531366844889898304415660128132430330564678975024302178286941539929274221352991057511448872278288679711378792482196501211823675755376150166282870301029325738521622981179369341281167199664521971393503553601718988807424572934991549689887378858598244267236688424331788498448144759050049579320383831902610650733734891134059819561321186395210098182752865464307591652016271505063754447606423522615851639753053344121144772722639244225137264300091387270077891561578976725703492044923159084077972296522881642110901616790227452117046090926298658416567955186998764086260829776979313590763100201440857510292962652675498206233053227520044870618635985877489351004529797346761783528156504596118251965714079797735127741532652162242919261438822060805074414657089354783164196453575668506421710706025645194399621516964144991785833918868396910317075508517403705323125747809652070238828367846986627453202061922398396940894532671814261710399562115990725300287025632114271411771394588167218282339865572759513446741820737984133619989529541795237905901896108906179077299808138866191462447945212817215478582289307463017895584123692039964663671585221083829216589877490504010048529220165436388531565226198471400060914072350637802406888447072175699914957517932209678204426313351927629971362162570660338904464979181211580635462320781408678351287990084888101391369370039680910867057479431502762848839870637335389050105033396488282343393700386958127501690115783673470548177590611409527937016446368193199876854449704333744302439152431032886461382978211520819463243920377874474848925614416504405298049930466961562509030540453967424644386121972710203506881378444737806832495723859900499350588290581181528401321855378761430275228637699232746385625579788524892719620683863213112715897264799812646111443367454812431337359395872768197236965451168384557906891447364164424574887969984720501600082473657376780656981940143357053606436719609287055129344838656772839995150045559069336279927512903322544452388307853485274751160415308353464095315759616446658101459708160016458134501330135027709610025814185499394045015255478728014355151179072864691743358547957832010727183868386301105204581662818662687591178913496514285534493232119626492631446383657805404580445225411339561469305224087902530630590673814919593206105066085897128469413351996390643330583724224288677723640858935384873579008373983672555965762732713352168655372277340329469791095264526586878090057336885340780100471612918555188339276169124021084222267767217087230063003527933416978477872910355639850275603198935547673380410744421361054319735176098758549800818551379842163447410510795970648244749117301697092257374733960029569114762442124799678352755854855763690836617529232580434444986478979150943546368194320753061707372736331499928528774765215647385619469905644432334309456558176354120750418991886802792752390705534716793901391034138577470146251190803056332106099158427565186741841372433146751369106280654794989021645629088416233562627177420002787981863651301871075486669366986394699457432741193368611245640822683198333514661927715166052814483988166169988645866684998105181715357513179793375065142099468351934220329259344724093124023047765010328702359778017401439534223225804697380914580973813584069992521412518052786364803316686426932791513245991559701537870696025471578158977873866946468758716644035515586647592884875536620006943828506433199501680384263052193153195354202030191971673003820497574602267578116399540104486968169003702068488435967797817759856646846851215681482304084080039756614648092704795355537841174254237188504940489119829482513807061031178206631995015005190484079255269707055749945849848976016677683030017510305991794700050435867997818175416398759532005832510294472145004061041902412708056968534428456163782563674081192232367794824632555280050508013443444537810612130756056449545944997673155957200056047084464817469618785367728192477283965058721428257245094448802174379264054827178550544650492094551732683068111091849098432695428079701769006006937073771626822571037168766970928320494260743524008159291117973072940359834418493811999532791972044191237068891277763603475284714006295743463006713213248996329518803399981648449398137872241947686827410901748916591657607166911783923200100284937643281784386419829487216020114170127824051944402835882255274560428879042908477504691514344361953108697053816814933245737049588357895062162926375726512309482770201304107514990395246901430544453821298667958467653292846759029179562493508288390085703466743877311803611485892285706373735457273206122103172832847691857845711050412054582088321104416539805620609053714167941979672378755258764807715011499941815651211744484199409294021533302195232054517161667499035150323475846126041536779170060675560892946590393318294670645168063930287570386039402876581895401133002169580372183396767922609082398137104722643112376467000588763860051770854499121004829409647376093973517693097832384549676440514911801528564512413432121065526674842694233358422960259568705394267770735123868167905382907543699792059844222373799694778887162973040443421386523879638395611846447353320464312326015236656812481109438255808379054215553538059895931816249557359785775282578060894434891018026936119951970985423231960439460712531226415817084346411924538976112394427801620815209722197198214376853200610391160692955701747036055865781176156730876970260593610173753441284887591222585025713775079333048946805281834621047377030528563122981804481680990380125962147547705731947717182229502910688154730358695021395039586850489196456705465364660807507100155826086638030417546641589226977639743871206775507429830791232413113338704129031451888295997103610714657160749768740642286545940587422522639202082094037543123550800343874359893129698026224421057540627089787860979141302814913340985517613060547844090666647327500252037821573281416983378369983606461212405609381722831369579681091547235478951926815088372218551774921749079626483335769792117185870662222969256515949720098926825649533567429545587831749822069215662348662746122414201350254903744349227604138815357767761389193047781216787662728076472510833766510231496426666937717564652936291906890328630339692549799803569670339623464895502734366460806708402731106673221595721960346651488303676699707590988212255899067686517318047301709640305083725597372296513901418182539856486102668978715652461311571352754750668762151239966894996845566089353159480558088391504024666342965540812832678918852807514303918114718511153733631373342480490260740301867820535136247703074464011037241238041502422180083246946325199779822328346925305418409894448178041257966509551177067690716197845625300127631163722949672047723020111456617333279858233402981079982944675989700136399792338055917902030836802333763112673896623321524931666770406763656411039487791308323274533503582920358427639883444616499727549335639869632726660095778149795094511430531988448794695249964141043499934961707176818331120024689454749144771249456315900546445929993391091210362459007691658314743393712652568498892456758822763091445847352994465004385498953284896782389434336874089531125245566925093205087958436239493326412072901256527021642132843009218985410059820842427308186596197237510210031257250462058165632741045975393572222417346719177642358487030335246600202559828358068977275621876103139588011256836816498675999969005828513124646309149071666547957435497972906806662244478177514330718540205736907685183083522511419805480345059880878770056077229622094984207742949071925441674080893850563661441244137789026526568805874247300230643127768877213984934992894022592581364899270902883326781053097961153265174110559597760674285904240112619282231647619251223693953346568702627137953254975828953035594213500917332793390968791604860829985203594308850208287375127048102354581091013535744777530991795992905873040463572378278794588070051400667205908312388403576735318052672662244361031096960005600976762120869955413864805616544326128168043042679172600709669638349002385431903996662279556221428225257460771064098674628839085096852870345459671656627096393525226643537635732774988308875488256003487433015694143798382821870789833774105110805519723209814654208110325866900524077663588690488480327287297891699665128451086721155200188080450387691381452970716116867219869714675306007825375702231443480866837878557515420623601538456374704568590243227523392801802163267223109604652955379079137240417872925665991142960945687617332860728650810731521702352247594741846936140092727590973450414802419580573286402685560292480511838902786252005941624658218727578268615340143265655512286169244779435122531058210412296495747674029697660481922264042001435546356356087483961559170236253642155767017378957211147284701106036990352934708185394038309228928366075953349933240918146885770114262225222708622325272935538405369261231331374502492151812395664841503443407418161871163139222396194564754087280957810111922709422753252297076486089084633648699132867043809527831887735553118929180073872327800654289369323071315940169430110536748178967520530033537460164684677880765419528373572414287916674750398545502682977103080547397343974700073007616452413412632865319296439591490050662149463910653907613352430150585082414892693516737426513525838850873873055133837134432903014421862855883411920574287374639643497037634220520772481169286123402351527578732812816273587084017794033292205693476322431448726088160187543269047156841182154565248798448288287880331148013800442291836577838068973941660832751164851778387691581652467397624880636056200579634237235754520687235896460751777602944591013521986794982553007500836679748712627716657537963127285436828196443603208856011531769782652336744614563637776097671319074961498944274273145290075992573448266497832858117516688062416398591337526028282825865183152332531008834036248953392608813187802076565149635065576462622292176576980448394376171624457795340496949285128701448465538716668646088283200295628419242524085041814123755405110674532052783041973618048977344493222222555081494887153558268355709451026908153708449786446958966479223067595997647972059976296526655187090286273047200567771193754616180746464744034803660423865639439982773360907037872909095021305060097891353139631047566720716869070768873222761582235491778873641683890628368539459011900823177411392751850301919791784126870720367527630053901393349354521529353149944240181503999600159359018534333385403959912237407815723002180276308615569743037808122136719828017562471611652663945866947954719576440901565276142937727783273270193693416947861247934912570194775089543107219603447535484440578191464864654795449870386508184390333111620842485081782686960381962229272167778950787908460118986309295376994632528514338268045073491091851704715672419757544046530483150257340048100965905997906133944286873096630762725678793085125729585818925632154261090100067620014828511003430026804096846464961346778209601286246988672016668752132076277449567893805607356783140507488767689366179715875276311751555969959175502651486228805252809247535185816396114776437727086524571864330904220498052357940372640481921458636441816275226456130432161457179755291133241824311288498583808964798944524655281989687813525168330387982118540015927804278430653678825130433971278004199824193946871513544830299426182082830379089056358281924614398857322920623350518829021880079135765739584410414011567051323562330971459288558084062793812371837752639445417301942896135852013468257869118014326811505890576553573667120975192107912435368981985759880770223959611279589952480971590145428472273722814240035970672285089120483094118940216449432624994383940966254075560135109315554617431287731866217488481023423015004053454094580066146886627802037205213621525604924412344755055544912926212544062438061464422511220303276840909639349514466055908592721549682378393070283123826580839706361561601974501830139243542017040438994610352832211554768567437997606624046869248340244013517228723903294023192823419665933428155068105473220042267776219400030218673109759080228879863551640783601349460319394182797289697934480503290757652993886994658219618498607682635361711913307660606013071545615954303590926748060445198482705644100527575807730596074009162782462926578750316461228718775262964455478254642915574193057198547617306325976731987207570935482825853893773702342859043589107606777396532718916923998144819301145410436404159108383473849343021264727732366238463307678172716147539078213228015052707813075901696397994825180127582397745037769017209176965332191708855740131700934687988698050939536119985596812828953007074309607601625151286053710362847479497783229802412550766463845887571286393135411261042270823661954176461504690192358056318363116829086679421412293044507834547019342124120721270701082393136930662810671342232084392417183181902164323110277331564301713099307373384297174144034408123214172001201885885252497437372913090413723085613267168132790305983247217551266952476823069790082869490805588220225017531577811451293809409450765149459693426622372321644401806274272761375418864503695977700068402192684217978024287161339243727452447288519895824072339405471226938651780933322432605051776648757414400247565308093703433543773841849587804301703077469607244936704981752657571318520337049570545071481584381897767468762996187109786991918306412916595607030268545076988711318530374984081093594161666925345009725115244194688478533076699262769117213527815651698138866356655022652800928963582638719670913588220619703982773539499091132693821749665175039155375795857510759055646284308798996632798867000372280400963633320236242894123630572820746376167865024673484358679201432317946515264425036475540793391950012517574496919154993799633418402886823927830588827903134357902900657313246427690626875596045896958447687466066015401273909388844626401722411743523279051141897457585558930911012165524609806764395052878118957551464384795279513867193218633338755715674977055984535945273154667190981739553288472674098952112052754672110912527906299539134626153072970771074944596518929946759805135765469832264268096013335015031240077740750258544990794500988568019773538371477429764162200104503429831683008382608543325971356788750610496408082841554005569648084295264489951423841218314597687103190180228997413352019311851684345171200720834404590484456862666351928626873182235270956635035196368933714340362043624318379970837326476771462303330846612961715055285971507686710549506521526861283976391824581812544931953956413919692314986166278721026846972539398298033402653391564383815114304687424986056344459709331341350646922340801468176035570803611727048932884107323407797736903159031186980815949051530519309444270195377213689458791608675949526860673405084971371480854560336020287819886056526304882959269874833437413107703904237225990171730664488681195583055348063602836372958796003291521836015685598362044224509466006303938060850173515769329360952500309648923371014780816936399730481090318899381133614589700853242860125845615661899411893130873023401244237609535376680514065814220735588228104043406288936693954830304489387504412588911634209396669904826136969669290602625999602321401064820688225757531539020801916848567680202565270102140723424415655067032921518825332716062046825755848033821922138818492577281445409150558114233285514112691286014537805127018896311213654693013622143418410377421131180469696491284187112096660143407503692443298933310748395555534549834296727678858786260996961040258478005691694916614920950732103895074039308880644753663125180425267030432141149853767735303297152418364195558694652908634365675253342399191968137620237167530148714599567286784654506903558584234525869588490703953242963889883862293745431476225510823980689405686013127592974531800953393698517666973815052407156612195011535521506876985032792836075450871154358592420921758084035804773346949166954594738590480102439561545952732664805443669604156917938179532581677107484590563692487289735606260620037560875490128505615840198596962912831569586665550378592105437313579864011378201251460166576017598066845629561817801747814207638652411332384461746843004756956014469255474427780559728353657549090257978499163476295416554562250495126758089690929312086454789576136584855944570047811980276071566044704354548555173394345161288610661741948881520493569035346628570408423905644058394691029083250102042901215756701684811022099301103384381825109047928912270268709043159784184972303694943952514321956232287249716295434834095811839780037796315802783836364414129934453942379667321391573776223943318032562488181537465314660192417907956988387553094186197034905845131294164346726251592246729364535446765061628678671184067591988770494927661590395076254036439439532788362978175455133739320121876731200510798855465588287283097817227585677022838338957723009256988316360347466818547118681623612974303130438230507039894645716689588171729381591455958005460946922308895981544485102788994549578171565299293958512384897072405454312691892141660608196905137950533783579747435433682276981084452424583610878895816807824353055813895245812153643707259190452038592369055188626329757432651718714269572797698392007325576852520489188645964925233686044411170790342811847826821946380536532505490099677094776661335787358530049247621592309379081823563804069496289667906899151113969530644061118523354732382223880135623102391329739060364192177756142186418753647132678950768353080626819540984535568836758584261985916361291250006609282833593125245731139042479421021657291499256898765184937191991589634347306198793072091968697541316439301175466311695716202115851424230702009751270486208092833617114065278010959529029336113196526739636772858923955900029093411474723030955951653268438556015633654781919926472554859182649858559782246812079125445286150675408403036266007053681737792252795474206592838848485919057397000462517652930418779417774089208566442491773578245926933973436664736850482542545118560768539405730939412549219734288691736255380483622529178866837561783261040890394047736917320182788066760838842125769332072335374849928440898154165291633667847856519732529097906126862536085384517779016437176362415397377525012923156195961532652420343168028200665757097729805934412365132850685114674773267883441056539922555611953531964650253882023061755019865298824582011011246186585459195282220580946656519834613766287049762833652937546898542876730921096877501372429611247847089771405149281122367738544308928382835236115351163290385162585912421191087115050205357484727186043453890868780868459882261746760140265226346559177508452278643755629545325092813705950526493660009602750931103387674722673146269319022432367130282105746664758868960595488289772618948733306093394329990720808060101516554271166670539812840778770294963700582190693812456760766229427407242743988580644579796364151957200112010373426758261023351526350570189449308702579778592331653514142915647516766303088364939385784908669335983905120009904075066855673614793327370160947603455248252956329241383085299570966643808311826844665053786266281647716852489656228176411491680210392237043136695318439050136625726761862777929015190995820174955558165754069917662533591440823344688592853532568834470953148397346426483316872805876509371847682761983483730628763044219819328577655666110619272454157383813045533242241038796445618496589671005088462709974157725774718704389964499263613675125782874663705289627098722585074796202302671543601514483237797116066068885983429375334601708578389270090067398579907286090355116400114045781634720884008937062395704382815943700816273437387453632204824207784082329655672944019118510540940952246255890553383535695331195068532329756824713749263592581682011500543008334039637609728148853672213811190062491739241826355061046176704213503823281014675090613119451287210888461164762860698154019537790205273620920754663829751494832569460183469316301444731276739944913068912443804956175226365213061248920170891828808580637441817273182007986773326335762124179144689978606983081757495881023066901764830232420457044108954736385967935412866699132502835947503583371316159291114285668659671815706051266196827570759604669849980479267336592792186281455014039493207768106047826123231429410722366799165725830530163632031795907490816842839238567380922478459843701190923760632412602797501815576723555641094767439138436375731982505123668383880093275412732873393571404409675835202438752571856516230650495579102416666808564224369986572460202300262542747034883273504140019502850310427567208850253968408556574747061590609200370581211378017576886304088543265288371911975320663752411115422841621977704376019989927864813512123030135636095255454157609913672409561726940475583133480191739701451168721114787241433547851613079795021501745678473311658267488748161512565727618682780691225276697627828108470915375380296000611185160261212000336414213054476010531499399457105570017754694473853974114690267994349406308113761112958196524198951813420754114218817488113743914725168041797915952244881408435843069285387800481782547354348415891066532935393606877433983461094077420306008812490177814346005767574271733396550747569592840511872210096195870003923961572751887631119978281176544236373495248173705114181899067845876757218142635958661597321441031776783617894281965705653279478248189756647188828014605758830194416988973676442766495557412547876317237679405307975187139538850987085686310188641270526695924178345450179513941951471614246053457423491753354467016450532967271545776209803259681676116115475057175272224384856838069942555112031399840710965788683174249268386324815919742175561807105768221091120561101134441097308696210241067649511084590578932949062034922933651010127236607712262287760631376433496184699320516186459969458733168749519857925164900118931759612528268684612169590896950223063792036739052886124971457478921875956348773683285612716085636857528772913800565831108091822767883464363019349443211430583754886363396930195702440729479468207747827518483630482916081822612957768250542407352688988472553493458256560300099549115809602524493056316068033499668838391660831912835972515078724716434723388673331711621102050401062910678819642830280102929216410453052250727681450261054061971660136975040390731250832633801135904883006094161540808895574050254826325347841950035590512340384964495417439959057426958233688926262253265374316975061722766751032592784305217985910927696490475481522354802922653747523680146558167032120545563372905781384859420678375578180692347974930227243550182643473137241351512782481797809755066077648034738903643436674611617494171733900682037618686454203531214366189875297326941889240774649510543422818900771281283216196135224848282802982617855698000255234634678059881532367801701527763568666132777171319352533477452753530930124105001798583130565440641536947115540030633471157783024793799163719592175017694411088639066807803230322074630718388038776929538955325610444308932517303697252057878941195084812837888493606462863506384414756495835968254836546109679936333514318857279752305411963275634372151714306027267415313022315549150874549084540711066555121978082882043451831364686796439687279820989048358473188752049293258387718990999854939823092094352502809992836796540733933736864467089302626932737130584230464289251326426802295390005904336256511903660706573390822776961406871951689496460753902252958411683119800638494587941748264832783418751887871393468984111679683319791360812956867196435417480304692796647647918867407216600755131331954905851922196575149706896566727178336244586363693368683561528532611581756760929875886487486665351310732838915212752609762424420561771351079391593699921424170286288674605887218086609499975995321165380840611299602711274986575012708774064005724206890742629700657861759003745773638915245683620057137807798270130969808771376138906802383296304785910235598290263041309975536152779065684507291654056573636072137486171671526138590508929355164809340221870067027733767373844702364129263154578720275711365662514613708067848970194790090977316560491447534725470822328516545434190326472363793339713730934592479764866075646453405495197745832766036460245976550835731703961612784157066312892843218800899560481374705078255204959327762586385309878616734846175782594303920691126949809371929793454286260166075847640954272836039448469419298288924244670719007521860251623122479474456441777267466374484727966615330442585465839803710948541265851737832940373671547004773818777826112859441115749991471566058566041625241663576174020127786408793657630012294302683607816502835211572009970943700691803451265022346597255172490375761016082107140732377028427884553477134270638183081187846359649339688445075673065408410596643216546828560602526633779319991658041104329765698369103000023419688035205410719461147749500582098819004041042874344073286770525192133451597614390483189629967556674152041467143806615020208994134712461747281001350779114624974819298641386214005611948566320792208968907440118591730680808984103654154425856801500655971636523580088174556548489489381847181216727144597091778814266566776660382205074880300819865571568439926615060681289026772893791544245609357871013869450172550371130925974676892428549240925749679238497899470912581557092656627328518452246737926014054245168550500980722783386704067388832899324355617253312044391890894457312599101416648822729478091281884526428771715624092014645084770235503832376686955903573453777794740630192490904700831194588587367565126218840295340978152677963171200364187960591325990122923936566227919891308338428408616194221540484620912547579285538593993219882552937523242962933491218122544892641939854345541945148675799374291466667835418727829191408837476336999437095839612163699026649586487719591925207700352742003615574844060297248047386345762908274170464305955094350936109817091579400576974997805816389580080675847745488175092198694144185124132106658919234424114380830894026139464409700599791872752257780604445141126511612010369342694961394310853394211236632142008397812882384066838633988532318400514050200489408565900334413444899935667714687959117183135842763303210512653681092699907421612798110092977612064685234019887985639850036833207175934758270087244468418215557146715420799279120269463590658373475765615719782600479150394364494487222212877996698153862113537010668866839844853873693553620904084127622756116264788297951546343289298024640644818408235552919230666514578210900220748021270732296273787379433612585868142982449087525104692814309896612026727103442114797709719407767895226760267250556610168190365795593053007772986905638260093904971042120001340002284580251977915157718729653386188115741606341540107697313133292672876706019882255522309713447476157632721416969098145648589805129773141233862727863722881390316245359840113558050023875123394449019455532377478658763338259231564574935945719383705900220461258763338794218247729619460307803796953244110890149053159824571760978735915033791352627492287679008194301537847633772845538877648658975954069152394336060853975762188233250885830361094707642089440945425013279377534624393881994100787464840294515400062452259894378852151919790765034208784214998339518584540239800801671299995731105106105864693973683001285024655555184231172371458400640323874844177383572866444490141575361512770755757307382126517174846778253371551758981589808807017430143865421635846123325518360518206594309858236188339703467552525409525611984129547542453511057375325703331458025163267315100580311811785522706389266876992542293529981955950980883421365070875159772678477783913644229162823387529785310326991316004824075120585913266598723062556030726055001057744845928208270532740889280883488377095471741401919592580737320436418772497723452311895349398495953608280130922540044552807497604216394652357345324951258741821303802378586509532607877907210251164192419524558096683269147861049682027417447311114279313721830711617094707870545744616161590831439227062971936949143372356494481183930898397478729408498334366412389607557144593483342864930944038701862735752609256571004594885831964581363267811739191531765379676424515542186017354450382847030681534754183406994806166556533149589900392178757536904085106362920503363174303159546488454774898583678329037259602987613454735598566341103785656927802822002977413959569429103236671688548686368394601284483569872673338553472672893345825915262200065196306402450192038100706085740129593124537574533988807845537663365693417760396937960956364221954000690458275775519929301524170970556695173565417521538876026379009197301798378556797384544922519270115636652544611623269201994524327048147093383617528709671462569944348622396046465395349812664306960859229447561636734195520286718230787134132817300011761544041279346265863183786683567117738031634609995923180628027282521387382704183600325598748207153211803065636310230408797480891222442104993900326382055311382408775696647408881265517197369107784117403522616978905593960589037510592434850564139155164549756197673109995713304296601711778374899265262062078097722070271740369025438972300924523077578478105230189346216328728055631566116994162273237369785132955223285753226627944601260802216358610222866042798065449748338290854182204830599952275954941593652459414579098280809167852576968166916716671569804345952178066274073268811848317395244720155692632598205909463209523561500413973746895727200764563837728663507098229910146932241320628368224848687686936138439240414440956895836365405918162942179636437008681362426945980473044516635104283604155762932508895010890587380700482936189530513486362778348489095414434380666850670461721148502397959895254759426005417438279266199994118742687511621533501529194585663254175245442004256602510845948834178594979619163915046863004259328913694253779895240684683235422864134909442627544103214742050207675138688565933787571593153043802586533284449479957648916142618573677298998545895174413676004986042064183183154597327585562498763043440978808756256183364914380239665226962132685087313523909303822064973593478709994164727927959803618376737931734796410109820858309150109014541691445502478109491823205714157376948456391817394601232394849583460780427869352743232157399496910996628904075020623575357543001989261561124452252424300208628607248373621866624451739829000792976066648495809096727602426087524676850505543282016678434074572833128182906651404101005204447455105972804789184800783096265560850244372502998840620652893322381350019005027924370674192335917776439139299976631266159254403290463376621286521811478560205110387428997582219520070103020581891217878606659618310324985789004741424203077915326617594092802288373188511222682643398626737380738294607470213235170058036073480538755091697476475530625891221197626842040981019779183962888179186195205809410552543405154781560362558062387544928621761301523875182245702323559439583877642106048061263123467770151872036028578446111671638027413938151453956369405498754355393255381894380092666904996022947193043493250939918665932613890161019981478258620480772764480220331524620321766680819196569255750445723214249382673575552408951114647845939832741638792126754040619178139542983927850992971465002358483164656643636068628046646163840858789374548557106670367756305104774459173508409297887251156664442485485564313938019964146910146062482721500898964999406686499253869210709501232215287993676693397267731761277918452584757864396042488690337576713863889239362209652506058238050177693060613502436144180497551748785835599670226758790927667175736596857567230316073046355683601660018021467716962283630694206589188625596885859827983882609101070770500368939588710524464540307598057096376069800662958022861872801769600117950339048188039823523947464744197789827889840485099177724906622674548116218403795535665076656454312801361089157195296230348522423379124739000304852135750922172478535099751450273857189338749378482012514018012287149489482332125134434014962012584840063744917415748575370937910309213436760913489369134914465858504396838592341476862661125580605562104019867460382526765276349627548681312892801848199909756642047804365512930844786652342185152658248763727616618550193026801522606169177013983244026148931995848165506860796875320976676155340376573631849421516964786426838853007937002533584753021475414025121048002794909914495062038860042837404761106344069536163769081317355698233056046985731431128188355892493722607188442272450341123440707078516824682173386391848992202012562497924337042052120244312659842546708323495672795212486181996072672320487361984576896807148439120412390515558412099656642302353037170763905561729820434330592507400693897931868605274328759649612127171009405746303938454310535283749460613089812989496804627275346738659505630929623997204809742606985113997637138963813966579772536224341405446639864711137051536075670370516364015934087657107028461182669517786029466177885198770747273652401129043750501322063930788338385149227527636804203800890629258762045581337552646200533187819843242160523830581210348233625805304972646276144407988277663143312878938349437893223109065184674110564733580397053603978335260899881588243525389618394290872483008292959358092628548078664466330300443767677794213575352867375789546804050245576328960753270325026740125938639013044733430940642348892369666613393724907502982396257240674538010697630175459680670985509089193031647319443719470408196103477870233527151759707248185106097472253558672728840628416698997830951633628187212702048181539940520774184252731607989477728394558488284680875052287596172915215935869324133135064132104331442353355738082975396816210994673777078695320327423104341179318571576308801666409874050338892874619648893086642642843966841062204828023771532562608824933313469501296710897167962109490349693372510168003732944160580468763372614378220421243310773912462383549818375794844755917144855723814813088809427966313096229191104669282103407056708012910005259666484790239123665906986897848275184828057864661932580264601026737328984419922011115100171276341648347496781754519342100600767192244209430111432500884200730708801642455443337702950999195327075546283292211891323351229608054670059910015239760333579137480547084874450027210900018474342896631400480828666737934835743231559657219794471834755493426827368454691188366786158375742796687092102956435582029271447129682740337748674728262565782385729156517629946657800481681505603209167356475790172705702811909633167086838194741137264331647524454472171087908700546172310696340690434429648721864372002368156632328354858442063836335345274085775052324532229669078822268890526325734758522647378171760268097753784950489611337581491987235372662236662184173005415132566339603569415743277965736820135214933952101562534440584790675362172637472212365976265506920007155086470636982105295269195106476182514477022021587462988567932189191242138859986619838087670410493875215998420877648898409673722354451716779247625618643597452389541228361001539672834255322258543891336245060017522859617034793449044514337475956069255249918189387414145943192896939318994552654716468201529650541578339353660355091409538895116879060108491923062423495598465094150242933845856636722007573271830091019073013437454355272250631081361132775462172175012479845626401619794181633082634444046492099529196995922607148099737750714917830882585642275582194224251221062153369697042962844046089602615646140582453772220258898414714752828086024832572622767996849283528320764683036433289068467613008543284279431811288478200489363523391176618217066674722244153320018067460998087435040978655186869175978369107575719056756588870027389091334680051111605742928054035006228041266385733118126109730848656779692476763155275611714280361262710897883851839700286488997163476341334584043068459995340285015128728772646595255500721043599320841854045108251333811734981384128307429772657992501184745890168477239052454865419928240020544083906520371848880004839655132041230431354621601103586082931542932413156856040634714225687670702754122481718687631145557063303237545668484992631173457122262896677807310584160275005384407876676209511476055773676518686841700311126610548780115195647383209358107807794617133775151287255449419093564613094817031439618683967513073776691536214991806915222640041574912013101044463586943971197968063088267634041900936841833419826963255584177339976443410035005921596276584811673233968616190983177436948143197609038181011372942587790380478293186347746326986339351029269073118017116302429857137515364309181091634286752554602749018123439641718664032646923856899810580310732543450204492398665990587755167549842122157641049001185191141642612492388409978681159536052975545014453568546822658471606101355198974172634464239796015274418158740906261658284803058174941642911045995315670744565170528014582613206786081182174007732507628083085395988906629549152182323222152040940085093147547540142333209585896448018192417905685930385355545723651509360454967767447754635380203710229753903348352985256247632988104348045955005905321357446320533120898841803589538314678123056487712331463572142344880960749976950821462291705524547997242493918542310638184975500408588471425703970015311939936477051014922612862404187018673253187977022429807815073634055791928535765176173025571076725406016114482259544828520148337379734689617632390579517580231258402001506484212793666493617503651548169961828169072220984900932682081319442217920388765734724264792736754182975084963905649696504355197621814235172574632656104203749194823728721268016627030839276105744194009611317286287813200558668685161079949291165546749524666326688380121663341790118896718189330991021045515190984725732223314537264871360866895969227808272327375831987922553447258983447105463801246750437392105421610349931560666765889162311744937368385866697555885409694953983445838098585587322936902768998438364949144069966998247912630240224062133581477352694497778348914831082136283581557099555182934216877065659847756104922977982290469280280851315088021236230633825791380107864972719375972097858831351920183438916288074838225501202888423212980818204894130931950657553195863613717419542029079178000683817785991202595000024585443217084889757337319069868205246630486097137169737909774163463616118494054673766108934385512944409741392257841011097436149112666278201184002573182622906401229862572384868228958756740417201888110954416657556630922918405357169012270707725489755907409668433144595903328292199593771980080663208795970643510887901235253091326198034073465268149598532312136437620945782773291812902854193988429280629201831858361201155664465250603109274257038161493957319013933682603675576461461702003480614781241395118886685722615578549913270827982910790525880065659009959869260794073415469818477428094157103314568107072954752255769275727128264304168806840342319742254976797866371753567430543369024703738000318959262994945189294132179111988588124202004779257603890428523809172309543354901221912709189127385999762065009677218752881736765511721621433142689272657711959432933424928125214843553827165859596276865123319609160464413790558883933644288038764021528270026744507279774539069602906702174448638615744335106083662379860455728467035170263730634463050765743000027993474550754249338623609323072988572523236519234513946136785708685371327337928828171241793075557500798880869172615000213816946606300358471379031105441308561437936435155280136699553078502642491562843017241364044413848558327587443067077184960264398698141259158411110912728205134928038849607747532231995536879828438893783695890908416073268835950790250208894398159142062823176077841440340606083045705537286436905502865352711275958638666730218118086759773707538821853626862513659247850192540936630255922021441377353424061539507444810138622644152313752875983779023122633663650949982053060935694981900951159717887360128747812057427300219444520570429322351548954101605755560034357725563413461771897482301270534449525396176150631376852476440995404079074233314507679506589558407239242604698640483398359376925808269694612880599614534901860970735385617399808896897986947694411796309047002208338129863223473326876222070595500867577988628630612943391452374795484124917466339727223477888647758245531878638456264407758310852520985510370897660057037580497671052088400254913026124932677766134109902872364553957604105346519345083573146533607232704698156634682192424069601897867015825900445772764970976017464179748225162866372176335293245102646494831300718746077947495942343535570571674014045380490008237020624128542482808370170323528692201747811352547423033793637837740051398188651585283677748623332578537265342785647233225844243622683572591147575725308452437582596372875888071544301816098736991431411364536932302807750307208566663455006615837563099449939269602368358363601310216286012555901109641557045562013030319329938496504517534604768167362344850926906162662752582826689320931793570173550361707637344166843417531937869449735881999163941006836175199424046521396566480898757852995407981145743379404645896294567085336349335871308680095934047686311589965945385948532446831182657294758825288180493183485316252265087844298039357337484521822324121598920325191167788148119463270252969574585751453614247482911789018837920844034833593162675601020955382824599076190590494713850461901334231688325303231588257827206875926107366200391139859163368179231796835325153279762901190267505043177959071432055882697240898888680193251806907345840567724035667374252918194366386916718993835937910300107557632934143323200903681474488595719525547695671809292080259931614651296158320806116214445604898930945502085051631276360345511195094620889884018000081692774106565006989936914869387454511146728109266634339621222914012464702299575240492395991646693241361648882525354901264357108206389923365673604461726081884738833885312254658432637687894049402949213692535688141153042869050762531654296139170293510391796051222904761013847664276243744699801482902362137718634054566027950459557545627991730848166802508779711674765028262964693417012721512111425145470147945778589964762847924087634301888617359244103377339655837908853820132250883965229140327383298847625292298680880026103612132187642217427963813885771606264130884832462026768147041640473118635544138087908594065520942092001844166157376103317153368431688542737438535081147663754108215880330051698353975300871402592208112802176715419610439952574784544387394630769366218562502991743070087757077200530775965009978373397819115375486677913165668242020643009523772227057638158327834772225086594549038599234472908686960184343401026498418117949878066143852420404146273087504326521436735601940821570733784096148378971630338062340803777912177343532806591009794701730534676672995046609222756226719396946433058572582740573936497507555353712122786871787767595204980720881591360265892426043785771345528162386572213590940292337126863023448465276204313352320864129931906304822876945467286579239252195211246671733372770627028589802440422152955797965308281792663302800213113989241498545252491202662848525230668191455701762181941314742053456698872038953821755094400033357537818201998828009323378856239355165376243785838507224328677835115508435785719089151561472303639368669979730539023678697325637053625542527595143769098280156492151760595580778594988589473623035507228074525885851970092160889367576061870391556797373712197387297621875698258073006798908250558224962655900976574085868984294317609981660650663412247912675935077473178224091312161272234010115758646144619906856321885489671177143290072073116990565654682498958728123663384661130238538129385945207853621588270061990019430017162573528225522637496342305100289312044125964035381914684064352668742319133804592906899175998534722052294525402329330459169937787424683079759032600745448950954800152004177941016332197789274549573596405065874639500145790194142544031851411300080785125327818288584102719943278717576713043088883909362895287043170004797166883287819840449818731995996992570982841779258212898356689086499038460212833748269802007082685950688340753610809709941556780259980807727819478717392997392913083985079928272756678322033521121935028867794624550707336788166581231736921277933484748287254903530783461649673543768792883928508705148493945382404069603311764207074743237344180487880101830206031820361777495179282860005862291325264778846406029792605950519467100721662973266079348423071496513464709071447805158671237470309681573219294000105370512962496501336331574675355498406085383067903772677092729725926608291517181268309045918753014084095023561457497226881600563304933641888476584696495270203046870573860051771531492386674298536960249142645446926982619909076638319390295370235853452210003825343141164899361330275497317210531468021198055666068077740745418761341609064856441665987355756569948711374931560158367876340703190979846491499023444727869595217390947899325225301903796250947590842097786676320096705118378773114481661705601272247153816984180000856691847341014812429278445621005374002301001949097188235340457927723881856585482934331933591422264281524391768990214471045404760098134206429505983869990696220764397034762569495323912582170378414261101146133816528903445639931304467766095491560146716879276198697829442040022058333478309085636482783063428643468032710423195044820584524255044733817265327422768744693816561061514312850685299862038036430477699349717207251229789884501157890107382035090982766538089587785885760109594020534003389529830150255373076672009479707366396615772103490387199554177055925600744446687161784374451298581768428610485012477452963909029112556498174134319568926556178954768717919123438094509629867355183130868187193911692064809639561888998394377019059281687107064542893500701545345944831396729592978388864008539382843837447885366771580957953332334960527017439177785123392315922984840625364309152324849854865680151418645295035833198483870964539319224781732109831471524856678962972473450544293245663658758446714181954696651506817376068883947285814272211708926870893600019951428695915434503813988069726948794183859811556475058006871288337673569839072066145415180575844961913512751183385019264288251237444545532158623940223558591166918727925021226981784316125770794699125493473592076773710675128996431892655285805701653946155105164012745756109658799229719724748172024165901207166447666534434681551789286613151567140551827580896056946404983238512885908191689542462221314340233074441468116007882634715117828824771534719778994037447293103746416830718127588485962246054497379810599382699290465155012272638573060600562070595225826712072552258521965998005394856818260957693493097626358414846846321910665599314970764148888782249594442483529179245958253057661131186341459867475102368699586443681026216411325153314459370770205722329350874645989759466615151455505820877288068487720976576925571799919613558339792244282311655746694427466285597340686220806493960525422207129200330382267785560899195536916416495158570328455609153685983955571003413488665456092711971700672641755152065088445406815779263410717419429422730894718236413426590125717428857605654016674116669096443551156283221698816907365691270202189206041489608649385195926448177516868375593244986120981711758732726399524286143778891332324040896578516985767242673333626314382218103294755685194449448661574058412784929552693619483468062989075992157582658236343016575813137317619717411600413817164598712339646668418263036764247575004959720694476624117377224515429715699718975398950631605621389552971843567600784463098430754548162815316485124076057684220756870717682507414232145201392775046340198627013602390597390039353615508182143624455733835663208919741746320673966427296505689796519255338761605306561054248497126910354008412437418617473986509222065959889329832548105514911449544129215317212751259175158037585217059946597495913586086148610878856955396023865916760402511832461995942483759892357066345411295070921810514900051290431323196688297290529274010608810186418269577429828244844769836400688127391500510550562279419234842909130580673910838476011573554178247462726705345313863331840335853664434207154974112421647394896503878580691790446098196752979335430668515277575118911336006940130006053977838321611807978079243333151931683292313522241415736035112856680061992714925314114197791455158350018589214509603962896232571936994007435126082565567111627547708244380052318235578130050401603306086273390498324947860955883123832138675633251854887298533896554072235955855012538707775843750209629956451168387507014578749235811845717841537501343194915588945499810268533069424940112030997196741263073533112967224337475163652687042399908172193407754305757481154935764679126019240295151043733233301365326030281826429439225031536793863762652152318085149904885879127774157227601524158933597580031492196387303656789147099001999622550213971249032276578628338154929045821547804712915868716174501270657543475883246503950512739733867242989251684982604995725318283416508766681563012802062401858792831184963987270112978113116423932640208228844223582660550234943672053790305592220610717912381479866875317351223259680034162427195075050319543107482007490653115827769886561456539426093673895852456093494138545626382341749928843535652406243143357491116690162708917057189258981876468085563548841830818057611008410130556301450987963885027568881946918011405641121520108102334351805006099763818751870311732625253890402450821599401716050828182718541658700580793219860542438914439781955600851019843563666881752239092953531761784384544551215769682072852361721430724571597672532451155573835360596562311621626717680852527675074953341949604414995732579573055942667152377864621204878894341461982938582755884969675758354265771083557685963765331428392846069237705226358060681532921855352866599918065328012184355937038842501423105111210435037561285467731976758420307543218393762378860870255331758641884475344032849635850396952834364427847317725250753759295225019222630425645952605631862074576661428457563608099818370642670702630675563900714590724073663852689194015956907485767471314154883186540086422446144261953545966557726497298370873864435312689918477953010016006605928532030942633791012573997289901462562633286638749647313282520545765190641072238304944031849773881171566251984191833540958185982068221755416749415516558420834032404498530398552284401009839439287980143889904492511807948147272544561508183761175257716151225495499065350469887459372318962570857139505688038177759592773653520877467428347907095586877214477119062389169505404721360230599340794358386733014319642597235845413078745402532251196581661118540059600271880370428204154148913633935117746975810484104951692777172312966084333036150684248880363342564686361341774697796284421282202806445377979796497916362730010884650641226566734591259151184471280087993568812253484690679233659938600689563096970698948633877049699849979539768042519404469063416921689617353625776549941298845779488895091865873107650727101771801553475477776218849128177757676453021581856602547161608073092461580240116550165168713868230301917299701531421737580889169731003944445325762198461430573791387314151738858793327080171889431489214853592601512344136454700170431935560397469046915212694519277133663517179207010254838182312046027231993788953769588790291911487395118446581816532423351725279996898829787112475006915665048966028873740698567081914499274343116831912491674146347798672279651707362022204754328692958864985593453401575682909909153046096812564738196650350200185268094191332147064089176270773903884572122229217300900646196646825950992634094409134774091858464471207890457969201068579764987403977493845604844951103662421828285787962366792201407812576762539943164171192347533037898927835779722244405600866312740443188312189417025258420877087151618617026909821368263943581260625624889499683683797420271510440453345761186380778785278513296015168533928362548464815457779675328088202872851486432735315833215725818096208664536907490860857109005625669651250067952821660412440859126770499354854360708749054203443660871622887182821930717996993209228422035908691370226087837656850616748792924177667946722086697151385901806212880148211246576411244691003417942066004713129576059456109854011715469942893492181742474080228486014911496613499554361536080460080565385291865561995378019614781213291886463638580132802340382545910210848688875439199516478051641773439501604667956533725898040233078483647364289156431628024860945155443639499946717783612692023065926038575642813863850917937514046717845900211572024686524798805201016460180819419171055508603344722614660448951460551764331991219891689418835746804598508956587720773484708221101631501950811541835785392417213746254382854184072817487024536734228482129023385197762059514942147859593450025716296975887941411619380059414337485429789706427175674207021331312494712022498329861525298134253609236493980784360866172110268483911410724958721799379140820164618626324358537716391281257917199550260751510899001136195301954273733695390331435818656265774678661790315537447060242150078464176328834805296511590506268932261074637583248575806452085937788431528664468957315707007721266982212145888828256641790447019516513620759267071354257427689929284980437150790283108991949802358812438477744414786100422215031707641127471994831820130184281535001295873415307717676520907771673012515659986716455043148757794660658149293710968377300785336094341891156975310407963201152778808367792483082001278493149884766807281053188975533222237284755006515333290869758753591480797292448792790647725986423849856340764340087319716656277665939591620052172852746022049424947398814348743097403193125101594416380233267547818181577885457059347844426074163865987284218906261308044404370955580529201166628987992581850470836269640074358976975877555561717286606441651358692692677434822653094280478475762787996037478544050411772141629361684454706528602274748043781345515443791449051829382105363879483920733663594647422506966173779899785688906711335965021328413327059642619705627016311897070424021776488486145798858560853397538645026212152878747608237150012023112262547208911461184268907539783817357587151205639719729197850169358970073308446309724802433976997322525339242671902689302534065821753255049133896643094057137180593278722175046861004862837869175207657142077866903044844689407568967583189387976917643463521339931331196481200249624927124781794134031649814056156802987176686172105698374018520903063148023387763856504837568572018868934935346640177534730906446547795200801075560887917146529446126954416796996211175670299563454338409218367906165295676726805240748556706569326414101993050812713340480287846516633878625703481590266235244786773091312305105887851361236846972671957103245390817165608606010341655220137985562270289071608758532309991170688701793344384652902802557607788472567303135467491031360945348469874236567458402358993851042220501127561207599942187439401068001791541758601899051496300417578569642738516801912025539156416205526368838156548901086953447199215236241602318999577897510264683232416668061379022521406965987890447084007192663068738598309264435762829704200584558425908623844234888214903965472078131373398518328861154867785289095766585827917896157017630119382816463889754657023672740064261351108146139292411376733123662675769993247241643596336755334801104215668790891952385736899471519855268056478535375922854625718345895034775121187013369237077906504745451293671092691076862442530023756292575245482490608492272179399175469053767695139694536521752835308904857173171409209396548133624860315994172201347790836763595499259279095653443024726001574958522817868104256412174880981562218399135261440295352482791293367850558262799340436288430432702088301069797935371093613199645848274755196197112095511513928404309868144741032038534431947632886304678735969430775030856322568955860748698234140887672704874668162139013765549206027481499141024242184746079568966126327544669782086665793944607894299357977500907556128674108585387976969912909502720904213498652715267273900163164550966546264932167240534235961760092796857193369481338124793361254823664138859422928094495965725034761566662662183333573018546327088694343131778768553262488358278520525607276906874686675956852288869520467713756820187382232733179166632377318745464967852414992804403398979737834856655433091834824011069240099682020233225980884788870533538496470203591503733613360042381791675889151706868286953507260942485826735255954765718871693344241726976721418771148380050644635784454239551224281609102382850817097459843287049989525581007601875086308596118414806897216272693395867670376437390062197966392240984902076971621280054496556512931390841641518099049695492812506785882162272699512818094233340081879136830952999952668885176963079973316885777726712537305010536819629488346313390254698442450859476225363238387071206789476126551715157493633840359198615369033658281186402480035272741138871031388512262404992112736993735090920252131228965019128607847734512164621099813557426040577208739043120598018329143638397874900231440272799850852968347313646777099893465215348899824690888493603042648482265037329446492172673327093038354383936251729158500720506599176175620025589261427036837762750068421095267486103686479236567865901985812143154421355278803177650926206827419683186345545952135359479243529825234059943685202915692085694471356926144566956609902590101281584341529822645471446330071773385649790471215495003209482103750451674256513259873432837295657035615938617825732651174733451037949107732057090887087269301110424690164997244422398354450549738391355424527026897369316116353146665353164685273768467820117696962892037502445831669794114348178026554415198619440775201276496034345033499202274709829897351061696252817864875197838638340567319807305286143632478764235458312789434546274182719693273507730353545446525250055577006960035544833234547294640882593549809587224675800209587778605918370593249489367829311369400248018164359243069372508885996360238747225313744874835507906716308360779079157731744981192973477616203415383079643937504211456259868806449040938959625726502797314774390551488600935056647322182147111736976466101246750065261834332810861666258314662996729060989207034923124911632778289503701404896467759891409355426165319718237044565714897202611629825526559249860722058183895386410261939414115381567547297458357491834806983199436337590046722408852435946641170164850866762219740702909681625300177904189043427295841283235765313035436635874793093365890502922606522957121870066384642520189473708238921250109824778919095085267994942739485042909127366001974888844933105444968126113116539958102088091512161595308719404889603931926291082237813700094372456132803797484028073655009364398666437694652880643855712394925772477237186959745797050267965008802953972254433335060838562395552172913303812082769337095683755929626853160610533241881664065253959068816089547991380975316600034893852042292734933990480817644449543639357617196404647323430329391628883670767454341796758663799770302996563798427054765608561116608431294841931653259823738492107539661019838370129343583792974392257302021847877666674157692262603684075749682738222984969506471190226848046961980384154503118642769429747275679052884983996837985759176131320913959481318981638712645375533499729492752959832040184495322528556831267771539963993395850196377009675815750704860643542651001042426955884281415979643180840707864953014378087000648966816210881134329246302544153745670835275735717680889464359581294518987362254108007311546811101138596340433567078099932585217520866149988776251153363814259921282479279697466745795644156320520158867201015102246585226346541724624730489524017069077937699364272899653181290305694607237665488694134744705418242259014769302039181708886410466105919689644071135292943255890079809722911378315053849949875757692951926436760381938779310371286177632306982721128177282581248689554672737055623811162743947293600459872204709360796186612875057879315875874701629471504358673420727307761259163197273184186819872736564459650559784027756152294873274002334022571045964469371047185705612733069989711195724337685555410943136191750905773999263020867523735219548784411889215625093664740685967161300599105714528007198588592162116442230904910182425878999800841599780414260702650505939916580785048881555327281518939623488715390630350207153185221007249262861712670974117781290385890577381549019994605807155419014856062501885985810722682801043178849229586744637176839916838597265618729565801500435266376305055538316954154147858627976960664386749097110160579179482366714474783997643778250576856908067237842524325834970058105222723242419538189130997986005408670243119881355243196564170370916736250067131279229367861969741348552371219754169527030046770325657761612838285090590480843602835389676887822739063343068135821987693232546120583810966255715817758510244324318313257872635997936478685759516872634507081939524935101230050511161694763752978138003669920545054157926398965624395646828175629843542962261676375430404967452752731105661320433057577372341341440347157944330133044625273962564594692403249558920064662445749832182519555920231515491379219161316688422287851927390948237267014215516805224676765753130552372349886939512217499662285196665691122304163487483326060513070698286528527229769296242856233923607573721842814207691005899197660912279547179366200802588221486895014872987787575218220804705295064403953429744537037289801221663653174821100230065875994219123653010317265820344992127221356508521507964403465515043404958017242396019840618878728284579266039622012511556758211451421232903456164086582636074763857063033986382266995355273698243396022198000332968659572211417337364834234703804431863244371426424771125241394519856996067390645517253784705177164437174785240028779890199052232021895292845396570540067368744379463782852474681945181418270660802872814621638494940619685307470223055450551662312849757056919388788892002172447556667835678878051759136693686016174637577987054296544474387742963307411450036340669926957983696345349794193719852054162709336966900718962955944866278127000275364464344253480628195698523903104867318230387853731267227742412931865076692901740219365415117439786670926019913624817686449838232551916648410453510819633649051877704350125588176331487829467467303850049427282074865722053605631822062066710690599236047503780312930599332444054471256320984101650854262611133099857372131601366351806377291131963365777362405356230277271544205495871221708291851386169538762879210231078009983368673886635781958315277941254963943065149575791801068938809814502738047776131605543829991100959882792384000321710403635439915103541629095874762221359272655764013012745176559117909244894857342533988772821872443879053292872419040723610368493062977709688393245867783154142867945571233922625924723975964398613518914730386095946968785379810615387588009599965321980446741560368080023522359151478395751607420868654205935263941556950920299554621750688503560942437034704091811212122501522666979940908519946873011714132062385749210463952375533592266568134178240997945925858284624952261457498697604489527058803017279776614680167715663628226836601411173698808563357650140263911530189231948516388965794783471649851364893837318881014784662973116195283948748980819363972934780516273636933742655415227384784545040275142787637128797931492604827712701499364434156420433618284497488914457051152398624666227630401881022674588748828563558211615625229406598688160359941340301978951457755701296130292031543721184124481927675817578618091563873683259124966871472928871933183919795579167762918093883617345954936811291147110879184039937982412437997904232456708518876872325961082073945453144312768325597776769981579694581835216263055277714032704304611927987022044312199572322550625028931363958231422843456195933121191091725387297581141527679171769426063671339953766348461887831725316258725709899919654702535765470697816891383068583522677544896922812886721035991147850390486224966258800271869243308290153042024202991957654658149930954151316118855512082665092279076445226178049184796870063726593879839870863068920565437148129843879921325017049188821335666751876383472557129511907685727742410568309928573344428632263800689512804228959877427222630073718756581953226077068518166927453134436143672391994709139902852527020642582689246906743321037540872279640143193002742137098749019352119011138767227273903358998689624996697231401734806024313063907566181587042124710119198614697473422306637831479761167662760454181647573678257502193747949205583353391409939307099415123771314929302552672513280683478849600937318281367477544621252856223349397258167022232547460527426232108053296236333614472390301405310796463162211664935608898930660742374637850920675673094430216301514090693145486353866985677229377192821543300813485376349177087640308147552092792756551132756229386676057141350039785817613186668990605699141376652794743196834221021687308996586742609276658943995794199660617612224156934501757886695164749077417076222532247588530534930967403072053147013822500535666864644888816611862892034122960015539562726896782774707934643627709177363736612803534764631579014762668469204574675201969955148167490784185847670628715292587696717952590448571485940504308265703847377853593557345022549626867095120263730586154953721933762554873941137748516456932637695747558838771156930038359680242247553815411937594962411483105672514287181993382411440014675935367125432686526767967591998135332688158156472379933073684822533342520376546075079323069785804417297750431261295589583746205980950209508727667134483704729975578041656702674644976454194822029834328163160494069558006237902688110658186867132049268385797964700285252162349245355098422587243117793547396871404786939659944311857963172039009219372229972542039214260520361295994330019483040514207152707102153162762561034498530152454986731207598930352395785040186570858886690350950382274313446588450675486395589226184193664608117868544808522224181492544505448577223515732147185922837408275220910841751720817759494295298525385687003034505458952939933225867120147145880115953535257424820411419847837970634651778816959804731932716415011424706338536050614653620928352619032526665673748016046756953447660246513706350860596964575956929630787735230106874594831382930660127736019088553107178211497629055671328745217621763199893973669267864226765152527757411627303775298298573693844709127006852466173730067866698798042389091028218920673619499770837962833345267072632926176344832568301757301698678698787435571113265433020340092221315231063157943014850413590841755774626382677550723174977553270945747826075094422464924213665388080473356727957948124297436525554409559430995701964050953528017951374931374714860176405189904758249566734074740803545716996747141631357612323343761683492550981743828242776042715556373028189912295660281837288933148328378260418123301048074231669534607709480027395129057262621795746634206072710902458917694586170002091279188842185807246588229822720744022602253865861045571616806185197288063510373733792729753973126914216722591944354153608643973838600055166123393541854539694117070882352889468855265479680363117548110826740045899195284765658297850816703782221139940910091256753313044784964731691342124434089392721974874573030636920112451380152884837877176174612397689156152853564532566441512408658010813794090344256352020720995216710576229874774481812016970776809731493040689604051571366217408986898902640821213871331006544476148319325634523165041049396844933934275827112657537850474849053211352366093492092036058648702972545964041224153369558335678185490935713715811257746485937290122184926681773285441733369615538578819988939980689276448761978206602094078566731824467294987416916913392841891281482144056375579947180219384092274128144121468366210515311471875746025914042887587681316196274847838873054491578775698396607229645606001468212272827696525509993016758775383506877729659389978409026272219584846566804769572982338057097181150687524717011251603602229744135228571841810307400598713070460981005045125126877961658427366010132806999498701554085312725620817505382701397643551620323654007887106201596362935333680033257452610906310743868699992579357809145735195019006800321541824420909814612438163770612442238440332096537283129405124374603396419499605502883220599085086375027933036114857304186920612983941744065519501888192221052505084039313111544050780062916431876172623652187785817905179632754220435579813420011001362764199416283603836051514514003691500070087303530809129686327920744629851574246963688428260934869579733589300309083377404768318216489274321833660149159604513494376933447655532127338463827639789803763839461983704458104738069690984322823173606950331479587932719218041029664331311546939866623602635093213165810948398035211307486002148286647999720835321726338581958079386799142658298495861538273147881114545920603600033153550034357188589485936024490803599109223407133233077444949337835211854764896552341097974978548371103625988882843314121455561506847745846364866113189393531208044504051851521338112549856936360626681360723592464579669600495820178429130299944715447794786741847633216359776894954559197794525114164097943445993093373894949428154374791616229710883921035183798436201016475651427575465234392996886109039843615952519851727719394187241543537566876366095912640962549925028820768476772539314541744734660891164974616040673322428024083222503530496595402486350109320846910204269692553289335325874011642201311877775050685443459665522523209746154953415926902415910474256131688422160216546152754766890974769072441088669447953595037530603277400956061034802591234136552210494224069034602861832455425346731734554086815458075894471114662480361897145606228025888942003696667668082606000854790340103554004904000585414220590097198003610711849469710738981499332323348784330302633186625277532960340767750085837548173078624230049971097620486292045028086222845822429218345805977979346335512328747406661279355464727493479400074917859295705592503791690128657022790036337069312296715472263301840194936223989746899166447189462488944872477480599255683327697426688513003858003289013007129281913785398198690519210954812573448331909218892884556013416778387404761615556338928341488736761506894777966733374807236748302931094650340651402662273252138902804695244192995527788137229549834753388252435175005190501201332492050911476067838426146245999873495348939739213455417522689109874990900080650937190351807603582501762538699090009840683180868765181211415753325338842913022054546458824774510911748036353849829626134628177106390987616132268136277478384924922697657356246767808070775408187319514870250028737792394647114761918848506265561499587526862975315807362140355317557457247839993255957775555580613547457127384835866304128751252843280717505821147910664639604849078998597539268939924404460325425296151407319675742610398516127688065194557482997474735073076842041784842109565567161854307991958688578391396502250418696039916817124028903950098653362405540888202049183827017693697561811467042649323779500373687641236974485035031799341339595089936354954321052399693064916238972632624456293041303863718686544603174207405102681296412013776478568168613953986824630064937997326226623286809563124449257201173496665475145007548576612363334202560586308644274946253702707134358490147947793777523571412613012641743675867161950221685680499527123091712836431073727395797782466708748867229268322058555667852646016519004075888072273128867471103667627336418364222119578702222219759754488331281052102858266599149433437582112823987297120808324385340077062370240350870405270556385002903160150393176421384679050422226344947118401836655226762604033908790163565451436122743918536651306849421459474563602455654436106914836167608480721536665938213067782992829316601367169715313884848401665597027001903610684023535844906037891638121811663490226737495041205893384098542505055468939261142350405217706348299568485563757150721488143766605581936429199131551068323297225962778209722294444766187046897427475318895856823212907403351133753548814746190308516272990051247558276026918190835604321081192644287632953638758862892576187076081707534711751141855621514406308196282132711950694260718201409319880088068485341727274454362218192263442274741702302796553709103923075512888675227599851935921336846940406270835469123795838469786852998770346571285645444370443131246505923799549549406508211714950668560959213134532312399163540597846586737285534374259416494341759312664443608985827091415035564892846873145369794066965691823652363881240168472952213803359997962773014045929915098814803317151739470488925525699366486133238959415103278912132037024358214125218025930137918615388930465068342662954872984508088419258112147758931707169745160031978036688080940226916920638411541070753287077417199136977982112927652554179845286315295003638096786133179235011905614311263790571780547309649372301931741309652306645769586376282190298720087071255873118383739835934167457285729006382464910785631837824269494041631753981835118424341283409596054560053542169910900041871284771026338762430835519243220100257307594167662105966937354592151919921731660107331140525617635132870730348208112798735886565421064109748118342134062113449960113973760683415097519218622802397494368767778329152275726909970639153155532388550852476415701848762787945939127859893815385006595285303423250166853975283085897470695424494923426879193859877761287304715618227224393534645087759999257419115712561838072372226045557844271709285106996912934815721129080571231555073499404686514000070754989701116491497105404051233681786725055072730261995538260154303258313368084787825078833809314890109537804268629185955904014795654957044377466072456883464360270904778993903968935192314848475270701842038653132331255918411401958497130830712646552484249234183808543373730976246930627962898259435102858504831979266365945812114187377539032332883673020603333310386092354120406409532784936511831079623498784472846690381866923164687706568879861072265830827175397336438608484324479504231802129916635058266365375863325573472538166395043024775925599396409748658812783481529334341528379185302882373938406058744889107898666420631837573861948360602495281673445349266730754892560401589467128133575358583198714747306216554449521366515848143420843228829633816829463380072219005068030640702262035174741422373641971663621156781002095762824614388047641425440349892819147336779620666708839195654742629092649744745795628119302362493554357369989844820770777715581461373707063125669694015834019502618543720435878504639920783591936781567575597616257948329824295752176877973236692484700753686001928171899774228064996148134406760653521034665721281115097111211900490629854777759259959218799358949872918480453123095003945055229991959981492607159466830744002503222275553732440003752756979233064546575096733248400557232290943187823949298846293532185392317952871650489983506042192484818028092022661801280714695600652531681231485479215082959079638116480465660991248221133898019811687870120528646285942817263136561721421470780852433418911770869188892497854043118943142635850639018749661238570303582382722937904790608629928473802921089013956720554404308772704203059683192265788658981034773302616316094137045041308321610475750334466754636324240594400655499248022426567878631027739469722951197683461225848720295909381856933393588800427847202087538796769730096404362484383399235366537900126057902717681292576779211827882169113759722597381582745244405410079337435598648948543627023606201216357567143915128583960529702031771493939888714097268336165490710092057598135414159931261736867117332552680531412212832980791572308491822669466503735930170003817521133089331294952706465930071154708495439188374518109231349048238162733635149801692437126975617581570948659900018324763271307405857721324540001595148813223940404304754580761589537923839966497198001896837915097183769553153211810830222778514519887864563592510964083369774235045263120715031321365265661909242765918278841545768898375402388369670684055887086096684616087427131783395879618969232999806270900070364894890961788661382488671712204133480991037877371625158161511841504956204670599975837476865719024739526363613172411695746956254690471367279517239842773228713672895299100358799423207667643659715153635124560042146228743853181488495117525723517366024978105918600083719971556304222268768761150322753649257177408403875825374030637385802985205793222288780574835862779376109621783419916135975892863382052935327836848669411150119312727330699304651783107949242825065193354872776397283390941980273744338274919945999738876420944807225989791829682514437343135486102324254076871721110140879266211336943549837211632396922562268225961188262315700539338799809538106629220804852418935223542733757000269196419965247004785153982059383090683481093348953695859666844812139227094653680851534598582374210646256169893997714360946458705706360384935929347279560174605196435895216176861992453111547165780129201558607029132946094885777153612217196681534756057846171329675887312515206033690566008364777584522798705688843493294042508503967329687874118153274688721329577262504151486039473014980684852032344691029895899201745297846118830879156137727267502401855077233452960605550909530525815353836178804156969402870037735374738791030609816298605813481532276088241073322137025698328866641833572300678627309331103670734432890807595150815779508323676678016650309006785292654791198380387447235154813019052044346498972284755657114003239321634986097538097037418740656614300966528547801869895967502673246881803773172035401042622067628203746568169935541292137044698313012881468223667438354483356681581050515749093037848440830299883709853776665444294871975771401653927845684939068166180195894632224765387496513693745893381069436569456909611885814428916161290193547285935318722041184181119552568734262745667742286587419198644097827743805692469620382577154020495522227306246148985209187864055758964003765324010775252124834331927108213076795345943733194675629185406953465190806552547610176808623566822883690394521407192157973822199191825748295279209172196027777935709851541563162844359718053566817560419175493586937008755571625412815493703828021982074871377436544764867937778595807104215309876468399232438635608647252589804883621286137870276978183960108472772000782867555551611595660842920261115080990604173529189242074700137931945174198702813963907854857003784299149709382315418700371840742817703235679198966321281211031019470204624676412281174280321530338543836102512627154113308597338883273626253570055972031057007176923866235630329572595424807540838966279174702903808387635443002559214452653626925360680593688346270781449680518460758248289291317948149242211799620481237368476954958580991119514486925728182798388289736401511409171670072172940795353678672324768036271806460202291873096185056550293285806601081383472533718303512857735328591606170282206035424982538327124718694206443727146018745022243966442705897601440348294286763723621877842760987677185473708507354613642595288274742652139337915115780128578729105759903406467191777040170553642483765401592039289038481306646745198310251698937162341749257239303970040379192946382063354436177723312238983495612164378911225217242899310685461910709356407336452973830142445851106392237847724316760600484528235919974873258125014335378476018339514437751983381833128590811077157509235904506992730408518080684917474649257401300133851316667225042831996400757793398988899505674246652461460745275345534923560668647358892688096141882902287012605078695744812525080287565725138560461757593932712729079331078085449385070028082479991528325474309621827504062405178881899886452859857978830260962773437175739906190512602776765698933140502046402745676934444819963964912944072160701034405419051276373307203702499504761219814562221716970579679845872296345878587018935851714110797800035510052882191186183620126861049215688213562098430260386399957013578641951449864171746948529736768919878753928039455556690334424618074457259991844062655721452630125960022543755170798651029774770067448419090035466315938695460928118681559294154762574513541898867983353257837247887790001123338442849606237288253915385604331778538031068780004287786154332870936634244058530288491438207629588848547634523621108760134543734011383068474579942691261579881117022234717071751008381141601888857774920439265657517877000367713327364308522043068396608677659712860552419381990613604161799917461013850387495526741137584845920003503611746764087112147165121536861361917194901688835190780252184245972426662561734166983965467023444759936309249018467840515582598585700279802649967318887758533268454832395001423563435968226248379502203615680201358117447249686940173556230304773381510199721205733174782963530679863678032475399648256140744965158759871677385729662554241020438018498726129998483853764553348176578574335235090784448672951087322704341792880997136881880409499632442814519208437847307229107404121878630009242170116684102304226048372731897677768480304221059261730375243063316000812785612167748313722736550147086056264906409725111345224670333816404459275992098186681308308295880089145317590541628899187890796243053975274531188686630755437302114131022926728819350026482032260358648785101085154178320879037692607475667744879453753833787630653434689010163160324199363466892130216476080850405064529926491040509229381606898372859210720703900657107684878418355346464800789161806346806198393461225987830898388335550262894172416271296706063033719925950921111654831024967864807728887651658881627781547837773045704520838544198689893186757125472328044594422729725353600954078871308435275573374096834669252230710543355214651699249930019316604023216618626726634124760345238530740971655122207857329466532191897600013965404141040449005306416190008702979521663005924880806366070421508527716653802336336118696804632999349495154419205916543278938980834479680361689833172718156943348127620281749599256259779173586469908450404189557565125299848479572708615116360842033125941919114207089470386360570571117157215443580826985937584514347639056841546227726728302740569476064641200042746552777888083181692437001514243469555494818713261424014283999389830687384307999836320037990109579296621039691672987628509224730911689135778205770448587414806496337844682776574899067210490921846385080153532137169769802612478279539054805387020129739180088097452313961575686462275998711943540722443105838737273838383213367954370703941434833797881833968420240711211910662033510330090007771682659840375872912596517372146270793030577489232369006126158558897908868790034342829023802348220180591761727344360541625773451791074750381496204899136795700392017630264220726615877821575803620071082837508124824574425717670949159651245464636479509943226331240757782623029196232609678557628004140901725015068304344678559744040171683881110562095129325481420683266714906430707427645105606623910175879064084336736821202297723643802920019416784115467685538666668330594816600520246186402018296387707740049908133851397417114918456671930672713894450811728014307253997377669757207003281508676501348906728291514597088423049163707868240671308863759765274508012559340333476064642954407405022532427954583189133023624206292441542680388118818807539552920635656124013129383960728791324197078269480660902308256626208981674817225896858877182829778198625686461765273222386509409035389932099376849895745677163557327442408976065163649138838536576370381207184084003003303948446756374152200332793237824225590432734043157932745340372701196431853483633906060035414836494539097648546921686773290708848982865373900936655631461276372667851903297237193187201378843789524389032136301957912856914689550357216218902726285445035042570952078998344995622357839264538104515455297968285903068182597307053178967358230166355751555286201750052968323551628475761018815684599739584616394241427778722936162813055749129057645864520342032357759427536911017902822306959213223177797186232939802373590884000809379831908942539995737375226768976205358917352478307035415628515582178264272298562838313630964194853197480483824667569132241015568611693312303546181330202745405057220662513428359325487146513598962052813259474725893218146481432280064666144183165719558354439928305245379570782692005754164794185191472649227906620040620276646561497019540188095001327920421439898839895014536068484523132210298549643767743453541849570493934579921127642344639125525319509795555224415968843870369775783729116048979886438628711795547864344526737884363499117531122677862726194311488792429755774368172369511319435009165828007642754933316049941703589261136629668598820751086338573271792515728805253292391334367651525489961088861030695969833176778711970968837163633548101727827883488819921583241872669084303458390749740176376834517100780164620109467921244077305172111144355707078639596454779698368274744752485899968494560065015375475453961023609179765940829759711824310750906250315002743280205511301649665993524657005330215012256765898791690082155897082119985923019329701626427648217604857862763811876358296622482889941256783369603385396723239509469766202776993477924657073745952432363565701431694188494641129227277735525214060834987714861205379641894455979189775815583788417696737496589690024538281030381861409026787651369567352198069181435236438820329119366218916254914599069104413132247606829423407776512742392243177436717407336156509016351726855483526878164510983539526376220442691999263789736701858086600161605490103944079336566334383582343576468372887693496379920761818774838551262936354819329961390108379810081300872804193978520127399821853415068349885752470014712982228006625427917092441047664869434175466737905612213259546843720398632933909752130833753722909370938386165300097696557424599474846451698152181140740882884798006451671202618638935607755723460802523633533486035141220562163363260410806642624811182421128463579536016046157904924069420559339314422283895662694206445278813159124059008746373657697572375736337427563614349476605475594617979492038530410212552508566691422837457304562508109675207568016783866467576115754056810424929838407671680560763864420241477075391213948937607233907152300871014782270791618841344668553805761866942707088482420872145131452404063699167329874543596606809555256316680662717069411074295867252645701151944941504276867095736107464614170914289587548653577784078336173633324895583542302695336026318601374532760952667183471841694858896974703890615449881603642056721642696480617180858606528940906227912737574227580672514115357630640402256266400103522795786855411445721445009702715863563134948324695317398444598752823809101113557555771549647567946846352053045346800695192498334659940072670081022425299729236026152396196643562854478071996202021480349449700592470536608856981218618410334111176837475371299490137738784596936520004594795894665774164366536030956648897298240991062022221796853290338991839881722803635531376229412521213473098082008180055721779149013412823313951278481424166748803169990434211615521774724584665042048639562275307913616699446614764133680741338219415503209090718442247696383287962281614338679093815550751245386799089464042411172592101589628257959012676093894138647011818761946970929382426233353781904902187140222875751119286853379079435370211532678228336546904236500085711634248968346036021765721598225572781790773427267825197848678663651023255968253264853366346879402614967286582855705797718021859261564679849613418306848855635403334376832358245185701830218785793995997711068110176764807854486012453576650942373374808499144550824181997679234214000152221951342536762424809268951965698097928347335755884394638911314083942659184228329330213266434240569703533757150630514902466570067519575704941167731345461681043344340400726086597730269384063392794194092442987430206765064384487672512521366352733047336457118005681795357045720901940747991316206682704419254802733835228689361747061862873119456782160250345978370879782986037406170392070803266532222176583604618881740021194725290605615434020383823984700400399562208957962921303274751410945415668560998816408729294671741291763376141349574626439834242674765128122736930453076533493429553965279493252427345022878234964717562892181418941965242795240334081257538256615503295162363064367448724857446568525076755321593076887102680138845010839844640052689702473739392014816630261007147350919083905570690801903045034784636118848889549272894447540654778129128553718258850023005820456307356573280930325926812170652412934850837439974486585297281370732226850311925501980034477190323211594165727967702976279876945880053167757790948968259474702683292884282039349252289963931814877748690402811222252222089072838800535113696860586691424442232393904389846735758135603062706377743165920794203990410196917714709460745786953623687257321114156075873693359715400789845498693561238586924519662199600631308340566010879477249597316592770093914894342881809659828229984098177800153792681067950616417847246106724582535932824819828764628506575257625412545259438609542033114537518977139107885224115949659792717022360993921774211279400892620745282007418816075307393429253198192618073064454215789839874178408486379295301167390572549050970598534966935186326099577140436306917189846765659562879683622486712274493892550297653566422906094799063056010717961856460975264136468984419624813983104397666242883390547688406228971152168489184465730247328735353920415367404842299148489522142978311174011040867324975964869993383097479980817942506765089232833288450148451551901635969579516258349336379037265012284261141931880802949113896876841414159859442061501433499079902292065815188649051954790838267821178283385157384210468638286569769615661355989334375660779676629876317340261632772393926544898915280673221220535085321814313544653440871528859457154727367074252099899550637800180314478600142635484028959056618290519690204055611693238830050324432232398201446241457857744510701570741245583199290493929373580521983270981289105618692813897798265106730049581629418120412756451278482751294358978176355942678754848138056465388701171190876267107187195123461098602912637307731199899420420157061416894468258079100485328293568339486109467410339624424763828141467309835582934492259791087878561418510330036865447852027402957507779422157028444950251439495138809257232691421597757565838253399485969943413073038344841328480866554559255415246118183437849181465980413189488416988493310811744270876033993572994411619533025200193811303358653741443089076463225148194622239948362438758426488514347318579200999814815856677816403102370302477868486810229378646134911227677531593232124377135512073517745134752271513366433958504704211876697895878778186327378535709785626712531874682041824861493504034725689779077756334053840622310780804908782663934620421398841902431303528337774508142338117265168229632069492367258584104693936126106987869245237673266088690852798270999015145926839657940069730702759240101825080488550507234336460803370866642665281172492005345425027474943672448940156139453469688049126810263534000688587791842650809973658250769155956594673650141626746050151446419594935339107710232827451809657934689619100975091562725337046479487964148308569096821827945045363470642840923825651344140294517926991232171886356272585725667026553789683532617146042810018154497125231695861180194820299918398877842222956909493509416899609557153134510859554954028209963201825236677978388676576074906896424634751110210123249746241109493550150369299563075954234679062399002321495650871496654265520616448952007971967958475742729175247517222912075899737467037516838947320217889361638790599823268720769820662251240526450146599249900846369643647001151214318164708433510183195995543433999735712562451189263233511724889784590061085269486881256730411134380924917392246520649232944298806847878435294141789339046909480686295935281468996579937175383411441175382676809089686998253912859215340498870766540629199687243403363439245874826564086426925573585897987717534918202627476252161737124258177324632098853424649100914579158486585361466249851623714181519885642722086503197749871961160107668573141660426384673404387731424131914404337501349281032134472996311301675997977679331020936230685516819886629051640710554661717108104454062169685264513577117247555130866483109335447142835519124937531740724767764048959963494660531311435147629292562596182662150093927852566245306154644153213109218263373986337454571850334565611509831502826868524011324217133472579430416585878293806185675097821954676446622867109614906690238232663932591272980124798703432583620113664146181581634504445263523551156063195696656575362479870359156534192187655525728219933452160300407130009950904607924029973259662750238498720750880650140515962960624030875783065485745551965533902380252080510431349351446330021666221006950181000918784530588975138440639529882734547345664125969434264565279128650286878401137287125377422118190407107501602582635514149554882786431280182979092863219271853985433655352024563694630721046160489684404081048574577729876228363473392766871927378081960443371221765639386941024628258226413290873954713152099525461087926578225078621485292875689545679835628306015625539862006848180857459188975638963821012657647452955021192715903222058281570113992613284365796055339829128944973200104574946890834074617486861252110795744741268724401401040400669345338574664124314276917319054031239798368330817365400465119330988117356116928877479346621915402881642967791484802524504945169837853397627463991165441561292603223628808507214890925289231908821315242415791204579529796347046607310966653349659957905852053224970306099556172869044037829940841767972724539573561572745623797904284883077712789570127593170595829953091584846971189570665543973113941154860080494991699005168649356205801210602193335741592673212455307834630087209542586004444029111094592510189757054623353691588178948759767639310706812237011612696841459436107311316205441454240509892448708967766181787997039785142272228298335285741318202450666358388111333319552522593958900342381395562167560725295698062789342758035922981060376527062220418372165334375315647457224084206276372744721861156250457952681307288189326303652690700664095203413371340204497432406171787833654263303508251112339235914065635701503681946654154758995638073779025527524881015775353005745708608084453237128140607589171208891485324859397709937173122962595721702877099557224669956869805562109113000183592553193269053349240984035423811401082059108996446618194308422965619722781654555443972472651597083182279871123929620011548728382345721666202162611678195006985335036832625056007743764155746371773564333719905623048724064763799446597028232738149165343458208386015016649145965250347965271445405025205305149113433725295565117178944693178893350797076841855567721846442712285134847196959379703373517906333568762352708534545682614960762502354217877348434116165443911420205783140209008138387307947141283846587958392641335356975585884396170924760392123366181036475753547022014535478144278721126085859948516838925023076278158045587305349485690235062197770663229840574842145968144759652804709494337057105358411333620732555347902144837842899282008477459536410555300396630613444648489592886026854854973810293311003130615649753035814879814341977722922167053231784398916979243982971969031500863474990493973184465096932375405628618571982902385847026306534628651029828429047156133602189244738448448097711604403562806957010535178796462879330257601573181847777632949896620645827581279721204383435214836951078423814045817129439087911455662465295947048482545791430164466180718876534077844807382106769084255101628667069277990967584026303216927168548962942188600791658153478735750822839814904750810432445989151577721276029319144873199163484027579468521922367251281761896121925544338628279964710881319571809160828773201633506413162719040310514876412418019423190590168716273447422367692168315855936325418424649721582759387308103356097137290417216236582805867335374949084870609908173654233542292766989988495785042327864832574269908954152958672369489611874320574910924145950037241969464176343883775102543316412460627138573720367719926239479927165471626605705806804595883714829049268502779629868442695486827471760487515016968866237604082789287079852593415507946957314819686195763775702537104676635345854776244214452292575954824148085253833401865275718970777129303829881557089470835837522301974268761150942200734792237146289976061205675086581801253248629781200073105199075751531387398313634255795316767575408545711282190534409816967964901439189575378559077483761292628964064564384948835409531699415170318765924248243978405092536504559056563641185988925653667770181584110553402003065962564516900615464240822580294314699452060562012585898855043389197855309265351438095893080732737510689535721654702666465021607721501876767504296754045206658981876298691913042912940333098303037981376108934408300525411222971085229125943557272788720593446368466266473267403303030363379700865668052101946565619713590660524630122122488749903615887771251367086227555799757310895582400821349020005425157552460578795841353290288171688289425351132246719426309430291388175827770749893696814057669632562659486296775445078240283463836312073696798168828761054663782899756499875476837668308948827731596562813534019199233086607817463627181980606312849353394145472414191979079956415978042271723859543989699953212188595337784606800736739747072765373667772634637635420031953534521649914804467752723333378055367046125163858809088489791564645979560167988770384058755106295779705935225171169747423293330453437275517799423440803614151722371671787080231321812197214755279472114823372936955157387979189601769785979512469563005013502026441385446162673104855010519064572339412036165069924739961916661835434876736529149825423589391837048451061211778494329181802687550670760755893168847137577725781718936756492762137581957421628178438523148751321058632364507714496830879601641553137057842207781680497523713089132461247765265073844716793246596540750702943255589864821728619936271245638470356329534543355417361338929586576432441516697924237976666254140117723013798433182471944317089144448066208082132636541724522130806544016273512095272233026413289226137417983439176143900945299961048547715024616775108003123876887787094647607900710433037121947925045267731802665419303180021583263781716050324821008379037061070959222849996438898568505425516712354220961589794284818792056071325328897672980218015414631137164694443180928387111990408813355387845154622540943676494957698744355881956464428177766605228579003303135789157621539633493184845200831523747012635346830692987708874078805663524972891453420940900546551184655865860648368015881641389228181411453092000092972971563628093646086973161774616661073873702697690750699033070226835724267068651021861124928700082357376907555550182282565426586515780164481650958667328463211217799091710742491846484722163293096012292545911579784104141733515036634684741905762264468733634074020191776403772011407054609707605376218719388702122827990252766624680977763916944416874625324383261414812973240248507290668086321053221531811306279969548133225401448743427059659107982032149735947136403424376211959651628044298790696059619038363230473314209519622159534917495395070264916571344078084144151743069003021443996826942149096327773772836558300177568711672954737776925102400706971686479847980959250183612131844129411197672550736039174467778900836036646642786081329388901235618116116817504558645769748519573962378521825404407622624339725309822937516226168736569276919510161954649776376595299411021152829078092005742035721888697917383501466142330874689521929918022384256474033305813624367138546190462413473368436442348935393727464679185228188214062319282362174780844292997922519198920538665887638209879561861634972248235738569280090222605897967249378020584696170142730122106398350930885895121123483355738116582701358876705189957451077186522524554191469662992021267023661587771626907368735387529963273989296405582685706844860032445761571725842784586272952666331150556112641014990720250548946710201528133410870570467699581473586006310402804228897662486857640394537363410767214016582813581175244029999686059800853511331595596584040873757488085550813865604708569396142276242581499677838733725078681857718483487313899052795113202230225534479747114700965757686081121650950377610847492969398194709184358218398912795588547334595226327974930664769937962626596977991510784612858821179673227257411774934051640797381968170525469486412884354880432968800140656755182035881013189242582892288867470777834664917391272414109544267485916757282959944951399411145830968637633818737849354874943999545564665659122645238086723503324534017448296452080298792623042188442615493655288109806519648097801981054098594742484710072703178115725568176325957583513796907098591309071936404069027919254302880925322043001659991889687986112391933043127050031006947547160047946070158872389639394971774310448635386572300598124465714634986729883988807084348586075953843001168274823023985250868711810915428760513958163847195153255582330244050117587451719619528248338308710419720708431018592635475877170163125859274805460203981466282020741284755167066180139311636771601819581032903635385025768366608445003791375112423165109449297646350764498768422613495132707251288578072217130857334305293591814202217373154993752165566977054473963567241993094681177165220874566560476455515953079839078216001613133993463252613397127305406719946839798928675046907277397945917351735084205673920384443757137012744339282755720744105879279318604916692377164948614904566364734507292277530585331483296811680048369278858449757886064108628848589568271693125681092952845964865399935255940830653656687565838399322732785763240046226290787054466348997818776208361606276902487332427563421525922155973196884647187999260262531808464825524187592466557934288953082869927702970752245365861620490965030934693574082914836352424259135376806031216889409835614135959545667140181272318960645050594401943669943129911629727260441087788833760127395261591125868490526567408659387602214388502838278536849610738065983435109829040289673131934308883630009582113976252627958996830457800598129123846652128203618388932168162782788259836194952101631114148382517727231668854723806669050638363016440007498443412764323828461193618264821216605772730199904638395828910907174315960734686295883009039072757983438968149775709404993842195225515741335455305875541944423057926740574238627516586819221692835507987970886301297186437213100599604945843143870769213208355757854726303720813359833344406800366597257790242229616906296610316886773284547109803626393641203319146295666887001941433622552473160772053543992631196324279469659243709864012608436235349940767983159402312587750874679663396409112502960177547220690606974872020232781128416160723456092694108754044771360476180927224309142961814558163846979248076505646598038238488997325705644218512715434773663940802709884658211994763989575878971591111708294633750995909929749604368136053687344324768294001025832572037256585503979519380129672822465067867310429729094501449115529113007545242483749540485033030952199709869080849798718913495296611354331299176712972998173581970548066471994036212053818455336183000545047400695613912386257550048651127924439367244459977648575429717783147484583591854077995276409424022530508011978588416470923153098765937015062895642249351668513000902475853209421757079635788438001719442369760067153860843366289801009552581307990634197180419986648354623782438528121450913611387173280281350365759393011730071513034835112276390369673153311790371708509445865837498545498353195508969576767273842929957706425844794509360644042405290902765261417200725494722625038976822687185793163998716277032725959137711768036213159458580874715933014915309738031643836967704366741790223391221855882435153427792975233327042363706495444913125761161745553772103196327167531836880214753085291854069332569510891808821100262864019127565061520353666233940962839614009931751347698315799265425818809272979558867662294657711061391652332549469782970137514602496115504021208462608651222906683146546227366229806635139163380860611222172340163283367609380149811725014754491012702660515242125283222789410079284668617807441157019824995390329190260910774890998782708349739528196491110217751009003596285547834158894405021436477401575200791224476858247261489432963292488087353747759630746806120864335106160222672266744262337273666746868752124058213546516609257208537346311298329651125432654998504363387799450278003037236896472501482379028840435713679933942903571842734090887131289002596042087744322605037865034037838583202458511384191597925216430714052847642928207853090285822489313304791923095574275649457014812125044549690318236030095181963491690259718334060272437567802910179773222809645664343013060751091542541896111580367479616922121957178134716237484548715337679012709523037800888873373239761102028673873498059535318474057479233670625828731607019769465051768365058052084995954680530881613792251467807353390091066925203139067474686523592810466518972523778134002354160527205689665314844158567387193470620338760087511694280840245440398717894813244518598324636052782564970211000159885027634781274439673918384590398584513130542900758326200081695714625234471852913692322444925393878902192682901760081233267981326926740567748461141698003480211409924284213761042011051518698190284757385039514483948298973534500617791424944135310405975588970795981849852610414067879212093222381682534834782287479556314469956741587691427351016082984556753922598555848898616113277970381126363994583431350007570700447275165863419878237917662834221135893692915799032443377379414298940657422088705651303319777542929130656747148734340315501702812859000498597272219176083152091896203522354023514099240637377980341455747688492216770986011378324630259873878731961258020778155312438704594875082457860956253906185078230164733795979509790801834823281051609389220909205899742411513606998395974829287385152097344584812061066528592723131882586719180946034941325590193543755215720746979857917902910267692300434629016206639093387510243216463214096256819885095527472951310097953691619268219508010776954471593546009471851980504612530795292455530640450960862756630415882220151140076994834349803297249623647800580583898122148316292749326272702269657204904101165717223855608601895164233429079315166557756910267005953876084125392764055807011878327348290068013973986234259331210243838017488566451768359856060886652874170183678976850175730177916517199539444315077266893840051942839766318608852447207443217329046991691524372437341078918755443337355502014495037422704028865091026326597303484183736528454937696844813208483271598736478749908299983587447044453679415928378958854793866398581610207332406948822480167437846213706262700865715548110966971388954448795558388379801652073899467370981344475271886493205745435669789522403975670296046932808118822467659804115600396319004224931084302199180618024037123016355750494345757097908402247206094421612023381435613359237478204773553770626031503786976844296391469422683337879063605712395355190506041782815218235657616451198313936763322695086094030866973440183040174748540334588163329539576870985284226360787730398002767291260735268379109583486170865108690980053766710525371084612430604251510494220877860733876351928491638100477632248526953252494057403872414487094497753610460541502071607634827672211130508188581488660859941754895465779994829761973185905930745363983697136816019970215527819950355571100318516235661848148207580430264753272337822657482312891335193717907815766418564068824631374864273253236964259756024154376382380814317250631463056292286745554542362391966479325047593615163863117384996983294441159105023490940806781090880407998404182189159171602697646043018228083063442888239736069243737937408344076859531935519272528171887795233075456267838921967950543494520128871582744160428095407338189695237812526513702761912979487612501052809005519901454881716448487684655055215465452427061233250412228027500144011124643837903657567624657290823390573480351860162528879953515881133183662382518368315932081202321240796891666080038096944868144316499455049577538804491488218845429325966496511883051619555629701372320658170078064379802560878037199577963203818896023996930710897466528061208715601422847627645184240699533506323129610434201681479098065525845887417940317684324202035640947227807494767242431062154032332293334091970343434183011979340137233153600994398277988962078183679472878908137146207369349876274122404950197516948324926212465240466553934271068310473193187227864949539592529015594172759408032523921400452850326301468725837883037068749240264565984116211127725985633518837021907433753502600088210972246902823789400183368035792879409936021949631241545414461505823417323645149009545213868254968046842690723637796114894120417784730330125617563345381704798847689388493317780631532505086745534357950915556519882183401485114099709694180061648231592137358539035555389525376053385466779164657886747756367928657890494213370890320261370396616544524608602613108868130605582243268971889497415261534700667848832658280632532063168332314921501735201089358648740524090369030369397871609450896700923664586131919750901716241083790303260741999741910805284313708521200047637227449579767482559491303164259870250767408034416633967584547159657776003966105623866971551507120416151860175099642003864439794610794928993317969556903889184362427889353318006512198280087244609365134700322171290994615456560058286916892211472900303814586093051940965008657461171920417103082150114409950393188366163302732237820331295530085117764080715298890117716223983607154240161964589583177451650098094886901807776121677019723529759860566207012605991941178568008071030325592298124615528042753620444903281742038753511265450934770001018752449318365169052314633647304514256608617400933757208457201223887927053950740941917412132744857579178399580622570991942771516922174257068219331055161566447381121928792428683720860078637433818375235859182667193266343834464028650446338460493605638147972482854354350910180357200451428251809024266724609226255541289846757390542400359752893329193509427727238966051412239548159997050013991151494117896057554298103573897041031870852840725349459337178113046535716357239029858099004332192643277462648057661763884615151790382637942104754343265795547261450514329120595945243778556030174795687936961955444136430913853299760574753646700831593019571175842172275987004447884314828065587732545225053619533386490460957934025361892414161436675750810216898369493005124925324610967713671214481506301141217989378888633350157155972135568378592149151329081101043140321835872480401490703294018129544802994484088390049575132870820149303717300154475894241487384474027555790481602124312488968765943449936999325126968167785149217608068766542163708854228897452060343275009959129474484989608484016974720322721598935935469080233650286283938113295080121311375091856337349919884185307718581115554981914448212685928693912145027948146186240310039681125955649579540275533975750740784919950476123211741827267285736799276136913440365932783420689731739753088962848114210823708140149865114669708300405464183663762374449981960853602007907598470822429606889260331820161220854554009311873988667802330398511280544322806887188763053510726766786121397345680234064667570090873444163331188070354589889634503766052446139694109954400827329022505546773745051884388722764883686426222484915866201335357820580157283231451444281776908821531609845413758795138469364261249268961089956197458479847887088656665622419210613965526447677097419621176507087783800243236874665976712265365264730738241821911310435382561905395295886304257210010331675754007604678500391563844579188394450315628290587496128239955013901690658564229001945328778431102553733768317001408263754586784752572132899319769005274858444737601733644562808119029812722744636188441469265778549318771616226128522746327155764018167721941251291692374929308028994305464772023859820779513449158924850179646934385262370362805969284106713135722558695365857543609024459077922086502346129242043889622672947689592150665319127421862268261398360579048010102386139618963177577950184665056754252364339221060271691546897121901451177034439042954282573888750074106551897587797656085785658805506852363147332344662840457281369052686080783848460930570598052065329847812867172561208149172251900670534254060308396737265995945758186100641377991825555880834147853117462036966612099987034873929698227615111193330236313788251257045655898533145257736030806013601656314796558564886579054561895111957842945449829412006095890965701302823846407070434888453390238402559156424198090613890487960950774753558636499244351384880968854032062666934253518173619145666052926309966029049088185307769361302294650537512380911584255012449864210848848146487868564838675336893328028815661885672810553549978013786540129671000783679949270776493844702442474799438229627645427663536737945533974604711065472128437412598061293333282864521643393987327236154557096788967919033710917458798794487532067395561172187204021896531078344160064780105552485248122659349988537878290001011124757437741106560254508525049149879672408603161261412260928835677508120381560105626029107565083804321295100584577171708179181724456252117752377824555123276745904680611218307553483869484672878312962057582381685721526441058437854677935064048206856681589875700139948014618586751201048383361836977690668418099945028795023046602345740176357928344150024139887032789256419630587111338661918192024930806242835230173119045078166859086661406122782014632285653617906506464210904195280355422887933929168074718682752747431086731966655922192245133168722193676851656201030997317954792631271707758265513034894673504076955825898580800872163269829538600492927630936222770275150054843711049729108236737722288734133222615983597306772974426171785479649186106203039594478697354165535590705119767135755128637063095645968363085219546956236315949868388117197467449302803874902616954870448443247685938589111929521043736776193226868417987453083901991489959084031765469460045265091426915197502864577945431733715926105143604076206138544872313324537037597597371358236189378332325996732863369546232072531060205919539438300145895829015444060309107768738495157808251982705566370624774541374299588008359455015550957973651463708804891942772582389937250480142676406634256889998995323758981049698385584406828923203944489263336207667349915823193382325031538524647957985483914903709730511387643165586574171996731015228689678231291349619041176468732629571875091363414103785159945052134351353426622141969210686954234497818840898304714764321536567048468643198916984783704644586822316029924376393393447364735604194297098009974685963473979473487557721846966119727115195993470629378178348503500501215605426956448619859633192017007785597223946044585418342311982509923471586052482424892937039278181774017268678266538742531606882664149744249617868693730767024212269436957385169517623165276776494328896431052534968281515250815064578962113402805250978307741234503312067398120505188784242459109264696956914947933233193839198402177898565976600164988928343735411103561176933002785229475709038721353779476503218595265577274152408426367799817558262464427292250072180780876159492690826215959723422283561953180240151850687538033732206821016764318555000351969456782982473655672389601865884788893324087380171197679399485438563848740422441071905922975948336962069659875015212569986645914334576619762959550049466895539639923737440818668657120700310415604018689876567857797983982542370473251157155176649827114039821344172893039572052725468439137569779716912243289956872678856812356215966515970160393091923582755366540005998805832977647664272844543767060043349784470510731099928414814367884104255755363359855303439169530322931401845929688177571083124926475418867117213476139605920225252781168302100265627099157381622942489729922970614789402239554462289425062524291531101179942642951688179746963141911768686405573669294487654982481657532382311994510359714576722707822173477755653300094295144277054204587138289334588120972326585475571205081985184756249275377040042359237251757965833260529763390638097224648207845750966542986313524301102557684650114019575520552600153284026452134435828159422409375746503184349940354071826345626311259482141253788453749133357500337405463816943230481129222853155641144596498307769312359768275631950385359114781168937360770940195000827908514940281867548194116642550610943747230522899412160977588174358886165061851977658584498106548805194392833044585840685305194426362524338018781071877339867495815301846788533719185454641884903913819874047924635324409215860925641281623901463314882900305482898108352253626992673940358144176850884022622500049591468409346665337263726712141964119583709486830589821980457417110174368851667825539653929649721924282964257592210119964715685793908695725994231596339121979801429006841164394234191748033482260238419382058611791064074636121313374969591126641098664658239137125893858598409978951782347095901293348289703061058967431743371007682435268365516124791595595345870030442532150244408750599854518968407728202294990483875013609100208100850584515556879454200939367510770653386129376890978353434289536260316475587758470195605274678268958551253616490648880930281537706329539965349303114982528766240008296363700584713476906385617642380121414761848513029201244045547232247311776015190354770714747247122869232506176310515853424107674416224985103407182202647625376470698074149664214353619955188165965112981291312349629417025875679527442042444947845330987130674654044682527368111038795683889513497132453614874184763838103089521024481323333961490348967766733118747811835792944004890052399090617490422075468293423785060967485441312080295732697485697580973755539942346027955819933437602361767138213021734103758851868501593288009083032581530254134515304671251781656615352122277318653405245584129248677791120400294317593828875769801292908894335898337151935293240621633840363746446892321882197756182350560323021901483930500161573963580346543167401857334328794323066679811620806592064364528280791603902864902926604462201449886562018761323071578667347916004030437202154853736614975646338028948936637171939226618185582722209235054544472816765166295110141751245587146011714574112425788153318319336176817587353348901828620654805508515836802910016620030895913486238894465683057400983038918951581423264651858226806812089754506353847120161797984065087210420471139531114249429981865659835204745551552345857137276151935453425984856760086930950254972026846655257708298458648715019344484222220341052520721733332876950026899850400000618695839110541774624043001363780954058598599307491195119834580659984199251490039466087965524127975786208430927893233361765114578465444759400494307557341213207651441520127544653577144317798295946332852975793576171695325693545513655231029811707219942200412632747437123178343745807651149645133949454177468622373947504837590594729423000387423604717513414670165171591151126479478985517001478676147669057496882960888738806517128758169519070022956123508576602195123899861449115110277011295076130887552163208326811697761244061280588272819684216713896127150725835611776401927454994041985791517040525975092041242868292259490679480029024785194513861388868919206009339648465388609194521346772571621011702410820006096447305155203224254057576351597683979316779236259074518242980268145548569951162594821791889916933356118674427286940780309125909755999057089136444827873902685419372997682249733554678579855862280057445663887665397755551564436748521109960679300061271795214736235106275970414006228871273510394607707567060037043565485273815799835395716293339613390788064151220617204614879938009632503427081043624842753096116333021734452990339934787018841169858821103455323356620173103408724358119039152391583164056701278029443850163194879842755833041705563183848565692055615965162260612638461327860116952679246614850707768366709660177298121152872247432789921819691818897435749580056640083513527097631846397514259775537948076162808134893353324323172724186000018888092997735778554082126158332102404761299400538913076368309409630287750248825413337534634859675833002551115903896946856083051592540871165118610793646472699260516204151238658758061198938336163211412292743605013787381884249592404088686360101882206135451382977223939785502148384021968060219512352437685571497700554841517489123644071760901145651102268660472525780249474547581479789187714222772296910284111974269795881322930416741397205075943337653419021703624512374812101668545133963256919224898526606092845036457538472791603961997634768793951391958520455877575808835704468079072435453671665509750492083168007094949017674281051690343155273804933852420724374855709892307157505551890482679454717417170875903702766336482384961135547688644356892808605324922966926513466284425696652947624078536766047871334777785004926765028649159423516828989464852850129745403535642227555846488807355349039058485546946709418390787071741862063385364949264514941062930421609832639775833876882795164695850687447133629733999867771279391717480258670916621894611228787482580500539123159058127189737918850813967654415783329233568705780855549158069426990694109511140656268577112848378961723142272030521312496401599840043198207712553632050574776167819047898768885963665645703227315489432522849969162783999723112388331833759231009743842369735756442272790652367198414735383837728799767421166441781121696472192856728456792870984755507871104125238369624920538917474081453792512127996285810091017425718329352576400703928880456980725465803704413866461544862397898913196817148240216454527987170797568172772627221625264028850617140273627963586616298920012082397560726179746530087351434534142601295508036664780342254232524239073225355850361973125803817613670667699830384469054868326084161214740227128885106077004602313202530534840407743055463381134571222650218773230688899838672407028138849053216216169324638755571980188873561238671933037104724968672754789855061637613071449250577670543586879263033363999426404521788860511710879405110238500056726974933956579742933241693631519503191240840264999228197450348958340866779194155045424503489833343627299160103845611155848615062576441852987268746810368565729475108844476760389241601255149175082656267877396253197598156022749062766829762798640922146169055254569662492539354270313363033392994910600096521492929459079858586082109963342653512524364175561209312599358193286877578567915577543661457010462127561918045208548354996679681296542686165317719802214979329684084701492629362267928136494956468095864909644075044645510139497316220101154625368781529375800248207974903343421790566752828645360088129064543303691159682467160579087200708252866470958313091358949538663458458250018589699924794391903193593539461212932504625868067029577999443369202377148398746027279731356075594078609520247906244266379571645120541251192988636073713179181729259381902265671334187754902806105746874885681379107118973989988648341970756308099996572019639898104704984399818815660574433175691122216441816511596158098412633533507047719498497040774771735115467889874279539536217845236011058241923526372107572628798489469969643214158726109363456656661098474093034150061452470300208759614159283495387605442532920951150792672898874023241989649636857925703278370495932751502765912939596111699460620687525890497009669543889479035262164183375337269084443111142945680678437819075644564498065692745592094557604286250087221731980969592008323000987817928153820228148538765916072215632972944466753209525298274494225843170139924156210797651753197576875631947438567245986111410192522742958198210891465189483600588129066685111780620770850347175544404221206706389728513212728039098950583248141309354483492978954317616391962147728548571661256242689539946320788607046250591503103999575842430769949862199044284046183768632345685794901164829728119609276597625738060234683843993532960613600754221981980769986748488378756300943620779172321192735916639065192078511827966980976328740592788569704501803312825890118011104666845229872867107914723890069471208137894862334761879154485769583070648385465182655971845860720913273102980955167372084156777733815529105110636190605092980873901792744015670248255640026618997557839553116820083800724982831934029716419355668403843548595981330018893622202706788455491949246064149467967484180376325828570266311808719784303021758383413754042930365798672391040176928780284894939752067533649747140510825410049061308442915263136361180150545193448489656117553207246634222633857477776818904636827792106577863363948408603515810741974202643986152377256977097211176662744041508300108446015773604121658092567907863651204166519058569838489293761477865453531880854150724031854124167805355272218123769162240964597430648699767390541665800431346394667708534087742802996575585572640089672554217270054991610153432186992747861052557553393451332774978187345202982390613989903459411961157758509295035328523420754398048414979454506750932476446092473489298758744336807795659957572601511346878739102006337283809779314847866267509700576930982732988086382117685076172757161742592251303558651738598357860522053264095123629057237211752273066688975670735352859141450781358496059993848012815757997489621343986325402885178588420661220034891148164041848770523419029854972407893537006275249151932077693455509282397496050872458659363444644733750911013614994240342817998890055047128338234487200783629607364667605123589331907770152397676673248863553798219606873733771281895513438167765634824641601852537872376250883949153553769356788619182637815352580962392239221829177304301701698868541953260688909225125991203397371841328333116958380175669962831883236683146441754201809994973532237314676854044746650446955789192331683104861798072428106640442205047076434481894439431941200220044108928441674267021858840882537474630035009344688098787286589651424076507803648360541740688055568731497994892152521900573830997550622584990124012807598957511640054065198897446543441590600274106626793758857815310415903139613486789197306660432894725783888589674759404561230276088813661703193201592352357635613444787209399006733005120222443821564784797877926940507835959441404503921675513598960661111337557589175927463213823081115336071819488340497736695537731120247435896137176063445328243542686307448336135163082005581185198022636837241355781005199371921223211831422882967783091443797627047010672321601686588122105611237218269974831960167065083688786703413896589240646992392386290479371022873675839737654656935610507260217663967340773358225493359754814802321250987983820150328185100323956596846914263336050279073708272612724474933085957203370729546163619171943790853091059262547693973095158778297905194740455561010982081069467092975690990737537621931805183153881039876450131421582712713093418416530281707892950193536199891699567704945391920103471285322523380235474376107620620495502873953156923916827867558906323780065509738703110966381915102489206605523149663091657657797082738042463846445347332983000458825141017103041275174957167752674295786805429813947592265734770929874176016330050221927293020254779546295471597391805186816279907005694762532969217489912764894456411139865040296662130607589040548262973544584551611696841853723890463643657073369658054010329091893965870201546563290973385078196799587393779608942461196909818023624069326782138525424909756457791665617666472294662408874251578172490129976930387915777924779439367781641915525790811307785749099319606421683019719724227877788140838727274317441288332899550776567385652002846271980064425181721095053980338148386449009196486130064094331516262060863012497281073000964327076545000183349539569139742235621152805970744730220853377048720153262009318131581028923186503212217849477173448492175420072334112842038415291454117505894020980844082682147205555549420442907641345421780384220868036143889920905233229061475844692771639883386108226254150595727170738440419605065056161533860747174109731057759675191793772564329411824242946953781766058063380170044423037321371743683577918059613180823576430397547747682906585978357532535058025303835638138361032682371299439839625175559963962034145459033741715158132806678954644376396761315673952847638983009057529229383524097562828439356525434822792469389922387004000184585770751857191481208435116030030684650428205051735966522985107562819561543876968732775601768504983743092126321788620075250307274481216664110920378725384951510784035733632063107238195053930962585521147264670706856372743741034533131484216683044998777624070341759664953024091875790881167987625487825413942161320251151902824540227023502489731121110266025142377457357645044409793961081967143963406415035787735829661547785916767043110712780159892573015602268173847868807921494987565548627343905537882588592990886736565214340497995837209843199756732231614191058220292660474854159100175395012382752025240819473957450914591650660313996526254773009103001449074596145460965381989453868981156313060151561123790352923312738125828313417935976736613789745288214937360299053435025229185973339108641637331606411700944858797395630765877958918932066875230734985028538173754868790940461731320574490255946003293661466150010417481782878649629125121352450630423580112291368640491340976929585310675791016328289388322028167998373981425030241056269192291376991032501314362313802853614259943521051284913153991887739285724518578753941148740350827687834455194123711631156477241287438044203833941295094129458411092804071292153890534013340837445847007603489233117003427605317071672604934873846905434796167962797727783632313689863511647207707817160834911196170970148499532426953133821988212921417673531062824724922385170408967683521474633585814677842379522871214899650160724818757576334787018674545208917086882861461398932910286169279410486789544479280349502157762082005414219490125671885519554370833812441686365350328462579191017931406069061289225843256042538491912552082769364033967013036545905784885103622520386963294436847188529742844227343326681576080711642556487199141832119991135877075766807188872431687510619500176901903516856150226854958308974591342951404601957506279548921189926040827876960860773289372898666318870015760274176591433287896957234566852237774568229207746090330196146646778438735619955662719755353025174834110989114242428036620154501899206379604924338651520306862441790071688009862321615803431441931136692710216795435519805737310940032580343058756634731091037735692527566151664624897737760524988740462850484777217315431785894992372729376590919725164909671091948427430755063138228603256424860669167902899826401723432093611419233532684575183889944826085256561622699261435477168166476876728898505401423621939183720898604022730998184011611904198677263276019328919678787145559639076718826290867751373100409568868393287636626314899845053826934485669267759613978281736663306967185563522967532475939276288010620641015303235006164912842013141679113827698428438653144619123907635301819463058835765918578277586449802466572595732111168964516675382414778603524053271147344804824621044542464069571845139754922538803359282926357686686016417419804216196433541667712836689052007186789126085218373736272839158166794309495762966227873554647275548670323973133121741827267775852619916001768833320014469646782020953057939182969407823462018139654927250651275888364692310342063760721034161183804410506296655887183097604760862156853878125811747515772368264953582694950310481845892335260379814686642218272307501163156824993602515562694018208349881610635360669174404999450697953756552809391287518885333626342378254461467682932190100469976096330759775681150076719599133608256040949205592166145364619021097557549636943484167101429379322395505563210366900926339175863714762773585544648813882920419506162006811987303328772982357465079087609425398770950996620232712075145226977470270188153067531507734427756181509859155667705677409445684140174494525272150803510468931523246817113185225368416209104233317799692241794624538460962961682303749291794213543213985967954293862558458343834213083147791214763669246014651723089626532687314360355565619584064370801546733779488620029291154396284970759147021067772972479091030299515809455179619600072319554511292481258580118571342472061767920141895623175042896738510642083632998597994880013302700425517140100027777940464486853951356125604155516850916915102976805113905843997644622450440372946042323743889469734853922589339567866592197311785945779981654977978578727048198353616510125535527070681428706326647692597690638186173251163504242176206521931069461018731638147818639161709173547366816323975126664325237598219173936871983004994765789204627077261843312993856384713008845403363329172685188627836172360498319400127942492018148933715546089388713967723495715439031109231549947566186147836319169258549294631415543086584126884504600450335478922756679762471732834008579523555173096454575774158185444360735525618677555898403381400483315037270260671754844646209949921691095729703347353421292904890968314264421966779087128940547997819508975720929056926900349944537851367802609154992959969157965827900534256874777527188447547884917526227640975538987410377607202674565440863393625141301286243382756336592699832976352640136017955422605343079938026818631673830964368685677719568856756931295127863926941189277442538710557561396212859346167995582857861158970962590034972590396793049172657541258117019589258631674386610749768966996990048049112424592924862476250088938764996284514415580274659780536865331634365759690642533426062696598921254812091376593395932173150402249566322515423469935587970726244982017326239428355565653659858685831358562549668671447387275329428199364611434760928161100042208012369832624495989640113826171626886955031518352683711592735359503471619420385721945842451287644102182959303603972164120536468874568326381902721716277049991384187728336602688845989722927672351166990816745849333337381873414947284899169315468296118259514343830828040316441947709890956982399275549861886002023046336726532245701544772920861641564730347849406449772983449234164572297410341455537639357979689224693600572624043302316883999047122174352028643716070242488195585328074674426992850679803814114938163784983794032200348919669201445721245322265230080381482306992469395125173079032342216857294814402364450200646549861392475949308945318174169468653985425238408538620829481068591578474148530844953047441420687226845695282711060551235622927503730512532469238617075695011101817667895203064038014623215157072780951807484186370915441647021989806063611698772072239189077696804932064164109997225425802366029135964934617893747114735016921945542508274143949750744277409441307844279745589563331275004689759307773620668327343277478825441736053880597860190836359462996563369131693445481488774203741722889446492485308850254035552089242033879820333466846160332657090429229172578762721715075564327859930620056659045003900577742682804177767433432022120771538665965415000087476992500343781919433255490241145894049255034167201381214654243690898205280618437737333654547351567307610575385141306082762545363251740082854422230791499199638859038386829730465580183235298273728565268258432764099637022169050232621362958242152154161561002288873288208651054188373135124861160525007297930071547845602588283847704455853215572362730371315362520163057726440750219121450557990789222396807109078240827248905709080304099433153295941714413981823020145498757711290306880409661455951534883720797624062486950748666738914878407353788013162980734628936333837883446947044278831109727657021740160528857016948248403637304236135465254560479258589561772440489049702457062190724112811607966176281516536696388077854483292913077848174308827040341172107912831268928204087951289135273880937844672581058839981834662141412596310759608878952061688319019811863578863658681194941692157401131955914079390326386816867510626463733574686919074158102249522760117124748484592284525472132025078078250247841298631593765721166093433338809500015664652734473627402130706519244863260587099889735817795478069370045361990350351217850499713096012298500353738316326855148278978431241416596869316023051678261798529787630851334607800787061360607444555074905928076565153232424938452200881071023811538784811464619570541542288307091368754907866127665609573358353389282643550080815699559525258598688865847255322225549444085147160209935374185354808155181553985586770744502084124033173345570895956272087068472657836710390842755202709453323171138602658829223208329477495990740181694397919713281599822287920732033505653710856078972872095325089869991741959562242347233204396919384840966728435536637298474828899595581578262145217670454685472871903400120121001318376206414340866610634451349747641758453446320682700893554475681598042895322665222674578439214390654450305823654446287089977021433891007605839103773378013337622447922247486109943136163611557359369143375186860044227438621296734140940334219984036870684654479625511933422260701292930281151967154183598526642745003461271679861304196179103118372907462603263818060992474167886038853251680431590772488106657666402950056031335675060749487453986885982973489051014954000544346313264197116488115177240139169348252082310198418638042399428283898545424208234983707764960627466897073304532414820128400138219199394812825525771186867632715579632957425708715336084125629657507831837528869002514091072891851978921347195256434012467132286403142724843950697432182753421788628827906930945510492357016359067722772580523433934999761003697083704244360020692018694525573309838852949368763473925059471690709053877784414095910746166509739570068620995526598988270058248874695296570689253400078348867031658865071355423321116095637291806437686014998820638753122380627951222446205845310465964041268761087686234202201804504477171988622466962029467593308331183972926511405126504382275819474385166061103396481599219770702409657979057129039724637576374917077756130141198151028935713413203216137702925364111166586948057563185598559425960541986276722603525431742626463976980503172156339274104025791424311561229830340469626704733200140442729508484879772787992139964602401057886175834188311486329663278799344056182521216666748628548626239524909230088291089462518045320041928799425573754960523901691750188415894665098706097991126696598767967474889970368656271710616846947846904856873789773751870814746387010359662948679891871159708877023437467659240371895696119264963558037659102301846223257179712095550412314720983791579008712704017474663706095766524052769745652411803864360776836785848222116017190456320193707901330912489254548372572508681302815824823476330066958153154662144770590571414065700766714993083075223666404215092873659589752413154341968115323822969725321544308494103089076949821381488267594066535912175398582977638380967395119486538500673242132802201156156922778284360184080573558161320817807424703228437254083762850554030864575085131606700453261490955293538879445350166246866846111261588567618480876847774478366434409621189249827189329929195279171713802396833458180915693100094970593469014034137794231877246884899771041826508248165157103730349830252295461987958987358981745649981232513692191238094234623283414872501081079090664745267042095480230791314968331839126757867157273838838939942209256789373723035880087666287697972081096641648852129421870905032511295065354984281367231510879519534093698979405272768830974011673036783737588421979052715207630839961843141718615343377022455943492798662726458448175598715321770397773114804435306890797546770659816538056299644039765265311410180266617836684460313970338683786258306035961627732659592505561329746355231103485799136333101181846674577901586831389514723454750165940552031034854446498966156392738663583836437697273099072951720535789914015644090683333243186954838639260883323624357328439588368023312320806285732322528663859772869936910767615555940796182383841122028831091977851315309105968665370658982893791103774502589974644604947944979176642047207676590626187137659078249045665103806810436872199932155298366745613277463832735428520864441327128183437385618289913181568648147840054187569415742140696109286837566456792442095586945273411988734229971069957670008706685720829436209101065427535186469363538288654119685652065691620077088119662478845889095916446515082304555877507634279426266240974091451375562829758559680103542364032836358340403063782384823004853035908112882138437630871507211258289659102502190110845517730390732870070917225679628121136261899134380229926349594083642741914852570880569597788690293830639654828876441358227832453066833905391648737215349122148708811772110113707860487012246790068886242451921845664715074565867117678508794218480165866362139762179217341206374766624017677115686399417281692643424940632397068270152679048985814054519552762234872546782220620520402279963589039592752097866161297373504978999669441592914417568376942080725792602100018000524459606453382755208083074550364394628700564050632688053478799333707396776775767045408488571556886109430657530957676784546880861326724119699561835310191293776776620885903632960774458680290055863754294671761094690081217260181272002462670916931372569039472313504233891462958121798545132006297072897909379604008281451712212650733885875986337007110700628161002864187090599685741907192382238241689225611238266138072326306486420465922093702421905656200213655695733297664963302366691319356766657851256105211888292165302607306788713384645037842458626402505864550861724294510154923293229762606056865867813921506953765353346984942320159439501905330101706192583882436039163335035418858132270870900687073652221615406835208085595773185781097605220036701667502126826675604991578346749166090534429902830239485234034978233865911089500294554492020127126243894746376482117330416418978826967136832083441184705773600829425830165756966026439528230436397758357695098722658752232297384981909330475545207310511319264450673665144752943662895455852466303562762737229964027554049029227410834424327851027737451512435598595516370225859170198970672271912442931093215096688128432179695649703461118233979077938419695390144632301710809152917132522392414902590411265886653543107999498576173885004426032745727921898909514056600283525607344399728104197461373220946733556481383462311371347840919340222425256967193606353363291529118939879049134901303121761310784715747833259207042270955740848709216507710204838363800066782544783935975984550921263729641583485782020846925356809229808827728318885574834271089933685971289847720209965494237460125737242325237198344006498066638194034424281200504707310953777386612048094751331454416907760471698612900617036934913533744185972463497635087963340355945612030698117309709878323240466278205904298549245507946157614212658314680083609457996757164538507375974116946080216646511135341254910271952275314761189886674248859006658259215797089102509409084250350448019072952809401123660849936096944734859867412455557529782749978363675051348916042191124141802734472006310004306187799167888274445315700424658668853934725155570535714491689676376928381040575360514030329927900607291937807445152513716225274712920213401015288632729526730866484556157553350464185138229340909349588450038238285467161714292633587332796175041820947137770247872574261086480723710738696695919093612578273696237923324890695952473422467477781932230523390885740304446415346516106297067112727796812433046544292049114472015921835942285149576180894066475269171672300874948451600429357358918851226510077317284906963146602015665091334594096351004983274907238254962354099163469171694859950201526728009177928876002229462160805784358007898815810537581046868856186762529884155334373049459718692969854150096334507799453618108024717759626374324654744350933147879581250776578815077101264518099754365030285020181529343861318473596430749473869777732649708815158708256635501716143163586758981774330545156913697712596635040470761812546786538814723456455819068003942861304114268872828426262617870566973914889914371657630370464382270889204498958485720607511726033465851684918893487168669650860760904243581329476458123944807907409750878700604377269188336589484824374358167546732511295060452891215135754775228048763977659645476127691964200664007689150349170567400167799715398746944750228719485510330111093254509504069305502124459260701877815060395677964547036590442147659824243446188717714336465041172387310877789320894643356217342592348005432402456684934809076454053762248684800362042183339309265320443231125150018658983534319602782513048039120426466193182572408597016345863406725377322775182466738862460603334738319188783825611566131691108633428158159281621478983071635415842882652215945492916905290827806854622314644467976211470366663025176246306933682429894937844689319238287141622784741606502688110010760782226354035241434879757568498254036134827690518991439209332716578626540151522739692563567115947290205781958255255350392237959934690089463542038930652150473548431017130813197734446279904714902075959003717223415452631637143574156804172201317627190632340835183005419673713468399610411871786571121773830683954442997887541244722816349723758287381272580797716947784748742020644518237628745627488234919878597498625064940518293417533854670697770982479041574983226575252180592056321439473112324297619385537604574507088269523129819910621706562919067690125700274939848258675947871734462740676895794052659074037632556453997957955310300454614973605423930942927285014499942733204171777318941224419362262545889709793123307940241184244609213035737838003055737966695593823732745116502566784384119408107019867426875268396536484366139386814320015285776452143297926771294999140159977340018735625562373538586524121477008219851452775932700630767586526435346457428203277998887769199007351129378711276397233366494724581408396793849577124019297111070303774681955873783604552363097003186706753173877349829984076209264138875927792246661573894980216395075659639707079837570888545021421757974537689853082105117545523639013112794479648081418206419093030195662269846173536069460920857275462284042304506304852461413169582067274330914027034483884358514061039240349336392449030847961225880937348170767794976628365372990347087152757091032779837927452122783679654241013254206939468621598785642109305681070460567119412306460611010202811961170387357289944905406928828183103257974007853746147539014621967577102854485268686681048616242011595134746970959937544736331497977047627081023145291669877809692058478511950547169845716478973883334892774996987725002508878711788575636084863571701073001705229919285245541177331318619872567313274828223475216496806947479551107391917436942132360592214077811866655538566539105700417187777966320846950669076204197898749378602696062990116037660544483273574591632594055588448332013272234091394383051442256429700463696749638441922847666414808628956395118683509213466132171048287401422594992541208770907236175067582673357699423163193617725017563584346858988367207036294169120122301860403324943245475481159220121016356324912386572528920343173291544022546945321543125573356297896632984640171343693396024115135279268945922645339167298589451980983207694460231732797635113543761606365072619841251417168373893908345695563578212549360666369605453331932198826635192188136897476066033947347516970068644879373963303332049929260285613524601359985717608916725031305500237929698648020035011577421076992905228605582003159718761888539579659037109644850565149931701311308473641512112921997483879716772827970650050974071545667746150908008181077771818760747783529096514945386169873891335349003323196360148769893834595451788282791699138129132735489901560837177828083367262311505826124296213736555232313186285887330594477067302814289076521946171454136270690422546665559903583032085583002259700802311056471109656216558066003685611566298525011862326868406376593914302987123689818479335169478310925516701286807027748229381738895165297744834863882612356380839552524307158397096302738928023915352246792176576463087962144636670145461354616000215826435955577588268825230243944026063722801882844005451126377613779270711948376165292149897073977252765005685094300750194365456208708523893026367358558110551030301765376910999885045706188963642280473501830410652957591305197238888139299243286494635404806864929847397016651463318642979138009588084459454054786357560969611638342600743075878522501954282133600131850943880853618070659598170791839339527262276652835632891685549793310867433385782224072320232704456882962292572665254281726732599817007594650509912090042072466336612181618105319030206580004497233538678880347373509391933655513915308746056666957660014835726481364078332989525293144749630401638288698014441744030247819807973005110407560086503919739850049560660555462173172378795325501370502665753052376690492378649384077763865380235156299362405661149285889415297250354435646246524411687773003388316381199264937278912050599327935380987069895711848662856486437665733846530026349404893554352046995162083120387102649243341703938167227005951536968557179791736277179618357280313123592088183083187122344606518257790263722846022598878582859053667949731078576955739884480540474777910057503035017902075476069209261016692979988907521966827307716699188610376828574119632308400532477921086011549335206707678397130413549453091957959090765736179759380690415185219552119471677342212575355987697988033716144734543775854868097299648485337176844210762123345449268170038857644200007298240326778419366336147314577043645834234119766360960861462601049278479610822148041170167559653479965705806347463253024525991927897111910867751066912786133291816931287390832105838982522634143686035816622175904549674746147244063229882286437489772128067031765781114916622397770219481696207978314350471362774766122712997431551431553765878957178464666211590394011523978931998722133138466545228393134754897303619985048657111961647145065098620112476020504375735780391681251890962758844574988959343143089175860435521699877749361018260284427068908054228551742495188842335542065109098220976532583531640350932044578380444737993637129473863527716315859618072067190451399187152740370122797108441058169741385536163694910279655301206564296047586544841205020202537050550955432361371884104476259071902103428499638429977840540051104918705499602659622112017130733955587011793959394279206357450776210279332031643510438966108946909154953416044963123033968412308813736733189949357047564509865373810103630592003947953601391407801726174341889535695471846071693577788027751152355261738059736483912060989368360628293207528641392177307394524202421546172352736627293285938861516893248870338032374025581297633860670935552513498252032319922118198381207435574652177907809712285346079252228225418147574940204163896145202267041550240382512617053498227995837292847450716604631679417761132092441354980633530499840200314373122822878476585258850390265483709159542777984423240930856350901809593068100411615554221872510407638974899531028303229435425648078862802498904101051185305706188628472659351924158133282784327212732239797633457246996279891454007988059628868804549767217611750448076793371910683732041286668816538668894220888957155709606459215251320070654631020371767753550234059620496558460756397700953090387563512908737416864914531475681830340467532498137378088088631298233498102048127927431864379599168456049803681869370966992387981438454787391615714724877500780035215082012900041592641020451109584082684289388512229385045042318736493449894538387925763092315690676300278186843140887363227273277705173326794204307006467677537428982941094039854015468196204241694442660302782411969136762742091343372766426859572335756876851538299888369470570106856529322832830833757459702785468052039598857454960923873320466753767346267510723076581208510362986834207875770234609474110640518435424172213057295078034698125745959917707330130440991276450419346080112734572327304576769662447624703065757723602740546238991070723789262882933825050317392003451547104513605842980268785914762148007358834369000774878645124103964479769642859682823197586301599033598752769174819043816554681573260593113847952812959528245245012890189144793170217278926217879661129654954257332160008630079835607541477577537908458944778903276481062433255077618633755388092207270287952670095339345370053316971602473385254998037770457029883527086532978944811883820806450619428179142312832103119527129808592936556410471011473217488326514556043895975590166065672676420208723313794649915221574232955912613625008224362682020481790325349524091750787864915831516724799613525513451115641445526880970854160537281767075170735376540822829025672001435498480700284897133682718765978619204666871816713013837695547506818840580810912415097823637838954312293738702603381935076279435353937495023930381848510552241643339551745300602213135234487561751572778421613858320102429257229452801308304439240005428628570053910742935411147240493161912927111239424457150376150875696907519727137664226213043858966214675882559115238299220597972800689434160936989866941123930481146951115283633141674814829172184690511607812130935773798221463023574575887272589133590654610730913897037226317566944412904218809609965562180203222882307980508459808954101435170870874053423324196521882959448779254106173411372834200385184389951886746287634247069025697833098550261939396419254639059343389958304286887391210041155947694047123333497066271344062063419589905049900062442816834220473617399306493887109368368431301115726258592039720314598212836847298882987810006593401295028336126440456016963132452927470864404340628398493646781731203077917197133429054302668923940889797543217661061216813007095255536901388297054744222548660910161762829155462083761477133173362709206908795813654525281430099634988212149261829102525388322483160138991436850957298183898628254642041726412343517370290998555445921628699217087415237338049804862798791030978704379597005300097086154372717398933383782562703584734399309271499895582639169536883485713874474914003864230239731200874049768764154138262564602996210423996824351736247245947520411219899121734865316343600470259432857308449486396074879733046092283925293720854713920178787001224347337584097886767438412381223730172372355679890833005242162146034766065160553321954003895522329858433798406060020905899273130008872131793676009162046951505592193661436534198683808671957249855218227394108857301396686609501370986587125544229380942767806242394456868961980610871798386873681117202557763605264359746440004587004567876074872410253959373912622128693133276372533450933920273488701034423244359699250506195012903670125476369892769114699860687660926917144592364355398483218349805040965167578940789257224004300842889601336586688052948544574570149077055444392691856059322775269245120581201552162002451769526018475375148718492074545309145599691863071832308111953459111572560590444097634290901496933345700894192428024810158567122304064177094747725337004051034244189974421400306311936634011274781412647449328950771449673410453082594440689339680012749439280076392914514869125634410606846678781003510593563822092684935729193020627465869845991702363465907464923196969711480893723169244516259931241138798131603394879043314180376192285942232751358223184225041091920642037194928483927077051930243371942771552926442203799902633129705834528117358939052035007961834922921744609066399080563812098308961011211386142852423941399875982123814549130673772207594050135716089472442204906863164109936469670794393535116969651063969237664746229783335858615402469227524029029669657183999522244771750129526309558298540511948645534477703603729680824590490824085842246149486053731222616682372970034818408652793337704926636598007634773306752621422211413175656270074861548832361810091159345652489403171108106344480350116743929338944204011182624065763183410104100308665533135012301756363576755225098224738205072550747316391425527074640398500234432327764676113491765272046798184894485761555474595131849574153016802249696689612615591931800307507835106251252521000272890574060780858566713787946754675252007219950953899677862558004827724170752633683894728180609864276336419652156450110271559329427698287115384408919636222243834952971958810892939753685280970544773588177970289138863753273756416329466739969822203616998228755620630943760370154748410763147584267245529783071117826738532082775587187041938839255454733333029778080446192582702009865871310388651729674713051832438661874309904800862035084477591394255314832504610529147532511797094582121121095870921245238085722793703941507716823088109404649591675568138046534608315383959628457783681554051655386631269249395967883605232753788145579630189759531815457012743278164198182395969388226947144524193685946372290542798091180144195141148756381198933003336158907333124236464013110500936398452220059471670702645479600308522040757665274086965439809497118782804860347407795352807330118990315856825389953644671622708063236816954660090209070246205643481941288126414052982315840358366777540601365174210064039965268630213018366541244104026117892241310310257259479085799035568317580748562598219083795930090338504266672962583906815819555648078681916632477224244615799185889875821619791781732547207902085801552579972286619954885809614061826214131240928369824701631737274269593414891469673874115326419182945568202241629460157466082998611230574548377091550044118713034743335268587139552181450164644244356625077483742051620050341197540689904486073808073575575728434796676087784832623180730788954373341614073622375783770197494954754687013326727422888528606901957217380904733197121907432462786328276363005285566253721523983624020483956482479861486282473900100503382906474660184631899066166077124011524618677335785434099459595494760214095725686670846899848464775207875841292845059032784013694375028575737153634191060671761017702342295571430548186014499960917806044092012292110903232221765427018324990510462713147313075456032938190111095185768914811399938153139148152517514607443025459260814934085416390045608133258326042656825864257879797065734815245370704885828561630705627212317072919923444143324149200711319173656233059772761002784525837648924541457012194508315553299033879599276192440785192721181277371207533319669696331073449093146375494096103201834769421980419189447982338197752684373102628988210256619917249915277530737799066886120115086267625634102333979686211593423809710382281540522624309527889640264542224485856325097555099328139060365855170920098355796441805757031917787859071950583568215693667063947919131905612982499263555572096869478792834220183941049687923918377755753877016568910340753096795420555830663374167635096297251150466114492199127438283418879330600704758903943163939873609310274710900619984059947701809584331677900298552781358219765731791093334732816923760812249810332063171914539603138624807608481580114930759158420584742846828864342459566668798434670986421261971540202753570076716054197764145162595413986906414792748348084832994449531800202384338919153238076601789127362479516774364486674139887442656044513942644330524254472504807013979980020515936257600545364876441358896047123336868636691110794739283531873334232228136481903389898623486041377587346181469980407650961649981284835631788022608179893198095485053150730014676929299238482786074515920128171079670221995367679471100885094660658995355420470806014252037533277283346246574132516008409729374849728044591369794915432078155514071158518962395549115434257115546050349632734906122616004665234729261631515516359240049215641621991951725357313997991536823257662510592714731017212711036242123637642539848986736167532433321878951959742816569963366221645488430330135927692120825526743516409541706193143251905606757860627834724624071161534444012144561001468865335972574916177799899112757209728400922762552944013240952921360508554448862587101124035549658081238715453596337792641147508462579222465077215066210569392967571223652082532777478501678913581797464681389930251686607664546752205565894455425616643455310088687894863029825422869435879862227692058551643219076878054924529905306095563137242273151944480812369329317338999656806146792801488895065773020981964642027415627545915234169711209923444741661086179919362869298232194136747033852940535623022763675825153350315732752181902711956362617276755749331585789918220102166785820941798634017318258200098471933023209807587584395982885790166480508868961491092586468652781168030993655510944805112166825901317461363277041282286081903489140992071903526098668487571763528663639874827056048711420236234176578408399827234563055790178980552080155177654515209611423406817976150053169759210092620539598729620621245941569005652662667270267072343358380890975838690071198059247136569003015890163752243127983504262939085557174664764616164554742640170149403617065677613589301608252044923092782890338651013358452146839854913046133790859995749947888817678065742499696076406287476499923313170189791902634767810883939779923536468053110719867484496456583474737822825786175281663286680081333283758203021186343591243126951180984732942553848419868144508274255032340085550262436071501230691137764172731309146214980002108067970673151601450535423670121063071203531095122751463585589288845645435639910892582650517652915293877220814756695646835088656895388093797233774317770279578321480735348007309714880867051456885310604645696277570216390397376103876107538161409820925297052489717417878905237946348252571912148720820787683497800298350059210488617732410078296110608543989494416364321797014469094028820612482680131683944330814215455733096791445577420853911992156860212123619116888582056601767279853555793511687638054987598710732118260911935742068790690514283779007344152927585598148993629470758710074852230433922799113696415261934779107003891711367983834811867642912008099578211809068220360117067679872953437339538967673805536705433980552520006783070013191878103036105772184395860802337766563531212332295354201746525685316732576503140503221251225027309338753972932523612224508767253527301858714490783711496942949570977974707267182280390285373894403945703403449303356191163991108449727638498873338650624539883542251241053943554495386691164174358763598480577552481989716806804118255939813956476496076525240510910177796692708213247720544429474238942174873148506838301652736546581555480079412493854031813361893943457551626938895960480309590543760643505413025671591874486982599005331243254425472477813957346324478532988936040630136564329651705781988861999264603965380609083756006164852221566357500424754209436891702259815245132754403461196843728480000351834057341782505573811419756473097640924267899576164183526044078663450451816918146335851744929892474348215710917758105628040686301411242709473016244940897825593985219016471937705628264919541698312157260570468269968740046137339738848413231952610254613902873842918323526142571963472450285296167343433442304521437366265852424717670909110926865813853122808293596618654846895603333438211628257760530001527414201479720025820474852348668268689969622377058614244317518355966893534837922976209925094986336688846378282589272209532815957459600392065852264331477780521162439559848628588064113708052273571507288252566185348067772834937343667882995222706294488127825524875890592884896201910459236746411560690215318562017620208954802869280307454524568208234840431392287761527038537777447170588602536539745047546773051231747945486550294165376741101834006172009755573836524071464365402229027000885001268103154169361318433076227200241377263649618287439586401471169817930344457531212040324890632135720898155903296991621010031547337294606606457451753411274843304916508274917662185251191469545017240589060027834849697217279493599066981362294941462084942706412486747568693762313703413792038373953420224368562092246876117103041215271310275047108701269019228259968366261214065831319321427639057391450597644879947638150531296247683837826656308055129905756083660704903467430331317543065846614638564101146955862192951576599112730120479848292190818125147073326519767392303398773799221910856324104589229101937518410704744740006748489680418882537645760762633164309124465306906605792498355724664288016471838045016364778653870271042099873059979882051236984594921171599473532012623459280694151602314302575645207107832277895203272308241165448816359450800637259887031793676015771621425790487692610369763224972044930382070488857540601592456279712356084424357057727188875809505360811898779692149132110503816300639443984922556760396194999807766551067203596347330008550024840442737875919362538526112031524201921730787891755948293031536298240221141455800457926756397067649407400620745060872368517207867343292436590291126738086300937748765603428578779828130633889401066039847327788798388805852321034487753328918448384096428660099163576805623452277604888270430945744016466324064991933897112006381884993639440499382607148496914874078820329434566596528394410736033349961162579934145573130351351073417120206208163061311050973550522999009164636425226868123827568890730671630618815157811400557282464569409613365658239646316255349796867631067808085797598509616928638408813723594836794787787983735696309626752107150653106626755392350529842720546598208281217217211107477580601123622853541220146366603566008415860247302095205983149190122173835634168586126418789933201608669298112230338109534750040871588730958804564789410822164360185520463535090551664527587034266395529647616904437624398956819713696892741558574074330051923410528638705572644891578714557796867272319706806929103726526008990631785816191263007186578496247243666613303030443992660285971311898535853142060488809402503591981066358734522492562063436346588739222661210826222054840404929900488447389294342820614814214039059415155537994184864975049003027089407449411854631947980769518122035769012249962738024764130093241538433965825184786368043664118412724651030024961282758925594837999750678125784355003180784124265963295321868442130084677337303465766410442580141345523452754059334377915754957974569805857166759106403494611464714156477512073395143041908648519708444540105699085178821767612859242946629501359279947664776824189952816966552025702387584057649653514799525774719194624048746485264415851011837246409642935818571752638467867374204959598807762582862341357069617606847854813974621748407750463452699297032735022438030963217096416183552955734714996583876439502028843885070996083943343561235433272754971080198779603983473535534486328217158303929167006841460402135539014809901601867249233703584012496133930021219394961179289015927097932006795439901388243180461002515578014686701188452676627909539810387005621159256075124564674919765178554478696367634069869400139116671387097345866028979807887939797963949278477491449256568734357703981514568124188012014884755635974905130075780845842668232323379686260337786568192268130936481156898000405653044333622809172196099696172201544084876513426135474327907202960336438304287128632949685919873698095278901726913536621094729285107047060894082760910504177232019317071463436098251368775418949753074096449248386261254768871999558231209377831642003006696627706954702617150313779664853559228489430471049140556179785544833960667825934091387917458874664609249959756759136759575825335695773874570028199014934118651021816507614879900169715197835969976438744852404051531267134867629044676098595370849862716091037918107784173270602640137116143666639654513841848002179536558214365127632962692193922526086597330788620091644583829794936995871298537627495012283872996006616750495499458034648890466137411592375999689122653769959968469558107730264562593768455771020284079457499961273660708162627096779155692925060652818694626483347042670928989414873551738570615233417410105071069529776579420748539531716309152179033487909897568363726557098364065590591981139491672993654378249827214179662375652854090059443308638943546395272067616883028494096686126536106869415654206455001385242248921378638400810903869763179089999311803193927420705843510765098131706693244048877852981862380581148369736901847573042455768117553837686541059250606864479917328968602013343900289702567935717735762639432277829747818917370460916593007962282900572158544718137658987947972456126533235531233787680294644552135928750397145159036897851526178534053456829506191180719757599131450800100363500037889390443458803574921539102665187963779349815133115431625192926714933505970389172131247006048217739151752933208862954805215988363239665233376461110797042526849397504251871289933814352409058260834911552370459658374403257559447910406162839289713090052926925258951452478112916406492823121256005186098232279179701067932048731778673212055287899097091859044076985239760355988058331906597864680050704281969299140462745305505934342798897264051224043344924234049652999760085847433696101967981637153822322421954309196864347697742420685431335051049136253557092757149528411630546029965523508718609145393133677414371313452212451919154645463140879536965120618125030067964823919848009681729761267357646300888721128286341094165055229005108845488235486533681978134851355060041548161391130713912830618133474164571245349451343408183038853250221582866273505248817077565872941519103095536930587756565392927574558596537251238007390990405895930695309491353580125517491614240018825643266352234848962000754689849029447184356629651242977407821460697626386457482140475764509326810301129822856352011045270707859227090458072849421781499290875543161430094101946746502733375004079805317184172765059039080926197542467409089488935496768330910622496123913393747164095435559354056283394205135068201223426055190846015513911549445575349404855662687310639034715020150788566871673517474993959528730055622950278898609445108512406119433097242842179455893553680288375545120586633948028285513761185904682786848077991232761982104307882742435199214558803935891173106759837384432916129165445234983059691163701739923517098791852303147041102090469618839169280319963928675900090293047150250574596719750082439774908924289466335752000732183690504000998601837029686460484462558960641752810538481685621334750489759082849166223088116790571728431939839542958423297578264988081898122918160404859488105561620874829631333056193335196736676538464994039522188555890717626771547203094945796564942133878891465861178305234031559262430115296674587977547342403777576127371445041301316815651849383300587353656846330504066966747107562367590821937867337205290444462923151013767071977615735785112582350265897586310237204328552093752967021741210727289575212729866620838719474584655051644628365854422854049062421474947090319321127271903624920599309666788347407852427439023745206749188381832393170666566243477187986796905028650780086196246958869249185638352636366425038702690877642994099904935853111974079228217503346092979244962804843761470561388391710188825187727427067529293330325299076153866742167543395244057575278690095881801058534456602972901817398760539208970940673249321859860580218651499485996222545046735623259138303838941977330390792544393429005723553878086410912317469613093615943915359085780142887416805112752856589470280331746715393633400830546492964963132892092760083749185257601717200224418775497072733149819643219848180845972487538423760715183789938147452709794542074716980660283544404072263507404898744563739159096287173498960779280153937931795638292500924869450228790368152744482957308260094887598372491336675045528504005538360093450545883915483304253742293489208117772049604893578312778222101764885399020480491524475021891699253830454538653889925662217096236775536715306373020140684167561742672882555337125209432147776771177917594861993657331785380053975397479990823751362025547638488651369531337095630808407128491739810260931193356371360007986945476192953853247661905126309330109627956942961171796173451259601082851161432457356370020529692060867949920854317893408794823267911917681338293367082652704103583444963853608100241962744682378152725356716806770852568780660994637753167694571192345806808036735931321288946647822312778091845003285587419296063908712773390927299705215517725819003866963302492040640273740696415758824549053881122104510365039521205540659297314722331714688573508011281153311984868381046291963310056871468165987763316615367118334892622342719762861210141516658339355129904731204749663236118296676262546888171485210409335077462686595653209970835836597620823527678567012062100035305824002829285256850473355622321401116877662604673628132892477056271525814741185191570914911938808440686308202548002012006172922833243688419727349309420655974739727654755335565883674356464568143543446299668445477936967206429220776354897888690397610213235653555383085198878561112574213813318773445515107114996475668922645276129320390315213624818935982396040595700497545011053126773466503815081768855498884457196157536312649616270389100685121886643309589518872946944039215447893193813811634489128736589793924258221741787098662306087902820504405179532458964241328273770312585972833398751960669000924068118390244490171087848687386953438485079214530788382478144375393920718941530705468185036972654957703467593792672153138230648232638759987125742491911358102728945974526250227453175348144688750976801070149134815182881373735273023592834242962462799383608423166511492102079202069533129939612163177015490560358425809308092382760009949508478009522869035470730284771561867707594636665516830035923668192266758844598329717028750983229144466829024125721539198729896272882542695652916570000065987597232632536648261317033209237689730660150950693138602539822372823509761307586783185362655173691855157218006750981174838601196349640860359447450150695727411138115036792730428633540489101986768824902015344543386352361449881004135313850899882137251053171471772210071925920596662651785212913506390774992347504596882260333922262557267197014816835622107951267060607102693611631005829001457807610632924805622975797760589849759395426378148861982425702141194578539621094044047999909485951065802643331773092332444592259299610240048392512259774507929943870238141186699473479289486093758085478578070913971145716985894641329286669765277477785728807856606217126609102504334000974202355939672533810207757775618420134865091549724054560271334618524196478819340742168382322971450599033253653517951275233042427980886202293832258457215987103135648592713949533830500514526035114006208408486761022363892081612681815289482743435389502088706707907976925603711812334927509858800793654615975192251208396371843831000497061727297762361078309228228973219956844909100733825577463533012561157039084921274237937684867476145977086285628892518025986176549771525307561897036073217136087139154239500348627506889069454929624216151379239717116067625983923339932607121735897985239866842357961023553891369486313215197577822728213378769156490282424396788746813096610559440170139340511132831650971833053163089478218564582482902069376835350288824429159538599101805573988204099912154673374943566343911120961220808261381810443444814528484364612585196663904426298771693386242164042405747603163857836614828016700564526739766800579289474425215101530177033182287317886076102234275760506488180562157310686455078709178391584595280844944347515066594199946808464736568827939120191210759298235876554857334525395620355854527908755936571366156457728973398408503218999805997410174005599765579767692967579067146618600692859558237276058044989231705652794891725797245331789968995442540325549143532537681570310276001925394347514589195426129525717444468344260200212609186831993464644317152153185630967283167857627397105448046582183452596853447786782802539551030800308333196427734691297999155692990309681752024970065211145739338777401394197283829987976229074580180144638613304234190257090353546186234804878780392828152106717500052673887843140650173158455124091636284766342940102793895706130634776142974376089487403792114365486602124079643285384380477299944889076486720539483268189402236771794546060891302315019628134625136472489573858736632006924175027550627852990514931187870682154341256920892895935527185285446397789293433234259750721885606242206111127719528407430936334329764152015110477797189799607713990494593954840374030966886607043088038062063815204070260403955642962430949051448114427402570680789617787862725652427856361181477535884772632709377234371952274816955372296416480349475659662044560587014603848899651513794020036710938998774633120576883205263348362110283750121449094032894038608885213449115804629836153068941826722769344338704472129104168889509177681785448161890896943445663266098055318128338538180181260163309803798556990163302776490065712886651132158592467122670277182705997187100836824776400663073804293239838955424506651460983728230092141495119545524394450637596145824014455650556759118999344078006185309421671867716960382200453767333448862550625154451376722119989837184268134435434213376656861187404059089850688959537456070330437644109798133394968876091175764550051989186081688693112163725572138111547532116115521568259380965835778010096830805414189044676120579202106993787144934327551734771181155507886267826688254108783005275820370109125844788972422799163094184897014005951701735627172082989460713779257984283647464236074657008173278384089820352947155867627158302428481126785997241381364864458749853187180251535267417795352756682095012430833459642838194692336915977725770217112589324527466180239574871883282749163197154070589511391297469245488238625740652985121157562354448427248252963199110956741059864957793004830652247295764846325957485771212735268911239938659935142570354127989847713347944885648128584345712025035967546586125890586310309181524669795343354251932317015066286055071909531539855697821720270013014703588538131118507611600062499666937097229227908394267864341945170356110122805037061632363756615466565688280282857184823395471340469335051167769900963287576210236904249930661700760145700532907995118635041787333881454989728794865606713057780047862644510136621574388470869794684254564885963819253280795184327061187690770637713290949997241767868359517232248438108003314525753726204175906701204191050563283943282980655155592183207424509416828095306081922279190987214497291197375660199928431291962380610805413453538669064232425280587304557817959554305011165632816456050002888142373432310653885564884099380678479270916682747664052525772714534600318181177007665353825347704926378664673027956456519491642762104763441068544838036280612522924832470806010546958681827006624179864010858781434124993106064831523028977904160409929926422628693776479816161562926265979377491619906951185810652629107847566982962209244056721086445005695470928979743257808482248769062795496027594410270960172794042101485613305248766658985795241557719005437066555187084087590354260483234094942064863134882528698474762279748377696030100642847986813467690340402673123124957340436564810028315621935653398097040716617992436512212705993682571319026682839173442545412022500048098551796637150770471191590850747673566549194629363306734981680255171696991944998053325401589914387406184189759453373807948477560608406649867668404023997261118473262385880973897564370534675277467838729048213310174436355780094018714382587918959000649270878645479261364979874753765766902485620369863670789744496326327587646542587346831947431841048898441975862015060710073461435033718994891756851945825449044176451012182954139561633174700619083287275784817321988894756257169688243552825458186167367681197246834139276142110010562968738075019995379374323592579182179397749367200188771929685186295785100551316302071052419432498522160114759177660755670288271707297329357676825410273475937808146821445017872267276439882004503985492165192486848901773364079091397352481338743484294156911180323760035866450452827000659954482001063288920603698565890071454918040759911793443766883015128046235894674731203222676866559227761900965609101373826578405752081371201555189824213759968728992845899549214528540885767724862241262801671560457822273548222015927921986842271414521354486907403616586076364214505504043227433148227176861987112714257689149743030628766613089422378853642184416951976321010625021922875131434162747017300398613199291193229968558113775379251649270379597999158917189849246706501307869154978063958105260349267254494361801396492368422701677129624622284450944952434719276793379583064422762093753691908772755987148500454670479542889555359624075810005892688856926022065755095689094970735412069597194506248473483487574250650945155763316250911991825961002747649588706164767327666858710361139270083310661363391827428654834556997266796260792380825822113159331756219716659661376870684597998749777075721574503988307317713277328972028819034601137798688654358535376294496145538487032541368195919666550047214759985400377896689423912127645525142450587692215421353930631643558894473634403626819719947255591594309221969020149165160993469307822003399962636161720021009347424657456115812189332103085690335199685030143248203848253315078324002631766257836705489438942417177500494503347150375040081508134667171752395156217648146003538818653141129582649607818472895718775147494592008337135429519022723485724244899433370033250108402046646905733531371219329291751410924599923789836541814179078721933913190866971725970266125366769460670558361041579989419169646997913673740528161828310583122265898914246981822100477320133935740687965018144262276951956296098601415164594980671494799664702352465967358046080704260417677573264157917785487006988493464214754666328862780622405449053787455194763367675932275036157591703260335019212530797415200554788726147325424899235945152434308635253744920130650795301568765637952944270426157449853213699976292216296670908409558817496693345863605004943778062302772206614601074116543606908690448110187426681286983108051576688573894643793369778514496961153721808714006899084817453682679823878893583307048663045902108028939077761289652556994115574817631000882790730478025412237262538668975957937677247393135714168146990677231944068798415482011956492880355524093111923060715032388168152788638683921187631664716339833048862334124422423890326652673637176328896451723626077157456138431397578321781225134304725560237698345656369339964110603428390621450547530172550687435472301085700193722461771865631061064874085220309813220579015992616344666229173599540894845177916498995729459793027277765360199263017525096452754867178067104698897292420744958834031337082686886356004810301931521209054239480673852662309921956562575232838764954036347664505435720222995224119304212244267434552326879943849335631124703526658748739436652410844919026476705455120768572409423060256261000590620214986529759783071491755346606948279856108149006440992195952119528558605910043555530366564519128100031701219674480932390664457481536104800825424531783581700064086887032394243621826804678153101530106566602262880873467327367733451606204494471024324073965875397864273104329867928119520907731606680309082429486424677335321893178279716342333978057619120445792971182050355504607401578207282794215459578772429235112123495916944781900460909892437203814756034752087839422276157568352230917646841170142270802745473463291173228746587104339394964124365016662942105557355287018223129288048901376558349937226426620086713615158961411751292187237312534760774026921430407233328873075568063776993276441025497943265933240134948649509575223544502485915777653001896896122004670606340942909198688606959490683568765066198475301455069204314719545443903016119568523124495448983625604303997175435708663630419274651177584589928605424042676032712119060665466285566443359632630458547831844540799028027548271112049138099235885705393654393226625767671169896467462023912093910061681470824641050683044709397670859220196122645057649008169840661764208590393825485220394827813947073065002947677715693611628482343171229037483630871336568580088155242347525855642117238576683663796892674942244417845077671785823500116158396686007157284172587667306487856792925826500373492427105021642033600698364220152297945136438964240964375084899117245206198751165713588841099442598156205803839597599517684191442550790303527052142308243970583162494431112707476157118677709844882933654528446687689709582761936959113366801885817877842483255594107890780863203657513285711485773358415754775509606177196317607268819729587659980133398758358934188258737475838537143550409918965927601267351611351646704116763368610215769891822747814714176818938514849039546880814420592247817857411269119505251113446689497610903143315929053741292072759484465490370148607276047877487502309987305409224497115340960613186770138285649738300786200733497589111891536709336005018414855402836695296194017604227092366551266195292973878618911442044771587693776774697685689768994062321065666810768658183634697133650208243985075657696974597627910507551318918514797709368242557974472069505744866848048821424074241969288327106848603880065506008117028572423332005491398652100403009260928305560309359754889180953319503135845469239008111910553639721580793834745034129478477652023063770579429187454322386127618458970856870447675912559114724990822326116794581240466537474004402948824825417297469069676315834670799154582980145136401044505639162242722389054185925913493901471053179544097667930593891085055070584070022570659627831836168890485828569659852017459593888662489827986221226150412290856393375933630234673781698795537842916007673882099657425215075885285977235693256712118297444565538038434672223096177660623095285973398363202104053352325132914332101465055622210595043990676337561418141942262444316119644011425710753228511091311043813958463116189393862997686407496404756187712731028141693166980838591137981188533374950658047232632795735310000719158873608007858863426603161460436143764846737288768919145937147890796628219719177104373734652679655071975634765230322233626900061000714349566096553731944801301620840984620274118279085170931910986803018187125151404277473193167157477255654942564309718940893861814602158905538251309417941787109912630057668570734984272753361277151152289887593040803612329904458176665604271866185872021568106774109005055699551489296200067635271415424103121988563133613901488311855774315156670600397732027678187535743128520979912272219235256000719066488289770523675005534934913615315056735651260316738020551118494838179460720864130937696826586401695280304682188729033128803966421588231256602268544096236040541701622368414286262788017331065729864449329322177504382251128158282242542114827142356300150705409690893767609728375555416178479552102433416622499333637346659945597004734945735439787860735230919790752180837907894465462372215825989451723150946813219563475408082542095540620502829323459870632607180937684223921244325594383284915350282213703788791343301426033209252899581399408042539284478400690059872398032464390344979268113409574915977492709382351881431018720697446155280885151548498882954864661198042958214021854346725678683828312595479430211395471405249269465576172524367353975687947117012047598084589515887323020032363454908126448985914367044542473470411099284222221564240040761205116676451321598118135783433815579553469955951626155171420348367053748120938009215261772934591104850137852441620125878805245454134505424207095677159033618758554431853013882376855266567262316444482046248085625151729312350121812041988007592268065398052069772700995128977135629506325876942546130980123648194983479980523660723514974620911881134614638837612170915638898583218143825094144196390193675492790594713358725561215112977219768350233127756908748302961825266313317153344271980661131848149231543486694774424297775261967991675881005684174195874703176829541288726029268855093404105222267896421019690320576941072546966959927449339018679751867308171838558859497763735501645690343937164896300572631567595960853520093714725553892657814873579882761544458481535200469267542708544361656175469080283805911235223780950357376887823934225635826527928067621426767550153028078457271727459445798773365522057619685693769892149991815244386836044980770728078783132213388648176017232860550783954698419139254312974377399714571048870388918297975998600035035475136637825452512755281865043896588783438668778862417057131149101484447756890022912241958145118230868424835847598601290787040267119776471532902883023204102332289830820771712242271872947490351468969490683554411761643923914440734873587607212259195092613074858343898528607587990256439790919039885039619307711824101507562732581144737328574901335391617284779586620769945888065545874822467917886170076135212417922402465795438463501452057500186210648565612143071987763153067566256242996462450563187296326014832843271657449137080040010694838078352335510827074888297235312226845921068253977454316897026885095124611818893156031025450693034606924270615394394627218047754367421828547996087271383448915626405487210109082476527496714650863074531193413684552861984994002759556258687991190569611423979689338114564527145238962811825537398671628863766262909070598800088370632378106938370474662624415205912834889837633146647140738846075256774965150036572187142449405269512638933678767198651997321575498621324271348219518115023147190999193225074575059253111978852980162178348616378660887147325322874669971028580622360880899800031125281345460898203427954331990149942736250580117127084344512339071473559981344459837851374463187444248778723974341930831901126703941103841508333900828603476162380716395064165906448550910677168542640074535920585752240007495027479416851578215032767983120254731196832319434619772636331821774469821337760813662019043714197111024571462913001150511447444430626965049603487748029593601989202800421163559855651868902081175378073512058039300360957718914909949544459261689622856740783760408203948381040382617866295512956693230449114084909290226743516505211755847515703694816653100631837604334098598484162517780127820368116157001065057344830918521922884307641632607286141795523800626265846887220938301406148502303842633893517540043433990223590964110544559051531697299927125237726777090088213590086966406969706098584682187671424431903264809914771594173044804499240352278916767865173809706463216003881482585460333296176452154391769891087419085968731548051802856995628172547106835839535705508106438715197099288472005148273335651965195572824351919285070661160981065602932279206242699405292595850769132758249932245590734011896491637220964480262898991018599063988390771646649712722568262644940004055941023913604533937142945024469546118592386306592120397516010616373190583901377417925201491196170249886174999663036258331214518804939450401661268086377916571751194641077292207442246194786469114785923385434620495721448183362268288191973856349996453962438409107274656296523727613408985847896246415250678839181886255498243035311244092135479657937260393813993649194189042857802044187354878101119598033467695602731481832926331706885525268769926545021309678624068836552834429268018050527540847611545851634753186830206592368422362511921550290670945842651226314386651544070654238309995126232626990305271646342979730442490401080651139206910842969708654937811406860453040477168108879719766540471972581463861276293787629967811687381209542227888440320919727228530383406682556705999409465966044413607720919820395498410719885354088431756551479341626639768099998143285256411896824934132481562613574271155057998494425007783741463502330403609789611217134716005179342404852758781870933994597342583384400802182626985264183344627793210479595623529524721551765770434643866617048940282747569110688152423813690470239693561552116836471606229707945173618114075354785537437936889187662822094462245886568200949148270579350339811094394736692338488853491417988280047955575445125741033096274947037315164485046282793658911905312231647832377927106720647318926580727285425513592607401820103657060001931858545157171039762654056704322069255862829819071610160969009938395955405794218211684294537220402867573600971085953596023277688397558130243761121297075082123762501984914402066936553543965267162438887851048013880250703144216669486738303197355783426642266513539962203683555246739170357050672719716736185177261921170788325189224977505394923984864754422512475171476953226045829560480096479875026012521295505474501973908790377700582994695615658190280216305109186332825099602981391541947621496991320274281228426991620073101110094175364816745385046831517745874973860260967046440720423026724532568865009059563405309868787053797466300078576773901864277743504337721404902674192416972830049698411189944879958544076846682328488218252942377718397498377685031632816565239820759466587331568465965057310290002089157171203603487115276355784892217144146415590677186147228002293525085935107542219408272278796498118074526721288781520426985509363214703600600883327689176100842892876175221101967211401087483170971580802902228647715130582365913365877026305975185174537291134414668459699680323832945756743793366099547838165584018295755469642420338672379647681905273524676512613168422319414197694274131462022746832018690110996182767788961308711028364659321494011288264862429059431030360564876875227599770455638657413846053896191498188379962980971554632447102181109541838033339478728522128371895112997742897761292644081745698340007247623827693629600984360138130972900051866375109709164000680834949449201468215255003850833005385103737489547639829994575529532146463459580646921274264231646901773711792629373961378306499991136151020079003184603699651554176669287233255120376872124411711595098367962819149287721040123092981178732888574944060710126139957003658633800332147227776865386594936142367242169507639886273619873593813771825951034307625985902620527315500253128227363083860793378898966477124599110544939222366764630341018895470220049929300301642748636236924665763255845252897159593965909920751902800423105331546251037944420091081764531160842905566810835839578011713765707098070479703362978783979056650056009918820516589763937957830236048747600109537218279444348305647582385005749275452646380941246476290775962512437751328814301161137464390500010758917272496822338157100190435351986544257771532816527523986965838270165632906029794888030182838015675229765887138531984835441005099347437894147921201617607327221194604376786365241607135304291355955585820378216189606684174549581800582872149672118281578448447740769820513505641405626789420846188166225791151056001296355887492261612643992588558825827959591552479043727227864513811092972775772525497503714958440537263431013175172750405593865640537389310479667778619838169041008076630739442548129969121414810121403138494341934677181046515445019238375823993938208692438271191152436409652816111003531492403059143700142216343088649907407923559871494318432602693356973391010222894538385883914480944038452328359640839574072751227568356540873785797606024487056936243207170740144250595602460504353415051628746684851459333930057100204723011420441417574924296699266577179478036307246837439337813295714822960062394765974917950347364304461940538608155516161975977481094429423664032959325398361130676079330772145534981152119514661580493382959127878752536415776095194081316339274420611075785653798266009764651539181853487055558071173006857121832291131246891881889755249999269490584400705934698932537173009496843716494146081248299965954642328395802407556175375369574275422046104982614473769603249523384294410299463500943137860188719877539754829093725847633769382129680164445011645922305147928447178263037789758973209984889532954636007373819913659502550983913049166930456474868719000764357331280823290341450017704447464334106311998194531247831930868805231329246005860914575589480423802332625030649834768255286445621149834123607133138257701119338994048347794027013111007445719622900029023589269269896790413148660608634475543126152695677233635415405900053134877651580305020823483999798693604060567793086094237236613348267743094110829150768797415963900765577422509703243082720256479165854146163726297804473187959283223307523085717872267473379746461071544963490283383024150602260117022397390668034278115545836404042485161277390200594758133904418183595720696573410299252570323419310328491625767775968171833433048227773973131478104031529195324917856700339710225468153974679142807838342503471590231250876802659626630547306442077681576980899928413881327183600672130539360836474318053837242302814655979354227467631963963156058413849650793336996916340803130837841185727892134223769815528227758752733320457622939995038709486683074814174538062629044131632893413584970776509174844367951523877471938898769355806426194452007751774631622925272288175191296704139688993574613845872285745960344349648085400246457212764361403890339095392010636045736671444082102822850833258439815942693218637679998160123080543540403078515472129805364181411639640968601399780311934777421174989741316263036713061618000356631175644312274600656964375480583008271847951755651331055635447249782845579248956789470122131221736389187604150021361824569589207897534196787812377246088862739580086982090989495802371716565323297312372783193141612570730087849538502593825188502437185209001587951999453571697000425275419117039816870394532654432094415596982374128095957499819961565620018565710895421224156640119047997780186955081372713319223966562762775301663997819126588744377748906562529857903448650667392553562511725907763709858852471014183288017811767302254596951882586275873451888379740292097090051365138688309761352006612139224215969276349805588188248973796757449266221789610762237745528588844105834290780345102885020444935268967351119416300277402761483591211487797078522263966742062922133912117041225390603999013855598496679721238168894366595974155697960980915189927367578042693091106804552144566603935204539534144390562307729771994393437051737503825391711414443775819944069513854780226474001037867793372116625018853348903428982965215197222960704888004140274601921538762888609152247903112671916130681729247464697532391039093843227313685817414217364542021611633983205026903105626607097444714202507420236894727340795194003085675447319021155977094346447477224756518307945285572147840585371175980017474556556636427347134678832672135752237423547811010101924289138062514362379332732261231397294607461429385839966882992412778265257356968733333122214298531109689485106165618639713825564070590175742288758001808502449977136204751827864935288805744819272033370860841317317594866198867212204498772122521572185735214448270381746475631956356157888580315512521894742524013437944309726264814302456002683543930730544643988334770123126582160269096712425473858650829273065755042687755263191064655559248352510581466405455849142276241235371373502753908703839692543735055969976811411744784570062892967934138910017494006462023236825871713945679482646634236682445908049114698932481554424129187002607556013263036244802152644888361278174826659625835396575911432816218377690841882488607678841907359178600507635629517835751770004726562245192856051453545495477648383106649290827704622302064048812727089691364323302912266079803566135230116545691373809041689804336833988026650279246931939506606554761341970191151845584727463763104481645160402871340268466621790932442917198725669834751951884638698249250527457070848633948417667826594330473127544593009342586225429427083603106877603950779004877552379812653894778950664462549029001107511111535982354688512443432114811015528019301399466560607305543240420203826023338712824422736059098885126931805093017586190127519377310896322517977203033669832701851920854331723025980037949503557063057455023463260379945765473472334709355376407583545138020273385540359704108685777222261827250946526648878139618735595059390086623548646637213698768205518077478194194486132589237593213435369776108882955913799884006658741050671786017318037015926497739887829903059304997471650356180346599665694629019673166476042625108755438452967699391867585198382001105066312474693976878130513576576015384552609334404920535313533318422614704944737029279044509085065293936574321723839522456708942855864495594302370206404429937842013247385512369483957609323180719551389998872332819353649439880675052941623042909224203245681537904690535187923095697752385592044658370633485708878237395799372889968262252022675696338618379859712287962350734951200374531054757106918716013176123833767401071808623216932656118681925276228175816170880518819670004993520235364913164255802884318772379309643967652174779419059601255612305147731028993385542465607026906970516216163120539415735748107685966285641420670902327735123346000254749810721365815432443983785257292062119858667456832231073333866517427241392457764998265085583182500297439087240291146306279980211585829615308194291826918804698976925130837439336812540345341461850634779999985273533041555175266749693716846187984861078030597776519065564916389617189389342805115217878372330517845266779167172279287368444745891610273270756523153766673022307696152792941097657016701319228348928249728019501303531246649892987989057965778518254829469484124970696947604494886618421611612707396935538118692501103366351574240391731833124662317516763068339661096116281714490581511332938911988978866558581642001274028533928833086843383075551931825899121675533639070211347569094268947358571972783025302012755582428755550129730564372714634753976334917066051103682474683413972685563976280013386299607008383003281910684246659415085931916244892645697384988016242492963539690676552816985501685005269721264691966205111688778203860291442221763339150218020564415314675079196622624807912453593810939055848290718222986130703476430478197587559951478773581042326781784841905564529991820471422304282077261738121041330736559992486363194193531419031885272188719529373380819489931302569535293653886580907801277384405337015043290215954906492832940402699088135361093772622369489174894325916920084184859222450258863591114947788019755494291593866358658833401146467145269740344832159627290521063480498951249483788686303623697049881403783543730524971602589670684700666707156908122801558459755078978180125673881162413727656899878200400573406847070739332010135504384532093037243277271976333559378378164624367422421744037473224219626280459872530994241320819040855747341334908896299399713694815794402297384929981332791863300457185807311296268003593227032421555018449995960515903116897799982367702336634606675782481984299486093945043302280366025856802793607937124364591873333075477618871022692212640523946258975412641284402527417167681841276084904808971683965618912349270357729409592160085438079906667112124755065304046822167558021669461528903200106670976386466889238593656472109555982552025620771209778372619693378521363703670276378139595546494929170856078626411896257751171779169139419983717598365203742967335054453868186499128231152925110632880697137107335015551935303020291763303957589399403633885839875310597010787004755647892505392935642653995679844408459386187934343206972410493941675134908006336645327881237768708461260087486692240599187469974421237885402358055630903289571450777644141463510994001922217410467103159725757304743585738388783654175395734884911096999385379313564051517491489493480956374488001028467163614633710219262800814553831762469250713456151299810711733310617477178436606894273616049905458705597671711093998251876232735187835753937973919362319592721527879357805306750381432286852229570524718445567538660099966697207594097337094371818829744738728972695647257509985683215481613292102274453040524487144442476861836820704542194475214118741076344311207774025554652316236949913290109998114285284076395139977279545024158140464321698279910761511736911153588562195305954164576176647949091774096063855158136332961058123144261881523673781220929342174356670716048698566619356182001515853881621295186217279317021060155078012520841199370983760098088723966895759132610306929439126294381329918192516670438456964611254811006611942237675176972742202139286144486970903789157851491217681918576093917045334025396053827358855628621197166227463643615089464488417208390321269025573196414426579057707244249081550938809641086844290205342604608094098545190732655176950405720257683032509025527342947975976044986662081166917290160645268867102039489647307500755027431724614493959665667799744590384031070019476779249289250492502554514975509201925089632121195481909652901457018550771051145986344155846226149749614588076912788267836944603758400253822993768663338669548036712338438221936874189380962458187468823898303626809789604948408646247960394868612461518689214324038275258519932621121238593670021655594170993504700950255391647193599539262595691502760578720721912998666565313321830952204079395573218536621387619626252990539716997039887229275007359906270178205218510380973667362245239327124658755677395555624807085597462704174204245497768095481871504491246374060003434937921610450079819177917346056934150013537053862335857997803196481606972242914977542141949737513845222311046478752186773382279795655958561949452597697338745552270961291391593935318826593975925528387461097068305938547663485038040126755901498087945088032126518864107886542277274183340199656625302496754947163004527602893949242294831241986029737198253964119622678045887777936570905935947206054136862261962596403139590491308948710444049012445063884362672375666741892942970553744548028556596549852229178853019194457613697661252211715267922639403148534631464009165347151735149930730278577845143357572354687301744508486297239268046935815331607298868626940257673289232390181830897589764504798403000521852802324283029194270343972145032528156969388670452056443184153591090247375861195166005868728464141512146054618991347659307049767663436699756967804062745804267815351432101376107767075186526258712309337098728547450961770570573706955059797343337474462666271757301934556833523711677345351653810429079596732116867700080978900821272973286168157473332154245203298198451219444260864880643293211856405945258778022105591992006589724565660492632288181126960293318494100609586716583358690249264951099061822421725456685360340410311779664196850194988644228949020475948522682681724777336127714741176273913850064118265880724550073507744086496948221958432537156476865875432400636591825834180968878768878324410654348236772312359869921155443488665531230502360578300355238463757256860261468209345584214119410615914684253377329963542158186069991203059198497549654479492420756594452174710026037823297308370854128986668473138446991063641940193520188544352950488927884346002829872192547312807138802686032470635894306067711429034237725057370387953767854085821685377238241515752141586581636501458565200951014306247223199441872227893162922914400431208493197957101621696074587379215463740048735823985581594950148023189473659743141208026720841281039357828731054667692916738797614898217369898456487064872304143830161196605370708730766940346273154166037259353747744717081583242019259863583173392715128652619993923043762109291395670631636460951883335552488559230596729830366180429689976852326570334026928916655063837658729492160876920902485952135365330014403601765157607911353303365962396726436108688206634010604571150551457710223336532617990782513581382311664540713364570727559864214781033776238573592218070484962657457006047672873031094742220257145434779358657017704927638458145852809624989016271125297407805893984224641142551681136155071948474585018377901848550335805546745955977082809460587527168411611173564719880229687387991484942296161676731614043169440172960680977767715508013862389929937618458620230451380330148155928896625206676917700289252757238357036696644985620411936430594998324570946240901953243234855559616641538250700374400902450746245738990889521737584957805602105439444909959484779023339246788721620711876608547286955948597174540396184799858149346295780465341910537255033053022667451771182092215446089715039724197839919168114761256516376380137976578286046387029644908411221050219698216918109412961210610351130801964472179148503125938777719294917548873638908691984050359321241298432207428171854568742524505782566587094624638548360364277992015241241131161265106489450889043290337392911368387541020393211943238813934156773844801121984109364877113331036534424675353698178367513162098950507365657058045350985127089669687532632533830814429818111614836327433831524189197997882201423323722147974850266683867654889182498442463998715788579313204318377037325639075372314859631121445565973210192323702607590859015382093283935971129977342328982459850136305251223847519051616133259610704034274656762651723231986057136492556352260059838785198626518126622843664157925201035792434085984467235028188202242938692487388750863248157221005404185449075755282250279161005916530277662615856871622320626256579684971705410471044248960815564958321009310128258438529122930870355234058980245338641470934566951647491023519095579497923984887704346892453831863803489379175777539148593656701117964980057876561355123057707017559035914355007195986244339536596996166873891292649526108587945672345569895590716413401132142554152480423995466404064529879930966184454851842831998067488716019039305906422418418161919725334107901930886926236531253346799035464605862078897540813313935229550875670266066912492529370342927789128915011568293318259153837088128984553039530073535106686462955941743002971904294947942947665080738089222289097700999559109642378563316924682372652632383634576448581850052232966521652342793925981605058467296913380656510706963381492452346792917282742717150072221022024480100450215117548162331222163714324139500292719129137421715738482411637226923204342153232430689588215392829024582972706316162606557896353696263978850083553712746894847459942131349095564378433986428407688242669157103519267182885355427459427851780419759567570256875357773998547028372517237382431476377998944144481305663246933849944165585386959724428472567073518111573878281416921549985111274586662450352956643303869055490028864881823242821290214344251560178705022952707737310200628785286611633008551715347518309787366307326534742027422603616091539881151578714218444384264291876563752763960665789860946520446203820354197075239210238714279286752624693114276570145480696251430826743450538373129135035444325149534907510416441980334810017459001773388629669112701887829135649428924825836076904222956933620081074578644147970163160740592076886573613255032493034024820435717890280306766060567661491241318966317786237697003487117036073153231045346871834240183561500440731760697967030383604278266897141728706654283846404132284117199518464513905971096432423604532111180109003701115922815172239465668649073318189188664945600774480488632056815551571241909855310249441771401095960887333695657487820661701067944790288574674231513201191557784420448604528401349518325274631239344313826852308759066446401098924433829550369973829123490034363055482364193029526231133208301490555605764335100886247434919267361732146764202129745760257990802163165411946954020017230906638294717887208944313956608769055026325674527981680906915391795297643161295051003995172761609626700093244571473397073753132682165514341627377364200589453418090880616369087228684377339102129702850640723487289762862161763134376666885502859743027665874987406740311894720982935717338658983230463111918176708848507814737728348954940829007788882772921715438014335909412812685862282895555317403738509142494862686905560839609588766063769118106512623588930099405910548887756855344528412444281480790151302462593729707504651878079833134654696723705303808121418004340246657807561487472623204602004612001228783931466049087537397407203544002381935560059667966386174779329393558390224113553049765876240830847245843390860116502423203751875657672874884525390524938657430339718493015556221477139933789214224248948264785696993473438935227470003219087125832832328080196991687594181302984369014519608609603682571609825096087699606950272062585433796454213183127756713824949211965891561300260841651200085360234002564102676872896810353483452550368010148158727641225937022520393921479213714149148813064308446608530940477990010766026525085693429651336350321038618255070550996345349472094695634158573942150108016579800113121061644113730536198495838206323136479882583788036091643584391043276531494490532579345483151490823603211243728667140938383759034840079627036579603838045161317337733754365097049376978705545308472069547065050452969048716810064879811835131119732016119714359702075418476775038459906291863705133461518326369678081546614780289745397987253936308517811660844009394966936811759653262487776783953820634201892207188492727474377561173699707156019549170889155341657497446090416349710913141953947415433200111786663383504632093073223505101623700677287228618325253279045550268547281966232294774595488540332383819849616460588725610093649297925532672726168719010831795502342217103054127133383914535758163871383859356410540897723365979878366996016612119390308407400671327908186949406703885246729549312759970703176678072439188814316594188125332368753528556776920158270455001148673075653529025623455691153438559379345942836354014033487294797680854532397755007589116130018239553775831330459516352172467913786915086212708959345849141366613119879758996033818897115589736834862844923773099478876134837923054675040060369893068062269679853378074874381748282207106645681438333428648890979558481087327758087305090061710299402646725996372927496177727320428770188131098894217197446167448033045083035667962385567587957387708215304080499488772761910664942670955377442739197741124788604479051837559010196258535369655058833116152110118946196226391814885254278408469134824012489244611247698339897494423359158405826424921005034302787350211083781574117102663328252802560294549757646052374508022916648956901225411582452565446025083990461568259612835447337201301022814202873784753236902915216925759138039231685682184447062219810297328170730221692565577162809371453138043072898550693368391407536703236534634050220916373121395968322572806664205687241103741113603997912615730969625120117667018639788131208440094544855518444399830629223804132668346208847352322392760719884725845225073920722504555857014529960440341835448341244546400859129589670909482743446083646443942754810249095419039592053162135157254334176246498230109025178622997466543826257752833665866365889866137854935471410996553973057419747048589491666863673834208811113411656187626217369360168820997177641829957906624507319302258840253385830803700010486294093010065462425940667848053886557715846166905501778098141172053714653029773189686659131533736820101350316412892117925706782696592831178740184586234103462338010927889433209166959771853246189348098193421724769230762041886041951754769879109756836217600129295093713901219242763905798572137270809421761108627426900595701181266238209743056147918285755579131164297590210707035543253678349909755817388573885456211076361461869114097780177241156936577853569486489309370676359875461296984586873403735350686042990312886434262284275243084479915154898042815133380934820744061449961581483975984802447764843903708686679136473878394458454617866986726459763827329993039520293179581507787985240765547505327460529956990966479278258400864371452593406991785598074766917784626290687316783003882080698261281478416931874103455166014861602927307456229122319260550364986017166182244828061646299704801365042092387303854867202006439751556414262104785541815144442977958865622678505837122332864725048117047561792543751405635312920873653195998724238340585102152265400802484198564508176623890491515619834207364261884587667140900225881028479973478506424907558601155353311629887321442021986831086744257421822312972443260195171150234170511217585995815391459045132776331799620442764396746313248395765340751158837133127949458795429228036493962707496842003280262454920049354367303638111067340866974996328169541943355831834861478263465327627423049163251960262746262451771378822337730575963142075748528799048247719821813084505585168984632581858389107861277109956040097509698112178829204302772929596037793409470702289598669836902181031107744478628703595168568894146392818665269388564221851632277626921735602995475837312791452614808533558615902216412921180207084971211732437428981654279854889741841395064355557864701352807000297791769695118031738466966209907931603457790121000251145815543666845335858861936631943321570222842760631900895824750220843519605075497791664511626045386096987460093380821771645722646060124752662962719825414214232000697008622414825277557238177195435975512993944923961807188129455382696533158696387320506213043452301819019904196057551146879680612297573968367206965366028426883387763481969684206312604413881728038150351066979048757823733800069945321494346557793631290687050915985704505304885725492758126669290517923180301188495472574643922407577770252739639338746531257795648925513244361815864597801279399321578504954658150562255358062677324732502040034637679502741918444493596187840944330155677591809274448677093874730533228683283954681884429180900085647220566365805717463214802879439518012583970868423053445344042915224777440752949024140507671704296519267731536528171662200744044058277756100735884685366282880226731399925509070326802491927644247038552498665070724131916739768211914811408852245644751857350011583013315454845411520476831162039942220413497985169430183036155917077902909345905823409819753320221233018986688229242084285590362054606535540102152060365034005157859760288580879754350649346538526341059221862430018086232655585856486231847087153087681389338555323431464144771815272957406249750625782112161142023148297682111235274060278540900532720545134864642416980589080864624115270114902584504108404132198999275002095126896942322867258003941576177396589609785119374341464733374118275697490754486560190553285691069536330299430190826550656285644240276175998797860915404104850531266819014812455174869188345926784268781744848996508350031772495595427056227863154014649457481524842933156101941790092902046494631473216984985197990661866711765683999508405166153490467802928931358829822634670890587923786861838839230055757323595413073554464615731650630389366227122421355216742791655548472906513312060214772710860293940300345812443198996607695203064607426051113042578084635091052567100615388854747973297967491126611530391026302262525159879330288980353127989073388182705573802198409990282817689843649568169724877265520830448999325552994383172782007409018983966458645083334830704426229611966960815729838516056874464104807720959337606471685048627870181284817089620356906796678523650401165371013507471576974588311255696871970355853199340508080546882155639923826839529214790059628354326693545155689094522542045840500038156937582523967793134966722801697995503796396240162425649032920911820101364344679036826171486829013665251724728632212907759854799880016889544194730987590901280446132854840211478133556674491728101640840501730655634200625251745921267730817631828087685283099997263129016490933979718419500590896443228393793584549429824511514310552521833019347341056435659393895385965322609604929729439335507240471456490918045403619051373639330970432697928077397444590491044479570272710601331959048155869696929713393780514516838199391532437434341811819500647864216284040972333629531308875928904779742377057802381128811224285262298115079301257131399593676937941661072797515977503848089366217186666306913370170532883844879628256032320774961187363689290345476663008887708198005126817152906173305681972713192047375017107117493287689109329343174851326875017330578618985121707158087888755648295352668390996386861950639622799033410229027121853078176630380286379380629401125907870748709141894742844209334136620578157210607630956787246064951310885364859514351650726321844478921096175085841336799965128033262915024386760420851812721202255359552333106183820130958679482197799128809208694647267587370289987234219396700891437811942851081475926176602584200134753828191637726917401499388473131484733898598599932054518876121205950513459333889970832453882997190100718056274299296623340072857998985697767819369727713443084263738230656347541329547754359550825978970105454167946956547608776001525482140628568179988986734342059904008073593560685642708927252265964129200659482534306108027420679803841594255697865649424477472353810144269460184004757765793050809966730767693786004197926583692962998112235445362049880920405800358441634986740632711471662936778821089022307924613780267987505178880744554789283575032539689695161735043365025696203254299574082833383421853552367048313352152105105023574501771394791086993382763076091966121202241183570137768122277110850093139833017324491509049508202090279902620296484975350003043181177726751418411047464502676090303497895066412863430958210260071001770864647523292204216601722340561220329325625647086868094520475530396715681178897209172656025220659647184005649896940787577851376543375778699478921530999776864263031066594007064906224521157128743292405538359656543466680265925821347644720525938133664144042857956876802997725365381697072768509192820672794694686477295072299447404238585899757202452794706259868699680894283727582307045100668677426400553956135737698412456230856207615784059371204837779843314409988312150105424720278041384798186553672943546933576667611671597716914727329941432191483707061624804220965581037969406737588118103434722297620276918405123678307209868628756440320550570617812304319710314868808835491235755535668270816669310503883050839291557380863677104482403648406846909345733553180877142667437890699984474240180689799145304242601003708504170054850957194258263123352819253506991708268906174309566612698760161021289421481157041153794949731919036133854923222435541251587462904304894642885345170371315414973025350495973337316439513820373838319018680812622459646287286862904516766351350045882883246218856267237989198992894915161783840783269768777763774156053522436419217580048435619998339184329150030308161613259597171581120793346083097050538419205864492710344502835500870670333769156969517037777147357285958462389720559983503944330731423830644915271029918237521213310207877857317843289162107820905872198218427969487757279392098697360024128255667571834215974592866831377341459587062360416265391623774336722667330806130894505308268168827282258460495211867887939076420688609280169882685328116488956253070712837832316320402983150841446536781820201433654832705986120849780600010143425627789480491428915712177727875461623564097451016122876900673823006530959773195739585563908153820196667382415248387913367761224715883118268540328575245765277460035654026042300403316193028229688874192686957124233430428924602206936589261300298624728682298934286523547869792096198957806208890650280424923155389531890537716193000813154984166511528882527310738123867210029845182737818269349641175790357386758133678214088384660565936553988241642399217918689889126526981127612342814939975345950582420267569574417941077413780271790124733583142421277648964727581533909614896310327823997481529177168973049033375941390782412963433673832022576778626151122784929276909705418229555260591730822712171136223123674824730799503137551069611434999539872446183071256283253873413058165732707629509146676665628752755890979132734216897052604025856887968989321930141343113454900811587295509633609179605135798081340884664677184581395596306216484246818914411126288081004805203970951005057729818465613696069744599408976977156979231072445254474674550604236811950249810229968734318413602298037140257993778477190464943165507676916326527467075365312877818519788837487057188163179234128634279233925634093399764903841595227798558151581441134372546415127948956187310023459050575192981829001382628636551633457676350262162113540919068135060039332336863713236485142407048153294607971477515889380343305956935993696615273569096650200247269387670303219366137501703023143900429277141427151617491757272817101852482424156543733298871009440510056509363646918762661561065622570707325528758781184206759618013089597363419142081033838830874664639833933233127870396607948414184682729847418037141752080915692520548950548790361553467953054902512903688165861649388894970852881651833229675744344588798588987735495758661501117211206088393770479716814808902688140495811252682381909092711237731933369918470322893696334321313911682030392139923450858450198030417937416101466168963298587338803331119712660357957207045044327955688656496274451351260294548845679507012356766911686083147517486244006713866884227550490454826967315398758113423372179466502528524726242141053604847866860333792085534119890405183141658480111062765107932664303459143300865456883506467482634685285810207391065893113572553370443424958024744533158138388362741697327200146233535838764204412175753686375985941297859354021567760648933772449240897713204710287583723171786467224321770075158759525434662478205468175089539451784332297427750135603721293049053450854495953432118269778280236874959838365766224512379387911999433758307199969174069611888871869429296622735711119206769439367423693914553810017213546884593672411146651025157301574756318813588527715428385976325352574637784829401243854679262923338092159917161529280147100206900851089322611491831690247063043263663284390097213501065902145443303462976083375222292942209413863520878846696064518306187476302078546237365456972261662871093276108153586767177782684014450064138173660582483477710766720873321753327608414706332638875011305560874113857672290721628191567243528979254880658757362637934660940699582930243888604487051170852893131574960005846925715003277237744757192177743323512164407957431542793411177095672195965019005145813934961656551599726374823631380874354233705363184947142129861226607849118514909246058644781567849044461173953084505523115927120547904722635694155439522717996877353591298671104050303590644647355728094070745432482006442978881669583774865421837413044408740054860709778035317786745516624296188522802826494423630232573635942808384332304631049157508299781542952983385037382900469371526686145427406890975282170564634009430639473254018191568497624072702690152173912542651265629381342554831254670176355274128437505772719073576110912763150696084960884089346006228062355183367142489084782012093580598274154731548417835245683545646025010958719031471213583983624917539107087692138115691124516118646818002593482512454059752467923027130583499648120287070646714746648652866367204869634308285888953434657690040026086546485588122841082386362518616521335169666845668233518899181820721787460195759677601781081141743240687506575276920118819491465667436482835174562915762729025123265057605421674493312853623493069997540566844615169737837699642850862415685691415982032233133684193149835755949679598190814060233430514683236131086999679592478971391737510753888616651416474453826404172551633819971009597902820320294317578217081630858647442561858689160468929481896690654786307046954939609907858236323918809929003048428452235379246452802683748476944628891246948858432091967020465078829530356710575301726556778180925090862340908252054486598325538419897646330454085627434591836601640233458364851972489108933971214272331557676343458801312804086836754777610023782360670760564908271051409052172846408040485081437615407207789897667321467006778232946104733878700860720564751128271002721184824694469087101003916228872109609934548640674885698567380828657961499755842871152470334660773587548840705162618903517310374765250347806173070384686911748227086178695157906932747325129041508031603273380327930671346996621034293987455971022063925082983212355596992605728784504856808594390500368703710098502859995644888202540320590721496510505887809753992808244191320420462875034257003247248485996152705853964755185816635664508184018339684739002317268426200846324402147369839633747739450303885506272769335462869235889241441742058535190909583413703628733583515228661577719288186834713475561326320803788647770171197456990649831241498369089860363444843962331289766253426689493203524456223255742954196543383688175642689145736121892754969536543910226038952309354950097179903506870847861824832715497280264287257418922007346169305541276598719247474273791325571929173238610316082761816775382109673046898411205326397758083505211766035086664032987850714139431260529392980491457691723223010529591997674898133368450095658094270414783727967130381838020519204868036868216093272699865715558479812748449695322552968847277366848142307596681420847996470127451263197850410659254237952180102632616796952063250530913767493297264235111169060290658438005148190656634153285367774387150354163277905206130282723235453447560403124746909762271194487400915761492723639578798920266762111652333356491597687222878357165235340890511146729929105657864143390544300544767200872555843143360729399306587168025057531882168755336838133062314917709920244692031244995905606477428128831922624124401638792311630975158285435066367464307401834892903949107767278720342982204411196040314335738853338215551011574441479338731703300140943256573861490192156371643246264186824211509512515585138234906276558727939558986207573164586294875106130476146357696700108356818439497841754623410676556689052629948280078912249045958858905347307734202042546458633944222896208951047942273211213257995549194198031246463288985311436715838555912657470620727520022992111161275861129321330066165571909612091943295613679262053153183476272827858810385622007392345590216850887345540110876610175519624311683626330811154982338946378349835404047113082903358271441342154382116332847563518666554303233204853443730069990303299548737327886556880750762053165986388245686586693204360986316487551894865009169744958112090553416406094791553069632431252599595371993385745346208809581874437400919822562798653845019219256187538464887177534757530227732394590406610810009881290387844393639596403326873238104889376829477223877255456853721399682769649643492895973618905639448024582380616771159195176661697575039737874525309805525587248045669631005980247029764054570444577683863411359182303852874989797489660382891272753006492949489350740951671893313973228717810369241640907881891175791999039417161108793467913376666600228956872266712459889356528038138646227068189920636024090636957397478187717165679791070475901096731845966857008077039532666706875962746838441662398507630341735002034743736643796297878697535142683956550361574302579355200027475442409465122072865078514042711250054484367420000515905281678841131480843352371186072020266827214537486719603309387154746247013263540753987303763320548905228114156056193201569164328635525003541921576395536544087778052868885490199113572268633313084287981248970345595009887803778479746548554146318700841564802379576990155784509478320709176061823833296708767065097643380941793084976287717374883045910640662896831463666278095231376192458246204760543817294573685577551606856888468040448710456912228487838071597853559321452929394024682723901383899001180402207546656131756903823651323744039548773217839586890587285702483670544427771265884550344279023036738223900656390594660211242468605666267345349105350642859451061517110849228860868740203688473080347462660826881999715596045087542261526653861549794550533752229729509174825216927428102449257724909545371196233859292181464695708282520220095193749101490365672170519851108617468250951591763674610379953157849960532505141193201749234036547568076517415223305308886992291807511674415847777066388779478097803106581591407357741574703955155709506438187533542218883434078495433488660677455170182128162103763787216608198124103125520843913833431460734952560303787507766738480861602396621078774951657150090321570166698159736153092184732604214976501604763793068859843250471787114146659963071249243573799395992706128160779165964722588348515170088025894105480631802074957012431467316904928571498815376916385486556910476433431949514139344914966523616829793263254731636370530118527900252335460237242205236299415687284923370885546369859689266297888418029417740412590534158327788148346909530900377289212487947919709106182273950363651925508524699505763781036899943087121593711960581145775256491771778607113300919424052118839127659653591949651691849938903976043741219629966928823178283519462718597095912312821767663246909639506246094485343011774580981067801722044920620906388237523408087311767613255780053592893806097587320988367469317111999765408466631586394105449696647462771231013056639884497581384861360677352444209535841865255779894423041969838205051961375434711069040446261655288938771282396050699547796240377114984332583767181488747792633754439789818166660540113910932537298063910466605183052477476511279692178340585645361444293202935393943342272242073745892032496680322422834820295074231942731281937654533465064795558448165353098980380056877268821518207379903423546667440104544933918591889881776656901070471317030636203911529327670879110893377958829609562480165654126361300465732740938140052786741974242243009319160012751046342077820470968813090146739488952525235203417043551931748512197446843199277873364277085951327095218843060986312593447853013654558696667384907616324799748329774448384330061476229480476844277154204855471861852436040799952216262328370626327868482984917281848496813514812840914667274636475307981418261339735686572671157098367294915367828518910476983985005902416870625808292903384554899691275177020211099013640775795589734925913430776113976054465589933776432191360245237150496567227397975243703773179106665439401540372670969946602178971190989702458866120474722849780435987969520544526668732964923940481312595187213318444671058570443001755413621410506497125899488534736155885823321081300560907981309305550669111673230921386484381806971609882046956589312657157620763257120068619913010933017657998173794235516572536230917047304198985355951781501639824419333569607276611285784773148741831360365013435542930691876181330880622418849039944600312382545506686092965017236791319256124425875197801043400559932920932685619796216755916992907758714313539845291691188491966192278927737157955458109835977842964347283393036463616590748706023748488165524519095014504107170371419266709599976289031792789723276343154997504902893562139750484618048417714401934337940016200039650887476178193137233757835969275212649270022784992470718303592371732147390632494801130036542730683005054073489734570195272428975463124433322267885421148268429884764958795320604062494917871130551666915524702335862614836003041833932696825885851170278415028224865854845820719612428050012407770277592137798230069971071784044590274169415701869248092556712991554414097216164622118442124712633600253637140607435668941678128411741630786038343473989949678946883086357569819847177852148896664332893545408702746299531121321741722939634214321691590594879718706706896555768149774517054300902685723972573975828591082421048387021213435212679014075906629982349959364059460925741416655570043085576743828350611829753936315157495805879074101453478562053294954297894738860470339884753425020645539454980913695318465556780505667804398563033317953593253800574687863500651910785937499022973622886845808402557004160812927325380643406793282180688293441196717745008687642732289036714177623080786845332138207818346119370652599374127752450444667583945571251482627246194321117327193358438520308940227432132411419891502821805505939907116298699731566292846511293242356796128962608326878107042494602322814424914264741314300281419534056149444062309775456639399214748796941775174101395857383912766481503800902461505871419015625216184741535947560874715758802249869100705416250465179717829277808637523711115032915356346075557891711265937986078861952247824923620222767959322781229010473251809169219410860814895206711949065211604403670290160707882975802068475973168629199892045296849964522196173655469146933896320158853221747215285696869097711002215132536501188959268020764397405895056891209971314746363142778673525069263132104185095822707438811502359831375815021461138889777245703731533484176299374615027968773975713582494741229972111435898899121411443737220433374243707732982615004751077049933904538135278225167781179910884484196034212137867765542934756746910088114752963984005631157755814666904225802952929744977215916590303757925673374016833269734810111534291202563251575732299466850049446203755390352110216244169688095429472170366805038125427172806981678794717901530323649157385927954899192263456648595367448968680401767485661227340181091328478940179184399725805021721642901766410761871094603179848676550010120915000606196661874153158650068525435221281367403811761844286682669649502503840112485391391216244247553815872381153009238371486701570468111584937004612252973165309016344635402683723972293767356426470221556357697936784520394629061145254450526442831526428985142023595958783498268652121481917520700841286756312539715043533318717603132647045798615114560392758010910756291760627769364109909989118721899787229530995986051656479673268602545638669564606449279518927344594254004333217956742744807724895525817301314062767944198312958999296326525377416654061907123994866605966000735532455942010100756673850741120348743031262659712475477664363696947446312354043178287077142214103940698333976332614969755541475327736666417457332914501670258041339035042770488538868555281490210077781978919901959495661049455125761225536265941000398556842981282702221191789578579987654082400918170417167772727094664503274553011996088071027077772826608329577072543552938241736832720976056053536556170198788124695386792044287473931671836556834328920987009133513954640137953865605950897814251735582782463167697118387606653399425617871313661554087939303702322304319709635072067479976957263828137759374534500005703161095236331397929847214973161198403460577557458690661603310869017417259887789642240672200671315628439284790886779132622299661892275175050719350075876450427264493478274232808908613072678409181344118490804802576094901670485154643909389596425745607731954052063705463112532497273914001284202247156135422842025434493842385518041600986224452525788158293357693645101177843186222188798956618491690606255536559471693309793709660674129535188020300263210745730602178744081799486373298568297180151894817031181327474833725451077841635796532326397819811217325929101953736871009798276377606889565186093108595363280303995353856016339485365606556399001782330579178384788994626716582170058726707632805266377856943059569083969587861805490916790964824448928975104580296727763410395900249519748537081328065861558511997126714448490753929019975344760605978450817718841808472962283953000603783740751872600458443425230704881855910936247382310325474849015114704739269854947090973952853606457381334225617493580884104053449295897570978540076048144735973281518250077342506746162476845439340775002147141406515534801752703008912632650261317955907642063585670884027645799225357807242983217022212643860347004375569362327690341504152793216321969237108363018876240538167080526180944030280270562603441714889853785318516255488588493744414887778891434346036611427883053952316693641606322453573853757340681223743410610026921001864349809000250219774841673325132015131104243503121550457836659066941170845021306166233389433568753546393059927685983249805106266549126126269928964117290120322591966799658809848949491697680535595864210573753301202421568473585516863505735989640649075621394723744834718355794745447933746098061978144795921727863539669724320655881768948574255137972920172348434435503668744380069240441715023283757644314403530136650688545154417115251429706586348094301469300332185225487426370967048606225991236405685210510901462657023613627834491145683576215474762184893596374360720177260336893065965680685528297973217707942712751596047921693948037946439184887946548961004861584270310850645750872302701384955776164979630432304546009054201593614221550113012506137462140613245589743560513425578843115169888770621189954424076500628113916627736297964736875950647363652754338207242586198372617810772361363534420497592152933319268734850546070643910616559454790072245636821374343448413844785286034381860506843852001530546634102360456444822434622524889867461652215520569589112676835761097339112257945590086641635505350757725515551862787017371086198810421696466341624786845217818521197787689695373474007282505998566567332746448693864554859315993375491464138789945629760136365246711453377907816873154761632068692862330407051933522060592861958980927867491655469515111755953892218544044032959923489103635841796959566458181529817085310358808840242619168614947206990508217576697615186101231182668931339599233558892920502963560451457317562954109545967907826406828727962402321445973574838886536224749940006107879705053275451392440319662455997971803931540424860353998190102864503864768414856493481047000769640519321787463664765190921040265090728786117167260479305717982383032506966080240451458966209558111565431158870565250974906722904507973141913126555302573809902531326080828102169552332256747989156476279012911445307718225214773328320318356049163507943373757633972346937094673095034683384403109758301482374671524632509069572875698744363878118805273003970341893925940943099648339036272795775884461014773613902140048426113017697243771265338617356077074030840921841568548412074933843533526045299402025871957027826640280332410801926856958991130387242315699922138522910263324961746042602428925604541441402105859874530991537603484253874757534711242841616650892290999707385102147138145246848702437240728110536225561883532727571330127615185275227179363279914794820911989683473906256374885895940688016480066837721230965394925498642513678141142454799358383451317716996936963759144489467194250251132705080788642847022864879559133991085400013312843522846485215207423404188659877226731264332895713118614374516950293939255595614999784093378897501699044019098403419243094034078398290253171470881141876490018669978671826096715747606911218626212648996068799324380895178504933697836088988600812334520865412839774802813317481251994437151503936204935823269125289990053405380344136214090721655176795833009952177179938409353530090257510259447120682740372843357242250454745025482129134383593279202424641080773137061346114168978846503111460678104707337472759918527141539547367637767707979404692292119330551654897452006566436005443523229140433725676750616733403932507427036107922849801459937668557848615330584891569060167577990749699203803716145439560094378473740981352649489726056326584219217303492949103074235585815947036751399098571547882047580371590165991583892489783779691337535426341363945453195825308653572518950351321705858965050998655384026306046563373015224575375399216203325438385724892407382109208734110851213112800453289268426906214123415845495894595531157514301004584752619179107228691664615085697239275779973250541014162722544203324925272311927344235211877708312010136905544399752487987676811717303314954885272388261363804361024157791415387990209396177623302204329710355822776885519508109828144311220445576100439371224405173503856364815430067479063814820425391848131665591927101546489635303738277150776918271388079933297620744425517145554602904693915717402098482940863884307081034884369357888370043784860259599623071947107120163128546825654134691258404129020178844405089342521928151436750269539258410790458878877632638221918984089656406717114436633873030515144974972240474351866984484266801856180176826102791619718404409653371842283059080573240812757463201104935628690163815047190209139707002211210623811317702912429898652407197219033231909247822817373721276230760398863914948374861450703614913901789417078325848393678669277421622020609693449061119707691191845486578685636740590867175966400913738913087138362753968805415713164099643329322286525487171700934407181523491779212191070743195978590785403633360245415840732518291986663763581953491827474337901708274391384821296911745875985529672662582492204433487527868378605075316817736843023776137634885798435785558211531030083990412897702728364787545492206103303279743811350304765493238687590391364146294797229477532452886160701837491465248926637999965882549697140835530767178454707091164629849788689923100546519477417546538282326851383100353917351026164724244541896424977973723483068471846323549273114085212997007434224315745031518700236415249575020174834488547039665193211949508064344885774092214101067206443960776995154409211042350583868729554075509504075219662296539769938617152681014997258303398207005219414421577431682518982892089971961267927456891835134882113044663828100611541598636401256493995640544989703938000531366196495582230836032307089587717836429189627000579935907324787565577188616104679686673146581620443757096717071292582903185101185729551192948309299508302915656946991037770726059759202391919817285994965641602945355890481167693990652983984557910593788085974130523560514410693940951658497366341400086781466397592806934452895519073597289804342948240972553161995806868443044808470016448542760333576469545491727033109906951035587514769893973713246358291976901262706513771617796562846715303582724377116955557681782160435602820529838598619161548842451601539798453212086180174814355127449132326415336393585627527885950524399495417152748753080262528518877026316778857917812187827373685564194792972813821491730638670362872881017035863029829679110849871449419210389561381652967956176579333179693982849462864302676184986727265882721516852000012667532121769190696111832573013106345800698947703433516702510954705725396210178347093262491991896713528000200890236290038310130947767813821893694126455447462342305270149980709871320977613368248387496846292586497070929432183888485578999258019083630493462112390004786567762738718909354293504825308429037723434967265967247466274131681381849157765830821464125671419098740950959429104903538147415194735159170639781006028629255111076666000905946559551218590392793417687999220250508337238614874657433926182229534440934856570834262691715804423179113232456923037937386976519982282453737067599244803892450964584558283152119323369926844669968651822331658330151705226872852043813548900891008565958417929554243336477694862582641937230853950444511424291626260058973167405791839944000346080889355516226983556410255165196243427714857188822689094018968625010553393508492913718007692257874532010765604612928546264540305049142241332726247528371408408566321987410751869689266336781294690976720692801067833195583752150232091505563735151491340845321378150863980165257132522633101605489799317000896090156767196237828277506832936956399702699078188262437224421351614673186230201950730681433727425182261078873169554855286493006281207764634148305558231741767119812508716876112370182741091890319241240194045385818467813742277649052020270806226687893614103853766568589311086642257270257836937752736434734117591632256819558035980908413863212109241649864634239045554599854622107720143259337647357275306488352652669604458070691227621704224050316862538191867028083531536970934724377039656846912175896680458909842495824707733250983406413974015923897873756760816113458689817091036322814535864782853107161622163283284783579581686614201459723003204902165111458800764856405500851953966400360228438166107928639734102040734621440312515132740675576995578212380071212019985479212144928232671408238094982036098197439681185499544290674493523082751484925309821948674495864328321539709176381068691064084324970160263171589332322518113195921937749705547485721543514240247561173582845803501712129250605811062576449957109548256732714487630833466542398474567593223828018378217152991663698959704598634239222661638400632837874892353946384668420037760620018591091591667303318439897522596297450484786142693954731655419440567859298147615386259779271787857304564237627166042734144084212209095707290876168145656000647330598429251242644434445514403357011710476387606441117750354817925500241217899067778467095780713051850138235532209354800456188624835769092771674384909786748825527781303003190664418467113363919964774437717661649584368498547316361251307821683666162448320045053516239510876155178668228425525927980416331132377942425680316757000112454996460058399449539277758241131200759711917782540736472956799168658435021440378891457071311071930438152821733325865960772026837773623204626475827527708365714860204591915033089776081781301496833588580736666844766730878074934351296953083330694471421622968006677872710237092343210812951623166800710870960911628216449928613123741712000444196661307795625755524378971014274338717713376712607927567367411181361453589654263066343006988868084211494450130499014442539818683737406608394045901238302901612003570714497474969606239582883876667398037748912491018647843755171097858411439067805546138519811852138872977998477039762979374630579540616765934088377089576671307919868672080553066644303861303118125098111440352631654924890150091890187098676256355694454831601902961080811938742315425612048609230290845264124387700287353073190932578741222053017235910626223282438429813654006782737189151705738620945637245331393173630755516398510896865854836458068995981148335512036659937822969418559489314507892009494985452475089656395146706997875918149047031390060191711832581602200604147470054189489885998076909102619870685796029239192690200692061610436193982919579218576335069175083029745372952626285009241354383372271393907252446168659650409730398982646718640323554464103079860179870427905719098276443064674423796925220278125541798559614002733613685702047869516718845895999258842859500663449242811873160184182023416491640059605429309488221969280711669677433211172123382749670093355833516285557943157367103905532463789460991183388814273996417093672988002413216274624480705036955004004586859376537683351869367151742880491356254240302458878483475601010222795750527378772224170787542894332739984524465787359518465658069548053313442932645629462791113297770022406220592773033094225403222047486035077061735079710831646990295853504862661827588657711086195947396925826976410948012271650797790111447087431036173571967643630052195720074345935521622702924131444720676707742542751835679119706396876558110006751029681213507738642163274632200449206129772432933546996127930623519099663682335624008728218858633258034061133236089602183664170576182386159407192649688467951967807181261018829014297670185692012488937552058508225275735251595634694942267089676700055718780287444626093284263821877675513901815590372935027315237784328238977993532440616842891276072091477487383097552747951116546551489911354338983605245881939250276105354262213495475248191301509368432191454806232945868918136838998032465330285228527350250603352059982641428588318310010640470308413694027635974544476159131576288131992442304717136218953702746011518517228356285971999998541941689920134189318873095670797716773643508278009973587078604809365424876828530036020915437039363802974448193323083322326460659986251834995613157324149116766065349966657640743652207857894750302757156201997103601680677379292659227312452879791899459287284668000416381693020906504599131195669668368453282838015010234219469735300862602812390598556405690742836563113762833537081444541739250615621596744782415767668986384828993246232773327808541979825994655490727437018560914117218389536086703519545428969472554995881660217020325024634096427443729873443700284108835285912595350771229441475220299693809996992589657090462714861926143486862266708714494030765694852289044055765213085519083293065248996745606825841602305863218192037443720347664668358641220179730712078775117792076633320523478197863962417341883308991994341437470621931593943813030601475663326919557734459862310080501306780160059235516472247001968509041531967260949040794973153054290892684378251727444122770120284982907305080467705748435895150514335115886570478500296434614109764501669394962006798195525216832591987891307592991087221007271533444044233118222271317889059127726371361509242848719827170265336913982652078381001076313065216418302117783192608228690095202275772021387691687157814735866761119975693396080275077261035712433989547145062626205159322490394846091722196564441221965663063049128017210319658678680369811651370241333322333820426870370957663555046696666846434283402387607852204352553004804662483045677653572823729278729255685251653833862338509927115612816545817534953062864174596519707095711939932411184965560491053324239491726168060991445976476722666839430861211375295055172427522460040393075039889065082779563817229281786198236951918331304643229415665928065091257368335963458611697364178108705357801694774254333618951865207681316755813567346264727995620751217269798799492521691265574622495189001282675166368236545512307148248497554769820107250865912105658539101161055246271359616439746691702266119078887264061946223232072251156075563506207351817131622211754285978441680682290918700121442174493724827341077521670741513150596276031143594560800050162213041114622139149522846528668528769885592138925594662492350426262758395943245141360373649093197018159580224878796655871884470901234163204987787604803983012312639927542709141217334652551322048636916546607224669949125048278152510678381653198577506803440217021160427916970570066220077006372835861339004758505829593842488197017187750359609487412852491747500442626005770636993266818294757570391391856106925642556263992193078623304513013745191084456088073858339485565231871666320910701577344481118712698114536274362782427682693435873469098638026357478687685820930744300815156901001376792489203891131562798592471513656826567901943429227069439909051708472109929973697351313076086807277858387035459421777661816322419453103027666206432250971240117212304774929720143004278663352277543695969820271937837709732542892237836061395554166457084907988651197003806467706182001762499304353103794292680709708570341202118275182667513578808029628444119055020038262757841635169308180051952230547178294964495019190972739045840408465641859059690761510477819167805967455373854171157148779186986726087572421201079121277242408821427805335812988613716845052484927693825948525866946526539674291324448383561969155856768578333130096417614082164712628526223466394387747064936588480289558400216271423369903055081442159250262474826275682444507646781583096961784552546238938619953905527303706519523890721870611395862740670251444877326496002144463512961751222399943063285884789983312807898230105975385044403037609204812315174766466963629016806756437766821185712784110465803018570356090545966027283482952791642196241697240401212734460149604317437342264809134725698862823859213128375692650796344562290623994586330529808068812248357227092649069795273128314860887495554007879452023405704397941609661708462478869590409561028580043127610855967314011963168559623130320412872321062622865989326482947729027231318452497806242661330963434094955663358093935787111833617383137850788064651001467753920929945003215530958658204416371258700413600602106113565564690561677381248202188764648622777755599082090754894330847284775363206920217243686903763932216219671156802843513735084397625573965424703196807943403149805056202505676015219927438846899873357950868752815108774059718013779086494670370111034396906849760393681263587301341800024582857938232670810446094967635297855131379923864806538911670559282889782936565354373135531434913668246275638846930805277917322810976664312504015655688489331787408754003844114027635453888308436356121648604723448550847854590496887745691687841261268450123301916473357533615184052134973508914821315668154687338073426340261999843867381700917740297276434592565239173741665853506858320663206983916380081385091289975820665137550593741860595281732146385350246537085175013020432453293809135275609640465805262643307943984145695213350049435028855638249476380882915836789326711621796820203825762613578836378265400715661811850454473471811161650542050178983690562373738926491331768083940621139121666144249436746755861985800438389755393744844778462810288402223819805754715583538362253010238166145127240326900798490594598442161270396785462891090407674660432191646445248328436106868235564444299333927006102421219122569049598952834022789918581364677149720627790482766729179694778511847214613166551297477453190409975565541638189425235762710289765083316730444229404068900592059557794367280927788621510929324450494711060590098579423297756657523676053811130356239526990350544096228469756326059635281136684759598170481698559632375273780023727361606294994293154283462591361235686865389793520178779230709569889492050025780874663596348099405443454151300202675273901767262934682956738807693598984004473335135336595357628972514676616643774374376461123445102709868506576740174541375123811070379165351500813892033022002024113650868984893084547643296339278945242717145681060305470365279750547686583253804835211825331728383062199370073151734687737163521601938828589352611884376923737460006027812990310340447225141388159420403646134763309636491884091229990884993867688556888393746881002136527511884080714680951999652630575771068443716147712398430564360237869982328084966076982558257697165159698035906545000962507261533775551534267437878881273524261283017239427858196091836758083096994943348054667555309510433507853053870404837456510315091256211591313569185902313777301752468034116111060581735761949421471917633587806306710880824068370782112508219665596232886199381694838847523812826359914814622553792691244939716242538572609189471568118726675397526222460831776670877050790271873236770254524241099188234620980085270237320350324977826517783178233694272985321747271591828652592605620872193362501416376307327595361556078953968939676746378898771048947421870962468797872286827745686330555934097245398899165243867485555139089973084565173506550425091221572222522400233398029325289042562913982291957648747710440098862935105558250854567273786159654834176233531187804603806795013636762266206778760124068301810958866190406364545398222074076931941761068645302070647272441401754022800625980100290280450736858873759845436619437623292475877865659793916365344925715038132422890227479528007579630100068573016067089693091425931493494314596303141062301096794145507593165077991417480517644698449786699718474115183190281225333998133845871229609527166710107499920570079698913151852321054957031132573534358546567773380209536572495798226025688313970545457820982355145723547731209055497191268002802360732483583034122086338247342591365268749083038204021346775000556339149487169986906937821221074718268761589221194201962367098883158819236222716912956744535267055567793516011195354624002145121512289920151160544829937678774885988719002691673796526069412340918803600721614487410221278882106204049683665896840034756391934968882212649941905648567390389631133330813090129674109848004995711149851441481789892682920078627064827875140741389049966629721806334647338663564527437858796058667152061817496085798444884085142291484910906020452892699901758712639993606592750376207120638582001008842442575643753818587587795852778433927207787164076178990932476210146372608760778757149365121367040811702122471106919387977947479488419228298330983108231332203443860797365200688027187617502142221891635598827902390666483414931739416412295886241818328694792190629782295266792354872992803820793140918006766943932490994224491261846471313668638271513961219061386958705965210314989345138787234680961043941919925874122435827716381541683845514394945602649225025650525332382630503945719344692362260744557319950316476795512613703499479193193024447314597923611521496440442432162183953763093124809850133428613868538417195643670975509152645458482026962291615040918207897682838774727373268392377233040852169763650234192339112695027369432975365997619058623210482554583074630593772825933925321930586354351762599749228902211342762391772335194435136059664887823757746473151949528751481832815795747533437019558158291791724579815534739295416244295381533707970022206591197147006155075586303831749406199259503549700156775752534450978822896439480308389136665415519407782123954723005363011517696621083739866262651033345697300651777388786359375037411828139458811940225361816903683080963789306980743359302322554899122356111027457601497782705826814827521850226752427390806014062133669140976055895354641180507740877964975127388409838476050753648152889778072088546557436130483224743962652950970085140372761600202343626456887704182984049372653139822203254543802505519048226316531467554428772822312133377575324191162369711294458984913839162236018599118398627103344147925555707876137097066963821667053171269115708786690741431360200598189668966229812292956826752010203537953042020114450346986369562699410319077642384347276142153118992450785367264730140509779127461708444400739808144252114428266842389941654501527359161204869823595313931489897925469386813459061709678687520674770611162838594721570957021913241812393992695500792315185454742223322692194879152505173547276657807906722891473085921305965258886054150505758695964150470605218639690014548539132861975907924367449972727221887419805912136928709882148927814213506523907583177619059305845939595439893766965372764743680124650400251033242761400015296714639826829097319115726531430065815326444926425688639699049165040196782979729774649005924390402697607177273036748210053207063554690732206917192421183612176149768467544283675084662308803990885234219626691163795161609611227989419099504797420375547253307527086065309243354032950471719713565120369413571538628391459726826906960203920987279569128341103433682625516319309245706941963577917609598849453126381619101417108874761846882694625249054364708227816880272075710205734335812255270505965994492119755732442892443821306642174190578819057235384474792543564185892512954218050301950610052756725506080813537597823463520720964660898330374586258724337794484634253661099673564628269825617972538237301955748213086512710449627491977504423263083216090345907173658021839380781268751115405805542475548093423212737725152974288350940771312717838359090964151799481570465880266407573990209292410830917552470190243096251455480300391939182896445079940589020507024237421673375444847096397781848582628111211742249757390132958596425709693904293270728615548959477354180525476024285154143090239815671195737857652686592302739301942762266944446153167264021997520781275718193332407689157778459322202583924665395394964793598125734072017762752612107740837436743863453655186334958591720797374464116065252363984543696187791957135201091813278292332218618224224956538092894339476754766227003304936262847342251932335823802387120871655775735185576434826773707431303370604779629955029263517812393339132125530072966492206753466261057187975498424121232476217362275849473762847721791996562088688834429396305529748042304821394001124836221181696554264265809677126920157348408331149801926522829323223593039407340300525789171168759074489810284138508649236250154646482081925369313323226672890882105502678609826736371533443605409076632509476783700569462831611148504735403236303294518551383718972278757672328128402888515565799768005069900351262127731171047214827097931152251539323480046325523242892184642549520525923296710915902609070503915914029793518617195368401131653214905265250575772354417859092136830007015212776294322867737416902062345815157052002306885392664531993150943990947317108008145968596605916000545475402572297812143641918973037105228596450135917491628767198904889246376066704453193368820258902073261163602308348767608860916964769889204990616539161374540855023982397352088930414291132737161691836823898349835575226691762137639836754821219498946060268246085388037564168569466913390041234621033532585682490219213552955575106830041722044109267739628010994264755480425598976204044599167693606542292692297990312800991732379292125158487695643352523673787449668941649003908373143017579765243455817370492193163503059440706623228899548109447924987343604030992460476975020107388144708119560499750846747263704180436326277422146612417065055279646742285706760908476023982424188666055150019815748346557391767946892642752088813467632166801319591451463595150678318373363234060416362951595915019249678565589495232246175607583103817109463701766578661334802926596567765383820924910961310801236774530222299198017872160862092467357035816770096636479391088400189500078607597269039441487264174514956227512988964692738295794566095720850115515710810050114839242486129476386120747455273091500848284698266367143362095980538377090528695074042424619692977079750422335499129724344829110597903232755457569362740403247914721287889062621156078972680595995220452420048625628967453553620234333750083150057135904917409649616651952694145688229100745516605957395635754067441656275748092896208206068409801658159113855836835830096162718767586259185860663307376233742385173379623439283291974637383411113263327700054082410579726052626205495807280720802411822560607525397978852010000353791865804690741439575209462012217836919909702344877858833143807020181268062334746687675473366689333807204918201365740571599075057455256274329724469325685493381100800429109538315253286899181554122396852922378269422513834764608675621406622436180406040181003364500908705441384109562337533399309691558350047137246329439823960152050610327901281839335917366123405205868987055504484088064206963877967780386682175081229942022223773695948692983348262008386767020073006775858435574031923550659539094534590007757563342343159341893499187102297837263342956339221989041121180679927610049398647408650376486655784871623247649851538572426494911710226367146527666671861008996984725760824152822099714908279678994664423928381738036381151364842522420396368879986105257020321488566021550556408251976949625967116613726735633707778706108626258479526029654426205976937069782366068393380042032690209926680084706226871484394269299946205979537507060662556839753676085434464712900308497377393505931755054444640698151754951071399236754194766127681190443656923512294639020433357961943483564109263750211379294562948819376449747577433575663488119490144350975912022570367775891190193608359171895705587229602994226456900850218912005191319873094062418624265962341868769192144484211041353439395877472515692890129088587061551203425470014839482959328140111355202629544907743791360361228074877428420499522119500775910056104740831028944076574175235076546373804583842539313123818230990019193786140887752016108465622555579581642775903138509265762052191599751199566482732964568010618795698260112851349816066806984446826066605458660173378502601246353995027953203411821726562859747188822289003814670046823336351084036783884143118250040736975042756910582853114919732942014596393717633337633313112890910250809352561418907094649171270217525119592056506999217533654743839580168757619520604169673317843446242538126580820839368559724254724065554098091784831994841900484261578094583578940445168221308088031537156536707041500249033378929771072886893994817105921118700840327388863865036709840080470093284903412722904972272642265015382941313969264196714577104295918766253392575139194899443189070999676654329027464269284903523482051120750556453916020141574131050558102596671304441546711799973104025357244777093755156230411610110739706264858998162179684179888576124568052227551350430020830212348059539761786733905388965166760738242448377098763152048411905769607645491521820145646987146398440264115332275385113286646933696122044220504929135522718119851011345293442768690851831475850661374131367398214128902979767534191381954355083947353635877084159211755284708221211393748507558224363368010961122445767152498242577597287712685668943669612509759099168094599136695419623693933489007466872073658214980191748531677619770458688346182947101150508643038296482505625848174057097949353606167946240105831986544851849129607242366437717356463190596642233931226261821829503798772878696284182455283332282720050641328869392647219032406806095134861022709397317785991665396188371761080743186672608405337406053123944509911099949753984091702644005019523688508091006508780687083933079792416794781268305184764060822370995839480451037564615901193709594636974623624773824522260283991068040836121838292552926139605602596484954403054151775253415403572647916862565952276890872946962465459114445727052921994060819546903850003912178774882129447659824848855874274719046358118282417675087824751436762105872508736866862208393231549130163907747540044473311527930862113776201335703731184912129850953197729646546001252471470313110739125888420872304276267547752614762659638674312105811218395187970635701962181382956351344301655736693285202731276854120643515507788490434853927370882865494520051843422838445630538432514077982326936914686375273171530736856222852031275414152940906547567808156197046797745280251318155348848335352231047699731279326543109431201467287775279272465653745701959361935227377797656365990718101557945732097507795619317446702972066918777908501435883488967553122590645487916768622076314943771329032830493234482512178700892421146870126782778539754543159016967895689439035680962572111742659187870912011987316084188209790842079630426824380252862964198793691846973999738741651615269501990023806279084556940712984713329353672354853151390446642841978835587579478848057693789097411692336602123672810577357764453000693245797120513714869090899832378106739478736709358515809147324951188602056107794617528735701630617551197757734361749423231694367146671507361186004552457098463281019675327363628219339618373574906939767914637837379220976094784245331724737739594382772511724790063286096923811962793839067458847497886686910118590665692506476244370442323671513318809444028981046583917236910416341917955387410022467336279762158684671876280945829542449951364668428483736994970505535345488412052661801984857655232841762314843108189841624665691057942451628955994232938406563448641015806722452420149629508103321141125843153320407126901037317543852477013223960947614200917232877358559133386452357161647962493023840649260975216118036418374794824313134067544993228277346777821323615162947304697036697841368239346597396418114145823680282986590386410645289629897096490463767333009036823498702601201768475310375491544849682601634009910029929190492816980306238427785578716656969722193138438467512820733635210413001299492367945269206734339460881357308886599641187608394997738345250337661380750038153522672596919467104364790777962433243468430926239436680856266072065671354661003477182067798154303367898049453736687068221904937538184359209627442606581614048350942894135671515514317424172816065592579029406592848800905281820287607845583481411795066325062292443461437393949545732264760371405648059254798603609535984700738682472669313030542345106545043006367047628270409164228689279555108204048254699574705912701940542775797515456325271833160732780917263717033103336043093381565505167612068069799874023625897262607323256313244118404353226410121167293222276224102815244590469721577941687740226695823132152609389889262306212964225664002764968661666377389761004188735196620601920713744581442872593851001335642133769410424594611129031837005081356285877356695405469255931804441895248701887151982824731639549979223152892825579735384788577869712473542632696840734445447881822859581645030648154741775688078642379317597289058229593027519851409026045498543568018078678826959513032425691950256778370362675183644160783582317094751097051573567347912956856282317299371867950158196948778475450553344913330628198643421349301709709814720873558482297179270947270700917087667776349512411614730299720885062055784985555177618185590238229950272995486856743893217551974210174592256929025318311707119706895728287935460329993462563787065784154827899906161346761296829289203600204168866359169256571933157459440563392389536586348699803790217383430619697696872511055815664280875342629639512769919663251584000266539937762962129430242634012223359204620336830365827625208566470348778888917068093561830906148377525368877150214065744690716242848286093766433136715680889328446393613510910864971956339578774432924952129281071675952707434760952674526367712844793151900908347222439621464103938691345041906270564025918712782535648602907945521724020133373467436160476209229760758496904439793413637891751480887168882993136138386492286911948632306494683809632353285768149619227277035946930081391343929176839737158227329248878499008080484672483793792386136878148415222151772260311349421555727016359878677258814981442481146574266075717222856854784991091006671157340136186186910008029761418235964621910901935468649227767601027866654233800895266293441542538758744001954967514464295281157695370842473403659585336775615183094102829176578998241725673692931982570597839504410634866551303471913643326660074307767532614576770658125270914794826341052248339485173659283757856615353910008478763538748395236083189933402184459598763530321432735429697720835908899728897770619633200616819237969407018179849889619314480180498362165135919254184047270400283568733964553523624366016067007744157055387182288654803980467767801769907945011596861938121275542243305112867418169477824734302011607507170072859607040659974943709718594735582703465077260341589170717347358808761068734236732671972619514907089608692487349956733443896017695328902417180755709416513755587605300697355102206127445737622359198942108937128437237316860626751196451189855894665073842775822333901317606285010061473562238192650075519435071504798463327918023479873287026228254456422779996222568235885027241702241207229954289918224771193601281357457754036024279136082340994843376631243380134838865217306474906903099972970344094182973486864761425681773265553328929250448993901479193971608157887370163529377567924860935768475759905830897192256761627573346451354567465235291951177210491507468017759666092662260553167032721747493813157409123120848169033808292454777158723349868750096309940171506528369744452141568148952180281841502576389393314362647553872237732033422544467720509339009783905727006234480626402058827429573536015230815804129847425939578645181979248295109079399806146844670142111884089902776265238272677933911099242306341804070158546663435286325874569654523355919023223094580007393285559033160358380633754217744642412929187215664298106894829831026693967992202435120333756509808926395565773869143102692370160783684334149323494854111932812310169409749583354767294577217134399081061148651950805717337099482299528210948774053931879527325352522510031700094099653150568367767943760753266087922863849695844293743779603027706725454168487763558441124613350666611216314736447912974944485779101491743436829289414359700512580744404018742856374903731230699099644736380191518351491029956185486770032153876036033809744265760938798569694247487987829914940083109443241025085888815063257808920474632416853188399527274616559175482895556351003660109192361138674122105499898377265459971866895301922202376670354343825283286319424859629323265819350758422447133537124508083413136873536806313757083559967394462787197998832280185084097188035219134777130591230219475542412216109109547466045451475161957922002833160483852130211044857090612738611351629404915942545952038550929555997083345648538683068943087104159318108582030976585368542009348036890264190910966737193814734399341665101769859755421538138646732109836298018695677288409253962790169122827383131131614522233964098775484648004317220213220975661371832977766374222933038984555524879569085317905822209185589564223348722161786843706253192231211290649692797414270079833400247588172511464454166562681843497504910395109206179931386564987702409579369554897187191719070386127649042817051960552330252586929711130944056671999668690594820996912620039879786608428013280577978555215577424644960830415745497060797580244098466287265225570655627975281799097643547725514810278167928065223250048566398252520808979728030388591463560782649128854621531878963432138615651992911188504181188241013266333131546002741553158536396010981240186054562333168268427621121485952699283408807313081041728577452473612579794063316754059204890862315919124118941069889309407359857829371877894931840133358947066132510246064797985443801373753586067608880730402923852725610438421091255138289805431068567772962858818945618811834757731217099412023147330791643569299723101570652186200840282197264961021100420674442723810432142122979457241107118326234918081621105733283390167818789135816318627802198066390627762349995368797318856252583746163453080202709310085532587745779791294420025977210342940961459034765233902723574358428635600846426049814593712679802648288123630322995788874181513776287118992995623881777197956395893952840499625610303338824761007106380492392527757112893410260153139252620054466791099316486716078200628239207513521026866163839359569446584375558215891157312791192736694768764273378987382057019354936080335752854220267540155025715686823060005037551084122218071220796964953493178418918044763723624816572108219839812022576575276591635660811427553332351213966334753354009786331826248681608464223692275363589698748782128268457301965529439119998378120284891208396541269837524455861181124394694647179308046148401242385340167931841159073596368929112432895934504176934138503674809429163811777773365326734712289819973636704146699916937920114854694053460431974141840681888948085250685291412623511595544423170707555779481569363879879412696555438447341946341246169869330639081414056067278802437185041261347992985470330388286746495404644988836317818407177696070014821030595136173746453681358452427387139146875827587546825557674235681381310314250016020664910980108449559747956665472769359477662289488008699632964885182041265941509666044257929965265016038069965065972333381096634700287119965459793416834407111544283887618164648319472106884950653783242817975001413714665735842894787073358953558100716936975917003511558287182617841718944509386693904412270323512636100392548924307826420229243335620177096839418964541552628770909905677093898292340385143323638957793638192462417040094855705993910039849655356973892852372362706075631321514823772764631036614444006101545935788200162666108432138321390078963629209193411389060175530155356820420914311990824956517473954093774828786229666108927032415941555685460316262744977716808376547258465370480338442440323661193176188395545178395292289015967341106985630042570063229319675548597640399563886744903954136676256716247678588394090725294185862651602737506127169353279637784254923831251999144275827455929662996915649969914660004109681570903461055839877255507421675708052854621368197891747288653941238408936387495351433651192583815723868810790276221348920710253558103466035585896827275902056729238479191148809965492281054865247786804696249965450760641474732709544657647761372321507812994507736638764303871442883294681909692649130173293248130641572162110157281561454715027714054585218289443199741287152474968004911843510949266182297113077018636873054771501830682640399664644583012699507613162631168911062358528498544824278805890926732940876041281867276347117084997436795325878837095954303660337200699546693774537866325611001770799059914635476795483131565945163411722303775598144467197058708042416866164715087024233713291475310871959449125977941033868973979785601759511137629496478469461499137577077974174846917149271780226367222420938251445839884991684839769274526513808751740576375639865852330322546719220396647300946227854740497301966940919890846912111660886666315177409873913446611808330182232306788172718281204796875838143344782539969069370198381955036574986353024596081491758912389835213468808632429670009955713328269584927427507123461233564907361701708288858685763174482352062543485409769370805406484619445187575894256733189377593802335746942950725523971188697372086827082401620658996258597034658365195486727156139441839276162409053312830406675779646170780830763580813292436774273811482394808137025147189184522864007429395744434684344411060897261508777664966932550770963199588918961033707396305451742632641148482251169910306486591423138995017704793809426682868613368778697019774672239133598766989329411171178338685781674841862924586336644238108462681630550441454111606511256899256842840824431406589978788217445791821571445304350884964420012236881879193045772469855010540882072610729967725362003469248676666857705850054822370578213294643018101134410242006701553295020866535752336018671594362961243073305152717171073724027836219609228691440546968096797657492150902070961969590545016588507305214895005774223962176624349081536313388891081991517190138937022827165439293443230256873805252395075950423276221829349763976712532780529194603886364557989628705217966459301291531115219774502359314207694676118714737605297051868103415950192466974980645750717976389847794204012541092648990146912720227362943293143297092742709311315501068290636185297691764110255478624500860871399452887453301370481265931194395425478977616182723429531186193929591931624109820046008446098485325903672121228247045382045426774059499238930232414423673424351232372765667834046981198344324991525570965457291996818432004733166051977545714378219250482310398474611295319743315249567678263450050550059874648435908430315108916630504017317645537057065665135932002625739431054263485792921393217508614366360656011630569419115982258040599279033171185153276954086877160465274411997158596005145732006571831540552745002509226393677335615668590987142544601879203777736337661558205367627931771143402330249340047370887378666828121856913476709214211176066510382551043722319245757458629252431463057770118292396704728300088074447119653382293273517978496245770669863941549954138053746747699769334856207634406974143864695330659545718429381128391732911606084751130707703303335152720791076942525057285792609398831197863187896917686982798610386570835428971868916393065294244731710717655313694413435280392976616296502674373548141048575232619432792652411478283782621112873465728136998937058383870671130770409179481720106032353623022506073892043255610349770093947963936931576576356384719054512000415064907968858863932361855258108118025854459886434566823952304180691482297054257183123797480404788431969761339719116414682500570589512488159921806854629635366081367420004037587805913923570897225642259487741933995586444425881322466798039141956648228398828683035278862486199643551815598857978057306317277280994089901567551266800857616569724852501143822834618859813486910145473692126607640697109902114148178813896919166648561462176540480849766592577760108285957879397915657347173702266429566346178710694056489024694851874376699383176572508806432369446538491396857876409993549869168897895077323158819169506194729772766165137757148535572452293049343552832569664053265204966117890642688441062771787528213926915677185719245466970492066904566910902145727447396339841740945926764216835119084762879807327034189017843283151501450566090531015549175358795410044731244345629253455300454850082702413213744020561272687051737571746159895043792860077123001101563754450305992190415706674076401403207568488330648263972812551634787161420629879302625925153375727665111502967206537989797764161195758158243040329006817280857531345753531594408730338501320236493062604259636492516748532860661409408250805150571874901328467237257526430558102933813272610046674134896303535846204146274955816061810304557018923487070514251377531619092977882850201531754280953973548076130890182728349100408743804417089774313033736503441708103617301259141532651813063786024949552674246980639536725453513438245568546335766397712490009063452895229516552246869274991920872830590930161253019737029562025297359774455345863095461151001155235815666162253046258887447075080039822665424466061827962426778546403013741489505784937522726381254399327264412114365243043767142560826836163049222401683428363258355253667428514728407294391338955319013613592050652062229833888278289337275022553724697862811262142133241265773667975838033660728160471625283840754524646114451148396962094122740507901310506835169325897881691473654203769731877794856150688958648688417542358881609578030529761876084988172706264963195530264933433136096823833622521292866278233233937295470928339617035162521994970747090340796966240853536364773919697245410792937855894545723565758379385389456075813259668747741625044785012057821061858974663433140989872575716161079332957798851888952736158057709650917481619994687281900964157824185528627977847332318721388741336237546868878419785507955906958201333171864119403276276778030693032723938908852436734834637569424724045395086537533446480421223649736118691376179308887922513872850303421118255340771177921304497593862263496012759095930345104344349974246199051297116253191624670767093813101506858741720663764205470205336507851188276296098602540943438226892391437859659776213580043857736447227975963727532177614406170814954109004551136063341639702059588998098603293259250742379838507671881809583045172618201362902084791858590246442018354293776112177086885421004575304792925710532122060608351754028589639419762271838608702974833790661830511606043852360601126023359853348443637151736455315979765172427124044888852342250044320189299006976238001673284151438085871046402492576335221811527989226130665692813942829721523738286792127873606196425464624998319003153028814209941007146800850082691453625815485257220915660932330801746768859197045730352407927399946062198709239696235698574735006608404370812578749277419587814409394328531434590645595764244018169929952900150597833657720938241061867066196420864844252512123044672411444038324202505082695043947754908725631122703816411122459667061793495047412110077589376619010368836457678831452514145590817227520056333537549027400514258156468642864458288623921426133057953031713292077269032794282173953327695906179650801342147181929046668900463286996426821891837320953454898443077034336466827279740843030214825569514352214550381248878899651166395122133179921193182231392521156955840850134518043576556822571493691228901445389237117680955714681934382600369905963294548482593726252939922005697184087265524697009524311142394612495795611994221494571308251538851126316529610198609205756556584019450496325804889563716596449807355465887355046023088584482916558241484327639268847353945263663515400114484385319434597644035690112179104070645504619987361375811544713876583923484615403885042965395679485862492131959867651569447985912264969091854882502940360662138338818057757484762002311694779819750189632693368697651776086069929609550449201094539016325672617658112429652443986034883876919330326056713473539331914003594250761271134267164490282338341322484736921682755456830262147143175254437288901087154095180822114894902359219810230786678661120893702866414371972498092116747417236399949605853150316324694730898969837587484584652730312683081196608570910235037300845591991857641055220658057310051018761502234117994872999640923917508378256378092304356142934899898336911007374380989165365011367863035482981858062479204719910664220217021215013312516889346698871683247415395150810360668049514788038022211242492510205807352168885455820134091979947921900505335092968600141718692370875663987308322108293337794255811457128465477729374572311374340870281636547983145773726023113695368561013423841808991683394186619615616077684611983959384812699214893125510861035759223777600344422121915370603875329270470595067291057939530744740273386341871191317693088003656392705337063177841820868795301272022375542118529645816533147720847302104018703421049557167305919203565864444130054256399757645841818389800549214718070641534445467198930721727674516461447454159681439076109154076416398682600743495059624762513682814895992056138386871947859073746700452594356121197355337395631938327761748459167798668743648917604336648476307080789836163337702870824630119996784391879247633316173349761456881670122068333371726165762636834301014777725546490215173833929972942866294572955510908057710265329194651266005756106046690754869498718664687020235347874120851138503207572379470093220080475996558513935097707341053644967211885689655356352460781121426034841246488106456637887680094042665686941639619270457325312491730550672385966736223289258524827869341799555551217316135792492382563859831768389056179225699480717724132430871910480382402640769944383090681622628337999869383750748729296406229708410834615850539167456401306413171927854899473508216517913007127846932128437283067569344695687174412031891000806497249815844603961983961427877808513569179363473969615466703312043863239269291462363277981951959245002375069571056886206223401756339600316637168475412057787553489602112927881479080780224869348379670085218637674238632589584830835857351950306413234767869668117941488738847039223635338376136386628863721405784150772928554903254874879641088474690915534953647881262826006292328767991130793810900071235509019997250488672541367939839642245161825361007173127661289048383267470132402619230019858365895837885520309597777299060285018520211757160704703814110463909233473364535481691971144938331427078381616202638670045301222789723811328113743883684554928464765911845361326241816859850072256864605251202252167106434465919890615700135305111816172977534260357416541340858160823378861008962979949379398698535778279901626990852956888292335824806061185396087454744388599371011433230815612271401533969799544514095709081101751855686416217875488097862854108088566605728151001618382198638643399700870734210919486869411157834727799849843816640785275717728488866169450282234401913270885353676189380471397110334342512403387662467222122615464640721208770705141473296670324560909096267966848332405769179334703929012864520951308615093191695841290693024944681646920011413162361086764431298566598732394294265294729750684035812167906223816210151895034450083236212209658721295183218831407582735480847802661478939019550106300050893605954405358515811824399101740223461546021483357682035761765618514741284424992405464708679237689926988173603026762986648750201134438995385191683345721579475875032090276366006865505769079229913105166550028255599042344017570885869038225048962524326090992343676600725606199144536819572663895097308774987786103228058214934143165409946413947406935936943612136524968247565560416001599773027262917811665937396053794176351037444277005557381164841859297975636795387348291511234970030370168707440614755593750744392045304617048050647618428148808119211054093992999348536648665484776205306016998151317883461724765337994879795146808561772235660268941423778395457893976305058493344727042209153782085075316500857369990528853516093059188789288554563053371086836403977003265445489700959467696969870064285854041082643944184648788238388282470463316489464268702412776798517779255067960644720622423597389912109513497996058059586442340582792514107890400333322016272512848108538511369053654929936432807575682417015695310431130008524759240262399465231719592276000164430778839758862261056057612360247281739606883015886511654124802193337440151922961224637525142808899242244618752288676597669874374376762499344187678685299417750295537256199849789526935266929342737231403676918166144217938536130520729979809862749314891601608310094532433877582518100766868462977959030016106855129329557125492853476072224974989864894434680592150126459815106907645759826600437688842464666123952899035309644326604656498640590768532385150119668062359836267908181978019693938894276762711004564626707557522120680209456951913376162531650529043611272960496987447130139464644921438858906886986730110483380242402487452582803362091305016690422348824872467305378883099397310509635200384063069853593482401557207580379201873783982572986026213156505792418291798637486059758084321879460757882981538772525053800754006740442557297154872131697668612210752553192373876328357659975854847981866147889745359937185043959544662253417213923713492522480529954371581572801219717346917402872257819097042218257843904594236744363894277828540108179192972061853602081208052470780173687326578698943898398127574429337842481225338729798001095153535585764628452901101944351911087513165880243337048291417151910741746735968113617136703970279959010622147968651177330688243959681102822564478219101794357103096860593764803743368582029531695893129192695538563222205481523904218763828741936091480676971264290348389298820261631120257583395369519027930108034818954570992539864337123607198158846825083115998930015296829195939399912945662893849250684657802458929338246663033619113934849906824684435242693435344402514023646421261355138391765697533655303433737670691026316662186743187177293148494685147607276422217879179790021354220709707593941571976059230296349210592354235343339596802922198941167601703003363092768087500445175427435841759786444270107110659160702182108885024311868366364898662443329106785122112431945974582606238470743902809911002974837968323124109227537633529547705686600967219859476745516140827575867675048650203890032269106945838273514761724186291793563487175998051713213216906084439638441433343726143445280376976286747610104901537853218452741353451236808562384195476782598348483904333146932813398219048444843187990659355679616215125039441422827780147725324994841719585058399983083295707251827168356720092542358675921728681500014628027402475668101547109294693087814799632542223166508941671305042040538415160273007612861495406323317172498387799639174470487563820036219057281415606431694282397523298947092276717876930755418254124233716170367881764779374270328827672241106371081609092738461796366885728724397194361934879220059494008350788523762897433521374166182629129279731856781150637763391199794080621058267538305602825338361157105497127490630676662494846384501354528885618262495705095845363690528442038822023419618469134534097142529990754864783514258742831158148422927350475042972399856507457638478287441593394235431753138475677580349927406356227302874101502813097357841321705937833512342662367545955452817075133002715156566540870602565201705176326437455764881705452026939172006823358296077062537813134937936932516207142704180435295655356309921070287427884310011754353147639642977980235075276822490752477055272453907547858178587406247631737702726215964183706306888793413250424138600367751932526204373922945960617935464278492565113970732275990728067595541403614281848720176721648728013342294019565291840716021330244182955346299281111166090089111932916849925047159263872431048402433572878276491945074671635510274931247962339513670129421567174058027680110355971924042276381667146256833424237500005963462511475554438599027961160310765120970159017457546629316570166677609973199014199446098044960057810946808656708846989036006953867274340599821485175357732425649191957117551665663542534244076280363588671312943904257624971216884367246757652905427637506500923152351780559789410875879263058893828985900821869444382032860275912725048863471626398081958204555713923818757541592507617527440288404829738195611045413835197827908049256317013271116972312878250355778374801699899098372152773782156682811888257691040306905300131495012838351651230729258719672413474405389089281708335102273335497558561936132105403188817442214380655966309884564087840846263730706496480928591113705628410054272250645937606259676689211682446364582796447621706267992895695989901050582549554570646186018259955762208850975769623201548488348167904319172533918340040170345221041589116675571790303165591313080820645719892671552523037099659105124068288787726390240900509562473650569670892884967889434691240003165059285406164677792449221443244243181100955097691402756164287401773232872273821812477260651426250747391602223965763886131438877561590637804469559194779701057472946276601377085959498587305269120947099767622380271607852927038253259367723444033584174091687707992404074796165446940576410200350361783357214661896229188106028415120246154053417357476761271511671939116417605552239354256207523549399806666643620715714419701492487271785661349927826960615686531819384520009097479672936943507346130314638682871344196954356552020055478760327768928071814105587058639718031961321664579039257203997874066630571804672407102109843663821394097139005093259928326580971501889923434145423451341265683673161835647058447559634796667971464994411475555033204091614599402530812000740968742243343024081035715070731348185115021333524203478017843410338512636925050734945450378906279012723982665521589246239099219563019479932581592853208757072192993955021698105568754292673629968200643547521916016806699878533536742753991101978768954867309922794686076822056556614771005797785130777798992722388175597277202974523683549046012418610088307516552405236414388496917438268715575667755134949451946722455516945488856974436225967080000682806459573235157305592384155632702170694247365727776998580863935996023367382589035305570824077434484743699999980745428628337188932340193129819198366995308009804194489664400287555172201477332975434728221699433067250858180366398768942599015395785349603878661124112962379749847817367152500051863541611542137044564813718909793864673637642089792327778592796454475857090019841319219243389719826094413366522134233029384429834033936685886369837688263350313508288693611557412446472816803086493407734060011959955633713854743576947405770449146539691923171371866321294837123471880051436848206485408019988878220270123884378330386778456710604382019338272296604372536595549741314524281745494199243677426143947982775722990496022711267905923663699285205983288017765936917672906886030471408380969105494005898019976827004438247623556053802031340810132457086493880244856392573819447230890785330108807615052724877994638593486807822347101933913797065357648021752694706955421723931851671464638358769752164989374840243452678925096244283567400092077471439825150855295535554856649097324645531786573148342844785820271213912975139398468941923779425492700713282850254640435300632827127993389627793838888187324089146266535465654539338599655293225710286844528129853978502753370670009332809976591494694449621607736673667934873014020466061103044313900390703998649835234298472494672941607068127755027100212740208744783531200091374837671971474104510417735432726991068593078348812285973450187129877732132252233774151281734594692670294529410807904985118063514100042125442629793418359356226755223544207066048824496765135685225189370810526926483858205078526902214273579746187614983713414843674324860514720486422132415894244259613441762327612230242839625319053308476241078452323310673644571011739587155776726672475842777980581264784160531756429627212948892725193290605562856157016362358337786149642000637316974210160493549444668317734697658647925111427118551059227228165267164552606451009802468165042770989594049325433988247378890314959473612082107019360693093008417100411384095059639366815797325989723578174899425920853935890712036345597755251314656531446753370673907459311192632016861791732984777253453351109460197053842754041556890540767483619502525551263604559278881277958739666102157923465883548705940244916222773922798189545459282306090356375486138020380194457749526641196330306772211795256042602744799574182143951482067999373223753910697012840576359170490211971734498662092482447309724810861090068451284608464014645632684249558832910359918214923521933237378083710073041058233862163894913522865983244709244179093208145321492910819609169971922186929886258692382377253878015179798957848801593578984741732849143567589288414966541647732979987757068768526425203651071261057112152634819511598876820368335931944517060828976642180473812523941997602324721922753830958036848024477776919957035251142664863651399103137666153161978891086350943985283357837084436879368296465710091879083560627205731956773771207319953742359316801323268541860213083899899168143896686965219217522967411812399606560120668425492774638619608878162143704923511061578649280897192560039261732336896414737320593423893162328145313703839161485555996747331128993744547267024784656319878252897528769688141321289913173747399844026037969490454584786019424273477225347597781597356205243301611123707008914498974923194648945347234468898449401671611029685924227591435728260893593909083137170155890360483444017244771758388805005082981929789893276087537427166332129526914592184904101117296872548808910666576148694992009623362246121683508744556961405021914665032806074259079199853072910271646391579149468071283516932175942620059733260631369514354190305244811885911685755481837584067391704135540578928217502666296724401831976183399981997130913748279467478131665906935435268179852015039325846515728374008483382047964890006633712910944051547880104135887873463896899731582370053950233423020126153078608954340825389304579584930230551475558472889344461111756833891414647497306924895172771944895388163748275132758426241269298915712366348072709393979949411350561553952202138096999211141779769152237741420018911306010486616228047074036371501904405630059127011532531378467475228767045788638494664496709322476567869630013895930655609732112192200242076400619791287140541611126767794599568122216221909880394845747726087431067422869632500622528371754483076145123169246824436103945845545122609051915882931271786846138641116156635174433921509563979705031639927090126760775021199756500414624669434445895470478770119663680010728110563027453886332608065060911119220008384787287661811417847427541451658198151336353062846550870227441695505046407524881431169630639397673687480486088488287029808304231274049005153744268177846387995388322748596045756993997660787422004017646899332963559605423014909061826188822756045539431538905571251508322357129387568840863772972548784979115556755439129390726238175820579747736738108074086461229408595219169277099144848275955547495945709054894647116233993314333847008293510448495943147839266548351024369309103057496202041801169752921886383592240426393671393909443215584138449954966642448872792550481510974463523663689984233458361157198828906941071333921660097992730010391900444635237932945469554421476452907092986584279770191653384102475715606363972820523847358745119572093810635530424801495973519036793057229385561108406006180045897954672428932254922274912781175993210997257797498497666783020719718204410399173654044402241531339336324977071691407925042890213279718858012723224782740788483886412205134267573892760829582137920974027301330921512292333699521106931462852680911287586312601687131840193121971331659972131628019488070961578029590980880566826201123415984409094833728804897301554801744132791998387842681521754487366230796146635775408495581624801880735399025139413649423098826070884899812298122496446134816711191756204881861297592512163422937961097216638438981030137067752449151694690567949918376631530838666124137062995586342030785252346183554884532637361216861352388560888642369844180130125692445491323425013255403041847996777744918809525404437324756574357765983004560678091964072089728397906777480307673338369894461508264047257474627356893948909120945253199986175966053686061346320425432901689395502379472874668024400218882059384749623904658863775016519612124462001806986168794722637173427413130865620465540702751274269038960796126726383170366193559717798025700076957342465471893140961480841280512185693357433529882110579275760152853825824051947666153071590507949296543229992648136257925654862893456524336553554588354276217210289549242968117555271490753943135654346783389978666517014418096231573752898885401285697598857755545547792080790775761767054361415956156665859311068180733922857927338094981170209650716035133613896914399561874247586762146032455922438161753212549124649030946358330325919723166378453887853983885586656895478779462044696768568946797001090877090939938951511091004389602680383942311664057572428452506640072169683249191046191555328808097103453116964588377973046812201620815166867128988958310641857544722781061233621159630640143732238868873433915043190005643136192557461637508139650463525818228047779470941499151856081169245506673108234682503992150310354093915555575100192422206926262493595244451757700296449749625192317013850822969624390747286581188369330659107735602369170567373543201087400829150509272782588951583989547096191388098884178839679097354386099510757834968178233276073752550509210745693922492006391893283617320679056040952836785906135351620751713457708298691767778854500475278734763092765677912129686605408356540858923334496784428443700754585566217424902046190960424232342163949042362902972568565958670334713459233871245899089431298049099643977128369013135473389421329172322288552696391542428691042826468362604395790935057104057748924605289188390778415027824704331744163381711074617395470499751520187347665719425010972981344735279503409625283884411705708272080709964662910845638893367891052891543489497699906156084793442184267628652302620495854655118677336081025581345139190345545766711267804042022609912988853326838860692298978280895108217523862009479799420849864277639119062352411468204252539131456349840498181753851994241863551583482022019188970313031486154752398455767272825514383349930395661141096445956804552266481851320280859304233044074617579141787439368402751730107653105454373192464842366090605487427498059291204640449187886272784355182811912767062074610245269896470776854055493832277134021506777113064544454408247536430570530444685739900567067790512904720877500903860748706034556001599658414753743942038888212989088261924411605180099941182601000487668624414975009762540802898398035201998388181246984903513956569375263081384633863149029699315692166948789361572667869085108385147049015627322011676522411855316021600275057677841826821072349891383779787256277575217070305342390836539258979259710803962676475373484838724206390964234856685722304208782498984147993751270429902934336082718138656914262386199370878173899843547748475793011779275173350866147133064845421660739525573623661892570549820525965421382353883506094305611100539241785108992473831218483077758199340373925139532907530056385228608914147693186722936787776901725235450768277239608653502485232834059464240214051347718430328717893014359835694460742093699481483982559292598712384395740426776576403024105967051228538934481230438353099642407822760345128840351633481026321213914289174640247527414062266253072383628996403169903759317872755812875363949236074704530829244866083812951953125717030422463572484138664249573105664086094825283212366719000693699928571912994044771437178037068182174582825720208485599872688847848971084192255819381597405257992434734269118925023436323851575100189782681120192906979810581757836518548190308428387710249972202939257959295411533954705019147422509005164911372639947456561107197010970443522836570462749639065801033078938997566176628008834769371241120699009433642871331288002958309653268296042632245457178899601554321587872773393037045246616924279438583691210568231387723700409110440878741904016145859314889059191427167462891349142148193945220697884139184661118413412027084380660092907030769822953003574827628744630398876646146830494039201672206182896101737664764025154611644841937078352570172756296712272259790398177920474985391528729830801721239874186615676260774057867441344314657153063021917025757070147949509425195804042500442679007712291488658878496541924622836604566056384486162569027155531081057238370906093811591467943724095998988691061731152291119456261130383387885854069056055366217204902038827003310552506548156852881263838747447598732152899140295477537316958545147577174858301530629560535031811267833794143539709386577801779673691730170085162609289057032935500111338270647333227485146472752738316470279544312216926869601346482242620947443932961061903047001106635795677305619013927874106158658994274833485973351977153737242615528615880548863081792552853495960002493786627520078639834538871409792832833590778958015137560985974933121492711069275283282137426779497194440204770930016992188330951320470574786278918641049159542643848462137785516858532954980889828991335634592379431445479295530423642276071276273202533619396320087906589610995624113013183613097572288889549786293466994237025624358136393393769756962903298257365669937579413689235090329015848258410855073308763605205732796276611840434697226290859287863219836831790203280154770037481671681713280780144394677868195152490838949605006258619296994599809831305489390835159914698021696616369639169790661303916323177155449233521676307033378570455433198506295839205731420079312415611392560757463344521537305446767098902579050091830085250264697371615216982577127082334316062761613810200606264072199359521502102854091223038716442227150736989452983556022537278704012186751353604736131082088097631690193043649765216678463854332289938088550808614312169979221133338318283511651483566820760563003302924746652349251416844892927822002624860999240208585524665065978546346877370706371754573137307464748292495442451779678003786124573793134190411431818915625234979411671974085494509164228148000241705049723718905300651052203768384555580563773845417176415470146492071467230068682853639942851819980081994185725055657575135535086769910577524565263768286154260466182087669911122447775271767115513379228038179161698953334281040173008480029531106502488814077127435681968226300232632119271272743069809877072683024413953382673999946854326848252871025355240467749614082380077421200742732801856018875159342103142510931155571576576399662083948468433147638792329427647466517322091065487040788467725581100996240504530953954613708793865224475521692978483441005276472839061954724878971895704245291462132361687060322027693177126782246866857438058710984575576021844377783219241823358764685061754862758910094115713319972490810784452508354157309849757497343266279038855568734732539656599770566772899510363429307863905761024532961313977370749739493214151682865196420030827504862252487142884003257114898492199383404885353619751933937826758447717934817168391347895342989490442334363453284900361674898635761215576105546596807025461240736700643452542692693162687453052940374224830623364371999666464476207561558682855802759260186637969672584340662101445297164198659876260517827888490384097962728899346689580178664405851002231815824975822062868446685607843865429786500832689402202976260911074136468618485857861926487694961629714448344057960598601881090091372944028610699287802965867278156627520817311564193368096073246720501111680488279129272064383552110438315262156831460349038908680476675210089960676610075510005514889149197437254683673651658498037070831292367310043897152914677798989037260901972041628711365521858208780820130757103171617484485797629654479574699489757239518874086347732022687713017232332310382634559713032042791248576712541086276794608946973538704281762714488478097419887385944514865024022153464349766667064259084844872080224571522125433854259494318192883712528196533196962967128430349191874800372002056424082420340029995432738080050704976492967669320096416282082192431654273794009426444987565599188815744157656767643232960423927234788161257727812565064221495183124623921715036410994414098236664819972536633625482306453110243440767437693103994921602516234473884625402925971543482865623324783339840227694350354798395421328448590963215248343886619088359233953206534733319505203469985398928444578674051878687219343865370895276941776359229332362631307220916799632883738854475130607290418542820581733355007891514833716666826169972503846308616465056329366434470082682392413785890778314350745872033624292173332818910138271582338917977000722792958185998300112779483325928116787353038919101610322942700025760629818488866218180733145767046487055455025620939053597861011690288619608709876405205180401747502765016692091779759269730575941408560144616279125223935434578776231853244721254615677385770178435467351273392591816519521579392405583712933613606219823111734226529336389181420636235497774935782459632682412872370204351646604113005460219894192638075563768442303731881895271035408844093039703094006198589174486125246885671159145828102007660250456843572135445736216518671502278889846330167903828168467802320184325663753891833970208644381625092581664349737490758133701409242998626973755248274993020898546036931192255618919052279307371401397765346832519935264725222389609108102926313279510470125578802935512749468901346014219200815560320728448178782008238009712031485860445749582925398027717287011435312470709187168204485249332996004445823745210114394543692748676220157502678543043465708100171768727342297602169109918908318478462433468486029859191619356370124933139773203360220581328463010036304540978418349744226272354458004193635944384902880976570063834192123786071110785506368278251742798178316484705902689337033101276760519432873730526618515937529405173541735013957165601726240734952050527794203145738930265442573615628855174923788286327670316472427254968577466259409168285423660228174012274081285260784635897571148971879264021345641218887369832661103163481191529580699274750181078659492188836939787470593316347334099890047606171110695877059067418781096907367224948450841750667883153147983114571249353915277719290686928970602096964705441814769791027840854049330148430814827537024743967555222311504694268867162285707990716786993191348746418785130650231754598100266645340925035763804364891394789116534127462303355447767053839635274351438240688968132120674851682379473611704484706345327159633750704222397010226335814494231549385516451844223616705515383819181530923995336783420785866206922462890712007787949447693947448453420697025980592744546523607609633723279959146667127322725670874928926789700468189384143524408479615114523728106362302545901398555930078235178067644424300036972178670795603536114604594499640324313432897825233276077261257516611158901059425080332548279495599074211926462099730810333645698865402724644612102523097900017178718232248392064277554825212184838187418785325177843413072707250287540347148498860759693257270097008981031576407157155099043168618788279064209313394620015074355472512676550793996097597914754443060503895555335285506961542617226031483505677852962535431640970921956086389304801311549258164515033981678701062890667117348037134105816877599541377870698426275539219523750184244448823695860903989092084720979805428604226971954055973161840327072161566647209638027139492838440420886092496045957696703423831653729136035175621668333630178501025423819242864776978248577483562100684099165945712967514757962440296609012235360093991663872234550858751306900306372448418308175248068984505303713022311019298178679789500334364708346179947553862251537145889703067999705431209957280447317906465012741365876613010078482825663843725519587978887907341837878329400899853168796757402347233196014574978695848857742945369677717738262261243743758108569018702466143344299480871479526750905015276163806049480982959533758388536465648235253855631348804697967507573950115140173245475971305508857086780026519765124464086079844748686315217276665853272791596915223929203646598252744167865744042655737565479122590058487621132507645282396542592985234099722032921482227502545358137025561380249810947925266483115645621621164820724395580431116527853179232651223182775941178278615475604911531750678203448296309604096890342673730809590628154072899892071380891044528481032612547361799270542845943520801150166290936670003603897876412012991944736163858417954834788262883752800774950439010358032222841256215769403755053777690156890548251555391113555026107711673685074412552133299332323406446765087845598557822469020774608083806573012002418167497819049415952111992402347247826591941899288593806286395468335868757963741776511364154785956655000665862135337156926483642275404487421469703454163260805348680068214123609759734567534820211159209674129428449832084641550846305911156826837851857456056990445804730293938324936865989665669824931168663412844528078964294604159512820152044006133578043294366437290141026761073677389905008034325613422667501530803209900074177791850793194621124392536519251524558479872436270213782368710290714051495499498370190225558084596325631380061900333740958851719664938346923548871975266374575194547339186235781880074167015753869214880641628681962971642383801691739371660293089593147619195215238617857565639711406773848172526090435451819904659701087281817906450742393704745828333884523249868074487148799352564726530160348696995124565608291955389242953701982915064066077013969710904755516383112049641265823301993290158067106672762185937391195862394245451867929138399509236111958882090918182407513125352991783737259961976305042709320662961522234342820870744151662172654557197971346824773002099972629977678335356821607030159193809041356044162781469295115619394800862957257989838147222882059334672482391943643247880135496192644144622035661933926734119546693321117130174008122288354328632217485919524743099721163899208543036009522559947470839081631469970056335050511656583313298371342842600911014000640937264953177561554945349302253529674699331104791966856098963505243459948953429575804777432881717671486305816732085910781281603744198712243071231089887947845737544165595013216919060531778404314529506595997015453404919803866513441798630352735311918581862265110389652943614450751970399824339374384653359136836344806341258520130985838458567448149154201870642912165354095247201788872926652118895360534587067442589286674292571482395272042333583630096765237306315849907585433714380641864714474943059944517099064593648506698510183326328787591756956480388945600082630424747192806018926840173028825455530481968606946303704272774114467180390721328029870725829849138905045603981900292163543573631211958927820600050609578089483141236738593869858647520628784822422721443776784935028031044791589779327167245471458187578752021818428532755952353509489598449452058261812994081931306897068447827258183373210721412271839789868214655233280769574867082300656476682744832782044580058776768027317184649137702762641172817832839764154884243399289057950778551258176727278413705107805566133736543745416034609231923422334397417718608410351542232447196957488890063425064884258319461733948548650005867589573201788837987433853340076868464166837043016037849366913721730570726913226484229018440433366266707894416111222871473690360306805893111374002233871490891239512041050758266139988439405640286861898483126827052853137982871989069991789381118911606524105257535441776699272963428946146775989305185018751325500135255339071094471514934305826676456998765912258525835275686952973845436070407024445975697438023590054376723986549879618117144234379484513217381399320757685541185678360260641348282770347087474540227314015357328426690445067424400294288950847443179414879530076130213057663368658832257442646832203333993967126218228482237049025372721733810732985167079057872179695374486171906487359396339717969347729018450235719588050560979912957866331341056484772725150547854677280391746044911666850178679565849790075860077863958264697347260586645819473733177725526851948249361231311828149481554497932803667460698932508026292455005597368968631641090632378471856686824453781355628502405342136559567115111763754348814012540037651325207029486116872571162392495541151721580664593651009552412032324993928584540533811424536286326383047370705916011872356985689462108104418882446310061380959157316286756152672639173277135114801202718361515354276485427337204251667621700612861616076987627741418621954571006921896705055221060383436065927209702434766544825841003869089772286241927693141948008703281362205793268449735538763976955220169956100732653685616730286232737300579875352230939561226792412951523607301641786847584208531924202957973206457677730541476552522708667431782368793265542807904875798860879883285211815662189605341807885285260070709655877556582937280012675274550162224069632412844049437981095415021740510828278505269199636627969294357655462808495576914598994130399538749123478858048966000206100120739965754740607649265800129807372036607310313161816197310208987732477763683887180092841831738366063110191826584464315957760441206714995472722066366664719492292517504065214264666742112063266027481538268234580649872147621294021879549791299954628092999861084195622111054517852279489008448260839534152113198790593014529461413933563093216715867818016985861376717758760864514639420615803994386524975142799748040917063912111234093954111966030464310638466711362234635851540274820250034165833340239293811500592428239923321415159486144475495893608262413068963609882129250657376139453805567657240806420348028797998605691938701280110331721953211064501702834864985634209014411952835444946339851547102803745079411782291251292968121796940390387630966870509371403076990555003551062600880695726682372930504693886128598649979368420645553444001742628355484229953303041187978977838454354089768418217508299495129838292100662445295877855049627535073743815323411478938945070671466742750633048557653496017080550636854998068363712189295415352597723834293442108623772233517760720125814587448874710556633323883841084952838054269223095051904497046431696857476180994244716029742257947531554664126446603482660844729485128318546076899710924861247344760910859592627541217369657031791875883220370028627276005847866767341392043631596435141198846842753287767930657543832992793203912027894293554804700327877473120443271387629234834240516220045026795928761148351723441125253367520433881281913204084174817141917108314301611435771844730390945796162304594857126483139867806141301704948246135490229191282533398054703366537099905118556582647591554399646129413370594399809262342053647304791812846560268138696263653399301933407548403458870219292183631161988342084596398070712389784492574977753930367177775191341155297571993200123454101049983194383164363591998073388084558271035703602785980994905267710836468112568977302997193876444181193581153989376053643111335380437240128799722080347204362887235866586931161035777268475437817234463679944772223828126678579156625787382697008065476949655404300288073197345142135275742276295111723172600471949814633163513314481923212273089927875234465941380759556675200276615953703922789202751205142431412422533318588338111786061864464162006155712552694298261190193533898442888471301643719091572357243897814151732988975187495987630231209868164351474102093329481413446073392236118609462148831882884526857110333060538702979200091940102882800915743599150687352965574293720346683561105123181051510750404814631072825287605143408394112053703453614324514300709899497970914516979514758843831709183936916715226669872918795692848873754533145571134374572769490255538355930683775350105519635673117667213211986873780331200658061413360662108648963229601958053178032270364769737444706662766183257562392428437846616424776057517440370993614228884887721985247765494566559412130249679272387540550354412931849940619875248797335681054075595916560685444865384546918180803182459368040581199378530771948532261600193913961300147350963193915558958810638954195265159307543398221869943199354069683783053861554567398540912849726015586149845157500039882047758418895943352723986569559076996629996532452519132951652886434957724273503965649849131975697425151359788307678942971715017934062117272660118743338253192070494911345477281495170382838493782622283099896663119110995082921021735045597667018792277597753839590138987297202014775371302414850020102577937059344386073225265517960526992551907660109995654468443401800355300625184213429688343767536903315806482701961859547349309966406215207174317179822183956594709092167619727027141796409491864153156295770632805501194915744734335267245967918511983503565329646574207728709635437609951480988335131587136257383676994245929590363821243493129404171790895276685422657633718888487837067536945517618956012257311628116096110101937414973613747784145532528474984841005531048953477969884024708256624626238909690719561074833441125638595882903634479199873796331606770613727015210380561116487975518825937344572756669419403774000780057062422358284082990595149472990432039017846696359427317557379433764559926842452798777180716511861559735284092665827193752047666683975297676344343520980993134282045341139339752198921174731480310311469523362129529951368084528785872497918118228222005273245738778706262532487924948346199859206229412887898783619780916626192048030432722654512594600527477750123222914238141204089977519132578086051228455263559110571724969768512363204468600830147240705699195080246273670945328559161144964988627270818766370575597308654088223326312318047938438100959528699956104383888426216932407292170432689489052275060564633264281976141325288606938605458989622106937346702841453833896226715672720867796634118091944621262573829340373365923540677726720170900794798797500943010103676022538391772071568185406681638472493993836610233728536658444787784453521239645388641994924943551841102726935413456347864834208417662738833925032326250238824986905832370796631626030533562601144290244325086335553955945940843322025201687492455162372117063960131269724455117911454699077406542866257374413246504850308825670302340967630477503238470468643420147164181467720852939241463018664446370883578353900663525900405285509187381448651883377040533146047569488742288404297397376601527269410738421201284497181449561711088135175602819462248841641761524707271903783511950349482814172419011083034308906631400307673285627768554301865957664343779787154822653946274636478399489664457143313416633924533881396686724884395673704553054063750721396176475823470818975171387432082228942437226887525773500007823876333327953297549862000034725453181024525397223413831632074537381880450062724507185347023733664223807178163389123736765912279365644752015286560787073500442408275756211031453215491406523034408919995160701186522421373811480312116969743913165259272504724521863750723080982359222156887255433079537074337814264218969860033318696419093840948938250028017754803368206356992813741745116235977585102921042650881934353109730765125500760005567486170014620254850770707562205070425292395320574640762409739249629797517249076477806839168643885252100479004268870738284448966393711398745534697937225442199231814026216828181926355340267510420110182096596951865218376949522192929594672966472074270826560882140612713547862774837168053907313062234392560912066838167851876145552627103350264326732007002436548638553824506512983583866452414593687833314746009857438679341530849171170126288935444525170840477622030384774868179246851151849763216798372452083419460453266679312081575179732061630615420410322082488791093026477952340112488625426883304448576791762175161603613336033880044629636597492239852865045176247909196943428337565619606616158082095014753328231215217047779653778391390784362483266408455828540090965764411755461562550756088891319669379228354730623267783198889105552845696951572634138660637361815450757189170180178298471301976441052307956398508939660871164665398863589232206515892731181550749470185809183826995278571624358363739607671148993888623623342615948519350797493472159943340067463937447827539857515805209752876625514373203201199717970177783553389066150943086647687114335038170189192176663696577756283461074625223471198947731299224634941612428964060556103990574528138548548028222941565232235385946533907423492963736716633838020648297077612219644703851070607218694211354389748703326482055409324692439163441685523651164625399494358547622791428148103404646677656670273656049631264605123032477974562462539808166939024553625186250325974119390143172320857168505808818569760700039272337372103029155609476314948507402437940273804346458549911837720926059858454151760828232384748824040962489501149103612430449626064421376050148087160380138040351122551449184034613971538740537909493021712241636005700026909042228483453794359991542296595816410313709476162098700736571457977059627016815736631361245194361171506208963382820934949761603501973145653478314789496905769865535981132460624127649299832491508863309891934161490763798951815301784944833157234520975313051187952110168587380696282043917733000018775833201462112831691472334885250278475667411817971846592274018818118244462936205444086000840006009497794733390433975469603263406015472966043129906529498835032063416725029658378395689709672853655717293753704803300324303710426619079475407236538289560935274690613708104452471913844418702299183485822808854999063916464833599065811353479421634683812863266600033955759313887707666402217094773283953499320670756856779175344081499786763697304174411762381812104697895442504183399853597312826490389379124607376451770835344956448062260132398570621627382086909963970846443213973043433372076278967683964677502584007496847932484010057063058665470632430811015565975224438911546786609751052447303412345489235165803149823485172407209506633860198055015968375770957187436602485609766323678697554195639840081584058278476224366535123755380057366441570348520956903121054873343769475979032301775318417303966591541695243469691758387798231147214813464614599133721659430574938432612460295041368378019540886563028562091077011911724197508671906910458927599614234146588941790422906970110146284878184165717996559640862062626589999491960187808471824984117240541486042729456078762084125653377079004548399728600034620979410698169670958059545410209407744098812978379622914364351199115986108865248534188558228161703986189572569883667471371467110236535227309789862988556828046837172772174256526686674963722857690695356851195687591771810402751639574282125084192879291796002915069861723359338250287555132807609615851508216077254955337188748900534013926589388302463265229554786353874249442013887786645127096331076800700763892486520081792762959077587577098345644836532878431302615346780305108750773528731198463232332607126476600763363443930438935621768683459326258504153690761378844333600932796309779049983386327801128231602406426326376546057843845038631449112457058505176785049909717208121282632168897959807066455223475494209523179515385182374363432896150322251724943231337860803022487268964156288182821126745500199737750369473701542658008324754663166312888569276387873552352630817278322538718437505098200743492607513304337254936825011387724701557057636789097589223175385411119635868223045608903928904825587031519122971430501608397578532622617458269145450697936988448961845363285350185362166928236448238281494205389108630979036033009949167992063292186702921332798896342588869766948669602649583799676995309345951464306098273489802718515152179355048404383941490879048326372965820701765336747179485793531317068025046102518423651448069106974062771831534408084699986417328853567190365164688216967782130200235761568241461879805379240327519925756384448338360680234494883021495429711687885465136820251184030423675208535012723133585891440479523311332737481693647239319460441180264130048646908548895865764830831724576511664936304206365634031099682913962291668284949470769955477949696458406258192065824470199054771758564946595896924246427859130603526704428025386571842547930429497415610459272974915090614925496688394948529124111841551942099367667388004297436204375023774171054181359129005590230594771294820344453858108883182439227524003863410245026801564381159522509232318710981799130061157922459823590883847735161586657507884201616050770719215329802216677795942449935227861005513981257672360670241847878017176226523333049130688190407066874608489684249492183491606930353394736780889563884722571545839911806412421135335962146453966515214998326124462152865784632842212603490156518208870300930312873061415566021299289852192155962266020639685208565979044332719196340474045167828449446949229285972466288158339142195620063155012722322346209611811769040729649765128966771727576493249149663975959519725568218461093430832240972336320480254839715133525325679274495478472413048604107623169324675749024309160025799238872864112938419000580895500316735414996955002566071241462572680911669266110078345667820858639026212000520459744181315670420258123345995064788611361904945735444499784927153052117244736308168171655267043834048688983819762430707779609413094721557347033250869851769094530750179648331128704376992547458632990087295523582690551279173345026204823033444601348673025059148598843608792492414708085854943523452889366130986779641580575775087053054920730953850747692934822663728486426336899249667284373985227303723706334159941904685907296235466025221794585238493893452924905269980148544762750363808230561415088280868524871405738914834124453827370958337190881728578336041762518277870350915255232763043151214905837627032591789871224808122740756852171786219950650647512198208022038427885944642438191048867753115491263386883865683514035530979251081336680976564057320529921431353887545142892426799425891287891646732954548099478918981823642407249979635038309395789325427760383506019581554804152636598082432224176446181842469589642474360580095081131479480152054874136607369505734260078417347070396375478698180827629543742036290644621008227932566080666191440020757911122130026253407867640674484172189176041703008944097807375467852358438159610034248511090838562846470474395167347646327922083119823448802219539051564840409569624401162785177451212459731510179652705258722859026919024372880814191234737468177962615424663392263370530740539182925196278751677044960019507823380549857067411748613938491899296077705678228777741024071844264188659399463211919653559429572513356112544720280693883787022432700578077800597985307820394253212372630496699799069632988432870392070936683399688183201442892634743684407576830712596129296422596217550737267565947278538339387629247604633300209590189500866554349603391751121590053710345131980986514595579463226074172357584754413644317313396391267729048504925747257150229329844633520180111403564232529026823896338356886102396972976089867957649020275553084583439701179586704421791497732935273704703782437941648574913086840986360218491328589620023349879933007902695779302073590181818611211382532101830013999357982913526769938360069911272559414789387565554295745991165088744848914596525810158446098545059736781600384625975775736102846258609846381103096931617100099618215808102154368164827944488948471194873155897186765126292058382713780887752595347939205174301189618426232469733239162962388185690511488560561676118248241847951179984252662081088684358725096798979562207748515766277181134925898066267664886606699029933637845584023302813413406597264839023876567486193595990045650884130948998438510426754508155789536520670777004481480824426334725421388711511347379621552591850386988626516603099665481210272749664251363667221227264710676092898533920667356869129137942919521660431254223969207969001306883002024160067202505859136710408868029724664869604963642931259557268010146063396617648261020341342201182660030835042388933564917440428134808260929468420172808716128922023364590738336227711338763328132406182790512863924209319991376885361845589406125348401316129129070807333118859371262801606452294009823303657151993304546976018042761905026587463323350688411288240998621642103230838473316706501767952862566761334893713874424475709310060462468851191901773298629555305204584719328131651062535665780536192824706525307336300819366994653027768476936645388194568771713125294978625879238853042475270615056431957033853071951397263670646756775235582597667284193439180455276430528146515541829397828339236776526084089210463017029650096089309348540239129478750629141685053628976018868843710021769377283245059941181562452826009801119158470279578643037686912216381912685963800110777733700355321431199881019191437748240008581245706519576778352542040619987308235752369710863639075423886137522010204278155084586750067218340727806330515307652103947649119565109128175197382747482099435643217162252850418967101752263421495282572763171555517829265702725829325663113377891661177139285787096314050387523924734600991560871160039995301722045109061722165971193849447118469796911697657284424248348781931692591006897159633742387411137975037250043375368994756278289998704765096573417167186102730499625905215419720084195661813929956097044060081318385788624511441260232692142730325142117176111908668340064802235467352459227654321886983609187112448830327664672193936281745803444085434687347431363367790947872680721652905786063957312727445213128384639060234390616100848991390797686447666157412587768257865832128939826673232862817299490699202608556658259119177195875529961107733618339893079329985696813390259299247896498128392247030310709859367505392295622304329430253453949053518346978351345826964001642616581578943667758134553394910746788318686617323983488096003964969804006765918948598999452379454076730690100633093467321777759371156600749607801365085922994613502961709223483123809965294517409134965563964055238682383127709897749340541793687880026023996157771192530679277685562642857568156718002916117747500707653703987319073572891543733375982726965580823784308594616911891166650032152996606676035939717573516289375179399062611666849509738787763644304537014620697166801848618087681045586453451614000299897323151540039605033878836628600525215211073273359697443156426817153293199967180956384764212686995304708056617552564796154309311059713579374907765893944885018387153353993259051920549271430880109927572238930960442787641328982678675171874796948800956376652621595733291108614287502577532387425855937121611266451185195329590057049254762534602176921111143258522902005583141122117320443821492764905058547155374811783609771883189814525822012309559593708828956867837279311061713002672774190602902920925634005325232364987865433307500126746701831727253270434247626525553462979361913596594072348906600709147011071709300067922767786593685589436956161270811750827007450264764601223343308485482630722252525359469973404330478630471729654934349608619177888161714376706274438728299163102895008261063492122531703275284739726916558944904066486916644719734460109352377828818866655656156544781537460522361081328176580944630220785185585752570981585892233866430069718137019234969262724103996020805710393958961907172194520392075769389527210064734515979740137981729557470068742604612513176389888283744366795945094160784060115520529652879334896049212286586501407495741180156822492805559362243565107859553707420165005018994932522943256916672338605230292710677771392594679986566296260996052420541963441979878574578670721280295403227355859926635457226322063298271245354626695052352488024308790907498632385217259983470065365749625944279059519642173009024525486011008776478095362674757010833157768444088136022469293193343165731946057868754914449960702142940161054082104466788452772517714112092308292166095693960250505673335580004469814703926259793502815924714236155935612770789031615941937706810792915521113314775843122698179870004154194308323403893486097949676598190581806522565217945341997832072030727675956180707925705121937023622902804730619767362094457955570027473981568552489936416038475054049705394466343453603559476250669819080007408277731163791747665848088415564808364500320486550393934761714654558124755021386662067614826890550569128197210384220102155591626111652566308216185849790455029606552551476913397228248605327571945455465852858619668093052953174338755698976901741001145124510275452435843998363117611145328685988763578165750498030340990030832988213237739843217511180131807384244741007903217565000611400811145975866471231508471728594808608107210179521086626021137323302090566420638061758828227710332000309374795377382373350943896139191483476408223543122183484791354725639617911610665777353867021263988431459477548437523464165483352740623903860855290285490574561084559228602073590867882979114787541475446051116947440235354429550072399471103565473147522759316955860727700071247550031338787757115906401316172491917808167299810018879369881957320875796154253337203747529156749048707405043923588952099979851047003669763324304551928979135337873413512934258959670688130694524672555079065468512421507157782144574196336225772785621505082930305447952643276700317484610611583988112138916900733140313741628324829392638603632184305404289786563325064781697617846895794889108489347255742729728242713573621742850299625900462795205235196664958216420488644618025805166280773204170911422070023031333301442492195776056588458437728213004603915225858687757041917636324526375055489911981484750940515079046999127985507865321575642261967790331776331708547121372060094748662544381328057595847510273857246352671233658801694848675979770564685477646190763614665483216737138359302997988369754379404129198759662074402011599433758925019593747677039886897724764838917870582186792823230760614901988952613759912981265916586034569558962764649458388112378722920947059006154359524328777785013386220212080085715308353518424725501339612572530375090520700519774523452239703877281173378421941132812081436361972367705321789382107172301052594883924968580102913880280545334274391202950929875745954542524455444947638638826554270267761826667598548512226182382143191160152793010910551171889922120087537450409378802653505884271620789191489833810537858692854621911359252493771914956906297682892575807728752513671644713899400329999956836814426033284046371132421205796862197094125900819999630970313586888015253960911170585816737775016506640143562688754727790501609350173871254381488742812669187591463620904392358852128617262923272353935845568451118284223312309534094551668787150308738182123566524123852264899198604360125910958421114689756902878229054338133723234750365925228086020938351009606471256663647050818224897839406974642009666901366751264738721057261530668184949369785837825870567918076960831133432907718123699082788735939046598294268392969665772351272550197629015740371883503642450345771228093592283563815448993516371710834890218634750554409919383175226438315824380462691769195092292643233108815380328090036986480671768085078128963693908500040966713458757452465480335026663226582390486699347892106321655586937361549537132510719434045113990636620619536472734099313211360412838252443797963507777604791416066460160618048148303297041489433831148404763037659199560726567292015534804414097390278029260832860670412851827451303792620663371459520229964384412390692747840765903497547635987443173727033869038373557664138095187913221532646088373803473541600193762931208240895950373579381301040589743106447576954195364818716290006963630132142356280440549611237120493368918475346285509159131713919524009118588155086381321375050344644640818012036634787301179758033695042845744971978525623287687980104242917715895722709845237917455439657904833742215574168558956295960685935361615218124040071618046724654193120388543655113197551723076464801742030891560830889044287756255127674832590968495289682104050656706817875805423246595625630236650213052186070646479573970885395327406679059647984739369997955974095126966069352825052420737998899394481273722905144288664840067985034229401664805144282042675128544195075488623733597130603109211223877932117762087680726554145592806899771421918252548405717385395409142920647470048076158246830257132508158104463836432734483580162475630524782258805303156174027385617616233289175877396948610779647760137026658017085689752268172034382992129212190409176783921638339744074822781837812530644266372415250330356480917572645085877975774782260097860870462467600902726455112571155065164980635139251199033148397533752667360084420897165187784347782333984651278586995571538257629719161244220196349398955981108343164929659740011367192216809488731011578646103449798016238787149101366654483278659364221887520481294786244355428124895717529055551989932615062670491199351382040804656573666260749958024368035489683901816473667819971392392099348845550976458167758834433966060678161637035750472711516653090021002036890484682997385780344511766595369227079662334657296454545620224016060802758423668778964772277807435604080909709838160737516100265214074319622573865200032456472259434225479834805928240893856733343678815993708407896576236664127498897981499090136892853990297503358400245666734755941615073379255455359320583810791632298531735426828111169576633375544468662697111341699338797173577242410071714303451941966277567610070198911208997320005598325123551069165039415312378883895944454291392359891825874954009068796623799159031857013488414471524545368685235411916481369754127790051915946545783276328578973189260436822755197823095579263346569794646225917811111383833997462670783380819768836578505353443889524715957902442138750846300097949775529697860753831584863362071448578550379357859593791165423951706801559329116180816403861211806165287536042201732728097737353032417529343561371418665347783853682062501654980496366501920491875930279795072184582820820183225047334646204608926848185039790625487882635940006874827361459851645046166121977804164093472576844404559726205740009832043567938663113017148364681719624576128113051131009045899089492330786714974180720958432436054217109864989438476314896603241309381697952737850825693824250762649232312628169802077181304271797837491064033395435675428203798363610936226288822623707168716947816250715166663558440058046205932853187769511066978010904300904049224799743759347911594649009106359153541145018848653599320037866209507428939546660437167234345546230905121398507442434196283806334385269641229628005386929141497073580766501969912699726816736139616891995784361863970138000380101402024432798674420101897284493169953419589391945503425981705829504249956208428551714100373288415952613621702458285868536009790543264211029673607785096399542993789716019394222979793773484905510063967922157112536894051168756284965486830242612996353076887281079839572619553009117418179882320909803151898613689462866231105071680812778398438692040044901111572044350129050357759352231175011190953384863943875461246344043591536232453828951528035049063417651424919139937132700052305354429722189254786391785634583060021094962436318738264009498580276456328168462893603517171538577296163037014715317830401404445493039895875229305259493940240329662331017921691250222526537393775505035641250024604570186945776879267705445152727332358731871883612582744371918241622626096170816905765037675762892275477705297108983063113833103454653564670505455090947271101870623514943099126680333801446232045320797011916524027971506025973113389188423143225019188179475279229422305970496141447089585633615540955423343887300533498604393926651128273361056900118910986256151987943221958578644346796253542325361809966551546950194258380236723225921914386696198495092061002342583711584914402340483816273883304822952305013515245804411820377721741957861113410320165066994345514597938367155962402663422949031755475511293713067442063081828923645553849373596583001224118530294533460052230684842456924507187430024281288934908315354322195520712073249928170333177389961498538161562197119254111857538976537547780813496204326880399770116433175296305330173114053300237816643789867412696375380784199337549324799587575094702648019778766608462152119885363797416199170664160356695622875177065399868264547538248828351024164332911900717431772499209143965998061595228812934107382291941315993697551715344989808629032057327351983651255657611436334769538513598504954982934500149520963249592402757324168922346553584038082049368701554545762996969068092406519157509118496156490280493971305052981635660985002559462623377020040609568750548052753781158874124616275503199526155776958919964223204783081740877333314400744473568985438236312045040372469565928396719155565416126573002292833426393077950953209591203537099435935299186490108525830145045154329628373804275237794252708643742567321123509913346570603773754217235900174931768276403248931079121877913956596518093168846240214585408334481185197440391498978213388514672180077678728121235151961749653944905271937964384946804600499856619317668313248232839647707939164717901703425720233956176931065361520176595015666497713368228111303349005756352855536394069151441492388699791637277019742228632259263168405336706650287241408731869607838616254109718628276190332795257602943598483849085312939467429651929656689251591234451157749838820951534247172921191641438488143981107234517927123063218290472910009800018126862532355962296219135271986636288033004906960107441288783520509057821375055291891905278589062675870892376927804668588741494857300882798804611457927761486258827057081771629101801194891183245363540787457012465230266010595355149183006728087588619432849021242760827664436160395663421307450403878944593634400642777524858157379588210842818860136548045293616695416664575358978252058816705489256366912605134705174770537496603472011664180832707716025829423510394592334536018067947741884306301465673832010217939779242667862045972281767203460500414267024363049158903193031352126131751694879227196485492915156469023735277851212875583758930513534662977288301574950157389483188060169273247136455685679435073686805344051160462126779975950447453130234686418987370804770442567366282576030393149048309070695964853041235180323402418227946414465513662915745155444986779230233799576454314271498284502641869277005391448370831874003611057694468116128667498625553214468097680759257131611275742211928525333317392397476131914763592674707698403621554792152403607900240650422774447785417637438167268063545375232826982878810231234786337196313848042382702139591239521621794641109000182436749040858752135073398743914243319968628343322317824086821173479943833006110130474986769483508339098626315516949658707316790741041674114455203764959379707468718201671354459567530014427871433393272004105161193336170619583461553428051078413694583466891632461792427148887959105519014325765011218928944635262433192027387022243098495149840485408159512590747707572125760327695163290601793283947417565427018122623117805317404531929786190870759988888094269427963165390225934308063906255343584317389437930764588788771056640928447503853087583301245588036541227952527124503636799435106730512532943817584028921358170927752987615762060342515412645573448412008680841275500639570160850127833341562903947764753453828114297042045248031000095672316168415939841632587383834109361717352430422020964531655564766801687942474348646651395468690207725226681735752902778112062204413575079360668718715311131437891806106847808836943495923023160369327995867802392496040736731689369119075023338569558088566619485072300153102007635561238474758438546129672910977932076597893310234344507982422312290988309268035220511530919107147033054102601848383608050828418212072186573664830660148613314887241773127399985122599880865308189342950474951197103024571878961606528115151411876804436181154247913290972147797739838935934149151263141395432153092370462670732998010336876287031909283880305802334504258864080890837762166183589331473995055810751462883066153749004924608127534014624070360194503732764583960600277071169142418892015484544274147765741002012036297603987833090589474459206259092860340139299127011290107507849040249059012267231857600456516475987624979403454939030601571099402237198402268192252064843929869332842195308375030382493390004764401216063171386182962537494704509630703409451857013241767273299781367461902038598058431672009818099280477873712942210268060657325735683950158091638104796559529459482261531612699107014173368822617698389802811862777895175471015787126081907871237735820850751958656734745428730901017786219245002490319629643138322125542229845253853158649945177873704039728041293664493466074985273758531249985869681688892684901609543317639576740940817538647642012852584827089468546763809149403900164037368967987290579343075565599267151827431844768454234690141263922065891622591162705556187964115944903793944708036606288664037989352313854343300206446710519613568454933461974649846674888281044537173483618555263682272455090431601233145382467137000846184600716945239874623359460380631988935312126715027246387485355737842560205860941226697226615996046211973357817763128605256808186761256272621473480493560666878610147374753584478392067439777250914302849222996456727134613448449132850186167000882307963262285394231225180811939219147938064834474383241809815584815172894088654047286198380541687097258047019209114517418305438432793353179530309795392322483952657177866770536349270145223319334566973793330977345623925835701276570906432516544390001184983340881205136696894867988977239876734080454798147177171036354036178877459056289557601412314452690216416895837250961593929641075892816692132551894192846336049432266713743659285160119727993877320748909919530972176764316547266154421457600954498325204816779598158806065006499295676614679990985102197177016186876674356196235724906739667765524035184653357768365520421681937413829845224981820340382800449053510513936023436766590122660172288232343977079814874542331352534906938566300010265394880173540999747692649906879641380729343590736021408994472076601530282203408296345275369264308099080491352428746987570158419712399769159662318834543997395505269719035919181364647142941207614350076165075880722834976138744235143980725810665134217003931857364584476292863341747079065607379765390798336112318443845627883009463296029301517525013391712377154496727520009047241316707180199643693967985956776683544496603764502627999232703670656401032989336428072119082205367615834506407639399834682655389550072780178762643486067710570325566188827222667968600501981981766969117058087546386697086765299982843856634355706072998763687605515848351839350740012606632223955595682274927674639327469552908796579965632381061934996890616585478798508767401162610865063443855172872732011464272004724032434116238221637170991641417259928057288075910149826755110201010157219088292424139576337275745302339559023393252447681608321459180259201186601311109132253364362325743346190458024907602312773852781090702678925242932100559528996465498591987824474698633353103580414242377567029666471833198267333561369729488588095009980750995997521609250857906395768279250576002290449896657432157028050518380339224025229001587545388374292018160894644989841621071755062684883021041394357033990360275745084387995951800832712716958217149082707453890709394390233503814613254005125284684970907694641372380470530588985764154151352048357139857018894817353633815109758137609541779086849886717164754619156280549171255218083122171606180933623753955112574514366692100784351904933789931779274763998815191125235981113367128922473570757861903082325623046899296291782733114497648393050361593667171514001316436653999952480184927066625550639540971541169078706499166382014886718060183701868832645669641415802341115893763875380938111982548469073583919886065611423197817181594457055581314605763184335400122502525422693585758761169538506954683121337566207682018505077011238241278386490452387442785851726316418206796573223633120086761410016309608193227370855222837868190054873739868482569158898718501927110564999376987911802907784094400949069866219229469378132662258834044511110209145155077924451410266444547743415353228898296125970115581328768918269345911859146980998845233456489827671313392289267946622984417576612566352842244041840855531974671339828216335413739616031201992471810997895240946693164472988862719941283481422767675088693714387201591309157079006734960983629239763077710952915653191430816353544742223269309047251744596651519747054397656921162088233547142378448894601702873754026744931653125030423843509237104128245744863263910764200374585993821112027099707549592765961241613199658121622513500890814612284804257871241933140000677145437039891577867673824540789714154520336421575935014715897740688540307825260427197532754285446495754751497712503292772760245885990470177222265100073852652278166386794483730812502573103783049705841604284286575740451921437546685140809425276755310082485035443564956137764487058154308895249629601278902230861076273861351350730422581866186259223483062790233527538876389815938665958690835255402035564434294889874573651203187511146794369153809262621916685843368173419624845510111159314591283379967251734372056134819307309399816524367828988236108219872198626534648906034304014444445390190661324883280743224747139349398283082851522716386312100254055667481502369586138525273176178362159622758045262885517855365867274184233240477761500210957233748954023337993971419954803575663163552123469168354463913201556908296839055212535280693855619431014907300732153856114743772831885778716948826664153192666522382291455325743305994375369174090330594770446510736911913823064447799416203659503053651602703549700304241038746639657799648706794829146105224642618688587470037975120207618136582522477809993505929318087114900180101076196542500989041250580880229053627186249965698633641707584468253850019066247945196315458444798870859297698307319152766995228675359337430988254583415726093958852144341223347716602102926177705899976977681002407820319229608433190779610916559898051448842259246089989372697740904333316017424183216890117234232390329770075307512177753828008625938597382464971402964287309793893117160805505031518897295849588040206502791166104643188023603563662505779882605636767361650587564022272731327723221405054318404936614071249928024557982196964934266510243110180403714960049047887636854875202891896177249590693047996299487138631895159645250859214602640558740154175387951139793239668713426379283992379878770545644689023537478986163041233156440689920553323866379898136312609402822272734228271635066349805884234366698443497790066277618156872890716972262658591582963265319838872225227128995567606499371837831530591480911455371677604277251728824367099278672185239572137105272804668217900512800044950654603324324713232571330573192613127757783647221877513933577798196704003079053417857562650499155905915938469953635585482994025009669183592163311679932222205955680969847791821893821237037936534176849530439842272901484766285731345798835836036969768697285276554154724608435107189853712580152721011692530442732590263149225813740429248160058897033004573859315762501546989729270285163963050442456542820922857568712613602662186227334413840848746179536158402819930419625323639063679573875727545093732542440362434775909875106708699319803680516813052818875397060896182721103744086330675780457299377871137787155428841177680735404101551254590856092499934376689578861675501662015097236085206832909844697026706076612507338394463230589317077253909734030951994971195000114855713127814241446292808701805145518587426505453172378564183176610915650891302044291890141974569247800169739045700013422555812915943590447795947886664525257548924106922333651202391623277533238237194832230972053458670868534101798128340130701858573234119588659575967439507491336661585649232726346769933880859348295311316498530710819619288623012170907948866723462930232947842260839297525403093835651763423520100905277451728345169222736172071630432260685126537554554875013808523961293291488422646415453106539577875123117501739929899231691287810096152112468577511843751003201926666630439162286264565443136337246227918064529880288542428671611412586529935108405237772395114695576121529835717140963338252419474169278909072730418776453943936778579234393746999513422399166490791043436871714170370655538302897643514664359828345819805228431485741766728861054054563995341150857934138288333617353626798764296454008017567482332972659178203984802307754400846578007792286114980650246508037047058483820266517718979040294071639165761105799237838676371120351320633546169255214180830087872398020089828384182083986358356968121543305863480922871759769866320093630753249967632135458367117941311840759144336776198588100655181885852396752761201706669769625513508534151557223505986941959373789057947827175374515679613793549041682574507971776206243020492744249192445583201410561734477131101202585527907933630585736113490686940812990898784603012475871538012393737269318833469226648618837945216041627685414410599674632809879726059946435460654619469821342607353281281946756348718087854503184305848969617262734672796693936287526156417786479774266967572849495057115837996161285828190567306787707223264219739867859861549865904575923122632157947234784172012811926595732486733766536641247376064619683407096300666512719499978909758551413980505463235221208044232786451620317600944999694194204228889303399761825538296312005887000090193226449206789294888792747433118582272458036197030408064009582161535188694500297616352609666702171876818553511948780257865460620015505979344442318544568823981497189753208083210187021304709372012309360131854085616616290988504946243295094703518629093183451394826802719154357482975727095737968696133196629961133781365239849675391849443799524884279099555952865333378914192109682217987498749675499789374373336767627581278015147759319991975699160390112262046270901874319781537313425073293255665049144374584341141669391637129599154834483039717092756517622304403563866016090997265538291574735206925597317573212875540990406891231877764392452285774161049828976130319815404091279816861107006204978449958332498354375892111886807269324366847199411210829817019251627840406247557864652252565479741404421241830378291956518742011907176600298978139734973801192317160169546437354417634766473239863990090942809753820459481635179193604867625743930858288853470390827131142426448745905561485045381626047379138084917932239855489143857921601314713602937326092922811227954318679756661352481330034715439191548643986437873804651995801536049076043647253640111482910392082613466992027354314428304956261363973738513991900270472249961236146549336313196373766418638268765716831099012122836628393402060481277598119578771098263771596058536623071983410959436463213677223215573184406040569945886216788757228512913649055122895367547114204923216965229168387412603368972810662639916750594802562915737011994963217269242038788418926741695056332471808630725311173701996772795981586551204807150018731378738965040089732622608366403468674517563614859659193468036847882983283386295546069166779324853464751939685685255281499442592601560368275198324646139196329858389592583095057384211597523301114356521595112903007835386543879300400125068874640645533966889910900001373208884393259283190880752176674623634955232678304608516242009585697458826267382537053481826621836536387302702282846751468188972503399671981152246267284592855855723502832593842617718493097953094732535524816071255876603790415207799162028226409222536667263718343982420228127148200834578971417373006329251720783530797797784660826845662517591486664047680080259182006419686237057391665902581661970326785601423426783836454114880932544695951514218704403794376166569911780413871085497849360550761383011361532140183488809131606156372049382484833700131878516083864373331446181364595822514719351794855197267889066434945025010617378693412222257286864555387639476412409722990768106633507923683861110635113388915936894034665504888042562009653411766702324912335920770811261041881000797717282336827530404137412515545110804358916674614698807158060373510244192357269798526048128239142244386864467536606971394674678626841127229254568069957256276359797991969387024004856770675303504785044362708820952053925054839679905275559991887875969443974853008866764904631036278931111254158511980612910116819072999153516216520708850536729037027063657252676921485166792579492661721037854845348905727698657002473989188172807448922315250457951841214780717042578909976895400436756852191184305182548361738621259480306301109086208801851992322466010966227075216462044047485567018469859563344986388230163252154022431997858971577764887345466846750323956688942945986982292054352557825985855900451679076962571836093166372025432519042437008678461627977070123693513602721648057389942613817052098969162965923551099626519894104142010385605260521626822850522577498505734522359688813094197569360791077585603179541002273195784155142868917159839818170232076189149248468141551276348716471859417730676938213293037578872982053363299338397797448360973066937470889671345793908841530271833577608063487064352138066182577524859711204515020768542276131461119324473684643597884054590076443756257012403600696692475044771368603251358377072822294005325545938625621812680555999078652893813230287265856862236905935992879616203231494421367461285278384728482531200199523927523361410594108446464906522873208457913143558872407703552936678564824242399241344405885734943828259247685263841629179323586972017222485285050604942447762780134898482555589778724580065779557818750750923898401410785185320546075845128137060322242168090249001917956279521834594742872486936635142767629665576526776501166154079326596917386274937492725646831402413400959658878706384635376038878069830965522641601806300920261508913601689327284604486911767963644872536060829750646798383168754434429918309627111359572284477412845326346107217124046359251251049624756658702244541505981425065952383790257183523159828789007985428076752532554020103579670269215914215618099040353402143121719788230768918299941024170476637050028757479010770625173641332378328136711979391757812643508929915156931118115149390383199278414299704630590556499297916304075313273638092841078523821756993087431255174433576380295548584395907256823591649103471423259969393878185937161561461432808920410784074002456180973881009595522674551817309431654854948687423021947914491079695716754595246473834109003895755276479660988883225752923833543628786188587068676591194535488211094347422851059957447930378424291763223894467965451082883630376810381529408210376003126935145416979540021750355825446602150844323727544452207307209009927017975740361928483027482708384182392942224919723798203130156734854852999641235197443168491429876541939684595773224247393795954839792408379176558910799883881130789545325612134811801317837656342388837195599752836550383682107634389366446264141239351905754421296016027201047650080579624820333995760081192154266627908951377179902403889387493313105149566291280307117322605611558145450009803108886208816484717309087921711091723190551961979224250650964618050640833393697734443678077032772745840981360529425516254456253414403270414352613224607033437735658616444831254757924433200216540495756409214986049920112106473459763539627315833762939410445792325287476479794539631220164462115290861983288984359967744447784074036842539923266844136600563821423412687311035023525974750989662109957335432351322759366881128821876596849045708060777430699893912100046883032056577043890095694310120826610002689855664909266894044361431672801536197995921870480661597905883744019766552531827260688848664854966477890860097556981657227165207947282578503260747652978762481186046438328283928997012219513994297649705366622792528600078519333639975906026113723059690946382793909421752809353330445494460778639264368712622025604972228965497533750953809604327096970997947091300612494745220865735083165162489910529856823357047359230111266474593189179695115232564924659262563284314078092673918240121066096787648523649015472805557316347961817943911398247246150091623684920414906066846629705144939643205978454458962505747317784805398024631775775771865589332189858020830276233212301139894338568868128240187113717930972960425508709767643596828703822046282031368364774322453997606672480354443531120989074820451906944354708439519134886380776871789457750996390717210992166771420103642647037494173623005459509044631126852524634735294444591089742857534469985379348287405737480059520953170360194264088907904111051490584246639611687291721903096802843828388232191912572512961148606898829374632024807615918967254744250458576181196782387286338628713340163276805210314484434847224320993548321929183873227106092363431498676287821058788759162042881974750102990316285648219184059133235647960861709001861805187939057761833782923191470113870095681541821699657620734939897832573683377570767356140352737216269648047395478268829267277862518040884169258751305063068766772684560282902149787841458358453967586317804466742610506858747804246410557599405424755277917080445546859276643975676044838301373567224709664409193939795657651919212202900471972479443834736849537977809147025936250924133033455603610653650558338003735538058323867956611214664033676954378560615137232716223266251160245750580958207664789985535758454283649925606554031605601873378775065511395813981801382397631314425620467149563478120735357050627323976277017939329306026546282898815139077850721946142278346776348820347160760814212328192025532780915335774549667302409807038523169656196974596756347776878603186329136790391034826066555893942559106373373174109435006126060930786880590465704403041977033321253595679864147105282998316478325963084589669736113117694609039753133225573403207631104125327048831451986467826643226413108028156527058985751926947620412444242732123858053499645113715809588613727019328760905049620380926760650447314406956684128820129996163161453352040538070217883958420438784570578367019035526119683339109997061295197896649560731278173188614180260916097498432362179255651432635714293124966751091563236929532791204413262122453768777746414607180803700668893999198854208223659516828790226683379548841883806089168678806778594614241693683334063588896429558639744326338496810761457507089010518616611962474538294796559993236882693721262358898693627939731099869115116356031003663458293687798119194383906371733924949040059831293108299928019231622626260041577054948605175369244486844493035530945002962559739494227154618135112489190578132680711414961609165915149282478375580981093348797046208684513057931036356640401245402276805485850882101307315426471686793416139147160051026743128241940321534038675735115199013965452770077650198883489908622161170310973998101278752520895219300636088433725743258563556810214997745743882063492522108548987111416505298128472698902781900529982941731555747745637292470398233137901721496400137900730387307692830971800382917091692379917337764637232668458748045205091078274831751488408182774799931230168605086631436554510195517619476502609616045247894131262287455888431829792022576440383745354787626145857111644900628912055514179174426036303712189512207551970968615474617285545078890239982170885579549829201949974123523782037700282136496974742880596886493185813108916939349413942397198978336748119411525236453717990879366226895809755384238644530999856827736691828476487021285149461442360659883403464187061716573122821036323927493000460524952182822106426950130248531917093567789300587158973374469785723721221751639186563121290630501060867220457962891275586083534938916363191985917066640891506872245839913745308948872699507014352726782079943933535888803852974227507622898890840214207760750092706930996797702107997095798083428230727562144959257495194249128004016478245230104525703589200804339681951078357014043989634378792631369627926835759559662137564933884106995189621131889294061348068569670868466731275797201372671748482729438832847679043779098285458977475377263812320641974014845948173419033653577132946651481535617503264399765099548221856530044075017603210623157534335345184112641982037123777454319321062680538923677465285686538849135802357437823141601313697864128614049742090831067002932671794516454263943317319850044162291088529764751198986020817191721164394562865961245341747829003767405381652832099468476279154752593158807340657755050710582176754867116150467568297397382666881222777914608142136758116618372241131647779588642549257414051105266792778733862159251815743338032388404804805430934845718231261670280926130140932125600875152467921646560813082154380782996410306208862557398782796377280149263325048250819748115516283706561505488333265859199864479143854940391709283624275075901290821860339247345788495391852239194081618361804785615042943156652997754846750459172009842965833509150476491251985582336241905396815370097378061784229457567732648586890414582126837479157966394266799281456953388607599551031356007809407695104202533522326677903826497177141842116036548936986891639335025037339657444731361913969636483849641992671765720557237009757006582279324379252707231113284526008680659553148984329905884997497305619851016586413867430288431464617956087903590940455647538592182984865592038188050943665026308785241290889997853153735623800106308521510424783245796242200142441444788174199653323221033019393047091245029309864681238789389797254876289811375292596634163386684366170754312756766200410211897504859837971882455818139754225173120110855614725498655763961016949595631829933125780308420435559012202266058372109741591939313718349666298971106776201210414610848680083307946839425047883570301036675532521146624623032107699497015912694523205336618767841513559441392451710104879414773638258175902563707292483640434148756783379322391083237158617105705316946973672783919769509736543833711012173867943345131912453714646033433323645343676621984579719075804232287646721303386827087658279833907111754598268833079312448174435590689446734778553205517014318434363711847075123179463153358187417933379031830981588951612857699889562738438804449473096639771039253896311788169914598392851483046699793114198431235273657328717157905347286144742619081703980666316300475645714238610545640628570173308353296533123119880248324466697407996744532589626213283740151160927479842028458710874947148666911952424860296618011420643310064626983246314935918115369562451321809059452627226117932745636253708219118007286749729951631988713412068108878587665915335788786865367224051827183271629486714253580664851118978741491778850626289139133536761979829871336656160129335976197885490962317161905225301783794874216408275508351429808931185415663858422194901797650122867256111291730255201116598132052826905878597360217339902742629280420587170384250896125374055846075255656666658014636991655347664815526290363444970377499130393695951811419022080863940623122635527059971889947139048317639376442102701836530118765363296794861738002110137025349458758634981214753960033159245696583790230965578612222590227708454190807280333668430887257364492998017240078488722907145110844979349397857219800003903755972228191459081929576926524843422866265695450467573487758170912520656993362038758129937289679849106313982808161563208567286583071523614272575950566080668722714421441497367537913405037699329905381789037866600931957517779423825396568135271866893277415968808451266736259065190663918475191465634677775105729984208686503190525571611435324960292230482957754553545320597335074030874206280563114733089274234154389911644921289715462107385572636221633797179791909399167775448084987361085503804410982003326329457549329506890343662239332684024089486189110672536689935357034286808843681370919763303011216646115536692284049531861339710240947420332777266927772340528001863090091329969804580057558908764213892916776169828739077770911494216376935097357703846342688972080610418302339510393309017857665917709390611592826229182932281908984091976280990506935539457918303601462452978396418606583282976592271517909530918408220395317182984339463449603197212562563735528868777295758852563244454556037425273776187231838893280972656217863203688821163219810628848816754181538505003039300822003810270950443710451693890676704160602630944640690930761264930725422935565136667618518620708308652770655042938648306973453533105647460062030231341955657900199574495981356814650968205530463822631767945762059603013095764753190172324251441704289573639084355304713294101090473268332439761308166587626797719913048723774938249898901595662880638416794173019469799521319851919774738667219045538042254776928274449099210458543082705868905228998712584056304961819362452316367122860501446167913069791623400010291221344823306186406745336049833121695670072316139045297156630759770591772242505340224062137688726175739226841802290446258486169242866371268528745679327704984901646598071569482857496191044677624210981357837813366826218854514001496008234226252276327379641584264620649152409218116067953578260003647175824201369455926132379574999256144195497340356316338570748781868854435304171598513808888067696002613126976568580622619416012203557057703966718924348537965167095005406806769471265290955658396403982461453126870782484077883951845166212224838505127184334011687683271345966164957747720670061572636894796186718483791245326400390371681132404960778576145475269516445155041201569109340312036163555096222624058821486886748531534643545921336163783192372510549600551113305568927453783572189325430669110487612748611828657706584380301509363596482155218966749629412994323891760872247806338769634864475834749177572151834787661906747700224212312877767290961165824913660952285551512118949832028619169684306778538530830533127364218333088127781164920286188516431738669487073741889104664219392286636771282502734873051226413605886370166916146053982906752508016002719161197368718104289301173740939770385300978625176761462740533524180479277785758572385744509436952182297013455599394735302152752387274913790692963770481649452059379190552905555511167811701299421706358388466340186375829224274032042942127058578605201733288656977286109855843876881733854681947557601865099705625475486393427139571997233125072889964331621694594719984455649021452584343228112013421263190474501368841213176754220947363445230067055276607391360059661845565613459487190863085812613418696000973694039149098414776926781825427464065814736196877486179412690408973702070257926926472226480527270962935140645927418409903463745966190390871494691616401744666226735946042380113778386008969857605991960063331159123860387480648456655924014809874834880239846976780760656262230369529881413098402970515548743884652085524696191295692061900055879314061181861102041306712349560075449800102312633390978592293823914237138297511157692632523793162287213231379864936830532168406189275650495370802385661887961863021327457317100703618649924140618044705627938846160037413689253929928668437849188797274016299264910682224429230339866980303185879069065782805321511941044520357316096670651370775584368145648568315684746447955698388374692041162199985451522596723789741379225616958018116302205627280124200958113708864731036668721604272182090875739961879428655012371503608530663016499957954593888396137989969256736073033323771722668077818638011351755295813850169477176433459167219569213329336267426144261089012887540436104652973269947460269599001763796575390694275372414691415100681669139637328866408630745875450449976588876260395557871034268770847745814902735730556201850345314942143009699180950888851444078572599809252540706747117827074797901085162077334596385139635190274951402899579884981609867265315230572737673050924099134544459965796113207670830795639396642441677740198485067537762863568837449882632348687142264420246480377541644526426513080131759672346682331252735583987451665480998338797259917400889706488040741242015736325880604611011383821205635673552346203763250781734675431747354867297962335411589110389449111012413644123161926635489039641908705195584262246199243326734356062786903396420062709887564592955910326243908536871982140240939516991638016944185977044278710127693486720937745332060101257476562594632852067642556516007235686795094523449069897256123715997439965306838437406337584259054300416785440843248403689115809810792162169913264836290111904684842170840039525108236655420623470378867976398619643246793562547296757175122809868276413164217828608035232686589548871691887152429340619661963141716941359013595325322678480571863741523421066328214789529288636886989126741173638061634017354571667874043795447421029050673512407041368645515301810386353290558663140639561999355020779222503481736415912072234097172327127256191327159751936998507878666477088700518954430675176029873971482072873231964351263464267241015526130342447243583489627965196142189880469745037378008576327987005337937900042594694263319527287871588761190865247974736382513166622984817712060214965281697005131952976488127570964241881235519102137699212145999426753798866351416800583397752803930901486763698813839965212316125230697224207458350089411229255176004297262811693615492355395347382708402292459801946622243577799065663119397950095419451958229393428867066851666822664271772071138312051982548175918511779540001157227713318554487899125147395708636131420367594201836453133501461601670258411649874683068053710029795327074725090517861732652085318465405877337536437063493747203108448702919963141197666663122193567946453219806252119247426859424851052295827096708403324814028192529612951478625995865951701923683500567878703153566237131305473262240360105856572244083269291406182491250435750509246777955119938638096565809842407247096797374871758149060553233310399183429907317210744432786675431803695737922236157229980194799155049192257643108898771033174333052262937302019135250522344669588639091603082836685936030228876657304598443705632496104264299187128617525098382572982372957877132110366267132639490673858530329559772134327899398837396028485815624409659752889657224264823377922057932534460058357730438097398413223550319501636070850201953576965714624611065970604535411650099383293774561166869914203760666767517212785727660346429776706146311660355347910253989937625705143978145174612744933923429289738533174051964256560830019802804961031719991548409763843248990967169453350225892605314317319096179155300200760265367967243408007433013903113488585898194467383170579534979500651555631954209653661889694221874563724785578499873375587839505616292155073886934716422271635533243120906774216484112587084483149703674334578611403298792639524885773013136508983152555831692399654017525406708003143820013539917437268569783947906004562870194721284653414542246149086082827273132395128853017813550299261097355214886565077417751770373840377761837752568678696160582062986571471709912699189495938599480013062830852796160992926052207519798111419139308213294355790951920322479589643410823600404391208944366551599301003049967266456611850610110864529443279191160765228784280721155852897606439544322887579413126129315153922365097119298021438142052714926969836230002814063237191549320720218310141463851167067910947962258136829296813496721061287564449226026568378173359882730062754020852129178023914712881595375329721776307696741214042236527280871163602184810038548858414141568851858687955388373039152788896781343249005885393231963989634802261943881575278703118298825527795496439815551217624115019792197166608302845784177436680318792021620912258121606691660118847806530307744691927668312451166242989536187932333116857685314721619105579882322903803512432445876204199098670164127779772548642963381399867685765506429863376195347125819143006214312208699304230005546886968721632643348000928818999295324948542113274838863721238045796248577656472283226437058478582564497057385349403053530965932529658145955114208193715910004184285305414531202210266587371096429019538003047750573905269168160270331812420062209978749431769774927782109793322666893830527145821673115448120115796290012069444308578728511453928472089421190448476740326510532533347113870720954005755409626702074599498135640985681762522938433687101294672417360294822239126386683939334679800667585923799220031601940096184568025841941956507832153299751211223695598541077615602463105758382650446518182245565536298048259804264617216690532669033996294042606051217436506154896994490940214801748615064705388880529792007766474690433730553510284434403443352436494049056341051815706355134623952847063606584117563856173516837801667595083282739492634507703442726341061628943582043275420696091379931692459294017935668822657255738471185807910934535397902279509627124822644266482223664156292463737817893399227280325517675167169789816443230740911179924404997589732791468841213573482266282419303940492258430805873670834764680403205283525822326774629177797096570585029642992434638125077419739614310321658538813226503715658905643542289667761616329954007205010005224177386277933744300789033933978086316774489165031963466898397882957976295175421597454307286191826043435907229022551008790574609982243656546455823009652574980407000552071479010210977375591757730270384466534027181773026679123622618258113406968084955730406345298291293380764009209013658879224059940656476858706289936507337047125228951993883490718744993881760441635885549705822254615826312030289433924765552095954340657717617330158352098150804339168053891007878985712226956366360498103471150266765633808814761022737288288925988389536131616617862561419446774512725562351630527929143489533991297044834889024087360791636758176206812362240006734164194598937301720180299882224283680805875397054551503800929624476360589885196457463214405269786816933638420378925381003696754075533332085037898037668696660301800869271534610156140429918590253064915028400407704321637883437077371498310065960585097347953156287691640477754653196876031142580287754377910523073998068783044975187421152873036237195617619790879413999526461864193790133117324381250191289113003429825110060826717254213597427528049849123081722354706006320851198773587211114596995550540664732001240361387842942081988751788260719843902673846311507194076328007459574277827920583205296169150497572088102329814905481245288635557944496190438561951132371083454533219408744443554446287645482226322685003580477065985349179639832749102880357175787682695026085053677537686224757739427872764660006562137968961885883391234203370666933355342280349553389408293163927503990238109064198632048005853524219302180223845745449308260223461944887940372656494171321505210622802601625404686709147878266894633837652837562476014358124097442087218982070662772783147241973232232066230279408363738822288183015262718969249985855198220267449401357744523998670485661056774217369704143423631077079987682042811185934983571910718235738317342564849002204035591482559308398806549523038293991318520976609458541441849974238170048065387956667930443140813693243357568304550949242781258481768182884790672905212647056802474177357910237465246719276443432551675730810757880458881801002490143860790239155843804631527012895754021591373028747702675325612394478420896467216311265196858968268083296937367238781728568859840346253776212580323310411465584766703845291944365082325428796342720034624643672509557478374223224785225584078545485705917891415341025447855847456157512352024261516430248348664927145477666467383476710930691428877860273108823615327635212490154674130538157491869824489533922927348829931833556333621808501057848059432101194913066160338312878947196832536448814455898558168328117311579572115397306433972527395720073871447019602822228981434831515835178779452796949168805586854367153954604750784203560239390875712349012833884821289893207995472834691015972580801104000330586667274548924116110803589412259774925054501027163447891599525371458992845015441735701521868817397408086266080356214905754431243705736204865630627740725142788926391186453182422059264394139356844816064273375969698322913641211865854867571386720749878238478721140179684882981648247088469557558715860472562688335046666191473491234002175333429710011032908454368668285583070652312703741294657575213633018378266948950782103727818601782887364718331702902669815607260132945554321182852231458241929494128375778533070445954586421012418407989636201234200094372165467189050082759102603200656919969551865370833305404586768315546371254022273424913444315569644223216067409814941453786813110307448489450676076743532499350391623938328460831281918841931950551337876054637497409491818282844033823395067819437291130530748082247005788933776423082084382811048959475750999309118621771661919353917344524319924411271950850271575177361465744430795400643836243968134690371347258801277911407967757100335008943109565831501825972828463726749789169167623119500513550499297779411196187755188104999468986868198350824441505104584726829225015427119935819006663981067815109405628054828113762968508049513636531749393115367031209230129429236329663472291957176363036812946446851475459723805257279937501228225086952441186294961946342457859110958120589524258464032116183665195808231063850088488206788021047142030287489516974733291922957479564889862731086999871622366198020748224244491287771143065924015761561713815140985271729511327286711050380136588544637096859081029247835248933063583659936109857333247663666483480130565627279588531646061828633802369381416095574559089387417432592214747352846717796523723468167411338244520484743951546459708779588468914404866023316843071307900881207086083641733657080984558849998611775565647779467854824248964101694870069603312520513028567792360125923475255160754286965838347265068585677056280718034218122123943362301822808214990122412504853933196572880737212616109738120666531991384174300803674884980486330270365175064754056777975515683007397111040875973601829065703074923117811951796830887693239573959650268812669715631345767101024642825963930539783725264681162516245204213144936400001250114237517873673960857883563626320719086010196866989943594651496585465216817968447545941035231950133146558707769892574604452090321047199534523563246687848491280463069256785311056047484303741895534900478699981270652979972137400625870776103097141144574076286974191034503194202318408683979756363164377898947954710728239744015266036881881935494318719920209889537538988846279007375509271221412740981082292663036063569038598670574297619646690779475327477107907972292304655466573015324564037828332895947825220025678456414708257835076411623639184364317556476085665782202677299115800269102029671070170770498716447501213747704350066086383885172027493202439090644654723549394201257960245266157863205683909930012054888059480813668804434469681765142071318865918321459435059011882360570704512497907029034795421317512091699388350144002859105193492923603940823053524172443138186824294168974616853589749482728810499476553202141380188061829927848333336488890024724333975194802410721183981936327938020253794641786953899418813076336143665718905683594061313204275498587542107061107611741915446399214335419057491323982318044279939008590931010267406111913770196712730947286877712069091306914082148037508393665758378906877794266413287954989623091551499426995177505204324293848824780934324679545520737219663767004074578652704543246047149354358075810324684303660616142922838747318733918436070794588457535839672385523567413158998997903885365006751315786897523107462594315097576951137367882261013765198259166188902085651211985438233274513549420512289119705724324141304948667499843780386101904902304302168775564972695793344546363750293342276189581554339019385703637597959463026050968807169849247501752868030764647012257103771607938203916879447083817235603404209338999193285727751067668379063933264510773683232653632620615244014618757448921680802016466685456104357617503062934697189053208129464293897615920489104585296382907180542549917948293261261819614318313493676271596589581608296459242166286454582223435443955866891669604145616739142827744764890712758666149086118699286289692619173212230996192516735305475133626480900128775692737018054005089947838091359313705630111174163743758593588301279930451507687059607846404657727078239903511053970756906588004674139062067348936655264046541509352641113202831393518892938843665859837697404816154405845249799256926731671426927731355635458436632289001072253290052294840126821592147233347255840044212657079177381248595366992777553076586905870726217882449873185375801101863929812458900321075285319284051687586251542476424440877700094384206331754847005885281309880481333883206582224774007464968694195539319671014883138722977404467639307253030992343573944116547962225870595293585561713773095695197165540982894055378313827209851188164423951290714470410072288291135345320666118701908848528654413062760427922371193841689082438644029934536340956766757542907769485079623507237601026620760945568221691324000241661520028402435340913358550637009659751860864979160941842697495926812175198374806499978700039705085619211572230669270216681515302226986033078036843205939002831639551974187778769219835625998813505846805334282373065720106185546883793525370277441181891567235624147509156769068497806833883210757151180703282955131627124572952947739934254497126747898510480575790662632611655792900044397729145945456098247286795318858918210150635806792286448507138973026645938833903503823396050049506729143159556437256086266729905340498418621387590662761710902402313424689745030013757182978086521080769799972384282020908512719215550941424309971541260907763122457399390040876286678607234373567409921510653082373656372916115744154317624358487155175761966393196765994314497840122864160361695978353265001462714158606981237987015948004918502089705972456816380739223087136240209841144920161248791079433848314140526963909558036508104608078098736009098978548037036984470443298984307527950089381993486332657058466127280173133091314153373716567778399097356262563850501970243687620719499930746364259071449616876176388261826222932130315062845074450022578269020277987583307268954257572382642386907540792726778216869412884531103114618192810482016506640815319727447392111858583316551949712596478999205225220408954059992254382476240457197939534536971775017837158105077831617067409347324502390019465003606579788409896602465203396774010489624695645998508193049323855955329137094594804353912714170498272737093987251098637725217867280537889548542379303481136059752133262902929509308099606221509868897004436349110490829908390268850640623043801786439001876261563918949926052578444011096312918069766726018249176671060904786675060251395381205995607714652141088946119919482883935262983387213542383327635870545781381096593053052902036410310855508110942743965949693852747612280367084761453179208409340064054458827894584523620598647926680720311049094878191903323249292472476646916180611220506869618725997920918665643012426389061215158515256764190566496755045637078310687032464074728630901047609550743812238853372187443477374671150071695416228752985501170852337111404545520874607936943169632613142828022734519071750619155630237208754745054557866040382027899549494457466628227358736686125929326047013202749451125351829377155824195945349687653487085666071428855886496646890789118443919527439019694056529305842379785200381903291607678071640372418744326459565333692128871648033979235269512148522601708866759996684569972671082205473912342262312895054404607339988709989586173334891601078974303680183591024667253590272406180752888124719259354774207258408556609030910266011515423907588635706358674283516244332685072577890526732571589968548773225114176872891245008327126706290421576802308851388859504757342077589875370621121810367414395136042809499826037001758035352437290179627881257356035903935032840084414302762431470566270214009289164345642078730268885593787062561252485886018999277455538645070167519185827943904457123088060698382214043413942867092830431113588760663668791675115314274941094072789103250869822519031026149974991963155192426073860730150209019182063562975352747256211278333835823573392480325758907850167424403610758072160098516769062869940032871038671467169951317926042233382910778915434701866364081813316791408005083403458903301236390261572061853745794833041028465416261998416985614641154505502324885259125116307374897456175353160568514215110729677729218151031053563301839348653492995668493632142933304663783628016158349327433897701262286977652587626107613927483216767048708416659383760756972520652330159134143786867692257078937731911501516531963347205964066701933075531582427678301293096860423470752123126255397132639860392459899862535088572357570768549889464604749666179564360437452952519005504470866797161558117606252171620380982853566412671401685031208664224691740586533697534354700509745955977610798349463583713506890550639790937999944272646116316006526874797811135014664771326043394935233498260015458018180211612448083868340215539059953117102513149780026150952132397330477695336577756900316810713136906412126484360703954140853152445118259524212764243199125486867726839758601699540420639383607103487341463051946754870593050459503712799473926795425189311638364817863783733097065738162616477598620480038905050646729619540308224805501651857102262367840331295531920487556213019583838797235604777490988959855670245601263537875923123414255895631214368087717570647715614703517253793105927935834945625090097023291100047158935161407315485844842356603363967133324089864626702064799406707770387625966084096289226339936837284779502754193025851779184925008946519115344631340337741779283561618422605459085706026479256074745484802403432994755183212107735805091726977436652748645154552763211925297507565410908421708137803699438896276608007948565221989818325570151747161949658027464117752460495166422115193963988159738265243293850931708967577687704692690469653752854082482284832995494133555635283513140329101852547303170046698968786424651124120518230150168734527579598810718821168557575314994750790143071381543435694405210964154693717732378020567018179375888019145286526140327391430871693285195462445154397834576648219272378424906123550425803851251455708521875976060646779149039696491265428866785559635964486655613888281463861078894198346137430713189225100707868620430658648333706604002022003325939924367973197681002590179733747504929863446617993699891726466077416774800673688749229808310472826326427799665448947546282975719763413993540627245870227114340541779692114943014374879435942784559236102414624402311711268328364855073019431703187807171983062508475623344566915459688524116694884931950801142191991835056186381173035217946309674805197364636808729914923058794648824714490536782903657559718483396195939615142697421208648685126124186002800609943315759041625111573077412016730078641578917321032663397846990595926480495908338434407800433434117435872770863685895790057325586270636665233475567805615123981033374970661320064704563168604760758141148766014979357925085603889580059932799823853154341241340987672784016428569897288334643941435401330401252107283910885250794766479541043101443358594106184150600725099084106461492746188533850358026442596559792053798982491704428433640921705312800902333357062940219351259186366111853179211836158349861005147373693362656533682910227472573913288448822580606669296143399173869847104057167739287148164878918648086860123346337091260704186812020804921780280843251873492523362405900111215876482236834476286735476178268848161454239717919749707853283593356431254466957896192954898132783372046991861548201348893975473960742275357426518405484801595548675340334851011355570823231177978805753920328053553274510381172119350293876447319025786585532089764864612078241544499953445591145602168736076156749041961616234675955375619489492392992367055905412627623753878063192670525984789189228033436417497657168458389909366738963892606592526766334304867171058865174390458687223727259923460231933317669037190646656621231091305254072538071807101749445448134098760541715632485394196650623477950130633353746908255219154673863096331331375546494583356439973055203765925910643529415005137090897501979531591851259171560873475206918852281786674631079694395571505836763230842179103646515103767194679409146678711969011087129458540990940480571306362595258507466858764771877249520077921297208122409883820155390071317938392555683663061153574575396020442350609592630851940419835395874905094186450909062858414804151067856202571685236002241977726439691775881168338136807757882376183254197103959310602965951531886968534775639983105329463971449188600123888848549964628184052735471880568624180521494153325946648907914205024217812913637123673989923408904522353504674424562872923961085735917830270017812600197562210059971816693681786245668851130873189368866905411494480571185271521467616756966938668017997608987905578750881829956035763790936684910044284348386229503902767871324771378528339092708460107981118787852796547334183961210529597024829034714403276053559038168895455488355998523188946205340111869170657479545203488316652483772054225011838403556364339308304816173587581143150461451242661228078714342509951242787586163471652453247886397036329786286450517924743858612815554623683648715726211514330967005063664929900706504782414750730952434167486305576161996529061075002374794625925499790420794440991774037922554514468643504195194721670493166058590185819884060555177788974586924386878776388903259748985031298439685528744473200886334729269582755609908393187822484015917430157097335800402772687968696457947398947416803128514628164186762267371379159881456188861781254417184094957983454432976424336442194789194472835968482199773127553202135723447938046444644663530930599421068254970198301296136607478334487727901861794699201618696970164636014587756961239285463259896809899446438576303210943087307288879256498810663295447803698772053316341708564808704717159833124856870665511661789408370436867884263440609880858617269303026538502317842263820106012767015150937052363089458487800302691134652421590360666574482680024342095161545150819577660279010683399451968011899212337710018713029149493673249158963139618749385577036973992974927892441856141296457356951123851328442614656017399513892498663060254060029416137958073606201186248417136122908278245453692408607317208196448817423356757402427245784104096944921709416157920208272235160997617213589206707863215941614366194715735773756610609924542030086685233012188576576587053230591584917439948859819390490040401085902680334657216625632640942952988940441864498095902291363130779972996574175452666794497651267206074228756983799831435139063741304415382375039248334751184420377385508317757672780275199768563999269466487617288790778806529345015475754500360200593292096549677880760254974572022211306956071875579235570266196763409105018882655423854663485456170148739912715333543914881701726694633060489414443278034614630997290691124002215481129574882214825248884169488859230506302540302758886402970493194962465886812713749092546330845392465406774511011665207389456377727363580694607118560918582186365457870788728473642215787576903596319112060126944895765125521929140967683376140464535982255213192394341818335292391773690926395331053334580561136627631165159039921457952919297357340316635393888176216282598048286047285392385341365919726168826088995545819248882776395742025167207406723044969806503221221364732353812780710481353850931498937692399140247287908623934326941453088812595890662587503059469327525174332145457047256351452744122759142458418164870148361894586698147198280199469661492818455760728200797165969119966966660612281352643972984526630474090682282521204563934152964201666102445278357368067015334701907088790448532889676799557353957264967442677086159134665428362467981567489590758219449562762808212167605023023084577588648328221883258241119342508768949100066322873361672438008186348113029432245803177494000233852831619843390844300822806712471987608984176555731144668413219112521423390040638910241155749064385733813651546060723896069618134343109117133081978446206652926640351728360155767009779913857229460201566007075050896683132635101794431717773122207421110881074627482602329921338009252374473790258249322130810160130030663743001351921358078610573282994278374969259290510787944589661502875763223081723996294410121468196034131775557392046564142330900180521041358418912832334232170449694888012986013891094428072578463576430305269162517707181939977732631956970608767442201317935910780627689514138123483817788644612287833539695642869411653627918700143717123619163476086499715463662973560672875557158034856232152054017897570684831506992956992408258165837563692547868772725190389036448138442407824102025390029475216610620998959598749042616577400585826141267718814586984130478143913561662844339710357428671620544073122995913623947339938452385518440242620887881658850209536868035766718026436931415708257826953778889897954469563763338653761872416611434124245077346414635465513983329262854129652193064245942245484272944557862667815225293643976500195535178881628089486941717212890224549484422860434949681354641102289766436118885865907499515525309170061948074556533434563118243002970510483613855165381633083127512226611511473021804430823219282615396930767256154802126940983467548545708188877513968322499748864810440685023800676910256257979167602494658505991148613411149558676636656573433701065484707641403466612970044888192103077375998122573624979270464433554746202439184941012876468552889126876791050677465894503298639264114598722687936500551949072776411352200807689002558939690822913366900763592648281819572397622875883048769679496134304906878750433948923216226544993223827877117349251785549832193299240030358695078318611290893167280329302085782547601391219779833971363736241319323152731940548246524296265497650949255272513801182735359557911648528353936837975331079851488559845273259298871252955854975917373532975090646993252498072545479059854043714409594980750949345399727107440993516310997565611846919789152444580330018842897100912739543845892053970510848902537578203492345382372684437676546441485597019089248321391288815210350272792735980642751039682846534238817020991636432407271829447318107013171312452713037098378454396479151477271632592384729701761542175223907854208267736706038500254887948577993568321447002188985095090112983174376257091635579804082333802094731072042542705135896226908135911906962650714289967807406233981036571364329155221621063007022605969359881228809986852538731540404654875001411361043734176877961534805671777362492476644817190378050897713164392391571796043428780312656181341726484494991096000709554743672477639182653876605709120576971665987189787508439778412308560699497165025910450727611193216402156586342015496802984389697337189247741205770152728493480085696779416008553789951276467909562293593119365131093057185923040436255332236930909879080685741084664192482387449475646292954964413982240463626858439885643796479679135046439210246298069492940122879677752932443936953538788744034324170751125641970671104743631317933580181896569400990207493850880567338386682944608300133983383667033935774463722347274308904611151623818145228233092619398002718056851771036212059277242475542738474977326463552910707523812540127809344966449568792304297647643077292456102887051101133515758802689872264492956604026587128332379947988859943934086308606289830068873534117771758836436847557137323148009588880825309599432729171905825101617182428184787488811390655386643552890170361592704514094434563910569482166871448461520741966969746680352271314344336572063054005833471097598901144655950351765002048196784668898224393034523455433927279965134041824697998692355076637823155196619469526168043654885823166199051109425981928162989093420753439356300901509035121048878424952647777076273028911292247285148076308433732391858201111901994318777399539371694167424678274214987264350714174299402916522929221294292035948761772649131252371377091668278837174405993884842988506990696352936305444552826905401277277197572907296027931673218362016266958544279607643022413101978193021682660215063597332393049180316076452940990326698271714404019808264817301526880058368770685006771936741856425894172003057486557108491192992570491006296174762136305539797440569822095277709774362829176006370763869398942141342605270073499571173080114948735072232030408130339761101408638357608996345033686486718295590030259179738013807470702785601605420811378304189529725272671167531148982358539848579584046990397379470908664676640230847932566898809001053341037001746181820392765919329042388041364469669794046936863441541439117296280691167944780906224150982893192268911993319981391497402956344088115293803028922324004348566010469177988995746587679907075086817598674463345207756388816371859133309879361775281897361367703704552788040065632792214024410014288576873184518565567713286491408915138924995959982503646465753245291651388073132883002178451398059361516145234245117589780696277902737201255919338288479170072141742054628296625158786035387524748280345807560910341453700632932915635071073253912851660767565578583674037407932682414884452568001352700020878381818748741625962520496083878626206018666056345100834039210717797464793573212032472534383319860133575422597693785945839841729565145865282498177188767683772696281521542015774697003714316281246944620010450201084981186851686672521971803486232969359534239636052041974069518202090266919911147578510419669342675364468356209383760377201698744866490565102307372397082676769930409451365757701507648007812894269854992535258726198949419950050465061667853801744799524579698901688073391649910167215072026752230707642008473551108553676552742661199549605050608145604033460876052080804837097529676123987092895625101765432435815829773558601036871554209473478517872472772964021505584373542888085272349690985107701065204173960552512931929359324037012183581317794908120791993646724158413197883734951268255144745877744425921497488032797236646514643863571140563843508604810397885395963064625413136865433531243007698403767843496565202521006692792402273518974746352412343526277640932766810119501516593587348425671634606150292442073456569317861360697440794663792946743440851917886394015042060439751501786169421099169098467465077630388371055670960545256194753365410230331720492915654207989369834907165265775611557241504860658874097517272788464038053708690980381488196284090814127260835745252088636453740513738182607926839583574891028737775669183801306487183204151600955318048271960710549344161656697617100384025558067265886037915412887930647802907986628595563221350773421847564466380704373302722281927976956857895622648906828411969691919503345243725702965759015542399595611752160655464889521524836716688845587251201063465781751417929484931430448526324182805631802285452316296756715548127898927504589575494769331330761962474256438248987694372199894946645744374584224382122832397829280044298578602240674431030817310495855218726410394466999730712521495787042794301431136490254319231871849870162926478461683972849059051205618483602477359146992848579116665551543871801509550699163192195174928003943203243452298575311212889464432767513057006565302195178280558820794039838845372556789217209941517450778480956018519354502212196402131076157028767531771149377138426404258970071190669755326555328499604822580463443560583018160182268364937198917152305373508316497221280526239121575527902799247592835939193383841484860459051458223507072516582199823247358171258506208161494356425381738356252445499829204533490876518829593793864174156778318818552378455096203977005117320518125231830046920315225757551621494035551251560872661715907441127892834413839106991231566794821386891559167173985302035235593170405920188851379077224121826572153060629865326740478568912983377964831534660500791062421333066681816019743978070103808377071610927772233332731406244583815513881365240585425259344044239373170036491225626115487874714103363319242934695786879648952605508685248445305389232654097678734276388590157582506936555378304925817725663349009612360930720573292410426263061890026493448158610900448841782642209396947727148583486221269145530686365583166856202460709142479039265583626225295988085142221520121952083547091823198908251818089065461868134565051864866159658817290842357643220503294880306606515241542309819532615056252321137018762763075199247909469242336123892854569153155554122388590669513133934231718475472615176135080140386613807114711317324605500249790350125395975320091178790144039282099299010256974221831628377538554274955058703156265908072699156498630167957773697149830096739600009483452768996939121146588157002616539349320077502195723471322056758687583023790119834332242455391417607130385177762499999681166720904959236250671834672067818348099784058135232505349719566535584625579272695145971065814631510377846832489944510036483922750011264375465719089770844466771836572761070204649006057740612379549725810572937743067442884222948834318564836863175910919615590278557116680541180738222320346956486520024323234817075681706411356068775196561113885694521273546673901646034260535089997079349688133029006743301581568154484699946304872787799748954107567206316416104352003623231320345496846426775173633110981536722736963197191056986945530956279968156840793228372258713172913374017140265436081357972960044376489288223284669666104459935530260746483499903441692431362224276880208229353997730539397296840330138811877698807035152782462848450282749009820910770709338873869099700257101685606672586926072173648849406887023883545633435962320901368335431207718831159845666768607150849204082993805521965123734303342428686438219567451982938775403346721317486546202828101910407449553035625321218054260485275702526329372589195687301900551419322736601684237249555646753055057642021515863993154660986050617016477297562028522576606375609734617340306213538412375741738937493916279595998654712049583464308796619351416653821154504878246875155521163781408161546770651171408486332325348176306244137026053865759119961330247665656260151843905747046389134476965778132247566285450579800624607534854989935202117822607643435861025972667876747694910929290189154336182045037258262826084594912831012316241981406370730928041980915998953529124675246029957162056652042058492121598427331508160400574706776643831578466688867952533847440046333150468738136477497515281883971879661706246999234147853071080369918448634342594596427189650552532598236203930072199196529545641671695154749704370383220731183091144477319823164800175657738212033571680098034126866488373124796759461955644103346798251420134518415295034132252303221396048671478667346988152712854719328964755313051164921657278627740048030790039557587516248350898116051575621752248645801726727515913697697595005969169742111829168541274945786608203202340516385215015194302227637956189399504713401574661420182355071725998817551845464912468670418717028733279034399594335552826754991243579034707532740644166772608074533754139261965743489717468464049602734969841097363381910994179839905863747144473782224879720533885563039736020961141281672355518509658251080735338690200101729853872091965798950867751307972508735390157978658755471785077759715751378870504939408891042660051723016776999133451985856391740310612361987944820281382960586548939151738682824010891840959972702930470906476526949973440876350040782922513858313760110187741908125056231940492890691323213798587155680615938868226413130737176206544812209015869094318815740335448076650446161899856317011825053312920817691359575023457879067003478688111547343381062405706643868947988272560764467457192285717272372037752236809883487216139326463826795567768771981595178976420519509447896057566483992872345517388798970896728427450370458141355720186440876923713988749234035777299282207487843316005469331483736687026998132428697465060735224671261309495518340066096566523018499143273677671564022294168484310879864438742651880689672584900111918839287291199339362299702422707806220080414129332026038433065394579545665204445986829916202283988517780336991465938214536304343555583282792974657185525001094699436679364196267906832311574290865433885768379469553071538077140313587099249252695183597791261184767104280159752049474856878590514525498847496220175345643147102460952262797218974843655326325689345719066443275734972301786853790619346163471431666438002824122971252543095932566972287167879423440475095706662699936152027391127058345830783919963433883298177164840271602450503500136680938035701998622856067958898198136720659642235180294632773068295854333385483450734157332337592958999172089717101053893752746040817626713092291054257378890480350476626164483501793862260994229622243233844323101551403353992079531482101604556981186226499830087604737678007508327099664638109423029378008469826927039621162226290126850055073715625500388719679669442464562591146977913734014961894763396532419375103515455852662905859277136843719292876276817845239600185502096444938653109549117178185265675181185144685851397895404937918034947125311271356811298323966332789375357769999353458672500610114322259245629058575029072339105583715802049346523359468156403357827374880565871187137000915134032979863254400739236515571733875647753946038242877470348547927070734640383205398885816764093399878963609408897909249094856176171020584401746296698932775140796678949439791314901065262478703091182999873119157931943714188490636989948517187580725797011596885645454740785830418304135873523077706164908267286152378199589319788620463164059827321902392301289638570427742266372631523866586220841054854205570447872097232916769971539723471052375280508519147518290233357907953719048728786115909369722208117525593468623760517208626842049774521004408695870081569480892556269202980707310626987247734278323358097625102850713774278729281830636005670473302274124436536534355586256442489928987113502103883822378575571911084885337173899303421128045456545179527456768461721390087875851155167042021065486614217561781220792498577841966144731074997361748150192249197227172301246997624817154688706645898312321495583371503997312733364083672260044458156576177186078753852037006252646187340149910186378154063345446005606398375155546410805922476691276461261713977416407151808207984688946712056341667626138189245770614864176013532466347491478767109525389837841008520575506505515486175449732522057840203148519502905232887907254993163245528120240492312710292029907058644549039045410980920859139713741591105163495346488630001335348103786960543332670442222631521273868515764776429075078990891192691694051366729150826171263631502221917495357558063924632743345638326548009836386795404005810660339132874063789641135415821713213479076550773090992096568760465398114881423321354119174157366474851294782937753748408420090440903981142140696928731948172768719490227654226037067835772565679257532596028456646182475089536275509456043666966998393811229618133414445879723405594586569719458312810244380082120501598520517962696132593561947083759176659176463277185535971642362867642625144073048866125275809218559716556116287217961843330631388938969604099990680150730149978166744889669431089389097047087396559579262729482618983749170163180501527722672689971485672042476828889739327430440021923621533794748759254507552520294988372711529719860282173168211410300483848981685927316577839273145153941262202865667041889623510365364224945184553208921537094727441587535450114252398689828124550825436438922330628532393592825894862274593168481353829179560314913345970932192435767036551791363579139534137370188088733668740643127582738125286960837469451450073028849404231936892068835879865274595695544581768615637243747644356181362457508109860787878932742828134048186704822960261711947571892845440186636226786534474767160794020921493154617627876817413085167897290660138382906269112580351549852274939898354586239253760865730042765616204765766923983296025491339115001076450207808308178889851221572818290259962782583704348772589522112558514252846621139433151246866623781847091374379057952730998797818028222164867973626675323890672056298946442115883338685041511207663543300153723057526617607628859613852835040182643095390229953413465749928113045758584735384135967566794417287193003867025301249601988326426781767433899950183421872017074217758860706212065232032303815768351873887434542774167448020485532209311479956250394972527201549702074558962347720805731533310385407795992449252616919314456592176003522566290481099182587662705040280943726634496874929468453249046568621630245048734637327726878541732147727046224330161158205358872056246903307364405151207194545637640023198788745214491537356559594427647056884605736755011957444697564362424360007883877282011480045382068897759053141600647518188910614720200490168613181043100229377296239683721324443749817171805343236228834188799431085834137780463142351916184254985884296403507046619337593371587326045233972159363246044275905219310396489337618055272100867643049312111467710673507814226517175331908411928095815804094492816590731920931927835771757736886860832451190519374996658957960661618244784278471285330750346131581446856099203089712331024386540160777997065379881942732636387528504595647823382444211897865475739378440833294932340499743675010428701158004383812730331258566256920417117055975367259822441864666930253957669692039101184082015979522373669765779255475417542194136549836112728604698684102807817820414560885199955296366044747441539870955405598140112355154717358898313919121866241044505965396710657489547495178275366504210691887675972841175277013191951519749062977552444288825845516884483475076533718509254520152567296700760310880651076511150776689671520103388627433558056227105231708768596644445652551699108247095735582877816672439997821712788353778846112277902575524501012482013743094203176878134301226092729096847444686006971179370156132010112519317378420990149796154187197971990409784320828330835609579702705289249889141873307208756884172612861278862591813178850393720206921006404888551278343501808343538629092356507744665873773940637221228962011508587672775554103452416460800349110663220155309563253605001905919176701095154442011714992232950382331050461498686996956077444671275527869125439450269098000386974177714407742764487294654825367582516451755182208309972239711178739573242200847353831063708593608025914656168745277815645706778481077594053469309600668557317946378856566660227586098928189069105110032698506840398509022909322918612923738012787253834217760306763958051940110232237477856001261720120096015594637860289307188213530566746971417714068634586694811818768361121766716721824559376954519029579328187763911464684704391034209737428420665899141822199004497810817777111010140671706506336989806404557233971296978361398600616865991592411444099506613922544086156334091230613642460447257158783271858342625080099698260630892754766347200677087575677479383211896762266526723592970089472276341380650985113481096274860257129036483155124039719678387887747378352041273666690488813332086201975491611187304990053182613177639546026023159436270313612794390917420436152394351871691461744114905721065020982276928580507626074093724277746990432194224724653135337384543014192038963853302493845986643060922442893745544127051420799235880963331944708051281324775981850555145133831721815114217256334017942389787098027226547045604238437771467649937492867392035165649838674021143995456116944551182310169649890088620718224631449453088579417910714431507642958882926798221179994484534989243680183661421948929921146565129701472326939654194900837573219767934722956202514319523643632590516976098267442702987856670834646606603365388999084059349296888868511079697286013677969096521089934740430621157432264350785308412897354454612890812290326687232560431705648662084299904128882159166497133407947542565735266019645456600943380538897581696174263192973887804799586518992992307533541073284829920153985903774192289576948234831762123041832205054917797524569807257746213335765350005487042155808902910311694144198672712857232871946042777959306624203066974612703246560551434425402930217170801749041853867934947566667565890432433328859840599755446915370406183647014749861204004853208102939504284814905163915666771798670880932361175567511735643413677152112531276112986353473631354763031508069651219601990418214604858079456752814406270295867205165787184217368156033765438737185679582482249011220789463489688895818390811655887600613120041791957121850000575440470288424825632157181030841477269111532196124205023598979058849008913309307351763621744567875478534899895383083308817615591365328289007509077303990415654157144607785583590541661291996221540268762684720138052653973458267803129310196647921620986271476196653120152747959425543887609670853943856990633728834626139291652806480633053696629687280640434983639556511319911614206425394766888152610518856784000512369237492946601825318940435342631884564402475785657539520729468483825994869952013098243424100881434573640915256380852219011720070304433251141970497126522872243136962226730039469772119488686963830448345016777552942447908252701658034170294820370000256019005065751203534233248643947687277682215769733728705865072498968775575191306544073744799204500912935089954399047848701803395468651353953323463240005555176326971112040173497722267752679133027887294178325243558486710529264008711554801219441284325142047377465251669935345529607615727015293861166857020906206383468104920468989274074004106341938018935344277860767329766447611509124092906755502832670246098185232355160932272434003802858198762187602672431698773615563285065699703841707193903261282811388090757979653293701048449285415055004162042228295506647870811337910880506052715593714627438193153400930415269221030826719629547228902973951308749680022417904394750329461982425764341003878164491999134483955384086078145341780475758950273022293238197798610887872031651065298115315547014681018652877611314743988042843816384897508270101494155983378016093515436360605811808301194091145985703020421849831728944996610199601987380381617915918965682166928308668131306109555610693838386454333647361108426539290536256528291618411323656842644557875367351361972726779299895835112945889136205120527131545947568548636319259645247776095521188783088808534513547606950270081050081849311686469136570397190362957061121716096985108936210433167551023456845653498000117138056293407708848123570421964366384321133502079422339253330801373791344522218282826809081799878179975721758237966296287537315229363521358595015562719154825978021362571923552225273234960344938240851081814632886586058988396717051263318220227413000595027067255695530233564727252731324721605619111640698455829479602038345766792626753960336305729203435660091794155794619451928528520150930684787037487326257629564684465625409896022362387113799788082494768237833350612588229299505786854639062462928474543736826504096277048904461552833737232485821310663244252939112665367627587689064489525585746542762669411379103588952668355433633425764343202444804195424600712423550619157292282354517660335279025580092443470647564018656766904668847526670014734169536793537243007586079143794637717037662110256621761868070254825414545826365989565355391198260769939657968407231118994009556308033981150124885049870712718860825023948562399750760538838826826099479978923504379942771584051238610401839109442238152886715989029710843248014638971058246531655759097010526649262265212793057079595902797218523260412513385344499678183205669048639641318627903489798792056944312702506400355129365028115929117151559071380563093945490597585146063779469993991331472978369014346259027874582376117840681973887349062197834821004676845918056516205420858488708641198441651993619049543570055116136561820883670780045585009688266912390795706509444780617425256938393700191788383968708968353016457420056662642955710425157637172747132274299224562629550001103429308825811675876887285257534860740497339626564523000802613032659994588097634876396601908350162010808209155500106126018100694729319722530099242991007406121796889706277301495343133354107056688236595014427541775849977044830295708004971401683465149373974808420792943232725190458106989999598178521054805053196945240911758920137335280592399329836022618452505190722244047586586441779762031911364155267536775530889120604226913616941407875645777499073092551094056348679294230106607955017231756059041603835578178817828319784365356627409652794311844014980774233989494597984848837189788457594403375749394132101243087011135872654869646157849862813946010626730846478331699229091389946072386066769669635810205183434534920539645627208261453603994439622682869232493645782042566556572504242688256983284310463280825497391787432195614525372870082063932352463844007219080130458610706561408758513923322861654166829433755265736825493875958008134937639322027020362633458650198120725631230406120959583918837024562665130979120337812183367521111087253432107668201890459343671783557614915772518173358356529527308913611714136079226536852392276014322930321630062000009678682855701831834699504221775203368196711180742501493005718902585843067674400751052859139287665057902546793900596698684372104884228848930594526696079027151475512212125730283446265552246042995168334394596296616193427648487117404739861028976849772555808147853824587002340075684020880559041398406634217411367898948455350106750162089292365185099089732927656620287476878417283927074620582527353790030482982705989761036180027302293003744605846779124672976996873332329419090307994956487629904246792486951902430523101432991712807637129513790862402131790813730040923211626306311487178979652832064031357464168525192810105171068214728549955743621172295510562455796494943618960718410424842170388861350347835445337346935792218533713880372538670413075128787389614535432251789940510523785774990578406599231396357358574746182157295450848503622014428415842617717237241282375412782356486993020547871607762562368422179478350864586309089950587296852284437146809882030539392793456289531151345205007047518708880518465604741493831582730088602153808418147878260910683999877882534112923673470653545379558321520482251172494515812653489030904345741627155948828167191086219698409139724682807835373314023521020312957030582761803970500942432511553821211949054226260105318108468456332216589268536011477112757419869413535646580371603140844827685477597944888087276071651090182654417933130092147560017920418637886413151184867311354362285563648230595463006247972089902805500585909192574237503015141738323167206255600269905502320977362818922518004921190887637857390370292409797649875529091756434872851491674796735528383397891667563213492311449043507713297788156245957078747875338173345599700342625083593374690250616865394823823220086998094707168423897477127419089548674459167128511976240811068947916165487197975513856701775871026750296560877729263020742463188543772931833255903328002530885447169342435279969342071403833568830627786173842873527466702716113932920892030888266685600627744795217482122738581048378116178049658019321043231651295130698251896667603308284534061019291065117296518149403457385080337239649335970709735102029809603105734489850212016437193827331396640494583857255687917006797028109487040448996353379543596938101281958985501489235677711642844214206782894617191534087489957572599093673384921217133961843485474323449573155635257224826484487017447555300172274755538857367031843380337547410321430982010796933169374493664813437901662155870711376256308672501494570220519436482960021716009243279097103063417827192438705102991763367123928322483156817280701801565208947201771034100514569488239166206779581445349572448678279546275285665393694794488326257447560455064810177444194775003414983669398769937542336239511706016698980103961331458751748588934507891849461534380346194366781902728360515978016055314525956907772986225640626722853319307613803474336706535206672053241769329959346310619204618519516947261492567584320681961552175654092048821694632033664025798033950625133856495537847815309477786326074265335144605861677229213699681019650390290933629749985565980702530008782475408146010895160717568800107395184572636545907549754590676054421032232119404428516805635015543214139701040982777721167511195671046829749355728470861841742060510771816352343201970929120171616479505830387068651826318991141773181901246766337151488419317881283010985298490818373062074928946154955748200165375846489348999543063847422969509957583443750831455274452300194491870221981835048579510830073289266749664240117275579972643041545367538565804434025151829298769726346798099815428074675711258182538670207626451215683998674118538592137100709727761346430693108891181799181809767779378821816893933471169520591905891476772039087336335108272306142958984115797281309015247409445081919106462797605330126210286237696903307093880060905710459387464212308777000124774391921981170805667969373582856161044865058844278281424851306421717684781684327497494200430193996470371455020435225187405019678182794818867596412100972977387097175495095593580302142824307785420758583734309496239966563040768949168984358185509484082443213538037249576935366554294826883403457569526651980428020976501984567390676928598402932633509332414533289655035836597838761485543337192994707220117882744744164034649289451214897744954090589110199260134892591901699560589268725499255998301755377765540255402489661300204973671458439104217696030080108612115891378064468611642016003695086056270968156458035082210334142282052277417229632808804934950329360180377555246639857977539780567591464895078134771849539187957985034003505954277674724477348900875214212881816088401430922586969322679752776861225563304967347329304148293581430245387360392596181699122200918957499154096680347708774989799906753842843225495984396026350029558929806723090796379334383939507679168256055424583417431937819472320094211111207525355113064954756351208726230515937100024523569198045246261117151482218641878767271313497895795945073046690572081891492859191260543985532875307695110717510092300362275010111386896684219337394541329438054782246362408462707216123439291724600650315935108146720442573469359549349411243840915446759039715218674082414071170206930267373381456357718160353608036151325041957208035350705450079201059396893751719557479693839654298598467584023834103676871209483640819345334165923946061995447417315306460783121365217081016242010127948442111001158216421002636045760774632936991261575535804396055967421169645715490235785922346451686191393773839399572659739250652209495957458587953434251632629645538949088841646569988367392047717827357883515551555055877656747265151103956754832904279438044112562530625648737120196291089946752169431742303491003309786474606829434916966433391051630505539932858670771975787909927056407289770785549213350859624334413933724573564415808532757899973902872666405505507792511149191165849497210691333496647411084350251425543114261404025886590354634976580082545339522662601577788653471647124530242421878475148266532618405256969037430245901452287100600706057204349011705842767200089518582658184599289261417020798102160830114389230191078144988462900218985399551767324685335832684250806845984719611275520035670610953369512334806173646097726767281795932056281886581262123983968198703441104691238685629298537999413455297600487370189975860652784956305113809593225152857947791834212415259757367789244306797611001558973742329449066978272935772891556051859734355639380024838747922073587930742346468393484744064261190332656487254496430336144801610930811515242495646701290094820639298590485083862030799254813731335779013431061997422068665491050179603733725875567471960796875513096261856050891819199476299685740920061668272655172508221598613621547718097172794179386486219468003399995536055652063841861461118900585053537367748238037368006436309182746050021589929523151897611830428997365793113165520975564493751857095199495484896809809441089059414859925283565027681235524052271311199584510521244000120463447036652312410336230022122589919808075365465697937625816599050233499474562059459434417764918573375142578147934198719537094775207828793614194189011303980825792516613341302753560725941491948002797344277457098669232772612064812972923715229177880195466757058471292890979840751779479674486803760827792443360653342903437136976807676920199755723997146591271507545925881740960838358843941292732753560630070839265436829681295469959205657973879856166819210183991663479796206296981813419789177863439648035729075161094607902374127999612536636991965211357078259310052042527988706118704782939649955971403239896915053988909366017191095156203391994835139088946038737935055564930878870345814951517311372252598946906558451391380868986280072011446459707814077370870172681576967862373039453622151015395513456428733451469440087783288682211913714401076899435351074949757959773646817482512859720856232077004114393521553231773949418701905217038849192579484365490214582071455668851272284383459867926029937268202378650078100242475880987307288768224622772470545461712537816688637930080577668822949898521330100958257191540373851666645176713175926375716923740342249711661885887081167001395463801036960053890803822830986095695422638832728453607773583286270736391466445752289993024755990356492172751303147087786478656597532757518323196118648982325313765288926338636835547497991648885821925810193646870893815588144851906690803058961898325207223271271291334173948213301108836447351107903147407889885385274477146227527663645183537985756321556307341138967100354004135279683835396473149160286132570466727728772302874651121593244569056638511576400639840582585698889666971176815559694386921329874167734572639379732434597272838275427703703833164023179320793891231513013359410057551795523282290785493780007938834995709078756639430004765823376843874197981360135256081352652915432724801064624326306613862526998908400659825606553503499122062992636148237364505427414506262266671929656250351557823085340647699046819066961435530665625688332394031502099963781409784119149617494126715468683317564750077477546018879670853024085498913726548781574311620167537919415464687682595198056578599330762048902393493042836070087518340632516176413971532858762542138701345942668363662482029700664506410452243048582449386618889809949656587483441626234528253927646170617118646948486507925445786068552609541368779376663841238132439759381355798739071995255514832659779496585047396853097613239723146310416767111231079282659138209626854404832573349989735777424390542000638204567376570967575150566202629554777928722585402677992988877356981390052348953263018201036083342502830276268932351786027492914868974112551725831739298849881943130274753729315289891876802621353745089931620453495277227221070927291673449007203792700388136178851705588689380862091642293674526515264284563514127374856980166570456784887252494281768553279553720249925814571250814808291015434896917356161241552309169575756753608357639412147212944133721480369271702615302074098806040305873673605761458538193372268870222963892435731537795923108315734491609498845462073989828156043705278335930970830045983809753121251113416933001609109188670809005593400659723685874658541082949408969661165152280802747578471415535607473101046081489254340085709051193562743407371019900135931005971696902713974551784888667252427799151352547579039224674945052037473605922745510038190763667948513976914627043592630754853068538055758104417411188309608442577365476943811486992611525674016691269936588421956460143792184285572321699600008451556425808773309136442759091718157689657725062194745073923056200453135810749948672847360455661636137264245058798792887757868489111746407120100268027334628892016621558760653649573133483466213376286676551452717341950913897823294711668127524357191099660678207598634933522095959474820998340885467069070258687176677881400861783418033396912741167501900680339192433495660648441349894799431434581445073224420398755160918780840557348788967413128015029278935390889755552803601772348681057986565812178996831699156563829798695875085374377632699869144661001500508917867308881312104245947160556403015449035963196336756834125238377624514093335919232177183506548192674230269945512562747860925119445872477010085431417397769955434336996908639626405550322819565237002916026197876334095863929841130452694902131201242612601812974868039991804818633010446213858663988639262817600155378562146974818370843763532640723008547693754609170955540715934147710851984705476887735938915132156543551804100824107465440765929573095035945150886481127817339594412546303438379522080740395871472963919840579896345620027788773906052010597751379427968196009013050856070671599949596071762666645913024954388125467808029338903007575904386655188079609918944025645496322185315387638815997932848467297905757396174314205506239941835023410025083009330957959236076977402637136477456518854931743950865695344933073322679477911570648818702068079759426684966415911808427437786263454854274231770008047851304270561746568660287730817647804987754256060537456981647792638941906885393722285134202183823707547526918690778264241483785172011650204247438361772269954023672453573284431662031321244431651861939036737020322259954862144976624813218402644177125578881346467294990112432517314361744968860860688628320278626403021730946539941926733459348032754835813693781461781585155432618722633074506291288083432698843515929765756075988018279316318916752702103040801110134851244938781367578245164724193688215433873155913875441255755656144170276919019563855276984312771108050594677345786154944970355600552610846816082814716016687966411771989647236747709839119933602419951545336364542075705145093941386584264451773316639304170565627877265496554604252525047011147115378971260512018891534169413733854464265782959569905132709073794070290933523142635572361744432637452329997238984952788980815075704427190228031896623964685219456240970711296869004467623407230616710804606780855116978102187023303419080177605838542450468887188554728037653522725824864496183900243924128635351369175558047982105419399546450311401475546215165682977226938585098372025546296498932243594122361352642197776435865464266686958068349662855792423266607468113887521215703969297936466757161462432671789874567247282376421828871913691499334399324554404814534029594436482183808513728726422738644438045816995627559128816302012095634215378143559210327173614176383986415340998879811861814663832765093400608849137483972658752010716469538273352577629558646521984617498221853276251744299230299479836150461885332265728166434928809778623786530408465596870154641377496974002252058787570861108647457818709942876140540348052495739711445464173558375378249198071453315082247878264011413812013268344321887092210448887996295949945432848919978759298520118395465613014526202508832258637879142529157853790515520546936304115267028576391473265261411067219935158675838142339731965093807590259625638904436645369996371132812815180240800988434303956564824363956034002579946701060917976582841212280590057136670852762579230006619194496642950836275450532665911456907904458538972210588254460641233165178932722549651269873323897358116470400726925140980893587383595109600853006227035065938441721454201274851404184569205114336608269444058241460015448866171368126260016041080902206426315225971386610163476398464742401111111589197599120621551027710131310070753617526388292600569151797943250108837453553784678296220832024069983448263856284042964436492702042013174488083634935622865069981332722175060743225996357991979915455923872348130071706436129831173950549430844212824722944600799359536098234529444971410737460084816360246268473953583547540343716371164676355018997770373230468389833573933238705577550014463945894941575811850070757516292876587538889943582974814643356895460390553651202355647022503401581296610923566521361592964111333180580481480864188564069490954621956526984358049865764926301971143239127426853223584791751146360086459099351473253496674902897344171312844239381727690673932724732132284479022165792515769993277119043003231485883532905917133542670972787571555945572978377226536742878972865758603226049135831093347866221648981943211162337116703476349933445258550659375254763756485480531683136931798696545054974486823988516402979331819123984534068061843084873301477817785861289890429307676273607607112003555897518557489960157715129336437884503390921952302017818534895623097419646874854601835345949021459293792607711807707622834024483257875054956750845110040728156232070059321758022634048690655924602580152995080219309760409040605667106020105086747291432394330544895142680235618985939030097399261297439322553805415898912085033426018102108563527737863203423256258675071289941418832327127010773215245133548775901821867345856809658670917243186219689808500192895950984799309105095695036591616604965192665325835436521322307063868264700258812165888969636327500650171203164995863654546162288637729720774337942551347019951096546178338842028226581075781985648709396427207074919937383707506942273670744186011780271387284045939030651084293734401090086422553466978945660373791410274541037017470389416134657411244863367657233483178732596110764115959298189426574773853457306265472005956182998417151304965536477742004601753276227789216790550684389302197239928952657143222944334016442587538645668820288043235388076614799409510868023936678962596578601314327118344735244872412719298694613270778793660507155520439949172423851621791974205509727138853235905434007531002413114649233910797286166435116612489059545269488402911152789711395710031826866974592725480271288662640867155929426144387944783420298889164811299710920134283892032143833112024483495869128977408722231334587872633478479668238522183519695533399512550911623510376511501431689405809210936020451985318585451085270843284169113642175781165116115790959578003541357443740993569113159084109193724270361969386358281180116315518069021086729070467271006874777824863566373433264648853838859585618129980949585976448413280281744171748880251468995430511104818509222179448289597782189463857362628978800010492299771609344072135774018416198538576532309527037038678182903601769037511313781619945575152338704861146227174181740459175019701500109745409485308464517288482868175067674375674968732231669951664150011071234435221953683334416452917250292610525652682689177460437217758125547793000516376909657999926094984862818702777562154852265240065766171796184454158335434280948708824289305475521603730340875026426337340817087262473326660312488092736649012132494499656321566044348647112270017898743966899627952040815676449293207994503084028682145237406808958178830990010441022984305683089631798994436515802539783509003180938048918313364411714790524501087129521647614164587895676714803593534350644688320460761430587410462991718757744693090116866262487044898190319032281806985535004704559377023600849934375736718004780496528940690613518215677739732772187437288570730778259078778752199068698365351887556009104067985331056871279861284300441653710286466173187640483469654470914872724121657870271410248329226560355208727604263744980592284037888938164323055142317604157114461002913524675782741209522289620466248746012302106773511822986446869302336604394890845980149113132351521595968092709580758159966507351749735744703757182180443656013727913933310434189977426030518502008371252727771115638248465412073264085856588961434465430933985023979821447583640625905293706223486999739166480553300419193822667382565119636434365569986561900732572294381294169615674219067137683986542544941990023350117728665580631377835346243122534739870664280896789730892204178759893291374624588270602531510616159781291639151755943980367858838426466936543065742826043423267720836125316561228570980507333292060558197938852394682504233269325919445844778674877497254100710259648463276079913565380742177862620979232304377417368682751801767091833928468502328533361691803722520911243049410554641103351349880977556047407110257272667522888285748065492286170219072643341656494577606064119134713206293340155934326863024854682167022489325801253417923944767736528294804753307689624031461541006635015095369845067508044785262796461775821129040845264090603862247452494246248311358788051230319216988248448153126854659606627545593555548537185741486493196960580827837346414929324011060720840864783837326430591819641016034106542322633337959649274468535040633645528293950590054515576394964318481791842884525384290318734887377129674670795546587041620781015446232857695502097750472397471517569708997444005626255760697327418792634952765879331138914136008715341373866704438465117781489099099546132541327830601672263783861515725434840737684882332186583413378187946831494594143535272099181439078478468565133764862289225601157748013315412151951211523496237037880236786913265121151112014827126460611180013181636718930718865240806827196616057564212077036376948426681263297929207315077466909196076553285529818940808207022377667979903159206302556156041187940969787896199011739759833100998193361806270934120028192657897467096136165482293171997465475178773827919564000443863998212812190381716049654618615233711358860588672346611638745316056917396922940639460765035290568867657247467295602059554594932371055637507711201665088160247520035819465964293669644995475434963971678877139695097055774347072318781168386695643771139563604801435875615823161537571095392744547823525907601702748728561830212525371213399162462312121815048473833907037309628420976605124744569685066232885836199503787113463154443088262551373895445501237422391554735310018587111070652419750501398780960142356892299569685737159774824096794140902878769550855445624005045154526412298349476957612094384898558220553350340545036279355094684459680923362487945291154543285037017711750571322189139849579585399086124116289438340022939924932789123456982328663821119533869499704308591904510568717124038488920853832529797331718104711242560128320304688336129778746441470850554355449727226621270838003477700244730905588070775020685525894164034154870951313368754183063334222797574509153268339155926594162847533742587011977214937987537533176576807496740586075634567533913237537997375297100471639857584566437324778508130003776626557919055551633597822746207366917299052468174608761372164464615857519888807531705372662830964278536214318301950633704819822009804534378704464095060873996537744355783224010823225700809313853918635216567262867677411454862681703156808490048417461245919973005207975310672794620234413474589855831966184272152877050275792397090240688932969433246016433586405868105443601989207870413740580291345588262554471974307478660168283621035193987204646717537014903531096145567378097322848272296418586625584293487541547432250753695501274628276760015096212650854276400845094879930291332959208370365743671426369929563421490170043881997710253715911567540065928510066110814610132841461847095361874583616356848606500385137623109823625399568466926159502250794622956888321850702415462632111790678410860341623253016929489319071159528533215688391412567515371870030839368552171695073607719520791251427363862368014698035662073968004592170254436970447083513095092207724481828795741002262479569952521422385394253901243884637979418662777173535939403490038152734559659149466563039966599704172813426213075947723564001830130719574326342479014306052548469200274258425708774239601920349182043225659657441900103141251260411485543414850334297296760641748882373177398464693463399659260179574380867707987925189375380618075266880549746530041134128569483944272171250976064996645786813862933309742390114902929011462505286515177670277997044251639627477440514262921321406320953068166462898697973858941309650005655027239893570280681483894200360003964623322651052146308365384818540418104133517254369245598820670921197622577114932569963302444956603367234594458842421070956818687628223123035575241710049648652675546127571142113532214014122027941217689593086605252361981058569734862926555697200031373123067608117657607844546930939723689714470916913263535311776589252136880634802931127895119025521847310140882405614522425093943543581108677808751454087692742469767574495297335242092815185112504097888133026262593821791169903423948022032444244662498429037791139958617303582239896756218199370453707734371649053601295955288640559805098446877303121986003245206582595866546050102235393278571422964082637911214538716481666346885693671843671193727660134086792791494985824518468668288366333844783800224863729207615367916813181215193461048002837757939005256199588488679400229026263710733941592945359681667122844762485809127240314592956325869185327772503965317993264342054638354661827669086108438950000340906909515562205415251452836600735291386982623376631716342781933471224897756569470402828793392490537167408855176382625054809867237550853933595273542541901737491218851563594330885433628706914735333465064837750274871378432272576403617479735572573458017318142472557639202299321160257714248501002849596168267833573017244937821892006192799694710117850164572149354520491625352117173147115627524043558429502829941701461377525676541010091689953468114847892308259669459244860688528783857159135746427770724819025078673176505570269504434674573840981569770798331305617273829398708459121229723868239778145268463615902068453312818965933084463140955606667383965130318256856592990227045885539756696808594559615414118619057124519086361869551055772046685848432386938906955872244836916705648039937786493671989331724405523106623406600346881295173497503574480505349924104952491278712850991406628840215879117162006681788796332525120161719995124031615719923385965404696462306112430647040873349845646480640080227130785766749033464741682253444831462574717858642430046755167842685682039590931424500962868584934977864340070793966769377245556999562251581565282334563416392294846530199908036543344743854775177861885808445240508995670858525519773614958576692858469676634526144460927242639068996443270650339178946257153733400296612107620936284259267076218033893545565709994754468698808899555556068246834716582551781057592791481338931783742401590890677403869961766558687208698485416997563565246498278926965967936869697798922169007576446641186575273880374040049271231628626228026065522759874910022071565675493261525866353741674822639649742668851214131901335977430939432706484245391173451295404135965141519753676951386795031590939442212944545177857468032592250217889284063561674872801951058079355953658749308609625484021273579176400719384619922497538984667133389582344292903006993911482848240480968518616654399174074594509207103190493036938215765497181269411564910050568478083005427414056410182201266485747271511843386389591673896612593402693966697913269780426175306859357095844564642050251124342906639957146599047104681329400123927136503238947716622345950152141638316656488432976105712600431286466161255567974075730647459001275368229566946622353155520562423860510097451316232233833908649204610952185782565555942979558816254888742803877435001270731821843092065854055536850724190649456848045357192509196167121911728577194523721416536873244571659395979295237441470728612423433741576646533550354545224483832410619374451896030514929801110005960291243088684212940387670126273469400858011933121924528824604936382696794538875188929357149617319269447423963316828502750821931128847906910854685006153832300204594805815231478225402899027796309485189844452807691044642584257764624575941651250290587988264181283056286748756787263125781580834164580303896957474482249066561825697069410690331073169815877503209950120549394159913206707314380368215523845095602110921163690411677984889739525905204161827955373678351728216301030190087910472929656916153241981430013168995477568699608155941305813481179720166958833731120178102306471150444983200839531947305299431078353923227223216707919544278933633037364274462766043668838650313672029084457116828833699648943985637773701183255939561887165799650624867049814216011659159448797949187312309029833801877907068753770732961839713691971825755889243631421289223337742581670100580322546172955873571774640492735993008628359826361366348759157636801669116198048494371308035587000665386584318072549309905837542066645717020882613353376322187351403149120045075779148060033283785334710572713268802734540873005964943084145018730840735801825264975972178131786382703181845585947063324535363290340386109914511389846075776111643277160309816147272473058786289845157917882106019346241755695810515895439965029727531809245604497173225897681038709205894450462242774517680967124199433921653497582965099743985900825513818582303276531313519951918839386157687003677994410805998025357453153667980253772312762185709636191524427826880179713708941475943832505882004328445107103196237911075096762397682438549672697247201694443234332658087899527413118883617870794196469392538533054919028902108094686808432436287271759672160750340900466076621796112289309098273193558841006236217991139104581705142240836350679563558526779668153387662758796231647602659494471813146361078592232065044969063727401251264097964525369884326006606799670211453655884950139038073564197034518621404218566362462893280521811213187718970974980666327727119517297011925735137251717776946288621926042419774328533585280402054636032479057227782287783259224346884789139095790720686949872207251099901714430993677599103928647990369149320529196129266674111946459971057482827650319506637734674123451788160585772137201269655068460038768100068130400464895248027224015546997129066852446082863039646038390356105403332160110866008806580987564333509962559528326781540383206991623414339527122554651910350465260536553726473618532667415497597075393849099771531184427827505790426309876966661720941474392298506330280364710191521735378405766105550344381675850762298663173397505830229172998168042752522259136508828796716018729188298393875879696246276132413800495816961386555565568663172310976690466314297346824179094354967021400876860242778632674697021757094812158609166843532805173904103437039645706294806253653680901190321520796735125064648140194286461985437051457120591506298244932532277853359224180374086248623100768930770485505609798340640733178208243260537121051450765144050065625289780678710086786429686907708517845614037907573548197749383994063718571559150805058076170252551294834013067017486420277487390861934292143108820356107366769921208045793067782446724202127905172989198315858609781625880912500745572234686644559367321565920592006757581372356369897376633927645905244831135344288627590925539760469952282244019935530101952429554754605183115438211891159023079473963132020319172782354477012033407808267519586554524382054824424942014300500312730447323172481022355266400528329905347164771721866313152452937962079835769892453925965410652226164848760903540004966659844927801023575361612311988390921486868068621741814566891817332557645871968845434933509653860334208375221864155621715646910101917979282864106510266834373512605885631680381150340672151784082376533660643022162149980917421254864561901858388270827992052969496508730267870647969505262832413983054411559866743438910781377993223658693593214289491714448339258216477249301934163387802408699812060607672155290994656250538923002537375930750205373948722250490839237170627722891874330623969175654258663833666384903189123455681450546948549830480690921180303962673245857768520099342215756092404245041409769103842380000417308174334543170691992402853184759679230184930896549807283402240043955816386077293624235260876072790667343284983892407271445076062039865093458474789658570217947476722393125471811347471432522574110404370808655608885185826466443161866544533912880954934959397327168125986574131182977163138803003332516344386178671016618230115870165266761905749478003839902678880551979287491917158269302134490293628563812903747772077630314488399804921613835268196808256654736688333419782193820143999567291652198837533144154049640508607147844971975508299274980902380879389517234918812359234443748600980531777477548416936670588681467804747524012184264838846650625444537106071902939860476156077184941645777973285647429116173944999098108394320211573277457046044354731272438181692754597964349123400171529281258777587204188092263218323314560617396053323502457210246220304047731473419078528774943459350821927026884093603507729482941158322821140369621998061109469835038498119640639325924682496350073486789582102865051176132361499304763510453887842090266233407061941988595914435699743177091165188595468612504369011670985675924316978467038091011617777959501275870416534557904639237252414947573797193983984348437326932299398141368951248470073635521278296490615131659118283713131500500267777752227134104050698300482839656934582848644528939702285253385623181528529539516660061611500183084563436044452791298660849068757120981338194846712976959685774183743551710130299975920686697399099684008169621937144953464540770450718211040144422575727993733249838930794416611210900825407552807229800630320802961234558266286401294421589773458523337090139015370629892973261748442162003850244957456222893461771990644657053453320949019838164376415614383310092172624538108904301516172932327189258740095443801943567741975945238176810866500499334496473600636222758393123606624963168650953198092109194976507294797871233999848337236927178169778050934226319791543703250584928634453376175668068385898003426421226583268835683931605179280372060674709615831858570379399452432104405326951109057359965967143107872651324051546472237213726050290615033666436590330868857193973915826770330880361949579551521578854836989761475544307790322131923527931872782445439290197789040301749173451221363507339724828178939458375116572789419382773624125288071349004061632370563506337746996592509378273956092543156398892951481327069845882601063194992778218254219269582310630551613268855792645695986592688950840886051180969284110742779771983087223725726440400028720153210633559491271106683042633313739141852209220218079701891336583146436930403869546303415578802603798753039937583123079961734435666280467369915348283360862948009049809153858747178466542699046442534194970697060625206217446360044982805855406481684527819840864269904895713972466717261058734489465957813437650484365811463970110819025436605641869134079009029577957540069520151004362468585446357744495490561670128373002797354371150562967381833918670157438199743719821430043298348970126481936135593020979945088530295347223615568884187634135804051623076519360936713284152291258613417276333226788181326535058245714455586441290741406175918640579246843611265482583779092867178062718905088572072904520440233087159000637836267731966900208217927515585148573283366591051049014859383129921529799425598092187252791185523743569028011136206464910783092812202507384468903733626297051300948302822459942500289233009979792555448652066796028594149244417481440239150379078578392288913202277488375728665781479119092806584732844852755241694725686693061090771822462482801107097516148433923351319701241432378150512486628191810587112898542902057110039369626930402202649150337352078954834693121954988807520638555054847608031732083838652654600187458752138061540119895782814322113022271878605951787018231583540448438263490534675831612525014928147993912708085459490200599867303116400780635529177547691818801751780903893329659684811386490302681297140907753784712331412919153593979649389886408947851024647694765900540269258265700576452296016203375859252682286146107600053601007103900618992120031315330879909941359625401572031746808969437870053418993102678320255680326253760913449573743249496585939736518422816295394471337626389401761752729143703090391415531403239932177317082793521000365179158694247233755238490862507881385155307456418569174198236688316743182438650377618286966615547328007030608168160122356165971661663004920131974589435309132124380196249827888477492344850050926202695915685694546233764056132255910443500153249029033902281181625485112483495430191668510736924991939181204764446700842059029584234189033429243581520024801788952436819875692524525574629582431128174578482931232519727286621481648133799687490781942969033559466086259546076980426151791918573292159288108296879822074714142610820329153702211021568297516353811290398216474148357885240376997601145578721091085693938790358681986314623315346810207275999372671142206967740976315842892139053798341704676970934605449895432043698724348867697349246013287463744326813493404531460699346072732592628043442207600001409474041980719458621794747385535101009220290758909310498627281208757882367036862355406980025893897663200266830730603189227472733147408220979966836605458774914434838927420358254755304683281271491423899324814529689935059427333921583849545212384395253470619188965406476359878246880961833910834882426258061545098729203453564234187288971294030903287869327947500598235100828761280591112210455326211339510739134604803993986181781712880493314616050396603341058933056203373664020998162609217763087156568759925367425064493958911488662103598303092595204650005872583395658699726978607959166794883032452604718663226653595887895519625893259158292405602006647253570490177622183442475156481856327544617372748744549796114682196656340216353644082424245849789558888068840643876623436800020639207258793727694662976571138246253780500147072216094217693201468857971160029848840385849677450211786739290929811382109065211278181374427849372577068211166106314590730885853734358022670954736589101093050169092145880311109084804368377273587986757026298206741534268969759622741125657529639097577299643182492766519786134030975999869687442570971084016354815790419458193103508788851943356340749347275294043325286565801903412084068555543061669150591696593456127012984706204524210913126201446625524956117060658817244298849051886675732372474165247682062256157540102057667963190423793555373461731306401196525731591338655651726342140657857938157991684166437469645813343903412991953283110259203951541211618164804823358684740752302554396560111254125332415885386504050215355103425714909725440656117390678372280910054722653737705881059768346430536081585643583288565734342742788236963281353838948357814479576572072614093170094578942964551807089945901489104058510342722800696381451903718007049092434242429774164552581084449129668081440160943054007662253699647290549818600632549607951054364563778418547377450236514822318770033932696664589155890654826652858304513097552679327548432886651920019532235496718209674885253848191632636321846391652784041007052432851496768189452825685296551522627795204711901197021404156958227906667077300012040096942883276124302688381926045541856863013254728483901666038026407270358422809213362953578032549091082925520001825027767750975005348120020543165199699026642517061141210801131451228684652918817552470368797964927182011965285254812073936510758132563409228426991126473588487308332476362511989897678989019237740265059862554003783248919016186723049142733335059605567371536762141637801564910661874021371356263043926259123890368288012506314761800589154033480205411218796946093977717493404246897227179013486992606912599870520801322795976790855781679654124606483631033822197807439256346653253480617591971862170824280441044676406001698748094268406069163563815138065297600818058737206303177581698556575514232879663910143757922187873306431073973209801222188891158100317315004673410429297564083467665652114021888210489564425783314558791828893823765964056453181899866920320158244809782633764505510312762328426734465841704505320911819393311852160868805403297964819553024910797425404748798432932939870235065623678752289300903868983785872398874398481200412433403155020102330321973424422693647016439589112371756817611446096400288540468047162481329677997014465454180917385543160707002878491392001065584983738362970025294530789091322995481105577569445955288230381305513711755895313087940459222421855633017108667862938325169130245994611114291078976230723632301895067223277900648964798414437276456378241381120696479249029860186684863013555009588796054216040094956686274425461775121417984246968012196722176833565003469873915985226523793513720157542717231213482439885850655351603244064439209314349053558781674678303510898839080262731323393202162630557114101921970443965206241253368107519783994752902060137659840150450104531096142987047093253167849832408248406054934853806036193709795970141042498802842031551667477642661123950818461062012208856852283859860786301764617290641164829325931110867457223528247359015477686365162785198089325684494889718288480497003905591236496892345633794452426465792247199449363372133182663842748966816199740203771488468646183730530726291183094644455293073295538495439194166879379937951637908570152996853636669951049711536878836927829596188563147429798617994412279488856728025954270220419777767913227733441700579220781815367168381394591173478528121709587046164659356123965688881524952138496147037102193980442622156039760542469049673753483322565051922923895153241170703676183720074691748548067949483027806319744063046540986416288232485368189532091726263676355643587308118902594688970476509873092093932670523476854532166247469738211763726271539996948677983696147436859055200054568019064003337171094905913977550691438874898522609889424683780319218501504062142747812197972754824085291230311605295619863519847966163986032023584547644827309756352297648411300842374147165625481869421067318094733912466010895731588002524821209264312558690113863741246583724538986543206880502802659038589443635690148547549820402002229713461450160936506784329053961913247532242384028248281346315879139337730851659747404077123164147658675467143088139246328489149533917187616524117595222436708874464073009710171167667995897366936956924325245127471840359485832842682707223374177323940685350699465002950352872807716391483247596292798465972710702347203434791400570789746615845965709941171600628045913399350145561056902362296295240917663841853479036716989636358329057659458360884052050543118401111006288511848739797255194471815111831882775478128994713855183060818780868458161826656005289402269847858346256221874412647390556402824956311599034639232883174448062203775538996896724626493953235610248396327843586303701784886156379108424692253470722803051986954068972734322674823363574630226754437207865145758122954008460145845032855088178139523936206525137899953901860957715947330197732060488379957162308945814507028530767838316187394872692299686895054216788196046277322032772135140818196283046916767685334390684737243175378558865217197446190500816708183287232519703511320818869014930752978179153286133706291194016927409070987851127958595186000935451859972721294615176737768459826260151581199953298380559578741458225089703453634018303144841950042753600192666096843850058018455462913930751022712319978851735761507056354767559190155526436565922460995463220851786874842748876331217888980960619146100762521654267031429713326715319388657687377844185946600775607258681279150867062481726099427592883549906066382993157048512056872402815626715998664695798955216934301605153835059857365536601105453501810210733413521079348157110827192209221225880666787801298192120898262049160118348342887268889034268120204106634722508982129050107377986619177861407790879797569202831802450728110823674093333845007916067750904974275305146521493247175526944957301353514088518401115094985674598122178342819040117254914025047362943913657676240493713772803461608196214214848206661139155428445196222525310750357421475830607514173931237188976129392699199939196837691177898317146439540287930096986346437845969322002668742268710442888833852655018257207295097665076467920708161438121833492629846567594578095974055943577210472805967797043071870396833507623583849060748927623536868011760272332024143165692789134693173511683623687891847825809499690916591835980858383085316004162857405509236331747817862342364301174969210955217168615137525426095949429317622205217198144034367350526208898498089939794446554937401029973983108088988678896637243219277102468530982176525477419033013499904546500675056623350854861701505800513008317335426003807924759243766586837263986771802495407032107374120465640286711278150517573588848433541272450634790927694918935183755229644159533114514240972799613798817331526658292640621013290020095341335680615520120417295865845233839060614369631998641312330024540974640274583661983547873355972335565373325435666900272992106524600161259645148925268953861822595828781181861226116005788209667290740354914821590223159011518864193633088251133028045718480082196551627523765981941679904489491141288760825586413153809618872984450299947775943239208171969504864851916938727218934047879896577296113183929897952448098507517358122962000920784357255613457253268601582152357674124904848645651303471984578136247980972220068407832969398422562390925138608907237929022181384735175634988350610966070797857504464690199158168774660791190514639565703684645859076535175638384340270949001716283068645492595282240082962950456409661140801200929078620738775432270857752059149376036685209743546966360536229356992145199756100480478668206889859692467446572262268718665350584679470117083623522660581769837782452065921127496179978991779339949287200132668041165022267088845040109963210653057090095632966319962265076595868870281078056396480077910127867820274111139357880156392428902516011128452939379054730019473982786954383171302028503669158661358591443703618174218483421318360079606610049128690633283192081178492739290541668140709330963481306247427312893276532004290403977798315889451491435725986950768127424461483084344757807799357318968401225720765942106940415344211605978275878358789944211392887031314662985467059171437505864497168758407792790338090677088863614091215203711155802480114827750243637610878449468995290349496802909794119869091787350047102089405961902976087327578513769421709692214508192545184568152670601464918218423765524748643042743408189214560530670844773034807114564492080672013425219908249773721986284046637813988190683107627820598927743821434266570777264157800559102330844470049921534365962256498928971882805637493372252348294035846835565433677246310297428582988735661412596896609656486958807986843369357601006538270084299281869191223545460260465543511945647284872373241853711135403815218360849636458704129095423187357562077559581452908193985056387644723367330285897778439480856956176465077880923506598785568477633592881825240349626094202108212116599887650859799993080644279831653309480870789492387728945779166713949255486577962484413450391348431553764488319675054494593137972266814256148286484199337470106202890160544590478731450625189037036839361140407962218541700024035725839998231758168696384208668837689371548327178569620323333193811203014515144567968656933070313912326304086450014641402565624792852661089025393633211691477263446820757522195054334322813081664328913960033172777409130898631732060014620475441791664697490906465175017384791829613006289532975266844492410244815468162807856207776507011829766411257683702162496999146699136109853980157986888025853709102977623425977898479466580180380719386112189302820244010605733357976297070862730261885172222679204320895544866348973201705702724619955467185059197726328968537221659650965365771120180825476854517045033325381552175462856502408938036689618433565366939927711861812526963656564381852129518887341767711527079613865681069010203994920045247458547014704544631598950489427339981397098337253708257971065319319918513429671157297205158482918668662066954183143456475224904521953478104234736738984359957162007376550389678638629149468808246379487562679355726279023288936941236945788956691941540430986085905132064586012007232458502764610201009897217295722038187793953468308001810109976295333159838627592807363094691871467432312298006270318843901288471848451461081508082502923537818948612581957628522784036846792219718798983653746284388747409069249460143629624179271092633659998459204024711193915138606501883200189040103164622128663525010575213642003111738686247741524050691696990772931525498962800967657807005957327609607626195118476983368227876997993534635432875922475217269728272865317518257054440869274006794077740407099869605762927026064165327987895039523976343361124975011575520504417707963567796095592659885880824111624307983838066688617351882791101901002234444890701387737863490256026850230104280277521893244689120868566104747330201414234964498988485276899020924202886939878577297469167703141349318323338295345273149228069000055609238758091944278707030863430753492406957961894204374354683106698801312849596358185584795819796226558116692070944060553553195606731230324143112607404769251027883985473272297570780494254572730614654261330732386213282956703655871163157372398276943016739657253625787934684030323865933158507856314825805913676087469458716935692156062817607852153315243162161032793374230174321986010206998048977444342845196393300095745941535518026939004462835161753596563151550734674777071747500553349856484898121677921301009471615512575377749100457396090115741681735245955633296126712057332065806509207385487275003514753711872419613487116182887158277622642157069332621745319536002486098348162631824227497324602534492140453349296278304350388642390576280825489770036954409521176388282538198800710953615108633203455264153061548752567545711418887222904856616271261617032545726883398895403274757233578201421574146973685612693831734890742155207839573601855422235972838158022059301761013050923739279840304259224652983017797873020770829018899976924982646297725071569012058693992345795601502264815110228037422522551415379136207165994825133278744276847226890978026927228759204645420297457501792037566016374455027528251976958969477248147686868601197170241183364827911725959741486490090176153799012257767556998201794701433129365979014535541134850148002475743338690016518037500701948645288251622863925722669725365732200476064845974047392140541775622180128560199714844081603842331961802654460117201040336573936526500899349637388255068041711239322046102000700874627667333634245562046991236050226965280917562844522073749087351271361504852430045856631242106487902764911315309689578084644887467521403200308446332500568421933187433196954307274555507179878313193864080204022710903996668838661907779583807850476136446548177472125704223904740805515511144743003556311187351716262360274599325929395810275113335066154996798009188998483264769433092976492904076042692783378676574978954054800644248744718078336959252309230823420987136092630427175721683020992359753155030103166585711708173808604185430719689674284833840450899264684810410815280851295643903622500134286847191563103537036117844198153701824630879778713504676877362999987948934316966950905160342603274039115484837755921613282817883414198076513113239126705808864924034694045477471016080486077300702971376583441917610671500149289902212234497656436387962577683550538529818942429809415700106857323248914236306907017537877124421781206877004149187782749010396995998492813026274530236720026843188185931979485508472265173496875446182616478428768962278787895359433180671373033493199334278409325885281783756781482249388538204119350777110220137569141746737276889993440130039520573046467863566516109404300135180513739953188455884517544613448648650804230546239908374572295044583002667923054713293734675595765457725347858918383640460366218599497600531812240658847828295098560081233065160402044024402463863662548521578884786999922984243553027511459552291744972596202989855035323448734261677370162452969453837417656061265801595355598351671891998975513722597453599500105752072386109769495753542033675128043910493687194291711922374067914966353228386836545260218998056245475294869796974550920818920258963139939893096950783050412124111665064440022609248698809780371296388432455754276732483043597515896061051626222989393214330929108934510185288730388692224996318778035109878948310040668650902951641031058137626040932671366580328519190554840546586288377838727325653603588750924546700206538583736343808957979682421335418036271756194047785247537153400524353106335444409704991896194101894589079556318592913346274674470366308391595784524152248311530840333147316767454593695301642386381938042759048865977775586940003656595741608746142625352108701560598848549037438781845793607970237635087088585475509592345071105523519301871713403225149656442947126118868797034162208181955096757313560033410780000062066791064034355015995624241071433459629844949585260825251442249128328991930972356589103515368449458787456988979181770459079711973226310939695418270155688038344151706970645605112389875043964686964843996918949233299249919293285521331011568967982003918972568685465464827904223717669850699620739859477201710009155132727059435939272378013571871839143909041085427209812749128685574062334146828287818757240200300039175436077750752274429128647960755937325282262971463617394341763867573894162817888535975118445560017704994104766899490488241060359887012164240370380640101142526853767253204433449683069662207448230047789109786124391660009214522829530018367326660018317255962616148234944810111363658220534054977967020767911406340512875840863993266971181886993961312261466327797321183646404394178019245516624638765848836835680946518393356569663890721782639429543514608178273211076474935607441000831451552379103164498673212919637978285134389205201727476687187195989310671570560087763456013161694238085539740368192379972398440600648934823087650624405947605502635844556423454635987640354487669376365100695759444010928469315306693304477356319657731713232905027759711289608887939197392815440185994110031746349260574905911678995736829984543361498509826946973245159373699859558465004672445097551662264905811965844521713826311243532188600350377865071688004825816352123802379107214852378276078783327310464236004776236945551306901286922355209282429350183703820780321139648044668329709896226220847143176896319388045880772266025004472355314143780820788930750589667625678389058401359689346481573084343163364210937701489053323258950342630504596219811196662107441335179212263477273394012373244095300876645054365767101146678901050794035008713682832690585101196568997337578321937853693326889665503018940755623598947818085113685717370410799543282592186394773142235742769192376041582332350502255071325219143370163856515061860750609253903110276081809474654340287897012669017985515251489571923536190012615158646375516107631763362406170432943068517205075257647657771777656915513174134714929342068760457236218422460638119424765019255161413245961332399683403294532008999068895753923155316462795765940525911579784545858455996703769632586087979836104730148759571186465899062907334269344320996718704832530659071786924334372118306823526782470343550704447400772764452329460605308077331343744435069449148105412867803753514504553366878490594577820287571955034371144159117312816964978790320463614072773214509826232138732315158472158499178066582836309848409170775912013478241007676518714858592510750767184995418063699678586161658947481335768149446637145072880168075472159511487367995548799392717437812005832697949037099612757039316759150398540320265554320788003607215590697775413612837627600947620072572184810823767360590958249402018333458516804938905242026365684319579255233648169174680983868982935985404821521999311498869157263145458339903823982358594094515409143608097093421888141568245616106852576711730962664414474053280909564287791718782707365868810221370512105712617065824359086110413626669691832996475346943675345418116544852249391886855737981718768776563229217036255584338970158905306595100696967526598009755771955285260438298954170921043262897896075476936727562029879217907501779542304383509454516840758596426536551382499228130857997923872458352828849563433569297940540022581049141918050580230387807204878771342553987155677647513366268099537263364582264787133637584972144252467736649319339442188672325967275559696548042994630343053375871161262742472222230282450040465756154536211264579451627772333682204862956639293365105222821347217120053771368752290141545698668396484530955867056885594424944911610548792469994345449717520786354755184862752081415932659356549223325001835938674558182325399862172031245534403229627129685834993308103919046998979400507308776692040452398458693742041169679239426079283073953960098699500133614546116137696517346353503276847349342462555383003080310655505825601595611436859707446784653221687053232223713819341020899085516376925299888067631929537454774067421633230982522426712465282767532408919658017291916164411077418027781783051245693432132364233727980413353021713264632406599059159497287763476577289362475339225133343910740307403052118470327349672758482839321227492128822805309592592637127703656417501507941135507436547869507282130746631143525131559119801719504653086237766531548075868314451799433344286281417261115072747150679309253495803887182894286330314684989812361707242146318769557002232418329747625328469240280817678764765897586986137383331086420372767845327119118138260304206842439083641933350721478611344139743480718997953963155673728783239801800981963290281273700432848454461864557641828003072063613520774860130719664535765297899043068172203976915791296431993365096965471283519371702587956351549543709982833053083923443310858406890684107699672344372766179538927542567596431931257456110257636594722735303078260942891629404193272410933262565592727078943700267067788555194941774056497674878375237804716096110969090707554215155628652340209671096006355393306354266490846239015555586813580023265566665442799128841497686609361924964401384588945321595932073338206011022398237838324669483239405751894731294088183127874597861433322843675782631974011387027343983583221116222119230179424289682029328740224672300400828136899968859462568206195050688363195351697473549060455429663708354370761638957775083756282565915594194520720239440849180148893830568170460830429563163438067678240340006760078930393592081567153553060980918843133731589276389019411110262075427125968313017010797759975324327669001972894794648823868810120069486913530194280319016924909405266139911970532699068877130749214972354709311658222757957553643796973634102156584788233371950514756964018113944226984304345058305744827594631109625796768642270958559495288098996406032332686922803625490664253709845503394489338143457300647753843801548013975943562216893434125196397958314679910706986211613244731130379688442365791222639610777518615026563531105460192745199337087671072454413649192673202400030271415192847407501598329473351790328590155511076522888936763281347261546530189089220327276695443610671579941048616072744909842698593479422508203647513717425196145991827895496945438260485697814068596698583745192225112719329935047333489466257326806861906146479198401764415224982863104753880517747377031664588171114587304061646543706910231091498428339066511409819434433665327087254874899202138746501984414129696291420786707084492967631594815840071154798773293628060655349121763695409106700970232397380015282250964303455795980101291479898255058680379490801252899973718995510398254906621498065908844313424476771222105353649273166135070147471256415532532147875986732621788721959111196198967923766357191876747069209045998462027427172546469935119897263319096326827276978615114419881629107065730616123844816494648630447376954430662296008236266868929782423699160632692682236012117105653326772415060023558008628320280551080027160461573402203037661322588081419778058273033073925606495402831298458780734005650608198001594836734781792037572894176447109841652306536307744642808993448093272912958305900546026235288050871477077351852384102727448176608496780961700534929499391093938413492973470950566734541264704838320645209488801989218016116865317338316741111533643422535751130439297821219025339714002598743153264427276942881820970533239980610558938806564144984080590881790623130204897243079847989789396103916763352767689691111043084228267965443843840340530500291063711304047820916476350923647839103944588913558616783268185586580647515246263397260828030301401990268587498964065238363429677010237754685172418845488897802964243684129686901359685532554750128943852088710771527881407237968474514921620400918074315264992917717495717619717067291899603132495406167572439004226858081444578649331825671268871152104066391011122611097965020339023107224123709745383367055447296466079336586481602261130697152807425074567462136872553173898606143073993137090699771546542416935137206332718901554026688819394611371677532098565170971580305964204541838053826422877897619494276460032228840183594492984416157271650736646942470421638351130439710773212404059765048837432959237112596713161524482146559853370476893812503017437885281624544157491792477233004132382766416370211105700438837703509992214516785375655399104013139551402143410420774605896712946748504620378056703773327162892854669785253054231637980427500363876809246357101566933357484054473983093683011918172724561231136595697407911909768102516529603803047645148075143822470540770242029605834906388812307395343998974687560177746548449385631805480047100644087332570325471716508130089641998195279579336147708099436163396186463899838822596328769493938494597976725182896815987988475825430935316005222807427475502993612295265994903868904276880004403921592538875573669741955295838809109529466374664406233188797884762792162311669369759493038834441313259959712283729909529239276023747751777379430361820741483567054305929676578113564494576728712364483227350217362086339002437683072428086753771690578506820406742254465118720560273118887626922220889112001776322143757809941718916674703302087884226650212496941724338076339257501658837941304033201136490311656672550927029958890327000879712382851608764529018641193604357084677415539256323844859902140074111865519684911864828177782100336351718365303413821129994338292916416217960788860239129512002811659657978152408887167762042229859545123963086434727649612641619005122199775837605007481798521413280429075738431835116512983136126658308849170994830220456906858028329508849835816107582356958767630772121375505994470163519347382591362834780300320620689789058672315682755406041618404729201693538735460960493385973711499161350289431572314448941362403540147709080740230248289906623695154504870168416216905050954329917424792444540118174841193201764768492922831259320850466982940342193154391537998372666953241097742878346311205657727858853064534574020356812634821856363372419061660726054770164300316562619076663267633919606774130009304790464392321547388822071952918871686201178957883139568550572543032059533413370305245637599118999409548238175754031151095598256265172970609065246568446371950874320454176850658535665374647637689589599057266892000044172748514145249608200276872583992220472241496291658148027353931743781507410980438347642908805555928649344995038594033388189271134837682656873950997491617915156024556859500822926874563145605701361088782340009504370214039062621944475058697323795509256662548649785311676747498192954148024846625916703184794926576483137208791748777520575419237406638323479102365913972936823956578447267430299497533131779569126752045802073692219551756868681612441704514579788038228924595681060273888137533677978055491066500156787158306937370220599544030493085919815910950024308420988724401153711920769688430280994602096893394666825366973812760445520910663248221517011689735581602814116057953381870275845236705898671656199181806836341199907498869756330729305133565230286509811425183024628742739657284858499253698538779082962727182348839076286150176518545585253989438473159077642361997907683681299924607455139255236858379518185010664591678802403193261403514270739621153798588391934909493340849543004844196783517315390640037172002983147192904376916695730199082033670211714121545053132582504260265675659036530165889802009705052057925233566039799075467114831343397890229424851853753658345700550607344934110495439110062020876304736890798324489943260413928784745434322460892525164581713795851790241763503482384818662659784011088317632151759575662789193538595765635016285428565399770240352315046857980174318372519207254100925269608707905906195679955956050665712010480711721345328538273613319909755068413115324887214506758847909988149880725976095994812166506084254773194322178361359908017644534984623047940877067305421951313660621380977548194873663952147212474844151101977417109200291344043219821311124748088284355078371436582414371070473815860047520192475511384522295006507171459480120669930139106663209799487148153680589058583284233429812971867566702925841944515220588309826925523421968294144839246317717592993819890826746494491550725609634095965131927078785611441688520202234766097560902793851589357806473132912059469279422196253237803454332598163787121963291858799481471668138072764237053354535004051167095398639383545031503964969853021017548499899369790942628191752251382799091987815594846402084203079288524101551707563114060912341026312367532251277623379946770775178066878381957895510255614070217565160247459475044921384617753256745849266510032533258129643665232946948391022789566939969958778859124201633613265729467279832768548049796007018054391136168815587461881256529617161583352342421305984335533518531377516363892299465835471067529502084395872738860169605850987875395395841264963044293514069337271110079736876705262402346665133220490319780906357919926154357325039100744775103267962906648913695893333434890559335346823159756279868264254366802872839407935395540545998355651055402302435423359611917659655753853593201616281981648893370474648073231035725263164036810253568583538083167596669871241416271458066096776778515167993431041069843673112622179929717844163033839318460099698226197450247633028735500049833238407581427565230894507383545673060717846376310225624504620600320224341434478917499132062453328888146864435389235458748990585046198197398558165740280574374652470397678424910463527676891150820407831496854403887771935767337080307651833070138954772618336138099067775247331018828539209078741537739416707867044956955748622029484634466427623204800318369762888597579882591249128790614670021892026876161595731935421211097997076820357173262967603978382608593351949902585131719444431444476411316075778661536979510381529967369801748704065907648635222009352876731930265270549866358865842640744355287546973328807089622659437672593199195422032725100491504956636767904445602685389386414938425308349031783340829366518662312187237606249820457864333637392860202843723342699069535137447882197769412440651704780319581325625813672099189477921834255626915609390926979247441180125827777141573330205518850572469714790010508317945717171608591760713148476357353433901715024548034309821415849047848747434131884946183020630837982080937395558277048905905795526104841990533756867195545754875599821154260908086665648544202650477069767724107286734124403858248887085346493416006846340393678618459929193294236123566187247193052868140266328355289185337920475281581152027507961336747702032458439855080985700574453936715330584441746751525089279570469523887267058784259573408030425026987888849500467452665078695969889244420772302669471545158066853153365563016163895171736141811188427922938056139581538068552887980309739852521325450823159289655263211714288952349927477354950746366830694199968669521450808417835713787039636499644236698721706612458193729111640125890122516328265895996111028441171166777754476624490437463545433065627879347351667919780822733051151460735270146572615510266028098300661650264757146572822168437889310754866273543134689483944166302156456377804739091659929310028479740616028797363480833671578223000699481926307480227455248317858738293258059365662603447106058660456083208023502671162964257586334645892915895528664365949397391208376533065172517003546052536665069271150506317664051951410477701602334944781263545953174015524324876768547751602106458627698727715353808366457097852090310908788406342116699102854679724870063625160341083873942681260359936248941942775716527560058332721047709473719842946857149053489712066993322440070105217206037356674405842830554299977953474791521018658817078269808868952487148276576391034378164516818264803615975535591117986958968326007775578206112040508327229030961435264739650311289815210128472530187975195437085879484255873907807420069709134495421770475950838054340277971402425938842981007122478419836963693340412551855069162593118198089762064833316178544952301522545383336067739660754298397628949474587267307927712629564262890440358972963680629545050900813338987491280513220987721544779647967895082534971218235797731176839055663491471062471885987934215030276335394891641813121351997933671173482729729935268486127129468381206803000181015055805885340390568641731890446455617516321235087592839344771325352246250330599871218346734514184044780367003194853807371593985965043024628984034575697082452445793528954525807805023245579936087953087376698713946640437408102267567333077890206804605065492754389650583090055127954907818217493729538336026305662974967580797147905222763549294681376227063757639886014051468899623249470444472566381198185793041640570958679761509870350412843014498999498521432099100912157465530348278710026027398159264876161632654201360032450428662935369568056796047491849520631313996012804091990800039554116035613651678705354712537729534961989576384287770526127821342010416445213205443688776292561229943081397828160112086714518944479156430589289745527118981961329300448093443527704979732099359961235097696941911139354965889210704084413892192508133477213416169294888622765713721397704733909278035720220076445352114994796646625660230931579219296669541565011730403762949179144959248954905580542414542902491216940928930235390833820071381445869416188126225987468092189052641822119644076991983190044889074789630222645473388945181937443240318635625705898727849955401540547389165878942234289683194496245170011543499997952013857532493507361110157580359637763933144168603438371077073237356506389590386940281817343842538197316490035863734221945756632737179302168557162726025166664708326115893847470521914856586609793566458976757672508914677148333644655197201901624616780373096720718364892799975914314400500363321491112833470715472304998907093797090336436346607595020059985263983158173224345514424018857319523736804835673708550659341980977102816719581262120280529326952808716856920757172936998122982846795794335324061482944564509631196859464048686589454233275564393789920639251487599402878306343693123731100126431630519198538655460315111224940714620026497449972808162263001244970392730460762653117468319675166053445604260277867399614888402498533185344727448190740283673053509538268919927528632887306617397297624714692271636551854314076931822211525112594595034094182125030952914355772716892647370037109018486365472550452330701842027151104083014710298867862828603092461117066058916532936710805695683382685996184246616204891686474615925567698663139330796167712091389853202428334870065792079541347369204248025050866166368417272728950093119193940414487214346556587960261577006596039462495448241638486840677344415799366602132200789976992475269426912033327328890492951476164059240140767922499369415130986935281371732034229156702832773661378665894297264477944715764766644117410998860591944840828120925897935197147863319024469028446922264144566902791520971288133599627346172998524181633623858128816460125746173212697846640313978467257951500627488859939212641520901065166619119530880751390349183852802477776328581540679547626125190363605865431036923296893993579098182745302036275856420691621460952395481210868753025583206559527325152522084223674042420952717189098768500009499826139577436216000325949090961082804053301266285816338910570686794703062737653238385049457232943763755690638846293198080934000736912303296351197908316703652021679916190466361925115426930029942008607586969138402975521777965507093013291092923971294863132482604158163600267237840621208927229513732127006107569430759003914961367828506970986626329192084481321239555942354314807586809628923019812414614981683785657106759975248910869457873274089667606566061600529908496265285105320677292007074749734671550184699907075408243470132352342632389033960333053773586669872381412988349506253591676964594310931097673071237132553133937776537060912500739964313575394256898112038995031493113517359925892731195436519729704086202005223314185512980296360322206258736914518947880886957448407938043954359352300260633620730149279213737342859331487838330422858640485003414860107431189997068940912819913751601259976421262132569241092497719874880532687293912537822513397100652800451113529637415486078820221236451035190506652558312977216587868986608832923869927340930563540115213250152836810647311391951982228139173234671249408224659334495500418723108530594825136422895693507619894016888659838194886983574572970734537911695487673320382957479649164367041822381188231468754928716219939607029127815596676100729759267860901888532310835469258257994540824342906740084319508315578373529386461692262525032895589239157800536422929604989221004530636517528556915577999940825445861102977928889004409664776175592975228449899653451220412620706597251835481209475112361635898867291438382071797158144439977010158565223104017289264579116270563095951642696167387399544949264356876171288454845839868189451930834903026397664474913962187423012615880144478109248076997217516198716366009780476877184280176725371681458366852588572968845244204115760732421255584130350946641070610712607267446768202972702072697173872732396330578640031259830294008171816985560020466470203406144625172319460438490032474331855531220288238483733146980783880464484626619882268824205003241033893656552509783852118239968793605341677384893582981211409361692819205149006317252609255559234001594165587148364565934746676038498934408088778518174561423468816233516565728732863110535397428318898548419903912589863403442999390778531641645838709152958322924795392569545326652259181237624394658058733382983608439114832721643316763235379556474704644891294302139870296380312169012207609883710489745952963508096222278280794570120932533233854862318988540013006931567337974181295511888423589492611123009788662188006423128846738861647363420746280180474328700913230270010457499975988165703250609389268585647825601643500928125524763663920890388006775396573299975058535166906082988375781301510289883229359784441692261940641516406341643399479302819453515859172482035739234224694956593634934242507462506765323780323059139542210999954869348047943843979017495880720933740638861147896457999873314678022812622830534952202301928577149738441076597569773506000298633048809362799026480222047304759007454521749405450310491991619007888376153838519025196102108824036746328199675284583505744052245198037808518066494507110220406928582048518628058002455235105628574470107389468709306462920967301822891932229454539400816561220794013255710349835672651732078511494502194082750299438007648096977698383539366298577451935701168495073886886966739421362030025755433900280418871062716852330842905963148043358845407319818610278659419577563198149406022627225363980593712532834711415619924269878130113196812629474293132630306242560485498949179887833794792217824121325112912014561244845770230744033374766546005472382955573378173647169776667299788038540050259055221426735107638117873602636708054628493766630158340841275157359399621729736055154836229938569712664229811309437935115480094443822317740188040999996921223105761845946547151790973333711284416755275229361329301434573538452061432030500129532741136530757337638707351325801778342088596517084261680921210862918482359675494900035944853152413120319759913914407121611841260665051664269622030245881954200025040304839483802053966537335797014168457187387944524309303861021306144914298830861917972343838224616875760279570303090084067319664170532583693366952354070961008044794033042181180918494150317131729053951795998983069444300416197396823375155229459340744267247825294304392663455991299813822365606310487758210446540224522849987654439690916959682782344452425345394812923155163712449635713597906973795699744767468439011080841915153055150643444681283957823209477391760826368184898555260452109195275925188231135782135014940391534180836746555087545149631539492409972854964716407966541188704232012948834154465447137268562985836588871046473791272314037886279779395111466538041168396008883288429124870021818088515288433548263447140578258687978771212375552178226569544575424193042499884513338096952418883935442195231168092547752920314989850147406345609107673723420157370308551141779978815724610980448249641340935128461632966214210589130880203350987469166542634686315188978702226309993455490622905320893503319498706610643357100336544656995133393916355703021569223251086634700546631503204355629432793969908190593732274806418147749562987705151025767551597630871601687035703730714288728348312789616842237225239885901528002998137984164808267970850565334892422637938291053725032380313667456889134866364596702521648794511039824310001871886709814753301612223948369484539138234107724486921408170855485116455425238582806156889008775286438466880757166687989831257645419807153042557061338874325696727367202750003832678133356809170213482972861678890876818249965112348596581629265059477979694066295331801183225948684595989154781126964752642154015798271635888387839694609692517783132181302736539416014118778930903231951259322826770346819028019513746908018521519613027266559964547414638780433526932003138829137645058752312933815674946397082753247597331923875842552313589923051168728609131738159922138640872819866336212400114654660942885963534566789879199775200019345332405309102782854605987113348202712611998238443703750737929413140385508463305822968485121484634203472602583520003473079878600399820211122081305698261022196299291154745714069938899928596478135437263821689991655814005519761777315738775389453677297976611438235893977455163821750346946175031060300843023811829227728081339100347708899258354346296837055677529382953880022612092842863649960992418792799627607130779771956042091226105420071093606667585303315222345207373914126545396757467920222316475770298683428473882844110211169027138749767312744824693616511293342162340431405010622608252589525835064380146115998613316176039638617901647125682139073277620499892537830896001658431567021541150200235010234077533468164055065837674660602958165662291568658234671459313491598165808779460598266380649228009457411746813198752067770798822032095845393236079567661885208668026527873152445497901672381698186715021085820213301857242407456276973090524571064553866646054279397112171782616947569972719869979431576116648641425524792987913340652400183021275149529301682863405470139252063679087853795632595513658148628555228274688357307396936401056144207643093360418099610585318250286590007865003264562860709476041530065791551282601192785002583616772741114322257995456387577570517306502574061016371221242542742549851787426516941918192902393233423229698402639334430539383707627652372307697235196446602876007574075992580053400010338782777583014579954209614414705512485160547101758952569537465465449089724949961200158608291313263499923335803466770662155651179303413879059186954829882124941727560988784131887851542228315315492643444081392801992336487823572157071997748517590060355120258850001252467865180250667214695714632889611329239535379942501336668060963414165644998414171434234985898759477018874023792482377544474654819205345459863050122216305750063423889920540526791804174847130952792287940800630051530579255689075419125635688333866210857269836035585615712564686359624885480754385017251638628569852425934014708487620262973637855718585264548199436112935760813260868515781853537635867732626373550025259326308662490290015366740743239471583463812454587659761811910196160551370309027976837700883516917879343425164522584254991864149502656531999856798721202746920096516669212836340862033660353091992408275985569152814806711794181462236612795601562072393285479746771089988189811237968244673817909797442556534005810872613842795283668611375991056056630298922044030495741709281693318824432939107494698489034546922428430725396329384877151395821787678483356899048699984590246806824591870599567395359773343464956594426998363099026663131027497939273294127067328198047161804516445507590991823413307508993680426148886736567518938362648363984754261116407115881286941516776788483884945839793437206650845018280941048418189896495531765767353726664906364936611930348768738099430792214818985891893604871165796481926792254764517140761077693914862049687851653151088905609320226681555538396013013352881165847737383614902318279873831042839822514975775129453828995689374810086560367429132390506116316418128018957224710673444069824324499058961969937784246911488848389063448024286127177857630120387953169030372930164356037338583377015361458404006102575968040437189884716266229272267385042837202929694039340878089293614530340733788344038092706602133766594794820639438806667027524152153048504427670752533792278928563024798547975467561629638206541392400715993261811086462873610643575360998187089946125528834345012540133253462307608847680168590979289027519916785431505383842407504495422478676984956531188820924280260276607130798573314015827265382230588851045906823569792036008599825678699494305217037365607397257045688432711044980496440408564589757726295679985622583793608258901135247224361481849581393821556692902690609351625154462537703061844351888510997286111211048715942818725401674493003662463904611424212397195090089271018051643298514210903701566920006317128246715624685929120869753398518074517095530357246318896061485306523089394730770606442209623422030007737778256653897757533066400263050464997846538208399346211555991080382153907576343387541961274297350637500067964540908893758030580408595685844847677500343038746321577318068145039215728040245820600060595711837701289740992707367319800318136281025387634452962021530337666730908069005452296562336323480960364591406198388828107807536993182642137640658253520611033480227378430306811335990225857819156523877028842022246664033493758526497661878743973809023667057048362418373219749650497782866183144999729755636544797087251448274816444122312142933296337280400290457990650832160810210806127481569706819412139699688334936243441250662855138620115666317502755724992858751123580220527648558164855325644160277787132882426038177063132138714948732847452120527486380014206680207474319790653129613849395983891366669227489246897668532711117711397305094704290002305310899829216748503342671659319293608309579654414607642331168014449767651080283162827353673612919833425359199887939814483367906039762278389878529967108432327537295380855098749683890049108637436957132011920547681343774890452832345472580731727245898310524351455557672793283028856067577022882483402490105037135589888719167055823495941000150588624718831280275095288520952238950308650365352171725066378073081639806775521391657831465968723896588156184045104155067679604464388953366752019299708669805695342848167321561795911808532021159011226396920960945908285233009063245337007024816393074643769715577616901647840351578974135119921968550607741940975497648069401830918939955027104201869555537197872879102209389583131406030374856085001258929023133954768198212649874494250700303679991538974315162262205920311069789872354010109877878471344394077572068787183377097109776665082945596455056943522899360768230370658895619940261936745349320831637970182499818575009632927351236807013141955398561019227883975584481040877178620783680058156555899917423869675036135971042285511190614933081184224310611627668550585278601060984638243303569784742925629653035311447761546916840299454005913487003497140902425287534670490906306823631661956563498926295339214881767572823278027217466971441218134649020787518860232111882203712043785474430144230220134183942333698495694132196534837016559699140223836317680558258120157437606923778244997937764420410384294493222238002749064163566656808177201931391827604785730048676328973911008668342330606782944542236114332783614934540627854648194573093818040182500038255157818034846392888054811770791583190201780687323437217473620759743176654106305938107339203043343855657885828408197609694398002179874309153030031080252134811460736844817429324388821923091251472636909472041444948017729631801361073065510859409191069653644873433046680499101011476124141269224883832875823958875267747487139297159364403828776507242997934022069590304250564823826784896522467971777640513205437403382419054722149707232036509167189206813864813157315526778998166284511807619518602746384345279568343504610016432372147370240848689413456879446314112779623904080524459450535437803525017229946273451313071669091717815120442243128263177002030163448191072917725401076412540359267329094624569433090390025701806209320903098954569279029870560533560365010995604310155004469315999288322634836692356565558538931014770738990915863384831444657880741408616208718038207462930289550267746797663778624282993661214141437467356349452935429151732068920830515634774273294549313565250822030550734395981271871255807752947285247849849366950491837330240603309272584850504872354060493551809024522559790731529316775879999374779680694616923049817154498345586379131398349001248472805750486557007512756807837874477493574099068366332819259804550400728215715504258783678679948322150212972678253856184682577080251061141900098826081587527142714231216604671519898930718047834813267159995728974482189579204746090569767394086082157635930813511014958715846824278096949838714306806328305817962711229140308488608513889959707738326950532228089927475385702249801737334552249999515220925751241203022437841984756236651090093499097875902672679171754477026096205772213620894128812929594912514154295540236747910049068431349868553252059652545195518351209108228916460897628618569689781352665496022265422964940454388105208809536844809224597972957861377948926166395420116993666324797427703236713217604052248222651464403837094836740504031657179056799332183366897372218182629801566149899296681265396185034409604778583158087690762696851449531782386998229706186212313278822066412616025225538696800431357201801546627460847679772715739119491440239181010711356396188106450973743250093607017485195659265467805141233540421538324389158012662154364387060174333015884737738957738088884816619125586353005987435664120998091667590958613242620262211466189480990414324828340625467219570743428962325238616032453567294453153987163064747348898347639521500622680991005689357367920004331355170664239355284385066933025769557033680308269359864134315130057774682992533787339114971548389049799523289654733997378416094355825361050817397570712864152109012062404324501730591842207931683688371801207665206785434586784938730413989077511912982074541716475517744404512629955316699982805673017574847964711042303117805706099335201961566747925013910986159742785855253027424951685923835748879466643527956411312719011822554311888503097331927899895507775670724136038486504860761785831425134294517837074421655943304698427693737795873583971447027800573824737389097190113234871813602854527023647204080201289710168639964825518211198305153821203519987013654696508162878926906079687760763053527620158974988619161224974193966684362408398087785465059426988039589322505799446408989203961862888275845634788984329836328154194645766183133090358782104096147959695880360689169242046459860042149636026876188492363861551006509745702069015099824798934571240432140771114630162292083787661002490122135835131347278077011747290969305337566283043438243651061305276913440358790512346499429815431777299499322715200129826681065984976561982565089043310297236064487950539335841740601752180975190404179323647318357429879539870708163008421284781733305127739772907479376569933177282259865922868639328602180495120041458942948944210826774316795735883344674293957660754715221175647884948850838661231893053927770662408053822172640697726381611639043528776825879697311739731773806692071040045340927719669582744984200152098336055827263665560230683865358587983129538231439362068595029295512857686629746734340427029481075231516842986773981786149186924718357367946072993651263461549284360946296985553668896960157900694150317863250367855307150335652441923212329955313804861976201035826784229989217701450594408365445412400292849162165352027584801128110160427855657543866424291295880569109849752792017532262931165939734072236192721790502327014126375978676191004009949440953076085565526122480310193607640287147524936785794439897331425117513103652400603860316617369384947937125652773433674897899650675317387711533141744182000403497841670229327537916864711897636320845675385940490786863410293405715200907502710054739886214732554256079225603954091747337024195111737862649436121918828016279827096960927017079934784686731248286346010229623754066867331427108654131737810310182969638526897696607523721597582911283060921410689027750249093664364883228280984589176821133974505797869209002705968719498715887539344760527518162801258599887873557219546979554837661489810956998819927408000275010751879714493582939329411782654108833961159649378125843190225011363144232114643162693395009715195309221081064519053981960020697166157195501796606395393642715599519180302014397741021423345402907496566888336746960980730170247264615786087362203017518148587268814747262297204146296944185931470942873455007007399847586159246138950340534604264334768542365740473961705415007058805204624972556164473016855106965966501197765213199379559846654388068084975130724537011990736340235913031587455528622862546881313811639973590762545927547928763418600447784954446962636983477851827013894361905706280737409168602795923669984984428708141185966595554042753427419324670957182436212072974556012455251681643643248088931802679834234191085001882245686861674395300054120363707601103821029220055529539996799850627287580659212043304560050867292863846891828814697096321703924083028751063781942294420359469224658853504145226821076459398402031284817008606654357136342664618584923888966006222750730580127063138480187761805322854186955959970568472734302921342507080079615588870099768846296501077555198495590696318100076492642489812930489307456949446131226321846027090759786010796517866851667909138157636149804665619364853881233593458200357923355032311362094500089574507021214311525612772856093403557708181538137073173636272771902573876530534808492944305326144543321662984018995137335399626233977815071643476355642734979921864907595533048021836386539192052770081487164074100576227175593337340366237629506263012012851690440833964103930208332262389966627698592760440956063283414003077219011675665912834150978818205988053618247824972172915549452662370042882006072049469424979036650448899559074770507413245136906558177105872337037364986048941655528925698584127003074609568952204614809797821333998085197003400752966139176630093587103274978965748838714206998058193060073452925780272944956848093114165032958549290820443060701834353355211807604499745166310456919428690903128376500910910210288851119405756230530431511421195522988452901790153109765486932449632679664355724706837829206814370464340735360014496054177543497955033588163718068443582435678183790980012965260301680130361473772347329494077252864242525547823608590641221509211684725088774196599384989562710778313271295953146771690041951454933069647248091839605269850953960619227057334566206654765051841284340344440656976651280569887360129254506909547196932886727413582065140361458323815162094831440429791500054829890741281610090601923985231031393574569645443833218791951550356629523515669702468488211543689121236056958540990666568990072291828442045733172406208162816282222832226164552182951257902864990412435003632885586374821443633625444235660982874097291354417992692716059862260684200049560395958477715057817249554771663483634355500525972635385842656527224188539892489301463174761143341122107944458101380490634512534105671730835966709960757951605996772593777223818849352551134021313190275933817671597895055547433402030064189504790813337981847879919545936429899662188404077684821259932365510806206999263673296067008544642726125175375780385737844380856315930869841431295241472370273320200004935502604957214764887647886921583053923000507659393193443169543659233512674517599626228109500559446442132249960190390589477897434693453292744322459551498975101423433978288289024638955072416593252376490091504192879008476055876212925673519071038988499896299287749692287470175122174336149137950964455280022893970830339988243722574477763076533090572741085522468572331400082521434240080396614653116376142761411504918666548956921776558564336974465186511491065419208000152068293826100280193850848882049582650621412270588651731633705848430057670748420044219064705428317530759350511513645074841253485799123659104252879108815834304139266969021397331313776808410292394225059424739181324237617297777922420865384034620937414519690554172658932158366752532654876440827067551149349611093573462493768445549723818592519281016330946574294350663954461126611790457832454817204114080182504717840422586141183928767339923991488846635242170899757685438689792741579802607537626669426270440629996072056141792973724118052678398734566978694396981724416116635055281582547262006386281244146947376019122864340144174906195937687231819207880626106322367596117595014515013582619573978710061927176686820822270582715328813789087814983936109457336930689520119852947858105545236662878045062883605929709301726762123450098288950626328554437248793110982724169234083416573380908789548206905425327987344029379977172352343625335081796441500596735097156018368583867386511161775174953198392502033024777601700286822565993564527416505253254604076489160429897633424492167100112615188985046459478561123986248938554747308764135563523038310858367193842560314099478674568549781054563937714737102433157387566441751717617292708083934866288062609339950077967903733155026583918321138808482125522492845612413603715999589798447156222900849568948702795068687127759350421427270522577059357384002694808106684031858060472532370632404226145277442569012343037493706358419971281376338523570948555065730753326420962247613870089038091240607233376663870450007717856468105145239525395126621681597878932001763109018644255686912003609910698619405484974833063644570792702574621573567816106493738283939050190772434954781626145298871026132240208990266938034264942354595515308559793759479088635026277912425584427265004167353547992315520247302937993698677093144611979555646223912767446415713351986618185080549041058561543902248420540166639476625937165481789019984504173614835862746044007203915182243911265717539847097079496121262161275067505768652158517512100127650681257930744488883972580615695767155952476820560354158582111770760445894373148511522012661252208257854090224543234660741309222788453635685496156986709897379244338332979455499522251768785239401852754196847437694335105164898523794943412272661311188979044248647231509992643357042583835484344178209805262356549054061466508143591216264873596467769512442541609739111145303961131731076793750382272327572589952606156119010737001371682299609313252075281638967139993345293363854726884530457770982682296650993865121689657010918792075817780199108333034903549171010483395426632528784825165483519135599796593643938761837792142857723936468631022061086915776981852732774254171537333550831898565072265466595057556453700264362160332586933363960096429519304182088735347748529431678177473384433815694894514736235120041042660951804867152891201669224830360323439061720841906703752225079743052784460801086644864452168560224686063437991860113023374951264974605209161039128936687671509839200937501938426106114731789935874269759173654381815720779226603387997246846926780170456895572482918970165015210868661968934300159283536001747714642060194288313240953070173113250697236090597088336911866381619669667613329624472193428145809762916235318151526867146677331278884689465141092636248525141304706702291089850643869329111114987518051620852303001919187865756095386036782680714122843851479628818709862027975689464048877486466934551160768100363175073628460351819244866450269086057951216370357269712277732341047975961824977231329461150899127295966682251299300646666633400851636215924948153947772844835661020911358503445811870388302971846821657980502913970676624917659386378479640179614471133625947575558938210419948340852643273326940688533460014319468751460821998219605416231253416028613578964900040573612510297812624211497445704552666074535999400220537889192671638100505061201001980304322879188861225593722311666984496185473824788532412791169307224117664178195718485946761816525039435474345731737454245034912494820494004260600983292407104739547701173766575501510839321723211521188360135878220423117477779519417598989156278998031448630173055413335712635450531548234472351340040849843401950181776331240565035306985497670213285434799963212146860901921266195676101819802961174720130471708832357122192891224310632660559642107848878903923415942947585527714764444485943241988169071060280156739264869644248688609843469535347029751723912725789829672041448169225229364828279180131465640626526114840799029978413381719718754889535430779580395801937176950428158490595802536570893315319305930512634039095016402462870372362522448925263451658361528103039326497657425754820732371997485172015364760737832975871728104452586058897148710183577197100228421193882564011603937093004621609716714891535543540069094257025407755506055089341593207105662859145810346909300772740387634602640853905682424959500852053379188894832037485210054092461584209070980863517318066651133321366846074433097448221929855494180739763211062674840831091468408837148946028190476449991839223020998261443473061196478412335942264903917444061038638242821613984635406260330928045155000229554569989702308731950523878966924883023125924093690924525593474141540248625112651340454341211014701545548910562305507858097895612475572145776894359318701676593643202038793078594058584177974193384046324153921030974083203060715087457246157156170904359614129907592789624476374559699294638800821183288383634808555642554607900271005420721982270428170288933918532298103580632287046074826248639346155989094561000114768314833953244752554046990930071722298335200678184934140711779653288949395582558684252553881255154506843468705287221401330331148223872673040542127470395607714692900908893727435720092423661034779431895079566863101955444320535196536800777198775783464181437799871227717863384935256299377783480416451968013524441236486769218825759866946944942555350008220103490234195605718909943761567899511782844174603920109818338710850118839562607583060161727384947680725852554249762266540523760019483819005686817412581092199194775398763980848232022824209747079909388197470124949926887887859878722087151348327738138430327915368675694596797977555406943446095331104387108468128707355308609321872217134245899991100537165148786766943808502850628586339877567126487531622531009702103195528968494923243047655410695918993082783488704292377272447540180466764713139655340063757519015071630439201117778970042166910926763412084119522335051323465845414959365980504646939755107246875083772182745714919736418891001273657180593214894323714979133588444257792694742171314282519406058806063273879981171327392297727101198676853707373338422224598391418361198069338642610738519476816038361915227246064424575925371201301628820389418746026652740994988400224371184738208316648306644986156854030988569608153088446282699483642167892143916864380711214066138097982235570590299840183164740255276288076653404376630873473490609550337221619900458441023594317122168372641485422848686560217704186185730765560792037774291947855714679658096664893648796961358509461610847830941078822737106211269329855523674848701876694750651761336679081480427798639970198797306411991228014056121947765301394125804137225618236556514171323801804596464665624611548372173346875512903427557245272334806777724716846868184797188555355195510624117664982626194653036761398647526159183946569437212346296370161893710211282286971026682961472116499113763125861415381263441137720012932151738270888791035118693695324807390101267239459749829534457631982443160169820491748858303392373225601196831214687871370471327178858337810150881681844051897161137430608457409788590824644914284205233029504053746598388567452215006135213433280632069382945179086958033084960585159741666879227763026952319933393076733663919350876451067427223655275973880619429645721398911062083557002926066502327886299088852293176128884627690391583063178563494976856320734166162725980047455832839407911005278006866031764107308739729363633903487130928880775905469724876864978053322625055917943527776618657468804182891085999959166867112025061040175390984673712586244423424719783625707327964545126122197407651164454063056297998391864823658141895248456090054048307235895581834541318697317047278977601551714527711240863194006355654087775441288550794701196901831443084002054039683934577889927003681780982313982830749283825670342630799318057793042939369013151650679867508901599362300518766722829762411629021022833551263909958637365439881357954012100815850809336340639247920327338464059528485495621314686602151852052348664834475432815600194104789731314218266351721863381313443923795434989689275207484693205922105731483837212587499385273587586665296761246573695158716102099123190071811891883661074604997727698245758294455089448123264560249216375915055786378132848011336689386827606851370312196925521932654116540262700218505792245151924358883359613732155034028575631332179191023997961018170762693351249172941897748785505735933054398991223887987536289068669050106588208496872985500638367511749749077888789196402917399383452951443585570846608840705799784555930705229578822287552319950895972439489381628183711240689184281295147692598115605109640923216372066026748953240843123518777274446566734404770581994127940418704520900059555592422494129248596057615222074764246404482768788435156345635094569947008103593299604234624050405472126225547649103367367157685183192055883639235935153851557249590184744153359486444835686851713508870623152653594568856275431126757483072720623392079737470175997809726239348337178666818486325872078130576302034309840573080383293793087909820904178288241802984875797700820525342636763550350352335486422861807087769750496969392517827059662415955704304250910508883438385579753625267187171647428702881645931428393424001820099442545581966535160080055278032223742349425049953108641140847444614429064297744237091134206471007646693575184251977475172843392211256088241872393946262820000928708854299400357736311016046323337679526238644893283656696614649317496555103220900322073317570097435035676349983444326774012965758163809115847944446545647589127868639377749243258386968519165215409066564570590675487627788751519339592269145871733502837437030819497246567941333618630376751018486943302547092637658839096030377052802393484723940688362544293628671141596205633267361815240399174241046228469102415069384337174701104033479904536371978140110192991103636836373140951244347907871441472173264069602204897829440888716521326297559792887772135993921881776645754146043090286148951578718882269530218050970493516408976846120031782132371895079203520954241751316466212128453832098603509492099936764520059806609036869455943811200809344928431471719924515937722751167663393138746121374452190378893197490844321381390239726563481506052256862979731475104562556134996594161152010516306024130569689390808291265327523952877923040106735391497907191611200838442025531605489044349397882030529556912831875195308576190004023208198896190047066676674119080357419133111876373128654981583603552418326476775126736388541437441090963459196950739972121842059094762206335145187331454576392833807281831910037199226196408122518315765260358893683039198520021586659460185507474663654205867122499396347343056439953343201867624438483221969944379884825380593157801187181240185967166948390478579450984876388545075563495748190214770294820177148688608396465883145697536647621526912777053640926438453846928450774327132234338064813210291756970931515960861838895570323128166230673734322046910785982691366455356822916345774283292145535703385333463439252637417238721630900070176545681807010635810635993535727561849669993666210978444110948453977638671793574257918036630739522800526961574992817420936332680194893310171064248699807875722129329962677321728339339353007600590860694515534337269781235559171323192719958176613488409219693356153086752032890727907089936033866471805520179661058329186840874962089217330569871124807709235431685246688318232930900786265320687447244250182575133110600970528372184012435565276447319994889068661852817444186328350318188129734849497196077200238173477647779670077233567197306556297717058913602791776236113369032457656136660227807282700446823694126804455050051378807096211731172054799550017918090544573693661856523237347105277341524919020133643394937816093569535133119673754684854185644811174424703677294146368041047596503667593119740024528102846514892333273596691316602402544592123638241460291817150208239431170964886698499249929306123673958810654349112450735042813994967708780334355525937467171671976475286949380881042690305466013241100651004831347540831997516097612300637300185758302441662928289038807156628042861013414334325230780270831740635536948134762989244740717927508307188689607208732847375167517913450136539570591371274766357157530995462961518408517513896060480016890235449082988125543046320921522776361207452855209224052277353350641522866400198516120794796216374698090828565113339099845008896867968614022826909072996079933304572494162139595599161022258206593304500482428786156109761365720477969054492125741960691435278789540827946741828719094780210512158119444659250066134141977210760415267688302474297672479938745420872167437903326976839872335595929971493895366275505024752686285847144592552862603476592114486940494196261247571562999487623298347904467263019219881629297668727698478564992108916552586623201205276798928361683989669882015631487990933279420925662921573765853242338239703151214723029018255898518642712490231457428785065680368196304863566341406896871929843109903783180241444095895809804790209742128667930985343231739096183628193507157931206030193607948543138463559446618621324619222733608208143083154823712932942593774891045045057953610797320046149109431106946124699761688789554158653049787646577639996138281911653324639366811418913532589550144881781229624712782552590086512167936169161879638989752471116718263033145410781450114913795820679306756330856875795037632945420066338403114889252397071739156734072039428618037299075502488842834934612539915866743263724882947085297493417412416550215521416464606766000472932523446103840091782331691959512900506045103800972988118687235434849337698567917294835063842225236742002397512750322156155562621702874157252476980781653932450120943381560882261248765383450217993050892663993396390584254984129514497709515022924878281475377290935734699219717435567139604651183769115415519319580683059080419064287225870114193092619055514357169307470250056951095216904991236871922706203640332678014145994031067427465915839428052057464937040886186894658283730343557063021723228631955332052499352353257653878448629161585853949214060448245476898899459329612801890532839637965025075266756122610586057382725509469341587325102264126531079116174614002079037636344024590773441104294904531587219840203741289924904115355537892865628757021459177924474030029937166286426775730333529593731574863511194553088998630745907290775616487626731930316439414823821684289268463758270368170215113015994390726234199095900788661277215944227163938118454426630437081774587301793254429416056546981489820909670710083730165672733859559895027712331681115317199219167245696801736181537753828125179549227905852352491771632819978214286283392027264339471599384418701844834236551119829747454778055979573364500347456926840426245955602156856680766059944251036518687377877146599315587834005049342559316683168481209603754667163758303596750133590411251617408115984807112107162428969727238075984486590406236271873396049788146315563049252926333934826197795143719918600524445294457967882706201299260781697390912156209406720391497515164025314573530534462422765367534480841176400517612864934070083424270713622815757443335620467172836965962042552070172020015288678258740925231577893676792538474199991447011972541549710075316088585266002030703735186451807335436581626902058003431482980899819383449777147929183685126838351165297140709844527182861104499206517783352497631840394905550430024421179784981275034152264032462912872028462501336594619570161456252198923538848358733954765240360012524734047345831243847189422570595596660070371350774856543268767293305243154374386910840555380072917879659964607883127978027714975382542818762443549278873007600258010218334624803649765121412230173750678234352811965540776916107522427327862080280439016652553025174747898737860229449513484443496070871418923128358545477693354949997838388498323605479794176067338738653476265802809465896702560002060012653708922672203715656539969788156673231254212183724676720652390619202543332284514510866501135489031269433320408299640327943848268221055112333075355511672661475186472973531687586722729026107114170291772735078122522869659663484136370439325631353402327968153149247529629558159361685506010349468904303053854889231109589026762469858172423691781671381820647730942409046439116421966702802860649710997041577694210081545181628807092814812239215489608179031605581602426736401585237111628772514113749088182054252931191426075199607401429230292502321019949516672983674506153722416115670256185794442555411297417872655034490488873137149023833445315459848989159606104076125861703739707637003168632464883661282048062596148731734331010541404603726088247286797981847629191704516109516978578708416955039052055078073388694148393852577753262576513173772179747805597143730923505156575515131150621338435850807180799428839117152494446958591027191572074011913605008184212095390077301213866177190151366547333493469900344167087830369260541359910976261183150352502448116317969435197229848035528839860454885657684333202816040237362758387752673630060642610700960250603355843590383121493902438834657063808685480394939841476434931175314136268636373932243037786965914757513054754124517960542079646175114512320924118918789697726408032763124212819446181227204402354945422320539053625889830937892557073006516962741256193556399376602229132853325045761186723313000581124270259468222201096882558804486330389829680214762126651750927163325844140769585091967537589009601433442438496710959013658969791981602381673863553411123565960451706178108001992878438432163247882502317316606045466627352066891343505950095633397261980043832280655059264034939836613503771021680822057143941592266063155878463369591781338004804850672981786533710772523107678542006352137208014760951994951447209103803246285998758825013079650102081170514983431872444912105375560798183491730836397436238871841698123176676103217008271150739560306420730426759677624273728687613154232150935663164392203147220449350236526291747186114568179634214676919601911153951179861206303287247280407483271288258735238583173155784995744479025187759038142916278911702011182927768866337834306065732037807992175220914022438403891113154367368437201971905844067507221116264823229395961696912839954605379848978288682439946253512201909043202304305669559676394946801264190578638557800481345448828691456278682912300733089315584809010549167479233732602301018783743829664015509027586538447151025048166682579189615253955697017469898603589373418827972307230853234892240107864810836473238905834781126776670289728564444295494379408078698602575555734455959646906028068033120811658793342291140780587181422349336230953668936984194037095753770344556280873742685955785644806088408330555321100435303236556583483289469776524574054628069361573794527334183577623931111757250826868277523695457107987427729700977340811636289607176741127231200036310095782309200573872644163811917241373506186305520884589683150595482534580181521375059476227478104713012875259472461566600919048534527656982518752546984587543567927620596824706808487470401483348457775742364757750283821153686048924622681301764766958314085750395730482402423073094266860729958804339219955199028340706680013469322108959546638879856342324418066726535371803522206862766403409590086208092105508896918702081563717315527435626141395808325571961873387723614993758199351560692486923224124422090990385710069662194228588792236019857282043581003478063257743107533240409008462994163433755714861224454440103776804393951742348442302765379438549104827730520543108631098871971067267101106447394812033594958767180969893341059069929268338634894170192523943902000968468952898310698709774517800603534897769014387359854297813533611558851206419615677361704357076549089643100519549751849531019735742170293477117914795648846791702345306913088018649475033339330916623774467183163249722064191847645767889453752047015503940993654862194352496353737983802233048020501742641593575288178275959572149327275053656484467002045923852079993431537297405573706861349640186904464818185533134539685174210968172523120863582938985547137917346450131451377036282355387623187983974644356134742309074208645493141231498045189666929101735972458686280312649259119953297654495975365877027839740482479081898452625644471178991479672753564728798272849188089103074259551062548579408596746222458144125662606348293058908544430321076898606752959736154967857309049708550107255326975846590175842887643252987674869347160857920571000443212573987489201891394444174067819806656553318708852919625635019903764774049055079602295095839617586441486575226901521900092285315730793736201021348930715052025845633217216734876117320300318174174799098513174952759284219865911591486736488379827721227841648355990193816841661907667890561990640174206657938739028484260717678194853324333551732498924211097467085407464943660639286732549147037811817398601630205132732510665673726032204656789309997543172743923229549011134319312755245321846653145871953248176945591905486134210240100583562949900713263743928681912872652183294939787780594502936628558889595813643062292517235829855706464371293962169361368513798729659845998481676435080340883316977172713529451312840107559560002322149140737141669535501125026402770723516341593345391695576216566858269238169341585064118237179308843558907778487064628308900759333430824268031116783023807059751052451665043984766958831355632957892563013223396087612381577692784535980605747282374811953828773595859494037942655817480562137916941889439102561681261605055645588123627576106822153581255124624274303964752052061776198871667824722444454522232912242553189979223689035364674063636061833655129131194594106141088943687263517173196574621174686624183876039140667950648655430195499589196110475523515720434678686794176299283084698379626455418237523287403630979794316237000906648609102002772357898976552473837463649548318090716012090467274983264673961080188740382205137451122584059341637428951768483078035878602117694489221541544244612681298346272434236282153496469914036484237199200344699958577351694298337347436326727592816489061306728944178387494403842196234680165209112499709953106584993563749228128646424532653595245832572473730563470395273607818335039304397523063515432945478967477421072707391475190609258947719914006590645867794006248950059849031095234929172485856815667293390496531978536386955133852878271422909993759049992433381558698820443825533616137306140594792622635940419596038888134783058034572459070367397109494742313376319411185703483651819936609026610938394557111470255756424665114697340153710429030901847441215012633217295472234634942997048245385797674793695586434448590863595831564294474809164045680564910291033620615011373782300344031238206804308853550781020825060709595831542418007585904002874374222979603443583614065175927435463739878096679084517843655118991031311749779847332407892022483283749959810174144941622145968228209921817240170631938430906701696399320161864407151562034555892927350389014933822380909064610669626219841733699832346332345159345861175175790297406041714753182363211225860980154288272640304582668302042232664389590748787723006482887259477659871460096898783338107385860272425796423945303039236620513798291383937010113259884970005751835123933075756327940279505149093845358776734478234437350736512437517931376752233400282246817531765456469721250208547607848138952959455710066836079020146722520204828261390235161740504534257536021098090483358798837945189417665353685749168883959012518689372790096322049453724210172579948205258118293445441853002304929656072137603935093409192093706568201927775383360790300827227152587494567566231280012810621605544070569794214359973659310029021082392374861752225167518256244470223785029434717933527810079845517232423591850654363754177179573813480885714153929831519618086624025247706497716101592401801797388200021222417365444344586201785670159612700285557776671492708031232993537340417381642097220407518531545469809071680930200169738112587253406971149735026671123377727924810643228955496752301286135084106795891009571473397186211736906264095936138960746213601399569754008918281883691566864882409663696765189967219640827002964950949128726115691686016586082766064472709693272145688037292710639477795876059849210343444911130768707820376602003208354772769279592903380412893025208094432074023611279206877076666535509714469603228452143846319471283138166386496848915758334478814502948646469638855307202184446715495845105131253603875331921056809499298281638982513754771518986604688192701937348572120498879544822330163433097618729010500102687545453774483539703319691549060794427721231595876060961002456576658171892487745470107429817664986408277453409788890599581835710543510443143964117568970566620938611984386378668100366285482490858561733719075484660357550765219310975989198530093476507966140495157624335973947228267616398952348243164568348715917259300842514431547761524848751475565689095960133304474784549777083428376806212151829477832655774516388743995689849158353347107143089475692631219885659175309431661569280524305020260595085228089675800952161594598685083772487730976060575752943635984286112512192626147433072291364359075052552828352177923546063045352486368390674236722112499582167733043962658014470179530689604520039357349752086088987766773946988424926883761341531868556642507741556035905920352452185172641485962402717561137686400910154981862843545970416704953519801377951246922262239942804513326389921325093629343822101310335199812559002181786558941896724993119469268108502432630796163800690991838779342448776434561230457219392326065167359887017526091891020957325630324224841146954356068218695061943125390599467273349598246016302504607971486952004330133785823159890184959914099581805225948012235686618093259562433765033672823741593886860888307128743261277581220466052432622264992057260643986600072279473304994518886273493300450953566268315468325825535451653173672654938840943700860039910676035974784602322899966850877585285112516879293899109677127824934787948254475662215129018001334567670034765425564840157266154600684625015518084118953433002205281027141781972637605530729783326330850129150978912495127564348452765259830058497915477225323841338055967263351402142810131561323240444632351048911486113197148453843539777932074155280610818508624703202114787473981628848080650493559069232371151504832000208493890014494451062052459701616333017501362002100534998461615699709365200155010631548654587917209599134260815446368521303874525443864339446153334455943189638495305576335028349721572497709011685630979189671690770087575806000645655043427657337649225852083097681318053226167590612192297344878626994140869840342126940363686391555032500865404602022277862036739136829458540813647509507677746884518835657926629715342163480614096005273684775066895905526992914695144603217773590522593996479270745866760561505493622121901577640712615031800535519169296626218835230526411169099704508293518372703313004414977599094484776780233561238921144139094179442192151002207532424153751589714921144837975880389688051777180465845898121741394247304248742514111749988891280901256596775838195611760238529375715562671082323635460333783305103179970440331070005871266746518280027476358362170939042445849633166812954182116592232112153200241234912559390632788054981110752882345926873159715794499797801917045152845515342369627600432457222911813253817095966360809202357567300762436265703671908892705184963704258664350237379259340639961864524831760234307804316249543532340031123395625551804377575370519180963104749486594973235137753156217041236650421186726274116437558446629162364171879780562350172847840781715840624636859412590944640503720127055373060844592188077300053518557938931383112663909312877727655396164591057340312530555164755142194091554995782762878886128406854583474774284756802274218429306538044524644649158556834201250386660082980871964310265837656929591605277810770709251301720427071752332568636371075990102705906787357255287418474608691431104844785876381170230416710167482937694027629063084434111536281952954395628659724884258269974807439004710800526792290019402657894630403210546752864050033151436410169255317611313649843153818657543436297825610148449212846322700874470329003182973983536611520547347033353146330186424456766137542462020793027029204748216800836230273433827420233570327973588944574718862089867561084369572655545466720559119149896384505360211413675701794853092072523439448849495812817811580726093829690774288379397773398218721608229943328974408342621916945990537741373574279752845819568166674068309694248280935848717561034216990715226897969870687771630214980367201708153043826175387278714318873514999091323490994178187286742404331286328522470265304665054393433656096432761232303342540065328002747374243823221769004933867202994534430791797607404833336919500085031548474934975442905358665813077038423215051903143773722175014528336513774364902762535031229021409834479818231617667620501831285150194585128453538873095976806820874384170440046337548056444175788314919479223810852869715679805050170278990349966365557034168775173064005369457167485827247834496178133557844075466076028591933231604417236539985174194691977187274237227538572047069296207351132810468872274414560830398579228977540491767869543577862902990128581650862040903519665818299284435943092554216749060346844955597879870508201059381220282502174996627090420839299744853554135082384273394650316795223951081677307011538283211513133446070667622178543656366166722990597577114185203387395062181508823149149961599751111412781268502232277051145633027024531391534791600886070831771879884902789601709259658544550209297457782890694616075291175800944353119956386969052882346173532764050258138169020036295240808503841139604065950972487016667871830499155609906466025024434131122476323568844343160623831046974904186213532213364613762146834271679611722753262196555457619201529818747141507312036047134745158000718088907002706219007676763198894737171133877584409624447554550864111387479375929995459270711751463377807521669218329663858479561122420906608870197257787088502612410049134276645251543095083724696267257859818783033446475837572388215149875098031194943494974039912081658031006272000533732338601647885917030725562848824482370155424667492168396354195644469903879892297670483604522482708780852049924524712216692435280748872288074093186921449015035481694711632105895001808575485880188359928348007907905478308726459288294117408443145223004135180716492216404016624430724714388961360527414197607286828640989775493063227161697358923417498329446240802697123243497764501084080638915390475033234795458269163702855546526111195274548656243162938417017894023030936790756490921314745038961793563015506792241845591520748025487716281197786343906407146999396510969953958446815498203078858993678889654461524674627110091029972346397581450175700512733581146297115260970765270100381354359552112629421077806457697328039330181738147951258838842361695946312170553677547945215385490012245154299156746876986868894556941657942470725331657075666858015417289688835950207102529975626669589630398591654412922982817260382211994837074652239300954358537936540836001371409665667418549750100146708031072386756215021459099443130484174212929868382107090399236892307920064841133530989836189463096876386178934807478813510446915123954314400544014061356108979632695243798222980764043781313426010441327916102319673475156656331096133520719529198987161631642515632712636030260218900191486014851407136397022532573938453610637243347624658580843832062812770943361651058668584635939874603855764924779151815972881610145793402767791537649781960389781623148043565647168899305626252894885423602084658264081626875705059584431474735388817307883005150663525289314225593079716430801444476078297159577539751966998811055895467014772240333969029134674013990575963822900879642779201968841398786915289683957918528067274910554685850747528599805747212564619885865936466522348681978927164837589594111179638219184672708351852091941083565577205826275415690258141851441104218572378126693346175420551072238378130930657438154342792799979728069933180840357019281297642275422671463866770756527615347384206009788659234518036389884541749845468671235830621302787003042533864923936450044094237692679706712786708453733133076910378707897030925334491745349575079139285636400971228543252119554566076950122582007265669744591123143241939282342351546459009138223516663950553524147669005183676750603216924935641814151374097953797710849239889462287416939202848701288100234383273418017082923266541524430530478915544729529482553469351778406992842878047003426625393475866116976010813111112174683179532322608442118296146107125850846375914738975499720680657350057454403189529705788871512002040192247063405585109910997912496244503069082209707366752678014107837744265687972354654278124004324629789818581947356594887434716460930160743135535517802563245924432015695616425446754329226509323812104731592103745342587466844853552278875245653439187995836977069278499264642402978833588633638382953810318357352323348235617561633453115333432206088712717162822976514020998365163109809772412161127385801404310739752378135249424910089304249538912803850964737768816061080135091057657339707799701428545504623519825703523173859051911606757539331790161588170592631747881077388257952567771116903299639845474973962280557333536258290142496370263426638358704861858460811296366432532535757977935392007926231950465526026644444972016248144909806712784043301529346265174461282410946502341756263139798445827804154425650055039764800821907575044289846912515306746789110506777855984764971677161989181098743348966207159105499054064934983090722447023902025582179485598890627606168311866529293366961536710798215523777608893306757461389294759222208084346855116225801369745180585726579971896298711511210377393839892031490791943051627568959856090299566588103202945332945155187937030821113979517951450464643605796607669424272298910549563724719047827777219954617207273920118549845420164479453070441164297284677847414495499595348945783122045443508069346136368672912100502078342076339041290091909937089626256625669810236405210826023145247230481052434519724806288164707102555664990552945461882797620420010359707005150919169355702013826315704922282571553961021922532531756898622950471381295495146523340998767544611853543208666389914718490327342314864528356007247381736534607044790779569938211193227340871028991176461825370658944488724073054190229758357243342373966407333514847915556185614239875377949222027907116452544601969373637297559263960640610853333195189608579261147552981399324012674052913021035848697801383673225051191108950178254601616564106925408733559686318200545948474964278832003425363178587303059975572346854442071673327732744174137486217514967832002144085923017926290519460754595540771461257670189938550474909616216057104790615217467611184277428493418549170684040147166089751674960927494468806168893612066918029078100198288510803750372881536922460767719847777382506608884966526402990380583631791865332912989066795647569313870858112654231680056809976596762885523738302720112282851610305447114353604143797909790259840696209296877958639771959541602888692343835825425928030074688605508532647829816660786621779599059529276580544343217322118101264181449716764081999202440896387845098414634140783779419697866973895096381894911295983936428583891715191329926826499093242967628339800418901240744049300528594662246486976207670268668323315160560164532444051457769711197272388517178291111882512941215333147172935897433476678204532564026575809577155641720110199472196594991572437684446847919101779967923018527670875580113559198442919750298922686056220417969756528276264610385220537117383056524021490596731507860025475610448198305282902881542744602124677345121041764283760070978995296701888209371310847673577969456638062476038400891440210258212412215398492497591224658110926503110714313383614135032009571536176444833125367548868206573046284660587225093672865981186597677109736217088698328069935039491885902391386024575564238748911627124919510952268463066695569883169112767096335996179145602782385493629942937794495873097431561263881550547654982109193628286002644660307321050076939012371864371444120175113861610204258377969187628700770302263571735117508988677742849874390234525346575217788791738873255613123614323030769496389852182372032015672760606467014033198192034686947032163146040669436223753666555491445678851510956573338247465681752440347588705186748984108321362186342823434222209072915336707678729650838736000267346047119664652857228439758015299361136583073347187117877450598314297696794467246961170936488542622915420719640148410800819529583278795848314319242199570495484546858911019151431482126597849529541128527765837909877315255731508380388276351600876311086893934548545248562589498761027267293190353847475716403732561184921537253822897969556421949352511856940362232709838741092624206146914745038684321703965277345204005277158072623390816840991724281755158086110891756464903328197284831684871729529650252601661638232322873830748358565248830954803367397756015099153296335300172256737315341160067901293037245901435677640825036893869524389514932237869461547999480356651944274696681422901488691702644209274409673839364992272566011486076591957181363088867767011386977531078313155193786983809550240653034499696704479327801052526049372898926445426887270617288269548248269444417190422243746689643535692634692755294969965659592106612010211225438881639541468318228814581647320122139869166235600243699973384634782146989702995981045341934411413533992020929504599287651035867655559006378609879170975547887090610583244695134405494236259569008196092096754756487027769019437699971032636204910750827145516535928375685641700671168429293319306361231367244520007160433483964461186467770197121421221922067642123363699857846976691872695420724937767947904373336979686615728180154768774508766865065925593631376603340730792182796925938729370696484237404397162244223073862332414242257277261921661235589814277576402801083954405677838177567194584770879544938378585906279741131306388620383577388180807366883355705093525131301717735595755959267086057613972991160938421221721671740467866976729042646557065499930888819016739462445427864136230750122759554606811501468701019140473060240518312488556197160955109116832028486829102202452020365284788343908947589422275945125841079831237562108430739521641875585292821236584758648060154333628887826375959582290309062858567185182884307834348375814039937732655499975616732763896499273573669853781355714357084973445684884506434354021520404371852283649708733213910669791997475902555042124591542270677843852952262723377033898495945670668757773202016012163534627976265417993616132885369621450286186311105167983438119050642978795924208818720359877369797900146102213713245182505588631680359377109623158257706408819063450742947313843573202436715451604372459457650700143695499068639299532482275522011282386374453722127124757858496843146306958300858510075619527660741065586101548104463493648510596200767024749467191387269291473287983045381151523252933596586975275817203943068044156511393407031166085087587647318103838719044275755103204779699535647070828424166226735348046519470517510007477923877281786638558834855067996858304689179658764995705710888454472726987115888825817403369371854534307276672185555995914321036312079214884027923126245232536982589709740151775375868985893478611098672960422516407673116376645232117532475660376220713178075319264991379712880833008720007060924475231986829419268423143681946436519351707126516345614369106470798015963196754811493839229907939026512823166880843478989222174302716037770327492665504476746948021502150315021755961602060840012407761110369777076818396876572478542851939748050511487476387773002098166353137037176770249798177413819507212247156278387562782715615401575318520216686747861283662895788007532168804400242552791271087975473858059798338727884298867800613379835697672416346254472858273065285837942768402746300154111074523912759239776809959627616589803736833647749905751901540666345582275578194341401682443113809233169768012483256571595744363235262228632785687049434766106656502740303390051786536951746844124793215785155032003952211336194167258093364217457516606162046934453883345854169560858958304065770191663951329752672073888006761871550055163126311263357257581434480570135932249672045991808776429480930290568874440635103140192503189251562875055973224688993464608731828220865630176241764051127585410841992245898533477763833813439834830050287843444825414356211025762235502437600826118516482703817360123051006803216173444472933459404914922753939732186305523945785807493736637912619220736253099727574594082526850446029668202278630330464698968940228797202196813384837952396305740476524658999620915893273048248931619954940378494798808000689576656311320262018724263571133629852132261370205601190991870787159747763311648003149889546777089101344857265922427960759898657463632034248999738834106752451130954316345939083013597216822217109714736673932580596408334332851491935235397287325275198204601906878503598721042011908353937254537371911534411892268539043281881930737019869873848338648298231173614155191253190970526238523592087672801573419463067165809872461448571756643534623052155032076067742824284686163365127541286440623083572932350410568038692605172078308865629991480311075315019023182315591418213999610458917815288776301277715566208561243278749369135132111458949404551147574846242775483285081346651992481955141349939164889759505654156284587336816379766216259751319874941889381996260686746728681868212718553919866423623497689736392204205999910081455219305087228522364687751660830155148147926252621090489366351533779090311363959129836643355566342715919539295135196684866471494896782872465798392784116505276378604034118799986613451320994392159799892583947853066117319856175396475680789008967036931743647830382349797668721065334169063062152114623265543430349262565051081026512869929183592891535640043552048340635504810994568979749399265063469227893142079054273993020763225174288063164868971765047156935092000888093850611039541758356786203241765135142347774193190291135373284266033614810227705933578148189256889004142737305985155765428337658761048404079105098652333995080651100157757975954139994115832905991030036464438197460768164729127183205054000890086151065978896200385307522110148605631458863262104877922013735006158470555322314407439479220860523413465162461564243054232855194266631791626091674748241112624383630467998707103782000683004870860443048916344205190125358539013391608867411976604493670430640660245569830967537695692986607504908591429671611219449972362203325585794098987974055008329712724314408115846189151123013648737664058285093185029933754958523303336288691095008072942647204257916897955166794815530003191758525750418428280066895538488120821230397309711649296981733635609998434930857232516873924565228823114180736157173789663632296324859267299398190750032443759122599738594245332595444380419427911784575459838828759052067205920627581037772529573431413401397153879323622196728730179576101857290133757734158124008754254539047746444811224214004256082548877303857990943008236614069723483958605889857384340878945056702131242966723988053786551795235891205405363248321617820138545470609742261928908186807888008874038319200912112239295141931017341164272658729255365128919516783397399417708936819294203940551944042436507848909339059817232146614880470763921872584775984042497386143244872188993584137964717099601371717582583870355371619640799544943320052208192283974557179242609553900842380946819752441850142646110232960349536010523701964235239030091392863888067391518353999243224023695608074433505886813415167941952739028144114744305387185617896378663965824120906855536533903673621175813599763538687287214482114859414066198159064935363527542639433804267686453482578974982353641299669124181420938317053217389249098516475714672892679660020708885559009165535595236381050223155329135654545810242429272538491247005881374782175993606583512289725539036293168055334327729755416694718390178625428665317991674038440983234403180677825392575333729673334459022318206590855238787606383135850411222434144419701057837952383783920586604495460245963229128857763227356239179846637453247905354000981906838272363206060727924962291738061588649300017697357703205785653569833575022330121291058252109883101833882607942731259514203448215158716560941777644480274525434626178084910467777603868128600739482158518492097863207550228823424254069355343457539585878681549771995035392289461020728815311505119351971931807386049098548496330119108278031869271387559795433588768282486067204278575578416039967341913130813729818829776030021365863885591545325454281681843346856326359943069354893021364576848410177917142551676243147801688874867526586456500521547774364211311095254015641762549687678975562195834245143431504901482604994443619287332672520515202071175039355871301903813940088635110754383681736547661730418561939007053358726503483127795132018642543148951889748934476756401360810192731884101016977843596186794849558726890663080369884533116781863322394680205657346848758984331172930398701522028901733114523780305928131258753122529560524198246077073239362634129465793943469688061285293709729488367722927434631481668221407520291565927406553013444239743227970451120240982876557708257246525604206716256753070858899414230159425864393018136736948864694404033213542409173500882543409139927000754066978955212859320721149449398312141457213946577438550532368181842967978083743259540654676957167512505899321631815812378220303043534311898618707903896182688610276001306680044853524819973620653508140518084586022530120826894993659569893972347164855454172576850921434184798171520761794132049167314945285047434379755627828364405058030694913459787581103219640908302257488394261841283705947159636239710961313882450757565918016797974486454890906736984485270178430707781641915368910460071589606228566890748414388988363157985494339338512729424291520420224126170871348635056246326124195558062079617241400682256390425688346769610370436148586955157362722674453184859146901443840730318363462470499234661281919815197526361088143645746298697115214980859546706343753770339511173690583810216548922172930126416345965858249598154493089236152151082717944670239177582670315821115572466090480288647564669642559258470728870195957629109986043888834063620972803294309238037099302345753581823591114463477107211805012377057738761874641386990600693402518683682654172003084890200379596703710716910394305398983478670399998584654941127288421940987849120574058599983628797708130153250968917919168242149373445168718282206888082061673457259153159339359359467383620732844961992799563392412214244312314679693975980829994316114361386088969187678148845043080452801866858237565681539164748194134212745378504910762985851437271827732895486982099489377249371012908923764482855271551501286713275030544597537262987849412357084091328245293265905707473970285716005546115086803786916290953777734740029523896044493974513342513341573169697659491317734892281284447118540608182708169152079663530110489273991802671612603743119775703424366256774594694862515543349659287635753763167130114844144476414248232463060119565702071525209406017647508704781570164571187773873046252687008724138135403956294036525206304130863404365183391925248419685588738510267444710033095640997151899533506511368928416757100908188063661829326098137575426391587386167913084987489163298376240399947547738377025739367694897592473649652889217241543371899810404640928200573117748059952474280763339284107853982747641288181376986849455933581907814640009210750065865326298073377970881595227825300149631409782375730864673265007241474813995136195031423383303301746903175093832893607118148549681412892061966676734262977933557948610379498787931523308364431215342676683684046717535994604010925084323220993903930322815090700744151617306886844005134115808100132188518963613719587701339427696548861346198822285004721342995898223789055936961683958698104323414804433963070261751898526472538066178394053995048516276737051919210524563965378804196046850654492972752309675156911424373597878442139992793797768903745548219706626439940839234180343601333851100396763977512844574879585485524404768895851813664435830267475704523554325813486191068316861987803438320422898768843197936909770586227263447875177218397446462869466959660859841218015030261589262733220402915198510109953775420463681062131632638944557842800222250380712822972176967511014530176081740688339391900771045974180900112753583056025416427517692699403423819074810330495369838886474083328956604152889755699427164322388417360694495599821655059723356374788464020952414480365694362103842281646814637119260722769975725166103843265634137995855168767142602113865110355354345497133743929514951883953501532299421681947512691953272742831329400945194159066263285980094325414613238059095062245911157309146712627296974421519013452842426843218666760790762499400956405192002552623182154502518409091759937649782869953292948717606637830492650074964421491636421352110777738462869620969220225449852096803509940052385166628193561116489954982566088654949099581917222275285449195345680093891517834240194777858748013607880721504137489681926250843675125569616574805811330066322422292591155058979820574404923234686612501589705969658443197125778756925786051732096371113641792650878554099342765240973802497151842101542873651690114422254169244449596806653128028796956737989817058714285757958699553645756246090574004803777726802141048644802048737738108393029600260818107079949175107792326917548023550580321737305055542320031831060916158809298969473534516764967353818165047556056688834831619081447639374803686984513396783578064819270731458822420676991114433531287356076385966985265961386513268242232973146585104636954202404968949815961312686928343276728698365071859150761124176901097578061519903646234268187723250338250269692701695575772307140064965039636459332919934591265727506166258001580992171589047314134157739701315716338940125896505199299302502989948443896517666046727579384014959104147262758816044078214695980677308405662123481028307940301513920049552815855123339549107095416833457933784700575524638912410223559388023958922261018607082876889766532283107745517508368794557827222522487944049611756497603037777896501574009940583477031242235521396760003611541743536213095029668337516781331850053450395351061438408903993437836648893331119632663506870301928282548813469719231863570944329376455120623805312891638867208796750325329362565167036009319405073523200842428081239118041426783289747778845144200000408599742044354954248325255584518402608192295043781824946518293678592797007804671170616506944115272415480288965908529399032242761386963224749055553401143600623576667122111662292112862224516634501940954914150274029278802995392599723229334954418936000439223955075624816627196964082268872136068024430533127267649085549362716207279938059959867160293662719954064924995484986853699535888181702778234364837892139342222327056155913803703560946328826678595350691573135373300928072950873899767928584123447118360079956997484440349388751964098542017718897572722009347662364116177528322588503454784404210040077537920885958363711137811444866284368858054352345760590963974691258143975386678747793690855259897441664148924312085741060557015004706036888512262898983297731640222693372513733858784431360889178027530117683383645786558148449413634037428641933081194102590474999228713938175336250784084850994257841947785866997320621365955192969756814252388122199825123557291202197832494974700369788453638005698927313263742269936671139241201354329181266520350804641437269200570464334114786743971504926764436208450890268454227219447662773731520530078298253410201052123849063121641546761922949651148304522621441117943619350012441825231028551953929805154996820061172874466916112347095652696565473586362970139141122879970939045987551385427196486141226293404350077918548362871946226688862075246531037674820197708912536031657717437746226571997374045528496579393010394856238617352614232468113079025828913029932302744782896987358925033567873295637425476024503974920329801504223397179020617866685906957894325602938887994482206016442288241070282721715289892141260270659477273562258698666287408589542137275265912269459107576256089209329479932210069547819083804299783454237771288724192414206792789425572510556059543963836951823268001914467827058492270899969517402739384591769299056557420806510211498068945620487462645194563216820788323875766266668990938483789357006708212109691860000276169061148328010105154459234798171606496931498171954007517210592895546725653309488457366175978675232051228515527209739731970323924034620595570861304850434083694076142594208452422215861701793825692795382645148848975731214854139726919713286392332959658126084621245074082353655081439334402126287978501517225160194338115338584962173589603158931982895008137783679627401370201015462908513202014594158247344029158221673025972976569038218169208137061238093819839830086007978174185411070819746229420057623418700486737883742781299703171285689786418147394351457397532260792483537740272229628986858084487091638382270134955735217577968199973507075724400135575078996897330656314341357672698848618482825661340160561718555918492567466414517879289748697215388418401474204674997493109474204087729043599926104969072416879816049190986489827731685329710900782863711701364479862383183081181074379328295922941687118093307125894514051561242840854954094179677321250161158801991165343637575793784861055539843555434230139082425925609539054710772697350541105093340869149677518257625010490433129182985531820577343632745528946470319748334086101898543348821678507529250158593074052308915958749528862898721825675672145636756264275938767500572613420161296394928945800693222921817946868047393362075479758812780126262685323525376417715331323102024192497494687851693070385617426133379505401305845979637450048468845446710829970016835445870607449334682410937235540360973868936486006614336625154584601807181498931804997876544460744666599765356111657863790960131521092500861672347472519632793905748025633946572093601778033068119321873584760813741803870252386771615354191630102511649844233910936084295817931655424905693750118934033090947317839622621716520821990517323661856195699066791291076955568516533859408569091059622819981622049889523554558028927308293596792672129551661974295975654335870862199886697900972893446992501700600641851039593571619800418529610301339225432761347457807117779267783407189567382538151787551444603052105132752490311309151120345126153935890101623688779571384194105669993830066796096494543114531129564188981043717685198100820913795885494920937259319290061301159408822531478022035363115746413598954955651522070227666117409349096807559260871501342090852055771142365361819230008816598833879156805738407895282125674395600297837853304238795505151929670846589712075445483691406279043556071312339307274428234520993226355395089180908055166286089216811047822908229474750149263045156377368322655178068987218210206688343453624105170449969219470497723140355098575876562551076798430780362833984983257120295972468162760313484470037411886447532957396577649095377251890754026366763658217958594154627918312594573965561493986260589104574982628714851694142182443475112067767250137619000222957863522767984225282446129317027680971161960029908624586449936949508266283184353008739937768352924610602478772391212020437972213681769350542112538570132100363630048154240379548746623749353738017386130138651264834112407258369395541034800987263693879200585413724237195380471593294201391183327938094646869699036794641640009360243296750271352529709327372017045758082238444063036296162551521141288851127898721596558022944920501901212525186011528198894069348623713025181895839911490775677636453332077988154606005767859504118803923336449581911829917469631726893655195717945132705571962817682761802934478689626144561641444133914067204921151147863433908077043961029440193368425440360121611934249840779039448850799267332202491646593630514775699794776285047651273356303646905794100656267715128735996658966989988763214567779455378110299822879727987444823471088960820157476926105482194961714807091487040804780816672839878110533316382022214874102089363134555720744094899434913813468934719022983358144030494824788869834979115957123221610155889873312202382934828954033683270099811675818642705996882594510821812836934134393834550059085152720890030148505920928746252273998952289262034571592681884381068932427374775460533540251791461278473118152187557729819511411275400196284414080723929054700977273999680284333074032548111929693841865562809625795856315089392717113594085414705235763970636705959146301771564828324605996799426157687775612343600984494134715415541427813775646945146480792275891857999269058682973171733144798160086444749387959973975323739932146897731597694926338767927823388928944916080390507585100837489177662413551816769837059213526562911546426666501119196497195044843562434060314218390275192335283579307342790966298798767022141939261867741237005376395104609750106471441948490014709200551573919062876084368843921540512236071563536871624412148944093454480145688435880299221305571753534491438344908216286866233623245866523795633617298883700216051461967113236242629511900817093326797576408258153019053073011562033115811302424818086375103580619557602002920822089781492663338265843382187991955026950461079799929286691338931277279171514509901952626578084127810989908434543356550103537045216438568587907369307806944658869820350363380125889704937005544666377011420722693493687028825217639381859689445406918932809858702848584669027230259688736699444184271640901092118511402777579479998830610491573503267255511353951791204216154657249360225075526903557816169044430419391064286051278206055830578931524261658214175348148931630090196101237618267667963972453714031515429186181250719305710730422950944584121846885041976069171687479242610971748908223657794237863576902270597347616767931087793839672293769863512339810969213260780276836760846283644164975180028780499675623648972051495033790741702090698712360052620182180389364857135879484049351885498351543545624900113107694750737725852475461166660489551342811369468349730389811165190341038468540381064394302885034512029841111439443655004108430597302068017953626108117242573110520514654897607368756511998786814966391713161404025243611502696690240390825901551793973160840347243780001407615310011108813031958733698990279529115688857041077369989234408405911493177621761818970116247572470688448673704029056742164857553625615745815058981241464139244218718869816958166374586794157788670052651427320474410768652078413862898930918500710296642741955123252680759224841037205208890712034320855846213715513765381054661234854323201197017251686765921028275062990940981390807811644242768739274031983530388906346449432529711682215191105618357276677614479752673837632853543093415298666844246705499675981283970840199943656635047326870281171575120689218547850002068695998824747379291616064480928552508990195930266603913159863252562362502937674976787495403101338914165408157247520006870846372679978249971010911742272130481127921012322457461092036102684761432993097532602062532715028510385746235874279191759437819617591638397375439186195048102114861581778208898990513588968547304680609557616245876726846721784006569979612566723073546381645635884327570199166939815726971318786325274665023321721791392897370894099122209183527058018736959097450261807866307182319699952473654655741607323889550330166969466390502779848839088846648904999275164212694532598425593243275827519314330073809426235492751924884136607955573986488356797449058787791249355642166538015735474919527148991280042097839494896383395591929130861737027379684647880385209645246728470902796260360117858962045730203478116635438208183282361438590256095250833490227204385737039294751442725510883630675844583653056044533064773433836095710588678498139207952491888856462485714874442883019022488171326356313869557931491599924273360189389724329002454146021468319408605037541435836650195170215344837262787962227411380870780212705163216138179060046155099125991921889902710306126145566914758448748944088778170891567376226433747867488010567688527968030171759246547609788391408130919330764059370233190020240567986930236164879256817864596158334721346394668857856127857174761769709971309525573672506342257982457362168687334497163782348935248476170087315887674303392198779470233621910503117069221950046064577358122169977650240914526071945820954521979000296325667999435340328225022793268600292496935448896003743463670545514436198355547144017737462809507642969712541343667327167488561207924327592043860128899326548454228329328020154059870442997701130121122112035443212781052751018238358257600362824086603695855927812507700034282357921334112924953270439973929324139465984434357942806044478296860305914727380071122140779980736608806695718277903610966117003922975982504344170575649026105221462354191982896755467125641146598445540088593963273392714448847169466853445496623625156016299931944371962391399605066556681493955159958156403987073646355639739834824315986351690759296226459554526479995272052257550161982670362639987343650526022920236157416803114093749473304232928705463901944581588301610661651792332469210324039048937712957358216244385232266884418896295181798033940096988997262207600584705911279371898138838037411746288937777504034286936586216793207870942861011719796675280624233716596100899286014975953602375966352670006722516676539057181032628649801753366747987226017424978732358861625664369098500272713361167100282599742084816185929464673743852737588748230664940549524418939036955794761424919914177540555615337457976301600254188089400643097794638636474887487296160615017377404940524795972306935902699225142159026973058479612578513080900979611073941863235748504929427573933512296128623424303065551037308257545866970142977633253195605804712278323628811444183379351799916120227305317506877022677358199549168481851615948593141316092208109246043603071607476016021263511928679244435237316820687378564086077192685490878829273514338751524575320084166515408485795189141253742246915029365433895267810309806705033253572664310346696593447582496190995370935210102525305700439639408414385890908712741197676074312580039211891865448024362585114734699253904520550348503747695881276181444075896965821228367515012926295500530509526369255240125477651210901171980205440165754329795436615648366842249013578995280285856627508857872540927958183728259747077503391761529845868966243760933631321885148585426019561381252430853355080414450241424055506230852998868861470834657132247334008182947335648641247935983025081207085957036697843783983108971857202772539430433090085771421396569175668233451955055186947982807399999992611767537426335600322492044422684960510519906524998619943405930106753572230922562017969272243969357223242847303381307603998619461570892768112239273185932842675516234180212808670992802086535816734866842370990564624735814750009852127709382639922246279175271875201606401421182640602418418541054511035149835312344737027553715264939114373691755705626027771214241675103983336227674952129826601188423186289882983504701589387378711004892129332110338727708584983588786870390499986395417084430411267452537117908305102367097950351015764988151344994389733536604870947982131185817127753761860432923206431341018165398431571687081189190490828261049514328712464819819156880894135073836766691793692259807092686213381276159866418516399877369915480043676803005158388741379594016547877108802865129941402235116305618559668079063469868622173833063156056587724465254121253354389217365370422711164692690215896406126633353904247860109773335024584038692882843159956727655136484574186954123794015130520618897158977112260450311771646970644358126417467773608146455819051175232771361729650773617494198705443849331359852086988729127846107624426476321212570220289030904702805576198444162275906816371334152739264846567845965293683841664215319238644448239599088256388631324762607077073026253685352954474610545881425926966913210167883429194291882346305427525917046810363027493864485746979256194968231088378120354898301139468385096024972604072822390142843326935274806931218369572084790712571743393334165779456777698225355726618069076850191011054389368005409389448841025407103646672783957996601166826763544455714657800369124000546417620602746390735409013615271866632735215394987130171337340629344952904464613985070262312897969295933596618702293685990041397779379021358114492305167497169592046578297148152872120622634295167357344965438749673271097864844827268099037086383013648442718586254279452142436635191454915501465086210662039165412771773256110966665795616924694665935634753698945914633145301194193188271457198771343132424206573300021522396044710931732146739606466352633324684300598995727501326611004512244732775736455369172758891314567285456307916347272718650189035585495660677304686603793355118254325644567510846109713570449091403598719136634619583203097826079966534141059580726558850758951702324884487631366479800715339068406930354460480582982173388036295482603594837220446122512840612204984291209733216242238084924877046089720658406512232487932392985694062742946943135664127248847779376573092361626744092833435296712448483227638102134019261440319646902885547594039205375129540104630155370289453960800057651189546018900531516984417179756529518620816533652535305110124909221365943357871943433203102580106045059107813314240735883088580777928149345377203452426694785148250307371101721296102513488463129691919304674998128570128889305132377068960938505701102284251174999015142561534505642138445072622884011225762787749979932894093849059590202437714580085708642521367372715600381810430249827422436834764708920786251642594662623971209511593551753477838863735475895399231043245163034611620932180052672459043140638231176595817400343365311799521079712777641639063267127118231583778874910759267134093855612575923751469720374354590280199907024020071771578846185527182540870049492367088981695170550956560591570748465298805919201268566303851585435621069536790830363786671197235477689101234841741883615354407133152280064438507724524146717070841147571871874337242135461826886544379487189680261683133768755033746809484925547240084707718319526577601975918545786949863978205395736350099926191854443322998008056501361410195190358229561348820998565661593655273949147131633756902514565766005437638675429995041773475552335674781534954693139579755915100242379478447124454446839633512759769459570822933899334375350146453323887161932410246938455214810869437338473501496647235386817895134556311856604986501711969117753929784627803787281374028275780597580382037687868083664380188069535060880557684526713737652731360210178057783641007479785538871647645569836177043064061895591774637229736810326788342524383933794979928214988891645701851284583895891458211436140342464255442143734115370262633818424821337144064138180821385061804095828737892092929322756556322182026381564123336933951002737560842399398344619000113885411365820462235661529885732718335684861109908195041708794846427313345138592454722673211606201461004646864422063376047175608002229859456110389849982886801284212268593889532218244840585499087198625837235585485432539889682667358589072244608880760756723878615742590663668535183990702882625734119905800108910725953064002795500618511723572176692307918003805056460988284552308793424379335606408276643967435799393641260456133369746275596284356862649294010238309647511488399170668734726104682970365937924456720423455062181964386734562887458133048117710389414626478433062139494831626499117275208912224382829365718422218891930613520746963844322880339082825591363435362079131850372426196175770047958739537270495165720493101484775354005181457034580861353466998740959008270014752452350356519988390009268149134029467590109124908955035695584285774952179686460124625966619206983884895580254638942754633045042367976269658688772680837428665444248595608796849607723096739804072926111101615395926330352994841663932277888124952488606941115478779856489979591285993983594262217852685538106915532668341549926919565763028283211768349218163613851127801776894766209951958097247525869777056119754177937262175384167854317651295244154829009211819185820257804768047888626056331818296445507183189707153929109029795592819103111023379697002237132031953604574609768839852261628733238738673344718200033284084925065127421278090520675471354243527600545595285645196494975848315597229219637176355285066769080822474908096229643823516871651634291113950590738168480405089092314690853584336582937995827074424962293065984277922233994216062280981460059709664620323355808427170771071489800135744777629473618324933770671544895477305647568971540533358143845196024264519167419847769620205833750697852280390622329281750353898038387746959073097258754794587157282958687491920424449068246739390968089349888631024577664004454255219482865621346671569099234110295804025826726971235070538414164878633914178386606691538259052195427351760394978981703814957931323816694529147375433111767084752209897498688706822616582131622255361234552656610116810204346749508566110749516185504023675021093832480914562758927190348322795902929553154190335071717658428046190540511276947369690722731197750831628856722684081381356845801192455863124984268844681750419869010567727542006769459296376948675064455423679715815093149073248193375937791001380920710520784121097850059079464492498290102201431927894675594999752038236321288548970957173517305737241457998075872634213925718396907248161913109686986219617649980474858082332503824049316532933488529865791271440431740590245656649477917485527360991255143010499749545611703810327630678967536534762030004925181624299826868444813825298149789569029105442888479283740026862654325913572196257407338076073732096228195488508485413268425699626311434769716408666107072956835111668410601293460380104131874626516035396430164549456773810243361014304492833175723496814359125951613469934186343514013889641709245535897335739477041159242390536220568824134546741449960421367256876927970356657681256323922871744849623347996098506818536841226078847981754615461170843175581449478431492049441034564454621578141875985890413497105225400493696061488357029819986104841739439476448978316668591797974438583337985606821205827138404071893100318870446066269162501298017923931405847110455603850892595891976677332872792613604930892797606819933698183632753841145624650250985306115189619760335685685798443914523996920860212814601827740408205823775942198458679681843903842675751388478063558999520261638982268202740297167424995442347430696118432610443471830901063212098018427796185823394545588543081628547607531781866978914205487631128190758872237351216611837585954905536453658280832812836271673647538016806542500694428816553984248136851139914130258032047601146899667194439137228256492557196215134949371322199332557093941385065393902302666554934761976915686702844321545470965946937758147109429240158156119454231006425136303714482722982332048342780538053652041864018778515322263209588447579562390451257225137797093220178915800023328719236751170958262909987698643168549267653733337743727956538392802530946548251946968673926769022887491681130715757460305492336068789576739536963605411974091243288595413682761130779867581900644831361369375353516733706414772728150613425384063847535990414063564591472122362828122764564739617830261327171333880749600867105886293605455696376416834590641131546355883008737100254193913872550554714377445217064128933060622940398075117200902445506686757782259560462044182060323307946663892745753045329035567180869398003318457037627172838364455259913716031733326206088746398720087504681259822661463845626718949750083121532286342461640775910502285093636961950078842669915147857694763685995283974846620658576315503669243780031973492060449798425424193634063935585989440637041785790887980109625984086770201609599300117320875385804844717239087779018141108005628635510423172357694842303802093073897838733650280777210346173021611360041257050592765789451616820062974686751777960821791147902853690364660646338191088349047220207691454695350808720060350137647716310430680958054108890290007751597088415984065967625013114610363120448330119022653362797569554130527084958561561075348998036416802146988365737626522506486376660703346092870629170881438918670485677858764647058905781676514861764176869662159353089141235911963068958176676515673269106891249023080652782281979281894578374897890583073988900018759382817503920838366327550314811198223128027546778325537752442022225687005968988971621469990513924718084821686358862933592172569306459710634019214809450047937688561065773376944060570111221961927092255577398349960577202737171157741819045245845606238852939612429731637824360526019247501082838072943247373087123013421583421527980466872324398174095589053772338450492091750091948641233039067177856886844261063490463747581843931276038478303720075653975018284468685854325365265352410415202979844911838918494071040626682554585270754322339187198720010963699994688008154288856917117505028969838669886418436220696205304664908976222342474646034216160506211759210229403819646149829937717822179825817455587248913041588596934877978640325047074518115511660525593208248298489200215013945412554493730940324314512099429813669105194964463365503887356645463531728688585443557657466102603528380922829713113412214223951736008233502837827745916887872763840021226730390341257576617480501818284106101315095653707973139846982226427246051325021712223292926031186620831705034704493159914051244425686991595015792504996879032070540185032311730912931661686648960938339523916402131202810501193149708508219121255972796784929374099801269048864985129283213311767242878605079560026049419617990848577034549090908266537483771710892513535580112225604300199850588227348127926106334177404290371313934597959614733556829972851205340939022911982098911826674781188883038603651524039636509821222372313334457891300749761022816633997131696752575495764328209427414549150406926358743160924617759868958712702809551025426261167556844252496156859650610060119765555279516156563358192671524958459727165964466704993174827192149870822525587787007451381200056237434371017252318540028583555341300820517318570091742882506063445543824228554606061050634889950639991886722186508043964829167300073568101722328879711401597215515003655872767946558094798800030616438039232585888811673176750775188644681392131827517513253480442044707998663423981860982476802395821328078540034554864561566737432483046322279988307020258778646015385305955691057070074720473034676098101519040003056364736467972592681711945627067176382530976376176321390851843445839310442181664348030369529689371441575204458915904653060803627947988541085176082484976424506419654935565660379638479026992611768264900958004812969263279876841269591942690531659195350348801692911966494110747096986522551012844199099106130696209386878487663820943722777956479909628592088838954357028829812084701643434874694573416698551705213930831823740793637644288608303406037605112745568917092408895584540882746114291055641503224441639730719711344739597762651063692866134631166522825469127968287347838426493576880290718442364661977264943248294301054432783771498755372019736811767573438793320664932793378825077021656739466249581706949553452102488198261059725314794776022309797892154698748589679747653906534233554571392651173114309233374069261221020545066093246036453427808173989453085307965142019096984723801943119179668658559382507980377338381325924514422618559328296459273812237333671556178605413171781488116351356017349131570250232462971763246853331378061209268473913814467223712903059534270998309893568786566797968037890492824472970586411309716577284025020893852850326135249810678293216188850109797419640225444407565690098790446042763554366357788350297867998377885212151249141076841057814051402319384085098398006458963431804836195503262077908934437010166545381879844303858810165677658626837417017072772921126312376855699251390578484093467695374814031056430739806999386508736891264720304162175423857783509562070120731992041920354959845234514337813399434783322005055346795916995184890310933082139380198217710983485294980894172862308433824144684857182397937741966297212077191421908456053214600417751362263944714467237987197870983077341751215689141554084583414147226238981240528256568602890738728422993110533912519701120838972986377058760082307590045194645093213967809919728153651115126822948497089829469846542257023066281818378796060226687134177792446591092661319154047170537401784364706022730286456810061934707812748384042981992240037874018543605450152077794251692620100912115330219924794756735633382081134522363869452469692991446414929003642414137114198360551010193177344769929961849071437877894032371790104721814500664916899989187651483815040017041015384437001452735775498225893737228234384377398114089151542495707465640323712006003622318574471949938774644020222608997706453852240279142277233831108835895573585915908048134642424200689709223266703435357446347511292198203393572764484037784075579703556300795197674826122052117080173617632791572771557178817197159504650634781444995065476693491813856365433019339561004643306009318884587251262069951125522504766744663631854500447777544270844502803501499276284775802262296082410986591649628521467928157923230908169120188813357956660279098214536659563318793863265599983851306228633937367801601014144265413321136253215384874262584141871289408335041062756239379051144859932147038277790701376324090193174531126378380854232855245879565791078377062746205050017668295213288627063986770412277729667892502448669427599942091327276400195468453298864147639496740481221381865055544391217060115878753849769947094157962487007544415849037630775711267696490088173764404153646079438987736849921033713258897153996820273003688209496659426019193047517517015514420266605234368091292658263087023606342005298742272015458804892538613882895907322587826473692182869144460623516761698143904689939398159168817497943441577556963377650754650618338839626725248448958646639943232763264636301929399826635428396022906781267658306214042640566616488656830518514198487221001327496595632977130806497380151854567498793874020286985719931687851093023909641695302890474668438580099649255256254010935536636339440121136023927911953834221280527511199139804412119868332458459068538446118374479813115586760635293787984021725049962273190355685277613051727216190886210765470049663807543319015411475817892868612596892203649865236230652586337575338304873218073673024420907050340431270253147267240927131690669990717548386692883160715302246490250842668934190554475054977518800524118934630528098535579089551956761553044086538416257889620968534953256865167622550603562502030842996428292724796372542974789170524611767622268223379362025446013265958059655783020430057181328338769014030578981637362204701723755773504745246635063792485200986393176969487386341645175443001042430818501542575852264271863271623581229743720510794175675909396696847648059079693208834603326712407654708892190429357015387236080221409305016325042495304111950894541114125890225288942394306936610054378142703965791860266330282766497684741086159097429553518630570086582701355287925679579176923032234615663535172819914542673314488425872765721678895344883640645745214396628637805248781031662547848622886928328838031800815604019146188434724552024064580650202262096725446138325187233148616904493947282597231956830968468013138197937390531085069338687038338453784277726414158893001044224034740349458169552755300273109372310292971336881517305167787174231493632691661803346490489892334230029917251901365179582318480948907474934484789468344731307769622237291043648689759707699635274031009158405872098290693510979797940676034756643928201495225877051513148991684058148265228700623722711794492718915288939764084373650041960810709271008321327571668629574682138001785400998428047066149607146811929015901624632712045841241258005625047260919764582687191298774302639255084464328448104064008401104719553176059833757901610665697100818248170879869425269854002250256972614253013086942415443031264246196632828720571200567436695287670920900938069330305957616346716602675260577899637711480146101140208968680137439751204391263747744182490789082288840297340897596296902753880852038308576005951273470495312817699737521885499557527900709269019731890955846346856652986834422398659716424391954585666332109492447448988355910320497208791805469072041378477074422140627363949656350355817327035702524330873711109235519942955228702005048238912424634999887507793667165704771761289392926203074091982525484177826758575397343487054929352957670699303743180151306999507550950046851008078209965645785094457392494846602498226850308531889636129975734414658233927619865214957247680361769145202063660015115616763721378599829357609052796249787855970092425853916072496969599261070718201186579902186340568810698016931737340410643086422440521119052722116774811949841283780008042894542004144592132349979239955222765586659829436896272720410479026480968689588100638079046708608998034015294394899503354556573082077699958440893777349816817562811739201744102967938869831598538756343293303727778976786751184496683017193814851334750867168415152602964623488513735976172438827823381593302272560647573426637755633057223033346553537785929156589881244365780782752361683679822156584210417963612089892461203370719886514777420235734617319240190998538974516402348663777896965447304683364725342383415028209144301092550774310990137735904408857265251581602497251448934174679849497007651985123110439987846342119236600273119132315193908605802095305672188616411208934227414026716303977883708994476937740337158996596807764275020616175089082387035539353872985776319214652368994977068781996687934847028069398419113547512436288941135611039542070575037678557316779921199472277400844952385236248019773839772217516378291385474189250391163722432100700675085363269050537183242170804239000423779791937095850651734788419501991640045114450265507673385131761496528988253264036302116134893702326076009847108039716374661799910823652049857769418787282527289554922560629323763883293094979725283100791839215050064532913641771423836573470864509434644902801549062735030527410326557198908475694488539127344072700240088213264369823132977683584479669707074410524008526432531674826288289659898927927636734785840253368131328624957677386264527498748560867416261010611729505557238155734221673028683710731988335011781933216705909612581338044554575309040090587375563112116212145406245613529109048185522894084337522310062656717812733514002905138792040166814742169867439351280595823836582518343294099117590913369091032026554126458499409148722966822927673723230046312101883654712651018777858359180042800314982832843295232718462981238535416454847251402909087157146219463780005757361090359088335591906592011223775605178676693966733594360236232382720879135443119746510246225367982197116207843961570247570013101231817790263779907388038954166391380984651993479598286598774228234113331607389222578159639428797157973874694519114566470437220536810160846620189357764254198603508400246839873965921394136483443527815009919514847811389951830524159248953026118907768433504346554301041792134913274973870159279176869179234961372483458973524991071327959659599510796202735841296017161240304620318440288357766094943454475013305328066133722877274439175408240316333814984992523473677747759154580424028703304157843325459004355821398132318922214288929144960512961803251512341516951342700212229085978861387611806479533129913906206321013861402066068611440641309669833974715871877983577773899373689411494617400562518405363830459569759875678270397710933538410913124643393592061561310532082566247069649075692826014336566103819286991244780012741472351495535614154403640864486064277657824632402420317215690088998932261645955059459690777567121699686092660701689999807357442738272853790936355499942834013119464096309049028799856298784730797049081132479779490037344110660569893970800539062054052028425346718415116047415677294633515156354449509301793092444364681998180580354800993109938667556977264342347871333821830541095728574500772949440015834469633399491604083595336974496409242325098345294266742809313275671565740446682850744849536287945266034456085047989496255914638350318432859021181063028277598220421137510395936611222203905079251625009306831360891147526725516406866263835816720492138326770729261882007933474388619549985980689295329217708063627753976985206417954156015857080843109620139612579997586951197293033586581459935409359777752011866891340428582903977405463505990981196554230820102554668245350812269575949777898352536890560542202177582707007971010574456676536170760714161808183144438751452129639265167561807287995469494358222301723297538675433905953001958635912080655777544757523094216103773014971461780444073863154634741805971522836417649890099030131995821836979219222911111484296567790520758295457705090991190953311619947681295478720659106702342371783787874561245232658836803873946563429067569515336046601943501733430806441715290790497465010054836416021414915090805137958118887388799870694109499501237123618518062158803909842975879236330104853377153054605524100082306555667728210940431571776793020718583396744709366958948579461236802038505170918806339849557265578065981262109659156017313766050936703025606981460108024124905145435967779434027210621282795829649033280263535402221638012239507265741314169568237400520089495057766885334812996884122426377903876796447975928608147268499147016540195730182657558863146705767957822337574151638730341565743052579813685539784983129060914589248749791370535338808981354972484915745273270349116055878742190452233623968949832093152109421921571492233748939070431266291639069186427879762603910415732685589272494044107542369183629057699953415775349943356284471487796598524011536572631901202044579615887731202438318785168727979192227446331651330322159679701494933566129427608119250149543483246836093995285628206811047358793976569348420274558473371574703704047269532132873267514440998790971124761448461118814567432305082172562405619953518885800408679563056481642086378789395364445455300852102560568710326590998579016048320170845027466722853705820840503733237750930102678933197488381219075695255935419863247230994002791200244737557994839526284897536885044914167824946755430764464467110104755015114656052034718580943174625990153556845846474467258299413917746105959983556546409103535051882408266522570776666444090202032661601427243084937014193577153177327138848153945847752964150340294237900767850443037092048834808090921172633900342595265956711967221096304604066714246934828258861348291013632319592837324937851113229044485230504783666605129076329826639584397581023287554633101180887896742894996071689195888155979904671549474739769765146025864814381209281729235589013954503630507776777761429609992259728161368608194084982256525682326389391736351857892751969821869389424184820550396073433318053134507796359310875643397287084696322083517214265139849475492842975378383437753163527788320591136609384196219085845362567360512280854406861028247314115304756105712999317510237974987211671765082717734602463887620518568141411063351354150842997619576182296020840528858978293338406604625433987402594723365856118058652329386704113827343670073912336215790984359196070005338113504897844710034422155361314163345151215799906303838123613605892195064830081870768900390055455435533801149056331543866793601445832343485568090054732105539415777890193241849351642651863841194274615043243204406660271264594909312650164957089615307579420611394728290305583268662034912246688194069572955214336426119762776045670681954865793698971124111887451404736118511922557214834533600044486219966101235349943038622227754321286484583416504002692499033221450340544793934947317488868387846503984941377248990377606856273436817960730997909656656696197561457495126311205187107550877669515569109900354226474284935873409079244600346382820868546903064735411484678716867634254317610658554236672712616367615052715043959765198710892395133826385938519410951825440946768742318303493814732444011818194000571090487881022632074966793377320373158202845533942315633247509840799048366776562536553752092912642026274735508049572206157343845219850946273376826906988621497650869870340238073322844183828582675273863580528354304350294751616807660988684775056550717951274988147413401561895431438288960002641278268558189683990154956197808121977947631408303222516490774107380748797135321804114536458325802808200366007478489455756992197802345791316003588594977098857003774004698260867207792916094073069432684106492134845533048833667179750332491470667879950957525280838390044576882713388979063482169589236674149578802262349220575498700662706760316050586378886593706820198278184710263901250875407863310355728058225193492674814734736646332540799458495459958995170046472447856049454211090668475357804655407454564167387906408094429461753546987579832261473106606851706703841215679587381238486554229064912099825247844686952343631597418936258111358566243262602213844153511386127012217966253662439802203286101812228214341116136845856603430068761006165124040336770066203254932876145197671145763761084848798237074614404795606626924603599063838236360850724919412477474726857202744105613191138368168395125353318159387980158031935012205378327595721369406750743760209243777662170570277999411853614458221406074408293729080653095695073637674581436207604749447132573991458129413036217871148449320146474186974881035261865887323219020268233463456303544134524974189837564790229721006017279605717113524931540548181501603107912733193238951022707709895621133967192745325080186148620627475066458833797299589397130812618438651015399929444678164856931708260711625650358789593035589515712136449000441361536174385409767372585482461470507264475672918993155776858561385677094475751023220911660412378289509682698044651130623020666967349221990048115355065079806608893863684486441305665664528275026150752295972490268141158027948825772852584202587403854639907115642444254897284643103500508937912768254886882153348900541461945348146097720335767670023928857052243057160576973762161501391986297372339671925232487401723240116276224592334440412886489831849604771207737432898854225712547863360631062072349184932968982217105047956121040300834828069042062748952236135011920071300062802769862225209680958240839644509220134704809092689832430448400277852322408570480081491206294029446466305407735333859984548378593293187681770485399785910962836090360791562663780348925663295949555854999273028651949625387015799037225084305167683433913642895666212684782926470825447155692280259245935830514512779109691339597144435966739858113011957404243166893909156408319289575678198414329611200179817435211596381905914521948346177102733669810908465092352679714302895993291021928481894198323388051383827993128230814653708102850381450701876547614500312455400950506886639930014517410064699716790468257061648186215725700899363723532165999335537377965010247879045139126488661716741037086185066661953563888069174087650350711857295622845759510224051190671250870319707243285516113643831267491750548616157926102035557373005042085266398953098687445573244877175335299108186579084440674839113300984505103734171201375074672695951710529276964984369966489167299379681486997093653235486201519036078741640531546662315001971167882333375285677235366577783165802353882946153623024209640096066602895829236974790357893849183040144919409904686357330563801620989827411570359773155389334402528971391059407049650141312636306308712608866693908111526717996129460700958145218517294706701934841406556618075452165128381957876418298136978089126523526202384230882091288287679355176485382561066721913150643059265615062335005931547391349378565263819710408076139164668582147866179952713015366234773088204133101618553927154567074760011493272760042477084320183155522136967369567917869009590346157545537740805049064017470067991125350195911158765381286034517414396897778757289909408726291532512554780970879982314393825426792031801200081380751823843591437979038589342572136862100095990195384072724231722499258769277408486856381503735878726515215124658958557440037550101786393020305076982329257067141053957759558845189744457181635420125859341325000490555679718498529733521195917192424996732454112901693607831712655211006876517530171004381467199318110023153754959330055925959868238901904294441217882883477172200284472550437304668042045329435630092369607361492658578343781961159046780344477918599014508384130925951715031986847169606133997805789873045993999105541551308416319546671597390085196180269721210245888617058998252412980513141623159501555389801975454261596779443371459173127241506921780621490048512015788419746088047986515378868241442617208463943371277428122006871314433872286181970053913535229434312694003406882781060873100535047708390662880795789619131026360537303771617260859788106979264362978566844447790192450413218307575953674925104223579531283334025382548222543264137251382817635053782322059254145799480717566824607545991454421268858459386324743937752647563579051627960342158958528217937929043116443425415335519300822873610056152795607591228411220484709969683004082272675428648076277016099954056066005079797163250475066397734686588465055714860694169808100311937080165675775592174480553854148504007706155212016254066824984857859504036151725258279416599274003240533574541326946800119194372493665907477272289129550858460430858113977349319447673424972386737300699099772508016388299807795901834376119366015110973057498989054926998936643070408741807923102180158893152930417280881027234226461524525872496606804523267786137602315934787802426526179724741083700057478133406146226016883719780067906241752027229742619147271724119496409893706319084951916056969456315849054919437059168613531855569280364999768535685709476476724926352977417763776698181433022687832964487837345132129478707415176241274237145512234843739817385186986957173288065344804984536610873541318806680555028481368042117209854968863784281791911571039998110778815438050465746334941820349585650908467071194113254206060714336035779189933591730209097188089740194939767048689728671900508517115682396673255677540449369361584544528128985026935309244140172680226637434916300053777222132739940053450954963264433852500510097610185219155155336428220156717858268454412707453356175555063181833231687676515802846155463475639458459006132621253264043670758890580861358781458441720877598809754871538596166741856276898124286304580553959362452685737676858077851478359641234335842018554736552668702858938431694370953825533911352998609392303879801343829441288307992818145352962671172597607774139489639484754945026181173934988911656864271714225244317636861881172818502809907587817780294941683889173854980694791080116498218645176020374190020174127814658633914987821181403175710482291835405062481554340245434893243224643023672757035913845123150087708561352343484058389254217568190529848634084945194120294931877157379603535682683159677322206596879850880062221254674308540933933967769004819931650797659844330799008999004550216675227114977168479058999841962234431830695426125454061006756942709210278179121518206693915730290078307248896035807573915776604474843152915500526167554773659258345282070685449111507961625120836677803078733424444964205014408506113852547860717465311802700687508491508297404555384738621705010075425529838891175659364637659498761718755031354537656004243211414362646837377623992330649784356567868751246047752768338238032052225693412013461638804681546249092910186226661526680470307836397375415824366183760618301462911551248849857543126574054787576150067630967530999698249442280323511966239988751142858022577611583630043342916020345060513662218648481454935462789090072178760695709817080109820717437167995536616844725227907533708249884507575406183130749183028528658252938062209795439080986932328300200607614027052105760655813841842123568116000071209537720823974536715587687520146525738318420978859190459833277854040353470059857365247876275914920957219406407677945843291861428784111464893701758541998956950633357018457150581483500681859794032992150310426276948522203929469853446717502090132423471466222511268478243222271304035563220692393498201666936794832231218983805403378111080609542281789326061651530327702835080748079994187841472633753325155551829255769165101994924081666142719879670649547853025764249488544852887479885016524611773201091080967943478643986885203719202118861146221160198758936725598337187630819292936998675792564581940512782402433928499610117946270964928247076038812189247664353437747830278331730716127521833480172133013203167439647883538798975773194854366092484277813874541728138954539364983796712526388984945415621256411858193205506136325389259265343561102883990999047282990910665182748139787798514068790086015523601388535600246544596232879253370555230259186498193892352974437026782544212007889219080256720256759147874346459822854599023748856063560713588739765717953240144027891298600036560563018920886135791645856705241794490583467421311228381911661336287632086283575843485724016664025530450161152133983242014329332226552628284166248403817247006533775905569064542941051920564237591689339528457272992201570736396538210749207359359840604371249633456399252982023375428892317553511591005395561152621256572070011021401071235015109741088624830336956488970664720492817536200739593999872015772986412928202527723355595408662129219750668205479688055043779946733226239776311088599070973115830345585147541464665266467720000941866788337016868336590225888104357865020256576194519638059264754769106638661810509651355752733345919187936151896276492400967930650268596917761922771351329927816944341684814460014143852522647856245148437560758324406236160822720256368782728971549528489834964001857057282789684244905673323458264220607306896722893855783870997582514469460661004485368057390702574378254635094775857039925278973439054712961119388369220982039720404398212951927650612448154683044781851958664548710256919142224093655109815996277389315854292229201221351033597830576926360540402146741657794679850380383834211540863183909884585486014352104551743877883677698186437919646783485984299482036778926852368815036358836808773181988822062574317880467865162351506038837255710180919953106115699913858590691659662859051316212312310250497909616196691971066635898186037555447563706303243310151562164347540027727434372149370225161772077879294516665199948524209617283920155572569150830973503443481911247230431662369718607198365181774138401272714611185920499215810135107186308117827163366288115529402345478068843195943176154296352274734449068649724221725134940741090902553094259108825738526155333469380061372505436603837984965193777751004761015822587875731621903029436985050023818567859596034096882767311085339424502421718284030343983490331864685620355926282611733766382258692692747835458543428483072638837195677162083761464611837028164232767446779735120182838617718972681168692623584448766352536836806935575762427210464649122913716181574762115865905135564364722954939195261471717852873991484468984347672146212496318781344009492070546960827896578725472038369072577146299960086492226476257793005622100184772319883944417676915276220652275154498877544326550016893651213006738352720607648317018849936564990927561909610935281493524474962554901538590618725241773649622248700346044304036549646124230498443558891965592193081926386581939525419761176169866031246289095874221818943197538029833854071368810223825022742927359248653177515487193924400971300898763339975402871783794167799367534290850603921528460734942088394340657828237703533230818315510303318705784065565770413937510448794429899219659693500938377067108408498749747969993242408641118510936417432669007656099482206237522614366209592578150673177335945448034922893913242921579092107531359358014096770009424372743288775315793692513550814422992884217627978312205298036906891312082158452447762216179934746177946467689746165954271567641649248547453854834859235023336367281902204758061837765956295000239230988414642235223867432591556932561172049906154781277469317191978918848411189082079154690509472972237266304433734896346943041280329952472326738153562463152147870844590734382109917830451172424130106167393014616886140411695510942204552554447752965017376762752014963290261482336766531358094839177148646332848752461788663942075556281199285986122108620715987591827077837719471865554661301825762268422848927424763903027459534845794942513289025850725783817996029086641439094730692710976910697297962085173101617364088806579129207721906193722744459173387873159805909427872357445254654674979324239874323574881597894061657896840820705048976865700444524600168495728267770351838920180008600750884300605356828360762601720542974828737471549558158811929180869961361149636540436622265380059639898490338389081619960883824888822647064086614999570915581870759377649313931434642511472208429549104293920096897651675684315513871118398855977801485638669210918231861204952453316888446659821697263744785450426176430700963170718646527938654660862201595033778346916547546050751472795282053458502057649693138080478459458892447413798495985999229581089216650234677557173179445518254236990478866238198397992338517111708558357797837197766015511589037213355466443988532052241120467888492000247644701671990217865559540733324896933517233409654300891179217584881936179360162733991096611218365500136396581559174600745339067547017508597372270720317629757656397080654466192385790227159442416276640206685160014712966185020183711775550555118961053518968831846958128625959198112478222793658305017757100406807689932631614953885169832151497863396352076217253380099608257323120784652576465310230868186871027589603772805846449215216683700981979855719905840462225308787611667659634305972767514962782567352187864777125232363641913855015877216394348214684352107280163814047240765524314114388985699739418971534706088531319030089868863109128219553631370809406792602181888337651940243547176508826990438543368575209725419467960503825985134585150050884745995085921043966264496202759364828797043080475297338358819700086022524749609615194103339421787689186544178356632529896702383946655538504844008035255453860326436237839214506285139409559582957224100313209222017583182268972961706140206677652678465089195282566146928612963204953082151072575519013343468691218973447793416199783417122217672247375883832240646468475094171022603742625889927528841287558727234086177421827918879477882289516121345070641944581779957375961164906428822058906958328944218229539161060887646725649592447012430754771285844774190745497573232299472005398960601106851941331630235367891338485908479378260351099336992556200516678244904907899621931345331780227145609685079335693801496231462967290274489303797691242994705364584275277505238731589526183478724221399631073331902089527142848245150973887558666910535013414096936827869847361332231571142876653348411272314234809352876138118455530694821118900741157439491553754265359615228534808128115047273961429826849151752410189657477687727717281643383321284230196041229383569471952702084566955277194031817993089384166619989840528845097304738793218672938547711338722882665353780892812745719541439333834515871170807254127052167857028876798220430616462498401353020426089624036592337582531386943953797626666209439354412777529876535173215976101004968810841864658374132213054793781000415193721763257317429053891282147991769155258493493727604146097494311276107752985212415227952561977947850697084302967585336802517075290920774192380732815309522456404201297836493484665769250213329074602520275355278826836780228420119572294501178166206024730054113267113986002112317555285064890871472659256764877253435628392241912965272813640364222391482929101041930387623290890520786238116486478204997016049423218876296942405518541455056600106008926543803497808317059814018792222135205788616226650832593614009167974275827783764355376241343837169841012104995683124280727750758561784093359490868324472773403810959958307947672931449373878445595942847314618660623721831831710733663546253003050432536649628188916058625670695328942221820143485811759152243654140891807566413537872164519774078917728086643702626920005308310393372979796820964821995248387382035978788370344712135894406922255448084768953467521980426268116574134998845212151783195168675904976673143167545665121328313573679567050450089523282711914665041677364493964352241636652323167501436917288264310850441550777797367360957041280372976748410092962829806558746731529836356462519481778704412713169769779536804954453560166788435974556453292231982372936736888950348033982539515143590387594376325226507932039540933967525883235205547961188015691294909877638093228380875436082592540597945765605152958624039767956365867676545145934630554798057920388339081566272902018560815305938973936805182246435967366514900405797851299953921915798226083616971030429929753482291844783799944067493822413763388501701187444411684069559051824945215994643083610324446070365706488078828873068804922185191883691507610885969758432544451823019226611212757459109920805016919578824594292532793506434589794006937437335155341079076617363845235457757688377151759541755366440215561837054936890331847958030062763600835750656731324008482933295187920911956524433844542412037213989742953780531806546034899007080814141270366740497283319453011706543803776719524154976369660062758628702404701441298477498434243519071316553633586834318176136245501807677629793293994762225463923940906904415520134005872742627326256729555448827757170316682154507251052002718370701488549228249998746834607844935926012999944838372256194807713830215400375558651103018399990384416134788460785959162693380834395262686645767879821193299744316880557796441276254411859638516249728533638023092172218455944973452227354555670161818345693300575453221139512905663454355124383187622062382820403273061445147511502454990661005265409885265555103340627996422556197796903583542699769713992291922329163762761696600611140747108837483889595956443577885707154798250880160094352385492323767809154406108652672958956305290378531139612536147310084638481860642724356104530900325215815663145112893604269502723109874008452824003277465115163588720872941165715767514368164985882469786697560418212498638395727547523510639557928948275154377018267493289990761347885998545618141417841829850481666450368968168746645889429458560201478816146495720479887509381343221913245144532321116229644976210447365927094362174736619340489780271741346217467197754392009299205453282450440111597451542581348784316395148455664523123405483562061438137200003223266784513180206439017661713013587004804796004638970573541735013666987092788171247178753482880633137155257074070048783198764368952235362141944002159088869910349803089277383989572175665149263193417835273345651732393825963662234640037740748954398105601766217537720201482667473929123914647778928050527409587769974521366293489458355547233875316807909159230988898909109978437070805149749011274103657478364048132295809875079343115361126516509150968395461251124714385039269520045143847678184961519558736940724909848212908719453967802263322079354970931812025300481929814126870088919151532250415133839714832054189183595679847399542492435874273828013926785965182932423404822183023982016419374130487675884900458401266253803711220408981285098101402300704225532345103808312824661985826520799671941046258381959708864863981781108084834419133450491330108671968158791753344202685252191644101694075118829369819598416320415962859393677488968984838142443281163507064795627505289767140443653472473626464979689462227852576259606318054922274347154483376943068248309902304155284233136795632885014161483720624356102924479592510003327845658937480605842716800927707795693419449337697706307825653770760295316062719334561870255970041950916068250746721502345623014467580788805951418653251469733050775171949638959742810481155480633049639878169975133956921146654713178477675308606271058172909801952067404953276396389151163697548193332862025728427264708524752637201494966282429524421473992905116271953727372628413983439021079499856698356858598717016828829618642255424328197598762626057425687598082993537613204787385442075290850356707613846469584011611084838013014679989524609644321567757657374671677914707263357222761199543075671386747718760262501729677111191254417262009971432781264557753253207941492616392026916216815398127899984808448136197849491665679745828651479285955100025726542645582424055838407354881067883181488755733731089293624168886552502168489732803006928843267688661050888468764891116621523289962473191570055304410389870603330313846332334541913959878976937095360822235293843266163615908766496719029399782080512980251104296384698840693917108535626102722944038340383951237671118472712303012865442377941862318281535313909156601058839023057069206666369644033275025371250553065573989200721095882972062621952867516689346400782594758541194571857331843198298219630367503301041626557477137022080758218036038301567151697265702601951272811797232397341068107096352833064766088176511415384184036683513871717794791693371502136937670567631383760067296901364467577096756727354181866678631234337225074008477005120711844816713786089888489794969563155382206543529195720396332011671668388654769005004487063976331123040711331380290790157207969546599374437916823857160733469788575498459194601769169979637082362240884021657079544289517083316909783260391073418221264015755012287855364716489317312214504299534122617820318579929484622343416391181647344669894407470083721439636868065857398591911772331314882727863585985759429721009743033353137247344622733423826529472215184755638991307019639980791520109352306004438552753349956456871700985717963638828184275264168260254298896261657346162528866764898507611073874577231515281637002647235139229236158060910516945611241006202150255399744332475245022360562431755390264895335102923515032844344321520539058852914811395646552789103492007077282673540520897786305858200621687524636297232122872137023754087633906313361547285859380266117888883751374927690332809709420661128143511011963654634376688959540171347203885249694960071188164326484347896515660717184673610981577633186643509458615249173061675703511453904030540954979751592626982560089857969661920010790195478131079662609325088145476795153922176324448980439041697798360145247409747962648293305485864128017778934503834238538912958691817076529704689348335926983784796304213582007138492580082577044864119139646860218392469841125844687580744194201338113903906251269380415743424391840965449867267405343925939174608879932458720130563555523211425131451997492879305857322239858239275687910898857066640060857963506679588320973133401803206626616619813056679767387874199517465723678516093091414948588852313867899909396866568757819924167823883186068568171929427133421122824515109522774801513272429224596710400607687931286019865411461037413853181169833820696257047518707190107060559428064708298770302134947894461499575589612084595098895412419080253199162723015281854103197479650658027384286006697624360323379169060811631949667080644002655844751335314239792506235238919452997192834916878806585654184278814970023328350599442609279988299911002551549384075077556601933184433010231445930338440994052700490291998532386301197796511297766715457739264150661893887026988483620858441299858471437384003477846970440999808636412278842590733050833437105130143296404873765689147920192423910911289931273598093406791284017390530184021808666005617235291238943964860514370588472489760720866105245935596447607397133420698617883967825522010894009975464148164431355282273882768356385277869449574851987654193229555133152968255094691188752816632599192811629547383207374195675259595007238755287763176218617665604984266536851688874407701888864659312724614304446652708043350036405872952947603151986681962804563079284435019940162863404406826947206711494363192285314445584586459652386630142694334481042105427289135466775642933840159678082965576780351179354716661110161764974913007815467076716737223888018865753580529024578818399364059937192391186595769696790182713356497483310120929470557028418798919251888892167108192239964406412822280593085252307266924577940625921826001021445762557418282867507730652600560036557712396275020127623029388492324723316898203902324380924241569097132341372301970776523608241766299725602482361114864502641338672140962674399345514984896998176952298286297673854435015194886562879190272625704523533855088267853055283133853545511496108328659415198087557089056674570484704295743030634388235855643999398251659558990463583777640035033093021350882185029352917713375210818887606982534043568090871602985767812690147854687366017019921657371194446686234593035714268751654776720323175684425763396345333818050979046081596945118503968547483661207266025167867439136762434288085918169818938862428411886448527832475175817184041461275664259601201911765097231156919158103930847079301634752542098551657922865276751445656959018824184186281765397597646598880729894085064013033152478381864848251122498546264417433550637658043789550404489475881043360944298267937712674476513665322924253811873578226028400761708431432844487734940114472156299443352223138339708983156460144690964942084420258171276380768108178730230613631017564141403080516480697844168142695925978801876986866423205601209552250139286021647388271284548291984120154492635794470365928909319323954285704296828120404225593787413928125426004493744872330992473371843670227735182337411837231821535514296752462415838863985271134615252584981599891264061136767807270207765794186580284882521486840039235592432876166955434200473370295811552636718010651352922014562062816285319940218629943552345889191839121654182506956908945397879615049093032892706988127314317524247417341063693262195480006785704307261793491729626644526118316244742137711885774691000129811108293317638085010566618432471553244363352494336062117275526596634626761788651328836985146691828711305062542796951739334872916461702115193489036179074594707072294695638720929713782306745794144198713337114465369161413944037152654893497675839773896805479537528984951201823399247536185517592633271370474060308721204344638016676938677801771995801135776979884541668374939208965587431304249154381340077959248798554238972352536232156983393302810175249589738173223816860814233901589309745168897402326721811277983851418785651767637443140527839170187701890979250166757854949860462007237897207839357344809736274896794300823944229435654984746756322764968276489747824317612263585505958164473169576456083072485718180445038611634805026844100687627366588093229627205252665508118726501677362858353967138841915800978481795511361107497542038054747172419620994223574946626223985148771070043645984669562780528538834569744909088254474867934265631684513769651015898214103128096163760032088342428484870339811260109720941365200972460417456388318491724278277229138716573316290164347233368522082961132036295436246236049777935202879956656023361286495890782492380563300499001817764431784190808037705189777118209883918941524731921192103281502277168405968410363683858422794797376549004559598654547974786259176687677379522685130022238285527093107930436501332341973434801718194997081211215810277813984715407370315335715778076334919640331201117742259938538197634172477229367166568406128441946277563918380087626788303323028424358566234052848075252526532162921952466335054200452157445212641076484822014757103391925780404201523684129219078269909767154285499658820417518045970889457792677049307771660749731581230128136593894203562812421105808491965832721918514038768839448717465231066439115504582063889213842058650016527079236491176757475566785258886152805840725690248999372250297633799755533340959356579230785373943843101011788285815662244363073143172579520377179382609315372781286079131374712386249457765696318714658438560801158509756252118527342791411122419152761446220978726653513518904866876912321658455979859169544479242800449990133763954548264413699770358164186938953381826390266898826484638066509144455693837569181943056408482741455893847155163642731307437955583114797019101565593899311547590307433111267162177528055987210407799645150028221819688661702683609518167343835812488023799457502532992217284800309467895727083710736979785752616347490534917417739676677673417090594242069594047826323349441877492582992069199489873449373688381077628803168018181401543930732648975373525510923595426330940518496655567643939847901735576565422771732146637856636385857322721303747567602991953608730927898928358289242878983738298233808511670705221534700703794081877114811185014070320215863788289469674618394969853954991758799610443534658613470922625872323103048302082663425237730129714869049877813089211166634228101282888275003450262202699842820191311254463511816975001201285360083094111123428872542872117702579478625351840811306403558939940975876720241135733532004930873189330971154693793632693430177036239731715984704352397031132379035746575676741203409583033957017905834319048643818085405032659978023917392195672912516888542401417159950257879806281124680707926466844123019412260510810751026302083589740591803879385803181785157504998248586220123598201437558602202700946281525795830521153514178714204014583600637035342498315719436366246027922412654206955934512352400607640475096176590030057901107872391784766325343288193279640796728247151748234365936522876900339252180943618127544999766879197618247146043901715440958148582320550506406869830804270132332163897798416003768249808674985455598758764757455678722814278815938069333015189505776824076490438449533026436753156397738738563733095138728328112360831552489957371448401476163192906641969884815373826162432340550564753693825745011621155835702369411687126281878149123606697128275705690439467989392620248565538038142519065945682049804381689622483745628306139816821770751595550288412379150358478678358921794471304692699943378531930292895738481270510510508998005785238545275814642721329101480038431137078567984764244523768162538901087155059076702829913093936583438626198350198339527570980015334849089815105269076740530275060759952917895874587343865537910767478300540645215978763965628429238683727624135232254453151948048560503758958575453953178518228828849298356504571166435729334615088558301325130430657016911163405149164973018494537606981173426158350695143639604669967248498948617896612059706497015811847918780245774699127104257353710603775962870544037934379494092757266070918125250207479384754419648411776102214984427779938142388482371089847777760899896124473822625022817145790445520563700670670903139937783605533748823341874971700031578685766934394721726310550546190407230184324908981063827683581974905769854593642589640105898697703358112261903375036559699941488067038419138487793178530985623447987715404328109189702005468595964571540682298066689880091195906463122954720483364761199962217592179999944695688566620815569119302288273335057819889408694951346148704355822486866504413810855265450751403877539078966832685017161295403983859637626478942620341383743690115702811816576553115498299529851246349524710559701613331004344051923205026097331084814920734408807906500470975461916381242657922456536751605438724547514374010933399167913613618719244372698107905588840091211913772519186848894466528934699828866992596215323364141199921626387186120971878192467927420006321505541392275567932061293990598278041521409118031237310752486629996299974347498876098488516478929808745188997340117499550634838728259199726427034108482012834781445292910048874219949413176396242554321659097996867513297142748666203422098974143095062360032165966089320167346172702767502362449574005630468946844988410419996151991031662471952616181497326760163147300931345991155267481069617991267958789384260885292847619830281422694434191877006303412505897808384639849414232912988623350305792300754565347227419706091154970983586784396601329628325931642979873758504842656019635376601322234936144072437440848116471054497978673740783041383055188688769796271401292947943285896193269600288950891557028988965804358423965448038349385840017852808324339853275682733853395206978921275140274691361389665948571477235957096024905258379060828242130035421217893276936755509105907118536218297404912647424995503201207195594604953464143792449070531701472996115247075986582167033928057993900833364226543411345017364457587643471496696399005240781063043778139388150065093068419255812628890843626361974690465138009549112413968899779911043108616383580451989632465925184543194065810473497394328127357691307972949630012153510230392840938357489593497052755117919377718326548682320793292735414919665406887029065829371452192476521907114140774231476140017450057298144618394391024912340733876471208022980081275864406423914993298441854898491275869618939552432060929270163232200146881303106914047925358658237303969361734120342366420144528691194131196657740690676847301362487627982126335970335815760849079209751951705270796523457485408549859441778385243809587755277458580745801300199366121902960211822349851735453771269034847461374015748549245790346679731313710382004225892292402824294903146154230406055738579869375581279328465599526892700918342154818076384592679578551433939668201037882221644835619521651947462740788466401561971963959084621752907776343940751250944087920658478783853481909928081618680916938710678185272501429784671840710804879951584362195437495849462485436362360674419493971620456836388713897950607398686473322996168335959611910453096305617192240408953062420172498352834642987713128341810381912174625965483034102135455029731301167164376051899695099713338396828307542091477425274471974028267499487978526204594757548171205628854877939092453683687481259239896303933070977732420208188507279928939312833158569100592728813451042268856022001108101599769093028531629381671312584682969939348923774298612894437660385599647747454189376198164456739227449115686742221235770312105895469001304929289997912947753916274067169790379896319343880023754855288838193274787622356469310839559035970302348275660139527340319274122639505095010083836121707250814032981188622033983787846924324137106791900253479153615366621557716592435792638081315440215665957246723414757985164800324674370595400672359780862576695329802742290571183162528593925905253226720647733371068727494136207926023678775624603898558311953121338047018889417264929653311014974015178246964489181132981132207516210582601246963430262437689579092995109891031351347950447417945075880661878805877470370001419645934494759656141866045432440324202079527337066313165125761889740934691813076640049890104719756044225946616430174744960290651680711765734301390201180594241546629213741426748969265146009315466188319718386232461005435713567008023751454938263256588433943361573901275072902713273531969172340692210990310860739824674711275083322989074066451658633190373580603623716174561741811219666780378611804951782599380499106194826939594889139319911004208701310750506195211565707994507482115342204538816495121208804175096815936714786968426930585206743426306481773711504972554990152027189571160912480134009119149501240516305411860817318421931349777952526392514699307828227253257112868347385904202307296413191493690160743003600995799401820254468274709054387513684316698036729536518334378978747231650731115638787473026496188835146536994661430215832501745514784042158327416223051483598231332850720672710295376293388558959064942670735852480067648930714155307476804399583025766965785147340710444848746890232478925616305081811368974569698667720112812992067853321818906737657857459544680095439575673127376849963404340154974320336550785416779760692633574850688635065346587176638443273398016632690658371548745931035862188948957339180995402335874832404826169031569701363978386004345952836712559830781877575989724636629153695137668023522072231547103604672038240386828415471514341663486363474644067531119268176187050709127615929836350109693174844695118932097167523080445526261294014929736986847093799280648743076459922670597310993329017094028920327326797416181828246998237107596384223452561919925901805585553860059323175237591150690454703314671008129229274369965505395066902764259360912442962785852120164560043958406894962279999530363179030928338931023944042502067298729379667884148720733695104431662109237557866355331650112668168942641078390515874569215908875153166836136153122041944754487063799537074916548595327241882995139198828310980077673784807128611128610372566904591291058260319384487378501099198512917749128763848494268156847655266638206513356344516716841744568238637849138042931291185928521895627407928777373722986271159047725914553865783268614692879637535956665341026374570496231624632653820163374590135625340161067054537676222297458080357497002724168208917324040438665705607342385015788906361007945541289727135560082268163132235082721508299823062684460861560166757783345035847836659920501523014143445673435864389045745783760411415490795978714041998304335731495940373994522610623266430504389503075891070814551388217166790770338525635584894690075800280980395728404782812856591482053276257513821511724059667127939649227638121927747429719408650916038995008828540418046635734004214814359566083792594485606237063753392540452762368733366021139672480949196155694930679699824082190109324665059248906605403490447900963022967982747710429778432361134786619716723937502446674413657100864440197411057829097956281152791064580641788590462183762352090735905504269991305549979737110429590378957918515746469216873455389246166553345049765032349434148025733867692788594624193089376797652309477858489808440612854901976720769574993022148454212465065990859476849174875986292150181266751280130772118782284163766744287346853341342502633073966695074194962210623769833386429594449681039005202072560645046240856307622711245895873250516962805971450800161243793270272058217366754467486043266918885069764661054670194859541365766710693406669415818431857733684421141829259863128269974951954981676645940535619562216549938379817990514536351360306269965105177667987018599803206394419214904464345466214399912454813222947551200548154034134406658109917551960341078212063179670718640387524798079359169007936739788330322396746394016496992419444574266929110301595586764487482471635671161589318344983802496943079236474224842899162248081943761382971454396783186267379990668726274500223403480927548948410833620231065667181305967919860824490328684858938313820105556699710828021595869396370311991615036162797646502476118979053222143067364340836870214488060635159001813128275872858709675264820289073355080134529074015056456016216790215190854091080604186044818227656636710985366679711808125213510936867064165368944268347003955039140775266682173377085166081821160947445784816969404042943933596000422713812604920366967892710470487631880799719292374200030675909980465158547211063985808282955800697847153443873571472840044732866841977018542396700198845249482670872497600519758763760461586560351150999310658360759401372973669767012423723980510581629491081515055344716767904116802454638197414576887383758629503448770888501072128593735913078350225001865193349651881145437878426352080523103843103739706667751578814023152701547288644776406476855047131303163717484791610565818937011554578547463507727520809329171659707235047742639580801451574008335813693767344829775375575159684247268236521088744465706704944201603473506842208314717019657495324283940153956922878050031262791326476170166153569063002828247363715253525513749777097679398586978479598534835957315703784464261414751861992155361388796106257003653786949809720711048673135232535304093257516285728107564979797123919987752163576920359629283093896182313637892028903644387350986989460132394829339407297185928938061251727934325363976716063822272322971781577945700239138287836132944347179488093884933978629838549510076490653449410969784384230508222202600728824246926520284549380157837551666024161373604917276221448385374369663962408397742761769736182050184592395838143061479657986840982007929665349450907118208622291785076563937189592337454695055090138221474759705626580768139044040678726826759333826596566704932570513393842950916094514230509254905034596603805175383533712988619071032084160692469596252652110374023755260548683541757980448189173538371428718218044916116800296633166975928630719909179628989033746038408173257270395642706824469622552877715003422006462923194232057726784820340968307584996922764669931904028787905530699404203609334958425610824109273600750783486429945904435980444777737448417312705001451856153884573697210829653273833119326212616120419955236500903296291999727329061545946700076663956268937362033953432049122282030604805734698669556141087561780697011587440775562429336297800110875452969111547346688706414404835942707716772509390241715218470204755538419491024248175004306467471248031665430412787778311626066234412930097034319166297548639202981910344619299555865204051136660689528033578074048977692529997726515439924545600326438749346679664989977643406853445365978943229038278810001462266171702021453106669575882872958374308756074336652180606878017575582062639504035567631174651586993315172862792743197708856674897169157393051258654715436025492766757582076503691609740999773445631863303263280945984379187535074366758510324657478001682262739827932237475048723018861278326757588403634261443988351807316621946577657131419333592040551892145974501896984964931144457015213598656630883255906939048628331888172690529738648968208991696861107421717778767823177098814213627547658502147054708774259284306343683033227013724720994091189483222450067717394557572843098677467122405807059131589605738009144746694385069628224633113601740660359683995709537450363630707302930172023581736787050160000069115304057631179557039159683577744950784458572506769328496823467255108747078885007666745743428946790133796033526273392950177180450822905900534927745573054848735630537277110325885123476175673663006194468895304845694922377673482125687756581945765475003621720395800978211585953324246149617482846323985712209754032936330085809119579724727960900383961373079529979338182481335232358469243727983231264117664576628401495959680456853107592614077056710802299717853556352592601079596935224243390375831834135901730590488099073211029878398247127953786872570022464556095923498547468126784216518011584193628928288099721608012099795682788110681860658022612072492769046370420700000973199291310824339666345030225799263673330637749146855086851174601086441472713876808588509844289685962531821054981509338034347880403011592879502052647994476061646280595885162808741412900755648812809379217023995373050521051216860573647004801851480777305674475613669244625893711161621211431954074798787840486379391170254695474498037184570437772654346539560792057226701263364687720459915265343910378392378050729887206996972821923373666331563953314149200139325022456883370821834411531466332051948770046745331988206146707961514620863499812949735034104172837568608614202580347470246355329867388394308828910539367418230404206541128575425167524694402608476389347391662206398537519187226925858729742660630731785542268000675730727141987231031815914393269453224883183992480155911789287784409308943950823656612086487055894652688482319549009000339184767739876248402380593266268338170171615110201475176950842625885492847021905222087602616302971791766135799152483905708335125747551991864032307268425714304973949305794018647649312424713264621745132532678054776628492351341943295961488625745834345041302286528406638411546175359408600488819448253842423429926100903173882480297741710526191057809175383006749928464853333977917108163003966933299660129903575834302579470587750848041399178946299709718130359627363024690810586335177463138718734431837737216011563693023204616639649421807330627818761772125797446146590580312022630927476811802063645861916651894884582662184213189772729238484537826958046966770428448805035529425169409751247474398689265375071551689580267170941863411264307975739045990651951799782311453891304521367098396785656051271298718383518589888182731136287483916168098820593748131408177602019345637522099951094855392110794093971046590979783267571452414695924788126690594672459040433079520432737496092207164120069570719188217007484753885662075431315385292831781244434273321880402539869402992245662915520131125872577981896705754723833453589452061412684335091089712451071946353317825271793657220587827911289050688627425265973159913383360959270659746280141330974832971162257681383057105255477661888761619250567414522270569954653244095574337735963235341500074324546389637156061718333245213396273141119915804905481685591908823792030589248535471201067854282222223746900905255938400408911067955486563006227437016770168038302618709670426433606880090237976451092800736702402309269393717333304186508752857128650061239927811541343927611728586938741881672666015765892924966430496329130781817462016654351862732183057906915238479302955118307524662070604604150800163813554241484416425989762879567276513731054005653924539678405129427675491864901971428581953313623234931728419729618892814375802380606689828284422716897388813398018349503948947386870432684717501142722828244021369416243198954097225010404238887554907011856156993516981943910233188942021389524291202417238705760241155995108527480251399381416029664317120111013150093890477790656448845850849898807202891020603287178610291601745558763402448491239143818550913376182199287711692741610257124133127004996425770456390595051884400827560950018125836054723986978285839562176612023625003642228883080433671669615987645828210444987461263220656665228537894791663591279992196254758422743383635878314192899844867252162432132839039570081784411478571366182293669074816701111713858895281650210729021606446149646277193060217328622182172164908319012247107470655675408352569909600454514509364002647667276113113194038304082491223164412799209454155034460394735859678880809751369120213241135016783712120589056152100326821094805779491498661080727444571419455004295537969633201948798806891374190092490122231890130054423657656339704345695153630207412629129505921519964141924920005125257771161384796420107421528990437269918769045434629201560419024591717554903838160541424416401248579657433780943432522374766227915207754960985710871158490160566044082077176786649143832825655909117823675352668507348744419152769081068437881476602088968031336289184397565832879223519225565440624106863185186020245720515229714324346557509701456108382271496587786369573044401627276882758749540156495929446402382436888272948328844935925566891198932755895219481427515324629801550879044443525647338163215743817015606959249325626096914633861246840544167383458179501913234200380079252103654423266274647436905891903795170027105233168411993690496343664815028488943833692651702821988647801919658925860934677762311400661405898992931518073797031465360736768190154936934368880667270157994531760763041138719187360281699956899119764192635659015958465263132850043080805396915352700382408767633973007014554627771591871735544110057572738192423852610737710306018510031006896710457044893035636697062626293240503993667996140319122620757980063736162928065557847691656964514710562723797873125554083027470933936420817778648630906028860845914950997095693443267706825971248866641229748523610337656790539571625704037952251608434270458210364483423455568011194905378320004142065414000563654323880946641457403588990057568207910146271738000243644302559058668591816596104646042033288797681382772403031513553712201590069956073529583110552328624597308109759776920155751603154215837125080629125732220478693576194445286023373574006673780992185532723609291813583557993435244949577744951011662682522802867877229505244561502548793476703931799507751745449172993194859123412730884539258815064366637157849308201382962758857370770858008435516497597036583275391223104368483838484185998868681358477905639317729620374129807413473516027561637060602034417349503480021555431038560814654687737709704184592094519358520859051726054010973756314474930056691691853263127942424949185190371355274309580961061358294275868459228249074791664701714210721023161057497966894595229936797590251124969073286563991897758748927674328268326471330985055114304502921229464949609176032675933606833990041214729635440264585646801070298322516382080085353435529253166058275644498060880842303530988617540194222386809034931999928006105934086689181607912302693230954163591200221633780212298147560357158734860978105413525138672926757924712945782886914287712775023004153028018687948227087198230369378991586817700429492948450452205407337769825123500281406661571445557129635484654362168586949884267577019298579305675706676733546665776188988810528649213859245743101077972658531315387694522877580643677372783389112256875386262010565194349966902598016767012739471709158319878641501975669631435277438437243956015929189828427400287837349661125863417919408370686795115244233493835854215538328164135088294136446270532338236014574094039230709117677786144600519084431296574016033565554869917784279760897563790896333747121877226261468624284458135426410401180745653980353427697812955155477973128832741038419389595480099699265036553785267994872563133950473203827889562757146815267644207293731923238976597794538721933208455698140701141433627570405488805751640744873304075673192906855618340886189992793373093665276232547976169997672543724653046819863989447222384019984415312473176762300138482491573885971811849936239237402799629466864688467142733919908875330715859945182314575109244310599149776237698588867096845393930140596317759509522934319333722284251823650452607089847957305267184179688589301023915927464772735933845309892436990783459368268028983404737185505459788539833248420357924143502472777499706745746094019757262925571935449020088204476163380268678055909776373868723952130126358386920852767618752612358406917401556325109553736470514040155883279505464971864341395023375568583467540467557653429929518569852828022101270970222538894666455607638809887513866662396457107616570671313582125022898347669420624382744004883989097183609993574681133690766072720639659244085587003223996323956825710264918609178972295094720038761410849406751260124525615682278069127235499920664164513051187225902202791248621151694083754560937918580907298709161089993413851956316428210534554116968928012375239396341121873729903743170821286368332015400139403148537804490284237874079258185430477258815016376252311807270407082976644517720907592888382523372307313872001095403399163948773035111791869171798817096940537040749094058557075089914616122892063399132475230908265060702672809883517469356227946671731565121975438591728012365402009271288792872722070823311737330132381390761076375360180689850119925558880500553114620725384157426266385631204768586937949932130564136404803980488287470383914568848630283073080894412085882491100100455389278781672255672901226337128972055203414255761127604941568084550636056315997875554516087903037090263530660644248269554288885154847051374204398241700564097768700164617747044586803821592530778834976685159621582437982196465358194118102339266922633666853666550648890184597463787331526928374118633764475793009655355380773977714652327382913216403220152721387291713282478579435086565081320800336734902975216099201727023835195986894982253634528907224458103973306037132816970543343521999340762403607254624919269351939582331541043152799377617141582882516657463233044787564362668024619119191519782554765631728310252458238961487399424786927776141695677322175536132127181990267739228930079852211555621346442101024404483016952320906799316823400309947182409274699377636611351505630523061232156708800845605778987795434295558747463414166108940688740310755847424045702432440613645913056991050773800559925399475151923836568195861745843635774575565277829930784288696589827340546455375677678434060522714389418036836949914490583041645951956510795127913353904420890311968985420644474430442035417196929576094137124913143037079332776099624610518236463252816819654147146827934529263130874888069296665463271051587463969202769184849300031819310575161066671796019780016677025914939297537764207672188827268640183956370126287564557265246253602503722904974335385316894903742455985424965964537241565124722034764752079342960652206570433981611830283835802136943516694024652825395690730773485179082643119547731516652172120901554518353911266908017867727480298417822773625904004885001534323476138020583185682792285607736780566557883983915113329638466610501543508841362732052549957822990572082542156577210283601555755084805491924778239464801329176445550115718567533252116175313914403184092669729238327332586051737464742481223388999509906075354575009463309219371458813916812399094282043648211261839423708319761023545088238980925523611517312757581529672484800401196166036034434769353242609136387139913004970720677628041575182124518668899043642396187266956939295652231841772299608626231861411138548984894595337273023667851980578685169032852620001665844940917436204200225473215438076359503154663741085241025515922848774282281376997881750783203711013741733505075622364096375167639528631369320309259773994792121909620963994769850860631541500545692565592825024095412930822724874269140801806945001493638664290345293005268471224520562823477495358268550847010136457564169560949368492820457129401628504314167016229826772785415534100177626207864298714627191367375258311006189905377550361984616612358808574431283612026607292781805123100462158268996228049122832491237232906459681571919957246513593592838788223065622938397677279237923146780147211028746868743402315363961652488370742732903377668868401174390971573770515430098605260384239574466216840877824467709680196817720456797281688580394427144433479947467471045306394471039105264990403148167571765286037990525043432024626912210255460134089798407388556469792758117098054151182664955119547068151173125135083432130021685068748387084909586016642070376744717458061330689959494188934038769883391551639681869529203938940505782882641709889109833351697101871377058541125668851787862302820542299473370043324124953124700421094350650736914279050584739242714146512867025386317855059428010996724447187778991006886578117252915782108176249128696526043609493865174354313968074045409791812583500361203800800019743446628923534467745085556911140444729987760996737489190290570877300436594587673346024940997154197398071947969425410303812199683276141235861928671899640451441516180866700944514922358327615059352305609596389729334997596022234485155817041894562765179889339507226888673505307583926494534175680809458516319554709367170375030983222818313178392447134811606554805466744853138955889335679706311145414707893882427507293208755512938000231169289753125784687132855585569602464407049096657891431686147065520629824322721571475212962457246982394188736860818393275006587259000525841204919374792251498661511773101981299533403996900753127934617565583318034962931084901774487395733218309588904524788310441886533397283577929720851475251023408539879757999756479093982852094564581324075209707574031459979535322988439152932299846925024081527751695080331219191358510412265965809806172077494316210930779536806726681948153366986620241423509333613985924270462472357497506484436790201846591687667707287721582754225530800435559397787604374400928867666992631565569374297240555763663283103355300338389921609550964343630928972472541336321626277763413149084212149675505869600316223443581090505949413101013642875380693007955214499203741176728062250062797700276758862716839051577158646603537252896461417293304918006840944870615178602374653312003351873528963398971182538366990936065444808366594373963134205185074334985820201353796768804425341921218190282535298847058253687625210337510630300736297633589962478103525389952214644240075137705685578781665454559830626030751767064369094643320510893125810682236022271457762322786303051317648976187492403104494285710325559728651990644911427369086235366211453849264330321632623565902925321395849658806651456439492575704652041954585649178663100109667793041342702891941591109845639777342023312332198038469267068365990606972468234893177060608332725149699417099197093714415219215772180288260856752045473037576924871256813392422576932828441715601858822171463704586925511441934657267531435397434612275863328160464699652467185446339469568745455562931336644883553882005949750635743391796200172666329020435402455743094106872391191081255101446431256613330825466237364930885655441076699749780760350550749252774791589364351860042167016298910960373339354831668754245763620212110962315827574224589377619863071764558194052392342115227275039071075371641713344420013686504659230146529144719701078219898473946502338050465044336036773170428188570597006842926826292792828772604392790092236540895780611220430331886962879226999327134996664252723524655223834984115918385338730323527280585820501875362687901971220164866361023527867707975166185712463993964697605850271062573670794731222973819105764226670069195817718132261886845009412671850809937702350998582987982455258382789828377784845262854398309677609071785516287507077868310093380034558760348273005819287544667677976361267742982532830633365457513014865454469389907442889896474305416125651593738346026660770438732167997467896719410511668861013955476347245336568238414569360968881334087140892844323742139264980495974413595196519343380092043630949724891992900696719650302314896393291709323724342524674407470295537341095811202700651401956323521972950918966498916951378555913464290345456772791834297037712406600036850727097645994036041782543954744190617322154448895646727062806202467558016550816708793805225386498709245166016662156678778030553312832846601861058494892312083701877018929032752614406437124436252380675576406360882446170892278735585902693795547313502888563139120481092054709875214862565959596024827165557585997983138890575698134518589596015830764930543873114174781825476141832621442210158133902601662862779398231166654383505907350404685600362321528695435019756985051655455528504567897248269068241444110521929438911629741496455062834900499220739970838447134331875442018851124284168469029820801182954707744444422894481220484655663278513822024164436669337263685296985105454619269737885359383790969123398320475176714735159927070578383413796651155327593799818714299409438947912714097138041537522382455512989313593321491714450077211850828711140714328954818471801095527913595288741860006055117281819040558721592759449127792829106444284329394313784030648001792819368260373066864854714715110094308065977952688716755735374053866571622336070838688569524265814755635053248412413938743668422166361052058465865306104045219037732075574016122320672370205520327235135618947118612824237805491890326991310160950777771588352091153267757462560322069163476961611915936692336997176874569746430393259849482592739757703463495819649465458902890695315008598814640788273891293052716724758728657976808480964498197759006829442312533084601060065021918522310873903584606333511912931865271093081483666740650523367848137325897659406477121401001524781140967627797608749384657887785262412740148776000252409215040308584084657897338509211138141183007236896998824963508491885043532500774387221141402333413274733947111232066415490519362732968280086904241190953267110663205948207882643423858472806415390834462559783719451709007389710299699034844835985221923327119834473807319079586703146727526000415131498643506416958731348906575213696411872403209727495985832811626019158789686596844790527914217429754131915395252496165277058464046823169511756820812141004533483164636349571870264315702857574493194816317117995161217636996505936135824044922083119368903502147038948854355476931042437543220231433641903668990925431706756846393030083503834669995069998355377004268109411930521694171837842656108871775088763234035655224773435917726960791085808035107395561473625726462778905697689265624191023637864507061203972059894756452040576475460494084643870894685834856967409187318066072351588802533113999647662120625444328888564898374541705584487157750657620821052245372489377384183087026342544207887229585154043381435124719608763197597139231831685005144070377147198272964188871124512615197696254894721864038300473749894504734664436762623016757002838653642050806049443770448315754969883905289941753952451532876558570811617474441439412904539742652516877514407894891217257582973224216781262007004394501612543828285378689921844867788420961436436208246708495047201382484338289814450910408722075473955918943395068161982061143145688385729697026076490855956073277186076090104535466917400275453683090960842799311313445805162186075517007964864558868185646218248969753110019302322255603874626022559284569408198220657868190215059621042003927469032206279061903112043248485996535819266215479210742304080356924088853836171524501355175972879151395888804074771857636597175330927855890364476937578662527029265885134215211218269518957177509194678589348502326312680982633656991427314274858472348934821725719707874453867233764197421796896272715621424677068025057167909971329807174988643482759968637496992594198314634524633246724070650845885706034563803665579338428060839630906762065585643453890678013390060323185849643723150579856287112753356488971078887115683468325654465708579750849423776496105179866483049070423598975185687569932961358047873186345700573936704133438686999691501125994633760496745184453670743265884977170729158115931273815700830918462063509382643714224113628014348756378461371680346145388808841996779638237933872137290141563186553000682582601096787674781330964275237543528449347075520541748360833854221066023595394088283247114788076172759162352666576316684711476731968181521694731032791466673298595757404169711406287671805173924278872645666479972200891265386534173871950315587222932874171045701960510394566221817041592870743591859833986118926035063923116011449757904368010196994211374871183432187251011549506997346386656602094720278086622913949305864577083176288414545038779791982721964426247739389410178776573997153854761456540612247500219637816884716267563480507245659764862954555140176518700025084328025424773987608485486328459340966151632567900497354301950551081215691545885886284107220184023322408805591769930079274008262102972682155805042677369063729834839123404687760357352748883285685602162359376108893036560938113234895001557915753712522720057005776771681331771534029694111149001862772009115962674564920689260295583337499730309380738709137816302725566506052505574458174253056180141195689145549348191352034004386668557750293916323519830583799181827069709487132859572529775497497465723617992782686867300319616164280032598683146115744389105487250186410463717584747655520993882383229361953899771556886405010415411995042639853965378382900611010790425527127025641650959290958072815053825673730013309128617408979186995443501110384144835467975800558838579102911374591563023854314052409262058876052077548470369756893435972662449268464881482502070554977777269169694237794714238162867914697077448822452599396123655267281101011722127713540346661410441836210379926194284503370004192072190113099985510416925767100678042924055353315270965436174179370480966985503881986423838122628153572696004284874160089922637306010762240337276794514222803220547850106065676649456849764519735706245089161103435807817447470761073966719546975921141423424882300655617788668137386242402338831143721729110275136584931839458001000315178854465117467905041177544788228419888817913874052361704358391489517540571447778938018755133726186628040558162928902231845836734647526182189817343281111770196871378010538129455608063268709849618636674521702318364191364958402077625154638319697843226032519253874540697326599558898065938000292646064198994825845388298409402757556570040081829867505020791615020727841607498595509617238642068383792794029474272371649080839299958057725047102104660888802930919326612664312234291782192322647240816333381923329312680928675656320100712244517934949067246775276260105736768254618946448217033289861146832029820799232143425136356438772260960283851261731480077039671910842586484544219785324222889662077610607706438889770205294813296883402121195455045706596626242993223614250370821454063566906921070971215075847671692269392733905334853288041734020415304432524795169604358665502445982271103225567315139369476329507093463515437604509416657686339979959716714325780494487308004119577039232315460305715614931377433437910738556392065096219291185862016069933528229912181389901067708216397775938852839768987256280377029683928533870489957999864199603033320914672081358324945594242040226125552519050597659865286368530320026446872961333232220689173697526123914214890731486959937806710093643644962680369149593841793911312056287769800361767083019983756481871898626971688406453295334930815990228949695458687114830038000080676464804171157899873673776093180721955233173819089790933672479349135064057700179423774533695686986619130035123332208853128033221379820996037076669753507739069015641480424440601283541348917242760770771673891015028164354596858951083787155764637888046744059520189375421068282085501601222981077664784813053280728111894772360054857905103013977152760755473851879716998828963654985577431605355527355098762327641295732593643332205143029153895079722261721352836064444638829544204465011229501414397297892215298456178820790620400946225253208615381677521798450197983924751750295192623774049336343549581666469753212697814581371095573798841692749616624184292027441736342218054640070803466739258629108290340959276780602161992942341361918165111020585667161900575349793267606709744997721498392941544511649551251667313081728323202331635248315688052532691480427648421424220524048255340966065900530301106932211301905573397131984859962900221884235661290553713452850645472643917362758788320877372926670042793428679268761996114462593484772181772443178687228427285217498807759022960106473445137516504721973880300337270915339759983344389427521123217391048942096010492043776633763874925328772683936518838454557943696462799667359923681495369758386270715864445321809148619926009799710614618288557573358947594810822455547686600304979293873362120700740747354969185328669469698559841184855480095412515616677144676851027581265487798315586830421259232041028569541086469307010756966345985091807258993944269193873216997139841681332749997496905493532800514066079746735992723152612677372532437727121020566367240241230543000571166292651649956468375168717436674369960323469088906314230787169476570833248357166874744150709369210085416853829355433942216952904256435779371474745211247224187382363411567633507317494542805287403584525207679953455368753456975721044742899746685724312774001662237031588245764183923672066633683655278810062149320491994482058850188375555641995309020675786955996308710272631760433538048709170236006151441052162237246628077912576028635796942941402102136214919038466759287739719173640013279566846287410159564750662732310552784206745936523783065012385411032049068011203484891685362037351525812099827743631244757423489634405281007252227194695801781714687813496592596448891310752508122109720505718521770027970863053391327141987591438344596612604027291695109583794907833844723565696809382086008827832776294499665725514575814359883335447072032837067542551115003046787051185627928516241589101376310397034626882078414955712872716147650893765148257067640428583678024316273102155617515048971757261689291373555149231525665061870364030501925130009605243552085962545132676630822382062793368386288047848862032562150111163149403453610302941982942541668681663355007741423396112881206542506220531824787607306118032540024731942995111914286545599739519853942875646319203143862408984352057698502326132375696875995437597454312823016636204296678995238691608643128446483419445841490829332249476822421425207074392843173150379619043035400054836079320700280721985550570320169475711421775030972722995022182230854076863677850112252941071200195390056182830405865209234856525825935870969289529211937164473954542766176790513240190270830737413369083483871406249438982822051376290924348706119718200704817582169972557276308524302414125337235727532353041704525681958841660082326907559872440534951512679598966418923349758021267896006459766870893402016671822115819657876586641592586060907449967669644191796478393769618501444542960350154408683176900747286025415201769731205107103742183010844508135662794707993488335319151298801548577928811008927925108747290087542981400044528853725229901846128644980316130790766720876264789116719240466034227844713568019239362379565699918289872923314487645229104194731680979293182894564953549651305831999218243565600294103895249373721496412404045613063144903636391090135888360830318203698715018417880423712676863260548489987965051781300184728448236765891039845237890376716800069686097585556035938358113092962047988598152004128236230528047249556025590340032489563940361706416257902659880553074442054139729645942228572822119703653785970401906572950368203709006180088434584449244612150578090917743080543399131389218680933015902660341426645471049802117516982169473970888028608861552972899038907941664169615634521158357891888584208381938527586446556528178085185982202636435860759235456997990604740403193880620694589126502385041962143030541354412090908660846931418509078214136349873067119787778313358614410806218099687848204726586222430164263773769286883629884451992894329474743740739705403460444137239604158890707294123559119060621371075376866383629431887428979246565859255799799183207376357555212315365846626001998571003770575607378350595704804731222538225506366998183360379198950526172796386617603025557637788612126832864468041827973652891779802634303955150084754078798136732681490026825639945970484310808334856087122479914133584477167871863014732188574308158810538746033168111432280258426375261014979583357816369812691465960533752930851885691026155273762220804862019902812391476934844504333641759276570712162461826475036299687921992729982659004390458593554581971127451559147682155509236997917153021253399923066423147149247024403585155062693731231859791057060614239293880877978261764461087673736585861504291217304225929525887138605008067813211270064173080766402674401835798770651732080637979154011481739346741238791108168659208370883429925729894366331131371456354169263855750904957736159294454302400316194693466625285385960998435299254515070278403891868777136575689172860074423973306745922564966107527846933505402773167092783231698980383201412968445115495723462728005913007175858192881697370000450009869294318085159320023873178474306697550087905803250718272474969675097940382377486274349689057279778372787491521779120608779012779889709558872697910014109656882704308367542778077550754017836238086281464222039858291656831316459272991036254322625122991481764208626476569383716559580279688749829275929388810765550713732890017452526851901449229609010292939885408236402612327234128228507542287133673536980526255119843036084804374768047857316321655853979847469637359007717472376203209675036376915116408975664929461823821066206429787451494159699946922055199637178567321198536401973038346615219367118630941408710474362567845470531313320925325479173665652734841935670063584128635073625746792281585754922034797998162955598001772986395534479662753182437758097908824741387608199584659991430263687073373949213633845058543322787152062500676925180685765312344879091606391933996551087415033027536377887490118406017875998943258017938080550232513286932179669657522537450437979094764951245897178166498590389877720526279925207081435745225469410023771899355278933121580332089057190364347199597370598254584388235068930827994965998467349198337144918154301920082798129143858581081268483747435476132137839339118699630596439485905458158046422616335507668182343550897763745896421927181331528235342029690242951069282516569946150886469774070888211669330704251567768489913917856369702037328868859539265940132183955597380774475486390253120715940909649621427078375499348420216973795388222964998921512912864563912080815487698697309849430747483815174202780164423520838063822689217294598918542281875986493890783231010825562490896349225131215029386426430814365526735718113794142124198584933477563791156196246569338379337822801967641066072675887119310142456457079925101450302259515794267241042243479917822412173263803638314532213792634642877180003620739228533514603644076788748354046396865190398791124350883645338740281185643068791268850017857091339655811287326116905060982394830192916575370604916896009007359300831243989091368208585325165422505870911126239658704491124703212948427345881747740407906722573130861133840212122997750363840212374959365470920917096386418559572397199152037448296264585583590620464243739771485938030329090904986770828930491642695018550857374277918254121549954291706961357828600071871813049254094779213884928360723823726464310959067641813801964892156561074943517763038098133285931941877899832016515802749076773910056140207179368999122250847715487417419693687356830215731582891412424208393095392380692576973151151473926650369007720188867723100135386036540005652893403519069695805540860676793224093752664279798365132455366263173574783231367209422585046104350587877856418991061938028892485941902217539050521318907613653119625290383582809793871852573153593124137315047439878912723251036006821297961868255833862425916507012269529121425261788221217673874756456764064365293508247041778447560195121367721987375704984868524592302555126169159300765742255572767263069885956430932940934828686408242389602875824545165089373545584900523076165068856941733277447618627930836179998971994083862054269867264873724037728777596786668823273082137410513296075619282249195533586170200633602384189492383287868233276494588258785663430821352337946667132834071528546777915725069295974384194310478719754434356092442393111415860856534850277749361474327312018622755080694843784877476981626796391650177322842308647468415351157577810331376901595520086348003963248588190447649786434339190868162591537935994701438499800262121366314332101107891094234339761128097820588281047350009085278666508552545287618375528598983290416424367287301111369692514823633376792960442056986386443992798818250945641362193097315801233395130241839084548030455440266859521221304501756391176320289917431121842922571527016392452816491951095672638305271374572033768467656440886559043188387496391180578035722389305696518739416550786417064917828314706645011799628587511398479797404849623717139890241053172161524252112090382837235064766360935482897810023575320946142935110428624960563704511690833880222974696582597404147928106080620972089670447769347527243680297002667977233882772944996981990136100157930973292345555456515887531205554579801149620625255837868812107865773669801872620781276007796405970181928872520389579435034385794193978156557864141265325421761751257914501853220068808274422887495477553857421705043313945648754804992291064210566069320695001108517351563400793410590498127615282030410422644695892039020913131109944601076012209647547422380160783271042838739153539732457642559824864785477574409949891928402577510925574813354889153209544556095281906322969069380946590973422191512496793230134875481415854751928896046783644794442398994042639265293026162975536202798549908343701601944418477607577563791992749586049535005125314466262229075055230644495976831550884795321039472993487461107562879211897967402945414419047601988168545618526707628101553280953788201921260003125195475977615573148885105207206576197951465565334105263833945274021310572587072878185260118728263793132732787055729301317225082590575110646978552113898012377345563092829144753006137047435211835683926411539525946513479861425855453595331947198923082788927432271582825947803497770502870014954097957358473326328017742452355905165149143127339486200612113411118866307269244163718216096220119600867066982029696556617938913038514879571733998855862225151723694021159998745117703378333188445179948889470946509976091815143870782962137700953604561504344019720477263680086839760105197140745869967131680316599589810456695177598124182138177104479788047648846425314148642766910400062217802222265337003979208263049244362440740927264255443139052601877836138262809205728849016540489938927600406354143366117179090387364226837414487993890987090140398132969154021544772776260260076107474289826843306860841691211273157333038394800724863749960272419682821718570882853915369445370983760347947588215819013774283834807404958508338441655479488663692891489952302729253410383109921506577369767599061445386989610986134043697019636693727761095106548328360693020263195441011026160787620937320898477275906487884693533839778017857204317585029648875102414811364994208211472977382803774946782991913814121068392402063568604196615575577979984966272891671376057115459139014854281938240592228045191762888862203507023332052720435912328468417195099002113480017659356081158410789955266162165401867786335963595865084441221654014605308797635663814903043863405081115619899837173541571491521941563297169428010090850310257647518043540213999190716761045312415826271372619050331957461619459120454489777379355411378603833202802849120090660175876450040701314382473015913868394609054914068892216223032679216436169856174449245300092364662504135246298579729377791290964949440386575476150160929094872414644403808948395853202557222390478377180622285944467237389738564785998405553636364654200092648686349322645241652803882309308814977894361812335225536748377021907314253969963556284897892722977647559067678423645775736295719553786966173168393599387405038928240136976678302472617622023470829633857090629114600727412291794459675040765755170571334112570308065802286010734787218521748031982878240885250296917721456635731815746170786297397437480219193263364922722674536350008520181009984724892716177117174992542539836776426960989854027406106866128401143456033585847608817336611774397213923127395508085494493885430108826166099499370979228616426770295942138072273298220553568697929406916451042289005671604931334546775471174641679880706311867838459697560407607355621523574178881859564175500946300304797764254113710473584685631398190142742553813569228505421390143903583694329367423725152850286662106320598601711693063315490804876357457662604283584576620600131774990053240557141634450614541430263141740782806994646738766519885076663908795844853290283931172431208988789862272398399539571803258160664293375549721932676292099895653287598710692110184084242667272373146871200212822044316577726216577868363499110311704359746928925969790853645907104349411784413130445016256120345808718871996790781131610554670452893794903427361832214814015321275376541367837618789843914511630146493780478293086279095355260357284194300715620987096251270941738011569878383397369159890593303910465243693732430426792106245191792300302886389150111858853821957801337253568272334376366758291467302666653012143552424802338899888557506613249372679936823449744051052025907359404797397022660880528857288768403355585835619319240473801694421252395124982403271956298676129397849353156375408760429597413497868073691561466679107848949912486620657767790561129847015631352997050695065169397206285466363553433983347468503152483364625588207037410377132883806934421034156370903364288437550274525478033504852587791642018956283803691491892676543932910067647969131786872250970844293078715074647850472069161956873560558692225579418806413814299384270813309602960933362731849639795474014901320571098147348214531852147397823023014010197612961790835469000716937628769169108247485453477760404465572275661080177245462778300825698361773154621412800017384025032510796797006594767549720246117217787812174734184841122659520472650334823732352048347818236282387777995019456443378960237744720954960544334545089962312485795707712834525889762812080001738758318974126297678422852793510461046776525008887280455270149036935471406308487996891220583650744816462572388055908866555742634287742074107474756515323067234824659603786420028744701440213103136230765293855609778353036969230644159920382824297320366221557570429036799028071527355870537368398353000616844056770749374438402545968486501740194869487603819049243607343485969840028879013742989931368229135244695962101602663970155288193587031012462024806076162079305936767430369882969559048050003218454883112146588388215465891583805306330928313991470183995051072786431976785387195215849660652668370580989813834008150623875978310160122785559711579881309325294377640822511240514136009961855851109735807413927501449519689399954238940718384932690631694457910292889775755006279333777237187222152268856943701234264204243611138357835176466368848650841531416037719936280867111331353584712282913807255833899201788670541906569326989364650763330826855491181240687234780252735734140648567228008521816431809607533282637813306571666477689916329047221473703576465036591606218046466903807124984255174074253856812426434965713746659204490807889636548926707951739365370954978338902699722066975184799064868415203968814542947553362922495348159453058608814624134940807770885373618307858777528565232837092904403098804996859337257162845084639568686697137996467244077496149166856360661549994486129792025886714030557752159346735685199994141909221823572974562460332061391401606268725482128890623369308517728720729552971832989043151448892780008808362371556078173024555887315093580933975623703573919467893010540906073712865711536771961061498874106999442592404465667021595576210049863683420977975505933188300713390828715863223353888032880278342307058687536422304220250848166497332316699332330213338536133300612341978496688421687717131039009562343418285984745615555061925001170093701302606146724439953910441964109077721332951449439157551088771674512177118795887959668751576140321664632721711055711737104476412063503401229418835722057442683246245619633724319150499663841862960671525909345751274033551108871747457821888046142198344354280408398222530272374625260775594648111742350127960619998824779259201556808610276877005816204497235442053282809580667294678348474376471681272633019234140745748026003793236778244733392345395657938151362594046411860100203800853964062426798628906434410018280066552886851312253594514310897065115820566141652034587156115925422820336587616340481776087992952600468910670482398019781409189008072731254612358865092673558522750280712455472737206556347913319386742585724817376622587388727925233007225589335209689940318337518919073316010367773203458035093232025410320985609660249589050035144213573605812728396844401494597732652552019657902620179817250312653786533515634349718641957475870203518038044154241020171859375148392879642965196916696560372130262886905352543413431785506101734656070584573083800106239162165770953104684426621636573309485557366895833424713911972888630425216424665955825653163060022404550183072118048694763846988483197680913278189924254066008495340615221448155596866862386795703634799398337678120050305141914548104173467802314488076512299110708222682908634231683062983238383900529495736270922625940009304950872851516270906846063321147180312446749685719899041002348045623298551286109450168459846417395097957472011616294669897889884651203515518961864516844579415172846256868037182591020987885608180749870503023980352469293079514722465889087692565377665480141303145164964539220216591279082351208462567434606327027868025303282700578542794530884781071450132203389308204865003652020192000196436069686514940673229302938449898649612515057583950728882814853524167288733382430613583378236270611745114480590495218086718080505871417598937301256267985601213923157432377878066304921566958629995090787998668357098662310076086856476100246676225685014986196170175050668626630029601793889059706280443668438555159860690576247877024096174814563485348948520587498617296869229358809555871217427118490999246602554663306920873988179039661238467190308471748974373753989727821678953180966723272116659881907085345086346027512472193704552184825288172719826364237594991481782302941577507979299186669032918073878754872664550924884874952629922340935578764329758068963630822532642859799246054491656233224501571107103287174982674362786224017318427982665847792809154013752232580059057282010821267084084269360995712461615644073547579237862904635229293818135869766094025403050571322908225084839714642758098313033831364505135234015922126807113036050686564977017626236493534586744774453494966001509902384540815183749272431472889179530619131850905043119232980220988259760947417545637054047535809170206398841170252575109286805163089040087366945166416920551888732823211947824963948525806300843846634342093568627368809166010825178471228094523980347582462930194713774422030655564359713945788773058391180020730216281158301807940233559417191776893547213292154944924212250085627737799501020332750221515145617809554119668196813013557672663472434695877460939128274541178485710156437966968480215091434250450097713828028521745736352046385891080444265159774056423627745339496561480025385255414634302731292875430027309493117951152310873699207193585683119480110364815013122738859573334000779932623233684546259927127244284271268892719377067752803993935086486856410939953732960028485919444635592999703549846696786261423141606421859671827461270684457792608987143278085284411878269942087603769333210461589983866085846556043546780346084920155128820344570417785171864486721263191174074193017004936317138851551530505045035393157630323051303542899056994625668077741989299523679280340975433877962687878721004236767464864343397949527922338017501688196429852843008966240854442834686264594505317455630030340988814181634832983070846359805574440405173097388847633518696772541553463756712001049966065904763564063192929976555521498259874783022763873591333919923282303106297099182507662975748109758452166502394350742594526569187627995032433221753209763742166670436471417715096400901052763054585100222726997294248551506148487775332837744465925938319951177380278136705561857285624899047874489596101797827323030876512655073634949066593978096080849097380385303348058186020674743110004953210640625407399063424988326568892857925220991802324736234785497333296866406431115151213765715148948912410488589550328747338941574310646929188559415483531866951281071823479615359263921692428459602595479006674732231345239194897328432437811116420877298008351418676502998494016342222206650709155096982113195493436729588477996406773461990273424734341597881641279204571293780755324873529183068018151277784325527731097552503528264256766106771476528721896659826823150476266053678618273555157435780304980321987644379694484313877759639611815285140115763644122939972808385908424775386011772483841946906977172394060882433366567030667760755614759700566746519573233315864445515194026422297086883862895458108951373942529961932213905559232185995958686349602502643137417070746767748252927147960892020489921457254018780542255851637708043481581205365130788430884341680957954352731736449027644745957533783914047286676746671950485862413289349768000046134514760379167822086621745349900509456456933977433735545966031995086496777358579215510282348830375229129170306981179545514164865341921211309224239935420659356386166433458670478889182652710380272878598064721740775248197516755977296623312423846443502606735432937949485495126621633390890482501934253394284860443007917785424521586824429008842227110764706425187073257822685480446752979176923351925431263318802464814053271492376131087796797400251067847549780698411877181922781319356884332391249308182251205735015967229612528958000583066508190551173151067516624410424317856788683988611023170739431531686669564861410813495459209939324076593248853007580317007046487745143492859088230322107531308119647444536067699754865921539095752478576703002156840101693042323262800192277579922201258391435223091219678222629461982446488137528906427628276632900878511851783635715760762392318514909275341187806696794462204364795500739067650853629656951408420992037740760753141229184000849297311428573422242563736716947118709150435614528610678312725395098924944373200021960291422871067128755283496944029777668750207415120412396848066140941492729788906453983064108502684306969505756688390004615749099491250559835916044451572557553525047906636455450968567385049153760720485007017124292069564800936104461158821515970193846309063659351503610428059752951495762569934440390747812695132886600562333820219795787639436234569860286821799811474363049967424317997794008293396222807238462979532127022202945196941614998807224464460079167594365779920804872866907937537442610098697261080354961646453479274363878314574435448809736419162491124724446905259723167205945892135676071760972239970689746602761885299008434482071268698859765901330171995858848598938722108987650281430457237197837629866225632392354194536551256309650221444264506014446576984528577521771333490583019627001512557826530385174584452882027104109057661875403261211578988799136897813845856291751827995888975825338952649590169238760541583705626478288085763187279798318514920600528820313202434117692856202730792734293340120802418291168842770997445638840961868056492516886751580878663097111218032205194991899848840189544886534011315452135541718432015389393524371893080063703092555453646273810035703111205749369498437376377146237961186541410662196727675773067272760379363661240457576636399021560070793077723672259111345944950115917649965417697320394756564330190610017692992152539148185460482641315198178491863637755943441425627611537282386201784649604231529535872065047564598651516562642905363215843989158220365532188645668079307283105446166983246690376118026115810100845058519116970133244718274465200759664901309700716845547870094293239344516065143143870388543073092841378006573446127485801088360107786520997709598952539429229151247355762623721333698174048032275752113383346935445470017251159162134459363024671298351283874845041655721134609056916573583213881614162318650104577457762655169089779270013999409389498271603456753244131989239406141488277750769432767339272275102530286936223043523506582074252467380706965053645360108004687216543669614129830116302001881988250373904063129512091710046965926801213633067250909149909707390529671150481428305477762680431905345486516675059705369550156146984275614204305986617847211778379895411830569686527426562000481462784640736686961752531614156125187600822257897602430915377998883939650165880200994290610286797111046502007418748305180973435747693310155155692921691910341598636482165055305883537189288086725398071851640239495096928501999004701390847632498219669181948895268930596400230216805604907658307500508777055512936182941393072869414797859249627106968614576983186113912615712785885761352912808435652320265674605314811904341786567950952087736863397461244384084662214963430112257162726822531814047785900299656262416112182964199218736868499029272356331983322360183756011406507728695236379256631951439398483238904232299976845015373050572721909520385047479391867160902504344121869966236078768198291133281667575846873393532899552961076986058422287197929659600653784407909117805051552679401014174385000284013217218217293962085931521193198857751607689262667442897123691994378271491643296440660570738943148425414033617683278835041814016152889405422915874761962177557277247317779415441055468819283518047410243417226332524456312168087430367933183698332342147295602597553842228844198509877794387689333749998555715557316167534955283746917083810953397001107923601942584184281708245263839801981460642644620320929388971286559892913020492153214779324871369444397403717644903470155589079735709876210305184998975867492567436638746526909618858554337559017676473771116157264840300047088342477377810194505944293426063341866936889039984979577385899066070783608220183171916883923718450510181977661319835909706942401234935740784234308198684896535333198889677044199676599015973951099397814978511679921965064267179545878538884768880358631556630917096225232365646682499673118469964979581505410924945686909431516459978650057422477676088154005186842447243014488637588361370676968656478513962952704269448488507548838055026655993434155269270159049787943739288247952628189554916770853590350712581809493983875217169412795634626324623659344427914961778653439617840718436210876227509544799599253802456612418296081097728127448163727966076517383473875408490946021567121452737401429108296150032994794331653024127887356634371423071917380368217310576074730154923097439580826477124223881223892390231139059700960600222817509578415620577346828950755245976262108043784442487587004709313652058293944067414632475589945366221329305846149452819844067681493809443730886826125832987706206446428799871195059901710846971449320476887899905217071896468040339981681202687647592296771191443796019519252886739427359554654088773321396080226347030230581561402692437725601325202608848982562654937658332745431049659944908899740956599715273628123132670153999287649616619140099654549954411882405207085879318967934471392541712649353699128464795541526615471812793138575265848447757326136374247760540804143293804305744826743448576833755525908663622183760186851960108696196009893979448800842947697334065916936694556086639630967770003771625121046534953070253088072299578070872252876506747962681590690006697561626925365869937928102912905043323726000491387236147404985427250345688066840211897367057889574579738064543151554962116559976456102760021782198081204088439091304950829635525647035293140607658158674330256701915896791905451942503677603301206535168822272356281114091862070527639168136177791479484054089736165086594621415169509247480153311719856790360471969212478894119463658311499851414335566042390109241092782448690844026537367615427288199411848286901365296242822904000353593940596676357653193410050884790770880673347725608300820750457139926623492894267188359338635884914741766932470024890902649409219014875902636029171745564603906527640729301394708637597980179948889322487454907442877816471270452953918434935816660294232615014593510250855311215854931144633250221307801313082764311578666801469156444014455476335712484721728866948301937835036915253914778140506644504595664419887529216573265701202629441775318555430949069639263110388914209963074518955702830864536981013999498349317299325958033141122886088657389703812128682239676445733986822952494754678899157989719360467723655591667390206681992820731237208734552410043431727880960660008842435255146957496849357402579795948437705506112721885047380921943749824253929657381797690866638552518317118530704263701586654052204728293155321807095750135962333807674153307393133518038344007834153174187419399083971029841655953496203007313167873554707591434470647264495784501493893739941071002432514888205413160838556484406921580650897958918202312097315494620053007324754693528862001004974322389040127454071117240340540000647223423443861002828592539508980851123885762097763300188142047876341640035703305940284731823984462255390620368895393085072763041169074604017693787649471808709476592294094932637093395971416350524213928951714790665132045743897186370596040756058005219000888737883068262180428516402546015857741237997977527508163083335757985803399437396185699921488182285774441422220257692363172378170003448453804177852902074058751171470603514363817524794553389388730180361607067374818716081907006990867834821224642227523375017488049724920275622863281688567309582840997245211106772835043774259675253336683149272847962950062346801321545649157555732894184126540530489820669133299071722363900856521066680821792373262879852009614898414457362226810633158160007504054676924301918331917358965232552208181480394837759299352003385388805968090819756139506566891536612371924072086631893214869104911229480069180686790264559996764166060781465038334001096798246922762120528640959915506642349736477273012129708067989571332688181977400256083118267717553136947299901347979698007689355809585637247007485019967853006504518499446408820028304391982894225694567818297248616931471072717397185862551648447151576550831521363803942598797932950531312363465049099878803788614202237981057742221763172528669312111148587558731857318006466503161018705890396234913746772148755101657434696339753656453107956445829007271201103318411520574305653417707379961861249326409915086885128125494120209690772286388567461605524990730136492700792935487969491100574863556086894017839028636171361926970233432738736984179680905138315107207717312685360248174584215364604019118914228892805114817945071981910267926112664928374727023771801464053641909403614724099154973155277323787945173448532898305639666177794741327815991321965649056341363684418439060759526154368549913923057223071458334415633089083434215546325964527617387687926189325176567367026656777783238134388639698391323397677498524696547575339638116168999601832418080303561161316233063705806335876343674883968274728002150127649332275797944928400246997603886818739417202012985081347200362383894806171027303188182759943207789296353737779333571347615311117091635886857339097276131503302683730855658775551940895490159658862448137165868764362217102144981710264748147274151069256900986827388232104604936295426529692675650183590336105180106348894050597795679362086827587748803683520517999728163559734500050129384933313747043110179036948552628471918942442969159632325773928953751102402694961663366900924267214936555251279185499453824653327880324696481108481115889613003578087981827067703121832679229497967571388198222915099091281304963760463351967967705080927128246456132738737340590650557055119802265115428548446307617566691203359421872818195927223341884752796093704606400704677659262649543503166501514247142852739168215148380130236283889840870817508911750158925273743805816005702171537913797353449637259875517605780793460774114225234099921338673571149113451521589189234752000266782974549010159145672398430386774378127676304361970902454872142857722825615353757883403302954044555738776518172752373240168965694874516035624301837606186395814317451526541317559045422131554588044021683980305385266541340746612619728166257850497254047390860856241382108284702465947655898526194383000645790262657652869572739392472053501112784066136311386690150754679906315820673272367778561481880410631346467657111796275000647253648583878395298662284450558657644309036409984336416292021561501984542709867605934843244614896646393919347489265947491930311060831920598586203169505875735585579992519500507664289961028200743478737331278998064946225694912797384597285651817628353553280447523322653428522145008891393218294461467533621278401885354473961727700150061016332515948139852201086921616965470507769609469655126541294916214332486780077201440977931197934571736858600047811206822281003676223875704058408391099121107953134542395157489175284103800557884815183717621078694119681833399383283219843045576828501404066477859902851519720401288966759241110240574862227099039210847077736453810704251535423316604927255380728691288843199882480844221835437692639044387701106915386954500189931499023912354253109672025913049566733476839617634557121600240463679030080690102443173330608743876558995225567533362164539293417320018807171828576133221511669458274809114732366673503242945350276159484082712028844076634042669187700546733362093052838478088996115510416771601971691900463247858352410470462130840588045969603300663504268282679019808362888237754255471763431370128221162003359123792977395034491999275173642404887817247174334928041182033396949182749394382026117039632973209810733451029793349004769673133175478950262644124928369753567602210880052024738791494573120868177456133563500382927613966873534338520188049699082049102695595187776848545223316069494246654581078055791581453939330033610573994149199031108492958326671267048221361012522523175289858682933269241652757144725609157201887266699652176417207769705846938400541062870147044603223343191765214004865253240127053199440029629771161192033292698935641704760819136360632838117257214899670421998404229718585925264921192319543387553501317085326919035790903514927072523637960309480714952164910360598528161293419888330470911805493163433750912666308096191397082956118148252015446753856604451769920630678301591138034786650420717362634638806513149883283698127071223958417964140653835912734392514367607191409599395469527429471515068528005605519111714890667799225520551062625971422333991697960839321368277249416163848633255656866273195282304878325091091446767841720503613976457484108864847174751251654070974354237717423979634333957216350457208525577979226919031812493208050648309728971837233697527661184502870531887548853053372654722100166286544671734700455044345602779765063622565887068980834418399476644524913056357288123823323812247645431392010947756522192667687028367640521985386056732299448140107068129125911344917035587999109271043625878721693503231335299344482684913658846498390710113346619985228911706699705119232319447103400667723178065512599575684696659812554173011497990258632816149464773193292969445430754196115405934627647138082560634742282789688054476408274080691444318884526695012296457019258240690488139993705995765167176039220493066951401496501131565179374629082674821437861360516105277419825706868713048218566320524113440884859163502296289307109407987341127218571042176243306687224466827370719272831392274879439452758040867787965207718420821493265339931630284091634003739020848658238666004535611443263305426927930489782911463351211560195174736713606850572718126580368312727733878153697266697786179328408125778098014540957229669606991786093850649604996878588519979281752570178388218697947509085678685646420298312936637936788132292580320293933842951169864046597019062178987850801680595926171105450718747971575168061894878836970400788666242750111957459515934968941168650212361242063156047795520216207705957102643101779236139994773207507251574132262505347124353757228401184533871298488362199720673442877306558723168488262756664437367969502723281190186829397436975623550528843881729018745548529297231234097582834275971472011504977666875865585229155438071861223851103174947205826407115742246659599627024086327870533994610601488186076820326747198914346735482260309829274601971264696757081624397496088327512311814999248416069402261698601019876018403052893928777857731284739593306397291818676126407235178631676080302814031667291515823884645473113634539236207673917302638854641091839232306180075885227109647705841315229443139600212320911033397343190405054364854762256853325810813064742671886457602870135464212018127133811019116728065438909473340651564655534466016571269915616810665287140541279695304129462373820485161054654338742022191085969782129773296214300335621521263157609561564041296898862126632631548285299134186150643108317261591701464571761829090723188045450483638797336244478708301219687375452895625719504111016032752755688349131404597368806983178355520932455677693899348287006369147010816478612043676180291715097371070870586153595499704132208597828093432435235178346856472756796713607835268461713616075514030534969674554125293717962224964069049241821249000851864532052767796834014697092133242576074003755964999521891674001624855455453399347989759019026433660415735784678899454836792066545924146960861677762128616290324327022394303600865970417034813482443554828157755469291740627748808360831630299182742020788665460337142410035986301971431365931999528354572683123411630033944006554900905458649045840939651592813768050924739469883433115634414914408231149579746695521493516707373741127878809663596093938371756817420324713623202826350149289922641612572044430289228129362145677294871907564399984236525217034749015550803221940665625128381291254006044331266037723053318533605132021500367266577091671232854379607344397106016098959463593565878105120640644811970510807182577921996680686909474051783295570455977153635981624960743347612558011787765843135675441322389735317037964239479606742733412525490864653180698328406898832985252039236169549682647864147978934780439112346508552234715502653686445036974659585498215092409858505993958230607882447686684344209170804010147494695545025938916042759678941112787188058333000801749545638251845130902757926276777776060724304891471538133062540234839773104855930124921415699611290471837035797169592443185302414577419529616980942799297688043714090517183370065663956605629969243961197929198315872026223959124357636820163450873153861704583508406300169236143470236973222100057542433185050043309351165867385767205718806297057375993190834752667817506319032492859719008029389484700283301286314798810437233473062632991280825540355231906314632782074599712634929214298677049733531962436438957903138248159716297157965162717662561977695828776864263830328504258463668469283449290740095091438431115132849585629378024649767177742223855709148084490595136460680407480268715717253312565549535836504826205837182926884320333738052985019928457931571279351652322836915603465164136214211555017168736017424724628347725645335416874582021440621115456757943510874122983373701881977793188516994902611921052786573722047251135159162097611277843652696456613665174340839593745409636481533408288074501977984139444974714285156423054854939541846537188046574131452986311957110124107965350616913720813159042161643077119750736192459988278027544097505224866907589480171341130264992021372718758472705281906715882843237557080496700739664503689183892854817663812578951601498684050250624759966767598313376076431505144834189440096689325104891692203866293093245465116721569167652891523407521986507401397314954033058539672885188820882126875647187285501395124772201145574637523891221308445619044113090784845331045268895150935014463023463614735591026671650940074882584512085633583216824907030298678557667829163288313116675696931259487105892468423840035653656811478853779709322412005441442706915086422698766126652140391152205872674370328389180281243614987858688039600610352037830399532670914864007139019130500882093839401628056331348297328872002291772998256182822482972551597408169271866610224377257178124100991821976425028203463631546046812052275829751875757592187499869186348258768730213354230712870209526435175022126761234305149723823212626908597022664100307288901203209466182521347040390469319357627017516119878351986634045705526457619215093343515188138764259280753629476711188420824080004772883155693663797629362236549192437500664494881378793078280819934637650532789742121073167978994449002870953111597002837620464616135965309687689737504988143985508407516194271189592441452053915640502435662263715820134547359318142032684801932481180846508891061091515215745047447863644454618399344284147245908949123825055826280175023945836635768182043238038572402256571486087982104406913133622533285754262223392077809461355396970031627217612795270558087850786887893085235369680409257542380066591932379745681860541310200645142538890772605495427967605954282743279977303949471114198601545907203213160665696796353198490972841015736594476673690225614517478423686248346693693392230426642394615820472873656329296077339058372429973544335941448218263592750025166731585585055563576182345350345793629966878848088182024355298887141782760811376833547237240899662598587339313103320611684447594827226575170140753361597738350406010093185714199104066761406704680668609598742030323368665640254961107472636071908246650152997081886188763324466630617403766368595194392528867296614434096347463206508529668308831290145279402271635439083635976091786126388300188506741852421986561858189818547206315904088028042306710303913796963546687109987991534445474920993363104016326707211231563581417018053324519366697470181224857821375696553761147485484252462539854765005860482703059626126398910844755634911198362974243098056580548326895928413126949209044877973654619562371341279751862964840554984935792731559754770268049984561623240951339832526371174764679979524619116827050331838349282227690939127915965332880458761328461976718107677978526692704184551855539137890040746289999084039077893814898772555822550766815713668960604917454321663514289204973969650244270908823499444007185643510979942565395620977094811955112764198841315480983385457496349106683811273138430737766678383112094882417759494921076694562171933968852449687933162871582144509411634347142958227408156637562311021977644308839802705980486534120816930485160730591856701636708429010912369657725456459224628895872500670021562443402275495422180877855995452057764412571342217612901611268864897100327775937079513681875726780940362123043260039846693022212390084549602862948307565082310936438822289172613028128478805327532012783152453096562331627001329538414545146930879401042474696932389796558983494052074315171976980869055808115248377582946926182727106338802484163286885013070648312301099366657909576147430944008962704630506569759569001081008507502546190389393509266204861495739338376132665580528199887141403444186862969760680370585204240449118333204297896081106199220114594549089050538449188785502955679210975553727843127192338614644474045435437353359405724440997494694073634811161404788710694114913500231368648714633621182274954113491772816675309941719671273422271619311252098037886141527138894375432847776096624108733607735200997165548528209665313625551206735712880948854482443880338737673439550063663227257979020453720629499870045709229755746453901419891126758504219312775008994902859396409196903212409951495240012230014955654704238519880551171377550301013294741684939255769941748553168615455874584694090021120173848434256602888913751315935829104121071131061382647773252823744341624531679942191947004717691233013220059093890813051380832868490449547224824958579749049141038540397779150936187386299453201745608719771986789238445798280467336458143996363828107819314781550775690605706333891178406598071972955502883377408385709487384143667635767395831167100720185850383991098654844708378388792487547081698200163376128108241458271878561000152188156223740651784902627732667367646388556695681929656088029618525924166176519801646467343531079541863310456091503873740907311820550808219790210999941862597817327402025634355503897823081002979545692361775162480205318987226263771044249822293720006234872611089693498738219579783922315628243634531967649965593757513637272919607673666744469887173495359984941308047527781913928534669907155686741716397310743653774365927855474020825587803300162092164325312586682913993546237122297192362483336355215832483061847741109272713719145477503557780578716745317470089974918254213786723564796753213103464945714300338635926431375257570128215995631075540068214992831299377546631582164185758919857146662841781632876101604297425887733680997705509525647230322621058811202801304768812353421666894040491248538221322251613865091286094189521643090140969765434077120817384491457098545746982883911770504993759540378917289171751031188328688862319906717434334801493384447551312955878186224681674010117963260584036295581156128094673260577357987764057829445708753317652291451872165431038008415273702301718297358176271963786870785402552002492355582265468132803863318333825446906825447483556183484047471656523262222540261810733618855388704243659754006692201330193881107066859828300835739093969076082510897560852445220199938081417168917356420333021748425957300330467364879996013524329286450862460611859238353142113213879445715313104749984233254378955610227746633816651056944715774164859672733592630155560030273996100324701980636726998463461509548752748357830543158770835237430312977867235975131044612107933630831101966923177456651159397560537118442023002227057818105752325197967256009681332240748753303098820853193760238164186576511349550942889766599131647085300100781171062478429834342174461909354738841744343359093506928313844960907392799043881904668116489381329914762962087232988716292547787146311817744500279563164616399835429030715368260887221452975724084131759919769446977537178362957258961844894262285349629275966800665379955674542657714717832954310640998264630038548859199028564876875792479352908220491103241584292330100333277637535515720509898152201111547194179524098265026199654947900397091418983196790718391101415315251750608176374949613538701487625549305544476710612262991805641713732907421158898627356216764415538193170418323577752548830705305607492670677605951539239616295255075474313385371413048127953677245515637830837213101345748873283985620355868010889852373942910582270072282871809398371150630291572827712260433526784967105650853680025777681049869635654326928870258893312003035320432320744033366785400487840395030138388474032526810105009142648586665152563137588134868333930604449413830522205175899609056383180634833709918975778351204384458591314285482936288365816125736985090743403057403690587830270507748876496541274953508413305597107131434501023141803882437976333133774203378039913278712356040832730822874921048165422741191907115777067775052312999680530986005557537025082905836275323606553893170752660236822174708796228505753400709798638965218862937807800105912872902467073467605019538110968101055620825348768763691202600550435757340555290829897455739548268566142442949674347989353317650500770532036426031273679258262686361165032336787303623225299759227418097086521837362156504513364022332716553093018979884829849414192727650216511312734524911704909880246784041430795093901296827909283451819248073641616623075435932326259573404648419399330575193516719777288988122501068561700917364378595384776541846267284322194748525519239952907992432507217678000108579847048298290824979797318821772358193328605379944713057227530121697455645689464181183190240233757202711260006521823610849312842442594755993579448882482735074266583798318075317864750023142925527467318607819634718626554548427914599645695419657542434058507195137653300962869487777580288203811568062696494726835857817126030333340075572830295509020413739341948122197026322348400325533949865814090691697047980149108763790842177528483326583129862675658217792757381926374262660646492898967825787543094256166288671424394864667607538704939397464561021196898137285659765721915368302575839217686496058904712628907077821005513186789104055860244113526556937203691242123535336472867388049148707950237869542946178052659095841336339608366560459089969421224315023088257916194142382745075905409663732295260857473236014421701816602774065728183725463056974043649521828600126014452747294451188065778914157908716947067910659457319032020235694793884641539016935715699547197808124265545600425830209106653015218475088377875292285250146377233788954874137979512144240124480268675214582060092496980614978583526405714820518364877442039092576325720626649546281341197661278454051075558551387975723487352937152841766294988991397051874900868619847870789543807888889059113885540141329616152054057617571647210149219930472842673178929114873825709218732544489050049410165848985153702366508858895371248905542993870532609504122802583524440659671281150685286523179488954327412963016327624368418414498652606001767197377063630862802022159837068889132473759947064294819117049256640138285099213168337489911053601980586855676798926389885067052212948831334372730659174597659615081711500985252667861412711941963723112265051745076309035835899376676327327544748056667358427704569214281384745838454625723842368520759737310802381672806871103921780264482006954213531971603966261134328256467616782432586911895574468380303769426778730827837612726110301392000925203895211671985828400472311160861606191036465444701103245344445564462910573889698605280139828625976089381616784269744068472208760733062233116497987543134922565274675919890762431038488990796698460176216867588591832109225075735335067390089904356385244480559662312704679476308950753821817523394850304139163970648545179209661115057422516891112115754607094766675793641190011064227268691315936191320862324621693619257351511662289899339003047999287239056338710459358037637106387481967358243474434900152100821153611183052061820704817406446818192601308617171440263630162701443359256224082900906274071403987070022806830924474790607723066384481980081758736788646013065218904272388376673287357060484686221181468363017477706601578137173394495034855505048417661334785366081410810148138419667724283256735395926941551352622218453833167465116383812902548987661819867435566872173110937401108441907690577094932953481684955757803653453805440395080650927914990007394881722731909703130472426940121076625344817738984558397736856627170422674184632879132190579615799302585162179044866258627023941884815014422149862299694713043653419375842818843503997554507383846705120894651169073539705323914040050711255492662822637365420176997741380282388626121117758225869576937298185882292649428852217122938402197736457371554548135776381543039381049883572360342982734214115890683430646011021195036179954767957384828040020936539726465667938134764111218925422950144640327532477522455634354536523700659886025561393915235746477359674559363027673576395184764058198409746745061304140597573990307340415962344826203384998455398921959606051701890244216814385450704493126316339004002016385851341647286419724444154894729721880295605693647114336225584312028247508917215408116130596314172346996191038714024059735193627251937629986267647965692612473722675569434984320710647036431084067702948089499928167867443174263433704142875967448416439171927926594539092501314212136758493147334689924232855672297511154001490057651321325022354134525795133034504898961112875671467926061744879223354703287678060482251971077966670778336519415207195107472796808756932355489518958555964757083071134802219765175152864066357150639128975362853512457415761172827887617150897655144522913902126480144567416990228008313539381101611639568918915624029477813510414173690498683675191116523714236968242626724481604978377572430599145141109309825998163657235858623488347757841525046309772364468323000185048306135965173655018840666623569246596521484791757987448866211030209918770074127402292436391546691541180357114196722145127301533756219296280893872469078554195154813926174990805478887021816408618292846496174812708209059426047836174771484352899593403591980163683735263812612259809429762489955221345300976769813960055889034676027578876057782299856106676873765600943219869810293429599984689004949318088874808850799099218427458107045155570085028321314925558766563052881693750605412109491198110930732491656159226835397078730406443876253233268052038583475937933429396695339361045072913918429206999274847416544949956347333406921399610633898653119832907670312713590095634260044881081828490080685303453672295037453034654687578906801729063357980906581159426923297931843015169033959378527674926770400827334850667522502589359110177716680872124191921553319917697634151333168908428484590240219559884651622017717488780697296591262702106351584122262478721169535074318735180510444604924418582744101378746935863989438684482346608854462771458696015100972107311890451081145366386590928323319012837412980954872759467750137540619884068587329949423115105870539167364084891620666889471139835447201162830053169472950473706557309802670558948177038594757940345752460953307571020803374966390197414359954404778437987563948913693614847148422648252311632028895253518284263473927684814211465606019045604323965246725466735070457881726928681071915211573957431081933353870588092150323814657777681863850997348547943402610254320836372411658085039846763690143530078701489427911802682346921732398220425034713941911388595195554946575885617764055867972591330463352899911927290204353310097598978943976914054256978947879540161217525418033465815951631273296312263491745661968587231795280525260404970741259042886520182788578012435946487726267948945452088387569311874134178175893593438110725937473083341256356239410679005733369386484716237495649391414674947930549238695593934361352272598034635728418647795684981266102880631720955675830971654504013417830752671200091743559215536602671253179657708129310893647878101942707058940227586595409912826970428441129693966346444155778169619544134601379588574535284679770954331694561110951294186670869507320778730226859760238175354760796998202443165218810796257925836327837409750185749988334700832882267544819257134060567113773769390812177355757609018001794713451411217220254167192267508500097147486865334875313123190573892101341948144356824558519937920044522349490819896033356199679332756728077751303339506188944591727634899543210664994870335671926989470971735032415754082808618578290351844389091558690227641482208991448886890161992207591492527151216003666707713098211731021987275867405498636877124220627742539176890251866725942499171704526716946991612321224609966183615067279404288911566032354886934366135522882941797603052077546651313709595890076815324631998176545055936408278904098396908174423587459251886000805137709356200918230315028829866276264418513881848119729241842906544254541665340170486080634892399177705399207804059724854803859690316323181942830746577780788016795224021631355820449687586038166840807874373351711337751540926619229643089431601170383062961583378967463926344329934061239469134779312326469685075256325979919031034521135210355036299350845117364838397082928860058063884046699016158446433536102819854810322145878507539369917826689400593198852517448114042620814819438782572716067277436832948991728349480677546501850962921860022888662854081887869241791993509289458201757495602176713249704708545384765482527260066572661345095844663953011295787489966813143622786475992872890619781494230196469095090988876711180128811901249289880112342536490203621419118668957175616606833782052156656776619731434617504111976265714368832375405555173756966929921418063990190960540148359433941951225173901326043178725798840805519441048147138003106515252501301228583932407067147609474618004594445900246026860940374386940983309011600703041669722681633752139685097447545215117906431193298412719211446620544933114971788463227096717842913585173227319116174780837762348511769881919634118410768490891970475378484177948234902649211818795379667555935648141993847484577417365085302196419015696637586666836629698099212445569304194519268744832048708344892806165116318840239713744538488397346500512343968778852941283871004914173665518224206284320434979822403301659169094862927062541588742657896033547974317520643363944885545064526930672255560336098096391907602214025196450992046980092240651200223218439574177404318828250775538273260055172742386954073851797784718194680867952593867726103832138368316806904895381663452799200501900835233240038416326718823614568336810870031160123639472512168300382981893571900532490839386252551880525393854012047018205797102843811541295865591446610711891003902815320494758934648412058493162393266181636133668809759104282062936076219714191498764617062484253012118105783620879274975233199801450855909922399525934266868926763168446271679500269024131445356334491288976915927274508014031183516945760399390297800468446385574042943626090443081381942941706857722098902902139470563069952873977107088938281112131533034671680698056250216395340869638407141296779300417757136667068589833686547499553026094041730638949042729264360005658432683101905804885765423802273941141533108783748618725384945961465848956092479018343779747289311167830569112681534794223124857803384362341840883300211170294515258767161763944069366469096372959547210352972490166055478325219882038520969907688543332044386180773417633475235566201538977211224701857135690110525615975723278760382849294793082688067357922529520943836430719958061264703172238164954206615020042623316028662682590770653788529899267696590840014093141535480254402157931985977797692279022853041612265274172308365241829260495493170470099383766063332818802095132621429892391825223557482937612339832163056052828793484357400448132721918942761208609002795739739033467223235015620133402412955760649134857932662206109292827879426148891742838561933282647888797711677111856347420046363318512235922524494824787434636372576770750498942824332735424423188031429909799331948629148886730265874292266391864909542141607040263295028992912758557550467337286170830951522840636937418114658350501599966537691236077294780206683791578131314671547522951965603042689371786547040958580536475715625771151605812253249075154785375957863109431509770199666402668737162778547443430341070785988685747322765220136011041908272112801442568452950243994274840634360117990001450142518200271260748231763743974581493934670051843166878946249870442006141664212269998320275898504340441538449373386054866308318893038900388774302895314460029900389589052949673923192196440484217367503994099937639862802767416276479488862459074105519952573813498655075715736290769366167793441929402793264011700780809817389710765867143849753699342601563215083272710998340815703009963440353416821663222132152107607013833568096659158103739248305874975807775624411655502407481405431090393378248386875906833466765800505474294809773041892414527664433902646684227350773162606585625639958162125544346671628310352182635470346900132145043335896690375762518504535475445681587686005864201126325799163369054403744823069952017695583672155144282742245699087557395847889505336649966756845694415616677639876283032231540553492633236839131569181898207776630982727630320745129264800786453737225431124210248881267088299307126707539928028232123518202082957379774836252168970731112466875733491231556057161271072101304237381304236905903015117134646237901955358817960448070713131517364647066649639652466607793653820578702826827986674617597866524904443624706280271507484506191989055251793107613166076220891510166035786915412609271543020074411713361834449653599638262449031996702671322865334997094741552104800713294770674792530445247181270924986486849955621517243650866591533300442205881113653716408213900453495054438567367980900225126859014043333118300378819623151330170215662104704587264385521016551163683411881573366417736211142109948598207185629290871116971537144411258486613410581271910971103883647520685411885385652193931188952373166711729491418558287294180087085158046279995190084177917599759928512410440721221075070248512966312676533909028813642085314689423631668020239994793351115818043576382559950265696322033638423684098961668431212778502183344872394022503100352954263123396284200048927750610606092586896501783190128325608690869058855815166529222713915903376959242617404703012670269895950586522415103925546812245404427744715781205179875351641582011553493040402372793500735085395807288257219631963158860876374898621973069006452338657490786764745703886966128055599574732214718131249972194914799224839798579311706783691504924097681011032751979344272869619317619579517783299413702944866916871224078886758824220515772585568608807421708326702776617015379737243505911101446074084358709856665011938796016937164638257641816864180974360132593275783195668316711068591611104167557258941010655885124992108614298846587797939896808104114559166797563241615721373744815203070725744188985709318626950481390050540778097671265330814856969520664506462403047289762563040269687108943598828750309685601333161185804019411881643254408613969755503787837779137143937755874616686326090288070883244522618820593831503299077182282800570635542143216041821770063330895403952795662434485379567573983464463351594720441431983042932606421702201339230735200430658956041592544765651210639657264775049284560714380130301231661164581552549784347335251080850899695291164792706299399215719759105831364707847731954935152167008140390823850135223493554740752223493558058245938477097298516614766068713972311430246212250057790931904600913705017707940083612849918052662800089247200671171867979353589906618356719774332757656989917799242315142102321772872137361882078639241331186152269531991768375847895599310990776850332945392106833582696002747396081364494875199956765058879857609320773900804955910039093017484279653807588585773026317704102672076781108419464053366333029104270421397174558767076529959223319869071819462725644644429123108447401168543488556176210615729496268465977593006053774696947783286907338092752781564325190171701873185115655193068384826457393882952800573421997973564422363466589152301190168606929494544800758170500614275134748055770752908647087494675989001873991224624490985135955687683448872684721699217348237779684852120617214800449899568680802877357938406157539957984852551147889364249193562177239560336977079008004879562340132256926587668274920848530447543115649194130418942377307226612404644123600024621816583336464182543194648397749390103304739086203568524977136270277096686249088801578581973902160587024365381090304170683348604155207647210249486550906590914994967003449840380805937094441912420105380383176567200484896024132828309433528759723704446725290910978727680606874557609589561437044973686132663472453226664091604824163383869730295630217440721592433891119213873178650466526344991434620334786542289318481625214604949117479503756220016782131201974618227525414550147489521656288889078665684068865893167441272648422196991448871611581599168894885083311392297754714980422658229536543113322455531938639187519517850525061248535902760648705517671123983472862707597312672975744693048074624305740071702139939674219245617119282239364740784836233312914083228610869596236082792126278513047235244222773836216219770728391636456826153054632763681108337860828082521695479014742426355501018791926377548484367056304498712168637552327039856472038623983095378190362064075916387258668261251915221177177642577536398920776149145044195293777459181294127934393521551379293378061195468362906968015913338302232296570404481964534760672134241055249813834177828677475467508036425366610543759699870129583845545243749847766671961299207681203200508376633662964746543007561014362457272550324759354666166251185161042057183007893634784961963099829114465859998958921080404223526155727182624434192180036847601615376017357067070479201186734561051270018627286114688876699664594954931594676629426239671991284327997841197242282780312050098607230793641130226910771906364642752978136282518168447890942496466695413758126202296361325067049586236833740684395058319149193012724168875882481248215380308411627517252177054520619965540147258766525959596903033409537301348216060019777524351832431307869499546347644571267906253279735335288652038468390195602933878261640734744693677549991214518589004419597131150369051763283424143203896251087186732944321593743049052302456237883542658469436151380711065723918611112654706948615871525745561142831933284581108077651566487812460233407527915848630395376048840479352810822851920241832524961830081103469652166151555435515555973453669970557822981386929415292539016702190172959148118360083968274399039584903318269418777473429305112055557689112720844401949319103453930082741713637961613952200052824035277515642852437197810792736898453768518453451269282798660928643726410527099721932382996032471045635354405734507988010666541858461125067312071690799330103869626173398206934284247607448068362167052162600907758928961177314432586712974750455765587654820851584516086127368580616953482979775491211519084659268544847370705307440180427050701815829811599922228638955392264553696600563028757992579258818527618721810669102730116895950224183401749084662691858114041169079229438285599030248775143508588709903131079429178131286187294559395194113405976487945712992096026822920659524165697091867774467962112832636901001115482342047903835620141293900594203356441083491157845691576552680802228310294393820355749622044066064552068416814776101353010238858489545540143130500278205846918645770516204281813984750622725835219831443367229975562383556320019387066754949754753027056110808710395667410150590197941732898479048269234756738303048751867718166780264119834672135783136007749231928227403620038358718712419179766873174634576366574988250692339142221751365516569914445806051085249703013343574683685998434063070123036459440818038525041816548788502133062796715086358985103228971436947808123347455939830555870233545589153079658939063910244804404301845310907540220556637934621452508785189860286388477025062765621977911506625355137040759063840339627140541758734093860128447625367177717004882390051690134793955702095543972741917291194028082622889172709619663434453287952944292318392304614360071323043968888319096989618680998210842978290416193393910306974048485632798693352250714276700105916549717930547954079443817575399967549354379358488305695429918492646078137098641513540320869302257679437359649430145143025087020917375049989378789389901932617913847490871102000969635095786596070972198377887554104061875539673471905970932217042828103757585146062851914632259189353173381099143216394189607929267840413842102513644688016174946919406567424981811426655124855670548355074588744604490253709408506114908259896859602393382819826092401256155150157491234173469716932021708087453193520930257930853233788115048187670442881152303653396270643013182198506541596634168029683893473605438248391387146425709723549071383941885373963635137071018630869388361716876100193473379919439218510932141396542096325782019409434201735502343779015039024963802669396595177992230380688997683849306894067283861418756020557595974979484945546373861216878875809767277773432535496093846679953666038174503463030568753753278525618637943198131006259519944201717413134719725233696769162548054501492135443479373000783682620079710311994273657358637121898678989223819720294893864795919355047708276437517377629208508190424366402343878570499234764340647770981441922182164289982077644760609912764417690114614488298589518332463875610144943911788045481699970739950093187249972896187975411954626482226714851832722872272192020192688219548083805989833914185340410914405653320307369948725563532976642974434571667070727295280088965240318438778869441299395041886083785874295473993956504752707726048341644353762896213243353149229906716550735677419015286660250426756408696257924035939473299235094802907627746197429540237842521276699821427991165066920426343607559178794115293661384934038534733335047444030080487610228457290099079592534749720714350792121967528136168761241031014592487256755441811219679156163911409316400477031302609895853437191655625383862029943810861569632019866950237695820417520441524953967901448072072412008853745602557012640381956658547933028178163161748159934411385433959766733089561087671885290066504602795607699492788715013196972150146569002898350432016857892821449544045813398045105400735723915623007088145333065690001531616243583051154220311333468719292890161504297276212159384182718300176269353333451993164332134585009251087888974967335703239414428043674798260693113871898801883982896030432966615811951346404639232020836587670560226745629058266796052829523351124539495432360032683092913294251439878903995068575276292073442753532510414062593123608722940055940254576759023077629088465158591009083091192538080566947085645821390950390243705731203183054340023674844511602304584663512705666097340978087928267491227460320740582596537270134362009211238410716911973512201407150045213089212812318722332999526444090343998256589795562764520886190560088671653262670939910841103481210118825558082924366085957052864560272512166509043573992113295962629242350072042060300261101213297969079482144271639359398454144436798356258413576756170061132637480587173820244355191115401670565462638830684169459829393319561888556376646685814247053113879105562234323032608395364650719239742674916315854356172902811951881488156085913053147834882439846347494274742819559788030952861434213509525645049963347610567092643024220423572810551216037819477045475720093504423398089751116325622933535210396747208845471887503756972962415751337046303383750595168189292005629769854648592821446444971205132526062960614374907664932427716452064218749025833136061099841168443798483350100414481123491493962532178035473519369964515837603951892632526033022347408538001259379520726132298081602053412098460597435319382688157542454906944131489873523221997675363869250578367538658076637983533092680660633623208806937131606472915341847408922275832444385699552332668830732469789914106278549029449091748778254925661012480250275734368466434206664392754514350226192953571773238484277794417318301686153095468408956401351439923472077561304431850887974146269231117733942395335450564539844146138559772506755771174200962510676160487377229907301028604589500606280795494917263675807938860051515873347087397298572691512833377279694117281195257388727212294414373434914491022159973892800405441500368975289480958039028920131920772654778337768885001954158088325212290894783666095657922832558714383522342550911228853378874246261614866910390723684690054079179696855657656310078477686551025248591349869300095191474924698491360075652283210963458250103527907554360260788162438748264722698400922482023391905433591069944335941153972995288862665732356316346171409469952480042958136444100179279144939962064347612299982100443643122602528929012778624143826924053487183543968207908077290610116968160149345594872271390415570515285772807081048124407024458708676623409487258857492749338390628640150277501344905834039829409815785865698037579082132805501134723629036232604155038479785565179494182686931617926449660277091782013679644355800594246016958803562291219031690763198140678374950959127739079144512629119941731188387548578716079874528364417000230263445462623873020513452559575131792228540989039464590306268765185419845019373655433191038696912409155639876104883327101741690813546242579708991756102782169132969539940445720537086872445429509805726094034826385808355267637550246938051074114362053604008000479509453964033515182846834772340966196165634811279632086643621719327521655632024587393168973434849498065061343337131735412822299964702399006615926920557409878065672783427954747904294179852053643554833414683843997244018787237049895334755439738570704773810858464166006291580136246098701959198888252936832922451585471997724079620657701990597361837744213049322613050913500689639864526426441039620367056881670839073784545492684520324715908403861311971705000802756992691482538906540925332616017599799915981367048682870225667973952610869982917805431004727481934110165199425492492007742878471131766714445269555735042606707521258644347510595926210943463676721992381957271440163116352874328116466834292617578312349828519332957688830670791323235615991957755312216933481166212287396055516666120011870194104007972854250683104788614521687383628131656951177559217650129559481050110787882319606755243655853953712326526606672612802406989740071370560609006414643566937806897215242635676079179545853386120828246661645743118134783015022622226992484123031476577386942680689771843809966368726353019330182670000025296533989140808971967023871292260191517686416238183392616816603863335886515381708559846210946304153724157224946788071593304794247581340086127585555648630603468248834698909474464267312232344281524430190326898982484125605231657805248250813001430126805234786595084734933672499710416484355700072938942663418008655432917068735027990578165612180650943628578504102672705689626698910081998152681686326366689733722103691093539857491328624852207358926007921136731327105283570378078535061183624904008435825736603024509703546856688170608217241830933965890858828517910535388182763448907798183728392378198472062285094627649976111401441732090481700586261230546692285606182285634729831593815802966098638336849029258620089080297216351224873752659560207765063813047758618914018040153330806430030085446418690477835147637105955900534265984378679661346501659358666214636174214590875466639600562009616046353939752034644252918237294549099094198591499300366475551420969054061909798199964337140644452020145549896788528003043813316914828342617881291879511832876986090338879557978282627216716638802384954341026637542637503705007558148926571473504741076882034519480440985328417572961853703968724958680007168346970337992902917328127026544137766776484247285081644758095633874917833082580335460505011906375730171037709496168944200887618310712358174649764012278781579510393652273916564913204258645033141076525922366457924432466001566546208750462385747981336565560020030124427604290893302007087670683254745368968015327759299924877021570265321101829410480848972788396545596282652399367908819061110179905927529207242582572059488798064867370043534608135822874040139317272970208069074145366205115774784432559659903203794188502008463848205083291948672758422517696161342268392824253765151758161233051849624484259324981918908269768038870860962350569742361925487806744449257698851035253115165298857526212943096606342525953990971142996356759478833644984838041501951528582310550417207149929145173724499356111306042736783046433234707576537550377386889062196779312407284223795992284612778152776704807005588806889437812075634122939623959908476148850111170562532907138230905378275515606061586755053065918915140167924206682694697998952209530736082630456379223756550972493920780717124467514108780584157161559332328057971290727649200091832264465599478545540333001876056124195812095911085384804430442114191547229101379841227930219500315209283830794199336941621693921921128741557851558784060017068597313119629986874848910789453573112981020160682188125125167447112555512305958423370434845672532622508515394005498391995622892792409136078042801448764772340645383829561745349761375521115276806993760176855948793270843379966239933124563101466898798922361734587938880113083375553833643683069779655289628615408131133372079940389993676078676631693121024209828237624772444524677438792390753879108881582759643961468796699429868501328456332710327564292294994301670368938666850798992745794131036009464772306629747683916705869745365239823987524267464852909801430136619310551909483625731448093433015432811474028053357498886499557980245157642075315703950414368569477689217752711265836123883578960701586289782518317566565180786766989199175925569339915910133256417332412935384775151413532244093915368825879223685085016213662279442750065399663508259525130422317070303230672369851098719728167772770044284454744627201841569586074846749034120536133220428005446380222843307273503137212475660715708301613983377024690708347123154086199547734405284249284173497543720522707235670266614910451207133538772471482426380728580968458130203282057076392357929411235963812381075184218054935649900552932695980069771379352351879105289870045047870875732810876029100432879930484694471452080364750589196701687303532204578568488577167524036347415273873228278641839851049425685280529968514716179769790810019361924930484619091253664048230593337457819411571456117323083363571888764950437355827835410822628669461242871320049519527587434621519054261820313670281379014914517768980084207415014560505529811394296135787756619196176349013425811196737858140754467555637460029325017495819354429165586535831371915345463676516719629954131667851050061343185571547458239849280254019697359048228909427657774215623518653365549984418312667683165102178791485150096051014531312856445690974267663412347137525642562603406317025184806354902826243157203164429830446547409905631282135252549389104013691991899904814029831938989227607383546835276128195135658413643837347998920800837285347240482185857531509246369341343898259360966952585500346980405502509563310881260517170972622263423352995254815338860724106450502191793546939544878350430136271493669928448467620062214048637076203078620871138346277634026522529735589556883594234261223087469664652071036735128866471649445975922873017280897558078890802773941758684851535854835584077628113225348741241319570454299580839103350102261764848046644509872051317073635307818024392679853594612447661164165392020719087682394721865913955451000309204995957478715916180990833950391201422653896236587226187348383326530010503159532873660945956072226721632604465451166131206278975076796157874443148868405270217223827123906200983048211994000331861791813218057489578564642610261802003071087713369122010447315831271663330000801546746883755561647836502694918396989000936853005559672711727759768304004286205222243626651907476508758495201242232329357430473391142811935973714159801696472022776237285769377246162833637317305106687283543391802061513026910390154771835614550340722005170610761715797542362846749229185309792438948475930133629782885458066494763865888809880394492825906695594665475408467860721873165175545654727215886488792935471872629644881190141830212790517662727529063943420583176736148888466191047748749320451434204912231036571665423041261665838447421858410941140911496687794721576625300968109125146103864693746442054487040632005040451754925078057858376874255154740714079095114912149269033448877991583149618727839797264593875734763964302332405849782855635962100739611354714035323237448296097857449239901720598166896378059530904147634725019106154411963876658714936176534904904690527927115281930351313108018680469823834540490188100726053992180331556863767448211703972696251903976278353365684159738839032782604992796181649894911693794922515191378140123372316141413369887065445822692300189864055132311969940669871196235827101331171575185576090506363892869764534018851109020915180792690667662857494495485929461061903982181170603087633983502803833563892691666896649927301287878604748178199962637562181442233963234256609215233228472681409952857287010432208002200410409508673434032857473431010014018381956174623692396679214366506265384714555194806851942138527199916080438851254576964217177601687968763500300421872693429010731008573977943263872887462466977462283476891717499773419102563097628951634346569766005128584964468261886371710171400006378268223406091208396059796388889010537177194327348661962635910192818530942890789345315608059516629121160982955267819632405666234015322260002542725279679202914060785392249989194984621096401135783435299928199870802643270048391810900826558620785016594051276736216802316268953282397458955356557875053840892263538445824549147605295974389929098833335492351330558970973706217767583929755138027750736649081478515127437043042462737549469976844557841305820629782868622894517885446282528117144314967611544774830775903095025036553430159730878664846018339824669893038578244791889623492159838623834335316093130876545931384983784803680450227159708793097501951813910778067864807551019660863460831114403987571007180784193432341971908808413138807808264617016242753384010336039315510020421684454655329668203089815720269470183198901760939446431611484505363942984100641592410203150910394765065755541552014587094337871826315651812275975913487322413462774783207409125214231096866457523198071707027706293587321409185337371937234546189804235363534216794046664039807540899853302402583493765629256588774384782689718804540978659128331282961641402013044408794581769911994755339813075326154349865427938099380918304676394025225181422895198225304789868568624138169044121346501822100957160102405326903488814942009189827979565033679063127074763748397893281167660232476760993241489306390456430221548594585361870694047446620788722026821102483421535240747450784227326154718083581483791674341880608508879051198911292224393966477796295411065929971400547158041586475335233690012435049497557449519759877204754458349615845145084954734777290397893076211361228518057322172379683509986376311188175565112425901317374633726857717532925816878078389819024568427433174667690156150921410306478217313087555549003548117876228056798378153732534385995327919639981961551231879206909913643846914503828521076058261116675998916115190835052948815590978832395601699964588711348859396049408149644674563156807272779150828664427823990257596675244628422786932720346496258960924742968703986509727457939060910257358309131334230301971067115640203680647423826349565116389610716715117564627835561009936068009579146125417522690099731548481907791491725549894302648525040631308172690499417241086631506812824686126922242067538538081109712002384728727422243006221645348786394330057519088601120659561086124073729100266032844850889700153867206300252726869883403977830282792726968570610235231229496930816400022987068645699943660783684237801436570814578094155915688601041783216408387236935226286865442899717593981301810878362662693908149811109521406709986780820470058937612948578237760349331408917842761694118639443792171987943730801927830540076687200447604538418188375485267228827428171427081704896165293356690719123274753365947537074311138797880003424172393541461070911013974780327055461698425171191151933304365861023688869271445132550077623845118329654513577040923858848487773888399366122148781673237113075566682504349628760747144941423969753385933326056244757850542515263681980008638945656989676257498646518655571834829880413364977367924756670524570996730634271368406069967740645521377077756633764642565856356338413546606104395017478234143123677516726160622073336035519612653337584566562782049056715112711224274363534996951811467627722059218725222145316959235924426719402098070561630819896120425002392650921997528805845214488573999868686214826550684755678138340091908615415006997456630710470505309993379458838265426695973191319002379833750787461812344481239660902601618080562052753981262538530923316375813545172522616242167847397930781314862147236220801743417373633713272514677097228055952212801369140250566072945728904415532143465663397063389491465799436959426287351222876466449278601392809618307735354808019339969991920903455868691600022818564902635923785417217186870256313197822391406081895822941765758337274654699321529336532736540178970320844128416292660210051766052820114419562176318795133646616352388428136190369557762758496114032179767167398316925646700858100426340352525973223128553913013575974391879886951321569967694420178881487457851868829362749987588766954960256512053192329961178382435390975193806767364998458052139643174163670162621458988343177668568028002022429129287575838653141522345811060065572459287376588656161360346592825700305208883602799298995509727739274851897244746563374460895612510883578996065711481032834272256643492547087729684592895223832009292800287334015353526058059667796575299172820032380019640881139412069576841679591037049423760228177339965881528679188488361773197683669200744054963333573868376083026608978295374250432382120423821587119136121572054372501508795984039305607546733080319030134930917854149875102591944715846789968557806014613184844593553800165760407048246659985252973829691229949522859289664018562937388142083638578700409226578339216464248583279145257737839777190307644513257758397748263239483246561923521340019878040749170164093222755589246383053346374892450466348973161488587354671621251410915112019002668451635675602019808353844524705839438860045840322174251697261288453327649756551823407998867832998033162740347102446279864860622604514732657248535194960888933244872992203607788504240228916703392936481335875036569011095676941765757018252351513673334527132187693296828985577634766772742745291809657582393997118305446413932475172160886622448265472818963663663855774754790073841087321334058607261058584335184673061114599451557210316502966790289925987666175526043859216844961174411469616422018981621092402330689416192699248900500588292255306326687071369441377152370551517989099278601550568723158054168764497008367281489975903134163245478687920018311450884345444044599563360327364320808426124460317470769743479811040093186883893519590222398018014491594374285375188650974381644881626857782561583131831609611631396531261852673620200008823054585928097319772813522888362910964421259048876495248731632212345204461619582165649844910597815658530044735030598483676354404846054401161352822567973139963338471727489231624496208670767266562951946558934386546281310439951813642590992955619367827345598828517013806573002122864788611970799584123860052628821580038527433727756919490608065786397576966003425713056249554059543760024619458225298030796906886711713485426914408990298274248027323768533953329315576303371491134236768621647066539134556562238693208337767422309898360794782448468797627284418905154953391628276505472711423576249556641287495606579610870550125064713060568076920086124374724511718950170246833185038653300520549509861392351852759419082208644431937585250175072170870838302474332851088313716763100443348049810523919040667676791254673577968635252234548989788569870246681357874458440411681369513878669176747210360077485286520106165882495140991031480575599363326276773858019008303958752641740191058397203505214361931839224684592684848071091796968887132026263937382273219269562924781492806746793013876306802928575899547608019685105791327939747408681110382315339203914501019296384516528858077656446658861003970134740618282073717926356974013260368468240603537389923677036038632323262429575883697482074247730984151392331855813560636098124429780234416941465804837700238357981961648454223538420737378525052289357649579063290117490228111859111564971927361707509450918239611174896962220507545865939775291637931375774836305291119176268111116954361895491882636427810398104292381545395579760675221131459661502024604444514551181036603933001295506966223098034712696260345752268957147947835209769295157150162608676745917936256578363950543954959382182274092127647562678584858201770197020468864767942551749057170450481539176354177938413585888964174451757995892223181068083672110820619033803668750441688015682057881006198488714204381071492606633284084848174268523885016627397163658125646334010752930425533265274399894681879854574640587790402642357641864641235932440318187314130560554301265663362724225298831537779896656288088963009199595858741775911965195445760313620171888587237970318165317296176941282509635598279368177279306614224721903025916807314075014412336348932112043874632008982800981663583978646382148937524069561051706968358892211586446855252886028661535067145507788531916247059793656281243437610790730548701285184047648682089741244846087094889194928194592287723230163486967288807178653813745140152353127705705261800078024911536740612448752051037502886682608703913807450059893337123739901169073802473676475313531281374133318884487915775722181749530822014939960038801803966801300777217395941190358958831779438821703140324483766669751218817088057731610212312056215300302731700506080200821837068351835861713350634888801995094379472848438961543346553585174661757149387709277862308507924880821914153543826319591799945604277496118917112050315041848282997419205396880170647734820584704653073286656843641857486117025766314838413843672649977097906007868729381546278799637928338841289811433926934208155233501037988133121274265574515695299629892763476482561638968655154333677301638173522161653180133638151493648530772296161314814744384341340700000685190149252380849754198666831078576691240399387438639373607613464621189999220012774585024713545045826290208833775226943618278118352949187422369064343224556564042581993024283920782791644950419220980951741700563204973033238860109224501441631345318106763368685915818831141164708545528591338024425257889812967209799098944171815482067158070042976450756341948549321517084399121213202180865832570084347863637271503165876143210279578464485563432003235100041267132169945492788436915369654718517136755559137351114939873997662994276300299491155181490239735690588407510570291142589779824343750470776214479836401986925148778519501439649616688881096793392708162264253876936344913640480010345003470085211007465388822664268988875569437640303408056443975024672617719675640296687375160992867043520596153587244365186514498447356388083617549347962796376786429883469915343214987293259648734403358246001034569534905507667272385932077293759887720082021916210645168955380668580053686803442605372315840972314204706070602607620374003753346738507660021725097149060271607899749249991936643633756488984335856565556228127092371702590225700420442569052581022182085719486369684725965853039448557691556670062613673327970021171231934505653240098251697783972214629212250984341708654679955516165497970812347494590174331275627586541528443605296793357800512183578467647036262044708365935558848648659345245196287040984721897004816206967121010298613873781867110191545162571539326396708498006969367389634585861947158339671241748769074409956859181256593406771634978007434076838373220297215176239349832546935442648989177597229045696373839271295643554835610461168584147096999389077412947232385007517648895334098198932144657852333137126144602808335746309467912687596466134603840871053529802949044849130083533699200856045175333645802980334433151536010307273330564452633175283177913497877784989802157876684826738004601139830510632276598135415678997061664334993456522335364655270367764755189173094507854409905026857048071175609281197236326557698308918545827768131236671735543712861310993038421574960094779465071513366257288261065291148873945920729587641476200860493756732708120932338731105288717543168370884189164768780949125787786405226877920207328710448491791345885263661471775245125524235807796866307645765907080490676623052657890694005669966725844427430557982173635072950359330455052413712623069062955593157924187789727661495822377094400457371434133120252670222135047873025809592519304810012485394457121527102535198902153017192820972559985826005556314242743155340787490315227250851575018497411319673935955577260202693625255327011739541558180783072754549724201569710113508781047235134495163481920741732287503290750363947715312453136331512342778628312198659206437439972304807864448789245924376662096635608946934486459831381148268996634434906367898507157911143540453067493656972766211356500708610298066320510358050269828624064990842799131506406657884154458022653876645403356161974813398672050780561033138638731767607117025511881917205859941311683328069951397832135134856288713716787727039377698766024795746837569912312354106981450594380668199508263836284166397498985939506920364609559297585794787116999301113751472192780113542282101235391269788308557823472647709376184231877760190313553614912324579327420771265739705987306419992244225118650243614988324062671938169626698926545731899286662939160166991965209864466909423753540784706744847731905205395820117188988872787885033766882855768859539220688247694307562215077598393570101871790447656261773353650336046580918049666921061327841351052752062364056070963279730789913133165767604261441011094195319096165433981647770093646110669144262823852411273108912292984540262131404016623766784087686356267404731263160174532262722700643368556056024548850974367987942773120152056243576360246844686673257971823179131950909322811797204063215945225195137629578964875946286625178646145571140303302788212770202666697325414641716594583229862255299788062490849270673144169792056286004566454738445725349651830787173770228528228123247835862773897426771274311925728651459367582564559107008425133917191914909266981895099193791405679743928235917922697774316927755413573235754369982509475484408530139100242516890241290115081702733101703395715399665944336412605752609775360457461810838338009576383391065629105424936504461200548744164583778083192288971597953519874510303915840507064657017611614384035217568631096063025922049043470539326075184732088963573231639723309945780911126900474986629369733896826204761683435544177383110611528267203444526006348066323541741117548209054787340490986101630877207852129911429524545031674763327922178869087645584241193528489344814248934374067961508041721588723538498521942999260872538128504017587495914428078057250536676519040315126470128291668072687801994419215434301951992866231354156818143680896273433124843651275699867282856194074032263329779265019820080973063854101842321642212587744442589095755152519783053151113633525477163433813207108579762443442127665817214745147249011853568249569616120985291458402394052339346579273398035006060540967474249607160222318752800899402767396955115002556550104295327624645782465968530969175042608266602198172733315083160413920289954566358542943527225814397484592730528240605738686881564186830655595773408287631883811499593418911062021986877546622384901564190870663467618089092098826053295272700032585061340823624388112451318081077898553305654243305721108239351687697214526149830289954153002439044608229708914824999313978981947079757643222531216196894094051480962605824566152328655321257755737465707259902001285653511546066095235385685782468119068393508072967603125155878142502248528070014835458982974650193603301825674350973188859539062912524993199829632229131408528360997203195869770369050335663989572587790986565927359730050735221868165836844597716826082925345268706432883358753135196572020995051199910039365742496982910002123288940654072695183243848280158404725656966129498173100436986190093243119296274097545335396017898556306656181350032807253419551878667362363797001279580184847356804765865219357766820054501667211206020040170078680436724385903095799850927087893954991887668329983566225811294710880716880392713406789843404749248647755266003673869595386075076013054687419926176625610355969826649530979378748094150768226230174876188274301492937492923682526842717932505025686404259753151562820107195382798114177538822193178115490483683732598332116336887915585389820154110455512775035493429316949972945438129298435284465772736781149675074556315940952348392891616859166249892281274914339274850030188542796228156135619499707188570466019821680182231739081241221432996458101285637295116813246180098559782530864541522758965233675802764415983483343607424464432290982453223893866737250590621598607890011853705590792031512628037177571266147450438727398491980875546766259709664500833724492466994294685531481063433686829660498712912052019918504360459857848021398739593927330767908854249501783935985152615247419905539701515678483161394348158462675405168112133486155901411008324721074166604861780157150310289008319672181726465340505261203397143683038979272840633351304901590336465047790269980256377443475313734010680697899291193873966013145536869657341880535097344344741305578058684607208679292342801948881827569785924494698271414323714256169335401919864458626729428330987854355196279551011163617236573319557573972630422499498551332706535454821910201798077956976075179021117786548047013429643193900840478105546767884581617418172912137603402334597616753938342826814321911659685020599505868012174426148874719130828680109328854374583855787830849991597905598913490433407504531869413449964744202519108041654073557111842662319354894824729979956986754251205041091397588092840158985856496340684979668610385125620282288961728239371064748410477506242966281610318976647980714936737447511979117914823456798805040001575866466508583951996666670792677339649605570536021699089271467855391484308278017614416573005675067992882329473672760581519294942243165632445081062478358495618519791436990288630099774105152789666708078276229419611936682105688520842627019994301765123486823769112834454487347377259284650954780365578235356489690026964686894362615782999285463354984956828612286949732580618195429494204079536026218876762330581968150757629744128498620646094074788210625686550360601009708656804977369351396444104478232143541262138350837320861819727527168704064101104935962794707682020735620175349496771978848663746294387557228581120895804632357832699287243464103955000441472722877511222888272456066283394402165162326982970026000659379222535180450831256294764399716862235882412254708315202957653837380725462688797521001297662100112620910303398562430242076849623041642633735500363353350692348369349454088244237356948079189258989128844374795025937501424253791854868972328273130771618230156241637755127194258415316008295242930818264900178932705523277365024442634035715697119433112357546908725831455283983633323344014109119818513217902926637764516177606558701108721550585682166593268353419852905857845605110695298332111063921063399608761315535652808454684125640944092461557170916376308802888258212946051809132053959366231918869770969573205112032810048170388971067036320400635564892577903632898712270676554091605245026148496586664117666971800199030192558518045111526010200380702213615248456184481887702663192055104688692752885422416840958135396465167391593654907344943108608589982988414743036132914817979218754769866377807274087065886901618848680102935117160425565360286655083836897632667542305002701635850739584207658491162694945267703046619270956252549331794648590662953525218870561377536436595663670587437391150311199827000192040867367969979033659319193751217538515712057203054626221062689370528851140114314818978307744555826573861722898920630979661184866470098700194883849670493822197906398024436773233163527873198667033247768328182717157897189067817689616991789346585652015736659337284222835586805593705584313181465504883159036459145261458884319690603626055750740174838816991600747210545431024963655115835165178180461453255207891128493506995309965636694529510151102810284144158621802674716532417046050761551454648335153303436492186244861315045590138539650191994187743945928316104424505307609631467049424954713385947805168884820755804258500660944410287462587370463551804201869018991185603728424071572685521134100767341332296711111002012532721671706097593897609491576922388814279128276638860083780417144374414085176667734126896341292215767828713993706701072370387078679591063634705691495104524613805277381734955308287653270555784102396874528338432396605777712084653417847958615916080112623303955654615917418356171165975942736964064077761905966879060668978778367693255821056679099401541276954174982346947725292309055317161577876921183470826472237489484647049435827021654914403482668350324225585135681630194065481104728402460264086948924010099912201416914062897581183392508292706562381905761889080478696543176100839841302664490374968374999967763184984019953115821374486492617677818934263209400564791679682018130591064542152829724783016573221887742982593343687957059939330482479078580084659361804467622900283495485897729353026927608023901476802790928759587179413909126030060840393012806849405173295538221400292107406224584279057239558719409647118604721107075357547135807445261308970401254913148760870279226676861873778963881250914553887040083154608891805148804377328581254790436040643147719474183045332225531833333086772419909501796425153719753284357489634055520597853376354414816998738114759100606662500646405050038125440396887555651969533298010747641303523434432678781847354840295557763908185021024164657173505139587816013047326298047579397401590290078472291376198464065097845993284783292872151657207624864942057412459635679019583334266653949868237651643515161784225191112448951253500850673137120742984707592319722797623045531948760214078957524572617204447467642289372540316470015032045100295594604935012783037892032444089739836084363170502650601977398301958193010728993470334655225974590551659570002251385755793712958973599088005834739440673613121109693550711964573485881088267787825936143684647799303058369820255556115283482545177376665878208180469852197428613911544930874234714858064515407586623272489425620831385196977218631857132904054435575832899388314144128691260753232803359419603027760139921220122357344372611222657014340498420213206474297222700909488180157043549051152749117679265468596396129673552735491521536412307956790171970492779109234724815185019059300562153465738917487150675392446430099570315325328224805475879040581485886167305770942163107120754896778665938846050635616871581746420798906347838550695420342025132716659672278969931026320644590111215629288993844258712006607983781736993155503955435358594470222445878301548814014588892748414398195178719899850277996141137231397405226236541458710272099343931956845742096867268554093099844377070533162506476545039782984154152924561924009001493267331122715682067193702827250127490758636139296403657469602065870054333506136385044513352108458498619032272561017230900510007292833957439109625662335373589887789540719763377037069246042506574178040385909197470367963409274907749278827031451748697368901124711665221572721406901406163032409461000691313401884982698355073888329850721055927752096999740530641893970655249691218647883821325370130908289749578217294064274140833705766495437776315452978602406035859555996902044107623398491613976165149729004361549697769592214597785465698804056290164390531016275984256278004485118202433745541743427253636797773164076524799713405608731908774382678825407285734585629003736715042464058092509179179513607231940717676797216797995837646032748370196904407736245518063351572921649454678062321950973717692252108843826442395232682515286460212026502771574169635888658194597768265159888142084166714543556672742566685441993360616550210217608886692843104535848613709715244238871578819033149570567652193855156083366379663384506667410166383561213322738331826358498054739048252663247162540121248552939845933503716744703321444760719615224769872912282062098393353982892217982288911793156833866453069961833549232626031214000064669079387260214642887843748998403870538168221324856942284076703361747191429452243208519225071465700448112859154391327628840387233238720992841784634903415968149213521057481053925773285486813092006733148620194473847278261602009878213653341557467178323636628899738245875337615064061818443432681900779395673131675031001331592946574073985436955321360320018692197355748708296409664735484585459294198018524821518979909887704881318109140650829295735594556829331988590863905257161754869651440916844530332095633964065254511396123241208503488793958682730436323271304838350261085272853050973143945505669385189186843527675664819901027806830225032294440174097501690092002315268483554173942740669664322510917161749507849369355191487734879538327902870037690284571424409912636713518075435572059959370467108862191980318197092333424557911018333685688287586903376409924801693808275787010344831771292279913858291879616524355445457678739306368205968870829762829786461261307496735140575559449069282037804626633517853176902872642073303728686969356337905870346572832672583390163494172558526591047765943086360726218546700645505653489466640084324643482902157454743017199091836944709866091515547867299646197868309301129127231819483410243659107027959712213063131812340777755317606669170272411338349323290992671635659982468550576852342231061372880696316166266845871439891192997920322662450503448938697748846969267464302379279605452076890150307070188279564204673409137381392570803128600649621687104706467743616224783596067122456678364680680675223630663417481840064641889624970196838819606558639765563439495817690481720184496872402116686080570858999970138049534528528569455899860294164373651542478840750062811787665535029863896339088455943385561096902852736185683621739943077245116643346857838968060140332415345326485569219181932354516014083519398906725055413107100160078630143946834630926195459893859864816018676662855747598877083479348725573990090743279471594230404883264626569370078792944661877881029283872873188139538658180051830814922088822605931957430726442998573019894087319918785518358705897179728646489355638531249899819714947205962211491825436335173737801769864282974805752940049430174920997559492741253445432586710580554116330688170589545986165621869807228368448919001635674017328365697444548312675212514735266279251458074439898668785113980014305076528644964974450045537764896017406078915564187494995063444000797351398194998318278492518293963147943944207204852328224666918925974801549004058752058742458051786927882841295790919521447248221075042541864381379843441633933659034893112055197159071800561009358387814713413428670427533341357180844474606877301030492864264281442994797268171424891380616619448072988692031487959723135585663694494998285423535255453561167482656327237100077310690932467857634482772857841986495347447438217785243543793244165182707697946348883493728881764656331672607656205827959076029872566738737242938366443509797198523541302465518385266908749140467618489476604398924721388347356715050610617107033119639948649224149560503383959258149050753463195207656749130491584775203731922534388958475626633453741746214721650538844888673493491254666343542848072784293437203454034549458658516207374764099076743496181999787191030088388939323768487748794190842184711749937455173025661677093150775376232264418497688719993399471604686000566324181395359045002894844247471567413618234049251681260417240302141033580756502115093193061100550399736969615384267513449735901988000917016587057935748890569556903424736102112385937378094984526097786649979393978385681559119500215234208246463019507964858860606296810993477058673297425897995644851506535535495443298305122334264362458794558859946217592376745141802743826642221864903143047577292446354170691091850828447489783395147410200499365916540503282483129717264323742316970773273184894565427347967009557146491359712060528874837866042312328522526407837154936617430170971208275332611228535928219369146606580185426334988145998180187571872232102474862952799175043102833128859220758921231778197289344764508869317687677936708899474195198842621697996519403812392307185191095773438782282622355895444749834252178802639988316990248643950936179131117676719946916641443970716456883891697868335569818889233427091082794060290498145741894343779501895842427141667333860133263017418401649025266911477100530524205209386554046111788265193632408932675570481775683326101250298015064498596285450494393650700383649215207010390411547334917072346250855357454961624850719732383481448070253597229383774138227429854746123046390796356033336085587258723616803310072833143479303963172507452203034203038964471864857713556596923756898225373129817910239485196895057295530267627764976768675386883678326994886234651438559780187395122746924351869054893297756796996247593538085111925398340282001409754280497214295002881445416259093900824563105580255219969122794201927168596226418028891164215182392884878420417311376039174693172609952166602469460407109684065194312871491022278362597295104764554476935098386328446581055977791582981215409808659325433321520049020449139721159876048208753187944661718145586889388596687465659171844698017952264716833780607000363596732409936762353417668452619845001102900367377232792150191490054595184073389787754847720150949972215447239204515705159782445787842611844062267899448063488829043736159655902770445978243331755161993732983915133234629918661984842986151020313911710425175606818783166581484386870721123831379083451949100562637849047720821394775459583704156181489034297360548859902523538374355569472274043423923523408186917932471926511092731904410600865926901521985560461808642912825172922582940065023486451157455660200026707673123437306041251107404585628783939371485706671978860403166824019997163899697748675811130430940270548891063843274586097731103780644619669062076274554201661644711606389260467747823289830487018207401462579398594658331187270421537864449596034774902951896174942889544619374815908797456736425963565141827474578690326340474425298534093418858827876759662713151480113169663911085182799588070156643025062327894656878128740857572175431469704468272105212477112374966463586174796794441708024683883946459083740004723972559931048745250686427019227324602522682131860411548902668066195014823947686287384062074359125616247048147835951219130598292417217425627959983956859018762178335832354710823216029688852456719555351664880348461068221982771505167524372469505741205574839339087259014389874768079069314175220946205517334462522159536662283084690487423459456064900428820067304537637712506595428662958204254363549844527473518205850448981491202830778589582657808887398665138883168919702526430226496157137263980142305085792643100273356406951519376248980184652954310638921412803418046092619518651214543632966028417265687812779685186438895895231188777242151766867525872020131933520221516936852862717715976394927220389760765697302645171928745579913755308413489452603411102657014098055170994206221975053298151698849475693403120512659252222133224816685064869041573812664382119202218472539163475165413389781979041024749513048559229579428643672680746830622653022609570706921334691689469043392472685880713539993125373013462938969394556790242562037848949966780830801813808369129443032581020137543944866170421670169649029309995765878911017500791669999403146203348367210460695450830967674012152262590123755798506741594526131961312743078985107633494157273635760461956659178194291516481814906338638760146826235406750114604499078991821075709649578025412238954555056340660042882365707133425388156294079388980322606327477160956212774363573200276694724185219577258893164962048000909223524442051021043112032715888575147253876159367301176844379230041273484860899164492148188756641375369715724340702120481743945417455670623743370662827055746877315649131645943270639807530795994528513623799178677742628865735480602740180754934799147731865385849258337231619605814021699823653894500631968184412491213303322274068942289810944425404367701759757899517260212578545188535049768949688299853529563665186501213737065808098936563970014991551052743965937296579765910639259338150491759741398295093349632236683269668444347034601802859375501183675221457990764508354687155606503664214186800311479841361036417797810386679500168556317675282332762143019787250896724573310065972265117574290590023323522763707144159443694489425911738888784027052106692297952927955812646584281960692755989272303428542649032326726598742541245896625640841951865564656068737162049431530434035432742558676059359953092392532464707730141021751670201547223289494921637499679073447196149579202452553598306773728722448331020845158504826879723356117182793618055610787568027615884099175459486411098212109979946505859128083710773047920003655132256893250888924971008702838129153447779123731362145737134480386019976957579242740860819021866858955407800746430953494239425155215739634179858011699786327913688559347294617734400777263406502555028708183347065409324562092830902607828015474007400767875028359542553048831839195656695857220353161081418942858143142415678127713907915565891689661502754406169681083217071807161464834960230645344649253835674475402488777315882789212587946988698366465539717139528686030242495706566280216138807200996246881314116999692246875969364094815443599553392593287202787572960217363231059328632439646623493158960585830051792714299734670135989410831101738367874061259235396976058528122750289075334234187021697399651001447270701493655977289893721258339894674386378427628342325915758511133697268179458726998041835354560764907859973185730359094204633547257062992016417949696867175982080683422632898179169600070063824157886319471029029425529297390141648057427198129480890124097852460530982586683768024817336574198739645208749392101610517191964518098573889632580795162251344001811611459534611711437491887236997527204188730680490266890521485938825334329295858940704304320598232941315692123979381875512525160823157811220514534100576229462612366077512836587429380106690396610369177407763311499090264308840041356069941139758255494624032076490252828377833501308369237394053415797263122430168986269836169725188105484972455993473624872536741979087410126898035434511252480162256840930981604032848503379152457472981050220915114865130908849628209581112247261378106731626933161935325646410489073523457139293443125127091806783580283382466605766272607796796781858302446850256313622045053450785861100302289192878613335982585768791005052425606214193125932680592771403297936582099309484361495785562458333684439869460491100084938886121511604364143100071591023909787164879915992807384438590704840510860430518309144170539655342369382096346698048439210183685435605792563763054419393897847555387526835921038339654800837077431021851107640302630960493000791618920764928251172947438970095698223509001307954111018521941114805544753151125020468187600115648679916840608199005580877344657725790453092911724770913440677574157440389753245929372845932987399525882212582362033899802617897106242281363902599618582810005111495104245983727010782532860002051396465246217252528406747683321672478361992467702107481621886587560713882967263762334851335002053423965863689052358378890245089151917723879704728352500483538100308754461383619917799975016896418555302200184447319964320625650874826613002074993769002338768654830475226756862971848876680656131465457021377487707592167238127051204776435852119342903167795312135304308067505450698187519440105189357258798930976218778393429443827834774068295443980789949380448917087192883870773383680127294735426767864896108002031052208285240421753997688629603419368471555686135009806543681242228896889030491837601434393459642377194406215594316343370832168974408580461565915595713281971882800508474136707700909349921215519263693198212598858613495039231888447728857299421511368465875743029132996700034381415510443765797250133204653748826438525498649651329268118410805010771577303171362437627155624891045308053378618111918612355018833226031360893256651124512457391178813756526932635463735330710870394544088632781425653156541490595915520134325870017321264273207714965965783281188091937684587547157988671921512058293053724746689109771833279518606545031943774157204869466902830670230093136457791103194104252351142632642195478387140069848758599976035525859455959394870577179686214037708805866574202388034612653342488227463380115167551439833212981260354852496820824112592147594437778663732480334653979968935835132738339535021235695711954064942102123965740656138646370657706512547044980446356916928729129543450338064240044250467406783579739428878768215485020806166005668661562770511489572172156220039867864150166859882386388183492353510077239813118000546788136360332867884229781008625953947601750845377149677646146328416026790318551874438366153253847464684814225487001216120523268968134058094014241191109924411117145569214385414698306912055855108998039285767175256632180795296901620194077056684919595568990904566526254385404438477137594576526315895542061853268417466389453521700231321788473011045353627263699291990769305543058136260560046618350052322785283845939436133093805126492063047437475394524690469737177263142814456554929310593687611631147049689178296337057699709692052452612220572039547130137894480843776177377811891999354768527671458176449947021224105615634928653189069004396574478313960167164354310926518992544582165968347974937176355560393648508251569658869046371063858985832885935293253139930837787682634839692668771614317316369515830091144027535336366028855432077562656240707458636423733623039919718662387063927801801653572310667036700998859771646532306607681321323536314626669852855338471555544162212356461415480013907533365734309128096462386411251022270610959924301702183086505978010964795450176834656675870249555845627011781690474202176759849393702644514944300721631581996701487178155462022417293933003006015854224313373660975471932597779387911023046361245924438317927404125716973266404580614604012412478433418783540245748413382562046648859410550521296966576686847821760178886251078637718523997605774287361978713308026558219072592763146865783352778970619359685832709645787818692189734603680681476723795269290322232041134306728535882944001115545106680626231573784589418095011407323573077095396275803659065148216707270147784354268353225621703830466120767405817381721472084838027804203630963974751632541101116935690843217005846784922149497468256862228935841777516354839815799944419248621378273603728249442774826780943565194169121362272883866021545943342285241168682068541666717776802597341753824801842791549803847293615152843168545029678115426123648414154691331666251322120883643279253141227234366254171404891198045524116574090043836032270224596419159203328933355245575708598974874730132288951951735337300551880218633534872571871647424104575901688580397214858030881217975229714346178816615915750933168962878835237708658718313514146660915429461422792674346833116622018126620472259690882651237342252796483742833827076469168462139390515773612294745661549507135386207772775627239494153864044605153791620818540497294454712483629640356194041130341343492967080832324970885553322510695783737574834693181033424064010601900224317806239003540671505205666338811970153654833475513910329398192381662146065206982292689682860110110146545842546253114248165945837584586456655629604379000436435797182300659720530175274895694376196077685686447261386289115003157715361022339429044078481327288486757080436910135091619968641966520856880163096202593267698387804079735903275727977234162102932973014255308110807935411761818940487930017303988265328007051987948154908404094747319951754240961094654865831533326517199724186488398635226496196981991565538989765129957411188058902192404948275550085901671523091189822226955070383632232460393050288882784591695030503985626964126696475120167769029270552566922102758541696550958893016222696651177097915537104540106917508901942295942334074505229182416583185644409762012065148055483538804955780462020749168690069501200618434089112195789761798164373234823670282338554702654842842596178670270303776970634509134834577853533525685553201490542308182425576047365154045689515067834903762718175491347824417511511891568226449223817641873103195559859457294694940661606631585590003957203427384704234157193396569410729343701829218048535307113659677640307493549417286883851041075761003935885677926657811610519848975010000431611031853889014769585754652557474824488521445195465866930538801203485094069436361945301823573293517133451995320368540603497766561003300161531898713135521436036564765632012366942745282942094731825011356533168265609531485660719108765189835433313880327128338147163180009127157135125443971161430890739046997102018019143841217886607596013258527093324501425960743775897129215491821504532953551676192421224869005558293825339148815627660712603229811305775559889710310538442179462103371927430672360426299534669086467048627999921013467443783818540190457444260541000680599824813343581273015465580958667256378320205117303452861662909193096944135348460533879094338485907926991371650492228697502188948289825788738117389103925068495976509150882863069533692819319274053278299751694456496946217807349980588789601565883317550163498262296405991191618073701392933883801241484160328041179684339539436149689539655463778038346251356607700515397708706240882834704014678854372593370392538693608710214170219828953884198109827514498924872716167458313722444974106315535879788394067552144260212337390166283711319598288728817973395498663856519561382569836441436015274777413094961573113368365954271979395073374309302803657079268743543740125470944218854164350496205353065683823013539170333090128139137320680378094103983585957524738586023596294054126597117234276739798530584942822159059395639608384001431152622696338590105207133110401271703560841596511582246419602817962922683977451667109578836726048780151734542004410447090762659803173839903960485456248681665762898308557028231501661200077588061764906330048119736672035450005257594417925702590320581499100745464351550370057172857389317217848614050626778795399989231152451249334833952963928737453269098185740647122352918052961437599373645123423219065721959269051990965122055387573987315522521585489255904796662893568060223432395942142546559007235724137215478918235405153125385572905281720715039173549579429714000791474834224269627815214842564256937132463404334135985119587236850683371248830147136516809685838863028908514062097029831689516112159802098274859634474677525602540275575857907994983198153004250504872338619345232422535650479537476806541638417022003813183435274456991996162426122654219216408986274907966661377004385797678246315564989253044197460469164312938886238649808958234557618376303836044040942929152183150174269616842539068783852905745509059286059129650339561927283887773198813453639934156042937317209362552648984392269844409506939540382214696288107070103139461408109536772239826986198697178642897328009027052736646645504717969069455557580109263264911189578196074028365613270674324892105203450051245046797505334844048627451725306796151493910230975834105577284580890065166646782852685089750427209020194632723121821917846558968628855065400496465582744574714368824118065855352164127738527644091906008144479034719522474256715315293137958511800803567173369160738716343301674039797795015139806842190443373611542467453759116189609506683811521322385032895402987238069127848671781617473143794047249498722646071233382394510669621254061907047916233401696122544720299314126597328173328308748498700053157640747492482407009955201803025675772958944929659074136612864182575927433012837882746707074208613709109453421173743660336220361637833581725775894697701042935389238942942862531029424083945049877178196443406529876360873985599279636294924199407538147281642795164423685588818826350724939703645180840536596365191379649646513537750675863691238028363612499186996758381643185840735836556340256640909471268590202803199290954763324320656498770128618519454051862047061123995380596507793085620681033266187477480210165574309796797479682137798099637634264153977735148521126678862974185402280064169075534698693970707826975268017870143712809708586200035997992994236829714935549306177939770614578613279039319352679892189495546156969543581081486626713311986437861204043258485231094589670925130492587170822816749737284832224513799330138626876993482340858436532242650617544923079504747031586567443312925414157989542358169656489211529335762857622480870171226399800900862567008181965031968995866377423990036705068137798626738942292055269773308870167948894599652008191092823945736943800452449061804723889630275745606065925756421903710116525344160218736317380688988569664652056700430481551374100355009339293830552369241755108231544603210874901807821536546051893570953817097358192533924564847696800395619862305108893318799639783404115180285018519397068653425348875447470009801781128032367685258287472070842147815931697862023100447389890624414782310826302449123109798538478507839980175329049966262600101748912219192799290961537501616592186065087588649228146640953167805456948441939422053263177135565216339138560260052205626052287027029533023457560354250350352468344913818978939180124364446200671155843690338170674693527006189806579031975581015816926754674812549036941141032909656186267742489507611728813231174944730808741521774490129866772510398961342923869154024867904082200106293267597645804687567152097811347685292972951985474276615669657924542815912222847346196793574178325587034407103196303197008621900495145711965590124917916415284256758318849239915350875384403432392446460880329845134356833659233054330068756530120860075762118266019512726308492796277419925435171505112976076961968981953754841903278800132777201868532300872493331159822862976179495924143691371081058935679617662807010496464832292559897781849422394501226202437616342626877806935347199517760129201195631304431174486147381509661483980375639450943749979135739152826411134598794746250903826912257178138329138963136279269962753004338312399718771910211592336189234930825200059625281684237428897081515524711564423045068547481085692699571886229170884632105976835255627889189916953754195912488844445318884007611360503607733645547448373821018737513823717689570632691509197093584706153498839723163503300014115303874170446426932819159006390118799770165502198350682386839320380968890280348149005240866782214987021622750423229414684374306987029363474692358845119834877532974990119595344485205640501993485393165174468768372396374705775063678675992347428901858440152544097288415617812338233647571128477606843357762222595246687627298878001442814373765478389206282013913576431430761122357640240114322624468301370438273254388849825790889011791666890746178633386736329918786751054979576417441406561066159093448814099253599691293952674673369387974414362055941925574624438831816251018085355410205443640302775006503255790385501957149557313052825622837228046659917084458613394372351932645778979914889640750748786952852312674197803084602256083537416439982720662579845893453123532554870291289803970873490382972708036115061590136062349442504140582825721193100656282902757579553150917384479995455692713420210728960699075387391875598715430447356217938711804236645825783228489145180283910536663803976020195954577049289519712043684456478169560241268432814307834373403397926045065648837849176069468771099981648806931366125736820183673542736042010597666279597822794613212065448621100695009046768638579370104433313957035107358548818479283725158385759673210375902559698182686616723329696468376987508274366631325644989268232606788030439548884828979865156012496971244957287815017803056322687651809131909691079209582107387700912409874125073441948270000238979307611888921982998320874595066951970482717825840851951865618606068704915440525189110149801360504413637248403309333907923523806870508422890400673300788722907400689404211802963440377018157173901520003270936334143647726850134946752704949805388092591689852435260294582578355248257143630419103055581735359753373993103857657422179716729887655860456434369943487379082652561877054285302312466739986129039432914965729253936340720732431234844520910878682497773341389395148277171501302036899015978432241150393470473751359975681870417362416653495058960605362022595454675448143968452017783164296323959679183955092672055862150643435647313241645638872707644547563980486868458571605807987397057042522029088858543420885283893140907299114273700306428596589493459175797436519437776643129859426390913685931067783356815695301527210509382594720927351445584875320890054836457311745782214248336791591633428037352015147920778712907428040136847699477049684920171668815473345785406771666962384488807307627069334347628300893119953452958774406173257221248754220822999494124108406005675714112064556611916397268690435771904289072852028008182335429289473442642825803109828602280925579310902941978501112924917385905699140648762481072210271835845761484902714259513152350282306940546514373813444598009099014290646962492303104217173377031365101229171344801535521073128014228253352714351533403733283740190113930201831431931820910009941652807646980843550481491331345119065326173263871288608959997642941388707988281287366010956873349828665585990225242368792047455079717489482289231573728559685582018363213728883120041576126529306030097297684676611813244836615978900498698507336428576008917560525466728924638739056198316823608640462494367079254062166998001570984995104527614515090581108465260795646183533499630299259887073308761631439440840670072624236472540325989289896322717553341742712378618016470743813630050251903048476833714990488231819893352327328440302422519760239838958978907380122544946727667605996473625107877229101017819403960625075778450894616618022550729737647876058766153333532054271974742253179849054171367857940627034012614090215730210013111615067710251448159575990020393501583159354737915083919190508852423695407219357778518673607039276615091076584149806985984235243702497373777073025620227927313677072147454084784952948563619402607257504144033480800589943804111794395990037555679271265585995658121462548054949667041546734302075563485209073534366314937789166642324427359313606813772154390900098512678398319860245139090385854212813810228828517120565686917775748795643394237890703435954705950920813397387920007967894896033401898870379226374091167600461172958857639680268044295431803481944958076821672119463404017579136705331787008246797116016798990063850738780158987523676480627680604869604887692173443095647059423358182196592507168401259649626559694639060406335517559589581795227127662973298690427459010260316866762340927792618009270877091660056081839972679725927332289533666064915634829886806782548407388554951655737143825738304719068697282968180284495277674149258612077304567725243038410016508531642533290436157019864403783465158080789806283288326434116754644972769148985195350662060845446616929756565040590241367429187912651315764446379838567037670832140870833625456541086680687754121150180667017793451600136868033334770794910043296075798049362253830619234288889225748656547182011681608955005671702879890042899646776828529093452018470248223292123147023381995485059552616015500882300486917414824126358645150247309186888629227232213371250179148770422112595367941003889022047196085518329990812441534363164021702327863489771280153293288435768072683815022971663378563275492140597014642845040203256146077019744683669809109605452803074651982718559925418106440186778462729599701217235229986894698130742449078751514306483215288159351614467621173809409205271303581872322694042221134687648650757511578150764198000022903021763775943152024765724054606366892392896073894132868164582802019958147460719816412896968366702724324075448050236069352126365649161031812934985154930185422752839964522981552645873348431953326460353530491229894190356667152149659806480062520669470603777329337779188757743252363678687567139056875713655952380255157454306675089982517819670255561837956180597487516198177078198190047143008734998197281417828801526966623825695380578380447328200369223781194909001494205186754785310719610483188908648854609675979560303419983930283632477017798138356506850577726456703700362964858492183205109688411834966568532459605088298084838473418925454315633866185187385980127643785699128837353373198511136280481773250464986154028640273840026008263518524851601316759034414201448556595094739793114785124552177087930196668394833093394791307365012262243082652525526951812645831428938900442567571672352421569355149996786952201390268368049452778970826630007002443911960387351408879629059616243198292205439656420678508541942733779666567557658620234815267420643552532256670812652197484063477552895232234680476834974018957362475743435499501973219939216613531996816239805159909309062158496076206647084401365369793445585655957737385356007645450274233967860796779394615451843379998923585608415734388917908555078207667386825715500665759611792939498456427704535071216599567535344096135185403837590756930970891508796232572397371282739377451552560022410517511737072521151649282885999888251553836615150024477730998785378058399601328394561382763139989517588557169711890034367120631887547218574585394072044106595005591922729701759293268081602510076092828558692732354771518319631620762304167599416056421184357552871220196039117357100952920993330830080352523439613391983076476078298742397260842974966782638734328922594454126597743423262518015937931324451464891176703461761784233106021014587215188057598774954301853136807228845691495585355870098520789605195554697991582940327307270187902860511973711150935558682906629386111420784379671351924377684372143993093503733016841636309468027803320618897023324993813187128856938509257476106274678134768982213972372600867952021791147605653134479187099544408963942344356524556944415513996374183284849030045281351711845159286384538909726999862153167129748627679742614474829652178138862377814586769985019680341863875606337633215396499753677628209842388932674126128601174618676186666264595702252177534959075358717367758942295000179741066843968431846905049540167882372492202390810753047188691810162479717625096674805019786939532963879798224679212446427827565714149745767182696221331022599030324664541117090780998929554706601018126406168552806023992537447756818216795618329303888870419566731410080780840636336962870222672768225975127268017935387987814961177255640956328486561197363009503276640196155826575706329524519901350800531364684711652558220731008232890578659843872902998049350362943914283196330095294148621962012508266052763056453126794408316474656050253235560037906003725292740627238768824068298251708797690926389697784459464004288495249378437150030001727855914972045037823408957866783548926038737388399206028367651411075763132913838721967860109168849909559234685406641292944182633009145937867150968254758605555692656446948277573459231687584814024995714916573043141902902217905797146403315653462436966822912749462906966846745489502487079793800070611515696311033371375730954637953639020020247634872420119965066313745498578100879418891322004101729842248368569678479107514364578283081414083991704385912998071063897376585255299851037361213094881084718386733071126638108306455738732705572536174654538747769480500089494920925828901229378534290641856138240833635746229111790783363228585561858697779213484093169584826834983448842471543980746048065377217763485032435551562014123532275716366923397517435017822378555760358877754940327509968349139791865793580001228350043717731062446487103207025638768986074113233369774179493480327664690178773791593553865947964569466947358334017479197629745276412980767083446620048530256296671545118867127707245417330309798169609581730683433644277530845702405552680456495184412809846147796110886089600985199532645915937256466925814322359372272121758064367752958693287569724485286628312691691211364579288176149256575197022798264926505858245906144354712746335448061935974010542135915558446108901033951617119267700858349885456772582015708300457353714512178439660379519964396686205833587440101554630592315611965281514791609793495504273086674267438490036406096793297750829850298641954949418601052203363981951141103651419740013405903500825924847446037832110831978269351727992048824045966537646536074601403600500776182065915016538920129976433761704619372000301711734890060894699099896568705564686490667167238441180460749296007913105286867706384082705229786033210371452602074824053964813668032359974250376768796700182757256988715962675650320434864024750106022899408177606162984582319951932945741060225928846349887726305607213201275138477248517637541249725449990308833656589121199981199861293274245015909918259685565540157452929310130072322797707637215039543539576710473275043456616883449509733643769335167164338810529007101136016046413446520728371141263012295702097432093343021563055052545942199733075787261420171353725248043348798780476806617468106278073856561942725359360372850817665659073844321121033439451689424512663659481444620783702156299428515499948727432040434239004658967801597754445512309471816933582130488613238178888216289932892595847599121016683353272607601455622277865011486585760838808934042516649842649141836361601942588488900536923119308867446038738467614051462490157383484441791840381771474188392627406799158672915730416657450737967665970856707220618547097397929020860851285336322648850227627933745288399618497353386787649778818237296712833013283533504773032013295867935603189349520245299299728310786813980032106678389745641894855510052563314792723651702620150032338549041385876707203211295254217856218917328913011172506213910840308656123913832521828644893051275194151942393723965875546855093471546775420997389173029997628097856864834964088170048769337681593602121450032215357561796799843412861220178584880818037072456567846759579795709655799291119194512633479710922586172187923035916670860651645182428117637287213525399019242485531210901333431994646961054121051933896443231220213488789153509563924467809735223369255801329518610200888334092940182547239208626618260494285972955199007433095023488893332617619614309713821012183634822694384650544369162944477933836480661048479547611810979182688684113747201882871059049520266805092371656289127212708492491721829408119281957117419892846554809821237403344210299376038669391416411962845290761494702224993988601511401022434987321867698880712569996745119514389223470138071509037855303654555036375768774361518103893249371473570855501485873082714573682316706496817594508854768240498530657032044457815511392494073936241473289260919815768583530535714988126163181505625457024785590071059392283578431782033252193667476750671033123907843149565698412107316623311039357530658993809294871311329376803947727185660333150514576422831065075196100443346192041526037534159688001532982038659077626574509976319557312947445759610332770324078093758770551373306239051834529477518542994203596339133930661660514270783114310848173422297675244840295537119627316875152452875323401566107051369247485316180363882106430268633468008804024076832966043916410283811287340953446105495653306699217179750235493466240604982524432453739692011039497704600082533768818156272189670803071820361697441516966372920415321672826306415774052341185612590919171709303934024413153376036151408333989302149718344651883583136892079777127119541460478984130538299674923680786501513608068353307175950355491790005463362975369743724734395797644697273696861713949105792138697691889613794775522182991599442115090714326045202752947850797147799877198183991275374690565928678417779066769282733338937898158336021310085171122897789956477053556993803627641878311683404894445664523392614222153616730431608047529520638163726357066462066821150782663507524711905956836968070767137544834664074234470582030423714387857699437190271233745108211149654570805052999086567992532616844987953955550334576365450546591928185288204685064835260723187992318130615168960233344954040798563039945416428160612461371650509991248184664273435049625919306864837011398826386481474831950204446729901665303119364403710439117707839438552405863897512207350870767993650808819004957937615290136811391908405029322070127434640808573197556430729039549378837179324125276555313967291666979185083857444677119195112246469592060794523551417082955031784487823451751587386496973965151312172258459484745263665524065722259429746658056761303286925502330052352995509332202338194954585000357161882676023455475048816613000086585459978967707079501534841878248863669268992697334073088539397299697805070110051146827347370744429494009469967190239117925901627089590602233289104363962723764035881635756682971103982018153211609892743105094916029326396776399379609779385436991180529792895371672413472494021721185536441799592801377621654319425005708598715688838083696140454511009792427549349496133084351433759625233763546165280273163327427060089126572083924126824390191403543325155853419636770960621200633627194138165000325791755728295618469503744895531293784683490646023351878376193631837784300123511284478918660986510108835198457354932918623308648865984219618922917874427762641722437321903024754608520794127749820116431068657812426764532191538386044856183432161880043911886078431835264049604068099148628244226830593180874314130016762336766895978597924436625756581837345506258596376538283828172204921917052190824361009512467114799827391125183639220768633376029261479630824475228240804506259122091885320756698864977165710566502039028523041224117667342029959096491715017043499815582418421637434976698829072659144474467892036670677746896505933933839603966714199268367073047856656219576201513303664504689894177958867857757084626888335995210433359142455194857692595258939363063463736897233171609224530375633806481001638444179428000675469295418077546929795990368268217978835099565026267633670172338463802096234011593072317894909071280857945716138364113177065879169371470208501078718345580929518320281342844906183487875099959619204596205596079544450508938529919726512601717979940595956595870717672560925584299138741627043310997702443732804543655547650025475672227974457055616101465878398771020050191534500643330685008336542341345920239425728498431420982121984647114562837089434960560341638672942984613557573429912443025330995727338802672682847429600282714353530680605894828209214179544212183480526219731106588736275520675038080186517207582814274632752084826867832449008669027000127794352239267032300478639042756174359815794323694534542577635300835063911333753855851042363322869862330600360610074493034317363564299761544527633808313673809631876171305312467914427282049239917059465564363118101277222309069306234900982143584605907958408546977755291458105397012107310782924061699163255894863486362997348468960011766456878884188329993872270719979288139081394033046871507859693275297679428412160768660830960375392136089311223627307701746447423971652487095015635652587493053698483832948401589111361161399390210819304353243813606852366448791432413343565788957744911085486846965295184214845305647295288307732768269619015757275939758759353419247040461865588217612991898836433526091016013156008868226260998690233541408931964593502091871538028762803160147589261060595182241152954327304435382548626391431105180953411636713792298400103902059691233763108153840994163485535765977181231296016894628193744293705338548788279675195022002033303538729039949313932319586022863507013831798815708076505423740955638471356771878133619176581224152833015015134503417980478820475772270965337777483175110994270804837572439696528623739285633304827420324207844582929919848385835701697456019744639927166860445487812459442109330223595830517798503318932600333012015094699638455602857702155325636450519217901743896460438664132904122704200580615838646595060670038510063753185241305035382081462863439774891262841618356328599348230083185151574185377877626767727399711983862824309946961551279711199220396338492293560594807796787075683509257463824479989215279051971860970361869941313282962090706222518190954118260775454322655606148311325411296852888097207929563882417724902307747621494604727722387878121920823094596503167380931269658935174789795292966157070549994151080201809966958393992249642722502976385660094775665545327225101359516772289040230987137341096507598455254045896574826929140975268342399173018279363439340376465416789443488456860093105429022604982566060806308182760309252931462352382914610961154264355288283815375817181816957925015952645508066365966037696039513757197934569780198610433871630834815091518662481417836114415265137676551338168358353146880305415396818535192120312108030871558711593720705498240876149770222363794484438881053864710962521136015817694028581751130171798228457236762143821365933429137612520233975284904658921875019005832617247352692424477836190357619153484051314983525438985305404374503131083927542386261057998629117614817940322888754586750596695022457100717994002346894897219953122979549269362476169470844554468231836400091704749862607116245471914543575206155273057815639796966270797836936014733797584786092814207428426951978713796736462940867698054461900692776693964172940098678229308337211144703983855533766843436353211511304685624763649279019142990982443468911318529507317259712960427541392445282002366891193176718685453862427643594409935586085077557968702853360034441658525577552550531933985337576141177692142876198524087400389550093705896709040836899484475052937332729058197733963477904340675265907141488405521054214215082915543646482098542637905898448438711269209580140044721729813304270163929752547731021338464545303690628277840913009222586420510826649882664039339640732782097693001715246985931700167079994911857647927006651270274571494705159562612173791385611558260682986194078994163322670501923075938717037446135859792146312890412463426698276746984824796258981129552845029350330975809856530371023341663951981753347749978472531128616937652612606306337165466664627059503482880481209779356836453994879333015685072168487815589368659792755581958218758116943986106327499889862582396029579059799056077926862406981984022854922906180868198168056029846163406854990294378846200733842180848846838957696244893695459229222210032801326104797746970500680561453629018700945830976420932201654631845891015859535401217567295230146682425845136502223804618844117832279992571659660305076357164052791300589883814142263248806728609370742962841117804276619752587296479694611444845194859017703478647763025207857179728627157079426771605361296197833351009855141962209604803508250238060845287762277979254278276941429659142708369103540499827718427008916723276616867436669485672208748357228813245151886497391866694894726368825816721772032490997147735515629731324316749403451545005817551734702199175516172552293731002366392708444855076116933446121531078181149927219634449891380232750588872455493521415066423487889385254580653137765257828690228982487968322297818916572444034323883293273498539189208748741617713127976920850901938858044275060142724663572172592355884376731495644593234816328741558824779965753592699811070141813694504690983378166188620903150533465926092936371016109145218723406454089625257862859959283279730743183863751437792546344369259286868733904384754036926560016616511853680513327666253273510584335889646120240399733060047530472337888695935641646476670892878564378897459393486147586897779366050791199381502964550235103547920534305392980162784569684396176702292794151372766008059057761043783853581088503551757614693126975196861482061292923506055027400645954403940588305188750298545901304652177679504637612014009923075898164113072177832760807082242113442303343028003540041035706407327478251110117474784376417771613404684251169633100997845834125335365594022506348230394607680705744458570451878634876166986879022007994372223245214274476953732373706310252469380069396019943681671241714146963766503737082716012213695465148631172966394582511340109756613516203965831592441493163699054256624910073953345551693087706081302766829516869809902047240874797242177606826797842729357808809097175233866184354662880576285714536308483150917102149862019948506299961327053214623661282552612863369613875233679073524066218560472666531466133489655287443267791546432547172645567067329129988815955284455612300437349397251293325827640797596659223249740508721189274552312947762113060975809866157498453898317067421331397373988759735014591962565979175467884331762423281413375283032232650358889826892289797372407133018286369303312221515032622651468114865849927667761523446632688090892524544242941423435639757113480813629138159404130493114542082874623783253259559328294813966171662493443865030880593453918017988159614319649978948953984223941611141225969819305974480376131600158088959819636107711770591147606930592066147093920020837038130027308485734765109902043307499808970273023676991530989981905469030124917163098063419972998744009539131251832206470861097762299114890664481487166136382623524168116606060914861293047485612515144997132029362253833275040204502382262096290665972678718344223831150342309657691665909488619317272133347897042906156632990305006305467710497366667182090601834391762152724140216974223717219686860281159115485250209335181635651246013492516674765400548448856632690776421649950462517417969970975966327496189545184543437288751481127567342033136397145452413204715346411561650429865096404617760533444285420874011814041588890653416494807574084655390831840229101643722855843781268716270315676466896410994508927657002792065482856561167455871041063100813598504530320649708234412572834656398682190352808461245086208275728680197316531350474370118701651992528984435378221118984824980674224525947500976784783617163104214020797722167869156548024699693320297326060229814473650576255850960173139024923133147024422404002701492314073241269885920009655605681385450227846603337091629789049092119906442809581251364126656026387480494988287358622635263449224724086378062849311382802422672281752590865767946965324549544944192289058334935386115817748929105264091315537796293565432546126704925940512753922266130477117723267989357214517530660538346429928932196463230682617637800191602838422453606622988355929817604796550977773649279135299603860709645394676431233297100527894788741082083470224216153695797835645550235685174882018492369522471818617321474392353019876226017856896026815206352702789581259357302303122264151597888878585696739047780150465225695785327663566823758866186633581231401551115179540895298428248575322406346520369117804272474391253694499705407420697382921346414102735891364803588722756703280638684318320043839489815094220900996780281733086770191069537226679421555250106393161145583767654241399729358888308504054168426490810531720333262219286290229067365759276146001091548916690613296254993849843767984514802148047825565005640156537263340931879398355793719122466517004012987678904379972955860993182102544507104653972224299696363334616147204210219849207407290629076781045047761526932808045626065369313889936488307278385886912633728580071366456491745062560717499033094404399450472244322661535239157629336319674900312296009488503952813472380522270192227556266600277635774248036783178434273397559295578063424222076020449098669218623712631738802879907006159127697656426169913410239629975428676354023211676001460209531649725525528112713739125637294287873899222932800125523507284292894244578285030216769840300404127283424706705244602020777066561732626467069687218652226923544394546680980384284296376848085700291515234192082931150926604041485486913841612915755696153480938450459322347517387612728420681401518969492511418182259605367902380369547576629575454934139263225766809083723110221615937407623864290149318784212952096366409001613248124250533550300545568675857465898832690386255866896791854302005021556280757909674953235193811545999602727640575737921082071399566920962742501144257159600985716237672350930558485098010438678796543273996561957974675116392395393745428036430476687363052132966875857262478317951484210100759839172475319478918647828505448154382177433965823267114501175907642598803456904208120877131739034027556793224151422949265164559158151568896217033779242718387177016846268158041212828878448801425303897337612326546796383950983202247065073380624860865816415781360061329740278859742540298815784058507757190342337880933430841100530804445850392509097281281495196014420074399355023477882511703713865490042286108503234770610595679271969595525817997377158440764164350800825997202764230755739205547363731983446492704185098762061669338519145389662418109321870190676473004958417340560495092127143147185786754906890357245271196867878662371394912398713118518254551684064152803213670527863294868255729080979219021492414813986568871014056709659565308864882593798410888962631078906056370129534234637724390090907808455979171453495322774525781711894282789404395996294779830891487933890987524789798141294097779417921558529134966093299194032730682200472279661228751073289069058191525780468307483819384862173246699870961402381446978899170741508444314716433892936923599157116855764966838348083371285648692238066196511518742232084881818719004888946731100951805323681957425994309143644847023492418663693316870228454899381973264354998334753600421143471713103285626432748322436338271798063977460501554909843753363057522055967233212240682131896052168350008728312677325453422273928941503797632362667786019071895412385681716286709840070416246888264132233257854178733640794833470416085458434795220693441774169966196400379970963094229121803086598746281827379900597907015563583080431028151269951073616713441309153869883136734128214759801716855429046476916229449951671857867621339301650130420842583870987969822112059007683116641832749193016030621077369853176273744313034329585008252251214822270484265655748660921806072363603948057120943726276261840015380867313695312592021954971099639516392589505473796701377747026020482062542662562714541762084654237927104499858004399784405992486690976452079176482968943980096117480148307524776012881823675559854237985748801320527515232873240352141992330551277682673818916640877744525180482144775249691574692197681184362067451635340692147721307179535492357030611726832469485925623519801373666151029024910030186253870318131867495349860069290197296992351828505278890856874388135712780206970896710380705901161036146505945155736375048761085220222993340778308789640523500050982491189849378083107597095289902395966845597016719873700352256879089229806477363063669208938441277540329888654200638789358596913625232508094963258481975906071594386459570583679301439872222001047614215499341568106298238194933329661887578903859338566885190202523494843794324001140906746911708631057118277727844752669179431421775015947527706198002364033638291141615022935228781120384750485541191021874547195459145583560405888658708383129419654415786404959252972087413062752829105377358985036891568865270294302638984981368466569361207598235230545435409244932347684922911563077130613906722552565435377127245318178085111677377514974628303667409209832814246546568881685402182396495063019828084773771924127531896565811892428517330456333841392019896715339951315959093412918750818651654726242956860325609898070853999703751496101147105463335393393625999160947645795114667268615505449124660625773927307369562812338732484036729044557739878529328971962728181555941533975710977152697844514660334123591640422671096913911755119860240163407450814820232020648214506719805881244000351057963082855726738868137391217945210010188951002521336033734415627301201083797622126401795263889639356052406350249283195709390249756559273901684470535208453907462569952336715624631299941012604823682165734577145188525534100312112997034009993176671298183796564609632777489653722301720678755047682778902868302707986761036096933565517401238859468318452966798493823617480713894581047272631473317495193829383382475204761406937065022336415672053730906817577113946113462846920312163858305451110445173532478081022678002267786004874989681846823724110401987233263126401796238184613169391809260489610042438842836258015600660387928766369396740004153588403268801073768936900011821891961930682429375998841316557868944087765339837251103362197491431507026420011548381297323658185057294310470267798516567587077466261570246393718065827179402251254412383425999318332247094561401177960983494807390605180934646569734819637383891325515655911298019445246357566686919488496491707902951682216212258455037425685552937305795836082842164451900081065048404863219860614600200784167701020432142499307541821263200521405932102080641972067349212097132936081505676735369218889269192048254743932816787229274400811076473741032269993021748835538775518737967989218487618040372036859998472696715493136418226935734751579168340738545403217172805589315232229549321842254389188378341585532450725534158619259184119461717582709268790299943346585402612945725420787202135517433605129197450006724613445378771771259765430848066359064501044096909418939334841774918261392880843436967517546002263227041593127686108736449157098032177767361795035174496493394467383332295695580945491191040170578261192508901551001421713905199301686919581307235670337142985957064222840016317582540204864003435579224944109632555229016583247824033370349866139351963723860301893797707615817432820340758951681340092808507407598476026077512765164450127187379503261538216393806797114912644965357600964036328512774069218501129104218553687131450860509705566712276040392082649910974225807307776889282846533619516867176535332811965785696485798481564803628928097627155671894345368872770127018362660893457623017311904641102320275058829391745972363868087667004402808083932612158646292183488157647820690193098015423311506837471598362578496752328567953232316661201081639223451602895713422792239762142283143723800660224692334056253555649751922573905827792362418098996865900347487821669630808235707456564270076008147500346534260856945979951128906919639392787096195977786830869756189458358715332198328072202291814459088564224952951734029632204443890695972235499002975026300167356634834569220925243194618384172818356854806458700444705368350400026392020542580808141611925544033058491244059322579298226345128786511105630437383504159048804572197688385897932549022257381366148095854559120175862831137518990652682749143708572732055386585652171874703484839720590185790874488431494470310168940150017080211858710071431184722330051631172401538282802049785410050029818446197222749406691832242346958577264762769519579294461405690572911468944033397483432022960702200707179349746861366396200792792837541555440739264031104755768379358095398993980512025134381700334698156994036199721916081221385985730035514256202237549893168697482069400741497013436608531005120791473150835979942179281184568142031679941989136099016340469285471728752459627614130962750132118069743310468363194409551726428083340899695972182058704098092483173449303119086011917024842190950521847089540275803424244340400826624716159652904985862188839751137381957775184204632892930175044681383543297519357317476841367044075106829966016944083365793083548880018651733293758998450631036151612647616487235094017735990304118569649751825563665738113601450911920188105609462477318975935014418437467629918528495942138835899630457095969618467374221793054302922718912729924248298332925976426389944843690569153432193136155245976431763449724182565908084999864464446595808583225433178748410892634440867001682127746383376392041513911449254835633137686009574044558829689538665747646536838455788525105890463670722708324023412187331432366959522938635235950595470268554063348360085080676531504126085114448376005586957926785116584801562808069957534825952486646758670086193410907989478680066190038382953541348745152102443645849978633993935417257597849882215732205925096005198860491687249384658206893334743419903332330203846702683316502152431784444526995636992872516549747244632263023510127511822053194465979219432196713603482753469897369156491941834120182083888524542737430823433845496961056627513775739207030265969232939357131083920948180366529146427258852128623769610054777207740073939839834194819310259153062485559272312815194050647555432396488424160953216237162744074708431797093344479581595871625726324148566842384175620499332712982039332033054270102167036273852971472969235278057961288684143754282457970977722967980087253282555455470196942164883565457208959146544802599128370133477098215599660980228078453195112549502584172101673090484760593359531445094237457493090783735604794292526106524319241742051914630203226265903365198500807335066049735022867224445030799724602008569322341883125154518910589140792368926195419102576302350743105431830367022959884294741660787036225347353138812272738628894422770369642098092951118041417729106003593863195945225382691445588741153923043842929168551674293384257987094963391949365820341530553998698322673379132485952919099127613493702102477024138068484638552023947438341551138239499996090067635401042672386030813980626586477356544459219495400764570948280298954887817276605971087722713639294617968099811286944967143456918666360888821208384524956197887561758982926525904204385268590138869711485985446580454007038457730811576498742222966217346541120787497826490981069390612463032578297774691490420201513613736096092827760847406294140527885609425781396116963948445485456313642125969749606886768092474423297242332218911097630621465900250572732762667831249643416557299932379239392884566682545640586038404452612905732738972298396906505569665456940317795686673931631864557867062691977439808690753631780320896868680995819712347541290948695660764555949985270266608695261511258258245440880929802872154146605971638615292206752244632321719617179194452761399622600716418314363888040429624777448634393100481131388832852593386849967416060762842149406751353129866560517288124319068891902569058394082896885717024901325726894499571322439108488229999557173008705616120784267683230595921999860957776337474576382452238911833776189203035484417660526735493664381778345880865055235561903444316479290700644467794408346122325375739240946086474464475996111926556856902158039894674202764545602660895863007128282212118179626863067814182740768336982489786012993974378229688081659774907830686068735257731467704362656708580362982677882581196259556141940760422389557227203891760468656169026213274282562496653803484710056045981871681888274504101669207507903473089907217844656791478778042977050934339601917522886029135927591863422810314786421064342076301673615687813263523169802970706895151958132557276517583073634813160508640461935219206170733625068705758742271212492468896113805113485562725295975249934353260571272242695598079279169732299575881166260148919436469321380089040700838908903984260876987207005333612992602584004569253808004995337566609459933012651621435332539329172589475435140482557669127464166589480908855774224245829618707160101834204013353504680574763350952368284302800998941402830797260413060372861054150328851333908545243515178471480593227277373048906560012596158491383020358570645324113734628949822952926781441904726789824535409120224344508522051455198536444111076144691434261127310985332545475319871364528801299905753189832654474186522930423329883528571955347626617262411879758218253672612266720197689783630945209626039196494225446212445376390478293689205055077005181290350096659901212607124881119129690027547741214768933248211474938820781486493581014418953840515017530727851267319873764078272509417107673621489872377848986422429120576247042142438593848149852902570790298503825905635912551895004088658063319144089577114652133368089827414101618810298276486268895414393813938553676157212919053929066548513682755478081381168310724243150552881315633454100504901675031799075681521044983697851063181595325707384143229871094247205706078178356505622182754937992984075168716055108663944377259288494124629522321956408307460070626024371757234634378752784557814455463823840523870379000647822837906908287671609442637109501440769638562955889363380909353061972699454916208113214999730361415191159978229329349376734671436179341261270008135462185743469870204739974829012971463681824313989517821300340816353532416273938454917795442871953476395677203994295731112383600333310070526288900265364691397294838845922852145584296149446279389393278137607749017611851409586903685576750986128943107698953965975652981308410270129536931524398672035824233454095127681023956296049141245586562452099627473632492097944255128763771249573895747949138134410509899744787508052820653410891729504705037594819134382944525665110295592303221903973325214512048735623693879288275326387076650504510238738735984186825663072907511990613425790241843283396849112966288334326242014455175822942635089766410649829491149945724926499295919574332983525662197939312234351637449074953568385538906076967876062447801163450957506167130171933007389467166493023453274708632754167138753606098681995861675067493444862121015429278515140351718297862763001301531458816566236889841355638642201317296215436601962271801842838842019986576737569115359295105461182350072316765739695536749345026815821226171547554122092429648803206424076140615449150508789604937522523891746731884417693457382162505547779425470986388422756172372410688325434138497684756807177713386732651972052622753079017839943070588617076191145631004700187058216393125706986316206830799648501255136873228184299006821215334659378930103671213139258768354047709918184310855390753788320021438641194870384425060871643992914569199207030432272461078602445801099320558727416144136088982853647811717910691680777244717403494893489260132066394622870237723491609921715113009922003085400449933323788742150028620479399310840669881229813792781061272358765527721704665609341632363958982131821094926232704083876089659047560952581916628125460520430994926946756927946719233037687564324022121059741054169038936565272007437940371336319869716592378079199751759784693004426601571335055812271747831432350388907632457530318934046699626905784480716859657851427416403873005592560554906364730403792322895331927608040017502063382136966175912185195773534651723216202785028411947582103566194187604387143905841215734716241414119793003806352773415099923757601715260697223646780482388428596298662483323845006211044991655174350198264743345141358843175871206288552331222710711040685475562409838424228067557018166844626849810792057634055591105620038046522770414212375248518175721070971338684247008982782160332976758988355977818447745043166137978222845698884518864411189514783406432798166355472021768584398768174772448846283560359559807375874967966958874065067452785009603056086029718669011152609392492614369348189649742022438521307309740953454522141092863152523214309341153265531305531757791936682979259431682767058914656926868056395127077614337937144042836343224658928219644834307871262029430545515754393349084071604494310663529766209067272132359971288512996598596269825717722839275663205720130411629465766703392797250633496779591741339919053686190118344340494703299586525773229050594233871090122950066716319892550117794556811007400409173165297167294352250578172446494675115178846420494209010669164532830279681395925479184024380164094729865357831950077000918805930913707000779221864924840803649567824458328124618739601519266310958619127508811988785806920659711619288656603342752204353983190842741972820894792725923458450670331001889248643587211623661469507364909872518134015713133851650748144607679772764600895670821570492617728710887953843192143706236216427863733296752720692496068754340532497174622003709610421152347711935854328466779943845241724847101042353726262038739134373687003044345588529529108567385405001892717557175476869656874038768611740133140243763887582362048117198478480048409059115486899861704624600008444770618114209640112193317739665335575638763846181401545538970037298383399373848917339169791053942068763834932879073652886137261266125126297969714652688658214163899707259603273353269386149788376092588690163842374088632491076198740224937924690124878681876972532623707951192330207022770514063729012336505044058233206612951634522591808362041687545716344162226399514757114022742294236459357254391584643861405059162772762193638214238196537656253335305895643787553060855081728781662428738652504740689881699106237992458599559625468655785327273392609858354509104018327397536649266104487799434019347934272080388036862033469768738486598709527639332121211486805141095524755297712365946563040527948588734975839115770013515503131214722698056093143830748154811371813396640646566193168326029000453101419449749173670923967091791131184408617595081871230104080158475254629827754543243336252424299421257298825383192465605378541483772970323968397193015281067573532196388655231427824283696950598410046272795585382806806589379389388917069785750084178369857031270710582466131180795281779570658701983525658316003636506910423872773953613762793216405047025752679662497217156080344721620393082905386122354023214734294911311326313060632112418225675080039270963157963592016008797004293033754680572127399066971292188882218016861199898836616197175668421312621067271407384209520245654306556552816278874349709351803764396501676523460795524691793170236873523257968288635549841526787041612183550497788560651087105898696723650152147814552984842655859502545112854478727618475446913957375110441664102264848833704808439584081729931145807657042190073300768806477476214287713152634446000216959145672784797323052959702222693089306490512956970851812612447519648551430968195602418635673703567614843065851003904021042794543605390546449883654630463734619383975037312789244436237853168792006857202646262321222005815782682825715888236884679727896401193990390455004103676235576814061890414821146983599008197560301813784967933460441840187951746800308498082599673524561837618718532037901425433604920897190487808068844940913580500769609054898186069585522183790224243727304792861160471788381883390779612750602342358652448160020191844339343866598120770235041559665750882453185493740451784466938411824898615266349538418368828944698064324492390324002206858632398995469073859743722392613363016557306750700688846004220859235182331993322542509105213946266452458846359296449500483520873985776407432153663259490635021752979504559857745627686484361485776767073927906118580007040120802560853525769414710403105041425738114182521372960491978076918938076891053294900514758923183877224998509930969939767902476862614303542323162388717521786738311416112287745026198264630394694396111800551194471387959986587396413672934498175832074201961230000901662768543668216221172052341057752254927402132543262871589313361699483803688483806311117839540115306684307404052261938281523108710431130663234145735579294883068786480766613997069653951490410328837627314715480090691476070419684578209274741236005424346509540630790929022622511747949455540891923806053646562865007673133183222965141540921531414094278633810318870120424621057313191014831496734406108094031730567314541105310943579017466217823872656711439599768488797895292394902879594333055030573408513003594524648370119313565197396812182613865587407580703800210336331629983914519296071352628213187235356619661803472347712088331927760226178597546598057727569532111878181182457346327863778408473848460362634807992434832886680998030422790397203058998170954020056746707603855877429494240011063365950552761173708981580447031029732756945551646694377164459117363468941432524854380819356108302398843097716605456393831435325371727716983683326587960107854798389540580944127508332920354744506970239056989747864434022390245321160438029558421052932962367000581831139662903077032499446378973288443632712244780831155424079545159790371190205628679918374970702503706298881099364099104034877440981169184288977860704043814723993513966104416468256191502433603961916940554423590007821003147680928259384055962735560890785781101386975410740755989650321198676558142729224855549450581749991793388092775810272468546702234152086563276320393932503776710742383811253189547602050962404594640444105760867387488059559949148400916016422214109586965448804797269475847019693898741039920514907590828352029096690881908166344670634686963121822671312095901727662071809061567370229877233967366071967970951590457213953545692721035203338288396346716781240853809183802317649810325824525467506575038647978779928481278970017600964836367306654975296680975148413618923869223894646159365420709064600001758942610582946934794700754798499906425724224004449438110083272754736452559478545180556440793221843922274335430734765797330522117739235041640757303466043193637433766753735051107235298955809615659793358017310151596015266781465926423304720283282157283719222937105164988707314417563834078720222086301223341410116464147968286542430811751755550763607913230705541707041968338693794154627970148106933380365270417329866196165876994195615101736282266659587134198721806981058526065707128434832235004167395045232578316758182541990887602205188213166036898991089709589282877238267983650702622124103996634070802307546246248590532068215389933852228748435429470672755887939343296589342314603006494481738022078958681378229146272026665865665741655553745873615250691322534611381354281300927353336594720944291846494947965074026471956369899400516987286937358597361475965109263882656474514885911262063172537437232553444646373425784168880256817433723658917939139569365070570964069106709291718555386254771021389655666013993896979272612419612520671685918610731701187288988944506977609080932703639477258885637285709112369519034301675290009175971331358896632939775523122453464852796677241298111129781210371301712881323758743102123062055945285848474076634552206228848987418607045906719419417276948730141168861195878539545023514990555971431074371458975104110129823113790977003896442346174783298183615227567370827120233376150704701876767530769813058909179451221468100247664171375501234220291589433474148036099025533184201017918143960691104260868254928259373120002655293571112335481773814168360734051683977120040387307908852135546290216840947864157868731803772489034325549252492474632428690349198890161893434947182386503760611625425500939012427792145047039246156646363518847990482048633467775327303040387179480285078867880583265495866172170226638590493087248224432265660908099839687653042013730599365528468576721131977588850109623979134779913816517210371227025023647451097078415414973279639530477127319661523074343189834176445846125052773352929171226175948755876203084064430729747050650609859576428808931671894856690123252983373991229139496871222742688165340088456444603066926063249145086077032242438785978359147672134155318510052693901059494525021381773018309752521226671768539639283378863258255225829651372860221512726614593521123501255365262579969813893357801302779566910896956692311237171266945918446535615162284298308559585874306842401201090587347366290382586440539639987539338422331930040356240083765629873729974166183980895739888260158127644995129983842645214558695816704333054924076517355304559303389677226150081056973964828373849186561122589207672928538294111739939052563030401719558020980310628215873917170030545084149285235896656079010381554517877161840699484661332324556671311968623601255546083541738495775881451681636364994932158693946566796740614454713108728701090963552441716739831146671301956723538848885815285928796020293290688840190816328282038778582463104399033742721832501897044672023268505887880846568705651592606199016766500633209814504049482657283795127320915361472948856422228055875375760799186921110232263754541592271765505043499243052881936621934535949541727952397985171548767104118112240530156383693024618956019615219203884197696576425076211570749161311108218054503791137177368336580620015253333426232074321720961965133004778303175988398809387884224866795926015511819986093278777231305648234130854219176451516852877309329648701572675582503494302327041507067628773851846658900185345314752582766861507191534002599264389079370355483087927278181249942854931059927004514533872710042035080726090670287935317199813315778726358429681160869885616283116740152132031041715987086454722559341271822032188395509434216717617998918456985516613871310411639046518023026025175875069804126300457223287123335083141608996677913327619500518711449690693419063749609267710093460627337845644083741248415948934161485831566972470054942238670192689289649308919119529072237863382481264163555461270332292391212934731498714753965056070183798832301801080431726226753517695285944555580528766323828860011233857667132844777188139985569318434216906112414743806653537514471688701065223124604840771544666589734292944507624486610216814880912088479655479396137468202223829122234430393219009590989003318695153839347423983387086905369401867262035368342524057989130513292752788306023634547344570423025799804226763084383574314820065971948062734264906664189798077639067552623104130858014663282111948754956941247117148488163571605303910840096182137922213996009325346475545130027510505248954621413941358462272450523107599652456669605325191616153635620443317319748739216687763003940033738603908438287254272404407261738114622106387762891450053114434594942495170052207631916932730735372915858604593438796983453545785289384292312179508789546850715165306129696397986114023758425141952144633705617272600272297941707080549215400685954232890648199073744718143610139086599896436936014965767103922295135289354087868156217470910904768741692118273902518720144941143940017131324291072373415550942992342039608588553565686454028912244052724823424460020873127408774973398664204924522446618267443418632297101137455485562179728968259877827899134330776514815831619448686611391450595318184855554496054041521852982453618422417206108619070198330288378518657246215060445535083947033093211257556418427015382491551140530722366217575256428271383891345539840983706014070218267645555664044354274398800699920063068377589087413362857256621861657406370549193856521193783271159780058652246280077332024656483235991484665378964015916944555642813455571269700217818257293205097144685336127035860876359150592475544461418118332335916294271569268795768750161298326075115072604261007301359261388094494537503593422424536002169058546617480899287219047779119335972173583125969257226264493540474850044533081581404599401597958019756032692171733084260681759182343363738054889526872248917140416062972828153213094004307307880605609466257932949659064665480210639380141498059363795087529572435180412625936908828747581275989487698566381377290907573811483307840169299170691331591289216828982061337033368616139793811141780435756659169495200362364992228482577020378856673325158499938976416776328450250783012974661676884083381424536713705033723899587053406412279855970124269463165230691765938100683815370684104846830226656920305002912102439895911186153919297405729400355483032226545709516681903451952143442177773745526073444599044922911567908155305173530180369346672262480122191968356904000500477563127181133417409740986367726246688977045731679281435981730027508611387262726430500106280478187089171466576440761501901095415039453797773936663274885100356093814163851815977644941873534344868555777863406181003526212146014824497657326003620094255148781706530752027346950883047909074436758115672752075589988694111977861268010902659832386372657208691085569529731768224022119309571182366307472079055475370643821098015875322520931560928592910909889205827426491913126194436725897654285313119577054828865058817392594574083754166070982124537153670248225228322651178593282897561554391643691749191818234266930245591850339160659306312460323722188162377223549184993665216055555141171377909600696704108149777420593121717165514214597285414307611353701351567769453575938237659497394067730666786908409141280788945369099590243252401847798023393947752306956738882911964892387992753686439816634563438159189362177148109761545322662317795349563357113955706486910718626614553016268768247851187809112694819449923565140148284550657276994179564196970111253280334245691632961253390854953701065165912465588498861891123402594145535988196648341856764520635095330362123939217423713840406775112602336406955694970383205542244271385721556246978240355163598805866757283413801755596034396191412873622867166173046924013199952211728198402126654516947287564176104561655012623338103750487898095731074593122923765919638101176348601580509519492279301659645988919643197820390985708654093056957212119965622205293500772261270147885504656820421564289100456570341086102422768702968063316063525346504700655181016626572801982852459904972549193883790313388572128411159177797299795062305317535587849844060064002315318739972785385893668567173014343825385757916914019676781447050483312932896924385068909154816092014419166170719901063232243867610348218555119829494550810995096774379420305892031575571611311875054514861373238306798835101441513753449554335257105078878685774311062155783988727595633287399843156461333681973560155641747311345922313373051353146565555364982986738712892520220559015937166748125146428244564368981876533909040048146525121482368419901254398100527541555025761307271211567553268477864296860749211886823672506405397501528748312547621288768401538667901292748289159814602307152034360049963641776124268396640006878560395187861946821135630763240442886310000205621207829054057217512594279519440875740730851473155677937460128751258186595055525834779660308088492092934287551229428229043219255866782376297568648976032437092974626545089911614463633440501484698038084745394547762310241140853066103024241488235377109903209835143935805614233966199769309265376810532209709693815932656535958909902193879925144364280906879693673017701275187019816635354513053554019982013834558603567741367958351209068915906404203395568598197010112991186871220191649839474270929202869603212762481075755292279554692509436865387746902541208967760385842514824824640290658633502504443173312524681315498044953807800485563219720987832157435473096388086535536552703718931412865226960953964808311402965466006416370043702671157581020672878792102055497190944889708229712369669025125681328550884891489957382715222005389170687214384245202943633465056475070513407094401303387557747505936514167168838322666258551693553922837755651326099793393330314261011833926830905293874326811100814521479867293881798633418474110416808372503832475703176858800980352176038107367868672952978904362119027515171376808781985363421031006696101032779709142328814404091741653629890278605690769395746174830027877156671353044794751624551456241914354178024247831853434826981202021378225877560439975234260299600346329839638791025160746886608490416026163199724156948184325946274295127668781623157731800131299989607960516970967219971085871724478008025313470322046623027065728347462646231881391059315461482238694469653357260003598869060849293746671273110939771145314802443215235358094947742207171708953424188638466266313882357731548807504521905141069104852558154584265423073876675364540157435457962013380764232983074758181476693206794612609653186413127504554964929126174223777963751966871683345032257888979347449069140586313174077162743464092500136779451074365800373347644534788667823871672403899503171871325280118497599877482386492520320956783623524289926047147583406908595811734897300028009272278642431054176302715648688428155263062306378752917863263640638427131793700840319278899381296733224031207419624750483341838652057505391067512098949745480619561537486742199622528138215944827750257576109511477269602729603142084409075576527554439039379861597244583330745221891652377367065001583625108209359943161578376063528129738390462259084058424552704857433041752712732167630395118978457451330537776475118093760144130117812636505255850185136099507917145901458815947966817400707514601337374976411044116986616775329031515412456012239978479480639821177762861937215452506971271470662151998469479568159186246657078424193307780665678020791841158829476758420205476706727698930969040378052688496973559644288655367256939815744968792478769408270728871756436966490262048127078550511949263483514979614979111557518422481171919023900786701945067095628576571494655242433343936899294778609018445190691504872961430824907999678910106723726579529512632070810989182651871964124467847999476040466386468503810917487054424626199506504215434843207522568227717588319905264744467432057469352636636264955267557112857497376015642577682294056906568644493420122770337246441694015042066550471142893040570917319197743336977454153177472244925977727037822076918744849696531751040282931262593218081407925729054650061516503113857847449558724145981889906869532526743115615967665022948117949178515647820695937519031488217364414153136871807005243118151939286253822978379080953227531921306380582194225070837261031194163261293987804201372906115950474239527945882559530454432327602770945076103096524249962914655696937708937151496037176669802406169392190628010882428871525598739891874309856418073143862353593045170683053910147633157805401813304824318707898742621558557731645190162976670722637660871385150013872838906830723150398922612054559318376728596509343860741682440404536031663904908543152637565885853590994488469692941421803157357329771998379981393252712136027032368461517824381446166385474188981658404964737879747099763323055206306519564799620566852923028085709033287266335114911200208638031261803284977769513053346589364517650285470376124052349961862087748274479794163528559343545010719299721952989090283331026090795800372446696706869964189436974969037678560481454404196404979903933548844225109945085205357352031820261603570135714778049640383679029991783686117259312081081345864296430703209598460517053029279757297707472138845837493061166610367375396741102999430824671521595876553997341799107676102698674114104896005056897292862820552779380996179981774253774104346941790573480218261522362416351142000840952666323429212130576502242222542478014115644157712517908153552680192228540241452235178475551648468624082221404634884981338663874659265642337947898466006948985510521411034619698967981782472821763672557035311459437180392444574446679391583491871683526867379447393899454700566632066191818407885218358186072079714898881874034295817339309443413599555414241688600268026226630895103145589943180583860864999298782975399587897843038491238224724515310895936279898033359231625107609529458043102531898519252117473638981120289715043473760455731922128387737999376510029089601658626931733451588220456824623515906912581914272114516909718800800165115561329233318583759604423287275732553078995676864168590304731446400609316316045896797642675914928161141167726237017502211857338127468712587626849031735745232744521963514456841839379275835154793187501931231367610310716106286391074180034018010600600191166751246173098777172253772991541338004695540641054390914176569850239196968259738297045244607323729225943968292711528807692215465978701012670067671254928394355775385957750207724137139820563348226853104897369993183070007978472802951827373743274353627155458447796018579868778190853960490971037992833875137962685871277200377964625229469894092964397454414054793778851572519712803216457278013675479694573778628823062003827215950118427404272518142605231109607840763067623908405743815958860455650669930914653371386729715563531637153586159192988379107015537632625239421619566164840966140676846933867306142812563501553839924829819397330078327562901072838493031920565930915076850308722639537920512242267013620528501604242574357415783468697575289097007028646162516349187536904473087437190094025100933295030967977903539203047834185811246380423060734062502311097482591527130906264902290859932024497320494006875458741404688433654471379866502757861829785144141622190260595801889951845486488653181087655909766502967601909689190376691092999685620253727032138503062766362094899297981951589730549770278764927959340361285286809737957929676719414438107213379372292003765270746460056860530516174010716767387242631675334402961170797829948387593904218596389945359966166287764834457653712612653734941277620035731934756518655232506125645936786358559422506525057256534901447750940569203625928113589128327146004893508139926871105504600390007758628768674012610547509041391289654335489883756257635133472439554474780401247491015610686332326648299167497120499748932709179834858103203249955572921676114673353669696122828421851979310686030486763963554661734509660118865788685598044343656487048055558178751454450221529601132921295237109820805843103828559387998670726677182388023130084556098128008310291150963809529913723767850717761278971103450625153424528675366832229577250408933932186593511244714215409430092686518838621448747706409291420916420230784443917104710777035247411801266553519738821540488650922793089804631843298272866061741951082661360785376184221705236110592504513134270638914193653118457443714025900902601517323643764746746210736963527786849423969752968772879711646851557884200417246987658374370879126587133968516510433272390710853953835815523445096214584234959187951461181197015864915164812730582801777917191845352552670965026801524548945533707663844754471282907255421544346490367174795220499193035899984138340600659206404268187371574759061061859498473388685084563443027119037718075639857403114288146839292747370806441779542779811315521439786761977335137297409814847575368469152973344961210001017867265772601016539375604129097711095789625927133449352795312645209012566023017712568448968326214032419788146071729250745201537075282453966676071248112031596255400245674757830149175547475996270122591830696912097802524175200924348849237896353153731570595778781761928259493980385504889346143397686941442418707183253540192888468447194653568060393519838282112420520813961358288598037049800912306706305065350585339734920463256149352502395896251273507455091146624587940498525628439871855741901396705219559699385082609235913326909315578537060316860966537566302836009550386286359333925117597517282568116905378038081432160011971089257314067542824961984163901876544262311464272953974004272707821280073429917739111356696309932387596059643398819696788795747838701140427031320875931964655305206536706834621141085933576413181673353207893416749133441590378015885848879764671327424611101911008406526942443586286232556315707062924890050640000283287413006394500793143191491681898864415826855288795300593940689358795368188714052299433556377282583997733353118826679336025831838878928817405259436195893955713877778030043757624587130837247205101784105929901054279265706817719217876530820704660007135965420866192088740949902398917291259363361135332448476974514076844939442463751172915907676947224905603820274922686286095509469363763756508848549018375648247427089833454444632626629562003836298451425666792555897551820404233788181844574059715394637851305425540673155055737350439199313618389836988701312876972034544980624642880089356343442760367440907977498975418933005063238005160107288361753086419217659260414963427818104224987166560423530387749710197553059788624962329096671329177680118899291657734005759801441090502722064684264682383065533242837011978844517117807775429373513645796341821794445405941714263639318884177351012185821290933699456335553521232540434411267191759683006636924629484764128921080954995909437768811851443050912569025430836827203453198433857112401751933686901743868375772994801781559103312742934389005017251086808068220848218536042611616215513575894099802679203788732753869142953581162992684108226405962701205707850417233239667178722872208276744779644345924779443401838010272030073149464466459053575290462298324540573723232457394327374829089532924608222966854898949470693992785667387846893818253109520412868224551712985202900976037791668064751480669062693824613673468592125433072696979849657858156418609078133289730604509763303168892126796576534178442791245172345566703339896679984726065820829730832630428900155264428263525056326260058204222977058335228641539728193646666569276140892253608684684146298661954420749961539298902104112741374692939640634424185841468214424663070133974736776300035821610055835767728174034445596004536710508814498343443510469076886321589874123442501725618150364930287458391362392933562268681495626404926937868396110889686287818421363609916783260520055116079050935078958511468506187296993263715993443328848114349613299956305383759645828813968878757376009736920293699533205472949766226093710127858993825932956530267563707407214320126111838777820888531059758904311939640836939136646452282315988746390441695215287442889551210250502071388879620610926450966891935129081164708953377958295821688807424406528006303730754118802422266827881372074619622135076588665963842919968051551085801679712466366426622932103474418281841801291752243274008900312664444204785316979131978386997224318973752504467614886836482466518766740871900437131910102119609117444469732549232669452919547350634763266653718650847687479721973101260252687295192169520831001623426341020189049860346118664846143505475249486658294302097516179443230531103394601966774934201381559153177120137126824358416328701999173165411352998806774637345162544282047092359099848569986046435652335906979316107666512898261188025418755393830672757119368512176496321086442206907879492756968423357805738442159044355578959476901661887985394071266337752294439725035283333323711358165831904072714048277604040660837972071462352484740888117094624841378049534064575620551852073069713562602145744500912953439692979087330039734269226624620221261411868732543497534609120894567329282159034251199991716472711732255135568471874331703045814870235581898337042880231356102290992637536682266589334902966724303608832842294451760872188658328722732200812004299041191087184455072999416743480533619068966562187269259608798797040732316373096214434164595416685396016009338588448924714279305368080398909930990342309399709091056582822738825871630353163910797875819514553840363542297461101761530293603787636057858272927059353564422065506195048791075537075046425022276498360365318701186440059551515170834634589618302273528913257920539136248810635595174755868267809814030872257693617525694315919609602778554089964650100121195480704995003639318678384019070919833106657941010884456935995628215142574502065048050684895146056578632961564488021136973759715521455763553840678095492139420264928506348601152666001759225225003279471873511327094053026400943618814400709643310026822659163747197493746652031190009286415317238652748107820037921973707124343074878625819667824313181856778038959855027781224116731934151757713388231643105415925686068230538653144775637378059662349415211209907140019316240415596142971755314349398839919100011828508504014697097024699038606285454670809920535699346035831295464441250862215330726254912141380094782673251196562628072345780510366259642186219480401229521356040327661843578730231414742375797380000238902515498680770954458713000335195290585272353553026732087375841495680119777628985273573594275098928283477332826850044706412038395984936487600201832664012552243466039363893470316414925757989448124259524598203742077845601415096776683326911189202011975320372990317920864613056309088087515364966630803416349959395359166465004710002195837034926162205186236808842464605801346178096123938581611108323107440148559611783083783355303259826371414750523094816258209732072053112888551125899018219753373283017057327884480224805274788469340423398193017833988042105962289590986321494908766579567141639008395036489528404001972550650218041383051240433348265898633915598510238372902665540674807920290250831688834474170318240332011083247295396555019010098996120782340137381692066092755820737022785410467286936665417685448067339411790603062770314590050614019178240214556141201040414350258953566803903605239917242609659835520141297785419435596739684704918222919788400326604819226941537619374870721892129350067486707370044850782735608004546926362905784139074952404510416081171788426217650483953320709790934743997149699910493720495695030474800340593085554453391135489095599817793051839554869659613188503933708681679688431686325131988131531190336517915725593907285411692282665407587292420209378928976852937522433602301138426745958543437001678748175325744874474334254347598851770750067087448062621431449191738688957379394646914900558176644315063236075345389370686068760307815437602880575149700301651295357704667846474695446674542801395928581636506781761839812670816236390379735908585690164855429838458803878862440590489352052886050846634927054314379896183781218707484970938998631380525221965447676063068489168779799675104621513390473234971486293276782199162181361220146875638902430220314475981655363359444522188941752349415166536744275871122070977110689495501284415991216187457045167166097488616076433597808555423519624902618813515666037423612003846026185897610899200031776727663460100951914982071261204315929228390542970788471454617898279899871051493962600714323628084004318493156625953647345650267228878284346348163320930165892142137143778369433981588348711967768679111070739745021640241718732779791871549488352937701750136218888088391087042485931965749146064112869937447602962730492210166214321345419892893616772247321038182056116383266944795208398404410488952257443804727218169753928608315449914211739513461506391482971169803979425836721540022186794628212011110152575036629277827339773765904243983031231393226575402462018186715040058317937143691580190744128683452884547212172365046957103302107866344846316768118023778195188446357878417127538332922994129646308653466245009992445495353663100180389262984017207146473947186367031722978933125281652077617532568997728947017728296892187641968097465999459857590169332146607947257511732532213263352074829590274253590091739495361717593360639342019356134564622735225729611950897642766605885604599120095925170674794178265954235809782695985359665853388422452199555826466426224178515671756933199595328132611168779376426981785318226855378139134923886456917084498826548748425399158668126237013042048608160257101313210408220714732121363761138379904537890926517826797211137101360150094636493898157988938167888696254504577069703166904219839114603841442003865766585816917010766078058664468288913766720295515515290766838905267000097419714265303239454340816701074578887326737422934829040367665159619790615551005350034895330898760867902438193352715298031835802406321133728381744760608474156446928670922117818787006744651363470768489567056656410967197221080178932252417412177667185317392342961839902322426105087695249171116296216207089569959605958211655461375051155077362785631771480421334546032518884101262877918691319387381748350696812390514173923967213749393479183414743472992834222414330861176578846410965682524421060464519085686812017029591932573528332259732319892837990020735741665842223760282728810059369839183211936971689445163302380442931773112330527499142905245983029226607331066873411094646953786446556598650637717442013584454384674125735311202451167724673441351010909265870657393217025817541111708478153442072603373298034029052451102807298268075541079865181105682096039268664356646201672936356779430656674363158921095920327522527667027350777129574934510756741264868914569191700045299612803094372504564257341195942497386503956298422123847671674727960370110274771772676382392185941437585021196429163183453296015647091683997318627805136394984340757397678869301433393958089176499263878343145953759480798864929188526572861483861114332760784664855174175368437805031369250973004290056866725725782304902360906693471522575308540420569165075205595317558245511561978914698794211662176014420187882670009765415502556042424794425325637515659879796253262759859479516828326354525102316384965588125819665056075654596394183647034816051621225639017312150515096251567997671008439356877350723468833374207479097574628938539266358509221854742223533583279466158106540784246079195744153036616046906292075166340848489874287042385963003329271922825765980615552197485883344296934919228189693155895583031363407114678785467605976017040326432784751339571491062931288657596380838487881702806572008767759406488856642855004351394267238400087976552711176231769588263132333762416275077731107057611172373628416879317509810363379992263916821712430580150541629597515702524344713642407878072437855393469366593291919902648126186466342083039180027694736305424790442631309794735921936564866932340274459571836694481306456800984261317839408705261483456401747550154823325248183382068712816660229668068524366096795709057863070218904762305127525664378138274636754921743243068573614357653712960937163057292279283670072104657347301966194868727815942898167420872736107904614142851944730936023603881177596838195811376145720727453048067316638700759308295053473686246542241444638510770297460851205542214837304887332783778208190286652961033953410320131849150657075301875125250006155135650186339974626825646305830088223105158250753520935150543114958973637606148106045037403708408017505989136243341676204229444445557726059282872741639220163491030163274624255483480206155659494429795225511424197551248074222089675628168473579688273948470041275167301360308468071856986409646421370522250555609828161765697502787468635277767971247504053986286293945310716760506071944666127022660262736846630968955404517226873610489362545137697342472835076506588112953769112919030847162057321044067772601888355596681265527054526096828978998431149586613216504532247870447623861400164531774830907465803059880818529792770974149168932051747757229503855441723835922090073655633127803834396678321693804668130595599839120943087612398459626413475086427986847747294801864371070924119398100237418699663469305993657636857136839482954116975900353831225302336250563634276268859234223045106670934162386022845463541690609939325150791050499644623544264799114292627958383655570367933612995232413658559528336145127387934983577983648620397422701027489595971916203760206236176179001424974247741045201114781484471273978982079858895154720852506953477182076067758942622985606242945473305207939593304921587579466884218280685490010014669941440589183793394435178611422870194608629070253285886493045425041185656012029838002194485726660008428997297334525058299926566945206410181067756038361264241466483547861344954590617717276721169509097783077230208481089725236408137187931149178687038580888277819430371111922747558389567889454060731750076971296446291276126841289781534309514537454027476376479430506423931333858772855042618093230080274718692899519367201373981092148431957479106477728174693942501778746481811370441589983947841525857282508837423452502592569459422526032958768050654709208256287722254262443629894675565709489781666256432919731318382814667106687080084392738302537420701155037162682435384348035729936219580856273565069681014347998991616307382954022768022998855533459548980156883148802648483475249206156141945287308210323742356570116886875005038897255368963451291922352655141166455067727217709669729818385089370279618946842934381437770122304600491263943566416378721825309476358600541444868701584468403263547906184743335709488523981857550935431708761947323001007937309208520628259853959232674594341913972628944834728950845107604000267124642064609284812979639044089900614995073168702112455257915552724645617459846105903115306152961812187498393642522550085519795018343948122562270617240907804234663616250016172130917609070050149587473828723788161671041298961638946594504222694362424823668218819689059388783269906824320662611198329282252360356197988597287895628642346611404563340250176628921597733811904045723716977538837266706735719752259637995336258870624285418291720886894678578803502707063099247999477699075760119175913770858100634812745718699203946829885382198634964046464046893022270021307686772175843810784741367855434234672176729501853357133410142408456486923207599228550845547469059615145936772162662083122831195288871472660389152507423574283399598998466058575489842896204966246900378344559271925576590642438337219979675815354018376638372338796304093819930266970970091678815925553415742636101926953972570025827218773580093162677449584217708966386664518396827969298402640976474167251045072675889433976663588881843491204511652474165258146826199872587762430601364182491714306158499258798429868892253804139714072296987021055892277388323648081019881546526487270977161463024469638030983119584937854906894338824303537472191829737771017532702207415891773322575505063818042714245417825972294606074308600924335529322562183430076238738402709212965531683151029318405070611048807588577236579110074684800088180082391528602170912342564294271787399108246374100795634266558893902348321001622895936971844803624929957184786450370561398180692427855479732288984348760449723930572673199019480923583230053044782158154503716940516815697875055159933653009066392681687512886224627146493036203747478145973547805297661109183252343022922300700555317011152164063854228972760858919074287523589444840530751722285678800941097414508329331607582581831025703700196032008783933767576857061439810224932476957857129781643308871552451830512961351820606830715236448521833429719226636800761089934082550496872152338085054321973626355313497445867824856363721448723957037726984829305173750017863016650033833428640523664203439891351000388826682877038865368033177079367642503301632070038955245227601791354646790959737745801493943729280749582175337938921186717751122134379940891932144640813446412858216197843449832798827152664833836308670497191906514897819861527462214774581442993908200919458988399339633158894947495505753049660520766906471787634644251859366268092921164821948623627973728744577881906215989741356866532298198501597649811812687663447172001333291658344756184574881034952749329499396699084761329393396473360146336981312139298955596613630454771592758609419105963351400201166832623520183669256556968068184810462687805050541182690356041178858191157591887753538431949439411181983422150240362058353601405682480593360820676697392704972989043222061597813552490927031630641158327908406549182208190637406114494717089597700496695797358463005879600300397365707151103842665943776449575369038409323217149919115934532413797249623377280916095839940650745090463364886799250096766229626265823770521654202831992524862925645346529793696515676869956783375535989896409537815035129275458113148923721056845173534113048208466566815144349374465110611219828436027340846428834059935553563054851927679832380210045882120346416986002725409074721217565567028368012689784120549328838226453950513134731302212293272068861579948892960081564715290993880732639600944826992121458944546106856672818047486872722466694079760188966775451225300327926681590445623390739743299442995189940653195645815542365219720586737513498014618290937243166496969805730085299491553797838663588425187694498425362115473814494605222633722986309050529177735654756709026776814769117054327702641949334368170106467683866728939349181234365797094992962783683967726567782363060538028305742778667629328500455065166708912224271776246811390305883565632016098549642500380650847372929830926268241330282121199241353586327856027143329216316709766888908606245996129957731431591119800851972029266449591669343271317477533450275536246527055091527015993862798378572252980500042324838562305289103622630784509561317906005980096045328470243636834029974198854934630458377372956435700930453317309457081531876090643123653367645559355890988418725986416556454568323487525903840018231249750543359749517979947436229607497794525651738175313958116051659396389927914206191898994489318435877105652729894662174257698466147464746728595182464785095834475770046863116645620923993729687096289828549772933177859150560641783550613163781442869712034564287432576415297417990691106725862163478122877920648883038073372675417727531948308294638115347412744981240276883376652971084646968656989708838765438866834268323183360319948244420771895377990354166004649625626678924250514061499019251891700137069580004694558074270656409674467375292005091646052208587680634115000133277127618124402315616756546826016129301463053163639818635815706528132617259543095635539522564948416934684185407109007507073012865400892433898171297940634475081136006378707090684932579788149548887328002103506664509677563980463487717005625661129593724001296911247372875977698404702170264841455032373842704596728964630528164159380429393905520391802345360953931389217381440581270845867815535663069663336575948419954940881132771836662000291363677856201282330197037321374663192297966082849807531863578765799827071881324356659512566156986407124256421190669169791214946066822170968724733010786346212958099948891287599699224552747893213884156696579414353616710577585343007657434111493635657928246814489019127796098124537666747446462254290312604878693194792251954371758337626124467023022354912457285092627726755490974600409278345654930959985537306103928061085361481513331565308723092463365038955933516246725220551738553449931562118947927249540725905827717946765326725299256147423233812994561328903292316386162952424465011717937173358612494560748929015568574954182280545921073854787965412866997412875011945369401403571680827429499432347131293674324036320347287834222029945380219994524437198267300906088036789072110577925142880199447245730999252016269268404955547650006110041273046402937102302533991467749560070871348767930762735592337645501676381004525815193062737693119819482420867939895576553137816543167259540963113807428276892823111974608596779223958156723738393080221489378003518776494462440743506528927901715343559177407760608830723733013367054818135637767312048146662779195268487031472454684537435053646924096468929483846049842292836352110434809952372205010722105517054409141397101843552634248740193477617134244683438467228790798367205890437561854025880981401038430214981590001571789126737078565571198833525093158968058889204621714146750106750143366264694301265468863961181417966273883760457494577504151651091825754140304537398031631568984311315812969625681828197126977947262941987374843731331616949618255083457447695777704457392188695235223302203552328247871504166474909935727634029827650103578724391528646828894050537942448895536793803696452172815052007135733953897737813692140026602604913666254431824154566157673160582213595610428505300811486814029293176167316300677395303772684900022799431684825755939706741891072199143316621447626272242904667109328633157234633095847101505803931728794251237729828709353567115716218854108728543321794621079826464637954442560215479813594629322396066342057935571533375924315839593108605481038642500086058947381882642460863228111106674304895145685436499748836289749874386614344948740648544363417754652235438249027563066779191989643991522670015311671126974177599596922743004708486486705750500659257533310353617438341825859164932210115490405447862157518260356900411879467244564785662091853807655593343482353453757421798899599735139721644875993590788565733278190070163980859625255675089876227805707168295572374139123772786811357687883863576086177993761789271991208112370440655805566026837538243820910794635483538254273422604637919497282798911465485927998579801913138438025287173006723773000885565611442828494774463716388225422923572328170231546740495272676923997783557773765131770499932540728920391430244878249737078691804685944453995230075735558102571166781654220108587451390103464427177888715055415011823135393783998446662947942062471786376383913058443831297011984882035675758131140992572458123664750954734422943690866871882806668612357442219276530800281923129796971118331805347412228560156700618494507818872820798119017702317037676622132486397902223040244104190995516501516895561308663720397480791090848653933253770626082843219984642162568050766685768762701484226435668961001040755235006679398316109451506661890259682087929874226634678523828764642750003725273980793042042578514398253757781462298331922628178746795134186880925175482133953527940459634730386004666947494328479305759017228607603155948263994535380838077866965918398627005968076977998547264411328029655192671889226487890502201530271333129411564585811932121438366231285522158820607077686410333339714418440819516682887653376511566626059853073354983515456113903838378893673521508885302864003732269321908955453514594781418575233133812522243372774349470275801058014281481778153679356188788773934516415602394153737434120022757516255900792420589698812209266520307461433032032384603007421362902524099640796524202897886449887001237340941939108567001177093006293654541188031683512803584147205671425739184231617358729850609135245646805768565799986528101550611427600329561670144377511688175585344575274476851844812424088497896901656447491410873054288192235094266360555556404777185037698294509516308212381784339567467107673730134659507697081479803704274382900012410030878124237842344356352079528556408261037237284015375921848937172033374878667964229615682553283777853175235526648526228407856165964924964810809140752033588492871593630287216078980178355923448687617764454121779793264722265855708360831700533381852814830071130088533552350035296980147693411601996671212628195297016265388893308181531626304632006523494808078498654672030323885951508236907055085451398852642324763719592283374386305106530791603762914187050901598822164472964012089348670193504731428417792331851146047595775320281730299931039831770025699197019480388716350324594178592768617516936790568908102615377203577264656994868887509022181228975914746880064384851842617075559139848820400171593646545125452599765699042926014366322415655958699992525697201497541733277502381031512516371129931795928218465641181324783524635171288653127141588203350241567408657790495608164932933317569954141504411839404311445242849476743363422833996112240982470773599376082561451668102025901105826196928312037432759881745482526897418763048586830140179898130352204053553302426364912570424217553814583922251457256079194547574007699509957407150871209429262685323430221637906417822631348443958563730356454072855325417922582811980348050501760158840027170575757310358528848501200493930310253961552313020074116651299519206094967854877230905528946495518276532172856046357384410805398133299496700657467596085675386771172701941363563218121245167361439450753072974597471401744498762594608068012392228413901269475081477824098214835611097411691879478612770824138571977174504160345636546517984857290918092384256586010577797540941895162346603049841733635149330771874997036588121679500219941802031259592496364004780097025587444497480662879196298739627567123670851693760148072623098762713866360084503276715397983129820572675551060583666102779087448254392588857114617461949489661825219068510061768229688112335012796185614815719891319425881806858278844809194310451625024863678975274472835107808909821342347847073382457350890247264642637922223068985799153106212155408395914941509870541743890087506762107019181165670133926865292929979396948030288781118606043993786502086381618178443683179384106212198442475339946722260740647322683638785093807812647072948911993394986524968823597081039143066896296879757140354549215964771986701577784247896476526514809006329357909702336547554147185548241211153249209821493890785402325805378332870264995925763147396162794346820845820883681102710982011937651416815059454693299659218444880756811035333214911890537128481496102122355073825337581688095725395689964274437248780245300674175240852477123669038107843716709037712177614730646879418435849822454691431329862444827669134005931110081457483234973122236731422507622571547029941439668415645365865013756126231935229984034560864983756811636090669058661199192520689747669818395130273540318669470795030326597417703085840366167934163620621965782452998977616271976388878178265295052276760735937105693803611039110997296763855931852225281884314009158774030525648641133546996121111265908944929137540733466201919778353719575425805105019345798625802521827989923843941854676612016223292636171512590478190706507805401239607361923865426048049136307752406707954849363789118885878388807134274092116696076532819065225543010730761717300056872038715414002392488580818095144465309297176850468381410849602309501608996899190040698761848052801008987460334199092970814077202924459079133239047495865476711051547714171531570538269774057380877391468564304153243335853134503403164563337068260905698736045625370069363141142707232832051501949949472255368835176808702811708109517995059468721350165804362737545743536201549604976049327525352439008585757892520235580423438157113194093498292912490805889217053943039901755154121767353246786717652874788103372974366780028138610179348852705033625214518341376701839243564816137723694381939192760774816826654210937815574663640119929337654719288772615949289496334217910604106420253214449262789510824938595292613105271092798386836738009853676143262304950602742732543912678189621473907070638286164471577974160078372189120850424196997723489528298243258025409682262809078835231522108345561165731975994908290860689446471015110691161114073744278241085104687976520139620060662966876377309542546290502848555977063758687691142847932862724945620765783903665906939226442255523335369199598873064546861962553538478423619835552057556955499712194619903184016775775395810860021445153046660923576029109571381956259566308465604777708807566488511669364813817738886855733005214066559931604078391420528629034553921749268098731726378545247827349057424489349499837946634790842688466078627931403310670105827750496028027241348040593242858599830538890890723064618379054951412036712511884691655827643753356299324482590799633624296898337190643654978812123006960004675507092004865342671898449284393676491151050539851417461710611123674944376564223946169398640281264547080570823349258005377853938173550300583693519691327465303604224050215369576195846134434905697109927924796726418290279210377505373638237740254328087355792836649404264482336442958676209425235586655398442559599812855216454459493562963685831666511021770244233732169408384481698756581808327749687389851001841975768249164311681157453212394106447667335892453279253485316098871163168471758850607721904700823165205406497301518866132988649484811887447071353781693553229160984414055346486234804841273714256448813139689771553111886862895947484467837671790823811608942497152751808972094155281206827572290043038039643807603317734238308362393913737583551630257198650768514355864646377906714537560544034614800679953414760748632611570671862093279250071916919104299605292889831010116043829112662347438245814227680946343322258255900101768554949843676137993113107479864954488860460360132123036705946929295778455666498806464956731956300971741402056311785529028659819649671660366407568020491913050754374338511964587348400922914592132769072894581764333740138484688224384718149385103684193381037443141697264865496403463761453787344691546557661579412922951669626586808477481253806277772987334094589286622825011789556489675837118725618137406508166383129210129541140651840418849513065084089298585959235438202621262311931223476345323139035734976581484979400855759519373043806262749930201216301870876434559195538330570223754067038762753538491558111659217689124375466587817114364027413749653462081854896507189824253648124262298733207310254944728619904151140557641144621828857842663153171829992263118944247790488207170524597258813649532224612084154062258116903420211380940799552479333820279121410401282112067563130830248425259619945949767868959208060510029032666868624190255637477501607366049180529895405133898689617923767666333488418102003748296407567853140294283676690992142277008673730142760352713704743905964327050958962173810308303038075328389319082305679441505941675966912529295016482985795135008946835248566228070733155501988710017446570668503478259655957519213078958929834739643897705049294748811179335328300548199276531023055149911348156671777893230072781187288638475572123055698983158773119862083990851980642314482095656655467747879749795133060847531605063842454178237333170570795212210775976785418697578574568555771741300585002324584027364187802992544910804252578925044678065725195635444705638279698243308416278529745130628363991485769113476357582092133104225354273927860816345366563037064618425309125902872791523054073808929683674981302212163266691299563410825969281607503899976763663101401621614859764417873335951512167988824700776014517834444616191534772541516882457578177913809972077720021303403480599422181572191177236194446072728393580088019678133101147110245964659655332892491069153129023151726709849579100609290600730220047088153722210359713800154319002229451101960207666290714297062484933981618246318514494571123458282997985454647678473054896738731983582273284035650925689297048332665405941693629124961796219977375607288529672941163417835220243981002287324214482521207121939121786044213280712019182365184010960759988432197806323036301037107230339518420709411916697664485427894199611000826603993556911514190198102748796961122514563302393383884505333552317162727772726053182840360708563779681425515212490689516751876823017387636985177152727270732118572646914780497629882668973172764885385631627189721980670799871722810337249003926602273527191154478831339805071251786629137200517459714855852468909658627225881325631039377375484898809098809868418305960091560091352235819677991496199527111702239379568265724271095910262655780093679843847591213681068513434005880270091439427611400613435545263634840573126237692759496202836041083360183736077396482504437962797133019702820648059919684701142595049309742502332164843976800238731236076379307372442847221852539601794638599982500229064283043984948548930017386385483098962305468938676078446443629486153331017059304288962273187052331323676889489876838509003057507893927674252697308459590678985580492324811819712318930983856118089567590686858824426436063119462980792280357586466536961045473825719780121046927143224880520284782535408335029936278817992052597203330442899101116666104018053038127095087870012174840180403461906351173423854761987765478983207840557139258219534807049727672417087204621607545223863397074301734540142143582195020953032731955885101645546747259232079868560004986827712822402026654634638007114073994990162080543192722041009177734590579652761687015901153350726719078486944898430957719080638181328560167389718812952507249047250237326430867990138620258613712667613478552411580758769666552315548657738511595132814963780039048792203189203889607566825042109230549298625367776352255312952638262448106713329725162331399044158068532759126397594074113672209103112320899766175354025334532994575737685653810648232841278283173671838773700154648795730221608440060203435491422167769992144604304188442153821411678031203800193800812410158255710729544205485595089204777079858031365406321200799382746329498542209547686017806437880469858186129313072288206078915395112766435172425438075187214853152795474796277826059493415151568719029862042464538300747461380387529005277777132909505185697339860127887609662755079047580373215775282593479822722111736178048487108297470131934177694187217055237751582851857067891125861652863281240064219165912305467585593659063708781590508285100380191051586265153047161627216534988015534783555954002363818632709704955457695515853924483946689601232839719647719582291911308173206764655490400739994301343835728283462043457986818659983071796186759216237605288818792274139727023083264592443681714295223621312730223186606047715626014841905412780400392480204956981344718133729508852803175868923047583395174404059539947403764102723116550530193001745933663856681815120921652606668042433943490597250622472623234081944462115737647902064273897544138697498150762338480520598503137805201489636550958129552021702125379634862646217899974674803229017543266156304677337072959636588466603280207765854562259319205710210816609991700146820614779514185148063263951325387883708792155387998912855920313050969061440559133400317353458395530467970104489648303511775310573565840985867209521919378630111695052135283116935945878909844918601752312262676858198617195633112244879398782805983873804109119405563450855323994583442446039576490116115467105737058922039921183871668115687873307728869299254125797144606917628586341455110348427700949917754218012511619549202793068350908431099943820884031256491380688070230093483352617055724076612505303626575393577030303741328218723011003939993487556224060030519290995376972430377681095463677872416925408592629390961096461673591286869324750992794175723604618101959682731651125409583683554255446278916385703802132637654273326945013858501673026603854629142702491958087823026790963085398956314073966154839357031221685466449425959188356691888680191175594477183424744701686342015773881103172568661509399143394504314475933651420233571178641819888792962217721834968151181403337713963228397625003949944462007516052356651527438574424385238756814170869905042957194304210852019817842020559357333656546688786940963690180989973225357282751767352278165337002022986596151802245320560386615459983294498551937814725221022417588531219201943020329483209162000651299419084316496504120242700909480726374405316229943768585483770200769242187703545899031703082548737309943500223674434529125103909734463106228050521269189329876625708226268616352297782785550320306123495928361574003348871989145841212776606744069582246207585320553271887292154924632925965335877083937576907728280959228896766554035369293921587552184410634009737554158950828641541161842737806256998656016107697021663494020683856162003361629065750822839526297410079695560736697887181330018305693005145779389047112669151628031364856281755726793199402524923700527972164279366493559246602013945509684242912929315595170049228878950046558771120047930740494424995242930649592810469523920329439926782247484986210022556330369898250338985900460411028224305215800675987736506608970572474087839935615147434209980971049265527620663884721072906268858856769719697458912640586793073105341640874178746850668147147230697679189863964976385038319424377018421714371977121823237666298067278295205664614447293932281126475013942604622716266592396984085267469428960965143567551912739580011229194977401774926653918186798008160281253395782890428475656600668800513693202306193681257113025757070785005741718707453837720850372936389367964055556285764114153119742076068944828060469467373751082089088636162552891767359228971845764188661779934604517723143568656506065201322480107112141521874075842356163842175970558138651362744220906664101635421680483657450479990385404026356906998064154584524656623863331062019647923780093043929228326596836265791525126540876481441877963666225904286834360821596893248323956614498403013751827758537367619753506508741775141723301623454939909716976439606785394777390321912195916482940456252131010941986247321756877508412006902628327618144126206187500246996721898984341720158145536363118954341877938614547232125670669306934588838326052179167346256842596898556605286274351874211147704796109584782191806253654125594066398871239553202193724296905636796075825086516384970386809223820263837038036447883813110756395952020837013270098075602872160420092672427073032590661334081171955017727237353774581236697694893092350687735436685077711625561206769903926414242021651942116892131923842501898553285742896887864809880833865404372945768418421450281349045450429226473166125631898270940603435733278877392870721361543077187157079671184714011256273335165483186700106435028238703564191217149625629102732042293704552174587713032497770978007531734380087086604032002246672828293323787407845379528086603304585358819896374645122489751986428065801498483003861947824175468480065909974939615796021428302342069253829341637123202382903797435107961249936409270624026774880661746109453625608165489646026829775368550057586982696115385340398402130425955947587259648116987422955260271141237890771778859957244152676216369420954159908886996110864478722482000214386297711532364164994199894924902381145069754323807252732194456031435279449772485168254473110045778118656781674731553480634013114976771559393301585438948192539272935221838066787479804611708390833052911869520042620895973482213806141061994760749171605038775020691310276423751937068583271730842847637312675173163788048985299133735595594819529762821194544095207720456512071656299286578402216817588693062141844750916635941942470049602165321039765979319739716423406262004336785354453162229103465001072064206084056756358588684019825581511032148826966940439090529282911911931996299659300475304689758915704505739122971282467108404111512435711372319728748787616362168020976494399489814614356147843456510877915045040735058444406181914867984915409458257682398745093266652280621586915368215501670077343422175692218647532656804416571053991613432457051794737272343243517861512363353328993433437012010081358771592146025217151393352337639431316719518549914310560600815225313269535405625611595971357243581227156589529412192985377844867926355943088866472972944879052136053997782366984831392747495259647032849884354872495023919838765378619446179380764129410238698136325258747999960053478784319327856206242610008615616740783111377742144373399676088395851053715867505781510296396501871866438745054182727476160010781491948243240307335221648334570564644173829378979477198902704252105019775094866487821490936457436055187016670058550047973350176082894117593651011849224070755299266470513310011593197385716339248610760564742148571578520571815408083946698631552286914157204654565340888243035510018126829169623668748699498780528839748781167259918165487771582670822255876831544291954746069342255946433120145744359340114361156796301827071618347967071506428583842446019486922294899245863543844121059230866802508309330398478906317274131257654801133544883801493404710925395535099630256737366083371552010796829520025405993832524331017541236591461260238278343460704897549458231733133393550273315557830606757991299011732866314693752853745015568613683802738115096325718564562680097447608819280530420194900931371598892729492918365325475930531855576369000111765692233121230744968286428059026796816216792131245949102642550941779154322725287717264533292223431200578054481324349352723970438164217641738662656727458792361677521561215755830959692673847207667095706168798202825270309446237452833339850590645991581849250260282869979798927751782549115252283490112571119612591621251701059466240481587907142207391917658207775430628178573046184975109689892647493706223700196763847820840823093375037459610027514530004047410882696082329499101685477952106967813944043367085507938048524729200747991125897061507607187138241190693622164514390614314102787111538584939315005003408629724986538978890312926332045907879448096566447381835838637219846941941022784203974464471574126756978212640132104573695669354699209314117588712347592712778095655330688552874691031453630300728882015401630320553119692007310900967177582900555055565013413096959256892851947641213118336622560977936851791966157460837083754187439938549879957461073483229214640852039288824784005959067385618846330630395342099050178684725604537209722394967195830172066094325202870875047395253259705277454961597332896906688403603238396538386370952501592475401775628987104440759741684016772458293969681517382802586964137477963341022258481828227418347653525306338591766944551977137642782728631389617020490510632706983103906490587961151307212939436575822614582778431515697881551761720039166156825705815214735341249976662481166515583642159977228621899007632065913947173751564908058953884673965558919485584659438453846607829584759045308874710726507727348112591130851163051372413924807376549942647149891118857727713598126629231003634996151090308048000394715944108854359253003604411234576594611099173030963770360732523546393140669213482190131385227522255274149350024377467126991290942674583591214796946315341359029013899495410134223984764661309364346619359965959253840358178582171418364604833702371113375843342724553182347713361237285225855056641082332706174203968171512938189519961540728021368002328715664414886520589970853382087814123669572100180553143636572394654327529594598830567071984907087019656670818956873812991263549196597194175299352357816503497331154959567444171035649659620201535257223477975544783854794292973359695803034344207096067097616566174242375744062103974536125320187336617271179994848637068653185040846269083740063382709398353817910361226152386345449025820469774574021168472114801612962054622873903296793274662797235630169339571005322880772611459252555961553061202204991313849517458723552149631163354647977455361020679590608653460684572488815048490840864211074432711163206674013019862764181847045401981027286645443388273894947759055323008626877228326364866010380918878434394922822123009411344059216258759517966945083136928263857705030868864902448872712823316166307911319443417346993216142622108464207037930372570770314733820989340778376445475974531414052413256044154878301807354556071727388021028718894111105330905888287397212163153146587962097490018596609903117818417280490602411119425145970108855831733043549142036136685073223588455860958837118892414802020516772939939063224204146072290424214485469313512261005484558309093392014322119120439538960102580347676669910118889813280799162809695398578283730107210784084618745652200590361932362422906941540900836979487412067056752059445917131513298724195913840749770591694528978471575525579603140615784000532077309275469190128026790577617708216442763567101663001398007854406140994181413170224662828788126487395175772045670546517597914724344819997874227915016965854345543971923607611606741743227537628069637163449765284014523827756274390772346592705437193136872215714299494218024695649723030125729689184215660354760188844519056762320935551392418516809510481679941452112255333697418520985722830709167447937840101606192402302089594145350976514601473822185913314483404304534644575022951560593786984370042441151548876480551853808484406132623289843173971727864148214225459391538783761278039130920163813020216616498162697320113790400632248304532311700594069483614921382207904465711658812527063990444612853555624733290754445960199369868365674930997074345419890712712793222416319223358034157983387168927258483411666796319209873090497983315633060153216113974199041055002305743511248336480868392169210695530034879060969575486075082679049299401876316118619224390444515138384692098130117646065367312588949048498190162333353687575615562992712653256970362213659055322191721382707505593917192367117325387582683775537059830969181023391071828992894284532381987167687054474834405912244034596086699936408293344213054586014231310846367890064661788544850113053966740358088583547613572130745965232778306763588104973526478679350292379479480201882474474228694945382601263297350197144440675077846798343609109595703600808435727285141045567984557584073208161189504696964012099178891344541521908764514714946917754638795245994882490153462096315389570064093078278988880545566990376323940726253942675106828873966809216880632023104167795375631452540787203260980173645524446335049652127666622944966785452637221600699495304261454207064604823859769420039912433175625727806473680232029330602724938498454489722292357350005368631558195372259673616269693606166530987912309006673424957736553839486499242429657478917455742825494255662416173159346407301182195781728310919251705950110138862994600493633376589753695578077383468170325164666164200107695553825346984584646122464315581084353877133372880423343324552565667869080627447378402124505776487805377684388655490403883090359327441380492797365562802535113971342171986356534426949828133544423456536496918166363978344208067089969665262764051942857144730901868265309367955753875320974959988988624348368748448593436904678570403796271362564306093561412188606340541798288706545800107581831052902044486238098842723714317464992752413202634365784154338796270822295288655942984074581079987521720933102886640382864915024972173567016972090830197234389187426548481475861095049059173946303642745990647692788493027568622953703445221996198741631487787024961935253695940631646175574471279262648752410546871473923555143074509808099863355892872597719035733398657401283883863896417144197036822482423197584400284453027833576197657777098216660815319003460599290969866361439232739454559001480819172066096336945422990083592735983883415281329178624637760655106467555966863388903012632252468563192354637921459453637015410261451445535139144563824327469749538007874099729620399161410297063798314467767014960389580543325581793596086158188993786548462746477538215951540620869977800606967462232120171790007775995016590323418018612392734540738605846561984569285773507946893753562885832186005353527999394516275713048022612641793311076564148436902439612147547793030156101381818963045274158473130532551619940297696513966203966095064536210174397853728079133821339323863512178173226788103559765744385054460322744471495609470239691359169579985282274742298410027015045219935166075243458775914504264499337828953134773039619460853192696068561809332122719430173301853626194110824391684918261714166190864097756569943880033148208887932378950025841596214751865613407915135810130039134601765423225900335170818293978360161310512236477248684272271818241851530629984377937469908823706927446945026348913505974301529495346936278164235104885176269534206531119824533079573144922095323313310067280681684556676469159360068784849001831678913579324729957617078056151874343507911479217897490681611577781635190789476099508005487335033149538572898600199377671424427348630849589056846338643688269923941663245464950677106707693968078011953745221215352661559958169567269968295634085882007380214779920661529894424424776466509620713077035334333723537653424343290403532449060906099127829109279905610668712459376934714453826912105349405827532222461099382574014662114048855739041841284510594080340051368302410080986205893622638861832344103592972310050191863044965664669962628670955764514283425296068905342127774218253705954590302871986723930912873506916863355438492297972735436603244464028302783669839484014047290213977645312453137769681711696477864969191711980398536016627174956367719973338919561017440020572448214506702990186060548500233910840518853377097136317130257868068994095341915089889853190244898576649540976322573045550766220164125554605385865112987526513938436129398987571486637505632480169627512779834889005021042596778233034197447947273773069391429587017600297492934155926413375019268566632774046493358390028221997338060415262499379232065915594400652487051822441049424417323854720700850278127712981112546815203590671323704183346646998552156601592511169317390833790740083582813678696209216958459696775086405698783474553678130807158761512292024617965458227183353257654082724901787078756109616681261523637861934005787923234454154436544336942134702564406930540675968719707841759861204243844395202384802945337740752130854804505225464338081292035135907085545426371867533448150751854079356624458674390617911766131098182229387851788091824378051047231638608823870191748988520436608450136353203236290159084057388034155179497758686348351962838825982972983300575098627246391893484324569943514690871624574030865514770430344888310754561908642937112217379748701461961890875505244126977640097951214043562119374927382032793165297607744757044324793726968797749004888755655683027107341289142533399831231790358934332357608672259544778841995051616173195879051938112397365180898011736271697445251173415189195921660552397843901371942282726239011432030033239981680712331791304947097978410871831300697564224072214583954787104812650361477926697583402018754911698739439087194153778843445653993335438357516869232386930816578469838234740490586266349337215580155575965094049296991104204958382825670628195619568370416979326993804844153519670641298932961893125494646823930949934003787914951012076030761614431486824056576558034266516129125211283128736718334938125905853902163825824994506619719062381354594668921871008785142638995535591654810396779613808079889740087344362532924034129564144739220706232632675640204534324955461792489728064158187677046755767504045550342598734024233918332759790971636531022128770039697995501408254889250861708202553382031198186184421872484611359308094616367210960570547810040569077766171333353849009489158672704136534207121342211402748483019839209345004551291451430310261943932154927853226869697637766817013024550234575626756978513958595906763201118650810308828217347457423937019176781992427616501693057420650529312236110121453535614302711642854139990092312390813880407230733591893085256696688939919456978558922410577126795386273244594254258281856075677630408534056229758566239171945336157901465846806642715326871535065080397469924383478026504334829183183320624575532180904412179101950811764338000552074577849611949545931153868432790432011883611896043238322919536016222487183669516981125083669980994188010014104986673510171831617882751446294971918880071065961062570140984321369458755942372141032099698313213606891701429162432058058566026836624497320900391172201559822794185386804320193981881265477859827929992553781216440190890094261249908903962630364228632676365970090070934515920466717111621315555598766354800976227171139658327315732091952961275671406346611134444688963653153438418011987274344563155753514083787930851255144568986511112836693928175147082601264597649809241068576138457338424758861842066054473985035669104743323508631378978238167527101818947409033947254007776365614942208266363677415818452599585740306592578498254520031900853105709216871222504294653780168436328289872138476065678533481315328818906957680800194785793053347815844692579772187339890054516338365816980324844199786338425707334894236400957377790924983532816771163921168935218086989502859063966871292201797522449335359574115586309695503580500067401139939771486930329390192913269685107819487240738040341125026588618014070432361406356785489439804005031422668480205670952671032794007683791683222703740700626745908183863058575520098009797343488545079808924817118800396946868347862585386545433601591942932748964523524241114609283916644556249357791945776735763881925102663426097012132116885252144334701840862113062883191795074091104844558646350641109136225090306467553674640174910323016941788852553496099267776459181678364177086738928219109859521597517280761579108954927680637558244442170282447677992668152696402188152197579512257728745581611788151246331771880108448376696361854281897480080262714428590007273275019874556965010789268341784077854138821283445404846454972203778248269203186980732745439901418958186183632556227760732031002575593586495921806445627711281975986744267931182880152137767328889717829691733833211389159916762899534415786702687799599843128252687235263034098177271498998627115528138823504953699066127839073812083785703344067112237876898564734635543774501616294641170194372937566298560477490386180730904151577498780740992741550509577901432864098907250761713917802531879963071535040125036884974232416633565897123770445028567917733742888128324402687042386426976288582858290233079459570364732980939962974922146801293142002459456919287969591404792420341103426596146466933901432888693228996361035857202782115375875166745335594095079134953556044375426209550041070040528759829225211604005335310226997753750173447177664680751841077810644860506803278208974088010896974196610039350037427547556640454153972923276533420852016337432047455074570475237689956605823687092165027559241472964217574376275586899571193031856945279732353031828969967091910235163249904396751808528287019567542344913404622696572782633345680708256266991955662009039125891007394497187244968477042813220338776879422299855048212010822400829089518320966469478264094181940992436341061126864116963721807068044110855302481102123748693395299157115880803953656341493758300378067773415403887301106464399688357386042654985369423721791675596562258051377837805171108378892922556522745909232424078940222717491597003492035113189506391284817130053503370607031601276619282618372635946051918402756561256634057533568196505327489649053843603473338556331343384480913615069321188093139709796259239361720134556134131199928840513264706808713820600516175957248666178602398421772275096236508250299977023892645810417297253122852377316954054540126050901611268761001577908225851903949657347366652567058971981965056128253380890548005909989997735666943573926595678975618886457916720138591294148865462785106439442180273841791347599080197375141680033646759560947592712438381892030241279547050794294013263894504937307745758421556783116772496834316150880087890570290326580979669225014733937235384600179228243111393342866243467253504809033119158815102575360853172763852458361043457226038119370367787947774296100365032675349745952365000313282654008438188389855589654930918485863995675153016025838319445971379983853869073710644187370109062219189585918158222857755078259379466610809239191486806398168720193747023545340036065543700961364305415773225093184919631135116349677586335214231135281052492463001437998969041819342046443314446325831701330703346315151256075937591474630250236070133144427584898466764215684159944801400391337068064094918714359118876668229453158644533310321776427092199529949553299989009811742213631243707276117375585045708118342704247655215433671937771029973757315771683795771445936994057872939715561729442179303019585578811070694499759769942351903549151152316528018449582169667109395948990285237682739904266991829363556986497295376316552089265480309651772567694643795343933753996670396629665911378216699989446460241459040016061623882825259479641215269756702405862002453893895006819962871776847379608974079369484473272988881110279197004253018682931161731597456331184681649421395266176710610794913520290598056861220399819117441430208396455532753122019788321921844392866658372356472899474829906169582684890415677741386564420330740497727595158400766173424503426468745149576719707374349590363743348746520000214428617229014084453684175701605649593068664652895923032056968325728104045537363731754220376173064728976050165428653087776574748299841592232329915899157518767679322973466016774607527809180409418932558965184104275719813956778538748099128761884197318717331206668039473903805823251182610577800334035642734923561227634487157332604228950247541866724319404022114479621785840850470621687862351806560891694757738994215047267914017609306835147259317780427885116059254056444158256336003066741270326729589355900654545393567394730741309488614308394541512811533554129154396117690645293289873762025828966648584902394127510671188386128390075578699204714061384834965224267290915008857228667974474698127014341504642927084623738253577460271551281096404990777821724066214338442485538339569756204550191018022680351896933679018527286743473144611782900534635513908605936446771556867461024229419056548531128098910904174580606555469698271468123247557395893057827793865727947052207904263239892535597698848146139988803919606409406047498766904764481568201757187234993237990388997631883327711066022491648792543982405297739181260685678793492418393785710788344649222173827982254742814480112334976938599133019918802226205986135986847023853627815793091743444175379991917481135780005753112362236449443256238379022053623385289229737539914560158116280244304543169951392558159940687258393463858610169059660665957464031385163657289562565534372812065511957474692600950675861348937612022162133116644821242313679960299474394153154034534951025375773902324699600434565798695681420005390231890296765465891797429087701571061682976586496020888457605207279593046297163349867733177751037835696233317270062937123721347805416778547426981328562356598928040240517741111933990583595833277658203318995975680789385242749356867770670078616999845405184276732944007302474922375275750273096442632626244599969559203851756217548283033973471263587328613568285421526493408971837669150019359220101070738974369070445180555192934470249467787800175510709754362364004525607142142892571950324416772475642615569420576411846024778035612957956185187407873406844937909333990218190356675403113240760048421309765254560695704288645700003458801429490756870690678555641269347544827437185442483804590015555308295989408119144653956968237495663471874870246747858941085412816732937585484294175051361733728114774572619796791124492733103280008301824540451142181604024067328292822939505755287116862905226057206513113221213622449418965906753424452400112805862825510972270796487561452391496715413673234436100722859243374074839364738716540414840076457124976479334314026352798652107062274031920455342970238517584192185486368478495766689406913193603661409384644284782664831200907759229469905684959067221743931176315357962240944839540494717497378434690068899297012383617027227348133244338165300105442635752037641388190224438672821328190372356860166645899527609744186707159234389607130282030335195698881209483650965713500780514962966364062928027495212228381917784986218466073885591590561730612779141008164146559612271077754729748457331017543955778466802635239817883820578260699707305621628524911334052662555056001742538032460187290526230184712511454002484667885096354844649322337547041163471053301346387342455746931908123029301889217253945991937492578830728839514313958751737635339406063307440777988943532137236777629276543920789208442522508436029739637572389595965776139477655881641569565002846258833689945932923845085590055936148920482615937269571474189812340493907575407656943011898762573653013497571361329629508805801411329649977960177555007643988639803210645201441417283161277365799141857656836166110935417160499769203224023526612912219964666919058231281850430203538090418906569937698460560614591563888340246303803137496106307295267105006228020152278038548314181278101876911402804578548717649574318665369026166867623778412559210315627851136379442969517776747374066877450928408597196808427315064090988448651273463231326034280715863984165182794514988968755619839519676110035524831903984439307437536203500596949813507475056526594219664341523697418830456773414618515653548314229252148276070464781184162059948171965908686448795701708913363783445705110481432459643708917773374221801818550507131247787406731982528400902834784772955748899827905464645349504230153525198087567809574455687029810842887461424810214071688136848075992961945581687239342977882897993154482684809332697686035800416531819580820911304642306173826555788035130552860652975944924285893085070637990061347059202431507443485885331685416740268144638736016818391865954758302933375885893043409820215008326695907055827714791864246157687527484540197434504967987947862693202222620623651268930002885486435665713645810533435059964527666175482397077808110021572572828740655436657494849945637195500362006109556804874484635439650993199534137082213719109418284732615477682274585873909616788028745160561737919821419848117252953759869076811806626829607325633753289175137702125059735065012817705042817609154852195627661920032648664957466948242074664102505763997979724009323383264889564282460580222531306512380692186305532362616331095033159351717449115344279461585452160540459483559615460635821345801588092811560602301385018521249722040284634371492231952796925914319647710856679273068263372398127064392989714495347894152146168727174122667723717583909785832995151922608602449529509139532240830326792479385975418750150406172171135751204000238735584575111315594049094991887236739828644295276976864037230297589512591094401114160447747587227202518329524505615234749449952649842190441456403612309945057464346364509078095192243749396199648164165956351377547703324639575350952718450510428838959443723514117110564073936675778315576123327513384742273671961544353571416431611054861846734325699689512881196795240529881558108712311169907318423106466046839682849782467843201222001323878328015501027282905028623119749398179062061397440259408234500897426490648858029767794052154763484901614144553887357035783441887290611345281177647151521879754127805760957155290688008596819316041891484674973629373189778394979321157041906652631989936976858316990702393011706440713621852940777161781817344860206862765777265789902555795159500650480900214747848361331170314663857919005203467876665292176068300835480291437437837385267161114963270963440490855594717592061502876329983452439016814053190865744214811851887255941386912819476355089633819094466038932696569088608751780978229344081359172719743519008011541289278534170476312206321451063660599956508702144737915413725973064181021471672108011682052512580228874667013007075276072620004397571022258612865245230500257771036075118723015859786930446879462017771580395729636514764263417822846543649060605640688424527228212322129236756668198233629761375022736343504660132496486223612235456515102481282533518053707100076632856716974415485884443470712392096164949327170037096061229323890656642821165788949225500745314269180602907576336204037902058746563010462962404957032576196618190469548578615755042305939856769752725846397983979204008285730245310143261496068063636081980535226183640753545450279386129421923311180292621377070224394373227054538285439871463874299247485764672608665853048065544887036346054570967646965240206961945880995047023457382511194243009573611392807737782811013641224355436328922778109535920886839332804143652791740183763691827744419182057598006742304955241654623047442012302043794084424941851418381342611925313553668850596508912908487655713035790040305436336368022473084742798855680820977980730199056733494489554035525581484210576818650165053760827419898979494416752684667612412623900504543943019275052546782081140336388941912145644914003335459990502254421192058522689658551506570652062289159503285687452712131076703730795153485716920482647679001606463226939864314015314478852865436882293220239598415691813723336436057636614186883657536342994798924185699323430629255438939613614884653112299250234316668410222650402042493687689223033156500991664603560788329673758847057523954482872743013885591312166812800912969190568400342698371760470836489781469347816146974327601148712568751981845019268308515844901136428917450099383285684121333761850585234932093741024194798269105090878845786972492897932712017600289318888660176794194972091850940583660798399262059244948183191165979765241863478816269344449042162808337249812898099458211743799955772729158152525042479423759339511942812373368303209350251118146489020513794009780723010164256354920060366429065223679099878198471733712873624212867821060005813690918523270257506830291351075440792235468659630326549180874067412409166849754671371964270147723540757009135136678046678466184695960778209819416025159456901896628571349283890302971601205692936840849751875018758072294029453077931856175726982429898389740849325012426223474799195777065833348560861725425011155461567344504236356948334732950192605664370178833624132073215396678714988329858230854909253317691519016503419936840473197247572940331352508305953843652921231519676793111223561274391394615729810978724941681273550830289923674271608206140812160784311106264438363963874279769276468339208076420148822654959845696914816402743744927712533618943077412631138689022871909512830153835265268644929589374768847971882603497256788493291194881229335275964660267264579480547583847897576342589790705476237420129409361379959280784462387100905046260013094234405204967070159965470531175347451466705662632078748446382404638483603270690142338960560008227521819911012220918568431569660143347749422967019338659010859855119896031461722656710458067319141019605579316811249363451290035979954788501239623488746779486282559222702177355382834859733339617276335399507940268625224583312174362335274670981242925996844407690679032287613980528756589667553755312943867567388333891842099631624731714323970594173943651504471553875790124813607254775635437301987325260393617526474172806254090705712132304382894293753466835606958533327443830222909051762450192608761427036158180662456908495981160572296093841779618473713378404542233233606917332259998655697997293093710331008400732064476297227449421722937167951676540103122882197290965340772125319506896801404237201423569980773923409255514452371824101404642801556849767432026491943200011017236744070385393675547944154183145275602220385010484797276779038782591027181002607472602832552359991878563430225031680819879680954195191089245461162499471648601160905386994792545056365255239070431673489505396255332097216486904325394621865248042808238672064358944906722732033241435971444044948047982211343000906820285996135983156488575241220514245869462684173730230231678171395524524457288919818715999537971412627992528133721457436175137749152449473089110294230587677493694032901816221119933666901667913180476222786422968778083559086484608590482631446401438090681283653929075263603687586403462910970135948386590468944057827776028127558474925381440405678595835191277916279190448074457528430432771114556477792608171041012528261126019992580326734336507270937628432404862402634176977397347057569522395466769217068060678731319820258184819283898916507366846173206869463896182661795653569478576663665709102213885174015759840205349221341235881466682190660021517798558766954964551556338070715129389823089381584516429520419580776126196844452848587254739664973619439541571382958782838367016651466005665509065445200115352285328568456304295263711077750566513321512458908672362959289343457214944395042666075844108044666079906051440244611059412426469257228613483709728973852288967217231821992007935961660299688949639760716310673878785203965909336378604340083493750443718090124959883254788687902140463162417925071550548380059485376463625356035365580889995528004098145755997997582295414223457482122912727662591126000795242163903526919557477863900872323371395839501096295325864961651992439832862036157873244611062462179302777513761046292407142232255058957784072281866894280862547907090082097538409519374092046943708336149152335793909422193420040307902546918577649588374511883608875351199991536144847812563065054040732992130749617506380419139558894918540300307359710114919445135144050872010632582439330528051266462501053528391569374725554020668284169924271103645716226122269077062922735110615090315693544549352517713944875793404752017855839441048534650666369338742218667558596685400010853330840726354283792237735582420803071227252880980333973361066255275079621464165737545339861467952788216622036890027099890724292618262046220837575787262684619887932729133106674288968897345989003705663707177439215530053104502392574834407310854809960830008819450389856166788865962825119252532608806411162041714344027582557813419076380235820480358962352752283173616706546706265794794418300464814489654083822801941750554277924272741362565097339176066812338083364010446445672330453770114966254392398787050665862805718122018482810538578830432957480783679449134042373852988129326610161694490714229254457793666179283238098757747871444905982191714440274139620302792585711180336087560983495383298878475207563776158662109271868299245272169683090402446343786347301098166532792550134635041922925967228981901970303733203614648316914116987577981221964914112158124185809961295561227035866595790432091643462699766872827535229789858805421696527924241817896122299630185183719242150560797432838167961482709193679680282837228787400863186712169471284081513341399248786556146184602769448187509155422743997208983046484348878484294595453925037432294775644069113441822998293941791106680871545852835522977828020574710118870464710312756553283287236675056706542831222884730521337191060204363850236623497469430196972547010936798965442780217412804923017764068160897475351399410711117784548421552415792067255056082681386537619539833352971961546360247523395872016708538817871222171325047606102064279226590412949020711827676325242539788313635381378040902259285835136119260448835665531812223921124511067369386772623610531745457548819801471497723071386670927652623199855591000079759607800692798835352090375193220834371094211656117138857740273155813712720793537326308559303833778904549609969233227664312132204713108737199551202293774626344266581183975913775419869291267174521463232875136395209262532917634538363194970466847672404332982168026761898200520649886694344348653890395343772710634301884036911687341590379767443312375254982070495177025377347085890857142137485609606910475209690093357462205814142585256325651551303127480566642875615158750952623803421351156525202042198022375776806379638077394909998057792877691253069628845791785203368109146081857865883112622765745314247720787071661345328969646218510313965452244640177564815879667237166192807729908863621539915362359572363674190291676245634731216911432683200949422250698335491102662958214159230990565154008091629566999758128886076870745467712469032776523817997803396162354234761420277103995476966464050761333714567694989724115140233478798306219385098607808568212678167060896956084477533630695569128557785989421749221243503954180187586468564589258235082710564585714801518769806042459228104339018646454940367004971562555216010730693536430606731608599719371142622381151778199416280649379736211658922596078771675082652365919936486165752547270162220266459879032855562339884642214578364554358617893422385705515315602034291258177709027061508038702659863371349593920344989617914767893823675129758576571161516029467825251136883055555125059193249058387833889043187515678433799430251579271568808685954977826322271651110846076019301950118687189922705885405530337239352628613905601557070322915101405941538935649033219298120365295378021263780574401519353957932109103269346060765376074621916962145037937324570523895993037469518425078999545590424503722860001683278199114119725331300669279497937608851354409512681764202394377113892963791979840211985765458973968889904617669111366042712947588658493840684097898716465106530396225030236674776446962482748208935902577995329137452480949248631494314478479180575309725074997991451911849241014114668434128821560008576426369322727709221270822686990702383018732944796116281548467813632784564377662416545363907272396168394555550555328755968223025636986288334843438986741616598474664084878489498704246480155787327540972161736774007667560714614621013247171331699049568022684863453919765275577821600055113762923532507634039366207364220367448723820378536177948848749924658994549378643828628143302356168321777780069142187033724271882838110595450691418434007021240486903499724439955131919427480345878837421206510274106591992712784656316638557179556928648655779035173299169664008432908520347291054996164022202929516642352437310201067187658701334718660845021170237199760743164804763340374261132619551480256685671842593195846266108065318353254238309544688628861321605384376677333943709370831896613329449585806478420113805573409069023126376596431043472271419723224282355475330952277820803256825880050359033116509951936276821239571027202584446475345222578410015277317601084672866136031047790233255067134253190815989343347235819563975492483723646239588672398780901340278800882811583546361602018330243753201399982208975796232286353864133207459706268373553162233450176338940065819756832517767970775937683405601850945613355042923454132262884152911878094943709989046739548100405828766417516182438298141913485133096036547404701314363540659426286975957442960837976927310827521658212108916437477221704533337515443515080466757280144114353253685218328571132835328682953184669622395875395493408819430047991698223755913617650625434131753043145707282086386274532499900148922440604896276203733482735258700872996230188158657538484279877348953149323759828188886345815359261495617370135534200239473538813099001974598518551567810198201071535727445469737752524785514881603893697861020844351663972639242206807687334251871293617580695334028946626369351099658293545860165195002780398993715995483073680718591126107950659035642085183032643619233959387097997357315649863263913889378480047940812353713002347483036713251851274260236171457509998115047672950025354357456730321074323171099088345688699430111915702455111830069204667838086481930407728664212386235198580541096884120263706734114046545618997921638362966771259096187862887935432172687859640371459555105371903131207670740138464707110758673012142831301942841455934925106699433428316259222321187310009117316204599070711427223952777421344320335060104160519578321489262981142267127253720679710473274400142920335275412537454729050585073995246865610613205536386078800188213084386650574243938004402820894477526519216576329923039942040443075241600981100606156336909435883153736730445338389362306546874841525071793632661820442140882953347537548062174623158302598084449356668016005461112120322921145588701821134160715979708184743757575655360313859388749104052657515651471613745236106713551751803882052862926983619017393426883812895421875157232654902913964642262452030265850803764645913836507724570166152302954830024951764169625544212199127700581001488999657443511527373027145282433087834895715173745970325419986187766037422272175550668289878817555367637549762307814170667066297593568605363878108069022204642495970081924487599528311853895699044749990929509228317065978368021111101878640253634627838178125749431837285558305879617402163638809740569504054711554686304874141389827820894467799587578362847039617327760008162823770344774804442468678580933135956916924367666843705254376425976933852181248114455551360302208211447582888451491213653366858957350344867153342792413181399837316549661380987907689301324633113834063013017528469109458635809098011826180031030897666964897781039477106834236293382518719544717652268859152890801348822811325035585551551457769659440461671180150388918051094736761951981617264831896153398137917543739586003781892386466067634983232857379320843661720467918881299533540288891501639253198872155093896470300575860834077643128427402940796409068720480338342018791933141815051063103002892747518051943655846307397727725814662776077524071933504933129364828181304590602821883459173546412186091111725888782063592211413145191557276907094105403669868981312659989547944173117913324001842029465312531809937832307509398232749008478676426094789524687368785679598908584125519755195077119899749251681325032374359798801118482877442389652649891135948439243243551003174720410507732349349607182244594970143784624641938810279157694644699167745325246995104787021207996935129300593550903547354095465065836795601973693873590231103753617932657586225089213130137671151509650085645490909429037403611032969243393399524223783952582878528222835250638992642459173093601719509860429049953015381675641098419720381794037194062486031402703252440727166167074742708434651312535077706224810899288468642630059188036158171462910569674331951239799154823563286472914912706678095716434123900233647438831917861320760488288309623457396340656916744076074334690893312607620218952132045637541516484571516363785151694229371299067150121343645149623685728344556837877086793762720916818987970228889894365360861138347677449372833547007011615300043865032175602477917591510360754068701903909532200915539313466760034026471228803166272707219115868999143051171991487401819299524661182348179415170808444024996192186605158307540246724245586216930001273114306548520289985540134702723120087072623284355389314931256935845087732510172265707794404002245481969795013261027396417779433363046709555587382598780573553231746207111473242524564352612523138052044566999577442164520468583465796682653205585700554022557339554428833201915446539908840663067297281624138368547488368036709192848510866915885585141730522433927375014038742656156964762216446770221973529268704077930589529209935075520426851514623723622403653096505705094004317263873428887336806419859239654733646057801033862458280705195135355875578857500391246899458020247470694815750846053125238646641792431619480862437179351192021961911111637782256396419362125277560824693195818291096573101077437104691427583128160478013200560518382083333644401649890655485503820427885451741804616366789755052570452021099581444963080879546067162453997736176165945439603378911857314598212940207442252106665291905860911419723247372653669743965385084617375273164544228446490258773921967009625955467930188557744338625094962430501878559769578093041563518427131694923484691298762790892083797166929990078155552991696680162195400701154547333709084446386799072041933858913730012643164776920711137347432797915076600095139008128863019543297749495171761143795690394821812115655783718817027658771006960669900952937465899808209850618244072374554245599318531328332666653452897784526359698723957443236100220557803993305049533460390779359606688027016725080707574282463616382422087010836567501506918773631654667592009725713827162996527603391557081258208456145661624515729509806027820990348859134726606886414397593413586319603326550573590888809690205448706407856387042641170815388859192820217120331802609735465992163826061295318673338092645659361906846944283318740467231275855989486974120936595682400834165405230618829071308959932161398351967414200463942143564745127380591756784121031738476108994006276569650071551165078105723903172482935401885411855135996814042173220035939691661975237315447986510819648507624826248856343420471285489553705737880169269482537684003937227689774060676461150717470154036440179733703059914909477125948234795043481725934329082481373411113901803826064996212431461066725907193973240468829359485223956425155507621347664291117628590366171384033797041617800332149925054592878493431596698808495724924232332800011663098261003344188813593470316983126262260942837203660287180942438670183448561276500696268303181260485190269050568728703262857000678532561299244137919558263459904500043799918114364192048060589332639243856519246596606332446694738562732960357517477399643778605992948593380078875775726508356092151001374816484909741407039085270345777980447681695588437291172136992590891620107675917943059006718142596159367100762399826466013577289715980771259729034126039409286235411355346902893309211538755495799815668129046071406139317508142196873520013574248812117709199124007300541875058015752745130232972568117208001707047175043606213506430806014094257697612599356554028996802233856347216148722865827201584608577195975787293011877169713021202736052854351253944286280944279711501445336241635815662807566044299163994188920192764510116500100032190158315003689957826882003366269200686983710829631318802293523503286045579460535720432478797905481426924240110231594597225360057129324271770452147431778823423164052460330176875425999489721227057256135436036075147425808966397928417688755979611820529795059937854593009327368980777080462492876643350532513914675674369107065701703218797043644355532495500009141865816570502977230743565540714554016010803371505598330172584650900123433226661869600349368103131174787042491657037031249751459393185350656865425864245273905034880420531528643146079610164732394783069107220888803944997546637181578968818569418965439242443796392472881324321148552353324270025124185253964426902886305887289143829468066457496924861884370829667315594702895591404024590952798432525709001695440803175896125555415324818026348092853261507458860248370905557099523261072780031802807683751228720033220371801280480180249900427297458734111994801447772952903799927150443252456058675258837268239029864715852626428354761779716795191736310533774166486753476858850782035593199999705156941918817770848890556502203779207120729416031690970584399063496568403188314796435923052279683101975164754416441089628872143463454426286803814930440064692828652309177936026703186784243020015927116759518566292833176234798017578832950253488138735985719551523273008308825730716355449145976558928134336592049950788699704552418159065407281286026403320308565248930076128081969915454696150862237214743880548169081953459567737958609467197540000960277666184974653897967914361899386622847606000303349142968607324570323905039921205481738412447768915743512562737384859209548712876419119831382003213885084245366119150780080878072625825530620871080360959427840030576554350439815371631411973533074826285484893773881970726902640252150294586587036535819779301843332510541434925647204307832430572083722202841131752070780623763336688388349993452236642886732394698697196176003486836763248310855655079883659352445213767272091702376374106616231706899231842177110445927583817070981472069321819401690286066237423103997969718568871960452671766990143102676051052330538187326371625091211605785269179743203861041806841612552295489842804266842373966851124252350259822520584495047808884964284528284151054793056879811789724592879244910530641859084951109500783021126351269215388707359926471765476900112021010432234966146305395649973852940186521866419683359925224184068602464366555098718448787707998289123744018626636504333192314916962847885015611916734027492124354048957831115941339748043225457840211630330575133607156275425380125261367587215400959730782491183345542737923979636189449719503080500771386830865017222820936662110730408662657678621152558080540421443668655833125732515632586059858857224796332766358507929827842299988909395560635390769213940979481766684204746734549199079621137347361301206899591481892732630547739673930343331908084660248786346493136496732397463621543358294656955230190359795456410001781946252672383207665039158571635059108300436247531704871884823838338518234531522141450595601836881786828497407871931245812107640806591789109446657379448842637844735517498183223711275319463209969309967535866138157030478835529096941927919567244995019444821581776829340462170577987766351753064052732529129740016892068283558057432453946569010969097798023543010228827236001643388202125523277358053483206108522921672985531550391645226130756617909627192690434696658156642473928112043538459131684911143184290418211007171771270500397623438163048443934756269777022732299500655755295622039190184706827689287865751442488294439597385128727825624509617418285932906481638641332816224735330822133774816755009153700965980105899048300580718853119383251905510749168918531357449461592810191090861674476310107202681578367450179911293439184068542365312241280219887211767980167097964310167794666916551490128171924474710999708228889821141519231693225364239316521797459874991749155975339312609959145181065109725837191797585164913292628240107119397920280857130844745153668082090585326709580853391866408222648926034032146912895395063631551009355463017740010748398988249420267840272100423996306872555724466310302355449769058638822988794018355579128479977432840839789593395859351655364022050284330714920869848155179816778665450455117530891603814780242885104785410518182438567408500447400807523405836334494224304139458923917258852373451965880884609993757471235181909412905973703678843933479080024320611811279207703797022508554681370476663116107243138594634215362072289665940864415212496868725075663978261073479828549295114924005572324679138901019050851982157734924670918474467978457858471912576716710445421583038769307283729248565611039365475404264879284219394676575436305408103456717035154231730321091941025945022816379972734802232549434473468657713635922466274926468525550719082125169724106466800576560270865644889185707036477954973678558024401639195757922368483346949936793494599238511593818947055531777352703119454584968546728217946119053982110382869016444550041615023367888755963094268085275723666503446176530505904300618323607518479972559314927129405152989248426577797942746637778501958142202032314745892346447669274739123043156160753965613503667725363739581036108348304524083336241467218744802481833907136566803083584194166636207018018717922132857129616832093809184464246018606554520015236018474965019176369906227488904987333527758415314950780158551504339861311206592102330144351973875808560353209717647967338539161264627673925909861809029222706463402127322248935415875743728774335551401308558899974835159778871207344103840985424379138958726962829509205016429384185687261054095912737572542625632970869467632335951221369079514092113716637675819873670587543407992358350630545658236537108636680265330319916268057866731638189755938957619804304801638771876786960623543380242881292047561106619377614176254311910575899365312306495769306760791134665855716092901630699082821461738374053440480236286034677513332519982744304630330255938130601467269823708805229061023448092319824625566764659873410105654302416127804316851829309211886312654114135070117004204582717271899209568634734558855448688305023000647804266507173488785168771001608052026213203077470303195179816840147597077084076362787357299334037949970872952765447139131942185627550567494166769726396588206473578972701353699471461862515322545005989599064839790070343816197785136051636871886802372681401700007299463682526852302518942891907719006917332223950175592725701273652666898055228176284591271598087639704494344780792554747469638543776280391114577616138825844143101142353631858600549672476454081558121888831487460409853771399022721674495247099057321528383965714262570111530235948997820213443404681227458403836985477907319065048793270597285149028982463687707387870023908049337870242280579761936849325264971223482773441246122525850356003146534766488835132029834248005226729440871698356508103275755145948361491957004922124129716500412951191947850042338643654172479338342256296242558572601735754966924948320945258998291843888403635381459746515776319478003492673723961972617548135995666648624146844080983026394252545680999111613379107029428314047733275730225510623078829472938008139185945420241888461696699659218567347425683523539080880476033553954095685758491140057662448449110996422028460974279074035272835355244390232552228178586919329180422132306873527326992030102297856850540129030747158141344291536225836404394485188718815356068604482481253298534738889117384290775764232633952637388904206116716107617047148659298414284254255633909233439732185400108979990022417496133730506388168564136148813088094659421080234043988691248206214428975772452500232418874185994924466207210024429592143233996924113764446041698728509451030289300328068237734841168396000987487363311790834769306548997463638944935843699451194035844832175194306758679470102829770803585888404277908706718391659110068714956556163780902679463245050711902548252616513813111724026733254590959811078670918756388488948107877603381426010388909284439383806698339232017600050770052184959936482344658641889845971725417417349212163024168394762747056103525195910810702031445596968716942770811524331151687186693256589759019913653040183136650858454964058321788315289275647860314339677613680947253946190706749895415150119489058002073070608697808454510495486230084703330618959284207421770963759414302038064293194434498905174418526762534016436706264226681828800894456272944348123866184962878790568240110284095255261941685617492355176641397151446308830229499308711015255360759735347489577956481536671688995149218090711378664039207283563094824884238893529038766707872447369739149008692128686383115293891540755360768056916286225242029903385122470624384976694786005961286064917963721750736313608424139647969715081503118216247277728046437249692886907859757465824379184807575736873282236997575332325007923487906864576421439429343840711643018108082673375951121180286761577951886073054859372664018425022615729357496193804658344556309824728776033330880083516287175840620615812768306202313568400646692163373863309281346059336654810471279200598659973422090849825037870353231975119938840105671752355458736303391722029094175228020778768619379616408005243761468375565029632829566847777889497509921975945918298388999633958639541069324846027419730969264908520565195122919948644228581865315793516277189195954812661789304506029030907786820319327408331276206379545462493236993519376222865025769362812285856393049222439074267067921713354002625815101008268654697462129944836595462642075477041961924182071660203428770799263343930854782291789090439429231373321746425459402276386537972470172821452682034250693694640898259200670635570037875234424267237964347860366412329172989607608882759322695397031679966941553986805747242915677173139271867319964782410002223746237102237673134898627761089925266426811502733813135349620896036590694001373655434527920659622436864202205661694158461862072196148056124520859927959835031962006257380997649228749598695570389296665413898318041127537512750582110261760816460782794982195299484557072736529178226746058438091891049017855817343217546252538240633946892135817964255060077117231009744334793385654709133030985020165457237580769166452116626049732646326167342457184228204184314539259254299112182292067674417901215615367808849728629918907596809174610509664560665475475471178341928065853731926050059643284798669353479695033984720186052724581675910593109948500204614124898271413994261239332286853068653700583397885166060279941892367328528639799947437961304788352355213350999068703754512268252499484877829833222049991648675518334456209839219702240947412320441475219110313274620188077432597103768229614803118222361281358243876785439822748562426497130206349557706544950618204030166504765927926396123577775956180823608209561532264265203234863571952645570213775637588165726701539625217485156626343693745338659248939750381860793841003076913654901586698791005973457969098043069870187016115337721585928196679069118331809247150385347367294075308204353831489049674876697641989515508042657646181579260465716692571992499362624813632155958635380053958776117889553210867959212017267301253495333750125493052851941567515112817645051902016975614212124856697466420203598805125314091262636904167748184418120369513894763194880144325666576325317306559974842187249901371629450513720041191616479162606225120449092719526894366455033819704522850620164171190014406565731096154811222317497635093975416900409103463715815207260713128486227613527348278854376977828072447374688364783821179293226131866343409999461200388931857082084956333580490754300901638758008042378577916776772710424492930608489942080153655275877640853348795494514113413424407365008871040205288624609623171756670339109984089749653382369384773251394130440538418757545470154161817790521020740469398872969317349932608772298107670457059212905914688217235759905941096922967519187418284672682616095037978445759910328932094011616950433627586501016565848486608213405883088738809462117700825367717641760763823556762194296332817126875871704068244397783823647723507017646940133923431339705459231059323704595262806831167047030855866262192455952322652922554157905762512586996051313873967445975048496172763696870680875039634797899939815342267033770749774920135169634497945980631724202446107681329503679646324524064565252052241408865386300186462413885801862520441189412998140170840265766486777284632383693329754144785640452045229678230597578170648082247419492248469039326686308203233872106573327152837580733399898976594600952371822285323361758518903588397295371703630926518652989439322291789097160767980072104826723210700415501917202752135763521783465957311157474960530554084275129214948046974908052715593833869159259938295945901680457440946685663799692563899169554650156475009892819603855441679729089282283013183073272067290414693616106381609584268738966411161245036486531525147975811132622261785817597751991837478521112887651637278603166752889027492373262911871748569670193972838213669780405399999143087079387102149268564495321576787378224349416100358621223921904160085102935264662413733475930145137539985339331117550987480997054281792923181028852293982217854560739146765867368861341784028027982164646224301390666958694310922357125924514098696954365808902089814482525719516192832993253883692964822001071852759456803251982834399267519180551114727485198022567945416809182175803074184733179478194625748796970129049138674855225954148043175831442508195884642850822421485974921082023333030088387324188184837089361513882102591757360182639381141324694723023527685692374496168973227803900968802993283333499148419239493367544606647622648939612729385574673917478134377565379825068678668857615587964290076745080259264207779074354008088469853873588014832761219347381926369662246454854128981389294670963624707580807357568041921724506144794596700451696327905773746309499229382369784634957888799359569930194609027155188372019982162617778144726650415205706409501668613492808667466625091822469758257118421668930852110552306562232819606663984549387182058949716305553127149062743260356210844614749169731672403686526256868327356800331136811054023340228701057679265554366352196705916541638011393622947134838286060439820671914893879942073042126577564994037066329729558137638672139647051382983212946777498807118937774405857418274788464994277469138254779373782487888103412049959211938007329744323390498927997400972641399072217224282102540459407832054672194512306618367479542777809094463980527204995450179906902018583628382852111824686613883971113314127715322615275587172189339497994226170726721812605132750430647974660241882226410959354286742168166865556870665188236126788412398801898206817533853034045478512643829313710501633839650682747926206929098438584475051217641591876537903695710184599242085815991798443222587902021418562765393155252271602473697303008239704224201117862715708695608344376388431180746270952066194130339823663355711854834204604590134802679566094350805353208852922650528755153852033238399695040927035230787453330661590846924647994201834321395920738542884689414584442885302173456863506880555424659822172697748596089220890344710409798724313068851579445072229082735824619918829520272671717844466393387159543756692907958026133610668033789236309413593338276482778195372658716334107820504934101441065127777164501954665377134535028833466398527782705896753724782942080236490045429311478998821073793049274702455473426760828054033706070509780252196255654336034775660329549992565508380543366300743883984337991698755869405333520794916080650204248731518384993827138296055233919297640794676644754327378565216555902708770852526182218545234331265044969422766341704434345439094186784991353023344974450926675672297541130889485779838882438692657045688190811270824763852548382155621446066328906906977967867447948105670192227069588860215795694016120440652953125138696937578987687241951032065460840496667373797993284899466162038345172234756541670571146319016535065373524587128547861484450248819023042894591133538014278281337670590317142111373639346447503981344681615074389927639609292801036128006751424356383070660980401042593997485499191784590788570552340809301386849246916041464866117283732981305944598999033306537153140783457132657512449612667405434760597174184138716333033783923941753880092833017667984882379052383859091877314896475091019808791183953059949686124109118423713719097934151079168325697831644079244196374536401211327112897798653207044495948795830064989257344876784891016048117981102861223855734552963367446410883298516109095584038932753294025621127528401930403626776255221582656313096122789042771728487003341177808566122798315439293719511133845965123164300665918938394823032502114116950308944249899839216846007397831506825192472734574832771931766684271317756789526648565195699290610214918117451122574718304592601851001054081643332393320773871751558348948541744342942251330921987944855581105752781036094479749521029839899965811724243109610351921447463989470863602534613668963962142554075638072553570261131412722800574811182681159391609264693914638349828891967639647911168392643729610100884491413172252045568084368498582961074078461024886149154502218767094495639204835711500065065806134384342844852337261884810636150740797444729840402379602512228226549578682878031336050176025126274931452827125165808554331865574617340600563536790296680345534631493435222284127467331229608364497882085817631835625396497800222756884324679678526941537795676904190837140320564904259306091688321408043290969687280588851998256003013615750728353923373808183193757348367026488827837566729904439256142771424970939128377133555842082090441700074740671474905755363780942202392111473537673263050793369389892147298383059604610776255360339276360290313047682208196134057198823227306396853583053710502201348107811921568426416782585713890147136238871876858702493606737747309436988591352519472287813055653500438776885687166350457903830150982821805132462014478654100256060896138180365556003669254902748260473138995701525397983272142419561717050385767208854642085641330139901914442228937608542623269601547160082774950634258152065723973099146519583080690605740612410023600373865985214018605296785655744999892972073219188902266510128877130939074909897529289230711750261823546217788459303627752955122543879393145608936873816709224658195019948663075938536012413564690214907748134049005681023516627104083678832700438878390146747440516196643583060805451921532810875088196302793963597860571980647391950950649614263053991748034509616848460149825459061756184216743297864778600952435472307740388977579907297368018640077868975984837409333776603813620327488516737720358684741983005832794560468073903454243874024711005698049814959566873269653126568426115543203959296790295483847466448524720435500078636112056447044597670771675425354100591702370295415495468069891616869132672051991108356131538102314925614401117232367803557746170512177687761485541550146952249834054698262272245896111593507883576905115836718259795237779338566461833241061855910040997158009640249654636450747443016659948831029326545770182801650173601063268284754618574375932493590535445623088465399003284882757143127286677029806740622182072430533699601668951045164236822074966457722365025093226729276011991008582057016206868769946847777164455628999833578412140977423499872238692504874659317798102706332790707210943768909283138061228071002169831419786846375342720989155513078511260021292802078485661195784599515726461750303156443511205386844328531546207899394860356032136732848679114756631294830693577261145702747019366588994511685332333539660916011010300668948233693773839835749280590611143824156302944054074389984798458333403541009632239564114656755590417680747272939099430154971649149189229634742447270041804660993678348326636426391966845331264654042584192029857543536422658998796952994334779019278042591190521486968375493872099308443153754773870367517488544630068965631866824599729010154242858544816916755867731423568269948114904034308095984806409047210002851331975913840843443604291233239724250407332301741074837842513585827842318847049604196232592049645622382387503034274120725641986481403320686218354835461597261796982683577868593358416289155062236447056817871828872176262532327696092708093034129370416115430674604973001906396687603069350443951511251818183599712067620383867212165842783360838684721198164446749757732761206280928370709476729912633033768483128025232888626958320704602653337099337410087744511318479627128907811318609942733664216863046121905426927998058876453489444521471701744163701681645341376061099751519943386887506279055439635965906989758029504916576799214420543311243032489000679942650045134722535686139753978960189886045109702325679071669658271811791126156683258114409900855443149998364149077092913706814977740751574800459877925024126328682188163646355837246796462333090975323288937615913462363555013085448765074963262515780963080314457933521581916176040220476551530583881367419795565033685035900230627512532766896997147309437348764554427667916993891242028368784614654369299712649434094724090908181824331047082685441883090580178432744717372057278210280791550240532473720769955280828169244531471059749159779105475132181101245215045806241125063120010447614108684505684906861972421472580313998780069877389225912923280032968895370376841932502086859454512113084021896115917127982233869487136413429328067582259049490423656672617547955426280185437623433815326497121040157108588839921606960302090262678222531899606071821169113251678346184766117192197301677559422753929774652485800079362309567551849586795559189858788492828563748112575189784553693097550476909662299419239005827474427028857013054929106171666509679843304507973824084525982788659258063019360690111998564981097293058947799459623301927217733826798304365372023904006309892039915208241690936918455559995592096683505896881734639208135282353156613220209795389769936566914493271559468607594196186610206545453653659489340972854333700308906660940062770807001154019007183516238621375348085355724485861222559378770144828465526905753734841575880261949461903338204409009848210536173751227143856014442676241160375463799266187976196605150826894656995050283386844740612264577294805889131380536059845609727214507515083464030205093574122838864020817463277227800857552476618242268138038069759815820008556274021263337972850544911493187431980374783249005141177765978074627523498685272048576411157019623683953325836906249009785730189415789622527242200699414591450497469259116293910769001549575913177337520529409384295604260950186701096904005551541318708095941101340733072913094937135651684809055006776649303916346919929031171166181046346758908461402128571183922293618919784946258682332171058426617029220210672414554061000773932437109070827137896785234729977774014314463229293602032398878049128647747688528839357918341479556196000162410861392956084301744153922269139707061589019655253654115657518847631058814813865260669320840974972615534066994303593649558902862705475519188139994069112776335950567441946478415254005259933221745105256982502074431001771081314174782634696323110533860112295455633005167461368645996910828375574394651809641300425686969599405592420874556873888708708601886243948656424705985679785798707679763446847269851709761571994318275977373056900504156096193622656948671935405872288679887265810556903147316640909042134873644321898709631324909467705651627151602478999687707695912887882307461400751293415787024062226145116482369116855318787398622294846727381386920766806965128732778203024868107495466038373944293986008182933539291784597575408907222269566056654931410288172061013489368212178822579486212819864426215376514367468779612582501214373879666778183882398988381179451906660933858736209195063361634215518272435721681677500752967786053093984395901257269496341384074029193572998714296065037495863523727914591395420312897730928367105964103599136925481338155920513573590688388206200262293791519647088759159071677829512607503227764310577865952055284485639523783185649566543780347335034937064157070414520046217865529256504684459404865800959793075406193208565879064364441141154254727487660542456607612280875608104191010452502078878413134745952049926599089053070398626886910994229941358528423842909210175585370272121238969721946447237322184988674224210986762331773566713546587010920625334401070242701525449761591037111847016115744242119275826224312115765593145901887375971692030099252490894234349631315951791208476815460022197668163773615342985070295547229019725113518402357572430323733625910336124804210369103414936730309202520539414808344130743226631134089557924653869711788429442303842475937405750018215568690113073734411745834532148024463550988779507325899755355974208659528189062480686957979334778586739522802018018089671504126849090277776016736738894934642943510528803607924234931446858303601909212536520437353328902110897028144344842392636509033288682785646956635326568935532563363311542509691902162129507180720808079738794062953457686108662597007727975344906853884348659209765956502413038073917140335005051481430076323942938457151779413877125808688665728662660940953095593322779944067875738504364145039290066748706182238318407442281422641609708755904817758471221238445776467315040963436027343143723996175539794483414008118237323823383796345126451228839913017729738975119189317846445837066689039366015912832359929630903136777263903834020485566899301886947966244548288348378266742856870855763095138680637046451231131835889332555195688540698160998847144633325086512743684914414648025409079763375308105786516683490173238776095851378178199194108731119182943160957317261632229118088375562237566377614864740944133759003896571504488163691273272340646698307329364960359883317168115990530914687555960027372631084708793739084632987221319791353394265466600060041720035266812734314193730683685984512568896419617242666794406762203158853132413035028330891442888590565457442623948338949185706934498038566101546027313924917382461039780267905508645023108378677521429591942027352906618936482883609100118700196284948847166946950011259886332691683551009863547720340044988750389046855954999833387640444209061864477175497700921775057369285290714499870113954151329557558725689975641764047027945674914196410403150020723798103500220710170497864756406485995332748382558825084267058350687903005663424895792637813464069425324762350769984648380108833993871000048045910120769694595787870713065735144896825713037619165265595270530641306016589335606099917268108742471960835031083144459250498344383088165299269789881748656300853681761370266873509344748579204689019693683217714597833467501846167852459915793820244667289264424691145084933125626214148278166224760177721099939881723192241596391653007290041661725618148234046243097927538098870572990002574282568328706021079401385117008079201642905327166811552598080946182909693911186413122415042742453537156868978550984494873927980581216605115412601532129082021167881850620377079961337161646848629750343042338490514435938092843148497534499170664493130261203843136631510369424876358597863966619109653577511162726468106760152242221342996415331437704947965113370690900287050048795550874549708307606208788604628993211128691679283320346206504556991659556525757925785784512632608933535141302830988696044819187996325156726101439875691878206199089831461308611153860154469989856715839873765367350823269742766926710932461769830784291837264334563635141401888370023139378906243616186708913315919666470847534680439881960262171591949344089105116027464381843587862149417300761636773407642589763435761141265846904467109762989760991899725257141586777116632089055765028269155746818639475732326760505228614160796209740808395631658977124462287336264263209451758877063779951411706149513940209841084180230607010356439669504617234356886575563348096281053211955291074952739917741152252532931462892001154645930689783701055079217427821120955406664657594120093162473664173951730038499093862890469700666777473658110216517733976687901343281690723471068849904207779783352356143565872002909824546155321527891741246030099823505508187279313810489255425867873191665253250335035736993413984126544310141675519286750096955726880979535324283924777534999671461238903384953559768926648827968944952130123329698038519624852111878850900142310774854134151083504937636830238316752618925146602283101416494556457649303005377360104351143419227483424864965707721601130588665295046043009821611968281611014950287325016511339059343775490862217692121826214215047474974673510105718855903975734997424876265451282789238157796797675692811963314842933992567395369756347702028350860233381137229768899584225729328627605028912493984961944424729760964513702106686936180572507209848791008125904160337539197305853429436066446966341481734980437893578900549526046941271200668790524746871585117065993214104088945266658373044757630657066425855256812672919828100177065334805192475719094690514527797237208830947259336890646820792880639517247376008774912505450967059510489564653093624596069497518753167315686939747793622185453747424045691374208518685203929530375979111989193596099765251050843710168443301518873327216944397638930120515096501718977474357373606723797233300381324742216539176302802399189511126158676431106379369409589267334494443743966942932105955561534443618560996590978295063480495242036022745191067609209568286138929820244298932878407874910406156530696215280498399480714776765122572650236626916773154488572134711566717362353954397323238514369521380083112701695148364527566971061190398119591557342111546972544459188053978493824369025029547338575755380729174075397672332615498433052199780396264791892325203073117763271132453131329862529698982598052046334161897235171383451745773650634937985913378031674190341940174850037641000457187362668532873080785229801405112296828715574449519960378469263633153437849652764985563422992891901619758775568638561398555398523204777931409191569091882918989472146244559143844549792212555939968828560597992789528129034397854732829002619299354026290244354460175619883846913530110061303905532361014516187796174568168241438187239358415988603332284599798959548686629939628622751042368764280229135614622483746466155769046248256911618428102633089097781699422740821762642579511946671894106574534416084618084861733312695551434579076703776509786833871556165185552994428222742535978968131992022238382281800831303944036722348437522297207813598762432127136964613554599123505604114760806108039115721923638686657957074848556449397242493114928710324205570111624524117246712947155102007603105811715656682517967685053932499760636478098682682643446669999660527399357951497303430286542982719076342612324963191779621361198260462762420396345223481502680060214479532307661479941677379969680898247263344750400200525838014604057747028468418409003096947578217991176027724955452507050006659201295536849884863315975799222666239050017890586686827039840979649009858884967946202493289176362495050827195287173290763550548744154589527623104105155292128416081192148253601445493794109504309609205043763571890767939179879895033752937539757866370837704894480253839260385657076340844689246402987346040696767877845945119407938979233380750940452396688009554202521632289377501382758641206314046275062934958427413693993903411375821371177380205630833075421950347399653187057583520039031169468970204050467367205908911786008016237117113400830039859315281917405866706571076702584570373754476343176079450806986450571091689237888045472661809249400465034494143109174546173756488396201364616981491319846921284127161536830239416161996433515844205079491120500129086921202236663867103839325460341751110783693538449380387893930759145606109479893013137803706838821855950472616759438818770817568846856781767899981593317933299347980059608048463912569552646408526801538563347431199268442923028969327501981176243998378423870708914048343738033305720376918168789833604002580580298509462759141309500745272633767540595992637044512859723639692203539736986040050364132526323537840917106073011803013293627241895415944049043585086160811144758675991652738272736964870961472008955660853798060968501358026860980073260502324388958717650181355966634317040830884748151525643481178741525436261833046542802109058484840145349513434205938566381559057461906622812953500551221627428426294094038140374106736768029752526282478219700232875972669564720640951142804927040918289479488363181105049149918000632048675360002669460781501570342187099684479202730189474055163595232160898999027354185002716169477602559314112618656720585677617086454394253175958922592990782951515465454857006083811958079153663846505429054845445972787208124324536031544000137537739792139581156582592602752661435737812917691228595347031146456955290317499580900559838720523859782101887639055276605178476538802919224052618149835385220475125723732331677811272345515919866641528270241398105604003485554003898490959395051458258034175768285813911263393634438810193960334216436351138838924557899293430550041709525421724910027154658950301814260126073275760194694210215652504532514782297163854196219861347510707140736091841202936942444811087825606569327664192662276425623122858586397689570708010805490630657165068509262645092110822044999308799593662408365625984452384195134163161928929937423332253834582745995699680292279604461911231290218336911858606717724482113821284084390323298098624807827021057856609763757180608573496014543663546629989686800513487251724600815197615263399681308990924813072823321348004409288289586335420160918227549658597268101534362889108156554200695969251463688645630551711922563846523456673378536838359785516740232640208908440120994020633956181434433485472448484076614681503930108596883570268860075839602684127600377249255905695955267483199737332811497829430181842392436668695697208155635454207097421619608177940473255802953318771660634695704861562894537598620716783302340704423515824831669582258809776019762820366973519075538751709167733744409938816445936945295094484278761543190150849310118888881261402048391350366518532646426172116009147532381323515129811871881195539149046517190989083520434096032295780656502428906558264102604745495154760951165563024058540496220912830161883890647639406680381944251723033888258715856357530828263235672592607121538328633048251293576277274479675168522691042619785328444698778821211187312292390097521547513979212497977311288238415744771616799692583078208154027972308981853776454518820201919209622756258695407615521465200726826665164447323068806472363255840881019221863071293584700216603468819983635542749738010320218104412193478618483637194449367850052461404964269764296502314221266680730818322400587256797010695071477200518364978861699813999234895060148496462003032670616232866608826075109415385148104644224967478078355202185472866261199383121480424276598627916222243065264271553373698669638431647352378114210274327119800157699969288483434571106152326453541623579804477585607928458838921023059049978990365795832436346788482413688225277056499471936996428856418717795039901711265379369920602989205742674642733541472757926405662043642103680288006667873556376127418571050354299164689182528026091416432085226344271883674898214467151773819869791494172455981050162042056612140931432035608255824970223103911376016114733385591077395726766174778165418463599351894149745988528847198328772545293458483948448704754636648076598529479746137186484651001153970817523274224729893232332170414164573823423845247389041553230637269744478850937461697413215379592893488977685716497389048128616158416773604844554418788211509301249679387819301224270841385194265309685968832646882472804965155627525810072377379211293502434601749750433802734117223299315280864145598034581551205784307432132557811649011518626910646588732502563747444034967793815191110623749796233326583892397826763348627015756266927430541109785155641893752660131439869516289860772759381396154033730303762463110142135931063297306894665391590000328573836054393102554704415869485769174464356934556269363276644694394846061761922935654492847811513484293246492269440544965245660821007105397679722552061142709363872591093487580122594992482145211634055496157556007449470804182679742643956996939184220779912228463504327114882149158057068592455739454251427707358126441221060415575661084857198398664491080963425016148070937118966330691254407590671417934104708234299296041815548706837538102643709114339297921074921024529994851126454203435251587512876004172983213414041134947827161043412063423834318084391660538258477410638960421386320393643858450467140910167526946784380288647693417124898629641207956385046055454908439419457823007652847443748069355659085188322186355870641881444114315373686582574409386136832065171616519907752049149344698216911428424723951641257780998637554239744445138205512427588808521149618822949647026031627021591283069682573394483159937449392823697969408598013990265653237215916821501365886496001269082869576652399165391540244439275219075654029666004772172584180186961294004989829778235439491886703552344086962007595752715716758012386507740112022095730866114993176511681858635934862606597441309346865247340197533225726657437990830516313316431640859531222403431008098411238649153297739181079087104641157021241390703236804340827770587296401293506064021880358169007022386084289905998868857909799706101360589194852232666280657324420530601649781613823072928136856309000546783919845671700892433763161492798075025961714959334502210564404424012365459555396463086030433433084397034258402952630637575406803163336641914559695714190118806616675467510608507816707942836595969286411392720318146083934637204325856656445790700195085358213917448560796804802663712676958054984117775745071884252972255928066793897920238857121104863442943588907817435269506503984572648879374005767077499422693725815405440165819817778167394175909293740956974574973549988594039836678308289077109633778024211487491032174003688787744186806489667286871821590239876990435718670703484964911246803169152534543582006039454455007357685728047766687902816161630451630503143322454533946653409201351823443790921229341828707571433536359648246115474553827891542513160926007279791867638492606448893169704953802426234449319996104927867534629304378475579779327742075939511686028083824738136737712420971971292143404536571150346963406308090810648181405923165949819149863893570182682445534445339088552999057114688456658479925116937535704720564968012271539136303813649875436098414408757362178686110057742326031607575747343876653068817085738491892105586309206210779179313420296617488671310547486849846633417835580915561776198702534455347713591917072059883368127546483151244391073509199395041031655237157503261538210985516362778515101379419384949690271638970909666455931674098702923784391026533023208950686783170142344215431128083684007627350846329462661576896011705975742952054200025315187093688816895360973664683174702164237792256636937126176718140825847800648753043617722404592230186609331151579829521759868743330582244774175588571997637875237066349584288025676494785584104640909844721840153555221726023517833143728695485629123086212058890535230586506405320904598946122894999167248176056893371792568502574917341966671513275755222186360399890590304954652488753441362962721410585714709353129366232439816856810255568338158617112373768754956766782283554448461242504244328876197968373849093775166503624839140577050849813144001954511900824201833922222472085656485547045517002388645192223450455419305266529940557265248785433022982230822619958992821841185787808484270376311006471460686709526536346883340730461144396738151512540864422251338057423098545245163593037283339588593050021626674475295036627094770464758957870423088367388041372627066685378622067982711833060861729703813489280548237194120741838149766830923247480364703562908278337945064984450044443824970032267262141398121771022822013347339516889704066769062348794433816495698707066617135448280950935386381210582064870177079046241283154116787125239865504091277926583764054319610965998951308054130335922354699292400168034207693224033454812426508448065963391277532288271936983945562504268903413352675528271007519630302060169160831245283127613894942487662393426656221091225551077395485359419456467713732467798294761545502255272790770539440022744245262716847270440927158181828756948999753941632664415338792357213423455999270917692677846685276594129520177392328709395420399172062770091634446240235733377269978421725735696774866066185550447515248066247573939525796100385613375364848379794369205843812915117682687947251970817809685917429765289952797313477945937163912990242611582375196814860924831210250972041557451266485049047720550640953276895012756043780921398417944956244884072380495244994371416730947117660637260000085321477857140613563409699112648211502907973919571491571481513890056147068628507787946201198307252266549536642274461784603229776795485285923651764612641907274157987172858934847773451370658101938677132794655278383310860606152750964219186973785575056771129400576617270160170503667067832553400096589682571928120573875189002816336425797241798605452170694821441883763679566852988770138523438758356524320979098525895661551001968881365712762284668426520210684979542356181402884937169781847394883229885211078386880192179963073268578562726777164443093857227565271290764988362947646273685842986410950283928161238253056576149001942104010137510224091776917726902238191897942956332062841936888278460997415903551754570965794929026818369998634627160553393490677904985131034121036986827887003983175900922779587713777491904440221320283091920041422560907192448161442387322429999853815531412669971344364008013468059048369355687123876664455500273151794114429485791263000249936978894647657432257290642017587074136585107107771354133439772570840282172837380600369241190299085899159173587196094544910932991705701688074293481153430672524086732213780403527528116795506021262606827927028052782989954911996268139099693994465379578494286172945996784620962823076766150805099895502879290534510381047447848107214326219976196210820701426682257265992445138201018961080625979670668340110625052193005425152351680084875003609187366938625330927250181970959980078794266543498243388586285830388447517968652721049137368558279369768133039595448977819263082282751574194591282495469795821017095948719276281657055625998514712777611578340045691070098474394976708773009771396888005395329947241608618811402066388507759402936331804303279329707971522901713826801454862685626084393824153115253336774275586934742335469403368836682298437278925916165985762277402452209210915375578631852079102697143311159777893783457053456361917999939913917369162136051335333006847804122075740606496949293002360274281351367602270499106292456367721727990047242956255228515513317304645057563714244008421614716291767919721967544897672892834293397790475372030291979635253484459201601164369913784259109426235019774846179060780780221436291919102818055625838054979706666223438663447953096349786861941192315746111711604565725520317253337022323592275258567085315849810691237620530705963331525664990114703941644119648856691634495258563841255224300153416733731570482754420192943060261693005003611132726116918842769602752514422388263454035586311812812560575305027702731298362579230085531101729949502163345679958329414301872291438041407373454195739590701275286520580896515274036952005496881607695140748868615208312730605020236989100736717493863655042280395637847752506688417444991240792690191584486403638354945624688512735493891273538545472824946095421423509426527484778604770340608868672868161583179541441356757773086812368343000968121957720846162572446997797869852051378536606088653097721313171424230133151237419851150093525642311873849047372783522311100341205255845998253072515202156740903709040412301216516311603692724575707499489609028272611881660768588551645317937837411874534685638077074182853867966308471377778093866844959406261218831674357133994105052256130647665519040164277242523461788072327210031558100401254663126169636835135169240429857818221972089382284418347942979351847298972874657764829616554199282140785026616225483767945888774674821851625364541419942704885478045635216759668035080771392948874778503748332838347300821404026577701165332180768315848675637131636782482484308829109649605075162118140433555102923760199623622295907174512465527771431142156180197624492991463313965733465141244715349493368832244933506391845215993321697842922952033250224803052467022735128157087698138959189492175422653176083417344568093982912624275016938650168551777543273068592422395815971592804207728541981097819954873825178259453421615709245811025831993938069435345127287694547996874147275874714853302892349336511448505446410803926860614414007499571242139134300132629196041600836111551728511660984126280174440477393066924447320228846991959817755817664452663865663130254849501356213072352016445070166617306842976262815373848521388663431865388850150448776921775046979528350380942008861481071258805797465020781540995097700861176993800237751213764430281418015905354282171436127717549949956484621885341700835513719989655133125584048790516722741327742991691842796957041353568844855607678041020433813771117090259556969773984919782855815479403663197705159561843769163592669065616995293216251906558341491748497309826236422578685661811479512115548161461025415788549976512168345168772703176117429277636818114450892957994083436465598382677715916257845339315344283594584354947208546795732442231142855005661786939500127719799690201514839171628672883112626853688867183875158684305038404813784369685516998397489788489121959762432560229666066533028111345656888647417881923854998851352959029357404844764384228480403698241617573804577070765198116092008648677579526790587369941551968386637074333621636901512562516828316041778666948947401492916819849917086638944421493436690207067407058752534897627243478548251684169759188954968656678133611561773445602925989646166085949566855199772555018832794601409472789996392208940687058046925493199465754808410156360302601634435735865446734938060701587909785747721498524164526161737364157939165528213025308452222347952793651681158186878765075215555116452847494023554673327289762185759543490020041552415996811237554361862863661105258980695381361952580656750778289298382277332478438190317330859519877673907913867950720390773905446869886717979468892584615886260965731721903694346044051451193845063559009269527484017560541335461198298397147327964077874913447300534146655715914953934036372821476907633484317997364115859699084689691190158482229028661123923292928923082471610342931519516020122318573311923370804162121390867868204503000667729484570642521064291481986821809954019461136578611749318222687182030127828374239400267604532176463072427064680752687805686975900903681345639634872327146329854303497291430339529278663104749151588051259457010416879402268520607634762059077076736094727516619064998506734228961805351482661783300797423788183503406413751032172296388883443897176388514782920673028383503538832986672165005408311965220372037516464200103816927105204130677006600723957678764858971437028022189575878053655526008564175404354990371786101852617349469082065071989317836785576378015170315599525409416198784817976906914048504533788307462070906596430374533631173995073808313429124197484134687210238446317858791891200410971850598902728066542618423645011001169878184366089135879519914802335305662891367374530202975492022718383442090960933735223370770876756408561672188854287005612335918269077364195274728849633751703866411090702196064229644404109025277644456829426925447639226571228488469675932979688774894981902312680613734388497741338406527979244878037121764726161505340199507997288215766263419664357948194317082213964157299884654680778357988518538669912159355532230408534485750020919697441537926925683298233848267017136678409266755538214597205888827607564241007742893251668697280540733390937202133101351921663417790225968649397953926606288988271619967380677629593255241714515983760724409257163463091675502908868050200623020217587225226536892607771095680690449357559727921082112939543267386033247016400673748841275158182100856538468484865550109681980138315507533746880856584141822041227789286938946552242213142774480934474844209763396283801272310254619425648422682145116649292173782419101769135603454964532893444461466226907061828741096263822107050893462755209116109190558313887570593014664052421887273563976551992047787239708278188541629437208190008983386745933487483789779007172116149033295707446180798437172351510037501630755260697796535892798583751462620636922276474122478497979171456686525414794108883596377658194402325707175084775087935121020275554603500578132788911988179932458921914569164799022461206377051324762950449394217305288605821369106253065928943712333480118946628020063001254734096360622231687908774600683076762774400865502996598411479676001750517400453409432050025465058280996833473068364758713881886409421685708770796553227420126870083604174042893690473740323521457958440511010021999879917006367481410123116023910776139277188908040025181500323854106152265328188494633350116242777386698095643255004774139320101149622164898197524328998143768627240037253260796060051591200215730573843731459355964846001352455447747046955845436042501699463423983128682607955484684080539426164669684630909846022557300847154161227372415894496553336577539763635170201778223520990216911488110599616257188442161445246480699020074569547051346786215471577309936809956898671263713996869440631702712144755334072301386232720030447222249169484675562066590475564825229061514708455776949958923009100962827360020398041767637627144230459556418241631840477749392807392262867781691536605726091879549857113902762598887104866616783241142340030863263020298546637834264788977223942824319597740307227638362646127932592139925967310890578842386375249268378702468626062766139599448227347149615603033520228133429076033839773691902452860740016671784124172772545313614628316105096013302102502368520977899106191739229069603316939438844811752782109964639105473405211238683273789954410102372777562800238683469988437192841789605507416127007318445737345627044186475338605588883055861008157691954443980905329940681022817146477506257498243719077714750827340104412684412517305643514474301543249515824488101526977739155056264814540814105610449291749800022083473699463941969599493311033115607910419568822443751667960009271790448885573238022224953294801694960280400108340793769207505138128256802497917634554137785000929221764025671996474576376003361752734702150854386068369986779337294327772784942691546660370811745216026774836974406108242942589196218603412255258396144248051028186620070975042666367183839809140097385663362294025065942064898855035861072667063209607081552310765965251914745557045649326076304269007977310322728752466314061426550856544185230846634143319910419614973200022859882312240969394122180540528215068344607021471099926416456567024264827017819702280242039579159919761637988773208310333860065215759701181280205160214995334382570207341993298013336543861040509462215741712507229885594581787926577959036486360238153286766850718083228591735260712894739306988716464285504042317310921556192202611947855460715864641482997591195944948698834560420017615951364056633616888572185436625944705713360459379075843432831370946068617448113866113520674394175898370426087349250621644397067090839077361423805758767705534838889203268843204669287099250233017266787502736524342046945297404539003758747352797949931514058232598089768973943851660080552899689759835977131558285784090799203982793919224728902574878097561047023146668082445057848329699477514139894896507469540896439093854754716695371240384246561558755496278278840561868008917424789257990878605837648069306107657828377713556550668120537079760699571708795198770195331660098585276805995191598620495246611394629011844229594510880808311214479667274971984111305319136430274691981527150250788166546029122977000182727481279642343999283544628698770411901798743047595592461982223097079983189524648426620458713429831031840366355530318339625603320661812032452898082479841415630781099715858620271383120884418513391519686220529171508637081836937367948355488219427808381183489293680965530424445756814422889582058135363903979366055928799133880629832292332002137801206122968011490578489952978416636046985905351943640238512847363649813708006597073567640812625811274839277561450342003904873913336907462190545492299467189944314520095992470136163889975907268033487659573491295616365214482123649696908500757713703932565976604800804087292592964433831184674420744922029328731435736317856595234293240939673691725531265825626465135435769415570579147934342378042090356029943893149573769037131535522520036796188982585847537625591071619449956468138954711560796660140660788946180627304712331682702632717289650644233855562885671409861025572074535064567337346775252124264809301325911438778123434606647981230000337912481607877154181903015701935149772251943821908986864999895248028220364332152784377188036418848991191958775139547777080134684442709801343487544030442780879382114683790207586257009230954530897101541449330309289534632415685932551852463865622184594697348389896843388268697114163857991004790685279267156069868122699711140721797897836332602992855493613222322221585333034534108332189055903238515625557352792974187624784914315262712530507183181113713054783876637702598128945527022915073633963895199250112455947295522495246620424808265061472330785835826985074453965389593934515773392120802522838547013502344380986974218589590684975467821827510946093102736011031057420941034991245376382038147004731299660382346634101958444906967967833033136793452723052108636556447904010953952073826749837314576650745092326753612227781468747143454086945836582514128097501324196289067551269797404237199531257067445747839057659775216033736053660843437791865507017591049087284039832705387143765392583237101835275452252510631823746928041330072729745492447752574485001250160255797038164411666162347838845984608544004973128298234729323100759544338250445290622947998861127962704422520833797747286032496777122045683326887250700027580634030715446764523061992545923180160341504377505788424733734990353565898483747994856048271771625542990578966723019304593664318993829620509111080293719895226562070426909908153041937754586914096150088165097688427044336415313398393337038654688653651947247202298216788818226124063280266332687223232985589175406533879734408827038188325107203623920421983372598926736567787379950488610491301183826673163272488580524100876369461805648873030342192682490125442866782371200417832045574093248111802940535365805521458549842295435875341908009757318788158681761367195480147308228275714706706087644098681680903437124314480610579820334761582159996487742396440562195054172712328188393085484000546670361634757039649984602691012567965233510260492536350845407398444538173921867714194448130348249893330523936566375086841699867010505813587826830449253119405957175995945438054954266170165238072607253392538359605575262196406058618387405394393463343375681106593882217524362526575003008600922943764609977453026866394386553034120579810568362455337990710490772800828382444044161150486035560156339529976932670330201060508061931607230407660016184654753574922351556272924091065390671952263607179796054351286221279541429765921893514461471187242558878621175355861632634085051865430294466678243298902198378391512565382780112712494114578376589424894842459383171009367454757449001393030458636086125888323432073986378638424282085067894167571270020878167530989619573651402327197040081407847373058350296599091437402115586305069385183336485225491198583205350649920173841356518857890841855135796448700188868962195633907525216567147896911671004628950274941435070220216345971851552643087176361456819528847885791102274845404982467243173908072109701919460972947623052174203197890070822373384486594530680794281056697998370590673543552846928704966634335694467374555469617388106918047430678840485745630936707412947473896887293030041435155140853419598876311067000477601531934400129179572778837295757197647273254710162790004665044860195081704813062030678988441099365692579946534099824054831801565200317383664496157100705524890435177279098133848005907494933304809431870398300181233229654520801632608810192071469696499389521611165972166741488154657883631840326943108856193862819236156658901232308403425367422524922575265507703948383917001349226300176084427628348469241995131162864481289665451264324327792230376521547672534143488774411641178345039298443180242090328945617538138128016351163395816757808118290974992580302549764162179557492953618650674934670707038618956747406294111624010934466759428434024566347074696355951061231987018961362993397465737258837988426930194565912923320233383944718287578159558749126662524599022223154906865440563787953333091585030290705261513048758219022898040208692404708036381780147752433232823907454447454943175690924777219451297816536843367676849465780364759615743103063442051341743594317192421241275994740017050651046355198811233178030404491002354650868418171457638221447862269107716761821881949445812407019594556322990673384225628864029998158035742825683962399849083535290334670615901839474924440249014555998592457045579577397114598446932233506754425089227217864561236529274797158491850507867657294095579814390916501124877169281915387756355646483478592383063547717079250402492641316908191196545355468643682863299341262312434934572725246400607712119110585901527902950429680210953997379660750078279248138023085850468219841392685285735254845695006615459544010977033560596561242180358346713078674248158400044706902342808017272290216889304931394472807261482255509863803121015207920030317345738101448628574337459838229129525489811772665230299012210746509143928559517289502225237704743198135418989652899359898326282789814104119306473801435475359500725437030563131284762747475241687212300723085314385181457222707525706309818749531009145068174769402572792027256708192841818791372222143906211105341844103098074634520515344922751106261785995829429053705730081007186668061029834901453479983391016723945046236808215706488513411002287609043452751828068069550663854429017003492742654264536624168865972840634740441836782868808185984713945263125969469918172007042574322964458604158670476874679511755315614807693497791240497892906129179180131779578401100601249107532893855580737002126514237427697751078455849177372047928934141143397648635284591248200141468659858898323232178506523129228520191650484468659887783673992221874143004805568569251044783431242643399241780004922519297583953464269939391483393991811989606816920163991516978007434640733608135497953072370146528729168038393893476465102311492190123331281591396806286849541593601371892058045480481884730053858935251109651451778347732805553374509268904676469143329294263340334743785089824115545847387969726763336958692890184540220083749069156291399572014874902115159472265346963921978586277269254961176132557728269449200019898403472886506103731171408140587022717634139274835169421051689002879962961861717883190462729715547475677645101302142613100162877506764786391765202317409019993774143152427651651971202796924756206887062214953228821449185615162667692710949033154221972811177125701124849377352274022204078825229987732184200671009683028617221723681961902267357403411653641068347774940472107309796474837712150020695336079702326732843678671363670832681055205231858246449650009982492405609382891592012509529189042307730745576417123231404275972293577086540355843602288828493822021049824262049112152144288894680481454497913694590008654331217245152281652377985530644265971178346586406340652632639200853541809773090054226799152039796903322492743328925376211831787200896962621395006913011565842426616630147335661623091739448078927400935423940578367494506786584813084956903193557532874994836403915902354063027546978155343793712553488381863472683758582929325523420803906595548941313773745002152916282554557510965912816258046921114229340252457972893336722891731870801364272737341298964920165866065418512343179953994815792154652016703768713524350205230561739111257376972454481438127049989623556309273643362071920321685651193407229061434435614391268817749186974741991166040705931030644913521353026857022475836606937997619989289906078224096951050411761501214547048101559035292652726721193605993710621943779400164350215974335565594057497263213940664131838588278868649217072994459019354682155489483671997261239390638896282782417307808828823477603290584258792162067340467455285675098369481187337076457900970083031873078635809810403107944725450550481994640056047776918873817948288155758834489992166802094791689690788450621293871587125291845277491532104169737921182014995486990479682866589750594535811174507064437523605464557535755821243020182864801374336077620094645913266015291915633933643565947361955686361521159282363570379814209291787128509776658891797510292269884054011729257043184159893500206855572106995575011603972977311688672693360885021484256212754410020508705625624302924607322417714761271997902396230071162144670061223625374660180940422344655609222221882659591488062744993276970488055965376166957062907975875371187902707522153587437829486813547414759303467680358507744959652565201633058441710715388495516880116133641311699801638061208637735753715657365909292203628265286778341938050090911430320710998832798100504362252341358013152003122867726143950241458416842924539387887547011899368904343128702691404560805099834529962331073894408557148012006787316002930274561374829134498486972586112924059848607432761105727731677006719835857711998454058510062455035075125804802835218313884984463753941758515818347687713524942505422316058543318104666204846837635010684908564464184158632086038787459088182673547100975052959869143821392741937214612413991195753082689788388897922810242304782169496604132574588738128173435916050081872987573526897641985553353181040083407269166121080907166524649711868080033126083606024976000517790683829098300151307973769425309827780803147857440771495346153508783898407217131428647842299289442261679554229443869021135297547592444097879758519421846476562709833591541578703025312757785929293011546657641049181704671150194009745118025633810421096909234627494792392833679692155277610846492335073410912681034673473731816583327064379226701054801816208085293845274589871552498903270903654817724821820999071605536129300554873749229823598225726503678855933708824180460199110217584149509250615593079434844293225118703122737475609613807776963111080272246659340587624058238493057078114980739141755063680272185799193208480189620339622730739371043443477826448300238687538543447314558613720159096567959813594995548969982519659405992152858980156803656902436516585790571270000797948566225837500615172911800374400562002057592340649694824629477165783935820994914858435911687428692981090233509287440643829832634867207722265414171714424412459142067137952117584553048452734160331163745562985742859986211442625617835967142964234745545175380545956100100096393586092497904413554919445980793855869164818136004532414797296588665986849381803339892600047353537819566833526634169718670359644323795496897026010112678349860405814426698161037957073725057999253617143424879007933759156018339124723476404239082262830366536953955401728013398548333869282909985850762736256713000854529660196886118930199568416538973587376544947701186480616192828427863705470347457883099054458406424060518055149683129250180545331760841070911916525698362273282906004324166912958981511098986984745813801399080522816539643904782843921948695600988428784106575054630790381049811509768678636636248430053347818603301597657254441525642910081731749517849633832801333113523892649683069942682284514603537617473439546374335228151980131415312163598690333597149246132644895767468144941948217699283038601604649131234701001618175016308365912742292039282097431930107218987527260090295138961288374977977828776138841960195725517771077276435520382372115768807560985885905613526962897971137017270878632919548827935091207790087159287462488803622240421568109317690006401414759103251252468799504744458627775221870119721429693821542373918436216675130877026534108517144672247157255089057495818296289489586999496875329659457248529513810499554968909026099954729004944725284985469658593128032002075373686402052116245912976132254746734384056018105352286454587743372699083397691288433292774497390228561188789882301136278357483356838214166897949349497227339723264216205500117785464872408347545954971738912421414794821038149807830513864629758243769590556261520095194855811697595507261237503287769402004545857090524734583068383051451638408270884594397168545135970830963609290207566186042306545275420001009377083523119492156177918880087405352794939311389716961046600749019813753850302571544795588379695652822066524361121045380238812213536593005571442336987909954289482591258763587050578709724484287551507307784049751615976532325206032338047268545692733696089156603331941932018737528469190392532865658132265104468218074114057554731106275343268564036577595900825094956512387196363749243083475621783080514949896334012417783094021226063630187754753395700169565061955605191995019785298275243748034140274354237766470524648164570869871487750382444005464791705849921868047891371858546043875393192719778607705930893819658997792051108381160775315689949305441606235457040724066761758177059579829837028521768556198348298450076587396884079965618852111067001813737795649454354752337144511657809796622983699334921996049289167310870562186418276924301224706135343887092795594734349227834439114735544535651513910957096210741260243268772578525704395990166984165485580501986753927555535194979504125230483735467014576549481557243680819397640012143736539362052052156226938610442129537376226005160563564588112026818255771889951572096724842910181385448134557172693419045321244890518377798149741906712525914135722776326979218047356643807799772491385620232150123839815432875470384641428368051797704559215300918775881977369781182078153424132251833263919413144648398012288144845302141441554506560405475852127308869173652705317038518110492061861834815651052828759563359721829150754202896029539771042417663767704621250154949920946273927723814869448184860721870920228636350873419853618708534047417389870755962119762784757672831399047287978057844467668394407858153899882004960809169801726760086892762840971370500090839309903960542884432118992646619876210330670277182722308616206736638537241896539400077680321726555585872239816588727976864027744554442007983620109389954968255185790149412326522363767369894632357947946897126309217065608270015939506375991762136604123744506236976898591519633409720954941006600394544693685869762577007400382265930233713685164119393803308664599368531224824963138518310006267925390255037128298811298550144110724564143187664032379028094724971477391966740833787069982779073781655660158857746919736753496650661321728083532519894629897332471916875818547156083537377250275499874880294574397393496109924666698326945477835180159202856463298914671228285690266248061772503859771128528129575601877829925060990456887374890417580180900768938248425312711829254315021770263265988327169112426252171678443697268892003071962317847353369021842680033866332915774752847628397789248185729557145818336742432219805391853849301961985674755943673886017539025998271842311702503994237875076027325868964143477496969829488415988997634786466762883475091610135471521788287045447160067222532357877146224463523774122253162971264898084745921440474743733803807748894844835537801402544412348351354154825185303618587170955663161706353559919479922560119862786659030333545034258511805018579230382525463658387731156660659729079166622607390406457236788908364848945049807703425172294355332362173066143956772748376704352687614077362882543895655867444775677996491203294636111646427950303062190505047794675430345002110936012770535850083671058361949870365119413134348172340881958510603229369372160160580496729448309286105574740586900823422083503245287743426574236758186135081577374067112091112756068454896009170376670161104809835053423482908698107145939605313832667000638144036963258613926761301458360923319169055656342206753489133808649031501749873687487762913720062835821601765081776652582972650442372763594109254183803722767399262100303256690172862744408991826279908376331539398030642042369607503359468128321367303210479607070378050754355875590518828770148422559369014912897143971856295826371235506207099425099550070445100499153941186624338554937366237432594891839906905019953061562465888803606242569141430035306339372595534051599791955817575146655226397423508822603266179859512776070084862912610406870959279961421631895792277321843822409519124480082885454625199809306392718431832696574366688066834620474689132630570563545869488154909436862724938156381693160907994560863040129897139460125672185621328793299522665470655330670543226389463936027659222882327090402667064753229472958102156631681438354617953406019431905512042019964313045272361136030382556830022098110281902091556436331438881881768656756447299499210551430105241002092905543353386588956387465409235385466119305643855886394746885667315642543160574273203132880432587005473183046593991273002699553231438977776531997328455705004632364140509464182476232556203430490463804578791821361313320689110523391607879951796035594111098471802255478728423116280419685348675014884771335757123161172504994121072375436898703061036603339937794467941850992934892667473254827497718010437168444465379787549822311694624770815997789424489711430352950632027135341334338156899526110117587024768016763361673730225987376530915699121821089870332736926109123344245179758420061998209988200973000057020430920908242445896092614742839936057024367503342792999835076228568217656825934013637379107502355317656453190717779270982753721572028895341697629956369467736131382244368533796963622645033428534747668131370052021149807357359166345901305192263984310344717119446371591920756979302140027361219634097610934250194846441650100794385696536333573193805223907851618518753428136668281212402518960289096585339436583116709591883181151649933933246886149104356640141513291224347910398775451255692931584793307040918309587845313039567512604172720193971063951682404836537847047506013399762765931852896501438745312437331670390102052489132133195680814572805028220835494539565633616498076106233288642501376747500039419580176257777558794417399605424233023118543645051564486210431171039726463586258890878605982682172380926998272009828296574370457578882051897386188701985368700024923856128659050017894587233410044434506252912230053490457953409507415549914545290303658288358644945153902870419021237943539076986901566468908620236891698538351099416836192787104695744137060504492744678182747343149999480533824596579191448350092372825274704703768560234583487505405971296970752220654656557996429226960351808634431904726264467930226056500536962723825283003726295330225911525079808718361790190031533796502128743644230155031606270324451533621609784763820984603348430937570595118278283865440796052900060045774541333625809829582118719016593057069042105993943756086226573986334953158561364248237916050274291401046120226097882699848366760950385275940240891469969565827642593996811374116027354881492280461456587641305428163837002789548574920785687977056970187233822521138681288072217811430103459954069343172662122574549221921367571400674707894906135931542464275406448710565229181271261168716812688135618866724144208200541176572142070112306243708946437400472163984471159837560135411523134809885054732266499641449704169666008833587954851331515686441747551982802378912533456386631985109400255639292631120074301566232184739806418226840967448047594943675941364484395406261796387250018217189537185337758345155623011343892697561217229299266959970902357157616281884120849023890919805216530031799862001768713160396917096086584200446901063558950734193379690396191254301037868978544669883245546690367917378374209416406412168006517149985521734544340170237996515929633043236341482555227647034387935709645028326026809036926644656554107740202505273681529363102588274137937082518551117163852650901346204642174710539909923434892439418611423986096953558215277933967495470462090437343893097385191017700806618116089767435047028582661224658821043205488674886333871126300062227295773761506934775329021052461775268687906547517248549121559565135002954709191842190545669540450496918307393484718032493787520270883070284351951478538741001788640313461908543235126445323229254911340770932679042961453973389000606041174132029376268926523359959234769262129938125374758146831035722196025491505027066313191463457080516094386926957679431565622475732769151701899779198970372803445463943690682810759065471027930451403861506220074002300983848037753847089300449398129789368817579005256077585166881002222046458819236150970405602661366782917427432437366659768871089285535697634812374465099856053134664207230167475483955503515043158779159300686915288543724246685461700053646338526560932513579942645073152669459372420301398520281211482978213337158716416147749674558104818019189196563382360264297788112476473159209743170299336803549822289583024387109195629383666375319943232110572757276299839770807115103147969508830212829949139560726833034910007563926726155073668705137576263848846408248502519843325967797418163113444458489492035330629757100557821229372665985337460696858693061252913929610292553600394286386855967635098483293036501967734897499395307502751709970823571032259748247367022362050274715543808220250469684543171403719459429404664713690859554394196945252000056880346761229066919749573827996846836551987397336087543818483044373854819530678433109927611755078426435279496735753269304040102585514566666590850224392262953332440615551271169076727259821401089249106600456029477014763018440576730213201116446968576033598339698492484180427862829982668052174799404538285414887683620231702328886408280169586239214499027639939500345969018010444626281344445782202265482453866205153788407515160561714579243130014932632384517349008147569474313191030305757312259749979392034201097131297818414022846974744218756432132049658865430988127203969892036248916709735860304646028260647762164882952743586664826917537005939984303060669253974128162887172037114629917107726939857131964450311285541297272752424156262008553083857480073398813461165334386802673132257663174230399328932495890204650462934731177686003880809813968463689374314243829497098616719183747279060244289723524284317609842211405339321408105424476901314793627818164621897839600907643356004873754030806955185008420704729947088013978746989090540193453010756434532780401329836651346908409634552280877938580511238925081610289016140362159920348497140242985111030333233907937960499530417899553536422542662422650512771494138432489872965371661634957659261066175226239219962268007981531756559114162210924172321521335966501047580336245328499052587361662072839698852664855971320324406465307396502869021009392085386416541222348315580063462679382605302223535471128950980978566477852057279468459608132297604808875336531307415846663392404043661897224336690220216034450182939160720612127841171481319117381059097652888792487830549548187912507513627673576553598069092984392398832684598665120497233533693114839323866080828049859840262150443412829703923302186598840620903182483108331212243235302147075442471806412604451195121971058657284299189612575999193842957975723136023728966926537952355820800762997691198229208368108409545118916798447815254043775654198478140425772202534728457506237664049553570018729257169034084259293794723533003552197873732982599862710477628458918013356788679138138821901681208616755670220771585462829032228399712092864732057027679117458090548745139468283844055873882117442108259755036862556144579759036164253150794944769870250211482433817684360171312168920004356713888995689219967719626899912090865728278695504471669312473238460363123131870330229131994050953341480295611139829278679203178897091708018407125757509376985605901750470080722789836129674731180589217240347036687552410230501385505810755669669651666216361793662536203633800156863120937604319846541124857490419752612770299578760730060328468841819210169925202631178130361692936837349164410128494198039622431623503197465031240874647317727239543787240541212232214667568967213516686040374858261524101601744312488282183187190467859900591896755101145702207978341913018804086141282759088899539594264308642437063342909414794961390947717155384365682604662012904564124819154142409971056700210919593990649635236261998131743152642888709193516911569141717824320063700838060942540827231146149672142876261692816710791598643239335841506349026803722591219432665369809367383109466128590460322216578270025952365176820797315330856120880167878752736416180821916035678744794293478140840591029551483955499166916195147962682452820163510860607195841853118346255812352465797366094691768928644132573062352889501786580130116584869200565064911970520567895005789338626929074504234858879888867594320531969167768656569121408323970885705579967592619223473653019427837850839717915982592761279080508739157801479242224361713582247444704242241954496667046290942649612289272698503692959797696112914944100371180324769424282843898212812478328705774747997878192228779912051245960592866604512060411932389058595649128014008947350391507522862543100832891017898164471647576892615805140616095784339864074148625431095320447152447272355189844664913949566235627926700976364000568516930869612892313667521594633792052248470007127538076996589993986556514536931651076439846764200402421212300306569013074544146903538929498241112275395559247024753653925074437757134738332149041597573826267080226043866045108104911838645896201002020530884472988160503278919461985632875132757942996232032656155802809044479880785848626151178068906742843575841155582139792383340874079139266795282070020766251442005288511176121289751904124495843642289488621997141682018815056157366766745805768578890017281980066305582929940179149381950984820222245964470965067748246390853858220617934600512522234424930168027686717256258362400595899636978491332521686346505830304021771707439080480261336671716784199579508349877416301463164598885066597682931131006733877305630462851227473916640218346860037551225991761258795581093629269050969372917709882441698970149185577141507007008778304929264539757291732443503381666328425984766071547379175178838849076999728702807515422468446870410261997255151512330510836837551901480326109698490696508103934905808732487919245716947291821249866158409679851569251813794224801834847669210521419659548137710797307637691185082615888334277227751128681031426391735710526497092905575347113485830533389264731711541471626021370518791114596957453911241543934400348254197046447448529383788292199801019022892740519169708182439466382214746744131887099895162897339309073603484560684029812434033845423145938932448255144206045217875654119747746047337057205189171743237212442528405460689542099140764482616903285807329827512351269240178262283697463825647376663401110863008259901447436514576317193509160459829510035033362649796116478641836288419203624489235478176578259369943769743489176875826879182228893059630352692907794009952548247510792448853371029128717338404207636637116789998040488362251646018112575193123307239095629701938258947881999825503603871329985115984612231850799963005154553791689418050979250933875889357692584174905999528987569211797416809846107762807711994804794931534583558844136213898332142450932849073600716447040582087211353827353305939468908579838075827454372951049524962135050486449307432824041439451702793995408272805987530985169637899337914706464242003854078391623932988474728690170081457675408990591009654555366596220063340069550270194998782529035457904557467572185335611341047469202787284380838045598109545516770247819538086300481841559393973424184116802280596838740943570698025076554734882605652488780940197283987440248070095720771186978582552606505982208987614091072971200213847682243402755501570634377932270737177094463592188198245346006026455675850860145888639800424181007499588718189667414610375421667647565917143447506545397134418276258237334878148353541318860315342406853548793524261328713510921404117019438237925048943622676964598255192814411442832154921805628573744392842368568065387493277148127219504978685795063722521355416006321906008696428889055971053814960405806097709896671598692727327417963049222663221501687164233853891530631118192691013306916930886990832672798092152536615709957036667548534430140271891863250452737192359624017080451742669023970038022435039847190664359801698776868062692654743587716410507006456603541611314119135982626623245888491474746423855351982173325773442555732463011993025159717124474575658839504610779938685399986723468612328842169791156435112568643809019421186342036448486445045989651739768929951052006606977196115404367373251771885091105803257402740014919006532316800839981242435830327698918606832058946053243676266168148397625477764826240645753853690917713071940572393576357817153041080188449026702513394824146110727081604350906700949262438508920303682267944552861713283671105859886077559251968603451548748671588892745021441870308179845849376176692769990231684841596563885862837009914136905372831551661891818089205722247180148420289375164602275764816575640032247728902666300463516991209596377685308089524534774127124267622418844909098719545543666933517071761279076889205379683874098446573078853257321481301880821125392087885553883642121504863249974589002355706666838842605332097552177936567768307093406775292387033464221379839941145563670402247683086187183757882897758779691905947811773795888688104413803324890153234244443469552618372257125099324016627127044686778744551201582452132549118490475588396172709637996234530453053420857437730681968573750236479605135495088634767974011277695566217654575935381916429579301810649682892152685021171071451213918246919258137150661713951679266682198197416009552006616632009733569433320680064018748505285829391202910425797913492926457824261793168746632337177386798587058097980353612051392379492690710659226012549181374937034358610139885066872761894903687935521515554256383886925359886102489827314223994001281751236980729550952484512147992373199513470727849215616650979561364686730601193773742206143608122341234134607191599675598714233108094903495759728097852527453838373910444412766822659256912323175796075305068098438905931325205022740388384949517287760737831843677050940426309961672751137889944013757569107012343047385979930744582024269403651280096952096110111641711993752467718628278374995431694226104985692450200856553703986759832427452115764161442341484809137589195061641463042967033607994426193826592788679714389459565999093078314023999960050035227871441357667377262226776544369081644912367052462419076982805652508816064955192930610380191202289260818221252680398992952465833671660432050264635205646824577023001485835848054795913054450312890195824285939217311257089036486277430306727447428906666797792712909206608752887197945669247054423772630548307465046243234292246452592409120357874915974167278315944755520207391707721664856256481228973227098716462537509155563009358975306805902466761962665619527143994796313107146126344958159033935863051354266647482319795117374898946173344371786652957129285005973430868929274796100812771092111400636163880216459801466235460662617262626664283058076698843404305304175657628754876905740210597592906043473541824785348469997605681476184474320622326046780534501366567991603973048480292393131338055638286741971940003648836439351831797158789099924122244042565491720160490900890608374955316277978961166483678228438318949161923861474763930994310370063206159858802671818187827768145179489187200739225789204730423548869117848669843798933377053291367912016994135200084126243674468946735882859829487858133595955547712484488128060289716419404030251168820025243317170549203889604685908053630865187993340981980612434754103155084000406375767921776998531176569243868346406811981337241015200685954572414153895642813017726383474419073774231460088177921745494419835856526047342335028811343946066770620532954178937080379930483349738821576955250248445591402416822051680511212748851182746443761939736237536826308343613868051021084854198656134079859276671352591310521115525158947218320807462961600670538621244247167978438324585957609904823189573916637929139633719250573598432080052419351420020383824941193747349882739155493753796669351736369099816510347377535369779097941443026184210704750093745325927191542715297881133124140509224594546304539965103026821809949196294194719806963098283800460457115284908440102169140403148725062116995980297821606319516219006707173979757303061463459320578265412167749794992111675996141198012114023669125287578972856316094679166122756990030426071703407513367166830138374935555241342588733880761382040014989302537812023634396552785437565217869946465020091878693381798383882072060227985257857327549816989316537886223059831910991570059286865483245761992243202309480811455753139920114639012624618668490779900962474136942611660802904254583831602417500156677314050880600679591500126496221587052222668610251082271975291406294880693448829833376579315894328959851998985944534513700547188282285164152587164434129124506765817795477019498518615420965110401279311962135160127447220744077966480222225077549997278803748766689897080629069161795826963258334503319508708187158348401928092571429718089607863036556901894047779099437769708807131512853753825485390819114215746886968905288911260532424725152516921507162530768001597015736893924761783626362568863442684498523051283075118139906542992312894292782653230717912390352320897247267195738815636223029287575188154478815129853860015582127578786954412767393960568301989958638805223785347621342619045606702129142578839781768374885970164786385692031533231731327611062809231322096672988474896096915990699680002491719318035709416668548597372418331815256074054695676050261181380649945636605533946399723947860552564675941026083787055269755645744117723888020358260645094929046214712930322542801675087038091128069262176167616320031978469003273731896282967888700423824228050138441354781512303893430963895433349307441616212144330226575515414598613353507049417744416918392002365393106595733478463241821448164211466223571387159426614609075869061552962842451104465924644504529385272086456199198730513214101151197079644516698212022523317424399018120269269732258916945220431418524568773313265363973298603271020469826506367037161639391253041564841304197497115138759237589278724992186861833279565286499151222106971477682366313202313103287436398548442787701548545215581573985255256555308769096418161561795157800252903527683130051858263226515157831448788235435731062777051880313767297933780662355242911668867991396353110499917092790131495377712719374148292279017031708095114056075339554875015744681380190779149023355275009940259787350868480671516336288114370641992872055020412519657572925392775360584016091538163631101560734277655852103411769366429632549466257375985029434635058308579933580442569143653196059863818780728595036511986233741693822112990108617383357842503488851005898290311311407561727270830768923199019699598559742416109524514200453638445074263717010419486600828464965534079839868425526182951714359801612069304030354579116344828808863415392184754972029391216822990239791525071894432588645831010489077838273845719703423779071566445473659182706987997365187528664590769583097226370116161808525657155222409426903091865274581085938983417882820676721554304695050990430994459119972976363888174544270427437515824822764485320249965112036484161105401272459128811449891120815207152264368539959517543361236500654473729337062802794574468478786237815497404617332733859407316000278265695691342743389031023833940652420314521893011011619499633631807080396372468711064772075688318540728392834371291773749477896857424913072984036739262398024643393812103210818120350185631795531086199322257453307315205384034046641588979329441505373793285898354167729622627707571452549600502966936393552714994460469487365966052411790054812317317014458964052527763402587909883145188895250188978588411060504441366500849159334441883533832846149850483238248026101139030771961143601089361937445737906153887844296527728762024652373884895261646873567018402525627947265719727317545216281076178312986685212439040169304564493807326314786443431037275058861047256757584531538352127688025350133068052551336440428293027063858617960182264533998376494375143631615582205421212335369028235023104363101056932541334140140366214992235486945975380662371045758214839514799279641648423544092270005122696682779199936227968645053628648365422158274865697955361786636257200029778480400019124858145463158199224294654540570238536084415321578650238235104533066388102809265422330411158779298185709229977682765522904545398882322978414090812403427990236361365659698545337609382136212032230016798935183678227658083564284541865126316221548041831491067644992503149130388736092911832878426086071821114638960974145980269429015653616523630390086529693285509855220848663559110741232086554297791740280948943686873569371563386279280345211255394745287882581730144967224513406382192359426443674020627240958364666587860841341868105184492294304138552769274739815482541571628759683968346308060229328775261627358163653247420945657817795362039569515599100007080332025180968125354912744022568753535861604814857613125422686873056303182938018157885408957794023428594745056074724819720473482859676916189179864460039994123985801011954985062020314891645430816881148946412367985859750544353524131445661833494278419416629708162101300373775910090140876823509638154279195341386226061628055074250063334970785004832842676234515240406827570201295569698032061529830995012555290355815991506087796131903073072911977018761102661623321642103183604258569562790768729534782834557389321194369061024633348495480405105146467226483767177093423742451985958513462037685318979532745275641549861991584268199147058924184063007799613549101390327002376621380651215909063575085454242502021547370084525940654203638907116779385160394347816710469947831917362604709622567135674910373748705251737984439674137129838475699226070166687795043595964729943081236063161230452799217896885277391224061457461778268932479846525726632176033801257161639871323762697742087715552244681487754588828546069143978173283418229833046446597670237289086796571630395982554063810635253192607411520936516075910424171303378587218369075162178650244165936680266526481246476136671615232110155969873907220203770335770416790126755658659482307650349959639204050323087600934145481628270923578467684693760755481869404551104590382088179187697594108306677729915109982029501179236269920274140308094620031450040807533955303384419821923578974921719349453171677650741654380943528114461161923149043164411190727854162818417096987783731203284112012496487459234543919279332083893948776804532830117504666270643974625284016902577442301827929769034948235376465962692463582938115344232612547458053733751259690338782288215545222221661235402030986533316551170999919708021695645687265369120666440489997197833419691861665658127670069130753346378535242467466934429242626896524551458233105708827393969075119517136087662989678536920790189087249722027032596581821594782275090683572884873832056720972445283756525622404917772280966295377256700226677040426621025483628918384749839965915645472187216234653008134816072036439368683809761719903961782231727562741958799728555690779424366058076027092832079994490169560707360712461297108198517898827235786129177143623324823890452908290341736175698416160442281624664374612938295115004627162193465334462373212314726966142173830629995458849423768147265131609455896634909656579250356967541874099755543356306741880067235427377687685508324614603688924299150938145072116893836379711348957207060399623690396538416354171020858027063014509897421919524209784255324587922090998059300013885559328755076020908398782242969687367470862664017200638463107457594591031381348575811464533169210814038018206472309412682463599933436591097562568635066177241342120640903031304256755576938929994783709556956017390087326993282604413092843572428734414129808568632529192114844455144844274863231617239307210573403643897746615028806162802627611525743161309565620300495071606152361243507690274908682562424069771668655548637342345402796634749689744286502785589858406021282021823961632784117903278599346672135648225339946545126293131170327736447353213469512158957649546965149460219457975298083670711684054007332014331044889763225350131774135363643113091645710240357240124674010668396683665429277218922434202753207314845783892926825767504459943676698476888516277356215416194789892265588129209588340382449975059927951444748722652684347753743828914121380744690939074773628937642143911047835731874265252273158999964997758449990605627564723736343027547964188067595734676067124282701151374977796586900746509015605895562056971259574603528697172782355693880368106153884695595118749421279813062656020211194662113296616138104793853186085746011007755726120346923080444908049936245373157646717886994912335519626473973471751738223002997884836470473800739563123746486179318580964557538938084938393538534317498996629431354276735913249083218842620203211509057087618917463565811222396279489140926338513706553913112964345101895488569826808929416825609374182189091908352519858306844523159309340907472540268148815493948775580583121292673361743035354118818638924245957808313415041224381333422877602776070652950395306575103666815588227682063511680738900150177533122833795069767645740750845148364146523333585242933857942272759320611167797426290147591364080948374868820920330123650392558126101734059843660743367300291552385511195660117142347253945713084660097972976692480439564060189628032403598544828796591931271290532710861732041796603203501961551358754980619826108415877580955703553924871175579902463057221756537683092910740773671977350091613737158249247614414254461906881322467971267028802748907351268073637824295011251127682328822607920728783270146669316040775189968232517221427638807333673785950620655109795625029720758923104659572038832138688553303107140452085250685347100891358471854513323281808387000928619542574296971132246691298489545973519087129296587352089451070263047350565246925387035175015370348654088221730792949114706062800489908402055881408291807194400984577662243922331143066878385731362456718365410470254115365400097434153094086523776479823028942606898849238554258015375574084379714948183885962789596091625746337970485556046381281197327796011687589398928017272063111817852685575100988229875155621498015616101938825603674805085228359828125163398054955287511373098140131245035681774831229833484677027686349000756767490036957223528789880737624932121480469342174728420063140428754193521070976625936212855880146222767805210937594647745859965992071247041470404506154959056267797489524397979714756011982596833068359647762828677459727953744176169842742606262990548773950543387195636462136923560733910915527988747640047871713440482382554622506363633967554396558307644547258579690230527454594334317450649397604792909320299245783568706900260344073336832850615950427009736975964871090493770029442556677405732260946048733506924136816925539333076562027531118540583216398225465465279391550486269123941796402883244285424225838307848187762875649277827654583200254887255644378351854302303887890151064165630420872407707256863061740501379939125311384872260941888097476666295813404698039484463564442642270473566713805391695656242441931561457068675948894459056455564478269360322665260644584629241582979820663107750185396189938577624491593658285773862434742791897877055638601830723133286251662220947670071594107382407910135113021848461166383187018487371852697906151517089200297345498919177850809134388168889222302947133910445951719077480507566934157722691400200477075190515543401996737357428078380199106576166468616585163545316912218406654593507809799237281407112958371460392456479886802514612690325930874509172032515178761637201477250243528053283100696065681015733872993006229795358127904116385659092346164796176144673635703878261221970222444039669263223673113219739698710663403291947067738181067471876733165050071946785420107507079016060408349079522821866379518980052175779182909160827027054559123757242235901156511184279428556441295546163379475625426977251958487078117266297387740113186514253638733160108007123812684292094611253825760777974510537388319844056309365180766818031293552507954293239667443572242872265923994299147663721957037153015652472366240455273639059796667359606442301011967500450693956257529654321320510010877696924979827488925990052643113678919869454420520920034424461329465114093929132452304043943616561346022265989908494180724673453244861375094163458497701594096023710346941744365259761211498676244866944221423987623574455855988693072878359424869936192977872951930090830194362320785605591374099277927462384065112267684246655124882852355711895181137262381243247587883835940700598508634181909264992505601026193381994857228565234898322391108136913949370941398100005587086963860766086609563868017708928807551972482257189895657784659714301476282888883243907713085375968763948353841714473846872853024267267443701326565756647622304249046814701290378931738650428800299920830534328788269303243674341560541482957292351879965374097868847474954678252258590600929891672211745009661666762158153565912523893636012161340672928892017199746828120162054314928042465793390024261059733486163118774350923855953591488621691828593679998619999832797223001739887675198606282182184387937509107812149175869138704501772089525678485962233845775236362943009111255638314128727351944411073658191205221190444734550359751722054797012784824581607527807411919972105861816335418494426089498672819089160865900268966727256403934586157523270365235952387052218620701740992327309996464883644835370782403730594040238141356741251735957270669416515881467357319500543412503247008576556810829547649983146534324776664159592444716015878414990530876794466792731534712057226440161634933806517889426013405793749885728477954820557971838639041919577343525634176659782098715114568327647900700316143026870244202351008305689997838064037111541517441754478222374668687098082417518894568197476773839574401753709776593415536728000082267804031894195261546083208818553379263041116449798006337628830466775555460485066217540665554293100095166386546681781729900789429565336288291744406133096166022697651269365164811156550751658478119349938598847405589169328807242594309099055232822338482711013980859177076134205884992615641893948230222279711469461329448170120992593188434316994655594312558273057683867453177779486308009793086267642102877642554250342985304474497083745313515866407626731766739852574827478009684376058742980492336004357830640865524180971299167385145197330785298753698082443280812616557332516458163603033788261098697317301747158134484789703488069375803800911447866290672841857651197142475792652174787196688296788549868422851709799692738897589130041637490145965044381211244242700463195797567121866500668556269589132983771592311401076966535828093709957816205787852715514957950838619137382741958465897017739478913601894289543702690723694109829821184903497964576599665425487754644874750295343029132457782009405566071166831309577348454010115031213476953799422255311524438281974430470771033363563122735747803202154011578512759858600914718620761045937731726717364551952663319105138262184453174093850358916809650902489123054613880158409736747654415670963811958846708812465739252736101694081644608094308295359772754203855908449239984979267609236224224479665890336808868588338221294925222106271349987552799134873024241583189329395757665747542844984705851443980710331967590900200253923514846105649486889012248008351534485831822151992927269971095154545626891262314527101593438869121002279858722235704724952837864457781547738297260854097664210362849034807349254181534084963740206604049718430927050729047319758719689866228286422476549003836765652094494769210832459335758334486334193623565806375866084089645935503059705894615436832153653460281312019311528456042007107913105315021148259792412348053486179756133066875460039285225163768783295645826976812495295246413832585980871449082430308067212169323087526193085725357648749905501091016331524897002948682096616810636038967352025972824297788077082705934254118497421038134430545741901718903127816369052648218893257202387219099507609290826575782235924806956510418413547258445016442441393737738924293079205684376802599858831674966204438413294229403160641106474595985082245649802697827255150287440975506350912163095555194448925201372134110234309405599048291187181714246322459732352875276321719076544805210716131907765398561769268124358090387385698881411465229429528652916160607862387863562040935867704094272837252576298802174082188665804775886634212625097604426041801394958538790304608598144082733277979822387157747203413517930846492703560445899408660822889174365870986122347338413274802272498064989909207108176364324766704877983882110780271438645263387481164666192316745662294302042329446754566116978593270611817198839098624032179899428818608585125223752745470572946272632503236282435348100044549502369928645360557142053952618731579378145808448687058703816866999857862521013980671343911657492917394275107117861135713941798213062566854494063699362179403495421567936478248073478680756291384641546325459029390562985341252533673805185197791078665905287694414631704175471877818476127611391402899411691721077624163901372597729388371885727271896209564891352252676577701881517190579114816523018966114652982736504144717843740052208139216945831387525665828433659626487756988945190153597277630034573078441980680224021811006195574576075317365474046641838011407234115612927480986843336372368123872413392861320559320589568565990294083069154446051441506088882625802688352374250571199788697670502996643028659135849018748332518481622732481637836130853194867831977032098623769016000820411241893471164549520717141356150560079996633235985668696253064629890398614645787867900272298681371006609052284073734449050037416093340012914132287138548173542833371467338961435083072653607339363040605123345760797182527824643965287660039164773472466814904944585815247536981434458010782134290392053672990226513311791409699259247474113781531087516826308878506053020714143754102145978892038572670486707976264451564445178153713457488263253629138707029315691867197152101397017224580088326320541891158232735370136206480310654405014441554164523165914063093704041891139464900732481035030576131228597087188992178208222103279363853991905305347372238250863639144731458059808026429538096394517048931948127695279608499060282328872339460232321486170260961826319852729439995499773070381614346613909701690815994894285774935811987901315034931356942137176157205842056849091163569245336507203278919323493603294414028241322693851882965329414598270778550445837297449971594020954448188748729691434756919398710620508774614173060277434257860023503179343432339682633374449124733847956602887715170582071928805580658530729667497719635391397893667890422634982504069150971773465719516053253558442036254808055362696205461907384634828460396723642181038712180623449992397147506963570644252818847348515830132003444473290351543287918852942417084013514016950046279217972244782781260463963516385453532080385280395963551002111150704227129217143231348930551879694188226154891469433032288154844513519852498801686536041676542871328813512889654532995700849559351132332259501861653988996942544335872439499052275984812170363260857220881956887215025561276009901752478458143836173787252029331295797414328325111721366239043614387419885717516323081468678023361775583867988383999509225143636941683115750131214896277131052161781266787706976076823331136039522952348612025417987690796168525716607652091926381873960015077595913980331969541226664133099208654869752865306915976759629345250168815780954326097483504611605153538994959799924362897585875609212493374209608373385927864357607560479152493809853451050637861092514322436765968681986574168872153354030597056107657728714731710021073471232722469865817721373221685213891905268004172003504369910311625880513232341801606531549801332145310446623844127557228114546055137426768891909841362276485915824008523016932628664025451313846986850898446058726076705475125151144619577259522752191045582577555580439973620227586335610572822297911217144589441129626617863088746487950632305404075687708788682606765661782421281823727843501292965629186900352139116995682517688564049741441697943844050183602043074937088737263379445031662214696309316367719693930656673417163111579411689455613695246920602858395420226013787885409510184301342866803881420200582988230812956557969615743105737516841516507666215558554344394340315213210788970648799817536523220384322808465877952519202629430102569217196311963714679804991827517609987541091447716489848153125733615650345782538255314299882385308977367844851010804546418914625384072740477733552731254941515708313345873206801375198270670334458022127242972413160839205659651655637054494633465810746687345135498757947550266906879432794011111729305466005234802064691098154147487439032033143273040047561088383325003333943344311450903640597573900495451976197013752736497084985764614365449592329329922980902309373114040620609949849357546264643105900968716671425352519532049236403540448501044772855099574779674449956958321964776071047680758349886847183643167730051888578921417268649508253711358815460490554251962435293898670896689845703963786080665024029267953478642771173934029333645717413723118073157666838430090652546210218864392057702402935817631675468544867724516064391382362408205945070055298662419246382248276081842280670283243349083310507829299680895988073965137088474230196902820799547194814967929667349993937703338309126043427049528997527066305549992773845974879026467885201488937296429944313436248472807686422229613054160905531122551894173563610618256849154246360038127180319490828435404396425089779246584386645367266399180357582195585925711792997099512142879149271816376791950807640822210606133929592219730224033482430889426470294414584525723031896555572899226693225816452815457557395670601793216168497835820164848089028283023105631295504439565774462958445492167867101230865147316222679285841219730286847382465993016482283561709713951182422931168242905637346402585063373842043768781766584360599808576761350549145103469971068144462014178462347569320875956395354519544642713544710038924326180810782613510988140248704198849647574802042900311147577704360467601827252319397050551072755065793306428323944830751810494649706941479464573388998220088004262051289271331458707950810929621187031305216723647807930530864971425618188422326187391524906612170177287505994236803204047687153860753714794598101986672254522387564689414064700035787937005597273612785464107999175918711423821517352108339924256650612026144033177554675658162360333770752733899458396363848118254042920897714877404737905080801532131584223255805798922471813363488503663251613632055316188299049814731687403913174557882989701869277440237251897580138309360622031385692273981918206781332597683439433341448425459532106230188639640534923831275842220068880167382022091139115912941788214324862989561047172505209716081684504592729711644593410171938485512283088305009850147323852127533161669511538379998110379771888093962545268121999206933061078538629585852386686849033477298019197073657259021940385596840043607648295133721234699651136723347357765698326232117637848222683075562651343082693080152316888914007191512931509076339118519993579393620386038723422436845372313527966093834992451520009168476394400830500226745774468051904187211645324162314374553384447702951171992269309309994523701438305458936189779482479561515386799567371911126612623742485170614007442589475567895102124373989014764081245279486718429473533159774157060575727819233814698243747871292232437319594185140808208093082493759021374411075751277264555520977566348021756672768921442250388126052106908757790353571447369178258352505956334971293317604732162984096242288673125857897596987085769029910620317193632227131296558162646579340653783367504252911565649460576637041529980675838557727093559766992201133876721709193876343354328807052583361576255532488039274762855673890584659679139971387862561211258295358361349790100740949329693425933895029221218996708104106125999027184100554901984197242137279729400095803584015149649951581327261045567130957948078435109063057721214196166469338567049578495952300857942534747034097811282248197286108741929467385596647823384840602312503717581378520225273937658149781204801968658175059610389864965669324148340335905129642178364620909718843259961552415579925655430727886118826581727318363448141561864760362373147326284823835053750174506034746707372794871062504912648906161576608573741833597228270399890300859847283195717988944484510017370752284435265312512700867955654450577552428192639252938566739228437553322314990327436667712396169079079426278326377392836640832873737765760275582898426034379558345364199084996375909019208336526995580999822512914602131453585843081206803705644391138414063544021645812954578982513349971416815602298745387648605409333318650242259731631452781362330291126435885357281034179778064179846302246893309685326046137111549298660087759501382842601751630617610994167714866399979716646916672758030734018309041511494878671606364939694571910556692838678944762438688810861827698907465702681419430786867965728874121933865965596514806957328070036516994954712786715268404588189434883851630276561830219479132829606718173001432130732067243128522029522319832209663195813297780250826875186635688978714501416312883765407760525145625592353489450936354466980359916562448919507808852162760425909780551378349081426541302622042775767439103813331141550548201859582316069675563818004129988815088601033758994134863136562959785689477848711476580857009703998299679898015673920069837235398172953532291250222777189110619491800861088088349064936868522931156099448948416969175552629008468953026330513495253456537264762111437740928005827628465552762147899812533616967031622494351084311119178166704668760396546915920987614272270957177714853693595547118832772678151396499442783505218133824482809172882754081120421578804063508412978338569932355010795522731654791873592587174950207852945526805776343520896911115063158888176802404272020796605768443214258002810996128387464227779775589583708283680966894758845073833574504990000091218774408525437402776588742630618216123420224529086108892092980436512273616575024309872034298171816394343891931167096795936189787241196807818613002789202584043489337998505068167255870904407153737120992587647097325829502382991908706346656420056759442326785842229269205927780907554499097537325606529049757356785814520578689064729943043463267137154639123505609432983077678031013767613031017676967714591871255798401597199862822623107388421217742023353127216625491972695490103026819137540722199964571863540019722922856736609755630747405079979553498389857302054623529802706343249259936601191956403771250056266063668707459691660919589361560482899566223689294541412945969946527328405017300373187374799467120150749127196207133540561681412839877771415258739750595822734216684070978332411318490359508459015562096162340930891527333678055454276834939131659209296489605311887710699262323446913242788983799710060809663196092558612748967619476036370388102686893417057490230914448820360546324128019118563390828240861018996064225125342900774204442135979472846265089244692991324325016571475367218903998499053968368238256151781255435159792735320381413956921683440098027443927435878097595687210906724529213367303211161446328672903878220814918841327781888602717658397649643038521496242348146409427575687371231809182727168985476593486597943461505712945222474402050069619069060189657165952957462729305508984650722609078061488482686329004710618163423474508033502677016476211692880622447136140085192549168526719228058430741726937748942616431255235602285609970513835609970146244715173737584039230339394553748010786553438451481817102990953129506060465717277711885412607793712809836154741619639558495500672452011142798395860551544879108162160297741148414178238184752370813231673158763684031801061029819446297133430886896462929397945815080934986132184421603170230788059062492015595783004163137909661939514861791793894030334592642204777376100275118607194766717393260320414142377250795640561393542439483633777210511239058166058159077316294991647659378396803531275638591886490948491592816961051819533976431381327072096410522288178700374408571005115873264462748660126282441755785353774210893120394580554440396225314677931749786200880712462256305980233226556035667664831107230941830804915453362960377831964488330948501051046272349633776997329841732150716950944200992004666934266428978188174365927628949439050576685005941282558610886140131149083171656496479982285461711154470157196255431563819793695150479439441886941757669364631931351736344932063509101225054657415853986226686513348042183023533346403895881924559695996750843970037640834641443735008299799638367318596588435856110410831962018832014561567407348646358884596370101777080074117390678668008516218362939732536665058325169686034758741902209257991469481049290512744714231781943660783929509951185729308542894139712741437928647411495324179514594307774549318421770027536128790649230844915221792062686735877864041764801683292674187084967695726249138859407786225878217080725450891308149467034216731421851091295746581620058239619935628746433828036428424585783901001826223829283637775084072946635364759385932760505295392569013818631074323305321608106464788673423843916524594707862134247866721657734556971829429598492620641190042563752889856569857130378903288340771928703473143117707442572779522950844742671706486830927795595284749440114443708511219754923339627931579566046852799696587664280338979933514711096295140400320168237230286758611175299231455276770055245074808282755293900494542468607491136216182756143127407234671465701482026398449857621148581220315005398198026289410785184633614833155899110991378945000204593951386460333017168079896816621021578489355160337043731362053181639610852199071652254804467420775993864830707551744181690729974865933005816850440768468951249080728329958065987749245254497936599678264481893618823004960194883890579091058732928754382693105836645924215727200998002098926813690403738666154629738702922394296284096053259534034677668452419473547899821216383482512667899022113672664714051187301254800758531512798411182039011567857478128106714390178717151016885338313415264662702543959537322531078107556394438267181208662836541920559762513915898357077699076270019314855258730320084949040200897765866840351228576248568550251599107255683712171092781224861269341529038036326108515276190620705267828177291392790207867625155704016022691507607708904861622615526423247206359002059331875854403910616510591923119979165788220985287412311606698366307900412245556588579067806846423008458934671828482479336229911104074087262453372698876485907968699019536916124224852393334481798150239754995707830918850968409225401212809759866715118455390190142826837780677981248077624935887835848205486771285822362604962577076307122426435770816906041616300710569613997586950881989967099937889039741992065223065563818679733922373650958258945884129397846622988846763187920540850512243636098120969063103779135957507504367381504567824326434904082822281365040046119967683079233317841442982134356602499576443056666150731222175321783269222973227514801127181229020166859220695858679787976966780261992373378879189743838883029910673022499098952888071827274824814666234197508164110001224203261643488778242573547938417013759748520671428901617115552496642262476244423309284827115359233499997293268338062422957288469021710744239283677584113424500346142969709317980409730660930637743504401051842626727560073843834174303172225906667251035320527548127208768630696640658751988926961777666173650379405494852445397973050121205451390223937866662792026554632224501542001359218101134766829103314077809260862413472022929185056711774818685405210865467956074219963068211935709394871868244675798390797132057397257675601997181260647956759590930866991381885862527052215887541467006252582392549120070455001711416501348119618692304494810031803637499964459610747978457950061281525940892373308648855734340195277590535109192641655432557730137590502456382538725538642277235858226133197970649721792991528668550184313158778768250498521836003997550482313393778413162567484013953607601005806681671193502086492191558222638448227184130290459658553641463260904721830952325821409511863363629442360108069102314267286669143624052436236650878937303559600917592615275387166150726469395115480667594870956890686755730665791304736875780045123492066890792916466099759566171542617308818941772433215252832505473453457535812163091437050814021371437153780842081200986477493177498179136303486177894693190654871260967561452654563676959019331341684256320446794486605186770930857440103069263814390809108896087353112572371128302560292063836635755828602184494629894459059134512287891031075308866024062428851744401594434416542958343351221244192386002058009316961558338770646741585796400710260222656614843719860848705065953440139579173001198226367146024658789167432952354305502230752420954112907769144627905018194229596282307035456981866097186901517125982436216695659082673797053982345246766483098943077028224766141592773779913563224023819528503692820715753202360991865232201294129647040909442012472522422665035753743301088762408876392858555395145172915094678232052116427942192811420632973103709997422281894502857276034845436864783253911173075018448370921208781798969129284066169626631238501504389668011642479131168421796699042441362240143681673941605481272353370626461002233154275511950023730732251404234985110716320095246188498684073583268233934072539565976390728384351469382207068865922532534004124920171334767096155619581893510035110577610785960943546819384451431749702252128263346908929551817930495551712784583031778342778122963984913776816976179174958855594766081638677336991549717666133161724287720999841666586550942716294269349000310237060889337525120183611316918136118393017560009291521859664932950872153166588111316189844183386872479887928238184343665311285498138767816057956620095809997012974148713417161284117590191617533402385957699068521767383290547361459479345065766348638576970911116255369331138220004670127116815924967111463642086159091179059748408419727310597816934223698494312734135141037111304784352702865757384110007534588287254162399482595035540401926490551296884813284623721511537138162430954955759629417433353568007250970299614273217347168675929820165666321859839265057209527032398039779244979416091048487559398816521207743488622212692103915367855784519183142434347419848098165463074664915431916147310197546564750085478267706940004285172443493554518108048579291659830102856120060856591099964918746094654412250051672304599485763469296616968521013504737931211149146538908272150911873049251435768379077329471973270415555520256777443568537203734936538088517439038009402550077725631189203239605084520946668741644137419279134688854814105311419647057168525074647563380500757737845754618135828834544389180739110330871460476808693928417483247100550589303635368269760605774828966232633353010138343192483471640562389419049098901996012350477510669562558401081969215647087008359152887964143760257486745200214331382108664061034758171644359450704014274275895616621660377221120586984904172854610464815121018785324231073881968027140131605483063770682729189036886143792835128405361444472189039760893733766780233854244609391295249780781880545133093602872429407673113937216183177603803047844483130543724738221148585947782402453068357866466044869509149673882484779429787357191033118023554613305718486868895978705257014935486253296001061728597205067986470591507140348914341912484471509969622170653442045994008545425530590177228520136824167412184703846313986465912902941654972928597212293352466576910706321358257944687802465017822908797270584412138151741266560375760852142241418304032348724896569731970255714925065638083834804190754792427720430287004753919232553715489999119978087840495840141692786569263609757917207612820635567478041909479343969942571864239029959621085014326514437666779504439015842704323776184329495481452127992328038749853779317903249749656885265201793672855351877859719928686479856835673479656604859237964647454939738745073549135574139701768298984588590669894847929585427445073317913025215104501661787899756352873008420118236867555155276231847505511652897359056173749954143442216856566889946881548544401248497986722548123208431744281839188456759684241122537969600409217247572843154089038009780410264822294704829508169522742921659043930350795210964168438311571332300544406545807683762652938077542345282870069668049694818198179750329360266583307684276251619516538948094186303982186501323773970335359121847171189712910712784718607709312052699650346372213356306590489161902606488309329568217427524239508875109360536005861472363366034581287072036479957104642196752605998815856039360896553193943938851828555420229385778394170426341592903309268018060402944442252992543245889536335485254756339036046900540838377062723733275716277898344739190399764088330684013541671837439598732495117108739603779608029994036924174316831029833544787292448874128120976607213387009430380606590328930689893959574735546273154777722359038338510648704740771638952808139744519140917020465468152107265923874205797660774907489161926131875994115289402166373703734016117663301956329105945013223993557940345861497166474872106121673230160275330895380722237361329101609117311188004357753243324676102433121273678663942929030240168351153358214627794415355081154216982916148541556987281941556303528128253302474022743138918080699286769288585008589731325381494396145684832718090164682198845168227917294227016025220824152361001852360683085766088034001781354856812030850553514648857761515666987968815392551366367040871889427352724279639972460692509842966098468390344395782865058564583854097468179758476054372527979363988770242479892073957221312046959558764428876221106394106225634832155015160419244663539166268420323340806193264424210147868887434005317133415004592917850126513172393401995103948596347131141179276733048334674780829064112836849011767148840803717912126482982504385746073697341558066293861645046242378763124051010984656628095567837914020911765168397226695458053431340917113953852834943497111199596506912076125229978229658750687519809222003363605318399608094657976748747718340876022849905440454421896640065026997387056782175905973345609403745123552753360944517030888302411031085329936118106450731935790146393933838234540068764636080073867304669979587669131997294845001894095439596318055629220527415569075669583573521031911727469648799902051179455807305979800803553960630785750580350870791163411091714394664530051362754102217611450319732656917953010594489958192641607941784651460317266418513068278428617505810180850978130851170666273251366265688083013980566519197179487025872255940912616234160801651068974017834652371473160814459528886023215897168258607044270348713704586276703479610030550538065825870714433395931098484228994742145882829365183960261081213191681074482873952502218369114639686957387898586089773340239060700319429537542204783650879693184384720747949882608114787077769032429420865731288437859929066772424709932602165783487529630860093692797186260979887775503428427679656116119766834678123205527367935008192710016849960455051553989554408098958560566587821297971426017181963480697872719289013979768962623490778245712953103751817222811837384336925452737839679501500616973426028121958759957252052624691451817526078442066027760858721562051033563504407262987826187202571475086221280672834908078670995519075018880829520482476253039488353766420981926354251912923551284150803611194085352229799001357456790406629153592951371845889038705830068146794465851628200468308408784970541366964489530794611955245371811255991880468180985744494672691099324734604269354524946536962576554801504867276762180768519246460928778748003206233188038683283498100393993439874483356986596158834564199119313912495498679302206921665903610249057844942997310377262283157418735367272535176334182202272051996848617688202244685472702051134969639328396755195027191788974916041315569118081270546786095024562288627492988870112369596758780220548112423585565539874960427621861736169991201421934748949320790825776765545328047299291572289942047814416442207871521614393341598711313931357801123475688453650362233994283281693447998701873621299512038771591512251047180298130190007782809466273446810099077281729802925176777977990492603605273864264000641464645051985337490288535891467711904626642703723957471498229601243148518731006251331178385053960722799099690975734501831962757559591315370678720817319428014433469593596361677141683612425727018223362065954640582789748488330955605041620063139064698488293588043790311037159372982584709742206470306082646981223956520812290226176116950467377903822398099188138559498812237231991830187553951697804370043902784623022093141341791652025694961079740855321254752466746770758153814815142704996436434078075363811501315933382759542532622436444824038796394126827054891837910795845467267762651119274583074299956679026466021382799974002035242879448200345630512442625493778495748330863529094805042335155555771970202856840800861363948246056089084619384442267688439609046811754019869466831325013436032761024367461767002588160291151705990706510384488402282361959306483127034508514126288800832515538199666468019738838496912080482261718201411724849756266871778341185207096630265309374683802173563803850671258314162601990475861786867685196675732626562515465779040259761167877032509705532494455653480257832599092003673929998576591301313066099902040151877620396150075267632692552308237378677083309212372456159320288517545369229217614986820671369186884026159785161918723793042940842637607708768399132187915661775872898398191496879166007762994031852215695687008570343816082605960165222818686210855617064912745521235208699698923174892770710107853797773679206454864423166537547816267299595884270019623629750882305118337373035555812914641242048806692704730450164792811916881605131390567107295441007510020160733932173184032024878116115392072933152954485795713940818829656702214140130275404836645068496905219544270062215151861969534039424952392335234776868027098062606955327234785717023798988042613127997259991677087137556241502312689413824621237225304276845277286185879569184984460640085740974792088883085088828418304701342811715599268351004971139842330417516488382180692436957027160260718698424626798286642901667324657090400278523387930214016615120102210957996245309738016363666445812755094862375805974013515897795132537488154643217888475333023147162255201638906927476211369413808018522210711991583491991147178740148369342533801063519313522518306337250636453888231043037761516724263581120885223709691086019997972878738340450985926744210641976013559997009639521645610308856529644757836620603775057511962602808141777643283432825813306316825354216280236446603819149597141239054883069497379338277203100882196707313698756883581137939145753237482006529017904025455009072350383619526546563340219652311902723229009557771167357117270290529119533119808750924395205927809177343481998082815677351106123212355178481852231540835395208153541720330965047287788069115745187576449814677735900828859635586995598171408922209601274182444649350356032232918405297584137176514392171959161446866011830806914165615276662518229922444650335026362344088442939678442338687323586237103459804936580054331602309957948970832916969720225099820809352622995984181282633748668088661576944084736254843549883499190124888606438663696145654354517846311715488673821094355411919331864687042813962007962427254376526557814143504653581220886266110070088733278655451183824936677824932435000628000556823798499745638384399324488616521813120762158677962151561939177656114676259698462888181162550443137439616490739775887408827429783439990788350933659236613697095294142600279664319562580283949295932298153141400537335876385820560971254454649792964574358901171283571759662164851094830395128914382553642076992373392767041816243558440290172625701317697701883229514591721307726609456677546446548446858342795221232644525758286756698319393124327627187730764945187871670637559789326239056801369825219881461429573694949235820435489771590738219235803364338717285885094545184574490943990868328827610965387894583916379820313039803776790723404653776572812777584631663616024460394582256539326455689651630478246154505229372940184643755406630266898631590626150991745526021489910883871223871784812337268266785463349019534167137629649263577134538660436647320284900265435103288364242464900989064024931317525356743107453013870913357675249381506749326244595722082393147931177207274031403017596854184568595191922967325340920247323045979465362725656181797532626368461931918667655310491714563308703637174248411314060014423560803605097784059203054829227926755592455014515736859203407046273409584690786537596252523788488446646123294808719211953829174446410752585416716591783160661264500790007072068683422326833618992135992636587123086026161068019368601581419060812958202769373855136165328942636244167378060310511498244997279128878415826539105631293193592063961552230805865727898035648232015866488243909048004957856160766923575530682882417855630273428003951883193591909536351201531684991614450763044681376845456848631354369323070514828979234901247103405354605605720177892856878907251219084142698697458300980636626084694358089034145997064112448877619325507534766652315145324097195420715731287899389112978552683963821306248550099808532108937387291118588602141496987004904541894368990846269009204257614226589459916328592656021117545648420289458874901824807646226802993617001811705697933672427243384699417722446812620361353480483418246188545398652692522016512408243600582741048855370985635390409768917512056919839238675657159454530269738328814161644079835301078473005072047611010114911399110786356975797038699137752894211059691460209464829143501497257679886806545899276626806536038499628606367599649423308150298877804758155860986608654496893557518161948199052229705492578738085292664709530932749622935526128380313688194373790830295686116753067664060781263634393459900247142623242229581046613015902669920082277958546537722565269041631527852847409103051916564279098620289160074450583787176556075426955269856780240826261630365839217912521469179114203904201965488015887082737285191478262286668751409881342466111178751239335455662990133225710049163881320351010122348613972698341540799981145827886028527218721847092751737941971801618866889607825827888705914298776473023931541695097391930107364616911426993441019484657591656602285760878838905289997730573579904979856551544865317112363630455614334441960351967115750234156549679018496289778586811770246291616996355840890537908106539922099372363032456535129545418196571007456669941179921798208558237574443430555918669282477705798345873459246580437019958063013760330003885592778881760216284197191975701668131080578081027330026507008921588069235475421809367016432148691718059077053635225498089224818496871534269327232265239352726812733088907902258780890157284544237164654088431324636177045101310519685006565962233877408464964383106127415847660657575115912751816759220282975381003049739399463172616231323391412858265892601604158575496112677480504534482681016791184622677738469661003174691922201396519759114472321101569106107520960912916127037935204299041102314566032892404094989474888298390753797307802395965884663070621542741194378459987199803822640889031023137787371482468195013006617693526261628994641491162744967505062059690210603306103229199744520560551052057872867349795215474809772686845477203312220882700332686800478468095253916215668145379033846723391964604685621811582932573334762191641365281522718642767474226335085687495534248202011110600503746099777335705053120241159265681943387094819804000264235236825875108870005885223598700815685627103094053438910076767474503485734610279585453182677384033826396482470848489422801379530216673964989226267326918779434433570289469286327884321829689651515444974387464263874841347598442410583287827474257715045506758107949043669888725603521847075362960621703261526023089053509462493538330006333070931146569429399907730292755190141808541713100867553149315321075474688575039239019845068756788964448628535738230366229002581992048996994246847095468606313172432086655148913135324080333050982772060805329673756778405012719465988988237718256882361926894954187226307038252604025594735925572218291092867554295506029217537889949803517048512834243808201653102184020124931918534112185888140809316107014011647905160935981685403846796649396258260291982880686775769593426640174629943945455939092091562389078903845532040381158339810485888440732014546474764727062892527763370948730215029981145932153790857285853605998444090833258078557786560926633497594551444750676226519731197478446999230246825549235099132057561021407996845228183432726662935512182286505717782987036711812086371848313062103455379029766687105626866234226168417007793693794549383912638990441481152208110564284704361679512130070392835598537635253198121098595667163026326366768873262007628907321455146086322793194537206511360591440927909675918873906206914159270164154463601953579332871450404700820805445596770008572796508072403232398933042867978838754398794900104928485232335317167956526475739930631081761462279889409159993890971672627625035395678681641512574960424935570442906819843194681760177522110654455505045561998328150499344638018495409606081749149922111619330411397042021386200951918497501699188289484637125194773525684084483153023445468762399294045668816710764561449936498043022387283750664240880294756735230293750233545817785336278843911925435266944425955513453264805391124571502684016693486788512433158454903675192647634051688524117651657615179023333337088369894626530549386657748259737638231100156943444374360753000020078539588253476698622109509373429902555030281101363218199986271028320863143316953299771962752568997569162638087827240479045549852029598186391982961343084236941429987216829785298417479331248059679554020039513318375077131015378868529555065003083534165323655673305744196804829218201778825446763271551744344058696749426047870257837095564917182238409839726084966054722319092828889074874771037484586539896538618866972528376971019120356043256698866380176427321552692685249218720908996435851063816715844669328451598792933847245728328648869243625397379324439087578134327248337399640843896392524149221184233664821264093310497778808912753165666925924718594670444427545409146523390699738165636515049056563951802285149085033433457048005244992168437380999219278499719694999902440287607868140656082337134806222069665587992046202035093638012864861386852820928489380276701986641336788844720944822691850477649846006615618388422051830547134997208927187666565434102798143104898575520263992485511723505510125629147936857222770012540487600087638451148710109264711172304318851140361205245267592890637000934944340749615095411715307451016704519099209033988649584511140662501097288388427611953240189787487878309279827820498460042883170193153123899462199789633132834962672900933734986179823264956474249816717728124623571791526263384240387012543927818725152954141338646946258999565746493692273817066393249089892098226463313256192495116839086671182089130427672026852594421641225648981316229882603042589305227802302315392056170557373332134193081951736088551880150455250425083210775837158659191915585433052186549724344026273454322773380612611627519040460385266137632747550609207375781351009596527327010942700830335289319375584370775827678918182944109842539060807449760505403414688073531285089849257985063484059743506681169859906053974434826982585195892219921894331016369067943380565347951607268366252825330345058612280338120635170581624514919383463403628442086754435810814720034201452466485876367984306764810090467727791094414041385851613278274030246671403982387281649275961757529552992413614254808460837540359547714299573216490253565696046034585432025261682228673525282373210451371165874537786248242441096369005169040527617398493646524608046833674253316672252732334938214478495753611986240045721405155715281602462298476566860565389084306066897930422682018476277273101266714951459581252007168115672409682068808884118117640232370304402018641860561762704190950766137933124134545219513579955201396491668553686730255380970266825234744380477574923151731486990754029099714863677066394989828962492615142771336809047656628892263506090464685059690902676359783317459161784745230332381390896073137223840101363131206488762375409251469912767074925580025469207628303316476861950211029716346351467605844735193395706024341404054025800816566625147780405520635421441749946468122777524974555056078643999850129051581201533780083635464803157020604907058590995813648326255468055926675676913704448342180749683658162157753978200004419514479586691762843005208069754239937141392761329054986360465678118575746381234713961392857604672722330734730970113938075850140922916181262037391130887119425687682346872360725723688191000788711854608093683768408811726437936233927253420851489189967513041659532845694411538360137577312225284142272322626555453790043546639407755633119114088112483393640958633208801938494422196792155292537328327087998907016919261726863903240280904922941876989039044251963119190417411582411831326188449622835803976944032258612399589428723998870954659875783054682578954881440624721744965669109049855785461252215481964441395695199739059491861508506502423591576628119910243068848050190242575687747740620027526702482038749256860582305469159489622772594010950212176468807462192191970835984757282928500920843354251401880788316633498745844415762814748310951270807064653822183898043035968652558453908945247754228792763909029547040070536851859630030126302628301914670016452212216560705283113320822410280268543160373957728281804894584391095150943977922218895232259564023128745969157400141094302722533571437916818763905708712294867012953471458792904610257851481684592478122450273715028599704082554533700642904169916596895662757259755420480725109602284203624029700565227177607688428672178830361804846843007673517791304090461770219070890880943881910765144789871312765080827453982046093419244084754309382773752664152769236423559035364617986964474518075305943033972810267423126381580771072986432162814320401253953760226950534164572797149215759988418990786131865575628180152150246490109378003519705873751384905137087091935853881667985785997431444014586911110561498361886012523027417231971569510191694995909594920693678482478886954242884821729852242493058146190344798716160055490663481845682781952583820347603664927892826247974397573497698391968545144507277573213736366772206569142349256616013371237267363643529026231436178487044791428618502298924091990795731015973830135680798075568529400511902036204359931072878385665995082442722326524463879707498360977866610285943556709920185615609002408615261639739057171538600166082012624223350954941136404764554781194444502574289717481763883621169795996544570233295497046509175274053008287865894971936423468176275038164397841159290066301914467726559947101927747640983475612584598563851228390152292385303167332459200516046426904829067752643263981606564227515437794581698480204736415140683446078973858400949566808195614399279239452035034801199951913166779416244220340432492317243352643460414208201211097212351222762605961810256627277194368775521661838118442744482390733089675662833338085269911097426903947408681721510358032706758016164663251790263616125591917306607732738562660383220423457569700067143027043325607927233350778781518737952265042364121648294243604669418264581569243006528712572970778124515929509549188608162602600156101213289525089897123961467709529006305139063765050644080263450147145265776497528839946324610972090367483724516261856112211279919744142677160113971115071423386202196237466412285359842448687252141164623074778761495095066685536414047433529372929985722314152548883602683387447410912959543526762759465123383588301834678730904952155297362981675321983753501198928530291720793814559665777915774662763900785708231166453677586206454711452799634476505218310606143220394170863760992383753041637461662126903906542148639066073762901243818689590687241078769703304855968932178535787528983832560637014309179693561016524851634599927936223097277154513970482325344582457668870217109033632306157207729584865765565020794342590350460565399028240128086185575192863962265405137425931328501615388457275951079067746993116981749222695634053926790593362199644758808707524537165025713283671443026812403070020390545987629392901349890124230436324487412900046080898678824230666289277414366566028418132836123837537506646454045238242141325248105971259670923037412243179987596260125813680094888525286264057083860441897297179161443208879139924286687103133733697289322854092065103300373855702744110807226622853534487831822428614703670649922868731837817351292018053304338156277431508939666489930760962389179697232826271665168105720003139214875061606014997685799466623869223815490383023063016255097666438717867660866306611023563040121945399534200694776474949314536135293456163039047116886621529094561689297181029288114492148618268189815355637408037174308821389445067621941156424428925724966103500537322383169038063401324639420661210506631846153548244078461918706930903489100682687434820450884478386758110921488076265414411135669042924630653608229572547063920838601705005460483483058386044075001297528438505248633939469045030437640166983036095517803998885206791056989980901525742512582841528346043373653165009355700773533115857075976601996231869155296538237972469013106947269911573516492988257062219434895223589465665798915872332814013169184418772310069478230402591249840018007192624446957783032803940710067875061052552563619486644978060509900541954211166030937926063600169422644240958049233596978847162006522941387656646408329285643727599334147931919069774440162947395285086648554545916754848646500663982152079152348619288476649742173529677691873470360324434564389107458547985120061842377588666263834948050637399239155058955644774334733050918877740531354106379212565450186723216102134818268846288295362126997991265130340549407539697682441405357110103992623624637792847469643714088331582475614216908786362481957228740973733981524097902263657808817840534285219064219204100865521897784966602253910083308229261222480907183088291027693989183598539181919496162329745541036364164325332321272309147017460179249089636949036026263206502488107733848899101231020947976315581983261130624944664103241836590089963997920527402529605566607846235161088997018440550258307784225604985571617703879067051222424510483772828171174840658033387208090133343107045924811986368161150999006991568602607943808035772578103619249217708299001485533424569120932619018353061088504243173705130381478254755963753485620189172969470890371770716208281087348999371258152356392560347456318034457227205087632041626579984417971410255656428714302157470102628244647817332853829073173038300063446743566619453194852891918654630584553110516795360876606638966757730483566793150162646527195858724739547734475764530576508406247725245550393119418418423715956274314632758124934969521836140218519316070022621103546612650901392365652002124416790700017721643012918785442685679691273550436709294284831913847267154303629944649782036901445881086315102789338566667294100315077044939442822380304898981955748476953799046101678849784247306543652215711477417182981522049409076724213164173065145313043315586191393861961135610049229633240245846601473336347980482844818727521130613576074817454193962224431559171244529388668190779070088741203890475333079122080847903997196152914301774004651027015489173625165142326157689119652039195438982336128029644155102822064368266729299443695515280558586532384782864142166373452586934882372145797659558718275477018563335614082490462600184764325045233448856061789311341995267212730022698794891445151299428793542659827161943256372043366153326720355135446561807357388083343235503703197312832396612886059036199546169086068465862813193486034540003843545940487734968618650384548997684070292627404757322633791155031305251916509633065876754304139469915226926401571088639897160210658876732284595555915830457751882645582779566782571963068819100804537504460413763222538745298965218310856343427296751093307745328429831687499566554845468064359282297464772439125248945962329131587338485245920318546595213046516556493868957265390492300533631920838638200613026461074868878648073863492980934592002571247474344432415577593419262640847063071633688584121148141478515651003284952885991677215307941117781090422870724426030152632865303714981361329505766420918110359459003877371387332378315890777094128340530545932475783297092703211165492288474108534537759786880651988145021222301054301322748092673966739676600836518717045919947223510202090722780630106105883989867642180090945497939493821716278460326397478189972149150245521056684247217775441591653932907451087957500419901407988673931851861692396635455264512144989983535910392649464706644556458971820570165634765041684103025049196903775076824100273301867259751973280624560343367669697617269827500144795944926605301306565814210992728008535303972666589057876831722925233168155827760986212775094749498694952896656568250386475919500599584668291531723967212071180658428817809969518653689062517228215676719810374203310763906056990189381676296817682786578763070249584642410730385001461130328609015410018854444600236975894170717587958813347155224626281419454702581202242384459907641709996664781505021415609752178634283459594776574473574418276075277854957804114642289686601322217509846989172657606298987817050640204889789724243997892577369993965113771952751071953171389027511696303082751306156415817858912600424857553746419437056988157783426854799507711802094981871513810987434410418688214516834355442084820770460469447111037268296202225905463621037073844021633534325511885561121793099093188620046699718554408550134776157129816645463855818689062017623709614866615422965849624523600153287934170470422704133530924849214577247166949676520976626328649077400245922746575093096331179673388321518706638579171976150844058364632862437403833055833265276108070787076883825060545812907477774679765846209675729211167919115944192172405372264736410809245560544152112497115249263378746774632235538450824487508636571198792739820167167557850080943575666090420465824026822609167224595714372924236685511556674801883500430421732394435847549513082209474300805557319204118124339593532375341884420663062306492454511286983952988388768925048363225068151371967534376423235559919776593226266098441532414779684559610280879653134460578544066365430445078536026702399441726754601496246867766860923397364788672114863196830730510139468086755586602426699315159337293541858275042457294363067544038685008604951196389642096387169831531421269096709139543865016879197803202285723351384362946597278761683066460009013556677123603368454825426286303485495940235987708655730331210650626563983008743531471565302699566875172488507899160407127380827344883879259939870453551191749972625889224787571676610745588952075447119328663556290761279644184459051288607302288718800292514370408377713500317007868422295464916412602914806716775614072284229674731175224644908131680641957685714380017995948902493979799747899873538340804050648587555362746559476843361279750861096098452945244429012835436638638616497297054032366398080998889571144417347807455557932930040726945949603454859392182954537081218427518185081940013039629959298151376910417340278084625598594361601278855801012277072318577730798082504380286782364251173515759123133003835005329275737928679818638364910988022922719314127793599001662469598205789595928557427022170000246206730088883092363671558357329148400806945246719274103460362585202329282294371289316334040822766708006850424166757232680006300102958923527769428239820342341080044110112616966920813995403006372907767693281329821952247341512580765375605197769232826337805972937076388052245831081314491829099748773862665710641170616657129476484468530858542739816099135449035770569578066930266360295816822408674910675796876212535071272373885268592723626735304192880692898627918610484882393079509922631890503565278943949359816206572085464234780204999276724837567595313795336063802643660635128058449039947063031676683616915680292391880111311496565228616286532199843260547632533550009564121027339299788983514368614892639216755160253987917080183555477304483147886198292537576239386213075625263817803276962078579101580429357733411943298121996688760750219247067153282602713276088888610375580659715480395354375110710810698996642247252357557828147886248907113065373028415119924608880986428968475711483940848136372740347917960861042670824257564476694739163206746816154041841612253756091837712887963651412222915143583314292221182477537243644382209840881484521899889572734676663289611617788550226352381175276646406730177834044599795108735912508979009789340049259632130878741671951722547932500407084632165982479560539515988890271606809825852071014780182445346621699082184516131146399626613716951681555424167478650122362029715773919018503411049083424041182157284508415765578225255765621757616806809752056317641125230200172727835243525794984997481821403213183126204768007366143670231087868060898722734916816031405109820374452654842165246391850047584885567608685212863665556727932545584072568430437636117963890182360659386545876723924847875235404141625320575874936950981077923213043283998279911276789068443951274077523305576405621309550909818760184669712788416033903102081756848109286464331155548696610819834352971882324748440449984847463086433992243100163520877158212103041699915890983796673561333091149452483661281253420105151773928386070108037091148404246694216957063597170551923056390135225481465761941602568836939239048111205374999212292269721141912525249879487744112704586012576610480598582667439341710376332865667416245521681653908859112654196798868468302454815522674185444875969117201329762029794335361830877782461729277694735280290383142244053313108653443740262678668920309245523505063184169740177658066445884934161633544747024481260692344513973776699970601929042963654438731862862941024762599909194456098015782768825791870051573905155964928578137338280021203831452793791855360110334404779913191725442754537780768758460961499581655374271636547630551305660179020875435395940588242834681026725704140337578094857026287742906887161289947939517658112607075040509776686037848997657268547878127431734852831504624052978453063776321436841167278421074140295348841950479322933990409954191631292792342005693813327569059850650872320015317113036197631941771419750773192539388802961233989663528302894712746348779368952178471116421936370946972222345057287986030575430777544797430189715406081319086301407279491852490199819015856076746086662667968227397847549129720149309329657175309489567682683756179077383931985131555863599841109272112870619730620175317045836242375245373402059965298746330905793613157801827931904419663609376410380136448001153769108989364895620487569867546692850562208596587731192885380363944532871419969835345041440283778483151428418168365373277362678483882319039747787264209513157323899203027953799758439140069664327614795172750631883919161206355272373265157728789046821458503396849487798313894784485241237656333036720392720093145515762428108999151790176630448286482677447783065878124454606691109365754583273918464374171423100965863532494613799121677361440008617517756202302093609937764059758570240199397175410401882066696938549257173192905535218474333508916536849315734979786693357783587418078035468390646505640383969490471226957323823906476986759507042921817374182636097244659500769641792258685643910202125009477813846034818305344629206557537457506749892593595931310025811186142366211587029672881972606374424323883040776971408987922939731192814966951901436415836749798380213469482348108671163730130987919528311162063292146163921404081674802050076566263977526744482408297845598960599855386157734226679256307816488770250650579529592604798414825666874397125048090963115568093042196891326109135684381574516823134054403831312033623815036883070088908659605347277713691856087817797443965911753214458261946122139009186732216469010498846408529417934851516959683781609111328644704605063176241091595998217962533286591996355929851329402036505210702369688257592828563542859042932935441328081672407265582758772745663615285878867135807599377221216264355291278567518129949570028474680404707660603792177117232009555903455061352752052472302546314794311043383035952199832175192906868090736942893556773892690442786178777334604038427136480874856058469919897919336976603820720746872142952675095066548527019669785851208362639938554112774122862385899896557261146021918986649834599844998614315677912515216094703049150821609029596843103200763299699163178611488821141431181111853436670242370512863843111473191165411203041486160744941057093135663296176596557412572699518494912326772368425153952331074402348421438143239311384871740659780057504903065410821141512364963282531010052175910089737590743212227167777291495884411913242370514080995843563022410728861420691290407736566358297453215280486151385809582795636964317745957052193487816172130104846000121186517705563037983361317830012026500659935922721069268956947788434258892142244410159537249690842327027302187926919209959943143500995759421307267417420078442667045280546559922599345605358690507743485259740237505768842429803532944678996748133891653681701523335916431244798264712567245709911146733312055656822543553479379987452272614514798315129612431874925569114499307814850299280317510414566478224572670196277976529047241212778121163110072637470052480536286273773603678710188472989885881596261234062129260480537617866203046346014869671420022132050038823497675365519909556750701604997419117890898123561411580225051154176061791891632603926709400637100016895839844799825143292235879779974628172497781105533951321350515207553589744696572348710880216289730596524985703256054611284530665231241262839680369268934555314207603193353537781429568929359678793482835702258473788477880698200223217854317520690615259660300605045247342922543749141502454528106227618761239043056228938349023549209102884117411612448510843766996808789647541384440055580550523378857429372464123356328681648205629285386514098198328745418432140519572636297523259082203008086112342811486637763418655619157229696990837569380663363215208281914892335803837863417239410071795719393050820419301564113033710474449053816716001008445922389443237339212757357155887408421310339091263011316740853877330478573351532542513258216851614771433346551174636644704414373604170090759807184624348447223912070415244697125452432937314670966455239041762852688891699089453749887977726263618666134968037661151991288915081522985702430823031178752592823646037947481441340753403940905025458797820894626305494334163677054994889324966820911114406173670363163773459320667738649425468878561873646866661576673314888233754082924597312650067459011140353986444727430071701432375890440938522904179527695144114262245108656872335280628557244958853176910163236294761405944532536630669690949457600181454980049301093624105506806474900439473537244370984439148869646976314250393495905451724423510133296813298735061824660731683738471040037723368073188220430699437450753260206443464688019483671708471485705846637824001491103105500892630379719331991289003639825693197142722067024814304304314446158811003713593248114730754153036529652238637889091113069076488131843354781093853807001956262255858512249777046604241479674870117224786871731775892806024428325469578418685238195702677178627403573149045401847147180099655597607985279072766753951776958785218788601102565540311780765621108584922705910469039786048875411355688486856387594017882492399418108618654569976602046115096846088702225520295116214483312042760576869771194780092652158857211263873027545667985368615572660313805572801781675850014315150012230761188900038651031264749178547546018889359234784512301500857936936346540657337280434531031203580534195003501905033699363187147686677611355174344017091010231054647193291595920707624794115824283017978192956629823063251638704576385585366967539792039305021541813311490031199480698536919317108522051131815851800286558249955915131380566768606042275271154316524443739758465969976328110535540014407777046760888126827269544076881718475807092688236354657938310797295369137673304506102599625002309311888958338402891763137981150665906827307388728606816939981409952206344667887050224944024710175250084476999105885174954299860617171653619198750857689958240773017224174267044011544914032982184374736797789214907339577220412507336659848485290611415478983882049618791253382787519114414869300095812089543823637428498300763009597344809329550819982624404916888468567473470142833749876010983583413594421974225620935121770600056884713263343312208529226156866098976428383792111711154762344631409882384265153398656889891912243230949880970713609555289019370828655308921026513916680918565474719269833538630322756254962476658065975029484744250304693280678612921394613747603342192226414989832197437105277415729065352094059939631011010917473369715111883521672378524273968643158700228888134072113305286440797359573628764935002456981275071693053599252197729559923532938719914613922121128878679326849700539386205024609273717855102077081201967193616652874099611668350236982909480902125228483764624190356835805717581510274367213908137496564325905976132859173671166543142246453096299488090362133047923298034463303873770281459126758405589422163053757310999602505757945468094310134555243413091691810640547134811716129486325850781157640898441058552128930242057381533703609902369784523799415512614584282333914011567920120064275650889109965717577926005711457944624936385799098230191412308630958785683648881202890851862171504155349932050217918209090348107254813770761955433303289820763827034218060334430670292613722630478841077923816785122743258158835103983566271635217405926805427683038491122664828662830620720497944171687410188826528426952114522319596302418949427968583848915817682272251633916083734318440561913800865496921550810410316204713278877731789300026540170935085332968461602744735487398443307428009481703912082149575835784859704146700467577396277119814371442864016657451710412092532965775104668165212208868977619563876990667330242335149212212868911804730038220512545304054933319849660667924107753050647875491123914589188885022637724753121131225645193222838251241724783197899880421560131007463127251711600605241294542274797811416980607705214329796045369968581088751145854195539384662962578076471195042531462111180561455177634319382855895715442920980112592827131042125190201402589746651032907454171862412200415054035625044750455038691878104327839422509597223289671087665746952821066087124938452520959488690094623721924799207194237525038893805272201416511869634716211116067081881542644792561736557834177713841088068102813856382628211200599446270844035210696237597424490996601552191439193305599403467708183454372698056228332633857597980417259478046774799041145634382305456008133300138232072124861202186192362031833736815664992830805327330982966063333397011358908648761109719125637302115733722207662178946304015291489443960210514849861075296089335805914796777432605958374417712697498967327254805806122941580148714444054560713584143089685886063135888218852242637483860605476592023210524755360019209027492638011094469418682846792277662666491407784027207406460786632825183073623860124276729113394722025891236259531325850144331285322801957601178709662744301348104996310561019551490210179386492627861570767756965702525157127432016161269253465243996632667940761549061554212565258502127056381758286012390575239473690333449100242031480024818379031665600156435785114514855395617815090945635250202818143306570421641690605176106661108008535726465890386148276799610492289462092820236778772070977694252675730090351923993774767389608960155099845163694477166815997816432244374543973907759398367835308061994978381473280084671469875572178988558230841508997531672759133645455265776247348797860911047360938108750362908862043450498890518482058713469191463485339731213524866677865021344509130611060907187810534933706802135788046481280370873057849215355326198388462275194285608148336100424683505827336616951121209091690865539249918567038461989482837196748039854994303094982168512592880654058998800765202399033033193267873704605005139948668271718677865112937748142132813353653246033832575072811468320678957315596757140197999930032514909657314570546151211003857754488837858422611267720661341964068572757445250242659917986568702271402849285023725130252668514280409488557651453053876645233812872886835651804680031349575404809001670678759159554998309749100669758135078486618941417724263263416516738290435522518933413865210698552400389466136169162598682167506035532347611765907427676682760592034347377479633939285585840256844855920536546033576619847034303827749587347620499939054616029026151645592846810005404893724579945149853373020980656617885125557737505745857131943914438952475822001244565541979007179823401555538452184263213703289037823672081485147765204212765287900226033814590541221832837645822264310122560014886673472168525048612928162590429028876315746948048374454649699171497583162213190668982072243382363930791865248701370414286363900224877338987074362452429398245018433959621614723152134574521238292725654752657763491213707873567094490620195616774859296485890261227963819294673471560966181163560509464012224033786592660682053165435681856732259262058287454427653793738270682829087499580446314970884173047116491991005074701335605804938828686110318166142112314710242514120727673211364605143227300119516328082786896633860006785196577109175503243283338442896921832945723480027968287733528188394678173238211012391725613706689445420539298768789361377484544202846857397687170460697830960922083908322382774924703425105458324039630515173827583522502221606127920933607782756857907262844868815757032292396009380539600038262966247165854441033529074474098786142911346798425087117514963651203576505342411315293830049866223790385267928026453621787171964904549384926998216579108802166802099696192532715478965539146823021937619513157291883736743944136256480523412220690138427778307751459752422648109728412880761165831188328111680564687389865960123030880544508950732902161622760141832253465911303857148680791181933084325737790929249507299074203836987113261054387781443663810442642003274640011887893388384176714022810214271279257635221763180693606179385420650926911641507314702340956220896167328357376810632040526251034153421733968399795013161622750678984498704033638006770708409799463082001419608375572900011456986140767332849075138458910584938663804017776871492192921378674894105875641424952076666527363919569075990896366085871524463718327610943248246190420835203734398118631448596015203831048858137470480386435182977665723520132976318417924828832643381876849610563104640589627605285548646809568143269589098354203962924496446340902558949661218641103354086665776102988070499747177339668948407733408141203230571600399117047381270222316537523219316410161244536120441145548615626666193385521849159326026562749559667409968969632143399978396600581449499691887795906643701939565476508465878541786625144814586368587757881389917847725273399086555200170619555081976977109757469190111817727896150959762343245442073126878475233100024790349269768639879849603552427462641008094270066977694046650255402708203417885043390392857278905715742398058012832361044563285985983898349889035531784350605724929575110685354082430096951220191900130968865817043875308097542070340846925658236915802212677516875199617241511116291501447228593631593874307582893714288383715251961021208744660430277445417248870560580086263526769736928464846383050865325592971151676733398308352688991583041158578407134114140150110513106946064111099196721681717090270247695298190492233911141781853013412381002787478530982265307486165620227817419931012098452913563676234135158692726140221346165848487492453496157920842349578035541198578110066553074368293770727494669313432171431000628187159368996155424807753229919400518353640489718422514117983312303398781357171764618568643549743992220515952225703918302867454695090567937927873721395459841037136279003484029120414922785329022806307684105753057670208609364427212027142770360609504689310080842794386323209324447372813978665504003123512713474873904692771043954735347602265836709387198902910043069348726894044491002796211128010288039491365949742326542444593762930704463034473404000253672731500788450092576007216245954163394178745511579297534142239593889937117612219145070736943941930923714009897857926728079441395134910436877547080913871074162493811421119003716584569772639937970836063941202409075652439088302501947153895304888454260375575648640643460289556192212954531930304905855270329996291893802033968401858048184292736496323452046606743799118218823250600540670187857650787566268227849664696419242844234562521092183251338036391909264702734710919221083701152905203774721084657939174085020652744555348822901073183184624752616966564208450533965325269323471850780041652131105966501214830108666147057140223602648865390247330436908060556504756618757461383968602106291605920339063159253291517720039613577510783480165188445027440469698067867338892004345850566608594240927253745743716488842952250205286773621280151146189213578794733251619953582734065777173055681474568127660434090573561249541852084624362585550427696138814904492064839090173283722996526647654504744721701387300334939845156154089215420907495772664781583555489340779430264079710715086939382854323529942189924718040844445681005970907123010912017024725416987083690743562698430000471620178621755366890180702111690710468775781775584729427454949604144252382525552765214554393951444598977737404840204917100332532076026591749580379834965994599876776670185992730824966369205138877996240347513460359215649410064187203647776065971293784791777486302980350451836981288032936708594156963677360038931134143384003254695474206478373854935321695043900898099466858321246788323299722445823488994166965325766852142468602128071115138677731158140365154387045056631849116013092487161732820776033663432974002187024888478248673413791152687661454265641241806389567146458111753710114805127802779028310595591876508726997527087804625722159760571718915962703483604682678557817137460579391920862195126375437453421974880857475227998631183865180941848196757449817417881552156319135467901384356288501292558231898964893061034565510513908194855296024199563231617745932385838245285583668251295206000633072586761321342391995521581086492664886862788233872544030307645549197773624160574872343053674018023448440907574440813004364587879427443993787081441831344711892140878834980912916547379102473529984932110484518448289968333831756448615925642537527033426061407323921179892179305086699457800010948117619748276616338869165788860183066053267564277721967088518145074232631193689027833690600082351910905876940803014327834029047189180263497913128382507197704666479372126550818226981194659057397468902067886794538754587839908718437088758066558356818970876473076987623296562304690027062180667789397760911545142691378907204778664878975670013813085862692903420064727301959877115234417490692549526775499603629027736576742626975078318827626191305494229153698695281649704758263735703673561300611553808259328484089412125242416400612875351885824181611544141618190848666990078072569620420157079888410224950955292322985905036049815756800598485684160489981095009335098975647030330448065109090029131601521266643706086285871116733807232158821075360807759531170529386690808771780959847444690232951446755253656614928296893992752044603902916295525085852526125452968823736869443811435189343815795306942696800308895085994876714782389008126524025696430506408169458188868724588579700355334712048179999256421508844677003633585194739256441027116840519108059332786282432189128844692840474273167561593157600039214069763833072294341094528913925499495068210299192707025810467632845429461933914950371190480407316955833995661554705361430788472309688771482522662675754968735601434522764663209857715198965497910942100409592046138126226078705388310217810133185684564041802171244903169604591246985997526396454222550515795535429000507080148374544041814479404761771760674210083540680324933087941998943607250886998303466706491228692537376536557695095498417428783074801961153590765137200270664474453544126786857884452044859381025522845147193895005402757523995452617336434392468017254067125036046019910610143805213654807216469803093038427056609386946682874659045035132043643345363069201576330150663545435119025450346490806651541317040352305851574451835017467560583917287680368751262624592361439871065144331005056930957626887061518738873206797497177354131606958396597309170572786852287208728113914461808922529634847489401963415648913911602777370257351274680127430352687465905121895383183119815232274903551324330070775814048801486113246018282635594391140929948248104669002620952037747057461102687404683468951020622718100382247854617937410904348155517026062178943033203166736653512187769880176047485004446775947535392742033904938346418931802503197835850346775657113023861228816689822471848230906951610005374531895167070288375830759868418951025538027295360768148923584614126041953867365868937698834281782626113884159809504548077474892802940538533353611517745182390009203361997060937559049965487046927724993125563676857411749193243372218842317320569271357123871657747789911865821243144678692923856800609046403989398627148589464937564776175323335620538969963088053103681196689286691234459264996503471636126721644439958773973770567155677595456344719886559499238334182733700191082344567568462871243443673063285112051968553789733184022220464041474273019329275958728283259850209603820747735653609586241292501197662385927856229116153792294511560629936635204411384090172604824594724231556858736298312112596815653375311871362549984958242309645828132657012808469441497332778713280415240733819612571602228202219399895327005269205176964136213884044535919914308099758005762259636067985573541411433238373794424420194951075064496209359415289629031846174915320694221004360421311748274780813892001586860410736122814887421208012186018533269000208789440912294787908374567305302115660425531516674558361331998085996432483785679255076510633164964330349791441309177141134856468610667210924502143207028412951974314651427986764592267924361577963739757187764264004784564703234665641676490588205061792032765116127002176821226840491411951975488178186555871412953425526607842127775092971425846681762968700346275304618012908210702112199738198707663996052038257552095097925875991059092843537156597464780463509041942906247076695727183448794342645154677261697663034582083786136947190904319565307805579126429978937535295853394210883647299412635239324359123022295702338501772176069086277628013524315551535452183505207290482855703717288204439623521456889584809514451640079088218047159775846559708044883172702099292610122027505299134068988381331038620769204468581865588970456421349774406465772487137895700657729001654121306448769617864322995173442185540450245660818897711186869844949825538422401138496757176793753520049682558947295940934950865394085944220792591559850185490187483411458237442313726518121806118043705022489495824748226529174122535907804302085571293202286358858181829913064166614502656294170801983400237597398162307326169230352614107229330544885538571948574059248904323676485941765957340388444348985104096241393903582888442710127190282774311566041286779715174252530750337342619664821550917139316073723973143989392908190007653178258178765849606937309260987731999767144298291052858541185040354359370609675438840900136550295470541310107283792694019223448565924504520620357634524788691417087929878572082287250439071062548089759574568475499122939947877236470515344132128540229378941883392579540766417116679935079267146955477687601017786445627301018588185731693708174294956291078719349565363298919372576911961519874040863576834924833179818085548238948937563470313842313924881440432569627634167224263109292953235820418732150643695809298452770599360664891153612688504181632528574619813046804805770069126634963899814381006898184096737034288047710500731016803497776137873779368507333819417298967476282143296489946837460583633457637524843417189902238283649096961362193153263292682346680703540817904195193655129040370990787690423706467324659886636659934339511900001017341559768423753530225176067623137712057348822977619901453522978877601845695047927387946117708898315655153810738583721747926873894923554554240241752154862803028289206784663213849709224751230344178931774807411445693527920782740868973775210808404356992353860798538178901796014880695389526320889256295292765468941794614398950114705909729159219033405646795784433783119175230880787732589068824395997124672137355285108734552879598657210078000447231308626102342594205135114741532530556692877004678130199222675304753797417401236828932798407719502898502460941272828807676578903197813080574340664220710647443215534360205936384139051340578710845262047769295739593792543743107736172875932406116589112705676114204753147071869951920027803844467404943452613463994757223186144653955765520848044343516041627323344043347257684868745511703789198989819497561070873745966051840793753056383407974882415007230610614949770000550853755989582409238521686182790862854520881684480002694598813047264541182446280672083776669200180045974765408815903548250868674871815084727945968804829691650305286165252376689466796617846230593075580424554723070196727746219241871183505721528573398545017765564149587582275739352972968992948681022325344816848068849470313127620804310039344977378063191627297744679787598721187401212709328686368715319541207826933109591583557166147379033331231582866472359138578998363157354226546150522757236235006973758900373590502895033266533213010588988737021710148457825116778667117363631826396885828943629808226426225625586863213438081435111025620879558172088210229488894140573525758803310611704396709720624001889690952776637900606217048361348241812719358272665646543937049755902330462606457709800648411889646683725004464223630400801775828941586349737076684813473883023660530778131041654678880961985943978626452167856684645753883044950273564729139772509072550316811228701077134301836530330892155108893805277147337728566736589885175967374174410528722574624661306487976569877277198819619153903818718665329068482402432788541116189863545232113105888836731763950707054085203133211314875830659924693338737642634886034849268873762405702488681358349189809605990230568977827062331062694892876556038311206704017696023364295947107163603172557946309681138963157062635815630701679282203304580086387091741086946446050229124532317732825405468360189555126467002046048953331288247476467401371491728408618788078498728159680777471069007618771523000022269539879454398960047424866992041515663281781419882519486582598705959388987391821989256043055037331818775028441342368550638477210069973202785503707552431437402604887246821817875233020313436393291323921300441909255241295449118191628013058371927665573444780274466689996050217459614213618277406261358458960557414457555262641479145295597376326824749374116758202016968791601212990232238747280422447496452483134115723386120278695087416062679535242482900190056153715021310022458914133158517738056826291529167970457204231452779249903853547399458455271071499349403751593367667702682697064761996944145004835317739951669031165008087424973164410113925587336183046002772475411185568759770129628972595390924794061211499165595831022798165903779557740572242015759553665571506721855014357382283138215057324881530378282211684396213021061319083078983791995203000361216465762217007615295171969015114989769144374158933372570713890701626344073622065312384038335878610506401384871436119084452691776286901622213955618568772041559942743648896536252135949223435786824692724904900704123090264826163194106505356894431559551324936118335207279135692392033252446446378590555968281479564746698233254240923923055339756722973030031187766342737621785208233882488831742880920150028575391276125521272226307683251879351902865994779083658705075788668384555877964260278896728692320327014938166181278744216339078016330310475834129832145782697941385259259201948662465369739805041087122799183515303808603616525902675085287847089460282033087331767415044321379317506953827368882585735541115416035842386775176108326313913237730814114918782500775042783479566368934309219392720760720196704888786179682844999180791404385912781719695737411743814978158160242934107564209323539412778245601435006655915074582091080482149361682037325962788186477464331191631520151615107553195981669141082771140637202608922742230205473769350166551323080946814884703179479718798402462316347237883300233305473610192892255462281099421136359540853759003171364047227507173189537042483552109742673835623569478548717594754531209205346619641159422163598052467934841006780348724788285128169667634406335826437243797549313544789162936103289742640023833387128010530814366632747951754175759010860463288681629547308343335913394851456718279058492687292485591176018336890808539239071184822467031263788117315071693554799994930123282243406605494094142039708016826116547821162550322051987975830936257577246852638069805160946223158212809154872655129759843101841732914346017261555897723741301336145033382550653635621077233101163211430125374944427196095028634687201515849277447371611167130926852682049784156980313013299816382372940758950743955890221708982693148414062205667421178838503436795476254780552255556949041594250193962821726737532414648788292064855511818859772934616204882647351083277901997625062311919979615763121037215477068767301257826704403231327349244015209150969134967427430232767746059337274278141240670351852392314758236227219531234962426963903716708075716894559740057832121629182253805476536794183007199665296499293130301394089625449859005195471564311038517010298405487023363900655036575667015479356343975988144476884738945580853163534023758709830422680392274095380957985809069845912311081964306049496698061944420985390013406019958917162404558089245919129013078474632666089522688830118276271236106793009713591034408010956668980672154464697646179845881692790412643049111652143820287428524219701284061664910425312262026124073731869576549741276808821501247125013207276096982366305083527108344249895860181037886933497504182332168150509413689884234395189713660682548548379253017646749420232363943535528344604436009849492911803546762192059504465557955074777675052372385994860202870428789540943509633370933939224746132060124897891751711771870912738286459416820572458942596409325848078303276183265148064315349161365954728266280787210377958903481606096081321390949010113092090034722126408967390309802773401778443551984171204748023290974003928680152154835106356534104364546517467518589757429095124061740455729913078498667872355993006230205979360743508932187099464953685706186151747104151806494385868519041479575539428540601974713388290627820244715154441850802878434283090458949953809779298238209161837560647220917679401692092642041334061522194286747051391517766339917003839067439080687783921848332228695897623361446128549356140093134142980353445096290746788662120623401913200467204387218825797619356027663190390980305117551741334407552299653879878748386117179540488551890334670225023976433062223266596891133433719861703631547633925519852282652533606396722949062768154711982314366435781543034538031462031436236232651326372191619030842909693011997239333495411445372330911905395331442380378715960430332107362923917047543573558381059280505954587091506602415049631477144413500938242183594631790927044711220246375772323258657030408775912469896534026911690450805232085954569100190935664503722940000389949294883028909220239301985263354518054360459846298043240414171582211691997653571612923577321135360142430825416191361972546173023966648292676411352653283345195950531319989845539857484211880141942470090659608342610089782937469508327684567336439401145450460207341462384791519324721422599288828837532939048717193212069006498718658696839384483288837150513936307109136404210018812849971206419291187377179195056670103432525023138857967890829707661959367892593304379938606196349549709246125240514561817603155317446351381513853260338105600049503513188429474872377681773475348296825181591307060303832696528897055685921938938480897345074516018638372639500563900716913215241881796213635887455612142567994710739334201693255878058873914488060086585274804964291884213061566811199313736767315846280801426364648584027821871990467301046658612673691313561616694733953105468396045280250131736431812081940172450839527933807207917352230857755928096559421981395219724090930571534322371690884800023548232058015708947070711228806729645805560898348168597121315147859546840228484446994802917405432728511285879984799174079710664010950085575870701785315423203938080681691061395737789038814060710103072821019097118240638238161587227621790387992948748837078076027512601665679972631839838141622562394283888465436148575941066473392942546054008676449726352674808028566693483664266696251659126635997095700142874349727639259566838088277841394310049751978036079197016390203813889269505016373626574692136448989390132284118672500756457753867726377592548286509786746134664278535492775563656528679430352964500533691933103607353036737334915608122570207600060929805162898287824456582635737263632950942940761561664513310643137350698975834510036825969040125251414486428303029850416276053181973989412201178907781680073786096178647860854416548665687064595693616537537900951975631402266433822181303851508566502173987919536829807782557538958950226245564137072096215113249925305390539404244275682403811923882075199135478201503538676680650532727215037852091039753885949740932604958622890106125911560896063797055311226652551737536277580068420987488294110541611445019213677063000050066260819547865503195703162248748425505376720163200760978266109630067253349087930944172425851438231453446484536299278640296671370518579271450754077011170638715939969865751251319104555787098677779097255167825598564953629407943998935099254532145894885015263531115902971341693426173811739720868556732119176850480515477278324597342147810242001551967184990895206968118408132344649023049520916183671875650222112300614317074519405442407447655606351656196004493984720147193014160655480777078102460762030592731375168969341292146673371433843566597447577656546891347635350247601610271148525330638278256306135552005434207775218699368809039764838893921518820207851678246385941009737462599610703666752930233528891603347151977298527790858068371298458843087617700661240304186141153635174654020096476850754074522022643973189149897854907151466672262611939732716595460064475227150189365950889325843947549793488709591042106357290550574992341734824275316202057703890581601285530885404450633431207991453334507714795722510416409450211443249445125906498897013353855917958503051338372978565989493336236849596616811990594457132143599928226222122697313328908148093065910661220838981647979249684354936996117125276710270298834211279876703265365429307322277496268832051267136147555200167210484202009952680326723714563325560502376566159354513740145421873692392451810176950938656729274483492956099038107750645960814756348068347129856623260617499741599516339264934166783799553170694793744316096354589946258375469040445311386969991982098260755460834802835010448930298032400321560510482173945021067086861146800035395439144088221631887126571153607031035193597149845602524540091978038544238808339399118738206302128027468188296120493835504578944581095598778871482331000358720163354949718951146030068376372227002745507594314425944323699736109923285379956382359473672503675247324683470222431203749611684015699055609452543402152972142727586467655822324878567894193854243444169531690707053629069630020276355888054397985765209795563568018004603112923525157166640295104287990855628935017454076552650650958904810047576547356894477963495295682950029472053746873879512336579805936079284250374969810015901511778535251360147020769133968654607003968437992940008738766059480360720732544745002716589028817214881372222497779990207368769753330122462058312393265344238760483554339025039510794502056084466212283968662815174222777977840376796090102594572212274861838376356995974352355796787677165443144246418305131559260073353797299409314933260552731270293930778601317473266791883846842242476586842251905595306090159151866274684139161939005581189390878577968990212272220549221142637509511817851662768836901435806282787206598713906105922152235577325276724680673832006248488475114590591190848094176048543084878954721291731439763848734604827741174914824157025991234348068442453828572101263687339961784655918111592514874318250321142791788104516026849857556284875179023721987738432567737554977479622013317307692573090529020221255963367420256218820353240157517221555107161491650049130263768766124736648393604720894833621232079083511507555953302092547930602729442783544410398142079760313078656010345940948800235828171059737407766763764304695973948257364719535245952727211098489992327704707158158872308225064187180421665936883021952272216864384018735387474267478109776108566182304163837872333339580452397259555103217719434400613504216108714653712255289665701883116699184546989879275441369132361151006800680113652119986737830450783436344216419642362049511016604612475025370547325044148800551839584412637779652447002392222255461549789711250000646791602198402025625321114639829286588750034861173294163502920933090252428477594924539584572897506330369302183159537288942159688249364476250422939498254177267223079371953967275543992108694601034610740564824796573696854777262727327873115007355303529162397001794477378345027114425151542080198577276160911175699037886919782401866117098179907769857032209412299883420239987763126251845478599223151545333258854172341954876509707726795000117182635118282187032111218732141148274086409991334663256665692955595041212607433448147333655573379747211764738680058785110073253381543946512944802765409846049745854154710759308588959123858665521361595938899840836723247273027146150213112885400197168069248549834730429034763221427522523255898377103401394390064881195667403878227092154028326506545701806368841679037088603923393014264389193308109730699117287266638338295708642631530169912132114415415394548583896523922025639702600660675579084367982940210463593022080506790883653583323085085269145959726628691740043582044588512684673825714811657128354839374802098506140090766640325451119166194305808047194762231778508566275559899590154083182229725799411136552377073188735348057474609954901173397083434754024321168585036604703447727076264485359192394822244611409422880653208886978435422607574575008706077116166061439861509538049896639660033216445014389668640904172129511307225588895389009952317431073962401901950636638527094562707876121101846498066170938497812229927456333551078839890000483750384509269541703077589500155440890143507643544647100310964870065108265336517810606651233278935347323503523884737077577433018594822243426903116974388752988470746179156649173217208451471149212688388530750256329647851277271846712020131506286480361424482978561009450275314634667003465785544333799608746514487946370003398285346357069576964270683976794877173753555242461268121044036674063022226947508309527839016736639813252479277814461314993457965433444817193788323033914732380048451619155169406721617490075723473408856645816192304815894163176267153582620661610153862199198336545559387990561019163670499114452916650581718301701215984546541487447962665207018020353020334175350395535458113554240180565983309075315530255725100663922991180272746875050735420877983236920397083208136921391696736388623252042263021730077954968259259013770859590466833074680300588262396330791670374512613831284429524341863068130548437821037171372390000260022889125889933337798984548698764778692410954515204363393407033574055564453478893105059012714236530125242690715668932404901171273703996769056982115372627669465168894133716604635338738482281553460151425470944056250268194251159166367740943250273298270219244133581136960860157774508458046975951079030004808800247131851976944202078527907909059020619095041700597980972429392327838618402556952425038981567196192368185465323520467044871148605057304766486995696824220370023090595603727528113020230527960323874130784833698456406281189227021025056106468098103147865044552345099516533223701170496531445177438881387818076447354903035664856329419708621495551302313287935692064679105601581588149414558760248975315232479893147276205022279672379060836955847014734775197885208940519554472970668180028237424150713946818856471044293415571249555185690361718068606151801990520809033624086798374135223344935746582833282426577171127203732073527627110749046763028903046458858793027019844645487370200644145435737402154983922694632586852052718638217926204850013716573939121572521069678855308148530409126441299277081124488074149535236612767061737755447115204107567674826079385605905337268889274514238890908471021366630944141055169901575185301012800659262385461852284996187568105358518526311456772933468751782447171660877464693037502384650697768620785272657186585743695382010285716214052116235369931554447969316090685284082765513373532927419647293391884742130273634568023701045297846314035100970227952501892734230420095589934637656463625501338112892651969208124489220711293051271481234798478249912602141925005742985145098143376361646909401916481970019758129772760780685626124527029751474064769027516621379006933735617210931291751846230092124383819983763532326109339201095859983198596443495235763929321089286543974419196991853903270387632864193339512617970966632509286255876205939884572216317097813031403631333284101946564459877707180819791277725146547656972111156751752013788218878263840895047533221222897595315847347346563071366819144299596513219615257570574450568885711257583130529549468051209281551142621190572786157904104769705654085535790955551324848705101639609358007125411097157309821631451041794694762381638197027621865707196950856347903115661700001970396138171887977333859210669857407910633281726247321450769136904074799057178852701199483911079050479383411908112662420067237611933515462063758922674158733319113170706758456628951731207139511947090652352939470717128859149076520348787897497260064498460586477339527186636396437670027169354157431681761564614811667350634604618388827935854971526001962599186427873001134583463097903411853962558178013283380244063066233268525469651475836858639137541253930931056624293265333167115509605060512857799884201744534802422877331416315117677129251762421004536937446683867775873515006220087255779817775364948641292726541549243988921100787659353745113412947364751916992395240687046375891101973246373451442397188586341799611436204304832987377870375485330245320136794563698168233460483533276803397909192375091418940158280161280835454127924206227824284132100809148149024680038391155779712842959920432074017134104608969345173320228059508159641051962408897160680273123431355027442371374161696532067114990443035769142260100735707847702450335092523330749599109603877716471322736141904350931719313556144735679003724634762295679931142922793425804357845670727908150181819633461463532187377199156530628663785264333040828873465606708893963362964031116071952755619404729898241315505419666508976654914658332301292001442484363476647202430742461045687430323889475584132040654689190517261139859944874635259215545348539594911000668391745690922174480961293272828779053938564603789762329813230936391651138702681674371025475905229895386072205075272621782619153913199776629344396963628205704657126393549737816088169254318264052426768605983610477115738359613256965667900188310061928440932039157435354377080196251468845110089144383401838166398611898758793146081344317945810291103837199862147620424325972524593097065118143763456445790133091446186428909851245500238220020254563866962808600414431711862932531086815906027734545560156831313108610721265222181134891765443370991381137090850094704613076810193000641260762622802859522329178611403126697865741798609495349815179519745452659561078810185869507922946405614258675825315725042843808876814310667762993106505071360858958210551498427340348607709970375918102991314109532334236816172906101513037856379942122957337746689915599994468625104326939613408264963324897293051638296185145688067964450675401607300331421979712569719141211725425471861948385297331035365177133897329876939451421254811705109630230748221211186440324724982167159210176183598942457038265746755592081869526740255970532608429212583641222168883891893200015217129619086067214180009579233331917613655413217681529229166773236348788973091665578585894719444774275803120587692998122199953874169629954086075090723364230147468518243691944779731874494684964765038602201270858614697227549413970382206421201275180239057490752017014765930347455654925984427869559963315994381925311576933463732694858494128539077826615574960609764770254992542325765922584942966296472175349642939513592723829675461003847602074047374071374853260837856993736693609396336282246357928641423711591109456807664305927653245115198463443041751983825230926499094667512985427054768413519501209932809322647210147648689322776957795473202768299745870484102159196934404904938670413751990610078671920881429310482232580860643953364063944856769554343203138798810957061494844602958027032452729928379649540054549193331359386212304120551858537435779414126047130564069391537491236472953791766005678995792684485855506873207528529648190130203661567679097650042619000270838658996469309178989295702185834479136462845002065932751111390105645012597519269752195194638373871200429771543341381195411772909261446345142215437466598876751964013902385836023702714991170472632539011355001869559467025589350484758444135376846663952228482927421604315553166258102157331696627768723097964231146153582968107080411875765225486334898837079988511499106820196491586016720804483065506118955262760363262903736817627719402373588943190219901521910199369916546821720700856158617582551518398225730381257825500120568523829220885088385370488432775952033607460051604905122422882668107304957577460644149027939528657555594177598623515611892997302865110165353500163153919643379016395212457304445619774492754714505910326482890593364306755880184465578431309469029598992071042739375516881923570002249142881716907164186485536951561830213585387204306880517995336581326762998412191847418211179179095187844203150834598092244972343081078935477246139675943012215603857564951326067077145768923161111749270036545347569382934116477347850552125405422597255373300381170043870930780995380058080455937623606087232157607925157474895953844562124702925342098253408989734413892121349989695021188053714252940922854362160308581409660869055339972910040316419621175713327545224135843334662670708097226379585449956343041468701491983371356277491154570672169519172251210926771016881368655622201770224966264472679448789650693102860322286692852975769026935766794991965207405012236515546998804644094786350818814378545413546617794751750154664679846585996656331762902758634545736881150201697797940328368587343942900342486161019917067333454634600067927692682582085463314321980320705797249341278863270288770585977523177068021238541872344606737558311499594829243666795389201997386740632755969295722531500318613585491547028243571639151850905731801789130862921429904983974237992084606819964245542081972327716303181208271339156967381801634009904160563288225458737797709573092710316811158576444398340061872627846693858990706553389583336039438805452020441045118519310117572301912969818995779811328692093528290207702985455787442973941219791530210812526023523674485853486204003820446866069811953197799148321252341976662455951921984767833916879885285583171767010398738895841184413312908624816017594621023229043068942529299996193818749835443726540581730417915161585789507145464949093898162761648116994542303906756589945187561096526526599802571056521996934818791670108600322795322855265927293449678219825629544940036750368107300105906984335297524419131956198627563117722841511690135884224872229795298192177047941258429648748378999772548892515445290149516447483309573190885078255809000525690040935925060075995683489570714425535038757208968866728551496917284682745506406334425133039034143739758272658440410906664094751510388256245040323139230861691397870110790795335315470480993868459391269233352879940104485932966309239832180069749489934343023431493668419016104571326921604064854611754660476162348552572129936612920862037116166071774447123779460955435373054545385969987276598234551177426700108678490358535420628251083621599478173475965500474637499920406417314735620865119688742518707409450123488351635297981951737330750601598387613248354270780539652750181776802279736576422202177435178771052800564820861909991359234225456130952699641549991770492169062651305486206901124369810139816269230598926802519081072320454287568154638907934360377947406159643513099293917647995650654498959899371034641929403496380734280823112908385882035810854528472719324006777719284206929768825357630237924824243317131099045240945282351285012035281346424852361589983641000060739042374385090468470391686967175570143413272284930905607732692991529282032730723547710154337364866620386873350487796991125952551631038654066821522495028520490169459095062465933742528567016285090401880537864629084706801664911171638557177603708086779335858487796194156370773527243511236127710005389916851239911840255737700919190030226470387138688095457585556621049450503755813016112003989842653010969590129686497837179725732986332583584042346800344508394364043120241293604516947293113296061426291151534574576053072837430860351753622419965135955012399291565967765393030640736764632103666901307649775133598510200122453367902093723326906159712295690918858336678732352982736956326783801711640260514856010522124727437061061698885454811336074494135974550090681418740103003997805966324872923179745356312513407586180223686868453126943499138986754223694817280979856413613121117688762734894509586190097396028740622094043889432300963455976767449448723717247709347903118505102813044864387264051196089340895577036446097442704369425883264562757943778197538283182027436592793375328727011121128181905390191523117372379122128902404653080555961713020349253879048788330238687771450822462216787856288059887385561744160883464654680332799930297868279372081349342777474409967956250777732785213052899256974323506834415845151949137651035329849735364651703421455715435621106061050525710022101156545525379790703654846459560013291085731151299223973789091492726652863227287702136084762823017717031686790075996896091839920378448337511851285434182372544694153679588377131810532131256339728247138948434107777145509732871063825930772662463153098274795934463406340519794928220991886289510564474941892307745415621252324195720859883862560519568283132663332586925609643506633437062738964353019318369163128553736618001933812523278174997494515396596960242813053885301902343317346421995150151475736649542862715075166384964923115813425104892958525686525009569215315827800654222067873646333288118861434978319412987280359392213550362995924487342493139903349819023487792385565039439960565746131659554933543626056414020344580180692048774429118226082621175448756056863935843905966043639021077285493094102855552521123570033977312503190484276175052357091660135894901602570691958583364708779010173223903251826975650375418002989079170079458295555775084420514018033072161802744630961542274739120042497951270876641926689438894102954789028291234042571318566444911501216910150690377338880058919541815951982159564492230550933806884449844317952180283705064344831399190162329827318841367001681898067042343134009487627306534305886492378073948157674020267483361738378633773611098258443996394744539353264778054490996024638732383599372196334511629080477264922692282140562176609606764704241095892049282385373447941995374926030650892687743793359593240449874598233324510392162397973937110049104970554059276782395512940899248884588789875419213529897409169397239910479912198826138022174275376526221349066628265131354194154962989188830198898246533490233261215604648289407207999841141720661524289943691073036040573052266709339191975706332127192817619095390537323040287288680321852506491035478249796278565814766786530102607972163725918927952977833208626005167235741355287559843120277188249882622102283982661937467458820345294854356556998508225249365813999566635531790836475975517557286142418202696563396210904463948888223404091167884532798240461012130676743395418284114324353335912134338556918505029348733151686664153422189034004284649122555849394827948168103954615505571524179117415398529871595541768443147000892078261245620502622206663949954493938285720928458058351909191306860343432791070830508735284227557095643056460989489394693606879065785476657241455650386473514185715659499737848113322010524762574903222608915048697025902189283225197519564238988288639952548928977376438059104328400047002015488742229287637776463854388151445980333842815335260408553493585900717122609229704341708913253132807990791494990768384948450906859854170442289842080365231430982724969879188350852276947094694265818487872405109047986108801363624264740228397433722476743093545650436805958196738323468716675407442507595928446781986537836012802149906722810900825301028341492263996808711830042901442704166018270917914332868689018651686626841412984259408041904421650524295762801169195251883586582499080703655889410055558558243395918090200207252723622132796416525589807878596834360347228736965511935810631718747315617007219216361525145156559404181870521083963553479739692051122176072410481176619206442610978880053525536036945150280196626978572857266448466214575363076123125459265188793245266542753818209594034927630583829517347986330524619429951648229425217173294384846697293566852060700178025998560636334560351040803778452005617619694265701209771726543721741220174214694852890399293608533707389397712247232938058722363179492667779702052803748062566373139703426476896861112721542897627366955707317008233933811268577278925396545615685177065678019680788831995344749939513536443419219759278351764880892675690317224429016675442574203220014682064077452629395831329472518861682396287194364307049771963909840171974420721837974044549896072313173564363372875822077510932962671447105325344875909727450079524083189068939143169438944794889325209538247939961536180781825416005743918084120806839930697130925453141857819160161927008205792277661939273675019166411394231571794542927224797669924404863002166033773989312561722473275003740353416578952116858254341766696983049373898479141567385701851789423026392255437382162963693761274364760587580125547137920376440834227700417068500723098406838929747412451041085963941951684549836544420947603079451125458989455335050646729036587682900060190472098138931770043891310228003622731549178456633358485189441943849988980305862541974685949050970819430625615784030286360370317335797610395583134439250896225653817835704667242782345015056796084387843809081801194226875048935752486209348239861582914536466695481244494518417124668540769551473675899445368743245127654693739946716985164067380720203786073259083890496954058053103244091515480725499300055423156176187480580115726283405425817517620943212380847476004479441776786170809190121103971779027701729586031508105691999329076473933035635001211549611065211337956902892057083250169623847478960199976837080027655767463464438507718589719260130518342975677660720954654339304359081808062789598944269853597602606756163495243158891304058340217746931860472658649617117453931640958583963707175940280501047806392106750894330825220414394627992612997838040104991299878765012305523133823439954595221022270202848043504015149839871032125725934060351350574109858957080556968090378169403627713102408849397988216269856864953055873190634222830801938785859984721571882102009740210162573859996359821682119213650638183212088196817021953475747999613249106575087960041712648774775036427648576439042706606691044684565664890130608883766899062942172332219889545772812856938393954170068281410802611048458101910125668655791031663464116786575124824560761168532698593260724157309443238023159205911867989699706255760961702701614967370281254478913833681366418094009110315319642134686658940884055802520876747825001653404602472780724801225568473390866972238173943755565630852430362291845737857134752588564897089025073282316714031027805684717158388200535282531482992373770206618238393401036055539243533367542831773183896272305003728509759093559213998907805833353148513081684577986770763637924753939346138800865738032243944382107731320858288209755415054559015904765923659571387037352484111415642002287688762235060921015576788956811308561685200065638458813719599518603027739622753553035188618723662110723443140142900109938620221199796740359865939019592884865148961601875863233491594641708550998425270792102330037095418030074983321759983116778615936506071648981463568201108338306794253194623495107733390706246972789258513507967836496759442533510064422888723632439285716377573201574713035300577147544059856166663370461397414250542257926589293997711849280247830462344991238317462869864268963157953496798181472422119679421285384489398760552696647607079646089621758467595607237746897731035863906486302159520483858897878511752563653375823699792472365209231917043037629645109995381129243774676020687770229088425934382207666124851512995571008108850869897684706936754372653426206710937979769740598671663647586332125826410592109111954925475603993291734702992765736317800621022096985452668809558552139689943461969462921313185548477138108559572906700710030902239119247335455488994514304816536552603668550947739742478976772476132831027682473146301645350230405539930419358399786639381062539590343414932275740513521240007768376734981849563526000472959951517222074473955385901871010811638962673148770821837393351107634152886776839434956871204265981802077705320540563450407884085673215481862680679908856986430878828115144985487766213646830308754073488790234808347286492399652103517306240550675139721734484831102955379750920522362940460555836886619420358417086311223900716938270118863570752853847625489418970839559767609989837964711661306506143973246361231835274881576237422983709923730728481400322081349109205663788292819295329425676564973127922603408605711400756565089033344634027341158941502835418602894922073356646417566523255485569219488841231893899200415392699676108970071825003410448120766093922307194111800342232532211434726305772391656235723792266553399754344394034178057624097581640413811674864009632888347064667760441722056248237179479230690507949298033957987376944301337003922824465864980260242858895719274209793273029351365274637348137376318278822273133566141781284548057733088243462151674114059018936724273190118132405476045183046302796121642569760254711069793741506250958605169191037766028291209458351305098194266253353644421664224561385646585485948197345342796277986637427982794469285859686925870840988985315519884755586932682139544559004931643161780659278854835521699440251691553828391094305978712916865887095879488286880912802248088254518834431029567651338824199505849082532479843723490978687668955513704175728716846406138613622155087921095431637535225590711631237870962132507403190989663324534214862053249224116766168919985607896517525323514323403769480666361457821517233340152672771635459226197982865893567525163642044271858660858098034648430772986993468214532866792695975152194809376892992352745951888529796323107545975299766330665813583975113107217708675527495584393739147875903608134107779412150801544474533598964068101951098763505823320324267943042400038876920378290170058768145424465406008587603543408420988182855485280700638340735989136818081532622281105821376891724369655205697796151153621112705633937610669748747819145192768954757915743914680145847547424597326747894478639659738204934117835323852082855802187370494375713876557950236257751861667481410150766050198394218683880376662013848694078186540787616859813807833985976476457975353901494909930083457185480564007733710317643306413831650101784659365102088198919816973896003155938760356623798038551797064886364743681918337927819436368034576543155716733212018843972401883811156497982824850286401799989394770432351834888219705436664471567394839360021200177983599806762336509916622416937551418611637344500404991559820122469695501887912507254097772837312858528059261942567880646473549905909561939003298761691289021521023418719730061659809764253217849503307843798853437672024736648928438037062295833826619958565934192482230938023465183833648284399796058231071928839365926113202101430823372973349899744548926130688443462836341060925698048637892865544525175799186388798553733002471514492568148958199130676008097530261573916708150540760081540804951033591345495192272735294254750688652578993624589596401233472609226628669941720730122036554250249301879152979746576115021083354439358202872658418004702330789169580058620421124118014164831211539440625943880170600125022130529994899929583516429143438657352900081587225339346256565796654023746978114993169658037030581049420606295893706093429551799398693044293586154540797784759984530191914594318289191816798590664402216505429171397241885522779046246774216860872626188179655054872014173744871745300587089069906032419976458255371200333638682800373568278564847065140914680928848045161973485883069652358832520262748310828597310297561271032764106802878356797890849135886257062456981433904961965062837045086773077349901581544635417990346114620222481574892907513142600520736248138353149684201444143467236882167117895676183746436476892574650308766165155462781701387796810243656642754786157288082315947215497658921537833938328358249230739601455328828756260730459361043990246124082109843630518936666257108564382004012734534855194104684910906954847383210904279199062817778592814178071720510785952279521479851148933980737557012814248532303926451618250700661560712938150973868616404802903970713086499951457479332720420226002979390504176867707270517185272372664419800907684016353912113890977275115056579588828345724295173002448976672815473255971952711264743160417775167781899644528932315422308506842595970743540991494131359787582993195442131035217647507118269178716943180684712387439432559446382081165351769511675917229809264068974642398679327536372120335122870245618191209277682832998529500875165760144187633566964950424526890732283034468790212562069658907660257857357357819714236943881147830189915533233721218094857076822723768165978342234533551977433391882984017475100159045610718376726321785301428047958633120086946245266446247941279714919095129017085398675671420001603796134645473382131162543731402080712189340105828976573023531726967978599407452525830194032873169046975227150918376684645854195166614918474215886953682651798554158915693815515979939743358323136652808477475525043911367970965792716923707812777712481950691857536285455296834035347229531426133097364561253048784026294121696968809742394620881513876673493552210269367124413328822346035201858908323157010043868000254415701751804507456431806876662435142950153452745940755523953575707879427378441218822861808654269211433205173462156941871509916192667843529983181379400523997149429311908968980585230656391319210989166230467365190222973480622474507925115706134177674230452742182807026495976469837864667424852397357914741251567135996364695329990600952350073454387283320119850451119647739315757160810713011069369156780152330467277508093163563606115546640962190244739001777362477376539659841148445184693508398277533959439930362700870610501752383184311694099341714094316179531430456211082525041361857145427390290777224166647980877244401464712027599535717828354348077075894898833977913815906525362896729956707858233016619430541141838611665663429044961969637067794724892172685570101996039158550008318141207035512872638587594981344259719593683396046580537400634271508230097893213707310544714075896220757916726888170276274766213404818235362481869387613871395895657134164745841486478763857115978872092160608426465179070918079588660021985184381919123258560324432297723451780770143596254476156621094625107771851221760681102364258186420773857526895956067614226225097593836207246132110768536696376506875951408822294446358550885529942224084719295188601951507535396092214565821684838254368199974081580045218235417845509417474876153508731789479690938498419965938427292849402866331026937157353560622205995980901017954482232542203077211877937597193542764369804096737206852602485766374345753372490976105530895472140354657297934351032227694557964727420708998426934065229356657784381386944391635288608859767122290604603982459550560691725490493422244493517299771597627148273131723175333575278492461262258093786784364567703691476315081618304910687333233257029564683029794998449076359364565420788829012480375736535860369827177880416401982154500053619835379653119995842372388841887011224673034851920450202516944452664625500270138159551791630218284805292812498389240544300150483577782468798534778036314498945666484796699910429467294886317320622740671502944748416177123983288648920396095381049482873005717109116964920880457448588555166148565665141893592505856244649883716516736981711563291831372163244664745827368947725379763059320682990897731988000802081067098337962361929028219083399969196049066537116477774270300977589510938416590673899602528061625079191275749982554884848578287168350479080816546654744219793064151897020118181524656445192285893405915967849665848801877072763657024425614018354829832326152162312527798639615521107257962809377180441975703943911199087216635339724185787130924121875280746027577524410331750152770155637080838453276300011887254575442662751154233513037187536673325947297738893147006975811525814528258312263791528747972522340459832269356387866807098450647379074989755286810052723687030691433338641110147317322000774274286565714554130914066869686716167660042009856350424818050044073220543612576836988664017657792542336658313593252182244556500210497833981179505293462528936957177069714722602486742411732073274807359390196150395872624324052823842397434817830307514959241945206852377853003835771498143922184609156598709638046228628104692666344132361118327978240344953720924708549253623306108831998379183285634895888954566919375935406392391263251305987455081483514462561793817096751655039650978636064103438676116547842513339842187701133580389084081575594972204147863037357879883469005655608012595740890594193486636379845451104812820662099389706137808301500580946075349700092635299334507199192553372040835757552204613343150810447988710076295962678907063390453182435347568492930968565665031378066687805069343703761268659450183271386968921766994516488649501455560909521238493920714164469294856809508518172444279151946151330657190848087633543736665061631639887868819462081508055668440856101305651569887467929390663609194715598249782201023554562879694614571125526688104282319239252839093269420053560606158743313875663498828395009790567948256647896721608282667584953395020206863350291596789490991903744572136624136905055028084527854720237636735203661680561575578260670100350620769513926084372269196443759131155822410593145285038198022908711235792964349581099124414375021371471358420525725521659192876563691232352769445872674222679271260565416708265898663833985916272696239416049271957649310350182285762258035322536474918518973180971482927018984268945193375590394647422774409158083370389080995530426409477528316743005153609373485692861734798701138007938083367703798365652188576303284920717730280361780650791335937292419690958997545196229353336439664299736602594407789552364985852615934491243208520922602621115964106040280526534626606768721587732413331888905214791919681636932811795868013412456331398804559562830959974437936531507360325166626004537731322179009933974821699850638337310310307191387002171873650732081414247209605225358997983671215122504659490312988217881401004824632234237698506405837980572368126341749091105292210999714716602637272198100765453733844614338128456753604467718547084779594110292461075288324902815501184735456678560433793327706884248476758503714741805320268237311159408159439245657786173682598824339727203273464820419152892844004703616629627854351462828167411795485509122336387316980087302899747967051403967698133505726391509477413082866664634480533749894374284527701612564772330094537836663960594696858077575614462021920869197463864669524519072517314261345264418465683526964090453114624759700163951394387945178066709426945203531747972926512319911431685883770119542211184994899215923412119192173266953894813078323860328373777024150423923522649504887343956830665286706496571920555931542724372342269243030362385512776140527176243783696911797288465895376322625946180769220296155368853812287937815686733836558921882944245322872935581598897509116137907613935804178198085498872678473309943973400052814503864234877947555433320159291925190098145589977779372629275694480810343653496527354440208006556837567281957777240285341016792596655046890124276477392783797431114737146698370566441976940656814057893970836634945047724700555802598149544462744718652729585238183563440431246460000332045753433522882825142571677141629507985554830564851304006490690133141022064881008265581186107434128890054794575868373056136050328981953301725329419630969005124251358471121007763256229302218040584376911696425056203048920237800896359720630374748515970395290494155818148145717089278168434144554930905317731816542804210170291152953921351555511497155244794207929971809626819939456235228633994707342994272766979110061664920276104616333780816210602471696127617561761196403032704719921139362491672416013740498735996451691993625086751163297840275910786123487307384593201738500594125183112217579347870702344367891787078299789191272285784095305249602585092417228590864600658900855607275910102518315347514493477482433848549833144227960102683828702409056316708071942182426548078241286356085519492019043101538106268303106910403563685513885907336895037220706942565070435758497690275257046985499839581462508728772012924281938438617160522586409448169567999381385226072641785109055033373762446416623185012715896978401832426681170298587491651588483012819035885325100985408996299199791034139936026526214498620989062442253957947945918577768204904933023241970544297763900572058654556484879729828946697354859176447052589945491139151563450001434130204095241526376280203219763820529734452095294339693510030622447309255164096180488890311903097371509437923178674203945049694781275115657844124932182598681828800266069347324324758079450437993239633562961012364348550346557311900977166842620768677410392132118147974008235288903961626276238774037470010649627206822116323898339468174452000087353352874081656956430307695334419116661945438284526803662996052110483286472474945620441527309691948905551027979944850315302186529924437925158420456465690679360778588209548689225923847423561972727799866336495624947639164594201492851399297104096011798512281299438203625124908042080301576324963080139557076637107963103671642471515869396891569178144815534411176679255691876827188299041738085544795256083716178201189233127316282896660497113693909145139421890806026485168688112221220175154765388281319046464315896825129473956283056670137008685097717296099671858709777933553403616179845231914787014404554384886797847607050133694226208521379855265761448002628141334473223332795557708887469589816816451391077166914377015924994476982251298487404526355199275156429834676397409258593225793007188498812200277998106118732393146408261966064398277439419789551843679029524969352568769408749932385719284928215036051275420548837851875771661446825164514726733009515982334400465743708010323522880663588225403788002939838333626283014209887883233981410670451187273320543501430611797596734872836634032923498253689700522345909334771580068955100099789128766667216623339313988835215047380490542709262860184574568444705190990412113564635939539547623592638979328733033279169858168914362134861482579571055625420581583258497471862753787420724545398132825482107038131993632832611602495542927908897770629692462740362980542169128363051878351831329501529507878509193575205037526248261170524508995638340331482964624228825379098222210039622249372172940344657423952099975156136680507030434262032810296488179387204315711915586331462117024585964051848415618134894905890681064533602158414805636965967157800954149361957411333071861710930104941926094452680245154814647956396662223862557136312941460066189881446849981208605738450875652186699342567602508868274209596921913646635373467423368347839399779794614295997101185251773368778170997150753680935551650886537098336479839225521331121579922406677770951618921068270731383010365065479690721662369647345515536438256855745911124486702123596029628866910561078472133229157708695762586611907260428627412284463615763205974520580092335364130781964346856563291020176497084276503778763493369664698135147755631969036019989214889395167605054354351728720476987942214778882031213793792739779869292931271460740445933028057552198970477087496909079654308454281209711326787465129125396519654468186285329882854190145342740532252295925122487009330372456121530451335173845545269476218331233370347383644879708521255598827889594699979990729372533379176277656578545495937288001144436966340569713468982820995047064623366657224668029061331745464796681889180780943062212536355413633395628087814332286295814270212387436310551404432049237782690786755335738152400926435474922822569582086658510675376330353847975223382053178318227934945901335533454252273888923757373059576294297004250677122473670765643262385987650470298049223212768833758571382683491844468906585420450081410947794486224605427522866126888612249798269161061082802709186954085754212402180524867455616648966889300286864180339803914847597800257007654823237527487479102603078103050470763713879585454605185134875964866964912798023577808836490277120346419707213255893648338913976521220495854846963562490332794874790157018916341156765797004160903533117100573179075033329210282764391761554113971745578678601811325606014696060041530852705722742321476130307070105975950766383903785914843034482835069866483727834704586458923138627926449302806274355260088518944763877774245434374142789952510132611215957015351466036808074813890486654930536502630765277594593864307640716754161233925234250372449973590561147324980243130657037494753978696663228496258655818766769762409005661167188172032718093838875631233999330637634825131186989826031274748755004677082417711182809999811711129505999668828334459249606991281053640741968648301044061377137704886462057406334377872267681947460150279849677874429166375414032050132017925725909289310018206057043341641719508663907160192799352126556818356077345479716162430077731833782518293812338111228208699911330621719981376748613216874282268993687291006938383966036216383115101588628024209475811745845802879768188591512233786392384420607120917849266884403130071123731416837924043809496428426292879035210746351607745073553023161603206645336501836415119187895430107383336986869491284382236368484256092366678867459896417650558675803966701768096883131348321096291083290035634073786939467369148179584156415888015538472480053670692773537128532266873434559321625988685598305041773443525882241918382846625468719944846995906467188928013067692807131146793917894825796780739688810241355356060570908165264737181201911495716005940579414700898782282622954763442273609665816377382728220493885310093799783079880310473310298242862303734613191372545746633754769381415557535727122303946547401294080396783021568739892715884722057796393624869566213695622893004846242223717423959675941468718817358150992295174338268732002617661491760328055162046338242813301491833701874400624558872584961078677143771916560139437240600806435770606922197120460466175267260651029657185757611368670468815055807683902033465249576521731454769720355249709196944031681896410234131082607737398125338219363430878801481703674663138621935710583706852974619242133874372185990097401402136807993778144693142694703131702651622744130784627463502958463180516177342675893513725666389585410338140765483379340358447527236911155169097001390752665362052754387451409074958031966949783308620739901745916366406163770958228715833084817950709257450324963725570594552863375659433276978531643560144876350124300415984438325258093794858376378302032221140374670426959536134966605793760264655234831123758152473836461609859761371603297656949896696488159353419592661236784990948536452106315050841773090480937383596585501998312226530550516918274979000295434729176756921183793429097240411891462433114305088513911158916403586434043446838204116083933123356499732448182440308921922185429857706190959735030995315618637493906881104436618278201139156080244249353679475387171325781805602898730065092130918957454632852330457680247050476527940609545871214571017848272738021426915694493657528651142062738279118274214846900117325940706846823314607870956952982417095897828586711495535485357901180631831435820457353911655489144556005970886434120406536831733271863244589643581186516014896333923606337280463731623562801286389643682716414808950960105917659457931507348314944540072585466619758594778595151895723680870259471361201610291567275217759553668112206741269932965984469084553053769539703799614319414978295532159892125054390752688957421084140239454505824785740206276157102376874148114050786493692583035073322385866350999274305021025598032730949302786599640057408006498258869107106660008036288898512361468561608058121697257896965165022561556493531836470201277780470405360213324042438424631367774015942888916056875390993383474751487890806692185133959554243260908618792816200464008203761318795558427465397299034250773178742160477220316073960483141690425122361624561792931085090213740045447636002069855805913156279136573342367852622204873576301620553154325105683252409829266123300124229777312507658878002370896872289728897431014168937038526858999360690942962324111330768524087401330197053846835972994644000565528280416190217489757923433724371058461785498634673501756023538548673707908717702858968816257179005630730002588538820416787943693707387654186261721746146672141376720286144298699105657338708014010551404532582446123975566724953420445382636560727155295565672255295970254114313010094195966359444105087087961671202118659624395723140911065254660995797056794607489362105742073234349944761306724699803834265278920954584872342932847841114127792479567862271158487871366115168440678158364509440538032009900283335709193554008327243478730026833806795409646167970583772084400488680850891057812631647833910936109013633441814160383962588663019506950391154576395570516317854661585421165618386603511816404741027779463637843364848928653793642572228184541510608645415505958329730446685601597347278917305702864335887085088951342170197287612166208855574445549362792419129437250871876983723628123161716986394689526748827969053685143517472488413234927267279643701451253465397885733437231666264973999794152790352485519540685579664520030949281123772523359832583957920167627770673969562556130682488185883698868159997403550289624957513196711310704101176784474565813057646625952439632013557472461072432543805569240272198375572997602462604732907099918061100397377022596385640708821755146146399765067465879062085974270811473064286603339824069346093980198125903276379493024468012363226510679457740083679024323204722916515118864555666485919617776957256118631495747651942016405627835788807760427927554536843496092202920571556672178646924876483833040682611198296625843158576917448393631970179785834068382931641736804633469228666319319679137094387368219952567301257671985069183748641948294874396094325126138554326867853664223836383897284667184907794685339987005002154887614361168086654381852221348985904050386900937737780242890599397789424240036335651005322115700032502232139737441421570842954405168449785180812373482318530219161750919145374230657886679321100767268574759833075440163365923034737390098254234133532850973071065480048587765015921557440093229196515305622776079240692535184787911689950796384416671841909503656833295389909210523742886424535539452952710553883289426725448960869621341590704413456511344726045277615587664812662323992954006795116971129151012261678890172855563319576574418588222769221080802605285898008585512396655826591928066028270104648379313380357188699195552245464544715521672343750488630829806674787015963690231193448847948385291328060109643664427132664803336821720927261123153239215773851628565457156574843214742421842307437938776786637445400858348347220567293921757868198906773923064985557909868887891747054325250373141974899902370998616799158682887627750078864579658616903536333321222342721290755484644028663324437266627048332597038925081189268672492213058484018526279770535442991431727584400096567801392893525777858480360952817389821396757618728205925208846261105856443964106299745133895915878254993232912908521552152605679217709585579278326144128787160477556141571837513648042617886289241247287339443294533485543373802100390623728896780445791328344839553976805733207931407730423638171406588798831609033764984755563448476013304156158076704032625414324397541635709749182046063180188553654959949592691029582139087097608820091406286754923632787089207782599176039098879366037836513527346033760615921527934696787160175901293495036667404808131050099999445712441128856580556436018280788910846233969655204222329676178797128261076611666646519927365697751963503636742046363388909201485893281920975403785935810421794007462302674299177340986296654702470280269580562352344465486716601053406138805340297689041775532681861880075156160279381631199107802204145547529898190235955286707085133001677636877009381475721210445568945317843432378954275892840353240722317690520363050020781758891770628981463491562887852124611462757123088313405262439386290148357810535512585816141327819739101153447169215780919291773541521420274252646535033162055253997411339306846637793549304171987011172375251648680361315177589753865206113825825168095752186636942358969500725845209708483049744842241997394127253771048811268478239033273656729033451371711846502722025158379036063586715259158407669353764651346117267002019097791655927310495948396997342510945577922948819253211722944009985069097232235975955015621487594375633630968170715015046639563453634286470673174460467909962595604392679962153392878499447178354721885010168863079037459144670796993032320232904240894859647423849418417399300141634595681079232686132887820633581047168969457439742515548917861818063529566039905062208431488296932956558252045821592070538153183482594957991183099414491507184132874925701761065621428927336036319246405567992485794174015589488177263797712860720825780296795362027565296777451044830806197670700383783736079812932904862537436899317038179537001289619829320416685980052913589858519402018918173213136742838542418686418730383060294103770091096510121777031547867919945167644138522347926707096742038162154274109603581268279190473775703697741924383183520840776906009992053448215445938381525662242460749329660389135783487982538690332789111599053905754597587638168275355533149525084998808123122010477781285212763434317522048494136383597697925850220373239912366448795366057062857398863202430118154721941909417901177266618105653181693375871524729420310429746220572452470275280228886933675340548551064901905539805366236465835116708665894108091158262339062382399362506384154914825510436021725897994605700566623041698150665837319328483205388885536705511841879230350919535895544470196868614754267992821790113733312996774948582609360120264371166651953418051123474585218735184028412474141105401899894944270953536205284687971934910942125399120053642053851220673244742776406698009067323651947566507296259011228036186835885343083825830367057809648007004713797655891346773311536213970294071103399100460546444136595450107571935961781540239025512327303170792243378210007571660297660139976932312637005929690988732068750258191827506613595951002459145319723899037035759659481423928225419220436663573259861817367532276939412140910500241676320285298995764455989519677660425506241642752794011874602244285241374367515903324118147785108524860182684417431426963507130101796864419151971520680064265715773594052766389588838712630554133530029969180696500023014234957943964328595800570289084997446933203630034954994247211541351116624183333286398805052414808072195977270810742308141332192100637288040857111850213188197613868002544251330311246432106623537890389436504849566196230800723270408055482803201981829953670915099978169492559182782416150131653097679474148180152221561500165553636833025741053791528046755579787758486678885645697911283918387643372905716507178793703143126808511467797317769650544264349805439953765058168504156632574657739374918663180502350337262132096147151323618831778206713474016837196380385284017236779191788904056271366817011508604273300367908202954792657131134595887159995263992134830571866241620970271946980228959543214527615991526895444017858486563018665459104831788389554176934890111031978246959097140619177674506519950054557520246562333034943329043147739888811201601700965882637100079741832565064741759659670743624514034514644600866492364305734380829356612667329024936504207676950475767137862630550455117600749615739752696887403355216261262382164824529519151783613284155010571724571589547653758205298393814503376604134174019367892817210571961617531859422880930657595668513917956407408780089078764148915861275326821158567911221512648372321835646823942444379760651627110701377124337302856613320544123691112515699088992596625285945157327215319229686921816515712649069428728037411769581583988924494706878701342843619412860834729352298161809250638826638946615467890525764578089106733122317255237037374890420519194637739761314286695674430027595162629977343680731318956165870200333811108678020276188121174667469629504979064581971417834495455914898776578205004039394190814725817499994605744337827099942576774103379967318782272764025939102982610990028244368087435925918141096908881551689730198118514039580000082587147458504983069176574749161904959817906735672335012650749209500047267872112637100106075535562912692078882459062791161474504442862867573558178964272729756055188875403532942179709448747532927364377396242499995754856040609907526901815371787093458312249685829057620036755238726722351331065690765695320202994716163515166721109967116842633957202026277602983541526156770378072130264767844038473699213687146305548453360568530443960079984888697423803269834029389153419592560401656102831360255126871876317326877720296012349023924734359023701833650622132769106730926929062714149916406408800698732856939656164124100433508965601530188790035467034710639805518777095891388832551074431058143839228991760260992263370640301370449812952886056563480505450468723730987894746318556012729269799820169328854746620263755093081639230040354840746962749493545350410118422971289519424948967976356758811319537496339920410379803842031515314688013161947181200555501926337373351066715792388286476419541780364110787415595155303981646565135239224947023481388434698577125567667553816679002388599302054958698750610948341271071321984924855568858005623870478263589737862176384966393746695515993138763403718275156124478184310272660024744742911441875402920368768726721927598771361544158723952790202604552543836460031694128392279472920850450780591104319246009531078225681152477076754649632309104863595463583461851818149756137484504225195895511646453074484506259731954691450185350989977550686150193169826707123031906751963792765677789600468038222389755256568393244422611665417205128582561306266551843051621524666294964738248852836530646973608659260722923529683998380602305618342761468892047443930953754725142179189337626586932618755423626647939528005032191616605156028689227705372909454300742821326699212836624438354504486562113396883222490325423411228742200109451261452527079123744337609329649953975977271946592878539266873760198690653177556067554175918800303222808617294777089807991121270548100986525014120468620552336024451966133416844799402961192737385923666718188619435283095245162448987529987726687861526113022246123104170292776546568133579387058044914226604857390982944554387439426744065910316748535751945879793200457101930070442699514904965427129780153354804865002456421368625038682867700306258012345265045022047162043091384389187530562567857889170235230708599558337003785998386323141752289678341098826268264851227848849597183741449269515846926761775610587032550078819680649669008399110582319635417898687386431931460636028044464133654232610088834821977812388245332531576276583866199276545044371365607628744785052332774388457324072406601769365775679884059947869706866630742069917513684172918069844015981406255666493749198325092105043447181906326107815444603400302564550219109452696431453755244607120511078728848419160355391959804932921271446315014678556688513956704519415633443879201649954332418859563609355436398747384164395775831818316876899383813469290182747092927396688398489729077027579851566519197359577076682383050028058971618389092414409751784616225052506234537772212955646130288273718605515741390134655997877295783250036576618787771101226316316029544091216790887748790335751098677403341023509207515092544322055926007027086160730622745735138470779368285309695498326623122145243999930732734204754906163964069920058551793764272020247196755915425948565449229716987490077276395579127349194026894800997063675518834802365707207136288033180083831473190545584295616571342207062021679049716727523948375969650015965551722281972996965194105733731239158990637137588175187059928418966847093273523721823332826132122184758196831972062999952298056689317426405818818442063407341633868689509353706039966119556764122638845642766141969235541017626954405948924852083922210397025995678060614879337915525499526290870550318361733713263875958525326598775694943929312469152119135375424754191441339807608938447566643767684267508048993082722871680956504193503787213552383291300230791084378525510804857144148652315015327018071368949717802361173678912377855160328296194738434723074840221148089014165895069711450796886101412536288287923654950054910451181894703433191792457629486489688004267371765307845538915321280642063954307194485164732323859814381824653715929407274263133246885253423013068769240598538546758765158724001561995484876845734968459614372383872974318233510931893924501293595368603694814761830691958175192442749445540545180679282032879349124127424011308807816756008849709761053656376210501240743854185889590910377906009544131472969513460045111292316403849149661944922011838100073057115415604938342872422129464404641482005341019111644038438225371784802344622490545782501310000955994890019127120442007318975915836374245380022118141137844548218778011688896814946659408293286922019240991558721199291911144532501434116799083509617556747236719248571173148541025802915506673333706983278945423366840280891588577783430887534887648484897071739264599510065849606408664794492597439640247770463106306857265964143988435459852951847108038115227452622076936731018744971977583758172470675077809684866786438843422377454225193287384679479254986169286707870300818349078515699249470646454858532243670340285092329296772693110439780404500090058101955908522073066242916427186938389672563107606655761715625503637955473723056666253837864518068393342643937525577599568585066038683380109509069360853689616912470566030566075542252221564815595789896890018166559788890419589521316576473815435897637519018942534102587579639725185178110337335643365708809542705571921587409307173225839964028842691629653605607395523322702424564243071643146065100457668816038806395071563240523270729240790846346545488562791016465035003509045652034358115430655293872440475817555161856960803181023445015857268393899664862617884452960454292093635166924632909086057360896940938277531991112820246148116525383315218143249649698929553134918909973670998433812775090572896209793620945107012239230995989067430594154659587107403546877318753891598549268642894545460952794140272803504549144343891451758683971183279928263594045423578897187953721209633450937533621662026923327353979692414355419854576873930762684323336646489435411039668462222132814506736790605142595584026735994424186603880234631501634834883982275881066610257515199121128511590286927231791966702907913152073572436606370626324956895176947051156600846501196717950607678497982692999776501490218646427766336533648788880790721116326675140346036190507972837295071183433784353721331856166066773123570932143250529949391815662768857660398178211543095655264830520297618931838703805249130104290236696521267267460975083229909333519500767201266768047781245168566971008084143159887144462028321857555365155681769223999928200816830493106644712096443108784244021023023423409212117403450463125658359298270304720783227395290155784798140257363608514433813096919002832364462873176179146660777967983810900525655475400782731338208687526985140994306299599656636074483225841582101020924182936966729184443491358840025595065981445694502040807189806963944885846528453044436214760626388337963164993625047566532951533634995752568767047185027670691244985662039838262400688222784739190032795237420658139925336175322332313533478836815798201147677939939853349160847874564205619516505585499883960347993049443378155346862056115599092982818202173295711180470366839220627703598769126336916435696820433094633133983115546467828258757625525524364566183051861664785668364594927463140081768328371413058412269804365386467613398590532558208304383930298432080307584723131477848672491428780085104654925437922156606332500764359718627781515170546922097197306961463704433734819953018250849531099562714934818415264952952284432378261487523475016035210389358012396481954812826074070733052515360519297466252917568074592951661177421160133045260660024321779194927519717313912092310054770993319292637291223073525897691223837095911825984651938237401937422425299969138841429243068625160411368173205063702998578364705579405265525436195889191736739680310643490923666305317857908202313988184441091934109645439286843754500598781596714655720024755101534554490332260241816882177834891961363824788592808320626934056343712423883315388913869365313390397394913319601428830580909520459194302277579518532917153520167521295999922422956128651317832781473353604642512883980771166144071324235777214870161960072341493974260146761240673666506036734192895013615152770680749528665320374365416728271930579493180350804069842012874490670261160079820905996627041680641534266815903296487122119663556623652635725333936581500093052295891585979826321211801119399247420719485315353120616181844895715541984126770973587542458146613656688185417985310430013228788720187644820107004347482931047723564602783543801574763149501144120079001491783539538893777110500552544252409941308863939224444586946526364211425082155706185508561697025745476079663516270367751245654261356462775803525960698504007729671611700302166262623017260058574270361945584830292313051951309680461275914294868919825792513836946676259840420368001680035598383174330039448399402705042440585900505489914722841660202770686306436938509473604397388009500381166205892056819336497994846004113045916895938993839454490398127241406855579374588188898532414256949114554006830660895245740593207798913271351305152165249838691006467693779906152608305902631988092872251697375118046926526947165547037977478898086085809663316599267948950694933393795324604243087086423823897494353990968832051179092137298950000983004978202257817965211048926833879114256658459285970954361814089549497300058121329860933408065229841446851940632007044133755448839949001761311627066331576540282883461994628085661132387751482028613372267446835260194227818074578845384442861117361011475859636426957107645273628945555525436602431345352397385931154310405772781545407829423042518115461524149307541930104892279795391492823703366444936702350203548714719414889381839354588384408195896825326831750302883110266257908658179752826562893388248410061323617304576901873330951792354780736965386475202688237681964206310449664902964614738781741812796382809343620666985472719236816973055853503754103317371568809100108387814858214371990679012761164784493167430164822183357453531958349904834174809910954279041090568696650792729097724409233240066046700595020996507560753009387706937776339768357201009656128808757546855651501399302147699576415560540899919127172452491650790317745398516154365345822796784611411978230841508173764052232547641275295047228655363777927389084796854324756908907451163906367621199041622772669309410068928758804558585113984568646120598443242273936325789391349523704731935814359302323510207761371600401926329627581434136311779402943645145090119275881784246395739749570930792341596172007696517578188130244203534175596674638540554866761402508135944505442707872099138834097367051812063797354638305203272509236769725779145386789889244747807573313571371326113226758857377404914611906164841496994044989780249396175128952381434187791608313147043847407787987388455240439425154268283346927093515574511697037299163013252333035628827947233937360620441162858945382728966464028131999626154331639513947380717054995768855708067060434312929878578067545867905333483015814627232283704002586263631930088723988445047768256983296811545362895007703903944296625526876644655202792023849009628554571778956707932472529600213457752211063677254689182941336860190089797913944524771429394998169625764167039909662997120766076814575140711383159429244380534058386741709862253198326532734122395010829239425155688806493980875386008945975465327426010329307201552787185359185669327664537257477215424609817101308014024445469620719040702089229856931893530389387528392408945270184356882822545054835706665511545548958335591902472432374935581342560166617752028185888855336425291768527968151058148690685133489361776389266454676378229319980152458081186469943547382760451567109473569987215684326616625155851528038378443602982134426354283011747444297024451305524462620563551088281580696581263472471636900196832307745108246712448057320651545208767470141801522598650722057081699589275198746649742921442599263641500307090897197387476159714011171346505971082922954463984398077434378287641871731496095922421433242528523486490307887914115036504157336791437715020823269695949771360508889799441944709184615484951141654691479081949344728891851730784792666268924018746859563902533262025725569749381576707770749010345865806815881494390183240079854883147324702541425558427841590621176720015684051653948876452274323155220045503755516468352614329270010276741093919003432823324045426206252365865295521214427738350965009246459168683012461431225034244946149507952874698821631535155894392103834807792313473297534864336014671145925218539596687027717217301846823882451724242976992215556895242374416098408125638679563557071655546507533840968839300584002662178831874084612424847865088171861959743679390780048431561550318558416699074785227411322660667220846339154956841238430013630914713283106861410206154533693832823002791955201045458389672141323717091567268957272572625730379861923784272968860985684871855727112856076181489797064090402611351377708022919520445923500913465344770176510017330332810657703459002083580791298335667397143182074684649804272931436029057274953877520450596004151379549450301130091485068347937243841132310744012451388983769218311900348340985817626926326547635708055305780954850674002316811699030365045233671894407882503071104465233236010507345188631467887722162003503172559817578353627701588375954733964274081130224426086807007568114286334518953818937538352581233509756559300835486413172638407982862397670940282850022678475437862892019310375171639308871334215135227232361018769272066835406842889219232917228782198727236709097553857325075450154621549497485930142899830616062480867428802501972537931020717832644141824345254803958565636444735575719420745925239310935188438371943007607106445871876603477343379838993442568687561040830995155633084554950140283427759359956421961094876000992189766832203162697577567942124190814192187912623103698859674384648665076296925703613626236171387571993860237044600554840477955934520460432325555652939084645943962928784364092508503061848463017120534650596951406733586528988916597452657573384925143249084728097470050040870054057873162072115567260539418721272320403970312136858627507770525812662899903419680951297328443189250488958241076929246949891911774573569646174731377434305438723356423564604400200287794716455257389818213218990210181271555573277119106695013926032151386860118419916701537766823718195475141944978236880008646183190509406497427174060895734444652718808203936009403037823780196561774862468503690463844928222378489736703075318864889200535520240937168613070156830842346712944968197038872094258474509370856792722258601058834932151074975605669131952689948932360996381665657504935651765528676123936898436896407519948552078594021858641412899393056881786407022990944637585758136307630328881819761771601415807104143360096093339855055095608120952466385507824155699917268151558269151590386338623708168802396740110780213013985967736262845781711046407090747667651133035560714578308588086805069043269638127730914614414671061903237814117695303743261648817810316268281743727964569526434171889749221037301264230717702097285478553579933275010013881429102241389936739045848424253201672113683734597315314855814221749787778269630263530283469417626695074520304723364951846641585511010987553029403708659768199290665767181097129734965601481679024914711854710806924596347665872024005054531303195213961843781415183612948600731101464931489403981014051450621615618991191801490821300521454310606637911304892303938846106610671713317892087371313672344182436987510624429265394263776237007827567015994843994569257717543220670431363471159903600394153891277474518806107472962728740123940868019912278064762642703702976251727894681755240581230967452149461342267658782534357226100337598140364713966213525858302973876610464041924207806190829325067401007695412550116778804188283893906786743808821307441999607374101428923645604537390090936561705560642505633199304563639095920602850409630238060303093521101501598565337003729413335592734802083333145896755677299086614043154552526479217755042341200273140771877486071237082529974279331803482012687689050084953327296209368570487881873608237099549269463858113215880571695210492100037811748431524689717562397636537392648994285208081210442993053510303955270461533360773759499443228222722393426553294252337866134175759884090679194873365465686680546108624933179491692454611453228340076879537302497398705658068259035602387940940883200937319470761205134263014353166071977586661193029724424992297160101783037748339351111556773413844765363971973264211450340562086413662753043386753906746904258980244095048327329416925870201846068015612681802381627287891926887125038192423717223091591157539739421375460527049925024947586170545213106357937424014726099032854339808733242290664961104794552983689771855126915175752098944940804406101086370871658459033051909501419895560937077892766970514662839803287428624435816266058236781734004185774337363569331623433664068001214461247014896644348082105626568866728613678910330910427857294721220141810584511275084592129204297446558728268966913128601440707463137687155434946185138728601488738049489895404793144262166231563503059508028193848696093775562671351561936510284369415400783813657720480546026330819807941846514452991260821646263882837904760179446644365052640841935970613346731173985632685976956186320478648666214448140071064258283740495009368193428737702561393588154602664665952304660940341079501283102508230432190753615407677590343437274870145097734790807449832592466534342484604798746082340620627996558230253382370689787308873072870488869868894613697040921261175047157018584519761806852351758074037145483153773362320051014925639278653335731664007306664925321402027411369725584090141694216783193521242006340902961319629053819544703024134862783338288845515712224785130979890888332526022799576509136562428831642409492918757569239445306738717827150941103071555337705698912756968791022902266285791812302179086871283472954753147879946374559753802864115672962842300344238298318280676347002952117740327178189679997546951478473471709068978488075119181515250452028255485074932414612328363334950933948230712519827841547817325307695729728682565846012793235181896564020920356437271608451811226010588516148591273791930364617816105808035009034053255923696424203020072828564260677132058095302329990704067884996821962832899220285770408012587474907572047214532918345573546326341002123323357890049358099515456052546378600369666722651900072934946670025400335510950141601954990004648854895722539749234301832453570756465490692808767557024172800298372110200098323384066439904181060628325585265157085788782899385351275273353640802489896794138953124397390503973248946256492755230555508346076885755769308182403210346714523007312839364986740123298269946172267400415380130317992278068325814235871936493498458829087707181690442604409574916492828138796726774245419928569127751046105801122528123644687717938036630426005542879988698563869249344272272016096389541620279427919788367455777410368441930335226281507131003721584243263210521257244468960298076578708468949701524589117540546200755861842821516324215797913432477830432615924760020718058419670722164680109427655554113774753521901595241429344700598812419851991999668136008261933987168677837326753924060358370809781523840197507690338565832911747832508179620577960964657664893435169732864321222800083539732106766908265967911232272025617374700523510186215900481960522055197509430081568721262499037262942735897347954429530126450002977212144080448237051031023553244781846273498262653161268947579258872315999383400011247558380666699223390991501750914739760722318138179646885056548256785604628181887401259986984690076778191374949249769459462490775856053083086096668330700489190646875713655703243411022374238014870184206699674523202944379233545044870131543462374086835209133885978812485274650460595476511658573981801727963966311843212486449298258742714012999560295778256259252794817929845991322098279879671320301731418156850236179257225597869478477255073474571664923418010684434301136629767871224915190617835590937687700887964701451827822747266056119066694792463137315072781650362229980765231184319274138221459022533525639576320282551647525823899636180518672618321147031391203505055553849967386345516117516439141946701793611118248729870925579896567212709243061157868025018836807342476135666230409560953598710026549355045926186194120461578131652645174465018542348973937126837661923992760964105435353548258010912830033054724021945986281174305959918466565811107860659858446279782576718219825766367009855404217541693904851333475405578254956326245427054262015456859249000245966458633599438824422825521434056220572594538893870767629544124149688829297392623795289781801840869570160986974523734665481444038602609396670808768627011960958618281489277155451349635432906197216002262997938777628736291433605164216038353572489183370001769931598603755162564909388089351363687989712598176712018860114860692304354839655871321152723934106545517921135130444559866389427826291227541838150413346470539504821177460201981265018817962086944120845289891349724355756176208969719548651759657129031874371637065828675056134232998735865879351745271659799665698655023241754290900037946099849605420035860174611578499834587777627468248077242865261550549335421353669580634607446549421135748481030364575539357190877787813652139336832104335072066685989564944378925034516119847992203157143719145690347648693750953112736232050727044422124316300185560053827260469563246645438927164222029933560182348672787751102335072725242672787361847951461119635272523100894502490733734696740516272292289032368486601808228012973699631914743157916067946799036467046891284884300219401686023505963358997514574890908151806599404088983199755702512730671827200437732969884938315131893432792692096403119477311780520859703764241153118200838812639116053437680320020420988409966189772394915526318106606169269079405250237302840865940523401199028349902233056678704314958808348608014548715822451348195705453738285386575818236141810983009418908568737994525323558954126140554534845757319608936117438200200491988584187541958706521743567233201859916865126583385089871717879392232015930289454482731793988170082519485056001387197881834435339601990076624019547851867303315612489401439518235782279707012047015759753255035961712928509641360812519824600132368786512648670971556814676005871757677311369441016932948552892740021835277093452117350420748713858398505472395729237518776257810241194565072544859481771591842633520580275954843218934521581357005733258132908392815979553947394973062762783527036601052135526697521103634933089243679270732169397388675819406939981556019282564949213212474236542699627335853256677315512059056946315661532553892181171039651241639144106662773509040209229974587724644507036688131586428375908547039429806529828350907050727527684819909164031704864053835100289771907219048633884253153183553486363478248956200600473771734366265505700834610863563643509454020592617621171221469939530090081717528772677047086925364362016871019073506604206969138106931004658666333682571310540307494045306348916898619639682427176942747643623422909022688845838872751330931581423730598387111210832047500968804095554275368399331943396626223101203329034965750068082150809741206514739480520110278414617671206068712364958607050272002217342703670829156361977806692148636230107735726153977790527597059537963965588729258529184512772489084973188044194125962843404986021160798667208402366223369378156168291597170588442250481526919969806179574830285971385835195723463707761129276856679748542873333382799415672226419123026160613818445872902768933631653928703940667202461731235522604587842478463483719422360281278481715312460996259375523338880893563743235194158970235506333697580259477506818414839960330406830608404593886573652670033123754728138383026135877543553581506976391724770126329818240331197955902271108089411565283970445370757794749411402753086703162997183632867104495585328318925211179189087107952220326737807725999593457801827724314344173284044719289685424177503739200107998280377382327151526497425865802028933899387383402150387222610337986042400221828946539192481619595913563131313483918439522623572016112852446943475582197750795295472869817480527490739207859191596659198392707743864880606915849423010544253041419920634323588774106027663904366361587160460416407923045778301712718482603362167727270863569324536746664130088561117961473278476306966331818934715644139673065134100105720095621479734773720575456380780415937686578999145216218042730735349586291843097075246497630413754196521044540079473177411378900021357366763121822911771579342683473355894627991618451097820708855056615424265268288184397537615386195035483743224008602045257004796844680909910917889057707108479482407660852080563092099480601156591848399743103288734639301719206259113273131119286866289703177015080152942582985750349185038290582804953310768828146466713305841214136099100733862595023458186155528455963129091196470591969229503503333004091349084311544132004354057513886279455593156323466948836566876430718182613727429219853237597410036961585853969316630215736403686350048499890120391003962450658108623297194581345919232205731658783057830479025107845202056131217670962216551137075938563165845124909789614308152591665296503650873394314766489120018928638445674430379869956221252096936819223294306477227500612942066155069132126402716984106425425146301158347083346599725305380582305336789029458104920635319195325063221638971434474819055293253404313225862473278014382492909945492918577089323176161866471520573897863836674014284592512694983955325190579741626529247536834694923549672986576670668894725272171923718371431387818883038220283721341515885833670158652219105039255235307050479753917768009405417782492896919881922095740036329068523930991117536696605133812629234632605367659894886350961280564625449189957585148271596283896600231233514269126041313486313972761792057009925392468821036153112196586973943382228825228555634775618369324380989012781034526744006266281425044121437914679403614226236871139002175507729883077879140694359409147164246410190325951143451931551219679327478570034017608009470495765178864281363463140248875219102946409702238882520716065833416781923621981777547421688568531220384737919531771950909563734640966911520635095342493285989001921203122833859833336753498108096491025279640626030852037982235228937732668933064479525409087260162205446863484959128086294450629950704339468421820592920982109411079904520764064765613780535556648662252971226764204912993828355348441927353525185664130659522304787585847337989580384536133557546379293089048733465601178049915813074887989213994449632653803474710836840073722218468724134999914911755385399951218095962848884622432952736209996268467728050889474241737691624125589706230664414764958956330104001870079561276099399704896294441848447500944593209177274645803499998955735152158064221517787115918980326340328961923206834013856768208721997401881823655059099017441169737121178801186450655257057936236416246091131634393966729766053850977227782670860681528319198319417358887976695393514997309579140685151206607619184014279047501072892251874817839081088978219160776133371637767705841458856033462384566670329909430029350852914277496477936578851335284297890916222560802360891433713995618855720444840925180317791707164867018194997700736651633010516225690915066639259669945787780659141334023485985528031055786802966409960803810182693887722710838311038249545858040739473560944194172968496742416707724757600420730884458620609207784005153988695767590170547636017482770429171191546823523317321838935074838581008553978574294376665566005212072531392369907728915368080397943975512977295393158320862949075829894719098229554411396847307315409303598875739432609181773796488646869587025226725145209125785132702712156332437039910843320688672148510573685343101295234384253905139577473334788853419744477846792770415412377836207017466308855467039108078932077374870996135257935626378993979713559646531134491786827400069579075880050443907133601322379230110151042846470399595899534054503527196007344743272987431286142291950509597546259712052400742887809149668800830271356483255451392647930517476543795720927175701183560860439285931322971905637049044905452322356554453731827646041064157796414617050730957923895982840696502607464484152228542299112349402349466273379337160660530415281870804889052254668794258089230259614429340258773432018255422364850053917391014899951894917951993035354300068371459289770031596294314397444962814035931144678878179801099757799115531368930538346560356117644398831984387380583600684261570374189708872900601696387789181163148755999737572731759843257309361188566708638573713047431608223860224539378030308367973915361499405581662404302503982799022091744814338584099867128497529129470617056237202956447658984007452258659229135916718937676703420606010320640008663865060672245811178924923204156694412434972846650812214952370162227551061552559913140283179503956862358666481259440742994677541801983023647626033066801694942422435059727899193245212833898365465336793493253901202494907626457275188211843610204898991208270944640778067163834200457980535624798432869321257776869341407523684217075115403472819228968181352242827371085975851845266683208624245813094320532252753092969630943104308902424711688167933408240724772368574387262630260178611656371297846188482957686073949957546763817810013572157423755437107110446090557549786790879099776675096336107830504843756525245958123174839501432619818083212794335489664571159922485145623874903089732326548264196905645966259016453222975429060152056179821838969528327129005220610947709265797645431384366651288466823902025640109613220254427345661192152493858392916526125330606879540177476589737382463800560080579453973999006387734692442248148036793402189294754047185689066084966010917551198377170793863958460470558716413561977508396396345482695434779685582069175943939487902510134238470442120379392174008335833058732191416925238322404802483373030739018745479139627697708357374426917055468210595931170772047194685984423785558843082796236490498160887095846776330958922927936529762117607853156807445928515768069918677000961987410148507307522851786661054876978183053300694598904458249528489081221940076826198521941577821151593102618288419783408152139660625999545162630111488430659277096076835152894601342186747670948884040255233751918627698061108922039702769971200862665162411209595478174370993180071584549248170760012491595003132414489864715099826731559031637666132986503378193141491306204051498723468101578812206845303615426640685535318438245167932594379337168655344319713991444345924010414877422768894484784040459344427843382804137313355668705842055243411825152474679861483218933483073836686617323743386316657413972001290187070082599394495120331429188812719061428357161056953517263183243542813428261627480046407759242978301725255339322224227594939170948238094998410344726232403143798910461997892558203999242671496710372387380409119208084908202013100523528247054062777352805626659079795495444009844946958371726963482652006504230753323776596753094973802759255288284563853800074579498900895999166821193494750857630434223374926343234741583617456689511777928766363426658281671557103852118869620246496101285242641915535620656850784826045547278771270809944065739939323820338715201754505408577094051620864441227349041967736369494347707518622088170805427266631207650555299536826831336225149908704840676949540642818509514955553578749578408115789570967538480272071992983605447939924163564446881409265051169231058408396463081339284373441421584608385062879625306598290094402727202459755813261682542747852869482257876705834842468118055124321664749836755528236835891843185862009373504589130351669090019863610466242740694045585034383713925372647517013072346132777942092563750670654851248672256593828370969147896955162370308896287279500852105860617678367109975270115935730079878254911119939251573441781005413448172848679739548379564475273041946685820250379470340011667748372733520238547940532179669190012216012626404496600875435684482866461657742253333177545104439228247397749747976660149437030885662576668061661337824995243219716883481734792759817600941240281637221233910591022408995468422525875490692886497131498855629318512193911564002898865866854982523024075359754555964619647168531171058361429098123271359882046266203293471132422980264065062639842517833213527356437037815818646114057798475652703723323531522648232342065546963907979347108631584296838088619532616819569475958259671255202132200282191771293188441079839504904587903554840174165959345536818041707629591334937958055663205380482603497125673829609994885086860819278749308474532541936397647111078647320586613491692599881566431901110792378877032694959100696776592307371255587032966471967442141739438923241167037190619772304354874363240009498900647624026122120710438038234847737770069950316772316221481452978501065108858650525733504516071213558404030727580514191729520039190822960375919023496218172932299940904776789829695536328568867661700145882377250339097747576044100740913784881415921469292015835422517548959423802617545864443630402319159098354363927711217269094516633985449819030272009197397377433869539879843810771521880923751987970249227738606297176825246638266075380686165102711697402099565171278323245315367389342356255443245793834396503712202638659372431134131547902781757576469794938554307357082176474908026512788423933199961497961765980795017147090688777631998030928365846503624556384402443297163742184900154731108819844111145226989877981568615514041562426557359379139962895395723290711003813561831048009911349832292092919784708867245536229223325961793484754999409400550534030060876883015215234790408454295648765176484282974270292317588900310858095414722065327686472869567375270113548667671671404926962949914484496301933153077086529856120763133747156164193281256485493457604368442120702964523490236697926524558504016281521468254133024414787711786143373390185824446384666439065823482578401911395131231305711037929121825876730481580372407460585853688501994491963928079787617621523872247952550819114357327239090748347814501641359654842067958084936291477903364794798967752073429721018391865821158071812163576684244146582983777261542345017071459121718043590886533222758170925738914413397433422847134196242363391957954460807944470723163199622562723502258155153870050353150548292761315673639181616345632626239457873904946008897086610230772467132516270286881424552328999114689512435259388917635233085646923845236755781185000355025820571673437646536032896126376121502922233420296572869941881064968642023878237304786571162955668270390710380311278291078071108176428687846596718599413411976274670885020837560807381504916756049878243594041036300691432871639843696461987755153961250680897365998711916333505900725906983643909796348035195359982431676620368686284750521861992964158634572723468864799969395956246771589246781748109269624084445263035025613112018344339330968341460045531744864187230904808294941149187738486848923988191344705872601341652891439644609407253101068569084419133155310639538496537448854572418113112059135994189739549245219664842522769169992567761233344629638293409209219553090133572319408960938687571907032571847166729672519052533858795756243201547405487209513657944398834936169274088662712871706887893820719033986206259076653683543323795087174568540847880261234983431408225050923373315179985461411820384091871869594825970705048312313998033219563235850708194935636460936900438707548948073530056058721071121306967283557512569564991175226859149817351245645464704041801502250020599372686578191195198035708709588513468547036104667836848739912277917408268716759317257901578206685059377896513977265683175128832143116724205205709158848271529465538201379561449694048628316730950704954088833297642015212864155308746681734798482742087591544834816041854688570001860961445874717494721443051382103220787060502622033984263052141764338411971006762750927317501114408546027556395767203053951799475954232427124057086360200051094975678303250408418000210081993096018387906453249306503345697327734055439814919758586996120853967870455322512286142646130469962601572230420052451468416269502147949499334798412471224461263765776330468440517094865011583919779719279370791274409429364819355421219351675409268469738040049936614586064542996883352702701097462345000234381374542230426388686070253459285179402877866988939222309119299180430926948141667238842338715112948499000504981238924733747534800538673924869470159469414466326279627522712812130890676323591880152144290058303536652896415881624608908986099341418576960866619232014917971427863701865781372220886027170694642308645221397062056369000039268102152659376886402548715908675577038540536466947857948324863722446219120740417412191524940281940772313631333485544554843022545407270797142312818147542061362175754403926389018273847252617528251890187932278562249358587663581652503509349109769892039708553352787626263552366961639116739932385236284661230421716301782931422702147961677652506305407978048219801728046824136389147293023999103381337462155462841077931216896494389124029329667753062895411778332725773559983173668296431856073668898135519990914698188920347500709503693353558153089060779709558857252070686688163240728569211994746918231401102036334472347664903362152159996377265999720456751520269584048485874301545543684346590969277197076865039329249723068827014716430189577713076484104793911167064670857247450410932816119848192379967006811636925508848510661557611468529458141039151263326348043307018248065163424010632457132704201598917413021351965251352038660877283925887108502776333555504109816078092673573538373510487816748637869856756355599517102950882555876701242482581690349503114643228906128982327241959376094217322253389566390413647062145620556589473924517920898160537951410149667903063762650170602973035722728640257451861927001175972173865937280000061668142461881517131104813683520518546309944084821980338199381058043268987872752432452300147264670905688541650496505263856400369150888676544488715168988631570606153164272874900570411098315780824765726149703002072163182918273333100274930536746488600915304671460555468848252247030303284986572376028234590974503470606233067276425146819749995983107959701424913950200361065290541699396951341742748312433999913539020753255913859492528091130160349091383191433850047316888238345170290135790179573070027873620893374036664763081763367890891603548860706293408261065158024139005877746626893968697840667338826401466614575945544572333503672819021502257762359109498665589388469067689195972315770485173650067369883852448515468062234126457017530398729023632829058257571642235169193870227474368842300827951579789042062625996645346837153663341946403730861043896019120981078502230908880483187023735204547566319652077538148977013180571375649806908346889663167653632072091144668190969968980653830566319272891250566084023410344474650196457387984002647785766193975109357387391293787075856712001584888775168001543400682502978056848613815418522786884866226004357486027752984622313986838217501598514012644293044380666233091189078919666884355555923272207144803722672299963841302748253680129367585259964325784426490234831761638834530247533139622834769713092727789045757222222298290698616928035922755668901661370802641383528014373797780414128283743260594420207648247764690528864752093348639310942745897650273066994657286925432392845800003178033189166753097047707274941012516692524964441138791295164303425198784087492915793679846483541496279993746891253886378594957722942497369971259426675597742784293323104208527305166817615417727550876984485797601426838006672437121964792543212485253440091752410750365119572429062951447851356608583364962520618318799636075213787202994639673387914219168028814557068516310344384428011809063870760527396249137610108516583986686748874152910192152644732646191709823191955402034791627709223821228617972367227986066202755206630119232363474316006419500868037240528546375748990941631561356466065734233986172139384173146853301740556641467078423482814487575940223523989836526048073880826160581355587672320599205595221545558481246715620079779469365298371496639372876435103027160955642627104660346335373050511526585948250682277115407290886928991709994959473851964982364444054687179608238431657174400911942285703480247140560444741796196626933846730654446127856108189454907743542472532074536810124145829055723946316129250382493292449899651207900982083480896983955389407798536037961329157276726165234402359008290637361719181035431427725754632393043132240223486613430222196651664353519251565500525706288666677451505286202572473038583223751528697644191521501092976498022583756709981678765291355221578157919528555457297035917635123730452068039660178094527623894904277748198775284412425157620934616272134174977979138910348647751004248340694413967264834571533665778050581914014239202795313497978814761898689858520199529957490340700471943422543550956472806492871246494152976649829437873197886200262490131888883212314049877832954215347057628987555173501900409863833369595643351978506009468686026211616393522401054452832215916553539313899126855020574531850955671984283126835442475693199900959825529999974025893591713979901698250050811688740471356399709294623143860282354277863784802673134876463842404366159874846064051337033027629613790835854568897417543134662005535413891068915980373937309201493720916007538733710093255670650503224518995078738937751109192333052080399467314824387092213247099593369020789922424326190032699057153978779602695857135860856445569725154162378126308297808786552626653730827467443026801298235730260974375853143207547256868879460362080326654758720816790248672806268185438420345292858820671918924961798136158593570289387409645312370758973242324988077162225111595184206496345672387283127454019768958940795718490769948718304090510697661736652918782168297448402708899863147067134312191187982736560616033542799472139872368182482642339171375180540471584371587893803708670060434561271217116707278597752920009129863310147587635899991530223765012916847191108962352060803132790807761706949718444090797559033940626729070320326130271949828021227586645007435498896362867665667916007432067918949460611483639174943976325724620012826823450788122816683239980806996347879667174212748901123494546565034977281998908685651034137986750048267129124292716159914658021140177792814311219536915350198912796346616089599362085117357352452156227444971278200820229518028445874575224534186522126746309276762800457024287944223667509884018957489252530215933863035602200459073110357068898783432068102134465151371802861228084881410649876100637145915876134525178875529715381658074725013505350595623399015354382048839010465350518101697729894622574708456429445884876997587153789582344569791784861584174095930813030616703772817382954243484346577514002155940179956572066546515400390423623945394990748694192002042712826138433417042307405613154037650828705321271452774658133867873424252375600449933248250592227405114202404359094723193959001136603026184676159558246135533664618560683184323072099631268760162010493989509033836674227380301909135233833492749737875975395795882032279551366909460858393690244642062899661613611915155411895428913687176902704280417342034414160084371904226022455104754157158278074329521774109264536033611493939732955193904879332720192428317339945180450366457579969055517738073244424535431142729022038499070831015145130356555065301331873267762019092418492963482940269063396651053417911202266665192673843281301680035389587501903040214466167006752801319880485232568095289187417463962744421744965263715947590683665800587252125616239180714019351439590745136948074733442999187750075730969277952534685227869614927275541550412865255590403887682662963398825023366070129251361201713729544464672569565395968470151609179828178381586134363708759058589903328457203321717147917260466849511008468674323344577413572775910519004406672867261586781483100910018359919306287945180474447761779695549579886271478772086526893006263829932860534490186815933328600327801080493539515274851081025315956013240183320909965022128780638585529046877622418410229044227106741828098217551610234347046366873056425203704033580197010516507885118154981704916737750515964575177152899616875933303902006975843876211771203735907385419188819549974448712278401361705355776632861783199039893449426102112943477807673035058493342817222155739845548743684275490063790397971197552452383730943558222493817121961097876259823740354120951650778571729003234551027609303591012039555389949432345045680394132043192969542030072567744188413666983376266415543322161087391854285427057764194340705285319935220539411037953296106215816897002849923787587034129347492757682773740196394285296099152383848991982881730709384737502545031447134189594051138536849173458959709224237117821147932807150769298152180387892400788553729538300288595993058958153917437231700712419631585049741458595548991941858996384110828317504582380409269298605221352398537399318752489798697079308224756453976333482078019853950660273088120912128490234178186951616102238081887471737253986814156948744234687056128824996089189734691295871076020807290781288736991978838923876121321098144614935673171447110385928425995473975772639877521278089762289092387310197666205886585129863199313253839176862985159764862323584122165903650516956828473272248704402074262946683865194559998905834488519644897592946890891789901595329824120123229453424649334459589322499436991624048874936743244218076431055867154091885435170673908863719863815473914255577450741842525715648867770908338037095916512722083146096343643067311537815079316327183744459524063344918374872260265227523403383054329434221143381581870606922242557977700878609627388700928886086333738776911608682823834057208286129755713704037276451620840086303781493275837105432929954172113876200289277572015855845318515272427142593426744251868289852601913136638317654366125446365286449508560184543857758104659661330727467657961111295217404484770170820514005618537599253411206505123259445283454915735631345171387803906803374636385305967781579675029489298764078447955790821000362150515341123740570007683609939630934686742444915090406332676148300976229023239677804628262468241123439550431833645087258911109318486571681856062392361675082304686807630670391795828847867221003446626112457188679117659859250395451630657492839030483756295769641211550980658708846696048091977787024869398478008087427244390895430475828473970277500718878449721326972118472233606609311795115167388762771963125775422153219840193672630788266852298001155865216797477063472126419871059427723464973560749741398505007194365569964908285053710469959939028601888153756865596980962071902161906151750915198208151335280492208380962978624060323203551366843684641275631919352519564542730901499226498456249021151279221100926224437338162476358872115319927180211392704317131993718733407390101936730882465351602193233860229638667008521394898016215878920282868008998143128733355118320047437678075312768745117090126835284713882921966186946563285785607158685263917959109395868850533701099907191213399810019463094185590718996599683459526055355596627989749041833389072098356817340994261702478028519714871216311602059920532477269499153144890413181202678589520068621753340788771966991596182219339167052506451149141332540166793530315479839817979115197243385258640065923554010502130775043798757737784158465885622899241370540983765266340068004634544330831208768989795292485143005864104199001099501285510067576881981268984754219093149849697761787198129632630025810737011855811446617746082863458662280956047656244455740399314641276517329562558317379007241857084494537195465561935358214366964753541328314819824625862569022079963349442885123915861653935556284144846309183884339852395119066430056517163554225465215044001633088233359612247876922449571957157837187490735707567548112745564585154171829839136540052234396384931751358977906963392261398901864135295478072775713983576010630603903835798354669920228475127859091907039930836302360448652125581080970367626007408444915941685738590630663907189380605400286149427235605672764349778832007213954764297288679374147711729796606578709317443138817359067062753024015961986707191503602537603074449017876838871490559788952345672245315314868081085658022222907557195673384800085991276794285298357425203288956579530010985443128171004950465063599475340985630287350130618079419500352832472925712399592093363153966270400822392370038565456825262323424269677024433881758384193302111844796915901294511490778720368250717791380948019823695362764092791839353570500230388916172620875159538553067200773283172464943617167031025980149550970831956260300292134696354061855303600370834011256004085522125405895664042978741370415673231926916497141348618234797327259189501020675744789303965437954541965732765532528239468378397288831969697265450417587650890314517940354006114828061504256090245955761249873548802267363460833287856607935436657132881232621881429187569410572449242625252055828995621151360640402843313063931143078996912629203029012321758462343426832239422279298848033100991927320310450809896749996498330596721984573863672759698015497587915153829479362389242414393515016759253873691979638818387417382029260439501004450953287199773749057723083966914033745127894050396996687567661680452460494766727009724934029363874166138101993294143429835733622044052574928453522572260055258719772569101444035700258533918316086316328048876185303873322767531320025653206256396694795884295470938806270815953776051336196221836355618688637082955259248669801572728257579282611594020167732383716918793763410412555628826464563703276131686052036293463135960808489606817432379630335670326266345134154917018427083498020686107480333747823996812661319675409583130964132565836550907945608591323458682957058698395934734049144995626892687587763373139860362750554202355833454918000814121596671251301396375699955217604091302411916824042798278870422204722625977439839332660371113356573331520597912888545197396794768223658857877040189557084534012060705047803947088945112671625729151247463703226434519572774310652740018991320059409942096767980843981346025911365545897906326096720557444621071640455684179653683218375680955861011016962534087408386446876768657037174314753503063317057012572058761950195692092982383488060190412614165276766749087433237871986900156682591375997145042014674222143313350789724000837939194295549988889968261860751054007412396220606016437662953387341537588063589791053325674266345209869448302535391682764275148739178485708317395733708909516176667285374056446876304945072163167335119158011905517623610253479514666008288105502203576109879939211544191250433984881562085858644403826023345222562545504573198007329056056908873097579429428424920286874332234056191221975281637160693053993014584070665820003930395068803336643145725753698509029051217165363042751878501563612112054203646894074327106099223659520894988987520942752340318908636640060007467465091128116349278756801515138532030928562586584620456957908412450180861393099934210418872326983516986803819564570451555427573297207721798279638681371350584274085305726451315591715336812749537066920848651531476757461584688835737971958414283062385375107738424842845806590708569306019189061451403266583351994649801639434645062128839797268842484643474163078462834936234164068877694363003041299464080310104464804535466309307042353492633607977555005674506395262204961044261720776392181925547946402338422106056908554930909638279926106826686607161682470682309355330549019324616608225158434640765543532036487095685497272298660109404642644658149377745743359995898020157735840355541036816353425759271446091368564515195905771448467048513319979683928657043969131614328644868803238618883961460700911595912481425494296849648593035390137719143895561094094140327827063637281114016663409998227069154274202493601502870080797070303833112327388371143596495330466114355866029880326124946602325686273406422945549847910300449629769718941970144741082804677741053463136212638451707124518306325502954731961315627995218615095568724548806887847061310440155678789643016586495464983370784032168234457256368084877916445666769138182438457806418452077050050619436129190038303713246604138034475865396715008054220862925803681710662192016268769531230207246043689942692823895407898900424745531541053366079614289120771758254704251787858624045951339461736050550607511577025285411946223116740931219926785856960549972078969876390890792644623884057186487928734882688247595631605933869602456084308676546593491331034516489793967798074875649592680519170986865085351617116663839334284005258002784107687813986784320362505767103449032927295538968210938498129447146390236884352863397535964047632470917065164973721245726126630976221388446350772373091566695093290414690705174404645500459055136897567567107017427525162698683797404245746605971185194650995719146575548986569527628227384310977868161079033206898644872586572487306679008369392220127613447800459021158587107485839038844628351515654098557725909725624428502329708954046830217793339841363748178904112302608163341236140015350842731288206469763316962940898425898245136858387876129326336365368606281763477093396988356428933011239052070884996731969758557320590295453594264952471232116692602017949364251958429291201481908819407199752321268254899641351627043722019208295035028949516382288349312197499181465648162390140965730981527643307535958595658944313203198252672214362604495758205325817843628926251026367689927723282789411825554245648823225898183998404502117844851021764212463559976113672738555189536910064880110678015597842979589458498633353733062667734511718617031614976500616116150780054734051635666128331044875235634858802916374011824622309623017787148389318816071851351642116192793931560822500246171335891915152996913025861702416791321321019502656955144662383868248747485224370234631863565471798828750343166751219085344418082151855638290341243444263093956641952889978067154787774847665501340573845671245004745221688041817689119457988205197008108701264784743228958018403122616035126854246757807900467886433981922624737401003850540888842594388589148351744144023099207113530558752648430177197552680994996198252499811032292761052399142385199967449628688313499702275340209314074606831600509084904928851465858272730371808400965158021896830522875607695101282344693029632615816759590450233818828469949707498053545654520657913267995191450557687578437138815634759733781856791024604742786836635825382833859771094414462377468643822152542486225675765247066623786424502566154298879451177105615947978511081689067701789967091618164967838575454709612977773075686628636697084130697027738096146192062952839167650593346255540279177156010812905129517687011037055319468394267567447134383167287193412933502226078267954371679307541526805459456990633159799759618235834162793069104047070240679835963285170425684994645873777801186174477299012058107433183380753798592028506143449545971926460357740282584438745995407187576977017903549718536291119460048831347258607752539500135909916358422980691695922152263580082418729492670703366615487319332142397587625565230253808423600590056597478569466416724930452866045727352668698590832960764359766426733421011055919620924807059061035964746513401382506775933155213989969820809213801284202780084820335016835508926052362946303537550864930366547886966946356761928223337395779666777380185352341715015184060787186063774983739273806734077907829736017128698586165317599826418668732719189279135036924951856087844890348248762065153116285650131094226419277692746674952073942089042914156676741181105136391516216418006822958057242769342417869687780451896238715281362577641604117705141925923863847784756816851154675638638797397216254695543430927403649813440757827973694589721675090711513975071808329983283255745646925287270263633557790634907274751620014250082429366795903825961153220762773587694423605089497930287003193064474501629292009667922109113414411141919297295500439016645173096153679385404134611101240797649264079481374546306219881366378018063020798821268581184359427189141391106859114927540031017474442524130036523776281262365509886350479098112493636020352869486489406292368178945564437704070448053175092763332331577216531891954884283482025487510408063548825510438970953180993560693495912994179426733075435649734434491955352057404569839202586116289460462367488716606608012476676021726655208059487042840095116074119799381389475432879838415689674223564263619087208495189549598899092068187477490156959433187078062837681145144816367994129251639981557893771729405420186618306048480883052651952940777104010538007285274294076992143804167748992183051354746693485600765686027650240327584033811153724006384053164130054946209069280868333351077542712154508417533087887671185068509931801175545523357936108608606336266156589805742188246478984298421599141763362331703404838053938238276107105236093923711743628589455569800074462335460167688988272875290231328884461577960909127470892205610339347164215074156602654823038704824755205173901490823884777116328856651022677589331993419895508558485578734963478908579126003220171681088066029132669487043979570085360298484542130805169771627568046164457648972909905641684517700760601598486020983956975960092681668800527895735339787942728188680827856706899556431988487908598639369807194110020025868475120590496049010606124089675873027626164550001550231721690611191083154010161107144843259925812682434614234079265919378670373433718456748242920844745264820477765577601961911200976271715904333487549013580407052695433977376949919468242443268214285938521086570904320662396753275621969397810242988883110062658768428535148298325443478350487438134001502904333389670251895836888761096783019983298411506009393891593239120222532665898864536864778298725878848780162515127714166600267200464771102378045820223586910657362058483237027485629075195698211044498043828977884498074693180884104672496731408655149381287158384978478106466924464760080316590091533581783636910179604477120007291011816224497605872903151598741523755882867988206400016849257695440519753692113816396567813017656769273539473018224486537818419811247625736613206043346396377414034912067433165999354634942889760181559077034284799188854412781815365256324585919677412320395804645856924885994636342826541450700306487085872941858201392293892129103155007480150837659853802004835954436526005455131320013879013696049043115887686234244232272253005209162362134905500584922788913580539373375545389101875142797590349998058613718054887026116516477904296775146194439303381582187304952427094261142789045726319057826098754521370692655784910534133575913665128911096339334783218940368569897046286007789515483280004202421179992549426103819791799254318789427731510672450372405591039472376800876614502290580964362871152744347418375155229477573245433634962794152462093863387189423145527073028409549423788778562871446336443958540553987517232721082922005930714940355228685721234704721092580972443847160094880816703077596067169665417060157367404259548765071019196794038841841842095355507315859598811670212946691771048084187877825574470201335261013504212556415518640395672566393672756129596286186890541275875095945852285161996960098364942663633907282113231711247470716370393506789030676123929282867114374928076160814460478165271709501249715387134396177790829222949230338866346234862921423488533434340018211090443490868225121436686804447322729145291117020092861673566576536375571086149218212499168823799325846036478742662533846543848551748839845542415395108766276752606062816919521979388279248620177764680590619119193048730370306808679206202778668360936923749797103751060906849366859457745024340600848300258270269495618374158996178974996479033730437012137448129880655013756455944094469668197674773693256378773859520840985204806384316599076199754868148074490126334562595713972967336914345627937695891697989791308580502070384456554376034189282483236177158498228628703670405509650777684223722126505565905018892452356936747088776248035784419869110678523480921148452057896901980842223539259010812062486753457802623550155523788366223927491322552487406106959899429785906190259176401594970304430918486343985301290520970226249714197269290447592620021168099680480078860457664656981441480635788545274402883861591303852823356359605859942658724119301746077415296852892952637023585495057298569576470046192496687606030549037638322371568221981518072898999305361514377947621135183537680379197183862328327410860403482184007039871891871519915483861395635728016718276061983576035305702561272848425423053812337454442485624638507567976860244868872287739660647018594585282859202221912245655307977250190567877400080925998191515129527856650274306321477005160820369042781279214906546211451834696856976138345142417489037935067096296550752970477126283233696625435018332205602946857798357008529458207671822423148512438193114523466200596699550748386007543989749930087453344635369779853946289691899466960606822665277342752129468646542488875750776018562579973993015489481908911178733141711705846292151613677430653364613170219245311987768075520322100701441130981863933092259945490789425476561693003583047905518232519105442562379756509759058013925306506104066699797592389246192380501801472723004396483025449263388567845667943101974173318636759207935570025421155935176722125965340913340312328919873077146650410343018478866563629685619734668172719194184433270580515989535012537925121803898714770270868734017252634768940429246551459126900475900003147733668295231490179967839312698311603685333218458021332145543359869005615196935310031585507876988701485991906260198610806707401835382969082444686331347537335213854703249686839512843443271219900207921864695758277212700214058338121045186904728584964515967058771049690003889394580382248800085047979014533663418734882130253654454320984916404433095073410591691992883855937868376175391916078505032009184321321765855186788799774939549777968540762505499256254230402705824860228246851519591814208617237967848293291280934636934321357722891476959588673691338963302154498240483944486876004762158020097850474825241037244959739205389455084873352878816288185628899501391273415733258496060862592839400603861729127508273998958750277349682575907507736008918450153076307286459451181490567062804088615946933094093526623183224656454078514251566061486044898666992141867390440560960670175283535314190064072965402374625363025106985660433476489778136725776697248141370903813409201294032331140841413342096704307936212572694000799836249499509054043296388470335457496670147121790176882282258842854249290122637549773824170842544904670297406451144512632706243406946527776954017993888690126716184647154675291810527498476771745078016375779439382818509138955122817488634547235411442325637943353541787237558683043994916026758316315243577899377881072506091523998123585486410655257724486369994985286681521837703316507928982996199794689104073581734763979573277028933649645851624052391888317613740283387883265278591794771919379706851065519971514711569652559413653260501483078515463372040036808137852148352207289696422381711431095298865649484928888331842093758002618699196135630522599175679835483757776564575238917896441372410306131781396745819793231443651316286950670619905531307552124402447101960758010804026373908107682258235237525363883394218440570035673432033326155781866580576826655282417894656742584624682000273578735976643280781509686703424332790290301227766019975200993456958764335174704720543158624795261366576644754113291431717414179916027986260496693776783207972708739333472958904414109872001336733760489914835110887320299378649598560323936494336055492025352615195457914191152098315904896560368826287604214726464933018084078142637208028206549646305171217833202697635413863735613408083828516709242455722198842118535673442189587563391878191900141700560305890155244727508336064760801469903721805661685397839015799727206169384540520284837308733330221134397530644876503145699053585908619619041153024779010834508247887460256108468767876858422586136846860607576416329581656701181898272237677418916978472061714349099805491460650272593746853231911498850413316867780980053298413466164856233798183275288531814999617712980070851343286921743645865698672410654160057752841215467192542106618100702185564905212893281672092270617413062013617718582432125024702394472298820804267125541173257867175434082405020185251356723642130177418677273654750621377894093034115836101566718242704926664398525441620553450366047576441086740387296925509951849180892385177775096546864251782063817769251048362621013341589440300379576741318615988030912990877977145739490441391670622045421701225036311253215716440921631086006873323542557825036268965939860231813846644448262779792825102531384532690888137532416311904837741394154100720839379885973905328190246740854700236252085332213493306560062152900194181520737802443741611500041928966549963733469496533604272196985056040753611446450769761501402994357667479170998403532475985385685642352987334466873635598635606948091025918344921797640965989599496149901606363771135937546106873630954215298371314758432627379731728917991718404704759412272957893611602046645655035465216798053141262171423836744510631665534418896205770436960466313719610251887112379849681284588135396684642391808394661123418572983886401206507519045659589281483569469248938481105837194833478033284645797573658499649969130808553693995128750795421789119880850175508029492997585248705608661562210310549217278336480416115359340285591185105859836188652776545294818110409518457728319582954030258082070825162999414105377480488925294717918689662304587777958814886134311813203730197269770246695627263009729591217887179165586896175926510893190538854267542999919994299658109583299543119468741010799802319269669710427398678556218809379148576999182870521101694383302584840428236539584338718739675792958283284795908966022760798218143413331902996900824177484445574303032842856120121126153960154770672450165156502839994110539911929416363381933910861396896807172964416003390292217440421008452610428754709177910305873732420443083558252245383803080639813670689753934871072685236592188220646303843132725594765231955191547425077505078253442829711663904665824284369678872043039274496528667577335643619011373891913035554864843825109564978067346065414469203262237859554193244085829212405821380407207625468478213246755678894452375974074232362785196148044548610065551145259250210150793825547201103304817606079315870281164521095877702459825778019357624942976429184197010153814807405229534786537405088187411849637373625437469348150951459248818802227469655425249106578852050311837429599948250279617449780744314463384718813177564922143727128537537292724702598424018363133375762143445373394549978549033328981020441745642383176404974437604328799896770341324048175932998808298781858598954055262878750302884633559806257871436499287190033270053421513749141681879324971180137483784859863461975375506885864570726590845158735844669859049011581582439141472043579635226471641517573810332540227383352380987192423955111858004234923200345620907062825601557574426577403234577686112323834815674951973325650102455932186626011440741750394262029798511029913232154839877038729752598580818700516450206120224028960222333243342434861877156388394671222590780328185483149004018894358598688796322297757773254105359024201281677554722339480567448984493632577471795382707085375491327844143542365793553442593512685254879267490630385929514283862134001084998653701213292164043044423858270485462581314302685543123444330610919868347988247515642449198990825323114348006720591282965581244021339196031193104101218972565398651940221083299160920675637061681678255252514307828212860821154180655013350347014028819513697404425793411007595159648204197413217524701623070833791172121942770025463017854366306724073245559971819524760058208137478806945777235855555897920786380580789919306351693614183202588483278409175234654707105875458037990475785822929782588067983643493423177109725988942251519834702388141122934447218846128262984774329030965030210634872071052250208891297320977628077551706787787945548857305087980745508060269875299597290199602401938966025917893900236921344616649698383552011063894697608871735037289588091341448960588170860894839428272436550608991008077880522630418797969629957766147121372078038771816646472657259961626587506067063067395962226892154471993114954377188117627959786089582505377593063142630183314057054518712316780858361029406593264305033095046517860889935036807424981395388300472234362378869055865375317944508830143069119830397255411288021876728770516144817904039047022009002078469176481360845488165987020089636016480212261852574308968381596814009615800118979450835716287347004324808423079618558792193279769455144299199414914833212919909490505753291686271942446393130970810739943432469374425691346084582402123333225414887762601328238935912271585326826697882619751130771109642689553032992048071963032223493049241897606204158717490119051717483998484903131813793468838705310454260025997774003132940131256464220425501261465913282286137284652229148309893553505650274227552900718259228906938471720101063351921162001866145713583877008228470700946033383970394941397206785050600007354801501426021040284764534659695984420927910262240796357426099611701441518228840634927851048760747675015794502245632790909720894106307795362544718832361234268657416483300779812548203934189504809948676450402149597744538856509261079577106661829321585781173031988645722434930906344381843324792375194175068379827808080118449273375229880290518043361614337427600419704076800228869111359588165115627330291367051403352977620014659600537846298850455895976251817443275636603696535990153632873355839962493633983802672687102521546389027826647420351813225853775045847221899615133686391210668713109763675980344649502346508078925381364819490814644091229168254153237126800462448523088701484449335683023664942348040206582977917065760590892255401001749321310958767479474682781485611341886307085364712317247948013466656766478256675489021352400241871836875982631669068454088251579349566982382889449848804078996842223821351490740107855560120214105094099899000318491067953790018451781278706387314672541297025008900931076605444785949039743055306745854629396874787486958546101966246769143163885449969406527001153138977798694522459144056468753020520504500105095453130951915975837486249810045763419109976262858829902308822807137577776652557635387532781050743157644075260943340962923888191090421825771747033743295288298226566101286623778284468497529282404001610463049448620899796684986768095900431966558467213811276388256323640383577326009089928622724765818280184143906343333617365508044486841314696558897892637111472075234889489623429929295465585458113518842241844333510089653047897746364880322602686541430150773672722220507170529095799131336742873008312989257211468968584327293339823499393013244895279821185214293534559015768838818910353747390896127876527381621368738597368518464636334751924002606680822580379222398019030064828201997292212526073515448372539139445833143132051730481523974609905160359692069580098132658031295360968180444406675881328245132055657411812464390183502054182988225096012412775502807596490494097477754572325365209736572648136624130088648960267934252650009104875510537653079682240267002253887845878201412121287614359899807387663912826476457812413929250562976717591685157388865253194812627420457480699481590147609087433013534828049831522349550657889627306358507035056681870845869629182595426187588764926351186776376232562925170623680540573021224823437569855638746686406836610702023524537937761773450072252751794905423306788032257689561375466568917835862009121280092969885295417200435105533927620850546192490884021701220796317800298368423109922515552720332973027067918500159351367769221985645506128477967347963788321976806375776053405268400593629300072339582136361237634747368282701705198324286962023605078806004138029468250804953400722069109820490981507519655120933207724290642189626052707724084026166767405661102720780842015708222383497839618563902157158825060853463096840513863066431754299201442603454170477424413260952572116979849845989833672628816694109018061040817607863690407960943285639114970588232965455290506360904375094151427030255448149285768072158630016540725331884580625609158262379705739467038847620198592097714598727413988516140546892862423480391862880869437529613654823197376038506775088119914195745965728744113761031202513496823292003065769573179044689353794515343206614357354609178510253333645649049638874185902239513124876809898226301082952157560074455896014740025199115700917632491538923867585525392013188974715343627530374653122319156153843264916104696660227959968365243660849236354567921146800375998814418465188095677277389599009692278503765426840898044764384171925720866514271450632562904259257999407701848259445231029576788518763830457129820338564780256729756299146526044171053699518435310665617810069241116141316662235889229357082676038266240718351652695191043526429823666481576783202089273438232296029497955582588727216960287853188951279934766313124070120262728146548781338209289826401047275090848888602868967211610829004135360394887426274468060804160190027674141139059828656182322868024324518503685047249660730259856750707825464799115067471996764278029342120532121650110668569940283662713711244849648019527789338485328278898977108611153032493337136937719841165082876672788447573792133323351755035293136424433930684104329148418789853202323738188521589671919780226814468450439213313625349358200767218763572024439824256553507097367684653761284581292414583540480255945885272393698577098384254615369881359602604276492324829922849656605437759544525868699570468449236666042597402825352172660901109595833519834315235534820060427237379441571093465779194874802391575662142628045964854251463354456235015185627471799058251734442827662472267834981206123123105750377147193364090493555786991089979843152063075821972376271555505724645743601438248338359749812950102204321573039753536985749392942742586465306351139858102297753630562489626881761750817332343426385707668377503897422005375038589937512302092272088968667326932454871610806832981342801447772395772958364855236528186823359295074935027719990011753138188132946139848415405854598175586075711441394868976984544448667668002709276276808669561873372521479789437871605285104132987660247668064690818789190732991422954948983121966391994213809216818805130237221590674709031409668716309033373967738008402768415970374408749381513448990894822998347408680628637659599063069423749669675506635043986178937334181419164420053160519321564371926437381946602158157598773184161331662162594881658491383336474928824928230047835024563002834145008319792067817960730184257057861859600371915369820836422169720845331591248524308687186405082859004172051999597234456546559472586179325053951682241329988519717344945275394237735273850696695987124025626284513598574836905960258136168680507647548155992725093525596320760690483683561299788994747510067790940868605621753293107598716058342310574499154153256794702682141885146593931932290857044679779388112013981146584412515311931984046942207927739271383231694142666705301882250165107595902682288337940246189311395354736020779807598229662023494933837257080606886306573740652247524631986387287601541441506866279098745486196624668026170091932702564057184225225169576629210709944910585523905278656893939991166456932055787319684121621722912414266243958519510249601984722275936442080414509500945940179641138591087655151749481774696402731966313501176097655307560025468537005889392185257955708592730606657596894117180416995656698664092365828846071401317844807605338669952506537827486562602239361365791352918361335650270058539614933349234453183068727831691856272496909832073645563996674151534126611977515206092146872658768894448667512843630928391556904242890891340736732255210857262179036827220565110625950879927897421981051856472294537583796679021196018148808589428250751113035428303677929148041391308017963303392425774308114648083675104540277971436065737446197754496149536479432837852656359500743069315192439414619794626395675461139652101680768684768893179210831514197545033692868959628229400416876795094314996181135079740482491664683823240451824937695846712975909713829047270191438065732804229958783478028430885332881283921709498847497909858105498974724468884239055838070273547931559536069685613096351395926565201252807536440089268931166381655571443514896983173598140081606274264703841650130893673628633874674491843937389199650533952249289065877795552537809121521476115510797917395662800055046002319201755669567020375824188629823496691339359144483624337066230562504004140670726865311149328922201335341862007783389746842291350507082386223642811804256737571650980699455376200524218589528612288309364537509836833798854474235790363344583469589183541084155030236563970438881585369512135290744759247870897868275368862447036758970546578589618067171918187983437772957165298546396967236311763710038289262920950339587553267866080832725735395252717313447258791902328899560236981040265217392498789848194574592116521360558144360707653301877482740125115214153200923441566919055199016188435820731530023255212733736905372719839392500043492702656114095411024221630027593793366327290168153209411103250749662383487642299839217706173336611514777886612621664358780541747057059863606292987455554885150707948514903859791551165732534631299529478116366728929758472375312989009660236837763773854518716836801758954976945370672438225893052555438400259099625244828820550874529348806298800626408145428544844555550342484621400174867515216315941374252462074104892108783492733140015364566476058759026991620939209352543416767925258625711170783490578841834476573383902362392820005643732290751501547088164669707639937800216770645750860276279410878206546398360866748800170158567831146849620997106722129134069718035090842987481258928224706727084488351429487304903878487911299637603463304669353813494120231692001765102842258457091061549363381480036159355598839792460874303483120608957841893414079726793087540344175786365654738710381829952104735723071418870664659693126562157595550582595043384051638524824834724510866665869139963853560719647168622446485720754340505184859586857491238509554012557413675334028139591936064985653148069858355633919297023541983821136732515627770238059696082840356332758628031841346372385455648027204536758206694944053868438669984715464945962622333655161141206400088193247949749521188258908284727295517338985464290118418867399384346035602937210429833862683409947029703419064610459972364518589260792846309035776892890395402113268938019756321855268725883951522962344171540059009451182511292465564705828393355524178932408037229890699041694068629898461666875009511555769126628205092545754926593806140120726987311908963950163897042096598413880338974181506912394955025125429950758079723717765538377876064440226225246727907038650742553923452031091314840506725224101637872702195030827833949747590263674080312620614342017239261698242330461247637902966861441617335926529856907503637465699214289261579870848857362360075446068830480762714829419535925584426466497350250658125528618966215220812250420243159121848901227443610965610458326896165399482622952249953961278267446178738250246450065834405497983881623586138482479789642646338727394052232315837520832539146057718634357914604221085957077541665032850892683141459152342944769259522465517112815934627728607233157667786933715279629392935965541717688298163496501856353208410399236542530480332425679240797679616420389986849748174610851261567331883324263961448297706210474900395888539094490703710374322337468928401586187377959623486784090758516642490392706477047477778577489333698642141529187685662746371133404885022128249115124129117256737642052400052364536854056769602622884454049416423402929314256498475086134333578485651806891042216441904958726624997464012973561942720342710098351914167538133231955828128271137453770767082136899056437000732970285384627658404570943519854424700916272517193219555736605451825897475648551565569350926717683618237234342600918109706407632173990088862145714265287281952685891243451724572916643202204672974924508658884164729930378315662268063741459038866507090681291017395058752295026343933618791760581619670011852093203370017639710687851151994692567372906747158342949387461975939769195402059927208699192780632588255082262985965479845611717066657022986473858596496545587680048370981704768641084844081651197504558098227611687524285840005695569881954153282572827208788427150883627523585647668322814664097616685278469275473972836558206200545470213816023504347309597112141263539126634443835244130005459768632247586536829364444941382796846482444785892216617368226075196969453151532225286301719791570663651819086236342558422089025880572645229563478302148740093972263067728534428557065697525948408703144805558222139624461920990237233510189934858073669409576164967069041057298994044145347734269841164444496314129874926966329922691862649377481751453993678399960630952224875416858781908620858921697528871282000802252181952596991272555604796008391860910128502634302132111911986277054659771179366347695345103380909704240615823442644791110436047371767672381320394963294323787216517955100696444757801566040359429019741613152316827941925539038703533813770926351204647473356059399804398305973893972796829493772812364846492251306954306667553945019110927009042369771364210892160603613056111122087668616990589198428713495427121562810785133720934861975950575300950586708056770531908692888854122327844223395792434200877401824801176756156340432538977315363991999274272772269906889743266901240308309653074123694204506098404411111514713802740261661987313038692311868731252500275639103563934120855890145680959664427631646777660464901033854647736348966345462685989478649620194384336368035773339303292481361298493519773608882846938018498865889314217620156556718223111737186466774136820496637454627256542824546480478425640670585893683818843691362508391013075701582269775045829449449863369268212932364150006991621381789338337607975343290266629683011861855981946162943303415465901063275057789715273984984691729959937129315285368899690908645065496594451431901602072380073536937185083428570159245007533968113295773312727807134125010112770022483846525482419320334938187212472687809795480258385001655769493203092351911395786735028045425106223655309076102340097128551248147989918846826492405614918216862028993552584290923056565962713597355868795203564012362431392732979205413347050694693025175168549010794054224510938920256789438349451399977622401246553017134266595615021933937999767546758196628710657284133027790050501557675797398812446071648804268615013364022566243846989104262557764934328057651355482825884020052231060702384600520026189805463712879396013027209789453350921287790010456873153813359051104611421750651077372193195978415211248221427162057265757067719357558115884892668790662495554632524943054327665884248268780530378287654372883778570334010968839332275661523924277586515332477168006833150905809615172218353793931289832256972756669393947043273018362537497169852792445479038938681743477311671052700280794617307873889884006750197893675782254544450417831561789809388660099522284417879286137144065253967424794755010573718492169898419071850834632111575757663041904911030631015112695968723382937647084518926549512710186759516108881116486912121808127998899083527140392814920675040416625026039316169714527775006145763881625203295096472013164645939121880220707283925608968130636230247546750375326037310319010355824793374461308024622585411711978861942816167115258486342337382285154055355892518455637147926006039753920485004316860471662716184203477769573697470413078542023431931755299479087182325473789044086263449442398902538477509089137378165963118726617551797433603250098003698601898606559606833975239078171871142718145179016961951599938031300979835841944408455148449378344316599947238943680331138585093466836236643909567351834595925615711528623516085549629766716548474595672396857456461607807129908638761095964817030807529804021359068007826661591368990411766029510303295374349109633116644677587074386750578834376187058686033202543850013618427963095886361184910874389887875048075026050186345944070966156020023192283455329636692750567284273881468161925746128053032733321346347419400307014782823943262168431686175461716906468813255372042635622347620805752846480171999043353799821608189194112215420299629648358826761784667796885618565927213887826740648739275641289341528903311270729877475155727450979605525920408277060990861390847278466404215310466755348220543247823483469251685989247112664087123821810166206514743770672265242806315679246781434681976584089344810699357382865226111147188804064523519461789834631632372746795638830181795572725895209693118105653667056988440133163026222087733296394403621725084409770376223359848571547966279525924978393861960582981757693970713520974149399940655834477592258383507438370266162759470218431324979238512979189549397705196446051646281232898574779140299829722375489352203134704925297065043031304147277744061276735052864961293502235340620911479513970573349979151770494906461786048054157936284596889293315420833184915801300402988177747193756089883983609903568196280310714766077502039589420609849356776357592288954920891714585318271224879260300567829245480788262867767007565288721423634176790793348481551198490135471818471764472764971257041029974717449189889253385978079847451311698148930835758496571395123519946987702349165263599116392470239073334089396002622426117981849726776619087564867104728761193179958447392993267671598595447842499688937689251552504336524806773949821580071304210933865752780444719788145557001330637408600492771947839046693392760456778799848805825423505079381012049799119358823526716796959624020540410456067849083360293940030150864973979523192879760715458554279336891891239016887925726444866785248812647861547792102857081738985054753950109186929139754658967639348377448838894005660360778051980354627858650362615628395126091771954356222300833887185220360543530909121387400961728393479918540058006513976509256098598356386664395447871405611331114926612919003064361586193651295322601535832237456029141359117089053023820411717306883424556726843755836407047256574175137947715070792807655113604000194416321263238759690805591056405431651481764355066426500915915312206252766130946208211519252751751819012657629388960167672054034154968244080892359916492298592109912459610231370602156376930474008406309659800792633503929515458884423013128343062035433583180198491760175420407188851169921526960480383862535850620307151489346117786123783301688174776534378134669665205766401360058186678055499391880337247654686405280951222405121255175208156890602097048438210114842905052010214363787399120149826341565452159237669881424246385936309383499450434317676027271067573307754042513606007416210052919390983909443254137281319876403798139089236701133116977808480941862357133181419904087744466020949704123131036004939683728390296015599516901570457641885847595168417579969513017190131676565330652851455728386831195649256733027232676355673029204934094219864611977697841848581096621250937123776988310261282401224376842520841652478519733820679693512921430593371628326632368861949666999949932282561961731885599410235931781559532294015130943270127819231243109642842777556910691764832180276377057426882411743930493920131340684488306977434144661514253393094754963460525951212342945926435349260027498225049646130349933204046863083953900917624206762777216287568423757357631040487841060718096675301115855017729186038845124433790257618675344866325858681606023675116102110620931168402197448699163362007746609141163679310393785957627451951604037253488672802024928402075676006009567334616863194172118670614803382826829875694367547686035960936538390228511849615959286513526629970614342786841303463864590794921986165194449532622758541031606760761508085205852658826524529441755634273585958277415584509460578417188567260715512922009182253337262075316356763109747716311537725274146697719048653347665565986574015561318164023075206764715465729530216372925904646694450908619861795954078874870593889777546758380649054068113334402402979440229926913474143594765039398335838644586529717626972958026171394640562310135500592957774641050934517198886942177322001715468436597243437804292711787358113250579301995466387496960242025549552629628394050119579146762261511335325331323087758999442918208825029831987729877554057999776417261679191257133027116475195810197351392099497972894036771054287214971697638666387408315705261174574714226867993503609544666874346782030338166952093419776443118543018835886540804167049462205263353320573102960714071416964515252058209405995104156759213903323761068161425956652570820327572429948860936499507566144992493828139210010513966385819156778521834103367015278722086514529736902278941387223224936082803247193034246769022626262977692820197415848852915574215302816458986770273966597807431026216361267058761327536221008881960553248425448903643190323396339608269592483868355183188868468743752191703867097381112652232449232750200982797022232975726635134014652943185898502219046852723644229061601950311754646040185816053626993077384031064358480074427108260320216278041883096360194347230894458927846321361584666062201356028506830689688190218123540643481232453695541021053566138246645765701244100434375033633852737802063284566868040288758389211601101711653069478678896107106311899250124985270137028750671130857433445132570445990828980063638997541749224734033658448691479004616628276757177052859207981537683627451457828354519553382675819138337231547502305338475929112839479213372058976846932733612772590831951491832444209872791501865770039857426745563444969165714856116300127951955176109114335979359163407111486975253179811125286759307511128106986754810891387176662623827804195224356625299865188381799569884241105476158369563220767666749195761390512056570874539261321015430712434024419767955391831674573130775366779202567115587550128801307707567897626332647651972699301677295690523469752183309995058752259290997481812771361443881982259385276665213723805906910530168630411812118057059818605616043336426870928060772056951084408488155425522607059758238687504687941442005298861515784488074430274312047306943797379712644222342269901019783940520800589624149433766322701185298978137674959144611026392645767224570245610158788562357011402896286026550450054474415480420379770768121210773162460449952423426145342259160441921355624455690000287777589767819807803256826444651518606098865354516454866799205052124112027495490223409773057509115500709982444524443217943577476281137008985377465190796629562471011984459983375701166454282268459272863883444899946019649345744934875580612944494089524730692223002235975097532970720199312615172428552373753401915455558784653074055264423765296876262785714059557310183952408127698343527954139828137463813085596618771953156879577964756484762936127373391722388426416315034427204887318434617134224474107152163332618962676179544914673539483828127932575904420232232196047539205876072863075121726288840037192235323966699484089508686820476055083859411165009622004752830006587057638469525357958204407407068364418787619241045613094833391336638762184593155226583848827571652524813265115297967480563477166764980566478903233230438092249735298620623993516386319116201058243602003556560353682849147989006452444405256799524760339531007932014828443595876592824700258647943316783881029767299021823928427228084630252003129978799286907552805169574541648365830889738905426729286582443369613559058965378986309790728951290669824005166045003430771703845798887002489168012482543840881969730792906288229770269534598357649246941987465595735290546200714192690412034805099305239771062644509770001440597794040748514155371795543012150787983079997453608778777724053625457908405986523524900592180458293810250720040916443890538046676348924506208997276554320712986174765531985358253211701872343273073713310714788565910991601324700961595978090196076883321012809488284603224627263055916137764676177916113460859257839177804139603677651256114693009573522245264998433633567199424050789142920640238170724995484730403806532053196642710320882854765369370378514516232618314211915685105241952253625792121559853077402141491568445599388867651968332113537662667993811360501871669157405899086544676577302615589112050918319005481116719713780713260841978344503676711378493435313766002366182718275017725565431209616691870311575829808679951271269135426141105219635035257760359417795492830856738152083131236269111211132015562772334925430344794169081838096826637953301557239013802879200252321918722429909244495225226688245083238490347317693372691855043895746935846273407585361391952280023158633698109547475080768319946741186083962687067059824880918047329003525037823970109090529007934546475857876027246802626730099821984224905986880740614053605417507714595699740649592010694915179072546430778364948465131393216289331389078345856271295842832330869955746549581637426209731204564536211462465025087908942779137695769125097521541507770433148066037708570382157708012271328506748153208932861558327010088359742240363594876828088640906151920095228708102908540842122489941691198558441606421236509855918236417841778751439646435719874725849472714023346662877779204855689388282592863820301828581409349182582699388666136458087708018396545696602170517271594268061061558118911316259900064654559764421795021835071845292990128288958957940361519517297262107916556294026083200146007629217226470197664499049185751010725428888078505161553708517706613966302589590224959784251649821563579819260124564103704489346472713396402344646878005912347645106676460312274266595093220795372391858545452926777063666200902912198903434361479520060853390893749798859982628080958360913854367424924330096230306222161951697607936545333303869722228938234923561079541766572169649603239570010053325978907052266575784170697794960478811514717471137292302401708051153994620693261975330727803646991961713812101949351610695824995082549009268555551268949413629945101608235629814373393769895417600866446777934320609898513366787061756098809804498914820369197776343653369513663560382233809372930254351147561522141358161613418170847384037173203780084703858880671550153376985384029880165441103796455814055384246254654021391278423512731135284608873538834639752240198180211986619213866827409191074966697618168577916126196655124459197151513707903596604551124461434589955538202948741514569703104978437895800752866482033882298116687673301590195462865567997358481471275533342618048572991547576830466376133945314763981355362935041653963543813139710146646796934162444350429233190039456954017216800575411146018927365297528636173702230228233209361915049531762570025276573129975263095636316260747374787158774154043780198080997968704472020059590512865573796268941891471874284740416299948568472436515067941596510709785279042094332774117341171200452999468690205184841737116268924797772982930446838616940485387131794053529959757489281352968665232208876829871200343886900642344060403834037952301890305248899322309511707398218481023279139820704104986576615989925777733739394647984588475731338109040454670289433443556207076819393704554832993494513425493609338341757127350704251927687035342962951456427518255057069733516839058542388355040537166745945865022758917672255077969441027552158788777442050424393162750944795977675313281160557042154231683443601335660794469688881684691030061352987402581888949962458172607824168088098331931757965402221795493145233403756823008973698352400476466830685618393530148833613111595740375243751074529549119609556482215792366358013556527468913206408184670278386380186072761545086038513932583672613953687847555354736331541613513555650067331814320240404426129316570730347884812380372256629839511639737526204689155592816612073168608586477260094782907417735784466421749080186956118236031022711069930507993276114927690072439742088347241919124348480198634513011582099866674393719612276231174407003399005296551577125956538782796004478924824177839272561639834620971977168497381563217158298417953847417678422652556934589562125494326758172817944225725934932587672431654068224080708239730101029079756884608800103126877747649819442691914400059837321207470374709364381355075133820103464253408137169719859005330356828500025389618652427340635074052715305441261135992211215341000679037045079468076636905077648075639868394624619630005140950568144381955890075749633177823493201381498102656526229099609702994260785114404375543530523744273113497974252719502625982640849783787270961441288677645026816843546512079405731116433330816622775855338436332331980678384009584230068972703076766441355813578999587282943088916892007770525599933948100840184153240444988289657701310463327383802390886075321605770873438528094110186216373486686017777275566880769043899820911618313076218886548890153143915111079630346778869374703458557088186751075574731753360694525523992764718836472316783850458334863981985687295087598127940150637227851517926340344122377624835801528219544785530846299158972474792263848703940508991767149639531681031768001586571216604186237267513474163756790510398809336337759663964431871073876737282010488836856842774587581874044598518945860873177781296732029992594437590512490803391528329433233228160264788968561681076991715153667363973734503413306816771619768767981502671389222108824095691448319967673071138760195561261937146463623972084440043259900554768968895481362585500131992966952972201491203797382183064664413475731972721390197842213867828025431934017752914144319280090231344402131289042278895286377105977711912169278989561458071654018449500452768459233037168945926468209232030618830300522306664336514539723954859002923143705720812250614580289262430599100363376594700035961929831745597099062617219502701726361446190280796687536965131366027543303304860820048314589319001740256433284087863250187974305374401361652879616913137786745018520576267858107830478031781083003724433372936769136618865535868452847190522337341515166652958477373657057992669943437539931023201667773897555834668508276356398386483383876691842745968491075666015634272161794395040245575559767587417276776458589755857513271191018828749717191154700040413596622389031951303756066027832477921207980565737337791231338218890440359132083399245408526455641893746150609248464544072303350511606361148645915405497662049039399544464614551937710564599194027346524601874800789338332754441816555355056702798218744979655699325286864898938613962492944988026492106567845544375662020457774744490908525129844169906800470789215177337603753583982289907228477590179606268588817012707307140843945268987085629960410000877298586967314414077081945640211381794525041040674501408361575456806874921490315288400365862386319431284841047080710437328029225478262050839951741641263489536333588553563560090477640860750597385264575100674472562299007384993836932419418243737671597381124934729992516562272970560191545106420228336508825517117345317702598865963855243038351916489823680909481166460773110032849119947544702567426901764207690738176377610463960358187785070071434684539733987729349870387095089531605743626129364262587207937217205548109758275938857217274525765031781379073922107293101250695858259630811188598091454338013944201388820101509448374789125583843399756210512867691328107207664567485299404456300762190700707275697008574884829879806874020394948207098246585848876572511769325264992698927657821076543473373422282518159915914368907242248990502008156806410318195302021195478334068787504415355404989810372473554063268305531345916151877040663497728014850750283444688745088634378945884254631393106523255934447071192278719044222378213717123550881887466149135540927635147679244092738657867030302158559701822520872139761486515027899217468238282407533338591983684968910842551167461413162012440456601322094272138901931591801040688716234393381074690712283897970281478984702825118188265130237197037338908275253428429357323931659275995848678384412015578083474914117156483062169946016060787638121779143499990639110253156203835033750773707601586950262566061453847393786979285855213766917669388506191208100785006155425398755487694446985607446458629267995953399165485853656589121481600629478977082217282439638166784036195438950400552167097273408081643061997425168752073612392527292798453433247604611027718479660852900789264885055000622626780343521961807032118889158159976796049044605363893966312683569013605404846789422422713781696637458903868305471027472310312257281797014786583832494000386939045540415452282015276073462354416250881402055017648455369361072980792072909358913238398498050949214301060482242478668491793974135696004807869547863711296427364472009083897992169748382585969317199222480222879977243781404069278614037699494895917949865564120615064768378079382240814371087255844184899429655244322327587362814794704524888887942822950056753746734825224820962622422570089073900970110968499447252234380958483744284694102845430859461329407594028812461799677672501539226418131329567867023973232160204709709313311699602888652902918876617526886874562631760054799167123032392473291555148829869838521694595776899419869877772797170963288046927834688989320133520953595307840697845167737943250233674394308741458133327137375680057059322216877244927725372160232999138802892589845022673243888560883404149298607525675208979335907074889864480142515171962488692763545852596305328623521825825869471617793477593008825061070495712681991739388023871226553724156479426545358434304308035745132645182350176733244955112007398417045801093895002625446698270912216247098188351476652349378677877634195896630271932388575803098883143033629659714742994244046370890165492311646799050758101906526482143387938299076221112418115066255803780883802551441853731473431328946741033866428603347805407940763205279820908152519102042704959070594214987914135494259712909970265761027049757503247801178698951259227748665419329175853238424237433418454028064656386881567789673065523167841529871985042139858877982025388740025784749127244588213082972498884781173924764896757202531587782068625990544801068135768342675584616304919557110649595849045761434669717166645014651105323682043341655308582666386835119730410898624351358122067894728380630978934027545021291568582063568405216261283687304317777478862609235794503912511068345062026346120243391175931908444110127772127956444303335724120994151852316888973439592383115509860214535126035765041030775034276307725632172823429098411163357224419327031037644245321508703542391130799169081984729257018968906301920368305135583998288355526709314769073619950572617314885004753906921189877427593531580597214832725442194103294496179556298741857081454453461393216166589142041512109221473143654411519677166841071382079315364109286572379605610990398908827158228670326014923835314317572717582156721946766743115822197311464464106069876968485889342249496612680340158116237856645030790426005380118489928070715745948992963139226048758407287790818535376468644641384923403995685027267387796544701417284414916366274293611118842018315092570025562431149693004069652519317107403668442642485479989845703775425384121737861335275766591513100266546750403881348130622060581446299310711196514459803599986386639868586891119765401324489117767706996033435310665413616987175626396145047136122977032198048447788142169766279389583696527897969412193737777462448797296100486794323592962666252790340663045152518163487739251129569351409668481456153925215200288710582500068666692522304683862922534111739959721292817504202192355515291545766128281357187605428520781530078814367159593776628031461466636683656198970102184054149464853182692251945529115890876683074970719220134456118830044974715227384346836732790999076281956148773117985049143430782302705030573297859144442603098174857157837381281278941896747896703807818471172539868546595043875127901851454604187740976259281051182838981149133866027743662915388737051975742069482480880195750482325364721302849683664637532302451366877173765080462624525876185753190447009972144499853971474611601679438224625349695759366388730144725576831446641318144509119795256502787841686950642200508825743115138110515727609521905509639430682398284147256495723712440206452972658557272649914169972698532804910367634726620439997499149855123406590536573328613299168444783211420786496222732586534507079504206927793933863098977118524634693742865685721500900723300427994813398323107028832729636023600206842307370931428353422678392439099999030350701625223949282191713529751371167805415694388878706818923000583920025457757052817644122063575568528372319378812658849307487341328023480010065722518959273680903330968266805037339906968650324072596202046299583055054944749196043517889487277169587457568573193305446006686148404520485286218355138103657901009768382605649571642711750795260673005115164510747420304587314027112511988466719530831548345339507625459269673459819580360309434915518371665970549521809750666770180492356425819792280660858882976410925575899326920763780682367212225399033877119227804091552310121731612269898159159010594700036993340839612612178769205598038927453209310931269551642523655762088981144403557225139586223589645041038805966794119060846816777534896623770401546409760390825242909045205992748657771466569638247134707470145184270957385002821261159702594013903107943114599278290174670375298019712176562343090839044725708987159447564658555148792219148219197501858842981093700487024715471124917372018524711947132999651570113174599770854191720736495381474902206721559863745283703927493807602548426019384521478452720136323670275105518948396563953969598895975924320559803865056391974309548555494895339698262891707080496165474845118970144426450468518105629207224026492625741122670964937051470750662457718907699187385915357480217818796510665622899621175757606630781371325280679354324170104533095755359509343141087256014707244319485447607996965275235588067922894482036023212558308136233901891066401718468535897051892071566221127022064176102875756241123954533716374008122523996036335895353857282535441876955344755159924513117835719116841464908416315166979727764908891285464907672319087758168799381750956703420592705989427997938084004602782461212229875044470755690028461764035197619386972698405524737907954265018825873019748035026773829370895856397656448983429192283360366551515581730971342764974073179235361924961173355314287451121922438421821042519363502216121617699235531393723490044599969451561459331511404957786943394207906845344430728624897385616276594514107762516284862371337834207236096434601984343371754186889660755510483067300637150729888164761454975169077905577341402561641810417485965485321647638369088245432678341852908104823531067397956901125306760897202181998813206640337847198181948265800402326186319582160247353394341061025912568562572652376948656035323982082227890649856913342989938003206333427305910960887358127725224475225988459133038748136343579815624459846331742697321890124967696697762641356618427473110920819968691951775080685821129159740041448048192239079865839597065748607768979638326572594488576659378290814015611676566121309061664850601940201312214630925513522555995153755733335024517409183788705515721882202079881425189935952474602439262557360734908041060910363210547627122262777502265895534169246150353392797209315076885108814191193693568115093414924648868673795544978694452489460814407845872853566463383752032180052562370335841345349532479870071675933811423679380887191064124369025490885864910315130115054945591826128873647851921946859171066151915931198644388109967103959770913635296246742860865632398467803461071339373015368923424979575658652731014260028639237412269032891271767586534754600275435331009819688911024632800206684008551238369337768691543462130626352097885054555199477370739211153493404481746674757556076629548283530242529791967848634022158161678726586371326651915959738651808480424410032807985568447046805063449711748162455142466689505207468251121796095345574199423331805301362463511914175754165700729688010522056575952126978746471212166418463610716128249976712867335658357833830028338213241039181394568628456625558657300825739233358294004032883787191817425162599345867708594368027106709112110257628969454271172279573156030189451305268789336470477471780435924939711364890488286869441345526622284432401929496009583160657847372904009377798013375145042602184473722388656558110036259122023455377729047563241030347262689912798312106222842705804686271743423365394977730837206680519119465453489208699867428334494166217906659946563587258616138953449894306992374508369439491446696135413118826179964297116857860579858218003697954172795244741521146854524670616809769618461898332301777540429704010810068390351063703485170160581137741512737943591918395038988549213269709402774653772137861470255346468088050674614258465625384073174522483809711834827588196716783635267115557400502185641874329107248216649414944785526376702463645919615512429052299684162298459331231452298313600550174328940432077775913072627802171553886147838427244426684302971183169967301427844021972940015527042532917891032555317832799069978465485752230247477987306751428185187266127656707886909867885013411145656465215573584133181422449035441246579198555717904941962226969882228775193227707615552682201228600378740682256658629048044645492260432504289818822200583677600474387721224225551387454217661728965101394068801570805265231155252942906084797243465078203538666775862244376831047446594882315978444744347931335313699398401117101078512238768931843658085635014209794106599807436444681020226391192135420667426231654643465424367820502046880251081721544979373841371569232705040856974584839042041079035610377169195607946416227739530355284756059291665971443924022147851377646732719908615741785661213856477492684906506222056361634983646465112511346491678036152398833636174347282756528339880226302018477908947510736750701156293138509234374330154842948841143981288402863810568211012287938048688941368345981430002566882088665026477507504565007396383717643841098163501353148757039105196677731438643601277100869096814773514714438048809393068164152555252465235342300903971180677545894429596272056042302957135145476535568470992417988609868081268725617254461151947875872159761093625995319519288276906971079764060832880793062770757418092329416189748263476190361292322355430669586432154727388534859636792237034035664209258864534491830010546725143092324098067271791382078653312100502992494294008168155441345724489124977926308343174377372562190216889521685057801598491042698639082361572146500714558606309071758173390481430782063977559894229171741788996253352524067527306588456111679981233233197506690822069955852603760460071705009349881381705500405977587955124206046344995495500970942382638223999918882644416889386902983027000509320182353119753310819292861299110896125366188101116998946721343879877848186030653173234417728426453761470811902535117588888985158361762670568449981545930681743758904510104683660418396311865516015029832613733254762355378697288826765118509563912698193648360720802684290527762017492971460627520743489374357043078082324626935072656946522406999310345540556866140109900254457220562027270544520731877779191470691552188674911624015669250893408840101168252707910723835900861419451508470441627367680664257163581814399804755794816029055310397038216855168943706214826107171294240644865912182761822352576443094105596815492478776947545050401051007173496741502402868644947672325404135799063341117748451872669745395838423834785071164359223961721114788127682196555238925186840989603078816074986483110906579680397516549624768787909415376551446922704044704794073422091203148039515452572624505258644535821605935780139940781140132113463991845956480259335825130262584267305233932249344995882597119429301499363234741042939372232672224383681503435621340581598573823041035008176093056544858180256458154512573675144436002310854953141038488419322230091030354225551210139359258376815152113311503424946098887710761434235056851264072720239306572159089690559078674112435606381321675694574759459580798646763831633776475811246241666700885488429626881722569044424180747616076595552610140279693545273709638014430204810664376518499108409371822736380160665703711067024152825649576676072228404275654747694585410199370049312319538260813740001268244104063416264773290761810233951958743636858802708707900304602721472283093234076478994541693506972447664359713817055857784789102521277568151654856273543300081019727765369827182336495322833296806223209964082295933907332687313771225538843394915084304126464753183097623420235477042478673442745958540540455648787479454966210537048555869852317002988231983746445903136189597462536327507288536309139581649386422684514254182634773142893839943790868478767650670103755506579011546171263002808277414731724693960018416440989279384096839839678917210610017373039002109180398727485964142591335696501318183736763471845206315382536550311562011850880295953598758713075456021876941225896508032615380235174937031459778025728811254532528614304501716584641755235371257886908326556792756070416452268608008875326473257048011239820677914613953780341997087200733057006140845458140340441452396397681843810864137494576497009026105001679799896622640278513607436009098806813618891832846218690284079429113126597546882839857296040830477314373482070934059649452446005333875860336203386339567656400787488312212529105266299926279296134338711573225004087119693638501118412469785761718504549784515084174709615206974101217117688767779239788201486797423788072555826000289557716113294078046693918821013580959131097154578330399265345892815015729567183681386627734210229121610229193031156919340538514489733000258935186331528304039535601072995789028376807132931506067372780132592786662676342003066978306756444735962615886762877625313235966600780011787849436343070354096124145483944294731153324931656805093113062311972860495456748759374085006631949271646292025996885637187327189397478923773289156675256801833025392866442329352802195249050992013310480283971972851737562573337129225260880117481714637390470781832566325224590939143538686709171812929286576233879589471946836053477659138904605456857053494328464915036002138489559489726037587378750166159798461896219748483586393683569561685016224992308980219857190792835843117228358051171013965917752513622161390565137104008285151333124290442864716311313874623268778462322468863693483452420577970574105205152589484013792673058332573841442016584485176259161097865236197573116634973482105208962761313003420937937821393858794067400746320159020217712330672627604358779644707273076640428308013981678089472434166187567230591057248792567839087079958371549983550997128225899758733377325169221973277526723212024732717551300408902253333092653253477840149067479163285865952636739186065735872871271220017680938559108899989229234516167040114706341350948948486666796276027734436289863544430073890294965558043364132813619423876294898073823363205356642628627019921215724998061714822435179934326919316086253744477940899230703302668498830030607147254667650698648578214823861864431937879333767712450367666841819202790752169612344629576794728717957918180996813738073188820178366059214000655207872592363588101490410378514943739397169720837932156652579459545803950373856331651846317973047852138948885131747912600232570345092118713681009455925610957659648849114540081410005064521223808266706718923281082466695301887128414539932799514506493552211933346651246273632375558194046895608240085543475088098370680971594336009427391508306356743839054137660552972032395786057021412681441635261851724284743466010139765615056202869864943257639285843594869425071493286139857036058372049527427661002530062245402059728795565427637041972958989711370167506462724695399629430519148181445315360219007256530146133357093989458671487831124085901238609721031867523705760816082456998306303985770271491494752331141458157515983333201963898548853747648737939310706671220978236868783553387208750140523438035124345972550964223025064338692825819239286986205522784299311958499687925205751602839663525546237229244186363049095412815753284120951282787621826457916023859510865727851102093127827498984169823316545032450788380192698205401831528649142019691352062054474140905494924731179753842021955240503796990312246174396555848625017946596525832840656944197506831635019524385941965762003557107991297636405776674860589188698265905423223886744608631667044837276312529766301268145520845796460903291767533594371850403901256525091271862686137292664367884844727333663956601950886517781720263530816638364745282211772290281551783491955588131497581848577741376959079226162248637505303673166971254008390494603703308259557959229776071329688802905226732813892422209825452944486813075041867638284657532492466821838794819184576325769870741820913955831696577394039554130999873015275209429519950919070016026092274412473725715222318691144975892595746204949307710418411009040853367602901787987850152853169808133133250419596048252696025589305918732086176448649821961971597953621219432348557253713926551435334883649187794372533477137183811671365182796599305605470338355667698316715110302990460681845494447072532945334160825140083267097466867329182625432001523637089830667155575589364196052736319477749995994735649589285385410410602855478789046789116011530579743808602138892567812171939618268581496466962127493405478969516446381371912119279194759550133378960567902852233996957833639181198212658710874169427238757747337602099693574997401212452512707336222926084613009051502068272147403473840693405422016080484747707145654779282460575219002676265627794069099126210788039434110250580195455195409539796433089054122282848848848112282298925226715440340683632311361782472421726523642323416912946287607449390031017302950756724157461066230418931016452710816346447907026739208604684541195245101870234889120761072611067155995144789385670468340548116061533808478432156724971478889565747613858919567283079978298741149520184646708335651126706230714301401435560802972643704334160291442858107012657702295685184364058390271585564964111532532069687369986124384995565559066677904428690130391341829817801844127722209307005933761594735691833211168833523526730094980369217563603555200495621060255608233998381109775964238382077691739974704298178792997785971384777704396756262779003252116924917361632551706139063387321615682623179710922979324736770812957217971701124099297721711074198919882903269850361220485777863908890878126543530573529342971536014631024174069132914634943791330147724944518494744389542675723347955848832481279127817898273635078032064833290661816223318817809971308307787009267981141207625142372317732366018288804667233721081226823474302138151946879516591572757464578922547738096645795758129384104890699686232788389231427955655451976203817037784105149083680914379065050032351865868414109127494706827633194556995707233489345489601067966325730050100741882920676697200486862451210748437292708804537876342058266718399321850584246262282402044100377426767850730669316456502394917611666007950015873717264968861745511915921257335497401412330649824092168992814494469200467408180236749502337332007133411286203425800634699893851021662795643315189021790136243347688821332606240838335666255847454550066719098510160970772168087081186471117933636399773222592355719547684847857504735517609657157664316721809256022168096153710680413845999696647715247917436338976621966967003217487657206213611590107783993261142844118666525257479572162545097424429488395677599543052746630940064002139132861225453610492207936235705034492196731293699435470216186007011345838899955309757765471668038842154536033548121514780954708793309051185855283641044259633721223133990026153195819882536654447630767353135735404920761768481694971867893946841406046744296176553033946142790851645012402874875873400368787807983924071029091625950534620174008890103977439667317593935362558051618478163191029955387242134286983683669203404729211728541096891397383204897079376851271114090520810499648787203684246018317127122729676105989643454202612584456203144621064287263726690502967012159853577643115958217007183800893263709922758985697350894727352025881560522669587602460915388113428223788881455988160157649553136850688451270345769857122407035436377375464015412591099127294138096775278733175939253511759418776383953700648028724423633049043582719412207501926173875602574717208586864812016884299966392617157874232968558414617537605886192473225805741453553894245855639418682621528981914519767240562192609809993742246139901219426920187830241301251291715066167451016733828478055052594546456736426971014035861935970048822089736529290818744958441749799939037037688250398409964542211273984496485516755390635960301072088981894689619254648923380976712216238050301525982215040931096696648544674833382890100339435816920244625019916149204998930343681219325284452013274660601547056763818311467042480344097413740819794969877479961101307309733930538298219861718278944802302656213672813272167659647002105020759878438825377701831975544395089467923826360838485858953052562475629506309527784260147110938079213303594538532777124745479475532449101285589763848232057949193412951731350067922965656583720979483473469089972637399628994343514154122506529285519540625846903525591730607645254909846623166015258541353165587842351347780332323579155582211409752979315769523912876445470110411696875992323041283577230206981299986900815777411765775469806835870592432415260311765387862678449336135975586139544816995340134935100565427901094424535113593487381667812849128792458451300741645365909547299389788447751048791941651929802440628073126864560702896142933891409119365788318940204991804430499660081359007253413195619293346149332541985078541664077258186367287419519262545777896807430591266009549454377166730593344268038695556663545160252281837784812677881561696244656028747113772560554565372612257841844343456358622120648725422065920296522787065201854992513193552903709515826832293326724467328403473751841141914076229252889303470482946434555270263550780361836354910176521707017219139337194996662676151186120352524704074632572583270041587656363604441807486622740244986729417639011590435716477201536236388557045536330080828602603003036778269258243596189193662276339804393235842652542009074596608854994917056937328479871230371957031822875851031431089685885943590023317774764558141796944709390333656077844090663698688081773371732009899567278739591440314616740466385226213701577296563929870267262001346345447386820895949730431185548841550199720512264640846701985035611491888795602515846763170954681359150207482005845014538866397971734539326301877495766773399712025173853788951648246291706526491253567991509178228774037233336909311170969842392902106016704655552241162842026163609906073954651776609793004885192273973161350498875358033466661727533649512732349012517455677649407281061929709248064461798098343966371605871746120440535608407357404833815981473962114725023442296324386180060071129060585657822052137875483154919473471420453786481888340354505144962431942221544431249909962074818755362203905186404340543693109188500057683764037738815379380125834486270267349308214944984449625892490386613856759459927192943127955858145096490475214097696202840341613481086945444421646296499680657830687582511398835099557653769351698991811897360174039680563594160269768843660236561264240379341882726252858218358719735632414383776926739230193206562722886774077114275196558703766547160298707530013175634801342966494177831416026556507863127302108419305210457357464537769587332659293819188368085372587210246989078964432251581879284733808650509483104945932822982671614010652265016254978024646751700535193483452570289470138108658425427240740163644169951599526613250966823361187904416349346072023012670445921543513409541878602491634134002365193591336814454517261292709581515414691134939043121686737960442661239438277182370816475639349825803079178671462378200219455547549951898929620970490880857170826510831188407217349671398769871630485453079492056133307380208100735205131077052015226559509376223002384567739646322555272372430940111863183420444791011514452754807841898033993054672679804001949789842608228065165047377765297590718801221591409355845870411802219565246709300532564394552015861545026505386846982424442787676992556394230813652510704114707411773665283931830568545911463538516028984391212919027825323393855115050262571991365960192427382822329664285781108627282339433162887884056319112391134707682414437304283999966383879240020441138251143788130158605896893729190619313023041099970772882318523215875510149691198814278840253337643541288376824514633618157558638104204181105220353792945901587043031873296207707002561303291680673870964102075738737315643692881527663272079917598690450094278467482732089239801003127618851863481302713572143200206506324461418064000915717786391588635239959432230707863645309471348731112136197705529809420892854295831373741749356741284614260888301207915909721403967865976872448997140935003761178803010408585859612555539217009598002541059599354364440707660366818773215028946069778312502224423639089043689221855649140360919347785442473754565549399164661181182884965194519027026970742086546709091455192487768279966980179519846155965442245721582616687051771263977108240553725169759840291374914009538585763503440729321580055896378485943634430481459800867798755479258229209855976160338395658927611301456236800676548601750381498193709382121863665309686735167001497894443603666405606428376155751230121869432241616639562891123412163579089526500409720349395935657512904190613974437788735633862755905563497402158123620819700621916309822435173457877958188130149917048938690784311468976275234018998122322632188226245921626482820637578437454155206211839725400522639312859744396428269399011400591384462957958180348889348632091711019509054216672839408927849992506571792146325471152483124784050919999529160952339823498064324974336226920549433597702290221084913948671899188097305584166111152513922003623955602145012088716593266065559856286673150511174944364044893611977618449655717372526251856802271706760335878182736356308498868348173599894880754474649610490724715101733886057505567860864893577749276639008599819401844658247686420893025668034672067805404831062351031677137221784712397187777890762138517598128064665124707038384788112020034990821990782434731276368665788550190430817543107682275587380845027702983860106408272111811104008926435568828879661129926191899500695834902880119455673534372186563076926733885281565059318554452148629871140059835257286459432860758509999476181709449731997525192674498960952823956508515162113822151812267092359007573701758129336339446551219805044038419790141552184658751656939455454123898148314654690671425500594427497122058720988202222408359419202260273855686182831461080346875714389743586082183591332290232935083173804926074453145390754044149251628491331310912081806798654019048576261142573159203657957485218995852530134161987012393293651741595240285198609878310619882694663516443151433661346446783469511905393379103791895797075624881137993234362339549180864871955271745830776635563924091772465767609322235560821278374945467450973093230046005173059881041346191596447148807452483871348330031130764033516578117714014676196349453649852258886988337993409985019313114986681240498965368789942032626322907113838027858361529902262124665038093682720843969861047157370783476599756792125718111253061627627872703169561119285957495984809877334493186005965845476919405398762172834968206482018355921924260928895411651743499189244402622842951759743065692536034954634016952356559161712858675546816483917420281411533479416027361611531904734190625883183172575483934214474708008386594045153296145701346240954641349879745779720021893422979040915458107272554880468967828479590590845755609010701264826337701360211461948428454171134584742898038567211128431612421572636504963721432357424748792179672752444034526603906996436495732330733077423007038341174675819001074416993814881770216799236384048090413659948075378914836621573505232577541418515232106041428626256449634373214685916109493718412623438945475909054667920213176910436007750759016527195618349728244549465166298748797229478959467326706995396328434795166802006277155455725449268774042808785674734490141660356270003299062880545017965956252005527993902527534740395416806387901906420807097210784972022734600358601404716999067049831040728335160700125059206857705909708284631412411830961901365070115656740415499609923747052896699508739787206115333465313657109117499006202103125108405095423990852237814228605277380549679048291426085384536752055815832398068803402490135545587815695582839357074765163331383071818536161067444104004070794249003541479196358696858199662725146923797570822601662063473600607627026584920101538950485982151608688904023568380569878897344755965566310859825284263828459954911110755621784213309456109048575153396332683656548700741229278179954869354411473358485569978902812832602334195886384633979464353538579043014461815241258348481298478513931106730779732612353658178164489855270655356425314893892200057594288282752151875874599484098917545304314337448569857545848475433579507735589699376553531341578386567926337201780396877496146116935596337869308238959446984025690075372777326470415315443863470022681502864388259210509541093410624713875486930042697261588962960660938381238580653564149633912643691732809630385486634116055794117955634853942961464782243912323295652981409095168169602313849037756881894654349367249405969722641494201469447167129818522614708495386093654994097068371564926970457275291132051341041680685512562402976814070186030286660778319987019794137931266196036676152474343810964827061768414244589253989652050715487991247837511940612754320862490462458096814194036243950569568989389386556216675749522162221329769029317182377131284793809205613126169993682000505755259231690356551563276605668268077572971286282762469168024243117722414429689841734951007672774925173565197280780544731087155068460041011358262863804760860972949892506900167639572998425135687717004628400760185369543512905912485192786997607536571854169408902412682495776461473006687288482132958385277675096340226597651605310288656929529201570040712929717148624349006061645502683970987405117208919251508738716478836834604006520332139203833276448047002251396574229188735633795861611910813824602533734128557979343897313738641072108093278092540302225805456748036168398025349203604676453945215562649403214280355460407448068018223182251386281541836893418810737348461021108994954518226844218096464692832826711916433003394443329351032614751975554288661611679000096230916741291072103558333675941900507539419099839503724695532736112868953969077536102274607243434161719285534975560746448671929271050334014900803122043450989074007131935781955173179709546179175414794647302815082100560996710898648898628515937710403641959900393735764111121649865637976637274290129173462835823951319873353247210754544601567023043526251785980707528626199114799700443961657014477117483739987022407323143898111112565241142876849992459245096745144463775211956458359962488823438269793003871941652813474234228051716909568366881512249095886767340515771335770728626172502738445244866217145122842146037184396448138765559220776616209547261166569909741862038481075693659379189636444050848964203294789528992156393911345842885660688763100532351968153836595862633000749522538171785619883850863460341637728630573035945640494196362150439946581755595025484583514940865478825211484081421357374845639124406406631533078191883781866953504114291003949860962209992120571888169984077643875503001568677129115971437868869438896215891448590391254936659808180681871216957590990452087347258095402814857724551451188957527992593596614217528731092205033168806352893500095099377576646273655980051183079045011294693185191141949811717466139798000098292012177708596564490637245064414211767222664875017695269362416162420826203999409951340986208734158103054505242752523530716774048185608768464839230669446463779373019492549398463069289938908549460483701324016269017241954731838208068862613193221119619299868862642136507932729129164400205864268480048497880214894195882438915069848706910006157264832403066984526529259323595777836494181581363027233439191396049048017491466457450938074540761696039941207127761309067004369665733577957833411152698162282229395679824167397463240725648048493658777949124358782200440266691545069063985121168848036687271142291740159669375197912981042306185674317539865207905950053321288726645491871086756637791633721593954941270664406284882609281277275555167732841633439784447800207834088695486602105438595218191516597134099306855583072098671686255897755398115042041586681289887385028828897675554864967362126574459341727901647146715925179103772140372524151557636202649501423276298710103332762984734711386296955534469382196621964530635813439980661191790142339934934953046728109711702616598781082399869558105790599992610649314033415060382032249262906783274866257899986429023527758405737500583906768626257892934359509447635240804926328857417355462930515229239595810840425541470288780469815389525241323862922811747600597451046585045058588646328158590456373178770278804937461006108587883092670579179154157762292251344198944453364963668593953746382995837445947603491367960321790787938425674937653430734416979252052195702216320765255198776360027788458729400720124117267052130072824436841312189735739278929918501749100048822825324666644109284963906900291026310017483801030908971345980473452922930318597332579539401608799614384424046998966845435314712508616057131152265116628205852515920354147739036642629090097593188030589695925856380495639132804718461399191312234908627029880076240247397977995195741629348309247286637224006837905997814174261726015309524853570658448963006334921122125239908356192050908632081860483345326779777052135877014917800790389861388867545172834590945673956148130793571449606766641286816814767985006806267878893518875472378547278650870106993206979645429554125137837878902249849189323685515521461779438767030951490039312423774892828809858376699295836358348177200895148540460520659207574527018221557295406143545170362548771781468310632816881289780203009910073387417041575592118290293111769205979988433759797580555546543890866214025110483415261404611523066217933941375032275577489633118852257590143934446812430800395924540891269285010438713362219985586577269326244021550965098822477224760964291480745411146340360043007268419897824261182349188101296706267981016182138062246773697386697135551566596896112154791836923416127681954232616542447898290901883927296084719009839369134202322931332513431842102286635250068368878807201158453943885472851364820911490375388780329113870548152674747356534536745840404712146035667452368767481964932277696283761217730315652123976213339654778441309357432999320040360106714754637278060635324606724054290347925142349617110212333537403481586402975190362381618981616874907519910278196980690592895724995422745113829763064135016291017224406719559847627101571244053090612024746027878427047837985305741731526897675340922761645854831563078599568090138688774066863961989522782618110558520238246676679184695611739892382193215058113349717211747377936677637590592825976446870991282302994638408503870489179230130735547768482088217825877763656240115814603350834853236482718507032313380255963701646593492233643290820671701885625678733059945635953453353772649187769333608162580260269084842200921251690705430347787450638953393826342588827889939152373826035308450506493298062162672098069960963184792128370030836593505442269204883715348555655662616989132228877209100844645072431747310831899184328634785161567027542316472100020061748028501016924012184548146605866402264094737230467379791924948353032808830440242094708240048452864092461236372146493279495116043487152532071332222031015694875704004566941342514940595287529026731978862994967924754741232139008310081008991976709536111164747825720910135454289278635297923159449847174452404448939551167212431183638341998737817995063199017294475006414493519723985830082416482505833416408103383239078076860104075578670599593617107188632394839135557264499492075522546408743091210497534729026183799802085714359370546758796396882986197016551178972397165403366678275800941150188357690070503757541016269904686715809475600698241740461839130908705087553549184094640219356011835336306716057166088300604363982647149408467415348093387168996193132375295576926108378624652818385957405977857109897583952402954435476493695741759754242454781788458915235896945947463766035892983608779776006695660673091765571053693007995148382935737160065117245184135392640133650155687856357880421617826670358005051994923002886342601496291132843456441220890650172067185948265379359528066340712709128403610969982437116887186525336109011721016090059064936096689300410721240192862133860493904087155361431658897781770934959400591361246751646095246003925562138498831204291023804812926368136860538367480013011647424415415119697853930147424164014882657389248667909566428908288114270425468836941128952305950103791977404005899004778627341096307251718725227393077518365573667461769602361620348142511265440310554985028981931968403665605168249745939219626226047104847032025479817292048745267789135804793965390825507256142998893182618637662058419376235482143738031039332403880908678356368534781643003187005358244275857839799009916739471063475982436841945992675838839281462100039408293405692389705178530494591701237246854098287584106993998879956093964177569232125628555752675871390511901910817689854958334877327729834635440022227057722323803944932717171794982653120367090334751351079015888791558762762600561097278299864194636532818973472251337783296864330195474282155224686962888728940227976694522727606855935675688280297177491830045862003986249362319262044901187995411842753563420515175869333832127919033810778934360122265375550486394543774909807050202080464557940405766134993717547807349549437294342429689272580866857924002845909557097834095483468001103835612587348033611870674984644178386223603252150517465322050728301693290738199221090108293590165235896249339389534011215750259656878703341869766159599150598989246680289176567007190349271645747577714224197844184436787016170593004079574672748761435030053479307361629199692241946781906981655579678111600867112688129718755487294256825974152150578658775582967235818040295871703109730153232349734751568317075069657816772044344159623688211216836866828111620018191690078820105341263783963504780518741591244191098149398988101165285424493517799357646998615419852821563883571662346652374695555711468419290682748571179800767437538302434365567085925375892908664169929266677140464185603638666167429927444491922252494651495104145755745609997573432594250346026601039861504375311956427823949988494360887602421911766976390881730955357765652279184180177351541364812573675977352462632941389504536591286187646453288419607834756603720358255298472986516277123451235564704351563283540057311165757423118228311712834967599329423000645906964103295910040137402551849428753364584322499696774903835823737796365214405392104682486877187023885635293641011605505116058608793961859715572198567622253496239150639016552654921006548967642414111960749172228578921017948191621584087547670191566605965053245445971315974269954571206392254160218878354298444599631975671392014521005149271739555884741592785107726468842126456724218103755816563529963814296114025179317173075356039539431599900175335707126099913663238431835563168323509253894567566018432787682767226961329058292485051631841313285698516153712436503716678324954043905912211143163930401892972655558426356094078709989398413239918675333521459476224346359005013991122664156849745564381092416060260296847015365491449728004247552424493542311782343331978830384835811921311491735993998849734472552094861557964012024633732336469567397746032563040752976095891985477384142959575013550964310145557435218233547334759329956564887078385072744471863070430019571465652203275678834111709602383223003521727272461697479994392682840407593788589993503923174074128173319091369820692458586004379177931486963451163745117697656137386220207483623631431918342351071940060392504971481910296909415465777739490005980115961683218936452879044994207237649997004145833481372217064488025539024721819327003254148002914213624872790636096917139987029063988419658543332450824320853665490595898714021929640435141015450886569904255818619077047955041022888361310915991429464863479740382798496967172640576331792902894977550703640838205895259449429364560397969505357335906344309689865903214081842313520665125865720561758370919958729181870234981689530355207652136117463920137191357125242486366764909704331939989527913526571054494929803493947229278775152060132573557999827261358798017844967545601329518817094810343000243581603595753302618031582141558996648671469174005441617355708214994938965727519695953172336202145938471370879414375497520183823166458682198249825382513739289388740282170040829438339111023129784181356807371019100525595411493517293385751306116103594916351885175414052518745287249522141108665848736219666414022569723688357815203383186703602021425065485641435352890415121143947917330978793039112801501823044776997601783364655461488224715661521556520139970834552042627567642132710611080607175744918879905872749159344688245444135434931043805488011299097072317457140174925078609802922435984546387032825006272652342095386364448967995598591961509022877843732845074451905190766416271105406025077012727898083966406572568173028834602511363618794484767545794215197111172935303554523016769547028910619529932823272508375663483967842411183669379777670283707934942667891015700579238794706207178321182837876037158905411847175838460849124941325224598118059687191848101478436784025037911843117245117152150731635249951601567402082783155989103016354195943106797325161156859156112685776908358490689132711529953017933297378039844571144747264387358382404182381979084963773683528078114440146432186838986062103848273871675020224294656671611744010186522141677180260410896467484337452049801805443770615892780967031778190253484306907180269753733860001413793041170608206316127585921301164081439642254822503958262787324687818601374945058394307936455727509425910911804247396367069314211518525473350189805023862358162203545675315016903324899907870876437137432595821804075165163768393827640259222952890333982578634003522653784288386699893939813222449223883726993923547707737480885126879007378600515518503703055474718531214402463791565338365570525684321974707071443488331191191265568631276368610746918700335415414496946053695141006784144856508634105162488105260022395499647159251466339006948463196873840288239865460666715870187420957365510761083578951284605575543745331686199756152472954130574914267123793431129792328234289652067566731192854991472843853612016777889708389117833959796394333610664402081034788252817058750072686691873859074580688639550796284389271326658371148188002350200085285956344894712381346948514725298967527497277299685370343476313071152497700442637966049304965250984409586726880131732461356802371296105270994877159554145016876781059516578987651748554018298401331746421959346553250125942238684552769612090579306463284113829830826377923377374285554241949582379083649008469076319472092999398469547594252250273848475317071647665892674433695090753334795238095926714718441814823598477075822539217116294961531185334899013659886903765951164515639914498578675570870038562509635803650767895855216832812846642259049188207706262048853562879948899122042363887165279357861732268838633752715399322323607690409479966792246386619119522659788702151252673473260787254828380233409421507362432088327417562942867760601836760851359835935921074863832754886159286401975308485094600005129662095635371861372506760582339049137074878680894841404828993296147717819330017953404860549522449495562101566021013277769805264423159303615147138675584399797055818718401458555845414191869414588709656936289470472017961791178262020880027628237147083472748777535737785616752731909904287268655952663725413967973542663765446808401890705444898465026128594436039108023344487798545512419361140445517614439749402027662347272089113446311526883335627471038033281314162894774108817230999262910333905346403749162038293547674814867896696324283304702265878205212101756620421598249714719236803871441553123406985768858030420258175863065111240769955745454635863322493253672441314324476644208154876234284763454806679517072020545046837087866923498366744391395419832007421528185177454946681032383282421609564264055445323950735434566335888791313173948089635955955188156366418925827468850663013779355606635881095804673010929567743879965027494155437694335312753812312856501834333588350454354862607972215922793910733563144287713720947272026527563029996213879735030007560674120136526102500418689050116878082391899589256580584308791650263622932469071856956952433158668610901680999708006174903431847639370156879831999336393688065426356500286464058076520351177940719086593240732789486463602369932537210049766901316591527252282266806902830058075884647708827300390685594701078604735825779074058726629849149799566474854122651418721006247932614476065994943487869928936726563736935594318108905813667778665936898710000879405730575272602968435702058510103322907496593041838425113682024542930060035323563530781752250496575500489519322700950656946216804546091037068458703174595878689493509158615894008596081184673575055201528532859755218288623727174063476099112351992864490488586027268930639680295318261634503645484637341669954058898054847431138984627224122481971928416245104435733278283322624278906035394063829582399198399599602668102969903518512038752371104666775304222150318831098998094801700329173424870662318813239263235557827730681302316567494982300867107268009041631313120280465508853307237756588378449150020048337837425688176454849379332769899433092484955943375865050586780476349255492040749539557858987789717448362001804347853406830412798204516856234205740922090851293208533628425063301914224325880290082919539520294045808804381191487902179219078520494495225233760119807090077558539409725226918530956351841358973975392833265426571303100548231044665018891102717807677013083532255624589470158417314651981817081344991202030207365789783681361752924966953706940656281024504126325418129770663607814405537727410498977230507584466943699586972673662414847073629639922872490623972771866987068017447297411323461945330643735767281320626966050054385759153929031521122691232622379672968384142564325314886491722958856072910887390346622522575129520761776921636804521767879546643821213312846800424811422040664161793489959062131572889111965825909553472458275621532448245860520108738354085235409092744968187327216591541843206333372470110234929484255220816166982564124468359425983195899228564984315670597131110742099095028213065392400366596956940206350179656576765477609952564620617874637609012091100608676441697307325713031062319079357075944877302517418918858714656598072991735812265938473287316244383016197152101111945264707600785529163639612303525938185165015550887666016691444668893068128691111598148607386338403634240875853407851465062448664156606598651731858945515786527190597355996187279990855243683369948369439805998496181677361974004163961948449791081856991365084391562159125083318421355900350614354130970003257002531808986998122560879022451151383250738816167171389464973861952932653564792532131758885187941120269170745270757147941900188983558171389258915294109304773918580429580656173268458150982196694932289383474323624176922440673835246828244285658399934890271729226248954461441827135211888464322557675314549001430574799695040834414384459042834230453282739781056158688245460927853235730744766146729360478281646729193652265055405603710574724324135859984535856176896676436070906154432508216211026374346508936520227835944560686902981172510780559770074290894498522885710247232333924772511529744436167705918680898960413638085454547678403029482822753468549849636879572786215658324807719793476668510103203315175605977348385249619521964193230696541115591236971606775519048685240909860911385634535193176708049410588650315622726865769451638719213504826653805241067000442280934887468062990479554117738767433562780344529291869273983892229135629799769119360306647757409886118541722025696329291356841469764837690568332648427254692553925037590915638522747169792709906247385585476587217022658483898988636568094871426858873557206311484297530212250923014063437583824997860542356993068309801451268498018555811171394770836922002171169932775905616265346264574081158740704364879863004741208102737781402402508524893159926780362103028842415921857663073087975695826090660202134198519468672396000107872378440731999038677578160621550035749371669533927036774374961943214556818436222330939971858654663184808095314893950838382604539494321871393934205913244248181782232899777452053900922405528475266310945432824218060179139310086593143212844430732107475479302701902272082259910697251367509766031678965723507279061124614945865001652828860957306044881136481026927450169335267338261657154013359251206889744634263953354553466762899266659036746387204556868294944611616223068391822910048213496111619621754968295775618304389313017860296772302689602590982797724911040976112991411902180776906457448028695258691749269477237688966446775520008330362155604793230086541294543751112565050625881642219488173084563990746869145087016713740074254625975049382528058792413328483750919092987360858409031289876259465553115301630068061979255594917534001513214734015903021783759722164288476025409762540248753316745635633829797368813664664778849812170319826897988778975653516758816612304540642280865425855194812586691467200202079697171762215908083091791606098625423223754998700994826790213421973112742915532012081287727287915084059639810224681224210594018570666812649211416504420366382081422347271660308542228927129070464044443170689388649137549372988210623898919033381850090255734079681460021474356903217770320115198561543995437621209946656433112918768986840278888083154969912381619070832087038804928748107092189635919215855779016233448895024338963515445629953311541111750052385685690394342165145535123249889580827531446339861336005198806919614177867972324039917698790196384301037244286003839311213508601074886848902024580544382202052050265731302518349070214626530077408636273561349866696002890617383902737503338744757460231603375573721402942248855755534710080861669673445409568291939427389270956145271820873077088152043462506082487623237408508587266876759155584606532883686801437612503203176944228998268168331920639889595248247054849699887369965903924255475165944462068872099140249571833966430887420904076630643145020028320877872455171004984263300658339375591285360428888663508851425106085091250457501842772058280774483275434070062713304962882408748781283424559383680594324960268182239138468502896511206422575457512622297182833559819757692878673145765478546455838485589135720583721285148029358445099898462925617286094583284621716729257329601073784713500545483090399865191683503872579056937696140699431207316980195779480090981830688813199940163437970620732075680945252890425414142642239286645050977954255209100410028882164728088406517540587744372612999727820215355478553133612635888216484000091680796213012541454079436988576042234147141007887206839760704776838723111467096326162522498759350299346638533176349635251991019651420413926799659922995890634667543404597145595236150635878349879152257037930906721232827981402489679216325283109997861439138316367499263773262325369204595711485545191800788906169661058203037327158789791908673611195643537861269488674741771898540436337299266589315503103823484246020161302320117713196214057017835160375590129328775947377439953815664029420654545198888259779809936722004867761929404751333369739220501801775926818169087508652613341890217688052749119522660402975288098210658559789842550781918869252411860240042634327733043068191792819109426828690028843552459767068619297951808843739209323288140803842013413006300547351949896395050511929229731796658268713550228095843182875289826853878265828185951722636592806999038345352900382465393851877465609257289244847067217057360225032381728120229089759009243388646255029475030578525769385973349577401801351316376963801275647978825788967926556897989970035089788912234578216196447636972709809385903674361509651782520346800645509893278572180915078276985526132531452491343239349054624478162986554627832499551731171515056097130027791258663165872038404664362095475320701940642102453882621169091058717521083753710571316574201430438492217134492833306479328910932527348944114903341788725431101595508652153391496955775483058272491832737545161767180244558921201086633907492958988843715223023854281164405845173675039669291672935234251238853862283299708384468201400111664675291193949533355988838339588749704118297328311872185639936082194269365836520119354505252072936739367028984818750690280154411153811701738440767682523060390158837588667765964644587517437232796026810307851673097907652760216812964929705713761242199421584997417572165124872784028925656115526180168506991350764661780000015706972667363986112515653013505628976487742909081823688354280546569082861673187391831573524385964940536444730241435880135249170524119864202811438726514000672787597144228194368886650035053678927509794981077896551453541137742479403056687219324011722767999014666403209403920072575322795104001849179918086668873005084150437702713558735905050897930715380086254934390187959801196840154996554634111695157744837966010978257625027959492694519984450716099153314800404225949568683702460076816465354492334218089188587203123372012540892762870838430800777244095726993914942721391853044532113395334891501632416330884301890827619147063170208995241975988418076782470264810269349981912499631349768854640720113793026666201080681908129056929810045216990409640968580609927938058014400975710356359912685964874292123458938077650226397111297602603972025509738453586729945397911571074206717883105238384809349914837553115730697290844090383213790819332979627118421339212646731949251789303416630089387272987919879867629747707082334507767886016036270646054840671474828691401012335028837644826187650888979753813315185834044308983287949703959228232230591669425313136233505343336890797161440899717621564362253419889282899237511284042148282287504935276196681806232888458762441102860164593696078048986744755475191042051500558414828568395126295536606016923590093051063147962826677776418251936738674564324019746584393489316074811879253569754994460162819524249607964066491444991148802095428454583332450188178477344788724429656693732414246176424141802278089466528281847467310457446133511920097217990097465651163436613009193930387788942806535261609463973973904478040938290391776497737476674532586073784178781153941801978875426046163350880774158265607258939376123195502970625888009469091302645062653574962747047393758643571156378989029556564523886723302793164414598776440509076866640445126993142196434427871399947100636603297361726878527691985828214400447906709705452147459010584707967940890148548885026095089084897865611280187305254720798388851701639606264275934840248543466341727787360093670640963842836124852206145774825567295755976818356402402380537875428983738353172198840373428793122411902316004733913974224472720105952177521016269474888999147107557776867564735487956290573877350895966963128897814391494805929014052294784570831532480406561548933564135221428038907461765889633546824720449933407296131409270861367412986321918847408990099752625547053509423918399579188920364319725533956188111753094062578488125910371348110857208578648557797733688639177316702373088727540951586417638734086993456826718757157164823789687969817243207484775589857067793983685457971099820667007074867470021132779095825019472731683023793976332348847484128569138802656779409599588800806474035366183050907248635163413759708918615469504903418698546415362791729466459874621901395072868264739238760294029866645930612091047488104236875281124747464810759443873319011742614797774086482842192404059186833863913564555082330767131366398009246458973125941834182268034879775881150745165192715672883463400896168644176119464896758333909997621195040138091173970673055564032102767944784103003743940579507741599993596314906275843148531315380215397150314144880197031925617428349233097299799498958934419656606500317922775427951738372994450433500507463444613414588111877054714119053848838414180283566235490931514880664352859156375371905102016444877115566866458984076460452575115772262063797679256868178664839209197608119970868154859013683074311010246286540281311879102195574139424486482496626505065689620682801749137100178309283352227683252418397655138945213960041121611609180164626162713185985826407370072555530654812728475955372179071819052762394673554671602330467516205692052693425713413808976704289803126945105638525402528657735437206781737726249791361547968580947309977010017125066510678435042099596093026649858132180532233087002010953035542104086703582998223347373097389080715698830715982323103050047232552351842985232149529430227866558043577267335805295297911893434723589468133069583327949995785107152255859623384032858066779212086064677840619350680339276251454080201925977413396366147254816746712802579949067293137631732130046520398458122953467758421937833296445122846125870493253954907836947073018334395506698110118125516672402940617637963231935992361680657404725201664360401297796128303709639601243772966813938316641695019067617161528785000312148927815830596564998954744922802748219073570843604574244499274148228647979563618588164712641501593659947484120813202465754219052520210541182573468361985087609589517504907247151066789775089315434690651065786813182773273798670577255210600795348844965998089124050483851851344140274701331845224510648858056789578830474002457162900613350634707887044958594953545749153424046052438099065194266861055349723699465427116206983410257963324815209447844307839442619371599665409599201449362670292905230733355543840659789649615641097737876981587670316336582577151033090308783241655604114073515774433218014822342536343435051059692369680671475717088045865342829587197910528663108362504881679054112978561540295742633483225818622764026839930182072865963052510627960425383145804215968962708185661651494762541858349849026222251077906312758321408606354164994619845085154443864356461526819393857602946142142244692376460101914572244569991521220692510242902229648150505058826197508949058298983914545783046781751898798901962641339612657807988528536472152239536836361736158928429490967837666521120325784231719158770306026825812495155833929395815659254333199309980256021209853114223048223891384372998933339597433164146648496031914928005214505919032579301310968574741550541616755329284693062922602742240607033784590124956628309235242722142660912999455368562674514618177291762971373546955631151641786175276223852153437221945604827730042422586769342241449315616062855676719071651653323367188753577858903426795921395907676007611053623174285493100355002466755432578331579274689186689433554853622322739627961316080576256566212633682421774439451367478787837059849296370524147986814521120759904017415941174581196121900859804162010427042253611159877936936258930527601468159971767197882892032848331530025096975061240241041947854915409589466326778348774014674793658978753102234679003967932021783431635704628215499822855724496844010084444031937087572287758216292185243335492223482783756868379966243945564200075419913436729031263721559984376794011240351907795521463569038801714228170150491584802205758066623575612359205662407428884311611529452035903587818547097948730872829610609026061703770292809132890901482180651406051892175322481374446963418960871956061516334216179621224377316079865398992610102648010554848269084009058075466272872316431299272418972083884462265710264855864236740399818794287849020400017827875023859321352929803123742377722376261556443080110757323817146033594790803310772544283974461811603048648815477889656686036261365930872201395750256981277897709299782431461191134216153354646803895274508857044915196859266798572998457722241221688567017308056060832174359036432737913276273219433203067972870280782271956145626223370827520832818070279180087189777279801468069580211442770584114535359850889073831656744553962183477422368609281487478398113144621646900606729613221966184229465375391708943662371941401414209179718196280862933209179517084255249657105959715341456383737188654990689064329460809338635969531165793987235542997171844346868324837362152605373833193338160122394944963058875989021374183041263125376652251124065935818226015188744683795892724265617269130885814541781789144844817659163397502387455544310122568476788318942484310826629044343311170074138096643947925182761810783624923636942762046662887852288392947880219311541409518065633445981112674630739182099413175883356233441174695265811417390602946824982618730456190413697678916821178693232394999415914061550131395506615594961529590834030132277828487433731112860204669683809628305526702007745716115311334607014809203990976094245865560086499344607026360255648565536510192579137045369462048698354353007505160390167159588551753847153391117272103023330897430039063908418872244701751520596144802600047259987684367565791719654912342908409861098191736268521074978278982728006018194744692019668059291338271986865377607125688964249152804327529993520146656609456005071626788367584457092726078384862042903833747567262664664942412885946104277531318083258924721636205494402604314062464370595943102975242140804282094962974607424556164372425522506824533385691259047809311603701777191988988816382707634708995820730355100871028466612126662144344738797920818360626503123046912549970551122174837887132697861147498157758686307496750913594627218848771202191354375768922460346765386146871463702249946432862872684182825175573482107485553319331410174309841758753297281955407964145582231705347128776702706473763950306458669993183495799701085568157763305756757638239799407662169868439753434551971342674030003538310023603988121917300390931315171338014509429697096399861079916419938979729956519690204822488037401034052927052397323292142236977152050860761390601656236295724076023020170436076184812049239394392802172216426218696879960802474845147854487800894151515743406085718006333914199243686457641253570800696416253713320166600735397067952959630864870660509941937774924417783210790785151118461421206308793489080898055018950191636754001893324462027502641211070956924000322198919119294744761833873930961536213770144349710767027069898116561233253223283039069578125735057771443990090982694064906776940379451689455311694630720881183859283744034326185286531856395856774289354060455027547100456893501111006607776489041157006428902213524273860655576972778587312356505470318004765227429614921070362532290795004649566942157453299525283161913495248840579641954227294891445369927724959777467149796078229926582855691972636181054163943972524484342304926974895043194818651727221363169221185983283239368440169824851478408444845700215082686615193705573848454361761160327372696835460963419567564492230442762749476387571384378814339858701433442864059640449359004728402345995724176042102756183039620264309938428086700318712943763169759117332758454618944753323224004969643187655782160940831117347597042252604758127382211862901085641150799957146554290942126304090569491802857254759645482255767908952077353134893966728815132382426768091171254607084333376140300623822589045520678917794674893815034871230713915831988980402312261871050212453796187880502380619235560913580659451405105176356667677114842778636799294703759309837450081586255278918623168657537753594153889439287222452914288510523080523321005847677011222589186490598765699039886675211319108795159023194923267860011350601592936960319393935159526807285989377768398712612930938199213267685386663888787613289554828753094921788517006513175072314795162464417228438425326036834531691920573183792435969202752304228091729391115491609439369144321595175702507586525531441312790408104883530222400527917293462568787486720523748178900368161698657132523852745585087412116221929755794349736757977927651294137840008597684305942305794400551546522005559281820653013268093548602274392975989626746524831417768631915396690089050546584917991837280161448953692686594645317573108277979200137403363276572990786899170845629699595884624759429051855785722413714839775967272585114634509762883649076189299800395392690344290625617578886296810227976172538061929559144511265142664863029313464628548441314383457205781067304808782325315971956386407743365724509604309050127079831948407984517088106289754393407907032820017310195976043254743400898609444227972031021649639298993696181289104062677323968260806410992492600448923963582999611834869009320029080744094331219167911962549028211038080638143281009735909209907751670147992495003512676186209544197885104883229694818811858594226192958720855211606964236095297601669981218533587786050047330383763741951697385236974231741868556038511715402703733377884217099055430018938184518976236273075753570992063406881634707511934067714897113334250207714846478119032710776775822298785828111791991864085719604278160076863670775775450439245609404950592281455399922498543129315026736297509106935998071450671505797218115136288748344821580417277364902389064256884372285892264508382403900935717438166341618551281973245962266390394752072990842029183143469791899668577162561498802381484299625898336517381327689092247637514275904789940040732826866660677433713839474711448048744695967539493959196507186629739149209476604707918888130850232624254294753544885055897100447814309583954277496866385228802190642717097764931029261895101350876975916969672547509667851947779660078079143140454262228398662006539829280361064318563276644628672085951113530979772139946620696709756175675326648793251963230073878254480077240654085794496459866268138496047994023858740939464049015888902999181031560576096179657232791775059032558086991623727020623653465851431332804478050317907885653593969511848609542139453621271901398580767287188328331734856709019034923505746232115624695182241354628335138961175565648272635205643498236301438315510635948088717554496700596582445545383596795317717226627128694152088529425202081366453563894389019977350965771712394776689178249541302768677139777491309016596643690757647936443459853840989695414035343772398437086027886154479497776587779530855661356401712731698689387657901735854390449139894388195471601947960484480594956476593969461983314304986409803692102320483873055459478459705578422379506192780190313683245084064761374200613729417482590911671043687834010315505956790381438508490854209813153582127833245552193238214286931495350096198119563658704535583407017834505044427884706371985064888070095030933071385779285449277215910004416459953256461859615725127185539566068410268750373429966964939944703340947425390072906955331107353859654465056934448642965067493582854293966564919983877955068320483952271823844683174259946937603010593884319804003861066355612931154407155844287003416728544772350542806028318761341049969257291496123799528104682570721043614953657242709931165256215471193668696025026920798285354893375118546768726625229072628714157482416450828645133014290086664700991984533621512283426503811725349559148550860683966274178002496078220274370606264433420819831756988490867698769352416028212979991156294512075741691430408446900874205062007150460031984222120808307332010146797511897148529717375406804271688621213050139862879473184634928815448059663368904622816611142802575637545810355241632274091899174531682987642725864635431840576595749566645902687708923397724854766029070686109121032228105756906302905455065583846323513385255017323559684155768846460125275089059074411959156171271219773905187484529827028434269597454413947292496778205516854828379642140139563939744163714040044231917850800629036509498076713344272694774720321889727690409747503371509077516298570679990993002332657815500887701591760548763971819631906836908385035753660201485261945825773306744890215110565511961350901468083473641295733320866002693935709812886952694239195815277191382831476769239853435409773208787119740700598468170175299880146452735564361395334180879889358372600681762877919564192973162836119099959919397159985874135610685985754338532134434582881263864675822125745888695954844167382061567689472260029456397108530004377043194807224256493122686055215631312512290406783212739909112307691281928431685077984356885147144148184608189168844439611730475728854488016658779208170052561817243017898569610016890756555123237519596361868080550596006909244697672939079715510435852122595994916624411331152783047063333126500663615006935745796761038094958544997602685224997910167413114836409796978674800942737633315938199046090000674807144355832662877705571757225041878072105950300516802872126145578013149226420056123124731895392257402376058310854330598718923572203653538716234918760592139017079049159672286610567825147304897627546209096394870494196485466779204439739392621409525083177200949531451437440504022261261378634337923677422203297851650725580977248184573738082080324442861796601241289033732505586790669221883210904361262965048413754755404527896497140938908435297346641137862381305204787628444845952779255820697133004502561015039623539814307807646473401095988770367084992190560200424903790505772898689063332747998608843455352755967708153999465905714559699847061777234354957575723355489380494165762553918344248279872223160432514407118586639001118001338305770957035883573925494274291492710578124004348017182063061122137125609995651799179699970224257060788290004007668951450776096249465158324502079482331450385618120352693360155048495067214368690488326447245889939200851845290542990741040713558165814195357827540734161997641417328058565867292554701034326125431163498080934553370712546854677414237767352166247818591917685847162974571412315586534970025901829155760590019661656338828955830701826850414935325572513911489826007620944387784434406576717547983741454337113545458531393025019561956083048420314796569894961147550305421402747391346639147243555606342828217982339843966133935486867955689346258315095202851548286945973178187832240038691218350276653915473393035446705891480208988056619511168119967507315898937475045460073754261387504918572990224828777501761771745720300718536580116479857323627899275611746489919607807987184007371609645719825773060200753286928079725368082747000027619371614841355928300475699865445804257812357118863365672157227947817178653611733182376489511009519688845637672087797173308984794267476369016172770028398086662573581880778185320564983204401470362172225506402058923279390095502178572839504198367439216224937385567939072439968651497310176244249543387436867932454772021176000444879359527215174907007365723967049963258515088210869498835230272862419282776909553813324599757508864472502619897007999205232857184234365452139452971297739644282550514263680155111940879937871368691020413959573734074966183968950094114131319289053440944222512117493228326278099169462318748077750442429654906362554804902206355951504191062768692792738100853334054630186503138116556421589615388723721126220901333308962040926615614419523461818201449670235124855869714510197005098460392483309489146744368566885640110264255102180121438904518878004141155549409766909164123366801273016426513908016756982044578745767978214374497331078492344893961341069699760374856387689353429892575244482307932726296943545082915517839560376131779092666672843126366093734850963196869261768477903193587238439941346325984809655433186456307164113213530391962057686154465570620475941610991146381393790725037383273170162210989155742047285842015216093445376016231933246962778759836056579305275724384610559038411020193649291015966383353450796133577327192058807600856145103483225445014189325779134187213104147498475791525242440974270274828711901558535792765913346819184766990853617294971639554221834568928170978305218229608492040910120243811713916022536324120129251678897560887888566539441644434235362751683596840068727165667006951892183112963991251283898469807257691235801061507503365377887134856954692191056758006369895958054033291741142496415338726499828695116524645008261670417030235685537417568911934132065827190602678234773792451187790417379545740565244777078650140009261211525100553445913823192455980388378329288588606720626805366426125234762576761823292820718999532019009198880285911989727495188313796649408302768905847981844238344583748219297730928191348052302408497286765905336151160213019680763903764532147511367601054604488238302539970076424635055777573239829939776291213002141509260105667967610867238020289665001255387331159463228289922534088991053221249164520987640105159285439489332904302513992369392464457359623285137554838825930508871534115761423671973323078380189495130117921557316538392553303758043403363544459899373291586109143889722027731149933295084732122105890082578617074687258904634689892754299509860507187335821928713787548124516130699329840670221814076703929977832814973626848043893464256775136046599401662209595888943624026612934877868775362583418414345571987548763446727324617007160145348175816334065081727822203769837836833420970910786387903656632497917325495761570225591623243253682069011287629192573182259477423767228515175423177037571593641548780784670233111664263802433067980851915266404692321527705222129666879045830883249047079377068653453353632326837790903067460631631052387899790070788353372147921099684208633814616816334195123435699400405172989669062278916693167457385678326735205457349575341514617584530775327216375435018098667861142473587276545351498652743044235200388856133346635529434331463378546547609866835187023728371626430587574412828717635998353450965069881935705744202017434645981846978210303453911749821827071457893724481671071844635177864963339210935622335087806136984718971393099590781826378042735640630671010264418146409396261807877659086268681509732802278679158553525494844255119973981661385942588684435366532635320651904945009929766317169706662375385727133154266550105417615820438269468357234239956242725874154926197499358940231078682874606344989185227209536091044384782465674757882212894461059212130800197178315258407109695761255456812496596399967484138643834902779086058407370594525660554543639172111729400881186296612259344209562760415015358945788932468711476823924513553894175836565252905033181913706250773493655775533914137275608153470906480122771702908926453462899889538145662256291595590312596705398132684436410620490788226575428584120882487349525970463291732372633618402158982332223018304201881290375956206041187394042581569425899636853290358186801178094642272701687509421211562792856440443546052592576088414501872411930601947695346739960943395525017919873066221737812066546769823717028370379374646027129837707543356035089880877742718686098022679156787816690711734177791649492886325465482412724714734326414552098932795464973640906063003567224167398563359081998131331330186905503006750827621400100077742743923458102066074963326114255137744988776760401047667465150252815677107102847307523939013498286166007174366427130739275346158031657779677723356911415149076663208208752501306559166733672543250722439773440583695342211789707637865142681962722613846763378965085781279215022036097119244822820727558690753167598493588040830270377384756889360510676029223316925387787268387016539533852601984699744886253399525012724083549893508646134962499841207297680638297711387204614720129843028271650360228486137517275079041498576354732057302509138711621352121360479345223870158325902914522450440195919390123983451820820567177978115740550515093077507762520072996475253742255727336677444609063555979272008249125628358801962254427648891657239431640892315112471777732760446197474130495260150281013347933018840368571805393862441753571610034092776552913367615904392142517851677996948003565889474423011046286591977052858330748011099986888345137362062924885236347876648499517529251151839190714174699144680477985141129501352152551881731304001780866078256670851521271531467828511452884653379514329872814024844269598127372172621129167181353779592040795377140881673668877225619208368438176746528863146247309779087099766761505570885567022343657874924280048602901345278570736349128900086658887187880980967447817458346799157375116789590622295166325533798719842901052890859975609987653183406393323617727050412181550157114604861332159466951360289054181071543113981166757521507922101694513219653119827607413509548498953401259654402924862433044552453708322373748331946207779913932716283536187431508488202698205621152629063916972130563612913158230726906139610792908692484967206002529557760900908937205248819623038018873701136099998047563323715479679563554102300299927985719236910343308898276288940541644934532370507395811873390329930590993509219319467018622592719781476875600314679876040073186231185815992912821431443766199469060983093525027528122979463114280997665452669868813368795939981786963986518403150469494819644215168362794057246675169643785579156980445405743193422713662768776373956330008267692587165120179606575147164606874479760002684560174698210358261735341643859015853511695218823978939403908085549715388094482027617721110334367383601521033985399420944597530261582572620033590605720019328940534982063164427713993199713086982732253270014968152822496509741715999069900192688981031928521639539835152534862674290328736201305855356985150135425583268981396454965232395574206252293890181975715794204679635756774202831465471919152882518733570209063874982339079891751455435930066282574622613328156181316113792258170992494325504149575257477919230167767715431528554272330476586701450964117390613121464936224143110493670245497346372805510632546640093958410604200942899173168051466307531159764279173510544541456807193569505350723956649774480318966489711622376304492752618983337984892618259226461385155621917751740709583643340982393838393791146944283879876234062224458320915561306537415778808057701935863092135309416054471245280795754180176005382429056575569592200816213979750192875046395824361003742846158882844668160205632536629921783473993314356706869899624108701159104288969280323677709589251779031306670328513170666439841222103499504550723838499480553889265580233485191847905309956383058803144821334383146033834473317785874260750808412086482995139876035816427869851565132284555384682128563641648601741442261297385502899664777155034062056934055334829584595797267749638627499431284928118405897779445880299989240490490357104300282821458860692754904156690962238924865191019570556680042165494181024058923092192375065488742425044890492940133797672578291652825797857666740546828657106957653023705759756546885446723023984973025002416411526796156572300153816122549304235440449577488853691754360757102587282695449727117412106502379241051071422052535664594241792629725274906798542426680618344146614934474384063427604492409397642220047254236464467218771233564433481850729920732831194381584395506237108646243489755209513214175532152889746983506338158074607948536325302564468612976662942183380682330577105852485313531137833282028946097230297001893084654160028391673962077277234338523625411588093024369199819480556841486390649697394906490211487080726488210824340612800587471576402268841385166698277479366283370490251806310299886059593266835400124693857090676354869040287538387084208973829655783731984581610473348150361096889485306459565180662216381504493472076330308717734924424247502195710830536249962882169019364650846193751797292654914972018529906458848759100091169244288992232706085046993758778609434508807760391354429711982744108304075611656768146413945668414377038160325474859151118273420262856183909394217144335068488795144351993199164167870073169442799398233014660936297951323045118073626236439273064639457622296510864695863120859457168746409836363044758333919078093579751062370953146397621860508315474158645556268303046787976261761161765607580350251829652517067069662897018581957448861230908968697503169680543885067474641541815458535454323589401859163193153987409188906453160661510036872377718416257316295609570998329810968355380867021605846189513597898889981165692928964190236998437354314861657719184323952000967795567535383686835880244963537450231444467245796322523859583260488631578777098592007125586295494644457678087680403807392603692476040931396501778396596377388671004101617567338011147374555280310135294606613783788052147484177002578628498485690421513103390568133507145180857770423304030084461484340948215392842949874144559498879989475637773722683784800577227415210991786104834360750946352225111882345952345743732407733985342725679851672911925500705410408166674286291920962934651250534177470185147830955448588981210955824632115985828160742888911441788126309406610133081203737542421084074224063615532128865260364308201704892312246439090511963702872233073274683013837769658371812825184819680434239800561045783811744663651829252442454966330430332514963264735350235482233968131970875808285150096432277425378629673580177269899927282405890514943004523952199588017595480056039798166376025670408902087975445588225176988478842210336921317937317772013534869063194150471939437795359804810406905563554340573080289866682841832986022665255827183340480917148104037718914560744479021996774749496340471524888409481956526239240027711180676525896610498563360148814741396656762074093996723993191562606209457339842258211486766062917538780637955310729641865021456895947138199481665574480991691458537214115655046026938100157849671244325483221935577553129732962344776129322059846604013966942818437681678782984660530750747881051463287500263107458800984325610118486951786901196593520978560098547698615419392363681259612078636975860137459437822123232512046870274409887661634414826294815390643603597541882575308450743533311403492946599830187102343576556580476099997226840076311679843732426814802479934522328258702438363599803575928730909604138989636140513045249142735206815962842923905399707416924543731338488567628548690287679614485219524495953044367367771634106872672217294485767334509391154658910346937185730868226259599848095770657880501225972225927290681096008542535867133224800426408006877911289300983739215168218361915908036498251706173727838907130891993837685765285458711346033502737102122941396161204828185301639966883347006908255434552642041959775507643585385478795400752450088537478154496597825415181744602594981286508580804689733372336707173139172069586043948362086864836767867473574319949046753613445171001824357696850526551307077281677410283558401008936801626870177477035851607896394866153117695885126290790734770704443258403596025097828186925652831031208838985135858220958858926493372822019866082127865681459886283937672351326068892663860201944849017383832847532939532161145239652329321207549570863594993151547273880264012963855597226784406061330409999275466062140245201510084641492281318726404685548880076480664498746677077455975391084642889188463014943256117633922429575147447535064567832897503785041823043413711991908546856367426531711360332721421388620745849486417602099513888684724908686100512240637990434790767122168905091310619093386680953994313958688311381227700339988604257407057598085314967663726718850304880835377474750200311648469843348048562713343494167866928746735859319017199841379456847532450867838297641898114821212329946453986659602177891952278602377167878546046445463618421969304493466758571671954829632506183227422055580492640430667271244170401235666197154346306221961801621339547689450065664455551061388854827430975611177335992360819748707635523370408777542124456632965507682008777541499038164464147577882766613581759486874185600599998047326716533911735104476654936267966829615258049508546003167758350570053188879361399617174227528921570105771315507335849955839691545658269821906591463862640799317432441798084690211586858100339818533154418463060022957519585792209939868273617439221378963797386130854026394798091784186686115567430617125127771420015090825898701960051935533254818239240364583020436788060911789798697779820927257083092955301117004100412389430243337004706169953707014905343811960816805505424017982495858774173189233430278049937603311052796768667093086900418423494037243928360681832330915213026159182988231594171818182199809693082020124228653446307742163686328915970821159699224700375946060257757957281920181369287219073025807634127132500392143978572822610307353278186566505172181723242026590166996789383393254513277955444905616785352459324839383650254170388030338795521300860620419233346287773548270943374975353312625142947350895197821456524275426667713246557365082720426557432896179096664758708493345422636189043711358895349865393422259795797731399890071116006266563099254151359549454794208040425029066301294780289408647750514620018837857379794294089499518735488872723493900856295262008019998062496428601112384076557010510015599201693327687991785895240291849179059752631052511267914032409318302920964823820806791078772304145159839170361644157520656686774512105397866682887582420709800482389604333188492839105811481644614914328226355884068289138258749476088369010938203443306297271366548207378061096881966946869301221123502980714064354903021244954319204748556403022854469139420477416415739870961598365286598284951190593134628667135283222952942308975095567522529169358672156807494045197644187431360974440814437394443662487875721305390596745409849671243691809905636738970810917640423556992922718867329750247375841608072337969101722719533883665484112100090270525974886859471776317605395084919019313029129055032872086747683803709242595741772232981582284909568488530043605129230127693222339829499239673337359981470782158210526653592367687676391143338179453609058724789073327491071030648909569608220846034461270533259216277600320777235114550569975898114932026662702374664122162857036771068502466823785512648899667031982579105803739041638946364530700587862716243413884598048688318863608044211509270886195194116184697006640021527823153231231996258536210169490822630303105626614293877330335763177231535062359033012544181256550646753399861225334591516013315537230857714389240123888906491347166168078369584568782207890548430567338085228265949404940187826983668020857753711034489784299515184412214507692569626677512928788796416391213679756496634281128070876813414346841641078574856058482503169292332192555620297720216401137702624303567501034263673521428969911956092481724290679518492353338305269598160845621072941857950049059338599884898754544684345793382971167410085355924182464126408772056182711780905013195419654067043968775890998637177270867478971025286647147859335081295787125048497917641486634730218568765498717075306152846062965580628626116195643374498699744594002059423570796282487068306082937998141225235817725633501977537491076623209845341925561751715165160693770090163413348220157143831460110286779096218152987080649619794981043134111881743252638168610719870972548308031727530517888609484954135711516636387116715988398773848022949761960465352360203461326129070118801570779634134124460280739671054386303745154987640658661674865221504522574520524725180857134426256551364572041531127799080316915900998978069539812462283645272462978743534055635674162271031173275467250281791369288010811956042806164472595487143593509022524449595447893606187666292200672251283057032426866735398380077877425688397108956926226300109956942298959745531075084954239426254612854415670709095885224912899794650218508821188607708929971986880787339007733502475070674754484495701804006063145015407270416241991533298987908179168604504306445385136966306824255080074046605547670998393211138649321299871471223054943756876235161920381670844122223106485256655158255808264247077204050424437130112076027309989164126051233285251050918384994127403377592717128086352365100018419986675632292949939279196711533832892848230328117418435248524771752874255583951736253384150357088375394322107791837251028075237155823539465094802212499291113778030937310927943370678725493342222785219727637045626148141448085632407726012844397869555954151854723465710366683552591396849282728110703538477778290295936049876235523490763617674599707097189836807638985662451994184734272941759545278664522011193818493820549041111312232221249044570932261790696264888780731251470260711482176132355769746297572044221275099274663135516799169562467792289851064027035727872523829909785019467694160074589616803044535961874203662756725630965897103380843619669408394772597871921700417685619390592122989704230440233571140398679987157696419480484743904344248787303295147427749715218453644607630933090712094858178206316804120915521997807321827892586148728367930290341286268829093121778397336058575043663754754440023769790580779856223518961078380716605551237860248963168491592219300860310461748001226380375576460360086246121075755902206350675522005187193221836607896395076518537867465029818592349726749177375916580160626200659406517258507621309958308228682498772924825263467359351651480150509870962261340834246544120098421239314759875196503730265136494289102438579655919870370437185924338279312414838485306006030417601658896571530321175022243749139156425862033750959820201967845924024897572615839229558510438975037335180296837169201984345134487141742460104894406585374577142929220067410902182839301090151756461352527156077597107124743035544259802806887723816107092799684952437960099219761709377192710882066764461550219735918985368345534452163341250194678367157924148769009166378925959107329542554173437344503351814872730002612674603204308919439628695254344157536422405171730902139876510900566388249178515705485595933678574623414176249406570939190555685852969619956351852500378306375223681726251753249791338659329608806164255805453410687253616650595565207741045226019892064229263822741751129271907426718983186686663858926918634008555550292610372765991339877096760961201280433798792385406673493043497550648630085523463277044717661352130918344179397158366342311950843267342652760249653130595931845918868366631101990408230919257116207472966383259044451495185304412416426325517389479766070232750918080226309396735454921296250609767798149959664619946169827298583649449694601041149330560552498403935755043747969676487178726081948496821194286311850973757523016178877095369709813543485709276284647151526549865193505901117234308991430501299802319052899702655529502886326550628850034131910660512548156388559141610822776878941466478149378940752756247818743752614192904131718887699885979556803200882037070200196463894133551547348855439663040899901956773165343697148619825203471405987925449943822740315472903765852033377614766101960586653589065493899487900563252190637562159082780058068067704409465034380719478314678672726888488547635018373718742326576209828455851916339293452049344521065522284392716137297944123735762207790084750375916174808080562877520659131146851964213483886697292435053766524813879876692119407109885006130677214371097323861632916498172213573968363765146722879661778846829781809432464722576197878070580331865478476568317235055430880070164014241987343790589583254082417626548966295194317162718083345070464863479747864619629366168759234712299463191788860032220720432870967031108673118191931451871713161650716856120108354418939468708673156503285201170940977475986042613221009816780148619388504020042812826865420817510983556096656544331408108013295138593721703659312305551649806130622284384097151782676666971100427990616735151230884987009334786826869983101332663855959536137887514213693045714095057818486046903152604485531774244127382755962797673116654641255519382560413461852684491780052277685297052966194289936031897718290545961351362628463906834121714494880743309228252427462799516570543744886500820856438577676017076793099108046672684671007862737580798536618031976210393508820581498998872880256327530294012682468065271953312924376717082061805873955273568055214407845043099640716407927539629446832100530554778094675328024286856020560769586177496731267691183451044675623445143677685605409781993162674114824534018332978529535121763102938541278566005111400066746404311506093985936928789550617728746524272276870851387163256748308842278720777218137732126327630668756420867879871672890343852021345437948783103812157043206966798217584494358032644208678562552297304264770187325478291553094906578168732266954489638775238850052761520827536114725593157509265190635733043158241497669481182991650972860416228943726582965757608133489327479165477532076600581519635473423732948291041273564775739845871041788982095597218416978614732250112429143999476525696241366059045031305202129439803954999261536963479093134063254069824151417241822152483504004480027788717902876377068608245654594029760114436323580240164804979163002348592430162365424617521854927028977643468328151266139375477691959843863893367517038177539693322487190725348697453244734441688931828968321813890240181190109554253814810617181002124575273745745076284572504556534214495601091010863812989083924756495419346665520194296216902058112312725044258236718412589052536366225106077333413942988705287304050673585525582757166154848823898275445296402980773562674094108367506441800723287078699416905201895626853624305866494117981488085919485913909376561553403718396352469650547412126330029440814555291726834141326633168522852871062924557711059428862565673698857503485039461288185456333787790702659458325855278461094808651015233081995837973025351917130086641811158426483217213787901306001907437128434530602562101520926678034854687054255463768644027047659274298472834629502744940917388484798410377124829408230012744597275459428240697840456726179086524488193078030206787061779041864062464891769615902801203293988983063737771926961764499443826583050173529273452634358326222201234470879648012946876828718441470395997196811527360885699285113164327072288312049084316146081589743876204815065364829555964103223994439216393673845512388298283528227671615190904005647429362362324882083407506421974686453500445567051388632318304862042474797084147059167583252481556969075479374947891838901946274518612645649263241513265281044757849810234730327496993164892548981268917294874900534762916682316541758312104853107737402012333061646167808687871381652179819646905622846021753508724535868517207943448701702394939972168788929494730398360089727853176116492280427216446973011845700638425476067520916619191266554568301040540528497492299904124316626759897354145775009893601424876743717334507402407893188673003518973128637886541988055164880046041143700477417846212516158486407958171568247909020048381427034609578421316818164556964414930349350400712489705860669836720539024740888436665914037810977446935080347337544370649710028280635542245475559189595928302899582230616041225606131232715693807609009734516437249615693459855827721995126642800627101998654196641942952413580896070692271099232503568426960621638051274253467653805906995057440418608830936092331148781392675782537312626410691168148980608358853504816797298531278209412964786843707037465059089314717709631930041389218227595351227935919933795420489060474628449422750477459993037040929418232743979529705272424929004746632212584336017153734972836238166568631864132274226665139781530420549965187801044536872434055356222809616468786845655018617754918096170586445559050688606669797347226575847957630733097423536818745039370704671202112350178422316720144365671889892446966100386349862615471702513649753120051209221541607073164117660634537405755963962283430101417505918442094994415447703971672449232064851105345755818439987724996625563401684836110898025634407416218827645792215544207420743171868314396535764270682801479559442533744961945712028981345068807777277128753302543318666861053797484335075895538588810508644069605969638382419763355618470712024743355575466623179236572344215962232552435425267065413775042481218544098327856996821221406587854144914179223884409368183694605042066587932244064917157502113646721781259126217713081785185387521348068329654355435728136265891544673638052151426741881818837233478146326072782970284053390114007917830587600246051347071249016648614690651334313497103109149869036765353533119278264158226059035377009120268750235952631915088838658257169205832315002140144144720830967563889635270799263447202989713760436974087710873249331763615260069054725495815055111153937618669209585270079187505361726032502014403446133615131609681250445109473284931675838251976532719018473188370155067833116713004456183120034994970243500563645303528859836499691713903046451895346327849072556154654933357610417309991734702869222912437538700528345606595704259778642979050920929414055528479310343754301412714953652691251100530126657631716050120457359477634644661466897792637893000396372386417865807501149483328831690057038125005238954564375560346045767650264536027087940685479136669789578594042142282847999559932681419680512372945412965748913940952504655121976980187483870904220717175865322027027459156575915814128112066258737787499811967243681356767516052314414424300318322320336267306035744058600254627852495222535727278410891923353540566287843232776786918714367423073983257985079585550889237932444582894608263306943517080876750755669029895642802099373047930526848745009852369037636218606009975877008070849829688745969270449232107716744426741228537271070371209725096252123650483234935355533263375964819131326081155651449781436443361493098927843789231613595992052161102683315673907978425574739695916023487953832404791196148163638313663218037585326429577813576272756577525278176327086490921769611690673946190494272159363825591841636118312097912881001159619764182787058259362752596944654156196501503428086051520994799471722085501684413872529379172766477983617052970450549370580414025845235532486192163278254412958778133822539283599191838345393137135532060404963458239861733896512032722008697197548089095139134239811436067171147236232471828377488218073975850243669881329114318651761539490518068608374041459115375585279927052451795255824656607445722524106461217523054358425001285223368224405384544009992568082938157249725552413767373241945316493252519411835317583748121212374993790479902338371237740696342340574949096966317830734205232481493709888440777815827218310956447561443290251876851153976756468488460806255913524373602990534140059460732320343324517306692589565484633001685530582236167562832537865383187736735109771508323800446106089349331274110537351233732725060263279476076363524043659990191379261112807240220317045725651428459260601455987350689786181738177832594984482267207773945751692331167145318542616934582785512479033733854700024856818508023409449305005334476744284449177276511297738978597619356381842872811798383933205193711479499614254762448884905578349323604712896250857391411765346541638014091313954400787357007056621051893806587579862031317376849532388107833137919881078186656631466186569207941765882576953261856905971683280427082086162770184107474778229912321934037614532945102500258251480037841634189720516908313659931581619176466714028230029344084659971701360576754691600941925817592153075157406606683406511772861902449127282238594221074551150824971947246247759136102563855132688427461257875926560673698178403178078266491083623228882620776394914546244358371590611807875006877528089821138437241797434928574004814191827175131714175141663496774913643395878563141211875545240042960710753943830362245061351470487327193685700876072389106491266890628876713245565448266068061521440728508850069322681513882740801364487372351883021044611321644005763371733786845465915415509380778908300811453577220687096194056112891929762842761320722891784231202737777878580087284071796346978933973628234725115845134370811181679683905941301654769720105154471802564976728026882193068910864610663296675622126301735895432974292861344434762310923115649738471870401319470865925417425406382456950209218851981250511620734944296921404734256333546114220981870974162476507051258302749827680619525715207923505927166312581386107373473970356369607367670541732315047167516344033169844525972103195562940892790060508627068671156056086585049752259515606066655060894810527759577863397544567186384104355784476779471043364584524415048099983618542310574656026259184957746519770026351979869103736425838857720723429112999117589742033588120378508271540987958657263825386020958800439560640094537426383163177076119537151428830357590675623973505048891966630467467018602935664168441538204791636688322832897315135461367699563992191975146947375633722656758639509600654859531624592692165550527426494307331225633002254356787897435409430958927680928203939401900234558773470702621042728673565475458210783240788952260535316957945742553892401242699704988999032215671614755154983005702592875180276933191010346015077872154399745376283924010576751798446581116862323381858069882585181760979229619401311782807031062026187746418014540907882029066525737659752924347959114323357063891272037648907752356415553955663470291760108985968453290309969023624044402101896735696247954761547697766034342102602995152957762085191699150436650755733626886221578821367318438392567793931589156498229524451930588855392713476121949792034724379560955870601930393499656066967826899867766308920082570405392806485611709854952465681839806806739406429963088883904306640037129637936862737840043219500966473078226339013107287330071711623483194095813554886186293628561882496577244934367908423860001828910692211282021429524771392596709849107690738272727783439896981144052991103660100461822278406683048259580092269009676624027959125808030848867625341538808986599417236238938273626433486335036487862204251850342457455474481504994873249415068726593606689118874741795537791471852029072460729221852919617881825251996396049623404850029898157458351387035971264420508019990416586167627591007843842866368332992054658247038042113397623147227684364294106574016625208382923942493566285440618545349209529001524204648789562186345204821902663964697474165420852643126720604376501099032537400833099862790859097284148582052369393044149465902419398147485044027630109285253904399485333213733993237497431870517430026463808882470432238776441394269038485573453010779582158940606934696607237419699169371315368147376231575639232279061555982157655503147845402535878740675619399075910307687420671313768205160085585793720086781692691098711100625205311435841520911227539142749487484519671891078504233199435650430973660728921370817883112535319361918029062478040657869087567696857720091049564911714237735481511804858122537245200460317000067221712242711198380407416157349744783659727452939552961913260700910427789121528486864702519831691081593799089438725317693310043929174664768229138183204657966441270313816888669299047899331723801375782521449238430919991784647998030314479774930255445740124066571874837441179415493283221667737974420525888205027105270021947947036363669790383017087042712694158672102969944262360110882618285340653251554371141217816083964718423317409376549769920259872498622449150285625010071701390991441451320370661508157570611570876693374834850137821658881768480483026266767014296698257990623188812952210238658362649627798536913081609649757966590718587248912080788759311757543179386937256680638865191794908281234464257710108721131804096912944528265220815438596522616833053832980216347562319453735446614682008713456807871847134017963669718611257946568301917136356348124699906123946303295435776657244048795245708954837060537713126723161581449896491610223994959418227401964349562178479742096566335816920797406513107034986954365423539324834759338153081796688577361433226273108773484348634079235708061073198387111581765908452002180221849637654865455547389367070221025663667582078117659631307023415620564263310145318407889645692632194842125072885730172675625928027657649707530928609562268526792732264086358083560878765298680281772978596313305870309872309987152445648574940697592773201868749172331265171487194021552799242486281976497291601796980905850791265858121968722933769818635114419660506053077214139584291621167916594142942846711211294588919099823305291665320457900781817093753952807685084445146269592681375370170404215887518914476649946577443608440256927292877329070567986112765309506770554118184511826476477309250430610406630789318113429922293673180401134230174026465610496544831493546957261733471880742788118354043337423075821822460708070065362581615723298455057546807220208357545579760634542426435385507790600123485777683420982558272499698875451123153020984868216987459019139286766365492709063121615692756495621894353577903770826336198246397141004543073667332732495402692845604364931226023912173376367505203792113022667476420001834196918103109880389050464148232792724815067023817435731243212938791400728916337854186151108745059441319440685569414771362552903440716793399952815947930534197883176625591196417779022240711216741860140496971612771486366131920843521713307927483592303275841649883305796413922109733928520412987267032336163886530630507829482511640125218026242135552871657239905597216510305531184721838139800363583855073041722037173467105234942170051725380965333548798718045232323288497817440730557219851042574452531990458798923465614369034370664298347768396034187087576348974899991031758913789099826986051679564614807934394248513387325130658431446439284166205563407260194276225028012196613162986325195879111480626185127377472098558629666752591629418648141844356910535534658563712214644488215578931956996207685218296371075139902328332019006849355434408818815488556630208349209082453873028522737970982006413754025685071993094670886132070947585635363635625990159916322185986202785243396515832544104582475837161081002002661090678179847369847993865487553260408664576096819028429817918441683888040972090263424225084882466732352147570957993290217777990434349857871114327073050061623891775993203017120490933884195980046502222700391792881357515036872493658543520784867714906854727410180417413302429498592016930112669069418998459686437862411889458082045525473872453636304348034386204543679141342386335841721423993053159610252575203782466131640756134759443028182076154612099695949049785758953107307854873402803215354727795917970989545919137481753223257225262992067108662202793812495236521697324185246407715975476848204755999725988623236095076809246212583614076027729139607031063926853909845003370069009388516849498698855029563303867280021366976940819682557326377205467989662769904484171027796031657145813365643098510504260106253569297869599827714817932601417949544437908370401018426556687482885431481676458139731520625163384366803013801120495919764620472964175256591795245057855246460321650467984516494640808804337287119187399742899857064875019882708128458554583471326906922924103549632151410014465204381134548118939397525450130161086572580138524432492356740694343996113936175080396682976952310087413540407959723221786716032199874790955792384892002867879105781441886827170906415827586709486163393007318006305426628873043565883718782766693545873845543714856679357433595777754850907608400781371087927731088055206674967289199173265917303530728773631110687599012674465388456140125516420133813640153636923088381094088950866333842322960974514881979082130427286162779305274711296492610193455559971455876310543992153106649111217223267837418314393293485910298987194892661512923986954758839440423415785723725389640448822070003565212416547795773286901763492951388660263657059370659681175744344864862345489300710731945895628436136856346661416459682049599729664857829919412185571180195835613986714802574085325859757993539257411367539468282137943525051889031610991725104228673808347892471969487747685987580359041251036020650829569802902354376308265386445862683393223895937919394189765364500048439218297083883037755156916361868046177592471477719466751556044863165760908001865576004562483148812075134318992071223491440734165010694100131367445682647635834314175056775333602283082766576133043362018353584193932624486656638098189090334895329243909026006566605022825698312966996354083191976568552362086440291570576178272009363561521895323003281879494313282380291407514204882237327967953291259839470219883882884270297778490347924887633246635202851913650124189112319867859304184960182970046705530469095603734660994600639726374070425693237263909659358974932369188370805119108201980349638930564214577586287355080779213930907503842083212601714790683772211330681620750511015419192991952884316312872989531714659576036806694642090894712006164601798553126623332064582032416605350785852563620614493295820024994832148980497936013035017799111483604873416263698436674053536598582495664780969470630644567984909358072364083824068509613992500227628316656567223709145863902467653968138382850820720234043028212425513414454341546876070599321864662013234274054986109224539524837274522240415445599058705845252204644941651565353959573585093117602191093353763512063197354294551266700942232454203982942859457072687769024715830417219203346637357552986127390813626523136526019921924489598295624228273387848469838157693350363070458801196670702251379470049843110510800246823471048935715119185806185498976873501256840280815793847826970557624260081604722965354169599226580377117184578135380840233871904196815072988195229628129620162653365096468130689742324703649644251998769743011276084970363789283296302024345089032768283380299116435426676975255006238987380159760731134940887214988569122450898217336244718666543560661401637424745836817511333682552564566897019392229655088811321654035740059500137666686475903672673237442617612545440987343459083135929261548895505234851175706186536540082730960385468754365653810878859620539550978427112337640611323763250587926459480518864628711903796026870514014767332284717233195593468342697545901844601704006409365779002619339635028824743402615019167587311009461469267505770181418521424152843875840426204243475596835447586250990522214632323316703778792032408271113107444354066018632589467790445057109779282136209643030355617294700548951654529838963655582692905151416407286584110747482184079859248865040011490520387929631453177822237184448172406745177776148690331398450257726386382872300493754280152099811304092969401501228490411676027033329854460858168782427302967316878502590716652903557827927157803125392775999677215129453068466312201652783612425138439729616343111903483643052430628805829702253982607036821677780286339439693257154415400581056474083725760880198600226505584720436374099998936952304427562147336996677096916645250114336735730426341459102524715592423953010462818152000639067237644950662492268022259399757328499692047091444694663803296098278408492055370711386336688261776915031151699603969062560921795743045043048605487104550651732303403776568913248559695838929987650407899760011422045592465849622326940193681409758217328694549821136384896082876536707133656643202965326830034720669151208960302444175565130549391875817671441609078037828782059882622893994078211782165260275620170481454693898315792818242303138028586067699292127852083894659493675984749250879442676597047185578384345691027750679468395359271471796871346771214440130127454462965522925144246715339896268101602655997290279407910809581259048506778663260762029870175998005991050613828274327481758777184193419394078975865111177514593268230831541405033072696083569886492873678460937128993153054519750424658976337084666327138994949006608574908201292753104587146221367975902767683288370971595693290480863295901965150996914810290806188461866846901775593343690358612102325880935567345810268059977659428795928203703872357259582653463810895532186258887752981377163039981220927872180002732948242242981740368565856362092182350929431489975382960847209559011453904020805658366165251230739965139315792844362613340628637411744261228626759502652168175851013502175737152240502000774939621419402862773335991853880853545748129504607201874052163167117171403718503060141420282474192273042244346184178203230183732976487110538146927152971316496853114797903877477748153957115529352286781955939216761709629206458202425884594465733302118564193141312662957518183379367860411699838929964586442506438422454812945193028524053574379892248033268283784753333940047566580069430796213359334504551492764924453558743381390263090654675885712388423564512099287691794434997708073397326210762359082858765142991852351161118399225775847523863362718778496262257700613164763037273114800510494864205754216750003590099377463548327289761262206175240950049909339081038295150444669659657911784345879243458074998337077877033788801042662667883518833091838395392303223562140717389154226181435149557705210547605933377005215159160812179490828631503172895137006736484818490305799458953538383820319822705939454570208682979565942092643705939752731363055378454421082954905977631900484635489317186538010353846983656105001544354628528435362214262682399312120785012559206033393317983622668577532130276171299957287314286563306084186315500977083412811659970465381576217531025672019347076346979058190432941638902998998455872202646495910666850076561447021955310992649588625082680534274513471855323867075842573795985629297374914501072878957600942135439776799439187931584338876110811684984291897597718186316057812648325713068940823933719679236325677242384827334329503816078703933982053654686160265541947331937837205178470910353987901953147855477031514961821941953302235941698475871661894092261077779032469902511627704856712732887330652379326207269253556241292098470979268271602988026828361627273562610249422576806358112137605702131574891411276491180402184234874454194532198137667248688606476934698776483022119021413288415164495798610356290737381296506852676230639027983388810941600164145569602610842204734653475351696307826181250344268072840919251786381409116450881904063543798640770886624951884118821697564858477361266183429440068401199455329801298453797620710452520058750585745333988971204068815439465404480748336867583773633980810216662710633065854439357626171299602357550870168331855952493539926578238934864804857044451051907625446256556789460288811952269234551702665346318906360816808568362872774636195512755919450450995842807454085288834086675364508450634996346314222890917501004535471258692757821490222814479513607737446030266696314962924763312285072143344619721820696396522239086596619812959327358740410209219421401738042319986237352932739513236322078081199708204559284924829574783678049438335855981338177911601128214800587397286221587196745498200386660821458333677028863674172204807750608014093976459205898741984783828964218889350081213508433762364925356390287290687121674203635453933945645594682048595297354585382896622147884369708509792550519049375853639311205074586162117330904966495524122055525719943576292875352500075031629965351637758025249405875656440552414825128604586001369373444523268440573717715164098660193449568441354645757381261083257487299718476760316537877612757459294791506121633616106942666684028606225830237292262617373292145517951937407614517511829071767631472990659915500346409699019080089804476380370949242028506253992477039670505127731212265825472585807531973787645661972191718910391359227162476117955851671671724347147598830059077209232126675053640774921106723652094516524576711518817360367274442307919604017014108778060260937418697878771949388340986998104556469470216486948924902235086547792001679979391126160597412018770753058408324521342500660551985086582003537738563266224553653319586181914824815984493734054313698818150318856255144985376746575150326205571846605546346306721369429156952638727429099529637275976239160450438779377568317840448016689292287766951542531006355109686996325727964053596146105620809174966287769336232073112650161802234143781394334909148531705467447933674950214151923398077744101272870328588928107154478090024319648930485556260194378735244054380041345750117474225756189256932421720393483717423365483752641563715140998698611467986826511462891642227506012685557528270539075355416422839496832675155444416981081136750204825475404667590921775789847543831894096982803191144889802405109146220497083508830670214092329343889286279970921218944949333996806837447415925411516479907777864441408745305508401565112181126088102469562045671134047128341862186854684399677833282071887217626931357406911237214352501528695571411610936910229890663647286934268959246564073485611162177519146452471914148579587731916880193647166039369151021112478492519377465920443527128046761826155570122185984095944126532852134031568375651110461813739721799497323649358351824598937667078235248535014892616934476610576545522369226144664367566873680476065749912527943477223886592415594764947012529200738482838018318459533776126660958468194781330375358446243202328832374533749466583546772447933722032574466287483142179328594819001330235540663128457474101726864642157431821847263527482852526515097827812175343755838448912540693027481864332002039978649686044323742032629270161989461736903898357403438773504845306362114749690354844642254419849520140138946804026819244305506168622933784938043987582035211576745224202941601039047494230229074097678264788039094182176466134693325712970557078691658552517478269283808224669513761552991503875044090398156467352132043494721654208260569786005155012832826977300821150723338436544854397601215294825252310475398339081211324874175834615351750497861920945268459719591407354065183403959477047763924110188822039841087775604199146533162613080757889192127985798165260615186548549095053959424288114439643230168558437106145695673845860730881597309870998440729126538482159726694167008881399111350702714507499758345427610667455550875262857104966538856418996714413638061284639282787587467738219989306804521315166139741895185089985280380243338773267687547741453907505438451736506101388935401049136365836891962604410426501891657139217050760597107088942807862610999915989169615474970181642608460610544884283218879732357131825513064768731376707331521991683594955915985719773408145302106741134558439996410502200062086860210140625753189865301298857762803664907578535373003523556186405595373536727998597516368191190580369659466542145457091842876861048077719582860200569293188677906561637761631263229466197765529086673899224043275724121531320586397398546361938254757334530604738654370539743421204739241685849059832033585840214541874209772795038104321562753755081818722105932344073807210115386581814416348044384191130946272005165123856174186609871745373087833317789787742702086194864567015564831583643949105317737785297726637650668600722310593077305060502488434071594111624069076185275678348994134894611401756210851186777153873123575517540434756060068950817726941162049275240415584106603560904302453324382453909105964602732906069187024814049991450460913697753968812164902009415094733338258345849986161833653267580279170624915040577894375492936953040269477994786317702509665155222925274887175764150997391093488590735348215187185346452143242739013868396510139644616251355701586155838652229570458185063463641210565099647616666135565610550509333496402185453952382785728772070944177518423880563171903340401332436592357327921779674855354120946353132526518582039654735565729765535380911868543690464660195539620092621072969832303646930717436479577818583846117650296361880892511360948865203195615720091086076900033464153690725263226317791696372257474642633834400917589826447966804759831454379823955297800168774584975407769091396306662723570190977451036250266840161511793723308846573996248867975322648307173455234051894637652418101998614380405937782096941597803967154568965413892421324470292993860197993136881167099774806592982238973272414377956904573381382103544643611100855013269487620776286135230641616479457625377466774556273392959675529466433039679944204870193619325546809049211757489697721054487114195836062409362636567833151626324733201417331911392825716629492278841529063612701496908953993357288059251327875764179529471778381982754061343161195488846468142814047216656177235710205445058331977303132353432306766903936610796596144823183216542979665911215312221516671140354224651449949299428813442479014908256340414450090409944878122289815479703564364915505069940578763280375414358829341133658659197071368977587214817202559955383336928485721834935664288689899840444298261678845586986025080693928756297975010954594396463118020722877474570571093141903472558376732675054530027051012592762347113965416911071774820035537698890111379027897161810664217925931616735222448667396466842378568238792264527072478770885933018065735992592898793419501938573098695998051098702445736837070908015879569869024004921923289072088922980036126909109050798499949551504386351195393766536501490090464283701006110705845059299669315404687460414411160839702260201884888578903746843936234935920706629013305458215090920914161957544202434486958122560766832828087627026772615567784683935483415129183207794878724352708945794721848719328462843481797525696168806006351500687778303967103267432242246858265891105656539234625166232178020399861942951001931853836704613712456287733627541725090873565954707459134090244980585098651358933114857471047803937074073347994506313638183218217732195224526625239880276570833038998495960535506096041087153901249947541327449183961845411839304348679689974280617053539961643779672124545919764985793087854538260824336858274620325258442380307481112570492859286050259100497228000314063644113705742493379970470322217686340232003843869426443651153212089388466256061046078174136802816251154727667394462024228413099970435357978547614762603396153120880491480480906010815893106727575894519762729892542098315146282723156692533800746937786416879889529127785979343447163004810961940183387370033282530489732141325388104871959680920681792854398189406511542662349784220453504238084249571720213235405130201852346475595620035492107968716122136998888504275909441901813104003808298326209638051947991258546999074939916974812810125311671146173281884084402993240168504979032674642973716934126167936948463466198345580967334627278970689884109215792880776424149815390920430856228776872986582735302532995570469668840638519350090086354604894570009435501304487768918249210608743582239838278244332518193030160399884400827225523645822938382251011039957077165839719265535546862194299147797474890881219615827480032882175415698222664230300272972974645931564950722799357831719896359674260038336518658185333697830914108670218647078429063272537642545962944529817594497543984017235408037512618599101660704046817427846791524454914986003927837823613996875628144282483570201433669806368426469630015111493297491346263940350980400595269586466191510638199099110676792947817634684067747701067185949078814351781255978101840284043102650110506774346131156378993979979731681872825461199014036406456988684617984345641147455975237629392325554215099217300122373528285808851087481563899654318407935850994386911183373235992590631534760387713582334961267558658401463853966200065968098444240190444777538720904718078969769548660876377821699814140799594640691091673582127764247784427501560757271932160044231270696426735422094980300166307430799069450867081330354606662870528342836987752582954237806293964152009211647077270925543148406337671708923575164957720121767096008921784503588995430335599946463372798456644496996032798773927400247605275080107601693275214913725283249284117788113325068550753903264564111519411717947347394723483357919082578307212803930486501651988516286438466855592656148561995798833824104710554159939142895895610544413216489320425143199085735378489907812410544142576060014490384908169511718913340498500519089184832630113474803420961477924148646244538327256411127274782927211229580198553937657995101692813355578572218808641906507013395330186085537682629435950970225548052138716704532788984443311047253590130359606365206528746840603805740548866792809134008431208492522801697730729990121582857550071554553902357020956829091640054886988257249045398604262316678910659666684507880750634307781747396401973122611073125188765781376131264522485773389332356183289560092480256430071802740491495928129690283256143911545741066226998898243106992818861275637215493342131114032282622702454219330168394367822422228393301882047391441096532605781279647931236025226927655788383592652212612804566953280757730426845102723613400559877655902605447657562574515099997578718779999996227655205523294710334512752316744572971009184704544996155904344860988384763776818870216375028903326751416253316011768848893300683265737105397256171543174605163378897488865635404661189006841479057899132400198694758123855651293636330030299874770343415484791284949938673275796049821033623856454707046377705383507269659185148591612981238093161095781279055063087350554162883729714908578052748076424199816207095200450653422646231359689377948016867421878377540614844523757241148736963275462126894660489754537279050441387154447636729849945196010479549886057986833675208653621107199607786540651388807532282168968595923485656620318321402698705112812268557011960474143191669018111281756620119002462531000630117058520426756806478415276232335355704982645871909589043320538767995286543995283892235211043773448714667095665481238542288258299561957561466822038296845961298549379330385444300348665381332437386010890318802912235897420444018648104514881750953105055442695886520874959489514123698313852736445692374563863614458244772976058295836585450498427706010014706160345711050300896516698399742082729528995446364469526880923882009784853948319122811918004218103872923913775067453315814465523434555272906313451819821875874568837965861253113002239452832315627144357002084509603676101924372163358467484420874207885613092526208839396749269785433202152735495143154026645001962740027009945532914528311455912975938406737026894297791924876549986360864474254118345335487747247672389416318083942566932251558406511162507979962389721298238425502764456237398556125947684708118375089341179444614970065690692297024666042987286359575063666851800499514064312572920267916325957935752026271319337415327488825846842488993437347314306785634576495493522213026411342073735355384295892236302471477975021170865438392224663510437653091607047201813242148438572657839373826504763488157902088628046877017897612359674400906385358213167705439444541118140182417088274067201054338871639337485852431668967759035145160189035256455082889297540235229511097397825093775000785511421925010044230663956033912235710710556587085421157722346229723343477537084778855185271012293928159700446887254435907794998541697268390174154371574623050241556847401621893076675302218063145052133888339181747709783243800016737756803996399979736782066801023750226902517624364253085325716535060256445780805186735732277399769810145056927782842680464517426940358151297774915876138864675781048164750396797006661033616875848150858655106570454031827205730792875452637537334411522949096651225241288665743413833351370056978297500454838005877733614278957410975571551200086822030342541506579837743679924868106572914165615992247850371674569345312629684899034875014004551281390221634409222010759349986456163819892222801148305696345981344948431879663443012587726942230685468067193958430033448332245551921014725339915659807253643664159800465473636101732827903302110376659886953371693707376673457445119052001304949946547681616908320915891115597514914635032627193060351755642728413564117761765246086489548857759389066827073424073484206158159079642502798668068986127712231879073291657745178465554511600580807553255780411501787040496610262245844601844620068534804139491075708941745325163916685467981917218087253672953661260245818921850903180834682994778506258733546208230066149882113180022299745688961875870670767123210339994813043081887171711553095895671853391574583921917702304844892061708663032161033892516089160830093857753051768696040947904962395323613123279151293823389072598677035790483663099010693513899850786782485740525977597267276996890568350899745875167426568774232966867400229261199228863616963676036711558647495764451905410665351110251308610268333773205951617527079282658494905628561961768547709035163996386279356223480434379090486802610447381290868964216957321144377796357576036060009315368930465947470346885988982924404263742403717477166196316619879602010304209580399060829184836470384104457870347582160717320144809102300726557266802031935980300096759592546135014869254076931937161189722619632519086309313550428229921681497297813170239207633933804931691598233594217526102569041312502600468321408752974606323707060174665743877482584818482273028283063898074951249328965266033813921632765968387821342911481216619488888001502657658784772492951556277641920255328493874145365529588246180821355416432146014625627093518515075255592687694419247311683448117736094657378657032443779357065246846335412814060605586366300163724606011055172692478615828989276319595748727134046761286935225195807346212337169057386615922149836767596336330259947103861265330005167215162802085351826697380589528942621669418009571661405052536931816617496676993444439486988711612842395290172869179773276551732719994844822170079157605828011626895960274069995669235322056916656515050742280333976447408410519194947338671663954983046760628258312796754710141907306365092976346059481428639266130548214634602237485882015960549189006275514381525112235936330790219047531089541912324496974233083317997069085483656438833336148060757252440282726921206607945893868204636188781294999512286229430111850593928477910916679876799645946713407105686829354607325439441859377987039818654542803629437747851400946019693103321080528805446071190093406037096201648611695357878403944059754990398755406811008608820636488381980523369224660980732627094342558256382029504254194970998595459423676317440010107241192717607360670004887227753972242835404301577362738479818940939592370004087407515170200599064828528446491806782101753614217836923650494631651119214784343229462567079495237390116588408853900025434156697894898213870799802871113629457945043908828504594988610950114782040124630949011634861230147609033274077827860407048842030976654449402040990475818719380430247384614725494995476571294442282955742046881182145184592823554260961098544603856601588759343487246309539275776323921473392535563503028714335354429061032173743591110037612152824829321566283711497305002688073993089742129137617195144906557437094573267125197391502235847368590898516501982224228805271970661487767714436194789144742940217607617228631203955442297790352746242214811540473940173167094980405448337042813625402013631201906303319937660069709554885735541249974266900376036460542924587781953570626991797482763392120517064525298209214492512789497885798794664306618288128780494031072892969476329418949198677242489295777600909092009657809160913992745458323597441532124867844556127550813055826831135837770423297188898555945772571955754685318084395687965299985478518478868639986596966568816366337389371086316562274611115203070014069700637238399787314558434814711213620241441480466908865089348150707304362616723762648672296624435670324097896557258708240144084183848668669869439400589039360137184609698680739685960924487831614606902576540438285928195049592487002981298927136717440892090845381702111952631646764220388664472627358234227744178671700206629886136613291974012300725162529594473680698976612801707477652878318465872401050688636514961625061493911366772765739820479649494719511784774951586112655587925439302229421308000587278093319111804509091467868316450430387810207282962515915486606585065093528244132194120255735919004831367417560312304196315196149775949730451462482284995602022599283536332773172709464538207101098883383324321509974858252779786751982886264275494470301907116938400037345567875038698183446603512532929658275201120152501736120749504999512840278999839893443542595835923416475395388307452694914140279339698721366395464027446870068819437863547739661965484104610370719212851833626107446790648138005630217929350462268735079626457966137598651795972742861274026620728861288750041269807820338102458343065041150089754835504178430556585861949609165772122564868641137193263148108553947104600817739776670881315349789210582936832376647344008868841398833177794337875117612757613482888363727329446264065658133275372335793791163229656660374488591553037911375442496931859839154356623120689920222423387929731975242290920571307623539697265274360062150933714980915686336820320851454907594004906389336916433038602891386671198546614052354933985477758094264666786123709062315111426454482316439254153236494544618088335313155452997125704425157545738438788282781472405787039391025209430408189775288658246336151184460828588487967376144556846642045853214478897582782042385607227366244975404596252985949007037754649747841077332558622580167685468978273856329390923052523617506545665250409625738446772524507001825862662229119898652359297018502282070524197457081175554063449041902625557211752171789462103419509870989220503183401092720835431129187768287426944914795562816192063932780413305027323129751231540652181890022816840001135666969387874780991727093578922435569983725256068423952063488776570590696161180835201155685743115570771363008638847541468774385024066715822175452138750819449787143022171616829134172715905088769547410061752415607178511852744916067287896249992501919415092486420129723789012859008723543164343508360429160089478656109524389354669422452393708940478710002265076293568582902164000720518445486861569620175544525820534859555781193876934196876703837962745620666900489115923534077881498883887029372075499261503407765799107142904101513969252106043122552717733284027286377871440278413239095468631448769246477175581028323017230766305926168113095149106891282763964676305926608081602577002378501563657464935979235296210917114754562060026702321803145192377463300254463482563497009354768173390278581238725709171585094743478503174333125513055721259311943735566201186604333811208257745280721869151125807044794537741871710986322445660510101261454178332474383717341561079491952927214106156355955488426703089247368508117296575346058694181405356517139506234486109203509235633360688910727622335262877965644063053294491032806554137026294108006788583508987984783908049581853405060273127931917718767004829674284880035560158615653035000864168472631364169357653733317837596259109694874468246603974023605861318989537336810675728911960349866394369568517645269980103314801122862844893081626810359691459951340198848758032172566966802947058780870445710924718651401700675061506982586992063916919083925525162429762076934801599035380072371249671297703037508197756779197162631405483422050939608927824919832266718220302161912952642614065334236010904418898280200398163115838978380706122718136107053042181321810828942916499308454665795863663761029500371010460249936484310498828170846770391747255615490474901205955366780601354652670894814473816500777573547093901055477049073611859481780078722907206079321890509751861293757724088658012768195867672768582811525552179522476439366839762664052158468325436068095163968286626256677825281770203764335534716828643634893790862331438219756857535033737740994092084744956929087642736712926159298277158046691756326103163033176073661752780275042705147205030421891887874547735200721179999803375578415204739317238207215633619100967966127706451431570159482513035666645143763244404909710560529699445731589888058773731733443027381619442116484497956919881373671595081643761783095810977405876074320525445996519603485990317457633873021484061195951721963137128392309116831186519748612345743866049089104929654030263214611824311948939934484875621110386376618375098587971501103345938504750627964772418172315392652467560581030172292308323438986087990184743939505099512062772220739520202459774199270141861764255141378591834009364843281578887473285737405253008817111334111317052484065839808113678849230727703479213013778588120466012344454999322456537615631648611323760830318728998933178689995210971057681378061413661913699672049814113264286842476884297627426297017112871015966800015648782220383899052336726932356683789443879449081781237672123939915965225523572989269130203663450613632231875240495208882814058756626094059472874433630210693472815744098212844679334311927273063222949441057796232411768059000246756424547993022763245467489449241462151168767426087506488402160273615646884235423524722805587649694252878484114905980131268895076212305694725656776044369302340373576215989248778414180335410562871710058694361945957861496144367772490400607166127396446171328016060492574421270825802515072429834340409857455228732679163660846966821605045555176020535698265566594416882210037743827155798766604265160575535081433609834577853958157857609694493694173640259200721541240894670183322576327281097297403093732281167672458995075539766809196150041859983408263795188810799601355284389182466869875236684548805339679252291137250003016588349133713056559172927567138724958890480363621585114106090942334273217597100272989053088873139435560656839238490422339206993680595740848841446002366535245564105280574605166099035827770157139544179129792980555692537647249739931430035944827915555245680019915347808238962731147307417862033785750139218002396789989563232114237813552080322469259242455423782415784971539059371980415356436562706974357324190224500492614272316275271109965987513477979523901192665051426779892630877471236735829648068044181328469603111963787055672172560443459738845751779584184451001884956977279984284192565809946137260074892016474822077086507845810300913146900306513681094791267448230102200139168453633139111164823830954677248160944694662086643667057807235815630990255054865464693486880763694971754819888952545294443032550373099244421144978118511538254441747631227364459645500877171524887789542087308430218775099103818446351616589368280816641383969577500355242281455058374987593766839570101696944480770238044262309445158380592550276320500285842178068099653872217420401287776433861377168663990943901089353786914061798338069450924047485122995469029211799597886115303075174796484157836797358508214721817677737514764621497537973486506185313814708705848628762094907418510971719313597940143259292845447166751781179943264126811595535807693345518166234263671768213072107241949665124933408195930296513783658039240969582950373401611243687106800277329732388225907434066097432618932796874812317483672261554923053651239628813607036292756582444772758686186348753165755028972825994925560083687170404649215744559065351211343736072554861414434247459714398711161609536474563081734022850353063837029428807284685384440602439769919226413718909270662528597917984465501013757598779855195809040156628708968389174217808084527731995961228364548329860744344182269678931195415298522161104204647324880615676350713280992616549818195734644091327951764066642037846322625822684960176465496409128389298966958109078181527635657079718280433271181880761274741068634677105434882383362266355188459501003670096019668197323845460711580073008586794012502275228651862424745823171007856699125527867672157295303158724647088090140176145328244044560535332878364149493441070566569014164180880689845293391107651651851670641331934472010780886064440590760230344858142855689061939637329587406729666817940320002082568334197416954732712624839755636536877396612179952688840446042491555036240330074948169068076113659471471534279873250973799861680312286192347868911785680136903380079816913122139898685831955526408063562185814766246681687619311293972582086289391889291753597184022870864333491416812064649386851808422506315916745683493105898588210075155936409117544509120396293612903955598113575078506570421364044155826853516177062802210491349092933736897837834432281332580386629978291704756631687793256707897553684314164156155564411031729594876371500970961872814331422688126549972333868521186598619441209510644290934545508804659635267804912048764013526714401746193845857030534805183035636493583428187506103833315932097947040223389643719658578500496237648331928882781509256569676726943224515641820548344320475720008932518568176295705719712448451374759863361233426129566555241168055792569585048435850201538407780325371535219750872966687856836311646367730166932055340189864591300175858478823877049553759812817521392436248505165876798673079087500612157315216689933322867037548953176910952341000857225439275863099565160451417188474469622492405667517331225597113203127431351469056236325275586282267591700327984458327026887459764737432651605390720843251486918927620050556460799889760273823443943017058133437830243219339063218265095330096201790701030123511251208343014695225804475124042093038807877735938885789124068510398934327411337137435091675961421980094956156058818908076058577598788205418844325291863042566133336463443952379797025429996465034359938620282614545360074150723030716529524704351017360766187355097055194718537063221846476105097965591820049111689603136955098070908141326265688175224238434438532503962046097870751491392985786425550403872253253323474020532366659252034082213744633617931397636421784548056001490808193488874586511420705468853889076819388508790986011399461606753781419729145200697489522448445189748218615982372261750579633656356064661150375783585975440256688939337938038490456471421402858620923861095743668281138432056288403858890057239582057463841624162156603452337221061883896925928590913302444126321159037586784133991747134974546347253245897383817814320047942658635700604401264172466521782640039342651693958133587257724177654355913964663044212251463484198929265240650036155627335904752411111559203179834755783034272403635435183783447916708727130384434248790638014979336856067296004019433439890580078397728136173667710568245746959031651812526780256797960917788221704811552502033871500514518597885405341704011189217587034161144623531498215723705107883824003181651059827550116117746348204944412672768168997890003372834103207004982034015818997308149112009067194473222028895506448290630322058647446266366524180658408862153057095890708873721832200781780603543898687241127324250688207804516648430722955169118380526836916515694857634201872014915749940371398935702339579044024562741731586931798610743440518910667003442153582116148303508273772852539354556200897713098512175536707373073461651101174050129563936057268757897083091131110523837221622926199945268131868545146395687445790875627420444052277735134994797619738043738034572820053696237552854249807996413898052839559332533616137016694853354249307414034210934787730735433027221765055527180268096889067428851071077482187898628205311244491467007398632959742052904230353009417363659127886712767307301361556601405598396259004171075280814287540747232119434998614043248700947167548933625438250630029463179386804295046195033052313182046150907929734266145910135969289113896375993478269375276081761681381327441998824702544366836168007505666359274701658636856312229283499366485551373660823658671268499646742461532911565785800153975951887213415483716348295515787433393054698384897474407443776320588237811394905009037557996222462952488398816456546133265516148712807412501894636609041524336822632819308376269979811288612732513811497321089897669787365728976751039037072572029799146431826103264013432972186824548265756241548085629973200826747974529845965088438405956868675828656375411457887529522615376296070307195161781222075233902337750914828821378868877470963078001057668456437862777273011491251621096835795926131283786374956467408668059203219233378984844108745370049153373726784477734071629889228236117447570226571939365434032937170714952473041519551903928574554393798381219246809163026153435149420928747457789736007383748865852610633132229941483861843431808753950571709482576335194900010509129840645588949276317100151234807861669632233233943142531923673345025905226230085637614767712871730074391556501389530950491800926908954885559336770735262029606875462642575021907591254749941733806225128746213884600245114351188521310558684124880393670929474382338962019916048462303381951286919390431226938696502953264746919226442691362508000181689994053760558292487716788136258583546656645923188095223884839117368017054933984336820874710198507873127507125676849248822044269450244862560644827230438947409191945543049757180399014269687388495357316530886915971728421152850925666204441471080124258586019229660016935375044202205582512147958592409172497946960185422369596460020650377124674323014502969400126462510036766159928521850240215906778243846729726984834433320660361855099877998806429566487083665967823468470697896977069732766530492746239059392787579403806904971137658524302996187854690861616153992905120793394040363851200139969849306281525801496210387740862611770382889663566166457986815458467912610982035445237397021317789024532236954805390333029366098501063929038856157962273002184489934140849652046548309828182780987243665489995459841252024418323035298590886833782408050036860321785872714503943384389724916843822909138961678209668214013383221259652768966108595638136268317482858787119693765697629678051740540301599370763306854157496600900066870917803735666739604775864409374484683413168811343243042733865558743637151846692958393071454978973913668378666731379133013476046676482415271977602500905845897307413625405761554116079562974259429045460921156350217191245616897782013400814624132822081396555368175993146775201910847388853281285811025267722965208558181443414449204599092146831556586584627061821138547295952283311477896787991123846287538719502381750071297383162657812283238298699154513963009865282811907948181072200168096046711027822709857456107921339070926413334066146269189957612175632605959089065112448127805148570675579258382658997029725770839651897817014989675323887870352284420604711668281954025817829178054999718481457652187154326074227404297325527593306293349317900932996031043730539127365016317126439123316362021065991213398483588373282126824417239669437504503568352861016894732440018449735641426640825902415488165189865983926131359880112218557590090576570676878178012191766411256990405281299818495509152856656686103901880326909381571150040765765507033371068610078179451805815577345002576535898242063486093307842152288364635537595450864453477207668145449354189218769070829927325622428616585590118932962309370477864110327000212446696445836191767790708023328531411848377580610550704483590946404704570995912355933002403220893481806048231642643907369679150539418746691289724409814923420869538741996720519825596336736727076809188202972258929918987907816136976237236035476141895814647597308259540693265269639925050161957540295317677891970285574339519428737281468202443389286187268923246312162984933860501743502039160132295783627207824497263826764064512089735532453883482563222699607567670381741383157007393512827783012357610881482089819368188887811858909043815885009645178903772662629969308796215909460774590342463894670010219747725667657614913537599881717207850736155305411406528960219826567767422383418802984961789874692523070730648218562236416366237873973716112860082424373061799939206114437406270280339630738366755419475557041974965457968293051657981973931530239283227306981127960809635254385308334149289180580002386678252986663983374699267618544861168574188098529144079710201399254249286255013932189565694822210862357377862840098418167300180443329096254442347621285413489923329705908823585783292989642482471507870186092901102589255262654039521131660704616017784667689938730801060233312446531597005604984579723046557537826112049073332940473107435339766777635035825222214260175142224764792499022116207906978268994986814138886337595451653066074487893033032389051510108878613345462089238849525129405595848744346294151897912546261220488158169055185721916844495275915246923411147589743392307475409522085856227906883612570668429417351497273902378579837973275457209401051030114978567864725083685032394305900358845683163769437699354002710209671717417067678389042198222868560311295939098887450111935281558590157388699636727022644745606598031971138736169809581254809371998265620312130876300706196373122575856121656319091469621781870419713299277391545071691160771980874293640439976770429901925714234411708651935978924571764157753078732406003418287850480794290369595911707844485849679086196298485602591121010818502843239602300930956381169537143994527507380471550641182763679200906046736279759637927662288761180399727484703409562040605965344425802856701107094899109223188008878441614790231753700032561421327414097391007465788569020946820714267832011954580129651049325013109660807520654933760881746682101360548177762372311612479453749876767276510121369600345835934299455686384581632458457578929737111977351697337573315227808890467563262775094901430377727700116570841669026692906743283057618318592430265677447213984615575369304556193300008337073798172064228976802072579010239921571447167448764658928595546063657184074743471658677688339253259970089954975319228878606934609631341342936531401435859486227720933626708990169062528869632441365287711334188374961684049058782048955843828905068784188489791108993886760955278356159245481753018385069749303915550366687291948515555920570314652946972035853556968715564528216451047249149939594365998821154273557421295530865908762158961679112318722397118813066713319229188934131540491375087851875770332915343238826783120771717098942565574984328586709995555131953464072628479060905697752494345527368954119211296937247353334822304246413172753559225816661424999717262912123470066790653980999713714327524801281767782561296291651581170427212319493581907379092328420647224040571739735271751979500087261804108219934133800035795285353448993441644887631225487114951313285178246996236497557650366581614433331213205445348759765037766517272328794022047562815729874679928279642342112420881059927715044185914003853515502694503175314914041331273441024581765892384921505337935570865002287464482770016697612908103187602038493137220409748010438305658700615062053165625425494415113815287585631767025959150199311161623611534098837441300030849258344918637746901664790368779885892857944196439053988245015399796340200437932360636603851551722932471655856331059702174501655756863748718988090182441015577081657184029438971450476048772594176742996455892395140103336987352806977498872192899930224438787201558509441817026270805320625111764258923986198116693434398172137564435998958832701716882742949955568477606512693399475704128855636511284885953782271682995559331193507676376513942679049147728444022138506481980187856861931533505121367704619512340056977184897641252621636085231157332328530157427988590034328842356382485150519905652160582759035033992757819862485713522275807173935168012449517106690112171351927113162371684751552474257716644116859000572260417718047012879968165127983859540580967878824615035626793457705900576733326477847050929137276949216162436390954027806939705710636621492807614063161787725001325246330599104119451626900555374004805443707413361014861621935366267672262096730953741601584241597711443027781222233330092958386198211349633395404644195980122951809582259411111475148011497329996971415524077262843358049994551950977399270577399970290026600584796476494971183700084240870733838801763628377074549059703177594055448538300429331336531787953372685362475644250288336367979960034661877652762532114646384177221115843442975866596429270667702662215180712125657443999329609679889440776245259195541049219356249045864035727380993592990590608104517663089012808620232207565930782874903017402215017549752766611206076099794307177537958258848561750710438070204059732700979741884371293879814635889355800697249097566906338293367919570939831380987871556198706511491586868441692015842064781446201449566080607485339093378007625338680458236383344411711986088185940546401350395806853750590492106386034141906847950637807154504831202338264853132888850077850590189274084762668961410701694648811289093090524107723838338453422593889779874218808922088062544583658053206341320481753033569104805237316083279178508651761692272220193530634646689344677876761624117509842072784389668497848094801523212374920987651851542766611428037179323298800110520005092091074164638014629783387994621303054952148070287298922004101780779408536685816446400874830877571519989944231661907198084370420373978246047789963166114233612575726789353455243637349103115038074640543196565121494996316328818797879611147758183777289064598281582524375771805360884349975499648483133923268507383190250923112277554787800399143308560041184578809460901343006240582864325156324804129967206438191385195344041839155621760491482543949085193243187970983368730478110350231984640707752155209317160915859966240725948108373197037071763860995084853040629631905823434811097971300003940990350218051389443030533294667878362173313394256053920599603676651573091467595258034662938077229713416882224958557559818433889922353976017841007468912503680632416001752491419622773972066495618791835185932358264768885918318457522324566105630955374073680141191832986970179930929407197289245868714442141766147219815176812048433358675640357129461274425657650399034921217124764477113812610515497410859984825928836351851024364709781935852772971969228012919269497488986998260364013598445099460426271034770028960755320679968254398443406112388691659887336503213085805402478822938853229987307489228557423410106241681067056685733092992831493971758209951212034545059677873816144383117117615631728412516402359610804016597528456704087157214900800363124801521032578138660025911105839644132617490941233978492334114502502156085354934031297781037322774903935981262835430459134547793418848872034566218806457613723802578245463050944771981500162259137488368232996155398158059280167550713241036640443395606721142955227812681358439616435678078506465843760461336838048897388351524562069883205117133795416584905430681582577305355148050183563331074127601744036973001850343441219155396932951400982188975764768620640706633051563805781142037604872161047838884371016754398260490056918986888420193776216198738756322355480272092290487519486183815719364117312110007335245846992136187129318678911030479773429524905573186287796113554497645355516320803358034276863497373869765663071401426273821350582556419669882423830784043112733485808310412461699982717613903286118951656412247984713476271809183486527538947420530586618255043789363668233418647074873181486755616689219068611953932549222659297946013375722455473237536210339082354799870677515422091456470944637603725509951851786514026483090965726182292698656825051594778823156262200693772667970466122807931646042629784361662285348651127365738880615905754491030454548581295063971496021705382767029321625770588887393600680050235610138557319654910464532360647477611543149838189970535224998216764871060902689677948474347218635751782392778828327066134333244254720604201782308917078305348569133144024727956132813454587824955532539235694471695674901222032239868178688739613275922161261273678696007158807341777887631207155737615889055065818591575744546798952518827717363530554957598015346782430806209942398001131337745538282351819084995093251917740708343844820128595578731271835298296227181282151404918862240992308529376126374366588765737777666732790277923888926786767983448293191037449048225457063911475211493420593023384817556049558161345405039754506231843697494370469616209478386002921202353739784332892334916272397430976094287908376604626768938170050332950692730159664716726735120887202680911898312343537136348454622966945092534461480502940345639249241732162964229934688817201683582515372160377152141873911326917783856615841923385940300030657030672846709171579391538385600561103522599461183176454728724130326727907934500360730445716064663582828752018231966678159851070745690261915877294166845923480487271367476978260794881819040257735577845437457388577374090440766901469789868409026220733178671620814448370727863758547904200380934941956179615883395485280234313689057400314230185960935606776936407444640050745858430862107725325681021577656731964860773218907549149329828825352787449621846548989921016070632356045467219361898575756821840869943141597160627365324084341476195744687385258001065443540225148684941602361179661928875615197840458229910241744713439506081052167796325223868232034817557479381994942917815379082380174776982373415239331402266576995695946314118957091994115526953490015132259822126599150815021862983819020668170478858571320768222960587329492374613419167158260616029139447614578606035056962806382594087560300475201314076841616308738797581950976448144818960057547993353126954113475668355937431487873588266760236409109329749166490840750012499364237108386446937768124032025469781715138551150438941876892070454932856223519987539424936418042262212320818140525190270920444146137519131411453493580852251378303350777186974363474402119258946341428537786422729782805776969310972315497624483798202755027290204369014176091959565678322803621863030392974176471574980788401666878804871713718342903453636418744749366493057753983328645001306649034564489709319802464714262595131868206709456014540979492463253521182601144527024338274502930577182115078333060244115776540476965822112290235018118101209477277296129605758316614309710552111930556202725705585938172988481427397240036043715030901745470157699076371875469429034289832980614458537241786578418301927532693165754344377851096910040485387321918870842401292221862655207341469159492937752586301052921970635618739938459532005010073403641974534447957072816115667112307555894206643946412975601806916412190492056018936388881089081429529270500438398974910662306722068114678022158158322302565842383182153047716733511358324429438883084891578644883502467621618292139152260996706776643159494708526711862439520962923464190854713217315456517843475938158970135545579746300305842367033050357717219406875583200576214580935706079317515328188011634819961142352439480919509556135990042715186182462378336602230014470680285368817805455630852113426849619557491276886877388726942232381424889337359997297603348517739608217493630740324346391232149057764959495795447448184297791488190651661498618654153503225501033886960885863751534888845122067831324900741440662735133277718427484857549368267960073354334324351772776436102857090259169088129677074198385355370566661782269134701004286325645504362139641792986714921722526420393716519580621235614122935227710536038127239730118251741059919547980875218223723874565506868884422635428819513266780093090048506044453483404329804574958677149925165979732226192080011513862988446217078629542611667218666916909952556417125420492681564022076931489311853781800348705233010251792266734201827121690429770532363615920074892692050036044337686953525223076449097775238349270555666748714109060013941513277432035249745200590714716742780738588027810155921578054948138262327207759106422653625308060086785624215771933645606893245285433788462209806061816810769917443774398507535336674399695392389183395188172401770239631731267881944886885102597303996209412797721675787844066075273706757496545878250134071328210475643188264591352268971221473284875400510772571214343226954955634195746866574120612214150714238744640225362152480422443348529457980027754073673020531888657464784755186836132935420399771548899765002489447938012978272444405967601928819653130972907240896806232050262048045806263708288580525982483146095739969505186602996415281590675323086121920047479552956986091861138638676049164389465701689145526091868112411812496235887684208260937264115494955896957639994393941175554574015962338221055266528548360012291977541465572981948507998596986581016477631862762661799996028729098097293063661362755252569725261120151860930108927832589622515737956818830513949329457885865184365951435999163828063448373175654270646788463011886143810951484738480235256416893074684956933523794055982030246671421197896676643220073787322900175815800230398562714830231936261253336380621030335256023839717923158702289357937950061150765345338448476503165397789969645230795639309531596466003923067892672643390662231887355199674862221813823673071554565089146752274310613502871922690706453671401991383648693503426378148388190148127380290235343570834592410929929549573473928165171834369395628294787158574835846502118907090645358109883179137989369324116944681621766178110545563994401180355161795861351593970800799858666031706891050523243218547520075974476863316783186468157512280029506542771323533765721262026245971971405809968054312875082406791378646993278175404551844869220765476767073454272656757365205422447536203566964625582593806740040183777110885916869704255516769401476719944382611312974878487744521399515575399747834894996711583569972408326101696585670126506707109270338192400411165802372526515003616414428052299887547256865484544096701608766018918223172094153063399513350494295296073478594352767583760128377782469458569867121883785033863322912765738567750285659207568645152296649512278889329970729142828412981691454984887700284104035472420412726650309002061250177665369011990794471548487515679266674321073349930269168378502017685862495517330165538162280764773736326880137694131402992455531899689690815703242762529299558969173916285944601229996529179727412575896009810759399740397111233396315256756981581711295026816830364363486300014827269856049366846669629170689680350115499583531647236554275742299814640525762126444547455764566217888850773787989190679910942437344478444902899259032954348142432022347296632681343580481534425313667182508423338345953470630746623549182951507366844803606508618930866994244318472900830770202293698213573049855345191417784264863327964226701574232187363418862428509558443600052023035159324679733453721439340371326941863604226333877962452364161779114474808346406082823631171548134687325434284409539933352763081831468300427117515522290456725576279926744182818721015556725932581374874182641100241925877040276691876308576231228971391206631132925341555262409764744499035836127227029468003878325280318683495112235104439654777697470325315068496479166971577902241352226381262794596153848785665615904137023700571086561153683692008126108008975708474273944394774377350888231829970607208056418017024753618037263685715865199663989589139653654512840338412560396342303095374078427968377403970488296880244254252536353105894319853587477919673761901904996352057889647176834406799855033057020984991604773650200751526585935347581388350590904338134477461531830658356241430001107569450405901382107692318416049576877993381921324010875500646878781119360517936257984996521628523916835584751205573205504762865572079175177775068275084521497130095656224884480057464423908351338566603024237222388515837900091269120968912196455677796282373680199200289865543148268933055000223074615359604862053058735611102388237682198450287559124653945517547329470662652383044741981055330338761214655607814321712401862355653321012417774825405596074334715137684872867976094189882963990313191439512959465896459006013329666319439802585677837524506595232626140486411274716557859776257440868732372580416299821047745552305814161723938497512051592177853846445998169248917884126422605219663485358749085067709634816841218733097981329927022072817563674103809428098908610907098924356474498138715472908798746608028394350805506334274557063636555900392601436005349599492045312754752372106022503141442893998962750411029072968060574628477700952136360310230359179849115206739745880042002840767059716034232353523782595531871732009168910706803537165708062782620091664651808694876477930476724674169771242657323086369170452563587732412036945700720731247649135802315604552666396332777947539283884538613823080609045995440368706050060282350424398266091753256600032132040831084145292929982494230859944390299441300813083356372064706811015899506819337689778099832469915958640722203820655684493675309537561704136570891982610214785733170028787806191778990872139079393628593734119220587345478325376597964165218482975262469101233656900590571189608021569018017650434946820012112410871911747653894776414309154484266402496222345004240895087070826195483910370585528441459912241244111818769049676224759137148421313082569754557105336815240400412028743284894159383008317358096048399130751639437927912244814113702685223458175028421229128694783310795379418645275061454316816415594480933238796081026210363317431921200530420603357879818768734858396276589229224889645823022871109804640974082146681262731695188713804965603139147376842247199036004605659086449095703378179349254462979941417053523558824996880841852533637521389357295031865815755765790701732481073779837001295988903957631918516037784675748163502436380415967685175961079899484734094717080704161295762639899197854006945944492259767301512283478995968518320448870182578704473581998411140238358346491361427217513114003441746781146241455906433908956058202973417669227002126955856834761192687916714355484928194793787675664612567455064285186637886168074600618804179965429157083732615087417675307736506078653110946330912273577786076723034803912487568002466504791857725542480835168117667452005675942106635645849224231368725433565983439678970774065258998092377790247213547367402041290356031291735596461621026838273283107911309447322447971465135643473997683427612112972878836394080290035351071753549860503912175744978168392032633586272906137823890310231993071970964022378515630631877757941457060351564541545607300017316846221460900220700422737016935953370992949391036160381433409020591632670791774859511322534966974748850344145492032016313701072091319379431986935380485303422460257846943715153896982484817941486674990276296929048814026125603598393109085849458525838682233054470569585194672069393770300148391323664590177414979184092983758707296440657172656301741414877922468123178534949718464978961530110363352048056087152975307470203711283677173523633906198175350328893460552859638859502340296962062557626502144067863099613040882842519046582156079046821885952194032438682757722481042762449692522170952659532343631748002186582463968625582573961738396249772592341449455030156748221608484098969303833068381817233745804978510461552810372554912833892186559207031411987934245886264022660447229049390225361870348300790485877773239434920402846422690657842486277333516522242705838163200818934403399519153226517797228837992589911426032840294208630772511448859877745091244762216395807499891262859732054840845133540325926861369456431276518657243997314323355264376319700985086263607377850015280144236454285818585952925283363337943554835266005514797192235974214131557305421351167803900693720194328227160575177096892661644621735214972949048134121247203305191789026595328537560551255836820928221505735405001729272407548229118207904059069935197025777754483840284682283243386065502858673459973274927083283027506538135466222759140306210209437912204064861110394249826202256788489513017212589332379766079579062986662042815829553627849750587589969014685571211055344373841899844474973152475237186952627814550578476552804245571329655119413204227075045169416647149571137918178816261343042560979999271895253443532193613635558142035765192603970633538989831447005120050898670138804607006946958324787477615465425754125765951975778230270082868555563966123082583763857209710997823690058770415827132043298445135000585668425600199500350980538138730788281746707926325897073654298392982982994992512194225574079378992096022932596119248729575562746285501500777220906046006616775237787672304296329106929235641468374097959987999060804781364670706113600169449496783497339471148599461326525081364135431644694562168827187143206137774574245239254218637614108273745036050828912581112676777884878743732902361437054323392057517899130162689209349918785758887288238387159625001250044068629954744533391440503536119659703540614371791341947464161206182494535277184965913358334817534392025368448073959943897795888992467590166473062892209223374997311434452931687218252119427316757664129988424825336913145106180188168054059857385158973980247679607555391765754635224567777159347020501757464743795844434824038483244301179564964452151234924489342864958534649855713723675848994409037232977394689648116547275062447795829097572728315736679297700261129247421747529134990292571976728588499477593203192860472701467453824991851220564046285889280715332369097836125925882876830910177267196762135937851105299364688746631890739643215658128612939132216859798446624439979571929627304512826698871047960912644869992625034361346733974417796635190068741953111148050209061284750857648265198851713381400821445026644834289959279601009518505639244651484545204122390680719648755674415374339614115700828138848455754962303634499042399035337770523692756567698024999587517246953829357158746831547172965047801241332044894804645165674656688368611999292110180255276636888484337227700726884958518624151182427504151867923161846549833516373566083761907770058912637707268459652533982598430194819983030301410647800400075237985219583299855432229513186207124522887395376005180640973079901739639370102855739944858612491720108504329191478711426345316121056303742648535049093666452778787389987886182200321721234027667237832940032519638242336550547555955116678202480669384103084339466847503629975964232244248900846956659058398721116394363508866203898711209907524055795967917542033795429713116543622250955785068661269635625386571960052883344568523148171431291158448225325993181119687434060836379786656753862141491115137271947408146010802692827290608039966277154339067432761724280065775775754015286371359591882042436294298447314725247846497298973439359289357535620632581225425474966498872572405253112982743586276063291318733082657097629451670550520864888032783548481789356858982573852217592287588630785373226507191614449029224690242138730738538674264440762915164767371957890920309488867028223541098533033186584584074550642692027183272275944117462835377458854942557675949661023972901546121759615222588226586590764557279474772219684217501480715545726835877512825587981981958379075959599878155406509814436065022869424294570541843314518697648235389359580683183004921124224713482165708611322916423854363139401963792532007319612548571844350794465228185291454270726687924123584488888218553229404220685786156509078513820229937572990431176908183196270589452585120266669569644738416970140842371932528707414712829064465533095352888734840697488678318214918258476272691886956740287631566897362515445909441836657296186568232818159781217042573500058248121676286871954636820502842237424094038024268516313702810362283109809138459970952219281227677468857948359010895740676672150299301691013676174506183638809696104236679550912934621771329344349154048632850852019001932646419225323128573105994839987883020504312809036193134153010460751812605608909278525528839552917327700517123418344125960551256320385901485759705221239811390016343355253613660917768830414131472450994842594388117566227919573162446854062135727582261246699250487734156890446495453350145130578780424020113620339482514894602201057003940570872860714148789601723804857277073274340886519461465754838270369322910438750583588850541790580896420314943437144320355045137624441743882796889617474242878099074136209247906442895246682946953451634975898960510920078269869928184557023957180426347414067085222684028848178495257730724823089568680391398853668550262466621935772610504479233353987406835386259223205481606947322006749553562249237315027600842814238106039160022107180027534095604081075065682240840209752897433037056660472973276047349163213627439375349225699572768312179479738151537283046625815948371239999392298867638715274369896685021271474592460762889282110686894881141583027528219495678575997030789056507719216192053150114511504147247372750978257533414063000245966575483147143451318984946168769700766505955460794808664777751124203454253564295692870568766651723067681276638515626777945539650708906355370033252278340702281638454407701258747124202389787341297479108710624435692011533315935877034286144150335556024152470329671358385736057168727829967748472840503630838192093999594522335354764977493813379185792150902220652955191810286266185440709393051481498900920989745332837638623634589613157970597157178722720288039984630154323388826177191755638484509020221840983947475441818371020669492345792294020003600778863590591069128311949314047155638273064575733904218302384898668848268631455758035432327332456250276061669464491368990116214779571458146478152301632777585543603720835814782557522673344338809544918826551023330961928357663688017350541745342958102031849084246122387333478869872992959354206786984203233079905921691022098671349465716746341039636119842908631649449236601741232739976699071974473267702671578794453557664293939026410361415276153471505796947725633859696611070875343349848416166738904748121646158088899197517514979929877604220508115725823003531972268838874098237548989053027983873754562238308897990189757668142714690535986305347994082313464464676423040882643475589718839199853896899611492920374346848842752840764621359938703333372916652099430547888763102272024463956475285155432593706728656904898243145328502228542054324779351110934698416088746122321784655038958229667805546536990412850537938578068113800269601099222269457966544377547266192567307287381972258692757135516049230837098097902251628722319673341715233107689817274884668750584606646887956298223285586459861015221712536130750228302945713918854317027416077540093004513742381878682625837089810967316698365918651033141063021600769951486748001038061095485044118638915352393701113614721753037307143802586508304473638402914233085863044751752767815715968835576879539622885953288235364189299109442963471328174864238133305280806416858261157712229754082723683206768944855625500250493443475030396829737272568318962475393046102457105063397647872015396716125116315981887009692021837060665076756614620526938573893880874141304741883405879143762376606664844858679034467838669158144756273120902523520553675309381359150218624928298477293891745122930452925527380435217354382146983357013390566386007797553836072630169044924095297210799378141462135552623212109908644297460099423880661636230057552335503034573849693005073253246507369910067085515562448485104673615978462253427533677652327935803795660022715288720002708195450970562925786876032567918466670026766043989705237822817526992002317387367660836485706216568150971375832367333470632925042901335223603005555861738063174623252388447654682084487361980604253079168604049368483655791966011204608866166571189460565409731946843027001564954623881544110658147199506845231743576466926490188061663913904191016415868341964666467326593257523678612065252977363109661158660313188089771973168162815370811129442750493800607247039948881966694266347168414246056866931621331354151755387881618774139640417618119138842978424210793261248117837383585063068307096713839476571628869561227534494620807316336570783212387131182316439358165459531098945474741106125115042915178367781485958702321080057510460296224570421691657439488177424721825497776882083691011766619578165071195845077459268304693051838455604111766807086869586927461967918049112391075238273685896550523977188172756624761767124014887012120034861999528140469820092574324071646496268312972493577910898718755898422156448550414677634319348958429349547701585848152984080200179500095793248066636144507314499473144700103625183327874181725972406838743446802636227944466123728531374373482050070035571522344688498875631519706367551014531378196634696567050878349100901631570164135053089169917937894653244038724190926121376554141944119396230740790990012783849221420030960685322205799867798041573047850291724367447996234853578323714278036507211791498001057496456394900827577841465827954333034592862367782206741562937234886489121934128806750239997860707393351524101918370824690302732605834315447369024712670883869634872404937386324261193105719117120403022980501608414461163456760102549231639991246787504943511638823413541671758781283449702583270732842375114721464996922270572080490966301481649376950296570844603050074334115747213957724989612355982364429226542590080202628136599180927177840349668518658811374502100413209763778414574850672149862143888609386720597696348691648750596676665881713389418367994150175702256019765482071730025363219069951719701084937940917743282472852250332795909265116704941627237365651694349763992464667880696967921654886225668231327998942968750451457120807213746937401604766548355689934661775938525907868956748256908169684795223679064320783752634549544382300107746198902071391438909820785017445689605643260166247824733597565175437445541182773549218716124618172671737973667513915810908512856404447884717319984846204624846419043408708267121903872804971480170051458724468776895235537125842700669992477668830782490379324148242923616896957537668096404644240006626425016291347489083658159371360780274191666453209410572653411614428159585100556848061457633312856552161676850536481114511569441024041470808820302852462421367969980755279240244208613661477266601387366627253263922735403895935280875396998033734637522229770798672631356435024087558054704807955588475277962023810948736638042933933303474654769336866300375390927663409286065875645981664566398416880639496997829680953846079954456221855840918081688086963202711149069150737065658238614589400158013532402032112567671270142873450314098391943235944448696919158449405599444380347528962759500850519797545702306447966512242687898975233353065848362256119914568085553616581191998440565163666616829102126550151874873990573056102194776922452751822056869111098433683870939322230365548138081097119343813456494589486209523388405752268738545162178066472046074115001824442273348436594689444276486479853373118744811579505018802471296064446537027824198101920784587381913284244135087898953024567680086038770462007323366770945596663135553149810326132821977136230692172882797461186555353816291133345265882959565583718389180482868164916176362253451980074405808020270301294976201686185828309231158043372185401700462895508621591921301733855463298134164314065685847638412811831418947780122280061423195023999810387366047050558104192793230336967169399846465335106091508023145781108698023680883046740332229797521679978307012596284215914430190601029885245225378273324093820523355090771672768211514137711768778065109156473478338529098755986891425875038966284910004573777489382449501623865699240468813696010847542232121667893049862227026618413279685543900419720539468955791074351501075624323734918645707751628736568343063446941944469641620769567935950093658051278429769167043198437806544676752982990133753961247951226051923003620454923457544525066136560612761570914995783391386567553503568690186002963088460776710711377538388727070293014547172176210860253280247476829815065223824458694784008274841225117402322351529770092225301946934785316535117180887787452719499935191962962810993739629766375774602336704143058137360190167578192727553320350229681019490307354842739365414847963751190666192968005675920653515417908152814978163521961318498023269398087134296829490497571780798180318143301977795134625875132666320278846139685663083605594929526762546121025036843316210369806995414946584900864558197693288779327658407626183144825509107794922041985152072972466399776145105036015377710392924723528517175343161675300073417354029927592202143398924467647720116127959555525108674997929149146097422107863593306316668436281478450342161891033374871292603057941801977669425477844441965291032727624540874749407834589909711750128998501615312473797358614176101351633058501685831513399531238677485583244287077744321267662727777392727022475371940871932765826374403106356966103030157834386779389142841606314760085689926454842981561873371879318282197716983446782012906882490517449627286514552811961381188070028712968425770843535444332100674816090334442790436155413101921509947305224677342085766896583952787640330755284759202098115192176498714432767840529120166598110388391291466911876305451907452913789255225219196438938030956677076302201273725273650461367901274094719604380821044866491561721308508470371825187826599638710840899067538397907327570701976329287754083797304496143915305420550179021670455532512727331715873955792384061686017000558845707935178680289907135974550776625881397031010041186982358967339894489003633366170219668393765652224401029174041107925362140612641556213757543912230376299184956088735954897704075333323093132794566384027343873612139929911035430886942419321327932642141792104246540912541344160030385722667798147774871826457138050690727431924941429052631394632503970446032320878012237980919043406279309507407204940693404039263752051055216086380250584992236514549280256556107874564559668594517770166607500982283792659081859642960687619858836654568977819754813576455795282877110039919230351309696314441046833286415732468437008559449690612383003751308634184853111750683339628464531553330640625533456474069371420836487699399754698481283968645805663809481316784753611498495009115954747517448972996473817888476278002544861339154691594961998560753376691862439070242912247388136417961240934353132340813929784069676061654739014440802444894974016499017897244234495105400593438961865269997308451688943294022968788212792273637725799966135987487006207418913862063010271993221049336612208426644618604447639139481985033444309082450486009501998834891214075759050834520465805571938092447544472418549353834339350812145953354973687492418308020658220462377210392552610138678024652255398438168346040005996242351284811738308558361029811420830860819659399295146256233425582077292213857315497320202211382004206794840772049912081615456528015949098382027362991472420727874563205757581972843036279017102599411700332280921161345730141045740335324625807935138301408838086364386832705537270490470708085759589099904451942770408763422406108476018959430107246489540025604739672235687683899766114529040802851713119711009782982817557437344230473393890278660507705547826445832695105178063162289319032334435111626224584632341204259238619178889289094905512358325860877773143166762054580752757859654341051174135782767922966269261047001314377166621247321028926792714417063258955314105777924336595928845437639241123999238276249193319132481816101842805285264699382879637058694358084448714370647623314556129844362735914722877306720625119428490281357792840709366531427275592056141360455271405648933917240731858232081165296100959222425943321440231786550935618839136640554201563801351994006535463621132618270943148467619627680992221549599066002560776787316106521571518927299312112458128228398367957974355162755884041069726906711012807503038238786881405006909903567166495426493956559360388024639224184826061202077522623298907911894540700016935085505591473341469339524757963351260919849573556116487974111553011205568399734741572140890740139481438624397194089333311398296777364008671565452549566998668995203219758459816473362380362915697377273388966087169165315380183412086265479189241745380867413423765174646204553731173797272843951433237162427896370104419052943053344136578307488416886302118022949868520605197599638562036477896864232385176890261849694802781270149633181199721323058086020485357812914375154278454169441648031191809383264563128360927203519420174204762110264516763568488788882207702998596537621389665217508212802183000317919764594602218402071245649951787540767630682354805326761344338771273971878836335961170518174218670307370669536922518345281309345145579671747706794160979803535692240955847499372371048027850134115719062140241050794644898145471146048258975327609997965089665884348465937851999930536180079163537287061004250487619705524219664919994790233930158603013727200124141115351530127666540901318967692440787291081155840480559187824297665660209710248604891037829060075928329219716235402114539255212265762357118393024620028475138381211040152611514093502133369725779676450276591109285796956199280325015890519770695067243926307239422823459301954810532940917534945865956112951108624904512431524270553273121671393423445353468760009171939499707568915310882712574992982475599953164559786067929348147661712874074130371020116181038954522872112771706928914158189390889794825746928805350189645370745880669435433106342272023536418957956693209513363350205635670098910440290862341906095765566495769044530443871874749013408602422530533302800690840340496715276849255164998984870570494026388994747245855182114936796462414504129670837017458805791112304198032921776784791367644310873189044873411809132738338355781792939864225728273089856289999797425121189022696933793232547009831992252651434830582621588618323707089749032724211055150973184737411847415906133383981244388956309523816679838484745092228495328281435350442283466590564253342508704326827497980859578552724976917740127632176619340690118061565651011462601771013322012746671276216523743540008112397029365975550819925242769638595580432999530573654584605055105534034117473270455012477848027973471907896037013509985439418648302162519620721658330349509437656617204935135179211713081423688658459126694435410195426930563890315066695601280421649457258804652333961997976130800102849898786627927890863080788326285212075600534346839307416080859650554613297710386714670297644795130561180612136077650498503294673612565503020512784922844415530224348051396787236013707825617955956973571124831254571114483563322510713846721974027141036166152801017858277290815296070689588135872251066519153554877837287103291468377300292114537332939302098601774765136487611749003456416684646826192417186783534852527884882491951493172533286124100483590054582791318856748017091395216278071494929377459322086317209724996336881167750372915751760519460035662268075641633918789389419957377952595748122473420391594002093592477945088974547838493641741094019665564438990842168504347919638933798201332906722946598030378744177117813499138234872245260726996800570953287393518973916493558484724587063066257125878763215695642856847563813439652985523164293900750763684666444993664923268227359018972259766909353377106670955598711581734721669792977484633580684053726043135501713209419630315920242192280129230805745827846953385919307047758973114234794373887557886704519088923740961167558252430703616038783424312380882952107750390341672179389824711673186089291919959305949061401592646183868153146811341658755573920759331507558223114324820079132020043363158847594302151522291254395694407202979049550965157424072956329595887308811271332045450615558877430745090008478594062560684356637919938537748066381806489341321479747603309502659066651091634904641482483203672968171114525924220551654306472582033964071623667856200016676701421001841839183206610700005729290880838857488123006556907020277147996415568095484624470764046529544170454989070458505317554321073415742635664306825788661025044102246148185939343930505043075725512117611115697348575717333223667742595392540286255167655195640043047992428398450660252380351278192219340606240758583544641984609365342909736273358955510493192027784178689485459146415462720075307286961827474098629486580682646251489042811016148193973586832015233286901744284752596810199661834088282108489468815555905888101983223145320864799872575122819584973209770674601232545898119926696495553306814224612369616547153932967917769715806044530820242768556482289381705944991253853578828161548532716946493228964338684551302431841579904286034355437528955557254461922059431960486966254883402288052881634800987235647877243113631489657575662243527031638995076423319586166050541016777441724687381770795413402922311045459384777146225409683951019491610097071063675685523254311981381268278444953881044351666915119732436322868493764268771848017357158466521322289247214477374317982415073231130356259283378014824280022274133251920848421102881356985143058799274020011009826159376394636571985678215837904270004343384316849655491372989706460858720660490466398543611782916355276644393718525235765284266465674298894127915593487274475564732076597768110150602534662864961398792840549844805519533207666404280847486827444799298185031616664593215989407530190122269896241417663725717276831487317812008313850801124847616363718110750305413866797264792474718480056592555247218501926614778415090607956363888566670381023842003181278390807292096311200728082129615439961613158007958946151164269130623581668376006493833611742333487849978968359229027502329089230716947544087026220298922623434772952465919725156447362234847673442621280656332601819692398431358142908813500057562976466438845231223311888721428751337633355492332707838498843150293229576334151328873242154373892524688000828137399320833292467810712931441654533410488472574146034999126980824135597905066144233164922818317417649547063930587599132322476041160676531107430569128124960798187244818193501997342550169543098140513049060362680911358165329518260801081120965722484573998903575411659998406255633540334129027523994220500218020104896720817861465543473413288651163705063212938013071886577036107834479992257318955316869451236282245160877155204655219261479342234183204261420001603014989967917820330374286070270633624709419869958585497283217688306538859374095157375630250863968857726855943543579373204987042639968370371095885619734453807984791294162502886184753190328319971599575001518652758406771588035223393548787474060205167981567594638023315479611428510287334514796273384793232557934044597543771845219859173699137369722424674397784378023939550264814532654614225625191659519499790148874325529353837978622789879963673846121311067532292226775053114394603225219945840606439194920391735765079923671588239883824142747650704226804814821949359066200685604775362291102482956726662709213151878991693996982440019403777660260513721745523699981417584335243484964008204455231201707521043503359431507000742364275596868889420278527788384499945362249482831622947056413786467522885723708872451425991499218994860534067168438409938267446593705304884433732340478132445021615354477324082698971003802135702059302843208098954734078479660381707554289999770890773913146990978475459746449376791735130260852246190098424999909129368058339143551710200326885685158178149914440105948722687066545920761281587389261398711561724382102321778489219334639830963517899143713040008373994602369228092685285426423052797738579743093338941549890293946878094415262547940705290485995964146572573283707265833763440537073368187393330359611576878172153754459438536102678864784149266239738597922600235215778113428149322911958157679311555620030160825525757666158380534977302729178751412360496465923632453394828710569439886853856784402178113608095366322543488839227493002181844387153654120928107876408292023803907727343598126518459313616542599653900478210499536675326907299068248513367342741562563193861722317891248804157836006160694232292623465472764633872647918184049625138442166198011913252666928553177171488685455015803330214535959793884098912366538101688503820671527572558357510118798441699781463602450638359785013406099674706626773582277876154112762105809473749550135989174147298731562043397851300399566843205449264868333156992941159492509876891433856227594360996967633656178097982832901532770586285419758974145573587276346486729556831882483882988951164170343558627435175895527421400018997119095880686233015962138673022763523545721112175143487630088803762152972122496933623085841959224005226850619264871127987363254777557775032888570265225367798121175476392011000347989477901581277528610966283024046792525473122973844170936737817792732674902624503823807654035109802734420555320030974542732313323121439762888132934760032058686654803702006989119603266951340396800955223601871749613541604247276029788799679040235304604060896479858754648685667966477192920845683073148772281538869824894773896179728578090930944443683482288504653988002603074889601775947999276234854771677034510733669224310149391190668822481565944864868875393371938207985489431523606282640725505431222488128646242370430739132345690338786342289567058554980029213461739292467048288148019945851848025012493367690980291918273378592528365861975753020233962189507072725972901129086768164787829460358924515277232244301511044670941448585737984630950858351991107283181724108904568831278616327691995339745608874960205102190475535664926234847434666218822557847474157171774982550933013401833495123746049066525834705610827024351256300813557936392780900070006844357974102034066820120589348764673410410371595438530653441288830262229696812303956160705841154133979917289692801203409496920705096402361180234431284220363470209551952114107973231096554787559507414776446572845090381977241167100122258486442318587047552684300123709375961570912890280201437304778391929219070768110027720154621470403408613869489816657413568001404357494393191419147227259308117087261825545778025940379022475835073829148821179629409232200076626759893765666706195116755500983559989808827438043045378530755267807890627917895884322486037908993146770728454112636690804970485226608413099818597608795659520478493720002800867013143909611539982799664411924082675929428878852820567917029365628478224195003603874898808342443257960029118113010552289679377642092878204063256284771245335631488076015331748418256184336441781015405225192468263492785966004866750898509546440000661442055381035906776727612694842932428261029602047396316801093754958800529743710722344897778825976033821107552899274879152528283480675519073190245755773492804059674694403226729459097585736285153237396651950802662321659061433530352280884145651551423131389201795849960438563102598034520474643491390152428621014258053824477391764083291320807412292416746897901200301476143119415356570549991987361990051909254500309206520273852705992655160947455239338298120584642069741443475476990539042604296504461941012373882719548851228734365348606685893069636471676086957785298390633552626843484169730527369366795993459381232126549074626686269176528244657894474025110568857093625750059559467413312208105889775221707623941720697759821692235902603303091932176244318673556434375947651174442023481314980559483487965654634292036348879366119685661830666657876653598861038759641708402028384204978422496824930412018061700117095988642473809605579410021814447943312690557331531731874865561707063766809342885581446735513858033748861805143016797539466511680667378147827805224821318926007259713649224965721865062683912794554369769851192070205403406734229454365698206629655057447948677291284112018606270944080182095633112913186214831243752629300786176113707338618611402223270309987612675635204117308257358153391728652467286189161804211301350780854546451954425242603804684645926149599225939247885760155435158516909500905803887258855017194658441220782629670073371005087513342025775622657806278450440212639533550535830369952590730982803231530689185108690040105758870493979733000189797817712639103948987224615376876609403128023776744567317226247557051887537234534191432319271841323649136849835033053472285234395077973949964787792280900519174006108726329569651559747760226274584176201084284204030268475418579722559860692528674377619209622445272086033266368619056867811395392802392652353341505799117782781434525596004231521634891031910427712183385797564970725377272844885621807604333497214389628454300925958184696433530290024178127448747538474616373565617714059526274930557873695019392338031124637054175282402910492881022250795483778884634018043754466956648502818445536644588464780961794079903266243724534483638854305481786372375852625727816367973534449369696876343556798446204781791716450306591229897945903134337448619819533124316093882497503165070773290873952364803270970299520692864471142138315634301704091772684978710686278140827880659834552936646399245476855234498482420945542420158398945447448207615685683355354818945549243521463252573475361423241734878247438657518325195558907447756135112279387539767645634600587399770114458862169683173833119662173045677472333467689352540381257576596723845711257073341979284293145949607677108865959747590903316116597644641974704725873338248071743778106180180836839811878277487348575225321688894713362257382668756020377120131239754097897964555480061994350386626345537646490321146057753423047626334979319497614800260086743426074680525964011088015378316183544815178181151779954479956792680734374868698010565342684746785046075462611144430704335024381289271171476979829945983831130365234094826366671594535201452635558561298152079026074303731044252520470451686087705447014780018244306545118154620640567317559179590587715708734011216531599931772077692953718885137850820953512428510010984048421169099177852951275406370831674708163370244419863166249693989535279343694195180614705643369532340119307902981093523995443804257562900915638176524863807641276286659928483733466591849842370179957722646138994552451061917097426075922550970379453622483385162644900304541020834992549126568696876365080385157304372460392198191568371170120022632091041539301690336091675438560118797975921008041681833769412769418895101184929782274700143220077091922842201756207214833220174658988245402468391398057173541327968748571961098942672583840540745995117145654428140927094028723669722406715959771949880625424270746940979046107155152640038280864198261563730536626273011648185460532559482450552740899356534305514514468968557285467442630811257821951730252722388244370110252960686272140828664980253667039468915925391825573411353970226749674141190973585052119187225731782479086680474761927392393908121812122432031139240886480565841678147177216587391489152357936940719958953444341464765869413866998195462161356006447306520187972357406317947766670543038543609743537440886057266827955515278226427616636254522111851783194196339455677812917620190299515803095797873758503802612030025175915108574810466694753727844017829511943616082182593472154923590513208642125036281020150815272717472094449198508783203125254294857223702390412823104169676367330277378605647254106853253696741693698270395377744254894007743620052837504794158444151166314435841450677012938754999081035418873681327745049134388249691870164441864454513196572271863503248993902602278139051438969955379856488352345893477061188713908465524861753011612862099317760141446137440474036332283858760135440655048361438018039171150829703541241795613412979609512454643492259215150093391286013754675654430523867896883497801841973841083937810984680403369193398306945643149218705471184413376465179183864997660252575539640720132247756269759816299498867075124504131297125059223603188919237007885547823639032571155403787638647965328971266363262239095358684195895706627771986019148131636293968925433872686185884235895367604401698604825625603438263849969961344583941314777401202483229239281745635515664649055424910780191157946250071862505758698230490848941970057860902919136129624722423907387523598531415738120709318067009912144270542994842388574727443584554799227912105571319724108895763259362778379081945865801203601062299672633485677135336210630298210216751812551387508739256745271220820984962830617897543713398097276296140462160249769061274787179257796235903548216734381873628032426596065504619128206148174745881610556923693147192450411470528536414407979093950035350134970000954023187697068658160221074450762978776523599133085153091463744633321653031674463370552541390091242684304463789802726199799681374442237078807953263186571787537408034396641958728815461654594961122247404676269901152269681603300097640695561471334582665572828800762495711385326797022388931802262082676758436170591849183578105974481779693920118776443015502485563019613186104198844682533938310586663755490353991675496416076630222782128064459636162967394750165155689788875742541686119971700625944004303208189391201788794981675213166971456483501821116507910740229235073054152545254326298660003395102402078259621307666679456136174299077740961055179861225503299568282365222462391894210141815838732546128830856204810061825613039884809476457890818611269868669741413716134133213169127638165891204821245051622344301797645247280091029941187049889709746443514312223324712400453271801588012278863199795815919033022015911584681316186323295261795282086771755493609184686157538014716902322308333362140217400369688772613697169675226357677484693305410139663393974181136085921175546782159163552446720656292921721543487355717603440386848973265362916146584734154009601824994019406575251464685622640678003625991735685622946954377758120527638866415189571349221757932286484654764965718122246293032288137122194509858924474602203283109069489684227449598873284856423248523288028375980584785602001774784677584808571263008179144785914548186028611663252614917097545221154823202566396845018030327252298338540338821389061529730805991722595511441456294194756375999097865806964696367221148611381143640451319353611197666554911573803975021582291232709476555286840449583434399807629900830255229145738182590867561802144682270579140215093001962209215878847563884921044566587572457931701510589068412746199029368154824779075679106275138080297492014202521983524405092827642943118525993873509869675620161905998669864020591111077491817383563774189667605854460196380797946293391624892108429226237013935929398524879416791862996792538685202285138441097826419250221576853628485493546418452774114530811680902306931432975286379433545194846210267873364522621153081785218702365289243697698169178585844446187855999580288112403401204982864333031410306714853622867061919431095651438425394434982774803688685359419895809983144202762339215978250988176959218471841767997301167052413560642923159574258407556449154680977377956290613468044374839623075636485018767512405062310193827210189196221860826830893662337530342035460825193548695316666016936750418452627678741264304705905365015635122774367377260934355666145201567378379360174032185534464052272365264211403219542374824963700120384398502818748902214200008193672662703054551179307078029444253145615368581087190198256879172773356420360889573569962072176245855555340025736391529213682646223820862503488881249015069828574196746432455546140773799589188304702627838143396337971243414875886818127738127190029633802015927544904970073995117150102831685730731646965171875376088222596919954307620559779461460044744150613912155581873348872696394329098647958744903689965635318727611751279673977393811997351085378997522301627098076487557053203439686787465063728244280482991658711677187890691416895473645008914549083213411553461438118983185565776381555896211744553316405523641744347930178356097084435891021191765947839396418579278742033350675084846870646120341058506790698208942050398752012596156659476386940428731716598764973737380420465263228206132545813898931327683909071082377409688437437461117124465871463796809165423214162997780886690118690072263138493240266044878721779314730005801148765414636566288172291286124271223869294630428998804227560407319834345306412849979282881943497805127053548470730944821928026760125812227010635526260740357112336401971526186559192890206840535655245646164544162923213715621321367353756252457105743996901188932303640431339647620271579227747858434238296464495368037937833095549992946561109994310780912198980566742057100724943059230685259924309605473338188560388586991321076388011623184687873508333664476570428309539745994959614193227487684799208380181077687506278530583717051660384292323055512971428075025912791636095849355511809113160024807877481062112181084249389626378759151455188597993954712916881500869959685478275835542882272368360632452521862899855514341579394884552859180543688579857141133212616811747379570265502113397919798440813073286357596670710210869132037184427384341963606516594611881866677538707061576728595343656110600475550197929730637477325115891039685251932671686738243215725520969394023239699689745025423017630418924115691204684224076064100646782632250397586218175808864691315746366121450891542739110201600737401381797182976876709431280467172995598731217005866986324100939652236471620094353041666721763104666901193190412010906272213885262386914836017840611181818789372271754185840217678027903282271297216264067911706259362183641211633732919024205896468536063199837156246688679976567430715752792730168218823807748370830261145243558074957832208711976674699060299447767973970548774084327861018444713169397491409904066907007410790093686194257583146917155616538315099208916754463886417662914898396712424449343701786592942718668940358179945278762960978192005489142858174889004307877119251503859615400388052756305000174786250754532288337490995811067459955960288500132631579943664578711153014962213722575334241021339561951540154985539429367893419019218543456449888573232290420884419233845304834070247358838649962341001170344544463463093110000861951712630585216319214189952878588229370887041253568234515326738563394427014917076185583743635661018480876599483569433745149696614206273655914773776332154214395561604228199359166755644443649045004456197956289583424777372186471889662726985935096949711505201075910978887429522340436560526520904962336002666711787697331291903592439721268981895222360678581450589822427518371699673157712608088826176717765529906592122327684955565035826676819077854168901385488600832594736455027492935465236870728256514554928928008032975918732384469785553282847987601159900226840550800482358865145172872389951984063118457333128163522556613240230248426429097284206853598895292933248503551385889012088126800424054882989305562670824756309479326014657029667063607060193889113557708912080362450472016758923224857958346036866048132617032222805037886402091354289304421541352605978160790703532701870064269037300737202031661443413261808173970414900343325560025377655697120834287766903563563321973956039778290155425084072475645993622833796289095826188786321561514761427107178673360187041802521314779686065764142139536598343487624077410953915136737414093263610364708059790502523813127667068550969198061199866904651010298219737767498182084578275608243076611231120361182765132503068725515627371830010884923916452799683970909273115074575493878440711996151530459169971792963558718860260175395766913710955992882951869511853456796699000969717441568942334711376228806449677931626905350217381909154116112017550971759933008085228406756222820300601760979680689245968929613009125926819330168438535510046772724311793771853654305672709052487579014345206147103406583567590819192463701371781570365134181739759650586632575314500948781075767215047875766880978128387516402650011792802539736569709298536313924197732603606304376125250159874486847888137026473020056351269360128101399706091959777371817643130874395013667636706610623041013804679656658697342835580563351461877971664718962135965157507309497964990181058375635627018649648576473066552924537558194008009791542404377705661506568795114445206774682986099479409754973597541091955988842365537780541336801994325008894847847465186477258557289274127093412704664344842697930594579910574149745055244715689755038732173449398242743505967923082850453921997019422486853999507497034546851031779309315816894209975282566153308030785295871303955312746046266502444294429894258294054802416879905470365291475818768939472741720474614364284634637803699344942863302226969285474995576878307488582684038115867642280404648289705089251952425584739097318494567282668260843864610574171702889685953566640564641264984141766569053657058464936897757714111567420937011370166270460960202513237562144113405198515211441438121251520530148503384996812838569566725093577358857154521209742882971471992886286783214360852581852295911718327287669842160299985852882376999959893292677021241227593042665405084293203508729862936127387251328032337211324346572021773160235719718792451635126723066903383927348678392759421050902599756956975032543146137413629970860208432337426087530997574190048740138499428369697195676005063556046511322118486428686788413771335710476607386368592338993769828317666102168507340160366809862979230197684213012677550215919778192736996605157433566741094088607686291767193295242294669507278802009308819770896653099811127426377396986409025016469497558861546411159776378137056483885340669974439252473367856186106844041044232650969806387427756908163398032853537914154600019130701759430616210625415795349856060781596892622596817507829747507298059704109508070848209188570469104590549964109194090394132155145631107529597425718969026327741593404249767030661248310140707240211110879349515746825592915601687973179906722643410036631966307518830535109749531012438777520984701777990995519911114052703425586785604497497834515317555283793551489244623404700747676118724281924879492600409241426691132778518898520703944985435914337010982943068147478663003597063419701942770481355383215686345108801067076025602679470658372530841916744949435601565904689567041718432149141866195000348024356100634356625252957224282199783056824806708977976422844140838922134809554710493956970205605212516367098373669915001861922474973393457565445517966172204381563942938108233935165931835872802358332632146696020945482063949782174470422496515916693737957239595858143153792122244041599477429385654765418981562544565100433991707074831742669151624428720583247252696218329291600766264020665234299083377029098599971773789766878701406771893523222538368418640774217110024156524577217857648915808453030298482058151354473483824955025394597774845739934277668893403240837600846207525459258614975061542035362269966661139423875071538206698593557039067948380422250110624506661998333677380627265796729011611455230962440640128169850512733269975013353727083539839045726441152045788249592473844186053302628522833913025959712823767911440746233478754932270451901190983434991566372456779971631724024242831217909514434236543717276317044384542606435927995007955603988521025722034966415643785003408490728679217185771222005262615306492690094724484668386505552576818917057051936682576953306218855685988555231201323043707066026157857716442142116253583093701708291328050412266136072607747481957261545778184664514420252179039332441832647502629465200959052487968943042407711297931999114064916760093962959085481572867818071424720231020201895455821981661354452570172439538374899149854822389519638765559182251512136536961334163509075069355820700839920832681887468669346277289024906261400668311523561313370236139922751506336283708899728968161096738384576454625420108796624962000414486827730281557372436472690025798845371758547561530189745674242358972596924126442511920738637454483285165148079605986579494758560712652735671207599308434821721237955853424993343544834368536490172390915770868178550030014922938147157230807460159549343305564917480815650279554861879695643833396798592736754511971860650938430924844237464386294015587954459144347924653543940497326944476060784162945789336928525723302016954779325473692462822662545234421634107361599499615776085005947026183280591283194174103170675839697950550967817066256347174650226068064616980476230758165466043188332721761595927171326559792684415641788688737257880630569772587755179369682392931952332417616742988916593194559956268224073686592115266030192560714154633420115174002638507258944716655096456972166182320935473377029631292518072830423919133114020644592511886048146426560694524974744431431957082882405728419863248304623295719139373766340142416478512705877233770507913119966582068559562910825071855635940394183119850251453818202552635247045973592182880577553659880913850301285366814206437202308795973946380132643469179221700515158971400382512069883985216329840380882679379385782881226698273117163777411295730661588734385046075689640016895741076002545804466502043375032385252649571921480631353334790060194308504719500869359693596100441220514411777133045901445795095912053749920292690245635729212104351495035471538503537401467542734072936182813568919436109424726982455739928529058776972536008494938360850629415317476653659128754317165884319272742093574605917325545407105626103183671365910551898438623114045748381857969350538633892832992947103069411461062863029348421229375635246744253264991563747957002726101234160511895365929752698194751833797197252889752577307078937904043285199889578538397527011100171345506535097408734474624681524741526853120395165320497230156941462622958565010721009381258634160061808674579609146605533825697745463918758065518449795856623181595873062794726554190869425155027916788403067482535926594408628725802568773989536421624463107692183095059035997128791996974543107881779543173624410970374932493157933365680005109820345914119984397673035347623756278820837747621081801454480016484300395130462282359235442201653094898389706422000068119985106710170467316897074512400848498316866606364007269978048981665771593106946534031713793969063885863349596112835809411646026676739492901197507785936727409274107058201690909843482381804981286604538372587010624479148834767811676813970354571668157333112723165899325671244784703216361995620523995515180573271314160596700001756533364292586730437455417241165714718936389308240145683267836008604896484780461053855691834606364776904723692932039335599062125613782748885087389351176116729173136599123280412571788439025630072819217762738888435369831622805382874469691520665845515125290955391252556452312122314468135658315090842444911676870091589468425841579953838319144357337746028285825937135161810530068470014923853768880360048562151676899305040019917406745740790321987585005197401272174302333506411672281966985168162314152176934313979970182932457544271650286368718681325719448608960292556996025878526926891952449981083833427559056177791028377737910141778114835191426034361584539544976476809237884662647614485169094181337544089444129605687265573696486596774509389591804389186634306485741846104907332961991491255578056567106197815392853457422460035414735737284207214363198394643705785755049860684288847178286145198586005881033873887084359104749270648084639386882617452200164268239525812597478026528193376274376150655587369189086641675611932073738646396588613272158700404155447245953389115295643907837049316449335991596855898462128136116442650017239937208874023881379898021603136050381768581829082268481015744365860020453882321247728087003147501360528771856054192280393502933572131069219389480609072013799176734787726620335351090963755771678733003691386362379801064718075012358073330749346935182324426769023094138169465870783168872039716169337364661076035766964024048550394724465316954437469048602420646172633614701112255356773665492992951377632645155840639796570683947032308458952797269180335510506745072738972360123354775166767230302961746505754924605560372058834264201857744524334448588783187964651980563044549638065221544712391405697173985108480932155128579773274201031162522666680903744174184119438625012683704545469355209183314969462253125569416565649098204338854840253230619550143285490978520765396641805636636952948906498676272570476245823236196382377008224640595266758269525689191357330819801527383377087748697975090614655877196404035286433421285335559750333642537988692619969629036094634666751008952000099141623123231349126184738412199718923260760024031791088350579159726899666163531336389000571047704501338038119697944303327884871943574832284847154375434459317398409803961538219192595769092221557324638252697222418347061530978840031984386915661841581680539516464756647081317448722950834941713172748069976068273421084318676228746823345731152538438631635524148594298104805758543662925440483612908882120049054242754812961719379570536039013695162991104481964213502637000947811562271983510339114716170342540592103896255778748634066089505047746542979742287197511094947327497598163704877614366800480892964933612678878683509661407725842552805427501637126774124037320629536490410133407551986880332101217213216129249905051317006280296178842289025615538838405378598947187808196133072686394074262042254466957011574225689440606796135409398450417602593545635240011736143865657482387279347589876542270871240554801598960554061510348005624985700447405583550980871218147543134181622073732777542271861512187540473655690650432403962145587433537139704268262272381329377775444020947225590673587732697810487450046285429271226479198347158534971790753782118736671513221379075776858420243908828560816963972488547527766692941744197600749039022269062241127006878216922466566465482111258805471872408713259583355993504408423499315566539374914364794023795946329808505102060109372225691523378804327036414574134700905699143690531718874531508283327892995812218288560846760792565732178810998312930370464596846080174042309155636281113520775307092052817356459103665558020652494917106980367478391378705573460200156592744707129965670147289899401620819811258506582135509735470026097815877441437192870511575609901599534900119362850688250473893211075461774559511564891946261835752809716788077717901019587348091818301551800322399011110131986912891782780660752791340709573621486984003230804910790120861685312746012801473489583459209961156085410674504690581023963775943345121737083814648419419085502643122527937267155974808341601578892983775190379106381673419035510198636858712712977455079912927798961297869741485843695165217569102006406249881467231984547825579282703522675930586573405271111161976766829459342093537387213584913699319124032163165698406382984734720498477669218067546593169515585139797572051823866519572013771185252231484331607964610454166045596267152799077666608350143592164196099713961636787844407460818517688694226490683433136902132919608840476055917958060519909430674743585483972326665009524033268302765840873341660396075266793980672800423563052581594419533956185772678858537216566058587722994093299648455774729236714938194555005851020338289427943992907145071465803389948644899534808138550657086191376135091409169979251432144258126711488577795030017766042515192264796060091920700676788559243882786512171241909319481574832601079078681619686664104825445847949246824849587873516967092327442680687231425383089220961430359990960374191763421463315058104093638246968341073532710421793450978693120917417064504081872822298065310817905467107802888468538798504500927753595457868416359975531417946873717178913243569267257413475559873366592670419923377744282604072279623802843996764612813995859569827010686922001608911497777051558095721847775043425390924612959514149575718172615279783862223105564403797506991180355426372235988418196101405291924117051525691744812107915280104097248042851722788581470891831970241207284927780037837145545830018214870081171341767643522234965762363679474231004227643911831191688060674807687045015036428003076139517180932700766099325824414986324279998353508264182160172763033212494717530589802632375498544900881972505168862944153490523700399736154025671819793201715693080895379038330248919416730266271140494967747031281696077004601506636016348307109592921341371552851662960807879100504726090367160283466474760791664393762354029934842553108102274212901942692825153238235654094802079979711491287859255123040656392600285369076245987862222038112353594056447981380710665024027698380063411046435905034595735298208193788517682061808713422786745947808743542089038365334029195007442824525711777474748517279850440261218302892542478817456361088457550314574621356825403521379130182252150436657033975156229937316168187342473192013980133362806948236451661601895176959692395805933471848590814783083957236518887128162245233481874976770851833168921412267168012410613128091395424654843833528737588323636825227030546014978089493882203305539367756483622557018739579060850567827086398975290931822667457356514941546893793340995619489468759226871617505493029087039050504389731889983610043207072589934961735438930781395889252836269896961485448836409090251225348537452643238553726931371996609616344733374349938491565272936980637911492014962978244260679113950702034022544205990926783221902867874590803118013964316918101041072675494817050137008169978778707986988713736041947345027042168229782492539974217949639502214744310877991761350170823981755475636971509448869416585470644113170112943414499930696086117631272089916038767436034542155001872815312090210059534452807029199405310627434068204388807345722202980711170224497659342250664526717484123462474382221899452431754418737334078206714503397180632249086832025506933175045051208502898589143688065530848599920065205614577453716732755638603928183126667236626074450813677365348500830819949002424484817685698838322352725862087150242930549528582721736165034672355753892524723692710710702929577456385418458126737083756691011553061278650215534309679474384350967035957091535341876264771622554335174406922172693157716843525982799825719383793939119969399817099439189932424790946526419930971618619497427645941964991730423130521004203654552926458038160569364069300007596598635605336918234314861700904032482293221490081824025685073281521730724314778295087615451856308592994410161758168548394306455448161691636658694882306786322782235362002271671090673470162572431463744584606114528510449751294763049816063988113046263458307629183830479601039838960856833762834201364196806363257582292347438266215897957576412833333863889958637378007315948182851677058933098885751063796826187092583773080890450621934065111531856494129265659767534306461381594567724318239731368158590007960405987300595225785843337596195800722340983955790309915829773108371567422773296083303221464274365162145689841516979800977690335703140283507977258376869170379232935249632260490510906120527419243804355205317796439648804251587833305125875437039607852904265588319754311412413192724836417822540690765740968210330052601882107899841016650099706719116208083941266053878643754255095454529946688534549441910115541753270308840982413494075981074915326040436367786807729507862069142376590904242367468538252823999137795991056231455039276563589797802466228364817283341968202707933233202190298524002750519362551173938457363194788652428181949086974518653739547643133526923710746941339931786482707400423863793445428707099471128937255223410849041356160521108722969660006261602874539768734474656120080600494002233049738904553916527049905577000989279271151156838008832088987987367808258312759332932394953752723464667201340015288124945933751099226984964477989631446722623748382863731220062913362021427249316233303507068871764985696641575893028708529209019588519759067064070901830534795692360101218101440756647319991582233617368236779417774941440074240070539902515444631498480445578742531366226161408782653096170888305524023370548660814402161959624835303837938581085393139466743269010744082925312537136808464212658831716976697646024851504452654625156261400907673534318406622163426526014063245353101037157759396309609679401435896629980921746866119081116159006677278941647619541472781457495530111298819051689453867435071138190050819125534968179085544228960862573600022514600950257558215628806578643048334452380021675934962417147688127231894408741419389299940665457728703243126557853435395245742387483163467601855031872400726311250165438658514692869987100410460560814509498041709717120184320542951714422213080611278887392252207137955599595829587584845377043710648408558838980539697628023409166697037141163046468527104342254402665227315202928633694194559713220291909003199870245633895201856333235718791961163272130424265251462488821777320730479124093918180116564008718973496872209234530975264810302910318621838838050702173716033093090805387198382148586554121400187473431906702684470514421156687685662201467782631836306567346181582892202820871501871855129204247303939089663638426481444104744937109889923752024430913567934183779430839720558187727267891896380648559522818297603203886978842990165026332340819616474494040278006439105686745535208264914709642304367216247094970776518018093977289038015964475715528083952382206102522347084764798570842549819049687432869867417396890070635047093814459740226557635637118609578433856318021310316406112260918805296979687100686556911460091953893897933249847620986479515430786970517945911627483774041818731065865811735763853186769673470355142144584553421340052045781675578195608900940052632088421362439935595112895518233644131377070301873857055069746451545622569022347063833092522028428452884560818293084175691070743142003135316179224646673716290372211628170749692685068274965174653656436647444670845282891616379753968454447270778812757255213084894730209339474166233591934869152748169507314682079245518926310993697618684332889216339821060575666588161541971387428837072629622654167234116632946926282623875344091894585847746469570451762659559789143448395613106165645879073300722020448506871443214897877403979947369118659514616840762029390414720625922327454146399830384710021738112691684241203430703368032441359052790458916081368957324475980212204963255174676478453934002220938251951727073476915132118297765412586145117058196671941726230190058698159627345953807883037912305312651043950416489548223682362001906813215979733518092821903823211486029299952665363485945938128354737723752839349092388853723170551802752995039857945526860451961786953869710767224341156563498305669543721681175983577902986976605039749971259621862435272066702757271183662858980475164174103427250738162961056453278665682881008499759394238480979308045957595811339755772350890525262528254079558301332757477502922316772980344997332860895868269572829592643115854831266817826201282291640142591639596996614325782517764785726575576411237160776647596201960841050142490400379114544327179991319145044948687726143037206839133600558106594438747940368044567771030946690715643969398145446367370378948451694822835369177162684253838732884661146244128140408694989470609326412101883709533309540504880791840074061752789120461259146363344636663327481922135848496659538625955788047235651776219777663429595670380566341437303078208647923601184640862813192897670293430623340721255854997962790787932717597250326154664548721280647600945674902711880311084366412422280510633406975438361381982643910105020842030562527803977826591887979394612844793184376597312241244875382818223846496574818479293788311240943129139188016566356492842352288324396222808999168256408050064607786283046323158381897258862093924880135610411768492242188015799153440640126083782239158224595957199014320551572046326821143553504845431647683615121783271591423320399831348271740114438335584831767067816838453627669448725952322112332793927481982615050209705570046167352180251435022800424876422634008853106072026431353720227933033433334523822680612091111963246311176107371980671479107353535510178693077525120263689881692612197877503328868302226122129125719587431651476283707243308226720386534088360054277043214357638673839047858535120454671523211799618513108922703834577857995584649103805153313633301430872685995977993126622138857206114991074815424117445033775979940126982324282834078531802942851698807166274299539691537187234623940069107104438499821312904482773533039022943140275041966226704832029495148608166109190440219044906724311784093635322811839276118494478814317160657439986116222152150713365017349593754155781763115072458983002700638475297149989408318548731678235848194363390459047064607382608260953040681313158068571172518692331864042140964697988136997371801917632740311933912132901797642084555364064863658472152797969936929263618630364194502466301359523288359085036572798566959620742464501006098123050291150109223888335433746159334313274781755382161177442967940685384340451544082864308586554583205885725253828400291115651576911324508945549140389909029235609469326578829610037308357553529398744491445752774211636321524852782087360806416138016394567265188540940123900034184373106410066101897682805477569023713033725210190562744601416656112875866217011146851298621578414450298976075748113577162723142858627123547302790335750248476441620158845511435716691455914138813138717348798975194568884469129283726073536807100812796698759913704594799598715182238391597358570457455259290198645121317194182371397891739934827613417368053856525142213950387652520724432883396548020647740311806685324231120778370300885510923991266888804159971188295568751018019254703508599304678481459298532695534796188135979752431773085660962221007751532983428915488368209423922282581659694821234266718374435523133021498234074172416806943698720413471238651529911188615227877470235994341906641264202266080744200345284606443827906612278774933598150548748871346942650440980307633702619775847482632295923593334245725982186008395846871447659675034086406465699538783358060330715589592008433654560736243830957994404691222234857763293724070909533329989775120847199721928778529027997722931049985810830016709100511480307377083876207007467857871293249425224273321186534482837941013321706020322167866140463783486986302941519340084445211164748274869916229303303242632750547472759059467949932652189474682498020609675878754737551193489691903641769415138818080494574661723107735712901673718049754731417552885925023523384478926990113210845349645831140105926670853318497084964191432174804807538495071843806002441818982198602946287435017301482876516107073471009687453383829493848972058418878208272604417836098923146886733975613075851539562046759906952185472331113665749693835682427575977187041725312355286133336728508647521247650647468283562602155890035895178215724816939196964922903755711669625347401550638485721752941895869620977347120194453110622230104526504636636897610288325428336473107006784130909176076025669088707424445766577109538237601163523854052826835082340622592791281622765160202778220126237190017993808245264656073887122675304484692856358920766914786271906878170625268801315277572636477884151899297118711908923617914031558208360965820957486252286913589971977961934862726510742344766166685856388186742710343764589938160521660315484250185112093841674628385872430653645676509887560075497359879281948667367179651782880408979899235740558894437311756512568450088581663954803217042150592533148868419951448817642907522536647403100116918039759895408318891284851289291084008589124242615598887451632696071807593838198485371981241409453359519115413573469347591039537542407235438384411740038147032058975054187766526954887286547105956258638489641504144151997752715202759562739480573685343190356675801600698150815247660462144219102686352466549267529570914549912230632187206454259603868569351011550312451114798456074593414613662914263811338461778034130074303001964451972258593355657728159408942000174235447460033284235250533580392621746212605146555301781690040686661368139375124690543261942984249491066705482440344410203677111651315582828107722361846619275360326963377050742220181785528281308372641569802533905643284549191045823742499211328638279904541141390228333286124298802293656877480852704804374786261661536719470025633057239839379648634892442437088941582390353422814635809903942267154834600165865775084277677711437996967635652770236896687764506321168933607129454056494890412101003984030717993241028136660419709310396212772106961278838218614588245468717747334311231726522097776075089806316197767193917741148514524988788562674897408081064655758524279544063580927304017829741291301276444466398420192098925931963652363434473568681247988156360415658239926092645957298003414448476714808158053182545456620184220040624838736987958790795387592844603099991917250257274207391095591302309293027729211485518788950164181148918298403743372128164201091583350617220694655616084720583061730189254164097988995708328741140449611436579219604868641202625080980872039371491409390937194982328400730176170688087579242752674111546191988088773445098258098002778170267449740275679960516476591695227746506656108855011815504700732711101479972326632229128235796345493173888843238297691045078740960949890930215212147420284507456230362314563884961693497808890122465396256853296585367156776177125870365472585369797095113111311996866607196511882283436952948576902202003435597922063578626901060958918141878502218090436228019319769646902638893931817435027509583681456838777285650032227926040857929063443011032302060597739458529062008868594180030833928749293738530504328740868574048351859288288242223726207408899352163190266009546989274490916498414362812419070901197291996424695522780360478979750411563862547411047784536120658983987083040880346560182888653051449682040711692313536568448848784583929512181968080368915634823765549291436327515673465488140700080168523513092470224890888860297365442130511838787643511105449892190622509459662264982582456406962229322716810657365788693871189544095229541709182065798709996803838259992814462736712854026782600141747823603033201861144542645341445507566193576074011931455896733922010891507198339957863613035622790584183051448162666870832598301138389032912070251277430708468455827998956365306180941465476040850845009826479761659186748841334712765838214794227948605123419051697253916015775775211802964068972633319211824843356026493402877736978506031751461731717918322633956926350820497852902124418331314276169908846542062809669786883872458560816298968216213455595698611177075171174943189356615528082489263306851669959607009585513764314695939118605653718053015720918379241181649498449738045080901215478219925573372950760945792697283406412763550333150955569038907612351767510538007223274492198678308393116196899222710462265053169650948046928657245664632355075420583140102458798246493894343973649675660555149572433465249965075743540108310052026782611981164523480766754546078357649804176563072725509245642047042248688408576294683304580844845349924865953744492073503904115056980261620545714576673777175837838445114602343948202051336800423958258086031138496782119960207540037528473009736155215735919463403250692422628757857329640434261255561770547525097783178158221952681167527584894004781030969081824917007090814271062625099698440831068819104016787551540633722787017504142118598107139293686737214606439811048422410238456783600253131624362034952403166835971578253755136680897247508371233183255398632808292501520938814218670485856124623657791245709185711126503453048123496454697915551725167323377894852720816747832870403234614307279127273660698632627962707530412906898230108493283919434062452185832322629103394561880096007758203062765489941207199220839191552464369532489478515925335133638255905427224823790373671260777920532355485829637813159738056899514116518073361486946989394530948445867491035253466108791207523971962933424309822670289644360436666931471755368868586191706190999802722194415749796948855056193512439055109213558861323186544249876440331185037718738113377994135721494654127143382341811018155388244454998219516095552508576978846567337954576662099472906593466608313373703109502054073397238320473659964916374391532215628669895238414708007930513640153054215894287563770774968187301925274633057152674641066506857753032610210574350367536644355806852046944940462443929396422179759136559689178295763519596616294381787962278478704733887825769615814462945067255328150813820546250716209465950130018964306588975172974534288170588461041581049458609980026572292522159340472877718914708257413462182022208669072144720185857442928142315685283871492108295556642102154979491935301578146020961219514659210561749910583281409059063492866175687428722058630077008851684534701823494629113063396341921724971742651299509409608852623873348779706509255498575926421926622451250871959920310391646374412303786908987431932492577421193089579143980398862535837910673280770921752821108092432382571971894179927454484294115566554746272291380811642809773939800673875875156434060573206469789119644054337856997673520536371345021921141335058357684943270293028787763641939785758388739644577829474850834324782641568534422132261083243423840973264024950974127935104520233048403201917176874368046197071595889047198552206868533001150692353746999505544465073545467713646037616695640828184216261995508123722966175091616103490994319193891165442950926412199869549500429458601878695614658687865407177873782733876022196941934859081720035963710490028481582449837018938464472800447779560722449920187053184112147307390776679880778296420969343800478088459081844981810166713524099853692690161195399815108681440400204127108171197214055711819240172130322704017863321927001387162389999863066861402246212134459890874974719311000010303898355503708285309201952236140440531386106927475547819607813869231670502821668730265923899239280592109093228266334610282040503540209818176964139295396526053477812992633859187368759716741668752556275741521196927387580628499860885947378761500896999975873080874616825062567818072880435545737962737294272062570311146950160050186407929596534479679327285028961162844738875562974670592834705587792138869146333030859772709424449882508008663174283493886192572417802121351052023608390338821854418768587189385103006166311312382694234751594658505681334006276293397867187380255744899868181708807049244920628220367325921767270350620839455297803058547238537578767413088021229477827532905736870413651095991843156995627386507107374836354616469043753592794882423572197917858542040773894038094471311511888035268353409885718386309787240574892502270481090338350371027842797301127219926311380627016148188615391094770290437629839558274904519283248310155622597434341172945453319698758730001450406373591143494493711143291245452078983704514553661079142255449386798555588831082522010515511581477943621359236519648359788689557092133003364390448352934443231772710668545136574398725933053530305519356642351601120092940688507512944853192345292461745441273537738056237772226717889693679286857803753391320489819688153808845364188036033713004756641712297528145851355238983423257321041337148422516810852048563498699757090161377426575188165249456764182990674703311642484018162789058406188690644210770346760734332843650768216695196165109311241012507435628009302759107470417814313123005144487462851221250242033002568021871343060018746765630442278359364696420420612956898728000480149876855005963144962574700344343623435868075283765979798275257505140032419488077231896325135307833722183855326097863482068310975049477549050831608922777030679934939496680297947230892919776565307870048576372735862694546719893300726190655883282215265507714186194868595256398312066235028568972477162809008213895720175268879951358626586455755427381596174653934105859129172399118321693294948881117251816128795714944490847374455464621768077764084779752457383813054839436212189287796280484583471088043024069700741912225144303959175950384113841961760252331349707509955538378848167392880342522717851587772115739763652480660711305846375651672236298468782418290850241168482533103527720974448880088778279352566690466609378939803780423633255416064673024226398343323369218174637512769448836842576699340671660022151291210204599996324559812328955206122745078920197041316682827025657090322596700245371645414631594000622981241205548129165036273195186350863657850321883704934921326034440032485468844146063492182662004807381191201565165050636739696377580883311764551432147506313298884444670155851275535298418985641749535253845304695374438804451804911984533954919550357799888450292455576456972764705002187452450501993716625606474253837569825815389860966169411802512139890221894311191216540776716103365812397958733437720019765682856738500152263109604997886591785742799632863713618827464802845152659001739267440336704834559899662868859531869740818211699648498459291852370272146642573265285831594827770322937660022048512165428264645634268943783518403513317479169823283371745025710606773227263342131248858285314117153444570300894456294366497336458867476387270518609683183688876043988433979167571779232403038616383183940252769613366816922014881861698721504617608770187972518228764464689697008071212763923365406335360287018920786860888958026879026905952124939898996220825662107927675805052171312478731060557143435674001514861568011435277521046554334470411060305623662203101723567153870256947464780346094447069945754474667180016891030210783900886038143170711067347196010359117235263827423158589157095367518204361989658757474359180571334461834329058670493195154276086854815205605080198100886917199758906665060541740495574925337217863984493918638454546173700258503233419999178552539483655663884759876317327806051503031280244479387198577724961045250068665754241163870416606714278596724492118865024359477250865395914485738387432842180293737529041535026303951289164420946494978494571393419820876412240484774574268291815212322875388825103989542251638327124852401316629360314152187209091215494400155019223930160889095497814895002446347632125964736919072076904377179084629247847964111919063454598042823836847582313302822255407606632644484414704860245955157624404783240933162956535201949587160112310343674974118843937185860584371909472353896549547807505055163103290111734462438865715559586262503670090903939070396431282826219672145916649129445757485521972033530223443228273035373368241337321640168078869980032220017449703864739170224039860535830314515230765811706655839362502694382259946585498317771371296807840458254657015974661947803432811705422495886975268332997596215078129328993553163544036011960753883827026481622482121103215110717145462738824156715785746178364319933287880389808052338021361769971104834634696873803729066965068946691953571187294581764665006516502620293325887742916053034381980575409268257756756906182733057958214798058103828928832296914605726896299839691394872654723363579804908454245138339020824273034938470025145467213365494821920651722168886013622347077316488900360162858832871782709598979443807662869620589053432661662660710772958638593776676290193228000689686472646800886587635889696626264497702173723720839733327819962300018859624926965713971550980461730179179739300240646342804177627826266696524503813532798354614238845430448420197908743850978469328457574909118908035027090018446688687745675864611493268280831538787624510557932665066843046382175479355828130953575064828061321849207801604172479104567573839791802029553901950312908480304097972181349271726994660228827464165875766097793885447602926443286468663526267917106539082519443422735303853176113261007318678068156671421936190477828110820790404868959638403751040227088353231596952495033539041771680689398912048102554190714969785781000422644767036188132254254784570633047351622843103446235979918693984660413553345767061501664858528237871989708788905993217781774921919252585622525381949321078354072678488790278471782610532705457223063221114148771469282982411095222593974789572216221132615645236387969030589645933282131995738940659695285095534849492415610730124727219972993116593673772342111017636255854141054771326127245975833612662844461336597055183685838974941785374158705612776228560213722792435348745220817375084099285120722157816883141022182061896219424046764729563653935923173511610414486777097624078691418751452350088967878719726981332722241219946486474399049752682851502058005488283656951366731771583515572421027166770656427511140269605025992014668321420010991672989780072087811364328469696025440291299661174809349843008997460924857266164435696133639878833222253438749835837987455134684482395256816839819021849561285297768912570233218121175537907500370924275765554135498923347102472672837918519043236633785801089839542158374408666341568619378853349962711646267165750873453033116057196776987604942154829276761298999162240796155704880512391857380836920464901575296256177354378444083553805810254136660395211583466216718711150946485145934013297566857938013806989503642925657305227743573713398446799331529392640494443417919747605154091550621680609137831903800167219357405023110527185118819866432773355795222670680646775432043938837618789233390629072848215393228484874252481044949122187007622369174750481858091564464137511021513870858309741001598006485225388273715591534586183088866631713917104278201380417277876801677526381474252667822227448469690991725161801183255359570052664437395799979656569028690231958760386370439360157318818487406327523484555107650952097903022607948545970927515815718790250388596426905096755826873037003479520435301732078759644001599001525651895681455531454395691200035346807735972110261822634929343347222421228009380321708687817414657384635590968854010909778366557241694918137744953346441866887969936562519399759326460508661118921156100840054602369503284639513282768306279610517805939491601503477627966152911965384407890200717377478824462771721716312202600028283063089450899317845583755431409848877420627787014352315296493213254292081021608075935394117888574186451848170905409365899374189412016256886268665617569281705175897842038898033714706646092164946561825435871187161251030508779200726726699027253803540647398007603764815638935956962600983540288171199290278553327881275521340897931316254376265635633989363905611288172954549132259305675519689046172093824240437804990511299700584374628113318272890657203097343161959806028065441431675930493860664755582898493810120973741323424739810539738403451314324669180004916489952113997330891851102674987228367907114731123157959566963346178189581329288368494320771083100642739739800005934615969846213887289005692759283402891719770592012613652401887639006932252465928209776727785934998396142576161443617841989730480743967382306273944900463204485393238574249518477113237863830172254819097860946612487991953312877960994783260810695819034439895285386825317352383705693231207917873540959300284218846841056364186243279680242734154579619156473545005241390212109972885980839882271951833477434971827333265066031671960939515104436462234895508040931865191218421386199976456295946883015345110217986789437202518153476598816236541040313236598053388063058779425471064942269334298424396519667035627667739362121604623608283701672382581698557475136664612892698456997976310942646254219066816966694961646575191319010767382594803145997272672529662160074233551924471575142342611245844476983796836663716412747915869719952831126865089348186072221992107528967694667577932871438986623454206458510339358763791625954029117170413108815255785445348136887763961725723631969535107064734958877486849960221283468109094778112079930338296430696223206815837308805538802850162395554308911869018026508550555011504327320867117335691601918728304362294239307798969728209397445809371600752658147279985672689190738331931406780591498858532902255177805250179057063385566302521836637983014560773985352742969645289765869341412098359749799055080286595223243851454966315072572818245406910700354245335913944907155173374180501419535562861083581671793365686686673475543457506689793226607304155798539741190605641854522197120417350606702463154903847144183102819440980100503501097082881405375538478105877311694643129232858047635949769832945223909899411373585498339775348598313979522242071823616155613922095423562419382432183815679505441086806617367182039455251773246093430710704658160243746097394525039778799433779039546828170598561865010681729924778458546982600634689419799176102015897340398807125446575033045950425619558268447787979023588795204403222157544069504487940317646539393910438813497443331216982360812680706165316930657687786653812535455602013458157568593803938516965085157571927825511945055227044119823359809057768516814288132877531167806380884023429845893472704241834246043676185255104774612394347791463753438910279334943710229358339936264280936602805160184444048343617561366146525863279812278897182673002847164063331169709390402124841649434525168971599424674268321170744961793664848730987050217159506006483702976194459855368663848912371058419234301960767576527832919558459943477160394487024980431291507331372779731013900830757696124154273904831535023366580959911818934138118223623231661017045121497688089656483907441650189994857385283120740827923306407753286183347991569293629232280124706145017659646312435831928785711728050227247742555944673718606974083207746916973314531883867727679062587814218228186714730881204591099288378029764799505603299829911580439241212789126785791494137942861317389594910889619410670343553536015575400431131808148762846369817748930545026377730834267633287263155799542436703673610401643634277066536286771414234772693783021473659590276326614693464412851665672214482083366393597120694049810827687587187011438150260785603592936695355727856113541407151838942933179983474761517651578753674031800204692410287963410261167675708098895235114661791274710158563910714298112819607225045039545522853463296473199262446373490093810459223555363236358400617055849862179712083459473996398730209739336597402221946895750090821274600230595777213093193932276536476604277131909299272136142477189665207019779639317764300696231992735037221078773908908773507044783158415096769366408780199415334085967619347831833532289725943463355062281389361500157056630700548697089938563565891714583076245594908716204085723526873788991110011360211715001834360028875065016997921680797440510471390666748360169446146680653401648342615526606505368270664978687905037371103125719930836227622959974404168938025719686143386834914449297996274919737108710929809894015490462705948909567938966006009558546150026435153295851798588349649539690140368054866863741159426981259215333038878903137083197928234659113304079138045984444819025656333668815028890001915220054872982522425355228825724391585182891973402313841533725697847927461503541261842572083532606279366321959549813149929473799338127734329281982939427977743509095231600158474168834005297269021792882905928600852147818303071838644138592284258266227538915197866409221897486675715754619602432063335118575639921465983777373156008430717907163112538136166890430082516887611763580490617090859352968493340020805460963249272883533912025303918253846291332672115584507045847474027101067563552322700579589432599719151722695847487156821884742916097794858726376109317135546687877731963446321421487882255723838927827982977448571529196867604620396391316380925125205611543542593238447221347946717255698360471414111859962084069426425442362466864987310213574958366616654473222483627549102691088321780731071475525591427419848985098291872281974870561548832673146790225419566698401883630948983455444439063874930612825667013949696706188853803742719486406006515043317241356486982886607115517384327996599484488536960184087689543557949682389061010196354318119019921078579864855516787785296915952640686034912447812422520940077842461878976570076908436064647751443317243687158669558299442565433893043874725015559085725843689796345048642152231334436205594426532205596822775011031201103952150820937346504045450608280370082744595394508842702698427257745020346572074753880441395523006927900615121881258938512634554341844286659807262304242135913837836274758120099181338200737176493769047864365937592492119927631430946138973997048167854956995927940317442675825814056362672569501828132011283523209479173381031532921634712276473086722710793184134494216442349823682902663699430035073046653638157831249819805443480513148246448072812737529503599485585088923553667065893122596547404038609857392004004964080507137190837354655822420836646701449900756005793450823068648833604026870763865688432986826687417757018691429915219305385403879618409427623110913625700601650419703480139587838810451752007780723639900152014758420914739782393564044742047489393409479647213424983341945745272031246277042509839992772797013459537498551113696986653480542792730865912938534451519362473800925376221809793209901679388786876715529948059770545849176148431419357345081728675377904395510719572648200398360971341652302453661708164856078297634497541097506868352004031817076971474953081515229633883754020985407569674489966574868249634064801636876672088140796731244812784195651571805090371144506689575158951301444383583177343533107003343857965236913962088282574557696276891179005782771868019201231585533290270896874175750774126240098678875794864170584619759432332844041551476424967242307490192425852433184951791135040579827833698303713746813412057279496484013600276502105351167411293149884281536785821624044440473970731988100340731851143321791150322956397285277263857621265006988708915391358633544232433562187151170642663523413105879131476202649590793239075072249865688776675226371363752739563528545160902824747410545544011002868079308040959567369601984253832509840182059087664259584529971460326256167167013025074640787244692390607633831317369452041448343524490761575604707088127055479086357927923535907530629384132827222476934264593196140648127002140783736516683387223086247901677406597327418292262389708981239773987261692750694113957683319678527307297583118477300566643398356528010671520793623152180828269545351011289988506262684479041138635764207778619640342891177857862680564901716266879974289453137262594961535488183349305173394859006578468990114068321083562182664255860528794304388489500561745992298426967503755384449864137100957125133543103466388740625035071507829764997670131047168965859632336220875537268653935162057951869493818032822856842157474663809575266967474384989997603001819123327021779979145907252443424636548558257366048912588137981365000092643325198409062650283533916145243575856230205384499193681060510753717823202776942370613656208057755515895070919838961345942874820413405773801067339449183002132810033603478163361718250193576008882830108511178317059544561116733367413946263466955392910767694737083281713671733790889405664139967996421516711667960076670845612951288403305270562151466568653933316548123369972627753197970341415344399632303440987905252726679422858188199225852977058352319048128667898170851419754693222130987886877420549410795586957255082633464644539524822084314116464451864020307797802570619129509548465387369674309156208409938316347631428218421162026931237488388471185349329945772565749535964010267576444734360979564890108688322913409068901253142983446244805539174300594559595591017078389924807299423759313202773818476262157124693692335325753341902062854252376645279941351916972741790188865896529471099372383948532696040297180184987942242815959332878348428153041027753308168799993734033442280474908520112003891849283473332961504698782654015221403635309221582612877354128597125871812665849601960285517635501898013471409284172506863833439230860061842326189155457638591891221430240171171116656215718478771421716634845856109801227186054179733121414300878879240419323184290996416742067805056284403356546706165109889913804846684504930935537200790666988927462899093318437205427875257903723439532292689685606141416244318867413858403083677692812748346859517208668254263859622001823964486086332801326372875321426326659542449744181009638028920447289756766278208532561037113125785204868905732419255452029906246579299875071125567732907740734394902139924636995338821701517209370952114464237242444941016608715860037679199715363816427242240058770848770619891950669328384753376385062337302971575643479592712905429958972465923685778751866882804418800802454235247449438448286408657526494634616010349806139340071380252539653960140445662494814196959719911859891480504284731358355325530205507576900396633164523351803503447910521690652814970889176806054963630541335584643807551432948683366130297523421623911417253425597939067331060753299090952550311547848185710298125458286599848421025748047207278185393276689356171947996678827781708460179622725864401759476901491592879144739012706734450314527983245703065599723293140389359648406909308360846363652823274376873989801316225757590720506884910187799030827965030284586717253970158907585276151672930075368593029134671667189443677176852139320537008732306856966484871052062479191155539055766868871890763305922785778195607108684805930770503251748538556419549250998141544993957975287957197251831968554433586860815356995547027044049853772353767482654629489250780898551930836549100251821907390590815662736708730314195867933358360803822278701035128399754331156330484808465633918160590312239740751920936943595280111448449102944317497021307589629586153632858437584058993636555244594292108149106330683618167807022986023281917564847178549164672186760606760226941334425052919713035587300124051844176223697757660650879442406417780508405684158137653244801064290117590994968460103462683819246058436604850413322345609160943052836608661022796975396128030417947038856575732779042775821971700475054353709944880424405392140491231661070521930480884400289809614789882592288251007124027769121410505120387646964992535917961972257930847711116688518371523456093239026592816200451794833322139870693761043233318066230785651200319256666819303555144593772448323504657064718430334690722195338911547266972658994367188035247254392125016097567242351996061266923887891050208794819806411093587324434887301120386298002210098052631689272718249351781018073214019681523660132918470151808124670560905698090452785420679585183683395681417251495830247730385782497785826881574973870673056453937514989300216912118194137008503344261228827562535110884951446829192882417506894153261705807106554043347525835372584981861349965128518693585745876570885667446933330531891531450086737310649144194226875862603710581667645062848613782154764738067594046053743246644126055291447255058324665278818255145829386184517051445121421436984390574649927408147297636792287366880817778686938923317654874658124872231816880814384653675686392432748858654009049371731380423206823077632847330896035746876311707385977632263648277432216077024168292462457648445156265424261641836424956975285574699798115133732131777048509697723837921196052464788210859067959955606699078862481290494964330232738790112617839541702949519078114655276200372459240966326024042152313234675219172243349632233715104020148629871908082075752215855049385642426236816762209625721613489531195883481312200222952757081604176160722351964812320887467514463263273011875362813249590598014670631945361619466236721906632033601184377882427467662950879329029124721258587622045447439429172045991996202946310027262426226724426958607295056244875671655048332339552318998426477799111813786415364099851975782985943699171792866340640113805697861033508500254606880610650176792051501882262902531285665197259394854240724556640253135234260792281406643804796600442252575595376538980885128030404758845822813541241877493876509095146901499780870869761888744526773589722824163441292842246740731982984331844801264922418505658851440611457936308574520728799526710449324734600459260921051444003917442115346926646108113634389054118763734383186250805716136253533751199414223294421818320793977867705746246925125152190386810087686772487833778541203267718263326033403614680082603786599577166008579569382611005784687059311862633832510989333309500341664578208767212362535545974974213252632650526441341910344666699930966661621713396460009672376914959658628803058789294368024420651049226154155546768407940587600840557449961949732611531225508431162129813569902271851337218680602823326565314416672797928964225167288759953035135307254896475773317037887972011917116200648113616805543149837971033606639890781292897090124411424978253166611148084703456807919301979337236718361607333138563782926879499922886015238342578190223769095871997835019641400455734055557922420961225749626122510150042647772126368625123968852248566222802743041712270470880458609995603510495113418115460764550501563290046225923699473562418680131808437969956930786257523269153821591109760831400118426881993285745878138864226564187313742093154488576533998486047018226221249923054830247343732232563888163700139966919715972087656240060205955719564023020534165223862385747101396285947196611054901406032371581586687435955696608186933537690644154519225177504853141961152729218060208266719952108856465130569529501918716726530991293044557704021081631995313114343803480196416518107587153393814118626370335792076850896270874091118150300160307560751856967913331928424805837899348595954327982488297269178862060145527989499514707876804821641385336503768750936684795598255815787431247378682434932351203827909030025473678207818577194113477319335794700042190105080245128894201857755571415153049799298724890288676670711861673719826549493548428418429006941695953107572346771259239745570567784358297050411244520607044465815597511158665725358498770133358870256939705894794656420026799165209238510978618554353341033524738467679700448871292380428879139350072777118856631590583877236770090484725111387471437907283983625598375165371215132433913938769495530460416502000726736756164005914961205446541564376378353607443246991701740479233797258962267368083363709459106271612890625696558536706040096241921458492262700780570344090103160396877515467851139280600808256552372943530136917727827587852295286945989411241146669418062910610399016066819540094770783346462593133349980819401141337980728662545958026832531331474319975166274487577841016612046170343653663121443500670329099569490005634692797902859274685254714415840537185375725781913957325932865137066117422171631989320109953585713019053954512475771963676356818441342191723162485685082111165387985693773162851919175126301809861684695820322369006509233047849457545818338174617664819290734531024396384129074494667654065821449152689274485852065248375853580000431985593979072578057504292502206398034434164129481816922456905516139131422870519534135011046103348562805947964694440384568895463567918620546601732664313731814733899414196544609947245251781973274038020223609571396496324990686424432252301612437678054820673457570157769683697878329478065089622022609022449339688247835629380129074418958951557172882322053956318847673720196332101637534434681011869361858811423456628410299583251851074603461124806067528082261179648233863680187664460288620944801366608154692245774805110669030412903250280879559554474232394372709189360726659110529014632139614898428675509202023204257544086495541904892483597920900580858878184612148794552569108289554898254996807947494687799641167444444839624778935106087810897406056728852447199411779138343498237086243816443915065007564190352809015193079309557358172498218333065241963224523602802820461960684616763935339555572234539675705342222637720985986364441254010671820590473685789671241863696825422455045730523527594593229631921741420772031380741606320360335954465181000755650159115793943211225885570181469151886549373750202296074085319218192365910255982463517559425550919014517186733483941675798518096752718859705149738326584089689140082187519465105279508235082516739178224521689938778440539842217668120115431124381198412217863287246401437490901810834505835767634039942985480551407757686248659592479922597589224430936503902611072319265415479082592494121277312218572777471405886947077857320802972278141302662713463677501482983476442679732553396022177935058009419029864425928345895221365363538310747048599424255149023554311517739281172112871042437482621163067985573566059073439968125729408576039325471708705022540654139455410211092575964091863595617060071121545671166032749481370591400376468300356158686676227481977511509357441655690147952495089012096506754268348013381846466012696183909796549323456779718073117309116845786152708949087407724914166391132215014962747949261664787422799915427489173054758508974666585999391673937223649600798480045492340890275640339150505134282095185291436853842353805608579808466669217011155810495324513859177580836955771048700185640708335449494004164451857636311665034908247663765846191243497762249728804048379102229999201820390288340264224944757837112368996673470003541115926204047644964623480672220372495652160687605980313258698429893460432154369421896537611846394172399228945616500477112959387141134838453699988409965563792262918237397873908075600933213716878250925133000793175019236885513790557769394966582020185997884550179826094021757157810672036924172330345517981441115164995222806471347369253360944637599107147630167186131444094921846468965655938002798108377719086213490950463036276039264659870677081093398919584371658850019410374068170238073517949709388501550402052748039611228384666780179263293511644238841138045609903528197865490187846828124988671119332395181531352066498380878066079592571100257548467239544606557872509280553954188053743808715824317488158882385828352740200824808101681894039387130314074301675291965761758828598609931054230561556869312166682629445373439506388935924617987331480940308424157710824250996148966127529324270889959376148887029586030451709040303252748248618050117867805427836766028292490704005158016231232510140157776464758939497295675205438119916374167479563055553939039948069237917158687582665161768815379243287729184966009549509215343078069088031991740712166508944231216553686012916683424659621754541348771448067855715555026749352072747171394862224063177501802269226142897048676009158765457591887272358136938976400286925529818834432883148423124746866341430125933228361138447880498058582191078464039692804208691485656922822779394551126971977804601990957719412071098835950950177723663538008333714352532002107623295126025323379829736136619926530982599739048221578389339211495040079934035756179432843819432439055006084665040102774219643152227633021216863818747521823091394184902354865612080757894633809201059277553470160914886708342349106342436292499865483943877140472028827275176181759669574002995741852518179269701736468448640335403854343680736187315824535588707046468407485713217042160914000747406376672078966472690109130588479688083571144010281332534060090829248710575231100839148501818685824815558542841813441767413912069130796005589079212685341163738641373211946027991529562276761631610480699771705148839113296926398702658057260559134266024920466232192538920233935355013962271249485096244143594773132859432738729994640321090090298940973238802269684387752563435197792922559088668622125158716817618008327500709153784870911205255942864703351113083619838997771939341540209281551067487363238123956823736703810403431551690426349042892018897306264331247902025963163599354204418682500217290918208931540958945994715454123093520605524260861607640335801183152023815336280330167651509198677985291623695590610090276858846112931300055227359818060769853635542049023530383865797891005809425558320980763994994883392126426260034851418976856308726807602269680794748675978036672433495993117414574842098881240242033523855201306048110277464152263356309791209435970225344529336888407553057614826233411702677109288546459472275319106928243369843500296970071400723430853456092211314245034084623330435653867075713354772876856966871010804724917563867968079595335892521405591794302346611381164108145976077154109753734543869343459744830236988106096117885896981816443094958781356951079298542533556251148038964808992942319706296629767352029874124914712986062116564310439986028015859140595837975150166746412859581418910111867815401873462014757978018102468163108482795775102540828885674160786115433833613735638526821737853192387694788734146039840717987859631981223296834293470048050162892233519395254286795850420679129954410268435453984652887569543539796033925054032438468780293300017728935333523121242272365122917653797575849575602413223045231722208683779501749430743242895748358878288683353692657305637705208812513414644726725857793400193151140877072271036828860189203956517485866717552541329427342344803693871101950572047703186090894517161550437611332965538398724578603976413157784693386016162332936868725742153958603213326543146391552881688945452870086793848632769809802259574946590493949830281515317800841852130362454569510674400265939445698477251589875033497510370614184775955857404456351645783024887644027541877423122999180398138654004321224689408304862825188152070411453294330003196543344485793457946690590819365718511717472849961765450625368829034056361414684151985350978976385006713258561523520873562198329083349692449652165234591238275702770281517857480076796712171031966252623142160800611069528513305907503496387368031777050298791591030589560681152673569662595180508036911783913389326126109858761302086437478457142908702697441697691583430901730847446838602650822678046360919406503650178612633558879505766774088351236203506668137329083509745335974577400371786958459340786271164681877584221941786584350036193379381447356342913682011021163002416281677193966963236141400727029597167512452971163618373889499957654519752075695469778473418625274302503525099287223146268457255974644525335028372289325857793937907529087011490978337274745092915130380018507330350028820346994505952284974323899848060151083065270883654129822348604098150949281830915740775113836349695408982090684486842561743215093516462386429457483324440912284093694433397545835903976884442657654211057654098066405285269908869912743333583204015583683700547384663909947594497959048795478279390308524264711773308933257280908131540477533046938452487976895679360274616364436797578445306983654440146012451014589797185629529119879802011982983266218518848931722014637791572588617789813209987823916943326185286132983214714028906740575055860678530474605923658817195247054039357697702969728384168369240673370457650620718657149254694540904526218366021522286073029281436271170403499974971157375974574593539842763951091878426493063773379874301404741188941182037430050958630044286652456068258535121415168152197596005254243879008213748847132979531223046066969797727489515570726886228572890069025513344295272272831091453599312301916569258806403306146897655091701168141542783669668573354263215473102991049765515822850450145762189322063445718148989457605162424795508243865202634204507781021932467337036141503387021085227946874973284304934430794314020416813580215320950156375687984811056540184019847422647593876657933581607676415225823766117085083407159011843963952956748814865418628453792290164701021873621264798993130556979197884158283277936758750078082221424952187652323121853669908601492360742522067448389073610641200997478646267264866941489960139553928039094879306914770798426440551381326124578516874149966319319110805906129450077867393285749270695533410091576718586316410997723957373746480831201853323231174768019156332017127636728380692880540907414138767026103437247004293167286105899614167231024987107805719093529482559132995179203866794883490868906883265654251667659692418297995823614501623240867195169084696673369075594376747813201374934460916461618841316371640022123119932837414512825909177130508800522735209001398651444783902301568355341527530499459077085695050903155709338544355003123074299009215550740701651127455057396138795197622588389384506235172468238884508970061068843743604871947512582121344703677653193737539534608780329356247626008486616425867805156665568195007348431583795218118089778711889746497945664781847146015179281002034915772669481786270356194063976429457756801329271576257729121909190615931129122977881075881914071765493320132053839080440667707274991136765405562407465556431266991914284120494454376840867270275200657585092708819753527519419182650164909369347256520320559269247432536403881798944736165736037697484930756903932692502161915462449184530260053878101789583738093025914379866406586497708627359549461787112284338578872192018651485647582538272971926026604129027136526797262908157911450832020669516865295459092484866085060838514704862378912850584566283587645767501627804860788714913841729438217528789112466742643060016357503441165517845318697096914437808123025688826448943142200699629511176273784275328263204396025166931765113401491939500963446005381367291179292358302408475473964246968979335974568039286098829059718772517202840921375940560166004128813733121562367109853045239186271326934990250843477279142986988391252840344582248308817700260157325179425101233309858713270850418464266336047185650058107244976966757222771832887118551454350508785852026648040938389707229994047708733528964595780535317042629415911330618061777359776269409460291837326191388869187090238011543260294262926581025516002464542618464745227458112688774602184923725432579522619789528729193594035484210621469374971062492817732653785104029469930828200318985078660629043820725496728780373376027818773525963508249471079684628253606245398394088449247767434002716827858881549134248137170023703554701019624639596264372685808140461350230286837701529261597300369436053764957327979568349092711124785755361967291356376679378533504488151097008297456820318277451463309364454155028338667595120873797395736159728468466590516468619505306387561520812808981341545962303702254649828692286085705019632084335141298912880718117048147168420358381072981087220483542768970270959092819600843835840871604224501935674009158405515224076185947873020901038176996895874333348957778066549299277077193811665914924433384889090914528901736469055785036965238180080972406828229768938617788546963286472414378038543900353465607143191720220903148504072359694504861978783873416092398807931504874161554555170093520654449986083228736205754182934291472915178365020746689712286197716451630672057739827082702666198365033069299992948408871554010733778813675436919649262067226402130486265429483084428423045153504602625389939168421900546044695491560593532501417023069464415142709901439695833513163127645691159940515581585829880656777236339558626791132385825807404085635127218403682670049149369562908424062113786576930189177629547428327731849336766261613040799539033219650310476582958660387480007753724510171216853780842517830097307063372629467850456966167697883800148549605566459764559988968200021465964907845769035361376261428571549183067566013707544481140719955218433237226994563470602743524698869077413587959363847115209831421816425163294597410124522893250329926011038915332905341360483770132525588508519286175137924095974556152810819111855017221019362618623546403648667099981138016998572705701657074581948682444356337889335074231842223171133050904959586141131856714392995474971671914972739471879067272006081035325562684445381892282460876350608276554465922925368064457998804024586583568474747180519273579934295798720624922651601022145682560615649066928441089661395220542882390526223812366174628226476031114252972835346535741070232780654436113722763547634872786485085892640155826496702285671270183684908633157017979977772846242179301287923664465758440853225418787911192573122129694231671023954983690073446976392928389628504337750774930780212683115270604317886872877477976600429340232852557757412777587947068578206977938980128355414277376023594534129844861717940019115687291478080457144764831306697192691899615215632871175753181807026840892390988121290823239941302156371889656073720368480640541017198803317307701891068225797134042925561427862433530930743932638003403092886849405475969761203807674149558859343821927276854101794060660565706754018226239950152220975689317823898907440799681948610853421530486047328175572807254807355942113218340314417778421837174681930061097467499602341456983389542847907651263956490815595029136289940384747611243677475537356844415337225065435391239881787391843397584363401340699475952537083527496670910902742303017614884621343230255562953649202788910294482474315507635239511775443175856784919485725235929471393405014938097873840780220293493350176540137288482326887335815834156064268212617491925539114872436934390203252114227129376990124669806368054547299390492478963105196256817009356455569228845255095242737497510091846052010113552565080289639461799013182235961791369981498108752092813722184482166665275530657565315306493334043484882617770860947257197539936388724057359077808103607732872279565840470906045499195826196353011968157486566894432546636302563647017819228578633418054714324949793448995013696239892116470146980020796196166534821371129559637416784145153532760995115971838315059367589983149618009581400535707843364455306134254002232869733685640298803743973490763734670744698432353536475829649070687149978051444763586593274630116713935675259420884098099668477927991682379118827414397051755553846656883580692503872460708337977473322704183807305180482880510053789890237908902781513610827617747962615971606373502211898578711891431736471135423821062187926005884044137833758792811829530306464239400343172416879274401127433272042916218180572957719830016129140832902488234284417872542199022198094876793445436246547443060078105469388667309186036296630102890393266659839157364054031776279075121105977739152371748481320116846558856943356996977093088620784454206493680154664096630323078416642496892726380845265835583065359105901817412733654388641895044211439889380613238099996438341033647858136609190162484603683458739525980413707970230494907346683156131425869383806114227802873331059757033507798623090228933435108199383427173308537659704525131388384609481597272747802444565932506834018095936359214178989381572719731549511117433628215975942532194453408452159242727632551215051466815324312682542298013013961838228199584480713472747683832165608264203847340810264949425415985435838708981493257906430238684844887472854464048319165772527840693530594885424831798908749703204735632687779402432126336029070082852284567230264553322447784186097363801103301301452654981765983537304463489641479642133443161124234720190119605961892390570459919536743468372024878364897819634420898616101375973763223318793590225482382483467245749772512047805781632099435313327007196741910234955128311520008853830150251515967954339038792173157886588804704711083633922794094707728174887203460473409462611587899340676528614726791191422897281279929823403009469660189714970739836664318855275753506232112270919513635441307241128586974679033925036316152115062133349596605210386200226219979112835456973167808401201804665262797298677268635800724456898864015464285375595661048758714290301000208854254815755252164306556633960602468328559878686601831295092112879880015657772446048537800204744627706473085887283012371229216347145308675546579978784237782930824836681340197404325292267717412494385966228585097906505147909237090191105890265903468394396697680835105855395836983227786470218394883351981432284737846651779766297124914943351543274549016572650211392089913059505408489175934079831731146439647928776416568089673560599441823965773241661078227473403123457121676515382087360858582436043949854146523314900727881827541978864455864802165115399657114729617015806918727412076144472345841297356553794333994961497243349662096413302779155136121752336858645089221537407350103947873371651179935068793736762986547236938279320695310843406268666921671892306576562419014354082563948511892177069688924299413796180740512120097779670716432469439179480136115497418632042671998352608230948063174980723722245178807860138773953292577942269849497058651667559298738637958136381319086649369399848185261588325417729830360377035951841916892898896448393698095530366856759318242674805428882522775651972394596272223548377563494625647788277750653758291251875359982370866943265169374891965934692848115479598925831016158211137651516208909999412348279613066982384595176429295799370354744369259590340426517598327584758306551552506947344321057784872103636120361717326088005826277996033664785118107273564220149638832219823326865683822335572416346973876700976774305296588202165332079721649514657413856489049311962799328767050132499472617122327672969211153450932224395317876509249592868350776943755978536977904765099826715843764092992778297306446053704763580642040180504247419642855666721216960889897253745061600786102552996150138382858082711439062586703466169516934065951193069542513419347271646060052514025584379945026222700912939952489929617332877831993778032116061593757399042794916576150722436382576090126113375390042037079934731584248906869843927339261557447177816956615713592634379704659402594974629333422155537702790285247902570431635281980051048523412622470686796250513914941859280737517133142095328793263565961895950505446143501165911062700396496377428601801052177571614818653212588156507067955236555628899162891182670747541372012106084840635147442616897973590830651483255361786459876014633489499070940837882510408133284510270246557585351450791077458330359507385364234328834469769300412598234298561589556516484809295326883655186204799527626862287761921193664321512764327967571847350278394324572617564974228321622706251494512000261968213943823402401930391958784149702089600178473690588970381797373103976315234212154829505685132021198846797934965145204987926431629306813980477545074884844786889067700227384018387246194921533991209589489205025257355740616565511370131462045521160233034900260162601632980661012249930650431678747074156882458865602954380357461619637329292749010093081871803350512976363754411026087555032566900524945949826579495879294143821263157569225870864499645590820179635577422714358770079757555317059896186395232836936514580221492468280241774772841114626772154698209235896510584779900152392975662991632909503248377778281592687451148379536244554448955723330773038895732595580544378651176631841875543045153083203806795101139474212058375987404146519302983421768352114785445794073098614253236511782277636623336256194881059975197289373290235437092891029380336444850115639521506141179969616056795198173008963537164926772055344995223296753302563840379845594964362431401887646500740816060808351319670183536097691534726181813511212161723340306076104997788039904002231484091291388634691390728914358102900696026194163858489270122557336379878838651550461633363662614747483367800410582648920162669328242306262299834238959931137391412776911731048893138287628048660430418754641681199485017270050444030808175086214902895756669512539574749554453168474103065189034828833783459138396634883234962174527134041668287390407304749041615570214243669498861161077383831356169131737931377616446466016290957996486192870476561061263768768604599453173155787133478737816994525685301805842055814237457822045090017491468135778126687735426738607046289053292942262385367658556991827585096713980164887944343813824532136479930633046105919893383843374428192119660991183935618660856406973340066198174210865157564767331539274048128243541842612102370170590477109318384641501958064641990946628738416383653395451870246568526666742366682623877366482349579930451637846236919115832103161147892812980772928247230244803576578812153394633995054572200067435032427662166630656681441082565048732088850718879430313942423322017864496541339553062422099923468248722492457184596401890845652803288715918895636656975508098327347683480243330644239040047349582979772218367225887332601101707068591492426309713345134692930993680579199538605649373042723098973593945095658688513538422997662467915260681153932853430002690904352938315081118935291168085972319395795710722623292525040680096273316564341016510088356617829871930088059240066778258645200764134390247465808589869621774566603335734267389832303744488858373681030238408760312263416707814279547166816312183725213239729829205324572919018270927722677647078159293842077802278633229701198442744781933639281626634242873987205890350990268018999985400646864802993149999771743043809980432611117006108042050573162992549551421686244861207100756190949963293763410794562469108307037856177090002405172008925732961332457698231560251898753200787117732318074653940472983582856584075276310323923344667558953988225991863513649158294400903538462430066544636410447548493164075018218063024002585498378687442082255915932063699406695152208281824480589376830981367492230254253861176034490638564306403553900735240093539643047360576562091491217344992287829786649324709937528997429490875796371807189143492847143784688338512490326461783006381645459969162838997093547733018533868381272277173080973662987426883118844476985316440448266591746990611910863167853856639247846391334286776089820489077195491468088661674528909187353017942956939058317573979186653943521234422334647505852582347736782387890021098539982484471286441425212574102270371240704587524672034632683331888613441991730178743357592207480511829921166505762983808017959095017619656812191768717146422313948028368830578128439296177996913064171424368013711096497963270954691652632477740309330751955834060921075051751896000602661106490351169187780898276529413752631080787470310033727356439397728993277814582200914130653116115840810835605560505594602404392431491020302299919285497607251127243476983846921658680060313548213060816670482346958545294384947183103152553542122928721901140985371137751568204357793612763451838725265032564498725349452081894296345914712093055148440198734895079399141928213882478169751793425713809926256115487388931799161977276696125427522166626922192830031185497753872481182462017724230122319443444242038002064235052020010101383331591814868245928648380427157874947065634541053708058263143015809362517440149327655400247369780661724379515874492371526526954850226753075721234057963618619516391277074636945106915510890310918276180755654553474921711609495595772935007972087383071912589889052145101135492016112712179959986536390190900136122279606109675985405346296094011272793095910240996470048984759008633966174083762414029171390136243618772160709100485771445299686759991900631711143493865958771571029394982895940716705551169982477185321053543213271644343869223907546964883659917983166257351914739262627434864896941590320046924429682092803425521060707889975053994361267209859675415494221930862360470168989865997512665297975889584584124589536369969403750022461509738085513561059935882681771349335742430053623961129395505238049873260319581733652857137559336426315317456662522477359386856229182045291752262529813835196066709724179243414351695074383129435961967426600133261219336953337794308970758907584731742815050245240049291236411368060096251395485954440029097502254923542431630579941306278476686233080389675899224971745241616863568616880059512832083574800706257728553766017051174641540986987493656976490191235954775957249552243667653476666267629809960373531885797478488726325911189334161608496079056862788346652363174542900474122055607597211142766511738234142226523476010835152075214721555574970443808835915967971172655470131515614996362183387561880824531474231972363977448886675645875644440141668314139593515270506051159535898802129433027911952967875763539375949581162044801682597996987009123097597361900980785081506468550906665877506670130143089830536937658813101197322339268420053353266244550954488065000973997512424859501490269407804173965393053750714780894003850480880556090320675282694219182145548204088749469836750483593277672051388082033623893468868165872828034535196668267986297741966682842334970758331864498304331956612526880540816107050288214201994442734158309376759490110598131017549719736033279645190159001003269620987406295821980516591857673290648320477913403531709397330719725038606339792679280498231119799026403551959681198835221668561132708898547217426533253091425008544912151540353950478430686584277062358063950863237143418811480964989999342785488461529445920314738670575927836909331247464603142811470586469918153795530638885245069317535395930054311629835709422691750434739164971726058248724454971180524565919944104224051085940341915910941692161072303689731921873036869913513783887224796175313053529276684040719980598013135271046469931132035590044810305304341550041374593993577808134440527599512216415721853236371371412987598543943316495324173463392641518214294798426261848643425902355495078905201567581718585012503717423873289271297034051580530835674137318654225766701983252911465619389286647473501548811062327897387903459501374094641180712381089784770970214717149397504827890760949468299710939927446666294991651299519748264246633248648549159899779570764685666297292871950168441974568772394086925096140953013108048909916426391906084687892100706666092344401760866854322713770760505091097648340416436096882526055568123998402122900891358735513600334479651665419389051639709606781104874777050938390563569238032185933320490342808573372239101682059432105820720300960053604511082145798039699609331318339205330816674313172432231680324694490949930806650134459361482989507069128325134319470265902273001562637987210558132529731610013446708365634516220053119939292302648830414792922497728812157419954317123457937730141672777735889054035411874549843415772622483879342809949731262141128660089117347238948634250066870986497086232421085115813202961428570011914494315505068097961470529115161116339897729683710824415272552430529459396187491645381002324626220939446680919773499622184007674028105593662320986622566812761839831639165467077847733996500046322289809123462382098986248579153996088328911157253802248716131188088461036998420781010558431301241360349004085473285620287255150200536103601683648555822833890419908468518240757300736500578055261229499756204767840372210314103157108829441997104129500254884735967825211349671197236428424700231563892856433410909586605390841711851038933162392579718149504345357629746884140013315015457496726080850051870935389419714778977181350547584479467178040597516913510985143808132675811167939567341277959744607588946216385276283629065114834511726468345887301263158468675818635106829461809166641918502763546327485867736464653009490335223336379704929451667786288772152533879821972041371651272420715861306469312970527067768381032505396367175027079763779894515613027339806194378721439627554401156053348298133383276035226470169202645739032209808545834286339770782513796309784954969610783487212943213164844775920135676315026293319956316870297475618921457476477483718532527487139674229647638753175891753538836621473414470318916273361438050419619872090129586378786947891814809817933746192769355936929805421227280930873023027274588532828353103609238504506394653263480380743960957341759047020632854483909808886036220026008846087720072474089899391996570887760758653072690602245109775623349750447069203726521228162752424395404928600929386725530865836928671084578322170206396613733117001619654607199001724743311965334226486875032307062627069561615558939501717343433619452400508483088067551635528374050300701481632188440957628312197563919643693911374238637950831205169967781725364109179967242445117368382795794349072483387446272779660509434244169244966395467706752528835179723746903633742530814434246892267909744989631795303547571514329684413801537238447741799961742792725454350076847862410390286672719411700964115199983919480887393054337239248346928278716925749862875098848135207323481402351645438517959942970123400609076140115705952231909667857255621155740731410169802061845940337450756611224019848072514209122205699292108677600614049401517107982216274444554907152805668135093281855416376472262422937141025379779414633353118579949814033545152984802316010686457887691114359294517154004125369192263560219830345435691589520340910568494662843821407783151928521549488974289193772523508098856421087535230628851264293923704405230415723199904734737320555988665883403866835614301898015318830693970322969097673613116197662419589304005343846479554197312231995635438811710445571855904381655738942788223400882875849203638626461034804956348675557507566289717102386208804276735105019646294552852538358104117799951314515175719786325674323449362552316140569375817780269414948272404068302530251439987251487200023073704992665410214477402949626541618615842404531943967536555710520306925854720858575985380298572049590546433986495126782160805503742419090065342803074137601197165573243355285835932134684608172992222705447724091372669897828147696079355692441234822991701110638584842720514704576425298788871073670325047771643377014777603002275240465753560932805139595969848323916683542119495484159747930519086742561188361220357457469863027531831411867255280914799671646896661380719684663299983153925311316051851371706942400004443798485557029751731311685063372724687893634220927309077054768963602305205703018735223143883170753858119580811340949866748285205072551968604482760693330026264019209213647301071825156259120305103176414044768198475196628335190681084720189715825301902077218145649457850555100366642054838434600629923022940499042377542617100392529339996434007229809129520915493247945054605713462350799078917881547274583206760029646651863517171974759305554526770636586286828962144480851155946119106406135094160540291892550133354513480067129822112265893906936334285372777634720208333972457013642574656183748057558253721545456438309816420918082366006057321530119545327085818426297612601903383026294606262702905854537549134903774703939938908321412757499494397380124784994549939048774096731461480006173869238979726405523912228668644990718223549301946941123538303082619236601560566292266761488311828152044690396590161239293755588810161146430342382369121680309127453766710014491228228087849948328758173935096300620733121365116558579564804797594134738136239029336150573016424095372899724834762231144857211908793621337112234154510802243183259579490614852819886751522936344887238525592244752238143871736718165613206230025134951693201541500091051604759988540459798909980953751417997841680603347561339596590905188419775293463376354898343352511315967895353956524636680621199608953317327885505859845153351249815581854009769117188017645258283835420096125619192644940351054048835530405512626415710658316997237281506569068877428628504744773599401132139000368781175501065146534027919373911205743085225657471273153359068096383655005743414723578286664596781809024687327055426061467893271978672766131267134170842245630561879665632741955201735713111224442368444749335574335790508589985157245477513506235259695872556582592139100104627456722909411652004675537200782835844691530563819623339433840972412006721177949202420579490605358763295488057536571680831781924853172448074208623449352735452795022434287655348312839180260156624400526107923997092213188031844706226520363919583833928447810009273865273028438527617706865955717638946244842269006333775543725713669965454448187851640809061647500662726213843287968952734700466633329852571567971415538991331822455753728453087956013816756686556376656799957347219876653481320237733771278182770541264932948619093767954301907581549965588295090300888955469915395848173430418065850178232063136513925853488582885521986021839629278280791708523963010092096547602606975451718570820576136261587490679009048374252936903074707852600197726792856378687637085908072751609169207418155852926395326709726462305901480999360372838639986486337906776104561953954310979687128503723688772749043176450561086471836586648989659307866069159039003173064576525184362878247941875813935648816046082456932936430007077517795330835057460348074067652383106058482247520233471641230001517108746285849469048439209893505743946311659248279853711697674103346626165946098993473209086742749557229518356157220822172904689455340689534226999876261527741186757461536787215269739410298040207488241007079080849822545925104289386605491057749085658030113727318253907720122754701192522356796622831483705320192979477362852959669127184511327965010314534677857857123867099087210800954358551161226852740717832349202629121617828787894770726291173009448274460494455625960237799574855422261897877748099821349904355949289863112293449407020297297716422904063707319942631182412956711409093445766654117050610111705431708445290190083835202479851324018291209204380676195830398083940501545288944510848993488148908993552077064895345113160544127306511714907012782491976998657839068600923264358132630276096122624619610065114078159977065358762186294476933898276929481928886020598741571725422580030430019193924759862592050857465763184302379402597095322528550320673006236638274464277791115240935063859070418464824294480049164540127550166451377578942378842235724186860021488958555512922601154297775431732691384892280239703875747776023597700511380542683732613905286279734701306889020739585702460708561750975133367055189860005406899321512532626941395122759572761079395548373101672267764963614983148466691621319408925150801174288142574166361962575813135885815806922243196473568793702894743124345855429559062149995972802879782603809228627378750448842358513102082127405515941098994136145031200818525090047377483763399608160334841149586686439247167459316510851457411730505804896950166785935192007840257427147344814138219699958451858714861302365990543769742942755908943434931714673592954768483295000297997386003934904386358409635694567214386071633774734158536056968154574282926810926938380316768349345426751511886261497484656483637822984052678522531174381068267194354926524455088639405098216298543081917126440590256710839136353906637045604963390098945067265280510898206937393352451814694996542935276794961945145538411051750011266140863636245957141194284931128896166818700459732026294627322039851007726734755613573899112645683756691981854393211426022829265144705371782181612891179127266521094814310267207935992328291696186895280219157457868432114648634614868100588426130170794541328567097144618934576778499319058658018780767029635667200538117817000445733450072806344333557839305350651528540508994210875294704946786454063348300742348238571349058092877542924171291714204434462056234297963095771710248618537095477967361088613519197681189976645673272806284689476276484509544471411810429984245500289334388769163558877931801008612225929949757847464202604409222558625251189293624338343817435466062748781111238089824976565515566041734549439665371487205519232618537999985991512229941732204805669472711826896307711646772256309180530198386399870033222032017042856275660539515107682973857635878110468231405656347459340145360948833529234432284353764888082238161115783597697420525083004287915945061885241731948251537549898149269596415542681283174604350615871554809571179756445530574827686149041642389214196781647031119176768954473159604794162008394550705594094848868269206422424910677999594485952055398576980453390595674624029142802888964133445707226934562237714093535922070079884394376756106990974532647384512198989030493597688805288143643826353690392923362269660840761012895367747760449793646005124206375281951429918523345101917211961849135846646963502695294353532124912196700873699875394468467227431855524821804731802505682464473248703547821611608700344400784915366481240490298933739748982807540469390444067885537106311246060041317401081726284279500311731866408781622990428725208097081890134129482611895931521077939975194478189027165618589766145699032044821506302388067720144493053847243329214204590984951040862955602247576064717587906320800918428259751673000412064848057322094364244659126605462049412942918602307879692705383638194256917176446820143638862142763335101849252927641665053776923821953924842199169960166132725207150505725903960152012136048747033846091817526151304378263894078299655635432645130834314832453477452380425240001637173403246104080907423631612570270680826053357341393191625643740868830670721304422158265818546155717970204573001807062940932742880318555695072357793314827924811539507325752034310973006854349835073130229130722433755542718869137245227174589266274659376894375977768325532489369685077150426483003337110927937018057870889890439801750118199843875144590145968159686257010818197109694340420932503627486451284612721089751503958160584278326936960605098192886914868542444077296344757406486261028206533026133737220355368135454357951876948734915120684004624320516354092268929804839179643139876817218813056820470763866421854751553827384215342686629924662425655424295197880763114908811679280589668587271498688379663928773919256278893156696561222433442397459030168286590108663359003928285260947865048657431120284162648465934574157311027465856849124721281306364164057676117207626378908630057185664910893375010482238176092525253252739882750282283944833703586281190745732167522305493741719126473996153964692310316654278877617425459766774772764644640554440721211615916225001044521899148739800560977322530126905485192184406598140168570019950986727696701664568906853417300038762105458766401911407207400072961225196915964924854583638459150161434753410356571730936346559698621019736330439690164149969341931977264483596341190777720464288653783044449249211745602373072750354716391328312042791467923380062126942926025766405070424140447396444099625663464417189450967258339346180641441180311805478740682559600215825601451112026237332638067661672076950356665571640712584348116642417387525002445953677791601199807225668164939010998197460989877434141515506595180817407893726438601833569181953926419388686472492198676019128842134720685077432510563798661412137545265335008136965259377560659647182810550389198191925778135328361482779910267899518262902315816248432983559498301988661999642836009748040956269989854918512458592670097481567039740748584746645744894125642980283514753198325306398113495517866639794222606195194031200132102780754828750773989380727476345782106255722327010725162137783975271949758591988535982854292863692469974498393896837469550666280743872174518323314411080466048048711443555252489321986793273071517920314757969957195918769350338062988801637774787446835492893866434496871157060755068858678369411715483454444049828525842324944645236092499150026066968260256564494890101378108214168065336769245183096471055710223395589750481012537531142546254828085091834056462374933804368429321004055195721765589357989748641406262670186858229204911127589656141569459331613250870052768526572259475612981651654129867616258013677645566256655183360995592154375644308734376644630268142425987740853114582779064539907655917314196890595640072540729956535647424246901075006956056868235205184757355452598554984915385872031616484650795281439289911871240905677350437490195911102642832868706836203597905322801236555319937281037858867452728350197645829999422722024633602691057156810284780988960288689091621766751218100624857821225222585352646844671507169538741209783789062949597441914584650389478647787709335694478607844408009567620038080903661270505212851300234240358188944966741566214671510985767074496667196191635860251082673524883525341283927903419864130646921655429915690591305573144043830652483171711087482534138919825350229224671375465148804853857349783745919403081115603988344959158970329377105145155013623110541691447095359956187184663863169867526919913367354749422283973266430757171873436876108923567212153485404001425883119611456939011408120396160878476987233400142691377637552534599145301826399062499846306923808687920903801863474492325085802547448166229325357855676930665472932385399813573390934564699162819308333286078190662074564999143966421223727038018895788797093380735795114497446606236395517317212147328953008673918501441509485863293842498486715432881661467108450884882615373220702672129447547006999279535979847136492259988153366438946857617997127369999313305541417677497704338344174381273410434755145320364102568727774309265518020515753560354783000857553651962527455070056178792888219089327812389564350327129048934376500564308930448821538072681930092927726798871277872123332795953041992794416012291243816432934515835744715127620428159517609542706133463361784029693631134381359980525791488190040419300533130083912243573679988747296827401821009726502916107695328886361195817562523399840338068333904322871578410701437983719207173095315194655333378007218204477406830637346678704699381501278716000353453165216188005442317947173556305181787812494048644391450328439153666620931131430618005805228128159139372437516326038317381955096790103279314977498132444286484395104016461617508911069454944303288712806535468841669725345481267046664350402664661409980525186421223239622857940746113002563225372030900958826432930614446397172159477185095813101396427224127568403743000137449185840190397444492952766258895342595297804530861048121351863059243270029716282667946426126992584416295925965137160796599307966453956043722119729526113251826653966080053570397940253426773372864297169799870602939989703946511651537871718402548772186061746040789220955880837786186383056534477226161081290045674521650286516730841892660615268824975847475035856308948975342439830152315097102782737286389702878295131073836186728040660907772051565910684385010829069343544576765318585621506813626308574048672804601758727403046589186179343951080273168657583529164608744423456515048849082539801452867340400357615919634191587100167698912540105352485165942511508205847785289994194705167695289082424355344654567759296852356287549737209538871721822461005237837828668697369739487101699017661141274966350992505093508841482768540826968121514097936202081489458185709021746321223797397159150274617672273681772209658350045248636584013018259465334809782957060376972802161903184641494644624594099452472386732130482795971369968008489211363158476515433818239172233259534958481820293263561733135068253619914709253533539050702772693991752262322981555502944948181748774799341408914578486316313135764964526391251378579029624374486838029170733144736489593765210651811659015865797110700205098341353688295604691997425733432415294729826506190928026612019091926996793855089340751663757776589848347829586142761462306282715668263951483123844123778123191979557578229407845848308953008853891562861151039302548967317037153926430247371364944962407546322948602445857649369123948066618249426720583520110457265106472229842005520158824621316880167192880782102270008399193513710907359386167546804145802873817944535238758683262694593016103744405564751292510126003872797807727283245529818509804938391394462795598721821210944945095151181829174302995075461698503749527145002872824129940542055082934205385494403999840458527156356253956849350047167983449520327384651691662413951350890128129327659337456270102346326412509681585620279166341926418523579132886600423523986790640907939883556745593071301155991343836578577675471982137322957546470697861536367163924232242186847681240990754321170561188181638972450908957936669108823744791928693975286215509215853989749335341600848313038487030654062663925281354177255062673744239426009407088701593139773881914176274312883922572264751129489221402858560356172013231697420448617359195078650451644832029096867850569215974310538751262146021228965797674487909163995772129376548095004361393920672653809122146926960896009786832267156582253803380492153053727097445041302794705876596297353841704309999360308412263625450042184701614605027277057757381316175075883113179722362426743685384725538373384741511666328154216262042670647609751035651045971928767301812343324227010236600556451717041695010251500349558002893164262201671086910626735423292474419122997715848808637368831112568900772106509555070488628692574189616353511486008367528492157404982807831405960856300180119779302747882941404959656150379166583565112804859145263190083307648451146437520405294799558756135934988511377939874715781869093882688092716774020495037953365882153238606482693580379427796288723379759588177539888777859930001307749474676193955859251806697233107506743465719461783561163461204992679773866721076008467016464014478324395376128819072863803918900978656417851858546371310489713710530120204180750003795827990250839652772083766782980180750864656450906676872571601509493458912599160106987303722810478298768022648776292589544577973818733630771287195414765238426886505160100075386708424933422766794505761131027133577658512609761055161168769238164059812784260940485771218018048899248625187979762627680840795056073753569223964321016820367235413567897448852157289445323244599461207217474631644799843420826060058663903407503887843678175503019815368505583326783993071312504380593438849522962480144404239282146801552617639134060857888948984375690690558654747603853766566632860422941675339615920514491994819899329873043502574287809858386180807158335141731430470256510429808587921517134687197259689353518644417233551363122011706379020659203293972761859289910299329371380466597499705649290075343062037752157158174949038113784167209956902600143974485123911493576668048083884591539833837207547573840051915221212765157941084014778423453541691107120385963031368849686667673077539539459250295684295723385493279566836787254423010093823141581064152025762747011648631956258158322658263063470990111998934264034447075316371550725103593948060414855762952967565002797492548637840407576779325835470403894787438613964440981173608244143753843894003918158947795135839339106843805446185010366274122370418116592122364396567140078695533706231905101284865616625110843762274031853358962360953449801527749434515920550160797137129153327494864669564922325118761292037808273943550793547732020964020069593820310340993115350221179503576249271946955571676746448119441351538283949041007679095429719193985016350851485705054505147924025613714581546859440936224290053148810802384273072649567666367524410287142212566169742472196395394351630798812807066042078682259361836814642482772666783376450795716428414425048972968801044338513727962519257607120821161073576415310464578998362651670733887123106796712070708033689094980236967683674056359960931158286918913860996394092131751397216335923750556247444986063295879926469876588843670221880311242978071942669554372335002545527872774541082247285360993705412390492726088658419536669838478681612046578272551345641596640232316210367060382882365809177328652420000667282630609403141267917422270225696790585152265575925631938683926370034691931584901741098311011078643328890483062169342225305150455840028797081337477024485502135008836992077995289333340812619208015575882191830281371398954118029095826059763744921388848548026724708330186507547627821351631514775335137798048475999283521729417724561408103536586027070362029515090721422801207763848129527092036854088483172921924506684465149786667800703719285025540135587471764161701867336539694941933582333676824364306786467761345786800666038113270131270708429500292102449544038955899001086069829880186702126014933061576363585360966330589033162003879557548920371558095476102613904576018620790265161414089151013504140456554259492317922483148662948919973881617662590052764835961470251474250654748984463566486894005222200062151145030698711076605698661361777635492460849484985817685270831549212635027972087361032830296824520137367319863778583021163971031567614946294212721188495088494424627316198011963926267298306776977087816878524805894001853609285427461993937884421293959810455972598587420378609786275936137001738323887540389846887916089193297156760451477660289702396870438913207628100479515411571765653329291588993408419654231888586215166139639815759780845769241366123054010576463036498371082289187719378198698262993302642932966070888277503737099972124247491130790399815181559156917038040060109987194785962371296626848711422222906137128108469590574089932620724271249621323480945019550913325419695905600404846598507444664789808478999436483993984187716932843259779207518496757812517042671806227286566471796116931697070613916280009027111096130237914418207088340335999753199387172448285458261215994538441941714803501895810123926224345055707255586876932167905043299631403439363761500802347400831388699036789275551352124029101705554247531972075090229222712959000927175319125463129923041286432975418152151405986139175557714336033432228388124539824272172834143041592650359319659970053135773550521861712881943203164272643209320518450205046272833317570291637455797065876846446110387663846052367060228724754001671101700688370812916037197680640972775831108563895780062825656073263680879247519619215937209535161670193051424325498640308545067972648432486972537216758184601868737393873573684701437282400952501358826709046640078788455043410365585008292323255391856297996074264216533729680362343172704098231483357858892846843987672353442220206116547955251031170168112789828259064752644224123341290119061466292176359188552006283507658017206882744250550513656901237082462252860514778814014292885486807098693024801672901386978082074570624533054578328071327106641352010204710700630632383887349529602789538113567245776040891938154604120308286636938948397475725183343507848440014707314732186858649119751422526430409747102645008835318933476569486125176450516504821556807490977047554737624194578761292376241628586272275638213050557836512840451128264560035017431907030722880339333523945917324414347752759053812493273567178058584031970458463095707326803358056963878472037498043278266851623183115612233625018696008858608649875995269947950498866773390665197694304010235409457947206243031734585747451982907127469358654635786561598156880898704827718156154279040827608608686048782329770920504619776003889014996290698216133851521332808834162907056867162919912460228547577360949029011890071269038468882460792867414126867406047496455801523258852597814687352273258632515277156743812695790069598816202591810902139595818849992273736340518423769687049949104305648730251812007286759376574592185485468060314101016407700180243004535430411279678771314836338532044117952117917906696285300265714707247831624783060825155416784993566186273124220064285911284093814763355789007920998265972537967256002561031226828594380623857520619443737988285352207670764048279504331914050191453253865595455730405184656337333143899856438103177876294869705302988230526871558815943307537089684497893070262924941192117839950359651961946972402913294259736181749883441180037295603403689047023376975383397233686021082655513093333600657106586556907971249814675841427327745482026006923911942141826838056029099765656395354721647954081492094654359306198223049012949362204548450560081054385234318874051701671620401703762066749238560705864605516509156568517974587288668621511586929261337665488781416582992044812876480524193712613842021061449994242202492366146211362924831596430908538880221263565889056374674309214586899298668624812724118339146391046806169166209457320199330355584906960633022694362049337669675980650278114280057655751796373451512960675396304797600300534376020661917478851365499494774908671773402877965648731740394228916428809722992585299954277357532782784779100084858794048214506716814300168311296622749014174216160279635672077688512832076374086274989777282382991378491645708614215912220224209036438920329746214443089222327924002954817355706122189775523121223467970616505662896242717693615982224015230721375711070878127006036301603797414229493606817819897324528398737156462098154679804067205107774702724829717980262885308198448167958737039775746088599549150644159151224989241362293617344055969827016842891169797871974765059626445651657650057890059732610147637636814769925481843624684228926278495987537332853705727665533513826741424987321802598279720673225625228827360969472162285981448895275771342643776750937133035592547386788858576261250088217269795400107460907605400104926158098117722628519381541822375799824954322149362193292786806262024212465147056009903343519665999178730798848948082897870536485113140495499062861232176655047893133383753074150847271137933133464691631756097813874030324254421095205303535955127536140880416224909297947963171594075502861457750765121259505933001490923197095762469528546180467357214302023513085252554201526704530386163467619004455741711201733326802859925810809916281972936475379644356759732348328852809746537944019513984060363865711226655230031892006252510476432781983652864516747835472835786170569782528830067723219515199174779400075820524957237508095319735494074260137561312652761646158136232142232392680338262263617976726224778834728603547517565235091596596817381073316431614326733903357342394080131629685362832493056291146629278869563476377550226685242816907561138282075023745364251607184010682682295697216590043326482135189113958728176431588440036357619650449695354617664023084211242426129429699636306758467546684007351167426388912359951903861649397527619418950035991015522492786430320375476477279256643778452814400956166283535459455868973713097997647052410270389628611865949187422957262126135066953068134517407189683563418814144631623608828325484365765296493984605862502095760850522688250357095604452005558208612932151222885029624266171175242548881958997941237148760959265663917630930487383454515103959684962076166292937548268768931674160783955713116974557086090082861284112515179184647920143887173112296607422318108624595215737146615770869511700259001504496210505152972802244256995492654016411730061681398719906657950495183795730971586434791522933940165079002453976482720970035349837775354604113847815442894689972677669611940601952491638911396397155868292080026133602492188574306473951213447314849771685691789350247338618865936266152724858063784677085277979845358984946173864343597321496418858404494464667950145369810857953536661540690811550034039862787716365188144271182147011222442293402439743245587397379948443717997427285791467303954278765465748704958951509052765290718334147696419460024929570868456035420613877832076222719144207610395177175570145966778848708753404124577841930323417253349720414789491343156689831811150913782885745134606267738302670989604535853259138743130278610383064345665663740879380793695420009333787941787815162270328603140977279841898795690410863868247506485439176236551732600811919484664212503774022648101803956417218379564972476351720238947254893962071905385654117473337431808453369259352239271895915012516266051501129732312178514836403758184807306194206863060278473227093896380265854051946322713071544514409013437964998834608761293207161909876502004495179589938681340153654880278945640529360632305387558578870032514667468006930069370350125670037201392971671952519588890642778634461772621918355809080595589035066745920752923334676038714586744430053198071319888973860183071061319580940550603304375485714990647103419331647312244268501111974620238532138613969049329364781367766831375405838043146775694233429164786300118946652685659071297398261191584278195345152816708523772783117220178143537741602364824283645046511715935659115562855023792954255934277876074892532141326415071553663397529243686290442701472461442762100261146633862889581765659255540308538008104597281794048241513472021639884362235175934843095643030162835274026684077175229203869664156450434927216503108500230736057592611361766725834674616774140351796466331212669629383230110506055439412119666762922146253770832134588965378139758740303188973713598315893609139231645078296361789645827766629343008921127096186150785448634362074504930563982826490714520205198960236235469115622924329851100992024029613663687655967265233142773527904568998996620376536358690592845208645199302767277036114175085655659528087088443606450788082343144745729115425404635156888383287470441687967154658549376168131621073469098962709525788812988155023736062051432914758987746538103346963505218804911043774308061816442185127514115279755815799068430012493506173415610275006190350294281955237312194906722375302789712079780553707409067998546455150807299452043598058906248894103061209905744797829754051278841204989782891929131844861372137013491874837344767487640985785343542326429778382934413852449052658464135842127190710124421890967513866271706700358899303872235670064820226008636594848403416518890609513794934466783510642922096491555286549812254304660618387957136660088333801651475003775156184533221506875160801110133682782987070265647179143767565762117511290352956196212085100403086253035384444019921224060175910323380373078803624141285261028767570956806203129231673557514729906515748389533915207726104261627491581466535855010697640584923875309856889597595668542637649430888628738824420017335489619068256505287560002297659362445581344259656477114676967592548808320545964656888359834999957870868662265028652914159218444033505154966427844074514820706627252828084597198942324125120604359221588325701682216593991749578129287361927423663935499154705264273745021808795237061009870111189513363046175429789081211891977918850209083044870970439096572462129669150540745782625998994463716121590573080841357489993963659228868958840738967486457992232896744987087944247825355129386085966228515103692785180831890045523178122012943940396521888069898631350965015866660178995131434117720044662422923047570398972598620155028699691561613826683827134508125556714888524409698268423436539445622094546206465564368521664907840679824591929404609327013805983037522203106256045271893069828661812471834252188842115756108180553677011842914757422174893739722519965844401690791240784954465078356756160829976311664179665550010463481699125546864294174341228724214200558128785577218852239516088446875094057340658220701702178561828033595802303571674108932546945419992596337967712514518074166883776458676897293564217341890197338225847757348107279074681549055076325622150554753987461352572216882271302114780341830602110385636160713306217649091813161831384627118314922279776440999835974387852139746994095568744197064771244001282471518178274760144579277446765023541914985562924657265038371083772666967548530869885322958464538519863805857480542857434824215552320996397247120216365264471975015893916063932740472793034392374257527590792276371545150136177321771611425733982833380136865904261862503847398845073002604131550031965298390845894685267709895952587512981753219292972719124763836179620653650152526736666320045040594586657163849660792851697125620419224156064591862189798330616511890429436878752287516570656322929190354806916693893526519886907858687879697349960108492134608927322110706570601554739204012649636780281324318015509599505432986630975408361426644069959482361842411823201711491470115189353641196947374995136305418468662682962897899044118737770714528002719363835972387007985164570826724887939009297990918540466173484955426747065015201549810837915364823958558330504854921643742883134639923875662131410957964298452703997329643369459489406608323237452959017128940839721889470030819765008247035288199716938193490928433580085839360664534805330059270900788675874503811493875179398235849366017496904871615073543473277238882848398366950520552951049746020419237918810757214412878420611120371008253194999520297162186891585438780668488326685497099542090157803849636136206971066594364198619587251908040386604539458473306039011555270689704064553724814397416798419287023615144731793123094895221195645615870302267289308943546576639603798239623737217065447178720214048085527835240448611283759406419154616232996425300386279400657795345226726553930109145260513051628143436138492490211081517021237229421208982392053066655600339579423694396915738339360462947198959622191902180240955432947884659223544758908463758388203611083674340829033428117506932690943964932772614928574560587205321715273130085095403324487839705078655101807750015088792006961771110442166069156742060323923643092605818465744571794942575297491248020299021037905844091715298111084867972083329643823104915648189761429173117695348441039351628038798721078047350448542979128663550247444847313052718437424410553722350807079227401701326410449495416989634791052757553043243995884208221556874583672187492873293779402588053690703003688172159142240870355606580831386039130265770706165866484354060333490373808574985579445452070873060618613734670195562715992481559295612125308750617683977454817080387860215564510980825845181545335110598158421407008727516573364032843147184028633667777197589358460861204599120077488300795240502415419672301486640397524789551754808311688347537056472270449650203981318583712464849949078545415539390503579386159616561025634862643613949701115650037483296790882312499305241728385217358633909898300560349093585672743898207692236607533491294943290856564873243602897717174617010805010820720415040979326298006500708338158235435864750349631712107616823582984944766608424473140478478855450774252002432639249355887856246088074334187274971078517781069366045270620049853351569689100763599230346791148189071841653760924922566846573682865171917293997375965127780431329084613583478700590221018783807614134750638288667202925702363527299815398822369233092802643406543051684253523235452079236124044359448849001246201101859264714577318960475488573137010730082534059248033274924143005983291392339169260980998709174481968542783425104748618615723989537625158498747973680336481896549065112379034763771006320723721135141089654747591554923668206367375968699397084713272399880473580624585937115975934839187608583387166276435542456380816189035154843711792567747949455100728850387457682728845461680473575513276817816018041344920754941843852569922862119109071769692258848806948526109027988059735792041967828804422663007161968087888356028147421792803725719011614489581112229447094351850240239125168885934163975443920156261536811700919883608312588444985800442856234142402389692176958855499861383137725878934107394060912035347260236858312993218496161781864303387312730292609742911457998399446265015766267204425939347085238703981280640986558797886058669285937849130809966883753387847287340552332005508752622389699350966203574646085085537740437030466015394997852597524793538522429035748857486193305137678862675512052808749260327250373233764831912967815492749013581116323154112270982505233826300936968574511323289450828524802644619874085260756357499439404469653803447847052090990551206998651016218743250230087507445415979418964755163775654479274032326466230607876033736061810007592242525707356056115716869411769500663113513840246993663863724334191824314569870745033760835602475615931354191332639494419856707693770298839081534500883468217338263964289171847833937189588675155827662778753160344567841703395708814500617978779519292108782275453017440583328694429455457691852941915512230552162245806269541217662939824494825212961094022986137888235500971997493541569015809802079130642607385619912861686942680957676891259065627045537457537656202417897042918398690212887977060442790527072732864488169347733361492909599187489373458321993945344794138465142709830365798432616828885445117487075009005504582587199904178770602712614766335019157906853328857874853984773410959568929662268732186778344018564939614966856714121980638307491373600338704680245796573919056861069602400758232823223240613717334801481909247688785723525504115615931987861422756570839777804809535796701669330532436039569540471885298516108898987154806897126517583378756941945600393826184169471025556075863138785319776315344311699817553105566129976835828217481884506969365211413403997051017224443689542570103122708559175815964201054286008808924995056064520438991764849672175854506573805038698352682437254807817167422767163576003666450050891012684913855853551015720344835237128643789208685106948541955999777317902494961039564274697245644290715846733944286511735685192033409550541426660608753153278659667210566868348590642205775446101678379473960683299708591281844548914401571584952496873375568840101495619482123310080586929252248854788425225188341461859436525581909037288900758567041979114412903236111438218235129792991186862846470902811460144288652586938154397634199356783931968137690959448843527558456949906975169687395739376850680909346886579633985388316599410833448297826465486188534040269732276721025506839999315987821836289097261997954637643132518505771018911188441779323556308141022971498371043742776583745761351006772051891066068772920912604998104170448060750562655842605711351585147269915599085842324275024006052599217035898942037475568737988616188375692862548181548455507998361777156748365733552071491599075808402653516134099255398973533025628381663045002573196359196572721265855361421403208735275333847868969071267010361387885987706486292661001258319676663363809787716215523894664563774190683990265707662120635944760274820810912326416484830268922890044614326500274224405460589291307291706876931194951383107917465521102358279339742802737598953348339442629980435986103727218342544317165359328552887189571424813611013783756971989324290176630905765695107871456405323837832844957318861656776778786517984441840238536109049156820812163626625801729686568726032518537682052145662014812115607002140409381727577347608001178277129224862167524534781808200395265167916262337290481574066808426928119663136558111074554296767511709118416499787246557268677351381399397708881224040245353748550434662316436414542272048063828114489990616127098016383617809875061924771622143653670185431089893783133928331487189148050995901239474017787908281327052040986936526681676011046268391505773126576123415416023017425751426481361339946046524169543144304616262136314822655373270375982401476693944083937470964152942057471417666030199060826344333602083841206464773646296790085212313131863160893580117619729228347926435973521470821960870858790688589862433242514366220375850225291530895007912352508525971421062115161923683131716231790158562639217717816363785516337821197125123907228331599352637279503908506405750353568442617813981724734889129716081498466225211231932521027196052073462737503325960068841511806068454460436495922026615113227921219040021279384315873410847849631104999950696579696527417903441922442706608694581182722031936240398008776484605142081829019803593612073104096777934425876957717980024030580374481527949165353940939472710038219625173690154277264092212411494108339686443524063934714252974863564844367382738824992798876779344168369310878854137980329358510424316040074193553817674563828349868129845357982747180700605775687574242403066498449150888031939765659547687415903979942858317651493934048515226007188798501995108635193694459212916563707681478845773966011853131734272085104197480265858229154657050631986052441706050720203701471287319057310193124981366314648782854022976760493815569627016302429293352048835262781928000986626324384415945161583576191733202819829242266031119524054473828261041593226839731746276622471918808158451541294348043768668919810181613949927331336821043791529602810125904942531560832112507939162896810410719219405433352003293283997564052760685935922967574676075686012406482209299766544714397899089151980184555832577117589342488349018566673386808240980526211792645285830125787326126251869201117456873895897066599989541829113258355361958225694419615596197606816222537459337789746159484079897052054989932612396562036905158491720416809645169334836872594490438546968543181801648832180700640928080785998533421989313099034312062385834210487502009401053334755092463377690286233360293379060578624316450829760497265750142072081619815178590674430589626692727079897847014329225754928300903908536691002760143319165978136255183719727214468333165216527582553874407889681778186261382242188287893017731175439587095830591533476399989981405593309280051554336868961385782652954064997039339459556338253710258658731971429461616283193489708604652957249709203668396299002804854351179812139776264289272516153196429055874476788014392814101177059688904847198771754680120838251422378716801567489799205869973768799091796953707384077149049630016722221514595529747603354684790533418061117311323784462727921888768625301564673868457864138757439788517536969201164159942832521319438055767214475226735922025113246584714436745659259010679287457082692580179083948808562643368736069938950515509374872488893520909855438280062781102783175132083354465075906331818293333038786390059151384653251257545558577986587428459597706144961922669486732612374237845708373790966421138884296148501711970760815394102753251907612384007707984552729244081580569409169200979259279582659250394019186948820645804599422863534674966868552025740701955370414118085463759235063108473912498542651654005755218117322530439814026891221785028007296651873544680090716492187601053149246231784458210815361885186448759348824607703693402817898822709403462566157533829217898108800275284669022235580747098576109643016832866783434653585138392755836912337883851873717746995954490849812476264324261580346769220774574701962340296607823094990866634386109881747148155577500226356712399384271577924351922318141571227888106513462065000962315492581741929837695646589223932541866507957176716703195600086334844931397866152601380721069451040615991473043260215438965568862499735297512365105031029218301260307475514219596811539801579712238836401153841397164186586919685140503142359612928434543468473469013765512625220646190595690690120186115967776200091414573472106922930433773306905194120129416255233174100936291342637686555950978956523524016184917650926983866284402395150830951392111427716448625709787171190059548074781666290860674001182435305730327880942708147449907423608073266680520817288137611512010438995284919291590601757667990436453825808697226700175785640089606543137976029670703318897116474154487694802663913894310618063569989602357253702584233743315293026524422066335999815498183509735625503683484434727492665538348580756181324288333003879778040487104238832540555453779561445517744479476826923202324399325743670021236717153314565812054109956192261675847346446593593449694943634743744457718237599340343538312003155300501506160126911406773344123521701491150759875590609479858318789448387304031201244468627964243645328495014104565464907064159102622610421435692863977342878231414142104597384877099298815073971720674522779809207150182661083868028075158275682214342355953646802508292066790413147339990085721155343645346382300770463213210870715118639053321097881888499010328857860643159011807444005812673608834042861896273406433288908866978650031091661840971348403012206858291554293343203403956166715107913927675731742169763245612100846242625021042258525726193273087521645658892376320457109779271783771531622768423527486738219045697343121602028102928981155701000732254111672532099627437934052736248410822568316798749243326801016347507413399421889939889992302975995252322327605331965361232303179081056324513371772510537043284072535027952665719326133924968030422718550011058594885173933752453124953993864033221503346480113803130279957958598444566334191952712951242308685419420166272764949312405429300382228554737032884440055120204944881433395168647947488585367862865993612354315329439081698012150170438369105406193747936548499354800477573662370286671644063666761141726807508367212220868403011687855963173551011839244265838901280203055607442489837926700673420706153856272087198728823473969379778224145484708251252165390167036506164908584175894751836766698208979310809108337163120313189707717236412339869455395127847305083177214332612398457977649850692267658973881479380008202872770719169236447624546076221333087519273159843741521738482997370834513434075533330652208279540012265674699905284324354099330095557369695432714891137445606141864786066838222062136764689299471244016709341853229910766285096819234258577817279130978484004965127334994925124515188806610342483873935737607398374003940507471794152889742176030194509295943538127381355001575722853891145883622776689592405469943080933328713007453521828380737009624305247127248582497573139933497108064296041717053123178901901511095640649447827827135097242924052935524260398264304179382444273836071521437403873220120006528802241548971742741538958991030287460266219817055953323931798579073120740951540264010594231893301366122953416167007168067590224044885695678186313202974022899490210587233469757615163046518620812779173683664879158121050843608435460118672657422477461625568001726947542089809117730349009464068486547304186066847511589989355504079409819826781354097470409942101332637611065885133014439153755994500685630528655664733482502217143797862705765136991444034676549924468784742926824515953796380591163982796018776038339690784614534124857545627460392448023512935997549149416364103004990227695478630631524613505028064994890587540817194449295662352729924765644045741306378860211063146250414918842882929541303850972430791904495640100855479682389471102351142548305591411855719121737228990935281268024384547796057068723192886879909881206735146552802249213091542079333702234964272536237971098925781462983529927389137586661201743670176054567830314510141668142268125805874890255174062304118068534499866486775852885809876022460750830639144231882334481414605374782016051101451103642247407064047301225265426444657239730212506675440830802943680261101363643419760410480236126588270728657945151523982427217458682507189232491750815767784668689970910083837654974341280206644474003070242896295727693816074026955947314611914084685134299781634957057211190738826421095422169651222325661297483107017715903857284686542451855079835030801874331546121262068545923466434322246697814764934240056394175274559393115633319704038345082692282910594862357273100440216112069248962158908556874453341768796760995295574950855722289201334992019994093388256210424101568989356778685097083565594361994931486042437019318369729315490357497575167241556658821839639035886067883747370689904530402236028327978652073031005022012395323826782677182659727787888749046302033261089580994455319256226139911493145674071407315303012092714812360056466407365764260163611589704881520630688251586006957658436062546864482330468650879824012317890481673247966694751651871336482218847403018777465801916432528636050111049657858798142587840834043084960964516185531927643991041814024601676551391629744563115436916678586774418153469815972939897214697778938276092948509404929068675341118149161288354291319279976962116966038882732552183800145592524783129116642206104834647140192412547700727372434794323635610383255974979562759871932994596697775440208255711833613814243952536831054011885640252979210827828733486313456189718333076382637042030912234110378034483408701998941808125924657399072495912459318214748775446863071471710481818439618701931829176609538463678788584746321828332371011266773985369834753838701998277294991555223619127020067654874606705322827659378631283428545738331340514156954426265668903018044057849491847753400003147961066277657938739395787663832917301244231401351186950722541213972046310833259355691283651665792142447554888374023464828459499767017525989967216269818129315250493284137979904206421076870866375730583754077420639123003402703313247829146293586103672376784001421127065345920404968406905471646704113087707352601696108178989161533539710404526048261329794602766240665049515862455099407433425751428587565611634528388369703257440631452330523544538943462924021434315634976626603636328701381221158662710660581549443959627079357338937930688569028159274831726838464938262331664581884250894740839716185404634431508520560016801011758070271709035258695465133040031979993007476481652540203016253029781220317612492297490646854187042448407558188889950175242498500262594036970978896774482677513690985658222399582648915350263025148099741267830648705788813783496928212032063519336145322232888334207313407628626255928822480146309216606371665971958600328864183888975686674239390604601566983351965837017988697602667296149671064940379054578009392009639977428170443383411175406574928254177205233843094429570596754510726820690125588417176875833276835237732347492452165504058817908483624720178039567591529374954812418625381920581178145827085713606988535336524739689131183386465532464748007778567787145518865830106407177107608692366201778400473793413322721775163304367965887107099171022515019775811716621083870449036034291892810940736542238119701547417912046828908503242277236553578483848258351892927242746799820992140057030183287462013306175032091383380328544516653463792362805863822957716477171227096513798665768500049919662021429879682796441887533988620451058090355605302122190053328051920806341300088305381677345208101815345610621969401217461093185794574925769347906293499864734358500443577400538526760800043153418558757468697224188869498448182623119287198975605761028922175593466599553217592194303466250082550421247323338855158696749199632886224265026417950803583682536449596762121425562270509499407882376077935753287830252526145928975781620334065148662830044111735286209806562411791888655327838306690971275995131387194443071469682957930026331210149943138964365971477374130967017461754215742296105405661482135421481790368685652703642454042927318124205167691197634281260627643494727928072978805788695108925902838673367947017751035239435343039675061306634291894097757817493203202109361638531661815785656849861336536935862045248021558304487791304475060515638828921912472239111153859375955359284957852288483692119129166891225722507715234838135497285753443057993525734896388992396017582544586102973254537946510891387951948801825762013379344175677185652752476201119671900588036155593590241217702654439043685161367281401992301960037367398551538533752324308494053353050681243790777170908212259709695763884999313044655157383969116791270775839130055684385545130068785735280306471268563777909208607904828055701420697873183370849676833262387369598775217846035308011375706330311043677057330894705836905234821450232921457226425543182531214742374157328372145555428193080071475172596467878023909017732613816967165392538282150788096432807905570580153583348218420659750558750875837894852801508619147272485016038325773644581471705839130650957506836254474995225704681672726692265514886644229411689795702353055931385972749619868240089403874364298549327542524470539027635811391952714912710031682644817317893359047139578569461507522925284621286236847376149831821807317764109908066191150285589541292081807761219475643216108197679250464785294806177718854106052671640925832014595958183332372994959758523756592088676540393397350148885781579618101227099118523928386288187309111769476651528291761425304193902542906973827499255435588313130275294357561545106849180592926661131106153973206456809094858566132280455384012196432232773282877148774570129717645156263954364212057345389950513920845197821368494904524151992139952156710638523325941446760079842535760309474116649513137912789228760679861956126027796787648401011170063712816844031712746859857076113495948975948622590744579210115784258640823128662767407123413736725540686250797422869334927094696311099109497362461318065049715222134790263875052211107620826672565006378078434320146447963641807140500117194200239683328090464986176902047148707039989826344720871473786379372385147530591765841481098146244014772961214186224070360483337466189894740452020974761686496200280199760604265788968534218863874018132715167415028419949938361798401464055779267871246021250628097264810815252752710744289673240214250638686032466636092996414057141689529705413614281603354101373970263958561019410649408411696028045805834147995541206965828452272920976338754096451683386852248126000549816551746523714171663313521882504373472559153430457435193149127215659692890148819452093005611038750519526990499029070155734239956302632416104533981155454487522415795867315923626395638238249731511693688935114665886048642770612352969415732589393209366811971181960538696265455662604093644627446757226724806331357031156876673635695079635391388900847844804536723593320548240919164296781525861932944810023491343214603847342037440401303845154873867625035761230378351206313922112370709042177542833901679251162712489051041952974077876777302890476906152829313675480602784411084044918016953098888429463764087815144544030198701295130175805337828561834534426429968154652836045703850647098126046568988276951411277300053283526466633353789104762522376486599068611621121627199557007721301673827762293415186955826103462526627427967689652054989929308010429248949577421122592937670861470132858452531243520999249336192562400547391026213090254918715295384504757008443394094620964358522537874933672446294860800948751623319244086664437579536022180373314640518923376693185733368187294619321915120253976204284411856266788403330127335483679632853334698303746726302843852918989948608788783656591265449177615791498164416159325977045877543624602305829156352451409991064663622850395597649305215459949932564114630879016969605379762882935004026993659074979445070040710381266664699552221976278543234218343041194846546819419496037643664796935064522945955188360376080204987938680413685845791380119080366495268285625102180864708449730867936495891216486353937864245124120637382625574398462814290467040554541511694232832927921267278806405322622335482401322122110862321033980669144908956188633213912741317502795047485374734312738027431727487694969733316847158706977104263114067317258447856549412681733631599798748593876372874559528540828309838891286164978516358320555232616457396026740349825194925649966288109653856742449394330528427212184710292457906187517865905279600924481619706969641251169136432630928298209648673463905781424967321542335322253033939020996968485260937639175942126076136617088714936612761096146807051643348456431560212100655288202797222902604356048383711449167013179749956887726650065489458985372918359430987925691486482349021015512785330203307629510399171417507107513207456409483367405064468386892517536522891003188830179634788865162474644941166236785571640244708959567760215905049752365388848152806636896808638343733683746250083097169208471018117018604737383394837762928856462565034137644197644951784293514132638138169003359486479334698247636339942689781980812427378668584493015875763521002920379591612960747008690037787131716030779825536705430270642938884958827849439177979288452424959579237409601461565508655527518079635502956127316809999505509798446016032845608988083253484220088607500076220299125662021147783452255444111881561555482841439840462459221909792749000988190278021948531510730958798963260546320644198669167250730331537968349145335953085258577272590136171053768406421081837515112842730449486524793377272529308455716120527617886776851475703220770115763175960374356855228358709843088879015225939645303561794788581352858050576936697899903299754816182832425007722544849254874897833551699469704127990836345585421219961402024799326903542564439824538482698926517813390261483997509904028648360132725938713206501849354022809044430402862702944327624373941738829733974834917214851426928598974533632738022510935126572750591608945079039273632343948087775799443812901177888266867044945576943375162832498553610676036292512212862606344065967770208188599461206283997989388180671825450363194577371640582745543734622678927072259657701026007795001632729025407417348651581197440872330330277721902476016251583502468402983701784290347854006899350861971720990153987418222652447588429733266022521146173239793704593694746818298683725625180250047889406252041689290017401801258810544312685266468211619176305085767803251902105577095845095307672206968470450485234775558500988708506988333799701061093187095897934982121900516154066495843582155584018207868317835374274024824426659985463164876659887206435871508153607732412889765340152426486593154803851045830624096842443687687260208668585191093076925279924570741196404682573134495754591222362016469252414211682071003034060616808243094984002673443894252515283664330797366415029177596687255358709748345985886611819801278678621278858878807870602154111476361971917218236608814282410425625566822510558466119051540805683096388102309287590962646265662062500198114284691227192086774693523828108552589889931200934905049185693700041145974291008330622200775047324057016253040722187381969467010060296832603259473879394591930725675861392181395473838191625720394730051351175507023966680089651165989309976990132356305719719674963007036872876512778098012866755177253308141766294430952925686880419905408903114553497874819971028720399017634131402534971242602450396347735421179480640174004281671721464304461746690073763496562537410116836459133103536579679726544713502511385038079816055683154652956032798560619817729851086494100992512322581921334140165763471602499004647229246926463099017035200809258722742012654648728582520456751619387746323021008429764310522870501887166423304959317534457448926523334672100133611784222252166594714058847987639051119632256825347146429921531669806303325078845504850175090307075841967016484737351181545429762789309525113890438554970892553094311912977961537981531903311926752983230748880897673753662839311403342619719781666112467964891603705324843562068185420340035640020314833876447829956050724504050863272998008833646326917941799392966703472789790153995146494134819303260313853608650065976386513626825921136675632329409123170578087226548417014518998955490115890077794121748513746950804863739345430979720277409192473725645414731720352294460447487405059399484357565084226558560576512960804660875148849881975608285156736845784312100065045969972068337071322769707613730022402037972333886762459991357693243195396939002850434511244784130055595068656860152455272601804778385147397345362535784216130541091694658693204318664461902870963121654522784813801212701727537920154213034985745344024964879249868237117101891599739581768438849212883865793464556220793209110591515895282972505447967024662067876037130493420151992966662373546481618924083033388655119201781104701459130628542305859529317374307989816324463970288664747651681497202832431285356339197612999754782990541117875617794077620529054993026392024756491254538105990265293617883281791289345904024111383649100536367449443589421219739779057498060389878702877339196197923429138329930829209041293515867410041324469964990198072834736254385240671120150425746990589031481380555785878452106837120602039749019419703768064660476498991955841102144167540691316347712292802539480920743535766631673826152336313438129388196008506005024670243361139212445017598218611545711684655880310088065080815692606107888584784528767760402950678114779798272374574554663740308677299972957691564735202856743698671454612742837167084761639617022948167259466362425600616731965961765730876957833073868257326962041408299572062714576717094710976814246737139591283909045755055512897038873324435792569764507793632587439809387338053401463499387135611108193878097102895709706329414474394382297768418716435381437932425902166240585214815417072816904057659731670701858674165808531179046964689378199657804861298475568016993911055110027438466410782220162731429958363328515730018783921592755241529549595753995972806929479723658263982351851819178505079002485284996752312038476934983611214072161748147129678324420756235411962592331112983496974322076346082360755137614208931618606856613669847499298305738431244432063596934018882594968358516797529375556892727843286043631309213055411019828284412492336203890460236838394356826517637855919179591082854107216217036730512597563885334897278227351736301945933587971252802597649745942394553892929893811674810848512586918850957499890751316363000385550492141302307347025546747591813161935286973543411742156731211611854536626950025460060052499826806263986788329282139892975686546799561103117883452947055906230164967743262863762038192935275351315943235766521032158378329449321246100069854220208637873234157329041688001556173362328384869119328777297524472215094940833925457690395313567990332983512483613730187531140454150627998851731196317176229469498203580738041475159804015708701818699403210918882389612979039526828051996128308844792723416344429112062674246881691280900491273297119683990485453348403471642064439866990387965213743266768011811065162214746576181011712306317961778871978143235787238343363788916618226975187765180452377053451224138158230025597754761542509430647433242147736676412894498504658719596559869388547115953931339287295231556321093339450992819500352918673698576032107295022526934194998770389523360131627110664972759993041541587167462170502802571456024192486686227520500786586383315712484688263495877982175760356202893475878137867753740413151756289431538429611798698798061405476406941038277312683482517902625340141952882519262349622183567853433128466892230965861360392133043080428101765157239039937627899866710923920732942899020531120252875829341863309300931557267789362672733094837848161568476666802082033460498469693721727969048779687571093498557126422205866589580377091051648522105144092833296675412959497771108124053231630037131021753031560947331090888138087998520502663316894299683988870875952001936195045473926744560617045044061580782382353378198200561173498130648948672983619411962642795963532850127116098029057105308162160924993669407924394407354197601142172226138594988530608562551715176312444020439386321343679197917677531217393640301461760102055247081725188115137877992330251160686682344504798225852535632786579309343012392394103343345839402023119267883365172977645664318427697428649083891965858522674261080752714056894922678388260928447006769449324642331625544877838458108732994685663854936978177649139728755221895856442139891279379921341529091175799422066902562429256024896302403961101391462307040718872607743040930329812266747157124434760882593210680758014742372744525765202350577156917628155404287914220142262508627865289520684719962906863135217522291625848413813436036737648214034076701525629153702030300455538223274111374606607832994493871938951766493846191770112685542844447679446971389429073387181405479954086822728284183472315955806503594387030858653107692670356916233889316706304816329966495376534103953480100853081941653779882643511525015267636271274256614161580674374751923140262682004343290562102077392162580529783229994631195845398162883344567630700893909820326752962933484648226262197942954626096233738422067573002858740261165170528227802466938976470748028768849225910788707157879528362573600692418305341636408784530365489127328470870504251372537957277077787390871388784831958670223357524035330013610501053547133689666229355191834214094495771419447744087086494113751352214964051325899930926334107947689085681930026265317931915408000336806434924844332427488553347602814556257171626773019742512881203320979715292735612578089554584120002419235448067712630374077521119986602989761812048311189670683326665637184778639371309674490447903568644745289344519268910543658428863136005240421572762973247756611477679072606777523510915516479892091581967741379674599409745866815039098054969251759395542248696421407815451355695692917120924053530075755630019199161554243894595409189946669237361362510064416449265926942391492789526676758016101431549053966170764863793852967508623502339638740645790005454743676048145908284652917110361198222925368273759548966803434054127177588903717698456795666891296975498533866951863987560889159144609834061885588186067491258950900527022015518598902415293769473241587552880045085314081078931200650559400706300676873495942609422382034971766063990363260318595870254885033026306027727764579077641705190596909068230212625243594292869877949331553988959764716640653994202787836727276178866917627568269315348980095669105562644243887719774244172781299030403544050171230671274842760386732299162466451831371100434991871571117283486239963478763389695907885919730276926558532005430218723389255340592814674365643888410437006624260356460309866207645552844683809745272878688176879352154108984692539681365919168044202396384886703051715426448220055120196715299466382680756156516940183252906636159232156968435485170508924908540830380036650295262192449357509268888590437766287169047179372350655215399831460439524351951996659259950561954616447441910972189503940494518604646120037813295528930398326118045161350461765818027680596643023456375906536834396248330111588774737467553238211312242254736318033903864520014329677410106188087650811792977006511798078147303033041428047136550027523541244438350852941009226467555225933089138731661848513471688356182966984619926682235985096848049380431011209702046153608994082663572690554893697724834600398733920941579367789913111384259073826098599675858671663498685444462955560330362262130426549525714557825073282168091030319658848816738749331939030715668681942639697073524015431986401151803977890858775551803794129787169474521490658844662595436832430318497766561197143364833278796141762403685617317232501409598504091507366738157802619212667907990578567292949473452255765200358647732228284813058420258357683749286207502797910899047776536944378087745029348750954419800269019817746755720399955186771641540518911499429169011334484933252430996938722838310629326808185024246958686080573020445620663649853259588932066513048419115567324414468873342117147243895354281078905618234809643367515831468387331005062744661966775222921615294389457560871583645598223815457917179524536597609267039574683177559541201355521194045250399881600364647859043008132067474692605503464349088431478526224934349065600387599692092868729588461525226679569619753116791169268658518816955622681488501260002473003461586438444666571053913983565130063575011989538866431083481630062465836887697716101512634981779924768676963222417448524210660091110247846107905807702124039476533104688137573963751096196390257384848850317174251427642092644233944612224777734180018373899424798017132299595773721162375002795079435995821024695858990088872714451006040195931507400809850261472506223075174338913594784257465048047295091472235262248241235007432531855372769693910324694635087577054511887598840578003871494285976055965775413049963772431963573981091870683261881474627651709816702474479125795214980700472362729716978916094813915484762110025040097991096036904916790632987757553625626117521600139638158681110177582115110552255476191609446719929534949963620739020769061851079025484665316861859143702468865482700173819541384873437106133706809778722364271430223185353540983557037927826282236317598169285445294256411974898065931479141000379934653412957662653204257739340926306401183046802437212952032994816961052383269302428099647087621963301810027882498261260796253115290125694799488634816064956737494292275151882868432325043628910919091870114005345272202751155956111693014409074993245445966945400183529304117076046231566954699001422676317671739346108728589059878974270699255933708346645286692171963424930302865515262914407648721231115771985377534884623113100225212243890138266942158989450411250799285595137985894711835351259720023908478683819828506996663794662157488278845384463753155137834772930166056980004204827389532830404743677381471189377188614211425171933938176738380640794418493920381293961410215785709144053679637814012316538648962749254186559154538690026924025860235276026056079499143676221122739227790778927751717144131955973966337363071310539903581406675974978614470769533230887703062430091331873843432130450606596860991224003702201713067434843954280813915046062737028995450957867013329438139134415416139956521697764682711353164680479899540741378051159235067605733681074692063637178696731615651532769233321817653228444082190731072684054194353888697359392356412382052607732119775027469642677452747747251201026642797561189563370566238519527681874101430479397526738196849373062842607207018245884036879118582132932794035560767636454323967727877352984986543165730054401588714386595764520223540961597527153139074291388373091702650212714079126243226121993309800524325257166832113578004889953327112278415942545918914419370806061130379940638404135620349860419464487606897450697652208105457609370660354769777883992804212292883877842715527116323886494194746996474073749277454340248691356686504738448840702162204849237478017536531026889344001154824312504158279054493494560623821345444788601303010835274246771757171268889332381995565695701105384540751874007945855939853596500973254794105999658142029447763045624665304692413212218196611955205888841958579893805145149767395285530551093156614589993377020803792794203702785732442946840479381350098818553722904969565376377338858018601703181057770209533898418961696337816870460207480934609093443523308640245105911173308019088321293600704944278426004871832877772300662813417347474387532495712864208466975035610048637009885148400567240392496036530831499912677477628440376533926075696368474662964126875404837155973522931344927378257609885145289368835318547001785947201870898695922217248192856582986082951252661252504370912965232760442759859645609646366979858801253868022044097970792264989573465913472344523106707960542839914650125689944580875366201756273111597353229585392297387037048967308654505403293724185736360652208214765535585676518956772846208570666506991545676415065610355309341228306547300640722426462897584261547825120709518500454117430306699397821684842169607276679783786483899337168587663204996114362200952262457579078763793021552919273993840482572685831729225320278916809886779435482454067880787411750742372532559190290586615528724332133957176724624507768871269928773845754933304220639946762121533986988944912086062797050203985796241736912785718087765873587021187385600436277609190681291366887732072045561364218374094377609220657386111888088206983358415554099756165628471007350242576222644761395184630899236977793448080422916398293747421377247030865340024423656536852353544733195024076635214471128635469017552780228612417698083177832565275608663174602646180724753089621897390356137881092262073797064797631669560073438936200424241065265168144519921009853390709315298970840913356444486960334985113709816878684793319843065325978751050406011374106552596224642703522070527822523946209388054165161700006778440655980997111537173686633520785682587837313906189998825411516642508528737726437526536925579571695511059349790814293131306019573118342121918516345406327735776743824563297179419497069376899066617508854596945951264421133466460584954715189426636806134692907254391106985326386959799742833699872822151254736067119335073117687873353508547050425855735722713795320255124904549374465791229968581570908934443767547636839468198030499229272887613235933932918568271833419785283855938505120141331586437068338291426613868697365751700903511856975407897985945323472545695483424928842864046194984283266733829886700639260323164648256116022665727784871066486409554239534046860755784480000498025133108101242610491165379920699991578200881699164502949340010853472557922436324841733981798224079136345310476415970106715266537212527889046321453494089384762412821602303455960976408187358020007784728664034228926958550742319264274761934214396792281013598968527910798356120622738943910170654040643953121183784770029402266925055356636102573995622931262933560928327412321774242378040236598865218619387869506173833470081990563901946714504358240159154088732261325862703575770700425610304608016661047693650671288578056311631923675516288624657232906603269827575156205922082661987757475584776947288604501076729186106819508018458970468737078378745240911142420066937286585748055820003008977384967985325469087191166435125238374101030698165570078323923912021288579431650912127586171245040991245755132773163248122837206406936531241293932765479915205550361759707917903245276638626394194450888355899226659932486742086782010224976007444339369978073895311882765949650690489582452129675197424222435158392035888526869136064332093573614160749446393376752297337213028214508543104696667454025783773849043381495333851708609074859164937326943531225058343540527353083154382339185705789854525146806870544111777272296324707744495150002518568983373261944021512908226406893675131070857193688693773096854905016009094114096226196700601213830844736018645080619223694142554831688642389614191611563700184779118754468204697196744481315145864649332599779342822537329370537064690863524986971653815571402166695105877238998447030015512246117952945420816778225404715021626854853703793549164051546570848364389338988768417600244794128731015585242933667696267997423416582989200477843563643034091652175799158214347826353372611040049516687359019176838656620399136202305204005448381321759565355336684797059560234105579364235994216889026198842172532037002069349933350866475431151544427872596640975383591662182521806082124027496300710155496470940764158127631804578529495295916343855716892249480976893540498672949743400719857370020103292092898072656004587091377041088750004881656436342595303625282489187015920721020166945571503466653497546951797386574976810124999736204859821937674691852487240742317508780413928986190479969837541583367856556239127238958348290392314034528541538725745949654709482673963947405009757975479493388342931840878291672083027878302762908461897765133505470979557128633471731390529734458540165445393631583604060314034126029721825998233756621667022387209471077259884464912637956664366018844853973588191663851956467940965689219193944993449288422454502769474806755943850922242691064533661204154210341016445540350594865295540064950654713335384700825218427771570434500534250067097377836575345535882958297075522212264299017885196817094560376704826473430908280409356841751968350764487609026538193568395343117026565142573325703792554723625219967950198440256014086786135013869353979445619837611641378086835256168317199150495399035503129148749139847596154356721581247176394583486404909739050843962618399273405196857286021814960676778428854873989155912066980727813607051699213525542729709477524515224220387430966793265888483086083271472267023663408801161927067374123322705475239662160833699652859871559959196042499507887354142527079015028243278247126141052064442199750024907339228561393331580643881406538792710784329816876373513924399178336223033378873847886122010263911750150698817392212727923618836781042282418433338517253713462914980054232489542712649778539794127696372030934066155017126881195184653745653528649128707927955302486064714755123662069252269152152118809625377951623985965457716543631287754998307518240606932267954175414611744872526558782708376817943022847934778788118846028108804447546049521654817161412913219738969371265891856962281665134826988656533101276501526375402557784437830545948015821056835027775511016748956364521788880340455278186083605554133758647402776930900379183822756391565913230911588998285191519344803365518970348536770261566048185504102131865142717409915428558912511664739554178053197588626768879025706683064540123382494237379092089623692743596783519818346599855589660181474616962493050585567860657286900368694966811284868785325163921193792611177288281251538943053854563736403756623789802259311846618344610540707597264340816338951760523880197703561165226579556716407960692486815236509207054385517288483747776737907923131332170632516815429176961421033426753207905256466654983791229485275640088053415485666988979317283877348778806891786662146348238281056590364122146217704973228569718799313238696036378401152586496427869040216858656219249634610808926003670612507778438134851844063718362098196021193757214824818792232763350812596274078487680298232411186745635853274889351034650300953065940645765729013370284600793071169186531151914659652738786148835942227671674540070141541612014174751809256610884320655924426264610400770423436315984262685939402439573026863638164532018500662558927548769379412821187998059194204530700180906258550981879374636906749563705477412727365850041894884479555481286786884679403101195403717735491949630364646962480283936427448255090193606021946292486875497573754231526541384984862834893646431006225531190453356148486873832803354514474183509148073319412397752610813371759761139559914756337900917669771491893104109840860421983331590873543510902863066635682767987425671791290294106696183975306692020588872026553687270548408185611587626140497418905814579642334637073259588942777601033144025200663576652572700105408651347208073976241419470110471112411291895861625701178134648126212246812121181065689588172213331732598868363616715702235823692544026037367267663388424007654036559118117999383019208936969164725190775086476451852252524552222993059405772984587111644815860930712317345160705276719980077897667996088696027841594322735525737702633543430028588737713198492546180239318988169061509655528754286105739159815531740698835464120455378743561928868806876717257019820371755117984998104628736558907354001800209846919203053709666795860698814998973320391608401463120778721698912758938613212471885171628212561240580713873435835401664391778977493263780393372350406538195274554094871531305117593510347843506848211197179712383740492656457850356776414706266012088429771043348037841101720264487729033823946898399187274867681315829493881370699380219920104373615152962248672317289852651227924896692418089442023083903725661461922636676322180623547700982790107012668591579482961038717845833952232766423879301918702782308350520437384602437252748214674552499903347523294442087806332750835629810145330242539086495354345663241082505020879204184623966376994928805344462825990794165284047899396895111837182696283046578702325947165356287167276837458047939747223015288542585685338576807349094729180724151340158375307882630961123542824815947901220611696414100229577548383693429689626708617721279550037544488236123834941953207061913281944741762107982412448944948032965903506751215096566925266597913624534738216170107515169531956289414716115371018057495821965301167051637243345539161735142359715939209807664093586503283274950448594069677201158446997552780615490775884313268586929809226991856276458279229523596496635248499341488980231084501034974370544063878727548173809994054517079939861936757754732482985703959144099867510970708214730105215521813499336167860921749912342998968152627598719672746220022089053187570368178320114718079333503044468183648000781279921746372289727529655945534478479377114705492936559540161723064536106127672872029870438090040151173586716232324188199660829674715252546721789742336275472186599033725507821049251364107960468762188587240867624245112053143702535491055399755091367594686301041516466405356573761819234760340525080162986310382741678503820669914921640501549973746394156398848181199851167441184426264515565073342815049682643891450298954990484844545423439043378729332538934603219328469275287542558274327154071642302540687020021557671861779291449419352737926704724797180706200651843343406531516239980768633749447859633304623187582225829140470325823568060148927148367107069158180114714932545143531106995059623020078631413217824765101891486092562940622277777693438057845425587899333894304634739423752764312250988096042503887024143298267316000847947599344586437461986208452711798816278590076307618334276500815677117884547564020764438763658478061029034673360571258962680191531018971918783227650804697171965684342238269448025543657827022386125006863025560735251957654540670549858106943566245301336113472598169157561424344843708151660532553214571933111958394571853009085025452323841564344207609208078336896431494043622968384035125552181962651568151647521728279353500239533158379040994746053668552003178590902704470028352222252673697378499268209182223461769815828665830372081443104372428743344781730029674270160225757015184335691305799434643669810821235002327009785355713416616078702973633045712124083422485309920603962916613490703324274984486454731940233201752352077845391014677934740195016249306135871403709993552067220149234135678663821744139840898183924277631475328255428559676527774836171920679270341233205574611007417330813427849527326925058433486610493398428674719850413432252290726622446871726112082398410822236003253909207084284946999237330603480087608200080512820791803007754551156993018021591383496774272391590928879405742075959244201481490338001632238148887910739434151919734235270166824984369194846227038010011287003364109512142129774004959577174511154153429280629502917548183829084904352236861788964380547560330914987425267106999564432680639802789729554490809566092858278975920508391505538106819879294134834513420921804144005938360114889331494009119885889360145671735750299750976219295811745562100596915478906253539076580994460922609883679595601208348750190036047597805405964033892645937460015471284405449445472775001171944411446434512952218078935890302200412059524685659777428050798152540524154647809712019607477289988796765265986054369595694980318401905989906761956446439843218743789697114659057874360863668712458535053966978874530889614173283709680484195337930159667841316281461481381565732339383342163327708877208616363951723805777819649624469471375161257114315398791850027559911936998281570924757782921404395568734576086342553476866420641292299228560095300892227335674808575697170235641566697243100079259108791987271878360896319685380704672766638928575710256744028683938240914170505157026910579741319229245320741910364400680811227921791719242754196383996471709883205203006096053322414445256528394596417894681537663068129161518770445651442233043287800440880021974395411953991172462294462044476850337110297946485366364817305045222410213632559470235617101483130103533888342447214747206094730205620628038754406257441535097312543555393382629288979029859083566099458986813552415237965429453171646655466819883234730999010799795766545880076798968868702274406821413813206476908866991998995200297708459889214707191401140148741531965113065053298754078919280535689100212151491011011776771051603313860976941350888279175037194192525780047176477208816668322456675891876636963585101811090154766837307256221975263541906823179628989907752662876388992643593807754856422048947222631711999165534083011083623933232981694015201954979443394783638302592350693273694567320543264098215516681115005143108131889762668523907040513366014077127136118540113633657287217591045631682784361372435525116836630027057629145295991597518723224494187808837860743786139392872692893916241124257721629452318268407630236029955494874897839427001553718146330913479754498220135396316134538480512286631818361510212734307895534201435642759313658125300289454205784087089322550418147702569776395923928903706234993964052863917688381025132223364804456843243413267086533602844282008010567954041439593663509596445347931146270693899579756991055035142023489180555360178084612022009889840113780076193213941651088492560722898233990495004301866193709056128441738811868269921035481812139958772796449613273136048267340003260416531544263187132722950077162266370278646072145093127530542749481484744666930827275241299418664967754892462563771581450994408170637162946189225256882658495031035777126458930558240088800871970756220428605495553869685393946030924544232476792438299925951317697705417447190711174243753549541402725995173170103580805116522635603882491914609251092800608411605651815519536165309658703986620693765943490623038933380924971801578385841912510758145640432520529948647107209718063460208060255006518624547574047333606376712850762747048859576171295371094656541966638521066950736576197137819691185163318968240681331578543650296075357953962608551832901357404951291721061151321379868409695543610495844162568410514142567197750942303616718843858783564602888120357521297461844758063020191812112125458371323783925046422949552027083192896552753447363770667231536213414059776536169829970867915787913991587002182612108893092053236892474061906077283909594386833235290106472373096480148171242484844419793317890188905426543996625116870277057222971757731605669041522642705303816475479737706350155499559862748986714612226165741208665402361793154628115829435714888628944624792618121907094808455059189567965668934711077656357337479943894817777747966229134201038011680262923178379343978770271118906505664654411103268641568312610474407951464855999563038813117103125810176976346685290371184147210375871585406568622888666475131031782659806033482266056862923058920799143004728483966101666669654405508114600869638222377959430554874802767862931050970506815843268499668963516106176032716040843942229684351733196285243482166621395163072443982697563442695701086922004336940832068923227753712450428290481282559443581925635984754778683169631640221210299131299094731168933209922262655338245565797479666308687426883017744162208955155360730042422721148075667624170599122950683629914974454663074824220478023962308702659340989780151886843226768454437335504264561471603118522264637997114803469279648279155632625186818692847056163718857364119020875902801120914926687682263809753189588837436931772745374628409830456019299365220815065405377093828660614713253726488709953392671722198001380657280349505151566923417483480640870120198753346328417530346324221235451710335238349720531988633780621680926261993418486320414439650652310917016973362139660358269247224211806885582453120697417476986123980662966750778520219655467390679915941462047118614303098086923609206760209545183576869126454608502470108047877735555990151183274149903187191113086144560439251541969767945885818081681898876061883977940913127941567122766143752154090253061335222871095784325789445353423227647414534014656371551381003883252734815539596161362896073908508640190165661779856847860434951034770404665582686427449641659112752434686683378766738838269082665042881556565334921080715217075363771556043455111121170167684476474681511297483750937770968566304755362110358029752946136895459642756074065584891578220605356809996186944738156732103188482696170812025848263441600572483289143170694835354751592631407345447953905932741439963226694880282130921035888824925367044419490803322603404859822700173577635421424223853482283190133392996990885787582942109820689962162299301135624841195539145292210240669193896742349076242373072504936039804923835050740690582797778008246732163361577389786371026921057195287305115240414626037838679607897961950050344058188278328983868366804887224328910862426661920585995289228351103426070490298303136164903385847086810534336946194328568413738418862394216926982446535927090072853269266645509509876412679035115933323290131902569058477247150734820481212196456071555934566731265974101247003263215480222082729400436923376882095506030285075644541413704738596503204314453639145020694642436575913569401426612441940149072318127765403841222472623447600840608304597126843917930360503294341012463274646824920933284568318634363295310010441702660411629353972604874106764043960716922755924850081703934951097330238157772430398898267717198698705250821981541851056703663984720525394817632248617437745699261573783775697493309410257441199908760705597517459280353551613115307583299604282645419224524357705712925449824300768179810928404829146987400057100812640056946971260859179277893237778870680675652572654615166707395474758727512335889520382054134972152463480051788616271170912164754026266218350071580818505799802280930227006894752410562383845079146470368530658610863568547920983517401981111740443352731581880208437560525579365992510624904609177543192491277876996482449406777162196771791959715412139476753486347187915188356672014080824645481387932056949421271433474344159908731280398992407482418743182331801395162891742106007543687650462762801854877875861720530836723937404861824802547037834350411017524205158072723898714884954689172133149615682960525054369954184526845280892773512319407048179562329886064952253225641379330341286330764884780362278333121810303543866370546557701741110571142844678163052680527246668335517861423241644431826038691435637417135112177476680225392001507352035555325242296306175717129994362165610529025679131665935264176274618516094503654564392870049428209610094448299419303581704739265855448026568855812267182894844297379636560073387646808549142079285319132655959640633588578475261018879445977875704898537460499184844334683961173556706869223442129415706459597943363673814500247572078950740946188389855597127734990885125149824589470965906500600424640690602292799707828563723496575988188004323622045619705172584560964307946939537701760661052236767166179469135772883404684968765999908348718422597966490970194527615537617675519143598213928012293462763807276066478798658287469897247058342639069271794026315588185603403562373308101554477029591179042054636936890515041974546194525943266453872460481022145267522459411128486351048283037142501221344441770381762572828356301627664334396184501338346218472612501864762949941423870476600112902750695561020013002858726111394245633539661257374372840644775702276797785111234525950180753543124780297787064546244979048793070327484549014848347327862479997957110572311740203797518190165018710471202253062202209131948723939369119210999450124834066232385852252640888483288375620077705491224857686854872277598227061786176733032885651259163529131941592892229176769267009856690012079393269069146828133983899875349379174253208035617852457910208773011679263259971139269217782391371623876649469757558667047459345901106831134233592035554381946914341891022590322039660614860533896086385531777442446737360036633181518194604314729520052010846168792199057942800957629615451398358759958180664392545385288173556577990165566391378492426598125166430266024862933374091191082046695800066694923453488431324143067931569551742274167614328416056164705191528181780231453669003944127905148733274766149048034083822760531792725571619972121250694180682001620001104315466244936433316619252493298424246197469213336633154651166350680659860486049931875304182673495453038427204317822939732802330412531519614212522349157530822245522280381165843970614184603809229188532251854858947322641729087445007190607746420317781285403612413355424013516539020592938655794978118247451168530402443202351007869063249027350307256781506901734633769781022312260195251439205622748070971921122794650435685196490300034365232576240450212434607920077243651276336113900146496156061739370848092465180081040348621580122616771589579338488239189993033128617236251586464779172572283672931159944255694655110158120388335831701024474916958741469109203309498844446563027596539426368768043720063805761071668487162091300720853294340490274569379055542884198548702705237748160278119827363647268907537867776612448689689917655173096105534985021490128591375050548086890056704728589429248591779626234738835188919424459870038485173023949679618078322801347452159154154432969265909938398771336391524373271117482169876425863548477680866005700327390458104975994661993967188709803708207146231251740737973941299142455878817718744249416389534472795238867102568520422638739767641266977827484112348090093155417539940880417322125509256593748853914609867838505022889911359864868178655359675387651131525617825043186766079827302719337348157501432270549522689137779123715566795025874676872736859769918099647243916620171827075888784957934946643039727982549953604765377959556210291951312513105354488599554992470810837351915788474674620230859382905944146869039395555702664713870424399607352539015163250900250868885256217293249270823638022947545441737713073864510414965443600191949387303542244181218798122531596068658782478579922533752133294155862009185071480354281751879655457530847585552267707271630653045963757481289701860404552147208411103666374244596351342707134486097848650736538155787191055814653994597903041713650236256845304850910798901826185439730079985433025811544308511336423288196651862386379183971924589243674065587873841252153766646802149549980284703912296526868519804127409699526430726610792709345274304511789019968215300923540663388742163847056265192936303136516027579394989598413305884557307606423190906095716206577787655621730453145791437522041378432749566244926466221438405707242902230572316037419205903934287723903055377747941399878872256090931758363007025437439521845914132627504146194008784596999294592124907827036412288059656949758511728735111176296470216633332954949108636606496477736800865241361653621495680096236919874927634595199403611704534682082001881750439578708704291442812106878360022998601179825815642598224678509457943556955774242913449673109197326550550414735300605082016664660274674977860060784629204193243838423145807895835851347060654763890444849560531078187222036349646162976803006817510619221248071815513209769618235902979152679610522426982396114228490306306039834133906345815753555702640971480895775588415464241402106051947160481106065940132180570314862132032677094152959928329315726887292961101276178643125791535573833313171617877816839611528033857602280828034037737621822010210473146898767047256884570423830617477301614033563332254394527412671644792679325198284649857796246666349671816244250442163695752121503709940890634148992920134479789310796106600524882339211543891795897154283488766722172616344530618284475669815193708094716719677249435934568158763066729934675012770211307269410495718462680771538980639132035728506266755390711956710035055182034528938288506397233604687675773354982949952325353825208110240595269437921052797805729227368059826573327574197572733550809000684139918100558090023108918748771190201431284435321404087017556792789600969528094697336072288865959631060834732276483967822186332987456776972758937747737703762654746882130934777839297031559399553094250712309068819192410025550682682855663765703549043063037045695217260981978232114368172872050498616515651981113920915227376412200688157488973159389050146955301916751280219727601879924672461617239090796489481647231278707206619853575851602521721290409808604521919443485192266069690543764198127270463345195394753020535788342707194273666635449204126128266133218487348462239920884831544016320558232322866621296490921550630679141503370365007185846251262635262712077791034332928182817520606244098928096752648415297393902368617172048787426231260745287381051956169226401894109664603654437993155778317729801024752238581907799931375812297101848034300700606385869936020282340190877763715641148679947897515955118484736436964499896483753673792667550514451086678432569832615833774736171425965980163003055107793118845271367134332330072482417119630396771741001883452158005335104417964928269921391001154731078657114455201860662015151943379950687090806158497425962870986831764258967530393743777956508576432147701231860081763354421295251866883638190059138452561759204928222778193331468836056285809624906879732726212258708880368741039890660033969930354917329498352532765976999839097404108241811515248237435042088414758390320501076646503846149982494717938140094239148015801180995426230147354837871274562754200575001644227075136674446529569773971487278889961788004278662018378708654524811586380302228770334469420021261906137202678747038414154268268222396452034639639555095009365763970178998298715075862021400763914444843675570276905858058513011920875640092562079586418028394446708586884524098611578970285541940197279812769938167222360988685865887057047458634023458333210576561404915700321968354616228968466806413172084177285653499994260130050765491577695218684605326527786339094309907510702719680136133086959027805981486994457347182685742652056627831785010429177219014326235622264809990019002901659082255345329401764116102733360295176222033723803105213769122455874205481579424571959205026477698362988589011243216249280281661216379662928484930538615829402170046799907479230699951013913694081217636954123031828500733012273919482068876065113981874229556321234346255955211997503530308222835549391583901276735436154141059765384497336675675446888103696136989024736280494415544596383390589736138417618080462865538717873402028857724989779369418196576608991444733703434061153461823378341222918182767313858953696044991785104769704253523808733779446623588872434778229484538676281453843652612435477775734737554999191677937600909679081256492741275113690531668384092104521068419790967579260975864900566774672101794485486111742170660951035680535491899767587685743498467142835488364033904095932729518819775116749585668362173272452660742887346788686851298522924091095320271762398607915105127482298047668139303188402978659368651374660760005984098342007495322123586078652105189489208741318453438455963295352170034224464203605659893907488209898829026927058374114011809824303693987838176249357462500946296790924194969376848059089567312406732754950854065602338426404269177099613505106778184688819821866377887208137874064032675738890917571622196350403494927509184998737477070867242507800183066217572361548124681357025670187117304173930154743508265081064459300759978858498414586679758822249572310405349158492363366453127631443003620501840149122925158810164088601666971251816830659642008778709224646024268840648852831452366282112850169965109827092393338266547925342039310225933771576914501068224194351474994144942772366965907476895624578045566656124557018097817829463620595503086694886112846858886084054365461602260146620368323530767696591722571127279387829166566151668815172755094108035164808255075667750850739560939480466938038478578032261332956762042184189381773642010358017540610074345855304011677602628128422588712691942384090499108198230656155141407745151016826051809192156428763683330975947685271619815245378640953689161109730468244487439645346638396099941589530089447043263702634450812413385586261060848359917539917342387601503379180600697495380090732784733767447605731013008761483009293817250466101900812335344965759021642878142176998003477549781055336511257913380734434648320847512043240650928981319021120796055981530681168799739305921482288789466158702588127814259246496463344117715822173883931799874336073324372103543051786753567525567398089506799084302542649371260004090878843148140995810885470082470365885312286489146907544691521841341493355201567322039485316979633770546694770412758555508207691938998192126947449603148006199502319074176689200711420100875029190574917193589292167151114659122779604192904656920264658738001629441864456987785926892970911367531742121060316488768612109117568850292323098483371903589715638305087938322911980204177712804472946699703062068408926325234132871480569211948591449877928603498150645332275096046471805406613020278087735218531660545071372514389392563401122437225270866712535407024847638751137696409930149849156206650399230107554356292713225342102908008428564029714763240603051401261764578767102110366529508108885416015725985630451751798106672189026465225418422885912618961424048672301282521582919695002183520216033141301843021007824868035163470461319753943448255135192974834632972364512517374720226058462171327640093925935948138074428926934745591314623501020676572173075623362891870875722615348644713000709360704449137738777913833583480538471797200522389364862546556387415679677957659226066332208826403650319214034966447291994184512156390857362090472567050987643547652542842443744592404300044196111347875848990689086229921020795120972899698589483383878755413459810328881071969600020796134836810253371583691199486154830410823076593355444205923582669999919418578389250655223347284311463258505276704227689913718590731292605233504231066831942245699969686643022418511171192167293425505848714098940694636252814755152282133138912228237425100216760479286578724304164244049074005222000257409139414971864277450903794382633543841704752107902748629014874497083584655562754871975880139467636385770124406208243825883537411360346319696212312125001480645992247677591477928041622207847414707897007924272221615422374077481325949865589611084708539780012126389367278006723043513461929477592170773041330707509735157941999407247810646687548262148393915451118840530538081998358143036690148523389457129100092749113090850155578965084881310651136033270895920951274784500522257233327112347543038704226435526188655592426046324794891119772562638594896458913874788739602095106916727516663315859706230835931511478795414856508003395538268405639585649303141170042406801349055799090933646626836384215773376754308231015139165430385697086681141074168488114254931283176422167691714521855269414245777809667905723541205364954705454713316874742355888279374314300289693233931274732413711020116952319614090507288988651449783312673614343587388969813110717710647937412712567978372487702844089459358952289578510713517692927752410555941072803555070318718378477045969264016225368362501975123090863098000501538568294269356318430781227262119753901186123159091803853468954751031566053483069730946365807453708047890063266739828737754782166197486933068169672205782418490411262106806716237284044781831058140121438988881910587030131803733707638197477552698856480008374956604317534670768756989019375844711958202014168553854194609906925488466967905343153487773148291993678351175845654946453119240070007585616944340429302200564792461062218552926598869792944959731265983237138857489617471872421413983529309116863780478359192295710456838627353997649331529600351879302374607014132481721196224101531521389426117805919467651303393701877527004252656494153394631522399229152777747596764693665718250628399967327163341699285059232151471744412583733627785307123597962279037359445561689469272321144022024910645149078719888948081447191569374007363287427767885126511644745772731737917266775750954575799838543246704744933678492937748833073702313943410789365072422333886708429056215183710482770489546216428424592909404746504419031024231032332497066041895795005676161114723269711734677472145800453860013878684573493036331739575012922527171045272265541497802631295345184138160657992306709351481620395061788025431489663590893076232474542072869586612372318780843845595424513980451791419754576166174237957195398417407158971876497510829811768689397306118269816320575533383264048897493489278914786729007420204216001177978022372993025085730157604965622082711755135898411913412433169767582633620029640534560097391110339417171986661756824682495335833865297830363437934800084574399859269686423567262722327563625166166047063756388960931936447896063137454020173217805571322445986917470243522457814887377725975205445611032272956699215956168617018006497113353183414337063897353352578524469540674476620065593203137783308060419042042038932809963313187934447442621071339789072839489743296190417771213045448184959833508381864917574287367203317821573842519936137093119651835626741342222098343310427107773938985176103019810317706230673460698618287019199829651514719010401289383593442460563123568640331233699439113698066750492278413227968387332037227617426678601712713779563356728501580913063617241632931068113975099146388954063748135345691024701667181855331361416094269805353285843835442877187620267778962430912685164283814445466463053540400424883838481502261672568689070227636342379068648632966599834146925823287535740498118307469478911126219487332523203837045789444893180901240629954001923726872635867212048025835191278633005941254360438188783891321058893008136774246478404667632466029338545138919839108530579641461215943798008063854663767981708554139768679814523989053169093718695556190257214945440992386795977616966035096751170631476015540771759660008428139072690867621134718641220799325439946394483582045301523101724447192827304369892676778933043911683123453280364156525836287283419933087902792590954795993448535554677490679316059159906429099488961869426964245956130414781688739312664606546315435984915176973742924849219671911600551303420657595864389362325916791063450724076194793704210122242370577243679058657727588063817109464232706841985747374078655422950612505456646266291397430616720297778920192242719125834413962495332520794616989515222574565089150202502887574632233603660842394834448191595027553544867924734287568888674583536556564302102354385165043621607929254743519963189070506183958259424491134460746129396602790223742561853678647863174467568061234807124051129737742092226171992395443837234045486490669547716421301417188712381091825790040911647014488501834498047563973556077357786191608292874792379949786039667643746411485575337917239063655590372876582232427658412000902233778954740923961012900214280537724349049161571542740620208052489051103813855192672453396824795163035769473680954850305431342690307484627345008475694056769381171412831918539012795741778677536081165568472270813477968087827935169455617554883154792555744635876960382897811277473708682959765178422740389463128953509857363514153586629061431894041112084974683123889793600219152839032230310710156233756049956160654507773197845084826971004821925664887041040976786881283758961310889723681022710431466533680394644089203210142398906622239120772832104018115288525791724783053687288178689444536152613512326111263099564681647327227103011677131397587615226397905407261987961805761893258291486124262816076173848436155601665095687386664029914054973038563779837552186482901912660536669213273483144669854961702623274218009490879596346379862542898754803259688396923219596994849999853588363979064636642856778002054760425572369062472850590313691429460727910794091378919002241860554413275340934985221576810410651532772341977773181319293803984186492762644136393764638514959379718817923580154415201634753017242227713561790715918580928838648917701455294747071033342088069205169651131753460343731623325835053234304898683466395711210301540419166822601256130972663442894332674381517248180457928759859607414926157423761418673154521879726028042195558657964716331144675087829406131509940530666675074247960322189435782797643068314978071926456946234354536858101014711636545931008228466211338065124174028831079858631258036768142812706167979890880579998988733565104247806673978083658091246999752927439041308189881729240210147388575335833630413553674056647961288882400208765330721001084835767582687044336271878220493514832255824952924707552980722388469859096903991297651470065840288954088928293417977543427097045806771074199980620035129951328355955465768030882112380204179348383801680137644570614824228836375352748967949758840955491184970483112157463418107771323264067561582910643440530818137189164100992491037203650953577130526450410241000903552437202516610336160931917859178470992000620887941985851484501004818779996658505490923819592420752427933265900725766982977143548649752201451050587338574548667203195427647716063749227711753747252328614955732789508215470860545296854012699783379613600984848641756864295597949294701386264842263602274870098101669110798897058855679152359458924986396844267462062401400733304104738415304917484764420477325783501544177368544639772625609675405872653718699490477169503752019905443910026734939027805657381781058364906251822633113855703203812450496297295519375488807869294074411779589531529731080908074813832782905072225878033345531089369215181138604717812133947150652426313669633403870375413318416530587407116593103992494206069250852642932163384934913558157244443776282337561282482154884587393757496174152540465745919222347147051319508485655939340488080003813310774509731345724652844360331482846154986214861403721566970574267599041563115938612134005468491875196732750505653099191447194529565387563068569044127715540563584548089708968307071196054641328491098009406693626462808751223698310054198996667415974161080812510276105683775658363570638299875004659158249124307794468912195330928376549265868179503778516127038388958830611544205825788710761224341717272268430742074638321261843531710734144983811107883113232602843414949506411521549716197620134705172917275482656079432707195248331453600877235256582166385470427912470475123942454503851919402659265534699454032527066727729268542588743251511142977418972433984317058224552711332946449656905755836667607249478412231427267863866527568860255891926181873994631639227923942589610756500494423794704650724345729850916469225963405791001906232233186133316784286019464328580381097842410050869928084799200516634206530873233143512324765497074015027564580884469262722775187733822086958906974016484682051521318108017295526200394517724332430228441863906487827197072370048080179114841631380789278895379209385307020020095170549278399331586174639809660901390236765436664927901868325901038785029929940291450070992338263364218494893818072674962770707052668517361465823495417788175566742540840244556755144984521413465457641604532438133161956946092144561072181769895869936877587976375892844119694787943923449199158387009636361210176811536787183057929737447099747703307359617224848438868981766432392964819493378981600106683130472443866450973761049262972984248199387393722190830464206546741852427997405730521833423189784561470383500696748444599866836140430675908595880714935022288297371590194331391282399892512751207288011952992599420205278842139324928187274759064949106632059336775644958548695409577278116355576972496728084790760981094213341705093449709581826921180564348327256081544476084534420797952296928916890944197712948982557799228466388305242247399635383968720609835578179499904369976406022474429990261511315069888365078844296238410818912314741963954100298110741408842966860381204749586874753068372983101418212622520146159732889411612963412907308328067111054774242455099827287399976441289599223774260501075368121167258864755306448249635536458985189994408894762878822686623515759988574823019275611926377672875085762366136592984748243415213094852529985666928019856239086670656136265609416120919771024319048891855982657895191125171501602392560442893133649179275129860326122146376193018690932516890953232185841261220106593128803070042070216189438485880940997606703570115155743550492331807604050092368430099140946030544668201910301794932405352291720336036941801760944095740014262936854608892265795420285091981949655133332312256536622510753363106982284594019851478045739268637313797256453034191342775215267147348468420678651485424985500904440387012121999266460865198774478435229922502569775852844915028509104797452559547875272909223291321849114168801440358159617670279121400294416631964076238313457839503373892279520061629607229010538118106695682080163994700283616503806452793955804537506914845127780844961215951460749400526077710233534877533715495554352209479415395333438415736866106839379868081431999206548614769890766041606404240461111854322360344666674127239618244334103243862269389698846392172547016111678216463981587722406708161195374763602096225684483069614367159320624501479084688950164456274885344005596383714327383256697189271516531224725424504609889612117071662694657370816830650731285853289827933993440369480010565745841442919222668962972567290149751334278278660648344441133424684344460984641118309668117664536254367086818559815701532351382200641433177812156682618711206377177172870575377843804376546634978546322397215779896709277366053008447395676854123593772024796609342023707799892626632633283783534574435393286799523850157869141899757680876206768345155667024192100317893763494890572716079948464696849543910424351998887347794154041800002147209437031769186317916640838046237721703793461517636424383588890839703009303140407263614649015049969311199406661285359735252227693225188582600479262190066910061732327217984450253013745676549303642728151810098914985249519735316011410590495765546101385042594076335211264725498155051794499846957609112301932146444166337064405095239083147619197681564294237139824961672256211370135857530348908115808432393679405451591358826834504678750891116472864429232924582559087539428625731545576376979942520606402692345222357056276776244354323015681107807272146236027600574294208589074493270893419256104644140679327885173325266813092876441666771771637889302049891510855348064327336902064290610737246657712956551736485350824213045484514891579192173857077749531521745368483560587173338135910632441579561377154773552435625995523137764765914177089356763735799504720809080487091239490541609373266444718627541248008689959580970399130912928404636340779246593031625501017631081893696822294596903306732882429761739640674849865620530760995437776819988800136390357349284477633228277765750312022486619089887012754154547925553254829141832949125313652920990178154187137032029584137891781926612011889814880302825534609620496193905270253209325376947903124083189341180285082945203368319814296746320945332952964562003546927306145395764341176028952278516336758984380127352369449265191028674249960239135503775603473749411977041351776743101596287127280318757206260311617378484353905387283972324558076339672052994887679531508271203718881577954386522572579512269759850513083534485479084205789715666429953126373247222654373671297471062435028667525787952120658325519605272751702283357040110163571869497066039176309849183791243374559746504613534052592769458180903162212251089705267485937915865352915547002811552503800969938964622449219360134540998357482072997206774845622290772322607899486554191617950286105134562279627742580256097840246798999953079925178227016579073443780337531124962942999199424133720723881796444106587402709519928466432982319160294070062451993903977775902917052513687301614521095989449759082727401806581639452847370051132853772221971462342523474987936595812845350175361911954437567648016609794095581985921141151151033951372233558313531355655763953244691687406364833192707745657375336693568915837342481096855213188358607056116226867528478787841727555804713020812515088886126281337328496469747979915593779091763469030493252989906326330781906386166977087470258235056799640028667813719253319150965858072278233969120987871750808259745210581899403690037000935740650384336669833431947315307105467937710179799956793029640047643047117001403277294113306509640355609483993868945233477499671997962822057311782682714359810754828094512421039573903042602474594818999589381368363599429946301268403904332846734357663617871240298184052233421176186471384579687722510183215318283380495574031274937789560943880693596344539528893805467720114483241846473913072898362404798333038136999673523583263234703526596948180942072913721388595698932991591062228113149382859078627310933408328702887605401978440232674697841549742761980698738775820822881855697613321472173168367689224587985212612107554514514519500908967884815313380305887948197152506918591825082145840680258941547225164323152945282526190789146168268323915819852706636106612107275278735578844742217688539126379178508660318186595933231608803285978246527927263688721712156877089024677299484335548409259181805395599897852010385745977278682890423473337373431398661645374592808975361247316960160342395199694724131696132739167963452911601231656225306208018250495085592263834602188367310719699848387056555824869337336353566245561662761437942087501264821162417140929205197167031183103742060858190330250488238290528757408167408147545724447876813062222321543640214015843826551037896811982864547765526888264447965433705626090940231925610863084884683427347009527143128858878138015924405003193985083971847740257740711476647309316276492111274614885989992777901630918168235589460148998102333927797270145002038992936517985033481194845233579953202142157740534825627842895690076531511820328109606460436346177520764915548756662267766255514848604930483895121026544379715609585768815160754106221182704565212596283532847711216046209037394659245187934901876899709481945671036904522623066112552323739864924510550795676986620857453049101791779514146229414169155050804346514653453033277147112724267626181608803413579681757762590239158606369296022265581529834808694913740314972468422411309329651043325930386353966665156440292915460855189772263195681953621904158338301837056921417894863300827240014091490844281504253062994374753793781684652316132900903071093276164762904867359794579129671924184473183846632586997691716050838438108213296968462169673775247482660778510538679169210825613074628764601183551239511672846042480643235110319029252384911222312762680816826148008545337092898485339849492328362671865434358756244752145724182217979054865643420609982592805244323711826560435664120543342791831934551584834688335789953272464779143464171468359280672044872066674993462849618191008147381159864218650761926630744478849683359039494538887951842139937162939507948660053060130866416105420407915212197495238980615516788662769981817688275259386605482635222153130517899330850694873370208951068289717279638796508879270639521184248060412127032037308069752538474781365306217520429194537027957966117680871508816249125192738708305575746588300317843994310632201915334766074008974475017310110302963672344194836796652245733135811593484546333686483534908590976771396108844946713886967044433870369762622666391083974795938819970135135066091953740381834199715287434883828000287454609659275313862670132444703251141085301916237562859426503004451891060992883287112526488350738902883050272837046842774172099676510836444710531861896920331444660747841185688477519022357650117555977123691481672596130793093097130772642818940323421776118111720842426820398374540761812444368892325444558826015982059371683254030489896710406648534950200028784810766038111936483910049346513912322617027414253656295280121828114169466760448984244297789022208924851001247657669997421168665167166004016874778938982741518890280603501796708355105497078537291979312793951924594508197446070374992261019322427372382513279799753779058228649069002784240575260587721161515872732824967469327174989660520426439394180139359128070089680856257237105890659417101265446876644000921145966924114428241117924129863558599698624483977882114667007729811429791154628639679093867992341751427511738176519749665364016158960055164422593007890680181351658237647568446380720714473572796593049751642912463409607202020856627325572373041791650851283732770701725281712415100894383484949971241490972243968987532284924197777325164169270751519658274602428030842941860531841506979010150426902411251383888136041559038108690837695312710544080032414005931064459273483437894689094462919784948985388412771049358907277476358598237636631766174047024773609836336723132267500231970237525969916041849069237036530874679044666854339796500214570693924848995884511576648863646677585836954751160630460257793924869509892583804750822779570754698236267752842430173082610993873342139461089395273919477119197587084815160677499643870619164739488007490886220877982109877019891734671209542085057695732284020807071611527153126269527663497107373917735903562419801904210441944094866035458913392530379661491717375107209408037870300182137590552766924725487058877978312881463277841256245459519987176835873290248068041926987945776239997172521719677751870899773439819116681712162023082036281366295526461156643219949927958275255655699243388480792115225305742816607450130211063662041907488747917599564139549433954071359668602393446449785084976040213422632006044549558157074930209195004053598079930897327517643975814226084351913694955759005189996973075693749020146279870362636345590109984374640935227344089636011985241189669847393284682822345366434229008445709019179077301938177493859263332617580390170274532629576533826381778168166366479220831172135000466568738363882106474424717542864563410528443210531605329159372739163112520137916021144306255297796925769986757313495164425810801262572774498964942568363672931239179696272501623852651952018850616446239899274003344895660023263154646137073822047776826460571627870715443138709115566579123477211649761616842789749619597610996624095871348452641411046706057463466930311884431229592570156874111952198382360402730881486065986155481289920521181249050321559531238826130802935529257189105568639398577791806604277819873883587347762526821669754803300525884893017003303675838419302442025540743089160791607249844015687615662045387622915389490404671827079152977057486072205694902039868094338942691969911631197967629899145035768877579412712807077539978595837470568145213405912889138867214755463199649956287157460132740945612638215791708187062332406341944232191772437032997330613154425870825907704457506341850221884117958601620617696890361665263305275284522876121785522641241428460875443627697912385032410010877500516161654188372801421514554276691471250105177750409425995060988934774858139847353282409072687893577825812552617375711247269411420025260242989094677313521467995757255901656265325706952260302224799582996493203029077787079439722175799058895689565688654043417018690307153923102992461758800941711081573922948551539548762301377371457530996752380317258377450979339844227827236023254562082512450434606250707617410466493410637021586052042591950352840281765003802250729492333368590904391873291466301645289625970849854679946949426888477355369899064842273262203166050339274384512689375940842182859225496004233280815724339003631691356368670000411702631316781524900300949950888224363147230489965542977548961258058202036557334238487375022320511303410655801837870514587174800258940679815293066371461049363658243476307507780545064254354531753142388281323501882359309559458287195705268565898981206928995243237922265484318914739768950114148273731707149301736411603135247334332371115924042456853149522469784339196308065775901101758899339374672839158113706907695928143345706745784662570783099601485151892531209071217857409799867328330258460412241837676039642755525321135172352436478862971783788140947698743557463593026897580025874564331886598955862782317325285298609525722934390133703597689903944528178466765965666695405161050254773865094300972988730653421372351673095588871075768272180710080195621504083714022930054318249415344671138136085346356243976200709065049296931658660963855259290623424779910976083944710172876971547716622068469162732894611207311454609107143894772749126325595226022413031223258109867070398006110475544738454749555221737108773433907596078233091467746302316108359221583082138608429971558124944822801276342630040838908676212085691148274456806146588682935314920795113676396870416041938975537679311227960408887062822766106649571577832154960873548797463456261432129205855330068705992087076748925606739468856490400753721767371210693704510607732985836284174537412833077991051089954910422794827913687494401938529223204263336304407681300964011921510135131267753099530665580549863024935581779589174665435055197095609966799055129139486838248898455568054779188112970651102115846865779370217535700221341888958578579779840759197881623412235745166860349407685868087113036955910091346870510198735228748375319453764188021286147502969896764711681551879797969278887203004667527126957838180034953123653361159344231509899870413151985239648869598657205096129545975065647910524603519143617895936001608452320663734222572136378657502694738965099981909199454563054290269382993953787362821141610545910316686421486987720037573914481833553702727667713926230947640277525562193071780268095991423335438798922741703050341794431204202740076456270422569285426830872755146735084065825934435210155254688467204326880795167977427721659804116395172303183342922282658808550739996112497914424633670119953871783240361688977033722897772189155140207733908876110581683310710412947661552216592263091552978926175712458460959949341214547445900780007572036652673267244615519034387228755850292657903130219748267613979660861397525861598760792747875435831103170559682859066978896908752669748074700769853244337271088627267083087262072490511065280944992899617372731772346204176299155594246562139064393839566140720407298865844638053684016250478365516983795528029677154861422308709071478450607726012797538800085389959342772626557781849999788735385624618497245572839722504108831365849914356940154249325182330915283849052753387378297474521654652192529314708306662492534195434815389012444705835226489316493874158686923956723499728772440747227940836594409155176068043578551736707867436511284675143895161621389723073704625313214354347721052702304125112403690645058637931601363556930421789435215306293465978155293280954111648196075036529729868036456397834794528658714437163794558142862123823888130721722575357104945028887824265292194107155507997426870015452239045563143049638474994075544345400729228427080883298128340446599856708919985770172117652753691588078561992135622377919950249286851521469025092860465509545837750465571106781836767443614077169311378881176862282706968808628520181764377111365079607181020596625491440619533064621273222218039471995046885050888301413956779071880180740231541128490260965601274827327034248641081835887145207055959794146263852168878335819758112719762448010797394344822030972811313727576575732171276603221773528666235316493987737157303465995928530871465788643030973729692491527486765618641149818475963021973866528727131016400533504202894594735375579686778941642867388870845039145318518526423786475067704725620016090986158155623239265793640096200548479034489160216974293157735472037952696325710425568703456014676883907727310319175352282777330371009575120117716629624921438917879486008233979934094358313430456234076087710956774759913843161757522587119101966753212234921903309244830290029353334214120851820242415698425219477280429905760753115833785360169931768128048437153265189943161246775570490908742101609995371507387134441270574590443467895530122923110214559744225880107762484801788481076505168177167671475818076933736940028997588548681908814790276200357428772013512114023793075816626393571232893597335689828902814092401361815835313624239349624287727738825187880336293497555871716508734986730531806141860365841342313251555819298738375110518558079832382946099599763259311077204044127218161178333636616546222241112612608410321846051780734810637192808501665148457791341753389443677866915710397742296891067583774609683200022909053508662414803950263878656302035824361787462245216262961825751554342431605192973366119123608355449372037498657692719706521515435441158610029201569131572876268127970412300198936823945423413159441506656248571155559875903427338777532024256776764857429319146812364986148315409739490588581940313865717829369447239259457764051850736624464729611261867388943330400293518408192765298201636480818532916409455423180790732875996603720122644453570360313970210564706663669269921865566912654771300805666187244804671925718209636745567095339355819904705841832265357628105788331405550975090184287061826522837439822687223742674016974384597294532513854720356274003214064322300006354551614045011848498442109246817660743947566791740955715804520708489819782797882614295914190912115752334846249802344226172148792830200986151709783757936598623956616881706440860973251027311440056629203350841551059245956596049789597694820328834865107930323698062732338477454558450994197580309088012714525898806489226518516329703091717838693321358177695460255713245778881013513094859261596647813379098302804601712012011436367187686164435436169089267065697275750529590050637904030365309572503019809496441918860926674768204790064876609831575540859767046855682520978267221175161156483314776930250603112549014648454138683139072890882182084184590497299799590947551616510094057790611170292218198558836061312716564645536072371571065643970870319735536582824184208199936016243093499462999342049887625923439532116467132269055089357102620330203067201120250156820874579700742568451120913149655191654312563816658913317217195592074132011307943363934874896377829263629062028777871660832785792440258453712908529686926461856943734167586369304753029262908463626249242387720281201189849258197503873652183650665060025919484074728252564252601409413572878916631090706556382807357658491966520037188459022827959134198310747431358697217957786502405345707269273697762980358102540166070105653597015391738184414297183430378554748933485231162325176276900148163633083886372008919275990749801295181684056883320304071270579553977080101348372864806503301471968424578395278578853235689414319744537393776429611117059431627138214129111707794325337162439255271682315521612250464814164559921058766585985142364989696519764234829171213462901475016840230077425962960572240359884067676159897840788758719890803413562093047365519636530869292186564808372620478042101277801797251373379585959264420635884144565188375226808921621572171712396095929201890238094253785438647031157230802421482496085052673062095760382438854276138214012817982149463409664919754480632269349423377606539946638791945294618925416940640785912015568886967328358286480069124002826655836312707515084590215714454017706814611597945289679773120904022731092731434552887015594401980428255266426377970102735293918028536432936277019775360830815116222701803479807451367868962547696389142913301211289715988853603290647961708047842131654923704280426306318020930198833911921134326061485570897955779781422877949783961589995557308381232652610360974022340134756097078954753206723950520144346987164556964210579524592725897389362553786524306737059065593100289451978149860636219335057821011572604717633524526066215716284521506078872782546077342549873348371572418616782211420247469277141234933886235226279194516781221483921573611441278548859622496167154778574338287948682654546109510717540000140560682230600536812098067343516473348307131778976299332148849624638242802051659550123988396421069962524842576113502818778983272123919030701888382615581151475042942547024522033582682803868716181105609966193107409614151572218116397419388530998127813480524505095433657660487030657709630718268625192312743020652825801356917799045389507626685016003449908463688337990259652830911056129074162871219751229626785666315246947930565626834968532867812414866801000542947635828432463903309398963745440422823390282347508455575518822929674572498714536577702837893480230981978366164693057326009576530562216200539280476019351341373390851322896944258636630504828166464539536277466918364050121455025040803054593773006659649701801688211724445777158687157609803986222207857470822338149808006051740743123721935259630289987288474694445087629010490581161182019556810183004983520901314824989418173531013637806031621074243967042865725480090761437507877927033962377312665434122057750940572241895693834529248815248755903294987731291443122629675697243788185180022941545809767342045980273808885097898596909731973439452241330600719573251310439707716150584868003221980101228022628741144277415940944092275466298703342732463796056100369300117349606114292698816010334507208665718586860406314139880744522460894518972284469084531870146624186868590566294007529658750960538122070498110421574318785352560667057641820855113986165909519686407817338796933280552792617558529835306500612576914903765224754861228243854395287883210118876734221949572748132987292061740011731533161068036808142450246385696879034234684171434854020940312814983258560725565246980970793260181594300554773548525475369605340340741986491876122828304736612524225995969303133870005194750844839327432522855791310735642854362979350891258554849575476374063645504348107670194599681560810379115217162669923212755183401233040502557012127072578412889535434006175992685965725330476615666027181134422348651898867810113472522228167632371245318287525219858796287485232748172607132779102835406146735469909762275907542606408496068987819149808659691942509884606033025493283027527350196165330877895566779655018730842003513377288078941135355212039981440988965846716330658638983796584371324521922228763191316371605616549108622658161466746417078296558171034052449572811988539622819892649654971482344581895964706654576820100023270530436457037323835368087930171048058002743653097422488102254148414697494275081710526877076643771601471166048867605467165591936287067849161983725520224708869406795374064099289346545376379445367128013371041817323266276011886232453254258504266925227653592349324484089676135048286381732329235301254688718248145989143561902154447568286251133468349017154940677341148582655408642809189865483154093891841749512798629739348189065427869415699938068741941519837824026016424888619478355571351274807302209054678337323591923379180687529512545275196242981452563311965498768724850356552714693020347637241055688487818185399857033940281071511173245713625490066413688479684747546410510448495193547692697665924164621002809978501294128346660341404674097253896600106701233531186011351950773958404456838468695061077609962790311539371332025944589922955436504672611958259540591110100247397303329493996585464259689137452353419811090067536796721716513136559831280354676264872020401184950503768529249005581164965348503044056092830917587595948143087422068783213633479914578144038888659742119844853930184110260949241774875739820906477862316283410096663737140390535162573384388505459828495871915031348057142228298001602370887036479973778335675887760844000109965672610901881182892051589233372588051086298949769519753279978417995025533359522663737429754249561686091258723477426579945897278198832108150139712662884513733026155859528159321576651121443579738617649345920561313437821789255733140818815493572759025850517238417400056160931083090039661202532611978048168328267985067132620714368892223120063964770417484282717769124310511034652426067955135617567279874777037065925404282941005973929888564932098555276490788576727343717024257022624763499290795063346719178736647712499680827757301392453892431043691208301503733967607635025468699451028739166317301811973464194227365505014136756021470656189658046872847907282761207792132387041138659556355900862210000866818687729662387347756131099717489666568271534835534894551674086234198144001725135056087224748026023689264827507542923831906609642451896085610492322822117895059710549571710389879590408189580417715864739140615589883833766820759612436202803513638817355646594634970108057176384637389123798300976821365922855279554766888856152123279402404981078364039735796911198719980483915456543620486085649057609023030890341275601111671540875635229265194042287695627078245198941735446345768609165696288493415389371147494143641302978888531375245056535591736073053478885343905639407941919695581123780340565711852040567403877041377321081110488326781878235586044914648772560486966401138483044412027343055421357154074958924426629502925206611905072954572232098152139781736660414817236616315073336928464917896049717406953318915607607851372695291635077003171961087269568469109685688164316168623831180725782215730667904178112797205679232401355463187904901625555626572710525043123455243483673398855151652969094664220507113950208497515375640951679781313901507767909635773204750283527653997595182531772406051871578133410745881043080960081080707416324792658356669984615531734920478472186386649979708382772506730683525221639163770600080057909636571426591560834383708976108384076362835765240988070702587111479157712842662980878838281038818507816949971784913939987359705604566200422909130076944097152940468245071192190071654997327590014348496387090188948184113716543761242254512234178448191692621588296962287019476193242331261582783568968870497113558264867032190333334678357506039968157784422625678382921161098882509582273245459954599491627765562674074069537138434159853898106637808615068632250543751478914791495220054949043656534465668198303385105248885155622644624942637385485576355944165266268146647841607368457312205911674807036044435183175641701500419158938341349030061215683099769235943444976437384912226000355138793121950373605156520357260423771185640833005308504256866793918643795570860322862989365546891290128591745408299781602892809237056850389529394354179481956093211136325405781882967793796052889285380313280017583247842769051508429679756662104039575839486109996907305295312863662758048579101525250075097587009605981258160827212418778713884742336075371299720402264388814843702261120201307889873262099655498333486332337450105327192260398312682125884490583168215664204314531272333822551238635545973575599447728841523002677621935413239704401106110204764742858381065714180393276016208240614140412374517110219471861825850002777224518672186960336267815708771390195749279719992573393210746790020619415540138700339558377449069056182865266372046898418395709411268380332882911999102929016835653074752712907150934366848274496196430752382650448611404081180771424814889630110252573537694153880740694181259812786249011293465816076228544493886897565838885376020399000587417341538656754444144167259309801945837061390782831722626787903984800584578399369707345323632378582750795110486813725598589577898383125643114493680616820577299138596375971653417136613669953393934472461082010252050907252996820866616525388764068523026648809437118858323180255500559824449544566810958560172158574751406329924810402417199777062252723105403351425201091155160361833102440300497266116791238908379150065507383195725842373581468514525808989997535225526664175066723654494068489553162120674361283873200139775516291622257349889182901993083820119413589999824026214910733953266913108679241929661200917987658052520774152712996511793154216963000272048402577975260797452535670100894253942383187934288030318990973661723199162088624348160865831096215573973148861620172221353179592606305450104970802429729312053257277391656067857707298969342454246393826389499755829222632770233372516689971878655856978268607860928382606398610714813253866577183329942072006478267366495652318706528261695747374213715306531841350345624369874067655534000947907282055860095153365742735810280733082499576273668133697421784597702252408904417609695866453632725893602193039394055047719174471612023363242499077036186349720635928722778833811743536847408762358496761567678170804834824762961611873587068909054463329546268423167158403696662333464750334835442449483144271170154073626453136903632268538506072349618840161117823113317749993211905818936835698574573681823495089178184861047870694364958562647399922105979337688906393454686461674183329879967748610228679644879235983456800884306627200791760685614031873949794015053227184747805354633529090976136261460954744626422413072510767844774899362063413045006448541251509053909796662529987616039899830840817138221672149684826339973966087116411286775614051288957466419618163395140951888174785046811277914920128212470689399468521843018465101156304371746825416534870038910304503718564189080598914835082166806333787563526212840882018209712490913438055905308711823678130796751337475741210710205469573148477661410545973597407489735515884485469903444592175515098916219639420714156117325925269059978930642114760836840619500706630438528563475024881382990081057727913522221272755530617898542729018288943176021877075015786576194293329507343744331792791134495282503605515758561255548218530430900367281046861992512864119268742798064566853944701024121791781187232088682566045495689628908535282211317182284693191892927901998255453663209923479658852969356558537559983984196487907526173513297614562195493824903060433430515738501923565821270345419980082807666311298187112262807896308992343268974243338078696587637178248120770884095730912494950051935881991057563048232960253804419474848025356783374672308797068860720728383310558121672148681596487849997900820817516001868890027428760821756858941163387489581783056425461545517271350257689380520147615424608696154669043501151590322490090530968366914297107715311306859374107992774497014621323499716419528399826197593346045028792250964093378051168429326601916184719280635411458812036486758308838177577845058592647536004398631730485033676036651062338739247985309497521990029089231099281107018980384715905518988878578381104576093092919029666541787474912447250220438136816693698982069541439105910884533883896518009836118152041059206244038533472513859213878847225854804964949412287118119153513220666377452209529442013986025182431867400125866528555622491503783256940006545186675637679655129099374716619939016236099932705120734378841227269231394974862753171150563138864653621192012719955771555841943838173415145699091874385717303953735034587686285495467641893191574811425184770839117308543002825423651230341305473269369195759038197872053613526302013646018793734789333790322589771751631164007532000656812520165939348129926873039243315067788983984520289762987378991675610993784872491817930289726582435984155937969353365331253648860121562413436979928745391779213522747667715357424721371133506319371847154931028163820789516258068640715401252351268014354452063778774436114361820274164342434097254261456927535713014679636123802936322379538997434508998577813934692998305641913973997115459684012415910346854058126855832068240084399941569168362517000968891684905747722252110265050239984250987670757257124478225114094398430241524349084992831450448946607494081207893424319048157257111193162673693004753189823849643062115277893709130738277682731816518053304968408084291250247477575314409253152333003815206649370114955222026411636866384693155780436074241421121318139126365624248416563045627755931713299725717581118857788468304868414749720281898520435250781648727734043883467370564427833703328651424833634978856897883449058860624928217951307449682303382743211480267580661117972138096036172359801173541087981412817848872346598247391557195641427358131560453922604539244213690037013929319430333875156556129831148572780398535675520182171954820545740710115778367415446683069807230704499139267761979487196840932771450300824653164387358226346228435550977234249142475380580543880782205267653557485703076895195271028606949925096255280726057644700738486617667995237778324318715642143616188926724287520115418972517821419450382795608342103128000788516321802796660505302945741532046713067742015176511901664892184720127972124704361042056874906507126989367796869220469337820578385176530244165559473735937943037859802856325865370487427419137935210658262576002961815663209766565594390882050999469720577244491342406694397506356435140415635546672042483604298329093799275619430249280457506694652396496513232223023837801542670930163855842642355524642731744094113936911970084629248815014761820845187126572282879711706626669647077495459584750497139031607179895593145483332474938180417270263864428194719421991261663254714061131762220143662229303878839590781188652023880002710570611223437344974945903558708638309192321179192984340906339079103983944322512219924625667796647672630634303352847566602981690902969913262387827206402232079189271305654910959838452622090501902325532857630442200533162045430961773388909572272763402200793233186508914628416530190565051427779101004284512153448043092635983719723886356240729115257017699761483683019031622389242643988912497590343923138206137621328164354219362228286941963981148381853647825031371674619898906027221963904384476482974307533015359634122488837969440563834145919496189732282494916829839189680997198142533723370460020107348535038041935609268152192000004117382538622780295231095846532666305566080031104725221547841430522808720975660479982023879342498501205322393697581796027787683010194149670174053631651705383706552248913244338224510532064901838781496992485155509430400170742518140717862450988606065154443793583719761525933673766689524814580381650057720731641003805448500045389849005855027342409979308216577203036729407653112906649132015917198715468263546022056033285640515101496291428866038781298497532578108281744710658919953208353798692347308773650178863929353008499572300669349286391882976286158926344939957971471889887938885986707712354627799487258535516527082227969619661326893930523935206589450630391116693402244455979529513794726645903688321817521999951317830967300667931711008288483234161501843532804975014621651885071137657788235007257133195809054396650676789534886503446731588536006372881583218891927259664083357062874573638243243206951500002610094218249835538276825384705927190086552990515869758135166977327854765677973121070128004207828169738409474384967789239764962105385258341805701641120331443184344027385951007738585850674926698017053449769776476895081039970574042566844214736546948987070233262381581101498184359129419725475113156461693704703125722618201043957806377645582509834360116186164068160481953204918995993136118904630629964037818508707637078950772911277178918294829062775241904929827206435821950231995070721192173094549398271339319617964220800064440103612551786559254436171710098406038555804978715269395631012279230781787131129764651887320404429094969409628975370282382003025383810176330662563275292239416596767019854417525581777727362481043034174701484773171185568193584878417098815697121050324480965308039443631517435032520688820358164740431126125926009066421892950990967688752747646767865463335459600950021517164109926349640100755528857280076772416533172604015441170764938074617840406558387052581305004691940109585382661990338815847670919948187467552910998796056681619613817566883694241007414784029524506594934833080677583216930697405160199844150173488735290635909747741730879677154004935561861009233187626305271112459226705111502804136828731564630303775519643612486632779935253852118749536145188049491518816753121307440228581400480908046622256455586869641039400048039132211426883482536319227423298993958743999770542575843877368415495974675771929595407411024797732297254977169654709936659359427441981871537258394941051840201525955782216290868032736291853246413207459116723081281626333487728431858418199148486539159388132186011818835637666467885624834244165923749138546073186904745044024085484323239609319158899630687124942363757394484443544880554429316936219406101093723011115322790960324612925068594655669871798999705629572847918817058176101362270319906218107698321322124080118248750698525516805631442858542464146698111317509493775140669859432291562300537871157778367203827693348675842409683396886488789732461314412528463299319147587213791971846915132820057520254022948885010869837886278137758148046839561244565430660088096671743838311047364960366457254554599683575895582436445469140802687909996633949932318281931009229193969122549971757328408937720171333738891541940333135648135607062533976766680327482360614319639203420825540965426645218959012148278735216883295997201372758875050006608375548800768954728997255046563631781481750053192132224866666517085094760682093298191043965115610547528886185728626095572717904308692423444616045126086775725321384540552535711423032404546421750014261284882050563656331614001574503617738657829480419406209987666353404642950880957937045771685911247401409828744186594160049253415802903798144903329309468461574062934774009387136881726419040242940064093843445138459637180985243260794382682533690840061950114958496897168186106006022940039084653581682629114957597885120961447174845829461381531485837058284847886499114647027575911672014558849797011451079174842376824669132534494915677348317738572215027463668866228118949140600116751720923468607837424257924382807171588031020749742169445604216679338271979279650876463392454485780880741253288506234549520144373067370858336666078499572076441595288515895240677996718439816702292166346400138554583185128971078065569327180424078374007456414414297687923418409372306909548785321421795933487799727554678512750373880962111044612263876969653351084189597960069154271928107205855601437093108695750777338240260736170768286977984252708347419132661651837158054331015184660134227826143675713380002305024586260334401982359277689209252632188353345384769483483807176340266681914588684297105113783828455002614663967380998193740406126305030197527254133661729187070068755716034945962117231252764973383095857643291699886270155846790134290056978837084374967193375445168719452972996111947753240685107061462363042049646723076734225123647701290649049242094755684836694308493163353191129214307851778475737122859444398136470218159636106827755179177148550035169857647205659384068944952343725207555502960651820664749059575750180410810194168171215874933078313732906197698656890099963042216690440145612785243715704688980709821067151201192023564251674068276043897979605486955655123438119778809381598199955423772970058794029936994293729820182197744411513139840890496521981245516348867272996111672938139715823465590646478757674059423033940226733547777283481417548678288581866004290706736823317303905477004690262670472869697479744050063375415375917728919347923963984532200086016236976151226860290974957484965206058476881348537942258748930737547308373481263627045540636754594811716317519232575534632313320700696204254981327406447287442144414740315952458324976890895739353647349197017804131437067272647748876475529438602375297990724691135061447430716914214348326801177237001695802343229422585944978188194939987485324902881029626773745104835780593494621447610069278201606450775063552910365171141251230742817831860002895193373731856507014628235794491638520908189654039695858859347811142853819626849801998377910465742687201567922178725360152240223968807830326222258593088183681652016148909309432238320443962148660912134670881648110739346667057604241260736884309620192120666580286859677255310427698908453581808561752887112414353394372260912200857747955759628025723656572853024183822638805267529789696931244182304437829974623162742850194067901716563577668328634779349144605963596336612365058604924582478621707366682649396729020168100950745276749342707809826177471402650295758841947687705345367722052706338959578317536843280852813438909480039469141317737022282006328845741986687967730913002433273300129297541926161231909097734237156615684256539674857407975350947027821455722465684182340819306077680483651554289735244488430871175629222042561351913917314243908967267493471120786516108320720596059972421391421199370251180124390102975295034666910077012526182233977705222020395180638360799607660593497332845322976400268654048239728859733031232803989659138141859983142872564161387167202452969912775146945121485729567934638281506674559893143685152422790885036577328993909059761671481806136053955082628513363393788382280486910421616731870697301249861238701415460481158818341921243759411341539554574748214746257054127665276551867658907217962342162840471234118263442005077511396872465541653722983262360659568380375490289694996483901880473413990285368708216275998733704551334033375271489062562220994330750186310074753819918037489394569249661992119414148782798438554979067624689174986890886274840057361976730565151262188582018026455501315116476438819199984019733632891307502486150526622260697181818613208866568157885399743190334468376793490902206402763490177981137355159593095670729014203017211657387508157212171216843919980790451429646305464461614961664513576292954783331920662204540614713635948698371907901225475495896395678783578179471829628107110058828590133119681477720488927923107747734075678227415812410908359259569001832634715092058885720439148637041377907385972061349619733248386412741598580757160485254705062482952698887061878477940220613272323872269605888131091243730145025376827428021094089642736486049217431665626983293665511397729677769089529664374927429467116122113942833612604431811994461330463679134801711391763743939197672283843869340414297455723793478055192591862833072481470844118097849905265051557059793193442498202634104930737861695817387934122519753535610921004819206187059955707618703671517382283187529277537167717716170712575908482260999970011206511937804589683119507828229965073404233499492176827851929968841280380240195985413361437174861939362306933045059097091587292390182878096782518308339225437279757168463474331777271387300614787080158000200880335049736315576395557441845074783913861743701769347295139123941246886974474933778587290038589011780499899108016259294638469762173397391931919316312413924445350527026999083335267298605851084016027741976460116861023903692929552461932900900106028296851368790311911865882671732097843683885001000096934757374989323939066672682908527888676851116973873499991075274930885222167648940678778598009620061644517688061384892121444422650386916507774035319619653685651761871514726714305563706510864058732074734154222780057805656076992620543596481262751536228407821528127839770477637076422668666557410365679420629257128791093240285995921302767433332565770538045326401121325578547850912453943378356692892355717562171592317939439933344978427046506890780090026113781225738144990591442154929869387869039284490524619437652638315936608995349634559124923659306317690131921954097286938082086305210090642934308233235405905093528401313626548319484675854634109085165505220514272331155288465509420885979212653903636750917387971208491730736423983499936090898958443526528327654422376725659929828391224357850959477900475560081017471309335230331610846041248725586519884985799014458134099791184987517943618712617741906837465223230796764833231824375125749378517983825671868519050930825004780676503753876100014143591769680447150397966264093314702231297518508502541203624040567794418743295558322536225233797699925439509186092547555245981699007251988942762983604951342879151281068037008837779136028348475480211209388018517510775931962370931892082142716866286836496420122699778298590187189460489375434970633552641370779446690935830894393643658514487642324663844383772606745844899444014572914901539621134212673037303321895274879210011084389391436151801306645925862321471839819796449702353833513830869128925776505047153258917834489283857309236582162136048531898543413224963993355419354102055020789740917125601309050165857773026834743648738634486276919190758155327792345548606615355946799986572977369337611559114318420155096265456879325877736238146824668993625326746491208517189783836174516169376571994306925984570517452277477042721398331507093539034162142917034420991590646811669350809850179255718567491251759555405002792420601183278808074038940848703546108295800291831953944188854682346648320436390658853909267433556296642901902992892110404601318924205923280735751327370702141863055894048858791775335348600450373770677836895835376396744253456120111493308286799587392509391357326676128295112023114281912286843942163693113226255219689530090954055508627343396483970619700580221587864772953345325881417118851924386066179026162215566172952473106207020334531831903996072966766084348362432935837530014973200066478961340895832060642626832680723483412317519826202958040838300026069539360652869565166931636855790160698960069502535388693381645046119497774906814829095929153957580691854639324542175390491252321216247138522213237413626380626294168689444992615700970824786405810198279700574362860855213954477987707674096714806413890483700437315982565201667369150856454330358640149197779774577122678807181909721023101670478304240117012029920348279506826981696357414093735856081781147943123611190920418348592091564723313723361894567849244448326780650428490491563542270030955225961857617750558914760489228161326681033755658110857787113116503523340299007122936668048628605765198163178401932307706575622248722224271456642421919433514540792850910102935830942170233756287547551267357561998909180016361951108798655236982245110052713113327817668142122228077834571959264671001165745487803756757948229201937936222245083808332271450642975311055708230317232862231442864976058722328525778202863612937204124977963689374908898998654675421191336026579942120394110296804447006953490200301191780226787241175359295606475608881017704916074866220773295785526921297666408487838284355075120886799650795656680711113388016190092996843586679167566068833292955041069307838680461865443343242524665911942033209489161627960126213890355800746692628481662377585501598607928015702990865131927884476625259321360606611914513492107809427004065788900675588000094776268809890569059489157017625247245928475462912737393668471920218294206531189800026160492914712736361540604969096146033457108063060051525642826713665240216792297230752964139923648793062683650941867160636136437733060284841583797932587161027559605596102719519070417128646549868397330586490071197722964565587122310021584473663812215817701242413851977380210757780321646808999032702888594113001170300968965160233212080164166249282569566656153359197117802038939576678814786975879459411265279052399632412566147094937077819865735023813259657281636289460966207956891545379928194474872628590606356261816075808746217966813228437156373166643372311379328325447973521931331628153288657047786019988525126354637250529830023439899760278619135291718364702297675885912288174302333259078609465459360914433971264984426102198071178829810623799655662672358107383572589079942185860706560017241069093341171502249042419388973640938370403457427339601904864885319447366138292628284865279625317992708134832306107891194974259284892258375305498314709593730420513965280413549865621848731795304555278539887483012001299192529169375857164993210247548591627084162176113685431330671168161742527074699394667852140502218379886975488173071791277249425226217545832268788796303260367374650550529603313026868840781418421360106335783918987785472818343568364873795525154091827136043027324343987570517288600554272357358121642301112803395139158488452159808355653428772023106639373019562001259518848312587094692259312431489743181796831069052989421578336570493896553986336125532862805877827392065916570983321286783377844096607665107016094182161252933613862463728027034101342609349363802555750251001696620744041773932487546261935917075442059079320431317879376915025492802959203963134863251821988065927545100031823482724045390036825780784034754455443441320364282475584725546245722932168544582301991365237921594418123829159792195911298621573500259567600373553989685564461070164740395832931695499336792958175114052294240365955555212221629549542085819167537313161240593910046724895307060541830040593608873262206739544455229333543307372343192039071599929796467031068083533863722301968431806499125534980736656974228696207115855237050270432176236248823862912063025845205511741125176798421923774771871090207888387765997441187584559110508057633488594415704003626132772436486559042865693865576754543459636270919299087462000604355896544671696108478744004160890696851629120230024217226328234420977738398488082066229789544017109444535532602878704236469415532550618681162371127420864677929686728633230132317018568179189017726646793409904064723433967388186034330607360038916082483065789850127942470688625166084283233109631153153914441708387393271784237191973982842480640031946870959446488297859310175891590419360468836523444496033926003391616205824472208233695667380629250608525040241630324589831930584493591522773753082701109556045497618165454100746441005953704407636515100098763065009751238933782637752896307324373827903559961311598833548131272484185960326859943593038087249576750437193762208770080933180719855553818052569623612673145092792464194792851141680315083117204218742304812911505343705591655026932019330724159430397951614262923604704012094591266547042030349227257160504607167794390491892261896680666252305158978677190372678942409873108594296167941786043120647773956499075611942639085258840841493735766265221878333178339848775026654846310286918910476721884804417809238285655811060375172734123528734927895260519261619976942594253647114815389147175517371483785597309982722961993436864115415050535982496613026660568272048377221139713153132992329479444940147885877422036348187061505153382242936873518945279489764133195503021100143577750225912467713145770923042839464112265162765161729019641527189023632732435779512920638765497235830148131349599913342797048792447322669544800574983219202186466516878667432033354726736678025444761558494879501863080525333864264433530225550780237695375513472122514117321688498233888320707401189652714881024591586025328435052096309592249550529291412507404409736827963884964499344834754990963106693301987207503519306724834546987713535938256114221991936047537578810104601316113088057464628396758024193690352462078383922114728831882504760618111704733484219549267209903900456940676531163885566648643231627974739302860072572926721384256718735102673778401936476151133173447556487675468468960048681183300477688507163850710437914753750272314967931244415937471273767414508879303580979858833103015952880563335104112175279769812049137787418660690715860161187866446545077536759992167133130421843202625037027918181982877044671474945673713975339339093795234676864604407912978279624927103589369533682389884269669931973176148809543547274606826103351667433544567444327562939224563096662227759700636551673124847305333678029729846352283789680049614185340315080008594475566469651817758446423143828843719058249824643386399250427041724256832326300074978246314424222386534486431143689599961213338519895542908394815950198421782144176178642911078215162704739173778635540241148730732803786104751497355625481941033782485523716849706899004963634315011312395461904421686859483974972504600615276655435608177715976695246859164674448169075674468838632915992781503973678833944128004152883907665690093209335287382124682718488487828928070824931913602550540526198206429820340476976498140515422249006458302848755848972591841517741719148225053070512908548753382727970786679664598810595129935810010186013806857911628630819404687621895251778355123002449821844693894980837771082799273654581167902522592906264397836403426129873678080878519977807181224068668529548854693415529029462250303000003944930684743056887283535186980722024021730116608787064057980803597715430838876122277933483805725507555641942482554936136294720468691251528803702127584954421376811376807901033149796418416678493504114055609072227049636012900328786357303263450371971065814291167381281574184493076916475484216224220290481377081648597570796922669995547019724941410783184383734549558704867338153566163832266437077501383924107774186316815639893554891618290052556144452146641629651681147881146109371001135395211321865840111684093121001752533202405556686914620283047320813437672493520974455161008926553566808698228582515893640214860113739309124074585203432516712352406664031651559006442548229729675827136669297677557942001788851696008958274064447809932132704307348828085394851073490278537377135136702585756275422505619445052875590220318955650881229145378425404635590880994330273734725731459525875531724219326546432599848758282290453637492304228838769622830860929320314250674237269325391317733471495215488932166942374559498178301711020575664831965701613083827001730898487200747641097739667329540013032806148001173104266123419347373297569588555000719200953067567259141385522085127704724058344474242317051456733941508776899771823972804383246896327648268767187826710321565467693357455500227928412452994857321312747363594053201495825179729550363796809944185454539963339745743779556481076278454329710405465192773182502741785959133653842172851686612373761333982974985700766118394623445529649789329130516691180854377975472314809392037476599137495089960480487619726408458801775327708343619555019854151359541921598148199378603753486842630892784678485109741726706176770507746576907324134547938634016495552360048104322638346809726299912120045766808898514038889937102825987750024645425080052180452264548720764734701466498757518619442718558791900121204951910255843985731080242970586080923661956661080668030252447243737185957662374825240891536472345730718955960987682244111469534153438957377352388335107051476218377889272285501819929508970886228240865497590370486591412274651835571242234989690473371201495066977744017795364362417455316438591502315368798940734627648129953346643109730648082536915095902276644535416505272289568750431904356807831448172141721417479657192730156307730643215025833406154577513955800273705626298676811951661997700656765144157717779362675489237386758696391810077254613538262557419855520048202412941511760637577348543978315760833803040671012360988034352648501050632412272786004998057444972599954627293725868131330689301653742767440949980911829077818888372466232346376045389744369466580858043855243585404766551686194711520117373496577495074903706084359615539663613178516374191186299901637795838270615991151684219584178443173030490323374473138904798689060833157263932109235367065255858682314272811880024700979047043240018691051867018321544220182709758703086429664296049191470277035989499706682539764855507215418275995384537550646025989129128905988035044605303915814195502148942707413933492497488277063042002767461299439848570405709296195245659227400712568032511294811298411243011128289188058943751189009122751019210600760276761665866705932826240671424223638167055767969461158918109285970828243845404875282422792026205688045889294153929090478201943226275246883674822863069915684183055981243136456096034963987728069540841269109165875503593164027929100703538292266185797110799657260106934229752340775567588956236326558755635067512155814257908718611555663244400715224116893094820087922031129398773563630923180006349036329097652330211492899082977496048863474903776595711463110823022597344299497317983799872119746980810108550018869101087556735924403565839744096911279178087106154284302380038533161301620498481340392676319905875547370528541796901564680961603558817665738763261191695902984948784170324618477544467882923434928753428438514060425431034043859118325409732598920440026614724885502205475608270340369793006787865555567604509161023245087837576119918899658993618989672943621524678176208063442175754475758854398455444776268654904002606849571091874155868208057274555517944577519400627412522387725520439842523382413555902677906536732233572693037944250350665049437416167462710901687622818462003925003301137920587860204126250554034940019309883963871849395403811969976878311461099053369413305799803386030735822740398496614789532131917882897557889505857951325533956646555605098190394621936910225131041097004016924093730125558018343208686696294691469218693812033700399492223355976461638184384137384694480552979200560940240426972148224273250972595106470880291980073331372631850298843163320647060355693597532523053589087459855756230404128976657029569526673953202574241334251561780830026415882957209481412379783755636358925864920777434585235494967547379367707706236019162221309926121114580308264222389231459194773232327233577217983231300246343964706483695090605882742605728474090994494807369069271029727555183370118953345073596843291539147410859474983481697303645254782135653384473445062277156211939310286786360430978591632261480955049490291236803406698173624051982096075436590916242181064885151652805405847597112595415276967810087272194584175771699558782892783437667741406678148182187069711678195607567295972539976554841261705232968771600022149367590077774675001345545367777876843865586496328094267548955304656167907018497251436999809245726847934719311727835237615693138348176515503329614392300698099552599723948271126643276653518287847162125712493784797671037348095613157502031382598654732838086408426203718191920844172588617296845424300632021475672561913546889684078912835302263541029631388467510435178045657291558927350841711216676361626725691671137045131075576675922446100254945836207695746606911714978157806898760944751938404400461241259387977757735435222692397640389107083725216611677922582896152990571055520026998041409215025001624419106918833972507582404005883949442401414743397335220906367425121660091779128800421947898988453063552708346116109702164676915598970110298798786253973923855814352141931493740049896631435737915539148090479385104758344888447812505081406350985992412841914932447930509199579935231183669180703539021558470371760367303707009860457162370374217446743633455019370390384032003353420904792119789353520493003567435223913356792579728948936466255834757421581873748137676496213061345997745435115831734437664519965647057807371950579850623520343380411636475474068934917583490062390607290609245091076894483444110310839414223920914326194846866332828701088208780186767589662011589967010151553708189439301278292421690298913215759154294001299883349000683263841335244279543126306379490519642772564379466568153691809845027492865715672127944749678701706802304455494389163254219082992956277739805084520513595755134577774466438449358533021202343112564992411591356740750353515180475182127549742243462974431862190519155937465638533502329693480541091437458451379516949878864888879281505929485395127647268884428747983417220605159154238197249821622323106043339637118835878546035463277595108455205615295398688542466427438178011771639766605266359640056587946825207790607131035276135703362194531720028945505848421056273523038590750343447912781127250734534967831924482778971581131052214116941859936870415278898086847669508509622575469766211287568516075917622931046989641164956711304295891712877762223709030368933889595766834422063099915028131139746949397475538596935970659026024499377837419794869540726512415774266873677158229611193326448909114312968162489013881651092944452293424620543866296371883586133610622038629827579800807251552751945453425571718762408793806477717256121282183151670943954592321316916621980324901893362768793629728637993515899836879959496356383385893667529350156295564891746816186286798324359610360766730390174276610069845175099208669206357590408162911383998480295684059050118867104246952434799941969270803761051547730189605776714774534462017407302713200537721055766290660165419554905160436778576894189877595580874995587855620857204332096631653686956002944310845474344761565452839643201282224368934302984252618859406470653045467789984473735677854518655908467009867880277966934622357510815913880507530215636132633974413392477807749713212048809655038832800709577022349336790387534054620543194177303227472746448846687387628496042535744447582010114048515015682444589740314459141540273073429845214438792329892356980796827432510940279973765968936480622818318772800921322647754102321692087448820743166059318744362812924788442608199942094037159989351639598741176673494586939594486426359704189472736797786377682698395535997875675211924219765374770379289729045986902838971200505445715347039372167850192232935489235025307357682068623892084339085451880697648667822439347202561033119358349077329227778808000104508717574293980300664708584889042589155999039557338997490532120472965610839875144371134108902028490873348589176391116080653863040474102448685185799262888343798070960121435990347030498099661234658493592642041561666205340314562825076989400685783834652016084635385228791327830059139469903563824952141039832808298649742844492513362166600152777502710571954364696415546495787525354547783239885500616869156362861185087898026760713277654257593509131843434424594018603672190877338011318009057369209299923014158414605288864679118456661475831474907260463602163076073971517876360973164473687831706535877172790609299400538321322912637399214795687938883770101014209319882260593462498052691081408282415738733098272300537125125258036128528179559084312191882940326247518634220774240827667337585209953828002625171615088772799792905862123766979188146638124209266828388962622581217675049461848515596117022543782196094245758035599966619151270397795890710618737332195798811554019778472348718909767287464149177169523855663307382133472381189398575902048572898082728278091428036246493076789200810159158840424560022721355582174027159688056361455662012374869047063131570548473841885362626336174678266065839360293747750144637490886354055050777470557622667289553840086983914042014403999985367409199737699767033994569166861584700829988230686252329175209384975354819708120950821227491828463230744937711962019306261404894170819469802746022692379380094582557582138796252325764216076654042934991706332119199540827391658547085919884128049316186918174758470253482516062209464367254016681035963555602513881228611994365051662365800490169336480860030621120407121748916558826367733281170390708341261264615605268510491818974790595826742633806670597182957449840158304082917820935599806525753164532013404808379631084018649900082688965703633900426445806596699730300287993202812345312639628408497032151714407454945498655636911657570279457910350305329080107568126370544338473534908496590106171219733310245657065640270086502077150074370976263557434225881747205321441024177554662431651340008807777286801801534325320100045510222698114640256921824648409272461960221626288426917479382908402964747406453003214167294636758164775335401745144038518405927659494991229629769293893464973827164544622100575708622238563990017619399949208794608943212057581711985728472574828448941939073494020690347300230290267633444263218110925651658031909022055409247077801687202297841044548411266183755017588721775325240764098500917477280590371223783784505296040517001576896012903081597839943362575235325148304002557598114617883945317555713944285553356288256201108248949171026249715563384562661786484167260600243903820984488407941415447061100112720922590381439762182247273332634589942840958369449392062677233475427660587060283358238863319040549934867488289650815614226808148045178298522139526210345189677249473166276777108376948158642133518561297024589498609007292883696372902232840424085270129040950197390486093701152887979927029462730853427567776743781370211670592233145903516865386645900557570826524839528434092941704657102837242310906817649640451995158360866678072812862050990460838701959684397725823690798301328896449516882141038699577707656426829558396026866753462896180192797153355616610547722679634439658442543845755104200713446260727128803761606143923235282614933705269340406737832585605406246679197870425947040338045542568757078819547639545675028905655968756488716614003328775490720378206833250898463021019081187952843516115460609196569038352409702863805826435350207204471641052017928716704912127930641699171974758201741014786978246766985465321707330420312799488395425575706816524285355189917374880808187994230721788749016272144626561268137958231907685256876337026232197482023902184062222009605906504854884547382649500014287961314385913071718154065540824573278290867752052923434968037347888925474666877992398980358547563187552310620650464756487853697800968669478197832334640050398569606017190412405682892015789955745301315826634516311258807966418311259134014422963978853793301050882414389029427569051512246823062487073404992757611678979671527780092396956128220799469286356004179673829180534374571402487732911325852135211148927538300343701296797838006141496702977192596572373051878656648450819964458954847646128541206105655342173255640511208649680232250498411489631228450770372919427727305092729626032950831999074191863988600261747749133608875337834407475598362687301290755726245651423924502724308103549783320786364525120260641309237039301736332018581913897625052883528939468243292016954573940399565974621533475626517813428424925456963311164508604162178694173245829380507439094045944397057986745928091187911464207316083294839628500124747257670790163376412504886713504552285326957181919054531849605954198254256843715247386647173083952356223023172944858709208551783069982791934581502383570709850203275438341006951587932033525428479460559054642724159903372626440045865938107836081922274037194281588778362178025261928534274830665759720030895657453031743671018359255524441347860778732920449393090825337166470364369308935087032835217981642770840052389441678167986342524721464666775174654820218779089595127529382513261303711385664701200981905911850331091886510306840902222072139396234426749838066739787986377045038710307288844755958345123104248114459255743287808362943397204285391390840613591728321480619008080424358139117809637187041166707263976982519159845875092638916104669974400483116874993142979776016653553817402628014606257854311126049736985142156356939644198407737316229697671480305134982288529228815620173728675111776787511293789168483216713254212213972692799456124682297308861149454451013867874714920842045319195434488097188779112554045190154070934489234393698241463571812311771450767001325355878660300244192725654844636227400940162999295498324846901257507892833704366492957127015983357921254195272505617506897617192385436861085852817539888498949154184594587796691946325481110724194943535764828211705556657687114677337993941646687506714553561292451264433772796820424845611852975211687338551978420149141459337066857913692026487434102822201106043165531691143961936844134719104365935775193100767407708282711942843953281797895955301997462747949501878147819635576121527429806423261929012108305481914632050621684044524338375053722244807097782505906187291231757840454939065258909795081328971465661272519634063724590461047014037127900895945597077542408067050962962806756344669623987533268861299073020397882580755785478557185748619750591570969182945989759489684666294242994829357638342684160863861196808995806678842740357026666998996874499591550899002267677413938643559631211057666337236584589777351090585545653664018215421930023409788449602066033967146392790785458435429720721743432860319000950313258323037402273406362753627096238912919089460890352035619972580825431314778991720669614631404369071345358104019063643360122268672082310102566342424139892742738820916852089018669214104547781681813406866524060643842807233202845665990345295372968710329096610814264783856530551437850698925787583640751917984202434706859370760569061300425436732590778213209613572592270239646042403285652214871798785318050146957928182188876949240623228053479611431725797752511927019477049987888576877098628975723084720545906905886394289858762977618641235370393628986770888722387373012754101232145946170506582774315938499360565359439856624268714502734392259680581173137989050426423457476567216982614637681043255783288969981258591699348806646740238391914798716717628066059257532548581177276283511926628054354010669070339044410888307145235232276750180334841400333250138444381736385571804176615214267364824738457836360719382481778295016811434061841552697473866669251100323238312020521980118247392571614307765550651223959156429394000030136739055297589647155279100975547617269650948327458509994064695971915971723659701721785373329905944123102171804206356944495289135477482827867036010190184909695658201711538752715205796888876911160972228448924553220751815769836415988733559560870828790149100504963039803679019261896370654335804410026494618858214393494880820127931335431617441229682420709338825995913861545123780529909308565293127997361640927017892433379163714704920530066239373937144176326953205110865702945738129749949899784729072625876477486077726830635943131782504029315188726086160158007004712124192702204935759299650984272253806136887460441236605574014185019886702669983126314536032846736797292652078517490827008733166442068958290677585992237479271113123657005914525448036442659618863178774407170258412484742765636931301978562632117137544684691422693725330660860162597395705219433914066508182710994345462199181813111123803608810885567265062533004122758795831076098857421978945797203702798410731218025021682904429805413320154702411914079871458020880525947692476325123406271299557014140847608376579454116223360627389070341281750845688354612239826540173351423264374200339219482142183124788064909399070919018223751832068250045011171748579681986710183099734795591951964553541131512526235992673750319944069527317660562932041893029464795599899602215719808187884421336775774810711338557828358905277988862403490372381071825207717509315766212333181265361809214557733072073816046907214356500905178461536162643711209046657771786746918185133862127537890760625743266532617822672310969306080831539559873858470453846812812413309826015761776200940522379783175294645641203941679675141459116844481523800283703697710014878844255152552628282453288870051084853314601260747465610052135732544154471549027381123496336693752986960365080030804151421355090016563480290213667399524103556702785908273315766641323726780747654905892646681482449559116141594644170440247982582587884279795662848948000862130250695896425097975237949815235232516593220435712788549723289630972848698480437005343762553583037929116174406329950248042134886726885292605166323344099319006952865175328064397490841015993531157282339398899853806016812939601858060171544449035241869604340352123605919214763398988986566959537230839085808378451059356277788186912792815136114212472447328289543563083036502991101833773020884568347441590515781237668890430282722618057870238559106750715470603988078340130150597850303291863191311244800975211099605771153411721005029818572081522687040984401826264087570769686214302684948537876090438182484658468892462966958858411144622161875369351924334196572765873377966123735336306475127692029854333069721453976936988728448277123411105192242526572301950987893871955726708728788102696911035385594410352199049253750105358526309334310610844380566163015408429591187585353806523840144620391838400000466149841884039242386696242602755910650855539117937504755623419894044218084596628263182790472849813645477813649528490359740862115483699585319689752535415269090930145663089484234150769165384883947029463062180019038827526641130982923022240984941595569810626390408837876202265254013367336799302744673390735671246597189590815311893014288359750180414419136352459494050091321570495003559727081235911770740532464731076473189415977868910578701627683318518952097347411802443516974851475133620185575088175361552869422305882775723929810531362926344487150402232460828040044259216667093934358449226240747005362366161696551537983480260667377112317947346845567662184080543947342067653422800697907031052734676987562035213979773084972757184669643049297670288150872616555025032729369505717214870625493682502516411183957534493989437803612326378628821890064314849027290734948681620187519937134850518739681447572582420488112881197781322438355348794124990217022409020290179926066751655049812258075886712142198773715966195034447820883392688157722234016744181406769913186393567719428451739567525075985949247791376017888404626744203754064444961627090466276229814064150246560886020472316698984192730136101551117383294287142013506325433763539978458315065397191167594618900230967187421410765763168341667587337950086984253461954191402030347913526129214644976930112177278801434287192356885838331298427870298460392055135552292769979531156292573221949823447153088349459831572097291169845969650531801301890049752717602931742326271577335913344394700971106020174580529761695642647868641199113037907601331091375052797996116872484808913029051475780079570928179370003518513218752611602462915836731353778542300331775194325347626167986374317352333780557897146020758479161055522179858818108963253236132152525380048589454025321182297872851507498485736026369537840550375016774141668517056263612744585306234166299076711205618085939515949765014960869835173379167708452902422279597636148471833724830809818560767289454726539984402744014981991520536040745565186511606968873241015214898866285246635556412527483985077408666946608076171354513103576313028037802331624556145427435345347729321394272776562781285047238014370315710591203507440750184930756547937954946208608673343434669087213769191914343768937477932830742010886168500494809650708060691089100928611120361900028927604843757201201475695948683132486815808919970146958117318032006913642911322972723366431635271344465606405422598526944611222483888305270001036102472068932345942401363024667459686648000936720589509095081110293383485559529859387476870629017629082936757889606545445341884293789717233353220612227530635081843569269119597986550765242970004366956810697772730558941213112853334167516169660285654154503241360680638283232211556409432306308280911919381513346169114980210015324010770301497247459651406555919206928867387068420169031397568800177072839917764144284446132495324617536950972780091938575437802080229661923168038732244946488757736861001410596325395147510599499004658387030778453229378818422533142397988276337691734908547737566923868341379826701739329771042270756005150260043508448755282881057099327699118384229060011685579690220987114227677363019996535671888955296914680161830407845441392637792676074871110555472046729557589015820698848790767539137169784141381061333287095736670365469613258529212425238191038376028212780654445507370824412110530535395227797738076218484325414149681234285000470890546770080468623207610468520756486385244055579472070815125224687032141174485261002756279776105125617610622582201491682829554494154672820405427970363935660783317341263863882231983575103750118226777314749991945327444947923293975356190164417999638674448632443798649485080949289333622394088418280625568392637578838373851890506317529207909105235855523886414498084808193466212202201216071655705591537944620184577816104799269635406279335845782681128255898266922509140371176978547348115059131519911951432698340271375976747035276623819195596097447673761040878559391202790612601268692881712750780788734621243782735968856884394169269728403996104314571764758696659375755032198378418480359355246144584778197070197694658102267931504205465192475339427334138467578923268351744201056316430997296296944271372544063198178886429022884676882406371693628325162156966497188626498380839552859122798280213309821359035963852806299859079621740061236791786469780078949449997728372997962931460924776273836106405430904670426955469879845163922247910440614786703240375100275994497634712638351689553921603410131988972785135671173895368049325613751498717549359252412136603567014567518788566667754104852868559521797587748987786008197192596753061131680043213132971237689356472988464769374166940491981637088944447960147721293133306246911564597013536348455878389207234262019810006944070555814764606191009593069795557561767451512973631845054635580933896723942720450033593295272885664563312200889432807720089149459392936552616195037851647690408947901420400672206400766670498466831189186502012673881200418408113711322344891690828278026758242827057397648902717632731187619582438700113989540951931396043170329426154080190936689499462425466340264224551815226156979432895143012643351222136429729857823410705131833948683995726124343767041735220436372790846073288203875584532611225114329991382616889367349265273437768149564539661772027678570924877335558885181280955460788317831074207780471786803456774941565204093554713077581991943644233126229685769690216223718517950814100852561261897716744067474494089452394119797658722021322479860180566352845921490008594865712781547026526911817474415767751202515472007301365350147719530364310808941806916733123354928658808906221589343242832278026159269991266706390011838512381484499882317619841509565246388344775231052474898956230352278140580905555499297520053083910769584197075312540979885915883768857728033035540396873203966600132380501972490589646184497018280899557546104332533276066582513180428890966032628576694857059380365722102550034458443331353044555436043850360900754308798117654912262493661029922814545549205313005851864768539273988249773692423200866571118568341550839660624518796389867750797442295331553683657067899934194535381003065465982673705928454006660913249949269395153380788131739325266392285776624134934076467778551492395440629664088103983215145934606349788387631074015264754307286773963255379420422055571749968490039775399955031175690577848682692725085021102882418477245512606369268434801253069220087841650519935861076504409286540901756070152861326079386445814371066655507813135376501004898972566961324941639646198712181588896035083951098524522751467558583428294130132876391502379451639322423640999739602714158270369292413035730200195112839386199227823483226063486495243980196478200353065657738373574926908880988895853275465837773823499622958572360595511888352891605226334042204176524719985928015569935476846285034119407465099023785845308461716464967339668228652876889120182690075475252093920055846495033716622988746460761399650930800116438866272159786004476963853812552066377436227657602040094440958282122634792244566410872084473228891288503099447099363446847918778749478446804676924808873750919080622396060258914890438979363765450342795767307149802522519059494914633110857372425876285530993996351693612314448654971477463618878864168525854295663255716859887796147029560487419263019220563395619471338757204184194076682155112625662578092020104088156325686312223914157141007623273109767715792062134041799341811700739420152480563369959261552976974323468809230377700577824914118608804954644109115353513593066503990449289101162854211755395037410598530184682292908901816896437240291359851744193623433690156014204898234749916009969225227845063501136223560599357926431507083755731094856166877338455723783572481681623350350977076982420295359132082733142448078353689284032038889910517502778356882886827257719422399074774405213819991776904181536515350865431669015195742612769108398960036449370949882958025131469939169936090639737481343394040627418671718754291286443181610923618335558053763958772404818701099508582844588808283985251788930032942135540738960868001937738772201687564420362145622816721528562520375039786473679060973560963869263321676680717045301880344356485184704881317156833019117193402654343672665298331368295270592948080002082052480168358272996782810278217784009307229771717390683010690194700013389933113860811487306294426414571382399548758166813822808299319472358143777195172539706448419698020536224562409980023955933406130501324517713543204383291759249902240691996385106387198685028493883292835209152146809000521220120620947624233632861212772915553899647568834745886283680158078127573789780680070030025450832621328363644366244312671441262005614860640324253964373605912006020854119033501359907189175414103142702482870217045184067867458829056930435793102889643439727764508349179692252712000065595287999109151175321542382564261752263272888716940426162662552118045497862186526131062345796560811972640597351859713974292762813000356457785904111854168375354529317264004263733220118021975101209628474252517233378894340407414278593356910232596926987101615839643297246647424601479226067905489515842603560297224572305298547614319843760915195509424063009390801192633302988026335700712851876979101587836271150742756032104775803842817904445571891583607282982084528404197074350226307647876685238923394955671741929717064606362179041226218292111078797797574975069050095156488956695536985558381110794953621274559943989807027577406968026791697580399586532617392808438615521055509398703494588573127947849350603456223741362064384703810057203539594036723123409059020793150225744440539008519560257983009437882752254294158643110912514946331748053321069160492936379872113397841822270808077414972253353547336891646303664538007447705713545069466540235494430601790919156679814200641629530915333798334834009262362089296573307614534875768986959029041037943828861254275170737199084459618282976997697933301824032241149685286752759772983904027583208436478562793487615799596806844092657211229987072359437063531536454242610851456440296199562112259815921172467526585336640292717663941481568523716619381084797505729426972861749431946784777677026280689363110075118251974446068373615997803742781080943909814095354689669606617830922550258686794595128089980566111768244440897789991892775979379674103115289865729305107835036623974119111121976249479886312610262791072051448371290783609635322597807010535425585619724680195930224774705404006465141839186362860357989199319361734664277090271973329499092751579294147836763582114967671985791413560322204965902558419717791595584056193948078865400681765844256166743734573528113971166294423768866714749612637625679629605531073498478527267710561529971309528365271397430134342527065738467019017598183726562865268997116553221138286909871343311158440915071290179534725306882690307465758302799940153702341378540975227314775423960005165245623041765902042291672073459551355143952728780049355542649975794379069495110004191515601961657305896750477736452477333251772950884641434834468685499831670787299846767951785947535644571068693275883081495624828082192522951911773714211332474495227685087792779308821736337316985969937128500571289071137453725763269788918572878956961802520751284067057774255863262238533585117659801993926883485133488618702129458932821595920717047642367831899719883562065476154043351549929058994518231843673341367793575300149555804406178236068850965268906635182323353994935943948438885290948015013566779043134649338389699822078193323332047209446386019658239013818819022030915949157723964854966985400769511737431335768720154430889241743293277528156076544839142510452856202103477789420363382752323510373079636133474810030645685208403893564635288317762676352092702187770379632169169141785673296907734390931674293643570863362711137023283202292923213115991563896006416884062758365953775585774875768943721569963850896298025318897314726970998475159606185354910183077827073117265281774372796660432409556658845198097148277892129664488984197870570118102517745914372910416824970166150505086129060339028192783211024610854741763457651691688044640406760078108987505193356888098085362184068507752244580586994742733700814696279660348738009430932320758287332764681421701790534079645571266089971555836474633947954305106409071694418394642418769262556304479807640911444374787663472791701310439686780917431677263871749987246824196526885612661722958877984557285211528166677037838338745481227614256154983707011749273783719119686317428987201536056500744061097104696271214813445407163074304196995015842505506593765461956790240901722390187623861751553262515354267530860917475390672827861726981923569598003626750451692484863705948658072204447268547440152990011887393308418772964905214561734066155105472282769799952090572054653401679482708165069064930559853749944808452196910807031707805755264673649490630395535264250329528852681201753382361547398088494293717525843259469918203527601885218764338401958464974507037917984556445090175134055109308197377058600967060407820991935566715262519554832318344540433504378425627708418473105787612079633941034136592996307178004356473111348256034982204218842046946322759639507130730646635979213369189648877527849783808192339389276685228486868849338680993125332758554771994379282778325802607127487208608053873302414795025424080125969178896984296296061424958210897598326523781783042020192142091140525828007903485634303534713576609866167806858647458708659749038177004822166984862410539800419985129597374271637260725481975961407362008534009736236037557288016327686816954054839549443413345036324711611479493545138213896516214918617751895530067188357965576637956966963963249721882912936773416389055608236634456064196339214976546764319579163935783291071932738324358814700408677183545473154949765197429983401992988581447651784549222057671605369708291411876815287581223311483575732890774561886635465793256202490873091787816733896842800261986896374556730102179658393642052262183475802175772160377942784450590956936622112906552752612487933633038069155130710305572105003743028399892641058712762089958470997621137547269591062216538120624163670606574241472089719342595363559184762077927917536406269620881021447629230627355218283828216956872716132709566890137413761690669736372913181164549481745142211307486716341043759981143731240659818022171666885602566388681815163623550161548579584209607433027267336013904131017574927585574922087115376215834698155869313455897431791954737035406654629805213709515852696557660309959837514341390172431879068245571938001846940428776849640304462680154240171993249664985512918940548664783712632350581533335283925243622840738292080440683063049605295209083456240234952331984966039310322542150153656100539900821745346076399266117782922073163324173935773112301046536771943581092726572875009777095555833230563650504994952239002836375496249031531166868047231660989211182975720972066567872907048431281316888580212341008543445724352861001378689752230243927952139619057213943335655276834773258444807960820679035153817129511567705284748148954812139094628663347875366518360327244068123116319543509531962570986675312632118054111696588814792461510137037308958207687167445923243277531197402540692803229579817183357926907404052815533071394790819754678637516155593573463728939128308558586359406053524460708486098489945170804842211314651132560631221644215020542248075466410084812787531008792554755937634843732092150897439291846071788316701909373079133946412552663722431901819550679825933049670579997135856441731182511304438716526155647312473306986436875198836817124301110482705596240449593383780478111596246033073163782193015446181754660246616597898607340190680286720157160113546036723906629803518887322515048006827508124179389316823665906069031449682147439979269310373557790300651264369182225043007214063387134175191125736149960079662466338853424784543956615225667134006677467163944526024708724611381147639172398695515447786951660087903342917133133504562009697690009525176364354319001039231506856352358104028080361636816661809400725903914504246191998978744920896244208767683566485087411535670063518222906739871330205796087885218026902749471546270385181248135520788492615043752797916078079925313989347450552372911620233433765225264340079766949638979599075026752609250350496027237685198556542256404976362544105402570976418133733045638237862715134377836150121886156620625045685531319054934824246888693682625824831878561634257186737950676449254088879886284952441389766709707797867248579322695225835451465911768677750849895642844362792157609590952381624102854337042618094219895894811514084560358348708445525203877985981220661931054571392687103776673103317476873572778355536282009178518245467551450917200123567838268144059889116628094366599175477078530454488564263598798022874860822324643493854481328356200888048378080867981471270723076658858865989890842365073928619926545511756146927193201603702724565928680886021277459234243779375338759639607420461969520731539198731627496847640542355023231478462748643988876861743213888291393344219761466385244863860812059413427899812374131772323832586503304815412321123897786679944176779804659907963769875281407723333340362269409424439009928980205461490959676340384666866507595515580869307302828726633941911229748738320321270173737435863507677168146199249776958863939739944674627835488865075137575359557930200097854886850927195196306147755991746120166981957031764223554269956633517739822052930046508196076975958779161989770320403514733584158555064075515253362670374415036070969922476303615157304646946191198904976158516562300929471692122029119575385472141170921324068275514400185531696039769606075380661106948059730718480883407610361145141485283468269196063382273127302609833907364595298178180305614158021824014864746058479195827582821946667632116570807776344071185814853661516534111879761568211313553328854017945189685818726769819387406006448674543038705113455453650539568163086125964451106994155950410093413772179600588443741364524019140223433341355967556378354843637072469347847406688991090778322092639265998169295234363451542471843139915269412808662206196480315023471897716557259885007829791543836381690124510776722282415020579779871945170604469668797863647683864382751613975960752378378776794774623175352500827306488585823007111474765032751696287140611682244261412899680875736288905608801798513717526428485175996091485027982265958612857474894087934004581679413418599064270171199945715206193336186491231927078299882277972403347113640326190913141744422553389073700580118691295874279135468623648957851250896738710778510363146094228380319080655294662009278056067164197118201589740582685333856521400042234568420232901902837633698096031869202722622766808387243973870376762021835886215374792350542350054926107310761579745982152798377699721999917330111937514070700469089798280826828323949002988022735623027450982935478681473621002483552123290838192632027768466053929850498051720863045290115570170436301151481425772914596691791872628888154845067933871288851137079386636656740745847506125889618886640949023105615922900817995253158693874647169749311976524443940304696496260728291486041609234968540721258271388335658276149139619833471984290560001237567850703699291268976439175907132427350805094503051925820691026914122280937351225956704494736930009196791307235798570672329344612812905843510958593551771119106894500848487187521549202001833140129220624708630032792274942254956954030909415471540303449082340631832555028634337317359333470121181711752547162277552135643780018044417765102597554900303368375818699919959940342285845081194558033881905936171293722027062202445454597899789158396793302936597628988828207250150230581685732133446144486907062312526337650152595887173142127489432973692973178075808934857429238478912338348720181262740927379548834851696308045683739478281466696282264569656247901423825180626630118866324277421430674464920978269586222944197980807024084904682906365519502687510118299713954776974749348454190195891386524284980939788424559842724919493032382038773323593921056952806166041543728981344734613239810196826436687450878713095753058015207301128966557118407185256635021830988856707314069771804564556820721373379721173226545779949032353566542322900172376322746040267144938438227077720804705472595653572618490247223178536194263758328552191223344097134742797306933376733961746028874880932615034681955166293258549642997448516792324558290173371202069540145653684064593804610252216113886663912107872717054155390764835019639512973271679417587145198368208412279480226037166788279731972702958989549442665458396968284003937587095957365103759204927345939178426909412462723407766209480085853224044582186712757364899240551915422856372607928884818159729324154728239382186456278588280482969055732912422323944295927322255578014643463426116847660390732141287290861457722064137569736990977366401329475609861296734077992604724783342670312683108944753876080995850293791197618074456663686727018435786581774301492279777437742943307698433120261774488085968347394825607572328551465843015782867905166239717994577247795266882333938299041052696830290239299803001193026419093931500420733546699375022359968981136240868556043146125253707023141804668078280090384373601568470090888212282412029564182207444526270217760242623605257833556252271236727634000177557197077020337949701857723042535620018547177334481658821834880606585007367683328706261730796623707953132093471200126679955162713875437505209433725630072272674416963754172984865203048530861282985171644262690361555352240272088785228570188980077694679123628945073711818528050315936772750939192158272183801475041573520536895138258131222752708402679004721711424595618522891226256594190864060396728829308796787755983848560314395303154540605515299297450582299352817200331861209261327215725536217534141835136502948426956078778303521925855310080994616004060034613489669869914605767026750924840981964792567088297709011523083190731936561637566561494006975598758270804276938172743243008528023282848712011710532812146593580733130037141053511056550131364489303564959000534103510406182058737655464994463711597133604200175092777384107301946072687422236529162460423269795136995436611348309317027782604803947738820997674496391798785387636186115536270846857397530632474888123243609873961565471070786349779808949788313418480611885864788574664979926327026802563756790441934731862737015200356889428369922408310856581810869705572253573633100880143477105842403690599250835141161364435113183508026581932333665570267479236372269995651824217842600007702280222087638021990556406786562929609837093326772916202485649804349196022658140787925631150736061863520972955203492046374373726365523214619695471536273512282837845020026938203270074023805558249745569767804552611201873707838646199111056290005047551810201159812001652326822289368251973485955373894236907186677578726993756741104061848398258637902424570143412850902916824976992208168071645761777580215266270204174652418889489596412847746552516608219743822423883033257325909341485319742256390574229789918070809868892795559139699852792733110192735297549577117171337161814614359192227596368665288278713651715532881226553168622876323654147567180500681965468639108838207076573170604762918696653272580766519025246020106348139754668186516833971234036070382348801987016852726041735885285986733410697523131355560379060584773615900355367994568893753823013203052654842751798559788468391699910003718116652924653673135959524398257537778992720921266658221415545472611438881162562686476304793226642999526744483262224578250052645258645686586209740222248570121121985186171817888866573714583362576926679128242226651659702353281076223186411253234645404489849682318927996541368752932852358698284290497945759125520196054674864844652677993182831901671276984822365631564451804913395831727218301640932215245486617764639041791551827628353582773914508141927229269812270565119107102845396296158729777047582170237965256246379862245329068519081831516246448115167368603895446168141391473733446063433868662114955257223896875042792551357381635039211938185311785840267571499736026577836533152337317585534801669999723795364734497435242612064969704716048198468802654804608425178317224234597275316617297111441503925049407603160196793750115190495067232140132435041537998451918553322251348242002252442710371497390384489722764343315960487593768550619453428363043923221738252837123674854825052342037845943307874982960187668003950463351028287365938388041253248196116130752413985752870409793537264788603781877139456954011428144268667537653183148191056637105099633690046403745978915261819594709110316091184454678048801191864146313500255964565489946412485987633897509479995560298255040720371094894595126112244748275251914945918733746355327336572784699149172110820288521980754206601335097028245970364456809685853910822146850954010020834030129368035122183967471279089899570737280255908205549689906333076029725124568274558238799022138584258704935249439663120991343252099585278086932114640378606791691128422800205790733445080540255040302535054421898276994909070694477053350038666711952385885490659710306130714173801727714971391587094843605486032907885941216651484292204545687764669437682132969087327779022949228803101680230963256142726122472617636169765847713204485107571025944377690474858328681793061052308128233258959482153812160022146276690979156696108939838529665700999588531490114050870488522464153654742347792752576602312701125079865098524135734936868945035276667024412308443087785955767075778807026322058213505669401082952927987389256304811644141610257354860371283498796152153912278745715970150517040727686672296603415123979777874907067285768094878157773848184246875234497827670019618301843113455382113914760844747013444364863587010541909448559804505526494785484278508484785939098704677526541871374620358704518535622139725705675996719311478136567768513482505534919785269261259117922889569638852452955828740873651107154463863877552748714537802414192447475850858628373765533663823235565578632452347152844101778409035677340033488015715086017696650197131168548306227859312674744221654727592623165199067101290778328491257392274244339265330395061436304957490277181055603108242140361668309777335861605060615239810505385431749202669896261633804727537186290742075204895981331173099072954894764352682016997855787108059457254901537141756208555048862742516352223313930343332466445953180399199928407448780707273015230113491979390812347841101749747859218302239838390304685687524318370738225071973264079099086560052844062131749540737832560446938611519493535994000798114518274309094779665994307342572206759481645754824423090406248051327092177499135383635506794901092915997541677473639802815812169162317600901029543222645594775864270738889504493743280174629218770721401787142147527217789065100158635386746993710610495063108919906182318498707812231973817728727898839254814522216005279898623767707892960379339374687851989894418009832894738278601130987912562969731772162466535041297569204532599178374788199517484988212944782649965935261047446417549702759772764214589593629521235266834628123443194858550749423340576029670952756613937968038990990434289131323227485062908341610195386825833329261130985009835893454987917698799333888832909467319368077792649486465245732276327142950796911797727924438058693339141945940356859932678991573726566969887325756460194900870379380978893703535803064309883301028509028252763825464262931165011178138219316177305443019576356721671958769658037770586368876332256930920278104467649542862815745156187444917295444305503400229046673736238269221116162093581673616570033047372527788987751064415540776813746865415832254679778076025516013977169654722786847990256418379593520281346983932012525293145568094059152849417922633249249324526185171563916156135793783327356739422271994389046566287145788467823548256323504814248253180668120664370519543588140856802178627025214877283784715147135391896222950585504612973437306452003740021912380146406675556842823946500887278088851191559926539637893340041779727498241314962019734899689180212687456951782460639840878792588702509896842627492918720918238631546885913859528479849091288061855495208919847649716899903334343231229232518490895263015555723588166646122053118477596260122241471435056521676735124383458434664922788511976742967555480229388836597849204923070216583061432253252657644326915333281724394082563550673687493773212447593477099291548396406306257537245315629127381192773396541383135856229377008887728039135320380194599748042447252774519905721158955960912033703031955407053671726550282839747569891244756703462551689701136430918587677838145850725765585603342990876530977647698525619357758939942867674440570466669372953095490902384029334118372712375886178947694976700429235215481133240699623617464660174703814670571381935558794571531919108043122389589340129495260687980302788880197995735001267667732663475009581203896420075603750167636609717493098362309685470809257564653887157072047815516533362110074272627043225835696903597304312175025779899289171950421753711934457447004795826381169561366137851229577943365320776145948759365596368468957009624639349866837613437216198635971637879323463569310718640919456013742906233135413321338737995345669748362789664311610494038608482070255673011202275689652451559374645247561961952782414717736220679971997595614979299380498630455307490865707135449134643511893609947691030726282012395927295382992805844256593087340025089346320259154518619120851400004666790194010259520280763290163775592661166813275768581097497308465157539721441368185386119020422679137274223686338292590680701898168092544523414099231100611661772039918327475964440328537251421257802638994419157105484008590393122372851459616073153393805604975280157121233343728715855040382550318325514809618376930740303298937286005839926993436518654341002046349164969276467059254991392241509175888921724540695472474530280188611929103371810002801362659294339400659941522269561462298214157464620522057198511310096607422114051441444789424754634908085698708332602270063985513292081185585146936340685888754836744158460561140270315783227370415110188312612314635141448751322338192864948773396957336594781550227160345956750672201248986712310670626516602729607572100619264313256953392103495935872921305605496889343016491649041436868203494945553890781114717295889802940493161567783984741759654892406480256133538028592387619021781521891910831017889994689493345987490981256927401043528320181748165776818046702754744754440588263805080267847612861389500411052196587652828978254558010208959041346287198711647335523999999671632218984159017876545815145761788323056109142475187614896082101051977366589964929230542124878794364614792423789912070126193917924055634366304223722295112605915743260085008342267066233850346275008235209746293567895828634126776505182156542983507811826133646134444127241520937886710246117482460830014668974768107279512409189204981256033262040581408060629145798364313152956850452359319411882295892338091070782026719121642569541710386266315176761545063444536848049554487356272254164081312522600160697708873036997560243270405422708188500789890879989988134509040878383857620480226429850286847778494245203724755405575639880430626664316414194792946442004278113667324785934162525366268574890984351165359942326205016720940921662980830638546683652334331749015410156348341399406993245884466711194629181120117161273273046387435036200193146638961647473317227138305594105253175605086402794875828636255994584606205842152435256878231897934822883438224140482141569535727652289696717543809040404252692094653657402743384652760665500017961185674386668890957757759427892239987119453196006108445809880710678246324844034549683583776998605720381605608648100050336990817684873868376578812550765789842545034160025406518853814157323626083855973124984991345671826299122569895134110367562969617980993432344880822485322319326655486077046662333716208617210734782399129502940371749988036780200443756388836014852434337208068418780496508944115219746180563766819029835365898748031065747841702733429586630687895360225884722034745418032583037600478389744564641888165878732444925101144703278836846644586863066018905111382213596902766325431324084967573627794579801295588317535725519411875758246767046181694470364440149802956347455477476149076876522623925164404266126021237566299989585110882801269770968243882155037210010002276320522776195762114690856832613066660591181053902734270261589506026300775200559595185062150244937333583709547626476730396642368860492421519944786771694760007635795652893192207540353251996004199751129563843054616403967063387994275018011135607560779855545911943602780633172920256504104774405893848646557529716752953386193944334453601329886189388066074530483109565566582387342319627975733405728703220559832392650089214026910726760940887945197043669286783165515221214404033459327823147313240698096924600794490753184635126232328790895000891091709575483480916314965093607264534725051955181174725355606552263728314050858978605971641305026429756786489950164645151234823629207051528526069352299131727564402393313628183173609184364344772026127843502070383350173811216273798116111859581737766686374307909216772260305324516976032117867067467457866926283019968339853708790218692082988522511756817252402816749453073916076507843927783265019518212081661093476938152179180511363845365745497338071405891362571342000611538643192995423381802518162396334331335333935828510403270122477800750790530347803028522508296647898955153307985880838149473714379917656624834491416947593169231648069798259983429984820722801007983982019898610520760809828448591996650801121911292669654492996477586690773162801987895377215820828511668935369662926601411269578793931721310875770228837475698769851003826465092545045216118741243868948490833039619553745641333764243668601094051813786608097919364942800705164996965703179170746434296848415769392878149276199295314147707782548120884684835853469382155222262915974079146359717072643046773146091731331158054639970657286342413184941659372751980103874818267226398817786224784604815785170997435301211760072498988160348922942985630244417578279023171498278313022244919509975365516599973947275176258401518000395542030765294344751268458899114475769910633894804775397772269706516814209927292139108727334178368977071253122351522259040939930194475843247346160736461571407890840734043183496489462805226706895112073511385534454610237375503164131224631923372766511300378346551333336364548419934522795528068761331247134307922885838230487154823750741604888418901186443168598455174609329542901909480812185426792237789008696488377966019031701514523314016012942020036958391963041972498054819468395362721328250120005867553837771913530909650886072529441537353457515912965827918834691545275310908452961943802770221855039407814969216158460800911600112497769404804209505348903451308441696860177642409533649974576324737192540669537386260920252793225924458641300675742845024180918173830541774305377942522346760783557915114987610748191816384160304491695013829671571494936828789169644297644770196146297544230580829079773130439475935435759644206496678929807151919566678706560883770081300196713418979344395280500444654232085119660094581729225785984249396546467888841488385484303213887839956910957732449068818166156229872773531492749114540526909843841363462215015147963253492472860307040193295962120716020511588382891854629434643690520741117186622137668366198690975181257176229583881680508287434818484717943914561331631924553008725610529366512248105736866044827073703319041683345972403547687066055571111495358171858200381171051441540300003233254255444198320489989628811847764350368619371756035757143758536885022034604994224253985828871005301407354448617220547954199877861308668880170989622270378898376665307810887945999700130531390900095843379738226475581803212658368132443659221947902275034116362171531622021602424761284925643996840206713707775782965727688238287378916898929048507651041908454707259966612913400769549384781423068280297110184836472911446116453751196139060851514109505402801323687208621498859546726625220581583952859712616370098034629469025919267970887484719112503099747528233036556710700791604332243272841929078038017508350261296525214804440856697474466298784339857726609550490586853824962885777170962211666303902123481207335193117878492194699591511324869814662058636545024782128177105551527941511322835856501731741691581251404041371908637175968962759724721544479863960679986147272339412497052343302861823781847397608600026819064288527247556235367707230094388882891845893321861504120712629642877236053266888068293170126799238023078306448509790160195083684109968933170831989853759547233005171087700188797144850185143906225996401454320802305777785344335409018346834518571926509876306995759734143362728529239981934619931503856380552776730747751890198805287505379350178724185958715964054717813572526021381478848743962807764715510101636266479824356385905449618455526728431366588653389025099636062559654038082949364827692607410832942525585942528780036596207524619781005110614936238216718131820293065159620903193440734989894069054142048224191063931246016460113154835992383273392902811638248528512440639114779126753850885502753560460493446615147465673164487848190946089489805522981719302873520293122404939072861288774258460943729120523338625686340713999162945790916204518314622680259501760030142861127158790532032678812081239459383625321660847441332922347798396536318811315547009060639776809971373533514795800603135470289256591270471885080182482233258491895455629878064358169403677987100967202519804063678481036457749507381134026220859730679188253102206882511770074498408015259928571585275359636000453895139047318797751304877431751103320104501408324036609614251386003491862648129338691197747959496197814993320387292224615274390217439167291104678558683886451370568331550878033279942003109306598390445187670634385201573117285598841801673897546860196389039354673549628267794858172695207340549256631670737487097142057923531093573251694379199680712961265785182225965548932951392486027724835282025675831550494935655387632826379306121738840564724386313196524381255618058050240749537858671339454874433648709717563948000777022489498706635473963921905397056948685916685052472836177375351534978491092040305311284736315370738327447175786133414526342009248489995576070013202044443155669249296496277668223168107143355742743482223813512343287123775935173968069590666223819919469274043532892648004909391999645066315592103007837180406114833736301019592146111654321601756078360398459673569268965450878197276532782156333493875830826239490059225836687367521128589522864175093141879365261914691114608049303517389042533312744537756231819077732733557359314282139394211197413538234801050049030125423361485161709867798272193447391365769764653534978533790408576044043344026518634021397836464844201311086896596470248018881291118705767276519831041041089156250663384856446251115074719119132406595054350682871904692732116093056627734215148023903877782287854207238281826623247578979587497700244631833022319365870834941691360944443277137742967275338452748635034117182608082117092690482807091209244883135554111142238712157101433818419822078292858061536602991390945621761973869083937296706127249571563210408821502578778559351880777550116249473344306220379401747395684339750421162767790866975114204832944552048241402656018234885033848744944408030839584121431842871170946324453154620790325039710177472282761423874315777832073308696472492821177487062310248119158144838151682573571080389738867451063597522935612494819319781433547012388694055992689593761474282754184659616214021526003199940061414627700618633465759799555850727759006800766950004413061376566651953863060521829338439536030925097066489643459338372370099597031593782786436378310951512060964965854740565688521533671228648896428227614378609469111547682361399452147294546528419369700734771834830217549590537157825822306023768055715863914992204486978098661528089296580214089773995793482774000931126058426579063423149238485235651532823133685488872612936502564345709147257775488853421942515110731185982269641988030550917887749342546477636934490631229648604891545239581218575332097371654616876355622651197715099703342992914096964578807320949090155552063525858953292403670629773013226200981363265775655343287045298440825756395591232249563962227566546130917180094978126049136791941508814847712578479740533099887484556575568381814317529920299863821770611314657150106082735407896212305614241757952887310488185553116253900550974652935613590421670212841866483871265363462876541444549630566376629657667613175790232019530628601473726371558955464606758142721776446335092611804090258913167438801863378837844305316843779001069885989991015345762627862682729180608858245798784198507163494132806346202439265844644870571455011132018943509609192811257156210117879406448781851474661452343409811958283990148960640949052255705695180792573503179177741952038812489492918301538435855359162733458555933779037748533027227828622334172793693627529077806397526467953262526037838664493465129086671898747680456738644412266778530412965592271875256816990222244959808007756067232208287993299131480167655328993585563626914888689089281146286860860589954267882534734864866473589238379377393638673940826234195725682288568952970535281022220689158087080042326121923082714380004397004225078008623799652905718806210449101763528886231891587029441909247981045159296057094841056682189662800756454641190854130686745715571315572163931693000125232789437284284971265944384681121260117090459557967922664270095552431783503089389174898315456572051870525501222186381199911867647198077376170006116754873586061321550397105760457630863554597626416233331401611549839305759847225947071701696504362233734980374892718061544827282521604073626803481083177821905445756378420769765112117722664560125760309180086190009493966601366839367611901385605342642809472160316302087495601034141134388483533113360569382538838440591014789531327591403302424900239564801130787869557624348625622577638480675712749120527974442472290129653003177781989675040212970266677502262233278742981995247920811439846316837450165948067492388219823194631503164188964214998645502802059815772123036319815880987766998998529018907522914925806020743058782488226943411179478909496913512279618710962731605402211317788923751713286975292424177018322111451720825064539375530719030216834010122458348737828939523038249101746318562773022550650492930149605182418166229687091192251652049970946871415101661778495783424436510743190572725754225804199834848657177399202806076355545691105101833714208197579974731047265752476412391588239090390726944886970246821982446417344576157869822961472821751553427871339649241251631863898514011229504997911730189937908448836194983496685726403042848484592040099047502241373145343719279313323180816255231563904229468169697607410826622092215760897918056169248516628908508660750316357688921010447043093118133360097935398919988375221488655923598165429662819279009189844552314389199225185771765973470020927061518760465077559118405151956561784997691279786191539081330409661406562734190007911381036713219610399033935667506915571899035286876411489421208469324034166999986912740697858373835957027320816370000410468287630650319441046406524310447518628813174371184796040668535084543339185055871789495321781082245783179997669276634901040456343207634145247620670295076671750733497139729278591220952087838295157776557499197460394619932455767663031519917415380190491078315578252989279239315187449782042587726778838558262326774095894115496538607600948263526580442388384858241573285843498729796978685518524209340343640319480963436250019252094501484866386423591748858400134324818768141902116016869130385804639088229795222251625984949809560813537958611918197030201869437834282766401257557278801849488945506422114597800372056363470299302975105578927859977619475388662000215439303090463072742230658372739704922659037711961039474540679716165253040568356430693379069226979089251684917289377993903333919739453890497874281159522226601848084378877566174603380727037321445879376585659666628130505910525719425411249252939474623508057905882477711382371016363816707905591409359642811683692622105869239058246434194503389369077714907076586459154760371576126156722873540236506267397299527557528744860465008479795752908171324716636115220038559520719370184520407174122955024456646581723254302873228805367084092110274005687708844658116675023374954166216038975265892310120589000537881321366918378877828258805239184065191441495003465253932529331346039850909553767711673562252130307837264666058516490624045529808897039475499627799218224329140272774510938756029438885903714029231656309755273727617480144786556229733466231351533909245772933100343133432920545990932693756915103754813696098775193686420150127879313703940564453619544251456403759099906580467423647876143438711239587814493568458441306287654101461367479646446508466809143955461377380834466463383581476264826227014973418399076345286788128589690306929410297401112698120042872408151289063363594876764148938752519503413915103095378726118712142562039804801144589998744447352024049199591157786855498854781869933966698440500188654604912962717337543799388734455825734549075674686057412799044003124857398871556085772222510771359831016847720226819549222910305836500503695119816535988201829422927737591066104826948103160159382818574654088295848702703608001664267300457449669801708042088127273998646049832416102210319996184661251546601550267745247648347840980615049697324257624831300814130187291242072160281346909412692950382533267191252742331047410710894685917483307728740249361808380264988103854512379685722009352671610352561167913554167240762747344667559291850114072219823143159430638237786557982171955054901203993731911054331363314066056384398654972317802310144759372274250930822939275473788030338878962887065220677474759118727170434766534177349364146418017058691686691538816944749361032350193522097612789008859708019189244707498242182280041917398062491944821039861850584310435530753561991712411035673667332561941109782890440203324252054688445551017713664971574538431495182275854493454959885288475643624292539756696174097232294253449132366554608398328829261841636413305235738364434249378753362953160718294053450042428151286946641081471306730706246440314392018484072659380647464802445268281502214077388327807690594379167807603174340711063155856163212786906957126636509748671153596951784532565363174210425192174642661107829035083001057555058074532407364249552013422514695922979244223329256573295239549223520321902175858398617770634229846904897970502174251897828614203866169242979281480165964068240705457642475487617196352152447424872685515716143369811758109778662923545185007428816960192799572362690063175154184995686822172473990880438899870886297219712573820933159113563184404315903718238655642856502639379850074578000346469675068539179106156366654163899811678040146410484707126240530829716603876363837674909694310353912239025559148201305882680823265016272613920088535017962801576028063020235874327650144531177348347108011969456573447635076684547781253057937777541071312631086012744444098969572702797504427448511437268358295540559412008593786288810348133711819268670273596401710964079576817015616189656989780120190701730406857290357647041985471876466791581879685342808490322597222724569116896019288171393516450476218932365680069356238267791962637447485263755036848890906058049546268812793201129736587463271846418632471740411934527538596141804422360930155121137904679422764228252199946334165431413811552920408541368761022098550365765175195247330993047832999572740291906691337356243059430851837764261052920230817110546165869568144660301632348359306025035694019303378439944670545095057941493605036272806869623651135219152735022285957137690672632053202058443445642790280240278107006599788952151537177081782609183191748556130978161126140369490883175508019147989705796850620851465193442507470482138707141576170844937791374979636997859463733622068197681879461623253292175499408949872810042201518873693462744831024240209046003390201557387737995818208471236333409504179421420766961720791255353952463297589066412026522360066344589905559766558861581349220297518606641710990288815752249833480080008555132980116572225439681962911518677745021497870859325590321477088084258518060632904470389602493238281352236275133079870811128099273227329338156996084733972410146263952816742754543503861174177950145814671497640247213377067050085034434870361236945606359141900252084347981675584311489872383950691000446569759327690671412811745602854427778480124773105786802747673714546871265202537243946017108926567369831376271211266414258018926717313782811983967356443085398344657370457823387274542238131949534678738780144276672252185557991895641786691117003776250693340699540753190308252693867396040075322626360734703696013080332926607808789394148923381342411880825121050977113710365281162521756782290546781565173399149747859403422808035667587503976867123835495125546392607888902307568142426827874862053270892710855446065315699825370227771740463968379889105862949238776200938631234714063953472333838298152085335822801949836595119152451651995847375621007697749572485610329969099991385593513104558531171761303395541525830070218597395362032080456224172705466891449677643369559260128619098540163962713591753646274972679809339037719646057200832180089768665937703733730483274903069874599114865377520778161721704783760033043293008068593760974832580940353488654411533495502813247953668468195593830947324768806566248624855428428338881908403871604333313868824798646605086189825743887931454398768336753655484164075485856752734977082460179911546803664443749486335585723884553099952515678052274489123401531940266679085271904828644326487686899735376874201924004528571387997299167725494189849480117900297819983902927383688415481785822578644164354355226104008303502635719900096521373681643069770995419293628266210621621159644841771584813808508526656980169421329014059170933312803082862155203081549285370670060567358182828755930770229677246443502857853111105974241077598124872933328898276604889137832646757662699524881620182877401462616235236413110344848670877705855366354164319689813887164714100364175953517210769999003531590595397268805698664442431179200930062567781719479338793843399965850079099642194960709487403276487407662689067702103646061895650451582133743598225914962012883456742515388485115020690186574666764754114167268757142456056221157978509168174874878385621913585452899652598290518928159957321909987550290790228025871824488713399888843883657667065512531246301541898945399294723162194224004591546299164485677865490180529488869545669331429948595090223433468627182596373806355356651034358610214259748159377301338329033321102171370978806200210350735972663702492802843101011576034511364611277290077270846422874219670947893805607841028653488011331785293859211034961044921004037024306223945217478153606853081128764771265540605162696024013251185511391243261236422744747930144656167337064107146447921138040527770093805921391040679614095856090726186672429702653387323080355753771812611902414055444932391398253305203951959381628426602124458105466761021598612510408529787653093686574209937319476605428805911889397314640857402484109595490115482172222778973316429732997850467894137868696380909027299449132514492486612925571100063413999300578042885808347537627455499760251413124763031585218072017245335704861519322740793525454651800375394441613088857464990750215823945804831945920868519768263911963389662825968519947274741105548185811710144885865750400952605432222566979819525326283351552010887258450614079882672056969536021536071035884726387548141306177490270689814817437895644953215387458380728622525180103606376411592993291291284515447337010810986968042067069480312936344841029713805592226652737516187129879278581730624916201427258963726010005003020694076310475339493820200151391271341960245493500699423460727625899000757753019429794065980288924492250810128403694618994738547928272331679543756380520342373588588250583747096805503349949996652651711175599550666162645182359303048690635468032121089216474674433270905571618429964882375204270364103033673619479229075921212684604358071703765080144112501437251289028862938137136916364683369990870562453044774401218930855402499063756693069140367208491436705893717323907966730066669209995935310020074128277272617682383487551244785574528946097758704374906762029928878695346522200418904962430847763059228908489249798932126366240210119974956881216747682185701381041905687681989706435609246813617280850317845086148250048786030106819733004030427088606242315850478423677571932795050059102192885129114800210406935482023739845582736828437210746555127760927787779023942265309520134720410053668516947347912739451239497085955279305387093295207304770566789720448457864134293967579364064985038943073264766176873046954787629065923292242355367117907498601535953689853070264665346351786541599141961628076235575456394813743904245958519420132457854863950102213825815382654124682866398118713950527416340556715837225429756351208025379386216372317898682243005286583499955742469331085851535957008377149847407515592624609504728245046380841339434336023129984948682573432393531708596305798251845521508614510352923282296659400506040714193469728509519121179978305568504612805847533223242763801419346840499586638863745842466539845751111666330117406885135017837574820257277145480407822348362026625418205170483232897815377678572560822935114666049170071728402112631170643186601764916953007165185469562223970923886813401192877530825974979764211268824213819522872895962915306333406419059128124116668435826302057140561830376750565187113546474872606295168588433608946584490785664885654841790543387845984640877109657404078143345363684960622490215398079999788078529648486439536297709821206266721301576224347039374274317431817038824133042596656642839603732070392022437899573562264620437434335069494237953328530336083797488137388351533182185894055894849263143327348101439534580180401195387382869017599716836679537825482406536992948117328977653255890945966132317592106051149242345614466082638072552249514805687638533958446714183404445810711695222933228476421520903498353074888269703855341363757960358974245691013223138623167941548216570209823906283417946131718163800744832282887782043469797519058807264485347399596117429966140098839805886905107063954035830007516834613913115967809502966394502103279244432962168374682759225259676705808889568808444529822590331889150513909331852127375586897234443183318901677655046555464753555020608141810685276642224857143484257621520473646140667797439481010873558596192657790800689048835256390066637621257872700457504067374218951681608964912489327422167471955592481081431948169114913982044470337083197845549608373838445842194508448857588394945109026072064630916655404813498834085635259797273279308781453285781034378360739957537293189607612726505837222742346197983879133585317257000120793922045753717274559425354135048851117817582459153771198162935538823965543929491043156032508992608380501156954538639023210591504890072857873444640537421213188744966292756098517906318464759118430268218026597541050823227330522437183371547842921176210966125002556010517372506319962015101352318349888397087074569482203586956377520579876908353238980846178074795960333097360068522905878691050411579708438690119389403387749488863036430794745540500794921398526829706506275102112322072947094095838196741651021691582942430542493578045021445842731575274136168044730212023232215379292277175193427690548186834753276475161140161415377219172878954952586612039907036086489750626627734017162523888329517871912728672602774784419353513330615173553435491948790211789099155894869156559139355514911377143354764612456624817268355757745357516417498426663358047597713952397849772175881319229868418386461627128362119843517654102565394442704430754116637571465181814757927977515318091055666425119399710624690195994977663235420762321277885587364951117384917415087109577138342231164414590962541148777427991671793389364368815384862860300217504922061001585368202413768229707377727271549617639457179803404791160417877684679982795177779242716763775401269502399414669348780936772954202063055346025039294118318732491197618269235968482366618488470960475111986680957040229848992487847423620393955365396983435673228472733382525030662563280477991452385873131972064783087888734144989451286209011786459993531144365369740846040769515909187924519412247513854235051850240486300233546024663726014636712574249790552873549978972814047669823538864773638865936092417652026148900146340641237962242922729198315794051743647461659066915469697453213455782076216669947162711644779485303931519204646280492830764509712828241332906178022904570983877549132125298642480649806751324201907086893597596593250287036510905324181184642481644234312595445243481255535080806563436076316109725395485214396378781938634815670507174142580155376338585986668188454348969355846891282891558452024095549489184749189393115010339010924601811453807798146886578245650047931596901221900789257161747227125815248078874098190898423034625168456977108482665257069238194222425497530342312276816498247713390103283893312327994829550202018872998191573997151769660984832331030695837049090823587784919215787657868285426313186844765887520513049807672524272676313872937808647077780888857724119531951051848180111130606849331945884739621749820454188514725624615314994218028394099891288025059935939702946975321027128236264338847090650354009920786365734169583832834027560457875049938740345655926996050545133879339088201928600620637114965543765765864564371479778072437909010909208888427805267100738129255758053641119108822028147211548079302127057265347959924371937166171154447507645443558929813578028705388259310923310094082967252331082132204899635650603226261017462482536852494812244910365647684324651220238856068769250210858618307825363956820474497730764224804454389311506706902409143136961308864912103610034927262413860589382453411064184900417189541905862543476491194160227263645503700542908951611343604091709526179768732337225906025562241817528140068811249697572389916347271894360176780030278838553946609561880371317145170336121998075518368376628501438067940692882599030642929952085256716989521787837733914975324308010478333431358357468515082836567589080527203410017579432869617433440773000438361232325253610515969237275714854987737751841162355854303766148419123558957325839366110342301603631940170313099900693495015149985914099214912072534006201599339294109628426032680848086404106546390976741056822173050015988884688804362167386248041043587771101255890537206168068886442550132601450807347791515522000012037760011559421621389104711356658302840331053971697166765377915841373723808930977879352440774054586470434392026483817104244891816081079758066335786422866623340317790988332479146202857331859952855440519087597926685633192364514113147780548864563790201314681072791822788596086547129372333765765210428613012806361734462754999232778432184788754889253880005078899603148846194179763420596366211799463986616345091409242635470653829419720963854646422345117264848452384203153987428471898359364181712604234100326568403438021440374003632874624301766275171628278415349719042765263623424533757838089259031074073490819891095019643667236389540942108937612649427377471104547054611404843351419948962848571364832909928057305532734297891096368613863530421696500222182599281033334104376678421541744066327846346266831451775549750241184852149089713405157287957567873156442650013231747914041035131224331496797677995562214239382107875218748435428300053164212439269150370258932091732143163060764048865944154889769759461796047480194497795094322077266036997607853164891646491433706347731924961551896344452084424792238912111193369249598535802913906836979273310635405693149621850591148528232170035619341064075661724825288276195017646491542266854409525302649465984555218009078047275451581595902232967445625848904441344157586856916593014164313293652456316427194566795409987893031035369816608905103223038489617111568873144586468004746041817433021503244723232626510231921123765995741142730356198895214218768364266274989003070919280639122844782075976936829321794154479560164155165210621807035529286445760510926925963543817758755028222000752856640795030276792979423500287475113342787741050529526823967075705662574974377458997420768393019799769887501208722493750449086750682788310922724359717952534773156321652109178654861531948860330892624622135651137191827715250279496197783335081034641091883044906272640276990026105715825049154916389479460680311727146910919839724032783997063104235402231732887872552412259440576016225215598689514880493209742596033173902673209923500460719931973670162833280526644428969960705128620803662280574438997522605037611734807898796217084161361591537499996761006174183893135440583894697444722367070372819669685922106927289261551491701696749493551482420846822300666918450981059338093014956361092674011806635380134681839496664204747049299776444489133231230286961726631063199161792287706677798654455935594271657707003617838452644245989817646363662001615712825914193675848902083732125777507270625232235449862780975392422964041014581672255733381285699893401346613647321669962440407424464916792135839059780995018587582426364406790178898793631649459806418774146194873262297961996821105311097775243596364190313059727775655092884105016634250244434939931545163902944412954856080779833731471379921443571245610815703590900684436203721632308206548671931699106573938118722459761624670751185428863303735620250513297491054901701868756352789958249738307809273226978101356782989814158313619715111820818418105802057788100961523730787037426198687145468779882188568608772972653827279515293591774663481010466203091569234046329254573385472852128033962285124202782768785560285061265484695995836766429584088875114530490073255865889598081594754076091581127568371855599448710204874892029624966252056599977055758321250661658977174771801012591231581839486215999210146903060036135541503386571261620165302310521881124683637810231240185223589324469160904505461723817481625888794557844404389051051273253590472109050703636446468905044535526656436558486115815991876862797954824790705604667821567314847382494556016915167927654319319692618631059765232236189794999543288584336585142361422709447661469750359668977602751662101220384760454945089949857268901977448929678096360522437752370863596442553358759377167617644969287897889950717407142346955220493133087254327132517719657993447257234029228417217385187003928162781808330106886511645260234079081542888503971764046607554301827974699816614022369370925054621598317468954550264895123907163954615745120399681507216931738764158142413275977559381644256021810203165430956647454855087913872096254829954758484839331212083758455965615534487567397010307492621097005144431967886333349544921993465149731236389456081202544762922509595338162496352815079629920077714151163041861168770393712104123208743553538397307879575141874957733987081632771356072388721117563867183691759007296911896369129858864035730368905105458658033161050240459077658158745108924953875713944195960496220474398930669499431048496805788291561678576535219806043440370668920648220519657097731672922134822246553518719036258839526108912736336716975985686237257039384969590774341049408548143885617390639698233811868783685191111334236156297275396382842672328817328340740901279354393323738642101920965048455848282833651614595667165720529481822826269334248229451086078762135180688195909781638675180573229914654542999244773210175067899693740428423297433440660192937137330960980104365924281704628213188975615467987938364939203219950887125688050194154495861452974039697343515333925449929945241386145009571918136147720138613414954642812005499933549502447826291518033870483905706824860271568317158743906076098440936789708847340815098682057276220410988430150082365705204113294071835292650206656592208651202488458674601816615094459819864333775083332134031527594451142802231023827794447271233888523344896384107045615954208222952627573804745469287016226750579750228823474603161721800447571048861417734861144733668289362448345189973830258232191565098239308351609857069227703889446479196165999301664110046816225058961138102053603799170426343817700366550575972480359920967879615189474417075019086280203022759098253497857224557557644522003447151073036648274253613049918580610200611877511192325301987186575669934453675420250378973539659784996286707141691947493927693929034610649034143634630212551914643937816684797276132919775267730411333987850333586156347814438297630507165409024077177116306285825367454607616410035747246535908245968829827879763130262732967341775442918433416167198065479264357506230707070340973702788154224298719394317888998687483884868311204483885234297063719506064880686351098073212471729334374730701307462220063434688553924172451837646090239292382056658891396592079552533828956758808329056259411226769580205637820864335020739138265080124763268360994961635955243591838171013781324053751569113025294005410383429074048790104852194806566383565211751202907933192328303031577248645993427596261309171368965976855220516581833837021635181240513418729673168605250555652279060217399807506612060074062244689552885924956712683656341499237164799065342012617218735973976109491776054829960853215707645282761596399016188346742322497918974407780442978048120569978544343132068184244844824374795316822625035166227968455033222831306348685208982826532087533358821204740669572578705952962169472406923290695533159855584737148026824638192542645695221405354009204799148761115295665906772596331392498117556499271286051920742011601295874951504573492318316079636642107428609349645142012109661637321996320673831218148355223102825639593696539773374795351875168902811675104976106602298730094446202181786325448212304639734750853509812742442092751603475679105214956070249780250536426145084397669599870405752462431723773607490109597787543966579430262546747944630571752166473618005481408904984481488176702608790961891054157670249987963087990198481776222514673348859660899256299616477564473477141431087509275589225718825139613005192867464137536031730949729704850855421928796723756315874411279510470392313649316980598008954842833014920159321281359696166845466008536435904476613771911644550666583384772145382834210728468510313435528011558374754065682638142560257480014820974402483530352953889622975262521799257139732424511588739629120766793192026067465061728370323730014527947658307841327114578008554909449989316309088061227876415540641090270467841237366376545791508401517208842838859618102688726429926555246165898427421479769900896612311999273182746111199584037128295664338456535069946081414366782429295002305560519172652467612259583481695723737291397549863090688962233870617385404194818674552445563769723053301459921716404672642104241942530182350617778192621257503146116895634030435099088919025356997148669049727252441048685150649171062159146701570931570003338160119442680402432405160805024675531161632635983262252269706030546920122006104538567293235222596038333174251671962332546108091844850707538152249971495318421616009332422911793245596574438683062239787241578011799949188618220394382847309601967066197587064869650962467853454793986849589107542018508940340753228939961832435830990001280050082630044994569178969944141000936971385608104817021703340477133716934835342811225829465479735352513148328361787624738520544306359044572419640160794726571306642908463148715403291600978057322291076805651609426031727434482593800872369698174518740461718500792527588133901461753067121390104183092870036226878745700803388526391234027145182835667476266949283733161917760983754958248006192621733906226865322009340337730564109605253927309558373505047529152102247820662646500321662873593009129319316591803710066225016904509154335132630652636673720384073659178954347029957744390480191535777454826356121509841318738227857426095285141491728724409900237681982353698211692501542531274798167225419402665631917553605776020708470077792328369544085067673257432853955352507943280135732202545125077619267406989769866918187134032677672283619198942630492092263540371750871373656240363850975055860495841080205769574096018494837079380301853416398842022515811122162371122776915002243117639523262837924515947918880894366431743424488371871664334173911818886313069503346893012922819814564746749896434634523018346409942258004941208701077685736925427276995066979578474441725591835564705238439657962793896835909987316051217005736812177088965249230410065494469564207032571682120716270826304048360712420204653055596200225143479663922337074542757045496608041042468447144353180421161993355676509770547663801690903438301815314806218841205258268293119035409941701955424145172201410496887521831477278097702169935419715390273122641870197591146911041335549219488293209161254854798233527803531045410267716649314943236994410825126925106800460933941505907552670442724255410670155169070071367027403242310590450370504439111168236690524119361137499457350104179729650842412322071349775394191820834115721238326388577475277400189007063662597678429077018728991254154482138670886437528169777060136234877815447657746845044828121166810773208278095265155256818277783738216581489375356304863374989423119236782099396052640792004638108211736551263495720379728576016525014507194983385691041941688526474140632311603380425755937948475935526669443694483221468484326597339996244989401217916852784230934088979319915142569900981766741173029165898530135339672719238581121356937989312020068761496630354709413675655327779707615312179601564114186196511323673524355546853095774344152090528559007516918666729112900953160512316803381500717148356218636121138178606447639290033119816864627948818108574518709938263066235663270133696561929222706082879556713951304233925173279113191550443065206038296108339320823793817540208261088707419942466193491954343832952227148989797833238606417194015937786505588978610064044567932473461817136313183941098519065183757289298391415969555598201023771109259475188333496104219525983091315395671139129599590295332152120041014807145086136514305160984709487795073284618903629899492038345866328274487408148040209915504699738501339932772546494850443333746277284356113698730442365953213620077157495072189503698461342838333907458658819015626472221693785311797658025429575656561489792916226117579854389352111697576765073172154694468140743641008949161235686494853184615279704454411025223612982175317998158123211796656769157709957654856009562490165653572740688254458400436834206746835511788367486219345552305308023362619533754310884988863114877589107702562784885655452105735124076352556416196911994858116230684987980447735378603477581802720213317887997910983316952375560728820018506736705403427627294160208194653331214715020765218841592702099387177425019820604459391472263768682645760152217465254870238922354412200318025946788054355541512277892425178522852689092300733479389556513658595020846552699865233510583621911443965454437360729106851241053514184681386976407415449305819245403913594502820261584538916240086930252873299083880109663735441189890020540746503139035302745127432072874763814766557065472137629309627484537586209928605375070537151536130148164775570950895341624797222866534961916387161073127248540426069841631904937653482937744545602882615585782089435506433663909322202413007917563712398621754606564652623686116588852861378734011522351601052803545938031283421020048961450719969870166702405146017102896959213130613402647160402717741317516442608613225855420968228176993067079995181737887886711770996114828147911788316142881054870329284898432081620728825554315963621457725593183495763743755524502529303560438449512354148202935055141994735476645309729341873918099111748146442807799551447452242189131199951402804720348342361334769989796334159821791917022736720737325052646370551837087395143558627657716739304496520815339759542836920563202615320095151802343155228918405144559794881206202030392295431549494759017598211790203932518804495492421055901695449010326977921537302487228219401891317565063332736654045512727402136871984093745812487264404153834664864212834065746913274097895248392335290570869595658652901018192509816821087464819358342666439032441153415419789312330961278486093254993818566844673042803822624988993013790389774981961021412828619984086267255362701500064497141272317565162547540795033537280608554645514251680688078142270969507048400293421698926473286749749799746358205893595865516110599776703186858164729375797187296000709395683596190552161377079861848301006735643178271313777819569468069529280393243459940446803363226345764444780006418880635347429638231688596421134177004385324890439355827569588734456534967307252882709558489551066036581924921196290562514950498891439769809472436772218217731913809347832353450606750152284095309225793504882582866902333443838548474359593661885801934157455260718377176107190133917571803695123841400681819197144001854847744865074670563969625508949298292897689557855382543766225759403616334492777165914672448684726812691435955811018189913248642419384613417984701803076858807274577112997103182832141508483967218825455438345207793891688145601076061875295731436399232304281532481494356427166014604503292629240104125289818044261910983889914275725308569494885345086808494442501575363714802556071276571516016651041686582155764943706405489798476158234270116927252183692471965237678579148322810961383702107913051461076523585142667752470403129738935683127186190447940513165769606364709056093829881017601736392168054756389917166990172971975824639932375032037660335528346945034102044142057028659630335987568480187582073705622885412060819368922944030499006821021238166517023255597176630823187039032910284673663399190249578105657698381337714254856015927013937600115141639540310407514520386693730801785179881756785075019717152157903581290146847307722589356948094687476135327187020952742140315850238330744363102172531693808836565832221505194866310633259637400348681870693977512235651635131543820345603458988886474874755314705330822286483180947356630790923606108993361542936250930933413435938926414573064344161365585557212653722147003218542566761244315930227091793282347837317587277327179521942132142759249558951086961896160258569406927103530213752171983091575314181576647047244906327553583724858191205667526921956256862683280506234703604526411499355328304668962447199296007189996528441659481730082375960366626454102400946284620027208691451197947349430204832955774484176116514701430718713850474106382568933704036618132068054351798426199821275757042549405638903824103329338192814966284065590315887433557015515947098117937551150721017127677415659367530959003890378057966159859148878431795726863645563109710750909488867021609185462463683490631705764293437978794057473046662626110782361069486439505091218053456191881111981850826355318978378995360617803673215533732889234178838732053112354575582029807350197186323960900685525911617135369570809050968749506653594547026042201261594658906483202208163667042784275999266889495580625982090508042638085934066040944414335375053330624279008130137260662021817053196635829114776678630597530839676128706130818331656530570730449928554663838319312035837711563733360772145011255802602075322068285412709715625619101785487544355596898252156732098774922577524175697311578515032163377644001110869688799386146574687369077876447424589199826120814675147244967121969888104310379205876652884138578454549736981556377002009087923321133944378299266095724714374945378577389086769934616532610443838953346840122394125067512020411872347259759619838301317370324354715415453676033662654133928092194970016435555432620138000666989164186574149528994895314408362949907685157107702219005703355522414143885371444794220731030439216915693679539564998566911918678879805674195217537521267478526302802458789675270406347814335878036862122854533597682035978695822095469417956046136638820995145402650482246759819662974461095171975332795211880838366243070820490448860543033097580856117837568232498951769457431689169712229931051504282802000468419207652992762688830749643259566360304748755274754359394706737270105542637300061897860583003495022771360547662658130254613726025996985763277482538926676385070796929751522998561418133814322553284537178752648057856197140398434409575026852485220280220945830898568331395443594318767000224512464149931832807772444054038710597204175242324625647578284717853203573587554703379799188144383850669607920268167526132326492697325344774058931122307000557326381016856258573256354346957949277592430007962867099478066234694060799939443720535970029143807689281810764261244143361107909783057128216189403134762092870760918837792063811485864705322824906873149568313670514262306729081100197259665558128661105361825308204776574590824929470299353282104666051247592963482752321700483257667174409893364785277101479103155973914444651654296684865559236614916049479462660761814784358095469947995336015071341602679038640759725844289073607086767291850935464769531245568584472468697047287756950339176265065563222604531974031793613064784043556069264696635108408928554386700560329539751367857957280301196546717055689125313028019447841630098331728786124852361849686677724019700769767001199248403490429750117955477896611053070326885944858038526015121888912382339347360756232169252413573376236972988099506732255312054646248166469193210769839337617984328248276134559012594549257383625824305548615793012169142922197162942895313776755913749497548539817517685149741925352874890613890979504291436809879111093157734905003229647089900237929003194609608526805752976954831626385204769651118412732057110976259647939825484532322625767799334554057362875506547585552391234431716207240446753803361251111766557981706910625721891380109677383305567198243324398459308139481346097946240444654784142987798919087401952199002915437805364819744479488973682639368439891917551695403286968831676181949446592657379353256718398910665978047552258296572981986847955258625544847615001264749550862641986968566554916944966851178475116223952106989708983996240918904300029562580433463622967493003255405968772970841606624897628940998908237054393431907327439165771861689796845791404894806812453835691130534992283920252672063022419501423251615192392616452920649407968479092775788435372753147609587115114036206958849911625495213109539215306398409364054817077314201226880658867624200837102966510033827644476580832424255289009188153391773138551323793283740573700604766191739741338594086041688382505828756006519169751116324319904956606665132870512963837022177664618858712151127089767786580767239746302005600917332480254189726204229578829441488161319238897439922990127912543077570835075975686929272079990402479094571484011523229315044341224161226351083916380538038112169580233397217782931593877497435259179292339877162887825254315460663896873062096364755793165361550709371906210854030170699038486998100768314589436364608642727455210396044362755074263832414196218227654510783435595046796914298347088191357296486991398873226639996593803633529695240576952690477001009632095051090023998110093581380949989392071954926696812274622701546379496794488294756568645517943353667833084378887704770632522875538139552907766419873979520101273323773702621280746773807613151761344352411435060696068163550623691117036790124411262437026641105308003810984910901780649277124959398229373189206334102944606942070548506486077712350859425874206042761037450808950209513698707026206985795615976509836717809502511055851670057294515801808620379558837632613308741268090622615230570153010006171179514926079526216970899243054536213337194688921549875179764567563085514254666273045101280666280901458225137283858638262960835616446459734442296298071908474165219688288564239703657617297352144774147358932670148948576007008629436915125467318392260255286436156769795794981362102091941549793890602850793711822821392240867251572394420083697950391914377580461692685866304044173315475583111559215725772912865246935746658275187320157852656206894976400907983237564602936215445479676467044388974179703546343079035731306377257416120282277872224257784087611423066106050631108854735838907169855667522128759379057655436425748216366370833228556721926156728357099165895018185770246030384232051450358299613885594873624832915740790984871656450057609900413224253900884261334081603334769480062552020560101393632911202075614904956585244164510508254306774939501348405210215669072305193390795564166836935404580481390640158268922073304388640304252504311539886469500154373602215719345461777609485741779505795972283819733700126771411638649442663044710119678809269722116684419651546793503918266286436201247123720572206489371447761264478960379422871798983349459790018321197774324398577164896609039101512000767700406051218703770156712647254083428157183922404547164602586773806096951823408429845592020232826286260089742429261221446586617451020647438571906568930767656313762789794840357558977859595829807512460382869636678464285968495215590697362778752148785476056848588965730797431395403023046654608565953519434709537008457496584739049756072288744692445759601161394565928334008628397621763467702682965380241254846128421879997150213246244700616400507952766598261103921879358033650877569518084311202339596505849397271193412178548347324402545171575971659218089522934815333366007920574518569882034445142813106072540624845153759371258881978211509191875832133467748822426960763424585655834821765039738161819960841604131480310952419916504085070579363457613236969550193541446533395200007888825018102088315867245138749423219315476106814541165535707137491252744110679893046634380779859629490551225399476757893799668488743332792006420203914715559527365102910560619600239127837642397447263329771768746207951377651087441030292959359888264110324692898092493629811157096535722105669134901057650194139808246009564229548047046979573170947816765756422034282201815396327469626878554687031120497462070333209688827980098789134895349653153559786933261025071775549372387351143139344001346781377009182519821791852622730245444451982103565840796917220938351038870570539498412083966644791491452202046600975967057563386004887464332134648459323543284912572209790928242228054536413814765089254797306503039954569225644642078205978008953673504097720366930982138928471478628160999028283386166475985567958696749238895880622497332866854483875039327689073011139170211017528109694076177599350565889946831983579458904917689511726504407626942279443082728973672124728018627120076573489159517890334618965186250253134467608748650873860401561595525996985858420580896196803720437149864562155190269552815673610613804651590468466020495469181775945542636109923625648314411988192968686761773494254005681655270266549189859408673870104682370728469201174286136553836656263212476229213426340705655282280029725804388684819600108752702358766203787600324717580741035475583365912810209527473744173541922253277838175451368021895857977086099018977574581955939180685303195858411213282100180775222286356880500760639559164949878206500334913013098379880538860681712844289103828449938382725925784875054492007278320562057825573302360296693101672411762670911800193943865714455817585554880679638893432778142239671975431571057074895989744020718063021910413873572151101151163593361371039979242477680837113294634287502553910110747787835859830064683533930509052508323551662198355011984628802316473895007472968256657570491191728419432254401956219131831790025704483533049152666107037051683179895447560312082278156211834265120711496446220604687933824939430690592631179997778386340211316732138496586481984083248746786203130694408646914150009875772088684217363917206962735204744808595525090648323813607032566115202750659726044081578971705903889506861227427952293850980248334793493807837558987113506932519649302389036611015755372589559625644384889435842018730536259951971690619487273121705189958620395414923647790245987483995950282936049895377321922173195418306266251139089418243658351391075931876408956154419559154136847209533865004016450195562159794250191203203610106214328645161342282733008356771414077039131585138151041706629674546117261565162393208321776150459080166438628914618329167007682730621013390627933446106587467733785138680242965399065731340525880624240315611331506811450504067072427159509618027129479835426432853421069315494288388241701591278291450715275517210060155880284125105421425903673222977638809272988327854904969710776239975672883916690362736282479254914050328754111918517736145368132448426540721364054267380500910083646896202932636111494751255778344241081330766526703464940168889011096683101417214009635550503386781635438282067859640454684992129188147355283687174446271462732773807818387251419473312883092274123601385511061766206267846113938967960607402612753521088715621235803061729805585260911645635905025084760562045978265104896209386222999638522594633305726622773732549950933104480843722530471516177637497756098135127156274650858879242395555604666506677486561798301441879271645006742023905847447566849992557630959634438183558556143647840293755679359119182144246164075491804182783414655460789018380100831310975818990773340155691016122118784638443126661480135090840241365999972748304767310136117058453509259030082472773655360644252641276165133321249649598922353712577955813417906570698348108711670832744679193893454729315393917562839268922997378951666669108751580602111773903582408274764872387199595751538985373026561869920093970997372070298419614887214148186282634042381917618436302864475785236116906636923980215450826728638012033885782640888155233948865539246841952635398956245860910137833410367745299685803402056850962004372853326200000409387078839754718847549039905087229490088688464483829672156674795606610027430005166528219053150518218501320989503566995807508070985468219157123820091913895013448836960043939409862602183724152243902355310228833288361579382142880828200302934780611190396966148081033611070225184814425719071984374736909427415438335736472364084759071542231149683730279503020802022769173758176885478834318332070907381282813005168736516993041187540426654039295387616968760027211289179739840987376415896653939965859365747800231308363230309970131027356638999229419220130400883556722208421864578409337651035277310398582406241186444620538721289371716472904914668405521907372150417734322239341668711748121335418787055112629121201032824562614190379236160338555306427666374643953926434654227368274885950234299828983720815321104048857705925988732262670334827560774364592399698140817311492897238526277769501704944207883533194343210692289070544105203187677677959054787624228718210025829225563060163079546663518288203594146055840251297851261228080360913109158011795413933385977312676439116405718115609111186765337243625428848543560192709908245487762395395699357995126027680322904629301113263191151276771667110283896002828331355597231899684539966290303451473776421728203164433545564737342799656456509272986202580829950597033196771383255702751971742168554086048402780782204449696536964274566762637841566444663787413912298743755047427310618234949968897445707488221217434012681262686969514087848452319226776336941662545159433549329300895304548184240431651822597663096445479037412622104832149611293656412640949465944314081034713161136407464650372854153850865786860844587464812354394841578106079934082097021927929143164474543592666687573979083067758010233160042761915523389367170308796489400305261413562250618136128062423360892964780827454694219685031166431814434837361463336506811087147946482615328536992230337327322529657288731527220979734054290005833070633832303117286375547991971140543867325932295902887375453180737973455205044347117998130815357551328218798327706890737974572273486322774014616368665997128033362715057958204294607343812350912983526905408601468456179133715354189479773247172505953744218902412097534244645210332965927665714304462986985899870809332567693046049048184642767851522949499784582701739734433011767202824082234551886789100184311736063157704601296606875808615567149335061545672802108299929855052786094486658735212641071297408729182211461245214597964584773742688045355392742975644328434052185111920084426318835523354816783345347925527319909152075787208143220253000075027377078968521550774456364471425471005585144557793224782479909918152205757270015335064200858320743179677100740525601363065152515754411195426852610704734294467260594888555559255550037843837265167551845911430220040098090423647448370796192717137074696669543005651599558051854576346976471253769534560689392172681115317985979557203487632983112604603968318482753753164338348197579359704837607044432872208638284696507824719748907276329066411460240231480569236211738638228844214252711605949008125380577398107128303085689339161043012478413857098903901743010148800673938242002740820686360814793805485946742683570634036664242093299851055727692345862878364900888102747058996990624802211515732975457449737939652318888038694739370133547619977631188007143277957735101196617151076654536875488116172435664173659325284308850591917357755731749999713916084119833315196825550212713284646468575703577964432934774236134121941876276960303489711478237188412237299209321726348742065030775871499116475485107766141057119846432867455145250985567243063286818884584383212770044232236566882682586038202943161271235971245846898423273952604084403495599105746513038918855233462733271799545898713845993762131871163892169785856038689305428969054236923716881736545408354997882021006481498335880119239572114368670368505045736274757097599112785062051526176415073809145441135058027012518757862898204413981226413864706147331495014466168282653351806245850583131650201784728879531012716479041053134001569387889983938725213840760588555575283290853706171869670826748929966975336230615961000956828414482547850829502084508387780221786177974828971782631946232652731295750669077168233620578910961724398899794448358090348505301381532315600062713390859188101157099020386727563863076674437243297587587173412906576424241645438333298792278277104764673523076737868412162380479807015245402742777564889859684071998271842323036795691405457131067874758352151842718033107635259484556446364290499814596967291575014400822849687455251929995958628106812919971749277669758313349670119216775764472217923932192050204058640402125818124337242593381623729583335165665927446849124587911294598548288807311131015571567450358162648802044427461368649686399698684010257944869376815023237031821407514735312303338787610801580424896929391113632506020805229075220307235574921144315210704720915484668048746271315927486543596486715165941190823799624503675719947458463559080718445512897513280000675369784433756250152093903999315669106004763588755963398129588200521174510182344703242858965832956295936373998691098299579499475318459111168325995210136214058453969793120910014211918684871919536905361166819926916792911256715189998712765592071860190458186315050484190707001664041112291158417730053527650770978019377578506686245790964276433725544305439794431130407747086523926900343288233803817330145878168021277289028588615191852092904926281944300518812276321471605019076497658179164598731118798860736311376209102493585038473541057069869451929519462362117795217982624079936084601272272102092170192028861673799699751223561865903359227374627895277631128620289849068757571352843972169392600781135503645041578028871541898544206705658667240209105975178957497139051811160667557885229259480920405462935446841007563291217502208621976890433988851882297823850078727884879568549047254005129309547242316964715961770757326691106897679105172017046726406109248958362636988078735548019892215237244973101513521013494201214297682536348207259790864725132601760430175951604959346608468371832115065457728170223069361822807576188545231317925217321022495341868409254054882622166757399392734096033579066507321489905005047823695025072084836843137962406945126396349489673198719116457013852468765824177543414520632527428468115637611141918553094057279052621134726778913848578012516789362100432842816257670749890653173048472971117927248125432786870669446809808238938615335035696721543873756549379508675567545727543885399168736572593053812213177348678832546577764234567608342289968369775486334469809089918563437517076536311371649388237025176745516493048088589713796438834358394311924344395094699563218750441794981116756603589049125645941899289350779427820132464608988518599971484559253948170406637607146942467502297520914451751534367675447858076925457095460503766950774610577924981243566203102129348520314675492831356451277617504103093514939717766636007747731174604032591296154734053015848840774124854172945353185081469987022779659680927983298839953522107340392179025783484419540440791769436218243081092635350429539559254421608074573291874605587379266342534670829892811945360777727921208090593729349797108030451072969105435866496034358693641211117260683221435189799984541208059832611935775808122472380941019970951934612050919647987878728219578273482603341500477777242257388624380470978593966651001296863269751139812527619970671361432674591498178234211822095529545769602163969054476565851362878778605482673376239291262695494901998204458060940196010943350339979745041726974550401601623874950531181888078501342989421391877836638459493631944011550849720913471955750745960008157332222379765215230647165651856498002646569818462071977915447374073844621161501201638505998802890633522435133083737974867302311671842572957540001196030499591649734642221471861395650887381316923574966820022534524767759482406284680600871364415829077634850516278338681889396886325273908184644769102340565585759585433307288582133842127645968620502933649080362509197536718524367635816516441822754159439888506263760270130480449062610241168014557489450100485925883800431210850542645130057104024243642014316905372674304650549631298755721295089917051391219780179434101934493630231200707691142759008702949859728933104694341724225373169573430984688356687857102781018034875907293024996776634662541490093593218160261491411102633639326224381492107792617265955216306769215317903467008523583839612210204573167477815434971632014492971501647109396850790004707829622142454298077222584637157645173749420263120306001832863105688458612699438369951685086906521309749366592352949693657615813392963766740212565944279834993067307158007900240248184252912961178527043486672243793730470106565736180907015053478855752772351116096765211121095051008104306735251638348147142279162867711816900110179893242016287701745339789554546583811079990549147334801162079409892907662865992839867606177652543540462934698513109423756504862488318153475005920922268179406746739745599794654057915258335415750283126187692095449359925829580167395344196533799258238448655167737705869848968751173375265606957881940137046093188226271063754499176027674459183716203888112094459514970281626578658466979807231491507476674845560758837025175700183433735599373699377484840084405732070280559176174535947891904322928920814150524397582922402394980572704631218545707656263631274076550354908047517276073182265305061958557648107570110435565090888841761098998559222621074805413652003393323472574040563445181936187969096567526770535302120372098346781632994456053353809173459494028912859231802093324242358782266719112692017519625810869560954837995443766564450300226723643912144321525480775849600069819731317451727617629050412811994752579952380935139597560314383176684717541734445251320655484211645876832496098921505930950793351990904825613406383437325460944795153040505832536709649085522041868332986804176414367811039921037946289093358657318492574968582622458108364550581669777996559585596577686947755565936752761847895253359942499460873282461453275199352860269634322067595786398591180798511553075606564973129863999979155282781171313783297372223646393160083132271512458239812357851107016114315354401591820334832422939187984616595651857421896522899849404624511736542913699856013732748008956148200343742074206004514542395794309660853070514549321152322019534900362445546682453386627804658670538307191393733582492271503164878605223039880654055034607421123007379490728029500812610426762757206819137482543908685515564220004509007788056498888382853430335255322877051002645331502436724938768033203200527656960135847303466079097617743473535450388993921003173068574094882695356387019006147325055015337826601677028338405232254128838525766756032139472243963047676946326474926331884249623259676013639403595844910339568030908475963731556443717885105301155374879240052533261240390298784520616620312409211142214046677858320360338747013365439288678177342789803083883440393279153806108088556838162192679933228815136401929599874530367330900023159207008756969033283037608752449461349843005977782077338949224782802049752269579873788874948956971182819890413475200091212954069949595271825831564065930388147641480255735891995953786155935220640148234919715739053175879580454238905423371013856867863224209036221290293972503005644751519546259759474892506517202578735172667309884212518343418535838021258604398563460606492760920335453008526394543538974484775035619252932625023774893457484789377523613761534132813730823845398635615863981284032576177375790420636155244217374296856311796572878883889465218483261049351742972483859649585435899810363374201769865409429741719524734037755692553000748731177379052281626133195161882422973568150778458199407308457139961237314520898798164657569708355704075273759236697575124914170569281761517525447564880062741340406595869530959507761078036083991333266071988281116380773586510694888733513627231962191856523219592033914385742735807132234477850032340415619634108799030339224774497526950157832427736880422340946127761845305656757743583938789484224069579722006704078915288624922766062389770993327421749093540168301268725074429127172064589548684870199452821765827199446513581453187873647470397043691423844915847612873064533512628997132450164993169502313981506511480592096234164605494712122594218697730961295226485405408358204551710434375001848179649107935042261994943539915605333711487563977159192347342830465593088818411350315611926748459784016714046122579270545299646997695180445702652965601237618795487200815956768759202354601652345665764743062326633983999082210878413294256481254672272199406694457425787985560684516963925405041900879516204913392736152425596882141912885701442999543181369379122817520514887235267347378575925103194048713315616187182960266656595547291921445854962288120830468786678149279840052565890682863528753167876589666744643798107125716304132226615582790577764399492963473510682833226058656668934875533841377320657640732648884786986455751705663063692254050951519732165535338276086365628412228766561084891871967557803626602400415482613655399176617015025080282203617943339172748984936489527226659755332102745059379460582911356485196250325553675073178488656987215104647662835169463205901828135992303114336663498904986861181580134188386324281624277721109107619755800022078851121356117018749131908872691666272502472823395271565423895961913427733909294240541585634781196812751110708937449090538514490589947277057562010870457623676710155178633880296874007282652894559146268350687061114006685856967079079769792545601945815385126078441527150820067030397259849966857172008545764516729583574002010479356534868843104715212036208699472140494332011138393383767739561908700205928392600840537442064019208704304221935153265161936557666925676960340931751958056002885393472422526461127467380560949639679549931254733976264012598377527469925533596994511453997371061483283299438900747831112107930134584505309703911608663429393415247448374117033556737054898583504793461576119194105855790170043593530073901433254866792735123720260237828218375502606651716205576281141086760422567385589882704735173123078694802882698849870007196281688533883903317364276900600217830738037024090934165122178101069919721027984505996029316894555746814440275259666302506949893706218289004702035214203019100657946942096685940324013323764068081866959405532075510061906803809818369590759817460477506969892040026666624191197074595517704063074495359720052679731117555843725123090410635801383476033325913296378315406168928250393544578554307364187881047063922473154621768992962139160632937424886959852176620318928478143709713592537895145472149785711560555924455731360275871721201080738224957991030968279951925461204959254911613048363648386987133934110169341985039563727092754101500132870423573986287991026607745970089904849603841791591062770179523579686181452080938309763113869757915654217320898377887765526241180610857997568397208818860384717625710244995049970493994654022895449170503662320894091191442028395768316612145004010685411032780765212152054125506194797415561222955340286350961059389327219875930919874476028614415094204326969016650546142433535192526634158036940254473670285426253883906119622920439379968749221154860017524119203929769871240523477874972044746138454151890738620430509138932929049664049503699331176530599074183332867542296786812014672499009922129689488243803614213955693136598405106258647430297588562843172385126594998118386730795625905897748914247879233212018708875766468276914560570625640514384959396342089664372892476621398987432440316725115418442033492167334221808698376154481404353316637921622133473329369946014639487030648324160010746684067737481319244556234566831536565590380475095677120010393164659732731610546701438669494983474044362830734648673944461177385266200926595576668806122052737704262253721773621077407959091644411873966509103802155520558412994732326845387789658880027010302964916830611733902781577128575011907952901049980876069127089929996598643521194516917137890907879426276301482535248775713829665035145049794638677031627599432453077387614544773247355463911089299581444752812711096246870413043737468874463716817314238814901188055648138420870715709136197695793675392634000093434319527830183139946321483818935955399534354660401483092935403450791558669538127503315212326004813799837634714890080885427162849996614841211610460013485234984128398327248408199523292902978207080027187786137179448228537948069974621076349232882001101795334079100250795206822424570603899415093559934390454953405684662427044813900370828813599928718396507005837603382487251505780421537048592375182250416739273865249278459752318423595585187023254870038042413632677944182587271014444005750626804407511161011466085813532498650230857899159080328211209855219484271971709203387993934740913187831768211465043447378966673173496624782993100870824894587104912311643169127593781098100290219647465627592282451891464710756734983362892929401043774305647995255021381397270841953066380942943256628434466473185745459224043328726453979170947469782378618218443983791471267003385253940671729741496630834310801509211794759025503496546226460149096129006811519033971430335470261349554316838893820891156655059990811792594212948879700058691556457572601591403054264387127849591573410897950033301176349193343311246840118718182146650302529704653728430455289403121919589591573476196184439787286401380508160100566700842338246434256854874811310135192246080028605493655350641609235140687271017258519858356720735278009845370141172290185684995311671959837216558527953518490923551659359735232226121193077577289946299948405735211033635103787247579311111997303754622247339235656142680576686160262258213099596948993303700012539455354943325462814649716702796352903374352220569147692623870395427634914644679280835252067745377028824988193455517908418017779586247078624013198768046878300860728641202225381734506502764269065257050143112179319170019995934065094368824026588168933231413607698933960847390454087831955197450567389670634691215936996142762983130399911218446851302607406313682408204581030439326559101738647465942114294174021396442868653581458914809799086010030458068333222203717091926568943853801923556252679644375202353086726744242335297506250185994653911995689135590644406658265723983616814836585833791518485294749241992675414344754547002229396915433070626855275954682471015994253768045530039840788634396860958208478173066320272536957489140201779965353558799648756792867959948300758507717154502197782738784122137042144916002248712487914771201087722574354107253201602636272983514696134737769040654146169567000134780836955595995045896179876548226723409176690146481829232901581657168970946318189097388645743123332610565601313091128489243547609512094605866506610188328189477029842356932907514276972592121215377306478303109629740384755858332654552075294940779510444231039864916701660556972756134126199830889768527867458646870335720109193950922112820815724552678288799210048606798986888552184285310044610929104217500896837104669442317967294127792628102610806277837394656889138613148039386549692623630787662031251968554094419908448962213293245921441763197262761553203960373630849514025975559427885820501519694835930747488542851386331236861224639356991488574989460722001018247482943283481680389731954076369408893948509686749222162128087103661067015197093620960863323765305268156005809660959483741592736616099302257807203194774378761931895232667724762473885608328482190784976436966673266963231824123597445640291066594635984915767885846950268083165710513302737149216922400795727785528648655992071804033804147633721173304393763864582302938260473689827185840174411584543252387651879148533860042076084201865937624641256737684018860833225888741963015579962444461196070155701383260458526007744078383407113853527569042297909318742243644036583195238129619602754571906973224414171759240424207640747811662383073929930338046210608102964295215270837090674345766508694666203155240516700180745578168837452620095783343333714675041354512826478376910713524784981006534799037116809560822839925722800180587877119949600241597098182498417146528381566297926967088522337605988052397466124079868598658244306451436191201009718660771169425937993278148456386612753388038305382453201260298188922583020865331971016447476239895099562458691244175002481933361398819228324343610102237211663317994252878730336731695465281360922657609743008690726199734490377906700764787533647384047714150130678808230490813022562984223621951430677821887794200608096057053849779551686200003424729541638282745297014812774542834648378182212186067709750465051058977907651597895714013676847799523420403679491478907109445599676035053675520230918956573191981616590820396068526694641799879877199051487461737587593710427589685904308428377295936921545716796266715629413946236364795128139346383829169782639857799386311337679491997461934826223017879753545590370315553398893110519332687741758222256751306785090410417568687990194358394364043438702530689657894781752342658314251403437774213131222574267111133258638077300732360787815790803539184013391568557568930438044352266157067906876313044770956255521109367846024818045497392374710481727056106815573365140400232019574530398555844924638640813694249771496895919145485702980473265338039063504984116683003640557648132046778800889630906585681590311021639067210043041093689036704676903099610360502667254659822155909889241562684787868825360525765511203481847698199938578486963054387045433345769973503041967777677075150254552485176947687135424754761242873062804672056544833685180981368898334776026456250649378513752046887090556531387468577978927619188921838887966705900033135220074591397992189753695715606919541729063140409189406869114349024476084102874041574751345047344907586271805176267957993089366325147233206782529404482520801043894096412431992080408180069273009508487530779579262313079755088957093420033305180617845145091187251463759899914587326518043278105830307822282947266673453169536128555840008425797416307098883892848289306802971234982760117692481098124668051759865551280312450381010130726155383186754798613112574560253580244989411674691524670803887712738869058147905167906916874635022358036887994736804277849952481635455943061981244573318899155112687361457156222844704736103573999713449140781731718262987333865640310527901943913211534903700647401544983660745312971656062880124908831694923872640996818916457792565587456607034610396582664967930316531990221912687347947213587318802102463866701802161986393861277616360473332965913950434260399837048951757288862120848671330728236442286289717551829175567635234012772364924477145755925393022129783356731622305863663003807181685087652310828158634774722093474483257047746943696006819058847521921426941522160638937309793213169852082365329480173721639492958803493196416921072433841992043195224642482676677445361132378636841796199951148600923790972963197659930915151726299624965079188611790023688266892802631307087659297342075595753088336722287062573170506245269043461202994793959962620078259573596950152868391794809638545983577099094659655975559522501904215997912720171084732857495890426607454624926824127028942215239677395255696005557975585037759524403576761468921777864928611705319592224229957142530613420283455349375234899306716255486333571481348233848381698004901897928803577587998043164735252409785677995935921767944204874918387508737301214849671052500984738560562012333554826192487995021420999801647945789910900568255860673345654452631336070795695912335290999389339198625203075279823689236551667121922274206125641191038916258521568430007527679799518425636940819067094926739502170326653131382105701609668747164077704475694109100207367709539302479471479017861403153674978927243232235036517624328772389308761908803007792237878522947108650278959205971220086836142112717127055869039603446941274827610672371858940069610892571455992926360470066336956853562906213338942632659762266523120590643800930623771880035671201264825753658135894511641125709847215122041329145805484463106252734134829270887927742509389683526472664656692854870397388443940419331375982523216779281568637669591305292909171768955052266765516853810794086695514815863670786299872504809321884125406905015723329782061547707711791672524779025276111246958561787296374403596913814053687926080222652483305645602411391926032658342428764334873022531665442606100367857608196401652637291662276205623006678050661984245009689678116844368121841263779309461583820872033530307091376372926715691007471534514870573831021504344629402762196005258870357716742091803388277820166297251017246528043727194195076963682411822987679798003278611030288464132328107393717026467916520449811787289155346386420342533012875846101067799762943709216123845387081262575834565797869650208219238773652342249256706939019496314832110612704623418488652893043493977824923629633293554737088387608779729268919407979031702209343834748289224883319046084503723609648179616693538519997647095326904749422808905591491858327799581531225463470701819412274635288927785849089699516788340329827959267279144887481399996706778120008042078100918437588849535004378794152382372410178377111117599884971902277333513611535815820371992067447916076722034268241373377171766460451604588083001916662952842461950677342368721256470725623958928147329012621284243559756093102341173572269417739753625460665716015966108726833052189560840162947547632128571153001000779227802438708252541131587283111987122909524205520878619664189290560322108384270705487007927448602691804659714738783152520690736863173228283622272668469744554741215000280744848492811555324487749934149153770400468480564144482905437696816930229245704542867251992296468878741538456447379886132702806199617363047371400434420922323181364000240431054413246307045075548608569103032959239046347529931568667085898196130515496612136185281431045481313422047833981084209440417590446649208880918108080912109921527913145535405355819671401355823768196741428655598443623886090951851552443456337847283820775000456202405085126863264742128474893563927749089443789679899644518806010579740685587263659019972657431481793672603165047708697528751195753122388782022070134729608426234061048710080932089809625567754657671479974531981529135813962852199984742747526629008908870105440868894532447791484961219103372735191515842215118142572810712710652853415838282176726322021334916253211652222488423110043846308945429276205789850793180805077701304001897848291415491380195799658555455334623815945370146849511197365179322411476050584869144756326309191653021784333994522311097020597888923234934343129122614664075320678159311800400563475937247489325395914753807094557133221041757385115723652942470072082031976137105030540385522598242572393084808581453471420948320474000638134178171850318124028740594104037903802162283401826127550432650684516372384440056812642100742412824262204166871186307900235783275193498864683490213866966695116529747998673040188883945704851681253381962754436564376780946827872464122526704354520443462955641006535320183629088469902174949936741549397400343311700967780316266329219407110336865062597066740182973670388170322172553210506864464896140770482201882028279457068761225083500423762828014719269751124314577779804971877309678057607518651270830421499889387525923088127003736906283421018343863971559917970772190817523744049646734211220617513132911478769011059644266878059605064102843937586952644986926606454269489772759431022268139035693142841184123430597551871330368623360600981597521278426965838163785476979982578096566312640271362101577476586749319116512807294761253882960686131404861862136224266730952047856845755142618120806947889869867907171139422459484984884070224407540769282179490909838025430572432501379568497493244891022579913750995614056890201227113834326258298795775664392205926199523619509513068781698343928713107199893277288361689042720519015622172187791320401700526715066580362908790611658811190120044772289281521819079654917707492547656228086015016932576450249677562956428969369924392824003252467224066179874196714465400732955008777625042990185038454949976707066996136323978549374091411647672853890663140742053334713264583667731595306156058957348697282031076161824324898810543606576849736096666909246559343807464328439946773120137944317660615821364637691059845745211750970533433942296514694314549710969008466759409236403723804956749045249130945975857910721719725216620726933083199211152823884640877080282993778443223609446939533552895069250993478575492937043941330844954042247728305514322541221005436643182416980300240717720504989913860341843384410029904776860331420272602249967802115514811097614461242106437539583335903747739415240421972388673400044601451240066795830895653740227085664707668431432722160288701523245739794086702870769558451707146195910735399317842128755263699331811051288173479784663786183315824815578009592786476126207066265260018034588384568317807246866494119936451891467648711100319265248827903000481486802375267672005170252792503998879118102113641731363543019140350631420184772051369460444502507868859583426866223160948048723730591230715594034986244039176955404999516483459372692179067583883947619262451411747031771620318359036658397042023031119527138482862245963757617652645667189089466840342942899515701873925500831697869445245564304432726368036616115847296629123629914779388039128910508110377735211417919538639795910329425515625456337213961054113779251571959970724833752841648626563976425467956626284501031839790944133918569871412062166899220055067726126221983870162076752660005440626454151826849595843171439055424104395868987767495697620979688168126470311271288254994189572247569528078349324457867893969336418720353308433734262045038129900778089633389860174196803447233290664540406694695187185153036994115220611843959181703278765953565209628764852741911289538491158465113738372038386222577160529055478175443293152559053949325246696612722051631113935056207849010452282077852100222923959650388485640059802243276346848521433963056715413935402427848578788881535262421344972057817718848713568915866719005927558549656203130790684102884669333301629885447571631509371537894079772186668638212099423340857508225963009719773799359842250122001965937691229793712156152998273132277631935994252578506162357757070260682858549279355931915098468885364763495356608606908895527631464434201940787424137547948977860198493092738316549186202398362733872237165256329468708266701079260974379988470932606467227562673836537845833940124000978028918218683620094357829637048682274522015645899956115920863033993012054877280573380568496616469892690755765090873199897559311781819146552491462998728767456613239572193534546877045278125339862982658145264104474907134524369705629862118079271492005516002166601473872763464587176773560567670724950215077733244394586314869213186237799890434951593602837526896497317627849396445785498026659278919345327727813218373058659306970932933961667853444658202139823964450107096097737879305929306442391246954891791658045789758508476851690395244977246177287205200521420088198854629386133578123874431653948873801846696607973849719856665335337006464571060080284940510776953370124258336068458438293392677231163024327301383096039778258095583788236168637414732122177331892203880314206918548265271262030798373965127721209207684163882185374625407700398713856956191972308527548047316177589323801594757640814169237734086056460663987820368060569774752196835057957620577786991790982280671669552476263567594797789044089324309025958203979714571544640066448733117452199723289128615007964780133579525267272709275992468112274209864960730269794531312891366745359585384733928924168380864265358963933050166026795553864698494690819764584820531770231478541562344130722506373863033735480040587607686450523554537564266378367664687311677390722096112226627438050279208815646192220715528628746700023677242406249836158056415796319712422328018200525816927199319051841885568200395599517416138237945605547168462907401951898356876480537742530209350354663616499834037977106320021785699593549319808345562385737082306854656171116551859843589180927145488528398440382020501998124152607178518386763964380579008940639183087224565118419858311726037779559761452144700065767987453130319780203644951710707574783276728296611179575761291053992943661503088838846223960107618473991418021719631977421889608518161602989221256835416641346330202356772538345479199965362757768819051993425501207593355019761727741749940503486658220402792528621363494200121449225653332003458188049226645566200725426390917589623658539100641180870959276976936288877998774617663022645266777715501052931028233410140665827618772410501481890765402349576629470635255139568827805959132302328936439276621132970660441340874450501473426169029085897422960981286251012455660677109424428274290233923998046039722991022849048682913950811839145312256163218372713660444501309677995359616638605994141690028597790045649591643089976158092942593051165529044522352543089984479446773695278059316479766990968561802110985626097838556604455975832562589414170199425901877023977406063165598948082213656075786795859125188615034164622488655985481763497607537907954752383507914619728524415408472691509840085172300754603789411175493058963239232680614308887079758272670890199742084921147545053429279736332297331680648262650375237624425426560617011601705599958145410117981103128022376023715572745389760350035142122354855869243181804066584964634935114028936649202890524422461642946664654967344116393354867987676873589653267056020866355561835513223068985500666102071056507215129418311963923023122335805356088851247878645239401142264080778893976915130047345804870928661277536380734884512545759451597996024330443743843783533773000673646773691571179008233766119677195152702292737185521471281718871322308388581160259499327736147989044287066304437432041159045922724045506235595955766681281169878409662800733329540925877815532598602970124418663366579475497511326363929796941217221473900324428963485049595339329209466330247779412483516609903326187988595420375405864426606876018207304734971509893461955505270397278313087154800224635128168866115107371230715908730646724051923286867793966551041132679102958458451948828608550747557968284179691743009198853389520098078294599090011419319473040788689562255191882842171412881307988805339387329686047961257196410799216401782714865833823726056410737592571295625746975158789139578226590455592196935151058059539230152775409523807744349166383446262197731892238956716674701790213643294604863560560812775807868545695507828294094592280834479093014403880623444916980404010867276388450478678381952549622936641165616765120554359696106196851389882421233359220140600660907304631982614653056243741609716333445218852591012053329075494533134421386232462715424915479671917054158140685270629939878735733443315309717685073286361499477111107988770846728117819387077954736361396724240050403621306128782265272866490559545581515074210051089990796698322724985953628415494733432616395630791825737105398685171090165149309454074599020522159864773610903548505533359325737311758511246923286275368432317309868843580716833946021089584692327437713063400661122523483775264563814462007985550904179987263339348059503870914436001528934479502043921944966432758413312298770001731760200528110386699783890063757475164983320310651142990044882913433573534008745012809969575716215893832749980584243746119340001964962901197636938736737720339279924995322721175925892891091146771316500789888573854180397275891151792918421287417247287691958900112887135202777367113151744024034401898325161914387796313884586985189532692144637501873332006888543903645689809012758555406211651736632598434307073557029660007490963767282380931789561455201451541266677372148615576428516460993192154506792793340078480988790217615316309386576244211012720363023019355125992816619277735897544590890295852403125757557864933744872378447971354822055304586890991821593954363704927728180179532810036872818695455722050487186746110474756436567290746066805905010995370353549843046629652807612935310571092103162636550295966144908697420504036889865875996786031753732175509062559834999658116792702966647897990555736698054397167942705696118447289193595572225447258609800188219946332528318977958019330942046154028540683316508781987858074445674224688613644511977480827786016255301770060616423832433914842120291783373812062137917041934521374493417686602764854818519456346532108427379728339751765925604023156578470643072122132360276786053934645090048852265016135265806790598045880779771049764441863596931182686638152736709862972439342404430562341385807454093941979730165172460832816440582650704043367818943132255774798764912964583198510110016583024750726834149890048364821071850320493967850845913930552805500926452942270852210814086079672053958177641037702848951199554692658316145328558107674232509239420885349374437361639827166001952895230454283907773590077496755995369107263478050623032298107206452838245324772447478371956737128483866978692838833940116796248254995912895296966608256915096629267531529108746778966780390493441726372398194106732631529045827079978674922967586852557659528448211836504969663738215845668474650310471954054100409849751306034361509112256558724952531374835900359663981918309823581993893118060903757912273609795800871870049825997282262261853391862830590301092852091957874238186122942365982427423415095702623142063241998123724475038508780881321046971865668178892943925443062567309836311800381671325049378347979402207146592113920570073031534367276551597221578955691480599929171599470870648372341239718353564768982695269925812130064938815170844251244978604046141462196995146361755941600704612211847223488453836682282104279949123301809628966467970243370201286790643940529539794296755982346414483091070971335905267015440712397511693235342530263916904364434332631413793698284760477063582114117067090372861330652680163541248651460096363202122473105494227618138379220853164963239548448038874661497208303458653642739268851146351391657045561314076576436372573833539187442689096657348664899256700340510007697272721789488449298065310109518456130789110029327461847025506763496154878742123493512693889404965723633268989397446308205445109421672733521181569827531675464033511021306165789826022830627322343209934841210661785561729265285122025640957649741740464359656810675762579974309583193049922680849325112709770714817379371835801892684140273538562856727930549278793853248662942060931213625537790046255143179500853194105111007212474954767784829875656617254859015993048182176182057657879329326932897727438970244136593137538815551398059886642311029022596324375793176093156063581283750537312359486898443543263455113212352739983433170580510452575855667765089956453800264123281096143976296684753547853709041286757644419015087048582986015670232535784686157176653686379117988655163461202473718591177413245448638904734181036585931361566620523378246363285538504429822008640713766320092342119869013951334343867634169511568924510806199323060165245314318561291111751532518341299436782666139752204546542350014473931467378145821924805507030209946973378732103072230383399139775612640666822374317162661522446544468092888228359947473439083624104802597077245614416956396565694571133558866613350439566324078563410755879091124341979227819674598179197142369369895504902654672994608064033811358288663395120664566800021163504142193982529914254627866668376389704524819542576471676195216540567851718973878486084945330062517363218265583992096554478550479945971496300041464947896404816188483182531549099503980951641914183725055979602835331892763487871964136533100551724223590060456226675845703839125974626429905158876637356543236942657237575194396630401282948130465485456588724574592323586682662807414303797262313883309170938562545322316144834767144632940704583612564190403135796681397090015930869041645593315438985483657580893805689639643446167893181276416654469230949812808483569250464821426887742767689509615686939980091786976939508679351327451938200426785430139403143187825832002579538842779497222565442577548466044396897462112652374109655368323087075091402392547256136296199362093076620360727778121216948445670177328874215084937174298747723295173815797691099371589985054181169500439345897599054843577305099090248635298518821794324332467941526476417086396239054333047058738712877959074505386656407876115060247833504833635400090130286278448898646092156711941420501766795626514570277225158019241674856608845248759391700534621815676286162194342866808731382860588499734548177889347854623430198905741472576552476121344833971764141712903077191941519601384686655838774639877837635820223179780681815294226324629434241082204513665382903316187349646551950408437792386754018764030894806140927473827602558534324444333331578196174803453579974842558659377554641941852983345408799490017364219687437269319627470431499315986402659742267470623531200446553883829784705128669781164087315163682131760146399125426452892344601178073326020091177327496019120084600409976261898068771087296491716888550131398883395107288137881615376189816658408419808183780323263064452346235449732606501861256158679595951051414744419750505641667526601256945200001547940793676683904265567756428417148976267428342237624960819552112953981325681021579576576804159424363049889431338470853732863284991191760744264805539295896498671194193533228554695968681938138265749891214435214464885245119092470124925490118605813706449569301790119285666618686505525261931404534676120134891862662628356319854926561218684875892263384973053083454488587880532967669347835365122604686064970850540942965844588669433728033532209848301134737181369174897417419828819267366031398720529577844220303897881365352033309462560488674851313936900148556956485890555284346488505560454778692428624185265619501006907611584890244812084310906969171038284245527260903871788976558702811245115008521258402514445447587194272491808017216761821471683008265530546333311914141396308947651026093857883150600752665257042060609289746303834925643777046200158804763628720916692791732975271159919408688602482325170448378040076934902793941632064918815398458205065625543712845538478919121294391018802010914200887038399904170068004341765940515553464651791848807732883110533499245546701914037700828099258884296076113738715990354373024068570750835604478405844616763306110739067703247482850503573816309479337900530187756670536221592648048735019958135278867674994056738285106604759777437075175974333508408685709222101116431011452270002924386592045609312371692802226792279695925628116079557669291818287687113176229695956288568763468986709479900785037229202502094146253592803244697347521084530855419625207478443437836654350447461013165372983810398075467074399004526558162323932363160362396914927755677113129908817908001818580717605727468397914624202057215602996366532426407873977249755526063213713724235348539575437114518471187879014609350410753296382540090622760990782380513461750613417512845547537642081789440150488375281928304587973390804792730000922980604587981223120046422902203942117584516632669516908675516052706820773472574740975880364931292117658781999971078913512029511698768192942340494527694405242996164258283774777400122955246347849107966084726213772665021692338147748155662787736564586374119360155110438245811157304868006112788442400887387867676884230832344779759210482806772036655816693927435409067384170410043480395126691350359324902923805687193621336296835102848178442892800692490538437424125721514099204299790299418222868620825562216960872693836683753568773444817332720905273540426820385453766808739035993988575010708395689609970159087251283649027894190461121445366395496701737729898348149597925917344668113589986751668196479526767474644676341922210904248689151259779874761493297415860648822853045992639116950371406771305151010501775064035047854241745511414215746944715524189990212044612622134753557668600441272840797473482058839317706620660263656540514261266371766874630632238501638506171457911292508737091455564961214328826369844860244948937184638420164693484329092361579456990656744903959876712119838664506409360466744317341690005324236031923972782640929704344641995174960581419468748958469412402520266997397351146042359764772101679262594300533105605069171040211873430834127223429225830170992546025454351965810785560430772179714092517392346842485268348650310842422157810157431791370250865300314188403902071426768012181184577773611365568734013020992682637393922463623171721093536045529573996631133863607301787563632983773121561340361331117837897577943287422528188112738423339110178857357050622413720185989172651636112117613855656265153337089203279750491792855728686780057757137682740742064551420880978574483324756138433957258554997413882697058522370035998942311305515691037791373848744816141098943965685370294572452803664392868020401020490510916463502329276906228337295879200806270504940293492599876855469763048736781179077608304309005574632461938024774209191837989112136946323524486678087459015089981189989699161443928193560001697045151446172100903664897108288109890289979100110271187069415394328480631328502464037696885969546574673569018641915316308429396201908712263424510090151866504581614533046324057444165116244929203716697299580630766823555481513379782144528724707581502821154858924396965154952388579550036851900855164799039472328715489641474839348628135178039944410292713515933251868772511933786313702522990058863200353318470268872752531564398079448182416014521899564388819140263432069156065520604185192801856926132728294175141035531108515655704646691577871148861260935270437616287051903174005419892160754061019623037677048991387336398615339045613133241787725665799310533745406048721450925822394014412468312949922828221881504782023444874284745041840906672273389977789074200745263317528803039514080240575720387540482054743041318129421195873095378676519674490914982128406442428549023740881524843132481649532403346230966719381936408008058835843789748198236976035947019381872048856535593734099146694367879555462819706699771850854767555478883157244143583489323157959599507121823170996482768523995404264477590158265406307551671163460184155505438345491007296381540145345174467034232402679910647262599936344601713171650739409818520725790134149780862341491336795854114674167902999265442738756762556762762212772315694025691223386138937207065270010553099600213564319698098600565915320582201714880412771923774665293286859347077563124395157342974400361791063916262364596843874626160702803025135140403833204100504839662641538969167658661330914547619205927304640169003335910269724838820589518803479209968667040869850435331054709010026009443438407977353942940634053023612009445944101910143437063638441429071759942509305249227634425604417356156926507071010490026829799179545297717893127529154136387493767047375472467745466457407795468931729939273423221622056458531169919150773265496869274426305897495599429920055173726751902670933786272814523990859053401287925364756934903137450504160827266989135713928471791033911151399656093518457924099728786053150775945947328640561845639520718097349735492389434013281134816734852230499831061274455131197834078496742412688738875286147164746115750785407420348269796016508913098292236628975301537959965272216769761875676440586567864194008937852127414725540277316512620435376357142875838471232250501540794922871701193940692081625411416638016588773589167763558226101359308488522534238723006812085105002744259001744356156746776985776824837882767154980452061302931723526039254304740906204321452796684083566464441414224522356400128800679495602187042932002001088040565786263299048089726564103808111691418055651739984739445443901306198502818410439322024081122334757014363227766599260563444795585727660771164361223206185524271098142887314785910480694545186669657314801608907839850872658258316523830128890748529938959691601577639951179311686819698158733226932919985574174348700074633084754881747667761835391213335857240847698676626873268409294505587186358350262903539899573326179332558286844579726509198867512499388032783521854719836438285309427163837755039621691427248233048626180047037830557506182565323756418234753745473102432670721960475341232293438373578075783900539385043884060190355673760237374191523868239419156656396229204954050255111271373729945803677879548114113772667009948764276545109986096742080941086935191748327944566988671523865168911552852784478225125596997737398685770815830264898812536728266115123074181825165798403671646472257898886333582051903191890588531579730019960725968489081808462483739421771559999012449541320930628515443218878964612983343670505530853690569727343398209123324106763716283128248482815576845031492687192383369518988024830316402106763439534439606253443941000584127223840130415464310208993609024763711160996373584537338424571246172966214378281489490471451606605983037889795718931092003835172822554646023427772782295384027923863432857990248366497838084651989519199704589651889590619726095649161874544294704686828039680002371715064901921867720104862309965138527102304833944097509178760204380282952129109477779894213371183993509867637784653745431752532879607761245057120559629471585137757678205186079211628995888277688159167067665124111677628166077092005434722434335248505376115314393067850029372893875462994201696536709242479380946765019856171140696496534947118208894814519247914904864065475325042024969914556756138986538320408139058874196496022882525917977101755883933445130760901631859815730137938858808724423063031056797858398329461627693479772261689267064828418640301037804237613657655705144633321798972571445451556206982113205265297115128295258503853425685830989250041826505133647851029994610887316708628677470478716115791102839431289040257484567457247839835968879656862315108584355405550155626480156461494845424762228519533378668480026295110415635311365728432866590118553379731680876048247921734229607691191591338238977937405404377807457456129059003608416887665688803450182834827195859711837576619722344704339730587552259514087931765298354723058540978726497669671728651483008637464896540730565363963609183350915224871031202281877820863385945716099845992796767009090095550070227747603480886442284139547468709544036727882248784636620033336749149150214559450663414462894692910230275378105564691595450561442987477264807123404899485907531468109499994009849698721008238789576791562727272315257830790798021062303350864875666120862784569370710482747574012217920037318952229066344531481101699872139681350569950306964214945004646696505872248868889177388272040565326443147740628654877474785312490142308470169997031453734064935399049049197464955631597678281802792388436944054074228195319286749386250247721020538627439334951406949390784449597345206848086871579426305543742860831268185122996011973355058190585642842457274330951262683320714144500433887295031908451216983371107479455718056487969437121514683593279590710940383059291936162496939504265919291669247954562122497086770647128700239313572298075311211867650082503734417067723417375410453493595992101205545530365940383010860034303881925485435662201790333485376902782252716279992007667534223129599723817650688352795421704259482688973900067586854846881845798814568813286881066409427335187178930408098355457218680158724184479565158940173051606957358436178677753895052553149070828093240136753465172208488560584934254568162546803720844990590913292142689434080574562110193737331548860630963249623818866071974146473608950218077494210830599290293238944902808518815317542885331134668407887840396350093246766372490347599988331491492775799426664112960720562728729476365803941312315665097163100880646743349850855336807754172615711766283855876087785209208222083997194328204133085022434918208988849872226547245849462333488786946383558799483093671241022010777104412671175504742433519607060885240133286673520125177987640888522414609530263028210630922537257580631972675550833071515403891746524384639560175828552485212740449695078029490565720065310551547031694490584978904863185188840536858502095161929061063620430519931940936323437528134178152656691597583244866821901813305609472585788239059957939531051843773340708865741724179680101650521920867498148878212956138725251818070530121160935326610365989703019275376024122821827966480195209822104166464513000465732560122467166011184416114631231451944739937571335658479595758344447345639482568776930077445441460066940989374595456395487768681506597495227445879415541246913525804753056874186900607817367192335061383139843887429104937394185717738087933294435056969515739351532382478577767744429069797611598308809268134815520614176697120195612755610540939324000575848828888175710524425909979805257414897606640003552407971318746779087769638295374781061495039015310051933737446620857385956550013594917154861982153995891614150022785982981260354891629381900726441155053985133750170258245733782661213951190874543364016616601803487998246075669943251770783968929156890049241119586250013156248374305318667160924021936817832851301069553712575531942965778302314461919797385319546820397227638480385599991793559560413295496954735497558116665509745228677288737388041423881187789681899086618274016695040778264019801056963840077089427935409220657854139132572945369922978903781189724639768015240767442443042591043251961090857883326131385981144424042558586538991836756510741451028678330489023149344053412703031041556264331743928834200414585790073770400146433808013719933969281125069719293663148834773027255125876592672346974793635941749741842059303254852762622419738012286653723529696984883853741870429729739017126017719311228534137835989176935730625829660219634196566809368199849729237300369534351995452566854532508489892004402613630750622074843837720932196393801591452593519863545528041940677455237664727703205694938468351675849933264924366783454401175381800437054720799008617114568099389851866053836506657244007737766582065781831905695407227366373089788585136255359252451283666855419329560048634178182818468249192518222086932209287175463522580334145497377825931886409977223043126128064301473502951511055914312177941208552385152707348137490632545265091150412163414070721457262733766464748063986950725089938664368855484909863847945860917596843451713344759682749412848993940081226565288417820985152129222037782108619761628367256368869456821755703205065864816685716267523226924754449218880991632036931030512737086887188001140790543418893401762259464100432551572603108935431670569627509230079383863175638754805677602736345110263296836364013620610495176711942548523977188109685245373340965462916918292090759419501346510566836213339797820189420548027984464073855445435357748788606611841996200563679570075185101300263877863916899061977387562849354004117972684973778126584188530395703720612317502921680734183446439978073445301038262714806390752415990490486986797147601519459877586717144990065415230724354800465329183266958693342827740704161242449826694953424813070088864166413631469288432176839337357506515332438819095316113248123424256689514311876857082137434625773648589595304192055224388490391537407999512440543588168323211641821418940792783138023475055728719530172083651668766634375999199558427637085963048890697253066960046295016633679907595564604225777443571345819958600341442393091856018768734067930970442180040355403201037702552668247047695812737043071014803928941576704967321698430018199223861136194302294166486619645214007384482097505722992407349217288880323802345263418747516893062910180903423798090933304813820929916046444217894606692910973784517593734613685267718050588548149106457130668970303503554049220784926625791430328824206426980716637783235647427671787685391487926866195828990473151848304045096536934807505054574411188883908157703225532985436671613213807064889030143384905103356458280414869276323491995712135517913179265268844354331377578637514892582261526031436171307894230140050002698182207835010970378781876231028511834412931516354773502606790279192783250856102681731970422083865375001059707791892110285254457766430964099903771104207854787495038132056471550627388850749716387939278807981803429178410883125438460259558468441837344443357504487883296696326005186675774684391189857314776100726762062533338915822427200997354888411302869135128348791009318298770043688121669993716690306162080821953571631312065179645508153350534158523567468097796294473046252499644457792377961748365843235900285143413536684089627204523471095826152208837969421654249905993475952656692006405815685435822080420608045002669077524259532830886960113692117433864444081910430966532687928741688160692535850468418824037026411365730132660255061068212646029204426706048171488071585579034842225638880520134938335068570590640121183570307790655972700554948543860308244948049312113408915582862640958717197220168911463359429708855224411168152479745668230555886996724522236273257948033437179466118800285511455627843699402759486640374714359825836608990520772019296720089429988082706931163110496708674067894296183452470298966688440274255829681306408208959053796691827761964481905094855501735216509378535481586155204291026630110934268057030769499860410528604683773171597578930741264239530943875053813971876513528586584581262125608193217456920100859337215949550693385683792522076023823087060590047268224519863817725443200661078246256133257140987163370415026909400118231752785056879812127581422738209651687561696174078135987234719401306027939226413048790589174290265945852456273784709748728369803190181524035991671246730702539855633215303519916583851464721926602672470972386141906935489528765698597887821016836372007263731451375020090735369241941549711771893904876575196019211369687362934288261150451222126668571095662535300898652590801733359062535600144150186758055207554182260340237325349132237386119501330271548295799362760624185207002736713133049384072048527164108397123126371615961779225403565734189297675814662027733278853571523467755898988937846299838870787254768430525360881346524183394254940181366530805031642522092311723584540087955258124704492770043414747513334503676067191719053585526254471305834136961915812466958501693171137004307481860961142521262069687090525147366790772820307380361914680600020828965968970388095658253675046018407986357580215333894798545041466224916833199099692374281096668045569216461542635198425044398925852592560190530550455356373147464241139099837981083607141007642581030481375505361558528557427956705820996799519147853358831857801157863126970309962386808037662354251514439983451338272459049122310428172224859622571393436371623641189075251674662029732440971035659266535679062267261752871424315984267684312884629413951342114714350153462716011994194869197129940302691307017735624901363944422533318378109562724697710710456460297026304512342343584674568331795881658900254105718927891219516716534057109218481389694660578338544667394723442032094094980012213789415110186204836185205307974487492482171688749130783502621217925336128757058820490038282274273534226598161111236730440955143458998931200558885292434693832862590443387038029874760112460424461774654769043642557945593005571469193605968457379513452666314650400243294972448824269119378620419319899169075460775183899467563461573550235050434253835208796623517655875125519871193354514317475418044099627882407307569857742124002663154179611539816772453030352582255399347144352825124208702066019085084339156301704817289926994030868107678412884359937264757244193257841468890671388790824620711503259030611066474475426379871936047341599402050743264783024963673740689519826182223340486963815417419577156813539153616238110875383440553183892238693593372799888627925453461349374918696858152655279290523131790388261425756423607333926159670147363633294642702635645843164164095618399951077309059184313280714381787006905330316284074984049396606788902956109954252591706709033972885427520404842609042940883857329698880314200056238722646733053665129057934700814792893673075020019194244764391927528837081179742835559001929775763245681935184755490354192757869289999589246493197933830313088632997712651916343066247033568596230919938682775478518547668032677946143916277953947051464484965115685014527861850617925032121179187829926620133777364509634235956253722897892407817373552884177015200243859070318044982789393495496975439333935157033441602277043356677090004412610431089173385602358651648628872373500387991241248991269313364348800624381458851256329602918890272161176458682624799440491169456558291456076283623656521776968868862420395746588959786777187781563270892100327743463831174194385075706722264788531982136638054761707965194784991523322433632240813228930574885975406627314438553281514393184499454178533156587850122809069594871167632371752223169253028162318667527956324055986599601440339214501429388481025778718771650381523568544017947948877497836102094359638440022153221316896059389744613467769917337780554851544071435688497839487085920149849149611151913240912044131267873391378659631508373184044212514842152766820005410373284068990269136761388440815152607020790251782674650771115771240685705396454042102883690763878939524903315832959475526302050695428367203300538200328916039325406132651042695999661367972406606616557162349508824745803841410821091318282795583925265670530820672771009084529229693297434033285669865624626284888411248814275717747634637504496688174610500771823087082265869538537959075640022301061325666902154178473359641401985318565951772177645277594015204972970957138858459440218759002606328557860330210190690429713069524560234420680267001538830425422713292307428061443292991493244823536396620860810221775471617990693689100446630189513940628908282748223416559611926262034420517892279857133177630109799364529527784821242978112773397836775939713081507582751049916225261477542150364727980624784604016771215425858900268693281630661401619018074688808203854974008698952840747571420911213569687608314672599909896613613077291552619160520800567375345138155301833008575742354346621215598099385527893830018876186920447786241665620060676435008035900066433487253925116397350462512400439977616886678395402031831879468289594428339421536888477787466515804878012670526529535194010680168268465229519327286854230063992541710681238655466315127301528714950885303026065639299548237336045530235483028650908032777413705499804319214335513921555761010626233420709704163016338697904183301445803693904397814930380808236511294914866688752124830134482337494148696747247219280000117322505624111533658980763686555241153958020993619262091365154325542452893359321901208126202260001605362665292923633633694982119794710100973883506261669195568850208249675175950904071650490215139581631832783264567424114146875809032625488499289999176370611097101948402237002084354102639933088391797306901279984207499869541125158523901859132195533248694460919858082316398145340263425120273268002744253516554488262988069443629111349252119935324116848323254519766631193729731458667388321391723756800067188494569035678901269631689493953051415091536574001845257607211798449339599138498305757800350633985413468122976896021785269782965973849062034223236931326265562029057278937969972488462461762113284878602615365779166962827456251603520449585126795882512699366127363098281539778273561834048326280692070121900064650244171221419768795711967786000170273400612390228993877092757675479863209247635379917748066631942158301799218847902418350610181566312073189231319479482420783667160522986199906207863371564701977692389911245414458606109601176026439269895827126318586008537778793226461462874042336585422005723373548198170844910110512332729688051953667415642036456466332530696310540172128785403670482229754880763864021164790289235987619596993606486785690413847508792863089567910266269978439356446793263682033344351372621337655073940317032624369701468245272869691614490991758549238115156071386095484974960988893315983269701931061542133957828725631464492985233365735092667364361669053229599041359708271324217617203348649781867508879846627271014487459122420146931768839754964354832825832272183852614934452542282804501756092087312966778491231292384169006294708091047668910635599519551696038178680407854769170302808987782818586077406494562967118669158725274649097472618491827417362053719041973182447196506190675727318077655143337947205473977798380052021359446782497024532109680111638979483990573233107363187105929220289551373229613325035411034094185948728978290102574851019737537130733632770910513567471824706676612349876414532655569087444681481102554936629514666766127320091874162119384280209696009686884609542410091733751191207123591336977060537456051807502543002686517045836846160298091466968313408169994692730712278571109945406731652334977239785264963559315666284039649510406081170614807164478277050231376917891429251768589570507654315416518283857188487773916416996346627490632709516459037700884753394431689451437702249507915877703912950399967001475523577539836262659898399752120144503642407047595467040895212297724541797046899475534702121865336453184066957729635803489743435822669200063694664867883205364068566014604249806768741079413310764413408578773767753583126427051433761110763981119791786797871290951502218229831806882843818528513139361525841179701475360138014361613529217518667286835545638401584028395765807357907712546868495161878366928343047821763712743398124488673904090888454045681610645205243241976801095302507943420012125799696239484957663227681409538213297604566700087601702295122003038121429554587829618683448486166438221789253460527735705569107079156694077468815414195010991448524709027266314762074553882191976026843794844630390880213091834990153946577529398686700682287841202208283623957721066335908142960837114144867805033878071169542459765351235478410310862741374714619460717702098656547100444117179725255031000372024971706037360601046813470284345058020002615314709799890487591367551877625319175557971299029005576139234849429346617410879033958690966439092644203508573269200583464305724057310806285879228501373604899028531021424358070096675270321553434994700740926974011753451390731619674733671239364933005620537957846350303462583252884215122752988518992159469595682996357836784821256136508956156212464618342498685875741559842905490255597383941272623461061065953590425988901148331008821828220824934937285954053862249262461919866817102550902108852082009004590285148884997727690251225615547039085423612287400213337793452336707822100546152069837830758284558661997357034292012296809630364032893891665340937724200527231558587649419124945880774929509002937464902011921226929023843141830495297668793363070125054689520755007942415315678035272359217798571169489347554619393347866652689971533657386894221104064409149294624605234415104577199130739430773152900423785534947374796362882815393308285509557870464052517484042287056508068973978701570516785498334754962064518780002998940740262618517958738999647131169406516563736690030758051259233716398156322661695419108334845911557275411123822438771021321252231607999420477709224935058364545464447894891658657631492847361106655360654054109017405358465710166481985514621181257542407851923984754195900737483722446593945885598687167060983563678654452320061691870478720955766914871820989454001015925266860507984285365340600686528300587635493100818789919705921947598097063522397840077910155227227918189040611066067773639868913958943290375003265352704111336247455364153472220275982494412472018475835272625585559890034827932208877016126094453398061296566466330722943682065333777268983037982686069385238043610347685009661208489045094130115933385115891550107472145093881750915870642626613905855377489630756450834712996979996616324162609878187067750615037351786398451742317860141351182094297900270729970081186910001472867371922739833009991077791830795604300438792973157782000955848446059775804135244935781228659185869360430102298759766576296033652157810235265645905963178360357553834527072407097012132755885319782291373456323871617448122641348645175853025429355927692431887956242419768918052296383546847540834537560356687549946159737242032005426360569414484461513863752924454696534380573374800969604998799835325270017695381574081435343356623821296763994371659289192715692572863773911683867740499236784863961650790117830710688476731978176435655047511236038755823372487197481135132158613836544282373335738361040340619648688865812419597478124086500153506736897231424922712897455900528858965303951184244665951189142090695029515910595106303012812687721209384613041315643126391161059961335677578905959396001507918310602182799290525408840793527285125312032726765581151434532866081634637489330187591164934840684923626564295100973847231447194493229254665855408064490752899385658273296785078687400644799882753352785195481404556554930705445496800021435265261020944270490175610458964099615413593711529034837131424952278701336502501147392160398558774580277367593079794488209103860848750721600915263703614727476599300391356458868420908606268351601823379314831453617499342562811963850305765298199753317195293744111352093799872218452566077417738038201902244369781147212103537924017299194916575986969276550449513113931647742959344737796423608512462393041148401842460381851369699686426871211557761684991542681693695838371147693769179337872136759452183087251357918532346399354942265794082315961464690479675363756886007658989621422989745475494232016767039574737725466884515844304204646195802478724254426792938996035181092275331327603394644986240319591749764590318801925185974793092725746845597576140861443160461080630172476610628285629323005682198984466823124661230358852538793503545998181943023924214416430382476019216167870951943931044896093223368477693813771898324264040220552728054459889387109477636918331313930798939483135686287274820006482736773294210163087310012355631338060300072767196989384130772718637481148678772234510989317319757268760121941832877307789046559805514235687981672674133027800842405593506555067449234245202442518190603319443161154472690613687022287026772248578091535381671582351743290367191527691736446608402242296573419077545255509690211600738940427235932075364057741814796565788958356043618603728319549574193609316419797842378349655367600636343645704560853252081531888560922108622093355860716485652483893124556764186724897456752788274962447094168183083058617353350448039833175330910079767295762121368978553739950855678886167315200438653954886859692381847211822789032789640852528291017980755594932915500186229444173700439417711347071889949783469078948066875570139005010754915422375336741871941329372058300648170027988521576791517179294329234048500001436033218305747728535787764966613680275088413208478374393354305595794681120362744186604431356185837054539305068135176876502353178542947691768772504150283448569851842774369032224045789281461486734168369692051763284021251233556490432487719220617304665738159090379542636105626100049142036554748117133719588827415089286734900352399766633309974068467334031636295349446600623331406823478860312938359637652653888843160004785567135684505529282793123329957657728401502543118372213299592197720927997174029915645073416423412236638774722158593718453161098439913713603591166395856428648120950921717453860371304639611431738817402285329493570291064219500989907592322350444538353803050681703578112874010020157296369885144944358225930259104945056720386652775819521301655435254600246059775248054546256558187239321196175206409147269159828200412806421547622656226238131508753570409256862048948911369043629073345914748878385087009191473565359884469096328693043254505990503954567960163203788132665114428297646028169273712795396263899098418200780610257554030319314464302850105596765154212922326350608089541346623480849605876763796843165271275929406569159913950180938966501439668341275987189526858638177277709691579236192710056738698704859061360461320726249547179052366067891015997500545196683879762026985172411680954046083692259854087230577307197693613293807561162300336906538631158915215472042548707383313249778024494030607408493498924464860830155789166705378894193081597104856002516640176276056642288531707019298140898320761537956264352034627643368265101951684781203350809643928046860969023946482261371176020326796824865369245209787575887797268333428101312289086089807647887894516835574753784787939817488756339358504978096883678519006916463440215092712518077461956259501564229551166427439002911530426408107707169434045726735678345602194924205765889115995089845741430648308067221911441166742563445215011988952682503842808061398232984783778042972418466393015806755385391570023232016609064285668008276414055910025448665739642892259095720453388591304117223622358969662937378282336066910534161474266224586150967256014539061036773258638284253321008799355659663681671501341524004265729435053949591013445628956834134663395593093194087188924519199625951310405338294636996886782966740501846564384447395177267002480870169562969255925060473176032121428935073840567798233777835418806131671551070841857212456170108943975703062342202919425497786246317926745596329565499679501943519192475171357144725145296324567892658889373190159551133946385683753844092420473313479005451338706453014614705685644579377506774412573103851260238842550018283268203988430418179966648877386855316635372769851601757261309549494560514493554858205761056820005241023517727825853544913059136527221625570954601053914661648598300142995059982260092131205535201829498537991353107135616396793086837895637166331756054311082122683899906220541983684360375862392372298191345891383357963704449239058790513563148572544565685013441474854390816087621728399598276387415391524615954617120613637018387172611323036226345787442686737301750114100454103761349799473732678497423065689694252030919507738822763914818454694260622806773552681547331500363821100437103926538038964029025742040207908421670044668092325145788489358960779694108219574573671812625898473843325688294463365809969912738753878505954696384887250100711723929670645615778652033899739329661744935878788261526085226450035874666922321828576356115025091365404093863218676233230089959359254777764379074403308831108669298929162925812392910716283560820154068826889728689612476352370363323608606660766107214521053749667357718414324895101706894068342566920564194259162154855737242050602719322130324718846576892658538460325656966083256146196394762412822120878646625888966448772025738572451705927730547337255673785430604635986172241640201159450446547314155353738829088302701668021826426281553356930886841142796448866213070627489883091855058309551363759133113529794826313821658151295831517459401265061122161539350191146136833544585318443761563270136714010124773468028631559423717471545120457444655798212571866058211746942197962253565159710638370649044875923157587929097924869912484154580141419864082599215810402079016624760847190426386643835849606219595686916172352948973656379005223351158684426911309331969124325873684280720293698721697128747262720709673521071517803633807513288256131023173113002411155685270702534758479480254613912241825089521623653179185219912400667515654828819505782827781714242374294062507465716479002988560724209330541356265046927084963448027774212492188586995187331491089019273309402398434793804589313469938815572099941892150110732283472948774171094284722022857974861844330810725762172930961116930355314038116205169490565959007169677258965100757005751538733327173720900292944303202300742317274122112435284272052373291990771837630600455469577446124821115563910933931646201241540446874846161978131711366632816969832197014341277002127077648683006708256444343315933700293262568442187839883517492885553876995268123444593504518851510745532622236303717045834607465719892498688457433333435685082296684166209860925431671497634078323196610586157077556866992976586229165196182587641837088019985075655535200014253507466525757982020725910789743552244055010860649321464651350540432151924962861319281744716091359891376309940615319292604005483680796149600085624895211769771666807883614226867223118192217805475807622800316774250272375812490699546012096701124447938502828107901086788255135969422137125028498052016718584893839522174243557850662212569263961009804950056522745410055229542338236894617066407885887559151242029070458549725430601626552426535706585626911354148780314711216238185627769531088456130419126273908004584409322894813777012618064610304179847427940404039308443619180383107104924510019707289279573103214303714784425778257225263135965118695787752183556141528589226941067437308308369184763447245585580062766541414747128059422731834607861469269495336837357679770373038209859999495959398396859756590853778809351411226588341388077689070306785525938904503612288521177535325026517907985362632651512736253130887596988039511315618387377894039978952674636833236421417615958533101743243277903418791299446100406686210624293225277854161630080099609398430416828711441529646715528654317266201099431421828728186838147858372895547774263372623444840998515162030006898814950590373047466820411410329410554279855748464935800265611345106484963827350233614264504813586242799816835636970133230460678944209105339810551775030229250511405472819753230203775103161099720500375429850757135937072186080955991820948534688411517564547360256734839435067489447748339412925266943873088794587309231600692665086161582258628880919695737552564932827858102978729846939146000295092865643271159043946203345574694167533937524155272848441960243854491001517911560089690931987161785208913471120696820616755427799788091132928159272467436192072528956445924611645903012068935795925665059147234684646200792241137110493815746159769343114796446955915655759432324207474924276113821361582126570526785139638214888058207992426588784243462052840571067710143451361432250536675695183875735166793690787873246307945459755961521630457207081749953023491375699303096535916137565744613749332693164016073627045867545617853764289156775072876435876785168812875079771396993950754614353999058278071013692282653542874910964897205076245987505485282160459886661922112939544004129633542492755124754851678006339693646177945501499511263327383753251942355560838079238648866391254098238074830951649657671344496664395476664384801430790575723701324447290317480015072978453923376120321568669979080599153839717333222825194964161313411896549411657604771710409498499761668459506395690940962693489001618396958936640053225161361704874435148190009406063003650638767656695510561942894614446672159715353344124487111879315718670842077963603222027319613830014440120852589847698814495553247732394977124245317184324707986584280688594666277656037220503483258666040939286586844956110961668056945661327844745231182989207778607691715249209930778619882940151174022233208515162500366389290020695666694111285930975296730861996823181492902815060374407442018663979638141977541653176728164382536945890976737240695467741218086173917156057101202662808054812788852034614926051648990415633090681419826707374801653300105430685753742719906629943895795361935507469661700981935064222543429436626289852529113147238836232510548094041105900711906584166896226896181775880457830245410339427558137544841510220986495405813504032136202160839043226046963803650437497343305586121513097293689018947594636113393866875137667540455308293354620549394442927081679120332452605508225395011680080064303921177835341350247147988924467229608523867489212128340718024690071496759083477836959446509485737745089330320186781208721018054373314385521610670217136533626435116961549285903530436660571722346780326381817056971836474627282647816597125515393379555512572383661978626099570919176085638289111908852054846177794461312719508675024915231027012770647652417155687446708611900971863495232385186229300468024554470936870694802865440288775017458478449679287270712387563875536168257528788018474955815896413316643368690772641042555622416124900298975742804133496332986515895293453305290835744536620512836854285861503770903659953372851538764417759579683495283187956128381992556917732240732429857134703853366137172783766802152032578241167535956542151960871340853012480985891175188604399704479095755762365861352804791054149263069005820309776660944630863937403370172130890366245583350146826616183823839733683146516345286511878703902480347399252000664532998849400582955891415414733520294069385092047497643816995014360329507712931999344835899262533154351281377288225549380263766786850683381560374371080156881573975342130275964534344099433567277389935909970285759608762136223451938316891690068570363214885044531767778183924878656031376926622633878190984137335571664076182541955239351615038870460712047305169282157538273904470898081077876914884495891335131127367570796047897363853753468005407637236862610964297481071229412536559809425883347800449068681239894689415396731132637776859458593404454534153547836610879890379391244884756968740713256212503098712709715095862559381699743954549247534279423110654634390467645696792068209446284313433693104989080742064004020090019442759889465727600977760374457821699565587651928854575462689060018069887810445386440998381210916914283245033679140098407359498190025291812266829963639188766050339978126923090872960333020180546939622223325232352134107014896289791969401958926490279147111343213495761993969853204146949109510935965329875780806371569822532027360722604408208856688010642256607041182380093274653283336701681283979894978428381628241452757986375726092745327180531429140482748936430469581497372657616196102447246630883880022706026981259602514574286387402588170053286619220769672297017172170751427551436609827616051303970016582558112965375252116382493546748586889648903163477626240819245471692518723680092893243740174677602308424237819673045863178481674019641284936686091398237670997582499955558176922206433463715361164332731629341001370209838130817314476530429352575363458123868287562600059914043523458300537171121532369938177069281945543361015088749402797246016273878909547707867235675610124110351682882018821315005806374417319271937215433530332001982585187448955997468223446381293891162705820864580808401401749405584660817270090533944369130964261809249960786243572228994156854160136305454441114169114740539795656567379000753123856930956569754708929673314205891206468119361081966715879833539552103526623729243290764127382989285296387132784246050084190107452415562523059292208292908582713009531981210582219287829648375819265010889597219992677139152431620387134588193199413058268207962195341423076923612715237922781374187495068642361433443984863902788348608014318325578302980235554958643410618607026495358705801385223752732304858084616436172342551110276960503964785693773906515020282740523592684842471442498621973222467792706495443350147451368648874607525649158803631060560959408172175069140507781903038263988682279200459150354352378272877695904884091108630759522544642640108738989822625238854023109403073175884837750474835757225706023093719513481478044118698279968735449275946984478599578968710851885163325687157293845429475109654860539685163253988696682425771751101403227250876443398699648003443478166822055150403444425057926990278162364281202103694003002438257955807913238203801760638558577139944693412554344860128913537952288570952752071831068084029100386066169127430551561176932154317089414907472548076959378885237550959134330794274711543225294848304029108968424771059081520569565063057357566636824680676274761072024177258214500694490543782662537632108427741795457798351307680509801536408246737666378092039023288643957659608867147033063958180247448428749680706239740360400093577288112568925203984951234093082638904489242768556427513264641037988687813587453405580393154591322006510145762450765351203063327712197386550976522725625642467899445622045020002518995710577877460462486065995532857267991072014767096072424359211686999520580585297718046881948554650452508325854493316361541566309794122774757112186321173313572413329738600323187462608084607420552151895293137356638288774733748108056498078328478316098780636963487847980326110153444829175173279002499441088691861707280350528125849573767164613542829236367823781579696607793237182101276276401795875957715163340769829616041069945738414456249650827597437526983763540492081657016371703984704110512314537304088522001183618370520147654461903779827693396337082778455214673992885546318424516479187839745957664713438887066391962114982095212557955391764045250631328510616426881290243156604918104646413192091172686696317905503033477628944127207556632670815563138970081330025352248747096588210211300976733656630796147842679411318268266554780365919447062185993506430083255062646524391025782752692912576707890819275911324000153491666899972148243377405509345815417119007859327702015916239375224608961594016607220496142548166685451533992080138743225293081258996106541062709551593913864921402775927333132425405514632115070529591152521512341099345181819044617841828891059963152968571973199978590750045614082676241739020982780331090872233050245471334968003285751065782171473479896651133651389307069497555330909083197289178391684166743829351351505968145311736945417853404144710903137999429970723446937079495665692224664904338832034844457428129571095031011143707272079207702039342689026543224472542749545315249729727783904632671250967553564522413268771445451938343213028997790171615331033663901680501272398858021549716223585774372341935157049104775820248761963559958880432149651593199341929041274143472460643830893732596325449503996590197311509023713146706750909215744532124642815967684926371585878419208702716977066095825425101067173169087649563039282833166826239791300246411308026824879948833529572853791876495572410543680832011558123614126976788120924269908910065451067773268935623398046689236970031871235984900033302878748232974813414299113872445085726260272930613398609422944888674718171788374380889483985281979267444101953740149716129923082573917734078567369344446055977779898831149458398852344324115790683241704358863320566788672832217040815606265478042084573693330013346197294734627396332228393346975441196214428340305626489972967988233476597517917426311187526657076003082394369324917731494541229289226871644061466726004846355730831305212303348024957002893220910203468820407023903231966630681152753626390803904719749020484008837176241524320512051092300416630473754053924840578762606960858934944815056244605917134581964408960800874409234129552755565371500294140660052463116566719219183693238601860903211407658097022113565371292184212269401518650415797328301893280885991809850671775751355466216718882926178252578785177268103536813044073765203898769436487865113699759142683106859996145679645399115046891237089292072709079316516564264238445627223259031799998581596256018334617423903838090883145066936719496561739200444861335368755813800424246767612023072791057319108018618513277792628674639617188921656827577173198025616503459435393658698258335576063983645832093901379677385298298169454622671151695997286141507212362492763773244310826844170200074945092683228629131670424754213764960311615220151018576378403094983025009796659500353735135046513345589950170577060954007935365581972317127141367055568401027751087276423770486550630215181179883134374311660303594057056357475686086858666889867550078285267388810684447707662679608971099429985760688033267314585511356000694716058486706053649726961495955601349517837107183580626679887433143879197525564569837632981332632436321823562698694040863602999584314910277290105604457931345060710639851493170426404355503286777235890510399843242537192738820844829046912378134221887516958303342001356812219402936960306581264102539676007680176407071128910667121762679338837085975958300244972660276952561061694265731085668778952975523876079341873747825401798129780330330471684053524826016573658478870298840678666234698502104487769018572958989796758703546811228361980704730482476273769872096069632243799297997923118287594826210834383326002331311332359776331859820531908170083071583323045276887593940342115902296317054584648721344746313120990187943040132068154458984913289903501243593740163831080607103782741530013085975309232785827342260604226140458497613196743695917056553217069200470210617200111482934249884143699060165090031208046983119018523389566778001717146956220261270510373352818296136157984091884305515911176803290094877741863776314863015468245834072998018956466776992118128576029163713793168206971401026658410935817200723705464842763822706093961234183777518917712851053889093379375691142213368281532258229861875996134514906250757091739059194033281986341509251625191452038598972119079294166372514823435096067946655079774198389731181674385732510903023600264053349616622778073207498706260673382994054842652610169361368294626495509817371380636919066979985655013758020618692370814331512199985294041505625664960867659879476938007149161108830917552763078084429267685592858782158678913085419370247209262014626766370538130845217911370031600935266009598575260334406500412490677185796802366592509567861518879590032887028622790915800591172487651891318558856682335468418376278167411579463183298059168724719317759036011352397710981443596969464774681502845986648328582780198264141999462840327382844053018628113448373404536140714607261305121841909143540639267311704720437875416251487107420718246504613248446315668853423941380263558490288100385240395400677014222386411985799647524354607230780959479322536607852804001478913880311243801316117354972920240702821014733002652964406330930857825801781125709573084395584886305820795308901692680151099073469649104505548081958024409144642863529076935929880429686004052944373671222970894750984197418174520122880574191174227289479988422570463543064383338682193006966988452866860331987944358575108963828349035585782344737654154524531601609051005969405643117603965061956715185374308343270170877807340922738247367843075479444969329260535174148962811655321448030522253161420707621088544108469674742460185290134289481341837427400609526592831290979917275532058753043276559615181334332866575928901476041938769233601488330481874717306456190997813142163012771150114969356277790646230901682476535971854479363680404907644881718307549508009310810753318310683841164953742077083645919804118013176329085763664555160800582234712985112309175179475540674051613501061084056606967316610919032594023112934809248448618142561139864722683164153423593948262931415327490040576777113298995932555861559884050759031023382707570647670213568122445208699220139606699305436202426416905052276328396248306455287306037371921608778919393256532390900110522165418867227942531574282040726427136193731712766533662689640494909726701949380738899533519322199640927714179358042691748454302152909071678341392964650082642565472149455398728788281385227734279550091632834562597688711794223557060399002778985196279778687085663029645268467170386345095268966681815338366467269179777871947329318752279698762208919637042485473045007200260818429712399202359621033727080547358075308985989919079004241976434798510817171928655913954054527765907859556156273838818761362869931508496357621365421408791947618316704411037566626961141334440212342902030765584397255703634014710431496521072657769350434849082998062538801477879398341355937529322880998000269961910954284338723077096308273889427703516661889729815379332835004971268590532549999188820603829436260806750641478679949699657535809747753461887886877716163446456757196412263998343993420369251218233157172473047515873037440984281608775097263659586139028510211440213136935552134889528464307434187170814922728332098848597953861636617570813475848577966484622043983676230242831830271318591257587179693734705481041143399440030986583740282265928497011276349912332293567284750972919479987673037845119424727481087677685329058558489212002933809012741606201361905619680757380033246419247038550876487439184757570717574042289163940402060861073549751498858307723783160605629566270292925596072751348741639837539354391709312175755627135777025708636047492887874201712025719214929331064011893466995733955993090377631993538462245940603830331144725978264132237969114974071120374832341867167343890848987580590957702850682964888260406504746910657488103937817211000313435159790885264111375393754812754801619612812544860164803149792087583147667529862579224229543315521004547969867625563483102855400183130726931874797610587951524976310295679061147488366207147074367879508012376995575708837703529775147621492142521622171045298962311118446452650522674838083370013883749005549748627118364008511628154713604673977819021967043190273015114210475907570979048404091779702671888915984223166804198613772430065397098016712872185501768886645256915526285510185164874364202523520448861832934456654671157953687605765685531394042216234151094115113670917637528248327470111726679337746596615158660530627543871488381715513242976227551209644129905794406776397260209548610336392305320026267442449962530006228628145009424706592957244904138548803202335808222213709319230273881847954002060902931641507047504524191183816909992571580774408296266250158879909650812300289964797743532480955874240550957051084489830728161167753602570299195908572734528452054834639133665444432245769806708251665967863820103126586796406263737381228770157428481725505069553394350176397848279601220328267694625628807057876422260966435910535796937187704224034271647651976576999516719820355210757966862331671847921727692209034892933093235414776912810178094114903447330679228372159425739467932117255659728751267831669717219126421825244841308097535734715299882583239940466760930940644041140964486198477123123683376158865297944755165950971702993619648917664712836466978946341991184988991143069997575081426461871638898480780609194622921954019554566218885881079256193920150975382354371033390181909414365105041375072735783468219813923606486306533490200595488644111340539996385528698646315001051484477647876530523295808100834477529841846702248479234141314171058175251055840451183337355448915732243529161542186974105719248693951614114089731303335831735002450201209331883702077510313582644107825350419507283602972313252654094821219450354185239219985138642637369369576760046001884575041344918763768717138225480667417881936378951431840138369366863719716173503854450231287358059189115623498983233704054372303703752264167864857452826036430307469973112010905030681319381218372510920559832457461665191632131575335894139965714225798660967612388224457568341228338309092856876598240129603625766425590201457078491975836700295668563579628498169788437977476931051028464313849496783154516043299984008167864314691108455595119908547939859617029328148375364768151013319167871978521277862731932214777003246165070236812701367103127630014784833414159679912585152084468071692497577269234868699102439466036709096482765409582073956439345659713144580018575452027530068475069852739176850968368627530530856577345747650298762130027180608323432679391917662119577667182665840237980770516244962527135939694302673955386984232806792952745442623868239282491871021772314000855708038284403943114202796064423518334385454973251417442888592016534374807666804733232748380865464466806645404137475488421480466289604575003387261099823987730225612487175508992933290823531992901619210705919209249283634574895407857925838850875164228277548271851854477798549285550664493860155517542488524478710518825502995621838481827170329520120140482238150400116852242446684635428541923173727513835034771630664208881354863803275060480934686295897335634096643233491697719841197868779251923232440950263503297987463567801241229280360285388336761098876401840195729747577946255801101061537069888414155339302263832813376909301501969562444197999281085312915456963353776628233979023150873474397672729936836884552064711936366532278431676617832248492312193601687178327987721213967274989791594289420236990551437854294951436842437677820512635116257253376308010326359172822610703227803612691935119743045902644771542573685081870932506814780169164384650878289590380740560572725835388614382039478975579379468327118504472036723104491436317291780919789989047412418151615424083243133604686503760321548286395462081221215125091099090097632378160306704951879880718006997775569065505725339705664554928191319334111426550549994032447260199907498954210592139520724222354245387899368173006602937025924129421236457230593521881798493693034786769920125529342529132054340612523967046638466748247333805207975859561052554390681640906016665354941656819935411149001844684117740180246405840708974299087213561256301050677216366054403905843491272999472107602457451310406221115557055631773031277150792783246273512858567751296457908505522829563275127170789106344817948138010555752702934102079805268004617077065205411333551204733765590922980806656028015994661737452609635605296733576096190641060407104335133000030500771701170655669437025631030759698338735610704673519248423031421562818573856644867878794057356829849181068305838702974823434428957871756084129550955818224944169202304772665341191623578075546746089519025208485341832112589712113467302466779267556550010172871154977611014644909383380259242723846973143900829918008839575193360081950230321817353411466112280752633997933559001381227946715826046077540652156662374874462356859364906224616916085721369802601449550284426304097479449971818626000064708014920043583347295460519068582392945618583903297288309482936415646087697269013045615695580507075036716184441351676861282917753913455451294166633324281123949637750912105660973340838837418029228548178153359361055971050049868884182286858216122093916162812618133182898092060526815758127689194911953234850508515393097226032554052041073825650681279260202066861882662615800896286014577027120220141714550571671993866376904098777755477747908192709637104465286096823761436071528548586392142577491717779717832256146956197639384154910694695616441366081204514636909597021700041250085212523291992509515271075724502090248326872523205986598922523290532237473096481506147517974477225928731414025692345267144496542655810185757195627888611071380448206685603925148650535741873967626609313915564034492701128162316616374589908759184161622001579554052311899679699773477361361496657915054448349170483013113385063411400461357503959390181152680771386613577488967268060235611536263706175133143410167237902314925678981662239966269451199697186050441863378916427652752199421437031201661228660065439193932804380407425727107981734347454825244798794628776840769970166616024596354610191759312786954232560515237952738389506439075312809323983153841186100229258104031945256464547196972428375031477369862986602400159053882621995339770494068279473509146561467260748360622082525096430081216985475108888101269278772878140996200137351606474079026481775299997074266495846986563374944515011267529465189818702680503909709648498672297539184341759702016218310796120985521688117134717736413355735730719815624649841712450643014968375955748326018228745264494504318416809368259660886454799900858925472637769613760293785530003202330976740233955948105625403779499388072250780526089642341471487804496997525339847209940497958077765481125026423491265253284948557437294761876558432041702944588606389085101672902088582238701245057604501380957849128661288115940728205176417183822185470475167231908896747918462039782492505755272141598446798131442405240719232413003107657349283338478849351457492937120627948545854658544075644440456932829636506916071995955996222976172088298502821583929667290685687397477305274528999459501493422767805301730174945284311871957761030460737080560327295386262463806564373285688539451955000358316768014106273533119055767698918492756036601625474156005439319034513919973103505066300289455662683807653087815340610503896378922406121328218894773308790550413617567696960981808816002658425907293559284130134963498697921929994915810713394521283957164833283931756238063246894150015502863823232575075647633217375108272043139971407431808566827525775143496987079160825578657228205705148363918764552020752961035317242293975418202511994872742162217699218484669732557197517701471334531193635374639769302787881443899843539306869179792696771156874456574957151900065800368814681316521415725043815621602332233598488567872331417874615488092942711760510473578050974674227019571033790008615491208022167081387661647446148134589935103811665809586474729000881293203540171007171075863716903702820053699092353378815368082193067140917509188525185833813989413333032421308278321845650140032329762905809519879550926022449047607986147576817122422108803844392102471288061333505410728903394638720935191100848777051068379464056580218021663398690959693832232826538697637914321667220810259924208597697850250784943260175624570168378051336817490133719643395449881638057033385860874198620914075115666220314513757351524652425170218453807589792140555109513690773895312642350939358232133794585039086226575834435705953822607966948756671551195544502683608613885914312718741902831799801508536189364403518216797362734822398736383448388401190472480554940899258272477638103775850956688412419490832877427489190813074271283342662167220108606781777780440429607159242027443032563911631763100348802443231415698483746805105125642798650333985573431802947381266519390983564835449852415119069143322269329987102320630851464617647755615171936011582263903361076413757835132077180547323268087076397922371846566966649503194800470932950488736414962032321288304379375394258205700326903607117650002549229544152218656230210283277103243444999274428956449865457373309106218024775536554122395875599183771466748343290491423983619900920724946170670339327001622704218768713954291443056324473541568851783109219895948463766766660588792502458354879441644255595453546947032706991833194215458038699034804128308144352346936937354384481221218917285073574509930420940550071376426541554415920105903962285927599814819996078120083290595365679581357960037579797532437831800210349008248547590057937318254810224053435832041617392709041840703388910167317759967879837732699581685572590394453012952010391549656970698959033325912619132697565079904708988630399351855999005526316427801330161087018798093331923746782953725509419682594991490688482323675817153915091044099382225895114313297423368543234566871122968394370701859829599797832415576274405292083359433022339916543859150910301905065304967054119013680955348378367713830333359128962336203168738531682706327696091520924174213149465032541786923953159961605389985470901442153506096464204621533942322697997464966727966085584170723271568609954223136838150870637130814372746661013793558173647391842624654211054510077898043085130979942983645385446968119810111127659457943120847252450841638504949934344755638337989219301185470654727562996119780736197996221435803407422449659263893693411973030111528437447778071597740145393231920458000289212971323836803223766746639754474273128390741531717230150110439131777573343988021260221373473196330940856058495410177926498501153770252520454978838008117878992429924074858067023857451279079446336222365765833308320441128556977963222764568874582190604927714019878343904632857838370161158085912010883619413482517108631940026145892814639392088898014198597827073438141938512284396398477269947350004169056994808540255712872385121293344541619825959102637196692333494062461317783081720356405485737624940738799187491210114028468253956188730543539363750542566487299322183751969295592946951171906073898054838099962035522856210518177226245240457238933561964410295458155476074864761919861411093992445059609784713813278407837885709342611254935421819805419539736489720240214104372428370857357498953060994887529617017079257315455879749652448330022051455100625880380319858645519351280624205555774075352249785099377413676369803486677651402322203609515869742928675054572385199222670349131774841549368560549693901120717449953711203523611242142246285024019143406071206313576577398526037072004644220500819015018987357852881800971766850933649244124835300810595656892832927591737587563882093273376795967862318450130705508259375988546729307193918647118304562343792171631157358737417240342721562420824203959540049729428545885729900778202201759558427908437419644726200063437806239338841802746330336731299608326189389902377133795510689901512508194766359384806557925836092649896396718758153531300108257555551222395250825226309402885574973402910008942205146167959226874522575590624543258201554928624207415114045471384495966561163287325143159259161261685809124195472130997668737431781597718329392432321729279551005827970515961511809146308710724086826827764644562543158433083654415980299382209127565086917514438582149324451211225880808756278838350912575570992889215717123759329774186049510337940675012326237742328743687565359919457315524175121278002845356387732102678819740769674751127677252412487410525459169462915844266132230512698313552687707968169982669586500676176092887008488596613919116233480603863809913292931123317148534874096832566051649543086486176917592124558674155771999970319377455781636765453877807319766877081686460259991416059700880622566526299520872572041330503678364204867420643042027719885721356852496888569336592227796097127412615798842588659936701887814234056956830369103808012993859943402144004708104507373289683606504388110702225014066417671244411833611352044272473867825210145742244078146799219638056596731116053282846027213994729401263861341277036937389368004277970884855883002327367556153647403338182799639099867658833903074982556365680292616097218804673902258592922434181325169015820675263612927512662841428409388817131545330514961427575830849001277581239277243411888542907382317350027662484132171130876329964670101953147976131499148563558402687957977713134558038074042852097682856319618915287771135578542698943548150122950806978254733673571825633859166622412885563164880063859436026833724731845055453779507048727650141160243106235688162624407424674372942392268687391429006429224449150320795554196826825557914720204395871599198254708398716738750142926114021597688072573757395549439455632363982119180186225371419020345015624470018510687810339185920250314460875957278358529974132892499019886837394819018050949825970780480586769540542659285023068545151760180331526851245925627526247530907760561199808811326375570448469671161800725446841232590869035116084395833140251414177262478526213587916563208089188327519713493460048681454154534508104671746914687977490318628144280381744226320867843880312664906954710099840964884380103663010976083327516479960552565460459406512354495700900434722560896842608054060584051138435670756662593697014289140704617998230512329457469602974758247916098266800218327334094476925765007045559393976894596378756268602880176296755953945063440577948386918545669616634687895265746562841523726298998507606241241211454385708958546115430441435192560817528497865415514288091071307042248181205781030361999443383675817923025051989012045332125370628738000512275493413254588559864054600171463789528040255562149922170896708914234568372417917309229101565023827142595844955319780446748749006053898578139908187308337548561468870055410907589068570356421139117544550895501693943216192063060415090293834349736851897849078912191458147749678676610751372079727188363373139573393892471503877677378566927317382480007632459696473914525218723310753857241874798065066853221108255481316774390361308175469990287824726585345901670213482058071097566066956350673837398929204899042780331309488808081405460865780398453552114524929558316898113086068855584446532908630472598576887833300060131021369458367714025912221046748587356838589457589690805044069484308402872833725160526723056740527890086060884357303453863959008484572453352586855166175358338647949151522910825642186107116472509395932709547739500368173529014111141167804937727444059431836704058694669583763172951902475143998463370916182744985552053341848791243064079357709982149881799917576279981955083904145802881874509660478880460567847345710655621434269057400622607718391416645450888070192832142750611554955427652583447055314359084043273977780705174698393202893141093795486241356932401978112044749097297707623794264040044476909444802318127704632961112846975956803759127183302145121718322425382874790018980266119481212395438473764099226624564783100803806333834841144362096591391591025475395101133437830426244476891872060211254790398841978765367047153963844427419221642324119957280503403842007496547426094992520968654067310517079858750873161700317788395570168337821806014725860536256013110627938381981422717864899833299477718684517156163045254960305660275572895861728275033716888206261166939047931781632122625025707868998242739244522287135574724362542504722356088737766774724581812807348598877216803245840796956608708712627067115519871752257880556394892713788721386901469161393128105180467216043906776645378817985798107015208728107597384113919476367595890771901111199408877252309602337327464891016644600746572152880148665191009702998765048742572981034168153164730066901337723801720702486415596801055218681507771913604533888302998945956868724753116848283501999437420776383961826794520186866520612140269686548022732761560636626530763263962006856335835638258512956716809586072487480066930891996430398471497003233610304909361601838672620952278127124770473630937362255659092863717171970864181058261513817957987505946658365726529793029876748890901695553300864501624427168041522751284540980937652203729286010004793495806050482905390422647919611636743376106276013093609238540073829538887056311483629758190398092560550915145888860730230104136041977760132443985962939163985955549384058455473883029925006917474875372148258509443316491009495652715564742794651330418891857431320585182523872785392442389006805055779435956358327203980399501834960808025905803202450211635984481023830647895257763636184900603246358567285862648705180781484725900083210504314198620996959979926620820156961581941982618349133940426872460705697035075256846722390692395402628214127710305628031026564521766323234305785034077584756599902463149116851327658284612814436059898475926092114916256336550087462263085261470441220486385234329777324929874045647975429082686761937388347515824847799994442534318699369047394849330186321832316763936394955970919639004192451390280659709524635198094881616496184738415451255856871437220995600941859442063085349202011898130588752265214068330712273230568668707533324521231394558574945236927316508676404725381106014341815995608221935121722134426751494168443131549422737849295669952228981140632525103314054086019737143903464598405287585127862773555743347449346040098946992268930962889213090838808654832769118177987768430496304949558832375606274417773157097373421566050376048407338276718046827269386153984251820841751052148829447616235499310540258010181742412695334598487104020636353991476380889909995552527052927315581207741055191230595360303933888196255743256917953690062426772628267679370742470062762801976777978642273548306924948625679515170096523756112187264381421115727829792054046027800566971491949324486472321806610726427109821305481948399492218964896550944768130042826796115798996229705675323713225150856843572529753197892339049564124663640535829112510932994309471874045686901665012268649513588052611248257683333900613324308358072958459448877451222065210398460500985043800686877936481824301223794216044159143275496541577929616940918556269090756238112077671571326116192380731906854441445848141169003478702020637813985945757398911276110686651773067948825819347522901299892416838890573431899733299575050275993269739238077949984610560949437322033189244504961669175640744097594275380505986811054011679014054928891876809492605533015252303264961000589476804194063826958506310702895992909421420508388117957949027592246143084480379925170295427160597290783758882421074005615642987349477840381702533960970065088851457769884298975571076584197765287190848893500305090371131961051950078798999061242180030550553649210350583337635333769525283365076082188798979599157925525955568823530752345853202843915188702709349450685990535563003712632526978593048266359787183137976444261082678201064020619991385728761120226456859438691957163882035104850070841405120336428992723596926269363674446351336748763769827238955837804516379296499152185451362102306453764415042706008971216193592676098483898869460645103906465125729912193831480613004253451395659987973211513638002388567819073326383439897999954832443069848862111535757702693835341615419908967762841755715593749178590709855194529088341411649708636279035055524564646284865268723259805152743373091200232659916061766025293198754990451551351811363436769126126530596104903472295188941100165226251273491187017945634525549537753871661019419442806912546091074894134464898166381347417729165910901366251934706410757874805448166030411745627041608980194255659402969340621023224562715048726872377350044639697589883917645234915271896866912532543149707600387566681037081333672403700396228933673948880548402491980546204631763946052460753949014428713043994870078108970929070203911186012060946536433780443225366904530536011952261315235395927796622806126082977452257515064050153139768223068398349535135421344723511398740250385044575188563485129446519449345860455241394695326288791935801561297240859103358098997520060312147159497087260508635248623197105780092580866191322366593384453818052618211049723700614185843344251155933482026897655524345730368854724653270726284194402334723526336172249941716501225948357220419430513736092352620934854988625980429650010368473358791817349764734032196786928484646942528036178249304484503722019670340488135226218219999640017644968774394872045032012215597538863654083198072898934150197255798576227723300111148920789744144314189269931827778991102355144285469081833733823267891606507932443910846634815352091821048550168869821375719347207057876787519460491592933378969132150908146183055935892312267162069828198963665155422551696680216212655013806040782108214966198342481850645612954905366592180630317916024387749513533988778257011708388536038987163921532815849420142482130665289720477538092071655704347223575881454259235668057462110224360741254934960135589396817467430020473542024380323208366337170481601774909264978500090905921635139471251205959031338106904978997356299507649580703344011939104887273916343977909186526519002327828893993584031907183623250700602708404856070624520364301242788691965150838370828565682958301608495889453307620918427701509068375224390984505495933026333963384920690908613492140798482393824885730241333585210772502038703135875383814231022400991805018328593456042786778059580198379496166127041341038129487424099986807168298336257378138844187865737259740481361059477242294559396582947155427079621265534782969621219147449590484692767079899527921999290590553497403136503521431506832941228307846049611732844348124665641208694448946425284373987094254066283637753522209101415126613338542315584435324776246400092922649403021292498744657711808630875603224325639689646459606954167769019493153748674778467500011983230312417830507194031590781263949645109652781038492756848440570385508542930275581405598850902616184640491571602320043092512247816663037550772072789455562069868055878889169140302792756752990159364457240429862034304209116326977451673057566653473382337528464044879491046621112825867397106490610128860478886432142219575847155626572602707334155713930196271861983776336597849482130870636076154995354463340710469994245429532760044175054572305691139209039957161968812715353331634918286483082551364012251021599900307960442997946348165655334726044899662745607311378199938305071820968822062130196218767054082744888477620715161169071790280820374149867203139716428483063092318529783829542431233770185154583508608536215066262736006884925430780619614504824628288709237636011156742036812745462578959169044734703380741768113649342894076643549954613053752906323925722125602430664355512246462954358188963706605519123965928059965725002674991563654588245484926565337370985952337615310922991880877854823639042285973471859864765366767437050261902250639223172889274543857015823217862701142998284191357537863541975552574652672940555397744758687965519346061524423992693053975475900097392912521662500681790885837245183151776930375293934296673679636556949622720428139200202604159986651050265078113986035006431698481866171403097911614112783360532364838827111855594659858317845992883033165477821995782173306530007861064197476338387158542102521711900188716398530796005482153215581337172719110151621360507875774625336418378145386367940807011653014585425497341677100396578344225093390720306087881760380309947424438868619475966216188679117852601351274635031277967479258731430459023646582221384258084535441311289411958846873517268702401043128635537535178819383248510895123289293899734529238530676464702176795364585450813711539875200392431184941707210563826875357796140319011043382662710502883690174082489606629857135588165225736110098638367966384885860497942707026505006661040376498279102677977418364167021842594281525080139962570428614203786934577969125574330062193684322590603942322043822864824270197073335500816662712865882901118789124546824453218561402775276470690855568798185302726865198394515570548648444371164748096671280859316195412917418032128714767671769295644302196320973110493478877536084726034965423840789329162967211146118189762885490490570281415277309027181094559720118676976561159854467069144605261680282088139298229470259746583912197305366852502601742449473148743619588137403713258651750411643257323834151523226558827793546957019550847472755713937537486300751874616453916453445551061764562804351279730298469527609197620799443942458499233482491966935623009871407681204092205001854869352708378470921615202356992339814157835109387042212968519164447052103036881291618611607360487669049606603770889749672627366063601411132169588819688445182080595713692689212579104862342480503258885520966342812402126931590719299390892830653628783005671900122154442804693881864735286226923128422541120276666487447839104396876014134651121112174460245665029485076179185939121451426815119317336173719145295740249796506579541997264542976371995255334509681163069991561566102166561349509387220519632058503161397396500533196188483964965183202608977121699962326186159266084644017047671622892214669630435486630150643024027586001355804869016165711823657230013716331978012802702742679046307995204556550099772990341424562538677302087498394758558833489811660594976722731629778395428566767564986930836665937025594756172423847216455216003488524394271861164968187247459423904138670686099496570437820602167080849079906622319781691074433974857529734721265719039407966037164037212143529166451016084015893700455527766867088813815799041316875118375602360425421242458698658561072792350665722528199484135048108726814633060577474853113300420526074850356931664444663576717200434108514125420314927450384234777695811288216923118820948422168450998290990425563042009118207932331043149277358338550735112045451515257807038321113529541768843467207793481282456198945668624018976194863630603075014558601657925751081649890176722270682329403228974873466797304372884447950440671016625322987921563859578271572439394393371520687134995277573327882046954448070554980138236223575383016974139831222263483741464337194921546411076226310443749294606742456243237921626368179954526829348760904484851195516189008347254848189592480016312570879141971381047394255972588846296538735445762028400840875220434433079397177458032369978616473622332270086801327848204018361852943378813293733003584223658805626991283133112009723427131372009988631326205593361899525676810811067630119192387476297134251090246596540176059028137194907362660319770872076396457280102226850385085173876043558619536832295512786514001688443681705211460980927989253983152390758065303471633107570777347285628641432293479575977093453181058945462085660299064942568200023008159297619613929566210210845341021306550936605739432259799935158892814638820191985879619188544404540100416128329955402669544237091530302701452779688256306409307005020087457183380401365331037293214776195523190167812844211600208605220248282058157021894500915886645002879096761166527309161042324260874268449229613321640538041741935673124423156871622757148917982554850578393337434201633340218177421637573277960392894374136798491714491175356475147066326995842784049266055681003342544404929223198224272675599027762056194739349358517313112759422867342723390097746322334890336420856799888387921823604854339529291574532998062476287483507620962168159707130842013427511673085935346134813064775416118087574360661303020442353033516065238346056330210143794699296787723683645713398603345023242977205539816423923933452572570165207933445820227454594205075265980787292149477871974096201821363706248706717577817942680100872486741087779001640667438892066367999649039508591471199616321874085645912071240985817634051342599705463336197536176557596215023547291864152284062475804032818102417226146481654366210857998221948593356390592572107089667299030318119870854404264330068021332769824726565632791992590700319963105102330466555404440340103628993231687692192746983248230174849018365844388077118861257883958663962452370327724934212804922096714011031878459071935440016990665130411356742528281753286498247320712932342553585281538601562203731782754910700492462809187714647047051106826407108632593243674993353493406362028942787912045915681807679188596231893604909332624342681636673904099631358107884762192535832128837083111809618183005944499000812506922755956890816039582739805005695400920787069309684377438693479025264878535244911541656110565785714738146572478290932067168788700793838669531981453913877377196740741988713587892965996539161787143476628338272154825032382655646452912403262388471817328287559630690612370965427997216549869857585293386707153955180309918269833137273883081074073316254628182138208749276849552503083959537534836962237457021518814214828595112833164391458092060304169575402153482483511620485246541132165516042005740124217001887237114524736369166166582797300338781173348905790687587180548027431334543991524072228346419054523635399976686115267986531904896743063125540680181579560387522628958862288026950834420643835109304079093081373072621963277776871178417728893502851255160270060789432557894878650765732363556502268845196398640633715423291946653602367667484822816267889421914646593090002322246054039241118495095182955341225099256737578942661471751614626775223100614242494363685412437699999161575579743551838973838359815844860814918290075686444338496363893558618286336214461377320809746747696253525719737567327147373632289655154388835769924618564346481695132445369061184284434489718596653489849592143041074477682824750555074309382681615874794021137557567703273594399223351454906881329533795847974806262879209257259310165784475743965271707774823050999538744680989341111603021305909086937657272427386084189904729361191486148051845736117519209227152171898944077915552376001647524969604657575015220757683368332588452719221432571980193960998477841999536693099152055131294515869955119278883351063627716819069662101253538221353375684834324474460126131054132263956319044989249807727872662569778488327264208477698764411135936855900689197443665130870569267778795834034227406824790439797331692777651118809510987241009894222838576976414950435113825262280117450592414773040587151185377239403401840411604609578307821526086379621639415181744586116738600046798507125549831371853678492278002689351382443877837837926950067221679702499204153673836307187135470794014409223122856456201289769910857825862663958950098020823781457520283003972720932797602044856387815444884491183941519341402604976471422909565632598893282271272923316356405677623816113450753288111584814784145617370069635965380961239098585824005607429850567767869527067722177934080220695389890506070029863149223370777087053120168010787125582556177874385047355718106347678846437561412677441200409705200984340761655808276757597076580323944679225893118951975958123646156399837804050557417203943795514480540925086399612494513692036151475533716404652121823658075140707761273698619745445974179581255556064953796819966390824829997758314818963725677013132609141104445434820015545210426091372378557389371460378756497888626746868415272986193547744689738825942217948227670712115166377551507305103399957753623657750123049093765184516309131707186335142415850267177283250471996039441745219373978894080717120594649614081334967212881215872346797442737865697818187312078463516712776567443170248662932922039593231047793421574099362786572121653860676897977715944812699340485014874630839481100332016807717902637734650457180730831696212930452924185437463075942055565102616506114864070373730875075708400003663257154629787886961710711309083214157959560030973031674845943473811378426753059416186929791453804029462729528544834625998700129070632340440569447749173774672325539774251169230071280411964225396623925309337728299957312465138129684242764651509009222070440782489081688774632594760877869423377143061290495762454931832686646319465015978305105619991281307302557372738192565418611863529758561917538003776822372386169999186716212125198389778261073202952255551529316743084715552572754127323385583235686393859419398328010155444924773521827010000140637728253496479268141249398090101795648702860262495667716211190591290508068812496971887714688104274843830732691847175559907744880901902825551036871738883862416567592113761071425475032998340478302613301607103918762065230274386363954530124538618260650949452664693181586450722902336659918559062770186718181282365504965155665321843238050902717049123059583181544211831310156289963432777121130761213563805217188887578613139931655003388226548657819314655764002435137697124844481139770218965629254743422372091226136014057580443191414751356352770515230166657511130238654707905840964466082947747072419581030452754521513060880932149720489257544110929319278088218397332415564999758869870467054168841317319905398455539083440345053712656166027937500100484440532459159402033482299677008801616996220141531005641409931438721660528060122063125350039103325404493098219479595271277981979489183053688212184788103376977840425762043500009934084511361730261003098881449804219206232720451432985094900195738372611774408576670783518746617540795722173793237197943769766836855980281437103135974576543465012031898434471973595993400391035270925502196296419601904507886329772188705288909218209160711710457561300892177260365818175244783482852855565760120285488342698192968971261207698641856993801418350340828973979500321148312768909026538049105483094771790121694182608469942275281374268966555540808348877830300864319076218123348856695918187931523534984717714055898861225444264103412013214911669500611892067379095623957987618734362400630308237674604385737191868751371909230168698638915207938318327064234642142716647231787628943785993809447139279904051748096931847266593539614945784991545528501765843279795104270695521948758259911126231961199393787411009258620412039749946189974555464823125873596892868729698076705643773937999676316942809302448839536472025911539842995235618407117106908999093691474256189098699432125075653420768412742101963532265022550353553631073687374458187496361145178333045429835651631857837264377472826476300274111005597756240213308118156062885345651711121576664152445615749647286334106276909388940013672990926783763195968657630426230988695260322735981064619406859758336408871497414742599586903548017631688469452465768877750791292390342194085586556360303139137764368569958760865056386820347139170664644708851828091964111030095823257711681311849582126916733718871609014559552788601272129265010339949497567108137178504643903401187863536198663255577092678761233303129546268574902321118403905957857391600928038242660557526133590744096154849876283249574235698772963660384650317242931073504740752049871466196390971828662610480637281561056121724572466780226736127888522150873665741518150061099048397681198500455513457207187807974873568577071422219541967372674431808915881534259595994690994010246670605791220741093374800861065163827129414806433543110816043866592099063089796198049166757798641936334802800620673330013748284673568347652711880048220805429567103617654989072318370893307780657576396169150907814480378371935161720094031501348242847412130468671348647339362968835635720479200367682342553448814161325581284205723474135257912505200279224644875815898855336037329419310947182713125823536821145504245162167048293805488521512053396527178745270541620024242566516949398639898153508174978666752267067492454543586683650223602590144744881489708265645470603768276177231617597487765537838567172430323217302679904452434893428107116682398255115313633605657710955702209483582389621064415927929581706944833902203900981726807843498780979872730625077501460591616635228396032905491705884930913951936830556530477413026183555019497096105238515381660319542396695207564812111062202633364082363466835014806941582421595322662524251489774163310652388203659003156542404593899131567682619309503239148206405523247645515620258661043497859308703917998114529237984410021244587225216227906742013837767612424010283187751213773068903971159589343837473295613443837190330862835366787380683055161881323383887796295190894020670351818593719361029733963246890912428922747637129285181999600282023738795884438702601041758134942197293712222666884599912060928311307277294377067844619778702748133974649912154495428917979735633183317818422600950729552895347023961833553751886129654290580289066561180609335657391694204339228880679205459913513397117148286353368878091984735991418172473975833475622720116310560318827240397828783031305953439300595145517018374060462996591999597152340366861510982946975357049094776428834748356672286721369289029081483469368410983348954675378550317232964134945481275344369770541107181583421128377600285540609234971497703215170353894508629199711483159334294957718612883974326775044866421524730561611759466619555223400375250159902420511621852640035434072203012875713205192264342985680036067827393357742319001175723419603996660664175417328746184135912545076709316698850744343692872933763124252985121839110495851987052847321249778807258926920368778657146476168023657837261009068862499152891671151338419986876710833010258657494805151298621020104634308740641460340942026765706536993259047547126534231368037981941341516799166375362276121779786255637453444578093483588947064830587491769656856457413719358303131619989450952747472809959601902584060736722035166515569831730431138377380204551865439121979599303929843267905392166043581750980661881513542760628659808718972189844790216123456711500779801750056129420861955072014107289264766569798347511374033152645377211702116796867054139176117767731306169398459858138333352235294902975533913351022733113573075110122613602184705789374363103682657942078432140000776163948621473668653419698349375250843574630216186436730637728198910426738917802471258309575132164242494197277475632779588171910818396068563091497474504483033060787459198432162490909156806135213567178465770309750570378336300843421404169985336654516621951389663150810912764864317721053177206487146351096315290991247471084284925598422679681556391465751918114866276758676805482595657439745263949732902367018919589063889786951044008226156086676479571344212948337850988470212117377074023665195240921709023391799860216540670018977316040800464162587131814093918817276852288575985814640183157887141437163755416432316073470442190709408464384194267166164816341743806446258448724818379104342336184977801996584041559489642185194047366190487001450929910400858130411188242385452562410274778973057362263908694502525428123126756951901048615166915843974070893947333289743107465627094710009443763911734427191669280312960602913105364210968108751166349655224875032087387789511350124189954472109385159477142210335786531177545919999655038673637118625588146611093866020057604195077591257544641979622553918613914329604044924986708640685453382226492392486849842394857893736230509555871433436650705635771471777376187958638135130506686600036170796711078549307690179986845141287847843019551875927477777363989562377093104298517166974580722165347473565704383407500133151993692558205102318057906574059560997103044938751266629030542327769030930946613673560231117544470203916662748035419855149860458468830706747796402079433417987317595685842800454152133704101595352115558216342070358519465456538215480157119985662179802581278198655381151270756081728958780562750319256561609678745210175364860603423657960717363195043761047072776417438979269515992807092945157213644957837301275971453811596036968056591443413482102880061632739750862631589193168463541455320729764003001285715262274903407387571665222033011108000243620223118753358387604765824065218008949958403999117679147691932840077422543105764003952307258462860802249229931330880341227816154724979527870420617787726751788598242760463412994650286366419730571541560543088140647742355397917478098029761436348142236547966945885417076295783439284211080609179999586723061047873236824907075592052828092540290539190359574891315326518075938992437717943031181246233864943894607679109598719007302205229236934882241719112993529126196233330794085104714349518614116783064083669813779085910956621391300299039993957059602070210022466814514394103714225040607718270782512339426007259723645775790924803884605003821129835079517488534661327659846630231471684237225332806666098230312117431416076467021625121066041773918620081316830176710525235694460892563963793206290784490102296566733535867843279009394041065270353000613561386059483323875462359731155429971115959907521881199597484011504378945618177111691955705482629323129327674919207192671638772398118317237124930676378501362664304947790142192731060638393842597235222424932429301169583164253787470839603372366081961584983620309254158350690540278292813463162155076023643270866948090178028557912560566801908728051028272658636685904921836409408091292510339083088300255545674610245959695933252231990497795763554533587896172770637037820227678508508321270798110895472407476583997681084354915141826862790556347255118431159511072076525448729982488092603006605582819217071220473818078535470428016659582878709876118082677270957515365590058693647473028612830770243359043006711910980539049665315517853753698097476106393060892667620665160989574796991113220292027855001801355033435129715991263815096580488220388337981251275407685501835424980316970983671653562426597962046066305276385553090949933937941372429511171482397786232088213480422593059898775400671727537476044607252415528174155736776039388715279497612728360646636378921633234823163688156083585179427587201435557219723978706053145602983954355932059186109487306519182785842579372882128983515602180805821150161366829365703638376845153070293072321683096157576416600632557253216620845797232540893251428122475671090782604928885248309585641491826947110916237475641161443516819888654849336088143981622770821335654740193145146896808997977836613416139626528462355708434466949206527279714364300687489558494190770220754529909978250288453138106972508899930081325780965183083402116246703303718076445158696314929166953995848469331772138709283525716132978890731162988239567349464469245658084073879735228883925984550707028820577846257599945365817988752655644753490876211442066505528706209164665098697820810761326872998844373812353954561072421468642496927246090217713210655805744591724649507376913830927223611268280194331388199571814669173897060583651302157960440176974212666196650174664742684283960397378947670262743291757192499488000636441567105050495029604927096298348538449318453307907761881557620000218848527825248855451578082726231800590478706621000676321088553072710422830059499125892754847068706086927104798274604180219728264799221460670417445247878232066599901185884151045993708792346845451450490261190479507694157632542376130710733335807026024164144923364571921604432745782887809741447460804479631335796034345534192595729408424862391870475670161902189976135262342806936952760304451972679503634165960064964638880497923308773685142632584995184277190612722589303698846621247518683300864150647312448740135873768906309223510146608330005305016847634985455582194120553407605774426528089701761664631270181671047222440577528333485966640068361630028578708295781761279252679538114141525264981063296008651088683789985402764764137184047890695078182812448694742963824481800414375794942465301013202312142029961524310847378981152534218476773069591678022675829336542994361940717645654378580896045339999837455488577430880973562458336159532336961420385078122721912713327741976166098890415394229752941816319274469546302889584968539999788855465815060909760692096889531341663914869388279451378157306404682940032917967016723059075680550823652726670932394591060623522490368584505996101229289274448631088686680929975050780755899006244376115093439727908527113439915288503696660237605932778398945037003225327264900846106813254513970595855684692751651266351956653662368336305551813541122447962192306937006694456050564912512413045224830232966195436143463055209160256938653169071534922332960490301725151297423513031012349501921607243118123936913680520080139013915483937629827996468322697853077735575378560950321086822791314435489303066832254369155584388195957052535760103671295271203561451164385817215489882675058234132628515985118446930877905280258291942459335812320272850488567709624661532868021245390954098282345357368379029134292436508492715824258027858106938931554962841866195757136565987216623480526211438545209275477172570278480690802715876451834635368252644094752092424256487752337777627559833385834642012455254919154772070688426511582406361094084254461664627709993645587267059118729655702758969130142760533550606599568004116037869034304380538973498034574123289198164220651181952808514520052616676092177502893242329195964296107392882657261792370403763403728124851582376794284238696237157700885609372733705823571337070911834124450470902289747516096737211603708733293598307201822964208470034868231484616427849248706869808834942948697532219451286651735917415094610448791920662452994564204693820755434515893832569184772684737413877265233145143544305446291963794243207523709913421858911564872888542595259299953429695762128923304653775333343312588715569436236182469772209301215106225140734670494956172420074816114954797148041239844560724432626640443853952030137561507096135944070934471794090313966350778786914825537685169280499475855861851155312036939442351575082057527967887971181996864825713614203386695474818440747766231716704963858681487966975004680148436818701483211288733743956316037038608605995930682917968594783570028808838759798537811382860979557557365467052023978012449625627097429611929162331203361678896125405340803430744133303090150269501752690617216842494329710663185615823906150907371364558942125998610221140573385834461154882031370912849584588837972551226565582064587822208005087481555572949367388837168814487095563392860347409161811359053295157300987972751058129244420534175037147811635779976457231077261869184104408745947070337421939842985643757689094749442857813940613437264761857935957947043668678417207496776098935889172790722804512978485442006004372750128278427041885511874472580085468122246475628235824752053211974507811594152089347858520107372215457611331585497233998420269943735425881880050576193831488701934689133632493042185566140872487738406761315368877188923472091594787836122917569319438124623324891085532495265920618905635300723343360800259966846622114835040903637449336611101653951651989066388118155018697531397348759273287004163909620652214831661243618683630261490358215426261957230167631428188314692565177483344607007176140369328804725906458302865424018917637899419662679179565560603969768223744223798975374791499656379426939199898506131985289224140950170286972966010096997878774577349747531346574177823615190512162750914741957773351398647679402390623726075486768039470940504318984956684482359809817804323625154936706203179386112209760291258659601632094800111699946383046986121578644818685090436897125604923175157471065477059938906643711094025499185971776721578280544674335175562414847456821353284280582578959347088695438259487452995109854352177585355831858879066465351730569776246556694502177980042050245599171562595955795558069775813879093604089722119218787200324964488699023174127737839433369095471663674556765346280471304060392535144123040665118814343051750089422992520571056056155305679046747270527748062522888534764472617281301258301466989946773458121931481093490283040713118118620245943478188255658626750841257877466178925018919782938033644507106487588199033848075888385352799917284872610507016834321969735259018862063390591866379019193782493924057987758324410593910747890300052027216236652933951273754690908686707537548044898466802469214098985498548221941691635757749004611394673786103084442325128580360579019195839567914544946697572704871293304269400797571950452178480367434066086495422925180358608375800473560443416105720892692262516164388465048780840189603055762167405099402431481467022052823495348479042372549142036107258468657618068562930381659656072548595383170537450447923446117600385939451228447845930835075455296954868076642885070961537147829340168160648198078391599871693211797079124217799537822399202624452213303935020606054497758423517601992081650307039740864479496124407385536459396097061728965353716619125823700141994881198791594158220861972605859548368809186218523755697169934376835191116769797322991839252393841612320934627949890461501828003142717854761281937955363161485270211244629743405370433830365168206426526148847543196557411077111561208816353214628018632991150941247464912193528090907320006113640047213524268001964575258513249815627484353223170918295812463755160506306378957300860014893623871810206566983546392031480605475575211523420241500215048947928312130829570199989234764833672587310581576758943132151105677633975498110705952641510293687152069466687805545868962483913799765698721854528978226883121067163348264486055525593139604685934491920520892944525409859386433807539656441406091989225962620858585793980362726279961326198605444448819546048247016280704514325461338588487828548670116150557113692318613201640646735947304629029906299088400878309574336372320086520948256169502954824881708695256890334023989300229749924330233338961244228300495173383687735363557297960500199177505720851711844379965886636100496759889744081645876757886759178111402173413668346976828078725232481170734186448528972663040188142796071021250420562069149722747063789759186397665788392468874330359393603135759350691529825750398207336124644131332475896771558485937659951627748887978059646216909166061816466234520346616444027603549562739483411124399742545047171127529997114213664613804041393158065033976382768403633308926130393662926016963757775794239220721620386918663257774151496644513712839281351109384785523071451565105216310909896980322144250473368849638616030429370985193008916062206035972480035904417810900095280199261194125212984977726193096529152159247930354129444690190419469381771338558779785918895895171635484045240674312265762358110505854400774458376094283990588723048734038575621399279553069585023843813024042868815933338561086883662836064472851752464818306150531086357862578528008267231340637084605354258534407448084339043003715119365168865165383204989274657258851144618275263544471123294130805513929514254214851869831046645904071034505933022784438373636937172306109075847386419094906942469748079242585152942595134360267061584443854442040898612740247425612100214735120940689306479995345875463600862687177521438106528887138208571125562261316586479823203069184848962130857106386333851639478098060363326565023552986137582253828188683601575861869621010832869378307040122928040146008562510849421480304227955812937505168784215599087045086533073912338341947599881197322010786032181601689969465814615872320025276266027520944810441621557629311062622437175797106713869916265238109277903975233597785814627937559545687425360859647661488748069529903185115442539531566322686501106797048587047868437266149879437721008476099972660764170797986863896220553314397419865411389178905114900713158633610848219893691627234368192843401396808334124342513482694206852898372065563214229298140127030009014917919034598071410782101201575767032355672051843899106572945786829486580338056963291878799245239271660989095460447820480990852654345204732510284063044630044044536606493483987232850476969680777471911311730846200915713075560495802451136282175986078234143682919926836142443278324630129532376127449314787947897302701957480883005734778300877082836466650985613317850864172751953545390638958441862942171253353529806276811406984212073521215868866630507733654660471819650429450977245668152988632908045121612483868037156691645866462343696466675474024238634301694526065588163325970848080047529257596997299214504056542524645954322727499907202570886591933172928028528820176672425531854957838729346152074171180354535789357269186704047965502932215164613468331480592828022129385613897521842351738521206680652019882543820839411161553003184231281657524932977795902027181338363314314861128164829814329200415519275943624949458011692549646735279014305516551952527302029546938917406910970301263791702321553348877401011512265725095627658988431611565123719300810069495656030519583772595939437076725780993268215173874575273619278033191263656937767923914538766837254724110505476166459339715933539872129739780893663754467719011540589232049170936475427635449047763586639657419772020043770829040278968997468708324383137295983395400610754947401550910745218404104210457780298460706543012090181695654589656995327135124850056639803956267887359161702463968763397141496595884135182685388615257301897407941258451192156314253448330002937946180516079600235905666774346795703424808791772737544688953621794143036644936477888328544715116927337280674679678513909730406160170954185713688764919472314588601716687728695522355613625714788900994322339655428886061398175743045318260119031062593771671129773376281838830290805100797455151731808044636965385591560816349976432251269587015548005981440150606446959678666618733222104310581417571928845411797062642045764252141741664400843135983338585787611973570520042683150702282629739067372038544689650833328575350689499209940058487073833241944373795426111579595443097009908096079474838219256882830846549393440838421995980255804287504476678636175063322519157489726256413343878564779686867007944249233034377499509864127884644705452862895769587291720381612282414358119674591605011478250811964240922845624270484247246677603993554555670801264942535233571673599091464884168322719431021850228753101158855934765122515341336548686104374499423116166396563856663726182954033849479555086540192391839136792966634411606567379724539107304668585520435966355377360256616941745100832853762739732100550147597545341196263068363972135428493867224343831686397286427280393801217164450118094036492567255967902200416340859098897555001938991955906153484150512706190108889436867660875978071095433584381351714901431833952108000181818766336889753854491099263837284620459130116386557780145835467915057250565119620320368535600891779358373212636301478090865004650426982291009357344920422607350635684826813893838796910348571635960497316485049172291039559621737752683347645587930850162605085269245235882655244797651788040960076822203071753334323904785173511864291545206122073080025803762228595752419351206338518422774918456289087070957541330177956525151135876822593652126569837926949514128385450515985632026326898160183702973459133094431330874956235656158868222877483511068293144242742323320774595160301292949165282413138127058402046934388538501599486748647672919126487327732962022802730659021416165902639766740124884458242302882624713686158934206312733611172966326309483280759175406488948680194502206231874232320053374111796849107302573564173763101963501859715811248090846689567644449321578841896403343690110863547259649951594766251095758652005184893060103772785231496130537651228096835209872766619353792280383478234493013446024882754013495077830034432497142536074885774663986224180826743388555975873804543918225493047368722553889514156443716742691080073070042053152802769090754255119950298794886802909107912873037734206815950769477754512306352942121339962104304695272982491680534302992562322251174400567566366691021567281081392320593525915946264139432482895246562936121533596644582781822526154069343259775913462740295968190492558863975380110160175605561296118451027892891726880322183763511946493805426114697750041927495769483518251618756617154525136626616920298980014648999723837974376318831339262398553515544687065794429975975931943596035558244982585759996240052063643135418420988526538467580182887615233463134783067759330062479738450532351481180032336846758601708461685108224837798395086424432700994093124682927811158785224451793191389177146550578202410043427934985637184208153231586444426954611929598348354305475919753895559832432309873947244548548915028975092985272377434237666568508494397918083024854674390283052899113155489262502012087640503158494918803687152582329525969830618318309108301081538314932483278355811312619074901705148414115697105518911577405375211087059047892585617086292461388390584339855669668488609946546745436077411120807326131366935676573827930045887646779329035228748190848579489174911707627519034163013146067014804071517526325894558843410113830261771513772763894822372247228036763136359174242003447852305398905856135186678127494578384631073290940418314384940512018846347539994400001696314432041586744188528514329106784991502409876277417038331204003685998917883635313811649019242601636716038681235029889666691801961497520881166142956290124185093396779503065377123576354447178504942517896451746090844117160323292264517018354250069125616332903741555642824962490288752967490821612826767897252947099302397783185973075500563855705749631108362863966524826460003629629377923882175132368459451754088702053374978162639471431787440969462579364329557568352600617918355612029505796098513565539487377576922262826166838047458359198099557952868378974417508299347415100013586038367229665302806681373298384554129695691146968779805846188562782885154425802873465969227095998143090901228055557504604908851225579816950806840244663948214254535873180090822469015648125230669717958023884437610499472842520924417274920017302039076740495666521159161542891451900883994598304509916461874706723594970045456852548736007391489482970172059088730818764723976051959977633027129195412418279805174931233800618297689514814899061320828825697617406014311534192476669119302510107754209573866535516259521760455035766680643988779896038262488223864256328691282264920434098715995751753359140763237650434539330785117409112940503809780523896442753010116008478188616101578423535269932465066349734056888428979943507763296160964484604588187053034059812220126405018722859109552799447925526850851089231807040203479481688395996287089680227889258846193061082124324118968166295157455332662899441161843995699118819876823156540913761298933052208321396325067422659732288807176846683302115194573104195633478644403841507966837328692675624471909906558901000105874716272358091296752890059447808801592033014454677988231979048746036607486110707127390769563911096198738374993003515616188082613498636616679702010229361991484059386181947539149828505187961256879687483090930770250081082837188421169397374884314634173906774574871116895295960879534692724398557127251984045598387234628868810659572068210766626700739129490364057347489797740974776918463660126571218056606812739184631602513991656903369176639293306358092445173327212328995007862265392021951710287243293953262693638574374239809785757139530967723519103996585357456419830513566991617797847510724103917914881933381915475834575846913227534883898252402656160190298663444552116798309564081682006762495417054427019086470145199355697071724784100987683913512713950176489783730540844439693779442312201054134058063124757304866449099792450209808361849833062236147942186831074407686278540646785802739655269190245944246475313174732827139821878936299587909555313004380895137949913431372582289514529028491902282526267097018625490885685215784389023895887949376753650637108029894196740675055061482131300842393311109530853840138315401234222481333041813031017401917615692831418694252458819050992176449352429253346361517233571857449406162236016423671326446857560490776848249545304643165037594403199655791889523739561280847830405097733757211698802263501972877463483784950249344155938274155671077126807627158012021046195932740565748611229039010173399692195874662164387524556690570108405104853630488363407699740401105434136733052716844874368136526568085279624278071495232647696107495668555688738570106254920597080001846085429434048131522228985261867949058388631408418577515094373177498734695797786954608901371135033920565506921114690315159924602132996129356097430626872450893929732042245205534517012939358519773625070858931295322958213647613866553768823606640301893977359994262738222136961267362119993324967952804192811680043346034245806994345465661031861670647639839022062025056790284347991761335515163655950095658117769793144578830663399698923611410765174258292682579722393658064448185247237599417798919882724610892798478696087546209224414119570259027902928980120983718443340890319491402016454424156297731671087147059915694663881783362364376772640975704349176328140865096681328101311310191293626560059842760323187312034871985226929652075703361534142158731600915085882340421560906956093840466306378605266494843137255719634294164724358186533197342518107908491823998893320845108012574211909876321729757663283416629901734851034523280782260392821319094849744665437615170266680774867081341953990082700554131734412834566281132436764481672543153199245686580573835717097073566752656725913302993600555377559246852766197048797122017908668318318018426321516916623581605443497865492987135931717427869005894048885125891408084820931949488801241656394928903361887452567491716852738200881421819918770978335633276031508581551703028318269665941879780465751968977623820231414389369745518577381635598757023634943562092703737180509024579084701775669060846345695961337748603509785315855624319022280989519368603842307743144993678340162125196120763302929165921404818870391144788699689228103257189639587797522286178909556848945222691827224424433723395663046976278871080561223475525947487688867293988621704659529393626809126953810131910677041799707349448271037999199767714197302977349010712018879639160598427978937356961268940396422015196464621178943534582548539455226185157403729566905389950665621432382774852902062610570439389929934217224362044313079300098606886436084446194134466553522682988355495689277882325705595816040254854619291006601372006713187641051365300478074210426279981867712654161346424211301149770013710413604779480847094736716452185658925903354422379838828640914648124146192562754156187001546436167790960641790216102851535388010783210925138522183392921053415297358503607271603569490901196755110802665654204850929869711443323842030948013869197585995006817763181009500926055616921524774137251157617940014290939519860484315940400286091824576008951711826930507628568208823527500438798284140701685241597296630158485418407715350757040222662562642301242117144990414263411770159997276477062292066199584684212182534797085963860209736719605771053011232928134699347868405308402112986036883954309258525076405247490223410123668074235191139703704577961458716473096401113163366132639348272507411422818603941030977045930711391157002443115110674566185934977859121862121247172273921837977379769766156042210417453537334054289460357363793946569257928938216326488164357863620069843443860031077554298368528840380445879802630359695398524033033671208297465891766589602303656955364379065682744854308405422884279420764860690104116994660576229954301674789075454436611364850301148406577641642402208844285826442000421428578704058285011562444819617327485816734610518626280817650864049790292072289104163361096461266144012427114228982309252787617951459567915956597032348017189697365499675690446117038962034472812813692177614199307007284134251493531987744719060091418731976578780722252619303842964188231067863974210778990868832592781345466670116642705452307420419951103575508384261571166456168014737853758530704803166126655884307073266638924600987950444680827668724724413899829345882993074974811169492925458100167099713255160707021206443086629672295379337932391210671192872505967688316628282366161453067202508759296337336910935856899498178133974238720353913914124955612179403800334578979432451932441899374065277534873199913344225933202373584406782610270309157893576888017133821524183849625545680273305922143341063893774396739492708318113010498402387002822285202552074010773861944019279478921346521588556521044317915230554745708209773088281360689079922073884692380116710214645655987177372372596499512331216439493325621391208750703960744778767460575368797120564728561238220127828073549714371881329528995906243903105725126845849924184435111690129985885993934388746806799134816535917584252986493025532356765371929368857207686240057616635511482116923102855753548481577973586113914321022540540494232500355413278592810252662228505109575132720053549335569574258256507669862908215475425445871509402360941113682595413845499506403258967292505433533729099658704413400491414452957368518751459421096092890361467616424197578239247938437926053307363963550707377398222926489828669908613457620542539043688288253124404298242168210381490419432915962042662042667944488788339488914436855411242238868628025452932554314368285874607425354039364233274828762921312729627721566413629483698324079032731843164264833291187095706411964319212271765529457439635473768770506551663647284497208459769716403413925728106846795324468597481321619632562327178622474539484447090076161380543312432280357867232921960311792776087378747638127504286499448598741542615771153980412833130190688415715965139922939670520039807176301901667269706568291892464216473984563357236909638824960494413254599008630339763091355264386489816186191609846979561168498227662033198932072723453714883719970803374572340545650279574357531794293035582015181553360175282132068600167783085735786379340909465561296414458647497383876856731603871622664011184756565315785909284070546058662685575231062894826110027627218368244812604856854096446352207176694429617771434701707940384894541145640111879264631114106470263048932910770634454376119861071642252762492107206936374971314966406822552818676489094089971019209757543714739414272722855649541306678089350455795501109462657644959618695430182066582247757648813839887439927496802456194646716401450227529487621104925715032754203969029859355018064437624057387695539342396828511249302647085238805115585199987737698437041831360768507825782567467636309435330526170653612828440320833498820613569142167306737474353253466291025448436855314168183563943051981189011843498139997500908914898358138957170081208245895619084438809044908351408139325276081023180998168118252465943422581277834336821527014691420069284603804015701545763351228185301377858198332804514511289518785995256186132662145454224809730836843049855429544899906051186670580227108894780917710671744624798845902308163322207183824770328263749320495874220030011318375596504346614782845559706937245791089954867676697312026533897308972921653034918141433876536365082354515997493672561879616973679423000812877408245871697419685611970881258037749233790768749555702990602675738995918543636958097610070101019355733621054966284356331556458028609578350791055142298955870943992521181117876866988901408549281211568237359144837301327923980917303382096725578828320449030845928796974469137300360733947323480184464232160890991061775530730466956510424472970492638952921632612051612515233999866775705225225119989570782969736814102616520907459036596827539662371083789533105649028330843677535736981725996218336403816548095050851666271027258649493879514872914620780270406216092579947685023523960963751721059415710031171521345094160009957933140131130526502097274900979869097414844508696341349893018363834129242557478383656790160656314612697879827930501536059025626842029704977932059186902535354835822437579071416117714277740851415101928883395942795522708012799315992861640517948626118535258816066719593745498106372735941193229762452961480155957524506148586874929493079307582942712528396187887615657864672382231933176955877542776829390725584832482347384796743613780217900829490664161185168293003623496720979107996135916438495224541448409251178893641656549401493249321984544433174163581495183908942944220001767245891720602131656672583157290211321977752263596310528571385595216382752187149583540736775189296416877736183601074476357060200491154918072751838363861193904537568259893647772188710553976094347346882201552217870299951194490459572760780367719733107453323670548914991295077394191146761285216034316743443014921269501387845892111714178579364213476556565443993156993751480394400137459094230872143672940305700032963557239842415252770028499493647656806002830507885916951371668879355496565532311978582705475697416253418323909312779973832148074334650537360919239560331407223557434738796803847524110302306127043819115495595420696899709949316848602122321586783479438336891172894616120594113354428226450476032073942676538867481365132481809241000683518822746177601337304623830440345642076699043095245501631986212365774069942843991621050844757367247590343713660051250236210267145453184055652421045753092862596531038643782393586216653974978162419176908712544203155692008638354170095884883406839711249176955829385351906673435615460474413685911083365014232466382586040569275497311590708963134519744337765887812836418221606779974962469629917867167908008752424937636024967509944229355884339067285245268816607231532972029249986683109005580980770238732031736963125365947349350248543580860866129294484809988228111187578765143818455697020063114047255152444513171886181609854091915485382090480252336346265519528335304583353373613150147574425723806926987216689308261229696520050998320772004227191121059638861420096188792633051572552649970253414015555577790456634523561864168598938406660688762006580680956976402342662628340746904309618454267256376285519460862738227970749194653727459796075432540730429460579053575160925753547378269882461429016299933570797964587828838861331250712639315622545970663692944837134399279577480806301487779548317505994667208528429174066870212740251234528116450723627346824426647944438904872210622425159007900517690038173217862463188191608853285441055887552573967280489452829788383085091394928014257303511582139537094544528457180483064705356045648946666017024368271786516412150198416147780801853051708659475903122301337626262228386288056583251861361050148903977538697420591192343051492856644415486893844385354071084142347050808337534928749963981049577400131801596773671995562378609023679892077773196013710942567759647179798238773995981467866156440510728575284862200296809144900580005813300546921570467653641568922918823348697954174712624692337530050281632230738992185428819099131844537289325714986056651791060136178926101911229942974158211448252996553022778061590820104547530480391552320095454179792051124530434010435657543894184816286668444555743988952094911814918135231918847838517640900139014830026633736871746101374848904285915025230003580518757292017004832166357347675251301398877937587254866922613048224193496327206083607421790152758223742592588338320483831971781003684811354315601506160758935069557434448420954493765863621133532530879386894349966668247519816425133772663500985773602248993574391551617477232444964048271088085073745662407745515684317170710562865274091843536727148685111480337850263955778553713404862972344105660711921278602449420173463994639700264897564272629396119282472628585354311057592453384641403421517700522134670673824230075794603868245893355006273512085122687117253440150751080340746139650061785781450421227021278807439154898124218121081311815902252537917227611055512824190861050710843991439537047290328817027386450841550857587562429430075800478973578554140827221686475336910346537730188961183841805034537169941795619664510282745876417625579401442331267542888325233186152497749624140826995563689376111081700848848837501281535572912757983080620300087593478196144464408401140233150448892835631825387195014005853448561078634712705676851062029428379732373591865914976240900168733564649291158393599745785112613867534271394882148537797224278538162995731547421222212393968486984385969739293267887054858360591058886563769996560666451061092033990874448732451103326528872889691565202438530375633689246382279763410536147104307189862084967803007854223082253686120274781386482295821111757457482170890118827702619150999053845030480125839333369679843881482711823704891831679779238232817453663094790740152160591218665815537401155475107379620945068743940053417190991206582413728282714354771177013527024934360977679927737474050279606677048196272979272448850258144737648850360710738487461543929466207742474461112069924109996382482246117350928373055964080125391895790559752343186475117758667868087036672098315221770853661044031061868265444929584901984471857908439354349424476331797948185320308973732425009121069558384040548285510888626871611310315376869033157000910319972869735429647776610196131087648925721766862664520521051560331779749841385709053835822183999297199063880426179906836232443989170088161116122048016777738246139914225690131246326857233411054467882663260283152620786614705490626461463173524647231936373054724697156216603587181818757314782558425329668950143113289000445781555870013540403488044959338763812824904932354862054555005193349612075774371343039457094797470548367620328322782811651904914956121231685258052389264903938348555188319858042070607605246847376067874668732717330295440895720892307324795498058278644316825239782387125220002168378966118200115690225337603162080007247347731541343313345286465738057909853772245153456620326809126126500055044350287526417627972024881759044278622369481687784276748161748897493362354221926606414423022751464585641917017435448784826120781637193055626764630510635751667225335099708483723162121464763306071716676511048260729105987118581199421342273034945373804645905983352828420402487454918838554249484207114862672834950195341553829951573102195902536041508919606743433787627923318980996834788783841693622160331452680236030243069580778322775483003302706882485442129548960273055160357806032117438938989343455873054010764871688572966638140461225611342292916479851469122071607276364321587975079955747282382808654162260274338177771700716490898143919260258692252111475412159485339373461123044771776905773449156764335169851033085283455968563848768713088438909871820629700230788862202336461696140228972613900417058977536782247354527829256351363435705508082714418593287805738114017842680435524377340075545775196088787076126253700978209079010711585329430025488334284320590331864416719260625468413780266267111827489991258666886805867179552900511491809809680862910021104457917151358690661931074564227538490453492617292196414721370273259635142227270920844624257258126546532491600544015073760138039638853184793218995081894404539710752269994872080727767938086788640399538214776563419791096221040273544015545774365335708413609433218468658303463347022778000993992122298526840094386897258553933754318194101970577724612663327652475171722864000355800732093477326661257492041061256068251468022181473638936822948103702034186296539643551616531010333431156021307267301823027093841469693912669992460773675891988031359964351974859538545635826796111810493739329253717880780573004905425996952812745207148538590383866987533031522842707336026086593321349566808662728175268874406709398872529707374702470816396095612407608971303362178638314376024250786616825715103558437271708534715506488936672661684967338434797980448951684192449284947258346770337888333241218351232763358128862252288087799432174488213447322079264088347349025038497014084307833254816423469286507867712768173495746145235872243935184555439920027002703171120229698634732604480887234204949978548936293277167568027067515504825615355661148631311489335096664125416840193250460524434571845200768752536967756418127553780861933451415465027891093480138618835052347616068695278873973405264247923666055404154857574589887188817572694460806102338567293281628013275295082394341222560005747506621105602290674591276207890763428998076854946380392859050551052684299271351426050210757045617291087630820247081925169587356273461797111143988913591580689893389266022602454195950860361372821855102677414283488482386748938536368707416038116015165941567934021178382123658000632900612621889515900751748801401964960451605122466756400805092969871360993707189011214251730472103310541347473658957504176896734017464840212295923046934243555446490275624399073269426861973057596082543404881570925937633820116331438265831992273085320218304169552485847513372750124159440965196130727899541037759661669457384729011740354694575045108798867826767418662431170409450985341295278597557039274660786084593189300007642159355155426203460524710034508470554054165474541739507820547889879592558218470328058809149606601070062576243615009434144221169611062661995126050357443626357800314104991949163167779713250583375102743054814005282964182302935264917528817192659876247876555701652594626656703674103659095764438001498358028895157061957048659542755030428823381850656894290559605400872893859073447718738460504421700499750899219403373125554036168380092813740917395085642692880617749929170711162759329548660196233456930977879632846637539065386876992267281598311507762333968403033362246383585173028788505994195066112828766917041121753287464608482033710534785382813200901177731711429995568183532924205462067031366903629304301247802915697281859895621285202693059011181091021655809875609694648024973222753576377075458608322923387299936845339475181503130974159933851521062280596260288316488510518957377385960210300708850435165437687418609329372211322655023391757955071788119416791029496918980623824189775338309600575156619221252836305073498414909969738048392158666866847894495243478824351863025133853846589557226242702185763974461396944663606226267145499919078452594025190981423460971075854588422976293577255072741817635441900068277387241481388882649758704607921268881401018218141366944139193542911207428412387574250947347174521551706651757845649561124496658702778546840912002676688375164746290074288257871399518381582969350680670571378307976300225343796963948724228013082011423522388914654502569065233770594101244086261248989294746272556702793517166987506561409482973623019901165844218205792369066465219894156983422517587778905517405238816461796050935993140918177681508169583621292963366916756347744163587741930127579660845983357723981040015551502892248081430362524686743764040589698213920197044199691620170177076231600041978332608613156860583213682618060233321387908251713496394718523724994492815976541886589829735023382128814342397002737130930426189493888382197740979548941824271357306502456740896612617851380400945881720395244890766989268349487412780811855435270997277443839749765025705986485307176184432408436711613655825426544034101657589126335824364761393464590662223494608181343511173388161855982748168985907475673157250134737348719588630031495190101698994370780211213536053521241423839319548527785038736984555581012629289810208667380804654252850416381965407416196722298287542716799100292458799511565447496704290852447689049109835030947765539471453864024451936372463881229106704928736424717065536900640210810790176182286856611665685017347847908446688836071817963271520001702231890648274262589782851922011594142556429690591891321693502992437264448960721319876854762078248479284174502922838373417968920395108833811385979170005916392041975364642306899608783461315669947494467189552990409814874798418262418247641477140615189646132777554076054145086949503837449098019349432795859687828735233963133640601513757670575351231174572493962425708881622347169620124582889920685805922544099084479095157396263708842052157805875142927487484646739857821465319381447351087899657195912223022110193805751625474564684829676865160732383499656051019021281557771970259147926578814429363741943780389198504158626218337588043095642043823359816528715913588143393837937483029150712707368628269658354593169342964937458292344318134039195896193168192855406574847219355277803546966632118941367931454966961681640304364574336550103000167933290581432513514931898147436304047814016684002588926907783738344119302197446289759091239081446671664379934264367594478369945056705918387940950877437553420906876750687587607116627360034685331348951125295504837942217991181365490639658579479013613866405989712306409396692260980713154625482160800570589673397718774277763200914566599016400469197463678669941193335970231259898960238138809794220104145904527409117309090444822669247422921981331698270570163567384737497860150286808268686364641858679476129078119966452171779094855401850874813371531914899027346256937301690676339390160683599565523134921110526357925079247958441314616964873739623012946149630689065405526733835544169762799818943941415816580801546924329351585493442502491015153889627243279472705442226077299197995727782422085743906135064398050014905120598004602584792427602933566585588262050424079186711388416036290436402077417937213896352722210275425533349623608899445534649816678274460308231161172044298557624224929199378514527366651263628448757364919451355024899977660874855391130766766184572099581446329514635196119957651925587735263599879135983572209175400681941047468158820934104445934598690793027396508222717749120096500410467086690728815381574662791501368796395074209333500342061315652209013649719944966111557918644435330134810824049101846356578986979802244327104834139687601736441092030965581714965688569803031332083922165496838940024784944682764030858096121930185642689032271921412580399342068952598842862962479384034549724615858239015678423803809796251205366698270990255852135124436761997992037132327006510055272291658679622480314770664618277562429204150253879062366347717040124374999534147009857966687334516163351960991928480830556934447337171685501075280237487900856535760907983247405101279399133804802879326329546433334424049903272744184487470995380046229596681907306539414773610272146793285378821878176604481184915289641028098757591919830332399508235026238062555764678945285285524331622563837447655980795039620646571804770027212175235405797519493187259782205381765301732149087569157279923047893046665656194250032291267584449181226486172793613869866245338679318463280082938776218579923878479229727828230717277413797487675351347225793050626932904575398188307230766425995169199540687116552692032047309526520078986677588860871736038481684742359748451352081486445645710471237205110168308163974111054401242971942106833916141727964284201752942483023899142351994469503296801928134669559943449323923667705159446717127461404663639048101276259708919933166970785428610666931596566952796951120829961317254562768007911464276329918300640670136212631393549262068842134111561024949987856250410563952077016039944321547719096642103286417471203126759786454894155911476614810738574877663535085835384739802909847402822831937553220616828736560639326455601013676008024055133311877440327603470654994794318606104997988097387483462428271549487778737506223800224016200558350847978022209669189426952254452046093103611293530642001779374968683452888597984065394848033992338457164149841932023480381620308962970968585182118222927145661810369195957977697069198172366764111981092199150335958143648583627603837218247082083322260087953735528957262450398231070892714723230795672871937733063905934031263586847421265284594964188390053865749811815681643239235359281625364093215117358445902222400496356591703515680034869165522081836352438028446412439042852295253941424095929625863543955197549401553607604795481552884532117883501255069716007854458789730272138220067248697564919052699639652190014427390072114985125682009293201812686526776741443925335044549452026176126528425970890817011701529177866299683315448562857135933461074370438312622690979325697705391280679850935602571210955647098636314715990508272809871488092528645348479933438237134133088120546663524752969490698999660175331584377183957066889656237252965685278944716452903196633735274632781090266487925910994057153881598011622611382594359591337975092251192927549769105074335434294478912661021803103623354223311382343766838486428155315325970543962441450928415633555674275470744691902808840910941181622187155924695946185257220772143610663350771062499262796873041178977543452256534727259084824873683505893719528549891919998245284986180481405418113504634358209933511781309016153530902765602392685438302714763560521106518782104015806984031865774067526623513134205321547488794583228959455974911031525216652941962811353038758089847706242444427605656323603112609007304305489694247422723697833284735506591932613061428988688886974808819690577268022255035038341288105098513647988732998196758615340628937139853122403521854694026109754811523827353383658228302284502706322230105073698236102691082434370844979884489630187944813211281968462147691173791312791040050154788310571380054647877731078579157138174359060379364477945073791993778779070866146455470625571159025171273315302084385863182181936693330689752841689186763325407996878584275379292448025194392737542209612324278843022254774528565232949108990516941643234395764289226378239285266857036624800804634508547531579965657424238093309573817478689992409262899488033252842471223451724570478656761950317553460575992172151634592269013256021341496481213501914478871905785414241549734244993613347320575221605832735486757995072980937952404400561332812730534469047571681203569490860330355266797827168484807375355335765714879208756405443909127450915584295448865397813786792996723846272378284986885491769066222547413627298715308825900122193640137738660776808668609606963021936342471087954476310443839202679020387563415011839905116018267225145149973301032002651217661570743756053066061532069889404612961972389848320484532286646194019943627599643319086098192775191462716611789210004621581421035109975238151607269095300616419553957624435089531772647692014290164784442126670475926922791536173964523942318516685391584681662458847101351612826548151748110351668398398479483749737921498674926191105915708882117932391361085366982488763694978851603922796129469241444681671951276084257109895482308858148297117984767512583196079892269379070307144410200377308023170784790668338561053987226057924280971465705476451758277641595127196144905472357208311534917722224722458149745211030596669914524697530573925747096604060297261657292787916082871510925637264063485047363034549498074030223569394793799678361563169098390771893964406871980350656571990536610325277403182196139024247225545862340657704579628685504633000782967798018657845595509529395877503326480239759357255912794185092414393035122229624505466624209947158724116661440323271517437187839337815627604699645999353752583507238508202476185249955650705068736427707131677579866285574905040440650845562000335397111326128363273369430181762628072494661528680048459131550106834043657257670208608501867725001120584869126603292082069638433935591954777581444050806783347939778590997908072308836218423989490485076259729925931259770630560118335130573946175394580014345462108902467944056360744110096818842224834090089402127950804952018905079811264538794469713518816556184779360327969996087339632151499776595612709376305376652414168227963278675591849232641064910323534321437865520490799570880003343908809934781380171839638559360746259798401405921528519334574541716529459181131942390308022880468001149436464518775118282088643230754890366505454562873787567832795409825622448491248561709693108784761711798601865310304079597116931639193464781152767242423458772713339704451563629164344312324471315072940991153543396806725516110902326679453268089410902661609882255051076517967929308731169870889709590091236345969511575780829861968214891959402165698854497433514918289619533009962743356074580041347127862460253304012907749542707458283737176775388496485691348769644961906091810368690907091088420642228645612880197150339461684134082056015576595864431728860143836283338464899921076026435594131092129335547769069891187151642262639222802334344498706818259683729669130374535993883747635417004452180806761009876473111802915371590405264071038552296478790971459960313369243926077292688935100469525757624620396592151355189771855095100763011419073002466368989750897728581614843050038110403111668249284323592459060486389198665755559211624149610229500104797461829001972818029344798552843563778873011438608380827489051195367217897279679549224712294485075576622451171939113837447908214235121506476161791004073771297831749372633461707402771426496324136985064348668062026743005362150292408555773777005878422033564357308196413601115212933103497352518809114471102297350581372125094987405381158532082070076440792601360867576400089076666274306344297461760660604408591989941882576084894242828688241798686464782472769698844968637103469150148102031530118783593912057959780890769266913001021157026759835934638333973794683880092597954802013037407499405019439303850445335682864171848051109826781704316849232049802209970821608656639055362755431653229672831494802772005965220334321974680689188034631521902611299227318075342866910963948619834797841644961726100016786331313110938933720266268106229847530474223874537598795217839345770860186449423953639952161097109203205346858840677005851300886250681295106689923905767216017240933934777970099258297127538858278162221248249376076284912230852726448262774123266746508806922125368418576669382025544383124452947243279684086036725412452490382529108590629594859219855195365229728536966005019689737612111759642343479019908018358610346518376418993411874523732472226822119393963709159059277072357243623462508235906911875817899306668231879294716852110251862524082558568685803499197737868589202317179931319539242890506554213315389012199789623445006443825601508803162798621056033990059294748984165846642484723840098801684702920663760438599218594013621785704512244575110126953666802515932135717152846464317049229125304914172431453391766308558372343696487915926951658987025431536263218632453802274689448479959429553615699692297942527820803241703563559469989665380562464946506661949276429130186634641811369946244408586714584077006983073017429106376080923793344951750473845585105696639810573820674566276250257669769817337412263651930257618732135948482455218337305226801219991522479708704009608798450553691426356939318291875769916425170677966298279468659283303640896605650298905756636079575468141093257749325100549415185562609327580148630580461350014933070348773221275377589271518167579921963808709928916309080697111577137213138566844795443898065150018847441048749055538181843134685700455845639361853827509265427839539119470791997976130323163032793604597788746149247646236584331094125369071018790431102851203039212411671229884078847563491020830838100136298731932773861088581141046868365245242802857139009429642257948456983181669908983245491313040478591683245083094694444695648553163775710549786448063676162790712753722411862468094679922763290888882822991230767248201661321016836496650039368053941947799817201966804426629612289988086749173180481522698325490793424758319366962015385966018451875566602227274178398015671456974596753203067413189456252711459800587802072151932879283545172346096389815552334503277013570096693220750120375623088826924161603565885481716096758206177234150110463224934323238074120743162135618453801607349494147901466453289974961327739551840774133608370426120136664904207363036434363793762517553679271056648968031861269120426862022263799071009419592470116389890411497983047490599954781584420321281646748869811424711528548054399459705197347528446977890243939488845669824853161732790270048247669103949799785081082372348074004465354987676400800245478060775604755922753603791857069122469678087184390933403393442550377409529584510078382284134148272964761472814157927271733627859459601932138648200716699116741546386549781609107745320946189784322069082530893365177506206876618452817751041422167268062530581595231006975491299719667710579774408467274445718162897361065572147260075707872426137117879829754568626113917807292675843430915036970484284506639103135368225807139194865745265127425347028384075080581005154902736735319213639375104676892237053730169363263233488821971174362308501392594607881347685360445218311442896281657716969598141795127884549244312854023660300104024296082468763183287210208434901469361872869306948773058635470014652252617298166607360134662962984364229963280508909992392297135456188302952132306950989344271853485585486519776405695396350764159925099236865040849141371383770096766865779220548390119258657765632560681779608496944605228476592340620395039404577675640762757659408084676331999043755379590629999604553038106854568291066366447501241547551878182089044230900582163146787510690967076748900959080973564441616039987932950627109531168589804354976280224761820685693263834965884975852269517275063328929156471859810869235749272346186507361402658166345903066557227627990606531251076025705477446791400129995774491349734139714517762507342518320049463199775405943262424298652732294158023165325644985697743349133139600712425548494854631508068045468561107799102764375855805483711157755667373512181481325992238607460346861341841904605979049718652565548208488772303026868059991953459581897922886584764243252162639701740785939496723894237133561899952129700431698435858549024400487217710984294439554422336419795359499226230704937117154379584348922874692812027791878023110127162163590388734645905913699177725405622671271481763309791750014087909006465393188301795822852473066441377564156042012862857151437750424455587776434721219420656216961433724030283363927871607722443333254596281529614776020618389956355281981238685053111228209736197660006484187672403259293749635864882847479683469844673075115303770095420750397409795910529638717494592542153532367133808674827657158347625710382111738635650117027943921132988487922569933436322927851731911569053782310689793794097371193154011845243367597618132210430629521553330918401508926856104554684680911938753180667462196086445416083817205767949370536830586176067456882849777969978364489218099997679080479292064201316459862774695426787106769840547498227062864818526938270764472633955623949599167808805943410598600789360904862006745615990795773226043582531499085767374556736527170429993950693474479234684548851155057039011476897475986720641512333242672909620867801842022954765144031373233729187696670282924825110950275468395601011516756133589981463860170264935279622944942993193639550059464280867277018697976735413411663220131163513561256772826264096761072387585734164583389113577883395672467285738187357901916870367518955371717064047143680051894627479970797000591553494276064646529141004143646896530208904472047547629683419585005037925556451448834387541049213402211680739433966525801816361944580664915198752881387711375585541109535669264106131127960607770401136886692966857550279021185078012322895459099233528997855289093471471968983788900891525452869936690583920485231273060736735475655349930843393123101221056213863743345343271596582986307226626231838820841877894367163337330303437969694799105343587750875244606106590063038224703641080320133567071755069972280786138407021816268951982326236090125182826806023435803136525091615586861664428122811058561655290681931010272571804057582085939147620417646280341090207345265568120479320071992254673531972497646328090175445674568800380079622334709218845022207907103251586429104654962241357959150001049333485176366371379380130457861136745783976401617815402039420743938594280045945268986332145009679020601277752178782739597594297250887126355075709041139182406959367961499950518487736473046383969541558185702731252546423492970087100788007889974591193628129098275106477670645235411519053929642819225225153071700645287588289630391094000383634027479804896906904401464426494329375193246833063778870101078656091203233676658188515325386066833159258540886925286489680827655580837245570091548638908322753542314257419363152277803451355207794116929177329545048628229508826721713109118488309173337972608850536107740095267793460376001550084172021961634933322282805943981298289520822391039732974371047022803020435637503568622158081209960298405191206916528882090011959784701043804098828672837853790417202057248603357076403966542176141975116042990853269629763514992038845373962151810966692281343912013051302713549377398179724309255840398401176856067220979389181366671042957640128178525843467466319724202567765320745116030059059046044018738098737754401468932346160390379295843581631230129330281244433102039794586446502199895814483905240159802246194499358519408877709037498266164864254591983422653136245644030572445503507743181963299282005955967240723724685516147257633159961464561105610645021886626988287124748373668748401956710207230056811735264311447690596642690076430588448484033352127494360276202917886966835454751958039911589830297392936729628614458214687110593987618718134471654660669120808833514462239668074298136530981512623233855349531566841073596655084972015792409338186439542874707657756981696054730559429094727043874887274996671247800412871199513703333216553528236922982084893781605034637092735730614269455928198526409682589766361411640808269682286663905210254111372865761007867083953959865715276848909785643680226660014541457990271305989289647437169173349834841491359746104919440062787633587374590581339158233177182163117615814137850057290118716117759344556343965246412740410477718024779020000783706263872236755681378573845525057609935417667566309971830798053343778836162596373089170998248688896017034999909845587962452973826524748976398645782903826101740152805456868274733740747687802960763401298720362041943606129807961989964529616245482657519110499486235159547401784125394608065935458867093117470216294255511221692709586231303814146118583734072746924468104219803417763683729156116217856444401564977507625742298844525159700766408126755624539121695181935570957824305541778440500471360378180309602262909636813450755673767099876640742085727479754035671867879897577191164178399622150796211550347577523711570186551433718892107196943089373880432159101031563961469457310521445106640932781175172767927250590625006721591826147626698134824094032287813057119650276350655397816194122435235151128278395430341491491886512947502882596532751677433932552452568724344142319173053559761140422656148906761912397421368415684807149657294468788929053467451397957461688841108151362998458231503985344191856921663348940014080569062030163590128160808993095391260768508071874018775567215287566246334901656400713248783510292136223227753781259033013452104733991111510539655525838042355016639648054706747030198799758730931863534502039625274240092728410349491712932366752906668294732079495758572058003834413128382853661465246902300778359867608514053064875306205561482097916518400532389143461221341776743812271729173483890426546918441823947361363401839716679151374158974656506627298344392563962445431447953949316411051952512788727969381170310454307259416141700496147535156647484402798306466216545597802626257013828775801444960119603974163213889575379918602532183581039011144295946353739024167976316801256204331361262925085384598327799544028718427276534934897553185465214112011052931434651570468462019013063388726497672450892649604482959600449357482802834155618621241997020379516534721053214000074188650732027765294952865540983313454808366410731318634307799757138809531515412546735837952783450807546864633128166311491830573653218452683396528293273143183150325284281602986818722678992450083011481615064162946783967737064199754373383351880731729766025032280389541409637145122946011808021577207330282155939012763846935804383139982504630034756580542363933394383491669473088245498790834745183564766215516854990784395614159913160945647418281857964591053486528398592345615257201213510113899634843875286725643067471921181853114111232710888766469839825521702882375597508884310348613308457564069282521255460162656604303128329925723392676347847704812365964958610515183295389737280802637625430397089202151332521256892348264084497233449897492582944714217868991638829707340945326384594058121799662172449152679912001420930836663998302906298096514887502057207397532668721029121771186571884196194724966769442171431995411331020802908659171630212206738464393452368173706889676604405017478713754846020278242408198927400750410950510588000377456826308113056269319514159844487368999151216667087583100450786066269414210085992969603553107845857745150544725459238343003503176808364996552527529475407748836500358018071457576965486401953345634098213387758774707803975603580994620078844475350566397426021330868777201027238776123654195184322500519480419885117017572387001004611121524561273196454835887349513062227099197897252711361431114239247324179472486486121954861324960171712827988699265420393055732266070912579094893678445415476954328089805962941141749583837661666703062735859346578247969041673900879475878846822162155130084284008797036873922970917854331632612794690328620068617216516538144314125319993248125466915665151758625010146670646407704163971508173765795173166735618384782002440299170622891891598025473675111622433128637301441314439827203954629240532602166351911652161787865099027317522418859239061365178719852207910155535925697127052534049283591534182613932331716990194165102786793022296399761172058498405861138878224439783778913544670478647406086571113477655381684522689401020238756253873676883749223501118363628794941661094747597988898688866301142862009211027627690260310700856173922054704933629176687939096766050988287699215437193956359456859119572648904987935504073783476443878188378197165234335742854755419308936084324946970227681696336967091184018148324807616962056626123909951347083916301493108332124290198478383117645391396318348027970536360332514220101294841632843564556082056124598014898976845963976462782954454295817605165825082473724401113864282111821199558479276655457905394839333254384526022466774289828492159808590782446063423112675842953344995512557314096408350920209628191072204653139963155766053865918814668855297007955505950306073626306259805713968769041781684133209769776247444712084897497555520372936032288856613115826159224453045426584035846118921587469796106148375500537417479194247823899544199839136726103637778558556564494738853337330469760694504061127169945276347992427628853208673584267080666392923750284501069564543202409007371690108880431179846672876780957459373130151810939237221423753067189334562131958413106838405112743732995442421339442307710728334518309418018860792032581433715247017237163341837844976003947377563260863100548340115590196854915761438423834392712352591026663891490074917733283606217094620633222215759580745671210925851920501335351479842441773814896791227286134461601972394332741696799493344295182557535918977026892222485372879857471407223907859179932120414849527127423187274926487578031329502216952462590912031341078641900484684296300773940704996648811855019653104510493939306501279519547642925820351137874899162384355405703899703415350513083095584735301076014119669886960239719081476676684105948865018370126935836986005389400592043161433721426509199585105846272181533495032975258741505983797286264411595336146125083852441375360238417678717708608364363617522523528359824954644971695342147470798629107112300025748784559826220531236783687223578116530492818825572214266935536661779498850350614222285450689659983730095079287381654593304118711959239605795420153960299894791371758419213981501397441652775529659327456774559398620256922179144979735752955924548880954897374426733140786693642090308104061392462037795788867007461472216479863006756978924827995583427453937295096682314099996644582793247918909913137623951310673517420044361588786973573266465766856678096860305376296440736135062219906011692477476452564937624153273232416949856850929304436783528379304045003620353240644242320283480124996077445301225891778585320611742138859334067747659480461625249630868144315767330834275014090748468289255376223473097639512009767040649996637955545845954584718143751013552268599217807780262900810318056664475506133200160893557461765250702609357571806123213353681898376791439710363834837443462616125126823848965702138547827492796362816353833642560697994698011016291834360974721048037367594101843104346585093548666096180284270434493111925655364598562303091400545334829073085911729630679563588308427934859562203061185888622279851367692938974976910350896166571165519010323644617426541901092191061945616164577014586244621361984205423131566232741573633490977672147063874053586452337653025613974862280251431818724483725684319675263933923631213698565901615926299721502749792333344650116834185642384849221691265473416019747696814766606844586566452582960139378258925677132923111212926696547021830253763467128014347735665241830456016427271003311218283981903939365846457602964973137884540863626658179387908024987597334811630348765710257847732149381480888395552863422881238234811555452457103692221077439602937441336797603500679417710796696561327133837700259498051163208671434105647066634000037526240670842730591638130696849672666394646746241620298212167003032408765214558156734826872489362217986258363339391578983185323207363524818368875727113268844972685212197938223697877700053881605136194077790291543181537262635017197341027856777528710891731206456106006618554595600566643334600294040156131923540354795472047065357854978467320084882706144675062210769407776561345789101048585002008716951555660448403842577561202937442079234541833199632918187152435100681045452151520109485857050592176734793264775391559125427602899260019505858660356291299696899054584368870126076925527208867901685408941065176967453918301908184535608999177146994473008552543330037132472706580627774687902045222412189319935995049620879371307249382903591580794313094618333295575080529909507224626612537855122334948152011633828877920909543618871497827903580781573006033861126483859761631093308877522662924611293780915176263129974547553637200318968718727818326544634887012854683515381071585868562999515283937069789193449991712880244195424108181150206013326441914026442735782858657763999254920942179782075426695883266922903668907045382873678348666356404994470817846335959114806585218126820871253665732003261833810635849951683420655900751065635219863521952543271858227938862932978329337774515680654668187593126811710933179365925976876248659819409444777622455126703311413219083616380500973399262293155300440919390523290075751294080551606434817763130726759248832130168764499392084913446186708277615158891673837595432970573478405878181755354681048329725725954469288954040239037528069978449115718038115592910717998235510709590627426049957571136318273057994987050390596986921581939441503202126148656529623010365711858076283813463555847625276088441328033367896001835002045748617142072054457581809392921777235647572227118111198508174301489846918187497115809643999717232469420184242710491858540312144132224783510786411359480882936314748027074704072718005556789997820235210800684750278900593611619115102572754602055463023731155720200531900958097857033322967563790831810424953451299466031107872318428198410344004687067040742632153126688909196146902293362476384612967991107560084041900864623457809658717947037039083027615735579299418561805614129986675246487996866125579659341997452141915824417746516541128726969825053490990683314167129821822373730734531069474743444464691581558306881839922607539857802779766528057381334502360169764896341782124058936189697883133889395240451704563345857726373337950263643587354838950511227850619727348290804344396301530231503022494407532749943126661205045862786343777332513706920238683936474177633141183904831029476255610103741824575782274405145991327514477535720349876055567451173886562357966680065974706520657863307963514119373527639523453021009096020917583747232639098452332713927212802380135841116072791732021850716811385571040181140350872774276384040703992425719269612438495222811551226476890861002323791876144585063287004420467039568345305566714914078386823814007569897578976910935278854051031275847519025303413540781338863811442531060329421359906250205257341326748632820269891980786452655676310218777663847254287901594315460867934394620708210854678412077963582864903457688939981980044868534423287796543601227522254079922356118620620735332484345132497103426273649953385474162263851433860208472924681690238158997478251067886863641679219690326565140272763225124847353878342228183783132866281902417900677671265682850046013355159103981525147079965043301975476784644831205467910230682360162028751429505118841651503156315073977768477955330112632350177904469944799888806721401350562468771639901826098813614411594623893137047825680432290744030347400425242886845306671948376394298184892839065757047797795149744138534835295017761192598431737613132799250666620008888552997965117123326168540804949245753641783901183728651757954341889384103438614124491141148158880723649131126313233538815549117488042939694293928022916013965064703926452882570740294287134297661011913536408305304351002388518379861056048526268219643087804852846364461593134823884650006896137314141617972193453440949473107679296094219099607393957544683235701944462230129278419447838754895553666736877255799500103696394903353456427644446896461742908070382415568084747502926710820607860837245699828881067626710391819905634493657910471342004284715290911004928291903303288420881689580917891782149443528803045631863175265318524523471848991049752516415809703674063987808828496392905971295617440984631592741092165151489271916651719711570975414061965103705246480038866327548347226418199202531769385365923070094926067185385119996450775722718290086572003669266148593306187684025425207532862867821704779031250691309709824178169993287433854161984429192920767075306665467605120379009603501363612376073570070997210189455192771924337776488311647592664073968972188921979370869297562871871223036657180231085439019434934939633490763563758377844829165712263787130401195373740801527972564747839180086796123130151463287764032149451356969926515403972582204847936711999776882062873548747380342615495240804898578715755723337460779876656928778168624422866250770086935835966553703462124050717343618306688890231526394352888776089930370467611814414413937724488975982504099897349498572197298374486003495328409208568127923409299220686626199459395584138736669605263815096649171692226294390767414812638473417851442095635776899357601410956416929398337631021795270582457931655277930989488225128913348605985133743474195796414559982715911467488232415946839792219370851728325243705251007296284392430028277357588153231420640254437854773257321311148255533789660707218701820039301761633337390005489932259809796161796781665385318265374045429715394657414812327769678424365115420062294122626023144165328889973413362273618187677037333462135100365718960840011833149005309768347052134380886475348160783758327139190449058575440070648139545801527337229544239199545561769059879350670212606131580843871234122429457369123495489392942119686210088641718548443842978535610637832281736861216367299734043657030711502968989717064232368434351601939463770029891208358201086078074213656280692743894462273324607106978588421711610832398296657640934799729888461806667906623204364652879810131106368889907099359482756902498054992173482644372682941989911667480562003791768908588717906761054096018883650463242804773298077091621042143046281455392964316375633554186363860690285112452160799846135018341074889705585457339310840142327212988368796914889736660283898492552595350043480719648113822165919818133131071240752283622107884881851973363731347217777597422419460828806256079089211969810810455683926953743885385064344235350419335178934193101806675212100589025644869444647331003502340502891664925990876143288366358066341938001431124111346253428934139781532837282604579207763734428875827679231907034876661562290514377020355005056485693357543563027779813370257305979511375967613069892428025979431451542682049507407695423502613576275873798508003864264493713700320504048602353372979786285005082587969789631576580352781083103863352185679749229536621975953173393449121702476820347025925217246762696873481191318750820746423118485569452060211938950757479771062557355456772065844312243720991427319899637308919656741863175686284172357864731996070488570880721727454711711895206512225356908965782568991855333979755466774954026883215419486897782805113559725883312521136615485184078250376643776191543426994813121701185023408783624709317331386154122149173339319698799147255008328977892254981973451468458113403541744213105357485087623770228057173563233604155792377493216896849207953968111031029584439769435923160056661245044671785775168517143047396405964627731238687486082353139265518706202530254370545708225814944423271934619055871519286788061500268497917260708209025746287359298618535029550611880923267032431097238447884174802177029517767305907100930542500255323443171368495227715644448288801057435737823925923241603197430867861291153356242734919911661593119517771944757912823910097099237742289812536063751121401783705426810602230337037895794198846868990052994638895771027457157376180007873532626806601951503501737657896226684605172479521676202674348231912513585123081074204884292460545942533270050936822665652044664083229974250418994802417071528106108872859949990785427822900491013827833495913045715029767998184119711078369453749247315394586036155455788966379541053675707381173997630810065299736704049290561817810350351817168317640724291313379995293225299753455108669199897213889770295538151551794671905340873739516375262951318562999852126451042507456548014586920826968261950930965378936299759018787253125420216912025952977493311992140778013773123533049242577370146235681907106147925297779829678077501227283636237101713247296189844043218099371353569720827996689571943162480933685095300217725405607312308091756617044522733603941564139613982570631328679165141894347191057824845905082032586384895968483173257340829291910459318610666092208416005464678184947977664759954299806231679984660678997489426889093139186184833257802198282969484799539823619650698631884791448511531646214568554949356597819189526798413879972029248698703382479228072164951399945677917746556178319870951761796017421194934347652607823881332492321913015523113713874628743089780509647132892640231078733898198055911940840910282716984917662016782831362050505444619517097971307044144628536879423484908531478547004686927716573369781070535943832512378811971043542823478845424750985561126678193429311371342297094266775803573574733029224045712190599050261417881767857627757304921643831532098102855122142138433273374373525839673776671025957784995439587169485670353050557802319844366536184310119550235906470310747152162269042582739987132180685454663710574545034403593470240718952075673066086979387730630659577426459338420485780497357356272555866605134531813791632528740184418286752603854624441651287033565969177456235840202659566050204778697843235432481715595272584526109082004258746725969660049149903028415494483744973838202373142374145435835073712961661336373707056582313722278843616324476672138871324660335956154760499952046527996765763708710918541930585513772885005469682990186539297420176554265823252502715558618299253948338176267387600119493813037408228535320792981176178086013358305122377829978643987123658227323148906807396293262197147320631666863801926635301532263591722402683957180157086777631623358939086106517161916808616213472569617626354898757022459751910051365470930501932880128722219260944036673864557025292902043987631142977590496052677874763848405700196424733655265255399574952615510441199327008031470497014547305908287843112556909346706336628421782384461059027579279613448264939467053639383200150355075127043115954904418355789343512307061934520091956513688134276374714671371416856372434972249680805872693966892928558207316218886469178656857610834641168677819522253391640569074585595757283809188451882363577356469229718940048834274137506644131284780871157027963886411975444338905110604692399017212708555446187565901510375026670903529896678549675564385877124423433242771808406315369495840047184120494305705867074612238569440022046557888343688705553372023399947395142226313428394256832440971405784281560032701331238314311050770337954029172543708989096404983348599322394202503015751420329140364741244121444004502074075686918620610415210559552343263894927163502309193935799584404864633143585018637821003491053211772046378726946792713273187932676128055014082188042954501091144154776437132859009062109078941165177183932565909228560076816589285463228515452345173552879146358199068691707173743158527380063955488706204040514014421446804544146452093701015664702590556799575508002822223206243591946425331808146889684836718020602119871612801002864512339611452734046623359542264705812084851349773869496974219168453790674040977213129180922095998292491713258564810796336870991117115296404210574558923083319957225506739526497346844906197055522771696380056082610938549186040743213684830138972327723082792627550583153603454166622569260928779728591720959677559507810201050846137650114698286687621282286429412057013041271834997495843226192819952769411838855625939953629788066685226713926076602395150178415999946946896080326820245655068883604571855449881858519128868539380894526974941154085407230230958273182309010373635247839740648347457466737031145669385693084252365888377384085563904930658839368988948440423082953722224609155246456232945400344061788433815851446703460906764974358319851937733735789817025748885803170209576185346894019559685041457331771150647465716029656574742448035668572262363718739782237319877097420775665725513328023519140190735871682305890567207654499429263976530021050149550453515133433086123178824758128069140881192747373380477051714766999693698971371293728771842509796620727543215218805566285208028775975796589111303049772658780722094518485095866945270862961264720220452536616837890054399908031166854285813490122268115051692776996728734042132616098420016518031230644534615988308143433395380750524411132476174656364117075783882144745251314438131199953739135161628558338394958689094705307107760146680244098169057868617536083585217239609366951164445132050244017121439818245441922803279061274797928347817981177082502471958565064879350362002173728950328519816369861497368142595054683047787359757134051519282697790478076437931898314225973558857215869709586293345914177440212109231544671540382033728375935648783984847418536742270505901490186144065627896567231224989116826404900683717429734160744695880411424603859372717681730569803701739538032170901813091473004267532956759981266791939384492015898526676215872374857034306478571960881140521070710689394477955138125681659446175143627760786340950086373663712171163573096922635931902112725056851257951260093802473339907650622285641210236203051969770200360789302278183647543856670074026046741852914256668005724328262857920577173504417504355825975272835833034233378654584140494872619773392437879839728119026666881529352625870837378693155368653354836623175230501091580890010786225884147904477223844324806853126841092569540745952971842182109397980142835550856168204065332261611590757030005985922372354919243707222388767269695962062356152450943983085588529937240556775631104567892858318186828144149429592250916010147329463696544933578229575724995506170710232085829533464953664402034520390525880315448092481206045181128225980378911053943589181162123543537314782311520305557713940943547376959589837528759924144859133732065091095302095269202066043007322577335735350064241735705936935069201986823351797430906827362098297198959355153641953814266323394029662196562121189638261765587989308238974219934503419382893726837415555721246934025518585667172310406601505182456725698116915154005247239924691770574050545211397140960312349218391814283065225743677999205452205285008551103453381216704787530074366459207578811871625582914582950104653012645285128383284460811474441527385745124571749491291575745782842514461536729154391574812493624896818752265050105314616062421252174719582759023433325731409291603182706953258109747856516865203578324722636292465661858428710314291377743268680364599470884763544451435685577395114942332933200995807182146069588092586081203331572851731179958910969808332918560858826271866119845765535399776579177166055483617440620106178634963059380684861329598658421356454354313563989461200627662099265946126842817460805670493235083770478245813330338207810374213911838466924700100531343716071581182904718918291363693335230088372030419510649979757939490134901436375937005262233642662758730786960390631825237105166731652863520130844485224319693074811479386070407106669226904621273234585141202748323806835006922482884560509344142327788884352846569898514996286851720198239824275127980929597347792381305400992712858150683396933031425810684837169402928405847932520460912081545935125571918636951289103632596122781528110471899924884933427449547682130827745475032128989054052292920656707145157721823553778842966866890919067808636198457228677837571325682047338689913170169141305844490175031079158532143389234691509696205679487188098805528659061559631806932744595976541423722267362412821655586488498189907413945560757408071015413020297112895001912280409034632432266811259404433388785135949658248558198324093989156825787647097250335850903842754481449840208625710663803324149481213408954227783592287678549725497769229529061353360403337955971561892465713007857389320581089501227125181815177156696456184790547063531243846277434006048194637526198203783540149299251821274419057963920058925534666603832719625892786658001670867830352291354926712871223006103078370741522609994218420947830306329896885927062175287383373993982557764623088942755750932487175587413487851967771566886346433261327943497045427587647335338490779221514413338194699485612384279832277626545975131961369580214829361434772021840052053569793153532563811063001324354483623325211773901406859254397587033358028576143996964656281490729485022081679345971582441649896906490699252980633111445301200587881579680528162173955894998482292455989648518404645559002539830595070321517264101641689504507461183422006328389145733218002003023445498831800009852719780192520794170560844185118040908657961191970603201122831377988624564449833750823959296099917522378428592855860140213953380629747406060572832264435332222814467934138490139910479542777389624037086875424170271787792184849797100578060297363109527119988856408980062440910310457053479315986821198539120796510447819197348860295481952444496088735291222051710872161595285157092391311467371742923905188686618907840861276555198825171058702553312275547154979142874644750272371051639980821011183389128651772709441196783942507788338256123029954848763783215276949730494643717640768481424375890233294666239378326562184652347958156711452684006310988268719814395619877925040345518171707320904082524901493389381659378571059155393160893679627940648839508430597143943735547288541403444948552489914296426984440652780721129944325984545360863501290975649174012973874516159278574022970262136072391486074208871898633312472154673584348136319003883540602967311179388212128112496397366439361827919400780844910810161514838425900935072816124072989050808750197044130066421405716409005897900058170834282427906917165260591986028261021374770366100010977874388760815293319305228501509433485796227309612332955552345524771641034240183825935365794800800191651574471043765496456141166804016057187916556991325370815216262598751532951718712756682434705646316612062966905289130467449351348330917284237477892731030950992374062498003458031904718963778696369358644061741195630456279284293042426988057164160305416403962865808148830165431813870177362177723306487328624425108859876333885158998393489307219524937786343778460530354908378864512603434138439131920782809407289761855382101287482668139599897507567947894759593885204839926836112512894030420747480670052513237926172824509033302218387396159116039458914653092271837521538084614844915397555530749908048555818302211613663534426775579339671966850238202456207456400693110051495588125119613001209996867908944911991851448021145641428816996544028446341143132548673204916825148470452402441831089340286991460975078318420167849505861985530880790948746012445835785297378866533845954289452144506263847074230172958205835823009975753702822979246857854184383571426135568421085555956815829744186639648393177711049407936237118087764185513124268022742253333020040422600317699276305333437088481422293513735126067011572720689213445268686601441142214439169998222519698416216770817347053340567864053890154040058603459249637636938747301110181068430255721716767101174743711243002506174058697896121954285885272943075235337620576262791912959716819637020437502952757643581282900191912061199340725731750792086125680423362252897021674685222101348211807258925791996132872694518075110748481415275873515385106438041278744174548792456634507743264078730103676122609216082810935250469563683995412599296144051229019039761849920483793818909382719221684986571924853385994141348767227285806013609084544750446963232325391445531411019900695035698541709769994208392466889954471020132042834876237754900072406256544014821303123444185899902063944195127205043600920613692138397255693394229277534064984232587834485018451138551082488143197816220647291810984833720176772520252668503173341117453125915445097179960883551815284034740835155277562802439088485586777776475126885350166948502561533594149265519931439126638172917716843028675398293843630283712078520229954056112582100314679533123972485763861663343869230927615207114207750628484521684859716094594175289250244257560125855031832174320087274632075164012596411868528118698630777736491899674980225394882473098592984997239306055524543773082616369897669511364015634341737536265885794020370224683264584477072043162496764832450492864665542864966560402119204926831521015611398636431325864171811697593305147085183087715898079313767985453927499205867301478999694862600663836257999395866244165035935036136056181318985265931625689945892385430231180329160853131567744936404688625273820132759113763611605023007981674885880362548582250855327168342152315348906347630770242320703035305151293792612035092038026809845397362535070867114973607075269735228876712411334420924036962063689454011830477808657840562922406569290431439594051299242619621993538824878085558165556698713065256193659328236267073073320061115465375825682760880640863041217420561666576975335898484029610625795201152944399363302279015269322781642951852891122851992586208624398365459347210448524532085096033359891116859824401781427956301171623678586643970443664189464168567298939115086155458807601104366873520540129458677962829710864651829367297899123801939941963841013491699945996057149606165160708732313593301507028471665210307723172633874149212979465538822913181644439431452237742237140187575045834815116381767773814845708780330120839208219757727512608740488027536490503977638179582508851291213281548801006192283339913997051683309101240754270958458601064837748539185100239953530625748812234587736243939803727224822045074809568572700244590643213644334275412355795113352651560926919628353409890967686433059634408139010237223178598115122797266299006790802848950673175130590182902775332592023195052653740371920273361332308750748186747692647691487568242904335576967264109386558606386741345432009581356686423440092846663066103920743285955891705553495191218400026042313976640963830974482950102385618958951576375013345450149577200415620266916629899393879601164893316920735562573851104594467454336619362457466678165806753269250111275418529953698220651005056329140588723732767156605222740345632516510156731175213981513357894375463392168421919603846062512898967693585433691544643928809446724406527566265228101692309457721448682277791546121615916113033329645759541836152738076591341178209024938535307908793617903559010584342810910203431102057849699876193228257596493214187568677817068537223816404343988183067241230918432813713778308518651453637634417341585092215646023143319999223247789840967385153296579514364843021207580479582594334937224641249716417311035647446882759697194305138166456997971399914849398547253687664204460168939784702436062800644125309815409801435128668503146945672293362783426532161587530072109711963731943239895054335513913616674037455899099116278017081475999094662954579076459233347550933384176946719171286645599142141565230701248106309715867319656852407735871821871708282385718313582824850912291390840881286166578447726530791324110333133971775199542321427687630864121479045704117396551838921849687630980994210576202815011328151841284205579586558089077952390331217822067533793096107925679801106268918882154466333513797431668951346206300481001139316002179725234265604415042635433748482596442754753129287725770164573439334066334495356786960111117340734377832279242365965229619995001075323753969769610602843272937979897050268526666443354348774009566489772554823485540378823561412830137729424467152215663170262020434016866255587004493382697922295971811567737798214591072667921729863088322708947846333420729185056967744382980981208013752010274824848921372994685133813632892257071308946343582877726115504995658751597830585737272775903466332447973597068400609434976790247971713345544474812565285004716251258282802491053252013866935330853687948566123388363423397542280143345362303060096246683435974894566903074497255395454024994736935451289177104845286823811675613440719186087117984253751287775533323874633307487792918689843514767414900545883076219574286781223005766669243549447169880405498500821013906773052876765654374421915139699100954001356290088668317495043010245783658456229528799316859853897689260379816166540916254824382132925528449769477105683044510146150328670001205153322534545798498360161252275361607474581609787593058438437838316594035814584273418512635075186888720299224382969508688034995784404937463937823524534710943331065515671682556755677698358662415536545842291222453586301165036045903882661208772500304764212441959171278235251285823685876591792109821432227858768833667418661234659161464061319599112934218607290096621672846204401388795901612726701356495240667298409023234065798759282019239522409049512660638080057836769908249283492867937081521868028441644485943544058719373952770479778429226684537996528933998318325980317458712832766914345629851221702385099307652749591186793525334592776725539716032653594573613466129038947526208018689279678412076473532505271913910281954830908104618973114508399519092556932371866504183047898376340695058547431812276816822077270712586343154635100844547381616575513223588337979115145631737167687211974973832601503073284720319720245287906761859737484026963008267664570589011324512775615687471820679693229890783917506361052490865082665891801148863591558425817153312597600488985604868205649127664414761694200235400604958280757889051377719233418958791271505308062184343136972645441798986597240840581620526084089705960966805212080648736391796924703917052969199824708534825389366266752630931967877862882340238434743218632539962823433919642148586689644622958537810116823241470071529273708382584716593713303194065807062379164090560696206466337014786891021624504377290985202605140280975209874936879696126669090172862479885174604770581291980589106578027360305089318637006882431890743136802643754186120420820652447629253515785490625527105965367308867645251291415268346195133762909245139524712955860315580368426367543009963739142081580062205027210545665897546844854069501802301461049528150911326720386369092059652590773764675463717687970791548110223074285262871655319956838695885745977214628525431394198255767843213951654789087445809777764434087108762909429529123528572735202553255153698485977773130210089853917214014671629603566426481720931958826662113545379435897890792286717137737517219546145184171469880739606094142474324445527649532847002674070939306712749951443184582437767193364906237878482562906276570294361823562738174962458629007749155573538377206864650540349064931115048458790273195442987219949854573606681772473202126658872699352393971962545946127840328029497345918922446140080103397545393642222427693521203287776676588612062069642605500779176134877414668341160283687806575934265631023424678161202362671743705175749937144510771404809499032298179078741903739880693190686658836288948522399238000816920201340448112586391605169317458414624688826934945140619135278523383299899855958735109872473315450708412649596595653019301722471526013291575958762979797110431100131319779358929033487419749836352118604436527989910559597504094561055522579311605605021350500790352784849516130813467840613152545984434409861283005306016816772543248944851640322550347879931006131735852293120275861690895524764162091156040490212150045770986286947675012165373823345302806629407922039821423544420275207024282176255626307616349924642855612235834842209046788902485917853100576492711887642296709342737020003406301722859210721500860994598894282062158016479925846192380913838831770536707590961126280795287362204756174279144535809251536159783425503385303240283925217778463984150555521163784806566436062172131535723849372228018503073117286833952117612580103406857227031630296320039605682466655993693173891664119459868901820389552993154840791696350225800711014957771150749132248152294814318504195587544343470140452969068834955931128886386120292189786944355484094368730699636638678153763783450992963608135471991116040661814906054246338154585044399369129241475732932932881488407556809392156083655851505583173459668351152772792632338069493784629973252039775140792836083880057999060114203113815719390410318355195204950275956842321048504039431698640976642164876639709937718882956070008167656448851319368669859600039481237204419010178279420288336612780392365362115015479234627675344136041639347340414782077223697862681018370768932263542483276915630710626051874631022500647637799961305582151199408270947195193705419736769872448442363484228426259281044611133907742563076058659244425670875063066497292651387530432226912803700754861748988749606560309901850227568194544475983683594223532819348091675373286574075240501903589951279333029766175791700111394036087004986403254720960708455127765964942117229323141638279060097718947300274570873176502080176374104666607490544952183992655495102875119845535948815410554189503470343205482276452339373183915050524858124098439829947170126582845945828059327192617016391344277417650896796903293869257599563552510107288745005252127753727792156026243661892965899274622386258976903122380986601700068777525623762229495365458335040091351973158801482321704350866436741851783332668122554084981224450966051153476226933385112063541075292588954405893154948607041611358109032631787769443039326514039623315137540641446178379537309400944186473940652085260543402321231337925715427903116486057734587735464905990723606799256802527546137799325803719568022262623032293649162274348610341040197950011919634186655481032251587050390743797039458227726210497972876856254506935065687933361618212378722208597271615546508954015377807076185114314323853541403596693266481635845033643658626951536825897035277006921346976334237527194256204090517155762521798075607825761040450535240481431875728694937222783550790094694608235935450091158039324399819022155373695529905230967500941238079339534912053365719926964971416284858835045232716725132715366135753590550629489121076558158898333289942750944816496754835155305960931051094218710189339003536430918609161700604220631355807547115459108758862630085240143695506185673496575486151883592898417804617979766878678916911305726108213059027427017346019430283828355715372383011104507942580275096862015863137242992546873144899327035895018944899178011039948898351089602370186009012394775642987662727721589634807730854536834944236000765016079162733843798152287303273687097273473113119976882949225966736007431895660125740151546958147671205469110274266729363609259254007773018895244633628940404996739650861434903988050157735725493933442838721894908180295610895521870366758011761877176326435768020561234659144551464849899178916986173435233586907416323091299490491199849190908490718656958913549452685807827407948623240676741320448134014660107031181344550374240961186791469074818922897151161699470075505194126367646898535828972173409916483089592140152438524281137950489526692632753883168949656232279686203597528938554195145230635962225467656124958041785779230360938276212912924435032897481099371526490987483559874767922471479977011770582765642074156045838236530805839354795046849871613045912456449468876222836491681905215746312249755070706094596511206901815377009423505264038083797745799931518136465148320990369639398114762798585596156969264860669832689259854842328858407913633233837484457607360814979854779612262310788705620766390654483843953716107430135297407509224374973718520888514910690484030063680547456997013708476604775352667212072874852864027846057386815067636174177056844655721507504580099006776943126483240186909177168256625167211710611155272485691523801126200567895397204953759783335880069988432889117493060312936233348036628717455348315436796759046055426815587491076147774433276697982572561020925684591464558508157818053651737620473303581481404457051336804925959143564070781601280849720582625178641278139496976628500516147244908437480832502218082481104275943686040490274520812706256279984778470133650231941024762144289148056581528550077437535329787108978103821112887577822050437492741078064686248930132468741424750156534451407833826618697877255549634276654675658074665621107070690852985583616105849273511847514264100347427218289054079546144646335745120647861280397437050302453577347840524576110582145039811830514528925205112169775661918998838792258008046027686525542446232155311985747864807971469156228049776743292057581646457807359977223609375352415891045602835115972180514743784459162662900438657745813574802567007957465841007840780512284313181874516178488942697467652050707058864758841716512436752711893157175678965728638680532496636371860642722852585409828560954132129533193459248225141582608798847944215376030774027366099296139082088757216640690793241742945953505901536820041762283004855206785441819521618390816473231354111791121304581393160440541105813896501644284158901787648675071804384642793412801587712280925649753426241049691102748824901623624293949899507234041600061303670163043766695165215533428607407664219380383794816781930348946580830521798279738906704736295174944087706551882743574536489384264037786460352333542555387295898188796671799231975029841480742936073497167435280933709953142856288542582558950421898379746133831076480675851062848066280060971221776302733352034473641391644693178894407556563719046601812985175658483460394686558725771039925550535574696811303745454004256851152533889798976182232994534415027375750107782563168415444725887042188558137183405923439191455696533329788731186824789854177130832787514946580809643078467563252970812173068931514599247017930093583181039660717327096833347583212870194904083253564791641203390710634528547257638284965147980089536400804250434606801657395875749440495443625486299798457252040165155347888687490288221197676686337448970984465222714810161309172033195325676868767240904725996281102611399434506713869318169116408010442015387210744014584999884000852645419623701475174779741439898719798876327569457015146399959439220492772259757144494968012863224942957441822373340717687605695171051680569361652866154359306630179553249847987163288143341774251363831947459353374336814725127235414421604940215523609616110634919248747332914158012304764968119948064369608954035614779325254656133033007575881443175348814099843831186087669315596426393590886168429114887000276403693517159791666017869951876966743193419398198943447482103824452556911547066140319250987114881005498587490229621886561265879320670913862918647144757938189050887436872998259987570946680379162078129214631301796059120751536253177716312801959968730947186645666294072419471222027513284052773472425420804899687274348562118479257682398101689582811435410575691769480082206397236540880424198149428418039473068574338366519816921589765215734547313222661364472599942349200136591323762799572977484171932245029577880033558497533324169162450056376010693712696259284055517584702331477915939672488808532755789102028161608344584184140975882399147585474860903428774265635188271844345050464671577698647666359137739922128246705496269146631769800821436641260235983861148070001934264092823123099027063128065072444748323800090073744170805947710286349844484870417347261633448904793887236596051977693647962970454441739957938333783228441600537959813338212220583133848785256242602083573586717654965724214574577364085082858820524203037691740151740755156556116554524407428783940265287378483656568145814974254045641489842001935471326172927414773147413200651592940814631852757751368308189067230860619037918101159680340341395202889249889980467393255460959582458404658457517932429918107105795420262136111371155315554453812569436497085573796713378006190482945417142416446972237079622581365231481209351381449251614575931713130087149230396129815027939199329169222874438328240955280111865118756918585361681301586793996939493636068973753898377541605742013318281142873558387850041456346743133495222198579471152404208671100518561472889940607761270833824401181054145512066455448767350702235255271383386628764739384154790321903890763232642511562472477677899521198281003876849000993316820376812964472899581759005271631581706916452373927316689636306595016383069271589039133914584068354900066398216456102657325858251898104201729267912724852078500516874386836629121519838150903640037033023447309258644192792609602336258422929705501951597285691502174366148999442010959772259106599155173524462502265333510434226538620267981561122823958197421196728715124296263425588295046255036906095883215435501212992215372741293989426772971946829172829432039902105985539733760779573687653282670631400562286824640666861037929042283005148245861886482064149425071164942737133723105247504909990841116375229307165229104404111129741689692366553307729354933835648384507789957123290425015723932846104267855068694604772955070407882362738243878333960367399530832112655037204843191610894369031280648981886005725086888288206046350145262332837752246511751209608774091067861418054158488296748197670329219512692185479068624463494845339455227230101003299311874286759872313663604243841215702711952244364590780854090464861784491681438065847090085206656978468658416981177942160405068790329845282560701412602253301949105759082860135248239945438747675435159434902665762017860347265812592123008361752770617240946320100000553436096213407401434943311823724164458451998746051886814742710470107096610969647871657384535053692804279177495060214705711147476897936636740227737501404075412511684334707942827729070787869142794003593167728277711984629537880547726375191740223090409937561751902751926900823449265231275930534510705409042945352249996193932615471535049750235447382669228647767250671937958659531218413052559080243764087780783693900933453034481390905338797626748477729449182676878172103107443009811885617453548524601208482063218483190844094069314776975145843379677656083117503129761110715203312288971718824609483091421098578482180990141211843877998928463637067348798702850670850939812420135093826291416346233342863764822857495556209387570084130943495927724584791221510440763942281317431705370349413935658718517033027222543403045670209503417563397160078835553104970849771892419601987916716376656065181314853449757412109963822529794452066490937150162232702453125667839698043768731517468659852089420350621183364519102920299611401469542168243158201206121180144392741903343556276226524527717832922113802236632624177858242020415867305127539022834439430228823915869886535628908985899367590800091404701519850624570622159113145975587740174999254704156674597137418073745278021746995263813424934931103188673399609946768973824255657680697104587104563560862396550969149614358112943325355279904799053429340017614753169170312024313751211086983379447134224281407439397903007364571719535863676731783492351459761369597712800147343365690146958024376769638158905397078874040503756404595054898633198774106704366383528805725789597008632533835583121138457234746194566576863203109259449988918537706337123367545850132413935741843294731831534483237325153717000890859648314715217442861822733061962830648970953449289743364896771409307986983015760614355986123275291343048242164553140111924298021585100624000973668265300830321293648969769381587620980657706650467471561646885271375292526868358329126372676674530938765741317744269398912219417013686103930659263486475481226281016320326479400599179277653394585520374340357221217355412151459842335357063622798286698093986330888338154472788916419387410023332224509525859308137761349349687972736446653098276280876688001974255792695623620476056442570526495567266629489375136172504286781737820212868676863527749125881044456398154984098853303861847865466037870668988466265566605002674687625618275431249680699110844693016722421894970718431869728338104744782886022754798488387522022288573975749367612304776184551230305275406589028604818512061722810854020149205625806005089242404699085939010195928955069425829404118014885025948692045096186036826105250008933490303396215340907369254049821239873435524723002238472800078697799836861592711723773164787414773262693216211674470991445564268575668741002429149939310351988939282458269714709112789053629422268143600597232484673842231553358736269217645615696912762262806118283029665412940253788615497473663016610219989097478661195373752663763853081538293055803196559445627370175979291666318647913246480454343859619756644975718018551115391691897223668658905525821816025679580417031097269552700754852958012988981919271832122434534337408297880686279542919861456544888804056606558106921502959279214876313886468181857636910380315549188195285359703861935496146744787089634373659202505142477803559373364391408853181635290246994165183917142503119750818789895329207548571388630680760420141142251077532652109144977943772550520104799138442577201170404071556825809672746167652899269409647912065298765685832793495291394107322523681316439093703810502414215659920189589423895534733549818097562021583245473461014796460414095738376220103280554004674025680053228160732678567016293534054565563257314272655387598899275932845026904650358432196759626843979971799729079841307395534668992933505388768503193566569677753561329864043747647120474049832113705238572015409729161736965341935102463566590294324027225871813712210706835751450236927317617692527252641978292122022211294948569685866404906417580312626178249241544391564127330185593604108752448913691524855780291871628795285515830336831132191253132671745649943873434308848214228924954923725715365008676882509174993998007591903503927159292094925872825580564075666391385816957415281953168712009120964843616264402758429219781358818214561259501667329260035604584244401563274252165218066474113911787660186361822380601315548928442659590063130023515985138886385647077438094007615360659309975917410627755108899582351347568487411523965403884005137280830976286431284161484689590096859423106997316943095587106676397506332238158819811901977872518753482498762887642155679528098330173745301012685146278209858450893758702576591946418343217137141563275196092512165237390848527815323624102661815280677979043506666498854487908382792711396174182471990972497995272450483414418715361636443177055058336673724081769830736128497561483083409642936861120984728175273821418060302901791368197818037700711217459612405372851667384650640516721109743144783744609807702067404833992504912755504066682355084711701348491004675408956612221631573285067547976714182722133885825346454783652942810725431193848532925022930404724980758016615793077458806857068620557003643058578381918146506170432543160768036986971010886708092415586129927693387127266416067413139050363845623991248767535389341077792835091435167150118519148406062769651142008662906280361627932337635518278502260861607638478645448448543571528846676433282532406635725767383647379567247694846616931846406760644962538735497050393527336564701998533695613322575140883546646725644974885600599564632096905876289112430644651249521010387836219591955171025783096631148521223617879221712429322198666688497151587659120013544951565806514353407296787179265224542281249313211711063783925034712207303413489501497311323272270403143422407654491735230742305984425732060055944429019510353845807808081584487894267741018039208065834291854279651122323504389998369772237307053793391333577687324081266067220891917055797853926393535776920803688425176769137233512207903774376216879437069601125777616349492323351091462459204414394602251892888158076456144545448091401613982541081233799077357954143647032523746411802399698136034094774984934616562815463038122804148361678099273857726063915125869851119325273496652981638283692330665321355970251770559184298589624576700061863908227797481197087049392005122185316779563596647074719560582276884192738608129416949064740755174959505690009869171294350250989929442140307525003939292939980177511606251708090379780349226312640153841248437671784307363241991736913399478042799340866874845248501520348887570292176770049073581955431675204654250460732519708003458018946180087454816170967904056428470045205756391260478300327256810737262309935106253342156689485206657674656491573737980786062548289605905873765478450970287557375243069910864833704909845460834163342531256515892880356654773634405226585255241205573767346550515193003546501452991744329817982809102172460359431998063674987639121608358742490531970112686494784100616199692527771104069394494033935485138366659660192338832253832841834568092350349178085360268663022687560748980764713618974606531801811638191505823365638087741128782495538534899372820755277930127820839173433944499032101215907196691231646080043322623440469225249955810741076485554267765860754067941313470585091929358323876947222166128252761377229125149891297240880300026763617390176837733021622688405794531323727164793758475870795684171561907367741850863198720987461170504764338640592799485748421657638711953296060057958936458652738732366014937079839894030527044331837335509030891013453224587805803144946975876490860708116353577096653816196516811633199680582713950859516743605988079022338077932337867959390079080361724237510960534388354903288711559711741243601391345331541558800741446626420006352378431019380394256287070717592788741653582730671321455436471171220524366383684236712450243496400374084548027905044050219403406343543246229031630672950128269842827117977895810537886765226203192634982780448755354996657399432376788881547498000644089387513692825230315871471485670092238062575206377564060695209908093127353951721760138807400122333699108843068448836385794724917296275417674378376383002915912368715755142596498513680992412186950019048534733380588448507693715329467330233156309374483962499192512938399135511105599792238392766765394712727315985293772231772151831816502579676076037204108259717336508692335503919672365135281457115951197497897637813387662929099439685166111353966077013374505027939236019184499818482124660844142236182347738853237588862450381194798076099104783589286036426170251538111538604333436984111627548278908193827967714868761856406812742023997470341891592361111275957756886013317492553593907242368253376580047518058310843154202007605644667425839569912599919621260748413158013938295210174153920070099179720027104340004374206013561255143438522721647686358093886972802615873963418934579270651107476844667866236742842702642114816372263898292116586985937129099246019914013764561695651182889500634573314815494264055771749491642221893552239993875338817230448041736785403350584643345845039523473244845179216695217348441774240744516201875270036063366905186286687001906746554305423983523912409562869023871268207271759106525491000721357955529557162494101759833232558150951192494299859092152576888328997123716872737631100770953650143069566570197607836795393022009510104959498826945084721994500466041707363649505813604388485686988329712510007130161052986127896326327597345734395947675256911808024410139544709933554588592217488609723451362658049739690586602086260912121208793952046264679862358979782451322651301596030147364185460930433506175564077671481461248878075882471537761839926420774806944766266782893441192058518012206220738233372831053175047177683842723562239541776935522037938669470907442999150182916604473924990415227925674418661189775625575142650680126373564945471719053888016653426612538405482656234383540438397503945268721542184413407776715855918071485676514675779330478137952913235345899025689424720069144249008274385394242639756968471996322338085431555841268075512694605051144649417169153045819331553083683461928231173831089108258196576046808070271913522610956833399450406978284378194923803206560173936428410200804815709463228542859921461220385716887693533267094934917387575692035170403595432177658861859863452945673665319381258421178601767464072269139225534340384418943996103195294772504378316841642488239722787946873651648637842029744847114048657307742684426858123877779945523175885993346218250666910941304064319203871176015014734675366909884739973523469670703258107706404619743267612356842291111735519301048883028676867980731113434184686019567788873323116847750888784161515005654154328587215617322687867738898843561530267990346425067487881192371863271629708522650822504417770033953118860796935578613516196382188980681515331847957462395845505583389413231009925454178339489430363871470492803077921816751119371142961978977085928343396797454382586207925443072886940417218193599695479487397249457281673969808184911053639696319717480625713293999620587948341775001544472074207768666009686299085494046262060379011344804002421094229453996886335213613325957640750765611815274895134397437956580159719283042870502408478208780305366197933776887923435756307094624875884162300255580490812888158646209658919118781450133743921099244204917409289897757628436074952737420094846893949459355407415673585418569514298906400592105133238840902926745479955794251527070417217072333367137068629420672735692141661354963268487315831390729687883326241833394260275133035771270111947032203652924954268240434557063335917939804737531395506770907659901499086901459237493839699266202916586660819421778111349364336466534150055268444222819744860657871661241090382664569647378686874305193177585386316617583591189213034728926341772976291198840418153207248698246146598283524329582507556637779370016773609912139490902386074303491879867537876588032601634476222229381358355322136459515741024494674462054846043681587619849844745478183354910117463441418940935626616730802853926860748961279679955546230341506351096368689241470460560614928755626523559543508317775710491670833007999099817312376706519636275352207844899217858541257953965114154350806877915611500962546079697111258185319564252072918700945894808172268980934441135316828361778055714596092663137553338117804986487561705771104811856470979920824759336054077596518300970486625714178011275926793303176611399598137433875061878475445924530365872861298969322194113033344111901485501690105125153364495545061761016082795049417895988607819049179408349958572970099447858818780909769632644113312832968654419143051256515292444855529535517558916785829187474469479573466150109513802680745139108421584853900251574813695865197274983591215521459344635822058192505860647860830928905476378984417407358129981524217882335758454352058518069928472089730979514280718583266666542475852270308175723151368412024908086460616809235454206079798101254651200492856780769371970286220516027779536116157843633383203190456011277414918160836154832273455407509292133358317106196457921157823575787107522485829356241216915136285650977334748978364307580196967216126775394326013617335616837303862804202818034268293519270800687050116223544566260242796770650766755373416221868665189157668372996474141847032529910558334392933854473506029732518870660464006201756706414578443203249851582602824319169161082835241072398248924827596030223079172608945207142897227907353698888544535761060659187776916668918739049287911492009094445643207969601676780036663625896675548024714621545418006770485598550455569796200516097675343949818131538335231285885704534326751779201933521222809814678841019264604622098912119083520548427616820848730895504664246478991962454645474100466443764981105068151465791767261379187985834971898350806012329089997866680719147214953900476814286357366688519121661182035853696364461058865103338930221016574499669942926910438388346204805111985910016870679612347212557623200937361443938342670100225186757395513475861762403464557096206197854679566544389128860558113255926483213044968158268391908183127987818291394661325029681707728073554817154969457460163477674284548035728589158519939522785652233035429889420012729928777220332824725703429126255842569346781729237937426068831813910093002135079651276757998995715719128038078603520061220932261503844311100880405508199242925803787653606415812302353881061438143323038684885422363596970234875039712482966545857132620741839477012126739444160757317012939002840040626994762451959351544330493681893563738488520278198300574981014719063219888367079285396222751231681575583780121436202246293649225727311988266601969790977860331749210063216609717314984612406905545501176087768490537271401782186796720626553893719079240231903907240724121360752277236799615677993130941629151848717631272460606664052448056471124225113634596217100714392849467707522060795243112845028278904988404432284165959808559901759174387345659360728125219238801714282920551915401077067480201037656330000553123202927248041623967877184825097753316530442320684373685380714486919418320070087983109820020851787085792788690728228629272842158726050626754735951273013405101622279777074411241453519162271873463185654795975446074685789748183522326760194046405997538232838754307964317371076768106516561525488469651332164579206517924110723399289818794900918466107520449495634247734451525246332216491240270922083686202100546282424169180262920134695487946011843504885928429864959925101712674994345609745161906739837052699405193260898381354383411592129340308568661829340362682325192373896466565186248590040944790395598953490943084841348801228625108396076575825593272994499628650301297232221720765147444590474456755104409536469121319709724167386728693205696587735177907743389440380305457360274610043709336509661631497851793590243246862207268599613236237932762690357212083748560745776978780883221766837579842648392557675276446570506256091469616529462938457278239723612158661828476583543874179040482369376047889060739338243946159111611957367656261572933030191251561455536931214001862754028370280581047554578665782720497202274281921687767485524835820709375180558825883849060543310903933571505110406315326181281001560661226000912971689218662183325749931295057869094425238853626118040867224795306656838509970708542521569738862950281301406361905784501961693649159649518743566781762445507836359478788187442774632166789060597662321375589999788151116064525399178958604785308359521337678787069761502417341405161794993194675401404259321933568310349678472106923562246277879156392036634513965103736714022430382682042792358902008075059235912190914719925794197611850044167773401047510014214557431126069257428596597203980977701301264061106496316091419387516466596263946060510159506324961450230846690944114580069411423829272308780149075833685756502159980918763752320597202038931254061804185850435220328481008317193837890544298749869895219711681722851862767291693235404490343741024836191048018118574702156564706726166280784998190861436473508797825472380638974080669799192041919586396554116999064493829472211284499063479946002576651427493370109610322136218189651717361579764532234538341790490787652254838199090530090629914156732311910049780941179804973308133590505242370055580629766754871975610992303121689024385398627571553378015779730446593643079874840890293119439710631385859817404226111885226671883373701891213762684917120723866374050300093655863386202063667036963814026554867673433236398241827589574223466783646915682494573304028234370752814205253552222073855396330618407865570682491449732928779343912941542629173705005257637347725027700440939835001107259150818529266157034155842984898143796708458028832546229996409298589321183564465624395438577891454126643989111701552371369350765151968894166139493075234142954512370797418458816039572113067336243922486833301864346819080175312910361310855726826000797543691061617608681585793132869912036676084042982700895707836745100531779743978609593986870771023004953794695867061805672839045078087363261785871323412501694382299360427766382788598734876533338031074811843271369452452267664512550142404981887803338154205397294421636141260302439301017546240272779170295732212912051351240002947174392413439936151996154707439827760290745900000336033112807584011670922805983754519699282098276707363900133296137440388502815267912650585552890003599107410151036240050608352089598556271325579585190718477485251232089262408314445484765302012862060876278563008598972893246286132535703591856884648247786624823696113070447082401678163350571895763014509513197078857538834800677528995761425847544915492967253336461725964327587864548337678601916752792804387745154172766844200962149679622212603975705192259574132563747298633920634210958049579067370242254305787689811017655262482256952830114481508845366260982807606855065176499019359479477155191667147896254987064645704969497563568188463846460693825583956537404868997963806522979558684119799475361326813095215164363051522968093584828977941293158896651898435600336579025309050391893053279339254244421649849157403684418602166312921288363714539699733737543282166591285914293205212317154378765329267133499607714082170426409479995481344342094011561683636106803199194045315677448051707214071827770344582796472805552399567532148157634025595521505507335390473480879330261478606802826898417711024342149504205827051594560684128096617206637730620383034993561738786927480193772401409388410167174382924779286122515236388558917555061157984464647274357474964084154835413048607542682567358458456922753641962362566204202872546315553897613361850039426204366469853550513237014636740687290866334062856349119915355545206480636597867205708119328435292088351639426434790331407219859597605479289779125892893507376640982855702343936494298320370324795654564161932123808369712862757488418473116635422363980079485069444904667357273832667963373298902068057667474888740632393044783443428524208067120100800107919811729011904023949616308062507553341113588107834796461661410522754161282141411051674832402811718441982143946491324958164575896338441856463007415369579195453365099086906608722683292335376998492002016858856549423575652524131283830305175573413571139619073651024200872368271312875996226735552357177364928280949470808384910412430977849533285848641653101125866404352660444973206011221267287961260597650277858515182097979826465909202059618617499615696331139941708069315690309968088583723423653939428740866784061197450396529536006006661937246228909358994710356052965934703644679403521024522422936490228755212886662323022797697042241260523443000389919071510063369432111207257288016228978901205249316009676843494749436393563331769634519956656971239229956955946697402239561735241830584113293184905338579970877705163327397320122168171408421933423308320817948143590353769031628847461112018947312017081423439051887193881600024476995176776051704186316305972901962570395015789085131696856460734720932729007917456766749689737968487464810051268671930514634624755933319953013913107951471624344414228408310149028152698794218312949132200062203253950921292716769462961598965736580863417428789704886610189094301850247829952751708866572152585231908200075945260858293369554814874311436145058424655701544014652819337938885061874945331614764637875221791821549297596628490538116957733405033707333909352275309540433136432726124767849274728452081237590389584638732118155655478083760746693405341042262476720385733149924509429113003108173404904055960865207303129022600226193194668095243113095078046557029413356559287053955798268606298010566095281666234234797096058664491920418349716692767963955066872691197200510614939713574513577586996969957489208362488983795124372222056522326681061325604898569004564314298194902187371232596809743573918058234105421852458749759743902011988650806738734829928212305499252355091631931876041871852361667718025245004342698527104688995864110136195464586778083477583743087463955691570434324452227092227529430015879622679199522717693735693128541339929385814695179296277313604675683048297994705004464345245454088803238767174249380480999667866355133647755424639115836822396186097363336446057016017470260570023950080594582482546763378988686619944911597799708376344583641817264328017913587544306803882715811482717975494779664418498720906321057164880299221039002018017768311085143353559282547622892270611486104584815935129897337851061213004009176487220246573548434941222735829259513695597796345514707482685040810191438882566967669491886543997893251169373391287291710950448317290866204160226314839682211691378700283228757286996845517588788067250069153485210124924878783786383739633727221866166354098698863775662418222067966312996924513691140469001745943344962562006112188274149104346127560424036570960420858447364466771062937737636564423843672252017771231046328009299394514456655639550982188873457936582988571476004823287470688045816878213292288195113853645706733577415254329650831333326713052769866837922298203727687172835033585762273660556862249236514077856114347882517473390111537692832415884929710118616393422983699482250104296507886386183050122433871408321416731456789816731157906793713238338295123212727001500171373958721252758207654004078447893564569810959777168430777054472714206506848349541627626818571895006612806698083063966876890726584642330843938916055329818649914349669594506365030354295632595550307603339498970353928579788705870022548526002236587221263533546519935282200415337592357130766067065201305166153643852355827422113118080946304423074968814703459105590598784750553359512875678242572436248946943945444765873344420860906399897740480810397739323494923204438706461447911628994840749711741982390094614672839138155614241300815193322486693349079609994471532354960324681234999196297489724752760961108438841005341403374751034384287304141368098445078035329976038672980417784749908772575697785983538473691371698666673645919107534802859672381476404283445661295589124497796132631437177888685757712255884283388312678918377188236031429685036052785858267603993711196776287254171813309473912813709455865728568498347824015738277219930581208148925001660755911539921801973586707455737808817795932788513003355785286782739389137047407982462122735987078692754836424623862545931417253362333028606328440867881927148653117584590869630160991332176480922484199446994396340337816007024867550736585207554677702568220311148982214233135705298691807165290202985176868168993290003458091509267669591858493030176050211220307181200512968314723625334657240463882307400402925516822044281137974761019793911081988845265951567726008194784755757444829059792135418495708858544395238585371508362458751320566370800553470599842179079877777843867284293118915588605618614071878177954181837004569966744238307070267890700479452433558026153978243716320823027942364524748805293105036435156886319684923750801255643237205760721444818678040076837714647569635292248203923948964603562317035031339676476312820527387538685664976010582659671519183695505852376684841131719524357875427985941013756814217281303179509047087694365682747919575820546050370480178017680370171922274351429541876983185595448398019984604997197843879395948684369174040293543916728515458926179266967594115183630983649464517352321963367256027548185457362693207042977890067693214343878595900539405434927882044631667852929895835842023269827017548085590163382213567892354467572054556785777193098623711522915991430845989353121368987778389357778161736473515222014472287666120566084988057387181561880909818012698891524213977714165009994277627001326651520498663238370506160351337276797319249266490765735248584556885583227660459392590389119655498160229597426339469377050321115747288344091197191072919767696721032707867252580917893138634362144025623624948557379127115020645309262329114551430483331779279102546509746309159934268888229774351685806461235454819933894790445785399017161582787993302200421572634902710554025396489713673260483441799216754044772243187739584395808508845465839974129197769929956527686465551052938365228240536584710115705666430314877185571703863702322008440809468727510340279482258933116963671093382695236880988529224746222726199876021927796244345314358850133786290152266741781432232564942283704671478644793626962499394731120110894164203943097626238815920198639378067080941447018656918110594822673123412896606421515860635366553559273253651376265128222602068106375683343968330328909311672616422567114526040381783090222754938722218999069460720458079067558560233855396294645046056316416730566649689954695972223477394511762158777256228340274066539921479433107834707263701736171469535764350345104456942152795392907483142201613803539902503088004088793651263229004784334596461345212820711951745097585391785524523699462583460920159350638087467476772624735509223262863466747627706677521353377648861305028333311619570922459645134368661343059797082268029148133354068412313943966381567206233665012272129150060837304347715757840200614698075439087651523512940193182864336359504654535652681117535938714839926212384332622512786742100703732605385333203935360406741292170735024794054144353832646661177471735690215394759765221669249596454283176235181460937548171479856069228248968620433123453965156711556559725139272122002991632175933082264854754331377012505696169884518079188007245914844658099850189828029469106379310811990959946340330395717201453380609782816607845551497170616177198284227249087024803498114754013806081937932881120693951884326863549635784878168225447702218815946646656764050139699116287981162929628616998369119161276381486700632231823144790931916306483079727672038728484626702018046414413933023179212221925157039918384192773352335391672051993401237021690779257358587705901950087706708728577730400106112997965267070504364942016407404230233957292261976983631472834872956159600083130651563050702505601412111652497025047714176837478256762325951464211908679757057087049705574114472304613634145773177722089711202349382429479599980499770785664257597764493540813445531167184664810831608208269974858295842535592863016575176578027305645960610826910950942913758204821159740752065437144787836403882799454393802870893716391921212910905862506659126057810912957928706528074454388267884829308169618903787388256045839422141676020110293888045348600709389793463815208396286307512132613823446270202814471782261950981218516366447456502302330889376267138353938010944557707959365617710324864562640131139406709429256056782031673590015740233454812685594445757748985744522125715505132152898269286032163793324850896114239464345634809341880469272208781992254992976239071945335069266787398927936876901105574953461223374165528792592362861380180074144921780598694275137206615004602286135111977535904627903411188830503083051178240935854846210318247567123951174688892034498117344561291150027150497971638790589629891391599610953618712215190897506272804802519281755679071919885143205284180039995998224370579598018932272720537420348592490158757663029797093148332620412968381788332685192291485176524925761051980810987299290000634332939313683398980467270507053535766544338057633484768113514239660047731396076700762246043065565280346163851055869276162732305828114732885565198466279457630551598822878175522546592535572132473702628741062791178397898803470650740603536340993087428153957887232010249032513158469406450954006528034006550679772759192632398682569630462336653414350075802700542470477698815648877605941705567446858283907454917015470715222335008885572059072519253844557982704007624118998663555143995689410948866104820510878872337163684885388245792218676796064036094158878167131818986946405148046399030052150457880872103518510983498218084664999182523298390666095197992589814480000740944917600192507419930172812707639402056023463668549552303667092972177995437705041597864659532797754548030606263628644574617421355913272495233447314950808484473784612894289569629592559419878609317425233582059207798612047620810364063442997488365227999151253707631817519728845400690404472351097043621581686195584841175361646856638049491051726146107806074156890746230700931249330057372629796145965950110903272453954803391651367131452743814969039589908433215370203069870068370264423939445149083612754331104823046182927271883761614039518170640907887327688705059026966221499172977535516268854570063085284228937430495181814135102987000587614255452188801810076237684455030877913457772923630236466261084290396757989132854570065703943659172690199129484864855179353172337881311131134219009716254104508663125712505374634165548463657015171014362942249827414061026485718075585041071377155966305770300374973799311232289564554688007406199685873933260560656672124629602116700027823181445166854258433433381459416124411416661234529383065304343540628983018202972051711827219207868834667129607206709346113701481849477497945674090407785001728552167117712611739413990791236622738149375510138610088039521243476714833882066924419176145397256489211823669760654335416551896079697647331018224970951438420242017832495369195608600872511220861428018848119444299899561534152767315642734854776823136168590872387260345084578975024195967385481463624263503311497428525052194195246747568824753878861900345439195895236899183314558504449537840850585357284220827758392200314102685018735407297909155207112203472930655656120336405212748274362370699310644888542923170903536078025685849221064603362264359765429268200599795180065426796498027532848296258276028315411164898488895132256181274600264416540889107876028923245567612291103531501502311960186293084546666290260560125304717580657369400707402412011817139511001977167662874846786853152843649595276331356059742768194846060849881082257999871941349052117178737170872153745023900658787725280530048648801981119723839504586629796946266984404815517504697963829609400566315211756871478699930300341263405799906218466701951553151409436105402080405135600026174034608779298817144687910396126093781503093716281613874360728254774210412818938790662189621445703479646775429815578708977777423580591227875274994545061551154431797979494871221596000182974896624623274568999765490857081294879431343713212604773525021205962792334677518299324978392568007532374005710060552804004628785779604981219733478886510229461486532525692278778741570284809457408306425096254129242296828472082058348015172133798667718798029154315608910915346539471774354685250119784305306955141742742651955506979281646225342438719798127955816211810290142448473707508726317044133188205166012125728415846558775676056134967093927619981079256086678075473994226972805147593083447037055457234462065602044776279684111832279846457742707929492031644276697783180490503159609542855083206792111152813821967812363893541628951561357041958755022555691878838991562530270414258451289758141695604889336252673606210475994126347411876013722474283570025835948516209063460184780678494617131149051913059238078960103157902704990442308960615551161701559369798968197065627081825545203892123637048743778365547382849832868466931401633556085399387668975771236426990806287057284372542436867344404423778593340154636944876724154524655090702665110886083121856254042414176308539827149844918347285032582483380388680209076108124346738497983146867270540875309336920022782663804868774236704986524344708924574864145435806104203927025576017666467685270868526558056073125876123698905189100187666265121751431874380521874557141070233553735899468887035422951332298018209576795070856706396269977166979045457938251095772757932275914093951622768155346005030814670298292748128979740536249845727276066161618716818304922306772430565827109840001175658379127868522276938500538250098704011967575674546421877789328370736084073455291441040391153301442078514830069592621972560421663184519267537839659753510584398732646208687943725676588020130693969404997547848952632836195079291695587512048256463091586825655632133348641006486234764138693032867202450752382395589785583823608320849794108510347477749266582691750525885252131873497810771863107621758307648875958256350444621157882331551453357686102837345041244922756259330546706988676817588915309203610666082481177981773151877297743655031434947213104274863496979071147991763152177432543742820176610249861260821458863197297791835888928569258828247217767541641639517936050190928481068026635764155573448128961816066234661415912584893088746615998850423413168733860776363064530406950753239105264275682503235158293745162616040309864314905115912463920736036191411121132610945145427093146011444496538175815452324231875874892001618495716790531468940743553059019649434154143759774167732420186665761201587567130376605843418637939493022731362254656872525262887969275469727043195389548272670186973096164935562807425636269489123134021962229477915774231618724011937957780680687595256938602871376078078131331995671395536557380882767194777820972105781331404774167954357572296850102983038099323872977870468048778741984633224342480426335826584368907531326008528953733328415862049823180183681968449324624958194318047730539557279895691183744925428558357284280555412619098779468543776209959516839051930454666360479363488196868776690312643884830305053370456732064839286707418971472564632336182224350329128439293764333267545937563061696217023431312400836491215584005253920428749855344713544815407386033871052845035437059536173995330690003005814861336485366341611247227060111695043834310038191853779235331594463081344379394205072130225270112719054428937491285629631065178161930421522659723879996457029002663036161135624319395063782186050984248675057395481407039006726485199606749560166912620984091501176730494469892699252192467362397835931318817060596324020782387882875885901470403720095312004447761706511356217735828079022441185846506429242496935086151903837088740927159908192645813004458596789362240060651682238568167545874797172387881229690096976676591771255663198438409580936406284009009607064056182151076297480962536881910479739054791186656597368739092102162757031953711188889294163645269002951345185278909659762462173915555392924728693034579884390151224682649544740502716539868465466792750090135660559563089085284387248795229723273951118924125614412954584702268029337991900365424917443508844565028726095525771273433332662496281762418650011117008884416006203436765494248421380747790952631355677918167418286367979805234519215146820649740317465590194329178280122680724357231782367481906020079947385363184875964575451209667340193417768315629637742870077075916841705118573423344390772016755349502378443513396621427465537049881286459746205749231096411693582463157078895694867514420819343161578020866032899853650940141211991336465657252674784558867725190440665384472310515515116974985512457891717758562674779181590999807706738986533363089954509569161806873058246429721368932436194206604435080654622343080788909193705121786385269725242234438008073772543510220859402301899887846310352747601753112003466882382728514034137488320624081811983064901697484801780282101502363741815655223243133840678553247313109035360528114824084582239884179634196743115089279967127627478744949727349975137207737552585887908078370057082917604750160444688858198745811250452435552942716766677986600249246457729096637597913540554747181741930696090422975158699484509722508715431931534202947827974009467250530711470977536944246775461621328562240313907274278827374144534858791613786066212517241023052829149661308579480315626369577343427934398443069601784453824742015862473859618816109416737517789298047885763033855690613178687903596112845601059287609686369309905946452285723567712734570074545357227100996487569643136115534852616462655566246564927362743176889609013185680099575915052680752061513125584157923163641198463223035184716427613988803302937392916469204327853858332490774878402572674300075253495004126067203049391200559721884704984111357786506322099308631693756797132792623783125059230041372483573467589811333118463191319933289229076752617925967282953117239824452230164175802269151713323161645166451556310939794609059177548898762559823779252734162080713992370357566996942960011764475888820328782283400699966316589928373354758323063549705746119378419873911678785216989577436434129535879169872436680856465467776288819547019784874268489332618262501733574919355497815879380014735852483536281924869187856893717721816774140472861883559522917494497786531791355685020792823500185673836064952110119318140305423983867513707149035792526956376343484078801082043622029047112763251209657902095295881360268781528323613350086430867349368102929769002587492543091739190146825334267937916383452885160333397306589796984271185039651432501442758679981349228579781740114863524479351613171522901199477088710643576081488721645412250146880829471052485249909478604075679469800192009314770523012988475460908838762408910295292934172351554450025151829680564045235537379064905066044773846540618951090374646861227191179743460967479771607412392855948038259019158723081772798051550230046336359226312103160088103161151368839563569112142504740061288880886218129097326329426014677540022829674854951900253465639896677550898925977401250678838973170082177694675597356715342543058197343797862341909990631756195300069630490380832888666531422461043981099689929730616726474946189674538939621356354211967063699247497688903943735081828007117380064438691352074366989994219703916352829508892281163785964301972513763939316215661108007428599660050467408495595689775953551760387280347225264292750221292177346641589375932264594334451794324364552306006757074460391086848277890550152837213360869144368152545808107552080693153695084367190717278748229721229151729887822807092028124804577958060916892893588206597818349811138741031935107330796450045979809644506090387480793075873718711494047911736477896378754169864171993452213601856011575854135168449686705683113203331415803703673086458917610798124716981008988115164067750448854942840376909016401533336105342888408841718379891401352835157884050109659974376610016286995014218009550129337786117272668552394079662718728499732986242910705826231352014444164571328212923951803742525762229092105117530458800341347852655622222538373141817391287987178686524243126913848050202047501364447147743802743024239432842398411395471754077828180911224523607874436895646722777204841651360481267049116265571159011930682721927484792312612302401218303632027387159675090323780615311671995841498172241399761841556221110631179913016712774984732333077029482720056630477695087050474197143409483018610949604010474877383182486202985336614814387412993274155749387062133724966009652736339634597702877186188588791604286287955053728970581473330756510705601498704343609561006955827165199195546962859843027355859076125670656621370401778885373018057814648161168960588079628657234183463693974620043711924655095085664424546190040134590045975218783779101662499335052385400528133428604465588321424620366657478100420060668686689475459754536537708205482123634889381086070442742075225764062829606656569097224211719721345781577379623635804603853387758351356814061079210903536835035933297261804996285446054230031307983220057767695347430482935155377308387132062004702230291964179475458640080725263661044014956670966741119641915207805154637922010468190873940937442134847979585982794317780497499057434219660047268541015016376446364672147962906673213221505269125845991061144847937305139025050331011728755353260705324946615626341950225485252328674773150889447156885575540110181939313124756902609161054247173051364310555772957003793274706114243601398757377440306911962387140284088108372429307399631589543907963564771997843870355446377226663643919854388031754290568678964167413564927778583537425288038424278266604359437164644869253565664688113587964868566345102964098599682067037358452446937007365266000492700241374868195075779326694049873158102848128825785934833952578164884329968126730421206017979509228184481393512742759905940949807484227649559230261009418475928670026054567625013702640569927695424735375233683618321350969590723092315936112299388383427934118525896696296269839100705238311249654659628515667599965592352647957851478509040994305606436700247395251440106627590820968808492626098259902625664141933057622101638829210015702252587216045817527201899947006058594959067528458766591328860668535918010004494450038641398900701908360674118599129517821861378019351267614884777641812389967520305081236015587587522936891483107241289666426947833613853709837926354097120908958902020007440019150363392389820461711115073602870520524339158747083887810485983762729921389302806324804208969678036475705602310184696546695449813244959910904906317139278543823417855156107425400357105095425460111863886137646015603479479325911393514725211771762767365974552350010387177797910899391131420127110853837854196358729444150187559995042049563551147310353881567001720425125821249843156985432460311894417179978285912861386106343184615698002932113217809998382490053938683390715820749619630424829185734401342639013644944971353161459885409361911777391809959326486981649423202461332983988774489776827166945573024281260302389373978200032180572456091032569231109457018964153027974792548508988977123605445948429672339386105816229354106018591656840657388401345451860109563357681013362883834843320237721364211280935641020765076484364062661858531568564761420234544778140457261956317268968822787520392392736388866823463820004348984064966127449869460075637523263784957480885292338180117171298065407107565502688201233062400943827120746125024152841728544361897941246802386114158790119129117961423397089493439805141368521071369473888035297913029199315014322045877411529964964398612055898456963773560974954363337333542796527710083785738882540321209125802104831253885935181207759706735418278859545129777352339359724387580576833902614909833866334135682903480878049754777575342050354253224628249905263878218255464376876393601865292773111342030537662190979992277961176369484486616722244096703737618316382263256614248042024566232589933801556479736489037751046756529922081031276154970219534131997878396688150545379111603758836545876377075318467784774346626425565429052797283319208687290423999857450431186541877729622681903648879018416708633578219118566763104684194987636390328088672494439479241752432370167637477767891118679840170969909226181393401451555390560089012286021905634605036239519433904433223870095531775760899365550676940064690183234703026549901336579060076253366700939031307666184116267707378859994257891266535304575312427164801325154899721623617098701373371048225093121848809830456133598878891627063766278995200453506244180886896963962455573791408225201665281110208214653576343460833490795072748598031861281422014134292732232856400167151996227141206191936358238034065524810228571908935399292093780055313822058049777291069779039262806776755043300619129251474618847743115483974637581221723275372456382431239361381838815169871695223233642477231532601648148333451066384275306760711377896561849848092507878608046371792715049642704915064865806333794168892641640751868043196215763229198977911938102773107702742935682610992603893497483463814492998754306760297742275204496236465401974401514852468362613812240990310852082456534388049534701974318547942245865976530251263082470282104516195304070242109413762296528921236478054659543767553760493775634369725986992574380498782264866852163593649285108215744155434393311224839548023036359185431454491670508143387572891851591971781737623371654254545722017872755937720257913750009510761761216112704462058368469061385761619235769451348820650147013233337651840605942210218199363575196583744363733748981118683356073826736989697746816410195465517671181323747664104108457201388358168092733343779990579121431393303713632449993101809485256675745617561358605057407842812296970428991371420607603438042534840392800046640723591788515590577408355765657832676582444108182553864194030253210146555792260321568805413339642248120710452274722990857027866469713240837981394801791217752507319090154460311548702085302719881925552795671635477664458057894092685689263980625923989649797609787713399086598352357589416550120585693061122956175838685870563126670640314567489278673978991388350262812609699749744857276301173409959063723598234066019203669705429434671445529116951343748156385683138457743548009059911974651983262170167187007197107481936708561755853765402942148964985910053414751486498145446337638488270796619809113952639300500813240779726912997874711091308446324833430092107143275895573124419700055775675811087719005985082841052046212742381162247321725044591353987664593559414427289562069320902162450341424484131334883606915316844321575893053014539894426751902416716341269562820027419233613776337471641137154063451900262482540277569353352149167192565909033566038499298004497470712226459590554414563638289154456629580554043953418946595916875186763264116690906374853406377167847722189467628025532092825395941354806740363456652484452624194895880330394616407163869071182962300397539518976768406596625723147696322074174298927881141126534928280768746853432317614477879104646743090462378105411581018348340186464250509975812683252664719785135844199145240085594098421289873694459618430556604016711356007023677740754463479059912223528250633137184600539016819408447930320645285343875293078995354004286489158152335662204307048843835631278822894008526781116083159630242021518482759422227094532220188302032582352294002279292852714029793181854077721379606834794454697336259835191187315534393079437906759584861013629468949108666500767846432526661940765178934887078264081098747068175024902239701848565155756559440954021270870736222292692289164489383718341979602714490846514819594873180139464468725339146149901696243983049730070027234298396874608768037646853923358782038912106142605198666114330414281158973431821209865815348865706940934602842997935306082497668081572702519927452308919950930167132260431148608978143420019999069647676062554674590409904283829549393773031236638536157685936870095525791637810109011244049630611971525939212248506854834590937169622783491520071999271787230566191170040732342883428929780332873733394053183581576836038894899183670504211967526696789771675810766252765604782382667566529606710792685784444673835782595446789555027827292157280652118729440490208593111905711061881342847992236869898235053384152160802237981500121399252401959388828060450223527281241326681824953879107253395047216089521157237096767498739949141170444222620914271338861136403897194658767440659102002225693038209415292294542198106463430003558903936700236701080142612420599672271991592172139223447152106390876454734057965691009871051180706304587300834543438950048019502712134233608549639295777340380206276718274824447868524770878920864917200002729101859191218937009821741062068124047791942332183974385208788276935014245332493350581145342518862793407191240928391425079544451967729679397001391216008098662580718549750677271301568130828068647890459665475395318607214601997820639806067405431262226452910437826926089244784538834520902709515606637062779846850863142709234079930894427039163565867710358355948528998026534019094464503980740911790577601911628239325348766705045545042843859363917542248341123486228498389383600226819210819093994212663085590169575004239621192763486234841857667420024987558374648269455793321139844670953110114421127880614305074610465270510552824605288223647811741401833980608420030244946748869910227329734607393429329044891550506749427332737650595831828506058440033409855199532931769934634476721112501681194699889241180238149405089980147677256653072046495296613816549268928316039035703986232239894938978049356217423390453665439635646977781665059761660111198776952904591163174237056316756465614823423892080228316702009064620598949217245918107537149342208658469618885682852360313384537643013997173151734004454686644874256942382971544357944143774951947096491486618871181700960067875529749846306698050619086260073138225982391452008280964009229872078915541448459383511112759312972166584167924350845304073873209405091311963376564739796857703197177928912185911400402726675005838673477537822653756389677629218217097528658189736347210133747049391218855579292260514625497215214879079143298582258212089318412695658669959827070082973536799404390148224289658247403577847063749761183719374831687958691328837203768189748107489674852233192793518793130381855288004541022373346927785023137814736573628904502559508928115581672083147507886473461868516848719160633847294411721608832748881210721940370451659765768301184033010549033863802691539612479580066835440058662234423759092580589839755221372347403860800728688267782290716509345482664217748444533460241848790059889381445724020280614323538216616515535197453767116915047932269446006308057584388759228305534442073945638898272561059040762766911310087202036429467058230626761115673414062046772217933228606484426219471009729693087229307108541673730920463504649708083556033150774230300492219438625992420217818362803363409100482044109808213807071881050401903356439667099857201008401637908287545026148589118999134072278890325568060161082078965115844035593270392760962034412969255067899815077527216090402770524216359366569228397011239663642380516005314690580768915792990902102768464253999839996857550529296046699132402391861455393217809956366624065358085019802731310445205695637768886225201158925648543065199847358639683666628363172908881418386309843928504232780730294840171296979087052813009945072825370290508105205939415259161042314003122245725040753207675045804899106239762061832461374044217235042032558781330681451503985755319478894371441475168004244673580255261812107708744584958549243186948509023123102404194453751690231814497085096884241535077461948589185251498084819930675868094031158705601140076237037423386998809127126112047652918379734064022354455228204339570678655400218579183999549834455797087368272856140773583978731980554203514630980752969480769959978316268840508390306692663431996737163840777943795584253820983389345774294567987274029383007539056645845387657909590778768583366736105354037975129924977668104183155699790470253183747220064886428059444801824524599012026350163304348352572926515677938063815587630603047195502201637410238947831885877306723829914483465765113586280693636411041953541404920130059044112092668893992630547238494434445761410718170077029551601482596217807549782304859194224471081541383921890481978762620265890557990156879771140145356984685125241592070993192956274489070825414785960623941201052938832177430511457587620585519802817329232609403382265375682493701077632687775639228964976858755130416506871208589534230860675174453901879176135055961228288223733968097438641252128584087213676257883061667630850499149684867255966934174674767419476703729009353722889397894570656881721920441800572461461924865368546366856318484804769293855467443845587298469344940236004776549241430055224272072731475601650057869060621288790885067281016697099644909188409184073060757196882387291340065451443635417230316480556066448919249553875550983340799098676053094986223207487331411607634582078479260349732109672542840472488511666040653329908435798794013352181010999962460548929184426972652316207461745432719719488427546228940534133639558776022673921779934952176816035025890397769250301034281262277336113968985636289567742611130577760440127444592272439542253612762223266530802713623384358487496070692650356387174138499898455502663872912200954857470902654585262246311208263010453520743240273085741940197750002484266965063490826718237954747593879503807815176618201816755495917794400600647379423716589346862598873247182643152831453930626984924454266292185542283163786133490670767118205021447739236577542063793358997844426168129848663701380651346932292869865644735883000216827858307963767463768189783588415880520168016486867202480156766117040507422500868464465419815930524041133068508387004922762308518535218002779971305302049220715992245732167854032234057388865724296101710868347472779265394869409262102966712580216232240745634331111454240001810877984399912099325888463922621093375061674801973824773254806404641798877568350701384336653893815438994169355657915151602851492408699198431781727803818180429048893341294068631933378939503430669167491680615983543571055918572026224275554927689732542583785567482395557923829514073984827329483294852375962035805057956311068262330442856636055867800085894532904432437549562138285723111475500437126867638868611023689450827223672145444279948703640081270230066149716690084893334474238896576361032263535081976510397675100797043215081690743045425980494871696024933799478921319390116840855897121431054271980624183660191119833429850434562992353327309077523139537856748831224162334131156295169360969007346678976685224797050936324787940732551897876760936037536357728688652498377864299530943539461020977885327658724406389288024349164024787944259661431601058322877958701387459239312148840025196580577416592626956018477437753431093914512066540982939847804164378200506895357500422846556350446547868693829301965121645376452023198866335095264605722718079026808408190094547007370776941293090142950788268002943265091534386678162042304063852334484018309771682513997475067793568000007371901217790787587386579356640439432111928816811276968054235898250564256572057508287214756501895904006956625318336377995202800517973329066220659380484349718822123946970777069670866653855603454216771683384845934183481911533948759034000842394796074852548852976832638777440898757515125837413149095245514001341017890839915713665971094918243168742103884481277539336254999743489586264445137776764620072840551684088669857644357662569504655123811938858442989988832243935175725503514570282271534140680980857416009867577853205557892910042625146080405894958514277503591922611089088577118752323737034537001004401509887278009228426045755039228089408897097200776416707891416380137695005651337222227686563872465149419343687053011614718294666084697560430894097120044898926244499053134566793324066300586252398337676894531174795662650766746662847099599611951865819772567273926103408628348959320759668548737649183444225085571344905782217414749492275331990165636162759036438903473458165246496917092393557900063152569689273241951234950437065216581247745596767323838151938189580148778265174064689564079886523124343272686327157160830786144309868933710974722473288434279672329308214508196235335309915732497179524143428040971968266536270340299787240277720935658486571894089294074665266579217534998744456985584703559829100382701427874299297525301037245755895084440216009782522918833912615696042955325877519579818570037699387277174441144515058544326679744999684140907228051730415967611735354077573794053180964782510937277132092729395511207227000784771436167975483960136809814739987205072039307671688049876638780181240638728355363214479458126012978014123411770062106614907120572579888056505022209521136208993466219730355285269650611108464696123081354681182622362757523269430744295949223426436001791069140381045725760594869539717850317072496000717141293908524146419619034687509660098057357141180447600904324034552028714248569066253821270720610291753373734777016698522466257992396754476433976512493962860441006366064560751564617650200569662730794256517770385342718871672766390418192265302347483340757169891017967694010502680962992512708067012852803714409613995118870617931401060722377381193338904346638865404246986646052538475408160546386449376208621569344870031536864371888065480356630438161067941903862145475797118120511788716913937329753196460722664968040163591089941030092509408063000877834603136919710719618537691032274479320128016467387180963711791773321868832235313743773056289435450434423236694911137055309329506584399825152325978790613019738681612215010835042665492188980900674451187403362478579392523859334707923124921432465942306477849269023385801345548737092938652727310569076309670305372132412282471281444862633056940876510633391503778563123601633372722792963216864593112151546710291375902153392290227211213044498813685911369987401217797818164887722604748312159258556569538535826339759527592318220062945779210259266159264014955628084168430331884776417543597389857108106430104058891684205656494028764212615376342817358720953087271087487859999830721753164438199037480537282453193360380882910201159382966832498271095985377202989761818728835525696392958214705206549161346315461281488632199774806066983408928123151326020434580045834511962241678347260065928437365117894501861230799421640989195192898506666497190323317633651415911883821910143396544077646240191671701081580772943178235319939562862699568882781009472853629756470092284983522075375625566605503164320180103485503350567096269144904514337653212436434221363807779356337926259687857945911801505419713600614414770410536879089504061830112044704328566264355192408235963410315432885755303525879666942161470427279177229554523679501120115037943879975358298461542865141394228082517284971045107858012920644221753087769000290506150621706109386291447091660193260506607057991639135107814922093480945134926750920804887984763230489537611898103159207208525562172852788932589352239886109341628163448828105393455398030955141386335394898389649792011992589211258422574748639032020195396086476099401927798604247653854735361917947234388955220286756030262105659281467077813313628915684456919065964975349221164885270746531264650653733521341414963144567518629560281493379280174338820183112548562254569480912258878286850199028389092479960434583340918624973381816909404508330002080933847083316237668372902690791197544596165065298589557356489692168595185946071650524525022357499276484506172784176372277418310586506522156457209116233699755241797917812132114592279580082366630352245103970376853140250957378013144749301721845560611702902407501930772298806161499648004460700435662391253409409394322946823079659107254595124275089651834753256182814805740731531613511688011695794511575654459893975264385458870463914474841151181961682675849758297800361824701532855213471324435654611803740355620200608564783214175982486725576961556622422662964971207150833205992026361815786980626969862450821106212488334823207834657470028512086553977067656037983000465876510743243653636303632415917155312964446733267633360243312588375284893097064609436554049119718898441603169890190655867802084014194678432777324282137911470003360424642603224406654152421718319164902225708391110046925224040752589983094362581610749432990484376585109597908727031010768547637078540724965038764407960463249062245482824568895067511695013006066910069024803524859451246618320564140835862107343183371326668721489664047106768024566544524652239932991937420923325266345309724506001591019192974612598498553467967853399462915316254300510556758370243557704009327041121686157864213101338610481763188011727596824796205905547025406036862148023873544811315241176844929770261156320593497044918152383003866459945270392442500669627118071016101847869824498715369869423280829651761353827702634054852632141589181791547023558706476112869206865480295275669204198859266287023976097833140825153493964421663800033915881345094200997188248229757882406773986979248376985085860196866093393892131941951125008725697843690206273742192785002603677551108271362999593936414129906791118667012104872315328079798463445310247616924978034315764964462842704783262100452080963935431401117004609794193815121144447379055451762202651066762820640582800261153200168908359394335699404028599609444990485643344434916879559307407288698599241148440167641175467528450864358595102284284009680486381935083875494935025461772454886969879418231897754614054248996014846350194856557928432822688173412579659215472039573986743677215805837922898781034330471267926702395276648004574954288073932882900742636435981672980626356974109913010056211193344971042671151951508552857707789051843089447259862779555477945736890585435902871290663951658963248302522792391487711103259487323958700532180210515299154006043696077495557742492512273428445917989524274079392165924782565079779905585287353105767604936521835636178485435179340765682322076066116167522075946009375330768187627987013519471293332284785623968996379851122487769278221399133486266669810802354665977907670265244553557839141912696222259583070205604624942600568399753782705410099238061248070464720690914315040230319762964018775146724374889473240214013185683686660767936693081830357196670539809935133571280548575716077536615006591856089827094035933049515598510502410958745250378542189432188314046155001549738212069944779112134101219011598807181582166029897517661570999328259450640674041332260355220418532118653080067578081861229741281831813013107186444798976674553128086503574286593049891933089185489367121330358694726761558884527763664155558062198484978150369842779958014200620286303983907673460703615551511195031163850266586672153910314724364357447638384022730980934835948718956457467365483650051383544289008410741101244329357635734945087359011988793847323011584547160837233087815515585068326933224646664778935478540724145850677775402857025519274100664920293600575527410756858860009670810075765170031912329970205967208264667717687684278158634466666799756104319371380225891614370926971724678744372370860863433862286086694790582054059668803115408956129781022137840001721643652443297348293171924568648299132150802831606104416788246242675441429705796383247772998256766635862214266953604389270182192096365456883456959399533942537739653964660625149127445290107806856721621484525249410477168119690810056775172200756014659221561452357817704672189030985144207654334629673574352333025066271508716857676923495865102435227565853057914377686266039350429453432163235609030108646546923159941234865038761796221901882066515084954674145433995331314515754458090550220346095256519550616184524368929173565196548474694951959224420721541612866678188341518375975701841934348790265341440846120722848453832763443423221683327518014798817401239865755435029470722151641853031151401437851856101482067561116810642365791003512702088412709122536289932282395312989064926876576624990973514968525416197332377880445819611113938071247240174568752372878847958601415035671595714817634663915524691071268034017005005109599576196916015508284571078496700819867594535590556644838739146053197082789364885356871702285985837414491921103554561983009732565242699160865447546496672658356715433893756840142007226127694563134363917697300257563925187763905041828941043452780122694721311234679435073045449048786511902984279931172448509029199097454031875464514215580860485101573127313346967302043658084854105000544492910353320078536139999140964978833227694471203268622611129213825286570587172779961531174869079417864842861145749300577250955302488658006280412078160527614626571662570271904028718448666955987217459928852225568452328278605057809027959591496352454500863041004902747742740552284561064643199088782531920633499756704862267718946357662165854584801629529487575729936744573128581649479953345050206331992816836184710666921605226946485785765544352481512964140051877265541668602474513595526080232310927654791637765969180680850250034729982311855746492327443652485266400882723660216797936807445926078200889193703380349034401423715320700252461826390743211695652328800019783068702978901504234965958806823963976331630798045722085740195658242583304476212425152470578988132163525346925193868288821474147293543067050522897613089169633961406046006972826831074384990924810248225130918023597393545618407772143772038918117819938362801333700905725203468751511882583915356125727297384701833741215859182548867766682685582928042895588168383754280755823267780890568601088465197659299822760256116213928531174358605712760792093053808408381028899943580270252199569755250537535168647249493970473784023508068884830041393417200605019415341692235798220926965942267314840832005487797770540893044094153556121543609983883187257501601535310396074561522885805325129680511727194544000806730733848446571633962076995730882856832838577469953754099266301514176791606284397456975264132356380275436251735114421858046677480736688625229174257988456987183294356799063828566378234485118513873056125381711719110971344237372385235068950524777429584114700982729431278724213615138498893189413560138420523582633155685049647632037070227469543156844855396978508074954949351190659432707715771612217085142799076228737782546879326987266701448355285915577907991455746375176349512617222734936612111878013308945305624544730531965017142691436159697888999721336095194738779803776906148303469147608293730647423153151686800977503471038662520797345145430763743122032124979969807385676442681491019768635234152170885253723682889287103447464857085383675687023312488849566041246125379425648815284604386807780536889957708196102456900060736275645883470775538007994065315768890029887725058671765172968537688436258973749090962535152052744971351478804682217645626713017073717379447420032129692181878433695770631425196050880070469207417465214784777958675076948330968596985993668499313145353814719318871997279592171921235863951460139920552366864604829812888378810592179382367490148296809773360569840090922222745909248080743276633914955739013525858956054487630094775966581350192541601480750487422846340228138611790650478896875605303329892292530952819201313057914283275840269200893758223067290539155566000776623859981010216874921762190052220379029339375457959651433437339574488123744817318457700768548747386628541945745211473211319869447505515160937381372686068669866876118103787704946514670646319511359614500130680865899717643919608357822988631856561948602319377853659602763261849248684231957531431094359640552181159441857297896063064212727253493157303399122906746192222764617592689617840707514238157748482688877640524524551036162469422368793807907698114316819556400689583477252370209091179849459399047751114897057437150407057979994028751026863889877536128383391987198057886322866449609654275758863506510954564013241629375054110137088007858585833346717071225190406840764476674436678060323184542845900006797818117908317092687636818662792856587389361357815132454377083087491722410570832565812626960457134768982914343111930852307135162584286793618598255013765347563688815483325431947552402572451624134499546853467147793838166197177042609385993533242531477018933336028610171334511013164134761998028636245282685748416533908632079412416631956179641665879317216568442702952968903019109981114343727263231306586109479083763124905120962032850924271085096728930873576267352365247877671820272810336872880993831681287908569506719023302607872448705270045428014194538478198812624283799908104832084414385861521437349787759700962217587458823167588419772540052876451810724676979226962302904740426909589354448221759239250312567403897441048639857963134337764491301552456303791983679769401985901054302078268445064782073289399059667897861413871845394633230394111892564826571655706819215558718022300269000703152593853055274169737273801912803045871687406477214170856124287969834896631324223743362170641362184700946007319518509354974445308696847644029315133551968207394073607801587282930308401494242557007977725060338727514970399771955867187428060242830009821915565068079369104196058953284720517274166144144797175905409205946218123317331218439633952868547351061319585992026624295547131622464246483080030627414942506458276400334296073631407991127445146151702084719269155958773133797077205982399487030166522121351720686663353129304516425928276877114346424936917119326806276817871603613268437592396635940361429924586294864117470042827418362699234115562401419860155549138115229267297138314248797634055569328493818650812914213329740026546287185131960432672216018844277635769654272217544874431370211793518096186796180276955492009336610403364122370987464678975397475037383277251077453913218096023558715981852454205951309087223825243479025885567795871600516895204183346111747828283325672543367667895550997514635764490929127886278247436705479386087247899717843761162212031709126259465534052945596643084467069035236961096357981019747164189567951591156252843902629677118381472430351854484033535070449924137232228459965645289799571277355423785918465097726080488826209003607743849760523504115251784176325580607070645660124271030027685148598229472715239318933186529270856494483538914396671182309604611752978921460616129013305639862910779830364304135172262635436513878365349961725381462136672323095323209506562483036787473851771879329920388526470522226544187094486748015435176194861712472119726934109521582498923326276354967457341516643804072662717834399941244613799601017034348012073010597749431330588982603353262350110522170409492696314431669950052849772939823209086637003764864955747685919005159677514238649464029852593621694280892640737496898052222735444594097747465531838886411753692879912345452568979202564057240873543705037451622777115537244981795766151960223103333715708612683195945485449617339496690544040856330724487972956983143725729803448689125226691278417445869205519964887973923580709640626910151378815510709987241327584268712974072831621703755309636590604609687057768639252282163731782579226983569057050123875087805557862466459237214709770002357413732451550108628474319288291921004329108841563596233178299949022431000729664900004105176243520871851418104970568617921787444602853565169536456612938467565476914307057319902557816920074302970318781949223184315199634465897686043979951891974880646164912824626889334738922815041110540905306168302891032923835684735919755305573744545689160212355981429538514257868171520834490774636318727235234624913618949622039008747332091095196065670604894315302436181352503531716831814140276731464620988356496269141182547715117957247301872708127334045677882353562553695041376537883553047290273876885760251170685122780673806432098325522489672410879688620436208384031532294802937148985568332264323098013684423944134257143173886119808799837965243665251726228105122409037109577845420501143395351339148859468617097186483200465885586428546523794496855662127927318790901609075029034879293006062504325700422235792225216924589996170277985710533296690620421348589756927521993118893785554747165561239153834872915866707325989835828950556715985952366712457243880170504437412833510747330685580832927956043056504465807418320841757619575367233760121547111741832539726015830775477301635318127257511924192686295626140697197480977811332680423856430728170826795938800002586030308022214456011989038014777758999647370378646762305325971410866144375910288366572779919679670417394429665266310675386308224381850801798871421082696300488323262446015980146653103918235070470957868515076882270543971975746146920647078411478991530362248191570875214930757278839743246394956948457606687081901807094367076229204227837624813461932023682646328331345764451159209527655212391697778525314971501385883185471911463194729687839810065497128617750619595737560908602596284808163668413144874491966489037723755351110957871573110691704808083002447489781201321566770974925306374892845797936226578848738508269421716417172961977009116331042920007341340482165287818573616350221802343528667043680926705310168588258052257282727473073056771402818529682758808500152297075784619382483694417616339177357393364854356474972696034885652191564848798105499730571651996467915526514201259000364258081485601761326363533081664543629074285334045724251090105144411434400287230643409242132862329528974836445350021587960973347636494648303792230427927419450601487286299132966850425536396195586733311889276660865658584412328057203689307181657038427967673334106840931902306823340495849041245466810091947376865198117649126061781323511367085832854261528573383496513778336922238221475758137545915904930431975645918945855285370087906609068652364746693662844736961631778333884354636557575030526549514934590877262795878373571184302912819048904042114768997839074558777236318954705128746150593813706860499520646603250327333938923065966847686258849782320246334616486998218321264495246288122971330400377025840803680181681596678131469417588340299655267519833903446435351069243949299118923099959228579932037135606297945996889096125157093033837236140615950191945505797003238902989057219409440037475585663318320766861918633573035839015497962253116805380964443269097669873532725084876855674762403730997518664585020913065627562274056666309010325775625092828703326681970703075418476450372400355525480026868831124532766931478215285649790587601454884222856469531417412243657154162965739252409263059292778209947074763275164826295609396610347604566357902272130277272598128065639007808293398744759262764661964566539077434809928822018778749411170451918287187250075192542101124194156076338965004370735037048531623952369132169005356396578620601384752527793219923653300291681874228382428633854794087919106558012839675807163972423364931893819654088965219507127371978765324556862664008078429412021650374684263222406108481525722489506205632404326602113390712297080332337176902582528138349772015352581256516913457088222008895348318291497145571118773648590756759952706627794476339277833549458457687698483759520845927554509780608710229522403228103779469724097793621594601551253893925679222809347707557613189721280864216873527553852790938866402539373724676984011416067569433584940468673238086498584421729182565831744611579573970184300809112359134078489087241445176193079764837792767800882595028869328690065687378951205587098147361111259241223064078828143183823434809293464477692443061741750212356681130737304339923057938990498461508712604853981492035799687444637858863089383775523537366628830929846510142368430731176908756376950699435792367352905299070598093861745125965205767511511182387149113907386615481633761001495913709448469861167821451350008661864837445217893453891553601467760138690646969418200384057931928048213087219154400087657145996493230801375246830740173838454051759828019162963599904732225285924060875077132130708949825338666771012068974436087268456433022583979132017720081126390299397770525615291578544268544752412249928540249713766230791677333401570663097138359468139521739708675483551352921435900856799516635554748967344694468033680547747042363320365443161110913834884685206739884286581127061402356547709616117236767254371031928388349869219225962502133097965262800265961607884108210956973565070284450138512172788994971834280674229208121405394522396776419862522026275531453552148251932757147271718271842219526663574814022100366816726878976395900914609462694267396335976042309577062315140632580080836994241248667875098938855622670269343462405864249283303953002153141309617918422570165330112956755722739406031410001949216114548568765197547498523344604495494870202612213614833522665110646417225939861037310380803277064716802767361702588305801698958271060565482851163271518879385715294832282087782667801490936346657458754869917192799990140707396773407124169948911235307731774447640796171921207307013345232082398958096936260575782294403241984731732088774353978572840191837547994504558676797599873045177851732687672671665241703446642111857046123953778123094285859304718811190425700112798397333209695517335893832144229206057091776874072229273068239073702229158278091726042585361615365928522353347397630392088849773395978241293548664232332745602305480034685374957598095893195502605734088665904381695016344728105768454708370725658590127787004246997096184057325553544730898571073647059947587957994726689122850056021094861607166232586450290722494898076010588285169995789261221554558532299066783980430332108581110765650835485832645596907465992387066655420915793988859269999595612412331212967919505986837879958586954433171444905116972695504493703578594677623886925495788082773102343429412798412746433574411139611079908567839043112152586713643029110103461418893595711842370492002815269529554681948356755168673679570899523929725272818435917588295838657782340527801541140465000246165588229296008682082288752674716264935360717152752176030168554283238368348060864076038173872665899375705335297565235308540032883482965465989458359651299901647210212023132355955193221693197625456179448720146346523474370130212136650067991703552772234390465760846844360783533793855542310476428440050094003865337607243992494899624982789948369395130783032251033281688866775517598568883648786518237800313828436904541823706765869467984364059783081456433055579938010965839346335062850702980614043751043939943230827696744877482676089828933035756184667667123592552614581274284514257658946541034014225250935671265193832594408237074905819601311068596044088844460963093955378789568417274345870503901574917281578967693550737867078127485969576185850553734482183246614233067204073519895862725676217973961543938533693674927572972875777010277630000082046299517942680246448976768908714125794946845167318953772808864230406514725692331114877112724022636097412444451002609133869978112224514041283159729356378078444236047229881342980982498030018375606251618716102899985073681914473015785507724727845852746717097344500937904356932841880282403992225853928267939006905520175467780629287826931186722070945742741863968108338654804709169235043097268412135357179894836913867041721605410496833395450879350818448778852860068260576597109969274589095450736987815601604625846990276867718232129552443056081868490515506206874280515538958962929053897656685455463195681300883327688339311217280951942019883032356920728144229002339563413602808339300905823895831651905430311857453255190144643999233046855107108515099354782712144727780828009491111754015169302453752317152618622999646702845722686219855580944244384450348208623737163645924330174667820095818253943551740021516741573407262619285170894447572324557499761546045304979306022456667842752589525974792994388929179167363305962504157211997617820544433882880445999259979141687886420215280269443494124953001543066643087214675967654530606137230134657000289786355652383259515021466498045197558700432836691816702907963811741305925713852937252216512137826643167758655185136589966001040713812408041418243939806196339154735011969167080393796681608902680780602466337052310999679334863521372747421275803082183449650401444852972158790430594909386639515719564248547082145034906820773186844704860718031248543049453071118357321982693591479621205653112686492317982755303582379566742087159985164926850970436386781301410639365229544295942469268091022507691384282048089794122611035578848462969951889333769108445468969828652120243283197924580076971548611903148113631797665815323418033608402263486055533574209662953190233172754111963644278764348636414511848758689281036678082991000431400299833791868614546450924982120618730553515273190363370325659430369754300032547919172335890847756342591205761833627062508791235456721782422064776986124061919273567187772638529569075317053252108181506966312055554490462821294940299379002858405126174131362425708009469540046618941964805606933776567440771605919604891317349598981827384359266506329268343570020643774457057959337661079305222263222257614997403308355267717144234958285344096702915522399909281241959039539054797998877226321351402815078513123426660118891980190338936560607019758038445830870203166175772652333616001268623237945229507269078231794911219796874747019235033604112617620849887889969626659514860403476774094872641559943204687397447838710975700883780928867214965181536407919625053680630636727155659977737491627659608932602971720473818245864289418960070337181837543264095728800059191410603503480002285736746049018257774294709958981909518984496359505549674079136151534094689449143412694265970988318765490651924098001008928951934142140433438496663347134353464751235272214509379222713141526399352911886295549719968118537151209542198795967719752744089274784934384734744748856114406988236826919894268027894623953763229942871279165355051636943192240723208080262309492090005484985263074909502594840135020680858905967769720993545365434717458307173987577205553054732119260223662857351063169645085115123852703469916981750253297375119713643063666029435192069317843002351368501643213851232891970241381194053188821697453036688415497269117649754903616809512825089620737966367017389932039154092754352048005935476709776653553857306658783214724573108659720189013891571171033037196439083054273235703745842279320874809121250631721017690025613963939868747059990680439165223323905547196658078170950491310909086979560291726361372082030551148882714290745599807501108930727422014265767824659852822426780614374519488926002382474786281272173581854926123172433570772473593946028993854584104483912957634515502153311395847551640686921450009249910759186433061570656310093187630645784303093387888464785173394797743550855805444791797049105399806137473138540723787605894400810791980082459997175036280132333320441527269552374603917737218497649163281580398830732869167484816678038655106720632880592679707235928644552160777343354244328523316282329012930522277798674913373292186341312292830754239869965065520469655431409172850195249163166943429616643405681127213862309964777092446440184984483859091741382938844457536834110659739786103417027062209168256026976477065456319077541960116441520747442989671324200967920118984806228378448469389405094121921190894498574573729408044144327311240389956076921780890639438520344907248251687397253333325203763708453474011560804681447619356011931384168658010340310892089897316255466211767056817506925513643009956621773772188222764394525191204726031975712120525966248022399737690945439539313158027855102375062689492366367761981117805518168935237056031651331535112310066490593440036789859456220112821923025319915366283041333661844807005049701929808878047437048740331267199173494664242139092474451972111465332820124510421876288113762333975306137079868526284021874721050619456939565605180709026747512398306842287131559597309414285597555969587486647332317385161893790688785200560039866160844380388035647918913531808851448434761138065896527695033980946732863765237774703301698863611717097681795204143391802328190552982530030404240766556652821486163774528394475617911769896373281805667171916788868789754084601243217975855399083982908779455846152066443558288835954968435365765545925658988310764789775483853534914961135694280307041234018556367026867982849800391282430508617800660833340378783130997334492114078307431002087975634487885101596354371358356864367243080183021855648263558648439101775064749546235360854742600472753237635200117770948189868482820170308639591212571895830118831858846909373846410617642961057279832294647131903702535834182569084344895766726962531943346924911593764447089851831673377960084223625984744367310884449272644890198728801394224156958328078952755550005209204541363718375886289639655747418259829132907487704373076878809288223341400050906267111046131603657239086602148061087149031042389894746092707936539664095296692973624478607599142440473389923270086569524787890684331977897965030545705540905423380354844558645563873499765058024312458739616491716606250651454299547652394684189541573037464979467136317926515911010677149082341401738026881011127602290700310808668801274316435767106803160530056270853730436077279975010256856737525530529650017763035123501285273787568770585509978426178463816625780904843676718851070530617081406250475887560994229563451003114828749877292037630366536493220367002709949833991342506494128948205440838673878543105307125917954009575716563581606402463148000323794345065898635684387615053848800353733498324605575374872223167674604785965364205671925913639655599139105469001389635970745923731826893958994916944941011908430895662798484489836946208501928011253626537845410924066260706815114695725296565101861301434679003657474862094950939761276515277149044781349199299070847054776785378089043614085403077471268527173587001827026600627600443541066032271953661823218605330091552535077848361252560197215063149363288085516101299811149178797420189570103965819820302885166333185742876613220274339629233460030070021858383411500556487887389397841946012355732913833776198618888460864924385732565908697081826734607375681378610890444145717930536332955089642098263701421259020236121608547851890867122370570398124463046821657387370096116865758862602353825752325196624790734867041850276489153298522183238901389197125303685867661981705329876858553269466579136969905402682774393185676537744426731042060719641836538401682746940805635118099086058799422959535560233175537491199750467243944496306816264337949487360761330716817112087570972651551914085829572113083729106406090687116777074724123000794478689505784729772813776452785012610244827971413689544665866695137144402715782718247634938811889014032184278862555720526566785272132247900725731414484758489820575241149063400401685548978317760446260348491388321965379011117766833329470370353610474537807736765576189863895853010004373631022812307295724884658383302902719894002258912260521405838781157274190451516084604502325835194058858191356062984132013369647586754723700814604283404411627247168704903205265353221707359140970594349853046615363184599172836400508650268228185421721894039346457538273298317572969961644804857393833461718683398789444028012378161555599003167953850950427146502070806814101349645032207532160544524037349158845366055779572692655324923635694382835188906335536092803835545849182581232401160669498473499618606444306554621218502949184442004094332823578090353705083234669768907597575418794890057910672782343266878927729390962752289407591240874231064657416620570919854377247255743112864395215812932304738007303916048931950653981469695080772782999461185930685957497024586288993690149805383489844978535058193705905156612314731539610958791633348861691515407428424034801170062539939291871626822903387783846101038980000345667922543755004277476486344937691202197199343456698746718758759177891329324486544535573041049270668547326444905463720220649812882545108092106337748285490228556252975140681104611194413521817083056782963831725064325935160425336909146025186162661498738938510690020799252819223468403573411662424470423518025126235442545209787553559355902505228197743365197503163243981493903559845490411651587798062639952773834084786106740379135875281420861291674703722603412115024155319763895671769893746886482342014039900907489296936140001838974576161294566982992041153312717682060745538979076834232579767648248413462664705777906157220704648724798663152519169746920737048830449422835648014035357599806260894755733520493773410184026306824731233682545848642570989793517062979614891618550901068106433716657508052008455534704886852880291337795738087997069453754178594916302143183249159627427991705018683289078006216113997888312372535166318830824351055000231361809409699893865934986516997614611855153253608430218786001333678460570313774563065849600167061323183534070757161589892267299516987853771262288352823312329920607490824775276608816838893378918047988612194652153880030961259732279959663310228771162048539634511872159827708466011345205675310549880016159121607730504205492914695835568701522390561671786273651093239477960529081764849812103362516230319643431858263255762838078577849200371134309639522744957026878126029456353403611332550038860947888876718678479433652727063403864639097342453996752670317358058942176818160365997664234937231297138117843828587310933446418701304200447313297605901027885570655312144475715865814955706892185772843565288754367454720078009386277083600330549074850321228477788035806751316331710711663490243767897991825713181014348651349784926358663339750354913440729719028905331081421410905572085014614765279332892427740812365930043396603723083674027503076876924580495240023674633934020483691811572278660196239787902664487884993230035238550747418128444545441325357125878613316613103483145107750026648046997669687427431213487310282897853294558034340355011068913241301030068440348013405372442934850208451455102338775322419297183102627179316868613136771224687688386115630307082217603477582837271809234811245874518703029383568872136528857553039690296239601072488642275865441455323288066851226998806307788830654954932834499171612040728051033270219601053483184083439708336267744354118101120052055028280969453189078264425775787359777637677486446919931368378608573906019908537965641101178000622004264976401985175727646385212690125312864942799581695407752337198484561475940002634191831148112487410990344650325418537675602981276781510925616859772857122208471131001211174846307011206051436719325708837513902360297023102862242531067037912481091135339271371926816342611578355583582097162173962029240859950103052826039184901759749087791314786605265352197413628362245882991993903715273703307926606638882156694154997309576398753744169374793880823657643502066389369433386980125229198477489782458287835072904089187402782437468527693130642391183071843279424799381437328607475876919183227589956370269534883273997270188401005333359468003535140141536510687596099469839017646660321002377864403936471973053111722531657683268912907478256627637869292067324190644901247556536432433589449081742114680880086006526341174826768600086441745108035025172700081620084488289649124651427228976829532870449959237557126500097909016238710761498253627588431353564871691551481968371851084599446100013234357680543035799660982746402864346570017407803488779623709233314914358581593669368468821770707822792379854340232431355340874211730340591246317624878249251109304770288941154765827531473311982111127201652378016330963100825974358117275680738984353464629637183995206557045388168797655783059168029771476858226593472084334892908721982666264820170625844713080589410906370694843018809208808938938168072444263842241084265729231819586062173195404964556405892641508311870108882475836008500800015189326020194165734402996657513954306429711352622546322658593782319880336208222224009482848593019330700079956426514925982175049300573946487513368807295511007347008830839874297694033456807512638957524518842353142513317644476474388332445088710691446091169379900896506859965292597553768318772489815277061611249220816019316335554533138837967312315411344252032860678167198516876545832920568558129281747363120651920133380900232670197853705054637284488860624754514048560442276933937516686625827517156142916431379200855298195048076820637370811875348637830096239954460633881882089982634016842657149915389874254090873196860777232714342942058871357491637943071613359623964916243630103940809479946943457027373288076511874243704956827956899618144265167986606661531216217517874820919670815429910729366807904744178581000421747332991382329979261748820392913784588110072263758627558272378405158585024132670919707233084588249637076411782834971060954278091689634398837442335508936287968721859491587304442288379543412073713489020814706038445449539193121825958255996626491768273336367762159431109658065247859655845162386072420263501119329792341835219813287557597418152298346534764269602623723627292826275097571004267609752056328874589729544318011156499016191811594561565822853141780821335567785524659672086445138626532128792801645324849908365255764481409119759912783268442612203376261347802256594542257421594137263806442465346969580639894222548796072171166302540846770705298706877762246601073022585814120228892620526213517446521796213756345858244204163448008080745521737477055475718093543974793279995658358593344666300127826571810552078927540427783171777915469304918108826959200627494781845735749567871021624669140334843632936865770886474857690797937643481328089003210468456267399537749598354759708471856276395584787023041503374715797356903617325213911633222246108046987694446126115051354220485870007426469438700751519732981503957421866660033756725318661510227111153593103464447664007108918459046740004426134256704320941374379797623974740942038136277440236165374401762019211307784637371227901925583763044153143029433853640860564700685237762838034035732608121410795152803329647487884818324702251412955009193052745423492428006424198464144296771349706768307106812597319972706797804132630669945009190173258432213501357910102391776563827752578264033731276953021583385538973692339835072019775880073507838304975309384942645338892237163681692645276753746859437471207165463274397547750435130918075582099841665379441906115784458011766606268316295432942922426241880400341743903689920646256899630059707598789437675636368015867102186523609261398838908375337491527657512752563196414771670254410189930223880057899046193857030291992449840011781537258081225124169863967803879011578260975156998504929419964096946668688717609872875767980296565652265683884843991085348272609853352895620518370843216511606157905796239822277967891620476585102587269995709518173826466252572920967543530664566219761145428805636883666645563370780596144529319835724518958737386293834857357130840447324884381768991339718315963690391018422749223265862796158959104322590515750415891979963717675257483521817582219926266562852010266869361938902945070902459597255224761740800995813839579140797193763678649628577834187607277180985717028347817536682935729417219330408157342272631149648852869763957153086984532846856135460242097253050756741468817719882286796266077765207052270337305432967815600466748779318590031091674704121119008938708114528097922549641422082303084911992438516826646883437438893321205793750713879462455522207382933731301197094002785846032918076136150523539492051049206026233524560301309512716741002964845695055684673360870389379577257843301137484115891056789370358244583224773839940401459149226022793345801990716963989858263535687217320792921745985452770489943026871386731364380651276823307958653578477141372981429154932668045501655789375693175316145233280551183378866006420755031458606354318945800650369406462590227444824892404687993370280644870678437980932470823409739114377357340251509719334533029265133834818440716171745298504479574875908162040740459747635131878042264969513086895732084714442780049515591533143445640949076828252134461382085237845322206676998064953764823994161649649688480523027034492974228601277336215559709206206168777771048689585503333202516215061179559532242547445938554507256519667809091690177595640559647867122542328189280551433056721220753065279739721215534976810220584503385698692554330358714201217907619722378882641111578080319372849042118000739645590994470392272922697693060182186400573674710038589463700503514584451562642953658704280010434211680869070255095715046649685450986668572960822185413049584239935317489454990747563986894236579286624021444694088458654077939704055462637158274044837943498994069295697872958025554697320906887186485563535245923357911655864685940699043175712557306609731465163751115442342087117884687286183230355558968471930896945452854862501763484721732571187621291678678955718553339231462750794094124801968054014475693089712423821643642795987200874449022265317375142871873360359317740742471043348274632467303359744386775419788587990393490532579820427644928137223060946844617134954437212155128024122002381868694983027752172600711477344654511330500680770645991563474759852843046327875556351082477950301505429609891232959642442458070010989723193067882784309333195124520559607196250466527038288697729754038094317921705412985906742330448334193142731545369922219459277852706920906874647666435799660381674587683206519465362018145902662826702119934569501184205519980836581039636430589913713587444215224668710344239704872504264138801634323072354465342811829226362352559778093379195601360314650945248856532336571420904406292580373168784146307429637376548515193043535844542139652105857187303167364671511391256019795973101821222723297723576802934898625446574353976511271567583306908071157796851801292351514651811243275355835829142909905797049995156169835272276633214990108559207053111373026963177581634559970253591137604231439472959035552754015017244627672844287510105826903110414520545612758547215738709092368277774317232748729985917360120151478947737473012124835087169963761120738636358665207541825877838499992809570478793913944309835270824351458285800919501969408204512777241472974973678513323081151921293323256334287289658224707316007400353406053863662755685713341783028548455580849279284442559704933255494441513322691365232508821501640348803774103854242698547724327782365659127973581780255374545400229679994641939443388590742152281267151728655099442906421863001607185490904146051654226273158105383136927977161049422825502093519598494365247889388148368005137915336202324016707776313415621122299844122269583359490241197486872794814161584669218794544677113515082704862137717112467049825115735688679698895009805270514776083193171107376827786608813783379102749403889179654361707216904011384346894922334611117080897625174775581737199002505973161216707347632537945444124039128156280492243763403963278066669709922514614290421868514868423542087549030658554157169865450004902718027680711076401691989401622232009178481076462018438400748260752730917668469477399160930581886095723890007496949652653743584622318335818583323203805393639576973152555190484176777743180623270247001298738064956579663810461555688601608930710649163643951471767777156695065439157001085911682335714833081976935326508634657100945081934856317753079996170695001192021100670765433500033327523134279011949088496675712226383155903517352124191282648849705565750505434229280477297787508810134857780539800996150571044303867462872101940262425053906308917131818221928612671961351921067289784551819674424748043290535691725992276414993622809728590658979832436861493242725380046034253004922386334366342793055737642148944111163083534747176519339965787708222160763507583009844964766365073214377189008652403671329418795652008023652640471854166368617993347973512131567331267847269676781441545903145896637189980812965697544110509316280948331340275367103362852730331715836412213534089606873057522134791959411610903080788999143737594439688703934948186805016715015921810374694330751432715599740514388735658156757327321183595266675852493489374376901726689787624640752468423283085346201874948131370511650816744987442013298350093475344958840976972904488482500167435693122747976214242550812930014534222388596559862320680350319939894888383665288147883687013315980584485782009896495483217998772826801574762027397844732673020360534970763697904337136286571276501564234730254706808929863430582822125414094789382547921541510606762884196671025165753820505842897367859142238526133576875046146239043433227744416875064865133894986979089391210802536796125852750708295852799920317327432106890245741412995416690086446388559270046069479888345317570190026297982288824982776865653721743917340671320049141179486613891450497720385914560260824667605093115182740961550348448746955937290375147023319898717489758775095718883252131550653942838187923160080443020228267589661150844718909604469012449798522915905936593810856772872479505695321700203098008305441450061477255840405060640748925935377222273964801041468999358076833051535831608139810799890203603047150918182270609677990174689938176779883098128302556835246470918511901908704891243084189039685539513658281040642868097799724906686266650387021279835810325555138379051729466200351134500063643739117048715161403725259428515491703323020953796386363603919880435501474255180084363188913859798317675225626182020173598455944767474360948042875106659249010806135222509627794755518551197084428713665231428549992860469820751016209662009341476335337401927080650863284119905781633925879592412119081307274200483448232398781882094876316080473178786476496428315735530603834676931645677139233102357594774611171780070595331741531097278040600501153386899646273711118869451811821589546489673709077124081478161304026985340724829714986478722122744962323202677813160282334119330224179712323799747926830408976591228794499245498409812766655552652286659329016854626309774928177479435006239542879688664287039513161736322998734315305283612645037499097346170506516453235257999982553899935678774035541486502774868876119672533892681208898795339470118412972457958841460467542510582603857560730889743629256090329467776068363154823841463879387379444569893950400117617716549538582238792632236514300228852242441063971059593672499962909770500611423038434985736591022442429184361958084939584447651616598974556930120503877724384584020274758967253829492823511690601913195871104181725942947740251623957929027152210117722195198770943194669068173296702126405053330715989739539691328747592493280162071739915540359332547123808933426874252514298406239562292342228214123049147694519887175730806922762428060741214585799654991610461136057677701353127756209563910724341469473516459997085657291362224927972086286794240118198486170821776204198813349753227096196263661410481032785374449121677248785246645529439952934077427935906529353064910294874537258755401367458101792235889639615690280826145134902089898688215582527102458907352134668301264132611162318961907581403232193705604045000359418098948199572310471013547968588937301021814244972622474999297276271777012563452468548902671048073184275485567997876156723335729828309274811162490702856887809303204787227364158834690287707117163250405050760850715334308886607539686978574537952326162210200795875687434167363461974543843597334893625022077773493213083271877868406623438854209151904566573069627747581858366231427112773920012078398685311308042552112366539546833649278555208149868666398458630886281151967740626536606396811027968448014067754616414149842761816475748723146761812455761610564195087383828828025645550198833981589858954659944891055809207115588200270290176846664831377445070837784713254344549259344314799859113079527527794782532713016461977094047850357546520582516222922406441541916065680746019213416314799281677059531526519353353549720280761425986339756889567092504079126819649723187676011754525170045255463899840466512292185798035804506705822549267562820646362237190439192096551970252869952168566904067815611078002237085632754168239238187842310445464548087291267306385641302851430075173062967978331274629309946492723423484065650987270910459696276773032250328573242135932940494170022920997674895645650050958728830705825209476239030143176113923879478234158154400134685964975456533395446523506067734041850646733327166640181900242639909149794118454224420247552011053181084124915964896348402423462026407669620399500929346631839054455637232065080787438541231545179187617104059469874744739298056289583528192986409298051433038314658543554306758397784666584951995346455565055369404090679551647243327783180305980722450793484425853855163302782642924615094154795331600615985062711978442076880141801523987073995119398760037705076297272364976732873629132853099131460581671652359523209435209670054762156907169749124781901305512032446902797729914390381365583446190413317170268888630453090073743402529436133959694368142922875674981344084000927385060882314688480988296670832572562219054361659265231099058095437302591572415281274385770401387711370456108509390330800901693089992669818214865150641980457052862272539287124687314804627005151799594382060700649230125933438732043485081407355592231242566214683645880924567646189627698408369549414646967228919265936392090586390133342317260316123377371768397901334118046357661227147141541246939025527216233235277853458716721789276526299052808267573621819449440499225018998558620074751947535554102360352125342383986498995626572824451329004426455583931098646900216578689699095095707664009651775431701895962086522582979773458114786179379014229182902865544336910152650022164934166533711945216884153411818160288502147961112523597801464015985129954697155855904888638059724454771320365410644054341249198003772601473274445729355974337471838198426825118151910496796719862487333950620325851171679445212250403656316482332370290516306451219691835513148229646286750746496267382892474211657199360804127583100258085723617196014534897033153093818533124388726272068425867066507167066322038537879526070982471283585732863652184046796703647750848850588351835009955578773949931560586578831545802758238826817070315998986987296001896654770338813622450212178287217794183547742515088965458062102486182227032734882429230909000979075498033230512785749666029650065987453116964103601416200798220426230639364590249981321640091134144182507517520081324617878200662554831748754153030753445710167089904084302821215600735190359606448545430807453551046664370828991279670962242205720404190214210859033616981133668196215375710319825591445169656725050013175900750691934942097851651928988287728654666853594566212683682097878417409316081913059724188904540871103803279054055858120854760806124011849902182127010849878767451329469409715230560159054585915683331621466450626252511412197117710503882686488676948923079473825824088600458439405795570327233182756466940668463149201772403518153227927499759078480367383891712057951393812582812107488658771314935015750280401383773027589929366768249758938457725362795021935400842117952794616295934803709841736495749001399877700404247294863970990307007810929418507262076289257630493006218821227059662589188158167343797537253606163164897052490381651698451415233661111103369334627883577673479764498946285997278372850652007665207111473624077522596485194248549219435891890651835779403790836451421470927467635826637263156335391152545508378051875686585470064493808863919097142492522186538129668264634424646827888587656577229505613193283438717958694497719820287909060277351158447453973424964120390706527394934928512547619433944703644164118274536862022346042481176952529530561193087512600364385411367779021292269330000725793061496365372824291655190485964280475895162318659032159789102940877692998534078583909195993385176318229004929298094683987560868804548651470080505227303659034307013608667437161154877685924040052617824533209510504199013781480136826502482837260359982386423894224979286187234747926779294996827478637654510834733139219747766754949903785870025359163770168006864115822275083563940409558872944388270666433843202577436907469645106612115810122677524666241582703787392873091203323159095088677652927177841924466871508353213435854002921128538490088258132439604572719881816233796052356336460239397718883275392738996923803617979939058091396445294060298344246020506816945635493912117995305449729116993279868490964901830547803294038867646578767492318464074015882831199891797751602396972327236782923673187496290438908191709582915121682274427313937186753256632940930077052782353365911823718853242336314115088981705367379547738638380719693709645398011464227925505608993039270929175284932007045336132665171626612924989377588451608239869268171064203448645128426063933042722569778046985655843888563882684791963736584016462808869487771315647588692376018325402483598464574726421764005783100208658682037523409510008719943882935941918986201959387241549333502805611302435393649827963222991719008833010334048788166053825949649554801647371149540096664878293649474437128203637621873876981520272655082379947954979286579372247253090798359528117144836846807116765828359087086370689215409788254745285135559618567728072576340343635899821661132855667118512148937208218805210973639082764885441967204846587766383185429379178006860061146620291775172482391680753584597782358270875210275501835278377461790446443196758772981934463921862568798691394822464254539732318634444307905660324796266917777459246181285046234134569801073102462158696341875968615054980620422186936000709460056492348199594388863521024248940721286892019277477453874095001701932358636532575543998522700936451018536718409727422321134806962729858969194321276951127785964082058665629435624531062532025624859789947611185431085051676392805083565245380427226276616584499861028188927155459006730537842330623454444869213085206918102656592850381001893463100139011445310046649010516621829300599991939334714369869288632585099065594562246187876919401487000113760331998835667160306363704058606014955658624230993458298184285936899761070529917623100395570920121087103352049424989295057205548541785231689196029522053532742203190056314998841809444293819552700021831279046452471074400412215299274176836391924537423711294155004911502558907876042993865139814226840083342601333393560957924149287814508665406415216333249515201878322941149858839103766947684025757139139656636911424333589684110674448612942222664299911979399555698128134507807219178005082146819606709544988028765869571539635159059333729922771795378349146706404112357689284372632513541414762430408193617330073072625115995968417095127499218804598677980947042245775107909577233746770142454480182038350736026437887155686853067055406186528087937505350533210276227530605791481273616931395827684523648161788021848913012388508010857331759358277872433666831786749354550917942446261123984975121174371717149794688557050837042807222480639080172028461446660381786716217449186855018417088350262844999867450932451820718227410539937084072423522022866323710441383047043840711877464595403825349488447756712921505693510538831408532606809514062901874288966772084869068620914843469680968917401977223064875011587947515846636966922637697600107689335567157123279307374829099662350672408309897647473769048941275540115632724001444766919734365971993090802038453859242363521143336693403257412701319301105075451475824895717131501719061167603135791859060079723312465755813822144828573686853457659685637470208560403820426644993643244559304194553880968428292319286120318150052324588986283860229938357606658961734963233946544799863406007578881837504612769142368995892445159538589078715205193049964892000949863917420090856880056760329908155270732100216563657108919710148946778814213376213065471566102663809828076482066174562199974720269674915587306650710122283238732119720953911510610732254060541232997039429499875912604991053533818910336721554337489656138941406701369958750692102930471409635725876529402994640597494357015699583154813756077271197106606725012014094968113068837142357963444222677368639784957743230059989325171224782511429627580069445161563130296839935662003818340065899067686021759795625314177218872513355407389374097173288998624637533511185221700410498561656378961878421132848874350887559229978618740325343685397455301054998694244363064697334156884452537761541922417924759898021020200219929757232097952899423616519926469001110646254243491669109284944239143691730217571301647214424823566671663856366459078613175630351613501045360581526275405084084433197527418643442526476112264781939935971681635582905768591467393460124621370405018967921771770760972941703282535083226825811446982851470535744848880111823104213535805256799376830602092017146014588221777690481935643925727047070422124617064480978684858522280452741616217663159225491994445207130164936530776237053241673055926182408529662590007021549109798034859400037516945747052909092384436295965230169707204446097451560546695748109179552017918493919521240104287326078169019213021144620576091920778919873337699284177704391520133084033882683324687982057970069708276390638118116420117814563906115054275377140408753523036041233641059054625795585527100632335939798567862086445834584481813546565842520490567363594283809779174739088174943872865844783922717899610811641256971088653036927499766927339696900948230456964000106751809188333947104050113630956015953238152666718530617205127172120544542509599718280731574429268376076809217886148643279133178778481785242453158581059146308136752982741107093050942677227861714797196325153432766580041032580178994084825340028619937345121373011141365180790860241428796356678235548445108177695917618507668737735107247388097190320301781748246511670551421441310115991130742387682380586531831554196951114748779676341418581241078911050703445369482422828161280916579531010557633535330230202895078235792782455892564844798179990526464720421085724227471025728838653231028103151626686820388448999278053528030802398032915703078734519515814473664483199072405995712883450481805184675863718169141149681012797860653285160704138129376583704400163200595660733764613906591508367880450598976267779724384675335419046796001832523361637635236394659170997152726603581504278336238253343157046070892345889751798799402044878305455560070584964343472931041040331692474130634241611500907891301732038337201801003465246611155930011293201148155098978267596617967706297970311494087080570000530882171291285006574858373666914798954645945341040033325474458037839516956420241576102552247710535403384034362995028326495548141589566725813148028906134004537074434277678030375221871636287336144639034913729080941240154283695071742037366499538772624458680127944934345376810085727231860691139539097853236414042365154535479146875943930742027818883512883233290487914997349969952884621249938880218164147751528639675037743199983770847810627886887820628540151387973359921364114729066035209073803590868578083565413298375450143579855667542175157319941062901157623432624795878740500170648459692751660884499846815597163190095463456478077579355824564448886007067394325588329597496547043094532628072719919351467199197607588790933483947475341932215129616142048982437940287073837454227507274110135500754596657511317223348965848510875517675220327422616437134972941513916470058544971070344345845813005596073762535308819619830950151395847993525521564167115366718727678131959946454198177763455149765630777243619937408926769800923885949510766221435824664395530561627670378023706801298869284770289809314374599209433840404094483980738241383626348314964700319321978975067701868435800089282912060372271604536735211960138187817340922251042715741334978650588167547464522722011366215241907782970947008860597027377679237413439705795814352392014121769416327336200808781332612447231823583859632023071557990827658882489525026050168755823411756660481387973310667174209123162395333832985963640818961174103280457010225204948784428749977869814069342182260704284535150579620315917281151845457610371134791999498127969697021757844493354820013827492823253708554731296903171432842218103655088486097869576089027384899760741193104317640943956516668806514245935814741157062655384327214498837618202694418432979148787372826430658329897823651234076162392251429307265877542582388369656645818209512150394211939630899178706514086023805455821780559336820597843673791954919397763500367816561105008601208176206784196431454818703747758107958470676714721409649371042401704081891895050129089797559372225602499938299389124181973816509412982432609233676498859653569464572425941081683466532832071692625103902478083697587434643505006330712970067003754040480626430248136297381754206240573355055343416763045138063257779694320638946150669423975863841796568174989393200957855276533392059289097331364387016933027060970755525354604514815027975901336696801091111117327868780534013398618262666415365808507669965194067055143066051259518281996848364718893814578852297104708903743006769606583097377355479447639064519999207192763146645568488317573264990544767438018681351212488505975849565756459384940688135509905564319106086404847649802330696728070578682151545708738506984864532731248556537056221924551939635229324200283923240491527127696649999880025011787144905425467924107397968973332036458235268561136355597885714731884046482774366714466618511769180331218869626763468912149890610043012110072987776007807977110206673143856072818622124343541461160726685606807562031386929279504166758883316736224333795512457107915804180155262044217124033586229728504259360982437491499166441151723579985419747965762809063626596055588701123910127644529036404589037339605997998455075581991989265376591682527457747215814066819620253150199116894084726905895120248394685884914459064299970536057545924424266642823017134211128719393325451705872602766189266746396027448061100210274208809259537261288674361083844229351466154490744789041363870316341964586316875434968769018929381955936944541537651473402774744351709738748392412401605638105508916551522200977208800551821091919222354157360017396580961854438235939793359227533283030979894638865278628686425637505184617699558093606220485881994210214736898451853446676424581307348483580570408024423351233995242276021041317425310784080914902825970026007029185609811602923631689209101936611554927807976544640997354177491510138086796997239208798860402876888553295647841126675715764793774678384257070550939707578134091894616143017947049491229782276931105440598727498582105988829563254668855607604228763993908218183661395862890161797356672866320296035210315214117935291372023208706169793244781688506586948013490229564052283129491067874779804497622437705995003727323162949827361089439835450144638448579778460558655571611942486931374666329937704558141011956453489343810108795524370893294027178066898490910568646300978999877166503142441605167241072446798567687738466415315059889570346859231167073812383399702502129447703445593988414649200487588887259767819466781962181900047442394975624940078868085358205077144788862016627508089983433548676689062392475308893727981077261504415251369154948346982040878299788044882689409478567948610524379817456575216391398280341158091372668381570723029888695755983040591660633211132438018839945173863110319165270676507106142943783579426373453609314705256135350301975959894298133638456838974501670116668437695230497848350936503064567827911744412549922903196739995614681623345036718827772708527783921459797524854507428829023064848865103754063553089450393397564366524614360232081739296679019399926327440885778659175756691040881215787620529745047646773065049832634652652238869899443838989817778658070651919940376238649081491709676136256468354552187563174027669817816484195977005607987217724275319196979598666111225704063882268689475878294739456786817701606412753035724586772423911829898026597365967770702850230864044207458984033934731505469124907612498610494836582418229678288360337782462282304185747024226595880311047303486247894076364408660779155641246347519556279615183334742108728584687023973128787636666495120406512883411041033066077195339276674217231465817192491386883768951012254570683627927141692079406999700557053015976879067195292077137560698398419973666021251710913536146518109692742880427121558608342260501613859686488166078595817726697386144181442219453249132704918453935728263293021088202138923529201407874842556863442268207440140893623083693482651204690332375298399186711299996873848049292124477236425270071437914083905312457355653487356780949611267736658383658593803070505165310059852346569708166510084832791737984078287824630203711325388337828209690672286681755891153254682289630917891247632125543123162572096657537497022472005179983289198897877501666768244816236174326273347878277196135395077112897205745335694152461944466958401260764728228051235099603506783812562255514862087593765771706018907125483017717116981478528250726784084510722962639153188730217265226342693148630493066274858242107083018966477125579223108389818670539555211643119139140323350138540147165961540522405334282823093536924825798960230997718025497867178838465388224199270666668038450912694728059247645591182643978442993956371033996429506207050518100553933628314149329102870839133446944070247904595122124012678537249668083614358310044240467496557984850597588134628051866362818797691546993350117386270508281994015962610665824213961886213638405264013061440846401963323497228134092269810989946401802293017484914289109703293470279855919573912709945052770174960763347673847561571245555584116718195967487321709118174180205051753303882122745985393466097046642112110486644390924674609302048130321809100413784029639211424415712724257963076670304567067700423992392695327861298174333073852702508392822108032124089136197143222297577083618693072775694091542772715309394711372773742254950838973890058033559176841414280506906062233622260359438351385574595530511761867438709384633344272835336504935228093672867078559057549190095428301516433665535164279510386899605091049204607196382398252048254243387341206350503744655169515285477150482194319503761329319136642345613060930542701490642865446797277653609610102059977331611933141945392026744697016779290031546433556635767614857418519468353517866938343279463691033197150096562349470030487322036520060959289372999171658352706205996179533065983778881147320224363727020420154713562908659251043022126303534681058527577343897795279087115087986422112625727672887763265845140000446793526592425435660045016761968805097039969121948230632353129847373453983156008320366968367851376595658975011077465558460470928458420627608251793390867395043489456536053845832909821434618899929076705894627314962771756989733873778880426088451723451076650903483960092227136258187921039732488054847072472537746737314046368625861886418737122076791091632705669473161175833069458106817692720584627667279143437447746447418771529496411474020567960452372339743595160789046097981807854861676885224184571771704074958206186545027609207846230224341267244409085317743147217193439598250529226433057566095978869442912249244489727920720005353748473883914535038848781869060171656337184072101162171031945623139805284611838023889568023795147693767967303547730972622962799829455607271720102529015188810846966325493530446032475953308552242066160382824211122761033686788235919767085107445223232976143781282703068784802736372778785262458745367513892472448218429348284783651672792074706166094571525124174513940933167159328650127553565578476202837156106520510276858931861684972409801293850314330121865882858461154996004178124801112266410451601252353255912185965366592048641866977912577997889412835108382995507221698523945444826690933618414121031047837554745956035843959767152619408320332403212755719755060145777694112292202714411544789470669208008534764160385881570551788347530465513080475311422102011915328495980850770218031167480491417507661334233905227766353876932482427827160248301508192924570908800917415399029630385352939938276465229283263933765415660475123431092221541284345751439813506578531441389212956337922593627434854522544530340766616686668673581087436923600951725057473470638522118463482920685973593962982144473292091044115913511806563024935907756979247179530614281458692038657909655474172830703561922648919085522401987783403812891798675715387916114685292384896549286554598727230134918696483799910028701921529897120409165934009898510121979590832117444694320927482381507617241920427567350561267261757620721360192065697212129352741825517999432893636833509179920767881059968135268243938847082759124917238434357007618346385156112833057740604296288302176925884942444275329750238027733223731622062181847365175716107270119756664272381819316765861311479335773084477716138405492399634723185971520110894364212183470281451817515080185029836501735101222074529211337279784696645631911880705059965823522729758765273084275365683564564965129620384550630253063927498198907479040803121038678232807833425983019428060030897194302295934648590687306186371523045742650619670503586012802183908612072878917405477709201287157611591095530056631293374044535744800509847805947347388936004222604550861176004357192610413044879243512155942270294046577696934651703682212334391761296230756086545260982797320270483543746636762139203140793457891550616302193151047109817220075461061987810218453060789520249657770071892237186697830635170761095833446344257453130582537945767180073916607376425835233188826183291746871552260720113880291040201272512477821881522057811735330754559077148489100214166222459315412869905800734643259913890732725403278324231811019850402627235516671131600539923975740152819008073240988016620185981227304534863052971709377535630151382802182350606300360690072292335815527235363574707243938448607119179305045212159695997608038401051620689038940183875487779427754327983647279652204277569549950825864621323240802268203341540049399983951256263507417733355368013543024143710459598877754816711610594106732223865729937284130950559626502050699642949884893269593210445327162332566019898299748318724675735406784677649603610558038138609865847192706034463398845630840380326190448874739454006972192150069180786540081551157767689935359950795880704911158308736747804579363629867818597663119443352075661057895566861184894067929294723672699054539500661990308659435078084926000557586606621177955651747839367406156567310096267229773017371307597015394136947835534037156139748392646117115815576773087683752596369637224145802888023096388601929444606725778358127679003718108545031927222995732803828743113557570396751186469096080481194482593349632733446692457475337902725085953456563932538296750862761902052120814981891584118776368549391636313115987258402527517189755238335527709999149979590634066959376411630794649184913014806655698108446166778105746946270648382925537765669355304828230565366505410935856293678838143211223083533066215468060923381619384339541067843919008611407708809854389103368862728663941446155235626971968517508339404645210923102117107993434980886415546086359225166769440101430724532815434322744094743195760270494031711975335342354574960238404674067110126207132414014272192936935041451215525984877264414971170352247236926051488701862232008314458107008319403006623627316734876231812941355210712518137714077980280685303339063960558841752616518272328242803628713799587234510686387915534854551591964081342494817430036523762654567403368588119644423668885916450367214605751760568977625366100609188591273034052074589733834743981254322834553727268275151011055953937486489554005026670430722243926479961523123902357485499529042191920599807958671795058691763872382991600308727555179535777798984597698634815652911978548373493344132003392639854947590693783276925372830444139194772277258982140342096069740520952596334456381801530012334789211320813465762064394497210358841998928771737853189976975644805042836196791908737610984439364967665897174761241420629716350481269618817222082881357267430598455405087933330872236713259436230388196732378032860409424975189364554376517396084005600482698747268951744069073514164547415243697183450774801324998021708234784687265185833467055608897376281423395629515127835875555744077157568294807323564833825689183523559308320100066313635838394369394270588318704352340856411967676459831366227171961496603829675039631048837130826258502208643603646854992478406617296627693237679117110758586316087606898718406558374721526873443397839555447590757030847512846647437939211067497648618805182783901455956433534489591058615285709887128890126444680781029640552441194982913067630647602000710893477208271638083957945879532120312174369298455869237765788711689867195343865980874092989399426275811722774912808513341975571119645895594610386633910208650091011801621329412843727468313052405671509041374232023008460112756778390258378668638949476072489871713904530518207307138627267552348463801857817109220747068607291064639517872665436840139069629681202991663908505518332560978429077030571227673913892842955054114935065015576422729479065236155518031679599917090990801640321783506139116614502134076205734214267924680801155088493408136854712717095037689247257067171310603713378683412315831074105683811439059348491188544976101537697764757677263505680986813426399308564507747908712129895778677880720317764115836961824209052391323872580719713513459231225871349858909824627964411991592448621523585344300491181673516274558253207451821905656279487629390715933103718632093860702302281156226059872460572965929607979965651536264838555702905864484764659112473371927241393805818631430062226791141294787455195317810817270008838901588655490111889011427415586434527376448968974478309734214656642094235971361585305612891210268131721848021284119907881900517855777351154051928641320392155049273227897291104621533911015141562780734463440337145048345670414535533813887801848899440296840262799992813836264487232910862353544120842999059452639745307344902014414964972283554372853424558044576070638629293334355409056920917129344070298028684445798914110007528278568984272686991662878927826823119411554753982281215038398286607547147214188077471662362025080409507094110774420883638863470881641711992429069944278296295052598244699612950302456344923442856694048499011158107369120401668730411782298121639869721384583085227261902563411922630977269829260289215081753567696136494801649666725932202961852621513042688462705712546758145869288338862991404759777795976818986819685839567310188040737678492526452734655480474276299745200547330881464049486185299663919620924998123481009279605909132500470641017495561407570114930544510408087181534163998345475512340327469838211061119513146143200290579173061863340116212381734097635659257967164846575406054547579938842749681900227905784908913252470477231846385590260594887088854716279594415028538463333212194323377216812748526811739485852612076366735776520406897930295995416567290368925960783454853939064584953369993962391315469172827784186344905404854105985616727172882148365110945638714174917540975013752115881547476630219420902853901116449457763420685103602468761733060261316504943882002283257056073538096663960569598060100319425724943265945595005825666350499318421441656819048376293289290628251094251643870012556678553385525263273388829801994451594079547062071328400837224579422818907965367186520884298214910885197898438232810023771158234320395420914952437877010721487345961319286788950924518201731074883962914259757249588125820415563517842536495447279702148737703833679971787233930032927350492714020124378607963561461754608083095523751224617310317418448705556886477885158274224075063862428417852429111863690789709782306899340183929635838596081835495973402164158534380528334041086464386363315329123398410966344996147243541595710677606386022579163038910647759278764715766239640091084763979115567347234224565688730744389490953513286700174125174935012956751765584321509988217382444864092275759874535986730098928555910073789997635045235719193053869730352092677365093538156006897966507529664438727726031582218083648517146802956356636419198350659044222406250780019517744955576535063552551156994040607021633266686992703087154356346490540605450374638633112446327026932217144603951474446796945304468059819199106557680807334122556446172221580337735736164047048261576486349064905913150227679483456893399278668731398264807302870867864526328863271097744668988292147024473997281696638128142106519860009326338649514234529001805244970154368876740842823514095739262800898956014138435106504582285806800122258827484031900983174609827515668612990714769058861751548493861662454538346922442686440747364705201390995007562183027942640030485863862417263864955761303895251888677690805597555299381853054082533761221744832126194379405579284421359176008247580536088925326191577090883706213735505548213562507422573351264323620802813555615821779589924340553655916400719486807858357979674068484466302638190700170736216369894685590221543284491570965015711834174163215209301460773944888282814745510387196592640108193590200212889117832652710570231590438298248710263371896201868966074493563594815091056484646906233863717585706192807259931309814872050434417630096379956692271593451436594692260464935074498881121178587495393368901376005012345825282974519746325013076844992727999692427506422870166139416517291886451085254942272588122054177655723765967048715323852287630671769734708653512409286605041202113427699602850634311831203015888015088729827832250357569166447490621593204537408573056234470407510557199937958511737733783128521310838778290449019087319728975751980187282949780433927776352347459469915957257280509193426208127621286161495684741396689422371012944743070597970697608762501792919392407826065221613037319671566352723289325560712822152866688143551663104130173052926230035882244140760820708071001538767388799212168621785131245762000474692460869589257613270326672688620188786690105410564461325207073568045565886966880518946014527549083373127077096870179275312928177247777619609094216795289309952423839990027920534829350927130711696999254079315449776041690916418228488744394191624281339027976223964397757035346085079885793978554132895540038440849149106600292370024221651748984271937361744836183083895610782259788807258789353783926649082587335654401159982873415910331770836991745459057351018526031157216460279496151909398555813125424995000965260961809120438696927052800828113355400030276885946637538672494301225152179800094393569107419332644942837084251220675497531269052899378639705177530836873229350960926547503161020760070182040293476221025361045854820003633224276777556616525547057409877106784522506159984008569596015026556016058986617943499250853697344383228108753640747809105358109518869789639866765853589895624215506822469115318618132964636653851362055992632482320943200061633386817856754227324191713102591642979439308325557058033642329701560975072259430277809347428381388055874933929170904338604957771834994061232822492547855845244286097570681441732952396093366843247494938648986593404144080089297709615809597775470262263208505170304702874642444191269062769667684154736889072275823896688456570332044956292833851429101746789278796364026851401901546200272955765499079555775909609156391091272185229047098375152902876950525874747065436256234878442159643683160604165912461906214474198514933085015522981783935814088553085778526692505673568138869247439676298139926380303833198114530356301823424152747440205711735923071671482578836088115508593604869560506292014540567091529813986245767682300020901744748997478167922734251715951404960772193150385369047327668747008562671321417267083139368744360403108327562503915240075092066492649215343049624312900760583606810351705767973025045011636007586199969714607685610202829156265680584403988754297410815204131131195476647574960492243865930613052277184062250530073352951450331051986641874705172960854146392943797405690249037296354395151154518737334601117164087789696933994883333335608086707066962838849169039739195701836287981456705250046487890850121070825637410072593020939706360523694775332995683533283639082037466566166251583676250029830545570871457795571877316262779122599742801627439609357158401864957693725753275985428374124116486173118721475722539922617447320755732884116192481057936845766628019691976376455120532094439230529246466869349095308857027904216344979845112758269533562128888212734711477377383634307625006428904742347675040828062944698744456251545576113735637446363247515338968400734722164395990496200077612994716373104642173673758159516975271324895094462598380922632992646790765198339492029835411109917241668718570463200722876973007505384304320590783057258794054424614283660579575923853755339846106529486890293601261876997784775373274905806665790872190619870790413780214347050865085959536734480426098247426892044781230326435304805293625033168592926239445447384261610362272207598707939484170254220908846308411549555702224954354637479314842609040368850723535568651607165763789374158262505356993161406776738956739395033791406237987913555782339716928452985452002969836787312128496055314064485353452095409144473612014701902075878995995221099263291597231629139348997181529380571887678353252704573030473893279988206845068934332692697844446882332020056103687984840839475221776397153952484101992754413028945083258044437419087800443380487983084243796982594777726206842289248155449669677886195439843549182501876834678549588553708790231226891527952076338684921194822596548790054457901686588961453219281579988855753451761246430231138125492325400453951715080260750094880016805369191882782750702054491420135273835671785319610715894229360881478248626725332872835587203375619038996069819982568553174767479563116089519007020071682008141767812064134689346343318445625485213662047606995952274168559431757994695860186408444353139187985426116386506099674190263867740243812098479777431783062908128786186235546923745513926774515099172541788430735958583530799752018450321302302013215989564115094897111361911423536868601979581744091548933358174647407199968617508026960144235471958021727399829042327616827625096983340028103662417654887135634681339043218357686512842643271091621522219108901085920546738237996188395754789510430728837773421647296370758201739136352864530382294266065408595477870783708844089196199930473827464184634267871557511825689750709213393756707566219997974600718767764017550086224472261759785656744091421932712237946331578038699400304636234528193232946684186864392348937198533121232620559011301376261717355549737026917539668075121335371303970856761454472996136761274041899778320503576220942417097976267567265843957397799811472003929797535879042000799024014536771664714507099949874203412570850125810756776947384328401363205784235291261154469921852032706891817566495683492617188080248302798352668151430601271321969934484715388288891077732060006961609669979505347173131973789523380462416238497488793098995927424534224431826610637752370871715072351790226361279626848809625697149809141700522316809455971658870240821198609090843330806971814369017626899018827494886674136928001325576172800778975879274530558147017304259290508879976091184756776515657449139190165346445932468039618882324917802636440909417862153610879975733686655506381674336307423189158241800215307701110074722620061321069512382553743934220269721299158732280212341497348913534241996237588421434432081644682836723141731934979931547370775689446590017841359537315594277591312760429158425850400760540577353148660383763286281027090235919284151295804040744969178123382154651135120095317846868905180664732105025488315590305514926582619870838272691330669221434192208354898864042027166580834864317991830061585649927293769180214822277720725403878732478041982880798340101292287032668128263136833176828164473129266094292775282237754070979128304674174522884626132656852543154082776484655566393344047245139515342883353560651650137436562276167619066845793902932166492151088819564573432547392520083237152397683828780989312217570658984224003897542999231849637925739178647496271990471202635057917852779004251704276615443116316379857989889454989913431903333821217835669563471394714661920364661229580268205103111519767194589990644926974561152914831736738777720205731903539831698676563439226604701193444371675758096310888235657047361349300663448742840243795780849985772583455106895957532129367389382979796643432746775962600798445460076820198101712266923393982954249046546747683234470986236233597781943257767507084872968946650865383294971321844102849327802854914939621619038767473394875415932281846938717951296029712339718305847620959440103702133113619196260097775050861010549119520540312524956668645568384397924149342150010233711595898854561400244833369534536469133312647936547738158223427157869369981295140906036516788838685534351064600595115298833925907886417751702375117669296647802288062420681880972509429407102739001481867106915899008542906282808907715535421096890212445483217336604837190166677040944756340711391296942440456167075060891513705256357688462627939376439377273393244990246256508552388052281847634911131827952145694008729383790706558220274233443862702147646884726440895518562605417958746388259484205331780110251482490196134548037815355695901728882942541090359732780854916774779509221931810836092860751182940525764341322948172700991142166400150925660723651342390724194068867752144479695052534930823599361859888076538701987906377982375968786455175301450460891679884825269226938338602222217474081489667737820046258094695519200193270375481972303325095097560727242674626664348775908991316178795114225716288402274916876968612679617978332771740676451577803645552863061745135199093293895235102849059699506077906949989085141494546547103287545173211008037276342672583238917263385239275338067009462961884075847722348930627729849839002210470788900867411089715185390504797524164113143969123258159171282244111273289291679376533678162902584128524412237535237238030461751366277717302531174798105352013317575470175330188599415511493452473906903170651693258168644146203544403889577755963740191799578604312879888742176247221584292478113896666920406211145724494820548150699608462933193092898316725770889418241054856640657410798816832031651777182970200888404445632211906259739765150057343159003638298268813655460895268515478746771021491029369347336110087813979699107174099586325620619129698346290389910078227398863220498266307581847623150202279562853339539179582716650629363630611415334356367461542345234642967897385984090462433302071302896971705866272421802335987176750603909214232564221609958114431309898280828491881310459272437063137191694040699304517392301682550393897762284123405322456528030175980101901045181046020367031086301466700390744155551966594713908075404812360970512037017194099078579285526207678908600702637244709774095607255378900497252749311488925746169930258579744968312267931912954372715560302454645353073915290737798742234700081673534117012731161434899830234603340331724565664049387145053075543024976099311444313360741215176333503631529546264458122093608458201468653365679956864835042577578548167349353170506497872571969342728390938540238279292778179692408884358137965138545245238774797036619577122469721633178948614275300808106871071026276168536721953770832285928983796973094505795856164550458180726698295929540331806274981754195856547869627641110495398385281845399464103770838564115557055430932708607873094470350815528030060268142221718405635275759071590440703651699310115246438364869612155747688449877231332518278624065119675240141543243881307533144490249483732033636926810781859340537339259885740653270085127545895733989990323830924814645509359355402425290929832276546013190409729344113044314206758814760757366345606461643580661496419018892482525410314095505429594374791280514391760185202260629404640142743404209109206859899985938813424764767107811155503167070583812446603653602264209958528208739340331884201335549055106056468355035815080045788765081510550116560443089072431932943281846844936794791799577947518496960236697022649301508405560169112004908357618599625130259384063611893032606064852096234408562015961047603840886019494250467580223749875532703986068229032413177724068606980891422891636815156218675119936941705827784308409394523723385171498384006219837794907941248467103134838665064113542935431439574457574284614977019149663564409137434748133888944921276775831923759151329924936804749834855420723450863960508005598390775491019355338040588520345530235805215552512339234423802398103853235385640948677011955902165747587799535183896849929416468218718401162931630616541802439804396358381085955742141753681990327879252723828308437266806974603148427115803732702104017287566545260760112402824312256488991311202493331349680524112811344632231626617195054670982235330718355601658067881268378592220602644051295936591529239872178569543429885310157651308203244719006225872929135931904515401003273362255701313423471460502854707167480961327229566628248398256025246274168167713285792260157502790121008398445851784231596222397311338695682654412649969047861385776235482592457713193717829932655147641576209095515417736035768462578159479220129372766580199664778836505131279545194982360957799889030756455335667703250582087157971540015401707134872217156000471029895508757033465254676861804439849210504538805856400626510525306891757790633994797971565253130784128000284608244799894153087087736586573900813848201567080401058066643257975299991864513008604827551932379677018658614172661390240665934425525854114326582941868291046396940484833260375221794168180295330051461386936540175771603245858024592579516546129160715310192838541044514161277705379079189578110137487463548468960353246010690141431949982103867010371188050994067963253117583830565484739305371122388816051507242436373171633292285299640678877866533612405462291746869835134879987890073196408846700595308155320860156977968078518319327900688258446713832620867589739498371451480620078508473625494410597783680215602824282854435466131786263138770908546563535045875996626800977952298277381159920435044203607642020578883156520498434132888601428799774472025462909220287552451148320854066831692512481372962588031616757777229477138762982617873593525484618934591350743635441013380329809834692186647662293172158663789207326574347479597292332329122924859028402330710220022345100463328738953444543358534717314775830263196676109875372360733990801569967517969960543383037820184544525593336405024474088606465305172677375427581251467063011469969282392109462969153415179943873688998740747287005896462311547130272324531113492035715916486269532377438035281786486910125983063028733262000011965708560159651268419172491338773926827184240236120197963925089784981184279420698153556908080635990696781469572612965310443990493641730558075911530595307150764691407515499106419566922771213832272849198934432915233225316453421663880250773370329728418471974628873002932898753676034632350594795953031542018052336690916340678168419681785160202276835971508724899526293537580538581785072131837110466757793774175083081664331999978034329778549083033930143969715601192856906518073764060826795555614156766189937631866461156232219522010946629086018107715448249708187771284852331685786163727246537901431362356049527327733173847591829030191059145083964608683707420022436989851591276443887555978829562350601882556209598587135135867786121951920355891270947848899209162853398013018836734026622200050352801695180136836279450766516309966411795381275885132521650521250709753981752565054299081359713269176453934375284897195791479620949513133463124492055307224648357219452197687745819203667074695293170710279787955445605667784757262158205334893737864031197133385363911680693086341627143912308644886026360819684311745758875246251201790546479390507141545578737658046837283497043345200782469473359424149263218774342960576738055395413047626932071876730501169605991845252710397744975839954949998288982822121520292505440846805355796203301425332557561565032033486934454572878225065863733415730444898361212949231696151393078095222429616770611606383773408209555517692873743575989574042539230041347668298528214361295087573673680939399780560118801900629847168671145354714171795342471445549869582518931707781986693642125078347416781018132212127177313053240980231371841911886198409416304433646554896173316584269719311654569741768794568968900965228054313078936477281021063231164214814424902193965605159999614428289377930769208142004440935208718052508512962384352896128896660817513858570528806879581936202211433921556265033718688249173031964689953083958141547056052913732560613546592354579234010975190120412823957294258079401623490222574526491638734949335060548334796196002316308763211754742540296633251494371439735556106256284013561772203386591237157756534698726023725660301447704024239461422307678287676034102984514927333312213171236939816636140890587851895298655067732603495032456180867307933835675832180851480482281108654622560695306621304466378398806279169688355215280800428319550668492757951579856502078526279531633858739321376165952356894050613628864263843883290465390424007435666525271920185302892828337078781679761706800612779545657019414796235091684058030673247900008895167183121923846840530730082025845761825951088767545602844204095666136525224563181568607457107422015014086121897537798495330107563175655943269073231718687418842806825126706737591714904247392505009107031032682796827466084634957926662717021993018878364178878839920344894905661488529723226509472605777942643781697516226166325505442457656640159933489101859842805603772173654577148903810561551285305949201583829198013818651280300779967018643786210826506793698430091905888507373039111765568188889618809993736782503565267531218539025882503375454807533970713683069737283455484314912319852222655038081629847470255895227240489799037081759947582293067710502063672352974346701801472458710843533897213481110328615678664826561540378003326351529272080787487418670960201736320000719164050836380751933203479307862803643289925951597309297680770787623848688063580092108306799634587225815582139683204896775268050461357602131037387071476172521596118141256906330982334427594696717420272562836684718309442744136542636615183531066542741082555080427066082386426109968885232362335426538883125699977852189105993152093073712663518785509896146728282039821402253440526842680347197526010767586056668780912318543783956594804436002246285639988575718748070065950745940350130421495985989293847021615163565964002943048114744404580191903870166708085827290857007195442584657570293168366181440067804207942389750743085642680902247863051372463815636353043645756847410044301445595332605932748661830796709115312678393667445213643977146890554992775128071717942785089385350694523935610518353750524556120269339577007021965390426852273780403324884339429027993486076943457185616781702379165780439750188527318475198193344385279128557394295916825603000568234029972096592127875153677616649908421266912609480360921269140121158620269868265974476522160233741049836064573286154656399241293395762867256216307909743665543811536416112376032452863260974690214770920967462786559671850731689938914400434203607000996022036222349663073514819335040349511167716755857542740469969995828077783085860646181229184200284691436651943629621933727671314844278542685841400832647586297983439785976718745294507527714117503661589181556034791285815063308732273208617438827367912671410752945732588890964177858255574309490527306018628459603731785594169377283041118676206131206701062341902929357422417647117979480948807249834978095933454215384708465418442542530650746346278284858880508973047304720135253418966482422819809582601522585548351671479678977112321454451133571407685953535873329188807945062847797013927415054733385056641020919364937330719214924134571260627528694637489856117747499580295808300385098664275634771423924209136544608060280708934185564282134042184105374466653180000863308254987566601844294019746967034659320725882109278287686227004637951837794144398142358634742546219352374853613810443501818773319463196545890937464528778509666663238227188790664928848340753922703093916159860147698687356224344947252012241074853223953875982606225695939205880191434862239588868356353419810049036773108366522881260756917317158801520722877948614940825237087263083341888505476122234216342707111676934761870541666457358296667474387177179771277063728914989323068932615913877508109835040814015108421224582850973803365179322894234283669620976300936121872709571415734627759627473930123520702927260175406050907818212230728626647174632014909282192205390012457573117463211489122464033130341154740687918516201595225763142990738678250250129140562468990202271510033832049453555357605099549033622602606554637449192272112545081258825874642567353034106537796857303737040274466764060843796914989153381066479813280392305976371201961797688166262928916297863869103312852145375313234011275050729686491620408878429035823767691947851449823713942867462207683631238562381384355173480195133519647015797640100274912724267165737156180757277261181263198517913516169677671953812474317414256403387505650124025301849627920539368186451493325797323497569046342611989968762905624990258435266834970442974888681656453513008070727089251968971292871259062115526526421176484627496342111873050672647152057377116089933189314706515300509506579001693736957223513624518926724451779180568181503067109224267604613896655366823817492957905479242477768884876548332670370231501080364663309105168455105432667422116437866205020254148988119953745566460818557008112553021005310597867613139409712211346030324202079893553980683250963485462619391578114594690725031072086645153760448151674481621147731673728154973223305711457157578247353550752622725882030206282131512042396931812235565162947967053161624307678069878768006611676014492664402136932987323770304973038571748644836815387392613803662691216536941681937243774267082115966854348713848489141257523722483083904014159772901104178202325514878656368493818531710515500183853941555324190804473036181644461398368262467740058315819008716984956330361764382922827791013713951665154627340450106310115985423130682680395985800163197548700201020705088995395343972834301471750283897127300078018967370176398907225998655329033600956379443851813032684277162440020287838970139111593258243546989087142698207874644108419638730483079298402223163518028752573115735198309999560027268181570834950836298712812821042353272917913797568055991042618894452804924113491384950157286971607383386908721459993761637051919245091772380911622057884234344279793030661811281128998224664944994984688032411690606854158736495173615212275614221730387936670932158069194982821356846503355737460695070448892694385347788640296226057449433468833059117418327347293050019095131750449792902945223468245987609214744343440498306119061346249906614998522394052780824237227221690930381740726583198658013344370309890075045140467127835998341230372141543206578342392972618604871321518694049736075849957631549199599753237423348950119080319473828408193156964333004125028765703806093976680041245812086824597455180036562869297007317906914316900165233085295102993745863886158672938049249866012061569348190612610243417517711893397158304860561622071726160790732417562966906179733558411598131017628284700740120857043205762182121613387129134984983487423880734388327360567411723905153732870120246650940954977004304398072106295884888407079844078132913298575111087616849941547033927167027727630891635050015744370167355030951952003621415800199290619819443694974929919922388160849708347655256218098604171628472283984045138867523138453210441266684346747014614937757143785620574975526262426070839379770808812191308791455162082095447628334172383472264650621243821788926684932295149626417652010727471709789644194242424530586817262144262356768862393675633361767992105566249485303173453285644696409026577136480566020982331664760268686267954832635361274446361529994547823444648935543254799067827896436864765256865977177742069540128361675681061846077539392778865255510634091260751998313117277272137711053112095871636864347127804272423358664610947363791223921561305503430538307980175108080263485788534831917467379666665891082063681021966217423715043843409309434834602559613520843625792160754923673595924329798857422628847530426841372031383831930993690313906744272625357289909445354617161328632018549239463262109209346876354899827120065020258511611834430515065030881384567630071638894623672143687239043087503009588024672925958584762267051319907572792139198350699864815573440876152092732393744292308938195522109781326450883685052905345247420106341095387596744622961037325198325162351525283529979294322266475429895161743603216120272291422227769636406523118895848046055637985098055450679581175447067930608832809533758183956100709618393323676531222838836816225942067559267889754414598269248067669354297354479139728463270177596550582198062977000911936166097991489704590246122780020429962145637433360537261020987627300560681850168027630043587464645488152004603912235890218960833742664819196813244693160082580112367244140686446241068456048453258905779221529684003454521551193466077460682987818370178109964950702846742003837799776135490980949778525733096814365975010475775733453799225058362356723094193991655932492921136355445473339407472094883724653431181366231310082510896122857162968628274964961651238457841096482920939189283142270807318524444370824899486607925291240468395403931205066060631676124094435735845610096323975078711174650961323161943142305687804113453619525633671005871199972301005740681320480878772665884432001521035424113821827825612989887282153162736547373415574123820719969038405827651421704839927410856834092838824613566331222277351489826804433634921984165121047480237820499176609840196114895468852185637967264164705772569649964039899519081419449675335446197411202666352988906456061772322216952295891762758645919038768001181009497952471708618572200512884550689042528852131141318031832679469513400172344161676041772599919786467717438022278651943398655547220210295600769942913185771041119472814535791152726697347192574589163223742916551666469685878970755848992011541526688222415117023179361847696014284990312382703468653515684690978245642646310427644062114272723880834218118417667220369495192052288639738917099765304811088068924445340351862862107725206143289481324716076539753713939933109128643505113576009971752766091503937648475290344716513368559182742068161779804983731182367019608023846918063099005785572629322213364846091645497839357525563491825970035406961535289775215937933170089365996670332168442802155237667299887194646816120843827247206428788202761901439097309301371798158055641381778269696148293555195463484141451506898079352340647587052728007013323123337809899964608537366996829466930731346342312968479512790321958642420129423908128074697717344049350608350057016208645537169753470783124342496539793951925548470610521224508548532814033501351295913675703671567217986516966494609696707394223054151081337839640964921373750400285908878150792494656963009479471086227651326896780904507329488654006882481759143244670937015107513403501022542442402297796097466165723762190016797289166065452035742506090661792467633884475984610078995764655994926809233100592612325912367625611637842749943025506698482703103746448662709048031620147115639632869855000739933585587049853629119131354989821876252666380094289459346036402166182464240261953500090179985415648646460371287256230464588883221121063728239472563956589957038363930283723603373649329894909265125274445698980994462539376871433960170802316512073119015176646580401233111258446863535196467435013600822927809412119963793060367606354671328198448305665139532462809527916071341052327589391516139792786164104148492589597965384930501656343192797731779276043523842031376807513391178687671378226411609041493683400581860523449947559245631602890428063625501412702557141815677344875476618725745559463523631368237911535037271354044014676859691042442182062452851843901267837052202926406525106795434081007254080466550310203985938610537116412466746610208958484930747906768549046162106212068651257086945943640864221556425267614988951572496564365458673869469583519726354693669354330126880799494771108141911293919078156906410643117532802095301708900295362360112018662795613433973412836204530822070455471911362647698445767471625870715532333770724398580742338383245324836878852584979520832688930876976394614654449829561536679523708074919399422093596386659795654528660185197100668989370016432956417508796923587073191892247191461668633391514812882347593906630714226508020710627886481573417069576364119896892001348841539864022808902960839611634704670325959257737925099555371790373895509844301725069659575956161190801812528299117280653708002935224239679918501347651785165854211982714603155143105276277211779819782821199716405711427288938521270044017792093511148078251525693059454448403868385131071002672118669472415544511766058985457416890046020177542588903188336166033385869703962795207200018681614159717080581403407068581013331064295257215309031151756346006865583238088744174987589688213829626658960194479449912358463329337191870424213263370388418968601984658102789236383722459422644073468853652799692161166701869617130150309062026954153290124226938667164322426680030749938176524662933049937191857009888046539753186650382068031767565483116604317517136945803681203664441705383816212782551206460619452326349558732687935391676526276051685181513989106648198529024396796966157077804167382530343326054076803480725961714637236625430431822429793290249643958854430628151408368815084482804339511221296326614836073741361714958688968339132643345655266257597863406240118974041090022678866108051743076315421451658994800494288516920552083625033207531861328129644491538836288850894417733374078170858215928170795952780247275872614960781945161620341510323652350847502611875302974819553851919578864306330552578681441717097696509797237345136381902339156498963531042420080028994700297831268344604480816504116108487579529831376268586727087346228290582404836584346994115706637418639912397686513894364039742030075411020704012802270900641090561868429778592461280665523706524131535675465536538086083359582927424570947910712058411488006773547120593683324744944973563029613381077967952411443869280173420279189824500185133747385752737570570832728171265677157884055845702351717685193803341886282795117906819900402990351377841583408828464745972920044299424124340159828708990557414725855667522782246376011945373728813548759115452551943445106942491907428704860216026942768146995866270996517001087729818773671752615374155550237373151616164622163061009627511203706412780200932578997014635502688583982160308276053358572046564448063776610654082979306985821884832589916112626272476481157446264484192762165961495029719461733860152316974134195873638549652956608010231464249881463071039853112129557479391941458226644723591888832126203716385175821743283841584400989876518127774042046870703739624914815014819029458198633057777971847709033625337191353395782891261354051182766402366171059427993991607616280072436345701337218768590356638847454816301202318931681191321472737767766301761555649166254854553751227903339996545623067835383096210463169714399322246408275553731248388578406519555491918560803008208179834958818935331086359134462971743100454630628675566276995758623584107953897090390698874298054586761228470664065792429306551785705208192786675349825339480068207969895634734961446859505700244476577999312513007716263637366388549825722927266148129981762916095867622993372124334042496363864919305201608845575818857871254672582137201869472892552994128731567331996882233463616098150261470217747942530699974622832724443261642544325939815759283598142072819716866454467168536843151423498498725323668261840187348039015537356777511851129736761916504571126302638825534101852091047392700633085797073477912670146263318364278987339319135773377492914947628211934169522454006103625595074977802739925832892087586606480091271700574321553941920874132722872183716910944851729470477528858279561988237517364542311531110821137537588440825961800909382276733846378510538384552883443761636441978870463414627614736073001428517821450142309396082379559053245448653523096585363504001778942488483277398882886100513390150195813133998236525933720047160967747924797212756250670018030814849895274777814787846910640445249529301973888301866293010951877049590058995430998463934582024406248407312331753266999122074223977817889901450780518248223332263177284217577269674051965965081135015259726992438052789925671418724013494502989953977353794614565197739394512812059805445944118998020352582237278068099045551444626420594207718685385416591306571432457193137006990949560441341172392105706925065736866513334273788533917704544149319714455519884584546876541473528224088638503829170626945549108128435695672023929288294542900942574400617754004676040383961513425592492003020654268695469417382311802354055727847439730924248381923387449832904446265416088018708424782208508907016271707595778366579549440180780471295350708306894363214167751579250790312626467177464063639319795623386158848851503404012650917345922386815334624533093352354796568020083096106191071326350726837513335940580636562333643235781189643563798602590731653526596543064576439762560391665529060627165059531858816322389845807355263879902352801914352918899590207839769350645798348170953821491123751299523767119333650264098442225823894394210989294814120393646626720484807366715579712182798928824930016843908907533036052776256468385735159561627947970051661291873245494137888545274819799222869362360739704903015812723530230764456461607218806345031358308092855569728575965129917394186366147360304048677006602954505988851096880171973386337551812938429316502995497563884070541474165790887476764029879615648644529793057287615401718011415466008660589167760073948319043154045200348883021906845029405285518959284112651260238967897085424166304097635281302756041428022061248157175345047977243013691295731857899591714026449860442368823215084984494279074670872148102347936930561901013935723301612052787481792475407081096355057071066934481715667935755270606630597293945082583871097716792695129402712014865713192179105590105987544573541291946057067096017699082321122455050160753201678951569660621225002860299215612957401136377805426010671792434080111210060879763482850037313549618782471755106660780660826505375159822481700290511295178248927417565464914636286288657368467129736961852523119790609768128799849227624318682373698140054254509131666646767292943017195546218346145655250973715667535569879903027622536793111451827213441566547667733341282526878376102569948421914722607623782688715495614853022783350939594270148921744630578372844590590637852875769599535738016194603957483047584972844962522001948217530835304931162133892564429031334393363757485455640307611213088192312921159952900455342013332859615019867517853382967290720376341424821771007731089743170264812300680722145368400400157712704943446386327999590573368390445266818660749128754192516665532459881114356768055392190310113055287017485704912874849904982754827658468435329595974419455357717641125764806276224432460948740261372512639570325979482257329863214275627732704338423455599054259702035554486508410392992610601711720073447844606757570446506127049047610340000492466492143348602232096240707490591714677184317545579590721934559763235392838153233040052230054022567685625859074064918524872144137407868410057274797576186532836510476386189674379460955437872607615778839966122245986192675534899856921945983297736630127524578204437347910883186308308693221450449255803691590067249800258534669647509807242803839249985815788550057926892769185300230580136826362508931596912504651328970736101861656303743224553801058930699406719249351988498151799892942752401746469762021570900390743392455829885789620319926137435876111743841030016123634108999014545085413466662713337300364472043034291004018304751028349569272787465676371461418545072390554073518561574691425497725748159679206954042900778510291640292171073105953623189516569394973175602005849346013278466876303446584348147844890847364478514184279439985489200984255243029466038823035476151372407754190180024977305471694270356040933493542662748187961705937907426982808703892811605132471862354743891973202177343110265844754145910123396417936674831014538784575735368726514977720562232627541055720642498138058475859978681644572709012352214402894437428337421914453054262442136083709497460771772174277391296959091689226035715196820308556431244343323494326562528698075848781415219370802847137303181947211304594716926557697818930789754710146617122750725084896147600192646665972688943433288713947153059572737047318687338614716697996117012269301389526471405930249102520479600742455893429667927576965974909072073549839070069792333710873064269371713205957716718052721641128014234884946826666447950277090900533514663320655546194533280119073859913233634944686074386911470188058723563746391883236940244416006630250909612924763201976972795337818293460852028662411323831029549506067601488768781351028644617518856493429639443185874407311352145300045471324661661187291004844006200643614206156557841763640555664273374627846949728603404138213889608371727808630719865287700411924572702622385801313996568138174369108245519654506849216790872004160868086077636190498742382140641766453317350323897314637955671425629699064092292192840433518929993176815640032805607034286662580201095931659099324703212261236507264664838799362975898232426662324653478841135168078215094868547922679330977568965012491652468854997234542324485745336302521084289483736556748506001459451573599773948234021765881155359830491243124011943725579846788891238072968581501339852525509775431957977673433798628104192296613375995881392141897144642395980575935535841857106468603258538933939215515187106105402922978993606374311672838339670966719914564649711687859069157352180938203266997393982576084160100760473060068739731817455847743390034923654000068926218959176121420075851958987483176468867144574437835370950693109717053253038203456441409526252415301348991811679304731016748206894220244480206706688156086467717210509707880764333862060153183048330150955391481948542678795846416356843507880140347179305198407058873739906329717814693174870776250970303404036485772795198332065327616265861676329580625561065872398898507107593062213204336278445399371160789578994717327734747077993347559468461433861971015667233499171502758698999877639717014832009603683195632359076232161819009713557472167860914943952663650160696919299679095598555029254060064578659912828391786217189736729852593784178036761948267192545808594929366337652289875402742649975603044931905682445882213430832465943745663462535345612020704378408231428464887911876535776695581188888730442769717389006847639297612512919707573872454934454891536585329417540642004495529168625815192295768084478165432157370408216643704353506363703186296067417358797341062872251585557388364599070288317542170773420847655215616601249184003181482284657843292289250677216699782760764669902109408866168303389222111515167572140489438372738465115955337463722069821125081495189387630466413157501141410853314143848525143843053590485109834826125048050135108909635229356928976898777405975143428712490418771721223093600843228411459051525385379100749853091392259483721660557354864896316511814279494288481917780286690898118128578178604642919278245249649201615731484740680859917624561237095676393353019409659532679678077606189981234447673744158100453835865827127515584839353345961259032696604566221555346759395901066455878870700115119226059730816006279707469865137096057324556386115152160097378140572158496667142133236482752674341921589580780807387314785361478053979206188080272199252435744021064141136514937347661377602880671970571645569439550730242977500298318160467294346391919731698475682993218485448049878737059760778450389373283603083642881860081800337991633521786513613431492906737161793097247279877318158382438380623706778662723619835211025286555895588073578701670888850330947693609863901199611054277709318467135525948802417942478984892363583068280320295975147999273857350472676028860646277865782414985488192589315737998466434199450297344188409402063039776335318730015052232426848504841939274184979762835712982606472520332571775198018888021549428815035306855515138690006566130208380472797115647870324716447944831240158292266305331304944739910158533543157600272783328075313775270604258517093947194620709695410818180121833965050535951477677465796438491781792544944731842242820633949628303718061064064459681014260088757775402373391580574937002528332485565343959540110738843110647159890574019270948224035426929172984498295030787728341670074229562954506955672065748901601063873466928282284278162549261037974713257624635804682158630935971956941702332590272355985762625464255969865622451891251510832549005671186754152630850568567290215030460163723264042045735870946339025412441173070147243994796579681331878554294680170271172638782468905470038045216043906950943691414240752721547249623775916815776027127521568209818922620065749439556644970668846801663082796633389587116880685558246076926302841619270255736265800823946520436330683144423283350521569386029071620084840594171203984821456789161414464423287429297202281420831307938786127994812154662978316397741526052776386678394605343854028677314393984284061823813660339842105068232077837513954990018801084173488188128470744399143511267966038472455223802706588172407707950264236545411175539092486226163169352666127012739609839838848169383152937101216245768161021630704346194982427526312511557569609321028946315165098216251131864625132919931146244806195534168477505584454891449357420496366895569079937393149465913733202999751550208365407768379876640265251038119125414297567901511300613924200980931520566640865163174615912260791460156831631683397564853934857902522837786124627765462730073043835011825330899694803177708267968412953464171377339368947490817106697860223122764375679395858268704810482652312156027845954340553203833427268254754581132052314648155773248506571960113910212508545209451237311972252491332298681974095150977616234189439107575560108456804836938977753826689280449793142965434812250345382866365963920241530690619819392918347287886822930974742716516006477866397806051604625376864967903344860257921893266943028151921319698731160383758870309616024464160183271495312565230214930552393981024553521593026036086444984407445555699354946559220762978844077410957867553322814999107386018576095596779118686593094596673935737348861827059929361513974408209276043505751615619054571755459203355501124531965870836127401095937977396192040875135679013470826181226944084902652633297154887673046601276514671954247855138864498082086573666617948843695184791143689694828515543575381250420390771779171547452632226012381388095650098991899439792655697470225060980108677913540254485154009200437632061872658581127848897027391874996986326738902879024103027160747630937601891716098029118482359412716612397064797409341265549837436568205833583664930265832688783079630868836760616642384570990063310449908020849897495154688086837242647936291805697988018889013581964695173750289005769469662759982294706657614682314171781079137944396534850449154886646742880163286540832987773538704825687913474336311339244996555824330199046635177393751587850246361823522791308448780811585700494928846107018696080664426489569277324135263728038536490839480973880844057051183509498660199895817151772331920004697687644113008271140816781008461131539387245189671636235960617295643737593397698080663246600122217296651338424300853589948501532294701705885115418157541480293356882218197551500342415821487885593747896810737072392002928860547624721681931393832416285253075065797781495822930308496391848132424133038262173073659488776917747235866600133406171273487611349388164159872230023864124631362989765379611382100853056695993292004022936122597582325792644717656712695905204201183775125504503106878717422940279712208839537898623788268283622759169102986723066471896908628534114068169967049041870035906360389080852512562480889830069281711695856874121666269994863132644230046585349510459751315098810037640741647858196795523571632050613723491466358795550046462886797612510365649627703906947653654206421907796545490284792800378554007476172189444805216494956991674988738674824912049184362313332403853805029629568102880609744495161535816413831843584521305878764819095704548186388819989188085423771761358029514323507883343752745354637693637345919421882950187188986661621417019373839064771047922627651650660163798815790651414207205324428907671834992809203450289995166470880042045446507249174268736217504778697595435564616862921553656121541735689402861264197286238886865752583410240628529944971109479379621207132237921079742579034819752233987767641256079052805220706466440696604796136551496932384037809616076995126936101913836877033806736715165702592567627755633783630143818848784284030151000483756473163384391330200681236806610742522240460714614269901701392876594466912011779018621471951221141414268978083456133618041334875568440261206453615618481237662999420227130212261526888001314389403146105679051301536642318611421666691513513746646083612621523935580624621951391429238137990289315859436696931819831480326486054333368910142183842581122723795947985757198540414254545840060687803554095574495079485219448988348503640018407269084877830795174674359739537730551843147710414686247489908040964535357119564705340137643192148700232322610764740380911560652416256978056882507679542010221228545290889458386730788599547436742118565684120337670072642337975745239536259645373696773680746333159273893784736992319062969930927840464382591261585066873411587644663892818527466069923477343041370297457948401507316450806395927026313564428582571727741829809193406604257691519069351766515865309904876792124392230070589238196724441630693208096819936670372820585252729498617054114651469471251985992481395156513691288959774590501447165015477918693473698050841029404292576489229367411376289490976867279984978240283757603380321287356730920658075307487014518809139328346799975826445257762208492898611782856468662456409815467315333657085997026753490529537903786472526681244506042418087291553486145145435900679089710180803740292634660902174602412576282921950103811797132421843582657168182536594920514125210483372627936656009666493909934410056240754706833745798318681331465818807658507841524521389402663532308810848808441863547333583089671993956226135648217951718393181018720595532420934129900542428451324275180167154488066867922205251349030983112477298052188120688784566650502231163750075053345992491963127952528808632001122082336019978338827732266157518154297625606368285791776690942434538749313135386213689702257790439439868228369969139827371657071251155448283741335050452111211849807254143352890013870528368620671210647029130309640005094476181317735878828887040055698396474275310240524571018160304231259891388435877571715302051929951271006345130351830967831363536382290326244028767227414385961976147797931350324078474471824193213167162902206740923202437680091337783535303623952258331290218141074837213378376966964852361508007146706347693343914035217573895398184934275728929247424085471688584184636811319617403124237716708890374642626633327806660385134815045649005638137920897055493684790709190783274505882955405635097321080763229283296768608013093855192476034417238838520253690542245960894584337511766448122057036846334503652714721528963647009631576727663069748608244547155608061983474393042797233767380438491629147785214315297987291485464086219454248874127779449350284157185651573000615819397295116337959581483616034011450206668817505814210006057503442658380117498566220637234279675327198208477023265713911247072594534101167980037830090164590495883416821358751589113465854314082362935625728562341000459001365440291929260980727029989070344868365579257778433681045771455087357984025320205411978042219342947389697918926830678426728397405498907278770274461157294728420741298701063911268444075757335614139108797267364492188183600702388678892789702769706848305080482846387686510739392393420533334236992621683879391625204152836877404520111049780460507942442522029950214197392814942785972451716150735213290111754434379155561633620077988064775584023619104676051746477174138209486419794735106437666926698207556148326077042481222995535611892109032062748631943837620920914144006031406124631562060111795913809889186129664797751027689026312853751555905299406634684581271331639910446469318084457310915084184373032736507746063023780796798660194441749447490801064406850803685499729303519575601412651044441218560545698076365095812196963679628235393228218075673098834124716254042606773180653769094777929469667172560677198544351176455215412759695843467408857894074895490376031506791312197552395237628521155240612510766694292341232408798088789596559944483689136063110075476254754359901223843043286760916091440950453137543282583126089596749040988626271817475605649232095419011678918123482195016958120462256264547729319820565100282534781047740586877790643837120839427144327156681983046703736303849804029151057791511335446550841201528112478538098564026012640044484987166311187897124035414143952571402319794163316669341931511453415740981717128181774869055013184486577924963249651931399382168524700400533519977691021721726955854870929949297890206784975967878273065821379359922620871932297027632724336917198010266009813195692783898930010387853452803957442452901305300539167673968917772830414442052041575814666573092388307667118940239801041533694756354509449327469998711462208527292004130344147265427678069731237405224856925929982631186045560693503123659405587202517870485647628186846971284913913483142187808472096797071989263117222124261959676474534874663192607172880859481493872783826653890164733400950127051073361125974533331418409854326104700170241751730214856993152712452712813277401678658059551808899344993428779543282019598773937828995567083936872868191999257218597227668364532004369053557832990206031746849003549649431749921512546504673340946602854474628185461154759053738951490697598966122618402074181617930413287744391614183968129798284612031533528049516500316297535424760253505097715706904190481840473237003416109186747533877919339292034733818312825173772787677607166104279638159113769207228131575545504651860611436253164275638563851742773264217606743093030575347262935462556568500698911402422726428086635516277567921108403264760927810545993406191748509774584489380491092521118514405622092160914299094032296829860246878485181084117496040657340638213164480954291591144254581535539867033397367410150108741562553003643962069173901117702728316882454384636843399098767621236877157515844055450304475275606376218057898139499774406887410235018030742749162294383563510180891583473124339695532012906987724142356041242122840935595205137375064742474355113135365808229681062211156678427991258191020111473384559801056169278871986140417337546972865798577486678227880159762691209887552506558569776511014570196519127180823879341152902270669337919123603397125065136226182207701401515845966831648953197902603770060798051205526887901151450130195952976202668260445754841846007445276350066220782734392023212783956780516011700596751715420522322907502245434145992665983040928736649492046581075548217839206649321587753542176354204349053310874334576218947202779404562877040541069550854443073330789801396702100151038150371923646659720129401790687368398534567443460771147512487946693861807647362713527222693028251768993087436729351982527752360516770839997579313218887150878897108038615184913609963991151056216934682567218922405862382800992480609033973185164643921775119097984819560210961513228535323128091239245725062785006573481966719098943476119921678926491208937600511020912820442074135196251971282049044611042069364565630684430762682231730581135589911008459667222717850718962895246308027525157293128656858431918283446007066537979970563747248127262713270897223540077859885080678569014072596065628107644941660963154263257220728080276214947503740168050956829583770418115975486451747643044001546010996095074819309154421736715866943954919782504093339793915263098607480305936519641826422937196182081875328774000047078661315621834902024157169729289248606566175080346181656413218396151041640490746371052498676548168166298015410462825134931742956037098936744734089433453614661395636061687157984195524195929473665981007675833083593232334829962959701590559343946941922470541416601948527382737945032776220753651520010055306369024695436346147481605368228552251715104996728714188904301711370793765929071619092292179140605821524564086530971728228520112421814275043091077741691310295657341062587328897241689937004314772719924446962072890857666094824486817697961274151716053246602189213077003705945107798090545793285256679654683125933298731554056591802398503039376723394512130571615852072317639074792277388783746796234166733859108859590208910122653624928315684492836845649891472291990069137856345368691886963022115405499218669058472345830056366125656723148686883010157949346876378679103404234823171086131848357283966520562197743180932144521675489900830416651122456899586943332392357546994535399759460047827640999709789097523597840184835178161490550126039376667341809387214451256147904082867720122628653060015107224539673392564511127174352665905416587267689806734357817465454412221363822132013019434015862883170387136924075485904158701805275476798841636513079952948766207374826398425099407170101492421032345622843299688083252837004284775403769975912356409854412625870243329399566922364204692377349183661864652294115896575219805364356449580228949224269061860702806980212768371826567085963272458047927594248595912319520529162881002805949870471235114255833977357523228153825507819401313073954207151358056981991806239777111425851289751350291052646910739049945072025992147604062642923058377083206688307324359502988629676469280744822956842519881201623152010549452831923338582541515755532445775476980943632988168949862683927581059772639720629413456852516065331061746867950897118469301040536858793978203777652130267680517423701232535608507568379022506465256926639029346337097360487150199987520870249919709168865895107677496135534233911080521030573347236000606203479742300286518267092107934616848652936105320174330821658019352967389191193409271814657080852164045366312186531840264686863811685940535465204909887090377580487828293340705852143547308379893934158352468305185342334893787517494625323530446606946375022357376033985815800741432764035139627452362838332502270210124603707733752263186448150069144063194507384565190283445758883936926717995354866376626414610015146608504427191467536232722141440897759202896298934287322607117236182275257121144923186727501464391063708821749883715889656312734083419188426227048228014057307375959679278877848014158859645667509546499154958422615136906876872957157284501359998306616326826946060113580737001468090969282260171720324772781227957525852232068303653451945676330364237003925498904936516797164892700316045153136527548339778657904226848198076469790808141277715645748396303055346486838018751479085035676474230545261262468139795476871654737019386032087426756552669117148631326724196051242545003821481631824917992052944160880142379362835357726374608280485895674125605369081866189379238117864342359315329622961596348045344306744857021459563787943815182138228310276547847069381868589018730518160853713910944242537681985387652888404676756296560533462227406180070247336810427886626741216803904597982023970474544833019597093170779701809934722469899025422817121435860581683045961808985679907457683750816566231095729854577575878435253708871770793000033930475549306043952097355282081372005808245966029445409495738966183290696677496949570266048916324258233261431685871980020243974241596628041937050781594938390836833770466948151486622682802370008475602318738686771365092582182653282829644667977762947872128194188805860700636129464304084856504840210353418024091177313706250823301831885004552716976395853491944540232174929103261423533909324517598304809178052964992892097750546442545386112275985410508978331569112785709093905378519424778403138029197244174287624736141425125294047531095977047511624855993880064068989088223316099246850729113886270171801429156359248407155474587854759362455249856711737090036560997529036693815523927772042994868779621458543008842213441392371233087695283500791024114117757584462592228060763579788023672152193420853842002739263542009564391623671663595604875358041361566628368571575259228808426879124570767649022744245473223995767114863000453129677787964827351744267362344007684550208486170039759151588573412910001495749656506629327549803321605464418725774799795542895882372854933243072593987369839079908479716575984953848043659085593612416901066985820465667627170791505382282134981482407927041617365970830574685156884419089260952873918552412966726140150270165091501623713197094133739687497599022180119198134196249212386057390228253758386983109072284458004955625932280106754817450350209964724667118872252072891058537450986170315185978416392850768929172207497655400937275914811136350442973325450596559461127613686160166822666055178298501164735062452412117965603545561375986753076919487169727679013358347090184379291804425848612589683487283790447771277187254001490054567017682215028047590032130082192941270848175077137423573125352980648351119947859896145009248589669605541705537183849423966806715276869932862752205482136475262160972483048171369275576732771063158531708544282065878764972965248294357573625085178485234836705886657076077904829486412704032392104788435188436611510416801543278342876615916511701915323279847879192999296817975999587282265069465727010686649885992204522627118801265409830662953694086361147307226565899948076410789337695801514415730080410878409098852423331346273965817687548472482429779744885381060607842052814573288142511963375932569609544481635184434783701566900571462005778722296604523378521967670845464648653960234662521175069130994028342666884860758568858878417476560882405257113333521972553188587360294014730791258619180836398324356661463706652900759490715232339116110011689973600210861721658505128827176435267737205271764909759544436537652177752798665415557267843830831606390378633644552810487227487257539244144341229214303091738955851962529936693130734484969706908457601354667295662629175342013937523230053931877492819090036806867787854447102058867251959923936982559864624320410321693165762238698075668789293709897663929736190386726134411633894099429570957519444592680496544720747389913586995150052801233551844724469416639585699313913216686213566722257313813672572740842341235315938789681526496372632553220224393434895115107958384971616794732092845738190065551053309536087490083292788806027866298063249996589250670558585719163585890421156633312543696163656382875717127743288963106612742837252913582026255267155775515833138902346297493072748685916485631461208896927390476776817579107218539885855311130319441124943995013142883396152132105524648597807973191563500120355770599341943464309250175001463524666138413384839191971889985446474581687027786664181743030413991736188068086346828825781090328578192242766751706395161531673472209668113970730327696131150836852436420546309758198789833623194781030524134314776104950485956700153534227971038190308667487345228142672065098730402982075931953785708928440320940373304107400532922820616888167357211841042812012241118406149480662988586170932251049762551697037319222319190022785973172977794199493199064362672653812103644480663556571152230386764016145982991499464600657165584103231620487279194699297578367992776968683846400666296465614476362237358084911560201487029140326208702012328476254510723330634845577666179879693395406221930798331189794953951495961127352694837977870073145149215372048200062442048757453646554476911595426884086412429731482146616485585240862609158243517910616352935261797740477007291309672343702168762696927744041712468982742131889867667185184875240598494441192466701763010858301406702949334483757305819342462301697536563188114903825649671978979754620510843467972564226096370919529995970063644007982477046660905624708361704425059306212777556077095721059170929935444910183595304670051243912280668844966655593472466939638678453822132053849940273674473173297763153360181451350474487339212271376746538371740842276823333700140017996764332600046593398633164723208699129329734693924251231261364850183306075293170488151972298147697265486462910140903623121327065474212300442652096005545731704890860958513104426561667228052473849053756261577206758194528569680643211521264292054129733719865575963175387943500781478830667716605643865687949090719110497949286317698791339038502915776136749813421434340594325960304189882303496178178755464041892470072651160352901540387447452992005747305972324944119947570140308633314703361044204845945242475746483925770955003343196241186265350015854614012753789006278660936389971995737760105051121934484613674202941452152311663535787994468138159564998719070934961271876551070030012823960626713275137993739094608225357586764001670965006271393503112829712697486182026680962273873920597919537294332374361463615844864747864242494451904711459013596090612507353181304762423075375172864081373260014013321343024377794143886877516131127760413952276345258115031102572480249383201981480434903906342771992586760236736033927342614400154933453500721712726427551398504236149127770712649599669667289647699307587960490835121293382664969592337068708480375325297934578751319205460609915598435985234606807547512063583427676553091527667262436431474123360835610150992648710314599280246465768390306987453403506442134119725026067295912218919535986744402776811683980146422331362916022670627116309629713610245054834296700995126403987109745166863633113255399117043170377086350253359099156464664200875688110834284361440330783796641668460048728460095984015331289638107933507116025974396957059972464439329336969562724490499851290375311374424929862733031764440025636148447369272400834175658548677545263664449649855102640565670524068341149065605938792538810352575014983871684057035850286446752570482390329496827385328139172510642428117569912591931540030827787784400337532937035407442233233757595181834007168723185241603910480237523486730079565302798408345746236990004001085386096669008721994997990034957689388925145265979131324304857281470947376213082875056571088044270143379178508515349835126419373108850732083867995237155497256476719380711174120464934830901295400950166609773228319787404560321809473659321976070421152251624421273230189968079845006126390858528265094593627143342339787515148029672195351706148349603250847579000183116158623121186395999978751115366718427099480105149105270471959565230722633498375495516863851059132998012633190455642253112133381185748101897798115007216829836398681448385829357320902204207483692191559232617657881172999121075450263234544436171179134528975053666239054834860113129808611183179746559972799704677351316414991606386567565190845257045052826449564405480306331482101000159222014028785618757842408101583793131801081496796010807598513267652753230286253930618406042489462046102129959240041063668842671382830089638565492058531390435070600779145101222170840215262244891052136598228680853372122310904382937311151771539505382026823805877440476210635789827650920665424499380265957129607999417872018199198305933953999046514239073267912287282829334615649783546689546960912568779865730751500693613580163695314605426033461271849718047922133887682755225881143809693421814300766582050182855693889903400522884145519968608629603436931105254919829487564530400131145897775226732243899864350819444012363732349571571937355228139521870170845825549385627359487686964819268279827955489756815946214770686064526972681168745435012477737049621773941954817701619275125404996571429660869938953380432820152222590797920106553358494425559456678999629236349591429279044808372996336539274237464937718516755360189062031339219572170701120756964998531394050520219188215011466603262121893247338223927248618942293464951123535492351026069517671082023729078953744865650681395269720165692210022637966576052388257285957341270294318990878974775763405071798830842866800222585255715541087562892875436125505273974665819955422415947549124698902896831941230760433731227591919402960742212927462263018844636483218072623836629096992428571558300679109679032574830616333090235324520089203559604553443073252593031706971075932726944282288862315305639763041676610332571643261482694176208375073245029651704626427890199771159657386324081195359767551583349131631952536987150167304901130903775705568021302341392061565213417986302459437698265799580198586829020711800196191547432574105358281788832057675372904985108841923231881520113641732567937899541902999477232850805829568356956335388087242856326111537799960090280073924758410569590092130853955173292128642484305867558257818360224104939987837780911291074877503394463375650735682582154519220340746577422067423426827190482986967457500970225874880951094607020939045659604637561536266527783007415486956439044297452472474967472442408465087147119641037529442425806176925646090496969300617241180203719709476888548488638698214698264249755805412488113504502470021210729481076709347837810223551141063103165343640173483956740375754909481687187850010088102033009195895049447973188531895208720341860233229721837102833452190906649940850276942944536038598096058211172686485436060490596877637268081051366142276733879193590548636272182201782634311288839522476667623112598615109271016433038515343117923353525344231252788986978083294633707276898892706963838739562214591318763163898484883493053807771350923775829867631376982914676706938606531519526083224212150270710454598275786485326995780117864156970771312555187448421758529526866357625227957367168685175307420592552406296250513979266626326209508153974047299515675829064730127206250255601652141680312466597831948578740286701338452426738930884093637129729916359902248588709375339545067443231832950807492295553094357981223620754530235437548264764928949318510631943764089769364073650499958217737042692789568269562833710405688862015148457465763851655828139957511857640760328489430249893374375689917189201946151080719516604145874490021356017818006041521518102464028505505911425039366938012102509492303286325540084233283833336827903899454889096777560947076010428462375689162606245281602968227103184580846590931752712665800413438643328659034085703840905166998600823397103780638138743674895235965092293143870308334050529217965612366204043764068736181141697389765374872633925993747913414120193293690228129674789990898594083764768823384080436395827373180967147689903599145147728228213889384792440609323517384543639425534767450492082209663552306260666356466056790146452268368506035335845800644256622172466575696363161773508000280721068184620424820291109824270816847379908340344482702881923860136375704338968524628294962435251973099359758915968075365044893709042527847416780181274586567606631887742901072208243975354594885262534409358246558101520684173417129223054195580852921828472752409469417657826403104637881535886536631861402218284246096141868118662751360658381598080058284803523687518608763963803035778746118970243926209604680243125650630698752573377433145379806538647194978112552990783249534638137792097971515851176785233824004822529553518963652404884329213486842434614890647068562607651630168023235252972141807633621427110721722102678459068058402287853284365561777671794613375175479700069847223368604421263465769408714179818793928814353075527734823432459014704558843663042405198827583994305265521094138958452718939520102054535210942409282028291093185950938196605362166128425440587628099400054511383833018657132981292344489893111579954066821536922094011277178088825407558096476913240824112274799211543496359842116594491268600217722620255009780828281341315367408301416082000961081442872229276790653902465423836748460502858153534295343980295268000282623144888059539211538040352659661272428908483775550017725705537054168185337092154860712819888466805044721852227129948150124255161968022428747010722849256792359022612963037630588545461691276676779405303131848038915515929420269145339222426565447059748878411655720669733970859565812525595383215996249523645064227304618393462216600075639746059389968841266472273179798116095671809505986566491437169448672218791473234569315874230756960796459347876311683320480848745246988379424649261794308033019246187149255737369116687601508393184661057093272267851416336738397317723653836454035998494522671986888691017874027578960539780034433413026465821320108806490529289729966858318122257677364489726644540177335244111348142563622606090702141943278866655112974801944424767717049880139442999139019194572264471063106942951386404975422557470055140364861198976104420553229369220637535127056814081535488050525012137909009878307803989169139384374271625169274609885891125820530489280114353286465678631473115290337296597927922596698222466424963193174302068815730596598108883292217987142281917612591585629557555193414902091712129953231515893969261764039783572770052279057359152364707796608182239877948351836127032165346884406835076280194375884384604228558431573490319152070662693284082392309719665158589095223398375793064561671196441380468759357786075005280570906182875892106865356129618016161801174410152589201383248941504619126512709247808640455968319200552814291246795118932361911192934478163322761671059512545720604110219826259940454364290498685076083280186756655303237878191819796838110907086331304410476771696156249073472225734975629077361375487408212636821938762597265832620915327526117118511333513166057288267229575392179588226003352706103192112264845747773532354162034773476027536574453221978526328112224221293924507546147927037765942137099010347282322723179038749859511806828142448920281776982488716813187368681504314867124337611145311856228012818759451151523760549385325548719873563659697278500163182223283817180220955222788885670561085775177461548704458933621660973651447573199261412873975441628633594601953944121939105033364658033945691573444604990104945378599022238742047418242382906186986025585234770821458159829470449571475928948179595760884288395461526472256625307241654214264322467474544088314085953114297124179911318629745028794123880180544225645577277087859339323800958803335590260776250999372024629207206026542936875022950364008246175767109536192642197354318226078309645157408379071785653220623583415202103975480436695983209882891651784204526419498383563651520897540413601539071129455813689769110534378023089939637601062462622171914116130191087294452423354754090364952805412513795838309365119293939392024441527794077601854787720705828256673642220577659751352282635689479574598220898948700963458273368426209372413539955555495242530765432948406879908759049775267977773504385880622150836694279521410809669922410475119947838684335391614818227176446717996973966078948892036097242689657567152037320339495469700187520111978421674881762492749407544923839844854265554827354850837578836019084517128461577605254887669209195334628799750233554627419813080520066030910187036215457653333976186039105615819127538309290601425850469577788387288894772948592000191756794701669080809837611437361440918710735792065350266106245689435338612981243092783768209848296106335789124692391665465820976152483495346423884630255720051530037600885221597617583031338128891031940232361363284070052531188934672336632628312812090555615000905798143788312877422515873319267452317849138818140249439357040257446580870927239190320656586442014938074556972690873936548900283655225390260913357067936500087986055458343581328559337179822091616692259004038676277223463475882794407212153963677390776913496493610471923872774450011441330580082388377950696677489688997779729518847807626578969636981121115993474249461062753889345333667659076488402785549390119572085924695221971806698631194377892466074177306898682181388290636377500306877114633306850666393178085126413325302874067570335096901051829191495701784268598639110440112972606026877933370172891014636613699836669352464831141011889243004429126094678583292502617677192527264255412895232006305025108515680831863204663555903884818446590462937037971843616028614162273717767153976032135858409450055182961250821215073778910183257386897055500051041135224586846090650564544740946501275297312505665512955447169344621569832103266805408429186372892889796642150738856894207307583866258314665698848379386527770078440299455691567833407367343661309501607110547908465184493072353294854777872540660790179392903154829377066439823271109508344799519028139639066689780870157687262183060350068984398160951510725762159711224902366822925448445899101441150913326233045219040046025199103189275107964302121167949350563721682971743191370204621778771046200701381684420461479438512338611401587044285231977916077695575497467511887584674527283315650852218064524198814547136710305037467821089194959244455837852368433020961575822560225813472425892353550226747719464167290271144714071804930687181353654386456529911258929800474088262923373118442032581891073896239783502941140567282744321870960726439063364492370082174819513587436334907373154448963680667896236475858169259769454604309879932587630067450057502365125686338379734770644241782843396251985153538287261771148649927558016145392768650841381427989786982611629976247109972551596771694802216223408010380886117928462340786831389966575373081258773441347938813710291775472839185323405135447145166251683259939598119908551980335719365160223968180297520417432198491245561066383044859016832683140140542068909741344545867540166291158062760346301774598780931058589454111682804534148368515160715147623998595411252184310856339059352178453353951264242348575333481577029053124005115354985716703482711040651137437478899947086556184838145491533454197615973829829059996144030663718999844178714700235343391251334412859741096588953415323828866635133251461638523411918898329561170595759670287478135825584405614370723304272200341904669849508279011444839023470802441329124827079817357100025829157989182559952701213952172162636220659285934054705790484799198803840986941118855677841805871800810144291241674645760639750546876358496002055152749496745232354406471938793450887670395408664312280693536922482937538474210809306241315476753809256822041468344600976874096255445559780140590760266637108429465238036050046345732329136463171711714886756046111440386992060097528533526019869332162472795538516542601672995834985470434919976262928067708132151759597815628139922485740780890589421426159303495701854504096231650222829800240543669708763874587576488757417124157074871018801650368954048614491147564884991068419859530385663424070889979265048669315716311706213839006729187212019091072849223130545883288833818193802366458584814022178235797881499571476078061498616665598481481782265933895660812482361025293756061605028350949893852488235254407411263972141044271991472696200366322541305446552118333798411655809549883260590437192538300453609052011244545129813476784686311539805948489629293406900253254001925855718191542306056751343779954378563991189931610246932183825079865655498846315655391214698670977528166721600633879491369988492625668799213850677781885986086749729271251379924362650083647415097515130138279886029199061676143521312586241411294629408483053249498499237687579415681786121047747181923681316001392829018129978795495013692786694443189802158124568012148676761599172586736750604135599877879025285862981531576110067919186313631845544035314016928554502258880624806894136854149399101860958764701260224425711558554928543719192400835258842975660442170611832380935381600816068740843066076831244767944081103882813145441085614380644003309690955085749338273538633145924842242427885818538050072296757557655811872339330642331329128452239044313729191350974522353200461234049041765662877581982525456511948847237967746466531010048969805234306459684938727575734230553090782550930476006122657413298660313267123219322924142053908760415031207750875851353748095903476324670692950920808846705493867893524097245003221113587041342662270468672943543855115094373112580555946183262311361983745499669850582989449736343175526517861476345732781561374245666231026025793379082414566519996003022305743216404392420382715664747140173797253396506469041642195764384045025270098396071005512278886433869402116709216289678936270658060843862065432706373414847454662730289137875970423573043664829541260114572611245955458116620907243652031281062774501024536054467466687472102108586577275117563205489867433927073541342829202186273260337189961573465033295421727327564191403516077072371447413998004725818574198808482983150750058216221017323602596784759766473218962859035565039546294435863403598056857564039402218051913409186161613833277189100641934973373046260653501281828726971683447969384744045901597943720024089290131757031526353596917686429211766485295108299612123948912382791056011597896745549657670354194739442954063996517759982794901918091367362643381010903866762960378620183378787283126538782560040716176818700358109609977955172104360115969701573513603774925140004574957253549747007134232652769518752051600092142095512478455525718784024464117101200817755446891252668908938033977824110840608294893562001805547697162351054097559728859313559962554259950801705304315840790749120592106459355503483319375672870349714608098482277167809619347944133298706761648939912269424121108413291749387875342377601376164956046807550120586019097470072033313088159162051507511886499757417297004148974779576745007846691287817356089082933524122817772861466084200442405978904179795482339696623399065700497383942416416308503118912782198549364824168237160783321017987510975410853408290194391089175949596709020727046690798447905732882743246415524152537208274042365525883245719681147038487938117561791180266629706629208901477250995642172624055976106305651662244700290461708455093227507744599542148083801129322412733456493593800625069252084652525541301510130150289757704174907683247774513431264292141243681059284077071368481286586930482777281793685592001888181877489860828963584122787961579611418077930623925059344434445687488343431042058761030625736095737679989167865159751410791636590927979130953379655972057218400614624622219541753763494338796830517957239774054214484368122150481089755210169958516006489646452610664532160323440103161029739938547538858564372059307560407235828836350615502585076048404711514418123366802162774515576898976507796579948826427436028122400602306609600598626177110763823242678907654463498759805995950648113451692999345580137036357851721880036240015053962387539465196750537959744023393597467619932029053808864896476557245664631714545228964829378666272855779656287080558629935312583515333641299402958118002501917535843112247721768585206884578734917562848577475133202457546276360322283133255569694207508209356006798594793521932058944660079812565971507884339104696213904990875407124355690249531493018771738280421759178800241401019969749753000361247455313545055710705849021267209849284283698916255300591157542296903815735666849968720880518935487591648534984506343135776284536865199845326737517301524754322303806507691431251698676325563062507210007832071665485719336156170028711462150299628543978112717363549973743859238439034469735474520161440274137497175876339919500288568663721623988641317325886699970271100123770012068944153824740627504583434603255165079172517128012367692695806130586171927938386523027572196658544561069211973685714123647442619215375007444957819315862583860819375538637759186748301211260204049206660796464561046150996105795293373077854629458219296125997652366941856463386842850678070064444477874704327594698586607964960518309228080021764978338782447663445229617304734367400008484349097757955243421940222417259244418774081398473729321476151136688798083147857365375035630655996741144281700489923468119356304048581368337224949595406370976669668968544310020533560335903373505566192721565761368611810791107753634368948220029621145172693094474929378633678421975921057320306480468187081398757691961884605589626061921334556153440466523180982251678475718298263933230211316861959555768668758749120797593543302172080992968010655884434264291429174530498134987284555973958257124910716809881215041045378207911319078428915025909747749049051673160308879734361057603474699963713927479305344626981636501479452034309015680687863867426159335768257119525968592876484078408701037895980243342132629009430926978745037623793619503502471861744430009054846801920551616642982774779623390859981887327423015685721220460218525856737916488973716069854855758562652861015795287159882497956736797053379351916481722302501152788825244214687026342854525429134303918009433266211399213939668964647612555755969871512695713776541017270770099492874704457265360996853731135665288066743297870050735759994105088631175052869436840823257863388152443921132477268877150717878135526406852345969827280823782647166174105809624052164368591328362615806106717947267011979579943261700896384084082862711057750837942356204136668203122995636161515860622730712634678412708501540874377033155770368560875182020832131645947030393914919070419677568400469837241292216967986563866850250572819672281010195856365357003552982545873270722415886039675139878826834048544399776335702438177530832120946705788756122066711036749858884145748639162396730374574430355677713729775506447409672814973854043054751709150450234724192665404511815331337310387594905124263979033254996969373672666143289539939754778357618009436289866851919779507648341388807511451457218130003771282748605485921067801550783649767149097324959128017247147937690333549544793826003632938141400258899362085424487886651059757161377719391942378993739293911349635067165117110302917209558911495369896759199956386456664556589491999738207340405776653774728911689005777233869295445698945112645351014325681620905223597203437099832441075723525952378446416993627416165165645737755999934213738271040545581756029882260019140279156075981046367038242700970631769914205840797951297366419598981141336450599525953437738222084601084391051660573019531114984378974248467423107726955607592970406561819099627818077165268453246558890953120716222597722699386460571058515729285184347708739963798142238210914994752514328855039414159600360385076532478977071837250660235712975516054144430703019217916103185194179045180452888504237155081001637524537538661796792119939544812927704436489062979985629839802630063359908649671319691183226159731658712815022950109797265747144721814993744944697931186027722146918052079481066659046663085069345115548293655030915427972090167564852996908164318464204743104990807121073884295375238141546934114186033431999151108237371645877075080139366379377409782153553164416280747844906936787540227036768863713268671177235122755113274980107906682876079574158866149897993557358742076126108474396712170776750481306557312130093120675073013025799208309356938376683856812341708179549069870145533709029469781549007103219276677401092175992406776951320455000746335247237310476623351266470635366428659585177269384028285189432132558183571255846801094806632401437831951388934305997939615645822715181534805299691167728798150104129858071560384343420399275449048510373595148884063018560185097655079450842200124198679233775040398083682711026502940552042284876713135604978444999208138456931813261752176542400867517099787143139242567859955262520870015496846403944282098076314332310357073399987475191372719165471852139697869804077415046731496255706041883674189954676701454749122651372387116975366267940742815265566435003561727032243400109856852686002763740236770650706536880893900671331465437761965073596411267883949837086658003329205129287552356905571510075979036896910773409202698960326106755483546851377823554395435956245904093004419762713036003497027260157709478083355341020318708166642426300346536011149249587919770507627939711045835817166860318250147063809011671887087610051610025093530894791023806648789316586137955264288142393930280976532129528121713263417586690232372210092663150899553564919631186737418905840238208996079622807392750659297264001819944909501451961190115251664253328188480320034633489044468416740714331464127887942716735383509015529158843112445511930932037078650467561517305414149025392896567352393767566129337061842502727024906483979970707416239090935058389029731385670207859463443182661482471933386940209529068714414585762749306435973727023704263619513092835456262913780469970385378280490933587843890480455958574745080330585169930046395434803935200499601675547083386771257529985587212385978026755384590410503249648043363535618960299540242837183874067006682453047626799801602427263579847751796640894431879166687702172521685629312276865955673520847110923687198357380321578998842506514363737637062584907308808311843916369333210614333361894307533226781303246380430333284142460227182622062285716715060223659163915714695988488448724587155210280444400241931384873790503110185107482072187664792926632285855528649731079761759734155446726115218243094781519041796571553266970479946754731828997499455544834479021299332267747999778811452205755049166601981044762360663079903764648329957856561347959462778113019705190992571838775131038351707079034002121594051299229574755227379494425527003394835253337718412728160721761116205041152104796931823583550274813730455654670948309027358493281738390453691509062168998997348962428497016059205136976821238311105723131593773418448069102527576176158446698930297537120181274114080969274876954511158400080535405171127130150903729682978257265082766433881925976244024735120068473727920933419218409694299864438394121640043213271853783790003718384671878271439796164117305452570453366133052993917950214954783978121693107268887014856551613696884398169212964218315984690815127864362874308583175772501555673792617035849184404375851774891801513470977705897639073010263215618986467462474532676463033047346914735418098635443876998354950504704468231237506900076999169765151696970885354636203324051137003380391258877747758070390572153046079357520365967611923106984096045564652175411718246507923298393288959282571541712298938625807327368802027665067431193598804434540642108268273702675470499762772749314101712989931917634142348133414577410366150034220229452432260310429470839657670904379526805191962235316535972075226715470428499754284010758029287619473364568958244447548345753514582657769816419620302031410856440528594954640422527977099888309841915977173256928950231498305850928688786141169095372475175795016347851130354959077244161563557725631749282525817002897139764543494317357468058580191855814149428898572737585930278163748704392666352776413377150013427164027972750154516035109963117995525471794429224830296274437104594108218217346600370719815942186250053076345655132561040828751840249753720300626470809132822556357666349783943430737309762329950223628418787182804023500279171988787382880188823107196920586093499113920336948302105238456054730945848188917781096631608043129002761171163016066778208876079026258308049740302304781797023481640969646388909753608463902718855335624582794120320477021605295689935146527871757723714017005089739581617577412767009251784588158984657688276357365121568090150487262398974545504175604630780465153520001660471439973805505050898203060858167948280141416755949905074872778626723995127108708640621416642408498600542274890930901646497749439483905483618718209398182727189745365199729105641355234677954881459357656719097663988434093020650109136892461318682928258983521910735494347730557424078817765562373046002946841848430724699517824713562931484430146603635921552464700613629805820891322975660345831184432879870376052252893766473036937374330930720931269634378040292866205820074634533036465520036398597845797590837155488650979322610875017117243232555324235729958941752447762210667426103871885728146386321335945618414823578478709041341133084330359266418638097782009578013350242700624740091803581257274589621015008486089402785849463839941272784169468332168244403064735189280556141885230706688053248639406290052011637266611520258308791410119479681018551409828974253172345800640923872417566288097446787178235686855929929518856888015124807779260516595064228941921964795566852199694483036707134139240466951948800095559608254733899841231382811591356573290719770381780463380981920740864763769236232379934000356849460590027901850123198114495163035130554049716957227057678796217814968186523098401349632092642412626469266610868394218146045985470383750192699627305449114335304217622354455031899471204225651855627685102204209693264945305940916650664603770206753037880332432516589027741519715424901978827765787435015766880707843492805670311089429753110141409135354478202023676894583114137909034827022063027748396760849318830339485452668089882858970225987223822043950389050758322666255413548593034862362878597768674612188556945537322267808200339180080769066285893331748584907317237508406964533043994807085591173145379569280882453340531951352674754753750717053147540503143510698556219232669573513656891008219089202691531104939502562195838061022949785082397207286729520394963681680914898284780793197767004370130102721903886341301968202639901324393295844266227048854818948667015865594454909378763983472930324516482997304074490720412485133616074405840745539940714215335216606853530585636697334071528904291588312579367114927539959985442085744311419991656722657335077332327131370513335794803716845080279134030394931488114738291716723951769142262972196019987588051773483708597073371626982705385334140950387496717242179188605931452353165417765166928371537874960495032265401937485588880631758099775474905473145422409535542918314262262519123675140273430361772901678451515688728929326924020499602098366291705992463913731509931015035960773253931452519696147465446099608719262664848786910663193710749719348854195187067713607002004374665744981388083820829323579196217284288340496745011159042646985387011143263322100057269550862361731955131530571769283945244996775115762928759970006903953673419194384344486834482185721096165699322475303181464676590827371398521808186472437502993177440404021330874713609136418532557559276009180848710839968978281727368607823958573601313666611146832863173175939022409818436364707648170366899088225427422000439646219098130174403270544387612604041841320441011898848958399361884051057201068092297460248526300958890999555639015023149110045844126972203147055483173479845914704160411377506499497629388054716660984306229241022190704837204418556490540446741936308592600714527623656276350278531314270974782802450516783862173384212953339983412842222243006835930909260971175372075875263700242471494707605883113813938258897449703757312071720424910346531786021992077367425521320240607955374127710806084502635569567867892950617096922878993230241037869803454849435735305182120509161434945259884731646043306907349046626378098796527035297509151067667265899331308320239529623583259191599694831416843411795427207395793572326426380941043981261532742315940269674246763334304622016720521621983366261664695156225647587355499967853291079969568323810268421353617606680223201982316008690028160697374968073631348826582484402127351443309303142601218791349968917510604226006545511617982192803260779649572298073031527164190281796689474023877437360750164592507631049982549944423656288359688639815257782638749233268719715354406260444387974349102152393135911602441411032861513549284425272611738786175218440990393604636333160784933762410109540260100057188490982290197983536251725020365258413395365867307986423447466553959108804304133807638855517163560976299768136001789017088056470279161310987985236961024247322980101531858625929402596292426202049870291308740261326720868869773233122616894874160373021617303231254633923921113843576696999187078500456241099669268898409526396435393677326292767306527330527522761436980858763131803116683124899501242894908976898951928364219951043893619746761629978962469482743573051086813749290283451044105289153523046887883288456457881308055182290442579458638196356156708493591662168700536772893778848387283836660702396203585022649114145340196377551798578459010560721387463263697245555470118501338461485513545144206222441337756489873601653768541114422647643558297689940898846942666442328780145589193921747269628660965096263680032229821299945055238720381010075803227566897081064669222065646357742321157504826561783215313384081636160373586196323242506210568082456177717554507525100136976752723113947446225039621968419972809613081670423486286043394222458711309288390825580602819400858736165198828636029772466654129735537667708833964550281627660099297302909340841815036650943285910281844789468882227990000410217180279503373903291247011302257523944690487398354365463951900590619288189789121357006526793448120841714977390272136257351929254674903697804937389333114219672450596566242137800003941140677843283623142669645680646452582504429237909602301646680604746159210904699224256535152727893867523993049880779202312754601020304386267911714858689665828778439742340167066087698398970376597715838024295814582244624367669459630041976623322448801034497144637280526638679553650190070598385517953974575589366982020046989401757220139679392340743777717877717778279471849056547283067964903512778447852891346345746497422081463627033068105995968834065338605738787999329431982612100400468047549974916184574636749977816993583924859500443400082181080071873579541485097091050095918764721521050912868347056420671269057971399657489848635585192289377442943033930466628908395622120243630454880710845904233987606827593748127802838382982367698585225094269587951280092988074388341583982843374467426139994835986419420905117456159896556505915058432492073833250901548864433506741544061230596814342699109349292517132846692324791599769551291202478631751874639855552784854764943731369295424174927239992694288026748314437429928551105107184025251281194877053892341080430346211616640675635806193689164842755279785024415073503017248749538140768760351422322068778319796010873365283543118585379932239750072210232916087050716086775432196502027207091635437870633746785097435443123071116642084169422903618694233307846540272575486093753811658827079233736997416774724316697253191245281876758029396331609239289901262097371364861845944884320030125300782489173847968002733412136398594168047316011559737181003055996275722731249515636178170978390613415623230063869605796274271947002163833219363192007392263672650311399208506225694921131117796435207103999137249194455907332163192549258438371328911685718927802576902244604014345599810635342055771650238235371196971136351549026523107016029604897282746531912341649514586258522525770361739691256501565137924053194596102281468133031230944710876557180555729835456462176329656399615342379786712175879288135437051939498558029605393932967050025788318220104117957144060265776139358757631872933201648090584386657315705410610153747992950497064547582255411895730777473079388162907450519536110381372180211725889164278392183833123914522153842135153241314109013393448945757238083665635933462681885220154931830735387746403980547636308443800601908147931548851081854099708255127882937844048039108907294191749901913588345481392430734560114624378767829713776491082068983154864256046291876551500139991173501092736669837059287839418654635704819982780784560457641630996199216894945053589526528125279657142256940554663434062041112167102096063202745868555625251823647243100158417309793470196080137804807575249934484578884679439126199926328164378450085273037904900956506090579790854257960352128398889105389859580835397520748318416587708103495091452312099022561094604632011296752966105532124820796961338673786491822903880312585172108848094613618896665793038314774333945984315479648703386826847989633854152411882274411711771459337729791705973448854418660371184569740362931792743340917138894302539807848532587158816115542946246544083128652509266892697018047907611631635539930297268268424839657359041349368931390390768907002078005651195018194411097549996555431782431992268507510627295762103677540884299396412801597175304857734338938878828836606151210650570814722003682855615878023413148581587673632986725477150834247100541776972473600503032999365023211867286665150795078865166458839313319010518128157044711107669460274000277606889713673324138459685687439215979641023272236531654759546802363446693274846105725874578864198727977592149325317156497551257645013588952574185248016607154748744785439284858423326081287166906376663072151897196220481652485053129560838368468791523164404334159760453352000901812549284816510339866815087878382153100130844957859841698188508016432269273679772679666297432676406913020939720091590031193497687532032742263939874052437702559455622599610677906199615185935694615204199181327261064506952624481110827822590482791240933536525647908749940356554191337603595956232818114409206400765791436593252952907504061461504226650837274879194054823499364315515359586176258465481595242161902870516990647397582507094545175749663915665983319110360948874527276161328718172476372135872746350679698835416360542469231952381094461909035363144369871904323275195581799942742147689406746914863113177532419482229211129135852274624216461192008781698743554120438753052287742618620923185242210041331591441205397736395775499790542168466946851225035400973986380509526568852146094439880834600445706436476035438831754390562553053654227214511599949200176998661021384327345472338486763807690354691465613871876861281743223589301417020372403676010458729268950069263246574119634493454051104224119054611109184282378547859609413203112084832576985722929689717874864704906360368693822305746596051223088971085753653968854901136205931665944574368317342013827233942032944120964000252615083779713249893684333410630735064846666761986069872678767809074112478159525677231570382594083883939805007935278922019520473864375815994700600022035860737667820190108103178786439351053215363806291765441365724630652739143094916487613677157991524302078058222732092393837541209827208667558886006959199413214336230437113829320801514134246595032302972181633955570278255079374271476284188930411736669627620601815675847063078016232271814866533617057558505320064166611098966075597884712069265185456483017334305780530256608425415619934765337960115898663521476973196542640636679012825614034031906663313462783812134183109045531842331286776839936487587307970471757970720724832824389395094645679405882819406296464158240132441497724746162276642747800296978957454612710914806573567561498191774250005034852911287864935870839450068309141447844548676470033430691924668913812659605720743090144094286849956378444437754767381020195381093526367543472392879412580200621555703392157189106254800033550959348937649365933518061416677570980192911187642888194595410553755984559576733272633029062958494815100887579712745875249612193970783723248559839348175486280119736380688421303378724737553892421725376072973392896845034620274762496751726998744715770321778088245836880963337063505962835905521712704756570043212061164445035165001496649266299873558903030714467433866790299090588108313773365218240578734187526533894048344085800785869610999032834791771326425979416309010616227496777913233834126431414661079079150782083080036656503688054320277899604832817950837364566628237245093944711140286146670221329188480095710967607480849103445768275475363616786579672586421048308934393440409097911593981118297146946347521629810777682091936255241103186690711698930725459109599563841148076855510186741139416256443285157340521908724218452777016426374223331471866911714613113239729561005565671984919361022204615257762679347224424211758134376320218174003454011952421888166256968465014245357925593966951887825362245622956880285117455814568446543115019808542806507828436892828973354332985434372741996657256488355170780708370453626429777254871259503630625426137657424034038185130089778370711885474935470942153937578036885763506347632055012752180029730697712428312113091764295861601731042086735160085547701033783007417964575447183842568893043826774959078045188973494767499634145222925948863280364314644350837953953407718261186966364413085992811486643016864309080123092206968590019730036915953249181905127342578605781842359416455192096643458038726003891793359027898692211174735860735995934200172263375696498269326500770744013149863513349017373620975651020025553903641619805317985945683454611868746043923391160352101063219963079527513814490411742408451769510014410111393356514932003333161200673621918832488514524018845904626679842994312817417700904048182260777329747660787314231953624679096245140273200867098292695972431049375941879934493327462894398186890634746985063915931592715340649396917983174890355846843797661922944020025031202186320482303716869834569083662101168421697265306471775897054474274516456320657164402786676001171902343703161016598826932612806036190646256400054170389389780510520650244284035179219318395076627521624591160784624699942422567019478717492003406962605855133909601566110576011962428360537322542066968739898615594346484797849534549715853477058395111207152394320101497652454101756534219051964068266553223248155008878082204428724271301777441461261978958846166081719734836991294950557167029617493253974913079335001761849923862231851872301129396487373749695602452003164533458176787361176177405369050902156054762713777852394101530562618651462168682649989749475577393267396607542063872882540528409527967420223842772200239613608368952726320798018538021593569663592483224420353997648242671855037999476971910434129311500245656834608426913288497129025846680275710118999886062695457593468201559549608595334198000772566303487129658519336301709465877293060913364957244497153929413603997896218182286499857117475375082692658498238836451942044664164992735552369196590274706323460048201348237213389907391508753597309270420651990353295146261069490446895294548681442514956832947875433813149719341141610987832363317977712911247286407084061644232288352218004991326551839518018745606814104207428604481672412703202098502714310556984004811627335915911994467343479863813190157611462699193903634891379913315508932642936424424086625887134692107582798541876531685616617659650871627973097449421423179173678079292806276570746511593241249110153816126247812331282561801325685429728766051205204705325349508064017119252545551119871100892906644398971833332428666862010983678257271064929416992422237136347024911100997060759082201339904079655901710656270066591633457321089122046194615706801319725100142100044815745795406229266693031507139278094736509139653293654034639680666564631550181123666946114249801310329371467388326201529234387317338628927316529289468074975188251604902267457349709294337616376390525113440126761248429860205659079439742707999342502189583392971465728529519582700816264461014062367855567285781073315956753517560631899596149581646907315695890642710653037492989020567116851765368408837845597828622705133741162861282223382817967862239558094164867847989124625893395186129756342045462999016029342223300049259733954037375442721925157996114364619924411537290342929676730744612942384863099614324757896435593454383710162588684607817975896099798796522408701300555478433512061532141555862519675177149296693210047333660751970004709750511059906132247529760080333273451854967641952678411065055071613390847986484032815737867206584496711951385392124634714410801240217004559846987844863355205636840351104904131747437645910036442363861618593882567219359666102784707591519875440630409626136416778366029977280408052232520413746532860899813576304293581825557120534514021702665899535738694709655929362653450944830427195292581657982413415153103048530442221172802801956777299602815229614084425223651469938121954848162842769574097827836849376305197891945401242290381459154341957665742751147335121245877754803413107183077000110170082895723637250007134163029467206776601215495559043286367513411475918889217085210594149886310638302748910700385776206002568231541274156942515730340906163651601512351925482323893126383852498464917719210063980335039262118691707656151568370276513915648495315302927394962368992543139626795748863002689865147634208647211022974934769538851536907784691274700666657817901429652292730570239731603824172247619376834739840271553913535689073931805842349191382148410450442441721347614912168492418080534652410201777894588163742471314940203115788671417034028908052671433688338853745677923714272021912746227026722327325203298803042349531306387594342157348715103745881125685919787533612261974247561120766988610495399809440667802323112522660730496279976369140560399988994394338664565900707861162833192307752753639394508674153746774565898391818872024750172263242892679788139462975961360613219234529915276046906722125346139962862857675360172431139999559355317931686833921507547800171605987427986304886116297673231080041954628805162425055416436419990615922546733447106395481433464885149232536166888082991377850390167688321044638173143155176880069003235533948450839122539925589003799086882554983369153903527378418150213204576910569516459705842570044030309170298183385891360319718114224887539282780949361905659799558108726659595881644848333794915251722315158464643676260013322874106062464977520258545854824121070264525053907738834246934583952344406126531467104301578723272358749027634146709175294201638992307599396212767583294732066515341393714319610024721065336802745295523543125572942509122598216253319225561726298870027779077044111835306605250008933768056858913602117077108399703887205831136973484374920529435725148596281955310312051101791305565599761044009217117268340358976900611618133605458757300576619887264103811240793124453046258697835600494750529204394154466067367802110447294394670561849439647701259883930708958183462068873724617630138448831695782058902067017392079605667262147939715595628383203536714871817370284748492118480313876670347100094391931169784590260887241080235310019463046392444780407240582979388893571303351741186429449195253074900460918218883460256099067260135905559648886657469193628390966093631900594548811326384604420555144659695412757726737001105324485495461801064770708710597661551859423629899603300823345818536535432513537973276133385209677730194523941467581055495991856151962235847020389576953372621574497369591616723111732716508334534727087593088950561109035790745880520152739999696623785061227606001130501684890251949668742858738986999201327020732357497424348590749407408091447356513924816832985020452612483460651033123829131612469554578397017591700691818283993164987656010702414025048526141587262500396065160235107183872425364151838036737411172514185575903875299791363080114000840975116948346424428862828067516460534351739562400238924638495882552068378108984732146859381231441650289521273051370148139025509017078418126181738548426350844424909275684682770625140778056367429575816595584344769755558838551001613869193234780032986491134364716638750551903484838659236354723947041577088693558660228692279985760383328033530173020876761352469220295796143525757551386308072936643183520874323378342686309260594670331389821889736095153281096949650782403372486422898902676346308760232505642773210351505121127270023842324350525610512689475066956304188124118307701966357658963151890745747183942763974016294252214823243695237258153252243285141298349308102213948166321767103704562284868313884355960303633770737722177368215413774450262814909273993678130255638113853138999879286275769755837981158307643115227067584896383488083175195289049287978440158252178831119807330850647199659068083451144513648723702892661777328416360903478712577176812158665943766796642634427648947717800491871515200599242846514235137674063763946492554091697330552260673640619359791663077602191196166689708569163473251513014005878347149244269534623421296178369186680702961050510967413157933660288165342775296408981695245671418125924831828957152699700390029402251138511890191943875484130638930212430533558946150982296798531518825425211700612968879150080964165350332730120738872129813998330823552949946601149582476783993205631334740451272979565432378429927250343221172295447510570878917243137122437611045575722743180490491178693047355861864091687500786463911436305463587590048722189643807571364840202285281974847940707815845302312238512066023706855390411408759999373682470244528090637905209850860351179910502912704237525255968548610494340851441914742999572647124361912846139901933110930703577726773189009341538935194749678684029077352074348507679760654237198622907504100328284045647644313653464018087179568764161300630851973408524827867791839502597701265316645145706580757547948159510139370522677431163613422049633767766487175722745435641324457680067253241939292313523749267772540385046089817072483932099733303670374646705977267458336864833107965112448058027614795332169183693886122049524352743533003956062814597619961023866457769180271568913215823811478062828977470355802092759317912215520810787090369835641778005285796999066464864021895653035843315473962220096375764583937083925880202543186012775290817204842109376844734050466819018604150484800612858195726062112619534683056600842844291691665712184815935841751367920254450717980595394535534383684803875493542042878992081889386118910007205031569402943230962083181187513262272789241580651071993302868752989840080551840260310899764085706786621514447293474970293628403223419079140767743352624137139984434804509853495723103998938137683054879476547857155807140266909372512564983624294291813245889530830363394062803159170262112672724912237994400800273055622720513909414285898674826519988521523699333815352114000079210201904751721190588873637343119104266817086710440402264822585957409876791386998374327663413024598413552361672365234403269745654424315398305589496920720511680713153693749127514692548459143405070318578910439742539932981072884432524772089627962492445023510007688520406353660986945424445769287640301595475325406416634760154899724345417959130706083038973981978399746218488137927993173896112246990850737851353022706156986332456226878797271105541488277663534286348947418424964215211822786748433604355104861079658192798562356864472276665567575454402885262205586242195629769361427436024389177709551728945226646971577958784680847050207073262957243754399262624554108762885183016825831067546497605427057973515344948998330018406016787468786255355318502541307295127543024613159460775729949139607141691765111704182596772332708571774791933771280056718457802194166781546876345325617770561009814417781893275293296838152488330095984782629806624258113649798431657964337053381594838254950310390411038573708840907271748044535494452154353536470673555273327053537144263643650884368534340445124419679910407546017594373381337156720126659204097474490623616135357940882593063758343648507295137978118718009812626606734496942481687473904350814412400068702131880661569551681158620403110061986663095800987133126661580628254780129364601986276692858685093258912367369396552976819077819097415686897751380731498166642283617235661674851092538936432451011934638713261612241788648444965304611029971727518893577189544522839973446785623109109970394700467047415434818509014974267394056600650375630175855014892770995716317517179402799559593927304747658901397708412990936403212569438770120530538158367011487806112707654601437086136787645522721685849851191379715648815733741588311862949205083575756488334510011529039165499689343384484332922529316864110183208205961125698252680629774453830548485197550979610534367873185956548882824025873971784306532330646812013566487128627294120933812449350831650856145680126822648390133377255104951907984265746744641737289273498011246390913429659094326109568797602751531323004188080873040052721090655125860602825299077761460995818005793067174092051599911059674789718237969657947364816351151476262747869700265081899903343415862220344981103296357860868327363547004929697834310928211336429480341321817170779931766816812968656859959596759863682057727686514878698353311733314465091646383845481660042090135123268840550858215020757128331900114404912735707269741192247677171458226869846880845235262142770895969915275293557495011729800958043052300574269838251043936509060776486012870575762197409779877346340258722345409302292413239694041987957806774686336663053186017049589378200307979285907275299654334225541666935306968722387673611700864674559539107790187317869540256329870063013708281911093748863391113237142039099314222399215749334818001398000440688850153658761835008339847626499551470815604893061554403921343785496004109179246762581777581031602986500180902986166205086222423231358906652538950761218683001912646780429908873838007037092143275309394078037340921767308804886475688269832359606603732710189384032933985189547785292779226875279242097557489549195911582094383160740133004435325226526294891163703675845417127920130078282718093682674561200329793269507837827300733202726650378623080162523914773721473647483078111602168932182270923143840641192240632902317088241313332631122163548264458083102932670798847374320860733573592800296004074259417726704482911967813554719550370630750401646865796532133820076240152495200858651218320959305405865067803308069630663595810754138350905019796807786456866425179656368360047917208697109248528754389435875987603368791090791518583386418485702696426828690012888099546989543918258892685246203479477785800816701463170614570696265874425313724959481369772125100652845109007748022870521115904305511023941476140780998333760090828244261472346169666631658320552831800541046450499780400015135878950069745812462146831123195168599723988601035214132043800137386166037391577836654968426291453661973207076746791494304286824322529957262222884323243527134894507630346846731555364830248857091286331093247753040861904736315146520152936525166071419477997563605789272320959125783489646179830871519388417601646813360457637864329954663172461445566575949790516134619659959239178646669852745246626891761430028903530556250285472935532134182146735506459153279956504856550071824850632689643305336861785151872738244138921971493823650602916613225892340890165620643507372378492668741011087645320784410192387208474410496055544772103264589090871030358232563183740602872279188406037476895865711208773154409235485498306166059139645997802756420882468137350825681034983514545264531013368186913595552321004238898116390479933955974555589641025351555665771303834454453649058264422846975963583861161931946537210871646217135641209238084015574726423828082933658252240574131676456040049515631076000392054966102647994128097705934471359273798402100612244212378838161236015258976837300359688637938511119845471986182229679419351035656464283464381842829623570635666482596918880256889556758021349540692193480424635534224224991400642693633905734219803317641300663937004570808141783525041781792516679925101811481032946423511119247136375890816530874602920112584149223891332919052557564186468119240100711670035829560181758241274952050207743344012365567338116991692822404331327993150954310144272580005280336564551507593793882754963510594950637676890306275876006587242899176953393792022957223546947867469358646518774899128037431486073361414660988289609886563931451314538530835295387404065616185683532841732174305928835702348337568383041160152311478796548588199993458727543693894050931841236058142508667782030708869169070953623355729405233467612325246338913388581912682783906336854721251454659132879721787461369016316442216974488096433340041152274445642085198591396530513870593611003220216473417877514649727342943331349372069576276801655795390788098392976444138982340809714465934750851532163381445268788037119871321185434304077860022848538256688544337363017068775172994249755027525937316285129388181862598623471962908762836295486919566709016425879014210580114133781774460893019382505013010722253121813980305250706160417687319386680237770726084982787725466216298030092548234728536972404035753150231114096406544135810681786332953740914591437190460497095506166294743215126755663859456990695095730664783007909010548196139595248027820245458285784507036260640498155333466718942071704407644817473686575221614224352298777198299034625213029568146485481850489067649615911119212615718347109088858290542534864141001526158009167497170287084969638515162381978349966550891987078606386391172370075533651081825640486524274196392632410465021802207585413713343666957502628408456911499118960613353264185642546461456194908494318576248508401065932440674806750748755599067721337336769953252520499731745085004799191171792907916963640178278413772122615723930085695155260768094465890600690594908769422968515158972572878803508858027308412282400744575403649337168353723431141254839960011192051677210967686066162230584466139086497452817723131507209533447016896830995048793423073028783941318358536858480246104439273425364186516149284042106913257946151874453252546655253559451661939677082127695020242327533434985514894270391344388438430030492030256196018660797656537194239066119470196979087230289831181152233788560085885406111681242405147502196505260997637754074964198016545235072336608032876746362502807170865044800870988065154992595012365341017061585334738015742953697953281174149104089207499958980693494295059013962579291771609172198393928278771400150179635981596835653476020420622093491538548003603022215305701868533029605332542152408031543870872741629252765813197969856905001181206232459731791132142462524777378010257692499332310175097706965865759501589909218585177659670772262355921974565148482886908856616599939975215699742607445315758633039776858007865445239745202856430266222345841135434485203385298334427350907238776678894120928717238626561895806366497328636098541339548532432634004237941077642823758837853086599452496364688132559355548027024405068762033341924512279910587598203781081393010321172897750409721394523480268604567169134485807750387522326971117963037693227871624909531105696002249226243245907793250537801502276182230763836703875452277065007000318648559900981925416631699484731225594294413360248416230462472832046922874174779093290744164711865870104006292590785166510239700937524112188326738297353891793991785372068812030710464197300325135269199944901976877785609686737344316395178130341887860517452405393123863534089713505179912777749162556597363418342984758795852766968485748900610440671040587821086012643120890363972959732070611858133691191844120234174835535068043627858684974667841156108449572744404169020295546747406191664298390505245409813537522321372879795549544584994285864922569151994015729547513243969765676339014019057457965186567152963945830772128565780517079504470855287223858401002709905252693700201862217438872750454368332683692755315828905134220646173500037401462624482034703168510027185677590582643374653523904726365535584225499397189390806869736490516450553257355875380077228963007574274295285248827814842433508903296241682701334596040384199154613557196062162091553817180269031545944094601044255677877392456018793396392056574881529490086471592676590115553736791832467269594247053064094818735943914629598172715557135461692210527724119666862510815478988600055861023391385310633886898037063341889427416062146957077280272263067335904891669701205077598730117386623247632334767693315036841397331217251935531362964556435244973243254964074722250666529118936988920183398303382240346154342284765245707216756965354932780114651470249161826153074630233214266913896887045667590197455783617852210219975212466805962099309738061005503881129949938301338824666688070843158110815276540189489707657574249237828637167865851985840350574536250811196389882945519203785307539863749526449708882111134085499594992945098719690745144676769670630808688606095737952330119921491070712784049602796495246319389568119729558370982221112648788824069858494501640937588816560628615978261348465652971246727524730566089379995112843903082041311861403205013374214922724421843175905256845377398182333389735894456895542721352542013224899274421613920507381154687853509885214043185954369374373437641068766243322496997744006903249616373820393842874845320428939883772834727980716860908292335235859274642732626701300696306936551582054826218118583396838254807366092838132571320338012459951456361444388943943819383187964627261852493194289046041659295722347584219990471908181274517033358504207586407837059891826494170444351782314115901191982981306497810053704688196469456866931214815912240522278123657174415279488859641988059865183522220936212935872959507118795660519142842464222368499105482383346880146700082958444998389112994757407397367515186278189594802017066991523842924435939877710579140973464828545472769969238047231812430761891770588978064776805390103968061897871024635911997111566955397159138437903736772954043260630777254486487421287802845000971905413548397302372708455676559004651967928995462089179816909294999149092547024223183367284012478453850034021782009586346853615773458298528784601741357757533647565668438263234827426023755374270034504317952962371013782827592246381071118553499743382016187126896646312654828099952497640077858997316050711151455594758235147319696019290369728072397121609297401408167566400926945752456659814077992789422135769465007167762837532504935974719867829264244243421365335513107471054320090205613666650099553838458727326290760441385975699832210380853496852171318209442197919397512292773239277456876127210519444053364624413439310766502632002425612243281826800205621258220577815071296182239677705567078600749389598867269948504768251004596180684237555400591533261993525697265378956447161844525594625707316369881271954265555267145430457573977654318826034341895777633901820793766908569437478074930009431009454863110379587490825095578136654303136059473437310312786333816555310688162364591883068455725851758274964861708921518170354477383677099715653762702722246343201693444063559093158255359640854375996765075255694893028175378345445463264589937322068715738472481508636913217152576504388811064317707655745508812506976165147852185744152031064637979627263199054819263161931135626938205964339268611927964240004958579422353594318342377721320006772578236249345872409702202013749153700814213569843989521085213589112831887842593012187979519433151480725394617601642646059737292446536193012800974934135114180794195813098481252033516959138813103656714218560235044359913784394663379004854839259639703520944729146113317490525560353086081369858225517411093150724675216844821257068595005525860457998293128706175718458092222442705782651063575508574668944459468586018654165005821080103206887290157119230403864818251039181959362855497401241669674255414578805039351544662672175456381735289175185669491508460711496195011283938114385655689535428240132733599468691285784811768638361024347432344662248780513595440575210234315448833771836479446380841170717360210073022322152354577821776553548628085131737885084611736654346549868154464528036908247010547429975328471691377013195604380756876303607677498776675516301611743984596787152635897620122122569695593888927103648660976223044754145769416362649240516526064356710237763028579428164295934973988986565765645144462443464881839611856856678542735768184608635571456835445540578540730412905621013138374827156073711002708922824057721054663738725608312838206798040700090543087936959544932456149933436798136031763221692660095381672904723194344861694375026149364108642653579788610799505700701603894523655779054756347422155260225702665934357999861726401609369534824847699523144552781508293045953062040393016812466661706764210480249067610082367265184333506876111125771465288649040206657287895272048956862229336699563737980001778573049404126664681525864467871016955983446557231684794308345077288572619171902906085119750202932875533419251850185133870824340667105780639292090270063839644947812328176806413270289145157305689913556432630997295687822816131696967643103973820800302575863748775238050010256684359474312932253456074578425078939936929756320046438398090497695330086092989161852444931417547680282716751995454151916556002458600252934131410801826556939104778717476961898447215912936480113003779945810538352954136845616897324603821172875710955676182078536745382369156205712016491116492593792077862464112657592486004970553299981782091869700756245355134218614059069924397988319835945695815464356441071608754401602642825956926409813058722695338050454454816695131474725727019197129185299402643363238589177793925656956131969779597674106103924807399411366294571249780708846601509097137249518029143426886071735656766564328728883478426878204676643969504175981539472136063190664365095475609279673568909328393638875584684819581765516647740715074106109587074577883043721681161179416149062896340217663587597704691666844608126737217874488988971201064996663118154805653775853330914396985095685949060871448320358589434350852046110343872812022103673730229510729043119762892096103687991187760910119905027517162366287155540694459958543610071496110778936675435808717328116796887920654406087767262580296191947745329294049672004115213172528075427891905649226006384542371307133189862455563536494256831529254392550676254785112002494564856428427524943803232105044765690367846803593763829788395235715366101373688859841541279915617469176144908444456042210788376878583465551205040238468951213748703572055797836273005698434902193162305675806046886192311455031759850083086381728338988661847266325659556143195349137846027030635050879737225590139281638165824015140778111117484925076779173357960439681224681003812182912110032770809356986360265951961340024376448718112441346534181699884324152665052502332517082519879635062601541769359676529791995405366400709538266901122413282375067802854777774249801015393007748366320264297920518399849231050655124243388436482890547524349004708734594053529564437325750177551068890548139517639159375506839900596554911063336959865537498834545579410357527316387749108247895183938249929805380264151527171298691088087292095202830872968877334290671735906411503373264911814852250014649435231050559826504940776939401904101896733436816642725761887318196237712612123238554575600362751134784395909433084556521165397062666301943666547863286472975679658549303993104367795799342761101995177172988830785286728302106639964558360809823690149723724826388649880873590399767817696311006825714650901466206718130235721085302879983517791444371316564242170420010501122242623702171427128514223528747672201462079078756484150335109047491873698801057073748089377273972331503762557306203715896156194471858189462539549799729179176847330498944228637197916465532280416432497040441907480787303597796697390808662593481267871587715248657343907338756403468700191606512447717656011502007881690011983691680563407499582693515216583939577690080406255067963675897803735255389029768574263570177733976663569744382943722319385866006818149988443496322735267881382169497270386224716952176057862538178236645780253139017899209757920129707261145043213214119733921794668206628447924434066577476251033367806353412958407580680812278677059790317807316514990554785567109066428628469169922746411186205773789061967814262395963967905745266181281283429981595102104411937957102947352125095701703534056768068151364842673263197406627800073953630289110121811292986709311902315537915184772218629232502358822484578517599629841169693943300372156355959756556770713604844316621973691323004022677240349629467989518356902792167144706656168419474776333822816357176450783057912029677975711865387028302245071106151471370983203905709715333713559248657828662926545910931216660368695138418048408613111092435847246106466184842234931710670378206165060251055444834156617158412341193237006790702637515533451606290947900412576001630705011165311766467460887669964813060602409050056340783136121017060410002043684611792849967871057136334653313033957552184314353496213328882327011241854458642279904148248684658635820823068047211479260771515776360064250334829856650969859778359746526052354262988693774506583815756583503507715125781019228845883627393858990077374336505063246187377430559884734154262949689379849983284900676327793851595025488131803096863939980874800796572422765119552006004067289403598204634734184259037896819084634010749639553775025870087524898529161067271126339890216036219472593149541292931889760674399478465095357183298857923649631081453629910992002225000329728031266307273413370015931905530661217107716674624024422788335412804463472318718077108395212043184614693453606458886232525615273838903206500111370837309438026803808094174218756618925033471727496273397178290623158335767261348865254645666463395350400233751635347530440453329542263598398026315482315061697983222244733104405338073592094445003640853481124955430663314473139036483458307150724577385365742949534927880430248746867655798947612109745514474718640423971984497923521065244071749675705142736712214892431104345942514419876855941236535589715958198386040375205022143185724494547014418635829248786564215949357269527888419077018362458520017140177962670764961386049794340012725964847883864812862969935673936369872965036896920041773233803602457260001805349227575970130459529309077196672305432243103098131707504308254733014601987636284031591548554205397666820398292269618892117296517413455371253117595128773194275176369007355117418499493488226081031686125233722838215250562715303528207128139140215028450792092729429392959222513245238676333074446961655446268318143118475494207406081983960488494779037346079961473493634696630618994161895010594983719095846622376983807977224987465637158184677655412959406905052179834226033860240414852325077213966044485980095081404325148791059812784052436692370904077692032151025139569615634341031497479410038767994276657443813136668143420208991322118856809517059272157144065649523554460562107806635688657635666515897745649565578461201481857963247647277970191401226545010876649246754352662726576263473113584525090934510424253123889558229885593977032610939992175247602125103593860162056440970275844914726870927720932250217887829598705267320055782837491263356363155765717297164950994392274677923065985459462866569775795838917026039844707019943759795669174287572074823948941739948751745758041599639878335434437926283035835706344506793769019167995945571556196766187700693255467204312694259264792403482275728884174306745493209475533347433059268964272571681656401989039681883235887551158659479915882798415548112527516221292180388545009035465742213498429923502181725366157270978881555773483145792288180365952693588247803408814796298947809410923213076355867918971297119481756166148419536628329784382068093153427311512076390738876435790642186591731812272390583960891721664094688157523781969102889061710414266209396533964803326409226587698194046045773000653059475175446586764183794541897397930704906396453049056965989591322360030532952569325278518020885521557978701948651157782346576311572017291019741217417145850568357822707393814827917595107144741186975399817431532017062315833430993666449207700782097570866658455211345059928364109795088548603511905457296411772065668140081681120392693103004425022684708622782875204991795833058106239920006974561366662237211317426789892300474960116048465580171040195762010974278725690539309467295204946175271032711803808760674037408413881729882905802420455123429758469687116330174481742848594115117145263389585164893796832457545054330982944720937833949717479332948661312986503767083552720748869674967679203374257075919187731202804277140730485452090866359866592887636861234993467037571627339572068556267591019458539546661796943643567676738112286586151575181642938079354547687877733595870426922348409833567551491233425900870370161673488831326278627342027961452866338893923332037799729014309636725479880944552638694830183717438408834382520567023826765410959717982880288801828102123034555831925009278509894502871329147222791450969370493678222545056711948605230236803249605025392253283387764762321633108777490521776473029816756670279559193774519490482165475477896586254271487762382372821955973826542091341147024368563436702841040453993186774855983137994247230091121690320604889105450435397169604164355050768930330952830822218431161952184684795072941624307588445743756686433967815351635088131672987894620067951836078218737058971068114353810894169098173385050972335815551938149572084072869240590176246254633800976566349930044234776879817404358136370591534208552767060907241844587089918457357553235241377009483169738573273528557123035262484415215750177429187499471079623594592216229557854514373560477159330486753221024699893153448180374368536511260096059534414905265658800991606002495176463146178877066356350734984902062615989171908751541522359769442419992942243742348895034259487594916156886585557010955040851134468312877969542434407388683386480670644959840002237181670731499159495079199350317660298205368029319716060987942678780548997547002995489908013149203450721871693760411476377058499947040748721743638203818891822797513997798462915275105786871310027458407191284642567484180644207522972571371760022446224103907435736405085613571286338781404063109859449859415027198166180531704794712473961612510372952271664026293508237433936285631847413148252680679795685120335385041297938990645625164684378916813387787268354196785670279151032861457698954788360493129459646786131480447170914974434666477698892505211993963334623605573161728001296339179147623258957119839912810975328903012485803417738799201657527384524684082696872416266726751131465436545739698504095529621074498877360247902375025355478563261591978310011580135312248848812854497695278223775387072821506929153226063531728050437480285909619510902980208770778737625480139809594283765301388252978095236322461765344182490004511204090840466394655150508947262519904645327125378128245252166094376412864080937863032626027159831605527489431071092926134856663560915086690456602100083146262688397157313706877023512084892357465488788055728555064395343768390418916740972226984944493948293647738643317207014517113499785182143262350588443492290550270904150370114067338023459391145953097780945525766603601821522650445134865814369764170194070808592753197437900556156807482841235223269560904917219379564587497460993721767131395050414129507840081694145598517074308974205116631538607023353282958526577281657030193116968069726174665706257992048537514149502732818715259869630998348833622237185514814549339620520154459355710431063773099849472605378517061610315086909762200107233591551825322412740250445990937518910618750711341561950410105189873246146152643461028636854829125498137174732453617669803056536485191254804069458157691718076983308263880459427629862710587491126955822993247334740172643709573386486650220434914374300237540407564500605557749901870053999570159406382592117539475435696048584982091971257374236375886313513568937332958547965074890803316280154148346186189468224616864669923684761280995892436833382322754132536578384539007793967791005378157953627774964854442154215563356631664523228398626193724861430999672313889409182068646945227133185592164065856692729302531069144480558276273367607873756032004221718654534825491485119049001337926535729992845594162153109160994488452242349021554494286439110663704559303155514942418002393082112187702310662474416907295784930544807890268425309519060428547297865006309544083689761947012334138923670063228971327209051600730014643306000081817697481147220918328820619670349425746629167099867915370168256479051244149896694980832471009615607355402364091214533948547883175538129452415866558299984555586266330739679720736353013149201585110766794266214003071110829157272100614885220716371522432727730348565727543841501818063867076792938863258734940425545815423573158966733729063943840910281646580786020401229592133089639545522410945292869313169351760849757546142948211228029956907893075123340094055259608552817803320994857630184435897891356452309592512986940815940038795613276492801045806876623422410441944219537639774019178169303095813035162939371306538247164786988770747310961370219897541232738918770629615286612277351778397574034586864257724838628401707541198947598277027890191273970940766604623611760614079675200763075711097994542497791204761845801551619983647275643519261424696664277444995621632572681682015195309342544151523349619544028521719618266300457569249090521540670682616510654573196006793306610962991853967077499238131779193851471163712887154909026068688973725902622745238698060756271402493163123972782097404309182898776891673322101154409761228300844449731212290096693109337330706556730483264995089455291255835536883408868592413150954729102812446317875771912558823748766729834546075403189516950658810670848247850952577696495334274395247252555427105988602565826196462684825917083025929931687913882986086462927283659273601297030181087659473635194649017727231129428895318171402163141054635574682251030360701780226840206237322840585844603628306038706841211499536275533855444177060926688814434868767514581503430338745961606295322522454468175963008200113946973705239097054013901840890307165000448400849575275533573518577105721278782374467252349720868717572989289797057997026464714579798667560997342804770844278515715652310958033659191228663544408937544976159597341284524210280692460532483181624823133291386977698857822902800870738472564817024756212161602307285763606906306882563164393071747795595047071441113653744670310498133978822030266043921758098678510928724275181628329943689016047642765597018352667827743345445670064029306492309238741145734573007318521414547037696151680463487083128106654887835641489542718809526441714744168060170059417667640575565797208647661781619457834616925734459611452803344516013625410438653339721451587524347102589221277244642079228943353875462755286236427630121372403540267311511020590361357717767751637196276148081684983866297468424728394112993238350488552247593225964630511571101405314683973915630202719743297964473025859975128005851633181765044946545440135215361574884414063492935240455112126154829121748275219507966100511438870238240831914915493380617182039572411262626217872150191910824145484055385798714963772338007177332666924353583772687396940337960776123500468416737307447087963844867902984532790822285509145526007656309516464888822399244060736945727355723352624260957224639332615052972040212310878737631374823596226020880521283379964331328351346665880266312933072402657236322313432536422759256863998398098725167043346377537138812498759654322518727201325080018149720321969940650505736188554694780816079998487339890861067386282016965049661770936134085907309067147421327677764851516599293481101759760099615312151193173759564629587329375401652129109565847222372327859589338527470112206549701788669908849220328770756475935847437392806842543134801340961908864309521926461454975924884100353850431831180781940747239606688370312375439391592768946838383348556827636806022348305766849755623690484795723117780444683542566194060125646369102629793659316893252799575409062553457366968576473094780370756443686415724710553996585699566019674318978921134511006397872615439848634699836223792063179631418088381315087383832208002579382649513662250974263191739928918020767858636090428484273386921785735298471782076165084193119879784645358617662731122066808471788799014689050216209123279836469491677617838016202371617778593822244896579178816783258722624921447433626281461162348367212069630864313211140784721931652253780296180037386285836048883383336541510665656353120517336482783499134066214192046824277402511063470689500200195484229416849543117074600467610044975597293248746404931804883791092856667333594768961712059182547543681229238469050866623984892748312262653876186671043978065461720732199837277786595948271980524981629890724119264824249098746066613436189115274599876004661923324294144421278563075106821156054047617440885956415182466067136305056011091970871466517490724837727415107138883546818827094510173782342471911948125733920894890132842401016327309864531059083465640509809978901301280274996178784380887557887172618046431833707220841884850459359015276137486105145582250414231240755049823344583578406935311022494751499731356374980032984111734705564419303672156262382196587417862080629368283266684167030845215073498979490608971938157737961042580287664547052175084978411904283889202792770705925671131342193589620684542852881442157382210935056201201008330794252878168546060305235106602736509018777362483819259738537249908415273181104296596422553380509882364373860343778980893856746347810636451144275101734812814947395654913129822422652638396280706603341437717572011003202364381483005493854908297928484750628578920182046437759360089599905644678564581269009656470157065481987588655716951863509072069330937902067440285150810730277186540365596659889896318777633144493383189610654781588005577605013764248770733775991650289919383636539748944767531289587782818456435699657447418587061031801346603538745381534406222425130917291790048460297396676131571571245819226693003566429219598049875772535415461667685657959244957114249498753353521762218278913570105128707951519733044061072655451461126332232380088475383110455265193189483079758919768147207377332991265322852886585483072163116470334694441918653935371128569082628022508910684557337299156397621433848652353577480060097124986081230800449419435516928890990158876590981252488850717741498406728977448188391911163822142278452518736350763457884187927564684769060601945746957259833399441281261552770146919928496319664144605088098350270186126519491592499885221343128884273168227324982998503240811446200154691947185897416029066030259483578670979256005767375505124667383929552875416266675889355181797891840699366033218480106089141756975388690303362893642776359108431197854481145672781991504595292894976945166578381811780344304222665328575779055210717636096886471609958252053654584112273057154278477251500631386143834118336357893046984179268697630894945111439902497996798106096796877366775390342740613020525520515815469876793740802505022325988362987309538832349542401452527328213110867146274995389858781333474999374409523814244858536367015043861815772416322353310693661981485982847603370742959917660854486168711272903288856969819468899205672692366024939244772462240796334954657993444349699717642153470274498674908252813410025811679525305397640201135424314846950569217261455585950603240511501293711901916531445004615380607486478206740407472145048223260288638251254768897555379952402833908144452023093876851754404561811814002351118374628010078985894444673386328467324619254827268852112906829254330868943137656914613916576734093326536559071320269229931981997730857997550331990026651658346237180242402772771274779642489337731243464078975660989127030582188433163147268090780340816645364398092926527611008381801022428290968631194786186903196365400899979539649131683487215393622274199776988588346358534801671229208369839667921060344416751232705217122399745030468214888806192202498998123405937368066104167696120456952236082501716716512731187952212290241079022574396906904678987142174534281715118392049503898225521684881689457680855451942862351982394347550711814191300078823850038242691549668055417642886982321402230506023679768551996714100346909479121114994846692060140698912151075100431500534028369197413077182131541600308762291303291728175933965864992653384985411735587737624409654718445023413051385941689475758195343946153604471799962122233748331680090274842221090524254056435194560179941217794039366856272610683553002507368927803245797279846375040475764861844832011323795085987064650879594939303488249428975475931213506449744986966047590725078841897617592650574191505145743967318849384292977083621150505352112555465708805537177663684430902823284856184545755313614954521386488391425940553621013878438696679842194861326101192429848011234583566637786810915309249208757904161465563563950306343142905440603008778314868763870404385433642012287412970391141477800666244012302257473415842002849290399976398286018769172353370515913781441837219690658533188782558582465195177567740190090979423113581776297138631331146623713097096312449950741805213925195488804460768420434090224384427276894479994779277678397250354924849478420240437777230037902045392704565271849500634915080165312660393329946877436445930678846051933844184831665397612851238579013601554785401518042040249528508757666139244210723648330598214138337164428541418982125326882608590590039324088168625200077337464863441125812425534401712581315718380660576738455289644309284695843287702280323777872445519178638682209706360285791073606325559428688165003223438008392053502620437782043452514766041675023846634591108238175594971308208444461010934047419574138534763869179449006479488336727221504548361657010462040928159884107811796976830046358462484099255159677039038592795362896292632925515799187062680993351110040746230929305993915096494032698385109761552683586071441886494354661352027979612927527776970464924421962841248524193187925295369890309010343921692681659879907296305581373231875208350200629516773595412692073141619750353241677856565975797948315010121656554433233584008496929506209024746778326829913454765693641159766876010145065906486942934009423417971830416510754668707675746818266607892610480782156918526213888576884738613684545885133490091666002811167687684248738643256610020965829901169868336163172414606450258102661543228565367037142082558716476128977916106799475650451982138678712994872401345993776067455746436898107382179170579669918999791022852761369890448318520060783545515493599350509239767869924717658724235754104759333121662635407397125713886181683762112458509926899735235471551833531575746438985969088009129015705674804697329291176265289095222030139662563273322695540556471482993988207758741238017047408604580411524638940662928284314607066986777706620933659380693292525572252603918468123449852356327982907557740949752904025581399215564854105960338011406332585609414267948360102362601982007316936572208128051785516731474705333522970685929949987625308758180122223080951184687975556502556064814404630284192779359002193993352570323377522545263455445840994819285089113382212746654797669960667303051270395530477922601431534136768289615789100342354123149070094371679291988284412093526084883448445537464861732759365463213889603142128871196602402888397440397107349686021116552587084161805255844623526311503074113210002922927687991153856706413039376659304762196003607265066096519889374137435551651355184307493927129948995389696131259508159070684516554675584644310828812383047263337828812991144117444777977016587125076500793789014365051319235619876142752500977143259716175928004823043912384761675031960027242759873417099786554654433139742792777474306249825520137930461279267243175505404796099504261478342825927524577034242608384747429643673438437693439859683723443401052605366772024774744460455553225931210935934174198532489503524441756690344378693201656654587291342317046898089613725181911552264951975582994675611867372826466334687846579642783904370566437245712741072888633473226023389309638584263426994270599889420786384781106795633257931645599777961203743648284543151249648980848149223051488709469099343721638748915329241735240184372598431597234798316223938361007823751644245651592911704939198934720282499732679489106137415931264336121329732942390193580429817439018772873265691234471289953487618209341681443915599257942988004653447718654844995153815224954539263738719949938402503786914526764610212438607155972789253761684347407777643804804288803679499749215210969057430276268010526286336906580451553452602657321348206596857530079196710344341500470304790215043584039536135454448731511193216490472617103316891904654500246391718227831579513877402680793243082706332734782411125613462027361035514218402367742564720963592587999560448056241698996006329436485747472251665903469615059625657410712533024449080389598747221183713875413309525406295931921741495189457544699532919641280858179150050631296751649161129249698466570967895759784760442071194103862870557839078811191582498948706877785746031468247688660587502700349020670832648552995107374805103989791148505155275153011016695563863999565567919019345114195684329720823259940587536551987539028022085923202956371836243450116297013648705930129585218276667111238669762534261929032333235295531572963110324236089176220842644044633031053210795740818966605016334073474621174915190899656069303040073363857424351872312197560770254302839984061523979886332592818651157558028376049520470480612773076523133504429638138956608513217295696011091784435050187713675660676567817299120708757144681552526519304407138506296316264235627605977111251615014905080459353877598639786079855445096876948223076527005740449226403612156337359669132703242964513750916820227947571749267781850359871198769711515681566632216632585855427480568446868965328460819745523832476481729884697597008950341761852756988666844010537702473354291151030916453048355699262591858776026874191178855672919486092621077961010143134393446025838156205095551430885708319966704546899208155250353950318307788183828109235589910127638148928033557188580144392815659817306551990824798952835414690262317851282815704574478375167173373155993433374225696947030564312603974234245614090687662823571323375380874786425702689550662988799717391034055514696182807639090078937830105712404319882473598449480653658334002167439420094826085972593225494140981340949261715292257414947213924197516635915137987499281212585228433915437546708566782377824164889999948380978962419809026559238222580376765766889015900007280111343208114991316637270650457974527076765386287951520087010803704318864989632504527889774680971942607991769438018651479626683985049358195754918825531657275019577134458849243992105716254047947736423256774078083640940434234491131318771565065947277779993178656849959843342923370967944177578110858278688482030067387422247869262758532090700856616913580859732259317334840271499500207325781789916046334249729235666324459599057957754700214354411268370974572024599408877565065510814728936493063263044724679783958949531704618477974765934107162859837492434389467222228984545845263736897324921155668896544816381282580918824438910083140690240592627307121686330281299873911685371581690345275455770257392358421258289900028221989435066667515807364788085169187025805839097459165804344059851254497301551808815874715608091109262236889566330384922965188866995777599399218462168620107985794614223188014384524875208061503590621799258675973305337091260321608048895053621137641573007681004922157693477691386859971573660778671572412708103746540794851108207077058189478886900470539577677489856318645374519425363589918914245457020017788689308279742722789813486566048086361034722537338095246479889515740420020990089847792901564967652475780882900433796618262712029737885124491770765460524269497754073984891659572629718469288595916177306029731691175366108612603790450099537907393895932933824754485627239286719740120948875076687355209316947133921065064784448104251935175105478745753788156680786034851848970828268850688251418985713405867671637960173057515323095796427592338700481806599312087949512503428023017142162277382023154037104217995325862043707034042589397303528411071119670422186246763815090342525634007390933309479244842433819293215809641051848453342833669865326301584288440566620275435980183145208403048616432829922105336882816981388163419249016775929942241209261871547758869962412603130788330883909794628870375612656307438370360212201613603473233886746518471534628247072554474133522432246641854484538232933919468800853829152778960580222845839234963404399472912961901742479026549388521485795862175110268884276716213525199622884010200000616283792118106388229444574216517251467857727958979917255893993539022463613276106314488606346931800413180269246530223738267341875440737480059783249284924435674747844192225433673442880449761945866950667059090963388501058212306252574886840444994582172449043537724496050074023912586723931561868170876649140659337889356969228634045703597138146159645262435124694031223381887537472667744051747890063783249616734901103197908497858631554066948241408205333779711948439182059138108518369775752220381612751295342597322315763955250573051533127654875564129922497309458740775130664947674756468616432375614388682068466100250135378700410041661009882948261074165181448151486269709845468420944674007065531911737170289551283930375956647741383269286218835009916204264372682455564538752516627201799956744648316617714140124639727538215629693245293476490190644032009627343649860318529696778162198172048045511246648170543260522014051574197513545883203820122252062169080655013494781035124205128199657063212137747819602691184100908523356806427477541041856024430299732343216835590125807266640836154978936471261575949349312439509072021953434769196924244355047684396764756814680233358288938361216325320730081041460780244218400480367072564280544685697009487258042713716717771525538852351000859865752287781034119360417055793932455142134976954328042038293977143576816451251612261107839204070112824588676848389430485373529484981707089149490350538059913954974191263122489815067870905442102789113225133088890175554213872534179631585309233504148441062155383818019983786710771357418532005702537596237125684447130197672738770240704074317707625418703398320423963591078413916708475508155717994654244566693982529122701950138594393015437748986128689808217123154376607077576130662232231357728951129621657027613225149904121261923285574726390853041755137096839980709592994310827632529142263606973116544135979805199028273191031333131050775812765406781107127987013271508557571474284730546028421536944124266847621380897961189482965977108899439449194644761610735301555876517813005574886602377907500187858871100752323797669236127523135355411082167916534902413632207075916778563811382475620020646156039254334111692327703148540171491915234791071489065675098599500365548892712396038039666572731463930646486358860901199551860654212099631230836616725588156753032172520261502062082485080038214917224196347350361591949118021793401409747630341676286389770070837022115690458692084397119228977979028703700767983649104461444012631580732125048864460170869005981813473302116554893690174743221221729076257872179926715491181253149694743116214066968764922470224431198214013478278136359081889890308049912220801110066405735765775510041354081897080936262267344020465607977994892343209167273916930873682634142076980353994371273752180199241756209017714095582158632897274699353909618460568582504573009151338616129552313775639114012356243180582361762990130779097742014022825107405432738060782958007913776187891264574412648271109713300077326846963379340713514648939950225144431224366858345858062870471553855050319466503442882265207707398353122597477234118111233243499493653795042242241128005128507237941853075808411624254570262731212957299592075636641289262964887920950165711219551660595484007547856194766410643931776129270114469661422590380461031131771319492272838450668334851000434678673049752715263485968954814969136443184740851453760802447074718537704423571525373904470871547844474829797285339509840004872580778160667477760713308897058375972886886423896086181871956575005427427280174000304367325018955669177396940650035818673780452542250853386562352948065227209515797172413766801688105149720338419816984180197929783775874838889602087721326488034118413250122868904826114958060852616234497219224421006687223467514425598751048235314324597646156662644985327491424488934869701754697252749564820543694208143011783402882213137920070417038362725564264819663664506552258003656402266866324082375452937455950040959524930838556177567046633513653215086332092647109635730098487131054212143097605492424549057244845756211721344929336233386727100872735560814173119977293382907806645169815970733344203493530415727593798428216492680294495230767693542088798888294053153625026700199847298660163160597007179123136698440884534341681840011178407967901019754362934310637926456610134295604870788660177763729959698956147585608604740416745265016131189848434415546607539192473030220529843739204481458083518689383202218608800125329237396448347043604393510640897788341801420551205549605233366779622962966018470420565800202772097129707681730961679434895402394073111079149216705187050340197261108379734305870797977081151941095588947786482811144306857728481339157362709386582324499309218365826366623172652880302715620088079926991844432827099734284813640661161140733747146835212982911715908838681841538712232643562014160503637301140140237601839527389013899246608831401600849922863608730589525135534343386236994775601724907135282824307998037881349940210122072941208364388296973801317815512740291857668055022014808807675314185931546153863509168639296561211406966188175538313689726123989963201600112897091906825273593332743775719433507726455398049280429348391650236102625860174069425067476077046479093494204293934944915385440780554067033330500890550609272437496588536042634629388503837784755955900630698174765682441500559153155083425727327374027441859901924194735551498798316314569279210741276646066443399957673856074191130813362055985642376982340023655766010985923097263509022905031025800830635786896857147014020091712334206538173486568520121884108549187489853657402799645490944571972503462359032884249867947905006640988093744828979116057508049795421229184191551216374762468816605321921611183143025397255053166602366214849154863685978723461393644627115781793262663576735975473800607932653055323287971374622166956194272924399420866709187805426137727136641302386351402902151400360941279799046474613587909107887109328930685442064455279093314135731724131465765769772312910347663500677604579970562529386759329208974773757364636139932308954865029738661354664841383612633054063926121867249952957165453018744556428851001806263897195275402129554153760007546196487649592090834518721175351684380547607145325328702629541229885115950286810159722888736293756583945506305819187696606388149237396686818529678590754228244121977623868981178367212603976803991540118368147682136137898152315900581630713605782324735557229755492147780027506574817870557567189455542025447075200971639508449589413560841041524428789041464456402600138127365433633472126395229387995591441625365318079692673008030785214882838893779545687212132872866839398395647737884166155185857626005780096623849018501645305991269586798759287316937498092221842091330003620022055934277673421270833285000474240916581000019650626541455200416713949228871262050598616150769698530718769096990516240897412119163219823997981951254961444826123561827992879791567505713132951031883564354203108073016362789533863150383109719303485728268851247772551077624179563769396105121205932703613415202038768433455088291932280435227537076724761137452388180636169794120502755224557134077120148687067560200566660814542919399744806830903077872288984405710016114227196809919129789006201731708250494664057877041634139921151210872111373721128126900731340400787050944196826751383410226346776678233460692645182927593487082479734077704921960741979074281301811141035602577782394566921790096739425944045530000911053677684742003267153419893504375867569836541505064245610138872618823410633989693987827658030548669518835347399979194646884181151734560024021261343513199660066081914576600663735947585347915793091327465911671450915620554649807255959151391760566686235259097086098421262180807534153388361590847002663282385282769547977827417429483903637783590292035974408088371726728957754294464494632133837338130805314573701500632985789917574446756042134912566366208468548165779536317097837049481706139343504112093341705739855480133821505103093521327716365477668782229677047501544424661196159533834104457720502116413273254059330721139318213462411436797187053880140043900046648556430376057206699793144136872216705747539609122971615182597368472390366788606341106592036725984640529937666066697313353848789926806278157666905521554435525938092983416224391723449319021839858867799787290826185351350244744788639994686174549550828020597424762732338500723749169461774490400342197430985707277559668966561545397463364866587629484519251863031306577107118260694294159926268867977061357889557761089867909371823941313674987873006747436688890864898313660612565553986313111436288072603682393786557759544828728771212712047700780671552888575574006934230462227979278452711489842343057617162900979888217428433214527282677812313139486056327150664067905063002589537702946143373397404560088072992528401217169537220524529391478723261930752444623092855843427371823120376903796552782478715274770146842633683490144398297070467865354554769309888381267683037540321237464000466814916715583190077674985256117743181427211099781110579798089639621419466360219210768300093372380706220001719890318051159128902207792095907819629448723403310598234544124561204137918881598841520273775515992522252461041764149417412549417656211444039173487187017223536898130796084963499906899909081996689288725301118637154319984274878596038501267525219267482700019252511837516719694753578379765434560053121745856734527048951521212293369523079339473011916950204735375416089689049227837342904394873934951445870624770838196576461991246559360810475627383410702800380172958724553872598156922287860300675679727956180416104528856273089218559429636677426902376141559940021803217086154096858106368003034728454044182360646949583470065604974275143448005963403976293690355445743639886441942720703824983184021022280271561612408932011828105088648857829122323592094997217300745560181449009190627748681181155294692317887766080183209226644742949590282749513270815650056249711918307731281636885420816496066600572098054737559433037704172364473878402532063506878358221624903120364411959897628191042122747087105872442897997115013503989228830594213706279320299056991986591553415582605602251393930234429911270391710238539647104479579871836867258793526379527639057817594174088579032446791574123271162954076556700844931212674160546422314371258933128087370303752191528333004674408738221740250050323445349900947992121460540912359154020531611049001979420530777373403476088837485361917560548917496663948452997477417450706952365401655660037966381734792898215173711402490353140813448194349012479288964369267684771324187356406782483824680211613447233748935828784142263515863669784627915351525444320821770223684165791768867870415338663738981943287664004639790066756665317884129895449991374636029563964146784992816936400632450796893959247002063002104750594407217490328931703190919322697512882116537414581820120029879877646259107648513591445437657253925539677943747209632993303080553882596454753487020314231414540830620612801097705192897209948418398238458015202377203965141135644296711097954844573816220037390538418653949988584745244791429941419211428801011235104441631412104229946716366534807779811091785659951327995847713742370822723799724334951342984830077339518392724486641909747151329009821440931013914849407180142914978761349793683481403036366171420246968004110135294565613720140086712933220091272220557562955762444892475453820277605654465336279069834876451355252926620255385036366701122886985772907372852696754312476633990212040495261573882213755367344899020070762175692264092741226265718601186807763038988028793890139188760403131507400739933946567219094917496502676966702594969252563959995627992677451798648859361621618811256861386185505496000901782528720031723672074178552122977195214129617378313091111326998297581598025989756145882017852737821910749345693988513095950933691381607377826926105093564014098030533904400339404570169290145659700629207161782202103918713327739149990866240376163999416372317127991451505812091201982675992894456417165304506207480153797136185786869250060472968383858195783497053004531807708738901108261190261601817015207917805439720175366157823708136698735845976382344943150470217099187294417684991139366358984323873489814679301782978722404017750410283716675852365772639700180431462547244823194264725636314189439132355006122861731808184819636508205714655454643155109932860767956513176953868337666961835315355039030110336838021915635038749186895743867427178326817016885160723440273731975528134616151551625989022645327139523225245796443788121760371402512927526789235989850640808635613051180904820188756306677570321075991077732115747475887250075858250006151995450162885375179331108120018425618294615629696920134660598145835033790113494689452645676661392582559316376565597091545341528886967364001790468136702038415488568631117042517134194539712460664998654414049205921431253835012260782155426481569503047378651638732882308972472152991299508347994155637843738955460157802808813541455938790634201129261238607640966251946037165260932965992670540507000892337213009037910562562526606617718216233093323473180576674475941247424865973867206965631694553271238025008727694372683644570978195035067836238792529951103895684420358782229820823228109433000108439370193318619330201591986641467060110260591481483169892982056447236868841048756071596905884768588273396656305762825206355799846740849441393050241786112211202452636805313299278069887437885158008375527165260104772641853815338606468100965526907592904823601179837033292464898404914478543912086867082304187451833425655446914809981736560122075275291969351253790298898605772704212271039961090977803759381715966337633215136612455957146854708388454412374106610224023106625696122052173821765666208640244275528080015483970453882226331160368829901369319798653411204888786217589845995607225054996567026193008273832612719089866577238989182474710223593210100877614857196658410278958991099658560054400863678223152638658459159998481547943451576121558422327004768873961360202117642636240506128905819403701026387333719722235767948460865693115623134465897400702983991814063482908967192384315304159112298223317259329278249364698561804877146730269982947435955313215014425617798404790988642598228340876713969661598056861345036284671475077980938890297808230069947560605048120235630589071227394889713737184963229615632623326142362038425209763754800904460081742257960891384966837901310154465482184092920598957897669743241745658976585223815917719464921405618474961385952118909468019458695463187348440823058092099689286960756347806666072636414513465879425835600703959301502327033271648493314505530686035221334406483655390755206241031275407421309319093450190762582755469192575874095835104990701738014195508748435051289040384821675130574540553134894806887591870411559923411367509917714455373860378864948888441375450975514421122520797350487157496719283322056087786139919300262095323113003146956591420137729658174833210777554015947865061902730737030754064187552183789358657530394841576457376041179189652183789595178673018998703105695584660265303295115261395302429835637492303477846277517934608398368338860141673246985056384069676817505671900868219947429766344865633018998207540281265347364234430018909817563673575532777500297205317428119779790868841852236903191289806899613147971663148804038553954235304469188396403445438916578163154374470330335262341284375638053083490799933701447741625223261705507890218163474359251691185045813690123782139719180038565779731283349452985807113407976018328067400223870226413697522599796429574108508533939554006266835469267505203834504906274101296215722802697775739026373226238770912883145448041978606564475506546765367544830473837631317328086840216202423988449980332431649036109465481360119454434313757282756245959500916941881027838623520018239329538004138599728774445928576158244445796072027366564471801479076474071115312305285972894608414435173365046148215690016913618995238955676216798795397803256592531803626727465933731657250733614334880791725088873747983571463936644586244117098563020116876443858851943513513955964259774294929557258098016338459819616190496671998444739199760893389436350510914094600007285257595749316912390002446693349125165661936747856157864020664893541623717244319244551091471603236388012470356065017974569494246968054282180959102378094788843197888191446169490751031339989393938255644339453010795641797693960565287727498123662953099622139820144958796456790016185777942286026003367190513080912406870377863922051668588166395327618813168185062230301915259570108618963241453561416592689159130442482216755821628054980286107756769728156972808946030533667246562129363350975603727521200591346523914731519676247639893903168765224356063072764294705072177190660672908770379549738369198588577574227689239495339204286628618237879113473357983304852477811129333295502010962990407245617738390227724559456622181777572282708499043952974095601877801701708882076925668598662686974865878368613497552588095511798268266265522721831363240327304629669158954358537956782311090449876284577436111126303461761442769478616976548706989466972923435922588728357532995878699388241674728820383519470099437014788123832562049441452086669371362615462718299568939536414049723144467931106581097885349039558283180844290878121771038171166598062492410970072987242045479680861472199522697030856973259899426679863010906138230578767513464727622325578223874332038632912462390786760994498655144187047934105875978069570273414105646714313053082099490987077717117457746790540348754832588241371536226011584292666386282000660602500638421781115590894253535371262163585138775142092019791250685089061945069925483125074413048257109162995701665609378844511351128046308769372912569397720361045323028203013849327760011076539068747479143865483409029304428649901916573598580067899933954050506080307374073971010924503937662626940587739198871971155480047226674165184751739076270083117140779048360294143627528325901547667984249941537083880166541521999846751338377127255820222756465023292786392697762426673398759182710801053547521543593304426239725278363070439576823863494112162623522733886565295403278710658290591511386712303791562737191314367378714244251932933396196855467772248177942186359485226928017285495162199610513214294403752301298360780845552121683845892592302678409197902752867691774611379793147229881662623081697573365144026072041398838215671375864882939365031321131486708429587391226698662797533142668168515063179931453637209921458002475973396391130599159300489101620292644259925950440430976426690260350408584418731002635416564296521072520850489297202187395222379161642628394488714241801175583771442421576675377921851669701494607171626087981418576229139055721033605651958187027798154476090124143226794722162678587322704745209113889746510277063726587755744261547387938830576924778979162813488314237589686198050275238665168331287107813684460502889640736539896640393691003067616922419831550118427508212103553027712955592342790161834056297113606088628337170733136817379089772954283423601217190654350295699769903652402978000088405959702270138468650008780298491913089708995446211232377993218925179361342652517324568977735909049765109965277134604802507976370118131241066597593172467056845644852989300738856893937327218413833093438834266625104357766250477494308126667303675651482592033129338553950331352414152888265893116537194938140694277899501337351903004705344911853466533419700637641919969054720836972884616487370565701497674389196904521910535587064995259818636322897851869204594849063958777022351235242793792894168183835282882443244201582340724646421565963169869689538914555295178864976074498735928791291083231965591382750610904690358868782442420496254053484971994036145934457406656480907641004259766334700492455619180627979895231275845375083751944170891239828328809611881951842295360676673571069738281324858473210553069307538355433843930290288458432299168769590068814108517824135266044074160890074513904313723623221952684293385404126515622907993144163583276478135284843730689675159273875983259773420086658479993054426832473936324005723567016412534708457793804350291948732569431471877883604890568980448365829480122257185821013815360217789114687187946434383136549952897343079696424982882016072948438765560211518204080623930811989635547082618466213840559849014767963864720975850680234800270149485073913286421388902867023000708016677656073858506716104010858679846028007588438233151766184277599201733067523429138977485252008966784466887253599076842791686353108899351394890751057589626855191805448624017666227128452975458595869439880203113781335588442900035631770874204838261083059221604492915589722929254698200848931770279678796368405126283751875436204699865418609830878801874687774112838978972787314965795783616812507325080403625061754945927129214707324215725799875617226944571917580362809425990789448180142614501793993423840092060451997541182175274585600287483008850234327729399006491893919182446609492644973222879533622455589836496348951024137610301383766371373857927408309500849644110770787431537950622809393551922766680703059329401504235899094154193373163109492385534304664105233571550823088905938809485937770200272282990309673068624865563310943170116851709919221533724936477509366793317652893431892989322667801782209556459406616751996425289445473766602587584155632017821725305962506765348304710053761170303735280623458646576793920424833314724977566608507065547392924665231429801194155991350967357340492561848852420667811956751693688218749045589434462336610522301913639794890654966361093762525875699691840782054405528585097700724783733356795585141732890846498564763228218491185067999631872792718224923715754286073637798736672631010165546371408582744158886763265435979433665938550162733176606600623990545485490889941503832976020207697005862086680313847169043422007836024050296252412251961528561356967745494629652594576910136641345347736280776984302232779126112809791351158231240502714411387015668461008454899539353039159820121287061376657302155617951439839235124205199742571594028603482740517608111019068100141680746143540170984097432026578504449442550171388325926626137480996455617423308517957079889416548581736042589290860567038969201488356625027447027201557212212845693400172345313806503723445369452843209690198314070604534189229526484014122143954203557572819721641049529678709662933291319285055922319749490720924338606274731813865073452398101251078519977750822534890935140935834726379047034160509170374999513925502427587035802671335638665934964580573475776766682421781544287592949262440731024849401452952579641074743308612611159445041099522356402817936656283193203380322141596760007105620555567869924064758658222912932355380551357122173123249205054855260163544485583756855843997086264591960242444776943419862066901138508798405538817495280281585043409851470017118507715903569569528148182326967185385048012293038622809451329654061372156461109454624455385940682400450792796599003684386918424823763053117977330518417419863544530026132103901018771437378390633326011710165584593564000709140454596442047034023388156681704764452885240226075419418374982705845615045853085866545411627773380595971811628967796503932402133096762688694628165804181622042502310120217992780042313822172566290720786151886074812058223196102999018794646155710173193040001571509023001398063863637601446589078410539566039912201371271062104459303452019880930357539664323596785796660324558002736496463888718267306901869653059971725902461901423718913647607158642628815367317598325666455394365110499215545415519243859155965550983596049675253639421829339431013561491563043507135387687704486788138652088882643303345211275484059253487135724471759449799205984815866121062260853073527403947055952072272650578551435126408921488922928444472452484609246068110454671143580928902776679920613984393380275248468265475529654999870990430240243155536812920214925552390321847571995957235979153980200155987845525745627804226657698193596719924439191560029166803607089665738746418127018728389112709079541655563776603765375504557153382849915368512936435178490201319540051635078632027619131399629382043805051313770197107616796404543314086035240223199805719332011557156415865866944793868007773840617635719410279318952205918641828394233672688503239652183902312686841878834904873705816039836256161804946178054611352595173591032367185674833074026561874532747064307413281959208506084324881777137377176899440998858916562206612984711449289464057959200484780490724216662106771528209085470184459637408283969670919337701982164376781137763288486909318416262312136023224472157618128093328296433855335664709166974574525487921965196987460847470598767032297034235004130389271356982663086108260599203535536222452168488427337146144169629464519929327511884780531466800914158403043454558551501321348940186778186353276011586405330472620325534244207036576902423490595556606104600691427813693608658173570528434085335662457090109393077514923359522338728745994880157939881132376566234563776206741404411010220036251374550482302587899248794588432804216942750803612457228035416419095424006082710092821612597485352853079092042648883275526353386570957133655797597959087410707163629606603594304648897270216474047941000162689814340872940627008144383541365282616089577620934528214714795361285511606427880107826950623729442612655445734953979554496460900848081171942989959007460330307607868808714130130164430052517614741995482874564092216204109882884499055168197696544934256459434293852999833147532212451455726096950768966236914470917346750957119209777955322902027778442295520079502765606641373718635020559608252170353667337711077607008216530151318769930979846222582910628110396942470382895565861427372264302620206400905349128605763766362362461356889518321188362169657156898580232799656951574744636279866715160892110317470518883867612641223151007879289855330177638282843577490397061748194336270562156241319056643226688884215939885595631372286628303107111326424209446965556271594406570166154051404754326632496605188831716488688318348601179040915538823991878337730871737604482581135199839024830752914819514552054065809274948069666922390398043838354692272894900121480045308734236441649253352868561192445381249949713296067725084962236068057419402966908921291897176141850149439962224081897285970110063360426636981551770186063916182250433433105714060745477040095526284066407512051933174344869694667882016706497098142694034765070424712516838650559278079314880545859923552325298653547120046205330003513886592931169260552428716310013993477060250549470449776801182062707328952174842282583339720157281164240681870603466334748966641941968289832055325194825541975578966278263337587888039674273836532758690152182334049520563243246446281818522561566134172680054388111656793079306616819946360292397151326586273546929613475876277562733402737738292135627646591509465344234596658465378246087232024022528606031280782527992404852884811460579922549977438852808191732340462469640396707463972793013142546871355773439581550893971757909959290956439847589382874625463017186012397150682556305734882606105303320983524175178005691265592302032801023665589534954483523605030061406551652828947606311092073457020612131417153847976256101581418166066994628850663203296372170802926704307768062979562582893571851963021651963700204984056933111493189167997478675381730669920480749243172231629833462266692931402275149160661779382534421454844139490153364225697109053398098362073200403434817410238239746994904295201402096097501311994797247187534490431347743157136122445978921730240235367708441290139090628029919606339968214582546115462629849760284490452696621441902512433722783753990880525306690551546212021052910601865817990731058145608929827312923531239387450917115542126793850500856324590116877384208530233579367082513931391205102406860958599629103732664308379660769866069810469950504336443729973305731954003411884741278334080975852276036845035572916716369402238240311032254028602629868824954621821529497593142122513795927478773382007136883971935433306580465500894690881777225495544969431994051079826519283806483981540721300485431288781719594376636097085452505288294514416205544517477250736564252161917530703667822571172222249304105949462996332287957086924476487252603009051919079398011949871517548351817113708013554182717333601151797388553499033459077063966200642117371619645996919952522572743450481553150693269586240791568162686439943914587992731239102431429888197194217064267965962557075016351100977675561505036005823366823085901284279481734791484144699468423217199096072068181619092943224556712395444718282952035649677677233832794941845954925616119065523553298209078334531641499311993994330540908174371287505880277734665552804287435539268029148382135130947857113702620633412437690505799850441592686034115018801419123685238690019150800030783752820478876737646325764502039098960159892171275139261680705655514639862461277395383210139299269051059648195882332213007833758521416232128039674216295511397089253124831810044698917901590466887976694590352234495282821144506942342269076781673727302257973233247012720136146624599104925269880407994857578015544686161675947883996682418614841283596448708958727451869124700061458715283498592718698423756819474294812473798919435820890438879159971072818102941825330879833524951181447374018964828898816780693796504351634809555875801583423941718899953226093379620793933017746408740044992144709620419133124052708015714168840232579010497064035506930639859837791357566086393809100158749435163067342686389071885640914891125947159298992584696676442553943453259580506783179920469560892282466750836086922019435239943705472284583224100137118878889388665709588024677132529965293072260414052849861782865025640782061293062045656442837439740922974295062303551766275861183583510043246435329464633757338293948046861440569227916353277081873502002419015737307707340602572990879732456330259499079141688377953063735651990103699392879413297877137436173206767273388610126111934992388184074571167908262863010791999359613077577035641052293075988767852878227269488394588565474449914455510603184139072539589739443121218443420309615795475003149440689887983563291276676785546364138247357845974752935954219214397818053290921916726475179180262989437668188597708445374311228326882463475997597072283912757127631496550333411355069775111355999719143817987066620733654034695317485951652531787875153695845408891053045318423453890755774797900135544853623519011997563309867374284853745095292362978518298047157452668303388407325535936840745934147509920028574107750041543778793993132615869557009603721758849836544331545202623861405321237475402358318758643469594100394570170849509046156664801946884647477386288379539761125883575421848037122813144191265936444504644203721113501961211309935584762536700431440930588496303445679755018234066817659629096399680904219770149465768275700903825901525430559027543224274629426010241064678514520484148498662992446809801947783738505117559262065778033551374910149760580141135047676077710291431920040938823970653962130791313153040562574876112698080850155153223374361749682841844850806215666335018481928419759057555503766807156027904319784885316301116305030161811448827830870048186902922160119857178842217488009312632984243718337325112489800643851602116792328690853051240382601432640235251641282682861922949572777280409259777902706275769859041533999779342751021929880872402510949491494444255859623235095414888024237325287856384225459851650558719259780191773622300678873099762468516091856788333571864338564985075436514581574963691602947396761696473380509220761090203105832605813063823402813861964929039260691848274234651564548811051729966481957664029083591969575365400653996985483020182284991626799514673230573678842675413093765012229311506645822717008192634809464498149537409430133783385006121811954227066389330892106071503427238857326624283228277064695757269146556316137288132761964140029055776086634573447874444880310302827497328410460881456274350823111406448341552705533861014915310033548512940065073098962071817908011318528874338804003487506669588021965029961714064178984914982945627080422834729545992205242195846199158646034285733175341575090675256578288926899757304403995005124664311508354907295764074970839341497324627712759117205232937163188243313802421660671565941133864759361133036538863300059351644909683124607700959500719554361056620243525400207490812846248271634307559627545029228354378866987790677003458735242218319163927009832206883422666643791197240634857759808377466261234816546667169560962196544288364676763514552611723654201277295547790075174998838672780477933658604338193525256694834070626265303805921527765205778077447518902784417379871304577353075561307182458428810875577808827329657769826549479785143906858277496818745866874052007245454791808517960886874700692077075860197121082481574854721863335481221484941669961462896416415292808547834926489593031438829223925673212929555116849001071247708753853609655382897541291109853527264692197524736275949300002574116679956104623119867548871084772016632793326973559556934192572581431967210088106359307280997734479819332704115000556742401167782705710884730777510996894347031894719823389018990353225076738177386907552738202793682269745576908995509953742016978127001056205387514635187191875940213217459535814791147157118725562281122320558403557993965152064019331341569585854727212386570568931977661816695725171359812412399239805201068492277799401353745974610455967171506466160917316634018758512927965979333760150812072733392140110963741813702735804098268033915081844865541436583391050043370282195917896706442852678260292574409162267047187329311303116822403032669956972293900527047887237262277122432899036935761479281415783129238954833481998586499537623405568918204553918433236199784382100775440339912113996870259628780318656582042073255387374056831772400505063635548604569205890793776108580206151032132467893092649231514784869847599522028928248374456740793488374858823974973283656746337649241851299142821759912071678485940372373828469089404186121334637412567457924848592740205735570167319374971661236330138282223930572525261554281851198640638735926157858299322115701957006707922881443321843159830574151147726507072448965318911469728532878820415345980007715722469874930357562963681914136636676313597712916395121050813030088560624112712061414183561715043429351588594716914070301139651865519580020653009610684079949983945290379102638124928465116896488110764123819076874808976750676447757458776646785586474003997515708829302609170378829170698196871084724430898385070298008245950546086668576909487054790663867552601693923952995103238231340019099112981468998692569244251143582928557399948721635021405145094148835882149562706454399091714469321115900308389536152811621612649088069996519858729021275441746646680108641677166984639282914004087885016024941899873909730463522030464134380846703040522908021482560193433013646699486366162031993821762256233648533131553900757519656887724235114813277102640430552614962127253061938683336965847100065489679002516380934915802815544956614584320241855323392707360469393217163537264639527670232215562004082465650652324298469550425031193484470817824443934795122061895612649253076190890244185946930944202471971173568041815926042952371781885117225324582048924574597099976797417631111620043020426436559011365641168016412661378143384181372101461934086450997119029987552387201543392582937523100702012931784824719688999822888005333195396284592116401697657326027996253692484894742469833053871822717994505533871552853679783836750412214668614156960917508309052027422035016065007145444936367311659774221485429290301656438522653147413371518767943186903386975539382275360656905714674716454928032930489825427441070175628574176141305980278442279461836254976652221590677139148077165362517073020743910632365370787315245997185486881323535725281229448343561180310637020570911334190971218006547033992469731150736886331429167717752664269276504186077100948462094714154500211214516955813148464469589817752765076357299671338172101964997293164472044290957669073411484438971047650441094042863785518520614854312024685620081550044258809124098671836473155807591213992731126248315679864335363435845439336583074321097953012396236133463292022499773760804103940691057190339950984478449478711411095392374889672516449355461376825616396691843737577781222805779730180092853543419324813090758610143466017480514383647902252127482221924847687281387820491337462701546591602442893652065568532052989095901971298604085186638325170801017092552500364790288890999559178852567825946739994584073025866228366541124194071267713723461768070409381368566693631974395444558074853540479535854487588785713147831945167124763707491188885426014151526399046417097507484127482410125416128444909998904024159803309532865425225457376518309682147659350055961578208971669714898249908330041890879823135076652199867440790972587343782390736706589788759532198955693804003835956865808388903852040191933543323914324238682835690051889962122584230349675705381760931428752706313856794513892967336430567171229002747996089101450900312805965623567616658099943042743496635633810009853519146746457238935491221411958807063869512103823596250185470020792536973089911249717384262860072907933389298308292703948201533256002297499954767924268960977803072950952079575804275980404721561233919481573686322622494841598054741652627034870942620728477135249713955185027846913326622090400744241462074074566910748158309978005333083415024197407433798693359180588416605869388417891162090526119543705561328754468339702994183834522025551319866098014101758020867291150861306464566348560816117434036438880193040407780702499009696450917691757747954162575075824205115905525738610705136444589507968275653686947374605773482999438200111056680605974695721737746592117517750320998185196122061702609075522407433578925808970242519047041033274742842021450790029690973793264875628894892674946771378490633522401416678748672042584254853090052826615855708355961720720090883731204521932358941697548406686224857309586242699436665328963451932993132455408700744281952325100976537428115622942536516161852241946367159895300672553214990854422828990725164439452179994242421690163532165899264534314466664483266454880248771880542962374880140568423190012077019379598948714174915841248940380938746474166658745888834206207647852578273160985048937066263223777773570394754692695807206720738900270144682860012617315136390863483718964337637684105661170084462509850166412684898902874077510384970342832306706251011847854465349260532502183450670557908837641983409812968478110476404656166845196943596520612327288218747620391762513864106011426946908855746432589783603481515176556240989633898741433717528201168594839475518752382526564936856031448054844686937274777941673697606734368824075841983798566338409806281005509105195161406599321956425863451533551443900794413390460698392175303734306306977243526604760328352362385225112190105879644787646546899755308930007396917156280623284443889751358814048236781164237695199720660673359117711762601062332006212533042429917147128694579721980208785307579031207378651710164010942372208637259669447977746697521556936057982689033651657571850921164150852363879636626958024248193251106738982674868689535879800239059428511852972232841518893600718652885486785775491640577549580679708747549161228221485738541666487060626882534536258633215815140986882243161330709743221260619684149464027648750699785520734609492609983452325800135351539618970281192929547066192399394819204584949060250735215436877363078599688266291007246109900271440638974989364544822699619418278027277188257635103904701429151590336613687675509288836436168512840318653704357814273960994685040277262613682932315335422581534400864509470605293407398541584857251266644682421794990182014094433799301039558614819783172231403560479126271270119584505689654725032777343847335840515063595868732366536186060149383337957965997207211149020585027433960534693510113864350483171104403414432495503292232069275819536171297529689246752280815071091904073123015695804202838859163348269907563768940888219555014110944225797388525752249045698439125231591077955921486226287199288951717677084940994345566768808683120101802927259164721030075123070595470382573669880380499795902430357912303532623701659058622275484772688406661153726166161445400802113314770488628734516171391290242847099113618961093878943102890718086888088426661970409637606536454947864581291915095341792659492327955014031625330048801461408322114311865663482317485640447240753893067567227973718842281751146150777841122168269083383839859588883249503967503261988153874596635078743183716733518467215616174470956702909493216519769822238914848733918795080240471694072224652016748692757389832744101825873263881439233323206245793118567149146214986602788684611795695309446587407593903826851045234394480342558179182849257397732884107841424028350157645737684279538107221708524372292554516473809785419652411683594592588191489037817237378955728698734050084702314908489009168909631355040826693445868577094525298168697695335595027081133319975762716126927315635117543983168332969802847010936604483800758198435739620930937431486814015721866366994255630728324155487172390154080413280934633101331521428175284715374536178035303676247342988786179547973594662355799973692584654121483826650551619663817988586240638190626131372262884400819123070101149949813604587236864625762175323663998620096636082715261501037177057064230009332443326259766630574941536370990017718716591423870305820449219782728428986825444808055365788802227082089943613069245836096204474095231080830754687291583884375714789198928288527643466807557736752973139117396038081802013063575701303276582829784391712277423230078705991400630367474363370133398759248587475752673939578588485225415749864638208449593885230228798187409439664374721806956156859374144028672278337522347075373954289968043429543775977147071833284907674664386894101477523509110684145992108507675082078569256686180214920397653016002936272410688906720833226264972085420766862232363377442104678818030201081336909300977996766433656452233141488105376933655393010184230692718975218299515420789343706888168552254138014759153775345524415071652230952566071412955360706797805100007495133937495887497031332407634775267146345240950820577284775118914992319991211720023559661607446984712612886044415785916791687606021766837662371999192923755181219643580982387975920143134149974537420355758574995807182375687879998561479353573398335122399623470200308681733344110538170619844739120879246264493146031665642140052195834651250593625214225895572442670155032327578129977446132201644817095824586736329602850472410105516276482098455855998884178232068038817457440809730788926094009278244296187424582477348946347871034860657362562121595615527827049081380395877161912991285481961827340942394841157895857174795676900821505842530775748821433277908843358896822573761005973895624651839490474708754151903668703180522572337469355159193211324167471685936703905623479783128540527056282006086617011102885923234365239392858445441918474805016585230714394294469180102591411191658106482010549017812689818185461948604380845939768254319096688271169343698566491618802558691405515655766352443612739263523734148260030985417091001663660231548844077930815567323125835852771253570302744221528781591667985373427416302161096728890823409252677390164582341359014365811245925608648012019152750034677942317300001389219850402770728979963761488614780291368970388154179842925453461110206675725165550059611986217716619469185188098850447925045876529348793210530856503843010045690631548979216109400405441620777099025060779082195446233289492708833766081895002570876895426144735984601647822904180202883816604344160609522864225541232280243640856088340629765140833553188913746719958632580106778800269185723688241708656097746620130770201064304537764035294043402860740293095546118916510688156369089130408329893549543834982918952455026880269440887163668168022763594072121733768484293491954939165091755492273613963672082399580402534469327961991701300347351700047830191206894316852733200862004048352284747177833443973762776705896857000589468114755836469581473053800621931565254182700272934959776670222477761826548474351493334304922570900304280176752716363696905652681117311371343336487117371761245383808088866193542433143871152869368913452183470215537233448763934650561664813028008891343849061616229149816449019328536251255770463878502266109127788633052449178004622410114922725446402123595482875005798032989467132495916804735061637880205241367371681234786495098221511317786517584998621617261277209292904638518878800744237017593852533581257374303689250679765829894482329561733254668828040257989611006175312381824634893309893058673267691006845221278336981518254510154320383547044525524497077384025823946566127562159962629486676555516328989346414891512604362514446355458538279758622735153207897069396914099503535204104021127089661005741770212485575292992803511133707639288740388380759629094211212276292382463464495795712136826775226939852340676809529943172838735314266733170558561805855764723464348595040349856661438659653303013282766050236023860532764170889931284680885563326804143365094788157295689464438123032627761029854061446258356672271039820971895084382019547914300216262026773594358136902411453972954245237860806034412440911238059972540254194940353289680460037296210509286381667587047596489640696132984316811780814768023394930552670258016931307036950390621589547297584807556778347436405339189624075884593016818023063639164876802631600856564568759711193748770921412018141201179273679874072786940928846154930857125301507460983663824288491460566004604717673176924613418230128641391509721454359899368922817498019499406946541245310017641421834270632825919717431767723522358404232909474445175072728685865554622317095404837323155612968319388356021687543369687414834712829159978233439580779160230828097524962502979432542967681292441078953688671597496525751646918095983920611589406178600086750433036949233402562554237986688291335356523468318679504580257068180862903025274664671007648719980763776495520494671372501283299957102518695606492182826982100210871659579248650890639944383528749862238973786037107171937584129154747126014762719174095322678736460928966729711654736316056852132768957027122545377654481080226797501500931794923192221611470663599956883469949413623149206213137895076882839822912964321013876715609931309862684688561401887355475841488018651019231816058241646705165806272887132753162099884692029581934678218155726904116415919319777037475102932937733890046195883609019576415840016067624251837036812942190489928916749278400811124595596766028322098779963959961548363682688390741528348531616580899115945677260410633908747665360978758602453977276670956996599008275697524350949935572876611115031121706073766560043131868632206042862240823548089897808732070808908483770337515121367217355694639063376608917890845033789466744845158441712989726244589923330705983253312065552942577267589170702933733404734810463374750257185147042301012943790662302289610675733286387089467000608020515694382451668583841311920298781802373606594412034589516665707807788592817656267480976102634906403633377462154260264084266237766045534237386202894416066160914672257468103933175800409075911571123128505746706151584432854840785378810540358799565658109232576467194230190935801990315063065710079511489025328995926443071259911458301887313864639999280334777831457833120425210965198379692817725328040349480937220483847784803178276323408587814256691471415114443165127165918112520263436651546425315980357777463585525896660310538427232159240960977127261952939806042313693874393187102188828400505745736558954535398289769263105419456812520677930078167146075663755006007565607810853097690362268590154565718351955158324250833051510826407435736093798009423853161296458215996063209951467526432655272372043212602916104739800241847718015990703192225202668933769116002604715069172377249138446775953426806762819541955997313053778830778501067623320073833786817978754918941233227474606105208358322576822623888887492692505753153061527517573068447684098121432155792787749498967026376146808355341870775285501917142020709972802976197529938774830538481258489352674030377525457745029923834022610552819769701859288296004867832404494005255533450474613590810679220124133298161216674184606825499219287600196911029949112712456986820189549147697442059358825654211491806679436216211226791950468684499347833184678781027321405725932495706261603781673926729879996646424360341608580262574893550798629506114747369858073902196361927447216584976128757111599844697531405512815306005759244609217653647819150703966584844432526847784349099173880918646829411808912727699071387395272026879152246196427824014032317047769755716044123111655098168950015591194924110491091013933667897575294745669829595661416703449376126368340387480883033116355319337541276403081269873810364723902530877882393821479619706979519995551289243721730280837029524913327648244582058802127538072297373762636367926731939173127315046885523688670801409437357974675045259798620839245459523153633008445611229687537326166514155138895318609076855991911107816273838045463220877906451344463466029721780003641137666085790140736566484208422386534178077376876769079024088594541182545464039486162786300990021079287090260451264410243123418621056556548065838144344541314710643975634646351780688196225192184120020158262294637971114865553528443812401018533605190859075302722841528462287445323640153159350245334514548105634305692600922457513261657116263291393664664476039375086004037133684187789894133203882985541264155789927094525865061398509131072779838734766407272507039121694502851824842077538573960884259499288279894695400384856761770986846905164998011922866645507436938140663144087970498753201463339612548730256470336098250351945727530861689988451342967609190963432271146690574222869007875186819094155222883042953882395581990099870383245431075715598729177219479620251039469233453452619540737522774439501754140926098848250443630657647970196556294361176486164764992430185220727840147337126554321975612422832195400897608321776743683459729793999644401471632854719776671281521638080820677588487181868732848254090790626051489697017371338995085512233581804292041862941172307656987729669248332396369705935331768105534861876365018934785849647955295444794623608611516370239000250512700694753927858051837909601453697054443280893442479226818881626589988773704868811650926531096862149564753414392873697682862007210284398010331321314306677958444816773482785270800227075470618364932080894841747887359384715395942389591813325106058731847177217682358658600124210387199107239874286916723837317669949435261697799567093471663659577350897040312935122581460885509304575642225046582405269946005731004752124291919862438283472280702287855913560684504257000272246743397129365761219301336665503799953843079282239171975786130548980252540541900400320186467343379444109055881279459480115533750072884778780261829839499129840992488391450244861178047554756295053443971215814092126519928832104744555932254306773696926754451161307989965399147224139570200412671052827844281646398713672606535515407255145330676822146236024984128863909611101412906970674478257585580266326865518968730907968753589160338117590269952540366484480377608524899413450138422540685187833005318350700503253826889079634888613024718896445751163387653370299493418879821093139829261697108246802320070805942177689450557233501317962276204796997765567831440951983356125782106606320392731428147784436667674440110554479596599999807427024511994230376030887506311016482025813246792796813216595877303844059256349128859958008266179879278855563781788502223522970519628955848149242327334138768819326949493744070010501478752422283901550531037512745795826475296058354070857876236832776472237243158302198173488081095060901786391165927509425798463027386384772305188759647178551437516172859529319868919609173236501400838435256003659290185384111758622336921865178244512830653105154752851091147857605323235879166230882011944038952289512577323116440021852832347854634232842183010962889458408394106433085925430914312482228900678078184608730139890376581526672007688545901221752081645280861843913858420777643142568900794189532453426950813732053056469171894166644158222745422602359484434377279226297723135538563670134774029793658987347090513254640359356323886418645432612155850787186830427764841958798803060093287938630915498053287221703167915379135883776909368054538976727992326042406229815731644676757457841297131096421588374302108925480774555546350333659007868937478989411796466368896969884670777591854487990195723840437479298950658143463279061233852349889516144364763687860209780420835971397184193572616144779094596710213602987981084564648215729939446462040036689821206452834144061352842364406348505295258331387989263510858309528392078833035986553659363115495297999714695317156691063448232349698854025907386436424203025968995679880870766065575465273094778798060461533961664185626386445649318155932434894736516784425506316651026791350526213089169552329991662583790157388918843244699475958544741808925139770937259284570618782799928131284313250775356718047295247410461425949908834450421855946634701746105384101326939679278027679849136442345206653316967280262738187571510398023405535735679921712363341497226445055843502147020142571554637164876264913262718956298915045328162162316139918857863629371875778029306974441950635383069794458634499064609271337138892995574277831952448876347139011688793792340102979060545832633070620122177912713961780929559928688065177013007473441356730447096801292744910187452408492964787771520373998215025865124359287556373260420189464012892552276974639624585345324601570702472149524413699915286165889733745002142776985085927094247066265833328929096867063649046893818074673422032500695244941515919714790331581037737045059015007192238390887333758870831264925553213610761939629510185456587258204728027160971168291590241904594215226551956228246979755023667461385463256213686682616974816539120035647957238590592904131197973463114771855154818015663079146515365498233048447229984155173872734632354634423703761037361420692203662962858458427422601324681346155871933907759765548684031799910604898902701663815208151949331046367627332196237573393494167244629786212691638921807905416871776289155670342035420089116723295263359066721999764315003488671748656498818815087022644803419185618698786472574340576903204918820905487128190054022317051002410049750910424230815181559148864796134777472798142423942554351876987199578727745271516227992766424316605900962583264128659438374998783543330005020205998279648756823358314704747945314174222679922034501441477221897551106762417095559674931883664081216572681397249551440594117778804192149362276612911572702373559063653225440090436385768247742031014426777530487976655397660016405078480402876929913969939463773489060011731028387446757876739534810550510445520756200114036856554261617318111701386593675377174699246949734761451848102806547253971306702140273165371186382634968789345360790369850901001825559040641630326777342609965822698435125200620467552707420832511938462769516404534056816537838173634687104417169196396039119695624619928475971657518414010432885909145120966744513265424491735940385374919762847386723197045602216815125240474079403037295922483977755787424891103627290462183219983473644801156894997650302562086310347480273819091381222947730197800148566691238844633155458825917151226588287235709812935060315538615377926633635579373599039796945215867270944706981712991475304208180892641934578912893368931404622264859388839708691409547066310485486338069848813107204850393575929528425629256607143065501369115494701396683094590821368765833308080511734718918239252727711203625438460033114087644051891883165806424943176183688656226744410751535856469941768242616600541067693872773623019788524133458519511837208349737089286108545649028134810647190275086078616178848941779810127110423293892934544232491197764028359940384327023062379664547629505419050336159113156957725420847902585402144700947128379724933891337156832215649158077253325305725334079945332036363237424528654353154147520250144529724599906155607395405314551333663869817464127783442090167477135190737747420407195688007707620817451942933551445007236207601493522462117347079525541117115964110383510922846621754690645197060401743611983728628138597942298391460623286476061696367515409489552212695285111249123759705149189980666288996666053993050293037809000356120754619391567336698274996958647140810906649620813191449254968688046357619391877881158104591716465352385014251469636852295953582947867885422294890488559597772485985867252026491582151605729348536047060589996660484272687872471834808337466991079494888194456705461304463081918316436325204431037656483886927400220827495142261231953620221227073636256685040151710025710535484485434275658171666244065379845085358298933550573521068891562528243980903877586279514357980450734450463038984535443696329752977949046518918470617930467956781178937717259968874710879035390485469682501338768820236599792383856806750026120047512976991581630839928812054419898231900712510988027585392066954660103519634955098411717556702842480296701851866907698968217296541937870918833593910110207395439830634036841979381557073055953573936032148184926641137980448815754080504260745774799209954157487418046897537916679838574734394403846965487808308063541901630641931058606858359324680905550837790689773929570688800054884871124613731476345211998309395061772114956538396233196365734012535287813560603616223274975435539768622538674973528974214413827241127892048726742548574378085540790726038950910617047789032280113951519730898701545628465540016001021804201116003585120929500190454314341728904028803775581387406907121533597728990542598723726690180279185552772039091430266621783546548373843077084154132438291566683500802369027045557359028145117453077777881686219993482808277078646917489995510213118540254918220004358910178777824854634166639922301159829456442598114802762658283463739758770301896136610064847946598325489700799225890231049022145557790490555557601258521838571760263435754702559808293050308453726010769836381289501934355547347149410858543660362519360528835359447334299212729213514578272422445340173222237881621522747858238276756500344514905065339040175638976985329945944869640228231495628150633265009000803781600615652629726546240663215179848256206774705219030764376016188650208825820713844172225510440032719121621904568780439879834873601007423409729980959306713694684406506833381835925904426200726079102430117845264608184665723794516620793528326878504974523947198962340324633016496359845245382906266404457531416052358732413596125774434048436013199033353240476867297473794236675863525992037212673320683431705669479977584878334055845121153811634311763896912287621058055884274396386420062270030438251752511302493716108089038687352589168837844543369931635233623762693305041939774530492792854375893606569290252861729024128202887339284870106836706078087910661400904479636714037417701365324481072286300008954295406199202894981543967309706011601248931603071543536765076437967986321436818102536770565489228529965686445170005749967509749271017864775748806466820482163993845185019080036224847323999415308745372268350563864952734754880826697189608960241573125504336586111889820643333031115331491851297851727551664242550269340667419728731050493448329232041010689725308563629015574647287900659601371766772387714670162798868311151510147349768026282291665091582277883596868893343932944537350768371467077605856213973126629208963922682579104716826633708842693777393794261397118052058503990120687574479648101964409401544652330511648473726426072898362675657156299259317470610135845799769548369632555467856642671210319139733506897307632116058688901716579819605650155255054512368774434803772429392222809924872559264541451970752730378090598069257435030364204407902869338165108616067160157035308713379432960968926829978180757598536017194866589863444967561086303321267012367912043098120596367631258929238499979324721342834404313309830848435841715333230809085315043484552687127837522499928676872893746501130667669431016276409433205488649787878920242723239842933412754975507170712240270299713352776525756339381023947734586899071848811473336234987966872756333801497197535244317185630835688118767424802243689293899408187250170569485636220765885253507069828979161989758424784503291925242939532623480966806333873515157826364010184020600977195394231235933114351781846214602240890155978578197074898554244977197523989954644861786349377447535312652983464048454682206936890134823862823843738453911798673436927699303227144808889352785913504870160871164609820527567785626791395713743407632085861658547388132938556221343653224517374783246430180358110739190374516787419665175122332342827233594467014243161204116079633069030312001258560995094755426910965210833741758060828853555219839557997611417599794673802213145466649136694647647761182436194232884428489705634288296388098088964454011181947380496674578175250428770470097252667238423384977939006772424830452475157551838261633773328027764271805977976628532434129503403569056398327202750264884968549150853536498750406725381601718767277685534673886346755434955761959067373700466115207546663497564013719662478932901767310061049462194056421693831752795424934557299036259084520628087686318997562371910311840387518899583083894138398923550887693581828243914416996225734448514706463735033670810685867421381052210447682104022798771536978978740807500742364914194994085258303654523009111740740249303574416038630249577543060781552809489757081037369756056691740293585173542100635074871026085327538358136600832364725481512980782579146027598737637879490696899074460875438090264765410636402465412732599332820264257107869871983544250361359762372815120806637652197979095193618502945354623805175512326812966031983662970385605831394375838864661764455205652451609036321551304458480201336816035057060253414351452895186967842587905848267980569919998585847312401938639941495329661505123482430391009237015710754666185498764281981628438383872637402335911693830229894068684390140911549851130881937358614024573659850473171266194649814076087871505758544841908797518633161944567401686229218526722083174569502890808407638302686359999285321557875902310362012659644000457380653772168126078977306696650653230644508561228460827715669874381973184216728041065218924094964339576089247376806962613112843457633199924596311207728986705621338560915298421490574840251096317274726399784506002347130196910263355283521287379543925020078955002528196700493299949838458926020895227481134290945536677628853183767770888935328896308796042633720022589231462294335604926102324223930966796669605430303958520809989105037486234487812646330263095273771211052163244951207205110462382771131765594255097027362147193564112884704993144783487770048600576373024829740896291394776598273341473792410389230737093566367585835115545343470685768210052006986450489647048157759983167075553647596511911175205871944110728277359224352948432091122109626320383170403875528540659029440891462741428455297618491453137497883309735902117849576895328526631835662359190036720989983534435308531324733624808101546580683963430500332261776040313767080658291065863821570947177601934403952318526809990146842620938376778691855916561320666066376398840021821883853911444723546955431594053629259115002969735192471891500530894115563267529631303373192270070017938779248834852075135692396508265777300695429585032315386680830860515379549055507495085532844572950469734643917218027154426606535419513805553265129385191318090622107002383026358024419424818834394299749068775407187251580443113566888074180504986566786343642663522591453810435455962911678190634675094778503690176412512631287576702922978875044864561852838947865040911929476105537521026238872950368457734059642863735094762896535222569710031276842370896342288118069638078816226439474428536655437629527500355295456928829501614819876995786712231735994096519084051314369892705778660099970526730557384733443599565322869532213388269357076951267649134266625137306341173330742351651879207592291297449597150641176884740188431317334040703625781680348060595133411453049919642706708410066790706569979802268546720091188844424907352840946404388456172073776949396453916796886115713239917309366616401122936688753038428557301236368121955143320900666979997594447824057202830741472212750969088333384362656541679886976152274119105646465165669870783050205010816521346638499858284566895341824325350652938896832333898441492108800152441988106578243277124251529093583362430737812160232366843744358746882290641414673913845314747813660369121360254072624747950753324769371640983608951898402965043585523087417522189281505028826513175093560268480625363420163095388300449458118764610276462406407210219790817149931755323028206754684576450326485475885214706490242229814509582992120200065544589554663486087021612517151013273251735915543393364500276222815657909818046580558511848231465843302500370340192879651134800420348790414762511963110866329021700178657164284381286797595676446370442888896544187900095783393349333609468040748372543426799652065081692933771998881431663873747980510388284874267723713358664939746563437169411674809212083659634846268007510867815029401504484470711062056080916901479199432864250019217809528836108204550243776198489408338042965510846152242107981433598731757726521135162926026902898722635369228959639059834173614906196727898248063908167068074146547889936859291216598353152198136714244393604335375816297760886760841460108647474657280249528519888731512092789861055956446012365125483094278387564269311018538601706662743409310194568220819849186653517627372442267722074984747852847016098808753243942857476397265020471009775834903576962778273965963582197547079606511450023680035818803909638246814828578760021769185967050277014837649154273376880977695338804814219559665375966125193091582150976805980799809061402409848175969410581928348512013737766674845683098254375094651017400376208399595835382593528761452092568407848781207878175851908369077624120846607280754539834608038902386258013354267947935251076962251418562286752030923928505768081133050439417074659273957625740417156341823452665216190449005655507271663733182253628560960319399496316931935977700084756936640209856342426199161472615670232572104039507219481984730381952230923659385207908416386111704778086247025200766906886006182953978053168598520569696110566161773512990798154440256520743125068646419183636621118605847233148611295217809842800142964186665744458902880550365275953400308267896505832443357553759659405113279960606649722118890193441229383015169294439036207538796053915731419108929824758530180902899393890122973960169030798499833691554732696116461707084201275438393116570090569190565816318506477577022815255133577175408533374134108472352439545254043251226416346553991809868902881739715289420401680796795577310104178318980327548604796741913356988798843109834196074901243416210503754314927751704488178712051571360287804167823862975149328142983424782172086434726731773935868375157006907235811999356742805517309291810160843942870216908979712233340609648079758519105378573160382835109194104441567283217201848140912378995657254385084154080040691362792556838382490637974512243032517523990112073175453347897262017358100059375798614362907573186943427755286007185364310595428481099399493114589195860895123276598683444257519531261776527397633097450396069362355360374597856837262310883487084292120534769764914364595119590250765788609487927057817634883789784835181762451746771742842647073544448786073967075802472047077953420403120061215129286797862070830451987287358481969068724531935944014583129973118884445874437193709684933841878233285043599622805849981995868272714869557484527039518356237721996491103244669467787780401463776211675242433062892137428605876831075553617116070774324674668778990780548873668026249125781501386149750457498480335677027859561194951396288440816650513680196254583709643896416716494159102358126800713013509664142029715247620637254530937191484361972823714741846397562011312968794298992326607714217336599072147231585890129638117764421292242777663138279925988710216469258762465178117504448083585352107851218207336780357329464004206288472288772396854205700369267950272025099427596410256938442771585631679414213022217151690330447789569447959428868063571406027992099793858190236991090519668626897785781619130302383015960965266381872382411983069196983439944213349399105115634072486870991254503020260778858618854205833133666043924503070458998906491061179909850943403944102070405357170752476465846484436818198346661869708163892673678591933421449330723938280995332744892051619644045636514079896794712647335098854228457337292010447087758146299943458375702421718956425829073773548031380122237584004058509043705373228149280288846407184248006588659334674163066971072370813045005459389012431826714280442152625719745641383016673441394769593344001097567812743138780269083826943027153096541069391340899879552435283963835735178598335974605012413901397955956083502400024743107545042299299494649859107253208443893659226633535258914398783073412542062333302560420894852053903831826420511115749254183353770700366712098709014385986138361543196141489648698874402448644534868556321084217040737090040761200955943033596552014744871378317715416070701314261439674243363086449228917442563917832528820077202367296988859993945322637692247369117910929645229192147335478188809669389903607800156089747680969249825086470936879565916298293118497307461998542311248124901111414644556718892318135989593020974118373829787432894853313063102721669161875502720636752613215307435690920850369549088113435693611834838266765466662827966610097773290938125067928666017875243244365487194320783333764520976292261943409212907694788105913733909077925856983552651179634507630987390677329080782858275824704804618208206116154153087775858007688434177696242072134839007246818957463460824707031794995616352738120071898759271262328121095388719410621219421046913773091480294941809091619869694899254430679478556630237692343804755954114787409175473090996782539513898663059045308600528088525808242526988698143120082608758197677624452165274292877268514828892010088995192936948466018063535365131598099138476249324340575741291934080336410975635009992237951204913906068995015677117353281925408172277431965393508481112428143984100746781261982211562337473107404133932594884314851059864498049931571887701060789170343269952354594700998799627938293600413005427875568901629549972659669653536122013560258330651972471902778068989423023752641954918412363236461537677710076511902054709305451958264489681434772443296970120618936016503706541208757815487506778101800446612508791178330828441800143119544378601390416347243847824842586923341683178620878668345967928807202137362710353758484097663096688172752103073495592331214781628075522595044670963510669454488032508907870616090028708088572719512565223346810202183355271263535317362531334577428190741455183956629695509782865198472227290716805665702859305070528079719341500143420069147366572819534077838453131509256248345721901830414781099654047303553511995667702600067005741492173150371974016649766040296989011247630094391163303295000378044602179599946382373791401061440485015973208467109205878614969170910353736030702403819353142360222383841889975854224106556507971931225887321458237044278113037984131077630202549123792250485785173157304296150688349505917604239922009172056032330378901198084628017047433555204603545498768944386134978496835946470107343956795618260202842980753645832930971039754334602560441507907270615115484139516710146283094029744993235526571729101771382183835326535123971462511275946205275349818223851087223856810207801689974778175914417259640849798535146310933208868305797907596483366577960985141084019505845026645886190177860418928728746605136426939859053455992790184938383627397241349709135356015090524690960126885910874716694449850947839316649023034245520329029521374134331247305207986215325742838412124661217204564962598811480167953915030890095412694392954288948829350296776150222623605936746095116174919374110552595954751679791049192682348055392577075359436597091094603437854848142210028126058635722530345717818303554927364475573189072950468592955009566032745194549466067341399569161212013434931018434866600998863756536086475457129635609767428933841228153863411961477098883961462253267694108199286593263929727860565170089036999700283453659701775862436838694753343308404921346938238800047465589252540738226410974069865958508284874489503118604450703065785867669876448993816052409194930405076265004398419627984051608575352278373566107282566179048310281099839404074390869822229503012101630882520674282055327030553131567261140031747487268735893324872753667157166918305647744775094875996829816311472385619282573498318887450889375945141052034614526720569031752616697767970085133914851740830805442322430039968847949574049369053032095193094601817236780360044348296401175044106222386763787284731204120502067920354408961750620512939473528206671858283204732477521054070737278388196053851649161688467667267059401539201227574686601678349137726311838061763709050457892519938816147712957284030120605769986189788705530504517361926830154049264711616522316194711041974366335797170961370907633307792251589239679926556864890088229161826083278512087373483043941745661469189353407801596675507668009832718031748954120604672005761909870098657066698835424597974782738706547370813413111563823636128458122566282512026419033026081456852018041112464798555313191861246994388384142917705256731993445787482863285271586411239831190831852676816222445416519611276214534093013746237483722066085842617621287137012178291377685200128786221589398764760775511758777196849030820921508711715763987757943696768648779573240880538440934474487344942175403459392580226739968696597403025486956686575181718389834860631454800973175591587646299635993400206237234337728692716486006812738109194722429925087217792029729195549122896037847022402990293572954744199126243625227174580907059699366780800017348955808270750515012875107342170789228830597187121372428576404916765831523638483615821288114734511996326194860522466254523269375764772743410328329042252955327794435333562719330655065061404320087405916798529029019806867460673585235306880744367462135124114856616154126094072994719529539224517202629155991174668307861559314859533729320856541468831434558541584995150294832263150731091599570214279522678424999624665848558890045693866940497108773491795803705893637571728059441226284775035095603958609787272720474222757258615827219763923616505354444126456652736372539306915655526704431188849557336451112273700661822215104379972514339635839816426285626749736126128248485141475983715033602189392559375080711054499778643341017556223813010605119745994964015106417500459317346353420958744450911647870296123115486559235445169154807722078498509447402379010259073285285904373880253915391152805166401686167370938397595052966739093245075594311996224987718162597130086636235298658480772570311939669256539754235021069929148847929044394780675728660934132562934177879772558347018645024340141632998477354962276311422651664533257570789975371841795301996842163077987953771741647932963266262421108806876607798807545594747791600868611751988730790884512763790981647577163500622495825794645714885607819306686013555058484731805427376021069470258769306947656152166767100336929460239719212346397489618877687367178895889823740730351921948607905187542187783023853095485084237771139026510045161822019648457618215307712527683785840612932281934645296774596526755918804279551899039538278383788555382213164471593365581379410049903677522141473183431084734949172994736465241193142674580363473595576887321111179551323984211237218510575591474718044824534770644484768059060153702034227983359118565143949893569368670965983250318113002130369594225258778865448962862092339626090803322910546340977862735355390997074686653910844141428194594718184017785348669541054689536674240098731569191145344153226415720809418858653490046018417871111160240659128227874558664298042720179844635034068330304736684013917403608721516227510202189330506523184053936849650910250168059922381659372606462671094523256370164575513423778885447580024961803938811280671830525608478588807945976541413703287235266235077750716434346838420126181766133633975246274849984164836784566239989709854905405816498548101370281324002221455465088043800267044514385596101168574609080422896548146853348201811443975669358835541272707105073046497555506623874404914414381832593345006056219738808855630365048744025334522508622471644558286211914220498018542734228016162038766688093370808730643855410814133687344172394361000205565090077552842561184109286557605339632030829502732125393175588061101166509421848142549644514109916785328959846812082696424803159422166943611136823851228364513598607434265780570809601251075427433369523973395778960118192816601336920055322249096034933727081565813528760132425146104644256660083581639457922901988346605338971342235574856760901505873958707748382815244526684949103246634634800174906438254514852954495139536678080226575221758518291999418297921671765723311707716673120509758901705652668639901217756037856324605260418504424289120970193213981230733051818347302047011059470467433064409134665430509136554679044085647687453917566690916851878817512479033665022051836303350859155362582499841216198759382892179969168016389674434393410619267749225297858254519562965510797198043128729391763798680984776911296765486078819809478139983314484726655045570822141318890205106717033033962739801843027451570146356527627268341578768578709023602938418585936885243824347077312887614537614018472476914732309543894308993167368405447763720999480379496054706221597561931007909385995350520540935342030697185695863547844308554628724031818066081416051893312265494657151544479711421605088051271370413827339988304639979103186591348615384913554173207284316747734515603843675136687868612824867389764254884655008268137756183144231383975984861662088006151685433549071761759501030064437729525045176471774890585687284987115820212691872379744224785722952161254077183697627575279111751476619526099976914058664515823861951950455432763681823260711536627459026662012718539264665530277649118610407391593897539079786759362053822202433141228856127892786496069842271902117219962368881461353798941376697486497679758296951191256744323283647332742819425265789229891362161031728662133519375301982827108368658089058619099000489312509376715841047953101269165221535421196906535833191532570643058786435204370234671648399304952045035837083766652431414724500665101175061150920676355255728456981238261716902731726222732185183285411094455574494248548527877688873224219118713841060055481086889780656749423752542751418960850713042733988669904254320814299569884239266701564607277738939404520891634368092957470347546029185902172400641478793626697051631820178527370714126318912273787640273874376975832987206422807285846700270574104409644827814029139983808492745844421311182804926945368726582486930219614165067757604021938661894963153456461600976790871954458919274761981681285511065859615186010136060691752049156392691443269896478427550615631744967150442401625467334810604553844971682945288548760093223404627233291439563489841372941018656520510280429390128282136151964924095224844338732999576088233591625746624811955940846793108767132503337480306594654137481794641672371353550283421760395977172389735385252841542321836914560385324122635247194900097485393270042986215468028408649955047123874049728456708397394413915351222496716068216923891402296542670725547731827971412309081011680614184175901066246660028062055852547798389099713144007800691620781518311835549287118946482165527617090140695165140857549789508118067640289255671598738881291217082693448809217471850254156260640501255117138610394082152786318809370450110003090134990999076915236028676989447604002838394560031231782638003749683193623648848749428161127262117964784259243178787439246022550152876639936895530757623971035386287329027664719602206882291191550908591290612490817646123831306855703135583741774673964770330696381083358860993015556077071882306261782712146580649788467699342933185490716549086519945342963836992036123161382125898080023400866862758141524403559952358083398042481746314932916742054094277869761620580005695818508561904865540665988224827839661628759705731733104098133579447526577992684619567721197564319240614859055496688620373061942259981098469288621965847580381879793625770605028628813269152009217551635220234262571530674309684013884889065914531067852822567494905510561965063095165530129327893998446954916817169247058038268853571610924154401020157159207066579096584832743328649519772584324407399497742521070543313782243671236559417625993808451431573302079470572090814085251896301665814275414719868625263079907890600737647558077829232958322745909517370004713885378692984152051416051516233643583262057005665813496408068582044965082162396451338601029009305154172492315902011128247696552296997902282181211352172096283148344928150247020477967632813576653907947758376163290952140057413608428122709084366547937950380551560081509890945695946274422021004061237006939700437640743001425630052869480451797273827868727445032438083319020920354609215594202940474371587230765052330889601638015731116605023517549246855729762328881185087904794294359783700217063511196414841151404992263487824485305780027943919788144731448665836958315163903033259011478602070100630272162012540175769500799317885560237623788886757700537359778405772525215941870155010528592709775908256027540161890771715485469137267883821836569745845179713624626480624662415901810393340926241867334660204356702718084216121494578595053536370838343961231143563333865862699611788967519605903095811052130441520967885369411697434887706867498089003451143586920830950876093862997795667395568217873556385217462752513125233055421985454067184689706503823139021242290306081221519876462683115769000731797568266819597980643899439027745891409357882357126942509744880609363593193202089443139505830371739770284784631018741887399866947105854936299890567094424951740401237431285722355585246985852185336603149616398358495803996553143343154939548149084502845625024246784936253359475006712926163394648967013096502424154916753418867629574517445019189628047711804804370275894578691040496932844159611197683178498391263747680755201345316052969451958399451925926213321375806759805143278205586095213577092974655449929606994684050463017534777350123783494411524803723898427648437216920505650825972446969993854144231957293189825245154915634522536132864983537903903554527068792099047422139525253802029731892840461508794907720064037635378963040418528342851010701283569636321051324484802914236650755973196101483679218278918193397262091897672454073771026962328231359935202103948097867248529207773762534025240801061584214049916700727061739863247346145072609244513511144974088425160217721931554381969140681850126386048345957487829393874493583846784854807448619297945573319059723514048753637652655121347257761899592676170948437528684487074970222235148826200975639972690833169963873408460465484128593861902822874113713047815793426416610882734848080380778451952459503060741038536465515219070209026115726982550022853408634763594114672949416982862326205309413313389874783837580837657006862463272438928597320756657437602799341612489164983097390149467655204906177501982412981586369034781729095456685426713445589759314425661182515342836772829001523897155721464377905115861730456291381572430061485351185839001310430203615986823594112008242040397018443113101770147654428438391730385586767380063173055727300235582951629840744364963474135327773038269040880865096341437255757924748190745970821804753109883524530104066283194322709006764309036324757273476993570098170568839924815890722159470303103862905671629265268122931396769583686869055304747535592314950318716657432997666326753807291152549652424766473113546948622256485049740690388640111710326877374460431513825209117715397084513231466215821912792753025792779139056212963381579032298441693059730895409232978791994303796682318399597758366127219494804269623621482101316337614396315162813850866601156407267731375913928044330808252373529128853727172609860851763672966485774313349859370373721763955564488005950509052111771342725936079655226733198522998145809860621585713648813732803540024169065255921208611250114395504484987920038836295426710536421196784842493153473888968487217376308197122950074157548564070492826194502781080594022764705422300820804425862992816886050744031750339753426487677758489577484345248038516564822650193421283899433070702097226483046663093622766931733462325725631964867190660755369697839490498969755248921078523960647426497275332098825326813553882947291526435157714606222756550035796259466367703770586669734065164485068348270071266159118361760844569759102249665756574647703576874431184884555071608725087184361353179590108610544030411445091326533897488179832166298550648663820991938216573366613837656855418452802247299378678447395940260872617197942322388399966441281998512860626041936349460071897689047924406727013741425375918862204620535595434293376909669255281139367545537997571155202273169599563857606540210243809810886645720815056005019445614639240633797693249522056407642806780678559098463033572056523573227276220256619153057732364191275166502998344166495596427626302439082590481959072305401361937889628086069773478399921559401600407269845568463135038493250312016685207571199941233333150628686031592103559225136631150657771204726544372368685778634900325164671752779947805409254588202329140907730237260378192747447267435992952523413402918503884206204678340764654043409378754410436728254202812860004708008284098553287799626934441049722225924204147665735443910853752178724993379779298975296147406948108520067128150586040597199523858203219792286418272983969811235941547092167530157046066707402086174759799591265452344292043948107783279827684393430770116359649235547266585097020629940031940751682031952493299072474736366161828993722624675448401712991899439089434049009171576300020919083626777674386528311383198425555762548225309865751240136143764663353038292875822907508845693975015944062514540719658544537817876372588276803951471561093252520771913993948994837713089456076851481405943032569173691045045344852946316015547602089419798737077786392853977651203557212464260317068220974314331171357508423896770511846650490697088670578588502125760954217200759822019471739858751822436248120668242911155799180485918467566758833221182762720309474449200569966258682118486420828114954506483032098010774660337913056743359910849839313966909176730482355854299122135521779515577047934246558470352079791292751874163766797899999079100930068225547245932124842605855281044352913503194303283477471261281348421556695796447931726534124387211500554738166865145784850368358011720605860699310345406919519698765184139074918174694594781929838910660500208068280422926667821519598861936046095502099795199503536951333170057804820587052400476513083180445107573587050462474986640742952263980032802309859096660096375865754238890012240202659480463113599963826010105986331287993224089584515431024542454167937764223615283003704558172067885674486513140920437245803095061259063878619934492208272604618172970206044058828455571842240611377559435531901824417636383706047778439448299794736227944294894987712535273398601834216709013756973356601849338814470260439513002159985790772164358703729652531742104166530332481521620199896583440862213099632038997835595426999538231124197323942510966633150369457494072344335916697823754982077875203120549997347881073242229754221230449769403135682109721515377694558590269401815596326444984545320381000403537024851042036298581603544813439754145579581816590501131550903465199806920810216758413465194899455899799278580182754299040125581742971623722495395088519486267921860096083041771351606365047893125669133879401682733681437375559097245994136500576000073373150013050717448635888373489286059511306851275767325955400247868208778602720108477468590463163081413459176178075792167621905711975799939575054160878677519031267520323031711296556422636762141516495113353933421648496646472858597459958554516670078389284521903675957429634282231507352984560015575016493960621950681404444327112866855029542907007652435649335263958961180301860919052645701929847176986188026421979115827072796089574454636400181053805280182382352939559064142745664686073117993440429715304757675083516180547261926051078611535298589364986745073618888350556736970530870275940246436587633941555550183972969838873862627837679090661231373176721883118969622456174325060597615305879910474769735565109734212528145254290876775860969103071181928467114956357445912068485559331221331041619537272803193223211986940104314154430888921601279730628240093576293249331643368648591454220961122028012009536446752443151725724067159316660126317363709078117459180599563772361022532882639875668441491740372290345164723817064340246177672742030844694540749100081762933519732026373113716748997563396803357402182787863861355219165349620940975180261349909537412773962250994569411988294886175802173799526073331632725746458347252228017095149247351566667831123570121195152697290585673242350423438412025141804147055364337840510288212731874920758546943212038390146501007428391648102905702187332107808926292975083900305740178410525033851688293985509932291549064324059672741361711518528673536386007063399843048886255056807072904921371196580685691184874716552244140643259370231459189722001666712573841505992275137728791385353839196816370556104110707359426606920455808761188223125152769477979788746177118592710603762519907125580545685918004769234111309608555909350041581251901383760471445395673199283404692635020638513208128455279833628957239727362830202301481945835802215396175487352912252290394217388472015453246466612121082378972215749973830276354408855907320769096788829892803956204126465684624091691464630875563693354552275035123743507469544450757180327403680382241453982883759826670945964167932533296631050328942787810776432497561391698604422438097229491664985084635042866559037050907969978781598545937182769047956124540110323669823988511991466914970966415801144472722827299431239494236662672649554152700247866725008259807136929266752699515755481975269679976878646938255031027055909290403813335391669293670631254662901215766908171337885130793389108473142498703999860397415006975617631322734840606202786470754892981052227040395592300666148106778266297626389291992315256213484728039192062038333252344767778892517833323585966844967405416490449065107798830166120280550061034425332798323699649591198864885049959929416326004029479570408052927733708230267670720618022902445935351620350269995400319722000844339642334585581090569281441986085186898261842703319687297872224203559522435138235262254771890190802899801842499620745150814281537001437320251443421062224673139657162267447023036534299256418533045457753576265529747232784067206796303847890207028314803712018453277338627499835438855079061852579770707798796647144358888070804860007860204632750923345679546459479689053357509566643952623540603215396765539923371246931833697193617258574140900490376086963743672835369149145862145075086176615226861199476908695965647395371541124052024229299010645425017028377326655702133065557890604815323210362852110500861691772555813294561423218100768544014197779722668771041427979741821749222650483943391632498773642911386013541208081906682771428276542197488088947582587066958838313640010627151254321972439671108939307954462253476688880974383270565812593888845198831621586581726855973554666446170146732222712039435578822350976352359233956492089092393287293510221972471791123761972577593416840098892063412539196200898316258299697925465805082004607231125902578117935660624412633650852395772877244023528053674877989516551113325553915917867382069834679099676176210512103088058333652154412488009120013369303552108970911043895101343989411653605131099645959400836384952477634275084803092803575067133961508214108725222539931853467091899234771218970437941886063162648294492882915117783118722621168223968596101879318381709569816138467185682076071462295444383037982733552523353473912318006625080610533498242327301222912027741303721261004953766634973156522536484801059630441093707403450764650845206300692930073905977725922681289677995918301755887185850020007309815572147858690876970222617882775869446163442744371135427206014113833098038998739468859733755686950774889554699667271196454196173104984302903378442572035946884000713419535349082349403577339745973486594880989857194934819830655005139229384892075457875981544619118283905106453724584307693725358455054823753447997257206468505034016600110857114069869883567969650691075364844178413293041102351750445791386104658147184528093328905569014544318882472457714459075711937142515836821145830670876140177387643492349282495220037674307402294824043237123870495986760786921654143376279676212365802281409442452720930807796969327117657964059553729542325313997820715709075913310113622132887816124663705588889205954543554988413561533748350088018567378668659315527896576403473938194636392113830272798788884514834525790990113302981919279638114949228047369484061249301975051856027069776879430744684538656607061278951885151951717603807532879664320009890717044964526523752056308039383790496712745039175746517287885637964858210025233942278785231265310168666627787515203946632472156659751941828177560037205889688315306924943906448748230674833626245089077696025270839222084641663138015504574785609603968535325205511534372097024512741343761783799002282519175012301350850482787421400468148958263698860999647446490566095194483234730165160787347992782241057868893443536204870884587346107467946489994861267119357575328792823096931425578296590197402640561970046042410044111701023198251464005107888007091238892712285825987474057298361655606719738270589980211422058350201659840578266215958894243881801413603175142605383405469903065994685174133668561622191657815050898460453580847607802550116041649235604480866192819775140546046101320755320464120455142430703626004634353710305987265343947586998191839369804330592587728393351405683344567417168483613584009414266913120714335882840112390488827294843988519973773862523434669016035819075984287416465410880030480617688556526023353908277066503474079167831224957270426282103403781548741979604612662208171794052755115352714447441607927251228791668011970171609680206322186394304384754919404636334069604279677562530621295050205795331989023345959093683481753978369153044218180374491831635882348032048470350116954782641468986649580747420584622539350665989897716786779859526947565266215411070744360457533503529974636698436717646686890566587430873764540362910871751539469991457541668635329753624797543974644880442203983313270510149935251022853173463158390476187814667344476754099662176709817263939474090930106366768953163642755776332004308123951483299872259026908881053227617942106399414192373352078200182210588624603487457348318930386411930492657543270539431575712604361924505255198300105968699875747339664449584107348642206320194540879795018919134007983348899623394928364435732689166748223306603099530522024188898068590693446131525351193616336498021746708097933287831462611795148915650723889782788511642178279769897483987665991900180854054314881767807778542989280931865193633317143529019276569081996782196783697689356631421417771460385128080938134055101348590724557266315854810795503693907601629666408850582144670659411292413613968986399953018931479530331378900083324682468225459697681044143385081801601503061820198473218497537221613823071576143585369419606803136622936992741740133755533724524820543801476746283154013854234956009921963653765000686548364384879079294129480040844950100131170381696815045774653593438420720430591175143418038566693444311028542939322010998593813443423525540035220219872689556300454383309042602399597465772267049474008587700975647331857834805218364322098238077112223238891688872947234640246619801906195101709351946162006368916210598679477488839444383092593119188049478686474300159697616943655507701632844618645657660308430878463235426315344198853880426903204916766013951178498460836135329835133722829660083820406919292866421806520758322163949610653286456698097128917464078521344475568553104361183636681076785611833827561888831061207127029379287993848110060549746321876127770956483094261664369973733692382250739089661417917738877167326877036992219827279338353781106634082012231080899084092063634837106848411846719610305214870116722083157856183786317287420918926626979054555994745910119383077460692097723598293513475922757004251839478379529771249620591797323814147788903615326176538792795566390936663705303758747873198140899310191327439138345807223378947311778067351530788919607633434210183582376890205249310748914021939792439368842512549461459870384105892871499916071587768783400178375303598796319411488638249411439853875782693974234407543232592313304194222762958802533048103014613271096244175399098489326733750931895672799516801960061757431252555071902812380434732024129316585215760311801814826011798600146324604502513641304135166883339985867046522590806447411511278753341531706910420724408619687575649487666875267306269639499690909946174681610897840561964432825444705698035671079266922852584056466747167291071546313665314022264008071006199176140858935479345785383966459068791261259296543416313064876372280269585739662281527796846787930277199389221974899904602613373065761934090422761647673466930753741588860006762797751636720598400930169000313921602018581492124512276981825434796022330583059219864380252330748924751584753184196938541245482862270230278537773039471822001739368515037743024153989499236959642795768812582088593164295525554924342331242049558605774885934655110369252791562980717153579121549108447085066519399364929372063898833116545266021770241309117255929638656684549146972556710018205032443421512540947100656404565293269734385607169995436951187093519179881266982436714917944881620687404056988680360288356193564783310177320890549856189650264569582049365506238893163015402172699090111309745603612482635103281969191716447446738024757016558685569483109598242695476077893862157574036536586147712073206777115894785045538160441322364562645835466237806230873780119704542233024838850179224387094743531284093361158173498390317953451650919387997532885623316167315218355550134769593971896224553795352331396168658875097494302038044197366006727445119911656281923876666166060396619061474167086450178415435921966275909435491422522073453485468270153128952529189127832940526889505784823598182461013432838184854905986653709433470725069752276261543925881751187953083399200925907121922543023538264969859240437907887788928532771676690536134431288125715460967369154596905531463333171854776416015620730468851971112034527031987580323731045487865329019600499281567299801966060096610150426711612014738085543979465709618513570352116786314736149119601297889446036531109030314261293750500784798152871047004419479627146667729621815236793976102714893638129364797797069615013053106024544208509600683925729416814587425947062663915489303468449418749021891376596009073290941184606611467382244328537051340584350960118190466052984894729413473737688381189273742722003114615642511003541323772500312969049766308666145804575149326321086515135411448092354277872626178595599732590755343685634358431860565127876580471191011657246910722727894760692616505027960728643504416884384646343787823705309536477654639558551631073097706734400333206075130648851879799955591667539143973138878614521089081911461975737396480449663830188907278776040208529922568314765906501188134010532233127944200229410278331879992597154268931256661311156072071756232820946346596445068861056408878780847670669935341944706114645366959767311519664555267288756849909558303146495690262844134441496183864891709061442100338249042820223954004157037680688064354498556404974904543916199474360446539921048862891961316259405244406059417160114881125972461768590059153193704021967478822803733360384341523344631399836693480182639636128904142321140296378562519127139793003003032728954423815589402654785706481079254284520789957339444595587722832685079522387299276490865021342315232250543062407797645082430232936964161701986060613156395046844587727359490028267405662559701318323568361162573505703297696226782064184654168949114595102087696503509367759183889351064220244691641645185885186957026674972439299518614651183350929872010712259059844892083724035965128473448298666239386358377201429769024801722373894417424607127335338969789892073248762312296867197946410877697512349701891725181799701368043977900381452110666261313995127977338193745932913915181967585491761421980804257621824549253910962756186642185100300202562028496414722879474672266160308169607642086761914102437059561349547381095174418080425534215770277615497619655078633255034354983817457342255304926252925688449765848137670111469865220195032957705084655713978199075709993061459009954407611041368219317273279135247367470433988959014774565338671512330354293335906527053168939391077042752987875473465126360436045987266145083740034823765049769905160866945988047159433606914166465937077842893781958773963288804728325835951765923875760477434570518362242482355347766129145908363097931889019353361367555220965133804261362506035472667867082100183645669036887112701247020940511766333554289669877592721954069980184354058295589745034217858294461095200480543141900335127440496257294352990616276196927424687251331742698312153164943961565041446978615344378169754875946795709002400959205307997093402883450078960053727288023363804844729144049354469878905656349316912088080843000159721572280012277877354530417775717962051838375637889587207328233683598876140092854176208202977275602522241570254095737658889131731334602998713146692464382006892917643736411514771817030098679597275135212331317772036125825877528222213654685475339500502684620118257295184893423844985113090223977684598475292259878105480172536190559443145008204122052776537522894028768969634655801583024937455387810878114391743948750851193676607866337083676443924037440037066203836623803265820074661065338462289547934198307752954222635037635057552276674210476650718330413608135685837526234178412543475330592331861798124420943555449546395559734853531718206238037608442484700059539131134010275652538283235555029824998996752742052616626090537364380742721474546308896116160340606360119194039784970560259806131777746796194488052450586349757772767187691468540433249060416491983186249554556992351149039356021347539138577120675387461105630740287124111364898790901028172477792487931903925533652267651081118941080358418392998898148625226205195015678308853949152308840843020945213283273712176930383633264502146338554477734889909155925878463802180296382777793708618647201230420740333908063099691034320243074349772572001560766365405556455820706356915037948762551693780571406871180271324315856733769089674903507098087984074169707562256707837921524371130841677304487946676992036317985623934752678557291423689872861310667319885981010912974711296833959950480213432447425621117735815431634279897943472183719851593284912858605480112248079105810902239049489865683618672387115654082815671740200776188145817277259454348443573362521834410586148605665666074287889244761794794671715385691895018589174572580687781085731774004404735000715360110005114067698563711698927227514824560549607203536154542769564377281976163214854694724460858843734914975971677880105433383258714806095110855742068398270449730201937145949258982219038752252408203702332125847723498496794281458421014787529107687753084529371851239385438675044211779329471128636763465928892913636316317026132233557548548775252035635139759263663843772512316418225438498633591368941593594059442078924586288816340912544751410287941175681492023408647180373109151052280709380048786210196920455970379392844472761418064416277969603642349684403790960488866178487426538002897626500554096486417253388793227656287426609857467922208916268079777497473870844083000487407578774166570881262362092714665797860330243980525320614365117231893725450394665432385337009222903391982408541098555466218735103660244212419057573551571125615279508184340370118632547409202259216135296117476740027932268624855861252569570545282175672316209743968978368186211339905276903948626917209170806127168664009608785084852001799507591895551155153413822557668404283719827596139709988264081387121280329205451314687902517512076950893217489284974185875130928924787658953345548750766067255846605076248559395621961354288616656652744741849535743876125053710540574869518058050530123525668022683950965777680418790769548058151227613986265177137222218709023917872126974547087733062444293631210324205067605582578485997925103562583404199501696423930522070407098040978886859996791662069582294433765564153494824058401967368451800390725870757243259057481881198476114155368560542610669628052012936340919758101443618987092101632261184950783103459267632585695918710120084587938234715668710991982818844588343962141663875362417296507999113300999556676519173420837343916528190975629838272588465019299949465031110443858625991252986206872302739729802713610312369671881741785483926632774819082154492109475456822359136464607475657571168744612956747470096601912586181989442924292995068365195638288512716864005605899173847042125900052298993465418513014540302838751254123203398235960442652884815939129288736617478938644053500575517812137228313863949415544258509974472759599293849065072548216610170444588028690057526485254409887187901932357340482510364799088252946492691961392863138601764790646140850650432242492928791376346902112188365569184443144229288716484188315448896809486983922225661396936918314625735377842580446045761998909469060334046009605775310500829853759828122521257538039943660856776611840253494477966517314053423787611947881096620343951963809056153203914480139019543472376604887578882872722476071696080353027232421684621119813659090066600967788318200436139279728835721067443530335669372383825024683022894455432725306260497400460977570543193053790249678847015101145527543659929497600561313500078187967440061923592043146674013192671942280978562424186289470187345221964935278780815246322363998080739516404741035235100751297128300187917097163332610648361123031920651541309796867310310975742252391527761849118448490799273129791335378473266821835225974629234499713564458549352284876612821229921093222370119936582634671475397120132899680459235760063138029194480833615395092500405102324937044528928827873017358137499266503499390314408136694821949213278483976842782634347527004221527574709896922660972600869818126435118039936125220697813078795355851548971533546207724145148425985509044204939629106962730391292070389438938602952019722797527384138391238822216082650490706001937576944841371500361187239279363823870503460363741968206615936407047673508949890169473830454600318364197351600801629673602143807980838860361276871940710254698258157507687620566714594792469020667720544815016805819559571658639441949700728196465511813688440102263152808860907586845401478347150885079118959069294056734396784347344869539154985428218530981021096557570596225947446248253669470222522249890792008519748789596558572624365266844711566356300110570593434335860580521170045884792048103167464921520977352573453641817348112699928049063556632363958589545028275910785395148125575195462448822512237941104922876303211765581671612883594060430957169550581627458322117939412910740479472928162094973702605652713871694610382630113595277050388178110619287582432214838350961603218348444329359001501412353506582497869944101856481597274172963609844327401381297520643033221938473785430503560448262890545285659040726993807111578436035159988856443791449141065916580488771988345605424570644523064878700919208763109929930452339480955387206114757562010758604779698478685837643281353304725808097391713217694833798477002381505829402553716957337250747035695624079221778572495372679851405550346148274521009145891109748028939240737854405052065169549749362696602639632209254386543307208742820141678275290193016899958085057702738520115279195136458138529695144208793146519977449248192563537804987565404246530027352192120477139329814497848524549884460091630150870704137735595623921387154142125400008662669166713018884408457488625542468624885153108123863547991433251869139803375476997670403982340086554143001769825443430124499262069025723495212751614617791210547692597915343474039915115646911217498402562912364894725842190837954008861125414875907655858911681461505495334021387512580020530593591200528424058036358651404748104216491149364016467036271645939592239899285586920925834009236645272642198774129878768405624528151854261719326494136799868102219864699308167030900034952629673557084903043969259914691170221173850132011323154866304300387192873280004449484396415213507651976420923367721614798240909842722306322118367721541028475133086572267098014592400772432432233117149033568564695629368361342908670859159161223982305142501092348195075685408908249040115800424532392933545201256697608266797648150221757570069933933453200947449721746770271614063352842937112481614760016905253494488766611652146592177146096102721664867552595328618590892555090382037686593957350888309652396934639573450934665906199234088892778348629792492700101148558222815200380834998717051684541717875454986498199024647823829223519393877824931113853441366210694613703201208618474532070186031280397233314467262745770085793556221607677144855550494490033218148823319977898492936649356596851382473315109641882819347917460621043444538460425207858626677620586560846338982198816478992667728464270200366268632640181571034976547345804739074541690666243886913543526966209760726732559885148965774663028295791775754648956751355947260517978031334867093610800003506268334345065658787717629488872978651438843130405016189922263485443616227063426315833756687702776011581379968527028456454381411968372630016730525442403641437953943149441425819149999446204225115989018776369397065026318193684507220318372753915897606656240181738140809615696430773340249779064490724120086784281360381356920953548486159459417997093575975718571294947669121198882660587617566231805942376198813443299393892975481713087268766640563027383881890225157106946709991662095893573923114651366159834922197120804590252279778502480628601008737503828290838086790488342811216236302079459932948523923215866147944287255843136031060768407055054465772715079622617243840761402293718448468583834593797914998477584479706904999832125156307278776328334927394303011323483821618568155615491592339765625273968815998140453380885160734629755327544383808174133483055341645311910346482982271814666294840882043309025446774930628879147941832291824598096165759928302757106208102430867453018928988926051610312530033394275210765367925181120168265993884051594750610646721003421744564778513011142883366817108207995891214904391802192213738234182690808184034157495465136870298181700606148303194633371447999420476116391069563036567690856054817240814833139545096004189430453679673520201121300123573221381361518193254064412517717837888081196153838130704432905408979184776395494775550384008256428958125389850720579145547336931662300961238888276603591265716648509701670002798309889815973429498474803074019742988039394186174382888652977729863510789219948274055523900946077528920963033981442583692628670875263390639313826756690611970371347116219488276156709541703645912740108778649572449889174402497605482530586262559857378115174742389952950664738085358407539307170844015482894018208247692660140597825049766635031798157889897650716248301436491638693770840504104792388611704957768069725795683742240643600662850916408577324484684050608940061018591066372842669184972854495575281323168205849310940017941664025332905475788711161958140481605402877651308839364616715553066595593341301555455371329119482401526120081428699648319752553610513129505776020892992308351510526131361831060422500317157780630507304284413404022987980948767510820088753773300428363461328946340006924960896191103722789180375960990464348191399053537004163045429606935949276635603533137131722856395054016724483600335561901669261250600426952016566638428896511390468772838063020845770970885646474742467193674545220274543074312472849812338425342382453538851541214980515799222694010143728993507819460968948401274388431670322281524933729656741588768041454897347732547637412167181825204098539437341893153967002437086146784076730876895172941095207992884731162353687791620517879486579141292453933012275561735001165702169279323224823608362909451762010825631848922645410195792147780220112547765807879458931222993994482840639627507845502045104914122611197249219253791300403105805615845213818513751108244014119778306008714710863942830501032222109415271368479837250458458193700442759662958206192632046260168750576027841259186330117084228905343528046969316588038773599704499776302774820679206324886462728840035664655062833742846162463106503728473267002246607293069057753683815434084695908743956950471378596839080435855864809857997416714758239143734707457121596681558245829578900997949235066870569476622139223831807916504457814716621662541088830759571147313496521063593222002784327072044532564343861255590531606178002889857813532562673666902004522855893475106245578109181302269188723026115155883188849171000690770341174708215097154846978291463154286195498589736851276446813885550480179954172599250026190009177304351224056348458828513121157434763729244700318220559761644974601355549202921544698694945352819074037712625608594386794189492836043708278540709869549941596906380192550603735094036177454436241386455380859572870428130131136387482402080673144412040594060693027346718804265295170197983309906323706161551323649351933726769621368328487176942477084240791577980050342785538092458298477966754993328402443711106163062967739027719338087781906262634767813711495958441826080501874033305348418169915489833056047315642578761620451994583225435074662780256768864372881734141232365117599213590466077953004683144891604081739357818656434768832280854629469970227104650304368354416722271483758729150756397845006076673114559433380246973615098371868224844742123065335417398548302659908916654880460527427665067322057064505452937086514994509095680189477724690523262968761565895373272012901526192114168837903917247279515497316763342738636263173369359480891985212123817403671205993066703493048311370028814215361140986302053298924815593747331044372466672248747657876647616301301615041139931300636385636957874939311281887768100777757815596710196772869863190705586040376015479400453035921104724604917865842317031792282594382894402085577604868964432495311049878235315147006836299043314936463970095541021740548957542643630303374479700439150444320650373422730525374930537954713932071484376098950661911321154293428617121431691937310395983182247143345263788983527597096878558342582980650051217006142275573877996485359574305072991701960233668193864052914571437707009322457741608848521425610091806020919213934912131250123871154229840724011297674675035232841251645513257508849082805525744768251340305041596241662080841427233152588485549944843612945732673814074022166385843570948279426420439312285074050101752069989509220367340855283270827929971450469763206371684026462144199960346134278480617105757547448867872874051663054834050454181873183005802974461495571304701744928515238190420520201060204313164023156249688381413770853540500610505751493004682793255989348627189445785603558402523903477564420951696996630886143691058333208314361970167573073766938627804628672131308418988351409312291026857220692456970470688030388482222044148737274173007411022402150206706458080579116741351419596779946893280462452865684849072214509784158886829434079231180045078120547738477946230105518311588659230380490485224467806167730907575418514886251749497685714456102606162155353182425749497082400064929608374656555555176159424657931199197408605649884721233797709069917674633242131170862768131510966768209286936537199524530713493565942342575728995427821976862506109969144002102298358527188331306420716650719056158173572037854264477298970318039524484437508613506735906734880646697980947645425728558547603009728953648341778358100746237778395632960435790791890907796477508724891723215883793247744502893810551356174728618816496888154615183363107935694599143529618786955074909772041589995527718246751951466878202749507299884432028197316518394181038633894436959584073892396199641093672136613641404944155640312861322137187462016681338191132478074388120254723911590595359807701776398956030089537791338513873164605931297881213574301066492953577032025913299806675260063441663891545000001058535939799553970433632141941543068781286743111233258546474228116065195821873764513998072766524306099757486062635153829320888095854330229308231639702742923275698336138220842566481621503738821254200332511890058427547439119965523276325222170303693078532841719215594735265816367616516843903309878380232253938728510651017102846470481619694562139625900696368511121149593965276512018083118630713697866540131050454584568189454274300854563857777312417998141010511976169915493152450527018677187712507791060066472057129726604044636415321302769927689631185340022821315407601827426789803298456483391479820391768147513017875663065857922926974200719580346012895962519431335489110725422606802551064801786348070592903039482306613452603791730328269107372121363015286406551872973917536645376043552249360192664750817602783174469744478007023227714498709144842341178424078517685733998881565688881762522516854606748233501591185342817800725604061864798971177691036451586015330939435943036107091054364297305639819524832982185260219448558441779733967969816864656525902028597110428144651817007504456556277235833433752202523792486569173337367541649091274150237926572828852446870424161383408490918296184220492221051822560721737576296406677589421502372655350634952201336958058829374921311819370622703685647195771619486879322506906158847533770655846512079446133989344949238345777290753653718701133200544605307690756987571297770896839430710681335075120662231881378281652633374799076424295661994096331880488790677029986400606761539656539082544977676278792138649625685648807620341558617886526484167054287593816305636241694459410496078092895277162996789684246431346597177046448386949626672444350813186831274152807660499524385687847761077610454766763705383217751522959917404636275217035686692731470039418684923466385592319390088834754545836280305448452112852593592473749830909002776666726001747751231469744280198596685908403842817822137119388828636835728893148646547583804808720036625443309875259946159446672503299594774082296491484323835196690121985347200655661454183742521043238949445598921472153513165927832502090174593664499152661832091432851787322852218143642400947039731380322248316283069892790648603504635849933316377902583905380534221756437722556305390637689486398674841028507975967546687029081496742268921279860318144073887306667901257453127804544196817523891612756322746327024327551603506765440515570108985444533772041999098529910589815608660502778289162789581071196005923925882353909552332449205805213742644274675721708321609920180828559278663424716393080690508546833505970271654244152420170378796399020061185269312860123594699217018432529033057688141601333897632031594885393562708242032603675760181998419276962911560068937926052081031330576497100556601009427245202978028384404611409603713070281831605582451223633592600782706741314496329077705315783426157838210178627724174031099696587080690952802598631520785038684717068757515279141678712308258998390630300196363040190731426014248592926699365552956073996870028845446756184797465697554838893246046965928812340912737298001192069564887792484578938686064671791442297812992553327110269600472118200754133107849520097089371000964989205038704439956696492568137822666055764812587415298900732858580560318878423379442942564215281212436534450411163004135767354453172526144043561240774906379423908374554533257137629318827655189568494792609018870278104475027640008805169201281704060386831197344943650454240685283686274085082108097081133479557382510861174293405075212076119175079495331424569835108247341099138152875066399487531882329941866626429258380617200162552232835291299640561577159493688069227299600457655690201456383471845953810359373973758462803585219726806968762282123351935444210438855585707346800973832419263189348079400534069341365207427127804108978297643811216577642347654714162560245541029261093638367758637157537024484588235116866646821670159798556568641590041112360256374575620533062488646934217126623034196829471549642253888422244017534570295638673480772774547665218433984152185759769297662395979061099222073890260944394289373715394578033162718737876544363155669316250505455204738340508597177463580637574161937444323484907631767563542989016384249224381418345699899113153178457786178471719032269984305209321972194174451006639019933858582590735078438876535365427079068077315931515850105817502736291276470327151447324672980960205491711044799679077360922017184715237640306902641328278174709208207257830854259020459497637051794699201621312311530026137918711948640226308165167934146178313851431173362117445560220419563299035498917041243440193047595545609239045873377659125687590517136427239820400638527709428778801529958565813526646255307745299726221352377217639052001245225569537801239111145408961797307445558816371962052052738367075334173301804945051606905707539697007422094490652227445275680884156107474621769534985274739421241880563965572652704478780949372521420444493363452438404078826687641619684772181409739589768562904823112524585189787850610444041109425125186253102501444221946762610865509797930165507779342422735833914312880531921711732168754526090227248152712664722292877772236352578540085450261009437013081177124719152421275834343075395878962051377971842698347285251857311005255160233124587948034270356442727760495466761531883149473363873211884202471504846566384303495540971189927811041924255291211950435339305455418357504188141137538828324959989977239993549741088029893011828267954508502223133086868233645292086978035125148711194384219146785965046283259284987246037503807156608451393989132333021098801662279699220253046601215074611808435686943811538243959439370241276255648301419117413196275828854807160000034164965388710923675602668162528140156504024372449208843494533898705609099730133110750199915342225136708419217603036116788010877508755167430014468681333547720300142891438799571766602615727844743186765837105028414108720517323878447200486575280980594220085626569456039241571232466346854937998821873104690614627489279829930607130036350300350531169845664356507800459824537667227817213200058790826234898140324680717445839784263788099196028652932631218801047385890610005540838310187287906561377865463493630800352738424470311861196643837870748991811837470093973185903872470580038419197254691941346865771664644437646120386875082006339987539803704206270600643437686761268420864377736619054522254129757102708038751010924082386254761658315651855234641290176581143728911581853071863499402043489381276388825714294836926958944713120135944919884240969943718633685796171891922269985322838886860957059350404284234911484911711120947459161557660133372256726327920933546391773430673145666325757131618250731984231754874682654718366773350601675061464251848700903464605494469475207867191744032223291574116100032835213354962873826674509231331809607168568751911964330775849145271616606623193808736342316299262078683106700688805708041371852921621405901515384481171839928915577912135505873769669609434610434354230375920324598037562166171139462926048098983787067514582647143660352338601451381202179445351919589614295316087726956415082621439771540237354913743984790763065432771814051500889488927189927565515409685561867736698654394260325101228196694045755141312840664144412876268085511711937382367116574770157976695576282671481367889667392561408293000742870583543103670085271807351901637080229940200075314829979857937958133399967377553650819382158259387002903180293091786739910073471364114662489372674319668435326932061021935219378666776241558649233501716721523833873920680878689344346304939533845346281360641114320522408280201155358525109138895415421556348835268926552931272316110650537251942329514282586489357677061514835293435992259359398241437850902774788842980003908086178109211200098540933817150151011153656149832900801892232439306669091496452619535578771973571089918384948539718304991130473828308874380157949091821038465511055225133207816485403980277003108745552084625623605927294360200377115381776418387747939676254146458143896275331746142849086217358953647645000760504741909176541069362600980397674087401828733699376423035022794330044848517204975270364560872585462918820792228814708274128130661735446507104926785371730765672486004709755672523374585928047398132313471340518998702900425622405442522386374581800800254834709384680989547496371347544217603352236779551854815942244306256776233796792839811088789854579451241781261375224544653758745270166770723765013262409217614385584701552571094233066990453103666055054514747458715869434796734127734060401261061566862848106874850683723119630451722056431408218929484953221576023921575431021308778571077952923350660812851215369896672529090386001010936947671548298895732595779492523379648744960666144653824263401061105298986660300393170051045488460239520851226241276641501375468706172394289340732803317964011216271991721310788977148683505938875704044433485546948393776052810319205286104226135796716509754570032470168048214984265030815626601471385899093135364179749221166135707785686091240170939219296233685023116735243774896230644125522876628432446743619845975478723116732465411499452695856233209564584630079098447066821127687866053044626897574661291589651144051164219257903820026751460140079486915817718960914559852617245632305714944100329537280516523404535489548476939491686635357246744817003389941350568525279160019630147604629785110176538099654133659502663977394809262720983504919537560853877425510496901338571202031634934857227277255697513326227936565220794076243905684379632233475773252655436075592446143728501618686963171509522164834148985441544590849568710908537926386931456503022930569726486356594981834003181552382709958405117952904975406402316779590991585138763474821722556021524634091333938289319892312685933399523217164071383686841058573635961335065701403629180048745064101570929261586100880325357986731172443440795572903031616922734816052347977295810309784459726251063056338919534895217392035122944151358738041806454405585596334925603026219001802597853025158170951436002670236004888358817341071981285962176886254280558855199128167984043312151999731362414355535118624505623054637565591140689474362665929253646613589956502815975761488618221872239957746285387355973794400064871717186653181296229826456965267827196862196313777880052370026400812068070817487727470816202051339889079853148940207770701804909233831729308207324285282931936076323638990871616369544109753868670110778196786870611855720011150961785678461255015273540487623504482485376621739485249254481508077931388293616100854113187083321169509991000771616180938210668000804756647852224858861002721398462005804338532748803693211084308478799553156981752062815878806512559101230157969190842351853584344092160276690957408364475253799151473862868072719167729799459196874604019095892978391415771368465821001783526923453610715366751057751071288747821048693782865589568653172038309502740444290506337714351614494338115610071970778305400251143818216616858059668266263599149625124771657475749736403576018882170519930681462367399432146639454606713890099170478517724019994744037507778268173144366032298051481904285666401621380503453912196095433300034094751431797692089825496816867154643256613041565802215057950274769771594903221420008021490242154998183212042442778807119492217272436820013536714943102739663524958727859279767279919926498744959736896411668337337653224743544521018722544923090738452145442176835671123432809513393482257363008844776368757279240776380553086261560887871737408244851386808436482493311191833373040150528113901473113636640581946441668657059950158352785167775621860074502376664520462163840215672278490295540561740350230341309990240148650200422232284044812179779917227668503761462365562368449490935986725093275245038367468738568451710697306311912311466902197719109484665487405966120955580461168267040597951399953637795230791768849062729751963812037672942761722062296103745279604912575027001166451466709377361322589504973954109933354524717644281526442094550915360785236435927354425664942233700505835914605253239993528348820445452057313584418047586829895016394352432909893698613917436743757135134279482768402288342543066934265173846218956653012123234432704329076815771511758758202869745277841216810842569862039277593112022251638486553054610042875391776133567557853340214098064581698600130726796588051857556705578806952934642433681020138207700184773845617686837484348712978806192220415759313840910688375334790507620957955179263373524792248754840936365339143481806977954465951740498649359047174327854482771888781456004111001950752185800545385328838258261125258053666654625656445218556558867604287926061735200579171810256288155255817192331192325306480917490165325523701140460895099416628901487894879831076247024742705423993864515357240327308310839270934574923206295470755016341722563801574023110716607513444468337325931520058691918648259189772110138579934264517618492001694466085897766430638922321775552769972050920285835385717813229323500108131466914490111189173666542907175189657353031017636855985078315193968684231101473335226380771860454515431584628344106056154405431657622418837232159883706272983592300101359116035375492927222096493476321385474469579199009271506752387910092059887672260440405694755205386347002389042884929356256890017891329428331275323440961364672737900260111327228034886182142517090898662038998780999665975417485994850533070010276454122227730904362922227533401621686810090138345511590355779925391980744048808907658141092598152078670173289176947160690129177259968240369330316646583146378883623189098885885699054176350976542195745970613972157604787044880809110842930701326011032566037065500996831046021053754026332833392343347986840392709315548897843896674849885953753619186532903513876318204862320027648520764077446480060730440696444022439316086310945123807849589041794532549974625542879446012815139802029644908912104402901512911099988336052221715405287690075540559737671670645879366177906070235251582762987946895632319953143607964473954000387935709334834289361812786707695582977262768389699753532237606854674657100225592484852672025433328779374884978262889590541568076264977941698289366624460003047520876707390466945546356393808704197929445196646829412268872968800232659094921946267648646874961624270640781581234707322164452299194093389893158216089511064423517401759332790831330112256509584248802230928742483269826091075292076226764425253282972886790261934481681040233618906327511146549124525538554350663615439509561334849474079415743208966401490306922032536221188543548535111251489991836527035571658427136765119800422545175147199544257322175240583590335774315689827292468076201839918809966621282877404058655198087508071137652808079229593153311006087617170456971111763954673773010763123140427578312561944376246182319176839444644344255656438489911467107019470434209136461889361278566760552327534036786567989859634487816534949128080111209094152706514001842362789793285870448422462846203760777343790458256998457386283244211045810588807281314113001536979167408316722694980311918823752719188718326709809177808620902877904272788592481142348910219799380613618600980087775224585573065144802052054338488829580603556731254403793848220897334272363437052455885446434099256486871541887186068086394617513857321852736293235011262326390833646258981991505814479871574634434927230864638300163998322693584347456303695013771352180214923498983058995446273850618884047395615661488004572187435093677442689164370693503651514866220751415380550627433709526853609730375870839198745678612504736110927332848102315023757585698046065358258633654058753185115174676078255426153022778472392897063740858810342420379936487562664828524311605874005178186995900095721646487012285224928894378525755033049267307855566935905032861259474368079672991270656650771216633053860604202699536122883364187877626209351144112181168235413643746020781805146533597527774714334722358813796764440455429912697548174876583203659853485270663875446160856928489822802270112810552395170777123615315583233035407619590875276403999510235834008989094033595409500108745494865944505085609522763810973504335682893354821564464438661022113343221901479687303900815599202308228123517384708096795942403325259315533162190157718912101982591009269017643066120909095062749527850441903105905874457024609815601041960232442489170686117726953239850375051055149297963053248575120333383787960427575774528517536903995633632646498987069076798020819104622478591872963066632817994843337156874651532656332436496785314280811196771494165033856585337220507345729032385074276070454582340023938706829583343219896154276355951327038793921730373970008423891170181773137048220939938034954467602143144301126732551469926436982094970214920299154009249851755941708198086846596843228963984436566327704716188021360552127049616247712215900621518797601531354145172169361640116967937694709973413181867816475722298718620455844052868238727494612583688600287208039067459184168480750285096189611855466151114065879385479180482664703460789311520290438533931862547497571705424364939835256973412722004660901637829662309898899302492378322625166397523892136411307999564600030429589663260601968623097407322270786223316077646105622293195720829262089595355737829726528188946931854180655391771440260018100729237026135108790836751159626544982911353781862687454298433411882782669626009532981533414158616608832183946285475126645894674209548789603515083288602133663848731579984722060481546657190441178947160508619050464477388390120610752446103417825117691197985549627145015597129520280621848312862187430942474589774664739639240681609971484036324310616105186525282639442126932298297928653995398281062555862860797224027834792476290287706139883774879287206154808250828950674050595730281423884462895215866279755023017566716379492829803137216179437551347816484447708910733477768397927645422335713221096040985873674303394208731320808890870692364633429310036921270612992164250116007484095139435056926726602885952096904794478629964372352047610272814351590256539138727471160982299673718459007142467579002051923204519705884381070359802131459506290966207966045012072469372571894007691386235924821887236852868548464419866441495238950191930479070682623854970931317448239201287970323894345525222767930067558666321148478347929791410822293740538215889166037326968980544574596948074308200459183930256938796591535494916143835485614813221647954233525978572322768442258785840403400090439650663412956900865132615963137504096450600191404793438434805809826865767214603278727737367198816353942733126400196353181425781699693324799476940340265545833007355502061310052440753467934247103959074160931574597126957015738110182539390812656362665103386783167152924396587264541517033954090980369819140939397707351029188378267435990096855389921998253327988525881639111341123858393984983819995258492799515397734485629327913268928997985355973322183644366272026821564438849727454734354302377290382395228851241563327743710418471185274160501026885184532437113768828027813215199913413738084730594509082567049203859664376715191362577601059132042876190275459944811529234246581929178324128444498825452128003911466504898050391505959992839758017208347728957923710829715591430597063501100645555795468920815127401275814507083079664390936367211425420057219628539860989017116733566403199438580601047577817599188318380620868119828039086467784965614895409434263668805391456654374396485214867770115753264959475940955474542522716907637593009807863934570750647763927211166060396238516640346625606273133950010765036590678671334240251885342313483011259390206086598292393955787751084180986670939570067716975976470298708135862389348081766022932669048046786326822187025478767053360126177003972274285101187889775893034220804978807998704420941413135573231915448506740325815226636140888064157868007582417579598230017475474648967909260076921277606158688503316587722379836323732889151288788359463765634051433533314397229865584886696325458126753706440469667604216794905384509344859856490960937009157974601964273673237267426806796022350455384196252203383938173165664172830347316013573188394180417721006004678649272049200054382259135174355142024022451158561588079860320497185738777525299771542193959961356543474153772738114075568743358900492146716306242249282407628440966451375588564050042594607891752837605906812526977059013040057428349086223743503171580035930713663962170226436782706056751187255137402542444418573179009830363179196675310682906886252293468790635256759914077356494878295551410032111479706806062687846048874538055391616342026486879594286579990093678252650969536521494812853764936138138892162403089696697416855324814953896536499683543282003767580767738849859484607382600681569864511032466386906879937543051365141787522116733111328389162747014873856965969181996376149821227234452230665158414663570473803952408934431708717735950439661418940603556271816858939026659496080337177176906821617557056516853764102362613015076378892363123570316946353691414711966268358818420465843989385488479274526691982026371894192583299422204358352113228751053249827680778124048177366906941624743322376179373774968518212858888678639712391942002521372105682772072168621508408742200901375690873215084125418233665038029665220787629924376361468765472314462238643298371126200921703215358075810152412730106562763724414087006266498749252153141248877082958080674024703090260320515250670891053887237715434710870482755393510756072288751434825370293978328493883498993104744605697320887955283716281245593850964133566231850743952269151319156503837039967807745789108299818951706490519816706681866877526461263249194230464708608296018818898120174953551324307330449098873875976909688097578059746923167557446109077380257104878060895377320476344465385422115103068031722161601763413384604389866098567562247758614359963376287364510380436647709995836060024038914127324366426113433036786475979861494755637439376799339477211720220849098263850268793641660201858582290857549269206768019765496287709853559204164166201815012489892066638711183478570791284431593383277100237125865075232067442794798369906076074028585749921360841009231807750321088093327708183017539552161718361645511022735350517591309370081812808278051027446825129017432951357849122827490224858878037444349496566097510474691788572328140253321706605158559959395713911824161870004894563293133994994019652558253722892528073919597580557983125726405808933014072145438492376694193590381789074443768478160779260521009441435383029313011771454972957028758269752845603156671175397420302692661009183902406081057282815605596662458147253101048688746038146394248339379401516790875531429232241947217956499879278750291909928441771417649283886216093610005407831785306595957185604108948500812638028433721690281907690240502568835126937121424652069717276741301062956174590589827489513653119018747386241110703951512643460510950060263514968776648607652554112750861379838543959486032325609523793629490206327755863289843095009369244577720766087968292627353098268485004891462104674882923136192128391814781812214205964005798318512264748824177497704594382491621867275642237878545343395428565116087170674880128650707310084900933480641804577200076292343177179372424750459465569246493266577295816711315096544752052505559074048878377544246970204912491262692167551822066692347400333271848622839205719370357333889461911417303243831902952336161420510159109629360526943341356477127680643842833337414681499240549643914023912820831819339376902366799121991438971283896943753289437602186556596253360979438110759556410003144077234225727414951017589642936892112746231046079117084269730285874762948054237632574746870196072799598972518448373311956178527258836062201710828035821138203887909172633632863777806208174342889216858754935440039613598404587173336839760641667821032676316444577172251121374274097305608540047405754710634546729702557993941542378003132090898770374067076335376238822017623626698938306965107386909090957273785130499500425520589069737707751876839761364660428486323622588737463692906209995335422059653589845244354318994665201158434623685805060717077535430736522902205005265817003661303639764098912186806721375919986449547222543625371125892428761951556866387094617146670900310019597180279105558216064049247159183510460901143095543466727480781029677953891397782904228742553078311494879075685279262178398389926921113890622210214301210002926070583060224725509826394732996206169400736154647427187872224139077640888275952258929438041394403767707082088716572395797205722227474166206270691594266887749395331878150035776706966931238668708480858825393400285847029838167528358594106743332220000390991193869066441974416520276061671295928927954965922551891411413146427313506536295831577594489209877869712090306612720204844151061214001939709183435396151403165013957439828058482131209036787558404721826706419804905237576190563062157127825249657402100753457806083955470610659135717499933114057389901157906030835659823110744556016860151562967297870783477188413574238636671049754961116501627305547762149073480231153937680953661800942337123001528006324922540985482833224726212568015092375818658358130962792339595982035930252200458832590824686128871194386867417372905355591692147057986389204241371523887391858766775775561041516962265981397932839912269462978720523993661319717917955649328706948549365989136061591404748358852593513710164577263920628084243194721037343190277951173720354763326968092585755174989806475127562862699229338446950499820366587165510648307394296651097788731236654708847184526340140065558390888830770849640149660852280401960016748089768306482254363326807750805238931090392621878696009946065088321252693675854958340812952079119627968443030074532753173531734130051115027331464721853102034081412812796374196082319293889598811680752190821010140926502507628390725275214788659263991069482170480471196640713740128828542702198344550431942428206730075642308965481286693321875636716730878592460025256173645464284128514837557480331347148954022985533422924036872308555655837017065453841440418875195349657739818642727665557453408343032913731771617036613978185554268999047614353884693766379055379060921391468880120959898153465075320252595055686238093802222990071415401733384320889816010889750357917639778928300877781026988477128087894032236466126246584485518463221063963054020291509069548625810205891657643767088629341880425366551214836983713519159483224679546865629971451558882512884211443918939587883301982734552266592164607899990314366182515831957941108519798701482029508599789991118581187498747411408406030210453375224853259781586631936518645224674286304468239542736484391538537429330848566268756740567220275827184257684204101798550207884563096615113281187914839000011459726041834513500709565142712095855598216370920446642230481669244526655568547184823044497340384575237062198052568739468301307252899961746616000686113866943702882657924466513510341613230373339129684740299519571319835334066269864072709843505583607771549301336301973256707350953581825778522413631134632668892276262139259749568831855127057235823394987901442307301185214577290961692685519984717677115803280036193902991380408629700261690455619170521623746371993864406200309939109022734595627395290934795622122212026242981309885439577504468056211806174045146841674141837809702078938550350780877513174487923561040706779664081534693222769715173823699834780412859859383438227492421001442023589653956537528493866878632905001769861048114023612590348140314358751234003542862154964322346811374467184297039988272358209067049761699502863858626136702743679473229694876222135393672145595567360365676399772875450316891189211997715505148740996039121869465594710436168962710280940954600493451724695580349707871470353280321284753999930317965834924554217585520852655030091878365780965054881798849858622576971845387725807090593460046185278808666759909588838898193240998090047364960525089522028934667436697814398968016019298027460582008494919944887478135717331307822608085649153503446682300253276332517091334928883342731620322355498553317810795374750071842014978444135938407370836811407785180633140788296611307583043807790837595014953747224989725985430408984126923466938871330375702277652761035923749391873178538885733360729667066017344452534080988626084115827064570642207980877301846087203971435975156162504316925676596016222874989027346644472025345577029712613532482000306829423596130542346158148168408848048701943366589554119414303842836946021959881610763630763762467978959158025542059765634063498361354694501226172211868209292386828108267850769670586634981142758856556253153034187544206607680166043193036398989744447598387520719452114519000990500457460032635996631702689503755489866581337844666678945019500740892035031400536357916511495926863437270374601950731584340111610915934578525316348221508825362432159892744288613392891974134350827655145533569767263814005325305930464972380324204031459912985072776061120053430181650942150796049507799284963470380502485979745171627961152803371095669376926441501610468050238671384611983311737063568318152236638208399665414380940001553232463496652715929371270982511183322548342142835462020704455266863462479727994451311527422351235340155978678923957399621845229345011463848030714575762390269104530159644127494891943584804145814063683241271387687141459347192787297686963919901813574331700728943819795264749202432268038176084908256902308440041655746913900263816775842030744785307395097543389188237001735161089284683268412751127834213597511262658085897628307620743338769652313207353801917914396114835923832118400620754559297445717135028919286237934665271174664164888157004851492198362435690227747200983438953658159550641127203519645857311647679247143596004090969271549591866528485688912827821565502795235587495084070739861807141120082599397752268367426065361681602639285558622578089839652759276842751521640110292333227354601801750690776946127331230145407178024163914612336958677545794399879419743523596828613249545353620241097164203871727504819508916280422276331440888632521937073346649362293282029305672091853463310661303789433327611178953632656490879538074144250416781513406404736474627394027611528747667008783089378909760256485816279915278904765624639582331525448138919481835985802626724127079727138893541527212300104184229163834410439520332142687539811659217073971910143738172612565731843521034406004783484576130440458628323259595428799792469002429155405634874630957071529153701069569319338093711973251504901830385190568428083726098347236338578031227370143095961661172424747609032431455356259798898624053006794469933025623653869693874215858381464695462409768451790959204251228459571019905920024093043117588263692846314132397784103919422105490286434312810829090123700497485923462039945461245676909089743779228924057750029746460605268663768680991446383593015751203674858776796434658755567533900365373735105371938214402436494035695376324395166399986300939938321968834333553143698367713561932332358460583356159214490237161623754424772447337529753855502975624047281974901488938065091731641868722972096291160342831955430149868321772913569101393001251687370184691530538008896110646085383958606844317647828296729658726104297891053596613189724588602825122005787977785216421737601018626458816793220003865102378754060215666340623871982175474247541088570165019027220618959303916912480447725726767611403972867585108428603588425682181585840278392564731417269492350248429515322613726089259084756547897378572534126141756728347431749332372307130275169025268833991802733316393669997130636449649343927115695729388020497298121697752849648134720098109391856342291520022919580410078016193183571046012436624205753668993637523472539827812947288680979188668282267390218455916291370393641673373575586110799392364329946911701741778131600916320699706343238141580170323769795296214389438250683839262183384159673859284946318037128953214563565325772593903262488372152653865422070562458857964514909381860663953395364957146823408244574666073365048017794088825275877229507098293640381162570089766711885479602626852828525687978293336332783078401189163885003340076029421226558468073067549346109465541459889978791815467614895794185720566852538159110304548193835560255925667545390556896552703480341199339221170980430847806233037255439823760298446944984256657316310809109542775270965592051245674277481757324547294224069431495767258229682455480656491720900054031190075412833998495810562777887239691938423845329394848121978134355663476329957248808401337526417602185168954966182451599946945802371903681181462344497129844653040726787060416953641529960031498200025250393437612390538359503560353164134739033790030620194336212685789764971841466432789196765060014741702445822122377114916025897081432874706731532003790933580710817200901054068339544043471828615118016107365095239095335578920984390888466398585116216887620564180048573019665972801983706306382479144609969850249528690417903623856652581197752189457702935894083330300015498588998911898297362879705449652394478181441677438778411546399746626310698940711531398402938151350064570440900745990953413160369444100259583859382654475305513581478132578505144191294730997273946863579018474769040412410194878538697124977443979099259535366062659823154632513890656167362090720470563902904999944650371232036952591813113969422898634410394413650694710493992315292514606859691150585179034063706360297191506061452275193124442575342136495776659610470100293090711712065474727278764941387896585462094714575478067286265045740760166226151610054353326724481878917429733301282225819035020527033039338927145563272498066688222212018584860079378187900802434776551007055797979250050942335170043195918581818418389146191548937721725316855621604819822563261555094190002389303343587436839920381893985120914883992766873995704841230538727187023047798245215005326400420322232454911977261789494114719042005034790953660563246185077119974361990417561386499990499193060068303051348357915707184980356678284032825741064112987209447459011957116473269184485096015260379607311544422515646496668260248591790539401619612839731843210537913168864588436916761388702104721367773497228693541739592538391712618141305886465889515327095553144400617541820364476836605844048558159529659611221825988327445687584538472761190702384891051527789685420335378421555380140206657217272617464449259800141953814974145441720203704787129610912822136224306849519159282057313747882009416265430568749642297127604574789313647471217954536297882822861547261663286966125149433007943187523363716085005279313854974937158223593342898141009464486256722267090110868786926894973778400722614438057005026606158312939806798225275933831435959060221428003530507928010685386373389137356556595463817264338324556910854603796242681507891673619774400374503408751147882991795963744888972435451559377653877419278703293450734669812674383768340593967637675510045181877105038289185146056062557150505764015580414609230354364127117715274287193813470886297477742677840182298134692327607886113751601472601550591326487264174477485749081440503383858205528925754104222203515090586008800419812557799260088478264222701210830103495630192216864779126971844588369736988923988224957625280248886589607170827432688180009722903155133125838572564207887105721084171548663178022521910256048311354690724571769387508714979057064779580185995025496125394647658283255942082657185347291596761357577420406962075577111606468800473238286748537123177643926890856964373115955943163369309462725275459579612599158783647087509125100427677972212972376358586374892561196983245877294034442525381512197402129430990164278735360784461434000958032114266430147127025067410374459944034342757516821466878727540668589582245482091319722187541557406538155207748754540049502398450898318734561708731433039293065057029310470267243354115259671598882847835617172470991440522348254451043962678505876773758467710755987839637465016545378192426823748377396168020389430572459234988718240978315100965937064802510882297865159646459309323233290814045010755793821627241103347128051276365328105841029656777790960013117608281903554976306393096642108366250412736393713794788086823259801357989122388945131819125148947332616126685798524471801267118799490495884621716609966081438628921740353702654034064896183262441369924811015047046301089254707367341204712044902388367801457317663307759830178031543737607605914067180251774535915396524958702623480993343687214313975018007895236492096275957957480547217043619938186839774485148447929005705169543235616475010515574686472413990333607953621851141415876303967138618316555003889257819525443037372666767834454770743710582577372679270371609593278524463180505796209586069049046016332300739288449098989756988030553778154938321597185505043406037461960228051361184326868095507132619630598667496416490877245014796245205080981277115538190122798149302605821889354248597409747470416203892422478962827059946283724764916454902278029829373043459998248136952665423687285978598928892736887259217334982223154386587844726652988684986234752405086299486108729027092496568833839325877491039012624586085219426136451352872767434812514730536956698329329194269945921940092319404243046195488311756756998327914659659655508122172429098741618433890049611869539733550594888355817054064750488700687668796633407227468667201803128993144430125356978651920240057939547551047673487980969592415965995820108606758515385971481620357883820682398398216696578979991528315001293393864576428654649278891742629919080230434197081639907562994599952300038425906791382623485162708624795885535017777722380875079831855217706953459282257357178416345374819369377496802066186425158351432289132546767387875715771293557965200653501533971342957176859741132345201368695198291930980857551824176146677828663554480915764563673121832321530946894349773457042802464290966887251431825568137102019104406643753274671619154436418976567638733719653811444313611927409285328319096780597158973519634652006434800208435550007961911338965934161275201647730578078802797322356560187379805001101197139892948438503321453850645762719903307595034731228634061218631393456111385966633965944838710496617504048833664799120918577420009037294458986537754672400888941274244366119745974837372443569186830959695668752536432971084144358082815997169435209869161483533189993514659698534106053164333130055435248913782386931278468078803617050262808049515234739597593135300860520393679755523862854002039359861584335057926784370767760928235655728771558685090069417490137529616340541335615453805563876210659615119158392166788113685680079065406569094239452878242772480020835430176233380789357992375023922350763356269682783746620032569176676156246298173416207965086857743015885519967882923389660825308296917481814595527789969368131623830445415980640912275538934122140221184356941396823588210645883585731180371043990358301552982975020693619865560581823440773339560305342045753670391154112381748252028419216445000677834257926804795662765780526794943534043118059031803611539048717552317737841598685437370669942560455862120096279425670953568181172972129408910915626535999841364492499612732748924992327035649494431886401025578483970224236382186987180370440378772164240751347857416109873185926213586179027384689102691277260772981970113463206842654548739151530003354001421836383189806167864877709432918653258670640039020580971152041266965486294888610308674041601160461233366544868557185210561997216968695182047172890874340531910085728581460256600999576477332238440407787759740419916207188413735797815846500085751662611224294906466613168574807885701545789192980214467090467870467765361986472901445521021079646460418381318865277755069743646881822272316836296243686776165144216115914245460716545815732476763600675957621320019213332471476905760076073086613109989839577798123997182463531158759553201949359689244206937354490167611411219689009290366790111190493877927730242772411675439549054006626655632897246575604058533324628122066622268386317241000389008420213823958266866954182233434745096590119969191505629775077979102602897960603440661045682144775102164168657531252236396341592137019844899368742781163735707946626544904766896113531383458324690396731919963340073596113519498237678169809047461319280606306168159544644029393356842452253575674134085374934925321486238250315283905319919176453288729057086062478583957083342126826936942386092633309914798019531724562811978459585531265191903915686416636118216276565020431879041913741711756818800939140935755650022923768230315070256271395618167353003408155954791487727045466451554839939252477598069171130506341974381707291642973274298133665434511433176432128670845402715872748529344378311140529276051698426773424079198075826288523472737386738173346848562076776796918206230314788938391912112595108972549138345239050595144132893942458063539427285977404649414856884963272576241003549725611640040597158157792406227705096262002116971995071789433592370661112000592317086799790501101649461080997105834413551848548586438176972838622390731617753940732223548744946393907993107924957567322190782145047910617895175591291370598110338302524218940982558902028283673430301251755587683256186979898491853699587027962698152463001104132775597257247572864914689164710858708292191992487430649578620554339021754173851015054181588538127457416325796510884932544113549382108778212423878128991275092336502195159329943826782484034815775770794335546902557851210271603906971688056631685580873034339378089725125633145445489434217536130131309792261232635485585850343016510471364618742110806010142950296098988146950159567608486110148481472871227663225192634137531476325983836332294709382620966719521674118186652951233872328544475272219019318152407537589597779256984142677234038247481772124095116687459911476686089012756301727597632297698305861366548065039525749499148758179011500417220559555739348389875043365200357602959268882398192499897415102049046198602771935732018167009342508021055884487183746977882323686876277461108372154639460471902072503410260845728845135086886857862707803229502078668029800678948799994535722520824694100878834419938607658753815683229158114939006346167972914167150575794436913361823269202738553389642261638619121111818961109646447025790963878312315635255632628162818008680096135196333657719698075246628226952327330266272228022888273439836316424851047246898025874254561177487743150416566610425548773959105892342092079716180443593763162174139563640831135553541721504759695392532813765532886461013904121526928519495699020226921245241074579536356063273588150001573079815110128552050493489897306646423463503300844062614794265523760818972054631126705467840492795343495174321134300525290625806489550167234967696890675018948182820013148599010013837632736903732134215066887795818844027040047754668352640815550402437322133725571971206848846607170348133154904066965100084286344749370674677192193100599348029869216924098028356614498712048457404803068322902423145043418779677560989563552297419246662794451579194817327005824791936259889188441166708794824477060633613211435397873430073859441041008773228210542981008984385830825227707120524658573509754266684399964123863290990383774508729499635450715299718986649457980928077687421836790805117428341982859262530345114096007198004401179338196998625328658269718126696491370968499921926409721471074862712740164240548803597932200897506950276443983705802834337364436368671351697214305701115955589782454629068337663409447776458486131266733753499983717338726226611144026077425743881425685242726567035488073326523931863240108082151869527275684186975699879007876239530031614863823181684817703060277786189202942294387264908940587698576346277457579595518449500990274573109337745424894850991956138471350777493279276610512527278979012919855551120601098774649935911535800134961758400223035545581128074282522754744684776592820397007779404920786516029718671102922728763615560178832053913580887878534305999121041358219577219252110235120479477013693132535184404889496082006293034921544907827209832300714157620133230154713030363562932345409955986965702204204897113650621734991384199609013487935313249757188060016034966877132224303977645618837569795128346657788097460529521751062701396321296962987978767049170692531408987638331548841175710608826314651665418199401276436198776643871653279456070936466956177096334770473353147518276246101881086489806190299987194148637460218741347150912555496078614076822466913667258913854792699212168327784866888799762731415669334336125794705432726943445531868956275209118347445487321085018130873682405171562976842987936320373021337973379979741689189658361320332631578832957596923709388159863990740098796370401349573478345833746400540489573974573256867794538682503233100460638997934508742044176246456619656873803756017880010380806778840450820359303506331282184083378284211950526779212631110732641390080664631942273304032771753313464559871800073701379705508598113938563038875381741980450958735119803454842977016055142941526600024717712577023771132000107791541584411133807629993244571833136611562628527387963417163792158063212294655065514173051134547424776593984088889155587409293160006686859683207424027408319514678235001428375805485205552920897310049149137077396055860283578546896343124642419591533317277196666425677441744968612806616615222646913206947079429699905374309062327312007629732124406409491917153777348901080023291365170795027952605086238409378406621087328359250003224700427687110120582313688026940918901694352024713775035498268016547009982445249185697170373939725334595961475537350131218631743075804903255888403339203560207362962765520031109044149786485071765433048625272829694916389384162503701104087278693630828549643862348906882226577470802076221160610376402304103743991291408525008803456785937905775849862673725610280059739588034169355572129802286917004297277587805055475225946521158185505523993851127776844951809147827320202647785480025370061559397646597314548248629250900535843372524480067508193688601068726283233617685681264804673709461841981339655487458986165873586157826993161457478541224160143440262916513914103140090847981102044801335177713869709037442531477604514761025229617948718307936020558674672245731351720613489878789241267280991862639000719506777548873673884318115153550852273528266639932530293472835496104090247755663094995881108502250631285537594759466459448193933480127193516860579342064958779033856680382485184500048745552635052564294963795938210246133680377266980539181542543977084662707637251127114496244614812415261826286142056947087774836105139128592609630927194461465341501153738436304795557167800480337822185614066823959286968621223638148496924901464247534286874420722251399029745635282662106386377724750824426074951831866241846473218907482153506305849424335939049343417660198921829405518991553341862632990783216682417512683505537185075023010036689672737006504824284330950259959308647563312226510328598811840991971318191725834014085575886784172695320693998279899105091628098901042197378957828349825783376547851421579682910408492293749664423722702895370349127323150558282519975211256913459329775661767792263841904685093920447953305629530947853102867368701930530505945826347934057303988947942093454278279747733743892720445452930589551032177506699862999015849942945623617217932685961238081772430807793864523175296236127260970029186180795611505397170046051334914333574347116252346220072184706091240656947382735689173429921904548171509108567897636680641622494420074723053473464300938440416205747090190158974034616624564389001874464172009293319242340195291234517541940005919131572613423946230133987096184145667076037478060087650348367422999300585843698420632493560637465653483063114905766782246549032425291248175748142527587331340542143403221629372983030130013556291180238702825606793804467235933869570648478778773875512997971553878947635388090091462870432414879908966544897875945969061662193211996563262906774549883307052286565511418496513620288342902934130207881684570674688223617408686618620364107271582405250304159080866136756937012650675466421029440371346842013624300448389195788881621290925819259941044455705092896670444475640031625797738063640540412023251965044761889112714714430377875276565380761239979302597108706840110610785766519118966068150124741050402160678503021587993158247687617839112130706035321481690408111688530991671273777376376498105454231279304354092186396740398829564202513939871829868306337991917360531607982808045724460825198995070243575329039933125001971811398808075067957895944937574089826700229389302661269614059161016364092236837837642639639377413700187961611219660270360376798429597312035118814356725572977691207344672053862889124306435884045612971074108977801486334906217079684667266057126986302989620581550652180251740483430122667874535015902531050124654265925096068805590788559167911544449153610077409977492486936360908857259394629987397945355977804409867562291578650093596185040037058185447934316080041228730806387036209981413607558686746071912073155096853897025118413464131133581703610953847106237473190319976297221470588922000783675406228243865347105924029336467281198261932915550123538204690220569737316870014496577420413907557586644760195637174010627573665141860692526036076701004255020674333296134771757982690943403001458294883738948129972804974121590152045995098387285731568147605006370482365451441709143837339258837875864993874288400260567413714351064245488621360591581907700902080797027363433274838246450474447225101968211160390520660820641767743062360292795135981266887477105596862868160550173502293808249907282460628795966910829067542755445543737101977180920591241926810307101015078506289368439296646741405491780729472944209875005180314467312590643278661247328642601838780369869192853471551968510830889865699580555030103862520920372352844926440899838956187060256434968800279155508697876352492152099045963791035485774394994978745834428551786863040061044408485629329024013784414203930152830179414941263609506923537184932438944600680948332379523294112218609216070029748483597142452290724419320883721934695752261036954758513919507015816325849753146679829728204562530149321413928330387622336662956656622993850667671562734990784034103505888851147446684733454114010498422676024259297746474962592508526159774103391005615340485039840845176644547683227530734411603027097272863909033483569407932037724329744253655597228461671041926798266736152341633847409630922242456042597784635258781207254790650107371378809780195235748032771089818408035954271065967857797253026346030465060023695298257319781553190669776775582827960637688052979180030143370694540569725899229220851263414360780639784927916236276567865876141733626391128382716662577726550495162108265410672705086069050473382798369346714549989001137740938547428117946452677364741581235776945811901805694779526416293667689064242315226081833906520633732301032945649554880042365468125895768882610685966650742610119152797527681659919193168773907641004263829535808358911430178237119307459609032803293000119764509874701947264437801467456784898220340835873209948130322127933229267295782757172446909960796472699817778008994095699920131360220499288018652177969667637864420741707042291339359154988074089190124308293900686207362597683017503933491942818401740369003510319024675652437784127692009603322233920619828322450974813206883620753484560739265651117889606632145725793601640248740168744389665663957871455887991309067650421318718039606852177384027521880384981768845905918691287924494028286478085379645724033283267623968122633400329817190526182408646576112706687306188173611218501715836823974016729933662411248117305408757558370105112045038301418184650187838345236459146128803860192656486550967953685447725914256108480695156370076202468840470119927577790927497524458349022315969866272060384397272496705795272564934376147485279365739256809861124526219681925420221365220055595837876055402885498571430649490148624303643524242737823567111752777999754692140614512082417742704176580058081646118252410801842660487637184957434158901866009982379181647000843000827108451284057797385523005040085789077474761541022590110276831616650332265713600167925653439502653144079833898475496629161354595699479202786787735637762883047543677613060629522569715889981369864512402702967453073808608317683518437772294309277089123399384786369988808536607652169970273789573007114125257893167071232890326741488457758259609152724511483249064448659828514527212839842181125539344184195785939574871697685613465011868576937120280130630143539993279838607719694139088898576319113400266986634986716170636820949649155282073707695727689554355283587943393485996659847201639245794396515724117674223921741609527534942922453357733157106159773727693780139212184235277482958794684272783981792626905751045604099759149243925403015984944184625080586496061602401602020602822923027393768582145278374321729642647580208091454901490765937458958586033032681031934025672502825215252377693509573976096320567501716808827289939205325739899355385956495295442014058758757087123624375298743659966512837700267647075779230656456286974752442031339617360745032714757519789783488579517782814231585283329617459732804902151168754979410468668610638832591360453744022697898577479941918179274358203885554885459167713288115361399821375874933100392087982989662068850854782434235784120443755229161502912924829056341510067673379421967133933681866289894068654850838927124353344264229889489535046236886465636564584160031645962001353241939642862799228663908351521363486745524586076240431590464306061089274986347657270241032630283036870506734685004176909465934371921882593767543040322553739428039586289376895188620185266466310972199199848929797579989847864375567860207798342902792054616402110032979282304182866207014546637755216991926312972982797826750538338999007563378978956170535116788105860242325496843877372116643358523430763752272934322665500281928570569824260059032725445115850160641031055129783414025528871736248452630148310723853359374853870515764326847890518991421468663085768123363631031150917174007179128271394234998886011004853769810858044890354399140793778702512960541555360467062081661905456271008683718791792183328665346432137011598366217485819429161134309343747533353152133764560801756159075506545294358573151221923954053549329002873790117060740185304548155338067384067575867986170567455729995517374595922642156143844583621412080552499104714362209811931507303296262910259572692792301343381909009163909812421530774117902253168018542287825499741503889748701973181273410767080550231402100685559004731285376655226190459485821944469543353152256146322727527091877765778788987486862680042004729035006345241361401016488949214562229312619906317032869402624773048832385555360194755041106176268744062520721743422275544613169215171443267039141375159164269689722501039948949680864693540889854970420606846105062398496135822380200123916153054870632089400064239394843243685346513572838336855977835331708955273279303612713691883356960547786120233960905696267273465120097385113886541582838312637545008536603631275925324828215564582818878846968023211689530546998026716749766807013533888754670467997760839932024545195581859070246454789242307539062895472493893125422398479285154266549409446239434607504491320441744225365906566120667613375150939933602622332341654787124243082794743285725302967732391518005184533156381960525368688454024099187486967190367715460544029732263662321572003997386421749346139683969976401932553348593462253571075020960756848938827428783898463079477649463045354143922152730177380936128382757183549970270593036490792825070839243719001418875453508660965250275998155034623482886651188309266398312456953905361520429163599413520596269567264163594737496190716720712314664751078617956296482532261503548832695502729976686638794232727160804229793529678493707063034090589243870458157593326639441725464315293424964944829322728852095958356728183182703303029304178150828513663503634768100665923612132549842958190809895442658121236402533153346588561536213327089887091728508301575714506675850097449224424805704572600922873063000214925049910661950421878450606535093610771391913345104442590711664038556861932080667817036186687808742807792232195808357645674676988820969591671521746595191302334646412413131718762128133894786313540746561648752071972547448093831959103221362457853380784356518162641467931865094536485727286571716293616417327151903438753403899169509629155635348713976252753467293412458166183875902834125752962732204934723825383354981423420946140855917439770903266228667308704339619315905646699660847635325220809965088080226717249654889748217648232713762618683362234763065684055888529615657511428271611977173300555131437072603435415310743578838087275685315488533529020036823788589974346998839475969930918854843495820515190030691408619432990228211038111464189463297212209813423444483057078304422093925481174481569478897395068997712241346182981478142110108922945846907083689382309924334581524137051568106065512671666327089615148159322495972268846855418145873486707559376887398236222653351715564160441642071224088333265345872245139049465929710234315148149490719024059818173370708456574205843947688064177724982482137952987346951202760803213603850330830822395122398675580069286124723678210937057797999529885308192234192778869901132925629987911725587383581806464578017388530320856967432403354077807305139321492466254117533309655551874346444454972518373020904159930182278134257196226134621448865228130899878160746124133934184517776938782325468911895343706917541220529050932924614513088446431007855764922640388272289750453949766197098888973454589213662922274522405192834995783667216122827432005588630818976840766050991509524116363239825716062590037194402488437401498126728747104551653674528657582415677765583581445863692376821704862520028162794957239273101081838889775921381267724121924016688359313888088291102118160711727675744868339796570335713013593239023747357337220718766705057285335757494225268161040267748735516066936424048649907780253419605121122384054458146004566049270729059922084763110127863519783899280186470905712275907438939151567664441924134593682847726027406153970735864982625302323829292252745893429385447621726565903588806923725360399237797888348648756865012987566281363546761208612114215925995658671188107550048382992542652641368939060994676579862272044583991602547451854798675515174694876415114520876279087539796215893591980289149947322881301916933843567610728553734213680024700486752417506562057100985637110891780734916695279879845676780515648957192973331494422033304570921581722460773494802035424394344877099426733757833866801154881936504339640530929546124634956517458907051850753737440472927127540096629786879086213304500174834589442074030972234034108324895601352953509546013130929777221013943907930795188395061328592319593087057311907358305981154199495794203281065797427241540075294352901654937473605208158456613650857170666168995219938529276581481443105807941576726802786410609333592045921828003820785345659329608517831787894932835782963461607149990883341188069506186038414208783620704269823943025396711212713639070850160792163947454909899213636693026321337317801523849316877813758214888106858409795872334037060820434817430331089772647807672094007505008479526030106150739999143015245437282541060165148709112334574231956629086190010473852690925780578172225506527855428730856979850257023088987541762612803934348180880222727495658035442528808984307226862460311152057205761829325974796853424410722067001587250833282200384671523731334820953265836550035572276050185907064613378011889481355895362715309397740684051744840165908067246976771859055261581185246350228063458769888002954403646446557673322165385669073468667935236096885988049189665217069659959508259111041004942400442588582653896042972802313607574195597376487897301934494679735697146259555345767917815218415589518552132793338980469890912579641741541837784939696221853042213080610555994790002516221456330068870923592300833373814034942074307710116163594901743462031364800981567489774666997473296113387495509415527698000369658911297948273659358121122704573642921249581968319937199210639042234818632719815880251615229988389782512166691832596072232887411581276189733255269104019637778136943560339662028952980320449371621597675813175481142773743218731506321800721648402594268627316926755004023087921560204494275526029622191288808213411890215756788581649560984394316580112056274794720782753354789861844885300864380132229094278403571036114225315353555705624305963687277810645050826427892706871866195897466604033082201374245305994184858436129239524950793583643271271427801334480300994469748231980380568530953595284789023717744566544751308062801644499080342537398508598332525285275065855461066931194097094274788412554987866449463928353006307309817535430962849633769567680590586741073519493990706858789428023854597801449693632364963116706306003599318414075824832884337718529665376199784409680679455376838233633899252584182115356273888335196854611297047804407633386507643926252820037554254206428591963753123085024986942280141772384220033696934561668493864462068375311563166796380866354429723292104667336889751639355406725462604283947283534201493101884362836699477721787740948136391782127753370461538830831490974613842330276869722028998183742264919491231044358586920160067631607136447549839309454432480030465994485963929712185087607896113184570167812373865214158989851192865180849707900743015109254735062154582051022096048284792537152204334103152102876517972482225162064929613324282200515968427671650458950992355657584747359617849024392558672183461616241050535955847756310156012647561925061537509079437529321151330224031287827359917347592088563765433900751665911099255347120084154943028474894043305590747271386989229316729496718581174249864438246099495959990450954663226533967903447829780059339589636958810820009513751931542350221935999084736982613386624312002372599507113513137057343538481452890096194275971821667160539349638170600984373738077202011075065520762221673967014824979909047255693062302743973236805161877058671969280896837987088773435155802380196343935621721152805151531868115235256947002258257020759916341377608054513793648604183988522400547934300347248410797709611445513058369189660177964231616818754248474472635620259437426711675248397282459161750529409335628858435053076379769087541911297084596936068813977299598549677883916514776115933805624311810367585436259109745414773873491279888456555240210260340992608221003297991213703216827624482289602396382220592743386330326518504940553850487335354272341910989698201175950254731978981477847231388765690113860461170591755869670917430090823402308384535529296147520005895089656210520429473550824193602093317156955457108179303956440923036608436825369752982251609022964901240639528714611054455638947075770215213841932786162514684410484355763910519023971228936877202724719730848279435014811040987714430243029510938643382864405179876858131571745088152166999022176381696225375519910971165547265733203934384196296349175312626767422179449676424249945933714110766376241610180097894469265402614226458762919017741229552177031883279048233592647038484552725276219755539118319746346715678662849447765786097379655887679521454495461236468168546254456943709704006161414402361396685551297832760840491321145936802459297553127312464145296038831182747334113591883817647547867339726880399281588161019854292007898553833595746076786777660021288990659434567764989259800868457620488766339581397879500410401714796814655972520751579777138583645902363207760086727635314508211960400326756501446750725409869897413621752023572114915665838034244823352017130008826676907880821980833173324117725159589539360029363816806613420891236433183456624157069971070810473571238855266895547385355171728548123788850039571986763521910841331799458065440465120533411013134300253305947041959087877349886558731979544460617543005050313537880469005797491702464270439488598683153942834883789941365382123017859336918495763489929779621073227526974115372761591004682876094083666446978721047389046316633227664212983632739425684506792643528220626106068653502019580353712126743077303166299554912156535958650308376712155464582331539834783035604297256358589549961967906118061199618070448476903026230069136265207256949853947098355506958805155173709454204068384225087920468939530514610875193375697835932918865123029870831440580914299750115219191941543937411535384349791548381400904334303961047722039778412307826358369981114769720758538229323888880346883289732513854322940868064229309333422412895933959768667069473655851628791068942445785858739358882135093596332453376745633277343029551000220738427156706046663048109123664233426381562269627359806339492867747614557023970098432007579127074205226842660436838262277143045918292913135655785435392304926416797631979446398618205824434409618081044519938930999824279952732622373893496145462201197967256848696415080986154331834616519273326695202378236513564297455153568269693344619254630373360871404100165743004273112875345711814344171908559193689759330864620901167407415192246636400508355794417858565778988229485641018246338341806592251135901575732526490106432030347501288386054897807729250783071294201479103232130086762959995905490231874162244967576785655374316076758627541620608676600512162353655861721106271679397545670553785507978486969363445860331852422657712188322778718150548714752198272586831950939496908850639194039612128531293640630405271741019554894511918515565679139073232028100512059140254648454037181952293383301368475097863736887821391551455023269690998810551942287531146268191541764371630623127067435741546559661420538140828594975508477915987521891423573719852370296878403280675837713577893245385528247825145767079748686434869452868762881424354254966937724730858323881425681813932763776080661178629078909448694418682427587077397359488811844520706524506871786448276603896707012575120170119470415309946813968630601733303997226717884343781689791711171692482434042620620630089088612642980906664970577124993925103775756228032883652510740140985470681873729590032674228002617563209010348513237376488519171229430303456318147926004619601395574553659088853233111028017922366305425338347821106314995256668657011235498108398034357124408819758175823484921998019413778944685451549432948845873137182546007761328054264007425815752002702607219549151488607100768703958519193019038241833746680940898116313703607114895678373696070473129862022497482574656982506858654441130910250176752150179720104356765489097953142254619081813442845506143741225171540406067586620065090010779670873444441451418715776697253881938467959289855897349536534897082223307773877520043869413171898773755998386377217646861959486948585210126117841572335621337259304686871871229135511151289536854937697079794023951912199069141297228054969973250914488865739168540559642996540273656180234653351095194908663893904403200001452328964830507738896685845123314301888786499007113677924394615799575661822989454345259468757611799062339624821090274959007626162145603063891773816378710381461051481192623542219121174623139407032842998792226272600806753899644141673703982101262964101500785033412664996874487176265785919130715157999964665482957045408570119676246154030122661357035762695869252805487939486949462442833293398235815528507785425693484667862174600837737516707989307279601286557022408808224001672762132050305799616616634488312856481898805061804385200643225645980795246884263726476858365939025135219157251863678392168578304873315903509352821926278955402024969458493704140681500765016149296534640941390299437416811008919989719215185691005939389840657130213896004644096323047401726880293312832712566185438516659346609076466590657296973287304293461093771376826557932185405603387763054534829742556949155625217496991230628193490627352612499091300107066583991998048610599724963961063402922798394572744618742629368862175245401083497236537329684555978447632342203589273308846851869518983959312397400388619135030864525415712259407996189720397004686077835750014371103456309666003186403333092686411069418622998074320549409578549447726013084585228493274489575419631588724376822362786482551472969871604115884148026146397833394739283542380732566446419016296149047129789638853843218659539695989787623881602110017565990847124493136081596177805466846320993915108339877193651964639473344307325380618278436288547688789768228218150386176799092433677941772703592744746122264436666682998150022909477021924428978125667952664932596901042544720549554713446010455396664883553085437497617390120409419267426861704846730417192987069788128229788587875742224832342456289116206449837524884741240770127673179283877982276579984131478582399624818346924693325119543639154062153907714214085404581479745967100109861266446932180910541370599387529316070053868570105228900801451513827653912478463808357181224398302429817218191599471410661754519357720629107624034999401592926932018393826415061093487727482101756188305931705535934386153046417210693124070634418703667766712972907730558246894295299754679935705108081583989552161339526511386313007586811253409096336206109147934639832514342549758816464720008389853592274870748735776751448326219014689808023712370280819206399220062257846768744604292088150970208698510340504924328287413556361087625230549795747849516671908463676417829378382045151655527067827552040755090909165456598688267359655900513529192270327457615901591884873186626381939109539170648605147137083509598364956396057204613729146422247159657714796787601555488937175807192592544092037634081012900057936129790724371546919813886548986201338180242920874591626284650189074605144385454643204258919841245204016363960122960078303566711996330566229798002782722708908518683851279990353345329451105573373647760725279708415932209851806303503739209476621449818978263732233450743289261656469329445481968986642469630362964133050294192012256291703993908739203565104408652434432470321282311035150974506073989538709246676838050886458922780488544806605003472257436373992453529833538578362245823492849399558489442851326509425865121876438935905186861509272615457583997959394595323205032492212826517131075953015736235976752959451783824411769118377191630348291694374726028559777312909349208372975002919742194026321621525133869167771012585157345625351538669418088722538786325733942881718963003555221833573817285624459668217282507065937950638625385233785989810564744948737262173219803169664471016486112739747922884445900943545371956479521205057963902556864085462877736472246557170363216929019685507647580449100082974813090490302351698738925342455455441149251489495809240583820098160415853269821411686317388019001172298572428946447301841561268183832244082754687494526324724655409441759566964647260950981005037104601081848170866694763250050452344228246498607624883930768312763602061963997781253010826425467179809214300591155223349646532569815733138589463681278343659736432978203489269407079646176319287253317881440753629042114018181380998041470683163124217508191162022191872230506766672228922051647999823677724012590275543081191808301393527792484860946608031480124859783772104336788091061764109702284256541747795922175547250816866400010225017961221231696591863749596250063137873795294877045631070963784221477710860572526871165108250077246141062088628837478599979967383705708222577046546187510665816161989479670657901028766070486710012755807902381057779652610828748872440531653266821964251903909229807507403237176365037325084289283743357995946620122486727023119386217060404256039531203908037058627274692398622270689873376927111015240176023326301352951522635182678925149958170804997972405767906607164754524001551143259009216853796925806426547267580615242505860592114530057856248299485853256980448134894896239370221629513863074846803504435228475929772273671534259504837332315100718168089006938700476731264292798931093299458160652411501090388493825586796901985414585011588914271989755221928859762736441598170218862049818074914572995800390266116436111634671525032426614017494454802786144743894690135548153259948340636250723103291742139266523559889127312043601405024921439530287224573762314048819750304865852703789835441650405220507230098096818566505862502260444498006844259739313182567435553910990819828847382446183150783047442722963888068146631253085557967790172235858959659204175973421340032740540841803861777832858088202964480461218153436390244320047442433590700830707638123325631720167457901697713897107361513353790018757957054186605010544459350900111063442833386015512870693966673476035769747665864954581573600264590234093244535591002315486789669103870682214538373525038411053383111306980002193471007022328715061604160275997874600771274221924034135657579362832532990522680544635224894550352588319552306627097454479503380365703757277109406507052658032500138422260322912438953535107273366290725921762515564297088920344924755930826100348879283323681373543501968720528919660137392750551547347082867277958671228261281604033433259482842299126405137514068737759542643422052886314771041390820080845980631269663041166795951313243542173061617570320069991317559348784981363847750592671593218295044884322024372368951209575375334426935344928013809844284969056873447214400148004647316759815798216245629724468331157970711774592829262847166209403667985128665986183957538437741326359188581196218086578517754850581554032931571419903941103850244615498915999490775236716296647867700252064764112240081576043178166101291479197121862980609445346722062017318340845908225761114691698934906301444373615019892401890645353338862241536125678109906188226546385827142809917699788818621342594307908261298877652575782435602320288245428424663388897278692129442034808193574522855854177491154701899296341820774678079574166151659748798222982676864731426614301993214306408628218188165791954321008329901741236284797680001834669053625744957843902301449195000445969076881210516272634896035194923735294540120317673243277902566664939686061566441848956207128184017212029299538727732332178899105976329805761723559105166089141414729526528838974898141136380181567731656732674817922291046907923924323397158236550968554471673686105596716061318255166223170415127127126189665732882773459662661723555580689559546812761705031996675203601837739564199334789130445280956582941279815911634344306380718867755686033033725804022820352953790635882313262337469666934279514929213760626293839877635929558862506108057063833546014435379828441134956185478593013583060387947527368796650312281885185069169188594136013582252404603279070733352487626441111766285809168536041920871479560662832289722610526928891569423350180853049644608079353533059144445628657834761049639128888896403529820453863424690090482902102110085808194252174020750196501044120892616271387366435513447590500362557678899038287971431140339745155278741994576820194915522954469858770641537123625898421928738521957555726602650996379245084910790126531166645690980368267198607250806052740605531456119538655575746961995208407002583509534056570317284920047695374398533982475042928448802432422214201571646636364125704232140677722965824750933895515784355197847117099602631395078800532130651342053923383472223823701568679432840689154320665943659292595091767980156793762737075409432455578568307442821084609442100780377596918890676469453448299252419354219279492439755161256721134618291657586548096348628324771689188478781865158998398404581176672730370339859068948650304683824371320723699074168328132411086179775557429204629894434742796704589113818485336403405507914789821548971221374105383625928071207835941924286778213331435031166465294096738982960545388309396474908213411516422067793728395111474967152257772317738214781472617800806301214589995701982028712839257117849336688761622960602457032231803199371935891170144548244666577261259085702193793199289303885895964364198454972929865238552283315981603803469877815076260467172426425700419904398007666763532012693365379024916700616037152076545718378828532121764882791382737931887658854292245475080588723181574255741561398334237092364708570007307679164754390150642925740352810516595541039727457757933590944783455733734972020822865801696743058614482245553360548012939065939120764719111949038334130380344455605441563607444713508357018140543282451881532085964243391470981580081967005656133630404352904896445197283130994997873499363976271064000580151517297843170570606503711928020671875829168252668048213548557804748395887476465170986897564451840949617513782683632135952395594279684347512087850183218997328074971460955260643580994905625270100566984725135281115124686166778842403801390646506621509307428391546970289696875682291206399453818260428068172672215544463248333289864983866442517541507946922037027723110106296320585591565917428288313065655442667781061554288728770604608348312790387523423813416144300695784871116010808547963432326920490545766982426792086503113016355829233471957131197418647646169534408378926453521915014910822632592220264553226369944303400736488438779416519503362822427472613351631103365646355532200078280524224721937838533790322589121765784713671715243423134531088490225978683806973827765159208077807231692823974944106166222583830327067461342758357241854227554403043537545414664422467457147993113171818648382235595337658046302301772292375759887470758890884228184009360281092451104947574728693898669745393463587647004099481417301166510275711986439869071055288616318390459221725005624682673509601478171066321929197665070897093308292186086416322838687680962505973824866547484230804227387404077680511354349961969292537267150860220479315556278388752676375202903379119009962016590969389973963724177189486911982771756520993699370495372064989081112601623599934626492273045266643099066464307416478714617974002425557782364127690617026488937115099537655499128302626664100704807123227926872613444788842451324923538799659138461144266815349680436972521424102570588515348625415801113013443246750011421648641685561777934953490953949612760179964836715828579544840765259720201507718996472103253633268595604855879566830496964337209193348116127198875960302533455291701968899589611267118484163581692571012378582586933487458741983227705627500835209357410926060493265156495983620853308227694185224491953395055369105560764985214691935462798620359214869405199318062741957591025701375647175510707058891983749302842862524462408155423213142202580899401263438674113567073495696368156635203072888836433893108773721435004252371255588651024175905676002240850180981490584913650549726617411765898165486445880874166751337444289914833121225050442541188918616877509830890839353402161295932887132498067048139661373274898342085503873865273890327617871698685611524562570311794649757071120127183589412135199438600868666150765658203746365649557044611625884985294635547159065700341334275111595255841982073967169312426566357782985416827591701616581184205374836416316859036056467599774711934471734175158332090430644525159458006044840905449467504160774834809989258595760246406483103851838848508489367952019055452446393361949882026149734987769691347122583732033059476784533537427990205829989763749030198487080545774398647548693936303388114366354000704847259858261152970147076954108739990755473351899088075343663247046795005644501267313090937231734581017004125434406925201517749490233357006763039905791759128295132239297227449706405316050296109369091453838199900303102595359421803961677217965300457529726081692753476251933501197497564057561380538513314404333315740358005182806024440081271811120456441620260007236961586054720107385335408893101299541968387891330088274476169235799994590133684863857069603350049908771235636875659898744817739701786936083182301478565098775433104109228024489643815435208366243881214311998716520395531439613784035520349964986512763635709349237338292859266785813730767800707863336665031098117314153779368368069055482511582285206272438990565404043222299920763184004613293543292578455924659338964008909130157289820733510976087682676754273214839243313415179585952410172891880305126501419484515063166755745367719000818960587739462378509350877654444702121568767330147726191016482001486025594222127935679949308249603278730441566268353004764578018102110410651642439506012775912298550475417788079666511879671840545945474949869515547702358337287415469031693695433182387143618586395538704885985087110847138836537435505785799281725825755517048232234217933396674657111918718134877404868710395127979517929424228044794929930209847151002051078975498385479164278563307455161147073093805643249805243202717889034671971158793330468536552491566417018416244526471541191380040303256425358350795654553331675025110886392772910160156222112059502959491820127896563085073567285462008074569818549179554293199759634023246550324557711194271524624512997137659165888924743078146135148976532824454186550921222147579584574802952312419132793990958392039901959504127993276783032823858040811307842376467017457069963616756826862671013308349549629799385179282082057287754894008902495334109567859422723335062985702345981592218232412992583716273538494275554830762189540468700758396258227817562130466268394517297703336311767374637457201779641751883971029350972369817523623904329615510417764174368816028699272461231541289789040725491009511502332704921217871613127447551302662906843272109373470355053756812859341593348782426313070792863947821225543813748273481966798642291535140270674996012531841920127600221369916883633726181127225524411835060872687302478253984722853829112711025441615380957833960551322897993368908214178599459638069154279309111534357940053796637780330089222502719442923433635779646849927910411143932555376426123411075370640461320824226187275726075434531650981434070069534964634404074550449349577460804904391792887998885378449958984139316989737502642019738381619164523065032887500313822075958866000436758289382869588396930300746254327536613480609487477366223310063293836533261727503311920290262396322517162702701443056829484521996587037550674581838967266757855762762276569791158693195187410609075608375065566770992028361772436829472821719319989098228285498529652140049151174164793831489534277512288004260848201779568797758618691632968016160181189070644304279615476281500772239781877272055081284655338066522874870711797239070122329633048979724345683122847844634248382001026778927682884343689937783330109524607506186426246807299721990495144564848316759710266380082234584442271555029864549783297806170090145036393075121025956961307470851154222042253778228709023198747402853014691653971179932750272948400006739761685905864356136439631688917016794428272158764818297258258198691306799882529374850090310300715190640190187716681640303087097187524377118370775803947247519789276655904037094701325272268143516082320459207851800098388756157494314663985190295499785988978741941559576724313396551434616321748175340593737091704308674875368652165103304470058724765321798114063168741685248692930373280594422479642112210112455851589002506293978650552019919922245154794057932248376839684908230952166200968730075251717801618210809408694253110153142898738302507802166682668451238503953472571143590276125970813228839674960755696034471459359910513717633113535767603427690164861734782261329219844050225959936350603971622236146104414721271607974200627741270925273358690491856079447225020415730880099959265933777383416154959442700436432626421380954940629566455105205420809201544414426550299003608788237864937182028876805883959757838026825473994980331422926743259740420863665497573120541611880017979476950344866348653791004140933633218622855035374108052275256543470035918462473404307502778699138259499126627989534356269409945621327053962175340772721414358159748138000250537299511164473006023039152184846411336034012103583700958994402997089580111486165892573901492612772202724138174626902232643533669510855616372971475213514650690533329380812149101403706909537102378143043889077260684629757843617470678143320254017412124865682983577667794208412321135249148681768544566739038158727875251194330922530592097262865916545691794712889211015624929203062449360607305239834012144408433890360535641437810299719603621076363953205875474691293981191188866295223418819414905380807339279623508361075170357985670170431167033779254986479758290261578874533221495824848949401091230558888880603214179592878607300805701100850665112620240452532712825594639488714056097094102487261784265415790214904540922917017824231134960056896269501710967616189374258485803036330792452150534962172820711600120161582689454043455000230328774022990306098723646127699552345620298688290333689717780081080781834943508507371336479353850673249414397062974418184685425543427627948120480159064376834566158186496352827255022331989820489485470145728277641618737613563546944974775043797329387771042590529170354614822340144792246295454716701223656834915912351739530565894597443351346011783962158189503817132947795977072661424927044664246660163461569218344991967869623043401689922243582513532329472385429146401701829406375086030491444091430496613217880293639296472384442696021522625356165598606045611594624524007932518116235107045065310452451258914521863868503722532579012628408705420268143597689334678946480531647183910371834535193305071711414072651260326131194720365293774976817049951020399325234482342779029335871016629915318065264801635318926044779523687306509759880779605924068066242141872279878936816753195522522854456445957290316194735598818212238556528284141598638674612890241795409796190294155838127902499043800611488972435591881396403171847731737688985511401906271814842862048861791632905406797706232011823955720666162954842205787730024936048289127468096546933192544614663616654595586229253250956085655119304555467725637904217407407367612299100506625631160274177510283880704626486634738756340800682724249123088940979694800581916940730710548297056923867681311111493991804069624884839528216614372641078927132112750953914030906177367005214643633534471080287834543160229262546139082664239956055233608918663334542184095245682753998025340448874985870755923252925858128859602342397757630498224905803313719105662350960802345732825472860632968760653595266050400655849621989566886945499477368128668033320294539568580821529776173032121493206166293474035373119897238959832395009140973030957346133225727130997657032990178932128036765928903256884108087906465527377243026255715340750241145642131130108937071174934311828108498285146613686884376298801951421641836608137140423492488683252835141485960709629096940118422625159621707088339214871356095173302883736252568513487046790201379810809099199639444862895903680671882794303823426706028512137409129393975274298389961315238117891680514550636897597710680922308058281519852284677249246063170197240035522926851814912180546904028521297555002360688483615102461002716570987941484282271554558252166764897376572662260140729001766414660325776430258255609587849624195964716857345921489235001958881530827595902712566507181401365799828522359691325060644487643531346132197528173380264064616324265394545420119761886231794069692064161207589179391320376277206723090877594572914734463953156619544427952497337980610884256308509759363429341880690265662953004562388851705035409927355514616310662234326567648166581470624886614052500709913072702293621767273565798942538414923567385152425109985472689699302280438802633376187879191002346655719862922112623317364022127617434817258497124608927326729370966834211753608985363010360043731221707982043586958881976294935985292142023061806445170600925103822611826611078538738514069545431309246479196456885915121803487301447390041602827852256786230005041409096869767862491726858336245612513543125215835798876298422380509600773677008623808969152508502397843245409251567688731161425110238139374530339464219108139771057448085090152011605129670841453809386767070668172915758059851394813306603435801568756076307331523577356789149268181206418518421035003677425535773272761347626109236946141691845052108685177113304286838654822871042716063917831239061850369030239849467393381124235016828638097043435113421727631540862712111701624583802808323556947057211143008041837896476898196341212129881404132318812785750353498755066026019372457708458558535038312827444475384982995174004984527017092001155083491163688743308001537195019336923594171416498321921418575772467617537380769371127143689010814563471702534511529708321213881716746360441688865522968516197492839195091028007696176683030800103261122337592783731530994850379702993860650135285022252076264005739323148457598402159485189800976019417536644121571247765030805268043138828249124180268440895508292056445047548949605364276953440788217743249194809012604970406231889225321231127987246024372870726934305763960810957303179851633868518180656344158699485469790066135212568412528992106362962779913194858662991019331793921346437958281665584673921449572924984141791357431752560530550176431832386863856614478593305048797412487119080190486889095407492341375079272207579164259884478855897133761596093174074526192487045522999243453672076834223225667400911032918541714887045957854146280563767129239913009659432340812685171944365383077369574928366640094929092879633166664325450923124252715128665487508361302077121248647237361294737513604397601331991353749897254237820416500959576157393244568619984788854185718733898087651036325010508946185552745459528802861107588745956528658900543758105143201094733807394753357998791887924204533554965349490269802358171186330335313757597737865150204997321041254169615407612811681821601953083060094639097962186753307940109159227679009797358679860751384299538437101673065178793769131651586726487002501461045125371769904577347101528988294464215610849996339738377470167957575148922971300944525877250623221410444033643122836729302625626002910709339155146973849865959375970823241873241087701967121490823235956446343028024447812234851278542442338241949747397820022766761653299598116006745437513078692642243759880156513984097475276774749628391175339296949218405952556703657505952132683409634187243401400341592499735462980427851448694365933411365713949659643679279079205775672153160064456517300313303230053345974481487478996967477257131357442340680702355430135926714584671191530488395562472244367783411897279943162195133087757617114116307629000926221036113775828710253294011424284256459520510127450221267918267223147706781566831757063922409497438143723183707269294454878574908855396403919789710422191441096125612418667753166601944552359657891987267716105389167854838670596798038581218867467632546588461331454592023637651903890853958342345493773845756256427277478471192241525484705178857954911757666910947553418548324691221479232593235906119837958496148920148699068771254207904459988879363701235140916788743735893398596063416953868757004696273097801279467788497364883163650754515755995098768891169851111672775680724803842792190320242032395245855437101514186267172142511191574154726043451892376591622617840680493448507783608803228377401403353320863372372212826246789089716003552749038904793044074160190679876882246942074490898088923619252698550638050931792174531966882047769453036582376091114135156421344062360682097646327774640799123291538326583273353650053287067034842013521052076497541620074180774511105239092296074037263774175384532465064697846633715974107263342288747873536959530076612304557137732642024052716404295596304503170196151299753489909463411309578273491540794918267628237622939922744344146922190656268472442741832663010386986534615373208797563534908188095693091641109424230444213970653972064873098562798436928679889490967546074912192842225100812416075023044992138604760846831803284001395488504058318369061048217929008822419089172140218568400900929107593191135712434796570063294918482181298577883162758418276302327888108487064802737780255196824772300279338014757670162079049329903392889014359258562814937453178037214651483682895490547753773388250142972841606596127172703024514406588461678016451550533514174268070671292290339123312496060063958033034040775271085018575867254104219436104576686610141184253575160904730994900753774533625632253418058311389546506283321552633614449047369799507843670553610047448025342531665414731982282748590598411718092911077179560750450329650006281199720036116579886303735434355100083376376527789211749267192085100500815391914343894194705180919207757001997910122677544320428433626924857561077220850523077923176634274264674938357810083174828349830744718221726801852618026393879824719009634324059735925858680424503311300401231959228672621824799255653936716499849064488486637875383263345258333568096164010494227088752856076134413945445800898188544098410259082097516056967707442590403205857293516708964210623354303555085254284303433772892750065714541255592114800110771222475839294176599270703189045669061789281330695681027350137224280862925096846960707267677432692688457311752677735715218257349793224450497603995243613593335880560929398014601092569355371863217667290126119480544597233884124084273998160507838925268654526384808025072792296529028623911106925195293855028826854431936191339730899034384018978562405624990833826148482580393368347734433683572249977026536439907850494683874509720286219742081838908714251558881339184172240701516542030791568853602773716543847876483583652591299720730234690740304820773336472845848272054085308516169412928393779210296487554488104169967032073794460068258048426137372486176670931339610746642655937500878696154978794257445198782528446108411491437022891619532918951791193713042543335445424946930979099047154951361137163341184070957709276333010856178791814134395552404385641500670109550688716512088267478800781677807659313915583745424214238153154452804551495397079937405201408015069666976134988080855366854006272756370229114600983583178376353981044568016759114473490577514174150550352965703893057700817378916760918482368036820390121980025456178818741541505829791576542419774267616502092219874060143465391425398347878758195652552604891031189044220576614539178319777839406396970272053427484257578287566310533474594276893931650948292248011659669814093621559290472282659343521500767772972549312781258373984853665263392394978551830226813410515181265641569226701531033793513302488536851405952564802891067941668024387345074001365400537859696602068971636105154030307841180297185881305536457828926332188070273777665803930799814484745097791669811876590347759036234740057009855349573400554933104113691145845808598852113713187808804194081356246473896219313896551206786641482079063594102191871293785835294117216443690346705917158855582383204955597055755055620810549630193770358675275177091760826859935977284461486629208978539577471199991413363508087563542335422125069733722080112568861545270618110669271994763143127853359846188637716730181666667868504229745470891086714762092225169223355803773851142501490913062587394570702496694791565440641102227614780903015576726947808403525593275241836799090361339077062440321506211804334980083479425682701740463662710492190830709194695558170136404835647180492237935137457121195713652863096298390556556003441422236102304287350458763693364619857013888662905568049758071661891289148823104580499119841539421205795551851626842503233934768539620902578439211575015687412510407505883974793138859582733820448671018227026299074895945212273317000958220593020070703158643029788284649070469698689132528596626916575645674226661838792245819948500023373334816844144266533169718071136879952090538392186189698759287017060857467075232572051395135661973953521126557339073758004359662199460950676940032154748875573023124137960758445373356736169251524653054251809066385220128956735952974399171241930484408062754998550143154732731650334843648180429086368731881546389077090412787194205101490042530004373335046410662086411923734571642327411974993970869803804944971897724148506439647394378546075772109219800244676465107103046415627611437630821281094765390861842006113517625089488520009586102623850743845907184782723864181695814589089174156808803709620424262977872134258060035542507325198063835217480969417447856392561580287646746929287760614981311743057511217572601750214510475053693545542056808493746659604716034703611112499121085262440564906721683299016932189267137531552676711129991916709401057737486453167072425095640102867439983082218062246981260318094953446594370565562785077137942259787069685825865500631833399567775882821085939775776531579402749916244787703640094296356176948260219468438848793447647523667398162293766642577404909587152003963958246969926179124370080083199015792747670459088696715788164029895876673826544900027021017291047723365526708736631525091533632255430264989260245172751512773339426523666677804204449712880617812136202357915426553570632997078255701061597979721957167338963096460248967488109740897118863839092464725330836751135910867798257822027866175912709545828277791589025101823015147719779808139259111078071344728838397987992162220924306755922831200976663437856688735878895106960934234942195059149258894534476252891280033681406098521344822064452650230295827958686750581082793153715643966366093655761555638319853640009323969740293795268475078701231157857624276277223890222318141282033115333231631192966449998906597229073266506553224230801907566182715593395210382266238582786004508183173989447321940508377713144934360854832598893764017496445207207947716178949507727473069437542964625881801174977690785916751895532359065914654262747638733328493928129436116462019644459707831042624613991963982750307690109278757560743101533347479770269526312150658798133728767056180795831227651833246048238061902160143894402248553553958907486872181611072695902588079490696699170361315832715968102537589617314005393729831612286605797689470366238433488135555287625323295756301262517426893220123563067533152336970230214352760378186537896051574167441448760271308765684942006715551261389910007439619549515952776230293441676633312318965991318914150449351936641135573327227532783554752244020618779005475193297785522010799440184186483734679884690480830367619102945367045274601950223088485432815775254920268919082391127720705620616985089948621424966325338202116177558652200883927479176217234609660972071199677977963188805934818101225723334087149446644381701130039585314007698182473510717946493827008276008666430594371943770527734069942628767969397807332748537169087778637246969543719105326657863502921291323917803164154567701927995791643750230582588640877940236113511957619614606273121491800647039102591535239409903449633744040977962944968985937546942297004440513634575442971065341502475691595143161828987561152235163672814557328249337155332962826952762190683632564828702632890208042270379545905703244084159091153672785323974154466135604733056644486388858598096621552684200902587850384248440899891985904631335030004934829105924645466765392662770786258019632525913096855865643505883414688197433738534275669009325838172799984873178320829919038305279374508946370882600696343294954983148243205679968729653010370707663081204145867312252781142382929792339331667306499769436108979576110594085594877658512898501196062352840205574850742434849672854279542451440911721700242321518443527483556973101066385250235476508503635532871342153260612828074614409319113037393333916015277597810696202780610740720846042845907165340206598614840035102394230485972200332394819565139201139607607509991518112652386971699628964622933756709165389101594739867401295303144317656819649891549937352005111823668941204721252852410679782697599234880473344243735832976348615034577561057694719110629984768142096784472487303154476446945383330946546188723548249389908214484440622847504290347697483858079095634627206531702830019403161516731323127791091387652881832007463714226942941542855626635669389383047962694035666897757797684460673854225699448356148301822820419605380236338562525317609111429066339358432449059175315082612086093110597531224094939290754927904930033757757089935693933532555045408497704251843974916170785508492679760077037352438673285476929222509808108717917910017511597267344504195515020995820484476409800763291089401365205300744274212055497132908296888889878901358015094374743404932579695840771385822526321139807186971058995818424692495010805370103464474245777910014971507368007028988878907748304311128156898275198627983762972197941583105221314367665547129209381949638503211989697491184197935915138581806787884459155549205921503860821660394551836085486841512528717470095724973130014396346384202980042363199909235945258899526668625714186828113832384093453769037203165957794846438124773148575970934897395936946851239208614629753565241156431283431266289758579037624308624888865685774693909761592955047386452344704894932297651151553306988253972966789656192140757656962695072888569978732045898380430251515577200483933180578790003146397854945927725445134826265969536656607896126235894667732986575616188637673448744464294972060144709780501484231521615955919109171475562339478877360991524369255118607650883929526930915989927686915285862810655458547773066610166310917096173395257132139450862204030027614461483354291149264143320108805721956396515615912538277670353991137167487394790545993093691870565022512560220154219102522087397619821115497504779419244900489816794844123046337120401406190738174095835223467882357711543078551773693339530078624188627576502246292578319573900182720538552262932288482832893408499967761969815901234540518830314122362084197522645957142304556132595358311325581288267075255315977145561141520868770331985336105692599753614637191808833496439782897341190972248463890874414888399690639317400965914167788521058675673580368696894708040589883656641747803177574353273241143545796561684552133424859677639794788099841901786722380086094816871055082226703324452865075716677751870349661177105060950324033471522268130548499124265193983722403707464330295603858525201502571141953115446335764409379402933422912976786722940413497928575813705468860442565087477324666670374739806803136470300988149654737276095412813794314538039791504220625900035380269219193342404853280429081643135419416698553904022826781816303292290297703307245174544693431005118732358072155812623619107355936129739305302294861543166846170026444538126953238832489275217629261652060213819132535524893371043533726429681010878621396376335000600917296783931949893562466243299734443208642869238581292665327958121301888570086105502250464082505032760576041974395743066881034210900962403495890023275799045246598543325268129938157408047927127960018498222581856989093863937939853854239436391977161999581601785855533684370931628993344378688942245230120712533626002668262463550297565351892094463318345833523621054630970714869389741891421508507791063653157476573705035773671541706093729925255812804745669647646311351682242504634995932520848581345086779424309381547297807530975927220129999657326889480507982576346495286457538521112790938535124419613580215430646023878442203995144272221272163709401548924589765746631813660406083619772193342260967294530515671992608850239921527469390116197296013582699776636875570853208751433267873774823378456629978445423896598202147299238074807989524607923702215867223802405830689269305579131639728679706840933141052286104217653752522209820527097508507229476183033968817597388628542176309784167921458450485183889438740453274729339524988730568415958071465537093837662001362963072920317437319045019209612625345894023370564859890676584738830377055957984398157878447867523433826340395665283803878274784900096813187175962050523535615164960073602882939087127546168084585284481466340703671491241432022912239652507802664407993096906617982937705541342333243817753001247252006747247972208547813332625416602116721770132556967680519216245479772859146618211194839750138338240447228218629538105975907093433401947914556694658234548903802256248820393887448361356678676009078328530216584035563040619587792252493310366022117076224290993334085327592586423596595496418482908405813889224525123412858818934361394205329566115636093200240273071102394234899697551498277111167424667593226678164942472430627895995341829553256374466020930160974024734509768897027763079212384129441293087387282804056440969858825630496346881687156230874344302461884609621020180146735043122967334671878281344909152537978724796159276384649670024912039699501355573082440290261282763030737536039784459617392128938629185958078857650648456167883195198857450204265776316231367297076664161859577969432759524117943744094583925025199501348329999295926558745621006620411836190989014088559216751072494223514602437261928480830521743264202840238940976067814209829720123107932591813567904371603057089576588571892372788811290931242127656342207750315570868662441271408469296416657788810731281904832533636273820602850578343350820560544308829147722981126945922865976948523018484155484400523312515699255293396627390634678923839896757314607421315141970588295748545285728039209934274703530226575721386017079860250958818725599807618830381747406033057091617606057869614267386633766506786087228986598219881311287495125151466240535888118459712551529509486849302030799317820502434020704786626410775673989868552341676723427926842803132897116269830833327831903701530699629477168810294095070417918403532799363432178069729458569438763186566216585323850930770146603945032073718676676216385875036266597207479097015402462267641734774693372341508062915671787739472279477048161637266706272243978495694903864220197875914988258405767837682845283430046948655945175271718913530147234834648812205043594045156205988827618086945761478004663500309689208206416156080081638738224423309075522018832436719083234595229559347557522017702220485770634273837465561031190136382688477544215758946192551612908355574016613530719629991974120264894053830104688240704360005714930560590634742405463206300170872303985557484919967002870575699745667992767371764164963142170116498810970629924112327697092921745334844377971658495604776609597782557036779782398636097891739877870032108608398763480434606104102482426202719022185995377651898985417641458540626162154978417492187473540566974338280070223284592404108847770646377846213499753789498043604227378764919850923982984459042236805285650870501457009582016910081316604350356173878987996072031089468483312983935218781420666722156391467808438659130215078390317287957483222946985557074957098706313171138543298968486495112588345765488295888117677732675503896022965192106687533718469713063168745784549534454603773485878842146179888347760105169796358629485200605576560234713552660102723908462084535046348454968390504221593085152136326250082003617911367249226428366496109939866369116815105114551130118668077937411701330148165861219621071276383321679491502394251706233062766084797092319618748341070880123053913336161771782239018897074561471519686842759768754726710612342249829059416723985044244981303521758930488854946624873626165084163119660032669765270093787665563620794516478401777618848178767622429530990666295442656280017083206823034289425613074141136122606753182338200426823699745230019910238004299853518223777902157335559490255980772767697409397871928375679299602581625597627769502609320997751027793971215843096223598731184343046940628789928994194942779356933798742378282485449390860179974867100573835834229207960448501613889747954915949852053777277939150070686363706976632133868081711506177609050055166515084690736288235725397842941791064075346933739914744176342298098470991524766670624367671819823088957606845453049327996682405743289984955884126887232407854436055344177581163492594049144583695458216889229240513641804516831729405815735475635531345691514956162127619927051643332501261959885182668597755209244539731910314247938931591481129890064050947414735014496771655933216060080269662234422100043523367176378903644086865757007191939904727441910774122242888579759433106456487974011158553007869207170179461619211866110488592517697290889522234375550067812618699612705171832970633592359357204059079436391596619960503131346803648747793855521308439861369182547543298808785831978308814975123237142075769089627235279157820734850003219285107537960279658994047513270414797113858904996217158763367931340187004190089900120524780436253856012017824773670354369233466974842699426598575028855232761779140774504662838562520619063742971299794559129251074811148038609454262104559443944597035629721793566096413454251689678589266785870113204561077492674124759011521505720938456041159907491504370774831352792824464050296215473622034508557164616552268173918477644277163788751664512040294817856021738860983798787762880377764736434624763286612980962148152756119276489466441783581446339059567651191499384639812832265098395374858898843050733443623260343743369453096079882840963055507830213382828317917717541091271897657497063209449379159996806670307138775871848124859236200496651685222328993649809113437130464453986889892326210005821378630044506462553644291274404630422960313568565649895674207475944760987654230603504740782989256800591649571743094341866904214994371732166996054324517493469025853064344054610370365289042358526060237952484595769144378348027465968591241515741973804404831252095108780389454385561222618387672086846045697894582038287448227659462236344140232893605331565142682290557045041618144042083636830817176045917020129111659539086182708390477406825829554206517928356995526644077412369267819246582622054975748444114542240120762105696112022823289517335454121396100693468742732638612256341953472311068799972795108900737091771285961981924637345918545559645927544322132125255624043738531599100879322848966851130441357854554087661316862072155501713027418713594779324252058710170025678666121801255302706045168158324537879816497379593348301198745845142818495850252324673709026154573231717293392626937546889422995394066664361117230302909066015600625416218059310032818413854858032581960512973122425098776342635533757707909050259960561751378339460439002271882697693165337704392310444896254662926282308669924992714716335532032568017855481770878693559235298733402287165566636392379210785414298115803622251669350747361373022743904966307083497732279357129987655988736207765542871675621168164156356684018202453970664969224180207567302155656714956599331670640464980686962167722008408356476859076783720549317338226367124859411498813281210941147292177861711032461755307739643908945668046526384390064547268904317040447254210457124464065104224273831316199140190949529119789345529869429853209762581554175977550490415111280488701167905524403483466053670343822448631714850224425649245354637443895599373199297690223043417737074239677043499644417456109898180864266795790515529942178752494211284338549102833333253162644903711115624138426118599008800777334467196347961206878873506562602730364491633429792708933904961335823564788704793660262735064713460816534083153573532481615460095722382766538637149580338019779692036255536726689257161406742462425148685888371921948223063453505576022832305693491518979876470697356701571077276501202049395263915322867509588110678145839219035727853049576976459074993643531796578475841669552325840881234613068561059127002467663583483723314027130855425979325507186681349248834595884492379580767282681698465631652337883116723571287517933771379835810144314094710190113188476958758736703963158146913601537442318088427765498469931770760024693346819786806853875892005190653426925836683818702164816430556283829024423346346882225995670494450309648977027224962446749483393975755832663460007973713892253256479030214250013144313557703083881061236391300712680157155868561180940719170549975420048732635951637669196419394317765983818572954850843722104201515087805783362936594085985291977207275284298907539025296980035066138072148065372889747169324111737950418943453137668257393907000233115220553890732735616071683928170434535691532076169180551505892327445547251104317624272505670888525202484886986204058878268832412224817724648695487131203596147544894305302997559510902978760482260192458276487485453353106474537412589451847384514675191902453918665419092243860037921530284192522130563290769460550360605523737713543056600851412025030249636386036537431921392767106168623065511224013073355648244801373416025585473008918690739493948731676265166805339608401145404238908340946128773134847790485402109256488043109542132943418770202378385800572989578343521207990714839891377077264229228761478754840438341463301699284124296262787711342626770019055736132293119729742604379523277185174226521261943082414743302485977521787692826548661429471270595159019109226016270035559076195326971765397113463165843320504577170825431341796351571067976244899001280900288750351260803769421836937702642930342631112784784648087123446123329400282982794982668337228286703024636218567598980584835617772603413945319061344624416813958078869195809522903366424334645406293102782303189915241283360052345165676794981302193004658270053646313467697187824602532185429530600672817024722850421867110345126026461270248746746746727799747577318731777922986554290645164009752531035802063353036970169094007372170621987565782519859875110152624635911932597136727966281994378028312865824823167586878676970796105054173132935382017616829385711065023406795946778310177927060445694566236500851230319944345668286262930398135245510143773950816341700804963146024027684427617468922155561583918897701885473601219274116058510242303851121823629694568544306575729254913554248815056429165842279878513935961529660865552154265551748417162213140832353856987712264465820058494918515999052418769226982951748357381849331390782707044064294578745613623261118609924235664278708735053931573082175579424811577347184549525702511212737031654055966752474405017373812652772998127298640602892426189047477684134967672266945036057645184843394689720024624623555682280911128631766626930822688581863849632591975552572236542256269833322923441570909399657152601937298966220789402209935952798200797749509216459618715477651164950499820936613299697599828025147211856878422013990598737902535618786585428762280092573482326035805460092478661915793587656749673369086117984534115220590260512881032633493833337541494994136921596333125035109406972633953367596294893634745993144784287149861520256186935918240278893342976000902935111539339601093129568499943861029075618181851796524020601258312683462310724706919905660023292238006080896235345072124803141448250848080172534202920503150649893677679365400980116917895763158755763964589975940430779655999721834043175618896277828354992876656505238769502435079795216937620713562724160985969553341947242488575030330131596473968637006217742893808364982134783974331921281044507535486323861609949677621896497735127988010320049662876343130228565473623116908437754744936105668977753785959612992434825551962962212106026255289989771662905218108142297633471152996082864402184426189702142031884724466682448988792660856808892237325692470786374903875258559518255663199691347681885344975647678597310204499705920042322289798250202306903678701936423920850927539099031646448920466501807270462339685051428163827700253784041218244805151988897625983085642521857542763318163799038948141488052670733430257300646855929723292944512142536687189749619323014871586239584037707899660527706412549086440688882125006307998397433696942171848642437518513011533339075879722378784115498141292095188534174402448302242362252505911413772097648198301747406888872400005092441368952789502730901509408690687523998442259598749756474712785682681217676242826666605297141072264497848631037286955436706785926375347213491154148306557011762879651600193143643359943141652695960974466591730296988573676565507088972888100838144934309864570938514897254567749198311184637149523500701791674805033087659239893146178056369776182813342998373753616908157245576706148667865114431867571775152873384766748776656586829915413063808985991019092759563457418442045258066257583966098705062146041326567791831961872181843263592096108777255289324260821952605006609746086434405737148524492952489616444379075018126563934235168261366650730464398550941431797668303487490885910660199085960220629417354528268214587803068833346411258004477909417786715121926542338169483714805116269869926835172131860344228499666724404947621632084149994054624370507556336596051722286634349363590596389464575718952896575072113543711796022166902438197417113368171459735306470031899267308015549995293191972133465361526698705074695383320715778746232531010554588282121837704526827583477938468539945956037173728060695904626584129135349379323662651315163220195671535247819822190642170609290092761241414317142003716090307430895049822242299302196997279737779459588452198693242877961497221440294310272702278034015495282858234909481202863039533958054902403945548005872317825940943333848089110349973554949554424329437711266318102224449313038606909359086685619484409280600925345827557660955272455797236744921705466252930492369813970590995689851081725863433835320545364618277746135320927965323796426710711852482692837007316015329132967216098262406161535226076040637275846016431535239987282420351028097441092820352530349930402842880725119324514101214563268671123420512259990414640929067817343011647566898164266106652765364522977740181549443388660718898419349291183014375561521103552821905709609123529745322849282946246116469839893285870904455379554434471668733949957731036852488916577763881306013151059679056555774825056113254809085935471631983884765270768350066424549640280844133922109523379186329589063496801977050630680312409042267991022876154463575446106891861812758717180313404730995777617026755270352663088304097032566441418768751013811269989103972698443277044648804015738840185185524052745386066530816393338737875660979003996449905207600383549614709738800752177269911153330746825082746733961818956740300878531192402804811819341698590641523697162576253439027848404206803806553527505400841620017926481822836306586706007249830369646499347636524955227147576734844968533685350147531229728965428976422198526463211469656583407248186989163320212858019904264236501809845017841307625774858104804663811837632642025738255159508311531604725503741166404979932908901102452314334023420221080100022239835811643405711426522370361001177655059944498055096079799149531178030619930706027549932758656345245878577139023879286328963250028042924209823214272676352483591114279424425786659342503926723201829651847151044335146662131577508488271915611228726189492694849668769502807793575719989881004444307229732767960281845679011737545312565656072789445137396999477542264860595367508388280394984889560791719625331417171095376421715778640209366276220953787962937851196814951324718449300127510091346623371515716313583348085939323860233158000538968733238389735092114840724997244340329513405297781716069687545626438970143503697155142719549205856366865151373920908694793900187811629198967490033750834077640457526418120929662455410428256017804804299488695367448395053441957907551306557620093389224258397909748126535362187215418975104232208429837243609823249008627786816387731926045806980281002462949622760729144518796075247223557916003535296936162697810796439066374871637092245912656535146975941997925642938386051586635582468676495102045812916477792386852158612661887108841887381960307129011791359998345105296995384351606249378762184850653638030545648503485024099774715648808811776146147882710147660834253631629800473355865417344595963648779717928487633512032198315152125591889825347490723084190938001907731017875640952614770452077979074893983117764202024844237708797801369100337753935337312476224796172698272528089197726290457610929922535910697270112538545659808605996957820606008444502497898969883615283573510749284127443113653660502686571547063612112212226778701314018026589992310378017724250808246136763407728340415326176863121657316348347456025073441164430095732466286308355481421699230836367028659827104346987253639365599122988263156693602603835007307013419906481029303417616576882324459396499609227497754430841046666039902684743021150823617452829485105240219925368104190623952616773922755562885778433277654473568070125669004433883967977572963071284320167110077213496796676407011722812058211270596030897550226979684785232736148920429234636875966697533823757465132339768232865536266577469371515262184018467383415942652427348327850322281271431021805371277268829387080908650668106477831184815234339181886870956203279882086823110314060827543775326364890107913600562192619731526244921033278430638947294249532580638294601593123244540635868762362891615384202547353566197328822845154745795451815006248803826227816850546870844695387658319890994414149850603230237374948667240386131314105735227287011771073570384933435963227264769446552216443589978053177030292551486539297628863983698462460829421013984329213616286080039213633982217487687752557424300376137070194524832698836606792203833472671182040173172706215829549905569131661071957228436458359557108091585692884033338281637621664409117823020554643526533768048352727997226328998247416238738991430431843715886377519414788897027462647423147222951245998773564901139318948029774669566726603013517925026820584594834228452228357370340668957317168893976885190952559539792821258702391947978139903476304715945017846675945227008817858178803734576785359396389081008583725379116975471287276207767879706395630923699115974127786338781363919229947220383076315588582003126019499280323548670233174801390043510826293406033658008450378284824773741778136900256412195430219169849636709808686484960889471463180106205646509873770507892638758997741302981140430286560045345035552420739456682859813756196987718693836047169062323869166770121251621229430090312632159548332282260116053634064280313569860177912918887462736244226984597533126573837036616732889224646885914338875341862361157343237738012079462738365875011319707285103934699816819940238797537456949558906719521563755196228234483621772006995184569142787153117846100153769336644120171948693759988867203685335674071797068502664466066899449719178673927828665360182590923861313786907865669186990355710740592703099008244678228995879529490204815341861615165181575519132020722827666461941802905015569735076902760685581669914105486265565580949219772287387044293702586344118642887382120592529324509776394376983929739231592452818541804091928854982333358427191313203011709803190076876830461640068905421985840876607042510165850094903893480046953074025216067198922708079301365366160008342025359757998634145232347443098513252172156365574392755631885157870912912571005474638304725486170353590717860190064291524786328612541062119994965713048502188981745237393438718951185643845458804087917076838415930301885692531008300491246356283286797356868700813310566342826817138213581351527059633454809749167195570656189291789274357857830805269250506126993171148499792602231005797470440118612819185014353607727335842699570855313118446566876174624577195090622520583438178218191129397736185413453280442793874218771995509686397705831532098076663683599176682899847725194237939651347107941737321441904448334309665799074652805025297468202850420577065098233224665056898557933394623982086800727291583039516321316873961032772162344704218047512131322131613975384923288573555174059468107161331145621582742557268415242422938149933804857283836261063099828520491914539601084755762454166603983465037903808060823355632999846890038511371034461435147648858543356519449443565072135539086561179943664159751200933772219450247127494752188983468219197327901212296102405407765029953932642687204414937345687597029409240355729414491771850208022954582096486603800494798967289988779122768758547802896443856808316758715149959300470595101643247677150710867854320235730702486265483761658391865571404460715853976655598840832837899914053109811206414942443561651745396446387138100847280928001555134482051101460781438234473539692417372513139909864608315673934190782226556703880929683663573877165474416528781726318020168481169003843712902483070854334726565022719234912625452851246748344174167913641836177271176733998468983279920404383314535231753556915557396937755246675354567444536323981540671097988112323944451627469883749017908697198206126067517428268269774583909132711462960286190611764169571756918946152807107216431131985506955503625136830864858858567125427152986878529638557478259506077600725126262173800516692623394418961991700050287864901367167154568839947098964455160475069612963839404749548078066054562762962151934126379293631614721622810569600859869009849460590314441959556746962454584875242037354153260232932971409737622948275941785784456117865242741376985144293229895056468396566586424687537795305008402246079448580329407792147566887606590136726946123450752985358323800543018247739001947687700478131637641069098206870138867342396175715455429551106035068796269008804861116092790883780209999264122902507866265380605320790872285981649863599496623697495584403207324058690247624661822771926952504995751892981879065182076979480441963538350754751026851349579163855882048077729937571571162900452796593248175428281479363575665894340407959289658844809358721325161847477347473243063513673097281930128118303816552868593025710995716767764727236292006091053730856328271835642795042980933271239456064219649002139339831513462398587970144494835814192482909958703168450693298487909805187158726457549063633557207371710464004094182169311853855990261676122602178054952819865486660676438217038494909534200773123865456938634429991409665856359949998488545782238822127305764301704133402511542934013402678355845837700122766241277454356053637798712494663976713787298476847944319839709827929204385009496666642189801317250119789414950820736156618750187603163153578073684348330393836654440003391197754704194437770761484062308821087496717250076623278705539506063129365388576301195637038056501767057411874463502843247530670302001949868222934721025113010747007931817057536048946573890824765320984244572400268164472893484475205113953740590749966233887151783472378339166771945299431524744196936232834221228860667087612900376712485381210030589225407715005961555941149916116581049658696740061804331444586005526335991503936058822060398811637213297425304320955246518060145420180882816379922262415648748638433638587971827291203072014041719821443433881418769856388206533234667668231965169347413035192774769725835846758221300716992662857271530315864847127268144988511594480353698040706687448364491466996806360291613331554934996374879962795089788412791418131795007242847970585871138713329304810908696705165306513542592917159575973480180910239853939485829094254680089210194757460321663276943987296044908506073499024364723226304139712404219579061388750029730243776659417597013147966020883409423192577368154136440476643348015763082836292120122751542882114018585798229389263410213923419367263108507038404562411656884001850046930868107798734525855981874726991914089312605123691916673354975331104301058074319466472567350884397838649038687323863454003211513021921778494805560059497537102794560756619671978309710633455050495881803488369425043600075745131475403586333383395233899685152330972589355743132916556169011101848295220422198923234214558255570958001193610113738176291991289308581598799802187935032014138808347229540755155014826648689348140248325885296269667078041259185708785882251685895697623117839089332727334176172972541099004917084162218283524182720639068927290535053536827642348011269011125694303803111622978174549612272021121445646097133400214060854542376501287075719429666116748463529350338176422725444838849792351742872062769909421016411522677092306568918165741653123319282477210036514263594693488955084424454732267455092737067562902023593629273939937814953990379199343273189722317784887620218171744768676467937298232411243540298339959323246966785197703335523389065613397001273514903595359973820405501623379410333415558476465917173633730688583841213802504443637695738765410040687977372917640638416385742349673560795868087634975445495288710754612589953996118563909255155473917722627496241373790318051379772921251174901627569183519648446408841743514064468856620867538094015821400677267662158571506665295271496087445399881547426213445213011562491711145441623057060878077356792481923749673830592682389262838228184250235829538185344539520867721279044051282142451265857654579437804379053560351954367718919546309793932998593130300560066527954138166631645738115044357048836902858472405675961174593915876666058916899742757670406116626144179847780174117285178716816198600721702730729033648248465436840308161090044353263688123711777151622646860865669421304565879828754135286822134142708568273929396141295822877243960747231272163444442182477347901937099514711355311955501019422072319147851622944256381663804607075029516914583312578159281968093192057075182586541431263360264597989576587282767587634633382866028778026603232076275993503970190782352698820283933438270860450156188505257170073878480893787042989036427109470346253886197808400287432929030581660063570509100703354617082209675436997946424690118409482933921330760437566218838926846536833487628994986259842360755512136137981562230942185841828820889078375959139725126266929384299410185853366468294104487217539766792240762845224238525045023417157364835260879943746718051705213096660254743111168302526142812620738729223516689025866955191603446993275194408638164104939409330047685036173348152065907018226145110806159202346773108554199091229454180005830870765172574127320011980560523003043650854119225364587411074544666306049094787363473907711750921317533628082286005155102475566378570600640748512671211425485183210143369890382857052493235186293469284388659923943826184716060950822905284151752981535694520261415716511592953557119517745637350284595510037359535945437623398987261939258085540925135252947229582518743917926905993065866182430002069180199956292928061054590536221215212563607923351891884499971317728793655473422154872915949011125843054466455321033768807040617337588977886906832632968995628619407570068784588298413470056608058712657391580847131336580346877772966566180012853144843470872410573112430117401928570711855472453992025281104668379187583180077873377899858311297938667579223761991601686000964456099469983052934765126091499649824109806855165878121322148262405053298738438071657324902621662311840102176301646622382391865777215169762193711517811500246551509865816085815701523279423823720414243081907329607259325618556664657155714835002357451275244266567700091231957518819287250454078928380450704768188515345402860800075174744628328845058804944805685460348473600388014699254609681652247104301291177951333644952432960750537101707779449146663232861131066505494095161148215716777834793377860271533966208693816570900128910762249978147109065329191400786145061335788565844506983519725776201324583175692058441473702171229274226907315821942078464277921893342392931582091618101137209402202086108885022109571036099779042527787112821859475765625352642578782098147745191391116799464385366484388425399809311255262416139453015725048681655524379208696986195090834058458359999790057635119135998702189291328848486014703976446952850477410439716861860852137924394457127413030334002859193877600385449006225784923794962132021268349513670575161157960568967267844206954986441462137911694330731096763200305720631156200576475050720165731669471838027539580701420256095515974136724070261843547183898921383572326792959974994029839805379523352261748019187447333748573307041741825010303669470814226431493788921660824649842845231896712332710209916991245251059577798347555160490648241600458117695395267696506311585736441971298500869165043230548030676563478163664258250722206291587977402668205073240677225178955351899438515790024301051732586292654518312701373967376173194343320642484499164440779526579915776201749239181467167187656509762254890332730251433892700944868417597077410849716111054166633488589653893610907280602315332924057784914992585505242373216555394058968058668443539147036000850852347066579717028808133170035531014987636994376157786950480127741523106884058822361186552445108221134940409900517212645477112900563964918801053993468209930103958136049413910737054322584189737430437166299136080409934115190021187330326390928093267430788567350262765402058636608409023031677572072546069714314435200192430224436658970353165349690208336295320090416250708295744484261050838949781570665084848377104247259549382118090105754357671046477761910934226471831785419673388640927338172556358466597528988599571736794725316248421121650104506534074710777981867124007966683570045125286490635981793575320657349658179437306616381248114146272930828032062494918779180435947897927351030853463866286756516321727832218013854290814151634352948130328856301120342824722730452538245758244667741546840761274680826039019239752310153984729662705957702323802818460645365193238708142089834915653133582642184008864775091301166604486238495197171193909693665773928931218798162206430466651512110107676721613162026130032408203885613727049042573183612866232737129940311267362180775206494196748547259821663266762371925889259509211680281149282522201920953003733309687701683104480028833743662468801622766744710011635450797309754038627500838358040318233410253749301816986764343826468469367894942176037092170332902424890724119413288997054458563134738621026633307011041239309549140769827316366834975983835632159524503334446848192800413840283896673811018233247356829772129732558819343574149499663593698378240970769882199994872475459229597234280885562196323712710331435842155491002893763914703865645936134356481316539440401414477233918767902749407375501525801323893252120667217024064432608010483752301630566649160196578364763535418390375767837507009651481626120621617628993000954501805726581341230480228171690482324528326788628830090332737429346576429371824204152773503159189175940804772033473382169604907511434344089927035972089789896405108394326306294704654291107225927133233139838890614744628348050697175935877481112262471599298194326667861228282582821052253951783817625715530917768795372955835803776509536528407855299517508346626341116792625040817223619108450076018345365110533996474048749099819433611605344398611215528797003330616231205259525432312650886811094237151497919167413806093669474610686850981597479239240377374674969860765364180783368725239771683810208972628046561125642568991959259745384281510230595912162159297935087751502116542569523658467971168365036292000259790131470275073531008803808934344895696190071812919003705360912949310205815083052048651954763193289462051773816193809218686916592195809511107812954374748570493384788066413474389383577239685461582922487537810930579063797211205268857303020756122694982533897134487593959369615993875625215211241294261402930969901556691404859996983216739022868000753108388186360086732789346506468003234893981147841393105626908524315975686273037218740939948615276748574853673454044871744081363930651675210852477979860573547674103263354014059833597409715062184885410411161704606977144275432814491469544007231856285341050390955881953383441172542761078178965993346549706488168251855934052287589033593890739365138791750336628441171750999416145839308654802235725644991759823007697370789548503496422280274369802868864544048836828959450773462322530742907038089800358867367237851855200564152834901487574781626132789799800923864068554266821266876304834808023657168911543367971347521123411272126764843181935908941148910572530253675741410225114370233363046846396694114757959591407151513314373064863831236127448748207153622351718473831420589085939178935195522401571199787305030278915734516451100253475318017816998191953453820780147402225513102579698622801223599888148695865568085591358058888100153046583096069665608512519111814619388652521496723657132002767312914798008959409981440477533133181032855830541899179519868874724016729672177386835599092360213010862983719837358652756089087904187341913196798683860517485522136338250127349694627418379666124034309325776327668721255566489490938947811678021388431204187854606501097821749858164521923797038519037978726747649143624323727359637114141205227179295840004831185723139142550329081246348097837844031294624681674998156943289860593323564904897895686760971933286143807005225685302528699142876173419926565050396113600582118566688735635967964808066758175071428869022407771158730036501064100747275312570311269472332444679513525763347760732534461604731815139027576588797686347080087117771999270366734862558213956309212415411651222943730480104004850622784589767833354382036029516322975030123083218432572478041630616596050378662168252125730279529771733542974474469851323389731787907967825532723592484666785004319560633485442503001607756802268600301918557068376630846150604462077501835202011073322604703349052574602028259994563957764006683503326107914574017322361788874445272734546007734286449621914749739662418594107173195738095976201422336149463232229246136206509317712656421091667352708116904300939090223757730992805688052970889233414435235155380212947462235117544360825571903060966541754589035216461256335507124147687609600003249955202235516199369462545892343324131294294148881071234770476723143345707881435621897475045722131072293216665359544189290331314869328203314280392192571560353326318613851069581809895322417075053000921864405110207959500841760344491273091905777537970292349994469358540466224466011506385355628624783090888841099466144523737635174260388571049630499137213277042959663474818775078535950032318877707115983031753846247157275655169768491322776987723444083977901910282053035944765174069817121023175660907975603704094740161775801058256838503849335916342568049658039139324183604356198669013371610108441035160963811761901842726745015645595704349840753586544272383335269125060673606886246658938325683963298610610318616152995436889847755483957632616145629135718717726652322697311137369480186771003079970210437680974915938270815380409488861725294911973643920383966525674386640693226101156762376344737397827963626213419591916039109376217470250887499002484467177834999930583174978889413428369627012948546374797049773207172352139416092452335754020495585575641501167288968667386849903442586045779207469364907921607274615439460168493366863109315417940624367271844627824942092145296571982607057526132707507328888158075530031546196513769735070893859441606381925989012120477505281111502291508224678601249924938155448781588384689514424415873874222337371209922169692992859053087426635571579189517363401534532402121283333165724180686593930389781900615696888646908450678371131806984582136998943196213721652280893848777003190914817731973062271781260486702012489455432326516585023384808351246890405313353539649586202670829906019315246366078434263235213262071011251549068040921044939446970495153521953964652095480978874749602972190850872206072908796920015728212868518601329033817061554739434837414579263616143685112937073552536941456794647741874710483247651826617930413638331075504292819844576984976146855560974765695778204620252807779663600292684431066605826315848668847535464301115329391007184366089061607989628917263547232099070106967989185728304358004374466987156895674381371966195182620792193982808504120492423885107811651973742281954498934795288048342669636874530102492706990680278096417436009112282429932080756558914937835273293453240868385899422041723120234982912352433627552294875830145011041010789782847205328949954185697585549433957594237077662331062002923943607107181825587996506048529449138513183474156387420508694234539848791118827983284189387654381864057072337654714062021416260424593153670908110403863570964788504407231055699128985165386280084807815283042551816066913516829446157984307465794717603335281589492263222541261397591410595919114506287318848768974982712601745080926241534126552914540203524467995965921978278005355623342729415659615007374497340429048684659105541121201604285894317059312578774438318454200104329363343747194303589573271006051036084413077610001761446032410148287493026126724305119181828680898079472847889002274274306020286523939790539177697260250468519818745025172386267185088652841333055647336253924765587342414472330766248196227095835447459136752559572630866221238231113918258497504680245684343440394334899824773329794416341011595716715769008611162590518741250413538168598279543911803530614224981745425899059673214049900888588072101846344763194405108993429022439625701450120685623571155221889144555304453158187454126315746683903905924167687391876650557787281676264319746221516133370014626063870171917264033474772093211483311648776350203540703206503966103882364495196095799603596525958145926207891179039096682609330863083227504976696221151792163918321938334248984556491346907428847900021723766799588937836385097736255784059963810754066787432568170828171014249833287139111201577604923222224561063592918315452030827394990016135559280283471415542968417548954882881724939878570613369507324674159081996168624442366014101193635842389876993142211497451861324414442364765547400057178178447728931561219395998838249533763749842881321828714668862253385769091842212967589897815861321887356358776678722056038263767651342156918215925140265408004495185696196271626130478577620777991294028040934384876987546645158634624838683636717640657005707903278190056896090086611124675123381950399632951117487518496076963905157180697661700600393512938488508864536371354632146555902469886767755274267835530716197988486433110358197490586701259254729294351416752088170236968542777114366583660414395388056638323099365662360936440928824175375673142408509661117053123301733499262533592917477744344861067038291816763959234413167634080542277298378821811292661534723770918994987283476681005053411079629798163192704705594073554925576459824011513537625981178969042091630187326025544597489486027324852616048050138098384224181618559835834962973530308561197542466625545433007005681540272792136392415510278119732024864095604882611502833611437036623897749314533113386686324674946148808679862793446484260426211813471255708608090266350922723282553339478742322709117077958673220041916029943719787381705860887250982083516559031904313065813656152728219951755830536766619221567353236017743090652282147082613569450215438442498141520258666394892429050720140116524325295076862050622289751854186668963131077344052688957923688947088893736674189752229989178367562619419363910386040203334616039348434179736924913277215252974053441822366244767260104620621843507605672039191549026930737790034571286679829147176115348068364890635590469273471825494144198964766031649158759868816514550889005778727238290196561555043784238479719511155158601204058470948583869183444173996440223697462839978857541503967373109363536764479774515881265578129187991082800535054069704465438105128268635289551661638211957980616272282247677415977429581577333633117013455669726033615926145327702582964432425874999146168472671174813148600268780568636510740709144891683804071072066890714342386861354728732201457356019880626214644548510511064059668153835207345234024060438122355510833538049331379530587662172724506196734229138755603270418211254779386031790163353591558914198172610121252037140026910498892880945068433928567338366841989764040391152744084121735978449431924476362571241315316519492029961669958627218779481681937665111448264541869654004748354914284798733467377384088847297247724300579121476766645717742799216597362767320961977010588943387624721995550398477180502055145098910276161413638519744625202432545171513806965304978662113845951122602405642139649015637944062209583472041767118136330052798004726930729189802542212723097017243994531858029771676697592522870045680090811437385863869413017742211787123433388411692677579960428667579914125604591189497950964132881765252540702891489703235892664939471095313692558023423731017502999079792771979270890262250551603948799403082804874162770568993916930317545603206615091719569877069904176510687660016458736741655037420544355421716385893177398243147587389530926256765059070748110522361544963226352880477616883795854675605173995733264422019045567945085653338068113997645373410471270506693714866328902670356671883638584667092530008333431428550652188904492362530741670928050357604932793322922572511266630559132435237699044738660430285132928890360546551738244923122370425620653105613497923704322251235690493074146346295812615830638735155457509582921403358241944185511482525857505815320228691456041627129479117014207127213075124129512659969182765257659170192037375998995357231395464717861059633726491799746524275129670788368006583694220239981949395822652429975639463483089823094944972230815030773964552512400693187429742212849666086226922430894255429804332000472632873328158648379333910217942249803135018895976125001891315554888393546697008970176613146953577418885820958921047441610424235313520020243466297074017330886972345747782394347171371603889246952295366939736571932852336359111892994579978850172011136298466533383038313050983329702059945510033108591155302048295673085882543702800491764919697693515692094315235617029503930567027694240469705190238191341884719021886871876601202528056690349898284393926195185822538932860534013638537622552461310561329093305728889468306291038723694891405162944560434475113699319080903931171149570151713770108368519101427304952398992345845904242708665011978520026172316533474606991551489279557648805084739929678172998252041122622472534878030864606666421066984798444586778687465987080145910231694828792294570415122087011511053853539560665902793642468733271849288741725171010220239964834389024876173364481613763701461864731691189437596668650525975537584599210242590544581065295963270321191688788576017370491202431355563364536615253301659490681849014346296710401682668661207265520156491278773871950345057939227608985866171403088864578312013843214363295954280349027555933115312281583309135435302766045690161314453282138175947380178054197405562088409124085362437306691960311991102380930745544924050669398428598224404336036904245395171079093864712140524715736559110740108504361886313006757467484642293993687588671369286468492140083402596559166186826852952371556960841585423507087172816380846634259135176907682464254795518063293014473971075829296951696112504929335807306863385597310980374804658786100208310820284982245793033548018701655879667592383033174596603410895608092530623408422766936833814243455843212842911116024594275594870077930358079257180501500241942037516393880551527619322306187571986458608383039661248991661818135176812435539244070483495267647872977448398526761256989848399829137710408946108231650027996265910771744215040376357500016021902784670787108996291699044463833315237369419016278224689574253775301735106404084139152289154103022595262978250865335748936238856790440849176784115980042219686182599381203643241698488994060274794374110178296929828020377608148373701692310085665488377954475713896208325439816088167836709322290032342282887721606059506654398070773312629609748456781062540121992259812652741893720295520739665132868323842144567106610298635530591635916881407902938106893275447090068606997448106630926013178856198596403316813312209401818020275057696830974961807737764525497382219380346582927111872252522552873186647808509885677015101606674286561844685397717159646321416914721986547940027565706387378992036981960351869897274851877216145883629244260067223706867508670515908048571635728039833545737586885925936577042516776125195739967108225626667241850307852165319897017352048908459010324835533499408006540821113499623078769584549744451309319037763159206465110233641738545236446779219933086487659233605842295609942740204380120421306904552999339391223164010628422777322386537847333809239153708451517326478221654500803052116101414050906247331351624904946184633940928222277066597484592913552919244346641798750723316594248721091228043801151038294046256004375859417506029635005384740186135464197558174538986933078843347627517420557103052277947952013142783026523373151137555266095866695541313221126803659557185820227340509129846662821748805650593513138620902104069257697634476285011350568307715830283386472713244022262431931911017950282028550839066356586808252785515853331660101307221113563206031814136310385699454183221333939939752269512957025847588735363452136430045658273105523978385500892288647285946250804789244449694401408451405652777755510875421451916713189233961282811637421595892755318196449126876622601184049838073719185251619506391389335164708376260745114096266694658726268065795700259073721375824434787650216120441854763791171757380586880654943808359455575959105588144427102870454529193968194033933312330058024128414437073425056983259718026651861856899536862737440847065507800983850201967630097912238583005907546082354246793119699094267608541436347589284893178405661064035100653606617551013172971844828046364109196282493424672484480716175091761715829888506952018644384930195698327936464206547181727941948342854896394016339014275907007325676499737981164939996496652510345006127585526265198030772602812768785659120357390770977936606416415469383768900252037483005818957119326430738950154507419833848822221263209740516452121529990314257330728254636114576625960701317103884335541432537317085284196129576934029594374155055080374924843573466635912053179180543812922516624026643349626319701490978778183421077978682877565193960638757241675481983809216240252355086287120775188900404548950416395357265644032943551940673679917380670686106222412819930845576698478783061685685544354656281780987074901813122578259653162238156544790698956314452549346879289873276899181800377070944420638690557559702997047355269581034461283865465171615673787174036582446130653176242771185078570790937627678255342673759125150505877374118714201216101488766953637947231840541281139037759050410244277692526775685137899258655101671896069915958177009867948005642822463828118817419356794547607848313358459030209928679957245092368028170141620937950639864298029920348930500920711503587866578260695981192348086418749453328799996715202187681306968695229215581893594525420396800042057951972133985997125489814546194860100809109194084738047920250517597538233425022821617744394546971126803756726411898544668474809007579256407187278907724852728336941104136122957628967651624688759987797014160014641440518800706846156198844512493160418494391391599927242455877275488739355673123280301455057956574050316403405241728461805698289735909165020654196349884624007525470547765876324940337679981205823015659096329674535533683653384371746127848341971717074355227263721489351414463095503215413025167245755480154774715516409970231100228780099981029180673604928815398747138711275156504172127203893541016557880931720205955538814336211737765121109624619130296454946703486622919461625291399069838478033580752480367870704789144526516659128166132808807024725968433801213055903662616070587798028802541306647936016871173753576439848117598655225999541161221076245658610508452826283631040957910939053471051499111175881244281970035858529364822465591360655187353423955106283783410888586834841112462220968302935825193564640963958742038810445623175146999354145229203412949738745932461983745977410439256350117287080691133069344263473653279550287925401032456392985170434203904751285714119983638544810929454090779258165639811647696677363716636506540284433482898536555080113103167287426718108379096820357670151271332852202346747658217337433112273595071535615259422237223003042082039386852504010392163512198617689531084999931731488736797410794290655393615775150198645575037792142177942836548078569251236740897049257073411562771595792589895576845692651180373240475810718578762288981321475675151616142933807565138251230112829838393405060075490185432540883026421886419310369319133369745471030479136018863162443565485136834748451076613499084687097584280590738362405343148487033659475391510000361453711147393633131200879691754027568246665575167923141382466306515343853408761826989298711997773178788543165341501355228025590135642272504001712814439751441562805414945100057853135748233453474478793294804149472347351043158818830957872933935049249160660050662961504434639463928166709339021050799131048796530313784233619174227222404837950537891121119076233836404858879711379499835794488615379363463922121881445246733043141210381163340283150321283913629245248143114015091647171189437330633729352643802334177632508949570490181982341688752887136097045976024118404716462328325156656263391785544875455424229373310946210311113436199414938295868818590665624094347196060500439377912095325307055784499644267554869459171768209873339395787507146827601420976829869864746366760837682511027640788994398442456025454507979500373969689204032242820831086979885483830633421269836665822255329602716351496025613491115534870251517337937991682736639322284321551599257053718467910717124471714824396202851683979852427642157118963920301613474075210215812902254785218502990569156189567655419095878201757289841993324201010943278277319019974530016060467184655401809286054873989620706351367880303450771230923180094030063562344215901728211621422326585465251722665854697588330339899654414579953781801997724917320650226680844192792261882494040124671059225359074727428588991227037719962426570925470088952991177113484189048076439009138696593072418597425071263346072692158175859759645226206229648279977952593381391089969739472361758023100772650954866337274402905158253303849776688819454629640288700949708502503208757473011791194951272912659509963731961374206162448768990587951081353614071980743051352659300069237521353769448694440082089020290288527439130078881126582519858958132081204423989588707113049858112021963449206092728432187820533715441875643338813413585859851740735704810941827878388991494864261503287457095341222797299603064013020361361842199249701075283601829786378133505162460038169853377434053125004857508988145623071240427008750748088085559544903303715603633630614552331837764420643728139495915672965980550532251920383655615382711446517764057197364220394766939227931539613476906093938130347259991294895867663932460021032643486492864905954562555449725106010732363114128358406524542029776059333169947284392228811213318577231343733846254364485861403231482263058584628867999201415522379050557291176504462918333780362290573614110736399390735477735486618915084687098495263335367999490654469732065944143296215253100504739085681301016703962505498541358488902984344896519648011038333801242654157964923730627497447634397947576034692327536541989155539837590128576507362111815318010628398075199120784400741736557436489050497031289938408764996311448351704031126689898861541016511012560656082606826297429727590429801238364073353200555642276157315630599642136016593671020567653230161295925647286451655086702425115153336762993332619823303084786119076165523172233139139606659051523421126445866374034661910834085610324227319044561740088076806132849399617730192766855826008507450224110645625041896946907940364621259735065329773906710035505626673933991093552264848925582937586890651115273299633323671139721749913594369096488305682617152200410468281879929774018156137074629703597736978181773621586947627260328557113825916910254344948700393061704756338785652938992434097328532831978080506505701942272597097182647177458555862754525737131939035006229776499578031400105879907055567108942467157182640106229474662118970122029320649599220259352664266033318242600739958443738220827476652458285487968635984250373778361436542255942279577833821277757234393861359297154928752729974040691314282571400600984518791464549001858007121066773499480888777808614318011399438022108029530485860744507595017739585095519622735717748485678233166426052352130926832758308147156574468731736400433694690427386148921761437240460598816814734638517686503063629618675764878006098809661804025143234513852416061308380365055196368115215312669695234671396011253351655527345333260479590764821803156870159747768218442557097085932455235188639090796268417674827503310281540966702651261721728588293958089510390653475831707684225649304467316119107131930820053820330984590632704450615558868920063493977999849112193914098235881836155541545586198661757515939107294397918126737477912619785161515132387518978878611013248159931108744295102399514884594076751503639426584076667925432864269281255512668770740683710398153802072954295856911514316524910115427679315193155264801210710976778884963448527953053549302213147132583871237143959992772556130128954557798981803363290234052101127855152370155565129481172298440381070377270146170003315579193389307065565070186933344394021120389710505674965412680505941520625518551496653192875462839247711711436863848391148195731393148337642245154814165542994252351087059587591469573600893954135529413109190394729089728027182203205023712752039082149704482451977948342597130078464479172122043980815436090916557016788299333230563271598084834181609179675906574625562779629061686626267779254976480825803836591727530145788338888149383252749149887280154667664324555656988004896664244306775616319161333275915103510156876899805449438008650107666635032146931895156280409137676754852659966937038758650081448944838338583430148513329889417174922947717420876158489970441451056536716560350243309076214646182820366688366292904393555241558614847008807847812079900342874035835870819854070745452673230361378494593455786349972231042738307402622094545791875473872374504892889341925126953287024008449419942241097717487053614121940493553088845651995530126871395984389451368635825376285456092479325588172536858464730523582669586366181072030874368664019065512724487407103670655098780250210123483981963785607345311245088214534039072776978449115084541555647847544666617875475279324863093463141362273043197023581072108438438389925719797746393175922766079060170551042345699959772119084472101024762054621539156791819933083030808446609496185739464634289638826805729347368999128580655614242937222366805266634458653788057152382974451599346670345527932896746513874833162552582892759666163731602347794399815577212226547730161050367462914592918583933506916868127377906047345186672285444986071829286112918998098719616673360374263390263575536838137954828937113142883575499351947572715870864071841494959058757151030348007394024159194047578880242452072580369704381035031618825626328343221016323574505308890731947652469705054279658074792382369648373415011159580651430715683263952154304629168294573216482255693574094444935011516350481295331278236585881669269417754548864522195727126074356697791513614250343880686486186258464433856680005240692825086083036996638777705548187796377066552913944040651202683872346490413681475865772713155577848801574987542216383622612512308574997013732283565979349618024127220183469129106976848258214970536700284241478238475860393914517887608981166508322171224928387939660454460246006445395810805726933521356638117870550980569342070528648315131305074745344236397035031081481174495656481768042749933902974967011622554180628118759148786117794642550249665297626479386773634501241308973030995618810974976147029251927783195439762808628876080333787797153339759476447276785602439487699844910775670442407084741838854683332995196037780921689025891625733461844466801907670783058841343701605413535326088205062434671006154554714473308611963988561884761984147849335900534655721526989121750618692190294708132057811831894189184226038314026313865117634368860384737731755765140632470426193167497829923879935467304988603390024773976817953572266039600196600490372398970766512095224304331523180551275734223075149435903023636445618866113163352749880490445392645002002130130835013390779059509335550424520566417879721129727749136157588097235492066663346627205209334482661927069025079902080844010791822064041566732099664072290640506989774025952254680693480586028859954023231536809182381613733318699861380379861098706910628316840398766672617408783005717757568469120655409231237859102111839082202662643847343667838457160251658238201878518574924270313892807400508477416751519713655938630440459847892495828476357153570544372871087177811890042312506834174701045725375146907578156735270040921909972363584269084033779757422524640059034833796993893760773761209650343701103261750509637531583093193263109111195479613052705774385655243102548464331384816791048064282999001566281762181962842141844443005488060736423643286449160597246993877251431593666966979289732253319773411169067916153154091713268521064667977132449809969132280619535512647782707087264603832515470878788973186993403105275236104572342872597185966455170401413571729335068385967716080828912701036956924336925453739341725000070743241887045455176375697209347631386679288196036451698933151226063151650430915829292127320333515462190877243990800941096324480565527818157727065462798160491387704716022406669106947469366267095304593558059806173337543262783164620359521995744854704602557731359729540229788023102094620678338411730286246623526997718507639620398286712884254155498886430624681765114753870412169211592138961546696859938952256627673058420970103605980203472929414755596508483799953605172864705946402254604762671193583924236135830576264125538649246803561154711777404013114349791154104094990740545823244796971991087003430546715540865669735656507572945983699627552209692496121150697033660334336553406971006493918033291079682892178815065040896424240852960975963352360178956173367397758497796998862512916164122046660719216995470191208348774390267525408269380896455242697840143925146961796067998564900576335497062800327693132334963321445404387104837736333319128233870984883166868165050144359631188092841214940265945017075934902217742449301297573187225768675705638308254577705656501475192562303741512387093026792059144701541764339308718306524430524074721823622562907702997741891848602787103038662495848395655079739497630192802767441786420438840053135287109247715557084052791195732558370631690104390185810790302686719124373582179172628595013290121169838178555038839743992114406613624379070303851040217141595063187201450603367773164251970629415971605546880106219639081514411836743937463766384409502697960121053224422357063971913894335584653750787353672122035003806685451342037672603469301428202746937185854186095265408502125984161078776350367841760975632864853467708605791388395618557853087277165362153049506251692683346553705103133438119346362409911466710504638147872785541476062405460382623299114837074432963406873584187273698942035920735858451191880786760288443828767461027652684985159038805778805398978478012036000668398543534587264817416374826088379667931098059405385407385757698398463683267775751353916368459240197181622351487060803814862142786277722089189455896652439180816306546835379931828160634331309198520926499406483206195889105890029909944475590155566368749121794138139900498905632023508871983030339025200713346902949864495228698195420154201074616183119932111879881090368159082576760104897624426656741360650710903403321992614397946135450341595864746604011481356812090550044451663794773748060181048272505317120996260275255078325490258741002651833762012124594219915974127338632358373526991284375805998580215744606000894358798244182651320025331078249039788149484262340195292979338036843372123835182767350666602303420924709405948656100223013020547638317003507830767851645311545876926407577283560390989185542633766494351927439373607886551425995363708147106968057552554540599719498348698269222956684940843074055339478637757751927728118657706330422002239603483098830818769654514411586237955934572674459284892289336871585614861960184830913152405467724500815263395149891042123509679155631518683945024837396602852219902977901954943456481397873056687171512028570352154646995178780554834327931317440866134572856160827257283620801600319657448280404999346051268125943525467859100488178819126499445104153986752334118457775871088371174303757793316434102469700175045605246712705420353055790232077514758621503614579232697147127368662697008666675348176148362012387661496033890980068953952133614625185977456545505986439094186948811608803496462086916904839759554246375957943075586958426710515205402180880270045547507654456979870216960600835732461306785838487626131062024690190066722730730370136408476725221360341744604294763221506887996394087902495805960910935410707104174001358882176938691661815840350767961350863239571915350007358081911685770488609868698022207732299925519809760926508369706967105917166519792177729463286369686178486480155255746539494380500930958253727248518401391069665645505270959545357704269450882604876572511672670196753251126851341938781927396074077470035240018053255137948326822818332172278059150205013000610560012601373996251277028186377622628241713149481073517048724923306715666787343718838769609258775446248624422672611967066478073430410877085555469648181784781805938169911155269315517945869465831511999232673083550223030636475061592075832151969730735423887932598409037161603584119253354068215682811559792074102409519595174018593482977041447282648628943835602913939272038409742418149945859159407387545043186177917514211816693839421310141003204944293615155167259156483281052033844455686514010683060793732278414049468623698537179264164217830724173801851268994491142656048065049610867841243521913883439644260288447137829561873908973406995644171654693682849413995364346593124106838412907489972830879837390112504977341740614966882449900907150931060424265575893357699305234884533265933714306132595748833238577525003968581003075986848849438406774738999700459084557957557857713812602930391257119331674673839421219590664230096288817436360925565711874311261140102970950356462557151613605849542639686702532225744934162915130335040629855783192755379417988224792594937395307515845468516546953923894481689237629608060644230534174998451588738873641026806333147197492679397936475391350458438552380377258906520898453244488540484367827546413547766342394219554972525948126182277571150618077289749911759218386290502883341835734713161211760202024600899915489244571707180333601926786045169380251181357366246576226479532244938309431830335782026005982929209081901975807572798919253164852257457648957346260360147076926142528340607176459523588349404902299856831180848320803611108598017559685861248858722577868725578930987053368658345218684340578364184601207783116939545609265927764399238938257822558482544581829483092099891387899219700700234284023124370866220686229706327912173755398854620936369487971725127542009299773736500928164907964702258364416443416467901341275650116378929332550170331060265888628255829605610289644600870067956664176696541347944634108560242623162229982220583855162146382695341685575835302955055989443492768116838112271488414240106198093860375524232504357413739739629420627090735520172661344985776602048794718772747473624980343297516252999720399582994124854181386683148887461927838061640709866339954153072690174200927151218078045497479489278389842152406329614283388535040710757155974248772029630087305216442871407731471897604385879893650593520215795656937545197239415222597242831529590908836314933083141097927563836647375228578680610538566051256804611796464885625836484051828474199609068054102400727547114810443915305166620226792133961435919862208210399579633132841574096285769412891669107563023396334589403941518183980849698916245420434026990309969197964026133555010695215450034209340427655466322927573070433914935407808812273162421372771828554053431910056168932174400866363254665428150612982524256876879721632903726018987768782767207585284985907676701394697803267117400534464769834745321655434017951004210355200642295929285279636818976062303769743930623519711600666063986881009502733339730074109666707304545339966417778596124030765017161900365671023571405518247105019179269848578429147409872609388636940858859153464862831776682632531558789650564628140635883596903687342505491219118614603750559927618046059765781563052125161563189823594331425503090751268270302440579407078857979629266203943695251482484534780938335516876473182876638325557004224929296746420750255442848215478255318629892611019687905070336648232946699315133252730002328019329277872515854469374166473315994919657720320912119303359786829583560664670977289848155296589341685567765206753215322867825457173686313808766030924832860967330638238355317995748134740447238491974927951319154197166076094956725203439545607667045158930277184646480468313683495338771242487654713003651624652328994559475253443010336387684880889699321148703030307612901705492542429484311743589916250370347961523890787559089177116580269562615876014180323076617475442505202964569106336501279467937636774267609767524113392439904881952286914316609858202112370549556297179763602989897834834686327797577580233861896896136430501575741530697171339538680470654652794398679375381025259770868604874417643520332295520084034697014023403316690323272108597602041373268357059504424696000161854634690886019352338150423658701807981011036068032045663701196914057527427845940791769249991031032310491709993065494429217921202222367064905433550072517615607241655640186295382830908044019988923955928504175377503474041716384345561349014803655561419885113491355539979627160673475142991390275254126327117082530127958940008642085360050908504467983211006833695499988640783912157220575470817900722586503826118485159005909657528858725313104093842634167693963182009669754345745082277205837445287334724116382249140716077724659941072673288018201691948778443495887227452437271486292663890694293404039203710480164059828051681772536914645749361047536058056892525584299085996695045178579296539559427484091144966043025037255714928250298360406490137149452258988936882887686786414159634606999407507777480060719769059347591719399912557720075168109114521277931637909714549788852341224285427851189382137518016592415006366641702225086578846957383924821417852731976518541488076401923193965886140786788430599161029851641254314976036886187893728726219879818741971347994958270254609264660835881429678000596611889529356317211011679323880574550999920017246948245624911576067285048328947820948812086031029108885101252387650818248191407993351965099204339354757842049807212344844917050908326957015455292371622411438732698676337319122090990632362599947494162651347952018784071169787462748310170021400515522037768861585177147825405290051054322683071371720557117075572853717358657686604653767377228719284520610505327213876479905216473569593946160657455784076312676870759234401615929351331855013675903098848171145547863351154954954520217347280774744126813789820232016886957939912110810284475528025330541004326261239939965752559580049405391673062032581355170236778763144231781827564729106253464607635172757107123619519550884203801894387721604097261753492080284348262897589208618212669448045667364651771649390982174314823134697302169445028265208475585375793927600220259479871229619577433454420200640776086537046663828784920839737496101021377551490019306608313368689806203720933968998387230495330112885217295958587372904891285379232768517043373662309735860829157158062253745484720246228972882377790919107041291564859444182778438163363952721851355960045122783596394338527160592888939093825448962397981339103064277153572781408129330146310083057520007312338153084404736194716159057735604294451108012601913786556461966865207371826060037850713075927663350564510926921304608440829563934646681560050020193430534187681809127842521859851094159344961511592737623089898228239617957254983063436705265829559116399384169503812759748546351869380779977346701656501325639849125192124988536906550226223379215273764181716305410491502096282720670938797164449495678897024157204476788098978314351127219527542140245596023884561232347777598011842241370033049775479224305049476517901734758280374240023543877034983480886500693959466621518665712760011363933631034127514255433447838128406549276980580218627709248826076937239163459108596906124805387215458108462717953699911244335463130773955668427870156897985417200728056251511227311143428363193788210866005384606668140246783173002278844791279570012967713869500504680365887663752602777881819737751046471913867703452416673757619470386348142250626982958860733292799974102894401047779867593704206596496684928069753319666429252458077932711601858689088844702239845601037828958974823779206408180740003346417617192262661780836083110162535186736343802682781090039733400471076590952916178796185896397740206073474053878105571834232005734617270859224247565168931320162115750509896823646028547746426292213324607864017450999316112737811077507860666512016658380272056462062605661469783756559179700274011813222030033926305860579226333198452981249084871099551266351719515638289414211342538584449622438867435120201099013570640677857191757447626131567715587929183192824647444690478825817574659184089040399201143140875256447312982498878710288306037771494859805919931929095089736946274118439208108310976084153036327839060490084252128272072368209181799703990850330589104536814056397736899043247505064918767791229170018846871119646386873911011863297921901816412802456418875353833440375560818659944326750410921583029590360821978225843041812769803207060723336600884842291621923434421792975457297274084835641387083548929756581161591559801207146512064187832849345484563363237707177233058054660653736004811244345326187429707229676008255141667143006238785977371732099995876351419559238334879725532450192497612829070435009663894998794558050351666321691824492187255903136564137204667206670560320498500908535437605690011493648910621589911686882194543418518266977408999129938158400386458051000792201858048726605613855521697501329883080399853449722642391598003619333934360493224923960876395791935587630894560046679068647082747808076915704043829652519532814250531270964277656525322254179807249115141437162284500459659928257451307409707588146953422650839294800034244462998421669357413371257309231736004617054861593040983567237827383100771618147428524515468674206622179007459551175826904789406470963280336180801744436660493382328141113433438045005413953040532446574976666411400159444819680297390210505990276925869053421626543618469111212299163397795545016451209679978273971045883395309702913833048390558393468283777554738343148894859796387817978690393151016915698713214288546598175648075718528332911854256498650718033316568585253570797158116578604335745195890321803007953307015516135828460355817620762773740455457518582748741894004868946738453965907510090747231043093776795384847455892239927757423587333579457144017211561177067442402871022015048755564870915202916374458577283687289747142757499629598146511664353471605840323108289720740572530852114983639776579458119211367978258596116256895070125140777899688392680976491674954184597668807490785872192602312124018265008628637626482170844840885490402451615757647100669600655648497732952433448147240890929646916617489622487042128974863550137595320725669242406075736920881739723404218634139538922002515675933584701210519147726790421104529448256371309741332793883988026870212209464706983822051024719340898703734552805717499650065094917048977343586212023341782382817037741520151262961180964073453618524847870243378858659620924977781448764579693761995384147254244879522183055413208621963685488309844355582292662890349733440439103999052578375794459529433681483812743615810648398538991500630419764666600130167096073474074760367754957092296190781516878680723059958899757099706736060665464987199146295856716016813503409282029692023615171937883713390516757575997468456788642171414452670744665541374146961583466197331075574192478719354042332141919214289059830795704691398752802607077355994834275943441579028154511188347588777870197486078386621747463163371097372203435560874228360071040097699385055407696904822139664076992314483875651156918850374291055626049803988274211143244456935118633971136590782096756254629077131129933045651326929846488721569977428499150516059108623498509269592504721674608714700388780772326049207127474119221715011737092590613373180827237994911727169731014978096666094470927808368209661099236471760863252703607571962416919141767796118737227687753998889325397127328970290509034739632674662507806567466249797581914240869078746539472375016295354311233154504071181583538136294811824933998370512869858669976635462539073140892083283434311596985262594879909319812784284565244727605957614149387968966071761492385240835334625647463509312718386516127761593856393464210384808124948416960256444830124882336073008592241788449665846265268346513205934242840865064402461679705474268160835872120075792354098745928847018401190662996263163713664892690560534837961321419587577740801887619972561124745654316025199189984813537656584929133232181227269975377803265193850331443071384931410162905223585184619717808362799628244893856123379910123080468421446329127577298054266644613531691463687270199888261351852401124434309681211493662890299110971202396983864484411971095966987162072565801901571334978014032804349251904012125757809396879194124267551763573421535596481865963188916577924947580740355832862280023395764076026422502658499800354030829427078777349044778859162463933243159632630231563159846831910026327390252820590408643861221896845645929514142592641941601949873909106175655115246296271158562665556446460965645328728923420728334127165511938118457347126063089077703517535548876524716639466793055139173054105579266701565930783845753693875897299978141558549963338702254901092225832806701059638910751383461496836323318941380145290135765660974868138701886615196341843085848564315712670661842535147403126604417682974934444144807672205033830315736344712336493973604002592029429322730128386961465366494381897581812909668077253450432558811643298003110250800564340532912519409527752189397104116711091366052201572318965210708432353857532510686156913124712864283274236119671607043583557834022184024064903174327276524507944171184466366355215417463875754765979118886000673397913446234701862931633206544584388291511207141578223430435279703352495650966919964386996695813835280446799752490881567945032324002626503950788637844722881207713332841155190480169435701887302108173487573886342746208177967175984535092959411525150142140620303041987769030927087936930132642921698898932926280156543158660379062459545942478562668337976995348170799280531699359109905006751789985887346810477399840940663414556811106771685533162422518092946601115559149076046923154153294635919398937184567659491931636072727761603570558090318011703985425454306946612957955411459858658354820138298651362389994346318225233207491349370695988600104880782089628746985640499407984405214465206052720485933563035579866499088371433932885005844507686467482826977915634662857237449447486045107881528448272570553700245402202403555471356623871278384426612475882237913122470047190159587261640107103712052676087446141402185845327285419406970975394923566971857175085924617005572937562602275292471253226586618274304295455851545937004217884894679198041094487218492666778905568602725222551135166119790431063954265078759847668802532761442015535659505032432805119141124347906160801675373907024280320998753788900116220536978541468277086075814927996589454422524474965509630187877902264687927543670032272892113844327096624380436686891063655425044520028083359518245113584226265274763191086522655882246492093136609612449836927862420746280089391766555007069479063305284267318773337454799410151847856192277875549832702606637328414250706724408977650269682435833817735280770221236489749412193647896642134853696875003879542223075108616621915704873148052856041164773187439872377619011146098108352724944599355339119477414705432249038640236730600941449912059838103939886244551538718306586395581701250777233641013016115446683378377710411498900545551986380808043924400363716929779238975413413713851662379498516903815499942160719251779918737772094696564669177403008347090259951931360919581081187174303716998924515048933514441015068627474070231170077738511782922533857914239655610350042538811863846747025939338049611555202622515503218596195193359196245817274270493986999920508858254279540543341794531273118451743413523627800608816574548227008289493110196070105783982076396924183752476612368763079375753594888269915857212959580516534044986365799012736283978097548410620904089593620321375346435230809570823606365971917803693915074327013562487326725092322860306943866583655675582607169735947789745572256652852512870572485689577995717347872613186844377365255166020419670072806668058212561932287191283977182046086451097525080614340538529211076288213827870927804086204146857714434856183799300625678513366925380206797583220424511687432732833553146116036246359263020741587318664363225627921579974372904996567873212013462556382333852884431613072247801531319606054720857184305719786164002100275099138165728385993410090517728322170817942423428663728740475724482431340953800090427051638651602412328519591792891525471581484233336012094376235496294856478007571166465909279213685661533158614313192895549733951876132954779105863138729028337483914594375997991079168926269515007173933830501773628026598929496672433081122165477813966477655827091341007490879611102302867200985349715479616583087526541805274692605395107594375988459978497049346198829594146084571755046620803868820263591076919449281350293252237995136133878488010325895284357062508195689903868818678785385241088153140544730983474021409709411498536944855752494345126100019387624487962897839855584340029146145254053975746031320827751805253676761130487491948152797648743606403543033842178184946639792205139903136372676107935358365659778832348656628219155646464986591361560960028220156278618035762043640469781473390084619535622046236325151529055149630685347802447496701039325914974274571783484820000593663039819661812457992487309977050327226015228867130316684990691096285923849076399342598954106875193602824545473157348963880471876283456559946879330140373800282389300166415406191244758360022121410133461295692666620461645527619261335873925811283687264172993047155554501617657545301997184490649820437703083815500564758439389507233973799327507920460457062841438579220840970194414822767190715523889729937474810535155466496184396880057717945407137369401159887782913198128410265013756331708353290065555153980910665266660159225357678226437019397752675025759015756787015209606364887614592990580322832087437067766929997614260061131087879159526211092207891611070322460426566902567874182006093549716745521779191625431829188809256241266040297855132550378922756254365626255191330336743748699050970559456435805814006021696689736605967131735034136833949844944313907779491477193275414450918546651148701844854223678395311946516345425062516211709394001056674813111032435956223323407759406894716158308970961447237498813238631932756483460580754339229706518968766558494459100180918593995159389373796579567291033355074474124453918847133609264578484674735900025964582787909025794236505146250344207109455567896990453859198497176878951847455847437353422947029715734157208453623008398172438615071500431876089821985670357929146678475535809995234851416744912342864564784641941323765028676806823600743881104219810779153966961506587570282828202358169875006096979172934068692781485822500977254226966679417665551495646693780018292480839464544407980327229621495908960740689332769604393739235752979939402108975835861403101035220721034402660847317177763738296999681948891835559574405336959275368912017501631242057454841816520498238849905986963646291417640065657299374749388093737558934554282122618843797901551330641630890091872833511229462758442829433966072340240914412658105333303172344470616926907243479646958390611274637932904599910214811730763120996534797057565982533378499701124289245579608716181881065605406368396889114312280702370459353686981650517550114291848099285701735125730459929217170900965601415335551067646091408633925941120831377896158316758397969535823045899687217402058812076929236769148880093695375374769141507414900414655886779522858608718884576197889513277303095167092186466761794373766918544865002320499397259820987019469304340104226215908618789850748093647439353170582697610853722552591223953292616413451876252228397227724692343852264052555126079914371328910855075035318451286519595193696333967250008066768272532177700666943214045499391049462123541146124913426973627860963220223992738043249897038070953319771549398871293487292229732167101336704901476944542629260679011223208162626504512724752017099524164059878643783414467822338369036266335266775579748979436823768269034710854707129485245806816888126534859877100425423228971808876251549927355063608903436699557909412620150030553030029062570198131045958394688189991977437576523140742853330154312587103160765597464334551063440312704694631268821153248298174678103688765772973866064382794940072035680058324194394625330818133229901817417621224137127859640935938904892899566601325274959498737796787304079216929673248621651721132701802000307641459564219439773220791271745554373710756268931659459631230735091716366292046561972703982787002616676617127105145000279287512076973363189820877764864347395738547224231118617672964114620785968246866285969658234890189236881933032908825739542439472502853636712019682969838306056442608857010927488228148575176061643978280478036670616768487011986382247100105145578562186501862196039260916601139008326876432659722293016412942190483652013922446764967622633646717512046708894565839668246564343466856229363939744402382105509850720471543211714416599081812202544351601643124413506477907566507926519028643509277738563318238117880131070683365287882543558214870772672949708781462761511116743120552916701669520708886457198545231671368012072092947058914471025221305540768591139766484113392492623565426410789962939571708028382059693687039792980111369167640436957717762428475067653869565704825545515945093803298815593493904690232669036740247421025032335809805044557632506136667513735386598829714364218216429898350037487640317915678639745702770849360305342867136750719768260606161292022227815483391181124314416515966625678033925002546978256844711516218091851306231182227085040358153773762815832346262132312701803902833985805532104263796543574634855686964778435481537256942188749178301528519053225435178965170289589303946210442465899694027182810560686261106086496210417120601792139065672678077386558240911725210816297160509762707320937903407034792576631806884836531500098662569182032263492117835267061116153055199066830438783468690850592549162027390810507289907601416816788738320182276069619531803677728530799385133672719573491149679764965807360920772141094680702899883580507485606516364590448255438447305250805919876354619575391365346972038722321829784030107959888084084063680335764847720838317202656035892284959478347086310137889400417897851526751429144919141905435007399181671674964113597196842056282256828592513593034786177476705057843640097012984416284808789226780306907574096237688877958993265858272504923427076811762967291449715833239012171606636029283213474561827389108978100707444899954460453961311378308685720726489720536218907012873317107169669390419681971857958562534501174016088134401075731834634402076208369299911887174573944361096468616728078673731840498986671869910019801800428454442857080631929424333177670035383596011425157781932429508003680006886089257111595571153591511625411939012962569488916883824063194626441730552445166508787333923546044740427735229837177756335347614982089692923589443482182159592867364668069447646223527166224510809633008555748477533352223101382921194520809533337532140228316677091247504403070878383412504229400871069276872374850107426597681908468834601226291301751250955369329313110122327371200795468629911905451718755118785060786148873047679984615000753376303709346913451509963457197031287454264268173580124868805989706685916811437311145229119693608012533985407076327172478105870398030263036129378063852359857744951564515807479626508309022802729511593400675856049079933937455189859514991831029426272312217417437952366100320180053631850291639109207195723824050402977498295096090067212033520000927047518275972532258617593029827874277673700638265754994514962281316873303865953500462708243905096394927197219006096673625133245420606681126433387040108203278206214689971433957824797515218790474218113716335128714767443266808461947932375686080117877859646653663347123528447552237031242708208805471631060646474163869487083166321195343903918209574119808563302165738539164572855239221908936209579799061391229256828045706127792534236911329654100324072589557058949768317159897466399608867360205318544228268567247127653230630936711781625273884273607272666895886615533829222935534055882417364087380299143571263359385108062951734331759572427600508452229442846581445437250539339331881107486207138641223731019352945164425145555594681677001927828057004483403887909319893686842467609915486588911786074787014889863502904480227031385563677825118243244304009746638783982260188278721578730358404856896136793393219408806519748434142548417764384814157073901323256182132804016809432168345360077260457283454863349545066006207180329202424787102598765032019286081333069900201690464706520242593932618926927425749575603850529431509974813835079474103067415273737188380783941506983089594594229570737985421519469697426670992170702423032063198682594491701721163250546092404234438696230044533680744392980933322976065860390860912654430525037585380942382637940883802874056360905259589479488967756901943139208853933647018118948129480259523904795845967371103560276678265089108720792774023333660897802188083283419420679169297066044059556856902155050645496093940339216902994122822440801053156750306641994389805490952435883696979419136397043711240549730424199995643464210237461308133687096922418109312142577240652086581539799586254637035187056271216330509124205610498512507565501428556595273045900487552994878965997895954209952294615008478970546977852393199403954539535420576862177249288201395360605731474979566748957556788390453920850577826104856363914242147359846266660847786087351303690146048817865287263426026520852434441219438421535588370187256233361630088531266892761486024505676440959972389290421284017019127101076559593234931374163741779347961271772901705603460490221314255315931724484881539075965234085407873592767343971121454269415007032293584687538999942429721896301187384468478735047143168122436094218067825573632971053126499783254600504440621237599186282962978414809723484355322050581027543062077133140002726172853651338528604988009863926075924399403549094929587656986951596653973317903689518114487436756753907508467247516882031438220421765281731201173702808268007190694103295909179357277061988528759633016859816349747967079191578737876968539766282797774395349425176443000012799815892912983715136494099969361023642622969939777983489928552648868416233913329535633960698372187442674091877942070675213915993530130253830410814742102433322212067690344340195377196804706972542696434846870814842874432602144970775975594162151226540463766126730195047234482918434504849589954901316722301754346356950471908032328539205187270994986367052625590621579790228693041956776877918734882007808571699944570930082822599839154701979103908098806598506131570374392511451059264131640255527610769173265302523394675737068193807041001402762711434619043264140816877377145422625690412134400928209994866743939509611542240221556261483887130438586804898668092415262866004071761328637216095721939109594673559303716789556056543659427762126322155166025808103969785061429086147133516257648783529284540518052133307005109507181528678373861527465557130464500282735775473111012186416609635540424127429599903821147237568370475264329183228431345495327287422862128741158794250016441743933529427621931856416012765782454008773922917064457997382113983488823268695452689903472859640211213222303661090174862456862822265911434853360492016764837377905009765451015123982560606069401120364993441880005467553187817862486664053390908444282645090473657033534999599939268558144366786174377822216991973736626759881924053215911923242083067612586768473797151399725864039484464859942043856212967705391176084225610994136322956821947863944327263929026691258127107590218924025902420640297300433427962091135451666491167341999469893264899883869679324774717939676979944388332550684601476424316625335235278873551104416342877485436244060083849196584910032879560312549229650606740989140003379335649603360271110248331043560241271764769142297097146929051394852817665786472459712451567108161739341069558702780207468771754208295197514530557231997523412797705431694745723515170958391335829124671133034387918293188613424901008656118672414668675923383973871397243209446236132939841146113150187491001934632421269267333317124135501871637841694062031942821260744689207457291325288966488226030850466840374716269166241663117580253384089962066158263670668416759764793679884324402988532696567479640701834961805122158953356584744607111543043374588340361963661593907391503719550963128474344461439124650206144004783141569985583284708211209948425890505920195248651338170087537527805736311001586940728427234864960990257211802249781177003393131315613299386233096930035272227558455963200382469686546443679434144858033073343428761654230535439108968749599325017836897069323441148384387131790584691880604412696374468795211795079376653638337757890644440329692226625539614764674306523306022210507814639778430346166908151326220417590413507266321657536140736397505176698043625385372905693960729344869943164956408284278205818546755662776796280501302998351493178303813441560211425295445006685193613791157255433493401536144131289991150450464621563780206663343056445887759058085360338614214389523578780993191530922397039273611992625531322710742893526552063598981478617066392604883999637808674080271426153366173495018787168703269168774542115516867404368685733897164555935812606668133774628433349545778504952639113117088721427325803671413112816513012808009594358242720134169112084357778782597754061340022215634033105866563886297292302063430063273773060375938979919242181301606468984268069922935028110411543304446872140480226888993615001398251780123220098386116527912897581213384207876781508085047510631900550181766295958482909335307602221257471759516952974822195120339563289484370343035105315126397730399323908092088038094709532386798879343513330567080548949724021877354822360933248787951070442114034446000796692049344235534354688110348604369150565627134190348424005307910420889510789733919896768968558736533459982467882285284042032591380179556239373705744883014945203591422849332713788665667250874084392094555256373052099563037784558709225401464901412516721901533820290630984369741969536578979723810947056171260063339514743949951288597357454473669303756125472508157128417804151912834716706460095158497574417250597191834101931029613398004152175821625244904525405481784485617381166147368576462567634448835999601949221989309883843091992905361929563459619938046118167506727174885299054155826439175565006760161332921026920373113918561949306830328879398577932381589338709116958028880292086626742499726701933488033109285654718404028256830998317521054916923898318684425182094027958553660766295925140938507186539990058389290811324350998198157507096465485833067013581287662501757519002293186085255678986744937641871976363699012351533788590834505175184685620433526000187997813613089856484616373278140180749380193904078740980993517402568020844652853673339267921140239133549064645525442399152319965916453233894047191703398879250616468455014952145946781147407614243199535141286907022891418313470628457839872491951356509819768670350479378860523683277303950744847519149346311436265911146547459152498020075326442126854899145561864566751086327966517151301528809652545302418822295627503059010653402682250627999557016092254069383610457565742727298493723052636431304076117233884390239446009213748274026418195006950644484736263443947222295067455272114298562342041910099161467923271245950319507154839346650010161178581711049812203679795085129312545699585044810941911273184345916167116951006298464718505920050064574534390248751761499386764354230477562325954919125244968191561802174099835913444589168978818502070448339053800229746492938010326406857732908189257102658546468254694144257639890267724718357368911209254240844817363105159647829777330078505173463832422438742136887679833779367998054348281415422649566005748679905343546144330477883405528149706178515908224402531025625756928649735412817188476040976583170239505690300233872687436931923859169443772512027311196559673029525245376302744100403793464272671908262667746857150201404638960941638511648739215527847842803279399939202620403428480299540704930160028348440825218973223058015552516504991491348396770231079204907107426136934332091518443086639890239948215590123238802803305530682434084739797352098787645735416589864952471174335764736528645185479732578484968481305200275302071386163799159372428277425095925957214373047398526581670548997219956300470503435582421780484556936967334149813218498173721617325616695676190369719874100553640696881322818633702626907941979451380549104820785603467874525255602412296472394282092546556236230933908004221275113407153896502545684577276346148212846065073730281039136264915176145705761539592347300919355981281014992862720940101591598957435556101420811542881110210127152880490933120835537356564463373924663128472440985582078646580534823323216498625720602730821247350674158671782166741320984606611926678500331588698476326205726276665354930897417836058306218002122669043011830133944469325983071322376097942138714531920234740954416088588643663110499721384534307674578631927588377528868163833224029364394729438278383608968891620506842206742339479277373760680540381890453552161646468825600592958153226236281515411219516059999176338262400648871421449236032122018620150068910055979334128382113928745115828208482985635105040405583542223351366268079893765743630092442730478274080098825099675271225644706501032803892706633703612047946197962488631961262288461500082006085595979677934133881539026496636646186437415830273659688544247189682242850014031033969460444651577147297792064506118853865238411440496620049501334880172072738294586050146518668099827265157421427715514528476279573202439630427329310827715516197926628476984208855437924131339714606909187206657097523692321930853141445829991921896309936519463750343017728566720669606840183713593501901539169789555866692474075646392843079698335764925857865973715671216480015468033372684584201450278944617667156767157796216223753830877287220137494871770521497985112212749660267787213788025284570412393231960572970117856413584434174681717583906796268395427774419776223067764150120224772299928273830123820539267517702586988479330885855110647330686732045332738825922878038147427525330294918194792383970201596450056243182542105020520302238064686139992387019592319585500560408426041249143200611598152578583194280144195069433463342909748834920305614090966918138864400415324774917376728604715678704505249171387677871128564072013875269927484080865424414354921622455188671163838550565217939770462360330075291576836815951151713881933583816653927458161415522178376134656869500118078080320087394615848537309065704143220559655056663312171708668400257927248336601796124439042900661702783224997098910695200023146655153916922770709694857764273737818070830082862897124506499462408048310082569687650199423467254208009583764448275091070572373416266301784007931933548384030060123407776416346116391566927315303954564908191038323133479249524053428303069828259065451241180922544611847466435955039961455448034469607552219919857295225793766202090994284852780171913683969019519511523664044065855426000911403568232560614512330399389785389262315068866626677173112663023602172422343833798457809160565770802153627273134108717997470737910473301458730519231906927205819345815675271954222193620179117820141227421273082031561569542884810769262003861897240177417425289120476815684983674094438236608199674182234124837404941362665579336687692237921528791489168937156008822166255959920502745448835183049192827864041212179719224189646395849623420501397827718012652991713408495158855315848516964520794665034542278901823126707685575044274498253310595621220411865327028636286617528396552201990649159890071408975146683599744674779752512538934608080998561855280314325544944472135631805044704100631201817822292873283937111201298489965902271983992892123907828160322376042750359467236506387568671086843041785451818035295460507833691244702642148760568252656927387455518046662174456525611243217988285103313220340460407159488392385437162982541258385861901141314452741478713962507093543162348610964778615752609598174434640090950930713845200787273243036994959600772478060705793863154127246197428119093980674830987845256657028113035338849944327390398914906618508509650999496816300952412554253417458307678067018689763752084207978213357215647564127862854022931458200795711564834705594947880350265190760631203500230067651232916447101923115935139963544640401787035291253391633383463206834123936679596803573088711531476770265053297439841968964148463925511763463008078721351159614535497408281010557620718603182459982725131695605475126375107106701669618388254487080706424169507961394105612802251531065211422714879090875297250153999290560409635152119598524858273221640024125512194566064058282103429218990978247150445578442027750577218873587083011413072514002150375695223362019349198188353107068604675120200445188381433604526638487088050463450501607855352565064615597480201280309350581226846208666311628407358295679876255273090630300637594358521583648410966559412570769526661204104366088543478169315619187086440967666231888673472698146530639616237562353490498442250201627034628460506011017331283499474177080547895880872675631356284548317771411742495285913226623137497820382889302165589015055463260175269731354777371283148781187919783104183748593717615779821398210245016518584929181589057175551389639176643307853068026638101828694299889578462154865272849308733469667806488432157540729562994367115347156492921786932472423816475921393203637302147981178862219055382366893025610709370933121978286439041308003091030757629714105146347908197364029964010746307469452716831319206264250579488255944384730195240480360469849875741845203953301613633443691763301093331400402688506461494334552057760033475994747257680598209513731835927381878641312796613120490350727964416184593502200340656271894581163260269220808308590939866415931693047045074832788072132501633565498852330726127982600168869559372217032169483122942611395593143572039396986908616155977064516453053950997677193469247482545568706681095890639330048482489455819790665843243748080144464583949195189133956389822795629733863430641941028730969727425587522418204825307240723976555740278452867997936038822389532202205904851926344974989676446020388518698793488357308080949955345731893786484440455121701589662465336733363351115989224927025016572876668637657221790604155303549176996334200207092068743468661990146763962830756222691178315099196449099119362479255220686575753135612185991255412455951705222310056475770664704447433584717325714578484664375200433178397106446833299283494892603092242554236512941858581601141836063427524855691198679500780920336684581992664674699011859452126263358921986694983069154979173403793687115868192820760053255254024455697619106267964850927998653032749611006691296400202842430823216818663873997678943328322581534984499285962256687631581339539096594835222716773397970029301864333454224948616015100645350995115961739809464867483813098591834164602641029603365662583758048929927986169063898261551657557875044459380289213396471662107999222488998691731805865520562958902140792411095628355922753969364241901206960150387983855946727343739986166376292545526046890212307410074177117004629984361225970350803649272162592094666294281709619786347047277310290859507766078761365392314313138716822943605481447867887980958032332897028623588640456269490750478425545568848413873083384511752507138333114623361067845463006611439460798639747163919132256828868746476578907959749577289468225346690235863581842341834415699553786988731878456368933549505583876504588656056763535207930321976350843735268700805132606354194092164047738222686824248979256268731167206635780623128877862249425803192298020687276721691053907402344993991674746176543552527736816344241565983078804162887132323047710939994644066259040628307798262833946728006646741490990974999814886134410840438331051334363376402011482307785127600424204819810702326130762666233247444499590325846461428106994262492666809347902937658968374102135766060513029346539887738852997779783530301537061257718646763132335817627817617510026682500773073457649453332847938337462519540660245517027715512429308444884041661807912254931194006100347000878365599043961637245552888090182600118813988813316907965524469018818774790438958984144294914841727886618694598050647805643152323078911741623727837901485805923428680828028822008906910081858961756075542426656317225714270917665380666632542449834388100624025933565692471401029792948425846383339642043045861133528184498594290276290677267984196680582936056867923442432789917155814690632905703417175986337443311918309048698057539963586826367532052431208705088983670596404043985794367126909391723808828340180352148861991241805092406501017255964070661742842656755241244986873447686374657715400806164572152484057632704408145284121774472818642094493944024560546826614592841377377033274199589001663042531150916848056861420168258928053361773073616842930917490957518574280258953566576411265288054467977582736023803071335292268932156050561873816610749350899712318453965775240152339263418365553247320942317137990825101698361634323736464666874835391663160953523493337594804159172345826578734536655221308661172998702338704474256556557913192257986477150112572001126099219578316114052322511868733103044374569358469558300459281857669022813434231914045750137871238131108490309227797670232263475196813087295149873435458436035640560870816589016566515544132901680107251053428521275403512810212153405163442539617406047921308240442953819937692632779662432593016137283188366043505795157341134377868992001985380889180659422584766265506146869774656364147755821354980781487804775347731553848593770436897091640747271671425728320202888297215516174160165624681221187430033800775597045901138492766251073127579253647946412047657233147918087540868220885969938355831464680067870172606002853599452427985912841347840003982077154340430369624942258516928011722787373975311498925606796462670230213961198761396248555556582242616545125302081252897261607702408225015450266050154503833025782761812637592262789184299801413836158661024659524225043193735273000091945353559306017698999099363413690219050678505770439688883147964500992423125624638201024123460047687429967957452343428651667458620709471924210829119822263065200811946527336605962571400943126316743687452105653757981280380360852544670208313947378022426025681347302792824748136176291679488287452591827849672027649206505995475591940997611735016787823946489276133585303263404199964312952040121577152884326739980614634745930071399625201925942911267739090231128826650260419458758421636364958972880432899848058163895578218078072715754099235540825700986945838323723143119012465233757890790222195450929264157476143733871526716297768820166271963923537944882391319251903952100209475740820057504789904491856600767464294298766188110163227311431430970929293495988256246938560086755935373011876241235634486707931875241925529090340303432786603618337925358502168715337598783635245618856775886193048050438073337714274998094408924337047774024234634515291031001720735636866699175935216539881396740058254687865421388669449853456946273661709488854816045279145676030276640097971382241723752599066238904357613559418076554861010819996021369847302996562974119535267033060196353189920786078294504621668215116423356709423399316785068894776299827516239444815518842871654010830549415164989806775105034138977834673954482923705931374650761344970946353918069863312911311205162525471991137670152633505341931615726470495733206991294023232988470818133868552003041142863666904659330948003208132562616713742822735292375672096750909556073076850832196599069214582813257880822712563659975758108646207463294452037982227452555463742215605047839922108113067125976886299513334334867976717469375997829297538741556299491193489616312989123517139368252281935949214624467737017579416597090648968769688363144064153643561026720483622957599939772076516766475102314295765893839235724099658756493322189275822575817942429577609423444593055323061335651383128663064587941560188351084679961846227234445989325808366865952920877513297772757472358234933924295655310922475858951399063195316389252436392339219353327695218597782340978572201689392795778706992252828652819805397841654649505652061686847632358706750582429034338010249512071404600201925131861955475741799161672087685707572509209956703013277595921965266627705983792299933702087839159435309262237077109785803828600726654493713334094788953009211491493509655155782412159529921852739598693151782345587882492916881248323850333079458967462535862671729115454816928033031490922090221767828907393960305194562284704629406156233611758332870156225499230985749601010575864702249718316237267492732965031537994869577003652723008724149946767687431512455288440763974475296136953171873636005163576604337586747427368431181614527697573110777204615293389032956135228640334294378605802812044427983738802123520551182389049994503267037789798219945656348382119320304622536780888659013087377229567368490798934416853881894507709141944698016421032332728253019202094948936834192007824794736993803770304656452083738348972420933424264166263404667048037088723979820032009784286066430265872184959858597743706767613138845806642304109364574967008015134503767869624019747709336926272494265931914640555334886221718816786572211243104809069454191593720754633739148662576348890342359610631008597343437403805167315078232265113153998250247558810547370467612960670373432768297763476465658715871227752549013532531980814821828126851574347445732645665070131965347011889053617998618501281712108706036874917086519982451195602219830153378353281862521992042411340085696282994770748719991253318532457582912289242809203689710536974229168231603079740614066623811977600672991775914512484109881826334957031475252300284736960164490809964677455281526611725779408469644902584455801424131279569913748588494076194077293439622821405874313400529778080661494403330263432271006307511604747901992362958647551901358632271258046100181193017972476144744385676270457044619291630668622167421321117493385116127287987085184352576001810197034181523887025484134153293988489768171053955715495157779270323200345855308295558818210571923049107861525820745124390242407142038436215361019342389516950142645968824976390427370267953173694566035559937643084716918093199230188411632805536736052060006369136352610073971493875335131121084157225945023467288088491742562281006925013681375245530409803187290155746750201838811999211282627751721108194177524496900270649137484697991154781578339413194450330132127153574357239940867754908365672470148650096906481974576973309231586259140610967088710675255566750811011426536165593003591383687983335444877910607830876211051382195391723643576216199556372840797783199036558386361778974689023393629872831734366152720772959018947269492891504005389480502932520809584522307958958708087812426295210119080526792233393153849392511092369738306968221974896307208744499101021890194640643002630689210651721560244051122655154859925418974458986871281089359468661003803671859649868879625967485489235367801657454463932650388761481841774359775278589472629873257802578855909020213694412439356248888414080790576530950822594381281554501992611614876651076806335637379130399331946498748153819298168529825910986916060305035541337217033390452454887470017134568003908452392813820917925628888373075653683554367292600818175877472972385176971491424220260114791685444507690251897396295033340969317947987668433264185176028861824097873946359815119917515331190097070359851418186426666604103481747262311679202161446980033869243405715245471640449722351731060114451857410963896857213100289153061932250049443018076629356214618620575118989521883637638022209767096788362085712448129963176313219998225235412439136032750689556357596054639975379930100530725450117733183474456088555177500734903162160254574642946954723664087799843948401445274902716834714334313078003830185278282809782266120834032078780566308565543048086127939912548401341508289802376020595319319671185893560418104598431941754407913609665740125033792333370233169898134652382577593220904926242064243715766895403344560087928730079306383568268973621335343518552597683327525524232423088394364735429538702039868322788745278808826914368133745439592041738125112956836501656688087038739078806600134329454778619883807207879618395237649727984188576227019161271077606637216123765943264985202232591315197454560725342259506805212270956041489199099037141140318472960719434024929842255681764627232199254475785917516308290645330293629129821067366414507354503976561049392894415358860195975207371235805165732331291044310739520829577454765723817512902148922751643448844570015729201753283959173549707710227788432318472834210897286234125350194522082326593324840197234273147901795429166024219395380361291449822857179916691574155027696631821263130653210356368475218129429489240165361146971360104527876561741488007358309985972085849134551053410526172877021539630516442273383899794143429100585165438566104796249972630558891996163222437265541996134392649468205249913143210450064290133852030136343716895808946449321625803081023678630746397900681499353477153834176074472464355195031734526694330979146718894042967596293834559193889016088392313882623557665571277325407259505923179231643192598931533133013587554579006406022847036032328853206652592854290648195446753545979404764503958596013752257744967149954437474777420807512958163737169288242932360764275755662107700762713858867990989245776738061821115343529418076764611473017746028271620999149795455506388091764142399164266976171512288866512059534496980127989846528929541666040449055922342365347587434281874590656142933667988496300070162282527524909289820516278254589736581056832325500931539698922788999956357335847291512264613266240348292380082466160138914636408533394875251719346647870459134446810617627410163647169260484702690026747162619334406321888911890903790770949339016687441134354172246335163687956448834407653458772918878248566018886331495624871796876131499559987405344254405370235039006336397656266071201308427443234581408511169811191453387134059547752967686931113643957106338807340726940832517275569698139770274585441855074098445494102773700139194037126888480823773615673147411778541674676162866742204193086668534782392286198256330989867982607818343690059986877992380383848803951785037883937605558118248012631879545768921089636833848258992323067667735364385566655928751657092745058655117409798793639823141834314195210295735553430832922180535178972001389172494254528513260487768409280336450952230314671704749901321128063883325579478883179772057686719430735328874056278658013708774271057992504908016103669177541759432859731294852862434289868719074007584081132548932447832740572652013861131469686699947414396427360524139015044060212633514770415197537168476941465702548653625956755250121756847049486627972242260212314538109279734918690365968498294559921043644010455543017795143760076215509116146505557984881705315672859902123798211553052534106762196459468928770893689121953384124672234597610530311725342635314986944198025919242550597446707659218199855632057832622004269052558125621902454169794000148203683302507189453532728271862690437287244358863980164216157046417299125026257753722338211574710376184964995353413193260912733361345913042913270359610038437120743103337959383660644249435203054317462825385305863736659555442069863738608809001099967282544224980819209410130024638700975079824985588204628560762032471200704366883990487273679619615634838657443317306378452548221759162920968453141249551437555846304472606071028981972614970981119641666318863971678990750223512980162054521384137833379644637153940045287331854389870913363061233678460442303619895721633082879623781856986018458757837637797780118901709863519919693609791176307555332227633683755168210372858418365194656115501736404459120084102516452608014701554329064116312747617944713106345477093426944777466714158433411513891042091600467259561595757145122375199265347147464440294214419964313947908255976084514306401928374943019215606468432406873834973778097531998266414797981685097639446515190889337760953018304907262480724773111323190857703149523039511812316465075060328067229777866440677069486233532403988241391116171212991552105152453177155014302243209039699640899508154936096139608477129293274979902654277663147879436271341853854268791466684057213560822399883312612949433672825313665178644707003158097073489676234266726259205829263063477982136455647170900719420016377669590348354829575614726579591015073181509502281475676520291851852488865591477259042629269272681540366725209645363893778106310961783685756856972455798718344110882955241546668794031269923154339073070694503212790870825744744334792985909224678675404506284015045742657516602338086303128863002948740187987214626717551962797160716668263184210415775140657809448447012447629018226415525292581729449015129612063870960557259711434229930876484735030268543772429571466619173051620478306267876824747019035191079341971117786908254067439443508709194219398736130669123317461810328974986840074695645266221415546531516882202673847098372876402736395425130536677620726092311021327563456847696538600769455709145637235839060296875575471194250185758677773377411126012097683228156136610100587843210250474462004603586010303778746264818641873544831649336232863862255905940426143946394409567618652392916181880614204872418005825394155200141177785587481333038148410665648617784804517234223176099331390541678990687115767092524550626187256571410672181392500425376704937358513135764108689865553547000163261806617897992228828547803664465306127929919339823936241092612353788112288980331361604560371737460072836213135363453091594825665286949836101591293948519997126150055758859196496948700527232111087980480219730321754485398978533917985609645359826220461907390339607928407824386809714904922206794621169919363765788104484220390992241283170916476937143137582563457407548900300972102619809502969140590208356651219681159362288342880543110485479863997697396724533068866749488949900713436039071274206547099670187002457104794135323443907036322301497976311770435362604836700789733862399290888226384927951310630872905978467040709998609190687700164712254301737255103835671597813897206483978432455974871575303621881666320953315357668028910259211118810550021798333719109846509833301783425556221709314524692197228092592760536740157267116966130917223509190971973069560457331824473506882050377677466958819406166309856451940641462732282770262049299650734014790015767886405858736622750094167538990588897176547912306694485306682307603987483174461207952527941219766919313951675568317776929403071661279072915211484485768139610409442607721088702990652862333481291322751541425037997346668886219250031765781879354652360800957847498298918769833577915332363064308084909023955145975220531805261114831971232166082165313901705904525273898107287377963606578515291285145168455839866692122697368423317916418694209026811459076204525901407437181813737735124030530573517343366495840371927270623648203766965212063282907078153508079712136010931341608652259540291337284815176474860616277083861457614415629050662459860335282954430341099107523550224110883611790098473000449429504258417237294565739996915692649481242436515206504376423569717726352007278678143986155087907698372862730126044267122696170130762711967749940739088959959836788546406182187893514192307515279919742833522194233115671794009181544275322330074956995072803266729158401322120917691600275592763442687326990599390937493667761835003335389571090179674841548799244087330376118803731824809506609603744106674796611892723542064707153164575336314333572460606732103731886296277033043639427980478644817137160699244479708764908478358979568048155287367717959494214445755528618379006510909786235008525667107126226656593505301573350811916563908130681609651475997515197173658332382203201814488822324356833539380355629794456743153717700406972098815423135562729480223041196765248593700405001016563401152904234209365415697483710259776143732193641007324985975307592860786355570150140120443217813414709974050521649398382820052739311969037460947500656883001192321809794560096538223548702252827848408251236861175353382145627721428320679057042439952072363386970579872893862260129470133566409864497463610398414487261180526056933856455458874949398617817344589440961040521952278442714812513402436883866460912138685411603812236073694405682953188292495347261456694463190746644085681693652962075698993760230361815228004617630843870598964630552081639766800800970635626404581497836341139619439314342844982032007966238682260117429824141467651278527567443459016326346571405116262017489003736265139935147302972117699570830749075695545770937729885437961579489341475765503214361561053587395893541431760907742095621477302878607454988900201329158591625574677875145485680829819342204283594014884949562473763194979657641085728298605461782723713096439297440866949938361486629780606937030812245465181719607285655457044257454718917652574041839881245489047211940995368332284036775700954121625287658311155404560391339140501331498254263345652955003247275917444260469595492611070427992237512671098701509225597928162227382122775619351397323967099700376547535694488689555867427235980625639303840791325959160265802477879156890969810280428629929930323008447675169080783004032215561006047376531146112808728898405394489033452773447844169344007243584241965964769757166541301500301224793012321074741022220290306380523528713290401415271598512688926457708833325389002597930981130743657966928414413283104938333300302618713533688921630612016172467382339072138161324588499061988284822240806779788965685106459348701228353688461386250670674958655858757859119099378640384656028409796180390019080833221007390751340571154559048927365700336695015637087584083732926615125725492832675412173116889400877320657827197954534186814646174796638273235419691445672085211720225155985102485648775454832998390068227885512600266816048078228136246811963144806217840277847313500766150560508407378121975694377692509127656176045624012221238616556667842750670583399303266186449294872330845446795572770787347479874896392978092837649000968190000302587909250873036663754400247288010081324524510732223144741846300096448659546435238899087737988463201711887175354992343597645495409539653381190355993601073675002918490477735224759949289231306045470919573098909512452081439491159786909477236520128728496357713713838180166012961836474985462062765182814009612004881417072271605847336944214863692456717796244725979695072596976381169545605666753223200897824820905938530856777395083244736651541608519056683517813988241801295146680900918638190995379975157196892646478877963619820973839965513538929523740250258520045259104330579391251253567762947301974243917558944423729189908442503855194864139631886422340626957126199763079560535358602730232814767371761202332836585968248161835357181193585236029436207058205613650071590548282786691443409336432734965701762593431228433808791323155600802363803842235830255985665239702458585522450421467119575097946725573879304558602039287021557499117489488729147646912714410833346123988142285402883378671957254655221163096150039359747805303635234178971731215102043391631697773104856252345741369265360465800664876806174051684314532458540594165865978957621220007368218540664237757393899714116197052751034342594762624367660297254833326556009885639438460471401271771369682716700005127905026139245895639152792214386538691437513940172974016911203125483284413135013436655964384985253297426518567398840623554160584980841315646621907171977188011976205918101417445199245228536249752207961262966146967119466787724283368013312868225928875666555584219769129720324210227558963930634228841593548105683916799071449919996780094292909936308238807491172522556413616967870552402580920999860968924821500319279636011697791255241349454851840034229986488769875591998277876365890513730413829083903696062895736819666088577345219587200555475051217663494678509953854965719582100126656405035612055786517512057498869506157709132461535130066371365398662690418445382597161134443094253534542650446428167861597068071794608175348247401813325148113543272965838678774091930265270878172491187235699152579423663736459699711651640423298602345927683407981531256780070438567334104576138052464211620999939484095740620190187537671857859301025801125900367616272390492742120208400998809413501818040109082047592315280946819588308215336551818797101719014582279951824625521675376091971116521984053207139917156586448145166125882646923867644729774270124215066728443890343148349589955525807762193301123472095750316818450669049664948759051107284732968861056498519928658225791619642562254353614157119793940528186303852907642865364380764748614447095300097346755262073392302687374541968861164582022753220858429468641850472207286970199677874308946174605351039125879794976384639525631304232724585480949560866645321770073220627496321420299534315956392045141737799702264871389323856959162517644588254703456722600083741313675510027220432065668341792438609988201431045263570191486381919846431479919633544559014896990817736127130674965197625456782857955207900190387740572494650480376001588063603243334701646486581480313015357558915576112607047084989090968804650846832552399960169474868715917410399185179997390372224803523638252100867441085634830716792016247893782018631811418499206227975894795423697568864377846471193859942611441196971153798050447472483004834850314175727136664785662440721622037641580025886084688133078041147518370394774448583523932525157833966518091554303078063710878522747618327380421918808629414253527089129560333938449466521665026175718130280090713596440677318533814225367910223032324431933302982745246810542612793819621482894830425684634716042896206887263865389179397234243882479554688397214688800963050687571100673407562588232830254846521617200349555965350841483553249057932737771183205913684699850320725241510169889432251788070794516271368446938076501744639106822111129940059238729273898297609053090161835809950320260864523319392568941238241890523268438817594522765255073479452648723920253978994770072043112080615688730221359235160220160435854481737759771315905217691466821298436902639950617994195751054989485013344725280948343536058685501811564748897183408760807837142445604433353812375381384677931901697117152158657256115445143827397562474140873578537906793741825342504743451785681842097854903944240476125480413831250725500965744278352607038244252787096033107201176085836849119655838281454138830903694975394485395583921886237235879054530680138174302541192141274951723247008565790920779261658057696492637279226235664182363448306873269009913407641743022044277523978484901407720654419411215755784494927463190554615475638136801372929302271574210956652640024455139225331861530313759166679568125609845976198574073607500377175642686917722352284069176759650896395170066658929358397946533678090367769727162073472909218222883718399711509097426197262384497610352906878426873661167719390158560727975004062057682028309504027408041666317440208598162451711118095294381495889068952571537496873251368324055026768106927059751364410350137783296812110349256352599648070152731109875970849117932258644391434487971181202512483093621108275076610156112451932680340205323255071085491554312142927608478166898568936274731417808922463665177537698799094265344742455355943435906340639671485191813913874464615544285307335100222361190881733590736613396846982706260110333697877964889895356398759550426724694455250782478114863152140351784441610893981955322832122584216748953902309666494132202836217028326495163271485303638865152560065125342334173120297348078919801953279194665239406315144314438605460401550998075781789120166098559538221345510249711592640389906557347201615450075972266437067512256971247063897244285934785605821283477343093953482555313435265939189817455376426326987728159286358001999566606738970043183996087602142151019563463494688434480638257818882086010539271130085157245197749408330441755502448224587934767445397881999511485067481046415864219843063657407978403039237482689638264769941006139448071018861537820411374564047728553811444945445912280358520444615527409300254398578238569789576469179926623641610352847615506063034753077383145497598526158473635329847641551426365727097942867392234458820591064195931001226955194416569044242553703163196246644862090245522005737388759687509563281539499205647158841261726074396459531935605355285826201529609035998891068542533292497168668427500952665831625533146041968840924617756402524805669516362247749823034395453572590156760720093674752384000642611814616167837157732181209540529628575793446347306002919492377372244425246332188767377559121635401031831274252877701479310686742397080043334818181230717467817295080573631390601713256402478806197132602124615125939633016225637697294737369831862578476522487831386425951343461266824120074590637682418471336312292891258248397874708183070990869422067038082739817156168071097603560097846230344555444425622642805998134028109648278502816529177532661942397847196467749736812627977685432537603417645144379491934157139053574504225312932227638659884281506920746652503256698253907156084374416992566961823539401875572757305678516740662487006707552290228497594217686062018557690186090782313657083884263261698412797166651282187596867765524494670904414749998785433414555029254382077286508549275305241208973528739506406865151890001389774463999053940822336224483851605790207061802827422443366183192931290049274740876951069763513171173855697463755963841898253861278976196897223681703047964956792379725110013642372214702429820620042912104673703290155303949595694640154537460705110290788074346034677357232255748826586305925744432364211583787429876857350417846090002192553947470878365334783052908879928395254145523458070134230962207378181079308147762658117621659380353735909451220962795166680863536867942189965346301514950371490480299617688262399816063832339149156443504652182227671146788403620522582905612316669181512571112969363357343260203531886641693773574554040775185048883376571773664420732451942012009453350288006281784133450318042610381909280273479416663529186383932826267289053717134244608881452572623430407881899914779357798906666881485717534927024960503799636407364011049997482142589509969031426885523233672195278749811986873369102655963316795151865323318770523077516313601100298157982731845479343798472382972327455887510333859052127027372821443544783601392318642912354491201098568144129469796006449310625986633600592325022028661496204806724728581164990869836152099104042541665911222220285162864023316146992716322087032559059188810228276414922694240773242701009831953065741815913358100481674190095003316725366804807019637672266181036017538483319973420967882948477875569892009448311022076122200437341003963086550276474872177225746925474641320118846468298787678745282711665930594135136075476136179879266352679331388487551627870253731649083091195844524415301424045871448013828894467405683257405060441285016197265063287211427429072546667468519741534245480851228164908529281128800019875419444460478391666190687784311601193226049013697466508056009215135474773802188564827763236713458673535818189745244952863469336529958626097771745572448549955945646589431106238398363363396765353320344783111067044360495284583705311844155591537017681749799378048106377792980551363377815609762863473828788175069584926315310730315114146883955861208846404961968892278002930860857867076374212984539342740538928136166296174954644394766466890054517104795605704929409227424016195810011432913623334424027087773672493756729301522007971857010631113195245206795139419563261916023397658125997264378451864652846563042071289748323124379839761697968809798685931494164178440909544752824047645073631416892748041838592891712982248527688504381808670250487348972976137857544975601999385674380959297150649086463588779111236258665248645687947565405563757796023976766214636122866525200215302734103104400641655462555703956508577820521901059740000951319895037310913477148118250407076362070249158857025886434758081935999001352604160565944766734708962535679381760741915280788561428005561512530299289060413639161734530726966565584436902265214368028589145074886812263473571367608334758691517804976299177086975755205812155569306554381798939925317548157703116792077848773091661970032105203311577015012938214022744691197460290810912829243284426536017801989635800613932347651081176562442422820422976257059003340265262155053841824672560104375248819721256370168371560572721859282933715956479428323641215745188172136174282708502175605965163850899302273754778188781595385157015548682590139980100947228213091011379884412848019474620052909062342980472692861404278656967070283038546579087241278909503066820863001394257055322860035266937232330295231108820968488604594009275309299258431939556408497384800583312208874207092128728119965076731541897131048908731136084931789509153840935376076228875516957604243897317870787263045536164753384592002120412215850300564551144383188571224359499379019916316557961640867519681441554941812837453439760346045735450432497301688072165627809626664667830639038364323239816345747549225740263738685222586908511701365282906751051466464472707962160813356160602661855709672787894091556318731139048218683186425169004714879135720537020304928181455213237871958307308694377208899681223178087284893909490214720297300715675147786340304656362356050283060241038500490524301831389698554848504371659869221864853883240217932264965165185449747792456552280870809073422554097376393494348003100912391216800138990756400761511641304706875666568619562000739322997956047688560850385920738102148825509280269139335908003181219261435046783518680616597147477714224040162970003879267073219302979530387505822904151687497827025948900386039327710087470988685022155629444476282539796284714809114080811925317827243971691267278676166257536746340375676517501223771604586759990226356781282967077451372802092327904382278522106917219637335368664361118177676534534561314534143073611711180601703646786136811388489935685525142563926125138841469344323468780319863187333809255601150536579624755301224012539174730882134985522277532737843675966110842006149397657001169651185743481992715622540260010548626393532503684059799481484632824606361457020565371244565417922637360763915101377313615360817059805442050287693851335704913027674667802367347814750290247815287579879378701928839727767865049603688460070572556112398527259990994167277823734239120223492596865724566186863463149741552945606189112200404483935230484524947475897228949760068002709120107721387873133451036782057311823435089424463188140215983154144572027584802520288508142874908497681896657901092970811042293177499578957619714107254237221484902511030349096083654611157743097350822116584568851681627353052884657127137125408604259805362562389457309454894958608861953945719234002365632662544022081668442739018935150218193886365508809395928298401596266505504129882147046264279986689305497929398387022251270639047604915422674586750704681793240150477333638146916885876689667818551029744899228443398679946259945090234347510046752562549187393313075838871862636202066027723659532250986084317922468703973933624606297397955094264181870589397728425312275128220408467659612049123376175115895466135293581032538331779643617305941082782748877334650910521902154512520575791762000282551782162594590259850003924206725680724669065181711850980086411698519274677267318335436575927381633578778433331919134823071817392212922100569587517897278342514618975309173600471886376257920948417505965581580874486723954558646286271951033876856538314164880248010798004720795460204698196346520035101844642849192538554454297935244523005550543773228262108348262630410740141525300095349354846952856583663489386643393203460100018771109271420288854464460866950051078896354025579043832750357709919693812744949141591578166315089417232512821374059052996393385563276466861600709245294299368852500892097878541866443103002655405608602542249063129174222657774993121627584610170948374184258432054272688873829346585084213131550903122342583677679292054479703509562262898757256972987979742919974660379844076578681351289942207149323016998527864319982437691917148453104641498933692220794239583427896486062620209873680081086077553041243207605222823360048190909179391290388317293285213199118340793943487774004824415909257924102617340152489144589151106447941572801777003883805142252343258501092828419317302315881169591389013873486435473916760210370882163188856096880480005554085993424803545325135186248394863358129649830953874297488008922517405266248734071213987242453605863613671222919271627690602405259085030106650609989869387507956856535352890074103219509589114268329841801770718913285200090815015060754032921715825754248488126248388998754361573724053809881038502929095416395925468274306441165803233363577364198769567050964859229750250233006832152435986414996076269472188425886840957471306066361652014830049051817949555006612939842642702937357226182373668996644817337986396543798080544573188439252143150370411378754095880164981202249932273636964069983108906813997931669762320411517384895124087484634842765151392743023267285163631349777043891919352466407763441819197827473631382695525555561017826551464466600804002826845819291693252054917269266571667532091946710733124533333539347362516363015734375104712629989260857860868655827852863255399510854961814744895189773360150605481093731262061909711171314183461370339401050990299587475249257330316009192866559598109171813436186985940927228215236779001750909599530199167186626357149837127468046041036777479002120743979406624323311146291438179739880389336593970694613120945352556284383046197312955757321930520877526730803607745558353071698289307798475909075130610458138519270354258089206565213575023235614505441785832409318060643177767444360760079655880669579100779045809506352457421752937399586149894579335182982732298822107779431972044078519192002408425708169728425924338211564433143675905402393235061223951371315834418717582252945890906761124677504108237157849926251246678928422179410061997974095300984165180523107231281993036961385478584822318310649546874580023170024986524864915424121860700462099884286048780802167803367528322312666990843256270925285664704352491394915024850490115555842279843278539870543415927662906450116129325802388320375671393610800876294579180075523771625862333699593374754601380773616853425803619005426563159729032024300739703221010654151256904905491324975014046391376325623123196216908746970269436689077622051067424020634860122338138218120625426812844962255007592995247489667228017836332589715394564994531305382956458008567241364479456296861481420139801466857647024547000171376054097340503830719910796338945824129094520076617023712668273801037931956803504747771332422076789425688880420690139142447286423871432134165383432095276485027341498980135091552815612272894036714438127377373940542469458506936908919183911414459960094211539114034895789609762305720084676975260897030642316829748372952861886239413145597191188976152507924649083570637132319619719597730232806656806789712788919850537705791917802375276256111156158886148405393821918425480137491015714994309733813017191072773661511431542023992864851446805622233746991675075186531041955575065152382897626240663213627877818208317962207272982432560658194001634044826297756576311151002336316355202865355853405783218007132675461961401028716321159853786867069663881683567608034278082435487598123546912101057916362833820836135916526032719746600034026821395182224435935424037673366210572842920568382250702968065273593260048210050240942405444424145021797206440795901244190844367462489097204525078928575883044608182393169950521792895373917413838379985451069243681922377172632831543167237709064466420354052019715420723131717853875267468597787377981427858563214875701164908746552873266026379075440673032527875449959913252982444547848031205129450951576455246423530659996202400990463499620241768020727550835832244160921796217461016643297512621457719717245226036938687384252949386617971112825193939182763818753151755927239354118554554701265614748899920362888922627993750778968942546553478514524807896701422486255436537189508312993363071775997999406439333846789535097686737972678888982666136289718209125823913492441006323322607733702364087204669364355920438920626771476949538781074867083730248520895378612277669246571975927733710415635919489390298445062923777655108269103952573362071847309136087032153618904847910898401761589097265825958648103543963626418077696765382175694805521546882909875508320693933879103202950821832128757227178294298342401676747198281622896267168880562333531328154197124948773864528736086932616697894036998058534583378414579959045609153601647797768973330773471465157115902026332126805101188549305061838082785972344240456065726634404445624150505044085947818197011212043146961241748428442626087217772347852509045316919802835434288154119197575057309735168443057358317438180733447269079787117997916917968752303443208060704893634322948384152969527351547736847897367459455960714597664797645841326243874468939493210502835733645134145235385462983564156144435455200179220247387247286968069739751686981714361974423127861547991542467976683455116256688638005758167469152907028625841548301341100407458670507529004907119160254068651878766363218060680772471406325252438615633665482985742336189451283894333022108554509601417825868496146627697393133478105236323334219603211483387721532194126335457441723463372468054997391401198549235738148028674748933672453796915485834734518511427258337299407480845863638544396816570938503909124373068346701863757242550395393593132049041665468178355818234835751573550721548323946882628563611816726561524356857589519632490833559354077716369745186110388538139954128763073922402499520986409067242748889138921164234437181653346958028268163561733403125082164463616180366032524775052400491122767222390011355802667749931004334405137421263695503035803423692686513627015894881971450162304837104317031711818962541084699607170339920075857622942662828019388489302469493969630077539990022536833716815414717371770211839405952735828397710078900965003377872153618713794940534166699795755415259276722653737239205203667654535207833190464990578908113798942465395895242546198882839234583538392397594849886338636052270494956738105341515136352567840789619839214653421911947171321993101034667188311884699481619257181446083319695754155633414386450976921794908549198835202529691188317718251657647180196712597143787136455082757365930395144467113039538527495631619981406516890119734768987399971696022818816159684532746239862053038221148987267563799883501499922696142968188648268891186001574177548372163863346441293524791561423033028924930212704065049024724525755330616893823658768075413440535302719879397283306847926989860712622096805925997256064142609121677448525326088516147667268116916963196437772207291519816009949430673953826289255606532755417487638662472426677534373983469371188626034534789743783688934479034991755853482859421384057706955012830715916599179230686085939599655332453114980828902573726370199738594558912256620999715178686919414538407016087991090036195954230382081901043059939837694466923643153796890816763446861372433949647776678732301794564825060559855132322426439368881448341088535117864787333855797504144646234556686742584518438793362448542643364474814903702201500840818362513073817901324485800064839551076226059837825747149578024447788128082204988124735349290126096154027552522745309177007842368597161632549464221879237147337551994256770176368086145351816707919811251902929093700292206745022564080991896421279068410641473048279919032518078176851195690197002890091845526374430032910626059855586630631768293316534549099015302938110009985633201289473525243869661563695327619003213963698771831769976498945776100041646797747440421334414195837052993844635638237441517093463804361986036625143823167614511509642264486489935750624321804720996900353625236404272666889339976202127851459720592373267563189022109620739529820526436245112049625334966127909557880883061730571125093699285851691287776775632286427714132245259356831070298622229748945462756357941142900347812184634802022113712579101239094605541188727463709186995749655148626169336620473117530360544066776334827817749910712442167381155255154183712705426644198535819830389702552663501926374953067277773450660459355399066759090396440097733102806918850431567996164517355163893523215833169245312859340392339520252366429106020650093576958740983313717901170678188785522298431097443951059960906613299843837820495502246811515446000394781867308978901464827361635300580237395909861305680634635157628349591586009485027453156588614005139663321244721737719307982333879700910722062334769639905052899758650348924012771298427037761829574372368089452028125293260815074424692642151782503889466232173798770272145173277023307304486067636752237904537080955366231371365050393336593327119537126863211738886588646895223470792943765961825511519120234958170741883738443160400247923179821387366676745173956465907456987299311134624237233832419393723795030118618965937416307712837014158407527437120635308571917261566799653745325429293827745551651238747550890702172621519523077595741563403663920115751592940517326578566119050558112817890933742500224734399045604439379684301380034347571138509501355840221605383221211787766329928022295994370046747850478601113468813910318707588218967827758209001500475971843438651082192490660804511688443357846078855592559512469348621199050851322846660622511149715114822387470752110380411109773782414117889533349427726842122546136321895633966152786124844791345410859918702337294939865679303631713986268320842833070533025705157596954396443441409780019143452457444430498586480360554183508219894022783823968447241202744493792296327328680183977635968019155462029087315909783824482758394905357300719407685674754298026894674965958069884740134815295344383336510503265546618035158888124273756550289665162956959444702315118887138569749960419935362461621277234734487328893065816618845643250327281467035312758703145912794988997617712674955303284713378677768307886237019651305904932320104700337707843185525300651477245180143137533169540991146681360061083151051619606196643940820975078114776706569990936979146833402930321789727880936779225422811784113490464550203424578917832696791334063384708060064003761929397489843486026485253936098381689347930881558918551684232685057023018090170682745407102202280391542860528664832521099687618233819854330325544022620559797645805747245675867417836497325483112336110546711213539677450022749304459488677568252868937252637251850414653747147303280346407932945174568487518531029603437519002165615224213867536581135183850909199615761937851130318300388939594533602320552522930325201016212341405656210762967376570784063999610085006797288212393033000109284351451698540860041010037607460473336072245106407619624900461185281235277295219757270551579847299544497010517892040932314235304820463551630981982832339539174287649029500158001923140509841219935084669185205234089005819868514056823826528689284994085572091651870409157381147896245836165167854065922674607351171422290268089486017512083197208423690052846651679401355914200398989792436036546309241903872620877200538598927407637267806123541170296629432261893694273947053659141933373324512696879151962070377430633477574982593727559687211532698918856695392535462375724534356133368011485346740684649530409489315757036169102096848237066069670429643494014357563185266015688179154142640102363207970321022868903558807074514821575191401771783172614172693049123013485170760919147229330055479709137731075609395624304008215009847614065847333288576370446417690348389192003991004053451616461460176733585412466564059857551636449698199579080188207074483936452816422007841411505032331716534650940881059003557768509867962255718518242360812023995018432888815002787729259453369942286926175602027190935197646250993897677174830171100047083574823118828589373754457289336229515572948999834326770261116725266336062412227319774137054103055944634443232027784219204854513121695961106390933453787396160146519295127144238298230594650343460824068775577739811422275714624803467189813748881808860019169555807700098623607185239951548974993135422932901492877840528745565345023335974002350103419695649698233452300715506393801391646485865190051895039375823459609452655169278217281434540495960915403455492481886097682502122624135963090997716672465914645638171525761280868206547464518405243336273367453400220921602797334069922564519403211569685370263804757012472665905350761159551749210442132381904411372202186678945803240207830107452995742490527899055138854809997138779624022683019013934214713246570308245673494687289473079074579215356737964015583447408476555213596734337582872680728152637356185591605645729122196127498588514744985657449123528090003387584693708279796216072667166709979350998850534985803371808731125776806371485537873880404869010173448489375303769224355405350722027120017595653896559367632522781238387844825313223154659318346542255672454334648362809548395211478069249292170882339398202370256363481383405894733515129495126015263578259660002671565789979061560601610435857011149956832742371961149848052524079471509060448523105866590880261672971866869662792020696290159021690595554015331380260757025475713361011116064653359275767223741904226173756895298586624901911716128810980557957510672303249965281680417072321308681055985305573795645386786895129905846557754200877801468520426660703952605183621978488239158760947780847779031560076471742200440910237588452977915865886508029312082462982219636639099126061915759907315793657292339039906728502257194100863719704420916246674957907517691048279089320810269803588654720204650756166768134511687577266864345726836308636862542413662829452134589219553748909755273569493220394530878155961478624578704329408582106290311957026829422668139787256976856366506069333089453800239434462408671945423994904423121747121565800905525001742579573517249007993384009608707126496957207115467012288767503662688335097688786325419564136817300872547270858801348126165923470869321007751851703639786760314642283270107314563629577936527883970376138917296320930948499312045809172419163450167061590007216428307298306033463324410241571138960436391232697321904111092149445455354351721228868290069601753779037047688132050143112134488384368373812015865571300029841250369559911072553724152671872496313845928749428796065619601421474601908567735513186493141947649922695583326469022236992069958061617612088628143188869559198465748247288479576186843403511680007065361992128498207918489721244242184176521115598758865794245675521767519265065580313073766402996307451794090498088992392008185618045009973391028242001994257701077778640508132195754031010172478243753224707689273377647306763438204321816623973636176343849356275065514058182858262088023370311096761255771769816959532663171955232065339394133150775280336932124252227801061270660986172149348051029744320707817336321810625171974303865468080573275587220176869292710450548225537239610776540465298311662937208563593006047246126113228311158156123478031383804707670504637794362018183495820883918580001841120215567915658532409993746017543279218952384286325620029401323443061829238916786793576137498006007410497978656222229831483831743386206244573462928730514139091405013039744651277381114630100611709175669667509960356646699325295944749124851075745917642630473880153391980905306428959483775413960660943471735972249677729937055300908344810246097263724278853880369960450488978977040225105022046091522994515041604050647518386985068096012491671027116743330042707075768199434164766097731010388013194354480446139351181431710130535377412119861248419942915248979455170453830647854531495884052458399062724017135856328550522423667515417097972945641499328764092442837693696725263216258809774134528746421937216335895196852376494999517813338287171233451577344381562799270148346882901144100029817296807359277133456812045330518174355394593672349351586813837626719240217921465779825357387420194050322009996625502276786878578443646393382902601166206640245091260633591432274412654773433245598071718862713007253430374279538417502052965805380497511976572674406877650958474048127393120654181513047802926727480916951603610802201524902195992047901401025718427687345137559760094635214042296873959427583006593538644690970870297166789833924543880784287611035618984295727904759167324624428612214179884457831194521973650221106119567707550629909668092881301662528445281291178033313866458300637593499008326168002314146010392776539413536363590459597154139888749286314405652774541654097325823900948147124353350602195214880803182009422218245192925977679964621617567653517542161837583234408704923039240086536867211816600672990586052538751981477463288123064422954689547231490982781746443539774145680041860747982423426148620718226368745051975482912276384744560672396222222328300228600199883471271092776508663165915215493111744942055416907791726658282398576860350240671517408949980618028495545422251442895083919007339995991061098081764204098547330074155620562431207086839924996806984052627859448156362539305371884272795904436116348484083259962710812811267957365369696674037058320696972803797139876489349716903372479838874977356768259196075261126692326580441097553223650454926334457145784175073661847843132947637361583631258442638626658598002782308002584007826855648694382489724547369407478575856367876425375862779757042250758101267227405605187812294234511653845927138563438219061871731385936053079491937922828673844579722899311381930540521393589428210403620523886871566709571638100481537464351820360368081010060532735737559869001353477014930573085543870597252966867442820555331576465804189764788180919658737667390867904068529424041844841345829603958936484253207561828039907445073503134626530561140676129012128963433092223179159750474639112797269399643917257761868017888947644487961179370636511747149005249007688206218807537229500071089922178016986870322938144218559317796357582341654236129502337082864896508657020435363993621203196548201022270221807940658099414329458925172457863538554074120187146754065796029399543582007392160385229699991796979015277309109401006885630654699696848148391494583355727764918183867375610684769852939694990550123599076017748353534468059215069606384190513750606073714240769916275679039244516997963899263804349881940484183158111634624101529843220632596028423435741510182935714877099790634453559409604414956345398197110206388299985537685750852670104703998674468127549646240585318723705651927233837824533301580689647640689516897374421048390827598480895753009818229409777830949105784898953096762599608263727488161191664274327459916578951566063839605051177003395076463227464033137031053768031129719419848965885912631936888264546291049322930391727041180526548772877520978673201625184897318770346603896044584763385029253081011954202950357775058538322082434933285273161691575807414869583356959884154054905742973133673385020994268479190006106073584251325421652069858464925919467004519900324497008013413934989932649107299609384163508300110943492172753996270669796127592303292399153900037465837911193235738009761216336815828902964487661130146971029248693662708659389571671255197067665133723691081633221607632073556242085379406013718817152295404672117024829545072210507460596717254858410000229333787447058946921424247033623527417097536883530614845410826519002885679363020352293880015119593366909319833257105842881059968582421528554546044564179185497473796515065785808298964614654578218580580264039209108558492310830767700600668687761058522973964427655464069184728762396366828024235910415816522607430851794009139904250298798642276036912648789630766035646947056445491114183982140302834646199401267457723262676934851914937937658440185634955382558961196281467543708856782147813131920058229128162420153586369196310110251439249062501929118240954129969322365031450652434253974152882027469493331135287480564696895743725371395887519599099104009971997770394770013143438275881605596139860633847432391213413813646719845765368368384228070221524115164893497334452951259979377676286931458340100358997442014611717379582769597452495276102607940746597701526469602917704342764557465801705695808420796650414372090787907866977213630299226961391212888075427501359282815036914773338656009178873380163831569195217521105846886668900443341799138078170642449564477225120672123631337048066593632019125149665965597790959419346587839875029565459124602536831081482403679452703364921462999013570260497776560649647724790949404016267251723775796746235110893693666141194085911860749558936660154781091826897749758044105155126015891638278677495146161430096961252556139080827205999691610222793412091702898600896121849226466450575739255867801828554514983292197944651131330757769537801582936882539844152851571323854489441078998855649208222251257041151421846668815192688486316857455024616348512245814742280825384013066737073084826598055823438605002040015241738925110033092073396391617564249846236928522470902472664010985893910774347722646872940650272391384973168042369385874540843971693126656628961599228524925156945953641707244115015692535577763839590307306956848086647894510826110773338805221338510298010806785908684630500272433307712426310512897916842312648105029370683809509524835144330041557779923776275691444067370288217630068110447454555383389678406036155000409259390262592531827184167499841363204345923322330512077693371964539858503487326950484564087186282388416775075935477729908296299619354371363561418693134180146315497887448732125215638840318150924134096848582445777287405797029326560199557127978278931007445025078418683026457499662950990194212851804879636254609369180689773001196871479815826124940714386910267796234800144996328880809370366629585193266968598356523793079765487061389118284374504831742515945086095350811828361252321198840250124500113985487677067305679267217651748396087998752611726005781652114886566299957215691356047388135088533964710761753366874512721218365664749329354644232071005492456257901024314939693437210254197847224647597926191533578690785554974545557323002537112741880238241684813554444531447839675398971138684213715784669969713169783112859095712733086920758033945665901323654641989568888205005885552466497424406207992606651193855776010927345152101646726172536725634096504223327708010374648913925045052373473596470099268264383472970541604690005730771334299756700056904935057398612414348188729895997717448132803397752073777973093460923344977507422158165124668443894233359404951730090730963559452469307595599436101976851411758932391084411403535798768582998581184670370190907503470845655530912466839113478229880688477417782146993164666042523196005154794807785242269223412873935793614743057771758055799936135037058258324734566798737880079295763747260915955183949363840042302179112041426529106504900713997861148534854241681042267453774789062788526233264285852315872308834687647968405653124893622189904006690922321371365125667577144316860119339861363132926406986406392149965810271327689730986712250053829963504088925908931498970513252786751609056807933547198360217470521907948954381834031826254987539421034014043498767734409714103564735868931288902482488060401039759695783734843079321385247411458201078135104208129717176374683140286784957947065763957562767260917651263008179888019438931917233521812132198295070592915572129253379895705687586243369310867608445239066726878944377067658205517510160797048998865272737300547819267470814410506463357754288350543763004943019680698125235375051656453833423876958483955306285627816482398327236907115909306055857296580926196110791471721577317084977922672667779225788477232993606467632334681544509398103354647177879675644523752060618368377115812101388858225233310684195245242922672217006316617500037406454721844639901211845907810825475300823757294283810476418158044772306757062033073024803921175288585391048517115581580159040244304083278200459305588897569370933293350240296704589557475260255514301971847646761592814396641039919167662434266973164862914276664414032453322353999203514455849572207065236957769674396778494839302961322175603433715806524624906253637963344822623997373514547956992434445811335959488504799333143845979779070765164137335294528988585888602697844922008063987624301120488855768257976091938992626298479171142315075650697350292823986665874878308492715056704911653750455234922060298149815976803851690699275845308120489488183555963069897178399952476325291795076331650559248962204231275393562077831893850820197464480631746690377539512255253849570552089648175893882354555511331452621292041066897829735182967909227626697279941791116508431919787123936736179097951647296919293982690609168666401111964816622313102879872517165613891418889289541364859230366973621687806607530471637748693651071027110451773201878265373200032745824743736141708766335829499457831978439027747494445077132968647375724026103894589531445432532804206718341506397923827462581864335212092742356693044524810558697026871756290669964975260866179469077574722128434666498519598574448641999804477846272394261157167005315412244099721051154733236183987071562247345698481205894097475189766439123215430091394414253758157475137132863959622256607013219464130274154372458587398417601314907171306974377447953595848457415034695192564017239834301997140325191549902884345140358475446919788353370207412069547553955692611688644712339138781859415974958132148283942775659497342349843952694717647962719079829504130228244335025318026244947391065308508299143001038238100704600249182008367657263460882640528588966688446300328252737563415051075422227011865652345428200483791636986544505643004519663450984648251145275343465181864951783695848414585814000663372999608153831124461518745425187284878514770097993151567210958786368092982360686957224588252765469884268657234884532047999611476772188628122351407471352156640063870637631589989699379147443428487428146180680961937927233211745534105496565902532511877139469051130072347327533939921135148258817984226658826823170927129093050694875350513368636692670056737019064146640796406298034834766709340765375974183247828345130748582534353487965008115124861872643776975428848997888783719977266631175313288378057431732834637921192859260690350705584049741061973579799262042042949173392665150862589876512663904853928495848954260844232574208196040886387177808417877446051058553390653703551279279475423333317272684652893157961650705794604811971707230495366260471723264633591411775283787405951935848809344408354600064704127169823996857721691598865862493007918835459747774604114046658528987797166065147537670566906655701341723826676583118510961116949764745525952251931535165561924310098892168690706322706587640167134153650478626626615130771077273082836350864726731025972152087055964765660378419223579822799872888341815711664371107879533493298312491895301589118704920727054829015038362214998041980048271232019702955373716502292013526283813279530834822741284154633890630842606055939479844122831008902944418121748697346133858377517672512216225038845588045615895322092101985207882829995960475577524266854062332610932614978317980038094343650326446441983697616763751009677150167829468765263306654648206027883264489805210755266916383207419786388819549290495395714418196454451279511642377657783555199376727919688499310166149407540326942236126575377018771298501465683765760586209992544413702562630506436540864065347018404571944431829203200910599490761592117908907405209599564390569552909317975776035110363242575083677848787777937041695840936349914610104382215097899697581391395498562695281925779870727238540495934839190730451438279833088729579243697326031542287525356865279349518868024820328243787867162420161441481258667074644811519305333548131444132536172521989948633172452876679545690255461685406129613379938034235359918919097636155374804273230993367105366732948063476787312464320719517485214166702092239542475929771898859995328038619136685630885492081310554995042211123368295665910081382656543272298663814042473602591056824738906012071207578275790821791052901359718728994712078104194608915418864278136629119298695951766478829785729923370071011604501812971093195112163857022135218801035463665594718080396536914921177473309869678516346334466781487759402280725806053180673718694341638738322095260907007150066435048317711338977483254921873391308068031157107297022144352785282703208914994109556032983863616670334346881337560571473724009049235343582280012034329705702406912935245859559526280503811451547425709803645645700504013653892389304200644591248239710462127694582204783440435335756995571479291049704776028987653716795156682235008381133325813635245441887408098626773365083639285386546422605417545606301894173106187886292521264615310136694056465899243506511516909803842115179879443989817376293332391432535717414623939516481172450875530313693162916993759694802662049222870627534867744457081015585226922806306238863350824081229281024146601062425361998965692747525729515487469380128523366263223739815405381384745376425942515174130794865507581607440691455747376006328103644926090818542654303412868678078719803945064312153625552023779634813630764291738597853653414591239764304976136310933316653913862481896475085174545756280287281491913224775741200301561997658416177618804604289094408913932962648010314545466064047990938625123406035012895345749955524705320920777221673182951727568394986722579361441908713669636904205674222843432409024066792416329236289612364832352977343722632884365756983893785256597783110368569440064166358746028993164886622359820096547721496669684673309375245960871453834101492726817282513770729510487564678700117450470215350765272199741904939868213069930097816350830392718740335648505843331579372870377458122848098528179355527365882875949183677767939797806997473676630335353018294432317660960893048026576483330627687903156008551077500731558114578885688466294845053754400418878893939815738223855928424216674775758703603305216813462667337748048715329155969503311212830700983690554681859339892939927167542988258474698326059746771759813506177641372582484655452584703647230957563068170360777147064658785052946940666983081224776789526535464864928478493598415757598638432703000183808720459779146071256561983282071978961921484981450409846802060558912279223010569575168294424193941044391105389102837684214612655437677681037082007876728119142247284432753124202415355902725215511403602787868624531268433173054709289983892198449354607917825848544036226297216754198570921796800318003840660358763071398911265435467886848092661778267406684134896944519616147449673983360427280535141593809984099177906191849983105053419506592249493151009201408307205339454219802437134677255939474864626286579700826710612064550971223882706629301750416445365187512828773885334446529327665019689479952572509358612780722241014474959283581916952952223335728424044498142004394239989714334392566372577220362838716919492605189408504578258562146966121420168006219195923581656136470592615968826640065256278101105671175187012414450017131427731562444387942784515380251793133615875565956337005584145257434234534598905479404028169620235613336758419792870050990225599123533671190550085789069711956665468353830195055523207455613183673525219725576241247615353677761169566721088439646093007193325037363193792977371419768553513581168793519768583235955208842721365866439808954127106963037816763508990902296344569631873930094055197019414691663857597029447049331528667019000705186745716882275351734256499140781351304977752711760986523682585041022261401042222792882510379033440228848303069234731626796458489001207823467417997758384985641658163727706587043693672603219991730461501735517349049741669061832314073115733712282701096720922881956120579068497066883151880731223429149153122538229879310769217649118106741621398375451612178612853610935762390358752564752788948329634317434807261041505104372717128373476192256938283161124592313046986594583099387185469699996709160027768802551381987865989889431982342105293118216612517832398954920012552353489265890205583856591343173908907759598710075978583197408872924027469076367958494213822234590101180960275922979409482120323439881936520757057273782028491804110863819956975888122250776972848008849955500695280271422199856454307863177894530058750237304211094999709025899013703369782621693318439777219274153391907977066371439113463774166214959927837179131788713718646292629964349293642128477220366176590375821549170104573821503383459402778205139955956093479461224811578169367551265206319158941998797252926839545583825490109515193467300592370761092240030923002174876107361330712322693474834783975007702273534485818359214042892122750621315486220029580073666409610201956198037678881536715498841937244908832275945982297262728386528963981121831859899086756042088572958905736708785554100967439636065363150633345219034816299990414382253808825019950413266333220932728003364585815231784463883002914560669700465845867807063150569910755800297092193341598999461737759746666457279712867112387791463167427007421077157925239456451908546094988223677121058700056470719383240979916732737638051071174194642800503599040342971189381654494877016956677925441292796683880348534841444192835777895454235318918147241394341727081139470915622678141401929525006555636404410466095223021587388087812648383363538559228107173383287674890106123296408524135433215765527020023107520440146736475815279468228755971763250686380909623405027204388879571564483979641436409893411406671731885966304340296702585539308620543875872609943924836705564971314792866970634382349732560585526101581896248911410253932366235342974796821128264517942408832584348443294514362923577284105218574058118601032575950124605259832034538601536861018660859823134951340840511007487670516901423340186332769356273415173342345591991570392742917402781735399422345870857062105102686737496515758219798808205829439865465134029534467922990779313182017153709928184995795086110800079017184779469398971467321845929052786346350610873285874830607773346651728485130198390507302128631130594068141494673390636146405441248123422545553384929745994736656494796326801817160271868672628103332302769249208349000601720615273863278965839183660603345215231826419189272306130055773329207801495492178962370951952656826921358632208744005388652514721800761274472176562695666439876878383074574620395169862366660215084076947366921620537686942614412570310154884867137830656524682786569435819371161295444272917888124814049527286107334209763496988046351758335066944934666190947561059547921587178958137399962791660005443365015524111846636101145126498295991375208590855927197673800202691612521224843182353013358490089818668796100413915605967291728166927540166613323773041045888474691950435751594379696684640561076866301507064522328768911427828475582834623432277348721216095228134928185836012701604298323267072392506057759113346805166845310965226588056823741075209317144276991193880714050579523198163070059380661370641623069869188347162949916510093978662557970200605091892599040045133108144923635307637895121826192066225348013951301380955467951805983472602150407584829579618735477444388466866760536920426104684857880065177018754103874741341497004003009434779758762648033796705122335916010435222390854563398252462194509385324423070786756487786842068881805968086226038128893417354756918527325236765330403091404553328352576871558503191561399929511566827080989511913649091266754983218123908409521284966387407357341878980369448209097459085413782734830105621060539822026385555766079063853543046623615498480711789189782811225688627343133455373366234026043301467441176126463055374575742728864221727700090324164961921618893582462993975860900464199602927315359718032510053272733670747473220089495851745765523575903557698810860666445939620748788629501164954742739588067365612305291853658788768029703855061399161617530620278508793809467681571600855548103556028091593756579206472570030931205053054092728093838858132737456055978871239064426943676920984243499360097549722480293156722140518039469800775933462223736916503588543391517765814061933789149313616682986997289514217854366941423106849631091245683021358531516251937510372743807526702695970046264824716991588882547164949699604178981589352206106890462238215427066192421501144046565258458773942567316366085393608928738783120540069037385533686125198336832833044323807454664299183974358048847298647034743043148187077983176095334291092948665969460694741301357572055690699271885328185798555526563497174247380519343497563042614019078775262490277524504581485671642493057679581132752920373305054983226180747760718214536950302459407247237341850802139997044073105488574603092677442758998010540247098644104191424865294862596724983766794664403179789745618401003360194336595934428999298405668874855613307306982634725503399613461795782275430647431459230839487507415707126275312838678669541852916098071701590802012872777619351159190517779225943050633831301294106821248810808591034982478310101847878468583334051098390089200700098601372744617074409087646425224461642890948247778549703439119591151819060884621569651790606743274028526818231571208828084136876301246897585483982727376661199519832335023883176920250878307435076707697660390107615236029865330696242249400232808026116555000818223846858327034011883150631853029700753875221352609688917803964862605386446051427807740683414229906204379037017177375044458862419491035293240333451233370617234465748531991473359634440677832134749828025011642954516453252366998024308907026989520735907505839165044426135086430057706802914480504549443964066740219255047767572101911957799514237490285428491762176404515227377554972344664799210539863092392430707051098382454942366027587077348749686148077132986222283624774398965787713525654770137223323124743972925641352079635310179850723605604678703534226198331390523495231572408012404809113614376830001251796670925087847791844291975447135132848707351781949756362727051064540830089892067911761636729510297072346403165744285182362536321593048798719037079906128552825165436475303738446790580431581570208103280939954750239594359299270723263396666362451227568945555649016130794100423721602975106121638026507588737630969782954588423809372516773724385380198894336400543277116702521243981768966214581741117678939098148745553868637429887207028983875909895028366501820251527933385804966390565932444223213788712301293173816054927233723299064685367135575452541435248144268628596185668769126587623985302277422779416057692825708739664447068602151976889147095620185271519080880916031251792937318693303180619790445386373724525223486485314088368148394414580449964060063807909458276066689522802439887184347453143687344338600591524983624713929698584224782492890455941875918915548061635191957785686878099082226459851951486421124055961992457583822030194333312546670722413155234303726280486170828050628888643794368167245290661067296661666718677163574269504556731450233641031818225285267952584140510531575117230615311539158839044325424802158854215570530500942448925112848908315607474804296271451238100935233512633547065614117076528657624010549635746677963090788367088424078182920487718973150756116797777105018118259405520404954985021148081303675042028207469633751617317713032129069616161474765183343634108518252610546858320278361258490032560889060010805151073369445486581691694813022087552044877469305337388130919184104531036026031347947874093372224685278712844805116727011208532403103389396800769700921043847311025732368693606230810837329482993269742129012241769606525846913340896933394371805893327789621661884393906388194904860683650353610891390348447606173015831158516617936005849918325262686307358006220311608395006751624184106607140450491641532088811162193749417262441162045600333033356770049679951379660327021422540641088193461820713207598554737117005378525180973086704771810874730299514780334928242775440409739427483837102504100081779582303201467932671033691613024614060979282446152259196710655192655573190910279267989428103854479886958723466812706937587771012602174899409915662835050233758405623825974286037874293345634433051626946629583139781135488908997474088354754098145464970713354093655801674965377014003557015906527796743652786393072408068158224877064529317296319289093954075624410440242928084960392141768143715155112694852861941635223174249521486757174684102112828772611917941752326628384123636199787213399280396946950859642135591761314857809323420790807287516305132784313088200994766194217538649644248220961692418092333964362761028485036694847361239014195934546042624193381791616097609429116083267366730134231468400451815776693735063468724192510903841767653676220013321976129982617100675066293629541231124612785192305419019423132549362924613814999795222958806807715711459724346492223149506450180565443778993305617160245420203178407996694376283529394305265275452819292936313171096488571470036110394280808394431598203323047403623822073048074895749928450514375879084885680728692267089380806300837075920904443005066500089272335129389006046943754881720124141890848616696776011792491479908450531059634125402835409708276101160780728181054495242967832228346111056392955113006910600532854789339080549321746846382971754846182616749479017836219238677717759719843345327819854709332036644766102052788707943696055550349082749113547284356729337393053386547762414942543841726723806176225335943597640461770204047641430155678002811076582266895462192833770464086000119556342827020744929655018835563993472910578620897653125164212082300672225546425121453214695679707078986367218142209279799005249912156583201471118735201240079876051962806506167329390234027596050511877778604742926975247346401159570683180951193575482153657428913562422057116937495686278927869552520745336832978290036123647930452999490633489009072820255719564977049917792080916152610989544987979484820455896560751133375869986915235155361625755905068075030646703222089684161165898399415929442850869028765614939230415289798550672302287498424771016103749514892339165154335025621427576138197793305891864876662597815446419934580478514687908637388519780129585756830215058395760694698836309805005377387684485438452383028316681060048823385357284724686764782907862801734644748427746319867169379910406111479628282009139963809522612240901177546444881776243676064896523307454957297844496199604459235280626300731467434746489670357470197674395541412735796815079147740379570299945019863395426407178533842151186202714156372482021708711072011575365220326714875769406202572893491855562252292369193855113323531573866131540969290164573266034112554380046687968682923992916623045346822477834807970443617884143671503719519896647305676044906389950865254899642709760692170500239576462103776978924168426662800596745742452503117670142498402777707292082590208866142142042977688869825280662765237151810325312615135525223170091044156221719214007556412080073361666218719325663129080918586051762031135685084818096674154786500468411887148738407583251593681072325346170594352895260858590803058886221376559490003850042163918074673291333310551794094882303926476180505950816447094418209566559170433714555632498512824850654785361502839423613128860616664866562013366075757243935162789302347212922541998907539898495511289294012117924195405111360802452618069678222324706433225473858529053920961552650420846309066813761415375503245093210269679369394520046414043114400581188852718230388608085482401335552567612884347793652408610596153488937653928611073596347860887382434501950945792264795652978158247580034807893590906869631793953931666290817442605733620620773089196916679173043914378965198705854781015157912127975426191648132622877962122843311760647426138082573602631159327806186964124948387835796127860086801785447654341573877201235133161067271315812103862420049142305817060401920945507769902838039114099826681479879860954842400900370195345052303541603926360237259163303151190826339022191937220641649362404465764378925511647233456775308795037619895041343982647750744163112350521770810251555893153555738082367909166565556288918195793227248764195567291701973424026754654224219086898831107246510110809514446928060971107360863200924494743335608974017249833857702993616131572743912237086245393784955460672291552890904898370960614166620836735849826442599556403735599564610704683964113629325362665847219809345333425879239771515347021598958529069434962912160248132381224675486613582435871218907802924219435395056105787029415227646002930341922756875889172519345668188802564331801004822144743926339353124655473964542549012236913795370232623034761062244621851967530005948159708022119525894381127963735069492145495212394200637158199104869741144386201076509918315264524938330723742758245087574452536681757185604463032855681301980890116803935887638540884783026804624731535921693956196740360633550146536612458076986333343741254061603188185547230395668688927292174977763367569395950379769378148599764280967827719175208317599061514092297184107037073859363311773333053842705753412656444158914434014086565799787097894145117647591811468473315090669620776177419692540185802798347182361642314399011119822434947029774483182906203720402325491008506403269408472915793930504674896864845217433635869432882448073634178894173270767005379203760064349749219696413207101443985503365245364708227154862556683436058529183280836310696298215753476218436976038952545123289883659769178425474450235284932756329584548128343469234531676420196748815169707041128092121948511661780339182466653787660114799971838763467669685249591383482464538231409796886255854360038025229334184979410394059822204836007538617364882966338981207439186566895162776750965788502909172536122271690697701263397518161089379459675563224031852608809997084072945614158517310679898956294957457365278808349423893308440308006044088936912827914686604710539704903907538495923320912463883055376327553970000429163878149077729066560608149739476855385737193226524491635918821236614382599392399826170114156617848739960231695373253020449011925897428744160139989926145230691767641287947372225831694873392545880551394349685112122080005031762403547527873331575948630019561851692628350974429078863287481364384754998501436208124964192207677177884779689158749405264875475401572702172733016473778649424588957606543853439782626402726730220079888660812020811728986473310951139547049285505772164892575514975939238415283173829185240364262514052797318485795390553874351894189691209475159999218047972689555462120530577819592629930714748528709546047141868754784622783775476480028456578745409392772173725777650952259243722141477552278085031372101088828281970981464814623390195336364832153806633079696883012531544433030766842988800256915370700256688452291361987194620428411178013842168913091824685467103532509549024545974602157017075259935240533307586754827299835283096579944022876145097741340393325032082401941313789453374367042049201630150518536044631485311366735959155769971205294862530908511037447583439620108967422417305050974789147191211240089269274339526680108328091770320388592730886966435154937340280662341389233297464683529269818232138666320566198693766587142499755057884481112377125183918729914503496467155414486175576504865729066877234728890312043983993138989381969178119637685246753202989440423306517411518682715264883781045213055895138723052595690873789937067645648206878890368157082303558369095751230482187426166122570815807685180097037944957503526675075250490253704494159769124699237966096712598709381847108421487356038595380415291457262083586631586033282579798415578629109840334961170483205658728046496510988646786632215347358712892164571674879785339495470024165207316471323472983943971414005465428745731678288061875551281008606775432372363803542870530800231279258965732032881172685690443328653941934173926150032832585600025271127321000601665441833761226923557492415249872869262669992223216534274432735171375887162724126739565649170650226994126989622676982254901049140519942491405822098330124810883691877315210786414771134689069108889569622288120575906104946233109769526792028959307638460755516701436212282521144536685970343965923144505087490761928422301502078620889919995081816950129035908249988691243794260173363589155366262468673929704739423351183441166546609671494682382224207188992481928532532649871075715329227613671370115132857433183341993260081129397940940445449627528907389582661643305802072606783371363912373769478408922719331420462336106870055794388454202051785673931664656608429541099451459047628372791964115558551847367156091645661522514955217013788529483766497222008569309956783167624638677532032733303053167368117802419822613556364531977605541979140738752775299895649205459611920996603381469764630950169933529515068019732170038948523199514793181307958699542563217217583291445814453552722113698489710442409299328823259269547833193960361026917583854309233243298075919204966821547536875661672036646096498020675214485228453530108852421623029965335595288608728292816752653772864510435872021487372719427881421718052399140540371769061329660312619879497110843201954437294034301767863181575335236327525818786209558555214411225619038979142879782641362797489825579345582342911079609033358417441203254203984282001973336981702776224548752092559200162677329762359017099570123759740023009488314469851304325132430502031120856046284143447181970769595375599484490171887742514939221462750175373881451572720046420594734042480766230234970476110553961530779442925791971192991081819060911132497882027415046065427818948667506172012307395220974549700653181734816890216330807720878081400361783493864692170810063236553624846378190857527937750194791345612994176494239497459047017116740884890135203462033598771169118869120075892480990594686076002052500433335783328610458766743350862653915457065294248229062749024434816194857072629068740970068344922985367751950766341220692016433615231574078010139219181000453939836871125644522644956716337892783124769107104805926210081291324894832304150316184790376915193980351997179672644893260765077474294819768155610554262786291421329689843542272874190829695493342676352294154608756965046890706187257014144086462060057668714104258604568680954902498440134212591435155300655344398260438839272880461475605372870425253360030761159349230572534692946970914883209765258367962904463126889845838431942206153476235902591900456403157187163073352314733128897310728319735732013900499302525203396314853399530668022345946118873989815605289430509151141778651190338710643644396474290793372742570084884165585220480671091816281501053552800998862445031313725926728200676118471835792111282248001270121625926990613156168239794732197955977139100976838205292080136663116392063933552480849730774447893813652048280538175462578069610863104277966764724709932484757435661532685546151414614416764884801539393989229023612753394663047184154842906163670862011866959441232926093471602242303007941865687464546214803004732136035657752893062672294384677096581507682922392186189227462123205641623431180599724615025431037893316668205968643190686699129008376837901000309803418170079639177264684261737939052970303245868012056977769577495206457926840369078505937404774208994952715447793046973507335345377277886069369677403155769499645121737184116258855227805222005776501659111773288774456298357155671002134743122185966125815002365801724037959539636213826053486870740408500422827424002751918462650647184529529591362559973302921315333772530296092835989333749233024318859365304339404660652022690961120824652593058467963297028407688339603013494529592402701333526996747674027609785625980912918711307082758801756150272807529809551996999766163987648145111393082242085920017948632261698751528212124461538893255372712378208970529998584314927654586506136397155007047087219150868572672194197736868205048477103472856707388741367563413056816403703688987886397915699861611206654038730977319355827975116082640751178604421086215449973532917441667663291677513732189469013447209130726766930151831022541940396842380722175410670450646575309271113539846103776137768380880110966077992984913374195436323671330804014253018181103975240300806922558167338615891172793436448422204825215891931413726856341791235834494925094234015690154579494629796585148175923892694708053742032681765119394243733138528545300535067141868243316385391512602486407656507394289878407822007679211382540624619608931370833260493882101760574176433658975992146854307616450424035716961401984546496390710259344549704205376116149154131733129954425866043425787527767467320928636319325425518886775032719697106976564283425696181869477532618021645326517096584557959356789453651792919353058745362215640601460724534367763860351477217326527810278653125596782804222084517027338646195433806266758945996266381704013643875589093577308579583643050863738085035884124305021772635506055200473411266735483358383951638550212072323690242488638888977732471987947127895381022943270222675772196065202507561197345150942842838144233735459750305560565475668104189334064737081859010364767456705463483723672666000388579478435875137872913009611363564160524900139286621349884338531581395242729066823353867356906788794235145971431473874018474327011541552055267204647280083293769449274596560672311213200314652097029959693741571598241014527290321736990256145206256135843123190886598974595411328660632093989730798752226377969426050349079588644620883435777992327343875864489471130265041904530659744621008801868960999916475785613487387108624007683188267680808998332436838904701772601081146508128928663077992504255579947121192516616168076665127823334557371964659597297486822197349930695450042254609476177993690152974053291990036031055415110802872322119826337641753091087573910633947345249991163579302188424671802458222261553499158044424382502258227071553152909251733689993689483313624361500287745275609297152990309737424676354268910199695019100503305080453649759362140582300760173578272570895221956337337299304463170382130003027778244401415624919941324675018811921157017921646456983049859682020711985034634322770321517768912734461638550996665301259172326005613208804342507853563325917283545864384290355921404494091465902232418831727053839879715974775199301676300078562151563788176862764328180184313365979988253795313222451094603001754306958942785124467417877004800555265866947836443205845040365014315400974953084070480887405615624322937440046861817780524838247539502471355820492452593980771862450781953435634746734067487792318752026263761864201841192499471646942473740159384679263157640715191797133235368016803285416711396736091932169609286437956444213676227964513493201005919363308352672885539482357031238027296869138657247135266642043402727109752340448223359683240285115830623065721710808222468755140018094031862332930440233941247321282117494027999662155819947775229032197329708275591711127438682641931523112177860263133047184209807384906505072370841063389349416128802644168955316844958570176991585361106877556319795017120531876619149901020911775622209459649393369574004874608168397907066334546939055122800364515462146512018754345810607735855534773061737899765000570776356425801207203679390501976391452493601510752489722597689318982336247500899854254196643758089444428141135106596701027608683984109394394905541991741577017346017332474211910660313748240617733802394105693116441106238385796387087640062588655502161097747313724830527350523590649779013569236126441836450157151598835608442726373759011952932948317605314845130135414702173119058660836067924216016107387496918591605850710217666380879813682582341432940662173459593654684010760360946898602663679871418737759872426837226560315301310261223367379102964922173349672117141232283627895367537525912365442548285763488673970154517523611875834618138252184727538537121690751707111713894663931834129461144202206373353474128695253636745916729732263898831879483246841752540449102340748932713906551945373778964310175883421166958322540855066802309514421464109500443935480740033955904294528239005854155118723012654265738527114314851612137907466465289098661666108066767123127596669885407563949418494731655352497697097984368248510009238572191236368789434293325548657704614105306023467848994451920762568087008141398321404749166421959289185893349634981506585707081630929284932102601693639832203830285258009766266139495231752697666119223587441158428613132145710447745631647095153655211935988874500936835565547021835718589802207163043690023764364045183396657987396326864992305489171558347080463479299223997881347676651927350465931412628190353001385712922542591514873457236076294969944266211699027475343459384558592444510461384176524608328736370687836604712301996584911179437022865017825056441545794680621614815078728006590567783809917798411994089852983074343541070870868359492229853004308378743807724854566667753440981177544635606772861519780113476087733167428964654464052626949074626699512845531959103564667132552845932997269139211740889198318932093707538281826036861727230359418030433387963853841792450264371370604611354597722676926828481674091291790555678364619312713960876863568813556328854466370230985154012303059592030298474727056967761266110893142264629430167895814741466957158828389622256732021113627528873541728019386490408920899409728265683650183071799653812938287040777814958352627671229804663122791757681916834326804480444034724639502586579869444011239357482496502138864160428004783667737749841023116717341405686229286602856194462299804565367786693225777216082569750314729426229040240225764769918598727100392029201712326722348797210017357330939765685654567090070589453529834564381856364174652110982416054121648656685124594109382765682087340890133004814093326548525479601460269305460553492328849836238149923113737735368387534842054524239547789677897272691644398862379455664077710755044653898477684124305987515445979358917842736449758695460333379958620526731969816326990129808132531099681029769650472792102668910750801108886510793816158996253102023035275296311926056457568524843060359103781814701696218278761943296872073218253067331944912160742086437207817236305170961497577019735783867455000495131256783901253861008775636279823677643537370786317251630307291946133310702494945802145974187225348113452915362997255138629029879658821438621482293366461887064363028002014255890866358453578759023653712125470846662024457461244895815740399660158593362677531156395776456624481091830228847068741037779330948833122537016518136071438487871584397471414992570930724532825803895433860272703093054122115610171749489086682655222692045878748023184622794664672203478998769649585641768720892871989608760863097350290007319984667971579466870989975466844120889883574115451944050961709778187975293446306994824929453418710856045293849710181429462731732137351097796819498392357245396327126692068800766239148353096267885440922029841796857092258234420207701291632103467871310014156389678785558550761136954679719036038048862834253018956682982413204280234449646166607837044639863190586142710878698111850961302296966413947717396196988185349924090447832602034731625681725848048260388275815926498436725119275808187420453969584518305925428905769579820881940790642996871534116894862142276806599733036502974565666176482926604094172625206057885140745713434258589204504237578797238669798959218220574562682554538321059994340372032359040279784691575139325190496780492970325140174363333415535249595819573755900854960169263453371859705330109016791754307100960083141392786912876246154652322609638657993497141548311612399604575094013672864150402135264469732115049111715650666596768071714696486123130382747339456386269361779636319285602085434529950045260211773638333639412891984263158906800564471862059250896880141423888927561460630483600838976756284642997392990897013254947241640154552178262125931762462967738210157598623998556181340202307342452608625885348446759070838974497633530618073050743596500166098124680512017518403338649053963863183293576796588047060582208173393569130825963465329251424315878315411921771900446487701746474452004215541920617616640351809345568701308132829005291861665026163775399855865676202888206021279474540257306799970674258068851355876411110908065771152542334934991742476193607096078681121698219405206477575399584330944644173675436835052693305054202780036015557509869445210703011969745333483185110455328853986458035289246853589471691566958521502674371440962584877221442194540859506935604450954112050857132351965346673004962810466219377142636528320026720160604391338251959152172282254811342196824192671418603780057304392394846730588646862836901286561830637017630500795139207794659844188354215863001237436636170697188962467667112835527069654567670379081038236949746984265837343388256071983440168399690290609605280827403870492562308850518304837726467151771423415364984370339254861551863726314669644256649596729593790814359881298105368368002535365316463405774607348510685695503483767423379090300841295276819775438977316551080597449919441674403151680857105715702826748142268403124433487855322935872509328834518678695842980746124934525244340826092500503951128690117923145012983688650355072531477435844363643115215239436830901585264865435203372406114449496293366296309138908688577985519534437264884519218502835096000639163817761058929721169434959009645118894662282302923082706480574626707745671998192187082499345792919875853305161670798030318505482235016409933363075359464289189835236016139510767674614154718360491062797924863379071802197421182501185388347002597392537772718033056489857719241529412686418406627086845774842775967195592722903882619070866936560720838706148868345788671130176160506308097131749915602225253464318696249059035032864136069609652063420006364917697968214721657173095825611986116209318244548611019574881566112979746685333433412783460298470341354453006856169506265594505012018365858230774509215566606552431583322705084304249129876823818595244672067385798188192103896981294969774103555094823876263478671778725442738506634437606309453180560273092976393646320785984359556050952257976098095963971705080962153778808670415028777145267030455375694007452298173066967406484998677749618693275460702589074009511445266463139085307052453194505747731882747405523718848682504912254162958917292222123812414276567328043699049434185638914054268746621368097381930439987588560139395012610073449631900887148735777922015768726821619684546956022301616711098765171130950154472076695420501906143874901729494551280000575856680872989291326316537250755710791533060454581882288229476496371836826475571144473266369980964239879725123464131154820589447145911566723505749337629848929922617306778772043762627495124438832342710570250139112220718615964912537085373605985246179574057298764914669567797918161565444983203713667339024088449750517486134269508865444639443547633819437242966549809392580329779565346952545285184245189608200243620188062184601152966267164352647782963804007786795340382318156301941893561472592419304817390066221055516543968998209099927222490214568435398441930144724400162424960494847791605670403675213254134707017683054076344632652810133529639775122221450905485314347587978581142735809838353313689071500420138221951972749126170384912710646021770204969005649020294167420542218633726662929960637705337948420328176359196678323967438579925376477493772690176914317462513742208639708850571161395206999458397601706867498881483325001751638490551231517719995126147885925071944079452763679295684182642794060290494103683485332563759382864450242186651514003641337993683944618316614870839028384385155688719831744844474321768710215282831776499040948319406372490719592782888569323973750348414920725625105591792052801266692051674297078082106071405914025342805520171872286261105956396027206571423838419468141487094941337421775277427902792652709646661317324543420420553673021360789240196447211628561454027249835466854400931763810494829749461631042203167616772404917293871192888997542870923219571399731329817076884668682208360403152591510347356791322909243963884981902649267182904218241362716870699958426411258174288635969163147766449900052950601838050315957071748645740751441306749163203211956619686732145106676527826066838287682288073342622178542502329483760858218728140029283328429111604964847857961252804229808259394389055581970644040151014807265041291104295574099842921836448367789006782562622124397324025534003898424525327467028334007441928484956488337457271871000551513372905270508499400313657845018462152469299022504583775539741553880415262257556786767716628779617892494329738171124737680933774299933414736850455039234577446973733566197353033005724476250651938761807806010136230081223981080249012867532178974155502150184657392866593251956985058229397967031740669195769011533347141690210110736929130241277024455602307557654596242734801228095033411768483377200302643005590837966800958281390324742945065912272641989154640296410713527677031661241094640664704279236185423973944712486374995244633556122833000105736935995499483734255000293273431329036963468902514240225012116984484311579659207653375354798735885893920636916320477321199176932859733460794719996984193711443178274814765195301376259560581109456589284983162262399124332475841738884699434851885735246660905270879361636398166170587858754144939943094611409801258361872996016024478220316240964481339869875493377597752318609299224318691654705114298170538461387377973958418057775529556124678924128422629289219930809679936628531003993820572895223152237634728534330780629256511621510205717842959887489428509045141097735739106319837825636668192669820616727866553530074969210186028891267318874967123827787061574831444935627104471550065194114889422086703785617146431764205620001612163524012609696054180496827921709835967087388924201649757575678863164959517565618902162350586827610982487480241544968517414877685335410875214168254441136648532666648218020840812222646207554056423958128553026313696517059436333924915394134093829408788519453704023174750930422265912553858535266679641133781098995844573985582250636885120958018393592792013156760596799518531051592377541513694682171243242423105779464684925119263127620232291410139687883271727679068129556871778788104641817736891101484138564623738197709685511515057502140544028575533359755505057531803601243261158393197136227661967145516977620286076547760538879433864053016923419570310884185937151634847737816356491174850963206900300736963483537102772571228672420884280357597813931596192332027201033685741788014630500523329855423581084027856407489942818247773192698947889894540013059636614181214409170337499035130242108732247136289946701285669640214629646125586603966341791740556534771186794915788271757771813872193409680394409415573410047989372076920777127095063815433351179880274744448401217085738469282632715432254652873569850694148616131330292382940047078121038114564761005559587783790937711923188202494290387958991236202612848027952386162199886993760057977939378608030180527879023236247608035816818156042260266922488705916677677562966555701009850100188634681524642299317293924233315211959054814630174269417771263641962998087068114679266010457116059363855012632143643179838927772341137219554887467726622944936079670595636368677738635435032387862027656049877443534352514462830965964565342449123074231018770755606414916868877400616198951493438854962030962775427360666818585558025674361365052929910667531149087429409980081839293101364368466395601418707767189332410663779842789036742966579431684484301629176753446746536589193782378417805073178000212773805425868374027999186384777684001384791832511836065502569951002243680740961378868103973922355196465768166655025804633739816896057588601554813444465149904447442028446895495326073557828018444270080435650511688528131862584905395503048556938588142371938831208869281617955295820504578848558509846732835453845895508504400888810513331170747997354484295686952140106114314359889493084624954154850055710899426150797338196885946528891145500649442953901272307979456543213202323666892989766536023868376905587194294700612706083017176534322998351060395143286747330478009504513198215468930300912229730979038821220283501019363230312326776916316809161754720963855846119110291309038179427071869935829524005711300264009670717315202406220058066394668341524877735974674636085891779286260922863812453686005235382640368976503190044819449326204993856890745262730886279599215269039774531869265066925471976210866948509328270510482369781382805619168167388953351262636852905307788236189711071285439141955276562812693898176677778319649653450425023577356896164936397960953023937324977532076936762761645723226042794485554006994515908479793570774751811832150716789719697810803282143421292145122135154851492128741935819503404057847570848272858535106176852933585413640534945820403866734141817964910692456471427457311705278830506458873327820221370424958152530852606025652015584451121627965503786935722569403442327524924572305084778511568885551776663380889812044731930142819961491858438315307820760047954896972879807328234940541040681434363905682933632948192736043977807419083587960767706961325229039152828321310335789251899755271337900266793668794375953415196946634228709711967682139554324907689829021560483601460016090885975871664803633778061357926361100043247803569392337455758567857213597856054784980663075378071974195000615071091374705153378446080820937684314144489783397069130039437433019326295418918295011563531104369617137946865627693313934623041122898914977603764717837768486094562010978257844502154680530115073855278043305138888963044994316274781333100557352737556294039474473548617035487527364275915853317656763262079100811432389862254056818299275022062912918458653094788434853232504426535436866904558026748944892248724279588630496485612472645908829330317235310888296316244717894135522494265471301407889817632557145319866650471065414340637456921288147246620727754249949155013909795425136189296523113164779715389105385815767654161817430198833518153325465840312660114065221311999565513829587236562288244233660270925889905167142762800384116253167177480188510163561716589754568838289772359745992921748545313777992135518962483634732617986619228683958736535469545913594188458031866871074469175631924413253454986528456728637105404778642611724679579023473748367927787547087048208342158624024081923200128888642647928625133986584838490342271114146436417052725702397319028665490476200234828986577244943135902043856876774847970212727353124408934378028953564319405783684550600496747150939901259822803583918078993070440731564945917196786422862330043581072103840398049688740764708048067951216257818301320456257954743225766016398544550931777876682895752314065962240606345147794129460524285756839604863215352383479692242163245100763571825695519921516514766606010257448238800128214487384169296969229698360420819074540695809509523246664685785013314249465946798921936841097685796168303045315681675645308967528380258069329537458972669051879540646112816104594637497818356051599307168484879630623941110058794314130711078232981137500632026629858066895262654700764421770056619922837714383416447825118413290128978236906432472640583461468308544142457347238563860739632177588560120051553967114369374138177249012950531508148463596043126328660857141826631830103814573291663853955589046974826656210089804658075716646001401335475887228955225949342732509527142244429907959434386296983054917498006173599971961216781128400998867725626192415244723317889090472978973615692429493549666327016809527089266792380293365290806334920771183520012229245894562008017160705814891233177089760645803000063617915628243921910617067788841337161820708672480872428965516066109630192861907038352784087707117011079068205812853120509196686080776545586199072333318280162693624199779387575897947200068632090599500063514565478714722516447533863255226476460633278632630586858820036470415699771218437404240388524007812334790852650893985293124885908571048652367740906229888488755989655877061209160137340515064617228441154685641533246925355726535441149223052787036844582550928005282341833365857736459662479058499003764211117808673771684244803290631505141479948186442816977787189649784466358032451996152616767652429106365947045362688206840075930078115094467074851476486461153586397333515314746696804139451146140438194466581967386123205324634222924948495936721719192992299214449149929239429542434299578575578957352640072545806577889542913914843535308879998162982175066327453799542385640138683733805424641194883773478099828864646990899325560620460913734397087784598617006177927524493789051764888749946850770200640912015827224834141334286885692683761253180037670855876961216956846753014705181886309006704480446912874325314277404286040082035561159380047534632727024275608091410671119388662780478661859696924355807051066880303544357635137685456098861607472202836684050425282161302917129084993445705106651647643582086104076511093514090412411856143413034307648335736572273374154966217309201575253318025978226541360483122291038891776246400715550581552291652795379261980482938150536162406620618418272513016540110889422618982251787202113217688374434271112865484376970103694321357897436161758316718035852443752958205449368793965545945604571360541546929785127034637343990328915098010421307054277791273051744275139604009633736713637431645959388124293299446346230405376794064981833463572597667758359183604318622090227425637672240669688622731861627694871090854692111624816430593369378464025704925396493777901769409204085247259318260118587321497004917261539773177371924807302168707100232808093120548895355514736998238136369138703667418961810817134695793420805323086218510459645016649088041882346298918546022368199365407212325638138508722523726092268068651045888192150886074496068864138443709701882550339199804134753548172863586602686490651113200778356862176494357314111060768100088141935893090065504923922098499037371393450348891656897405839348722906697081229259891350762386458952404589845141982297664894779269678544262371231345374997165804414971111397329472964811240591791356767784606695225628096335013530890331379230852162561928020391550546282351413237193375631766574313525334927797851262810151328763104325779499163535902772533447590296524525821274254343653388278192864323330926953345132695667444535249924485618884773710453892394768475154050313431536338410990510056853140978947631633258730417096518969794960554794128559743933639723780960988123067655689369266311468600824683224329249275595143368826176994503678080979589997094161391432113904131022477455194689725376660999246887650482590052917337199727501608652567249687063850273597003048726611361507495021749771920525821838026298325323119410393312692645649827013476729643390735281810711039520908917611315813152167792152803130618094601751102072740807483839850558872809538742268036941693659802317134571981990864457225466962164528836019718195872076080355917212612977732288058868021783418927895305556332267306593963695231419248990113578695565755450051380718877559660195408411983180436731168851608932869154169571491344229311362590599650933332785986540938912134624385698491401664469312128490210926541891543069024227173537320546647629927743954523911479512325765149564506211985349514566985445612147046598614556773736651640461659362234769703981246083118152119680232268292295834874303883244894334433859216126097069267350924915961458410830205000026008378920260300489658373948113905556665114528073738176005253310101221696927315078822825349134869257222738429025084270309979636021266312781952493189444661703212918507968124333190081502172047523919880738770755234680346247962533830456273782647881118647879825270759776161651395362956344775085077653664684135170310994421100263049459164320348348090117198345473596472920273868922781989405864643270031947128536928166121928925553231537676793855891913207203858746736066820670684772259014587823790188875213163469473054973612525014677047436025242482726360110088407782829362836754507299772269203738906833713268557170591333066301733519494361303080455711833240074381606067318543672824468843488132673072938893975141794162749448831012426832861481315076394523021495693534255159073147554388667064012143164198553015121163077699241322714767587478364624071814316606657068924624731587789316248573679890551453696885354826757150827423994406470290059445333065097431915857380952085036759128597753774631450700838848515593185321986614188432815870639940589483263661047963791279629210092638621663071585201486635678286428179342230547950064025600995167522091584717667238356846561314684673926917933323996362470002096587680321468476406253846686789957529493554119249532643572468730979106772288495650195865705737747120846151047356057005834149516993114025107478989674974546953659387484081667079247539121732021690206220411133305056769710806656238597187443219753891369502901924405891713827388070776703160194209053884948504082232448122001527493417980718243268607246651319222560155585633254466299066222072168986203917871248805690475450031067715829358482674384260788564525945672172688880357276525150921720499603954420693901428619197071704385361288724319149212158329701413564848610614820327321582159456530957174414690027674222763613617146754475532199773448201054767122865055551744825002326028884713069136065036357699464463237496873516251907862706477643773679552685092827595025582777788837372491833056533340757196884158318482711035374885549562394713395287860079651333928741639106613643824742654280361764421637169513792203381522676564633766134850413810612133973986789258154671370172692481252259610868047760616200236284503545727217248203801748176274098415991857201466065501140455903903381703633488387147604636332862519791780085897167314381667528917223283907305743721445592145712274382453690987427890518773468962839562534414606524044058538456304032079296902163364767174901455338383072328227650556210378032685782430773659348236614875054629376473755242437659434767794926484611860445904282923696018034622766516645038453369609571022955111187624608966884882810721292698865338922330022738875029472896309803244776422021285350576734267235987213376607264546651161998104696339823833702385291705937012517203814456298482924900776588459801826176271736559513865230175587436801881350871139903199835122581025686152967652451960120307703266307341859054871476988019664886995114873504719271496687424128243023182517358479848375020384538988646066569780702242392069636157138763426533899764891195405784884881742484641741016708803802774700335298942747623156148726902621858822984410515011408370622774703062478230414401304908328709647623844961674768924463265288786514182738284935140982139208046737148095745336555981444580905834090110539232968771341644659333021115895423117178253332373324409274077772755953134006069213017244526872833831561549401481964483424632595620536087922707371448211015577110415950445880872227996718874373441850545490179522645079377213770151179353806473049937091890124314573441170059463207435533739617785360446472142547748799471355720822320363089552925968759524871866318627235468577225271965239451179143743547471503827098621520933645820588102541268143084305361513632850354063092125174873407407943283228357330665738464483066799538562043781075371807383767296858726832156760876988079644672026699941941899440662833416470311634582732642555658555198448021843648630847862876069848620340304521537371217669833730732004882629450631318969846627358957791632973133201060689479943712542145444693909779640517691282521003928266259170082769830609341157349460820073534910382336362162249043815752225952372610924430783465801443980198628522096852603229515715602577459738132201690148824127604698709313319317812630891646853074195201592730196375420600362929037075830823696599122547917830085946423617092764619381535486681466334904070340362491045509846342386546558340828331233164319607491765027457409066280476103704660117560752535916209664086182069937301827318298968764166005892945363604607995238044653470949287563145333605897916900193428997297344947160669055246260050075212964792462628926482544741034274969201710563841666778918603827061722122711584305256741468683812025056591859557086142021140734412348131375745055807946810924215226781627322436378419314022897901741983855241908634743059530951985559495208882953389129365484198526616533376806321177499908745058216381863495125201480792869844918078530201043068075229034188347375138019282536636187639864244054799506374963759589022378465927092452891852253686665245974305106092324807654311740447947644072927601534513130483546000748952377240774212252322269779495720425231746643846612320780161400743827343716478749668538604086446613417043012018562752048542939941771458235410736979623607717989671929272129373347967455060264092655447332133133476071511899226063640392466008591972411235726694424334102400473457505635880496429146673135558414228300274891019097126124780618188610758827433639596465389603905497606366976074608587122305088886164975209819328526597819610721363680509646690949063767117031741902391306842851585465656274036143594058272190519409262343242360959035501905212932232762385111691814611169401369553623364878757033120699967543331001684483843612376056221569424818689263287286394195626342684363333682233595470456211745655348220997093996999658135739495200048960479036717516976039791740851591753449041940262926046362365272890975434904719113644308537343713066402029207782832248062610945734859062926173340496862685179492824527334852743576705198088697720123775251224249124021217684863173092434729680940157203101707756741120633694940013605751704205026072557187589234811610024700952462232359516641487521489371314173589614323821724339377308319998640112392736435176637703458403931228986272802786107939158881728204220226885598304600560082586460540995396391961304380612075132992996656043213240847768013680609493681268616402374876744233961468708123140563727534662562875877299508314067612631923532960444437989054967359852524357995968923832168999540396705936102312517194935895441911527205210126583644849357070301879180926520815507554791662150302458015642209037127131867610705439755696858980835799725350388203104888882974143087820511062770696591578217148218991416472052873117242551979780245514400902244102577312427680542007577721561879436680138284898884156578394389270581288978345496072482108149185882446883902827542425561360089690600560324012882371093258106797938465425158020983826968531788437750112410498894612134957857989637681460778841724222073329339087071894455876790812264484674267512780572411721618240487057056078560812677936638773806819614391823260265146264335625204932344047525878995080106641827608054928097109812536949843628156950917062941413058512356705753482072692994752607748002481533804052369227812894917760305479893324658932039369748492240560274960780694732848314159923527963996225504792469709936055392040603899464873496372976472046820896325877373855170757762549887920941581589346088858525561588845465063892701740731804600705755474766066474021589255374748934081253376602525571692542060473992403230927513570515290703700862701069692667674908265088403360786627803892974303038002653938108223643866167324026147123762028545005596557040032158116034301990212547772253318098761573724987060143956894610676026089610033431266034270277761128267145032130801754765697805223068425478698371018374215901568505881659103823055017680201550949830343542612483195241167326833966416297001313817386205077911914576358262212604028996182580685348782371044004105517900914739901707152454643071508888222475204087219523576839593880166805005875504780582364683841623408203289867359305273003416013245108368478072042529051732800214147012574654443133727110307595910955494380595563442824766483363190556749809166562075828247476896315669078423796976206377159087114668668083464705182410727394507591439132902883853697320188524320534554558908272158248245852149752596510656167523512522948707347057743473875443998853226830889341812607856339627887006735201778308771296449163407054359933195083503931162157238834396039168590772476680530271630855405836039359609979491643902727175636687163754140690860835707821036204900749221439993948990320419261988835445918455352349346618691269236443465125260794584794695303823622017087008045413873865083141860538355836856187072849316484010587296159182780497952893062362425441556546769836192681514094802581437223708397350063618613399883393274697412120374209084050593269126354046937524230523140503275325669637812003578443554039039869553312922414240158351462157531509441563952497046360530270057860004300407102783231838296498813048700131418739343777848633615734149009927686211925846129991058602881113204686398572337923694272107171826291077304807800168730751001126632793660040614650243375165153599416482290949456946754030739495103145964937689335949050636167352381618330508519287181428018745697816995892842270686491448128542379947901485526751915957634055784566028026020537328202639677202505471531049676838549793437648952058086474250539939051346129213314855759337923670515661861159531983499949981588058346312722365587331986645826998071121500189575692095868237007278700511148597280346249427858552250424510829223849217541017394595064678405986322685772560187132526758365598654603857890088761371066765282011280794180292793749052380380698459079219385291358660403080860246746693101801626399088149462922277405718571917414882066451477208883032153285542996499456839905615570331908711481792783342619648413721090221436058548311259357750124078818389464033536511084362065834841342014866964352679413112054761141392047479609805063746654765386110547277195772184908754738254782381234117176586431456115110761308947892767829300241422328791922248148232717638277303282770625023935046743014812498554334559958700137160897278591539323946907216041276630511744512274333927542580890704661156776093339634048423443645330602544996295290027628489032365986118182195541893627795048603972800884571859389374755450658178916342230509423586674638007674534995433851449464529439225115874734636246670501177962548200522827969345765011964247685608516931137035020461084392588992991493749953334325334621362715190995213028729048251571717371722146907087968256204202060184275784888782547880693610048857772155752150510537206182479745640789899178106085106259288111825139579436488846889631061213139243795242296878292873738350189549447566318452639230494354112344544317093396249735011647349578103942000641974911243410708927311877325026512755387966245776848342345708510473547401334137920862094584429076048548255543973738868966970993789907072328747686370600904575117597012623610378851821410285078465757939279224691020365183693808865515896632283194426142911475375301991562744690008834162714176614575947954636604955610924621618772553864036691868344543925948944038752788647295143964117499422501945129618518189249594511006172975395769450151690861911284230331340989654907561086571317561127860479101315419829460321333135390957911282169488544506667542790404532895434041748741139543372839193374192588243468313586377437364362279231740233863235030519040392596910415785959652788651191043841066441475042853346701649575756035384345741239036363513957644464129754406728586039580983190968670572203746729636456772134456632635815571481319613865452867881509793105325334502753805644036322231960916298585611334508196992193610897263391541144778928669978494931231151256843874231608244378415886721239735465714046830115509680903033831186541837664018195656002809624902793073120431695588175846844156803075546539945805185830051929776153347111596139364259164071461120363472505386631107718229655278347749090570784982196658551814324583795902382512813171418640832763048067684802285074908290247290440506468585399544789474709552828756802419217403962337710890745972052111057147517131291315118698404134875121565235301045622097953140190313484810603426419918009275933094599504974963748681625874988057057525882013596340454870972470203767980860465997063122879354103914625017298156691490661697676998407609205809758545501096067710423727160065115785751569279174524576654531833948044599084850059112238029850487876752283631623043429129208533974736950570579408318889375840665918949707848691696784187338449910539797829093629438133344953990523900176399448562485534917121238513463592270574162740758317772695648950578149399874331634174315153982509456607657507754116071502031939361691525900822369258437671658064676867261423118408603473120722802952258103745655094126777407265504121735289917579632694676019818037976057172623821805169726584147258505879895276573553755735594952925021083136110923318268491760828269233849363922907408663146703483329984112182957220044738082984119937203831573630211688566327170256151979891129996907957430668929127188752954036021821559232304963033359532239923150216489520306229869239136512944444199901934821521231907043429899759377159372312122689981726863908931568534649766018153548343185878017324448174363728001247181744786792201964198450390666950764734837321020927810905230703112163437139125160744837124441750389486285328830154336193750210100797053361177036990503687178876830538474150067926375391018103196482448794497540722000820736068677087432957279033065073224815910195222638367613091912031786346623938514838453241283601263090006046980067784383509485344083131357265127407337550499698092899360325980344703426121769735796755752854695082568422392644258981604503907536806980911094988600310515201070564791181163146981733136167521014871850002469702920246843731776998967165297347233526173394523127377199732589005535372367548053968083503160595702789779742684001552302064893903639526492330963011964428647847832976768249933273250827502950987341334071092359123715808184006195970956706321486284666450946024222422352194313437552656451921805058155106608590122218284247287541719199015142135064141874318060174558578120540508356812923345054397508974238309527563849715256694825279219789745595445494104053109658699127603908006927071772187394635535433646571870233105173985582936801091656974178691031976060084467029303922551101596986996591082554897652610652144455772100515112373414524971279374251055034131937128828288382661653572050368457203121844477877839008887221959019194620178258772281060687507444893931721108667897141944487294074249890532437611900273124467289173374521398793797617109366501290046452931471252322651531550701349895850158704602483999281431157488633716479377760501375677882364578680685363682755110660416350840368796668221117587028396496027184528640379467534790833417845877154575009972336651499314996974988400131097837210900001439821513817401080871857074673279167490558225182605434217725647155255453462553749965898543627540650332651655638498183141479687470468717548624589725673552876272090666094181335346041798932471674529248451907858335442485230599007518573541691169819030325843042948543136915530400611755188405650369658855039342597295508539611863014349083432518863556990996804621009503061418687947256118760064872274212570507469594292120353205239682535351773831771095834036911365149642873653171112977752438954257124103980149209484303437594781837740983775627009337063838387303496323868769736158894726576757651748422894284195895125432090384223722938998570755821732237305041369910349792954277638036082668496410910371056365617691804276163268307392606204008622489573336913679793195157388539925379896316782435925679984436175203921549186775040577511563904177317623193819016103442166824091252657605856398022846688172970539567238118872835965105850285590559833685563346842982844151102328689092209748006396341340948484884248099539174589863620305308112480538924620552014470134350681082966154010525114313446350476476927944592902246597835869886238063068787562334417033188374047366359482259286309397318219247969826519265208525989179824162785563070289078564093490721934824493630929104630481010719882655044333798120042219131486921346068411436110956018039075197865780540460627080265949716585853781681767934235351098599939947607058362189573685358331386247463588801832234769702174106948408387917280467200853686497504222820139992277290748494349150399529653538373914127936612976352566815639057781187272721587330125997726960671467762060532853903855778959294944213379175091817701471101433930180218173439615837876181798502262571043377314047164708966630534864310394917442894727724310678852646720472058312289912216499028124680146254003233005264607685461916182357342943613943027763602355454559669721180348225211483837140729537643609782359762880893711161251391669778724558212110893222120966536946786486067092264214908679550711621313306703624686476460486839393327245103033437115033620295257970623159905055012964119801847977512881490881076730060681883888328792444146343474407859311334146385556038274764045541500454891299237994892809301726679889593963095626566682353481014949624259104636817176627531358605889930982877089238891344178696318868280046972859965564672615267770457034564088235258830108655366894563621035293483448668425978046212957372573251530167931722844136557922262283968813027032134912966517596250040257054115120614210275818021892235311062559718697986815779413124553841350988902185730885432972571958680050645739191570612461157419416706110635045464348671908888682534072176966199851010287255901481682772900657574866118591804978021306478716780370233769554779623396683299337544543535593236647271208847738457432654256865432533535358457465884188749568682488603075883146752320238214485006186548148839242191371499852903509013053400812653393249733544676161852816856875237320854028970813612602640290052874904029718933622185928035206002858629582835216530616813181451717809043554502379442115116888918394918412902038908809436788327868835896338249887100551045598975564453075366986939965061275068212442347094818571059513386909719712736700665160876114873146120264471126942872091840767898088100292180470451910059760946113140007984835632848799229753064707141850606828184142134516725450903975911563496655421591485742313257282439608700019778896951188362568381187594707234560867813011510425942169237392960218512387642429872299940580839959803861583901695736393968397926676841147761765257950604454982062013846957990700857596063152347392407746259146347361868340539633571118524596457399327042015502538815408120188125233626965232860298131895772296765103845365563203772069518540183647976669088620339306061044486049378569942789876202437830908922607486866818000762109272126504942168477054309333944458719826631563467917366858500763187298485635817878184470975078072296358297600437537223599907095055024369861443919822451640048578622454504415024503278327051227042359325097838535811818068045587688660908809491786315504606668484244417168376160760919621392745743450445039677740956340756920381687946512744246732125841795118353933024140690369948467287351967108458416729504813029502832078562488898955672304074797041429653191521853411678873350110286011374975310826640537491821480655200064167437873156021008069595706168432435389900169722997410649862916305992823161587030412007330962426868185279888799440177383838922384109667268370021275742071609655725108982068047493373914965167052055681158029867714046699232433991564017863686390925009447175222525192183677914560934425291819269044433224866914779136916807172249207901427088724179336926886047579834304759699680075508907923146792337004302396243999233512569763112613155446856592081606903746601526000614824640433413201359802676086756412922525624152493506837953980342424713449240869763825087859628743251392825340514867274514817758725995716706292420923375824839162415447837264415607039961860334851537825952833177028201395422591949598354415542850233084129888985153114356693576186049032847486786195148112651016450681946795109168521869452120115765328072743832474030581942667127460672996734829822562362345856762926344446133017091592668247330403612624874240499970470486340887750561412366213707743654407631307512504686534137778074433019592012903989671461786429080933036604150540602015940458260128146050545488366196692898406068670001458495969752955023200309420891552523370705008825324532337384926731852423932288462805791308492358105700238210396562751631106767018399937972379262956243538399517910626433023312753227854512060892402979986748606648896134257450429694785633046998405213475486745403775269118022939574601276243818354570525461781579929479338803750045968355452152513268664313948916556753076213546932107604787290504870900483447228441527765780133886615206287865762060866824285414104937359926950011565592428828365501849780893113760662849483156497523249842238099493719602358887183584474826512871107807265492277194250952007389369135629721865734165969153971375272789065046641333325478797620553719293167280117436035861089591261967293090274141904101860163326451957353642158679866292691999143233469962690957475413657865476955091467943849471291913799040998586654871101763990420214049304172601421049780938595594881897727388864158353870846408245217377097487822919433069196422064092347459745828119431557854489549621315044380477718460492292313935283819110217482589276227106395079196637511454537429259414822850929888295765445393929994769333531829975505874387552571569752116061890569757892145454545615096462652718240542338141051815610343120962756940026603267158378184508877824257080868719076552598443133587626488645085240894630355122679053856766894090951581342353099479265361178913766275030779417512253030833803605230738140232203439191182318123917015783351796297134922219642556570791289537142320119063208381311958287676463542625944782336590342800893371533713334675488202859462902464948317660134686912484807302226378361351806564973341180719576345755958851129358765743194133063253245543017630484868069768290903451076674456854656157503882982438590959283677779338717088864836027100750680275635860678281725476885647823295300234861134355663587029856663774255832322664094139265383389056780175464036476400794172731097642595388244808451349459878021597985223354517185792637500970586725469815952121959663678239325089818221084768982702362034728031296726263413310850187466576926574599326006096071456527750094193437110123246221973301573744574169903248402767290468769980230479624270724467256723178928396786344781059985677026882562676786651563339975672155526183686306351181836445802420327439361892312458524579401660835349258199543234600590239689122274077123875002992943591204460969191211712944720402258123820620825731085232068214226178171513058935759247406795548647003561364076891115476861914763786443475646433721798152687855697132651744842047799734052581923207984280931464121062985338458943403862030598678801865251487949156613971223786147445475072472351847991406390763990933841265872322453783601513335827576112327819078533293329132581986163551538497344301411505089311287847360447224551408203485891679202533531719395771543293153432755527197154955732955261084031708881845492876677551434823215369684700845939826826254957777717808309707023450452486127099377731953101279583091709308739793977438755920556020233906824172850981635861955576445051606815303490894550545899863054537439528856204569779011729642987906946924436887260699618710073620269400300834732622085809670426997541051255571654567355651917278155245037690892180357292265045315590038488220871991838729631943532079273010668213067254876278952179614030108586986244874321337208797037121663195671293213889427823831625469048646514923336186077186456327708206721655353646877906366728831369233792924923140200122223783836796714079288303660883318841217147164575515661753078190826577714057703185880630935328075511522522475094343580548914081928824486624608287785113109988372808764754305232264061450004232961891349209228998325264116869121820229314749071220397439003245419910196574161537104360337669749871868064046621220313154737975612852510099045478921464443409664393238859789801518481394305314135251046676688708415341567632197774516268266395918654216357357715561300760439903783188454759949284972609775070052776372858589061007219396963155072132705860169007662514466352458954247740487380081599032535279052679571468474435774218127673899309921133411083747668268701563810790294392062229088274990359697042545615699881328187279544669554297517764384570546012418130045728761424502047684521569941023893627595817129970844122995220515930230709613626761410908353463403370771048906543549771623489803952668836350635638612673689624638290176310579185894841152123083887786777554601858793134296366609246820243582570866541953590505512868741021107535838157000765878751369613914148250178157607261596078126182790876294053495322241714342857818963830905584496821877483665508615509038988052014287075192105871410874350279441633375116359297668767790478313389491421939919196294601051952205118011899996295488786413266553827390274706464759368485246968813456654135188386150286042248129148962868670022699023547889981738505959534155259670981982874198427498674411776029342189180974069499985501579712315247304631020734102669750851944985033680209131062436993945489972782280394618575099041382510342199185412205702183005949249662502503950382765294076197896027423105243959978154229869651832826280193259332576628436998295924797621474204521541118889431781838975090663715457555752375163782874202283544269979891412261072739541999068732775001558625126779405546603974296781081115803947324722979280733639121939849639367591622952824781093997727251445596819460707433343815464641417549431655902005330389329715665017851209521938581472156642302658402726205047313923860355478980086337214640101335732217825123822930376068917698344122101880607257625490572638025813570036725368073775770269178349572509286376460650065253260285254628463199888791420343950492041717356681451512978031025965443757733539634470891089114088744422430209569052202819140978037897431121010672329761262270284521488417301085981479180089970386955517379004894513929576387334123033891385921598825329141465118206468567721782434172279480453297516469310493974035296890423776964740562684048902411269425082903002640134844941639743768184145706797767076617241642774209069469518446457634849043590188601435366955046818525577742691966420572722355845322447131485454826526501711620088033157587872291221928974504408005642336864945980916653459960185879958217465944382256481738586528787052533479432204685790838039531316998331824837239854323505341422247344344548794965758860050085128640018949816773077315254083246239280663822115401958212106564090265052094065300472649462125265168028324840103477968479811177744702799154622533071933132548703898517942670586405630386582490501061955666994610628084555631617352125479873771354690132219042143538280496774065677145088336594615953376418838146939890617423157324584395882973181434062787251670163250013535258594758155321309137282341472445394067422862404365488579199414617702354245880756860541627812034703317549159589173280982642973924069310722878073276411335708548364237154616710874917249794268943675884196091130328934883094935315582399125994934728338899517022715803491664642192025473406419959410085408757697025000513740241850989667648855377428752219136773165235825586427087901195201517883135487425911739213369431717015824586730973768979417296353448163866074461088361422633286559282541870134712391751556526203997843619694759766800146483503980366338069837280912442663727879649888148328535606448949714461624431299506313881048708681119369758283158621143631273698006297212207114743919273617419226200552758889001067400461759103168265080386311806561664915696118883555801966876413886415222670864999043909224324899435676897214920690655855184055773609405391733377369139790127190369167699387752462183240204654550882086448551766140184102612338525131335363049983036957810219554825703189748564077487381874681484702468018978032733432894573435138082093029693430349078239527695256508697460406362362992106795830282217544241357304377981035149695550314266060859821546907064260604376194491781784862411503241320440321207726876405311066399216175139665305757358594415135681714076076413361331757399456301035229217639340512602386872272102118706877758976973181185238665093096283811325065848497146325727886183933364552299338982137531789367118590283685313504393736564172218106421071047193272962007379106211729127490798033987110661497287931146246765585986844052564062745656791734958985165576595050245881568986453700041611790846943820115760420090857831432898899060027788251465418615244111383513315666618381020953062823158563714733520459908652484425746784180577389740445424443259798743791788011254426818713736033683798214272569951930229862830835233631418106150872834239850727452527136956498712390787956368384280003952449421499555969535147478422563965757769553924396696789555878834437725785367232681995751702016973164774105887002039390550067511585047042668341334125703957202288385930698374245171817308492340762082179813233338003213741120683493297969802859803238560402111742560312129361610231398421915873703919463859342319392072116846720361148437366555837177214241506042153598230930708909741981363527268000743448662333793325080987831277245709232811871712805479052204042681223540700993157318249760797865975540654226321104386750684362839200869629991142851372460136631845273831768194311981131306384021393041182633053104978785885763746114887821254604586407264678746912554205646311269090433390151095402140190656834301935521892917835149385972259069209450747121143522516922184588217278287528310574216197229899517011733937341892897440884247279911858573859803339781038818350398802065001025197648738964114451847662834620232572952285692617280787767562831261360026300317612508357420940135276925668642813371171096167215872049470336159405288760655926958127298938616379896077946061522476237866379371770483201001438679844971045619897514103057226023404239711912009484649340290322367911470437641159782321889104606318136804109249155046296308815470211089598018005169156980161342230403408498468913346565695137716334600291635204926852349941336418317917833033749125094933899770343032352480566686629879068273822747088404456482659481969254555975022116140746228978191566256066792012953937905845788578822698695791115165430822509519954620073115953253528520134333386940334606678878349844715957933540906240928614235755354549478329712404979876795291284193212053123971168176364957116415736407376188390832510226326101561736623368922156469409368861824359143869626421365042523868335813520588284618904398496358576535408230093289727055858304480212583565248846531648713376017159427803589789560911472053080571057831906978887620742929427013558136043725224209823169403749816280356638166581596520913130973904074684364394863223364228758807704519379792453700760751747919457136604913833464312365114183434106846159261478617911623151941360317994275569968626747393587767059543745271014563600239795846001040013110714616657178751513016892127448986522645520667862206728853799829462811486129198767787158345371965432621967806966858347109009566262006180996523774229174743388180556631337131305878471012546025239279886862884137291289907549972312027647635806584023635620044714633371902375059120941590047682331300716484866045503743125755931675211786379928297251447473114569241351487139483429531253287915268784381182939377696644368299278732085330959549298345592207613139230972904378909965627084440053266651878683536030876636527073051671657855715788774688876479016899488744722767956650163073301925575304984196881592531984963168930179165600871336208474922834125296100933320872469455377119982544503942722691130924151628648271737289379968666567875386202056139728795446302333616012412170660368581415803860970721290233272158411527234853645176977666033801212751717516168883125660126770034801074658421420975095793943498167324342686199214540925365591478216024412633967697636100982472755102592738369579475051020732682636909241718950758358713609061444572001631616353925559784628344179175430065847557146815361109931351903315050684234433654798939192403540439487299277973252867255116551214784387208813224523134993307548839019802063232815673119722366023551284313366417355739496060833123726750003805971103703427516034669482959726703991534333765112093673181001252369623505375207519988468227954876318417682747504510245737664588868964490785825260768323651707580998600939143199970020437367347277808828968424114822957546730988738646275038757875906141345674812422913858906536982968941146293558684621337601044778958300380412023161136384914587004616093628909635406209664228952048916178565685107683396469661477250747080169366130978548577355661618112940400754731617101056570390750418435303520820999043820620124264057451909505511626990144645067253345994744743163581970759353018486872880126915219577055426921242245774895285341688724846154462349070093704488729016989075444368170272122913358606913170802172075965565041159958735615758259367393575062171558445536040118604044189355344149969912332627930349807559022721479041705516642659859021678023556200212078135095899958335425058487081824851132542106114826836616238390030030062749831026380428827865689768811370812293583302398913651417943370304637208714585354512529348604222447966641619434567642067665265153837876565761797837075829279211260346422939176207457589666534485100089483815701615884007504675361566954771270006316426336410391272066422728487283396170208324890312966579127602260288899236280419242089863400315513948007778993274104708261973129230707839518149997893881337008375529656170886386123975963985396468854763733373478399797540102276465521456867218889803774114358671283252673183889605144762431713065610147532603259321786701057900997078469737805153101428581964528690838515259404949812647662633466334150738304340167880105206799783169363302389680208492684735999894448238815859304087301030652902894652643844621935058493217480025086280907347326876521761373684039230275069445714277285613192776702735358619010414198559339575396743979970347242094514469100758354153363951123767054401465589577619262871782062290188954364134968653150494906237139614480291314375463747240679364694090308174328920853353673506443787659324194698797352106501174516878329188322580124661599223103686065986465706483614504158898512185891072529494733009333801327104423049320773036251751435852388873144815162394545739852651066925962075499036979932111968290689895926699350841564961918311116733904677375652466410569703517961350464759196389327303299944446891037297908514084762856783025817314380487718611734596639839828737010680967138151428152382776938095402752218148628393646986755554420146832785619453922611817292582998290559198621906342567320426917357682863279905290135928144366166136200751810629224164172509243478788238871873115531051932043224746703958247199626263253455681417169928188265281916693845475606032459128704939663010291800552346128478875727004523523489160123689509810002330887400361057347014785084104245760643348429718676480412877237886748703548298854511056131674895015693248849852007932495667267317346286536655749626161619421566966201947937821228588755068995226858493524577721140869298555918812279481722715604374014794022321224387744891933187075709673051000378815453105654308204982007191190716817117708516875774838748401761876686535979427169159239440859721896408778346719271975725981085200289486620898092890417990273068906525651263166275003145763075264958344531899555264392362594756599209360278213135501314239314432265854553625967062142887588884742648897732193474445810644206276841652201907158219362563477077278103469172458425128850865655660613116773051861829420639929485638022449454709644129917636870179852498527405497203029207500195713036667878900924792070333346141897152938123506197547154248392687325737378296238459966096194712462919065464983871177409731485363501164578854620584753556005474597959507855334230065101751306597794042361720330829032099546473594879327203111402765380896317856035643383953123886019996515927357685556379077487026040185049799343996063738721058444478173015493296815219515821765397548957488345363654595640148205869055416489288042394124975910483254699186252054262613346305286227509299388620285049864035265086376070141440938667903417961227232017280701456932761193318264029551116628362440432632266612363538980857365552133155057506182056687009711244876027468873892498454177943386476229561999203407451967953184758402140840563040262122471397787813698516342156816768840356275327524909483867746710986460219438978686263457179511040210743485725809549992629795884098998549004828600188586613780365002339520096079374147381940616965271261230964963019737721708441527658193164164124568273945007651981019749562303048551061332040121082580967583707066575282211631244228625941580408484912357169240736821672733572650802158542986598930541076361436774379267516713819989946274156268169227448702243626605205493843077515691534559947454356654799727914814158580859794429350319860505647072298139181487795292137182962429586562662291881736676974515475828855626652283252914114007422158223452492843672758754097607873927135715807141175007589427376902923600594655146128970494187894483562134563826619692201191785801630060234554802332756772716438411880747218267467734490079865323290526689793660562332417884321532317745908029439958336432746897998285975889543160167225332523646166743540386581602001648017849939756826717989788017910432556384155525278674034577781640305625181992269848104821008736509896178032090133888972957082931631265872668029969343309495152738322084050784225583455281363871501344746510205317955102582184373983857706499362348380260084248706926755441807914417105226788873198797663410256047467358026732465447708062482921751703860725376970764232609708648077369477050097202406937121031051722253288085704055975948375969031741755094850127976879300503713891270245557410366839408105063573406708845900380735106410232760114455265552486634489466289209955551943717773504531611241816537041827016915358873517192158551740340689628538607954586845224244422631128640469572120799304172284023308967599061150636174149195041458901568534936471803593475675764539109087609291586985017158506956025165200194062697373614132518052028356627802286471578657240742078419903653232219104857848409529336230421872169408072480919067632112204789166391612796195378247251981628275881028211237767685876756151724407273718727607781955355215880159330602010406614793020638709114292506042810233432103030073436478553840197834246041048702164382255389785262633209121495644033134471791438749077232820394399758175158784324726963460660118540081656642587463304399050395850537321801307714542555909514868565602508642828756982974149612516302793285329602220959855415411217515620466045827080072562549222134680341949925616407507886090802459233518218818688726320955208088626966651533618936516919110341474523770889914798932637966180507802638738766611588887272233275021503823337489153668719925480902033145210261743575633341582408962787554115597348342916935525916212369185552914584152316549286305555104058160671115442860760389203203054409346962527206617429619869901300249362354879425123758368263480226703654429061262531988020667174521566895881360578255416003005520306581447122824910423935727823699560727825544797841080407350382261439250103208513340122767005526326157446819610582211344594681113613595595006664363350221020219301200801824513932807202635833255499790847014092662640547522539953979702849172107929693859291030398452856879249267757099483371257829431009123301998438273465328547396886761497875873291666935503307788978479362561622869715644442031468503054494138518525239129178546485776714468647595070146752643173698373677401017859710693366530697353873858098928643721375464937749647093270529035526306564553397838330186490220788273873936054376133836936366898866072597358300029967074351779258781228939168477329298510646453334973147218467332555447556641360203750180194818605842944859816048647996977606744237533926824867783962400182386933941708134930826383410338816032496053661015033298921929704716973602422170133257226884824803164303879094827980718492168512689912415960586890327697603236377872982466284045289641931502756948075355418866610786596394433699585432026399865785047315681472818440545233679072734042952952552413322388409405947862440399129578834154456338595836819848996240879614140498711362124288172468119831820337761355836656946022155202895505165507362040606654332595867445543643415039167954344753092161786838569137538261046502161258082945583945986747480147699003468264824106531096587516728653480084305880291342889460206821358001553690985335958847302626782911589127681298240424601618180838147329323679588615999102705147921912859574535554612795348810063588990218921749126620023141490705118964991918179390075647844017879187133450530868078325288585714961690892241455908267033645210762436053459351601577683392572069956516726850268228608486399305117249130645577748348944635888275269932340650677405343139520051289339009633667651128512402469620578458198360751881772656833896880295112750644874667326581296587939844457797810023118735437415751130510964877467874856309364322236181253934795861304464445323364704889191614656904051506570856846162081583990111918784289806768496715807475093939532176919913639256749395973337817535698492338094536851987036715637257206336550958660782574767856904497491790107991547558470923106977915738884468410194154765582924285107175799119980663670743053343046070097939883180682198551908727741059646685605191847946524527076691016263345936904352568800317540116116700474649997862897197499131862700995951579040512122511831107362197895725859877991255437723477970068185909809906264297819181232198262978858052055657690078465811156524962012192395457977203010315288771242071048334173627091646222582260952505542951849613018773214740375552927071721780799016970099165474590421757745433969589497448759538125891416550923861270093069017388550450287162110102578530431746347307817535728419916076041174226134701936530077395897168709196423449043224043958171007106320927663276496692254258050894048493573891887227344669552829377923260369474898179664582686259243936745603483082149274341182370561473308354493203491299595469491108427096560711180574915143555508472655135975592824059456395811314524908287371504187164488569276386660436567495777734809673563409716696124489998233514130209720285014599591792927726099115369089264442921621713670068106991209283123987745846922547608521430484205981978504295035421621632207443224697474465691919668450040124170462176477828261418852337056670128418978992200648862365359875231713684025008535627434479067460091025005688080984656720834096606758188069077483360697010002461682814577073878935752000504494002277691142389232059887100931662443522898532908589511622397024613270271312297217276649330550504395858436561256261120787524574125213276214343427624024354859841684423843317498263360784954193684710462796880254966259015476544905812041222041230157718647832420466361427422840989848844469920165528445176533066723321478421391901616873446804754967784968843183520116609186750953409625061094806096299661376405028593075912296416113662397737877347876925558472990321426003401949169740934221142504543563619286505437349141015212566385379565319384985706626889207525029279480525875977761879245148227043253754525273843638335001122328645028703527791939333804896311733504851358267092528705615936389199868219278937707868708168071803952524500822244584527544751832151926899579824076930093964294285680820366807581193248409617596591178469372478871204879239690625014077919476570657116237483102140050705627689023767371200784526467779020341959769556084958973371311033539091553370471918050793767553552253552631729455937540077635110672608846855780409098380923450893409344630134369261287989629331400624243765193553236244185205270545555065563506120941390460103053926767284449250215822890387270546281087455933553191525699630537830299130028039201014837487017374150654290800736499756583466845416624679643125347190640187965141623228829744773743991322165276287202477162756113660948851628992175173005557618010030416721202930809822327605302237784770412417580634157495847986936016450978462476480987395066971940911042957046837076195653368436817554600432493070298788363857649028277050296506039836006058378482319818491671236921279201231114525711288991704950318649170685623896590804107127080395097675294280591210073096297976605088720422982044811051874855818064054067742305592782462074844241649773170140823954738266787592648030199414328377633481302128445406133315102001879135950863166918829008738763394781287412808869937361786919575964591277259055130459732426638325152287226193158014613507201694655064378155567514478106942010257050801855745977608767868692221858227382459735245778911372857609166600958194678322688846353937685901260963897273806081968093270196412846786106241311363112954890736380013598664324354633572548361804304490513561309464436497066849416265474863392914770848041298894082477568403080542937159653784688718099489493028859512351561118033733875097537726602823603776140604794646036528343877413797503255763683731786858598453588504489001868272547380436664849858145192820425957645795761669551548916374362612572734428318684366016987071679461896572273970262606051656364362650395480989593101481010958059475536738303460252254480192413079809047244959153602455564496564060425649552620501990280737520429772664086705249926604391412254867160121366671912853286444276016191410728588278096918683313064175214205741854272989933501135094948268355212347229297139412446376479805402746878180693710424372202969503931892692776615726083794007295889037527754966558951778168321041924753375417118697437540647603932818572530488229388890826185306582474367693396475700825656486950676792005444070330282118297988597271754954915412484894215102532296347824283225996247333347841782370272195530924693918028550930910900925129426536016361562940077876396105295752148825218250726563962034508269016532829517824844569600659259736711189863353015050902819136055749203620649632649199750099278264515880947537899941983899081391879790684927488717109135721354844895540008568273954217660832042503255352852166495079727134189615277685430156087202324493624694216922048089385690689911305021530322521181630785411769839575055039506992318799036098682891754198510953311585888379341054011939982100651070736045476752454872246418822305981155810201120926594824714593608938657069742539963561511373472833483432711144134108776434784453890103821652694947619788680940770056333760686985182102768272641956991542817238621954037440517217237456041137499880415392272789162561032432735211558820982560645217551524227326869333312056191731462733947709207985721306080963009326209292304837148018706266785885833911038474988508347400599935429765847454568211247229199283019759910195727285250099460586018535469215335720512136057070236865655981678894616874611857979725098255136503718299057431462057522222675471559281011131405748931992747881242545581002961299570323644010160026459358827803185030804022392199237230109493295642228325971030078789490897502817981836165319279219932193301952298042746734108475050952865539357224069953892316062926698133069146500923138379803643699489146957442342726387151953607603533161789815674833148362163363267740848239122780020015722046068772258573082300388803217532045389564625697688427164988259889695952086013762276304241922208103441843456043241459551401439754051012245736913432221439348327520716495493024602581724737334394579015429633635366731446592079420324928184413029548309556921940592122652627073014807358893314625549499520822856546600782024238089605588152201452553800572354393072922713435401079254355086415156519668681538561439596406735986774334925748079662566704006454621079799602855051530124285412957525383462796285299701418918210357554745099515037087589737309841984961601157322470713554345646406639624894632028865697880516187075490530420614493278489011078047159115574338898001038496148141720887016675052042705987823587752677721258418750989066287997998979200352921717878110431746938620589361169140661176853760359219156499848285013165995149953544393358407716642393493922066713322230383206939090154773780614211644845360402802078280886550690550898375025808529882719200899904541173195453974967606201041022089534505883279962204026934990855187997966190771764296630696601832332448658682522941193668459138247693177503832529259535731784837702203600057738762368250547795081794860366406181613533892220951191937698772596189572261519325088979090381853062981780929483341605901442884930533217465129257920633962597847901631215681967992040966488656012346746624069984172101231930345157250005843457025526712711238678183537211819107772272268199890482595098058282093703363300949878146003402329174480588676472879813452247804912696201162167494478128180438760730311328840483539020328714730215575447497656363412077818174105364241013412985621471914391379598617108660794118565417727099643529165726908051079483416150637341297404403893886080533945000362762185148334014508668921065179141591901692751591525444095585361986841813260495395420264518668662759324592657557170107421777625287060142508963991932531034619527125530801441292327046678903743104531826842321249276760626464676984200310781885518044346005679556243333508068197254835156496729771186331243368926275395256792746971423470827493039783821178338828171849507745436682628680055756691261749328655281935751804380593929010168059927728553626342921795113206938907636265358803709988744204878189977575653740531041507973063902024901575862562679799771718978833729661300080312105288427725995439278773345304781970723622282749990581394376014050661862682853306718584345856276271823282672804793272108280872024555869598270861957096312074624367143241194937678591457248819498009477934558419828105100537743768442489461670554265475214010663684909556835523276473435056689085758079558232951319657234391891859127563677522304840690285511191079447908250468179562052095191479532115178561872418972844743081529309644358504577322328103784263662774742129953496203487479555059652598847693644753306042444915608786718811260298556782125913918254076750396326732224775061554581642409428456943192689502684514126536186386216986800412174773320228944489076415502730827711508348077351636720902771080687628899916563642240027188183606304514302253714407166989287618412003390824444252124181042614466723674300669993595275574029789798164978579822115298190023257898537920260769779801801545783967487526548988970612693761695979827101759055314168955577479173907355848207380294742546777975826802206800424673980813752661100437404960153108777973687886290802868812591921135298426344437417220174708783941135715077862703830089305284317118802248718499763822828705168479724166921646471540650899560256574628594011890397368171132682115583912486575378124190477395631981220163869058696033312273359666934022514012637812609760441382842756824900982091544421571382741433749721321578321527285619311110123533996791536872322627958320870112010416199031223637648555684953973728828971934755046327177276614089338435428662418151212053765607463919626689657896576202935900147025614289324495640676007706595984154542632060398916301450252081474786535406328960602633130018897971761731118779338227293016059183009407115524915619570655703962403072629849458290307874025227666423226588622874849083428298848290096569650469731041124302750626797061685635865930059260715246897940976681463220369864007079160378584318686610725903293898711490332364407485302419671002902275119021570892700874289771189722042344391615439434502181749928202869442593914664941203361234301729113249188546462785797081006427388949344463766908159904590120926355881955365288751062947574980707853049317217284630236402463154383218828043205741848775975366023548468963729418734317301957798246188130708631570762264346363478872362396442909722215552317442536226159957843826021179420631713522179528580531862656544532950220614551562390501108945614924461100463409713311611410959524655658413691934674353021802995324213987348006879301531173093958364583671110137890078831181017217746799824495991097333086721164855531247703260769916376278697917277982440527749069000490060284670259755410963126592707539991147762044794679426360838520270898277781760045262751296992860390734678844995072272808367333635858709569412364063725379158754219932682439474686105086471394694377288482190104920703880762242947760663475214251932673242646002778477022397178513463938698038263594328412368536003916386519243904100463932471732902641009271220284001570619423482396214822176762499149004378379479462945917462100737266212558008404896977197321341530026600434535174175520407568636140069435044505816346503843284089634385282527779614193503747327407051193836871277448574860120391733355648790804136519554177275954763264743912257092885382173789902537682764702482900756658485427869122966168994712869694373283768004978539264781689442541184661932764159480975559479516460171875323991127544675555297956678237320779010769318105563563750954770097247597278788235786193139977896594599569850920261175769293053699258017208778899762815204829018460010893430691203485737801399121591665082182511834131999213232790860997639604099814965351589065620974481235127715348579874659246024127960624259343232985137392598522170402488525264797618643162617064903747183041822208944136746185517324780688352440209758825715351028522546084864993253997063627556044378239698350182626701133604366500954375108268158865056548907388442423883128409165921511467775394939948446142361665187554224697958769140932293968652845486392177280992109994572802506924944871444256306113636471182838293667309193156121858704963046483698191205420859316172533514754369935667919942408460112395684270781748059884279317084509720094666762496548812447771947261538726555491586877352437154062844386891662849285604621890377633086651402819202031242060443713984871964875584814737916238371523085500593065716149372690109514732932441360758677477318907370541371038862734637423248336939910001338169916869641944696571858275756349290817199364008782213950653063101398679308137503875377853445722609288063570089836372021606911488696815567553762750555019117584742266448388047555138627625060859050069708853913186169386708186432795653595838693764663209338335146664223585822386436022028502326434736628659378034861016372641197367546782944273328866930724492808221041051624746068406816494070242081682251295884848480376445842080285490545633909896460311060411454057244925242746246988013487731836260491689900463944880399626709359492312381171383943996023183060501320334206284821223481748822214448894901741761784652457207537072747311570391003101220940299124012436236712532086311413643815867079873589562259814410778099330425298890230350137101654693929397957854030488910130949248501512614769639612896978732806684787967423710096781411947763334679929726496380597908461931630946256297302649322177261515292749261704748405959455166195392670822598552314047894426729514196910148179922834718244047836822435134288537034434184775323188335409951648159872512457096921530175484931024626624420998239207163461557851212481567819068559139274572104029148311941068809533027905817246579464300716429603498089838420775014043630227321581265445151266642368875992196885454122636619861932557399253173787975629479743130628806190056329348703819857171013278412981209459463836821905019155075230790989209048621404159738385970136476557827090616479782560323829466557020738308800807871047481212570686567169669166135518955772235131376981647992719491804144269687868429622176044349161592549392186200158952372031251484419627087064115556979709512109045108376792180148549272193653369396826153831346559014438795351943883403381117389261263455104474897995194629654708268402883319802052333300806273605339924841860582413383811065614244487248416327037517666229717328060430328858233669732062020453361411965896749013599978895408909750977701120738614199837779896057577183578503610523790204021667278806920681347986078094542590889197227815957069605339964048402790923931496236356247830271253845169134178010082100286777109149339186918036668843390807252914854185187591658441120081227987611004267102151313140853891499062901459679095787789057750992446388381847991002526002618724399682603430951288976900665640091886533480510487046005993028965787367088922016347513560193088169961313984071792105288349842471746950203756722558933390670934907660288426639844286779339652565003787266627989780318418534696442478316473518526522841776503016255561896401343310262718842833451117149092917317393899110922974574050737993182611940101188298675783545460619619962857931257351169400093935307117209806380457309783134340217214180730161205748477374924037408011767735825090686789052117491336861009408146139999911142259999636671458685439683399566792989863643565103882045887036608676394248845409108309492140819785650748477308543623029375858504158506102935583584465832839487291326799922710088121986161060916341072354847388684035554259700878124326256870341276596104729017450426281520839746916574519304729608411236286024652357671911870450461961541552840156918708320125439754269154733392754297984978171576441770756285511051851959649129359567212315000477876890337063693001114285774395272819429119873612996028205315192737467057458743825680913349275270653206099267962935070882374633107393101157103123123133609178716005636596988650156944914851297715347280159265710195234392241277061121346760393552761559781962796136449260867756759728920341036997809096989875451867817814274463170655179056125857967539027940236545303711800448820959191233022522871322054209788493858925086676068992259039108566228245746358317186872025920113151311393019790056553578932351103359693473899806439141955982130149659502927985430904410431675344023141376779312130033151937502736652178284922494431915777107731351518096269714533282151516483462533026335393618198606215585868678431138127839392840359238105222611156748598409354122925554147693105940378801242670738579763914079888411576356126929982959211801281969651152270049289117761468507452501096170889542342155110420923369287858489164332324708508091298092425074124091073210744157179011741317396967894089455714050402532429985309048327326766576442439780490573692236634474734095260693203536599822411161176374943976016075861562900459313010179240002958462749015751034005393309363614934536207593550297108455546832923668096633663621750483622191667626677766805768163794609254668894249372644732042992562927955013674251832089724730480710081344105272957455486416504937192544472401481544083872203479036235980083737207790452640168124454715926254749471283875799635132367862321277472179324151802870786264341357961624699102923904112428512850734135183830364333072057832050028864131898958315580603944062872310560862302403195866901199045266030867358921675822564937123658565717248914251310364801897603250632925835256417129861626815455816720571601645721583484422878333303919002713730414251004466577535818829887346295602454873458533556057962864214719710559782640000653258528940257085893789658934298185520775223113571211491746726496382598080685281359995928477232710828764027990983957988718967369042590370547105750390395925970719754635796865078405248130372200354456680577721818982541643026412885334252875792844371916291250485326251195997633366600485900206480080513763025371896468741170964892072511815768849092710536267153991267007203667505232877069893323865658785951072305510338883526922127286298959510061794975765991166511934977804972702019449907212552587310977686020510848145472644428360929017170288614100710714662137124253333486533814342018924299182695889479537280290971279915231501153575537664801293040073950356082191598577443121222066194374756171965431469420500012410556435519371533901042534776137701132493899540332263128923225266858280104484762171944288032215618941796326046009542108447117790713952200007751113973019897071279895313862397778518178708931574818073345411337468756838112006540032213987769695354038030327753828253848362399717296390252133943127512916779475883626442092178894203302756972031274147500054668056911116929267545213190354162620494441195343702917223436839743130148959891451100204289039061707935233203517257672646467364995097493661576175676554332386627571266565538930550003047968810346534108133414350622647446489591374687290887546302233790000601086399575653352787832530305976963560359117189419727944639522407679053237190047555828038262966363787964321115789765179141227486567114112576822056499955797605580978068825179801187602049841408926311770980839052816447151975710410308996090354231030355213691230144654793844968285049640880498193230160511581070601951306182948888333357896465423452759196320581164382466315791811016944314419220656345978250859427744000721369346012915453163936515970915566159818007523696811828395395769027600869592323786450619840643840464116957337382313853524440051086165037982719071678084767734761403100369462928570008091641834861843957317030715331351044623288852204860950965090396083952137216474147417783460139534338567593804713007961816280271477437775093337394739034494578462030037353765920439317835610256247585254118198963433188365620311754009486971449822798743149329149470317563420344437022977068739325751532910424360979467545082629237142371949136914876977992620879635877217752502344607859452334438859352980965176368251810051429195144139022381280720268786811440077061352264346715964887099926397747358036818823443258534674340923648958416042254862828069046547010496671113378568685301348715564770406662357805912975613021929382450832243298080824134156440215220213701959533757019127472131332738151090635177746240768429479925929520169563483590199394869133638982269204730859919799703454544368621022025938669614206019715514063612855639767465537939004156970780940539967848117801914954360795842515129989538246081916529722864590107727954774744192612283433073796262350065751575106638039608887560425238089772702033070162992729595025830543498306136879232686546198787476770524933945295887042284189235045790228172045618410695807715886269000935763340589751323453797471490349974133197489912931840696332929632680066854586924715287587932408246580259118767469116570285546069574564595589131754853498416830339628505371782468300714607406556387466047861751550357655104575359250793285780810549092602822495010151509716425382541911778615010152728502914178436931422409615556467783807695316142924618991371750096673108176874578451488105425372671986619195064624701834942223581862101443548937222997360541750718425725978561204155353256766458995506305788083283332586317833455552633262700340561431965254625553887866597555928213969377972290344446087192659618897452845312902821443512122734299085926480598602909247603334317091092801704252234273852743574185342566282750829957332438282269312914123756623947488844821993039853076768823121156239214759728666982878514833833276141440079584122699182089644786738074187533143250098238828128175175518323997879115643902694648731595897128785577381942603916537628914002663408609303689254662748498043539408393326815176930329368462294523487842977135611219795410567783305487335263966682582452983296688039587593759694669174289168282883231967224909095218309538600310623790880110716782163872269888392480258395726026540003571858855191352955449421500058243814192483066773556402668467576913979718250376571791537501964514286721643462209950592180915853451802642298950117779929853591548597366066586963839699986298227529308328406221383071458988854604913624033811811595902622021540244582634230096678571713633470548187482195101059493780286329854858164393932261662734477191166309762685641059620396116604670210465292322434504287718669339465059272134421721421364513349133057226661194340573929572776683550259523270521394500192366223187361827867275231973435607240741289219470672111439471391492442887625413290166072682128100403774200150007083455490829112486241792783056921116021388698097898475288042110875530176321156093334630258721519056590703501574592281115453136933981816336389860352660372929278464562424200566939147417106484651343803612539227685269596764407085688929402461555708713784377631031728703016267306883980691297811687186886629091425494296534537117742008969298099399638626739151172505752683780035415859040426376573568149480781124545581706102354015312300399050461697826017117510275019212991097145776738507850445132006022386195002429058653528061450086749905924285565264821177318449497456438903928976913887313306438113898339329978192271978204676189810040248686347200695492385451436383101149225629975273095002667127767114760048661551204602302847525584970414586703916785822486805503834216949820698756049148577908281749646704666699220841899830150981562847955378018648952053874996696306566993500623948569547342351327542992518004746525084696698315295040217719367460589224616715071538657573941965141680868350109927057235218405747624551728525231183128720221237380514109937930732186680172452713916273535863592402543756048068687944910755534075244261280933847413315532046997355259499103355476101491952730254528391479607696106871510012185386095332433077592417969552228318179111502845292332524866012669533072461250095955320806923332116771141944193088141978192922596832483457288534198483172417366967979694827815221684965342833597135295893370688386533799879781753848174432219992349702382897447891872677421614122868300353992267325765731802107222519865152616335767380727585095709952907239957473456955829983299041443931135232325588369091555169381394574111225641141447375625088426242180916024003627617037776638804088618004802592739754995298934706698012320246912132501820551124523222726390921273230609586090847627924928327104521060656615138260472166388273864418231677979805646056480709957242835601503203135494425386502740964577111839144787240047735180944222846293540219524833450885578189002862377094106367411971634390079369636907365836289596727762187962022216052967104087021974975339670864150157486154788237126592185731827790788327799817061454230608664580500520414747896477684552178346311131033322669024210385298886570891019382261867677557827501313375257490055086903598134265868164964465829288106886779782461820773433866099821811828341126942992223223891312785880757085670951514432173216042907201548272789988058307307436574204060229003986483789196564739162870109616845763274206669292143217122080816367917301678453051722466167400086368169190600023734077070275384207378496234492067744604297283493227232009296550359681982459369978892181248960646616503285838232906731138832408742496790184684200617964078164618550929254211455381646637696435373297264087278884656253515883150500660017894858049115353940795626909938884271118845372903692746458965755998200032024191897177695461890735347391805980761458428324733757998324170236817828275091918288298899562790530412355907475912999650597640379267393233197251408399825257302017059932111445800612472348982958867670391253593204553902125560105164907212827486936909940402644384091386298626952210941149423906156232140542780923891312682776273196692044568788672712571675570066279099556619159457622156399986684421979267267677266082352137257094392100297790402579500437350614548969657136522692856867959208150424200860149343183041754398250714086033349591508504120005481599959073782182824123936712849140324205981413560962320951830203956513242785772971679630718512176233013119268541670771857294547786030128670421030656405821896334751626991653202332076772971975680067957889156962436353032005123416238521435352773028122044822423094451634192625894681542667681172500768851680181535269573372610984007925887475195602280191210618551050869477985374991955209972612425272910937841241643355275547683646456711395589596016199300445090564040038736266333098336580340695741070493279763430104611502180883219521442534570300694811182905899288098383041421979110597461648037530014205127900704368640784169403470895587642022411498451630591451938011707596160887801065828038068043877656912799521738950697424146972231883093029682235222748874407592957145365642489065053817224698310766918375207080528370860788749966593850289667830342309739969096692527124544302682111293585485321863964954995924177614428674295775232067667969413177547248764753251765085499461895147379208023846904598218264921099128145338460385325840019187027117470872512753692968132282127826413333391427619978943060379556320303104236578291130540846923618533899367224989388911565547108103959286139121094788479753617358356159838932651140149571271183895117751970880062925649732819449136766159583684176341590032825444732518859783776317225516756871528965768599528962538636013563049365983592140603129164033080892383575020164606149502827726492629194470514118786115642291065868465019466821575275868252497016678824895893720901163631556259224693436827025871379724117218302946826317444383557304241093286998158089914064374716254000815010819078641325411637639595108341655719248867882261239057320286332382177857702292258960735621977414981514913494083439804377941508765164272531233162576449970426027431515418512183951783925718746718021857436801222628757362785604428496618915273062097357701815858958627677224116716001943594261157592625615287716762094946748710144756474507235577499285846597319895336277472986778413334332513535039504781564219245742889549715045893499960839367696321648827382746688165435494274199656784891345099628198915704082848185399140667829117484805416485792853806270201414853792376026301811968996639948070882555664050990847284624032331797023630223202668168636614552527078198318833116144265395122308678644537327329761023987321960093096130430691194782025084917567964072923644558389577288102561395759798586669227464917573158322578488728123602780105015473847002550896549074841254114540486627174970734151948529052365776625504479514419814284132980570516009012205099985337641265364381752040292400497143512636878444424555713957602243826882663415963727404292637809718917607676225863750244513148091055507831206917367314269515678280730171658116549896238265852761817025801442231115675640963385874860626831490054841791767910933077889651535413763562990894499193865367161765545557087192408145432671998708638936648060122954739427061655189988284761380399331176694085242840320398956809904359732955115464902723449996296836104095909994642248671386421583710770388157823856642524006073797634566508858082590301374388746297406474866410531126419112070419599685364330890091920600897390575258971880722371023625980857361196228782901537149969143571127807970036081621497702135943571937388647588714609253359823374918916083322164826926422402188117601182211738594554489896077608603097475120521005863671006888962964832680971596288505957751129163400938239810744472706586424031977581302424997707480125476793856885453954776412634958163754963561489702203401952189456425454561217360075460705094502163765419319222416944237971853331889028395198375839185881855718930673960605438292799186059489332562909192050797517366030757874821096517853660642385876267846400551847553892692713504942822094229960946475865085900922952455666598927563925316293829925798830175060047859399880738461253933534239123818119351881223379668125096698427529679589595829301378142969335018029875003752684603029734598193708605761607393475308175119988292820178326210878209534087712173774757463383219509645288054338398082286593396074822284002254697008602056748840730077688128519935401113019589768815898924273523463117787075026660118317179436280351447751034379001352189646166193074923857970719229946069540855083562028097803678779778193361166858451849001896681021508070933079193914830287771963615431687659462663689552996815250257819343904188756268521694584693112892122338309741582131469428158546785366035533977709595360299525920194533273156886746490959140487333959188143679800810375797958781619746059306532564010828887766329234870119696114398017355701665661625793174651724500791812982565134836221510880027960564239879140774407340499731952767483411269288914170410516838464712848509248378762836175003016143775182717596350344257638651423832863759084770890489920951288021311140802792355886432283986247232382705993732966230760758928259229254680763740901801512851079956767089732533908249505841981834220599949186394175807493421659375722399521208778486409933095390075011813098535157150828931857531651319988556009947967767288400621103621164355692658509072185196768664100182652960966372611073536628904979761538868244648642271572614665305539543755879633550969685974879252156095876255119274688254392693091587200588024377461156088231953431307851644042448877704263278230721019490883856808154754811845091910534457686433822497183557622930970839031647577341510975108899834473585777413618057288558171167331979421320598426987756613599603084107494821807819337134062585163424157672452232347807549140469829685715215479154484649617775206874015892556557784029618735990241081273033490266897121831355681794587317116054670683725997705189848196285124314873662672427062500828351747098357788313043774469458086766867040114955111707827702558010239182858149484823685968067636600283025941079924097576513645194955393550103753829881456065457782461426489034973568450948371608258357157657544452576279729783878203547694858278243603471124901033509698549714023175620074554840307268839494983737150748534052266815849610697421083643277741151673839940141863821776455082342599783879791986454542053078213265485714831731061742544743689657043017787891619428538963446861999483251739192970891737470745852958932470575352461547559027700630934589382674751839004582480595398309985633318529448341900779426743714684294199962709664556587293370080395211415760950457493394256654060414211408372012375511894567994472675948553208854138977367089525904481936094788346967657578724415825738345295888809800936117397387580000019776849284094442659052173500133237327118624487537043076024843313128265334444325084103665453589887952604963329601500595370636435334377447268500169508360094492081504107194134962950037623250397833624717647138848425379079392656843025155939481361806001898146310665433236267108454767448184544920182870274283205485619480052429355282381918333833043359770639908589703275921429232984003028909685548669925451013691364688080964575224753921297724630931867191921631619163164937676725799158991053049602063474661322221468836784093210033469130725328393095569811229845451007417601369059005726626760860161919478744535600758602733940617808781430638935697812236093849341268249086330947815097434983367468679172827190220772132328470548139522852861607941478317409010862639217804804494430064995123400168315174618806846150147634675751340375714427137277568004102092508362707517262364310707652463492709688411839375461464073438553261053578302497925623438568008503124041128717427323476552345134532295447286360153475457106368639968042758446970686005908938710740323984163614309903227862160851190387779910019027664337559051266747522556990521858754091681749307946941196819777668561261931990209971166927560923109278133282759396382578402286080221603836334472342354894336809201918689496066212743314100111904898881290434474582736482791477657316945891130818344360545489110535974818905150214894945081781254463299879113989984590263665424744498842082360458950132668825170296127384947321028779185821920552731648247233117372170195549071845314846648142960131462513084498020189789848616570474103432473699126268122443944990740446790532423701885330960662050757810260829047163397181977268099517544792430061292755311955394710159654605845913735926370754250781731639278277893589649590306795579267281727831289954500254455089587706050206040644394533842237643430145629695517896320891380842196765887197530321446458911897833821065732868863490323160136285748786818847088638276321187697829090321067648242398101795166680849391480201153306601352803844131779800804767127983873501990797669934382986274854432522950836130195574742490518319844386560085716714232246261639774656948033953451800407005672097775256861750868846003843928957320207831668374460535345152766177985487795256959459690556494742109003924612755378870913872909593676585494657520373852075557740395394571213541560150692823286106671529590280691193520045927898444163625057984890218604196801525689166035268141819327862864981736879015304097920123783366851558578864571396049855869998734550051396200154863425268210343289191111155069475493158336214564324724951675335494374678586990664434065543033196343569501771691040227709772779364307417870771306143660212582070264007430672672460630192206795196941623364107906212238936452873001752319253772581719690864156225873812616581564951207025216244596808525394767480426651338136271017160708220742424559128963390089896873816322847755542076458112329873552469602562631561432313654854462230027318800731941734502612848705165546248155254477411355914191721313114348123230486038397716460568463057260944573785789490676341038290395735248732572199603164111613161796219231106543299393161473980972477659978729374853895154232353335814606693712957582208906420300417349960317283484350007623227893553956517038502814171878405242666920159300445664405691681340842083662882864731482999171720893563680949683903498044496450395743464146889506669272289527892159310527481874215236524706574927001427369744665496361376195085053169061402565226677511353952233519074433074441147303256801481085709995507584215158371265746185771262458633977160780345662663614063256270012991463601400970981622786646852893134379569736099712078695559333213465101335258367271158226405547971787073410696100798858088592676713284244937065043879179951527876555725626280001727917736150727701435158766231958128488066114864568365095205166926462798017470846065402063907787253966585219813051813360878223669991755287804190365928574994623045960740691444601295368103792971812793908163203253665876014289148979976447897953875820031874871210097952416045811398623980340703997443957598182686566756300048093192303641455647542452704667762327282000843795596947842478017738737413828328082196895758953307438490481294614815602744484393564199250302899840905761170076130122910916917940766526045395569092686846415616931894406039436487706648324208149686563999331106341875336039864367046156661054431443560757368715121776343995031943401238886077492088925537670765226620328999738722584071312863317314812548382595369417349877149059832900000128395175490895861815011723289176250894684408301897829862024825295932921348800653071149422302017665566128405282883737592711971646073361844957745606824351040845816321636713915606672540730501592818794102543497260335176756152815050346621973478963730820111711950277354994887066021227101036331146024231928690745788272364122698550573178010690843355991233216377571048763919728463109766354272184145509489788160887190546377630173737107454599785218477288964223504946365678882134211474168232560227844494107380673366071244866031438584337524703062353025106925648790233531702575947302133959367067448765508985635009685468300195761423554967324588185988025171178559466912830136911063035482261322528344422260444615533699784540756533206600583068240406991622635824762958601871164503991460014427777965430641046463438619519812292902198230962183772554201641186269466075937666270213484614683657620502884618290318102703821502543677227404446989110127274955822988229823793954932384957037170802412130345962066463844621458851748211681064457383727990114207478761364226796401999475903655618786787629757732969731491493198656951924754959776816479715009637504611062587266695327402752475829272538805134328235262905860417256626792499296587058372758780437508689388686278865499194260000578585058816180350262876267802442572044952783713618401667239057647084813822473756841755266643328501602276613859734698066857168594186958117833973772152488032833372476931377182392261109796909309912937693395841935513048340511546142301790088522916681456109684473609672092011002498676024621862020595522134473690287419598106007562733095032481000437072368627122527768176431312537903641625991333105644867744922316635725851310391540811831651753318374947800113604470304138529496624889974780264670449173873943714747233538307366234953567078368378454956003256140456975127476681453354567560901720615349798065990331180631195079483431139680494882265916516422160711500103462047772077061704118503252780069649162440311878387431041848164878200764633291238761821734809832575924787651600386709571262638527048038714124798402477801683603830110631848754111413930039647223224341415604142726453408084842379979872812465795351284551156100986369010359313301330810032109224724834447426521893248109409844342964829932591834958352685175689106957934891772514564050366029213184722471004603786873020858652142870886457262072792821587265657954911302125689794761454636199966989538777601726219331268381205121721721186160301501583432505640835049919992601672757786936640949550312867267013313943886397759816642100107118616546103287307607076570824464386799645205925083809955859418771088576552310611734228208645807840562067560714624356449895344969539821640177550176150099239032215758250339304533632560144302420502741924049904478652836766506274086753583019831012109830424714907183929430015653946550522435675367963821579094873693195297875259591619246541640493822209640050481216282302276453454966259920668205888339904558027247505484998013836635756546491480042824072798174037415984471765498076266243974309095664086373614004397287474210585219260821160738831453526646727670641379150404659989288156937003824157736139721689519090313822969799298521557576846812881227005299998675932894040048804279936795640179720216824174142726186359502825988235108823437159836748893478748565041895243786278809730697371585714012871495969016184641313451960764978605299096646956352879944408489380688153592558637664712423909908600874759935382905561493672800476366695796965178360391424593832227640694207381857264750150273206177286740619602597570555735281436199064989882988120557326499650054278889946801727863684103993085245882010619101789790272800772374461673758100858530748121691757926338954655655091942277701930644084420293393733812081242879197965933051881348100884867198698232015688358212176957506284105314521775363831407212464970609373298428865056626728167017483144115140422527832753625280350397362907751102154508884939037197953810212784461037092717686984071608710108041509005390337933678536515389802202362891563181639282901044076556043368561479191634511566308108467251253474029963290524744121322910800803463862448394271277630276095708074846816791278113388450616158821673064061834409319701523888859572616689687371246363551783990948666372651052451201820453012874348496647944256904244984206444093404144757424222751101972994579395986109647405919770774395173143118006737400604818310443231154318146462880632424275789485116792097230044676123559073365332979425214865070913834560736346534074373662777218160683589961664118659248748754004714057305701685355406336014981831080206690648145299108981576751983386012780445699249049414157819814048817385012861010365178617596124621062385079200209548095001656520399422776578516495952947377664470149204889915775723729688766633875399859364236776068391215925863997612974522534514282336485360343953943676845885675683797077690620620266548925890619982932869526934737586468430950674371678033544743570045407538443580258648286684081939147954273631975301765422907021319965930256007620905629797818530872225910975941316076340788632418551710747928841374894828565822683624362844322576277028713046311928218583233492263140829227968012530926662610835826677767473197069144694146134279869567608648342151885617587360905103646663314858938903408137714962224366617633772741208899237634145752194915945715254538350226114120643991349818545925152472400881150944787175700829256363102417046737443106949201843384527640811787079562643720643105687589649704880470331656099859452628684282141832625619529306850383875860419500042542933290103302876890242108265623449967193967352290510856489676925758383305777783964298372001954446694191241891059859610225634641100419871417273944815719604417453875179957199058023306653227372240733115095964186261161538773424370959148403594444744013031337121947936874013507411060823386065214265565089438053884627692294670849154164956892124391465901943040452245368933748226965301598306990052428307428024231498636184128295846876132941708744100172323048475655304941615024043359703170719745595800046501301064752673306132933523803827390760003646652275273735743360216263427941712489358573680405539467223883847383706078346053981925943146584275562384855648990973863319226510848154773786040745518496653053658260289836974038276313863974982127113060269086505622462633544119410659894098784130675216698315487413250846045816022281692568516286937938589704079092284431848256575424368279526161266951900929863286654200128288997322906045420369441752601991852166359074694969546373500849134497136733507488334792636367535181823992233877713108733598129162282716000627370840249878579123699071423820794156918953730659879568436796844696092846272823500033870604484940103730651946984677999173163674774951812141217026065141297335662349832425526984837105671602952208403414852856025764941804416806850168977573213911430980649026035823017630784176606737824562666245571840806594653353948379198986567439138893804987260466626069931017148694122601325597657400454692436199651516991561805342966168318818286723878258133756863738324687165589909282701135602794047656119855982179688581133957245406094790049009077190600112043585457341642610242768230186956233323268220988539926703966247243672135877248438155223778494493984173707340581928935696685514652311882373750141006805790003273455236721626973859472351675240178412244147698842829965592524890375536484624748254012308295372410192091378984288357107182549118053083952871454437296656802940063123100266553137849213300420674095537904049744266096139273423422746950218534581829979366914115060065788213153649789823047604382744995199004369646162007833430078072900766656297655327758555221139716813167616807146335258283349606248865421541366875395803333927988176417806271464445867076785680477003647917130394013562031694847352450870953767141056166806417717496626116174628933587511788475661306695756218301967139184836170391225252747044214557780465161509635641153753305065952981455286512470833426829115741482663320663561700644939998336611376422346851055562530720356108575695295104848811905627005848766124119786031118037778251264694622266357123315251559629833038070023676446287958773877116659171807989129932771449541160039989213760846631501455236902441535971813582587981567914151296196690639047163637347446888030938030211540538316959640811748116175802174577372304836994752208899659270442171753296545771188443214789945182016372699335945928866640688897136951059665484563606355555051364439687465822188178696831802935063621506261279682360896055812375703136861983017222818565519979261085213015632580108665579516905189376000164265423110685189435506293315182448026238469780947175672439310711724632757205452692667116658619808328778767026170317843307112553761543123171100748249454923272921711656527463849223531250114397190159224790556242898456947188274081855776348316516525766351588158665096546578295239607284658966200061985992606434048564944143105264954393635000924932040989532804783196858984523404129241239912781062936146528465032170469519552300996050359499109315302322194788240203151661371504254807606531991382645589466060186197124024831986635964490604465304117877235897486278111675371735167425788633784785331596980040946619002261998851413757160257940263503399081227800656660935993082154496686248159564577317312667749310468017537236122332444912265549821936817278494217642007998440106411135076489926220109100171834093931936382133726258490769195341597946031974257627511815513485827998090770048790303808879345668000639861644790369139792324790200250817644034430033658185816739770907081871446018525576782005977489804093221726305433987564114147854797253736052056958752615954653745290575972342268316366496985746139692021608585304390088439805948376143206346445452369034467898063648628665014813156772056637363472492451605062241469358446835853437522916909648012060403253156840244222149067192090975618914878572489832396947227750239920032308943855482587820037562177970414466327247678858204888066656771768456269938019305569685454964981978527241108523099744774977737320603163275552996526791482293403578928070966889174858867985377688466931535840679778922497823247045816274338677519472608836208928860912715582774089562930331626498706587125122044143579695514979152374048238175763253452680204551392266550442968885744771749908688120359892985503082037951569929902467894367436209570412793297159723930242700312629601638091907169663395477475776121969487669965213731717167095232253061386805167676978233587219516930398233229003649606003107763482582880173585674042979754210093353370646425024741092879772247490427680039141122891802357396403304270412016590788985797960326969013073187061212375430605985678567592004961464765620563321404317038949326900260667747225929276612342862872293475266954105143861058568969653479921909675115411433929933766680232299925515451911451605625971638682407287829170850483943814880698931521713913609114325500262334917896028844406333514889390587891833546339280235248039042569912957217960692316946033196444259033269626176368253785652303372100667577706518377155854266808291173197498392712731511266136649115933301773292494072541570185055306832212154553621443390672660725480572532377846987302309305386785001943924131599343120807942167258788676228084997400026865338226072011049023636329119115824749857162650903547242424933569690245740597784898474861733608061099977442637907603436291130169453795051714574639733621559410187395394563763501298745563436864108329774787274159163069694118975118793168419405993336321458790684819895863602487090742672771861939062750893695706476258487280540426627603727974339361570813197053247047979696868422817879379641877820941001981686085478710980307262072045797788355465338097427638637307632761224347988985812481581911788397841641844497280554845287219414402900888214832532243242525950749173790459618783274697148536529545341189943408321242830427170841953621454484192528879892163642326341535506230189755644409525105718928041924664280543867583750245006385533088904525594924118513893953059354693152121584367741121100890325543843261048402210303760227716195403901962562926840882038568072351522118357931524309352747170620797324616986438713724307927977227475607157472739958663218486339874933502768328379419899530495964087221210315521521322349536387460086942923828357641472282580077433418553208499416468570674010441618219292608365531246890622785756077290005462648723257048056948629340574982123315287210368544019646779795749507659318318770360507618078124859602510936776522987501200864728729307156637362255457339547042644559550886866520065389940616018831136933596974792741851155266560569196975857168756053775237778857927235346213854879748339341800883882708016986374115290143655008014571012857869541171815103971432055374555927335237911483961592288592602600082234955872558575637766813612750274406240975730212015712137494649905055789748087180380198145498193167228559913899563166672990688712120016433929676935535454743432636008445965045294472372535565259415323892528725869863174472527241781182690035227988986356422214749287363139289652045203547366675242185064312764618184327758697583483876998020002579775545028530212105647301121403903037510550413601155346279629462475956411303313368306999954041318366236451393225114892520505501050597434089456575505421235250520994573127895638822800833396395272983795040896171400563806075460895263945142557289475290158770666152768838779452397561421707572325740187379516870075442980862696594591549066745717788732358834113102708401327730027322226258843149118864790660836813620751404856876575879979609720893669370057161509130124707075384415647418935971845437179914772618145071761037774354739483873202217733008295795801262994744177669087001912899014059955119611234733433092344450149400409364013566558838166574739316479555856034983279324257539383071000624030652170304708457691467170280546317350889860804494166353148267784635420002794332339089497195279923887861321017676096546006234585213043734044750360089074205480574124640191723303463020418908597400551804313257028670206025419251434856909609866480660132472558274306529131697236351997947468636635395042243334909107460766743601889406763611002167301798700220554127301581130630857467771642467232074729624504495273505233254541805095626547448244150571801766651343581217308591672836885614000334017248279191415488581934485661719149416425295590561361008612632974970354232936058379960458819463908956226652319767588833599184498534667344296945018763877282891169268263988855089432802885191265285819462307897169546741835560599582489237329671589753209730909159995060100615999369370153362592978198540213872802852391144392215346369906579801783611724566683848031178508088511271123840608532733912414997506998191981345258173719714401319090849915425619943146252104104798181702497338402054309786004394323261126471037659982802850033139149739819355473584142252705179223716184871854375234830740116954112968800916366611688784137806547448923360544818098368685075399015181214617645452207731258994051780910238737540551381940291219912202153473672625689658711565477329798707877261966936174752848711637293002000294276790188425693253705921237909576257422212161849311697132269062008950747541365001947449331810555425438089463066970330319680390575438281330107757512410360926426830958023163226485851094346926218203656350665453052266414212273571237226058933472210877342829835248459933789155179613988326119772700965258781317334696346055520677641172083391836781170082102394859557359714472702891693993890167418042988054535566001753957969361919844042912861173540212950887332227357043221626786176811799473752163231928759191158117692330246408817531797896147011225352857575128337492493220029753709642675766855266310676536899365218150277601448155030504983067729747005782270148725596297913397965831852260848801052976194878371820314310656857760301293809835398985574749600619791908895666168996873530842697118511471400479013967379593693163127135652690572435493757314245953959138283004901620558020892679710969303922695251143872159523425505059071448973998248420773576068807600852659314199898627972842948834263767205221951870543045013470502601959124024122542360738912967753165764506995626546337356153489982328425727332570758560341702672246318189841870073235168530246541562464704031081653935887785692261843967297142149885458565387330523946496463979800689609654704117106592870646454468548548144293866591634967721859855775130718103115095107014488311331124558606888078781914303951871906819063889985693242996249623643526233551879431417071465885408568221772077339534650074503718024450449324877976058998203651131840935062196321779045738553882459817995830796089275874428821684373672884108518791646453300679142695548864478765719311055998983667947415941581480357506174795252060836303456312859937371746212045014427740137635089798268139791007242754154762397323016049285709059927515478593913148489762136652549537755967638841940658825534886918684516307030167040599092002051048892413495109107357530798215133061539972938089584428273906204761650979414446328754778187078862648439369479569524256082857021125523142050923719906887731886533137769244719106135420077662473067522673333617907189464171639883333056614451171854330716540598320839813595496397018925325288937185787559981635944235700772405985264134556808528901830418835720204805249310990600432890241483424981002425575721293536673743908409294715408518399356352567202330115959104516057026170496779069774542765386134555028242265659736455281264360976734299963603784418291826660556371977301185186832011318555445300908784404201610056464016139837557229376781953101972701388305728713865374702281587923729815137447546961671673042046963429461577231930992394305498555789548890606575931243580663703263656689963443417558250019792516066418020847994543149299419766095142955281023083473875790788488882024519805967018116316863480743793744898522048050457424115810443071590121239358839454272831416790733573605725176670844656304813084375103133951224052392916438370047607812454835610159458569541366109210491315671998839095652004448351341624785754820425045832611283209599753182840458934764795693714406343265373255533387072177915559729499890217807630944856411773086874462124561167000978124328567649637017065778007076780409296439587989439654910680370231684056606514364153943636626735582347536716054728864295441803421822518805268504514565628385664025692296910133186634845429566841513222635714284023014113455220401377064425206369887839258658184087758410118209992231663428410665965274206472398556178763035791173124852265019767254719495618378106710754298899133745821895452459724480356056777021156099719746621694925163631231051881947374046741977702635639096113661973297004907026695677542262464053059114025241827774573436795224070643012485969969013204179352785314000632552938012304879840757220528700834731039243341062966232851992926813460116331131859542414527720439297992364092593879635229006071632736061826279215510438219534047178111421896683520719056539843552593773698241617215167147144404315251935114528645050066069024109347648815189619602886181311046854339093579516793393819131988861828304132446094702563603818655370494271581175405520951146045189467943372149111882549033784837352753284932441807655496603707612030930459128895759102879937183383700232480999505617508580615973570308377822028342981062179497896438284219458357846984587133220033804042258091643495416322347428493642328652449578826198797722004434822619219720076911393305709991175061454647086189690360636991945917110465917825493641592794292105786427812467500399241961686559998513870854888632946568285600753843186818479918354503592620639486065418785552181641752356232123796972383058304962042521841260622007763932345486828245274589515805461824244674374800650375826475133844689714705965549208816482673457099560348197297019268535402481211835962716225391400016549888431499708964994187633819750524279430243369954805458882378867286676235739391024007947895761710748398188380619267946200277809153404295643637582231375125253945111325679158458214613184643437585439113366866108451618634274630530700576517512410867164753556354549447311930539289153017761422535494540125490109886570012680586084212607688067427584156903640989558364542951787244206611248424610719295695556184457289774422272620457182405675354257261844334537635004247129937312493873319674913620478401969158953429721846130072733083211767663740535129036477111576796227578995591112428818945448615108352025957451873554157816553906314685057555350727800301772300658463762620642290436505184966804409252662361395285020892286685808668947218065152585510135538382367533579788040118946348285676577735652676284963871481469386337855674889622202231843240793687601685804837004368311235289694980264975977445944139314766691436881768221572367182237160893731279902234490023933690248326853392535952127482554011053902923485766971662195619727721060065997284514092329572997355982961112335098767007610858900619622650128763581287442169164774427229869219476268756462994250923805780692619242153536403038476085997034526716078638044898727896454102882043675947637526230636860533789658961787530439774931484298901828292942348754722963412956503614408464106022105011970810494946601479675474852866340545312221605600827661487212008207859497040211739543112377560352809443607758906235192359461479214142483046311961861090339086459687786981843793348165420720088313114222299922943235574535483467193612762453454704713076537429932943438038796288445979076001157980682189307807290231189563583141023667255494291839175812292524796156419804146848022441322314574121877569148474588152845156249071264623160393954985028178173009266449358869133397793757582687798414245127027663621952447501804881372069809933279258702850158607059614281275438571335493134661566389165762424117739588287200717767376448773558232701747538918850768219172614425093894146531530819160067954691066067186096453864731353594820221162762951044817130306690988387692145267202505958469105960388344977617752175795671340722218238323820580545408294522513890555365431860182011655064439558544911021973681742479813683623403919623875603272283916435193760019272290359069021680614646427962292041837578210540935639344288980153901771714760359895375698810386001472431684869852822207311008550993538755210035384647983710488500712719551977319158379826171635831828461770920559899828438807739320015903696630581468697614946298939186386560296384710987053994753100265666661049381591884992704362612929997737216325622565711653982187794194398049814082591551222588026979570463065430911081143211521506270700139229355527316328721376841976959015425624914550004654712607071526983495591752432036171063066790921947870897763286831658481415326245919612449403894975078171888103390089834210939076653952377384063247428682340493034261506909746083869479660377232853733225768806166569701314787678682881808926028382493648838049679755445887695983627296665641548482358524770062854773183170059997236458430675135108820176524390790610404340581357332331224848543586688803712122979721706622533700791894838809376890872838502574116300503405977877478129070953231362528385258567745639095005261924100847860622121857498943689440368078841192716121979698866909225868995566672260816732995333667810086301557182396419424035843311673302176194565413903696792815718685575245556072148700577206095515403929411819973404597313588319181791268931785439476794975995741488627587671726256032048462578341224637018667103249681080741135142978824649797955373785536477546623071399145184028022979627720764423979202271213474004003417763883930830879904357594354865541359161461123621243739615445635153561891885941335334009113600053112807485543139645444037018988546747224372404869380950067382949196000431578123633666269523264221509696962246856390936047002992469272575062974509186545031000758222726040648791170751710611527184517747515092934853042445021778475485812662032631057788907495819134462744185205064136275844976257741394762508124153905063560848757592514552228332579466826491677591896564264346152016130339747709324411961396317177599514230943872864879488306966916758818788252461058468905449361397008559761633458130765166802584937191854245244575498770995332184325434973820444595805493493829778695356832584112698169688083025343405786818571924983008682082163655737076791466682026968492809533799046759902868356185283006467784850613301994150235061436539176586606174574950049916906943620754278926929825087218875302056123951069153427256465170882863940271602566973530546353707738066910695707405683490266812826748028200949666935519768652006570478629266856932208305556240862040986661618872856321065091859317529180917510752136776221754849936718563772008310275758889573390141598754675336421998471751986952044862663200884003208569947075183179333441230985313781770943305679475327799252855806237971994790268782151649443271091729090246828586033696222840089447874073993133754844611049562069106057075491412803879112559849827906109876180380694666292629019482065722778517928676936129035145481314926145586843972861399254318919337061220581709236647146038807320425729562454102351676385157235918019047286685506772561667212663564195160803206539069961014960058608198689029035547928254233905219357078006587452303759778940643493542379193938756003659496457190458043322395690704782568428081203299284733447115859915244732070351414984681267936020673446434379261381138763185717014506040607853400475887499537856742674728651752291547169711898590848679120646223243927900569321951287116624650372430077843017596899943721075260361888885882081228512095326267578591780575436621596711851326672094961474196542844274652273174266705709241506192480402615252185490455861229673081101454501343198196937746413098486611555213616335767748698518310652322838909374581276068556391912970120858747426904104260398558410504355789843470823819454925059074413016017802107190717487229640904016893470674564468919339416825600036983389763545457923263111705447380978975039810857438438388467742004779500001984637909573588084875701231385224012862225336697678915769652152204679199487917034782828467670952537576174887228684047008728268811334021769126840613182356344883595323582533178770575909798402230834930191026718657803932326251162494469381975498847140013052894504350988135849681657204225352465198336867019162480020703890350621668987665510797443016746754738681871242542559268164355654403428972010993009528971746807855265599849247643700841011952587788694424321812439893618250695718037787309750164083794153008828611529531963961110275889563757249631326097792330968466744649645009384039389025944100861069392012318720751932005146722867986911508481368896969355386401113292158071513650491318744170327796408067429008342433569248730038837035051420107676657019447819630063129238146247820373056889699211183919348391052790531927248875740800808939136697987647065232431403291619700820473863854292769920583019116891585594469547278414482797894792800229339166983518041283631411166686276012182301266530228627892728898107572113033191830143472596345355802476187120992843657531918522432635255139609246287154779997468812124996879126544922454956684768825753827255058703580619643857219734824478379955613581536714933359342554180860157933445807271341098053643136973810838701644796756031252876927940522769671989858472431497292122341143610365815411337673916987301777537099072891342154869867782398119498809601983809987241112588761943348068132189219005965171685842246894368022960948573603606777338108626415111675302923127587834110441954674948569027630421622553027229332483173308500662021340673753109010624088494390009328552940660800328005502975151771338777226837774670848539153407027483951130654445092740315737002334102213507449487925732758543559735042594637384706247704618660340014497602877208419533200559493034642496681162534731044194289124775772649447679455999428403048348298659280148453092085633360090212285793729580279986847834021265057126872316886883163407054080206259372219312495200135184578965592199015022449150495701097546116732622081074336512911392569122058880823743849726388887744332694865128502459449251418159045231827824730273830394615514253718041031043606485065148130228607286192492152000632380666573129270711903880172159612983018145597019427765248090029877813429838542469619908796702384062805157498780177186714888632288836307945023368062690202213451116407503625181798050783698266492700947656118413735463885214430758731392992845120138782656787700669996337884551144293087426958421577957583814754749855436974281728732655665039529920824004532524410825077613014979808283173116085649306721119944252322347762130229270607228774078822556133786791245083134278310023786053221962952550231625830875143644474969166998392832591533025498150701614385684358388591069972506938392188629538545981917143581794834035737438787459484208288269573109230741343498691522415632693636051840097054339576012511426914819536821814900131449925283646011085676423097696963655640542486936882870183311290814561510199409376865796444089972058386755387381975777038386663757856557552708409742232201390839037371569675403225065665853977131392126965282130699041127771708875510031606473586810795857096808911265472501557816644547028229213385299830975825185306144016000674357649504447547435330575302854724282207401785100480626884031517438890143080535866612936937675783216468340619093942370962768945264525888374706497073896558038597148677165294510890064596175190139922507253836080053656705195015487895075105176048546595382001032596501089141264450256043067844864275123006466296508838627387820696886506308963957853608868019587413012119260061769347905571213236393521975361777366430344901416839812720208391481148385566179623058617542737105275259725186470750027808212688682512184925707323859100151596964455241499519970555913461324661164496471934879592832554274435275395929857246362004267114686344351285879800277952814802327314417912893480628869974304904642419233403391709272978736593792803132943577222415764326683217085647194700964179173420097376130933976282407723012515906569648139000997054032007630971404265735589811997128475920648648501254732522288063643421345736285740807641944859437490328499278867211887474697482531411352077669042994833382853673909327921106035267952525811724179153861651802147215145298533109163917126065153214905799962117070056005222686369831054054192460488878941340675412179582990368064820410001242272717103920328085511732352490124214662263813682930425536267019171375836613193956004349444962900394634428239103857433900866644729141182369156557133044040469565835004310458647913250909813401971009811824052120522314639994940828769694552335651131649873637839115456460516189851488614785602738594248770014292996861113010489070255511408099871930435042701359348188141956790429095253409540031496775589003967951597034954602683991538601660257361571762211635969604882799245180236242540834454471350872426268130504525204558321429601260573387103687158464372276518726054568405123052650719899577767162518101854882990737360598438707346803148257005644252801235181617614850853928822250105919960025270314003805127428991304207188147128511136435564020684800373521415244596805649184158732569571500631111873140540931899179102630554967599163737901458375991442498985117620396392935193050175920783617676356671636120977531086213859087363506631836278276621368846130182465893089113364960501377108249928602228976223275565779234298085126202232882414645609267326838297957781528010481955582589960132148125236207069553587497298239591896072470585409748843636958341743518442272972397880716144030934271557786363373910268916027513154953223644175988555048685424640943345549101046181152955161418256301652592125759111507651210582629742536039366313309118386388164725711987340309614261626187158808417656337123547683900123580901619487489574591619353255244495414186153731502485664536116354491236328065150389028597723120106395910910684703987988440149632056762095674398869896863990175982719961892484889032566994754773092563374420708926268186702173875639537571440697078570287548046923257648616861672065539178241596504137177471465926522048829468971461645278134323028159683061574234525556064310552490594803772771569690258822078815092250118669759670098265591735030824527615426251134702370602191640327564369263916970269934279673330099709777431871402205386177908535413122200999626925639433708905496863169494726093095769716141921459925661778816042466569489939966706617945260164456261090777363245902496573659112280719958686786969388582166755255572303131811894440468424638259793434465737304369338925975080024384033902025705771498649647481380651444159831710241933785874387820882494500376330285395502831063128222853375303006364508859533483765318448080782778866824091187364227263471752556336952599566354072054424531425375336928705234936291919745830625411652162834531714475664116418215341209248853790068114678302326679268105053923738882459580082671675151794543593057915824331147273231542706896061033477678676945008927569853913531649623952503854737309408210127695465573305878935947202384123161865397489596010446544477924572594147847161986029253524195264577701525422751300016212780930531202405269168740542588138772634258022238057448989348150469645218269418995715849848844890502463424546025950019625330472197019974460137807938113700728891529261487240860720594701122012205421166907524187789643171005766376321338378100709420385893190652280185918699543278955226062944527940017964988925973425615244294130272661028158357728750352628688571997432229573757849696435400242505090702816593728761405383736488667412724758762287939504300284235090105515684525764166626833150724984398319123804371204368096770199765077698275922078326796101193872780216501342095235251909870676202007903591918766190572361353809336294996663625761145515183573640097684237476392653519426461009686989928652336787980194290643216043490332070267109897352285276581431078235975255034024905146987333409024333867230952077996283017972320214851468387974362867110631793416479282542295725995539531484675714043987567286094742698513840594271343125735349719054007636210375462099107774836634813081957868293050282839418873962080869251269854783501368115510110487698684409396519318968831372683837761598861271303615942834911380788311792157150394443789268781092172872216027425911416584786464160837765593354671291207452291901523947668016400108998657869526359504748396096949219623140638064596986399593066792781996941300019643793178868871919395131710998073663938028356009575314739251129927903352235417771193719395172419275342736913515268827546002248122037151595286659177522376322424593661468642563133016146779553284449185369327630274245785394171032825974095277007480005176216516900228518401766075385872626058519632063405071000086919917571954053198732012823626902336295135096315310230092853850111745465609158355437545282251775474707252104968309995953071961080635211576659182674266660579970187053297240379524861394162357373758719178734983590000227546254200241612199860632877997052257588728185824087555221895553787959326426345706818253278716908451181878202882641460815217013246100130960979432805740078938960172273748455444485880795284119231507197968515969229769626524479599233406696956510439220374484750584196382304446928530581845750183089190037647240931338640419090465505723757988896323909393265123774570961680968119217233802031155531066838792890757753678093829756501212824039154658669457171544204374378479407089601573716045400176661700589113806603176422340748201655120996128098042793897914296051268884784256012544653447886444368415573014531667109805930547704550258281869127858404646773588726055379740720740890951701322357250202697790074250539365103497416469419374086273626883605136463105234782692715586245904560845847428918518631574688264818364849559661993617091423489469193867741742888123949514695522689208880070890497479316438307954891545146147279063837566476743023228093690340310949913370549841107273430470055723285417281479671962304521276964774072340009417082228498601058825371960453035320689531496469858668539244721972383874954808766696861219293816039643417073309876054376143045077726329751623174922778207993193772261675655924690407128472422610367918344441676033609728373248644548768527708393491126919967657474468145524237481938949203012891897185484924040865643264499393321034432738963003981908856754103195461733172065700630282528841561932771150505843692017356944321598314076474254540168773203365208188657594777652119195137221761810105780930653035721941914936708100126122488164448184259073439177965335027105672484201281633635193167639745368178773846497454170132657735429948642531235267821770071611140605236831209956218714433654250861385173428903971495492332700253330373184669211778132475443768589476980356524809775359942136584613701387807252831508255360362337296726016772157772214447414538175625040559445425676487454874757455194489939757504208377106132945233435012212594827293867587898302863357613851254315387275087717195235163861401030256280714950075806687853089905626155572980784462722433225405737058627608810717604177192731484776426433114875043311169561321502733926696523710667486368589909973343261670957735734909072964957665154591026031817214000403287629887608912261306245414556046151378823713574291161333508194693715862633442276510671655324406588106226615898899352979643765842835517960532377124459078367185245615219060192466223822691201249150038054893124079069341659476315763539041758147504616456892136373325053823702634265685845014982024402049251713286144135440583356855847516943243870241879064395302188776030936671118488424059970269161558797248275099738934894349365595018280497728172903680763422998344378127363667342401245564243932818551020157998954801134043064837676911007194808201811301808867328487649537898480086780893272406568659756838488302040080126733293489755059549582911969628853090183448309850937255041901324484251029517358452915208303419897161868239680862396872640315595990033721575026756790372679995600154725882647133317613994773304421613752174381943945083643452798945604322931479170089653166528708149026252589936702677074362464568759021022430370597551871975071099482935645113881587891702394447207161196459385901869662324769532208401438798040057424808064044881482501650592516927469050136586873831660218285565559048055360925998032441337897672650118538652338185022252344024211618872208092051831121020655183413179189936966876042242794730493968222970547803321400660029608868390703737283309869905126391658757931031440429941937326663978539866609798462453067120569096077101139558373885366046943677689850437700690484107301337869119590851538006867434935065697150935054592333263823878559513056871158981246907764560037531872200522846148253344433559277713785969146783131335964054214739529695294910690439503563827215298941087802114833414204957573906109907770371512565992155536281866324827297335562253766915659784265671373849478229085364026972506704902377204448707986763268686937362216780769446301535080625119688532273291594933102810973175403842093191644451855175181418789186142318437803842267987506754862100862249528137871728678147712884828657230341632276369479302269424433232203348043103194526498923126755647891077470524343698938057698271142411425683913544431979911136197134634146219882743225159739227184386728832536350175971755966716411228184562566555886241122081272636986815682792085082411657807497334896917614379990112240758743261183955589631921517957973143718268624579188132429805289740845032409882826892469644842587640498641323293366026012471992485604815685928425808699538407939804630589692412725348882989131568649090149125061349011056534937663637316176402407922727199111914619205380843545460272379766989294760710815131607108083396361105444447947274274714114980811412073155608440958863611320406711101360377516030724611008520929316941002765671483760680361890468104576142251459555388939544561227493053276698791217208621155150403334083822869835391518962720249253776880323754411428142861779716798334379426742148238726276084250542253885949430841573387116078811731118776138934513393705920733832113943648331636030621759413512630723110202553079566991443433362291754326362284126898686687499864596159757767237879707791748665076953639215069722497584626930261359695555232617941814689757208228641696663212850166543828458056261766293901335673920128689676756082246155738663870026990262570672024957656381791657028255081979246362980710520912949867232390042878390635394418473730872939267224166550921559328555353557434941518191498583796714310251508809222267522818429203330599516918207186012322818967205116527852086756719075601576936638017885878253102714095579983320498372367545936516956495591046587529875251025212954729054163289430868904220412400199312429731209136004368332142654742125861470635420724861769581338600925136304947308015882412851892733299786603429895980281143556414992827897225613596021852215369968236334599818703352133017215085345890980613291743574594335802698057323575636173243014855133363565839479475373948823054516645450960382839975922875858715615710880471210300022949543018791958331624926026904039732520008284450494090898904297170127809302270944327078171336905141253236902579177593680620132760148549124520928862220588610055729575627264188150253587577038372129818061885497978268791930629621967628724672321593759833849146031774905836884888888601269226767912197153649434366417035204336969801570360037143105845627334158762108438589098715949522067715405022665612429057618818190225210155358260909791709636760218928402318084438277067207815716538652682724244041835125200100964535446743601270244755564606306677224315219246759604611498426739005408874825653726117665177869249609943798154099478955419922950209298398476308391919953651650192836993008466774932091232255032403400561104232849540655575386477255326893549612676640745501947147617811034717091138601047672713795605410747858912077709925177421443017494417933432611898189945044472148859986097162240321592235176770512221678601759665028723838848322996006508556066429436007414571230076168360067472353294921532131301631992712294313501968095471476829310133819127644109424594203133446755094031157765411463992618806527954206616024815741728684292690940924471252530162936274359192648285574492126680974444840361525674511353657679748131136503473732264536485970314558074957069532149484266532530509659832114837693821391334061872798194545913346564028254626940588032854537945375323725922516715717606194910621537128682097327345181341876409143699398741166740951237414016963042196186744133089054003495467890546540084671040581174187475108791327071448676382601536617446967875430697542314744221780872465118228043485844236142730819201028586633819838248871623387818951730960529021233539699400444242969659781293681177415630543258066023721633978224334550652208007371176634727478134318668660505894865419274050979666785168330757124836248642580070294941863396101495869498255891448388564330086085228121148245755700613982313107362411379370272326867756247724189369892684914820197290383617765868440479918595207001713221755040114687541269419970960127936033911487786082238132141929371965694144406713807024399495117279030750772173357330034829748866132274865093762004036677706645448974509597134515302700087906183925535286583692266021207828218605591195594767692364050291856276328715755590709057309198792299138232649928499508683860675847393097056575971852950938386931205954086162489951069586403110306722368630232799035084538191259507643514379067103962960748963375682937986994691316566181198382092312658133773048761136078014552726015627924217180513247532391797076606951432695324875120916231232318557483748830528586262943091833225169374826235504345308786815217737062402371844198618858595350830206376712986988386728289687111885342433569016791293304671113058550345489403508927979972095865971091020416745481764194917927715510983271889058029375161475132404590846185859952188227859954209566640048024027999787966759222974028088312237897788703147607295952908313833339677593108319446097010258251541933835068856198488240948168537732136770902114036184066392372841443633242573567269881789460041248692025076626272440355835710153810362530220283927105408727122309260264226475149769849469843064354689744031475169792258250694826702907528008419998938338466900863948562646460301875749650434858169668882352098674843982438809093812305363071777677557100712134905007808854236463654404862245698359006735893326899233386999595429784906526231468184356458123748155506220028300354187399482415824248388979387935104284179573626796316988553089155937047660817035858001413955423511675440536535569371439364389601105819774050609126747849518096306472048999447827717763127244127022228319099483060159246616300588764644341670497893373934338970558860342574533271757574401633197340312093853761350725873222668630788200998623790541195001882678353681770547169959615152160402969145037464055415373036314838662904024980519842198983061952114056671327231087339728786223899830074223413386837073768606501530101889933383602643294209904002278276642063612708266881089733080571656397613072457749030582037817827059909089324647712428136523244523881678983598806236850936246270696396079198138426456280599622871363073472380758215535384353497738795650736275798068236113308416591206518509137465851381457285252621049370822095392950046016259367478075520706504784941984106355487413961061671988463162032987295693263251983003279777697487442724738284946483147173234430074797489247106365912301997752448266028268452161743924575817443421464088260531323245528266855887472303229319640084349723214816729690636038390477675820758470402072761904376281259833351692108236357334086414803077183393997946636305199966901015697522856484031539416354643878417673119258624436985940776601371207374395005105944219559946635284792686404164970588416600628056015817500402600144505371262255179962548181542600959637625405995614423053449394032000408839702653852494009701026535133216204237366982972000860545342326005806103948515764734317320824030734832415152795640341869243604785171076645235596607760238921219566138316673050722341154026875804143076684793002759296626412768151504128040327679504798694557210046092113447870357659626536569375052529162982518369116307759375687877424729522233430940127973437244764165131370073793153149294693727515153829730958509337642189209090068152196285252343013466016853856107225005477231541328990634403688799992739883734991135337991037644451516540635687087194565900959914569194600619749123079102120532100349538927910272765404249791476127386386863499263696391211671250613174956684570964726899003725885739603222235279379060210411264345072539687498288956469938556105621351665439987351285352116164586202742170988784183180933193899405978811269042868643003434211258881516059895666333055183664854061430506490175932796884793369150295437715294955842697086026135888581052561150341290645271192710182024002873188818852676589907578735306428792974697283786446923089409598452415057021620631871223782360244811416532681671476711930371747841301702633976447118751681422634043320207954019860136584831045541575210927963725712410277274313556421919107825744660287098857152679762590345346576986061911208964171624814867149226824945507437566073958439320116147339071131014896092705024839480074531371597940249932003422474429450071205725372869293259862197159921599041441633324593551095139960025498353551291840896178152731413676440431210575734914167260455245609417289518444653499851773417217191544757910060790269471326674194536388414826440174969517985264023555287481446243833594371501803809713355756243665384615576830087799845288811048083005061039430828712952915636954254427141653694783757906497677766038305844152903614423631508062423626238470406983122177666727382042440202829136462041312976477685686538435545982120501489283167080530890089665815809417567166391487386441997460979199841816441079238043883330344009052518608155655381202224949764315152604336694419859415406699020786078688714146005718908774876088875385362577130416984029150738765918573894603058291249241212146924424937636644679588193111793759474457349156326434194064305962957744324116590299388828142201469578801513581780721455540311743542333132183205229560366762520123489845437586480629403541789779048326964498980388871890266568936224959434503863909899816075417794520780116800583887487650939749806114572497157047314335651811444453456946425158518300210320597324596744525948098952084398967658399109101310663510832934085519077165147795566818466335172728347944087172823865656986875114725920387277730002110087351629256081215778451119555540925565714842115761971670254093255815148832660894440792677158052756252391215205502485567183107720340140308857554137540891042683095751955877175781106711937866971745256859537422537485394927534739724259514753249010488257444893813200776544202213612616072465134430100258264877981668727742270332074902291656757991974712029450475681352790832565206226777701054556349617204363674478135762859818814541276939573273388865407720183220734566415658545944964689102542973942140344343944155714619038116630483282691370728249471221440108319290009353520866398990987511072030173357757790522604758713995227490691771013526837761892777665378116850583061577031907353620590923491811296192853958136594649111060776585338763127854489410778827912831172097211304519253954454889431715682783653216488564453012481776964806707284062783347153439605615301091775120318686301435323842217828912825543283809740275021119611132531669384365553792951674366223790932329284450017771932613479608317671226104939768826621373295610222497671431422397755912121089773985723406914000607080806034784853645284258406616907531992840179652344689860273136854638910061308596465638240024617523674210907879419613636813132943204827352863721540866193686732560392699906700178447129774518284143428622042679669273251978794528855479325323305223211597188899277699219727770804075963502610678182008503662172775888687411031709165410737311995152524401061649396905754941725994599464809771308377956564252145469895051546631709697155572213335574373029398941996305480749416248915310350236663256486480901852225814153133321236328764216906243351659537123781750598946701195038709481633847810746043250748568185756284156042389680811797267945433587306502904428902908182729206508309015097524032979693548145953236821809166854942021680052781148618860312968404860083000332495790177358002513461456889104191674828991977448410897754475699425234864958900638537414642287736318924341990503338599641936429601297689592911434939851225816561870725467365744063620838648368195155769707776321299106807858923020622956880209786150451916932298651958579042960365071028192854068426027786783242605409446255461086685872380968986619411247160499288427498641368166235970837515372964085264774817139348514656723328309320783756349479653273010753679721695855326297940589462527871191854724696793022566953193680832958098319263390402357435131513053071100598733675134417536410572377444605683917195562354167134494759534103325731625781833682541023605638680970104133345039707431605930352846631945497154239965232066848479762320540107468478094264754294157957554358608207322937252184998460056567857778124469313582386736677301418791499166067102380477597025373450546925793070792589073889357476153948125330059623936311186903827308927522235227455946743907102972851738365513257233580358729479522237717511853178496431065937274649487439419057387832120631879429838775687732919910343557847536943558665646415673733241034736362743870891003665089316794734881545150720373360523152918396905674481602969458937874977061252560681129255198921868511326381049926912145421770706065779413108406183730193186951697250818377755707029411172142625545261124502452747275362110531883830088888342080930016881903980811197517796408315067309589806764444032188442761838225950576708666475445630585649153855020100500665359146989483413909241092119567650662113691492055652118106954838565151536545709851197281398883084488670871626598076773745052265712840855128283671836430518723812348479338617296933167676404797745609991946026961701326459621958607850110965883672779057868102196635846285436102851444523189959798160419813102527058803354551493256302117957611782596145271355742654720241715542288251632667531057951763710584360731521837816315242684339687126966105538974530310559556606834969355775239629082425095204800779399213355653998961144396734818006633812618287256774662582628011165583324181670124530918055056228689139216640416254751118686557229515937395534118355291386410867717635907124327421894475102009059939722809759579884255069202228116689144270041941598852414215404840328807042097317442675396971496475965502382029719530027755180222880529918212628643422495910950189165902500841894140011295607501704306098816813202449694394776881997755894373337312807312137651834291802442847884183340983743901136117531135301980340882837612226189855762700213558023278674256054107686130874886501785060481099254849499627117716916049485702547768311674801836271823225492586202599716931963318649466783007183738925869513929447665829796392976763903765902031533686024351818331193292417136976527811230470081767635845082520958405577636550310791046006855672556991353273713187018721908372151960458226882336960802301062529547721198250466937055907896541872505780056659084292885534537280457704942647960860635393065274990437692132208460269418218403465236717285622901214994994035321093118229878765068939671885695615743467130465832596791032382904555069616282713178918165968252398409280204244084479881582377069355674806118094904989968165027997900070930809485887487764764705814083851353521716174412982594559055353886782886503270362261148880700956573187509361535598758491377686929595318386475467066551547554044348360234569809618938878020788726605317623955036463190112804431774690367496382280094429240760230077425175447542353793908678636444186943413959330837917021903199597724177190293650895917801806051855895552508874141965970352421551475473396906124664486040551852732713215141847713555233586289301454697474742947696526228905070914491157946515773737502957234937602251737759335935478200503253223898336612299975602350781119168782069763670577138857747444545065134333831011508473861079861089050275652177831376627335601389474426236708465547580768972034534561489653457760020521908015389000502131749247936036893843525783210510616671639989001302638621750166219008912827555943815379505363217411884713951744576309067130034288436634363965269332209462036675521562441928961045074360424296689812925087379386928221901329413375462856763196857877656789636977876797104912354881269967742630627572261512021894191763940758160234074640615266020710115041021833741860506437314390426568105968594148770460254615905964162616464989287529807609581286274630716680589436908938487175917997604097341686978595501563182216285338127794110154722948736512732917139674776827051061425951477222936406920157499868578852110431999872407537995727569406375025461865090266163618388410593505201702823715038369801655673604354588844137185445164782914672449742574172816892478823017256460902502510157284976993089738033700488704317502770274214096707848702016753820042977595120879107084981049259274551333904160983650910418862390758637892838669706625610758423639989025549989499256551427130623287824969255438585056233963099390378366783916815728067670493284023713605014287727124552025089617792640757755660322470276590440411440546551043963430141854368535415337627668967803082424610925767347949793649701554475457833827275756402435443753138848342522378097808407186837339615712299648248053444511064745389394918406574038098134305529650496682438739324369071326031457739588310997033205786618639189318306902212402526442811647426976759642781578640314342387754306834790550357156949288980155186237070501326350632833403796842081309782211427808763383380105148165682456047997896820886382877348142763619252621915481387327874079621530526902678903298081965471313139688928130546982416254941286868187727334645811183285518056064471399110767081566781484064982249466529607746753419896846305274140454095196024485441053838964071263211576814742243295172299303670777872351952944819576267720436407298436528961427117320048901871180605377673644277366397644200971608701415070525049252561214718504355744223515110113785383094139488499383167117884434715336780161917881758910141667699979698154687373130405143027801808482682253515368838183872150525909183550374761211263874367181186259183653907882485209519845482823566170463921841589897687619485198657228745051145179415639011812975584813054577631753906291192734729764030630918624270476727071399699942581275218577194393636289004388389117395009560632244802417966803613776820317095370214530830993320810634364878035840844682901457094800743664576794520330371530195273327319906211667815891205008371968474891324560485370863724446185350353033373050976321439244429075711616549599067558568521037892013023175511614540270780337016009220518300880545499632044964514466267422765507820314235937440292134729883559695848045956356948415959422884922375179242151978535852951347278996698951940472140986196505195448836556753550114347312860292935174000565120178977359861972872523161727542629457879337354584048627939058156165453997635312263652170635164806846437494111549461775069594540827937982294103012257091904450183153176062613084107760778452629744980548579130848255292684706890058773925964162050933062310205035795921846672310923147992798410983231809445905214593841982630096596577192407759208300934204272903908059400718053318000628810269488976613100089239220577997598230110431377884057128967437236781165638901723801137830223954101991666206362417583671184525074648819134757508355163009798884820514047331856595636689673971217393907425025433546912367760432656988399959853207460407300306062889563970705314622861065829404788182070323417856356140272270726241802616638683164092012405115771897350921733421962510818610111720243112784000830992603071862419042477400895470429431669800293414637471246902821930746134206790767092338032720503283404083470608591222504709547559681173129487094015326355839222849352637287430851460243413254379544169900549040198245910579832426733635953416204820980618866325222252185693035550820759657182380153170756688340169110130003139052988170571943330165946021128755813718607478457614636281736970759163030537628871455844271208750889672863182311581463944771440383076876804152506460118698595881085858280447597253852443696324676547417908395153588629475613710800984684603063276026547788797048648031225120492153012012682352717530149478218438554371206903685843983070479309586174561860049810965571224166210154583402544315788385720666273606377311545251617127477319685598964239953335503681597437568725975489979923166545184491935820199954123941890545212770397970034255812069456118902272062725354524560328499999367364691196908960280735554734079881976795255506379160472634389682712711217403606109162280351338613350012354800580759320692639890790046262321435627568964234074965177394057785029378516482878812488721418355485406853933193066976753848977496046194728404977721880221545657088663996303240083252175279655141512584811329044454739478683110386128160921815939092280214091281081296594192821943912295158448993789863953818323049760180366911896491700866571592229196054039832513000065522028040436745260666803003411523435009778496058220182492807321602566226229930638749067219186757012202771222340692308656334899415118832690304894955847102898167397916478404304288329068293238166378879381973730948188817490472982576739070013522646738943711369284774755552814756856082715330204189208144999594853672598808103243390089150102866743186134255617953437031277220679194740635424240868146074266503387097869275979714219999798585553202017867184947570105045281713429345864079992352337773367791852940898253890272515512277662285378789023767734361072819261183713002662797960122211996296720593614487656809614289772849859760829525379553097689542439293094877768071577765104291988688100521570473942520183097564475952748768269875084266570499874395773532113588012835636398656033858825796331816004365927494612328106350775659478326306029480827541316794947222136606216640920480471057336675438148275313514915436901234839698767965065178782797445412491445438862485986248207735126031150377104501228333726994059769061098198544353935836966165344586458752375259995323409333135083645571905523640050925062439418100181005354110539878723762095476111140874676230417246861556575465716490503805738189117562664651256392335413471577669764016686246273550992321620809403556594015294265435934556999115870933176372293532398934632078324164393717569163695774575590493245716757896400120849126891363640409274492231600020316791253578778559326865220791299404899935608596893444172016639116484783703559323749300405173475263430903939072503444826713144285328634759735722163048406883582187779905341659118305305462351083602182271209775527308642494639853043108733664315501891212259614801119761291840633237599855313128584618403447270943698712003203562410356700291674938477624561779665815631478554048512171478170486275138037148292883127781040414348280991839118364245335903866872247444382491843185010620979545037140506982622870449658014741541261348995316243887578988119475707386414286769219724549943536385610895709903632841370235224730547026685966135259674196387676354069699470215311714362587747283648807743208680968509744259060337109318209735967930339943525437180167949992549258374077340834103669233497293105561340555902376161723788097389866545564588972899821922128670350202530825266148211492856875230379314350946908308820814619396998200268944632753772343010728292442201694374975733380446967385224656159436013970065215085017370930713015034856627155272055675085222598658766550849305264231690939393548263831398717328973406241266825887866701053331861663311255519983103981544420160797896899600432864645692654369656289752176774419992916362709230984412545080324952923349513204609424955315291135963152852445777041374259324653298482006740406998125602466347731700306901699979394937306080253204484891491548528663161037852317180469963611108719434463449981658660938605943330438008073407626412499691286250828238483700141135352706976644550086382507968132156305760038627579671911547444306840080753372776161372477875786889603113212099381728025398705361845101020868830612973485521601830634066313655269518176573350628432470871221400058851841921430218116072790625571115513445031512176819540208853641037495557591991308950246438447051479365098211495761119727285010664291500621357979200647117353402967398407656091790301510388325663118897391757248483009384728677646126486528359076198933897546766759675987084324359144216353921657720033232307207350857109750325284826714088215246392711156740743168208277264380162968205340154406330998949082006702966900810822638811902198449877172765080516479026798159335451270262144924970337062133457612199229683705720657149180701363316400420132563978103643221662255706923149656780925742405586216931813733709559378870609294221922640410665023039111052404353019740697786921858706016112441186866449478612845299045270181734907526137053638297030958385773130556312631394117469074880162385879611035935891927470790298050879213944116826870223626962400835011045829637531311975909356740316209091011279284690716746566925814166495495247899667376809021571683440971190792821519694754280416616657398637929474690497286496537295404997742770624808944117917353230340713287781488635888352986540670833438758747922520788581044730714525605108648582176347139028830806088358190961783790904851606676526366577024032118970390278334876681150851365950637054549388715281725499935704657111627721594834509068187244453630376974437902057681150272178659045832528641919117762016245279477455540339838261653155760365016760642065304326156595405880723291714024948634798822265342686623814262399644635404167399131505248569462267846444458881213497324854620572989853715506498967987574142733124225282275002234191743079636521817297748715938263896412432457259978761038063999685048888342938377382511761029971625175072221711197903007633429268830111803865966207718739974358484177848784044266682716165730930395648234875627947449119725292985770645285849400596384269816269840869272587656615138347242130795438764098962945245453070025415246282391611112837220438516591850656990525689732180809008426915771606649616492830893833560219908573911493231000455138595061449118960095844104477817677992570983762979667518213208949507627753876648350499333974354052987893941744413839920044322690480483515069510926233472042521511446944627612244864468591678725873166213515813458709079955501712488663059822975977631125130845766548802944459045859877822888870610343758170724445464472066047001626577508549094295633488456303073910082119698709753550862710571225216180160428546346277300626030788726290077476117239606749211498592431094993043924915372374673701824949589082360703652996535796630217794675021365718299048036193817408006335744249113683114818525585058601758809969922354267114651978158661918615198918900593797735264857328863828414980522913774119675417654730826481622078446049471153703034604305111526158310548141086267837767805142789795499339146027947912393754313168632014665488618424566015321012273737108169518240449266667872306198136746536636690061367329556407158348153486026862843024726519325377405411963477266773155867864740394599911849662593757848692353957073248973607375827228621121722375445019616759298862232075127495281044977228192544802654735801778616562806623290337677575255652919849855471570685830167651181442261319464941660144080609826556478812250696740156990416294251169850148980563764659211945842181667940363654745614803229649540470815482554346816532743656130394972776316358755202599208525149727443589655068767293877095733237652819716143343563009581717511186667872884820434728099914409875655699660095973494056037734674987170924074687864513932794384490298788122939864666567284439073314681807462263960761238271640030319441072999703615495007276577921039693427686320720031005195396027989407032691483339532704765325953783585877698458210013929039071766857033886913119070860514733015244834348041495373723642201860637609967778857241835697082563646255042339825564618331282343225302494296768164643584981747052758632868447090387173794634266014755156571280926898653239931232897723322137277051548773771007305115812680702486899438778615367965460551354098032832007620794453868308600842605112709169290125221034269916757976528354313367117532382167541857186210270912732447626725863659157462844897884162708452816078394246171610260455616204787233833931466541510083404436145255100431375302515850204030902649884468028100286790405717221395967388193645970671696768051221154896558991440451245359987047721736942125432231965786510717744490515635324441042187234244031800382735871384992473803986912569850367900793881682298723617961228265918506708040534896424138797820787001750874078753978313960873815755329424884913358526958059345034278415356814170176428102283145246809726453308641061370891245334461923079095932275156928124764181409643384850793199536544482470167429428588812850370419111493671197188070130339182411842103828254837285561567348337558251511892067611345102969998545565778536053901834184892437228360100951520564485583092715849371402880798658751703046773326672737277731084296612934174053881704401389157537021790798243374695982653056094792239881219950071622169531668551888377703135495023589286849108842525849137279255102925739348431774163492794713777022310673351976279647104784320497499574373579222056187232246529964529136867816428220467116251028536552711524919310450608367581662313289822202570008298590726084486750103888066623996125870069644372013352435822907556428329493469325072081572227784921012833266920457782992709804614101767374802438610637586237578139726386717181053183004650483338617160669522597747492527545853298204069899097355370040538312993495271689746418892405843024433706716492762463576190242343803733892859383341861988716149792427518268561269199722889992632598289562490262257211183380337148897585044894192388478466401253663536584125384992037895931667603649135466005371847988108309861022332776057957275583413234009731188436420692200551080791996610668277683780781545959472660946932665051311239387866885081368161701060413804405263650933966775724657470503674267078488280530427945982209105168783799721078469562834516830650977879154002691830617446168186847596142752601176002465941249936362246981603992293426759452287213471097617246477465875888721170766393833167428373047947291906741679484435619545688750938093493337942854394363038959888888410452084801398384072604031915145054509637519181929888910877640392340052611809222711256250508014363381581769216547448481347498621844853908464182480135978769032328317152971895314448455946180922789651073072580918943975315049158184715546531048433121003810445567962027477532694855023826529314001054001548176939940479666508828010019729030986649650792895061382543490212957010423347700930176421249471585569936874142968278039864658314508662475309194239494150426258488036413423693004322774321549560604248767122948865561360250842914993157887816449440177043113310523365987576458727284094477757559628549919846496238399106346858468007734897038816109834709851577902091937261716247031989738637265815217633596004228721317709785329782212947430565390166869328372190280968438014433310883609915591587851127481334835871905400371738594358071575811910797554116357970562463246938281769376728285233251716274534473583466968785927745830563899572325661539558113965078904594546136961375559153266159049298342258355632462770583733632148019990760633101422644009500263142449567723856798244198190683245094279791045818041896111677056783662892945857940260335679421024044337757279092475287993086990661181815972830317433624437933577450424192656176279980179204273100597727711235219759764348073916760538853316622578109956651069181945002719774942222303873124652657912019823867232442119828260572520909969972241364853355426722557786827502625584619585925819239651880421028791871712102890672109428615334624898216475215192424134759556100315341332090295452499857249185129933594080055377582580643785798960365832703096551103360079747258818091440790075803465468769493695106219750637088974387126257260850232048714307656703814201624689936321753583667654489006109439855415450210260459396668307437049620391162261101919498200194651932383339200504113066897645647617636190386405132296970617649354163433323513610058894924510325017407718593838456544621950902585443828573414160646003862080453026695268451708898814965450807492704577006902526631780945745238686174941169475499067977026636587395483221729690010189994120060340578823465843561365457789046702281199246172445685910162583456856741994664558964851259108223488227394357166435504053370710964341253997289220349635455714422507580464436326324677564541247996629782674859471259642930177244534701639323665064234103555808752221323567008372222130614707165186980493625201344714608514116915324891334117315059799648743596801437157148035518650428096975914242047643090030196017256124064108924359854635422755554402966820353993248484841221096846743053652777733746407278711487144922027388960940931617414905551683183821629055106744910899651949768868254837276045944922247193023735406018070843232856631230717332288575165483876926969260480352811330608998971327104786884001495683097678868264448185739833867554566974025680494225523000985790454307118791837860684555153514685088321435613132435074129901523984225614589056964660418408169709891663115566978529840476081793783930824910824909839190407488524547521650378861602621585170192866678087474961801244968647895461242770333844798415790313159202058495428658655846344553220620254534810500853946193433711183798777823102284013295978120250040332297142792618851514253368912556473042549512374982288775312569530383266350224276714172901119671487096364113007148552861417011047219534269984822585822152106748392417775155893091489425878201854668807773677359535659657104946502915027496906136648872699739159260952685337247227082839196838741150322063705864523400245296938072911869916833842156417671381226675312801401583197878388077710852814387328668996937195604388775300848745836717141986998270108582298593587028842395433449153399597284814726868814799226636471959648634118494426516232865649349046109744107929750912629744051061672534402831441019845406367858465948606705599072028727985554092502340980899330948322924811300741032707839207547862652749811329882115792143749092893878365365155871353400685516664477321508654665767188957079214877020220611556235683992572505803086167785415157656167161763311385593147760508964305209768532961774203509669632320293390043986878260887053279160542253731170937718905993140164541564617514284523238136871232778755340814530534178587688435273689106479274239874099389715156131232841101417893069431647901296004717333056930703995496220904793856080208463157905864954505282451987056832420699567191376694241404150494859215983935194795005018244352391087923026386176455479667536101302984728714377708233200324158737259456239626282904238587559920681562149109015588859745831563316713162571006551015239594539114946851681130519507827282356019772160957536082940887270668803737316981106616011544228725670106921213402358243588889101331921622298170472922122627509006311470055060726734128677521215115521299498537007549628039456454695066808434944892585039144130669510025404094530894647617476136255266057072636972812984852782725900236339665020823678952184383344180779069172752401598095636093268196837615389429936508627565009740454396646104061182826798688899752872091863095953246355821997033497590311185942572384817951625560023096854851007482111510355907202451878222159311784092199324014132463626101087834376699650988604425523610561717849971834427885097902276746263694143565836222483727102937050270076799075714517746975910077112690413461021999170578314370511635008931151788178348738396815325027689717691229261312159017820456543386184497101929509384906754284852128252459500818839515304239512228893238360323587737719098034651505210233434684691882723893673257187838964087837423387643347410178101047037690558192144286319296787277439794753391854972776729685676281716619553644296720014102881830886129134910826361079403083075768854694995539706174018712991980379333062998189545070162386084486244769029335016050093355817157803812372125282430657349367497634994869496528421718395491563300923685599469471486749043033165334709493620899013072892085302119446152547102922492976603175325305814510227614430973361982570417628515422647190689038724766555784742972213947692647239401713811342326326800575403949449579862730448663714770078660137885663320916865865787781144181170008320001246238521941114568722555774579830347389522428064403644243346778128962906850309054333725972294289100326305123900386344784858327205949953263938248171422144709355491685916757614211499510732331887712478292121510280614047539731981312288261297591064378617947585510418446185327732440682715920265120011076684025363077321817775040791477053712226153620515525104507520294739234243330266089817346920574783120271704618547732992349395252255948601149106440900721528194953039542877514152658097592514148248658738282079526264177752790575286383276264397261758981996008178326264880180885935074637277279973748444127883601331999771537460987431947755150632003283607599541653791201735094586578753761105759867202502860182128572039462573720410781057788598052484397048164321084141322514282349143079727197818083731475907895151972478866720512722743459241253581914068677813703170142778470882793680081494004988910775783321680758407751471858644856154803313425394552831234965035259689777105076537374033693426531406528897385218519947946776775817162553993686134080445256293811607066050176128590777169239776878334413771387038106303693853693858664925319488560572765037816687739793708005765627392953289292489866095964718240768020051345324976173411246119861983222932178767915970140208352620006533836262411148266631430829878102446605990487766593080938792587468455179481563531544673462783462728541702265248174975885562930082400060108061297682350203426820000888523139434958811631180038479571262189253988880800035078509136492257196406978037633332389916415753675817959407739426281362240730294622379872159312017284041010650235972789952766903795950145873881995215412990604438505272770668036455281672128327123772500603441061691010228759776697112864518328209452240289842152432919580729343497065463810195059124361040212087736993160024075596980713311241392427017446936178653978291511464761350133367788151501603736907459169523714153087081219434885011962345026081827873252369083148879617398718915846224585574006348364806426547196926545828439445138752343296554485329766946519752676471077839180001866903832340003488400110669821557599174820102433332404535792645311319293939207546320134970909445915706955532207518408002367995410163757483521898709794012511066701024177989106406789980097813436714286039190243016738053490238278460526180285476782075655069955564831728270656415535944850843510461356838234704563962657666084736428954734649480818272789736791757734986303449510881159682784499992633346593352105487521286046817998956399815012160175353897267805914774563253914650459288599388686294217506402288605287931594583490078274058798310473972157432873164011870980746318633142070327945323259618654111900853727909092787645851461562102269114497127534207565105948010428192978512438398034255622938911446108267551368765193081853655565588583893956192940729166363795420576604642509853040947988862345543717467770774759861738621078942551500894855937211676814977704752761662456158692275183085994242523096751848562460332324021764397395569037814193164096207800916153285762403737220307099091872686560871814782881040114034792654283657782658175711787212367425963065891792009461720763532697855482211612528578645851454850307136086898531478536558528869318656629037054430197198574412286444292017401559133552643678259098866754138127765499554924923798745617500681834603337051915601659285638534174186791822535327261910712497781544738259377714453159062853597247865807437305035112648052780555080440154530134811376166058581778599179674863937451959071109562084289964705582913166673290074164046324728420619783710834380806142702018222012830602950844714055431586081059143107577771303601577727973796009355869117311274878718036528639248695523500779672683961273800003245321427090110742646748306399084843052762747184414774811127119756281100834433129423475529203085709920664494216693372603203764799602495004870133145311091009605478806096688369812030001792005604423712675292248763666572218906064795882354100738927883923847922154387372174089006014848695671381495627205013302771051702994793292203134258814979173932350672480309904452592725755874619127313488118711471648836026037431281084776918389594664269152628139633774227905501222238605105399055001140542528932333608146949705743227775047892340912684759661723651509903963008009079094435953212745214699028266106588453131608624451638722278762160575873034716982489903353545631562051915308773990376622648979510266067506983910763006762491416875087635111778581869390136105456551657246767328932636486939892328091358141930124131664163117650424802687126289937899923349111190142319125534192641493463213201131313935983633038218164046466016969048649113081270635036914121764091852171190586753970301440665159504775941126564085915288693978409462708056654103505193102242676660056091566950042138397650950997708318948782789266519685134505266031721041722419900141944826810190866112760360275630694638527453643567079758741307093443765727822014683333829146723043868421124753556580782085531496355615027285206804109096216770345434396042552765782461275760420515180496992534982846007984168562046471550274223254123693075483742120354534552537240086958844568645666513378467761902485594979961301879072399524164717608225222364229440762846844349838224765269058928935222730542579324019565029506463772826638634798555401964438512910208362907735143793812988848887949899925525305281009941170083737801969271646753385469231292909005094189337844666672554064781726326048692911555375791327182085448341294222756397386910519756986861355437172412083885906791747616987433830943039455536067658528798125671743155081481398318580808915284167497070337244258497161730290702470956820491572598074027198918961254743829655087883714282082351199254808941520599333808824226906124794103299247352720312546373012935380214260844912513780435975790534614133328351174010178937997790826738659672306565918216967610649843617872395144302619957605481866798657415589044731310005750089068279144878684750580409895496174964825565951742913815669897284886460857001441980118628623843759827974700749196369955064776234132798906224255253628241809146315629005190266979409821956224472774710203210507325098819800482436816391940930734877094779810440476124382652633187802290947235181663657015935134416909239178940896479772029860618660634187420479642911695235694737384952076025706655920153551020709587639497849809110412738388723778323230811088731973335613817449041384419570058099710647945896421397234815310856998004830646902077528998336584758913768305115420069431440126142385984385964085518701927685367949496344588827653303650501281357458531762766805750964524273593485977514931586668868073072289092140092971293892692287494795252255683800077049134505224027807629756272885063243896511951152754309914640447257763640287636846664520980088960777184478196528302847264927758650951012378722816779789987118501651798161389252217884952601861882324748177801454209894839189977294789963154500845123583541221911964141367732221321590000240193581738716037405465514793653104942968175910354084531160994549229143879237709300764380614313969209137722618605031027393354540564354684337361570088764953262510364221105701839004169339327704073824985995868190082281676925023264257545876662933945296158901257623467926597917134031967876294521568902928502862432214617069233938420511141854030808679742774394483066090123854739219704407241899655838081487763356382688879483990433542290974923289054029172049251886653892271624864777117962719330645260669154777368303441051395140470055989504631621749895219166375504635631971472162316893816533196974649157343530819320753148429694933338710202827053982690045511603422348404226994794573617536434766176138861854682795538661381674085052992027956823141697115860146117868143098726130969891151908736824695047656540664001637877315682511656771986642382048437012059200595817347234412092344307176596921531471758465869452175655869732093165097333416991419627333125244902611978179058523682279050408143749016664712034925598981847699337254743517887721904104873694810124265605850112734329593442914078467547859997758434010313277728560593703444165328415616378671910255917029831657111929296008237756213405338947336067346960843293743204888409664862826320662517341113983316835991639801835858746675192109224997405028697600636462965671811261725595149418333316692512996737898579650563021917152758196699199460545964443894205777518444765274755707799942544412659607812848292250615556205384974331644805942056318121409175561165278343121786380154876037451861612806065388041900136088247026603312241699200357355071161673494058371415117247339239548962777152263369475191656286731128503622928444477173200099971990308486463889325774664974000211961435878011204361091348320268738322860310978439588563465406892406952429250694898631386121534683702628427828947436433980144517907631558850792687935029521137424274968910122552275034692318765436023923223367407546705967176104571367584237506546551292575448718711577507868450463311226217324544262718737348997608689132716682406161692728270480724685363510217494256229581197046667087198670115942303236146677712475080609875645230458307204779727587032164269381954528281574469043856009788333220057017512210619893995586762263856963407193042935385615704402874524726708418278505769817002346027294934530976018601642511460984227385116342744849131518727729582422351183604252153127040886633253430121300315169899692158761513017622338982809851331225216439317506127902802469716697364110555358196332140464747674325601643048056502522772827569271319793442757587664659782629297087624684765331408892112116121572745616934382988996787355079198188384734213800266644240979011128069090440575697261428394683925571666841312773858720194192987664840906471474246073839959446765790042875632797183904089920633954227309912484856749917060958200467028898906843849285048255567363611373928207194568299641399285050137572943116513865634711880444925668893390239116739281204515812706776685341024703896746608578074841782154632923541813845201776133990813052948785150291905745710976911815056119145262996547208288462127836779259556474262426844685507263427443826449552783741334830768855486314623192445394573351835633741911466572769571257424827140916380535114337553635467946589633148089240632573623842009815625184336534484679967506727691524991101744014885889732255147007796164332546152665872839545978078188132659507794142808026563851396934806763594123430359481260555248518459591348394701214642054698201026166917773209979760385689123490512649122587146972918241553451646301034669440831583219879825979005895241332251546980472503729293359754501039602889168328562875089373564504862679898251731071238504348589928146972845674894283128112758425766310063393015960952826346008681018684112298130441277497803011463966724751855106498926555810423240174955064158926797668245292463410833886935003413290128039151207742982721672784752137110627650726121059482329524464570393954559626762572093952322563261751563154802628863728891065337363069912215068252128397309957451974317164935335759558313287735530419714300490318666577701628649563999188305670447987470789981062624332780297431374519824314908729614441565471824843517407056478017721662964708410968260228590947149652259775061872167144420572365190899732231040472449000690863042613800823564312505997411055927273967495060016808349231930112122710410285545815759738870935106162234801838632665912832262306025893780532589098479530147552716012088050165600286518887875274134342556531288321892585942265951330865277753522955964085819093032713289315222713981927926512243825085594452952994065387697807916699385674308370309317464167273902215101784028510506799688396609873176665563201068273135490010174759294192228410886685865061778816105550312886914558584381301459190123639081276078577527075800342401836841723760642948602777165142918041944426370307545361010909723543599359922849352781880394173690778297671551246760222729867805418047244521475683287309099523127415325386994158523419703663072910851197431589036736740908637507575276177613835922554111521664766021635670480989066007162826685318887450477577521057114239541024175504024962373189762972247223612893262389417706950051123239275160087147745755097536272882411531496480570091190797471403913792072536650515257504711803151283454940758889341810505871888972615463120728542254933680058077027589792057224766663370668653835069750047414763697448810647096305441487875461466148700806668778442292957226591517719822789309446663764356956103174062352417743820282052092175844460077380657058639276086510409398781063107493524729163129421124137237097483866779916780280564794159429603548545132737012430033655722934267691039078737317436879498135065044154253541092155459918852067152652357238109483624361833383785223628501184361822587757742701664850007776351086776096152583601974804271175079805811165577968116594418708590933736225580328116504985261706614043176417963155129053209182597500412456637666401259625520781766826190628051630557547632380217332305644744322978192306410783218530629575250006013266516240273244891588688783759195891732853400935596812204548403084557939137298504742842538454310954156952814793395545844300958687117042015595022616062132874552922712543859594687386881182773677071765360457233993812671511935038143047849825901350446891212618799403673682638801204374067612825184606821348810131355248849982359893357824616133274584659866187657566533978065287754863918885018325318580556785146589800673773705615300942193100726784848586746799724885476104706278490164811149332526612785362728774088950024439804272862369883402055416660200864762407277013115272816109058987181474544392770596068642376527607350659145280037666778367734541737101543996721450396659344939071771483413802326880303096517842231537299414308873841539703538403223715792246768220167133407266342136792101746324126678126767039441616551968923512354603189256253067810452046613003414947996943557389901755337351486985162304006807184253695700700475764411899848953955730082600570698217012602053430927748926992105896489659359930936304233758038097619888205389189124396028380786276298298020382839078260768974807104769047509164653926622634686003125343980830731324060796069946646341188462474375874692732599883233013357093918617205788757781343932846516268764055859676235017977647036225505569606692414716585193783710214033359795367837726344488991099708822254001262607937823413010111675046891437546246375014329707791387972922675066735265622719820747218507715974670302402338452681902504465906917737081559292426555833904582318837770763502473966110396000778624021911489675903600886376545564258010707749404451994658854679120036545077063705465466796630707642394830568740987133245976439588319923819952223793771689217314863096753111320718145517755360161720556952534296275550118066105089397142431705051011757829311321943395134006529619978584071381406122625445476674953049075071148591694503163933109896099878831088677087260073962816042173708801703255296803315718040430264563886712869566116827379224529154727656498867179234513694867454074348787948917434625134296246416718935397090280326725079520036853884513417725524487280174474890590733730825404879818008092852369767857534079123312731181408290405052843475458447854855815409126957519962348806056313120797238923808050174995480670951651503262865288193037744731881854053734708873725338281758064487451806556897508675918252874324439546729362813143282302279304650303462415538511624686102405312439917568376243184410939994101748371101292613216651189995634589160880671886760967018971802528178758802441033240913283096758484517556626038250822655045464090914021926237478446405393511090698632154618250854478226080420062104744682668584494479940906976723621964022772341368667508035490805915087698544599301939789215116719404001559055360566104130734217898331985679286816319080063032568109201634941679817100722511918328135390122841304523088992875944615944005684891516986801968403243999910185355907911468456934720067652279378283763734388100451785932800169418690520339319482931903558882308887561509824609122828172987490266376584888249538691895784632974237927167980204754160704591720554454887233720838375393593167201170567747180363476646576489901789987647100589427188684751558845605956604825818579741399293415404489940518584828448566226506427119650890814956565410181085823226245140256064481626724980227750247279527347756845251305271550740123768662701032344606198693867200254440132976627647072450920283848288322092242064304600678186898867490419214917533968984125450906510065467411259064279043311073209697339464880335390036608268514003149211533040475710848609612838150596056105008968571623797034791656971442081707993244861413761080139260572636883294820857381358095669869963966057612419158932397409332553178375080935100763914863151349726499040306739661729859765587248664679292962442999348561058755197680746545278706896858584692991790293440110264953175158623616131816914914290428064259472800742325941072484569183949031701698130387307278050793601782965220903152352415694346835460265401602410053946512565476430705369391827502474383250586168575322792536095228238567325585095006250024491735358671718213267649461233947974685228403149485313709096065732105816189566240604882304465547801534458819901676988828401849090545523915215125457375836089372453257105735253685901399016246217855823300855587019313755801988868072851898580469559709865332375473920080459817115411322906517405226535874645852764490003040511591949492683630955702713226137338253884411850643499325782074838160352156453152284044192037331026673125838061198015488998462349423886203672326251918269189527712073665992764812376944503134480621730456754286211795903916309534757695291979853059217366505217167060658393697698320630090693603925588354592482677927208877339047294243587527204773502588839615470753587484695737096927101543729564375868936297425400871458650739570265860027571861682029943841427166807305979802412369453596242010250501114797365853991422101783366354195052054026739918877459187412235201187513490295019331607403934219686207819156532271520459821069083214069914485665990368651778874083879569598104210722086063875173374217012827726686090502469245861639512948232656119625281120802578257524284782263365856538197444889207507533510494538760921080735221629379776909816507582829765015766932938813469528549962765083592283684091630252152755071234280398375240065807916172137643161714536470836657046307438087459020174154212515894349532030622244454667728828213857180409987036766803494431511880087904423855344591778268055690870089583551371253398926395287692361897858210904143785689809837105319931814207762350525317352643152566784452398427368251397596103592322495232295165860965381629017069911995013249092008992019563417668964622135423964621068551749048668874848482383432213255336550613046123691207356875885995035248360937147392742702959641031457696787063925467507430634171203404796982587883710654103697835723461109770177340752659085264440841049720256239567652090600783688790208725854231066802528162141889770308449905253836784610878792451794661374042853194461466425910571955098254054585580135255810734910902721995076837664587956683962587426386607318129659890622293952495918870036019057575344345783275267300589092225454350638835877936129371993392094043807753607589198163507225000725004178888301679759116677326340478925585331906351677727760391943606769744232464564547883170347293466369578438619528445447596615712957178305344480179308593539885020318547431809171457268975341050330345685164921698266499375651636347061586912634277881607925867547122552418267300494512363377079328736879431026463947932656214412143584437226028126081383892366612683097801571371582235917514152182391791142231845883245449462831006700517620979625622901247758420650202505745553572676221964614515055083163148569197704480560738772480095838312897671691859313902062757022965020705340179237665778379197476977027344681975270587689391338905250115180018496130677288801562242714091572703650673170922828565686190610294077308678550306846931767108736540937990602947455527408756657016753492548840077614677563268230400121209150748670431953065428476137959679135652255199478087365138845862197980832550634733813687253313829484439305007944024454147744725307506794438054897398307139750293388927959273774175654941198406618971495508621755640950393097752068457577006032360861437512101833716935295424218943352852538458468995710905173100260505977456258422779042899158239977660905581884556976283023007235928807684758365274419865523324740907599035030648677031781403384954546084785264392969709295590064146112845004643665167389465203309604693540257425458972022896775195513766766840237876597047153726197879059513899737842998929994940333106095541822369290178041329410098368117930328673463343319178626083092056079024459651078482093571569916706254246646487128459147425170352028660242355681848364955575623250934722467711549709639768302858660141406745713482734884879144826982584512170899118059685011067382936278694788056082667966010200304382650224890562431039122900451132955525137889108906005518192179166631046099220622536439609254610553029957975895454832436445863288823354605560425627993755124377987733522338845548891546247444087954057115452310137775979541086123212964224848639875332755483710022240061650706678174915374957245519211151224265001168012730523516725999682736272470093203554994595505069532346761238028974566980220414355091028103403002624337939707832796369103965300494049261112696540666477513055576327538967134777492977695520239175772865046844722434235643364203413654066950609726716937299452802969390123836913508803812013637592945030394385954395944069771689585964701300015727943719813091989079943513992102532086290675758969761249372650593330564766156510469449615202546698129249559733661722294874757757213571528393842933916162846682937943117206726341597910935789123460069033996485540707372684572861588541292470404403699916168292133620004948343170844535506962585254805609846501613226377243088389153881287157203908555827075988066930090324614117289363049478501936512873584355486906372769217676975188136157809138665188925421987094582637810547801563355832236274926838811743584419148566542304582273114631362800360918991175380576480177154770273304672564981513736066094074122363464489982576370802699282217881027259828087554045431129988859182529088593082773932684142114486270479048216421143891740126809244651374909590721182149614782100571460845607937754941573450183586905064061529532274447317503147017959930012305194377521517310721204944175505318185385782808318970234998254677575105446852434494994928026516597791916796888155859390075300210059757270819839653123395613363700549248924526929766874305527091904016543165047445807569234349042162667135524535024002252074957391165747747321984102311692307056344341767094746801313203446105426150053680489299882871463206479346253390325633055893869473136355618404868925241590978322455157500691072235582895917227356952188270919702375955915304897561648839839325384206035202234806056206779532405852012229670075022223124740683580659233290734335142816717908766356651177194870073041823254611018557179103088046021889714254006734584923718525054139084743016151120657647583597459796721789573160141658791209139907681425886096910310288034078801342323882856673713273232495159161857098643047238623632725661565951087297423510133773952851141318584456715889218754822575491886808240765268904196994887158140413298536364285117595297667912210199788279091160136397072219145253669873728668684764842257816864272089922447012261093616883026620482306247966979754141011483787392162895877296858743949685195245684311444934304030126328751079077545851028568246959910177649111669310354320656629882651457704304489975417221317844961187238391193574167002636133055817708790751250926478630372118273852267829669696102288984361643455800538926284505642294925032892088174092076395719255310596961985189110506602063075395983811869205668655630037550620154898206457669483948830807598981060983680098616389914039882873308875574466693029552048496579143811669258578188169911687318626988958421020445377193051697596090717613885348861015697959018224559009573821691268851576759858079420978425382069506908258341956919250922925785086535964036765976197685791718010566960727167658973437069095605813230536636885295745030707384221390428196140106377283005408695161988924362992169088211216461704317117439297403667166204937723016882422243698238308580260881845065402614747522116015787924599669408876908833645767084919832565136231635680060436509167448521405165218272008033258932151787394953268483008393147511597709846752600742123940132537161977640398768392857816916320731945839349307937727021409490228933059666140873762772290208680573667439640025462736631211284754179895515926527083658987994856194607082244051423384000381858179926057112305580157289155300142225139297605427637943046611133922476096024384439394508694258421503715256172161038238013030873533335548334554923734283489819059912918103466573627071955661293746527197841837785010161995842432346626129919232982910936493730856164451512348744497132154605926140070214570760545900055606800087358380497731988094521217401575255988920609254668980877525545436611946771173397939860391724022580337500018281288726847870623284477771755166582411360685451558460660421640739301362933871990130264213343971034513316333315677519670694059583872973805168695757856098891718852461831496043027815028891729640766431688292323293544528808188436798838105556498994503202455574920974706089863808388656763293137587948362116116049735497579401555943684953904465531802390170767830831891038977881739775952873646249617055702574575279170090800849640477965336806839404721765710050256416257840006571813201475271050003469480206367985686587595241068235290972123889120309563789921490375058941598782089518187078710261269282616245946236337417253136890989747567515609186898958459846303307665300604279847027863684218279301298439132912746121190258670786099945280282684069083095561473309473596702121170679217995028058128558567531344642792368462406557736913609081584490301624751365664777446918054303311208323377536653950898060205674473432808301562120283898451976733704884239643248391568165164775068757766317915730302227478097188531789520232470291875641737278117957667995064381630517685706868814821876876917660134875058925847735056051760925076563126252780587843006267382542223060383151391091015731836595828630789503197762507916521142068366307476654256514968728918520641649945256504610112938311048561174741279843720010574245251921518889832780677351676183751056342426206341066250154530466843388389820790142970713155028573362746398082890970958130324263371525346685377524458453216566601435537356469659622818792010621979411558063628504415111065585937111328598431496006644514228064867919440237510560415795274062861241221331524388299065764885280685598373048248958509342451421016885527827355788476922389875774648621875894161090869967847653321587581225362236131493803826682173788205674343132398733787863641645715880037810109071274887030603359214738213375515894649687336320132128349240190069209862498050299455198738679191826735083832153892769114010271204493825437671901224795014170378486399334800309348139407818301368655824103793899836808059253875964489826174739466619765346293478647909477173915230468935918072010531673468452776818158763168946738311757651042558641383951590758878926693089467242514205703247918790589144580222161370098435766226477534874324599958085014441083260977289961966477724169500050245455807329843599110594411819949842413450916709801032476683902184758053623647923048395842730491770222989540090876346393704843237403903868947035713633313284384328398775074874014611537743961638675354663908492916204162013519475720447033510691349965441501743880682889000221112865040409660960055792980691353640457812587102230016288389135617681824369663425706201998809870741101810879633863931076545470116483798257056097676199302262035054032933359342093035728238196188242639188916009793115054637525141072727289161746148316992457662585838310489319169191355386782468798422828997439404779929966513619296640637608433397843986899090772746460545715998475925110631358203818582657510232294606373121657201732160563363404985918186070191381613187820630088137083291779721467730278414637211914373720073991106171750005103593794113215917941976832046760336058127847742627346481629230761518441906759256379253982463379489181831018296142937367292500114566759334113866200830924117814900266093003966123036919097203468871625840750454056864420088004307238239483936043109036714439918986974117166645154444512975805357565614539709956821994282099496089219628224404457183224417705334467995787492739273348556523597582741213368119452165264583910039478114995769110634898778341341008420327276541571003167055838294167469078260425870963781091654015319738046521357243853275211892673079380015944114820673324760461893745299881236016525574727384242684364227322903054383877594011123797459492493762761745012951490932067292511056889089705917920625673941980164221995328437837380521712001380140519738656977975660520493013502327434577573149371081864063590050780692727356449466570391327957877429312268846634903805032190214628180613796763842434442089952577497715955245865013951399383747567666200837616813841272866275140319789458029945418803015764316730410120087517520115454397112996941285246831867817415826097037396138771858067498683274542544185140736937047244178835717198463521788411420440388711048932959345317230191803467013948112627787865302217249521643867998650312996400529596802633570927727221935377177290505664553015568344315254340313815197225166310483021781735388820403654544524027021272351738554976356873560206601486181494392162895693599682079394594032687371064054212361605352975952601903448722578564007690678759349790442470092576176841729467240809405283138372995999642254215672153725481174280903545962488835788634441120862601585900264153921746591619090372635752579282432433447100417156425101187837838968617122443785860653734095337978068260307001768749675494548652775180139828352202657289660112462486238216542819833619158276428258917757559982597430286619393730973567073970662434763426122633375553325457572225894850466230299597563180691235139829713629933476358094929086756585363912242650622693447638369761857524892046444286850915875040388687515632981896487131956414559607891183105234400012417168375622140576113183353379557373086577329555149599920662455192434088844291152658730182467099257455405891802371687887372192955616217706631101386818210968071723105799253860547022138728065995489433925925304624524172543089967273454343898154848028079289001892672981332746335941879027513495786503000249834642294565193480111426784383485735518987140643397458394997364010323286888579112629647904822152697256961349181960017897858710985501080003406964104721274015446292799536524646139680116645592678347410931445333675332503701479427891101899828012464213574974159284703523400383184681295128413100463474496428552917799637051824623768566144778931057273676625709812027555132305016860078921348715953203079314807499723490191488571892709953407245299610235568240722976923022675833886294741135633978377605155139966416129321804534960992987127053214893274884647835003342452072905070125942753752495241893978593520076861678607770131423427915255073545293823246551092160525278157344226053808977860901618315995285780933909933030727110122409217532571023006261761771414366880175452472167282666265682351786686319284039959784389681901935429621021032381137903923623336922472610275704071530570533624581588380901037658175072035068197009331896964234624505436949001183569425557577044452514507843790296826537477867994684707647658413157800438851310440468748675756010352108971665958151257401501875530481145608533681308888044332513442365033026193199781626972823951665463846693211965896348027590753728397558556105960002042406524643259519657284399066184225006346804755562752716681511091373679159814879001007855039834004038322562162546742471902596884368079649765384179587739080358850834777569569805459191342600547815657165049242829144930265965350658723438312193850254171230002783437205227943694517665905330613400515272571753337442313364701124247779546401628943514788797480370149673470513429342052148914416829109798285995630793698369335898478321102045955697403025111469820547100807704440739371440977785237600026487867857337178488338281844658762890641100364007240425362719839323642604477947398881462378909480514407753128925018902268084253092164306322241001128080424866866918955757306092435993543310205783619771434414784182488840034895796398128096929546294560429449278557439810526470664591192820152894836315305664704037238927638131925088719551729029909813402646734073636610111809774116130816749908708305838607950292147090752648170522007786062922864878410802774447653641809493752138940094427919363459900101094119787685776084324255152815358611480246910882082562792752293321151419959035660157270335921280673263003669625693452724851874398152716059290382878567272281476082403780604562160942292540119211394988462064340076697570473273241258382380503570209918178659820276358879819462581356410696276429899344402370583889280636453517702670333796709994800114398776393704092851073417378913743950510052644285891185187751986998299942197817932153549216179423836650514719835423342411351447836624188105137909226094072038450696370725503638809387962131227252037322556203206379073102701885262582002076803921719264451517757842229513178218887964868026058102403089180441343058658371118171476686432341786407553694643781411694207114526378203741986452519492898700925640808248022263840480288639400944075475428602581829485403608613332187444775730898543411616751397581761462211820527511484617002773818887280243575285402656724563760581077261545583548033306985203348889115018569095771070299105221325840154520294819770163337444228106149620086183062907582844088539165009583282943566537572895300529614103478346571163021108281107072106356978877801751280889885798539690166996745419584233445326629876116583478259166175356874301640216027311488388350221803353606572811843955783112927688163531897818257418559937703623611395209829865977992565824740463525295569747195031613703048872074327981122774186677673718375942284826890825949833284564536055427889568557695273469881320646858795838784564359187793036426150482610949057384058663245727097579736078478322542648301523818628350203042171773309164661671747513247284369361945764389818792345719992641962474481987028323021424446510934113968158644184458823951119528269011224985639954084132000817686862664710571855613477963616500757911007981560353590857741964666781943031864955924013998879581619025187735518893258909382412515249456837968292871512337090182902119602016775742889301285961373757459146000628307189294447573513795616793199903546820158047527093023905317311926156077592506314342255742476570271974911043726592137100200461630011085467200701188119584209343169613354056473095157105145297702061640796159014788036161659377936306822393807055912876061030674440625494449295269603725021860915517662628330520396492305696710767036854110291876182931948568754566913517556643278329947323969561616268690687629652617761556679106297233321074076006439824062500784565669306543748137250435452780241575504841447008420071302840505551643185048066493758437575970635910889315548638729335966724266649921184575493938676952718364109260465045769164955594294518174943587009120987616629540066011783467916921777158953130682721553466086330908758988810739037808384012238239277811885490047437072520720649221280266308759738341572787695719509602329754326568824300936156838401601652350025323301814062295458792441719493160846202313996133055023777162389023984743347471076516131487260643063388083924271763939518314760667567730426325510241186942757749960616345651774738231312629881737577718268828518149695263461549017558172492298655027568003304663835531852761493766089966112790814562624852951356032908391555292440126965799737835949583705117628457653341110125859901422425018195339463027283517173832663524763010156586756015100829314552138318737971379940759788885670995577251176671872150286477971797991307567921836552808059831310011924237406877554739200928172653464669472869371146391172361748558996914916886285673805422807933879762941549071042552253810103333411044508809566964181262476434037126835648425689810078735494611775717505208134017296572588391649965371865349674648229088784861998622198051653229779941083941447121635727204236181534245262806257511852666725186990669048563033640734852480856697342353649626871333856965953348041059113410674648313511871182224974505875210349648911125694472128305710489491943532018723289168535750197125991639114874148905915042311827004230250835005356583835163533803756188360754786131505486937398826763309413029582002883173066158784953034732616598928504821535872343912977758344296955410758675146934588593820888837068136041677905846082570805199884036894793846255885419773415520527021915663890049567088019022863189340610085607545007586110389761172068513861296020384240966159047675597147158039821109375244344058019475740447650499315053360021388077078822365002080102302634090467362896873387213809517033104026646726894545106038159548211886614235718084119589858206572694342376654205031797990231262228976365170984309958597487572979448085789652420223741165003027624335920211862924178940860792154429341349686161672654085564837833691832649270901822369194414411272615729929099263981184691628124541899787349872148778792065138358285053168821063588161110261820074634888213515756151481106340235777058287058489862771939006398914910210180487912860234083655979280627616904703679564712214772911983208300018714332443747710732862623432325592682987175407459967005802285168391074749090794676663958465607562875749901523297428134151264479445891091056012261926499716486187994809482522249608337037216388906427469820691311968953793663485759846972062288159659690057850141026415819884027667402956216264727798512716574203885144057596277304218861745927967770359259336775740822651452430664507171380709838513418729949657044620968831011860858255539979387014059768316461629632380889542526145710413627055373456018465951272759791662798886443654972347490346385660619064826457190838358130092012530123298774792737414291885764104531026411643156035307417806909523600245694550990408013421329717692248929854545921798250534571245452993796019989329937444871120714796604629534055589814945353218854838369883186282303498123780236070823149159197840950136292424905291932712425135863563890609208852450291650364295569008296778245517287504508640779457146429585747175287357517050625063363921617109663405627304093228926825422103267012038198540245181032459521855628849056164180611812608095470166837165908020378178927558177988124509645398735143121847173386038841213977392909176823151128222115109532419412035697490216769089508598695363392717169001114441704582073670542022227019995144947108864891191715875094390828848419912491119908451877367059821027743372400547473475758046977108310474011210210899969936696521511396091210415769017106227264079605712261389699394062569736232442656196514620016635063474139216449372974247501859045322506024576098180658674528739629221387616440000436722142994827774487257981064353797558897946567205606465088971049977528442279138160454468619163971394912869311121670447709679048376243720615133258803685969420633787465480096347295977402517060226219533018266076751449149913965218366915086245179964977591972183321564798660989671862981578017104964642569001386608146511208873642540355305876990699407635684610156914843548950719195635460477799218805369854021612875155628210757748235762932599218424727007903029308540150482672353940782980173978126317943637671432592037038531646966728585618123620423868367156350906394718532347194294328753136919044662414490686321457786539716840373165242610462014753579754811522688031928937753472756405494171630659074025728926008438414966320211161290721323818800141887258803656760004496317264230469366448859642126648594098358124892200524199394644764588589374519636824636620927199641561034896324223370361050443230623494298480667633538827105102573818060932835469494913593616783669032983180571381834822638924682265045067759772940959350594144220100085632054930890740265484717496758456678284965691173164355135237293530390483755698141167731191411777368904234755050861664411757143673828357442598550442322476288382359194804561238991415431690775995604306624427224405810464917678631904338115299194916904414026885414455478618820627443696762480320079658136428318675101416438079133607491902232310004330976890725823606474070958996889964315269918950805199142969991520484965067577069627286844288930298720357585788859927908432971590012323067391781467105702621112329911583600605719887903256149594334435663770921373127230018923509435732189152475717510078881178405452515389511129811728375786414132545857618130604001863591848741997754221660904853303598116757184033544211566183725418951387502571076917283793465410553817450228876957089667466514670062450445588214546315242470590568059658856814854068233411781722012993105142860085764018727020817262877824303310899751403796250457455336920563626400562663734365570546148410878763662765600931052509277139519103181854457306979150383528360855867079473300406847637002380046231681773419842465269035226411155171385132752878785417114932963453090795835918526917445559512453626750785214593451866910740545282475197622656880260108451488640893032639824744114469652751389140193302239068688786063728685048318022359209508581847922197040317033503806608593095557760416465016426655557620961934554314686343368997818116284190732857562113736806846672488089977316305149875088136457270328712352641636459223068300385257576440435430661270169913100822626122160077340455184117794760482229669296050002762192748144913777948770947389595553146412152423205587214735386735652673903190538590284354049944452907201438848795170716704537415981798758316025910129147740483816115959914773849763342626433987926641721549002016550751144283571800451498406001088140202664214584345644658700814787430342078975750643302614855627848012373221039730507308283936392848761455579078418978342213679011144652987604498833851611370657788331084995507228364237539203692581905128147551157129532078274887815036019990349278025829201700109721727593753494266058407176400604549296740241897618632968714530749110705801523189940855839397579734396193846574751047248348703274467377324686532073473523160105474725999746548539401875738592595448266257173067470254692072918937942121579201897322353706759186918536093611326378682500452905359703333158399102113703648687209042234521417127940011828934316457394574252427115018202458099875903230537381543358074794824611051253483594616229116299384040335388090279675127349795734497157842557717859820673606146578439326981630440165542332342918191639988011539845839867403674663377935524903782496697885601816444197116172421412813343818337223262055166119674815969991373121204430274363752266763854861962769902638889302654378451227477525732172540802544698990489660369713014851891827342605849362952904335368100262943784123633743428879404197639557570026470672223215042162295500459622223629242260473029169061891798331815136975852443089270479741192641676129886550887394535145919810929096300567413220492745243126521444677947455782371606560764310097205696351803382447829527706545381085709509492287506767699350537850243911439604735738403627389274395477729252377537926542211943520962782397141340497668682066423683436571418392481739839246341572493497389308229854649571370515948718629195138973096134299932546509582479339658021502628254670771062586229673372334906248112085077011120820937943874354207769162159857101269566132926871732757174258505868154737039394557448066334928459271222960406291518923000554251090884589924197707003727651370942334196198387949847604528258695425986762971783404224599976845303443484812212204773394231190419139265800052034482433371128558299485515186967139960538617547487406233236831490738511743075914944532788508436539680353811739035746351901321163192807453999516921549801119909172588118441548757889703832198141584339209958331451714147033203960853500740526936237415709085239366223090389287978005505971195618651693163982112508803836859787643844923679506957144925959961205325926518552392707805724516612253069059922160301757422117199133449371108022225273021279823177615830435557259166537249292497547473295073135802635763925276240059169579795409807059778465062036704970020605573502839322903246544507006858208538580338319975869474370214353762936769539655001333138249889363815301796670688342038428341975488320231513647177976746856276118474377778001202947216763305278026850203992530514728375800013696049702067751497962776807323040401027578763712559033480453357730051943156737877107767534449244899384300316145817421632145294656247676702808908709690929409633494120842201108820837180975519976974337161974292740652055065217889499322496483778595370933049662292545778693021387046279853077521746346771152528651923449395794002252370484509970631008769115406421828737866856055778487233541594434981477231606970245209237965625721433340548863586341231905914298209119979398006517001009854765220600754713530804026119286098412733903425433431493032647098464487133368243375089857399045848715637834779134159156446978316036811192310633215096650643410124383856711095585679491132312609078640414487111601082939518215362420887865523887494025785441855969654994069425489770663415044618277190062276974662865878568511520955625732550777409405117683630334155532229224286017445172821653842355802222796683705738707365470368647010812135690984155841971347286946052084276260920236818649657650461827506793800259962889007810633295453462367163131315069584523906209898288835257881943367602342380872855019022339332155211292832210986692307784060786244977975000689394802702112652968917522836212254829949922754622143452711440202971595375220481140684977403946031521856823079559359388735671212467856212290237229610320339097315003363014502960844759434095535912746073146609720421389889112893157087506154496294622692282205917089992792412604521475236313654868642757515019537797571965481497731754647454585869729781389572539864408341956858084897317260294558252846016018076598158414313645188986533097631215726601483244071122208939840944816489651428109286969665103100450365484332245823206144079313729332268244434171124583694754919225291455734586643109440711126212201878019260314607597822503703822541469654085630377280918516999273235614113342021415764745756573627640932830550629604396017484157353782080353596159531684367144071873346143282612242868872757020212296377692918833076478707456288275879997044873562779659426237419884218849419363329032419989587162263080568917528768442408355265282726095037455925506743360928225064822283547904624413807375383847487449543669962026453329197609907996238332010417791339863566696402291442745722054485818793901233846051257741746031902908906586258245013445642706720896862722938021023774343493908470919398514054486176441715282031209591250607794339590456751835590518746666137223818636633038900662800242535674537742930654037897526037005026325105280629210780331955118754983797008588041940687472813851360701620805107441443661621175395122022143774183463785324204106368059118720399392235372494607785843553805097629197430657872662873353257279681226435590644156951800706118284985728785699675131696311077652018504553376968363093195012818050364679162787938427210451074149464160739591203281103288599955108043745688632738578972816464340323020725722284462012212887986537850300501574883529783568144234573729190390813167655151238016675002951408880518210105573938547215543909700510318548935585384331432462049421528041814278531944223497012589288286173216088441055492654669620150225755389008021372066286605898413124322061066448460656172061384575669848496358314572604060223251071326009633112031500677637286472033617694855683028535040681550018873205968422473981635611545546290001658512249531436505091222923367757129378784910598724642137235673099404220319752059287039236660304060306513275862849872337663586648435435063445631056500223379904116499485416333273551400350977433466521222891574347748121493098987111324349418739295228813099658929089250455342675475596721402962271378762029281367348038100430121876713122995183831376234242380785532283742779753229248130519171021798442705265885434252126417764546244325598602795365134421523154797882304770951119630611408868203882866935808800908758452260985433108315140412600688771503891195751252700566571230770682740996309982814457595786186289775108679835071659945778932494377644988358989864184444955759711477535222583920270045070003790114203085639098412518877837391238286296217353627400427983118086213930341600257037970724559557441468052084763941317752473552430124411261558093960913681581609968899376102589256531333762231636669114523028580989829476008269653501830623995179664468058777262312348450985175576319694377666903422219486670175021043208739709666953941962106888262169889204870861457652957481615613161393886867345083452922429657903760802057730551520038856471782424024449731098930745381307735586180531227008352795927161514363199782364078447296275624156695168032117020442363125872417506369218099315167022557826427803011224086349845575920760813112471557853421921141407050938301145504317354348171859257561055331042356111666944340278304818811973815148821528813095476013606684340466311123477002586327806691038465742945880442810784119047946001830374516534445666032351409337242977399975994150538845596494364856143027315493556864503991538991281710041919731258472086017655174532511764185891009771451832177997833519232586637440941191451610031544728906988630425142927450252059578312800924432733831896311676270229593396817456612902390456100397245871890607002644621917333469969477125609519045694017564025080731178026333412841609319594771112138986706931519410429955634349706815397127058145041370073701873770809817341347366667343864289193715766698609462034759421870571236079007995301663172861923340738604915719603232525189179244975017703457342447877594654052319701054290141580750110503130938860755013878748094971915253484050625825037704338088081415210267836926505342710145652340442081022871307210267773595959444806797145669064682405157554606755612599977434065062840801863317743321932989690783905095973797556122958767867607770398905749807379758319145883002724737945310261175998378614383398354132316396972171628310672972515975704020198310308344019058010266020035838195500539712403834958562098877491997092153056282932357420844641274375771583681126419935538076996035351732986436876344741619704053114002429646021498000690367538338035572702939314113506059464540839023879862163629033207206685285792143467293500662450002532342183660906596028871176964271250550174015391251196603617516382763093959237621259056960456492161911707158125058565045132142867824120814147995402617917917270018711110736253884285900031954003964877019254854552287183661858157505049723506473522543795394558913484826280436674531032875361754927917836020316556592838234429200181495566713084962358074131299728118767029835385997241811288629497472896663901303235249482007107365598033720237024137297522712137194682630235853627999739432965651169260715569392051450380638848943994932036373874237326681382219448052029505743562653749713239671923853256894060647299682487178604398531371134104341668614978026611816930479888778496120122470871261352980604885210983179473657800851075252123816837810713586379471805787458394178132097439837071089634695146743890229266308387834648911536149218488821283887411291255709748712105772847692314519955645728897653128739264714140152697560290151714842374715694333142216326251194723641347673946069076704438676446331672424136411155488991976906321858371422320214438520335049457149230745699377623187574752959264101803157687927753011797125840832758455180278422628353981981585463332274093343165273088161837540838951718575478536990307366537735598009509019944172733789440629375406145430049060896210435813351311682126794397111682430863038181420630477972574246147536545545228985586446188943089798554950239194096561062912784072101473501176561910724297510736122022481524565248506593923746138413740587237593064769055600841006440850375459781736169058910665558673236693994876789577511950620239180474380578428089255583199770972818788468607081314694151963466735120079856747621713959519931132552495148604649634258450232199892048821536813503237325620102657052655973252138329669508945000325857675779566003222278134094373387661542345070741052674404760386887256438209427798357245942145588669645767901365974943180081988562571043163822674130693382346760119711277045893163651571988198078502752556873461406623030660939329501183108540233735656338896751421071659841761493460911763940706148415325732009848610260925677283528395632739822510190131552010574148971218474571462447676304909824326603835188777321861264866086285464898588166798429488087465717180927444435198706873091019464234807838512044719329581171568406325714421547649816437880940145972269514232186980742136874961937863456444666903097521556248495445087675902091649747914344784462495890848114645331054538435111045250777964022194894537818191989488576899995926243681569031636961181385991879366868481870970767974947363796589063189173574393124119645099843056107259340877220153290795247215635318004392661367599858305657789754291765824602557432775814284099017704707521135029685310217399116148071683407077792201726651720577328233912496086828129099657752062369539978411832959388863071575780565057094771369293032027313954454420753006019116553510064194079048381887478125816074295599485493554326834119075538370795002694636871344273399752606939795758447301841596963755639786776155639886265322277186150557306807696239269404305154318967202532421200021316040102709911141343761511627665862494283867047189946199564738236781038980651319691997966675869585699267676613675236186271914589813658647096366515531343554602681935114747588877507004318086527384968736616850565641322725189579488249498562514109839969454945187076180962048664350386409717277686139977131018699096033843444408440415901470077390422051967472402756290926163807854009294287888839073553907974801889242855992425676108294006671623492293091587180166137180976571102688536705487386915972824740568343570937213569667122768634731205002880195319039071211130713129887169972003128613281282008010627797982108563930388930073763652093440194893628211249609827660240605814905965375724292989944836636143716843504329551286343499835454245496853386523942180439699138360942813817867177632436601459477642761401612445445268736474313483577111871570216242521691901730234430497851096141802867589865940160960465214619505987876000568738935552516113816193211404656550764272616113074433536149754772900148722675839872738297696093743485315593297911652491096520923639688349582181517520983439797749767254130483031941596298345216799631137106760736006077619619918046524116522478453181804806338880929392995517232575288422375450385096249792706273679332770078630800968125501002950856913237594369785810602998292155280668785426322495964567714859899287409962809391653395307989910426238416522230168811923037985283268439610018315996178842542399446277380711464248855648243178521958049597257659596136669760185014341657434867017865965779317425260044627335336116694003477063037720063343033769904612168332716374076073536599730964190164216798994852856563542935608282022297297539081544571512955008177742347052028752989901173001591592043838735648745194728770678876495988283427230565491480711026522318275649703160374790410266845479897068189589575605361265421206328980175688156655835920010247793569084701899393776829386195390044002895954094964994627550480669941379284812754491962240831478505765240781851305718902589108039990617414468349642084854399244803796319880775823280593047379867325824922520618774189508261674207146571464853836570853981430160503818854978472928511987801601835286678023973730324332690939893139575979523373365102215475769239834382554911207364204511129710823868808449277982381430607176776317554479363045309807017419909981631845208080353665359130816843434294313806969018580091787401580049046075883482312746352525864215073849867504317420122180946902957160349261299895211312854595606463860958033536228833378220186463578566292883634375345917482123081941933484647764615582576422046880790800018987134913232957055536134802107941389326636768742611399335340959980794934386683241247605511819000360633097635322492744569221905568225994715455291083756818606786474112013658748578373233455365782126734385501676096931964571680099107291491401485287793897553602865300944714674930051711810195144230959056922431857973358395205163286676012992236946330484072071528326068569429296774008908445275011226949647308847665871346022852616847634551580853616248339752666063227263230168236955171032501557416836547751558314312348748042597318224427830452527853113837833076860012737374279679153797263463452708366945929424204581400793601626612611898395190309037055321155958306615604743406130280802695173994400968804463267489758648346838135137619249265302239759847335910245759551927851266330109456199292326469069651550809753606171655594976353712124352001318794999604843507635892327774701169675247787330281337859120451513427012963388592788212583608126957425427761776523214489026915120596165901039579502363040281252450298521457454038795599412811667238065302254940849734075062270513430461419535618999066642585392369330419321824076749797139322607539299851245448547523531608122789131878864080696505417453708483537213170822115762534262354587807734083297309916850375808018144265476663251694066795975259250157197802821200078053646128282066901445212543680787434894160013580541734699422817741955871567750855271093033614104264344063506293043992564413088757037088792166634237507840726174364396289379673358847666776971493403621091524955862782364520967950276529697264628515208115037647675779258459813060356409977276449168281991194064993169538388202675286686964792392843446734683275947613281246656666653738448595840267609261840361508903153578599188543798156623516313604812965581367032448965009193644309382953938766711254975333162848669927760135460654259418791420460383093331399024624921478541547424718545938503689878136512507427678393683011739211221381866811159289701751561373381972560914840275200689852666913444439796482364449484596027517292569687696686467677557797813547693531440813024484780642938017733559012499060825728857927454676856929525127169964547861900699559368063214304306104580741532400389121863135660536590379566625103918816863902967006107455954160901441895856226030414078165706597463611811527769402494841759541128181081626212726089032282132175243823314924607089381349264078870092171705104013188339011436637312903209316920174032934005802131255833701012758178033106183350178932817960549332501299308387272850729231053207302105085624060804793057569242365568666674437461287482313963147199196873538994806003919156517687092823250567926700752528287447987311835879433561432980612537489046514581118402638399352206227585599071741143539420793438274820136433979036233831663818399894784219658820992154189832761495838556444928325046044168281946319403424022699862145472224967894768720676838750842751033478469402863257796249700183770425197404870591140687588294491379772760244758357059089723027038225475047525570000797664230144466583213598432865983197402371856290889754684701716883209399049419390736414410597271817748109084501715542154693585477490203488240454154080683040559190341478189823806402955215034714221125199263848081391081419684037050303897627377816071633541499690084852028678646412673675279222076935800427366029963960781929243010324379619986238179155256955218368907664536813818518035373370391827678009190693652418562522815134971736031212688907465473642073494961247593799045698879686907333882780255906619850784393843022035464101879864748949162550268881264670055625701459274189159420705366370017156423128355496190141787345024739607241880908229636211002467768303567331308042437809219765097377840377442753775500729035142932313149818871732869631454972919469752889102909993198895490759945456785491033535496848960174642918971745104852651705823240497905178342220030616775265821902401021273393461827949300402211508144145633382940157090157856543721185773259136524181744393375771247037744454921794879178315640631773197509251703806468681701593305971194311972410845196136717083076450465428749795917833790096520961730933016510875754085050566727812475523487294665471111398740373309963224772508169667066681265246292201477460286257345669826975873854582410437706033062584824864479704349965186479420074684328118930308997276490858403715067330924551747984713526869565503308820976764013523939972783050370762691218767869310207389403228791394942416805598545818307649310786913713714293316238250272707464632806755682353948364825663143200965200625111563854620931623241891778538139700145638044053348345069251179453847163323965991960955785629251950174410241407540636958959359718562954256395503450962317274563768389953198811217757033548645218405282832241197872252495839341454068824510469661002025823302126422769151970424079000073009832576646883176368190827673955490094490149118715534991014321409756019528135287655109609850828146816034892326293682364692261852616967637661146255015313784377118948902337039915372814545032624351737183365774334085763284498558240272784821503141834259516006509148677328903853314749058203530308499687822218668010254188914499577593279785689933196110056797316551220181017262918319932188566552304631672820435614230338105026089620286702819526079390195715027782384326027536330200538593033533381840056007092481036843060517285696826982288815546063389491598707442172587255199865436862069939185128096925053332362239906446218708291752091303446846313927005872082750519051137984781703649403887430972187582568034295535573759639763574544595313645439721880279153951899495313269696221502590748748949194799237280976190176647443138121427228951598715007990148711292822232167660693918740533674721803394373587100368607843221058086269921243596048593347304205721597753844437754172745769736669380681431669226674426301396829735835864422544819918599157480313476298102390837629840631092419114599064675154973657809327334148057103012262018343772762284574932648637190443897702394303100637141820138311287957719401433750570954477958688079965560227513302222630990931729526733093296587224685056602034731108719797113395186258008933001422730103161582922784992056613044654867720256510075821659415549548242811360853331765751698324913418753700335799115287213061464690318964387825888810323544828803110358385289857802705455827794672037550890709779215862711937615676217955452932771891205425398755067295842042405192334975162560708917594239824014852685942814371750752300923931180193924926341877046909201477600743860235918996847002385951490209590287003024970177728582829961373938052300245563535525419764448438577794776705037063692424679718748404208606398310763959882204620065427616322737624097780095766047141888176697355086833996411629551365822918396139572568182965284310101669944280220669116637581016690986500341004071837067607970059288558786227464121735781099337697006783126535636121755520031086698134286049962925161216500488408155970040360651444280409017662986461408924795836609774053961569513208900296484388219598989191241285554385983631631826965140585920830747803903521525923211991918711276491129441272827690255825127573814317023118519037657548666751337655568433687182128550673108880645413302206245627411876291489881947408801919145068459302087273868646651772349335406885647175218706438782815865071117333075957829049375067547458714084425656498547659352532855902207721599129201719659744317906834257123944674051892951529053499887492530002382035576079747264026720801023989646384104954169605624408808971178984496702327579154635527258354300423282408716679967754072093795918123838431605229744076987768653359204884868814677257742088123812802654979507607008713239868662979042845138631697411234678549024811241104537456975012486435407655630514590339908842001277747669778155535176290592034082618344465018412086589480508348685045879376131180655211877065164001206146850884281957446676440512319198577863476846902669284983382364746744582307388198429114004121278544319103957965813153955158225208652977578339718371385249585183295823057286995771808975368736437241452832314692428076366251241660794932463137280456337920870087120798140041704789702758869115916044791076351984465559817765150470866639009707532746171945661893746957264094406997357692217518516223688086518910101709937804279392272069776972831303273294991482387500279663898188932976524917669658763172279300990044261320138779950892913054267312558719226585773712360434761523461642946996932445003830211268328954359682392874256206758810079213688412893373331178993130081493852588471102953134181253172753569663660404612671568669022220633129875292422864139271087262985356229695762138540061564592963316388174615590463284447681003716420598268644259342112704861154068496540598975485303046338724489037997434260690340007744517770366124542471249642268483766168089610389882575958055305426540290234076633540494756759464275283636608356870454300400631116766134235070164870561882788297150353788146819504660323467080817854381648578928059346979446762592574489835988359646875211830343514785874083075056379472481744756169456912113590548968199010569527341201170178790852805001186517663943125106998826113491457215170969430673419533027559575281145661640561935134651155267225264443311032136766367618282279882423509845157826005266687213423856307311192782480418787102265577504438011753885508677949537632574407179716786808413989268574112923982336389059130684913894713497834066765333761150614410183126091052981030448674539124749786508406911522080660291440177295860087495137941172280425750322319207864171574272907627742410728257033787490447898539623474632476756320834856254204083722981434972396470466432774429474903424168182841636400271897858154706408475851290017772178236479783088057938860952754984795619550533234553826804009031750872897935386827883407530845337683229178338958124974921612571048807511075642822023066508331566967268976016649161217536524602923821185764217952770704960016861255792712225331704050140906770937874544231391801871033863385673518207994055636214488414767584554835833753218939980089159703982536981220696887863235124740667711100587673610356125903116773805448908596717656079200454813678625966752833412115400255094712242486299647456585954565054860305444143516285441384602883371175073068356797493948568919700207234445647918956679342040303390229767427322331770866800265941541979540286442940058432580848110956044206856155747813836479235465665040450013700234204254748522093766944957323718866256669984590228776382154189872228131756389134410327911017057522837476333889910353162465816061643674071187518418703765606247002126292208170682492319108640622119082420290265469400511951245346989277567770330680583749364657330995504801729946894905170402235154511527300804732818945997809789017109325787230136719334686393520778373060812781840262743478472353824659322848828436846504021872680852165791721527784206299527047221524409142790011856179159143111912689315528527149386992488696336578496632278936194140811679556217205814762653648674857060754692747264858369153867463259793112668229883954406865160040444924318442879308395187973061955925773633052374743352637543195754510821208145234680244230420224938006445368913166447598820813068503702997949401901252307522935433477265048863880888100963787374172739935930795703540260359866134706450849548503090278351255931839617648353302571942924180931639373974936008645034242782954710428104229191868942609877094630603842737988658238275990356947676547278281793007575351782382110053940295350458141346433631464370183618430883125301422412641292963369852410002419807331408948425063463082685169962876036680153202927541956177954335713725601160088720204576468847517209485453148876003071915245205697993573968826922607367239636492630319897994079249069521051317853900504225403843916188802101259491322568381083479386556882794846468444976413781466078888538519797155322877131379843399883317047255352524825170268078274266640267981541225607418806320423151842964989904755583183130189599088454505769216832852859637362998997537421903184030963668285880897331992811728238296112907630796082467368300468325059631871760098172775917096172864041193609183281869088469445986081877229390679501944792810986662422568525014125818069273497688788972938334437368772888062297225029600310947591485647554716950478932700872865152016999316848713754506189220299310685718544129656294359600727113733125613314227673784239735807437827640121989882089717064818295847443597859645831366639063208175560004165932660564332774545407197429781446497076432399414743079169954725035992205152827685832878592163237803134816142503699571740515879071259907548204898739251224986925050670044450193428242462198701105170611543224076303874100737576157111204022116343878561412036807013553704585555589105494332837803270450660915074843258520141805590233535243344219869607788982604049128238098428881047300579372971499923577882782025262800943987673315722540112311583700606664913495396941231811330184898980620256253064422574744405223897134698447908724187571464777127514638112442286547916196647406952911974372402046241249046886207010867365126527233364176638849612482746625176957023410845067305542356962509960546224634924890496833416012603942974104760308269755854364940979738376040424649981588803180571199174887818576438565266140855928508297813308345174041130364642772967561919650516240077888756316787465168606800778001334025300169884674155765083851969123145700723566205235749096526779257862775368091765257677994049984593199291018306078069278011672633668828521242732356574950275034650888517495893535943809285588404640179158827528733065240516205525668480699376719226178690629977859112355842769868362897573115075627248625066452499844413928823700608310085794096945933729384477215205720660234727596753665337839501782603313533930900000729637890103605162452152703906935872050824641609486389105944904672803386167895264001278016643152736845540035990571952523906978519385570049026608044520341754334590085624655896957313496834163757980573036607427310485113937078044066411749770299681956326881978825101830974780199228870976327406507654803578141313328793077502036525112473980205436540521012678303700243952550176009708285391454965009179661267009712935169282719156251279748339370521756882738700576802394263189644580748120828446231917268404410115232558256188697383747994550708079607501177335539559324997384914402196793193177321296653712311491150044841283009088036335800985652324631681229434086403182520064700948010999453899224981093486004015901731864654388795824390131285763513850136100105683569657505080241612383900965415219300230469553710234889009678107022372321587791711063910029415899847048757472944059938598840410589237893326013665506409141534111424241304610043041726682591914204139722281796056056271204267933862301732043472432148847538285953115987358283917204852361836128517168569398780243893578234291837973335588786706709913576892409091772488605562446611512022216275252874434261539275035557412275522604636019772260114222996438812615507680359961799467237935383058240315848294719494540141620855158105998843108555074662538093468648908137417431833240161561027565983372929005270907817482446454243040041340706221626874112395666938536767136415935287470315038868087748116472854613431949963550351730456025632430639528139461548530659333519504327147593230107830420257058774871146099219671363058770328615424040328338201716235066775723209797086576762534970128111881659366605691932920531877429558070514307871506472229484161289629234077444238690741524482164784386246391481048198254374512857799118145360214086038824571695134489110812273257358406472653453987197082487926984193416083239795253226100675290587095644292353518881474257118646958758547220384227096148464415966211137706997289292379076814336423726376795393838427022238889496190211171403538425705462818854456869169558719086233430490251423850657540532112355274972503764277778379428878557992727100041843153739868233347206889292844711596505183642813037070458210617401477319534760874327242230983673656075227589966847647432149097399225961928779609592927683141784769629366889624363005991465835796936499721198711271928805244595959727136498035293182505942693839409379108666629436609467902962663554215909511656418077444971641509052593622526365521180603706110572441767988364608634033114047421839102870726881778718194415353588534956781229477453385134293289832188304842138478164551012120699221177500573305996714200283358639574998572848292799473204840844159308093084004815285951702618155113557661817934682974672101435628702742370087155879409070700833741606215133942733086298892950348031355602339547231048544123702041870631705469065713040835925977620413544172696509266335305144349673234888668924572577217464805642145278985832737098463480557522934048032189568383790171971091370967282023203020649772076800858831662212290072380489215545856344229787057774930523546311729440522246145002664261803386126255753999671656141975077511458793285615559782880026489565674497895128957925578008907053501081713010729602928493381693964196702275826491992581358141526280434084321348417115334231714230410929957234656653113377028962984160503108877160369288148912197685767416087943809832693851431756669029842841419316777779404361591328323807775928093811889381683238415937357688658263837040903714886937920679824532458146044029578535847635044592605599438084154279198056266655214681243029034494930946802303385452535009769116789988216381477304329039145407929740895815549664095349842314353920003937839722175587871305306144695478733707911411928465649133131094212217299884526886981180792153136649145713897544388897091733633591527728961822954908208603102061932941530013254816073399644545408964731442412743753971856481018130096138911090770210386142840256408580678933518692312583717350545183998618085285315621896160825478023027998801783098696871493309612777727408332508945727232479630395142665695119649089477868146899376046168976078884537518729179648628504160868020761488669075502139873600324729699165728021300741282557073811435674955565841979652077724153667337603398220676582777738463021810606246492053690854143138468391019684234393890460195670383572190044751427284163944380669680082844567122880498222799144431155668272296549539856442563899803928462047043223679528907326703260435300055553930394937562735742950413198838229754510144465655635189595535269910520823090521189852895026072105270127378210190734786886292678651291280361806319618647974248344838394700345364404933620215618034939509479770046863584031766595761675429189863556731608345902428277172169163378014387172591127245190430673360444083020482084046535444058404425726800404670989988319897611707681295189570103273991653504661361104162960627022174317768193717279049348684147181267148470355742817347495440929888929916831950590343650516430078923280410442082880978118048213244554055508459799688255788883997015162264053766688288200021111916752378430458864150023492314728670939215672922957961367184900492715872103954310883364442881841499671724641766432570936898180284608165840792897293234188798856171276789693965746934134711694004141527915306571187422082414495889094032824324344450880744532820865538915712936015294752687657138809969609640209416810981033984049772559274842757439823416950596309321397675755302080825356081212837403466422777279317402229299104495731465208935435467845346087337720383432897886561535889635898498324261558974994501816131077710501862209402445654357492115683548333903316768769246622541935353181168623557395257134350625449891244077120419508182952416300714981557215909465270723825732659545287110825238911734302908882753381269339616792838650855703362016941412234623640078789724206426938807839304323631688077384422338932623933183825645750333251418634686786788362360823368244516647424993482782154605701516456157204520795914349288717582149058274435818412910864674368741576831845051596380212273487230186829745557585181787660310856437470369866698635603645363611307425168803657729340367850980315197455801188514772726230233264798247090248866812223122542946433070156462228524563418711823772941899564269200788481852030887984497547223745416976482672599254894633064170116623431781830943623820766351124182592659446331558736565677076137725571389461335662150588661776279213360828081387172768892155801062074034874166780165053616268967218180623969221566349448152391625704992674284051367190385752475065777011752180741442518887185467621318230915285353744777549457523610135021061471542029220004044607538752567328791360605838408441451195079511607770898429620968612287520112886715163626051152258067690154389167402348536758115350194910239962616935977840547165603979489505446908989006849021207535831286660312795009292998718602311145425146299030254543956468571158639491024032580403118000185173400930479320031770876801773251930516981650392307052974220622875573453540726374211729126109760686001589783808675872603797066729459091000387653111799193368402816608789067861918479785389464559146224400537027576417622253401229042034035758887989788547726925178566257941032444601526621752438027067504833334546762734852155250648982740084184536773325127368056408103104320593432331029786792170522697537027160646643086318535096690961996823399171436046799115960128291890037789420958344825375235230155910959516350870430073716819787148090957568940895972772171613938428093805317585775658058435670078792355668225012448429497756096481862346253235385533034290056169392859956645925875710775674694852582258403302544612899384032530655616093732535472173890926520732423989527913209101467395661117891023601890230938201821320781598819473061430581180318823151486155671411575297955918113292567105879940297089124325381146758002700443638124771577629137416645095167827170211094369688126491399596950845794400339620798472943602327102579805430234126604979383027082710434911526112990877827253574111283752637316180490176202238590069592648573324235632638004822298724791392403536213442899453110138804087591944126860489592846912905534952448618168615875522104366395844858761483375250517451240114923341072908789855291884941775521451794750278818161928011652511681234811729775913701835896222002212746738343936194421500587970040739299920771423829743533327988807148507571173400897299232163197369021549581322216362239364542387540727360457378053451195423651475934000723434184274790983877010580134083446735193499313455839235142351780397660800268367767458882371324977610320570708805938928965838610013836236028366150427155462122518406871360819900735783936125999204185634798169004816270789757487602294185274017650124582864499701061607049703962788689089770080175516129700398452625697250941507437152264983352961624850175914714067917581898085194614553634289340732236443258660270705639315192462634028130633798105261262859221193762148824010549713804762149692996500029213109621424579135283087369478217090608600480007279595017233139875347779553562384192472525521158400715672506653303144878633318530947563152986409117306343432722530518334086652919405033059799154543845286508930419685589696413138031261465487791428375031688961936369321189594860081006710332892671983160176833361723055893877481910400949418740032997844525008740224352070440969628800826360652146549575891391003650306869315975795176337289684149709097945501578864439293915704997746972783808080781235818601706745985874911282215411809881669919119735518808797028991951349171076218776270201205502151438923982454032333932195059959446665878252558046840985158471170921955249970505689558647624459567144699558966438396535710253623889515358904801742228845135165250603020088349545181233827934498225331262471646748041259307548468068711674352752706095183870617320263228184434983127355793683140977225345981442795146847560120137243743461648792095498636904321086247077681458046324422891615726901410046768413577299068523160938810115873593419543937557820142295357123056093945524228295599710678972012538200262777345195523076493839781334670775716305670096913502612507990215151498363436134789812293304850663218036419678792553960971287029020822110414258561387908001902575547820343740529106101826181642259118053540323497554100970046630485687117325267854590611072244016805995026893435836654073512960608635047367044855895540634624188552353637352922839300860178441111062955784446157124256378168579526604673357819807994979595651057653482776793329362052880392613644581571098203503510988951793651737136449860163597341586979328720954848585530865791951375663037908710342818136034197863012679515251299036173682057811901415888894370581269121766857007353414007335831499392125824791736384137346834345611285015667783211089075131093093507076525641735617134141512152024257887977756137171287557282633564703024452662855436998817944048029423851961945673122627800360539749403795563202714620499414548487354666999743549187647387069154776860302087313170065414882716334975292826588898327075719679456351438031873957002594703419890835951409854315122413399807321185491615005369224271088199326722776982135342077312657135345945683886980754941927642248529284305312348243100863981384998480021672986879721598811664840544132684052530808421656442897662387203671009257513980433744420562034482516634896341391992459166672457561758556004357298011604144888890113763810307236291259517343947596546099179488617796619012083903151240692310795032838639675428834206719544718382295562508742149408187977823462873601384385822474187962822467791594223689085938643678139375757266703693436910689835212084009607032522451110259738560450882834518805574414755762247573746127142862508346537016484266089590109670745099450721410595581995022158287643680945344826546384176241674789099151819209998303285772724288176239107202127277812332041422348475466622645681518354492261975587548236904437442503938608354182091631217078834686290072897545225371504081861636735702906062091863034998421976960342647342301234838427837627049483952393900907144700714422354091605410044976917264248459067745703886476204995856327781663087026551738373486416469283234574121954452405854555136293243355685921116661700136106087762456778022016786542178206556600598990703201482776352331160513667598505358221955223914848075828874910283664883435520518825205867402045102351293145859973579543851733144751468285953828826457693133733805446888061518286579463256225407123906504285042788641053403872384025846412719934392816138320341697054072275286347566647275127204965982632993443677388457107430978972572810771843979179443094137466191026530680835519556507324698805736747751151665710900110983190015806526300933427214458933693473725354200555594296876139293365937474447185177799945920151554756935971856520364992509912095122370076130930202453521883566982886963979864719846291532006451186475789096298325221745157948531045862078841803733696996026818270931580022141840425042345552919024082952688536354783308794172143612226643181970158758432558361914380289413906277400998397064268669770496194153750660110150837701961285450456647467929203474616763584582937756476635391838573797271344017442715658000607218450960300330495160512129788317081871173251240663024861056444218707159187968331487836036478661572685756242576239292223146765957558702524524195977933450442492936277384420080746711510853513961352945325441092234745362354614714384829677321340160588679829361351586381792517029803368140192191330876308258880028384223089399116671323566267214962369076755471510713214548433190324011591914170778548458400648032497317854806255906740294559967566546189049515510763240907188188551072505363464705505066159312171784092737937440442134118954443805397074260962049277246756046171889789317788393986883014306217429883099483488867392002769284299705396608834692036915422251627269489139307516573401603689285615336732352333435167418763947408078149357721879322984277365305250857201199436429763722227736514329694616781207646895000046860607611029835282888344248175056778629562492620252235787770175679391075366541527981954167003723115946363825203719704396497409990078714048417188486754403045874098241750328822597592492483693119320660212620869356993004630780364393583358315092410387518850713230157379502694633612282019510087907568502762796902421825644416742331140246536467607372424985074168659038117750641129026094801071840568612238470499970731752691506839438125114989187314417080076969476617973612227205598254873354602828638624343203177707646590167446985113568551937951361599168749734662867097061785574569415351360096562704543641949970262173841190164852088106118131912582030570780432227845748998191540130959081737435679765678831344210869841201199485548639574897527315188481031161093580519610281235156531937278148076275718576053435810266969378244644441500738183743515316930419886543355610066833055093462804017691974345524393904490570451588670663151888814181662223260089294598674487925637075985219933258846332368485344412245835011303687998813457836753358029594107188442779749026130584053708655064470954303932858075610521335176474606959926612544836165934830383611632350430843332719417954144253215742158425529018632764432793226581809697296394609259435286683882000967843986251021000578494122140657047744390034756918165995009719896418069603337865617810275017704757716412735577690415722733609665810470689447959688776807106857866496774265026972506821389288845972295500537070378511017546036019841611244684431009026226308125415111988876757820484567688810951566633167902445418720100078771595435368350082755473879746830137962652147627817169128549001406806764665679600995881475613994440596028595674678235850111997481086652652108261911809789479600699187891922163445264650212698948270990760775788240366873351500904313531618989548685478953938850983048100148773988761294462771290961317213784543781591108309216398041121402273749212504665276366065388827565911101302758245546666896317859029586943118000086092797999452063931609116083222907420505379954518399990388493700770588659078328513494155819076653344267560073488350966023631233804801761825009003566571234349744841779673633246069339032083892823826894404377019548119562971873434578013241860589054346110562992971362511350366100524800710040058366922243285149627269893917253947457310016054656303955456823457393288024564563554564466851394936488053386349788388607248241000680259758289935787720691829763958997337242180174368462411590969631411796323418462241356506956714475982240388218993960091112077883379862530336321051715990040863057861466786992109024013659829279484247436990956773176858570251656199714202430160695368688775766705179018793014449515719407952307182727272428233301829526958970315533830095378209631009669287797055831125552251785646393421982515606474422539013463661303131430729107032873956723984387499322808233172476337993719586287568387930384345053423996445963210472826108422081145226011203102676837255802973765285938567367846995091736574164628209325237781194208429006964395311959060939787784327998376674361112886323958167201708270666478859128206407406417221832533625370108004805932691387531504894220780760794041485905658397057080584428117871552415583745402025930583481546637446284844894345959746845423317053837899248986251817425657887819949251942753798273507934334178523044385076138121968032818108144973938648466551046011953176291419678359878542216208859487147707434765812747548576521353255165030408648195945327906720478164236559859602844701821801396919612766564047166811800150522939696974482396831894928452430289079106116249720790299434748987201138455491805532468596796388667356146832281760476875273510441447978021243274001911478210831901598146725392127428710413080741497394230958345567220632387337356717248225986502891036054447675598285655901033072568692706441333426803480488403318095817953918204500256811814288309612318652307720365127831945719769003116409061041161360538171854943825664802929417077732322084972420360804936389180315702326940213805170913618125676457835276929057151024501691219474087830754607631072315519007254765258310380593968626453900656982776981522584748100907573831892601608238188496810848779382496034278399741919560453632636598579855277035511056222492049610422079000026482210752044934478286768631518581926725388588943221304881014083678357014681914139285811504670688851899576371883632128622954532797126595550675337993357994067577490428107615152604202196138409367857874578198711746657257720151861776053662036126310343911150687409034212565255305494528202538453469115526427700379857452266917335877849435495946838153614747756843582420923777740381325637122890313646846914138517152311583877932157094724905134123429205901371411687797825638497420454784064857829218077501086370159739525730540590569286838599798058580128546465683865258577799537214509527233773034063688484459355807098074253263828943729725647371712460906634877469181863499684054904738219327892055992658483758935497765539027741831064594276891450021817021631278978377205707599121881769907239502459691911746943831810632525161534703623220624319999814086877928952487973482309464251027800476640457219844366303584269322452972154600422713539924442804668827354046668545815417924024409096218277709171366614640874444459185823871964278629319543408461712388376647529906901376977224089779367863502401035554038838906511521854940937719836452943930978917730562164131838650592230487029938108293395295385034515910178375734358645688984850552002255415448315775113887287685556182355950547937457918046350719947508913877528987107695652219239928779820585916862847481561856566222819712209429306434270540342566108266595510627395744536913343468303016275569518796658174162117708654912620389083786837780688334192456628319851485666775242305427159622439810624764856370084719928973478485824262222825675575689571906677914569244810472164405979038754845643049213175796012437572333412850707396141752883689403550852388229828527276396461983276420153734691033474386841843698506240058964402813836301293878749874082604172524864357389592176217819307196952867922732147583269942133424892907961857289031674598430773864423694421009194999678284230604939061251752107560449111253087417981930739560072254806226273528416374497918982557542250210375302418563108576764948031044642424217235392231458316737873854354075117201890382344039348847030777706581954026549518764570855524077502158855617676360208838902051169172547935170542492061184483403040029324910943341298834799005184188155052441148920661372061051204317656958434367200539678200886828737589632721331253452936461317607172711529771229500891842623685917085296107186123008860518774392386393554160238140927490604412322251214765136430858527256593139741946798335895520097724787946853589319291781457970566862777313540212452892627209910648020541101300587171689361184190222822153857326104915188123383243318447068443591472912669441542394259138886481654771004355874203094734267099208017863341394113666663043304951574505917506929786846371184679694741351933819775834853334080990448596325854410040669904254736525544370624555210060021393220107430374582480454618683852286381406119763986484052857897736956910105744327693175876094598746744137699305310119907242584688316946805866983089682785499538249790537862128736006812301793363470652718411798156444881049323096645027847370018288304988357422031373489040794715093011259975754974347654256806494119091159299023017741073392647930311281924608389773563911390838869748315153081579084781804432469481557866009087773378805603535843759357658157144197693811601071589004862840966437864397789432678439537769753523528476467088689784942337162539720181497244678199211799122580914366396613687610038177719561492510697947648641649146293921136563052386262825537977501896189541519028130617564850435869771707979368696915033157954731408086628372289161101778565335946817920822472816561464276576065627353420526293419006447857704543194005657110678064885798882230383862172724553560894205331365584886376080550797386131689549460220373121537866705708988234949658864897489271070916510844059433215496641384096722017904387672183413543623246022044707145975609805891423349214875689538731750693775016828023544886554893296568417597680200643398401374149791802872082988690919887229677599856544410221887175799419136349170844362139428384068078941946950915497334010583739004594526533043892160765678216722787034449115179355146054340661030906517572264334899663751735546779049566809583328270385663971458183703989924693341097420590902193531152759468928417469057818025272163745283873777181910474532100846293522353105627193863779177962145048287368890827246768290533867400515774891135907083123165569162872048488329005376399828041197981328918424871657030893571208484508165136497529556665239301322380206577860658590004452346757840017621174564508196181406286259361731249136537653851589851977748851186210273301599014321489918343101535967779846441155804466977654501340324342396563213551110937519485866163851008609636129813525355185219133869304082688659515767059337724023932943677003320662879353459794055389150080267159489927658274057515200919870696450467051806383434339438436924550569271406568355098244146350746873377299358014154270469674395455229706537440362493075547270942884691962934171696913443220602502152174622326389888508819575359550798755519579917374669825696333239018897398785929029245006151945775843042032504281377604345181684265595416914232076109729843915513249588815571458415421794744100665494087290482017671596035249855664238986430436599219922440524920015141467266892609383519047989897793965573665266663865786220380817710254835881100693896905230259307299773812420137922036895397657671009788814390629527940336430867004181424103635339054630579473222592212952014912620725352411472282469341263331292848886844000842779326818100133296383336036371760873378532120941036219490510682300139344300013876237063082550455285251145652608970987822141901772304683834233829263874948985477234123600492941572532901578408942124504256386517298601032600015554548601094777805297547240486968403358614008657359741610079051243559694878768566341968723093737231593062739377319735230208478003986817873745463302471747890432545670236616620872751509419974219623443773700190883120621669604747635085659303177709241958319594585724155389962018825339921977790271635966547274034501019387508250873572502994798520351512516264403918660538423853686542268928869639924310090840019710053990037557775399967414377818384921449636498079682399865915248602953246387068021473292955458687814114284070984732524123456796855639878305973488345392630491121543032486228186091257221649223668684791119774914630895063325977252682278776107883545531669936504379382705933006855624476069725335033221885454995274234452580983467408648311314845833864739476883534209322162760432535178036590659431329375374521253096175133862522432614487899604770687711549040798973622143143809496198030325445386892123599758633743786665984166357332724014075991032247977462106037233413431508829415038235058046115028837647221737319526999449807485584229285611958846303536341038294130046662746437220810174509853830325077501237061288868286834753357704734389111664784671234259127479077577760415957899271149406508796452308769355419319083476471547582923240499474828309173579970722402324968249411923435236544799686385822848777407658622251509528770210178414867217926921438848789178765736898008964481214960095721532138751602997091883034039565479555791303150814718871737131559125547994376348913312613845498815997435351840087033856042584999962063912446953457304461993424301183793617228697028397911114860055867626394250721294248876590503507269216259885383662262811016337181302934087345225869441799420789344580015405654823124487455120456463340398959605216266152506034364746875332976746901638214682581820297580072515287331158608584661680380437676994131256252848290587425843073737242147554802377848024117846406310742287515972540991195314503510457204271509720872215031979057626304429012644814768401419608628682386576529743684809503723368096204666050982756974003839338081538444804091238301899402854575379932386212178877050842409670317035666583837325198923197636308576102286523478680416791054763452728828590122984984508668337524048513726886721648454977726391579439530636573956846608693760976021469561228419177535823642634539726360133594528180353225429823355298987249111321162896469729533476235831681954687312738026587571825736823164381247048511721984807704034619539224172244778547858595362714642610738930805439950743896893448082960824670792944634852230693683562400707926427293943587204506526485638549408444833668680882945966010485912653060691907590554576195835297263045581009557618158630898983812381488592910714912955775006331859892269455397689083303585228742585985675135953992429628258185698245977599179149747638523218403968407171016223320750424942121082923780044215466435377507403756670285253459539939923295135535413481693668018465130360861899594093527451757099132748198116664409888513690613502456900916628799251804402828679643016694845944308249081304791925024430940063966035243260214516180057922914575994506979341113799548120069671620067023258715049923795107228944717302774880401509508586821817717000421749919091668268690170066198874868576337429665377320212396560085398425286573495450039103291384612266907970194876145855122243979975016455354567442966388779821310540596967573483126619884520655353040347515066647626362446023271009543308170375710483243202664552952665773138706888452808423830872210988016184315967445728888909889038355963980814449444740399249836451030269937474860421471542472897658309882371538541759558503183973024112004918553589378400245291154446563778303549380581960371613175981299583341496075459252963719426578572224151877583826208439129402279630321216719301961615239421128952708586093028330885787550490303448621220565428465662873592273813380446184686186884962307986171298171726382624788263361669000848187697749398054352643368532466886222000742734687630122427189967266728700047057453477600458924373902064068661627771586798399129067281264554564907019588253982968882572697223036513663079739268767066213512866736744419717306909041940853503415166901174561302901034456609984182584653226401339289987774680747228223260385024518320567725318626188090500393346802599520678347706719619470835904865061911069759022386468916593872349587223841651896956635704284875538579373349332855275555041461208057986359352434820158612369715094673770788045056638870369668177134612521605877970687509769893673641740157369635307712418608234102886158400189110654194148957138083114555736902282213106879170460284934166335790527253774397977666771025866503956158906517001714118645643099913300171636423542026408636455600460488520933550297506118352251627505144200597915621233265355999533560778215052666892563528908769977935266357772297511057186082049149443858432675491219509742590099863481945255204981470132855674023126606486580122495272769714601701562972458153794365963526984717811605739305523234783307940814902949431214486283210159040700295818034795792944548395658980381039268753953070811032119731367380224636247637272693885370181168437355475006903892633974810684338565259311341734884906288576246541121038986713962147570420031559118301630767926175986398013966949382004517037766712524286221379136608206714231530927106023952422567455796222215352391461186543666576431629786573579621597487578070159361624251901341247485001712337414622593186825013726232657332370923841200110607067464200794574777367075565423595223527830798831021298533644549240874461895285012494060539602769829689582527540145981274920209301695830283506355625027822012357961496225334991196778747629954745994392220720565007459594736795988511448642475347364342438605530994386976864944131015710358202413393160483330197873301179120645451185293184656572415864867673082840822988797381166541962394548245722359714573647296730155218176644175033052552372205058397412128342800560281734127092476698654028764615053967901175621123138721155588356243214930514574823406257646635408336173103623643073435258187366105555142020358763766526065183203915243763062045211189646066075454870049033768428970349139086452936158989720007989528547638110399606171177039728008331213106975081963750767870789517765771270020334664595143013879302396020400127098311830702494751397560703187923763088122226421386974573949525211995528548435952570419238554282090512943306361945005765126468324212430384593843810601819132198064222636030774499266017875966352748066228996018297597791568088701725433688542927864860816018355786234891213673262582192631670677061090242182440338346457969147917836170378395617899488638574767335234014229840788544777619907060628854353735487983152412639641873385947440631543799449970969318466653950635304071977499893246367305491017525765096938419790058838979171151646075194480406106757539859542112583174139835376880306110249021729710507887353499511338236419990076412469524854580907144366864113873556373982203917962425565927902830740850278756134810107047672621859455291245703530720176648755047832828174673298420629238532144264632875908713687956187432398074497204000626063446122422369472420225470067984018392435317516630827327227415800988476330958534455422969130857245224115741903632237732406937088946953654400999908915365509038394904724249811320115960290532581951737797029413240950081501422969596079878067807749424954757456936266804031830258139255321109570798665542630325539385094012281702692355365902122209067951053743856258110114814830827937136155704906139043936792487580830794865975451799300863804807258003590439708845720157829594954514989353447069138420530047328083276738022091510718558110381542772834499821829243808079522837696592738874615199653150785824574942332287816001462603260196432596112194078316577690662921263565155289583846126591628881993745482387506574269384697652634032711984097577507574028278184187966109631932092370497115013308419134042892926538043732497435231875051875767106934319639558159685671946765682033476422272056460085943375413549193767526291417838760490715968303188686837307715516578808193674937913306876768731931777374887182421365645419886399683221418127386733330214512689254383291323460980057184741382887779226223410401759859358003728706290104596462666767155256329753846235089557113976867328774475661293495318912758416561377033729385326199294795828198770939308984544186806222858812994087708597994809413170779362969494906088871642357708788484651036658929387718005669987871949296282923308136057083839846762251841222152785224620179916616664791197895733060518685326102466098989786255713373708312897798750031114667450601649913542678566653048164712510794546537845368321377709736340339528307717004192606105570806841465455482717055839165079825046523333483769315126211145479934274876758584974285853505874104101071698996301229883599973923119450227523050313674317530778949391528425704387202679107306332007072276434178525002772531965550059861820234285401511666555979400912841589121200536177523310835079802506015632170016442706912452715753374810699559267698009067688778968106477052488742300948439311655267410829964283509812891942694822247334836875516474467681673124019546109867692626732258214822513473161633124084219140191484921139909213289639459711999408451931897904250212542351613230040093927560704249475067212343284519528760297672792540174418371028181420014830698393262179991254050390971125378962073722210763811446039670520474260186053986772523104148749967685308105681478813162069235220963228582080089622002861894792554340343015743789501471287540827346987600061576145308179661414220033488677009212628908113458960830291116437207970644110575623686584893212312761130366226296304788190243404384207565044344910695795033499454485650491140967248707199758206894038390376907798377069868557263708912986344508125503455638769335097678316912653737103179052862676289575524859253814504258710835391524385561301320368480369279062686574461184252299394505535812970609642345664189785991664801661788840377630584318325991787992010320298084486657426033989288305609339525436685891253165353087964878213591116358661207297227121984908774819877714065164292377756730288035363831333483089415667672228516133646097145827487334630868767222678591801887341866854038669175532461660101454872887486287853858449100444385116400790668716975341251393240998604311398279745711788070379531959075123292776443693717313090908495109866373071320663565098196357642950130702237744684675699822133828464333312442137358466952455874209750247885225469404126148416323313977920813124892932354262398889926308401228915336921294871435161680589361695046237134864320677991570543260686426019873173581690690948111149724081169766480555421155710220215941334236547417509171422800670570752318378722001171434056235393091328843106675377784666925576227531834860668777465535550149299271275813940044093789626175772107886260451795006096668451300825826670892419323267825336481293121423762695136848042701722716327884781536098041905338287034174633625022213500659813241981847744374634238147140877797432902202574257760050238488894311710466116778985202498031011965685300303880389385829481275908609736658899501007161334923953903851755253067543450615092108765747151820395684097797657163990077808886601026605629638326312344990909802024518982987235897148595535933645342372260565224556646225251464026710566047053760396682734744989996106995418156964621096250652166857203058601363070770623932773841143205182404518433482948263438399001805305828682698032146339834387763434916065725512125782539844458734895538294918591049832774074318833594179172659402321296329982373933848254259245908282109742544062146277393859969735043862376792977680919062598980237152142548823439371034296434152967011872852047012067841860702005142472410493024907509022934619650324023915938985246178568897439321451284555755548358288650110528099472877373530865843224544716610998666549022842087290572510557714517677806384091940908867867125448035071033528609657532170981990707651348191134871224221178948391960826237747656979134723051596437522739883628085068269409065631641087517286816477379164620467618765092263538361962699525527375402635896936189195133793918583911420079576736413043679613870339468952064407579810732408382815569264503922299542985774523717229988837116955237987015921285649841809584207248201676426063170274516627898621641160191109484325401271092653182334834796600487206906138924582146514502045268377998698972515698123729460387451866423779812773600253302088342569257731159784528128086520239266568694645751029507499693758654959083537100347306680843645032008285766959074004901196454220516571020444324070875897666828780783609491738059840482279609151239402502392939983183890607438550286202743538812404834124367946060068590348692384349007710132655454026419490011704018824689661689369858622564526303937694527349484209240813515807988504445733643901573950098865158164794664624032923814832917134629578409389269710022809129200223080044775630148636506469289195334557992880003221950994968000328402242319082233225165201768920147969644139685587884950646847118684294120876145752737490896485107934188060808390084442580240505532783288225687839025387893866781437389687386683841015553333273002121775760630748324730376640523201877367519173310611306245559830044078868988514133898514073067378383977511380083413127438407395452858415910835762598859871219751136462002410917574039679549095244250693414369190264110574398441933280869176085464200740906799939497177231045480688994921809088650758891996975558464993839839655812725799761028331062218078852002078440044568991545258246839961913374889365418988529416090893139921823071116464847255512601749399338306495566618401474977429284627442708009532033806854982516407897591480758711452036484074476585474045857685144889580180009685889985015545941829802384511482635065278711278807806996790817441143721074165961967103372595871358531171400438136978746524628716332545608206639317326861905088627308143278304067856904770965794164016625323994091138054846949493459122645649383791612688566329502592444589174691320420308324096476845848352015528502219089786189107917158793680091035213788542558050268871695218262527457688629560420658678232664064852488447929571309810370895469333831722561104677676185792730298437865016461819756155200930713684669516362431653385239438676475510656663601046579441703636918395838406732714896342505493900607665631262970543740737368378147264742610512745572372217363644074708892879544996542913432226172256994545758834393053695967726305194924993311548667923642647998646246671468497080830925336067513636502910334006937232378834058672387592058526284148332409786825918052097186963470747610709333351053434018094229366860127793256687074996945637253601903601258576718717248852740169273649300441291211444100304758959133461802376498544052583192847372895164057361752607492304162257211600063229946130425902627885214007591063566641990358792666459586033856863620395636070970022994530024311394641116793078255656316260094716586095988481144199738691668106698676959218867516889159173502113277274925035305183970497610735518409210617439725590320990559072777941486048783141807537954534400901300837708674686727165099351121630483537393056151526826444182392306832839978365539228977168682347017827337824699675484522431800688450515577943899493416933843377056206279130779264748751489017218646480952504604594351500652907607791541816017519483629342955626474678560101450720043349107291026846811926932370292174426755335960454228274024951413927274903857849555374228166642926219519413839102455917144208639430799699186813097169381742931503170947741391523348863456915544349376085042811320412673634629977090711522231512657310102414363935501722350999335992651926146037600002153828451548706515518234017144679238193688020850898115023671594979311931536979325004304832957881312803234642916668266282665313198739987054559375585484129230286723760711687271420132073435736432562043123871366410521159736871974711209285866963840751516437856874949540084304525182229201502373549993628320413507521578044737898893802904260648929247693074872780831916650534093304176504217538824320950971270420158806717689980910785095828247973844678021609268511414552369708264374665717661344785625515677060675537315820163881651841665554682669592453745518529899985971555198764817355196324413095597372443970337869148322127130141523097245317664373335728579117104235830129504608757678477579215345072538879753018992546661621106489509485138931492485970838883236220467729094042927008131743689432649882483906426018664186043935243087521805316820052407910022059833642901610819617076494929071860676945774621979526036295469059699499033702808287834069190822583808325022897974979818622765230753986559832815991751406056282111283721993330280740526001578811406931710445810513715291533702126414903775057434746980100941204578053225511046659707925618363706626402405323482968420015282329462943489638740460180352241242555472862927433786668896570875131775188816824974050268090221606525379739371746415025176165857675039088681265008518522510993828595110048117797728022835109977575960370116049373728955703910344128171115255642657688282354600469791977863155056720325925358176137055384500134315520936903544359005415621522146892799881994291133956249442414048523340469082987485092923179682579431318444475138727350804411230364268371265393061110786816066090074935614637561877122003800026890945937100226170715126704798543973979961257966735136420922620302383565200116741315500117384969719807454689086891346321912513308702822083065295802788495252420323874432425765842567789771691043785809930174442005887625185174978029951458400195630801756126256831232407556052125920387118864918422043695862416822937117228188286370231434224861812126424563156223868159235494963363979909626791319394205990924302658828315420150910879055392521282289609298618206747312195707574002656158404934634051358954433716456241733115429782878071722584737027297309981931770499491351324037056583188988985361950035793091487799912854304160352477840802509196723419940702381900165940586079514989960781172191619412288817299912601969617045624328385922358900334399686743357989949259521954191893731390830580038900199113142614224189254510933550191577390596506231390525974704652446941825350341464387515369870042023354561996632806815015501974426347669816358620762302499218532966209715010365928406733574120730854112643566311354658143536338116480395014659360219036707393301022771998733431686208183911815727928825626365712028849459391113951434709350894248449411547791759584342608223617933526483217622970903764426425274133552778828755080047177869449418236900988155045718560017777992575218157657681275118944070714185525242432512161981554015122571193185195663359359175199878563759877762566885021824757047196060567670311804425892234760028566861853582444670130382384877047459457022841963097539550602794728119457309694233012143364348730256886464250267866079570557196315517438464870146370354363474555027361220680548726469440812236992087758815866999971488748704941085661673255589606996295409472643670305915408063463271842414820203000719824447540100724534790586138470524077746416710795993790593884993569915190447973816230350394903764390972570858090102040333454673130121302304291734542152406452383617782966585463700423637387070888331070309944815844426096590757055490964451715660925075911948532138544544522968956112505698542617784701541354774872259729743514978705861406880573613211618613960143334430008231565407581025270335010393320169320635309144726640983679144806041839963179792320855458192628344331505091960325053685016197244656404492600096426838300491860863125545088594603590160834658813524207582702754713361631631631967319001332467614705882683309991985862929411062261921131076850659766165938756083091191812122089297585453118310865040451880734517156464599532251326251136273573352686620108665316741333416298309672078790285048061762809150787336257908318259217612009684845695932488783402392257798893129286701818275829756889982624743492541678162976931951851796257667652516144323500095825795523796070133308855806253302380483320340177048974908575422876109072725595068994455034789410456189004363898905794257455100868233942657230951519086207745674983162931398478270785238519328874477209030716560083359576574274374073551125988128306948324063619871839000403723094355529354164275417584048000217276800821382292302785276341725048501015372043983743923402305377664483582671168055763919578599771916309312157793646290954290329898482347637908155427048994826275899091411042071938853803586667080223391855775774926749865994735010417925767828039597125468820729584653781506056709008494816027208749535028395321608615609469143967182449622334490262421151570580945547901410917423951597023901754230633743953172312791151731933797257417646716811583917199398876452214579960748548529866035376110831329522843671877037399826316052433380841149192371740019927639654586424866389788814362974662315740591006335461404046096990596997674805414498566763051240809512787773064384085870004113220306343976529344063194130557169664624914987420274984878547802359879547845026523053639439281927756043700791809675811527834596179735322884513589624656753955819911950077151569636107702139415339941036415979105349075960664498698407955111904821466122642672995854133081903911539762158823676239635611740579907375729219954240080314303772315227377122550845250563861025153752651418929609985117423375834544155323766461937633677595328039445546342311488108132118943761967667621397706226592928970056777216982196378667301170485801224046380989172969554638473988883867122046330297977906266752652089045791593498081577848388252237719460984670861369358563626206877597933103349697740643330847217543731396167360022922926195988832683359898903778380061283213651468232659198852043461079343763680728672105554362967024396951820794367296953217388457994511769466963404729904259447975313184766723355007681846254234677948141465753645382930521378947517752535735123012873220375947261104374309224709703273318084056860406520663759886169852988135761485611081887430314462093983884405811609664206707108404949646542037668495360477780409075429010196888698613710815846121877183792169213437369586215685304582751420268063421278666458722070192854796995666959598706008468368274398570503308930496635475975590049721270094451696797050356015615358755945957514314342989186252770384526964815103648776522687947819082547531216236945477710517073847623901766716410843182324023358117221337247469577411078141421795182432400581836865736134265217829440124364083781241101189580066990627028235045016434617816219154955658535691608283808084679932755293843828208099579555207990234564819600487999250943269035169840125136959927100949424473385474637773407260733860608272825296342782483749853144849131894441212824882231040200164421021448164659002804349671080757954556437376818192802310650463344816423808527238279163083639306662182314455167539445564086714614104115196210564932624751936154822985480967067199604962677623851296685076789377309851415473687422979852591086023129277107244476780402948992817005005557329157472145252966085147439989322154463276740701199088328121667918808818269790332394030553592309624077204304371446309293227650140038536233879120253294470688915535327742913656830391465596810797152737405515970630269239394156554879044860565609032793720590808050707673844545404678288437557944127406934221879903263633204498399894141190141286240930943008943820923964950287229820627543597040494130702554305869084723868786996550587668036929942515879914354469605055606533474689997488799130159807534091283472583546149539417811146924906530508332449806689320281339255382057183918272425227570211934256493561110713385873503089964667574435714321230786691884509356154954748288236625915159182207755741083208142038290097469067891007222733271793990491204734546604004721679585452862901442524718268244957597343056069938408674452998351268505343922176197440334543019194142678565547180807023866224367304547659399452572875051686884642426660036745925250811062542436846992690658110093509101351044759952069926738673630977382959340183875863715795586066858910737377672808218124365808365595515396207280937188933984843315121924214958347896901639129323581356533081204528673113997867507993887555833511474714412835311197983633492890639269003157365225053801514767802362416892996474366407689561035313500585952742187174334807103598765342724273796136069693310861184064820839460486607781063316868328448944699320013476011484383495094785101348511897211472478328108206156546406154748548499358063685760349244883441969316625792251993802188071517294886309383062256483284989641146817276824502145229940939677744942250975044122026330815730716160171637917042677875077623716367197789412123507577723560312773720379277069985295857838635122385462705416717881379463422416430604550029923946267116919431677077430684332760185521061940827357397641687416683753153369064155080905299497213342675644412059950160043413902939804614808990156535171153411772892320908020346489978609405242802398498951049621875714607218581372851966402865936739575742486080157507744759498328899027895080726634411748991205070119449617907839133391246800675102319161770507015289337528067683229308649713905636702311199260835482676020651740266704949283283435365152273778715748179361160950588407868319669045425566644193421383791356527640764487846411102422996732136323653772495607917312851178682295922789682991616133568145844563796707196620272548993413580660308900627322867015441377317305220910085641526116641852402778488898605490590912626904357585860533542676835449931047855872726393928151578822048211304498019200009250522974050275410912844943009136451439133477334056822587505662444575771967946298331607216359762929019852569144926168396049149679113549803573974969960276480064224909941672144390375910279981508013006556243106775147554644824082853077347654143934023308090377474499870688429274351851826716157095197971518684522007498407554508632076413734383275149564141214973151390790610758630900137351903239028484599648185371400769499033431804534331490195441917309992343603174624705008524535895947141296245081198555976264946685980174144751407871822200255642661787162744569305167790134080707605798692346470883933676869451870159317440468342326130217657379725519424414888374191243983369539823565863242055692839351575029497009456288468982816175154599458139322483959310890046273737600401082750033974271872073714150498746697492496470814138341571740901314641368136626685786408979792046377123000550967117856740172640142758949541044737176175694860588623662717211615533824508258945025832321001558738050546662650912461463477830200371735066955485966269988174586351924572110466528823199664619782796482260675738261262256200973421249510575306603352911698083869071462167765203144769980491860782503084721142668578655149363345765709276889847769333267817078916572791011358727028010101359339924655931788959129456914754429119705784042499289767990270539583743534829097026865191806369138130968149549371378166095505277409539931360099593805254628913368023207557711715265139671516486533982723461685548747533761422367601845568040913997910160340905364928653088061975007434082363988043743235434905949339460232878227449588531504413334009871891500449541257468390843496857185863539493775585698570775017302448780560493435928673528104214739487945610673539153847467852933400722439860439298350892693816156144790238970132995935330253774388162523253850899422523381906738887200546734650778194139739506755846576676968438533580601445671848914066685470837054630148155207701679785234473730033580430259884053416024969596843405611691327974435406542172386503007211298195309437547248779592825633482803235278884396134500381410515472243797961039106319461075419375405513281872833220596372898019547997932618915258727994986295685236062502843021470015338942546414734275429067565127998773041128309624931957402561868366721073199554854443991579765283877140245258679066058291814340751959149851913548936820543234606893514801395319822281852773717235688426995277894891235206675965510909565203552661414253300559801884734527156617580538780322081446716045490720873766972685000697547976017147815421946774085790618517300421727835517343355781993347253855795389872171663431692732622477661048463792246851367950222523484388067711164229491741697952150828627802923910856194970342418638329962353153780179957901460864011118142619723416674374850604696073187810391322975060368561987158863738722302496016467976562966595190281327101706356824163952609113606023195728183537272000946765874397435728298540475303641734493078133066605480097774112279000456519396772037007743506272899712873474095984426503649797010189704772380778840990023699968280518606906094973215349676976865499526662087101451346506376082544153829725601646804466160771340269448550746584703423983628432045100404720255192597624916218807526769430687420773913342156452191640299503769909001978363981466665604201848368429614388227844956996463076470063757835458662729895240067213334912055669116919724085065814702433470935606790782404507513117695568492861321474152975871846532990975793339195232499443657807652892510807233091557356936785832176438307089692731812986657031558044484143595787542792016784436647755795973272719413853074754075226937034894384336045790394062482224382385426759460259829216483504681618358321375751198847384865244690856851950425318629389244458969028332240412999102819395763020024502950991331178623259337419244920587593770464551513165654663590821708056242883041356444551107925776396483786911259465612990734824851880249367515096203950907408330207598634658201938865557507627158174818849268467880929859442549104721530416269253875618707199133482611032776721495218384415609252455347904108140963824032445246434178235021573923173056485337833096473204709356541360225760168964735580788622263858999896028273226632474197000532344666168849788418482766623209683093398933180478352139329086985422409437333826740106530588309416080123665483127257266366511260599117315352070945439757058539862797457829246553518566559317478854985439031545315132618633511257604247500464274689484164785676292288008254654129241300579235685262500295436145095122300862319407918124184344981001872049572883453671207621243391464934167287852493956618756313396647780606496771544810852146250492613691906451132024615223749871835307500872824781656805452510364358733679155101148720883685951709351089003383096436529825676235808235850071567422632100965431515415692112544148527273908875707146587966920056356013462309249675641861824177847772139468046785679125560326693353542970139262755274570171759322942936212091848566270465111744958214296647299560614810298363933666166424777295283539176061352420131693308318139407353155378223035504277913867658848314873574451885898437522666529675408795520723616343668170382889020484371419309719916731292953168109920505663788438916782335346926217482825536956665892149626792800091409799490535634202804350318599821776710919340574223143329624626549427075720714599704417765349267116291773616260995060599905170844556841046844641834726363397342750823954976658312256193025710350305502413940759397910516326763648531758971601034245184150450665297790237761185334923388069826766262358408910254379101706187306756383086409412940104788995673679470654776469496218823666434001859738973268846971829856979138171303825081054623590421755526443944141411058125936100017348626237124977617106372478467345947255130566181432609671115160773166828333986316877074274048751433237004624822024168222393912884417619623218551137128093153621314558493776940317512676481665384596394688018154663194360016854874173844635008730782772323161458844635254892711268373814079444714007329975731375844574579697904078834187919802836469665894553183859117030843604017339736086398295061362372384972819422082482301887166286422484895336645825664904656294636369482729962143087362079684996505657851264920800385556833616720466234934402251593022046736307330521685334298766043173761855228623025860630125096459968872868145719941432154827054186995277648652608250453580927606383497304470672976931751170057108907191192274197753208769154869678190567643515707714490754169118385192801240713154724386491846395372378828820612920821764063769246147691589158820227577431239598000082128201665199203728771019905077737798476157057935925490310817925363536524642600975575691831588944624928494007969489367184144667167762147597194606075320266961229431088819278559705326174973817129369765314762164467421181115391347333422796876848471379069078291442502975401664626985200118682722238236121604021807354139340674060263944901486828174074641134607105526666108354261494005696081981810801927868638294592520086860782082695333233984168067977764935732188748960235909407330003418757945737582801913572241702081680170384359082850826091450980028805966276277058031630523773744055804055959732049721025579675530020163889168930560378985865793395044253557173017277202520794436861250608824840126130488549317839403753879985583132634900024624130566979039352454786694045257102339455770158555980300788656241404355657741253878320200669485397174434796729891406953484479610524928397265053712474056286563685347986791952303682561222041513696293800667784400034868229308524023801207968769656581347764091607839914883235252888316323242713215373559580624148777475331005408243209455510238980687769359193480695549857379800542530709274803568331870513990239534468235379223509861721402758501529754718871998817164793173770515249030314466502714535117734086059304879333165479691780793086312723987432984430354897752364053784855730382664000968876893679674242797743206606218087899291510886790986836200900189424125423583914346529612988959693310032073949741025853264676308059135868071066729484522680843865350550671751201116973954529024403643993768774752979852094794630304163581715593858615419992318962085211563475789074275413734629651278406728559964946064965918398567746732897637781637608662540820288357345008544724796856811820839862707577448538347643389397265620455526623732477737569731702465176251204411434997130194312453700195339745016400523444588774390120052050925095381500355158310560726933678601758473237773281516698637986302968305715464849620428641871930539180938700633539913977969172060281254232954422332970711703872568236756814627210436089055034895861480665784961995343664401753488570387178588697591033533053014101222657915426433987259047338709949270699692496409290789173943080593019418765813017980325787642066385398832041388383424083521152812905213408130503857564299248362235186276661114075637725623379206128977347969846393496775283315059225563803628213066888185430622578922496070759637197245828191528009127738149108461505330020681468135718687363154351283433431661652781651101801260867928417563999752773643123093798877758883870671628847689343396719886558539555144525503564409633923889810168638929645622984923866979563659702874306996429303863880992326382087587834390680806252503453756610090296481083025097331705915414032001291254834828290579900724836083135088476230674601635380949114680235905410448307803821590864389278806045058209817622502393485718408933489320919790321384823454282242723102296524452526436767694239261491259541239144022943746784268088988687209168603217400672067575103972604970131344851050586993161016367733353397705713907822893054613557814742901599058865938905686452787595279073022784774566062759325329368639800960440606251594765657559114081439074029030086920304605345335916991472647441156972352428983465637433012671664752038339405009737036665051604162487143525521876445670161395603861769242254101922459105098964843855222534056977619718990752393490584846042030729036300574681180890589835944782889551663772109462420516247405217116831771074229838538209460016182155709624497431970702054433958952821975953130876303023760130367665658533654977288346683734268655880267847251334246924404733292174874467300327955177679513222350843025802845305552639737095533240107139196790003565987635399764515514610704359763160500696369272077516873880672294059288609031392425661130984004562413842056125463234441708572363364010799668913566132858303625242524322377145661554375405853758409219384660320712412504929828738149185841117553437995738559033688019555091218576074771907926257772758645854675313102038859034185342939397780430955302655328988379096462161984135090827092100330834746331557700493018131882681797626322685096369418510338643992169128464145688315426260407256653973097545674849403198083104733363242186837381808873546143431580766717510206445320578052334078318041301402480599598439517622987976580274338439661665375515533403183976405732135690777865927240954393689130084186279426260434501749391850972052740383632293249725309945509932640954966859177907956626813720991763743604076457044283994381158893999014430423100511553770934484579471800487365826837324429511706489453532675662365535594316662500178501321227055430743274755226002604950969912269335259918875133301008440522185163203035711505743930806697889540610034692450693766803335312065892025932209915351067759310966618710778832771373232757784098234313163247667569537258698661146966751266115710484357816177268791686922318837074812226638259256855119371524123665799864222071720927894429420302388423639067582456027772903865581666083897865325808014682293328497459586825823155935881636896907776280471157320113619233896610344448909281036115957425167241577135519118125190491951790764006766471514415597150376074364676584854503072795979643282780478092482007463244730296985092583648083465781412210281685250926720088814132922805469031593595093810961253450170961529552582291877292297321837647887233471416516205380505753224256651520775522432843525930969162435950151598945221392696678833854704104092315053021541296619144744780404594364950573825011467061530056797586743946868539898884975686550759271653561848309414453799376396960834071638898042797178512448315078163485732885832424863906725944320447660750318499486237909005573585637458247803937279602199829894948260094363988652247647833735234332082985835535380389300126860055410183695104389178821582730012852509696249230202001976891710040674128327196460766674596819126823420071772483301805957348171015626732586706770302922992455786241079734235809771471135383985541397094963906155422558149351931900589586687941438124032688804483119402564607646838636852018370419613325089670081107072951710589765323293709928796554934373357416088678570710143216725404124689316311699098993511282886206125777442173898403999023054865667547554847155634506217776855271894615593468576787153965157321838697671068538806451117993752918766994554796566142308456984835758903688907519552131829044061430375955055834512357617161168467268173429347678897224369038370020491967182683002003587856032993666557181551943238528862075603804939737895563229710729161208387326736459295942299856100886206663604723794517649874029185754800092024801490974219259650370335725567283532275614605164510207855736983840652155919119822740567984663137632917459146309166894769867137834852969625863109658399863372476243189698197182104272735056889913735406966546762031441966092863163183112236192081017545536137066880101883278602348224534647694765712292871348571029114090314332349547069704429035184670192275971382758450163377602919838788523019988750410477954150866690760531135971258441125729485626282231638332628996943674653343284065309648075270734494555405848598421338332976446813645173324842254432076424230430013318906745776499790211753066120180359754733670528099804098714549229881908837810649956279218827384952076664731503682945307231259130044319485286994933021975819645410837535240403753873019854115919361497552418687725603888659704192130774999050967244290437207883886966503992943115139964210838708730924700120252002617026264665032812960565689041522455127076954621712797636029930131692607328093518337513358754344945764713672735174640727183415383158502826293320273005702265177263653181925943238467079976969358660237156189975462344858523334360072478365988508031162139311450447353801786296714532564768648905191651557981551997507239831300441822966853201359924929532468694372437091281515727881655314683056516806981242913276733672475777270649045725050105095559832851547613310849070604766168343619916451188297329915516992910906555577123102669993689639314078384119909658357949457773610002922534271291662628340605125021776151837403013452369206823551345117840907798166012135685243285444731982349248276067954266462988682530912513598284154761822564712458590345857202395349405707511954869063800485366579785286427063511123120530616583534936984724996520569770997654232163127627718853899482548289390718963455634892607047881762091542483359841561084577162120663749155014848398386035748784538926916220087036085460654794593865322073682219674164300561799561028767100462396186423471334944014763967033474052615452780381625827897290609839871866593636393269128932008580375631886612734305997140758110596190219900842528821619209968369274965368007126933120295725058411575318671610412293369787693402469563904143286080339574166682802565951421237370243204735447022889059960584061776721963732588395011798869439819364601970982268919483211047216083916177981542839772929128888778740229075650372975661134940081479656869479116315377141461005054271916511353268634552546901007194431811753241484601493587630744871273847376777356310506327012090421927835120826024033503204127379898785333603262814124524267779712967249504765292949959056557669494755543460989615113703850044090064770414972014723988942937219113320411590435417585659209898566002403952700263619155696946032535220829997660552682993539622648943804735657413181701914640554269844566274397382610553519874900980235292150177481428616784401941472499903689562236765521277417611588752535958863996308991725724639507507564522232402784022248218330510227878103463572091128472124784758060608570263883477996297412032742509886413694458279813656228102918282272060041377574767764767964780488483539949215676335633817519267477620767265168455970199458529556387986171901545642600265323169954462208389525645345865826365308347651330256900535933570750335953010332967341761138039368841481739312905910511357798576677439997626141952572961971800741827781490030751044754549815610675412611768561957300793338526362395670732749505443066787450881771203070431550406847099478202621964358012643804526339092574616732919852483640467608407591649820257003339081938071444263573335780172234688787550618796896546804667856313990514437240985668605012562718633614829606597236207383575378505345132672506389571232759144833153792916588892217069930425137466352782555540015873973390401694577783691069448962760084470361114310285930914445537694709040737845116733085486465475845627252789281044171854119472549198954283043713831585520509042958086169497240788392870128320933933382111736973090523152727308662869117973997164933832823136730984843647318671420480744242822230836340244538699635662150720048821215040154500677261872564936222282928963487623479594664528062420722281478427333801747011904388805432394482824255855296116917024049583648960404173011711101986129356204408901356256324043088405393140890704205468583843707804343531295992431810012248293926211722359836375224350039917150474000380165828874115061771126989655534981457288428991282977182871807965601263703586368732030671063870050668539804666788656712790083350460907959991659337614629173946215824076427552440225511067064983390286044308556439651994110405330689720390208663829964878255399177469770402340224548226689070489261901070517621010229976128830342549519909775944610393583832023891023081163040064414217710387551699807666230023127085135967967167327219782291367630193947429500165864882572099649958951466540754386325128502747471447146253149288691493702734222056093384474387303366995550322593272002823525848372385134693953506259179586209269159521704661161997833139271250870781104081482104500693329013899937059062889173788275213926788717683656852646616569576494873451240512656795893114627299125015407415206437117098546795055878920208307071650949875526985401268407608873456253976213289313066557211441969885101679136700422277488994274478372612872145052287053214591116790434073892954970887071867562257688313658149705495024477087708253644544725770124710532935378419453774880253899265778627212243035591540824731300852457662951543910062624957251785624529905876861492077148685260340385370697551694424390025201983870497957331772169769733401750280901372916001103356249727821759022728491602139305182390719034108687573355640780030900217242742390804266520740399765765308046302077640379337346603568780225127339356253533816524156023849015632893104553707629671188875560630743711202474305514240769678692970291343142534505561743995691002592720161659268549370239306858037681431291497793820460644534733678680154118695293418974144188624210262974765465849353014950592968536039097712332558967166875431317114614348427606506948492900988917608953387374916610667280185353789663229567624362603874160137026472308612955175554958556491194447758628823975276332944457770318572542526840844507894047647642940253377862703369322339060717771681981872103811723167095112207929531364141480918836854735598144986255145336136874370332503989586902034829731260718029854232912265369326680927768605217702223316071945148946325092715166080087307453207852620207953066021845445618703782679036912027932879525495446389379524780043958285724377689200434461838190500878498279494518055659526923932213920538825711305144662691176146742015420473509570800913252594320604224775126659417009674198934331274952436707126444854305297220741314503370318918024265048849983190545126906416621529500028505891686965894157643430405604594719934605875464923355874571064042808571971354302198907947410048880157687013953156895806986616667629438804817670547426946341341252470890633616667699907330864331056365062541678016136874722651069791854547077912542241408810109895328424949907337071709934863542019967648462509227505609079954568196396558272397270492422472585413337700672114285178878691177031871339853239924009938537885200473359798721889846484682578256746864392716462304896692731912872231873161815780031650633058442166887291820965275911319251295076761935592436528337998663664659259773452350327132990474732471962193717327380241752537677088579103861484034994935858712382393695124868237922260006411174004337736003239524175001211573939179172693533707078035929876248430489233886630862669194123712366210659017428673532572202296909698869678111678922278847930274555246105305600574759432480757332405759471499773828272778375693946257612725685502698092266939294969734537027136353694961325708907170306837571061152056669903938286529336499915376800176575793370213409171085289907119881183824960854408372523155902614385954713690124301206764837270604925524227307556858649229437432557306886414754357633525891129431414562757347994645404116086707668694632262482368745479188752649801949560887419873263671431912776205382140295005650512687224980948278425806838482466953095739153134515849983048095668841041574367064178932024034566721731970283713477396708666468956590560452135902282673583698618626504481900428926306237420439917554454352075730205042656505949164043279635825307209732566601339709495048995811455084549708588148763017659869803372399286730546093192118512799647278350305159654190100311373026914326297727050986051416553987704816390290871157307565612745738507464364827234511989836988749172890895733228345276041618167462714516743831537328719841621988190856179928458962313978431388163247392264114776052318018430735980858304253880770042863958715176294599394199388795507321068810356510499195176548781744046725382467640464451501376456292281001837415085386590674393570652301262161157681300463877758315605222647793891841137989768194477056110358817948020760150549343013151663092058011099952696972187686269231751078109568289180982600130408820901582403094796713054177269451933580768369704428907944055820845360997948280080935453819280597061515352575603175082958367583199587031540771522632547648763368800520277137929541210046099209124915883533055738965405824334358798897585386049186572114861098258016432388803178335437128710191011117904046159300027078571478316646625570374350775241350826467661022396061063193821239816637486754533055302472400330979689260159439553329742874515197085823304781700864431944527058786374286071297076641891635819386982244841535095751423828827921347894369985953358118682619841951817202930311477737625687410249013461356877710747407500251413604231161836200055381291606066333743191773423932889557994645440158856014247398312980612697141350645482581838576630977225263833813518335882318051641329220887743073961221963246673380825648836873776020494890541194386072937177959685874725331218113790173982907531930596633708015971078866487429161627470669427072638391042856908228401337708966686652939452556917727663159929845159842155037274070867378544584236874599997401697581620210122269722007543899586289861977955103016929707817507395397830294945004831194692464872895115478903488563685431501484317601692234210152970679260367074243459033530111135315093372777647027771285515747183537535681513926639700943761245126091783662862425858187442014381544263895283290578944769425388099830612788256188355471560564448298897993315832691114389696096396429203689987483386929903315643080546363877135036811995136250579902409814596717413744091301680596670562635232789400655317934655262970766179962774753330965798233849603661441714876019513724180813770282129217227721818513433951206584809589448317594087646313083080888697285778734521693834624599421815923837038883436039558816158916722458136107263151937693134772200211536172597987066599544106011495304968718483834994040820779392959319389615425130895356233976138112870784438304556535091922613140813361526336495461773983094220284816925517898349513132226604941389262151440106276690724887878099603051043455604513974342176399116127070958748672901511536976503634311823645392522782213326220576801358848172436359517833017877611248084337453335943350596744032273141486058907114324949144263996474972755558019825838836701467888907768276340433253509657629473045220351340037955192718701635321756700671980800438477932855180177167281370147247261665898270981445654039284848901758720598355214665809587913254557050235756527161281535165808413839483573041784097159674082444479095042002766849757595523537974021043265499551135142660944441127925438613511834988143658987697798265317754781576997613759617901481229849845987585566612577230433873939894771975583425246727803184454979421658499099807443175083637241732941924259091006511104271983748890822611998298676389644302082888084683529210259458268530506462659531560049872373022937997616591106746502027655216769543775649437348574685378060397529445282407196973904708114914592179316824947119171215588028941346728808071644283183731929603428938856459671587029337143271188788463530352841466755228805224383769651441500393447206151294452469429645576563155406482651941988915633833377034506130331253137401128323839418262826803233446191631819264407744990223653193014827510274042940113546518400235836250881745720312404591386968622795144051915369421598426755867670844071769191477473231955478004138615850037963540469052351354138758130682778765428929162697048339959644698652079367310878050411149163390954131885691514124074876504005476197724192033210082817828596556385525952892066214461294957260508780453302923084882079333451629346991031065022054567408586981646428413285471518540312548330802945250952276430664347733213949985489470685812127211522875718806026822314331829319977455504982165921505522832669441234446625271755428450255886202375091125182300934883495046963677804297783154340781900672428092743207109112951987691819408244060612155419646125103199341012653800907305700306521698136976267283589748287487318578703448670720191400687881221106553625415993592658141695645911878210459947459126757044848075212824128240583212734430122885125982756624528061420896236955538324538587259659411826172312822934258251760755116531766117067860758563430771161342036217835097913075599768406630956735992950102881712666840848644513208930912787942698204021277071154989924290557043315769015466704281699363531493272181682675152821834125867697319406640461171578458163734804076119690008928752250089810800717437011057736305297925053336167371097377900627877410259442166809332310206066928589801608401939261271299866870104712442844563534715454196162344722991377620306142162921717098435715530697261767463772433372832062668397125812071909807944731512171001036981115249271169845319025689678836052009083919936400242584027059428879424881738151178766539692567932206643366977288814147060845245909991295084336871106653047504351716911967947488582019654879012662777732243480140698876418171267141616332810522889527180993901448079261191408612574592722434788682011364594706414143272816284193976166740558771860975911201350786942095538072865359309705766518705650698226245011627309468946942947635908111940243931146531251477803732253812908761847864910371418337604616255433180413108810180117316023178887497856949160783538491319536870719033799461669835835557180253440846357087975375798805074574191419011811440217045866707276435394424296257236552245578887680572353137806629637870799761079270669711375839823065400530299789242678520141864590011856196588411910754400892352911996363162929066601988888109296480978162513016090398544472040669560913412724389987112351224172610834572574820332529656710866733337820781012424078799674039249023675304874746029871933952114145362847866771276221053942407795265876704780167444527021279567186461630333683091847394264773099654871606460147422909856641251287703302768870500054114410216526059278364582335408728881974910699171684073613766204769808161605611550161551478522279955318112738328515151039772752700316623834788956512150122548853549019693799773854526085328028152166155475850223028481331549074117643555438156903135940219075070323634224682635302281853945828054954491255396013316055948320044591984337519845566569223191858083150598656007715217063414640415442366802941334279545806739927743344016808401771758187489135057075148642120316611352998156274334975118910735313930043184022624350417034049858188381710225145815085949573379736327795070056884322752966791375990363678546676984843719835432006400040308408729877382971035880893171975391517135046285626297312770783988496936909959814379861353652378435383801933082238165045950229392569736425416873350994720687410731837874495175513271421305696311383987935590841969019796730027376648957264775933565635723273607155490538555478138681935399227423535566522667234183703899638006978175057867242222952576474059277360883493618884118010750529770623008273510205859930297401969204933347413172378256784630618609857260892864655207949624293140493523224967241432089164312794278508379357450142421609362627840078491554161361193340619533064449473636918195894361535310221276781366545704331522527124240166289098093605511214576873656395998536563705965326598759059845444857638612253525971379697395487805135207535757669708446502685097997680164738794104551931084592222655943493334687281827669608173790770044812182281468761529793043499968197670533747986885971208424559444936510428116409360302173554750170881772227591620080689930115695006141098400228660420582201348809177359983502941515443639950936502603422338485668112801480250698711104074558473507632175396752846181137728917132206160641399999751746982846115230809060632050682515137671645656519210432471705862034521028737759246568882450889177266946573349788117685384863705214520706769906498874515718945070385885744758564847238415996292655984841444174313068309757342422190523018346571520633663074286689940925141264523333493196154579428908741820597126066834855814987903169912623238775194540232758958727660436448082995287484271481079235003004989513483706748109177559954247718357052148399196835655296724402314510415345399573016429547960303565175948852986815715153574934130486243320336967056246941751587865839761380539534335278116085880572623375245176066223706999772995699217931988120472586938236585856251199159967416870577251251834003120735415093976376620735721949157456170008949467401262340544573040230746312654722608181368551665722759390931011895236511190466314495038921005091714558049165312252957746190819241202691086379752465643460150183844005066919391064609652120992821731160148379763182807243975450381174669688908280666672739217801186054927471890861113676617939385637440424692555805900438426664099421147334481632423133428038582653808574550399214778724557803121328162890083841993838578729073340108481083884371046916390313423046899715028177648906708770145441315718521586716597348299788569829619026830079882755865769597596485049483373204534058996583070294627313903395165805486586644227293784488277291484679968702304227174384528322571229127253214951283551736152098590311018109313189119052646737286433323613385505277965693383991118861255576940601650022071488505640931801169023419243176505162750933583507459172620877446504357790479261029674669210175112770715351155714241405181246168255100358427665834470925657609203408980573274827142949264644564688860472647366866595212115775989437305941190511770758913112005952824826784811671880651248892210279665908905173718537319541847712896797735929878399719252130145810363278364025856050006805991679717790273400010601789485296380523686908309421371547006497165979842490939425027009742397444980092212682970493400286813857327405741267989370371211952605746359662875159119552669753148616631955057675714040645862044403235466354207210345458939551273039006930348112221625818577667140060343920464931669507062120002160839242879023214267518176576771652378924871783788171170157421136000626678042034265854893210616781237300238875979775600334529540643573120142375214404900799045484630312206029331079747263816498621135848816266311672071527656531739593478117806342848731603722005592463273147925642484719526573448206633876329459649353583826628992497403773762787652312338290401547442086252861513152987788229922509260955371767459016213341809023835842768536609351294378491864274873507753096896626173194742441121238311641998735551518718584653423803048337657901702907463268051863890716860133919854065418636158008867034779075088391969664702537396836418104866733746357652296489442314089305104075420824843189812791100462028493522497327159822776684494016434998611640110228098170270381848212988764874852807088785510558476286287497432201992387990899075947700845516705503951692957794725264953883432916576848653236605318936815365716117983913815429020905499305527326612874555052243245150546262435197086743604514627044229255004738345299308527143728638801894882037677985627243368856254332271990865804945099181015254639539687620750765568672667410647147781320541417903252501832328633049186700421003216298271937915062920694055288726965731116938955603742884348386587057475104065539555008516187063323912370378933293692880933645602785055161424385286064675593828867124230096708139339396186857877919676421473947904135551562448318672221130058932377300873197226157427379786189795380298857001676132958556251438584803745805899954876514130024417833057919635210091110969900244819550545021090195498564149795965130301819471645703852920253087646968401837203831758876258396554291141510850404807649872574664213496493462094876288549666498913606913817558660098701650208446284205464988170719931844592824146802637349542823478937841262751229560038138709026137459019589919471938874231773966675235921953330701324294562418482943882666513137000498898044909964941591452056283020118611639856788337694514276746442405425099287348517642371204708393420046061489745967491669447466117468206829082200553713712875346589297658173328052978294519655586629104682406121771593038901302977322380993332111414629572948961443191713185542849111505160291688091059193886760834525042996437694637232258921578358844072156292657850907581978574570503535452906069617906332931552920911708312720087967997347272118190134477281303378068730542986170455966045679912630998343243912997718006835657817369402125982601499176588311420827933620860940716559988911926100448798261043525177721361928824809049228801325526633125354021415187515746588207688632673389995536968858241859537279043474479181207955591461265733521584376036099016065127946737004498081474322943357354860273181440065423515774844172447644787216407658407260616153345260205179069443061924194019878047520535177258211514223554813859603435699226425896207689780024587525897598857831150654315323597745162242556309697865784024297675535951262233785705222759298614294804897488255563205545891076120733988943506826740350520066925504148928896493917555470920139918535358919523015828604685324999572053217116071572192540776941838601568291573465763805121031772701034725021230788135618860194489122946639449808828313944878871768056790776347383958462871408399376562953528399330427784594680872784272409080182423285688980273801295725142008814176779216305278530100749322234473922537183002785279975935443358555735114913475226610599007859118797507836342709808840856887277376069217795983909693765032813054041877009911698773621624698318853431563910125265885501036168666465366263497230564450585094191588901293295328756753140508852012825742580264191967891408268675291564234886157973177587223792546806700043940784518413240586741457839490539127664419175194903791497477707729930008867387200557397902813860890974876201215570474319163411163679525480127173548093545699755959122496789564599037053123617235840937468779181957688025233521839892205492394253271402250011174131033461046583345736433793589102284602960216655326798298842633130517863426063072061044973446332223426338410908583975067425039195049307179586376596538879909746723682456547715287135837032342586752590302278193326128279315890639260212018449528678197250514195985604522816860360775408764430742335490792472572985200976029534515617890785591527994621039915387604086225586877007526209190156998066855011409500108081104767172757480257535901005469342915277665667061207413126856862410418136410476793183251129303182560777294724655242698298164556383933682746747413255486309379311709148781663173943915802799269424970946844146984848408101026540213558750031942716641217672955736209100543041488610567740343445152003432317984165716269986013622702427853890434204439774868837869311674738064465644786036602882610368078427327864190398537464204761130287934423658568606825592801278807439003363909222974572894683160507114479403684987055606720094014417554813579955855682037310258215340660826829867596447497079142736037197373131704637889044236357272581217685343700367290927039051829191365390422628512730275616667101075338566500280869332920903600518604081586669108935223050585083686604694801186087062827297774279981406738748545941547727069359182307369619555876220513211442350763831426219045605214252457344498132415387142241115612836568412243373846072802825864458608267180240509864683061525035800191717732510891501852742493073365450639595439955321153452292001495686130819203566437272730506855144603299268714836633167640119204608417002144168245112532003869662397356591832054671530372177479173575644005959432116765183599523104307102359815384470330748784190705232377371596288256012885994824331976425850209304976543490160914580314677252621985066364630926343589079001035116987153816309643426975362647066553330583972813980923927437190899986129864341115012334379264950747012931276083364293897980426187167874213765258289240825988279242005322274519388337014226922111772350283353093779457701868612934971831199985086424348791908122389471037127487258389812073146706974784561355896251882171517077300938296926865729369959719079193295475269290520699038855239753556471999657747106889748972176569674042891613267141895931620288839842217020533745682850414274703732042654312817599412482402463334366382283691736979380731140269651188889370640795641516623853204991789580309495177565649360662618883156451343814200493988042180266701734795045425781738699448187194705216604277119447210729489652029179065348035026338443227684088522924477860540480565896718958983703048635794793896940705341897603880206269704559925136373149265821105098016206881688996983224551573610125598520217479122221947362367327876722466072329601140052970176442956593213135010002042242982232375486836463403868725325559670464638526302898429374763759502509967607048000980253505301318446770026716638572728803619159195501980720818580879047721519728733067102452308334928562318564881917151138249540955501995682838977447880833439922063790783718154567982880628599964648133990663074979800290603147627608233495780307983538799114705924478640415376811689590264288040172878149398010691232219191946763234329332356590630517308207036974507268880719008384005139536726993181375698687211069807868619554942087878830946800298270910046421838419585435843457235657126793332418921768340630577999452294904784707864965829184968084761176850635422483035787446787757389885119599496245156340905203125237336222355719548541792317213724916324910243891358515964474735298150443968060380591130617338336604221018886523005784090025837964474911707584401491331671508487683087244739407420652379087924784758158079263515057525344034958739717253696794152338406919770612959520173377892691616067976156651702669684579169938366884360354143464308258291704033203545195584699517217615976323309961169684218660476836671652439067652319862453969338668637734139861819891422571120051389097083525078525580970389336821623682765236048154870248578612970654187995225639240122972637426827613647454233143348554194371325349188999418619643104468626796001444648139949008536598553966385038907785486092991764111544319800430923198235055215116128738266937907467581445258307051925134789317939570169811010143175411263098517852327846389591100148926379283167336687492722224460448443505407767440656271931304997751168600245574291997437532869474964728385494844660958558880062789567528415238307574059164362533134769801275909168347819402633072294315351579078238494363537968014383894296550722483304855366980161403967229240617565751107679586349563737404856786390933988772713675805868997526197908849596863521889912091721799367633582813714115780786233677722400490369933220841016601727312927931481419438432508491642598887318630559009600631433841494115161363583083831801411465405118973020026584248911710099878360039136234504934206885063676802401273151832893415285097929615991920196028119777242253732620194734190616696053049927806996587427783548133452967274592564320100587457636733755819703632455735889744079401120461697923402362541311043611300287653069061364218687272864143347343686746700900289815316103518701273894418857930795309729984197540559507937618523059417839587615722344479436616979038574636886386160579832907638214662628493065981109708577195213416444647403535002860329972276166511509639929254270771872534329768648899129832145130837765829445337336235834365767805111563580574523078203131981263461465849395471548967642283000560952069859391601293739373814395362833015288981144704407809532596980232395007175764258874087574745522265359062177658854003760482649719377486396622754123413011958029609774665845297408309311761744310701680119679785039145579990309523249596842668697030414306657597305573627306058488498006726431805885653485315763151624011309679875236640983682951587165732585012717008352913563182917500424732237541670105194001102455983246300489629435896155820076605528985049688309717580020633882975115903874649193544723174658149828939211351698430710453825266544102195051255201512696446781756528556037351671587823115960353574885132916640805530319092524366769493117234294906567108974125484057776812593856073131927883510246296542433016005382620274791598065779510429428413304990633801141769840890063214515239946579685909064166994894879938637187989344685866615357783119743985829766058561139631674413294291594397807821907755794768177770641173014597641383547499788156384430700981237506258661483512282126004462883031980105870749287636553359612539123976618447817864076016983766321470728613503388343535146189977454875353675322584865146912129011741946882747343435137372904147298499759810537749700605611384558229536042845336790444796320605247131498000020864582673769914771421138006868096678906673986353721251266964446646439202236710055146045310838691906544399395299182164062390263784968804990720736330131112406568086799129585205712002805676756948320929152718338808980846126599127678932870386406264992648858249540538008013827602675079940706070341002585075462975399729579068907931826726766769586843114594563430071199261091541440894241548180256900572967718907836291186151298165774991410818950225056996447973833096052479888293564860169676939614598778269736601672368016099446604687583739082578840280120137363380354182462258171284653572678749748474520414582159655804435624510562459400618719797005971961052629215095794475939017892535939958174914275762725305520678500901293381586028090396282775809327832301716491391816938185709259814369941531802047622503730568748367450609425416245635783423338656920465222389388966401252672873171889063714443409222358411981792413219192019378242615196017989605712690404753449860322462320241183781547095901027383550777832166367570136093990987991968354854732649874933301838053146502504068146448127797075672385320050886640858540522023192755441325062156094473900403274281161033550020031411875167679528128019985376214973758176657563474288108238195621645411449290129776870736892688405919447984264677343899933006699244034898824498014335456305421776373029431952172871409292809225092711415554533540295498290258344567588449199632629275358951675386877555693298665956477039160187197844379591460894433930483996174769413439028671982399145416209787337909952110547797729264140463874095224878821960952395055871702925646027353213395470916580544923283529553303618361497746157684421652471374847243671736452261123531026902541429345672167595640083830432254333679154889273790693225748469296490540393801026361842035353067230743142250458845720423401331258286322843307400816241775130018949961255238738134663735847862452938221676784154932280235315639297323677851582239690546982761073222391150746923904680834610745064270476688573630589939970611894609537176336906607961755295617174489608185913003015747462284125614043012197958241479904140656716535345797897602750908982906512306684948957576382720767009444495615097082238857985480427887286478156708535762681737171986945180556062182511903003263273964545440657546869254178882951765237880550079974552728722601588282006185325653386940947586708641597989032016396129925851454289228614629338024798719790131383454310693832308083536093549297810550646523580197920323346288670420216163931731378438926915549878787074304099054913297711744359777373261403385320269794460813876503743769121533037930839760782242785293836920037292283452730926016790445802257806775093996011339759113397154819812969995565022416897915991769989167916146741698421340692015456017509522404385414426031032889652508229959906801102251356526535873934861044391862283752816017505239925060676752392850678126392189156815388236174088131531216190815226485422348398849182487257423654493076259004732199088573757187589677128517147974364785598437906252829890965348076672698438719282907685189143796103839958883583474176046404046781762048535621206254949532756627336763235159539209273931669437423676576858844869439525831631987231080990141511894215393816528368106059202720106857997246629632437242842165651471897340086055194303202086417319110268589862381375988113458477463873799795363044009201700523154358452590040123552240355861922095808299269572657440143279992707478049646973040439253614854648927303466950762477623697483259950151539014754839306632125628104774479203859993505833333968201312043059711178318490152131439326055514029355814906532030303859400118768823759433379020234373722814691158026582453819376862095877012580849898115631651611332915198892447532670047879161213764073754481618592617890567227380507888895280014862462637292892681878676640013561399177902639065794049987026545603217857990875294711360728163584098161667747957770504912751997845231739728020206520274985428414010704122402253418944310946886465009172180433274997034595915481628061644667172230457976261139364697088961280572810007069421176715770459348987183588502649468697516892956595515161451146770664092128569354589077367007750611257168871810246536980130360371834227158650197410357613197399212636703551568677304883145492120874138373272552067282796860290274106353771946184120056366998724953603801708246370694284292080944988796338531853053770640061482101539917400227960839906044414657721317147151941359217303704740822580364035695128779932044956768811591165736328334253315330556049919867974699154174769125500095652508719407032525296218664575849085577263699746305799592124723411347870046745123338719462948720730103131468153064224863590786066573745487806511090896324681237063582992370450185925632045094244423480057100389176995681363857072509437584461537030463973490096781699455496844367876631958560688401581958132310982864426425886033996715982735520892810889590887863698785692855161264434106286502245132115436415679384951385885035611246842182425145712995785456244990005015927483301411307931569030551303680791461098935031504570995878946935251332751838185402956853718398345617792348905858889803166341458442583757268093644513934930812929570571935878292529664001244357033391146672642653190406303754224353528685920621628377206488799878040655541651266020312284318991392470762393277337351686982190853315370642724579400887949253562000564698224170417877663920143021315221019787649869400825696103467574118904894067901925982954352826215082711520353443369916377576777411943045975496946834634186336356845160987996769014147107429399678916833719700271050205288806821256138374200158420547405334151540942827226800093739125442601332769648525096416157331945951093577295909833716073097165902758173705175412923652987183568871547995466190428404732857709311674077994046848004558053530516274255881743711838706093796946430487537893143582969253834259064119221901921083242081621206143591465288911747747953903573827129702977538324888518147677923358346760668520696140159090643801216003435447867587279896407495133315349883828119540838494721166632927793851704118863301003889675867855201015296597863049037452653331626238657616973188737259815788456123516063157247638749695358709584962395731074456749366731763245170886786849887390097416639265034747327951736010441487505529490661100846172746946707714676490827138867376508706822090610963455389292290422225150480261704122273565835826373387301714607319863464089943432180678784329778995179224886153689355145891674436389919420511312250495196442738646211781740587133550579078939879170128507539985694894384176797853706034744092626684324499519283504325014622758464228279034269118484911919781533110874452610448041435760596688551996878833780167940417022968600420236418709279182064697569980191473133251763801534048291150084705198582799609804566152165117093118690381253970666993734414218941031001404476408328207789486207833762217554852359433922237349457231175265400469754563006962267946942860328376556866189301176303208551673203607163037500395159251542678656642750985931000675555583879033976396427508361656517305204370071819943503793283674229055278334140659659039590831539135134196005038604431926765404815357994942123518483266984812772189220911579492250946042307721195908655629371849536091060737991713693193664187747692094688408569002679367790407824322639001864425925134679683323074500142785228833563153922219960789295270608620892710851314072321215847578128651681794409571913168635683468664734740131288032042555398743565445138191605521910573472897722021145866696253086315737069160228577898759091341338971819976571588844423229148815796978238139902737152114121956314325491396351609738684293686224566137968875464963356913403616238425588618876822991776952764670563621936546384246600907809505069757744995274784503776908620400826834833559198425929985386132640633979376305244331714532728520573661360665503743264465498265269299712103008670246568000761062483872936424823524999725286983505756752033885910962454777021198013150107542794689335436002738035312529360000275766650309230794274456201382677363817340002666382567412445858076691844427768818258350863411477560861686723802902382416373542592533401915545147259200908819197939564775915661148821379311603814308780325289820850566234821983864923544513182565626986934825048536049560339368288747105108269263404475457252476095283298643677054408535834478345429307903445591861586567931636429081997117160461769107331249706167481669212187728039113194364710484895224526735203363108437810889129774298048677186994924162651974988798486595074367866150798173231374851965752011037609795826810572500532898881892636386005977651741238967006002014270325012109754094479442599776353321998161829377456410337683520177610640230410123338920213481052980003312233059207538992060721264865336550049848690516906561670657456138007721323950911168665195738523873557441948625841832047210777163211249073468376186423905072054885769658661499612908957522365954960540739955553780233560622718330527654917223538879317681918332459910727470392313017190033637061710811442945067962271363980960242036511768253087556314906575337810771998122821097012148073394648325537548235041788155297012620197010349080904848655260024746077518937640234795922891484309371984875638388970479355423960294353304572802059982866136433344791966763902270756644811010990116321829441905879772948426546329982353843699571928951866295885400665137552644475033591897344351753098286917197128047255088566273255835487936947479695494356467351320042564719063591307876840098029515093649217356478792454314817481051770792040609840206192469836731473908673529855511751648620529029433779980530669371782771876065949093692544882897125074370123355889849300784344489497514721530821962443595280895044782553475636812509119089915972169680041947982308701829538765886630061949423616119937530655610362075116618356334574976710920207213032916942370940667746526228062899514519714853709342924869971785765133516628491950759437211053955019069624692043357704091332501035956277718854378229468552505731649416389921281721696020852310946068176081176095516208176438375178230269715743559745281913367703033156699783581803900540206451662361370134509321864096520993071408608467260796222797935141279497845830926949885097431761074547084113597234692055662640406409255508766778071711480878362928823608627649856972215983671938953587102174674541182619443543800065804140398594304537183871433465376004653865950601525192961335710790863227067459925137615185460280687703337463713008365160100221625582755943607085435987102662019086908699974128801687467335048140780225387331208246968272372671735800859131774775448311819543892451089165603431673552610821482623714897479962772906459216717645016579515836585647765128174089365610962801025583540804331583556979267986036472160364821264977680646353251315102211600660256624731062768227612392511047624816529026101559447542171516771146376119404276410211172719150324232208755508709660725771173027849062493489477200869656287036266793602391548830703487353842438115208394928804980609329285345080521707226520609966782037679423829765234170925000097289262108151075343787055766394275937440765344173195009723218069038365105922418931921296186271035653970757061049583641187299626075742101618729335172992494266828460641524680432643971506841178446732520097213641756009183048120128103288107482181413620877821308961941283050665575804897398280321817643806507764956456046157468680084880548538602547960839139142576363054115899463183179800682834127418012715469328208276070998760686556638804916448382762969785504933948181766351688733417482747618824278953969989255291594618809889368682091835054210101392379252920691704063560694424862648359992741174291679442948872489646159902300559305558162354331102789335650145984261874533886536329239896759591455906046640090802870965165506534350395138289017968290887804217530838489133607666609345591806387882039488087716270925476514508591959990934138931378187387112411483450782218993993567877097888588062498180929198427598904649041377321539840498498744509122708880594141095215138261333104001063464316760168882438945838500987589713928317692388009257297034772345218163811311711981438680924948886971127925435016417961828906582683867483422997950316525800559870430976421113503048579800781524172214848228510145000772294457903620096500877597275989716399373700068113754503199428011434228440764471064365126798120077068283157195154675268467150002811597609078504013569781808186284572177080783613080889553255765955193217255781462513781468969186091811455883202158090896238734146097003752386464332654817215631072368580808081994524508300919691651317490049075176247441953828188360342912746727946085919334003538730930374347048332827964436486250476200669130644456729698101742523773481605359015879325914942561784299366934514570491226374093493140085814866611648153798708587121872648309869502521915355731131186709406136697410389521401145496102996929969872314036070917628755519177961672469766810294699329478849767869322714274684211117357836902853623508376258514002086793132332209486958880798193659908306075229987528842349530652161186292622602068296960644806710328269059593699966494500988987362571803936877029665662062083521822252849805852866128982052308005257890065851553919462679877813550227872289063934925872074283667390497203107331269324330171480712842241982712927219268574328018509873645583483704530748633294808960410606643535380487830089254739262268450406415978065008129691208601051691196824022284675420611152508288460216489697525202268214639287371671877016207803829981098554791652217417275774624784309585241619047520473276731650292280185650599325016326944932747048067922289591826225467049107457008921013201048260150282652555276405655548930809481598462502279095992413586616300381177545119445284900582465436895329137380950475664425122189901434640895384919687642036702609829533336969757734834058979636588987739782052985238347876519523268538659540760543508781502627540326729074160632876223352224439877406577124087808036619664051405370865224498375952810778329128519308610480425325754553593225635566694237067867235682504101542384308465565125019831650254639368689875003185622764709923167063940765254815560177247014208173250915859364793077622891472674197404902682444007452273505171268010580183778279839886070662290941424038957128385891134788745979726349478786781795226719362651860357197736009246940218342430911460119036893387583210911046433599237438448216723728877407362772231989717243208728291174828240051790292090178712029808523897462818812139723046730477348909667310015646469885743108012136157415662933239857735925622973351437300115499421723956159864937251441685892400395902976157557318345567383431669614695555304471742408415220094092392099265772340032076757650668535083418571144829785386868983283800937303678446323875895740400431334070509295420222433815925228162868151688197392105533210906612930216433359005850585945173214665388337366814201317862254018723401184990531656997331835905763735003698286896837562727594974130440854541824877895752336376915548628173715826538418593999390053124316722890876993613602926493761782883494116459826943371877208458833074594269718332164104180796123545896273518775606452418630979410930625882315063537964416737945503002520764712132385275475439779580223745946982526470958543245521294653849718514022133741736697993891062148010097571510928116526589889820691841341862645548871656012902052077376155583395523360067766708296703051300660742325856235136973027864143887148049730674448987877136957952098089414227367197346016347052568354841193377194859140051058766980470561599703027497681991272911301434817571445026299955235644745382997563749861424849309801952705590956604736490308997327280108023259971841559583761230607090882480131207804577135780902438669528266515286934733549603746162573748548291318846531783056501926322405001161522544273491070225220843474590762012933032276516433576798218498927033881872743737765857686497443237215867299592125177076568182032286093735701967605641643830282202364440065783329479155237087490782438951781852653915236385282718663968433796915613676168907786022906393346794711954861785698794697405005604329061977754451579024341925089741305047473196711776899114226074893951040782095772802303401994952454873205351090911425711590048644947128440961848296600521563579931754539960674695924327800340156315037906226506479274804350064063290075779219788651702821054674052442352540990738090799421206307029029244899293642840282700857732293875497179304569304828969449403116598022227707391486080039451889764584696920804904889269251238449627719623257129412471635577838629395484790982647112247928531884790644061815895343304804899890329292867474101787101096621825345603764604713895664623361366634724203050006772575753536611122514047547384706396456495183900375381894312562866020467450219404431694434568874556611811997268828635698135334049162079322425335736285855210874639883792049432615406115023823876030177361896780634769357706305841928075127468398810999892015366474328048003683080889422155544931690472407531405500592216663075780378717699540704173268638564102049724692463546133583346902635566023915215942161757338101204700342123639777047021740928893755036349080279012706038230130601507596293189380737618068064606959784201577399938294104992669528368739536924442240041849985825942713079911276947552370617150164442534085976315449701238857606136728819665626613699499108202708671558440484408862833227736809065540514800539314427952278445682369052872106166767209490251859993361642034008253763161548271372125530738165225435555588853463124726200812321595606492039173937903497675482538002194961397319924518087189564522018969850358034481184909664602444849775960259857721485234190373989511567921374259969075911166737997623920504413192889447063191246205628594041354861829476598462428161857818809382211989217288485774918884466047628887729300486606746319536553364295346878724514971979893524119211619772886351076279264620271535664607323234822908322697804592541710443377020285129479219499092131481076251090136375666313757133455731617838627937067891024063224875936315765966536567788519186004256084744425805834722054279306257280534530043284381769653686794027177799075165706106409772174696352533672753138848362098519501819206397758111481529234346831933651047002106915434788226255603739723504238085815384394134244529039230930439270996644994459233584207318309001702063614781407554270039599148488329385650389502182492701036796158914127252584281338180795852599997570721901703774933267666776820271165819695032963912916458536475082286507405414094357108840553569853870948877154941151861120018278540459157259927178189488181916753802907284123913630890407348887955361181013072528908951587802819851151004862228156162774585099782240079174290303162306472666475651865245840238540217214746697894109441749734290837561158851107276600121237000755672051277984671511616074698466061805956460249808461912138889114510893516195270909044235653383179090552469797576475687337982379610800689179785044235099366501469046047869302758136220330034636807804933819652095747085270140605169304743198015069604923988888130059774985606050897045874747189701697118572149538172890857525049269851792303229509452255795849920281460172570153323531421776321523443768203692676553457966673006193620132911250792334274913226800613483707785707388399288056576457539931638265441274904586138773869430027882757102367676950577223524812808145632266345058217820402729601160290186678597106769817017325658941263493070168195543874487519281929708986054595981443620060164468920163094360359661659322678517368747949431111941034599943904102911874056062686940619756756737975925388027153448896111821950883987568853671020493010946865387936473342750967256402532077918331128219572908921655275468016775562239808956451445185564409049296570716809120190940219945051864107207948932882040945651570766861602061898598717108655932128684624283984030152487760396171142181142084991825036973578523452869912721696206295980019939966434153655397658124322574644182946812859937915580580103797530357460406198006647535598115827234734976800524243710179430915620405431688183662058432849794536193836044797493375324817884844918955179510217273530901370643375732730597951706000872741769234068597316889581769966493419596641254122060930028501864479009520962351631178533376320223837979628399106727496652685020120014104503970250105614042093971920717592394861037496678121885160268740051525761255183131954878820505972616997991753443207266902460760437974042409700371031002991862134676500457914294535456973427636145516872954601374771177104957811987062198779020528882874781434051120556949871863587814732466513500777660736917921903240854309489539366321199366767750466427561643917217512692735864133592554547414981951871864143459856450266814014499612130166690793240236801832492276607885540123970263506011716570958465997427362658435241589358594448614515390524369828212377395119809832170263210214948920551289969136331424664974687321564258260992982845231087758124343582794974717765981517353506914315631149855331393511024767988799622001457022942218948476717726458453689417445378547062489402693931483124079848141416777092363516512029832498789065796911439944241453769123520366908850855637080599027775300268422059174655408240425851956032740652596006386555428942871446071125321621337537575539292359587580596270127913433594092288788205022064962369225485735142822338575599191706492047186975138951993512913330633809744597373737788496298070311250205240589950839064648355634787561983729169962691927699825191110958970463367483519365048623249290502176606478067139245046824256944148601014888748208839007723006184546125170301123904998959787805346316182690030837979098247669696659876026724129603810409268578188572744995081105857567950926536243846033375756845612375544579992477814607093615652036700234520803831450285409407176794761743480423572934418147995674085381836837159771680883634279416647550105610482174710396072043385777400364519889887709746838710690760825672575049728178908357529844367017745182229351300804022844282725234677320293831250173664976921961382443241119500581059666960182066346310378026523754551986756394612686218157035271085347551690713072805079643973114472328605416319608010361647843948718447762477873310595804232303426949867917883151636462490583776646477965483388729164638760357853570881079242720308260737523095735049265494699086450965940380633374574081842358980770315140666575178928131028000434150116774847501943616445999799598189059676748382186669832148731210310008601615525379739106793782800643317253112209313141511158382521129788392316054594686865810548998748664223083926090807060421725095872225455761880757059648699542173818972760883507160925385942865342167858478417318580316696921416017407901458610377307376491828295668972825713993070089900402926602644735567353345949775324888980496730669194699765687370769508225998003108431474266348499516311975674273079685798040617643703802456399710037861638604582513763965933983042239617553660540998212290879247427228745344825106161292691542799508765018368144712115840683366391683720682050244717876093930361055696970228845095025396351453030621159122265172533021969890040525039302255495527313234608845063649755975950343954153160963668943913657332788424143545731381670142071808120614139401374568284073415323005599201471293390220469894846547380720587415485408340216659349320226621505466750737947100223806493066424163414413260942674752136400994934280816877864491154213042905164687796505463436878905444370734135403666428728941695871627377080179950105088503952266304412248639826309193874964246563326023904805187188548234104438751862987513429821271091784469492173662161160933934234024158741659482882358110887932698463813273645938675735248586374342525999451945650545502343623005425435144329132913240575140357272188270456963525093076120375764892432495169416609698596381404490955727939556334969274475410676584776709422337708529484070610526386988489477032421153353147623117959803718314211362768683867792862022006263801243608491157294022285940941668952189489904559396825034372780377011741591297790687962506741839367119130595057211909966952078417250674359900221965942130011749895214353768904345145147431017296712618184748024029084439968089788545612591466205317222442382932762383932002014329628801839260987199072816514737586564596536287355511610604496195934793639264022708609381669983268474506386511554303414303620856432867092570064633262028167475572403010275696564804764952122336422785062332790038534359085849420842334950676915973130216819427422599578869511385807919984830347080008508680838105842822430797931996957688490254256625479008093186964655977216110552194287793230752934838924758659050881912239994680079744520046699963790629183955923327419870582698876421705255047954269013929371430087815030788108508287390037297460373145916122533537576471099272974893547061199354002555829721243974264088966026371622709689600672001981964531673691981213767021350424151947379251258322048668209960110127989616741756431313485262938589518903389640987951952897091382870932942741781385922358188541086847768767442740987723057349299676070103362084185987949535700051257797047281982939046167335973407622006982398878722325026690189939417024786024423495262591054325780349381889860142786334617152242994608930327095520173657067479239411713421436174418581503573716562742863112741722118585755501542016769606008776515766732907981590299597774341227244356360357928271362459018282636825048269494377180312968586801116571034353659323288368898710096140893463391438150042246159877015070271299337340291274918533415751058623153137546672692454497548827548393373542679451786828811013148633971167283834164261862392020203611405077056678867700966749421298528744282234641801338800304381355950485163789239767420547476926413076812323816116325995151819414467504318572225829357883920423694884625128964931209968661706759795821882273576362040177183267768620361797515461054213645676052310315387117522034073539142360910415764451842007499111481037587876744381532582561755222951070050220780998523063428680813946487532765146848598259916554062518437808238394078075907222108299509666715566425073388830613769332637572286289817565723874474295529059353647797377181540853435771224208427939597956955968509989036763048397359590462780147577438931644387268494988653303419761052276375383023963991888115063001601893273599024734940470651023135411664031125461671090780854195885699899331981442584563243168582656188410846840809493379826697708397865506825587106007327008483628137935517440859615843609257130611768202039788783278070071891752431819083307818436287006967903513825188840226163515253187860548322377372128896787935355602907966235389708919983708555644367059618421003632101617854355822917113507572111184099616636639584634884366190167572044006760135794264637112311761980240300841708538171043465090723177920873707760645866165298166853692303171759731847322228630966836613366212678975900243717201742826671426207813132396540517495919362124911638998116635998543073091578866722204124314155777392388176166127606862052195984407406349517477285322206479847705427563031118764261401650023305827292287964561886066019092359352698223708739839465841841088933011602993036289462995222350562831114101284446725926370372736672761996577465728276220578341564731523401566405100380032756450531071470610820789541205859185137503774631312684613227999958762407624409952911217576024757804992940402816400703585883560304126221275684599015369673396352016093568420559475989936512395799654792347180885816318191608040046434393313941579701896195050145491720076600320832941296156585908255882825417267933311306175268224783841356052980870429675307824501306500435567425018667750256036983960689340660512108673580058795477751432926519251222180208093818721309939802134005603296414978411825375418609042173424799136959615675978704443307441823374028072747666686543509650562378154638415268734104689654901581945228662298377767772895117538882569086223572463414989641461451663441814936315354412638211458011315505674621595469408167400620250655812900974261226801353602578126053943826427364305374218574812243601247664803158663086646477472413531520481605046021309751470297833824155791833210266551715193218774202830659474882834655555452246982015630805945971594044948770692273131746614424244890071436005410298326269105206521153893670113171288047698969423635255862626247074312250965571158846483221087582026266863386502683562358952014110582191487642684686446144261225373473936964294627630366917067609206127196729688511556769272359733692385929440526549829820702782951535726271678683968050013322013952215729168014720162339622050908906858623910793937789230393558904253592680827638365240505280179019025934320670651734749593465239811721826246453228497044664911938239424819978418789280397238936023391515536014669043365650793533210876830533549692806988025000141625686017804228632130873045747482133500815807528585248323613629859158645640494491145230473156182472882005974726847555414865062241033528672967510964702294028795746381683002459644313740610164706971939415199327141843959160878760728493565219810223997799411973387670479476384638029037310555068288538823701163082972103769552075113444209592947850433234564617897195454587368608855044376961493172944082282276929609321881924267714640078488696513239712223445968743505391280651668367508821226623455913985224142841202260161582386655651837963852060702796980482600404881962569337922443501849845055405893269793778976873619736254108999354147459888683473110625870921257140045118580410462714034283603894763581293997312174203183755811587097922944076631981215596823871622747193030389768225227609053122198705566694817208960080018146001976221882404968809873004034774862858358880215072214810569343714106950513686838626169432319095075748720176278777450784679161897571654087060878049724025597236688894387155513950832319551379197854783347100264803935665309421350661320938315672231832217349492044616483626882862397632432868873515362668501983803977015886741411178240243393291525812306086833683276147205533360386324551053738820456833574776311757797598241203636122193879821824593882434333061925712358193543547608392922962438426534202073746443036837374132648100263734845100538298459707583161970764645045238307032101230002691980396014206474113490007714338055813679109799794351079388403086653771011368833235750627867970181518890918639841903443006060149267070038955765678084951891611780806832426264268325266776650527011016807509338687429878005539885333227756051374282835871075595707359217054561418192975832391894344598843561845798226106241505609736120555825041519474505252544736495426631056762552578343311451656572535619096970816396266078581997769266561460729170211142447548499556465342105457635569166811794573413352435150628914095460156688108751309698013581408010488165850550379837616982516014297316166179296578326338884914459520740764277559152637315887623402016416226774011177892733413167911785780606510257801613677545688265573670488756870902650951049757838878075173720320645319923691187202292688898963333753947462235131580519985818491455141413891470371162385373845016108674824473127766838973195725303146891501713654100103285610718492624170190520088143731222314756856192653853361213792163001365749081863149596749912203322162042235441250474572550137509782584328000124959289622056002108809566066649224182905853382905370877948070235011885945449225826385384392238349280040346081457230975103815487451440620497647718711303666079424047470244667277525622435958403254890827699617484612890272284087913922760636297088236551950111607818620324868353822267261211708071302359103511759692692849536431899360496692297266119473335548438582449857387623066910996867620188728004048394361565370811751080692100421906534743400869282285304596052183149106486954645923945364605912582059876787310592265425921532585382178910927768386571820806356677612103142457277121141225606611084695160524024499578031788093855467864641432380761810059711694233835952252481676431060675886399577417428420673595305741097541781984520135256613867203260075491284876621953323365724576148948775188219468607829787829169933976436561953696830190379901514167570226288297477473197932235367288811983716475285917542980830216238684880367853042839483440996900710087823387228092012620213303949633694061392270927074472908308248817317438193377502334194134620554231353962629487678379920693562735515397547541696783765915588280996550964171701299734261748038930834555506101461875411040820772134181266272440503828932684086396030751373877605317403988273390124043947699446106021741744073019183255421393285973620860112562691281179643232978609679570639648078004477135989339207515241511337630725504808332280145851009454004208177425957249373714277703387863344635234963438266348100179357902808153479903841462909608653985897041914614703972682552451986579329295631233748164284037224245156277123110997806672463408684218192775335339369767274625308781262612754913596451005306153921144573942667622987036733295693831158217505101452396604342978328709308180713627032543667697086585501298601291657246824725054327638024054899446255059338619019983035303255395408323992764859243227496682308403031342528425355028995831276064078638327481369285567822636626905551510705508088448868751556169292153753530690572514356747568174978937494713704303892943905616939539541118151302019598122475785016619973819372669649979997656065977084251413706620854745249129043396247865245071779006136306862944116257539936617037478373119291969281354650735379780058349223518460597667127550794851889731074923504365339901305991404465575983982029038771496357299166671413404382388350774934174628097162589927231600858000230309043890970288259658688960675482290369448364485195846684200052781434117937951751327553977328156627760626677471307494580259578838743601406903513001923600986745643708837382748055576981065703450507807637159259740816390528058687555896987784062448491071166688660951628228585901168059737365476060755169224081039145390972718913617333092091307008347709223870438972126141817016544372723753226088898512664263762162325962120963253210132178079315689792129341659106897639568445964046203699423881135078116162656015545249825236021048543785785377670531267831064540848716480391192096027772378304901768356800419765313388884883445896485695199258875130546722342638194747382199492673779740962419144748730043633443244467121039789848126881856751866452630526670500694895433627770349788221146400260836177585242369525252784116138813727162374563691013884479752001161151631402124547827879942180207673807589510551097204877171448703874611059413472208655462243004447170335890880316548879533927883001245832996422686192134703864251346833559832029049681166557893107258132731597702446512599876701370701066130558457353077727998104742178809469328836032289736733214821245241706488071826776004013510957766806542664435861483332893719557572351149685881318491416584546790160984914648536572143689777943353746428330450668263259443054869145577327639074940760110627297264113614791998426866041448110177225092171057502855403135758675203103944744924733764748976946640022387147411159004915126818533021141607811643947126387323051597855894734212679406362791608010273386868171070989195586314788274428076914506289628865326128694446133858807185832419828395390869260226265485547883575734048648273415276190145044608735666349307949568658439529238228915991956178064596189377030552000127513935268182049099064478689878250244658955249766885275720177847628297021597360406077570133648710032641037187246166206134148277757254780467114196421996863081350901444602694554813419473743002663266870336269484168308082910730637299504714968480940827402696376571021852457520668757423178419228619152287324615385848945309194128875265083493040242042000964589247985788280789280192145981807806676903852398548346517944109740376198867272453333915484561755082064632161690041642169458219284204686041531452442560647358806458533645456999543761213515477232113398919643211297194434608079507516942278327137711220501739244496098135431247769503364065600203372549154746491783180386799242138869695653480596267954917048906124335896779773753859387937838862630581393185326408087685798212915123348179966385657093634773181942577564555586480760165003427196931407158067280735741871889289624023339458780520213998326429668540271994093698098983738901003642672662820383566389073339826614565875694687182082286466933996320307391672106646580110192635093468462414269393135353600413179424857123476413012757635653614717029094462945921470772939657563467923083753325201893940485209149660460993312598921261939397433293244471103376589956872684492028853630688804395621779198208473447334630226958899929560588465565967604589306095105388432992658032743194373922745757052189840997085184071502789036381597987630547432955338821822916300553468007825886459746704010360312496807158217563744907364636530046237968803072650273721618714725014755105874929314788510092407464742047682632650590566899924679273168506084298328014601016607801694871777511798100268833234510410692719299239317136747999171197079563941238453227715537586377426286061385917138922238657622492926954390564700478773354390221217713742754618385356968544254217897510990388530993838847335908047858160532332350870984472536719565204559579608713127277156369164243205531952961261781846460648535452328216964558331823559102179039204721617142495138827489590966255315142877928657323864114025883642725274462228511078102693591572848504379445695516028457114553289763322292718607261335411984700868858132201853778130382213431869031353785153268344388827568968347672533608782883870090226105080279963417806964347230274612895219322488843941295072355078325633750019342506019036166273089756864246402654779885903384559824380340110528688988450982065332844862357127554992874391665732270306634420866329268902748465594137461693520499818583544271615156533946730386338871848986092168771775916764495471632888395918796510990595842727292246994877966037707856027314603940784295512820331858487988154623306027675088685211739813341015851828403937591248323056478666276089406779824612928110787438683052565620354527100791433321993817541587329489133867299729178431929813047814632362060065182767372713098416252390674303736883487614906448919867180167882344740614159856584690941346184057778492870326905007138066946026326610392575429451732402925135067290247372185813625096534807694009760234589686312720642044276351477004054153224723786193689750777679882843730063968655867504360173697593170629648180248775174195441414211675690529858784469016432017352930423964377936136980855905717788649068788124915611399777031637287137631877728320321141415702099044971935193963852047284305678924946474842889967668154710929612445149318623098624305119490199891930801094447911102098612395346686291437551259736429585470435401527902801853641389723325813437366432441106862298242936025900502016131436403077101579664054551842014735094768774214774830415421466748050168215484798790627848652534063619261715753043724143421430012026870171154480006017408538230415825045300167462456603452883688713480172136759039613060704713496715515734893747563311832894560225718971958726653192489026757528265034353574535795763095726638553470463018796110211149903382788101513209259269398450030853399092824429258642358295542409580654501506021029664315693365140112435251535686585055243654877406819642071396269105690893080229112444713394420918060384667430464940762950234904154372423088458056412985768808673299266277187571224000736289262690600707181607980945859049808845205662868623987158849028097409276418255931269989378656508145728269637492994416895742437749431412421287664544369297603593074753119873026806093924008493739102070578059090017284499835429140260057930439213054032569518684428004670705915140258900113769377480641149038544975653218973315115260017317093969838941617569385246350225398796994078413389892849015190930548786543789221762117608749577109190099344806280565747358202343704280567006197951768505605517466685179469609580276102863602178083534180421312102807851887856038421067433173050665351206363676349042838809950022238407011049902663117640182270273090806274450973091606446064031457006379768351676901284923530280155586027341795826049359624959242068827174179420657748679637178038986111973133902741563941214781353882176061581187910667288953340011695588449185040471534468676033588589647676067651115933264194011594306209573006679707493654912580816256756878894735378958244076359120745434925863726267016731414822197780767482313802809263187576916160558644655656925901137751723491445677049661360446824491372660671866963150813023659341209387679959101639322550677217475271073341244460038746984634394619515196842447640541708956376887000194729387349352406207848646995183505008294276555209427321808188849625261689393570208822069651239574062403449214296741855255572169551755130503931437962899572612569067372856379295929437123447082028495275990799500764774234813139753730996969880603413170630136846320986888658059491730340553932507820259646186731980118822680470795051251450802235452570724969883850323197377747000342443847704425295842363081914071955294768244965507305534620920978581595161140165881550340877285114505113175136331961979743824292632058924622179665071318079330972771598771626706462859946308640358483612111050939060595824576567907023015350087613496900365895639961211797813169023195614358424527407699135020003995774619050384155993046338093969148361019493074962371862144382084155181703689527458583438036185538057996549338887118145877895245515101976982764855920634589553783354574225380599741291853158415946601600130981634893664111780300922131260243452049990328030025627574984083695511330172005487806562415356369836048244314203826889462542526576512678563317387657608822831442031824871153912191093073253074484642857225278087918252646809321460608356210606962998671503363006225575365486202196223826358826895085154470441276218940015697662881121436561370681556138155966889147406719327157408615025385183694677649930662573933042866192682345921414450775284647402231295526879088664268298071253258614634911290976173924553755789451890958016429827427931165986263279702150779780358929022444338099084089914408354592747374361848139133548631825513579504291108847541271888998268276365137434985689380484697529574128316010453675545172392854308871689326664339385209875586484501322787637980290682636579271849605451296459505189078429174767888602100163349605823698550236151278950637757712118481302720498511205131622570199791887676226473050637306179054366067426050244988393966813328420337396311769362375275531736081662849331165406044737271371931184895255629519287815147016917553687661209046910834887599966452986299310447538559629489479355298689346145270613465541963593050151156284080806143707644324005665505299939856837516402001434771584651268817226459307826230307756600131676117985224421213069870623775362086887668332431496418491851553524194614517087445230348948644428610077197065062662429281130689630715976933634940249665970722471686855989219123479297803923750136938187264521749086691138910409888010202535666489718944791365074575558719383818755573537575955888352928985819253812732140873841729187645777404557078688857676240262534896697041415515123187013107704815606367912768357761938403987919779689960139684497446896915176825300215681436069594541207824826048616288733441101060568004278691425328567329702986307120903914414091749027179512603681573722192772668558428566190212626897434654425664950026366352026994403259714251853933154770378901804960384242190836432699073993726834149653222649080044876005159820819075016616182782999856707831343640999861131991671208819287814988207807937508811323411280190236459416340348783335660508342809990865085665129155592859845714259470932936934017112280669435892978334144181076849051869933716370434862807627685538929275602379543538343537151967983825411696391454666090539636360805439435775816050345328837136196857150224112998404672128746552420920693476583342053780480304033228710144692306226762116209708836211203480262589088083387046652645145113824698331997792662924194624867673608162298857686910315017034937943564581485251581753044222605014969089238228286976015861367219914176191724280383363704704487312218316358041313910653891956479247272934109003530922396705273868102128624878412636022594041269683150836687840074543909110329613570831119126081482901772855532081856297096372534466089432472234285797688509000461998385293463146048638797202541916708665541940685768810434206841188375233061997602723324672802391701675653275607682777821391094297177464332213499697245112983028726514253243512960811981142471498213402596420879013602437928713780855004285215340533740444590214354753988742607510496070543416147324839672175003473304395042475433623538616332221648082892219306164827623043334742556785495650895978400918678454958121525587892291398357345009753114873158022269622133333266611955549809610518885522491759097826381533720951559011425848787745614360803889780030415924109435192323570601133999334952979804688936097411367686604935561581768249951469757524259217406303085552675457663060628885028855794905608394337295123352568995512214714158051685055348418923290277668404717792412866445956323621427861418563714924244606069294104809933668740811999183103303964800882866655537504820738009398145928507391296549366474508673101438367269229859834076546637553611580557009067088193407360210478004312717976099256890001932070784751835990943051947597154028559793844703415419620207281129591131532175002479933371602225696306378246937642018438099315926102846435344227665390593997406590229271658874437503979726847884230359243850076401226992897765184761888320501069136023935832800439494481974590496270413455123916483213456671647144566608103062547104729425387151598186996022748838518284113141691042702669670112569082810763307916358361107283518546446826385525676976266477549289952249411271679910367546868347767169963120173483010267803975122169110547252294369832554867881333893019280147612382540426681132331464924321623397850877621612614576613149508280742986406547210946598873916102362008016920154798359466775441188242082584666221434684006822203594077352880709241791249906090768685952068314090212483778173518020343139753460703187750022243425790289476049814616881343499305634287059637730124371608343018474881445268541981112409387701564672470790589916079113807842351204743664285666726437630822137983826759725125536086092544044384447609993928870398956304646332196857290915673420855879358143842687915397533517272056385515997011427341343999600767766422563220611058418672588583665407531693997582737728754364106637450061147708335272258356853825746608564999182910497505912184754429037611979320254567940310765387102627856746135341405878035566738813198412857169381339935634265063249082161811798094396745107047969358293287880316619374350479017790203326797917986581104532944794976522051447931337891239176223253938240285059947512522304386517536592504190192416494299312591367795083182829826870731441274231992667257502663257115190235730001429679432833899789832349727326585340337843417011726082458826426823476463366274266773745281903855919180255882110407763308248606607766271653312675240950002801797965525582370438305338569769059514674510599267951507268085796723602472294214060183492170188802073905554501957528700006194541505489933552034108637400948130599296280052668621604639172095017187230106796044230378180517904022579915369620545299885051354983539406226643257118742113623682231973016020866579854576635496106116191402863723954288746190890161366221357796965571711657508987290643393750634627196726621238014971100424671998992580238356692296312048557161063138095874539757532141068419663574634433771937353139580307643408870394434107135580282528530821117012325110455537392098029688386795980038258769616847606950665662404489832439650888642298831215288888150868102178897353963912438643819034909124011877480543899279885192335429972768400494150474720381798744556104514694038046389368904100106773501196411980865892394620834040439580501520147621947683859267222760604952389961544046260033920125274193217108022865526403608131410689664142347394930796870353547977098984099382893753033315238792729966056528930883340998425287136392631207152406914631805710237172268234925748640530479877517687220414374156768364407382094043380566061138867937444355753534692511065051329663487835976363834740728327961675682503000257495051721002823538038442884172479526742689867886394259157163271665950891669200600686532382455379543514460831026615078371478609356708879221284693356972821330368937884033687062436916702407394112066436712064530230927070088070805812791306290632418057514955646849449130219146945604240383528050558652120639552082869167424868356745323764445051785370545312885076645880066675284342027753749962587901358256635838186846184645403958871146068180271598839912580628094004823596261494735464002279135319635421624787564379750004034507960850975893582410341318791478597019304499672213267684715332861411449340663597108022112076910587989801144986700992670452535044675665784182958931234529383473581156372016788426631342385031111631379638529509898814710091848663782558336177611307058451936806018184174853503832701064086735476137957184872463919252425912627738419022498861554116619956728726966922882973986119451195094699892143873467090010242099376610664915867666543582026318199325351718642621603469633987691398606868155082793215387811892731392316692446668261190028765766793202571501890696934769162697914282414736282210752969725910592188692780732659825284150876475161243195243343691772043013795715159807220174062375337237740330272008461970194704267785812823980218961319573334487601653421953437972734809988091952940660242848251815365329300340964194388273710955507115838936899244340636926107401933101760921061010864749568817681624965652077845294306232482708996974763030095256285201835596563745794847839372884445279824721780026821530981781793654213441861315276103221133743917311018034327749974224468966489376237134523391615406353363324350213680401590231085786367339951222998975753572262117247942053644219913592278000896616124345411975430686495729810106346474056656280932617261192508526211303659039609842515677781987268451528433510240735588185325530358426351203509662627823420612607053466184499694074853674852440761679566187869051318735366867456259539158500789649155463765595777535873602721232238481029603504978905793857389554049294325447286818254816726828510721012553530427223301749153832682956190198039486686921088487616145750762241183757460271127134784036437018397759031181694090652372206830985843414129515788673685124366751301282596177135313367387026334714607941461843373742747408406061171699095393558315683909261985460746035229547621635875036211446168970259748121380482066700227677503542635713255820531127754602382665450924749512068663991210223430885821033783084746478379086428546818441285621761914101159833733487746916225490738504880864682225838161122017324534278888747477640213623631279256617174130842205052443155908783130446809065886589272168855929759289732353211139714220983961317492142808110232479792954540907154632415009224981660869019588252632850054507662727787292959433941588171993154250660942356809960933012355441525513439672097189229477158822833734761508605405487226207675666896879848613384992037429214775287070187853729827350116013682898253920041461674419393603409196119338884317512177491282501195332676261764510584954168549302666094659146478625936397537267904917061941697589901058002718673786729620907825395110254191451336009480605848441680955884878212715136204839082669441573952653624941931248766433535111139402464555090035789653913541211907235339576073640588741275117419621538436071140911826103804551594581269289935339006834538333487541890990486479144721854770647636313670664147391454753725186094727032827873586623247214494429613775308688732551591947500579280608778596199312370927563832434468950973765577926405664767709911491682013055889371038971287464657738339002584398764328812237830319903160082057917306496575050027494405036909481734476146109732384870153330051958482509218557069939629841876971510690413723275540456965176310151995325122019046088129007341093789886096669097745184082983230625454738152698896803226351061758051484512940974807384537470918561571317202299641070557456728420176321911561234190887039220235142724326571232607206498454201034683690149527340462335491386972536849678082534343998061967778015278239942005458287912590013318181386537528700959246009045319719082156205695615196954936165163706906607442523485367794493767862794422467560212141132844221074590735652158171656509352071057415432407675537801456381286013125210609088433123027571834577919794979811436688890859039207361123336078122745987538768365706579237562924903377950731708747949510140020117718332511074564762052903185282704018915804115290886885115866465031984496034480541536674613807950367049775806812187802295860768906977188696712573537336897150515175568801302255042933533931570076551490778897343577019249557965053700898614941068498958081662355139136221046037907780204193550354608613751494729681103756731331600624630144183318179425511180651681930944284605123360886299420836796774188627637638407948336128932015034989415399412986857678338732076257966105778603812568807242772588954841877581121947714657013125818785209273562763416088814075903662776173140236024904285515458243030999310643773932395619753915873933652770774477200080629642294062108562015962447352904408378913242162750873949340347405840633916999469911031983209266757415846120489689806775878805768690478564517029017651290993609197753859537232362765747615143969164672975863918786377162443940576743034408030685856287767239437832657729230771891346431185198678963961856325820959518726349832859629607757070328621469077049512265897518260953942745220679782392389868968522118615134458000749240299766219447985481540947605375986997048785787459688615802619887915611354876124846389152826294245977654172126657563665657497347889874490599197413832150269474657549334755344532020438576899196533009809181967053917662376962966137128692641281206857101362387692520900388318620098947314314728420861979176716643087501460563560183283099819894974500500041935972262323918090388112974458854783876167980320697255950073959124482061190497838058577058861650631951374463903672156275319911563525846015672302850102797472481982126847773141161359633837960602018778390202049895653232949096183571776178984536520026094345211843814127313354239823949468743985689359387144848795416298401790689199948583609176948360359229935959609158236944482601170333710491012853039689016090046580295000229118298284458494688562771333927037491577562466562863109865396376956169284001153870813088188711509512899744743003029442628840777712045529919717256731383643976168104893460934069825327875289222253671588214327359711062167656954199957802984866655140932859382251868844258142059991416706657497615823130741241603380284532421741334876687970071308625173378230080516299976082685839897547062188324964091328210810848251358665755300726977697131252275208444943130285921385662734577018142468124341413135678343324510838314253875763078471989154409070718662557935227326738074097815373555929089627411409868216030480429511184469702612137544989596360399370046289006677553409962211379456433826270574317659573413165362694736241939692618629980838679727189512708379831243058487659713843507811448871660625061996857454245482650114551770698108687161290367158314524221917140510902080603219553198302711333780672775584784161969433834164052917536106092224391236208492238979698369001288018048147359222714663788109713880554455984784852787631664409741221255880459263121182693955384253280822022663177142144703937236766202825281652730572878965770079926536262949704756694086598247173760266697270519518192722859280236981624774702258781442552876418196212592073575249595115195786614836053946532150069638435236302167519979397219543051711056243547202916832523406042445136953833053924492177475032762205375620637535587972836288266592319816845892031536945045377894579226795315259403286029536371015380310846587437436023072251032688036673131785080495658102080483667213198136923461313854735324879388189632344357709309444466072721592496742508391512588825350715680825392417148038318696386557798210504719903190252861166801002745473280710755523310631845163651579424622686290554570310868807297055825768840753498119386433059058514853396907904383494173757377190669728946808799856155340772905748486142763352817903265229435675910589798055211358466915840665942429616925805674765331440489600505983193584261071508133688039156918244011537031681244498225770977684053500255211702886682899293580551643881228645482266211876246310656251243363335078518624681254635956862769660819120881988542366233304570371686412568990707497219520470272874146346449986981196426083682438511147166162653137104387747788918435346710402598042975687790106247191143936086462763511351834681794599241500900610442995392889909285215717820594289724688706221269753809655063776749727024404603228210054558829091621441077661234187552219782983598137776585007311169162534997558153909585784546109322193409360905875870209678625855943686381979613747196065686678474538583380355666197554145859822938134014972341968647740861503288432401159575138254639443637282888356080858757069367913773448985634000209649226012496701912541727583253579399039237382998059975584380394654314319946569425488929675002115009860789476051943591632259779411475335124752017405559628714088526277066937867553110371051760061741127228477608038868987351396488330170910647742614649982740645574790318182589673096579437135040620157790372414196518262283690925746781493304135039094831530931414612078094902858423459500834278003356244085542082103187064612617096054675108418510652074991337767733836768662294827117035211085996013990855993737706508327447655947706000001878316788374618464091993215639289236288853684350640640164491478072820693167449308348616786123453122359324541090739928412701811250818971150895949821381927491284268210996256893466908594511966068445683060396237936447706977644630329441166281458107128686908517284993421385774601249806220516018864613632911673909565042064587558311008519941750410771385804712878753431424342892482141840656108744870689841615652814292886318230788009864083371317467895339277100350412604176824816742812784710762086114969188986894593191732875266352769397042582891977466205175862710642209483098949220717116199500064419176131521027178034673899307125022656104545169135687845058182555647712310173377117401037658489180219779455234421959019803393646118369620206086344514916775076924587898457442910305340656234968198791235626357852939315115630938916615765962179448352408412503875173877334185550942168598822700286474363164110310050711719108058814368737487258035319848939132179094554424195117034297779527315711222584511980721017919997643206736648924298861092175168298882886497271907312474655615187677027373421524005716147731351819372845553106575768452326495670835873973869496456865651842758147303228063911290951807986315889629596337183531226126504792549870244447621881946114018046029646813573102608546283093805064797084771112329857164970328080332908409275306277790399051496597010591460945276751881000990309691417692388863172288572483586151437416788994708091462921908306993565840165553839345229766925858339404962108500336617373130052284288413256692944998747932982505536311488645417776614612788395390011907631593525328082899606792157416879014405259182763968821738679495824182429706063705644253411731162386034429997692412168689068377805760667542025968196739273626858159875268038155961847865323895592724504994971423173364223517153985396623836049479726124705927910131758327146247935558977361283253945609662516081044523589197781664264120821779491788909073517100769082328177791710398243716923171522918861904313421643233913497866485123842362661632915576269757497048569371901627196739327748776377474017305394345239716696180893488615848677513405456788043440721762967983309045200377879186538150646680682963743631679639410736201827336312636179126099271919683319431074950867513508473411778441421256587585523002542045280349211703060787413708170181047734008610586585662370145381140890660633235415982507819472706780725299231771243217106771853067600816646431849532235785879722405639341545114019145592319390316032532163344757583777191532891255690385796058099695285979312794163766810483030087305517890700556265664718400943684700724638706126643429142913000327926691567739112106535404798245429153390939978356407284823038832356545178810317793264899871992158181729371984145781900586978049489696161211189580788065091879876869353545484237679676286461942250065926579202094306373690166833341940484508154812918657377054955940350856392159253570183190787642817853010677737232545499242004487485491012410294025688850002746645353525321502512761335377151289811397520983135226151110427654718263417672860540188635200666527671547147471869771543725327794522494915208209534623841174752376841392496342816378684584538087124302336979462955358334937562905563881554885682291188478117398443096711632298355604397919972456528144061183221550536887201881189545462702118648287560450344741881445247081248468292103826703322770237183470297035418032791173136724462331438688780363547811346531958682257621784223349560259083229953189543720429121006716657502439729765877639249936140390938637716534680961265134935510599684502662890331681933943689146300694004980165075878399300661864074057325678286308565255185912952964272947397119070820157033356286472427240039510515757336026100657690326429475156516205277405984258250556517668194487984287807636006652074978450853244545896911137243993145720908845585011954106188584150290224746827969793773118625997890341318922018409784034815122810226905339803729928141042133799535250056260196251627255751234312602932947504255792583945750673150513910758113174135040346882093925598463039165812198794692153452244523857354039006013503732043824741275536463048861353608744486061837541052350121543131929450423791701600310122505208590707374987267981894887311682526457191106067657330822898410835347698076654118824096072098781933205295738565808563938031506209307735924370664517180973613047498013927758334098857494594795019414661490923193506060938181663097361400654179640329753742578734301236291862892643861546456703993389255790513064143841968009466348101083123298379195757971223004683804305546784843908600082194684139568862738524137321655170941815402512623765627204849232969972073960432370397181985574515252791322267554928222721172085449258004949692681149792297555773010945445679621546456685605857021304624127736298335922641857084188641139761995977301264977798656601140331235609582594702496709708447460759139377270067611473961415163749228387097099498284208904632779687563629721727921063724157601472173450379878636665243821984697055578180120342630908459254128246089922319630223604443182458746232094162269877407372887671150825964591010456219338468951379537993886517563227277812036453065028879394128242219745858983704502956050350703633111365886553934584029627864297022618061307222432554239181806664820564128966206602148949639056974380779058500572355256326092705370407267761521469377252698261826049642227808225354365773361867402774309842155790435092322482356625994540422668993135308533133335202876199733932505267477909360149585420895632269382420858371987708708654770279970088582954812522043351417945235569683190124951596853832892696309713365243105801355343737421571389011653413708132504896301439633006232988586464491490713134502205423293930538701542459789067531768880615397708026379449399219139956053428284336910623259622627233380244846288095104993903550228776434575769046234808604820893292286366222641659137140492065425222495989250365506318681576205362177077443230290960921992333747395666525278550893096881735778266498364905245754391037515979694687303622963900283302986710696506008574002647932458596218090062224989247045872807607178438015833680288666395415831728936193004590117118369113127677857188153996168115139894385019146341855322516325294400002845618009938692856082350532198375759949157027348470550623820655199988183899384927696130218595348402641185472859843008029101623049250114683729095309068667362012140158840360758340357527197417523118894813975372537608758391125316818422081047234423401392078896146881425891372406733620543014116227617262805897776181542254351746874059013072611699477221439998625924388173025465845583187338374961315990153514405871862929508455573734035146874001000631675837576221376535387367049882281961338902412366046148467252475824349939099039090358314427073546106271489562711781689978750589874986340836574313497741457785853217379291981676313872190923934012437255260597647194811477360066768052459429274432439401298647389642054790120837204236111862518275907381727058953284677937130599635565485776235707021509350084335726194654499401301382087227053139239432370766758819837083007538519426044931140192107399006462448304536765962074097820008267695234975006645674941838526412408958802829518075630019497261786807934511800753204888144646636344834522777397553890025724720697373375887060959910428782604895041976806241523551675204461107415486421227714492299735396723986089030173752018849516587143120564537912371226629530061830614924530567631606446821294570949368678580408853264486274563695260886673527729883195511409177644864838292139636654584462498124506199066752543172419153187511604003482661436607119387796183523481851760512734995934545331995174307982548870943658217953452125744354446495310841637950267872269421380119618803770104959631901016403775950690749601514811506819629361027976261266695622149709505338376277210223613481814155625417902066628478832382715688977796134402851198504896880498911620072012196232728127818441826513732421506062468139338034529766551070109844772952511234563073364796579640647483435975834769933429136696199834773531961318049949133606746505529845349585426295856516571845305634991917752351926572176240631936873047081797190796730389404490348682630399865630013611283201757875684881103062326358267667287211007463906434585769680011803056904674445605859889294919203196475050016570491422436031984380891119393941165860260572338144040714307370464814913284302008116665323608121657612919988026793343897061058116787800608831015252625025471165620833970410370017883752837401908438324828142301826098027975727171091122872659863381481012988392831031876958097594284990126104570072514349406880956220672500686880883536982074743356620040963570610323251044854216824882061934181281649349433102054976762300657047990975171537523749841513891429331303762682732203184767732321240769281321255989049446106282914884690474259353257895354746780054991611009154561795450783299215489627505820622415788710071643098941486898219911800484663708451524354845430936188375034691691540136859791935491566283146925051474244564389202358749264255860190509495414822637807684638402123025602973877433237019465957780538854995590605467349413122951860894856944778739421951256126394501917598647630170227971060989166214028213092277873117049260699286802728681549484370338600730371656165906729089314037277876283547168438855431522547735460081317109292724444632266703568266619906469948126254114875355656087305558492605087097567021400869721401731702636388695447026577855486477168347279284615262840235290355601894594228852574558940292942434607344235713623883563695393613167097041580642118881889918598704073846253594960105642206777050593449199382557318473044377933929930411363745383966091324003806575393760932139995081479713196393468458777754658207516093916332551615265281144282473860761526083953934490883095006655414818277307393665225905852670020960544247251383693250149601963636460401635119176374137158571171980691204231988155201098500682588500533298926108349877251526016545035428359196907869501684822697108218930767960757019529723873519434685346920602717647726913847937838180594214216267715274212131636603043442946895298960991245581972607714656897480069543175137603082420623160477422039616821549316284885487181487321608934894837382559861887431396970265450746917315347950459523016508165337849039926465163443194374629223434159146044042862079934393099938559259291531606171623029173802193575614712082665441051624139294979274542422792963502196002424198912174981693963232527418724488285683462326101195433787732646382416233598164932384832731727868307504361235769192431455903124787534012221580053958327968262640737063788506213828383166626209562933056445879464167611771459394307855377420746932480350092241399721512923240348202232458849304155589717311421792761793881448796986444727125209853362438174577735813800434224139510951048688475677232241261619856784318522229906322942097373306428900148085458100783125284424394174955003154249562713489769047510868852054616573582970683132073572253324140425879330016063695457705588560338362172524215468419654145553348197866661543750594835199855701206032831173613452069826029682444450277007416957467838776193346015928131955385696084006886199546085691373752432378185458971319565021887374672836036428898213180071954457198221645998999649129350039001985757175241574285699358625721931218735153793008966301943204609009202429263318590080795960618535031278985867673545389908492745056860357569182744415220488719623653211023203953863067498137042214391268191827091154357208311963011136291140200566603578655526723664995964123732776960855983105893455316847619481406521296705062776726249693178037885581389586019259687188517010533509482524108745615028819240461442558096929155393236208492509607868452429625582824230516423678114662188771681210065449387048356611544594251529190947009405085248347165000360396103016089807044740741206808438831566742590545128005490962540728762953598499443359841220199242841840235470436550489840525401052909275167386161229822777085138366627729548014282850211706314899339051343193328836682384393614969296174836223288142398339887923903994734253845654051848440997948135563188336755527664925554990002445210629463260612722147504326962701131657285838091060359514518047681879556661030450521234174544448596404485198394839936666238756421893438320275260230068179510067964655203772321204648088794708937411337733194614516143413486243388100579444600106898300626915366060146248894995962546076447762955152106195495491829550483588057444321564230707682046268260346861223524262484179743383317821540700834831408504793549802878831725910850544922354790419206839302410838628593204387580487734098566271047600150098258221627696040414203668772760188839808323160834390844878029340930196684579596850032795734171342005321643996171745266538830276980215728571684487018057583504115754200435408469624751478580360671045210782281507211788980614035623808901088688544298985449797137949548950383607958695272572150136315016151238354028981122567447895528638589352952121093466348104354566199720959921240533566947985595594877999728855483537195471614088286129100522121918462614746136181128148771929368200510715542440433051876964471269862480005426780104274783192972552392574584313197567908613920329293286098366145391479162822820877778524028105671928040179392804624174195078364442671342344731461476757005685056259786064834192452822750859796616547242768561210915401751775075143848127903641442439296958885817170029947304890177806155691844829077960746155974930851059258872184153350088709282842031126312374445233002546149400156162492099949000193600291920950746680922451680650383496545353381342375078556239124150266708006492338782752290001852233869684743062292422775103088278764001474455737674969628917596251025792779320484552704585739868425165751895898138612021325548044416563819944226623045394289321151293133902574555380935842862155511356445103696215737623441088239418778155884327020197366535041195100324394745826375100439064301178069538720171086498231503894466936640543274517326797613475497357096539779133429771060285992233186033414398277404300129284170599944040839949974611074339970659945602337066444066846233529673086862121828092353603569853535951600662248921284710179142624200670059210654708343779765607333091895054510736703187012348646957509107519361574290891777704304208894815165491605114054153006213999379772411293882615459844125794897399195166861152222820603883913023915258050470533364358296993978262943478029294048852134291413607000475045473202925395294761901793708741169891543964395450974966566215833078628152206949597334518775438175210267917707124061385054436053940064793098558729721821138899191949167351680445698761239725589925659328925778628506005211594060573721092288143549463079881860802189076506958975805391513580206512175039158198612891961316447608496846713621311600285536947271942903798699564573193625236841223300305019892480448229112839018013313696185014568172452246097687475379059303810316118626770945971503920866355997664262270696161514271875218896167093141652748866894253741686205779823407835282764966856566581671841638376772008522258899728506603499736760865609107170404536399405737900715842180681199707934502665253308574546569162675363983793312395703901623689246951220890473882187731560662154982455786790874601499076851998107225207647175194511301827030745635186925965281942073114882985015586597069411040423647487058800898397729506707943444264713880095618532265861896845640000549060604700672411442063931557334078768528210886993450592666263110499890896144505682354695926078542672021299629142277889027634091253603857381473340869846586933306673287602690856450814621136215186172961659934402041096143727528267296664855731891722603121466060397214831160979595493169473373362897745904071295875180230838385888538376622228116832647913772929940349876508145261547134885639589801432344153551821942407152647334817300715463994906658394479153993428636156945563737520901349854282462019133726592927088662475715868288586713825583865590517867202922346208355822313924243677987819110679004213356761512297125815462728949158610225752201991799424576157553952618427229491647042292651136260333515568254138610977040315197634592032924384645732005140925834703379137266882214848750951419171945303239770647899292955608917606836641067888830908015343594018242113574905650946127744409368759480241491257048336318457806483555766686279075788932230506478477303120462214553936895759997739206382318437906640432809054022081504824558472684100262931015062663517214238505058554659989841047612369998090211173767751835613222236895058882200652260662868736164324133347132233125293941457048932221232340733487150666804025922603586534588623270994708311361327188723007876140163835884204299738273011629616949566568007385651987801134643824113295779287166372544081390810225694276503351429711120753371417659243379005104507161979822144112167802454971856213307420375533608222535961036152109419974205453874358749722466940906856304485966866620439167617210278691852348308701589241250428927042566104644741750091900860408908250156284806694114392704152223193775364356084545785960758347014340268882601862908887035927907668543685523764448372534305904312263408090541314026965935055798443161171246331845526174696142705452823529842325518670966790712861459659557730983848575200584379894042886207109624833008421225503866542986082225928892770278031477043931206315411380481089944846683592126131806154457526285372503406094159738282518710893126431736553804593700753053876294267073922424435749110547624169043074292917441624718691746191189739858387278658329839112292746664982614352551399123141355323324928360781467409302616610572189326505950535679725844011744459747735308039297966857267256927570013005484815387513339150382862726693055265827894317666157669724729859747407020516820788038578027982480277975651457860836735865963581984818819210107080047218696133283779094755322844678006941382031031926849240428478379388440615725320587433554358950149851070303700707457628417089040141176716884519474594089400491862181575737460648894904769314844178148066288704460940292553691279664786787718411104567077480382000607165901731472877543704188014934884301025280792460990332432144639293096874048543237375867969136133524187416295791957951246584356763516154030648197422186998558562919869012192846507973056114321767605267112675665717676002121860576359432914702820422443956924202213468721022165588268439644547412305698858175430716753849429334806571216294844842013893275332354511942975007713783129738625119210923408450185975551790449487391328873079100752001234500182762935221907651705228203792798438871090062501934015720787311007723632325739672988172895093544455877273287902571396418808533519818750631988896560475883004406115287441492312269216983329082153462932075194238836313129834724424429625600645913781507872948561551891671381641604852869354942580003245626161603190552959677208477914070771309256055047785850109794720433822612600878452153333296897302758462342214013329741820170272249476264196041741068501968450128712360199319747150406666539476369278481160137991404431050438954244879783625783317252257272165504240589712734359637002514050503485756959828349815945603999064958882808274555506505234468179313672709425560422059426708218272371702251576410114839162941230207246323629345278871008003701514413170772406638364642617413084490587574030208737133942309294761672874050931429421993493409729536228547198246156542099242971483375653181359037157670509657194785044547898771678880000488837837454188614258162943031983679902842723681311993587648197549567796523177576756745030491530954784172108169148880443488398563987244227735228134788724609841282340773035550602698823611642522193020172938777569909240997742946979019462722061503683910191409480499549724215914185535125458213426340034349997860273941099861964329840936652240621234154904696305250188303054745162499384011834640706358314091126717248480451995831251841990027684381763241438634301119328537849789654462509647417021831594353115179651736020602234152506512765166193318243549006336264692379445759267456015188090593962184311186187277021067839579012371495326061219354185631243902992829296196661337034988695388822209429278624178876211017570816975548864541897766136817722791505460489045762088400442819015035654617754110828195671467916142247095700734200396128812862572514725904688422599669114086242295462197736019914796807821907004637531329971896056136758057170332296486290747431087175874210315297603685458228086359123671893256180120708424531121167904257822426433416300938307209067569211792757369544112589169702082124477353203663139353276398286833038714607172763835576954396996208645915240491279936437755774043548960829422151251858633528105955355305452874983653309767948895782381930515906150540669222259568010125662025623966905607989141661207896268109336800630244799365086602628465197981840175090347742677678448119955896888595471866517927570966016814544013100957133687333458493786353966016617572297540356912982537179298048705102361858940552529364207679458777789845646298429330724177900287781778287859580083594722427635463831584882367216049232168548729486999559047783897322496229253328616633459272127028648354299558928292516366653239014385267236818641074236628461686306832821191688400084538935229814244908366051229712097127438505004030365160999752523466478546227462908267419851589924121108725552626581063974530185339728438317131032549387074781471422664512576342494267227161173590738537785679470737389875582906106050633132825919313198025066424178283427957367202958229594459989545886564032281013362673886518236275868127309781960453363979895203542259094809764816975815774315252333508654410273957154273160125403549548321159982309071688849481170332987917488103606131613405440232177752957354506579124144435792804046084348615647920988733928346501644577191671122411549051044055808756241262881832293174311301717816390132834700741995969429480730586889714742596115902639620135600817955740042819720631307205658242427560479526440695365574816999896004477655375855148034605754358817254611449716157122155682428337225409056947629426406645267548358692136900838232332047953289336786909963048222497447538957331310880213119343309794729988026820023011928391461283118447357752225105857391898408704086818146960243107260051252076083143937650879693692428298452384073752737571744472457835073885624936548337034998683569079046077708678245792900011882618787994809152283900350784511278075288668787663208438855342103031981808076484366404788517722758275325761531168978009720481738768535526713372400771451623709245925705096109670447284604261562294169845914665417770697417888556337687230080836068694598100681751352364037338633719483188987577216021146202897755479726144725829296291359428217503383050251302260300696302462840809426511163463572008793985599262661139183690436759062878565658796372273524808984170862811069057408979151799413859255384134266361247205745718495421594904473868624362879328793452632742248979049743343156838081062117454688529217428356620643234156964791608526433014530063355473456472761848148472568603327108165803371867081936463060783698356022762791481295946771035667520717915392785684544626736799960165968697691894321044107680956350014508965395946477566620703555893150466053986452917676003162617176374058609333413810576656949739132607175805013764075873487575231186321437496387894773839178940994475837099817634976928194443365575656357792628920991811661587390406771613366133896244706135826056079350952087847357380333404730888484855158494060061859785193528689493883851391110464605571159225268399554065096814213492281296554952764782430850039617929009579167139140788829712418900226268461926286317678695536339460271679521736889358911490678354720381201886989614380676745126084042358141075139472519779429397825893016359639761603551537222869772268526646500986444052503251400304814073056313211634420920700284229256299148877788756393927978312187703790912244587495105660393023151877811611990298288301709615477157990804900659080396163383273838865431486643577575938034751552839096534297000499180186230128730253310226803011202997277337451738098899391987179791754831627520850319910754905659238696292114658800876873811619161397245540499761459743386443803548548284927611180273985378078342294674157730068305230968611186123402955222518995873797951348432041507489084008325660510106811297272337407740956842111923588900572317327838260959927545534984002298426228810031928757258378933384145195676883574570890107039839756015574786532337644541084335802078604117431760512838073942394469822111823121377378374375057304386559325570846493341351184171669017810457029636408688745852048541663947680737131428598827439774736069714755904708108388133181933263987730340874483611476006859152712148204831797504573580842199233980223508508781249864968596923515399580951191866536553646843659711379982036510842163681988818560715371663380079913890126314385236779853037606347787728805547087406457943364404001711351671841336301229938364880386021064503221995633876073270804060824877299249101861728013977727487282106513362437549567694329680603804530700337747905762013721332868567952533520989903837182544849236138994086840099767839884029822777082913720337978158513390654829518316281669156625694248740985028541109014042044869859430326371560538565202092249834166926368957124248255411966464870330119462904149894887312351209960824630422276456608774003569860456020925995053085036562179241696222096747583299671195392051723449780153444033016522588114983332082133990773414118942448247374865597747172414913999641615405163887351285608613909296723282812564923905291446260453248340704642055734501135574923959539312934858472776013396480084629572578615252730407181723587094065290159022040171189771320528304747349748232362222080456012720927178792012318209197863164987285760922294181700290573917833588715140659408809393950603848035893082593271817528660779137347538910380665724523100541341342887454304654819250208697068184324571923509632975352097155230330426876124334116652187538143737245137142034637735210892754544490397823380020040700116733298770051458055681981425787923058812551130948042242850589276443016295994771118210186456112230528734133641045635463139132825125431098042517836114751917215021719927754833262144773762835422994905431503182680776742661394322275003027076252024298072263209405123452376377789337002987467186043899555288776860650252175581925062259331959309255822991080495303710119365490268642271261511236085676375074839979848572986184185205930674799544589450052109298331849929156432561379341935506652850664811138147383034371790452560265376863210447075694306957739205089681020132109949596120203454464200366590026842236291575056819513901892084159959518993487540266267509310631390749284648551585302307846854459003510817483692742639571230286480031457505857564973378056521644093451354777766753924067955761153477369406204750729720895716135635883123538709745309358732551003060799833441616966982621915029585187065056407179799797874719413953669744652552098720026098642429162137893664876589237755932301578377865270805711177428427344959182773428656231289365285122471600887664861119316973441474498326260245142353917046652550553020007322310313691712702771395256487404046140333500411989618795083260085095985794881096416620275878068602136727867951756653746976009658180618220487634308662411943955125517206844588840286507611773146137404429290638060534356128628784112604037374368889737675483457152314908005604660676772462849992826059094086371666680816392517463229024460206260693085152653368771805089025045592580745507702158256359073472431129133032392778899084757057557470422133004830762294617311112508032514978887010805084438192096948461609394042030152975918215855167818280466772999475669605130944881471450497361935386409609371173054258219555330153515444131923239666307656366339679926654159644040538014813965214422388636800272877260332741757632665570165365894620683302405493401268836845251088104048290111383717802968393561314420003890564810526271366659884569560100600874213677950273391552638039983566631069706000475104216531100136156129929518740227101410153903678484659713359416513545443411522636173927425851894975160719062292665156428308807854514647510893921612999803258474290484575085175458039388280544498451417298686721734482849598736231979794552873426341995230294815646592027039144967814341696588717612894336868333241083829814120251290325671861503510931434282887083577641679134567042288150460221544546618584721809430199062285214657550460917113655302194795677719108264084180728733977993328976795866267338544792344994261004377786738735307835603714665184442272261039457137903071768521898036104959399354550939356564445741772230807101107337662091058047652636106259311376843780947695327830498604283837990277201029161167922192449011898751725249942255741147006704276280550888471736349816159173010510475285027881887152271647431458337007130431961292156375659356114668787607509311042739727791846490389917654593989267566420639485584730569108915599817414452392654381708260620958360724207869842665319541538053734669764949889265489214221312045399675564820043333648929228818358131990848408208105026472145573585855531154748810079455643508190787789461400402685674282022758283896729186964841352104321464542112069034195703454305881883092250751610334073530672173604559957756936798221040286616970966962557633111418521689371951337976824657840477597747800705585135020171410701120076209885706858381908038598548311847426420041574549990884548560085315324737049361126038228028786697066712290544619619866580159366874744839265615539205002794092754580497914536355279403997058912138114099732298027846970365954360400337339910721633454366040863457130963324031449229402515431453161625277293463328904351958813778165182260297106191977967305250669015494091910556474116969823477062113258257098976280671435197884295303783339605100483480949030924499080126298788088888299358787589677527207019785521182718998208781380319257740836486750869445536964688710301598179291193160565743450245490092635005193681023613171693148132012104743748264133459008562346799714253097454925089031368655849115025096793171359747497404896078141008422682441815495418589661393311827456471361470208278511943458536562238439983048045325798624833754262142392225177507166658269486961702651563425438049850595486660996944959217731370154030516792674645303917110564156481675400714370294937800929410044965148855799899037407180158051098643324249562412142457461330420375093923586240232135627837455002258650004988806706440805116981174518855805741781110248705998030988892471822112792380268676135189923154494212677847192952311379718213462034007997131077697629930927873180088235318083376945928617296720388534479058559981702711016400184388885035964159973121745550154168769774640428126274550295832161651438073899792384592912719362187231075683633779220268597153593495289463673545383827317768920634280392583070459776249339293577597544574933636384250256343629380414174215589446743029902415526030081119086003744677067193896031884630614890957472499200063674115094163198797668255984493296182761608435954188708945377661827497226018315054440077892251187833720659665521134701496067681199845590960705617998128078788483717725840008333576528251681316070780462646166001058359072084854055231928301635148646423993859479977446000486527603537406654189065417687358982989009208372034836224391713233152799266556408340471668692414854242083406675846353848079505682752980025759695267033664868756006129761198045808050984243318092223952628772164191861530437428083124424494681818079646407084645301364606872433924433057510176780578199256689700783948711089608427984205890374726272807861660825023443887128801918859373862397304709063370725247344624747838079895689957367487002175843428539241849238830677612926884578529513069317067239291856389622471505127243505129915928855239271117758532501459434205575785291753379522555597364694502914951900228823135181010534969964217867718795519034520124860926886719604987416698267017591889837970692256401626832849097226897796638426534281172719442398514386797005612120277683512932314032121076201972710850067228361467517857370508705210744200829024667884682651382982194055421943459770166409701409325807376204374508919929342926470517486758991111502238783963454716877987232606013149099522656906101023233895181640005763723191425578142679217045568416671795938587411854779623701803550236104621227053968916320419421258921018303797610990629920123710785564863319791223207486674762661682016756434339845181095705192364729324745996509049361371810120700064475717144681317218424761701427073189040138270429486256572719448635133672919951227035803124891625774975256143230516834074170350131924112732949773236133923139651482859670992112851478831371125559982391766097945991080731912114692607453396315849896703435507098193319766012916807564382148292107819900181880335589897306980044748110878646586371916635603374298817396807860969247722671262659265452879186521787406939145564178223567182053450299051296395992960542509850435291708892398072907271047162828267992013645445266230571199325228871046596923604009838130117876594032253102187793619009478033431733135327445937995529722480623006226030787282095955606663817115385351812705585954311992472332045541678413770791248831131903994752886853810206571547201075672648869914084119237399344172964232068804071035008335201367310448642817822814379786745374478630330862844639340345857533918600708992306550533488593301824094764897279552270414096865689964213224689251988564856286581290765493982983022630351104034673301599276866872695156017530221257138240782685713970977552346992352352151231828519024485038911214239230655283575714115753931609121327394289005352135518715158762683227885207059453529579433789163637563710922181905004519748658087288392871650944150631093190012746261543604170776105792530397438468480154690427211267755247766771998488101181281668738635886698870347513118806341211400857338415549342120578272019916946474047038739364485192632184351381897026010711057545217801873295883027001662430875857104901231910271266212198430701550805875138847048865857605015801038476954075302123043600609632706368765853771400669698618106104573247720535274551180648368612414070934447555544558513005981341468347936812982997277913945663442531115744023705843157705930152424400958913860758918874224610363334377084508334055319764275989827359669633034843945181876039902971230556435889804714757540008843149506510831820347461767134953415978870290773074751370263864021832989737597735829299421000608797928479077646777557713919924334415559373934437021672034384968769024215373159901503851862506967174442421584395923142300030684764221640260017946256532673015313935970016253727384176750499665704757091426977751808125507116520893447916890609702753683582466724342150293780532261450201040947108478643364729138747164049045755787659838573727837533396906929574503885449191894313910197150231244260124934577095522167001901043517270100916893539310598384442616068504302923883066867281341984766210249668818769889603319280843776254194147061991273187609778291206313447553719258233067718240771250492631408773995899241652158269155046863113956138530849380824335244052268636973685210467004953680971116829477928994931097091839376463236433054735357580320326326241213923077212404974737576732955320705971640405025936749127010316747688126089733195596790368155188834492330294507682799407317212662672165363060723344993809671089313857445505140707788566318299025042849249392797903615138272871240010961097048326116056578193847222777013621018762383695295386452077605207024264999788921748981018934620795081531468601419576486639262963040591455198299798824445167655279103789327058027518525928640099305060772076322808727514678041733669677961962924128171659863365105378099314144291017392178799278409034367754668957413593162995449621281977716571177660135742221917577510480416333710860853668311936151287343838027589061129509936131864388016957948582739198715405253759718008053239691591519946576951377798695735020223633966579741893372662220810182809327997831603070993363272944831077590394084289916694982934898025303037600808791295275312139883033365456027316698850856098200632201463488944044067724341917735043598151207034410908563026658269777075865411650267391729137998951798889567619932685468654399561663825145322985569510855081552465824981600988679274567216169168588384320589217924411744957537842803374128622718213579921057257555627116370970364407314332019705691008039736774083029633410990698387639990335101873829265792627285645938785975654709008510354171859051798858805241887537617633691609575404554509898991675727687138669372371731995537826580958095060012692245392568529572661786245127145017350956260433765128907191560422545727438186200976329853212259507846542674792847352482265966080220377639664869562468137509067332641147181749248364817916663682146262712446821969107454727707145149528254548077780297128027946158246225068784794136738314363753067759958694425330503205781429033957555488587331399794879700749763958664904772800328855483215227890566667620952804871002862394737704766434234298024987327384989346544262873402103396934592309412982724925943450535386419345698593109560250756426742227707614757786472516723344530264453821319084655338562534174230357013029832239295817120813595985901309132137260913107456624391375179974111619119317734436159179894031891589087276624068385661371266783621241497580818786719172669821087182099265513437538137860115569927383457652591496939352049811410905061871782020692758921254120448838525995305616628646534398529373481701389510144787078810040916494208042319307958923362135249517745615832634336466016868360956411451406227819884970955638856152907379540907982904482526275856662404264164494370796208634574154398633441991606094567982735393604976264600513768122878010617116515562056387041802908756059672675188160986680477754742520274311115166981420298988193690983223152308663849733652698283429186813668488127424502682241817933215673760725073254349984113010137943313363168491249112622900457412750497236979325178733158936362062025071867742214212633252235256634877641269840523830929896179727615176054156564442098143574390623035148799875835015310558356805108718587477856799206511110533055724660325750946214658718111365998329569143192579738657560576371532276615016583722979861744607263965699192202271286109293605324051122815059269328977582663670475717340981005762361460785422511540913607498448295468350637522195639865263231898918902240448160114408801085738327127431988648221893462269322567709521990240064549609454793795839922235503298468680378466374690904271402923021811452018641462607456555503122910234231226320710492608340394523438293023371295142211483588221899398354274467653535727828247917809087954537625339686067123395706221142844455371766770582254664345694943424995048029902199996681443618502171614054481769191946954850418963286619164448171540286116557101678301742988007470870241979105879291693954046360793173567763745038139392107602911596669641438546018103582112924054885102407898983271496310276806596562313865597524732455507576649262580065427194811852694092184020818577257179206028025502575184646117951575874095672315001790667390519930752160585013700957822590488560778320882910824943994580787301982724470001405422046686068049315997798057305607620405846371252878305978581856778282535237250486443247142124968601158321296648149856776702878909592922205662633891801610123714509352912838699159977066919662143902567163029539840250089305039779836735475205242186120181908878334343602151034685095183545465624398955157185679187180729825687328417942832513335008539290252691720397481674063280577675234054725044902797518560706696487258210704418337785585284822686234348407423086211348890608198047558659400194271896181352983677193216743756125638362697156726555172125984921058109462584115095276968825296692257648333317248530419403109281595023454420778326848978144988747856052668276774014394420788988020348051182841232294444242259945573027951141867656542574658534639332589489284973896034369471094586773613996493876306844412249786316975783788527138664047830909995997065708236651613285375325971158001370045621469253703294947939599299685192688314733716178216309614096579371423198793883556099081104558019142652288189994509767223447629206565784011756904990218439794545669074829136497111272965894877662504588842640224178254328124341226741067423546105629902831955486052803658293137962732339545105332283762048388191341699383808554262444543317467561191635488357545627661593243975065627668611151444071937863310501310486510733393754182546595938914491844551500521825738760296420133825297738212627084424144101191501266697700344495607757501811894877599963691788675824304357263823548554054555757435410337483752980609683731048112024543644826068778695528803553747182581382724475594645724021565514930863144654897683159072987124514199332487895537476133927659615293275887092515423823118100752969925754804934999784614952594030781549552179751223543289651416794752954325305904402659825418797484704940485724473759678296941054285434455434561723945445343136459265391706777914041197419818508634845228583738738240677381505462933207286051973893974681286176015672695850899746721360838636818661889990212836894531028102679630082135984085957374466890130627621106467962882124902912079190732926448195450221519930259922910290851569845622917721964619576050582900168703020596374331430487180291741214148262039581305947225041981431175572594436808151304437440880271092618572345183310388955236560411209720352053109332590806968686614006091277049193103059637396518945201070342678333104363451715981807532468552969195238723408143316040454598342315689228955525519735139855209999270499427419988913492381484129058919217468795192927813793523325974433488741521502044386919590132475345306610897423010486156493641394109571907272724908253025076622258087209052096451540161070946049007862195810677469521736073754277361240458055556597014786059452002852627515424504770198352277499896832344780304181536176879652323533211001323816906208197845311682440258732491104311166514918773006472962060816628578549068697542372104819757471654454167922064748765827880074727509121386203887799262115482738585270546381374689054694285007116980660246193402042320522268199082453259301890511988934668287722367462119337957831554077936567605441520837901647168976059062738630982642494694464923195001137186838065558076632761719722151862290860070440171318418588430607994244236701060565038581129132610659479295015152986876459655807260942014189025229040770382202217176797219747413460333655252311999703084727998018252846208670307004306311005349719299921888779119847746971892893390398039461741179216092379981516844342709438460482086675802626225182543645075385085600945141050122163138695733656122883290445757414989564017034111997558551532357814080736528983875681975478873064102748041226021303473774767303601003865862413386256615027469696870387684719492822829596365935472170030137262276425540943732390626171305468086642920856227053142427692356831580281280219944149239075737771074530105069505155127955176107291005998760620562152694337098512715998260117550018754340889272734892654985762557895694669554997289723968538878570590158312745936280230081871112506659913986819720928309435449504673425720385654719761470831369974948192516574193441198760623016988565998367976902310750843869015398096456421639828356309758936376802015003568088922318353415368366128813116820153053955268795819440392360347954425039528251257813334317018294472269565773414086188791543493362745411590034838504146242638310501998001876319185167205384193425952525071492419267879604325409882651765122846090277782096026340237225568852946203780359461193880572793861574664007619696943077503991260920353851081703149233812732947479261939259287701527686172080938586390289765993565179346371245408640174919919627140172549588396291041057041884102755882593777339575894545046653292302981502354941903446887050516944483694902714130823037691466537526901389770395601946528062919182774210566302947003681399129843174341577403221602555648195120311397892082134347527312828168872098334578777533620971925856739678557729974241728997791455216442312580056394988835853149785670480611674725166327040667617904991784178188597184561260679530864191889846094089771067793920230838814825541245866152090018443785668622738150550506061104125036305165954751746285499756943564246372192776501793676207860933312629215834662976593174495165237725382205795448365598009491861926449172438112710660812979446202109755253948872805535552601974651590516764015716811524314137027886964334026311387264270629622418192900030312572769025869300804303084418257231712099198633521722838587906832462850833822677087849069810529311915021967193908458976602950261656345966826336437883564402486179287604614049712640805164116476623227295140853906967217391189562789096360301397677896396269383402911083432114312560947785425532977744626694928856029313052999970517836514407177919249616457526556326115027522394958278162159943945836379867427757120675720076302870241604701495230191948759931199190686326713038734142262796255319489906398833578968629791852006427922215407340065569324183255194544793642254228381050286689560695434382104145376073796210852076807529375840918685787222923575934068079514164617524367870084371689001730137912031402206674416915491691990935139053772516734303225696682662137647600089572383816821631417372576411578989785963671379658019884629918886419103097202317872365756618127948413062355286446537765159603341023270997202271819367370380049187611989361410985229318086179905594120983181737935547118911578560700496683792294176118889442881081064005925046930786122489934827816424544004998793576659664739296920385136246983668293847769292676301245516950927742052952270478511303430005241563907961641374049394747100793759104250165974747083988138978161049011696399445589427483882666227263040027395710036328095461504972375227166548932107222051700897973923481919144220907235686857733203890723590586750727512805671570912746690622987938073624210798263797777412891561643350021122007833597903362585855864569051298529216120411673754347671137411198612073587259812341511184124628147358856566577346550749229721422576377232105778319507687230639918998956965546281096300875448680781392567597255890977134865012361748831045475085378472908714604144294801590445887568634009555846375733191742972644549727493117314015212015951011658725979616940872242138555154698152629054324124192420288070316725030635360541340626209269075937852719469215130612946677052208306703176836202861415120659798679856553212842000330512514938715240651918088181373300126415150456004348646914106674882428048370650798373486349869979518287272613291301603571401650813060071097591851265693864062919910307914855217152166334628947523965279849200837894960995253563174989008551291450174290831800203937179754169786445396415499546188603550250550805432875554077771824648895573993805428585149797266467748287898157664279620489349532881749346002437578091933806675112903808325535918995502230798404826954321174438628377177728477397130105967839397050324542189377557788448390981654237494377882596728381253353342908509514774882412847387168383230858241051995452033535992625522653144636072800755870893820728880623125021583938721141432918731264801684693253485870355001557377426637287319733515785631793026772744923579006884904182272415760091319911275131278046237044493698596312718158908247714904431133392063108587621594901720861106234688422400454203937273001925385229263255993413110752689566430324253672622909187633801476827326477428501448667644700076143841602600554751882439832893040570398820408997639126876465822188408575671269758972225590101830559616112836992179932716780834320719691096825882561330995921840543364723629917718413157498905052419681663350041243126799905838633354897115845806149960753483949651841323100303636803079706631404552028255585760094438259720937123766048772534535685002352956725549571014408520062210306885666698819918251653766095245429247940593040234541809110145593339781155129713369297054074982018496465004193274760788061793658537922221648740940735396676192350505030924133074138774405302216521612132602918427055309005781849192641712069696438602066465863798046295785637341156957633614647418480049022342986705422164542140686881121392184592225394025344470031102930999121698427812522667303833434954021704505232413562632284834576856401655278270899775794986210687870376205796507575775256392241866993082925265198692104730801123941542773575187144871784935095392359455897884374371111683425377509611695398548046829582648406432220988515021911526534092680512224151573226170374231386665699051562358848637708323947214686348723517493563672534750693726734308238517632377624840440593324068044809700065750917652208222092239819897990640966866208863773678789032849151593105493539462478057343693010222978588048191916072567187243237170073448893762120191129594448639111783966381836627432835933258851136422836375611428720722903483389914521835247435951803479205136585371722741282118014060465170968682987682027050905944450982732632110273170837446493886848344288939484622162913649536969819058193110593440848284132295105189147570838727702530597019851795961929957189400257654424550884256296684372844070849294925252084903703901639027915173380870659023969397923491105701426517614967946134991234516726245356679417882496521909299498990886686253557368444597996329887166648221285117293190249973092378435968647443062213942889541846413567898999397762621329962846021960416746684147341466655343783845915717511439269575964852991754703927335729901011266147751144135002872931602349166017699040702489879142344989194552872878892715442975665631545935049974482105806829969723418056793089800537481051384186361734217640571116463016662822062450022909772253442518384415797772189520379428476791794373753726969006816246857622646532074679056302745119138826822874413462970214857209531133459613793231361183585805057537737208010597000109442380240363437384070389924686802260314886905519433569039316816492023635463445742875411978550243226512393006880769279036666088455793374545280338956371520652194580401575832384577922241948947939346143659080350795639447892180537177845082927651492561590386436938854509952728780438076242937230458253127207201910745512344027715863313757670150236551132866980848670197956433495871963911076155301731324195078674400157345026520434794715607472129324462279108068225260972823315670527432338143091900777483828536871377190665237690127295510681099088391116463773892233302163757303756954778726968120546621476770791038597186124703659971837252887029518059215340593402883377100573649979615694301935647863737409894415431958650862624245832405760384116451372835064152107579329019434986075689839789065641080584341944726062892911463674278885362596979802275677175129537030346927537540353403710125406611255807640988930308014785707637491313330455769880510310336376107169398972088500330036170610077887183869266510044196775099157767414970887391653415198218956782361579273512954982130237908774980722137946534954570414486874923243114105085894512701193142072559602026196207301282223863603923279387200211477872072661407063653329378176456384093257110463124127996637582015529719929328535845579130373391016006161082159133084009123331873956725857456429843496851131227730918029102112000003828768836391753800412150419748883294411203114845644623505792769963052004463590372046496811786452271900655869146769313202068303260822908864826530550159135062383922686816273522321198296349519257542962726651420473715346489955582885359918584572595625455316505873109301232220077535374934705762480280573861260667568543020448352824377459903996386924932828912029652438513331334933428975179463706976118593140774243849725319338466437704557830152542089602341868194280332047629500966538201754618902108157687613020441553778024421934274980718967140265540653037347824800071356618138815037291252481293169329029576461783730222622775286113341330671353191665117292358309474374453349281632505771935538974721056100203493464572537872527211212783999578846428360187771624118881447063877446216478544293973713258400036907538064469611939242980650456650358792803316515521687668826522830932657735998431144425267887541003576211658975312753751609842842388136601317372715852516201172278299892714828737480034688632241588997100757645847439809866409736112758541948515374105986095180311430336744496228627144604935936533355303527183826161935198793402965794668797359024182579148440478731147010048277556821405555128790655995837834090691115524890609299020027767229720485760097857819166551199402719995487650895492550959669447260762851600052594687989798177464988502604723824346422718514235020157052542059355693638295246197335379634845432807573159033014993833134642241463597799904902999864638617878994210794956709283154787101019252078909116471875158771301669901370414430715490470182631754485405741017573799931289450511633283157878360733078329332783789724017867180135705213833117545378856031318345085357181710520413371540925764113021567016864572901765455768207128984558704378076468089538391440742289507199590709295137167192670995012821998364041080944778088909415718472831703155781879631206034841433339121071146761193505483873211567774220531162550537850773343453420124857496836279677549966981042367146180006046056282327992170680469851965750755556456980230050203226130791675198515437109931831404727085583293760416759814208867678426451169145919313127683488254877826183556150373795291308738220591338201770663686832459620313394981685388626494873426887142585983172853470719971689441440725168032198651115467862458438841885168261011285857987342291035236299559225387000483530901447169605008126102467026024958530527946435036494978469581089709822815969192765102053274748079417686884241980701017026994605262097025292284499662972274219383219320513083830537498939378570069538783781574395261784163003923527088120161026027339696273624943837144648540960856722864500738684551248790600986740248246553572179023972957176271234627424632748796449605380307762797943566482038883384075842192547858081108223162958799466838214769980279527093929520656612050792188177995828001188531291501044088608416033467243186984079130704789252656460071888985868821489203187927223252105711561990958578304292206520002616057090164107897360073465911902580457157779843761017286193518402617973780119387353722881625571120524937325052338680285260403536221892869014005233104283466824009795933319842463512943134491332800723142130493479729839779393808850498656543520518117120052395218523078095176538393332931913349394594437269389164374803504626461046417559451412615079612200610573947149251475847452861401313694212034464760438829154152465378385408070597103752387773943634324539879051830859536182159725757752968093178820627417408339984579020027948722781001607681042628380798438987090524568455581270412792703587554767862957584055147405641904332638987179179705612812906358873457497227851375539690320850227375670326709601091905963419396094249159794357137664796145605787487531194027353281353865747520768520003726388150312026099905154994627814724256615447458465560379171943527288237818142070971673689233002854726373087105768590517642514558326078441767071565112780083657778508951928233344570140308802537651445858739859623511533625009639880836407495268372867292263989625850640882615830190746744020057897049702777062705716192370308917684763372751914012945460517804712470381881794860809922879452021807728979915690818422823497441041476907367502196432235364580699340500940503829422385333628726391087733850578496072847439646581431910713928179826307787031607595514869054806005920940097312466679128086362198463386807248933380878904071401466852832210517933479499403188486319207816448079333998869763954029493200575025277727229705236331239358622047757411768963183297090968538972326171860338148357775290867488631217685984665440888525280746984444803153191066169278986354854286106676533832427064862807884718185470994159692802887374189723889736152811066131444995058207409745285480015842464669289795385725615579057114301674241473060818868347997336319592371858266147458198486081678960103706843125361909749661505454198435750235331761986124090460182591952636302302037311715028434446047668343387211286036065353627883139522783464759294894219270135176363140806338657876697975895794495558512161299857469743806057291983336456182036459109381972334457133460480752170162226305087973314504779814122521485922874209192287408310219586825435418388055607037323623919251530787674279315953245537554800502359012248971197997689378576409910170429232910219098733321208633646291851764709725382765009452980997552055817813276163177955776704577641168058509926045831079831798190663624359206616273449285107535626725154311198548881447453951945416718008980661573125286489276851234433866508997430383722856322996386638116339204141193234673790621145039036628322758628514512194013109125178315430776299255260206531642677631103645733762462649463016353515233080003755279951606475422722500254438335013028236126972336864585400510315100890654306985006221200798240032141598662566065965149569277516531319480198103666583749895342838708664749720322707619114232471525398845516207258985984707923124321983608538925925269822832945791508397889876471421317788175067177142911869564805145087666832074323923675429054819843288631936350951232453716481686123950182493062665408263210910543253069647110669803592258224949584224526768422660899407278994578438619784773637983059869757267764685154155736101190247773163411607567718470275803544394986025034605165349788254504525273692068817390541785789355863664919965981047156096365484443051602973972068557762168397253434814557662303314351412005860860825556800413464911458218474973824151033600853713243262366981224113603087102595077262109506742671150982107082780360574213834941263122498229322740879600818632243762837297072616308916737420289088609273103245480712914551843471212425775653940678596686831530307672287605894091209707416610342565481392367831946652775625039833770280401266060054355702108193136071633062618767224949572200683367939308770975841191891967630887909023080010309271511198572129805593195123883400157998097766580290006289261993510975265227351486166034587367894034668861397994197057539220593550733921388223321838796021202186917597651659187039937526230846153712301285853235506633541463186895102048050773938417805286053836535264589511227205224466353035247654137020642051663078618664825854089680495430048499489801940967352515605904166539767917392454887590315334644402423638145614694637967403827534860078690017980281664961935940231955358028259390774585527804159998454771952978150255951003020497162817432043325277281721299494787366049139847451137288672090502770368096128407596323422304863343482300231454431420785212511655777626058790922372343496418937233061837837267413188924517544685513352235443887331660335018925777638762757399000740878388995401232891191120183054090578244498816487800173805349430701751512652506982457624964385424339219785277654608768219196526516548394913608322555978273071158921659653045715939088408526624696155066751128789361670985082356212516803260144080697902672763944742674753807944456383759390570298939116263844792006196081841754350795221377727873105987145734512070705394867617659878308718218994243354534152476234868550405435910108688625318324525323752612951318639677260681180958464440021529007334534377248275113576222351029776765758357665762894414095502940361468880301362679150394476173987099011153211056759778837647969522503327623654209439041886048265519185861115672320174575290622566540848946289959440766599761178550368335856186248663888883410138486006570259668614451572715530345163681553368061666329987655425693246235940393708490369301480462150965478161782669433468989452244766689003745559834238013202398604053929687298770321182361633813498872571930419078242117423408927050492591311953562196191267227354172922897551734353085472491929260435586916073945981876027036057177246013834003146747952760325043484306341342560383469873093956830271001348663966151821836662325246567314045297711291119162839852614629934570062054458076196762797946096968104910860908931188436532781391276306290064952136453057819142645944151647511877963187696123027870182294040635174182780600750715139594464322297780581582887911354409487098263423599621394585881550564254279117486592261976728170947850262281944479833907674429161740275351474321325836622938409767684703913939205124399392941834105104679626697622940565842322954445704224059692935285554518155948689680468216529408088386727197689471436851779276454511046215693843887638841875460057581905993885243978576246924115296793287926636668738181391054048995429366645474147239169071437526462022490064188947045106669274121998492672988750523512825465037046207498252109276032454687246890391211837587627747680667544254599550543259418823078592662460424998437818003240960067537576906996412864607766508989820768445840018290346664849080261208313785135288404698550156922638206424128629678533404721619220120613081184468771910842583920307497462860526934673084791892773866463800674392275492639615570964521314124537434400241163786257369147053620618613581726351295673245218277151723676865249389643823533584418516790752031177798770151755203447012151965342148274788494604880175426020835903439447903527074538555328903660672214135356692694888044948185714686459721481286530139845805605319895340339620782247610524007181532821102137745340832025144712900014679391909766365390726678446904857774857895896750005879845505079028897147041162515115154990446108421210664050906412694665687054884250423064913639968779852256069384954446373099658762818538765163383845928611261495121355258809654800963707922153494752692850947583346289694535019383279132810665496488406217196324948042992854657378298102174479088798250804727915591509437734628134786749896836749845788659718639189516158979244110629003192971325328944454020486141398264331805888402733474525350093550822069383943479080993839978826001401053668338221922267563579144705059376220738470774214018915614863151483132493104972165688769240667747475671458128311294388938613750431193223802252550694328877974327595469368104575027231363958677377696681519524207309889838893906751339768649807975743270258486660803283133418578427885136059773550968089621076816018941439349449555191112483559956429218549463610097914122899275220595101681564027714009979337054268725622155065293877844186792734212221208352514066800198721547947049099127696402566094490156308563325671470238825964697722183380427334893505322650455196288264606091578613290860568065206166501377852365748611258589653163643926525508147508805716708746645125834577990435294957725191243570114265137134298254950892621923235814343151001149054568938243739932239943857960867253575423193502044282393711455683190004787815144747024955184160207401482083900116285277404285541182321454927409474381282791541318353942200671138526457889543329790320991305766393563217508319268775855665503645121449888558530222131109714765309652213879734352221707338710584203826304271742638404031364022166656917472253159551564188534536706124786374258817371985989037203649959702584872980558581417283611292848957654509060242295197873268362928922144986979686207325378338914075385994710228629510527594475483578199758979398199229523087971665073005310151372273151120927564890427087480835146599672235428309564419572612051063563036157466597156473887663938989020068170568466830671510451143969532614618210849677961232689726521008976860392451321078111454974604547450694850349976475478448901473065841163160579416531628926457404977538612136338751258435570344395938404171114534028374834181034310112477878902268305226749401993623082909399046160592282974072812767268396932055500094617561820783019194881010947432291301166485807830917655454841620550310993170822930192931872438078908622847040287843828338443268724876777779887765972220632386967741059335485416202198813235230579765971143618016258244122597832520258939988759128165628534335313987944446854100158200367651734955680640259508590315085073526482115668957266024912349392232931998693122309535268448525902114560765386515095528186577508236088140413764440593208028582446374787792117264147095302835417967828315977883399135836363181329168987792564146460793012615639054394883430962354521226059614408827541396501680157706293529289331136595985747181521099062345229720381349114290589449056010714920368736236018289068838150251773011812020474835625285022717819675912802611810659998319870601350414875552758071879423245285463987518489725937414302064991046397978545976648172136862783798852844934879961339048221651792652659410337390915604785916796011815860858501805432920309778065664695185642652501186923957873374087313570301200254137039426819736410873484727809023112145174301654361481150862239609568479120253866846921620260023199486243412594377413316701941094236511544987434932364675785591676928454861327401903614099087243833570644684070642920647355931260813771265998313568440173922649107394585093853382150632222579471881037385300508380568098925847734260250673241665923190623303407160016159803212392685205893397707060960493995935455271565586402098032671127019961692644109706318651736321189737656465392842087002018047071255298908485694751917359598695842975725820359484192380183739757993776535770902943922776925131788897196981519891490109554020958237126901537939506956425854773454811632430929616500873538490496492535219014321047446084952650746897918561653077537118606663095042754821964614496129731492320373528628610216032911664510281531862761787057177567276621963365427214490036585160867638513560390478880528993454089780522758038050179067578585830425822690997801101021895514960225048640029531640267993019862920088199376350223888342032493967524098899789031396747264080530019197642449180661341822464056197857408455087133092736506704801710371288600601260760545866643467453877653192068442592123171301691887156806532418687348651895425839112552876530650851418249674542385801277264667350891287385021860776373566738282533472007940933879365132708769695707646608202044763609742640402600404094694525068566365740666527133923146882680920253357145527304572078937322620257518170829227265315511633065963001490882003274540139494002844469552240130690871275156958660965934295991312611746698859524725304102747135712122087847472780302658924198126751716577555387605151439298628797073678176005191942901997736319670476755200373007593681933668656504363613742102111356371036898685917847810554156985433360671817170254496378210493491232552405805197153425470615477663007046377575930497415798216559433711877279990724731086402306577992417334941343584279931642430661112819589339655191704326744395865760012200738589806102228920675283691956742181015946949252767347846704525234796150214980182842486962085508587660370660983787127355008429383697569231727685082656440249322310758151790624012940559704196787965583877493420644438741710955998111747533341380958862409983714041132287867532951579565392808020195141510957886010973491610602537992568697624424013332651298945278700368135621955885793985221828796464321982886317051992274941239393078841445464769679597896308925109479615606388388071279376702632217130413130987448611522518634434426336275677882080636711383053276054134488191742339760395595378894910412671153147007137042844291557107847973030350747774345734305729722190298812466765840490050385271852687860052436116261515607633677283592752714501149494266187382581774634390491007171229119258219054994177518011881965144387181235474455801491546261265441321420230977449425142460519949519565791794429160317226936413968744685511257686183603748628688217720854137395419230537628129544594584770518701387140674113262136925574272633758267752849399028232304018039291500350053553804914837964333324472645169854639384002767434593235408763284561647643257041779578984525831635495809059287035809199569938510297298488008096480745372963318626604387114944385086511430598682217099017116120337476753537524069880398276681551803105362640856334995660427991542493405582459154388620926719496241839703536024013156347743478474732579543440806733490922937967905725461004467961525789249539266407346918633375498628401407973022175973738241867867537311170940603706461129246199764564793826937061715410994843800566023700798394122139526268498381383779816404187967711067093455574113426409677057685300306386282347748094784961644114313826026610624353206203812402988120195791866678217767996627125899860507095395253922567977641596427666372099381732275812546047185761640833435319690463124890952838690216865484154132354802781836079301906683749286596168586050546815372253892301645113160227394417282505204935742865916897158130111983345667685630961237220183920953604966833732643148527378500913346391702033233999859362198010839918060904542272427828932286211807804633876064844089954747759342596440345878803617656778234479485274550371378333971230699116602206668782685253333532309535845912416137248680175961022287343200266733686867812001863783633411641631186764420134341347563837590657735681560314614498710656892714097853326116639014954732774254923231205487238435270304942252217132361392756900048649573214910065790295538683587397094269557211748335783662595668243877061334663767871700280465486089434338607702020282821146273118776869981691219574641515652218709587346130740449140118092045256482402052647022910283984018662806934130767150495670620852071979615924220305678250769264865976601534608799292748501183904525360237250788838518526431889223586155350357891930162245189138266341393177813110897490489474030516778207006343394172387768778910083488568654059960697282892975209926490043815091497843399179423499196323644765826147360899870709649660869867888911259498143257619196582615488809095537890547516662486771220833568135766516676118734903065466577533015785129153176052334833660788851296895242141103139515916604343702757188125302153901888339906960040039572709918577056006649691792829650157953708276452202745059305797449656646733680804673378657234796859513784875764336240209695545833362947684890307778367388263010905111502925781757730144165551797533467175749510463807548916879326067173617955364206949891216603982936068665812101400950213575908478281734649718335130472049941776697300023157519511835299856871783002889042144765761551766820159707170448925831674697858130150926165404595938404926554364768756702298767477650684878856374116751970394817801282509416153140222999508662800977897343773670140370621354550334616839891839164375398122050037538296852340363364559181695361998136714344560331205023218310003452205900838700111639931696375043407693367946475447447248278370036953929437323804932782676847945122044001756570309847550418280176257040156613729728392940409272940725688645336268956940075982752653886538163857078607491005794763920757927656635006917800711986103503771879433701597169620941495101279583997506298197847071910567099627329398297129078752215385641127756432687198261102571540219549733844467175906309884675111985755304673051861236908525029417958719800559790030385634093577239693275497674687147849033613391164755389725339179607368164544313081062615694620339340826823557258109239224085330731211068990675923797433094931199163588132616016780220975910897847922736751256961945087123100676389981931427776285548234993223302016034202565786002811180111284196032713256564132298098550498289157355479358967437560049654766978392528170095458660150649989219542812079529468607357833927807155717759064110824645348492440295653714206597686451811124291956381076765785456314178307246201919361078327576230440059159827841578384079598400968345846294223760201190043659758692788456791640586498828243480004827099777551696757232693951794589326469095994950879272053495985718417886342175976356087792549488389780192950135164828265797405789028422413671633090794551323046507678454386036988681389229897220386674698906217342168919768427288877245549362668940666931602375716361116546229498066967113870336627732949874653026923973971726551352713164264551791625168833263434584720051883629318608943613600723797148035907469654661687106187308337267972774052632820049498790962923098990884220273571417127232559624225815826735528513202562540311166659498028090430618491516921444975675598327088054832841812514211273868168337100595150839563241051472477988703493582488725261578926557276783733382993780113279180177125230653492290588408643362823102538732564140321765157684988524851925886415115508164556898984649841322819518567265972391493748900026131947271108701836550539796232413272760437797702476288147078812650206208841935111852036941575784297730397445271409924780733243144432456116727003177147878668421705865740500857278080435169706343596148481384392819364845944770019602929731712295134183592931577352009128713923062142172877663549630127874536121979008610501716520880937918444751707038885101147648575871254918753735668087861859665548236141353616432628857227799074285154900124364055409385969962254551663421452325633737871729301231398652100167783633430024814054033456430338559574561741149864315997239189452067944184695652315010038513209538584395459123788712498181360090286688369931011727128452090847614140573605191452129192549401166736443548494687699279566191137817473235910917959496739311419918872921662825593856207233271504680949922916224276710835510917785781280499257804521540460685217756499231110471723097226392212687751773959221097722800397346517567375927149492853135699797679752996247813403686521441587683955255360124246488496622169560698628802968918527510489290026661712696579074076417655964876703243500947818464224944134534024325659067182038299599979515352766731423670521693911880310176264471593667640359792173206245061428163431887193665809177861008192361095447068611020696464599847829319927180929392438512130720135604769750818688656825739069320320883667842116803097500091940394966028273671152572837979449623753129350636405598449240606737263874653230747715703067344027619584326570964373162009239973672058492102230382533035525904657406252694884620539744300283745908041945300517266885045175016675850594107351458525373505689524869532890437868354903157308955343733936316280587935975987792252435546799114723798170178883689519206154801115842159740171212703653969782763462904938124204076761428676904977087396722755307189138192182672016423498909156497484767448882511992242496689958830020119741106324396739072781222406174435843205295476729510083791145323279314251330706901594952561094217194119613770099928174936128467717068044274324004972441130566370608984801367841475076231368574706073101568767445123429786684440410635509827293892958094646730107986973075494001307391367555949129418947373965736081354023600491101693518269312547525476429601896691400643355629162680024902117056012762680200029057631337916255192384110615420328261269538546354533305738231739111400275244673879822483453638598358671629517306649601486418631066653883036913782756262959106989331635227400600767027963824011552263363428161368662264978502145979630424889126577610766878468030738522962548781772810006843335038883414037209819911314571068881691820830638264663422937843730913568664046033004731149678404671911210668392310006490787975664404314496056414785978055344889198313696790555780775476725618908922331325074497256880007868397418153059072903307867845604579868558326380091734544072236986178007242076281599422800379226684084005144476851314989167568146412714094713750042145311618792403320568342924016798580368650353567694477968203411087409645012076656412029857259936548534169016225737400558371429225722682139315466788043719180674351465188351530988049661195952160634535796678564399858993784488542373759633852994971298246234483969757116395642657370351648547146053499384109481810565403827248629629254260016459557115217545781974686967088775298685156060880387463303724325175221985132861415703587013568934350923733177239598448204871946593227939886914341781088205352028584912872959627396002450660232006710759325616698837857687135567733587312048893780798108040927348014123360680450777481738226460368288068621193207631273386788765782711738426622182309826678981950156204289526916854237001611123334390170546326462801845467917287456902150851976276146508156087548765041727792234431691558598094091714072857442649271142528509607366320256359032001523091309772486033202298665386300700330870639536690135250625162277558814688340550217834529169074905147711007210528214437166677274325509309340608206552838313272593143501881845050526489819646061936531572388831680514285672997302403965710665346618489149386899305539488481139043367750083515529293190801102896822842392347811752887540114162962791279401403182818195110294927121303542799431952613748699702880070376735466000086005032735209335797075997990297362154669113426521487574605207554990807188963792537616358686848470073446192294203863177073159234312475712425656436342924176636889103496287395224882789120179932525906620344554259227407812098135457882577806138787755315564970090316877197847991886801915232947213213077538240193629307645988554538486349234181826643260320611100516086638315471700085607560703580327738293506021040295484100896648177944383997058992248216187023970101662891242592743674356217896729204957043022102101302525129764810494290802854840673521267823899027115652027395889534645787343683896632908076105030067112324816953861087123023638212175922391089598029071248939992158572854233571990407246377439090972057431113165574728368406328906858540846474447673192111479141409155678453081699691665930932200404093031891279135708269075650252802113975055590039700338527956218046379974903934155571820408875814614127849839505651431457657585359276263619901728213577657106607601430846261066275797633454827414364490007900400215399806477638237179491501277567082784207723450677227986789539460681405316185171008382886082280904366701784525813186240084094932081158867809970621547257785007045138805507479886772829333268848887078769267649002327361208476383090407706391286916317907815204858497187715695821435404354664387052278112119175333751829763411214041187415497960132003143172315876084652227384404921661429576454374728990604465363015779958910896862995921595978780143193779246850554252048056890868161848255936456906876348241676081632122930347068162183278410764700853632836471033078841960320248685842836032257845637956183391263193893946156857726523959918397891842832509240145959214910894279081999291525957727319320442000347950164033253070998140789179958033776777746632381801363017398410137696702040810333037651745086532871920218106344770145927647040493460504108793296404922986372004388292077184853734035642325100499454563863758818632421268763788326455855273829645903835199961601983148452331518765395677304798161300820835870126745814866845300332278344509717061563253289759624023087893072280532727103506454561563511844777646975320782606026656348937516036753536241480382037742913307009337510194814825262723148973620188992586279043814363939079129322070184701084635963791637370929242664126286716192033617166823640825451701717614219640336710205437325848435940078060109820206250298478782830028195902126022078283145471710910569232599606677037696630955195650028447949135328373727442202362302212408826269264149592402215343586020675899429578716310349185885427619362767949439167459020723109175647548450006355793746488721278889712819847288840235225647014664423431546981437050379616912818023990657482449936750374417318747099894743258152897324793552756799890768487054122578875119253916156569507678797226480846185924351272947746955805394780283466763162753857047496323086893199179308397659450561251257984310037122482351911588123431587800270937346448859776863611643663763835420612052175472229170975016051881223642659365461209291429167742165292432150502573308093935182641230946362228395448878915357274312735634221320597411668104865898638489616153898885987465084253386941409551172090501715428652209901373382757328582904157136512816432047696108542648881741966627287598530970982288563844826976105973634296711462832155897665488465878091962889637471508343860378404963288933823606515222414259765300107293926324419097898058421638981907681662227976036044302594036876474713961187726145516202108004034440274104125297851656276248873276177647415907162095274968715488566361061002458530884002865204360274701912918594484356340010969915377843554233706216270483666044953903618083284728721280909773021321926262028056164042200847455974519389734300113797386459871189247276687613054961640588993178365390138359676792245103916114843930271382497776668895230848692753650621334410046159110888933121015094762155447057743221843831833144551343792511890851200168127609042701643957955628051700764836578704440677852376884025449656228826131507930113859971542834582614931655360075227066888177228679078973242080150391204007521585871781988923269118292502156055702348790287417897764542388203074222929642283826374678990179534761301026011532118982641483753798376323116913262689603313535044104525443628374787315927147187957824686504246453950196153538437161024756239849500185839971704876475409791787033369108376060685111261264225070973983002385909896730309366633314811665600415209079592924955271797821988644303501518346286666188325720224495696935325555990818723422947296624433551430222109870854802996473129827683263866594619246093977068167093976547797310330003445599709650502288759550182291951632390248835432434167103592778344420330499471120648803590838229506515297144180837776476623072016864323862138725617127447465768735662271285606933651793350880719402144573557540015667951347956132002784253762441326574436622916992118056454454133869183576890910371825519260218587068260811418060512486794482842935931028333372272840069794745375960513574393999459748270621366603849508627162075306358571783623424463716128412750227187532859019852982566521394559796760911911032739806069178601657360236485219297525440818436030769772731699430198155478161887621550684326786099381579520468747554290967270397117511278383446833527922341020013581260317961104849439124862374366805793601564806247203697056120945709001708320405873496115817625362244468156786011517069457403233110996073758631348006379335618422936340402803163715670078030930485586841389158140199399040922215993774443319665338919416458408451967203135980683223187248087026297877937637593685307853013793823033686223684067133136725469952668747840756075055157447091025597496061686414381280256850635236770878151627117778404272305986347886410439891174784952766730041932394920953490838182704031790136659760504328340439898087846964829996737116966082212915071941470005704102450632629029545139099907226310049670113768722049133774938695921495293314509641185276690074898105469022717020081467193484164530443851705648988584010701186400288176557407399710858087735133564743596381964702189078603312658653364548505466401041230305545146435547707653941638330217255956780787903970658949823447559135583221582672037411094890983030833222751044761296044869148282214657652157270760594572354227741554433429312921138141969933709716272588986999657758513872290313488963406542181825710069228289230490072005662312643286148971147073336249326883631416062218264488512641201364500343327432150606874714699913037793039370658593580660456273932807507296893969624097411838568477672068682338762856386387116360425112414891517630683649635365106477135183124937610470320778931765048018985850671811485783230331925651144125064039310803618881682993818869322317548409320646590496166793412204134879460492710403357398815494271797653235257386865718181213453002256690620107388611216388853460182160341151157156361496147687609493959104645111231303527826101693457704752832628272749563530658307403722288778302720353325212864023779497573324505915492750431977729201185974422706938381141030673957505560593071414701356631100318506278050386973708303291394553110604654841786510597066499650041294352343773418908745851560694902613741037181282889614257802330104000756234441196747709526361558626702992228488085343752777882795344091075930277209956193387072549856642791895324896348157977734262001715415459530034319387481645247717222779034383893102300535219025832683848926604406272236661136541518301061206880995803007762816307852933561744952347744328063592148960764538763614966607470315849908305761368354103522140643357994832398273073799187384874564216320516821580191506112140612583022786124604106728605084692019893646934215368462384944388690343500282377299792339510027472703298262309592157687182385347437711988061721809834272317662873135985146669454451965647731044981367309238407074312564376928591257992305947774120121181833868377479162580109315625683423051071374749147196056842924669905754521251637341781696394779049287395991281141488092508720619812004828738764524081714409249678646335605063070071564178366197825410738282596814891148314382985707429197562544210350959713589251670584282575325785472869422528130963956398638257476185145363388662049496564993954982054351006672839875285707599309704962768766555141165809472894678946092909030697647587379208392327574594288472746339067302777805715429586448755400298368218555916444269483002663988551374726121934259058240018225067802375534173415934248313756646370530618047566096357147011194603730421662358109624865669979517651177894412666484096027323412745670018959102628474810095386454498624352741555439507446742314402684885823545974995005244936014471504901333399829435916310813312828111251647010016407186542972368345855964553459804958294890258597111206737034495823574442409827672966238858752913747573059818427138467750884998526337315704581882364004867621798968360243329417137311957154814307824871991709134689355834588803972848831530989560346347806430771588893017473852974692864784979332768276284020293692726386267998240128862671300258679471120638799976084682238355128052949133912772809986868879875348835986014026329469225957390130427634854878340274597522791682576507694317852710396721706503910105429695029942755499197866744737068256815609058088616495867841281397155191512291419620587722685010157196436226959307184932884258997188163040067252509028315230995612474159982992921582804915883626567139534325305474509722679821350414400135943921282486212475874170681999372636142861243386403078612191649215886654825582400430519128216980718906832029094321560986401793726316875320015362105042135543091785422933096085643757362876293536655561303830683689950208438621513042769644938997559264484700717200311346721348497080933935138262178750862300541582296295477270628768835589830314863648636652521858429422773487800740469493110096631225249432748233587967248373580402852427969422487594586878118328744632109993466213112843441499409739769627012522840225911890205021219156463862328474850243269395337991681386553379322322591965993672422996256039156714221665216425827037848877917241506856499269489222295686341870530948897573600834268055607614856491994311277747248422319461262254916944523849020559613916857427978666012284608268520597901552991625216635623393760511113408184769551152781589794439922175634957421849721073918036233702793496316644681391558712359738793623742770063202666665513061335528708635297675684852907164845443569368625642776118816932068734106732920568743776140458747400029804082513723041477827368269512956456792635229834835607423563811456941266575413945233693695381771399175395102752330976489844318474995228657106199648646110922749482253465394083861076859958365265136439864185286809954967722337669648119836856602706923069554434176910046068176079474576559062793951316293126656979015364116312221893229130075694939394086509391062142066917858883716002809154442670688792204307244866522098062521468686073057917603445806365698479093711565621666438706347506787001546711728662961566837072959169669116003560638356589232896585119086751785335911703420569754762555659259391572406154296640900180254400522595221110612981406220566783680937743436853805319646406438592773328455662334899263930776214309419036097044828109601404282920877570899065116488304249992766957145504699965691040280079072329958835737176508655369339449083335040847529257666285843476415817487580945623890269345773901544726132426974819857275694964682758657930404964841645927404282281603924363927372642190583801551343291971883424509150175631879177002601030710381793064616402040608588448406684556798388831425497950933275081688000782917025570122167238431976499718215632349063860851035682726933536741229699590817055457915956559974331916261627030020382881928888911460331805037277938795040033310842767017901005795329815385219750227310373093500296176227422454770606459516005776024197396606879158066234617878623904883630694809798146176935480876422601384869733643673751716475468237923917663013135971122879038467046943330591345986682226087230438189261294947629278969166190801252949774708535281554616845631262535508244703428375084851770320006590605146116390769607725545368243837300882631050396533655967102242335892850648125863290420479941958425239865281542637821925326090574517054624862870454281651801845591549535397475549306009454007871715918885469336209604333732216987357648496338466419817522627817389479431569109767606431245609218852975163215542268786513674143877684559283612078329244913594126111835755489102047575227658910886243285416950533628167769740343830153204737023800301603586358839513240212496659978438687185763937193516325808382525960820024962638510512459183888177566505478361973897923693644161939092465699205739849719928682107365862918932617436201604735769740871170168587536754627180136723200348783629601864295028772818296289330908028230813517897211254588243200754999529101921606725249506508386080449311443578366913573898954077529459053456373855360746496345529609206025519356078027948124139976981549407133383409229181685089484732565697204341563948307796671288642350186238371008636098649060914351267338518631454832574070713804448131064895618367068489473113864709709062405328252359755415730641999339784752330593363451393794649047817264213837170259666215692201258233975949840170014397962776304036005103139710888088779452109185602851054936852541618599157869070623193440353115060061199327261536496490372354551475808539910660919821290897762731890682602975278240965513742312664430693470160737197832772957571437977123294080950618986442903280456868204053239094479694258843026439949434290874271960443671107388477997878483413358397811754846789795208830810934999403000911654487921273720705524473258783264337339182654850774110421072526341048067086213227188102403684314527785415430212847120100901729487021725922782500158290426484034574032970966812212753176266844071502943195242961248426259301640105227287217751644174054510736273199218394012929843348095689170243692496028218278768028708941533144530299234947710447914265984697254172300682875631199903824583379073501164879051649310482199201188908418645549399762977249575258796482725303151576808013182820648113222971128813990452093470054418240906960508308221170335673773208510114355229681099766675385245709917033383583366513177577240608088984807661037543243517015359921232374927278665265319214605079416325251127876541718322929110303003908984137075734741302208171389928853488283599812448564918445046477806325235037737309598090126274037366163615963910785771357433919792452868511211620758143928124985916175682672729992291188671955238553092529311972933865852951103514413348091893830323339908224899628074202683913682649691107269486902875424959374942649039674194600890104990094663422429445697097001664589014207646722136734473238270681947180688767388928280976896154234716374385394811526186718747944367523824605333255649299312409045910789350556082240833407796273816746249718473134284552041923858113017402182672035474738477547527143041362089867044632992914224548452199425898722190054893612753001930076096094173693654939018108481779359101508199862454527773034580292521081703832558042667315413251556089803330876800560101830665933070470930718713921626219494069967454319984744419511350998493287809439598082624368077029182493125542032342079285744425126246408566481122150241831659052151659155950981829927758714949501664748017834553435200135869334029726941450380494505775555009893988144334731997852982661709282734391152678152030254854666010131141929969384770067899827731753338548885521023934007549642694070298463818698481826856640856507788995730888097789571228979260449334490216742137483918053112879641948092417074056620963267736202974858541234993248499215068190775055672735042536140635731599633000776703470337789904648839388252443794522876704355046669124389459221393647431364001299359924602826536298099074700762474230879455892077872298043569302596157607761259714337031256638964559028463252500372316936930282973000138001658650026871509853869156161467420757747777838653748835376840261310487315051350021911632206830312927758055926296992612430662751072704244107509528146066876748172369822361787665517170634231411850075138594651895552118291576585498369118378948518311974596698666275264671856818127872372262857555529431510484072039704169959185847955819953052800194485774795694761343832842509532201380112389556239674938877308606920285945280922097330688523097085753850699846134269324756123820198593411445293438198988694643717617653926356275820230501509386123265335316884367955113036725861554117150785944799582547843478472993940270246410625866299573402875066048266224510529666977925743945535921699019000760761503094852990714285963131740791036093350863882286319127786826475060340712353591716682565665099268879860820532855282279627760569192529670875368375809706525852886778506383219748311549017389530561964128789026518647617349493403064532735190341176816207549639435600471924830248231239355218041668652239963789882687990607416567197289489180190870059685784279505313570093955988127153124121138356086377993651026170474938015591495580137553976208499941080368432895205592106486564582643820092664382241640177070741008949200352903327175710213739945243865525145854659400551308354149177728965822274985740704923416659289011861371079109244621954006555880936734280699046630695858812987846831285008798877759598479550165714459044136884046097245433149999373979379482706357568891268529536905826309433132132173271534617384138114416930059604801682637494335387437942130889640498777349746586453361994091322365732667800337380969631130267423725709868810860974066705527018716413782740883014380964729590695390232492566033478667506182389518125101591635999661465020689692471568120681245551288172121516643489464777612296274598173702968649702976287541337388828293262926350758238269893523230942991684693109713252818544577703190906266090968460990395191218895206713147286104087259401330212977520358553804908650676740562428852180973028544519013906085994956395624292094205860955026454390188456697918843166198872146803685322424722682980710729361265297112063316709924085101594975409097425481521759480349713168425841819348515912668488897971818469928268687180606828149585224772208119556757169511480971966603631805809420849387646297533930332599342181428931338561008583450668342334462371501401328666198913138122352781323736557902845134811903785717529199315501170457935802396338084420586582882031784237912305019651704890150467882336486255250165179808978269510484990014755326828194463002996697069659189327434788067963268664272781854938002971679157849567763653046602574727359890719865528281519385407426944579288041022999768409990929301305499651832714740208407707732990533183248080998675759877032066441653414109131978207680991674899321346117556093809487411998162359344513665034197724865789080737319892164724269744372263727976461155761000698511700335237706309342752299635930156419568082932524048591052761200775650036901984928110096065050128524102249576444449802614847130864600983504321362080492028412334584537324034321666023830698832659994668517946125624239649197121325162914993886749112834470540363315191646547992929513152678687949510601636739976673555240904042821689495139068244845988359747919106300760955690597803386313177166507792848827390404761625610650509916408946260216638690278474041812788227199907070363197892461296734113300107214842621092746676997131003663117357506100585787830485136470505183996835219577425110780833660620911122647597334759087119975493740292407886619462136162694567045429638680748294974486761544055523267484828501472920623025030547978638244630008405477011344565363339043625236832490882407912848724168638768654301213975265418976781793173587696592029977665635878546302814280435686191863819207723450262816872536362395447821623008369517986400483618774664165388680397416847782432567527320025055822216766907720133809629481761814967227006434727397326349038802542421713546533483538154786314463012365271321777755256218069781121172959885639204006502496999052806954119473839640771469857666877701787222368879541302214815226932993978097772839314976204340267059913639698956818915094941183394098338376417793375855163347737134523441704385828834431117879578984518396570244017461274241273419491636165177787647713100868783162779493943130326585459897183931005123905296994049583551798983680336165988438186128992922545974239132273911921738118852979392280726372709398775596027305259807477190336794266148783905886132441688668001913144522324835999616216482386836542164459520751179684855751646377241345323226957683240061306623686326745262344711461851982671867668154199835544846927170075618059803832299296469356966379252363171763818552442105341727703069952414851515931378927749391740290259573553537164936255066562911963592533469600641455313108419367858805835794295789116566424553920523784389737684348426463965784344830149291068679379039962378143662850672547849881239043672952994567978077823377416635067590835983097998739514275058819967488394787285373097594985616072015174026572502448590700229285655597940532786696181738996750689654060701809842803850056180597326774942770383028385934130992641770000061253094271650101324701061845231701632740206171143349059603279538420872955788676306680853023753547952585250980241558981987560220901385625351010902170276036006019258538506868480041675083547713930477387726398562866531641187195204125772041553963240030147470583765381104923278261905705139743186381047631570934041255299381785805919023722155420222045788136209871030466727274391573349755238901697224848259097361842122914356614600820231396521539832782958890364342435899302828038806611310464546446872475025895755734860105905374278267739135826087679315318014065148096444384345185336107380867283839460345416163335686717724838164790975931939185102358491887222944874853356279858380397432771705460193549362154072281838501960308963900901393839292463906799338261588274493222691244815893675318070590268416522587950681555091554310046308779105483002096069174926531862607771617537025075682321450747566490196817454126443680814217147974116427092984890260150110105340416229958159405202501603839002319650396074176409891725551267831190760665846572392447937451505743015200761322300976929837254575259279297410974829833479833544287451492648825424876483653733247214899079380502249559267671911195404172414445765223170200510313095645813426616293448641013488476134703251277848502203917458742172971798639011840535259742229583161221633894105103784892538062876194411811282943979708087281094250898139989004777306940334128020383993299085408561889083508687094631709058424009130536698506904862967468446421180361297543888114353407062148560772547342666477632371668573038675749504702975608459775609398406499071647224814679869092871649292716680726405182776991382957640417651283400015337174661773330418500860183543114382133335719350659099414623793853264109879802239292851800194990468748894084825833893193870872597124327413546800026542554985247476542745108253145759724758843354238382831107341819116204851074141622567404104249247257365694745034582165294450606197160746029064629265409708157164829410665835897250652812240427824730104074754191811036719531235350972922242680842777661075487026800081885643980939614712683407227174458543090135552861113056565238845075819890964341998220586634734587158870082232293589046741681352189216918131536152412362289792725920760244407894010207158978189004838543277057368405210481402959499203880494616919948453150807294881407763995556801730302730465925620351634874990747680702864844149590120524402009715201532259346510620173463689721894530254519628622743008825014253840915154464558931542267425227477263534907181568834829670339208284348011454601424567623639354749412129318964353074148931098834241807963044035155653121421385833768331329354089052201048018478666640839560023937147929227051817679488740436438855481467057496685688215697270776315812522208076333719350029696664678538941458394149919559949289166809539766169361387890864971312442111289308214086970543627760506482934153076068456792676814414690903052549960973758584866517044683168698248794523371315299759057886273433426035706299841419275223973285466875484761328266742455550849734771751774391323770527431525923833030977046834479380730945175180065222656556533663850551946318286416075869183045072134811163844706895143705271663870629739846925551265930762075996172605327075254861257284764712209788943733344109716027777437028849572869506552546155735102614857758505244744076922917378449902826559158191433883137684174157028634918225517473937983345002639254681114478857783134941315720440778562350728859221039918629968111612810824620218140186652486141373279963977254058440585112046919898556522415693478457770655186365326224488771696194768486599102357207016313341400409523933221040213887158510236026103708983778099417579529268147511073437108627201793210859662376084089297771351177367475537637589076078050862146186295618856425548556292159608630089560896106346512989465778171536456611157196725250824320930528962155388409956576643102654932671259298155412371458605050685608722512458176940522884468949555485018653127816087315329788174316112581008894839324976488070678171368847974765951216170566261186835604877933903198070330025433573900531710842661388495637091890038441114815578669011259491584258901898689301679454174782319054276003012777265518743328878886459758540942763145441952756091507186414446810965746402106236783850025533008236471954389228849887932691110424522937657661329753338003267518957914197113472473287774176535693891402456047019896600157473967787196828006779043805063064315988419692596297099940197865702852007527696098902297789758274426516095388930614770474482092227652981257934150125995504360674156221810256594387658437564059486096517172038585794532439996069069683179771435368727315110768526696166240176511405887236446574345289795921898440948820158764591253925442943257085613113555117794940231514859105034685914137187694549067310734019189357519865296954517704541294963833202140928815029236558227699234443168490671859181442109164909974477379534582294795666338548157771844747997533324976540578348943510628636173870105394264186802296241104030459166932403315358431234764177093896312780860950344214218391774553657325177145765401805148017599570933602587794191830284361553006197945111507618667846168759430904920988483457542393335177561170334846741316498710801676677301897867747868978478308430371472911527798689413527382281268788045002089602117709669215209734556490661183731924566229114152338244596926987480091363156955876565100369419188037377569622372361866345082076417403985764140116190592708425369529598628295135378477000913435575540061901488897473190569707968529024242736548420228052786742940418823475095145023890012054680470723134169090937611521611633735493728719152974687356467626004956692447209593133203985608788569622096937891179744406789117032682655825610243592820200331849582531341306788746498913875007631324638330915649984774967175789743359222122272105788430510060289683195656905578848263519482805636672915555042792519316863010091700045153548233213876979362487880205316748922723933008624334455428337415471132107430564664974539366429581440923786306026472727535093364552905630704865935578340639220505190485263530558931997943921331403175704484022401682348700151525001064207980843496780696324229348126404288177672519332395098859514551271967738932264684806963436305485408260548609912842482200397173702612059155454857421901685222446293705942283947634487937111871940260816552325943251305570877577437876639624894578288879885479631859836512042342144434607959348835166744215342788357846831279279471847442528712709682841412237082603427793527550440650376111003909535330017284428221662854917257758891562265335667510346206976280887070923950778280381330452810224644308788446513656265413367213866909371281883022625575426825703357872202073117795899699145926982219109493051714088124339398928123028607816799582573679189823461176440892454382389418733781120588659183564117983234599846609987198156969099950478956234804399749345524095943563457236584573310874489496186243357088010869849561897652291756491204531884943851808525810644849870859872647455722173989437189205607278234988918341234459364141643959865844187905191457111828720863178574739266210082703911024476782591662765278633122340131620159671679061517031762069518972338668383738867214458150332973982119235595888804249674881094377266921683524430067995619766118623790099838361533570929727070459379368014851231596373980377253622538085641693006041576745228525512619592735504794889474105524987229615038816489572480935735928918201832958850642938409859000710760632415111554794536327643125085841199843549294035618590613361539546860842073380566013342208730470174911087409093482831684618026996679178778285699875063820308138562888256197880227238636012265103489316840459355977119886341920721254773554613811536186187844154692213628998703347812317314547600267333532406620864011084654442957338537054608872637688889949089106984062948484878518434164475671547147530165759858975638653499254551538230182818348072556524425152942065988676674438030846987278261415601342849762489547154923589755530932324020345671764037562667753340529773918696516109101650434634057812462897725784798664554940428311058832372316975935891876299455483444237605831160754592246489313184599078021278654398136757888312605276135577889523575179135206920337338741788757751580141805756545617314419266501075185205971275386685789512625365757916905910738006120242136674467899544903500030575341955388962483093920885672942825420077732814133187716044456674454054913033980268188104318911667182058625198835800271474840562790365445357903978638224739619307161548916516551275813397136642265693778697584973899975394181444856603115882729817628138484100031528705138961952816689766434318851753013280616030833367734488819289105959828421355119692382415725812682219431741868271204844688826832565696981771154317085001099820433959631485929845311435141671129168547280425710371972655068359261231899868672092559488260226145926620842571694264626063305090751468426881725615567958485203878162410142077699680207217807147627507280900659419924267988554206863721526914292035563749742637433539447113855425262844321077580022719446717673115063610544039449748999511821830043061135687793549491421265327382321852328012596132630531001844822581556093823918659635058158043793011434596203622216491631379022613842609469246811793223051206152966392120543143253755377164294452782461639797802385094241859883071946778713431068584349796684225973995105889138369500681247106616166154834411523404294186127738981862636228860207800836525585058711489418056123700449014645667997640350546475333970239697953297341583720119899995389739172982220028951522130832223283219314981626806018051662788561415654930852781531426334106262266312704259653436263434378530999679324788429672158397814664301295078401696347240958031231911079657712883916269775459940014355775204698693409168991899060375988046331841041011429260671851077151101450497436258186541674524367980419990770990550104334017587849183011882792290747349520059062784769267554344547098503518707496175850966755178202287904822540551254449928952354224444107053035896551916924537846533024486408247152988145441949754915360250147101423099707454589907741293567152044808697184154271351203449443658773325892726422913780381637213960053226270715629862265447249501656347411776922074986054744767738114178442802464356374695050416644877114473423449093164772766326429770282700811997958927042624735428669038287586681720250657253769093996305804008572772004382947458050862458463232095715885782964630951464677882838840286997771389997488008965590456211520942660337337245167051734234819152932259173792112673824742631509030734961471948902500378250211842252217777241941627111879261737944716745918070330617888033965003216971919914425946354804762208114809128191869595985310646937439675618395598571012179971232555744470397428044273999937491847482877668321482523367908628671282350261776289048547066714655015818713955197059836511659739803328880777024298239710781658855125109679440071114641066167280315612672729139011490169207689638960001561822183248216897912109805697299367289528101237996892756423860612783306860819684604917461281572345299868520824246664635432018485711729471028033372336724607835182412233857181851254328436367153699056297568531821081645872280950401595118786265598786193153437031984201278081250255002244754819214846212132319086131433480750459994441369513628547958056743547834761079320761452069849388552345600119343402021703980998490218254013332825723102953199183805527991484187957089729624552573185970399447148281119221427547834646459953373837639887437143991862384565790029534096559124891206510585998694206066519433040320003132062093294394383983240227452301922516655391620100668809444023771818907569545486122223491646838932741856193929142535413241661599023544614074809675776102912866103656625347077858008302673317926134987837599920699993724525070295369007653053090740781757971427691570096668861145577683317845799894708812857931751871527992760623241944621586588601311880756757381671303177025671572576629490613180850420890065255850563421031994932954828150408264674343314190581788551533757295199438970434883292669715491151210199532751140975933879289888302588756678880463363359879207133826404959036524122891758068637798824672626893898669201201019018442768287234164776895864501256251008502323452725929600551596542316772668568588750102930702161025725944898549578018159713336516143995028961412055507888387654616257981722906555160834165803154981811033589492523179240680175520383491285018528335336899691378755606258308497356704063874750063036235033544729995935296167099067350847762957237485977867684010171566432204181362492497024730253621345730969232490316817749253239523678539011170897077762339493952472514513819978153542034352952221700423217249649769163092362370879289381545552848410706802560183353352730419533386398973639688674471902648964211039988394713668592669324402777843634372840746212142420077661421666658124867658426005332104042491222976405127552999406908987685143616146119783306192722756891783345270084719354165712487839701358432816696641448935241996763613695149805054884124412569951102232469013701961759795273872581490396925181626487473004166965639150158106810815216791008412112729904236428882885246609932521875707637728942790181184253404226941664536956602543949774636897488162915517423088739949187739214385114734770236084502659556718729277406326488812060652737319089862046059744960606488071097537991301858501709064571887039775182176717146337071322769710464684741096937988645779577735941288160339736128716306999033847763024596444579783337904962773618187204846472460931955996799137761485582347144360440878173323327622790297637833960531993946614215988356936785939912880406214765443125898643660009551751299977056918221751602475419015432242882166140309151593692725223640136674405569523681561279539221469123260728223817451462919417875287762879040350255873263324154285882010019701025663706835413571498985922192109541763353976143663926332417335707605650587462567984855153887643739541030562783262017296132437906652302072169980325523075979164187516101633059095341944013758863257064416578178501187539756191908096283111343161933439532628238784351307471430650132371550588022466328371207175522605312191661087146492069344847968816452672605390754364238613231058492242889854574579675284793798925300535478124738097673775303254214303406356278296173297062815402172334965139209279125470139888851918052833736608238379939480650604396773733540616374610888742998212480023318644713330014119577494076562349584343989955943767102175708604649369110170336116569068623631875994633372310395903333649973638450031488517562614282172624746892297740587850911710589194611088994332048009888568359582744292410126184153729971943636922458087838716433588169347630549436780522041412557163927507653927221315032761130497962773706864130902460341937098900746238845672201172195810968093159106695602415504790545173707485173968266009541340911177727474455901379399938556617120452767534205297578691027704416815217391923072827613894171295983641844506571438174098209950956594610797536278993562273849240389904495360633263575936055538635706603714997921974066133095709919311481816584940643763911295790020035823990320279914136700364167312294389064446994939811530767191552835953295053682615330785104357014572170382301896508006672137535598179142474620689023756612240240823331530276929546135553877657539440435172066438858485683628958243954370858668883739446139938389027954470980717041890436510267422085543596445693174109101239606582500239824338320051429184572758252078058326039858486538834970380192563628166087398313201964472412728889580703415015335535869283237913123267319778732253234597533190134461998399553649639029972848445675617950029429096355580865620767439824977791254877316101728882284153978555612687666595826837625098464184860875217138341703086825686956902105862573032235298638061117358663091755478956072535744265524060922093686372955414256392464234697606430962982374698250030928921595869861291592994129390086861435675911702370045265283034714733750914553553282322915401142663772473907536192822713847749890843639794846571047463853753403795030474542136423353200149085968195250346336249550921673753055315734172225684211443175796284565996670303096349939702152794934552414677902359126316074197345004795773720321281066213726504512034892212013365319859399557588363275408912979938346199076115820401398300419652298872074253184285538284775480056136577827548355413716932326920157052704839283907558925196432154150540507774858328074643591668261017198250090324544623151809526623289260840279989098133391257924519681325180403874698071557486929561768909950800912939626405921103093878383451997063871758408863819026598473924295485409206170089722316898904400996521842146350522666886807586276495171541903700078524052695976205753161755242884538344528665404954533772724609887746735439137065615273983056499290325821491822892978172864082097541814234301819341730881922450335069561603375152825343358463990563499471682319065440690077646275286576549887942019291905185171207126961826545237241705580400344948334631055882883776443573227980764260760804591105822891867538055179026201703123229948546320208958110010266007201631861120802411828400389956250504459482936292109145909066958230122709506252396001744388189371421531969296392561612311380363115388667227047098679454258148346109005267875486989414423904967180407227262482950133356674398468351275791456375972251944830817408809673091268379711564792129096179808818790081005557504862113232490274576874961301236240761602674150051666955337065742240515301975578143656174584409840159855456449058326817737105892764023266355301601964276747980044180630073971969663734597752152215304098686242237412662954913745199019300165010294452868746352069953026323381508320298849496866357208914896942016113052022197930350748317793806047275735448876966581648919928498755769659810573699239174090075998377962755587854304152513429946221230462204039282484387861323628192182249871071959229868741679427951449291383992893202293971624445976526002911409250753715047942344817962013219471238245450253091185228015115874858113623070313134502284548146116770237163979308698089807498450787518444409443552613752730623122101441243698520163234511937492986726935256908031144515963875586953081326619032648384447962881883557738790107229532755165880810832854756884610092562207182013620602402225518738402458124689765496430840689646044348258254584944695199618799661594663613753458857890921656684055086617203148802099354803695265796403070227069066237687875883661450288307139800917702938955009649192677077013281474075667191491550977925405722734676310691508568942066946055146067977589983194811551434460566387226411110571993304573498646871323356796028844378157582551780576967438412948288943680270369927361394603601973306656535768250335181983560715541908012595704138016512493851759164370455910829888261553742950644486942813676793215963786083179060692492988607243670025450772916581302587967106858420145718100349990622725724564714225763897078221143981252549577117919226358350828549808042988262340427335443502366982897619089829868107038920612579613954420405181731843615415896500605279164799630292201479838668358624239846423415830715401890530470385555851159758056914687011445918845228507138584577307028999098430960834548605589492869400686836051705290353850619649830525044398236598578482627957644185844911748722693979111983445653300711214294212594080473044794808655549346298144793330268996048786685511742200132242625511364838281269460059504685277519686533094468219897389285299773760613326636716294229523391635211047973773019634216603938571029218623991929331284013082039827242496772676796365633425041344214785765348018459905710091895410665567958004287291927079015278934460219199120441607871195063168745865607910552634326100174864963367525718213241507097962446075607894413156151804756740861473844556811004637992237187584765761491231167053355651274717319310259241105503748188754880706566271509771986415058075865099158939463710015763215755188877926632666143874029810622050828621627497247123545081829043227545534338740943875039401733875923616968516375646406039456234467240963889513273906260821795193996830143268920997579045638061801823701135920639119309833606932938145448346163615538288321696367554630868293869609525937909917498190598510103409577709676312592799846664476494543079186980835312307324447311990324642864826492612901246963260464493151447367307470429986329361241518077746884102686747996503700595331976761072768820853909555113385947904290940426417641740141640648879653097814774232378848012953495384663911218233443230878101887688666838813518689985171077264508812852186807557761051924065291973781638900484870444847270371375850349087555270086309643294073697363470833067709088896261023303863061669005400404942561448073796617739479850332512849359320186026066528073629511988047411719458461612239434873783441059810960691870924367040016325633633536712709507050063475216818141638882005510998268130176900981857346305156915648274202407953582445845636515172418554938924875083545806534092094443651474765665691018834870888203517668502971824849781554544009728307638516312249715353267537947719785571611629892844305534603716856886144687529813868344803707063320153342528882973065152364773021202514172129831306601528748803808605837066613668958857787793892836034034513745213473946362747540838696045966267682511108199184514395830215970245472113474084968086238082702436469158880521429530379764110982978928308009650471305901636495602992488559459709439871972847001419257047536690221979138111722351757258188381815740646967897257358332928438391294661225357726935816261435817256708023757454437719555338788211561952661831319882948487644178594856799951929449121504378491918140201534840491481959391571264561521292237513213285993521419484472408944665847547173259138804936998316983341607978978312988618042366298269429179742385104472398045327842209248904485406409007017036864432669689427909405431675606372863141112417637347929901141854969600793800140192444112246710909578105714012536926679848489245541015082327169939093697573606600683090538134629804913827789578983800253662865315623556169126835408217975320744198957621727382480471624855163480893959366093214852010482741090392038400475838080302597155131951912059824751463967050586324183906618917262220311146066106049221607088590465015467511902699197078907282829128305564409709983491243656455898898170020438218159200597834089922546106954700942720674799254530215555451418158498030291459197386752697417730595954800351666486227647924665199819532882942911121518460099365200772865844599942027708674724672588099232985886221129610333299010610208594943841791786858023788082993148018672950419602381084265766147002037889542845650775231267096089946952832573743184664950750126016611346463177885520714418523257951372936366833671621576036060288044578360885858146368887909153808408749606133483586415974946085146007752437080365985340932575113304289284834969696717404360033072111330714964455369383150666379756992518313937904344058133623295127968204570597517257810456949102086993881033994446326531419906530986840834763274065219886568089935224958211995112174001290856949624849243880037651762752117919177348366312895613081742852289486132101270507917850978628819406645180845223969308805563885667541711857480196400585846401804895849552076397977509663133404937054260513526206859764889625155819687317943390209065989401903536139585151250051228328787685595951258701833863886215232720012489232068316941245716475530615603863253857056318243622060855219074022823512555535529517380323841168611768062613925544183801125756262656149094448147953518754374588907544231427131056004790739932859614523087103679954008986668675360249971906945342121033222506748708110539419876708587156289473954494090314640887070651477423661087898329931782740704007361671240691331968653965365253404792881020125707002493414419268444985266082289778913641027051707156932984674259629062690517334520963187664088398521336377113855036653442097141232064566275406697871034315481668739992007319629328266713938803137916068519114210638083674214747793337804263303990833142783649253059602132079537084746143098298140013771494909996895786727517520565429965468151772090884581754616672873398153658137795736875200288112614299614220646689826410624782709942143184403825871322094552218966142271680037333563343291506677174839899903391396150535052979157487609924335986473117737354719325941433063059341936280938329131194841950416510120066411868967975883537077112238669030473589908352871496310445332078455132453016691833907642092349030154205367701573846165059322668843922655377023410352628806893009193491353940715662519434725908813106855043443606517861004753919684877089564895910015061894852311742033462843712799783008946834056288386467505187448394763370670234844719821797487712195000054183743566021876455828853352680294418248578785100868370515248095064830681907619636600041049497328103818561963634225945460934893175685773088415168086678065296050289642914934364506118245236928056884067777692010198352593100220299910124972699033558569605340366492995478886110422209503695539155655539267704211981212920467861749395566286936545362337305753946640914706300227911123496070063687335947241577335495051207705573752447213028904394797118334691762574053617766716188952346723644477315725244028082934624733263752206315893190924059323434693254126567511039768783230657310564729008694732106838120455605851600700793455647602717310916951132354559225908082258465391433242553264640280135300867588506506754367734287541631428332682489680220182094618938332926905738122463592314314254185977951720166177525534472306138024110095526071636549721412213049594153553149186262785789128656627613133206422672958794525494297935453657493985481064288623263469077703317299089334255283799617905620194075270853559556440547624287741248397827773958487207003790731808758074777100953654908568195482870458867006528354731309140134376866728058130787989626948769349040184941715453213793588819260911161066221566583470868637403493359185429772961707799632091403640294767817188294323345237555900731162920095120615898068392862260596289468823206313168373020826226890417490248407107523241218468973110829850161874058740026318413912599962406478492034618798259360813615704943660712622656241530442889317199354005167804082577001104486678162222131679559218014997705035624148857960030500934099913090606280632587395878401278148212318797839916500693581716291308404022726912968519790889412552734567743961307501662176115405769012092909102321097601300697734642201623039329721602445971984038717790037342674204050265566496914972376972954056920595341683015927224532357808565882304820077188799670023742629056689952027983659007021206619322518242936821630126963915563224656410420163995101798854341890074532746429213696949801108309745412280280926025630488034644803324836621035101150181477377276081767066912648999305346707355234588636508233774552918650141719538546485539511969434396211725146766287855479232301294901157771198388530477308289443413062531548791191522566313055247132107540748123583680129194739466386439611236401458952392474472611316167911478529643399329603951585600342447969722624685590143397861522324063988061416790940731669383589966325856305274077361879009072510312154226268203287211318903752920578154076186890723872387776203130983710545810885984114481502411745457970512056823417821522926732390808962028849691504001792717027285753717354642443644393838522054655338928112518759969156149102606315780531136002989670046112748914033814729055892761837155019991609442442129565520330987729453833922241552692577040904899188511941904280467674093968252016589105942036392292491950673291932307766000708650078530132661126175068875477446471001416226729866247123000796650630989949286972066488990822975110605590937222000682573388448137306952387511045379227004236965093018568035236082170116792640723675839715422478475239252599320074048935647065501077397544087578864268681867164199030601176981875384392007280632940519085108424916165798538486042484654854782768980881099598044996355274564802464483238630244352112309091706090401159255994756599733215207342726184165475855307357861783630932113975792208896414575717132374362799131444456032631973903644681433367330998534302423379833369061538049131365090568812587338908187951190582271719111983822093005510765509207312596328525243050443450633791448861834322366274764670650667996528970853722178528765358286284609434519803606096552875848691257953324932381633780968841794463025106454548128969559013166767594202913062050618382417066144453702763124090459924322709570727370131046184512612895910142126848370418163178323556506787259444996808778742282649252191580574956124659940859152700592942703993398538377372040173375362395635122929297757020555530710755312853675100216671406366001919395967407226858870034941794699627052884369473515800077318815429858270889961714080810507350685121673658193258252708239451259181251388419180093452581672251167720515536886518602048834967297338995148332832540881799988025791132859154875949533911074878881771029681207132622112033352746366527178985719713705018460172955442649438593523684134990879622884827180787603025068003972284136070876871733652786813826155225748189779864698159493891112951876469380320389378567606189483572261901396028679237467550587660363131212742052617799114041973531993610808029463605954918845591677826182400707746457592003435796716849401856682510863382961525790953647421552612294473829064008479116571006310362229727417409608571236257343563149762334121555271070588645329736641061767245751287169281990512258137586153541566858331809544717211475849054431911414374328840958974239702055165635129514204612719687900596791475685920548937648883652015580012320684100722909048069692818254449098807232780186697057154638213681145923556234352672749581527399491657029999434275437772321692853108775165710314769781907951184816877779341655835735537226534322606758039765073537266184172331733954808240758182514951138888838319930782362396728390721827814593807589582126633041808597788134576924535736793907913079926952306543371130647199511272064988295216393348868157070798968212247212984413416757493099424505668953015926819708493289202205243698478974881264249199510616254451508004093111816204060072978031513025352383782989165710787387869862160734813381507407965078483837964906024714687719718632082444369568790883360757796805781038105879531445681134535109892257153321554246869077183893416791088532147568004885662484539017721992812934965047294540581730367185717208109023633463376682104464955497643785355906809918800860879842063572074128572644195475438493377070577096742595761214320210805034188491817813393457580612205560873498352283917155757491372469001871849953987139183657069354224176002410237267365835567554571861004312194676359476415478500283396094436925118330840298681149369345376855287908904548264322616399343510519714667259548815797972931122668155195247212817813234780459190786330010114335718439065432958149875997526042858083678064511728570589655869274447986164293822960533075314492945899580380390027925345025326355749924699695801699049446311461147726294710265945051599172721704706291385588675792827575111123078389651506235995230839726832300766228452220302316675783509195454098032159227623310199978773115728305448227968622689095141111307493400263443099623285852272066510465812704492551914105521349886819574377125065123620984139616920480202541136237846981081219968647265194061035106597903607359041438704706121220899317130506182275220743220998540938791759563309467757087146153286028443731847255812085568304874360111529899975841296149079229958228126880665363810571100752971757314357183759787230605504867262408328608593028370436106929946117742496447104610121764902397299962617700146152578813114086484914248259602417127948936265297582474479912684663790578339811134612769127206158024439588879349011366067951093780097658819390426436758201506732280253893576090945340237856243995772840821311716527811416561144998235540009051999829206429451581528206313048991757200658807075063902802690236567517914226331874249812235896855922705679789659833730077088085795736252319527065695071266518431144897668604674162814486132826694334256639056961189211143603639979898163095982285483599523094001953116152868836643283997121554308284051867745761218732736990768327203420744944391058215884827635666930953900199896283073876327062187406948546658840093669325550453374121166856189820162238761585308288810172514137077022170564528344731611208425722303798736465267461291648981647749212801959971936960992023490602312625117738606305117021623623288304998730199216496536368197343186023700818408116914576377223655548338954614997836547456061965318423615596298476519109398035487899656318401822673436103049201521826162853255805241636816938607051887476818437664294604498016208553779952182694765817847031557563243600056969448299357471680564084342781369966569278941590440678335476590337338978628582510035698545956072006149910858383569236709549076268873238440424050532424528225883325091721371758764113548996315284145485553201875478000233068787726375784559139696049017237010765091958350568700061579282490040769184388617793309415926192067298375778362296352575777968223237639664745798133291164393640501424723381777669038868923229732120044644491749043319414787480688275445890587886139863810962729264887540551867703829569528887918518996587630665147618521688972048840651937891176870578990855348312391395003483205039508136896054782280548004985135390547793892922500482172421612285346513682922398125861237503658443377678224246698360606380983240255028091352861561900464028419107046623335164276803690330687869135614486868887118821686928240315454815680376125164125437564217006096084045144561181776569386980570469973533833017648870907279040128927484357507954077995313497339059895572482984337420405878812061850728941641422134533818947990634499067965697220687510214311067373538276600659969647973090470448578416446680805099895031431824300605338015874172256741443808330768658559575666923210665633188159441427822990553043686758858342957927364684759840999048178548256601685278869423270435171773553145564970436372497188104670234388993969983582617326623184616713936165838930475963154882286305612794426790191746993633144415378430102235520151666594785926105470102102472950746831916654445334536121268831173314812496716805571925582038885058041557291470167158929216295116341599454920029939113769885325698945369442049711587138591607412820142911998312257357152461009971047502436659626166261195929739565084883820732720590464221701283587192454916484106346762277980671706943696339635960252834429434716078602002240767295286503075195559351365803586950554349316390437451049850442847201082943646946337877984568088537561313426575561942051978324665961231884945826250804964448367291090190357452717277695000268100769808432589403848142343451144182118766518554309845331364014214720585390096571179007972058545105832774306658715607879211411314806841099683224606149707484753581996101240057570647031041406102855173931623718100846536984140868902259267425601827728490725707338705890798890513381745517143613602850027605493529091885793003675364387452456760706080589363518709419597843762456743308314565915115357465532056012956693495361258651738716099964945241477411891515239678255415891500620653501912718819909290743387564821061366769717900842528782299417264672032547246350435819438393729538457699156715568437673930007892508692962888403502825072029070287028980299024553364443888502141939290847536172488006661084861619149675387187741350365607793942612348441267792747874584359559349501355490535139675734622901464833417981011361660279852914556679809010775356123724775590292455926389774093181856784991027409212653986406640005353442981423370894663675690348588820123365913348750384512730828828819916511774828221777767545241246888841282680216259486828627718125819734086603364238179397974444400475559323248248666481778161831141014727337014267592924413142197454994736196848006494119496182532028845251940390077705879973016199612186322237024677746157288008796768041094044371850290775982688029301918753249516864216097924567943806832005082671611970217214876467924410085011290072381472878726797834306149416103571473226696758109817906377342663780449465284867796775314993805912066547483313934891839277772220878754788162292539025565580179743574422223804800478876330071242161762312005426576656687148162418570205404020111430957248356163275749279730285551218548779211420219358768334710669070430174307802644734049252352884457534525177811076251861527511212281816707296087177214832567700605013351807087313690784476507810542729546890917236427398922969491356579010133507697706181450825108579314832594772206839102138984853136188123100869928838367308965942767641836463694693941565138568829371188401048461658027187159045199124265764371192275538212107947482041143248521563651916959271383808274601216789123462416807577001548732794042332038890198658172155648232600540235003060942818577176395778278121111293131745944303441043042929097662726027804699470917046681291495073236047493814443276044019428488312430844418346455659945005952614367993606197887703326576300559603408891780992688656149123261911813450530172662215125231234491793645862220784176304520843681309945370903799062666356929017732441256039204477204883921300120270065665252594668075832282344195242052995725747895847493525944166464744704711390110303382469924599580213136702135473171788616874996535483335895236266389524884224434710047717809850183029177139376338344647627597220612042029403752433906774560995544318366454636655069818812641390744564387218108703892746257594006742621149637828650403461101169828291743502803291139410798781498304439201443349265778816069955662341304896011409230138081130637176159914023403138984480133458990981985861443523766587362521153821404188202830180427270242154929826034382796195140133230376635544819322632129007657199430224150443354713495825410770366692486318206802596612657712563184178412513657520849493728509491637553908662611776432163714069771606928706895667133107943632938703495998719248721881348717745019852480848725448691832782367739905739515721674764232427524590494564351736822375780994845483582393044793387982160250736127033585009602271214251125726582143711962081936020878451483347375965039288491997176678912104668271786310963586622319577316108089438387099640411299672407152419619756786631885383280642833763376254431398494869533345264905370531204041733539480892410893153978950080138375117810952342338507900608381666739375777087053882818097397674736134920415108374173231297797367656091352312810312930572204412027217859092948126545068153803356749864123730565322077114649506923161997189423989103326596612520127455084473016324940033739395321064312929437849532148922524697534483021224278981307514723239800590399050356826245356361684099187185730082757977298886783351323920135460851149403788982723116153401123055969743709962493193837346555127191517184343465494678823814101755925147313530566530879890234273162458465985936104065527130163798857987214977469990756341353078084836443663819116115084944137484449115393294175259645004123672654702904003107503992551097467525293321021872701499852250232778550325471826330590484399124190720086224929068928436523619717458186440727247508038221936489853112392127187143108971654706341345869918262841260928303717198172757701272359050039703518280140787491427680835030880181677898549070841799765194760166248011180383844834400904629434303794330864909391246789977572826121951406642566857168133176674671797090037962495242810952888603451045157410136904937497586719452084131517115884378304271541934966684655443427579212609797030455563359955003391250727339511568559404350992833471345553858602777898215408686811604231437549571662709426166061281266446198345410041218200090553469708585210075963611664399692948674918673105712825768006772314288797702234019425737452315873181907332391151058145623110996287988522459687102743072949202441330046982786494224696920923960742325447967467050898166758585003045701378953660877624576367213607256773550176509361709355703041914090524021417969848063373105190857938264197281969051018983138143532987737951519288587003037836596190151765852799875441492354301492372782620872641189723415762411315123658627704456386474677929438901366466573184544848988558696731514776424346132969041093248971985816417791707881942745305948908681236751572512103631150959257152911341940562265481552134304304284070562630552580388697225978043850722247310194648870961502619235226392911561850240282565376196724117717061688193614918486097484894924211987344768546807823451717718144801382664488776218649008106128813863501819923325047531997690599588130956254295492418450597274856602205296392329240368165531651462116306529185530932656271039915637792267376777196754385374292989131440400968587783468833916152502364977452404926173931702123907139430470619283976877513472337069746196818582889533367024400127992867152867211617597564430808360110992178810954673451863352481585743001475763888849745748417171949206032306943151106604425614672713187774275269530401193717589954869005849892990255649149823048811905524910946294290917715261208379567921619932886080466045099621249156422063864933782890854234905696867799911784620052405668954342783652029877365586069248121956648946218524788459625704087711941566374748005888926797214722357659023772784740675134424206047459748454944569359033462273163678871424040989613643798351119181846943281501253633098891412972849648426960329435858632020466870681581452849606656280572590942184086518550325896766222671242064611548870202396565035531286411919053511721444947645972266325995014102285436980404758812552184361533496387236444448981340074543188412775506125301972421669898905896092903758933195899045850998412521830757595524058213642311398171007559617581044353096287781812489321185583233873126155751092515983433063888421063604145808195953830672986095454575971723831127166247790297487596230439588353029569410731731024871526725251635342333751733740304669479428343559847132835157734289761870768671332825940047600158150277390047819735597154847642042128974382793080875240054046419910487933282179556340951605543302067417357414552794899845259182937584698474943430229137101440018445814664084150845187387182070436165737743601928213603139477050548230984607962300674747852953832342658898590293051184543033998672346898732034218747603817951806195537615480610485183624111992683577145082031866051927622743966822206647990738292977902285192422986052980734913797377888961110130065208979347805245530221986225440191891533432133836540239430041941435596235837352234827918341032688689885135017115605389207719534619932429089919197135589506181292091864048714436170814998014184804072141944638726590015636193838161607777972903262163579335427695747000443299560290599253090491119838678419737585302030665501628965674656706411979611171481299466597600639687440710494651575313030279542712047338253145158290199274586673775286205182074473770965200661565397900420013504209317837380963244178727640019292904515657967257257882851368608811120638506591985106411141143447864541364947705545972969245438650345716822092710683976854112840635032960591977179260437674566768663266767096738814438800264018508328284180414730321630142091277142167119143375799158986922385071827086238664350488388705743033718928746349754371791483184524175481183224663994254356893346011555814462975699577473006462666254363515906790400086677620665417066710360377054116569987339217004845689841788381150473723464292968927179972537545227875801813040578877159265711900429255054124784680127158561147158793482900136340584730499555081342379114840109522493822779959632785057483462976957750026891421477726932039136631406005079823803742315925114633142349677604308153938427847287414813451338574883799665970057046126196701775292370446677336533158550139203455401328698625360066808019696823258977833858257203478748522880448094342789264826146310787278562419853957819794933887417598615777398187412682043444021545076138120140804428748947828674092602240914080583380963224352819133463753481004395427610976466055762011553713868399489573701869846924317891263482092607153487082514502374287400700328491033124457103440355519225881194183478401696709926218056084073370985859767876984193692497321263833150694226230829497633641716845667526667438104565390942985762317652664761804137242413948067639205180171041272936552076005278852987119284162278592641507154419849659376718878104307362498792933025000512362482918243814886954365298071041397731632862834535589316830496371750345509431004334075830212397788467502906496248065902287860010388853052307417914878026861635153276669560168321147077431888483688717020991910829516325291616754131917870269732208927972509956604749409977668025018350315941793788701648951255540103357738402316059318025767911774245407557232268186850380969672396550176603673677763120221466823465476872750826683344577909896935277850864431702822462951654165544634105590887633523467956327757809886999054505329213695266458821882719115673751472275924916970647191848508924089143853385217948009531121333161116085810860282185406314226358084551823628340136554008562855619374425202302963823379921913731464651235468039771434181079398250261762271943164177458274746348370771883905215941184523652774486023304278770122232643538408940154365400894370728936346978869834711317278653801941190730503627122729429144416361562957432992088514727705063412400020813480041378881792719977517193396379391683455342594436056124870312215809118216557768320725933882762393324041444585421435921428591870527860162839047651052140421400944774602225011898662809077648105564602489258545368948326911696718931045984104752115263275890861916605286818435362407605018751842850609449510547661956754305583357089654840784244361712047359179216295912263777117150392371869460130270379822241713583387545151111033842137701231094335958615398794464216351802834264546743510459394479424646841454047580480634960265460831378222553697655292689915222456679319285448835309550322021231447640508476166882296507090928112786199540872478335024670057347637035971844033130327299155581213254364435888084405802937649143380525141888132815247611978374283779402106630906828325931729446640106306423988872716943943114684490046065098289590332911378908960142510916951171120425771499964226772529891553120164302968823806827290221528565770007686139069060776140188261191803137482477915401791050531403236736200212599400909091604963685011094848728054022886126160547060328132917885748686707862842056323530461452327584118639669180158182108940548803218240673818198199532245551185681350935545602516721212510724126597946628587243977517766958121533307315327429454975695649586336475047135095409062417530088296118334333563192581727869461274646324358788185285156959380118076706366352160944262885836444044920545658310255738479945839901758812739868557563507339083000502459021525806800803524867585150790213838620311969152006977549422323441321579090127594293682381853753514465557377420339847791974475481549554478551917145907003306942333452880695840863727174263482108063778417061022325417601065166155907825156747462104938407996038198854678915487735921258672905315495137876409007565865276540666872808570296417738854715419891985597176439659484666731402451699410752803472175485198414896918656362192761501986056484579414235753444383754967596102890032790142747979312602303592697424057239403591485930248923508299778732183782812229516707959194274525042741574711206314674940767433500023812249940802354465210890797623265670001529299404130228909987749787553187400289423980149706646136669932705736979657555159781310758271957263495652329273045332687131604218546783870012360630750918441398236873924080115857395440691088129074748217737904384928087463417784743145075081076986020924418090953977340768389650764740031301864208045690478973914959864769911976948391493054318331619274348973861793748123274952410256120849462547352569640360953397000235301758824241657632293771378343983949406845775324948428640811543310198488020099016340876550596811576076363246975766663780234448644897798826807760765579391249671044871372392936204382499731961831551874225497204523427942966246675490941620617225033253382821169768193147681184980770252048579709020714989053634422063622606267479518372838875204214328530221283745247598907388316003415584551444964500348379310178242310574988086482510979209551108941554085719619753363219729221923707517757136544394844503316172248714696091312276693467988310048358176385860472956143917515494853691645371605813519199452532106106016809602184907527320787668326389203767037941040197734220291308489607973970572425878611113412316156749775911230546336671320260998263834981409985451865837938082413210844762722278484466354838963619413315016429606556760691180673896842954126486455410516418565508909258583168397755757805088325811619630152615565917047101862653210263908859745203639228152502017586770366396865861297908192016268859256634974299186805204943255956673027727507260668165491598784822914482507357298379504148121662565861878223867872315474550265106921900339707365270449155862950307604586100107225404412848926270506823693314925051233424045645024764763005722495195618343349815673771533572449433157243252541691589740683527032587289843748884951305018767411512392649514405446662720695092841054711395710782756162038990354488111901736078240594017166961736865340560917106141648154710819776897849122228136127839795664435682930773727783613937570462064287427699475945337177563517638475985779540706074264926088095397907009899125164847753543830690051692627795784829184377777336547407001092253252409620412371331761335541933747398053610247776820420664867077002176190063604813457478573429682832886782469729399390492964697314636878143216373408005562499426088303262286061271853887868281820931173585657332433791192508515382726128921099085061304471641224985354457827898290660039757526065825886584006650005022609277998300909076779807678415909959642741489047327953075270794946357775399320932235085807906800263410190660936757106917753976529109456304460505055705880161662422969422666678458740007144791304359917471276275663460222400943555359155706871604177981245753809052563929045910943178461237097364405537389128114757170828858164074049841177037052347993127097862174926903252255171793744067881785692321194976085378655157750434086708146656855574020323002401029940086649045484513638987251188844273466117284942584010817307345161856538493384611332943820729771762012345663005012193275543073601183168520630107298133474603881897933620514755816616476291517115143040492290068448053065506640255170086611405692223799561665007599576153068224820080322813301484278478630859495142446459041041472710726601199786829665132213045947464181466053967347955525047365527069467465168324945498059804510721470582713210471194369278433189990589295127346592218487219066791072716720745108642855536415920120623079581170299909565063707780812043325990660884760542192282842644786806774750375838589713251275087303519753391203203134754728195460402329359119618179981193803465356303836026512796666125585574690752785194754326323246617526210800805729691202487542354580878424663327650727535625498442456076920719115297324248101039398736335932435152927394229724229783561066510340699600509139711488305592155172446298910709313815162402173574367298552414092356227055737732403571944081823711178278572999370280455075556843269848480267577869029856751898383054022899809626950818934539576481124172256568281539891609240402673903127260039073652983334060216205836194291427687543434881241190758050571666713476835289387840322889969744395741917819567780261039329523639142041841411859689946885515798504401228752398710463277431412156551954805565180488839093019459912291765049600927451896854943825037371318827635943213104143646516157459785368056394673432425904870773876861265069786362784261710500711401147018938554286917236714714841853334408817075761270719575067407276268557688218346225960882778728543489770390347151610961929554452528167606700270157042978087370884628620859845734934136868333477271305151498729955517979756221835927336725698189858936190336486711385182028272444096206013472283212151859282280252598414344930816749623147458008523286120393922670844367585165351587060916700308061330266152584781331455640023923664345355393494227725079368531948896493985184964579205084180020830702395343005014722234446951779951557568761295244220804725381098109818432651494315462694869381786808832722435307525162966205176200329667760528052380515378996431532613052235933017581213201635102076716360906327837845079532829219580025662100558450086659208857800845329210370867198445629510561747864878298505402728402023102532447226754903658468920218032937591226116393466646328999631314071829765609929971525729193779453945687475873323838817714715878044174785471023375017247626459638768997987894658719202195281189607996496378692825047831129578881366715429639101350065464508221388403111875601744203152379665493956990043899255540046657599241811733741437284947696215538550529392228887330445776534643722778669221926455987031526268133999991618872313769981695387400254811348562085316964652678309150863071003881570810827788448618463244652230146922947708670162522849943366497576499062469658785943287790546102574001739237712505648179157024498417914506634081972834488418746494443099933407086659182932705527248870330335768221921317773313499717857768139134518061613345252634447124203029108904462682766273113269519955576619055730512060677294290270808823820275890468775073594391134744454787144015426881733911835377336529620655385265404665096007713219165555023360712823050702236802137182634588697154406025998423585954700742149819731413221693181769791903256340954003185681350503870984142265401578991333415056604288684903789393198167596295095069985912337870319264214880213803366991495622319656080208695523501574588670599083901528065524610840860928878511951830611705820527973124343840016571724657252325467410882771596253309474327909054933503566313391740243973738717695038005279589458721730179828342681833628887253076616890281284198602486786275399137799803911211017140318537706305135975629552806129438961121956478666939250939223532713150283428140528619952110509439472873084262833636078727224532981920015564155128757800410814740390449278313006541689187015883596819432314307479488887940804266112618590249804140052313646164194769534916140839071620644051490984191904745146555519492088943583716435795891588213689731646542904279970726707842783892621563426903241050861758236613888973534163639712740717553022782104844570324365827402013087418135495919495200498827678876447354676004733122396999835327442764053350144029485875031925203994725509414053169974766031582191181869248147640893948094770206813729994856637592091212692164979333669086797487626556397968763753097187540621268231569327771603802146591659436944927706904285137588465870695572812653560177516925205481829516461091532121747908609149691404561833890108659390106983067373497380842068125318376286111279833836762273038675130769599179662951787523163502538101775187750727381303475920813674492637845646872968331297600381621314934823233326916951007658576350383532113725492783158464153490752235106507674398257491524203594482273547130346430673235018939207567047439409355084588869546861720481197550002567999752607267302120679576548359415573823533141472047514008783990023154616208119340399429550157398751399562582883419664680831109249961853905387288172090319342573293283524162016667116236125865840215575304138434373384220094400220729971333782669386338187893549495355459158575155651343896820437256290736524825988198905263188464148989502189564790140244297424296761591022217607909557331274605412289590904112430085330934131422872449279673725053059100854897326445008604072257364251951361584398436745636087819500991349435649786901638227275251311552821088986682722154212668291490120645562277918199688603090205548320484576912345023995047538159711067808152512733672302164727789403404857573553371089700293746006145444276965036692894851494967050935851252560708129790963556188650652570996031287152389865057483690089770474329847168650875360470062176731674288605363786652574070578347623214831526478145068022819443025820172533557674206670307128302334934709689389977472044919252409362099163435755852226089886238517552836418173410214939733594681415745032885637659942773994359785647428676198443054265071555883217787559073544777363000961459550889113523401509538259177962229833533384739408378289574889448692186710547758740609439347964197696028935001361591233755975936242130609857801948667974718155028467785027678474573265394619056219317288504076249916099000546050929773864886369625330919929379956080942165938783086587970750016706299012764057263801737879519953346404335043919547205191120742577903024211458053541497973584143782682057393103227682204749319000775005892774272925851617063878965169990263405016456556384557433309412910441402594778928922680415251538069139660587731018620576166178145508391043915513489053280379149628265039934220358214754429098191624256275660440685352143668002741493415104660381137428086682970974471389732023822573301464511416949978034574307552744789144270642578304896192931445484987884881310352981575093324747440515447766589475790661106316423599464429092777044681435871060324480990395666970434503900077008360530643760285672057458701051697530471849217527371713974013984115992845483854023881075732855885539866966869533918139105683506589952999558090112919973393225941965470325979482296639678785641908595095652452473770403844143888906385703968397504107624694487427855921363904668329010559669262369260408099547090235806558252050034399375168171293561165426683698517505834193175206310813576151035674449679380726099032623225072376567684046471628893165584221775624516756364189617153612733729530390315888609354881484328320406065988439837437033733614163790286124812755782954528073418916810088086174678655596448436042273460318137097526605248452135581520491163383032747152077575837131182885005889638185220306933911460138847795850779808882554640734721431849948291662432103133392902388443449524850258404512384201654695815925975028186540333733556946134888482636337004533335165323362859025273152292310191103004025308069449616301268177607675018745554206331333193559582765787432510389082225697543676406949145429660858852757217748645430061049401980624876027193754690156237839449664093779049162226297135765028497993957653901889350500265688642554747155465778355672475482708032832803265558143547184655656275871241830276633408651874661510215887587938033377747206855103782950335483066839950689429432206700326302167099707590841629666859409093567375169151618039734074543909750537904309774542474877947028045157320268701168809044460579821894327528330314840041915978231441274009840931021987630291527876101121513352879184015879949633037693479906736126552508751903912599191920891917474887840629215899120764274227290859183049035737604651250208397379219425980090231973015976728071416308590358100190705045232880675610987713337062452019708873248187486080439145721426960921753897548387803084712029354639627040522692219235949780592520839895844817992222821726208210294475409779208573224866584169172890823649833511780922842907247105086506177812115738156221174922584288338051319703878174053090976513085768548405757696470933948876149552021327656275262702173830273737756770803858324925635446124008484362658278088956424240373503366828661461300676100986886059781084775292211029056949931004506060052224356659410868255580924747266861800981151016086120535966972406233671108580139450370431621876343375646461646694795792143758248031780991006286339903528306312529608552680728904677451402139737947409823282044414356491752141997874518005095875984106627696870909672325030232158672664276012882439554655919334331697758560197407596237136842722737949585698158510975146977481742233636084157083559161922464177759184267017890585348127936107508790276816289771764074457358044661885926908663414896606839667959984899400477741471983176030843949855969667761989623403337716600307978895211552305364526771335969086503801532176047682720170585352727860924593900678105207544051582054833381541646105083639937617846226426321085153616778009808544453611132846988244523820748841254451272427259088673696881876799943701022244436106447174151216855746353270362785001341357143388916742801853166786279750598958047446792427135663751254371183826837294946266898818806905179412793815021963499914137651512256166354146753202808263985682129875727756812233460586220910108961678582295623671203212883043610232072957916684514028241045387470715512228334891926709678627251689040027541116222855053914460743886442280465270429550748469378457205203432657248443619420760324030581440041265350538046577807951128696031231411567432153814466711804018063375192936724787902627440193762294519233069336768537587678600151170256251716023024747430763795995329192792712872249821765610107988654828556629107325895213371057195411726782812643649897286656697472400427561624413165139121795118432585774659353701003789133721202668861384169696195478743552086918506645317494613357175416714929875917835229676923900411428842886334969503372456326549140852356221557872323739620303986869593634409346401944847666153863891070178849685094288570090615681349746160347672926289177227791539465299900251603191616599346546600659559374211539273885455086287222320357281028740719470290514439104105611779408783204148851251655161254387166567783193630082475777232007958101505372744672124737191039034953010490510903814424430961245949475850750429486010942810123489153854028175455141516991215118418604170034441028842563525886078994200886950484446969349102716299535881034370074215111076203575567371261651817797917675404384783661818488130823893000302295760452880498660042143500087270838816912289531021962159648537446254520632449805856551427386923649497183381714812531194277551775890278614603634881595952752021692961984541558235885694889010254190095388152550737419182669572981203932408441179713723013232868060683718135397831324338784226333223887893250773458351019302893052486367554569865589420791604669145606387420590411396839188903760728656860499722294521848785263588215297712878819459142592741862485509174523121660045637774523392385244487746199605668443670789588278357377208178593397148342437956853929662094138662517318014625997527322594277124254437289645145509432217334715398599523583819746010016980499701425836830567116439228215051667101292212782019924591136994260347052198702668587007285316880452395659879658350643735130492823908035562592281637525537384723577932852568989481700759942619515808924952079473602928820403149115161160182118083864146533154704065945040438633208936109991706807642050934100271778217167971192186051508163647146428014210204296862067022858082037394729432626820834950001899237687480918691412526742967906510559892313711826254242837113348658621623605027357616820752483652543727605056069381520271345614679925489140048948754504787180111021038648435631648642491589332169282096262096541059990401477882631328070393735608705980881467069411565852773241627620379113493726534293500253613577026660540420173512049205953650093965404829797298336439017212613898406766109993088653620190234980166634374956430085896106878194595154749981263301121649510924970022665475338013599937097882822008454926358627847543646285615835360385088247283593539314717541340269598818402340007407473571970178698314543548780318577251315754172477533248412669369254441655191378085151882703769403115773892900357250992978394732477539585957653558465506045811807193894529944200176490969191688432912699385949182063931128594892592052955328664995548371157440550608135524546804100834873167593488251283791861666689025158045244881577571425513719614581478765039459886785669018601284171493370656175600942749787379183730986559083609803432062663590445074394282543549775938086786555290456731892130870654571665706186552157588747850305520103784641449871412804754280091582207959050291193519155285875017186246788577719558512836690769405362052640438810132634045323961505636371384238793799997139577717707708822490388249736047806121036802538745846714393345704018196287285038127637133525196933789895682192664415775557495925263806581413459087361963964421538792232288824677622241087630893555463746901196406999442406503773907726479749390012600941004770386005215050816695335354953825328201779134400347270920708942895107595340225432854533838300875414276818704724166941756352604486191326536213737933216427873325761773509170762864753142162444867502677160621539320180398322818403647392977948137749879996764838207635980812690580926918610438314692184953344598532599806436564509711888470605401161117303773332779860911654541753841228853414117509218135210758938241845769252632960386184867532163408759023424511855966037963125023945516485711938381328382918556408017596959966118406875941535579885121467412066953659330857483414636202083510482200532332591537636598715056410105718456998959390117809463508050573885240303311858210806115986871998732897368052810095727007580401975197233920703370763127289787865208678842218777416902157861639180514047322371370640931703748373359118089135875425300650274379131303868848598969965688725620798952973585461354880505880451532017018080231757218485597621263260547731607162344144143646195122912972807408029991758873410112394144283868984691302201422558703843190940115444335308546986167279748649271174184864367380155571821674731991605875890486438273739134820839561255608216635256446342460727363051988648923094776415538456234346394596872562115841342943177562941336946316910874725361188604803227459888678902087564938375894526079272768245546531833803902962976200285803223700622574382497640277790535724545014612064401492941495547002296575203408279067758855295601436902144677764967417622316907896143802900982254510220184133743814557703788562893513166942912427761613845749998177003551529935275880021369409192347829026844269534231445432203285704040525233454092427545833841676621364583564052550869714743599358363189247681918296770686123797456150159582738352329062639457644187182825432172149949988216591595312628073174025937653539887829036818101723508563980099387606338112288861630522345864528695308339334957041415684707505964077783860193677077957671559865290403664707829328018907647451909108850150846054786931092562344300367726402029149082178272516819304093913695955068545551901256610269615419449661480732583239395780651041610257142585452035015824848677756749297761866561335386234011351288017359984817954946950037033281658408342266580250753828643591707263694974093317272507623082584505599455150011551818732949231973364366985387185265455349965176984488639075394393630162159633460304592757850129525157221901307225306743409203209880643241769684046691686669749359225578164443359298701304877548569313710771888474751682634749013122682840683858421146584265768796042116942784073863192237517263698572018415467862496715346095931120711810039166267958585782301608730318528140785188228243077989068879547158605225199049490061677196595645991170331967825973160983141422995269546576653003014585742866263613419581678130654308007524008851132491109276976602219112324551796091494992631005580452698326283344452485307798377012631838408364039544970355038219141141823128079188639478139415021592475481602810543754066471051878664533812988861081408185857150891747627131882086413381948247805977205865764323674220574767545936731573846670672780990994454811589603591149013490120811482858055155174096892337978641870218580341758996260540218662233199351237965044463176406655654509471709369180175676411319566850813782890987635810531480310455919335479270689066386746376311148487342020016544474279837241562375111716433201566005938527527422308759338968469829273117613867596507942299339737448715518509250629443390756594415174826427641742265709762016415010641406509131590161846673734937143071694231585394177242011098829512167379456359277142023299967544482401613516712053963151978914753666188768558407166324211527431248744316290686164998100738579409140039426103870208357611595689267658376961143954119422509557066080806106344084681794448883261300338084116259715704680826913079337906066778372471408392221424382225451724889652009969144236129415302585445845876298375003781283420567003974120276000259952425433881281378417364359610139673853810809431377626094318156154228492081706121208456336495897003688956019588103498971358849896018718679745594705902156869286184206925471498683948161900344154853747070562459841388588430314230364407347778316617156392643064392469990135276129971330588788350994003587715707984224816082235259857673679378325536395472313716286816974993165294392362257195237296330018825022523097990526379370909919134551951106725758416502414564014588437063932152544493377252534958227627796746608806450097914677278688916063117837700488770166534785079510847232464090558505296576105672056618672615556514786933788891739038419419296452565911287203493407246115701606076105586578095822654313130852830692651170736159304431339974964068773612670814995344830569947364122226275199856261748356063416022861945546304026876205207389183554174321318874192300517346617321971986937099416275296841712160969421642184788478217736477620671673726165311575426399085408428624477784428423123154966439882169854107752630835287854036317514327367589496500469756384354925424433986787128257537044996843566303021371136121949784740898131896541556752212578455039465214987788215308331642973357838509032598085472065668460489331084198631083253670668825891635343097345627701683471889593872309797165568056684129630641043358004030709117724544406638891827382855952015552476237531085796397332064356003781881618087987600336626763538678016566721760543135643656203874241019215269363697071794960684558697543751654338950167462445650344260129410388614406795178046506706306747104881685821547917113641651509424273534333226208488858757547395098204850042840055094220177509974070856665567920769817889770888907184054773745398209342766437150581256995387928372008972117858736595813091017831697721259660785868430516524062260080476977693634785626118336049376115959133428552394960177302966346794709534075889461041603554353902916042231771699256598529757095711196254341941830709606261034006752919208521457311139703700577562139993540079630039217459775836883457196269558158450694872906737127577504785741923384046913566505363705769500209980666489109787018416550047241944709997338715082162844055429428049623178203622272154246663226322524715904930244323270850858131468109594107512461071272990491284837115884683431280780245772919481328805054184143378184805435209993470163986137971175385760572990244918013445404204643731446203327297567021894000126799059558028305569581085262110520087520835265596781336377646796269187922948548202074321881802496099792661031376343080084581285899992668784157325326870063583869323545450826817065108092068507733450251930427467122141898395782756812803527475222490260430774991210525036641280321873768900761846436050210201352556278453301828510549656944555954021219247362217288423991440265282041153755254913653423605094714036726132052473708360200142644896862633704299198457024842192561001182389086430078204362116489070208328221519598768337614572836911501489594645636616119512477408694870166759561463212885557772216150141349523369703391288391369858164470740786251237763751782723561770466267900833461757650128893091601680996869504678707932806716010152952724447381258558903466417386981046680888497653566956396278099983806918322915887014426625676856915189321132050752795758827681556104583650766971248938774124114197686143449148112740384812154150945202902283453912648395611504234775615792215740184060911635930045827745505259646332071691720492095275882523114679286381061367203594756039151921749928056684073053824214051351395472597049033442012623909835044557931387888217643560045621089074814438399431849842690437453578230664817189471256438194197055479627296707676849837376917169289469590277887599601458064747519349365369157828215351978046143014910371633484117495468980031833130504867267464142915674981958620967090805343836883715733318605339306731454644377900619780244037645405179672210317751153058501624085589584352701467070179048815548816413644139394194466630856163037372625745061079744575555868937150475063934223214508346748696006773747898266457754768801530840270385405247467285990033001355720301102571749547886465743043364812234611981229979140309492076342087838164123662778100048318969994324959160082663888212167831219863421673500300251852074692463213794233162901264568070432893929544614920001698511693142442956877150498605561619355036118482064603331905905396112563232948911827531090599649854319135142039172581000395317882971954132303893762778872162759460018331215263340155375411382395743546163702413477224344642977423000705533853422585338609714072228951132233831156841361878668490001538840408783310085430590045205647217079054556145441873903569543922927743274600648162279090143090072837786186043076642467598986387985530110593714738740338640670760018455134529998251492959324551721723957278392196108067635995015848150376513195258240430506203232762152398239043661134507472412417947948974094525466733427420127458933537111436226590099903672637464365844273113429601982348848662819059482704854587078081741762933238343585886384315471965558970753711192431461137685613326639443708690646137338402505939643163978964771384490532870681010194132739407359761147397591700188663101831789803297988726192526842196242910870443056094906395934315756899502091164012588700727238807142553362630137075250516874634433612429754179996029231384202054075929361246989021928888296180239897245433093402128348635865685094474787369273672426968842862136388871605231973400932060979658107606430750140612971187267530397909562587325045143714807199914514702237689517168044904147603873651681394690770959237273954518110299830191479102828285660391633271855131000419918652782837697224277489496939141223950233295234331864686420783454902747438189741791088256481183798031170626601491345342828307130611666902024519910805386140746666973911731899595733628103250611308454170138008159891387860086850249574183745958743855245201839613891832078453364008569135515702251420677018181145419622328513129862695040853232111973265686503215858453425335007363500812125265555975418164226785079146316466251796439319994198558651105780284048131605696669556216574378464779583078439642402425193908795243409280200425400669488791879919259962928630467448857823744783164466771445156002402199719651719574703737417050751902032464596272351730012451467522727536066939053265466128284127152328383538273367765045060049033779845455065453847531226365755023762242637015599077753530614161731062094863241525289540292609228838079540916377788502694242498177482274696078982969078729168117731864206437673433439098242912194459477415489948204469720720846742079295870445086815419183220338110432261776707375538211137767526413376783779507196281014329720132093411603476361656127194798466791020797117174961663271790290025079178281725901315390333432052417181309315571210021671804260638541177448297345597353955694488049989884984287427823847979548671056833619112182657533915522051105266970905549076988933928330341090382836867000265244727261081054731764346920049573864221328853359365058224493975255473158497536841093504789010184968987744538205533633727732702900719107921941855165702574898171283663765438406450162941952402456213269725613034309991931070723918915878955788768994326751769530991009440308698305757276021685217514110743238784784978738258506142122624160818855676528762160991705981871026330545274878668931119284591505795722897118361667748414216285031666337840189293822305749441465078665119277518909916577905502342589339575882904696245399166947712050768700725564852988560367916395236613397330097031935995211970303797195668036951199390272357001904149950196665878899634104227159199546367798310904868810559670607657046936252488678459785323681406033818381411457140742041134659346810714612385817635019554311491145929989914446658898097797619251648216197426440082305762035144069229903363320881310647692039308363161753249774335947623810185028465411632366481743594985838420683547727962478613313505038431760344935449312450500740789663278486652269804499313448366638141128266353656386177825361602546767939467018182171996501639311335707289860701539735204495911426652470146530642704487958099955428132041306923354386922927938125245984777485268249836552637521598561519542581787309388532656284233697030718343943322423032070093006709326652521203739588753637607203256183586690213517850420923764373967117591328914245418217246897569421905898519773390209767973956710610171969274359041124951873859009960506733168725433656823582689791765380032322354262728457981700823251606346454109413080811466038230998471597965556712258336924481242333456762085722862672606488061467271298903967651316913288960355196150263245807896039166095457786446488723843446370783829510227017359554402787145878858085336599642851134448795205613149248972477454945752738625152636294879963504073264042397435503872340315591018305229970096602698277873402339660958251546959418998300059427931384584140558846971858205203870144818639971799914108081708382501210060177253894445821794663090429702775753148884332878908010925654501698051442149174905706653178071258670507160260544565354714558249287948512343707346046567176839210019491896641429237619705871063506757870000614128600858275034938090043589539931173992396280670258556850126702404193755545613699340379862917538369842681521514932242856797549174446715591202115337554587232292921235480438440232070754915791449127222467007744406344977235116023547847997294108220002728705828544817874909735585171798474160627709393604339128343419219559451738725557724501573771238165132872957751668241558707669573687290907052012946866852610671530224467737662789321659035756486996153177027604807461457113901476174884955996409498399006863191293904052100963963264992161839884173722289571301587150174776835858654823058684722021934415727062847629037563589859572115132281430992635439661555159488555503350010870715746539166581504519299071969340957015423469827670098253408762017408403691682094860963449714159712899197631390980876632966338515894934074407862779158581871601125684095939520767978333914168690497856098528120608453630481818546917857106153116717505576928608786483335844775360216398551523816781281902073584905166103751227779003350165540393814218124354441556824227301291882020801107856979758518835623860134793638425979716448065703467164138695092553333920719828947226063779190945421380211077904884795748004720264992803923323327095195981518895889735542605675474880604919383463892143704505875220957203956340402510128839702945747692933198117259364532498284582488780108986157255982390681761077538882370074903881003844025291008987191845522462962381560817247407802603371188242722202046613395589805135034737153947028763768883577020577404228800251020674979112258898829055242181381486606889372668939953942749406867575259356003575282391523834341794048460713771020743582333160182218190721284613341661169863779461672851346958766491635226480666274020777926034594184340912041729486357130663327942122888399032312805501596310636790084990862970144801230053788363902067069052191361276781666785876241602426293975935564796553795818483222118237433260259190275660835969484031652034535503460718607982569525653925704391167033507407267170006441502358546343712434873670654679103278575750382935140564188186629955047899718051015725902154507943172517922338106135212653914877830199337334697731319480641223762234461967980239231433916121172564575121782088426131247286092000470625548458247989714618802044139725431926883434428038715453884188296394088764281886770031727865658819027848932815824487142686728448476657836316710107273398639378470299098777823859133293525733846565632181121144005384201320095020111807018473290468830266162102218359666209766752245072402936568391371817898657828821554348748964501901576235972277912248433285755458875329808478717765025572610712968820378225635143551403085483889766150444801442848093755348080350748357131221003280179475569799277169100120025512273088133000218224235195621688543461273845924714694794859287962329460087846181942605728234949913189658733859331431087874567638736390265882930927597215450078900599989621921568428275825684775156358133879797076716416545625461592737098197256878595783158966458045324203867922958733139020737927587548996114594449410986432970675325027042396546155717454365883621763302307595762066115852883197147668049196666048787875949361302491973561398793920028573906634509912814770539046027297408068336415226939642687858787280812922672802514620687562407905140507073081100924201067726873867789760874487795282618590759915060988114153056475287422466254057356084785438480722405273215237712548505549489843732446665613243770399444021698678057360409223628094755596156069223945933859686675346371461348896939165601115006408988235725747884725083751827717168940025425667353724652832832820775917970036831352076763765361254105568716548884737861610257533927151615404638112427704000591130791291085091490395258977402083501155750454049833044103050486661491172416011046842760711715820700083203833296009989072132057359225687192575164381731737618056076565916660287529545309088276688651363301656618289648442672593403063411203608880067084959190074988009727103666524176673100929544140037591553305024796546888783366824891998807221987291871835092179667355193523955155780601393963449457409846102102432635447828487824695617202257767997114551589701126614860109990405835671296682249876094483517639858085180061097352181826756666405276395121919617467379734935894841111325153758021592612706359441048808464254744067916610200553928148141151859938339096141826417608129358265614819223368808361892546234562606574006157461795172702470898134647755156025050488557545144050407353050544345518598912185255239931106282574206052235895631660915775843024313290252048266009835731839062260302407154574525569515040734334219997141238940968499871986194721262654834852293079956891529667824775993026580060020154220974258269655002337301709837494532906327435123189573558227201894361569460845413153395901382246239606543946530440575867048079388622228640076106260641926238364843681857775843053094934163901235747824653874852901060574123490571843043693318141448017264423300634085933700315913935237484650942809314985007943491938443014193538379652164621416890837798481540985371934686876815008849280969607485480479041238383804983740212904420260972857256791256435887980299449148865962433658301841918248851618368984281619789539667834053412532463052914711190852029512047387132844552972354328590932571595849731707674930020877289155176340049218352922331672446299313056153637866953469322462427728965481179971296338961439858018350982268700658760586563666126283099552297459800904246703631826225909691918960737416557998428970609253262265871863232152205573015545392678922583485951112237631117766930451595516323788619957825078607148726354385025880228290932301772309758799959419456223053011325157422723845354888506225377114473109673509593049907749206859788724581785993289706782657182155241046629582946372012380229368369331008636002220635351034075191921857654072022664994169118038200341828697746947411089907917048941126138669013467820250239583762311837031927435278386909450883914487440902654149784428522715313229176514077394939362582010868974602332969714261077470158120336995296669566532602614286905882426541368291285491282515832493457885287265080427924834899694948178337567013440452310213010542537066331489523665623775624064419769836638062821947444053507464284812432590949037344109099574732247139309326608284579432530929630912000551641691979188494804950956522707993600421502348433541363929585241162946391059758450253894409334304605522726535002447372868401322968778461817279936137992069967221832967452454291503897549303807481068132725180750386502382470737900526158321430951998565781279465800517412315244370473452972502540986509974843350321534331725866429026414754273848239250822993378555292939350399318140079067714019952446478566834488095536588444232690314797853401531327505742031817117912041397308869082343928846278880913515446519359631624240247531144355128316079166362375829689372195692564903828273865507005453942646348302541969217827173420162290691844895012701819863769020679023501950668247167360636602269961660323405075827035834211826527107994181297519713773292927863235478346912379905559963849520209761691047918978023409171753285956480772160517337909583642231648404844292789883855360118205862213696187434760879396291332021831631791936853438855480299899679878982343818475309306037598759092105285240683649037631007922753278469981400105066046992353033034503820714589714438269648096892672763907896938608668379473904471547054236975503752296402609041225831827371321810933530231196945734582562975850569799425665472433716765530460554952483916452753939735792124420371577989510751986227658276571719611796776847543176232344309964603947577755469500823543153617284631170788145635392551531839659790359657821046260790750737889763076462039729080236928695068821215854707688471165163778878809230446850446551321185954447293187744070711563861699245402198780834091236055035610791719911088982498302567400007355886073429645938284874813460998847097838028928344760563018324614111627965609542550584747788008736651144802684082260015326744849331514962872604836009843769271779270691158288174662029623845299320519227329507199018572872353456769881080768035020655393542358409725384003227140061557182873699501879002722270586962680791003003086512687938343387703311491461068051563018359309027128633734786870908620616569715833156546910713756785752036218234798304123313722655070108331405052943423327772033215350402908738324978619471666151149863339425646330740353850170405818887413954097875708052035877336022371081589716192010729781524185218967223131174729310110934714777391806386735620737689227420689865290183599951119975408195595557480821520176551621997111390637174772006350582171151835995057676070614483078318269391532186579814835514932258734735717731882848028025708664986362387548213222458701690048122849097159588243552183183901307136571424523459282093557310005389764288523109056408402019821145156084463815035677732166528606498585603293002440291946041693712689625877490724544058855482144987836341087238523013815414597710711465067600033060698673087009193164066618392898803008613107469894071448131394335702700640312173073065179954508465045703549441501613587520112414269259854504644852941623404364921970407819209861195140484422851730116250923386536368834096791640093473151190401495809443437255737066177603699460379528533076946789983208806809337387051265391994479722968439724386747019535322692407457862833111403959468046785886560952150118787303880623280826584629458177923114259823239649838293105332234169199243182997339884016660824696117663026968208701262023874901615203031440188891709960205299728391849044938025984947500064062786061398443867361369642320345539675336610871260033489587058110271543975863456079958367353972848906144734444691621931155382605916577701252122350169099224787787147252819671114898399029103988514227411249788021281157673756031031413014731942589329590919937582559721944233299456768326384386214479072497716815156314307841840880979731722369063825894260872801920980175459011537578873654869802838924330594612836638734711023475253987616997449512157283679979123612989286523596905468930888525702442891301732202780481406877691342535866630945544849141302011082085082744841905231649438520811907818837697694728674199206255936982619054855520344667380073492388838761522750790368090783500831676216516975690326166921190850044593588481929762165547615742821283304807859040408338353636593216037005206534945650551000366516365875386044281459743882747016953020877156459844968364821571335709816321910024019822700358829865598671034038546610582504188991657420240435187486712450333454198318005860662736803224613625178325946921295389025311706581605885636723761231770111431887140349110696617036895803329743592339938298625373319336603247502906276965909221001918225195597508070773137778057360965463529625958347396356245012362469679501921027795078782333444114056058512627510516766470125899919657150202320018659677776623277338012754123246180239802636572139235594763066707726175665918764030194534474240724764739578713464156424533652027613757001737471544176343670846545891650182980877431980660385390593530709978148821158848380363130690873615103806996022357601831899060150357507187852359938263467373700445668356299513198819478588834281656965401249585829954919513197758297445816940978475994293068317566005767219782917236090295655021766916825524335296246969573379961784403387264562590712848345584409201198181994345944895664499938060001161910968895503546612800078890213921862128448039183380781776174026230010835126116566093243446352104780663270410391456201809238407288836763609646617361507313899261798420817885724974689900335189656518056895264781389149063310074970060128859901900338768954294665141889850215105926869915920481921715217178919159702660242980284524024192488592519493963461165489071448192753755264935486226638389476192727705091410765738589675642899861045452387356659749957042303346295909019703809779942991280411045823468732196809937447937327789930400714798561355812919586945554117814685844475524195612912448492972286169059984036885605506018522143840260445697739102887032195612180939468151878596283550488687742323214249021940554377409209493184404172603290179147214244569964176104920273699408466515423100690999446526197755521234006872878333717299310671586919203385223527103434264582138381032997894021687386592074721603523900028633328945579389114176506059721963932784409631741171476140898956537163307931637104484146755338065932467328191816669126931208763627704095625514663806422818331113288759642172535939083920932637503625563473857673178057988747274881033935758931784653775343700617423323573689217268694696195538447151491584324891935025896742161683380140796490711204845601973016004836265468492127071041853873714742247368356980998665905186171491727150505987916336307739317350248297341989818286782690033155088502321971077511886493991571459429535897372465360419821963495284375510494975446563089272153678967815151028090560157738868208815756425531438184426472595585198866438227922692923201303298613736083449158818342878629243656593838279013247418918226560587966588044943781203364397098663660226488412381855198498694646405596348846717520848820112353048424549447147391458066548373921392911896319175254884820707644133275650829182022634376945413656680740353708375613515785001024477963161730878939902404798298745013432428196203776134710834321949600542493373449325859432607559596342189708863233263892380087297274456315708917401025362999801133001994132887154788497457706392990706092816485970863264375200246404298504342621079319828061549809626229173283298741644236417261506246250448673664129013416454687518672347165710297523948917624301880089523553463517720019479528117422701472504142976090341500021400936631026943764738124079957681140486642059521632535159343134218250744462722075199441063226699724428147552623346513334277757793739703871882002746668259401370631399915820273908864520455231664265265329545777112598346311843013784759235535709418721612902610960367358820637207719225929459492543502602225585257479437831288442966865699243592894288150398952609316507689377106071888426973928904719581621497094147605457873408632186649788598943184878147630922725707213010703781373613961426365435593711842847315112214953450044902064564100024467199509499023749982489892664393135603884201608836080774016494834772664652425311158743609197024792437600130399284132806916467313261941360780191556296950897377922728427850188555104402277292613777249178542463188842063411901723555071235588788295670367740337660367955036950338475371369816417275540742486217474763848646279850016828393042242361486485720026260930713197836389375916952408889483720419525628646551081050427491375615311820263999359171128085306725381649561034485646508443427402035845847098961298311201881348246682739096304929805017464251681492482930133990715167978213815484448446159847758639296666062531056146289998354129498168117941023503159197617885746131581152268779791151615755691102903843050251398146107048232781251048764564370141278254224214476114064850756565813462605676029677983925732244861609547872754288552838731500169841836644806826448985797518244331894475095025927461644793873838119429696345733072216569220674443067100407153004950821034791176701930722488849792863241442144206925584299495685240087503984809134601755046767503429184232791804597084953560677609280756591151472672133754974230746247754367643995353139707513954995290375114124491387521315243437827828402778227896319043108217244091293717773564792474668002779268674538378049279135332849531838373301284629712612635123053201067725164134283151563023774894737035195684463489360695576627730455674431464139050243274518264872139343941184923709534279364319962857162745112222220265568901854147382861836668669227247682337416768954872305353703460672271120093181729121346957674248045978502995837674959878339213583270317165716078523044599344201695406305111292781807974391432910796452735196023195198149075259313248181900453813748204891228757074224216559543074174542698333020609752327798625409983704246295337793461526849051161068093253965558984192834745946706850402790752073591018660322466216033987578658363337072894345690215514755875004929158955383580996562193316591746019199723778408927645979922198008862357649327936759639909975057130796703996962903747803640939009113653234609218943286587231222513725623584434702316116186516017239759438575845519828551393635189528759977905088441608453582139726157546299167539134223376539185006662364810890265527291642486058680264984868666371773894033255502668567332824669020288290283822455262299804098886991636022226800006404415725210870538575518476323993829386394846776941137935352567387376478951600113836550131968954510181524882396585061660083294835952030935439246884206527508664118793650941057978400589109731915286886692170340823339239213562452132089186027589930090029859660579813673489300332073616044116095179874710070540863568650077231825154989100645649436915094571256264377784805812294391753039597378775667252695730570128042973224063164853769656219594241974496055231585347008371125652727351186489259075113234831136136282753171901575921222136892866769575487145880116148032152877148629441562605698236328578731601297856202260731268289815797692035453895183073684786308290661217145297792632337670101351984661648207644927543604056342834601949306755967597409463390907133080751138805853310042132127691590518536022378023749130960356509117819718854765772545427992616597112188296358081752504816432499561472815259303605228991667958116530880788598414274284930984133736996867253734106703232403414435470068000324884725495860656223701364652798082550219736710866716962663554734325280126442437712105011992997463844048813506555361790160114991740351762777387958323554319662532844894205345076743952862953275504059539060920226017102248484489162985631852348317973539857785646401800058563162989374893253094223955654590575214971974903736589038987570699623082967958748952178268197141112157956979169280920798914803594831171108143880083602390159771724687316009923939622433590493930213076691908082526152444060871695720729071007279872493882898696646117476909572584202772325708588535042991905457484736064589833790978225179929936962769853857178954932702379341576163830942667534320417032282471963284970708915840771288003239967068439038024690179685624324314721631611244466966509231402547643912421662520768716373294273931746880371968065747845499192844824457980933794005079469862622447790369890305630098509883705174178911249792823981670747484676500530382379748341094740951186736104850581361809428282608053512666949628427027789670466939617513818515786740616070685513136003714170194486876022818719156734892624649858488544539178194282272825641016128127109898329740493075029279095492710026003219085287368454858477026461905651478280812626286861879143303922432699301836646546153075815441693847406663653347769701098419794862816714329529152998039271884736222281016593403529649060667177194759836930146099090377063765643828427103145729715732703978409529775738635272740769805983392117584565680669012863449004666164530311359587896222973458719299763234160140260150045933307447674711299526832877443586359590282424076478768953532782216295856307987353820731109787526518774575960706697301152312745854672543842991595915521540733035360619879064218931855306009112781980783806885157221670133453901839022790856675673522115198235165100828229033465901663435658720455407151376690702511328345414081073215573757815482406296285658609452640753325511974230134077745468131452766930146544683489215514145242398257196701628237231299363692055666673894386242752465553223260855498917617978403338758771740470058132159430749320833379486560142156260204063951458954781602942856090654880318958231787073504036349644655180114549089322874721153985054469018074107553715821248773189624237540493642808723122014983290284466304020418318253040770854433736811479032188245186564460374790675529083795680555902522424548413299076713871081512491822626501493856949458755224110104695582244548868027075912447563361988499029589771019241058823556995190093066352531537420805258618693767758936923804043366389582079544919048586188705052305798982827403714852278793344972218251991288227131447083514826149149903072176438571801701039662272448064011429872478361682658301051310881224826454141812728002446453232622496079391790733848345793430638421607549409218810860801040867006869892509683956751549677741494063081720951740664266500896372539673951804696961879565587077839698427419080426578350094296455296382466084445123825454666652492043326355654600617684873684235568661864038789969817878789079826760619201874912945712038568763535152111578825919971202004777847696121442755064136332952401356558623387668325549939236989461369802184266743891145731622917936877010340778034759427239180545899177493704213715963161355011565792670051278269492467641809612910243888821626214001192848728267049203644144190688932260078932048953064336207304251416978262801146701537177752937571631515352614615282413441521599470070702417583644162418585969780545660961731395374277682295328472467392348744568425941202380639031304724395166645058417487558386870476683756964704949247158993377992167705449316565912018184347983028000646858512980129324475157338070153746638723125752346433839464418108540317297845886351688122310742327674855413695088155124453991771363532598328845049865757623701939016702950517222077413082282044933329115930306565086498298829359994213091929294033257425799523859176678910717921598193100340506659768528737678115134634038949989180859725723111837176101268764829750435408796590369625483344301354952748114866842827294789218878348734087088737301999935671213674222092662951229548403874644203758379265667208075687773893995782687309215040614462226416297135453075628250628594143680317765604014700639133640263781145078570481062836050675355389656314202823032599612397347114885053108132094745072245441189414689540522097919276383731246509073058541114244211142693109594942240260390518155322002289369028951609174362278947058796821095597052275668428808728987973447418877319968715190472519014387807909934104269129124972032069740782574060984156563963135530001869139922363324157102988581606987863182763655642827877591296198659991623169173278716203898513096300369932303674670986180103375672908852516549752958859781422641613751793811883438876775787673292007766604216061341560236002572465245005161717801525992803140792857646796901782598619816977066306032706440802281199522746060877768182771483046283235511725562696206367779507819732020746970795190699007180203099225789940086152431933525600214354865127059673242226952853021463678495440578194007580093764588804564443479298529794803572417126557637405827275721375738332170315807059656800808580464431579705896705030900590392964500943450206204991141204777392364022843552540476860896877220811439075796701096293649571636243794802445209173743217491733595057088144283378424886302485364567822539049178119543273011601710941324187214322686878398093891871816522740471557430978848970736103850595231636188247344860625666768233188172834108951359594064209487201614096214008618367617083094483652856782790423543915519726442166884257613851317872739312401430917141155654774081968241875381969946418447037662437372086639598731898419183563352062206113026092295644740667126153890459132462126062865798430735967928994355364442295862847725800131177667222113731958624039799041541203940708319655701739467994442333256005285731575574059061285898449937103711505485031468195173181723070378213563933538583324612892382695776854776161432636629780039578474250350853123176468163932857627948882564020888907085303715342728362794095356027293510780672513380397322060120003531774130471130507700405501028769774996833735093466015624461891199577347926891628651825132820816591698623254783738493294882638425987472348154159991428444395109258741868204456692833672348360520603553532619269121161152817967960292200996393983834378777221785846847796780749044108799762033518446904758363802613253657288479309647629686639549656225959757919955573943791410375818804172590673221977174197779899098357678602852512853733341202847492712664400586013804297034029212970454068620684664354186452492564049567612858020671432283492761411069683309477180986073739441191528396016340202705772068106416302324278637912487029982415595505426429428911276203122700733034960228419641912892335264097647515531950792501779346703157031932942804655457787030240338849229474323474444903174602210614960137077898841394943493049874607599025050809078013000553775314003959185140607755038396835972432577312640810409741088962399090286063734300765631830141337267768375265326984144231273445234938636455781426683000706960383798723904420008844553533025289166103012132842966867397890055873875047058648275026858327419604104040858878571806556775661601824187787905590686414905807865366923624255088832060590983208489215876890294735576022230450831527314970101968979690477277488797710270899596093746979612775530036390054460170949913695151614470215981246530196313061892527363089160569612587431188535761974615075338394611491348422872418064317845533864322839455192822549891707987315454555981363045791205687741796206996367439474974834659771242650893955839675973982923170208851496666720120031103187731440311183356957232249691373037393213581112891620404228146144191100536490389903931319599410683429902922059961456563966155470084308092925737368726224129915742577815105458511237871693236793024676233402433495960695127087288490794580646943366822262360542388260191952018748886090388968836624914653453546621996370687307910120227219460566906847208265178412268487643732010656107848155092479487199860504739120006277573377383674060877516658646386828309409408877353482163266806827675191136138445205871979254795169553633135153876440431915278791749161227870553033149138024447091447321368418743863176094446540926311668297318269445782016647041562033628305392203496243949997473025110474126549942964633970642997260480090550486341386211291282489605540915004702421623183185706149697177625288817845472454185979349143982168718490991649513616187420285966129217951952146369918236765518415671233367204142418617554983199171383027635046322665843739311636636827472129405605666488215295853284472993159333682662522449760521062732277265810933763643210681052325789753946186326995209735740556965900376274101531610741875436274201841383610387407202842153637382687547709747720558260367582084332628171996264179189197034934535187417542545593208181556428251546941763991912403134470967222185514112788367159068223518151927763908698476569971634495631491081157659767978999112022328034665947475156744956310270484520034328337681930754183524955615092104782699364773196474486763179615110197784849832956759526595303895109529678979234304110281038080049371473904200611979693055045070506849561010026832156111076606710745620663087725727501043181152994842781732504023591559503296256079780255946568414418716330655588955166893465011568800420662261506741019960562279884410633415830756172260047062005722277420012271936064099417468670692001541282161617169068537261734773082161869779441422969642030170997052538205569422305137351584832082812943544631687684180691449028102241062430686860546715594408515638445577577393425653235082784509085443157216643320369044690238111832807771251838009352454938939249020021985210170509837587025606336025517197807510332258734109248445660811577680790392580164291554464392874116130043885268167874189105070330125043892827228920730107021186778321908081753039603305276216597677632264052658472617641376681024098492437999623977790781304819585800363250835440874293884386298884337428982289121154139490687182406154553564135887086703020721206050150074162568749094422368652847720052350639929507112214175048863493281439806923818661930696082589891302432779114628956867352064635359637277168898086053045476107364832300793468324631690741304613635631550080763390377337054975012092272742091780882009942697743235960918568772516556857948505072617346885361235309937396241806689763063233212216488385779382143740421143702613688036884640690958828646160389070555680361185931057336943018268113087171652629643454431132730426934006902144539071240775154088301073767157245129576616410671150335649281205910314062653420747392386716163087133799957349843918832117086322158640666443574381395075528598266332655390764881744600271608649126858804913604989697170456413735641402157536088108648381170691179142793403810569234646147639136747262815139140327102338832556074942754736329656280344126781294791607562899550206222049239598224461563669053362277494588147726072602041221089539998409634578085848542838173379587586334991208771107692851039031760851566965217298305775777364623497398784804075637393143042366881172908565698618377680812506528594675293620953185121387290174516143323184861065703500912629666306999007246462409396893484025048716676576697102612092641426323477787046475442824972029143420522174576750238775873513958815956043775213957115054911282688028880466300145202812375091653384346870788724006331180436907494989694489649821846492925738798257593468808928779687482161803445388772023742359108330755873971325288771039163036731878849883641643430447793043833716917777585134731819112915897160794355709522814431452460190393830524298404583993167149588206415553983887651391468965046472805381738994000752449364849667971491892520615425283695438161221893665391121507376900482872281694225901646734063722099888331804594676825835191299415350169569163270820047299698751051779404477499256413384621853182209477115342529245659432722727341301268155423990768883256479318372984858292376400969118429209322189750091058102904689380945820735880746322425257370757863193656589141773181232326750861631827640952209206143975999466177711000069729759261630112274993966151448464326576826967451419901080819338187486530992629120757450247191164024065358872021018004460500032570652504872877184396231342051796958550769068687363684877744036346267299779487873143495879337797697650650528678441022197803546173978386966780238083046929730552600926793376246135450288633943745935204814035341558688878490839580654828623117659577639919135970343898486414785297984118170592258466006178746510784183588724183357694456628894604764529604813967609874790400380467352928519644174191416439551611297246558388395196526302323263673955007311429467440918448335588863082421032787264570244993121414599569170218905828599061675438608159627345872688905030547121367655321255683007947284070084407434397865898853546086533451453575041281245102964277650711650134041152908215310749741835353858818044430431562390599327322534736210854687110438954481444647150449560764404618498877788897077239807218589750896031047391805683155489340019328633988772793799184640751227254266960457485079376444344229312412434413454108362833564143948251800360233786387549065499009059070128775481860729095389774119060421085225837692025121385234884230205448596199217647570343962188811990088730065240168177458750018246035710705266282584234838917241142955859539664513780928647893648336580365030195102026001874153687790300042099321338920561338524540532084704864852599490641752064149447838679988885273809373924595246070101792829536848271984699059799079971435696540416064703913040309919114962743055901423468284703386623279752738432633365880831464497402753253367207246614321189573936084236155269922319271215848950573161959913595800118005056274225667523498325024242446088922689937360102526098783550058666904749651720777281941717843720992050972117970739753926611981777134627852686538436877875784005052224478948924209493630791747158543744884264177993852916904021244737472947954292093517458429944981001026425867871053855661067097366579802249327794891226550727932218449848402952066567399692537415208047284165639538129618693283238258666281837455471265473149131225938731547113168017854564708830053149954133642057114123577504144574010028597785381763576969040285838003213895576922073027458961746399561584662451458581757952363779655068413362100607483915609994295944709223455440953714424797470371282399224505202819350352569855216728782520997854855892480999219275258249295640208516149334493032449964268372971523875879205160124705603844919930046433318028840317600611830806882364726803049330075391751739243111413141657130212621931024465493107998063756411341416669004714940093061594898867271224901800155906293847182182541148338674374464953290098381321275137939284786892800278196637937230880842239070433909982381956386490631218968494249824890581589273230883792362723262508507295449936893340928305145114515193104907376974355277376419199613248242485540008059554455003034522821047066819005185788415188225255322744928313511658434374185632810484758752938902614564602104881437177741343537143901901616563817459307540494024171227491270337457731111478110788045061300335296818776839033560839975070612334274878546875172232996441053683644891544127649914709065893902418635320776255350264368576842631950103801271233183044345250650122250362882314879995872136962543255244232834042645352922829078106941822832369795120609697669437714013348532564994767418161312031778156396514950092787626346548551553113522398896147540798754533902226792592620652774148254400474790838848215461881655989794331688303438175476707592012511333186751631521266407389961511174617418751934682701705879133507201926621304124946847127027675172483080901411726228800940835837290351949996649240691944152742490251605645004287447515672921083525277288660581809517787257332960410426360012736090675093483034077896394038332344883842153573184035624996151662131611512231794679762426742706815133256988854740171802414892710358893871081295727506733708022854705062369530549284481470837224734760468833224413344200444719200005598291334058586479169135864756102700397617483315092243460178695758983015372572024459741671841446551719548997091793106779923420795383427136387720432994501241045070368655737090406303093590486589493856089059907649766194161080685632247440789303332514824537351651930279431893275391982013815216181133343285894682682051548254714215913228817655970405173619905476219575672654751250659199918475355745209908891707161157027278714786957917184204874801899367662836079471416345634203653098960082138125477435611542315252082821840802620254597534526888152469066101655095093018102803567896019775273654927391057866321794220220024749448610543702579543446850177696039757708583639120767327813201599363799177440029086299824999752116932955620512384747438984318182053971923555739770422064381005524928570874040879822596820350385317521974619153743048294208945944324497743036586334967377783653608731210572334939090340214317565812616387218086715955863628351578025720901316747069891980085162694761107134511659155893773093723778583990445509654238076200659821482765419744149932982756201656979918640952402779112460415623304322348605839518492504862968901841141961067642771461498325454541673823665295759849415769956826753484574983432258204668499937626855561962206215476920870307859300412521829513112796725516120211760203738084713054833242737823849261720817088202124317431954977447337473559046266968199587812509821571684383581255641855659226502843669176796066731238411921014438336075709588941372172562631295568082871273098697126427153503515627662166683104778931937257615003389985277286897636061342231890797951424358091725604620416713572129748824001423145731570441635510998856567731585573615892851049706796902820836241652669808081232669684395703639822447004698661572122568675413962209725529183400333154386685017025097306514805174592283113111182046629032123371152311570326734582319157940868584233664273230311382574113973309174254707598839919084085644438188331040102808683437099793198007693461288290062490601563765741647232236154941190007064020521409749285112388138831788223473078064009386448358502679542181408071332431756712965348438932672608673907563739315048921208921279333578630041258391271178137020719786617216323233551395030683637711344402957316793661822009572980723157981443372645246096724225327276568124456504481270815641979812276376146924677726145829097018909709039313710779266967956728032782280262950961099148975431254486371657805570124866147400944038359918893416387292335052156407536188412336288056295658384232873098192834607655620468086410061855714019683327868784677652517616462259221053490599068599310878460257670157900273962994446408041952965056274528553252434220618576390663646726655346819415343870330584610418960762663912768532235055267834701532189894549653998692510472252900660806617780251256035422325537002883538298976394124943478388942772204626080522940895522309138946970597882451156254194401271809021352241685611606589941448698431374626790514895135603025802855382903609767565131339902186073836435236185262362769899877236688825005782851691163718871523844253273672675191377141850440838901963214800387598943575487167085429737953348577580252576024615471872323666418704285476011800283575778430025826908906197405869142946550391489800254160364836470594045854420899821337012059518261452672015000635075995525460992332209049448284400373568680612683208723267380908572305255107184030091133467331094865379968290347501543508994995698929918309838707656118579227162305836531076397255245195293669264335642330470329921329975659340706049338903804176124303296290782384591713366612159932298480086759820138814412588071905224221674089366461551836454825806332534473291620332983705611852620971155942459650338469539902295391380435819058616285970285616790434899654565344161400576294363073210003267296113823425338963530270119283466954322805158883673949201309546694774233101345618435453903593755781177378108115413755392193524441248236121491209514975721100646058529237271499577778256508179310032829800075165938553849337067290070995215109349345140953412400241398043473474736548208696452902135387827835243769456626119116529674323876150594837664122402731000583688097012871562136560814270190538630979093945520795905803897153091016558929111883942227427341859390834504157818558465996320808602154085433732365896210819392516244891248460055323260894475518590811842496380807641431645822048908712303314848742829013808723101041345282486802416225421226328947396685460671239494992021543397435738253671193025918478604474540056306231995579580812711709293691025338471350981706851831905476562215752300630164106849674088757433412899925506398095062251693527214928271404601803312925588347012115359387429370340741410691786302132845095677456327818303128964079025206630551921227257455797162849008804855294984366808994161542525181822905002846714928269207874305015710921584662956364183282025504198311626699203293621392367006869920459359587756408522532877101468230180944075134138949673277379776163466018267325438906754272589315775473541724814600132119801599737324235746979688898945751297995834586595878505932899334580979670201779030832389213442759515441076776277831241131088296277608460727873637553209961632802726478046506720425338952032110015225797099745403357212887322067203509069219613909960300138685194563666631399878591685734093883079848057063964295394979515851801389719335080703622330619965557505816666931322679110872460652902789215527538253619643283820263587060850897104735405971681156230935590624089137516885734604294769317007008605974340794826023805189122553632271348364374141519595397809772604369417769194241968286426744877958263618081175972107798379476179239242879268327968977069904966447284697250865774559789923523916763041135399028240639911151021910795101565615100204227781931435299017625397819455376558162459819676333496989138241412265385030509587043453147679975516000902485887726597905867931596715417400529832671953002082275121601228498536094960995633456631344947171145045721815832634536302805039551315781662742180800265499666830265691874744798467165521069626779273670037136607326204536670478632428087924550296072339438402300684137016357836213840824988652950889928037610213689808224251180567527996810904874691747737653051144604986196568048676965214395189949965230354501110704992953220499893172758990088341624588718215878018917299263870522280512967605469833428759840109332004524933323867823249029308223917671448619234233348338189941051848607269410640808470593109658055874763819652110544457770942568704843169985423711101858413268897799448480557280752578336535845996219482959763855251333069162759946718185756985632859984593540148871007679389078290406877899162957740878699715684881571752767799254806929963356416994707028100140434200291864572114744179265480263322633422112909580873917088494410951505871992301083962778557265976021889667143141096986382992330018049821653275843224904546630804852500036839143359805725462052853298881419896047416534539758771906090288460077636154258655847191212364846090510651767206261444626516310990680906432874204119472585364950349800999778651106320448558462094420354675607077954437871969315379353371288023756761792061707379393063692055311900047419877200062036384499952725055554861787192190676068968005740074376130372826072265058398309701252507277900484179689397220141133316838739571406677481559919263380097393895112946179720847036671845509474679749339381207791139450098528324324478064993974859061686212137100358009906799149772064805044925270334823850548054870225888761316472311827027935165650366103726046067029709915833960545162484644324165417495448331841778341453229035308353734086549616796436131895217030204917373285623308185978395408750275507760415794753405204871496633626668748819094622584401076586255509371441453540093830030104142694318472307183942552212811628197818189250674055964068248495644150615696194018407108226978645997735200353150093106366166856975434939567466067307080218426592721920858555013545633913000177480072060484743621140163023713416300371313296382686692415815940351318418666662404729447802088596099416079920623166819142698340000475283787671869400855839288196706022594651689850883781625088219137251288352692995106211463297850373470939751440451611137590353596147125110592698479615882217130687559073432076544931993560528419014354742250810884975700827163579165831008957529332021859175216400099260581667644874095014720015996796619082279705823663048154469894058028180942488237961688873336396111403650986705989144768412569000927894729349105864901507155108513520431072379752831956731753311668179828483875019980427068528784606631084815116606487887450491306664376629305870826500345334710564525430463836955495428338088231624755988849995519968799488435750681209052057673485077438478368660204099858494389648966735536271680989248496435898672602799989500397113908435162219003899190393264841379359102809808538860320737507043191718746594643976864111128412700468180383252759471101824423707648160988561266883332394191770992559115056969631996318602618275011588948008671820456134516654373368151135811102740419924503986512207915620664891508008254281021912332598892131618740275507899284878468634694754499806950345737565406224045154442993371232130388883148665288915851551815621590624298475074178087495598667471274054565945340422677431629001629458442680885977501235423554269810031815851139369801928631685450573161200188859261406265681443695305923558314239430209744399312541213254158367189176484107965826557533004080408188269226327411932474248229673101002890761214232516096017644452167105884454923238390854924100056090689604062590761721841703647213073425726494270134644364657311526442742401393670951901058632806013969469461137479913226356605833180214268218681476952631316365498504354540485089643932570997756417744331985640653979668718879833937902756634756614000694916974785982454618331885172258822626612123623721201446250004764504167104033720475843392602888616658652070132153807397184015306554939842918138340662370363150613234243602998967667118063506990587002788156670813159545562407015912951949068953265695285036390013914827215826132150636169329436028731719145560661115719098370924245691731623834709596687770361302399595336282086202901652125087012623822501204709467545313285947962663458196553540274736800895450463359355784258110165698956165435037495747416581009853053296528515875462869102795247877682865945055250280105248635146759653456409577305164740387096476862400287882644620491791310584885827324457353410857692544506951853453228381722957260488592009852051481129941857043382863666361756112815425705132939502034342415962224197957402247949662247927181650378449069177358941788477199884849234473084402573677992353968765149958666446061592039715855596092146545853359175054812131856182963749779365870750751493231799071551449469307890931542509922223907088662061510452965628707515695891789844018179050320316412316425007157258308034603021159060012934174560758895900262327591224679889266998106579770737547564724496106337461902012840328192428641298478085311596064691047061171397759314023869548854085494019591185019677741856001076971115822679720138648432314495874475260906803224419566464251857414874980009409374910934178727625266362773029427373687402659482145662846942688842306813524272386958195699883638849930274491331814397614597549041488644896903203728309696140091911304342950982541890104543098434298544914325796339531810814595232852303762946724336584022623764328089096075351545904759502525146901040385586966357053284128604599505690292151460677747711044616232351554733746429583221426623573003939077140438383439835193571412922086823460574435557825364725379727887678006984837374139635171652697038964862294735467141046171753336286803126467706817419560391129164942870426443897948676578355810411409870042311056578953428636996419549797189790472458879996610220487541313801644152741634625486663787305037409208788282726834509846725668710821547251831517581253148384624035710088392489371908850531278525191246235875878409034157031385888630410839460398882185479646387544952332186870238436730822269214886514303207039506542204202411374306125701657627889556493430061718420725470989055585149782740967346181254733541966198545048778795695550889422107729663205224281228202627269641189868286430905410477184007381543294248994722195444281114780180738496950711471664203297585539237859579134430218996994532848146507673712133187255503231090438446149818526441714704931699722997010199455925647769776442505622545762414711503351050256748212031799540478540354384497392291185499669049936352492520322268469309779456053168581544323372642609680136835978511394144064368712740636708290505706625646186234769311672776628631108911315026624868044078848303193660034137587182972436091157823233158917389113855150405078311784366561977894954878289733445456338326592966438731280538679155967697105192514226417497048631965345514024957296401854016078636954937104173934904932179797742803796735592686579016628458376212946472373362062075383408825647919293588259989420971052569356760416380170837953564165083673363744645762410184409368245429363561272598531526841916065364796214888232847945987775656981501111750449186608251190274196530567989472284946179389735753048346588371649338363431163961176769086762511982295558225445296561841488404474047334927647689431782827947336639299874753866390630102134476843767659768598583318906329608707688543068771709462526666403925474593425517996269825375380054385306707931537898642877020277708338156384653991881168932169333409247739033976484308415144936293904486570741659244193365373663260540875230456036389823543630843460731567136246622644950092552995106525239316774099592549769135604200552746446686119435273748940926561765635389659397277791624191414567840019777660472722315919896076408634552192223907541808110649742983180488343217488539013023882060655122231436194143124818893680262591739843572625905813838741973084156673513809828754262759608510688273462024209696505472713253450863787811428051844026168179187165406514707559130573400398767153336266188808007345745819048592332203210750176386723048871693152379161530407715888709933507351382536752183591812694876573215151634761182624196499274246223382194217666011451473030628369623449924675262641713957299260785041765929360252686867529508451189748539355038836958009497524545529681582434854581102805070963801784761610529349730287081748000828574415657683286473512242699237345902299654117668736085480213094025434719265921486512817857338738754672273699097428649693319547386081777072793313453439556231502807588130330750727938768707729003315704651287026393031586952963779776512133452730409841605667194407921007233133269654156321077943649103177240402467634189024464829275079861209097014027709191530592812795612028792173668424260976270534867753518292739643869506464337111905547512358231354607532086944321784426385089170046745382793594394659543460883442082686234630984493043613587242280216262863623921237960251948437923993146829821416708771595885520476386210185849500880752898117704253582532767295321529071160597676568368853035378584124663245528038100656540736128789370329362658082730673194920401613107695153628415618178931693113451371658113024486615684102907203376959223815377485987461765693716454098445291411412960366899721333141299689864293795647914885820832315735007749569104432443475944749036989978339503747850990222758793727929348858701900962594691841465746734627828061887803238074263035462171398381858001635533976750706726912620074590399290001933814266321371749716537637247320525361932218214253477975107400047603095288308145646839016201707683668045805861861714420519161767729259364481060278908321354877180922944602994179210493438754676625418539944004740106255843447289339669120503449259346124539158520007280278518552238941162820315128790893257771855880535797352497764095293724359081981310850180542987819341034543230129700021302079330092758385769386865028023271629835393489886225045629768951983807879810823825953494017933664268611764438393232702067971657713677025678027358826914634104992703776586798813800656057145194879134046361333849230372518657080968030342931049507611209963607420657613515766255370909038824815709443394594516836171110577815716550192091116852547748038780373197739439889881324146960154797617575969449240471255432584347449720242614763250900558386795573903328731601177158438770476089324006876938782632126730369254627963356401080739771144295392603969458846331476643902281999233186452385833859013496361618353482847629195391649304555640999223308814291379460349647452353467787159047521066711453816786612294073370268087143745288430324340943990014059141121087745617000491988434076467944284724251612209208803619072169192778355674511714786153259478211043454466112710975879987843101983596689535722444775142686324950434561045014576474270498895275479455827818082585998676306438468232178117958766701754886147012301108914146369449454020029785238549420682141651124778902986411298468033430302825938042829407281215075832625474866684491374365227431951930271063219091386733687428218600046049683180114825561460070871077817771488311769801780042002696533125249890182267862446098598065759861895587932750700873501686824233699170490561449480559358496603499231449534291529063011363002464291426006168428357668044117695582089204169512698760121191020322744590081725304566506270620730819225183624965127863642907574207910549102589479363631252318430748271493544286696814668199888196541359659269077052072238969863591597157941764740971345038063878359701890264380111283105257795681193060078055130126081318325673396313151294297887489154666109995348414160478262714864167718392774072380785092592284137901900165093361947708256664073066724179176757993727730293264329425645136305838157321870878265016519596873981771019066095288451397631995233420680650019420535742333354138220381829690071342161970441584209581875586831411079843762584105296705208750720017371078015398883649633749422457087169719503288734537316475905907045013728609970499616235199236171478431408522040563745238827565004833404370419364144283945244875200679591965618029761881744031871228286939226538612782427593497400544202427022968224263433366202691499682440039373396067227842386448368904217425091482472027170244927965112955486806239035293886794403181056026320541544378165546920973511924605570297388656450981601748352630166871590579016416101825379875926182779385795193779988640246891441318644772825354317115495521983321829591186533611462046029894468964230933546549463788901277552097457138610125538888954987013280812656838380414129414272616449599369617362552791285138597677522626407062064302458288533389440433908304398770334869126689941864809317775009608848873460166659633834262301291781641718601265301982352425001620473327738680035265673201099069797885177103124369812570488617002485487968952222087032157357659088951911320484495069100787688495554675858829130396628052957118410778107057680843623264731920773751971284584717651789898030114079563260111429849729885723148903622775532421686145408957796893230694918662140602887509320574780433790764564340327838633922955931903880273725647917088418702983081492501618220393623078453350942310602734431221802815796932888121624806155915881146242297737692561766759132753968206165702273431095278774283275183154108245686497783789050102096999709388512733072454930935429246999291274611298193961798077327542306175492660497891464850373049704871966657813503616278511986769870714575415479664277532061270547512666910720238185110412778865615279728146540847691686552059065645308908875401010555558904002878699901700469210700825082868262762823156769355578511890118726184028650814005328867867801245518755183319156198230987779581417394887154015100698667757352093345867155816676709829769001155095368795688846454701031191232465340501153114842550348172819299227151415789084668463185699226317707326027674799949038770200785815000243402885849900250763645237117400148971622097610067832917955083165213178813599288116254796579695142383189263433556458884596221309727156828016317783874282645841181580143032076918125001768192441723198571563591314696976817771663254014055685190568058658642287180997914397167213733761166681480460406114477591067761971637040036012870752619690570581791513610905475383106982275929504468698495880496643568223254737338383300958873586863136843019034344099121122218411203088994737709471214719212237596413074409184333073627008912177295354002872207854844374528607255263240927071164734521353115859048796797258792439923579881961941526732424208254322212006366109566360954840295318863394220144224465139636664758960762232131399093534009862429080725206925641312387887145202244393456024750823091031783773756222504045804044449045078589998600560058697323308815551154322351355713038065592755661136281727645321811075681816551814764558465759486305809490479012484561436039766733681906233272786938335242053240656968038550707527494855607987169714308155837775545844771813541437057700907287243108808801327125250227596219021294114841120904661554708313987546748784651499464820613513380550913494452347599341043855098614905232416480044617661405461297444529875191482705810358827772157404321028691836471039315006244912781098262683741936100905618957044100915864583537380712099670957425058075872099014768889506139871298824304589356436805300182654733772309205233663558167493111302153414393668245234200955854213397486250020916334169515581195541730993733257791540674641688511448881914720105862558507853823099351501746846453888523126195512162782923684749053457122916180772327224312617883117196485550472487604313388639408572336687414546132022105758321418467582166776189960023553374011372488097862258712836479689241278860820628926851153387146224133988440089567791922485314907997819375243411137151650186978164770395083948879666304572489132174275288668894499425495147667498040384942308281290454577724710774911845592728431547740160027384227271774969710131058229163484899686049494443921260232258860073770271332413040899044449040811855266267001496764714042624007413555841026282490904791618325559873101237972351038260555385695703261385265789129482966753130727582113124012788841523798060736818723717555236388286610381427072826929454578378827535430767615697279626932052776307927201179233029238915478176465325352958275510063877470340169383414361021799728988489433896956406077302879379453025447230132103014181789800477239318537236390729756671837059094086413430512175701494672178898202294528821453455051729075305485782252259803151089886686188061074462351888994083231068973797571561512550868863831883634793120492687682141867414850341821019214962098326658224849561068266103012000150679362115277383532874949021802238259356929689670400543127368157368419038257037696958795559164162271674770999914582825923986972762230863537447369617677768983281994573321015005644884805064198290699423142219454314811737488726192252375313748624482098903469297060102805397047673470703390466364105307430462574859215728681667254018590199522854182216571750271194351775442346402766595413770302846319737354603026571521592465367793724125539927894158230622323705470594091110522980647130164192596914253117420076755439249086176860861112556938519467358858294776830084859389858331945119418783317014643793422174426833051546252685428026194180821608955857617921201122988242581446106203703897752324046156842948747513638671238357395537308210714797757917795505744187621169904721021121034941080722344968383367007278236005210638057760293515764244338712564000501836631446654954047850472085832750611692869041761211954399915755415411918251326061795830782582705460862668169321808724447623123283435825449065292300014208746868446286711672095518274325348925348310849137359078743236329459522713298365393139994767764638538834667061905066445677344103464959952549046471778928859409415108956102363133926234601490188997657519429214707238137311833538550441529847699533268116359845403249069893211669800494288698629556394327187022227358265349697916258285212467699283397911029136945777194408576113739659400904962016293171184482433994600687382536418974352609995769937269200054392941081718812263477279611609016410505431406418323600567584283661789163317132362129329979400098419221914655209284268181802647999767193153791727448195434486033082896816120943939991666199051044760227397625214306981805829516324593057218227505575024060741596199956267906879441943871644102163136527875829427077580041451544854520973313654724374699324193212227186184239849423089296474796107370046016739114913207049054022078921448325431321031867597306304962351066301593834772390679221965180357614955512550747530080786927956625819519182359652211993518750651159087147704085086290267834631137820689203667664529118530881326367259204352382600444279588835832574132864080664139515270215767354681807886824496315620447543004977136977276544690252061424590091225988893394626681478814997354333964819167801504931317898674789736116407454599145794147280871248069304574595519431639990368588304194579573227835381839051082445290855181875568217928098097982348963361077497414873869488409773242472481995410048208177286768333311165142279072098547074188374058810359082150872344519574912097145452334191777443937645737341426780401935827722899261925488846133366874960458112169435227392934159761416376621471912736776815284742253480268716968363518507299121307142165762950203272362424873502135280411556361855371163170186273129024890712188728218682371565316439822491970321857309066952036514139129745860546065409037602993793566570976768797609236565944624169122767103001604684127540005869860434474138828460883712156855125175060990858698319564291223435561006390938421759643897158566162019104693167877604449566891591581946971587097401831276203794595862451231961664044436868388508557886221909642326348340511198785891909901511456164522179405936620428898870464030804731492691422283874165853587003581440641280594630481658634999179422286273387287132252738803914809297527379723569959703337051843148753806938089267528328222982204025047518601536584802662860454713197308925257805126186570219688882182802911667081276755609912245161403924444186990354710288234116630305708798556737339705647048209141573008341107600223264998044588641070336460396265376006656514414704103499243490015702761035469087845465544145735469362997546398046896812256672057374958006620813635417970216470806485249436312662476275289931247634320968073905834316575009954331001480650662570753773235848495454106527800532186334323819655435077945983433513085196812746699308849145849861859223965891510645423808975762148935196293880194658595290464601443325478548292931840796881830721343582351705602145048491673478831910498087974442653631431444618846984440117643356225597746664371936234546265690696355883833926741933555054674203068547760280274443028864365209666176121621894891865365922576969669682080452099303021413313623355471080303752019545342753635635553320816044319596402838799810033353947569001384650560479164686357100142035147163097501247477621698091363634283416003917140760594192145645826057354878466426336009131511602681389462700129384859870537064938811483987276276962828347690357686338342902472331206926720951955670018703430198023228802483307465365186372265164879328642125490494796549277658980430829787967597198257564216727521996782106634125208669449939223213990723524164873026158180691387077277994181003334598818611747901582288713428216114087663439573731569264845905224460856062473518727293518048799005629891641390981471215459251172752791819073583647154554208233530785788657581259741831400693479122886230621142925727280468332191968530366007769031433358724673213258618739998231511080641920907573908721135347793467699270036517994727420317463761443401257064655055562391156291027781163272625960183920992101858742920870622192432088730126118822326784517450658430538514190994392951430869699807607639710204513330088619951896566157054526082257078799151556296958263501925867290628009744444104509031486883213855615388007950209203346290401498271068981685582830246019267799138707260070492888918185593094743179356163181173772879161344289968352314717599512385070558484743943693737325345627693993876715045151767063407493268292365705911466740873326878498023868143986121673251894956598438366354480021730416344020358028458493501731043506366088248288742177068542899145305663502547625087717061217816028229988364830094338146749745309417848760408950382098765577950926195976484740324104969462398159040583424879336876621179954930553776793460130376343240799896023841210001233955546344821032971203522038767501083548032493944402116335131210322025524850722955085939330930834025929585749207635486630463468594652406161256225295663925969378913842157915733152343957586184690602409719983960442648467560618565901229022806950134620686447388485494901366329926371599252929137739195262311990844051314664020991358063672316568086948920662151384254082750216370205337943722722872188637224715634419079972589659642164753734038700908725802141074954957251964982937268730905551659996099341866828297873277607728496483125982874283495314917777577624864508598906359661191379570226106876744545310720143183761773719703214759185601616988865724436117095679569696403992472988818325965322721789936441091329768259970691668573032677729308924292012125805524815881858927422805776695103005554802971246388501990566088977485696277745233379562845816700741250289867993521516811590693059141359159048774898805770162507210048870660285557796475029537448005882178869803619993980834887346336168603959495102958305302279503342297778196533344334307696137251991773783516082791393692367044726930941028696128028914069253383453874763294295461339893275593810963950375559048694069774758430290795934086286341535471460184916824632956713185524291990314088042176379900491032496722083825120560311649183133280141195019460059398992220742135998311352207615679565008703323505041050771913906412926071200311938903314046829691159826543207922626015429285667970999636859301733831829134771837639260195970102941048578418885399322045350203151123999655848232448534823716627529696605725722985132285923168803299695097788537151053132068829791397506585060826630328151196538214213481171204202190039660165144852230787870279398275877734914970302376789845347028442381666420419975180290719489729592217333932936523701229867340551695786744585232497101428238519524513308930805709875398794059711990785781296655709763388775064129692159563353181182481097535143289284088686374383110997822272403416520383065486444505244397946192810693970139889126545450007134896052977596902812570348857387353291347000544610686161177035078294057382862232924960973595398171671189387739522900873182582680568171702351870024198267791796164749829845767143715647290733478136982842299958487263233644057373853665897992255353646093131719734480783903429411102073751241251870796889431108664948777106885927372316882411154239759514804879710227343435994953960576596096406384621839488967644632245025862600811922094777476106525172532362273554920418749872718219490901887560674912644041368455669002481890669574504850600943858509822434788383140214922465656266862077454134176720975241535010218388807544070036561388636139279037252514995983418398509139453540729576562931439815860112629685339092934081651774584070012178219911232513376777103850113657818726794306888284432870563009899946892861809788012088886696796270196096252844950612560843974013582470481022033085477598648556773068758939220135136325037502606642690415403785587130014935667930286505227113294465750732536840969037297459001546641870813179564143939095405504394912996617611061669725075586872075728551385208945012940655116805096741393461952052162426437824400413820819291637988269654045108077207733996480424829117387751603175176858357648144598650118619522382423847175164920209819478173305100128918532039572109077571918886680772957338689906624205363438151041094285245385651301794658334778470498991207245289839416960580460752398112728300401097417526320181623000327830202986952931528483017257050869675664739822448187414215009810971691003017081933699891793664546064841405914049024961346013485100008878179068059498964229994093071024849918913497074481626522993996959783356636226204424639902010384122973310698287171458060035053763877923851757747189746228033947359461000806164759855795081320890791284992555896530496609276893170133638628364785756764379879639643944302456797903968017394952130149491154579095611041011865897638359751526172495137434282878190830625273318229124400194720311707521667882770045211535042312734696406451085697762706861478573338797653944197226098073949623178783965920223010389671281156435293794561584533757314403848080779399687079226317671329499316315345447698578325089266631645344250349952673705020237010987727209003674519376057264086132214919404361241834209542226624491310677484844494401164466622381555473214636142748127653633402692271317056333212002616481902143171779724592161451445152289574299182769411039998818692356273842403487109345838750880683547427796943627446795264634209620793702765305884888469118439044065409241787214932805325040030912351719490110755793515967933808976114713796734826258252426646657973058541301646275869091124979626898486999950718368864136270582274365287940467994519213623283461487325901167795544080327635243593374183186954882087420690865137899776784217497000991304153169421994654656006276026200490035166095778632247956123724033748108254986085652334275854098660918056774462373027575097337896137106128401514830890906801899394353762266288685759423380587261519782894206845772115057733574318478684737578872623716712773464529244358008924939213820533345151184186876001519388601799923109416702557728010857003717235764689809639021978057319766482576899104739403568983723572119728347148312872487334305045252955702368486178080839721771139047635436821055411362088253945236788980663574206125795492161482468710323881054034441494594077355554073262144893680927499896193341232907686112993620201313685872560307063983269552057055680594443057795057724522340862172056926325234705544758524356401263277712139019834262135816675229305801842322853331905588589963787823233340932352961517363545283617734556574912921014030700174575109545854363019029869113425827635530774410403929824997172848001181012999410305210711470138039192841866939972404143868947544047542560176402816624002837017976084335525124191510755239719485516535296430918268412485426204286420565752018455062991464936156109384144305527829162613663347632808063833458946396422842761553553422256383746686839168743614277592328191495664323752367323853800719469896310154641846704660686539626813504001232543018489191004318742564517187756813086391692193832622313828385570182515967739795730626406295664820310393367221649827165841303978045794449641237840207282433609346048489863022057521092055491597866501275896895485075898495636022825050706391741632416042415444590725540327648586158953376371751119796447683736043021236275450101148736406622625480339181764901390938068314037091178661560748222199113469302081072853416218084286516788183730037547214958699390404355368889444493450374829708212286902166610643078062576326652321802223080537239517207446883639611361628970664759651521890426349883290186985010925401742096256072858067279578080251328051354071317489426894206470448394541665817024256382370358117288760921990549405634216584635328923646216217554197401765831959837422573567930240171936676775785181314135814787982677141134488312416953542157400987574766022790553973393825191688171393274437550815775340797076435321539150833868996680796890162846922921395627165058982757215724362844075762480837212309782910403000531012760900806181648699813158847538113578874122285639215290501174588323776195731590786312633719094908201506606863831314475590518489464272460443764401536485802318990194001316602758329942436002261111197713600303659214515622307674155330907808006295038851497197144090004023651404520616565659117215822473534421412553739413892390669353284470681080429008497592756794904149830574165588568137739683101277066221141813820647218944967762223042235126011501716548473166507268782042875271408136782444109306776826451575270197447613847732559886939817320671116211759131277882886921901298927055418929982604464333743014360956835309800461350618092918119019168214098576401570119926271512460922161010141688347019034349754391571631118901927504498428421555283281661287080776440334510749276362984755818151124595802402538686600523830072089218732984166280929058165831537857963852776386849942541256779653502532098117090919301509011117594635108229527471237584480714610125650090150510242839307927405623810171564975313776733673570218915905535128050686492425183133459141874068670772142133773674936231415441151589039447057912160689928944134613199467612411820951344668988101063998576917073472733397866420660032513693512556753905651857782412797699216179837289165121769595893355086273441182525733942429057109564663786978932920674169150798824555008608788999622918109588328361303717012837610185653706342316783436947483902081210336763552997823614101606665725211705373861685595991953272633951973997428114351770282619742932355465828436226493673646865351024034778549765257095121633409884113759195502510301423674439330047313392820888402211267124354600182413312252514199166390125208667180891129993419767967426212548622786406320753219857437830454312747252932452571078587330227272394350466359769985555061311524047256458289258337344119083392598003414355717509389347986494369801019016765739695201545559901423527795594959175473129152461307062605630425784345902661387061284002138733980158493773594613994755928427719800793545209396214897213833357588599488195375618557866785020137672075856122931744306716737988392044194463506888396957168796881046957412148004485173779466361176697945350643350162186776926998610759161996533141888450253642839824107226614764617621368339282402024942902011263939939015778501190995304052087820428114920135965275679013275226048077160924457208354463061688039679482792836987030828549553338300246205013632822353848828890863338968440477619930756214875890699683604748444363856182317314861835888238823148659223192737136234509349812876587447261224444361610800254433358590803386922565237055679900629761292011509713108788396351146635233209044769410623075389723502631167453136023027961332481372635031517700517446182495403332415554743178807069304001469183520227723168992052724722238655871753416121562823950085500639266727046585616028909715814171342373189719359448682969754285890860844535993196267850847188894708786060856625014627248698023443793277561959441338184982891278776473970325273997183284766044269050031004964004111781038219640319896270682836438850656856948499829535161995979804298892609883899343284638560547523276152274293084343010192895720453112029404064958331742262072018647783124365787322313306644357347757017577442674636664713186400584961562685302959597106860742593639056757052491817564807013014851168555589071221332871164930570260517099279096934250732251898806813347777408068592092189880716256538139072447986235256377126481985152936419604131082110553725188875303630774860060291350572889227607683924567532421895614640731343044695281847065502995327249331945119676169007678195138719877886601610103082755080732579314601797647056076541855770670157782122391019987693457402166001977366869385982109269215602649443210409287747860105588289221371765886448307732026945064741593381397127666133388778120649100516648282473679051014641992403504040637326291199829794152394285611986989788013118715963506301861778487650774010564584688777795638947378424252568158508782593816895130356087883864369541629074140646152691719013537468845422496218653601507568807014622694215198591677639468227860972593210717594965545066859985475576430068282382810638416211795994228857437264375270288770716988872743106798822838800808155577033784014831087430120349478564992713392382130749725370527637431365306581367800653862159303616620985467927766528027280905323990118837048942511938578674036074271421182328579666680302596953043457224641071156844260310746167361817540927520201560872265077718990495835960258211919261099597894065987441358935798340080799428773659788287613804706521440627890596846168153704177968723087109023573894679380755967906972102856860150301182936550168057254881104456100867886078256605262783079669702603012780299339311816141718454690596493946191704504401802260302562335665357353072826969137065658536709034956886541822336947599752867886056253454879390361781018836168253889445835138017907136075481188873151515981665087969789125604651514381944566903449570145253435500720202861706597110144303720788721194219154529676374932649001900472748123678964982929396105366801624326695700615152393594182593589818793012496743490944799506023960568124513317507418877528520707799184316961744001039080205767470349875797319669040665364784520814717149369196108668206142937477576212998823980462880046833445407562233643813010449317186184954897389357216407746173678515370537388513214234673472226773278819693464079018146728739422050202291896582208520142762130380099033322443773561292605379953009662573440026110258945911897988494350666159240720691143363039337563145493816995763065003154847749192060133181376257502940286144963829481214097305228300275751508105757980419144382403896495074027420102548285411224807779879694187568685585920687582527995829453117020453032927599758814232928311547664913887245614686843100941102023879374849418499390551006537206177398740568698631351869014513301250738312425506890569758741956472848282345000347465414705345602493420701176996487575947184461735239335939610852127691061012143811411237919261543037499241499026297083826357965790666358338896374226715870776148717215482730233706301972692608057924182663882261657168657502227201810430546070928345600438208269769229851577558458018034892566653542576992322483550503068683334194799922225081872605890094950445442390384806422169227536993614435817100897978816783066476792360891754136686244398588376719804984341123261712172650047917606156518156967521026166128707749303788620024061318664072724144802251826138053319625111137606896356519907195650220932485286414737142710111009468231391070632390564045286876002028925565706199571691183114425895802904299648692834199763370285760999229171972620075838189683101446276407916664236272132049278555135669085418127083276331689466207851233776937474924138252800952552841401379178542720161967530469369007676877328143587532572352167391984619103971085725718416472848905353403099116646273408946107350109933990321631256907500065250946680970846719346766157288828353979035046767270858349444264375309546298251338399097961881343241297701847207708234691177696632709848732017243710040219345625051490792615287654605475685194738645684486315856594374210831093509336939619620451455223606617605952239104699585825328223090301927494476174134349544862441478189590487517283263447005071034275271041398395196051753424958361005250548143806932461520667967103347142315073534493409811165481287261616182177252503359492203434655887622094880268876168441696132250527553737249686203700649700504965156274099457294193468462817157273225392858893043950756338457010849547743423781853726961585350616394530259854253651489848382565727689867419951672330788703258438749237710763396401549750314384029372037356389007387937693976979009955516811885644606578539315848840129075221420188551852484336892093142144138685040212829936254815703837895816705824570158013723349422256324162837453165091578772798411299933302304647199913931039483090383314836139601099061761369306241341437729735297915438758140520707561226162095539977129986965843750452968553896883103146821586317973721062474641725467343026956794681074699549881846304422329558446286644166709423338925207552297074781808393055153114670100868402166490579672623827833208404486407231612300801625901144449781334372664253301709354737301997596461289589963199191134102151611945845753305801380048052742748378757798550618568439092821211554885491949754655097416752385281246936130525244652417989236141265105736601173878291458251691568515827786190080075942366864053173766241065741665909665561758959111394741731492093618828580233135792570774619941468573158475913012026094378725802668337749028047459630089156673683538748207658762815399304317338916609596579306516524052584402313582108483503209196457438171825052886900898506807341646215892684417859589424637746750473099781785006101973049944161822599674892618373447029619274646312171170376553511466096407684624231364320713750632258093470087260164521645550213727413592214647356027476814643523773064915797339029392444933366453473605244912389751103334496028815133663129980824091796607160611906788627804081886158103835359420062179923623370954950849912633089674869418662690894450439609887886923701976354371573732614133823537331344852582422365990165446156656174831408319372650217505468314508729936967032297274760123541328111349354837909056518684000745700651688083753769304363286794105369132991683890221930946590885502509726152283562778758723658846642943039271642598461373610158770003616420237907610437967913629858437205789819266379192450128226917155131910358524250735644121720985248576447174871398222884909888650449362957978400277942299514669000915396008267004042818553049290074216088539571372690637386057261369832206607413946725611897439576196731401996748847702367793782915138121363271869033692377806341002296474109100133967966794933639092033996280612278683106392594295849213250479700507272972487243088420874808754881787930403651689538927929934678447156499801676209499170186015473666512007216509059149774803942794692541626179011302510320180787830247575545323034011955579549896480266293907904509704865438221751036878504026844510701836853432013149254252900606764565792780300223054133350473906832769505855951468606408386767667483325699932849428056211843006739731769692732345490072985994788655839659513731428103380656313245241294027750199882522615448881133450002095039196695285566537038990643284066166247532058188467824734861613321796880894152127452573247584729238954313546852778620812736480935875169399527002868070144101408839483142687436016023277655026296489112981505074193449972053041304117206198659543283781097959434391846168304693478783443195374757852612946837121325018264122745101061787040253996970419368436470690179270096337954835585524459438037799570877239722244481360307963272443199366743675460523170702977697567918889945349301871808767693111411486604786079756844306840963547966378096398944395183448812781245906511548901035005426487932685150863364850450700348344740885892647611398280825506032042731801911577643465919746423893916231334151950810548676374250018577917863195322565169450718725751681368514247311127898044782291516078525703935335092476958667514603272687822323801379261656909847851558944347593719098665809475332505142329584801847648846111595164961771563680462798511154007692777778061074123920130696078828797315273218815149024428266657408216539585383725725902533192760141719689976776790645902469147786910418702723141170891569522251047919736545038706034516125815422633247188750783763869438319476371571117564246778323069051483227044248808432464881673795749357086940413383833809509264864955520328762670485641615756135628209033144641536105359918635959047268007470062746663401316276208984774835235700499160007861155144211355830332078038169945642797294398601088514978964732431634972760928373692506264772980169651320895856486087698847052011091912977856132186253034972746592580312010254860669996799722404118502146396871567857230691465196120371161439774201317060395573711379478667645197567096367354042971722531406298577134274216368136450052720042491894045229268201057112234921835793537962385976655941546721895838713146289026348131232813263000849645252179066201882351905117677045743092025656332620362025388047774281058887475260549361289398339785890006819716510883217572027411364684721728958386101325681280913587580608954567073274722764279054366464166184447467833374791361626089638931855449462731013325607556036632119264441973177492821935548851353944007397813401992081619446955421710371966204721711734842549970656517819798312676455411962091905445787633455631029968519647284787090538869883581095402221226155534672489437560438197345423512342305654840895153653609527487625440268902426395099465122567308007049896042808178444282108039422000134914502582801955354372160842313973467361094027221093564050358129361340590904150871177349867514623368117444515235097134108703866793213488128234757634272677099838241271674843308064245265958819657884884079043569918549286334556946183928401392333426476536408790391908614218294774201013871935367307787313144767902007600054572026431734507297620522731595838446777333262331973596956835594322006071421222071375175274180856677104944026318513055865117040890737153912187273917647422107646850723376155551900955246415489401795235613342763630541831932517400951496381033870207317851007931597306790792944189333190752152149641980027095814088000853443805022431263875381514174283803269201508984974894553361256375831288250359860454570479626756221803394374334385920526655349398714295277064271079415976757376388123998482309793570424590366100771758445405348131378544805373293341196565872530564743916866263907901943096600069593606198468738937308213251717550946754910087874091514013946971685111829892327145798993362009048912384142109786783624681483147844836182689763356223476623680914712751592361286927448059481663100246628844204106786242492716597472171277472302018397615882334815325026433724712182326424548361790155041526192092100258274229687446702165400056236028108292016075173378804382978196615113148992968931080688627426349467001683475702887245333524386991001067454662735573424302505291236217540063313507331394147765387143243006753860319516917377566096206532821957547311581513250263225260172636824514407878975240498833046176015929317661363623820470879241868363409679083025637921397109358488079713706660263977992809534750715924048243663571536268052547995583173179165263284108072328133399959616882284687896586846908934037840468167727388190495734411786774799932854730504554514118290085389992944122568649145444829130822977130496062055523137074768875760308745548343611903473492542651946007829696862576312203487373863589255984672385150357415263985125431260054685292098569579893436311753835719650871068468864811758752414158507938117509551380418030416541699478988770411228568825475549919540510552255138478161973293961994162323043957098783231228472633139410135313884694460362227930841530353081215666797320125593778578148120831982054565557054849759414015973923952917734058723178463244764406934942651706147178937495939178998598902217279758235032589883181222785880236366808785871755168113317977653659015354929051971777720831377649575457974575298545529926547697671837053817765746836481867700032880972002203097794384092306299466835075161750970399580369997313444349717922475727039927301891107041821796248202963866416457537662656150505667905969443562252625574514772903042541699245350318434714389506689630603609584100076353247564752623624554189392708267722669676232834887435720672651607588113442712177513063711972668023059526063937460076844291758525653299850150520592282978884533306921457049208136666117027352436962946343444689315946614792768356160084622760388012151756787991357934236010402164562408466361773247983144219986205768435763979830855561857483614023806563593124363766107787023104809564460490177879528421658211360027353049910968503296648683145346793581180629140921878789977917205573066331368492696439268732448889707766711331187500570958222029727248582835993979051171048946278585115883231760517156864300209679234833545033127778170887908416531960414201403246731374682438007775791413605443427863430668028721398239690348493653897871441347382380368297927038846915560913925626505661898618976095241513350332216139553996332956546108820929564448067083596941689664614273385507498835630776382750769852925628536905046333533471480453998685900978829615268006765212672814020507104621201653380872235368486559571446145412611674533990286384930166160736992545106452895555494723487890037862487900706841211692480696903075669128490495604135336324892464755631389997909916969560593805207007285413006583068693996993000796148757962486310120035989200957811427089989330100639041972989562874206889095262831961353855402008521916874603528192053076689979135408843616912561936958248056395033346388953204227320088143668369486583127935526856812102892447628247463184614641657883673179604316896960029526821870019198368355360550443734431328632645760172998822018741180317100361846921666943578683552713448762513372030901074408568038600843260588371788705531636369199558947579221249054357079045199917133979432978925201317620954713271772691527424813331548907284121088785439724646616660946285960630120567433142680061796298316587917793598906618010450995038829344330297436578546489468302916110653577612632071972778912474957944736606066098550216371493635611774206328655898011107975049361556505203542827475503963652121202099027999656750110760655551676867041767990433154449860559853901649062431252191409413440815117199249173287169667583914246449291871816286869619064528007575959106780958958892341285324617282639422080244555300621087103993702637151682630573731012500939245887795213769219614964488308713305787056841011893184011384786714539032879315869878170102934706662679188528700478336517605351599102348465204559379927370815713502835290310171581802630936122547633327211333959621103330374163232883307618254451263753877981438507637772743640592655600694441390606574616754673332646462105080556014893943005073654235302632183816640594590492678124328065348380260744084663085578353324641405741601789082351994063707677398870194515119685369772357426605135293640980402682813663717675225519579139515425573375102710747114611961400098614652860744244089044922486050748046889182256955652891022378177840287821672508194261913752984362036193253566384352792726371092035381862595081990430983132616023671696822559537476247939845885451574473782625143136330080504339525027723536904840091129509918540146972028467751617473224775734576011341800401633358534828368943748899335667622723482560567821174341258924145493622614347882944298671147967863654642527953387076737265373205064825648586722644879404237407188423466030754177150933776262249168188380816237520324192868277941154851028478104942586802982823884791678091222500657398352414955948606862987669364040187198709142931972581597798151859290697766644259255566849184692383907575159586526623481737126795024489934899837116484902592847007552974227452092520016037939723858238742000187592966156755840560114965328957730380624189010434833248689917067394213013947935648897819001680374898287453878527813608354807173620576772076690654777587767127041021484357854818404862027944639238092660306586404003177994969947054434974968198728671465494247709602607230040560221014409785841632717882566918602158484042199552309826819689086133683652430332696972472322034551452891409362264442610882466968302652191066121966205142830868864256706748609457936950347430625994203666743010859090288446746641284547200409471169200308873374354751232174220632219216612284476614112291416571482937870611934633234753942479143772830987824362557937473459720369894418748507044150589101699726553550152539832942649492778421765392895679212867680229408598048777364161344108255635515569726743065178563335275463752837055702498343262606092537999398101344293321600726769988534812514608117937081864021828673169398949077164597510852869491382376602534385694513392878964859154991053796734442199991629243170731857419329563513663703026847837377947124986776816509319786313556356276138026433731054470165999879348283333176296799202776016486827437561865113154490661592839440022510944133025535487069647561740411061929243324314464579403459692856251948458498116228056443685473411033986641064946996731663574215326156860942701882662631509623639430070340482867553944967432022784820539151033935761418450615713197885006626591389201513158177739892343427997291701096529865210357931645984949736737542819969595533799995284727766294785436012754923323218827227096566073643758063754003121893845041818460448798864845591339459559824317757039039007509600094092344493427892548322530506239219896820082910181648804311591033110924395036012699903241578880701450403802607145797169778907277333168248299900399524470903432622464404866579256878552607381399248611942415720304317707186329426155791856513690157942949146615684882824493842824956868094648730777177120170336035802082063801334418273725547783109551529262923911841853038594070424400388572312550279570772388427855552484776836264927833481954164960512678375212254188318464865508229283419533555243210836678228369054050745496985736571356278932733809883875923401222268538693585353738339278292389038522163309945041882472398362644335615438707671123107354611907758853500199866338923688735617687242051851253065965173945682366854619933937879615537771373815321674762307444029687457406658577286578921331357499847247803233468557596172876030668586680319757741303395305026310425932383189691244236132290785264737054402759893793401266439134101689116667864194558710437530650837004451723011652232877381852269655918785202711212307916392894496051198503059357005489707607712141231454585415774347129785669967228229334160505768131100779275434831943023353108525583314619932817812151204064797923755059082362864445689688547996531692828862633866843913853626243727027549874629482639124219534085841702882269473159377434381125714252548638040997846455470684749240718572762572078802248567554991652931237550415679770646996749557498475685534907492735799870199841440656506430374337230130128123752293165473723488696240357482006250428263478649425767742643957659377659569148192311750179272994877307896634262262491882833613074992008386041897294081591712790283491107822408191839822716806976877090537316587349122876549967133532273425619589136973343355292755406973281254099075613797762712868147406253219519022517206654826366547543893778002410163375289682375445402935890562494866307840949350536868064674181510702206027622581681265418349060632708490435654451888437558496632663393765033948903306943753805264149746040215283067153573320526545930424356339685415816593330486262749685910774897514841183105301316454292133038527417661270806356957814924585715010317092614343692618200514291491216887427594507172754608388262810110127105178288993266002444286597271798283130135517611221003586033125931381099411957276961426386921142640020713841407456920450432763502545190374777970037803297454533595168507538588719761266815408766590197449764281673742805618055640337386007862399682837349152519798195969627535047578726976733745484485732290220418739429866891744301244858828135537141738905024446128777709800732239232129108383863499454254753880592274145983754368740466062864017738053526340947032674511415350153516249142451365719124975237467310250046137282498069775937751332835019440997266680027607230040455017062444909150009215881483897462232959448911191463328724333487901937815943227920603650847923510996321838161097611210932455622842709295428773967014850285250217125932779818801697784107898869287866458727725477369576585626331632541698046927131043438158891036220369218747545890726497703748034640638557265652551372748365116952991868264753408585026519135478622259895223552140580756265896155536392792283843937740474187780097462384251818416631669874096058786442226996577224873511759421770840322462993534139312091011222242203084620733577133667736716885232018014418146827950670481024877415851748605310651469344173914327387719307513635339850563954740899058038742610744327929423267729904301710957954585762855933611277824419917872445596678527166598817108339178119574349679075997186729163332466255588620352500746443656488544973723607992935319427529069189337430759945940827345939234653986175256646158129630460417829530369283002430775672756973623277914457854448500676272456212201260784229235282363399854578514674297601800218655434080391164530809238887246747479815739854129545066950273855034291096230571523111694895901902441805519507520700209272607129802795439234148221855594917268786374878150289940086535849163963680404203590535720685208588017468544349626554150784258709069201633805098456298902129839341265932561605518784662973119477373097064101290624029960921056895202358538273132335250353841273843330560564781877290931914530520424350526992259492364188931444828892830869297430118936930342219657956181342229679107767985443411220862547988422510866392556458781340094103012842017249386627375015270287803086066638698353176051561243499149004199526398056068598245909959991992699625470340763798881142699612197011232402762730638059166375336384459812097593956793994503210924757858094134748137210697874469834978675191768532734678721363698679236522395628768499802158458426752605958690651419836698874430940531767806198320852631517562227435652769133754764528307984283802884708296501513014115652493313175679198405817954264044872487537529893157918818550180104615469209075286326709899173202725587480788763006242560479191581129457937206695456695213894167966210091330041316283335397252291518675237374205448823105996164575668821469635456986519546723468958014076067814737903144195102949512267469332511085166328699362842111458411687650196297158200609895459575703209230655703253139362331575373240699063602514533221075372567398668927426918364732756058406777544391616426265478079389287847041023457972118045179009203841976120350503738689971656630784962599031194350012551121905730216463007867953798835633503226540377436656100163510533731159154090844666864551048098642599029821270299993337058984825197503882622910729713386450051619156824818075965345246119005135054270734346610367355176005219171374255019303161446672779242831570170135817496966502396655135830088429371711848465381435101119783967757280430286385910419976407055768194752354942629484863993019325078066642144080440250535512269414717477858887516457034796119884682030082936667791928213677939758473030135922006531102493683712889238818673123182982166652905494422681102820834876445976025866525962116506699576291911578881868315266678477531570525192082127466103542736020686407803431828551992152058138592656133541331985626521772703404154885321704426322406596586673392452492069804620836953351503179952595108068470056990870448919746839754830068143648809853836604472162569683156658539189022349865427157910565324186439393846160350856061992609730333478101733242248250563486466208025843226410726931033069995552087964382742852778368725429164336984767105460258408924051668260170243885154355240805260787247256894800517692988495887911213894670817925780118304441096586126793439689556696932993954214154391167779545915178590478541307206922496230355912800271610621126758101857841886936591269665350435505035465616811077613988492148874776378335187098411984748690633360063052242152511633417904193669502557978666453929142812410177787382649709017500217234497635764351275411769111757888331335459546021570501851913730195267102966788187350535954594233731730060849957148098980566377721436421131389786777540689572017574769995816350950437008045705484676301133791655830544896795856155877197369801741679033660202159502525566101995225100411691059352621496940604264180760404277635502551411456725864859637595637127813876856200146527816353477191674157600563437049496503550051289454319424849092518885906814536717718497987160580090764052110677408922314249080437057927775002518950207733892987532585046134925083779822017821813401771542497173658215614667451119154111068986451354114554029360944672531507426073089695228073543189959474550235675439491537326273382560036996327980126059670385414493135478884529157007439474889229023485248036034178353526325561286595364407459820620079623727061992137672991002301871283299859002391392331943129735837511727819604909503910264952947045353821996710485346538789385690821260849156159611029274864272184943953331036334779570460863876687700057785528116238239939116834495316816131094016279405876094961564993922274343333758364238840344989461455839790054901783969612843617626229895240033721073666777445897790504201149037384411602955903008422711035324434504081359662074994209753731671781976375849406998471652252258694234956795744290907859057898278712454049873552227044085101882962140629421763924416105344960537674315624480994579751158442314616026747677425399295434192025337761566704714025458175342923488345827144747337999112835923934197124914142337195288456369249832767390220631499160046718937992055577176414965208079949880405424151990206834195109774423479528213176995044066476552782813530602808190108573318549541072089788367159793731211129807325076775390389753813351105793838259439645633576712810481921726876562995714394315015518609021484572070855123605897117159910406774783083916043748235089951153979573214582039616696651560635189847413481269765183934147184510841532554882579827555120971544593113053922283567328231926776369076321596255564402640603147217912657927964974003093901947854383796864566422192094180136460337953150864111328301362430184489903782921447561976347304257651661591267201190150520292189848621782817437043439789368026185795406598736698878161074688061682477223847318954364977328192945712236954816322676626370547586048098760958981121454456592597850779789543815315823630499651667719143147418811571356000446665616159463808213419733142408905254622666030270527737722693810113817077812974200344524941508413345824859483412429922763957112112264491394038013098536278051467232536548620109979273252804987221357685669593017870935757944473319197963140620448690995240726679860693842570728133174136273588178768387658411837085588777782345908415825746798822617210156881953055463876686968957643228151464029038108211499598077349816332762081040358789849018102153956613407726559624716443987009965554531737705571601766342300246985825689405275640608410719820444948012223685139687597687065049366427482621890234227107641788383135274265171143712149682108102873054776684937803567946382587269225221516293621866363386399045939325897065002975829210822081156280820179025282598973878102514270960186479376685766206841239613920710901536601770910850439561088558818761421437197133680692660935236921944406841317148611855172356991910030433257304265674920463626882673817179799881001395868623771912037487640758777428634966604705948843499123267331457328487571715199897226922392108943401062037036766649707836154982453071848665212322335415607905543159094895382445930739620661821087925310568436818235796669350183721334757566933727026035619364634225105626197167443063578031123695200640088623584344351933629810193168197284678511846416573694606635510689283447354666836516498426673336146341463551786508468416075169618846785520543065614150178082356247445510997488230336973358238043677363971364901475274595798738081234055890583225638887855030637601457041630012696242858016126341517916601605114332059931861477163086436926063538399765015740113704552760247181258728831515163653064794301974123797550097210157128913527746953407911360073818580469593904152441211898329123454796160962635468623539363653210188276860275844013529231372514337108927624121707849096000881085356594895652511019833870070366306400019672976444398287579698703354467313469744724696135709977477186771268981538621866005528074200748258903435258087532294114419133024691231878774087139853051158643801434921060816702085229731620889381802779011756924417877623522328014023835227711372707098308637315683780526837209006351735333591090416299573921259872340127701862355966670981860110288376519461122079164334392512620121167331989815951237846549412568486800948739503339476328388216613725524704904161947709693152472782987762749499811753639682428300701298013347942051308958131076403754093398805562758722734134668556452892254882050849190668733435917187338742511453644566581536546040029432112691569060590986178280902836904848369406079081433639998884352599499374570193687032743393443121895647408853916215687178607303466457371137908308539188136678279735411281185372750646545826371510229520300762458861568629787227618339832795891468436330543521423599399196792902784121496272401834099590598496883890635727062150531493900098859578979798614111126570025384116234837202396397918908522777226082406521446127609487894616280620019086142221269487835442196790777379519913291739500830445493201425697973042415797048330121496947681681368214354255628965890539365162566255589929597017321496232678635517629463519963947658055670265382520303138155027629839013456199891938608997750662960505986181445536012468254588671542933335941526591147272678704516153504114210740128655696257615047422952381945155113864109230632427414726244115523762168101811309837927455610624001712332857771275650142207980755509484119828757199245827741947471954954437793517177026843249407604317245162838869706444757570272604608298857948818295597906999006577125956688193049385052476455699442630439928640279900005979073517843250467706226038133407144307452994443299486809307613597862647712391599018233091085928860818654833215899681212289737890897739263715481292734657924158530011114645678944377989461066940725505151605735228561560546975707223364194616953539772076575713324021363177209437238915949590143025999642593077319146255465604156828268617678428153793995635535479339055066141456334920994269713623082552822754976397354483439127771747427486400167173985962818609380249266093885465104617265763741367350138871143289804669618420308233204981613571685268592897970433337493626880710239162838041172764894575272231872766612144201129550368257830816340728402416831160081330326202159861651598526252934013656540617732963396640337427643155755108337390609139490414811426079927610361264819760232840643510097590899176875450795742576724313675368634596121616877211323134043245295046991300541377681703908402094364870113304962024259190413727762207917579309572807652902868704568991886537653179800593385676012166537427219956213629647427793866468745500006094867132782455288535767109459141758686340162856647606247033729362444315647176589682529268667828075097422636232382411709084960423465176846638518005683141269975726491563465020023743087250930541956466139848926936989020762926228256205358309795582758635559206445359922991282170982066217355912361999505101090185242829549735299831042585695406717110598631490031634320977061617294952996754000846479957584100586213083115793146351780827341768399519910049582686048833406153290484033873364988411581135268009789467653066464019910987972282979487117073026566530238504676296979712265717933435684191018538710918465479658881642914147069221228775268953036957946871790067821355400022466666148576150979207844327045139509088285430005493703894966454238516810634894867902947741821478869516048034236544074193240774041128210045469957956017043936355537985162399361431686960755267009630838548853234296531058094109236767392955832443079180582933713300226888736505594207169193652824007067723339529475862553963671517097912167037203081518290762382324456673523419694943686586656157442268134673554929421340558513100191532832701588968393799375569040483037982177235200314707064649950484554300239941229520467127336631549803380586446405506989229390652503669364472164988583883353728947587977725595746575751722341002410065907301238123689682096223949006422550832301280070967178627620168066947376665605992339917126195455677327220405296919887128663299857003630458469123903170849750272003280522546152256542674353585827241866652025797246847396751340882443317187264439348498693760690033441802002583283939118335903466959364272639910318636418292195524597844670293745991164759839451252569759182598279692018373506549551549884582894379467511624996430494149688400120741076962291048915871740506807362670896337413095670843910609569061642989791909280324158438649635347525328833157873199913182471711718187317107295606763281936920408737443226820857011856043976654674888575731942352600900572056337774392170549821173286081503804579506995288933321712491429083070699873003060743057036473802797045042232032606584848550647830105111395987334999005519071051399616660555055292531640975972964177738513663248608270636272712264354294174737746151643126975227532565362661728150735445999746054608842034717871177763377549041765021567692954059483429633527687575324162581787337559292577439967043124629398059623540261047707909461093289932158907722470098503530574797665743919037270429502546131798743808087800529641449069673074018712583111096413611593775848751671035156847670629382574538901829457164166204899674218288834237582286876762112026127516542737915552864756425244302243512811630761805503066059526992882809652365132196691664630325992964954529466903231361989798246204452585849327228136847832299357164876995717153246431864900989630789054416015102013317961149837900049278812235787132018829239988690771896535768784763155901960185692087346752722060706666338036540126879942531764085326919869940736751459902930995816707756409567644899958969705563346597502217075956000294827793952733218940029622784928704304993179734421134182867805092534695945615513230003325346484642804728972319279886917226798986917521387839468726449789076886829631605981825293102585912560059519448192094297658916174160516961240234259598873547096945707391769484051247625030821147219332730655980941137139029181558038727847687143135899712613314489988891513854620481444608308247429646357537774484116270266167150821676524722958041952748505361502334690855617733147024428245649609605090559548105250733313288038915476294715886359188037071532216174503375348369784340533377979001301054915727162466981610713333995925973369737950321231510734835983989118049209512001065987043803804949486234947207309227496237172492123832884230589776074396615630639023297291674620453160243978726387093647756692950026454800394615092053933497453479294525768649181633611305391953068451218216122305445631975293076997494617634874143027330685639194726738247532354703842671370946016673135754308914845719460159096329434248621153909774197539759373051027486740553785255842512944209241193842688060677220273035151481765072356022117149974616307540787667685903427555109350778214384797272092684622921339621734010007118328478522326438334065262367304540388348545125772826274905378737060822148546473053569041444084191870679285107643766963415158763995554080722215455145228557054819303620263836436333935159016795953836915497864354749802434815580353007431857780659204194524096180633807106630766716756150671015976742938577745041187307350393753287296976024594647593024153237014162323609603036509795006637870236387268429509494648186436152655885392813663360607298403488783771391556830264855978458407747327722735002670064103189218256556508272370002293125602651024090083074139006881190128302975695183426596754620782902152616515729039695855876724883834500610021424191210778672027305591397642610342452810424690578905208835423532200238098631330289155058346988574855797899423415488326417792907179840076004999300423627340921921706497115909698567684706289653966139658309099234754377623989165127103889088615355319756249303642371041403262126542321435054497360274383206667381044094989134065938440092161434254351741347752986002242689813784148540577591347960081118033167108554220326582733734296681765140862950013761134355342418345449816273758089863199652888684700916629912283292607283803132983429888662348671027240631697342782638597494847025621854542105403042150632133226537070644230791255197435910148405589879179093434708561981729923731808526990148271691271791899045767146140307599416279960277137102999164326796751855192306722245317103328679217326280488815154116546056109661318603441862656394254489422265231460362361012363057772734921847745091292258599832441170885570850406007496665928692891853612037928188289804779102012432549938873122894677011778422454705064861662128067686809630141154117019816927139820046262641839765467219012824570304090552338611912363279027397280046565191473232968470016102123059781592413933567715515931663602820218517905983278197780226138646683952526019797043896279112625228561524212539827895372748292773951316635192108401047295464808799895017135641009336388348579358825216916971898332798180938530610704447882606643178151357260956372626827938480482179270392772994678484188704158482913363086171443506650066984907431226343334756882451718807522152925884868247373966538546583205773681813412709276848799549320520281802062174463213049545523490921314186858185773965537744156531954818676615316321399644091480860949794512892109883187639445632961249688357535232727062323400850124313705909554126103941737796807696249743098426607668252079426698486392085831472456104250421412515455910012833197755251015249187374686940323597756601254909742981142437422628255529668973458632169613404860239388770776932902246246197489452310015236057216747115172814124321261746055635973548751592594584174740931865450951820032043412598682047682172372256394787918393603751356378829266804605957961325884260015893292003687150811434510058376338032832706003837459960773010866480924711479349733319612094939550313862582045169981744988432383664183752153502903992616102029696105049723560258903586101430752072176335515359335420640932279902900834470254215222014441696275603534730740786013370740352483479710073595215792969882779737757073731551012905805998731480664088001067515246490279600444803299614275328825883212956013046568389844214348623418254210633278532553725951253415113816825108572423707551527774723062312458809898097109885642582381425730864664887285179501773736548269520624568392431038312790150677610090122827028985614951837917079883670698260408674055301738949808169374304646585789659155529531927085216757628964307566039110658291853311072928997068294781032832157513526826266722274465494175649397840278946795329431168706082007758844660628508737249526770563556242461550921901891648537972846392911460552463830285755662897791224491328411778394228179282679991472893091149701403436202604437445322625278715891656854830148414115120862019381434122532743466012121193911398787849560148793433565098590223998430588635671827399242257964591924414105277337948371943139525166418283076961247560875824221848073995591921824101938360331562885690360424277108756487289256088973707078031999820594039982899970729242591822071731891950318702637190107774616023938095537826634053446716175514886398640748869791724201730688600969989960846389977851723940038117055392428625470014518521626330739108792605251131746443474364771060354059426017404657897009955619882299222664371769608188798162201765038767789095229945066848503340578934328914695453855825769472942222564349141442357703001324660347637705298284144317523560474064506189649315856303913112347484320280934823839087547751013845906030063470601688907086514620006076227011136290643010617026315372055620467934504098769093031335954865557868732919025275516059192893032487127146900594466981638252926562359260717421781444492349467776653546611910101504302815034902694806062221248767934753868519272940263382965271590021845007800514459247538417685715162150693487275838583109287230192798327517361929209133795115637839179658977075822937271606637354741211084230040933576455645576032518692316320701876780628742582601060071465737228100188126542045020884747851217824709172795945788730767948396760348287622561347536288403635911539111198620457529873632271790990374863850408279325598101783598588696207739247773384624669936074618074289381274646659838799791314919948521078589976938925981912809780259043488266252462772164155824602602869710154764664513590717638175466050172861452006291953914059317267694961985559495042143334427341924521863340472778882436356100243739302009820311901316769161481361289452394035090952427319936600645339110656642119878891334389766237488970482689974533981524467520033974416435296529211150852471665208918532481919775853195971931297766529448428379516612051041066191746218460685489583950875550062549832499336897546645488157526219959819134957340097151903360048581165393915178057094326581788143147924089964220392998567081129346698171251281172861498358309024009070792642226666347484388666792318252695098609744665129637269123934333204105071806548603068321348216041740056759367100721010333270312112311098600526187543275447684570401452384942715719857196690348498843876107128551764357083258011861665390979100462753254047208237803373986866737789139591488156700641509878121955542330971966445608267715641431810519491776933580793289621807763744137458566004757029767493810292493974626490807496823138849432744178137957972003870916371028693243892243241850885363942805491984145350093367302048134581787498179353940341704905143587356118298043623017456871030793071570677667263592101933517731249370627553476085542768660953953611079742084543116554127368152510611632129114962409460054602749799685400420808780766028792693394822039450996404450816483105612222679804132579827197121001706902024128949755013320488144071839567798694930809676798279203575966665914056844444284467784015040123516465045672649191592150844834487115735900785882896702556299592544810280412174126829937375337838714692805679518092679519462370459669680434739633542235348465090051260306672301850673233857128722587951754649952543280819455381435624163836786596054608009232937512216836045521844337258890665540551072903496483928342336529768272912581668050664942381303952079088110444952518975470385404030060060521176222397663234103439990126523606536611386701412318463557213433911037623744176574533462362174929397126855991966699503742515129250928058976566611221880528432690643508400486715136060133958924930964762971809952487465365980355793171883662770758663328606664022582103728071822307885252958258153634369276636643265596614282751027721433671824724224426080059927791118864679730689473025638812662728947889753913784937310911039783331817963951566358807271114686085855240400173528139999899183149719371987023412158634520258039034040837959321300544768157167402185902890647930031977939937103724782151815193434457122964535483911302448357922284922451130154415367915477948011875811503116375479474486695440542453645734909375339367664054697837468849130606652170142558892124240460690845102448639972700932651780867106496143483174271363141869109456916313926311278227327309146340673886893547249823827886728522302936908320508193418021152476704305342740153367794034323992783466596028745053094661599061058570534939955468499505580855617682161675076797496084479437314929302136310886076584033439298289979772339118758364993008544931499555610031775101445605593482808189451930052609085290392020461288768688460218569486684371591803055096971186095763417268461006588840185561086871421391843176364574082191035003639311134771904617358801126380321363459966139444256998521095655928355528644043249734106786741233213086749162995144052550538427131926324194476345328866316853263819295971161642459007494285459036422049815968393547116875693677130906292106348959377839829820905907665194626490615852942876342884266734287424317083366018725108624992300017162831657159791825994994682576161718935997290023210140875724479302781235565357324276416772441203507593901157581706480056136897814050458955573733491171165606278917589345539916599362229090042563774632239591471803650891542130352232069726975274980750506925961077317976459424749345306608870820173560925166678748385190195567071880617522039820051846645654769938126772056557784604515035043575665640788203323446509195955760153383144259410361087411469656671713906334253329349684501190440719680122124358347103992059952825933611197729740688346961761431289730288359618215703139552115105411692418775215882360711719041547561693098402595201165024585964204525972430810578047130714595436754952713862453351142728476892393225491708470871006231597026591860082997537147316111895390627517425871675365205261852032066551829417383797992273719673371240851162175541154378770096690599236892381706134078964132152979860808282616745247692876322326129423761564195348678113633133574309275304992923669116240508608519882826076852598836500256322476583868271592367054461219870591361513095985356308821776221665048813641329342968513349071092581826119477339647154304672460278922268508620028987083030001948336514995278733828997899220050172761741376407397453403332866459423440642489711364637019761699112798587986822856061746946306947378025223376719099135322451028214932137011070009021521879817537936943275400736715030360169105758457898740548423812522946048473190556007131979553731854269062535931116139905811481240765080772693693775259845202490386128811156602358019401038500333873671929939747631370455697327330751059632837322649596131130620102027871893496276149147423316415886816996827640010625808388646297344596032345969293585337314614961807558703096224757405764109340222953660466922110513862122191342271242119531765298317430536939287537067266668817440361601940062063700192029753888715703834775830283124152584325273336869424645292667674493292668311601571643896643018627741456774095003614192050901943170601469513939801856945361325586096055514421801051401736917675858970174791441110339236722812826485321289310186854763980170490419709194868302945346571779177620791362511578320905884919500417450748873816249109768148810644667447811663178017646541771045483716401169915444945421185003855054198458186042114247808420743418693402943169047209396157740281866725753539325399136675390747017638815612668346254509737696476613287534331498237040240950664449153874743934638331300177186511630081053387277901423844891496421538195594155316725202457112577305822029964159994333400799670397637656826639046455210934579410512557133668133666028691147273355009289364864600035122887800050316630857363418905099876727817208462818361616797031215270440931537207219294280245591437770552034953630189507920633727101106847842651872055707215075409173740202293799091732162168381182120101216416358334085295152090052787258086420897939905661833688665317094001019776938183139640656917047417170132527659952171745955525030290192500811359658001426266855207028065513893341470123012495634556503905368252593634280804650805299064442892460199898167279938860038856195315251933316571024417474359912423181897473730111887123936415523097007501051490840270784252306802569603206907973370907959937316145112654529885176422189203574493998394799600260800570440384559344392520008672078588515706307271004627847114497795685357890397236223994280607708376132319486961983692169056718345303467494363389322341963263074166178719236809788441919312522959702196901793142402172610580357671667492598977350680400797154491015034331577087199731261692921347755351699714725324188718627303466834833579619461981430118867338544353564471713167161696916130785088144307301316568013640471447635955911337839937813055402331626680201603367885893733071247348447220526514548608161874882064967005579681631129404646632233937144213175737101642360726552146258250148549182696896193853816679730351101122785305762768401309756990446772911222974868590467455562509512751325343767287289536633652818865850100982415790557687852240308118265146239023422179975426105980160014767104855383634633322828151176196438733774960758608868557557144173702131610117393486708877482647012589445962895815958832824812905074788511541892865106320179255716248151837200731071657321685143078710215876200889252907589012477858973144242355198438004012244470760992172689373104583174020888945064596703539962556143544956295514372677944618886648577747470788272931732550638254508950788488514433818183530303890310412924536683627177915337817712329159488512056818377881591553220879917322234377680050666379609862100813782640784202516887852717344095279316013526360510461182425177020445373688249454435788406548480979840214421942219010410706626596257460380064806597726458691441420288363555091576309231369120823495193562427014899518814288589020967521820145935075544331541598182206529390802612134390417353723095672153186738260282398890736886854607280189210112692718171276675999155184218025857863190475558151760052867185703706227804852299356078094071903858398067368454198529668200854227016338137651502338910836312391557700092700263085243310871402624271590110477015452120351235140559167430531652242018993516300840806836655123317120481940102986041862805487180167550329957224411738629403629534332178666527763393883304152807468832881055713356928004017648643463098498010838051460214140949847195894222525873305287893599904455429294610075296891524036816464687800585461328463854336703103778675913365909175328433291416179890298847950026639851528014842825175919755169996630596674113928341741576279283191418785680459488124975124383806050314763584030974850002059610771508985608571468948770652777780745617604544075592674461269090190898984933843717315034297001663520870670218406392469681886325281112401173602226830753405373024070374370675976757035429783441690573165418392177032019058205583954108678315157387034854327270157715507838274842727209819855086404080925900576013790026037384792816506816517724081999802664103391889040131391741865557501430622477629187183264454089146466543807180743407403471333006727785917262919577599543633452548482177174871218721626973452368353721107723838231286677388927376993277846138716951846671961818466934475482227422804740334497961011348089007972395189554399775206242191997057149892033239325945012593868676740087196201724290004136756259564107669111425348029558339023156795773729773117868647203694998801569597013840615184169419474868362519087835604128614088977773858238307595527220701648983666977656027650196199058839906594034203955834432229196701842458748020120993116104428665965765646714606245335081959543310493004643471682940190053471434611450055197468810204469739690250187783752232546112014969348146975617478575315608996826819571419011012219326406757362991081692325374119142920983275496504870491658075838429178885135939644974991122879388127584493985928788926115281689061670250519646260037550838753413122921353262378962287698223926575466972690699763799240403695195073033120221773207054730629700452235460846419482940327284993335731880310810602396595154885806518160306149868499706050657871554971879246471882208504492059356862652043241350887636969524960129025776123857511628354297024718860355203275512566175801778318670768474205769360949559209806087479733413442853188256608152138813753939715762751914712864959134504898219473842775710460973336243607679123429625082718490118601780821496111076113336773126084690897550760146942181829514277949984383071788406014621532801493995817816910276916165742956567725377087627103097673072157109602882215155987850704074432421925512387106181781494655109047007552196677545794663785633047552012538225708179646510473666941081819136412700111444796728543800757593814013138949966506291412216205783210249254685537352554246747526503851465138566566593281770873007931142296127454740189455537712191007452577982848323845324872479318810748888217294744758746697155049090296222719453041399345177498006557963556541047211711950868738514708316232779036601686432301190978434273992532955495323746241222429179197765298065113103008220474059002671446731602908303134727293009398421843930037220801798957888568936242471909649084931290793000150221331273522254777047132404379807553735398418011140134816349899682635963124262532119755220486411695920746932403366526486881744780002987613137284619544212552513486736741179546486340070564511774780559680423990657338223340411067692321573155452990677809831180134380219262284803819749026907825275176900226690015991372326573239838535048673448473467297800156868431534841746937504299590662088594342551668033580603569560991816909060580236297375389799930720686119696404093130567755616255016751830820939341062702648178514475893442184880893938601141549963481135936438896570925129986546416203399155379804203351594872554648856640404721142388653489730157830528785261886732139252226682137357709902133138707122563741948324405243134311777758925049792791608191240615223921738643392839463900900405257017161765090068089890551195159072984156427578157608148514452174923026487161238045316345877434106453902135881288766864777456333757698169536180100433129154026342291188632261867879330137972939693227170124867174818931815626959329759560727884999326375025447267805340896753526378129764954843697880014477891432341463000881238629027088257512904618528815399163131518927058142928437005312535560091063943258517314657909633595848053866280706933329676406731506418135953312441849738986130941920272871749357204762040224535977490562773545756093379402527029492994018146148664225505962272012854752809968221557265528891093117368503346195196380255039118780524019041272623066600566730185936926273736001515545484577950296793424468547203839768021992625440452071871222061169428919385678306994164760746415837166090883793511927483815569203622137399764913671452067530674733235152543235672446829741676895310050967114760952844883744571556766435481614926511632537752777009350616549949405084137766065038518904574591377647978226359976708645030224763823767426790535078244388267596277362073113695209019064851210686078720427064362937682585028924180884026261142280011714222238279291255546363414033766216549145301729071973016066394776196479156639150789771463734486457955242813086949400112923000587173457504092678134533114555429071659361953084550502795513459126815158016623111557671577555124151747890454325515909311778774512474023665522303894836149888959265856854095928216513242461367010173354381422783656048007389918224140057734774454989587433176480330770575391703350378037471628394514322558754369430059154349768307246941474347755020233172395239051259367302115616239758240645217138675071857712753089219717339311490137409481745411242606620555698107026092291676657687026332524661184804471861058878225285818617793289181869881282517504418878514129337655589268769904100584234542112313899280092503667106109547355708224550954557819835212698320148840048482132750635202019871182105579730233988078102521741807717880216805627229929202886946668088882874288586359550149658909764445132856964295878509469832790102519127045946054903813001725023264227184995799910226264761759379933879053002632562202430247450694940227236621311349122296225546879926534583734805126531382623775686550126650135226909903519964101363015223011928159868304713643890131058958370819169584027397556511368334993282352462167301516771795858974760818561550353891779199046975714694591432194308362279083153917361867117109064130187592578021568813527270291150983774874345572434003430456344074089257484025769255302528421450353913550208629184772472644859082251435653442677618391288805305717878369618053014399042585781024623987948132893476678728682320728091427733487080817319455085784717629401024978554229459185251605038908082948351289630936374709479523872574092726875492290933257948070776998485664452645612406204791144571132539142579251523793700699501414149503892901234786975938564261580995323201085242443439959032182113536682327469269862973321179368506545737450714833625974993358002867584326139361786828444252073442991071565935050488447602496691387361876496164711308829218904735949937446132322144444676299009235995102494786074163885827620776904874598696154148502785075204355244421199439417860577610141487312568704603902413485791455450564615965506888577038167848953029198424596768545289935868668055984940318645691044874656850389853596663220682864454063572723619274632503780560613119001237253955788062573963965253147102532130383516778060063050606183688305940558453964973385465096024256170788771204346614049527827219888944309324276963808364683270250762389580517873220604888449989210246003644480351503309325043500789731743300869942240122629950577040292399041449776591013045044941853141273697412745899846991337967112980092704039012869429597251694227703615531693567205809883282340998635478750945197603835010807929550486631730662493330307320896707353827877816193646943734420238541577991234088856403913636276272673825386835144737034620512328774580549986166327431632942754110979275742451389642655122435407383973068438234707528926745776510128356984030705178151459511458027870007611075843219925296367969762248877627452861390437642139800807030131211685734923543071466303962513563306654031371044671424552357291710836492267059304206256125117408797381911327688370711883110892947675074721606538362578497207937028833296344443633198955683317155229940778347768623668319747377848144282585075442421586737715710776846114552321584371065357510873549441948125685689647995310853996193129941207848900349104758173962293625886914533283545076133828043953970801839806855939659669333178617670735584818083989552169250316946645673347166438245427380656457740266106214224094820736495987683991132929986497293774445096352161592467931957502425971004772141181698338470967081933345069915673768328556794317334776337620812067556487827975783703022238449850772161016042193455821247215960477247660422945044503198078224377992928809860088257260890419738676314056004179645527238915800415167254494349501613292114965936768563016707385410166373036785332391679375548227525678390854308572530859910442072073275348622726350503248751821587721226457719845303276570779497305138727149601355338512833179919560650869099071737639708526373983227921611986216424300214170946546331661833710674923409910851925341197797801532725965380912663514555206759899304727848277850123936464623924333186820687448284902519328083179738075895247839679818962817699512378911138648166248728481376709650710019753571614107005109836963012913535577456252716602235588247346497950388607171508784722182971549344817300812738453169562514584369081728919866112071357913080728396138693616050831986235545593352576086243734780747811671693654586559550534858003409302946468260111729827626878856774785113215551055905531834939507133609805324557545280150569962440316140810102227785259051408564077436279281043625275680536864574230184900529997587555790657074886566352924673117105390161387933244838627312999320509936053903725733596506348487666825176572896094993081034781473831030670077692440003855168603209990909278009590305864201763364553417630676615500272845421559794475912099839139269433384647840188668500137309332555783891814566182602982802989347281587582141049954389585703046125882752058471900252224786239245601452133533189949355058923388157849360738234514453444597764454813086430226582602882726646234512578475340713140822647027332223537209759948130991657761998267568047277666203484426631786603556321538349900993572562201466755650850615602652490767095256335576464792669341399595223765013562043934535942211472070411971259773166197357194843597327353834807584155134288791602352390299746160969257639059230219226914279883870609499790721183234259783280608154714926675064181514400027817753913371306568900159490484083460797721407851882352005882669847763064904242316515044252000764111662142840090037374269087956648844444287649682154804185367630718493780241366094885665453801410722981830063962638369778251572488997596050685530392889712916436868236617091602421466452474633257382733383580190381167354913449313538588012780570273209264492972855829138754297920796333565676770528904349610728721325018379434923076391614536565723176177453620376035942454373050945825313721892347337336118451252372614659940149095062968010823920560143188406325239335979752614429797073914983603346259867912043495711285080953859017539862072835477869135248558960034626303810014682378243900761849199105663197701452784210899236248270722991920062091539565380249117088995679341916752281584656328751594293793809938842603659996570057926948943415951457499494634129591077287508732148147635382646416414195173705246945449070123235557499893907558911281241721613376049442966666704361913790708309848159590311939448091055243814324057805181390905361327947759092314806524722698481370424369087145052700905712197350144389881523818737379309479087514577280424653644634355687925477921847877166016844116084966786768064133117737230744996298692330812356631212933293182629130319422042893080697101913547493283794104883116826402181870331311910794132601359555301971292663405925205472830490733668938276068353381932647342112592628377550004346614151351609786562765860091720891371831535450268723949427662685131766449081155114744686107729611845575261607818275626818177231298835824041924401889180778065679588281016210400282065758977417668981847431241714905027305059271265978028499119987107657505288696475070064041101697694089515515266268955281131960152631855894641599977760791614286626796508245825218350797057526384155145300798565115895507360449518452194128644907634153807983196199948368176075753143128265634062556731931846556372308196589312125389044599159953203824831348827289735468115132058441127378423509723350727341622249589420915664600216276864972340921435199688416268514292923263370361300951146999206558779709636049838242511985675765141009073795160646183907353616306043988992187883398712117787435975401354805483718292820068953230993512902868328903037873131683731002168484697067189280354769070894130312496534524182876110241105452803762820131982116432878365889357490087858416206508885719491050222962037381182121116779832184021737232951566267864882452225721066258331541672283662269683392211286246782556069292152425720457550707541697973180089952408176736402625440200068894930748310354067190994476209243469543976686830157242711109374004551187565959924018420417315319654364407262730393565129940906949557551780549268737194331115663284684600801670429049359687317754802619267364056668935308519962684216805244323894284695095157146597205760740954273846540656094949280835046424322467236930418678350513290937525984977812963685861566612313995831952327333060889767422865663319533700678313978833147685627881466348043827192442446642773555780566998551921927122685282599013973152559389051389932511542867845103209128919567020099477289408995633837956516964687842524336141949017047727191027679676865495609088581203896117445453810067460941662695888528055193452623930348484601654268758454032474076574067595940881392349534340877527027743636986641168141148209542686867286459814544415184940797036384619916740228534878541878486246022270301070778868481096895123031815181954914098207149911342361600070557090835226340677297795374036702066522127334781883483626431895575367917613868680240621072981612681980830096304594653426665281773004429828710987151490942664860275149940804552679584379778947141063166755270956556066048885794572175529785352744543702697120602344996847335104383495780074799047797004150213388376992832833770516244756718648269969613650588856223261454885436124511639896972730061974058484607936152219010991300208161945762654791382931408937706337294411458178052860235755755276351025406916056839331587504137500103176337587712796825302749655181512853445486979430408682347755775179475150377632826104650383544437275391251359597987518069071158058110263818046601907719819178668845484626876915705972041603392517006628262313822885711923093356433010301044221000038449731194877835187516483199485387657134720503082097776051003140566308789430233063940081517029524885154769479273845757653897197523012226628357406945883287156638581787038511673013973170267281489956684718504975752094546181717624819940082553285493497795204796115316343693511601783316299767025058828726801065098656649431355253783663154025197085014363177488411797855490843870208346953664113215233886632830094912966663861463284818881718514838312839402456374913231237757885447542697270378972119303951371049568647255329002976655494801269794089246740562007443622450424241658793853095953685171434597420094919392744318775294652367991943450210144019738357561170221924141407281226393732944075038210880168419584993433235820667314877360572091283612149644983889622437569531831946416366795335672264097572404471966205510738142926983330809281107500893050891290860549691949514912612457988903600508692145206747811989720326057448677202693250380546156875398935470008303237174856616844980454943176414328568130530390073436956385302371598856323930997718535440906691477173684414726444314371123466871945767591023708162534467312134906776920379393091772212119686030786653020337095819295372445300597534244846786227722542634239877672904805362432152206750081002939681845956258994385537134587060432906266843744020436875339249030922530215660203265802361558096876914458961829440137555927247707583217552275770469145695624605329864638755186086505353898578057681677797626897503033348464946585365742877176461064878489118073000153300588877777437407527783447181972734051974925395640194915416438217007225836627617329852168718113793861156933050853738654580923179446009612553041757193824587774261893927542352762922085736714842223432868671481199316867664385116117892893248113733624750842648222370665086556729100181777125084808943548006556149542318116049735151685936930723902340650158258940629443235008924041436615758586901575268426409035636669031640810493533720295641258390415082100620793038312744747944072309062690239145171902266377266692178102448833288807601792935893478278011690378106484664605448154218282386378623116642357700244818061902880288115795160110707476310940843157600354389599831452961488320564967998389609193849562631662369150071957366955263926279229039721695451417568080715466140904153523890510808849338003286189615715260165869807735891976214979625488941181894688929700683378747473115589066708534694657335661332015731650330127763307474207847474890671771716484011447676216115401473690859428479901799715723100402216411784459761303482251021396900258958465618644414043292141576249160698384368702738991346194458389695713068267110233117046629996772970046644908285603440791289928819961366265268606092719790022059845556073783878443768487820641049593035133401098814375862466919930077531402707076136386583022776006554274315111395107136327411778545964354364944458347591599400028935251650973424905741803932828214131773452402383858750826801423211839310131988562300774108717385237936316958133914525813205173372332179077589908451021817097442945039573035695385448596864168671729053067988209497420002641221151056082008754923346857136118237740719186214945604336243213007005729752077110445219691553244255231682007120026992809297713283058883623366392095087038198374868649508900157527101721384556896431829653825361134214365473009191691536513314490947165857402824200094549400396430322267386384483845457796335903966808165559445920836741305803357846878399527831074278261725643197212134620979348361619609132365838442347605280674568323039013006481614160834468652167000294516114545234909121154950814779276285804143162163827925121383651325993147567542780769042520446647743418617019868884882454911432133821254845942160453822265610587205803511943851007251190020941484016892027753391145059486065687605555448728170388625288458137277952116044323269235703968462639544985087915407799558352153474655720670981599038757228128595306044195848911731631601428833895824203791271907421426654136965505602450502530501592511616253001289337755500104451731478134392724396126384067390188494562512737236534122090499248849167226390476631164166985430399628897174633744786621361651964324867501723086761413196356614746812866859958802871265407433511917303046105205939437200605482288968541592004457902136887022082876499214444490379089380777195878460580424772779089637185597781349350616328329086451346696647977239533170218065839715576279277545120319335435314977877166892855058552955949936876904847991018800999961299152082556054571554262984212695815990604660435582814952458217164786183515457915394684573372865546423833814496838344882244014610873869999076361062091691401277493069706476038415376009457686031941132976508432928300214656649077670800623067163707880255028853628244572266927045374412044876852164663869314455329906320932117422829740184993455202300889677662899321183081274100947434979608629559141668311825239238769061819440698844326061520990675806484941426798838437649496939183281766346636689512635755941386356845260136201408956058268031915768229077785008989621143571846211520792468865019104609811019140778563110762485298892174591059699130454041105155367821013160265011545202439187497470432027413321094454221648014878526858310995628939211103823972023320861365352621271404106773470676678470296767159194426906209362022743010011729716559771786053249981830067782099951021232539841260049686896494188611439846646303308592842820605611232256628709952164114351456458913460004769145663259034975431544311490045164202457498524818089831613546096198779207007330984044480867113390866777399891338227155922784534675164715714431283853749274982399178238023477860810278702040392673601713548558175426796615853987930317042274748484323518621943495813700724401692508425004688473776458115385953665926337076599150824920842151716810864540154910656580100915967852869962451609985908657297086071492968016073318732316342091865925549583788870006152787644110231517327865878109726306003620017626274126391784851588748668970846860451516854376768867245738885474604836124623708602262970984544255662218273051257524544480189178644994266206124147148848787121568822693593217617203605145359956801125813386031256055381561862132339656784296447691391195014718877393364548244445950081840635792963320078726471899877115659111889569265352218397357606322557004880688026657743247836164879399768230226014058748829780612797168847670743368193938625393824851668297385012559073307414084256958770026865878946974716906990439099846056747149788581501921339250474387527091133916832582944487975580697516243844851218174082571835408506759937954100787195895813689339960038483619023165406933785562328527541993876174566381512737678065020997498904520287043158282997581495374770013062908383018108216118501987700085422906305144218152883748548485821223651682490007734226812640169089490851512092832028570254068549960820854669066015675305843367674190187300291865738805020214261551089020850313998486258831830851669289901998953707936476335754337049585477662400925733772298999566632694406167204134065955381239342617224854794351953579259269326080169123437036251984140805472950173116051324418022345041133009547115273640395042049501177357622242660238161689745424408960281783713267783316525948611533139135478073023324810367183878077655824723461919283094121479628245566724477175958335382101675463592888399282131604548295143232306033804432053859319485944103411526993829888324479022834860857620008377515970096080893678405063051905760731531254441187772102374003424520005262565033060740876851525708140039157004308049545131522937121446596102252753133870119899787756748333503508461722806983041595081778697695629869388968405895829028430044452162620554648587504031227678028909057813395378985815140313664049001470618234855834095052166102514280928686554643554095519736894924968914830840560714052686183825251279974061252763341666631968903935582250606007916926432244349897622887625036744972193437748143732675789829364264838819806377357077833648933217946490925682173819974861651983825020885833127006712306027380234743675393715837156638856333002407361814670884689253718536752354921032634401729561711164584379754452166663981883399553108915483708071416704362009951945261821014923839887566941485250108702566445162049723050043824248353999666411098442789552785788396336050389244954914182276728268334532061592922121609074674918949597211981774451524277203114307196388198735948656981268407074639110541735901136618700098259646457468758724931511988222361191317081890824621474563743235746223409947443571859974140182904681338274754758576929586361109646295583537575205416247836219948407964112185580304914930361237667484639830820826859496191084133884469046392057676746668669399736264110202679304728493368087636667564301030035600416435779293536098884051616722981474571918731748734968970648323091640184881029476502251570002173567613084925318979964278892121829735933176649705585440174512629121272949770113383064552604864098747993753990891319874046029444323871992758444369170099347251246492272882201117854445162212926230732456380652587184496426907412612641139163177743842465309963319547402974825205778257612591683217753809244309818848673648525410390137723336268360886471680046310221281209557950822816439639296412002529283340988955800319824738553883765865269077400349236364025102890183657144101918473099264490096352040235950350901212502627066530425273748345685063860486152278172221220896212477515023746471672651663923551770206751584700188063564258420052405907421163015581067709190442196591903621016754145946684222388646183224876820957917802904143281039229076875659321634527314087096556369737716609966063788180632605726977170206777883299374310598026676738434603741167891954231494947237582211726391247107180660331417744572672421988428684937201030085443830795139949699787886191495992677108482932928458238065858899149742310487258178376490731522296155299207315539568406086563260119517260037737880376407056183695264840967608338205049400851650009426726088062970795232178926507400802250136478629903257800831105067662089312293905369539971495268270317956862295451546033828072892260346514533839489134157315508860704147996773026914049880400204550130561952977905915121589205042172437157070508013338827763143547017615947873662549841965761958394302323830104822300165143712022115747153312071800372043188282005975173452596836587978723272238638538262807820160025059941736647616981614919281684321566279886441611720525258989348964645416535404949774331108142814620620953210983363132851503388555923775223977327202949499848127948614848487515700306287430694785722647489109578200576906151210243303961482018965346237195965792800026163645013148753664456672789390426293068539060342458368336996318700783151355061308497639170719519228665416068551496506114137240045734571183018253721504360759966917745053462298959267885054619156136862820823439236022217186576257505143629406803436564216875846278969272539775072573494159977464073100871402378790362686242828588055055093724119395143351586112061727731637332867379999995376807944784728231882460742951003121626354173934731816430835990583579065595681685041990864736273254737215902794685634800276059551168143078199734287083423230583578413385282179879728698843892647267372123980413345250914895617927507144717119809916202241944022558089932472099241845052283816157730343273761414216797063825958524695785085656746297425770232718286801460061681057877309998868403897343593534707054978004933918547504661372821690028850232788199655017642635132182844819202756168337822343068649928990984531354674629688151090414548356999129650723985405582060289257898445578183219959069646732195682453819818194985420708928352829310023907334851467660601192496145419359027325682271017381887087799410680765768392909988138811761916778125471172125424206414523227072177104204718513564931355071107153434013942099969285499895117874137084081816622639620088612796503403755024371277211141897002452486443487592743782945299747569545574799073599194792287841232743805583546535040139517764185209645352638885593607755507220983623929109748172048785584627556064897482322169063251861038456402449785841791952977770766183632996191439472066814465212819211157376732423269725100772479409903767769280503041889257851552526537254098229095223269721078277698473549685962600650017513904668586786633656825813194042340769657231767293170627761338451805483327242894800082949821854042693534700551387263556402506096673719736352622684449973405943613857677917544410298925009500976381527926435105813081607891758037442708824290627211754309636257363445478087265390901298764351151548922431213868940468941545472285686525304154116008884566472911625562418316584137251996856645745938528029127351398287141332258074635371589388105199910660531265750605211760774674757287088082722530862209024579762516358880486591825049125369718069780758771841608755571646094028744694909171675361760705435127496912641288270293620640054746610609546309883233481175282268035080263795002268181973175933457685425757401006841835675707596020764850598007596872405378705565999347346985617806657161555950054413434166148925973207045882410488922447941033086569190706585111854535401107734301899875470493845213641750396318342331851055050236277789371558150184234573319315113566198438574872986343978990659881461891654632352647860078818617077726390580521290960617748935830988183206847924478935500447413819905800109295489517396968645402759138397547796163486304779632046192149532454633350617069059491962543230654480234487485739216523650456292223992133957107445693992432933965018208630545941884654315465984058422085362850784993666340181003849988023283282101873663871939052365353529480020672395075707960578887457680873565504317778877895962857016283648574922740851582049664252450828955098932622146323090688710826445318023334704450693375281208018033341882798965501233539294217806851792118586638164626564079695526166386369078155643725824770191138765845684761542458464020577745806705097545265478373709916307921356624035925974289840914883142801986997990515490427860288132672311960143897880493898785958961069118324950429667579608130946411433361487400592255254713323470497063425783826118537094618622200610435112375718702972043455264222253000253919640127013904357369931267347099211832899345088192032032331887789329890106810320903521032083810034424420910224106974669942462263439546367497465492422521967443281951361336877347417457262790445357879618593612995776591753412923717625010884468878468893894922830260230917761940655279546288048825148355239797955309128935010460379748413184469557885532287979243592655966347596820518775332855541551437749902463332151440784127260350688424127315614399396626718203321585680251559350723267975802173701050167463405593525915272006057583507167814935808141007299677042283074064380609849437014169598110339523801346032149039595775528203618792173758713747385259356405975468190224579408769808615487213048314476077941613870232502658702536861729841803968093739434014568710926819383097874309206376869529367787091750211450657203854409284026539560089769949535785062031793873272211456828130952974396391374379263965548841888672291503561066746381128167067833615609820070543673167336609477490954656038635537245547383996143277930699482546780310910339895539103807010441136142305563581707309505055050476716426806329032784336942936324562867554129438111528296216484511845634764158648785817352257692685010294209621804977992251852232527514373162068386117494144896311552463005301911277282307004394769856841164421000083159605571550375996205816579940207605612417594453693418967534248653888781141113102041121023731089736588169543742979066781945285341624856574661068756040569066229699135164249402098615858954418287004169534235440685097933981262997356303767341234880310165398848352847601432732202339685542959910994208528295167561101492397854719218483096724872335934313999564327965145105137560459125094271978160007662854310134089238017548667737358463133744270610660654408695506357853617981383952336655089879993275366618355820382640310060104783167019946073101976485756276328031153449318616836023220445153539018086134592727070344040911517876153250146019195689305151128492282138944501615327150548424876917258056313936915652351787386710392345683757901078069550433220934432188606738643872820257272789062583114625632127013253121743453197667514414046196642951655240099316481315458794921757648507993464934938362068442547754125963556770907727004943665321201913727322315400325735458213826315385836222979339984398912732041471081674354613149899598659895530719192652100234048728368742181558639618195083965940447958907454318225961450466214721681499461818491576329624508266023671015137450899910241160707511030169569571141079501053063762142375332528962484340075199766995309198674766699312628186496105940456707809529255616535526500535033648483780470535317249332624411513222070647562455311981621873938515613920201460132344892720372317741438885088176664248851772336154953842763633226692895936468647992698611265492016528298301277430855651451115543121260217531108598383663158792857883413789702351307981068614218747507972304105771581435954761304848393623208251018188675954339009541700630330857701057480430474823343273452924898563216483516671990327621524797131808645292306059932521079309241143591038345102628573616306911051834493750413385468585785443890438404947304581681498149949421231299091027495040219423360803336671388005250089590599042383958840784135755743597080745770888630743481451088237398685074548441420668270122135985982716747029254609927870511006547874332896463769847684879036840509700571054233633116052591893884113149600891454001967717740095415246779574182540228210059266091712924672923519762672063587984962186297967973432089769199486673627129434059170879953671037193622698032601327784646904575953553268793860667878432728983834908662578412040223944665397199027321240300089373876708716519450019899530852865174464807183639407916263019698566066662277357276450274687018405723048463494356027851276690461223470329332993170248818879441361143664950886279685097834666507603931075095696508430096041224643039964777084294572461451219771644450565330999901309690195556323487699644739944223891932988621026183394233576264558568177426995483364120764311142606255388450362924343003288918310707255540910079693007303476451508493917740131137008433033594816119877183286599446281949224558700453043937495174283883458773449709244369044037668981507395103124489131426201305168596401037828537843057672502395866765118034246169422674028476786745174007812783995359523723572490562209665787122829564789066488395590705353284977202993936494116106616749358296377303930932568803288371689746807219163524044132407285885876415540105377365570660241699086268068166439012756873716075176930084711341046612927937432120332447218071916723893720043835844946347917398379121699906497669400681638394331963118447601457476107896232272771282651277948749020773908728758801521388362951588901840611623777922664202925312913229799173612733339017773286263745745940272414202375383124136980652698600806746891750698834428400481143244175772839488081802640288438366626239499095366924003065956739118949492254707543431001553802907605481662010075808504367267546722302575726023776134212182911054800073314877857085574128175052078457683055272818364782090160126325921638491021011265357387866449177427876077329222685036073128922415785600560188356370435568482106784094179596259963877054322972548877858884172865028610329987718365453376668627092527386475563264135119784402267450001694564287165917009342596552768470431602619428639768141010478679363885339720070788198372063758433212570391279224478151836129875180857840922983948736503758345472536619347273987130444037063110125650735453634423554456900781819651309369109093915006191258799096883154783259680596911652309924528402460894141317693799268784402025724845210240235764872326566115398093109921296661298888497120488980914528089658623393615135926968748101674057380772345949830164564301081332161600433842851499959905238209887930152866487501670211096276427287189651116391135506849341938058444053122363253856198560403909687815522139394111287123051109744820695092020916448281629209240295572863152396776434956811453245244005677686973803338531093750679313525576882477426800300889262662043150951859789417193095053859881467998990981934981878331384345192137274991233534788448041391300542979122953038510722783048917275147567059316826607965710264159291606331385886765486353823667330745205619937411319307014328132365992871955990401665428609946715378626855330607258077439012487881763434794300149867385035217442716923330830220817613882475007325908210153170633735585150054701189358384063553509681335722234971038254854238057792948522418177378139710525470786832169431675751772464810995152705261593707015175983807515310365514600909737473196156584718745138977481711369289933131687749326788838602203014069480498813087580162570674275211585575413973813103251432159641882648096969816446658270526278487852611230641596765946428306500437691399180895118454837386204703879981660283136613371043018228362817161479897266258909367371053877207088242221737703764434340497718312015664097582963404218558151732011254553178048673252296519354258451432000146978478737190521092438159153050673720269120672404187803669600184286187512487079674216395876260955028208466497514063998810124419292616894818388535529191221823639823426653677483544461306151587179504290072218387922891109442456431875258499752940613625881837346730880807583794006676273675351857013750330887554137882390032011049756291052173352526277250940283150816688946391420332540292038267738248451763446938237501663267150363472718427239517336087093955679077126866169805350903904261234737184519850914336834847666901965449218170921178740610410296449860865083396078805439647246917028245937344134415599316987961939607697547303389094258314365202129543416216915731587022390086261743202926474359503640709898927452665840828160944211689627302007476866457902286921897047678711156571206215765222735022117396500563419404296356079695431030933434848738426680052130896731898432453283243215103378280232638558678087751098498812623430074007763691089248355225283984970676330600048009779443187773225403984228113199509240851585381278657748229491124626810787648233982085869503016322065220705269058852525225119315223926896887857286303687295403312134608846094502191716767928784816136429606792163950583280623167149778982197138883131376944835886041745727672877223580323829461641480808343337721469975530804968118395985873352547475103075965165236675660048610495000288884049351259104506461705166186424829059701885249130898818385752446012398103359928337433047362743537770850182084086196646364975815129251957692517395774102571095445360490517244352822743587330856721121231645644434142855941244177411519259263085837422678855991676978895549928295254677942554568078914622086941752386238464649434948637069931855103737731023448862873101966004829479401386905691166066689568445754762167156955974961129669627016943761599719794126852686243768112123368796119742441713858684830295528901640491476783650536585970813279410240806392143383093068945806802887304358124657427435802909459313968675042634200207827629297058225015841776107145761713545267240434940945148012069327745484280560940767017462760785278869004346857585048944092359583881488867428089116496475869345607930150875616231156505755196076653735697646702149422828405345361610737511382314761126827745120507457975134460472498910628846623427946795921019799889551687753214132410221484918589287530193339200873401029680018059315579546575651802401365587005889134916707049845810860596483254692588159783101862886791024797608039578540128441080505488236896809443584754872591940183682897488403270400963865694572670276334099507168932387636491372282964075291998440409989051959903551970739633838179110150354345348883729755453421700268202314156262244276271128943122921773025285051609379413245988067620836514332107415644832673083160046754728519371284846027061687878349393050835508676422440411382791432989828945942587966469137871983767029266989319587181568717314602727574800420926634634100185712968891994864893452990780308645406193555386021593016208202603553199996584335350926751960225468044886402503189822500750115823641928481842006441862905763952096887375983006435209582528485147820737987737317014488324633990382854882473173010134900663882603769534742201334114980087747715001342092017876904252484722499922735193928522079695489093826408589926906071103696299732696186470761110048808919013617227302133190167012436805343341755034333601730012633011438401157223556064219667145064497176075601985971619628684135153762666762913576737055800336553171195230370642384889206281939297358948799573865158508811639875515023348013088932112205772415738536680163280943227486654791876994512371595985110073964981915160625573066972664853848213033953198071470944198541073092911737073182577584261524880957845647125104285629275522483699511794117032128516431637039877733082896219686438340179215922269346987099439981596797472496169494077609690572902347492095664473891106376769492709050658535276239988331137720657978507138841089337932077402619006718238441259099073558169176679160322559080939253478743203817039059423662985272398538634707539912243922994614561847998137988818574570817475395193461916196965498261059240293004698115305199551540472473258406631970694978503821160513405608750157015336925726321264325588471259150452737914950409723496304375674481002099788400383946232343929241394877266112128328730489192133620572071559183242373838664872206815994901797206309783549042977287564202708738328418185220173434196089636280295474880722319807448253993829593455598251381647456680011686795895212873321662322738181711122168264769945498783671212290284076473288028087397938920589599882575027805552309419372594847068190087393388336399174223872878953974014977387382425900022608782325050373884123957613210473138039902061621717425764381484366041113509970303664256340778650491960869690359479542530692036071302109482832574762336346805803845305882559829283370209970473630113597302892567393628965483564577919120100976850954509083942095131112681494962924146928558122637959304079625642263719546601626705378034039679625258890386073997253584463823951267035531147591071275242157784356504781535180329344797592755480505792877135342912450905718886487109949080001321674251866074651480439306308736646841728223520562465817711230098392917408870291313368166128128640224523498814634058693522085664763955870900024778116800638813634083029376323641819269207322269363170298159162100407314807335698591588353160220722274297112665889394345670972825273303375865687153877831635537901843075065539692316894866037721315666405283959046351705333561584323127022486724047411447258743359622951216050763061555343457494980298042457250400946333721389933584260912923741795604837539979610286548893592310540730571582257624396989348060004816989058320662613702230642182658210072662881466723228259981005361667163371432664389652546526919515584321590965828308009254679490055207817519191880383767313330841857544427654489188469642221303098160364267685697701294467193870346407333226811373452611413795899053051129466316058048675980043011437214696015772444576087421226386157124219049776104931146175236217575934089469387837045574345077968468559101917546307589128868507369959329118083351807133479434727828840756225833593321641861364021231483528660170776927715696305941357961313449463359536502690642647713590364706723166038015787052203251605766088974842098110384923094325830706746735406810624486497895750413720439624664909713372259097907946626045937945369025150812035691837204278172343703019487477472433714442734870101372795818970607402737090740725459576983418335339251658969829502228629078937510212970056138824530415157716920416933884366277904867680959436645065711631848068712227961569530344109826522133584249929250421956535429742447521091421996544536541172740742865562419162405262668695868122696900333965384143701005802252848829611885619861508835545716402384298438460420580279480107806001105609166312277641795810645970011130550164173051581033380508016398626586437738199784027803524812071188105169035054096437459959980225104365322436076807683317687868773711024709861786802770153674092779456579887096334095227345364900762147087280416192504241876356016398659792984693913035656986225895374099358041562179550513227792235620426403004824356891437532992558220331251376804172588718177067701304930023215787869304038977928495814141769700617349248067408277044591068531220161826375311283957643852955140096443688913956793009281302313010896340799176413914956463333267274165770150188716445252997432885379638078773330921000353840914451647441663652584159984396219930486006138153809566369600151843990982830776995930246513712623752790169148339174140951047592766875214245878104511591480638529119953815249094774961917511966681474944848123356039806610560458719072023654417025877804097097582907423864805045893170027550528591497977530196389840586443062735516616331510711724745436092882316394531364344805673907295080702727209224887640338762885051024187582042792496871469161328377069186893640730845537106268275011886942478626567503673690437224734332679788884019872010871732151100137277308082985655692617900124907386310887960420115555915528461746067666773486112208466081290323822347090422504429475841985662829308118736773250703475133209122324259177791586911563484964098025467261676065854858554739861840363200088829703760899891736903508169982457276328535071857216113657322482835263369599543101585615133345048199867813190281937836014543060064506470955543838656311904506626020672999609792603518984299648678127975806204195979576732586000718891318486180058645592445477399136643345592300492247577001704502598908584234850520778886994372858744283558462842256590106438933830123494258962572638992580638893950678119519397169855624206261901847207989086166739756508460404501719544159919056133094401893306699578548377330344301339545351555883122878605334765577377930808303876376663493512946725203985046957734778253046080688220864065131791196802928030607186109225027245742118739970727912373184333431625904647396623060050953490163357816047218515376576260068248801132465479223383367171854467069684247697095957821782560581262807239117730733750195228080660286044138843529335172774801979823857354259313543855952825697342857133246208957715598065861005656105313118372983873533760887334846220475123610008308912160863891217807862176256311817634148700072873872301067132053998193813641946946691094274997611517567870173494883532843610723695771818294866591049069306715826235041019755348090878899500316793172269807286884775252756222225287426627054108883177978583762074899168040420598467592138326835066305184677837415727440463640641626112230961688841379053873905914933602717291003593808802439142767805030868215733781919972974119697367525335977308340570811098485950266870718131489546347256796513922715024112771451372415578624292552167554918098332347424347760533121504619328886044663794363493324117951545334680921555644919895798765303800328732419608416931244362231710101941796582290241459549573203765361586296739181578722510233271999586353012823386203727269836483818074825508696839542753486319001876420188270274893829931915471360085574972996170357660879108484373099071627478111566699747505722761153259644095026075398608894229862817818684354597849237767978726307822205281040238123761277888199879576577341919992225349058665544500705979240467272434618173704374762872981431121531064867594757972194946576811553367564852321058852389900094124328815017566606536152797927740699272816297111827176309882236853231198468442278428446113864516683038766065000002831809454944554609935672282207006620924347191621239415553039687741791078767329574167732788304345319116381989672211262515385796853372661609581505982597170110894339064986097980220123065830556331350891589009726740988786952734636661165196723755688566023935813981089256236196830438267969112162625151407305813183569665275092779312949490405055701407629756220748735795309761224887162671377262342870711579020557358118533193623996276592798670714483724635138205972311863057959380971959971564268574506652631624163225328410861746631824291118598799605023437590834612944157403904729837648616672332147406990905195373842097137442207163366527635594774708457995086559927306328580355906336615605835122135480552698562847912628532401175133203020722112313397656446907069006573788542994931391026353865851795755607815398761989529053862074362961652548878415554709836194650274639162587822891431093145053658427632526917821044470651142001692949002862408768428894367563925017018296700074525635938791463882013191287640616105940232579224332281608791271254284239310357768411827969287799632139103826114687209595433482424553183394734522344255145298490426080919837373944784216196385600076020078247080858060987086739768926693666660206743539426056495364285822735644108253658745879253818658612279366411238075401425696774275672064297866943538277294652837537709887994439959403876913531802011278182463651506920206951741947054446673580556493461674544975376264732421977159931898314288709383391424022729232497764764796069185402660850475585494192094761288041195326423705358210976778484669087464402324055044450989922962872707095982043352442175330701499326733129191161076066368684542240263294883340687184951153046352624851415138861446626163570375685734127764356200451359633101380133162202401167549645482358984458659852725200036038815250263381627762841481685173598742913232716089901388082013438827805668785751015828782216324294314736598062905225974687077235627322325992146449334662022197591291069106852653992261229658587164178512137099909229295911913184918409048682163303172121026493772094211855173122157703190734493516008815022684459273585577746596799374281768319225691682578319161903409939645576824092403811901603912373784129838702129074174140620555735460111476034538880486106756698724408219259479728474783268432082389066925930126138891979147565064310377196297493315889163706113518582174656064112655463059625614864385182244439770057071144669402389170797605556346449040021802188460431056040915260880337019108148799087192827271048673825618225552429564699020313783066203723988268683119363009607698538620084110531659918530321855768923803030145357549657070982561571919545715449440012785822409802257536939693237529914819380587634558074942309647949963034736278332632106124485808542377851003619110201676738393698586692445083358541436466840433096414887758401262794604408178180295648011713033233062158170123991394117730189719420475024641609791107471614208295386790281591276684987504103700055454437667338206027067512906265248340976992279436172096639441138166979794867377559379574320558925140787411987851877898174518355753245658799686461199717521286426642489245989808366598783422469589716291056872388315875030703734097657863031417379495553709230258165902471115908608395564903267681831237395143414581280305958235004453871723673712318507333420570590846989011477186516354118172856299481911915589617565060427656166876544573751880576595629746579044610625576125634157302707352103506956448981158787255629074551794884059037774859715338910271998630792538619691914742395101254947916833349048236834945024093090439304802275389767815630116770474936012618787789620594191214913445615260715346591360373803419418057316015056474059492824750349759615022306752981416274088945310592337624843342476663909832369069948162639185465394858221711355541750656652867880421243562262749607743220075088309746950684443897362283452834893350334871883919801744455957819807924139416425116550322011660272889902981338228929109514532175220458143815845351220494584302919384754986432153037997895300860173936552661080029760719017104155839273040581341416542707656217717609395803875214089914342334459280373131746394854958074906585869128576372517853576245366146566300272541177631207056689658868374215971536503105054113053483510016357065921695505086549131240932423031700171829619923410226302896848655996135434571297570355404654727752313967020472775875778404815687778593563407446412477840027009111947137023934327064510557637471252583809562709874036024219285384837183487024074162062563110105317132068421512476709789564764767524463376832430283110368095175805385906935550979292907062999879588219857564774083168164965515061410487244984984044142515431853339071515866855914674095156244310386888236863618647675745618858687428414944654228701830574260745435604613876678473400225070597452193103222325495142973146951296743985273991134206468749715107620783077349752426518102598910001644904374445596067725113603981603239151211168476649788990876473736184392650886520216929991529430094220238490730752820733750756827256060750187214187558788222206427448554704914275354756985925406606948431799841535564526721851750122577733218668084018314280936662633680461157916022634724956555542746650587762558655611088465061126401740198862062769168471203374677841390999320960097970405493809706323433479309898746733329143713146399144049534371954232705594198447725313797395662960296856038198831334807932454644062431428193105886946457848129059853711111783927177488144180490198845410171999371504143606313826231022777310106935042423034049025476731640809169596418871972778879869754655297229208094689814786386424324876111334717513210794317652226200659222382200355692400495444358377070994094528444916746842475292734176863183411797703957414223563186734479121069859937698026485432113427283658932914320448187405433689111225072512383340444000359025744083094665057645294854284123368345009239709323589026324237500901110917705532031005262769678255587987589734577222331624271565141982636081339128387773118611241299461047606303038643699699935974396342214493457573839341841923645253535023872253276540840190942536095145838536094106727083103635798453235212542633716849592204654829738381149666964347277456023633123873269624904245476358098781540191445765871917285882670508480651089867022755894249103788758535307240700453964342209614241559550232063214374393245162295931047195355842788454596328589713572327884682184791133801068668083705260751090994665659859022255144013544962214755678477401100033247431143914192072556027188434993590772515836707443150934934752669427677433087911801197801309735117089910573746979092956050854760888730273493086829067658566370153555099745366072525008489898915516017109385028170433493936140993314060971482738861323891002487902548056563065094473522919669716717641317348638374865539444676346860918867980916336256188372890272194961869475467443540812274054159848636392739111084530625359355522258030123645088757109119704603506195815609418377031653315860869406815374120163991287787551261847453553239638802314555315940805859454950834271069357814068043296128266073974725657808003817613260041893690054632065357701496999167737488301849401665628802033827766174347080317844887973770507279599887015448917059151075431791638443582633207712184048960444634182078428016614077838269675725138604298758968201810063164126221336321740264780567670337279864488631690768205883677799748316019935622230171381602324047666215362432982735569587597333691790628155580357057300409235024954410082272136487222275021772119904048078856801130626561972057948049194470768910081322259028513112809761437057402083062012649299599948085604893418801048449890268277718658081742393525900944701175421001151454793100253922232418880669836371536242395051181083411679354249805835504882532496972171532392178461227630745279316784665329060232228079540460145293792461231842150249140392552008017755270298897024648074559640240247023814103358738326501913107268382631389592327880158444797375655781942625616667574848466463540724139247694759608289862776794066459091158268488880687301000508732228838115454618010099003787197150483982251537447403381835065055977767055568841459779340249710230236236828576177864020227700365245603553400522667899716917086836720335684138359402844914355178577512214029990691734571248166220810218365599061384088408100208578713456512642133746457056693120028237382440554467240845036172738694191515860060971039129379099687954909716598642702254572495685114501889727464242598583214608840491128202034017755054825731192535663527113007827382510653208630927114066025145946908163220796180912145663084506646425314690207570509364282495848199777517164929197495981088914991096438767243351560025373416438054940879743319274768597967732162830692891238148260863934535156947630946308225154988133635258502991179719655636385363711201436269265311426165657457331949378549218607938449513871174345759839551629502593640217688614614017855355750390284582154365177132310503754544090938708309766275351582207082467838873073806267776818088384850494101703397714114748880585083064633375292810498129095883524842575488296214339876335990374879173873696663089578381187801716967553896191836609560956444749391132587093298137188369805619623733297907002528705623952195835048015404756143374153469255499124100530672913588049715407019787682826384407742800084647834969220922053468119768784498679497941676728871440955965221967887066334675880905311557487172623166502448384173285112878485273227480674941889612790232626846513836691961495861753067204940377650533587139939071635246405940879673927860426894987164972843759560098338190626545947477384288523026415326225376470818398807640872897115580373740195815569122918731728318534714645747258822142788206922059694408606403613704081881993578790081858229139602841176202325340365658790662647154522737819559804792867183112021868133095380476541351802468519552626171724631060615523738901753681974845692301766757845137390205201101181376294348962892547145282562370631523705525983291325683975233662274775051643441288254381252928225299914182120354657826715246820105794854673998374723633533325184495923224565422485094029702133096450207219854185785985310136902059334143289785925734014770172044988079029413655612944568784704319040062091313940445962084124997912576645235559621091479898363179649944539149516352211771073040705297499887272540734277830211056539706940509843041030362335264100915303534169316382344551900508132137492086991199882067363444304720694520032086502490499505601798782349686964212234287493532862803099866408595509322386007178279780622859697617470344681108406725930962443337408064444264965611102320735928794015314207587145491045089323732756029251272463031824962894388087036467843033469545554231198569608010432795635403294420904668498490105304990382046035094248637694420438844483497121244198262176888233138512216940801896188720341763685108643122884977630101157534796757954428528769236897973818106682812610338442088578139769973500678621886352983748646583603281727671207420694458241896998325882065586510639370827635894117010649950785176493120231892878912566263205601481410957702538484570589547247003569020715871650000308950239217454344477804413116622899347738261147430477533400607409598929873808139408637634920227179201019575907760507409805542269741243997106554587116269108821646331700766155479277259079581265155485916804376849646601598736066429575267521867093620902353878130922937424578728299573506135082567277658265905177562248498497632889344725312528637076561161406053499848362202785824288121013811416684668307786236426125342842861020504826635593412233792927104948259792270153784991519378666465499391640163752459024440644346670387157317010379458969056539366701452530019962857492022853857308525979280430308826482156043968007611712011348977404679695821199021226756344004330147718220695922538497316351645963520793419108999906856719580891896185191092058039045985858158689901535614214263234653524919926918408365419291930504784763454804707709659368976646893027542630132814300582404899979987953248983069900009443612935251866956022210075449915007932991244502118125942388830646542769627714581929747475887145259103205339309960933784980945553693891659860654500851240177296622827475703273037288947799554239031665201022408497963170491509656767149527644023279956684435120105442658722081520347171218384970804549626832186637466217176303265129523817171135549041789948570161614767238718303326742340483029867454774054107911983106158097738575319437279761960792238298319880449522711738005042760831094752390852978635364852518620149765183371250535118221191684495976497686123183752182311296556161339709998610128438294403556642965421218971571811939179476573891767709964428140323856738500315836238607692031029805573834021919183409850733142825191989753925763570807429597190419793968167748546186953706215242332311999594819949174095242400287418071663320658182039645764354934426472682954079099721825095293516070276990335511300897097256367292682951967791598760175985532478081857152581160128698584303109789065442253363637083768766153349166190668045687141439523341340670826807468249494569831143755383371488976429730856568173583669338524440492325338151263583953517384310324406147200525054407520824862112859349615579524109070815521473965736902163780559511842127280995314428884168445276040913961454350502603112497270070426496703692574290703914193090358330293607714978808397477494256940901674059541307222702184688563224752708311255925118582281104644326900693286894314655930172778920248947972722348357636386275039461792373727603639790100965991163931478242122083650352075633028610887908992793617267541620866462369014223183216922343239341773898465887722375322618338062630281054349205082228476498519231484438488761730603979632020573797263476312630638502817527495687942049311201252337181006227040875646256309955060777644692752192566399085841464107625903882430520462864771978467661239310715022587232856028163212314652336311728794863126388605427512176099961880571677423884665147176517497863237781450495206968372614206362696692168273804972286612064953842748227928217935034292581806650110336095344633442487288587955729352233684334051725423102644367499927736941044730763903544853795325006509718930776665495796760792439414080473001622991441236033047035613455964983951895233360134921468684694081276945189225965635695505582893086286278682624625163781314744204248348368650188993702684781642811599587120584339037358911770039592572441344148185489025620768900631857842865359906113152946006851799217164471228056942262018472147335648847704656556407783714220303399235946801928901744704553743811108701668339753612006365728954930834753306097888893314882878661527960206685725724161993377442728891021856854048943534085243495924700697142566895631902262488912054053097491207372574313449344434632361337982955065839177808070202038947485176112452215996094431421262091745620943458411794815044921154479741093365184193169134476747460762114966184947571475026837495944623024367030141508448903471940487799275027199819627328370447495431530251797781567406017580021772551503836151289561704793431717035942113779050601849724527401128974573702268599533118230497733218128194988212653306457499247847801861116274924982891975643235439703031978429686835475483448942714054764509057640216599107530024479599737449534879209296784794187221100900955425715764004714224981607042065868356537163502324199630830555684404825154145210603029140028714115450741773559516397570395161378294932116429433566249651012090103483361556881474697124785901109088025483023981647580475132407790219635409856782532104593771916541880335212081694676425962037183111717894992733381876034136412240796991394349189559586163885084333897394708549950753386079124676541517638261437655756953767147006851441578395771080889619903258317326433016044427898436101696775549473046721071369955438494407324872423720908869538650107237660609943240617721822802598894518079748911575326927058794199089905491657587307499131172907084961923724022644499672263155900909651496035608848403132310667078985775239883418301310691195336826554040479609417734389762578643643384294966234386744439531434387465877159527217925114240272063709366214239325071844328867171367913269517055338966532802556562803048661793579101497390100901527522547756320012547655872368562625191757352637028242401237924452608316099778036194478865248242643748146671415209590177056810363368482275630837230215294738794680816502743719222934212671525545551535056451663725687394072407635808458831369172896321214729961992919157813567529956300007574269733785179785499411443631381725063789039890196740763323761976608408189547699835023306524125691976005741093207652295592907923700058461148846128545384812365294516505992408628130966899009001491143050308222320973598020223042375504047476206179417012049930883607271668954031991019983245174000894970326417826189468698401375175281551330388992611813621005118472234582465549310268024208305385184715855606313247084607082078242223092013145761352689479762911784216451850984340812810401627017447115348355895066011474001907759956287732101404732546027767511894954384707230818119504254326030643225559488242583871190943440185684442808436430325917786879377719082874017045577954496448828656340395752096709500643733613554174108827024657217781860811124185141154785443804506358110595937303387599506927295704053807376994625629586127825731536893251241206357946501626974094176384229765192644010486156807292242469707772853485041106224664045030975731360367522341119551859220126409645244707940824827362141840765481961836341299636299520447887026733259538766304368077885319915706354360519493649603090060944986252484567295492346743639371751197747643897504594208392264994559774873452468218255954140011040435894567659728674616269781996247527297319564234499428165109401356389070578287907336061814042049611276723840168835566038621580632886656580288560110042277649589354016753601298636439160066726807798367856812009768127772271776565383595073038859199816534189641976776309784614717531817655666274919712948425832870044953863850061834594005977952326595286580626969455655440441979618312535653542258380141673992604975214878328719916775803250790235827048578358287450402939325675083373875640937082258769493578685230538755550418110734456815345825379717684039128913131537344725897556390980816313474260160017874741743936203565728989302249652820331455500886392587720263866895826393736767139573455715990515664264998953540172277800725249396834124806238216338596451375085535002856550748114711929897790476582252622439571379352426453923478367124712036429791021238905736350586478124366103938960875562166397108608224092375501964355332357864800788836083975412846103479606583590083172402313358259616965258300507756101232990836289203021228218726474149654597605105842197598659468678802623835651881142327186509127079443718837108850331241521532263465378101587140025203500170928705199774923323506482938285349182956120414371856008276243821614612951121003902898492990175847664112320949942076980636625785767193779699609675182189393043762358244382568219260776353118374825891538810436187740415948732070956007153238346851427676379128116520208215879124825233225216936800178474924100140655974075600304168036468322035491934787613666970030678241951892147787356774919133433234943920650270849633378856257636330992226385445027568167859846215522463848258957446659224427021116744886268893272305623877146881586666545862621389735869473542732204146021363018539117398389673548695934334407197931246428781053726781769471075691244700710396654423725147520347540617746068201849560485998193829578621887882931237209161302430116216473006532730618318821439108552086499388115601214773421824407061126096918659886310118012693787705598124444808873008982860832804668882962891686737825819704571954166425310991557672846267482155331136956616251412621899987440198265468317101139610580388523945718270826575139881757364150513198512433352312694671062331088404131005724998865386724639121412704145909325753457284201638094347817962268632393647284534277264596645280262182383065175591009574554912216244846691407374090554993670287633362559407990601118412846990117549065580180196194382695499597800055001590869650885003484053813554121582053370654741412057498046169592608261362053391141222305494148285972771386728086001595131839685987007040729600648031532256900591496605133005864757583916978824349539858595535751969332984103597262540378626037994119813288468746763153957190350622135530374807332282510230184924015064684639408848979620683674309458582661504295414372871183850259221368679891984108067388403836853692563989193901026107277462480052285209943832147177648929532385473670591263793476037217439427031627998862674179405420800967403250213269745718619094868994088908830598837935853377053279815042943360175523173041728742565132304548840371859094127864807505467502760206976746756516416029329489111277760693597650001319160805357486844452187838673709467892840811013059718838883745330049131127191443855155300508942072283844712544079679817000532638473182630543801142462234371297953902761351768037796545983180999152056402468233152148904146280857789498784915345954789644357245283231716382747693118223934464084049599034884111827646110553978891179164324638826677039221218978720024482674469136338980185391931303972826295412861930491383605752948022261704030894573240612855952108355601967116877859690581685859232714186935952306787869074953211177857199107823635564142668565595134468261008116463054073857826598817190263094665790087266871680825156829352836041249691545870669437016149506254934098259538999682891492264615598614070455296134845246690804597676176015237459898955891492366506241208125917452615233608981115084932549551495006715221691550502441540012890408130821028584476952099652371084362869680393430397239305848915746516057457045379398285666848193726796184668486929918119353046005843700698696870468875832652364622363510243968456760490813362203915665737438545010272715469771077379845690521178648576745242924711057702652250360834248775938015413035790631844726757025933195753977395043137021948499353574649910110117321177370302620604727865602289879906344006904882230599067349806456240750500728049837972532828888179970772795371453730153597755362751463131229829753130120698660270064161850748186562664040600546420159395623436520429591150001102180665216222824200113292406928788958006542346722083942683901353895865123314510039809891608416613807484046846235870507422415510223286407553814789974919220341521526613517728353866160111722116256773663283054915934641683183446930884586570488949675895929403373112704277724541328492434737656026454687013363581314888191264225967484846888643665880242874901567709303640902236814485279273401843004628187622423147650017130104168495630257502875601472464953627768392044688382428292007111900037493738388176740244017048661149846275289643606011429200303104232850049399688102590283266878971120274982043448633090308333868240880234141927529403366070425654965915923380086334848861018919246077661169187195459362847683780636214519076633662281924425585767626860006840083048768835582181893109266898718607865850678789297055075261500097554581165870257891269698326045721003206351443944179603800414374565642743395429922442885430516351001677786138486346094407206346297944080965999455639506890836705049621735744388579086334620235320676625353868964297571985779283655818246397918774195641433854408842850337606119804596343892981229199876264390045228163183001563876132198725150251757569059354530756677345298002642948613580593870319844007774321669229760394091465646766129811562643423941194528938336093489446731727066175337273656699990304444063538660439760741949344434872333432611168112098771078226069533351428884427500891148422749451029350306208817273742530882663065962231835009195164903534751218169168903398295643196532068275900847565151091471403550131557729933077895438232519446531355341546105580530175779310578205499660913740655976989081101115898341037421272794836057099061551878887218725071238240842818182358569184827297903843488143910852863125282229162584484514628249269866570844594097318475287769898779906976521355625902946947851366061502216728970756116543032341619287789822188008162143298801869942393385460427838763669634961421437683108323689503256246273274087741954919217689854271102342186131813204213679042163071921820393382786009641716922977987275542375164060130729096062785212988369555509507946466823026016040227675105544859456370960966935600926504289844134141535585760581153241280518832325776256740943742981276056505019045870367872337440728756348346955551583886288419121698649409608204964496287780770259205436470146585271211473426134975545301273734446494708237604212109980911801085702860441730563929458836210797520723081809031582609785826692207132524899603617658734004414190332366078766841700101565207081096799439559584926339813281838842090722094734277586870326206911358414516364617815484670251407873065430785883726277774542709069625012641154055039838492333378096453250795696781001263342003083999977624236558800340750551285980578128164089900244642692927305721362440002629420241921167030664582641380322435552629031892345726433528454636291550519189387293077287917706205357804391468933244525553398787778159057281342893129641309238273329331306638309389819233017570492575028764066224863379208526069483861241492088793870723068789303725794574337235339934550223817170822381926015856278755501119978677291336690600707954925390880911920439039157077988781046877884623785838716258110587062348996805590814103809171699568778892462379594111095805871119330172898214789900896017930623441906408962091614649720213199233580378255022912011253416205303974280753019734572833276925917142434572483012819702305159845057085982017298324283205439051636799369513699129284086226048516937668820355914083686032863184360802783186110026314530100254119581269503336481305816157887335082007082708492154171887979894199303436258555847386799005688179912937208411707159646492307841602364992689421926949031228363475811243118215602228432298069718124551427724971874761011931754766982088533642721623182862370536896711043863333437740415837790868257468511295251195657961318842325287042481408762461066339524966819207769724372700038951319163836103897148777907166642716260835904652112757691772062241480275784333624809809534766716094708079516488463436056437814652659961163180000146299778758253646606581947747044973829103582190916865347974555958662021879256122609858201656917759993227877732222110365826887774244334025007133015459026389988945433163359045416053436133389370262927992098222897568080862566343470618038505902345524593315797476939196219711859748794388068453174383490704969290672291995171912465593545127138022351307123603859461922410169982133292374984370898201085207389276426874017831257151041030211957466810206162048524012988805155363956693487514551059625662360339924096899185132885250623072958750276464943471221896127084859362740063967049827469903567923355616634070593377847013779851603717996247015916152198271226623608815998652236881671654292176690107853137016599268607349400935711680209309722048896485609150393297495955148925733024630351256667466389626326639221302335718788950138090690231960779083656786444358910943767336013534972024863823173804412065366295730838441872418285723049230476954108993629064128383402941038502811324926575259147787424262579339321832711780048856667348447490196208817499065968198167290252672391761638474434851320262544469142182174042110044380920898528501022063034405402038884503334792585727923063318706674914733363588351507873735301967200857858979685439382437339394572320665689301904250213685337010148788836986354203866282322474951731098789627946166878735525833496550271183748044706201206239852370799592089862309681631991182645909413137382843904451998489913785296061407265307083013117689392758483172949230930114146306215804433295919914573782645029094168647113202165864670063423285370081635450559979036194231317796163456811782489716809045835798738323516490499420154020573596996197583434220056997685473995516485374564791291865431350248368560706223341484837879478731510019135232096111454854066829645636774102292976313333373100798304526086218570535079200392086102983741760410583668322678505803890611169473753281887122491615302109605534020889919871026790888803541289247915449546175728401527757776907398137847937783795350899229585263183427573251966044084193869292456978672743925810401404704650176411097844268765658205745113295494707301977880222674620554628310985646844371049718179451775458015255842296271207791570851275137628719211786021652064598034288588327081776492013013439401272168242467280120296792454967017282984665231272345322253972619530970889248552520426423077171720670903679034700866924780363057136539225987525959041359098676395674732350254010324789095523740829382375110873438601656975881624749146325531510870267289656824072235517978058358063352816274290527764351833931922505424057683552340910939533509270017631081852625206457991848316114653399644629647610942552065027917197013163388521568236651678492474817937718042312510998845326896358396583419752250295804637758750048565590568237828295304546027456574353300196652676010539345550834337239140463450849978410091575863154470165143470262326746540718734069604536483149859034733307421174877121301482953382484357668917893376890652552637225489958816980133248436295237607896366518393490564454721687992663100455821720711021307120303768484163845496246414897094752888967245441966863920848271415705730376639808047201732062300170714947889713432409709701071951713555760640662173865452402956197987867656031335122453428753988421886025090759298870358699312230928097929554029397369244834092781489050178031923018269083781333499683886994155595892976426298983783311067608197280732996387575922849105243737545823198506587751072603765339465896922586328671289621369628129337701238833697465604030631012615120959207850240883466401425676565317299729728629053803990376412665678060781285292851957331963962439779589141973602157770539855313441937503115689158666113611149352477419471819832584642932357920754283642249868044082937798386415002730568231484007396615166885971233676202120083907017951037630687516298440269185530525124895742519259092554578743346399760200437825328018596844193571596631485017687013817237526583536481616971313374772501776621037163685982105084667476749807603385688371132520956860770439383957533731465815455176835797345162830365506806741066463524845101305825138743374848000276485630648469413759230725608247429074832978243977923958307411394759348387996857356074357725710916407448970360106059370602165261456872725331215213540879972866712806657648660647527668510811353204162987427527435380915884563082244477945818015713702813423363275101231072794816869444921004732856131083501759986062503018857860925430660639378792947374190162440716656651750411241035468297060043985980815447105034270172440640074213227006107322742710280994569061701879445423270588507504010094675563214480362559448212633271989439850373710913644563867879319970680512819394974463999474294975594804053858337661361951442795053694447085186370104790502665703699877064980214333200011646365929056504477849461938259825554874606637829973930488478890455763102274191667408516541754109836836636770862292338574725713991886814569300160412562073926372047477447567553544438903058853482122742555108088523601776077369352095740199707392811837953031700552798919835152372863564622433526081254693288195396280020986631334012185824610914539178726609007542193534216432742023102513391822025614348476272948367445396979947926589106561252374411204374516484088501689849636818095988224246498616145864610546973573025816335985495434063749099508364473130636577016740602773396443316045211305330618232420185200640988981004029221983438244205343761868798640489214378134146008476585857568243288019022370111102296998185183850114517483105739077866097262367173580145805419275617856484062029088279427066304294669286121967957454786268515430213085648498534996135739324820803020022518008148864514568736416770531912659770565978544176844625487380907013860017056139647563472724795591520148944184184509453962429621734128326056083023952331855800057964904048968970079916730284534128374051181911581854015902947752097149631461857881882356465241403456583388888944127312776996284708447807428670077780606730132918938101340171805100178390556676825148129455885914061627445139943111065131234839369444478661120583345197298459894904048426434193849310784338741286539259750290109939402351481898604059428488353614564353743659589652397261411368508647381775941592180680050693324276437858018255388848783873209866538483236165478980413428065003291165802534684251682103271278604162886013839026168125757786254570002882899659092632910566565974540069718672404426753132110741059783291582249765844296850111443184516483331471085736821107866160017273365118188817615406372203903047822537503509435020908056592602561276101905392651240187142265234494754310922419630281342921543766214663788457224941760294792118195063737326644373960799662723642714448458947331267602620175828397099026778083153090122759284992054192892309080010834863406601610778548982483154979859073050055751099124447613257621630017231305310663697799308214741219733470108975578027351779332504370301107637029746567447134050228098722612743448894765429921032528720262832064785527425604029186275802146148354630303330572420377907965723425269457626583308455729171426858298840456711696572533474905622085455281466336255925084607611396347416290935482353986894971799786362300234484660901668940880453703335059096624665843697539313078835092094417587786518972999127830223227150087783789083395851956400275574208924311163433774318341422148771617036843357322420618593673456561604394714960356483518127485246691543442187330634027870179622561270183204671015933446695660931463869674570762300476124624604022268354040005167858066143335631863748936126146472852680162472306019184534196594123971007384973679117531740950516388925269374832471259701764057506707639898935161113957200282593556748213192724597354136973312619591646921589305044590956514009497650487585592231260589284483237937271082346136805481798672403834664611155291861553203412936581303568654994169711251817146869132230522768156205244308482270050338248151408198818164460103217341626615672258363638978510915362896340008756555694607163321515910576705786469664972531837780586969531510037521429911424577442335929558497757722023899507335492758580786974167398300669562742683074990470810778582506754150430964479751841298469575090872702472389518935062271667858829055252843472474129845880611773567471193687714301230412100141572576520510935431826245449008790989590844085873397746513045883161349217672311694888398791970511716706912760694368620488998688492755227762821122504697719218248779674476251535273565743601005954004313679133401134466976004837650024250689293536828694461216148709784951360342556711766455859508308802403848488314637261691159341334746112248544030952138286615236553785010077143608894756784844594289826483133764512818484374484425230819587808309079764649588191506575545181319463849967334122230896074367926120139881845419034009142989972882747900430770049966692289784782349171893364597726297910697546726576506602613883817308407969771341927419291096230111311786892732873200445199018687656202301408814881690570272582956893377516051907185074864323541245249235762525133537463125766798554457104074013757184267869700510932229656196127664013487998270748844378967233736870326409702790942327115809829245833649129465742571837424220555187447819930875266726717398831426924646925157234584188984794884564960535206401074982508217243241493068219616355340604521458070102902348649721056330220392839304756925549234602736869222677833558612010270076580980371957227935259209688568561487580519773471967886311898525302764167892133858560016743515455709923679315005016582160454859346511898077428633321832266731480525577444419699205274567649709667449057420599685665580524837183856264703822550700451687792717460179391132386586347575921464314987933583657956851434224732416272560750089078442628532569774668621347035146242643294446423417851796129489128713250240055155202553744859396133623162976315277331607115724677528264391043020686913094596400818438786152350893609094739714064611394470126160793737645928650713570047201147530354642272880240676449899520814195297557468946295946911357505346307460585832055891068323426342376991905589911343785430014891382912654613925291411210185672526945452757357750124402969072221020229779540468643963328742386251832384455247977920226603067636336669093539177945747981790860752062825621757607748098519824803098279195146953474685827216037635672423468180347109594045399871176229557279057427206085739541575262828679246536412095847495713148952837801005235963133634175376245254593375929922205355073916412134556912614442768324055105670863755425454073777813204787512024792465817715501082066451604849444019389773521977611731917255482776517664353674298533879065344891989251789797473930083679427305424739581725994164601101704781894995446488955313398441639047578004166433801683655564693573687135447447853824165827588719948561235470122483765857007816956958184556725286706330937195054703248315285624207541479588868186172711511708313001493581167942202211164387622096152335986826383422248969070607952005150277563548538441251706739852191300709302422990396303225137420552582219658588652652500981772320871916726086549589250203637390703439362677788035233016417933992786518079868433100284280444017357140949102528605016885026810691696770412337630200083013606744445358833276848755896091659552347905928193538784998266786246588245010875067503540882179642412050071948785182289742648661844933841613193956731598317148039608780353839662312707765267047224681199378743868234156965601480165366188406620057378995369552181176551688230855831029749152190532432880636426822920470163915571643560342515209382968024740567102422962786680272586610536855609158302973468891047320359338631860739523467059767151604116954549192749034901362234455015433209291896351927553606164807028991253011306406835608733207532398873706447949730817515496303226654613227525429931613096529766815959443527893304588909237446089638797300516952684900489161825387560312214235185472674939918407885756560386647552250519320865678676975925059363628329935687854052862856697841041649085042089302032623619230103432267569157423920097413961273078484967747487392252531430433503449440178051293074139256707439658766019439613325572540694703851530100553229332540505032867317788626604734298972828549275907589868509118104075317988376287104067601851732065729580249524690002895973323761945391539788312694554776286718091371726317621001614713718270620881743626123135903295625939558032087982259480319227585879174335420736801952687949071766162291981840272519240754025249550119326901484830184624562887387547253743850968385077837315016191256640910930962561982902079638671554915954543086244458621665381442735956071137602670687610898851073787827980039406071606411305220614272032476656658895369587375376004365111694861909055026778107994906631999088037520643504839979345054764088310314360069406782757942771373783871203442695542206505026421629520408031995730142474718631490485719339407994915650295979292705554968246228747300642374949230025240005740452629197329115557424241040165776728865027166688679560384140095128246052036229829927762430688502069963333598401738270389237023161911253904339561187826996932349777485395604651136654369558406441714881682828069913552076201210287392834864937840740884940229667499672220394230040089360661545043606438996182223343690590186310460822650156839554335831423155986995800121542128676812457460120761350189069408184164511983814668196232017330878996029607490954496268990629649868894145027041178168067007325215666809310879355501815084053702939395022764200164650815879327834362656642507541996263326186520898570110513064295896567014405975285790442925978847418906854749337533734442015034790167989772345886906315248939251396858894345926023805318727142073465356865001109374232374379198112985040823858123861359805906968031695345813785373652016918400759904055203528371278800479186418258658134873622083821154856281966177888886353832310182259760103052225680646949590826131327022913563778991532370116027511187883102947238816623832829791354269213486986974433448409804249087634976348663978347682306848877976675891360613847817357327759480916181977370178191359772459610616301301779030699711631132281366641019952200995670244873133887264394839933354777367415915471040290628474679906742195062615255035970913070177091129481056336586689102254225956368726618193105385535206383965904360611412431078006595448783369480207746540550905381199265133243784847992720463527542292686677768457340549250177935011718640199378734196655656733901567579649949792945905754020409057351790333118771343850087924908594557179792531370496910109796418365067070406408724118712727383740084674636846233032983273166958573816757816768024935718397520594051307402435413849647847714975728131281047128458243277181976655715085005873008941189087081627121120781694281168961752066009817904609629249489338026792358726224402812160687722156511342388278048079590163150015199803030993242020670220135387799069222396491638595476577073256250892057071834656601859349041888618085320006298716969250317280221764411547636221741265744758406360003653953262506459884079873476845925746019422546317343244922747270793008184707074576618801274161079104914221981364610904690476101073228858661480266484204925159408124448201409559887163836699129296039266786958415568886200885579071993186573244236499553329337471459675522525170377132170027331330534461847125879094065620937596653849574640786540695729962506921142811251261369791522850895143139614317669067526773201124879190247544400320438019346428089052689224672116539595584469648130486901352345794854390157082377787379478307831044874293726996657162002560872273986337245390374439088744122052705058453623016170686659407423424430401109289395036872012285704726625269804467226104888708705560013949039173268431851625737935585325480118140257685474585991213408791414360141460679026465002209494745300638045116584549829523496935060707384845204230507347831087176655153389128400625419246118026899712225085107105426231780070353612959207209805506862763170279100823244406617486268219978713660709726293646179307439029783796023279845390063278255370912624047603500649243716095828862577588997838151991601437754462083628609332379832792915818749552906509142260183591328580972881021833325401974422258760519410669602343473220301239801395625815432757413437070264047861566608777719027769268061615833117472535641914012175928481388417492993884028607085080531975520407800513074666605616949530873556089717535610771991901619448131984563307558229564372843488220352388679891196281562505294972525804132810325212316183244214381493067917098321565881112084855913063383484945922540405050316266980890744994669186150056572029320380055965717291836139074618863604812823132140123836728461729141728216253877013732267466632176433243079771094254503858614341183600843314605648596149338869729530191446896976779727784250631253222390454935543925531517519939145674206617830976224692128068982484714514992615946202730327379929907179469683593590868630527565485097147980098086621092810760406865512639007813905355453585334949788432986363784936969814111577140145293376705240693392381992145041026743916965814146674929112930983657921708189629670187474588056977958115888224834328887807644250387396353653612793829244249735002679710497166436694595122458235509096793368254801656254223196718666251598785731015577037341493356775323172905417925001864548400336324992525364453546337962249026834449523791373659636945383815488342694023159574805964458482810167043560201589037181360415197452055036909973112869874446041619529084736306969139787171693746638210096806528322975113021717917000657599946768957708975738597854067006758047356169166515624410720633032724755959481318341477938148274991851485276698569475657147050978159009129641084776609034065328896752380122977937163784247008890683088973252906316822269098441805422745184039538432791577416756210313295950057344744250030179850444029888185860586232885656581234619294853219124118973850048835143909320088165703098457441243669737559175736028908973112709539853695342533446975783477515407254541892184379914651511673964069340874705785461242935850900948211613676124581311578141188444630470083795662283527967584108659971665723377451197885766076026083405284948034441437122856138904143076939674368155344093990387232433014421937518980674995301511126610930569414265815682033010829434719520866247683419930658219050871551531326571220583854183846835304366280475820404071113608116837270618444257879562562865984314079406294101695375331433481341427778514990389907319423724265645043466823911308180609241865809537520158981821622997660990377385644001326045654005627042713573177400571282017529118331931636728043513084338024340033933576721290176310614183826322518879838098790751619484782742920740607348704024549301264962188767300584841745560984131282916764451049952728382154945721414519404322226214241679779020457883364894039809718428061977420493033620972207696850454504789188830151543614008333232591263395657507565832664645736245204361547384928484286425230757286062521421580515728931433077828562996740901835476535209050069124817043576134473914002313821468488933026996015135187088133621759839697802552484185484638471095619840713845278343233074620803470201914484068752041035151712273390119989812023623097794802139173126736863814969776398900329449891788482947513753590439205962902016979723905051377554890407808788895483778588229284753026875402379527663357691896135087643710096365272909665461377004141962763068188443969047284976443153401438933425978238896811006142354899302736774076423598792721628569721759679825816932252243856689156475571030909003115706099765884467760707239100951343993811667162134501749549827300374155295667983128486153597871943789830670283546709566444480947658567316290182842686756127554719477362510674866683345981003399544842102948332842059478381573998430936154271196150159838641683876298559445398322590174793988753931769838847470425870575054045059640250390770909407384251965977138243427673787917758616894630138690128253179617818264171601034240945629999271095078001799749396003592976097333235205444543628250773339959868688407268328834170865069861821300449647832656906313971252390353497981570683878614951078805874173502467174471960068920509198729842770900149896435460131628032906508895990815705697815518201323051012884831399893047512239428050276477716153880478085221286776056844675858339614814401156535490459696463900889495394382017410088138534509681267647838030416823906508775413588422256766883619302061031819096054448358712361203819350045937038301303212104920154276697351818238415766332213404447131062214024292946030785235449776535381871273166290206501303248014035376298905488140493365536000387787300263762575774887585228993986880671327091051151859172835785331887659531389245401854236013620824651982456586763031404077234712130288590971831592186304079685764700855045637732207676922587848119095261020912949713625358305153558221230708436696197592328782396918968729285061175533381828410936963391607352434404503287793267415984679664718074462347460161913976852739704039364934396828744097330025434491541273451721398942373184127933224105150794510587749250331308702745974118990596935554014491472634911952181336585035625670107197722810815332889551982187006514840368285365517718547832805043187524696151325722292874212173571496182427353131131592367006101629514225431117697157878582097394708337241485089949680934531402050250319864841757111050796106036607922916962975481189508895731911922100887920714562541660810696439319494728728589528775120966878619727889697974812456640306914877869225076691060750925535689452308736121515200382588133706472464620050497204911956301733747648915031480210238899746867498213791926149407503853052242033086626221185203935166717542924629755582483037184946198383990592384342335807585374007302954785104424827130932820690561963898890905728613003178674668100724661558505649193924025145668767132247684764535820977462848504442736280148531896911613918993564842744186435039927173838733485932317896272029156144028666492136030512606985157353142400739729166656442713669457117526463433068000555913024180547977306261542369454806861483220157318229383531874384603008412780575440938662629537073703527734708153510502485708687041234537736060156794460381437694159250288247927518073431041005251789629872204075397571195635012557803018345550835433914299380890725195809719031822331136203481689152074503937480879135343922639716264609721131684796744538346789307379547568388057829804988583032611140314310005236913684873215976508137815118032508447308069834946279911066710911824554650218659695192142977965551869874564596860162718640177831903216004691437964876119001796608352940305541837832084802045710143229145163581243776974893980548024642909025655791345284814999609434033448760337806629371682994114577544377537727217276438735882228428670963629769251616825017380479454334435851389411283944332065986875694045493417623298262231663879243174112953728592733793669734931938214876351079845542617367413253506430738979697903014825712219558134597071186719270541428129250975036328823531662934514027576487332489161963671071812604029430417145895653323340648215301069343437831062203546737198731029181811205405031125499294512393393482702034942073714130570840321619549221165674261557386496433993241815268384868448610730687524593217113181410431822895793351609078566381377758808351325825281583133023821954976200041925790537165333922787482566998112455670960302205127877615401237234731118270665499442636967984675138246148596882265159786124902612277875713154949889754726382215693299163544243259297187628214080312792585683764247310771952507319984998865679578791227291771305661901799304773640157813758466741837862160190000022586199899917309795436164943259492719873700230156719421725535952226999625010862624358901709408930991233045573369831064191057258820609300983139460968878869852498950873621306167901044985919374572779782573903313301832753366504814948426029979691795354944673519452039442179770035164155828301425118393610450868976462242380019104622387172858445509799448826246302920888089765854705815148022294768145224382453917366996273065492802048462894232629510255698830095126101473074493085367897818094761494930084004406573828961411909808166815812054626401977990213732047339016829318149863462740931859858214860164967432109550239362890317087374213678899506733912580532220795704441040132137618111250628294995571228033548395130962132111803028437283623523917186534009676555910358195993151692461226569822046211153871606243971512593521699204486521475134256844453512342410315213960834042540389019333365279450959102213140271108615682980653324364829654806613486329208626949563184969476567434046493654166817336733126814825461164955243179895177291989876697088994536086572799421724698251957128781820383317459303518417662838308431544282991384769233214231643975757778715442073323248869549394460032828326230359688489997494541236188371728508988204729121030954028733295890522591263759619539665594207540314965179969629744794445579376103430053963443871785484909406717389646540216291049499302350869924001324718119767892124671672561095989233068688289592853194208660670874028007493785816577747224352262808694539997884991857156654982112949463786217240049764610775869769381892411953457331050059035262791675378144245580442113970230656503561872051298933959898771514534321974607800064407474319710632478193362346957316862249857707748135464641222924343450397368731661634060693483003121542293497661438612563907995820820781987326921868776366780783556829691398013676299811181599231902065150846824400982469224938820159511219403250167614317932155034827647212005371406191851576573413509717797721858962080818412663662738007083263860275764315341022230236279918452674714334157373949430201681569597461587915203734572153296697572595385765176858818160855155510629613420978103972037176979749417537978935762639165606944997947736430109915903207884135336286044467816534889800702404420176847587895050232745663682386198799509400678588578147329048036722333596211877934664220091849929278466943862265550758761198088478104143259250147070078623282908109940593147261422993411817435425641879649720286524334071242674497425860719306514607703668436068426588841355730975562214526703741973473117671827200650569271941414148091117521013560203336728775912153140555975330706576188783807452388150731569839212583997364074430751928358967715780523268032922156792244037572090235686036331245280334970849253467294467326402992395225139160994897521144402430991123089386748727939319830955388796299507011220491389218375252552754050418058920977115359114460513095048840234695122520102060935273783247037167011398794741839455676487592830653292358200324064351459576965893604263514602899047922095673866370012659815926856839772848341775650427060213674670091615158379500222767479158677586671178937548301297933741214578984866388223119138384752450152967868327090077147232378326352353538733433216661435419409342895387003039642016423693372185875567175600522040367288979946201458299519841985135322980553222868307589369090240853433927087786489576651181112449172154763469005558638126526336064595377683133539734948674794462838669441790685105714844837821701633913938887174447767496470798579621667276268908141795381782702549135684001882609230135859178232008122400866229421876529352350161591620162570235643291428908629568254601992038281998188238431316914678556438690072192252147950242797845071893260180332392594641353833573534596047942253268962358752635709183724606170363244410846982720984004060937246738312767888069371433878493290649118393441298979123261690039732258464853068601828674005339875534162930828732604185531745121479821184888478210724750073632394637029748008015768023489624048904173109312683184846309922090227859443848963206419746756968250683309835461042048042995407258279712288983793309855804590769648789584708782546194397664106463758678295076236815614854555827813971150892037889750916622843791791896079947280413970025328748460131119975932526424681943413132633986463938762006623564649760937448617838202492776925142250471563330969215259824147410744784244414564726373399120156957716920324170731850333738825662178567354598417088347342984229125323292412213220963582827975180505408495851507917245959823589166582684707000253458216323900190291677365758888610893087870492809514938726503302697630533755274482162465954396016639882774373320024986722156348508212699841235183455630018471120495139643802699631179974870949950232848202247150672802239434308632440414106338100969563456780110653837389925080467029424774302360239691365804732911428234551743733913417338414402664594542658206564673498897797263723427304824052508380909902027586684907089190189146147679804374900844585208297556648473822563697998037461369269269211617368761124809460341318254116672267158551622109367565133195569540366672313284717686706473375329447227021787677743064113573028735580289995118874417307153192276653215578581716241268939428932748974292385724568407301054269387993562239030258533666948615649105010804517935846271058323064092509659299935884533457460557964915426433468801815330564583577141975385486744561889144950501644838588603335127318260321628928049668648860042973583876771165323194884630903768591207660941949013125302364334555479903722492515642697903982271017327657792254643897012272375514548910578898660863554587735820930340384804122572453653869667668579612638254974363639566326988137534310153659122549271228014357483117005370649585063051394667785710409300516407045012328819902412314753924153122088913525238140597092446899634345516237659259232319887736380911824046119152536303088990806433858534531672198097074729824908246601590992561765968608328674469841216247019051897163958216457218020670818614061233532781426802137247248531374245272930138674261427366354551788809848285358448420703406116204967173067434895464759018504919933055973763810181116647098851011700459314864588874225789257201665188505787170502027746329872300721491052029821804398622714925852052620184081191994374071475198964462614335777497027067540837913561978413794175158818842184152652374216233181043141556870470596119864680147326235781362905184182718699398062874951162528873788191635399096504049627703995180274972336284463153590374269538921744351183327520119782018467572243975266641145479852703646142600247412716082965149762202206409795204716595659066723967419216388992861734010803331860503210484554609522538963365913620773845456468324475884284114786609232190593208742749071583720966509082191335530337278205277808773406460207879647113533335389394945571608462222131246351693394096953584361936823271342785234541997360127800174274999415692713099225389691229738513718552522835677469265633912839211690645259114949861662941977004807808008964567584672380278985890519429118253294382162371837839296115753861417598672046736047893638756110353752638490386014372195715543925394972279601518597659639373316751437348708006487447660841749525978571767365121175657431495367020356876070713738608244531085226485225339436476389283015957669764479005437742159827586816504923751380622575481453350458284192626571932953420855974099871282887691285006286609443140298479976661709573140930856106706516546494325459383309984782685203709904365544812575735323178823181515415702341113276805854792353137725025542145950081725454222380169386891847670414502865006490512712741382871205776079094996918030336084607772929490646501241794382741175672285445017324798624694912177393034184436341036356242194971844106208447295883963889132754546937037042071060153802918220515664828224576637709321573898581167184325135782282289368982229012376156079870652989819249341392439524365111035473218425413025491102765523184681740082435727765921897293382532760239679906062841526007168522590985970973319070183716676117027805708949670355356179564321303976497908651607544914775185431905139903002612142207258817955686782072795344188484132960063385997112245499368247433528103905363009922570619955266569153354940271347544734436060911226385930964325642771805638105961583324704306782016290592613860761536131584340291396878498043318870897964112251527516841244529276908925648007749082150682180347664453735568410562872321187896451339192045769361205937196791233010521670454671986444707423199591247754619886718814090590626705525605786106380555215115596644112922947225677023774373705920707358023662861194014789644030959557199219443251477191483167233245503245258893216595689838961669475837967339954508017011696393964361366614809925898488643648098632687593797241108989691687187707234201618163034955590342498129874029623367357256707185945770948423898581860538827515114473545147334256277394163251125943482716249180009016742935486465119476138303486466940264135163213426642469260776970537277274315559584312705469064493289199220783173595005315887090995317525526954083947248965744366346432896292914453830656547257122910848035092607464772460390583177198186093125144322100003987810470545358860494101558275862025098002067205650471833928626915021051510635534525156805291728136890642455452608842483283563842714394496031639983251333649403005998697280424020810243383011009581547312222469292399372702394624815521331565116688790296699384864419332664719193204981780362184935046216440953323437537296095244530658139482958538897314043139044136682112494695770884438251574284364293754477688433727433350717915814821549649078545913728999140710202345351954854433934690901962533207668416547619228359448521472390821103645666457194945663621533360893573964825100210080686447604376884770683636796766624531302558788477444504499736348224519032934448975540358304659372457561014103588503723588815557862302428275443036662993889458544261912346473222955241834149254809468570742900279511817786773081912508102751168916585286966177188798800842800119866213670922515543308611021878087232548587071342590229610348825331132196609447161776443547708516456806928101387204714193560852157476136055448043508803188743250041292255278344125749485402820845299020695222356710298595014762693255555589368665823557487986029710253806720025890685673594027902834603116101273294013232964828973914170272174146059593677917498103889695845814221840017108116145283919729058145943046398327783698075761201805094539328626186662766953607647506116402529355764167969499547151398360239349956210936067294776580881142212132245917004475229317270842196529266784639180323666682427366472989044439939483133445462549503332469860127097989087561318074727216920686734658986681125005469752083507236167675210799076407858956568981970854385487814453390285575792830358531961427487239505035168106819126069696318659573261491275042646442852310797563822697317754198816422838360552790753578353818861296669800164843595445712341445482617030420619996002641809426392305388882469457070174578657279104162541947090858265553778176875621035725318255229680033291621932692337503178337940589589773131837091707231855684784718418255589612613948122691658602404229986177819555426516020977766214367810436578963217807837177484200687698836727122416202011760769411029481208146002534476705599329592570374024813187458207416246274283121562329199172687542675991709965408172582375941373636032500537610695285041121645489952222019672556844938285430371825385643623751571712175961417967795504304731727746600698068486734686063113771889788782869473633700598019286811138317432898090333314000699079980295012744567355656765192582579886557593267857502257175000164378853316176269875994380026095196827349705964605395538072067052123604612016083705242239672390665093434916889781911442573448513352637720889429202583034801314075462247639301377066710268306104855422456890026876745092069773508131400905353537672222389505903506330765507342736839659099397509171076182192096970946110187811840123167529875582522494887762296188974529501654464637667998126782606956288778821782727745940588719394646998140040432304687063883687751432776797268693915476981258767030584479704361675273474878143266280137429696940362083319432624028223619325672417875884697986221492412484292803290231597691442308349471545868461104847455658407951986747836908413346424498494814362185728671035117066380782607535296415651571850360514459004430119919356643278828384454978543689387083408205603237221975938565538771378126817773505671745765830299668661107401039075460301166479890681501229334663323276381049953914789278753779127729211262960057251310693266875110549214776036574051752194125055074645842003926627359910961627141333438180456738692365025812757162341343036830367818582122039465992386993528985610688380229787312642433853042600086082368000155915300615833472033039106620016036778917057227907263969533229862218567472478335949123725736228768589982193843532908099048511986645842438315453996704552454573497047056875482200429540389503735679861314125285101403252389668415119436749818591072737761631141024245585571647259538890348677409490736621466600737258621073010113027923400548018820541415736827961389288340271916778985975843285489404546416062935074417152725092481092802554068997535878034468081399407864469138545602090257578066706241937852352973280631344145822828642637972915203465770928489103588033985184868017251665291824225005933823342351696830811400250204569343041629136520951609698759528445181773165202036944833525467572872040687058400908007678238628031353262349191737720376320139734799827175615306092574225427548587296659241679872367547779548660671740531292371643600056877894995509488337241092026551158924455289759578180677277843328024421255169136182405452849073316820659515898798685414038870847430582038299881918772066272108803651845121113671898115642494580456697714015590136842384445422866844646605972008602191626879728614170644094948285756290608991669002603893700433319312436081162847091893163820027817447910065602236787323506947447695287277952122597151178594594268267351924047258691315803035191379779456077108868498527286339633991266765683264455923107046133466158819061376391552569264944743433398129313476159088132439935944331603579083022178606968253734235400504890642982234912065814688333702185081605348561833450380613924530296682983229752238772545155864326230514242175070711992225388586698205890632534830811047834012253773345023834211443682540300095725834800151902765876100070652284155216199032998500281267567685593151731364007231089439215601381275378426700803338553074761773447715379072148950653627378283824845691529683031052071150322380130212441732439871178781365566124671225088092911172508769797087759497037945947393699760220722266311252433707851158856339161259317597919512501840329278564852417116168898068994592522711079359022578837049869234747906228062544373170989831637171752525597345588467505555690195581283688559802747238406518270088385610396821801893028184104016266076607428780772758507685169300433099708974258792177589882580198845752563118285234907836840526952212984857565714640871656327549462416832607113004929103276342088087521278158626700169947367742276755808819167941663808826721871797358626114692806938192141092133751542256023569359057551950579547462626940487328135544495858972408572845888597526982388995307160360372342433249712597466864073358106155871264133830768035073088296538520962377303571734032423275387207123263074157787560908214890414455058875029078824221304110654930944910341827609204813518154364520472225778017337234604485199765660851585756429656818311524602318195807480308991304588008075929803198620789932185217061755238958444805981361833298848586112585137740528266866331410960389546384864996504803585896227593486780911620210034305001615361235238759923658922483556794739824245273317812241813524209004732685831635945043974771418532598010709552603559093409447099566870281331224809231442093956885870770701931835581981037167472327467773401131693568095603533791478253416784606214451924216070540411214907844041186643470528824756918833723461008996109841688269259318720332730683852097501659713022159833839379126175691019937837121857785641964130515398661384112972827567952104953462094242115352998773568207697349561885988262897571384667712394978793836338305010393186517009729743053176410824303674676302406645649795994669962116366858534095540607101128201046357501884061081765630205359602446548967032449056813108720811997507839965223383703329070260694192047047014485546363269253737091065355631319150329403740001691137827265865434439639939643508534132411110603149642415165116003324274667293304398743794742540389503325840270674316697776889324817555353487523956733269528883082770297978807387900475204745288078642715638540531111917414985311107182126451519180897899993960644899745312885960180187358218853462544615139538704630023496895382890553097618580758316861138610458887206336602082320858089894286501227812168592453308030652003459484635517617516172650732198229965417239251818462353035922112431563019352637761962990970927735012929258745428010831309884139466051170632694700934144063362655056004224528637432908341595785307819253746000513206996603995239780620062894681419631299633918099787947898367521331715673382731297805373826733968835609199151799407367200929943300871897617824366815146297945667260835053633829588227366484334425005493594100038926783704844943503996750400930811025319404304370005322465887570253015854593054138055918508320964296688999120347866654272514047236659765741030594404290486768981091806194900773503626931557443513114412681638048576295684621833089171309028089715928978986237196569754010561198856766022012112714290839333077557853975490903850498588273442672420904585155328008773329770671749673806901392336678044498269172179024812897079111569524363647657083275495622802881078334513230924884195762334556300493870306344498810897272344899696450701196346056865344065198153200533973965592497696371974418433309405872292621769310191856580965755827540937093855679964955258082567692891180568000516395399039096487585020691496997913717118584098647909916555567920213422198860875016005309902759116054130928292458346091962250686897702240754734623712860193564549559045744587013180834457667408368196127780073087114518682111014802881933998974123134215763041054132995206879824528303490025831258704058177054520605162119061458184661012857067743862277234756060680355739616792736904515966495746313088463756713394971822838912422818518088246242565528756102136694507762520870528177969925827484910281069432180677390736509524326740299080384461298055365023494225671692770631522738006865840311900471024208807034114669362863981769968402059180089432966898877469600555622606352876041447894972802488237383373654783039351013440435238423045129678246381010323245029648642706523567582302116717126861013012996448562810218897406458180820961904097443892276911666137080451193540100885137548205729721982945034621308638849838991870757031915503303365293058274778399638968779684700791196325959168539313626774542990608679100196356180215206426434499728510773218058795506650404247459174091763680408347052225673257090509808234214649737667593352021538944116770131847576226504395070111676462829513062595881018585420540978158815568205044204579472122561881951029243345369121388776219206817423348567820543793956800571066861643474738097247055723679657036014497435225805226803483140844297266213082575227162467367828070979490193960416538538292548577111217798659825578971496375320251293618763028373004091088718352508556619907759344849104070276830803759468368626085805562709095304089337357272906406768891382792860377694840763809760970150521825647206243739202799612188164480892096726697609856248032938477668275691028911338014068071893943835686731336670866182696669163132334665336562338824236094570016365884818321540430279645126784800304982760478506773359927928318098708856542212783240656786184520592208803914595239807017059345268927537112748256182419875358037223203811978255592012213698476968266250605026664921998635150538990696641877620480734479532658022509631163046202043066576120676134509149519868158752836305138857579320155547777410920409068728102445263724048522282410596509426480428046655400682979513767855879883761664229314935469986586487905815740880192236184349145556460873388507029969651518045602433334802947598289989241244510617148866054826193779125370451640220804407521441892430910519214716562803110894598755065007845958247936159022039643721100034136718188526733464266943582903922538767736491039179323074894304594306497445230294620113777124927151611886595938024319166382520109917132945258321846611198894067032478885956578159752301730483064661839479245826490231166456705186093829396452760306202814609796148733508568324852580648621565793235452915193267678404601907688450141226854758065296554287558028031703246561635525208616523869137107914947347093372823334890877623555137805640999298362543945325369519813059178491298342226528147518449925173376093880427151535542221094089218030648000142298810594733213522713428552185446790435342150869650422968241891498275001222396525836484606115129724236407178456452240599410743259596894561752270770357401410110768134213924909701307394828223815509317568664509904924051310512668834593417953443719894107068567318255252859412464301974102930827409789172182083889611449200398539905858160853285554253003069983974632687436575670778593662197991006971799535978636148647104910928798209012710278181566982699178019523291726291930134978696688426942358572078330311733240291059861235821873896826874434820231623804368372900307761763961083492618824648261185215286125455846596691962671980232268877456894585752511294352091494937167247417573012951623117153266235280169007015544686937551651203765281505915734842315225609264370375662035500149505526827175269804419911261178906492536657415458202011048068529875289969625980378443344207048434516845122786503564882878728557082013293531789939479435241965052534409782939608433279356122144294526797874576430467358407146242773949429389315272948324112090811062442826793526663790068416100168124248973510505238689662377714807649924306114998981862549526598470765366325983290527017082782624115126901785980749311188676637337414593684508150165295881284190956043995412348846717536848145491894177993850820035965285450979634035147665775146780885217006503939306915809079910202700398814701301544941619505246952835299313707139334367692439699696387085934799720740025974716538865626016029708107521951239457196180615561355396488313916482639938188911740282339994178159955900584904128966204152006050374691364124473310125513713836122911579419536257156251779412659333699768607617050669336845767412228761691406237138464790559273490051195456813018942128338738273805370827146233179755223991307105356457707006640456861276316209327740367503524791057700407775193834579279083549049308949659270656336871611290626661908804969922145021969653162875526076353747491196761751657152272643444953074011601716393251847256254922905541854375062662344732958599649449305155111254484259996148064265182373454996247567156934290053954058581325830785532178632186428702408953935710472708146996148976493106550038364602182638872615167616134726378938853364644056202013034095387238912764977832617406634844117317518515308475130223745833665603139232963114850835037515131346198137810024692319254641630320556401719058136195269635813344265634435074491904277476635985564791692289471444723880755191592293726798839437117799322841575334142359779574254044740250578212922745579945221120408133950437138059320064391052160136516433865515779997752554244717359950609907391815565420836607717796577083220860485189932773140967657983057912570187241342569000324272275035207962573610600739822337854522816455351007809919504163253490034717389931634323928637792773016004581839206344753467522053533829390490868297789649785064845488397377092719057044333884557342944017134483016634736836370410293138912729217906294797010419830063378975054549766557403018107480428967653189921097760344224018489675639290699431034009448954033118273065312347408474320875967720572536945342185533882710851095589491539885734612824777667320994829650651398563039186976460886364231564110106183026480666403233364840965811229205583074149569689335639587556115791660950694775950819838728576673316729166782194261778011645768565150592060236468911898872989746751266873235810564901101062225867661059445172112167513039641191407472518870474229815128661608467588753475310597980658914126255446892998718815092083159642177418732568166789245059802194606925563627880740807408457628438712601544159053797022358743542005595063302960031994891301694445258262030664262258055146296768261234382261929274044853486762416075021652140653123454160322469580701315871841742301517200298491762457993764277027404506783412710857079578901748448556391222878217742458062461483722009818326687586324469966480632163415227072417448028692383325560216323476020376276324426709865951436327628200772590158922107158461628127592877634165636477060348884315037941787838258871430570790490387015125562368347139664386718961552953329963348133620106178571745942557061315978570408847864952987039360300236328913044364815386005726459172648715976112133286451134483636524008268963753817876005068153068920368651986988193606306413192260058183117193258640062576229449544742502650622542269105609502995806733026022080663947455278528382852311926570606102322984691435822283425953469888019129161754497114306936494181795790504222319100317336638736321084994421354554814876938641424271412647749759335504770872198605288650588435852872847435589756611173666114464456275111319309400016435548005949626238375273415529913817320677400820184655969452442182514235069384587339799622574813838568074811493368140049149965184219797796947481968263827343771017724699796485569831547919256105350924290555739457141090399630534482900528272476365264963152049068035380294113431277272238375831739783164975886137214138911114601203072151424375268996596811641666662737547158410103365362207338198855147271738532326899667317422679009782077617323021897223652486987506492641795360865144134340080169099209472459813718858175167356126961375574507957525605100026044850397777945580571820390562068193087920603341115539752792830624905432117734849814961611566558288221691527589815032783369838352746464694675871232703245519384767377847153718873948085318543231541564213772949480862080782180007379010092823988378206340466702572041237066889022201951939867788806493327812625801733425159959515640571596754352202097586014772296126691059100841199691014512989795370322709629329297264856520843213862776644695787820856830063516528843178578115210239942514436474595591439434846235524970712625325246141179502021171535948047852286515610667481900919680450939539440797604527821830787260349098769427659913037777209995165953849080288625843623536193637813686238087720350552055191785479097139133475153908541668791186330755490510627439750584157986809550814399434681423797301085840638365215113699758204819933424002999994933975814267882245405616411729743202602832390765085110660483309360943151498840709397429097281386367600141856439168458502733819724647588854861330840188078805990118449139043369819024373321528898409444391230206111910273355722963246952369835568470857092274009661921740659799247816227372757755848349155480951123904476857270574772775355200032981764977186556469537001145046364276061389115415546677013421282595007447436960576863400221244968193749231800257981571476327519756016890570901532978189901595618158046239676621497577395249692467238515600363641923263641907204186892292020334003092426225782624041678675396273302169437639721419308303227907666513344024050350342095723093376860476957935633556556661812193652925434562183463036116125205374903939881943096149139356331600304220895071128121031358129886244453420363540237992028766512962954581305635364111284582848539098567083896505827898728596333271018692035372156871829180957822919981604455572384366107804065190946937068879737472676093978638756287572779106307186236499791301543310330247644287869121521375418377106250714406792582612079285189608907507735144528634548989349020439524522318374711104575937220437867723396917878862006966442862092153472185362819808110218464691380665592173827849256445133514856243871872147531286203143595750411300902579923347668210957102211471133726640056840156789342306250791055128970183759262436778510395711773917121483789776954629170467534324782430386769326009918582052376873036476244059528087613174301553673763105216554682664441959532416647587454142858323377063819661469151408366197283428751996508076934855298311063274464740347986852372489335154242400815926388594318369208908531607387679225837315372921700634495645158078515368977665466049506531526419333608339885099216791819499274275380786296758639829407584237666610408485563349310675281472639217734467781629991209982853585897531717031879590428176323110775802450266141959908804645822336201480685646692008920461484345265407661629160394185543239589086114058544607813101510407767585436269283885239490692782816904382777327647691351421895608070821268243751336263180821620089633769156139222879315246426473880725039370283552177978744971222668849505830455785767573761298006037513877371434014009641692346235419794349373433437415714403377208391857546944838999693199549505466054567924137392753865137379392752271743080620513405885330192868007957367962056918939384637967797142156785286913350022935987115998331314295317648998768011021816449381106957965498941826866927779256904700505177666245155356345140715373550078069916084119346953554662758337636297043193728593185334661637445225146489541198535123331221102352602065870052494761983048148827595097514470545844759729573352275250737578327601641654170394110655178967189138723358904137568896392547724520809929226668752310846911371089808899090013825248389706723188223107306966808586585359448467980175324060201119965314792200741474236578409881757962994089004163391857235533195715955506167660757667790874678847233014102831657643675548882815273550091679432196393328692362706183407535918539640963673323910057198322354747048769690370473831633767575969130392553151801797144275970019628065976579507347335730082970197540244592995742465726911764655228374151982481456625739903382536150151590786687554291747315407821911927145573727873307196955560879756424161880490444590797491012137382137322657605263148772431041633714003820931736808247357052012307717166009890357912895999543595914514130651716890230261096945468394372074209008175125931910229788719943506596163663575040195825676541395596848095473240397376333152635489226540020900513436151821050152584270770202344772443913938101316538069821393310147944326565665634598255449061561678199262789456666625258335538578976521215002425654515263226778114360038720353496131076692602937383777450562091832575841854533361284082099403713194604594308669097959774504398212617363631993905034067241786330506782902384949162053156079456764185065791298699394363202811894626602878848373975667971838233671182121464752733603476711342554332350253773092959390082013561072473255834594339890424643446288809301620805852362814171888199800413058280747768605167534053512275811972319579642910601166091197565067346073127483990658970621285697468078672420172999760527401040315365247120826655457650839807299612815498963834999257499731343762654589261717357163345842559239939509828254035592609253672726748140673611299323960944437427194821226699188930832493929723486465540096530364854971009868945325394638975734798064530261158477081628794617354678546303581247716064684403167887603056191667871296196245468574553150139870536236278290046215862019108487488673774805988562051176001095570214682610271562477988217452783080270768768758568119904561741788568572686324408217096602760203202732139972554118296391148861747476394810039979965928030300687706289736299129021360100549419196105466388807166885871518387581264399485179413146091571667851481846755002050939101756917609459115488776828578059129032542550838838515083579471419215022698045922785698231176440109138155248652372803085933727096389150885754425167388689745113825749549744311423423190367375173036744153932631679588383328402685719513737254628794558937496408499686008760465971910672588025626839322239260548574784123138465934807784476992236467695303113544825655962951400126191174800670635196874290494442885526634902274742545790046710991422696180677620005147178824486352545614968293811836151404996540041520035537513315857779910425227048503417866311229030130286569440495778442649525757029567784569781599921025229594892818341393194722346143814903529543330870678585907002394205529641495134021691599980583837008331812184447202596822169896895684578764996431055082077697258869391298061197989891817025883567048175847306822461610040253257419497626497533517756711627138331944562025117334133854701698531226709257698867341295489138087011034522238344596950024897711072295611307963917137563841597309401389321772402354009092378844604866861369081957032516280054265641674256180560922929723875636418640766433015868820771612474077277891008237852368679765716260670980436939982631907881664733397716541744712712162038065540120528291267738898577620023461225037147116589891892149020948561185261142372276981786083975522059173888383642113712196917700324445971153293322671851145094535610023238068412699482027415313282285528292776765161536280743265160347247897334269410750214793959276708056042608385680123264255189947182741602954690094254004627523925172075220516379881910594748175441502564393772497343621017065713837358897053669665488115830093033177563310009215563464513477467904141302558242853965413454722596376154793029727531670678707540207060647177256201410467085866498573980480997233922526567474823609479210935017884247115639036144401006767683817919755468178392554497111158678338156708626341164490987962996987706510610256187708286412640506297173497583252817617610206337509486328947381146032821010284961203791662598529297652177174768757594284517607671659974744224169493730105445368126798314438011556469371584316418644400313866462297156698158163362840851914384203280518460935930819217037204141843592837350496790579395780200973848464905325452795068846122056108845655430958827719850270335083171043435950816164115155875874889754030742154745865483560259683506363944355477790148306847336505410550820589013859693401514307039873976371566325911511472702659345060632923994233959951498735567052238781488528579280431980040078915485084984709059898121962595706013512295318931494764102940506836677826913881889916125541623074553824688931874561900573820093177423265485002437479533805386077645182684630603522951034564796178687713735415490320980387208140219593440312004876451928549039965155807532051685917523349444474147020369306506094609287962258765852661099339791977698756289864737722940244086438465500687869281692449632773694570699361132040692461635867850730776479164923974204897266511415180835787872649095675384236683798648608076456002853122835470725124826037622107782408305026389026200424429820655985452361118291662227059305989313578770674977456919577374837093141747821080096074252989344303640716402492704753020669259578399442052467364560984237918191076856940103955440456177398130580267714215463852035539598726640083298574258938877674179293274732466860213907078378375429007514094370629813508689664067340991922764752430098671764263475838594682186725902725186879242826203255549810694180860361925476948800311477958458617021034424338360607312844144225573585208771500461838615381304961814995602606585960035740101476336134985950647172260174539910104931515521718980821419749319225315349800903540544415483644107724027281567626325457804203393341388695657598502426481633178189970916567862809865855161344559638188203386044017044489337794833084088236949051242589803881251912062042452492091581949854534477356240527648773163086506028439997704169172193683824509678245764998461486406049722527765676707606733556349536218468237161561392667013580934721374431976908905065434622068205139060515561186602239222492835983414224745912569456235198588274709174179903093888237787708634928536341953509822447776021721358064801576750181145950348316717168880132410967996040865783402805844549797395089451015600503362409961428930880172321165550148692038446822126202284562844817636872293198619838175076915558938049390700576350250578869390609701822296549981759523095276375509275137870723903020876305682971051172384019107534986742412260273330881402551708579313101020497507533559373598428818481019840807174673468574779748206464398342702310186128554878673484958602467043931833635954742490504393044238169860892791021498467416055239905427534428159286904959688092831492945998304409902290788934449163008633175962578183345161946531529749282062188419564988602730505740979721687099009013480744162674313328187934170365395001493283845049617184463922280708658315035126805500345163000321831070966261217484345759502951432937705987424280432677938420163415793579686133579529070356285606642977288431900316948630501784579925838329666521786038730576845020479610644741962830295536829108811375326991311482559797183933595422969378378983526972948855812939386359609171797705997496138150260843405953169204518177093828743461340765426964635992407743993804269040076063022306389167890831146770766213102350222761027904386114935858902279487042706050872130833947663884873844033380143757848426974229134150883258154214524917672858472760233654892491390012472705747922777386525029826331854603295520212753599632442600116617790641877867616165729656551896915142608309612520933060828169374221460884697017190852736427540267728453770257536564148165209881372358943807632204058840268724451927826776923941245964755818650280536271418380164474878107736007381908969780269187246631824799785848290671189877224012288566447936299837999921732423866471469403607797723857893110051969459089892680788859933899241519719855591682806865881235826482822669789649469805485538468490817345246159160372625274995400363157960341942173248420927727004079546391037055975276140424179164663911604187177790439667192753476043799883372404392025594650042060700791632889495481702495672659375231727393447503627291134840844596402050939815752589655986173627938489104320774296191069430837796388652726755448369105213241622972864522028037554422747631560039787742357743636535702253585737123559546833715950817700994721144783120534227100865454517657921425926561419622247022459343276767189222654235320706428792571134818748971534811813642712154532713852442564184408954146734421337967828217000851778177336747022202400600208368856178011271087106998733258087782647659209781980113769419138184686271932238722514477381472041232339094858776162412631764912706138313777117835817425168750291001267211700752325390588322538720813370056820836813917112160923751169535565824949828649150232714545053421000071032726010439679160223136113872300980904808940394998410023197295645189964708089877580473897747728512532105525844043678724913017963226387829405906918341068539677917557010753673959678406734222322749247277921292136429205675494728810604083353332812764358822335401113250414263693660624236222200686092723902505251790969848863414979526040564413961681575263875556439564246263057890411334001184513808728333904474154326912209390197729868087175759749892953735497901163068493692909408380843756692472549174470742461352375164740053428220743662161764837136159388364631108376363004774977285069338476192583370524218470123967236850031164252359664519851106186731822445855110199837644026925636384938786821835633515105840919775192277310704116648403244235790015561991298584328451830497406833424769334929253257536282840650306117773763242237104999620963424501416301985774561497362920495282786485317405115516532197772781109844267063570016986004361557042483857666273625631214110398163885229246325200444639456000236966746875451370887524244448877417615958935854994308232266132560686060294715854382489481801546177885028530726499731883193523342055270538381661063573193674356120129973910560377657708955317590073540202907686083179522671917272355744606646789702264549118593178053143789831784277153401386025355029857121376140357436232615397295940988760083729840240028453673828236080808975165401650676440360711470253021058781338109936789002932764015601289035956139086260484417987680825938846480017676648668193519561154796236643278976072379591153278466251806205883345699491256939274371976256654666555131192580009989431693693105338961532825736509128962741899192914028651207433930477528927043695069242475739523096820240374810300511076758495981619611133722124887874926041965902515288346278851332523294558584117080308090108087503519090395655086587802891622354099184341325798302620760419798386306630745973412884700912504118903775970987908680009431087378211621287100259017683660989825191121309940034955983755158314777914305690386265882871638231382012753489387062755642672597653744543880809594751328359544416573571860680157080402891389144972356792901563686738271694789571501070145962244238639158871334478381841793210849142885643257445305530109185649926813961121038174234038695303410892366867046388591129427666826241222732668310411398762507330053834155258798514190580193686061548397069543447641257023007459732381560547534473121863323713159532918452379559616944005593215005433777668492956267958141323738505147874217308513570867317431782253553642540001406425894079178837705039307066989215650777958240173434676805756665664540350739913851485932787681848816927454002353484786972365326004227831037327636893273512160953408500544659179914283294636725598689808320515979393551567137787664733751271096324944926974868729717473375458657388757365701406948974312861511328788346718501041143884517494583578369652434356953929778959921067683374738810167720575627889891871357659288303963345685292822898178336661548069016983999266258838748464563723657608709317621101687813104512303247918747271896695158297922652838756109768818905184720568164372129994079646200012089002509596050920226171717813661711480434602842263489712824188678373648577687766217974019494846574879504407186244570727365578962777432799658139252511464295919221632098560417935769954934626326458250515940611617382433231256765191836129872804488776787489875190738092252968547646170141280516505381690609042673197789462865463078126704350534858317927722282735123106818966302187165162429088130182900054904017785991648701300870620286108425628183018317933827457325262522058223891766179867701146665118300626430857393715209320308830006392495208386161332782181070173090301726482121308675017543277328837073904422222947452471997693566610059933237050957672434526551519447577704013071889372619227945120420458800479833341107809713847319606543986340911566977917905443980581705052731111273262040644587790420498938370497595175629145999271605201302211815882836021772429936744646215134442237631580809982114258352522766236936967319795140434544757316271504325494239804287389310299818250333887388593989396708480581241782625313585354346356942923713161820261144495262530399609929817670303319522798366155699719017185752885966581247517620039415326862747023226671307841820834920954857203241678512358884873765411819372791427512440682229033770916803845517487200800060439224779270840118358302011697675284463749838847055649418214765888117538220402853576945248798092587715637691972236485265681963859944431194208934872895406810364552664447058289114538806532245833020325368594953396680884961619139074515592097732296110014208494927636502331344942844610004213181934482799383662902968519478472091610340512254286549553357896852532864616148642907272451067745113673800775186964019813666484371223184248066365614669210000077653962898958034525067115174744264513135102094570907721200068781872263183001856824585091842183017050270694405420587281189546528736590493778519906478717707541415751272878743257935125651441902530296285087223080201936018828737363565456067821558389247404502436469205793761397306885452905820895709675127038626853076881972242528140925367793167466743620491477272427043722478630714587159211192478828065808287741305657889861340261940754425630903537520952434694921195339574745751543306879611327701252708813737923612968245314808593451951514720230871881328174802124876084982109655818373255798808676673436675324834750416795953255616200842406803477656843422695920964274999223566806832323842580800744431538485294394561151749525052499274899111457784217298881130647492750678437640121283217489175534925710747094159331239167011521824262685727138032810085001726839415510858111108698728172596283570837921584980115454677173082160480862476365699540141980769000731786786423643868000227171601762355526791303099358539121190140892177304569327417935128123279127545321019333862196829619798026918270246267838130200904659380655827324922730474631058354760939376267936623575199340349074982935649894717103739604942289648504701660760820602225025515500588999151168794013716836112860286736298611338366609983532337121183730046862351593165504091893119017168356612083958069619490479452332606451545104022392591023909202471258103422329914186492035436125818778961742320628736378146071437372023969215667866239967477573377586202436311331444305114791115737570825409973243100961717230425315592875330563653422868366458919838754347052355270884551456718803658642079092094818539992039127329667288060134912246912240046022397742297903688034991464634178204022643240389754564543720344444580877998195953966487705127783425378909374274311220556493449372714752501661276018878740314249516246564967299103251164300078953460601508353624072638964246889786183863348166164954089171143099002366471807397216353701381023228404664428575754819087713142490681053359173683967108150244044693763323179385548228570903138121819907091227536363841567109556198759393665204844054452883079785861287413106995820897595045392128875131542764576083568474811953994179287099516534413690935905278699391081394358130682871239693561026638901589311601676462669657329518671532331311998325361345514430042153304645268070510941288986172186251014637224360082931422341718116804522261907546396635110360816910923990677016661086952918065456428159808619410550216988235949504371313117237866296656926190235609001312430781340324379174886501529599700866331690420418615383366569018278793628570886403876354637016064288902450994020664177026731036152277458064289226849977195343755754763170510979752230067779417723770272658723107613258942691529611143212550767245759201842493176273344275638762007134545940371506544123161983495509263610629635069823453105711524434860279993259434122510834068793300234426826266687257893447090186654800127140091608997870241841869673285491381587077824428943553242068949090684632509660875913894596295222192615948624613058455167996347018922927315532053400305123156389571913276730788831983482960342780659404055646683823884277471436829733075287369325249666946946839470321818262003745869492688363035910796479291338692359176380896842153383983972855191519123447862532063842239264326297359725776462966055535678337738077716704264310006618363785092140971082257899190282158739841783293928654600351518279357911814003177259673207187948563228896408445333656990135350335606629128988265521485607626875690066256350074738532444927582909461999675413266467492328030686331312723270720715289229394252657004722432865747142279422028656525268046944204222330408679234497404730931743731705056313573650937206547475856460931523312624003055806796757339740642538386895161681459389908350861291318648232784403182918597162372514531895447195903596987875541003838233705127696852447611357337740958027598686936576412909961669363760077799241373483122932590297127392280760900567867757158035356002488423014428077462457415664374729487933778110424454104880095414075802865471654183970440437687563613573603385658299758911314090795255021679294091444110864892388473009659251700428258693656177684490830638806270887476288714039668328295123533214420745842594103318948886947580479301209153297345474388668612619755052199318517577714424053895673867398028573192717941768988848479582838200876682202909476689037774208907893158305038437556324147989269128734629907460627348486300471322650348219907142436072392758231580597767674821289933781512021460683273201828904711802184734319278253019782129116808928325764440754072452079786669891938251240195348937507168143876363250489932457143528211515187049631838385525477749828080607961709090385969749840773915306743564894333274307995500873797692190525914635677846519539735648016607155112776949553492830661187274144683787481535359305187498491285471111135486252748604831584977255033546560505684602071014014808754428428892721720948498717156647690524412567447767900046839528806100942721539298262065717516498765744111105137089568106006480195009691462826977883892618635955524191396255303707711120206121088097540816572596590443471797763064193226881152536025731274292496019806330043182103773738772328713708376392967667505257417613676828300094605764668304338512136402367332009331291624834486156938253836871295569205932621607791329167188778994229167321609919226803402756922520705349087385654613422662829339849654161460491327271834681677809204924876953805717481552989876845113405014820639186971160520553871881216065567216383807373648715624438111999013651291557312267483967659621405359226150278227598225460479146368025320025057301576078821139963657962587556960682778629016084699444867566815988379928209384194081581646422194379918523942938565559771420560894581575874980406289721428157535235477763490378170081897776603709346117121608094332020041613492475984018538987813991282336731600832918642257258393364649352225794920184932391527887422338198246624415561195213286535074254871226458828502392719074222355811476452952891498906523399343267053140239353957690737588096604231358471065006114368862498157696553594141782119143947826983029836598789762029810652653507370266626359367597331089994564971400621626479021934659012165774100504609850334887278428850236649695247021547725644360899987958031494304798226947199703136364897570027467230572637453225285236401977637312307582260466706348464988540026674477721629485737791135490008563310463949768624052876400761135700701784100977777879901750776590474350331173150514310964346854603024366950124572729038296393005752332851652436648860999349801872302569433038656719987195001472562141746205508119882611515452255196025048330306856716428304658610161961954169999813075843440495096063141144193896803698294139026881642041075420156507992964541096556058510731425059490593285245374092457695515318809211156282069129606208425304364239183027721633616565410112355473482878599755652804441527732786875879574389887607717910039045602846525579740542466570172275865405153369533750364720949142292757920117352745269679856201936401102673293807199126235928319316683816390493519724101110364378022354776966158403894998750039276070648466968729771212377192368468159528957844366620437391701263015229024777994507197410644239907811445405977704504277915805978895612552782998696040547507303605628770267217781630252535919702857462003665117331899283904436866220091721547714046061872292548687618909580008144378869840864248926557487259437208275166953604387509661615402747621926618681817605752798045930377492338113221508049238615726261472126434153282935571688306444867984227622781901671728169529417587062106655734929324670400813353132201810670867851826261226037141821287170611100195539453618792895006851001661957419498558266583479821816355228067135113671720991770660778852116035917101904056992127456369371454533173210408916813347523982686185078824577003541762319155092396523778907791968147804007455160572708642352955516055220420777468743074238682062944613665085735674152201406967686823939638968629065016350804029825503624325043666930419814248630171471459886539922809321533082103946042059987190530277428688813610216958721376959467250602816079733664960908953415037985980380262079830236591737359609376370503215393648339426781360645190783638358831452945433472825948048025463259873844767932134103685227686661094234387520004268062121202422560290729274701625379138805600359210698637514189067585055845496935863087299430411362987868382250206326955197002492204879557724770256224203825194453022798984848151205863697093314322245017518738648873479860933402688268432009185475163376602015950758174428756316413861756377047354348100253482491496143260798601658650074988284103167766001817545814332479404451717050600417036557005857022380727985978398026341738263954772795426256845805358000458730191116153794875462811036582092422270079933551191864080281073004340554337156059489810583010768340074670390478718388207896263182494988474007652353321971106856164785497762906264140406715189422057290909493562388691327683575834718440014740455101794861369829185403730829446529372256808213706350036365241903952868234875483347446729495924948856010149937990258085061230734742019835609842541198145018098211500500553938871652858587956157730370405150445002529323957108091291991128207981790187299867118712874075350548513699016306569260857304318529699204175072643796318796727017698683573555968497574660025352969627495083192643661943153198161389088366816288461138563990869840552119917451700823643851896371860576318059044189355963859283185545101006122453922197438746875050327203849938266747833929071761338289181558160079946984167958821687907795549210312689904153382470437697729109349664253929823060356438748724917360845495169095690635423334991790896891055675423709161079812461696249478886860578644809024355268646613287906232548051931354804456525777434827623298281643301772483265217982100732769241469921482026574594501051182891986581123888176066980974301155719517465160001845415902892271934100339582451737774055701143160998185270962995598400400558377141423923897211810872575725117933800619636399557685240386544669870579291851698546109245003288547784416740438190168423863530475569789619628989384455750585496376292346051705195680009112906512489621698814789035907983764289194928632246252617477609220342115361003424595313326608887006270487058612830689639119377644464209909212310890245336399756530072970371295510862137672060139833449728382722259080469465644766749898156051352419533362047030235389003197878517884485266808746261493056573748922580577381674603853906719712162823767628340178567903661550914674886252894956439976236900655648942536300456243519350554234885018775563735093423997702974500003397623971583380807354934325598897462474536360355929972027464986795572434501881138549916557180493940469880192280876451848130493068914591800871868771006548188809584749237263394721155855771033029969613271326474601505669576559170375327563127377487533234049517042910817729905814671549005412263391531135710563629949009577269640797055096764520309981534230667466330258689633056817711779970406022621044892792364543020037180041929589891511726022027425959690400267250279139122304616792422707206822667000567829756433882342184713293830632510602629205287689893396111566603757239278686823790956809190113279401276161607795130606008662698471415916684691774891423563003269927131763096891237381703244414699127881983630298752622775524807185937568466868593763496958164179804100547815192224810217085032082462419889085881370337331003581469924191829106479695486104469256591073304820506982019683077314454419969836700280384476447090620664949348114041606375518049020128191288890886074484417008152614397899770478387773363671144288511293735325547527444835575581961560194379377327973163087065749984705661516402988424130605846588635196091547265247006939573500008886748922962464654577092791609433964639484436558404225887651396380544756541715641043629296979023686574059494756371857778205970606243556078296729582682472337897154669514876323302093508070343000509929987009839708107699645640795069781840251833153144067075420765678607593766067203275965969194086810189668625772931325701203632527561186910876678756776513618008607394829213778058875303511307908668166970504608551581049177710020013957021570136203323532428582418873615907143494982431405576722391860662961076665758160423642035345295170864831249594827412360281141832237378365311408301588882048916648307010076051739132177563789018803575036149173220909082509680632296781310869618819842525329641054416387511296259077127128416445488078831882854157298526098269973855518739637651958687877578822431353265637282441649072707322023585867631454884637297916726471925988392094628992510785330769953662750285522753873737302969243480646131916949694138982391604482983396670252367057585035379944055571207257263155949051629038689253818092365529460071202846951993255815254537372443004978277024912516450599460766650496006669755103416881393814894485807043823480073420625571648084078472733336380122110277636831508613814880745776420651544271061152172230082623369337153746443924096549031757611434985537447415195411105976186787302337697541665236988874848417861554623621096934658669348527375185038016161300993819476764697318830554812731814791210341882497964612857299537423401817343786191043148435065261670430727491934231838838825366121899956096500546922786064812496957235676977769440408609244974380006542362529425351718559578040137802233284093219991185022429297770849633821184448434056388125038539803080517374017243346914748827700136431135231000843808705156094117349266225912897301987038338398461367969735555295009075354707352597961672132851306982286988238711284049289248811472860644399433932834576540132463096113294766811245807554061910173545371220046720097753857388290361968450612053397480379964326502907141229306954986535228641183709608185705203730076622173836370342801537811844396403405379287224423375991556011087926467974368047556857480875403900183886111618030904879121889324934131206317215837944369820018966305714508103428580583538452536915738005103945117012383873605092119384671215227628786600044411263304332831892289456062969691507288021767294227117803381534789763575753533083349141518680642357017125160079207191623841419596834070343992832795487334023504545058243491895774533584640749386899887722934937884062267945911097196515105331815930779909533478516364359618168881716068490625430563078804492852563115725139234712979731920221006911293344625980338812389812959674308664111526524862245865432430954725688085275702365616650027881409121474296383822429394950892093004364670782946813759899451476978530143725458694524319130892333962778000738270722089776897321972162986252056987885912457590781719566808529182348855362674911464751695472048975084662551894345613453324585699756205371810100371614007170407825804541882728526862618558677852926135478990816124767621317162725868841533924145380615534927242921090234984513319192589086099561550186382873653178655126671966358243798725227870786022804283387067493517389749665261229350174487796741151528836882145073487305822224304807715756011224744624270207360947057153163731510186831424945179704719154940992834982250769356270695470472543910944841315298134729530645951666137338025044153283816248258393944551758412192860249533070539876599864118861051499440265425817558844733259249216586780330393644139286062135248868761111598321979995115764698485944697683144368795186283632134004762840449443584204336421736976626362495933775036181175111289618744932483470964561237137094567353176888582734732980881125794508511488503422227477175974315342606574792988006396682046828553166079859005285281186921537651964928378053844869486039613510593604266065519499508014741763465840702232294619252050320007686055280835067895342304584424461264864159368677919096370519466023981902832860692705584277846615734912592727773026801980037091201383661537680040594263679484356482815721056045456644811764881218200907523076797958456328970786897121326374443197487746354646033201891940633541802580023465197357394931800023906571835642447102980647785930398024527040467896365830446964894724324943777285122832206039014737676945331182723777239639294618479648107078076417910834740258168012070462846452322472180922525502199985529543617516598247981636535647745759805719924002764912380896588517272948687386228485099308289970277803489178955820104733043881887591822135731708973609539101642559535415940086407452379701330267311676306002430053121302693279479374907685494108612482973870861916730918139168286382458557335618055562008803896946965357038095047566029750679559958611906719680430697439534464103824617251040912424609430804019903676715601728395742198176680330894640585541741646646049135923585548172565226573972463581416307170338737715829326507490667700123622757924717971695941584284271495200417200554194915669049944919077873360433256467049915670042801407772312322134836100905470339291953132463897718737811468217612862904886400639252562014390056379462560827366904962765393552637596520529564216533754114619494595040029956735353013681255291944591851993627109592763463986361745554518216692049488802211929486741338823991826395179456773521772325213440579035097875653005517930576667574632864517524406973651923148495811604893361308600173273304329023405534533989050043069517051880535345798884900047131378966776328057677769372237939314675100181741048704086399958542796260815380217860792842925273035622531207074225090684930134462226744026303221023002702678975835047096501307993191501997100326946750865931050718773051374277785943079349799480907502127952792653972713107716294663329854466472088132592464073561872426538432914504983794998512384360089336583175495213958438647524221864025844663870267627337469137688847911388044151393020806099831339266017439448404599386904471354559500680413405974029142813326832846187282245554889813196008579792725559818215838243906425141661982468844740445981138278956738862118554376245486037092887305118463585443024836087001405418697700559698312960798992387695813128456835339174400087940113351576146677333364480839061247277765331284119218216719554549348385063479759227225038208163910596854589897835368032816228201061717987081879441292278419247252709874183497324928995103583877379028726084790598776635856831804241495993292967156470886967767041209907884031456996197567907933807957546995299065333913518239713469877894943435476609775013424955598720862920003470571285374514803207657809645771356121602147352605346274219629424310025557033888111950137065906450457748534204726845513089438570204057886979884218296712454926373115192719230490001659486349375985524916062084745779908430959508907117382712526265633039801742863526054070412489352270549183405922260679994833910979755956223244995533293301388764989287822767766391094919804238296904609954499978336748306427382579637532833041727516093629976678045412470711296744813560733734185691052154965841632236189418689207497258474568510593340766865066801014960083257849749728480747370998432824351588870054595535449268675427733587336581843729395137020798962730573887894850712966485239627811227701223568799522789963577028760555368365749525333660712483139175849741960903588805088337404027157213564759587724307130074129724174921206457381341707348822037475746739583605234978525086601734579299967662087691135372264673790688258629297611535242217116482764327604903236032494870307569627802238018485362980527882696706090184943105130467400201569472164282756990357952435171475987515999916043521851919626901500488568420394049227106390431177541340404384314920080946313553464557089211095368349065003438066924182208889759339825906911180747723398116605525999269766551941378422813242900321713122122549602795505153395681962435590192970888781047293645368750651537128340392732577350152355155567615647757773234432335318689538756746037412291969864993503372877701192404422732045392481385298132990033033302837090454868127270250711801191670296426810843983948888768546434166240088533455647095992448869327854571619420991430018715126944709822906074574222036738896481129101950290258518716401044418604402749605460152704932703450179907808333611738605457580196952028723301133736992452047850664891407378560739745264981274617559525796109604079570361147618212156967628438167494626918399850492178265022103319316751013267747656455481613722371591384782208030905423926525257342856260852885498795835109550930258153574462331259381054453177176512655069376956930910148953221015118325873443430717596011064288740591847630309813944537711291007657659481695173431646421707035460172337415879593947883445446755119642668986093440295057099994980093108511947832290652737815898264337813138837547094983807238801801472822550327655030152551477824648708112767846406727848882705225164110327079312078685765570462364573952799403247478285788701617868240243642230813889073807207433140922293910059786996856038211419485736356828340385829781366972187145399094514495962230875492706600826843761073122838119216186623949556685582256205370610031897822084449568245214506229909322406933232068102115691858468292613001507328954126996134165370028632559660758817139543823937964769277365650082774960737901813715379352185520768417409378676857576382809197910838848226164891893522266923131087096991195304960455988821599299298540646432331745302382871005323707948014550650383198055315721391457294779907790751836825261900432438476908750304379845248986497979039668928970983867891964174193413053960800425124506263521282083463655818049156694051013068518778679796536863577183241994547297895100003690086623173967608164448000675871040443464884888346023902119328508929488097854548401569473700617266554993924533219998690693770873143419357572484259261525962280562025955163805643856445947541070798877406601087295263934683608072280446157438036517493428152335803312053492501910932899787339090748550031970522112803648057174800165018605006817472587913495193046727576270108248379402476577933833547286187102035606019896675213353068058659128745359091745635673838249884894070765840805251847173608416458462792616062652059926813971376901159401342760350814306785519582587297358503076441470870209904706098069576517477063000418424266001694635968892336954941949625585846223502428782826298134269613552441383618584141435637847483690597202947843907937280542684749825676713705189494667845145308677826514866953164443685511738802669372104066276640274521905796583677835330354665111367197919828039270406619350520350209782499188731991655729089465781677741810019966674579703490014786745284122064084757976835385426417461229425269567674364430278436376311615508805264923392382750993712808164814656441150175398275922049558877766425004044749390298586668465643819166128550405360869429801519745588541591744791815674464271758738143534989974270099440609475773783111051648669972394849357632281447556014151358429472976423967192920382235555366003377677542552456604586175931736234583423776279661545699909849908504742070857808106902333996707893867978743084908368568602604728130407781172812488205127836726816522326132351890502542374207246601068365700590598786268940777718725909378680082140563701615390124415417323349853497868117729732971030170713565053136425428855750369110405632740365979170008907673898741872261114902087891725594978620564858680527705785841601970630902526066634394134021810128245481299219546985608982373829059785398602351366821404587661644864279945625739350524666003684829177048709012241556862545180850298442143501363596016317181370635374818345484219529845649118708255885307618870749967842220396663498263501018809312307955892631692671208545990602414976813341616229697869376014716366890010151945869168227108780167360380009146503211609643461465669665444264107105748916306098445575535329584705419655311091147295518273560901158594726981744449900536660935004514791073457438178010243422402427263766619814603201434080397753391522369368654869740902119691117476675478199527648072738370685508507425204421119301976503782524449739371839476875530175450815152169741979228222930230822917353835994345664974416905501954272677391659247769984259859462519024129355636935119116879218560344404968524505117916926483245432198477130314720064090498078338312180930011696927722519716754941897353776384442059790533603021888087773322841978434709604666338475843084754036353411794953649297024046961454322440227088476528330285505036753233966303626173782729077804664467139827743976872911820987949139426150074644276697504433763323599121759041364970045810143633338757661352028937692343752852314013546758432018576050988995234256591757716819361705029723181699913027710360813589923934468762210899556757291734887247488769887637250354143743885008910679894742914646732316607549271717734049399213622480910888907152368863011703719375630221321003452551111947068771305383282414381606585735454565008532858239497293706321840474383719826406683801418620411170677906825579670990525253220223018296000210506429421618890717237707274253998952856784448060236561190361753671266027759330144535249468171802975934356197183010862588672605217038178924835589036828731683356432345797520461249845296800261396274566263212494554456978868871547226618554393971439041435717811882171971642965610216129026327934528303857526399444813833266839057672632618396324918350111606338596621221208679024610936792153047201999119821917944502983994359703651474305497436701469894536783005181735930740176732958869406374089984158105642385692655125322828373219385223713336780944260568732473834093902726213361691688781105693154793810747775794175934559859985089964999852409922864466719370620533931019461429920357141890846534598311400102795314165437599720973969527163421368015626230029719383157772185635795411091143422968137566563941532461879758118176374653781675362083813387555324956304201626373443318140553955568910265547785977129007992735774378459872000305907555089335552176165312965954740345215839440464584868344468698482754692840479736668039315005455234731099116004699259048639967427576851981884088090333225455353429370748429719136768429179498991910109730789055459618479317708190970478074425506044456706836629424375638381056421748666002998707268402985884326086803949235000866802171637194879282777038353663400618997958675915756924914230336845953184953945438552324313962100579238369078371979370772760188667095893773196935506606771448522552074448987032880576722000607897880722656187065599415314417850436835345085356640116857114557060954337314431296347596346724865234400170779404821316888921607559687808366448957319741384082753238651004932193471751008533645532266750182745754462857187420630468256831714618705350228256769591853544368068328323351774170313060408479573878560753265417484705066856556735458755366989924759431697990271401120379352415319849806599053756424506885638049174579524503979555843696849529981571796663250498753284836276853808352318745142944875855654552449162346718869288495089198471863489054851058545685383457475654054047277833514857464335150293048140481590942092810403540015399189845160875188667852573102152211128422736425656470233759427662532542962458475147162032762713119846498187424348663769015058679987055901041572310631311628908943366205238223683859266949566413522366863401823250846410492006005197239078814689730861632594054396589827142501948090498421801538246940018929164957423227046520333683495847934914747295755723589029503634493168199588353565282634497312000222776748468801139118283724192499954813641004253850105184234170418226059481677213333086685089721231500933470211227860143033820609320292161192533534128082954618802917537334986551882737659622296192869879923968467357604222097343547097861612559854094158220058170759413969700207971837442857983055616239554809466282139205102389808087359482888412302609562156094527265897745195645821543580256151115711285331602746913055953260601656440784337062049733734834064720405699276756365597721208853385402677644198397662256942463993846068808480907743910037736432635901967000812066508844246530069574638679979792501353467640476910406365524448477912603516869127518141127645677507695094538795992390670025929112838669272627978206745955807615079967434251459210154979725326871831652025940133328370477901512299166944584163838021930347830149452385070018454895208476188721885849550180309027792066971343696973302608458133761228191941886921793366127738958208674125075002148085141896972863701377367576184738524936894567437708405477651574485281339805385289828370616281295776483651840773736068790084209740838551881752029138105787297584578581259589005617210169570462253863575453799229932471037765405957635561687926782007389388500166632960181844719060187939742873475633052794212282965365758155330260418177849659511297333136505491504360715276480099489755002243895325926435110349130605958131319110093168625900062442224031650842508759309416537035854775419687132323035284535253421485279798768224299218375833805605779846508317646405071168356012761844647280402043383239992071239085475918096898194713841394444564630895446473990853534353159957874565395149283874363558540740265178941217067975815977312978159058650850550020122751418813730907601919190625499308493799523400375475861880437486857855923809868894509032556303071425247001222119898821198509223324287826208828587706258214005790299682970177014692215637115065366623482853570985377862620575675165201920927012757264898221521644139643121184048879693421429181695861714833755013260172439443087723233361608590684936406976609166102849426502860762456598024379538858500385238011630343280176772784081317646096317319947983129028827267917522206107842508824989634035309346301589777916795759073423099931757263539432228257378165440665813762345897668813442728009332688969884338948056628697946878427739923678477121154501370229191228648019857253834294314689208193161261459465775115022867753321836808703025376722776891441442139713423802836806603701953910579701126959919866618721698511221189214562387359112280076797408632507645388158706136600740152881663543444256286959076855751371247285951310754967460185100384742678508660161675167684474407340163840353098263047490798389616495872714285628227196667469593527845166194187911535136528666733009070584853885228572340972677652637038934385861949615811987444346196818297101043317215689486650075383409015719008970028532450506559398972172491350044969824748487509114794081160482879512469730607851498118900910355290510943580244554198406055780918295085188524771645127754519484900627598289151818491846272467757301238321443337883070719761198065350424992175210442782581351985952027184320309947649809465958238933788750385119031833094278716638576048425163174640374911636456132982981974364481229729482284662983023011274490084293094363104066223643590666885593684356502465391918038179775064909314705443436785362098566409234858625985803737710273358806344865132029187441324903942695479547958864141228819737389240861978306189209954875268134866990153824034281794012581223242062692034461395057436324285978160226888496152362696096456312429019947535220859229671696172417146299027867475169645342977928019393951536335909430449672643002958700253696977350259988666683791329954714885516393582961651554180688432720942183483091870736180444473110053829651131814076436914045185731127666340351645693596061122045730778020913666774610342351959505822159813336221274158500450932142448455528382529425758040589999039876858025873571311781836982418165491991716465125812898683699154546488004524579004877131103934826179825756032503228247425572784813003975346679417316233826958210795629010694246928787162700846724996703102617700373602328536214753557374640109595489186453588544486005582175076811375891023019306882239080500241407186136005949043892059907725162288235531751370176184754049822299970950734296506927843812402390568612047159065044587994591700224994928351969727835879457188779495101609845775573122927074044608170760580511706423702915222998031436346064822943758736282377429502516706282603326529628524101167385698967291381676409917355737374604882085862909585779175897486087180488483872305278424327613728936415604701675414955546656050375209527481839504487482281612698338622692962517018161118250115533821996236478314289364223424294201851979022996643655770687211877761446839978085003894594596734680867432266080916335725455214321294462644707887434497629241282921932438007232947319810170944166879298433608817377126947534062960451310999842049004615772488041516057951761902053776826459121678399997361948563777878703029397055921507938798102107031217060201261034906572895790923389956064052754670458194545716879279210614802649364937683093331933515073337132790904350971704471729585653434587097913990866759027197018115319388895339525442249540161577500821301797499905842349575918211550562960118980561515446847796358309055702732702739015441295446581149186273615819702775640865351204441750231699459958408891499150476187796845066247051720542649065752444561644949405106589233610727879705690785484422201435617137063950181880392659844647671769387332788068954098972154548545048439905925770040293644390109067228139206620732460688463200089473587592360459521128303463673636752830509603174996992665117455789726562738240181783998407418717527186856692597502057345578557750772755072186712132530262212514099226766186475719667135073732426082305966659851211718148637302276385181940426030821613230327491535250712630374179811920765455217544876786460317813983943770075472273257238102788038837302561979002159259982270186968626571295531249224165473439546648161920792725578277839011144712384973588165040064016382398443892600832579025381132352908120162125465607897489061775835491572824648161099073371388602647850669975712113905085661746374434482131439105145488224883032284786641843310212790311151889382659495919676493740555885184981200628985555134349214574133046924782703777729347511844911624549079319605776897057607793579924594440958446251129443355795728414575772613814340649058114241427529115060671623110015699948584115637223224986260355651724626241444572888685672602696784864858710029374358005577591733648603249672686239922133011716358479909779528535844162605151474445460367960238290758004360307576001164353224273210905525002683121732643261979176870290107966980305115287444137313832512079741315988175098945129419338399495992125787712094389195724274980804465229653992169896376253679385541124539119814832452160788390617933794435302524417766344330617255659186546664782764487825529244053993475516569033180908580405281136873879471863496798369538160616610981427576082642721918533257631333978958490570265174177711020381271892082409274783758311397864992124209426254271355437609174031357225698214260945189121053685612629750966054363461232237548623189330341296423682318110884777762943286326895422561715633111505412754809606028639433280960567586355278576770870454241164384430981255516758222930903064867009044807959425650629661089766964792488938227455562398355955035984729838953543297326143448544736736066038501661860797361985822249369808634948807191173827202000187385981460576305940419581695995771365600322871546490986245406546901547981185236313567963442317908810148987446835601525903985444786066803714824072710384631017319438367379646041687395210435737821887125805866867113784236199118740007465251394351840988025505526613227716815038998284749441092085538568892647370713666195757394133491436879047331469494135205253709287847962178280976496675674386747883563313156768103389104442855243508567490522650225115690747867084119405134947858417766162164356715789696665702295401658934444025091616094790193070655185020434116192501249141187076214849552859806685591240092637662295506230851802779982792118229779628614914152610109727414354642143767471421802469244579651759902489993215398576365417618759828377578531975767988989512018210984985085772962448612443321217312711316674556723718552039927859795386967193082047839136611121307513819553402078302396990562880082814942853553291350400631964039699605142188331497769486923425162653009201177355037690414361747140464429524212875945846571904067994705057591707422917052001151528535473442857891789315902346212590404425101577228158320888567098177533839067860614149797380844874900883608923598986365065254877066513938106992279639246854802748674564328629657829409813113465595621106899964131717772084275558326998335582597266176235785224594817552516477419123421665081296787651286155710824578495986067482692098055977035650708252270456516524927951949213870471212158663678325603497299709409795905454158898873723095800862549363803551290738973424716799380423653903142162650103373387813048172402086093147907976469281279657691681817651042444648132570279524031545706077826173955144546720175671212084053265513041427741536851479106375246503600953192584049191640237423943240906851960987763025864612190747243980379177425292921503923930134567966551020847599695658978321614348501588504147661899278366313821066082845795110735694272497809607653952354553049621956265947755851629383414567581635008843875879226480052955565270084397197916730638669458414482468153100074103570966175896311640202837803918365705425823096599601196507904453505628423352825639591626685921920598857358100352557780325710661469467564034124103638837488466908731283300300964399825458151719682574863649495338689083691953233798730565409994933715614701885850269579362213266314745092154652906793222343253644536374034904919787529588082369225287282327886129249122813747782491270094152257406688523711409968312232818787186036733402234513637366719957756185014799790935255126097462169247234498350315785321437748012002261220597188128319226818578886095510078574190839569049683234157870315724086096484441785431678326268746272961623433839244152919323530431456385104269636103217692975733490925240616993536391963587612347754670662200156715175181733547287191250366643744826416355297901770691356566398644589078346163309281743744569877237622251297622492532769218175688573031897521201514530100469274773016392228815986739407011748768881269975971179835910546969814294144651583185698371001569653138743559793028201866512614791188715013105864845498018915486932856370381888490622354112385866982902784483019130834107965237772366431288841583099670097022847727763150024652231543218632604690593119386889545866823581388370488841590691072866293971934578274075398514365970926392719634607391769092513736153647043711250382263934879465316912861379479667734030898511714872656675573090833723849677827401459671923187120652756514830542803100742629592021328592703342931121054106393317698205437998778532086502047222675191189895081747051134228019003738751454666913701308999820692061393193118160193938179623097560969750441643005998784104657872676027215746698801578842363400903342248029024840275675979892113367160555644472611847560074506992289908413545479661575364805966397181747640814405693134945426669749189110656026644324810341320841241354377205715677008298010930726904066302478773567538870831215487900846012345857413429365036488421085637765141854923923487299020812646798463342924153124814212045484846709044012091742954181217732256465645795121407005539664380667067029978799330860738135124706601693823197002847642805396563529007241075971726805313333603866004993399525977710586308559800806796400063043604796547114693525132531232637851973775035657539503605513618318372695927602652516083615195480447684291318530612178605368763550332735281055372500866131029024382409183443115749970334927586859012730759052092001779391112732182313063777899557468524428015363575518314230051208969063700421926265204864242391667520037176605570749332269996462866530231347894788751996220895466616713262656934246132900869790789795976957432810029145951191347854891171548400781698619246680636799908540809757558541568806049912939962793211189274998627235228391592911335609739080686820402161049570962952662784015970958859819022079530992055456510139456706699434725290503778396186206764087807564489812710383798194744938697823055734766093451959613313465451900208354367292174511153185598987382259739728232136082328025816643567582725309105803932302704013054561698280427976606082231044677641037440149451438354272437194488192483732321786075779292200631166214526447159343153253083611949884119746217529587075556669814535818200805187735724369238731394734734217123121672091570705651205352819610363989995900892399483090500997238615773650506553755394121316167387698321240898919562123427215751498264237343669075787823944294749141604605739182102476205587986758066806495240959078842644217532018524013041137294457489518784665708879170242954326356896620348880213212297633634889359827898748040408792908346334055822992956189367414379320075895315445040896744627120315688262382412929514061078495966728149671571137502615461508133826657158489909343024231917765276931754523528251038793254357751709745508752474544703187795369297415290776780573366441787050070440125381801896995518959733362091587710441936261380149157878326602804237164326484192871798226046241962862068166629039075716341720013264201111692595552284972851525078147006911203076979083720982841273171816289810008490159395044225188997556574732281887086181311537492949726129321491003140100669124833537736749074234919789987289667737162488486595414807333100455667213452802562234205320142486278210185353819804384358463277187160791436754541604845982195755256739465179788573470042890207576184168141844279858588517858207319684872498358261033250214351762723467253521511305740955446503762967026172377271965211619789632995775563309848155606010711467110521695638127498084015300405045058207992889884118781193475708337377024735314682774457320863845918929327515289499004725255056034680500381719093905608259636451300492889958297633602268380494967172103984028087922639886394284242537138902299909122030827835182875518923547349072089047261458502762927181728714182840590178796549705759662425714512056604528160954697354880839944783943849431051371222483498778443307106156133187157425436036352129249411692027300403260795545310913722152206440304959636700536452188334600388975593450295326039873885306459033262472761784068270660259805955579812225578779305099524199309987174429007998890700308783870503401123398162612416321485388559358596262911587434691980558686811303788464300522800807256687561849955700676590021393238584442666381866207210121277213028459682565371364489798544790454806227475293361226789199790519518121266408332431330222121808523711575919954166735410267983386482320503325550740983089330554630790945135373786352700840678939250852531952772768260710191103964878878728640369462987800781817981829093445225885218270586922180981380396295527364034309668085869977548726320371296673966956305905621432667461272978403818017696740600553373858687942296270673433857651513917750723542609212169568402578976311785696430787119841511527221938232809515368906695702004480382655974457094862657820734154640770887387105676614795611941885880346484660271876423273331581063256641247335846371257266578358596978030362474361011359235950109094532448380759968476463687779479484149435311283020220372956303193425493869279913749358131851329331751189186855567143046707104117427164316374913627460417986847626345384363181754136884802079076597065552551277082629366284344411475762577430503224729860100701219361221170430043385711085822123945859591551898515646975925188489630490970069444031460666894484692468361679911420645904905109397570520222181653868107308756876589177552089216478200603042811634909413182755477241303141513544639605599174610560740379707480882174137844751447364350426877891384059009755375657359367619372411654246368663932216875995460838223676976115943451926177633770098669498782410162309721582607871685144127737424456842903323446127862601777336351204140673369214418143873911767795384634292159478419499666949897391118562398935899909208247427339132806659196048336033856551295886616203236919554365561315698381048842361398425898172098116716817740472567542069555799625918709215705013617257496411447644122820122495551697140258166436311234182308497011458018870671815991336910622934802954413637560519088250277899618277529096228492857261264720747662606224232679246069620268839998391093666976897896825724349900471880765580464635907157769924735146493720347240335043110241786320368771639136766661328315189450350594424251056208251996489929783338825945085054834669995790787396209500984728475479148489102891548235708525437237983683392451182715422958919215855005067721605310138568576293655082625581862682689727515480180758709987058834682216253957479988546656906624386721366522071885133954316734201553418412824210345526837098919629487004366794185589469756911323753069882126524388466378982853695334259495368966956792516677301099402582953663686783885601882482562785726248764098338153951039406461257240613495582875451073942991794285005033874322037979120984422971821169437099686678950906266111952361077485317330753201275092584774045814703398446228977058634575550861138478160209242915565438459343013227474827627523179275056176173524546731759236106082501946336101200820414339988337746979203318082574499442911406476345477638659157176431143683978296665567828864659007935064668119277540513262433368367479927895542759114352393705984559932976673932913473013110373758307096842300833030965882992551575932157528203728479767029815686486199040542919636185353808703725617116312815067185032406254507671101034787115718872872273056528517993329589010349609703140280564155798826115581681578747730364116757268549526552885757814353184869042288585143038126741315634258938015072291952212023708534403132461570220841300352676916474427548969292144594842103866559276640728500179277919067808262595072449756196570503858767294011234328801045791855281257235341247287648823838593034576181942708165145321916711354383564429054732855866674098348448158147407586889722416978361847713396702047734070139616288517615064261605409717377505665866999468515984847638352045561257494626613335863069928210956249359045238336098527774491578797129253327517709813590606492515568939624690568764067208223408803539306428061949366016121824980037618538924470712584549245896850223162308269496006398131248722842129586070016794166197633306887443719054288330671405266508512776236524619694799397577153637847888912147017588286143205191403643078876510609360367796397592602866432241812748462435789736449738283327099853248290943387630446919961857137982801421167941573250825928908727305227134368763510397559082764125368995890727171663750949279556453144438139370839098109686694252964069720083938263967496694926762615600503079406238549186863503167261666621937660704195609986459717107622192396886399154744678813396762545860718654545862235649273999908324577661985422866759660262840191691383526353188765068909964880417601835279620753230943844409336348447775481096554350978729320284707082877933345037674192644216152685156836918574555007254795615625020328868669562987032468536930119910343055458305084370776055473526422838281942964213889269712182712230495731480158221227988065661917163576635602903510646774665913833230955112819617356565610944241244943393528452279006573070367921946750149488484405796825645925709126656267987677507336425140043670819585692343041599347648774657603800260577230729457646823143786930218049797113986869477321703127532677848598336852694287266724928424591522729621591142546852430406350337136184085396613975491499968659613975806150862618601769553469265439669024989208509905974513880806664859881417430749656798957106880853437560494532894629200245046230812367722824485541353103900672934613992512931253226353479950262094206699055910923692170144331589974204947877626655714796824967663006424215314162098958320822919219136393607757112659354817557462184706101466440806049383047703231007227420630043938136471324632846621296291030882256247710782146210942850027597341646243243264122144195751201353621798080071696217625204807055656653569197769541348426382760113826320244806060863357151788768039923723549751366005573121664954794854915929228584914051490886911497364490529894276243575718132148945019755677781112758554228774587318705453515449374771839406067579424883524984697821575402860614102793711978786001411751997674206233743658344206727991634214705615895396545506794292803486084051083846403958129569500898703889107317659660563390858170384837760415234679118750088434858319156106296543484237172425851298023341083497478426410492682879095432921169143733243979380599089213402831280045630164862724588421289593031037858401568183461557937328166102543749629785924983658509761704713314284445324940183632237841800460768985573714873484902011497790318717424782547732188965908532473215717167513290038516669059438006362927898383462448502511650253882508990074552100031729229511302761090154194481530984795020711891347653726654343953253271382049749632014646098368840179127273151613277176477946306249263356297590971236510298848508290555774120239671979687579795895282377784633990378881711779757084109055393505364133866948318294508683504417249041187500595306030254299532022138920901621574360388792549580462654596923731283038088056013099976700539758896165292616979729487500135240200549753786806754760827650328392698434420584541739947452198160973656979668482881763043810989140504862174550702797323237333120556844125220623941671530397907554877188619382871452668447591360813224228758921581027506293060635147393854876430712911037164365870690502536803548640829279511134113608744059886212365572311793085859153186916985212384160793780225574857399039591525832163232285301263228604528776122965878216832533447785804603227077370886847202218494023354545109414989959010884802857506885800998265422141478887698903929534086559396243716357922034664324707140993390639942693031041965249449179489769490508275057272694038265285775841689137229224082865899904259871126643771301922175369707861141007925419361121124741212696019940855583984416891129021681517966653346208602748519777639525617555594211412632160939251077081461859108277927976038435587688601620377678000120420580052584550639937804242159368293687471095377872777369441892321047029789718826264868605705190728254201804664950934031632984730563963350080156959603863988093580673360850219624071642462452078553714522574398109959315360102310282723569475521010793586994497433536682910395491567744721637159711479504177108768709842889263109173249128346645772863516361034649161001724689613613960624308272882372913502613255977430393885328376317364595897656904284054075532416164522888630193341803950023372315552185753275262002200464678513086702265461663198124821188080520796820750653017663573133193886141009632516204304421028931596436938181223995264519430933659785675703004224815315429487939073737087866417991184868345735697194396996189103158474053071622668720967117947850476493683391944364223533416034455992876453709168701489553624060313153395752972877492579428875368491084747544393995513255450885544594561008051586726835480488340325684449421910155329788674986139701273196628771687158907465172847371668506898093159314441675928633053369383142033741139490595241928952774720227244360066264056184641759445319623201962483431033760504962438821423197700625437774389728875090343035233729786320712900610959963550796403199480727883388151891985577899838824175593183568856989609549584605408779495131773535566784777348456660926672277872897756060367539047344370027207097214409919072066806397691009312701349456008667027461631575890326891613674511658082446368149324292215133977946894905819709153271935040610563602295048273952137713743671865806737892112690165291255859513192887249585676445663324189649018924859636752480460253633279385196579606903024224713327656563851163054479830377343726684688675841778729979356924468654822297714985283080079512043684160011265286887109395552530496928390594115023142463958130008283825090868262066241582797740373546849609858005238828025605236523369463167484441722237536823301199585250637685474994099672315469159293655433360202134762881267386455361639513573198179566988331842279942082659960789050431864320701259807499889735872476502629501136979219086851501818372139751004255056880053936959601195567867220590137766998618711957027211317800706680848291649616351973640128861534433681845973560329503365565120127663686689803607024088611839041228388745668261015782339373356489685487689304850594957698985682143164189026328302226598588940951922172758644245936176863859184956441845394338497797423582156271133026692784386345227375032677296190250892720178377409957044073762841656644419634831949817333727427023919180650938683297696455778015560001504751436501540768880766142888937559813092105541929434491685891848704054880716731442087871238782223313702590427553109407756648535663370774289745144220798285710557275466206788460979376797565162858270199720290610541779230850842786145236292182124329256428692833380032227575017891538577179028307280094323002753438406157821276339296971534640061695759183772939657847975242999200459551361860293337341554127903900046860488799025557873875799488142404281065256936778785931721044881756278258888499759873999559067737288871646422756925543232938983461624823681149195092214506320031446919007730727168696223773293988249610097480459361594276304057518657958204960782755566438391561214360327592312480311576890827159019028969947859667558093261498509372870729633112406650745781150711914697272378741803235439068927473789210771453091945790680746206395606516208336824253896223078147800551587433474426131208033633546521913919632636695936150799604145057021961773263464858843481698295986445689740103722697887459743230263555265392343294283511089292812754325108579618559427987075745811500809242815974821220647337427320133899827004033725731674133855559764902744356303522563007370239627950032183278609259135089398965897917025455998051212669017079470551060663534034516054875946015286687795708355733536353797054148612067477701638042618637704887707830897200811159425501097593122296994040701033288492744983638983558341707167340991835513923003942018034619558224238453181796435154115480587199004983369121185695993436541552323135538316364995112227595655638774412349467321396321870712929623349132381118680561970614505055792395969788003141348133874319997750626340863628606472010110979515980155697667468284118978715688316977254989619649945934242925104437172503187584744459559197556963952146776024246380846536651683918717303346729155296381647868027813911178363935255837921449615372578414619778017657721841863012874519076857948562092429277353514243653516041217128709867889967292727376175063092871285291142789910253201516055867699250286249874387076967575772713519475804820127179779196582972089185132779932515230420107701472950614867373845499937727192976545103068372027517181389184484809122626128242984758638171439631170904624067675535577012142772197053038602056105946482611271060556410485332913528483193860227308720571687578587491241682515766735409081324100977315753759341904734116978251981575529042986093341992667641305190956335578566082508765891657615566333525174813846708882011900623362784381983625919750991572998818288564202727712980045944277892398834128785992817025237570328205024167260716033476218142897628217735091663989316461481381541411788596367436843451749345792281469717735408672109571530997144889984911763525443286401099343244821364970696084572710436672224188292767692077927179996092986658255381172285257775432309049302258791327612159544879017957683983222584143137094174930191431722582348890878858463129714304188097510308880805410630964556388266219259738465141444592332964734524598312095232130583487659693945456096209386528810735191747907248910699994362245939771496858919313594955002638656170517428046901406287261217841790147699452012061517940410707908430576939708560621020823850861525767819220370678791339231737200044804599057743289669772440764166557235924478637700649499572408898740361817076349137809302279959933709341867593242220496914594467887636026895857911277229195777209787771552806134139296295364972978699737928849118942114802394863671716081839023548026991031192304267135167143932256085054237977839689846916414070092063659852332116479180074439968781746405116764802708232635452496690398548045152573573625507447234496168079947548117710880818278824457511113765419719441293028064887342882416152055465175485296108830155620728062520913191729026882044423518766565715930653833977130736128951022922424079981645077723410948881552904028247689609503821993146084717384846264971637284335925147625298669809829872684278694779620911101954974357823587306269885481887798096975063027006769605706989254048761951223124800767498729311112961086780544254796083421272330082023797010535451265727505754679870524915313566988404371819008128456599659698673332585570798264902531526306213903461173948875128831357817424019885994407296320285595552232739181786858551300107887536333814173766213909642500821460473525456889830521602644304912606046967844703327636571576698482355785052605749995719941012284958114762478265289722937740882799814534660945947309271749795179416506078724568157042028511272183991835315274453732631217549841124077919474396936107829927092174649081606448250088562496505881353979133537383483596167029360529308449075458758383041158241776754596542150150859178296092357004774411473873454457045814913320338396416658633594400621844802485463995021689150615788069429849887219313099947918314537473442992116606330119845065017644293814096485281489870239130441016386515802592479333594141601758130856857579047285012172734844931962245458453010269364638171285935340968165642744639779785051206209805374412736891291385320798604152770235019501334063470834347585184685104162114048222503304590240548986882382402721753924926223111012530100357632140345571804443122848994017677405136803439244610053589970199369441335262117504444919910763731120125522774195370334340532930184366398252243136699373464734713695825266678979819926280483639242934171961470831631911462122084652451256467707209398411881795344778021819460306668428670845213775846923113542678929952182862403626210428603767577253917066348318872301120233275708169583996327486152163602442681631434992480646822267611432832409434388181343421586556179259280471049877058436791447349801913936937301945562797240235902072368745540931397243489810622588449414865785673715566082453336020189199440412586397194854169465440148818718467506457220749181028282964441500998986318665999838042120260609172295381898469508882654474036348786716545582831517426797359435574938748628232917795788974571745967876442367258795618442065515493056816328916472047501327700838513492057245610238072917692972210617171839676068429296882398408108040767451645813312692639997644389912446765534856381369015204806869622132940444325902012002845211484178392532753407982704901038653657573274634818920724650440265801896530508638197650227064748071966825763661245928013708412947040360908682529942827021661328417527918929436252722067994242244950036095326620444094390050680507792727652117261812268370314034826452012043511000924625526181753731852554190435734760655630464691979536344071011642506219582913853328072739142043548832480219755481012348302861639730904292674860043587308508571985909418702860400033756037838002844775514339126029494638183128254353364587402159982538366033097906931431703620099949939831644207859322553693031269473293860126194787217269947198963252105974184447760321048622692676823218067666354993266350922347208158726503320189347302999317141354034123674084083311733504117206947735281321830427663677793090848353561440779329666497964193571461450283962628469968432185050791513728349187798441174352150244123186472002923701727253731734247042429677659965465272267095273248052836334887034239808010235470423922263037631137744036184709215041144078534055062063637605693119572234340723650304328383827120576517162358629556128660950563593387060906819583806665063345239118736508572835960888589724265980456333779440239056727771836592229878165245047927851322417050280864440736860609029202803524001925646447551072717332320660697253443160606585187917217569733259002730504435882239549563651197337896840452477044070894785992117364542711348355299553067729055628318118799113500525054843452005851877303540177355474992247501373137828770896393928395161707072620174270566027673604976827439843476443468034988858551459641379957548697801522426129296431642579385022574967222642274297828147002028181130561404317760880549766321089392026757643207137049505216072332774663375958730062958863801164854390692511310118778257779845330773790282067179251578600364369687617580069779682534052366044564899153803687403954317357220072446877840190731336467419046237581047791895620675373496779907209024874726642269794525349668594723994895798517869817587220248792606873953408701266401117713150097160353021200315852740023398077558174365973731532303841668051989782835743262059130933640621532051361742048356947028467766674032974564477684068149562873026891548752195473457156948877655461796843969901771334574751842772607723389341233506900239189936365165901252525412711476627706756733436389940281997478804307673972019950631387694757683910258701589557470437446129392665657431846262360364628932804146347165341186526432408924724112048228901324051693694570908506555860498042137347133008487839687705245824132936713533481704561016334557165743941825180482967768703037325473045198063797603578751589209648100108672481721541095471673758216586363996047556693930338170682637681971978935034264813677984425281092543298034570983726817412120168492616777454514313260958653705380560122920843275458032442312512828228208492365687757474238990166453751233203383235839048743215380660535171088168122625227743037428009774439492429005858372585147384974573912840020311331281648832094030257164113018368372649648604225581758730910393272703804614952115230133731262545356524055279595188767664200798700878983516741995862696770516496643980158503256127900956536375088883768636847771528623097099683093799420540494849534181423302556374157752617111544749753995365246345765439253037393088415888415054793397579231331588144932524018133472745904708517385184091049919747651555134085325306278043568272651450751788727578989033100737675021723545659905116702852435998756222280284172399654475519214859238670558071667044811515374525195141481977486851733844739603523016788481122903030091473899950102519259097326099884312684563227058411375331783507982672639084111998699754549778004628261711050950899315416396137322560324084084274051771703270059943418032253438852285743100000069410390438366644644529355115702920045887655871831007938952571650730195348498804045390348930889135110455090043467930000591995342358034051622683722041916259568819926496215806010010607358024282796202630951649404204657713352607195508638270770424886937076681265200871757578606206297707057177900750837753349362986746450082823620648698528271414147183814663379955662586502124708329575165062923923159769151245210879795995047539343311932618840718022002429636848455848576149809906545115832950961847960145543726473262402331748302330772185908747297369234329812741608793913722137661843191579650039366301106836719314972356787675722324321374263393862626129429370341082924929393681850851236101730713914228675757676313819793721373145923022492853340235408388869264984449867356730932423968699795381217668174258348958097636049181917145564973868203034589906857078414715743698935785165529974542246910384234099188437118530672926187880759430834362079695316320691841626552502810920066555723061716219435634390805164796772291413338611367129951773064307086870703210536303119907586582013242596414152056142246630502752830006371229785722169674706719542769063353016405598948608135085056497035407124966362965108021154042965045650035512368895387531900744443509373246910080466111755740176878660675613900043598089147061496520674398031060295282873061465406354129671501884430831485692125492114383107391836158406207278718661463294682104094907696141256083005602170560496026870223553124768057731467363881468273406701177281902123211930198012045008865425482051129241573746259979377418515265320087067217380172518315621525794646151408817833315306596433345067159036451079398450522029053265560550398119192856519347991577523860778905323521536702091861537664319648455340802432638501550665883211936018056642299149701637369403657262854164079359005915968532038615760076799169610446941978236965207701182808694676456108424379334565277265212766171996508568130386453587146627254607430037465299627898680962335563864598701340952214551175071213758370564603656924241594705078150534025688688830512766214889857779841617418394127091260393291927478154560542211520806958407037318833516135746168256410734608515815189905945485158025848898132913492418462248817411137280693980773235248766536564768133839736897910801003994393659866444068223130012490661215562094112260134071132047852798823991638837910290699454613878853294985880745434839713389370363158584247607619532165473117759538919807050796999118817192764021681819697420615038250082931877833330819321116412009630579843393992050210511776660373116682780746662240038328026684936038375245490131328675707855225156730532673884333489659860537423082370364287584581543087766825714411067230285234208378569092447651785829732079783568726192164655854523946882372430412388810964139476078634580749163444049336517844698615637645227191859951104005523109070621479004635705927598107579224863691044041372677853861027215065955751877142004556463796725486662442128909261981138832890894187908288180187206210903542867723788760821017491099063720133908672257189046902386444452358865038339394320543201797927825412300040603620110464325720113256807197415714706475705017108329504278718416269917962591949108570083712728800337213357939650158518600855687894863319876426264385754048652279851934950589560169638691134076799866276541683657072500919949330918952795804987702987925263426347453016362744619785333502763816302939758571647502365132711868028778614701419150564377912859128788582715080239884547642030501910951120152428003347081226273084123927850689689292068866573287834933462084548354962900597953533535385455636672909456740496518453597944727035138632784163301889568288375542062782654058881802444077228070971444107984689309197218923905708498475421076318554260776559043102535965582382590900163367024736354449186477174236608086430358175159818998213790798553926439005099913261869579018171471586526042076921963763872740304535316378672216015935724742334182467068301853163039236342483938643794499811261247631806242818676881155706162708460006314827240564319429405466490468217005355388286172234331721358390704070448703532131284148814670529768944530476967902890127486265668547013512959803224345847407035208926031386438508752464587489385921241634080664239123349084859635369461783326023113504812171257880947047544831486972228441736005933305147537514312688592872525393594385197689570486714190122827367085930982069510169139746211854080525702212525756916191403488480837332984573360176610037765728490175614607035284043921698941395442694697392918189527933121855916648966816493274196409403315732504947585353444783559145815142932791149783390604647969193994198530811567187006367977043229532446570807006604633766250038910788728581941315805958958481837815798084730929551164311523869054097977982576330418674952133440008946493067937693285977957230573444085238945117111097085547151450552658114270606690183762762546844138145733607072989536605480930625137729676273669459707206283692376854498402167457554087401338136879733877925215656065348323848564377557937674547404559524956661946539677591987729628646333669786443083514190982390900922436719601938535583672630998185299373840835599283688286111732394576080905654368598312545232955734677927873592395497870313574254921848737113631545614736652908408588185512044567139575620853973385649254368216218545035908619131392475900684186597140101282211213759647337524976206837352368099911573351134821053543068802057947223778982468078963382123023438401992678622272989725090055303039461856933083608802447415309954932627488429410557018351319145941296911070845007520106287104584014272246428384069467274664554577981329117197627779214823008441981727700498325387017239515012811585928243873919256035754798251252802887350934069780311851272812574998137799920929544309934380288226083463877533886530975247888333278062618203641300834942385529650700932888666911868542213499160310115053122183588750532569895080601627508782664987647608209249076781551697946215464987082420104180687735655784037214037824135956114481411398773188402493872182258128838031809619754421070746686459977357502240068231262102285752686693760660738637316606198741625600951194391202537738118152903442438106204155495282806461479418841504941765516360271283941423799626843312560048389844279677250915803924709808518562090304197702621969285674155660163660875846472585813393069893866571731793331766565779962452662119911958901850657454405892439353421861491983373647964522444942918961187326415472462960620693214377395468816831542103437449635757596681247735406495277870905467117431837215598592133696305235918187516317269877074571415688167113030295342740456628627965286442937125305060450664623003431800043497630050302474512109652529740706627320222678463236901446929270937787628764722224848093056354845062601152187580681172805319505622934421051927807740251623870494003522398271503439762490884761375977681397766893860765177183133665924645232241912509052640572814152929834697300550073063818971235541358366643346909260966271196797260010784665082943011260696978605069246268327398974204378009604817610032750580052162476788805136960017998086816833156437904193737787628284270295412061952823478034122371935343766916742065288430786479217696371669201601263764794155961803884914350500749899089949947266962831544805210110164056884584810579641894571784656696405791898582475025505313446878211157627227321159029443703561318950504868219953122414886932809554605543992960348711954978955941863053982026878857899903659420979545496080011745204818650088505426912530384205718807374647724478178516976809835515897435902165440249915222650149933096781092342603859965176895699230227402904620481743239747405764676988753554496934716741947169580520146561113504398055122682562323790886137689093452011319244969637041624283682705944396543540195875539928011466013393136493531226199882693664410708376165404233573092462406898533172848318803537679212800863616641407535771281684503380153343083095293414129627761122052326515728453293611459886311166845748971165378680764939972340082421897223743255122891551645967542075531117169981986916910623460316512405260486937872786648822786156586292826723223718062577664080455377411579400804630956889626746471446619179879763207364353764827174115349849881213005625996278065802678385186556452451791969482958747599918487897580314230780117336187542936458336672759689794624029330569230676756827595521487220246994674453005460563247110480754181350524942025608232057022514580015833995807806808910926939412418379726800646414457417971670776791579689397232049869607199089182841837527646982348249230685484141385673021534020129037510233210002343030332147575002791922994999676208340645395646134641337139261360200365939171359171702221120143148627796798518489451313729617894244900569575641123996560749533123347139314800399425208529011922935861379958912159287841864584611259512358901571458440184190407524400878845063889517051622675451044953713567255282226421258241562018537809087616616264405683497713455775015031593443783493236256681653452730520200147878025896878605425705765060470411270226210224523969125998920880071279907564378018184202508523368670794369067998899530501566729226256755128944675181392733303517464232645199076867423762458119934411393985549290681521806937152950954702848174036494105135520958535800258427153600051036428615535695177149806182990871603346141003101698970943098313360208460283346563779413406156252469972891708150772713367174285619234812304883902876722163222585338304613184747149183937347541308713271122140432463492515736795584240239998989248379867074613798727997072250250013701186850086700763241366572302619450203371177947126208373556228069449866648469613878270116825855306488773756263349813842955458507040067751802148737830929093542730100236821624378570281576867499395570811012525596817421986963363611206603614766023396050616196791226119558064814077675778981886465547311111160016008723099004329440140285082529262752127280113662328104632387586678559316432601056053317479111536172870197858887829947983869563754110606115762674334221920404210885166936615966739451569856794609745681988198267658622285912337716034597573928278846453115857196008087731372919092710296904573687870243010725946853445307703262323761489448478728378767306872386534669598043870537343066877406671714653378490114817100059967197881652662973326526330052275438256081725938327092311301942814185669592447019889102063938492931380317078458927421142303456991217396712950111727178510696108074642132306933933389063707441823118913025105670649298687318065060070250891194741422100660570342587612276906799412789816301359158280157880324839948007892727359823622975515226793584392604892794211399399784096485826746880703266043939719093493756513441696262808198919017373106923496458664339700587996855119643891560164537408117491534318105898169530376467806448775262173537983780733341790950466648336644714181723274710654718660284646453263364867108330601200723250640949544337320912022301993560710239719208152872026206382260924528800938575100905003138778998300449617876669656013084155901259764172264087712717747216980236658160751834448679157410053750760228144240711596091415117504964082041867698676418176647492903766558136863293821046175943180733758530793896268705568332770199074913563093595528698190868183597345114961876759333574710240152016243812467185381972623113626105042028456188509670022439523076347018272229325272300140542414705146955298390144226467812820644292022643048525753077847091986699059055060659453176020103789473854393453236348307177919744539249052415292387429790420022403731206248109475129358328127319742355524143087995026120696847233783619877519372492301968690559522944155757137027581813683725953096121671086324480391344601669106584580448048953964377700961225644764991894994627200152642176628977737066277039643700082614037909877104214382272650632744927687339331637548249851807376439016493541650098182327943690617858156201116489440473982322826734706768116306707626828420601386705458369994080645561437595620927889848006656638680147987795647135492739076480877603784489679199683796183425577649208118225341053922565478103280495105583572609898236340894645558055791325553075162524463805064479573216626029931060541895907112248221786038974175148231474887052035028876840506534899022781684195748155541991402774243447546523891353419962080265737648244655935405985142387091883736103453350914524604955759780603420324047424932302193205602122290328661219086240360093302841987878352453739170629082819299886293883064510152892291510928209257581739957865081279202295010590196685006570611762864389562347110793058898591530015493398496699486178450925678996802346355217483058416095557251851276421776468341023946564962620341500526664632940446033799714156901143424452128522800287291578922358534614632757310101487655059915502962749146802385813648725081708060937370885299355480372171733807162692377755774261854344688985713583406540700185834429063012598619716159085187375062258794054816861872535871974831689354534289479224527940765635096013250724778456625301790329662070299861806072454903579012985161096198546149786073370281564782908590742617847162618805901258103231999080384404595956029916069149438722901072871325387537806095412496016554959162656699585118637503744165467402758805517463846913324814988957557373901561171290243026088538339857073235913433694291605135712526375413572011415182625839315865945724252878784471553119991766155785021835752265499357306400821584811300870647479864673602468667208032573612279345255645012747486106436367341885554227598365826435633970113239661265836990575261319763693220113818572083492116637339397128748405673952238941300091302555855727946977932126801514264541420997372268859399681213161157271282282513179011321446715671300788981860638925526354578241047438231641773441768455608277641807985142674535623711121028942648543209991065518671681357836905106437152114497964575879458618774914485691336362192263070308296865318941180798895278982294187879662147930175169795731069991532507296539174317924163729771987207245709561920518553392947623625956383682749902207047094254847242770367555004261498071006430021411752602205688448325317578687116069886484749231950677695895158421107202818502137693212568495061077452071140411900674873541936179440282950378974717657042410601990925918636549816067785965475529165512340544250871385507244641084761377954630588088196829661053621159493163303272612744917922031074627917161849400110291637708391983154724790785494149235070634794869395737354574602513030604812015104137560450314084389954417003814281893638878571856934563931084589366462779809893592853608198451483637888907748512712088278382821201492453112675962365232314507287581332530982639889591873469710896313650570553660804061035855353269948095435401576010727481000184218030132450442471039727884318651478332912745504232178538998075078097451980926058152006357178552507282749798646585766674363878799751657949360100397380141190433002341928833098949415314618923662416829912910316779540757485467335650444256820908743919285358491484610355316960520272428584694035455919619861141198333478903022270398005197180255792183473164981382495747556793336120485969319852838865900408100133293186078217842943913923764043331814008979018403373208314242704373864978838243080094660646699899320337807560997505799295961835297511619831748868886518144334682903611839570992934334304973566595264160444960703078476420668963648211666505924812706670049019820417556877270898501567923347697825228798114741302280566898482638639004227756935204746283279282537172283830583709505216391660289150303943892661997486687232018184725863908955970685321845438058727086246859422067928871961658057310336769975959050106394580844682903313269339370966241525403638372798215073628701603300660767915623270011898375790141873218507505582759533281552391990189589670501996250253635324851609841425655894793095970714380107294755029669881229815224797630547343248059585442658173578256602103575654210740147674184291185495339440587744632816379015228093321873869073524630773658286909826984234145134108463145391484728801516628534694167994376793382606792235949182258157645526769728963411121530033319452066167483332670611546563612124042220953231272480197784354039024338426345136838470457432989233920256192529800898023764254933356628867526023116513083774307226001400895859872466973269941618418852552719074644716070603360102804595120779282265391125974874264004878893685285238676069505867045935997466647694737208824336713530838040710699901990997817111460996477969871251557069265482143380980203954794381037996277645370061464921085207911272064488812904863263046088281373726585099601919850980509063410987045072295775544210676341627738023497229813066020356191073178506319845061862629671100249296622535348582514902529049552476742613647289254707744277995874141155308165245240549603139546208766152431052898824692742238039002181528258822026764676451248727381783418626546310518318454444509282639476069090965706243562795403125303807092333269480562245504568869803751701329090833745252692171951835867407959239963034646368323714181958118535128390745128370692270105012784882180050672163593164849973636172773658315055936792251230205436103023419978905219042845970839119038659219516448211227100039090917605912779599510942129299880444690255817795999579771655134707591604050178583647519422448405042333874001004429540640483002397390782632510566358046797511784469973334568255034804734862933808430964283978219707877206483660718182304999614553696657959145109641315367365308235311218122864310346908724519575625978726590107654593393005519522864286381576262124817481173162678929795676650521465571583563478207111957453186176854740212873713840426088118388337387629901379448172199581848036260839225604633377637307201571790145407724858636507126605645168906728466462022004767214351343822643551830584916637148205974796276613430326106934969109218482122227261839123282557483691040071321480826361859771264283494859586901524197727726331282583895717274727410447130880845321545451721363529126678718422769895306281051794579863576144015784404854444815499559670328103096894625450518876619629211425661947898621531009488146862926991406539325954850056487963860576546062073928530251585796990039993143330493098660788859885900279080807349800694997877018388757696742924933063757821064272492089002264783641967342013136445962026450981690939017307461917189502521189632001106623622933969574537228594625396300674835928838004482529893583737218440622940709596670955905464721785671905710964653345173976154483876681805205332044737850327793166666327954631769772072654395767081714883747167395601073194319739743171433080179807071315633244586519138966291588371381229665694518101712198327331452627021488689720512140033433687350236339249843515464576665629317243529558024066391308596899264814663582867083215937643298662846786694716511646957087427337945116866940017020778265146517858908298601024234376356045099305403098038625755110911849458306815439804580741725857637830856560888225614198351516960794956008419867334888096174498116129912213699222003502813195478405768038324057806725499996399056497316215893868941503423125530647726617854208299980461894570045918433175875660876569770712258687371755397215190554092907470932129518562237367581414558160277921002730493841089874925476653165569433591907971184599733224942934099659997507016982874009178320485054392452719374105759903942054957732291848564159354646442865880518159425888366551042802375746134711236957041690067034541122273851921235018960204597821877499736291023546144685963395275303152144748523618095087722899046595734063155031686033584392215204924931984332029022783029971736407658130581291487445618253519121153341064353686117706256944569598866597856957312713811756026192023381393047838816693795395720399660843282563860920130156275216673344399585238185970602596298096153773154037460675366811539263745731885278507243308290733978781183258073324899209442795907678592193573658105824202882963675742854397336467885732737149834886704496268086521958470016327489104751987203384096509192253185505863970624873944019429168410125620773470217007283656966153083561739919699914888168219643284819369428148913446810925383896684035234264240382268519828019449373117276795204429005051156277448500454047058439222467349069644118311543573279819083120419662770520886261181863108470397988532084345634763332365143888939111119288483235047224158215525364010373912576561250598782198764967079818716959948182531925164111682566431780706608254568483535322349343364283830328233500319596767223393535322469960665711647530050015158633097821151889417488628391476554605199727002021403001686118674054734341238601590877700503629020635356528122049049042775285854564251482495943286550494009683718931692844345325897383830635156138532630011696170177800450844165557114644854802884520753130724436564586014732386066399781144057230952549059977789804129868823890893288550979279711524597017831986021353316588139282016011917350429921485626186898724273203670260673892342574884748849691375589267317798496827804718191919114874103819371893118206762738190573900863930332115946612174754013505090441668761145027562846553238566654376945380529155392570407102847213040791593390758476388020745641912615036911479014016815077277565136372622044703955312001913397691416957016992985892112544254840980390501061881165653090553358443731034585266316501973116152633992311624288238131995286965115616325183766594494936485443990145236555042725853244980485516203940658842730664477438140955132918073824617355505826728898854520957981234148853496911185319307367821492008665966679073261627818529826086915164801549626191776381293057855914414727365315892642264593959355944026328931207211622354795787857748975724355338126429311154028784382896690406984120160800886777762767528309358654548155274934939196904274636201325099550033307939929654005066595624488132658307596321371113604965973254486916800237235008309837299663951474432617358353639689422695681030050759740137069113987418281078269675828389732188655605870460560525706096538483546734753314102838802201097579156112608408285790998303215071143935543007144032761256504941885672194671621532751268634653503115936128402572394683114203016938984259999492879988295536588402880781001746656831188396129305384946000309623964205948149386183725421846917924931066945760381937680737702628456712737283790315745159565754757819404386949758292327424341253597648692679183557602690493459264674803426685946816727018751237430012346804375535038965542198088608429646184863064961440557830239813551825854636832931246337683992528204338730413930856333051081953506080653311621675830149075260223177116570639994394978813193439647173948434580188854178784195532619692041585184254456719824473539350895876894775674483740036819714088841509108474740817615181942207995257450294589048919036106088305947287261667257744382972364602377460196561711697920682274298633988749181537428811285375974476011344538910962004444619266190524124845107513649321667219703954302978641144508234192540693035366817225971832428273745567259590277238133840907985654710169794070815634807102633083514780024542167730560787029152899111038682706704852732705702517469078726668416488991806526625270465106870029490433955557046464022888696961378727054925782130659561021463139620517610214986114724013621875726546028978255363211113630165852444581105631769157051789042108692989071758476462059216756421466958646801189466522946963093170411783966990675980133270825459321681033028238851684714528838378251915080239375224454304790063598610879396111627491098229223697385530036319652737198588879038676236463379672961682861327318665552113331157759744659401907425242570089432983850223451219786540754660131281179322056108208767321206406735379006977523903060196947374708757713329993919091173473330349245706082566125571372917725831918439367858347816749907618669400533768803354391334159039531172967463794904821212966453792841668628639832439518710445942538643341881551770380631742528109890211852015259960595520830549862224049038233575713222622496956542067781903951678205233344356730852735493407243117122683955439943832327181485621319727261198243405899185307720054800798397702165039195663818478517632196575780584360410608579955934221531096265493429884106725015088210977743577577452538595025046117442920894350323302589380682141857350713992174716466038867001219231292512790230515450682701371652285437064104312352719504813927461304588939977297671454018833920847349439774631133210838018252534242781180820532275071498715302205033784696223493270735307988525039772940857980547527710951072893742645020013162787590417072398373165974416943441143147515153766216488029259928412946675318518415656682604532790895029304866829311383928763117836524477045360164769501092680375442047187842235057217534195757424402173474742679806687556167665031119799819262506798507871532398156366994217749649967168027324871852675176950551878757435403904939478375155156353986542321720256514007813297623438684353646807324801574106130165232669765385079842887575475000122126516959153397764164809639766358332343211696973185361156141165356426270582038619029020208331934866427088709041798835637433843845276116797380447533144890817435832956044070371644537745665018026061119471638235877277622360556462437693935052927460069526451134887176018713066356714463486120468619832345835695502897495025615806049899378661992404846068124518857328468394499988859462810022677756158017590161140933423816381478659228188893945980479943954955741341948250137949570597033521241532669379250369443167624206331685729883920536450839275581857136741906642471304308672773096654847310387950775563639330939040964294764621589743168263901944709155108127451767842126117960116079395909258981838399266464980043946522727680973425483908231662974423109713917807390482337792540115933484332613248693624527640282484155878986479748074379971820110098117890233599942868780124045913306466569793516987542746955886051046898891579329401167745459799922996981637251724879566467955408337254512621460001247296342031047313544072768400067976325713747348553034641546553149269338456376535489925180335356462264666715690139510703847086307521503943030274653369329119653329413294968326509676931297208872341554966098517128860485416723957714871541898739556757295815624198316680194689206150711849565097517300373734815882798781767447732006505265480421687430722894833605015592248003394997035766547408508236913665492069167071021773304909896319953466640202205520453117310983162363194204626516283736865697452016488525281849967665747061711077111826888727414547077839179898511959874073641806817871857105116588659976290731096533063694580994804813158840571267004848431965841404797642879987778511343772347974218764673061541844575006727856503649976315395802366107167696368653949476992891386567392724591021604430017269516325369922413649805161550639664731805752418404626544663157660988495984536410057706179111464524304616218987978501236329345805314814061103434535947191369951270368499246184584800871950391466794748292920903141998766147005233987421276632155178550568070184108299067469724272001037419841002939059360502454400010632697082246525703296049260555511969255765366839114961845171300339698161216417192205491786007633673617515724551989553470627121673424610013332168163436651955197821015836368472289828585174708238803256812343018717483046299046911253390078278740335961577633554048960797640777164987799027488705760778436753380049872581444210865614450408184767419157078532562574840476592200564537263236193150057066846878255719455084010368466448790643258582314682167169292913445399485583286006158521104810025528425214420136834818561596164309468736226988597116217769065529535786790747927691534504632349600332698850890359234768320240514946304290702051384439035395959553550070549657220641207188474991350939494004727575419490981875624551946694143768031456837835064316986990286373641315273254131819414177587245483195197417171873371846011524596706530022347831918475889374837396975939528862787919760945400522252203715748689105478777110378212677777729002755792852843349807321227668307281775945168236547155706125277277922193931192744801130176650730845634084579260077020582027731108917315174282048612724808529052718941935188501743990622907747166090268457459809455740308008767687287500436218644509225952003476971435150343653193957114714924887360230474409393488414180875325856238083429935914575448674586787773341530023545158843239713414976975248475224025747250645488755717266539995753967913248902152628846337794745300291982200359283219623361088342179901311220295380079844174157072119531364638669828893787018136756804706257220491643575109377462084140967429962787169974133079957478694339670010138286143055535485313039713697454347072936849105175561315496326046938780296068350696669336811190020157759975334956433113802304178474703174096878613557743251152892370327820461375764521805353272877925874771775832113908389787016308273334461780551248176524137542379137260092597801281597790720335675051527678944368902449384056476530549088717968032806068945122715646290234263582766911802576294982809346620632474369552320027363631949152979769632538978866875851918079460418098966130679401598161243244657394419129205798678274706728125111892903322485043577129479216943324871163664770085730844109520288445618029344876100372135350010151543169364321800639245139507496722920069438982645200052120269001200413249260585772745951283208205052757557941564599715180622699991406766390816577442988266920864433031804230614096968882423692983190130443666528714518116231031185454932643466579582976441128657070733801330946909073143726563222946223605261022658410177164258005627394330594855611322639197033881813632737896750777858460534328305286876832816914965157323260340343634378282638794390002338488284344356484108490558975048472349548698739210417711727058442675092870279741597917207158824041214786722146173492740365985538717321876737881280733426303410492235022034250475334768931800752793053281254899237889763557616216875401204842856070129445558681033261993297444389287344414501440168608585473760213117589247314725457115818135408968700419874677572887600422725254464425005328705797823753557743784010967725344606478066895925742168983519245347295049301846441052258643336833434105029710108308936854118105956845637872658332885603687752591148791117560064273218404990398591988551838012644037630769941916006567823877611502802540969024896152096302295398320283620863237369446498750613320669364978523034796388774149182901380924141542959860800118034382302370082698008750951325245879864064203009641471103713674326219361406374050521345069236468220336625459038524509918126959607174667347255185668931544385149339451981150275946867599266317467334373074611384055000601616069623112341548296378900864142749208610357064790573827577224591359985128919557431876669624227742215394716164438758234678418300939295747143505284651306044898140865769293607301616016085824270805989975038718232324702373696234352647026865818055502814373279594825815572105613472789808696454421697324331260358327505837544169133859331420323688014173751292776172811564906461086554454419421142109232184000305696345908427573703739012425559493850679269429275095150667674543664423161972347138944214043494666813301702627571836010922727781020718308654722663949484732512691099162586328014769576098954578173453831299215048941677935602332153281890902068274234963213249274093481866137784192859193307821897684853763555120906454245462724414809333222972615291271422069269730548681216347077354269846095796155918529082552434789424545625268021030781136488023529072420864029137729805332108854060840464918625561118129464859473371933246933383419551649809472146146039151415104538345125154464880522779451733607967055838208191962641410404186796855766720298145669056790234402425378799439841717458360816881358835747835850633916835438408639325199260415744116768015316068021479540387251105510864128844446878603274116416108696542968093775187407512346299880384923086058310666472157875626441093446451479694096397301820017218976687717724950389039310577590701000994607633060531401579867190978517920224888562674047301501017461289135504043082388411593723585907270371017143178727033137995675861841238894136076565848691349090562345121296967371070186646199393908737668901775759374330878685959149941588272902123510854358313668968686891951200396648091543043323142028591717962474264286882919312417836928586366657808101800989367201519758796724795818939183174829960141735748864426762880458159081858323336550766156323383883247062213735230883925578908990393697772979418163447031965788771521975373247282269742433213403317700341594324533387958532669989291599088483621148981338370934633173119722995561772066903982428211120704103710344865714630019125224230211417463292021538427180324318636313353466087467866794656877404115674265531915391952955613392624701379499042433307190871769088057728491571695569375432619614450339038573366542799410746550103869945830211205306723278462879970093368688818695530300712892800720827815053187045152225341178834662311908387012821917494548119174774323616860371218842281515319380791342072236897140539408858855354597219180844776631705784127462207709912738073018316988633401401380905491765164940709095065850674285857956616698679666934307567586057445173864556586836562157729528107232737380122717215757493035289056957874162703662599696982568007303379723325725669258725860605129679805952627231880229296545145792891773607509262066308812411831968829647221899011698338472805682154520945402109178554043075348187369623780603650529844605535379640521876807877394026899413508993700246235333198796241985556580075439368862266397610504814620701428841768380333929908485863610543652475252872264210695078097337469929729170414604490688256054286651844452765703221362138021577119918239427118412817172316262269571643313391588853848764261852315489075818344588030150195372155153004822075129398655274222302628015932620619293212408145316809803699533900911876023828924176732151619912795682354120405043795618165445297397699246331375242115950395195636495103739860452920586613648925050156845585054604454923917495922649395864909063192979140219028922347194572261862398486177348353556585154190305312404120577466111738752438376242394735360332919404151751871274577583794984495115299110185650873407788062385621639915326371043543266798070686175419355094856584104150532197772641820459012374614863701859045576801861470248263436385688702881990635737640002645960054715796776069651463729115027571983262995663482715724541683201032678347077062293484852891537789717024647155861767281214497969610096401720561395913757070339060188844149719370212609629931151861760293088603809787006737189480090786343670689953389592985405765608277458200169447450822479212983304806283225349667164750506131559189745331415135074988776124096872614319201046266053110061302974719108941568711559450767558966994309542798317227169759733387656932964018535446498679857610205747796465493714332312147838593470980125218451343560152390843312716356995962776246274890386784558546039127258910734825072371618636259670187995969847723354933022897127825041919392098288833401068014422851079456908637458036819765781295702952255968752180227826571177210075214618185493212453039504261072225684333474596413976943554801444096627713276059842998259088528458016240925321692007296738227408228116548991515335797451332971318901890595761731143778576077375012616805063557721116209427875037330794848182230738478641710172674622798617619803173224012656712247055550246948355238286682705013194991357317761329879043018265097216980887462425628115129569009065272586767895679999648392778182233171760592125703883417058620011975585604050857409415290127668064406472813271623640996150540500999728304303303639744058565705010189292791194159680484212159758376732920996253092255248300808972212981295944627230494148284883548684633838611847935481319705131591655277577907532240163963997616753079425841230564581840831417090351846833476519987633319624917594560961646020499949140791002694374454704826090480030649822698863018392287238404198646260731967315038264551380494081368819623896991629740382522629431480418022438094160466581773384365955200641681769251644837869203269112032238038366741429958990049042074568092096526565916872049752145239697420089659890069410693506786137569333471085473045262071030829012820149472340361736284757743831154433996122158560408401600186213376824378959614572872182907240631493450770417348717474772358712172474686279325698443052915088445552389177881704168137143890998506303670919468777034490055238168661060611993760721614668318651280841245227518688439266302512615566561852632390334824124581214598569239009576054393190766056782590282270535988536141352128989878757348515673636144324575225599413839356707634901794969875267345534450011697543655649828450009576694268434649021699758321178463001335669529026036890049500811568027225399510945955862353906870404641494379342494313700882312943896933258308312547880265892192892116832996585390580172551042845268222142063288967232518042135187515854063141320063978180387748149842814677938930863006279744329782458643645638941982543985724600913817565562651736712846090434296843103687257621788896628465597771025799834870134231358101838697036428571944453223538717404957831980023945741841495300954703585838715189412227610751797428451006193318681759921303663479034818001767593837245118377037462644405104418837486518156631997631574673190569050872165431260581431039630697348471484541840839469575265922073120137790894384869312041724769023082954317977306654035684192118216794264860059632389509404351451076102063976785904772610094817361958356655938378172844858622950047372150595351604972636991299387078038185427389767064268917981600111233239593716585069199796690488745422699864599975432225119542472683407943539093345212609748740564605907073986648055557224116892402517952719249941802463899991156120754951104605621401100939728633003007691028234942478930783299575166551750907073478451961313110379843132897289163202232246629846345905916533910229189230071939808570820614671594288041212110135852696387713971963678195905644473804216558929561064486198205461398785785706216720948246796016573487113715420256826103406478598238564072035754711809073365974504482371302365544670862265455705164918610857950398756789420128482806653925339997419000004777431768792939486712454977607386725127398083648865946924442332999149227579901025995539907962263952447346418826458148093012643132572584586202380461486661241244546455851576461992241045671013399142113267195255306691209220312729804497951515808854372570847265249145085925690943306081799839089966053906791043538019720339583330418827681761360811054972615824776490499512734039081728826397361146162608985766580485793635286704617272950495688791326502135553108908995959160224629356842867601754386757662860825754700794679431990050995458387846792776076315369444709791343884023985172458594219575000413882451287544998425406642750031970128536808489709821714908001329321254222621863413866796918835405547585170783163795734713191210212648882423147091207332118388592579729024470931167337023234161680213301919277013721791809686886641487550340513505182299932474446934498749538827942910505090257338024077342950283530723869659762994893908639389159203483763549424694302607827102988950020337517386225884245260317561048827962137164171947107535717741020648335933908816914085289083857025997802335014333135679087252917462596262730732851923533713680407445444462372022323501548713726531422678644462095898904674639883902323589986745593139654861861946037654349738352800705910384392266590514540437255100756806750481301205251517996492862659111377051204705414526483646204885959009569701360425488365464907039558075620809154068861119728472388651830609372615475587782908408253620556138130852905616462378124541215691268363600406598387573311935912471177934950020583190468575000987779979527244371539028169848126727777335988026500003565263964396466766020407159781198843353201303096731769366645517696049065451386749702279305553892113257538808823017037696564386125432940294684900767693685891473529493759626144017171572261315055390269599894949597326391668012817192517445871726579402746091951529011688625932546784143150101234022139075158000825722798511894034172626852117857842931162930124848118228985116993646280132752119985483683218856006569519204742054327302369693465743881779586832528470079731331485169980806563497758809574359078419360575499960181619481044878521030824036337599577190373680013870464606901853440602126809619592166657223865348173875214383441321640694575930078269166975076401508391513401256097346406745029271187875005975903158554212694571974117301078653882612832119158502050267020232116086827767813770719485590273556026713183254682659174894978221711176589641164919400094164533939683592539616700890066533726856137193440877162612305981061945870131803939033985356767921241014132740415520678970122036413039670441590481293568490207797871221039194912174703655478001678424239586932849381906840844159599615951352283818088093156488587667701299182201307883511959474781884704325050624246000010708591602540041620068748678474643230186334371086497615632554826105798281322713270827592291002842440997470601854979583708494213349858065711436344445598301036754075285428835262838915681817201876365392777490521530219322294654074897378357659283811784715128614239884663352792518273667968661928986338037115379429415471582597788330835720933928285591278854775107993995735904077184479389002895697845808784844077186152351704480327646575966826455672076736119003932175608620468529878277536436663842336845626741537777028990579971379145204508474870296791374385503634957936290752162837648787740045458903097671645139725180718022270438893299016076903856881394340676213773010026914307820291572958759452996001119965883504900902063245513959184897311738145631484393121463278699521310082804400709572451642488909366469275412613566691066395170747015881695443180759579642936532305431232900571153996345265304882918495706934690546738445516249329502720571759266028637199388526553803800755553193606289859673550693558304559280327399464071900131228088172782113437691108775772835034232888207493911205379166779462820684457884212897321470759404443415336765189505837044323229381160582990946047079717618157827699060219693366656953871597059046564795835409898725395652326007269541914337104516220587702737889031080008911214925598025839675515268358872150627157836572431219753368929094921275887218391106275857654283387113849002255907302556297512284632757979672965191476345025868279522257545725993603975213531500261345144618388254563974845483842572578023956803468850294740033237215677211759288276851533606453437075447552047060079052043228205178478170769228110171119211025323299431203034041514457163317236309979749363540222417110885198632682370510275609882930911284578907570536571237426777126872050614749201360443081098579022568063487251492788653649703720643097893477415812406504539804375755696797003724328279798099863425626135327993684014923269179250066138935674262420593200533349352394466605326761666689057930423366456959831669605465776870706352841633119410200273768873083585435238426442341347670675306925763002514428801536566173231974037545367042969524029059241906881381523169152964111555220798624362211559785829685969509423353215413714794419745881223452306693806700039443687798730138313143700509660377437305867953815537182626952571377083838606459757646704030981776669832981050179626486764707900933907260710656141152344999711789150594001601561404431089439674932111576809932210002472454929596257867749100325205335054679624336511500335744395767511802190661073023392432611830994722889665809017707733750658560590704645022367776273191599730812505269006341757592422155906483321261254506162636453414455754216478398883301738742899363384038802692546360631974330749905143262841487751308088715969649562451066259745517550622433663451595008058997239007894807991461657126346501487212892672029459309757618183762856045715013683609257038747749555362662767269534500941276531313431901188781438115414121910404369161380167890706585059970655855710730251553358843673989400332211358959462058426844811037363986063230865848144126237313555079490162531009346222223917676539884814805150506612085498180885017568153529214463852294761433703915977518677649472467172568725007040259400801922760326654300873089056682036515011484298344599576852551466025967198298586972466145925465410382020610537798658767135019298368285633308309048314938331340741832295422880909857741202997298113948899293025014503746877358003995388113881442059150238821214367580359318441100487605980729108891610298632104564544791818897357781549332976952059358140507329039144542734372049119865419889898773077896782387142140087532207265368893003702231564170715404288219384715219784037464782034084876152003178513256409313853955025975376989391403849349608001640545709909671542968164130605637309896624827979335930885371399788021215451430211735845662097311392055745991112568365822998361259611271138369502748076824040391681515507358732725680515068361766233469999322691785871569117141857405514229894137638130458762327427846593543998932589067937283245754215377388089632401315537356698497788167024310131822512633912377866540483974716690037573396414126636878940404110968100960186295982324668670917936715042794552761403643562229854576722549197986641107939360535827632661375962111277888570302324744257963753149614465985261152233577860694750979270952980093822231536980081221293000524242696874202221242484394322198716483618873109973397459699511509672627861893824679632214662300940742409818947510361901914168745873955862825286787457501111298072479215713773226306492978927424630422096506715105649408290051192781568398114726033187915720330350059728463886114109649865899877319389107984701262197433091652513710437324952319877347379018700205140403462578140008793227586800996254743741705425274616716743220092628726619057849905922721877046305714760017740097449780917347400586550154707958638322049256858578694422030381016575584352336314368694737876694203818003934510583302179297582948514227943607542872983011020674290037315074422064361811858490709920457280248124622245912541546490889445680143024969969323755057288557939984135518902198875667697943498959283439843330203494806315518209818312967963333612963897599844731097841333417392636695878562210260686489076202323718633899786004309990514750043600099011304231667967390517447162900979374462788573543002927738521471612566713590372080773000421447560625066693792530165900614975716060593520023215401768638846782439306048701572340806276887212379682278084849678957642096017763147126543485523758611499238876404589714149521705550448486140463747724221625613596423648029535797289167853672731499895255440539514839617141681318214231458298004104167897470794708393795318705888649569408877291879717619184976976405121421906595428815922933206091641980253255636013662749678013787296680286339972864041383574408491473565475090128132289813415730402055915876168924889486274432426914052198423028836798015543806722939953935861924952119672869985489852191434535562057404912706488124334244118145781593974432715564827794112097288043195576177718258773802337888333360992093126650881513187307350987748593333721764238451250087955683438033883452137872276836737287843661462570058161675175852999671481405193208810650206211626985749334753666486121201836955548606305477649321182633394595109315972194370391205629450989034749844099198833210554489174306146407856664934836171075910647865537633123630825641649311102862289744048402030550358855708240533198411983070089261425551592429463674335197207687344196567321473183464378768275224400045856045244088436911937547067958688253287926146454795065488289995255544857290418346871491788018153895122653790974348662116543923256627893772182587063504786443410547894185242042876662433300306488590425966252972822414181327359666186134738671492334725951305203315697290576323668153463884631305502733213602388469342792261600279294580619510735251633082352708232752099028510685366132921564838639438109967970993425998268180851694332989276491705351912592101947889779430958489060859842960168962008605821485759762310841980788880675115929904782300522831551615103852925747799581040207644049418119646966711145595471281890582439686934564122356493798172939571340088459883478981935954843231839896995413579066323202997348223630456239249346115749921164500706813473886173645247114899523625610505300872106648312953586811146231127338996878305044775654512637787720750727968055919418819730285617751836464106363294983033648548306881488811813764388610545693910522511828928126865612902430569758763171565959839248319621445866725883464211063489341445279735415906664756640610107177945981579184638015651289963080138524430522401362599287052260726563798776333393680284855029417881964582578189198973691130103959320199189678241994340194123956883909070430231385766980961855312130023123413624047781662606052886132570604376409202428064450958509356424732625622130476785260436662828137489533693315439121043899754995969887637727294471553815044560426360362969033843200785482568304685922909475684054381569980372467662204970426352259371063331939008275438318798829107084862425590439422359121519900506139160173648356713505300107826728332690552713890629444203162540280248049440396073333318719782847626074102825210361368231093765572679674460403609687325221675249625188978554459668493854770387098489000490613369158167485067040089154799036721522643341344424687351870589761379577251612219757509946823910815999032843086566695254853272098901103283126985090248239181407953190725332951280727067681282271358170345288939135651265430223485835126950726478096804564571255258006558579517433308417448955675034183291853048513774245868356611408173347918267974366524437476116056875375661020608914395792601877231078665215501773075683479791277987229825768125884942302432363393892363452129220444694612252371186021582313603133442153388898221198527321245418688473365666854939914829373530209704550639467134678993046289400255099621054700328775107499398834993037823330646738191118561804859661652038876671737476199266311490725216195300226339917217816940282033270918623436462159952200718892301536843627692474532883345186900402227853169785811075135033284374061477527853475339697944468591087854361884407164382319536401486908463691696039215652971636733299529017873217347849688414550670645772893572485943002525413153707353052728886768212368365477517818245253495409394017839686613274479189351380476620361177702602032966805300717908347895749691067269681645897423639452021607323341610462178324708874388440448795926469960291686972287922580935617951083159713339649080846487863036229151361522419370506701768223665627575572096963234433907387032220520990705005557951613235061145070242347411307758815742485371877072061932368110608109256307834549178243709277600149031454163139215831277199503131493641724756765550410927977098341181061691891073843086036405628368031267519232800308117609045750250328019718218942457354695119887474247730320952494821477209569127100211580945084351933080035170954765466994265015138965005175784000062075090006384328958002188040035171586017881967223757355194757817055429103170218707273972384270534757813288884191740165386869589821474226112581955931555798281568287054978443424291127054163839097106815961979696016344078468414099499205046705631261027708997935002240789681703906873084497303482569905458945901553694587431308175734393871958149810642207138180141218149255771350951458269071018205629743192447020853887326970929652337780998884512026394776831339152439595867267176908909245573954854859939468109093240368254838185689457520025821457202914395000356054842726677578570401445915294971396081192341962333057786532344867442097380828735712030236870330212788164379847951216386031131446030553801669695379361247094505046217929760641005664613612827622245026171904610700149540360962914574949054943208355646836385926551095014467190097872809293009774555135599644203077117307574458274392703704305348997480468349635099830642907049244661467018186066194061291054718293616019048626326805024235677483627956451259379421337428536031826310377656878055188075627338324351360917663948392524534568389223727130691773616731157285331237542364039151536390809991863334927233992876918552729575658216310768108308562577855418820850263558966695416976435832365073769543662931708032479052077086862415460613743209583784069405511426499220997231915124432279300276411706895903796656743303488327122713323018438687716114199988475153465162276590615719060424830062875790774266775793076599753490121723602352079201598597785645600940072727010807024799735287384857380557778557585794564460162256322912562009372105551074554915243583060463444795580677000368636953964556935298137190551054402557222287597448842829633785781191007532539304336490320381457544561623397558814768656288743012749384709503281451172205773853388137391611652166052221266576474727252415762275060273848442952302944509866380514065408070108758590785171993831039839756991851272454759177532540867640910730954204064025583866203042626223073852519078416188474429120132818265442928239666867281870229180668154335453649284981619036799922322066501008563771322951314224549025893673997409967202384470937205264397036785690573920473154532624196163113519175523087558225064176057376876455972023061998481236767785086876785651747964299129603581897476725970693048587904112449428600821929634786334972317794316801014319898126571075613907587901850651129495071636007780374824968030274848736804540600846577753495789465434086932966967704196988377550754850390559534955253383894481539819927074525241404375699329648559530334814552120648661141276038279280327651318414015999435923024339941625158022574529595197639602958722842662099720246492136261941016041512036317596382163239611645738203130433804565882677429946188758575131672157683044718076712771768446627236151215204783188869618984539430510551046249656587855248983790151087115873335786606178765215901945848230991155617135336173317220624399863793265486423758615073032393487241052652118832308562002199363083444085272834533763718446232864588186921827388373010668979847537441616799386191761674148297934004820324440096122908667832435893717554504342698873996741911077241895926124228512502102252180580151224826652539374193187568978064223633425732837745077024895542657442327156293779156046571514042960937731586159372609764954090761193503958692664773519946778320531150546563478683070960491585166157229838551328821307209620583547120935471250086813140099851530825356365948273411669443218388604396527934895073760154532569719776329821644167081908795117285122199243421363956139422420492971709642449568309118745148705832629877200607107074578213899420267257839127201360191850611302913004553556529292486943057102879665344642578893692148663132613230062872607251260849141504116248413198108058519729211481200924990901166744121110631295406664759916861517714934677518599782675503615883910989156684267138231699003352554650017972401576196355764184752146733250353315744716864231631401513248523683344042647227357779319588469695407654429368330716941164873048648520046863941198017440539053084097049038429713449778472727169118135006437944807569942053615805394606058590888965433300939498345245644413292927510679827070101685747963727873616879858436854538231745853422460178408412608524962205730175515819995495791503435612237132829615461248908676349816696057954425337969977018083107338264401642386409856484102757612416658903975082647385458050756913664284044652319516297206972399469587467852712235248694959149369530241553623387297734230997060783654098381188653796554624115058300288822985362483485861390108543630017448273160565918879461678819696686354937238003915135781837924766812973019577068326531826710121002344998122808344220244669195454499694730756174636155534428134992695072936642463207629449524565624908763667398975966220712829801522608633825060751126099091295804626429586015673517413430761280848337870208678953270476330371928248357084854599362266117277619691247120516046176000058672800067431692102618954114137405195347336271039023208872313643751290252438522535810560062943942092128423047112028662308439797981198525735255501196047109062988672329476783981243006167346609011742075378119634794385270498653902702042859917896955401105360862191996370941284117187457838280550942126193175750394841021272903313233509294980489197122849869719122048878813940706933698891601836460345048901714695982527908526571352074191882604916996134804001022274269459899548593443751022475436640719370058163249200811814826878183262569720823051916925319865609210852253080755849549596061641843928692949412525698709612732784806977968175195358753121406036792194582440548673734981301698656201678587620082004844836875777317523690279492108651986805456970323718040365749741055087904815397465032005368492080747065441181481106396496029281783988687889897839218353978846939903849090670921180290332993552105534608082159195579539962358633247176071805439739950665529328975815700892908120749046502926793291743016427022992629985554035253948173763459697601447976171021517294576812504340039407947588403504309261516524981197174153849709884613454701347835901842977983634557316207643381713312936986468519621906647395408939554997705747193198789405035872390975759876574624409044374096803015409557520127620600631576263951209056602706714405083542197896596407898388143993259799304750085124137252594946070550691690982436360301171007783594336323380776843255360597396029216491850599807372490300079697299155505121833507471094392080064846894277251107678853264435257705934162978631453789518205010382307031402312253240051786318350978468151607233428318293296346572267336647374846440009700849926512159072766680011231323494193660098373754348260377110052876046154487871511557345938861746128933264082593333056214807670602114538816690634708480135108490525237646941536222612709774718324304307532052365278565229715210870930508393411572763984788326723983366916799773086945989965289665492972993262528343314729321925848021337841713188125339481721093582266250683331139647791173540084757296197693380496089963802376946004207230008087208463618409530002392422037999972352811358420607403227342778604892168546168315222455792837415839912621911568463289780309241613528332384446211105722042187500471323757719668115207324951391996079670060849621454472730106384597682144359819072478339170176810266512388619858817413340752113672653420554901390474031901557045965317061523550641787722644582059161953483384269667654276783555836330850267872727123739344919981815403641770266976008060505030691849479043633147670556659490823787564033671206455107014256940280147717433202477987351333715785385664246009885159995973111810509270340806811523407670158733828145995706525424404388411974841140318841629076908979276661911892655811379635854985414195729319157572641719008122824672124556267073115162215444324225246782410035705389945359847060580643337996311911580964372287307709841471164085476224559687976423495354366272422151153781832760431465407643614224201397653160269091561900626907529250382951200842064327407798718543236522801008350558829252083796368342763106466381692404274666743363720416358253913425240594737441564159599896532893933106989882777277836157794252605364210086004792781039898371252693878346937515701364050373661642778915287281939383400479637563248127189943746590453669365397035392177633110105960987438012027249131727917046733517527684147208284660225170887679101224712258685599978453553471858434509070515536936367094706938722099567021633389761687753396434998941344130724271154748031433088923019015505638983874215580773508686887048223861015137816262579879352188569744293453697792062030693056142718427627013743965750626973250020377669267007083967337332092398047021549145179515924186569444020069574575248423325218877205838269341244820707560391983105581832207451944744324670563433028003340832819807340777363113246349896870591554883515700462689978346481658046963958473951529809263280940062817157637203127068264269242011946896219706533623511189830352764941788439403267810402379271901051778405311762794894411261976807308188096245924232397066158382266534119101095170019297401427368283787848671818336282917994604324423635529791207627676527667551746229997752954533844755121139970060729968149148966838788171426380059426192385088810198641285328879542334752063672261476585703313600585642223062092151515798114932358176212338022768442196607357204208731696388262263908304811901294358474507503720918835015611663787236561538467281942897937648465543195254851536598773891458334679991083273077122932296797706604377022192729071713692162566202151971609911088535021715839257222542238773833447497840031719830658125996012067256431976106598953831609567250579177157967208845543104245983041734154459683149686205190895197370676615560552089190330449826074386853069614666985351191747769237359737988318452632513069661059670732751996238371096505835801340393382329061296912008197030134672076050348135959595135081311052250553586563207423726387218860869240273338872165232568685872804124735033156989391428201720406481741898375015243697313380471986223152652904107751159465372317940313686184152285680391706488381508807217382593577506397834385938646057060044227623574845005478904056063993845007889824259457488204513086339045905911293418911924845028568943061173768769120103739215829443792080539867260660834333162645391301740327050116910614003760245230871596048359953638824756355556245490867894970751379124357016659260196643094470878506662937123074564253850225648462571151328806633978389353818276000159513853581540173029371244932890486104653920940643797713357418812792600000399301357988608538987949900967460273339793232858531456758775512487081118634624241047743612163427399688243245032927272222727827221632042411153927879659722499604844249142965721052154754421046938750117952762406584056346998971362703639464685470818459211459249001055841676498873710973989968488509218505390973564031529036601825288651914962173271257915104525995705610339623190712054028168896244540307652331107654350907866872372767788439352570151439311055364061493160780812129008571846260222218700885577066743809438447646457256888502449531392458698609721302690135152950787451370219449196440780512937379888767790566650836310332495361346476469847929088165388149252571115344972755115663745885675126040078071668305956384032105382561859631669574288056470441214907246392667178239219315536453101246214079033688287966467905246995738193758377534844743093963645851609334816841518849971224132071110853988008252523552568792051108734159059333452506752381485249983726012315950017312857634638211748956915712059438396844590269009914508726619633602904059601986753674631175254894573348227923596985375971203678875885026592007380445312132515290309860974313118859041387596128731505740947599801207918023433234289152094710593451254137185764424375500979050792378868299095906605787806481689373451767172029883460699584204051469636449848356366681596872690765014392791146970015449174068315596284653343038262058879677191629291033674449855738972317199841122832781331848958538151808953055260427271719997768956090059445735258256522699418835719574151692263451201311392564982895203460502514536799274924654282227031781560314950302171637505523491585308785778898867943084989948258338550290757133973722696872792890154710684794056301123259372675298385269770683716587992811100969181463769756078158310239768217678545675263418891927712231736127888482295804319454959107383935254150624494438792238558125654349023931730941109023881775151521841292261916371126128132650527267979180540582222936151661800359855814155141117601857227812852287606156436097619322783929343438098244356682035090837986974173101357673056474435360123071834230504443555937655116522595590701487922953828530104283231907122496821211069006075750929062861890553008220112411279568161752267858582503578178146744740000411006843643926839848372340897038048123154259417379452004115523094461447387198244141288757088772309487309573834269114930137155717851924243082378089171020094054089213320022830210135704118924304280889825719869988651168266801874856904585088490189318571266238709108542386699896088576151474960314843147645558694111106379190296896953864078737387973515866935719640219805911177832397864977221655896971462398697809262885449969612626618818678861660018981727334436003444047037952400058220851060149115366742421690592926538934315036576695359624589986627472649038374170237768612640762138671137934062758108472392106847859601256139195570037162828841922607566804793395861689744195157847120391669498269422777061113102454325140088833499489664321087112817895944463963120338937938360812809966532970804108846702861085336859432278265093002181122317990614464534539152767206402565624732530122083203816726825062285399369392153252801316105056532824359898384820357602856206576201707353278135153749194649885167339867844043940884349459434065961613017248551182135757265224344663078309163683496123661901570622342047920997430286973673538853675964370087331323464028280364302356933647160356185950253651109795092216377605224062578341143136914835451363604174335322901691836266877897481553869999276453129737493902803464067932637988707145455964024545092259818988802006495301065988770370204396348210321575662429401854727303627025366715802403911803882051384878387412920429333477429371271819475127900519854028377670553472915165594505042566473982375733874160730495914951625281670534206151228598219952986619218806509815303070036962891532573085665781303480088179147269830821566392983264128481377862282016771618533831993769946896934558262900948068405087855699843888911130002505296543403207065891951154654313667336606125304693215112495137175571649327643850743439719158914140296389313795460097738276028087382495224271842864626536259106813726142212013942909124397841096048684873527104336368866777954778588208843169359074050958840006022107019440554695574784950254294267403388074478564971114118531968969822012259825318703880900491124975626495441089578758907808129229554957576287909074521945529357580964202614599379155644207564436360066216370524432427964464665956299464017462078173844338910491156162812379922601882565780432861026127381466779327823652372415161949592227486363115930213803711465546527947675725146316783464663965550581886220758034084128964402131056919401399101058831533486142918496949571654233980821677732711070817924376626808137692816651610702006176348941416179529225187901056789540793303065359719684587588343782601665720133672354822453998061924859324135848186107252990070178138729219041752030565825508942999821325543024729482776542627287928287435675887809078473757419329340199203304405011440893629950429057260018921593196358965638058367055271654245747432494958084485637541808100293044618608049653389793333739343784181383856521456167053976177405754855898301605633676525004042561303663053456057410491975838650436389093544295590158871666770712943195431693812659777127356010301926584654693548732233779034270515080735696978306506605128685986635976127530336246945774519343506549592076397443118449201084011312992382566136913335100303470641052857336860694138478390303921650368083874731612622855785072141882661220628363350998214635003346287217733308642878821962096586425741506062710297194453733776752662885915188986910024778007645796268597766239545722880801312538624380968302942077839725905666267576855136841549926512992943134199336646586861576850213829679574487716201490960478329055334002217786141033847527550180440416740866602390475238044230052048292688617367290204547091335924828403072913562076107732132628354104612929678828192993086367511915914565578152702213673508661561456194306906097308610181823630986458418324499235226619847548644591323511239732266454014396665043996986092482314006692823177546632286175233892079000400671163575854081066553828969510281834304533665042085624743722269259250845182945732244735274121426148231827361641331635544657037871577832525898077099005604409363967579569915050876712906231240437649512288629450483995453303329216131913895448529729795406100967618648751710327156480270123128071826687769252068360374569462513335458411219783843580051681867584183598980155586407803031027453498871224263351829922540169372023161798048875437431897841150149073259431698954450079266440815812690886053199520299210781831305039669864028550159691959013970055940169235409903319323594439255116004674884511443316931063557841038026874497437194590177795397972948924245626620879009163963009692623858982525745308581143537796522971410995200938482920875110493464528889294697602452643609757624513257770628863896879857060422820612879332910065114725276364068626207653608659539496667430160454915372911715146346516149932811724941757165319223858644473512777246747440336396918150978438374275789053325470847670959101762198504504515808426697640187509201657760892479780221856957960380537160321674891315373996623793231252427348371317282955044055026834342622957405436219148311575684329241869529551798537608868812955911635704049357621789150214438817484872744632921347780941164399205366056252813964962578357796859808498752149997063968865314301816709470647013879247591049266004183720709511393974138795947318791121525582196986357471975539881579916700971173774798580032375904597298998934863198457065674372415496683732453376570256565676077693788052677954708486253994116371420603863705279782707878986619220979420019539679026650826425080729865529253570556806899227729985483792581857210649702200695562590085083715886051652501416667046273864681330828742635160648275543097609236650057559453301134562220691947051768849763678792263160471386654492620605738712229301675000446331625315960569685537779407878724026601001702205940060325279450328301462563640881099388159127799861682843809990500870090982797266223880276975938604428998860139115324797197823289918092321439015909813962510786950430507076056715490359136648622650989906371034526479560420835797046490025940968042478361439224039400028085563718665646544238967489673371947755604037324530386001972939212141605176536329527942346087638652283422417746421194020239688183803140262763126480394330101846493456523064736392103075688379102410028041697648466680789778846429842867881252706475352377463896355143197144447303205305855601431631329022468604220649098830228000588797736735281736375980573861528859441157977798393200539473980924652541134673712798123870933834978207672148987107339012525055485862129393645441647040096173268698657460027057940154653935965144060255110553714459237008050360146167069619170330348180642911317120394149189243860912619616921741039525839232283331170817756587170931578425505036433171939568398583467567279629893074255372809513265943488103950892014929214816275858550753120676022684143445036118053162222650021417259872948465217136051931399455188874257985872628163753043202392952448137748805487488894926962874755605864847947587172109008010940237138801983175332187694010324721520506831192993093852554918341687059982546408590432842796220758261152471772036731349587994558558621056895493685082175748339679499381119863992391220616821449240028893713689961655667017352939182343892161378418189134670366636829231357015003991487783581587638711271203776868666502252267980871864554216758501068097550928951272749771694293827833667836698276614652249136373962542400181988398677516628716720779507950585936277832624651983230201607276250325412307102372143073175191451853207057269281992893724680011905534432355609533475006565033592628195613358194388989388848594704682116139543763451968715705794735094155321905965013664859002398324804254021645296691755849334554788818691546846098810711719043526483005315119183200101607682213661764148693893913213805317388765307550637773596731967006865116844394600163928371628399308104706839052810437049528787071664691379544679156407781644588248053115971540371721170895429419153924454580082503021818170393818525486611585890111619773390558849266640895592690705419687251186981925810532079209123962441803214344475105877741460969570642203331859924114246866709981794864438121756580755288060346112743058473843359630277168079316283152794431771737435661818480563373516588145316623511172359731671737713807782056113979726575085282150066346228559139040239711979698287274449002983180531383152415337639337646702929642353610361752450500215687542685350215190546533099128041550153373834821205572715613810260433930075273298808827242943913572392986704342086728241460836791967637548109819162422134714968850528116146788883422553982656787617501968995839218809222225942530462465061421590287350467155452477964990458138691535209424997494351261553353625189398660054619081309334983158299017110739926129310199862093630126426939018885563531392215890309754516191660804998285467749462814315726590125009312265455089714454733558942630949410269679285048196794010986002150019237353246682712677075866809298427968170525352700320151739273079011542099775386708185133223432011952519463686885345562740435127145388454275362273581070165997561645806354273969168325025998876168308682366282836574728999673203422601838402879243429901336768159566117443900261654324170926192684029912742317927747719167603449740937616841416810415667465961363600683706336553842801269981553565156078029285620608324428268384001786594889547344793370053514542258034832084030455421569821535270796329011947837221464472823685215410177110036997081693394300008965983225784306228322876381136413027006661228332286454518398022719727271229522654577069430937663125373608243426585874471461334983321745095619111548571705615290878665818860764297031201131231053428783702858863538588375856711972920232559178872218487292216501049643100456400090057309548164166267136931240220748268949333279999676709688160889635422110777855848364556581861177102969981516408001237312971538382339763984139391412247951612055504023458980054854944402305331589052015728113435970085235678897069934657443832930695508743952876581243491899898529991206834214009670813731258690076853456098537825544187594705250427717556204492959948555898783235538557804754803185479434345910713990895653120528948337647207974743036358543475547847304975526922130480920766543993678042934208290638149327669850578294901058145504297132261898464588051904208861564488621418800359891278957828069306764081176077600411930560361689249037568326893938287124008099376651634932196881274614483646552723348273951376506823649261329349713266578881006861496821925253949824477153349691480077114975651569400481833420604987405654340387866673339154536423488068270539131647106212389052753491492305589018104070548326449590023348604559662162593787125919650398718440434099329941778521692023903695623817505450650598378114638396133295292526519772813376451019911344654256788969054404293803416416220398131098048373125243177979985783829114535662057448745994519527597890906713812348718283459330194787979716177960681654288729536229529901446087520799054856474484359345960513394996304082391020969891831837217959257487074096724435167186295282941634318308543136772574272014231968239162534513827491550880162712995162244019382128912458806448321021449008323893534472484172285125294909692914236231676246151427560391086975550572382413903767372398423239712721280323850437457993209924111919556283735373852984120761247327462842048550564533152620688104421499441642097047012796504695617902549122016067791567039380490744660300115952217477851992736061251308330171487272541783207631693794169697847766654654647297317599097284722926504513007102160221215529602448712388477241080662058961871879722721735280992208294984434358380710031979421187565644291239231111297173596205870839972083181587386180858924225841193704418410584036956988898599646260060780305831835468793094686996069350818903183781082187424807158886441323516476323107221812772583669714220930946569208907186720565407879907311349946352440159099163263103991427220438073504439281011957968035514419914323949453293525511267597253187005169812417292133416167096798008135737202953587800536632438297943472930135168422656528150242086443507596345549660388771253191344910021012365930378818708901242988848174462168716743930430416626913233461716278352099513462374489917077816531294566381921762790863889605022846983669028835096374762555178029376981145648553262600819839915434355461204605195663627818996700830692783949777799681757458966648415108562482809275654065439458351854322849383821426663108396873923605400212307940550997624862725546633050980408765565387237522299397234489314887323798811742474907140803419203367208478695064407652142074134644560087999315191357545573584933953230682500036921982837088037705515902592942164610360351757251380975768146551232552249592958324610990595028725811105183554527028722807564702366022061941159452678746063203009777624590117407307468248642178563462953782567161999423289820393317426473172010056574279866801884612935182160554700378596841963587992057533528027612475660627894382340015484244402869244604685823966047042616295059563206268620311516833081510991529974864621566104835165817284734622144577647360194846151182859753442618432521983707030281343482800086896222154590999363001010981791381171504095469843093828326229426177237916752452220126815279453063912690744448553505202833404118832258030216430461725731289988465483994467172242992423172233038885308403472278921005056830503963917553295921786051864820480555487407332278301549617001278847914389713445728757097821591608220772059136999467414000729511836496515355406988649174943946787457808188837416366460064193815631641941267088578658059415797124244497280507572247856333769416054734348475857703842590458560702435198537747936347506720098752536430947501718721597705096406985191609624295188574736075550342431651632594624518316095967113850537276928282752440085841661749328089597629355156163666304801230080553481042259291658800708852264726187551761933884978846358472258770456487413159693296059779167217056782242459267749338428760506019472335650363020551290372461032285550029054073420664777782559648565291088244166286191332499187716776616590199766703177409267752011109296103813699725657076155786188830514119041691593898967362316295417403583755811169898716093923068138311300088752558992525767750900573016871779742420994481394611599514895387303296364560869528667840227049919988852528525335067585813154589468947876684678513154437692696074621086471423511548495427481676762220027630315108263663226939639110254176943222182856762335851657826075073146417247296032641421375545925147788703297655000034785551475083552148670054229707265612471924941170520795255871884599925541056980169797359207546145892755315621768644429622636490425432593707853010572045706507101745586077561007060157527729736632953744088398990866065740680649441258344301041961081845837638770061500903895375901578364548873929278352279229216200426506195138620276990622445665270960711796377937152889809910649530470596003594012722424755586871951199600922817884399086744760246192071577509602024120630410705998773815067231077961358859273407285115640017060306020828033911308996212499658671047541862314076787842349742006803183129207101311454996024917164940014136098131340999397694045620164824117047831215032713967920088850346748819436763346144965313556665329217550815043613659788833064511563146479989875985764658731391205698434236294919041880119968406455130529676600450530885800512822310951977732543293902402761697037431568737752470337889690925379294483434103439313320153535293988510288621171064130384026258877310930083747996779751018933923070532216372881526970299686987353398297875609306558111204574741398995915586708223456273120395997287741195344550480019648192402245587191898111654836486521308402383521456820565402068822167647065662823574224015707701288033257908032463613778398946376978779400966808640804103750008337254731627166869596353032582442558650903902781632554154945385701789044696282656956899194903521322314443457363715829727406628390367018803318085592389985460755774293539764348723713638620754855939604916237962349683932396418102217786339780575274594548876908652362029160189252978750225167849281139154306606853762533500310110514506085978218138497960908317279920650079311899505627728741898523474264410274556746884986453009276955251285833191823831166921207388674395273467679490981405276546093011468528077568697275441246880249848387980477673814123698017797534252987985976640344664573051214185806158762023549219574340420403640195761823299894845367971856849934531733288141481560574774886941120287935534261927236103646026049465991576486693752409428094904089664528163286188314510769563112852043668150383364075062381312045361957349307206796889484186293916046393696248251535855002609511585884928331470668860066256939750025125044904577468250816680258759687609397190460666983460636037247784710331911732180690192041230467526035815951558398308723645366189110716125580980175603913547203227496154141151485478482864671857310912687598963417743325211756046768274465863785928339184568734995099510432061107072590819789886963886333571600416568088006491413043218547323362466354815954815896337051788175815786188695127840355023327828384217709502222515306020322891808887335416534836298531046172135160571843230381051110809411019221496983865356564519808789546909447933755609861631704397938576188888948471596265316468136798698508838840621817380774777295647397943116086121198131578586528814374757852207122532864763746023073844568498654456125906691317747349789458690324919649304327216351435344508133377529060560741781165834156524801265543629074318005776713885968301583902646316931195773120091848017002756182843397123394333120366871679525345211979120966814063195687255711485196631467832537423708821896171222362524032734390323885580556782049411218734297489724475191741560597622936710495398890193989198202684669008162398404331281703144617744065860276002393412579619076472439587676108045874649509064465721170517060056911962097432584514068739533527097838704691604977223607298630928948649915005676616186467960086094982998105095225811886913097148098607053942687614031919721088319180691041847993606128610779753609778041728711340348819002475065198057747721639406063359294006694815090876464871009575786065650996105426528807832192103347687736773656082362110475057008901893496707076876060388670450220812679445260304479984717747030354449363188279740819213086462250031261626650520717904243738119130750743520329141398455212963318996036542257881961756826346421753559435552250044726409019696039877463798907965333520402159724409928979401341374844427096499481467540695310113011711793778727772183960075568311075590041720717203442718539687721071093985932265506123922962631519052830162101405852105434279816272966795442679111301564199257693873263189122322636727106654385573253908539877277180935155673959033726204040945719896638779997165507110105661375242266284514122435759404254080175192791180644843084806144891223551866501131991264259325508405589362422412730376959927417382863416896306012108967529966717338763629888412635060361593116549148502312148453450861982624389450417132254159941311242916031564807795828755450847932011499348643068570940092530247208493402212695229655477918414233536060684533831997870910163662073815906437269713879081985000476102476843109922592758645111935298495586515423595344611690732984277289577097240914958658600492464920370052402307308551736574717611731197317736913672585106579578279314138432615017043434016656149788176012031074497040763188372335911121088010156018308739062483608035191503168034959292752448250406410186822887372162646626689229593434514282142659667533985709264769065869886011940060782834116306990919793340802034591061562888034666705003948735089736098560265228225598228134527664977812960757192964727572623886501287561260989174718843379769353014195015312698293602880483614120113491549572993667183448809235981725022974268295147885419369227021811308110372664708220319424030615733356348078652914453990001304405479828400805110810452375507208134472279348437919310458794838547778396937222949594603424844624193802772877531802320992376215542045657903854062342410406263399942078687044200055629516060046562364411364769981361495118430331693783426920504007580171508710608278072116703119633553984558132746320002187857206460055889442667138380142880074906211605748874565185521943722682839888805045939169145892097301734711889835240392560441959624181071895899446072807507635733833813456592006910647850777049368532073413618521426469167917162793901624927245792827630374669132584502516089138484648270833636176030076377255681075886676213899301341460987850824831616304896644562537995092947216929648101055047504201798767029519515864012628813042405881674942998296946613530113664648086340779355222232985988508957721546973261392157544430876946444249115313342836740775421576314278583062774157010874987094589387099642095438134859373281711810026235010594319194636074627423580959576941333984663085806424130832440184698337963685183258143993335894283993335011753371487513072918281221864627964510140462952214311433022087860929183386664302644520492239221667359979504702967792135574013191703767994338459659632848324363897708262704844278975075408014446995306429502202297174101620962987402745512183683052113566561631312734932435504788668787014205144162481434082706397524797362255583766502324223580938405224827370053686446397242406567951633060394326208389340753511215510045369456716297639997293695388887777507395923410097113995302725627944596854335568094824937396313422310553397505871835329286214977176750386460543731681523156450062461672049189336599733084182191065527431406579653753835123760754498667228002526262662602583481527722787102181153242392143302817544369388792998543402361125233666213938319464387671017361461983216493545111368368437468295623945435369412933266245612951363716424460593416559434904559678351663811198555590020804028586492606669228575012429364018131069450776634847496780360719789111109663724786153830819184982060343075518630091217676471973696947142607303931053507823640363444542312345626674695885711015547576141695936737171525524116049563889773543357055730671579402640450310847419110890253002437229540520199731559685324445986755442970314720070017061482996101905472887749637669794100129559124589153716448557368256135600932858012201412288171379186784642523558287016960941661921848639921973577135088968961231655453668112722979872500625420501099297650213602162000802579932068092088210442471972874196075845587237603380112637537611807895545740882579963348636163771228830518986596974144414329254940409490397934101162496553318635357826985442468585333357496234184708151024437545049453752452460560636726022752355927692297056111697675154875011100092044204869516712935988890079922042064272320657994438846162886792175674786394775529709988373024545064601808086645585268669054011618323465105784096784337428324789003825009325290663140800752340278462792616349520356046669604602149446066792817549230803724024308106277360730128996192058961844244391197473651903840728497124576545854896966173098266881396481574819889962321356580700668479856363520148357561337461408814397391943369944344765829267338016876656601885672847800914064421181919376625658319485152905151285724190683571330199647838545815864185628997470687448261531995069416281452705384942525120521582289686834877542937552531779875207637789109095885116393788737909743098705552976068775161184140428313427673334053277819150551754288576530118384765295061462111621630415872028340736340706743550511914957236877443133668418613820776753024537428478579517126956092966139148372722417185815035773078676558574681036879033859353902251122206031339246028544016027358304452026478094955416162869481172648893100678873920339038064709833293200919852778685127434197054962651287303970448279144025503510298701131207732808775002298052000323574834752944190445280944748324440250305110571643231016673527685462216840420765943615063386890222371061649184570837434528537616223360677561965015626665804599370075738043851265745769782281181084628441781288567224582655907311544350815303971471594694914073111466690949739682729220733800230451547247326501078106978774687812314883229078845808801420632235300043622370325513701187568288553932489735688609800113756394034954769297983518100593679987950567270454948684663446601153869675877201303894443765796479333903273787446064504069098409714259543051450554950344781454717519421826291708524271452956127197401452473332365489465678189091440243070967263574840395182530882127453147500080224661269249866781616477649081654282393510523839177672837243816978090462432913110657807401451246711613272734442161618880065719717587590766932770677110813881705745882255447979026283024786262228301231751493413261893265310827119346210140559048275243688552739344129553770792729377332865340249500877177306228730707374377150977792800231902490804957370459904825977441393599299674839107571731226810847709916064530646465747737418730302108438392856667353261684076331385898995832858922441044600517011403604855590927945506147118407614969693382619669718094894701564625655580450259803407321004131567639229450470160346352061149341876044725066433711248410022362322931294583409960679157144182549462382460918474704735064401867645834650975971950082068291726429071147395616211318282157565978593090148591170474691128703693668051524115374987508908822176427225855702423202358171215956015864921506395847516975064960561749697612726192639347713220211259552827437260662383697839368047722196159908115946351119893341828977806613446738790078804330022209577603956255618703006672812228589858190922254124601843120123027355968893201657236418900254322895997696967000694390636938073283452090769075329502713006351098643672281653385384385266402081901785767058552263606073573620651520126770287237429553566110564506148333172309660389038443981190290239809028749409401023262787723154112774919521924325242026558673037129546108305020698902125816063856152249100226691664974170574041518121559063000608369007424006563626215684137860329954083234998100563664686450383423062800064847698364728332893867847824541682481817969923668554563538766589549570309566891299850181871231694336480332249307350130782185944095250657001896936965160836826630454978419597095475432815839292065061370637579718928225213173280065133304797451488007996528939177938407595887703907942128623524407294923000298888609046060904568931986723288598207048483321822087836887435014534179779492727467552623952991818069183973569060270569686924482932996837046613785395191727382487300986625349829502352170543657979875735018277925093169364959118149302793604814739315379816938653419174292600486975331201192110852857863290896060500996051718739968738423358729816074994409064425977348502538330923603733600042396739159363414927233797354677050514535282469186011067301088603485959605259339472621354374736819002388172702517623703675910594209443769562321246262367895492178490319682745300467173635787118029479414741708132156737471875305358041527785382599979415882240735719913121710788779199431840264791718347183997025829747082352058500066188524358982031918829089636799147935509762064451255106997237647931206150596660119280323120035277330931869253411048573448405168091342002505090321854834251897446778982394652481115070012812280023222775084851605613277222877737126637117852438044088469498129292406796980698528248998442761715391075962302010015259481861786655522812242835091795801765346676237936211901809114484502942376850038847727740011853448487052717357806591961528997498885607854671677050196532189297494185878976945473794130644635416297487323120653560773231648674046782453758021441220135915825806255328402620103598195180115097021090218010702928975325671166178422844668155299152431066771828554704023954043009130871752031898032560576189388343054189679566481506252874839129604276633486042229023600755677679310421325603176655441541029397837577901728684819635351476225099113456294024297909773961477813265388465035692286657941093320440763111574981464225728859676159518359572904847182686520520614775776306467499687519198836246881814741443757468475212001285871978420077337727252074435725442141051591199801975464452147715324503398743826050583381911125280655085871116493399512444782976195988859467754863814601510173360868543759112138593516331047999767809776956236581518780875373743111691543811936033624926989360023360235637088098808903209247588645871467923252796637914742707525009748359654700231396409204429465000605082258096264256092692631788989525409705857585971618085462430366500683441308404185348535938030574455941684186920350169988412776347452034434352444100904427542990267291595377002374288713470069461771820162662257149652645548831087587401835099450280635877317493856977592788669402483022313155524113282133942918975967793071405199208090740123168241391324618477520906868336366243156612401029392811797227807214856944911345674463748288856420663288381236709716287723934454592521454365263871385621316110991032158243715517803082657233784069441030515349040794502864640743111073437119614377042405796718833365580888272615389318496165851421097931190285613645022165156091432461592709626880962565607216294904081045124197611503982954698429206755798064385716806353567962422485211955586013132955237331333196038760613280063301508561868744170242524306937716961161356227177419132159481511209041966747147381961288040292878473815644929223663521803721595003194784169934187012720133714719963504616736614173822409897453382448762726911234483345854034379531893196552388845995820143375591672415093163451091562615806093037554888610936651094772313731497215677660076484721780629744506469547544023585190338935309018301951014308000458152327341118670366688679390319671785838961061840627241624507646832216320289584250919742840012800064691235116065860354383926111666649908122486507819235340020841577977957325594931655438219258059287287325264799484735195430688521358625030786482835844145949829612332112227359982823927095533310997134473798488538354917149971360044506772148964244803114638856903825430075152945625016485912422351394000058371652671634009670180893436424591657092475137423782578123194583771237952440039844632968989004870525521918922071314985096961682503599436290867275612379689480365844927138505509850928861483472767836802731500389014249617827863640476138420185743760158780515976598790673472793426050475524783715443298366142745817794618153277684931322655001120179975170620930809178465070589336595554398439315247117714810879392574837171982212981606537275305739918306487553845350181177470440445021756878096477874231597859712936889600732937695310505919954561217058061414417824756604111167058587135767290925239517281023950089741781875700518587791507218687783067493920305702698622860663589293595540388945233822175231917001740393653756117077077712448315677169702792204710386476714415457890384107389451316817748824987440299103265975812741022079525460473606047465860651005486731587502665388814998069287965638179252235592925568405061673242704752081406081950763122371127239047256918422793819993117156707379336278398184880579891394429253902603307765961601096153107993652120333511886239916735109011992025962504135575375379768938674718667586387694043268137791689629975074704674185932836617360777653534106461601267049394292182648301248685919262183707081685713029764480404362022779958894010561629184680479215989557282491038226956824463223817510498563266512145851921290584327829296868326892323543319605555420839469461538280553847639103371739804255260865259752548424652241319071259295820870893158653389109332996596687574928578848574382326589502358040360374583583029064447258533195207349909358791398832334523687203911812901091824517660501273482406072713266789199334438109804140871154462494424191500143055061392143959625494299751455060934574019263348651532824276676938936385192383311715354969090357689704152125451235642491684233500731676285295368907266463309789770029997505011546884401394052266269575362131904190391927292543107291908082405203339782450634282370016279052142558310733316235184122465123003125170782884104998926997860792203316625154000936069230005221475542283246450106387183615304316091021929774027772056209622272141989176477018636788144688082874278802236442630897089641225104267093673633317685448018172206086020535870484836539367230287937235792412752026007418410692985968536528428662594198299259227353326224074663679460148607702272971225276561713108787507828410011995229362654439656224133090341627660141733266342607392302203193572022813123397877350126044947819278893478239223451118790924927892826156439692708126478799611283729860816186045764799309904862041657133812171562967503836208135192840660490267442976144562581365703963223392081581943083429791409013098261964891717315620362784707549436098430971816396612002894709173670413987364593640485665523191083949943724801719320730768848801477897811285198653822780250923839961180717017303935141933792112201153610923355917725360131531707193846214942347339075817477725581467785557358211996610314560895506498468665301435751599967839107031721535289121453621142846596314350659067852222302339223090098130989086060711234909024513392736977255339970028450839855547220931087672354290234067442203126540843523270400091190492322891150104930293594563292392715283153446991822401042567209898644744303794156496197670636580236171343983440813394909981041310396937534770609438555641508806488829336797119493174477797161758890521636434972962208134143551945807621458963213478124486982032623630364623192970125122756610432977917657057548349960215348454929466236650236924253533215191991545187611282611948516856461910532395539800256990098517480846923451472508537104235135647319363300048928794605924560557658651212491563657261598198020668572538993566892767332708813434465650096183082850741120856086209836658887532001699207668742253299366300568957296714347447887654262153119682345634083454317171231334887606613572108027332177581217690030678006428474287595995848337966307520905958363060454570816304709692487198900334052782754043065904625477926505728761117546426191933413898701725763906179259653166397642789812552557066292353255851505135856765999337263226072519192948460003835982379438434830099625869645183549295865692861580087089922202878393750880153231583301684380859241740851911009950769961526062212946843305346387719091983275869606247267405719509558437785925420922641796150426039546326095429456218329513550163006571053966424364332431790478411426117337435726883337628978130562426817498664125305174128746288027776520098434765966400292468629902751923538191006487668531332619268626377701347797240414473469687844769590951175947704071606217339522015969568394130201530605122441440777691447850960086705260973441592860260786212462510698411125369990141938433518829224571325154646144731150488612078114371424400653728143665691036638866149261514608296110287397806964724429618366810482401969167333604425635277425407536607884450758479161122858897962761787609918165714840208537030614292181670960561505213921561312261506081321551784502084057440890561064016535949283097480982325505748120399165221667023869683821194619747476037303206284083349533523752648212260729502929420411533310451327606910986567389123752206771775271412066697638015721187185291368259491235482520320578701064065523285483983506088027134760891908102234897409625068301698607526182755378782313888548555835570945128801918128774451638175754637005990044966832385730616188909700217732208606688711094633976000977205090835939752852566599643819172285753227005795074187380468027222764534445175046214961166873116753169362378630255455248191908882257297290911587634667550966833868471953593546613139270114068653495484965836706674996097178624017153402026256117997291081624872274136723319460211272841516243275197635598441452371808346029833862835601582990098742380323678437436029187615936998008275846912908323426144944035718966001463323339687220164242786523369036538062508605373609361658672681992301061175364078641870123410961915519817368677503593747084146246601507200910116276100894167684605715251956938279454784423176774812166952213998837300988817096918132960421477380153271369649666390713236292165724940716733505552880481369338852608907936735918980680204884156814816887421034852188056760319146804797477251039837554478226786597617792558737692427129566369199779711869318565610876078917053024593168353893407363695000722065657804544831641311380806109922751246441993198484030178022211997933877628242167084646873811837061610474214062854683719780143400132219883759976268582519197399133812381266245617150176755442035551642545498885944317384971028838341020952865828813100576339189107530433140467769250407063721986151082101470667843474974102796038838432759639859443328256716910517707808726076683453846154090622567144810437189662185193335595930637551855418705472701443588612710457526232605734711783770223735878243169991772420173657882495424627411909553865139495332633623776036931135579531777340760011449339844548392610050886517625149732042964882415090825842274658414315337088028844428976548759325467686377555599749129344905597108082907505954300347226806796976931072944321985790547983620716790049790449632876805909860912800958341090581735409611431219245166970294474520734113831442751924463493991068794902263483277228475000406934865712302081043757597010041536337465841024833596590485500588924432253906766511514060656206805952873991886887102858998712994474719517048475092533016243280597717336245701793413569815067186625140275945399329336663319201576208517758543771872433119028680105965321575455787811631191743018665839074440298691290234045206990090176345409549572185551913953022488337197699018450217636218046366854783919877254763578182996270314294078773058645883547083461307136907404352119081487957873390471266148168251269377168877966901291603009547764421702574431824285682644300562554022275680154384775739429316812113320198732271684389887514188383631532422041882283206406682790480853934347589441319182964142694405751085157433161657608512308380429358531423087496263200841194653260168789354548853491047332756841376757904816967256727149093124402308754862172337568235381666266232983528433699073518576487337762796710417717715608077889384370794672798619002104230132595105686844365818279284415776073015735922272326694025745532797982484963197908981168397369985386687609092321288870312029065835750633475319909073030447143204814657988651135061721911967487226784571262526098454576764475695865145727382165108668378539060528056641291421897165860699265428203140646232509618136241985788546282596147070329742543365569119403295929201990781257400695292641705454742582528585245388954847096757177789275616396262489639240887820625050680911569362643868913951080875068291432865576755639371642846202001186222404799500444610844400983028030878441470365096956007665258048790214874050479104134922346442130615857980467547581451532857656104926326180670996844316719396337401434700166405846765863048272504109334694837346767411443702388664213348869837998351766072921717156734300467538545679431671792813213878027615653593784739638743136877445714609258799400913030226821477122560214232700310754018494313373560881772211739233756432044200094092037278826064949727815494668563532250753087017531095861321857975158194018332487503773149016533682494011361770468477530316303594871379750285423665628889769320871033151557014040818745513696166523689359794699299938044038355417215759334405859503855246530331996706859789409387409201361797275446933302286980409054881367365259899677183967962580667831237974922275051419074410373863717489178807412656683392589970736399249243644057369234185512676749459990691940843846748110399175942850952536580455735327596049601640028957196519714644920084080243018800441183672854512011006582483958838649806582127039480459853711259870422127069121873829848175589774191397101034811957639846868906429461416223981238371565220656599619138486341251802874732673390765702634953369051668711778519880081108130372995782337044107604413193253577325990076251489113976028298751844457026710264463733304232868244260791217083162755812207539988302039689022681930417653999020671436894856170398731022254026843699958615286218328608479472526240203543308833842699404068072040887564627495781501468038421305568786405252398050499878000138028201576739709699927787930733115200572338539815543384183026506956166293168792228025377564413957634791741878888298162961427774096466069829431078061824326031449766526854347323498771769647346323472418407741860747757682080877891307682902048544225479815979982839467220951552320544863989550394193041788209022405018724129760144550818436640389148787406012632501356965291007707377618423590885869873515314151504747241576376685088890946037319389203403871294864168934552193584184488812805085483269070478847360220018105418720557050873776906570929994537264750098178359980091514769387301953677385451549524193014929963396866158597889153499904063830451662210945264221570927917025594524370860633737178174398625942073005458299398756284154437288817671752738290127818756429872159981253327589366459533918137229613411176774461642602422549945768920821770159193030074655321701144418362990691118948581197268874813166576393403610179545254928320932365294346452490370437101056430177770934245505571812803708910971521735029682610246083430219160310592230341140164458493760930233996466738294073571480292595394929623429325356002639841725070820725754442468437643238789351653273021548573035088643171382501419590507081346363473226718843192325252225972823561517585325883907184900190749901347642305096408019174726464109476558243385921060870257697839606774513026111734191338967048772585999989707564352277017970748752207537531179510364098523313960231519651524415438513224128199083813251427861609266681307924368850890072545310708603254727366861607419835678679063910949940852062641103473319323772508002686071188621275361486911167810926854173612822828147397935943225414579637223213674787800738110554772057818256159077765918525269356545110261481127179672098751376498541346579984437482644493591921954926114352639297658065413385843963064790685195116965970211089286009146623808444629921448236297065471307765549755289263527915403871302051272409213714937520761412234826873177684543890177354119934969300145500827080196776395548045375510626893411517829049017933672894071605128351356832653940241883609202001224863232362258159561825581037888261060906248640143521264199025258844432963037637647012487358769784190908919655498129576946855436019654327416957647812252481014709519330356813378672320611884919231916417167734420265697111389762485894765166692214965580395366713387368374435487796750037725089836935519590779909798836891568514475422070017217721587449198376900575908501264059194396129458469081026614437464629597996434793481552454001186383000610553307683379232216006422665321718609256153901226546912360686491445945336339198967284860836448433053335062627419129233044136991563015670807580570349863712603185598335202785219089396653465149140026844449901545549260469028889229212808915661434097914830889509158173009422567186289963201928646223792244261137063497237002138607436667269277699915872600522479545757411089994787014965515843504950354344528332773432190734983521599461107557275476600756665723327666359745293818149273829322527800618999355418841334906276805720302526609545874075705878129467543376516580066419396822058422852382929568483242127724742411710880927697870786710714635993454482591917064897964681959393412031519640800713398295124654832292159351142753320511993206220624583623204632090204628368288916298883191242147945346161966554973915426758974633464749133074460968898945747359139047237959173366057566396432523162157436226105288855013979256578515799848049776698051830589890649694199548404018843328110626141404359293616231291254815587774269709295310506406438790155164711114390419294230310884816545650702592624570543434859441097499203416087980854202960897511071695093113084792278507491812879105266458445086786032819829441803244295761380594963324377139138372705342709134832879340273871812703214127051913772139328632904996985565990179961464956105247799087414486674073369060203205111290936556265171896457845695488950457948268163783381357161770062237748457655308040702689742256783731271268558169973096017273326919346893586738416921269707203712656374006949494800655949977216161890580394379624215839922865500782910625599430033847000626226986264240251900381859133156329029463932637999016230027285751927854405406781442653534231747419512736940436341381969253282655016483609496333272785968253644260855953429816628576484117222273346645109363372842202145497126593486735010294808275751409401000873831554951927930404493866001053448707169316218837307942292170343530535290919889076118529607727643977874935900933690134235562351340713785416291646119116301250782551629785602118140658177128207781404887678520423685108689445450516120156694595610839373672795504508602014402236789057380121992532292916589409020493350466958591311762528426185863747679835557382440265752270677631571452678214239319391349217012326898291661346895164924362247330433200378731352520624114071254882815995544089651554907474710168995529801802432278913707755339369362936944467785382506755487156600672402445478525358024865541577071210216563892612078249982698070950091723685198070099480272297412620782145858128876564470228491299130549563247650780128868557219069977302781236581010707439601302546493876615610207511368537134556605986883524589625271578049751264121151927633983495798102970556837293030262995451360694395135393829777893630352891235939109992160750995711813537569144187976824332304513131116997305049056996703224117999869203027861229815075606481006163239933560225172054450811971066075760707871977351048555577089483444783741794483768100490020596745824435952633296416807257299899022678521414042740961751429225439848315117470474868725141242238313954140784152027145063052297974517516678174774423247762565443743882214845527646522226069385882639457111048521924077901869923490304904486867988716937725776924822363558188326093988571885986091415225003711186687463715050617371685195182035937764554471693899469475679406158931814723556075266927667034795634391704182408455890781198725151501889649879500536013275894359423705704610721906283095679415478065407922182226446821187194759085041593078061658083944942051330564962776235840105650783642720127965192172709392509992138750868823935051490100531770000735613527643139987549073660602288317591260836674195246790885716947155430016351207724013453598031930219149517737258585078899776633550397737371753736610571710349861744440513018690615136860468137138501808269618307194086856770990603773111295830760434532892753850345938426033551693654823287252322038317694606169818020305754805089835658921965971571184486708727036220689162218216792388810859195976884868511085312525340872788626028115155727446351313230320014397498460186844749757033786814860664839464741544892065216042707179548900917461648276826005165288063979638969698432876507474059689863030460456564470386763451619443220256438354236758685187437448479442832862637953618801918332445800896680712026390088159322185111263041890563288948724454442581991214978859406879374138194748506240950790629817189048397363777863742052919837987278218689437364202192266745825269460522185375981793550346023171812776696545315464415064800433094595766268956639905853781538818817525978834850362953785440494781061954430951481911006962848932502158043874494861684914900489373478742807303561158005267645934724679138777906884051554752275323661737967461897789497915222725286330566018766083013935114371554943786090616484848930211189899992742352402273735033916329029669578676323662819958969052951208048863929529772460297855654817025822600305596404098066813375857962380575049874663883865238025422181935594607355516208557643260323829318949506306443521039331979851909044905783976179823144557359641848169930878091807112508754967426900366793304324526616339484948743694193810473056706486658712654044623586843854963099323243625410164551631537038947046705539874011750146601264592855302965996263145915318282157197133742208164394900323522227779875225097300489924508747015798305502644350111036230905250948314467532301627548685725543846310506238468434769913625737091790324342693385442254663403725962007239320944341424995223788302590397605035134936086893093069314070301114581740429917758536938484571129049608248373469207127392081856521646934809022933538399168175856003278491954856516670933516161986805343945850760651791219288164682350004181952195688768579996846293874310891059870528626242850256959367413912412254785241407924514569215731716815414254413381255588515676299678650269340055380662536140243993427066744434119693508751457144625658203949765324515066690918140042903387943401561142134484224324591648506372773879522186242967718430721277463971252357233245596264492824991824176482101513032418401064518629276962261471445337471399794681354200030051426108648217961632152827835588790397556247343213926335666351590991141734415374838169023027770359831764087895751403564305210721653597108691489272127302221216355513546259252855843771760813063930465937989480361792745158298698367495261286429186015723677373823138544451405666649546380001254042495355339021827964028692678675027633994586573725019047014006479089499257124180411428811613364915515728205287329994877816528765192885303134151844469694311775216617302545398567015083161139454305753274786623799713391158883832197343936574511812027514345840512816156014017998113263669346307571947657785276446330741858160738495756780761806127333141934156861379698336031330436859799738943780033727761626332408237483617654073779854108694739488200400793100107434827743249457834217554180325258068785509823874221196816154377849711834177193126739295886786346669811964739451594548819062242663214443135244597111928325649330863288013290702568308347563550274045166874449974872774414637725387360188900284791317373112207906005546861820376739710516462225486879196219901008247259169158399169104011194923555136845719351436299895271137702319787517849755108869230457773311780659741193547285241930219249142510648415194626027374903607986614035567486122102300581575301612276667878592217728755287132932098885335443268014560389132234207632940549895427555892284246510774826599820848919073102139597812744744329516544236383563103030697470838546631924798105628341150166558647675935186846069533623771602775834958406269929232369692437405016599845503499479183849999618090006693332956185200147367003838377074787924443143545037904513607230958423907749558033519771052807662894713015615547457091135790608214546849617764009802168892514067534306570864002477914577700386897613865512095829761079782846665981674211363388836601554338662337119806564916788169129006315209461521528231660108714970942338507602946186170123302661998660053538141161058609954941654236502510319765461305504234100312336110427612569887140529920046272991767580412276864080555181941178128983635536935197474689285288600300278453163096563604475650970133495055834173685143450243090663642816246481354601682879126169524882930487012734940143316213237199936021017524515856316189843026811110669697768514190932604667697563183453008291729158010510896136161107448263506905000397574807360386622515116857735988410718684555442056787886394666028992676309521084500574169774918322187829721320711913436120484577945196197897306125026456428294727058271490187814722012476841260269211099477072542363551663336671750957364994839648068287768452298924498391849860981501052270367891478057835041897440062225893644984316058788357344659787521894496112722024988846482711631606131584484573238037458262780546524749520315823701913932533011602436900369667946752989516786139230272415653049659113087336179797380235905033302190870071334511615813414835289841582509021763716636438144002683733432721261181455627912607365291205136257240966175944216027394830272909779202155051811176288810122309270012043147698733936342119261716441698653047707867429238386014106335466826597754812264967781737279473296315208138463794130140092503089548668208956536407482344181522818392154060369380662845883940122563877320183570750513302482376803845629498375974644978155918675375198932658586431431852405519825680164761818772755037581573592848503432469333648443724974292525401296457574194942301694326728721187342838700323965098480496412752108698168736455776406541726439376525738233338126492207061129220233085648554936755074444957926393103580774168463951342623784618353838923472550089859947935632398604982587628620979276419958272461442758709053505191098543750142332320002241879530059468208790491536848590123674877933815556179078924702500610104489477466453786798177952393093706792456660503841387072326826071558511230276886037181030613333885683511389427217872032473100240026885223448599618928622533947880398662054550693690762012644635722836004666486635828435089663257078802349376567832164792352613595546131686070148666558251389476073195958418079605574044009042939201048655317522689016798156112449349733904752685558859523669227044486479684625402742237120272492285092616595291160553567593478416020632162898417739126879557013641714152681006011956949400083681155131250553397894053561114498470412412743261045964443178460228189615553009516990076895842847172406020052464053528525956809244532674550861964449270234908117229584756578791708838663116770632756998440160426758900945788346290697531373445721847817391123174755371785992542390549989131307644020030136553469742238096958536962827134598316938226346679898803322801087359341977625619817450497536104144451716818320164405376406604901690884655732505902752420361696468977908459482440329156704254282188393847513364917986869273339246839559862759575315909562191226838225610911993994699246738705159613225827020786818403690768231595922564380442245177485922704096169406699405945387575034622879390253609514224341819624480082871713399990985099503900247621301531179848961606506758555994530766308973829598401743048614096405724922565210728765890084391203065805752735965247393440522048302820792296058350414032162932402670152485035009053776530249841007720118088827249557564881008947780679623907098065049918934651683198323734920504366410908670137817028977669160397133635366213308997162179460470076010449147421606166402202911922563484826902833208673291551907087433566761801740636510050513141881182139292223318306070186391593584935521406031085434747024962758137733677633273243556908159979818369276878564640355263087138479143893628184702872824330554118436757573709434132538244777182139983314071877713642681447559752293002895193413575997342358390098337912075867980447111788672532403053097163564398583256613580303033978057858752985755271693875713156660012075497969751072155593051867718627850609921492200842548279385002242429063365832532393509307544905083728336866104394371651558921993885177342768196439891203183576768859675219477565756002058615189762622945652071870047748349117216685562538966560944786912674707325636227433476510459806217975503796800498555671775793341896351915046743235785330302156896075687431651380147635278231023524298944617940775455107898767648425853130161152068454946200311864434227726618735457061375710886252291104577571825408975280963563647987156224566388693162181771143482129963415128296549515412473856936019377631104894053333508980679716177606040745352753615638789660258692584370354696800039770481175205965781966094781363988450907871964089281657607381289774563343257853198608897055994495819389115602135201537201026361963077102916997462589956521769149861076203417897295857749804682794459136510201808791020119201981990723260465308229608617533463490139752581105968525195108626216235155027378604147865812949603647863439926638212804135366874101623809307680472340606630322272162773897523445514656645847229548425607390586063216421066742967721157622831180922960223800908731109656091875122831906600644786440582392792073593151923515085379016578181871712731674768883966377493041574576115362163565123808937295112815389761121882717311369021579451465206060350162995476580816795869803984501096458100866747844763144568809559053657731042937911543612277301182860735769677061617944829429859150777310092352249946327517171084069420461343590182748314620904664603909806095938745283663467653853419687675914743902882925471126606719250081649326753115178971351169776653094923275560773492213403015335069712929277731666991846437827532107664777418636253427904401069335397421384355422370282565800168037492831667883454226823729454517737311140687466639044168469056942040793664940017215302351483745593348516592847947203668280609383725981613629656554538986377786725297838124800492250467183179458479951678122893520601933338901962092119768174582101883670893804087373576677717355923463527362467163042495307637999076761455173070361506954922657605093303921896823103502694716795101928109123116131508304725649195059916866363853922847003576696690870047730912745877220623878606508938842606036540612342366044548307961541975363080991801539977141704117431204720389174245438253408867328214741002285521905501663537312680590081033635350745676997868646625882877266583657248198766857179072633582627396859662817828832397803006360281834409311240542030484642622129237853125650238559364533504032112245533507524704781917621959548820787388656592995033714940780208262302168077636835056264501274449001606197012277716395338255602894813453934009644082312106751513908987273556507640776211687417979883250635488370432168351528451352546815017937376980166720812259445820367958975325399713256641710607093891878616459387504310287965262545766460678295025723674093891316076900616666909373176813757145592864067146650602214858776348526191903607332896423838809074048449086729418973420060496125934674724049050545199244188714448973220569039204467154124350877696132219147699508515866616746061746778890253648605911410457465039265882979596211124128371843838502424922814114175677593813262521296000846468546041323348573618621529469401894123786415634092668842758421513880917134291605193069413768893695669201924307127709648394396775766113996582127624746813245467420323885142036867454498862796658547286842969641356371823759010703707722139015040748168431961911536248733853776798061152375990443507395658662387897269744825459122429577958379512940896538622667347909725793763408086120460336348555874110333154631138420337757219581992186744043531024787026270474999620275214009928604325607064460666731199468317808974319635207788338142537166131196205713687144369453484722224824047587585111817183253639528670110643507154482623654068187299576145286279441851263977688312301781682185029937685587363117647366859168598587181394014609427989965966928025450607803707748937672673991443627953558917992124740555180048019979903484808836422425110005095183226983421483423793795871404574491892792109409097970362223189168059268928508817952826924677168028449345250192785890748285356746619270744650849422275585144801933448431713881782850044028587084170205925025702617589358502672049128540850302046486813347981001283183043147664054009028391845793992922835883350342099153768185390951652339010023173418369179837414783498303403320450844634532323372105971422206528785557800507673874805590617870633344041741641365594287862179129841446959209996809817834034373764132960951854486220689150281277023651323709752249336655758833138961265236850285398530768554772040344588604322034971581073236050562137325401521457004642241245393523290494297837365352593732102569062090169864834515801220124578600289710412377364669321245402669521038048313698485427948971367838796749197905316500922385577842260853636833782122269566452937538351790189857491349853373095137508122941705457924766744278980792524498223506823702048665011741405258360826556301839521533822694727486614292860190750963045942875389492652623040264362589080748449830690363401958346457511670584759494604062326561766355315808022130397269930996322470670278582069213829332625651242641762748555794808332466353823231742212644197297599537364468138206624241265315556074563175849973263850997777182026673554745412445177642998397946220490123078906984415344117676918387645555678688369150311505404352568740710276380411080283116990947627213709916572130078906974754593182839082487366944226976927777389458807879780335876312594878355410033059473250787708350833234516341924323528344435390241417950546357063981111161713883857882161662239633307442653340237675514807561465010880223168568499458290804370876222094980104479027113474026160418924490171285141239960588631260264182033644069357917881747686510181150564981266845848610429644582163958914370567735110659420332218566250729891443122160380865367311009694975591594708568803786718174982295173341707906748482943345916200034110636642667676285236406635531982826440822429856176279463494216522755758862254160192189519859774686994978506107613949948968702300238081779097256567486293345805909154022629270009165430760824034655956290365307580135872795487599107738019256622955362237899085839515117762531918752197079812613837867211929291450773641230894021557751859082527167113624000031147869218398529023986236553164100478613790921222633046735823548627218626989289795841120827469798518836353576124509135940119382050682541857875409174057524787651290214127217819339264393773184328982857097596185512026019262172452680676221750925176349862847790163010486521780826191099088873659432898592449955602801550586629204498535638591958746047897739861841294460382610553575471154369834938342600097590943083530078935179815352371103159374731452230720551035551040559111709252863076257392101508533342885770318785898475518797070424017515580193381511520670872998918006315008684007801624347742373329845907898307873500320714407842538590951458500606763764527535552238952078560239944100673344646640496427709584727348934484953078648915869112989978019874356836915001081853499300592387127328914086157352446470936646172624935145655889588644236674601675926107529266527636660709323928506876399138421559690604577929098459510649791837402893230179122991466510935015715275764009958761247468151846159403743779544416565643714692607882047816588898241089418569007536950653652538330885659764952748018909291404734404197320269624311980436685087799620041344654533964954418648511360719340296171895391773259697968369621784458137930509003568493387563737472450998103423241259916830509233022575420856833241604691817227707887950508829269039662265508112772615962011423235107705041168680492716275279904185700315593661071114844989390731950025742422548788813090979777910400995964703813993064556454045168388766343761525139821336239761096092823151173175788347933141307960834160187427397380543495238478184993052855690553299039679758067644500296955368284190560088029301040816802845303636563816775843485982576535056871388512258578176949914662631979983670040661103131805464907134938157777317837315110651208482630077193546712852201429658287396340049520732904406407818859417543859388876224434862246792214214552066021425773492079067726928833674636176366766341462790561245695238073777139904036401826751825330548176471180557552724183097305677605289859639875721245169742675931640174321813177421796777250192359132727294267439600143051256672129249766090717769938524874059963918408038446365839997438647060024889905134395938900721030132654705161560107885348933961743673876008559883010135745061781100684218513038174205297027186330389538873557699044839486647137809147561005289819379410336196358790139134258850221657034190061353533293659270467964987026667272581896032980629062996253732121466441391056485774115602717712079824314227653149330662566888162082533308122794141651442655952515577012219645918613755463625205385377604156260622640064941502890593125072955651785792105752608988851392193502866049883659599315761575209213088611087720365211885018366142022864200593671864096248616972753730377256057350671812504154713398359277253961927181343612342050207303754335993131920172670877241438202517876666903401218157731191819301292379415313876056977967609852885759307518748834450761629770106828532467599403101349496701918708863732604098977451925894616425814959646902186165955596642755172744991120607481888191956324694096847482275192155216368168675438589071080435909334910927283273488215282483851528199485196181392435403140490734462871367706513538201266047481348928626683269329143665529584914083886846971988762600593549091946810304317672532127072602407182113543554527258157603278096983713642856077781501059652975693969803229581338806805582639642629821976766659618694777769245296317161907469328501699235110112311145840618628924435151948194331147619981985182279568291873308437387940374002779877409728347355277392970356644736805283866577566046868688585054315794620735153343786203372603782294300313608887513613814756256071496954985444892017851529084217049530892430921922200143500434776491886854919886126982188082958269592010435505270805639574478911702428645211396765583716247694700505825234248896157173457588826242671377999442000818718623641208697103856211609810806042487106360344682889022233654895279678549371646601495927546492834550821337605047729078521169439285108376544131798381860280681497347567039091284432440731681461261663563989913303245540425348324389020510776679316579404411118506649871807224592284398149081460205510122651942507016005813949911755424256622489715015469381846775327100274055130430660131191970569223131086619983404957312471342547066483306594735212076555640937312448631897493309934380168508312143286693025732428417837437746254241331185747994067747270609193446490762616444881668072681633016009775784992671773841803201610683329627229461631338122276091613823936733127457706151967865156256737208180372480482558037252062948953928119047147742420803756135522719207370735535027306829118017033125600696277122684744261692872234503974782844020693565353821090315915717310985659232774721971589489014721549356008098891188910751018697659497956969429147010627854582687921879861916436724564960460146256313076807775878428339273359464170590633951864247302776975784667904601964264676509274376291298897907361752430408939636219456515977384014934998034518082337410027429957049164892543153665402551549121691226641047442233134720541484325657079275764014680932297935270935918711275922193767294556907319979949612418232624872642060538377606869092321805415521369350034110105447386489319940402083437357968341725962850585262836971962726378401254729043822395199081763925725640285079030209845878746969753691419069465540087911918859663063582477468550622513608577062592069993608564032629318096453956027122458539550994357924088996736654184803013957548414445571704908279146533783738896891543178093766896678253951288521072050854278296071630846255108361918286055998110293965615634409417047219983169049578893062289902142564269624159342788260590661945190158009354115628967608565905271288455732523790600249749782662741177817984185505479942866829923271365842391139164553060346063634385668040985444896999156112569113565424482672399947752844812122973100372639977408893341721280815863214681776494822784321441194053625936857449521188610187575500986798374068828701544502172830662406446775671416944946149468289200485869022417884265718217031177234273620915311661284688495846493279589145640953178705272116826485133130772807201786069272876397851779846068011482319554500018396469171946584584834714812179553226484786452253896814440324120224886593514173381206621143600279097724759604363017679252959374590182129986250294521844390724414035527313335755399841843029651352755619544826408688902006579279318138647018336912130581847211274505086322867376532542661332610015246366254714227029787892657739965236571387269333333898884890206490993235561855760750129504800076905414046476164963012531765491301454482647146810782715922537367009520215245621587356359983155030304747511099286148908056861029988836545508804444427497083197075064073541553339046200951734505190221962020744581722277926939117463726890440095533085212941952244779154405782014724173316426054306631157812376487951004541414153783404287550935240507050280105103464853837150211807940256250837604811101561987170434655488410831432040481978849894253020831715382259042992104536106603419082557909580241381363171601455978995462943922247906927485606414575514993458912730173083562001088691344618599534544434205520642193183685138166148013823746612444590950780265219918255609114935916468780644468669523746488645576402839825207270498098419280367078484235401761991445407008535421168746194961362521045906060055641495612996476773909402051930572062884935278442622884547695256690234015538362724578971354107784564785480247701528755897767649687635223908950745470248023854397184127350951264079248805067505111571076263136652099522446226813929238328050211749498876579774016319731893867436307281870349870205244590409197287824744881680842950077158503592064834770579797211826550545381579067482596266372693465786973580615501591970189098781247292858981289090123967432431302716531397723671556328944990987227680773704119868089252742742725216575582663596954150041030155070919085586092470918001413049063660916694173517178020782599862383676762350712485398107561028077655235588748078118524685360215132718429366523465994042972106845315347259434447617774249518365221584487329415566484468774213758728629111261080494296341716597923070540138377795202602362389374320116309400978715799695015354061950050841113114650422569861085830474649964792600332297775218695102475532543120962755033662108795228522014605565226592614789757449823354478575722779463548131714029917273466684754793384442736207918538124287899549150468264097450461278380049058947410932786112299824770953215318481017647532913279261131807689805069403512787255838430366199859426474334043648545199168442993839931284730205369442814401594565280039608845763810497455256546308032467303462539328042447969772660020982138462483737324417660131579670651681305340356943975727683646297524137971788845081860045585600854372602869293111989264976460889751053952678940106066742814278969864820878198593647191094087707618694742218886873141757923120501471059044786199730063580023238019489747041290528949051733839745523699687747270329170572354048097346504041962294400543419721496835519252565645273600572515491791497003344965772056882684973707299360199925315832421298770642306822140764062458221630160477397463944371376897613918683163343262492509520549268190740055153719658202805820243614464105457478831115266228433194194632831200084565793136325024941271377429852015126369692643194398615783370268491430486303621964107222961669469941882476428336553756973909182601126339312608958156605221047960916771372246663937202423936610694226920683106603364325041054937326788522638342261267403746948999390207848724007200840043253911861764343639975907258225891949032611146205284004609356843393223958913686458228904657713411379034471862455852354297192791674539770211114412976521115423915379971233334507991371355940237535632196439672207246835148454501138067378970077621375147933177666275493577478533555930115571485844226297632485530994862961940088360227791146425198047447741456558771553646811123446479108834082665751264984895054438487880618011512341084144671924679383870961761610961045879081493919603022871798601503501164847250083190339696567517291695463500366626489149715785376496494734238510648934584130165120511020045493752804472179739706615876515403880432064523007609578848773878779328640533437867548194936033268121775066761542191593022322403813225101629195423228046269407069368715604458687858262209942973728088379968427507557027216867866606755172390090963769592489440275511794362075472239353413234910508884456134156228904612972535095645997187722981922308174710207835260713610642372403888277803351027396189141099221476369295489121889680456012950710532824021520916517248536956741093156198457058218918298089623362034293896414850582192561588944184045554880609605447867569760640357131636344478044906043255701679547969406483287134460868768910325758615906020749137106311071833153742477417164640368661968241367738064035118020584993528691110649650669446762694368045133996885330002622729639987472528905163349676433217185566602799677980631917221822067222566623726360693330884374945295772034233364712370286437784538484788253364550982313424191332244699395554761955545791326098994241788813317327466405808947006709206317925702658848898000048602595020077864609417111441889374450726441526265707288491662339164331085830794015443112712638992667985214553478248776114720355445370982378027505980554740240394842427886666064897907571121602674659816458267152349848635166432224180488074053158327531210448014001927359309613392697544486042952843505599676189748655827451143540203460829593308519107573725219529651591997496281623914506738665815655656813401845136317410854560862833755732504945897889972612261824631588123329864844300148159346292127567553066397725873247388573968684978938792359548751929273726664855973728763932380453117342589468467197348732450574583177767966538572879140235266805467491019781305341766060044909693695914280698918414984757648316584667445199981683742209543830411751838374633099615858321218084132812736539608220719724889767087347970179720736617383323211234192820451233119758849567372940860297875869805061531560031212301902367253938676707661414352657139642122834787419574350382880641946363444071738393827116766426632777141355158626470105565914891567443203714080163311855967225241363916059466060909940644907232716044274245387029961043772978090307314637265621705398872805957980972992087749172550881912027711840125605401485744908840058508485608054696237257349571514766164239091226572665188917613788976867607028078395925574109078633591173308201619574890448954043865363059568127221853137134231049422382906026702993983832096839295064261040247937735338981480393991382515006688483680522705746494412194959499439468704150871792938320444648048697564379212235445091980706730720145264122204689944760296811132901298232479817816369959693244711648512299717133652694540111571507058639147735154448531443290831311822220885500850902711589506648631493340483538076089742934216552521648392473658531490357675684835305330677135587802348303323801170085195111176769386704052868143382168079878152129564077343590218482916421568576825433759583501265084545394355093523013768103487033156451960102433396360500433299955885495625205650787218572272276381452111850164688082733919847910442730645248985617638362408793496546501390197058970208611491310584298215877589474857253311274449536170336216583485663558608849082361900897671641388016956571576654034682188711466573667983379747231463550258728127431679346619032480878130240769766627921999584328838213188058549890427425485078079062130971087411582743650826624527424339492346192908402224996497689526895010205086034962426989318675686254176432954319991289308101873693739559523130188624350353370167250786604852479320583389842845240730585141054232317228995548664873794407510322809694801240292614275929724266841843238054005300331156999638022774774365177902230022060531608955604911531625091781904521026089272957628996307082226795116308305024756224811580813547571067888731550919062439239204017808245171954356974210374979195015102920556194738810023809991663373899893955118799238599320133763226119523784368921644483144132877270853310462361083543183668618916854262113699339332485907995962902345482060889784754673984373253005097157699745861843853825049239940497785217140349617070727350638929030576670205706307867428668917362085513726853494355952043839239420343089268625299452994311134044088569542378269978535009945683988509410595771321911274803538961128575870946814853942312515477669040112540932761188826804881924581840309356442667076529113916767272033701810310222536861520252738890616959351669107775968060007476044234685116467847368799038930642902883256267091651908075973435143481633129464380379761734683858273985588556161557566072358820326721436972472674341792100043564411586767256952844353496164440197827786318758137785535012431136235338808742824719794382123641724553742062142796823001950076867362550594631134855712154154244249353039451541475164017868729511799299294249797571145419883780833684457730123329196229499315712321450896410621407730137661859471150373917295467729260358059896000366579502097904009299074795663554374054786025270857062815196553028835555738456824929303720264184264589663897559457211653264420861462633991625097445705549557759631150718997210937828864449116636685292727952470818069512986682956351516576832798154634806873779274341950783413847829768550966071622157492640484458253926053265689984003186741770820756929845886613560191255149261650229294495430698968403526955737540767116859345066394472113372986104194709447497389728980238905962268888744119170260195022322885013435701992636098003921210357488584423763931119427273911319476449475678453389837617089337118077920557582336623497591272863877515635326362707592669885122848709298660299054040704474244995232277753119533210497247887326364003001843905266216134805931394394662868315050214671485312866275718001317951372288343710339007420513667293259915906213359521414804113667964478991697814077090627599543469589205076025834152043708962652513854580743861318115714236918741199317093680791787743322026678671019034510544090905692942687722672713720361228342608120517406727036384424079974282215483227712402735990721670871334282583423434342408395284019774634277726363322016665333009660057515754664148318653985676970560691135310497779104548387823558358098788586240435021769255487860877640708872950842841909741426499366589363502635465887406892149163610822001063974386611340350756603006969232303869644701133235607379301081363397722230711022144674934618948684204436964731581988088826573563093079420352060112171046738048442862396533768720564856894392726042421979978340654853019635804385252144104512390780734576455686393659664462938738567611931787923413764818774598954853690119950301267493408977158680654463167167987398523583279312038815554600893899555419054244597767406277147748568441219359522111347559513795539636748141649164293123020643860166605971353698773452704044858106330521721568040533309104781228719990819434338650803817693682410506833553672028738051972111305425292851660989724372401524738319295863080993936954339013117275565153892517417167750420287197050205433644578082919958757750306844865445517416261264349771471269131769085973148270036584661463502815517584967085299566010267498734399271003506365915927487792677667499186556935889182454676105946258280012174903467651384807892764702657427208929127113780225590246248952132108818932361906794928349647760957602482476494424992902085500390844515344327720537933446465775011364420656598749843059692481930630769103110153032759825770000550889609062877591879272922811537745500255276036187042672670130762589215438498080040055509097095934490313293640501568801212701227666801226043720100773370200353803232159516114182486336175293666664575064482645350127908870257476385790163046242560053221380402554286183908528341412511959061782489533105201554335378570971233589145399491592664101679703531317659026680135566657874846914428391149369232651727024316201703637250568577318870916606504457620946261357163003707424496807284943440282641531284738328089123331420886837185960386780780123471559609858233383792759176772914098600219620572824887567653040791593592690954372112698897931621531675879794337753432659023352106411703721909412590000861364962237356285538755150780206527538453097793960355245997076614516876377225464414520633564007358113515841856171756002725616528881738837386863879444459154799658379939488564897274804313961953229698865968706575718156501174454898448729118462484252026131317123112274982978739025099049426925724118488854091629259246191492306088679435960144799780956172746588786965453321834936422925371922411559247893951490486791881241853001536592056646430151012320674248738304820215950634739071627393668697694943429469983179437346398120286603483844374158611233580182413894123939551609026291978118961231007576485505264216912507988718956399160053766425907083208193402161124618610089542055555261703733027436049312262885513725155180550275383583052104787845662542261350066577978907096848339617654920292845692474375182458760345783667175667452885960922580124991314484732870183907267145442558840283728390892761488526960967700502381334165588452996514321681032978049223008331309400754221255111509419053300321287074406500619792984098058473662036123672515329981507851060545796647768985893739264069464444606389723670815382991634575431226308330408469684098847072238748861675660620317394297404176659933416186215719153502256636765756151844174687146307697501877116263653392821561976873332023342311064367175156298571396048441516948860656880487502695184484040802107175856842015153718047245705160420312694206990973689942429538592987029438688194125979537873674766234085121709226061530619233206022335986163366034516060348655823485446211620414670537180626855123165114796066263295182284119054689730048751054061323223730165057907194164822914520401171802461589865172284583966296253306480951097892241879721082249868278855681693670035891108700400368008774640711549543731521354729475957477617972447105887062438753520193197993902114843314952657650305078846550749632501312543757171874799923016956661717167681953000910706068179798582870691553101646241854749465277873702043794599176529419453220810700038890132545958092728536559992899859586430112440162701673075210393333309610178502820962463664244988348219524262873375930011505333069175558575460334907089554850677251533018281100607638053556799583062649388405915933029486636041582223601096714320161954895967113682874125409584108564490071110842604065712538786285989708521846080525558976040984345400141118222629879832446096368241487141319808435696228300407723768598792021787958365287400051291901109098140280250385084041401449872991503558516851801369286153739530047517658769969117766816566584173773928023725243175480341638662058221407875862960556380107750187608912440724831330454403451776428743789893540781225381774389721792286691557481796209787054280298255787390646039704990066595112920660755801536934571574650374963752286102969749425739907080337694938410955831373584279862763601083969846696498103234881544815205740357707017838240717232721256668119482428538197045015121087188679390078044202874470601666324052033186054689666762974002928805567525297292049662416159375105449309483788909652625897722229958487989858281925379768214005365945433743076782914859294523608169124422096087536558232029171194721925558312622059199819232751968279468911482439411893455056517227998569908904069576220896189894968970920274282385571497450399177537662474337330672208195804517056617346623805906829647583205432863262627647512571024457219479811349263298399930065914299104938288457945510269646939843730177257987016077830043595110012482108230092602435283598615393243382839671904652590731554070037638158819109539403198046431127492482100784123897043005498880514071176750960355104743757872041541346827833951342713697331385820380229792663251252342505498263662605276013248797822618389283125655504900621596428338596135824136850397047134979804986231859178908151109620783043652539515497270566796036561796836764970154071030883152203636487044094620994396805201746628706863907987000394545693111695663989199002012801972682547839558142803576390008147145535474898570477336425488908289656023262652043137056902917343998418363993324565666679170457969327589398993916721730420325478072931984656336370444584905765820108349437513956923450480916075413524769009507546771364856308168142795424515023819382700727034586753608598771491490881820160844155083609521462080516786532478372224136098345720844831910072390967998389223932976016032842719095058287341589190615723657629793354811747245344098990690715657718845019790380408441196465880632895251945779858659643518164910196850956623430726012156036370223800353342910080341733846153897548477588875091732259026711020763513717231258540346714370494049545194728551295163427492239220220527186601573337410493463701881873553233827353751677248418012671941338621751727286740409657965466920498065111330278307838924416918412084619874523740033022983995312305129512068647615960833219610303974863516642015968886958890784863332673984289808723075701204409040528811084474226354020036653779752678084364222382204665481091886648265937326941047707890533362014334566371747882621546333473426840949538192125860069511035824425706439755224418106757142283187466554449781271818748607138511880530878334308148805217910987244120216267654787856424857234526378836032286322552091921850200369395712263142999362824718256660760357608924347925325765805248382796825673795256867981429918085100600544025412217192966332426947480950914606156840731594818040953094290062646487511856568502449640096248675862153145104104582983510955969798944823299008321294064834430820453658766579518722179348722376466721600373159537348300010109697873676290477980886015790125691316954471593601002907920242569469291117668762557773898011484532108344213885601941814573126258957046855981273159775125928308600107018848960077854781774088922530782876612654464578179423287146534792995526699282166507491293053169360205881470479347273229913021735682090111769742555308039628943770053945132549070805724844986711871956719353448675928181007949084541371962284084511626937137979851626187753070921210968188012592794036968097821223940836255909403595378583306101212864951309696110090750295132368410770716750893031972276225203008869386066529362053399813177534179640192359848719317298844431222967762289616853810081515365533374085035705473723977349720350129175770867923425874344579691171911181462085168375597582227312364398793873994318420768966836380532123063992499176888920287476797015822654623137505166496416558285304910594800284894275394438177233936945310980163170319377240504691729869966430495829704807106716169833430479389075986214115232520711871720673519155341095560355208291003621723018454374314564594230790476273736053731462173341227728245893579554740261141275883211866036050060952657034000076276279909137766375347147296150516851585695099583923690868451902449517346926910303343476959251116453792861417704171159367952657722537055006537980656597740923701539052279351132499920786857934610114155728020421522353580728839523938258499538304582406469927304472945598786249111945579028417012541428269402496853577126130170729037912522262916021061512819038883896217469647327449484014423778213781897887276695365149238749778205899970653872838084410583295881568568019650604828756353213401721105936987348997744194069500771081455904070204282462241084325903201689723956986215677226504148127611424318873434272503482189153964004430873205375473869321825365710945321002333409229626076156223442848603346210275777914362072180107203593190440061018106850909612423777987485762280861600163017494723135942564925665060641098446798661524609188007077179351318205251003930402977094802954469243950795598181743401130810855221916737334118513648239268910389083667770113378397962999819079375603891203545987049622867328140353043324860633878977623869957691913512375681197391370063090380437680308856761111124849043350602915057551219006858268371983468733207963339152290098080190232499179498880978989812434368186341212288951876730654960649085456537279883552860824449931485534269738097592207742417132890317418353066510857020929726070234645508672231224989137369471140347060634656182651246628287371134346662056794518434177624046330549733405673640457065056542943148242642201373998231188446526900947363469540478823136644180701435200879327697562092820594863212867601131344567211357381049310945782462233919437487246733917948021191052366536178172552629758115367883808563547312361015886845580743342445295474197574912563179889829795543495098480157931687865026492237936360167790381703652540872744832989709353467972944758321394322151869533768473605742349729155712861556513412550015264143676324376999275738953161742880933454410677219631713171453379326261029647950490948889431138790805474234570301466315818511616574092853940368453000589810660499572674052728599363808725221369425190868900220809428815948059846674776435807493258964085001094634304455305524720452970263749220913766721185088645253419466509940699588231508639391177033760663335971685971205420738665232710359444077437290031047786944515117029605696337433430774775565902864628637153847800688477973657478210790279366442197192569158346800086561063911242867745475749165703080395016548366948349718204159074411056847775374959598548707753259346549839878752641403437893168950528482594645608616679184465365423174640072072342808478015665365931559309051738130385154301882968393360637117460279045202434050120221064157651016120509986109498791697706472356684983110182223887579760935421635881304624196622998005122992596103243900310401433999446384433593873220081482031037684217543743339988424150341169206102002158407369964832795733222255149896263729832396932920156274084904636675873519299360049982425146779147437506860847554026604088687236135922196911351367143599001760405251202150133298728291516508167060999344521042607123373265723043011944415755879284925422337373857064991533141143262793030327758229927673300842727390139502236161877475660525792260717991967070904132916974749232576219278370605568486329863743248426225609884419477480199650432474592715576732090441391632913482970381317837207976614237316346057990706247358388427661676169242088148077640926034601018731966731020264904951879600160129687241689914761750470620169676908839774045500592475352052935774962052615258314396986881234481492964029953980580452065736711888653302278812325459231016712947690907188352327097773105601805223319420585604967866568892346735903873169602205024188290417349557675794543661142484785194145817236042901676020466540251232682976355670239585183904548503627584223093851294536765458151692995049145161755984320298967935719231461735049370915824189243389743109401881419469277110415436664839651516532587535389014083054741973495325487653696681807765867159558676000137078957582442386496345030157336833989438165051075661473508326260419959377567137472457916340531683047954845774955765182786166937776089500808636185251902985084151549066556904786058138133148107748536269003089170930501334916684726780280271462919940823354741225925678665201767318077630713252214274447580451914502648070307799592541163810923343799104703861884130788532366788459675197213777153652749594047713433196633081934850058025670622841018266498094110762651102740735693068391107173692097221250698321847206738371111967167165505829179801453388748702044999374229462705375028071283034382089953710412017782980881882771710916450661283386593926479307720216067407884642839434703972429142331561540552356110652783851945745587502248286502526619636974044318080191367000250796520822359383797515251937854532202840820549443395175661072754265380789241726828365955838251358304259329219664767323050498345338192001398660510309817004835670827377051418933554891700076049926519154839573666770881488087635194876182558126986788650816403872256398920025989357466122212371765873068480232576002226750401525238373222771163827024206092255048730517732507517590053492355681766360808913237578113554220055707844465666321413484508734902239309501370019945247122557115632234009677335160413255462635589614581877590489188002889265459787513564604354251593363055594979722939657136071507272849387645468998619112115941054506641413508733856222199456851446154165356783349742452772681447212509760787264643761343504369672502165354443996582915405198790670905021214589436410034645069272284469447927905580723396487171849778630080992866305427574170156173902389264414325750847808571593682160996198281828491760991463587495739582248700305633123630546308036739511977987582004588909494585958331949247257183338839352126100828394453077397294006868678781380129046731146896451829109994341070068223894793189105118302084293619685864044048478416793999377560068684384224777575765629626783117984856683253009315991555428419486737848011861501206010448662366842619846841275735564627256876387618952941813478767912577061836634937824917571512250413760379575412184787379302136740090310720895318072748636711627659456458535199359255161695214823241717244356043287303987604334625918967626744051270830139790017063444954576688511553743360124209007554703971359617809101051121238982088812243348845820177310944888186925039439217178399177266207626357622578813250788397072660362345114490256273651503099348924736231152188436923400236813634436708082375296119362890947624594282502968567584670027856153601483435082099280709060923187301968944328076477025534352845626236487354193373632733926486239661319546079121177011551692000924220787024171597503277903131639546763002527171482920110570643844097346186602084402381200372175285531652178577326796456592011286890104986734672778591711398644834501910130009570821131071611338892292943725386067574720351129637774819834561564595922209241731905618549843262931833518053568082646777147480242297576014206019907433974133290122026727119031000573240601802861483685258511131603870075785947476518178959765299693889924491540085209892503771579643335938446190559920125686305211993542254058066282366631915686485413145145638219732077777365436823433046401416920121800294393336984700696677751539518709921236615174358305949090367330371816335131553765860562845658734080090653034442198531720357641799433283012129334928983246879076401357200564111600145101654986208106950856184803837673134003385382733916394461173285968556707474063253848669436756734567259247076360709147306873244427461312295155286028935246695035656428506220789742659150140671573303613608163079614639031595299675609458675537636648908162859380323555034239478851668440015583929315735432540368873206415337248799600625403547042091775392459140036414305725053605419965939614948681544033434498410853208809111160362934693299884844713023372114594385125122914772241585456922912928964386293794021675800349937002741785652931824172700702271915001526873847294243945292179794934756378225957944361211793279229981723726317251716969045753886048865019807600488917212838947855794441465765984449445548155085498808331955607618336278035469359317356361210802314866900637348786696288234364577977693291033129260849280837708482864581005326167186621518235048252785997525086267132481248934550836338779076998141502580629384096366081993548713578498437073140088750840984573523494158650338162547776648558002397565627059097082699833809092518474142284454182805754562227695687193554010479232661333235011603384102219338474114744975294781846523461855489369237937734332190270874472208102080417562283112940309584964896321184340808291032210538135699397638795801233101135435139200296570615602703923971564322763448171009530416779220830044138878703719053524677797007277285149319287335141024137660242671931427617910685721739283845991544040685387469120181314392433681727667238304798665181356658234339366758587422048142673649178808740590017951946640206002951569302018424398401778916631227157009790254088943003886047217472434797001469913716885732755577740003872133110152320313561077275812643157250599990637445236920694640394015309351889440692911316983428998040082540525923156313844076616425556535704500927899541989311095909720435952174207238563780226037872689489424358866548831922317193480962971298549872137103300754991074503124663905569070273353835139445852657811128798661207120699325008414905420444179732797338248889688592884431515273641516017612358082942932038074786820511268462369931938553413178920215199631163961615683422632400098490180370702938524172352970834907556610305395023956797741312547606002076020314028275586192646601925641508237298696074361908247159464503043031512350499263357216367707527489249837633645868067442486717806043864265619925822504430799090261704902762738020350179081798111244655955786030288202430634938068729529859936801928706242979386304578574412853644236626400463960427775201043473509459487610317159740331290296048125318877847579324097051592761718404013046150467851268153210866907848097768346982935557291014191239073624970856167596291639453733685060466285220639176133064607011658287520167897030827543276941147758918208173729846681684992166457616790124595462128311627156135578293042600576167613300224865312616248729877859005279562276637369002470709523710112508231233317285181736756794384965785319619559775449859944026914872574326754040843418473980221257236416617166793978195143478330327642342851419786732804725116856497332964015789080936480905363377114411385079084862863558255261153700118986113127326255053873080960497574192079471939721307980598990656962352379994916316088528120722005514901675210176159259571740952455051356594494609921669372792116502271264303222419221478774462859585926193989237650295829510223593658064540534966510247082392868790865759340619460676188692581337189944105192223546791233966379942118878363951437900717687774119626368127552392512767811260665014300844692599701476220147673486352716839210503136357172556622178916776603548987275115099223313931380929986795414822486269202978108352289976684596188224863629109183888592263764378646900609691072362756199203761387615794698321296349455956194601672129588645339166436537820123393943959774308710172422748309533536203587246608373037736273795249436826048582169003657714856167695550735091523861258739904533018588574241165432713212201412343095773487730314701359312040194821774166489697279750587005774153291080538419458437815366564724744443396757581096291078616599636905636850560680249629334443793572121228148304341519972963481230684160806461053123046413823802448142573597179302793727864884046212198723511168273509847771963286866860858179623816543519809818973642891971521850623910544431531678624244010932906492358512803972455223311978335119495939398535517624641255331792843793721882166526858629784329575112121094429204022537248028761947291731334810626293424498880737680904737585737008983215949200922783615227601954890927295533707310026771147024391667008100322420669587924516920123760955484120160251283464786105990685112517048817651134499206223999743242212008567962697844360351500260766881214017957836862069041117486843269167076612430047898732170440377764837463214154721923913816600403609780223797527909956000873744498794073910128705529241085589096794743857927462657090587246634847271540281475957468498028280382099032413637262216655759184661650444922364275774471209948157753522760748225431355305600822110499933017162593971875935662249644582130312954280878861319335794616127984943449036608891127256231015897347848982155454307693351223419787358977502112470734264040372624190980141664705904964604309157527477613566620775212502682654647061266569588213246241864675247746681822544986756275371601202918561280430222564496773466382811879097627244260647088991746300480216502231875041208930240431043467605437336589080822250581195941267205557650942603296913317404016123027257065556987765994606799343278241546371634361116328234841240790579050172614245474259712537063721856980374582853364639206081218623272546313432559161005017534628198979880896839752370031862436108329360964582326773910563132056395195415376418068180682125944993857370110569613100947486103848688128664030629506877621065419307090658348947657969685128557308724374807900467969120172526411325778588563099801561479831276555391410572273607275394044157093688316318145491213161615826296362866019146027165086718563840283238321036851943013501572787379012211923955239588786600456888789645041465096697591547042334700582819365691561640035981249564845715648629087669964629344277734317022427901575002213930016320646731636603698667488027837366762743965063994656003840288444217797080257522207148952914008659986608795350628245710052351673536772077803759479492963343979023010254975888928486584067469261904626651428160630856090368796267890558864340335993318188187480584162370297060134553249354402457302028006443962004685813296289979330942163377871368613171031997154124281883038239223899962816983632141841875394162098921172067875784822429805108989546170721598342676316050894213732576104921534927052061290415372840405348110532850634789429049385078457219814063327822291356557101595876037563387837526238081166835999898845248093687817304613777864616800985488813383550996834989253158149063678625947646855011559786736923716904637767183966502018568517782166304102239659283710422146814361024316468363184905591234202660238160563931853253983966337283073034255286178173180540006054955075891828357191145940622168053010578462696718946837264829692132065105029336883815223237269903987246139340776103799829961265695759048877662053655772262163658393640148864736992115859329167032132662311186535575179337851858149323009267536032226820392839444010453683765580843048454633592804267006616112779249981296752795362456226466020787242101025880797920430564737630607428818185643988909145558442859720771509809498906964863468347643146754049508470911568074987459259371113050621685006137879843546218844809952090839426471791040488129338373865495623464154192511675287766429981889551014142763675329073924586954228272163021709852628365820759026184146913945545091270933736432835245910429484585330799697614564964442140598016010555671555690286028943201232612799950931279112536441644275781545664011999511016703632420908590038920869714730616739962613765166002466227916297444086644422490479383005282409628793077623958051675277955547217355979525578522438060911531513808516422524283217327716413919821062257086666670626109178704116768049234065514764881065600053945748023229347593556021171052009265728505572671114041230314472890851764717679254123228180008087248569659459396875423949762944592508626936782354771942776661756658897051230560886792346817189570150783385312739706377715305634438780699349431295251188195115672672819379273979715970781533562040539461859969914129353162097371900161916324197084156346759589856602980514212465062787191485399096291137810215282061163610219081947374792472247808707478347121184426294344356970809807344307859890037436654682481708354832311940247213113543775064277452140237443011177078280445401205882963421562284606834990521421971592394206300403455480602906489919788438690579969554779193928834842489910951991357228371026223795564592388119830115414105451347631683092089411172687599808874341028868814135729278242019108583938170841587730657112258661033908498165875860063096057193172018074905314129975678607636455759252443942956086883299319305173862518402542528075063376593682600347037786831724312653429466212147634259955194690004144320151161422251930098507640639257447807364773441424833383418739092361242039278676415601105010581485730755352291142733053699094153206465463117807381017297714470115441304518304676591618472410564677966924193090080750168803653439558679526505907046550563250523530131113005288106960599702912175847739958881300394366574916939776422832825893491544798297457579106555200404697523466634437158786896176675608883936159359501916718601682298902090160720765341572217048612632078116740550701498937662380484685807264183505065070403495617380575650262331861893912957017639651028384899832929825453607782851852338543619583429143759306398590131631299792940326845422827987506242820091917528468192951612467889946371582901821309800410672366599552717528194703535759985687734621803284740791811561318895859021746437952180336638012263832278705637468521326895405876980460367516946215197762563921335793112631317185659062896632548938078737387903829857708616944925557342116416610324494359958449373018793500240455213276475722516922692486941337430864046664474582446895541857633501376069944763816946119700047225207441407920778631372496486993895333508454789159304195098789368089460293925356365720514779882920910185752778470016176174501250323483592352578943773273203155134353380511161259364621900367663188669732920327057790100688028612090955481614754420198648714807344668029571154838438228163743809269136122386176971979325046273672639916937336523138102940586689794799870539141532795003282526136245794003081030891422774704962231250507978654158661815860042546459929686753858638734357998789856703105105486470924120211556481587091636876215517646847829408651474703377784494310788907771726389602055082557747566538937822674493094006888468909344122407024288986420876890848884728367721807276328283949446666875842375523480823002834551661620825071132608043164171096452001200354732324350234279055492403328086435506466247420496887204601061527503158980497103858169156083673916392379127535978867329530252134999100416348974149836625801887939557599958536047033182168170433795514482846839295955696966170236726055306480066207464727560811785996331379646174333055064393837632670941715618471995829815986363024326051757911300893992989462162076114765330974827512982675569722360764832091169114950595154200877776565208168406259497770158362100971986513586758552221391045799959816384581520704437917342110489976474972608510766977585395548483154900508625249395054178813074272413255388504700717256738168074687408653456373339948967223228350789008268788209276678621330922042198859557141147858595971322172397241152543310228957543359776290171325861688426314040580198319469027492038969818347154369004538529095801957706467927679327285421987470572006038823028031399117784205111749015890085557473115535323803259020083580456178207661704886392254480737266406461406865960459940756659615307125952476129927181875532320714866282927721261271728745980934368160161540405601273923296080677609339002017569750159457085153572776005125152842980855652654456349343636033084701099523301448869624626142554320973706958936974816692632629650814567383873229539601883119733775342147704990681236678622967277736600975282323992971195945353093552020642928446177421904060242721526353009444392337224210710225332671964713029089572241984886964881266582984024634587834036760216571783654265474378447322632206097397895219291169907116833485922504623548493788234751255885116871644356828005260930318783349336552148683991636548224920991814310048250114221285120204558943079154608494499918544413630458142999198646122203742705707830434120256943439998398001296049195438495834558039087782002874989207665304524497296803418866088340066351096145744763186399534491041984855650661223427602187206844506967917036511431488427588328879996142250972153106688891407060121568016176318795051887071624298376641821927515718095601012527109771072934343192955754040499019407781842430511790093079938436941540765904601226944137457435127906158376007922868965161369130819871969105690213222891187559161662903399223207287254228409121571841818384732218710737687655609002753692063418590752554645778943937165791066815432644289780228808166361335767348247043169915049840238446256239595569244486679952840466288589225529631915433974167230879978619859825892368357001810839443247959960301574923956755313982868443374173057123660089628279245991441785694186064527376650298402685934955632195688096206338142259018581696578296620792400954275593921146850518150937046576255825824035988896494684555708326413553114732083101754792182608268987121662014927684253168001420909937566388968491177354401977240743053444013864220490337439291408810046556618661491317873849839891742731286831749437671832681451370716708047008790904384603558940596385254897640680608703708192607539988533735577546779644348161357657267376254092484891084196376760668718757405327890265774828984128413889043105303128956814379028026842960483921957192252886950341540207338307718600476946221664158275393100872752102872850449917257293864398361850197949723593413885409643155742129635217811380025994903396892711983882224024668209031395684370086980961473715448295900609805296139184580832318655258969523971106291383400912943321963797269581578034961789811069601355805453900415787119748745085713668041872892052667321577974535661260549591096550671021293410409547150294501171449404094231809514932973095312799812106262829099956853782456687082679379175270060969727087834063132107078925848230526264663520417021409484874345185710068854335534276790161839193493263587992879352561631702538106528793000475882193943565267554720188845887665740182286867916587506860035333661363757934720802893442007246849509113594700440805824914515991754490243613440809501940880377420152956470581269159508333994948327096565541858251685722688746452414367260978183528317224627735944900135349633314685274591707436237296523020247740203437476666571090523511505649247849253722574698165974211430331055520907574876220097477781347010290134496914681139738735068326794877111893245531927796008322993486150885009376176317663952081105773648972361322341701865974082812016305523843784373425740522913142452567313953227895581265948452847145989770418681561874058169756757610915687438459665927560601457070287266230259872537154349016232587160975087367555811322048322084693037651628245954411216145703123183146652784648315275765810675653006933169658095301778758860088767852994141814467326429096201096194778652852764177234031452551215693023495921458489615564137294620268398753671727207369623771224947390146479139416341419829988459346391835454927222723536634744552427508578446120865704264709248969025677978851800107853148156485054763766544195843329648866318070948832701143457424644893177422678234740889100811617745482594547757787390358493421697097673437931692388976509401742335236025982350690660270008276646680486241097405671831130154615703049690688958667595168874792406172667951466996138048399247965342059462836579841980677366716251688459618658800817808675275859332466311196093257307936498390680018097783663573218951674283395145664028011459384920440070570028207088144547490095663701238056846933668670917821759635586574137818763788377934521156683963947212652397289504011073578320887193841133567341420521951758861983360726714369501435686838949002483881800644410870688160918526209892966355030729160345708156928209111318718545891139692578542483418002026235171789800568283997397895505985700198277569688379036746828441344805380063658313967387247331740943901226177732235426049100422614555589307193047355210318879083363373136420335599707971665044995557079878314463479105904279175709112160438563521885256738632182757120864572611012403584849297933928897157190981691599600235119555707225530472503180453954814229965545942773666532846941394098361677485417598295349491201733920801330402665821248589166410274294324983952297441046303541318977535537530457440666780422741022675793546780416356727893933228839683649459912988923358390849774289460644472888174141293295435598811043917606376577756195723899410327040925987011917760486745203479050573261478966306626848154432579618566069439224441680324879474326201139754776220297370741780476888916178446566613955361294307847726660849552544115067798985678362716109844255711394612032598869739764911613166969812698830205788706060351470120281409604113286922552952096722435201948082096998450749129432152645933522183845871588247463928637944864175646070226019550447122277422003322366592952280256502155951157271088984745080043259758116624403123591977830879428191017649341082873011128024416783874297375109084606292701490776854917360288935247779679239995182343881680351048223977097359176674265165186980041678587052313960196976335177555125653877799961244409280763626043624987766790078896471323205227559266860438177250476355900308490444218641554360888766814146781600372158921705931018073158702892930569794187029336521833986326780656907965263734473719195518209946083759684956425903805437229847918474823396705568678009320193768936987913598091988542963917780726112024192140262260433063473905873189827585142256612866071025857942553574718238865479900669146860270755823853215874711220076968691820527134660561838173212478002163243125609440279610454260456517787200745156467282962008602064120246780131553801565655860042855057391285975718553319658814083617192140311571838937597224605284202575325852927530577163548045713885289966617343344174029784929413400912492140478705044488072407997988046038675389669596886580491650241407185483203577027375150423615122700198974790043415343313118161147711885140440540509312096167507242627796990991859746272060239151856713957511147002763381608480853121096122290825233412564841659999769665734563263470911699995018385385675741756247050081637946349227560851408142276771837495216524324014973253195188825710665394955136985504402605330121387040107134841684383027692123174816856065196801150880540292605503081964181722144624165195268943839370846760445518039504568172845355771930295272474506781285948222431475645884887359055073194293198108698864502021550676833737581932933772670320758367066744993636741131878328957716616550471831150905074252313114384850672217658111755753440422665788002614774659232829342943808129568681033011011374113904064099994386633149667161319095344966530699639167828505611919889399640908395740122538731306435940579202650693640388004680820369921473867233266714082846210796093899458440279875424236106820748155459304664746152526054488352626785146006077851222518503032910611331214482134394854819559761368008565638415752701076096250217663048128976736883336361208207775742157943494425814841292816223495511522510822605600036733024565586262160321688771818577816149250325477551472474393977084759239933024122063921324574664986681783730000062553699903596187636097368498943799952500810442170230675156730052792498565698089885840296147622650287207135783438563385175408740598137481058958976003709108813244173230800557375328996466333000646729006270616976520717740903461333784076204044821462250571747260887755863858731506879199674163406990002429530202379426087516164397381317139272442559703945001804648610027005760304696451517225013059481172591410306796476163558701373510824166029600898040237906665148583774584721184144516338332758151889618025483516456866727594557925969566675709612294478713211007798565243234061142591496831077714882014232530739609921387579334364897183011585378795307547012687279495925049403265208979909606844461292723240518706059561119786985450239729524603042538908572161083925596228262327494157509531268929910500284741564438520661538250886423045797578094910220656769312506375298039599630542225379748058817077322093384302803393935297785018904879628235271644103754859964185008294708221971708758263786341836759884932044720212974107676519241029395272910959044054618267863021715494338221896518135843400424725034917931257435343340979783972548160537874330701681600541916292116474848432458782115344470690358706745826818264128228104215967562272517671842826211029466830364465501175900932730538719887285226409209597899992253110524614492433445795874309233103417550578898737253455483707553995127820721194332069249558431736141725299133665541441764119475215827617780991024003792477342502558276427800042161830493154148250721944619512284720663544285238000613574071374765130224495449581894380008242752554289055333977073071165683727492928555043291166673720054504627061970044444395082417130566865640111621482391307513070325916418246138216215063002155865875638925519889393360748975948005863934057418675137986969016891369760898398321622862692956077285864512123578148413118812978212845522611775198317955926460702831795925422476446791408799895837967353470213045773295856174955658462813498752529320473438914889547824615828545067763341226696410486027656566923001690064957905062434516694249689747779738328781373971682218108235117293415557993958030604058472641756145292378676231005391629526763597704453170806822958619178944366562556347425090105938363510504569213724935238051957294892418596848951136807005881287597929444456465896296327681693267989560782132846303813169858499730177641383217207426721176340436926367061889528419629677581320145904679556462331705602256631819004640282520757318606598181738038919065159896466881483367100427576276151534135636570893082195732834986041634823582595881409957766377168338670199923318019172934025618473965769772021248433069319001462987731777450919004039715425325666505261947921558191057268318082650422377215067696554801406686522071955819463890971231496880717956579523294685609922219813464070300412776004361819287483904109121712692737906821996040571491274400107156695956810699777125592081460277679025461035338782481989967060432611495703391430143086654436877906408220607976674183555357403462939384228186841958011913067364647632565887165272883030612390445372260275057676890433247525846131256912858166658870895722425584204608184930418984511009315941178551705266047920527969771101286027223597529737455872256366186926449188701416230702000361779836201505199117216922416665671616774630366044478939769571127462259621921199090010362436503711567074696673907016834546045091807708564108759709695482808764180802654437240285229808108407224314077066736698924428953522416920733098690149265263461335385893162807356681691525341391657589279062079124512450474396044926451498795957232878988393265190324221241192372676437467564347044369191997578294356881239622394981456732228800571816029107249920374769259875203148216833002446739433710708918274119421104227688274978924517617789346264579536624923538204074330773898280249219142696533299949969143005559227464018334844040300174518840410557893140267406998237952930705589252017039365647655880702439211690061760181229528201441984489030073458816363135471455069791198940835597481915052085013581554413645021587067485513218350306447612904385560519248546033451514789221648940320413274373429992202806597352169161915372416031263479527900571708996798340681350538755095827547491589740022147788311132350100605714411669973235041155561262073995194407922785743068415515480014722242721712884270132364571008588619349061364056665339485457879561359262781502856537655601147053830191357546835132653363098639645061177963104333305610275760601250444351618485765994854946291576351704324122315401213478161577560106124127008858607193536321231308054060128879279959617908143723023228339014587981554202427353295386148326818370645463921713992421191457211600875952541561059959332863705618559998295935753419731601716768090758110561282597373744237315076075963515749423715426116285741718727417074815412425312695140917429612623163245002329838277509492019070225000240974269333745485297252459972204128767512352667494809299320425466813672676028584402549014456838153730641793062954789000239399740899058724606161478829906434935274860487610526156600128612474110969067259853729796238003797764014417259101180247570219674404982528055168773394281908106978670764471765951681750480415678473073187335671119464926286277572245993105155615171122478740001770760109489371425142029045915207010674262242776314706246263757827363324816614422204968403184981002470134919644345175140293879391047154998505386587528586612666149712929179487002454710678822994304618806704934714170180743033911614052962529023374595951989481746873211835963657928040984137602027528919026951638669387177848973961910831335291536296873765565059375595217144997722932189097522972019294502354955467681983037049630404485264872019916901259851185555988056706225981763268274559669842717190235292221941370126920357622944906689241928639574153759198610556293008759803724150099385858229997785662693349419244961062086035729553568844277451309363495176859701802104290229091415788308067739338309090377062391417653430751335033515199417452706980705966494185883451947926549227653405267515447043230567999369406940140928681956864602298026122637392332990763082628948409607877942289441317762224668923893698178405755171765591913065052701928811213486391034696264178680843732853956773666119338371914362049726608126885644283016815538498526457453014394861048431234841532381597951272512568182585273449470351801350259006846550497742333856779447229604513386383953924156076429269089303158720617938705326095470259783475956682654817730760429395207181615225398326620287929162879490779245855044522834708532108209991274827170058667750250341277351584980444730209807474955622140759633556344993394505677478026629967349438942371658962409505966410762107068408830211354463004357915633221078799688307887178272495278599859358452005315766591308675233057637178124631875066752033857023489004073057817223915919168753510122353545380353748186293929570630809584716898717337908710366078838984601591426060070672897630582822271294013488104797687451915340681789295499239512872196296724056620781795818535638037704641550226339108485709780700486561307708553151025020325222417217570658727579959202288752474986770644794724845672234902075007932481134857896739638030845829328825144027693785339259491108781862082424249846362454751968189657194606781658380572730086095186910582435286401156998744559895651535875637975670364362420454434468288905736327637606189283709888221184183663490088379449225430330153109820588935975481319941470418071737880276716842986710687269824351377368248071364049956702941329591141306891683612836587461994254663807569559583898733619473165840469820750931953271983257186285048867401652384088992094524176370189039704136658037505053200234682551529158530488378700217429322457810845868784698423113885599620862346129654693256076196814019626696289135803017267550184149108220643223554399584307291182308413606565880330673835905166189851940393979095412148225373028674412708351369873575355657687846729653709140763627674888115241688000307107951093095433817848108264256397010168606001353145343923010600673715911066726313228482906325761505871252736205089063375867196980137695577759926992642548110717033639593746638385587420517109207774463397622483289821775752511833835295637968655916962254828259936449927587569945311996061786123332278999769976188863742821548050711719374179193778253603870385019886986863299049463814133438163522306991057210232651627644759288474361880450974805117478926732307876874797691513717122624679128049005639867355826122318103175635024872461647178649986500973297105087951277085690013605465622669490610423356242909289881265850740073945955803006964362510985473147558249694336847442287622787621884382112146781333381711981085625983929800602039721014547687371195876494701968835352899502896030637751883585571732862170344856333809228535002193269167829815657020427424081387627012851185843631702641058737581213997908427794432640392820413360551042547650998178652887858114746101778186793138901553467372085536817119338576091679189591043491792037458445359755614009496521363700720610913686687358007152211516139792050073750146822389256708903921819702945377378451345945708745190206798389102309074853831776950315401636878123888074722971742107440981321072430126430777046910581752399522996217073427432925788904671611334774266947699147661358814907532468234565657040237818965979308385679695645278813703838763971603183113684485297879399202854050301239255225277486766084082551021223501499038637963339303167928278734900000430009535963304831575238893705594234852824056050610478735476289590259777660729219348409646120519544981115525715088444287920659017224096285549585634805452895338970974375768827003577456391694360080970432927799959191331430366740945458080425361636287584325827848370179111813462344680270694903278392922586540616004820146696904977064171095132020439248362486834952798191790176268371067051182575911729169800250595593424553036913217834381559893395523664820180720104448909733003031395600171020571780065307331681654005509977735442694139214122492757407526226117359014084727433442779325128166683025404554159134596428691528737586696910307147790213940725239934989342931767819387897517419842605273006096497978117541768245604356633880368783436908660647819313579313291572044126865829747679511213583283178059144058380636091378251263501987219649176276147198783300240893077105892507288537913749341774635619825065085102545057742451984109385900059858769931977658093644528892208055002914941092573029248531823574197522535621235951610688279357850510425976520249871107851584005365593460860971637999915504132282049827964302370465125206592692390736059584347387135872575153125329195035674409137933500220329854687550568141846806304238133274187486386137844074513247760703728665856594756009293375439549947635288878759611423942484040606594277067379611971421004380690439329334423064659764181251193709879135556615196003700638203159066199244983431865592097755462140795264884012808983917297606829489728242051532910646500288504997967725001576732283678926330452712955282937932683799070547361890145290423434407270876590189596691000931141458673216358752124361757012735439112345698042981009333629323124396845463453393033531588730140306816401662941724168916274170813925148109148653538593306890262438323919360693441259696097685064463975233903243787381468237295740675607072176047837196019354759691031995822913848492227002023793142640419476014627739158330071833815230497532648582068653038853071725585751725005452806283237059258144496865203392182002999705185097922775861755416321163452965525640201628999719724980201251970123023617361356438117400920005409782599514817203190992414835957655479660456391463104941775292663307927494577939995435305331389806288338993509094221134830420538834263565778173154137956549531751407967656491467371727025105880765080693121172799645876722477072590571642114081430913920109739792909339342742638900389023174687766680686758253074095739714000897550141087763550743740351427357568322938652149387167522993788260810614097525515871935974856055601997583613616869376646781829466706510829460099688297885854842314947786422411627281501494134939810657575591549374863982927749143055417404874916067112350026519598396886275253033397279547048736974694184909134428225995148246980757891344678638586293672667142890286042077157489560008861032430347751729424993611547628763611378373668191892071967253844618636835924001910624021924990973108631505629024685606223215601966037066978734075211758092048883645736851126978556779835470564530600889362214593541157364122332844164647963570909395787940762807293481275977831914944707758203374220876289116691510886507795384478607304593832834122068364200505781162623861247467838460178063032622441863502809738621667414031496157500572953956103149792542615714568803530427012539340656798308685415226866009140301981014993160122869666998069601054753027584057534131390096812748455484630554199291414410557382111597417123176723067008104863107030828283663627760442507785286172862061582647718443572385990107026249907721712854738251393623027468088413959792425327803980634696090149091198234596181369976991554042292178415143805672704570353363724655140698533153202751733996144360492555789229240377247486059575140119205151017050124040129141111974641115524301648691545034232013039001194462458441450083953100174740887056141795352401548116358291811820518014012766933743112090014801066248034150542715812978870807661886691462098220411771556264973744814894441426645520470854076602450966790528882136420368911755805859721934596972851134061909534084601807234359028883075490556338150882660772158458289163637662486258143474575887666650791118035096051085890442959965816119655869487071545444672826070571695037913340300733525476175873952919702440169144139384952619101713469398709246669583756562224056616503449112700184457506910266639371070629547262418693490909640151711218395637723099339251711114578186542003737840320711643903115602295335038284331090575565187160555771135850212413717991418300463338247152485929690095449035270662999597345610305687131734541192480706750899430099345725302324389244967788642976400732060919234656869939737864556753070953007855249553901689724570379597914966793745135160450224132270397799835703132002361234070310540984577779453111889584140836123291678979249407022947543733150079262532024048799465350606069422886941265502422308878967142228802997240040605789272185351449609151463650892086066888220816476768771778381171828867463970718500952020561911175443589374223311049449417827547883403984155259874544623591097442679986096088922797401445709105855554858339916623595385527589688153357086075484927734323281775390079264808640659632651377400821541177605756771615344228819823563338480800090101678259525435289056645268302600939558952237570602121672605527141331365151144900068619195696743419580090312070632057148877864210798372285258049931502187374519657007105578060026075803643383749562265440814182729845302225010040286698215789102739278211053312137294760696377657445523415405763151429005193311795783999328302839175222647489759757863985240586808192016357950952293459651335094701634064127011728804417205782046151246204857799549342787328164829292544446769186393610015399112113162578887429772413584105455712705697525795607197965161624169294361796014977581453690718422710465733550825388033386154971093754878154720453029830879812635953282821454575549540915366981730566140121747829413429731704440977629128980170143317566554039158405075451705153012578785998939535303242784932398583318066178919257290084059302887514472736543128373940410142743058838665898532804869127728219196991151844649699976062110612400111462830528349295116073779389389293810351213972987309270672595083416320732621068958923352755013931142136059541250818076544361192969396654984052304195191633363533060574740159570248107423529081091710453432941265746876892268552343413520901608195051313006580833786111381364582813682746106890332203058317438188175055229855953784134913363846834712520146075791946631990160930874699438136574370309177712883718694925654522734451459516492057201260890683155950527287309738879866698366848927199739545605443471492530122141365986187135349331084505895548588805022454890141151289443815016306899468706170303584101076584016145313150386887086586708831704673067786919794947014717622735264200083993908520319807163245481197096868395414461509117138019663059213884331389618895169201594926345567131816381553529917123867256168616380350555892939277666557996838481332236615349570436188119768912320777853981167309247129225603948720321844893262995730754932212999297278797402573537847704053094134410385370511039411434251362172173467107315241010990039972857438200695357546240823237078390959355971308025236915370230794015601272969719083850389650507141109385451929272466733402078100440676296934701889207591818889046614388808001542091880159656918720912383752730502234343640837351378664303077810608020457243030372442556551793392421060199007209238965155445512595084647233532620014804539684826844777034993135854519505046594981239914515940881222699866664775588594714615457389979526159212997131957132673833845290481704148168793747810193762001896929833506322521826503829565114037881528090541037820534187726751184625950244049716560716116958085748581232047726888369502875680043338222120097493194175355855776469097378964213117021584832226905459074774253597769349997484670745232735289449237972401896080596081178209410561544066498763729805915499557712310810349908807286098726358004293512303352665546862151007346894544586108309896684695212282232976907390001742473896558863172548033742120434920876163067599364474537657770038730511647450824956458535239668308100654906666701849926958099174323752665878864820906160354005162843387934091305410765605524333793142093676234306684889103054524820074541415536403665551378707783075033324616452606802698502366474509061475473747886466520826244907178998914445321776807548975399995635149239662032395575962510284729217092496918436738152753019288103487593009767157970296714298628617362106863577275892208466992662142038160074465010278453523396549203070567272974073977774322580367027560855812825476378753454426929345472798770509016476588362790175379495676361667898362678574073238934567603193245753871614812598344317895481767697237137869759385816663472205424648393785491950143066573569413953228304954287884992302328062183318136642327730051423239225866348479221640318450749075363672500714641978320629148916756514242330036400162454401794315452927646839105157210213372257953304888035027992052640823989703763350370730719008823644741218357214177946172553737143195102545037600668464812807927252718889108283571399166406080766590198992228314575097445066070172941567083049923402851622000316330039636290876296859949628155457757802001931424057004085102323207471989857297145207262387424643283304752871988009864128813281383398500397802070245915395632384127298208771591736917905911570826760066902038625917948067392172158101768104980510595757592847463460878601668981494263197608371269679589823348081572399552348080113065069195185330352953530770727934529780540712537210748107811446161611398846410776654046921507548090997769060661879306898250634443069130403599183758497915018083675051566742355680635783233899494530724744966302775738038169414782290910153700131028124553956846091509608664378437574502515727751352642666501095900601843307614635250242842925027614779572728391174896583485416023056287246012373031003145325687801086251901730007556217364637372543323594018083471963131900042243273364157696055477624890101927106069215221515246455086371356426883912906286130172499317103416840714321859012333580343769289771448377869803178293537288696734204260823453952097679791229494139443389456936296677479010852092321820387747781002217826903478617542176629810337857142642990051082960030181318106006586892003955577105409525519952838458244849902345552035777546847021815287017573138344906032084872001878104923483583389293194282116162535383409826398720242610393412641814057203834871100403650225040241470396846491508414636165373635620808641793491846994970422963263680595998096828584064998622560994718713600098721900769319481919384702496197636714037029263117662376848182426788808907984718171656454913988072624691249715873870112608086837282155903220679737427385367253730379171517847779951416908494263904036096414911627063117893932170653135148432789282885978959038202556303393542625402649632690888438676168698939551032361768193669274064911214278743766613640819679564130680392402581542436495468103883197957449596918487717649513964058301503217174315159779094723014012344614886315064324957044753571064435618082146905257758452884948580212355972371384087699469010182587662716179445577659932270963386486439133709681059558186811958195738249192209769999580263426311739164914699003397976254191972189477224322265525781538797880760053059408172986054161913772940154393752215703239666162993400247016815929539144816570576315480873717656094214156824059920812781796422242700795240065296076646508188789088538765884612808495864471187513261103162958971946562723981279404395277468005853755223689606294418016909512382999012616334011147943141385913762108597847226039596147949082623134138127474707463408267009278677237142793101422210361941546385931820540215946534689962270844246357728665543611515039821844468120737784183270443163436705571884771105064352381075983900160594291220426853979409106015019672246295487858490513112855258432358457853761913136346743803927305137952563697513246697305531921698785744361828661574070369159525856759814306477311846311552246180171784940971699951440984144859762903385335702357018397085484797357531504426957243902383997949593258200884616009805669183135375316223706314044097696335291903771526798252805023036011566649786052547215789986681860436609585862740329380639496361794300531840976107833836839332143863417089938200651395071154442170261598085846467703501116881624178856277305612033160487730438547393681118155530960934079807705281465251141098485395980144309546409489856862633515946489404288762737928017604920616555322846962964046188437875529772170793712165666519760454228466091722188598127903223050660309991674622958194394132473124569528178939070001718412028467430316842740464146401157565063432452969371825750400944601834366655970841960643154645347831899281232755600415725214997705377564012863078133820462318573051625293803840327131312907672517494130863770188227278409887867790691048737148178676913718728461973162994414221871190856227266482173405189865860137347551391955808515776509329532439780105353158843045204433848143612610140223036364871679810772948161407237172527579816789247806876689020565407715742200680224896075872979674562071566010477651359051122365803480258536389131328066825751572286945814418807179160516429841513185347921945852195509522088574493027739102360181179759770790176990625098028525513587348644412917376579708259697162623033472848747888820627093702955403468516224499942718822924197123237324013850845051761655555165716532326112345120057824258846305583097698394315812971894745973081149547327465368296143246141151595804602546244704478498883682939361080578822817757351892039698038477752703761044157274725046480734963546403055352445148613568298226348629672303715561231135392475986757003682760206905028582705092653010441187610591383106963149691526496769856335403372068685641841873260528529469018029667375248753984804311772095855979006139807802453675245725618555930260709637199680999216084495892060649355270885175716141536199863815978693194025488996168497985806380238060403012522522148642124675448010736206886094971829981282740898351488746510757968653343406504834083804993762317506904398736504728385035980620685153388834272213385068796308274884500062876224253758072826922854564084799131777626810144261621019779692213985197983122089817548915930186868946673646414325278341598680249881462501176933179166067045726989289460501111475799970762890924325307944466616675313992301552558656964478142070293408414571782847532219415517714693243989642429023902905924638473020311992336145190945895747178897357164059967045071137706075724381640506556987386236621811902563084652792785208958466324803368216601474380541770521159284249085628526636025506013460456602939950182347371195486422376454734782129555891844087973029291732833685478019818303807292278410131291256981282076966921958400929869943002557684233624437188792781080966883301437559858365861980572320171597054526314400222688611497047069951683020216325030923013558066036167852121235609013795863475255828849955893410654692962680351247674164301786258421851382800059836452327246890016231194278840061123837976356778303774595173694570582503623073084744265208926842083832090755799251760935163371646080894993629302760064380312023942956189013121757672601278056914378306444030602812597721879228050159199576337788958584211762892271186293033158368264195947243977932487391730068165983996193084172294771285389728902071272003299863818351918577171014176018177530165608189665621521595340842223211527907266651185541623667566919122855087828463803856633625595082373866052308124670655070679599960195091458305057991159056078302525918091247622713009655851714724864484854609301289937155994005549369249307836587070645390104641221992843164726483957919067834083847406203850222342834739400727514779220033661934967180476014800529369959654482627052383649332989709692896028964927856677539516321109081553277641032971906407264766372604393576299546025435425381281402623006088563512882030186292196480440330714751876930687693618268011349522302189737366434037917289591332605546468974375783016534820691565233863314389524236742463452126428309908697817801659174995989448213870375748014197919911810525109823393512611227449022457521450405388654674654248026607878463483172941491339041671513024069652391736008250916602464145524842746647891575201677655650295634506740520568914373759546709174520461134345666725982656019849233521305047797378349277332863020467512838700391495109694465418549245613368788662322820455896603116240935133189610203797747685281272211213279066465519098313547812108262140543866602653546188393855214114057342647413309136012146264176817593341099589808657675683154488187276496228223289459673186731720765549270618415077993688830446770077475651148332916465296437072081386160549316422600294415656910166474166017368536419623295973039695911326032499143544422188013407372759542563071319095110261705828133645929779708924338120047463192254914105404806958718997556203068458581812162218863423758342215092481415113281522182785495279839656285581114129435328516652686343804203600105562394590101806218151509104803539416015675791766903770943833932430840265664075124193185858201713128679749135366156512618753541306197334368284631502238307850232212240434480903018058358652876562687231321752459026360921373419708550024537520626196553804307325434790995860830781175121080800374504371223917830528630779859262496934103119592184804177565558269307976174852654524844890245886769593771768997499355490805126186224359886874699212452303777825044217853941374302955332961623893258282631927900926766215870132217037646407835963667238726348190852733616523662621312374272112065494748564982870325613292101840352058683276824032605535908189583689405755789170324456502985679300252503983851025447653874025656631712717451659431804483719185380362247762198714603180195532083850806543883919481740300010950997236214173062178213692287103621066705457469337881943084837192230618105398747126894217684823290541779394790242956913531277736565779724946378230951127235088033088339212981869324740886789762687326244709381430948495900316668324222201190000550368376745848222631120356830465182857193392459212505871700669965945846139546491273817689391139198854081442129252168446958422250430379203484291921690696489411151423678295842858919125182072502041670808641844909635580037690316741913709637970332354986733277096958345706450759408775347591857000516545746975695784286867225785130719093736855577970007378553614378576118547301259096947036642738202076091367346720419119094385837490210283888772037309942695417576135656057024154792294666964345177886091226360016943530802769201504596988072488938723984603259030890438968439121953054004758519211957814689984584018714165353693181108813585105510466589642734352662147332587516756337916455347383863134729644813710405170396279208675469088831081056885785989218289688752706669632282672981047230265108813991409588041470195132212191557085519921376113178157020520491887232565943615982647814961209149211544377026847781428330026072051673555912765373898036291396470172906467676372683995220433390520316329674049653203121862523820405654804788203251189911365198506902343570243668555911608603437285353869876407925673374241011036293326215495330296971887196823119812084221252294771967661372054023448792339294053877366471755520398988115184863378051258290226154679547936299887305330109044840804289431922500936021176368730475268614028669593786138539713973069938479378316800775757918135085955292813536948071227253229850796679843620438382322591286428942707451235199752607249329970951254953590835558314671541018078704420339926327821003276726816331780678857168510432387731928981635714764072715964895371322400476391485816746497236141651381901397277534581922419450699390299157295542492985992429280890813838890703037048782139523278642602894958433565582098502828065259496391523383314356875088309863401322780314551669030709889397919071649161502216823592198700460326075895771310618412156092359596862742188541353659471224156874521361995808712789453355977675755885649947499324876385296321190128768732728059265393549463780997323569038546330375449640163515861356628512997025350659648358407658001827770552425739905917359547782991753568353314331210960345247387126353631190833975734519500248267331181458636764063097733261136979093203815743457071664883425070011609911719773520556350049676383105920015347158653213993245138984364634360138987277190981058092480724091543168457418245290481752149614817000678748356017934470527220026106118978084235832228125254280899645505989450444257601502714450382073903908426173206256527594439568677656894107860013408392252554586809999390699318585649271701824822555858825693434058855223988023860046054608376094171498961982006259828167369247012480991641452697112055601480941158190467403804309187502910475696410849377996075553460126666652270181834145035892388582702207815129163576354714339343967331307841551074180680532835002055071056250374488998303214546857867201123886551956296021661303672368111261113766210338619199607283374197740941749744862250475451188705247051668737656725570291753845692665489010588089225231989754889645203133300532343259031739755043210099845486557768827086319679697446252806326269056393094989369665677413947827445164778558975071875273931527707186173660128453350239358167277599881241253337510427450921364214035872725286147205785588974980473711809250778826257075879065840916364512634676274558513404315278535557106313247871484582792243721882206151565323782380233322870953280351088683849536780472678541666698509017847377978734829678779631622279200069418522443877215517516469826763350422249054577926787542605788422842499713336723250705657106743611662863520617239683390083267456463806815783140832971045609266450154540944300464532284023369049726938282162854420453687740698198100590655424465858520508164079262037147332579163979381838914865868460450462139089458203589369924859345379944842025443258478694021532138343683058319595325621847470880691398152678748913532977032992018241241293230705177488249304382992697394411720391032595471985448961808850803042979942606961164028765747974200136766070262902719595983365516101282556360496378935480778800389499830506016735795256127358760846876449392713456000069114323505432849700783928039915516878622933589896631661143402249294016814042970923893662507860610265068760874247086815093846417019067939800477057429756339779943006981983536303402157274581617282559146332586100591416487484279408807645828241934579574555918995556851743308191679186452126780353621945816578408925389429165509107627100912935334908935092603165913634878765627668791758876805125927816333998749007985287615827859250042113762135808231851891259175781885498110004693422088788239732343081443618625514917301598525932664926389099603978854191608930826418949594475583059200165066926474459490601722935829732619028609171400075171046636999667670079850389437606477703281221962685209331028106226482640891957009596106510043086924774466488572910210316006762279108502737160269435815902595395635026568588040367672788441090627663118420280488826882965786408736971837583245684598127310826423323034128993794268574317150155132376076636501328736035946947315295648100235021783688684818570906940233592426501228853043276143913262280173653883037088374645185504279140647024549999723735418016278818227278195239576622686825209450304558956190239412271197216098121589041789061602525405192921375032030475345516928702894400872611115035177334888578387688481547310468292387979226652662023888789791997195992486643512160201032998975776960445218144474183148542795054876947598548708575813250799908960272672225686728640861259154010678636567794733965903818705137263473556506009516073096889838483310375009140056817311463108723851890213893194330839532754534457034419539948799195066762349623704763473738875700860513819269352218226693321534461743597722809058784916234666752403598577982642890188733624910825403064494097912059900871351669141324513695172528949986639589674928591978829591503298659058823700454646580167915176983532232954577877451290043751780704309530446155365715557953717775667580070301444413339740781125603289889895856840694831990920271313994484226253703702454611033425841178189619818895544856377567573703427776410070536154189048493957862904548597983576240373298269206066877866834559537624458898586164197766337734851913969820736479771329078017674123995875265945882692251313104707384570514942330949966086167918352174390804598539864763200610071239991750513349049438835606338221210357657941758425221488783478528385811996798716243892393035429453770040968454095572182948382809619617773214026845890311707295477308249577708777306718308745715713014976716318747020049636089697527767673429331227336857584327814746592693257169650616307026061852436169139591342616940036636667827728832037494016238711698486771589634867712370248999098024729666458948684131347709301565319012517839065274125865946296639367850293566868876808347403669201052802204197180877675533152979683692234413539888294017051791151763417687422934579122412514736166206680995723373322701647972756578536688382039115325633231612624041763571883895369311351174969470459646462069256097201296671820250285692612516315765790525783886644083614617513342674763002998428833443792833609058114826231851853397201322426211477310812886341431726658272877638812542262308504889824357631220992786015216387374902759049260191687301414129088384521722681072054231398318543582619076933470634007600674148522489829136124006265724564359611034229394861008560223554696793330809746546447310795155477568056433607849319101610780464540981772009693318500290088448745342933975216098989169226928818742765717618135152544500374428055600516313416445621969263656731415782477553467302059013680535556448641351177999384802032045996057173124550441975121639741091369178621766744832724349797701429771848068450666139096985907834003416075949414184828269398140546332083571814014398264447266922013589137413543054473355898010428821310395896222506368879330549542037497896142503336292176156732349380222919141514235758596761577609146209677305273822759798385216696532192576121353411325371244297520439746041637932355877911208978575403980119548271893163770935406168997162918247405553907562946734774100509569184584354602882173636445923815448591619840904765078981411849752073381984506091651963332697652379553044450810890201334074844744986526217065889419681352425157221511689918184850836096252640855665531107722369652399394741765163532131979110431378218779105986019263372179241233914097260080815524785773225584653620435962898639534429711373487106721675518232764583589441444358378092059278450494163021129740790379708672424877988262760974338298299510611707155682683255153353725548059577154476561533306172578530872149196595254676397539480794707446805289354705166584324780838264255858824548432350660877077820272266929788438867322774225192601539410662929104064735739020888202056715506309805173654878265471686104519926517627040881737467917414504078750218868509385868844964418564241624189586033759865954561121507690798210273528749042626725258784384912247986098196385245109203434929581173335532846046249350721288281635702705448521165186589035915917311469335146090428245713944452298871121925786778050945350208199709970989972091279150369286087374954831654460752209357703582057925997458933901616851446448859482114415023535326168010404569278486748972140225105992531052538850579478967984089447908876219619876212253509425369262948746171134214959492953947050276460492514347569847429218950740649167975375451251463934333673333211723751122305798327416993581945067989857170144377478794662304346979536693448906987344370842904204256026719669969227538159162764352031455261764351672220861516458501597755123896425970726820421871838935999652767262341591666713048062565040112043420574996199156369895155487226764420735776569227768286482191566349560838705423524585286230035512435846721617397848045008852223469703535304443589430751731572968157717057402812898717778229658890200786209687992211599539130797313804127571007696278623254049640041107999577258114462657364479157546357646969096306902789080393626424838917394221631199164592455331939182037867758472335659707281710452429345152207443020686298554838284808529170008579602492670912177873387525345026585525901263738808792628436110026218208696496400034757661710944334928394935557679519373812349033404547500755930522583792863353854557968400207254726419160404936437736278334328121387544861133234494119213834296848221479462657037362859038488552261580382632859124375474091762700842708201483793667196006173425231008774363895213348342934455770208292945023462652708391909918860360798942849705768162673707962233618991447106756101150338224408308215077769972292716993695951487471742248984466625428988499941769408503028631533888157589236806123337454674653591267049034293997961193809397669293366869417962059530720452208990829931343090992310263768090406403783141155067380048543515593399584617828994631428387707257800459524878524453836157067282579324623048012848501597379702993548587920068016319246151571423679742229962227182024475532615282906056647303640633609939446050914048342591348806649442980918371351765387510270091780027407117423121356234590291150806609788528993941671244481507216565012683295815535079241682776815167368459447951230910996942020542750035040650541211294756585602886190124004077555485810795966035688764832980543251742783751092402600545999279414243005234699150038655241564708253459182487150150520219350951410494370280751946826032395707861480336192132846878907078388218057149921911561143987751496654836749935276874215742899277009359237257031244454940677278851605342535860056930545974099937054069933759381331421072761917107912792986746018942435839875898113303783122093423371013209990519521163256074823590675619139878703425278903050258019630510150982341738737795537110100381383562433688249401292203493552510302574875766471908414564346103942406800363592873306293946743787078585017407816948844638211336761440649690640983615975625192841160742954324657811101157469756658064987056410867938122153735654202235535771917958628532452262338960517378627683755156915647594600554301634644999595814927947776785069459723858806025225144035402838148267967480088906770872490630462893549761358481259110636881139800549088876345480623134979895267867967867592390445394536949951181374629321617684423967169474792019243927904864262320111292262098532762579122799479947641758445770351283524777713029110396846451245062715470151786961765577330404485534144470392899458529233766211430662117573985691592399918920641797890228594601002926640983945091505300872501649643558715040271355815699721261767257698837740872562105681177818293125609529370248165295525834339475667487498952859508182893038235486584392414500843865580437042114135811759454564818112925693838405687496352593025897355428484541635474079865343835494384747439279756328427902118687503298172415621426291416150337545967420654669388311157886960347843743373066740658399665716974301099513023709478209531319912889890517471946264798665284938706651712395540569636566408690099197312900235728956912097419870973913623720951333831809167263937493090859460002540860066919832490913097059742983134502037908861222165726369243658881058058089550837466190030377877547659659547397254150898824748082762183850856641776615402453573680710964709397440770420842502310606402416309350884736194599208876578867798422028460093831348369582392928833221594932869468149926396935201036787973388141176399448720549366944462083656051299196020025002304208465252747354210764398555658650312256163321397461016764086514329952083844186757689472610366373998007112429575656381573260543229060147975680340986716236871233491857841957225448035905275638200075691839408653691572013557985200221231989099425354783451700467694044199755832198794430958780253333359108481297008032392473021578689609523938635277381523195702644429112825919276588687169259489253311153927296067599345438456275569915584396868180861330689965327541625498079476145231087771932396019123170535983120493719036119129673073576873848673131547019367324518911742976919030500913679058270599188747079238884212412353659223945867605100076644536740441471548902439103774165356685312310949364371845824592392543044833936224653523900885635743579973224412554747300755966259790220388180358776215287197452653295809545003666747177134900969733518810665989916678285368998267089872789573455092732426743949174776043150239309367639478282747343876775931204041944847241464900719096954362300203543644883992549700949565804339299338609044237755529463375463787245882292370912620088875720654200378837940513685180387906109300796816347639063373492599953547603640695657346287882151242565752989415619080094976715222030034286685357520412625662492969577419737580743905552440379270807720408382914913303805148043857427283348225177632290050605204104691612208693782911096118313083771359355770653538375419622947100872976925499977843212707045888443729444064904746296367937423579470705634589472108959157666232271888082905800441841719973441349939721344127148051042429124211658982704301178265294513499917573839799244902030783728829600400836436514570176069286865829384066980339616533139884791385037496353924917361555004534003401560760865992965083026238065641605849331115030394313311868491954131637381176370700269300183340376886936665857513805222100997335920069866153405971060712054594364104740285850425455619646449845423001646384114936477056697967275824836096040484401337398608510301721952662506463285657308397206268966981741123852404783228808460771791707656332531106930257538840099170395098515809036635371138069909737890460063801981239325957358571908133761338398297498915235111365051101333105373014049925132508112731562411344677608968232211206218463976996956261970471750803593310815166239045710797486411376654264263205785438978249061864698759996515140263216675040006635303657104369971058975158962718308403051035961257030321727318899030228435082132440501128043803013001795021153143604127045871321820165385233875515203545788546833909109781464244984682254931057891271055942860116552704565180631208480968752041541916261584125956276610278471489961780590260779350030721311622665813691123227370275814586093671185812574116496748771681850055154454704613659265663992021330725866548932570754101180980767786754933932110713563412452636085026033844013029888204182637103982724207550688320968161685194757339384270452791967724080022580869792477569638875522155127963036359641859079805554668218832642572967095612375193892735751918573041928869321700228742942626714861125925804599584747985793531896739499387548376328058270936721498501388086488580354537698246800437292645183963126765228625156318263944979420615395914147210804244654612920416265022839716087027586171444333845746598554943629611219851126967302939361063258006953444733088341165205201043468099011299801020341743635718973268553589630203954369899440103476387706512297216625987661642118013165084490078830043085708697966898594877907761533794070283779289313375020246887285546290309586046199819970683276339955163949560880726170052303570765593317925963844709032953387171994981888840623652661061307311528574901158896356973508373500962900599074946753117952986904449654254452694187403706813179556090436376464983221756395056300103982237840421977834724109385142209017582268964073511738328395212423512765055838127374836382353169508625959945835116747791364635899049915521910326367552764564325065784924735250827186601949466047255287103476804822930265777172546565920566935412197505799884024038278085111868743414865881542235014209475391227926065060186136626195052822621567677472713345002623415129613860188135852879536857259393644397951983957372193887471780891884500219071360451673181022938390047268566602563315500425513383826252980152030297775492317029371800972704906662630875284592167031600801065495995250511215809403468945405018396612207908904784957636085274128059244470370525382376177939744010103490746033569959257121469695741473931466050321811491305572541352452809225048866189987901951735735563546416218708129132652843553318175168922288492238674248736095097324366477374257251548312485206477321599049851265088720858019945468061423646439224975272845265329495490765808687889667769140136403380749696339298505424160449612202701351403976771591295946368596476306032348237920711666757508336159551074546429296361231190285659628380470596821806417122093972477596589948443215165775003573319994155239236459441882821605500478400425319410151638355794916886447350786226944995219756736425175661193940290659219606708900604288354221205050392590022234461316181766051870645235008076765757245083734405124758565117400007478496230930331933556578769285360529371135349197869855825114684017460131442011918358273202594241168207770965578048892121454140571253674729263719640508677924180628165431387865142524271497093268708984499210355705461536595128789283568394778237650448923236633016612714901104293546555112333555598669768628006614480377576536504033611199003774628605347155189700824990132168556109108593372848133736469214289647100855069335882119627500485710764019598746466142833761035593299901015394876663990220075967517743316640369654669724661547820851537158298746926785489934189187236562424139224439304559593822491780984484738260201722541689296024958150416536675478559259768337031179335489987120444919145528062278729213275891942411035777130818002810010332759307774918688894644397101807251265384181863032419189554131905233878212821417749977302020520151877193253271777449387191111317528306095623359486775366696699284976719854722034925618628785147804832598936124508517392472544853596978410370119309193398549252125859292425177248097512992384002279175069382847056998590453663972179265559357316464835554381405750438774096897498055291776133468860426548665594822875375596540231974771134476187238304261904479060270053849137298593176092277947045499335223274337187110088365945021441398099539365021394821488937642954392904806775727910743696483354262443134106395663200388596784578552849448685582263947969020560729757314026760371978581968753045920636742119665822107903377206346580172867893532540006811905198168099556441858646619999578011115161689693596168216814510049495950801683524151721000023493784171877384706949019621076621622363751361429887986575766370296614832269638536136909692682876353581198146255757518676361946671120512972052910402754258130942213290855679594695080323711129071786218894778479349343840298441851972326685289058358560995668860472099913517476753862566848144951559178179055313041443893165819720344446460160094649232567118397995453135493587244069227265430611971149819789895537265197384860224709745075910478609349922940128856196874510349621042262922888578074486498953224311728156914935736793352454884803861305477596738183474106098310290728123289417323417889732287610069576589457641929202822464696316480735410370990871308586715142725860655737772708343282111836248367086830714034183533236395580220375802425698769655407562892117698357262283305006537105036882580689634288678462383242353785205788348383082529052140603465531901512367247286797927647748181579584731869471867289129734773620718748185269370797469401706982053809850389825812759364317147179459817394818412048748482916310989236884717741913340537873711930276088680488203164401790932416081730593083672915733095193262358767362494883403573460972594214476735105113090445338028565110609068056507467116503396232687901141881154767214998189368369493931202861042967398672389561741226873451072346301792913815400978047951526499381117622141838529888657903744006271689156756842334923039922815095308153715170718320914872130891168661885707561485937270977841229628744794856401250426258588765806270942743325681023213585813332619604455151350170619156953052058075378834846313114623832772233964537289199989771623016104598083858655988193766359482767669404948319902370931099823941872776325715801740008192269679533262552441267764412864212207743810081167241975127346294283778582252969304388835865108854414893254293497288656124684341781864073239405284781702757914920810216687146329285832503925749321494962540438778092601200841608792240555314786396687624049867651401232515191691101519247831338215864321243612180946040617916573602737932201929533636805412507726844648664421666629812351760378283283829803872347652165558355541447756539942478603690273254718203582208651098104951082397804653387648244356412115911724404492020670286260789795679869624583909486362054347484428179753079664465233834815943614530501069337092070171778978321622214399043081735456593534272800085944851885284809820028274434869687790735553851958958035602525822549780225370072419344092602520876976024294503272956998532550127501413319740338931145624545576531271734682935558032289251562029802517544106888436153306861835425922184183578969875971858498543628330505442566499887518993088827814666240705118891527028173732384143998207705968945695259747164489781360534232628193305030677857971621730287202200315732049840279520880173276043502597847880160912266300378081888163503509506409327475762456992750980891083794212614289820877016479852087238671803227962702582802662628975817839485306756621140581789596497847766759407547198503355520353822649624353164176055287747000950567764564257787386156755197865627020575904647679896078718227527940885179061273376851463791522125437794594434433222366266657194461975176357796025734755261088369657153608644534928039103874372841242621364731813170426498745029537241590102647880078728947029509801837607659536450485750771132681868776934696399109267175909208724534503469854964051582358387254962478949239380487602874188708652891827463293134452028498100510815898009596911242598036570868164673187236005172849550346556807442610037189728218185781549150122714531116862866349167475579893765668553349536419147113987085408141013253318966490473983901333752191975726721289639950876424072210511070904864048048345667286315215513757158140115620257011854007838445040399464376052244512725403457691596499662736042836548987586729421379966973424766169514464457242191064971249259765223545876815097155851953052615194647438835499853574607897528761656248963014263205670859398498165476068607242280123435346987687367297956672851177097066016088872191995187177051522192300116674847578254204461461520404750968057359578180490033151710069228152578610125156643626198192910775011497885124869574429513605529435072632670304274046945755513840164277723472519806102460919825961196495101766227859872262977371944184871643959092837203533197587206801196450468866447127842643827619698151680625323645625124666565797471477708289709899462115570111449051226294232666977912010621994419048179140945127890274328048795205643064027645095161990183770030966521568573909417644570002995415196710374680960226005092917157996896821463207448993388320803729720593573198522744232374502753502416430849286141043981348997508141290371739734353048247963435044961784693741923580784562264756372200916858214427271615406038517434129694698023942790184609356818070304858078221701630043750176402596688335439492600446009429062256025715993707441626399687750247422258457169748777877811884785216811178214824047426650772396710994378786680545897806182303090793820900856811660272172406909872664856477415745202096996055622604998761878446192462389877329684443805038785506713095413970275159613242626522391870391907471036723538377989219641447245628215574110053821877130818701265395328465344821838416413833259188715389435738967133433567506211303134661794167788034281801254036364786801530079738598395396743330117793157039724364623113392705122792669724981180814935328464383857930406484127351392827784615185528814825492659233508989116689998131265148165662515115810166105004934065324462438786276236739744038452666372642096562633583735686713580141034395371735622840301624864828313312270639974873442313264141710649294471862063005697297649394983946357496500175217049363609959887041551329460390231615411502284995234190199043970672358217650874695467819108553031903082285384885896200277519117688107704331748885017979840985943108628426898123883858783146800725093822711763313395278065033425423876040834045746308026132690181638187646003087332441033386561529801134614292428154403980903807587120803253185221544662187113859029098196720149513092034312076493915809532323741578140048763867667913743658804582947061952302527049802294175302517382566603729810981738414107152066647594565576490872243762500370938364724677016519981186860901147980264678671102321488231961149400756090141657690802368165283269039606472098632744948533585533856806004532891686603163475701246767745549747696292134992369703726745683451964318280251916331459513026480509366681241792791870846009997141785639053021983716824954623473612798404882901655571364971717936880204527733364461251043498869921808283534017033531515709295313921312719212397451402287345385069406776507542552994993425963690354827280738713473028352121914616689051615637905720419359645318121552813841055367296143310024524810931248393146718917079509299096224684173586875940081283362962637944905022281756546984763193433139825506310848699350818423951443676816989920058035121917694104516649115198150000541360452967062833001781928214565044322220539783945030318074806495054179160654582463911586436106122859131445702433018518809542897155258601965887943701753429583916785119923738145354971172069780536437501531910267412470673389963372668494989792230254013040820946267161555890441064736760655873321034351180636783860996645337510061915268948851921233854119914520885988250007522004137130019973434601956230288371516682302631675651443661046840696151181466002611417731401906206640825006088565350330207229159609658461407242063448501015911495823228637145896335013154183582242886239360566517057065021933865381327751989547901928313059787597555399012023809891828360654755745062837882433950022051998124169781197530661289949827161864001367136894103358777820882068369749235089892462195381804141546591049216218588407377667548816366697700527964432596153347385449033097500666173729818012794090200062606187987888319669044448531820148924688149919551391064015444803837527365733160199841073692156348910653485638379490749159067214625109571660369775530400456796813781618860310983314400716851788101186361008706728727380606363284786509531975623040349630069293007000256215720254164942717829665812883131753774142844993759223087045915907273999360411477049423004975933342096887570193138646975539370158294756853527331314254971844206542058821274309092793448543191655466677682980633573881283766460226883930038627238059615758113376948183281112091284853179722675398655253034094978627291926168694353593431142972209203811296477929673066556379835405060270485424895881342026349138083371797343668109048426171213182000790421500805461079442260648315493544982746062131195088481589331646529458116839740646237199434759279886140525160742258261012884045415276065401548100338317141319811807829993107708065524831692696321579900055300286722784318330476742540963337195207696999618686713865692134235860756252317278068405000383208376602046540781198445796484460473400371658472659675241300904858408679686508532892065087917996165751826715145916622476229444417474577475529097689118079153927421086520595591343029439010757510806612936035604929987377956001103413505189031563086631259215547925544351674178143265693796283497769481268644741294480946103233903982407898149008123668169770551137095369063502905711814445311604522149654840602721431726057497704518282005838160427747639128942208777224732679272119642235584845485704105735081131194215951920792024026026946078071584518170957316124497282144068763780087385497212907959962516100459679636799204115748690204359616229196695303541964504125790241382294970084046844105437633197533862185529746188430477416689037790760784732461641454192714927864456730206100485555069447050910178059845312512942158850244039996573618680815747681590670519500222010122421182327929868040800262554235808067585100555144123009256485881208288585216951106501792173750681992348286085451685866736086490013054144965350344533824504743216700113565959544783385742853079499787985406388903216079067015616925233060791775876249577904431896161049889823286898993332363791939569001951102100017399593016977841399463103816414270904057220400839388249077789471189369665557036012350472782474374528554278191056380527100890337663076615956361531419766685862473888062045530217213716504801189249539339007557216365249129318786424682960558249011036522005835945732489967875701201916490664751651458701902388716557927755019385100429102886257106336163442554828337754389939539460729203460360717414732426346087568656274619386084431250555823504336077462313732028699849267461252288751195419997064817091172706362996149270842336841752263045344697452457513551202808118947956079047101556549366933001506143129439434824018035323876981598811423236364649281129934711056757416682488164866226590540875419419284938268627974833197057253643629112904157979969607644065456010190251399885119647180050273993164465810915237311968337325771365758398806106161961036460910798010248871438086829807940265761712942184219489429364540821127844251644232165597905407829313094175753952227318423662243470086863629698352679000407751539806828662459820192853227688544931304176412856072561804497331150218180385247943532192803561039216705859140649182448644158443650890641649306699928250728573865858099093928898585006427976741537248745611615541110349576895962167072221247320015789908412096854958123378341216091085353758345434695839483760667943962968295159383968644481007778232440907810505402150787641927656535769233006045949845682599778987068692511737203347380373548258256396260787676737189675732401448978947837887758942300364884337929777427653334519497431349845472974832012257382637086074188997656986554171591837896847316174353199192832320695483324178386059510979014696971594866170600434624304960951894676470769067162428552381765148126199398277827396996251648158247803325601115180317932681491751724136345574009023389405655898090695507571558708411889561114655448076929698758909297518929804869694183039170319777152799076228312388166616161659141083420554877259140802187019797145754505334150888253993975859764884906325058946882641449441696205093216266287997916201617340960757375135173933471000548276448754475942258245706741752605217276998491338215629307240240522616607117419358382825107582884192998052764709274566826148604726105300448081340761357535037420848301435820053215758476252294719952901225495972152598830299498281700588875506672310510649281617283896040353256918308882306708714925515714213865226676185149384114096267057877647225961742040589618326358202830623898510053595660097069738891800859686045960851821479282040236443336812926652868278052862508397797538892311642629076674340894380062508063149496220787790745553326417330837545922784724608109355309833623061922314834970686200345724725853708394477385042578602715841953870788839767439280570571809665411621132693509118795156202450876730977485333503116986425301362920645466741680019066513881459008235698389700614897399523626306239057405477059954923183856736561221182367831784291718914150191200019515080674832582022356092873924096428624983007033401736665708176934574782145021397845851931149722880011926222946009997003585802259395118949546076464699172429928935340151029458965587571514377457515802515060799021635522195998242604454906654205147339660995570297998491144453511127088504099022027210729010524790335671270850837259236290849167825087110159833871193819017619012026184416845630948460071661642242146690227657142451229491205663788081409888079584775031385557113024541699379460610659121987604916960231684454093720036167727684712978073322435929218702793223257759477366760819247945008054287130507903752357740911176234259366658471507427107992755838882416315569901459389073665689068632219572880958702015341576591557626451691012913082696396630455114999436947124180945852094355069278993371696007710434032406113621398333287503940717065831280705569117461208334700672775292479822429287039088707619625337111055155426878838293664326110041336435690598650533937114642468306277354288411584708256011373665613900183384749963519935600470226870733431863072648096725538235898043354771588282067361449143535578656218722778693393491188631074450682711790395225433018695940920420629240285208375385396533344898266757760579688351285123824062893887880170384075196715209028477469633146183742405000604922838071273991354290844222009252542960036720927075452213891323248216692375543525333719713336236570765272358572998035399428204246732168250381199750927439714959370266806352285343811102430667078643511615862609082702637918805431768265882354960249865039309926196884263962735888708453536021800410556789918300071028790143399529563324223657891079019621660416006290708926619421576244348926026059250001325391912321988666167911578022515233842238618158901564437296238193849999372247625552607128003220916607518239726102024000081860091448840543772461007893713328353045681518543061900742413014717230821595602255049429067274230361315861768117065346325936038822905447278450343916892250377641217537385929106230316671702115221207163407634869545194921696993443952337278446577530385942813736733086452911935926102437220633032934220351550080610762080221847241589856251454759687403952864464513424574165764041445723642362636089575355108633276899180946386567825021326529220667827145381458179078043423525120325267753704883999389049771540411648720715439185399935257430133281445801685363168722090268207969416969323519981076307640807200434663321534403308450075161871169551002765396659579164273859611940548749112502647594962701705264292570679090338170767671753155386398316608283075561226071484189165415075915044337097090944013026580187210865042277634781647966471802353376861242028534655646691866500703609431575531785845964360650218777261244925276377239431476285531655124104227205594361063115259859474751151718829125307700113261489700622593948076696306635069199648783354352066230805765415500751223981112155173217871092225817382651239385841928527128498414744710503627450297396655314482187742831060915887745125501316895036868407384544230167381512931500139934210313709721243122351312688176461234488235381146276644186655037246567973181228859056029866218556664522643494013605106753002701276092162871714536114803733767964183224463381765493274262765246727316963865543129057589374248328768046281753979344323678079454294355166781354868736504420536630772026636599429691536711053883432485942526004217017911616979140443969440789047018197182467015826038456637130709394322396600120990412590641294856410288554266729486353860651357401390805782809803663404111030692715322978486614272077123243437614575345253382841826141947759878978560661213796971269008283586757768633923686019689481685796508086185783487307131552736584593543700724245244027567050073607692203672358429471394940503491734215569100232335162461350834400486951341267026805346903128185725849279668524905791430211096824219113903189865216677945344140930826094942651330164974834029198313816755524711960319190531805979852127005849957336968062634708318048876978694259669562798008998824952439696491240754050044093249833897594085751835774191296212166126760311738637866983885243615909258504406181206327345150075969501129544128215812982951879798036211911854360697953643712404001156319656629582161556491410504015212928045119285857718474687740873737850295513951357906394288337299544777959090609588198021859088625255363599376204441408618513427483496661836557026142010377631817447529691411368853905702181424302697638524095775717225653435070432096030353038220753617761397289151807715008793245703428743902727852874618910434503136007857525735869725289996444538053729705501978647364078800575944310021108561011526844956840194230482892498649423373590557569905381642599110677860847543856245974663006426863368611700473883892567793603491446692934466089512641706174688230794063034191954625547186278460500058973491514511121720592910493688272894069202954632348754501569757817596376574274293558226297508715159217027304281368748008867544102516472526762339475254228211448658187487207847738074883363762997831110264858741686577426861951863992595990609599002928899895965400162666660591933385025159266021379036385333695863630605234701883769413920770101917558422374818744779683710448814237633720570472372224911386256921624751037366870725377935072634716661767595210062463819334936129895894689392958347700709147500905015960168788366908964060437252566450221912395717108995228630819013015319617713553803780039936441889523501733055390686398457196224477021300873549048859450916400802155818123391481843869738093570329300431078702150834686012722495023364174067457405757092430698451345327051616489519816687613300842340021113751666955100831500059031389962870232726066534561554488369355269461841077213611028665238023573180923946885687940272842693580367254187066905145086517753662615407601270440140870684435102586117971689032260276553672559041928596726705004457050620273404346699453986762934237466485316291407760190549958909052081249462304833172616760311185874849890698125639450929466037487196641631586261522720369534955058640989253717937016788720256281164113379932219101239322583027059863027281366377117800636493698683747256111873458487530123232542660737644518495373216120874673031977250501174053127037713663612876418906611166656058252017358168217191517954260655391944855122896253173847398408393023953403386949523773760385220150048157832994527112195027378335223759103231147475517583517438074654681989936574979359677053602833528014282174746524931736557730614578701982882671351040173609449440139223338253708616847768773839386481940769214293697186882636752232069217900366095768195661115765458817310079957207465861300282020963023706430736209650203655893695571052994934968737788833670407309256435953224680090054941756322381062682261763823093506402656593760140375175392338476551725383961058235701434129388206896509943821323483877716381150297633949492633449600328990077590398525367791392795418078329848417470772130173668113582409155302736060863411879815564485472297266971983808980976960689707865451997190901702429931975684662984113220244578801513834017357737513698231559191223187904611090403621441929635134010767758834703620479508357092592463517201259670642483019888034083234472002918546994398380689808689353116088683029793798565123995250080578171924604920951738700330828518169480251426514796613453311361179285302469853900871561830622488136587270441752661967912606955629493366570790778054140028391479125160359646890433453725065800060004906460180991638695612204120904367698125544112534282612441753980866864896071551205986471412972332589325039935927290707359140340912063493605643831013132067441962665529565930010704830532178877513358546778187182985783781888440624511874751578572569471096257100095797875007505557106768041176817306353684532882350924132135364713551325193820620906426852889865413270559407242026172100391781321157509421233022340241184461271594054045817530400983130860444295864629902672720355614163105516274045196098019602049319460643208534896305464277179995434587634842188686276806816846460032131554933779195686740392852721911908748462018627105416776632167041467405146649738654307659156839058599357761295215674612827210560279107004631422785127694035578758868023632403082831190738893569344787646356420205670925858451394681702750749700106469631329399192410788825443555421425384891064928741858024730396088275983513386762780959735212149176514509697926688834410484735814438914449222159450804162751565111148328521972384270856237472155601687542741179976500640971839464811316963389310905763051225433722749040115549651712510511357421637197519995166581266082333967076812066911056967153096578256421305151705352460032195983573692801337510754522411672075543498311729060000497582376976457726197870648378459194321511688497668629890305391759609469909433333677913389548028523015319760578918372633149342138801659650365467330088402256984928146832058459806571439835567775467206555878390192152636442874368280437964650940281383721329529584077158554352277175420053064379913263801337217805664016760932710428881959370968827619157965539996721935584028875025701970593605781684454920543738620292062043797121828775517309901013707796161177264610043502505784646101746259179538752427198385045738043149531679660912099941028752414837893848030867173115549960702925757702479431798764380057565426960075676739443119926931818859317275319517214449341415936980363503188137046482336912026807871360059408650616795339010743923003041202559784493252074460568892218411997238037391338409699899830941855671192294122356946063989305433944158782069183321668049562675705082964928970795318954317171876130170149473043897308790257903119258508168463863230826202685022849670863427303796639653091484025245826302476072012888755602222615096134274391580911468287681161670000811867265123492682916781508033517622409268928876001236936404616320450435919254880949425955594582573133002123970021947548063584175651820774645867272569757228658359327838969386178747762804555628910581326948142387857949039918357999105590023854167719230350997119889211219627137989216371918264219691622469849541106639160592229672463139028889586205140977650471340745015847461530575829262760295240801447146129666459770252892430792814285789147403890202632660183692283923414259021290179740908946621195414761124910269576766495299517795559108572591376851055919886650940183691805064149333274786584010493070786339414647029175766317891191520651045410646153972215382283853276053246329946931546416958037577035261262202068513167285190947979687547369039267091048428862645350440956158379255619460549856853649067378251207510536021368489032744100306183605971421838495144223189976368382870187850424019652638636961396099991373437384023614052473662331809110087912423336347515219762364295344027697463168932760516479942990163903144479948323680340050896137715512720080723396571820625543119112449554402270504386500959869867803977970883154882669761628544328448577409394003540918684145987319204293716231569943751140044595303775682851326360969859258056223528387052306199351298670898746225201685390388747226234327727837181928713899583805178799555172089547477544038861977497451576379494541391592672014144082437179745065327062575521269107710500023299316725163061585376033075002996751153018569003063190993124219390576086874336078402153917575253650053601172083664307693720591629085164261525418966144214093695329721607267186292782416102630846337207317335843056018585155693221900133666265337031641208014605941515166188579559685288387186167013702722884064419743070894949327891308008495566980038751850626876969876929369438324922712237074937070562595119993700469711420236465251817836277896225407127060263529455006490605896899019631199187634395079289620170115714450695061691355099238174772401441577410400185791009892376990341280668188427398332467755721505087214776155088422642732801445228996837062824143455414536016653873476049248469660631971871340246457836826486135256834490407694187027879190719804757546544878861721551274786038270475315465336351407038504301766839977648616125145751825014789568410358556951706733617747962763150745770982627315255330099262536056284262942060276012518674857047542384839313767834314202775849144882711396927332778265509108334855772218623197177921738238316743581700319377410614246891960909125370585262185859414592244634367607782345804363342575726266944806732641042220963655419819472991790537896312933389269525714225063459499065954901467112474798906942689723220198249591056677146554069306429161676625263458800134861363216054212838237816310107656331442702734351770607065416931373465827962068200794751367145953096272577793840440308421744635982055839485517572290118016108311989143332854792569133586334339974650432891729109065010497291248729222408200690490767703799044893871539154805187314159937574068851876941799483507827657427481166806987074569549304034823995491318899869103075548480473672513694736794355562934554906380299790677903521681190201170121871857413769881667780593719978163949376174855220919002368509632623237960121440454247411555614122513810399371916193963282403749415073219798337399206300445683484572278532091175533358207830560688643141798035983418321028691717366511374266207132940491550400136637880125024121245153813794143579320493700363569421602139579881831921241321139360672501779041283181413966574244365941115296188589358852053690218183933603910544621354327995948357367205744807238200966750523088031468707590704187906701720517502839766952878588089160460259853225031065099512924815103010011468563411427997610175231845269685261202975328808697566382180060896739167675763116272769112999766966038261569698498549554226170273230711007362704524836631134002735598581695113023615447614068985126028496083701633656002151708297194348540767942809677743336900470015988933300753685883355541483347748942339348097246279119426744132334515754135737639478599284039320857899986086083645725151523950327495703891055540372479794817834752984341473296883447851980935288354031817651496239499923506443439718165115543377225139733910577808642625083125269817164329944043020607712671376609878961697386709558252434166117674281237653326354299416254545373024235368050290252451590313248087128279753642013985957504203031529717910332019477646562449870229454606106630726086436914897462232757071371314069863472106717988968524163108275718798715147911181091301264788194681203394662849786618203861956503249223339548764140308238103194508903035090733028786644114621767394795124512170010361518643883038534967475756831358346197294374095141515318556045432498103279650350420601666842268848825653784587326157827990939578471435794329010949343213034716236848254984655478724736242324604148857939443467498320950392684845522799118091784509151251604623115836302360914311159404807042822548340639885648517319605891399052816047550276795847392471467959867412263533215386290590342956399383516901543777211110221230880230026370084845121167729857906376730734357786904601835270752830114657781706401048631687491340926489421982377209114320890534358074362123362327242875959224880051842196340307928619339297622134379572535136192905858673562384001830556023095972376085377314569514600128354107490735693573439863248497721063800717911087133585438400734202848316256443139302572864287000294685736536534852034008286869684058558059387588893947805792569283521815704475465419940368027471433024515962933432532614892431833690627638474578502871525632379939008735470212459233971899761683261185349123226402673089994197629216093865999454618202856872099991585239127805449092415935866861563158804795983057591019067218241900161536873119590761368335247557305021394309146719068387339657921047979736826017819740552443840027652121846588064384197673780870476990295313782395210185736620149609961343256525508017762166174476469956438830209474323680441846597803963141788338774517242689730167502384326037460184588958653673149104477791469546409750289215844128497989853340531444368004502865098671712956125845732198608370071603155011959428677174752468629340587316639324501333198488580863736382569341153367571158952042287390651364581127832995085691390291785444141110169188499427027234640161318242612214627092406597679885000145763969077459522906761425132038471236041440072433973782207383780921324514089742502382207788000040478679195651578475362248878358545047305188329915661299473488307264246267598726155577241886500375023643703597062444397015825084774269079214538065824690287141647075858093017086037698317990938744948071307051954616394578423957713899275427429530776500750528493323444096353820912279093285461224379404880991027466703258309974687958842114097964767165460395243903562037824557158202998243596804685138184677584147125395156451491748790422361746024441456858587400450319527736811687517548094029616920152084884904415189603221390837698780567550926453923275848740587402496924100166195465455856082279944343460842479187288641536512230714284458241614811448470436562727866164631717018961202594454959570098496627457505897077526281962997851173258818399028024626991131069278346410090733676786531181541770582966508507877062559451399055962406206185811536565703191210551616294736760930124278084935284045127829709992448292413053829062438516325351111307077892327406998877544737766245874269286240033635658442317752518596962962865021457503939750333427078774480189359123318621987120744689892492706481624395448582949093595416272451306455565465898999506489920103388721336541461142813622107717942366380595808141827496407913832246974786073279560599728969379352481856794995730486923181276312079070776370924937064619979806369909877372908559737833147708339476748695732523074240312334371746816615890588550020314823108802844573905504176803359803973228524163049414219032914229458295548274222547987153055036571079951410208348627865401209580776436315469284567613768757055698152895235932448185022811580869484416821440181393433795783840325617754174298370662266595713532896244212788006831647783842516227552850109674437047632477141470948645530252881761294803557466319793259568426819069930472466962712216693883480331370646920590219761718551253573794287714601891696546149748825726355942515530441994271816621339555232286034574851263000528702814037546622718386323811975716620749644120388808616695230215788591848289941604038188497665836405197567718560243797220535643736381825969158074429760552339102743577252473111475730607117973976473675555044446111867037686654135159617276957274720910125070250549840696301178297877231737997841831657072290830562186892009762079884045926437449019260569734070769109651379894083651209737674553021382204853596904802798612476699640557742264678818690587494634799489679316909934487811093843615882753004552513714327371073308964204789815567349445179894519569812061386810949041989283784357043921057223347706477769477712096967949298969672158625389810336412045690499203195825841788682252824455568634942728333263393788416798502510626296407337446720774631652116302529085401704834304890441349476317878384916033208098563661036388455868407608987783200737377620022829592610528547939943537778989050809788052926855717469887794945753053514279463262221083359884068863186263115117588060962195930992657487863387401711030217864180613691409903645196185982014896910984327698574767415929558706343459488642445398175565538292821556547431564667908111007952220445516824469338272233182589718310765392559682609059213561536906647724512918757362609938534396196961097472955550442251873481194557367153038804990884286441832075331150315880867045013709517819093036618790261595625289755556540927863716304049359971103242039980556358144217969132577462177395789847822538804835698076931500257684451272934886246041376094301505350851803015891515205733893817742194031235818968571902074622555212891169860576772303418351431780783955356118770926058983801600210028703684073652513413656917007557597335022486021418695722978949409512800583340447067635911523957072914392325123574456134481115252173376325115499653577498517998681538658847791921224622257817874062536073967678585103940804581354965590197737203508184239768731488933675287367149554281793993753932110394474558700537043006732367737478039193110307741348131041834240536624469586577406213417948301674143068977727034886256743755737843255164874336696983012851388186250281175215387145580708206535026867340416905679263345658728772007457574576974702952704363894068706899821145592244787455459006480645602018853843954671385631247228692449584572955889984245950123275300070156728763618018589377286997753622262173285614362021549154138094555200844809267729072104857601287133304741251210631711228886324842360976336136897722074943395006750465900298276465026500471012280139108170677532333033214441376540717281256249930922570809801236244149493370189610651451307977932492424595756253097865038043273972836018662585725403370254313499033693139467857862897226687164323518386592414378073250962341564839159400178442800907996414128331395614146474603835722816027831685683224686706667035934988210273846376222480786469105622978296665912974293079939621863058486954653037029557672917991155679160415015980171254825534866198300303986738691674940256475329271529588975715272793520979760353437147392508787218207804630467509596228046234009503263620262764922651747659556442213944914080087445258192552679628137406262951968552177110852348087608876012899131075934070138866804711700656804336729294516145220344141591742614777210530412493704094790118719710575253904728222353987614209200221428102621982157549536238322994114103774721716182352932225910709831005458762694307649929693168228154893266419982214542975520390202017123372199226438494779637779118707688541485353313773161435996161827579729076996048636848800014249200172447112449172039163610058794721252282528847739239310369054479643806513446541929971467252822480925112099770703038437809690162638406738365991931011171627788040050934062411458715653853015195569466084652820416307811278847967870392473347349509606789037043838371919926855936628749699871287289332958337868525472678075223076871936815858391126682680051727251229859816299048380489576089452902373544148155991472496617110241328128377048044783502785255338487842946491992527182421029803001117554899396662944076709822886159442862504255954519672910964792334175205544448265117826179934125168455932660807791894303017356345281924857402406179082436798928038540675886801873653994600504700684424180214502833547867703163495249130246380330500644546080571599718788233213247874904556341596307846914002639917007231853678550544322792760291329819192567793845367553288180195106366797163083303450513727913462667031368794736047448758492732224154110929194276690386699845255742349760641904481942822422455780714051794155768043844155913143075331202359358125876259161994902318730953134810542296051499697847413579446487141349857064996879683697617926566311530821018288468445915204717229429797793563876569358159590753362931012279103377866873918018048254392129244922243222840472141273479074470909522814905453237681370035736696185483177261928707583193991052587861327088298060498088743074113549337037973329244965070925472077996312279029012857452251096583447680390838153244374855822235731252043463428070373094973450797240965307112376160388189342793264206432509622802262692544089434915272145075498140421252951961491031100346428323906677720672591322776230205092524905611347019313973146639380520382145345357453383558246878152320065912709030386309962586726670483929449526783756073248871797643231905728380805948695253775933355034450694011632232805384944897100172501732258118066099616678139971761657902664481699920403484329049829989675126090506631767273889171253246990054313410013010686965567050401080924503427980522453065589369470734605711600824887673917928998159516612628559882235220952926464802973060684840916839718017728653807023480738138352448653732723880006413764055469903654971819254372616698196371929628942423213334847982446686375537528462372100945480194833984599270140243164589030508527911990999180827582282830313458475901737762197894890937959881214721064433495276301647214559228585898802661461529120820654278291122581959761569333902794295189739132217655664684080273473877746514345123144529095815010842519183676759914922092801178555772112111761383542848068965655798566472104059731921525404269679226674747358524329979562223083543989032725688026218476983488840659321625606596147696311172922994317361507016888557678553225101364400483546946631659247029506531736041497642920259943914317634520580531264904530447225937501701391709994560423244989432405880686223627212484519147916370512742189928072238729475661014493124338801933467244719654432266351596632361212188985924464286833199875042966117560029669380092719361254034271990663217871349429217988042698171416724883986823098053921222736163703649921265990102405248914245005670823725866714969683527659836790683741162320930735066307013094696476842279741048353536839883459512272711284349370891898867607918656051562311903479211566796075817438104733055026007309890616790584243419623877262577342489588688237128497983046328529526593992440164144789376403847617405533013128580908714049223979837134872435371571964544424577063423676792990885604615808456806872062570777844916675895798619421849756312137228657486572342519306821000685646844278259577007126087632862872685927377118548745357932206490577298628947324283738183507972989833755334410178601880765958714105861525599082208154967968672558072858277680830394405710448212551192285580222697321985144643991665237631567874060126102667713656145060999815971142417768144013697817799926866994440333298229840188572520998563910973762644563779009100499175993450617617805479599778127024217358291455311416715225899480146095067346429522154532979395815339259036736744815387326440424581247797118525117366990744670688517406675214239795862462063786041756777689664060727529449839023104656968752789317536320801027014042934707901542024741039624475337826021914567730999951196763866269639715449268062948361846635416737951230136159506713828479800339203055394184725421457855343549512455963375883491127716458746868766011795461407551067390235231709378947088801964155405550727826846493389473441907193458463710059277804697977057951376974496906472422805854235882279250340111918031207470303845958854964399004111559496254753292050481434129910141317848250333481437060993265276269625195987907757370503035710301358578907221523858353879930310696096533341517124550823764798986581430467171987117002626859447615436534896154255230831326051211511553495336205298450600710041377813400324042219780904425157717724039806862301430356288074228381586197872805663729945824891437452786790317066234477279275760930283644379060220929955261491185263751235038934804321157552006652599892027208216601229312495082222393316940677272468508378817985704574929155247544337464943578568137570963958755851320669987308458871985705588354221521996596020603529511732518726217662532205539363298849194474695758304146513568324806218428042236903241698926614503013300748717647944711388553726020468715490979798006595615282496638435714315769936205795098017578126889163279240462006914127261706714334487324967661549995471378495168870836321870479974298219194328492256478297576504812425474023703153358408734132680880162537586621986929241758494713243524353680521816729549336316348052019652902721674526271164313200159308761444375193850810662632642835847034650053777731640927176386763589128025680642115948726739774987549310259187199263344940898347848807790283765332584683952902609382594770252988132277440664969632437714882080096429304115837297368457306117332293910893223877578835832900307139672085310265572125232023117398253050774438094752263551206865645298439986103188968536719329268997250221096556210234143497644947644122940352939201643981452585874569237014350309586686645746340746612806312488937884335904087736072984195649823262015766632091751268438909228748596148564801048048924790670375746394995842681716237151501999344843253018335908156502816822726874780048396576058018745778353399074246021866707525112881384980100476256922271348398618781399039587257304938878975918729533299141973994251326299921166592826667397697661671980883816092662393852558248099796725895139832343073239969268113827923608594061383172281461555932263749755538746480796861149571640872325563916298304660776987544196600083977647782413744002818288497123629554239361471192351402171049865993205211021213872593901927738070275562831653304392581680610186644715822004139409719266105203357194626026507124328066052204449499382552081060504398561887799009936873781152025003801375578807307679953134908223216000003404297647570168318103594562707503573495371796958887848279969886532085852677753983348075803731698664246443857554788184904132300700995034815594727819802538008982680633139418851120436811212798650618643776504029039934196065336171303732717682736621913467995759092151761664841868086155380402696854476092528998895379343744148306091274927942717601436506720425154533123468376338554823300681740407983971720832298583250591517059884030669181005172866606070104788654359126965414113608756128157172476798155989025845698535702711062815649927505790850989687563725438404574328250912272966489219190169545513067755292607286229886095224063589640600948196542039294767169383577905321932160987030375283243334110362307400627088623941926576207112424614441240330247913448678809767318218124076449662653584238987752643743864111654326778481566244990428172437211747692497959316344789803677271113973388608654114191008755534008711365158015153650500699017055710135720723832324933282315628146393141611266007668319137124846076499334892886585474728825591188611242887995597983612687458005381354705227827736934703063070753045852127223928352587176853647113576625546213496868715956401708558271306834305583011059371530848573408154223034554376285438746203002351779085522902902802459750984992243695456110648014493618191582954702618539656853563149285579189086532226642898677269879154468859292485313889425492190867181359786766762905018676055545570815288550331592044606204154856549453636854366677950108734555918152259034811061189660142491126153424857294009018276713048547373420755226244007706153031156892824033104744687103791888262935778482837789368774533617941185733755594908169874511749637761625338497918112300494183199349028596208206105884317461165366541682635901709556755268163311523376659995551738746243888379083551130415180057535322671877466167746769896386460709016092987379136213854948053911548224666315258223707549453823368715823448163455783989428168169151409996467309776601331801586261189566884177675178481634535695624434682090684106401526206854805936632089097300269658414391702903952460651331214730552644591385714013697733897203770611134519802068044666003296781862451841971251149897658908943828661639807738832817182005590326724951020349614402314387998235043018368228177206608723963568873636006703189244082502439413777362557463829789671980833659466030766827207171077267105852572125543132657545471854595161621247007326078238510440483398025015653261270515178744066756249017605127368329048856520054397304057076017548259216410320956910479725774638957656674479993905034817883840907166468706820400780900692707403857433393032227731198756827639106258637606174770635085694389170395532864415785572126801142182788257768554646042638642092582171820215674485097273780584178092326910041663080056835478177650036656513617670602763497354661862327782923363891040730554132627837960576398538113113448403873169338277905783220457745763113369903077295843674172932989507437590334741477675377787007633351691302621836976299791938418518814909161317744296412772085633665235328608579350775303658902224184778002425399018484148773497531630164869132532864583907141505552742896694874206515777969715811572238127430764027363743595929925032964239626655670146588537455441075853786178995200993694477399762463756339784860193458916424282439913335545354024202393093556719665551153878540655624027637942171719566394405541019435933893178731062139140780079397250877389190594474222838862495612871661517518845576652614445848432473967778216605752028338277691458895268107985059580718460105594457523710623986751036217106831365574864296836967434734571132306150939519876741469047860554569360369287863188825557233763007475730838728424462849890842510750473161734803645145964369492611619836394588984456662386054407233285180403551267133152854304886538630418970395530502521784423066037153974516505507872895478277994910082373622407331809297687509901038383166787661444222965246935205181309370187016674684021131513237222558598812837090425960185350609630397793155167135299135407657030866525704198486609984306469940602871925657818058938119184843235444498765651559095481793752726174872970380658280310131312137278392470613215756369254387975120045745499711875712157720702367166752808759836958990299245916395509166884625425650637694172386904472868379678324668683531578115328812970804288505655194727995822488057966900611920515167973438096243751307715518260657647143199579120899575811808175720167118166627723919013766531890818583940766788767052208815562612343347728952778182771723257661685478560694804734107593780965556708195041785260617578161506421748230566844752435137942596237722055528946999092887529626533022936839846027265970880975650958368782478916107615932502134054972239731497251904088918863947594776562959534059002359463214500217745465446998474591452540455814040175784501228341546453651686224043192029865783553721730343443991137422433825596978985039184342314984878434150502857299210634907301029271283051784482887082140116301737813077187987215243941238769836783608927707325487699476927229320884877983001401527371903539144628797406074858131196874532810615692177554026271245396855190107520991889625020171544063194096271170888565734640034337127173285945509218038066240210300377733515712231999705330111265459803568897372923040908646029192739104649311039736456793020059228829279186175439037686120361203449382984684283906027547854409654613556662804889012141689396566123691706379551955920618694577780485585842693259562799891469174744552298045191201150418761996411519549409209564569629046896449498983923918624085984749556922066974172739203773755638193732480822274221426832346563171193207502676885299762581492366852239857742614857752590050016281157311126915996070222818534469691178743447787722522535094141594190390516208510850855227781094175933925280165197784976987145596482473490135060621446582934123193557699013275083706741116559650707974710126722035792300264131080618068925699123710060192077075579788667620956216449709312058868326185976403488436481815684731183470293358970206868633542108601389487125461232540447928218277514781181024539824921710590345429473198437044855752251365074908760957226157759032875063541218083881023741250795747195435146507232825740650233398308942045170655988185340036437190635076740758027231335960050497056820032587502885626791490413178271797243588839485473715277475947556843747942177020343983341770403297754926959349199745392381084523518038914538353760279255762046161768645870378819405757897429029546562879396579675431808232663382451557969707271937609649910968925713960312739333076246304896127750594421170493011090604642895247104018881242361155109336640825958551872510037516484477598447958218124088966462632994506510201239532756164769828350291711451319084127278441216624309675033161167834881694749425941024917329752243273538059001591926932036387950975142898803441843846826607580546021206743942160483789466368610179059931045762042646549778080345329952202265914673054493483917794440828907686604532583130509773836100036368514715393233752846346867589678624116271562197703225753330978559381114030055812598828923649813351268359651874590617100181485113551246978237898522958767888886904048308264852627219168844350704241351893724903352346964887738775520570199303368129863349857452762177124335159689063807120130866860117949789413965316786605384395970117405025950229294020860194704337739808888090158699340570299397315522976325790098979979909199167579298168839334759438363117901198500817843367208473917039697826741450631535465254300034630270535983116314014922592886580944876615396315111067816670805402545985354725501843566546802311746176907494448138384360509706926925180279794973776524674015154621201409975670988075716336436508847379158731374165352868088867541059940632306773547443606012460967517867442480966756995057484564803668017485730167104494708815526764667937329089409144502422606577803125729953499699179731062240051176338165626103624377619898140431758204169876631079935911020925782904359882657053966696154030769315279273163331683773006026327704896101469875367817654292567386018948919107482252492800570196953011584777866388432138518386502292719670074658351247510336312113987564465858913179392586329807392325840260291983758004610314267560668803360999224968187222746634018576220923486379415199009315087394929718080906647381513298285792958910562473439565518366536556526763331923949895747518472199315950390753372254284237672878523441340045901941267607023677247173160178077165837295702869234658453566068042437282058932437288920879129626502513840018758120156761951834541831916780077358251703104612770758638799264405054299167942817122486105819026786767380591165037832317011228690084929202280905942674766669569008546951281103184660669616868562167432953760774793870226687375728202918106737946482971274983706468727560815045769762106991274982337925627978556492295072177232899862721802048645037913378942012189829142927540827888648390167760094693558526770533289467182076210564576876840012587160850790202259177354451269839846496751357995069877341045682141068504253607011800673533738582219308217381082585355651050274990547377690718880320742127562796556697942752812437316345934699505147078139285953475822299722324258669421129484061613445505496766002029088974360485597855945037137960858409527048402966398660335269579014541892315639834464342915021252971075352586359977343332007761858879487747226170071185924377153802412966150006961184425112413002188532035894410306563632728653726084196018244021125422615195540799901694513210458367454565386766914241472917410648497821031613426987322148038810915061458363624966093029755896439898312140260513784770888284541964130851625953798423395291091715702092338863938120593683149187767497896568430248779372829731607777121071342802940593977396905944191505869681414737047524410027284236823473794660157105168821779843765273795349068911006069160610735719896187314679852795480416698194860223885353660785211077707843878596537473936495601943047233571533299332629104985295138029247972487489009506128979566007589949445348292076492935281835473762549811065227830451703399546378574114746983458976665597922915173686784915831373146122388885149462574243573729026523107426387280345224835398855420471915073617963887192305702433328077655260445278045005442539764283806462020620362447528333274236218156617211061066137931819901413057918328518348142246023951709805325404142927420766435550277037473543076372043296005964610008334536801296235113586252963121608328202446896121221149708994120047893944908233119895987582734547235246178906659467902491860205445887619469950786627634871070925515281673452887602415172507619838761760365322600493443022715068013394998528170092918261460222671354985344755006036241818501467999872166066340683385077158404456764304472845858495881677272353473562266098571939932850685614560114713466958483205421103315212275462627450011574401336783522422865465955244364099923834324447308299666834891422600522858104390518842597614780663494907480099714787744233997335554030582609375666113239738499703894440793497908655053078916224041514552758716843477532654299341254785987810511733902828791726362991951877622760959553636410502347702110361836056862316711360720758459009568674094030793633312240738929633452002052287494854455259455291224661467672565095604455874920390186798658855281497580756765430279550155973017640237556397088714148349089836479498370248158831386797084084297947659477149089966635154298510584011880390768242752677945309410738517733331752946736881799817177706954209659751630788377156973512722410510723599670310075959461075008856355127945554199462694721544159932689776862992256265701871623809376055740645585999810222306516361736040856373032541143423230437513891611361750431986992208502145610721222564674772415606728083673748518972681411790229777782203742516210989728551797863573784481531279057915605405065263008867605292067801400264709792671637804838274009332517552555325281716404794352741662210741568635061795238820910130809028821181747924723838295164580345040659881785149042636867340138138498966830281345592370244401916651753557260270159583409695299422140511443106757314854370099962900917012741836589494647546776901182274634837491244541687636883222264373398865842246391147971930990793476680298408316309611206896389685788155830634319533792976295167892738919498089492983014109840142451780685093059068170486648279299664340360858536190349858041811657549218457675078464122779184778806146111619217348897144036031888623942388716295522279400866099150728032143117177639298225008986279110034622556095352529908584406853831444337521470047554473588509551440982829405748519227790815817850676943228545993678740857066718699184167165073893425207584544388438517264446567710531132826791014424736021628508264755536901644180568938542627658254820024432021088126421141273529076716649533342683316468192476156025955189792773882975353896671945829818404504599330976833515284234061096508449569035850798269386971113281664340221338724502376067088687252424983992380540555572111596443910833552670572985291045352456791199953104404142742731494902592299892007543126491670714349951360049407523951479327185735981360095848227408564304284042765369818959045962875939659986678749834859135596397717737690546391326066637259601137152546658276974022110192036016310644449563707284363811819707380067518898283601523611550591670580998736850168814158572312636914554001540121488310066191627320636577136926249889785505376245481444415918885747604698412123131627097128446136347961360598619115402510396035643887174378167274669852064843665805435568819563998162690819502489796675942491750476473624044565492042936986872201785593467690797006952180318341923695657796332660171581940215686134786257387873419645140112878532017073742522586979178813126968039288836236257360133134002394964897786429307772113569381860065149803084058475289484206568580345909836477137548382405680300003138487517992985983450011234173466263854420375720059665768144851922661701690468202101139143392763179935054665859967063955082302329929510793247349309179714469386376170282653566689248993781075487644353687362002125995333183760530456962025810467176983218666801244760648494836820862837975130446956901817508248714331540286460837024139571143783061942706701453015412839955774312956291767163194966024803023742472134257050415992824911732100640211228201003193488976383126967997914490657360783157607246614540737369548754873520507441882861721771596149948278822350849926481789860207862400891476142452292593727939060781608759806133971334285522516476444838695615360042506612021774113451083335217754650136112965225284304356140964295401563133791055691717854817449009349492167422207548654741326909081729260499000612724695661377696821763503813676437617966904192191498542167132519339740894353693517873356301912514176881735676616679146738322598604703353090102452832797751850989889618338894444076479566445671830988351622532032252555262148476087752190385187330525124334374767376408317971544270855757140420150849281191922040124942443543837536688961410416987315701664554939102152047050613833335436381680882612663578756172339895442016867723192072905809461238306062331884854011875391044226800866850867493321501012846764594021947485051992471190356552936244924950013416872268327593550926860217849876622418659330885573170759579229029001804031832865526840003886353903031126391687806626064681374162393566006717367124067927562394133092150360796782638178779776902901189365590968797121847183941945641696116378905355713563371515563927584172485123951264569979259938391815722857224071596471004705605754575189545877860306753511189699497053706730836694835600259531422569967335814291911807090125760077106050661173798880995386912757476222698232591999054661712718146431528132378466556180065650807876456646239363189798300527062735417941165454732989144723711425011300745821964543689691654375618534895941605064448370868756570483868257850987954441460475597716003508061781244337994678303054923999994301643809896028792831831365990811654856112158864306813526546588072847942946302749140569115334056373689674928492326012201455648488109633992450671462872265520028155961554177441275922377859610073413759201060318381829882842765670894163728813489077210284504875518250067688195145590889795751914662727675804082764536847431659584581068597628479753189716216099275905989046888274273069458986418159718683738933939404714827993795470879708805464762865452696785535020567601375362921355459488439050753438806104528832631738386107614700723601601482801238806390310128743015761611111573957649575023429045313045695639166868529033125974915049632483973365127870465344570740727798470793549603025715836457765900126088398875147069159544137383937024945042975786808907568775668757035941262696379724511539306655294202272568852404116717968250463711355350961322657724491850927134351606091087646811512913396243552472826974805196895716883235850793961185311972759570061949848054157527582033731207398203222939906854929437482597532726126372802292829057147335848881163397986905732415588826760285851610696419285777008067823120639810529615322292958469846058830339281758339630795753125769718883339987646224243496967058659873185620876788761189837215066328105198483741418521705762601213885258116286756103503446042514865282944250087258881473712584711429727647959849305728765335152140672580844106258092242837739900717145285238110651965543788997111874784665092735028748841955588209648808621847760181422405371141343964945110739992520364133323204474948076833926720704898450005782130693684283703766682666380376313417282888493649905008649759441360134434953425070082275896712764113301073078818284848927799990521350485253358694368324895075882298593058019031599079860915235975117372882188193180620254722314109456985689305557401547003837450657061020371413629001120897990667714364788618118552671336311874896414410650102543354243020990967813769121736997515271201617994825743849905057567333764582071888868118985561177181076047469138702133457516778859886386514789009763379492301813852302149029443262275417325374933810857187710085146525264964829276323156842096489249712283544573250461154850533334914199315035923487836112489216039044524075952628477169509814864854265065125442224409801986128982762910682642673328097681726513678712733428088019397075331367206392268503178052482477728467562709492605097843824377392218481953289122598985254025439264507371384232109601378321217441993336813369467533489168530084386759190206729005446654095181155283925220953167878638919077750897050444378568741569109828902124978906965167143068293632686196834421781763274967618240296205709230697831066315041317020461373769012868822727989649022722415096984566342367305872693948334346541825536469439234613385690573505002606140112311293726452945204277933650386403407160719147006356205093971731887087939054993705326967954459205723916395981048734337987420718352393660934928312125298907319745275138043373796223749045286978287129466024786927948508562049181085732924475865166372752270599023801687338835360140621274445661720758183704557762648204942576638035589450448429692224964304350655973639146436351556390863895596040859619791849913882413580626160739564142880856949781665844838872769588023253430520934181562582893285069494765695325247872228325458762097228734390062850083992981585951928006798043966445580079557639962799859076173611625200963537371083655422320921533573128405136413820467039105989213719491004423110164729521103175454375917233898274268992754829545955486313273588633382755492720158560171576339309683099174904090143957870577526928260354566646160600815691497045976656974869013271856085110709941469037756073566832331215143267943365322172270887407367048197931378395884845969382232104719197238337395787747561185478814622018637130397468578324846138977003752767071131612916068904597567196523949957810873854472445277218346785767890493866743016618667668504648854569145118816041902899974220727405458607873633442052561260055727889978591170012628361149867841607785760443044503586227894938630263503476542174190974220129911404716173610547865199917857265503999726059357614842795105150095986609334512305010840874912085833970807973764740672985683047929950764918326848020839361856074409777882577177722957868298577650036561713138072691472128412403099864440436122864438611676164135195544609772419619905409789064083395598366248712051994853189981962493314840815344684930333330338680716341319702718777087088434409331611614063607754670797750397244299768535577835839668927975278420978172884197115860272138056614635429205278756790546927025645485426186908346594502630312384615175080163114284908774728674255922709327234136753130404023859914017948023952130136185041342139468161924221225344869570285732436673584453931027304762971953882153166853696149525223737155748002314800820506850598961320204542806018650907205733679435523994013123343397318538022036013486670934526742246363724420193157864119021290287915297541516230386633489643224203277841279882276679665110441574361547257774516933600651328810378703072007425976010151506237319499914560815077224976434731099154095306543158240201516978452459586843680312112222003907439068075818070609797845746387187250046713984289918369297909780297708787136040821533564019091327752486535011166475082503137417833654945143336961830907133445241870359002407332636764946468755678256657192938694151228754306584180913645851784517809265438829688263084874913198096814444879976655950805737639058987866184661668830638385735925680627185710820611981351336796148935020830531157230740956289868956945098018341339498394844060911665781785980637895723052499383696234092296510942861651566358199818301859043057526370872495234129280558889879724446456370045462398159049188494214845508744566677617945783678755264282743909310891680635521265996018407007610753566612964592322136836630152287225025519103844561240770432485643991822416692034686204769650360846056851881007356851843436701424464177996033425350007888791544375570334127097223151675062096202497880214494536168483970671785599822034476481374907901570665367945332098263330832888155417429322926490827701086839418693383736441429396931969765170328608283973114813929447700766344613235882035385158148590895174943366203286798101560783697894436970388915678270907944382179161509578400188573985656702776854921229619840206151308661939620605883723711163438263972010493004156064589044932197332722851780506422392187687115502151037529879325987795008428762545326406260599862666820359858314468115533158331305853993666533010558847264890951642957112972740372723552338522425508373298628700215864395533615338168749623330585337192120378161788966601992490541960464314415931619321800211319913679031374420435569709143977355044476220342788678242526096297106147164179136709133061368190321937353411080460204588030043857027954683762404020205209831836979777873499457682880803999164686089956998539060318197982193364853404865356724327214897992080186793466488028091328882618517014642647238965697228358831856647322062307050975430349574861696154537434894773393982786109980729071230602306814280402090370920367425581248688301423203840313695456119121142944157551548026464044176444155788843658308438076297132178203900406327844837926983741005717264018097951522029240457915446065888886967411389265168897741484117896082945845962537499595322640498666101748542420313072294295522181475413421738056746727559422160394225234066787634390887789423754161359028558813035875120766288760590885265546673319058247110344192277803039811727854913079220402356753370552782262860773728557846683386120672145561285075179863922763576622852882192526709022379548279911109447602119491852006245321155128738030991792418930833723586675158957717532088056747611008898795173308721970752125174456064771989635457870104686079837825561447669078737914700923994417995950089014990543137000719712791543613753355742360296930984982051263681272151927413868093382546403097000675485091981238741551149004220037983492915039875295547291986875840757700107540190466670804164022733558587259578041421836743947694240647826590174092106154507888911544888397140273255927533684325306596476310629052965202651699306873580287769996163995531851154237684974938092117488781032971462767046763119513171406241056918382135878124517882828866433187195141853375657650481687005935284391992416811063379781723171772842459200818365218701307096126107561926694819001539806207836546148708775204660628199051199377173740937191314453982060350588709920657029357004226501256568486150913272389338452465631610444047150783810919780113301835929463077012330604347088407566070914883370660200890126934803767066984858290694999896915325145244404963403298603334131458086625332855362694680016056264446374359074676359922832038743165145256632205848899975283189426286316827324633383807245566218862359840446002343027097057716997060471884896718986477552587299663075462965405937955465373992985869023648047862159983855783953946261894848241497106194981778625508547631968764547090835321232265360727189399274479679883430222608948969851945702018725657557173372224251829995710343354893479594458241770610670053065764135857507060766800591206618670193626854896961654673750912912002844734757007783485021675748891788345587682130435523564015548241829867702019023069863603187768941229484714805729875768045732734503394563719404719201866397388884106677458784061452557783687866070051233453882180134159510997497656042284254870281488255465546255814885241009898109071768111694019570133567016555972990005134091175230200047326830506702520618588791982070571228187748925983321733142501566027958033287555867274355599176127516811992167776055760224147041172560430587447159529801730547241508980526905259247745085836147771108152099542389124207987991355697586448303812272110483229950394695325490380984580791573985403398299020622652564812439509418377273533301233288875632673424047996815972478380415960524427869006414274446223910466200711925596418289511203932564602860331073052627201789497864227479040893311560202759762857674875828134340629958303915616875943655656009106367855317954210654179484748424733657421862948635735072952004533284660442241390967089913539523066947234692470098805509675295576979718989850744063334514914761583147546690389709445666239299289147183328750038639102603708885893504269815622205289972963142775761057129782401270477796767876734672927477587689527278047075939740168950225831143826004984479728934956784319967996090562825169678726052265193221696591639839052093130176388402521169708447443697544846333188242245384209316056346119230336829033079139051927742241354969333832091115575524963188795647883383411333205987205688681693732252608771908477543964929596363420214555900132102535800723631043162217819231528009723136032374628855498449391083418436167185237202621790386494318827947605236417355540410080733472897269737876398539127806323256523801496920930275507971099283500774358348810652393531771095906845836155381389948125334100386748733348528129620769574496249609939416531573108584657071864675738442014819114399182797434894762033976640838457809479615823507182073738864432136536885003098427997842433315409509820580509001596409573961785345140427165060588908168810126609758068128701441879440197086255454326836592769570455455542351339104752134563789013400615810094805673009748216987350678536666583994633777315787743357345939429089382988413058005137915171031140997562211939452002843796228253986094245171458087064922462972523407696628093324065233482028353583333571323125156099213495697832810570264373614060921223164610374046603180148082975744438535750754877795163589414655647612745831679039513719613591632113830918626648656400602342786293952978073904060128979954218161184039130974840790258203991316377462789345150235980024426438363905527804049938502272489156675816673123691269991132612246407433613760715167015629600376641153621582869703956424544436306073515181031420362818857687199798048608034594502366447274410179658676071275534727209813782389560723158225722760805810548489730784935282706846414523875623206275653682578637756626343138103107195062237589085433441397475870425225505955710650389536547451721958519763600190903057170283001040716626006349484580800013221528584856556552624969137851103377207106012851889385955195109673799415990542273963914164302304818279158569133375760425000314624746745911222434393836527864932290346441591960705663314558426963524443298885637442978987838468763705590471392933661340980541784470633371500505735459154651398361003180483300091430259694427887530263768506234867477347198423724107635691226836623320333188508947358923457050375875610457622617203364344018999149402193323735476982657684932354183097635155578614826216845912538560932458624998523226933865218466866644746260455989415231096660759822340947947264046334733325901317998515183797364799814242559124914816599288601546917816876489282520431857235603406061727930768790713034712795162083715511846996845347309743313879413357210504586249042924224187366551128167631208787578426167186869888915933616768920540986716183065538946065743243320332119634733647589516673506904197904639702456948487635708331633580342591300117222149566110560900551752261357419995391708559300803153621761325239754303429715359455291327443731679869763249858055279233407205913946323977687040493198097100691336999439099759474408451148849097572360546387033096452354966870616397309291151290725243246762192422492844351996362047875083033344435695114673082208295393660395613376220253834763135081371194871295328891861131179863719509563855857514443505551886458287858117219027000895176336926177628911312579747184096765521292604459475208130503195523488499378341753567608067930606213027371860067150076839277048629533781189327558782993552919588550090169676089934724756726715180896303072234458641591884678934406592379054465701751071680993166672327356705913321052253726833521456337370369470966799371346522079039049118968288357318159896313289525069115650990690094339459162002553174793583251713627317027753741987919327639701576257103925402347423895434190914739995773840476035995823335029862707920966479733068490620779434255688125000528186411417801132629464430385293873251229489064437894070830134510251561888069989052511913539235347656744545853404901968604223645498112650036209574737287694601270668857048462316855117039269321810358707571181960848542837205239083275588580327895671810906030526944286298571260124890257970414971573519299547510639823026524734284444630364824954453240048711461641124812842726894777364741154346004398155368414115942791436691906277046944617310845009119489262632829210001614848517691459921230193556268240713224118110985576470860067219319447987585117918079682453187232201846218934080326641446396872279862729514381943079825709744694669840812392085404665090420936704300997970852728905461135720608317308178962424579671680911147335342742408243581470234401483877967640953817528564659039635751810293277926449978924806898715513879506478438206057630258290425068243296635811664587143504999026367208369577181682820317415420898069702793001658817220057140294438185184433615645939637635539331192623221689912297566957960682663150847333603967505373162243793101872949644292088280866377641648866452778077334704896026893423003370629142012371040434061100552882572028533855336154442079117019888763867538194192230846857588869124114483385956021011058593256606060760731153250428861699820856596319873278555003771368874929286273947876503392261052899798670223740445278375482164039733652278023686842733283073967339412931582278843996460269209346362024631799378553741454700731084318947674267353028972857650419873949378341888643223453448864853223770894260413225201828979746192086239352179487898977728201840083771834976897515315634070853954590666053675132515093594513024740243996484309681426225210235518235411581870550286837416518793519157469336138334240256793913565446345743432218743885978762933972284676421118325079717760696264167390786080538171463994986836164949825567606894282730145945530302924387611786714106150274621352098282881285505674615953781021869306293231220238027721467175919735822133467675799829512096038005474944456766818687446428727145770278219441854365322559467967428698373209593033006736920539148194366365704406430865286569450599854537924452704615437247688298556470630518140662311946260530487987749973136737606174288736713284651651273625819575412649480396886485274923793783915523170189122906826577773814363620930806666701728109359924758012679646620196968128015304324011283753259042392864122882020660209509695703165421643155460928605312199372932380694717388593585823155434417535340865176418020805861974565682963674023110202270278398793700920189724789163157868705946989003134567580749053201149196495144446738781268425870293162577997669814858454020586294806687792368824725559634897270043509661657099353060238942251358814420257393549073971909863482199161224706301149610478029073389751313379766960805741845907678278372258495094510434746445765312831422533697006062921410172883832498885568073624401658972738620022943699174109976679168223416538724699059838403938316760090517104646824274022995387228209795149538461303422697859609979657248015423911987172089422214934004449288061432393902970591866769437251306333636285774362936079284565827407968802797066588546670563472079039695252288993620451813540852507453095297083653721426284658059250976446602969881301195673944585460034309974269575381053812529574811163527810466798935543912418516373173840578685161250508119981923803690789675913361497677847735380942909222600756253153014169547561858982490217999624739125254791519559120293049802792558483319226811054309740916913172204676223097917671260208473200521927358675638639808413558090208085410436078558151842875846823725168020948239241122409456957618329162517860563679209121820407460747760939842420983867222307109301228977298950408507528225527627809321406582337713797773469346677929299246381083386402024922780448884753575921665722295118183642326457283737701290393658383797363954975635403956413992825331935000826941983543777028136651304341659347985142306177019890123614277164475951864725094383098790587974616393917198955136342193580933537100847134876994602733175764092941472086904989152361793298676446253070542844718152097587837321206985174969631267066990737300314703270628365877584050555465804934874145385744612789329340826962260069343718394197356192552064414765648244268165879853026252550157702126987691270155578653841016613625018902421796384525281457852637234086538158515968518406472494714586645202511547814601291678890442204204479216604563782919201018365980167678235032965358421968881945685354787144566550865857600604794003522551307125156874059517122460758825351881998031835409641421338569250520290009823809730553087893442560422809779494593386148483986974519776982791638837422433413980006467016261938504801681651676796622627785996087059491892682075559298682954738183474327567571777502851240117549984241431983883453027828551349925950394370684169972923432243099734103266059679461665359092636617360023952939820969687345015924643509501663862150090349165527728110370456653461373603952205138858956155466200847649784494317445371797680428141601825543737227393147847083415021894350047869563278772365383980653524201782247111320575195061979241564687962569308959372396980483786060566249790890151241061518404651509040512579080771943104503249429958179697248199979070332401548744331242308202798815314405287133776292537918540523412749585662324792345899532677513360195619301706067573945542422614531122043857733076263845246144093733540481320051778440806753489054703320691122834293954276669441263753341375123665847970965222885681105399360136723640926337071404637127650749701981992021811173788246161099495566730741286921489351488178793031019333550354731050224442400145520064162764392521869388904844423139062996196974967127139174313941761032876010933999654888847067557099691692168115391850835234188578913252868314598717686211835108289036074547818398941074192615838773159904606494780630391972954509279370562825138368225492437530800475123691168287712708906837676520332491852335518217322089526272201939858494999418619035222408589658332439287472183591572223245728746275557246515708481320865840805710959111112415691273098977953134954270045753313514813086713573907100378577708424816076531131250639294049155207295237417899622181201663522002375292339097577930591963310481435664468253098865272771845733925600947011855540300928197811607064252710724745318884200914150138718411224705964801624823454209478822579900002382685045736886628791908098261489546816036362541229180675515654390127275755904610943672495559100633362573170837906372594572331919292647812870801357113200835987943045781278025672176706053281161296654860081298763331912198603118262393695998319546287964047361332538040366514445965968826484337953738698236238843837131933273004857182507550783256879013910627749791142781692592677822451061610732862173965746657961361982380620463949756213402894651746620427188198610648556529992955706584462406679964391428435211643134352167914387045985747732891738783110239884751094101121836385397121931535024275635945286552587849631659707718114655969293116914960637547358309171268900694306000087206177694928863370547720130954398942986587994463016628314257506113768857342154786522220293066385769536680086409563412666108940769592416815673892508089301024091417688017632493766645852661105679200044536169935365958861214940990211560217882514583064177612431052867954978290940749152665684415145057248534851101086536060916351812838379504234641933374759529225009105869587118423070076257721647591922826727903704431776689429677036171282962427634294021103826986954267568872828996037241664849359618687265849914168458743364253992072590321128675350975766391106130121959517080575323766669121389987102237826244782962026840327821564135090470495585116928370358057191692962626796697889527032303749591292230867022028055972460845787606309429956551066503605528196647258777741088316526967196861994456024156052452967614631404082774386809346572775273979920994581593196045724310991014562622911524392574761143417799648385531295456163329350232623876187267278525755239240134006109613414296347161971703566072447097379771511870343699134871072270309224759845618610261040772478130250440377246794566259389841720373040143206739459979204547480982146954665406927427620140831365721867556205234111595533092805290474036975348777147379273422656813178671616374360936496324791644264285752657384562191001716488062365739466901568919028551357120038262002978279005186863936875674762845585967491231037099755467969907267394488454232135743197168151559613525214461027614768080188696720476096121047294320085804372805563060456091242524916859799554504568135856506204278212251211145828868195965775749265366208067874166250452582080563262631422026215727306926799469163840373265286747201834865822643883246011611271796727559252275450415183558234114917268408731808652781232199277116711284071258825376999714482878942113285725789943420050699644484796302406953049535492775850541702136009811011897856853195806100077779479128619648731778019933475397543112444433439284776515793294913482964191485436158260305584763087507885420190570294540012306061246854067572280771363153233007829354697960362762801425697969928509996920539978103484646841375687987133854977797471813525757649009154178341659809144271143222513509709087191413793829926912842082636643051725943902865090664542689287484539814097384415963361106479349183472245456654418302652724986613870615240309711543555765092322336323396368473984758810660820652565488237697747365299368118591831756307182710678153350888459585616245141910362140063408079682953638938980378204495529617953617815761499916248744239027098287126362917435159140421714057261330483473760763504431333789716178350400017381517136350839739611068986326122659392339974217443794515218411736882829710136353583813195410778765196013725743825154164812658945424653734803391845522516738175200425219689908157103235045104015660871606180349592265211900396354073693132895357291729813822581243902335217187114896215419632557010598497898071634585772762752044773818469156485170775139848715362028511681147179878689807844634195982665253140012600110724791804896890052544021162542914287605030672210648988177509619515319631358354784154722055257456299403768750272232821470090067454834281905060905308414096336255994898379494282268712813356774305074964384569723047543519744671436731647306831809411506368702307358693670756167499316334804866016799365196369297693429814632832321598377318943410066693200050948154023649484858931202816820330657961901703776067418733055519885311411090323797382099823651765473640196224363137575245004765340954098657798188079108985850306976452487265860833729382438411759785247592540064265753827102066613414386085240356658830837590059016743944390249781821409778211376719933451113441205225826159185447357665671313363115600252577567538661708817750284771586631185970437024781206780707731126425584766175918128935462981460003898567646891521429186287155406394580194519200605226552730770844053095137563550532172566587804036251495840877610413041049765048216803960096067288594579821435945263254072662564393562684872398688363685168087573489091551037993930894496585372004894428260350871779240842520159219180984523117549272956212711214990707993837780641437642167460349442549184886737648466069364454109301528989152734144986700233514314499535432779619230750657209291033389261578682094819389569244418488659502498738526191582629832803139450570609609776236389055104943118676830846754473895561256564972744442573308117119219239463199179892728495448025521277187274505100052412529599599698008202314805779189183689872950258884764489995925628982110890341031777719251276442491190711867008559685774016204872199223864600317994548074607871364106987880076942418396221576295819614446580688822006137344115788754008684054216462957506357579111904138413467854738393102671295310495473887898757610861049115539105429283993223871337960435252042429710950769513432898620752932573624892552630938537519717063766946671462192027513540497644210146864138428750691039225046926487951841191518209552702058856366732827792042854905928364517276495157751943569406765968109877608636237193383338992528966430610123698425602053687967177822009953235987822279540831929785105156464819366337924623252402517622894668826705488324153686417975722229838486500678505707147676079589171434130001124640408989828185691381563637927066131033479039246965169764156426619837341025329695814105041000174674383244447607945726971434033369013749644004506255460421354565175602068170137841836958675908487867688870381963334652539441959940309544415197492279574769291951878448912794638540254495770762560286204244892124332964391636271505065320270774896784070615487994718219964070125351048677526614934455556582305815046162560414762158618796951241593616549014047651394782825705582830848612689746863850531798393443455422600272386559734124633828364950826889593139039998721481850622695214966533499690561463232124814288958745014170437984308126119426305710671240332456709060811132142421322697641778374784904288872357268433063297564960959019851211877167754165874798908703071913746540566589878892594790960718974378190079159311820455068044522344784457404101495520571427238412376919347889612983134766500823752540840892130407529216538835963779982377524897906328968891790316438428660349467258445650659625789740836169654805840217551098975677382671677115115988085273504293894373823783906146240166413445871293883797410233670764571585096091056569539864489130274810599768358955838706656709143170241852629032530243855859015662222613840194036733825977062782512268590158912694784481943690259650792513878074993331533190825174281607860654909295284703953095604418222314870832080090496774439311908350047664642278867048830401459662184890504295226657571378334043288937140071497458971996705166012419821988946947744112441178888230448417847759988442371099721270886330515059685534277402380525596140314268989824627439005581341377425641041289111017059069145266082639973514295939962006347051013744290338238343585273218460171289621087829961165283485572568748146776123652196072541094764222384251127435195071223416401792184889255083463699893532212812097830646942659977707764941725201064954892322718125001438979900641742726530729748986290218609858479071993892850078292977706380250808273834353691069607817099940942811272833647251784058873694989101709145135478282686351100587601457375770597708314579328623151249889058591503706385365775463481509782948748925273679405621423725042841660562201555473623563129274418847018006028537606172613475591572502555239341297155154587465711478839216200734410130785478550966082130225441059526457517336228448435015057284069836558656927598140897242994960952420547229343306933141486912831746671285317579806570939693525515689097621799532400324909594557942694074647128421174874228298999127934388294644858925116326677939940092259375703698514073865780411388111660454865706878408498107771034981667983993013004748411096282814511640204115087616415522520513925003962353201715800896852863302748842234946292342695941365261166851850942123551731964422947004875005040494791501034155341071855662314988497735433443185079542891706123236605360640453581577613421221869988287386962602191727762302303338671995990111284432746541971478632448457783567685191754019713579181094575332558763483924487889278586768062496868968488699495035515285458538533453221651166242975773683290626920922720493620004262452938028064845897083831889863194038084479791713291887665262272132041858615595366468234556436988475792271832339612880219608363270808760773291164598644374015544016000364228811247789842961502821465033878793878321319557623165184068936379418552044148466841469944804350790311576767482152526091190778730881232489050323266154831275365272886049695854912020980126855399650277358435478949784719388750204786516387809569808157457603713093438666808116746975435420132145395257668886688844482607410764002147220547530170086499144246462566474179907030994444357041500941550794866780545980733424811548787780724550190881337608478192560251186867711234669096378607252836720341771583528942899218835806018477959072963313633736391786183807079820654094340075943052081980482997942216796892782923168776477705963320351270675334186242335736321208554331426448765829259948424373793607472710885896374512766496002946959782223502463275064935162619197788892528113297735725201689654710582167091913096388538728009523272542446436105449199888375218246576457473496971881424326842024022230007931264316239892109244594080528126478947974081055418553089619276733340999809615032992817157431227237193169744657813558664883343333962730695106668233223322219323255754121712887588162176267745357618752605226691028203702436149624270323953500143890641515261476683187478608562540449604827222274704521699464512491699999275345310971170497211185460392103290652272277042001733244036288404887883086552608804819885803513981433709233654007990934726869079235281322198994843411736339361328362989743803737040671894320613554514846813492349067043007953987042279851222792790237829594673328391582555466327543202106606174828619033959606414471359816881802724412816724900713605940456349808528726693368184893407658683387126116357403776277772534003061120560799422305227999572499234589634745868009652159538997349510090138160653919076787533656239537273361265701962990409498741433844748702986885215065294865970886090154700032178082457506691814117734452972353641456174112176566281130426095487581222096123874475180196665288768521851268420674108526612931918239105786754690908213678481663076673191203650750973832656493978618272538292571898772285937797475147012988221534394675751322237714448951546366420841751058494024969057553980887793821324363117794273501698127643244991921539687479534551266680051913518153909719777486207891575056650086197367027183923411594355680802652043121716127758140508654413633934602512433234532070766547573225052042170071595260354614164122730506752192445810591403120564878289408092702667549486849378696948062923537706769350853052019648829537263549597544617372820847170724664675460824316426412882640015834136008445937718137404141590100394692355370165902972115428253887120357954192482286736091391068447560778787619974253104388569537990497066766549508171976204810613161670672657397536711669457957999108095045232808822207478653548876188226952229332641531096635052803256477834047404090715439907432950789135845602839652588441044741508982827033802600555518453455261539521610048980598667295594493315516484306172072995383595970168827539017267395578953724105325209949422386785840564178497020529295507456627337385614574771556770266679442353493633951432032203166554484533055316208930350129463070910152758186624866500173175583468531931874745672392404709299832887820295116755182523136584625661988187046874252248060528656997396601321460626441791106000006320936345238859784362019453287706384685893945350493545494301118614863215205610328556627002450730835126580669081230006775571789157349070336346256454452725244100353201126094001011660315327229389141530319284807171853188191365336178155462536738889536260715744498107344790499250693613461162111756744896033762506031921027302542907716279925304557721931333885018931609953508946981408816122868061706462186132634158965001759362682205317681208071031786230382938142420839642257580480698673753551696492366702147198238678465485271826545515213864625044279067682872788517601961206414515854508086130249234275047697248732337587107002921339253665193660886415004759004930114243788662385150633988178335189342197328096560370771752423287610313034765017869092748925736511760389149874934003096887773778652724722015801524620139805665687559923985799385709705038882118704027666227276165406528486436318578429305129228992490471641788120596362662498419885943211182624901086540683187749337802390317766027758120023088627451933239805136755975866003949061272868338938287738201547724817161506507806573836478618683114565164401712872178632503119305366257929453030978457089818628561075174440719628424235570972468880504818697985373032595278763869524145590612566014656424520861176668431111571346167678295523102482001928075497275941582311269859551431055303987524676786153696055047721513576649164608121048588512668569084586314379085307375285298593062769341764287506373265606014229796913524137554596138660997534946673666625585505209505350074255045880911848966452835162829453401639794812994254325414015824497117237967657421412736589713088853761980415411078595017348170776398995792491589024764106079397868980126297226368532271239796474715646334876098527270691258257381716512935467258822221710671778691812032351899968070296059559917335463452898192023931522482491024439931750079607639949028444237666462966846643766911962459065849811255263700842691395806689413965479184066248309209386192416266865710964534184062234746745692065140026425612707478125628807537843327875350537135180261180371096321538135613886544702859479887282227536336203745810524723943911961147682556258766407876354841866468395315933643629360388393554289292587850862785992486651724368333837576699626053035278671028012065645739630811887534558047941489276946176383667274690480665165869385146661427829131993858342053789299613163888619610407462155058375502031774871284907983064907745077389457814727811681765925999315664647191751920619602135646890244697766755525000536405727711175677840118292356485693226054123763027741027362122759193460348235648251807260999687521515761690798785371172852278984144896621296945979863442558618212979110941718535250027389269467005940022880201551868536019669783244141392811780902173163289321420039075266310518893930361672490777390454723747929840603250734406131950202882815386476008277953546131236448857442119811037377215582263806348918820138623790539606904332532221287824635497261260066183699554460705339538417067275902441890888026560854379888105105569787427604409815432684793848148374934318582548301050325409336272810528204821810074422054564694387364351161390663268920080199494479545751925784832518209931137570902796817580950829766902283891367783659221806463835062340803308042892632746714558021874191254286329884952269771086309164307012276595053795155940418057202276208691419922615100859456462389446885598155859351866060067594676619458505141246215445224875319725639060221876321639142922508230771786514909836124104934028052486577370386294567097043478147129961270783122483798956032908267885440210361967073961160088945511018512136398886197086497178479733151739488379325563281925157382548244677592432140721374134334913139245843417829434923445270713651281201712404204146621228228745136691368794257752255371724762944651610636727669560156959808821923623000921708314221434721499364222349780738815376937758590014482323139157588753528144833408551928380504812792899960533075588064961057628883476730313024046626330796571758939949400461239690916983356780162214463974880050773637894823932943578972085555174815417777510512054214124032784159982281583532000304086443529894267039979313274948898359555691966019389379127101871200125459936243547094972791356585586233503312160372133770598450762203634024714035589841828119629806919650616966547848094298705938793166401503801114338445265259719413645238461642798276748978940062660050759856767810142302025281190384753974366808871632608507121777611227946397837619353218238124896522883160773759108357791328285419249969933718749402463259844658996467521478143429630533555150578288228039566361358682925443849959257532424227731731852630962181193303596063991066667907238189653405979595443353940183974646897169739067946331345137040491441210862753977570943878384537259448779165579716603315564463011615569019330515001495730918933680736189357901751424080242169595558877781651989207123257864507051144266258499421328771285165514029297294175984316382662319962694981273226853961347110065119331697252027912796046051850428527008556496714007342710311469484266641232774426674074395899954101424581442455593458848399823251092111027510707217280337179095797396447549205136521512810426157746574618005256767494146398787881786923332740151868423441217122025012251791622037338844188954121155385455413668099414005086588638282866749281125412216239561140134031821191455608790200905686271978882270493121119409231479481281696050033114096854988297468199827179728683713838203815099509338347527581855004673591090741195867508182700355093228302116086620383239465056472025386120181181842065704335531565281577261200732998163566476685038904736540528238539572441402084935563240658134872889956019992923528435904279924365028796568083022546232273157897694136431867665500052843177164548508198689882218903436020351884591185135926299799601836666196386157958198155471396708349809466882546619587571580976663922264358306775394148415432431257164021926847257058387809790793711297228671462076612486750533357397381375622515794633398847244108998224094819638477652094173157682294044314130600448343029348379028216245859812249137083622997774514329679917046991801634536888705214984267414310640235020393155000369237784442566637169744167756584392722429506846473777535173004507446117871709032690745038596569885965336238345261939155221487136016525328875885053747799617740351583798753684296262019562054037902323470615870984970084367908353707989187435566700373531671011639206516369713975651397295866875367622410480514202263943726823622064241552322416622775445873206338912760069647557632386874328036682046019472001183397588913696255656347316085353548382275786028267789656134821127061138945724383522972806719568970645051916613976373089169303273018183683250649844720597118160825504748135920675135672519634255458854219097038685936031665404093622588642866708148959170778801353612072145247995635692166592045219408696063773227791933077455217478590127117658548447189377014704574049312532294757549606910984145230447537093456680666004410125587712956014376475856031488358988929985049610462740159500397753579770482482052336572073862431261753659927137365964106380598057029851200308563115818729191901836125680078323736864166023669421147000276496432062560277387608158298609136217472882055473993461984134818984013821557088067536179119109079851382982644125067589729913816685907765503629751368621246350700061076118115811639931521901272572941782797191957317241212598260058691265839504557445216740961058000582283140950671602179469296225591554501622336312124330760868089942278919404972751935723109708275953965421915355296737298496518461609014705294275625723350595806662323690052735495829006770830885230911764960234724443277819339321161068357887790969413270091467369519964515596510416347289219052546479774714989238567984429667591145225783470585768846114541289653228494895007976414897835078637009059102095373444772080407810995951277469461894752953552017183662393470099361306744685991833292775730231962733962565567891618611346640835811014772762031962258442159023586438938645600154937936496596526972957613302215212318334684986456556241567940095306004025491351900138735963941187927827473161443080953166746043438162811475720141957678132119265721483117071373600225924758023676752297397067584629488093451809965982739805172955962459613034491639301468475033973996889902773763229856899779475600513388956981287949889369878411708392391896417492823035635508005828387986779194594112710803785395997862460168170820263162301201253069831161788749718275905857078396937487415088137881592800024181850656175321922550031346573520259417106764921712320505121613213861337663964488980881425122134392078460477452648819377425323147547246682161167142491970902958724418674832033129071255240981205716688687750221296954268146842814206664690715989727222233370156670271166104977314008456243099541809031952514727435342625915516335386407085087296980679834151896326404194861422664609776381739111711648116256076219238218058594088630773726138230127209508062552245181335797070561861407875630552674769228152182579385796760962316544326336900474630899886394012333201257304908355288380949328440350391649076435585223818833790841165283277501992717990777455724674398786440792252092307396973917410774922257742188445792436514217827923522310632726843073162924975275390223879648089355537523693450695611311699562467815876935220548428090448713950354907009085706307779029519975525197238417716957639267360227717727226666315169056963376878349438324752161757896585889267834402663959599868646942891361114537338903349681418459766610879621088340902164287662992230758948366247713743962452947970373077352930762574475883349859326154896526983600333677118981317197232026619154389099004376214050575848211666990632650588884097292491454791988982574726459864896898991513173751365883830642925362661076475697125569039709506963543664476968437299420048372025113886616085884941297001393528246739436417038557216979038549933530631823471263319509913666202144376600514744705950633553638423410213431633853670091455863782239350671695026016651479180992430241862792330328294521046284508924005487919115148430508612488499272341526193119255173964392493966691388687332405085631807117631532743029407495057970742335462188323711221404674089766499150076339305171499097705783169557713018723623325516515268754423498069739343037033462410163449111960568323701882848243030073789666563426531035685397281762826744975842147861782003123106026944185190294766337279825065329998713994002581169939726261777580618085150526939700696572412591713106337952711563299016784858445965678560946575997117210374425312253728303134739032764933556403793627933199296357802654994235642932739898945731778888339232076973647367986990331105018145170809297234831368241222790959863215994986811408575054739431308152623927509729305250168006308597910889390410627165545765813814918141206262453662130659813729218648194140074965370401296738841513453407577389944025079666799458924058607239189323741602713214324556278664384879452831627146802788394186088489061584918760803136340971910905441401272674356212383039216672972748233760613550986279320356896320514925214982028253894483327641486891843515014609394655678909144990323882432171107956808143279232576639610334768227253132947353645402547138872438164775947597896841444600019212903651965535019612967474159286720034558521744057498920676803658075011353698356890021241523135928827548312380299213210363506794477710986222175787984093386869859843758870063865870474742852709787399628993732274755585146608440949929722565742529266238946989032820170776545272259194799413046642186686923690417605030436510447528665742040725767341634256325954032120684043734256351075808117741182156016662814165358166744323708494275684983108169328308410081232736950126132066574594620727288815571259710090825500232860294381577862296323797316093156672564187696992662996907004981622102362376268374119240775641622179241110104215409884578411598767826338850230073264121263517398059885675786824342657670487806141014899492019643641209194330207060106847841032917375453779099968074733154903317752059789158074927790785862274508319455994762113288430391049947751881030512480973538943756835214891319201463225240315005343411593920908125606044364077609323684627789225236042780443896408762123457929643161740635366901371801254715235966400265369357528728333597536043479507438734707687773290330512864185570006717455968676050118243332718407462659106451776264921068978483042246615643750887513894084439391994570926931723664315402697649680991610404188741564740254492367976029936998900903642262880054868761654774569252217555572461099203048263492874795385877578616386279599620074841924097451986417225838734348306805330620452894168768401153708650276942309827822112681989955032786524596720852412890353211894441611639960615961905536129918925020406404040298623827510930840815646788245742376237404921813916067925897885182234040051462594322559504062657955553159782837509173954763776780458004488316482499156960076426256482389951172102614929026033357904124697813336357973136721129815614387024092469311421126731891353650409928088236089695189876053862548560942682142459340874556978181541061460848936499563497679515134570834837844812158726435063490521206954958176906856736829895814433474913084885915997367492854544338260552590980642614484784784140907168767437270390728957458057782678159535776173632349165258649436850772498425815267536240522932004722159832836873343276640742038543135943510615314751102482188646462243243139608688384200913586454071544219040272470711387995331482442066337470460980324237305728466493145057458442061725430326512883855038983300313991671970766952964359509827891962605242254110843573689432071288141777760989496541426658247767402078378521557504327349210960285397454964109909544913811025423127218823958711710817702764174801267303316649855039957237777362586562095274457551102228365005225200761783336162110232893105538235008156569631340467595832333996452874994536882381454228817861556630363270905085408213032422415724209506565099689110478195643921168370424480527305794362160840957251757644808250728245425681329699621463411727553739525915510198641546873756507163868742316977347810543082628125897638906869918220376034264901357139781894571586047607088738317689097741798322987475119011669240675047138693946833894454313324735600357369280372057648789136816174147456906186240912615722080341551963742895423805288707654628153811756676313867993049263416811079680447474695399235044740705994724951480668944170206684464508181123917614204164265596018206788354819551190935808234797994689665517997257872543356272087383513861516776624271033310231202740478258660241741128814694838661108065847727139199315749987480872318071794993454135987604609407103630192757198982036347334491721140019096514321535547236530011652052292575373542584606626115830977764519374296889859360741592397441407811319243642117821264798300743884676618014282347395258049598476560186662147532530177581855825177534473337126354122445132903428171693546900323827111761988802664649811886682650863486987314683275589800003496940773203948730022222903585518085495125160249891548632808173763604167332023466815228144703214453144511118993369997628289058847748411690852033557238298318012726829984885231516188782212757947343930206755951433647629337932482917299154904538756548323454491840698306927387680762681217595871013351961539450018409125042218555476538167785442975111308312281412181519586231125862374227102075955367141955982048987731099723951888099097720311231110932559156250222785679541303949448434570727533153103008395785755179690016363704825171961103437278787258705895574091834646189784438468342921432250612652750735422353913120898865355767768841247122391572062878667404129869589101445659433676922993698948319708514280608571497335376147014927556979052508841216500479572331188675972842873347652691416272370283204307467402566946617224338968638781752428631223197652588922465428607046119672307247452837037761866232488013625267843398519863151516565312909816633905245234434390073568302338191689410240594899807301408364206945767105616835123762817948857820331932209220940630700258530134175849349738656396120008727339084594648293395989802324123119811920564960286713725510183674633259240743787273153637223468988045688065970240091129146972021595901239239880161539227709410050911694187789973572950482327641413890359871622485395390822267690132139768791439579652907493363839234965881398733843271049802503290282762310532037533764465128241155339890766545507758080347394248877065499600367029232328906387279020133758378064374642716111784347423562624281079086993328363295704763669079276711376186944121026383168867258816662496258478823345892358990090008859909763995726306134546593157420704455149333111740849673369149543324274273525336696407186193456089425187442948957963223903405408257506619658434941802903075455157802209745945440139959588976458336832670829200310366830240910721363733944690570467111853122074130196845518462479870696928317809416401686410460415327691677511843605021043311998346838515058364831098016443132638328861225432231190929189383472553528297104943003072147098225563403845065478130526943055522420688939217351443843151626713670913765004191963338824169987367461710146334796815804193846498711232950270851534981829603455139178765144803370213334939021501159359333703307239564678615050501601713431511425096521040422997847467030327692990882890076652317081415190265850234287466512761878091779977929206733246007493522396958118098020701515394877746089518744613889464513357083126142411256361893590935693500176821649415050989982199692050786640905212092902524856035617208664363410066814228967353330185551261530071013203469854470223183681362239850324991735472574066957261076600575960739410755400011427798626901691566467545705267295762553327183924043622429461218273731159758330763679696084657405415070817170056016992526413342878458399424801046401897084548240520201103729577403704008078025587914790168420894166184536628168530049215359487592904388987969231823830470886401518137009906152121786032392775741004030952508817805357025179124899990448428605365676684664237610868272744790524946076849556888700825721993091442107574762252360287053081139212609546513763485208877514255513856311664223517604422232085140460216404029672696258369513896772029818188933830981230549212709171480885377872535600386619908998817517218128569395852305832254952260852189131598757047046420607516459326476088356421842080862677780453771339115123192956383284504171940535666604867220905451321773738852720362657170900143647104896826996305870164111865945252799107042165489742442255864806197024558119540111121327813620985249662154599564463030924296928781114058300998522596224801216891264439251226125723041292056044370579954092618200327140032656149576081617617213426450136239968875321234586465650452357130499661222024821059538166155688538471297598253841647285864525392904466261030925138556866456233227508090692506110814627069275823119691700832521397417742538837917477357609352749628141165030325174085667619021879481390863289626582796560256827186352677628543310167710634224393338968959881360444724052478745809374597692180882928104371434353795333641049763977894198952069372235478757892345718552354636865249186480471056534694822716869314855677138264271528885746238066522385551774947816326334627116716601095654968940048771723710412475838611880832914787538476736581743699158555636333080666397129726098419801043389838457450322960207906415432195881286054812927508288722941012679022070671263636306284026214093629230650329178970803742728803832574534137994265989538238769557679799255609922263563505987146411708805896134805921131118323917369040823722138438393685125354184541663613101024409097475559770736586875764219446912849191549178638818749820798561739705255334169515990534575285107887478040139990503388157691456575563500493724659484967055419837223377591779169179147303006682853807548575500308892225608190218274513382950255928796576281209390785699591432408688487192508844331064213016492404709945523618050590247738769535197539580909116384247289974959304226090602508987369687708758536465496435420890196648203679998430540573455878294202685530471943106334930400088667140513610849042483604295279248868479427408675694567129553884727923283281602066052697685822248554205520874238808334097535348328525115157052343552469327467647046010716282323004370399875946421311982937464192644222614799225968517176793624104422721363929577935799532696947620020355099018098883502044409107861631618812379416236422913758725891998896228372210083820338543823197015360006580964896344498871812761676414545499608107352916981417012825327825368955863062040445489378592930392441211528846131169708867415015516456506653835712407248836105901608537050417505617461753319984328738760997792303919578820703284942311789328837293765105164666648122335689012757026849009568618456404810815453054360370600606961324970306378560123329071584377031386873315607591210493344947145556610185372315001731235615712606293182883082363767762430607329052883736184186952934174789102220250838794030841420133262025867316298997065391874419972693235561943921686005472494998431899586976309209872631589461912623046095134718198767193786190782201932672383314576688163090473326403913856759345671232814468538234747285166539905219129123611637199555332595463434209564205739358369929072593574712690034693419563778857441846362921251278505060194116993836423464610650735333611884444192213976233605451230838354659907166048608768927324621432753933624728340661169287152486152084679068894841655906387089276784818387501677894248553005501192695030038601700613281944379335179814606431743042353886402339156103267615415516408799283503209481724597257018671874011616976066332777010023696066399667460964608748283711408362805173170913007464816766404163646045994484290073933447298746858268494916233253266035145667140447584078871525864576695204914411000958630358526716176524191320401021270524386220303038262161139840958339222824034398848438435185202310990511723464347958971659643322350212476399124054173013899327830293584587722163250501740063048158751821849561437890959070842854402358992474118764689140576156311018874010866101280120395413709317810887564753617758610298738296325773548462037214987307969852818377705234038150092617445230466492156274640653219618368206851214427625794663325836694401506570599387196813871146166890405712991462924283674340748666947210460787142902541026671915033511785657992782118915862563878251176518449817789449196011463947425578562545128181195217806087305049244667899432142979477579315406064618018883965065444296638861754047707669573731186684280753628321108195720188518844172000587028013511594460985971634328500184621430219520673887534238234195433362284970483798070260631366884191215558774395611707408977729841228711874585830324524948184573945669185622347883410332851119545585222620601323985086443415767596082562625621452451930289599180457138031042289757030489586750586366130877269908263563625712062760400845143422838183984976820430125511449694952419982875783609711688057259480216038345040039557608391363263395187057466939292372864463997216191588338695703874709030683315647858282728235270801724437585118403302362233314997096682596445104468217935558681295639176267676867239923898311853457275415843768274173507884987998251642956296829461989836005073378163594424804348765174343025865174136919815600168100246409026448455266718751163558704635935772545525992799643884254624120707683812334086652626845717721333148909334415465692450891580083840589945686455214724369166341994836205961578838781868885005507062120138948089930505833409231454565338019424206221799847561515327157683871962844536147120833625929840184282949442740728443831142368885760531737411937710066239725609922345691217656403284206206241036482341817931954132548270929605441711377265258395479838447858247260419513398044375570766285334766830983749534990235278011503017309480399308336372625552559306259821907769646818204994403398691808327731349791065774696488802187908495594920367035756322529741690435520229628493619820916010177553683719158418761543869998443157272569599839709444679644017395873602091451330007968079314571796694779135666798694250151870390440921197278350609918974870657306637491671862589809664304145521278341874828272340002983852031874094760970396052047306173078488437563385377697324668685967266947118754135005780068964920478226403168091814085539718445020115050451263587045753247908380958689883293452202474004749391025182929083939294478348742809700070623111137522532773786692056140290560961670634683333623011273422959265635952761262918531803293024040465564577837077739194350613469061989275843123377975852118385219207992201899084065489955170636847088353271828205671725174942983884371621511379408977344502211506260143787201446256465597013671896530252031358016513751336717804396786582474373297075530016662975463481410570795530543612208297237416302808626106085288075537629159082650300160897471473032060314722083440806994308207472884819344481734988671554970297781149352246032160216178676395921547891966077074304089314699784104985852559944955921740298483163797552035828202249369019321011667927738252187985098327982483673520977424597591649313816433919211568565078919976900190104662619262346374560189409989363321830849216908360368879269731341414534424699366900209821798581724480316707933131481163333850642564546864085207066509644692480496178886508546834702843386514570892287433631289180527165321031912038750947091132820840601354623807278058682934400883013893031559841764803848755148099842450468332238274091099153612418534869845720509615531118659955919820653767465497099136940749219908853919295797315207917134004416371315336609895245551442980402192508795924334970429075117410855660006587796271805663143144294569651212284797494367142609996224456610800657041051467086534378794337334481286515596437602137389429496642050500725825041186530573526098678150266828865489298336660392356740687648243763387723999233839570152101374590713087348957316628586958746297303622634969649245611460634317878531699925760406707831745573171418196990988999380910349170527382723519413880038353649769969455596961379430062373836653095073235427582451395941736554588130520559222753865929677220967574318603148011842522107390251969695705858413892167967238005621410151578053408818824297260209905397285354297050469976930613100494217289030252487503945410278411170365269038664468344439944651746157194337052692038933849439040127407680098281959513504807156106311807370510035547156226209621052463678269373837196006495516956176827134428455810424562650065587732775863333347560976330961276591531670635903017467737769980121094396137676483558938717303069320425333480737217046159856305031521224330399898090182014677985446185114584319605795776344938048909658762380344168565574960759343077905639169695587728425061397542820437019308998734133611888844992067165525621413217336222333394796235707632051223276427089408454008501557740225783637872821284562130108660793777845077163516373354630056436763131923506821126267699909507951498124841504225635740274800834450496543994922486430996969446033806480537140271092684144934859356591918502800343947953250599549547824460744465870101522442791161571453293426909039077829054429825330918231920713482804510490087000628029907121602851002830440044152408343430900996819315461389621997424911084979688901827441120043481288280088972654888200297536672682997165803902850215609850033586514267094567148311193222610419021385327545672344031128824480018266317640948038218384825153479926808281927646970248673206892995020419143480594110744640249946934122370249369324407332722346520957166275407761695041705075498740509194881762831642992719770461515529517368346202616359323494558944115664009517568853244892292448959214379420313201644385334636622177753465029748814758881392075927044364904443714579231537666430283523223043752475772672970132983535159310541267507869733146313315927446086873922698562662120223048161179974047564418964261706227699508433240849781586061238055675538931601948426161904574857124027336917507855937564437556600550324394257564154548457173634853215575589441357578902452361101553661372628638880308608406735016572190065130242237266079971039880228812258402887665730491181671022299587934449467835676082439151940761527250986182187281514436081783157806526866883786624185556555742992333679418243001111824740137841904657251296783394583647471469996024503853429760217155735266416115117162127007470323113067075438742501400811084198466496322611273046622279830887047675230254836399801664719966980297992076477365515647523108480300548030809962973188540887817532735808116298734271678976581098494535055594232626319685029430761450682254341564194468792782858017255893870089705727321942552637283903364468291121878524123676852162051034649783611925127133405501745928372844900364531897694156553144301607764330088308338656468461406341537518038297619458572617540914821428113510529364871463158854657682221838494843190509560807566271766778526027564550569698080077639496749060203454417502617386211487127790227131114632748293733380812559549492723724850836115706741010668135971375522207255443369425372884624394293280325088093376291845128539552177061130020390158217851845911889175453547666820030646333971054492441419724130877609661758654309267804845315962014820519864401142610752464666387762587957466035522243724592158240247819870325342653639082450552004758632521581569022943149861546173200364258731350916755247583518678630378050211705533089075010762468059718817535437436847674588466849783418595603799417062962457943985602076577042799555456943832682117809518326852595749165175219929293517053266616622252611613711550587293587692838267881664983583648912126258553148391259583741954729349128506066976218766714589695758536757607001326882930443973477401482931744748909433733985003165344635366123784923799131928988991067406199528575108471748239229130778649464284095417040308547680823916332204382407874405404996644968803713695231460803025698521156796764260346585277213479518881213895727421003771553459774451614541337414849009590027296676594862598829551914592925471826496644235745052753078674158692919308186276665022956211127513749757841370928806825335775144195484743930016620612817478569005313681598503711824486442614506948923869711811434549366842075879143692588562011435887860676584732996816490366916760011993738270589188649034498699091410982513206298089925269630584240899798666082998733520165177409612834885663917849295402911487261008472621615364715486992102586280657265453915353199774311416789448776748128232757609394080617867860946801534539596484861285191799297773153785156734998585513609731028981163312285353606073596821805939062111184766207543927546105269966233212376655787240745253982179965625784218326792385436872094069087122271540088286754052227582798553661949349127931348725851287270287926566252619787997840729210783734145962475345400148146158002812865812633070297926237170655239098859723288138684807052339826087931184420184687475507543524003382899644661396188348192904327590619427616981837829035095817022821915363204182370881902376923724682623129165109541140891825219887228682941562249922624589050629824359953726045646828851380150090333041587809667136976474039705401002961391166835104177039890926096821800940233420823248560778824966821079237928654588400130862626990340962373275247228469622458224795557312116940011269079654559769454809180673935881915020229054208797393258990782132340711601098046807434797311184387979905161991647509002867294100799948839591456512210995143266105205639525706999267585732035160244489563808891673984630001320671244240377076345936037498766282253650631851785639316798596777448615664018133425444891447295967709010148165401514898691387914373946958029765545085432795157904098426229763592724945919456433237551057050135028504931254312760240381966245769666725626769921558772598523812821173218836597755145528889225327636824220661766036657929465636906363451917300921856758994448097404391173079169488707396154164255124387192155691790969643515272100687539403301596461156656657270144221099497911480814477947413316492943287240538231469230579091593942543082296080495542384796302491010974793805419596583306565337983863024012190271077201577133035807015098796660669586882420166740725536098150055223075461435661122199743896958883054861863794176671912378205586422509719949440317623260086871704888691586452248192594100026824277003034959890601916847758214971632362114284370192850750427165039129596849421952664453392854429994671882155715492549810856564542209319644993522165105118869154661817866894446443013791592713285408300285085296714207008836051863506833206696245965032793837843548621629440591906362541564691351688673448676081714300558529404202430087296114900255900635825274154627871168025658624403892305943675594722050330670554137033559551349792102061976268421342049300742188083198020407104440482952989907665236099906695968192584233477609998573721584398960418557690526894226155215917682668085644932916137223847080323360176122179403035218205034930289446902547818424595898567945818454733566517947162902166328068795254488948038530012634098672462202741919253466399533070490075544157492576787718716060821356930537324282568818457145976544216529014903344654019811710051958457189143378074546260058129395054341576404709160698142813054613232302168928082015311149694909474120290212857998434651821902727107054081057293560639676633346791599090806517633809386669462303947030700273939273509346008555301583969414535023834952477334049174250023104929432209220646760114639611443325426811280414602291062782913130939164410472095929334506558689674082043139261731812724311844713676608055631344647719279167916055883008307741969990658096680512773482964098666063985300909556476885764919998354365271936124040267500290424012337720942997178299391266238380957381754360650209568891741572378244868228453849927160657208216816354820111854592370559351093079647171954980474498614747841620287479029016735949710740185045439562110283652298400864866636896401933686487412729352419688022190737184112561496372987602200298148574719429432243698970756521603849886354615140805362768148862505502756512065870147675914668544588352676127555072047166804002133758307800545341482790564686135733623698083650064327702883235908163282107647674790640873750138999635044239268104640563068742334566146573301454240584358588354814191970858027294488580539219347744048591819331508554334919832153576675277082599686206871592425253838679685225619663448033633106370427889180127982921414696647482918482203182317802214259863748675313055850852263054679615419630051653934946647901155530441088131112939293088651249256040844994699835332457392005759631167045307778677503037753540985059688840738714138174588872910909403891296662147235332347076499288462260542857938572144721678720275531090134614106199230624002652917041326631593415554446509949973389118210505109780182362124898181083540143936205936020204504705197425853570748812219997266285456658759484385291209881805532999105783511973914176874113481957158956532391984525788153135165374985029729372564470739726339461726810631674988256991388409691331078969981172915922036092190323836455680058551518773809209493884046894453496061466473658888176771343152695642788483833541687953161607766434089969049968212413748809180073269103849587883049520743236927704389267496013332214252722794285146924938053622992939866182222237904903761192311452548272269688095195958618380954073214196067035270693686307624929358141287232888230704542519631801148372963722217048265353769024257183289894219942782647900624173162413883787894080773346899842083063007030308785539776219155516992437677133111586628611728611478844642734063548624909356296030507224693485103385582562601793616154361738149975227767572297915385795451433882261483658789211295873427611012379665766752045816939348308991563223507649682177774983767272861627683515819661396818823964853291916384373373152311650575215594023472275803089817136395420397054480666332118137818432175954375759049206012912897958961597418109240225532696754164534086465362171445741237307203996181975052585155847127985374775905615847124609932997780900860017607117761591178141264514443068081064822338517983061879545295394993505462334264386950254961689516844928837178132928062399132696156844010428238023840010544645329421758029337420391441669146339288838865991615960693083104371059730638027913250093732920936042561618984020908891678890999469096076268446339953153614757073260459908998838524329823392434208068685926798614988616782891620006320405916187705052738271882568537998127661702063923283372046906450328222044780960247572979981304525504256967085960671260543256306667395792273610301985482187287195861858634171034622849383310829011642496027462655914587157933058111976106270572328389214128973099156484314968368673748191464673691624756486582241379133174528739650152817602917586099607488854639606781072320120972556647109506587721161562489847674629869803251679022667381148588942383346263272687938194916566531540737769242759818476416473639135877842254974612736028965314485603930879442428025021363823260736049381249504077859135668276970883268918651240943668777323346674761641635086035869885282510121283861673881455608544370919817487538185639736213521531584153829263129153509286374304605422160479886139133797514940157602879836700570815975727484176162294119982277259138784960975863039930008590748136048667921869897190306434181965077745885981307420554438980628298670628542390391247485807671620882119889283073007998421337810081095634476002060390656597813886942371664991316660274727172937972597978542381908702234406699540303630247167591188252269269449809520511086922936748553555197282429819291768976438596910009394036469490616381137029355260916255118490595008353173135663642338602180869653414153074028766474948580026027490008608624695879892618470899604452787500228059408844654518594434525510781616062008070097180632774504306566852140986081195351415497240324309836772723081627909747036406280719001220414404855501354880530756243397115468867417488858688709640976747948280516764138724549277091952995419127780177455868330775164897099062038037151354091437613231404095603857656419474838282404058444292128689373184664327504075813751431888768083682236546344335439948201026076785333519070506587033645769296299210362218589727345484960360706184310239089932308461845044243982854469307984399071947724186427764803812207408373037208923595177841119995603378601008404709770869021635084550428667330977073418166382194507767594589418824771507884833098915405076283546545700075502533518207982516607812875722334728183939503256079531651634264166101941479489065049881859122178159342479403287905473377330419754998752977377759937930903397725789973329249317590230535391245271305891134017039305587706740332728625869955879415820963082000478947647368887752860562935419362828050337798916889265024358284352856809432975698626694615835324620479938373469421818803055044735508163422425755390429580454546812159899557355054188489443368241754494835064263732099406869239471297469504177050805888430017697989363252857511805699508160997315204880370029200535601705395540747591946015584943745182373654975489262140696515251636962013841962995083597943238030157534324760428347776888476594769880073225508198888739717630299937931899980211162359683248010775159103140739635637545461173433771605054902512607689607664016037580045628296358050246881577311758200335117971398565905972176044785343686986400753723219746061249292775006491596726405858929231105251227277303577545734494562083792374865530031717430542979942157043046090679389883595821040697364912625069088770945241772248924892027514875853000572401265885757257850507578186832738339849293160173709286711692287131330345633983126291564339582211981501485472644265482168980884957744005129650138804266571182316016838366178260351145890576848454706852879223908841352353170955145942866806505664855115300441620055023732915987090739491776901492849842075908629007446944692222101779695943412190314827599006854873476507847946423912282974315475140765269590744353709583273989751880593719609802131498847935083640219775390600360579476741940478512206211839753192987090014223117616778718800668938552273258697727507104806194943740682880130498055959061300601108425718424095328980774388496146990458939339734185643458581437198305919138682652025431976512827173422603177704148376837341168895714458199730249845469077892225739225732992434568061534989545362345277609000195872692805431186214833498899084440959869373141360583199481283154686455434424386890676676929588365860855806188022767787367674476838034174714896924743589922860902431554463904481392309577617806553562297398308294292876805370011882047171467333986203314751149062883065413556587076381343931966421449732444949362620621630414978263793859943980342537831685798512317053756936555553715227607449889112301632583543038488739216774908524037217436523518542257456352427980784446666081235513448040926892710260574592277601757563055671992582837678472962351423607464710899870007034481137022840222711811312613436302860449223416738615651980222970893356775231658971215298670438882587863977300956121072193844381190009918910861435380361408235317797148031672317951235160735994523520164387914651326384655752935285191943454454223527909923268445843396331751725806701581541811610830053732795589150315956876278579107124242869459669027371461746476295249361445586438059003520857337814444830098850824639783501943766196807290743149244592664666356184105751781733859733194943026800938526464021865860315754030802399380078922728627554014764382704002140144541955129133204961034413289124916370264529403888662971328695165318036842429328868615952962718675327970094161207322406495435353209435230438334638141340112522614874782773477082176416726897635381694635553493506828418966978742578121369710786444499498723598476569053795683498906037407376265333173892052280712524325923349642216833672959466548504009491361622131067302888645510886768830363653994668978950204508061083179600918505974654700938544386882039632010931804621858820073971276132928021901956109122953643163628261321711038615007230413420464598560034176391145864107625354411382717292943598913058978096606754016658499727135467740121578335484907924604119549160086399742983534663692524773779459615752295492766520426450771208869648365931330210921208220256272410745845998111345009046576079043403411700248224387380345647455177486358034599103338178105209760242306710362722384903858047261565216710580151021032326208925793992258197906646410986877821315770245273823742724630904641539980591044617800812605934919949279798385714347317533967635430065055533244358620328806214341541814006939500862054236252475775078657965143607347254191601135127760190350081056798423001684653629322392878408877477130706578198090933567696972564740759223222825072266171588273502433008797588537841735466159171299882847460967912942225533341916345992755759460801613149260079000658268184342590427310977019767547678044730418918847335275085418962802288045409840445463401015976832490010273266343953024570237027191528227547513381212904611090498395940863942164944048647579370414045801193702085259729480490620583005393421954273432575246027192398407831188554096122822108311892039636700392613651160473158671139713412918871745823416724759034974361331069360124795279739531766063221127704572437653036768725746047631557780673156980583058751901908302368415052397973986600488820619350704460875461942022900518551562841847608389143422450074165187010795115226346201233615039568197131414456232470277359144890007998458946340929691451316684005384119339820931653449818913226193260188973292952474093169634950147688578605925704717578943169604754246718818937766789734972206219803546052657105618200023866066541324046854495042853677088883596320307856741795367663894438602676324565109324772972592985982296464699691169103346934976480497135479241858223837391107873652889759083439834963673975712496920048485676245276200123952521378208317493073296779688908892093330656639846307787392377045875166985383736688427940069274229944575046932282056522090886238118152814701729958354333298538002976524712291631733061143414454764676168772912644682047141377010973276276311509769655691259657345232742344860837120284097535860139673239144769577112785090780357393931804360735942617538116281020078298924195757252350784776920254376098566869387717852008347138325245363245375942786071957467954606026782739120206727842168766343258683869763389066230267691931699843350007776756097814822667370049754695782740714631627006090031312280609173992173171289559528757992369990298156843680829660242058881731717723296266300164201214408815956737516549888641830567055684783516869349698855185382055169445560027643341632930370386177659959531660609945419171896135944001055415852014976291115901850534981645244808465302429652246280983791122791713616030404044443288468280009620429499177539666808887300998219372239025898441695879894423880080202998265351260321101466823373148288145226663791084123693579066328524062318183458450250758529737713352194331794740528843542551390529778946864088367404394436758457960743780889657204522549688466829469703964143523263575786656199965762079428862121166914570638064879530156058328674414088921628503791478492292990994310778377795141855493136460943824480218335568266982805156906622598378930677130411844436108223456577154179020205847185074936223591200083384686383544533648147621920509525676244666882576198757979192036682171185113322467599704300760122322523060363887781411452422571070282187248100527280623732664263179255852289538390722144299377718855495588481122005515795556215291991762485243920030926253136451386557322156246639985079184320631499480329096568574242090000045619743823841561271331096939044400231820256343137291524564958891114748204443807463487316407848912327320702146913080895124721025499538406819788535666492839179326019054362181126923378359254280654646586714891592631080336242254729843089728259796684341830536227739756680004529783387009550943100724532874225743082075174222531702354309907856230480039980268125141089826919807622284810454901435746350366051402873573912165515372190749612384947023370847973518659584913536113561959011898145664733210539727682381185186083656537528114856514563560580372082177458367077185890735200208990053088355698423857531104787166334957017775492356464665690139915383432641425914515128374021326578034892624310416886619707360237753263002759098352699495677243337227081831281718976079586137896861109545102235645329814419582020401596015078240879313146724245389142076545616141078762969505800224106118880318846637022969144065159456569534231817235636807483590231409511643027191652798056986140054601122754942771895096078211944820186979535490932297331852521223828470846042262686766397577422216054865982104160543363991118355756632769807177839209295958532978813921720930313131423146995915075413649675957299077139150359030720969012311679699802747198618702591194178957412454093917798794379093319930558420794393465884483008617098805956256236513015771085327500870646108335882049639286356953245154135004695106758484203601646062342094159818213388151945698827359251018399600570415943969627645555924688462687009730084991403733127231152974469281261357749565731501305061280666366603569633806478705171722265492586053487096603606155881865087899244339878711868642310575671586069849610956348221129876374329664588664188432661666906239808657098374774977181376834916183816377905965512073858326598847815707241146781106695497497842957621060980937849333568381801353854358103333673613710881372825936098655493333481651371881371916377384952606169322272350817226646067048487294967558505391657309457399688693083831062044303458641835725111184226339691275435393255421365380310128281179037384316560288113372610000288891475921402112493585914504420992054215309139498860748590161941903201749329981247298785531493451724390155143229988262778393124990263232904434381844322029002959997108664613110526730269828663094595147533140633119317644355293292019727175985629991821927536391834091641703191857158273028384656824546450429126768544257447471384129456495058094034445482596678723237740688946442710663352059426969821328853705769576899267930809559283310897442315814412202900120258823612028620873169330830396332677635786609667248126314241687081703651379147315052556232997630233135251713268669188547381465712855881081172794685628854483105800427321751165496369789406398647553112948478592428546445629807525371959506928056032155702906760035378879565062095313418627655017404156468466263972244348785752165393246030117204024797477420471733813901041734404645135884056879328822292391487112531484901222601111187377290288951168333335702940228262867992219411119661753687153529562142850784444673657030713739070866881524300023711982356466580320308866712660169557613646913852639303488066552700363689940964983486774341840818046594056424112770377681257563741674354834107489448118456711428134249458089874563736664968597539818299910931182018705115991907159309792738047022258290117565466355915586149556774695279628412402343098515928555597806224820148710500878729630833093029274790730392173574109350123072803136571500252348994990476061625286413271672740068090129024792548389757781248051117925621354408454049654053402130232268257416179545255862863339213256688013133960974406622761578890404394724212965002573587124346882690534077678859350769683035107039677687768130765256362042542816706713025036889230663059042740043031207249633206192466133822127479407627438320065905432156496810984261156959827670424660920641280499507230005898473462997687202179903317270881662623196925804263476223735503305615117635721432104445409441000985474533220482399284721786416843093017615722835897313999163849576313236814612968254828513992253145388857716372772988309344267374311281758522183572855525292454234772776613883773575366189578827556113425446330734614863262948906106827756757506536385220604309895330291740292070029129522739058306973527268959198671152901866524397421398641821814372353733953895602727470756323144259768070902607094120165138448917092965592625840421219094558087498905825277632399898426775064258810157207655460709623489702333104229278732363050432955968044965831479149645994030665234735367114739538840706233099139796448987542393807432046223296757471194113088836192262248453250611551794838801663993161962810323344775100704480670980530962741766805072153719478486380738834546430121240074875174757201535776073272998086685521491801715657556580617997032437861929761757645433429559826823744090745634393431905326063934279717345805542720774621408785737591123833358187160257311909261078968043906696272589393922878186765669109633102143662632557789554319884149090624993967268580444819785226820846641448146384779425936550769552012067022729107380080342226245627564623187006706054169876939741105837288232130002775254159632199420254866316760999578659890776907897513571309036432476100154739322639117330869891670514983609187476233870135634915523179708394495972447157902068268364521777267187080687583316940534081041667156886343733042048405580705249497778567748368637790379745502132698742851062737402065989262841868896470698543975117100793033548103126220759578676621760790697020709000601563528188733518194304641333151087729694059403750956607887577855470472187401456531248853237962651435649112246404589668264808685477086953033285165945310097761663994354647201701584857006016488905086601532890705890219134490951937742388206098566950743762227774586404358272205459889735783860437485495947800979957177461002943007924605719002942754938724019296857558550290276680410910950506926768466912768650936000817718440269605588220661312107922483345173986940679120456590774421562133199945068598252562559473015591002170731451861978994400970438079842419297984892147540007278887464828623037329469243511552313744468356727629274573893236471797740333128595261647567089653285324333687362077781199830301775329977676398828193612168456388345484419493333781236816295692674315811416462405071715690440091423168823782388524740069945462615322339463073569839280351453700135211138182247995853967421529824916508542647056720149086170651757091119978037379512699441930305842284266193048827623452992203476989520683394360043141592556428582754691024955118751665375359309956580942861282961461401822491237330099644768055900662066836641285836192014304491824438992238716184678874203967741687764720336988569064849637192942868416461974010749023207781310563560418393434943322566052003936371887955426478721375717397484576365391054437144237013005002282608807070232560365424525339128755762752441336517166798459196797119285884851743385172967259371629907630424543148310133030047990748929554966101321270058801896934970815877706691373357392817172370548341996883467963981290558616147705622448426395817995687526346162684855412218942102791516399780076493102364170645908791472620392209387313879769202434521889026885678733445742942306184850082479073763081196428909873853145560893668313786608752704631141623374825921505057409252569073629674717130700314200857666556726995154497653466011253424888646109075379257049786051740013746317697100040961769682978922754244027655492070511318952452375120256565978116309942663748155208826307583239723960016765083097378364177503280669616579603800853941217719319400316451127922585459380991028615564464631100127084656897145828581848518353449266516882291679253312969863230664133738199809098808501303439024949396427153707795758098774172829408992171898662295094191191267209162214108570090788151389703629506205898393714354879587078559548392190411698965328797385164249070140446579418463958899793484261814146559856366788011956328079936026762247968660722977812950764996052949670539304502096930300682858440987025500234399800149444128546299341731332816562268501970119849868057872096786091099181974837338710212460864377233805032527653669420394008437305929549599493708292604129666387430510561066871596602814706942187447801867728270828815025137628841890030487476521845228973727544968748622237980112872154151246496149331294664731287931616426755248465407942132587961517568775649016488581386060047107008284658610499460145217500279809150381463770117127814420952797226466968386515336881307039978216846232625314216825324481278415305787398733553057269986751171459297152223886659757319158559813021102578026342936551934558886058145953215871640508273730542458683732607677936694199866931589417099071293799165996574116259996714026370523762515197645207414153830373308429087530889054653215858767265758177345719208257682759721926518738652632491169791895521226384609531373359892253004350222302247885927491191688474725680632210970784600287992597156343946440507196605668818206109018561331208339771602514131208762317000177947520681545083348490270213572295100422413216493762539192229320845767272641295317369401778982370044376497375457297544526706800618637802638565847010336405376384553271282963525350632479104720616597908781009198569849684951216122037316979344058566008952107799144541546993250031699741810309824488427222049256868620779030472645408428247020694773669199765140058397570425190617419411950967736689533318730152060200414565223726080543798236334469210142610924664131128627578029958944904210731492695976512738524241158107892800950165721582900723276570377253557566549292801269642145119445317429479045610712400635624291359606478413553046804592693282789813199650324380234426842722510677181663363207324353935964595000553427713461577781697045809221498155220554067353469489606169368909004353339987828293565303661145383019091569850138964797670423778071392090273562286871024189843373691187267060279255879005628496220286562685790736179550522409922361493155726182635705783849471555261209930940176133755176060214896263779778760687959067620602876135178150937323659272457332267527204556536818431766041910119544997722409676420315643738448169583389375141566807729967622482321712744816553204991187448885636004236532292495614672563096713089134534867500123916270899185908029814285835309077533502703322171987836628852341423296115453305682333104921650203749659356468785828083840222619933093944239124634825197796370339802036988334499757120093773149016973433388951014298970945904733247471339430438812959633315170930868577484432678643650681476079884441457317071937344129738294963325853112930224818422620829591858320773790775813809536525359496583901922222620086759857893380417583247645461911422118346089887091194088518478499114240493839622705749681549405536901200805648195688492510385710642634942644859293982974013475256624144357460012921466508441228808654266756414357193101174098284056251314283431800650578476526023239592532695711528293468911401278754974651862577646293581443686882974178736729623164347087948165845333488073058454558834390225500876295173299733249197808225043120857640315779982444156549275891391321183814953229650034610523817042984687398410631157911371577662293059602849587624945412444900193494547502412884402881444399625694986473577473149134674352189125308108573433750158944167522758819122519202993019425015941277972611940543020735022991907639197679916447766865154705897812822596031509179323568634643784644891504045832769687638804794599031603888036923063184992484307073614152338264490605565658726252790328757401120173232268193125961795881787950225753423275490805624646406208794398086136762139841327824006348028502363352631628804918503666372295379075995723295552470311413878440256308551433267631769948361606309047959851460756057611278837772501952603504349533690964470220661440689558051517985784253448116910471609265589394967142304083861692827115713106283664609467386178028059998380221232871799885459149967703644352075378166754113888174376286871690831010100597222285702841430755650259346034298674328816835483184655047469921131746012639856117346584018492605058402898956423723594801859370120816987591433566353536166428642651379019074199898788157340818064025095560214475058032754955209149086653432993263432948943681026077945475286191301249723980735052667493566621133919643947817398959304264250091533480335974951717807851531275942966954155904244695142623402216590647280372054546561308400248466626960932437622833461259829461223096590396613092512296896161723771098040051559298435002670501548720615964809158182607313522292258898109793418226104436988523260658635995280404463538108625079313623630802910082149143578994095825341132914728026369524228511976680818333548849605183124809650384644162625255294173970150221389401201569678348899498271329687444231254952611336271016735999281040673383350329485158233505963622736927459052536029307476061575676321029787942331317431989553233413781174244600245050244431011859606504459003649272725319778626168096389185222885280205133814394067899976809128004764167081249194182615768539190492923948010253634372218127150913447950317017604170838424001487443068639154639976698503797368219672081061776896982953117441390767110465428583889092980288673987419924162439258170485528826676542967557474865976178888544206287682285481748191916114529397530024469223262590860588763980634154757264719174819982337414208134669552117008872631519855754799065861617610024408557929084793138378155129971993709121908075646368902155623218615958994915004123454501142215627557597501822985858472097092084266285138540688038544597508316654162380686216714584274758768481743149396745155510846286204714091455405574047627900049575650453651458099617726877180010075103582771438286288567612521599548551929205394523974696902465468556428115710933512024413923603727209336880386870195499425740691933488363043764176666795153603894763890470856004606481521516172590777787018663097728389422279999176695233733972270282615054037278778121477706717333263493661018264649547719822639735976181367896939205912002276366252605271672722430227518528001040462163861723321791773544643464671990358991808016686111558221231863875786086126560716287665112422829768158008689399846257780407408888403183643022531000869182801251266795413298400243164199417751593339130335067425129625919592540875422763306902663183218014091622716942092473120557951211071833366196784329209021506105853042625604740856000327235786112562063812843803598715455340768088043302942051804731459705215399561951215243645176636037626312445220764602376179863371628585373631603487972030918948788000433288441015699514322377660671031397362854541059037933889988879773839500374851892226009729446444540082936389139746710260389743616313618315659417625054993789152852741445100910135680942862448464316357985009115173018939426517215757536712828800169229071336779340469554528218496144009499645604773801828337949251616849975396044515344214763844098593964190756026972613495863810338201798149537948689259289148392399280310157005168423332255547784838514834141224953054583574529068700511232795569985144493812052137196616027562916909544806583347392857764275574673284695493668139702411233301614695770716782933519359616291524064920341689563328069567730513560372714813434295670243827201580500094825953220376044057499262804962748309391477045298286806611726412967917077124359453999433811132224034750553292141691049386417007908433054279125280429201661393934349956101480271858315017519027190216289280008934440290571962530843585154342021595102189191299770040760969344150160781091235197378416682922937308099083265941283303277465325445775705259355916307433388890101483420906685409278058313820969384155711569138142168220350012611078794847961951137649630560539459678744781234937823869780551019598664191437390866670908580256635051343319711571715819362170206063794847669561375855033930755439326971329982378627503298560237038390549099786721573444293396098293520665042795684597342256367956280237832054038111356272588653317854920313358027244190188351417664850825622950083373772089883462711466740612249562010174308858857368873384520215932056099586883985335712415634367849656901234601903371243615907439779908122349286753048239216088888207536942609126644698021823938364817580090248634917049912233714575837537976512821197508771966572360192368404052766381976216644898774022781145711055647511860346478254107828478472112279857460190774148634512402731644184957144099393711326805184980447702909312380295997930564499806443005979179630067122876713181529144277720016523892696654709677093356060530188651335084847120233561779860250689839181166966425648474447600556232838951120989010265372776062221454737909304906930221333592867932293132652330657138276985713292282471269060592023676443321083473916162632324163142682358077653778131668687443159323452841053872760998596184603629040929047149705597922641098785479780727991317480195377252659823605434209344684266200208152328542458669149126904406907285645043035480013844773469606582630752222941062377374702186694366418978894729410829796372272217695083759762478684982804991160468144970782004768843804853182507375241066427379075101107070359724378089623651087337237615750935344281846363345879618644013279301555868420740776810587145447964594089483510811053676437834557786014880234960129182691635906901968369282418704860736524437305812796396393959838393207096988565839225849758281245717764237750281103382787656254986797698266895310825256970610802379941227808920596811971461139416970737427763363422562339376062187787598176865909043292910132886354014135498164901902090614676818106137573800461323021130716418216890694275445527908751390000877828111179307900828723114803628689100788697405771157065216142744107725294045778599309406144664359334047480590295424072486770287610459540767450930096188383780974143381687792055032279886319868931514616026917410008748823588415482023598472094705001297771776460601576458468597912009996181594434792257971675718281148422364365660405752272000489391616016436250458980349504263353599102962001534022661123226850313214501060244928701931794264937456900639128952001593551377287078388343624445144355543546784127186686965579983150818847681085707951892842043680572990342712610775803862677430581712230362067458183642437421669285197829027250795911882712041681166542008797472798721993817838716824208674501669963637238187665403769685753091893233108836267850562052453446682161551568165335011967868021068929884302200491365427849566999358446868943912874826306914625776243333889582478830172347826706793342980681445931166614184897613188560086040007796781146828864412060407669311899313857697332897555864440066769648414520917690049674530565039727959369857734610387322271729418226493927960165958383214067494040524743134365848504378824880023332745865270107377171384454427714873662823967145173802081275284438504391648667831116505318080796166966307740518038384803702747770392780540196914310722342985568316130120214351599997097717601050045078898952366689086052151581830983084276264946216483991523870509740258114542261926505746038271867773280360647378268395204187407743193265908598537150878995982007541865502029183360366926777287083402629755608063227720500209392571369649227317132230174646825734861913881704209867607922662447624249319823620136831581993161105130702587067925766825933385922557290940183788338410563070425016962637768775609749590999939946175200850836064183289232435799970355305630238410814359467487491021257439049666449454182119965422262560846434223140416498590004986427193335537846575395977898738995019960595643323618371715714793210871681213365259447188797718521050746888799174985145983101188582444360598395080640061114570902545757241770520741838711427531613966585094723867485157446625923896870918849826535287593174358723702435371584331711222529164901754360282755586839073162000537544567793791285962863049017643298080529127877438125078203012140304505974365387577866175014734088310175239738561934386367913458310657327482344719795862892525327134459052042425219130222754578271531785923169886182892753181971263584012694140276549722307231600978517323806624321998930594681263044759119918698183059181530548987480054949740272901148659919712977769117727249575423475344068057079040110435562875263074520648001155021706501268365107180216187580275467449035182645103352327753814236615610518750411693228015111481165658949783554462813666713302873723349872302216965742255098304810287653233875054304829164579177690589662321649389993225678092215882800817613890395316888354594019804357759000028107247725364427828965418424979952372063332450795001989705672518513165802299702276723581020046633782705278058929237631842887458054771325451792206926134997431951836403907138352251060393176504967240632868874394460044689749211221358589165513572718756545448817904360881292074110213198162368169501684186570504203035867640679573497181943345386388329178280157081288570302300266240587466837381105327033454175851465950600824925168839306256210249374209690062765104264602199855933031341704249433810768858018288301232376831460397780336893684099984700441543153013053661514019239183897636520152145224516304751169109566916772298692871353895473038671997536541283383765398785871022920230953837498700725031900231145722470982860499066948600094022271328685406088331175209827105745260817256891515831350027333569237806290216554068798029422595865972367116439386275314578739044084903423833142080085833106180780056557311518547045458644191655973909378610597306716065681870655132117867057147410119389879645476487178562013210503272759961128695680043599747421657128501271467251899245566468976409586561620425607118865054456268586987596262198299340701489868614730380672212661585599589390273321631987009074022887437035629245210206485906935210967821300353938360018215866480031502479450748242328181362436373894388136721363613029622194671887884422298955213389983913154460699972014163606727711612460954916386318813404094976940499569235321025221613467085689363881446118860491721396449193264121707124021929678741187295555346770374119615038800888782513865093331671943430876384774075034004148150004171900775043973085475344539068829785714547149985083661539276015459082292633748386301079276916779627522184276389634853224661284490221759764693918968465260205065649347456334184425295785233642849711399670410656855458834967617240105745889794415661136273228690673318372359693089144861110414446475000620540811554516510234678268820189480657713887854852144463075799020813754803293505582878447243778660402753735468943656801941728439382756792482786610874770163882729945574970392498687105350080332777503905879819637227411640842037824230280563665251789675290444422313422975102167032973780620475295779158612145605381286816574388314976354327788179399463661081156343943435576507794676080980834225349289939565819020228572713265967461737653478374638351199861944702955715992069723587021741423205812612284074689754956644047037009360953663355219099903475217188685444670488391508035131548105097990596819856850312771611248402044100971023479974394205438257224327929319046098689777492605482929372156077302513843516641108343245084368755836237049170070474045310699691717597550658244737308698347798530973692643706144001447889444897637040005029424169148017681877350404584729015414444126302891084674879435268240588127895824872317123373528092453482142631248080382125886603982523470399199435566023350070197770081513220494870723174675796582530373299863852847212483650054983742232596731474822711360652796110106256046829419627102715167857879102245893260639875338332005129398309783907329708282108291347750279449081187330706500858075646919721763028580051860015353890194031317739120857294565075356229401704245058059803128520233765458988620337463194355881053162270525743372453394650373105999734522149762960682728257731493412187124011232822775028104825084481203072204469367621736821636521651367083120734717323977823620369528120307404124722132258323801222220461793956129852692749778336545716597057629092401409636974157177577036537370699409016856000919156407453283663192004087115822322970048317076835432820278877731104742282063313615636258677673070811589569707523044144505183514109939847296481411262044259898089202845607158073865028228114893378251951866175908908320128941765848063337037554955515736830840643942682341476698272420793271870311734395245081732233052002158677913781068814504054566822432134058662697206867154326019380753742952030591912551486938161667686623767160545041999580330543373288341242890219848980956495976862399642827967991374007765715162854919767805031630828506447358061082562539430839449371448054285257770991874263372392831975039178553332214118223151042275752107196653913010236789475417250986980321692771194415532343218870530595757674783854718586442975680105048588285895430651219608210536387349879829800428574587686337036819374741966645185553468751562800143229108230488320802853587007462898302633169991715981572540735507951055689500405651251197480363083848308930285014788875583930639737881920751940850684437809665365851505338650089407758006693174225186458209679656741110599660994115383994445891469705021133125348603750441891736991389199090106985693352852332576120993256539882949114401309622578530588605615118766106500535980561090241513601208842590129670184780780780727302051336511490341505084440546498378094966224644978496000203756114523907743128327387639906027369371645614172967570218337929248589869687199875195668115574761003839300867918982719632226787110387965762890145283868661109815182770960891882657542435604945214154121700701170806187977906107043740633074066784047978880745893219063895271602507437546669860417867721708812953882112820422846117119550459286764422659113861890563542234542720238862756313800447177140898849427557316465556124168431032854260435473701456565502839166326467484634954828575943172813138397157048357185256636130451554030896790668899269468771584678232928659113311564007144240545940941967586855468395948903681815558373641379781208271323479316239056451744961434227197410359120521521231413370438828773779994836883470715774936216049407532051234972912683680066631963573259234526125957334547757340988886988467389897871187755198468107164150085158470492941511817634053464335899617801314834278090828150170676938405997046032344048039605100270792946978991107350599313790271669045099362501637803299017329324462023567105108232983180183004429999267428879908546696333255755997196144102535531321471413949300658027133798235786262933796488481027270485848830389604458903518581144230958809238534880960920822033381093289546822442524362503592956650502202183366657963123774701377364233005058778735257590855503573857994970043695379627918468979431628915880314016007541500452540626411072901152033162506824645469582961445869717381857521956338714623008174355007689943682202233387993680568661216563908128016287584271069052707129537942997190682046922256225733651677592292868839038461008277079680849993057022636144430025103913184549890928725248500776096968759923203517483095458963331823680212840624598332919607629444405631037893807575929224273734969361110410831733880222320450530816115780971446876988183591173428565622261092658352344051123180111783696461565880762154838273428065369020758083206715065752365731394901660000056384780793418179041208891808106639208895431486579825829405003010540514976422628579157712894918678521383555337112589905109355847040111480558870139297732617713810281169021712209173602105658007072995288425063653499303449897263440105976340170147131423962215932905138986027842033481286637619395392435090040649178861102433035417664457547802599674759497030479399987190205392474637121613897692481455791664693449822689301448209420262750205120693044848195090883274957223510654046207425491566131591136906007809733380742592574920686993310021930094227010157657272428301868387486642802620327135353686771575646620358868071296405285301606369044804039779733214365513675775933369165040154792488442768873485097457242366345232506618229034966634513691062083335935513577949355392192111295173725556802809281969467202688959163546856896105314690293788117854944579873779238979948570159159043048185893186039857740291726627619776257443885918038091800122361069266381077182865312222160251844764292655885761045724164205194462655467780860843752149021542014346054379119808665735556163972461650605332158669178888100856925949309364154215847123991872470717757901402813879999483399018771420345258167949931263984084859444983864574676231796960192774701121001141131396008040946128787023236505833974072745583688479417859082511473930185398217424271405554075556528637296275736052102957601037986883925517497475035491611907226484263950103093782743844583742096194556567991210901727209642799915104074492259183314170305654012515570705763648127927815561653831499613495253341689717794150222500798204955954816140072870866207430404357704485547531225052347383564282874530641795606788006101586092566492583316052191307769850873331669717266826357959237565164610152849507312703424507117850141805667396852418632416715587465666684817971100022782370349597628399945997269470635750495886215684927927840588494488308002703711976745973590495574880866700836002710371606181941883081624491883829505877640113170592416765904102174408014578505416518583369972273185394708695886855493896000358521219727941215256148298186561067720781998451023290912326589557189921762095508974502620557595817576301046996539309879103124659638647427331822196442112993956794979943368897290504293249821800444387424097952761900568456620801738238540193616541557649531947024646606949940109700042048286969026242287884376365707116176704317219799829008271883749663252333729166160939854223497988299727448338294569389612030504691613882461489853987145862107904662042706155628042433157237508979827482076245066190066253287773929121677490914888309273319405461887117107955143444567429987238482375271812855601439841589572164411449398064475617419383979628198975864367480622109798498765652943035880473849021357181513643832666717916561328910165238496171104796664349382323192847656880632496142500372378415586719158297153608217479714453849065741685088916213148773716794788246720400930675194983168283556110737631163593028736020117647105659197027990131321619770095308728030925067374913813305911095101910912671549907467350160997560552985352441572152205725944436675853232397222082539283272088365767293959555983364775128012067309127359387526610636312036995751132794257789716001397302241537127626623256223185796323976831519485546592015650533759510496593401323104942457378113517372770578943391100832446108664866738354394544961073852099713020461969180875698665220499563421675655445488317504619183646019080066321093975686160643064084735849438636305013684830449304146238617346122830169186771672028615203941234362101166868694086477244073854540558932103961717507646805037965197867728740999090056733903378554965256785582099055477358564424823248083461977084743029160965849500052096806842761508284115697109142394433323403205313295593193807668935413501983013706706611333951764264574492147837986965792429653175570889077877802320262124125518561126032162192549951334091734015362520233515591572603822488590867243724533915120126907943859085496096879870935615007922910772846465945530860672487116993173402197173976470106086061050801217702824462978042838191674530408635966866846936405672319288334360575131845155942556112521181673587942377241459003526108889599564051345929181695974458613114992170740141114453677549470760125355119597723315367419059198144194271771141583701347234369929115567006447847336404037716197108401658306658868511878480686414770250135374004859172692014670635137397904208178444131024155544710614578730903828886017512623526184672117588842966406724898906583311782323023738044932964109998845983495051408728373400905329478193842200123928542062790711071184180719970401699901741954323102226216779438095247154443024055994539732924863634874138728352363034820635186722523487638314490384425130326950807625412454043300087842178643974328579823924649839824260020861250174549138570511102044738520818493954917534887400742072863087895591358346807705768044670466513205406878423139902046523909658114799529439676396538094727419601852106234065097539617430107475902936214135158821290068146389921799040642762946998295564271078428854180162408095058690683571808434642090379625207138994103584622952266943205802490003216893365330119134738584969467564398718044962144757665437562895660950056682255881210599533179230950956680349459419529905162591855654262587989838595265330514018669633786567716136177433074151537562484957378153824145398641468229405755035043616222985727116676712537131829861456584281366897731824214404653307144878927638636570749484817486721126761964798547671889537008013216747311799386628199248978820122918355642496711317546259288629287121066767635927353785758932134546236512058745560564701032405547266267890417839998970642252933501508637973744499266054043548584606954602875880848326961698077323277741551128328616443582833035656842165374294690864616348380164255646185599401894226806132065956213292910121626593286893067937641435148254644328111946627361679416956133842984324213101986039615219444724470937203024348071858910800035759715662762570405694129596874883260944661069091023372314166797078809194968932359476233014131700781618990279987519802583622991688095979487613720729719911788094120806597213183869982295377553477587012862713142412174905815845453350345461698644677311296023169321625049747604538490995655785680945712288502985702074965402104416465811997955662487485751615945319115819651290791163573490725019393400460291846574576993881667890123939511490246563899614027621229947411897052127966892556692474276096405413087255750061366789102481541099037369106654776890216356302814321100167790442951730125270077549963844296602573871809052632058637240231593996983978822217794859606011247591955582375627313657555522839254469893700264558979905113399337309837193463572599426646830126722154412037691144830049604052286081626392255189892251348663407006073418575105377066738770903701306478377746102707810164060964091564397178362347761188944604657740480635205216376912744126939127446460828939555434180560182664548853195024669566622825843842988142309852386538455995277965768433023957276008792174543043087997738143301137736813850911359685428612253127608669961333776688236714993148666755435394137588105722777350504131045771616533589711492100380934596695398564408686344323640601335356864581455510802042375741740923346841908844068391859373912351665221791398482168480607882804406928310392948840686528861632237868278740337491626565063760259813873992908486407952609510743032124783801874997300971146278233145120252947166173519165521258445822562899624801464188315394565508961746056735484402976061073571954926203002944280128207853290275485582282086568583996665132822592870936591025947241823436981100047364487474978905771016744688665066993741775930902507065629738971308119300443624406258738447431720903100428054647418754432767785432951284454619132025865162181233126898313910251922900957276846169691185983496299653782963397049975525051945424725364670077574293127993021277221955287162958817992706066182043484302527658941675380129778145890406646845934933919876552950409783559579678196966890847406891819193740837421340279308396151859162925774018686682975667971680589971609283435923746217311847032177977636766132051184921647543310797397165395961596580498603263039558529724319854919391343053800152024927674628171955717958989361224072806620343725873678323390440394732878733775746469446064187258460071958144138069102260875888296901095120271404060287013973644787300210309746244615051994293586678349977643284745709309560084399176689672888229946420418088168065991116321980312930213979489182493609449370948876983778626062419541250415130210279934270816777194169818233267836913877281685440510523867817618988261756722608856449936599385886883075137482778832891211951937600003675248167077195792063786284739613291685960899368193453865769681411541371039319864672340782856448055421091197122264270200217388993184371890847347440044954182488161805475584743878169910742459457967851178687049337665946340872830965876867730416332544788682971449590497411634131970391024304333246337822916645098056158396259529990757588185946057300719180030208360349307677219121918516216071264913938582720201207069650291795157738841101381547980651376319345611857420157661129735692036832100256326956905322066556767536827738345328754113790294468361972487366515917288346221614765166867894823199100638247171618522686694985141828141274677786579500694988292084511226027629974635623811921219728005359933822713198996459919378174149477344029687755265507857514571383502486089184329437768577884197432483112986203938531195066828300824695174149039132025984365999668472921336595758052285242412180503646665005938000835791829544546384593453963817955435074595159325278791281932625658213755695077183503386167570376848684433816555213987433757779650780947390231347868142259492373372505202333492221593870715589660585371761854994105707425575595786039410514622626734047117718968361043178645291485790071835983688625250788802460418097929735735730338868720368128638721252900233913638874635888559175232895064328600481531695021765843018005138638650522004851524323139006262150436538697603286376946844174541338213220565643993392653229110694739884442508323276345112285791869344890124678052471083363587414009009257125311964929844685794196744161349226867679175955786806592431630584643426609065919282754931366822057901360328809150196078781592513992860613382562301953734670574414014250241794129205819134485971556471855295430957275900101071090370832386115580701083135113820365183480834621355729666373427385162732485274084646303675481972348018755226798440598380551283493623491590609704362747576576802860605012730895527488760533959401035935311065057498306376842650133921196018508158354982780866593945791390600365472593265083254638713877831792506751240711391916657763507799266540852178409629541751761776988557048601521903052989192044259642987936458216830918488482244436090817377938767128015659264692701562888686687520781421466098621617869583288665287128934906958167597456637879481641880343993413693219602961549846150871382596791547737100336981297891234110808802539430591366099215285237129511914714303230363994513160184846679837206608520482119969276526822979956013885831623520561879076699710879196064227163798268186713917752575768088095661405230158284159170323607777682167945059428436486168466742146294979442131716157248289237650512036015153090993946504631637447661440510569063807992399701259391930122775673822383230612801144785132185368698754014508058627742749947721947970953982500532340237765623914203754782307539722987877509879350317841204912475483508683276167544571982714145579364012807811290316097128204140372478975350358411276299278395321319582666932880125557839634525184460411612319290670708345805255189733400030746947999496284705661448302091572538757198664287372347145168785372553967205206687564084357043491901167981730625081869019467107737883669671470831147179247796674116573970299861052396889668453306740371358331063273744839072332339788906250746502089981109392783128348128480179688464934735893569530165383799772977934201998207722834812584818295618827054985901746498131751614521007166840363329321754874593858228137295499513465823139372520501288927250099733491361669999184098225912634907335989727235208901526208312556688464897871926086133231404462166212268503842377085522046558001719355117196145580385842656635887761659363452513282523666403196518634607548474434257433364340494613429066912798393757412822845962160255662020863940043207993269146698409289934836204857970813089846247867834055771642538818116567307235903260112116140789318458780839818737992112142249136130452054508394273755709346049733272482353066650009557574806552515215025991434574050207559122576720469292752237449302413800818447932019642367786787048553454753638138180861390567673524086973733012701280208688653150831535668941500990329056490268211237997000514565556525077651164303357898787157471120289749126492897171874227146505282010307363412504796077146288238380898153231964245181512317048738039354036172847480940457082564389909671505611074556101265418877326141113235225516235512171144790878936774684382094695034560949696719857679213012969685454187070425819741738827011859700148643309094875745884465985266472083767373677945164215896666697117765108474487807412907697144784705463576870064820848447456986113611193941693621707889695371880159763881282576604771704417111506856991636956157586261115662967695543720055605170593476663589798245067946056658000996418889174553826285485717386959137455582741757276350413559743480879475249764898871172734535917091283336097623189587646906335495414666615614578016848028521324683573109343283883411519410082036457094110453182852093212743539852571181036327303861117006188606349174598534264460264629182878175805644053275239564867315558715897318828896208491307319150575872405231597710407172099925386169016643841389650643966953401338745982697983896782941922709841987746413025964701910503716550185566453901729950430257190826135214432061824007558356449525708145200367270968617131673363205644913492856627356060401877855043557556698436116312843621195010313087692606197480308369423442119104441171631359492319052287117014415242544765692252111396966508528289876487287970580552381282105248373298282490096522343644493518669691272536063488649363305584785318135571884935964662556650204508796925473279714838187252381337793853385992303487466999190565503082697938129744080567726092168484042472271782341501587313197222359212155674640477024867745260810788378728155131117714236636653205603733770239874271175956812172447108690297342183622350250361237616146057776547850736429497057640037874371054853923978150753014891595330701307740647001364153002699921836207022380070086640494686559014053634910614256071282445548091924827736375623117336646088337608896975762615378683046221179122863480397534221338414581551983086385056508651754977531232349392529199077106566083680565566625716175502963328003113965705096862474563464883698562021720527034656271022855223321616589081164330236253521346135574673884048495161021529741188766766734527103449439426825135020266943295447329617456173443522662029264479354512985783409486514199310616293936010864505892186929326423869092928547567866715505100907577370102260823740025719839318662391426009739521314466958828883711336039094371011998441943764769511001070246743489034674539005852553250573308203087220266842153937126638943317375663951741357413097136116732348221504453293709460850077832615935515757922451571429148649203036003598246967271052222544295835237629164579531506703800401825675301400481892030616329379584379625451523670757971925352025531191601074780007084615852704765176694709768557930007217689714292407004056028848888484895640993244239997538632570940346359047978985168567906283078038144858169377467561876493413235402519230944138141620030037865325186470000024077263335206259226796954820811946768013139902438726620872149592228609245002241849943485682448110319011981422845177469738300484833503798524943031959725944060210409748990947818328961557516645753194445537791067632050147905092896703725987419934645476012346930000789280584418679312219475258724425323739301010398865606149887759935251282996938691997217968933777757535501089787973971267397203303503233074800378167594507807521059413705662684382152697409563406876001965773184809514731165302372747230814328227655111565600433117538639306432675899868864940289359294094214910198895492985718893410928283687476556295846334359015373531599192055568274015403922860228003774089366368897017999429875285524744267242640647263187230823561102983987993328455829572048387700822403780452943362821865293297280467170767070785691223202595659072260105052607299010513763320344088787656376057814537753270081786491846415770151639147801508402898885791910721863261821865859252664471430649807463472612580349795992524056227545564201296716543649599941818777717801978976765266603456439963404456959707758982941356594226886489769814432250713790595680368370225134578546901286633302556019252321657901651627796844312458444774104744071852205891720698858363863299343571123379075481796730206793713668463624384641846497562042475845267562521264485347278836747398047329626121290651190803611347850035272965795884004346418838027554501685264022669433634812499042509740168565049241853683134351295750256200916928741566118837750057459140638073629228377131294338011292091841346639289675027326150415131002660495906315507228126235779330869532311462317568443078433593896063162107830389725307382140047911744126010384862080456704128199267966746971097134687867736278110734885891932656671101325306597318593588147755522367688215458215463490441685113069976717325959141662944688120834552114165625293041109057086051659859075248376533813757982826444367580587774890727646539011520642340034377974672005597483242768139205313982593025058502558344221358180837820939487497628504544307033027985187673919281809391161191748421827057427225223380952209699086674987843807169633319865487955703114520254911732470611873547232181105709090216269512604856005385561054255429833367153170387897874828799011804418984387037663029107322691038316740085578578015535222080782002384701254343906364519399434370800005598116466677543728809491890777543900404145499945755319974269471498842044482753696268674393478042858125703332752796732249402776910183995926331593365001177463185573419964077392937675736568821024390682432467133575360105962372479810296528263714197503915844334861170163145197241533328578663557880358383552074135361758070646306695608007090415837419988672037933642453357305606380356223526276349803735432424604355488669212501654729948490149715783968544783262339520248008537732365667985111517884930020607555832975653496231272403480324038896663034917546448676711260946168000598308147853122957397819451939885824082838849700584012894202283639233309022204721080036265365654517617185253302130763305192409873066823462254075376805773442383873993580429912325816025898961439977187273388748636209932972002550110339365830624586562432647856015149989154125183375703454630619845184724805775270600016760249620468282321523707986268527532931003000542955799121718521837013009868104603326673314004196732198193574318811390504138039233511307608349360343271097077831556574681718911499762629964038261478749324027767449742638427428895064483086743554652356656240436577224466973097705957559069755568347176947775554167557880414800372583487200861060898291167686180888613741900510478677367899660468268365034248300408100913338475856020469476069965897468778125123400462164525373876383008303478200381261781972794708880649138329195228813099332292051603950668681291232088642264382746193547109155959720606154937233291786164345290281842139494903210207052397750974149666551279041981848982552518294793583616483307113541343780688800221035674136505296330063507812533133867790292047987726225038966935910495009016651512475928972997603260680322183463905186883194671534443885962890432418445677425719733815127450567644669001174574410920858213011238167851931266974318522725758205094647151210373484512401352393615454192324686890214311659281176739697087269765411435258806787818781509142905432316058440622459997276405832755836272560152863556587954600826833487692047803352292849116735285571861583913992003872637550632150496731445658475423488615970171443146207403412574998426284000756956328111073082291444999042204759067952526397508845045850624039519686165718631665541206668269102923895501885799599409322801707686168021602002116028969185191911001836357369307433267971633907535221616651486070863901129059337445688857445102130068245700577153351553066388804908762205539842044452873293424392012903754145520838262475479504270190394639445373660806614610453485044252858466667562547144107345060406467975401370501181713714109055193549883283231959098102397745881188350203688762783942150391558202677886526547789860907150209719898266667620278085685129021025807838088205794336036235324398140231002921739526360628914678383180243901899575912831645136895294815642906843654414218598865056826680216327501643690965936241689896177227340835406008974630891829996139675115558625753168285209729831306152693445036609628170426747456948733280138351011125568633497305959299738006179047456910279895814481922093318381706243057696503420401023870846712326021400406814652311968202822547693398850782898914584284963841417989690730978451005659701292698588647050045041001539078532387275939585691436166999108696246315545401223212711868067158961717573217250083468533810456779890403543544814687489022204237215685007453837954339755717697790888376690080769191662205289291431697287054280012565831470171459410140686001104122459997851797400487424280899398357002694124592664867490121986603513398062588636951240348737654009088424496991953531574582629586280078318245929711721652799767713211991508229276062004198875153573511395707855049281080969250160458680350349398128679028731959140063719459890559574966211856517435996518902662112876929537567085083637813341689968368148886828345670993057398338683483886741915740217488759744821418659187690291092608690236927871154221280745594695832464312129199933776145615021752267170723433896832894572277567863573659699880187156325966407080507097149948319479383653350197466189318263969756934096931484330832344195522367940456569280240992392189460537261416861501696170961544788854281256758776133252613915346167288412097615073136194323671485520644738226621099383980320534975159563765886965699471274725322280447614461134087826520637957050549061178609724779421164956370463389507133316478793777205036245459148305873618514411686574842430728377318462386318130624540541924999850282597024973636395017483395987889749649282991204657706108880187498961498168151375515991600939970490078768749195372783480990003483570322979120905710861352541486465291338885859201242989085577480855025156721055647135118953042597296410116716830367560841868753994434275241431804723247638470450826482592453128065198395574509102109643163480352697847943417916425272932588228146409622783223864256282354829656716908940027915528755233797639669552078211189438817948503656763386451322054374617642785228039265312932099253941496333384211435311783173860369520870844487145843763896816207344082021272825755240988316232294103325462634113342103614363819903833110703821441095128717929832476617815423741286695545237868600020150407123629819787156216226693036876204143001171914039736584219582027347983019662962239495733766399548782996234108871789880070516427248939320593046947526088208821638319988628623992340076791087679084399784254436543328336229328211566086645320674277585586791683321100577901224599957653550776705877836939665590054216453213883493306686938459394259413641359783843631218592849202977492993032104770260658614639698539863664374132643454327798088078287470888147816618937467235989900836180604893507174694023249176491964042173128145434278816296995345367991920429689777127675542452740791522341477171083317075315967211015665791436066213565478716101901798991287635019785206978723753769433147146445234340122030596657191821067425720478709017472528447993813218266363050555270796740487789680974375431240087288054626945413475247105528418709864357229005474183544222804106515734149351324166465553018420045968439056052813702608557525733863355436121183775061343707316341491363187482410916489622811510659262366657704081417690027423376256984616578376538333046025344535184904880347340569447568787765438703329265241364240748289879265127679227301718649150815791655037209259324616671922260637066138073553202663440834133014525260378823218667729271962911943057687428318768045055040028864912825479001579445171349997626806658350871650133590088854895327806860775338681761717951882204551961324022634914330792174336146802788700877481701472020561352871287069620971256603414142516736857909200181741386050361613652211920262223020874098983293181975348192701900736132782791847725020524294503113558069502707082474924072277456097123953805015156503373965624150911445266312584368128829817990165749213715729009572650852420358941798081002478841783557570011136269782343211664405528418875265252429380725032799343139102607787066175222257392126572959583080311767951371287386737062156726095879070731009530038031108691652962335319236908638561234812642006584856405014814453881464429609282922190674631175388616885688471775798721839898348229787668594758310289145148244364114846139946392638383192874933162393764757803695210108834586875575299916431676321980310739405568628126923811436834377503054723169908794045012359039907048936255623994747481343836933743301811419430772127001405283370345822331649740310443968388855083911452507299476150368693253489524785680140482605487097784011476895648771832788795210519623249918599961424797661553159676633709390525257556879333841662596964878153554049921065645038392386182605782631774752606189664323328048226508999647320176937604197576132833489868046257992128555931137286753459991734703092191419016642729708496789307116460463858500368376056573320041955763263520213251302883540095892687089524778849818849779526418651012830983404703957166514317618080260284050578997172651330091575470270511214637761237271652098678903993913702327605420408762497927893621422686891289475857545662009499641142114214787368238634594910643632779684025910491357911008475750585155759231852356661252092285113043839075455122563958018147959966189141059308855369667340142034060371102801128716727554438154801619788967110468702725592922445395118897667266669587884308001828300839685954798148083921614324890273129755301002198719430758777671561826267465581425837769316802570404387153625378239484599592285913677198236615377283671433645417918284640675362068320607068377934951615322745518822184463261663671580407128035237482139344711369391461561923704927617237220490996440835486372750401956166612705032295850732026658305885910528521765606093381442338475016668433720749700180576783793568815347550928085446044037719600336101951060230278087638064771010323773073022003807098900312671776887999729996798435989408911792104110311188115349327408132022360937453471852897937871819330471904163395938370940490821492952312923156807901374735238693992961005715452483868312610574919382137698579228334404009303204337226954371498004563018448715131511497599928643999703647891569421010108293823193845262368975381087300417539725995149421136847167065905043566716848793707148933143045789625522663178181250312399473907967282414903414622380556419143048699584402263829199398202272550355170029956831658219073742150229216462431537358557544262606385543506766169768561153719871456639285866387933953810188795087332085254309050359461058837786078133624089540766663440893163303574410331742417092053721960828429065698784409216772196946405082854927708852144407400148234784039589330827420673967421343858879333276854997900554027915173678247773812397246026488887470888756069039618200531097495351066592420595797355356258675357260659604281850680383557152771456576624596842458501690597729374564923941462436837832885039479033054179241701737913140681288143587266448098486576012531676431313620782003951053111839993657991003705051764663012622737129518180249050064660867166842251833137702352663211503498379780181416205154242456216633621963189932319161999437740386738584265519017836997105290136920470948505372546079953669626057472150517138023335121142433988076701882931894468698237156240004534196036041230810804266491269862700025252235584615432738967879248542634908624094625682925556504860770820639514218315553892225827442959472913423808583235192367887324882179801947801689020568305215798612208518580314451303749177158512420931436323578209273296565007543649492611684875945749678814567298357595361073286211292667244940193748949219191361906736376816819504844383691985353404719832926604108640127555597403374466895863353168950516888271684115557057468628597606739246780428775002382882884049895210880764926878901521216081674645203377576027424516775123454907122267976621718102734952464690897381653181659634337373839434511697981909667578265575524979814483228213966585633155204312041759610098692881851589110869404812568697816496655077797326614402377378620916570512055038174451125230991965423104114106548430294074263037066657439427467888085698934816940892910181011930392014189026584605053230238016001540342296038988413270330786909432716571762683954108339488154580575180826071221210240119937840832401741403454546307332681071427390942321985610238718403547852724788487432642603171315033245793650500119967318964326282905166244402207626391107935529767270882695037109226314060148261203980069664820800848391496337412869188849652547333068007001120083554860908204689462515159423053932905626342669202931052087147791000111850647348553702949688238278992369960742249363673473274503510871076705930463007168146836095471245229646779959249651050647246707212512227464721704168159087020749046202700554653161287978933287864507426901507196639079678848480512366513349682262018300626598186815506998436827324864882848874189219392401935433297319226784091346820639988977900432644584481986657425754872177209627811523976801220853052423419296230563652672601994497525885993712914091231701093656795741285986721515571062808581462913099551485565581784642414759170107697975601668456175222779926255617788918100617866088126975649276188737398776124219482176785051447002757302490254649110269982360165873633759460034970374224389745773986384840203308055398639387524043480274063506617712822837092193444053585438654681510144886640025871088013323839165959338867010149242281487374844075807635528570706940895128246027777035801732363240987455238637346759709825800917133480791939583510477413659362807969888558631094949375305487037277980311774073836568968295900279619467806793739693036952024605354543167039631606787568113891708009264356075090636745470597134043910190107420707282799871771064978578625401177981953752003664007289467282730285277191632596394612587775120764071059446115647837927088281425745926479778764618963293804041269819487730219384506963624144000687331861556333876366793001933710661685116606701940881369796807833088795729511540297327176390527185032689525438468032925396324900528600751353392497450796271228526063973721019751647939351460770561868879905821455595293147392927883996169168312425846477888695145769504677853107379295848874589830283442012473005977086259042805906434363906579435433481347877249398162943040259012730730560274632298406139119138459413077148846116067836269964230214752389153582626405335065076676734146197560891673092063841465643825329405180391281273061713309281997150415633925144359778772946261142386324774127510168150525091818894764777955679970225324701366539423217286975669845603963581987907212120053094951983870443775545817272612402070243409996055207753067509219371456834251205818229922292263380476824023448048020676965256189762704506233060736933664680911397981799799848757500635201643424812297645663351736800349788786613039176339046012742190156136721311119449003636435234125779411357441001152292304222945865501389643241201931518574724769017686146317778658600965517097416651209889424052684671844613124598186068967570351411268004993369565732398396809866048985899699075883233699571815917875218003419703051150635706312258318631594058842479033933332069666274773807136780222758768113360031728059745553208266655474450831889038515813085998400724612105711601176370380887994535873788337699093436643612178731115764437317937907618037234825263749945310332241120506987137652120915211078996284264626182320217650384154817487661063531781232440193564841814701021716502801352889610802783198412411505934238040082653961887900002087309309308022092529655950605834284451106850769644171399232676674123488812129678535151187187336400342193314245333408343573515825042627257122109507286880803051070536439166559875034213452979933700321082597460440895728334141786107012747022260052160523892368606266971824592139855116909865460721935380323964609753244019174716160350573473992110802697689744826934767939645660260288120809937084913028226598666828987521868110450499919109889987048302672493179250723304345236220500141831486103611126452386513469150441274468762328743652854228664757661862429439366684537678635867087681723693526032393561432589933685661634205895500987799407385446248899975860487656046269943767531214680291881264375221348950254557306231179363881349123036366261583080386861946413323537530517712597865874444409770111731099647996711059142614963974942016203102378824786761143703929331090656412716827831462834925962285069780086225962222330102781227825268225945936604122831604994865358946797195837925749355362112488805386251720761581491317763333789969044515683060133109460191670601671242674941519061143879919816986233032294056873609005794890600954397043983849092858486794433879124596493801047508986250720269498222303629161301796698913792635405979599801983886025833473210070037419662420132782861663973911414441392558209843549201766476484882880751552612387568454331314274872223158077257292069492732016869718609772435667796880366067979255581367390130384708919421950837950286595580381352696462663296338110764169819664582178758334425377423298152325115673484458328000931215288539536235279055307521140374530580348088623901609857965173696983014445814256839197248173021290015941783188911523824905534169453734093396470495320779918149077516337007304639804363449836430917874199468776941177373305255631235179552383476426079375176129677366403691098256324316697773187707058452125921926793903563968606529678734648937808955173036766399164895262096918444839590928082104932775213561711295274214378411131851578610179159385085388588486828577761485717160756870119686321313555834493359826744593501132253013473041810831964908786674646506789296491545498819911197674207417941153141623843298583752774743566474125615313198157766768874521665945849792136727580693098992878784253014002903987408747950884258905156681239163012307606229229823411778904532302953349584636033697473841747853487811630803410457178634494991396374908073715795997410821038061554717151858517687435069046259850005184398183452839301133383322626474596575327412554841437774211771920412547329532055149088144102553835666901228628801753512319924608762098981635634249970266593967127276069063204608630274412757429882575666452053717402079049621269612563107641350595073075555571648956445444572683416919138086246414371579651685112763731130829144873741529195761317751582350218451625964662870656816644874588695789857499306076992246213524201432668804136966756241896486886502922910459284790501684290989754400980327637587040459815780758023460073750535933244746043684795554108525886760289285182343626811288837205980841543323601076986396386248587426127702702545654766484881169458997406380513670338813097037689502219014657212269788929811576421793703291103911955486166150149420696435162643251115395487505323567492331611549248689846866012721041215622311359869123847007753901707446250055392288062299570813625013311492310866010079878611642477626554321014091565926598859473910192146284589047832004370414007364687232294203235329274890706260169936752577215274292418405449304851738820648932477438202213275097116317736413243397593252290968783599434692209359709349617224647666966509314354379337455713633589588132810274871187567786761811878619496229846664302984243219547035912240134889038852899395441298300536038063511197820354674816236595175082893206407504369559556867147360023519734238687132766484905437354202971248194291787165926313655777889912743209916591276354384213231258913496148249951370441002493050485574813546107782533832620040796603475482243709226599203557265438472997444816619796405235650817734237763803345240748390355455448837998640467238553945708074223234152926419540871707534470725150529435663120682488307134355751971179252071001217927492583829513256138376152418744108172354091161692147183607673902480239493276502666069535168790828810754859468582560868355382934416504493853414702430842678387478451183401965901557594556791242318337131682222449101833067678942839420595510244149393799739632985435078538146433971851392770159743358201787233745134809604601132763533327408887197333589899646888492930697669222421024302326433209219304739582259233053049579187947667790497654633228171435768199101497401904272281231793113149564926028510268325254482185583818741865834139943290051277571783494047749459037665943300733177044877122506218828065772878039460976451439280692849096142699789283150536079416465715874763454797902868092112015609294188835195139511367791163402346490380060787681982546499880835088172528411978061882732369659503856712582266548515126117056979845163219545963347499759222550681953871787379138347288795075759127691048564147743495899389157520407526508901837605288232152518671805941469736994725644379968717998830364066096586843486596327385867118041659298267030565859399122971426889202433395372660017751180444312374755338935069423221231489324183367214357534003591829820530521801380021302386726014955878165446179694331020957034737016213168979489919589613061364369556738820410878754866737109286046920708923926614693504662404292347558916274494579945287011518480676626478699936659213754140442283104905816263095532303948761120369900485770083452251692691216707361835339709971896734840777686047454011187846456128489543218376726394842637019324849766362405369795455728071509408732845255273642505804705528873925771754390747141561134905547550402955517741853605184275223730919059368224669282658018825900102178734464816455288265669711222129136445012693365562352063504796081052485013934934164528833429899045684750792632418983411842786353185852416579866296625522400696514715092702399784438425118990396849439332742276881872295028093603641440230300262110038568258004815181729676252020411731847915070545299164144045058763937042018074968398410174257046846993877365784521878056463566378236223610718137247882722235720417067215668389589802054697878775896023944772311590964001169718122896526677608993254184982679281901316459633223396024676294532342395125218925901261827687474185926742367132548236862754201524319050360150347741110826301074968767115998456758628795962681065261161271766402948308170185665567858183624034403194406949791212889578441298967019474445751706355665040445782724054963166449298922667337584293955837239097001055532980951022728505098954230965750490918406903768735888695984414086276614787231111982543060025018079141847553406648555209389433964164706979869418966818424916959111221858935045768383090118852369745306378465427378102543073311357578217048523406056622270631889087220147774080704921917071513318072416406079352197978516805120713821290287520724814312456936642801430679282014754159369727425432650091464611539890248827568656234491955895022477494510985585590665667595068395419591161734878298422506133702309802632664418920118855910538289009583181599767063167650680579686016082974606960515753129620230350002093491914188054657605972297832268602068605547406303213609038011304181271935885621672034334951360861750629677346284900804506470401948305336444892711408991922165855526454903701681541151097198664937993881081156125979010760777337916014877015404512481287190562576280943975571383901285848834999949297558699961826807421796045590443332385525705029257597174966013275759468646485038267743318477835397742234260263519460096387167817895407625267347314899742803420967824601924983956033295344472637153797490589690843911486904772156748577435534660798908968805276094185702848363278567583760160616891381330689946465631182617621471241384660620467535102424961984767885667801632972562967648507010808723188270781590733360797837839422960322387422576166121576240014778127807287496417288459929648601052189683328977015681349254406170054406640988017093143304316522562272545862352899457300415102054394225217733802540203964189666687192726430345716485515648244777286848935630742315379269758003278032264076719765259614284823742317776566842396796149485043734238775684263071830826347828103367320041637866122952522513799139116550800932794236952848723670656664330985049101503560280330619126123077552919506455199159151780804410627767466869257748281667035485905930958478527833045321687182615152570352362820927267919045899838496456578880691886066731635134327591351005909817531407294725099335526398625510664305283215733928060633125191123105240731200622345512140809810428205398572299268460508496714737816500460347954586976861357310702079929676547047462185697353651912738304071528926502972741163271160887615757668807435901109829680364075816724658601382783021968880804608578006329975124141425703441971477681720321878955055340499691896842633304779422271796954832554937095160307804999249651327602030954066924064626543870057521015640132035519816805888594309445452073323610211168667902344714048695930225243260948347710135258837819170342208935624930488618641928385920906209803998499485198889873596581305277778526080664362434568759133640377537132565601638887053709384287386397097843216038126374941301884540801668473039354826093227780386103351523902230562780170733319681029877105710432341605783904591998642251231685411017963285102361080487563552416845018851712863740998336005508633876460377158457548772156776662826464965495397243383520321493380861408030414327031195781414488758481242804862305304628678750042134676558196700296371944629443874684166838394819487911985783386744045687875404291165807392553509902127986102677346851423868320166366046268118475219111738804467909281724751879105753555129169826777957559833771003816870984622392131165230282140484414519646957249543403382723034417192870632101943328089661873008318089026342653553615468535333475891188266680061470531731056037723466675752312464970776229477318571887558523853802160448757436172835972171593870814975026300737864662242967014598124631430004380863324010340671243650559870633795808851617885814119917674226939914091155224432676063297917281819003538362387330625171763329943594905895055989849131694677516920239523297792444548445191034999583251669926530275357348847142090678912610282567003397480453539701901390423207410796764861039805797702265438864530043143234381096864318563480271660847325452923770492652433786951773017448468035992947227645684529276917349392001172209276717092835175410593016837108791183688692256310545897550336742020467572740299978085386624119044468446799222306103218565274942023335722201729739573671168086366226558189243328566604845404884831148368987872133560567227174773010400748103255895639533252148466209441357040130615196957365795996724620201878814621606542176376387214268350749605304880424029238143823997403552801232219588999655048383606527068147594050811013897030763763349931772099550336691761967344920407993962306378682235298645192778873997671695827674918702305751409082299203582691520631019646435671087135850761237292964388642653344970992859302602231862912988469269896953256188699672805363607661633785461333657145811960775562511181275439669067055236696477788873364241816950217535628657543042977295554655192890810544997732069389204632933728707092697165892351818297504531291269373687532740796346108880213959403116255205555601948795117337224976499457585168503839918662077413040309741241914816397170655379329147673544722985140192010511260470167349031618586767310997233325236388336652978100089616534190248686559172471839598301368101620600142935801640121869320488987439386861166190421462585584632968340728678386949665712415590309296845338491595017933613901854601907318302631723991645961765527465953932275561401829399179014340585462344093794353110142045033881384250434434465618605661504351475432087791203818222052299301497974408705522766435770365377797363660259203193565128798599502762958011946626645529243526293468654842651729132223689632650673682103653001621628946687241662342936172455133433848442688082245891227519963754961124937140021497339575284049416660783618538580940081600523934113509677438350254359867706855477318518762212585187681501281251360393340007681470616984884437188178094374628060280143621541743491931712499200179246661363610132086822737597933933021295999783227257129255893472082554240861550974293096809550142455853783418429674519146551728634649276605002318999586066504878202292788656458977750677893081704777093025868956878502378004116427787737917641867592578657053531881458941288783962351505797876104545965966077493080143296667601233706828395523527395994479348352503649922624990857320882342466958570015546446170145812673422291285879812045111749922294792424684696667886198669637551633514924503037049331852145195679839551366352104222190482583378380538855146070587023562635510581342968377725504647988063097395923394388495996540913958867004508842827588794095387581634404652330753649620787377720146043476301001662476187969435668776047516545725664681451776023796908927531978913162167573617354413922343536357037655752940204541372258715399973953637850207009642214971284261476955901564767950853484133770973088808161999945224750267734819623183799339924512248854902694657087554914843810088615559038163936681455987522147006057301178457734131677878537061778772326923680414538690149700608334423191799712639099462262726066462940775826672403157592780696068438554982952798600215875991257616777426434247777732649759064538755227195760503581863790258618472116415363459293581596588964097773961721891417778210603851958774991984248802316321195750577949741756868437149527685342700002742481673471021352569050995836582780148458258474070421202687876142977461598028165063406089770494788441262386188001210430182800879282192698859114937209893946437708839953627760653706100825380808203796358106708256776757064671794217314358407771927939044306003741792922417720554162992776449534897556442809762119068358004026327354907582969388149741396929469364114335563892874090580393612625306287402583050558562998013318978009719619389941704847699649723037863091053983052021313734544812436736101363178847132328765590407780504836646119000561435305894824842485126957334335010508049628700982192520342180685129340048132400931023975281738531423506756094232216919485918451832030190521156392116200473927852729999040387708584603575249011761886620334360406658275844021868047266053763908270168443333958357842059612040468557207063427264599312490928707969821160370592049691468500584227809817078951113578970571096807452665492275795962277507739861147347075553827299044878380610675077691288460691763153185816359303188126635085507951988585427753121998481721515658778532827622223582972103027999340201969644006357018082986594197295615864698673123077532978478884039848019852583455285405759291337938103701342499288475494702565717273443219323023981780701126185341967904456092333199590231441673330589586751656771250820838087327181674211397569811042248502777101124949993704059374005739462845004377000754021079948733937259127756657334540307390485855781402436760157232126728817319234938656190458881638644264380642570121508732151871896421157394029408039975605079433311085683233022545335178520162963094284886734638442217250427430412363004494153991885449728840295006577219930798269364800198020643493416920511294767882124855006882228865170913042828257334683005271378979472884180339793126645395326510180102889438914298936674532384139472252786970873190263376891607999191820027538876050330496561362489965635486261881828202911966775495615399074686470300115576103077081689698500985384913401394527429463260302009652313579196302623027246592695230284170307100146779162975049256274531703131733445911513500528524676755318985493423401956250105035765716312729962045954585768536291498365566908084031850719630703638228268293398992882649273460316141491153618945652736703126525637023081114925035007857049293679125784436559764303128486785238968985376473682167170492222810433915483834499031217930040959916340063530038668955654697375814143068019933996902117545222070816880767044043282063572423360869134439166163623759656439010030121135779108776769252799290922052833705362635208459875941129661314448317577809614545815936189626624420897622807394249686797686435374633760676877674602132166443022595671642815956145377063462413974269323456761289966825093225642465605880620275886887522477926675990960869886898224139013121532837135511067445506348276518611021995932233135615718902193760261171401338004140622592575765828783130290093318674644255238346836099223102091830050676586886086204499113300829283598337402264739696210628811937066554357283567130496232225843713924391069004567202891184944664902390943486565934046445402368964543954735105986280674514133003477124306849554909139828337052451964206942571043416226770992422130956609830099364301320305461228127969202694734326613880049530535405892864571860263655788947066616002033711257712359281437177383894286230596184881128668445988188094694025243361311717296920284550694970913044701454131519783755302050208838175864333707571322999384481381204403072440460906518225387296705625253563076718936566090193508926366141570077982642992453295901191342918919812834284056021749234741748786086239114392942953487008080071856748004604950494305059709759712693821348272397599335994568008517870380707879672325722872725426152054536092605059056785092950822447664794109089417654440008563775906680718424459825110274536401675936003147692978030804710988954424530654751849926909322937936882334258982406257087059749638783675139699542754252162252208576395252261895075304644267958119817417162300764622649620715378984802606703685852806039716758904554227303307647568871412694608658969940432023074533494708335846796518956410853080509769165491041115087872482652313456201620840360071001271631387840725001045770040510177097819689133781982763610860565012469409396960481565285054929033879021706364318409503027910943852881215425058669965491598911621665786620892584456335699553716924261779304796671547095128965112465721388888510690312885486755334052757815379996073685917588391189633669484901984469538169526729960643374829177345736460879648071761702956021220314631425420647555667218157802223514721571893791793531517260399130019961783304106591952604580623106801814684332663219480250289708985890730124181802251538531627361267034275091984215183078345082337812170302226112813147820088897955097669974355821982811777571940327708220754035618287154776913713776014058978445058886066460884230128930708785918673225858942182910599971677401647548528285010192441076519530832977186773272562471898666635957202469019466918033291050362485691874150042429129520351862526652959941641138260988691347437496577194424016430333525207685668666015229210822733220517262925225392967095454390156678918974742577490028053065112967032043907425109953349521876313474202625765895063454597583294489277991915108021338607978728109505782134461984839647552564881803052405962601099875506698204901665253153345983428346936086471317702260587697647756338384301841529533207179872934714620849850126359551940121446363876569900492698810105348773579838841031797268085384281208325787911757888963090986790689452247170203289031251719601028025480812931308820847938791541174551961497536184283443329086320474740042900915949966852749549789834038740515891652054638592040324503886364601564126758877176525799458983836233706664048661829523769172583421468690696590769816439155385613724282271583865931972707475120759516619901252151157835700704027894786183096747956918599533080324059429641607059501297171265988807549711746525160834592044561084596559285565077482391503618409531254999751440538013570233926867206051867310218216171288251129609036247783199663983005733332933783521420966254014700822828370245368384466669204987621557398342128000314170673075740998740691662548890231820181886969885875908853837350694160586782005798651659361739716751627339803588302452220708387519699521988542454997061904350285373691968106089577489677296099183436781918478859388062061077514728718426270454285655632740776641954387289705213294633616178269976694069241044762642971821546168491078114224092484074183338750968389335607017518713845587211617337387750931316604608605405125602091337766472328289923302487799944977755641211716547169346942540151719710136271309934934041891144065225161729756062542730685928361144192022354450241353197318172532076985829103809863373386193879616281132501446923864604629871390248155410858297111762189711899087819122403279603365355675022685044326633389427603890745676987826442947856593117083671954266030000336967042386584266855769385264377487396241239367212757374972460781928355442525733206767335856260277504260872219102303670417179375268397559825022189110538740731034216390994331536650039646467870592494420972057821543083100150074748243574129319369709248258416241270636044743727146815065874544976253237191933815497012957085765745420350687906515878874443347952496482260622190908573614379655030946131892380886975472994491059908089392012468415004165506508695531251624126505513538946068368455494741337138948927755189166484335376075529902656603850857376652453847152341825788354280261703545917003778731824643692624010208589971164018019611217224579563539872421309226209950457579806375541539564954020596462773579973209312456435988316038258625152737096805902223208575241758834891610910920957621071619082441342510525910959069067651793950409611532787944418093164493488058290948869097184359240808808469897861519905774851027620309889293431195994092971076887479232161829563162224023073141862167531643579372554097907072761764463501169723861036920376704675548721008349368300947391125518527594930336996196842859325750980689195843858930601828206903136713757364110516918112833547449443083470204033483501332407558959548844075213352617156491474868721563275880739454091197415778792189728453442929943585472971237533093274230664181719026763140447246884983876313333887257383948816669414719653978116915700838401806508594075149439193353147402580830245691528909590834683091290719000530831669687554786500880221221216824652522278071549891201059053294306502098031844696804518419563380022156579348451706739520563470141311973135716667670297577820770976145572663376669148028032890541698588374749887324883077609972821395101200953874156063158282232966483792819673306183321455637455746234630709710778949305064453411352551517012217555804672536643770227548811671023105970069852716469697851860432730042567614076266905577848449045475483924589000152474234252847789052507251119475952898158219198419806603114221801027804221033755055609923434403188931084817773979341510991945933482481635634147416040828844495900463515519639372405912127809403460340570188153331016265098734885941862643179516902206095539097018795877335727640865598569086466148659459958762682585842861356858191698265876578256753089628608805433377427470453206837261552968069890786126650483982566798475537246525697521399845588524432347390861729394468701371202593660847741484411583724811526136413193664721979812603018197983510505313326573396353306001888472254320340273309298705258371572923361452760971486154740625117798125271695420844435208054154509608820874521595337340795583840851993563119169253315849257285333089236264527454491128294427620335345645274473401455176976295527018300724677449430721052717648137841816658657684653224204431130267148032047096580849190553878994349707278801863423005188333847182163987656172644063754462038385013612405696393531316991471166802115885520171427143058385322831972006855617484069375948892302079876204198877005515024918637617460581434587671047780862506775301189917877312463970118061796218258025339362082564274345122845180243274631370353652536821774382528539955818852815973934574605276457211964015832015584720489247991642019769054479464397855719553462932214998138075085200602471432620726413251765909885131409639955781970729900676106933098882602599166179030351571417417383389604347706435880299874934998222504803962125773184036631651812142456244147062517461932329084758293712453227133159568368794355345060017436959750321935233581732427484845958451296362572656787650008064454794795101237764905825341585331582145777971866435834496389188592282580072237401381341100418845997393950559845027190682465396040021997473652399349846340483978879507353447411239326267822356527691824837670328055745564371321411247644715991639645542284843046291571496056701515760401044040560815466119898159787188080885382894334693183416799751226347867843927149342610027027294336277200759481252563191958591734528112029256554857163639354439143601966137137341019805419297765399394264656620304776067831924679138795564811790190375541130925126931490941789104974313289035204609756450682959358891732351750148562949486124015525903162496890590184192299627393314762080918644981671031025056934722308027255379826539286995532028842763921967361091887407824059489587583936409419619275674825335721690496533532316423124735607002327592736545699496076919713155316608954036396484630873160690828045371721019103831516141632113551799471555094837358772435465740411723857699661455079172684046442728869795439281923756586508691999491570358648028288566591583493692227080119252927194176494999446670932779969053831733557830390641660123953070921086725987492043572213282404989824327726963007359123121288647683587332961054622492313595494447315017202790601873584804711834350690076338319288935058144556969676300318427858271693014255830859634918885258519740003958942196071579162697950057656502326103596383167717771294105444457486168227416247370951949073856052758696612634458823538643712528145975035103268572214112449995940813974393107191968925643797192005827995793851909681212429914129185408763096186115904548653616008573142042354390532394586544966622816144672150404597882946322670855830783948638517140020648787436231516095413669613460278987405324531283895111954793462032584046514091525896246451607490532425911628238964399276031018416155241570314149002355541537244720112675215976428462642210903107246322166075172078232659842935963470224788782780126070506778685030420929170252495640752194334006228839342875889216898485571895405926871565433032260551879266702989566116873707701640420448516279577596379375698263130587916308736301060500334881997244078039600903109814216079787932733585486291877693736286217508384377801921748507765498904086828091809878677935470843824266707526604072481701432689022252194665869734099227768561841040118027207865482184484667556317448102257226502901872639964086837212874013773268930296009922137334947790870260842327879404896872858514989792977733585838475454711855117201596542514734893043990526673496031943469316728540964723816091804363620307221868637742376518581206754345277193243486402697653595356118330233488887920707005939726189536919982984783008444023329400469640928934808460651379645841117719265133977777413027555725932772457194256477101355973205687669683863094112907151569991080484306605249857133690556605856717145878856017931304726119040662348135194961972568001316438638649773719773598670727192137233960252105346682035340314670774665458367338672153813933064621662591420803321906515086040861381258696686350150739481038435048526327852887901767596430434138576644329409643986268924692791231294042667466072680031857604568795481446023811270853171279203750051428910731543310265876186993576472300457584102422234272763691252437517376467834809865772757273471605452748513804732399752455333828595815003131238253527530254772242475293980979016879421932189013426133370195714656118365446608201607757249301399674170329993089954379468113104261689435578071127842714152172795250779645073158734067878192973919672513762535619828090682122922907671816437101391842722457479688125380297178226253827562930896754941077110934737166867990275334007575563776427577979541067776949470050666723677521688787965620834789324532644074182097263066329171965447610819832012206393396369943873330528675178632345522005184625017089589150253466068232512898134385525375435475264024235139337052321284430472534017544491801182617140132145818285347093847588982885444917019744136189553740916806661898417045407820292945227646113654804788334779306838524846305167449786498924549205070126576877815729799375433426809739119087022615444002072184582612918724285100058512574923308990876899071723469581668555295509111461990640992981654614126428728257599464991437481394221677825998361910867384971410706027103725490007926889518558077773475479441830984503609860722918207554603263598435925070610727754053078977674012504219970320462192143791042763723381871427362048543201613647488509047117810699579474829942006961391218482594600524877906098159848659873346531243339822176417462880112587622847655491730563488351638866239542571324109786587294445610350510946167767733371749854671440769236301482974237721646504610335948837151345488712930941530645652897996989348763331298640044584585572602586242998805754172746390470493101190730537882205743061846559272709181431984718443317808739409096505265462403735872978355507456944731458393317211809947262031285355703772648044946576874369557063322185179747864924617290845212221611108276314678851384323260430038653682201834662236278414412007901192644113302608583875938882808874081843977730020275044711073787983887974358826114207115183066734163225633005084110620247626649370104687453219218072248224708195535120142844897719146705998074204905100171333209937505024073038382983465009424478896110874715211464206961395343050786915495417289938974132622881045058268610268794442566402102044284650209849322772980924669642683235723318369832903838782286539883152937857871401146302209861885644747795176613913797813433970849164514794949580520672335934880960933416098914047448964775282899641805783874897288787697172182522511653600532180126979951809092770714240833482009258053884879888407063412687263309255617011628426605049433976909099783868436489934613694964542766240001795518154510406705176529104410976789886233791743736258417010965435978257970112158278038141499963590981828617889608005513617419908670697446852579802225207609711591306837909987690225227859016556613071642295762838964886233596158198096773832017135393379348615103288581407050603699404100471438787382796474709214556882811634191445166444850949096437125284503368080110786406405664591528615063125997038750581036950106402166669538673902983100499723656950350297148919568202415201402181197456274612953177615374636035133313789343895213420139508034890161597018082615866894577480748856145443759260510361631290057744884215940118064481124822835094633607540225019799318449565708491597345545332889908314566585338216553151209135592119615536238549657158212155334316347689005245878564669731339641886283899592284397360539352630820191421627925273676521123427156519251367908406942393266474760765659729757954847409570262824192692498001032946437592579016394268735716781971789312028951214866361520820304170464715747111463179244040307614904603124826502028157404648875391998002668341075914966439858440836950786621051008818942406017396424807182496079061664978784582800234391215181951456639966022199452040806720528915515708457733259098950224976770213389602468562351064901854031653773072235667303837749661432338399234698345561537470504653606323890588134623979256433024546423283691471009883225725987157159970954816015797409414146815582526843511196543680746183434373730372526036182924135334162224921677268874426370956704483227955704808008296614887016744735231673056994946059473662028990710260660605201408442301166386178509241391575530412516827512991473244147261349700192791691162309020045196153510891260537271608110910683069830442699206133882601198931281193981007625164508098779198723551996361114181723358542563605148268926925227423647661420192319259993294525982797381983931824818087184939929441657242833388248675640512257291659042139991886511188830536246421415354122016374261481841396170046295966713254411705928360262466132540555921752010849038102398429126026271780222957219503663561012038314575508831044744180066698223283506576630123753989193032393571100114817628504603679946300857933284032984911566526275855367269270219945799473872174087566426889672683822864340389247405256596179154752157837085316337132982107444131815070423598290013149184095560212384002674487200267126146953980676825844977763900408725280853671833674570865834783546878480180580366845111678430462271928664559651913170088310323095988554009929688786559574141069277235552417092820870509428697942406888734238455803037133524145252063734513482186579749563454659933400206304678636736200697789168096469280759978419912282785468508335327421745041566397754919523230437281106638375089367507170771063518098199236456869807972450522953585901448073108966693983219054071576629660015744499965429947724689844650323394719059272727206966330999691162615155601717179410804084223270850812141067115023345314406793050660920892811531682427333825867947507616079707049535771664146862538313545033819310277672173593343793709557512086758198696008445093343333421802072862738113377022675652364500944949831007834840487057815550719257507185045077648073957766946119257186262357290872108365525157288328314049744254209052750771337560754192983965285730528922615972181333538351833587721398976488886305524805857807573519504599428132310659893646397973142695052133105220388485390507772863207282661214193073097743796693649615764958639975994162673736902768173720769850243581835753884959202364354406744070513336447738508238924737519375962253360821986048304271519307904814183357891513627746722120378820778016904355081365328629773635836978531590718373841550262480928213772165088991656537756417098935295867756227969998135090014608800503974736773156215022913546145473862562662334407662320734747273662012584232046533284279341431115172668010112917726602364321947520350779840421324635013114463912223930685890909423202818768806677239907061031730810376182733804146251613100405419032965012263666717917396315147467690022379510392754858616094037363069252922199634833891970974290060493796002266666762859996279033064236078358879602908687746023823796207703727906785005426957133087077179788945726862143628288664670892350249541708883721063607840742075257033749347832704410011799102556023195776124423242626241004048176822356838467970607440518172879947536127847732942668095912826280777520588247592450008811198952972572258909301460833499429242449113546109007979885243729813895665256129407188008649059154490476827056315635062664909437276278667684891903712804529337240451246106886692562970629462921533495728274604259143652612773513422244542725093555896994285259259661384443916183574553097645411519880768014611677912970425673101258657020425036802046531942583321383906870366838289472946461421971954229363381597889225019538475413335478078729293019538690273376863068932281373073550442126312159257281754973692955244402982154567339370108324263941462538946910986672603973541800857868963709504145362835741273038956648587923410267565487282980477153295593825230950467138714005504336980958794193835127436674413881076598201122474214614976862493736355388859506846561694933963201819229928825229453645078797253964469228043716805085137768807050737106469402453497085071578567138877543546156287609973775967019272227624615087538957810478777199498705512119453605273201739304301066848415434352515022544832925654371741656478334942138234750455249680445494379923782326224871783938688780312791806367517839446103399510055297160302764375103958790997702073417502363194194856906165654380065339950297129662497314932863589518868594994515618949956207284352083658617135476534263629085785716780318128336000416545369082578617313644708673128402665972194226536124573397088648546294838225059839306555971528433224411113735340128597306164978960441973547258296311265886103901497379804341273171606464599114532337695153646403877082764104653839612689579904532695374765238472770268681954104930809176411887802852104932254022687095607846656671415590038452098706594741632580819009463403224448528154622610634261300105934972445169903667984556923009577291101026311828660279689325754428539443103851643374641758091841248383833199302470478102760514642277090035306492807748515216246623582425886342625822000340372075715992611573965461027310103597512058817835380387883002071893059594516579020199434287607195292749358057337257693467613875409755138885211004791301586998863919051109065768159489124018135077076310710900189523747895189380577850317906116204518510760953838139216581297890431527285479203413269057783619431090843979852318328705120831119119281145714635414749525399603883226648418567270737414810808245328120767320580813508289522131243690223002549110933284754576131807207138921591827403421053125115071968519944844874451056301850037118944838520888026778758628305864542997264161346649531931321069120810511663905458100287299998064822296790727775724113694945919150111610637437922165265479171213567239523090599928759207752016265754154149895260299157104467877124123128268696287052191692729107938201709100656014685488579505766480822578417610613456837589546559111474383368635679251481264846196313576083895999903161253766140214956787591240540614675894693525322699935345785946981441054257323177334270410948245355466510231118210591897587351199039672892028733040761501486250161506428763007374807626613704893603318230454866874637706495794851047508658903001498784619046563355996531842608413082671205046249625297736577653238839903718729043273984005047286356407607079475202563692314761997148961995364266314358606001041399199207213070496698481707577788887157542551114084271526956643165726177908602890501300416714248569111372567496194204006497708942735131672150906783110790739434776245657283983899802705221857489955893754535892160732586319779654097744752529804906061459970687998267596422922470712985545916672955018986499751150477640757679518215606290704488356506218473490081762167236696475949872197021783118837431984085813286709459594493574850963273510481113273323951091127515216203816882875426181319040669034165612985363030067801440050550476921888315602597175177317627230632588786326853113434260815756487629754114359333353787749070958429591373581294522760861832238429086249618124639575515743977579619854055081745532572845376862096935797382737341297676906481223176245300939917251381275994437489082726605787520849928661858118858495760140665313658512664230018035917043902485813783504173014216504513396470946779717061844447918773564420998416178688157282413931305773742038548536923785023219147560608367721389035968728853166149406187764138684846780427797643562533817078162924330373508346138224192546872547790604543638911494997737861600404619564751133687639366685670059005647252769180189654114783081664197131234931297879228417675673956457428999910192135729860459190843223275134944851826618284912936297146132047499704681240094429504810999922363746293818261642669358168937057788799941397508909840649615829267022882953257692672032756761448084115925313302598617392043663710570482103373008143379894646515430837081294203150553384467003964746501920387852251036607807822800145337586852709779528301742961664580638007072911220245895140401829974059213446794412632693408018759688724053808289777242113313887193170522392459750295456579772645292764713605119889343410237199485926155433326160414765856688010246567581426320208391097014400231225043893829788089455804761477767428550894554728144089317822446542293245360420548398501630592233842800336180729319612251693630748731698976552351067487169920396317476063771588847462700178195830455962761477105812406287363876854467952689740015862080475972143539096246466467249349973265303662143114025185437438549024637207591995180255189766255117806548565102857622067222362150806762556509246447040540567109230901740197645832450133873513828155569045659554343989121953834671744634439914543856542595743451498974733710266594822360825779129769786430380754393151542506509804788744310349073334485928903245211092903206894078483323970989760766650837533544874327227069311114966294317851927420278793162714900954009191716983608553499649881089283776432592432609238020455713172391108283820669426505281268262176188662494727605873017653585458368730606247328480680117615238706084207552615111873473586463209715762592044430732277150163600695530075610950565161624946467837239322386541011690300000770242924922904672078922764526486567846027710758022149496364864258495292501075184001764738521993958302450437323695151271439883032162990557243556331801583433277905021926646939706486436728567226149984113445837332146187656689946081651221295835150213889586793711096320225135727264450753115762476747391111384403780143524835671392898391331950507191876441931773145273804152674844208827466812219909193742499638899580454573170934726845610714878438706979914733194284369255612753227117563402166131520136735478030702595652924932256063865078354864727200734668143243785173774918525324527216997918142462956791310655289893833847531672790082499608702064184018495336089900889482802944127829552346581224734176584603222999136560614625098525623176675632987458678694431012123433033917116802799804207987661972590270299869793489221395844991889892315338397799199878384434759034626125590535003656503647266559850674801947809345537438619205277267566354983722159495222621956016128060198758487396225709762934089942891630352129653198102621870252003519308816388957659163196594846886801542854196887741846223949704068102368992496527530235720636176401252894784516884302969390343606919432631535425323324029397670400940198542301723432435438466445888221860066903811450501115463310079165264493037833207411070522931368690171681880745900954843894698264601769722057488845349565712743518896311604494654999915919658305148174203341549382783111303721870763557640979880785087002368190725025040238561005440047339368462830431785777510983360963832069920720090615652851981537423385876434146359431914763672441419256929165386920405351517461090118985901686366152786243847854107720160786475896222384959436300848437994404825949088922462663816424312929397942545217346426258601268703720961931560331099976258026710243816612416116745368190253888285453990820605533580909668113552739485869263185210139587205139093938288936025707435640527028330100143533488011815562056333207653583639621228035431094127100217258758141081634743835251867942773480113244381083592692696423617325237349478985263242376699943327009879398173781823508785926577698423597704561013424490625340541348555436275854281409128367797900758889328657480786227965685070277725091513626102372517261701498431579099512003954884631799306326663897656093456455022574902809480101875430099613914062590044635876526850682455704420825668966284740606788179354369904580586442636567926902832969547380154923018537618782775190448362224329412769458750835937310160128184117567694719434740112697548710137516962514636116962677885553163981999776491068094186037068708464733912187960081347896380420891592411133737011518563165642284676753457297942339088411108611245362565730586095077231088448121095594440458938761754261694553621541875173428343162110352296791379588158175435607096594366848043301509565990011672426170201556638468725208687218801121158162155957330077100319676443418153437854149803400612791710296056006619975712458379387455953151234420891122993632307735500683084391955642756800109954324629589845915457473749627621619335387164770948571944152985642083101463433423802258341055330559965036654429877836282109345044759570363051898883104786997728414070838160723897806710386890350732224819220693659399298380159119554772771410162298210364432078453808655888632433344078834433089216645077367299715643867658293633183553285699999531213568848192275405287233917259929556879549793016798880076732970862334723233563531678562404442124653511293424863041286755831018559349158000163047982165937635408042732578123422554555665059757505847003910467795038314297176829225077381621673900012280077602106076524516224954602819981870000748917381992862732893786418989933976755284372620803888476448383569030975616843292045670563682467328060243489670286012676471916905256031222615034415070952344603520105873196820785026165260754330059610426803556065784160906327777335530338461977049312442284092230400574940347013293360477437987733822685142561251392225141669602803443437153102063139590762999998556813046783104726315511430539132051313190759178217632157062316670855923908507476590116752168906455495032877105224961804966775879294594247451491414281720716246436585485671737353690999706908898332848226433890489415751193860395610871570430668472896725559854194422853414381448157309211162688980301575018060984157327987544217013307913776804705227271043076189774085687243081423077070458368520291902606986245094370463016627604814564992773710261673083646543169661603656380912619745104878870092426675050462310827145406770211209767178838629043427486135181803045543317996230081639204605174034224232035240220985361802619446249033502068876834643307238305433313644902132185592601100359774914802224572701306019827141979763392190058071963285067952536163528688443168811543716768837829821767872774528062643810790758720039931615315772980477471249990369307909009697125517486529632179262920816604024404304311753913177940241072317475119661963497490723517212438167389335581993639235059018092776928249306226489607594850834097121713568940319860002726870132960912789694144764077176469609544436832379471554567519707580271083989930690916173679180362582226064672223233162501380121430843209730653020569596231835774340614825436369000218973529534313621955461110643627108409002596786324032600413065469995022352655264504424509944986176001902423633593996675494388005725391063792757449518357408739932756971034963681629885843573460578545910196773672790566774739524264780749066000924914955780526714477079703270025033827113328690643918063585038925911338105696634657415282480886664686361299495727156428700030348573140692172285184388124632667796057862174532427897402058067201723698952315143734400708938442216859825393750937585626588409713663534067551482707350657980380081892885819489589069229722036180151757805976021978647739059020337428306509843515239573589893043087432732457529280213902243224150573357859720056698612056113342984178158050129672822722091341174155771647483182940604792449000042073975715618667038633778136018547336473054098880913836632759051701417711412965848536816055802402676182994835448583774531157769102688006521355336619333296487147023775820624042001076650501624072750619638576072238840574328740730139914323551758559593158527511064536657054007468307098518988324627731607956961331443131344575202226259223146246592977481168189136843799768932020519968543470430312023704541764350543736842014578696642402505983426738760281371119128941639578106235279921801081131647016329597392419594035443414167688734228715080670293796828169634138306736863947988505677667604554100508093882297156128666136574553557874297151808710466965103940267419779139989535586300854668567153216941353821048788509136946731956986743935159209775898716233342616246128627293753133675712377319509854581327812346053888368682264934562825035463056670908609286858033428593924976912389724029183881757564559058765349523424562440873037321810310093080384504902943778800879046516931925478076289913595572689120549936181846483849198335977683065231620238292957755646689933821424802829814300753490656766721895017688034210160254486331625072261827379047735313545901742444387850789629010235379465385983592553277841069014687920758305258353201325717274481119067226695391223288894116604605458187836167755732815990150897782575308534554354744959022707567182813869391402612763689066048047934535467145480498494171803985065667807756927844480637493518770994142070895972093284283452716133286729847263927110693622690648269725324966519717632662634569764678079542559788454964678098985442964163073215016678245891444869209211948528199827419089545779348460684402502892994791569885337207656291121497156379858976801403214542307845198979885591675012089357613334473957016202453864073954948078730418193282164527131592253961693529927334271261662907678649126144908869987205638236696945491250130971431162353058608602644449815728437783312794945850616384663438814673950462937687776904233323296687735458147412044183946919083538972009333335709818280256892977160969765332054568781706045102283256401860057091162306356351871975678160462502772052835569861337327023321424692264744979612616044861887550873822967962547099852643008576110147425508120602436839648834068695985735460297105448318487721221945431276507276607002142843251609111685012092933648011151515846751360403138897667968048469951764169910926930318705437393663569719155178266257422086674370368319271473311447520704312442631588243175470224357468934457355114213900177554269180817719943945583653087759314968694781759941720112186658544154223723134331290596787063205710131642024526854093847057346153194963196067909515015135967639209921402262603733874792464023064123493877920659401937258774294309732550958124641880540434747060560380066605124582075533654877725847016167081281877842393716759881680672450030158021618351929290871440655534839019839266587420380901924046449562367795157226267707912192797880092022314036344335614663475934522503163504816290752134124731420279381293581833217640400103015855115599440114641450752944465329961745699827325181701731776274245488115964462573951485764069218837245239499741136781767530284383457371563049786054764668283918134571688949874204286135407411342302221155893975891501048239727289528148781692546790527303499145031265677187727781912298523407414741105024086001253729864425155174709056986433454374101698137361031446728229377729274924721849101019909142788519845817125107679321802358915548825778257156951732292093227986997723763995810537264888121903734772961593033890399170910263917533420913350025402336623179595276776177345134711518136266341489512432772771046860569744425071931795426416413424233655674353104511313135514411380827759267447286895587600826930052708353444535102220550446609701136653371729367069455731464490796164206314413647101694166075125160287101110361250066176248804147569282609119595462206749653763052458944162930710504142638750819414748086576900282347255399536932489600486058258229282937299316393908522581800446184422677111502288111463717721005282164391917045319171545504721189128289645755305904793257131708461478322438592839827354121277457427973625842539768624136681626270921797297212148629030441438953608704740869356642375762374224109884878642132446763730001648395140189512703190781788586164006433077796515633318412847426154454678430822796413707811247534973112269670461005668420634058436374521631149651977031177067364152282371336990407177547764049402290172374954462438188293529075167743630591998944221038311041369517437296227406379006256414791456823498713155842468433817864627772137747507510790619199346933771357618188950802917947722610845474942409946101205592891716634635684050260767669517898397500416199876946905628579984888902554661017641585317395784232746874885542844982141383860395750350252558787163048680113001629812644038479409300109420780146716086006292768341504830538572114228234404073973964226932479681100519256475037998920685263289231453736224613088083055900484661681070043823687519468952439693040929799931987934570694836233330589640582987385021284859735153467348115660433804298497775110974134538600812072513406664151091840726659879557392886869752735983101859304385976735267222966458348807250654373668216592274961946571980778877768502364888850657487141064114308103777019066286410915035085303366465375237513429983518330638505669165411459771734128987287683376371468468005815413625568538473851555008501380764839454065438398866712700361971396892835520980847271628016582237197853043799003748967668561072093419560943814989366761359021793873695278743446925388031823614072155420287246490778464535651914912451468621891546999204014217501444764198721837107646771925679658304031321035820758240326494473235357241337286913260362553588339601831189447780330594258977309739609618727663084222208495482094921705242614326946634246612851134849757836704403197393326497539188046140957254995372401271603705079740261756279958487875399414779145510053972770453051072314404019434153417394058080206969272570544419603758318979606729811545052458716975558098050354075788785154480169246562723875571802219549654109969265153271726101098722423435160247619855877598222649166147614819379708612673394640316891148504846529318400801011376170290159610761139471970756417584497550155588418538698932283716339165491733005125579367728244531331612467902320318508094760935769726871907403965354584662190709601759814096353184716905367496827324266443462556048417809007933693249246743563345181465480586608469937876234016495188435398104087905255682540062062542904473822211330599774008750699571171970097352322843540659133181606820805410196385611696865982720591505912209372606874676748926930013976844861663338581736749639242746381901016174723760628021665064373575617659067470690445614918665087784927801638103458474050434397761199803647491960226794694442996002792411484201699200738524246854820273588548775865470723587553985198310342568512218077481707249331609067747521677401732976742083916336171047904123205281523008114519270994711567281125153958438364283172255786898552473034133618649402611287690653678931810546206736109409013194843614942201834061776066485696587669232785780296404803176613901341606568116723302072239447383246873170263484402788603852335926993527591189749850660699555421746541869047756120185323375956051467081288621713710183870395747552215877816336136963697180820479972473865419188444127348585487458720101913172461238964671669060488752171871385900457830661279485730731036476360488985583750834283227047972335806571964338391233048447407655073475495480792548805927219904918761525613552915164578336239696887072592135031581038982568270196576658494162194156165665014090028299612519075491330790623302003310337073548913900443603633793855331734069476385514391928784654014171829457276268561982734003833536086483451997858098067300858791091544927361627707418370573977125725731415316912153269707173097699915446726565100886805866638402337490981235179609956118934117027886142404371569091964970893684142746876876156666214257049360434215686024135418626246517938841755480507438503940257992203120377789440943984739883174331135656982435421280928498849722919912869232815053372325512448961958689067119528162796903103419903647388896418273819928734610375591789138643797704096132806709587974994530018234187468118249126932512936997922181759790833830526019917387555595310663787916678934306206434822707152465597814322131300259130981448263958018972290844823001524535803815061410855874832915919180525609318355320913797159771843149048423792432357740145077266489476921617539648928397336276930415517075887104472337524257355387069889828352561058890696611077120963818185739995818524291558728628639817048682542282543906263651003757842251474228527378761935632007208505409982057663932138085193764453544756625528531582554262629281277356437229993463034642514764328592426146020390179625272794053672780440966760024952381682506927972926294698674455681621818573661390961600943321824883582408596714518534237846822808740871660047370426646936661354535526341936691673990698276035298645561889615618368607941134957737409649343966778726515027292612755992916401508953056266955995447195559083422019515485325334906060269334838612210168154844366192968183683835026830257513319491768069773170069165848506473366760198433973099733282635572246842592311383637024987110684423143766498021441112658021845143332789976829114285820429788080043115151124356663660954710461608409488678140106386201892566472029730259824065662013449704662878267204139138972342339709999813392071545351395568614269015525330857734052156523135030323100628419630562670872893374260061468633340478860571523346184213507466491224007916042100405695069197876811100300783771084367325273566768425362977721554153477729705179444471011394563142336039441422635562023560941629918830139792643469901724272197534761471654300381808398796305838892566632922314873051519723415429400606367955178325173684445615215624516446806719410124878673402652732101723175755649242269430586130841646220715314817817342176608974239921361018636593196727299923243853249708152326209282614262451437307395228281452382064219745742420706499187740076373552676558434563755259373770525068077647633703217464767679950524100995183349789080612012881166233845136732528150298419876012560757015975928498643780402092492940167603016047085047344137638740486188862018469942336976207696092563146298482649278911961787389819757773178581236585416571148506899868943291908013905236061739486451454944315429596085939847160827213069727320518759298704975026944044717131722504789124754761144324182882974168300828457267011827637861988343403093470097241971134837634094425872976861154259479150921983992725916393875678321787731360804311588043380226169825712231833744981952253507496547984685067025481627564388932656987680672263156521390637333673828792547238306896248648303350164313322231142988971097368771665949587617646049250202890945180008532798050220812579161862308737037931413343417079653047490855382378400228562778928729285667221779800806256624346959043107784386804184005523524540611327496059897021959615479294418585902288132355243078224666950883894026316158897811888703855949645732035693018885301803704474849576031558126467696381112665184934369460319061459331019237300236045204735643234722364948638359821599426540233153442096756747509264668832584570149412404360907282450341739345417886640920804495958432274164077696489042679080740736059669873864578913334626856400495030244336927891094892990285814043714088270992016406625749215709946985041513960328642253922930224240381890278954300382280915560954295483673254540472282507855442214792932271275723084971627897452946373432014692895945623046913263668302601873304609845408189145980347009862263424182442068919185869666795417424986810562020218136179200426380023545005431407744332241771297646417695590388211085587976801455185310456705793413747777086094894585618737849857309570482596266312767016501605467941489406688433026406406754054795441737699764742961732347148511683062504759960321198448107179143309732932861016526751374878390660426776950913102684817720132705579176535956454310373351628313074536070408987580065110932699717205741454843210481204568821010046682569128931652995933454360423879811999310866063447402476992376845364713211832064853557912913705312912019880891656820206199496286256421651081136237197995602023018304210209440303960701882237290099055025530599019643040334964941360098660813067672119410533990554214733425934742040340760410383239691086030152713891261630128681242272874899099907283856350758780048025805188488675927894458683244865025525811517920231824221614029823570843091008759816718982684532542373363747303655217008235729211706239431765658619949211658741589350488300942964017575547531227793833678706454813544658818825065895512278582843622651390656604541662174657197492786878179110717912307609532398555520702483577987767642059930276902992945904927213306876715441505264665934844470922821789618705831201799276421934707360358697779109760724601044450287316931080193067382278561934369790500574069566376685014792163647298289678318884733430823774480848818448122672386865370606615735828466139897766147138842197708618390050077766019676032071758800682204082306434430288880365927248826880406545726773256228348340230514675330094716947524665776671744256119734347479807759123161491081837147479534402297411783839050272213593052767356975567520480283899333518343541604794556099877269646398084787036067165857720389769096907431544802139520166765264643369623516826619577409958502937599002201891444807348277845633016735975199104902944236975201100040313092140600033549942139562195336935510661487710978857963404161723074289787830367176602791477816411877203059642973140973202749702038264874622564518627191345789738227809229409039614517571413990330790937478311689816067753030155267209612429005812792443873986906619921728228806131961771140163798870358955431368715624277068893323909187102958980713897093996817175044757783544941076928913247617789781387375775521652151907116672782637115766327008088976861112978744504416375344998953947093017615460032579362142622554035058339793728187165215343478222785147099596337870047062501704050009310075484700338986833356357467168202164807102825201662503734150586295414258948775310343767633369575953849070502669210687971112333512814883693141093973788897361144734578170258327736240899682925355627801666051859334818056061312720904343279436713031028273239952007038806546237736760471340124537176113928820510399029446222001059851442525358277248337926354715006849468336395136180886423739023194844474810449903899878595469262240820483052302487684357455448712998402129603067663191689248725676989311601109865429492005668363481291564853731586459403108703400635357647710919914570628379505027590781863876270623453566989042905462208815445945619763569341768935468900224892407957815358054563489008758204173269806616708237046068994283529130791999931194581994081027913172141335019283462072708958093007381723495918031712352659564674207839955063509363677974923081378257737033086977006158798634812305096771446743763483655918886536595615048358036971403443621218183373080065663129877227150429321637797003136254464994888076655447662189478001213144326840230977392531360419979317730625316986770452307419656283045907340390534088073387145648885921959199986078866276412989092123277866817580503033442051292123267062389544783161548770557910792031961608557071280554424438612741906717827740479006282611365020785118404251814334422721674916801790017909709500323204033108541601737208268152635724752532391170454402114015804609812995050203914038253897582695132278267771956883690698817714240062698308990710174855106049989119910906176386348927319082670740854366779198152984324835056956501543734311991306733878787933998416997726383817712470945132802512601410351534126420739574710192519780960637994465315076623817076258307001683111253465641312920548925412888521261307097770446025087559537972652567318477721460168012103376036121347912269948206648485318845263855249983798972560693641356566634291330170708448583731156167685712915269410249166779524132551653581087587924940415935908943413468896698801945979452053416852429095845533274926510899931619694384805087503909395566893175213463100946655416658360701888717500744774563185080625001225024316671218056529613601378126284404755953527528091673745858317120265029330851705587682011991841422063499629965634561180744430746127463340730093102417537121735060888767975426935695693823556745147954814230563984786810351917013820214561765391854391201174555523902197738127278288602931161253442431978228640589802385800855836130964005943211847608629457470996313810474182226084607218263992988079337299875232586610375371866190374593719482454112832831705200955421367917074948855067076130758849012841840680584741812717322537283374078736095318798259988402966153594578009448807263214984093547554558013751370409914899858740205282392141502833277068228258851101387923497084899066671871242451368178727292868232268759668264170440223620244641069433848162242172116380131573717461345155674043136001725493937179114665232915163294369537052629424288743695273481794067810394890531234708681344989429323176514232096174051735870196224376029054631845165129631229074347026814316564126533484792297610439475284962837761910827918266866093031778136289981536932034215531124590267036546219826209642524950413253873742761472445134446678694917023643680308063032488616679582454015183586033187035897596999812118750263338936655210671858435871894016727653634420495238694625601330926987842473540474796184865147932444832446907040610321682598739811734965379144692706091172465773831401713989220297811366764815517298718502695119159299581077158665036256758073157769890761439531265337531998858367199776303077932047102765003714565558320267008567698714609231148880668755411639014739712927897868372479641662668084309359398947939596520385823226636565646667150129156427343872687605423305421045853845835034870975220725423244046145406384276162443392433026586833107013939419900964806099969043779714508120672690221926763862593150809963987985558637972051453324238470809968282394177535349849908985187187540446482646673348637919190747333518731393526952161566366382475239724268698254877782010232455623708683503906491345488010214440761381781483782043235502047358674696925512773709239688277676789964501796843703445400849654550765949737982219037175916920318802359557056064276252436393578434548309291628729307553403036201674239696905090262360705073753506548515744164439926778811715802620240135734889058300434784195297904809021653759440538267244203375301316144128870552286614834587752684322417084931509212782942204945298569695886075471842076726324009926245519402586491893688735350673928513994863231750712676108814122255117797246445420513584800781043528267337695513490967831700204966150241406285706817867269864109258752901561496845814977833228805224364265867246128419298666009093032721979725531311140820479138845588738979866460220369986690764579361835026727575238547017044268738148682037191884902024745903282420190269491194793231405153039943851356818598240422797083474391525458550081990614844004958156832521519707156499045162988880882542365188771792566204662703024014578339385167634175152471293791335509224086981411636941024193249609029040687555807362649677759250303182889804134827129143105208791655538322359147498105703863125084518724887857595678672017274407069040592529483532896934873300139108417091961706690325177730746971253097158743480369575484813366284333890522345551915648849749240379426776659654588862443296910776658481641869177565847465075837050171861960425830306486964419806029294462293998132940973505610192460931072708471942928008969677656826708023571860717637317251367487616318633438120315898206386623746161733820470921606762442455567014014780005958650927230986996738043051106592742731489276603809205285072123288473090887497643064600957261920608630987917878886878942244568700524267344675623387631990790997176523214782274803502766909169830893830837746022785977459238273945979320520901410262573000934106931304195081552334130636809036544909737774339058171365656851147040028104775838411782158760550701092592587873599489770194997807226105629832963156496587437391519532431486858947986903231500616155627751384117045958540137611826001565688624295666334295858469467096486448863962278362372382042009491540631263766688233362157612754392493635625456744943105181144996158754191604614212787219710694398843499124132666936432667343626928094541328923601929356007434849857880916852942589326067642180840525046136348054482311108471244198478594827689484017001851181822700194056223795069668651557473219995633840847626882964336192687653693892842452086913594545181584513341712084855179571070437830353464409378431626319098580540473951116880544972904661441281886248406393521851770316548609894989826518602560307761500822134083717432596178762826517330467283695665684857646403598423766385996348713598076616737840482164875910236538087639478575440022979047332215463437908324370817507699923522018167075342450152092729310680820801653322911952857782079669240630447074341066917164052189269189600820672602104771876692746986678461964894947716794013284202096883334042446040673696928523201470163473528251429200332425606114095841999002774099845329862687035634861221153532721177743514847337886552022136738161019974142419961603974281957936138752622059123652075104429593090500534785371895477420290907678117583223745198480913366806666916656842054738365826687941520144273374164507220774859768943191390061740490332161903613457562091791672455148569540941337210882321911285554891245474603622935055908138874968956516846872882023744796223195661912394281020673559106787578305932532930919736472223821985030619068715902318439032337465198093418222933737842004735367274085272134395049413870198358255724058205924944428831965188041983364203376773914887663110341215717674770731050825239401583100947090560334618612964108790053164192719316351767088845913858294790879328619073469976300660091670931408411401180468092384625646960195853141803974267810773438543053832467176286040885788743874628718494920812476911863195172097456412358172516814324490220085925719919820813751626773534251545267920410604459398339302577807557861016048916113686312280413979426380535824665946694368527759578158822073702788599690753973534927402917425394344769415172832224671207850220507277084780710928818831746049083823755869492187423896252606691697747327529608800497767289736529697510328079048691240364829690235482309838149677003002148470718780669471032596875469684096872322588531326455235742909558161804289857857920562156718779713532216176037953775461568220501977245818738538864685766811812718932850705475490158676548572425478959546758243095651144825095590526992164246794541971604554771008289544973358158067365450618969412906576870355156537039191676261119212406229254673897887514881739910508175236095704230752374026835486941169130666131969228496867853963886157197896928767651942613518035923171732308897183734143962987949994446683644492851375497928205075650455467750896819142665726077893479518706166145554027137586175757080269490386502042156894921204571159906501683557874532513154184856521209471519355806517586670414808785404447519940990642736800210643847354601236479184650183096498891880597737936674542880879235907161743354439813962787767485804727360095854154720338843002303437600225677391685067017879424791665199944340903804835144642725040130132841936993740393046112391319942566670454370965543492322187528032828304520715596079677128103932814504133683880932147815992847548910990088230713033672434068191982667168674231954915029566514006923882311559657567221558739734767765253425423361623471383783433312047204027865786300705699145957174047023990347560197447253516562562507536233456598273618103237701528717482647794275996210126793580882557869411747387704928924487187293019809578885104319656163269415708334712859622329003178380439703052661269113134833588845713573018048245938324839264626252086428695887099411654922749845879526825042071281657892328077804752222727900545361211293947657751955126989656454250104194738791336754839954229986588357091276717053609308151493298203126661586484652616040974799216389459781645175544119090553162583729974305076293845747930212649812864336567068935203302043380464463210584772202383300233454849816896323780796963805441709801299045782202736928162672191371907215801463942319133010317968437191408773159079009953429945872658171469458888272160282695938986464472288427693540461323349511005376508095002519746364100735614790001414848641507408927252650451397274801607707798836165684968074480657253217935028251322619949334630224565465466463651893361509369100118573770259176362109110971627778753745794648600705703841722046333909520657323403173578661231877321976461718152717559231715315574566583445540907936406560549735216002132585818468050043372036734504107545730294537718134545094956450552325904742788768333440798646836706536118483350220363386305909871016508937301137728389645189804915932463837003104815942240516031254951871306047689731007811555638555875542929604444903743253101235418603980928755597432771851757916140850929489612292635985015015299219656555741335287715254056549886840990305104263958913994928168768835042349540050135399482727301829093769401983477843283758614158372252819024027068144726427291008715256761247119167559173901948357302577746118911123978754815989941191642778924793742620294118301323804205786184144718818200673278895529085615792339988124304050649459859290437590242801156469723537820208222117479330838543572302215040108176569270109060546724593054225014026716617227759838400627630376537810795367527751871139432532631400201265785960013273378274534030030902925142662186319659439085545733503953009096157875418952958736519476053054183252936253189525462012578402735130704241381648926440921911290229411692524828170782572273062998108926507522718130054098114212461618710338192899540300284549685895717762094839981007696988704497925563239071236557060651569351956157262552052722468355988282491306564014187720154316465205405910600360869734607504644511580156133552127715096827005400942038569003781923312969422312612260398913749644841800695203097818232291562362171191264079948023411583361892977574101447105798507285398937164454334918556456329268632596300089687552413823281922622996300974741786526753767354975507050020815237553111419279713870373283141187503146664136141818783980294247363181520893303385061735250016912707528640104726119737735613050792149146383921034736675422946810318759954477819704769724319815063109302279284265331880780085388141224179675251428262547022949587293162990369669527794839096595812774580029564521403626519416568967352945946867841029063682803846797043186783042501800042092785088734821795423117946150568938456320361166677049292524093701854688134619119523133507189206251485601213840552604528263704012189792203177125233677767536932749175190508137281070141248668246881059854889468293525723803454661187259858652178792242667019475787291037452528107485755251064229945624129456400002800655405306942092825984509990316760409374230753067211284478287381320881978351668576723738140300380313385375610638686353206586127108565783586137242643122662217041773249613435804488866649326549653697173578847205996411840312242925852669369599549434009102473966541711718317231575102753371330148701007833847512923398878521235684778539919035699304909350387373840892585902383171730215062836289054475949961432639749381479068672018437468090786211752038560759675996538006520445355187346077603139952254636056069401022935584861148197101255782673771328592080402280417557443797816573987972721886512463780228800194513090780631741440690191783261713099917342605049501596418084602891502138249004302484171835905154034171438702687510540663253906278045086801209907746906138973272984466664057387151223013952806267897765606670278041213724324958771037225250167112337792308204784781013445220926379391215886080735984829647044517835341700979811781756978900916398889111605584476640216545686646344235029356461602203034112256623170500595725096813625237627036414974180616645626130612726396404675661223104917844117052970438572278691995254544254744715157290598206477153277880871862143653082362233486885481563415955253632147802488821941320306743486432942245287261635724710041402766697861201871575704183567308095384047968117450659127117146268146440000928771639959006279518809192009520279773249151355949639802674920192531500321257464364542443581896973191084034834650479363708530385141621324642824399430211967016183361958993635491436634209513562199118627089341374033537306928750890351434005590321727010745972598905529079745593934345905147946720298269002683732204093296688599670352468506097502051107192100500047601701717830459874552169187441930882707110689306989393626141859810350556351497478379941170689167792695274372540151736744135710359891148932186539125018596533912810887154688598583225220126045469577358293406600019986522010655137855817470898018301105524347489488586037913291497127791418296161534473238257921617607425379600841188218325713139427618196313276901501387741708039863866025462631711302858996016632626639545312564610607164241229122037068851040968302533934534142604715539483952288189051679772477981246406479299702110672304064281813471084825646296662181382983613295194779556248447903202974422840931010766838949805333950286831550562890319314547229004492213527844266781213234710344842052571896423871795066848677064840023247067065018417490757975557372810096510999780189756334430230979845395832575047612913279812468784359919389772426269290233675882410080979908968354887918504080752460299241776729551281906584996517518540551529967886278059865282318604899011472515252858718407034192057641558838030418443833641552699269100793430530589434744328978655022054489095949882543977891183700313501178774422524268712366651206809994673466863175520024643428310964386460585970375070361194946495443896874283843149159752666986825612305828870575036920660459994292270173828503342172542213698401640661096840663610466370445960753697186792735544887111752119078926187387568908925185689718876478543068049098296991822139397618001779987862907709965438038017630405129347697603684266042822349771036677654925410661474734713490910484639850108773140743982725909597739938679426486980704604014395104915943491030929757760646765267072447590721985201545888574360412687114400082879823825941703048041531330968116514694814315104594649475295486572185065802052146775490193727229766691596781741733438436962002305709370531942673605100742748366906403555780543227263367242418268712913927682260766228154754063793359928575807646552698172175410137850192340455478557177088459231180281289421330996577348679271652707151055940436122465529294594090424325563303303106744884426290593864450796293470364930797813112418433560889882703819070745919025756455822658712452803320962123725006012407542789909193579595342274513694279982783313360336837456539687202668090315816965425945240687584746110319022117336038781569339984736885142700715507780060262267110710376229901462946716214151746569770079649803823939936412398096502317837434881383882250348030371416080050560767756702964868774559213319329036040804794066243971399204398041754980175834922917113100563847241429772656267237560916962720277449854339399867720804751970916318022787155553324644277880877673845941846685419408487938963667103615601670031156287671315196799482736379263328104360352627918933053860055274492872301321786648615577268089164828811430279146353604256540095135839579579101232082755371231876580369231216297614066703311782645618071768075888215951506143776342910092005359169119967316572029030455835007278428994517309782598215753137519795386550391056723153527304988819086663292753058792842483941900680249859837601146171746537696191627627750759820943895797602550938745774839749324191095023729839226170492829776336140702973111491964194311085322363288196161080251112882030308671343935470936725277772127297528487328785753170757116762178818317975245368561281413153529464532483936104122417963416382595520025999272518014617845756087119964627670017874919828389618907584374065356055304398924642279198120900443387124462775361077174524262467964609708447030600653888333216504457055914493230220764505993067666658671249506657757913502906085456976063035207720709173495941170843987590808924916163556723323080392079899943658524490145300253529236546755702626053402888135612990183544404697945028496895950120176848889976269285910410538538521508012890733047340613097704084076164646872268999347047615223056416639907383261011400726373230976658509058761861966852763185567803354056974984372443673586766643152466885625476934964700657651554684595786532669094101567679316605846840638201555874074235969429743074170149133204743926603153692407374444567819617180361964867732310657427992078038182620731415613841718337927021424601651354641938433207855266008217649693486895220128177805101644204809669552047173617605055484480351156603234174736937400254530632128969098095706689835024303419583528575395051585000822184579358138216942685872482808274311008993968947958768560211252998067471273585377768691481326692198036645094503042362967792935532722143929512264990276675049503681247446127174177950584246547394134006554716946444372940613720468174367845727812810523522896262103972058988979032100441881780231714559137740393711131430772889935784740405983765098969539108224429343932328499680297765789764839090980946040894246890442590600796046467940263864180903083736848718260826548583195606887579854680501706425247159015216560424407966932042339302375029922381347209291674235823658167241806123352330784250323876745514238076459543751255218561325990823201159752262126035953816222138123980527520947398030077733802768650849659895834204597441293257629410036508785709806873284049339167494326970664465952484539729593147271040484492104045757463073342567205022729319739517510616222917125713838439340543916476324243301545654362230549255450486373503176381575676225496861494223851967824087536840619762688046995694680860275226698844838926391875035553945757756864522741852886857661362777907504444621032249391407750342071100117186040718995422124832201593658395366023018365409840368325783409145495624268490626400393076862868335203941591083547871400989946698441243447156256319578042153945436677445598954961624449614754373377217761363965061826269757406845064130050673337417228512248893357102158894566991762424252904303920762017918103152693815944428178306665175078281185143767415348141708232995082159482870314944280157649086485124863321949676595565789878665265306402909418767598728298978741930400258106235203428755859360197025868366708277389272866861318448034500444762955473270148701857415007919688624533665075034199428697222351666000434100166818799141893520677741725824978588909695160572487044416008080752194299709988342681479923997289783575199470727522656780101691329554842738018831018539816352013929702882308213714245473559874841381739244402427479175071208624749877538471030166862695495440743171807269173104402022138580561171896387123547266333885829544727278996833865256473801604719571935148253507810366803412814973046480502991795936063759740648436444563434337310423736587633989651610343793459410712253271563917621442144266566032865513389029581354805018145142521737660464847008251503631690341834142923842623569741722017243080854889846319098203363803249553840148497576900281153589509418770382355169634927299821177586722000765237160497163785633933576206930998350021409135763678123772887588772081774275229842133795723825016387911503041765417895354643016638487134047905655064322862954892815917492633732357715113401913971567556028622826410459606669160399981256356456766015601108115458275656703831389948802958334656508828987540712674405801980329872185985899024402261653500701098031216627211876339320130600296328349937132984603875971320923764776879586073894388585513563499831496740061595404574313106784464341017665765085140516234433709428157545802325968377452236942481603424096170450584823766936416784444738867799358546828279447154484015405827891650580337088569107583633342870238873643481309144273230275435167937279243762717682300116225021259140557736484615397198262334425107310549160007759414545723867660360885372793730902749734654159010863487633150126642619954310715992091186778242758139345825695576144222689139485100933019888848836386937759863158217898073232739653251549879240510250939073295945566678885626633468614286809737583561728403215913611506640320563849440423931218410032275418869445256530429224907470947942778528636257021182961256319280289036943269314801960674271948734253751721117399981680090391482590329980494543781491290138199897402874822243712041650959481038321114212412975084124564168292909188706299942718685897373225947105303476864649175274132413548739271369825723654470083687853006286137132539861917260681285743708935388084032144819480494152266183341886909340893865754658603843158776752360732157948962835940112193672606632206670388788218977935342229785041980895034877719174635260850537894173383090813730991731245525714166721670206950177463596170449119187408647040949772918817868238594055438481685412183906591697558973260622946381298994755148374859417819947479317231915643680166351774686365649614677010119852438414208052063804466203437626861384879503931280916690424699073704441075240333561886921311655118444303138798756573487065402519923822806100630587293251608076141197611581520681174422823767764723353833350868199486109798500403100647620457850235796457026309928864734498011280356893791124263086694892796511730031084007457172025035267159141444458145829215535115153408365852196044970728898781750184514768500228219151473753959956532178056872255642204953007946285042271088896738362720585224161655450998058863532598962172419400987133041764315142334334574141019256805196463707295661273229239680204366879647839033639972945688972870964112511422358715546003317280198091268072550795922884088614806612054408583705434373454297062637223412503622451034262872197301995011549811992586763724335097419543387846903251080935554960291302280553258686466014819479087279429031319937648530255542266160639254469041841729080478027620829792250332380599848550554197435071590743220251727346088258064852334578107105374886826209653843611275045237008441818062696896311745200477054429378023521555036555903767896807914446944918875491341301025449989921374163699343894697561052664563763238745622532822700525257743741540939638719200743833775822119720137916745943145115918338323233877167263388590697869745800377232533320577048465463574674737208798107016699177417953833938716968317871659426107468841113337987674496860209339444602937433217968911989606171900791270412684288451639570284597773708701801077891338215174499041154939768575041439713480393429766403726198511929426753125121819782756446091922034913940251447732291362268920616540771325481330162495737195458559275940948866518641241371559427906408693556627803753594320694156491216277705078566891245130831173949742701846929903929277350983707275191318690640778311615122420038948471163018261740422557257269554551514481689772875916252278571298573069475457916729431646238047416844979384646054635007858664212011767647753558414130942436064909646175978861633929099460400868640467007007673395828658603168228690177510586789478238097067368908315332106890435352662159712233914681594022215264395803153764838497581325049493035243573117252151959836995231072974662936490191676700547957820839778738332715784455544251692750126179601865507921378226481273514799144025037693460698952554635860447786530650558249092279002388433548485425436817565019008420812537645409160573011231264137963770511279984204571800893520456859661591295038430883020087865412305426478752433194462033469682511619648842928073007881731661697797468817433481515654323702420684536929966598025604584240036244854424870284161183229726147097735096457850756647175429305249981269219629134061516198042451974170773567456586568334489936351719703102642092796649146132865999278141752519579837703423937071837739782574242408649456120798091505974998530591135679263948921689592239050930546889625598649508708486139024313646623108602083126877314857454531075778990677553146038766276895523823525223648935287778682849268068251381776260056198715021382675176837721053061235641652019179305949482668124861751359646073385238186346408746930721608670819307344469610113548595739014837877145022189855842088194480182346415884517191467335818667732345185176778524976896147161397227449459085635829679423517143022389389690935428892428761922869676241663075825645810543618897943082179574265989187598324548880191936394304433767326274785142403309191188780170847364502766686025819678554580020102629496589179415078780741077875152365764937197914444454138657218495695631140487824833357120610658771376236479106844393638618286334517161184090204162218699224027018790474640520078921225650592436185216373984974015321623139097915709402688796305037501678314185027086136144167164719897616744260648788172539421452319211508949214050620667783678525306837713849032446140009677019684123281965184078858857926334657362219614410200351057094511304982528543464566909713952063158954504834866302259084958431360118817342147326261026818285513105193477300874432429912834028241014702386044033366704715272295669793952131676250403243019074158907688461809498397108969361175251229262380193569029913605442182969627265259677590684687386498646281395003516196218050337594504809962700849248957456804231747292286981022241740651376180519032783852430805245555392128996911000243258759246427453707569606772187274680851779051307529653156900300952874114938230420743640294851687332793639861232802280384172751287068919439052286188233585878200075324989253680658795353749974658181255794049276349267552931095217193488186714276348758324596109895071054846564916374424242623903830425504339673775249778137742493554826314994045826021353431247569016294932279357275072750140269551591969709935488441104139213671349077279180847009876211385546524026681759568339039769018044040064673932649939770994799635370194901847769655542823926523846522602567704172802303380743377281795778092175661019319898832152919550577322588967783430956123269949752619432014524322092647946097802304790716367742006217323428378939617213545394974948680243833458560102607147003285458898308645710077710498352708550010543871987793264806609891351128841355408168682508604635235854882715873819443916935855379314987986664386682443588613721714048922986671166699794351314626598772959277054568019854793212826457846776735746383847846130979566959979219023777104402525594316226446279275337438456486722191354641541746721376436058318248304238643982444838556361109574862913613398779512089931442084991755224541562549623859119448164040386941179184957035566827439940280198277169287736309723762413444246376918378707143272761862571384621561775422674117356630352738526668320687437119699475034222932064767097537786566865750771644630505605013432049125094090712852277881323691462472755082953592520266048336690785954263865981297054746734971459386466142715740083327597430013738527281313399004597951336841310224851119173914812290906890094152308276910999937550344964260504153484404259163279351549637817095246685252916519494091791436413570383095821323063145070609945713192648851140888095339535915078134621710924264420983605909231267062231385086087700468178306573021045962080620075513728051913991244896162599584467993760988320376286676900174375065054920424763990327935250118960612564879000582354113945948829234380630180702385161279043599586425227545039748652301232105847226108247157417185233016992672103446648100897555311233110124730528718504913967579144370444072322635857133308259049860356007105647738330985164081642747977301545741616250734056619992809789458689130989407490451777324555707600146945891641776091135513266610951111675994833708586907383051428121615311021048857639142694392221992287428689766619134532772990976377918590161825425495241052114290136910777186051504924880603698126601236117252500616371400176391789011955619174630565688461221750551025528955570513833139490918880530821447162292948621390463643417270051547512710197356511273238057682109121939804527444890848258448805624009868487638780594169501962457497880996611044278990711909669155932380727639980189743712676396780315232364683552215399360374663245082001343487980171602916455150588760121853743275480596820716370870561535805103028852239322080826228029574276455071203709020502664041183906954350157793463337892418052052260053401568984688654168312414910152507536242332493293798034105337679428376375667204239044353407273815878452155727567804719496037383745933269367773649893397785132513812962584351217961561375090969417629406263596469962786972374564351709246026232853051503373076501067860168504314386683044685524958045019339531217862557902345457138117982823564732442297491941714452268818998146392931203313954756580988990456883176236952942277816501467170648054947857833648572688602078290994733856631827999796074572196210506265173230859478082531932939115127294489637332444927531303218165835372291920578425245177603168297862458726186901173159615389211616062229664877541211613745791262862914316660938815121745985566733887989639205110011316181423130140216734068275724973205035859872951903671062598915380416225315040579902557051708321787542702890280846922332712792160299344979616597483953180734470652835296401865308951329649602544796382671295397026756741014931875473634766029874762984041049149092811929719919751540752903127624527824332676992233098720298747007944787943942478229578351050549589123395883500011204347269915646051883945614037843099408391771890830894162052020716450797239199973748858531898288855549273664100963477565994897757150554609499512629716464080666229036503091244645273693790111072724420910852101990533343131200003989310154475855903469422643740860721692171362327944162980747054503360538830459422259924364732415809080074922570686479381051368832910552871248035882644903225587515645442806015727531678327534959143730262105936346809884302436490624022865381895476636189001855175447092877684177550231984059012026422634216832051695070990889371770900440588239146901369727912202039768972520143971480621382446966028018915870539327538225735359638645337968320134925863939357511616178118656619145096144317779336087941647422981254380536890266525619089560498471336758601645709432560406871104874808510374254950779394877816490166670034721490971942536926693127813692232541630488588024181342242913365156741955112917298854636966804565478088143256312571188394257613489200297658317554175631523982176444649895205755022729245973145614675899373525267313414126975727739857883156690147676056477417443229789010582485036473067571204580144780964108266227617562720341784120898976260871745143366790286650842288494740487257094526902570437519604270504297142713020263569344103384660200786080349887201632639986046284289001254103177989674745809029411597101343792701223315740331977666049237799076528227486303757691350914754779981348767780162682851621123615366123952216365956151630562797394754797766365387873354774039183137667230482149355276252751553299059928869206478287916667824931693358261694451447465832599800397469043571813813233900834316099764787773018749162828657832858709982582124811270587269800153866521350698027754518428976526154126579192186583533984029787665740471742010066919833637954112676623108892222991175500825998747484114653009229281128041878503005177708355453980881443291594414476929241424279602666702059373722326745905675220128921935555752441627582571815880019261351056543588515756504826390446904678116196752604630235816468778911354431265292431186823765874373003049816114741581016066080676105669200823245811242858459258765904463371012853884081503073254100643084758141895641138527283241206523476518872422398402575338669524654711508248275242434710423484100155007430936446145970540736769458149458667639901026643595777500934566397541173715131090231816180858166556951147375265003471408534688016168001175061709390681253807661221992495305287158420271016061972059796990444427960038571434699300813687484270779216615952203020477835940697023965813269741914371533204908127222858580624691252991932852141547386616901881753455853996055337412526307822225190452349939241985847687473932322601575828513845268388779894294527357798721715951514606287366226147161376580557037642549062279161331218777947138610760919993401020126484812462855711572615512069678591358479145577548560315879687440770819430209978451309413724309953806547680436293762927889839555401938925358217982886643486498748054569417049902802552087804110175053739047335300358354051167245429507072376798242798853025488146840486353800969112984103421188518052992755024649416747127601585010654029768645001966112444196391799349072201850645124763309322401539237958218083370386985367553747268309665991091676023614311020255130378645359271786468613685823923648857145911190605903244295869498301237365003204356776926524580633663237886756123916740076540938102204762595868395790318064799567611963148574468440571668256838776346666334294965870950570653830005260914797081030233224521715041467052056307504115236039272979163712154210793356882668428485148365746055436017488203099992553785158301057663240198661759603627648850911077538602856191105212135130564308882242224904443299233240819277066418818962187763731388462527613554724299978564985569964403248782978164344212528692055783206129475316006732759690818378975082379084875436157499022789302326896051618083896628908247071343452169666861813500733521808938265271036014737299481678789772222926079151680598693114387461107456929317573419868611999160646410641978463337604359117544463262740048360581066950365315370049832037420510573675404115179163378205332502969114925905111132312901978600970343516852928757395525062615824228590138341524997777314621136130465882045384406436626640014731965883505959571392024157077903504079802244676326595706432126048054159446547916167938549706335137090196809998543509827959300391343249892176110741601574932663731573142071838857279011674166499717780660675572107680952830280903373724665072015592839468466571650569968718882701907719120534924458686056437644351274336386880363457828810208078688953881859181446418097137038147613960011095581822607612345749488213561853651756129604250703166170479056456779971638832887917846161374712763653263697118453082405428202942690004220474178782030571923085924273153277211747787867253736484794613112611624965687274138934535507162744420118395339502520075634702961806159380000202171488452517863185378552117385795232456032482833711260989029362762385000413469776855378605283370066442555200671285482371040745996804595834037204126631542105342795417650392547725873006653358716802073500101119930193239429219347749805439068756752348412475117558754228914505434052103483094870657443327122379463952131030407489042274071042877572260038034321935382385292183027853019622584734856487417622147695446820150558411185922224547625649231368940634347586599433471381140940352042539210018478532043067961683331330115372461918826144614137623438125740525724895475110672484530757854034754158802212375177347998899428548705130465360445817137731611851668492108603549101689437795378058591832109444050051152050150586311191854514087358778824966119262106238359416159332150585889181080058065093227793628656631870279872973990576787486688066193136445141349536708317198402537280208651292678165482446044889239862156373214123960164168628515818900873441536262733584754795952863587791598454544433597748087740597248877896648174777937682628730607177173403462911645839545429196155341634630057355489087224847243905088006787413381070596140912673099668154124055090640357072054901134602322832226434925995791806914420045778008051411394661627849197168903322922037709180566808025529975557052691010525197369573882072256780582556138908142829329596669841461863181647633884399803716067506917464267145694354050120207579342066212481359308309354280494250824519620388821244530248172952522447804261958454652880095556547027603734724920606561496421947939731718926111624179181120612926805721213422930530123857608393420370941073129714702786545166744954368962667930114979904708097023077325942260627489509721094346407396586571609957079229860225089124260337655416336289396885668212698893439284101540633393041972737223118795052821546324758409563361433373737339748527816255154111819219651672518523893313504234037875435339765385060984960036385582945512150883041868771168831972495695391292256630895340314894071405202909728221420547904426193345376125523547959311345738779271638376167419157575613348842720780469318473568605603268673667689863594777685914844481742467801401536087391233478325106793048656922739250572829612282985297429027524870944393369922333797398989493178835343027306544333338055350431481484083613503174062989061364730782847631408987206857241279218302753167111791501740653468536412725972562323277912855015309109179879004762256837471686762854960428162901828003158735649067309110575256092961690439292845654533755580776355573143310461008270992574929084484758373528276550909163065943220734287677461354800199321899733518595802613857447455275324987296554117642782173334991299628737353566183267150341678023072797205269126020699007450122613002394106690673891904939637170097582320593794843205205234063704763821405697100419311885168988576241320131079436146414210789209802416078410028406030914452478540389311332931129305887297865871139947059032861617795455029805035306369837903209357553261145515756332901330687505929610282508232293098757894796674984706896097326853795762695582749879161988679366206320257290218222197227648394595888882197603567337351494412331652489784130091564033986769251722836670359095816548545441521473382982419298700564702891500661738808599357531461817050920909870320012837990665842355022468090339128720506949711883368320499410173876431700098528774439879532194016059444964243208752669150669799040660012164345696612480215086015492899594254059406368334127098417897019980253109666431058613805134415476459913998099528341810174321753801120205525623107851513107814318593166486768021635574627722588735318821189014269675774741915662274841286681530522621091535520187279596148216899195149127332786481256671552044244996404399634019608677082671997524774507521279308397528856241741263898368086150494955033289739768279525704399342401019200677902327466242912190383161948416447656237055156148700978795333306036160788160070082712588668329785694369968742179043219651469410470501411927636795313411906145655957605794895082253282668452767080745147785412776846971948740616645735435458811673080151772516077932717771885962994247218666807316563350084488870584392009342157326893811208660533199381737278961623392308750084801279716025490922781156190736255554996585743207124728300365581963562341651754106995041654332007782717405314109346991903386729604432674916825375786521605469717787148173947002272734568667763453050959890523996937395134057418220036742346910775259187921843041801183494962520876351678893255143526538509779746662964064050920746899827928803383800305398600922773896124219558410231004965361338379478585575330384217617312552298162890246026690029901179926873728075419696211136687534282526656193729414267254817368135073260722534113650313577101585083582515963078584937016750468797262692325196630308954575807943083021382007939673188448942508270703410004112746810695750122199114249677481178103417227178932978408435787890025103996566912760867079773618443265598999550144075557782552452474024181000775252065675303290729138045956206335524155728553623234302793673303734773704654301998186459225361566598594955953243590670270626877539461580505078122873326062913207080484809443693456563176025900729405960691886687098259539747665598853498627710504718777176224191915123467287566308992301480639331295228184958044791780268449688890429035397509208322096564939501856459323617846656751497526530676306593232051986128262991222376680725139564040523129656061716561888272978565053951329624668580825727983913764033303788590611446172163932214748857600091967215252268896679529509077688293526649567597084740157167696859526313245409608469636925543545825661595906764399245503747358021430699461657323502688528982786783134646712401750441930338380277310807636784819547483033686057893629251468448185571856479459473690422574691566816377392331728464608831764595188305818991105096960527119795301975440850058491930320129013145507399338817398717779044243768860137547504456440910031474064321372579169704926379672241865169053963495117162229816600265631986505817135922461146388168327313605112469574215446004170435642090538408379053158775890448844488274605797650950794221655736470602647788864559302082204712721705578747986564634425722467026852901002687042184263434563226360858672932758478067923902111506948063613340301668550418485656304675617506018271890705542082884813182217328949543502378210314639256834799955820818940062132284784842271372702169915968172045532436649689120818260007109712738810864035435294776412402842920866283098740670931612708578607620373404984112708455354908658805587174307971945166406615513236547236366818323398981637442336498215207224974391696792857789653390361370681403352817455088189329969600728937213796386530272410573291164605143372795141465705980444027473194049968145215018113927093713796104978951365069274411171630544111614476748720086238806107427023647206448507943602822212739123026515884793346050703882900889257063453892291682430479281557129628594579186480133431314651899174966898493091641284809403763589873961029713725145192526169922427485825993698080366618390709048483036755143978398942858643857109815563268885145058941947528877876391815709751902119308772597038722365261464658284327386446241530030943867740423370639719719118489949125890982337559218131986945562350033790997692672177106375828251188191949360036542762181351340550005962015791785197735986333550162214901443465956306891641236853506434113635936745298002222557304833419350111311086836654124372630975559180071938550412034927433393769268491518534798606939826872949730043279543006123564863069779540728393149086401977565777365875838446534137153671955424417696285647753298558119567069481717782862962110686852360023924614898863903761507575350688088329784746213697937310987890064285033792770135510953471719377577758600957843310177917226397894201503842650857077135572357098316315228017038408014293344106057371958789907967981016522470396026581707968752427335775725269940676851962846179420505134882641612389142883014532731192282704202124674111467430685555453847936893078116683259771859200337437919697618455586706039027767443351842094272863388722809337647157153664976541911740546058811369996984204955171702058256591035774988045252146001356014113548038500093870029445695431258562516475024804954643938946486696674922235336220499493322635836055334606411154124520671831883373198234097369090845554506710320191904111549662361036187282806525920096749101092358708894621221717577582771746078204007501900178886938288131276385970204809317583573468409574046649835125738109739528331651004922306507543601238226362187330795036450339315247387507078098187271631702748991236843293299668184067336591115788565017365934516602255972670096968442239310636992046488210684022657674454652252351870444619087048596491972103174117137407591242950365747842729477743413734349988127772771159769034554755829827501171268441467510962929989870794561428247140713275991302330566079356415217284877022910108057444201843734623937542231309785941856898434717020986866704443623711594415858064394567478232968291252356176845443922315405519783216954009715908369748297477145596816643799791897729492359005971566236666082287742052747112915497835882403011906863001260849047141250050034882653292190171970949107927169758236585205473922833612356405479224447515708352145341164988360451619135910850793287473438108438734866946136140933666595175444429827838317154077282157126702319949911975544895148949362930651335131044179163468040737299926610105160066501477664487861894682318903971372549488980440581865727636288302113546872597514352557557772867699769301629589465640512857340903839029012823997217809690739240001574415620741012628307040358403097898417867349854161905404628525573959332827451344599956622165639220843226210224547745920143794476063271754180477714871834725702726943040686006438110966466752811309087969527978943851628389874227509403686239546675432329277947831276398430431186705895770717135614260431365133895642885628011786596985400215750941135922313701684929971166703128305223453742140978474710017657387980196055752781401495505684681107414695355354522669491730918288555288805070864396447982000378937111560706174371587426994767420226520383926552420543981978256234417006782039906563431141194764936650852901106933025310487999055533638243101918469078068289743686990542643259572456752737112856546953120730281419535627459843694070803841304932247011442131721680790223202364748488671904131590460157820331138825626765840295337106666212452268487505616328066153897324852557078984285771891487354132066046776386227236234681373371115659389382977675486948493645615140519725975289395853523995571732274571933685483124519730265591680428287925675504069139242516768466106791137335602827630494620804581095530531457077748543066973718179225735015284350632878021696199235332502419877171861355032545084053493364372901056438909250867562466035113751111696338582658069710945871785855879986476270858130287594736000959382088609684736651636472612452129149404737460143404162696696316097343077960421823326782025054764150929621464968433515884873757540898259263596058706196818709669658059712356931367593733955926554214421349631617461566333236415952884263868498481448880918054314025594673216875481353286448120185530450404403816464638936928943936301493298746890569239838455015686706218225956034573855152980246849955785189824387825469500318406362929014778121153154341274503072277430324010294569294422931454152653153202581573444853566284851656873405599673728745318405122905219224865936142084261437116829309890976087648019750423813439195156010080616609257542981662880186095174976918548334700270568473280080763206429727921252435883515207646785913045558617276662713679499272250323579492263956101548568848942076889509145486717368220854257440302890550105630937608781619110086613786876524172388592656048830558155240992025857192057374806856174594540947783439164571916402895089424421582112134530713790273961121090767817157194738549364030751852079818749803371037769427268852727761680970223127556976208686326259294705396898110486573198104861671030800339239061798871921362323619155150463718955180351912054333707656254192107920379706764454039796503181085332770672390527840175631215517845153338980907238569903967897534785615962226763756294719176348591670823073598811893187770763694944709892641768050429072801454867299245112092667119555781087110987136277089953477199553514853911635491911253012635083295762169992290696848190317504721245120159141827272986982176617820742724335989189886560691992063524188461558650866711525030646802835576708959368071876760375167815391626354788758764427184319120542913235562339254682344533107642038708579866971904822810141445566941876519450114288440975888447228099556806170676870736898847225695680206417554047443339694917245454645948603412881603448526490100931228185421309260454980409270324820409947846797162949134793168235328101601289947452131059170154749025918459831638242124934351147652112892982603893233570693926225185604794019938574049306483367102763547141253011013233868183915001920257731594128697397218534134655792011222673704926562271367559482185044345582150202487080569256424851806543554342978937551635333291503631652577483479608497809797063551698920685104291744562624962354247198308602243782428499021981974940443790669640753579426871004261854877055804635208791895014786428201247782915760680291732102813962652575742951831067082536634175865791990685551917661709349914399880377691360928075937493982953015332580429835146186407457714893901469832340919660763907352043392892802748659098982388945562032426981376146960927872647345327853418269584394218609565150197793291622283147403539983942609044523878576086294633201242714425307361730901261676236654950877339990038423382617898480934199392265936179061015401406333999943689654366273305356328654150232153569473841054508246649131200912599602712182231787362519027447347478535369108296705842052911032042760263142620614509526081016779629159401382239747494748684208643404758498563312978424015583641756397404164423549814227860996127110450910675903367116535326129938280580753782703504762511314617875905807349234573179020552336048451053106575748441838018531616850066601087680928021069731793794659788182783725022513312939146563986420226443356513782237128766388990959836993637352183507157809915641973370016214334668015561890825284008461719253100274495848208616800697968082132666203621712297045277571445174377813311026855090815426912364746386166397500021684069199040122554472722164059580896452502965517446042900126144817130436622008592455420557792956531998478562217527877932803174569806596621020296934820172696273447190317404303722952212315337652153386460201156826587939078432662701797965515802387719772020029029238973870423896054765976862729307058397738687474461114972505314043143865739831266835179952115128025529806366137382805963716383472839100466066973074705404362438952040353579110472633975360474091669710507119461358564982713473340408497830557616356753838557748216936348909587556852716261586133879437471287489891432147770900475327170366645242759180556871693736225198317466241271560461032137881375450995728567967327335267080951881198896405526580966626910327492947026455938594301436500680046262986064796985969014901927922807938856741878421433443237228424707605562728455231777720010915392510943950092107498107065022645468432791542343296442956005436683884153252513400975039586007209626582407724881848199534017859269981663312428547722547894732842706570512486376358393510588299252373602726095793138115942453253573530437029750609140612342894884781148219862111222002099014241209030107201771037737200116922174063452396557254051538706883683472635577756007167555688192732291630134408810872790193766937690487256784857514835398342998787702817069965989743062209219932791570319797598996292523456646573075436560030709494520850854460505045280346278288047681138532732220838611593342236531890857930693169366964480971077255133153326390708292075057735728313753253689918126604698012029630472840141171944092408109579722885539918450796809707118334915649810921913600886835779525862088380899869487422795660019011049266222406099566122095930287848838693485285261872405714307804616271721533259268574969448112162863343569335700790856743721523511670905629589072255502788217761661657271004108394380961500113371792534762842094055765081891336723194073109083543682659377486099148160568527344761907616321522212560017048216440874758919743395559100578811492748660875231142126062191995922032497979709979237509616097900266946858087397131052916449298087567005083248558442828547073013537031624229547903605603377776086642014240523185025607131001655565841907922031187925571295850313128890212108429054329675251833925441044818605773711917491356632854828674196743905325510154316185674207758722346054717470843197361905678079279251713461634362148566197245051614848816364405770814858817579826268739920801901507613982076751022489925389407451451306170497226503926066811363565026107312338856399869791440118114266883518218663856163246344526846458775019143926061658902298827952449337951623429415168107630560784996543415442395157925487057588224879088517483844301090605933756591745585826219271979164054280637005869365688354680334942007080948811179116476597596793080795260138833136890927819199040264105101166705918319618941616162515259660193036142384323028460506420164978266505820690717789959548435623655269441356975020303742711361404877331831888138791799920539115812392791990447306328941784087214963308294833745419470929071259765205343699900508044248191711775572693277753148710156671947314322392253160603291675760929365160379108880573554031551387298707120913487245243925322295873867862560101715900697758328197399678275760447227270765395082388163041400523155407294052870070556806096805436957838707556392081796643165192454031003798621266110816362470024116622589571639387049523035844775034966101720032735184489204204008232514863896619828682596108675156898639795170336324044665116439388354609510964709278469411510007256877362487826813516954209593976725394299510707686570177522988362713576918827265141908238631242376707198847387147901653007382499514726939938490275252956815127917161674674866034103842265143652720963431597240230683664496769996823919672932957822433898646739268686562709166202554419110200277865302626244982388548875137817008902431811389955104804392635483337188966268912529570404786156850744485690335717477623706237010751001866091552703998047463094280991023849292962514800523343457330384816495461092255581278654304364531356248351754878657372682634406578379261086602537025218764432040473519255015641395139291498848074493294699341150961690764185248769356087610473535420202746099994690469517892896004480239979289153981457533519517022365045969760643227372810609778532910954441897354501176418292241459104052405844830825474022864595034601504923925211859122617818352324551381641269948385645446543433931885613857655642589397703628462469714069296474087561440315989634228114915253675471621578568955491034595065844688207916973891680870500312132725221130490641159637983052846666947773854731408569327537775906397402401406420913918968853641821140166126902601489355433703888450969967722535014092937557187466892578800597330376519087366798709438414460981254665503612173805242975082399835639914446784105653868575572960814233505188925994235973984946403775962136737393803804763948574921054102465893943761922666502561831984557840467014678075979704609761854012647204500420188793298391210873031205391717225606904492962256852371569483360685143627961091341577805783723797598190667540596657987936478392394185291091514047987231790862704551468487625362374267055138331141790925229125790112099883762248599090719842999372948221686568848201359715587178009159447952183513186013120628983647239044007116397697953161916027571249471175875896435618584754654603982723659708917891810902308412520324518927395389308866689464023377937371420155833817707950379693342228644406788000833769011505359409336582597736398470751675822478857181124445808354171849434012382033800654797098376453710471351438370872826931971422527668741679000770490992433838617028194443158373693434114827470443063553363005149511224300099901293933199807261172031354659520098544710881176976654351232169773630555002324613517369671898589463378407773611541845946796108548882186545063311569801045734298890460738369224808873683966335803652235883219733079676952406779599242449057387133211010791981567852008597957546388083616348782396783095831150749903485867959232903091003242585616641046652775316160056415914424139586030505951186151086054612368960597749922468620241961342007397381312258611290154885975361791691878754999772381436781732174262341232607787505690991244498007067376219722977985914572789255621965219201284872901016249170317652366535410928096267415826616998117613151835058281873246858613740959370482185995220644709370802682307549738097502278274380063073184694308694735230956387514672832095351170057086750772545528127974377862224954932742938587932258217006077580799501144921135351087541558131426784798283403554176555225712437406004584391302813510550664249121041388413868165876672002208367741108875245628965715908717007859024924097413228587426928522574091819911062165072257598755262629190900113464657483267986987913497674208041103836409733963989834075754583122013054203527741820392904940897012460305413183783116542096580079663431498271311773007940274853551890344059875732781615011459923794502249404083080091023126728575116662390872540200995176321439683360944102669602991386860614680583231170910748122580329003173095529403771895223576279359538829273023404418136564596655415237281446557376354933753046019729364520382298728387246881242017315896372262919327731390133963180887212197732609615263584284461643187391398609259091049788163463365788211702812860451509219135032801533960665009004079443873787794731016116931159593400437802825279610682931729075832951427835887778254945831874329372855530493722587741944494755723532518720300168895057392054094431308758594457758893095035147765641927211441168622884308942005168151668631554741521148040159079244251383065210710843838671454926524684159254742469783719487982867034156999612380257749709018374290100839942140856044933906039236403250264740541051561244671831937132918352595359180342522223978545239682682972892551286216001097485464774707548084703427255061316433527767817082601487193060246909666605420880327368839925927129361968558661649532859082367822060583251221612196162121324415009991620747332343813042429029955360956915492863760322027722389332257109925773853030440795982992659512244994763495709751340166654202407895857868489159909139428141367281325411626374277320777795748866095106371049697851086354568759948279461583319105230776962629898084026558595887069190454536489290333042977867264273461688416767570745875392173307808353157488086873034557066653969473568624774079166422221940134116382895430934645256521953147156794652757571918091584099360731253484807423983749988837802405097170071202124254112465594602757079458509244103734275681016164906143048896055297260163527148417283201649007542930014828156783672468442215146311987020054144768940702855371156245768068202894677160357375032513931059240326125899603720011030229081340024742662032570018928702522907107598487700041882982615632530984105933212474549041994000272095957666000443822235752463631955122704414146601378539864255046961873759116980539581334506603550631223383032720920204105227509811637996028181716856791175439842193976989408506448160226206357050114474680738196419203249741120296429537276962020864704302953956576264409705335521319210817679708330029091127738153234360965686563163792146222848820468872177312432234251205312277383944039031906262802006376444512096214936730845667706553821132315869460680652439923888314040619729446644389876379287088769851409539150363343541836812680647637616236964463183358292514682873003488514750316818434185912694152409950232261635826991736221735294034602372197923982419591377755967805153049853013382584413234456585091298810947221908346961918463320571200712757160375017441697912925702216248429851295455011896463909628210501321851812594260911915659841815285343794137483280046200795041599539822652558198951639986444428197666306836684327064520274691343797256828128635383521275682278547708357947266985156912976818902515915925277647542216121904215798640402943586286529261541711201209321004942757347864677790189360718137879772917604107397435313734063073388407007432234826916495577315984307730243859404204067451107435847701052550891665219036613872673312044114948747550641154119061781733921186352324217420361167912710504058620487239953497696408390301970629789178070401364075463246884899165394162652830750539910174675781908173896215618445223676867017161080092293532657858818322812592769964701612421687587167570931450312855517177084587953285762274721318236204316864753747497431668563504991252105633957040592347493433867450879929560358594669580313292325413526282395117699358046081532117031167563879566331691417401600187409251095200226477484525184973990910886602573906209696792784105282878737796748751370273341880110044653252446749384566109820266004704099623454799427509272262270451345488048209142585289868957541939692861967001558982415970537563711467015490944332319300834075556507439238919228313023505866362887411265971949128959270064883806093242379135669133224381822995309885063470986232091924901562024965848291985082702279234093691774527279062557398606856429769482421186162446576734728923500189437188844930460337233386295507196670222447937342325898861237680023367223746038882828972043626706693292766122004041738697262456568434152826680933679746968460098345309966217698746642717563450815287467230749888752003539436595607049237239984424482223668079262321195786675887618856446364505368137034133742031157887142114518365769806717392210130296208919965767587924423646571344375786833049575177050063452896890804742670818042376378678469799302665723398938547092672602237432463344336250771933592205055511751861489188335069453065459641854716890795041810894480580628877360514439553886816695188865131066275194298191950712626389438856910786237061279639964591362117036446231536460749145512766677036887821258189692912276170269702833639023331701762632292591069462047185154626554566838496609204041113360973767164071768929289644656180387197993070882978092089563720047057440964586829034118763753756991213701058365499825582225779029261363553503620049175800627081789650761167831948189411001168396459127712791964742719532993298456947904686353402614968046536683593792963876820519946836572070490801348124117201007726827712003342010017308013750843268624236035019584134287618074069897354235987896265814822270229459649497524585133230248999454021734027041386569542368617646145600164557744417489702497193075274450976326213056430351171096780214165508372408865472225833267216398787975282861556661533444014485625624073179579559260320327819970254371922081337466755583986546346380653959407201768540638083000468999452433237578456547570241898928193563847911654453593355173531509371506315388704311546788405122027127251956156905802992361603992766965201271390687110162099015551115551005716246341477707076579059163117175188163402974224589156775632760635675322176630628084580977616176163571182493306809833408801233038460107066685216723046171600088602913002432406005719350482812641385298134389668641337165426401378916493247313192708836481527603703565484109251202010610559243751855289501758338120751876798929286327893320912451669180356732278165083103495190255020728984284234968809853257422533700363211970021325992770288647706258517732603173598896878811771037105525107402882542402584235417695883257286274079387839211272730369853477130875986209731886024082730803759899678856827542600272401556143437962436682739418718422896643503783211020101141326463397570822128136614875057123961911016994085162339675428757893563124688974030435635655952416960833538068678459888059175775398494332160587313858522664124768101625976733861235401687356934869422356609251717958215152966890751199172555249784855654802709272200604231943066455320235007762105469601064767623857091083026909686148069366227931504592864316362900666107527501534581710426767700311993475502998888683007725343297485311606420322926558621532676928939725255138474256112803297712573050886315783174446316194472309370870763488776160503789015785411152614015769181668448088754352040872936820975595079331878271295506975429468372876924806468831853823232460093531566718567064513583802836736659458880509864108752749795716187194009667193386703499083031905092434988629310267491335634767543781447174784437606612542912318158800366477671931897584258923932623230866075152435511883200043040871354853244148800964380727841146333434350208014047552813689494930204648453436893967780829464797888820245412019083433410919176477241326807960437871519168495306444194929767659270691915091277368287364433929084875698775105979233038313053176314193115655555372784902084523712299061630358341556327772904146914013066386965086553579561957897046443291247062574268806768451118698094176157568581500680423687320848064649449273583270504418299322568699627147526249360507777424272707862166149131177540375744409140118304319234496960772207411470107539778771657089013915495714687261429910675368668739546195075503174957397274614377368524449755248213083867868263867477060089881801447652274613121916243363935908420853266332336760651721156280779011588243571956574676013708214005608531858010158595521454553694030827873773004379517161310063551507332365905708415020021586219285805337319860339690411887030909802278691869546563921214750991159662557812354057219974100331395766421641788537188600478399823512604111502799820149028573768640106629719702330136757145647003208016863421184313235684456782985631943278821285383068729332321227637439747343061917188737163818670049554883450469085483698370361134994375263715207311587660976373632745187347743338204347725272706110839646112195045964494460931136810229901141194930952060521801368019015010621851921095929845749064238596983891422255141368133819886598150451088564669438076202317901105718002312288443210197827130331545585201980552527727121809864258557285182117069906758762123519567534869807455461879885340306895635854383851667633490497472821946440085930260128424138868492870468106061091240492194665119228304810681312414677307899117435162340213978819330720175453997342862756787869021206813381451446905242126079416760839503861676563236375123492677403721292344940761472482884573620987608360640829034745711833656743604532912264897790378439261155227007397658494237152096366481392157861787074665667276659580432360834968200759299772196288954664765746450118956335183032834648399471250180715425538126179930132564007631221005373684794691012213795470981304942896537396456500156299658517600797039348618399220726032025994565194300590337311063954443850047169639966001897629442049516896527626155302257891549841283492008317011537399802211881596254424413214273350595124159203058757683617094800999853101853317119927262571821107649784461166749346590302808970316047901566978722548441791501893425210632540493318634952013486156025536239974846564923433404217797491217243021495840231487535907368367385019841916259468369289717059283326070511188012840308040290833782954629161339493805038926973842132167508984628641757887404154188972465078149752958174781791508231540170672089820671508470739033545284311454335897716592243373649023042564640457054022455387634110868645454068491567812585221095760583604166083561666138992033392114675494974555891890288626924524048944731815194569233558096538220781853739077549776059285579958423234252772804935679809180264465453810749246850220994254357478459826030757772415889879502797174190199734555743262535177609380306843670982529025294900124341334119026049721073673115226005350905279264495869314293132694083466198529508426754364836686745270770204125953455507716096670421199896484734638644761531534794133661302110631733825746341549933034079142780365471726159095603903998241532862057471355305150722496095671537203466297596853955567494396378337733721369933513886685458581151401957180607288804364021086523772051863536810799277878241326174273394833114016179099222569120060533009669305499061037472367896221998971043422927288423736498884047976637706554819959471397698719784789576459510783972120059348775002481986329244957913692679043536580264949121428006418526029268542390888526301628860128583231501606757401978120847434905836906167919572367641699945015969492051834058643062417085037410013653532189481857860314763326801441407030142280155613249096054463674075055469708806142324367920349031593356013373864608877369545658237359862163901965071553481688255646949703353016281424226875562811883155309376988547812556497089078125672652539175871570377537323913921160744964554878593418654642674594759528889793828017426830744149429937203078382023579514258421027353309900371130464338524034877329031436327863048746708497695702119569367260657231688840966077905083515525472860011805108380130505141283997467753745999939692344867911486741942103985621190399126147452541100289195996982735625760469426852361553097733880148661435749960511832118440308736545490748496455981536086311039812241054509879895086104802891444247537420037741528825032556414143317838425102801834470346261174138217287563889598004122965167078983297573592664161526227864116400641332642778135525020630830323754376512997063147722939920557052812436989087647837490086917021038852950248797681023480445500309973941102694157077011262836221987163644624391831882884132647339477037807741947605335765158530456485987947649848445362178287629614546471977852670952949390574336698643439922709494511759762098681612751579350719664774917279077377744522804751852023159151900080523819538194072487764687900705527826052572429423589200876836305446155539695970771607518403060946877404037009892674330082983415602775521690260862961131470477797905690094527556896844159969981560814635716950099117452291582230127647194970717232757778303735109034478108298529962719225934584526437133169453829507139484689446467071602838843406946317495539938682927098792866725139591106769269784616451475526513552764104785823913735294259841235162515090933406852761302346659561304805871581439145720143472147700337456601374826771485386073632858167094267634775961376143519001406481671371716220868069668561303461447620310221531576324635916841166718506408581515536374854598438355579727098803789618933688830305266039820552526948357106514830443247641216404992202176862155020425761324823762863221534366511056246654018418708483444381167493545494348868659789091483720562635117345232909911178332275428999592892242873553034132505191379924512213608057883151453565394105102699861731758814651352215622292625076205397109574271146091293525390220371367412260429691969582436587477869942291213267381953581194240835778995216226246682765141712066984473333856821350969740551637239449748494436894988588939406303192819700359381784755601814147430396482886707004799490155330738937066201545271255666293131350627714285237776172045591825360359669490309081997655545334217086391677105645432479373982223575123388465226333284615157669596169368883097875430380660020471077388652850442052194272743620913076769033891283089241465615398998241055796321011659016562093850609580947818225764327650418135784203365008743549716530088546186535626954889073464599122162163847965194846552783775977948834809937141080238765128510925404372515597937247811619015846706844909529586650073769609097416572343873726380605201122527613017417374312064990659542597726577850853156719760701263781871676209257313577839574531438451841892774847233566527867458853471871806711843191670969530037579480960846323685654668920919873987038497233884190099579578097435282978544749201507911294391638027144417822999407610061329940789933229633673254783453714479779952517290519422410635796533695380586058324289682549219696370605035247581718700467576597529107468006977524566020478601315479386072325094282239637347664437604171142189564392279490152909387180921880716216151923216537112932693592371248824085223270027251989010262888902303792242028440516172489579825212456255298136928035602910556990563949957890959962471697328413234370350557688064382334058243314269756761273898080665388606356217745152033453102276825001841733545840540702118537737279028763622583627071497058842949271482755329566860862198069124580760510575571648126206832456839890874668867346795640186811863224218132486640677274385613974333700070650115170984303471775590380243357611484925353414791983103399569720586180032901930521120731650938543204000198747253204014294894168690273914919352282118670860761255688913274597927760237810470048290711115868771655870655405122822866576556649529035824689958390643740990229111352887178797827931199301896506877976406262660606599857251862989822185436670029889747536096099356837352932339754407988074799462602404014171601429824982538987975117342221656064546161486702017377369875729100791333971002732291927516893806804957895366616213521486909237173300185162362172740417939431131125866476549445177010671981267957863937206153485538605230318089931813313036551429026015311164680283271418052234254429199315009443876334290121532882021675417714445821487020660691912490290860925199916967679786543925449594612478073722799814118773760107682072960486295167123566827258423256095922845656186995140043165704309485713326716962120137393489524759057076655285019231020587988509386596150150487822397750250728893904530655179188813676955056349767446685556417694605893446332784205561108119274131233791797904610556219120836886156920112692062647884389322592654430774883297109448654806673264291528788773523565630005610090659252422632708509433409578949664576836187857768591489087820738310190366827817007546294978756939327234671442632564032707112946970431735643025326429031909938100553186203673170419728984796014731599144460813749355240467843072859014373488307302944419520568980053179918924899274515854145428229256106352594864969194249081695028166652287880548285748574780198020116132383690803531522260967643997972542377434780239290739868204922831135758320076755985315392075497742111167613222545064606878190906887026725235528515041522487334220036636683984260330497129287052900986926875635346103271152207052508483268757271256107677929412851815123703245640046178074472961445971966329951423364190940966893736181298065685531474612674177864810119693296120754944024486200467349800623091570746415838153128014668373480748569343386626335768236508476643407558182013816640957617328145668971881267506227605026856832763720718410110269859020357444461244125314080697641451415512940160968681053099949124399665136408052935168832368042064146329610051449823900698095308608282288820761378969864750861027702331583855244026279277168189511112837887854310758971338586979783773049946620093717627022814434928056764338695344278998810124847329439883664118260194118388943571197069989231770509988060859400890700050462067443511489123396347312137689200476196757294728858783718091677250362270258091003244742806468132931399699876398901664117439876683376994632471904640269219990686177295089077865789719874853169769343109614422210927788706267122324853316053141789187702156794161255833579652290352207019930854346061515171604225601961612016185242258836145281967153994073450428995124431896972669871615573133324712661775020667740755241231559395420992229046025420622600861219515696528142036536330395797640626006371905086285195768526440968185677431280667285225513513807912870437551985115746816134456546944806447967129916123011634878831431641143653989370381928486199407171692193119427979155416205359958649617611199802739705203655896650007846403746014427845266468717304721147617736453286596951482351277513858211931635662416941162303296618324101956464903279575683289276634838437031768350738848683078405929082421618665258540391068024621036656298206463490523554359624028212060512415061857408780884206417361074105369868492189216684997954648410972969543889792976274902947593579074709922008786164691269362138452279524514566663228564335765274087033435488403241655452436975288027355185132705205686498956376319143994760609901985608907215852123907234789728686652494135320044737486622440593312520546132005631260546106250709930265890256453649496885628627105439743318950410121635219714995427796890726208954203348536165949693934918930723702249079150944660506183743615015865994420495211021337940285141269828414840197007378803874404704179553454655067265853697410484495302237279600860954438363337516718081514005313780385485311241177306496068664455151731346909813561920635944926159323533812820622520155099781184934203540118961600729686770563401968328273057910753612863632201095259542701328380306970100167677529542419258089448947739022159563608922670350338786135768360604521505938937070195824218989825477674173647053248904744727102597482529813353021290667826149192711652720280391129763860083617742315441023682640124968404807776346219970364386381806038919714075024519235538510030451997975131034899882942194695984928168726701303820632504615207419117001742284518002727200554081137919194700239518947963530441970368483663456033325803763941208805567942065108857995986886116239555992190058961310054576608370808569112622373767374841632847732575638664262512251935649332032117413001042462447828268736531857599808414213160461116909268237485979370292265717751294505288285455245101134234414158336218809911816173672586023145165557583711525793378686614855214227011921298269740422044097754882343178887454320724905532703228770954481213697851843316027068400684519602251908663412490136768386650309424105662883539702016221939881278758322459084107708645075130710464560859755441945225778206148229017656338681770424969620353873938658297294036476680903924777029569657589060666272139018527575522695631410545354225827185354140423375221947868007960002455569200441081246959058568261784797663445549039822297424452349469348446238976990875979315778239006347347766448534873375120042579450901842423527165505434266154940206058759956053575476419600504738605410900077636795495115533251281679341821405492970860125289557932201548027494648664623661929459612467931497651818489480046345049627512078409735255170924325136859644326973382085845078568179385570269091021278937645525679186311860149089626402894178997230084535446941249769608419383662485725241848528270753809188658417062199088872968069359128612125068552756491616501922609677744001469399515458982250768906896369265192750536297613885393034839394003915108705646981690881814573119603553058327976810111559792341550393218697924414692256523075659120557471844270192256618713431802938980676157231614005573926204499327474777867479389939463096535390758797104322147702916032362992678989524118905624858397015395102662044815117003065005651450274001436539541675386480668961959755864662145095075314836384398381078163107877537971155141663962700005476333864837829425596859583001095421795758260732711161488740771902203292547712957966570610437976602788269071179703101337069406085126529189853010541611388109450637450367752752231183414278946066321066988532618794998817381994960449624888133414952097104887449263713063317762060471589282958168671711137699114081149741487571343738848109445957456050466485502273706451008547430210931281973539274313442421298590785649048504777062233294574873546876044242472337617346286002636172735768625681759000759101950916563052952461390288398711988019565735096845736455776092950696336304089351080948874014939630710788455336085778361963633996265993045477820420070030464436072441168161062820485841037763113820751873178280390479743847435559886979469371656112173166509276174549961242004224796380407652202444262190102435028038600052816561571885015605726825308244847379248350326676076452338770737521534549459539409437365505202059051546711771952127879865251352472452384178054106467901149725021270576838717248964426287158203468793923789220703078440789992532076063332364300437109754329992929885525472555893934502163552854540986343620021345890581447938543134820643069607899673226781560744717459758104948851845654945876528633038344916281197049388466887317149061995744774623178143825027291506356360781122262389311245406602848920017347161246471509150941638017415499272960972271315464381340315639925778389904492108765278168167195262358904986031462091946782626393136296706475490439928389875872256147426459205745100421434304474834321365259679810006174753973841992324836548922525867851199550241119598259956710660933526154684248505917016717583362681483017040555268474481885245242732961816391504020937301473550128793842952110079943300092100233929915688004142602924102092248414323642581210765743977822390328237840373836551130956287052680762574780498772257261144809530970345088076388821361375295168134692837506091828475185732532617607735433915042617885038254050605101264249815193358444479980440316337548940567861426290441042004865071744157967358495795692346887348205159958756406999692476612660031130670477521603591304414163478485312404227725818854521349765381665811729312981835238762913088253527160963290654467124578150714113191909843272962025338408335805657071011856015908858256652988475283164166355307791527484062190431864952082852870630549655599888399842618371105908472713042927304258364222048071495962533787524748782384300382804418366065651855340020718316183230835797621080557268918503308922277708274448230734696876295857484706569987526431583528338213323063134667316395098592317806070652099746508752294535044826573010840099537030947076414796513323977582509385162104754903428352051342634518497554300251619708828435717504887893892144375377063919529478014075130466850102389253154050279974666385267324433461335429422820450016107956260292503709275063973274000402390394849357996113995908797776999581355025558681001396956765905575121221395651878471732662231819896013619515539249539490365267892756129041759901027966840318243065084303301880140182119667776300845038129925853138806946569057177837096247543431637348908559733785131034477300905009580331824030792109180406684687551992194020259274848117566534005866963815602959171751960744589287057330807279254920471525635825518321917123481186949653164760818268468719016638742074578547361019072376397233036540413204575603624617068627151324454304160469194048382416402133329732631029299908179612880392235156525461252542282033724446755561228145462190992355473517734366009150155458141200122705723752050937150916615006979276515822965238566304744441881760970364251179436116525660277715877442128240918664976559204368442767561465978211555505734119850366247799891170432507357232523053944565185007792066351195591284182711647238474078440003085278897252936624223185681370202511896588881560344153226196062594365176380686770922863073815807934555777808986016455258585271866696236779593581723464389571597004740324678852264051921639515147281494631933394096591143069853954749461610166282718833697293605584552980115596104581336295313980501279675465241986923677363775337660203611088181484897714407554253710967000553021131156934094866875438782566485564980844038590357408013761590167050100088420824110895607631757652556358841064190304543447642913693109336192976174923702155288678183291992436379178863925563295888322135252342238644238279548550024851733892165599863301434262977443133313326617282602863988421835639724376525900618021475309523663854147411328551762651109319692167493863688757929997655422845206597662179585917117540264536910003932861576755829199405417342722838651840473297167487767227883698948498311047001568943837533093018687146301614874870906389052897639248139453333394390160227113833475691081995723941739972379821186020238642616616818556495586855479562783596993034093277911503586108564524452692018296358942843457892498823409774818053613251536791218088448223519938121372842463481482962936210629109063958743628602560942438041469181463744469290754600190004646936963036341884316483115558287879200287178612028101746478596268054346606837296793771339941217418539647806664793317929167159430488442289135500512691542757737684964305122191513296052718236681041947151464615186973805249911697450543632384943986419642705766615192803351976321839624844678442373406691869890999860267544240832433700586585158421281849397527661198019911674102161478060679841024838694688875680731977785739592894447851726655505148089237136503437673761276065335120787591125184038798538212663679102863648873936581207351014960742830770737107679367696959296494754262656564948987004626830122563767978950017108676356634060273362872626216633297191943888977948149257928387154068398527150052510279660394037562660334278737183386612609688218997675664082954611710215554134441805243859378447265471416147752404935058708478359234075498035583660066926800682436171841351391374445973728499065893133038283332511168077034311094085616997098374131985058063277596878247940323047190491222018276394512448114728103946838623192534414074661340006351239808053432410826046635415154485477573885041228190664504697469993373870295815361233750506400658522233092267676795047518959426459044884927289239334090611758284994136942563863072400188850600047739488904173416626183260593991112984069635041948837823626367273259714592927842080846618592620513060717777831195030158130740369664911786351772976700451543168318217547140178441606947663817382128279794160600363061300037551902560413909419421815481348058363215264259248881848638169249678406674178278580587156367174767100261125564400576440160585489960728524419157025245632305205362757827224084105077181074439178630559636469282799239834381140679137548561816261887737025207185156587494056436075069989821332735066024152408224311555410224804734275831402610694934166541864875110784206059869782176227088029271546950120278562409115927669618482246796404161513056895533870551205627077906948560277718806316987662110556435398884014006703155594555799490412594611599680445838574809387997520544606148951648180277043067236107414376123518049197976616157362134797474720935063885816151987345026529865256525086035941145513865455028936624234221778127251923535812395697470797376261044821594165077582733168666268045678416992478393527013133764681835826994348562553281877075896135103076162755721555546375451278209352388355442094687467341806042763582656232240650178217960537221693566231564584921068546733032080889229194464527922284752940587733410098084249248821101159442617524380731056216075925731114325840838155650051180159041464419595786600878508818054234452141728980788317468278669006051515417437220741492999684305033760521373720434452739713304160748353403375702212857114621103933861331472858324507897409173916777653561447300061396143993274356862502704121285592201819899077483013304037141964476599956770848927809384308310290284597506188529445050712741278254748481257925719495645133008744962966347452152217589630547066299684371200810197128469148852435898195317391107317562685606366888471875885860073318064609310312842916977506295050550219666197266702915853247244927050831986156666696762097200479585890750277187715777514711785571304073194522152868039742542764485485075557190782095647693866048453459576485464462909332517267118004463958029566380553706913291543510965364872436685714908349535658154576128792719300393796839485595163962022916479643108047753403642123007459873703712361684692212482425019282902641618557146055233031216609761960835043495639713379539109932550919717301591026616055389017203949005774033844180933351737417144002681157068136767544562389971002150625783770962504480893850498562517606262994872003140382356473920915336893438456504223914784535570946634691147069001166251633699148456004862512044623477400842090638140539587137708648633386381675257614293154222277321479894133772290536429804811903171928875442213146454063665606382544443341558355557447626257868956186892155058746217281277865849464486581696748423727935193202492058965342102344176349423263877698626933388742724594740502248028324396854019409109010764583834046037213035864654809677849951704855218438574936861024953908766253899643836397180978449550046908949267240079771688175894333195182353624649579896645979092886361777355016239295234251434634803601288417104776306838816276546703795113741009756609329935235690593945233432599776288820652508830597423489160929464464739520823967902653465939405455813841133941849225749752777852426495080012496477510990328010790729110949623543181956964241657225904730668946199189770307394156800831865173625795588869471638922240986278938879927851541093254958185557106664770376036325710683922708028007408851157829570522722333223328739717674160954147137033594025226359730525648229004510257657805519874807198133656347318850278340820554120828369135653572076087636645320974539712191996930762490859605654506786545709287492055738788624686947302547378690608012403219214806682885297817546433829146295296127322276419233785768436382242014476777266608887676677435025800572980018810913507559823606507406270990358500491605734412194107368757402719960955069867526960094647516258821264630795116394903078481096169328623720730031577484604494034251689374554280720093926011428157870557813851181483513832485849514584503297364616992286569761371768514946448068933474708701470405106219765492592140941591046519656953261732956499228959560204474138513156516938545283755138165180146621979690753311171705239401264094273407945905920145491733876648520392570029895413812856769521988080603876846463569188583906593782704083764285935268171948040391498368498869912377372365460601774691282029280015533114338537517909602343299792885430400335175316975838959571329939935370697135869461136670505568867435270515401714318259633688144848207509604038501936470921411595175790606452023328727848080061999418022294679256163614886980475124316020969218992747615743236405960326751059544797576795144735896820538956461814716777968137173621222668871296940955466015661570607612332699075058320624122753205676524138158400648746434005786924099737894782213532125343894893941531642051014617102752275625446619980507269138234267315096962283957698109990313181550871416801654379448735075642854933589724381037328386901090421776458070674344217060828753667618087552221119626999194335956215150850808044146602748989581367296038868970881087164338986992154704884023892902792097200333770953987650821740367195044037590737301044723353958088771224329072644315408695115002604404661313656508612489743657153417494189168509226925286207930228596929122424666334585571484893953261684158987889902522440237230628721947328532853510799434544666315750176308952922145957313974131915884505006956195699265394014296885360200420824001197757027096759180666528607919631442330606303902611058867373951969815420366271769847234013350747082524715237231107246646332850400727917188532497913817014579561540852667147564401208769662987491761691173073850610302832152762762872822688139959591007219922939922586735216825820320329259860341335046015472820994266125200112908460552988084833055372146399240754698840024384430740312446508227724639816838795062770660539182893314210337370458461194570804414384836601946169305359317040280266711285042319159600623647989325038960572894228758910274954736984896101230639626936739743102902195090797646842853173782385473425160323195735701631481336994918459207791643523642279999398063298836856157530797266559994277602097586668814242364430241720419881483741282150707516012496710506036733344724703473744434789629030523028935185889598120021620715396240370561018572238319883432333588436910239151323481656096132205169796528338546275369320546301870907715713286468205110294045903796287672260719668264887014877053257267676940905526973329766062854044925848825906980467688261166976919420684317897404472582631382366905304939186402124059513770052099853941449149303258660709463859793689340566431984442076926642448220166641396787196486424311280303732849501856540754521885809582842147011771644431498193576386195289518269473177861327560381143834747375353169029231164921445876858234052836683494776357206622656059744374012008345746476233207303169131433918209855117675391080099790447050107357710941262045679528421009733443468759439787869616739006189494747736185341972887629013307073043193331273683511987391061817785037639079028739821387616584559882357971156612913630060356100659800244796865522984714963253400942989717212617788155268369658509200634852171201139800167146378012011672442505805974090343496124575471892752996893721846442188881338805744153243997688871653594875485480204538252319381861002392947671987678939441462370676140666335449938527731751405384003603576360865017601269911425504519580212342595077344506640469948298390313785150414861089441058033345023422676104341163045566440717489242169076312224780846270109779210836342504037982469651315971327977887845185599033220484555641168389538533906384001567308987265421670172480784026820362634928315758137697844815876403727610833311282961474006286379116517788481064370612960430477907205099919069594771106224643290391809774447302352300836554073156630531327244137057445918059187284346757592177584625460614216659584253765035079130971991704267968816562830348958880629559092451701584432112963722717525294234570121261752313314794880520948224023069861914953655342295537409531478039891654889829549560865069498028878485456171374178043086470086905179126437677125114156496024104607835648422227502343494503803367609066002898414169061672692699058922253630338204717264669575360447695131398050949975633096779089785358170777230564395797858556117068355520722368823763451588901143539449070306581498456291883371930611633910987956310661362710302342644818318703505574951211405426473169685147445813820339124702322615406550903982927224601767062498823409636707424372849879967050655973035552787268166100730912624489805150131064926384209006222122799315109698255897948328219977025441484066737441854884678060657310979444384795497091586288494534331222157821406420987916961739875979912938476857029981816025550135940805777564239162407499547562134703612333500537226356961540007062113947435661836590558142097011797461299732696063416602459421222614195041173920682086517027356746499672546532783955858600356994429720664187838441817556797733509942098773910048785092421382646973325335187966772441864659164413193975516168722421288953433416564563120151863378684106824923193041870120851039839350734936052312372291006561743785618533503308141172515271663619352793591643216358853547897319006208782468529435275772483481606742703715853941068574338283600878889060877580525109328706145679908971763171724114555604682263103850368231509115386282788712835701922969859581918904623827305150258270515027135307426903746106842264955051517414116588779367253088829768231075977583976618681470044475979872460770686229602206842833168541632250576397651006647367506008636624345947712936602512546777862236383227041914870104053928885925736823162956571552064879773073670381605896630229929240096014317162244894337151083435640222192333253048705361304351154060720431708228761580468066648814682285345196272049032450267008339164062097208283016011983359366398745667120374315099118113415819840244374734742162599079017297514765608826843433908274824257449484455264463884397958112575651922490639893607650769527834675458238599589827010242291619065562586257245973680176932808838575461360770819937758768553760814750796492378836515879861441835836696877661416768832120597832140370781762092960124262027203503668993745133533163647782745593016930937432778995192453514874059026576045891852109720485097976759642015282438678341499435195460042515332513018809304244160507818158193057297633731704572392806824309669615466356485705497782063339654782323548740379160272629477047562776320455781254959320201171989508027479419376840333463564365161631675989700548619295607817034602256034033342423497617238879936847619041082911446914438030274005166707519619503989598977308849444437029511606259134477488740394977756658819572506887530535554924988514813707798216310204251968481637002445463264741256412746237932164184087533626159088409080468705333375983393362510448311220672482125001054727155682754576368876213304403162947327635900426085009761601441861551550158041031637432999736953343600261290326259816863044938955191220653476729982046867870887590918929961028403487904156178811313624078485321358814040175148964929829863945610644755027500098531998242957559080183192487039000933158482227986184995201604654050028480699695307133138861345679033121237609224478613624951026798771759996170455103597238682102387798221447442657952233371985278865004720149200515054725638336446973145967301046912098006946710402456677926831390306985694882664711138124682674729108191794700207369867067752102017179735009360614208441287393782702088162459115818384624196492230662917414992175284040402320080976280565913848676898618980892862741559866286290135092525400906967457403909562103280081350518061327837420462207446268935948552316282472471912729955882468426745846756081610378044721714840238355105489960848192811461360763928294383341931601724794231300331820689945077301012261327207489953636824250367284661845148268501932265739748172409248443137796767220212438487744661992214569509107935106227641196176883704236612241246881534539861656114986316817433276593274403021994714039111772644574814706862569450410439684223871399535401441691927719008805394895773030026580153143011568317779789781921258014052521939213517944033841516072338605380075042024445827961588315375291526793195461503467122700877526988597298682046117500288611465094145151811470574125003522166824667200113085143329594089748942796031208351839779895692136449228198138874790044839908846716108590941114371594565746292245761877533564600461135142883951842820019598076582025088420501394466330707981308678484011910355652477092407200862723626555676337376487628009145793521320414749361339352516542648065892104742315888683914409982424620480244243463916603258354556837122279318070645431490642550688054290740946904260963215678717759355791867184880591369126693186625782172798730331518698421207428501078118000522403409576867171157689787533401465812032769810985293218874076392877125481334126198197780252349718394811891588009309374262971725479744548371464571299683073241008972739008764149948692168135369322143320826888373890896535030401037701253712478724837893958431111679840261550289712954975846574043070875855985398296271793859642626051082617930827773065744516629255212188106316678633130701802039025867680864632471364537910052648575385677890402001873939451976920053900924295045737080386772843326367668504665283271648750882756847145781673743048029419275725339403691384850253723775279247778062028264581614008918699819590911848045596702109755008791971568860066408996623346943771606142294327627207753012670760942407693435707132573238781261169730947475455683645759909187033886828190640430405621082560470380455457447321232418597699665088528733031281902049338785251394660280043486155062827474673985416957227664331694558192200718686466635079369341479388555898762423102411622449705456631283452102871328588932344358912383675211552395988542214314781021977188609980699299322850391285793270719065419851075280348330311478305280648658719213143538417091994458369959279925960890212021541897478454787752831363496052063013785446845735001784122570377638568326617702181282305064411896704738147799624514707184805195412434283177231932493301836899818902545216717846080004685078491587705759285164004411205689200755968685255074178192963794548044744977971753126987572939672945696942673646821727956252621173652613529640902165304671371525533454303402180896987710617573102867304512096071692279885793132036924182984090294148351117383450009471037718973676477300952835692158792776109975487151628891342511148024687139994766405543001049915488811564336769466980283888467247399638436651947597389728301864299673801943342601579033777252137689759863272673755595477674055116890936692802439729349610397453835546118220724598048556458506720351773331700799990463484322914158805511045307965082656971609793521964423547846956166727196018031022862999248085985238442789852549207723452178606724622434470848950340338594472676100225906989210343343332561845399414259509308548009313038120705894971716969750424400754575590863317595443545432085298209630375009706658868199662212327927149077706562495494906394930579114674256049850777147835231118815487503762325203761634109698318284477894748870118818797052204983896724784858306222023045214299893630569758609098990555692686148130127014417620481583606935335190348646306348416196978895773136241722034477384219062500139427501060339273977371314933695309070707324435180123595915670413818479225957596080789262235956607035500467770851581512586414898847005266425499730448376370223526467414361849763715868551545324901953280382848115676688620255410830543214778206758754137985881343119112232569620623807644860474836112563407227180255049097055517476912236568639913054343399363789220855633984666114593006364534886941101158766533295578795902993054398194816495188897087238178771897747060117544860291788555267336610008430812440282646408121098278470360665266744933705902389796846935745992983262861387247004216228585245146026486238211144732527850632429008542162722856321884314878502531454506890225567877627479627028183737136799268729655509020306301419322942515654538899485209458294789192354389256392536017184688996174777921480713924397590266966546581166558457790828007380443791564218329662075852069705677045237683094279388174150935562073989448438722077989511275349823067440260540762086299624612542194575121793198802221529547728992861351019164645996739328263171516148336454256447680908383406342030452326498978858414174983917054535032970356764959642438094241366900602647089898468148474459342344167564583197765154291289795867530622892609639918433163618778190463625926484115217773067680663171039937528159967833574386820918424685030997437512937682234469763553073474525821212501925508477339057057701672897596921707135802733526416184565783343641642139066470571414209434452040148822816138833832263808971897954254313886916591341076424005740045231580836419288010175398511096295439612036192397224503794439205798897577428602837214123945551221215799934346339755619900406895407508689091368829243409956330613135516817520430068827442132153165864646917502071182553661167009420788745417680475788154735848920748974784454313462340202768739309657248980952786277740379995201959713954380650775279177044218846088301671305811473087912696077408731709563188570338663759809632746373022802780367782966209131723467827192168293689971346693544332303957650503617575423129266345655087854229763422030378688039197676208486055174968924797715043420869256364674367430012078690023041388504204610382803038049981173252711553543835852280732395307151712905595941242027016174184573302553230390278139748132717141133693246458503417062712209096583129552877800133166683878794497429732256161107259213895344246393722109927542417798126280402977828738948729785223038789169285735699803162962566865982113822758229276442527500114239340706261492880077345653028333474340483244915616234615781112912245205133920507799186654272806249526284212229846358247453660941802424909982398761689504035878521514390293485217613126280210035217924214036522305773187685146455098331713641794172800817180898073743276523548172211910209635845643007352339471928077408533946922175814951348453910616738840803784338577152416846684137673657618522578189549249664350111776218741178122022003910653812696319176532070212199447129812702511861031690289273902283640078464057492871491566398322590870563177700969338514982938661035748090281604733989838296724226785890871932205107848045359062266722593003684414585629526925629961789430594699217419236572521112998224068172804666160367971186623519636931944246601733075129969853669253015096951980625769087442106734567036412197828084222766681028113450583271745725212277382708148930203486267248046883646498469604888642626319243411337641702629747492990730741805866452067271096235196525558212287139725885930311641152405120752634837024314687293253142527041118065725271956773695454806124152803653188612715788098619092770966540039158484685581073535887920884147159854886290271449012334514456271245284119872550710230433467573408225704727981856914644064035123439827372903919003585038153870189198495426455429401291575017207824491053376772307744138745846564522993309630913136570913856707348916122614229846189142466572696404390125401136800630974129873127098095245812885798671954487709053154682649083252691824751477908403028634361283106686561014018899891545694287049319203172051792971986138139704177619657300190067107618006323536409686850445233772173063512651370182082803162921299602450811252831426581334155620024990496838285741812920442017213722187745726915082862879457742527640629278002631102802849061788279136916195778898467278510422568162438241816641756924860075361279964315202918190008248636050039953281894904287340250916604252108573460939543054126879829442165275876289903664564132228614910436502880346896332481543694885813963943786368441995619927360847518642688486570609270218793246754950214037966003377239525579372036575509809528036748181562053237359160089036422253149162303931576723904570902784939907406853045147525496904899410096688476705023802996696832300261176573846054037177297458613425052588903208512366508034471810190369428448625102826190505945354112394983213538535490137099404358198659807333807740757005078645403881250953431132640279087772359947098600584703672519549281338072385303659191770863811643147886238046625602371768699521910638077128239787055321928958283239221780055652768572340985592152553944496539143555075719824205709678428911297590958524305796140980965062281908303144212753415167722924736651965542396123195638495880580068326027196218249211426911147676376710711972931192427053128761364994578379783379576170264113480980102344505367803128617831281514838453884115487561728207938944112539171992484130461415559943839218705239754481770431558785370291234154364436999429241693588028494359378688339507188008535513432587899557191445508868519682700496164362362196174419372664615565349871757543685062570765668274256084890645107212946182635023073060514221167661967217551665561341302654772915271513359255519936056400089029915538529000286276032026688266024801882855942942578311289292390910496014687548186607630321880666019417022805290674882110715334675810051997230064285126593108961102246173200440350337895491234368160099340085937105504996434736790288350038403881626383446579186479819246998726661703819050638233734342085322583995524467969898670513908264205620975029779856441913489812533666518426800640484241937024034103791457070025958525237693656100433303138940208809810873923912365485460669389448620531264866185415423255565461927706418985046543436332403696550033031083628946231602661440728716888965695465049679717336726704061731440853141417462495570148323783898398889755386440708303094047673767819899874590355951546039484612102917700136182836888287682160584430322934809933185896050882795671227625001997683998738557640397563324595936091872465796223528511811509877558605489341349966584537228704189650129550374741402330606164446427657675003501370195924203893331322324294816376226713438470883645912885565133986165095023026063063783148285241289127411507673934657352478957056209240103048525315739001884102374568118525447529601516718578269266100712982534544188179309873468299488969122515700589915182086080347809430585450075720653649131416802666414019778025149286098971040594732548539026388794701110491133466802000338282717430820957532801415708361975420595379145913978067439669252331978002817586336833646804315409957791857040717113678877360025616939383424084029060322147802334508380440933043648059749614454681095570394141464051288124575207138967701577334122800385036364740433063221022674280642237671457410434006322803847855814032295299370762205511300731924184675544901974512210126638764704345640363039979893788906188037873507427020095354467207672527656251642136412478274450034640591282700582332821883880973243473728237961151584155857627288123151386547768173611300702042269766524462377855087506095543004501223302104601789942016556064061205875608160348476621616047024076163486835393431711927560896126829539287723282135985283683224037072631456454192067994726539462810469871288210616790755184298168949040414884221281555604374972504278235411015753053893919323481644878167695323398632045744186877757143321188230825678600632255323092254679412741307572265686446532040694607454699927842521898654405230592677468090973060266914247833497722015638659844799341859363237558482170541086850112011818726724605512765314097145282986871795259740985961487805433316585276782924084069189381667313465630979068635708534155784874266892420437779715439215512585674980118910959018962464379642116890246329670046928256461193940421466466121607126957806077530792463019515687977257009877947843597518712223387450544926692819240553058244769569626001562448525514179086230809241169676861335706513945628069919041538408767991417618828528569194645976706903905092264452421836239414468943202064214295792476357709782019463176784018308434928415451138336911068746253182564566620639975884867635441298237171461055230485832495305079482133845194579790281855188004366328936624781093023455012865926036372357237016126400628024468522129682553569502057819570320427109022723279147446395577343917059676728091850451224662337455462404272689140875403127389388737544136232886232176330022547627640019036062696556297784262331304961900501930164542589057164347075336338901478353570404692045633289799651815929965982920215492009091406949287889171894114643783159787025046818343894660212102238954893794720220108446766663364968150183565595223917359878824347978891459427024947528462094904226629820041772919071179329348168580165473190902859117806261509797893582723232587407466070114099875317161414395283078105039291209113074417466220854282062877218580531349798763495932050729406500477792751329925869492341881260011709167950790024824354926644024268316647389906275370272080035043141784152880418945239078781854703607478763343434271177660882750554348615972422984979126770389776231296030358974570135436538758981433347686309022022208380042780498896231678771033501145061845704613966988706157785223402994864426287045402989828431130935111904505258055663984444115228080437886175016015734962356851787824870155390995812468039328688057293421345852998609279106282925624653823851900996683964915608252597439490130561216604498348459551551377359519688193653144383675129557632501924926156561060985980585800505128221366007432002822363166844363687165487324955795303760607964748327114975673892127015747145684368834084681067844316507294517613434444194815575302950776362651332476713377179257977229788020584127266388129233840891525706736158876029298514849667014473639006937601096815022250183305256928031218310959886373667547420720557209145564228881003134998117537944104305711725121118309484987049930681098362113946535650869878376355559005322504628456588765450029398618178437204119846790585478861239604594065106565450421783321748978402856019746954386219606115465268640101882493893530154545881185361772600281949701586044492651179369740247019344548574236833852329627994648716964916908978713762058120813618359659008957986743913876100180958392208010473452699484455705817425943109241963782522539829430119975498999075943549782744273514259294321260610172416719046534793271430821422223584033110365258958842575823607441983324117995531164844644913647830508088327431372470797825535970040367607333914800354797821426080076030981126601081031037834412259957934989519538039398326807528890572511886409407200934906115625557097989638960923352343603837172397370932967286482953598118733989896896435561283276995125633027470627447448029579050945138513774999033255387841993579296680738086037708290810414024748218251327239614043119092154964519099316632417422649061952483407152387173911256083609521627415083023049508777788317141619604931843824455107429508780644673404850810648393405329765191292659645577196379262726184370994397886665179153092878172072982622072515730632512196262141851976129006466208654667747728856803326350384957950599446665696036550345092387697714319973673166999083302759219627737042830156863641587856760589094065558109649815452015260250014670255669810330837783889878994112056676970135106747039893151192474371905215472850201355017366799228606142483439160695140158555874527834122760450616552157629978946096222715689016162406190742030118907394965974072774220830298105046078139880609759450358405653740692253638394133289892596259860135118908018257232326803394930383921946090751283471096151793724956288929158284479364302626273369614613141988606386417211221019475498442251729504110504832156229676175586022217406195695301934222119672490784131358721854731007218860905313494441644442599343123691636035272664059671255423905058871900744498203910537893375562007487557776921549937235652324322959545922088273779342018171786835978003101406120663846179829133653854025719137709700090787194671559801477207215719906355346309213739320172871811248232781429605781296384348765685234294868159857629071217716406043227802958257140494044723847084313833860051268645134787482049529660237408681995347845934058589772844635101929054108579087364076673162938873129791830781194025042668193350880012951036451796276530379806541081746987283501204718875983560971629195769750545180521792398533470789491357009726821013818902316148328997807844663868914415698071399752161359238341550627306597724235586369592274084422965164893965207136024204892727259671799599587863059621037109934031757489878959727898463686592960983788033197898692816401214097509354362768089014377628807461204744248310988781682484439408432705104979057938604476069230393330355289181154941532149856385489754934791186033943037298672803538063115961805295785159183224276793713836110871948867860426682942536692739034674366160444416333067572495717241061661597582551316186886330571316078493349206420532900026445563094862415484282002846856033855679204849222221836934081122813949491032773549246584711209955370456518625326570522575244062823173027260991878290794351151858040625062819315147148626386709900732968492085338528924400088133717684045892291503907967741760160037455408622305696132187583959898606447327160410749828164513618883175814056216900424056764346527615952611946470306388795769364382160565984759795255178696632486963688742090517444846955765766899506052125893476688297623818504206602183100878952957071151160354499885904847246593783349465278170167060948535036720746296963474636280215117470499061616139662098010562810062297636404179932431654782632323473475903516242069021106590914563958427304589892891015041544665298979219476056203975722076649090534261517035555262824958173278542163423980315935892763913925893606826511800302833564111666621568569228237262636872383615660453409710892127734789874933981251460733696308782732284107986808887878026221482932196728373740600930622589910626227792100302537403637493587206657133303758990425867094580892693062302095450908783422236934779227901020141063368197061158658683183523167205694294373726737035123848499317354830731281100529707162576830908047696005966259243046858334643819621981345255204169355104080911680220328749783292166243490526484595070530062397056151545104918369776891742075479318202640793828658198711476174853357756565431807926161580663110807484837004259564725299524869748881299881432948730187637726683348522155825228224714869381965574206065251771425060159650539903285465547852073648225947787517770328475486859732303572971249677506674653580004462657466591339248768541435425943815141039941083665308688876953214309078415196608561726866584051536352643391705729756747574587941944437656712815306883427890781031049842392405882124094893202723243875967686964627205116316724358022288127344602805140194651887229725730319075297213725928997243006937477042954079352419508613591798271168712542344876297630831961774341921371848872216446338369801271618815284771764881954004821111224707719054083287226028121848898631121294238037437512801947096002842350871732707764196225522623244056220854960975649944918369159807611753801883564061323240439834700768451785888507545507877628955306223149658985661309417394581392625056853354881125369785577840998956078445657056864188409377741267016973512548412551985666815702825947004693695564265675479603033157010085947787829779614200104468093361143846011542775507050916093895065174514632374977284332792525287895625785835980587236176455840980114145571801962770039373198117168295312026640604823262738909895291937776089785590119414791853272988767593572822613425511786902534571646597779117428555124846672903052468246504714783313483988682943782279757430969387059639122954574477992158349379574132240477690880654510287364752313397445150675523404302131946298894283137058531626088779152648852203171909556230365260657420606161329731927348876806512957856098566686657425466900361709165035417142525192086684844229671219938903277793923523269826107963782443894383003878964353021276188103641031628900549177846204421987377668473565060341575129108183466400218704470391787609503198018301215600456668829767720583504044611758632280870502617062945369965038446843161832191185566236520175972130399320690338947219037968554915278364671979152178157192398636291314936868353342250967568673563189211012527456545131234302012249292959177144521277510694676713049194777937944875328938323810553149468995992194432230379393426772832437596052633986945996932140487251701470762248566158383373385062768337221909829027324023794724706567665101925812257172554292894351477303440394119018602261949813459708656628364213107572510818131804971423180352696322719441724596652835426871223291780965877426256542506953160994587819370546560689062907646123516635147962088591845758994282260563640534429737492665831541387110890349798447843677493432893388424208561373637107060101473123012447275990070213380150810475566020272740143048629449247275673159553582616755723189697785703091834210877894440817775099068714622200278173593375477166841451617007945273485386954921288408212388481070162130666738222877301373005660478347120227469428526021371129181248007677951663866417130953582869953203395985702781569137739567950889018756170513457512339974846817622697556189021806866621121471149579746450310751400095964046358036689760829348655629334237126969537927133716821152500633892244960418009764852274816927563860221534354722050596204755591921186639355090977347091684705174423968879486124236422403374391982786537325741693949314459554460239304294908169514060301338217573879403496262386702934686599828974433793126560652915388847944660431711953095967190903845937809043652369060349031929181766881925022265845259782202670595093103085517107134988963653829343072061210805732867590518333089247268478384838416882574306602954254581566530058526299856043954554349128213361447885165956862557994392133630656722198524691676131114763749797329723022441437067007645609894047937076520259015787080856966678969221407112208404787740540311312371776627302637059933813366318136650266998385956635166829816114623316028261255817006761439656093075512456900779315269681488234140350240598358898001236561370165171003368774545635342336980937780857498783790300919980364702170548982066977836294949600297666966228094642329840097034847431531944297992623606961488437130794541738973255351212242556971604138502895414191933530921350365232288511307752358199545695729657314580708692371570213541691697367522433363979226195033116843840623337639005111218179609076360138555559726703265402589498007594588109251532252918684753399662853548111974317918065282746982277687386926274353773940365313124101712727687185064173431646736402500954779238911822050312606067739297997667550968731338466925743291640929964732771084647089399212762687640565212768747535486095146788186601203211307391873181323050819587386600735631777307914346157584801173341376668111459489425692602073610525134975411754195344897610370803073438357464203325690549175384928169857252304136485876829598166378525538868335003797973706056250476875039771331371192755789807099904382836779923497951479099668190371779581346944375091171811142716634364862244347163566674089814948551895119415394959079871701117912511349346855210416111233011451039108828799316481381668339707688714395687761242956412558180369847787272025075750885477006190112348468245738093718347747344919148926137763854192904480583712646825107376540747695147124846688050675026252737942362975095474433715611781341640703805203429431275509871155730267992995052705528445168460158683029469660490935231579540832144256162126429342541678413308218766607106413163865196922993432666208837247496735933607001497003782381283252536052121263678057326896412489010850365619895346884141045526155571452385906955792217065668509165284940615115574824805821784030463258701234429711812932930642203333684099272319079855571064179150707388732738010785957556484069716690029017721607142772996603449770505238572136226639770507461955359399043494441788764560568703255226011360043294207024308734294484870540175204410392955839523730844576168339922862044737342628250748713032719582409315216837543216177467915505951723653412804201509669880251086198998265876091115408807983965996592117471527189734343813259246765725017239894073775620977196261729356880600415933064982964072564443947755799039277922930702651506566086006633122113032329922469111402533138681255361415639043593208842403644596013352267886715372020132651595097483741685897043639294538512608775765141371357811594516032558949232521304144996219461009620104465491651313033432940410722043563136110706551458488236779522224883513042266389238951937196994385881897736915102934421012161281058450268153901190204583687614791321110412205618874276704547636796380658420712413774116340209816987783644950224213908435077884396231015044196609647704428842442298308601953336177557759334556075113291379114013010305516858771606527439296167824867188743122130640728799447008134629149242265497441866788999379890058123406121648231001979711652012596548020135395184120074676775794573586663624075633542092669468281101016940465669009679775916339752357041774575720883709676531987774416787986963227146364700770608185690712589970955896429786942310616932755619842036245205351700067750338451741132456424104336640730285370852867326600473223462334149290246246472810103364798554529463881348636581787438127935157489849820705299953682309776959566056516504509095769140125943287756607738640930744836135791301366496121826825302870860778113255336232920471461834212585160009870784228776983979710517184895370321702887317044543669441740477874561568659115797189639807684256121729708605785766315474831402022470855781567343665767219238185848478028454995599341577189597168777680836534163179646292542979015903085126971707258111937465647942647015235042724789649423403781132338570596019773124583320127678482721664024883419172277441678475829982124857633581377190471171275347156001193124582245408261357420670745553930890242705995489295749062340455977210091379962290522701587044620171759742513708591972283359094968216353448892575551009991491098644240186387447788042629387253430492027947976841912465880233934511244893618365500994774629677846364195658970460016154783828218168709769541970589631705824361750063933581680069300718116781926121745175558266225651633741405420751968163595874210928505907697453907617610726178083198866906203148734623900122276946076144022695619004966623608584464835695762526536849406962033246924573543132098488185944277845930030736419028352131307447814694031566419003498881052284156272742767171182008463762072410185021728459215514408991452960173178557280386878419180594472525388519025094580455825218911956586653600763686981437101215959866205651449385184359526524341602065471712961832430217795912118988148730758441505850568320382000829917935882232132535753587533573940738259205308334040484895736675212563495436579793507427561350420583868831180683069831683221228446642398957128541429896235423636271395394290623896346103900355295852617470702366758171523585075415722416768799484411063006160953711187438927963466425795719821938545686110649698589447242938217249412957771001318118383466635489321808458098201006360877726763276787232840099447448268794849970487470416690180150965049051169527376574913406084709418009363267407273638941366416457231025955400836061218936653767355937519243251136219453948626920468544626512502648934564484700364288015256362428201424956440673845687945420540850829689271108702004218881243054657815989250365425460965059911697957110727089464593802982542896420191295550450439503271175132346102412408466890320111999081126006729172478744739433890044712587103921261087144751842221566730283138151406622965926801349073519989254399708946442739113713882757818799205024048393938488018581918204085388654302088644506628600939744012677903084942307542546582917303391104678469560639018770325898298925298858665259758038612213454281796728547204175072151612230294000195840616766050161676637183709826281720156008842869035232977665986609865597293816046446772735080888858871173066626137371997823921232910702681792424545465511575555836622415936278063601733424181527392402045366291506899221673329526993272114983567308215169565609268470521572580146732752153672080128903414501506699815952805218392047931172354566646904381907650116409649960351820399985730135894859566716901034166339563602276364700167846362464277742226300386888119980408674380221886106012458921019550420572667538017282967394175443308864970952345255701986928231406584949142857457004828561299222157789967508443956266658774979899474175113135109331981904139024543960019764135849299379690635697613405077552736660700011314150631690345116978977024748649046260178132558940676969767333734742288448324628525296560645735872216204413090175315569937524862271406592837522077702141011062818029722305456179392505558562180480296760778926958817630924857849393498537468567924780001511748804721739136774215017131423965421539474156585688946121554870379062405455851830003208197239261650247063099851238080463964344784988848665628363071323826241710515493320981659480765592848782005121186627402642758508247723100104343416320643413331568235151975591210853024114060788018154514661830950108158062595037982245896775216680911285795601355504595851781552797120645038730214944814773272094827413122691319253813095689141151243344742927273650044062357501548908905396786287175417582058086676609705502571969588776241536781385543373387580980962063530342859256262344614042331111327812506232456807081448672835337810756021286869633921528511498682023517058502059816177946856987030313787489556698598207277900588614437494807230372287065500568651923740786641480671414562597769393819725949167014723176616401362178153730363966319259973274739904990350236276300903448511700557933123503574446397009442624208945036003441115179844469839858548434480558674129662038885534274009629383440978669760089660123490863464656498578187575915912584260737051390397245596031445227066764766983464505947368983094868949036122599012871597218002144310515751228324313634921000069861622963724161276654998211594848170961065564978954542021064315142231986494537105862714458292913705147362055253586501167744704182451531193502653994123611785237807214799689261744942085929451187611570582630881882968392690826200577421765395916368369873365118748637540693766725355569994783840174810653320476225164501784724162140659071107997636661920471689175793089441349639325367697781761386184568917286056887212719803403190667329618837704244320690977622454253266036189286927095800842946670091051650650586562948082637596160172483150863415677461692692710142783797208798729397416661540200223707894971299052780069212225459653311283733093717251672886361078293594487613583964003945639438853927400561146137072703280064056109225389845060747011226447446991338417067920309974693909800700681689769588165054227544787317645106878984500963730031584219268999183524744951350012076737461249382756102198882364577063091074597799407695240842041206255683112923353402995903215272351446114819072672212624393805753727620641416974337842284520035875674365736204773269523394154304080898913576900715618448754952414970407254913489238774663798965521385501647874730770592450690043396410901820154881384374012317539864669414703286548485374011455344185841561847101207281393722160370283234187256514563059160032466339550400952506709027178087742553388596529070390937698719788293949162981739496713790672829299283194768412924653010542122862305457273474843330528775163524782625639240738223373194450358696733041502515837835228536440742205926558009780620438253530550039063088446634861831482329745790106835323389238455613091181007981230409495090265340094387693244408665605452692288608850505727749786212901403411923012153329943984951839960076149789228535938502100247825066903248312450378067189723369409681948431551243125553704087268785666611524383917269607993366796615943636710346158896813696174810388262349705944176686227010455720731975217332972360157841265242289279704650537945111266807746836079581973911733926442497535908924425348696715277079053154613306754393917288979978258610607055657537660839102634273835369165184426484333960171499073099525584886728344595800342892415198561404761758299815280434205579765977296382030498800960076429690397641031691529167002943499771643716911792145487661357012020010878186972104453223829147949336221407666766049285298392240131798012659751693348018492224041504652876070419341649595339753330830530034881490212207105788575809598695019941273592403057329156960046578151618281256126169667107977034927109400142983779061147671912032376488143794501937900632033516334439821880714293325335245781602069390595669807160038123005577819928125961208123618424405790883264005669782743946941963240070080684419614186531365700309853652109382102151546179923645812496770117798219268013535628433957583694439151859356527039581794719731179937322921764782902695062671703267848267026749137508688791813648078365931389770874776715213851689044059879664798576350824192802093071426280495315309956660935819864379951732832842020088789275069393595337577701377614812565197180291015147272059044906956081570817248314041639438054646979756767214791691090795601532606645951422544707741735005054032914987300729752902217839077074599671324290007110277260346913113285661427713160946322721551366836081700692625499397563681780093356855972864944549969324404820447632733927258508237774502641175923634738072806505789642086892942436995743058684627254148003356849816436221301449750041474475696889100426935247240980490145068653060565834591842112722701334800523140584610029766529910078469491800758646809391816185063869967843690718787003592170497905404356445884620531286825859796333224290093983009553386140973797619439787951750284691493441563042494395032971519610760107908649398616297434898252926539676282606932039908372606994795326275861759780744377833265552510672287520132204669339223312404245073758909301876224372276363814363910181297579667819925897921691638142099128227249278248952229101316406459555263676033152990534275504828368940859530151250776285236732548581974073030765130820761338803330050964173651284637664575669324060929411763497697834980649300397967229681107613145780218597887589807913740127462096708449758954827236104934811662058088409662098514968406424717908134771150298564093909011307108056929338676482852213838722017452118773253043553193979895720301576302611475317119212836142112999521446723627879349572859146354619249429647818166404143762611685998278632522142140873220911871008831438616418726455412670087518517777980800465155908542208393798454718371038936874498800454444569431515396486973711737707123600531747595496406720717628632774936605118454856700335981729114948676865104581803892571789805487076052278500350942542260127464780991844169769325548728752310013659035094296483855294903656818291602791380460792871076873003347921055410122664001621383765966753447104140339222785737199344914107103145059322570070896811080696184060553257456598005935314902198117749601959887436438115343400999219263895262273138207554543441162739875681854266037969692498949316722599838644675747669612279614082091300795832604295615370355557389451955052579645948232608439886975684185543348240729439130133554196379923140657035338409468788030048652712157525759371962218256333286628073491990313216704264203381763281771388628467496298482275229895547475413791969872295643451690188175604488467112007488519639778756749583385959617549803811425100144342296575137253070869128055408115285980175234330049241642465871737541754855367689437868174833612267464536432150457310045980832696438812754580909122998832518127026383515518110994367358958252713793090856340405518585213732383510968503783248191205120879407868522765213115996794218910393875060913488981216699733256629601985505208034924280101191103437647500476094129189916465871542714680301489567127310075951570644283051060091940504268809186012138353060799737144734494130920460272436527105607552383743909324295611338342647706596763791001877263519160125133442336542674166772720953985774535873798334368650539077704870128391701218381568148259473702805686245060215692456449374557657825073869763628286618946294377846703624945852731758089979535289616046778630737586583572253601658727207767459938466245369474701183702971963103785568502898073280813124771648805910268045715660886672375265241325437402433905050302930066107482592825057727719832812765819142187313810963635937660443058066076298497617840406918959495765194818227561419610733173774308835507217134668870222087760958130709144974525215690374631336990224578715244171971152429262648529999524455314125453136139641174707345506971658371914904274090663438603652298785237020650808993974258427807444906901494945070853755840241964344197271318324422831251182912189060654099391826564161935523057996172476190910424136506425641150179813855778115793129974834667692399912314205302118172138784057470662196920757940359607149986177516565700173750580763023274095560989912689367554792720346625231741888839545758795611027427781268494022007278148165044178371604216947894901570959758218234865783336607193624237250886750039198945162178609726807049464632622842241344252698256225409136306236670813371299333964816879559982806621697216356878786995576350515849062106337686891975142516886076460325642733359846162061733232162107269818188623741804863480802293875166804587189169245245696282919881823811607331851058629165448060483712595760337735572544640959446022569138869413002850432652445624651972918833680770591929337375790754021207831900540775594631923392430298797836295306124945674214895598010586974218336419692772869619394415331630756348009388168753017222219377271810024897965520507294593601636505233613932261639492987433740907951258025818812065401349814860227968527973363846978744965030057927522962407853641191926807560855234394110727175149304268836513899387736585339755646682364527293681044772999178081532993532233498080884073449140063316387398969000093915723779903663094110328460256144635905135654207663277117187065548718231130269167834128666360784384102606713960654938298326936358063641138474581779281185997017814115353555855392190419963430656353024083167303393096455586366753218933815819081072836062650811889740074140439282935346296741437314370839172682236061406746795101599382843422590942009424746017006450467615948770026339025172916110287309509947856525902937432832320580231579890265875989251260477633368691089434635264925837731079692134179418641448986721530041508908072744152275697198455722675019177370546263398447572911725754206281570821048504936094076070412459269259215503794939569104502447742590647958939005959390847956777911262276296739650805538549243394138346042744222225117933859618292337999465117321002141864093690725342179036089449131190542365371393096457638012437455571167379729225720549963444725713584592893620923386129593780572850096993922992262230237289579820072521295655316477089244335672285846635646594364727944684057206768154344851351007050983601344341976140213579897612413474870553977884623086121266948168930880909380749764276562029685083325692454010003657346679845570893169290172799817533560904492427303146935631723180914491302368410434264393448394475074423182010985524437195043490888227839217465973093578699109632637918683547876827737796436476847689518156771857293517036611413152634176417963350447002513138224982522620324625217805869830604855547258332331395948043389882279115812393507561100959773722902618055833802657203183343778893757780855684204494344863485493873406718676421477459302564566657312946899714578840575243520832651890566169592210534737263916411966815072048849525665091410684276817278933963395810287483485085506191228263781057865621379549702939095121401854427102092800152902877552136034735096873532788949832281519906395733795020274126911290784309218813728986801329366508309754445888759689622031267338133382273959798867072010750422906761890070292415183002582351976391526678282686302526159012181323539662251514948514171579122252407966704137445753109361800764694455732237745451904448463625590724048860182606943538852001348384992311981103433267979783622062693623454757085213439772134956297418087443401237377746306544126332085494246857887221902413052677985483894530311979589617328127310584844142157700103683968655905934401587874191031872393707816801790580975107480906659221374347141084928651358311131070427468690717413004745725835122118974606562570097029658436517104416556903560102086698948507890740066827979750706369035344466615004484936514737559011962238364102973007537545065516930750701566781624254879334541584485431233060011602091594789945951093665774253642134046130157807840102541379826562902805707300392288643381818176705251245607647652259717933177486250805779609561035082492825540895759635354352615281181976320407896988131262760888628920471510560219495353736277209632186054476531295309835572994266474877160430782764334770426298672663491428024733377446118708938559145596233273946144461441180246166556634530645613172445793679133532040513130877991461399778294667238892776155013125882210753286110422860631948316298455748785484639854061600562841008700945056293012172155766147437573304445756466434442589067317026600654589561504063476979380926273480817513302518797193418112265753689756293373182928877943035465124303142781474813528491907833725719600652480391640512194683905447449296500393200245778386151026150711665354290473600900342319683016067711326718120875158837704433245915630066519685317850290619381941365427589690014566698917815075039561868864507084774210092010771196353941542871094569261025464407812177371178478027412315049454168662750817846873724952717159964651080764869594368316963110130493009139061522905655465359274044457277306669478009130526213849856368860418816491415179437014208798614139681424689390485596575070756388527021914834719353631958648772364499474553959150213611913151578847782997607275898047339913280437502350998657363255158029669693460763916310033520880387292697771418529398977773829462813835259268734964561772083649919402746292481720663687620682946541929027312824580421474808032436618596326123015578424789190043059083395953649320990703635561002606822645011679085711986608059896405830331516014885574612736685063012472201972839487039581048019114144728597024386791593584399884925665729609325015248632008195437958080175422177750063422052558551002182340848138703435648525669401025097414125027414490342195324679059470859156358741279041479132996643470842685396242668987162459401444757818415772818337677619214739685940793011114931915453477657971545120390577972661098251626562104290030154974820497082581307752247419663108103569015358099634427174926908216168979694634297039698812540862760909340438860620867551913638216447923905555848362268448096726454093128200489448044022068757606006701592030104981200520015239597160071093678291337460254704811488014421386393011496331687998486213086749938155749027750624195885609819137948013803877905878237541065057438742424794931360953272615052753872291812586977718040324789024881192599199165970716510645745760627548536901135305140055264502057361258534957756376247760337140368948048175938843659514663614081724687798478569406575768180944420795270300899020737441884233049817628322687756930467654583956110023693556519702413350568739592817430298505977030010777336234315863681088349099587727069081715825744705081933674158090045921316284587881103688129968980253393770094855507610362837641565749385282266468487112806190000602231699511287035374086193495340494318869065028685756388333237108770127319881082982974734739487928681741323151341289232376748577192112691447950403269968931186126664900372319469011563567740619326308834389877099772817560895780368192530012109745935485047135661085330389722222116049053832209928466819656419619450627572796410694722240812380533955290913708758836035630853691914613982674664232154378606736434263330001533690663290806523319566533726143175396618298906025407107022043668995692115824643443559917551412185994937894876481038387278980304074445500224779743110006760204009987305063571166736025060076099911730166385273437423718956674934210806598758702916233671255139323672913057862907135310433148562817011519785286309222004204404777558328325136880566004199889952172111030715625158396536296389612455797039055111434434640979549473458772136161862061378447982553803761020112401487582772324648560004695379920605929291493117627418440128188633749963069411452229169259799379985053364474108347180753632134819524489672036525912632623786745589785734767196939845614457530376653652808449162985619610390768637970993407825755929027742494145099572787501799767793693835451783325648747883974147917977320697174814878457111623413136102564953539492852355001254447798476920377271992634388826888023704399298710292688850512607101758765387057965079045254241541980906791920244741269656989446022438063614927664153813004761293419314571382606251184171730772066610733717789496712456855860751803262025930219564884911540209264988907979083845953882358453589409512386921872808118069688788633903285418703323571073180729792295843231426922102296882775761168854600938697556359789861694468124441739017838134768503035949221318594566818109540902756703559923314787468976695509267626760704935185262134651009614954155025575888693900800815850956879181497026963333311213444227644489834726785466727252346207836654102078042509773941185696443692783724823170884556297379217832232387992183457877843226762551617865085456683871657573037709658202989383042335232123851508344141652495062000402663180204077713915149806761499728840956784270914448956856284090173898443460369532526510452363321956521686483740453639782571559652185793921690293147434214431504488688548533630116610586441366934811205084993890217765899025225471333447434138993453796291958870071796501329446657923153181823036204632745864943209880616235799744302505773759052704029902825327191747964991834212901132677873051779332786653818384397012344194950488975368581128575419111978549350964532514578844879995041943775125469837652833637854798117885499404293518733142253280645345737236802977126968777771068626067657224315943578752524706938461461109865496662527552958363233818484407066199569067648748992743333992144220448232420649362774578521271739511595088812911630419681755239500391435141655867183055484350225859913437052855427419902582134755394910974978827058236059820770717513844620561391111297922036613841737948718349624676387663402976510536444487692819131643216222027074180781455974999397829452197051461388402057721214893700003964611477888436782907542136417980575516515791511758199866717373577899894261800222781830586345141579545532978855560840755986912926768141622590003073174686168601898242873349186554070856226911934067329090459169600792229910291405214048218593906709603182659687884101369881195027768153360547485278548539858429665573083796210516479250873028270156792235307688946348118213161028934474458580056457157623700671409225508088914242203992501050063935458288207514763317282060667946295646964706742433155595483817745194521862168918421852112461646248862087801576170044833851069355346334284080609301577206061778204280538484827295956727747838784553393788592170870061397797109921747385604451855888725131072633646014992471365237827182306058922094808720073617221463240853780977971936063980804333164855463089667903329719850545145920780613424288468853860292184735084875870186188453074188119093055876349456579244729665836923984090910679475569116083062326560071528541572706191657147383197617006796864204480945259551409412844812763394607208333941155451713512702644931680848979307151321277315573261421806646902282867024203442957423848585601655243323263181931921900831410677402636678031837483783206982901138529594292541319223029673056009271509476084498382504388298413484576544117200849801751589782274969685458934349598174299035431917019087237107175589798683626870822451950735272050635503319126248714864659438660396696322266588112410983249537435039484384550493460030848652170980500848503478255317258265029104839363481964705734650979413252805411134342877107745543438961054227206186019430091703785532876688509564713346654419238723079675321556932825300152248573101216895645124203152037130708980903100518407153587341110673697102221982938037429909350955352095541211219607679495439612505239266592872774883406446325431554759191798363144765859804017100692618553026416236823628188520333091793911397180874381276164228157007473161167041431385245810829154409854344197128431694018934302797578694920065626366572928719923033261889838321081896729748203271622919278249590015611172957580208770127397373746296929511030196917047491385307741081688557461870911257782523149178965984336036508076793579549136370747819799814580548010179745172640561543544724094026729325885891742068312870440603101802509935608268984137954501720523695279955850773425068406407922039675178144854017545514988705944104339265939032755783700442383814996692121993273504791794934923758333961559595624346949530454165778416500874786479377932836998043012979469486203033357763610243811420813421204491674162280370966476717440039164171954228917030630052900997603266126413821326519956611431133224321712243371328704086981299215556095830347670654134909792132526321185023113134716201012951140411319354864302717310253289218231892072731433377459547243680908484029521264833006444794764346176411655874054746943904597619875842739002774860237411595229531433409376536122970118817116663693434105722938403774314827626652673785114419779355814932653020338028587543405197650670856130502852434494634350396018941997764748447402203715817427931538837638588986645183715960551630347401685421868579728800209884913029318735460285084286731562797487554877717451897379239363758048889988122471486150615577545761770676678422382177144405763401192778573300340118886787344953262951267506875695987126546395615746420301886801530324626754354705301747426861278210806323501773173159268558955184190967125247402010421081287482134752564096257337720757954745745722600978570355733493137776285890162359222652047409305891932241269784672861804634538384785553069049906667921690988154916995904192562889069658976529293568453050488218861278734585162630347414771297182485895009159291375622982613266487706033695522092219038356619981333990149591714425353856765459635717015356029834842177445361302638395278525502564641801297960471296436737484656114275293032197663140982622837758682788937339057785929860443379984929840789987388239097873673908954972761763204095690497254537761838947506400918557036730442569983386608784255367868203966820741435114913789978291486311334468160617873963626448777983585162375004545433069071642583888645220574697012216841133558559186666335245362438231894494202703021052226734163652616338924526048674488867963840150108793136763335304677783886974100013994105548393899095658203974627328528628716416387693577304150250767745566278369453873806643769890035501666314415899297387931692052003408298486043109124526590401416811505476391112143859478634252925410942818626776037284589105012508805608079625916061889113681144081233611714222798575751626112073756281020332180842152716665428157929448398235609782565789964046632649506818236713037748759024949855944200436667756796856603577877325433871945649301176455768099074422745463246631988617146036663252346827171505577420045340737178212349481194168555173853052302717835545666703138670775629222462963296775563269173452025912073426490096966678021094512687766372190442738349117135704279776917146899352137519829256624867773536775685256611491931397806915696092281178553038656550352107241417664070116666598980504572273231109608597238761391923752875538538121867999040772887733665974510046387369589398698547982414959570490982466822372183469863389272806244199350573089515299080711679238533375179635079356544396211895094847760099682411566790966745985139719878017943905059878054609133612637785179528574102065677023036058000530378914321508632050817195841828002571899452216073347181334165972073254600525831053475222097083251692711572867635589748850260158947911330749437558247430401664024402140789472333170668983712733819974935769032744110332078756942231971809579621454067569618684323722665917296699218405544681366195787868583460136004825617609963542057678026861422787935974339029965755330744548489381656076664863102274893586120793414874257398291081183030658655663586197462947962900730025309749640226434938987148945710579066091201510045233711510833993709506495774612311243705590522559925132470635725440187366909972940792260353434153392003035953733278928380221470926096470325855191110851723770156108805247099710061632247050183436320340684542259564347559899249759927709739634170204476208969073536200647764324197509351202287580719985654934708947479752929532486752743191240449434521414107491453681028595828894071994353859846409064596348591143603100548979471349642027203587055795619734595676030612264447450779722680894607787537403902227745194176781637100438427676627309184958617528238406206763768817648486043345191800444759073817279614670877695593227960146718722102606946244583786394410823376713142164521839559101377350199555786165395964752377893152777513673488990732467711732610283920988383661600793531439945338519249402376443077235360693805263706796690332701985073936706761882782916815931879795246887624819519188711107152122633454493643613433251736263918976398721925411495972921669746818875784117458552990897070275845802749170214259306607532381707932712050892648078336609864756300683533539969165651313233327454225783905964068284887976424259220162257016216890246029926055904345471597665413389232626734478537234539280282876922126680204838307053742066499733250358307931414226974643631008510175555221595350487261918768464745059803908999849747038944177420461138394295993464056637559706209734543414175312936527244535554104800524662303328513594587387234760133352607955655286463914806041102767362369548022279568249502930915052534774380863452926829790875892118419174331897195563658112337365796447413752612571124675314164668051925080098300121894360335230122765265275068316480860908899270955450169204213967717636132948776386057006940807897949882951877628733215676146463263733756418186759648307282836951044112742130845574854629524504095184121086655446411603719005521359760457892968336326319699572385421064302873351436530118976238167754358130438584393237733724397401273486008905030514524362686271944709312538171545809198969251433285978813231686955969361112275028932136088675505025901550469887898832494050144750609186653097159675872060996113986698846201070677723181190253983982810315169125410089478881488846331399803634083500966196743745852898646593185816536306954064862665263391642052474139048472179945073355595805462550464253020242977276222471033965924016220810610716547823042882824766671018267067667979421912630818460626974304413969328461503905432389291931839510635287506523641542139938670037867480586522746580654737549319134943479995519310937559622748908164765564539442180052723970173705312290926637118906239691840419274112372692702028956486197144580780513644286366433917934131002472828778999087182894351924954154585220149407730960936214161560390919770655958462353937884622690314145862428069565035240594976810892919719366238003343497103241210503802407200333092251729872771827260147518753874316884462072277187164805974675292655594488877329986646598589526914517288144157507344770287497906105604476914851334963397223529348404250281109703076563998363389239248022161077932216023480342743061921844152600177246662304456090849017634669178459619175040474660579784579212687138169621353727100527320323399413561590169439056037614120803822943245904188090272315689681689408042912444541193638420087287514018813445607935408910201701952367467632666695172480231128549569067758770357206513731167841564230482539612731392780535481323717404841907668945902139370881216063003589455615092535165111461152847685696415001766539580553513431594608137868286872785547747485622969971916755029804058358013359258950871413926679937269947252027148088836677928916926841918174180767213522821046731961825409291328988195115878752080970400777020787057066807094763452606717164574002436145444397025394910244207238200027987351802352688320870975036094687175689148705847643755155783731096881049713977062812375741681185046026381989806824448428983195128730807509715881453781326857327869989711790004347950102147970068834257168827581734075480803401941673686450656816785162019662881071771350787307359865762437110029288788073514649596801925583903898900485374348093064155208824454442878996769708401151338170495864354440927641329515148987485084529011368292670112699897891598932085521627614524825046793961778641023210348151956213365904673546734792769295879156765849968313913612175068013036851988321154170301147233351300697007900709832421211475106202649823716917161569713115797836838020007563386853320296591942441666805318859630008147592657467821434768821149418569417767100047985210103211669180812299278616221981814239553177494424338533728721081021495256846705313343725300466337518728913061143361087620116806589449594818882535826099957492490520435202207527603747150413168952670541275313561017919914658604104688268285348505324721122929321995056964062495687933908986121227496720480023785691765499406000325815192586850310517708282292145309718960879839942676442555043844390198137358035959664885435836779219148655679840040370343786031725421947054376107735390933628438922626805704762436927392887134380068603062023149772569594796683815233665595614353631297627432078182536387490933223613277746037675619132984219179946003330264261648456972179541642800777149541961457636500472399710796451504038116578026329906186517737311944462578957162576298573005159466462349686675720106931343639224162235823651689093732630784641006822862818739899047073193079116633213213781473271837539632702340054979101499928567084591645338955791780285681454501130931010091733145072244633847565182063658110722417554035258217890434795514264290323951922807255142315144484368227336038434131559453488161991784122993803626689510229882825121609068644649847735528417594841327568483290845513997360316210547927055693681480956531233515971678720295920242049485929206824956737536881148478756049731588199575296946306002934148954001805722113833820061148144449055867569184714827072186853156048939026518287191998959101877544345968657727830256817158339800848299555011433398826555293804974531159632602308570945655112298061894883861851488583434120950718871853388029617761367251741803335358081017916207770614486401037676886801844401977746575345441834068940653220481855225002973261262895321154972736048849133199240981015688895435697041332664440024029911645663109421121305568292360155427749895781284436549575625885830657369559700206550697019273611046936180044742944440049844792066840695372912139885190238204690732619795826687113615119306696168191396804324307109488448584118376428684477149191720129648526990991198820674021412013142669173433818086499028221441613410957720626482091032909520040213512308632503998360176620858862131503142167286699280946156155598643847634208786173142294240428556476491154333726921586732919921871859005077235580037262919806877838004335509951068300923027660956890428268627749089274798904300813167853967675586630699273892081146896953674795726976640333283741163701727835231701339595720840521716453298741479080911071185259525639406933336940487166244058244109893783905364837009504780640128256559621160097796306552578584774684242909460472675713312989634898777187448326172307640611706983074229120708677209209350537961302051067022581908012385442039639939498696736511447326685125058483501869174262572127745846375413310329285252669746572270068225914936759336229822013326652295929208999137067219717724712012601703762416620901183703565112111062988472720644268436018628251871816162981022613630220670970245369858868753485112373336937644838549947766916769943170788887697254885527296702994982173328122752735765059967420810545796737764297208010998348061982817529277931594836923705630105564320819833405000205016820651207145479628797785211823460897553753392684180585855995401061242380425742194566905248463583129883982543350471209909062397194305919621494240062597365780308213494838311743251989354028921490505035094012166092159236265845852850721538951282396453290506182549221238666810041491544470050538643351910941433224748170258161689058206022338654294478409287593662344901898366858725225560132937778079552775637193759908473923148623318039405067219711422574727659637361726465935338692506116230837333871659611191688530951912662878110401689291256449042331862431466095032209981475871232814718290817966840294825151294475343631031751151639270793499301988454850098906975934268694073369064649918244133219575684453388077066219658088013514546741742797019621390366669224021239225480690925256226130734278997489623155598981287812300137499289403861301056395599126706529466856789068893321490316934467544311097471382148229389394483331922163926255227917984165950540896683901883373487512291373133494100655201041347897562205539472744109071601069541037399986181564514443339754610934569759891485303409342714246905372092839225048449047248235718020466608238886088517299235929745217692061609458872024923048995331856573159836730309341367179686365724179863145349881831331286151613919244457977629847106373276118390472162354708504677278979872007286248873249647708358673679780443788825283393244572608941669393085248563142821770200042298057709018110335451102394049483258504697469972110904164251680122784208626128084820069875151229294411888776829205402707976863057256158748261337053742822199472049222044251527086680868010351956837657974329508621015379158166783182800238868568945726608243146311006847644529398595140306853936564892976527644350140760476873215419492116666649400112730107087778662027539477429523424044415482864902053771029929920643275195358762143242972661492493746700773119029948131907130667205977742551149718379113588778729957144119073958620713058560256191636683459730975782967130844383164669106103908572902788614943585948611499547928540705869399669903496729289664529602591229590941377592107761785860963238422580602730193569391282701402896745024315781904299325908541577104847753758630193237193853070589656992001769986671254809238045566542244174472703101428382277448031006799180768901857784700395039728359292858547163091591955432850338310183166357789641412693790885026768939645160311295373590282861127052129279777977887201264693395863721739810879883095465962904781640282173758169264547256361676123800699746783554586490865887797494698420111673396867046914509709707397818556902237498031782937371320256361086450729580534176873619713785099208969099840515971418488420813430576090542249945538776714175692052228509911751620077687057915847008550896731660986826676253812836641789335228541819519697611114599952495514406234783268720199577668055130742395119826244800982959437163097574459856767601171311966691956651263449392954841155687445064329415163695323092358314144240200360188045370433146526419873099107084794732261891509016893241854475511099134357088574053768816591746097755615853244266431435751714477653087076712640354769016216756004040811259238997750517089013276877069459658002948121371640428393321379690046724356337289424339800565498240162600369493299551925990682024620498351143649217022583023096849933667926533218519291332396181141082501470259307289343303852983393659890778802636241281160466727982286534816191694508456547079726873874796771039466886111467873148346499846441044117870730532081802378132527397673296127787124030727981441407790547787149703425004403384576509551147578905499060546279685837779968072796478237803329299914572317817721022739695597562477422640064805953041963046237922279758778279627084893802960218201893492378923255889923135262213508211242786161242647823771574278383934028641544629323286730723457849752497356688381980328349219503297066413206091918409643632415145260976462154375521422209147648876458096289248317997554701613043816839246192767626372100658823852301707954463100032998406413944587147853081509468129946840398946142676457980261243304976923229472899498155347298725830395471878684163345752031349606903305937043508920827992262449897667963409567148388006291731556175334200941816915632726924452302226768969132298517596439099741448030825343001236240195430567585756065901174244132837979926107235001331460065330316757516397231891678038046895053259086352355137692106956606522716755401556461759813947250034365639591188432524502338821708382439570266571512680257681819338335457834090950974357031830806896049968233536834152531398091351097213522956954709103145210743463402881783477106968779385660427505513165689769436845475082053473529926907462580179453143297809571886417966755344882812912877881981301547294833846811766954289454525007390124782292131951194536722714701129738912854119082933392277694304047943379352727400331608834495048546424209237661387009552464811129959684765289750002278092158170852928745045782334083489427591808639768403361841504993393830003020047062468415364975199220979179987553143191975814705949491923958943309968470963430581787794427097495544552233401579412753066041386222081037494462584865407654838420998264519981045198266586904745691021385981114835455494139855999728122188984688070409524260951733316875710272812793047596346163576442395705548004934049175166098028817598654627239029242724047387184980820259934103318731674429166810053617094895174517902147961050687657336075477600660414912576848485565325769038460404022471756894530084150290666881650885756987555690869866290490025671523730378833333091247546903218342938434096914003434501324244366825929286388252951581026605216469453739264228790582391961899803229132990475569388302090949603951324604099832074980777317800091483301357497013355500317368875759318395050061765434888054651654486537508564914524261851192077003532411373408517235189594703760968100855946109152536659734173383682984375171473529215612280420868731651609281576079579509596633635603617077223234118366149284225026540910854124675111606172904791364252917936538995392679424838165489734213552114952184402272400910360624450105482778157850658469444869292340410898142071557118875500464169593491751500294011468555983657856635212377332133447788134357024172825270902507988783177017514099441775724801510826939979964683400091097140467789730533458831253798650600048440938319565371187394441280872482594101556699146332815372642908107652216191668217894792231203936492699456769226186289672404031805691351616472523308954297214779877397098068898755608114231468666518898403017001611093127430614681940544498126383980414562310218152843178002993014247778569435872378842518820619093426660466496833594145783110274342876192872418445984631217885694345145052019213461899330754415077916241994641583657992100025879985656416154386033538187814447116736554771274801831100261146153665510551699957767002109151949253553529149077918489931810906909715014288027279452818552493206746890312731007559812154284482029038248896157571002735807956522123467457435991150517291373254511397024346528269243291441748358415808851330480966035356272230883481688642423662729682088919316281574963091054825344021748555166349404651997242430714450955600210199958276960304615575119650453919857170299718325610137779003190147744497524000123181060340963611726695149178482373561987671197799867905806978728194801888226897327640632091463571589808605884041056424794026171590535585467589910917547818732806534208897391645302708340288493698911552806040543552997900453181511341441867158784797285044617372760479284121955669696404538135518151481153732856128891035287016201978550012699494384837122222731601908063174449656066907385190057281201443769245511778828644321727766662192092439718503405614606507857930104080327517279746303706784422596192155029045433751737569007537078051108461292428769598716824063498962155924058352254473283814195939598186073960106048786421535129368947236269370130187159505625757112426403203010418039544708594198255015178163062232023753890453241303511461395133552136317341001295859862057085815490763578191404416625327074320143744751134520790794710909174010812668640622066197581712544119387458400018886542808549810020194555845482398564509850890328987489135151051048124790674160011221637154759560574277208249618953423671796646572135907815964536418218369206786230625932509334289394308666252038930284715053046015742435119315075544266205330263568693580077261743359347642157961050220049232910260917280733713677620428338185600986557203542118349252242306687605087633746710155019193074184678152688861784979743314911792781887251567380049780392971447752466106067372452474656207993609562079492627045919925995720733028590194020895784122594321858094585004779630018417161498140446415878836016118375345015990283234775656657350896071379741577560656659189340818607312415055076587206422511281588050093118492846560613756886938449693577253382339704309029918500492914584108357873688884264947477738165911809828357550733144435837496734838269731204165336688081775403282528755802772494790977643535243385211619344720543996379816765897861303104142790083481505521806194844932199081911479488806208776029443057007875259894685275007187348346773959583274383877292487337050421444838788931162241711619325181755333283554210164406754539989157366849074782743128400082749582646145251000086721706409288115693323059655632368814597513154367129933532243017373622716631806280795123820109818377557117043140737364923281901209931246274507816056541109018794658890855081972948350708215629799221758100923373094486099711023418340399649826751608133333595863870609164325483480768827749387421400308105828892440237270115415933957000880723935153229457590870214822230206020943036234060796010407165290644454147945197928152744158687498996261968860706066686916029379082341945412309279710013726520147288359155387123047958416592049229909594434383264731492528496748455663016022884506190253474129386636722890157252658227691142338957686722673888396761502297922826478240902215173583904900209056577231272022666412937329422814678558424319538790458413517717602808418909587763239270072902432819355275751967324900902503986980499698420119314167521779303095528283565501727614868997171438773022481301441945943071212884083979936055504577750052041390944672727808222087303254003043766300663713609277219813911004743940872127731180951627990667970877303379805513798291814508417301973349338978654895302134245863888881263316911579022837729792580057929592961260999023318814009580801001633237609286535314694342622188675894170064054379870723045743512683346123904579969132707853464221494041692581595398855766588709380991513496501720973495240219038956886758323542729552457724507167921151146111212829850660227866663408270720309929557251383567733575171786533973705354319269132429988492196307804931354667554662362694998237295001409495986832705822470149935444130990042182030555794863704878645470045855764396288400953836264329876619909453099021738901547195860098576290872066541611516671363644347390550145361605162917223989411363668023753115491619168965614111161944606380162335956080307078050954154196786306462409675852463412465846501359685485663549553331413440877907075390388066780491461104677801751995221753422291507255084361753882441551607265820170457252607562966326316534714972957747985479160100152641161035908303475571649826947924345071085475635167997939144162789130664982262965994674544095040887146606228965714950870237896063840999266848417038220606424749450610513535083799603081397648038223273917837247189576350915075534719006905827855976743558823862582946311687231668647938665403181239763251228936442035143483013880979530100941740410564406880277472571338629989650759083184200788722449508187169136723941862632388539560424991500146968668445205333857660566717545920757520023381025982548351611212315673245552092378649649384716874408932084742232642081560212749134057098672026182299413874844964467900785671579666699574401591388759242261239709763758898137959044250682285375262034419202147047708568372684374677561062128178948564099069364015615618789979998148136372685590901748833615043948202659693326854515336408566177391837612116410222077921721298972398180497963370018527789143647020587909127760649073726432167787759591845772828625003696201259868087839116170432893906942342248808505273219234258911251350305330452679501956730664458663578368667888972256106081670315610481364797019536632618770541112775522727211830297946834755774969094590196436578104250103873668334236164595886916813106421533362636996739457734967616914877273969504417365468272958457924653841249751826056592121544164452318695093185321303160441096647347014291027284905389952459906298707053844676262402715629846857549024819152462279126869108614371193155592446475155976151399133593356004696413740840116909715027183281218108725799661349367726425968863843663422147438437335354152273588007814527672279367540012994093177667207326835228056970790071056675042153515322192957548265557474261961176478872681669417304499804204144304423784947166380440178787386020879445078837364937466895649547069418012622959713858007804274576470740437775025419714257986638586884873233157945294005682827476129229776159211363508063316957470290523424442423861615377496780542791317984552405542559523676229601138500887153951421414662718413272455184154173916533823566272773308892095517234303141364539159455120051170064070449007612622892206279264358264693720434313770226566718385426426231587702769698225647215161990178072379783743527641894043430360226851032895036248533134541060111698307446565048467492029706237279149111061151539287932551189267392452766259630922482175982429772543383737346622483220484913793276991801527120331790149438278409974204091099893014373147743298684860752066551055928725400578885823416068475748542564211079336674122814268282382616295988146949488867867767828415998698482242253519015917830260710704605352281464334879308971465101062421565721634610137859596455123779485849345902399596517113258076244713068513564229906771931801962029205141984892618998772903473717702346424652940316132465777351844195294379450936503601706596117164520333786182563647971328748856796028581154839706326031936597993810457928008537021152754756201560737115450801247984435595335231051113094062375444728892018482184596221385750938547409266187513295765710918086961405092006785102926477024297244143661478345927007214665112988803430603009382905513739068020730196410132590687629976098847215412312057705917894924410382442584765049114945921557318101659236400217446531049569730295392536441560067726702005437041600424757507295611938792642147622283969390445697937847353621308558323595266475039169837497572611220311023748876203326332294760996700408707999401837686437570435620135143990737428807899326728333205930603252586721289697070527113008716563651965128657005838899760961533751540357779262281056071437404529672093890992713358071008430141533961182944936771658493685449824396419358385970379050709829688916337319527081289718545252786917178537346850205144875292205231440497976511694224740919311843820816566698091762252255246675727604305878146364971962284670490534021360516978974072205016483361827889836782959620977023570272365389133652114124659724153500140364627252052094282282798615423486837618528939433418671810024183436191759404032060144160205820203740147093434358866314736976997786697374217820636920902861506805344732275753289778808248301422305087281182176779270051924364937893930573181078782267564542585758256807461225164475159206681787809215493173181610582251969285985747160980822706238984293137527542855035171764593884659344769891659559038668863252591280012106594558950337563406509851392212721227470663269634504258076316909666779955674887877502276673874514431230467479000715347594244498788416370232508998137939149137828947869271958171665181362217019744028199948137284869326834715042801140945801267852130077815658308548722736801201387427034088287054642280416932423969169661882272000325426953130045417068384667188525125892243063708624195092307090843586224449442166507976271902711582997062258246001613154714046104299555622757578587192438629655103970985122425192412947792880525676194954771642589942575639511779330547406481107923920788461528503772412676854132265728247551402546216375617957710430431550607286207024262271059231774331304960630146528671976171063566825039433443944698582917334575485354355229618944731785869489075378342297139737326417899673745254990172706335071636950497768366003733665676510166757750601747848075517983240027215919550206552912256313570129642445582242531870057856419836576116077127060117118730968868579713569527228162267885376197820469167924954695630483025256393241859924069703331940279930809748798321955976377385076782699801226740877349961758300570470747022727693585743391026174500292897371421974647592542623612335142596424873787328982088151170935814290692731547038311011554573198703021483974519127610876725914727037077679785182196348062394139982264736574167039300407169871740992561941451350897190715278527850329667010201135134156104170288993816020010012575366396150418629956686156097744279750282327375388827859250683879085399034768125278962220035811588640080532861124595564085630831170133348950744034858945680040391614645591467831562124195823704283125727523087165178729758717150292959153363870251993131425774553331147469516273867715691363367509365004170966958334995677359307784214825169279457940339187213017558519969937063201888536784915272278943464393074537863501380706529994403165880704171601599237720749722609008162498450629506556946181548366188340919495902267336687953957555950631979001250724186926445074681652094679105126009298167836376927724620707125147854313658583233848854044116367155261635290251808325039584276608108256332611807119432415156580049453031482904390239480167635729764819587766311951495633137259027373724212959281534225602360998883995860881964472542400809900551155067649079371004669423732204807682533284592419309492622700922051954047576487823884472573921706821404811304189467069539261398799078407576682961292352012598910017980610124133962066237676638161577155873152052865861985550308409744232361563283367684786413416545397256266121852696470085357556223395723307864076689657324175654101246908464390755637582939612062270529645431507283362023227805932139243852531522732690496580422715779252029229639630638687181889154167576625023113680526110854263027316989747830475833447611342740114182353938436832319547405852491225507226123019541236685083893283544350792986116332806323024298483621779089970304225097235683920727362115619370150190943416332068688257778738216758625248513031348535872789821596415736182585069064734991329435457842402243200369549943215283174774985237403659749372255138525897635534810922678700117606843130413847809030252931941041969552092896399530622962374193653315668038234775876258766271591510602025088731275232066244858153657210462198142464698597211584835283030164301389234498181019778214227304276923205774388911635009466880349365224606855758603043086294937323485581676893698486825427531425916953402893709958456150132825363238101897233703635668978898557745975496826204332345736582327043614496178355940246121439169199189655333247541242320329006899501168849845287060537298681174902282655945905776118826964285957208376363378952427072502592355426946130839626505820845293737042040545787440556381570125644363697044187245161635235536475590486300083280716233126702704794744645774916485528144312036080395664916482528847415091909971987635464385663027637076487364265766961816036688923304893686757867941199996848156326841312899583109146604744816825905244684342522746750565110383968601236538124507391369586383733026828899421029050861766335727137577610531586044800516863803710302374711558730294985299508775906818898246017810914217452545317411636821273812058623306501084098567113563718228333283112053451961578924829440363705802549050928887233976312234602300592197465501240890405393987292351422477169136724467153610017359451447949050410681833802674737962004646560230765572944610873181222766119563956852760146415697704348187496151810220294222765572708194590773429301500682421605234356727435532060605208950531317712957610543204214396139956418520986468279994892551093839528416873572548930500002590161920591416556321171626714523662607713983608485596610230452873403699520691744140590547247598304098942524082490187957876505261443694252869188056446923166267464960446878184914365413078109694858348857437198357847166754546103683765418928513260058182481044377109525786991975065210474074330614266696429061267827925406296198805765226228618155455422108923582516593257131679528483044127888171425457212265906874230623702807206089198464245315844874403565885750765682543347494476551942505883533420957620796259299549563054619377665373762981583062696236405745041802157260519094805300220375643948449222831428171168277110659694626566878960879339351907916510650334205778169070953184937833958340075978380456691953608176941967812672244277584923896459874658777673198522145362971540763858996720085261981025277405937549836772904145219591935949871113757309007170244065075093495172462149285062377829629516083542725700312075965542961874457410458546811406747181192697394218048357642335950747271292497963695914684142583559507266411128174804343853515080723450374035692660060099376910699345940654577519910549486516521477667495216871899471052216879650498812856431512580878975981945821458199134129346065708144229543276917005836966006243710513071135048136062431694811843097170778870483750165208480765436903577208500206588363960605322330615280738669993891388618471899680639014071385784091893651337209979930972280753284035950937569649971496951964122464281898628804061771475019107451417224494542681248068551727442456205369908658924901093362368165893198531607879831803762281722836022212757531618606649842925518142878052295324038586016030024687535175336068757245565859020864358736169740864617704421028168142571526221572038545428808376551631960612505317947500937909086020109201057398368967800170413304371371775310011462209938609814655825812682929593284058710761892344086415063553459531954227038994782100179771138855906147939843971300884200831639999888329286885203083285859747049248065134645426865879971833630466299246371775779839085984910387290621928340907689095396293651583001722700761406620702961223109660831653278104400316190168703510942248821009206909151215788408036155996822421013721107600753787964326365266487363996666188822678797409981450014806832001621028483828166560598712326384977090350870018324125535087309198002955198781718604151109872007951296562158036690326739189204814991580187774807676812953556714164026271900120808231743551066176840431076975191602394335372528105862082463472108644118283350063901117572327675740134888410154765938421090705013526506054370771595563288762985609991875409513031067151903620372231880538644071014327448935473541519398224230552070128449556357740650552206001730693953213947838107306445748557495885376945786472607233007240542936379163584631556308909230252880422710701302896318543502806401078591126796365725167240899071749234289733279023138103278313403814761292211902791227124132141578009712717011500349656635265001569947287431493790630585701135971760607136279116916107932655602035076543338952615859441768961499229635665191546723476489300517726921000288874290663094970752694854818537289098900475172937751033977977821092261320884538074352747084143663337960891456538158914828245412437786911149571170705486228040944708712284287665702635033601120077689966154468024346223170878499108955715736886126276848858436574447603447633531132714781559494185202820434667589615230452545289576011816507086866097176457032002852860542203311359460192367235226454404498126671673466466384439984421065494597737214775708407133642777733662695887493288980241005383596593176692396896216163401316582525763414955120577019565491176541631503054691708160326438853879109422754650825789349759035579750343144267814261422436387570108633514139120302082052961297143636770212779761263798070652450404122055985098058782124281067387152536961136437725275730706463494214234166541919570187724078912108677897409776401123461724535340400752387258669463326760243543673268515338657896648612939013701667597055480089004559388855341276564839855455585892300260719652093055715393101283348483382785006264248849235594776841265154843240578066999302580736107335935312837313337994939547547110591176884126741882324523387026916506525317533520658005020269474132705808926353487439724167471624367888241901207587184288746968552547365096682490646911557176335956121702608816554525398329019597237192594718279264517183263261865163946406696026428706532897656679701145793467920847633415314595947238545606425670790503517014238462090757246948111309852881780628889006243581337145898853882068337864473879009524040583404535021565064675165281468059980324284805685614660872461791846353709263800953400830888863490618578087144827324146578419946335004099501746990211605283726668300900825959726610017445691748836152511946970276010417844323408144050188950698673887147478226835063895847487278739421135802510073422670756217836798843153977676411874017033860521036343233030523324479910337122054567307135194166255403768162097793570544294652858528322738358674576133185468010606988269761093006552945752165930671631016575014119107164736043074335421546885727010953988995615535558625916865621503116341545292045857862526404306157889206840904828565474614037086542377615145136157620685949482232088102986122936777208431978607989406085943916205826334512388669680367005736835418309038592401741553428500693568116792645203202539013422775172386628342458298541983628991247814065970168618964127633766155145741519667762950083338793647836685958539089235185328934075535532176266660097224895323383127549682802706604673045138232115574201204142732156508615581389630020346643282811518713801173857187866329815880659708890092094824396987813158805119630802502596759989754932304964639212006267549452122202434680234164127548994773662370767784185432897045255978088609687186842477978119435450664350389745522018653044719485664902811810012537608850141168327238892745350630704061607344758389268667789960409535972466402086225851038381355603102184409684531885278991011067206941549861827776994893979427456015184401693094252648207319469123486544072824377384973556190308215938845077767923424152443223355192344261713656429257169859492778411785206759150856359515006047209008039657813616201506539318651982095621151213651562585119911394550829252423175560009399107826091640507353204949140205037887276060398713274736262346601904635907759920475408544539018771145136131413076996328844512042541967527627069884439534068554711251170765707101304425432416649715757051016172968946583192568073961264549886273671366117820021597616327543595882326765387976561993247810894813133195560559309387423346652505301108747420471041915264822286091459690446131116366002874602352944665385561606696563507177984016481319502242659226517707069997570634966430903013767272340660889470204416960442487399213438660153549020316566616064400072475887643915063581470571927972167368122833413009364013242358847679594217110035303572925358395218814687432704166261620956527877112919619640512760163175179362600290961834244874022733485410954552941153745539924049575753660975735230705975814663796308796543570164979291230358353566919841411299119167605480555666493241590062109139474421894282876735032854242218305275075126435237380572733360652718322058523136151291892851743722361963136010329301029373038980490945038940352496268606139944825888321872706960305504629392053482615541869202349146579399615681229396202181944709181844873726845050766435637462608472839634019742580437637058843379221380523149872400347935800069773633896694359541676615205584552776039044986957767215556543931306653671054844313784691108494853160786218864986954378634232734112740674645469202996209554116964841210037537645405388206405955228099399792844731807547631949202491794202317459928344263045417062046468360366814190095821874951399196085088993449403557409955776339030668016761280291473386344290649383284286336264641492396282888492039293059553125358305820928954835531490069750189026524145980285653075352196535829029328759462296888875038721521932753537860674152948471887832222155075534571195068210830586362178362815986091144626472065396590325547289867683562666326359112043285062432329108917214798099619529127106786126094522508267264875945936636201281480535671148264576858909701225873142433496430473097365613463320746337011350825341240167566063761993874813650243413553661985714745312596991943093020629430742871436392554193902711670164064330177384545224153660581584041181578003648042947692575819046102856962189531248812810508494716943985486117908261927365993759440710941745180336412039807708337617537288255525734348478229473630321702176858538055845396373998323644222658226364401813790522254235632327581269685855161286540378440566733394776806300717628263126814855512013879818769437714541981901968694355841863795839785307089107526684446869648837360513156436569075028949745485206883304918330869538058719527735383683222745676968967796461277686098635563943356102028191427349585522207631344318563259276565291288259248476772574514033030238522046295023662517777666269090789282645546687623086480266173444218269891226565316108995061101203610697052070834596818068470543259891498091140280011874095012285958717011846412605811758723722380490671009256931318860037752212120795293108734667939603169195395025728851669278041805493113103678010226467108956018849489573181001978883470150349037887321241175494333756781788515501501394072317846315983652391685948152807805607408542262679519683824966010625814739270964837493755180267151688573726432500654197714218988903826735027333373349050875159582813241853264429174799355855949789296546183529656583405345039197192258826428177150462267580568820198832903672945770393536609548800862431960595940251538123683742652009544706105127004338941882982859211452185662483453293661628507503101295717954635956021261757636599733438051453012035973675342595160131476251871172173618559908502187682344223177029269164335983981862279235041597991818514571843518354568964092391453362080873372455862386596319482631269910699261282349023512795310966664047652003307815437915705076521269265526227883245613826242535489607458006567395446318212462856390951016704258334449111304050438722995307369958842631892577921466758128598302278824251449845288498727127104496839977003616681397796426308634609456440950511652668449800650647990846492759529068588331244804049225837569058433535851905469165892543430203875472265517518561627643970746572418237244161657339582042628588850371868336732149208569748893298170138437042747897538900186669854966608194512973053479508563869110220898403427967461613340982661836122709088292623726845418206657127184746011208886391946201146318286400829524468135028095546021228334004656006366130951679021910591659167956556775012701590911346151968636309743922716753088467320000359040328130459299458741801723839976152411629979538153922750692561684842805509435168136638173357238382285216263647916042023864626882347913601214379869351169453652346727950687513850831089787201292600401524038677436902812715043623990537294109022477111695208166412144615860019655284099775487444095751810810603672301724834400773151739047950434553722954723781133252554884010688972224976789784367646534919273426138896458292725281192101495101407012543086677185918361190148202153831641663285510507422773903429952893059548148218120019022359999782938118709387663645796199581528980160626902107199379229486350158950293292337393327853402307190315897276672986850210336204102631930638161844815443864789143163210295735775574595741818568072002091322457643423100662725478477437445587308873771781956102045723204877085901484527255603843128336785552970743985124577928911470303915113218681065902232312920259768193361133737951028873124671181281035033890258458667157665015463626728637749611394706938926368660714570122612653230637414032924647184976650976164034757925169394243770406291664090120769107511132610193711325123378980527259446573861069351276580161532837926460850314047790359342453600947333058820530583842925774922143321593912402521947646538960866933511065593214431735320457977910151256456077874222499157220629296670502880052232443306172455542287450028745278214997496494194387721882893990874358697699898296651755998136443127994145767414321757305799699694870619864186514926523624014817508560994128018548992784346169500599697627133203123566024492296569699229451972882790983488437391826255882126842212873047758054498717249608040283940550963838115785347428780624289804983174545271718578567073943783163108245558241687321006043015718428956654802522175572541524173949143210142923553953128658268091194427978040243855869047495345632811526418155531464534052742569780117154266867798223070587311104427489416470169381979530835133636746943406049239837912584995937349710614280512470723085838156321314686057593504692360735605600980494964925059829094031837812741149540664800023602385860738566448310118695594676966605423140001629961493483938276000547668633241286681834604940433546861499117005360035729082328559340443611977518727517326948699630236918250673575305794458330279303589400809328841549416707195196197005002591260730943271798905286770641871256993356040091384992221555326029835538458812022099149824862837915873471817265772023491266915000844645535948401318319653984572257443314564494940729513611657015555935234418679083083508789464965817647946148915849844390425491228684177725731907272602654226030906954958485549693372708061422880764236554257146150112791651413987387230219456611947662492499636275537780279922505490332663102107246337239921216124207763505824971382646984424516669713889441559452538336178526038330332731887540437103998848337999063774611048198270937990458266027743797397264424638991319902487026252710526319801553954814966496008544803258561561246094953617648697700847079467760659150611803703472856509209669339068586178883126784695244577493029789068589440579202575631421580576081280206765061003171208099797854952959339888814733398741592247906593412347358426861445965672607205256365958561857857706463216419222345462036697734640323788540537109277295795546529093799792406570673510533580629724709653109151365235404150888391406256222027422091079727416739627648165136645285917675691069195677423072421382267497129770795412911070410324634903412269811254401296322883470339832050030043557455605565762355751177586002329993814317689704571246236493430880473016653290137968565006426622818130288929585964786350823055823088644911381419772362514839024454892012623623349541539429009129042332627167702785805854115321192991075898695683847786047762472534630935635382649818429231077482774142127665011029080904502722991394485130723595934628853308455040813397581375856833541231872155365874480091655345943527923768640122822557212173892062385566113618967921188308940640263734511662061268500053721306989244675323255955627476568290562833760371117117837088946083527515070723135202333140235895648612264799144757001004734777776640084149892233509175569084459363870593732228661794849444271684135547965841725325078174649431597168845683364079975792734349914163481552351869013214731617065673677182547615743624951239203436576171365426194649436195743194385488271754943778370747997956678513059803263058775751846981222519240843701370339044805159289588286397514192822560358418333651124066239329385824976530029456529736606929445921428328668473723106113348837359233376491893804442619271885829179304744787124531982270368821025535985779086561301792172077375717263209892511501633311053717067533437531420772171070021456040161504677273839253306398366747047108559559461347302846430470194156230907516355561341912608426534592857839529737284596379340006200338573540898667900928935791292663807621764265731951899352718200816820866506439339803956287313500491626804002467697864628397179555943913784364567449465294813782194992235830665962186643552550447831448776703722672218790395354883673360880515233479391519887875203362326331652923541798476332279661503283535472570845507080525304586094754637608038445800720565761671593845974762016452400756705607434201702923738382402678352017348948231355784727011423098710475153780500254732159249633067794712199922463243033913341458825924934566452971568382933510807213938602443234678743536617942388127767527082318805037885808080050221096717323573246484448201339516346112097275820335442076741017375449656780561786008099777799370139196566590355012519601298968948966709225941546892191573735161920527257216754939969449766910289486131106232214239966253059369018319171386212075464090522263456476003916458910578995447445118159738139814670964097335328806464859914495267541078807601988486837652545274439629852574627963212938699760019839512626613277824483561959266956595030411025717066437925641680671385073463515808347399604570196816959481320610057407177917384391793616439346702629657419949686592384165210222689664095555911836754073574881519498284917380871157050899064711660577797784653752513088230842663374757998831767162894813354378971279128381911544670419032839582219149962006658283741255510746818395829730036673326818173782492372521842938376390449604323919712155405311592293246068941112615566950215875705647367957462885290365221101499346555938908316617166241947788567374606704825716834982807884111893195831974737241973890774281991492610419035332282373597950912995270951849711710484091164650089101373837196170450566232172437145725404664226017833926242728838554536948424244661133796211385858945275725005294526268277839453131526642587895307147441015144542251318689882679021860216151840236799447977692253225460004557534500856594397739401783858582863383500386893943572815826535919654275595748840271635735662506242900939604399069429579272591692339960673200714442316131480110009764969698261000682775783708812011259482202815502713133394594987233779012451367079796885245640944788013231064870491345825585326478189702265376888594363458721194608155171403746163246830382054038389446112505138337416947030979116840872445511746980029694155809693736427473060627613616955219906640254121437675148119553267872692009302739728491411784436708924689351855066916633314126570959671544403304936280228744950698530184211869403134942838489025515807463333157115575909607179648094356070023494888104524832495697035215890057523625249153178603560734036781431343627073077322182196006287282043604550444543924930121102095701339693425043827873818653763264065476873679361651116553554353068558554225673809518075507096586899440622031601909413482996615976864726195329100158062112621748194830179414316364764223834386130623661460284276955200515164709829434204693752261144638560161779928081614249111018821668595510011558121670439013684685978083222981603341570904544504001978729131864476205930868289447488534920568910618965522744891859422857692878932138744573688670739854797895924014853953820070251476946855691725083934917772467588802566640521347402111109243817822105852661354236693399879635828022312898599711981126489524187583267975651070752895154128158596929366136918667614454736072208634723263499883719780551339549929705119284195675829391748447808205025941978474051605530008834885171755309128125358797853888286589962943629922117222471102658625310785583878418117947713840751678882844644873375933425426028581833110769540441722310129093064895484525943061310933050121393704011751292990358442530989243432136548622794377834220386170561511318148575088998985480456781231134339817759706974850419429461841523407829048183890679482359625320449153054443582868740538215955482873951618229256489063475756580142750099507879014210429167665782896842400953869126916807744994376541029971289853579475648404418022347277013141531774287395664875862535180446732650041951674895113740687589628292363648073238911291907261940510452446933545508814003100464196372173343280240767304418534988805865005548158412020928646857471994104213532159333432501810167057128481730778870830233265798661958134442843515179496433501711878221100050508640664144574348221570534072128810778612471694957841767321444175951584422213348917417660188436235859280409045356657147222304412590208760801866551983380762968176178711502414757085045868392823025971114186343219051071209618731323672762396459325344740366805358938174486937336964413937425545153460794061740868216800479244926585413773327266838216984539531394463989298884244735604395257423152860491909308937451145604414932313775376430135233863282297079198438670573576628322208930085879778372111729789747488172223935391405056526465259253613902809462084832578604391654798453814259646189571162409839022156638600542702081116475376230517643531781865693278832367494942869457217788342054613874368145399638232021958962936339461462624580435611933423791247702552947731612809694061031391697733032325630343361319502839319792733530473605649769389477120017272211147054430145966905002756622079020778867675122243031321452786410392790009450311361261236430166085396976555132424316215790637733765150955113893809716351560087911273218114181593744319007787478839602833293318009426570164554073709816874524541874007182587900753811126373146306840427849184394358780702270386477666712987202055214792141255493578888524173515440970743102601074556492843354750143089831052249369613120485510910133468545699633529415588095242005083191389647336371964837157983661496504664423842103555822076837902529238204507708772213026449507678375701578293042838910679641601461389792326989863648063197941556107724852750597091311320925130645947787096934570837048087606129209314305536718792383420461578395985501665873395141919530553643331015291116266531150439827114080763838654060585132161507150569499069771871627172831971486096579089592387730566979750067153490803375106848422302588274537696088017916470175405901748037968054065703615311057452459612836328704122219172657460181075730054968345240519254994088409195391495622951054748981119102146623604768092696202302788967171591153947677795722680876539292590270554593752593666493354510553849299451729590612754581713843939386135450590747311750015770137496493044890438723019154190498506057676730299058103563997172503992484511999357513961061611505584628787813019729276243070088454427755229461511107671950220014706562430848636613114798777713531060471483457755924358067450533979882776311909442422411527814354400898476111104869495873692902962778680673598647528304174152954921961591643485208844135713252086199201204800274183843901584062364062844489028414682836802314753317153258253022155633183761094395256955620614297151455034217971521547197408463253039424526493093242752418814093108499339729457441647061070156171449039277601973305589281331333895725507099026555114850376249170366255907637146791295073920369274140557916691962270436815873262285878140307937977693098931696200425579845084490515604955818040879332466919343806678532198595802658327794066005583621468291702621930984687221196255758204812323125206995219374135246059593391844404743177780150754509834192159212563786529559128665427035535616777680264153333731946772696063373821528872714445952795550010672061189050469921229985403001989004410067703469971269206868563760306253203993707237945181206567137437448094714129598882878679057141595822576384872159906081522536552002723928034599070104521653601686912841174002255721296392791326776801122300210049031492777766853459898823280132998795403792781249697632878460601871391271547544372074259510712006029120633879911304973149605462881949325972097634882811678570076609275244526019618307547155326930814888997165336758089530336148490367381442213565448490369954859814354766559512493727976019642442572154938918784049618815133750267189320270040740585376869815979586065423428507829007084820332391984270033126267477769851637231181724351581588827871683296061070963577175122645869596668222149365839308870536099883420798439688787121841664793894615533174425201323395965966833685801221195380024875554961951377795752936580522586573550397673053393801735842739932158565907986216734327300853298327035547964486547383406206444286472810739089737409540400244484426792907627321199889827977162572749903522594532982637871402432037065690170165573591647802881013169762640710457222795642679769648609461229893623572664350723783734935117844441919061309628213405903340799543612156998488907952998413990703834742350801505724620241741083001464887394844161101710461836266474483579293655340219665927390282938617345535012494607997971711230718453052059412667060143363097795530975771225570884130278073694244889971366499617484116061797775738618437880909528634050305143700986454255021197092010516030381623062759794278896081754482237762560024915726532623854467806480935559994072334419937838248960610900888959563319014191916977582595020902649326873966706751453992247764294544255119035794237052763086331028664214284376155716229053153351704526538803831494248779344161964487169773394611007702649119570101131402995530502317419999194313448399594026830812072710506270934130646262101274840102660682552365541363376053124401063511857625314400509769207734429706527267564763496021216241738092247223196092219610167241040970846984076129392428635311569432062612394877366773961268379004642474564027159375303586467007302068354234416851241113705225750163311634448504375505677552404717197424700148794320296615001557164667476589782186487525341854364106380192418331367179364334046127792781999171882250595250715388509843937649781479703409388419786889285760423727018533121739135482221718591781159216021809383637017759882214524830419608599859108007324279721538624596866705226528041134007601553707717040174950085753033220715368633316614475450918879503767194773512005015822344486062028006189384178951022411839406103668940810643414321293390009237072194126638272547362569164402289223130385623508656070181457981568832885140581006277585722298348467400624860558086434785795185758609169085295019640768564420811955300694627208560720960918810832738919265045542314883468393603470023782939110951708652836197301545666450264019476680206792153138419590216219804530197496809421970358456634796533115017368223083958625138696608886542776052241827651865937272133627249849200353115244824827935250170245626817807821029067867179630261239961023458917421941932743562370246241790894581898246927527312626638686969533661110851423541989507702971185908159430244721845766430460044538190024666921329006824925798559927589446157520048724015424765524288861102052528172075764812640800341848990363947093732219928613091921139927098264706760759522431866775587630385121638611641491766433096768318257882076883381539704473899078026134056404203243580068342381832942680224580214455721417892627846825709792151909693970989170255613497251877390805636154376980701817721688583663090370190119297330169951793704301144097949540546329806240095638429510967318045330183630159141585757946833556555173725519939988780520152489753825598826162767124261318899251055315186919096891257474987714621799296398609115925027531539601227927292002608720702585524216144056013983926701156588562780054297535279926496828805301897557186881556878886627918618082172390104740172610850384841901841441973908646414172496610130692809360829351562274340119642410897623203692561667291854447189238964405235213200831425430099647674631631545598670658310996567480555535707655475668477216912883005524058442270022233532605878642743808843515576684494574665313894674901765801144027486850351921485656377773684694820469933730285315057306227116725093566274512782537196770519325685076604565234980395541473585403490706575230463667725833360642192414607957314947128832770058398553157922749823050873890805948724895481467126759429994165226329941379252415797498088991801119700048202739694127098093488515654299390679938452658794490800572896873991235834157417464080248600079076397717721617359448619583582458819070895743244873614584285785680508700571710793286079436273953115806043548455096818989777899370511852040499800245823647682613408338282186560512383149920204774730777516426402318769108888438369301422441799310125913053025154199995102655994181768350008845463501786751203307118597468737057441694171016406814456729232512749201162350594274621315044979658133379861108683589616703139612312178656271663370780865423842071211572652622868647314056365862305368892422704248796749751557207044698234091171177040930372164241017197294710782646508406459197537701436189943901594952793283820717715262606077575918657616398909039246683803016085055913323441629936267102623586353681964745896121553298315137040693105612592988931163087264938294213382866487524883658727031546485402637620676345786484662583441622998220380882260273104237996098150635894090680903419707316137025146519753836853177487299741792569536125713290429203820898652326337992814538569175885232754539247509813526746653443999983364498899427607957136173057130109034697633990908450596425371397166680867752934337816515620887577372077596621982110949056347250637581953536502809848682579113808146569179022346625130515842000473862256237809655870602885083068311302257758872496428083870726032313380600364042230135625350195769916589812861498435228714633388510050055564620406047337057939748814886449942249788116898955812217751930963532971711285532588539595297171418353506980903515201748214772124936443501638947274687349133133110794566534853185670431890399043836811015345432265402141207706951929024792016009704555755442544464202902591121003403888432570817861936532397195545157732740356115786074517695812676298899601623859370795331528522935372566139502814839757013830410676650528452485827950285396089526441275425459132395709861139491233909204316010240444288025067901871621533953172023190576763431825726708533727408652469641854680999264321536055374114618761961765523985499608687763324394467487808954010990014167492569716322745432053611713161324651920036144597562930271297899655590174401502370186409322262522691530457503800779671501549618879575272595306922529726086872727837986867129191960273519663815787077698929348541768052665830793402549583378219215761049897565688310945886579167513615371122433656853777188731919670681378608521257909873535982283942128707778041180588279348083085116661925648177019180565180715233490485964133669491525626371369788042271377811531611444701104142048566234630552025647364613476292596533204215881813762013531806176590481943298201661287930769837495674104611016867747861924637695205217575887012742488095483962033292362644048708426660908994238164910850427503222400669295076261686479285846977511365427970265976016656644789437811658601986616700308827414452276697745049999483679630504428592971778892958170351800058032340128740699678261331369392782427649855455161387296043640031144292199744650338973026954942950317929142835432637826058842154993949655362639663906227955537537236896095938267051955210591758830805485901061713835934379201040085488035071145061514329954002762276341418518840730046431281906387300800354284686094779954666579966122440533933940553310726572124028593290402085932761547867584337046013284025536964324276476561827284685724026231133255949770062253423118793052690991794454204396095820445215089778050597291109033782408517739197120928941971504371193094299009207137777076295081960756872091923010028945013690930182615548930462465574044712565005174376207343594035060025052505684878906706925936515171678565535692413557284078614896549101674253878785572085232532331100677025858257617575951050704543239278266194938138113601996469296133298276440408445489955913416166406219663206314740426888118990398597528053457425467634009813648114671490529296048487817187815886964959114859690717172871323027333922153056311601655142422153446600299832193008378454619139850571402999952663174486042297662871042565038458632068362901231771773414861176134546842666181862366809689804337376524346919237383720336583444463035237913708186456574897964861757906924212278655617016258495077100731115129305571472724511707560040468632159013323232706403571892829919065011421511488002695101562479809320463631640773007641087310517353512502606229850363934113177345664967934623850070815559899628120793640811917399635033877954116627006845624973815771251719419370146547099886455603585104070340748886337221759679088844633309589958447424250578113936564514710460183045025448606611901273520625009498117740934379005256223887068937806386292021921874347568671308802658992107336831778588701719064089249399975766974956946150926940269326485744019316809541842465832816735052939412908391434199140857797402053708411193130871200617929744542033258864843409691390276025086347264331306131496667731724280538757631880502483633746086568107817407232436586013179543375642052615089419021804140141669546721831882349675563698192894957495067163248232667478671468279077726703920246790991004356277482455832123468417219573131581163127349342655455767352847754870352814628428587691497887337817503900697597028872201634098218760841239749810441719455449507948178785346216218471148473874670717091786149649174658980567771724669576347770609550698495229456981224530901667835565213483287558954617781421233095920291501750553894403569566414914844840788240297661229440909085914261614671747159808997499085919069541574033531842203187972703013920505039867395520033876189918529480345295437279956624676702442783910321898500056760478451637114304862272124219816214671011778647890939330819361046315119337778308750901791779937057910167123277241247236964560937269005694484649735854603758245147086213876116207502807224363939342420863074111563042764883576287157237935506423945741009150610985674486307105140490481195528291139698263510055807369003221772979363244745790464282147866138153267632255021135754719642173616374102255070121380221533205160847443802340290793732876725205317659947591593324746599300234696081747508022582037778621757570524339627264312116220890895324330078804870746388152576297759520544065930982441098158803281479588645429381357875219630924083749719537173849312974175315772718605430058152361439897742729037085459747837201727862156900001702215056867913853233751491558190324166516336776924810775417817120018473124368995747603144037514585637055286894355992679652827798877839707718258821074617107200596105037530724539945969863021139709385527753917857210952359351083651411483873744520585756897990374774975272792966168525887963272546931850617595310236224055581758087439683074974210447176895640539490277267558535162390547955995993002951452838354295494050877681464314788900753390422432198129220288756548125269860918011528869538676616294386396833024621595394609423382903564052803210473715766408036934030464636176443210354109177096199193100685751239057477480347367955835445777531280244765919577831159597652041522945140272348664125177388030323755778506575374522158448913619684391549318949259755311459258324183374439270149964580623158987590504111336074486758468460617567137792304770108943889829464546958991809575988733651574431483889284033781845198737577768443369544717861446941757951697760898505818079348781146114433245230068085940106388261046849135944088309911074596633037024971807508607976054906292870922970445215711716365933825737548034654771354598188873346144535224984343822047791295528621438869607258463452968787440639294966557028681197468816772187518332719814309318665628209829214022987625839690659433166934909185586177101774172181714335604960673480211586088841927627097680795992551413469301349205460983156714307318218497013329889837175755676157297981767999530959379501846916930055065426914544239206452343846651645768707028946663481600886167895312820444847774636637128103321972865719101292081510321592573795594773010072845582692305866781808940769996366835781710293663596470228331122069960750187518093084742841876280874014398573514943223978128508659789630216646139999639276704314960974364684014817374694370181126813856551143165821356554235039994448241345694608409903379274052526910787253256396308158853009289165087657229163744872385391218118718293316214898807405117647713508194472872534070672257007577765448793948104791700658616648848627047290476153164823010639729965142653779339185308375927900888311159528000417899452234569415740411998360948014104297509250779098153262336814175151280270490159057287151726172064539768241904581943921088491203834789678110192237213297762693153281756517057392258531037851580151681174219001636580932153609371769511122587147841002214484309793406385271429991754606887040371462587524733363746685737430347864992899242680290708760519769809349606776643995587231603400824233629433709025937400402765473564856315591578260219333691495696610840787985547940972082254248160209250121358701505268445417334004275053224756825100338513157934071555130673417519186008185208045300848442700064742269557093423996248509246144052040059989000625779224930117016798418211948715200590235429069403595114362848501341956944542119824227826548930779768004849997477884203469537639991542953479829623451307948565449963622933935713167477499296758914863921992182103401485126467488946156546932134422618745631065785392359461770572934813938285178782918376429330061316754516344856734322565560044635492214787825547691533261675864987294852070438377467574305202282517108959650688315893151281696656772152226350260520389099493545611042249736411224373169684038908900833874260644804543859424319963281053623992693415406139661369490634290062444851736339402077219502236171616713605430826235977120547717339057315325497963960697312866536435324764233699545724414585469189165682648592608450068796824214435260012857255857107813841939297207198764214152776530686331298039443982744460577440656054230920784583485276044457250170414573245436996844487545923564100240329789959283989496287739368900928285585980434745513802158085692792285180195941768907006933546129135117840103349484457783635388692015667230698159744846470131294393190355409118592523946150392948252204520621049735625249746677741765208451208719701383178390550336660153836007840730509715727081724397140716123179778093613586878627187837077837929034805928625803753404974666486817677731432643788263135314683358013357081844645968071826297773176936844546016545071776047973862235694086091981533217872876416850052375182910070188331566557063156984083743292814665639614531410113992083037401516083712396168173330795605935864425296285287984341820245888991828354232198818402369228772437584653236982873825287993927165460054274584959759557924133338829529090398911520769570329150822799641832352373535552106881445182424216660676907291799783783507167136854299527090930896482516054177743690018963442263076534968337280514273920394582498526059156722621196638284959981634741629762802681387986589517619908383691706518818128805211437158356745653043135725954810630683860883378021345067872260199631583236936046955665764417150511731514293968462161922709951158888526096145428361615031364517169436936807691623525724917752084486023663213151032668555493724857995951990049853617098402799558751647058176174159429668126539295841603321655825269718037669706408014282504876105484757198186937976813696779071385263382185478192618532890030789145277039789632953867168332907677845238415948478521677533273392771222071697623981360746676238594702768237193251927591112966523308461857201282848848968588932291903682669133225875969528315952943479454729919515213306385163258304076961555182279538743869027254307515429401748688337394950198063188292177527790057209353009728493450745607213419397851993598219007763382535168720919848263706957309948899102877980041624733665396368442774174764317282521946502533852419261541356398666607777937739736057673605191011476734978400665266996578860266569554198297378123264610616238819149492147713321747208697579658904406910988546518163782642282691358081658512745823542900582678168951418075874318680363842691316240549166323322737188491391235341954158363921310544002245569435875285528505069518530329256645638269361603007830277480974458755730229659205267307066710751172340560819948559364281840665591991229333318354413947583486766922973573415318552396807942692586044155783483451585039189286195166039534940682206065657058723260359244879447558395186917759164785874912979212436769215235097173247855134270968588331495217581535026324226788654636134766846834976708465210689602705209996210793631958453022731317360487090681917394803423722332859774984628461195668674494805865705139600371111746476625567568159355829707706371161698259188041073770578038054382918940367511617306541150023529131798224524164006936194300821122532520637959620502030226607491395969759629189750191975421932437085620209934614112228107125136256931416668981306053024439859479209904007874585288609153310390515306589697329039261034249972661883610425812387622626529540332790689118876827529104790399933222716113505943656773014236025375753804643360853615800746043654122375778793843789601105939334728353981825897812138128166697887477554791305067428289663325732226293111479898585784973277119915745572424922099161993362121356371312409774458854945259038572803327181659725446797626142675741597890106159248684432521798793638459214913179334767904597693918337544932236250507886300182714236898015638236859826186049285952912785474413998001184598943885062632952974319128155214028980467818532566125209247228670448166172580109387783210905431837406703853270941914490280478855311015209908759509332826496827774911957471749635578353810905579403662103083765532658488958343375313439572845931235132895789941268628685776317543205800909002032091629573079784333877690753304444190092670262374294457121536807144444845283955557239875294007953821081696697646628062570230929736380265174834507245724862719727374251260287225052768822210891169504198737183019349950572616525604124220895719723123438237614074593001916809463988167576298934764472510281211794861214413270582603938654280054057307907396640676989727738543139635155364814385452809680954937468487924529148178696167137844975311220352887274464747169764554705853481372815328769024568527038184098828242568320164352433339677193487142748211169653982130714388179320193068194258305046896595900279167044840970125237102210983648254007885464771255200680701047567764955755263706628736673682979022276329833146893871107792906844350397074965000152720274898195542666791632724249238606055247900495734287472830361906105937239638722236989938861811863513661696002641522180390418347986539527384947459622224531393338985983284363142150355253314129351069989949291984724880727325904675211617651059428023997581756036639901184181931940868737217730654189995085002289727266748902421199499017659125458687525147148255259518808659789096333382459901032348603381709260397291682992351745506533359435089604193913554040264126547660817346755726615519522171520203413018908814148630947682554112176983397525766782464810685490846201565690090469039347561954179082874808706341020286804311733477406158121256256406227707965155609370442257116128176950967636402948353095790531817245768227923474563748260065186732888379525557049394681955290094472367214414037475940916943179897871519282318380401334463859895418154649578080639801049857743259235003556361244742376962703611335444374096668688086773598884430567616873557044955575788234299203360512943650093321733963725024907219169426995950536540159486431597233168554333488006509269909522110409948317823525502618562629870945260586052364624947568145043705092903757944595224296757685150504140387286222280046640639976853675581815240270186744092615495399322707391515547326724550236418090001995674624855700298812534076533784104041863852260931928306482254532526206211268208285394200037763028077655390532095691094224096631103012220721934805716920306039184180469893372038863456845774082316762113435240579933560487365417265538355501676149807442820401611042396960162381048432470278106664854286388101060450888775743904253264088598478247116694418056537234690294904330523849186949480505312918750857165106561325762112816978816777681931138855620475004601889071448759591998052377584598478710026952171524777784719598138015356839685583967569580623543737186752966827674885367055184928766920170308991848156282282172648497902377163463932479914631966887901210563970701264292466009046641033984522792396347414776640023894778635916632435799485759713687514695778708203101325250728799736579118800704310260212588575635639655020154704050576863438177375151718135113982938165108486562847265016888056201302383407640493654691615711848397856785826078474205246460543704175998494008978632276369627368397635804481045841499916854287098551935095541459960093291402110498185546001464640320466900739365907857550713387204483942193132783969372523480013353068982641024380792644253406978903581581268524076194747587799949675347695435378851251389285587915990697905854562677952196689760951847661158493673929403009870604156733527653424017421783211339421056144613998561082446378416207491906843106342704159816533524452155583761511032562379447488170755722605074662482400628345394159993173310877068900769418253451928016640896646610501044720064115845423692488100058866796361329227772095594959638686797656200456405699394139176424185674802002419932180095914259875420647947786434266804115888066313697716275885458605984043279173315409291281589261157740669869962187248814448835110344894098940653307919107025638325375847512883515231435598919904611363839558596103265733239489474462771969707407657775577420735186702530183157670451183870217222352351196612356938332680820589087059608339144371838958319598581236969016639351630852072168523252320782508976529113094814967020184894895167850800131861640924241666177713801076217282687804457782222447815851662239396861127513332718953992509707424085634048746688271429305084636962271140991566312338023842369053140527846208799030316531327959721948112875640658508494272090834129250937354714569249047294293950883869553568175583933202376823632406840914194331580010385351047500736452406154528240201851457267384590710008315199908000176224584729352471429534675158949912343055693702302701733200137301156008002458366486524013775430186507244442171106021660070086078848535381011708446591429033790834423261340461136315103613833858517094695106686551932840277085677188401786604964611543494319251894531813217168051217188523509456184181091437223504520394847709265290857723243530273682615991868267900512823537730506146475531518247004948058534723821040018290749313958361112479179511629479904440299451020230185025729519266011977632555849128246817019093355948209020646680827416985215024734930471619046465687897249249706572733078915314562827660902834366965660415330650592811796676180140928449348693249245740924958712521169867276357473199098927838957224863482512618332435731576338219977393253535069655477387006510632533047196794919303204963200521614912124705987000005983683326486672952084609862787168339169946744207625271173908034033178377921743454098094050200618176321947198735186461617657097066172433062854484062651939831123333248485979682320694109743596009737055521991554009453979551277397438382778051720352668402164113147101261377662213615215477392199043289933948069039616521516425548845997289360305729025158733818164629511235062754496048508760670391186984401719008611213350171264949618606849396206453699145108825359746091011804509113940076582263160512687045860918048965522478492875729551058655835496300402772136927962758092567109088369246557081727454243936326850994471549795409876315959096828587589880764963175225585018546882500212376928321608235244873199265137574738583457918082376155927295477282407471699810244109061223725795221756674548343802581458483259727532549416885160056431269330000594627338034133740433297049146064688887007676795213450781458763029593399582285463664350831465880590442878830920070146554250739803444975676283715791922683995743284281504157397642635137599094379281516989212920140756211329803777871338070185167677677614478315225016491098232608706791490977390813718536963350164679471922446857932114470008049503469325899066922323489938285382766891990626978529852041362555135112379766870504173610579916681893788649654819610287328726999173310336228987671376449080490111392050037029742909150242828374730657474547731409056144308456590195892155337839830768693385427302085572621433561504641404592832867461495594492125147243293868437625324483787430215173070437513731222305103109883905142681914486580626680690494478145976670968699973525590753473192870263084105104042178156277894015163087973850761595681998833630660912376042602785502439515805885858363583749490786617790370316269773261049249454305339295550040212518583801809067239702227827504312189155277032981994829841240351894588234912088976498514273329144022406750712378902270156117431070880516743967987503632677766399447017093750860316159960043522421233163540052802038353765004070864904098477709418591470087630279366835909972744520653015827734028773241439244721383052356892281660833723041593943391256115303807600549621022729509457485887398145238765742641985264049720074780676255147186602844770147411071240504316743391255189177583827604307071843692060470256967725383546320604081106593952307827317441489369804330466976785104911733841668864102304602605040196699532753823629539079539847099507587076617149926176238157117504122729222503184100059115750878842344973299455472306831464821620129398278341226475864672247658940066661434479937866609798565566793425710324155430768345903674842914131531547222127885673937747190693335498003513084948550899454452933624852532127513989271483573077402907358035551392373984363890192797500386985938439190093081404537731453585836607291464141841614105061109630932874258610855153342776314211093165823091453166950807763180121617980574273027840501183385397903659390024318720223970392141698646850339844726997379350521795464119653489192631438138796825461725868876952619175795796203625337669445910939999072279309234718069240252872511919503070582361859117079061796133089244894817761788463153416351739837656696988795768777825032148570845575275405522238001924743653557649092370529945935873540329829107985117391780263782117033362149411499993731858636663611668905020579923279654148632423644143516062904413701669189134480354304097265360471634940837105718231623771865955778942476117240932617782416150655426198130444076401929276247828855512878837690975490145208016528134529714059178354881059552749749328741959619158387137815400384524987131412993103549105103350175173879493272562491472489250459991238877304795097993636946250166722020584526509460342941999638861871023861276919941123919592414095097968574590758108763090335186217186763697751232663965929783994994236649136754676502234456275729892366361123176937390280954669710111918826509885280316753389680297598444797967783332738266517293130994939510312381458596116677301670383518637135938755206698036251504133224723527308872636258738481451685572021801976419635592847345364235035188769245028596069707962800907270881704409997901714917355873972322402820311260672297768958024519049555067549059884323117747693301217211146624415410832669639330694935924327540346199276664658691889265171529312975616694085162730371431594399268439732412686831614055460583187581132219549151443576338451860989989507001904666628220181951088763362799758512395055200889127702506332190034434627042886646988185492324179035360797881980720837480685440365852856069859129820130720181838071325389190706262713617608295091492248386647794458185054217183312680700219857454687649661478456928997364933527254065207303728247481746677192254815063760625811605557005411135651059977648449500024921831836050196733794590190597816627148830374277067358452740710098837753411466761272242686640408712216189594593615889439294925047653665333104463628351745433689194276454886682056667262817808873564578181876388373490929841412120696728837440614967534947282974780148605743338859802881061152180604403318194059001917205281375854176711218616889844971953765536188379802460287750283095654350959893905239426653899769898706676308613024472117836895803793566698515191958576997450277928088607528871872351028634096286552454304627959057309818886637623536176358304348602436774460724492037820946249964730341742704510036182398331705745484007885655473192339510034245343937713338727149031877252922356114987096788480527483539034357763724365104494159721900675959847397129197833968264702828905959878480289855957448814529060969184457227300776615999886998301249855670800038221282357128353386233670388485273437862094787185159090523642715425698428808849382014510176467542262444058823843346873016436509309931251360768854062651209779382925852840762522161433617108577682473649231242168366398151750636055371965993991088216337172791259234913515145937295611132292442912877931285275476955361464117266616008962128802075076990142968647455456079229651098728203229073390349198385656147468069265812760951953931938451353606362773837516334979836584509118831915603490595934300324500218386695199075014295824718053475997960926795904717631183066551187418326581733562592299361586765708919838542779334006839022756156604646631640420845326107776321251125702869059993858915397792879926198676577652086247025670522470665992940768664138005326062565253891126706292391832323747915520471470581300684252628020471400409020399343537680047603162489274644930364636277466362458578658905535723019269690793956904822387322695340811311866237416964437732533087765450160098559762512696410187851791118991289544980954035386589054328219100477416302761910785869768329075908153743990072225949504018949198116888270518967092329889136805614479024598534708757672684148769851556864954425092897451044100950684083708524224459996208866831259881755945254201355446048122343747958097963235015831071374044965150961004247187866105626841973902087744083645323240021013170086633908224999436483541688261418376014862829111985932569260584146172420319262613659438392732681753343558641187087578246841126470114964464807805607222070739126769629735170204692899371734852559752189308605756596857402592678440131485820214739809323018036420967455501619053137250533907912825370227340900787125030819986790516902820756417114604815116493738711114034084781668510020827614994261954615696261324239038445549675515049283054139223485984415883415158045657376709986418055656351837837425207006453830422517434208888039547343882085498128527286391892661088498897505077974012659120060175671867822609415005968364582173546003120458817242054371092132454971142813532835177464569906850646100428309737656871384444706096019161222144427776024433880692818846395221375027142103677511145906229244000773235442086303837122069552348914286985234892899038836990886818585946728614100019230079766576020961942193766422365607954034434204919010006546310126488511614110725538591426085929363458353735822966996298019634538585129443416422298260561091090491165377610931845763257218987349091315676522078901280339652786170711929455374453869206311106386164759088941453434891371267324844841597956629421904174887242873600252135996777931826301598472080890012871673554831175520965524140716475928799499589873159180130968386943977705253719191899055328330500621156418338991405145122157023202144229964377803958209552565269126060809542385852351022868022167196036537353831684988800330055309119723110487380308500966751070112997228057737494936192860391545138233307109970819033261418886595836175937674244085192260150305855343224491745052444295121900630236630831666274025095596692268902644533024201288830057467211787631525656765173306253661416914779176835896423828250817296448585739829513127104214625753520618407477752013347664550552000457381328675816932579575291449951830417273611205745013127267905397005210268862989676022662200843783342465428616266551559093285798337606530829192222108231424761200346009317980415876780828876994315715861303973537573602920982607642080689006938622977191748697860228285236472028070588617696547776284950923725317530149839625469864122253268788180541402122641103206475746930281069367366022035948060607574953041339030619475317210185300153374156858590061163993778634827638446747206681837023569202526061988182152571680460704181751798933481892998311815239462635748231157169478459242928929021181544697564574714933013352953105545916256356232873694817734637593368657093173170026444118095665489903392082803900236335072671378402385006767513093967897118001538554245648732356939120948482500581394128294519120840196421614427694532449912326686390243747005872233627958686113051117933451062076345974659286655705151719844720597703381202329235876424189680595095427147713405814431809350385728844211986707264904933584790136902417229330203091980375607231130535143810926306168642972685457115245998157811264671895986782913243158782324070921572654633608072385648204081165992811344846999706130151332432213535034719079860190315130973066907072289002778801225448056562178505497621130578198502440586506088569623608205253013934983629368521539810612407439918746566514688674001939631719617849838686162360360496217083539398790059366561198092901206665009259820911356473373308350019930666669946805024197299600613129417397682650374814117739948193779699677502510369000368369095807635288687632888325018095551012300753597617011351515370373099756797922853863403696371226070607050562503750339874212700373308297567158865986312353290543579683587982027904821785888062823354057485036792395261541879584795135220558178060844807261059026899054161401759500596017142081164494821203244680067576345587143960427604981217755467463647629487520350656737020097681516412993601195240189958920572977610961809579668480872573494201897231451445376629690086525504395500466576965141508403457377540868296764280136187145276693972378002300717921918144448068991276251972566531921511861363674006748032001068180292122258620345842111744833975585481096299902809394035228419557863490209726354603773495880070489297283498220528412237863377976137142702561733415117794274407604498374824307933212484184238631194543837691283217620288639545273769515638674614212832875007199203171033175861191714478399320372077611926457710858750198202069904586088911749816960859444280692796103715335373562607213840370430019646801981924986388080214467154107069323951334662361844188529371279047776490044257442325274955328049000021371066821588303406407853290346924917304300468789971353508615365792546974541911740531789928417914099893823057468625064468299282014382804646313375901531607881432912040254639725463698621919058952096398847137157348493779538638111953753591633187952919460835424378059052877692074796396844130521957310618792605560649831955874593849788929262558407387016471946342727312584129764864420809886650135089016851686065857349202325882064025681673983909419097058756851025650449696717581088084980663749604983507383506643474384418749228427448274509473554732894849572573809334813068497724706027413346455630486749817799527156967442235174001139878743198953145015340502944542158504656298607400596076354642883129925838016270299452745606775583042718685763952710108609953704868947020258975861389127426721872036850412072909344993971465419977085606350400598217490222675941213823537793033248921358989561167034088968685516006462246104540236236857341630639063715944888636092984730892650041678443478948444715578422863128927029882714130714244221600740076625338214728758398472060767577308104463623814799110676126286676476857966345374187586835551807657835754424842250934849947214279863603865301603506250777134682017917507785080089275044754771799205438901169672364110705551758121133794676602830156842041910583385815190833743956889432633773162335718300922610170234484588694170253963792675017481081674080136666331274170433271616358773037938462498974326116476050135368866562052319719565467708955360768643745429136183417985372777223529947832675216900447947751439361122609723813784623679941592901710401098755033613351084617517638898409261495170705380335207810584522748139125908846094622838323479097710890672129509106770459525706170269023076112459312794358477871170848922528712678238478559563907340835400230839605822050524061568842475981210128414898190140733166295129153159686601669021051263296856137330038247704158360002391251054182701155062359999863205822861797148732719654686771606832624779653558945945390897018640074814116322485521967806211342013496618074647052332445519949647367941875731349774539513758127941199286478967484463067324440367139942211331952020939216661331520980358060550246901898950701707590942853855336415714260295328785239130946508317238118393932673303802650507027267385983769805794719727810171441220751946199173765376877709070375396420551465123927198302782655227375992302343153452128851821152114321321027119171113368689777078893982899072148747161908112760785940745969355872059386423329982548784555369093338859066362795372736203697852903529493284576268440835289989140087873462345136301347661995526190368146464905819272389032604063983268072373830195668025146622472319376371110558142389316899047838581423537572815990063808266006290902729786460590286368840232617082197568134001546094234849941624750770842461351383069691640657624395643277066475833211467479438493801597648203875936206879665873784703277742387583572684657580712963470912407570085424214704425373713509422486684169202394430470814249816186513328756985882844874671272016154473490764591628186098842462224465037580923763924466694360640835804450114833476156226356797544334058223201548384074850629977088156488836328868643953960046929413093200754865918133843443481539709800279378936684335910557610714946656805807132878043157965026726830728115198971019319173670092881597238154992891887445080264133983694102100057847486772854774454882659602476974998661339037050321359236704085098913841254409305996335747162525157522723057932574523499696974558925489760930996063549812574610636326220454119999542073695358875272720305862305793614137502242932727175797505914763899540984013188276015230350942677558316937521517804623497657712861232756034441605148640132317320104052096046376471766556230497693318743541586170836156346303055002767874008423167917042794981092387578623938774374233340160416327933978348387622381146491879144447413300868864452215617657117069202111565530590367716878862781926126049509620151245264914750682300023554440907395693737157951651048984241393056750611340574982637744228231437514171444394891734800077378812157837726367105651019880837560881658154000508225695437888669056665344988521261201827732076562734443413398134177966344418310685093916553811740001343636715592344091792224046964279753064905010160467583266944280795203788361715096805236701973098953166751665231123827082144759916348076699956417030713196435159050073044412708092567228342145763862173720677583861781331366805813169895667354157508929352218734277153709645897042915562784893741011006882836198899502389776419097547720718179987084648378524477890894168924040362086812211600396390876246525781930127071685574122428050200123223817894873116625626991086899821663641539306080097072481668040806734296373636174139267733947622878416655900801986495383026162188803477333071392954247961669836133606012974320853609468078709285972865620425593898728776041721499191058391091160010668631945652689673898293369574958906556229379717622013307941600396471355250729045766555128434657514324544900183264834477786925999039998439332895806751760401088728032091738792078160346726602717659081314998807742360892192821332557703655532663484720974285158403327222127137281764275310402826287788137502709110150253494702634102671390817959010454214704219499932730122921937514180170418578489806558695855739387946403958567862806076505779157380916956771207177782693393243133615163583094405670176091319251814073496957958265247820891011252050441719622606753092993554213918181755810868841448377739835878260187908562828536028508765710179744222317079389558871586971826212636050967629109111905208491580031642058854209151301093433206424232117713825687787224126705058978533366133112807540356576000292035083189376745442569318625894487905141078246811712898617159251199325249191384562086460100254314278286943823827838851282700768704349933321522869968438595292673437960622782439233181525499519723225630308032286687008169896717818492417199322894777241803522489826236736673128601831911883685385916454799581190101195934686848099033467040310392260025603342525370676389013745599406133772243362956992976338224199442206999832548564385909660845068344099867989742874753265514119583368688972461617222294635598603004620325872645876702178878719005985167271760758684757871754397776753518423048181810413117906209059719243730035949551493998393249799314453894689989701522644603972265231288439950329189017616889606989427386040976536334476042918735772365396193271537577873647654830622603068952012017585546317231489807235801605566069479663503389084880465779323035108281423267385533784871523519359100513967443636292649614116790179612276769633993852096556352597504091408429546952609708928715508771709776152377237703437470711090018862093517912392488391263842572329317461580204242195507791795650978786900643717873902834618276030896447708055201916292687410669175496188953294376185000630741844502138387549697369156580762177995913988839131743480836457255655993363509949843219822893490646228896181158687650117564550058582850846042638769167404940859955098723265114717755149919193380884467252591391753821457887839328589275500665914997953724196027743665245389205340293595817104358491826786267693329820937487677906556018582840703142374974402280137721187410122793397529805501318300691477049648297630881486512035993946515137965173203053085669819813562591026243083403373318520652446693571338057991554393255529312065671574930444142195017106349734195114556326607364704003897948769754874216939044118974652775301443566816565964879374890702072729388437929420636807561402310993623034526900646271783956940265969975823453145722564956317061717711913630381096033363571992127551995590685448124551792760110588374487681680108828982102391805105503338042628728750992662622172991454705692403122684303517892959228590443693318894803593345519083473946537848994074286656704612387320882506024531489515234300854126403112450298459501378022064232690659293901072042628815604900109393908404991648496531169019486770427998180291766326224381969884323305432577759554940064131047181543056702386648610407843037674168975124958677596633143078693760604003505472880968272373981116978091466131668761823525534085463575381672668204578096479551134250099643106716157537220524272958831979100288901044717966216072701077978625943098843176214162867636053353141795097567125066458961219926020075633591981382663855554562056094535818539048944957280316678661941963886980611383924722547477385210866521895916280596209883782214435850643095641238486919211018516125524067507410517039726800057964553742645232501912620909748505012992021126591346296367269001357908402888890716717040535225263310009313397922561118948435194343189647422604114908136294475032727804849948801729538057308309834722948683467648878941082686754109198693244810820449440516554170648097045544414975492207952072738128618319299889337017362515664545222260272928752081472315958842291854573758025170551514280849571695079883185899355663612229066829963984560091570826826533950837550202045281602097059764001823039282065861933517845667878598133652841566881633433616389222622891627061559807241526644828488280052680278027581478949314066903222570693282520207253356873382195413748200590525356949518799286668223268649995487933521281998638312099151207419755853285287598378388036544827267975410572460125506187967806330084350476127816594876791395728833288166721648331820369352456018788380587545401431061002011368858419985672374428383008333487618176117796751036763999352205050316080815726338683135098874949514390561463054256436903987636905053559972630258186828690480229269097641395845956292592820893396453720935871323307231966053521247210065364704628567613537729309495017080727973765430661694190538981857287074303446107269807103661630494101984927290530116995430034017389801199269046566848922191308844153208747960087441134865922116031241120912517022877423965993273632948943568505877787963305419058092432846005524433384283981208090253657867767700386376081879189175473904468411086813422594573147920006299048375139735928643020936068790295593931581830797492535419521797857928209466603598809217680760511066852878787201001729601746250649070888728492273316764109601532415429505142633808661796549454709261225281921127844779345109915017929980032119518909963868904898069310902151733669647534681701913855033464860864234627816589242507400446554928005488792834330735127039112564428915710377485816201468913364546252089150840500152285560117540561950927711801354315640343273706678812148884323974516744140822639632705137567040150370234476150931946773601188867385923920522905817214840596822648929722607894756250085313081019802810624877070370848823812809722702086944647336887472014434464882197537134654679001257011533801946240225133349935004662149435561410132249892859542605927470062476667645890059127110636708461344409998969099793564264115641149178594020185326751806719397738206769579406349226092675552149230833252404876592059259174756115614290401078401516301902433445265635488411950191881536358456018107036883299790738886735167232268538751458050313160052663844270129884406566530462122779816751400411430329942016570125047803308915088840072774899788122790355671346758692424676752151052540201760178327904263396625029677768580125058668056828108497509538748812369597988678650130955425086760686933852074335940850980790677185237738136588992976540371711702554167600600825153053214446331079979758482536001418605751396945167763659244747151856803785767116291524620400399919741835458932625547427554308024910770054096605185774928521700912221000948490735771874099728759484536189660723347895436178690158128189916990650492247373615728661403580592017648116743822405201905887012334517240133744074173317240877994812672627049512085776935511245516712350648945084442558262486198774906090632505785187056990822811039895917513660820357666604237490504737474760452074000883036638812261430243161644188616147002795958025738192840165455601063128119201748915100311781938051326177929220393757602029441140398184810178753233974858695538534230284159879295048302479758260967414012350925861640750413421121476453770574938097695492550704082224238947977184329579406564345848199659382796847606626895951497240447420279159282924108001743492436410567980394037606059982041077864617813872708322861161332649981983861768188079795954188023168300868692878795542032595630664279357004610223908771852554208355765471204839785152239114756218240447609248713053195584100966026762758598079537279636827571973156509536638358816900110112447034164652366292853106382380074059714648014931470499966496697791992019557090488383137986781371010628109297751333442881166365018113604462781868339569464484943877649942097186526938530299014008960692467667268043256389417179512683381535896578010696348982972274327228472121168324723810996563633983703981106468266343690158844078278595661492186274432088448150832588101280061320939279984304971721243851020652789987904138137268729710948339306223953894167186816020849265363576167635362950345311727014946397590178510342800938698800994805608157542067343849647511383607182203559056344760949551666009717489403869835298590311866580867789052529156966636631589907266494826393339910383882478788161604166592887780202456057268205452210094939133660007174996484228980522762912940035237364485486634539843627876222309149480822205632322904262028941088492833864645084457764180873214574384773375072150507238905139877297855272635659789294544669425928873936294655176510528353470686315203267115232583504408317965004850520290011424718115388513244748787144501684150346757551648244536954482574422454419053026318807086642680963572482238833622928854714132110257769704409787962500512175280012953876159423617397891916685240906680365668781768700117415259624706540513598841078044256275160785119764516314216163244721135196817720786209879248826464777783698686564704916553125640331571290527561560152029068517260398328020453810456821801273698623918601166191129503792679310326827650164887062915722762404302143234983116971807978586096313373374687714999295262099179988534007300851154307776468772024437920243624129948093997013395634954289120861693021086413815846099177139854355281649904636802509372552240527548067477446996652535670870516162933108437765575582059849976486610231002416463716995355439478798940972597463007895561404859330613232391805603088666037576697872337459094167668997255627008524278483377321243684375271580314902374304698356755781726758933559887978468142999790338175412013428165143799071541885321405252932856445342059352375133265657619142956966392254158197125427889541178311736571085449205558673630939478175446366897961512942603322271334281044798968998199798795360633174552129770299651527793424385101350438361971297707390990153229368230064830003283836033981170657758260762291059104023304612545538704324643263140151019431351591980112294054234474146846956532688471269085156358618370745795452328964448765277578639114596275030978270439852404293917222789547746445452105666017197142924238033298741471538290901614597817517156419069373381341211691685933385503482510224268405991991350384664985333313664918504600550192316296306645013855087453890812897892066217433512976858345414693773471673403356390072450265496806477281888679532984314385172870111050089233869041282683467873344380536325230281534663122285851221825623259430921114028806770532733072504086274201564585091397698300856650231123002155069600950938680633730782155808291806571419366237217705683972602711270002901246743058108423469117835558507999554727376710433339914556334612371851510408890727808193098401434788246755904060887967627281498593962875636149447392631086985549917596375764872437605109692718644998193311869120759056257571388699310916151870446047778138075946747134065249839682596402825515339681034161260034083364515346025501374240634688251438705637098185227989767080128499204997845242825129019641755529338041497385066233930252671120106489139705500720482687564142071679468057259453052110003787483634873491922907169345080313190394900161147145091342004421365623166279945295021421629208520911441412321184812352436906800089654206790155242291407720615809189825265214925215762846462661225964549577303821910197763257052248736386021957068362356592049309477066105479080629061514156405350264501976027722029931976998963235189986687186422730062299186204112152415431534469147356565996243836734677462193220494008181232659935691429454245428401497829972858788009649795277722657709868978076960546409075081748271200645781397764998912432014002644149194390646727030306618992428440931208975566807451177679114240211789418340115328805743187868463784574116882478348360824221522812250222393588703913860114369622976150149907799232201062888567278403987251032225920294435572716756756384290962091750895986590894171917278241005214301755951282493128533810861583525560402681375540294355923853252673851282443888680326261385543845986855914740156812393344767050079121519509594800631304639181535119309150334866134397507907589849315726127074973161737095282215855835717115135401062144049777022209552794628418540326305073956214025181150305147919462251528049765145128533964362724194589224245822292134021473214616718554858847566619958176851391299243855340986677492261194576999256242470058788228046728117742708318785720253263111227949504871326646334137835570127420395428450632546454217208567010163454332501184222433358130691938975768186299024707738878106957079938092082906400958491379987168740868142174023288856583427158843742227507966585171161682149883449875209523364273073775391042052797399271336868720924593417956070779810959711866377864230306699062983867135855602799434271437201606803787899671808833346341256325956409922665092951259439616519692104951918677358483103419420144420058229020075663994876206829626978489857337490285363273341868932428263425176010725130904954384986979360181164289220762970194263310093540631267715308100771628003025357346945546662148326562200651931244268170324255360836321752928687764421549061067631221510027593002106283847319844145716629076354739142683513488138984098618904099221116947519381936401575561414872162778296347724637184797309760779291128089124104948079490294105154254463611639124514370042901641374047965365917248129490523967278374363551377269987000308824006128047794228064036657433864694881242430027207058063320576364962802003477184271882178798877866746207809170448477409913637691377440654524538453732808566218706410243812349085087361319865517023648621771673980454532078746861186023527020174604351668108154726675545123385214496113845637872860494738566304269674391242100912342008624749823843067898163102090469711831761423388248763595539707561835808739971448748647594710726186995404606701093095593901727691675065928880731356845193643105143177269955021810086401118596215813563263886041380842524634963922284777432450575169195998727546126367444678134687142037397303489050278808376144700188354476237998673253600075232607698250223869212185379419680353593889460847459059075385087737093095172480009113251196481648748185341561386836532927331323008081979383496227017411563513918223663659293248171095148193825549356833881647401137792806051818293595344813432335828404882639363079974596145594483238862598816670032784180485265489762600399005371566547957787915852620846300068109268484114058231173236941217467922468672306920868667552068497099625987646834616567142087014961674957446270156874719546005531327005669389501862701341379562629623007252035406275085072568037258232867615577987577643752241232401421446593771027128025330474598623417341408132445894317154045890208367657187496224664289143078787539090697614083858379839075990085111600037058359760163884745606037665983532562576571235436719137157268891636338421701796408693721030994628514781469142887670570009469933478777189485039335064657177449517625236666894569152445706198490859017017966025209874558964971012856688929784836664176100994465621988304779793799042800845307135223439262442131215862114938789917473444663054410312323954505305227687017659917774723002909606633037385387157240359393842349736863781601757183154745403279992535448235301612387253387882934464391423802332394905147739798671896751632758831258802196452003585844310029062640877403343053617296950302459743854656913744008540062143481469882790109646718499125751111648484040008053925760294318934306973915150953698086643238087895143287323207989681726166146521450071999221551509515877705229844331699606564840754823106080039177932719870750151076474935552983190725258126159039217728275679754298696810053208447992443514024622458173027436638550909593949683814018396528907184603264746918527035686722812368384856082184568642746514972272362141802632707596602883197471548893588613735777018496274548004977710728907880639727684957768874422865558614667365774210097111832064220242761864929069722309418402732116921695314004462659246906120190803372093942281242896570418726108237642311855993744516788285277085786071008201608136071841389966557395716159832175786249229751219261298532873750284746956309647025998613145950790110446383242811714480364066969838713176053108755105602894055881419714671787577892202654017335419989593615852391936261559015390639076594745625919529268248183090159185097712584524085499116398424864756913549437860759393760934526874594985588223986370241628761760764964233689707441914690824492965683711430094417797084571753696995774971616489713876385296378835301234939619938438228251599352746791733062007645242456512853088949087251683567819552976827969504718939906692392010878987353088761859688016152155008678530992737379207990282287367153731193144539341400814728662119704257096637752291850742786692889149680946801599855593069068768671831804220667322156344062689132730998820964368208361675272441122396907196904042031754787138984858351364501124199553538597898972602024083440676639187035495284353776541621402597917727467905704567549420853402531837210653790439737228130205262060900786943734496590017199538279871108362999144946982331663523911265439609900089803709747342035783785399809713446909223924329263208945062082863782295451101928470687333449392008209722299120530064320988472779542817552191956821608701756812086636971526338604797407662147274881821758602828884310818241738865147522427678076809413324513266612233962189729273188971806643487203208793155571656385288473301706952473709074414599351232271196876613259538692710294004699314406837260053936910662209370130521883317565348194432158312910360855843833052481217818142440788463453728659003624607012461286853929959178814875828944725054579105290690101891583653498880119251624227913228336032394746797392086058916077599768915185147965128058600512496700176476940120580364842099805796264199340147655436104084832600888965361233839038839743927736474401150095169919479009444377352334709836492440962539026782358457553890402682307225001919600156577199739778136216535498547136039337621913183405846112510846528146076306209529179237848071204860637005321446897984110505631419192124243819944993821249641409248510811906189281896193420658218050702523655723237685972589949695977729486645803202440659118913400753497496358212698760090736443230705281961607562397997973740307505626607835039019000270078825573376917842968853845379019952124245022839096868912951932711811794917958587267315961445278802251638794000186733850715295152651370146205612811762378442212740062940968790535839075052120468248713962477389432895134797394834256450513884309695261069229131171306446763056076939415617166590540500674418671697627670099117507312880896331328171858467577876659789869614384411932093379603357038441747241296497303460235337146580049272154756456302170337841386692838291065238498978305445760694311102848474273425795636899729613407087901022605989593880304030988941695565506950669134613746753487894312120509455270869422925908984785148950982898932431519174773207215352280577827552883399168788099872252376426405220126255206104288123690513950291275320451801079411773575171707801691766193125856313439679873659524580076345065134469575145943365525980547836919847428001366070606017845544161656502548881383863781025735351636544596015157672569574611381797594211915192163892428095637385397739373043012327886234678762619967899892007332130207729980935124292146683730390025400910036411284786670229601720785545173249348996132245249991788222238846660777270784423301377511063332712487251491327552408845329140290589422725524104432658602572917814679460779782704522126530238530647872281609763918089274784297262421949340690064270655854741746210379256710325553829924462064042710537527162335429708588438507546684303816699610914772368660503438659507108662673361273930052939329833491134086874445448203551719437026792207748566618406596771255034910537248984876141941166903145324816448646344151880229090653018733146877095244141621479487072564862279430634924380894733919136817553765538104841272989212490300552859894774986850568424956559459490461288170382383447954262594480625512631070004164582048819679762683442257657120831732311413232186198057323731204372653228373300504326943709063673814672963300829463528131657726509082556638173017716713783994152234147352213149919739365756916546881403599918610892889961466010375503975253325075581988161560141081138090843254373835111742098989774776986960116673180477333093417529616773149595071871180652976623065935701588583593278254138441617284373725887079118561656848312337512713602437994637311578285762307321362236957552207596648499174679226824885635565645185627450758718786657341458422395620365729716613828057988793860949055503091719914732498853017407706650010905537488995293180186466965341601318119053447791188539598673757090590587340760367052866064550245768757412290036999726325406054533851987762027076376564186711206777231724267596014251849261762960531356155864671365092554088349644955302672219293662259129363776607586132052818073419031927299512601980345385069382779596790415778020831049097890478992411461302127480500296601090977341970550997676695005894387223696581357403776771998381229050926877797206040478501578539663860403427905489320590384332201665317017977511664730782882924803915732430075068604814689631719130658363781592321942075672250569604616700660157562350515493634591004095557513222866131758715295446319530285759741521384631678722465036943116980661186732290902103705389312553498380321597717842300352793722534023064586179385619221315797073007718486140655475732107182229474742738866243695697516828652776360901394052854145055046401031080137840264165544521058732125314379088630535286301561048592341170683597955762934372347325640121180754951535063531711896984591101119035440439040932615123420963029267411878468490940917546688203669252768282017979940438263889800486666599679862114605607223726717556123610517696392258077030673263268242687672361036948213811910231539769118054648121719883254255278621159990338105608542375508551378251431828727361336270706387825514824311509752863604863826729331362932349896716419476813183104852199031641701709536860757140710569474731353064601921260347785768403037748341207679543486834431587813119012400077341822123349382186039244814962925203771739394126796521583324801126730611585608177696475706545586762646681434840155713705329843994833515590420821417659813872986702763533831136850757559315387969883218958661953248065430862391091813930672182760256115873426398421987319283223762748471286091033167207433818569485543062784091574196085983287998675013041813121313793307840171055801207443670030944130798134030138624329509417724105019954389974023806182612916479795997767570863747677812700443826287186759991972930770674950199356078229868473395784282234531786687454965925653267293698158150555024951078554036974938657823137035302102736408811826472334673367558409577896413651187845777241456703392249995956745441359952850183726096875264609265718339554979393832446896691001242513544700228571698001482594349484855358354058618413050404704640887920994393122826186649541975211133524203029440365351795690906357620008571862846177467012940548337255311236488658976013161700779003977829550389255810268296976789116903279858420992245787415964295492039317121469695526661994878803473414483181759409024158492389210103770134174911811466513114736602917341459490320279323339969283983178249772543133852504100153579267199044592383861996067562421542221010669739229629187191145021770450384807507954742388515600991684090333704483428747580088086913337844805695784337415216523538487533978078853427747209354560932665533468526031810133025189259504133323035112754520384907567324364955065117062611051901019103312320053319388454762485308321871449165095622698629709603827766252847200777169814911506111131171120234928674659649828746903656599583788829023053566631304791302479453134932025487901418682516600076874675652034566376845695208222752790246926263196560674434406644680625652055628545633620972088974520037328032818751340876477242068729021192924526657466229102731992031541038925470374755022204444330035752093505554317259194988246587646600469253203633205292254719701619162177289027339926136577610653024090495031370584354843951519385701131262309164469176995783724127665185412244669293634560169795712743763097533872810031039582769746847282673257584641101635006509868836850050289734713216310060636134567006195891784816895877891852308105889785059583454864745612400740114023696893914168950530183493729338380491268754266310617877078940717377017878139707978512065141808744654300401864532262161217857650373726037965296829946811934704254333274600414474174732030803439689826613251385875335990549487898906944728629435445063808917437532238296978794921315021097123927193510433179030967934602708014573518593371151950693265008993002137149288836590029656903697181864055741572777860750840825491648774825641832099507892111686577990841146479491794051709247995642520822413216081491102357242351724046649428570715881931008049995824346995480519704529678038111283896946236095318553767649469981438922967415859032831738506640215738149701730300111544455606656501106794691250819412557017717410331895891575335319102256170134946037494154369413823696015960516153201174067328011494697395162657699233759356483201637149150945194824656208866138411799154435988820934385787474957238647415314653857253917889752390102142720672782925142873359493350435168446479710180241145107716797373518994872546030623436279920211470662253007338047329130938923536192488852368023558471064690239624655088442135212735552106719493127899010878650248892950911136360464163072288394900553205094991096752373242253371271234509290921937479537655146692029981752815100759924149871177579530800737952381847118614502972886970453783624638273021463566223419596618794849168094860005851166503499168795590228481406595340806429792274611718597543467171427103699530105748841372623992616792316858626388111689636313562100212978226874423298726632212200115599039148479235510023490958287035119371323440841565414198565774921408221838332744049968729257168211962421945935414750285949565412614034894133175151882344501021117826740431197680921536130121161161788850244976595733501167123937558716304542077516842235338159205819248384273830182667809498884968729651551698575195407063082727096769272047102572362163765484944425791939329939982736186357953680221246137952795086258743170091786374498898896852629074553121231763460302499582561983034439502786714124105730040208665080059816238770454317027395306650742271777423181854063455448993856801909632949918749137651814898305138210573826782191166513764070281417955289525682094264754222582170556985283965181272495955855166859517991663661992338623967567812021759812872082289439692349293877280092251300126241737681592290346947538053731191331332164160379197864192657638279099116687390847801506210649455342127415125557031851460580480242012665901241294110589761065922063388947862125478186310751900962601480917217552782716581013630068900621113357830413755904129455160337388622183558919603855824403510650398666748672325313483672627258802122566087046821347966894865441453352699375374850634608594980254237682020704686132452256458421073032610840646037743446981377160103467283393917336456598843263337564591105374116046412002524553840524851280946430257774730979417076499303009596443740043898227414346093997322031159214242047348156329944109098372588687153238239746737891497346083878076624242591185627914048661125352665945873768494515439444676500791100964444796874255485236235216981365777405875283042655268547581527727867605629434227631113807233109664342597377876740481976625366284604930186239610605934974267313587711666696938156639500283512720557508592548503035337423034460534010209928155741895605854168905257364102416365458940142024732956573825698528991716575948712500872866331738043133014203078993711482627017535630812855134613397504872174143443266398315956756266145260572015364201086081229862545397289581603970532913561961583594250522114256674010265924455525663615604542511909522211402955200259302664920413766505182607994081740750252393286976544471948960713565120577242570148731248442347960109703664875904225239006048576825123436610513255700461238745301315562147317014816802228688224067773309771504746144095387584194908844468972998294261312127730750751532862323378392161209768481397852556003988703821446089600804476095995525196702900072573722234911414615198204214031848532805784014077869886549050593086679157391042776057406145340794349211902877413252850350547953931380909242016014748340722822634581125207215201644068428306991647358809304079221014329630594530248266016006621997268875214360356011463889481466330471245268299104391643250086331774285121110649176482337197373801490912677349684251822922726543619500008628634646435397028111729747461300779340888044461809099999412607287343464661442010134277365837382776649072125007302242851949397758950974951228862169776952420629927622484830100885248803153545650996564758219985289840956143005066958111850794837067196808273150082747798847595892431754454590284200553592112666981025418392197189521143504768657569144495917387927735731238677604121920857773402026196485255232054048724170421878159975914633711972501417718387138708549318889434377815526732444769024804162878612596986511060508942007463804427136892422230831791232373316332544014399949285467520841956586187873712195159226720900736733649763787863079855899054810357944982903916078575904277426121587425602061068157723155690882182889198064365071124789827722474722000473837752051669013368006146081488582357395625273894307545185549204447245618568089207782891019235908302086964478790838664994601797570662785182659368285766800181733435980330871317546755478606246074753545891925687541274602351658516090137419356981538243260633787175349642926020915260394735092545331484453714381768447589109628935292320804807957562941698097204170323500511542116417388690555407382777249490883766778211547001142168567335631909184873105910484614063696587501731692731305590463595396928975413229372251791984148745473681077782344386309957654341553665602129462681610298191677343420142327489318182349799158320082468071959322075731484958573993201103214121719389590105895756230476419165249861868161217290102366824285392672165916388274562663441442492495010529017926920173903409281118674208490955388809545538935010648992580480717105615681528066186671816301745966147956419548009455872585713521501013691966397328340207977414447488588426754009992085861397257540660034283459808690202885667636841509575209012303163265763482118825007862551242538121834294554348828101756836599843980734998237621205561153379299980420607957134669545944245476078680330028856287443444303757783815842380888736120971185943077781542002684217668813667357888965450414559215544896867829602966633916280322132645376816522881287404871147575587476943190406186725447223709257844039241260489260796413531561773424366468381483295352454721504104442343419791500907489506240251767425146404694236320744627468197699302772791819620023202711850430731947307921951476501733624092989819542320376489277665280831504733282138356384731947948805576611728258428566556954530987065055616227215021830346123707851094630430321295610976459405031774838160366070977663660453062989391208252220298044475837961868002133460984738413069743589699264757715520785820616268358717754561828493600438589891237773436169660800860050153843534204029580863504014344998856490181512291738279936955965289363433337875052177321723050051413673835262634196247064525792776764351600477388509286855161803434904102195036714370867773501979824616902667582043001832432640445162450202042390992030261325364468668427060580136928801869719976287067506417474987198296846852796067777741823867948369051578530822667663352350689409063329098028010217307223138218114039220971030090425609506824108406402815839128347648482750731508426154128724093683429632457845039047509146704036408636181955744131054789704713345045997861380700614049745642080901688650875993304653381833083819097850258608058239938549876694491850296542241912315158130692546427461004753712379732037765521663559567409346036932211017319783273450610065564791268208908551366103062294221978980302737143280893331626242418827994064002300762860538274129962886332564962632626844344348508872663170429940891331717938272933413026683674917181451565254592092767946956782527690399252952910680511801450978063243100814877220699639451762879337393876390707155628457667756308075903242153526095642940918657331588553954566983378045699964492321850762912521852090831839951970529929980502646644826555347099481811610458709503591550558342204756473211565213544727318421455162694211050215051582999050262607620385830735830356957453070600577076499993115286060399703235016474146905853122982957404699380806585861868799048421297474481357013551823230283399870078870135544464035024649424427209469854507178138823643512932085461639215674509499194382851697700911930449058669413203192659800717305901050084282098567935685274015607954969435665522299508388966898748367925625359475558863073157590914379008909588939888774585047552698193644130226483783749203240186263132192368032822360681118299708608164896780083762523037282979572701922950443758012681087978556720221470488986538600668570014760386561813323588192916990446768939188597820676582874169162969148267716132878573934289975302253980781042052259037271880415583227554999894060666005147440784985430681761342339678145145544424446231266106396972762706776251648134728297113044613716079586630580862718226398741914323589158780143792855755351947788537773966475749741465559516699186817235084969711037667015141252290411387936663987367212901250281035285011290150051028521398171157378011084593203647494619846126444087902158111771724457116643412316524384140903499337960013590928137740911765248334091235608416801597836943769868084951953567694238741680279317894412942981808225147512622147885041747865719496670753465091648845504212493924641397866668478526958079272820865150164147377859777581303578345361352131657061706388994352392149498230289194274413821351603742644418791802832105196143445064222144374502707205544869015010525433016649060576453800851008766490701447549512449660873504796437803459705168604681192898618941450050657342083865560916637398900026968918505171747006002556812713171842165057545430713303820769642050431272702808403857920907564189453824969998108086305976875146877021542794382403351443623987948435647113782341186702826201762683316991723652786702884674280663831647839579439658111473053916171192151872204781574194000392290755135923047112412600218070126280943296321407174232897259702110110783958486688665040547484032064064874012602099259815572151111865265163679892294203914207284604834982087285423191684463216287018688691720173862286336557327123039553073321876668115364072016520407197813285425201441356699258125891262380290117755489263375906451450444418311872086082903463614513260350488593862244809896878510700199149303994132257303540057261341199497257987855495520631203320888120182753607731655611573264888011510534054713526250989145149454913971828538686958709759403283786841402693885797230343492980986262025195929278337588881825579330681783877863454646366804841708463780208130601016453857368889790832855584214183952162089637450286227589214184196971255640197097078344871555038346594729191938751031615477830687132235841571533117857461793322576284841456783764776688367210439653210025196871298609355744266375420692747041877485409127065000626661885557421766712486577543623474551245973371406494085500527755897375599712642675720992003771070379695060424325389140493030697846613172028369141584544900646297381745747109590414141575555452835637577386120994561347802380893873163293744158921236375302820650507991397808837161455895682674606805252780198362657701303270460453271783361072623714216354431207934328307013383294586895902886212707284260670926272141387957736859525344929495036831508470160202814482087524968191521110761813690808442040507161234859863394718698617488720134215893069106052373313373014029271228987059063635374525696201307386524919610081512929062423624684207806259915406878120121221210910406278762979147545862664455921278852156264802193179234940580493278864796320654501657677438711192184392817511278761501422314047211707628599783397482720439182247650545815153302672188647689012425171656900700528825594387265756917274333508147224254937713292406730580931697174080414975849482865583963385498071808254133355104277839732892941952165819649493392503889868269089489943717684163418757233169827560841450446614509443336453843052996376905266441706222087803563483666364149605116878224377561301042032512073150180923815027235635168510582696873329937309943905143053061356284897436420798359763589955449663487591932841908064516305250988042748313694332685324399885266489256444971695992246218238683636351948322084300262321702522151753310346954059740790674276655307715195654348156032155730550592583014322935504577646600450262296144741149864646247494438869679253919353061594969824565184581819733195073608572682921176276409262375805799509808308996497459691386440288555718014639268266163567141138317056848899233917505151280140988871615926003487525602545203018927248378056003773070322247011439445435933354346745994915688665104844853893112500139858975415722174968922699269625429209861606530295036846187841253825205077239013242956407625813570239276574235728409446531970751531991694711523433293760759656026639745687688570683459328788618909836233730153954219317326720995931197822545802661744318766897401410133097290967214932971741068318872187722482243082826335440381071673246329321099513505350954468044157301257634480704149156101167485140790675568505778239208675528986862057173088515526200869456825294362434825777134991797308226753655469921173094741128142586110579077919229301736684746512690213527439674239612615252243293879239988355390202381029412676578747048601111074592259497208053478339746603614078504437158662676344750985000968478364826890281375775600946577249222238758407191485853026615202205310208772645654487806080013147972059500140922343292424036776901042879867281138136916102656953657896651298129735231998634304110126267349217039744957636659432701916567360846140717931683191471406397758871875815495927955730453378353810267407336567226411538801336472900264651060762884570823249143290249181268705290341851736284019072792477298997135697102853617828277826414583430035138282841379176031781615891640721537620398691186678443103010289846475277158949344579383426876806806512309169710548292473343270987966448928023641593142447563367644613002026649560251196533737717454336659555339558571544979387626375060156606569558726039929242980184306666079712982957805159090345837540454806878777484244098016692886602018153520206707968686662253769698610077189854298161959020930704011614948269026334629305111897268301360721070265324596882504254119665030559176042314876638151580372248527879121107100188214170729055151812491900472872359294130731757644632362449880176662492141897257026354906220804814559372900902564115768539074190944253682109129384518718453795116451975167664311007603363509379951560728314988915794439768508177511662638267123971947736573692543398291197927626539792542618459026361453797931393370395009908699070165373024574154030156309005823430188032872816157121292492262661894263076126592817289336935271196186060500889951676029684516291174458878448613421514807407366260523516031801361239756070513034733849028017630833185325979254932008559313443887394738862082488519937818959162536682106039077077965007139901525126433092054381631643372659092407199921819683258382310619056331937803166783674637756743741631515532939126934210034231360961962023541667782303962740631223814143175166212816705306833854656280502176262083008380448840710970993418881292621760845290220198389085264907506438948115273252113105540632095798812892554098244063793493309094750731225690018989217787441661363878060119849481705246741646761506242177964613464502321021619624359351656271930950279451006835245346306861301123336020228808426789572436762950798245331848904832104157990085038071802935152600054704627169878191024321549737110186846661979695699600310270603828290334657885356979576103941987777805668361039647195375174365150995956818709591073901650328710026079235187003894448333024628791980199846950775762620528290889725133177427215009157455701503157167864112981320969114221393118504531484638909462183247725073176337881088614270146672697562385000767031537252997962888664448480229898341656987614836605526340616747713247134423380649846637793607134273989264813672319047630470716221979795966196039084124968380515351687938394185335626874156737410355537913284307533213290391254145493643940889040882366364836436620496922085946680574080367482726519842102800440133177098905201478750523211405946223420581477155438536315558910962383898057817148962127989600113467170346307126529368232220438822082677624069431291512455161639076061562564429568343872012013734780828660400395095689808064852123884709527029787774482917751217921000142899113888532760220983723442021383400890175385283167044414580100844473359593280535903969952576744211167766735001313584090566087799489477329576201322793023692858586210827852989614712968198693959305696026937348119198376539341942586264010193831111845525433705299281987116362395407816251099189484210878671343739193485760141273401611947551054987620893819155610991636891652469477371748011263653648690161993291311901340201813136949158970780653960977238074338918140979533080444536399399634469805455231709380592746086953209962935414355203718004884931367276677742514479143474350109240446667203423792264255719771487290169340383799557065713535665617577158320773219381629875163949535986106147929990431906049285349692465918487342316362008773603543852770815188651371987773294113139534216498506666348608387581870285564171428444027150716654884104093660414960494792107751133734045116710246410551581084599010329364767959604390062366791453174189686772202184247012843178087342221149610216437961547112153715031568359160675240256551320939993105981494896331009227701009739037505043096630745965452350255195431354804425909679369303631009484511221520254599747211096658898148829479736748240135270358643312749942916101327610445349973467376022789033128206850939119348219592191806920906023498938294196352597102478585677807415644906197653761674972039469828393579557628017526471267606730544112967199484258027726988551670692354251428466393351138362631778570932274082455152352481032648482253226517165852142435761897976386434262070479274780769421102549898877876112681809645125786694477369026242937448723586241030222724663052237268508063602388183566872546583977103579042084758905049537543615446493256849304028225152622366573000856158753492847491822597717409853634325693789647664409945253913787311730091088671610071278573098276688294671211858218519940546429978182200242115335156408280871269036827118796697289435723126872669354542522799835845345947784838192234428152465740588031893488886946989914629144687843529918000726252137098995283656280720257115748002318343162238155795691024043683123732804558710345972049231210230974457964531081119368472350841276813889605379582225938310941269128788798218451660489365640068344761141060578353977423984523375595134913494658540348158331136948008354059118630001560060110989740258517774480191964677118932080138981074978571756239943501714471228069011715343015142439230544748126273563458373155481170404648739018166604394775431500967701251056935357870572737476181687824791632639907603857550986254261593302344896904024197227714302286098419971381577560479428801625178439788543323358705519966766485468146968256123539458619014393656033792907212162298921555314312278680569793655732896131992699806697380592114176111393231484584673530272439444788470324763101338820992470401829833116887345269546408065754621420602046982765230715803821255658462399956448449280421096977219259622257264185901291194910456248077828075268866131867488756152922135875068855850631929109434904800383865537019618824256685615362036103713404400572347803333692236584537149963342315583166814841773012277790362573915535357377469415201330276457648639118976369199472977513929765165554905167868121056593153488026493634069257738784835583332849472331451325678692419116998046976685644823403177224193242856196546648637928481532911669635214116929930680926479001968222676301506071297974383706395366244509481302061126783246408777898862443976463923853132378746246186068612721492691297253694245982440248376880515775781077242568014826409152289984745019141362974716903857420861843709956023058855916670992272665996749558288972584748267027267885475670727693830911137635710057743826809198428535940628639254974874622104705750985357949239618605293644150639760952096746507501221679543475057258923361684265733347791066086753792692706416459135660085550255652782224307466394791305115730986452900699922888250794073983586421629827239602647034981690308419541658769895571537709870983784338945970530500463571362138501562144781809731441350137227669235684886975292051982638334876908468367839920580399636228833545551281601697766767290617238728792312751874860914039567052594184495244051718873640096173798956616041363081977105438181562235102647561498373653961850755820884731244283406718366147900661200655621901978609184123051125826327027956766244216944830148488454612565242955507927626507345336441399425269951152056514588095234359131563717995511919942154724866756030090910170403136453880473066711855867519365910574808648816063094600130264816263538243045466199346452214576990986212386823718974054212885126265777452222801043843988335851671567039780060498607994266565091600224410816697540406122267557399693658463565985219449161852598246502255480563684126386272600135456572777437228435771670309195372732832062159920476579406129429359617797635123522106789047449301808852544436057882323227962631432552412959808498012480300802849671568482322261958029491340922201468591590055761710561669604853865351267306551392968344285426261384769294342848998485010210770614303419662984993396268387478768199304580857962748892656365402869899166069978933445232269973947045888707088001357534286475731505400993182612631203944622283793756244799249209927148234163427721995301946217926864692077597545613962444517339740868454575707416869779874924859944733443019691440143960861756823950700227048262157777794470402034474685918567996531461897363756371300974231153709909575764109876830292862069649804686047816355972059451632935838309292395849524378247246710033797198155907773909879169838401035778895431206514357779067230357348556410892369604467597957791088604697491547395135239937818716745761717472160596081384452807675279100001531084150588037162851163771800517398762626079122640370701022979956074387697615715484910494799975954473323271208529427027086233145667256058419679865538515155197925813002267564324231628083141916226926811475370170017369594397373792551071921215331561170282750321491168494437277505399481139370340117352573181141446278467426550399421343607768897370410379461812461919901858570956545887842567907035329930606190082307857076479264312699135681970665342854706064899677304802085811561997320522820776173954860487278001798517633483085738588817272286459472485460267317042135655813065797315224060744687462187938961106608562236343216596332761775508522132494415963627272504029557191785092151583755405489966124035389375480775383639753544547244231157401739891999988414194727342674431555224135476420622893532460819591726906600529594606732584302702232133880667394007853591987125869085656898126956426756334397301948453599901011695954803240193688430572775221538859498003941669452489033425409825496475592776133149003820639637930149934903515614395791008280549085189340939464630495782456927213313265364358988923012383098442486546006667586292035667524625728119985607061833604998108501888570589064660049181329660204055951137714033497743613480775003696496772114581588239345071908847014310425616789520891423062557948491760236034963720296960234802257124054080058501349257629018235233972763441439688784459659665927311511907623362426408202985344315339779205632843482661123564958781175323703257996852590374259914367916549466906776151080966885078125460956313639878082009724677988704321520889737310653357737337709379734079416381845795077365472464097864003516044390509891579872267982233991378655895229648193303622198028102798145458343821864203678963955333100780634697965587911845941988036198072429364348621054458941569474548498630599715934188596061914018694987669406015705282363162665807055651744135448175032819659252041000930254854915685804754420942277045243449197219944949069044788879017582860199580651870989357729771808595879073965846526184949091029580831047051948269571890869296091374419529343462911100495071007597538500717769194711270010141198012079095413969406481168503181813427975297087319891671095321970912355570524801099640341940961482378138700115208699791456199485165876933875346094365473779870356717920701048069157550575160518160399087031685598760262148952944596197193602673726759058366522614011084750778791036069683743322275081041578306441832229798051542821527464953869975053283008458374971237734252665989950430191702237259296829745501058296816643200657569339624754967984334426867003816997255707661923836431499188967741844926242099820187595443986435765700328247315719150882566120067096709121430547239153257329386979088047464649264818845867522929739386866317006798768718200816845151086206935953831589171015871036341861586742599600003139650383651430378912841659588000415374277301594998371613503984776276220300391025245044166849054479216437523464765494487675600272134563439705721263319212882284764928378483399686304963104512949220409491252713193302803737991367018862351832294563669228318628971065753529012949748473371613711467698138649390221964908955951063086367480483557861943411528910982029694553869601106748973157875476116419590913677686751603052925325454675744556848700596637445345853760912368775923069397122996674489408209117506129607522033369828033178001077267531425821954392756443815447179706266731023610997145008042762473881410118614736075695376180520593464361141816807361348757020964056537285823678427572810727307749845908068977440964163801618596782194938888662274986307470667883985899499842250688614112257255658081325501676780033615345643722999004176918550020943881859230104232322397853960404114732155518869961783245417468009174400820116166662720902526197009966080391600362058103630072528264200456719822544696921099813952922250566672456550621097108370191592794923732380361524517263142315114588597585131693333141540450237419103316021942869792670651056590167238602555354082305910570008899733641364638505581209865805288642114890677788350814602058365792451438661160628682481991015420849075808692762740799690649181240670673850561977408680959190687403522822359008659230574207654827735270408858310001959694387624941823955896260841117476730231948990513908097373423603104656830421357247991385276733187720443706771770179876710520801373558429601743310871313795651637767274199218686084852141783057821367985951774574928150131015351398891734450581690660461201604787424640278580712736992259875302047033196125393057043922187274741957400875943764059989945876574923307696922716301759111992058832377800282178492280008987266664751957763518430503047006050364198140641219841054900858838262235847796746690196708638591825771384120576803358251022286643831526467216756692109339994908418715480173880479070605676572219123295091012134386765550408882717011610974637066165818105826446116152230241573580757251237634516217175192537195648331683414918886570139073590999367668529534421041439376040885030692500750138079377768953861945516530472761259439674539700727760712577611624965257492565427933892875090678687679167959316793574643467768629860277777047799635322907675635272138428780820385028763855282503311943414164635397531321010312438282082473874043988684553782095400469508292067557863177633345377016932055086251741572004432160824833506256939768264881545719384451884791776053079395555705544560327158962975337074676270437518716195518972402947276863996369840280746169853532698227761108086829774600984125517487703289321139834367096330077234408362227990506627519666264413134042298293486098522993036206646134675364735726422075456183762836486112313327009425619522889170685072881328887559693156451959154966629018456324246929702176467348719705165872850130330389020687708357777605027503043369561958309469078178427277731143878027788200643741312977895766901104575440537863569525294297141024373583780974066320190012483328654510853763191322268111903635660742755249256942157392360836068486009398099190583068253605387724295373358040675895577386520862466143036996663897704822001423206849217276960638889381603277916853189732079555914439039926747340541282196964645633981268851758487278928173646260427469271568804696779783971350441003935698308270722188256140559432877556817121339808094639027993843971701111995144659755126413672316848067362928987460963665045501449575700965656177217554591603082058745364493425029949246430374554244321676214111869486796318851546284709336088505731144325017499804113646135791720644661862385876312211773363400291421867166981679954147302405357292408165882284351890207460405926893805298838603545436693714624316155279597564123755009946089640178395343921588569146188691851006654761316695873794381433690270941889777122641698697129523738448846821063560416559013762093958341297757738943423892467530274507336178230348100199313257606454167419803676704435896073240770062130665485047910033157884770456962845610547078482000331375524587822964890802222773779671091363615386083363066257547313436036794500855229773449798655847745330620696291884754524072258065379134494124865124145904885005431359715525060510097198556693859002963576091588759651356262277053944301706901561777582994123439887277575099479221007321713298698196296677617524214926744874208926376372349952634840632124589299285712767547269203840722853973731895886125771111627540932909783772846574500792804041967127718938792745357932122518149092621017102239650074922045217046682590518678596573750874697390416544859073355203550733449459148298881609275500694592583313801994724797076298165903714848998009834267721763766142386150370493479176966914629733609470219690921317938828024024237693021642068955109010563592619927806930521124007342620339152687198045068801527337738816470303095042839202757386235806097333674566795988786222439830022514735871818226830700761173971493018206657778474091781695712510435659489926262645817486107084406204934703910238880359857099201086014784177776120723242833922009929931940134652979711781328937662474597388351166881072956226247879296830805061779105736146923173452599278773582451816175837070013596366292449589779070616327345134156041350341253645546323007746265532429721383887577108435090325612632548083955021887595284073607798652462665404115273105766793821101906303517476170889667923669449161136701037031211247491893934628051265973749139972273129499804397760083355781685767510002085148292167456183128398572231702375297801941940332360123560249290104051775902850107791474721067656070034199255865131267581594281951303399091199522978590174671568372108131461027487191750986921772908900464081066689483192226173757578895720390919847977507197657627022072174317956014129421017491787901007838953430885413724183011969204542562997745924282557812200609759097398244240578952052185571071001078122332399956834226302235090434059190992803589783167109515742988963322552115267574857310780292818127494498295983273337820274798595109377324980002176276809807994831638214436425227545409770863116557095342411044074900461789313190113095317583462958058281888832159587806449780905054144219980592970771430104451455079174652361651419619016025734658942476148092197829001426352918046528917371213430013713677989591362597013537061623066145833389143273218087772726783605399430466395331097157635411436356927744541368364656914550134411847408842359507906304973451492228958315669377170184369715909899326034039110343019453589253006142988080395321631702433351021569905845240482604468937147072671650213386541113013977052301427749151764736136783680912039745050813066935084465538619382649847074449991788050737616718683120254592444134501467918830970677342110738197688111740773163975770953520867223737037543173584163612089302335476752809534274956055694999518656569416422486138258440662872240276769011114714734968273855163763002196013211993718798707475752642562206634074671133576061565038232864213967195777695487682309863291830217073212241693238804596675646149311715220901861676335497365794785818460932255274079311553171955942153201952602866773207745191578545074664274830424514477447359689757782050642142786409606250884158023788211029326119225518223784835372626223434312538378342796115892213109191284366363007845051492269236532384794144428558468581814964213758238711281013636084597819422883900637850406136371187112819954481716006328353592793972466202667292457027332058051601131183778754400925227782671659990650537490682291872226653458028962129772615712883892973880836337864814363938039348688273373416776379701631317985177648673043023780975389304770749417172861272534110560417555481878432291447035297055466239116236443993660774311565022975715761261512544388330841735064626418788900632746865035162852705138918976171955427768108908445487034329085656338649658490310672874698743803103741621103417226499264172178999725237221165576982163246983023624948476890610227738382900451712213775971281632658176418991050632684867331670549784698794990934548669643620424730120689486531492697782636514061523379512802823830049362313143916573605830194219519135892671122504575633854424256920530140624140306463439119063996447467358016641071341998703425663623287566531774517288964956612342560217859322358820596058118934662277199322939463919298183114150052643777897954249997125777599878915782360641362039946942192434789579049760346884257591002745919621465224090217480228981224787106518882661572272025078254713386939952086365581044703975996053152051472354405745798595776234496116814390035223067279138211783273084435604457054603489043397868552039005447182219826567916200155987940993181282839296910771432274225255224926085707078522359994701466066813748841289643840700884488916928402662995876181614093550160770315645950545514177508989446885392061043838815722799101510422731548849487075129948317429494417674523276400002906305841420718434279004962830463516727897717968266233172904850673599706636922660396576562129979995050136155375369043452540944769445116013942162384579532548818622708705444255695190082724094775634695654508698555548548574311593536073417872731003545230695908653856225639288814355630859784974414917749792431922704168124428683228035400503775521841495955634749966521101375219563250686278179989154790133999033115618106146725467333907997237217224070652501009797961942980628431365213934343047489128992908443391207971873368583604965152042226110674202926008333413168278026934114641277773771852788710632364833220392451691699075170313807327553088028482392828895482912892105965284662654550370506508891065933585896335539509720623312975099994877388436030015051223043363973636292296237077989873460818205938186466862766675402077203872953756918311766711031365127185087815881136541682526407608828625356458612531592955309119511046110978155517255595171579280553162081717900298669264462447557320927991229035263193956566977833561050745145297298207264884739849958491433609796918629205609266930169887145786130216442429383254922823996549462108941496872385477874901533597081505744049589075181160905257297716274456946218985869988996986930751078726718721439043446543491912102773281512525072303986584180708039783219544973968616102144754816415668960046127572165616488780209098062542625489015395383401906108900505758782401337455016743130275464837856460066799710878803379493024724743563770650092954863744844803879377119272165415521258161775473333656348586054075556403714060412001391957125936554946459216551372169757443864681331699934657269742311706311037476761386558789573343764606734024315309152338460020758586304968397605624853673201447818630281592250806036457842637378307521561636110442070656530712905419792603442229495286561609323910386255206122492547496564940710698138456591270981645906450693407181324417291866685911389788925945667634127875992023529696099580659469458819719035536706626055777670604455522487058432805466390162802866954179305463039297725494391955803993157416611604477528943437296746830114132213916526595776838022021643846496611373398425338991233356833732027107608921707977398985385197953725393895057193346220964682966437427563925531121218256804242961100064546661176980032985808015553113439141081024883024724046218713901677494223259449874318878299510864849512131764152971594137558496160025785470879464341579116431627415870928366942578568401872960331835368273734266400189058509979774914412123734264142729756589759255720076868512082895954234442732929157001931882913789389070482948457127883156999649262991791169085123792835188673139733952800121217007504542603291789016512199034093171019776608424820437123146019317329398597154487941146692047094157178150312735282322813134902743946161296640415592109755962126226204270408195297778154411234340134086956953984780014496200129151157869935924091019504888496041259311642850734746146319498080593806082049600139313540323046262071334845349054964819124385772595890786893731857256713644969037316957189162827417843865852865936629967428077604669300890072682689015986148150558359512828360092222725720124837520688223600102755962064458224734364676469129500156054726726702863047421523398278972096624178511226113538988907622378750691165707069890777426386541424072544109454481790355075198275545571492442833697119225838050148643996574743030198247734143988679783644822470031937934640111685149009815392043755858906069920757052247023680481340448644297214862623104399426212142834067756620976754167175403322921638306810777779940761584708685647249227542231438674543666856009343211916865977668536105607342632646005550220425914167695507670481678071786350713780936699753674411395066618150439143067079279937833793584530089606163455121380201909058199254570029746954995861073230461476470918139068074297171452122319259221912768176340107539250559574335376539154013259383149275059663806008263557638006679609992163925830778231370186426691940395984743119663341180380026108893704031935684823456608533641970250277354436169325188237137730630732571558610540362555261618277758385952789628999411094180867837794212777793956518901552650590547558805648089823134601067700430071878827314150075096641569076444714614148182676434086588952838243362700930255286289747247969176345019680884117499802246896748911451247721005799251411614416482765933729566661243063409380216580783363025454056055845375980906554131428340259988953175635984863062666056197486324743683829857005330615025911285552016844684035487549224043221523136510490710743123676117139217275683042769789967645287254565614783345719500150062813611596070832409144512166148344876812275540721509459485628547735968254853171717175159262469606280563469908868223004087149758955855373360617314322300559256059624509994759677413890604208548768492288135137840964809263430779414982900462503907224281656273549040635969032175174904450452466808139368978495411957143086952852262190433563770452557856702390241296165765598224790621051332965611956027854703446858794870317805509339224804279719962095050757578540733844068800365243023701974748495700120694991818997610998156576467394670415239440980276022638050583354083583081896921628198189536630364487877773700250601649861340332254470501071014284253015973257044072874421622331334811558182468023402996989917292565022251479187067196690591980315220328367853037207096069433885562698724808161615339781233766033598990505712214692309558238518093374948163644036052552215077622013803149934363926935037593924735996751218457029638402646420743210930058948186823208091897484230366820699901639842319856135284499441987225211910705496204543530884771028222735486767291058985976731804623669393555612742914524315864399753056750494267203743444209992636943876521958918006798054483666081569389007866633249179171911834664860322436671229143773218321977060038660903017260420523680123783836127635814788607032299117142290231831199659073757190330097769098334723412397542638642007275355331834299885988335780294606616855565392684368927443994130166289351301118827957418253396781395474664255785885022980790399648597340792998159947610942511662950617090072603422019783876436993888062830599276420319526381791473417493465620681501647581342729293477581405631184618588679586032219642772234700524980579135353319180416774559054316713091910550423276679613959544410659636325580285608446325960534196466051877373992639696756837433368127517726304987321453298571920045871977327464115270792223968394633519877329636167308234163085618307881551821432421538240221024688018816225433705825765544399583603509958881934572982288355225376042798567409452454790878009804874502861222998125489133955953179742670209919329592811751193519626728076025115201898608917581924287140082511471549240549428640480629012980474336128085668049542596920155118941759869416007426596066999085578400610189850774701590212551216273753036965834015048309519978137379324725533446499065571780790491234910032328043711220231645094495602423303394460875254184294713579960842945485001769556000169033207808325383867515375779148567343816854205942983402990031270255907384881582664991846827560260830933192108841811521120354357317297973878397469745683434295412839143350732437625260014092689150598979964651365942457959749309830972834776242870041480020474413479576188222869298954269340124813377333020367115567004894201324900922847245731136514179456990246049794857056154525442685137508326868896513025453763977020189584052163201970851559886526460916437365479585048626181203854203061662777084253509230957683936667855283715421487252358547252352689860839939719110370492651124619109870862335879187997293569155028972757204643527887634637933365058449848577391242561879743864168205672954649501770390436315983243650164478997664987278442147298025053989246431879759810204150044834255500502839929458192159110577360692676963537724566285977695552500834825120035865520822798147544847133655559014524257419044645847393247003211932077784670778583323185368335475225015545544837858489049869627704415277616696941982027492954967195779503578029624904350146894995148708265936857710397892331094215297005705635981571465254733885251295852072370281817773389344968172546681903210833806359797666159972760946240010932095227037063529212732909346330955741831440874704839121394304590976203108855749750947043342719343815690863308801943103982512430627459897729138289783503593903533887068472924393336195373112806741884252118884430932320741874830248092207776072669292684606622450468043241013634597867393738371305120880683637740611624897152115898126653552091603394119679047085683818394577660985742563707701039962849831908588832931408609214524566227381588094182605331504037570435935202265351032450660048976129455154395794951679843601892364160386655477396781520896781916477905240351454821964599270206534048394963943934611507442696725163194490994578720238762964994024447936044407920846500094634684347059126161761864705271386541461212282730999770258764899745711156607975508530565142570759287589862437628384567124689047979707587748405019294099153965256098261145224064966971322315505116252457400863940981782018751377031251461204112998892251361454851587880375004083573347384319875545712162571812882672016211904709415739857097881889294012885736355824173210336683180811529732041733616596839684350567926424835965869966164186672217207296054131004367994810673537013186513625874552392757995464913401350663151908751167855136387402680022850956445365526449217378424843928450492720952861385460744979777819204925687100661249887755885597084993073517272880881653461263652220164787538233193028044767504838602241779977364982552332374123955995435026262769202474881217890620871978625129539693211206059653271150578149673752557206042103801873931693764741605948001284584005234146528919043865387259156601050776042475011653246052270632202001838252153288863727455399120928660467694680878866383830366731295161019146308598455368131466949884977211273750844369231367603767057572756603282229228048015269138791693816755365268212050411064331416582417029941605059017237510106496746409454936655228584931395760510396806928664575434116168440250526279445034443133857708093128002625244367072367495248800955469141669801875680266542191576794195962344051867504060861814934465771801894914695224984904198120810520885309447474441280217913157343744431822659527537471338673594272243340433994569994779847092333602492403428810714815853695170212955312658162966090802218820423141418231573920639306037063555602346738873769745610124081902940134751365582372252599480918096328929879385141551290340165358554685126832917214324858474612700922754904868460100642265528916637262183363302222297508544946362180380759706094426177199430720639875832270456627766259584938217181195571838139284868025678920737234042384030738813743855290257321656949763789437847959262083936595195576182368349877421399197484765228294490656817974971752216171546835021565955848937899522742548995490948628962968429411773701307630488651760358998033158323584180805049201726442838173349754603141395987238425597375284236915909567599955375195722817416605603525901489894943401588588132052170420471608013239774380994488760420178411591898371433283553106167016410635617827598228030934782670084032487394504530656173714943857685442380580723279718413376388905236626639339896873338484158579041228515680282536117592388648312533740606788891619394114938364177342530034054988807920737440969623272447886713814615888478224667265062057650729055144466485882362849683600826084520345607055323589055917556266594415672962747384907953537508915304084843651329122177116547412470911492924827494407234753147688591265330526865396035401819347832470563477084344568262631113985235666211171552476746257051408422507977967097360213729147824672724435154480054389989824019899298747748683532890424605531734672139143029883495251568037191758688119131839257173874724967817759120501661479074540003946758827850283165192103588161913794632351361606759337521598771788778884453978886376395622359425055074326522685436304612151111035470714759385535312479651008565546864913105777157430676179713868899794023689142193165132975843192171798872288661664101039526760442769515760332444888036169232501898448218816727969018447544240250525176751552143767330708962437124995713710968762850324098730419486893876086839772803904258916921136922451070478134210326018993431795727000835433749039466840657640163802716287911530055880864765147641515245746566970484450145555194257327069549094149973917326007207001893851942560540315109424925602380119156345008023137484128048550122105691731834880817292059309276036110283789121425759026065972552871215003165608405092564778974913963878201237660149390668882140319146087995359575995713559877783144619686192426120647255395715439008659101719303478736432771153524299086824729941437642254326485104760692757358781817245395397200475882097825948595745777301662579616776387181543408519236504138295972546194859935458381269757165888931140848858085031381919954330112144144225044731913597258140639006114756377258002266244123196418742976121135661898852137864171947727721077611500090130443103720693455161898079560691300085724192159810083134058939556796377931835186041646592859495852547407612485078346162856829421082620916293909672555236897116986705475436249048171125509677354777777418352529470407729922684839748544474325033943289065992694290480407091498331697682624593857281962173203422456774290168955390497197039683079511850013608444058875372689111428605734956996468452387176498297045792388252324351500174299975884798243671481619996445462089842985934691702387745160715373829027092767207116185325631829272558954800116429517066069181203616507968891799582327612976773799558563082036115215108284553144198166082932825928373967611169382870308662997308959773038785334422839614506178605469195262023510096987610546967635000283176830708438701292635779335386999951526091951389212780506175642989935762360509048189907198760161265938807642600175558175608592555903740216123947067754786188531950071614939698053490377212541008785189413460385040169833192435979845007928152418220134650245328671272060179105553399744396065077393437507448817486810253436025336589321825807968750821008412130639571242829621320827021814714165373893522776230132520692274434281585219773118203977859880054057150699509264318873013962485280914043084369270169618595728749941087807990140983269891830687295002419144490175481595762191724324445608662312157690573702994921705542208652902673388543891842621110840487824744762333485184643196475684605375597481247996481895334060734502630671256084667951406069339532910221528137717458659364903364720968101784739857680482662137780701447264849177085612251463750859588356508543917345395325950874752127134954718335249070137068813640282032013207244087241328471214964158678703935641048747566735088422036445798313639242324640772429320497127529807936852440028886003046876139559986934792334110574080500387738913853433343490270051293250277711868408458148730072996099475857119356611470340642515835824245397657839489996808260629799003672222038750594928745508189341559973162396260286849920415132829824130532203204248836393713048085064305371834451024547754273253737154106146054048929841449669678181580000760748360403588229912487806480740182191061763759400994697116511525110766256420495791717459365093190990027334973209498039039410820293669360425338568045905344716367531404119294201565670970756383247974526788019041293371613746259732991434961966475798720854223922399288482449055515323628575590180522291115162823051886512540488435336197053508022881914290139823784571265713824610011568424121624098116506077745940024900213495921143460402040228232597232908778366755037745661293713029331425741909529009640363926670057887160648952139060013566838014640143377489240907069274046080995303513216013346240280026805009863159562841916687607695323226966882555100341297503773364907189243445820533901019259968004322454767987448718614003078441959540385717650193688643429205903898028322475089373571874429160152901799624577384269641937045127132390529906926455509333186160598937614783605285695381878583372927855667936102462340809849187993262360071295259377510036738146441295833802424583687162785838879978518561440141518959322827096645855060893384736355659537533985465266041568731519438573763382446040755181903034739768959602776577563747657115006654573367529396755649281815852382414103155894321884922083618877881249602528415105613124733373393887616994024521362264973842638029965212954864082849720893931912000735818042389152343764846328042742271110674072413056601922933139348175843723767588822406162075276024137220750883836887627763396690510295763188833918461001010163579608026950148231912759627935925187517122207809071098979618778559428992161612577018286639535354779149671369486197699347082374688827807070750211844517016817862085982082772325009738774828422800712853655787131890217190130080398555490862650860784555316428196048707740834965756812381463115166164491441351595654675333776770714890672123761011399759305984680472661901219819377495500584945575169138244982173519000360642249720601749030341967612559941944638908298623573454693723282368793878821723290672409077042366600971307897928260674068271183454646561800720955122494874621027084233269579462002308208420541295079309813992353486705406157617434926545513940720525098568712539749402590333394777253107942245611936505229815246879701827059838455853971123365361365556688079059285720230427119868530560082957429107032839055671127855494650728126912110550152637087026299304406104705697396028154916722322897392229011087221949518021883491749873257868613471200457872731764352599869978472226773757814588360239654997952057885541135998812578761510990679173447628285712714227940948489632458045839497591177695929806968959940970877802259412397618042882367509080294859594435285298804299980157473252183021044325637812918125329802504417912271440543839941099332375352556585877557574009129726283837224133280388700934164494005108959470489300637346142544356061117691368889401711350737436510212118221542708017580487714691959099490829994999500691630472218511067229990570785121306980810263851654336134813166382652861646381864088576230118024068204386919824715214748875323712570741954744612837435731846419871639684980076740163858488267302345361483465921406328278334364454448087537791689021827088850524207258029471616904886779908327766279604482778585445936404463701475077262029378881595020352252027088775108940845125529500376322476816979722676952231140995362811144717528701614111515676151154253828999250202267391429465745868439878543910102502278152085523801208311768140845438555214945125212589356411564868989406947688309496542842622245316692418934132680507829346854266870368797481598972440192983114877647011135992979525681399706980578905614811289042537790930170433011296052099383439904092461187990595332557707328285997511376419928373507344192951454314664318565442888179612499538736301692512911593948644443759080482020975468165410763276213659359536412037593095468053104936006630515087513718464168742204029375456728653109913557058768083862113370874450893457593775683594238497239201477821616992662929736943312688577312460595109427563412244718302227492168256925490775679868966944556211801960256624221414074536112770930151146005205397685909250414952371147736782852622383939229317738030097049528069983562763128340779884946485778619386846568591543988957708407363863798886320554041141619331777150228984978395960595878719628200100019887022932833777218196178996223938005637378445158548535626525084598249569417010865006964938549101524386579780397640538274954722901254526469946440093480405712227055775096573871627046824559163749005799566546578287655016502685306351942302821645776606246948015862430186193963050850742956110001767637821572173119137353528468124181436313805262627077614970525258534360578277334129167686109852464364193910704350096787735485237982451975926326577697978164655273069166828210976811070703435619383239512162322689818113495060852733570957261156524168856787326354233339558335667558444148034658553937681385037576875271700777246293557284043422123349856947508168208627993776163837520903595542733078029894146622323913678305487015156250398149693497906394124607706489234374113353959379481043527181008584275938883437299620134268527944222059290317587112496612832680949547546223732712694833261241081338244979157526836935817567076918914755944408259478211013705214320829349394567326868703722276826135881461875553411730493691468575947737102876518875728028698647819654017944549345702836074409816166404653334895404603997417203194212708062720642752259958247566195026237345402215847022936925468947227720698835406450994142588146760638121100207659677421587692156413460034038821596514906335560945997325953861371312456226761760840525405131713079800831794699785915786121337225832996259802154944740632664552327853466642592625428828625079728163545137370606382268827315221669539258749070447537387619846872336531699034545382482245079434339465973926639910475762609425892120382763583983646122580642911620632997772205180763146016466056576184597924931202012310014595403569926822841911930305402374519973236272314655275712267773893628055890931397210875593625546965382768798802715622914677170539572234274456141112881193631846632074772833966998649312219595865278231664167290191254715446310480439676032475200628192768632604484115154875882563874776747244610029292603635827239171566661677182458322098506360697918007695136316176089987807125930040366412363704941533402571978676524554315887483420547055743116896809526981909687862745389378437262586564007561740382080552250883467481963676741005902155023127902904618523105521423780165130286863449377328800294904656879284858469737892756947535107366644254381208561126181453818612785106181209021326030798613898968400087869854160779689807321280092086581781305756223413195266903849862091969461591457760393388866912581808472465439871294946310554336915643328554721950419570025135518646746155770084118653254479031092059436325600380473259679240132248738792814234865174122901528034381503651754430540147286919196970241520975749969684339808550383808810174110736197259753895031452328674120666313626025748731088804261398833877818911975521434841850800309793553096036114600943457410431499049889641071363547328801252518096039819710595812470796630420147504842338063643746910957056075155386878292663323580091394477909483208328797797523189188675235004108751955703485843524475359824541784698683019080549957057468187611229220406137640763453545834728520352330206401327280073226253108558603928943024743411730249903525322537272810316605888173698282697263929986905007764578014123522811985182785205060093834677015252773632307297518823931986312395708601139155311834781106660540763516163425077522368292192415420298253442611190359162199987015202919762531642528916024540652549720056296697052770424450038845969507216573662880189319764279616443332805427520483823235983881844362971415260092868259678335208225396703625435551504960043808703315716218636292131576124173839198958206985562151139635807599591979062993809974037114010438774628451855803358776504861090112640072873090240550313123918596553366475666451892264976908870220048707074190440516910548890873446937894454144535960530885080203882324811626040459377742760873548670886631576005918899408276924277510274474397305942601568221262385957754847020479899136130838982739543356367986984722437435488806745877068708755494099436334315023443493686124340381261108578994221159499634429728826820614234912859923895803103562846066408574557633804005735694730963283581509635175063132318144580923103019141907954129707618394146479327066557274686872540059316155069725466402438258409185259747226237599858341214212751605781310206914023286410291204424617311030130840363397423268943286886583546286838045970576253307951901054645054520039067261813129578533852207487193000924172398574824001268250172267726327518192808334083340519377698507270034390155125746741353783643949298468911314904507639421405061111860624845132094375719121078486020433581893337250222315477638470796143140778538661670288499790754842814558578073465115161647337056758642448365861276915168383483351813425719311450340378032118156401944273015567050699474458691321839677802211795830867011773274117619447435783901108206715671183275622695773247155791966186150806404419925742183176466110691761051259093153293278177431285148946383706300506428087201839786288346019070527280143435975679350843125721641469207602031256227742059625156540764312114602454244279697952715473360522455054469330827963231857200655948992137999241384840275261969063788291363772209306493466295317821265683453995357930105795131679604974467972180290058810432854566264287150874190039392852432132095035792731658029832185783191480273665314963931607997262081781498408653740388724833683378473026686004451523019314899585321947461902911037432029070063460838022350830038372417750417154023922079075085404409405026900019099685415677975653116038051600595169353793292308151117054827852246805703848980379282809003878170984381034138096367409313021315544143588574633955546559533898443691778058105586373887616831071263200430066534040131108731295230458640101817598608646263288415475973029593019060317620613650567443633992169114327694756600572552120229156249084457584618506870921159626916652410217357813026788143468146396488004314870204438906328424444456843304927656358026639003620561333603474301354358817123167113243577453627898939079300979491480891282201492811323165212747577613340353700251909445273080250573056253407388925326799686863452553147776513215490838990768591227616469843708621853740487993780721152069225178288206967566475439069562287755715618382658636116961810522931851822422504820028914387209433874848700763635902555630768326968907289975801441693428124828854223334484459674932158277970505769364568874348542223639115146940266063391272102675055415673448815728698610357514948095884153022073289044870478395947424571956488985656890768503993627654297183054902523956858536367555190417597776902246602422295262762227601513426093052414892541729092157799284162500265703652110447462953971009062999820426320267481998919202745356776768190613088199423930979041040493674895333803294730700061496507824698686750785668960871028210463261438481614063059200488673802792873704426926773040147066426782229111145050768469491014664184157161905431829697576251803623054512267145599562969400543606451186586905074959965374221180297234242322458004547493190777908751177169025092243149039164453488631445449058808928072639608807481280914408050855494871907117450156778214017825367907362345770503310858714170689690000512962189096078338953771602702317747726173977372408138763968965354750182874694783001563303786982561543337521600289000863413354897109320934142263408252700669332745087905862220089198616838773036166960136497384599309742653937586195449786308880019341793876959301242842653474682753765249844615481744015749405630437201357651856629005475732785795282489790247258293079461693376919906176317801285179748170649770626485463087931382414238932449125886867370612955003876246935061947714521404384801567522877245893147567428200545206280875684780461378688185224062198840519689002296798213587535864511217110438657608426439980711502999392780514193378803985061399716655318840847377093799127575721579003539207581011782620018699793483071068877058804295034158622550523788903999332897123605048516134463027325167936334404422424832064429592918973160527415146615748964280866072699975760379428671164005687088551362702188279777052355739292532092269936027712571266716360784762254814844573445364882040892376646620512488978483327991109894176150827444875112075885439339066983984719583588450501560569510611140172692997175438027131800710036609578220726553572345404982189576797718777107436263620784174504551296844229323192278624536434863981540974073699491141347486577842993980839505966656170657696502829877386508432813641553362248872003820573728580702829233249158334387007156619222750813517171185722024053433440671206040307005346913311233348561498920622124196304586336453621544294870698811479249838943137400783110366103246777408748658654995050144445333612350923726911793699689798227886527652547486008848531956157970697779093928218351977538845243525956594849071801408604000378508522447758483134463328531758676772788204542538917001490656833083972581927415378529722569006610629944672800198876472123260580365971152049860939653822602623459461873023156305811719154149361929068710285203456552100559287734305075325651925336047024143562154211150379614148979613511207536377026291511846971189958917345247079027198218583802186791729880624828922848054289233598017164605995156557649833150125764676872424501468690275221587985261964796952768470613028260202810876505468477777505620966750225325132314563753610112187845563528246960048608928976798867239204677433663739070810955960797359948848936264197397877379930617410953099868262571967714840054695326767425175673442180449415786995086029969763574257404183606596899068092932163013523727818795411765702644212440508161286271182487952007247354730213302704970633005039789032983503142271856979586178407550579657547147495404806541486769597705446910506978403892996113062806071056996886863330174369493865124303674212331109528668188306391892812777788698581346710327310919944390641803462185864596447677072456826029819565835835974191686766620099363504837207880579768467845552231605596689238028355576661645749018363087065121596552582128142771474036237224356423530995387249143521347148177282460963111611578082833365608365433854123623447691536920841949500328595289556857318522030610899875897982252846585716511724504081302084656668860143728886492985669972119481841978577691747391808362524416066898900518497654456813569227843662461939104478282786914111735858418738488851168575764397107506555826593951997708880782955990663949789518656185083211063247502436110062036023215397582113928204862011572357330464532805805489898000302762672176339465309311506705765328161314082524240616471785405036015408839429296498420655366019105534756747777208839959065708466223583873653878858704506497675880833891307710050797129415963480565346723749378753775006616361809212900476379904641739781611996600577008852466228037148528185338882222074725217367306273822622094777590145485528154815511131741933136349503991979534024055984828153219278413142782357070037413800517380519129581546622897734975304163323698964799788350124252486645253737306451919710125770699312861090352231007096771764857506800881505239229409686492330128379983708755671851764844303778736521939190017860477196833589048659017236880918351596024737394712719578255466992410342978042338363199652659175846168787462827145687769978665199271215031386254082607887695752971914759121121450516365666476110174858280679898227580500254241524422385263584068478983884476721711995046564372866764155177491871534444183262620006552526054573371813595595520666498199543398097025733659118791670588866599793426681076986519175126006569598607756346818701000887789695005057620837655709119668856310731368157205685635095760021287652560328612278483063747091918609056636064309793689865761989735843817562658999914813658751634967386102361945006811715557953513262263217041928091452311690863780069058974843127944336372158401175708948396772355541181307790240954551246696812713803195260393295046438665999655184242457469368980316830106016167381163087186631492897192235861776984954695582618448391173996012770073826158546096245040571202087380750847535704766472417241374772629975506544583578967516615620357546995981662798618016616076476275423650163467166649083157914892405863814508455807063893304589910363115878708415933723627915312122663937788273363575614785157705131997064632842386686704048320821322874439303684531052765471736804562891638309006560026800863760252565516907977069392412083591345144378049118181835128416191163137458981803559155860433526085728207370937477314945881279720333542833527066487741690610503399345030491845144643306565752830356269489270548017318674469549677564395085968503407552368885572990195142526701930541330837832989285314113479048931535035479753598369338640288837526017196713003101345692458192938728768922196864401069393430760982925175938134811429741921208952114900600976304208448448341620337802062698113651847668524339405824756064243416933268906379737261846199319482819614871869249774081708277023349325575830077433616483579812184543683258602739656210723846638222823055068457984710151971307360381840169938480578387710571776783727263564734666072510840865062274566515271799581700395217824842992202297383602692039247227143186066049004312883276779830288922298174233918635572059798413353196317474247540430448164404685374039375778064961444478082563628949392898046744344084539329094011578848792228364433210591652858717492000030103989581207258999459370874196707749016424731531014113305831578868066703469118056360036385578319692716144835089819615757506842116444316856163539492905952077424150418224014651012278906613571986426453344347892327042034847045781800918699008975157744307421899968417834624223592471688489935648705103588703747936662604453163488962319932521456257647781846859477430103890375604268070488915347591244681934731289846887744462371650399610642682126694743522383338930450154461916251356540107975084851271936355137792938662758234931901161059450933672771685371348974179648730885808088290497990335398394778602488632118763540606392261882965671972294605983079692722790595408896716927905747296460866965728485440104575171222257997936977556269508102396647230465263367701283036656576518763013092272177302354946510821773904214280370324067197193121787119605228193994679478126850694460474436674541247315224809847058339543819450309417995608738214336443622013292355194208834035800565953035636055860015986726203698195324459017479906549602469185020379580353736101393748042056649235205193547280544288324470837659120898395721499699431722761400658565658241661596975677615271762700823335270581896092567813822358973549747311354045756669307793340025955886206460111987160313679809147533154476560193299440838313831497694289435807510991915222276279536624521460894662852276249476417060339706001648809663849893764895289091978302988817076228990053903096350455147699682801624775733184835595833292952633182557218921089405969053947162875343591122549151209054205427374563838542556768659388099655043853489025354337351736273569969932643186088691091010563008251673974952244384195070367078259899083638973555758208475028515176086005348307822576129724047393595528354685823964287784955203096862776758204165515382378879614052872927481654404164307930058930187230219939116529922638021526717464235708272174936054091734345504705327893218611219958844325525034358155141071128303991934738295596932808860647980084396879271969806925041853039813868098620804849247924945980678793747497812410234817866333254587366530558239978044341603808785868504999285670901602187920189213821576295395141296641142971446373686644975032323388826010786411990319876688928025560371272876481675509578722803955726356969205906551774490944401476242196976661790117673782497947658671563003406344369930412992630019060650535480244185805714347362809124831147523803556618441709304296493363075530464716687361945247082182073903042604357965567144790378117779930005926123389119405059098708848275503207490721421299005012223131207575570250781885319017633402814999776631141379385544812017562667703013366231044349933450232521381421417817653003201376865968340401399192090592616561790554036515451045860297434074888947424418874365804368797432513429048326424203338680247307605291461373830863591391190992440100787081670682079493087188680122636342963849956426071202252103820915577312165269417917028399003992974768634361485191929482832190527382975970007663492113040150866691284103637211650282864652783920971731685093734180829825699953158025466075964515972288435805399798005024260597113014752820579747503475618573726363034910267177629131200204020913521578923152723936655407496217155212361793536271376186575638500963462669044250772833107492707598542604058803687965171445112229542545922622119660830147845807414354675057407708511385176062753027166476881828385337368201993007433275497582968151457940819737137923303189861824446281068664291794305250867922175859553151685281827364583967586124680297966089672492065089688121909724247057654388805826713780230342620777647081839385559782597621729709664329062421441208847468620463784346143391753785101712337755571264470806963804678872553058091626698925727442322728235360242843081622274101082934616077296967086689046303725391715777611360865173986052157250319323114808009582192850208855906663687624165139920918440520861127882034685470735047933057145460816223077653999626037933315572840723066573889507415197033501881645876011264354776613748776139439687649495454845770849241247342570583845345966532897331740108987290391098600824973727608096254096952756693594942415535688685632237549169816975139804801560081578837042354624616422317920563724665796733727540426070967975797243572688075204689063349378251104994886550618060094960471092169698943896295295525880489145266856573210863508865753351505392500246163386715641285092213745676220718310806564402227641328329942921678010127295156561936332640778898038223005103822298078843970327335025746306645121850623771574364214410310534883057226007790308332022579130206714606998299803108744179506700767056934852939246160711798629579685091496335163668078677281310395168974154093648355223775600868253253141130481730535642318127688509569384908036878391243036811897231915583692217202007976261561166581608432199861609546647071187452660475827406478105262403537225763733219211710133766662400468427631617032744183289676518385971676750848531065058811282428435396937845202124674413303930550515108854412635809354016234218950911469402827085947908731964735568296692887498275723597302395490286502312567661656905622254315568092599234061648393114100586870330697799172661263452618610997358128589435157374941702656703862718727240592477557593810282807331724776734834494338503120710887237065912149224776604392765242477633697056619151767229602991083724263338937104635979392148453939100348575294187421263767567183116886702085560342790330481303273687002530861329592351767684468086406178733715948495844731573408902471746941112101341483219284840720350215516767400828405425869300274271158153551163290047695703943330655629134792905117487097040307432113341038262501322088092554224126463551707625815748136384648018293929136498655592828204823260138747001928770665598107763644739210626294572100121228953842805774162548242156404122109474953505994887466266572881585345110848618352929867341329821668152044238826886043847317298954834666968141321296383437163995919493272099809808121506669088872471875913443723198429464169608176252983992051267608213700112911345978184077018277637457966192074193579224650776036751512046375511382216615984476977416904581449363208576999313179561283119559921253123863700541790753145010570753586128400184980120056166812540698660723519868865331944466155185130880975937415468639102935952304406883234774237615966329911373413275338483001075280216293836214229637726271784698897548169166751994391604876319124052587467381184341249916299388664934530917711324150778257761528986516710126961622158679135445974753808239847828230660904247964291220440293429381640221904693166280519133115225238977141693687081961919677903289658553334071373060242768618520060601114899423658073316232945444238223291582049766556661858087812521928667627726870004216260419715061651632268058684427009566277692508129896249173456580679658873008313742053816171458295190319065884219054366294763654861583995273718066660545754364714744714714234326786130426615384456036053055497554408518570559688217070919663352686624117880538652874428673384724409110710467558551296693067553600599935201076463405353282283182294093789464997542527384177623829761735154981604721416900378054414398199977173321659291913224538651692604765983043583197212363370100848829758482225037338626971997705305784366273146517582308728772238257997122636853826776590236366484521329656904671177970837410165269118313022904420085040442998769510861781364322997640203386128901735410347549106029378374894908121790685136858596027025992623147092138501939667486971077438797153820257065229256452738409588450693238296364832761160178759751933323561958843516515600517324192582607119654920316972534694322554391331312885119436210212762996465697892058546973765147567250569496781281203226967353656373349688624132962099333168121731630014947596369168656117807869938519736912526895977435537186636327666013247596908526757439067773840124168406367739224494072676376265274650087362241616939744561331233281008401505519510535918415614744867970179805245232136984943809556560029296159657380367556930765519151705240417698478442809204236446090722619091501957983264905172058776853576409609988872671283783134454317845642785533974391513136224550711126292852278722419416527210001665433597551160384573571648251380965804887364170789750622614920945312830636376188129241722911674411077406466393705714767541040746412911199787054396770916130512300854394074553059432073906317656195682919913753070226419243283818116992567050058529458682395729597615225747166428888863848205681509779830078464411319405943904175910935508687676761976081021290490890548976344055766651573214666352379046536498735320454470092660880839077535405005272748596938138257006097702379216469791180060809681641469891357807789953162309371342375771894337637797544071402424269163353462075212526261836605268302151306301774898176523904531662728991594739083832940675813724520369993795922705978013139248147798712944408337370022235700003018903158659872291543366728225980737033391839532518627135910083601107959255974338550797226909290076896568910993470976953481676422514403913411427415661657241066434195786399191658329651084175204205780118350619242801739108671355488171436872061584325140964111389588048628337497246478271821687657250031779414500580773657607203723647271340567383311147914187326363302269042295940061733204616582861401500844110035400790319729449725935238528366088699400070168340004919284697610403840160194135629719198571988567562460293898537366957627503269165828514969939858311405124087672773163443525044775332158740301465146287164975874274869860920912025529718707810251626482576090749651964075469985928937007065443896052492713197412749297543847578417100339388366715099291224738580332063454870103789385907449696284343351037706638605924675373262937852327185449846059777188550499217392819154390054764318547479490912200014262297567395905825926126617568837201408000654078405049987160267992138577200601671976320833317841594416057149327209303580623764032483052461431286356900587759032395296518573500954039387328172744000402066511970016330707934253955601073707616862458726726684195650054229760522533094304429311564934422708459171502869812546764630652578180215031128836572486700801508276390085142040564272862240155443074982906066575898206661424810622253400052737747156227136224482726043391244453187342006931182008281834450048206370971065257187846805666003132597477747994781041605117119058512671215052230031460711887487279230191111836724315572926890574610279958198290232030220911724115923423002623143784177138232097659789537501741070343310151744715973617998245028702000551375279486669658791313469030671049210339052844803382378561194384153562805764067614685121876193860361036866647750941212577119191491783222899297688498955444186152137088979191086188054060495430458025619457449750065008078312071044495431615152115082630463652412582560315478432566827323978697753465934017173608679663452297850650582214479951638944770080741383976016090591216028867872360161253311776300729756067819398753524645850801243143233665598031707190675331260041547373015295177048280051077440613593921108171556145477903891250932560099172936074723945587707269040626478195123155496576885869622053055129644149534190356308320144852900229923734077877382677560878521468009629711649711690409784410143567957673331187482951316641143072444044297085165141553575467201361453171656992671463509147214762217840957923298889931933244617483987705626998248877534798169978885366092384874128538337835068908802580305452847564090530573495216718034250422154357527103145790785337804603830058546762049273232785578960838769087082800455614678768903393515560962039526303817079755643364180433811105689658548300759856238233522288518971004939464505122770435900872810742159570482253211901978328441523963654725783054672963251281088315659188760903191981876831210887167493029248021474587556395504421674797363646034577898188374520225670188855809691921449600843309847764199507625978543799261106600388389305130301925504217660802993465247409503744260103111445390579874112602924754273053130380282371546034081140080439702077374869851530768032649916731773535043957419906099644574632246991029232057385440266992439418247690290240224382126046225550036192503097853084137531811647555328713322653470539468979715767492782193388722343733941637304225365397923438752002396367096358909613296903094232294314246602629046497556847414596588261858164000675769254055911942053414372738370384168684781960045403242894959901159964750324955540566093109578446602637181039613189533074733050857328788536369592171835405538485706618932763519196094207173727720834530912582063675771241429911449197402741069457347680091322646626209579547705594282912915317653840907533894963388973768488794682853601410300600973463782574219804128239335386104919956846191844825502281179673426169572544129272386150492215568576540699503692002722879827799782146518452329265481016901397135121257588255704806067468358615767493019007703316568467946304808030811490846868604522145851166431600533777703938319684764451544553769322621299706612975353548635817645669786199766344478449280469628178477061711417364429154162120446205796140729908832295248074115795932892130306832718029499699135610433706182930893537571456319392403436748424630791531961681133737642370711374202755527170728590966411886131525342641965972644191158587205669734792845774248141336846557538287366222454962322628656067439030396279448724935512848477592140045968384234232403439286656256360134794700997179066482761102185794581674186313071154856341953960342856367851320081695134414018599271363446033510497751217207074241464496908211512900481985522536378794697080831749429960380483331106473137262800658310357526602321971576435854015552817788536578123464430930613823472344471189369317275494483593145293329135573669038288340050919761414687600768637667882315203479813896949748289558155034673192443393426725205237867810443710804201269810630348475288103620255633709030040065267310086523653605883876932535578657191485626201962001271241402530725288764204791070901159300507633332467737106874543721586452241641362201126710954898087852553746095546576325922728262395213794697447044663136101949338510441217316256319624196789162205994111394672003366520208416558558304803022198009230447696205514312838160283245522302476445990973271467221212415077640813437307937679123963936467831774559767374361402173810649488717292881074941175405556345531176387692855846548157113057802288618797369546620661223529520312973072570017495529809179087583624832585112417939008863814199659426116836283372895947247304231147127616336808864288246686277729150394880905515264251182791394831567822893486067977492578848640334439760607902188892655537542715257928178742294989078341888882495827032214889956464290017605337063918137380974612257948275686369183866710309744521127111494250615394217494458530136070684439114920612798249324416297414244003941474286224194417068797823336688224625441162489256265340984138689106818011060979031258650000858434817493844652986496699019006845849385260798178905688969619265367201539834283815174095914212221965505682277400392314774119293649034009560747911801168466927546224524225658993499586031160016935685779463654807329116786558713868056950780516724735820066911343411025353557096862497818972431683589427531516937679682756639211155455608410193517211707059520303267572806051250174919635497581751791316732095938509902277080673953008062636696223206083581161041532903138495854297774106533417925646880071470735811734602803046935125863267024985662843121377439430892796515576835063194880830522823788045902431040568308678579905661717262494092050384824273377209937108782030191541614597150720879963277098963066689962886348068526464810044436018579075239933304626896949038406565199930940208390429345938714069218367166788465807190325232788788555387567932528250252076260188801162097039435085753484874612126974620731123958685158449113078233611558335255799608771047915723788474592245675131121111165234441672345846923287040732245743462116900253911005498476965741405418882646161219835989363565717092324002766637137397038049434737999781980961671012044901227705166503583673739063443152860187551342885088675868417759151087230023314331321348597541200687856682959807499666196206038561228227074620862753054135968557067801562230553848250218275128554882187368026125270331400634411780396463087349882129649949118689978729146521608842030909875725039684311508107527850635844160044117443599228781496632080857446976368492904717961240795438972509440432436151838807555064105301707762225338315991170755089448134038580758973458846139583674790131886423063849659147058525218819229994048254356424857318927616108143537796042218068650803188208774675803399407732029258355543432964398179798261555216239620496778675194407103679166118394403485141580960057392887884153623480738182335088718111329503262303832383796798820111219773973105310570932875723713553226273793022138020771651273124919095445891168105882639229685526243378273928876311768982776463327196613738400453958533265895339146703231834676534429774850756321532376352907004304260913724880084917001658154159849168041910733201402113366441441781183009592670085390600689354119907399232617072836887524708688948140365926669405898141922267178119889450405552847063361246997217775235585587370444868700331460268016549087287073185765726089155900037594039896852663841980812594395220913856153212189409914213398268353492455338472741918009428489844974953607258091752553200332634072223361490008388821350720291025657039002288843182415511260631236738962696030223038274101938063203749972333713379097304288436517005748042906889417048935010593085844857888606544357615753812750073073367916052824221596776193322860721586105853814014039874803191632032915095588671196591703506307730023009275176422329474751838667395546001869475417412527047855421723554912463632243424949324513470539528198328344100528778436181967052163125502279565380027379443846675002486097421640703743672753435454865462556224528874004764114646838515098953817650715516410323890288884217093437741755507972618271765579796680044662333604837288399840168180032893888131516588240136829630032757911639556064599257939432422778307711338605284873391520628324705829063125598506310780688989727286999939716161421466994887577752613868238692910766126157636291551778964799172169679977376261305841765567731920809640812364550910976046881095981831656189633858567125866325575767237289062889116150147175677429007006786719258411835678023772888526165852827317668401367985756710795652535789767572284697874719614534518330726731715295995770800730646028114026803599705544488798870352189790536984201691778425862003961731518943571371944848652302223937481412677925920756364012974520846211189050105334918552360770323344384507411294068414005478924258031783610543078968098364277791521544432747950534991800634112814739443081495015335920736548932881351284848783800124116755545953587014348861553708943503542189967144061029440907296602128584804686163242659518808223405671459285594230803746202753579193570768022611556841267195894182538511838444481340623311848993269551561301999809109086286837442177558026060764355474801375184992483826277366038353881100375364144776435691092221987293348166925413497308257473453420494968107323269430045832186704478627464328249541970737325150488564815265890039415140760440387100232349610140621123374550372702203290483541813597864929994724326407820523423535546978034656447848252460990594916714499356564842284973717188015234085707279709466100928766501096210017464140953243768128524427579145373095611051890799912709488460183108131978213668218079948720080483212798033869591228553261124681923926633812772730742229793846046926744219393813265113421617854063981082723282695588012889229669854871109959735291179259364721473077973818556654083362636708210890914568873215788013902403740379368154385834459661382094927432981143776515482816410975108175887310146050817517730004287178329092830296491316970038562817903888890480726148822391677288580993511737106367879359308487373872198201372852772040253987540400032992759554552113266433906837344240274383391779525568389294706593724539415657575950064826418173825121479543997294152323571376111119710525566146832141591820212505716599438464169738991201754613539542726076630911328280373731504473824263148775178881928234434370384640977662334535914307593048253918156212866528768350212346211938183472353786891114450649049820367906131212320601717801712963967783329350897200337062178421897227906644084297712093879660891479408037683821553545318143146253619654924345486895824862550914741384654927953337155701314359268695193037320945076642433878401462933085368423432506068663630436624016255890095517651334520220420015184135167347286359965867868268558095177618357178409861037735418218054081316675936415031342414546041095559722194914287078340858284594197066421470307276082341212604965343601883751911952475637046417362777073731464952811809192049533558011075062379559547016701863815381046833667813600669188904950183621621227303904490567889492908858706090789987136997747208967119868980165819705186280545829484499929856677822771667574184313872081341850711146078146920980245339868031554886767324594164290833144482322691846839855890934955148878802813554004415439579681659906597792432824854928843167969531949110484707782042223042049335645356361139818415961299446140612020725306373122653777573008018275846373707325576886424697549411027151540913454647695739856411221291563720040940688488543271694134174482575982994011983893570871391067276008031400496213952345848348472604262484370818500546590467630996224927043680389044024403107682571104562254537922093388738871159028014021654735242295784786694794054037159321155706151074987777033077182343416651397192116955540059232794640852731714415407120468124266402790712800680880151200660988825171567590913267522249325023096978213911121329251865226599219148941088452980124972201052957495525981979399918221613591062780186637173817700986660002130611181911141669229577929147897192413402708759166578717213450514267529108765313031127304353741448136027727470547545250081411824296619021934579424319212218773102814805334848035349257550875173322363484203161812310398703944470903453896394913977466117981666230931035347600538952952494432665961985589038281604850396756358796421156642318461754620258705449048552519028683801750960558047055684596484608389240271043824603265878532468813712694251382233003120763060846222940607196836596803405440285559546025603973849514044404699008614657878306952737874163062633930765230446502552168669958548913238463351362837302257277258389911560772027791436721546615237423055992676411928429730573776466135148135890088234887039174355626247886808025667515616866444007141262937604275939285168832341658151326077522942292325851933022290091583834102814011440023273123825681697339208897870090761015776047566881438480262550563288775073935017810835931261371918971743363250214875599553419095163204421680522972723083147288147621141027111143826682549799589986737563721574558902527705455801962236945956326244160262257815141120435995902016162522430723138713556542405360461774250251348268655643936823027084886677651179994509524836419825051994985113362787235424187937840613394721955827944783184911374984733661448784676682869698449468894785225347557301278760857003161042374118092566986679089170076357762517056689723015742340355787707793420481945955022996471764648910134127284999783324130919077320361289997920425505373736051036839451421063498727563108255904801120749031204868946273115417235952030020836904584092470943029240295374696790708260520451169784288656486829859400303641800751087423397913927910139606532313924865416989093153405281989568410458206337834125758490638548191282004867872108973813492352667230817343351192924966273103589402846959464989767692766482382750921679814269630303888498593214277645998845550890149905737453073875215480777579181870671130769852323819980135039249499776414750229944944316328515141776453153726279430315798747662633394237344095582382498261131175916169155130249085182678535955616049363646889430965274833733771321481690854662627117080550735009594770248127245713975319939671167299784368674713193400325426639641658242837938540264258342209038297202101004201774583569046626018798842636030134830735854140202935417828187659386479681587210290672835161534121685949718029139755601335540332309129387462075155075811121006217348781048294157950498163910202481006643971601452140845235939461175492527622383251957622484896545637610145577717411291871807460203367626381417938136916603378348801611625676873221671140004424786078734571675961624413069216471581359670049997633871927371806188945394064176366072067905246338847566458582816314967757843786028220794941925783539715685964203380063653049628638546095263676595917022853798110253426718375502016446697091627341542164085927434708645450110320790780243679257911310044089723804792326686718653211686721468806424276197903400473245845842941941068263159933505213342935091031528293718977840024536221553795717006280627656281093984235257515898017337515763139068721209282883687736589930719069683185495258286982772184261393381640927361798396180885826288858994703213545031419591227862691334740960773287794303448657821511978383743866724589606693979934421451792918817106322464596100237386343784041028257998305989351806132269815983669501207601843934372958764300563116095715772437622904065182834660908387229552911556934833448451469935232596158761433273508160695689402775324013477815482780921246558444969777774352786312628544487241540056204262227462281623467845381771051709117529402892134197083343645825606947915684938541727197366938532314361542085354660451077001228927300542855425981282970047971038418760468204447051902935963019128772130219866619374845361107179769256638087192339430128140036849049867840469956734147174889519700496701712340920402256232663227022758492169045076766429853987983928059536070647942923396930806874107424973030066607764818139764782751040577860502249750657068269575319701055263593126733560815603738612623551578460922130417122939644762303270655601534767644852808067626565189145889176824348757446521248175412874372630234890402336714851684133240698232127991898274616326100182271411913751867909741741440792721255562831868764140439932478073499592601394180780342337137971966268864075966286618512771397268882310926624990174274945677150591185101020784305738523057795509730581911238831791310795999530473420002441636856946126277898763875064106294041539798884290941418228938630514665024684972235725010821239611232065031018228788930435809258869455272569121879658667342760381742052064255708943709898801423912202107869910315018404897216962209114364231643760368034485837407032224444095554455726773840842810138940837839710393661800506302378087237201411376945190168198282236734890067885490238691487927282404863575568125563663993739725232203303672188460718849433086187357699139372260334571821619297548694797003556662629533180758987987441237562199583184701283547006800216002465590037092979994219333484059484735741304274839704240820454617764018595931326576480999260047652552562221655881221220210892586209516763161157120420996196035875197266589305699430175433847220585779117103951488070501925020731278139065404862988275827004666793066189190057819986689136936035892320982539001982182526864751503693579186372778928236366926733464409789646668408490064020474184949228333841898362928847248054068568975455211753706081073279011674468394276651175887249790384341410897000214346354341984500527817481783321043334068133318019246505768481735310171714657460700605164881888666665425411768574889508974072163480849568552451458961775155268614238427948829002680165013696889805127175224351970950450084370552120025664608129350830346781402231082512321741867880920928687478422854895399332378974664675517072278267146343390221454874750591076565523824442851099101016238766194099479699257068438369740700412439064792989688540065938359828834001162635749527304912701416064778380267855271480073583967554120590578483081090028065875482826399041682759092735660942282537689683561970394900679231398178861247076180365145214365281234728068389875230566642499998154457092998533774358899972191352109045127619045399526769612141246850947099713950606690271185426511566368464919960754534762399795221918031508009688354513946296791848606869453651693177382829393385992426899559629281508890080680663290416834663443666621018954657656358269909731351645437869497558585133682684012231185460952823147941014084377858592975158809764109033261116138598392783751790195634821719576205276120631518343368748528137215169379556606203435616209819196190515310115109620166397114043547256910396767462767391298454275260076294445644722013534821480062212727943642186913107389841179963394027588294951117267033371681266485930426435608213379111464510990736507658907091572197658943022140231738534387272763957903456278999960984258365765886869075904236352102134873614072967273399974018998574551257166131605421476492927193832285507262871079027610481395589016647107653179541096075574516926622798628591770398686603499506697915321748463609451576726618633363345150801386300679434357965817868223930229625373442988818492236036709619604633503109518968081538111097175533029674867752507392811591504990016845772730090838281670822741565890617203245924285859811892833364160999531068374842724811483304061739633380259760160930881065264279625797346166916862489869162063490806523030198500916012156934479827568955686522021890427210738673324022902794065901872790668789490317875541429635303257141160788322871746721336958063745698808483760887664076091119296727927345093820396228061006501404693020744661724707508956137439439882431856440295632710208659742433829999408934503617819733145230303643391319825727632049985283985232675990570337380111795029041343650894334539727810679627999607895611586488290886958499188569723516976381971811539394456534175512393771670336826061278111719273852434444995088714915002299349918985913611756205999926972805176159337618724887512428534463834426265905743581856421330882076586975240686442634159470625538359019607588585241587944015832784232409894824784642023547407209600471553837091340500477531499665427783970484314257168477073108770008045486353133816969032020134700844723130022039386748543852589619459151407682589555499415505186208554755947986650149255522454162551312056263208624689620708380548738591307865163951195805468103777424839006487105100179218699956400838859441253737823858593474123712862085806415718147192099689171648183646000609839668868690616083876995322012910993138101322757890584096041801983507585325193808564970801963983169024022027274478842723142002932033557761767655343829137162474883379847895265567988576170914899914898472221104691501233304329673310522006686493912870611049464629180227470674259374489359052096592935563045522217859292766133270555438966953228829891029391693765065277429265412448390484129138466027533885094403584828751233424257739277974320861502892245064789577634866832934749413668403845623520230384100699067300749196919221800649770106894908943909896697877538259307820691855478580024491768965430017342739249647580179669906266174486571880524720649178466089574656409009681562263846997035053389968366044116725706598744849773630061543314407651531259053012523198566472245792012547956765199824633477704744662793943966215540693100828927094494879299776485257281731159669763846322599809184372486602697132837387102920420315542579107754779362137012302406861037600103897992917230644756804117634206310622236832991367539839958318063767949260238740047783299784811329176042877579394324803282733011488685024507203794565703083070148977212264469532155084408972573903831153390589278700448237755702905449080872281561110154872973276446005039384082085053723277841232590941055778750833637101922600213447472400583924205072765783403298430784469926424281226962831169263384087118250445488026489589198013731835182897601624873587933223174732914463431489852948477033107593497822182727062616388315988390017749091833840983578358473926930789696614327493233139851584583361698065094558870868278068539472935094034146556373308143385671470368554854446308294658668918070503403286461121762643240739877372043869496186303145318303966637799619323487040239896827344215601597765880053710430708015813511145322121410862649171151485624287410482627880848239478144128328365385871846283522339020820488926686196564496039395945373237817294188742531836838810089584614743780900360231978537050714671670984174981942366453166710263578513889809466434811018632071458114580248344110627357558598140252468307786662861766912518730381457814824024192705504338653001513044075786569766951935976782153397137356985504433999042552740910311681061468996714913074237388455324045793938166695839722517659679424803723602230403657236678847639162962999292143156630126364935430463675638764682947339982700031859743002979455697162652643225153664504552985127422439991878498130633860862040116640595649820515221920584311171818901381919736467376747448092502466682375087151107698853872948090360055284372803748971355318051536733130555214308399546181163063633365503406176149521933179535809311057166954765522566409250978864337004853496076099997876281112236466236024436419617037826528562202272377898481433085276451342431825802500912327469047348112229096663422493382168118503597309458877212591454823819071733985400752980900640464580044193402832332542587061236867945315122999107035473754038859750301256680267336500039624374673471650780862851802112101657946664104885441996178738412090067368567260571536686418849679688590922246735302604600295362713825351216318386571904291501874491630997662611176632080052971467434411476042537197147197484732863541844511439646963809630830889220820789085289232438387378644996846379737283396032041065194313298597304882559710668543861289147919753289451719754006081099958119120602742015345566552649608668182957197476781811627653798503557483188970615808368411724197144766264696358900658616424982376016832520823815084438672858886992342427724839833635871727000408440335623329038177135401888234956132080991728371815403136702293031747804919582328844011726002043194221005409614380574323108891009228570230267921015792967594073349417862054418520501064430069873839922356443172469355286269018270040025671484515539407155488595329630870860896353586753796886444553430514837787804086727142435418819777865055800402764034251362583703097404771318620984304238798996951819586906806299293561651688219820451404753518019422283163952988482408564999956355933701943956458325257263828021447715510905288150608670834844717208164608813771520700377161125029152471640479273774921444274752451477658834547201954726443735083490686381270998366831124649875983112824811495667555819546334681430997485660147596561078254486073290288455987758083541490743538708054212651103912378774402316692007985432934065456285048551088810130767043352346335283648833048354082580223737829055429432501322110218913476807493464084540153253102961263247336284604148634182991503066394547819885541485588863998818574223969602990390635742496292899646234498634809145777463080219952554255731258911991404266052024856226159861032616258077292347944628806068890536349050997331851626915046196140510015090353761416502844910332460556099956176725363387329174038184054013836303738952701445569370076625747957419394547369997204492145662592010885464637962382021664757355646737027872033338380526327274319947348419001352623344358041473767304203982551994973650855337793426846973187892228942891833888119586318009755105538076452542637144905739444915024489309624652511026178419868929150936682194585806052867086681353483809051559128606560701668006730103523985320445579624981360575182288133992242186260139733870186474523716394296046303812954610280027159058864800237967753529405280745721124755389641793310728154101420289269465891792507462493486143532915728538498706669192455676468911312610850853234866146043355917008160893079382989900289824022926676749148079109118991808411750927491089462362300732728673401156744142008690113064955842028080756180635514065193066575738829268494436152572639200081529913740242928461897105797180832802498574520848742486994157827555286349203854990570763794299146578074123794326139315712212241352223907712380602397891270139814178931559659797388420841387124408810790662803980150673572437014794984346727463493919980581835884387120268837859813875823264125281097848800361371648364203468006439019135075999683742645926880481498498305283073797530767962916884406102918935990361214790205024280025053876373236975380351346769253198163072844331821029069718525485085999971964619662033147645700435881507207167023670912879124446728742050879884118721005119070530595309862032062972464409702427948856831333391742383946796197514988267055162852132068928011623776631582034331917490757233168909530441306593398504868297909339440584026713701192619445685058750101509465052285448194817131022375229403571905266823783458542090795764004370801859324196998284944371615368240995222526045754648916253728755899267293388507928978195208333568238664644689595236921403300477200147198783282657687166938338963594477226939844194480244144636464693883930758369329437034482163073725569168472424954985423115170657613491548931316580979464182778164075999577603788623671317818903920817204778609038945393561557836173714225164848656530912004160105894686551815362803346734421371756505381602619245524084530141568714430979759060105042653498713006489370347136408145476680920892272749403285909480010651006532188374721361002087684336980272833129139658788122620393083544303777392422472037874600584005768823294716577125256903330098830066658471736372878234585821949032269354246675294613859471146942849190125858335018277694263644585288444123703726285860333239848776032050426023525438439539360295015026027384016298892202939180914373627227723286868101569899945680119322091582957222715475502479803174052507683584663028937472190571336848616816569025406902645064618167972049231078258401681593361747623676401685046507684955193717664764254086753357206335852743069143222058473650547143953271268420460679609863351140996842900764921404432339597208172533654431548166644177680157881759879538110100642963949148950302135215085429193499936351995578869202109541321055548519797911751085586385202029694715316583718231581260073325504212788221778785701006577228674184303786488534099500912779541012210903684284695808560767880543647454072727085162980119042180823349987035416762031558800201814899991940962343593895352182499020263937354540982210507678009563918037352056901558462502464853222647224606228921798052984743379405771398270317581714647234294145823300450005472582816964737732647660463037900762910361448986632372580292809234057391663176891843892052808810153105691486473828035662821455272694820361051061930153359376970435364325787588397440456380858807716182345477570177359790859246358585487055459272702674932117668934914625454137161630386163730860955887278497357327365184638255605582631108016214905295181794712349525051384979930510856500143025543846879293050969486387734969144007915830170738573324638714850868050026646634995595217628440837587368963166320878484274820842379469391609976714444743008471521334431768731762869203052517992764267405170201781338742363427109116845364536741798143520468079524399540720735688568507593295327474309167440657269049042706021897491456703590482843641263312119929638317125039729204330042147850504378611636680481980498204528787573089821172132454299935120285905786244114123153101059427250203966072033757922509682907366172481520485762351016614456567175353944876358688144430324759923694780425769886652611668312409224305776272842478602706599055142074860574588012354577208201535380252696060738532156532558059871564651187184357412529237477364541318968255235409175304772190170221542193892573196897362790924346806034307175227039249748927791790959536393295964085558043204714571691367324143235106259228192493518687461636580029081896799316191907391880886633552567351244761741217312248527900311190009407993138509680990165330078095253315294791191509774291608819652789735112411322414680498812551576918454290045961200179128006073558998453453904656469588119573540869901238944077449615856620114915092488640820583017337005039116084125501377356381630374089648336089785612217362557531220817705004410614493592257142856220235283519165698740214288766989358549605790815563990143696027872053162400777815354577317996819533800271177406400367004244283166449136316242301435612265840334616919638579092785624375244329498683701336271222276431506939915050338631444201818121605312360317200789249967507657212216101828816789372675625269165306195358068329578400882590034680352814131179201711487940043323728245357683124231168965890646738513677899316917952355148440576186695220223116933876553668959968596090936006331601936784665154063878753960223441806642667460653765894717007202844250624056935212154725110172687272736453604497942516843257008231360160912272672487712422319807309757200712106970615241725669621941538889127376611362544669161217211846699845524971432061679775428834086055378239687672586840014893722249647520469531667399000011496965782353911718722714308723105841954645838453644103302013318939540394141175998145184079202930414758532779714820543093757705656628681551877739759730806811992035905788405510381869152555073377373087323815397505772923509132982595936628974249370866572270660886420016705164996046942989620632836668715051586061489932675282171348861095772250611898247201847260401403138534889487284237183834322909344376086045501770175101824569754529275923354723541474115365098686337816732999124288737456347689415926162989901567436001980968844790479867119167876677710721062341303364796826695752983361441775271021940524457722667028881355224182058117964289996445160288267784207172900756971370282378923820392236498634668577694044954288599775557130059387766161436697220492382649502483728618433080507356471342240418738616120509249034457104119362526268745714868058477338235278107643077133008930806442560907833207862390758496576614331189423569095784831774176080114310807989622269691990188719586133761772572009767068061953237878263279032416013614561731682831314756389469878677886355559900247327243469135649207395253742911750590289910793914210478997692011283942521229723652004437247108237830459158174717307914212574305578596740728059391668818768837385699537392103252396929578775989363299856149380269361461173071149833256638742315314534003700655081145661249933179723679551588988144315792410759544425119399201138223197801705106000682747852093826740773936434994727710545671735880119807411917383845608456238131702421463279614151781773466899587120055727115398946784536691462493836585350156780686692226880751510507593924055763914775298222762343474961098127375606433307521337388727988836568149228465841463290091440703618155033653731124680032117242179070838295015467291640101310957390287175641964889239558165423235347750278845230956682684710675829849742348716070659656985365046326798139626434431853586938294786957071955881692336561463797893468932223810654047598984436143395568830234614767024516500925248377150773674600038267517859097682822062438336438751064470280805220126887693312216797500062179355137264751253206762443183934800039864264572248766929168221328756614604335825700374347784117692252484380403894114480872225084319431815909912921687598175768907262295787759666294629731831378444829931720556941964745795984479301475314403771635356093326350245582744450516082381084246812355541894612402981803519313182659721360544822760790688499004612459252623296198737903076259445425915757241524226021796248647290555221002442646548175354858860628981714979232638381435738255868260881885074257377854440666013276279079301879911376426875054964443417915714061242831103618810038663565721016899510704448638277761620305729702632977069207764947174803673620466644387597194559465639908775731926087055651121554138662670937334117097482068551318197934191470797434212602603055579920500088388854408711249465976646104411818076627105484626853709472102030470611535104858000290130076611165425743335396966689878725546895204416877346198409284092411727498835008570206220716817750229308289867130524369739041678419196924559102330346187316237023098071814352972950927315319287199037729297442108659022260516695573700435602088613513535327378386006427316888071673610908969552111098341035312139640529422680635177713996632565970444114677249100730956407525898543207740361617795997548057933166699684494021353203663855117385547231528290141139644976122073794221212702192493277530454279943317896769947907183358814598696340068435781767701465587441870535340564941502165577480842024717163458137847700932587226344312991700955341379360088172969448254437039928747829365226892244621842168384039430283177200605580607576430359246830614315795940417376003600280884237795303004699903517592025514123114486824890857506716430884543183150770945513246926620944440197715452448120678886857554402983712160500039108038912063897127334561302277461181194683318251763824731592432624528584651738074840128401534867447084078703945539718684216498459044554928419998850039897853079380970164943453057007386009311100557982549166673140617382969907544123853352097159736069643975639238923410143152885886503031911974755871749694043141284824078397638042542215691855679667737987489287134023753617801593477846560888322074460310556968879898429362381641209022097653471752768410948277369400315753122204601566990196687969303557788615135485312349710627482891166068129368340884377540878984336604518841737481909193129159361651685739118128745886355259204941288737501025015479627882859537839303337386942827293612951253909122649256978163247425170306533765277201600263233399001723199304653195800144771361402535031609546246694879335558710355393070079221478933914230993576039677369076817715562181541141776037866809426930902146020295205163338368069303453463814126005491791965094664337209559751988349021438316568147921124262374944745116593139406570015158878042947250130303548862043972739971936027283475036975852194040606958946996359402577582311903758811230623988196854526586115693038910560980077125053983233468351539298450785120152312219489994058173546141564474234200671414759369212441716682039620251079817367059232681318477827242000637510959369666988954639864163310829596896467493941782936073202840452841281334925938729722102942517541145258577835111561939829762435892831601055747266435355084868485431868034608080894839718612092338750911350879147020290416065148689300880188835122442783373894540940541272503758505461896822597123395664838262497930579063807435414005178001676194867087816288985337434015119533557134489211560299347613969427038545398863520514570887448708443460401987333060193374258280105243614348246736942539464796196048235931196747694974632945679656760172693059880492384479780384525492697877010017855610621407443359599406957482044015801846545872692109125174708494087966332339720321092301325753589722684089531016969938842433898050554689425335631961497246581928698210704623989050837176542234213723392497595482619510323323913489445934090725261760839458499149589277559585713703729373289977928398078124935689946583904573438804995958726595548197573337937160943220749377609334366725345521046559122820311063757012374059181036214298392552849654957437406490415666937679472598866447013763260890667998011836959033830157566136612511661677899727148365337386900801460855350562908128871009210277451829341710838112536122492808864810417894821428173863089985610073522570379630469822885313548098918474357609127525245898472493395078945144263988379426777148403830915981538712482717357677181907031498618510460510830424164120019402640702767177761374684377143111616530899327035968900983767251473192444726838576748544422535815690285245578459748797970964200411263310663325665272201649231371504368803227440274178352669874620343129337720579982174030046930019320902648981307216663600875085439656021444156139413381936753094658639591711135720206358844926109352133072944708378203791078120797538601012363235960128260241910994051878611152955983484634819137554237642481708030022860699906915574890704526051747755719928548403095801026881073393025059420537953057744502669110258944289552561766542324966072721850182987235567394024569607942124182852351262148797903922155093557945399729778614484946958698938245829998748040378812891941499308103877046826936589809332907312522461358917583826636256410608118490143641641926554426300980863404607974882194040949077224585729799492369069116317554511927284802707818383057682651757059005433935115404698372901618874835630580862111735065707861622627395721518909121484984298360997506217479901032025899884601836593504500485816267818856143152746666441038134366055316820638352623718920032527932632871120101415913349886521861459059302498896469788483186837011187751992566527886417764116137226211832795643327989921807266388934611566549421783095375306143741265059087241692147859681079316088579088651480982903985581075159648407166068360690183159497677081313388173782680688888372065597661115456608333788532311971289929473828683158171347965765920737869394563589489722356166782974782143982419047942307739180755678004861816966296336111897010350908063453954436847160501797339732208630368373765137242137621113325816524345252194622292054746039657847255029766219626137786167613749750835812771422140936347877407905853008559156987245189960211811895772958655751361629071079169336116632864715933462540287719661304510062978010294057387600536473235513049972962996258413296570768527384303092688449014922751128114105636371336908259656253066681786937768554598095665926562075386033192610210742129817426024047414679059355778137169631496789435112397366969268340218894707709778659413276521750046985577888347565147621101608600404798912782538955464160332618125773149867619670635163271329853793613015534885483945654156121439774832967083767272718085844611423205436923383551411502752518858507362841933395860373232424235492987050035135171457192015992959278804527516118908836356331308392317727872820145881989023959586614531895299150923422078044063967004186377138600634114815195293932575846364601504459611727974103740328129224722329866571684967673292192379550247708679916438514017182871030585868887055816124704116154409389768971958007983337327155718572453718101972527470812540548909169289623856781552035272451663490528789740195084629668890867530801380004368874144993688005729194673473310100376132154176501843484301880021797976691754871532652436058766463867301321157129640267264534796254043730375825276160959218770773596697000363132054686175436101542834867362599839160947993946700701165713435766351887462273563222415090269631940042700316021787859318536775022461251874032977404458966863168951544093615895362341296511658095217532621657269113237027274056613779670435256582787659966142787391673092700529217590202990978125619035989509502746941853953060864172703048060125663441555457508512607151435247271470675418989221456847651385086170916205197424546558640073064870230208432800084400133851765453321657387092101628974677900178295809580116149052366611795342124829930003429460658489187913219302346814875194736277174854652546217686739754319140233298048398618071555331453534060111851141054918214981335629792722286757751140773113930958579723551850010627672728933759488288335607180996195471823836547216396627032488393945875148646022409882903020895457446388656071663380702174648148754508917284685301507146992052173004744903946667704561120434109314388284725578325834362530990327730196621397220155354836128555003593968009153631436477346390824440888369632012460949547110121743541895444071331685471966521077084767846700267456777684029815291901511728473098108768517942200084006619797703528457674896004772153140042314820061236588707598821351762976775116760591861647274164951245469987200888118252142022648260287885778092356089172603045872328226216498179144118081823545475372886457585624939256455045666535591568896104940013088637482573602201972836378688006294697031557157340103566794933445737096030304932946273860249785617703279795424574781354577075139541811942393255470926753476431493761205491560854264279012027388186203376807081503541681441066389755370825627473378217281776266622044911281317204546682800312089835624808819116755855056982927371190738063033494279314446033809969285116986296544473834147840355497869025257801393533617496948103486768850648819873343476353858825542953426209944663704345614644875646453301668297422236114577661887819403950862205167749291185648517337245577121020969137191304749133169030898886711223843354321650885368592078572841606234081915019971509623338926650191557900154632935411103580380352162163937544781887110356367846095779008412137786183307153817886297097334886192234564816618597436480818445480469435520206558724800794669596308283200906468865117334554111133117455884430126588740707816317293862251858638670389907111545461346884349014596968197033045365696475700555360440823421070264586678732946857161803172175972246109502429369642005294139859112995033843117188601782340265963274220542949776496725863883141010506667096584293760947177529141670605937295266961789249196701431908218569474498287131780128114948151320116748320745072095193363146543529858972487220952916626614127540742116429393954287405051463496993752977953748115992019804147426452628591764092186354433569405052292098110834076208559757414418973574812625074893338623775367287125571455032639747778326759272371768044654146639581075482948957552695028867294453447523654350091007684956938323940832208817883426705617765673863237886537623045475418319792850828604836243578462540275394136290836548657169113276116289809918953530496262865681742731942171227168665583526280091035149459570061039523629124744144454232370922144460369603702630173033090908130557245448793567459720780943572043977791161549486163245599595197599866051278619935528887947672419839652151635066393895415537432141293779906906320020263234322461796953975460649776859190039021415783326187574693593922435501767146507784173656544113182211643748171319096794041346543886801264677290769917234512405475036450255630015767425617081067904170759559321003466543682932529924899022399342236458649404269344382017462431327021116084273312810573041997502084751239166985340945850414004289775671136441857956433281557741329288683836944275877047677706199236904359448852348128842205973361535483345900790577203987467730511616486010096768535999147079806809607351266301861054775226279949075136948821235105646409022567756349897268951157330745200858597083406564889518087072360122882857208864282315867289017681681945796538064156781022334609542162750014690389101828906876774629698926628894396895897657440375607272785076162656232443567377280163022095581562168797105388103897042698232379199354417104983391363669463823048709298018606251162442601316142254048071190060646283038318943092387002379088345473269262831817407431732843142495291580612365029957900814023540065550338689250907431573313304728506900731637193422146357654488269119856735687907689748287234997001635022375453863550977172064527071515384298783694998056598917768243127330854754391431072747033519165737896620575207993086307890152712049206798689973039834837760612187098455673204187029165631888842047018998316106256596874733875634073302441054553921784473252720416841589577995966058324152466373884279660786030746189144855535756994244186317627543699179389281667947039189772862027940455442674726194120573153983673965004752440372196764127376205398988637051858916528946367171811198858187899130531134255222236652325334731473487273328943984364843329745922429127629653318461693856479851388090293524555806041297963959638268689485396777129136700558817457337500447865204094871869562968944411838503700285922118119433415009885347611566133684620867348737037442020933692659159778786193755445620437576900893786002110351028692069748159111665370950923084196482344416518259049423483465715301649917814350401005639980938867878499803101279256656527444354784518382019989890043435309715529481536548689932323236788258245830410625484993110877904244697138817127353235414403603554779686030518734795305032150098422713522547997703376430917243815454380358613710873399458785242732091230413109104339458344883417843790675977526216472915969294675945369216343221046480913465792337766310659954912957607118228206728236218247875260297493792422739279274252419558962541693925662301444494019220369770648766178293155871073130123512652406666372790575024026887233692876976107526170867197259018445831626189289710088928290174861157691090522497515881157363620943010446194352287167908136504558567514121332781294569341482766459196325499860647792599998856204071882976821821131129571443639503983985741614753597910209838602597731770526974528033645169244343442260325640985738427963414192197981573227136741777027533026916720006767182808449255713420298299906151626879393207476473680114321424816277830356357254812799414021860528886872090066597731262845007169074905073551658774728131048002250227300550249086214642035157230494815964426907220017886403152254844868976724735387528994847066721281515219969865564117374349904743162837961093327134288092877994256394724621930347218474543860422351247523315819207743954881188772589117651078047274629365493183067087316606330070729128062358992325965431494615761550030548917117461177063516494206660958218686237185803276502398168981403632416555878704938841845869730284078302883565097530595466121894446184648284353035996541764208754654958061119589938538475248893772131402409411866020540214966102251145039311684133460925886631721704354304757701722604023692330219923751299066584519147659508810887504388093925384413428472327131308052637429460324266986823577136090618232603897205597396650831047345277497731697196093405992860195087004194668391542603588786340454664658820614447615350729932005033943369258610957589904905221416248212555568750779627051026860646045269370229008304555998388334244326123042844296792843321940709684148937658631521809609710659527575289981638815626943704938649286030265024301762035476041050002412096618717264455465570764152787490886844263237986240830468205011593416410032478172594299388635418862982236023036123561688016079312429708214498987673995865973329022645562863923163425949588297770434200906588723285637532458597232882360078410348393021292712246650568140357739793451090772417389389457995010940420750548593209707872867389675899114580940646244211692088291351785549612418655546738045573533481704822435480147428554474621292884937722258738723968950663859275456851642685870172088356277909055639147652189800154473678110424972690682851789991873081643861013905909845890856323658764816272500006921036085524304600618028177319966440205123441386879971121275107260992729237915981048663215500319598091587340554548819272174230415241386730190214083219010492676269904894418638144031790636507185525631590476777793050926570358402906970125233279124941707730012327263530872561633188117327431996859338134413636713325248771487854939894782095357880225652814449273861266765491905180636206046530256467078724203219813213540469424959175328312682438713241820381246723856827015825532383392710162632211493360463809853309609599348456487411319947582658502474695246176511807177122239404753993449484214598676515586983220644329924857482729562651031838349641089531186278541334807156309834011460303673741831855751176859047951932658491236275750231328745735938040469779607171001458086150533708045283612121500210162429100462347712964991314743523948734284020852459618718171681337275869317843430476340716730824810865263369275682155790313241784251710232504426331413001318470494390229853624285549083622611927714844244612103865273448443104440534428267138274792774342705055938825102456438234579545082233840417310564812465071690651503066468545066906437873856177063537959122686304002764205440597747775641545571338173778359210649369315837643736815904439769587770784543377340626598688738470525633617735763844104521746978640829013491968673442988503575180237658475046914469997980951881152539668765515304729616316144776245817549729881446044590140656803088525528006477073604541626119477832469128157024387394371653044794522510063383446260769941525456324901369653787786017986711440694742886891885953393754816529584159776654256760197449776366057522339233543864469102899140481283527819231222787450195074954762761441671238878549702041100293441806394859383287505337342625784132037531269151386735173923224549807400089648387722046801898019953502045932781554639391432188735840297837734807832761887846049903964501133223699080248902893265264260105747936450514068470595409808879357136609886034468372269835775028189249429672000275748034889167308822313940899095234734416782063128336059061160129088910631055390986644495094165657051234459781360383204345845910829498403700797202682107690683463861752341467275608542312245130743838876187751795461558148871415498135953737139559774288835699380068216467220265620031732601966306312374092130786670098876198879719702268212044518636105621061456014446834335858970569852698205157822282807381968389160679360963936086046732793070064924364784164061509474790280865610228737151420377549210666751770221757099092803077169895822848869410869241625039823183779862180715905417495723486441214958453212473983670361973058494095063508959061215187501707305452146851592114342518929031058750712368188062894559932756947414221330446016605121027085770559483869248524169665707467519973168179448568133514862551705728190737522004354433948892983109415054873294057814168292575666241511901736336819193824690517324256757106043003467338808939122929002217743289155362849736330157787319799733579404060835794340064978750863968575642276952544163570121293421840777657812271882030272936898784924141200321989651602602755545855722370690242483687126637352495796643541144533681668194839001171221876983131059008563161928375840417962976479620082395289342667597165583263702524389653880584595334870417374447705680121317128356348630524036175810912901084285092563579317549626612065870128513770945408223946243483918406764925009947996233728972836278958095975932566207054623206007953908680179131265878815116554576043538725364556871399393515150536805489736970830319017003434387448207029587784346660119835581334008506127088557982022611878140871544327095419500129307476560316628349548013457288635188141246388476291526968263132968295398179339610739578094917678534465661410054990477022444293635057951615571382850401522599145524266846671634996920490381081559567552423200354264532736713096381197075454547929853558799743469404854074454109393818709081645932545776630807940690119780977709453487015192200979107059990366155745714028906505575645852166828707890519752933768850942203104913090834210489768432942343242410089725569042675112050284405422302599554796742811021101549873541338541688158967824994567368776502119880827684626880183637164313059326871780237928031795644754369344429002103917793288534094439078332928902202862008892373531776635944235690792730947666517331901790837988013171689370004177488453987189619493143873138238529544253606423294201899214448072735290845473206212986799892423304113864534261842320667413299580894604314613106543565963753242208165751323086907131694024938540774537362998973749853509685188384606687541276804438475955705382592265349490465441526655529029254401419312106951798685184464938461993097225124514546825526439506919250741170354341067650719635319280488359731439397979289005444731877552604895375438669337593310389879769513373264611948249064615221474060448806935472266784071163440619671794103045685492602844204812178391943571443040252468080896455552539719689262668231363655425396113163838537655840193659443262592332435455393728191487226518227886667686765899142883542921105004976526117702117115790067058062585849901023855756523879562664054717058358246318311692582046007037680675008306513301092517007490229263648399742927991610007491866750435264128427698760145606921681342385519329798387716813911006978128042025505673832378296964425168007530446968590579424748205628947383780189767870110437191551440524386590606030498265741038210140779044267537222263084315233805780027955467405238394817678435263064713090805960006370148964559112962772853080701001759799972735857387096021520385956497698830497257703959842274625351869068530201897168450079906937866753213584022588003733969530037787144451895090259600343322857070074477934886222094208050108040307345498077807742318093131241179164413414053799698541526385517145007345059850058181091836253700968133079072750672234817960747164594633518429088732014740906171342964984067247284315790613290160363944820337782639608870613462398475594799660622760719314946469876152348836262999324428959422091435414337267460359918769541163256079732954110780467898371377011428166574387512799782898273967189880618174754491580277827355991759386817323336653087220159076917751273190140401525898804961221239598117714272921046025881436488897893083314944333445636717255891916842305482865588148987600002097378267339747090666828215509676124978251367141781408786348206426806331633166224777976668674322780392893782324202657932609144332114151973965397330171678246608480149686900710555756033276764585118849291424782646556849997430397272708944429005264559723632582438189748850861602028251118397883400096223648549359316785259858535989795872474108096677714279014542461552970380977455282123414249549311589882589213005079216574653790115957152032583838716971881747180625809248989479760456956846429138449240460187247694160042151875962485653979999320614286726195002460008746696450281287853922043894750229415044471177942585425138240577790536880662614250659450177493259372809855231649710651921023665809388296583507185861428755711380044647135181886297214828319964364795842006475069090004054239955645929848811653211780928858552230982790258794314937710237756165659502016631043657237005753150621796659444028143359822749890321571008793262784507028427968549933056526662316164903395442616333573280955112296446436622120713779234195501925437802545076629022889795180707151822202237402302347844019021595465044965224537939585860373184229498125271685528771841436909104437184754358158587898309641805553223498363837851500560212082742826759388821641104213191213184064169865277415587134952203372036679072428447010863298364200768959825033944276752631401916212857237178297228801056950423334855027475213716418648668612459787857853853979670056087911454426303629255625125693378839547203727969644816470047315168408684486294256301565949790338484047301845179362632000827964117300412985519507274460127806461337486738695671335997332418571681794843184574717453990919226196528828615446016945171398921831844143746328269223890785344914059670485856977208837099330753755139707349028261290326443489039379834883869631869462746745455027548180946857750076396797986937727173961687970708266872019845390013254296638136055011021358772793437692763979021365975350494791550359054408452637716872771288889905867391955109989034142405605115656203401398547639955305662051956258387515202964690045195844659162671912227783918052372756956585670332373096973354245247952048117763748228986479198925714730270833440738444399949791863891866365575237142944757109793637393546599464657792661982393996970207324512677378810395033871958666895248432517061813403378637860778857059736099900446347726636190782078436223278317635804941025719447592177468621596632807088316694397600462885088210593712126148380559698523178585071427653118733975587320615944854324436637692050851371563472960135768482844751384946427449895253575702878739464010712704644656969499635570103205724544404697543625385560759172640319689468395120305456527751613022108624670052538877023314736275462814547001966428534966418618058719135983300127777787469247495573544605085657602180479236460624186263902164490763645372638804072513733765042432398053524144446996301576323837503029949408550058919366914129834197826558434311177451214840339652445938502932829595990849374388246575881739323703271929320938332634145569247894101811353990582813421590151828803523651927535635192497314243765589426329237566058113215770392911647504161508413324806956176740312450134860743692466894277599336372678460200873297979621187383438718024358538884285973768762258586851441372295920063975753829480667675418976329470228298136420469701872137153955461868287307860325080600540025112141782432416544339783181523457961293878677223760283403998953223190546281808442576540709102680213721419552289684860538000225200059166575595519312955741674768623056961377200277015521370573681980276745689690108287694862903504109781195428862936838028017047229092331278758500423913916419426571614220587645516503127144167388395706161544837272355292525222893647338642164901167237779193228740256867533934352773435139729006723430200536796976237070733965451002768385549160630407156716768299338758190524181756737552312913795834474367207944756090622252745409817681646201347765323943020258402142414123374869287181919711386704664681228744637770652724007565055785667673354968699671558185519826813818951071774795942677041900655060757838789619626972900985507089211502338348253623473824692272488780462991918391448991063014464578145326756454116831958044833734144916261219968090800679751715014980420364975528203243640080126591770552349177897252478269756990497372945380384526997236727452359052998999611098466924609756530640687417359706035612583796385062593375724398257610816874471997902661472920828308462342463055756140157541888808205948753704686287138021421432165896588725891349553412741676365757350774289963804237048247382934598860018036238551268187405857071778757118232809379050993541494070559238117335045742089299116564826797974912987304469388374598050038142842277797346982368973999060636494764174467533256706539812567564021488462944521104827290300333586432993196629477724808343129181034208813648453172135092617143773438213626172316740343727580417272106704432138717898518205474634232798921764378403286506647884968971720687482239727897843226600182766340314883856989001725149641387794649211496479716093669252679611455772698816327582969749149561166759744298154380323210663968231850385615877962167714169479222035045869934505904651961369300540171880691817073490702329374351346052687534382546907960809959780278479746339590482803230455127566369655842360996906559510017991593037309978646161780502398754938071414558791283161725142839833898000565408968910926405367261599363868765214173578491681914373138778683702775361305247654790159710895355221060002989015714701661423170674402622959524572128787381576776567393973816522363219852857707431730426087714028200347612769740648415035278012047207583489489245576823972958476506466572916489789209736122441791124836701438989281817069328894540172050887457320104959336064025227528942095345427952289211404079385299704111747783457363040324443090003477683429036764870460846958145177580152071419601196111640161294116806530771462593236404272718380090630030511190100750246997198885331201914743387140699745861792137345583893150030540692085712770565442433432484462412516145508288514416359834232159376262389449776683249630071238779504869455095677139801706902284454579782509430391446178173765901718564872749863448489191224662218031847183215337069196773348845141395315728640858720882383271230061862231819822322744321844666773375719733912504816452482598510229573648580526708031498416155453708458655661942394262967637078813936887285134086289927729837856331022219910255899167284101675784238561300136487849611343922130652797858092924928768388655676924877189491377943089174754737031672148127284246271480131300498128613173451349884431509379432595668971372092970769487891903841438680704715220226666817266879497951074998157224166961176930481592000102068412408629102784738876882468924522203259876366824185247659953813892719005675963982230704689156426889267317895438379034168347427121161310789950640571699828407851516503802650589734849062299923038409752133967704472049048158044688905654768256385937668857552199417602282503484174966192313999045731987310095276958694382096886916979173445473270108751173231717976602102419185766546768008339576569434497362753772038291912365738256433057694291906086375130242876495212059908259381789081247880978737158617165748391859819160085326379970616880840603117116481352740611027468709715036225799586841694645894881751634567257745496650696815842552123491374177938677308314191745627148115773701215368322676135236652137997024612479872082036256368776947527824695745808732229414682435134571537284621280494877321509251615218640715326803403011983224398333108761862282476294661076497534735537457362050011951157226243011004118922864614589058451958641811284550285521165956036859891862498434598384965707807644364761633742408859227106966311117422953526966088124874801774635505926612810471316733698255666479620973153089618605990357907002191659262726437373165044883112907022349993580434138163690213570406210091372125339588287865513704580764810172727320312944476063933488494393109048363213126751681583166778640847576511869980993784448570208620290614585542524410730766314815633765988196997812353721338678919707208214840370286359056979313424625289642929195773225227251142477098302255580641156248856435599935873348215008536412592228183475916666341871796026894338092309688438689585798422910996600598105114498568608421383973107290734071435721474474792249197584549854456175999955871985676541228032474071221380317106794995278048407426262494309665515331270159364330754292140346766773129772459942678970225662017951491526506100305778709379977436141572021210259969128498280700299247789100084590248746410220381856744722763018656931307375016111244144225730653259123444765044969551899015054180879261134657388840747287816472527814634530233957437711196091832785725603644852477905423176766946637444241868567132124936942533058361537247436498421961054558870595459373790546672585701314499594325736964511565816539901680453091222006506911237654742735106565120319172357726826502130814606380266953818492081975908534526284255266926985226115757923408429233965382428766831220820135915810024327483515732498136508566448132134859120364610446340995050747504773748960880545983629846306454777143505568897351254312482777251342027929551499606952264286499535490035700879393549928108768610336000631020323534745279251511889460307822138263997504275573162557255339042618082805709778718100645992492486715603351040825971310548996554816163442533570271021859840270426856398836282964465499692493846526682720351546506186316728847008707101412756716378872888262910155671364532976070642745307144705754700009576231491504755095679601727531281954622612736832489395818559780695173081106691745870858567247401926848383725741048371034001685276711731913015947857229025803953339055734659903722770139923556826897185607893396990489711908277708055055399159953719307546363874397615748900540034214231262644593589675833557856149369417566641543137917417215100634837752757109297959717596418167179569908016012173277806482650420028302885955330537301223624690176447354944890545603979131774128968364006693400688053557837782293455813368431362422520308233422820504198322253691791346365125432293188009933849710833402409604559296116987786392274231197145733613779547296006741427999200209630600030614098133157823462780861091255656704795783902531052588957405511328997495665555169221795801353615161221332181135249591803019081941585349866328186443305528940985412768303317978017692399003311352561860530407454509947216048125335192108856491955544484660746259926945712830420606989243781207080038453876150109013056305550313600112898166830795288332710065022542950130219529189130816982053008891835962865025022957846095464833877536135268867971982728796365987553694784907143025907076163571259239501049812442898044438629890306592195290685976137861764338665354274908130658292014279979889828169289954231321570984562426729356431024310588646949804675936719819462433752893518699179461412835666319859371990942397868623782514576997028039518586207934916358954188516371075651069611984682815561416877718064317486296862252017606777780292084926026058018733859271898520783930731467000231869336399411309290719224693687368186597586015133528930059326211169056823721466916014969702764661914521959776670464856337199126939422657458964739270321519534740797021452817045654178128190714026967845363180765268898231017633374274321196338937290228637694435662909859210465418990788179587156644298078571697464590328981569520965438072853412220709072329695953771176034470854295646367022004679509308296294599922853466359556380627997611370598419150251734656692173391021392748374671369561998114694612848626280694973585354544486516098025117818545052910311656306166597447966333326695077216124518550521479404094928643298790120383760198155894728861430201750995494385963732887995709070582654086726375294185175526613535349974942288646713601470222257587729609789221611337218052631975530544351083300587532424218939066089247950164963147079812780092996352373121469674657936479134048734180696465144581888747763841887626779828488815002430329218006865689064782555974991845251368704288423362931815255898557988252361429771779886864190662084768690879406128555171126785466566699215135842256771977808541583071992443691371993099550294611729483558761745576718207258120415913219619899596826769113289255250884406732222992042068527736425307766392712765508320260738317731266218110291467572366454443699271185632096758802480067801960085221245654004420500818611272106511018279171368459307194346802537818735975709266966109464166339891104078010554221968969880559301116759481730046806685667819400501423199841362658399173673558794269590381462404791848482605984481187832410569879096624072923541746731847509190496264609759793563389788408358369700052358690569939473813167160788677895588753109440810142668908474513640774235779422040180108177680481472399029980105447553743296013049017167029454654856324983737497540983473536976952781802482995560094246671753247002173680400387232331219847625738391059232203635488493653788987346110906301142659634138987100329289565498123369392279047888415672138708258894907296403365870904757613211146196376141224721153795445900415004471143368683598524833990732774512015936247442022465111589103639685336942517705548509333948266209044241793547227641692267987528001739032603827631717941587606907709574835344386804133837692476073421552184315769436664637630814082897839765207406976452366214689890838246515507162676911901070909741336897401550420319786920067783386722568801118302904362789263515490592563661167291432488730399005228598301479258354786720258790406696890751237910057515126918503669073226827290546724579181754763678359587871814944806238276573370489036733185755815565570491362181800177592636011238655203256561994467641394291000891602223194185818371902664627155746328661243934251466622577711004116141401230509524809837631404575598041543249245859941751810930537515048348760006430700252175524020079417508870626454558600750432399699162770752574166849379810626888023102831539267183030953653603651116495147356133222229802307297939926734616074054993970371741574755580048400197288176165595102001076844440507457124511413134022190008764023955473168596120105828999359604702948791918159817059495695132121273005879239595669363143858405326248295169053144764495568175907019927436789144603089622336371152611654751102016520335670181997477089249111110633762556198979236537093273450261405681779711573062589059518938203303150775062867417058438471880717404839376025067279149370265354702725684031460938105771420722079733855320140090513751583053256195861015027512267665319171921818258415570025744455285854677865289367768851273682500049558372188787676343761450508813659941930545819145621721449226209434420957291441451989803060644979661132322659669861427273625595159991849388692255030736659093939454904134597998292235075420555484793655499251876216380751237558191742226767287792557180086941694305825151244148338544263744098656613224009472730449082262204076292569068458633593192855404249545494301062836128829626025722139028158551691250113023503640120361372612015123903998912005037661450696400861284595366988995864014105173375553454353008537159085433063268485551601830157499051611400502311967226268888298027293700822709223031396921500571572921095436987757591223023528958900943329295263187090634093816653978266375843319868932280953698996137877524810510459678636529412817370133292716239983794940957751546597313492754962818736136415111973071898326054342636148066159544605594728994314012402908008907887524840679535286338785326826547938435705328066621079036084732393305863522055070503801646348416372972918486611642315748427513244919318435091685476306774482564192443721363278283201344256567644232725370216013723877865097585204559186868513667708974781136388806171099055923930122953712641587613439152002856467971282173193875073158930135495082898748388474124064197988983650547286009799766260011125985677448957460101864694198937913303536855936406273772123009810256475906642871793986409012604232766678102721784118434219876794459490503790922455825955173016910516136099626037685568663383283095285142139309937024494772324162524239786715722975074678256632315621400878307455786220780192257506503114590217112048597455435130820655587777281243402452702390419080254105400349849481738223656704077620322202259389853849289489819915627864518089231295499677515288630214898299391881166371967566305621524942162617355171168831406513971824285627508543232345083044256103749163309525503582398049426097063392855574927234536023663615360714324970051929378940384301573076120096831815603371608021761513215268746204117842511708220050394807693821031835426780197576842250745991193523985099216676518321272181578714345784886994277780112329538801003748495713586100116041359542214273824224673893654001139281669210362156999779984936193175940698118526946884972584635073827234074103208366225140279578059874125627686568103892472271599303034352640450784859999301327938827664585342214048698638813462321581708787929607419650433688507595080087849465511507887603581622271395213368905646416971637005776732866711054917361531897555206038054755009180869568784134099183406516835826119876408018534319601026916711430273972263521090892237193012979170395686164303025171356162938614214414509803660050840144813884763705407712663442831791551034038938487543077072668499543747225519581410173709363762214598232746567419269519352510570309455805538016691490588468558252336979600673055950689777495361367167011684724098521203876399760952220634016222810690532060794189760567835841517101327642672083252393370905232578142163975118284134173180483579609936644415112060940799427270474244252073855715668681550394458883504993489860307286596940739766230753959061604162627529949863399804461879096341463600265840377229032234835774992271431284209029186509769813485351096539893500794630776744424281453225854224150914702021647081364692826951516803868114127083368706452891157835554044670344459797617393755495015263669951595296003064990286258524517676893323483221982455847887316553281389115112643182410587538689551815129380763121156727921925000741650093710111408168800238104399134467539090303897791972181971398118238491391243070395732946104172874375755771313540874842858748268960303904869108103387719915482560028381778556585533360746184897353686441775353761081904565125044783937381476194165670902193094858798692755987726795746842402184889456825504500614680805676348862507603131032230442496834533156165443800761060424271977276517036877365234141796629651385179975033428003354026684030595451147933899191976409788520954481079918664113065294662545070133964335092113948113414449049761641045989810537892506055114537670193106363156755398594528453398927858460094149915272799197734292049593422434647610368617760216285763031085721104153277689934656335243899985924146876952243574338320528044808578539652319245765689098456056440228462138982517270767620524943025114210444556984730199160189007423765465820494738472715644829537614022206365470811918197678748104200110321183049706159492869540676505135972083536431485056963195337286984955978542203828559926449028544447876229381996365837462391994028084484468971544116341010145381522351860447595971109300210723037046018171754345968213831684138767881090949672088605717774123739538272593498089811247386365895220176700110968065572646201646691979388439821120466368670053676406164603593805400199543987411920465245398868593370108751238153770596777119386794400236715729087125692855348798666598811505752367289260541171934373415888301865757162768761472806228354370673955566145319653063378874819516869571919279295610026523076251527560218298954949156545378646786589300422982109940312460405182917822162151605174696427467632495640283341206398924511407500482694632190067910271300402352930518257093922513526642151235123150664518876761655135939591752528539651107782440978760577224430992594114975053538661225177510841359550554435216545673619389017794875295652814112392245811022309904645258191257598271138849603826110505296499365500554126169310221765033573987275848954004849812836576971177152112733497339453928842364473144062337931986408607107230902385485369317007900240114602749705699517017427210438505442030312788583568425031554386837546658621906017994177113405859232569615602595604971116540817471411397550967903109124989335961709463814564509358101193320764062694890005778943421184300324717538795178611252700768881058012901255735084955193575825162651060286942116695598240081850678847617294319646854014240772910940158824622623174755706549978767707357202715929876784559907650052109597086987273555221172907856642689067416048362555922782495466095222560019811625733535612754984192273809373628914751308961392578807570567170700263174711309091082457067442570115541251293059617345233663071804124036852631584758036961556944762198498214882791960497582594076901686993071604255878648015335742377622309760421268874444080708954380696710440092248628690219011421580209310831657973119804238969696553604486693914057737668375110370212471421671552360476198268914135729732007600638096181214395873481380119790081610786526743267734364240391549157726047628817726071627043406235110426981756771601255244929882409991127670038231747763348236274756861044454061569106782895088844487940056664883457576042021943590107419258631615650563752384938215723369730812128514618819435038692812969065107660162222572831076715280663812493854215322332911166824027261318306572859663439093996334703826164938263820397908790423137674767619175207530411581202344100767430425020384914394614909552354410686916415009623046098747670519155960413598582319665862740872751637410063158883789322016025065337138688070746995205905533352453826956661185634027260239360685565431556438785191959197849208777776926697289440912190983715939220801571588027357914733476524743740851486665616032521137096020141279228145272004762504352522113519124287497051070126965784324023324199417970495853937460311091439724205017296583787143328293558440727415484858803368259229308777763462241315165227518540616133339365866788195273426897116787332283169796764066422199870326236809820303869637777061756509569161265379301191402266417184825817600066515757679536996694146886134630486297518655850722560145023125091259421484154447491605085703993148887552765791977402294256637359142276374387124226317862685775997851688753975548190824394861905233388458366362375170145196619680338336949273327504510532724170838231108736327194421970838274429394685599284500132576768456909346122237112246278841014868986101840453832031593861140891933479823582296294913676652668940544268465317258653283816529175495513237295026213519050510915014462705212213486752681496758451944454168927053852472262700230676480682541478580665347895247869444300838735791417346280751990438405447223283647501841849983873924420700606561747809628525993885013026023500713972787509364120837127250610157335848047252362896817622044804596812106670321337517083405651266455211821280612403846843061036748386121379165934124611013172260764540628341552196298960722008600978381826088425739461129569683923375971235477361484355578652644725551673351366149621316442427350670927433638871415423704325596989356360415359657339879026606823471777675233674969394181316211741610771886760721861138828125400010168179695552380494735595494109990500978710799348741776745637366833399385557562210124883009848395110332676155546306191242153638590446028831477339088195112624359255322463948162969988888439078632769357290784034598311523522957760953700746876803488051194550515287905034175550001443153649354053751843277469103777929188957592203760575470949141816683018620632178937138602250686233442453175513517804760108374791143779855300311874770344294928933204914666539311729901128409899736981917499534225624792769496448315886969838495548384351810190193644736539705303163021960016623311321934136523814934883645622526142791623624138939197806539910996045884949840062947310107261043635977132581776201655753386670223670472473383804690055663544552364036252856792416886588012143079291425555784107154676403228296461979156261388693067856635915788752585962944818907599622684981366635937321441416523064087848214029140200344829796177430937940898913642894886058558925784375130521234429433996400292782243572145515944048626899969713772806753657394700518425941827807584869071152510753733444970177470752887659019278590943202294862330718570191023043467514014139764573169800604027205884752338963679167901178752040968016442852778238552210144294328397548979071760719200316741611227907210384161887403722034980226587969876889265062340491876719632593428153772442218869441199808600096415411625686024196119264671372978936797063015938043521314927478018481867829986633959282693714056783662393867136008961441645004139641304493710517671900222264419944594531163628486872690791465788268434785966234756974817959978348032531008830141131392375397193841483651658698775072784909691776516744515378613854869186623839575888553786368120891378525361890361736392987766320949087891081663069675891000827883931765597379787018413879989902200225233035685570601717848121656040769371987780071293770832648572225293633951953440280170325741790301075863911691778934465075572091377790589632650064262359971333126038370036284894030099195272569419936076347976489312710147228278115277129840288641183330769476923709252850682715261814600098409572110706885685206730265688256244824656123342508925756978541925928256687660549552875808585815193815772173112909247142051799297704878513409295058143310782282615653578595219883399813609660218924964305944065518126271257798601808586684332401852496663318803026854898243453945577089797762882790065632828600728438807856700244619147140490533955211183764222142251974807107668833587057416067881277651527319542979154248800053255441129939611583363841301928948126732346937810352692721562901376174808051318058855258594448312465242573176114758921819290297978786944810918761572565547824825245797723203633571089669805460499841519683695664606649289895943617598682808111755333124790413843313507982421562926209760808742679931420459514836949403074978346312717354283155407600389295711058238079904041796128729850493476941617715249924505931945913824554270372375778525967450689855253164098495776230194867291068176849619057112149722897551075307966699396815118566384809286610170782203658274991442793035384165905630805810318422294315057522705927874491879697314392964356316003851794437636382894836410412740719461902320247799399771824275628719539417171109831430247948943680311815622913068276614759813142926872254380071123308548559162893822784291248209822814448799731545990474052148438272929216516364589042880833991868206374973882390153999272565654500223348060069299107327178839460536372845229605535025947186680780895234490373328505983999547453399205304432398069658810266734121574865810820919993266872206161744017438677370434695777551241547639779876194370145923021848744174130855933222739035984994380620223940721707921488654098554693726466109450603849224265463348982705081706513482609192204748116315461016007629096391947931421754523489442404146407513643283509089167505009173505829722804096271304131418675708352891421753103166244367190316784818618606043209388356878812041467546228280130206306480923677882464406777660777154175093300255557251039597008593492150438025277131655025271362604113224863527329936854148523797100567125238811990328025517688057144352029013745045274253290606538355939728884361466418302356374990870483234871172287226286476507978284365238230569854413135426548870710601250079534164374778749312389990150888474364219638519842229313254685944129832560292107518530033922894152628289216477127402316434022901495493362619715384850003249421680287041590391791377297304829432570496103448182605316261396786258981832227537861359903777513376180994077664291875746015603107377004282972166684516459154041512555505796828963172858863980583202097681094606674599531357079236885415480163651653123764684697866061535676714238427142873011407118428429747441497617218906486784683107341159526265184109470448330959276733176364247039666115043640851008352698626791083165197560243256211564106885652888112991937269636448117012100401600349241404093203311735297890900028889783395423457665308148880378025827258401908050973340544458751956970521683595821557998009327799819110703858047504393841330346920907405167768770672254670600044455075142308920059725186428200158921971868590803069577227767778298701367221115524687499182064982335919555760980921952865135223203559568485218002262644202597131826694485586126915085317539744394733194860970878886795901680590180496629387175711160383463760366474392620764301887712433059981727328645056322413749266693103419647107071144313008390647624027585348791263362415786477931980326823203985362827263574783197035697323611894925668559387202851090973249473266069328361674845333003281449308277104179986051920979115434840740211099897956558506589166064837725903272485363950722422212891808348093903806238313455841150487176371499343816271975644635617753118908930476886043547885166125145312248086209609671927398449305268227496270550434906185822260283087957192031176391074424075433343372254368425917595750189876328182092856261036586183444112411070633047602289208187898897207584397212959282779997019517864984577522191401180707400197562998182117778200485266885454885747790867271541007278358261114952264191019901847231602159511210609899322589628571533096727634958095578167965516796970263989187511722760981723927003533305060338238164092763694917437962208483992367988790041691493418834651299604572600450836013007146765480252628924064981621754505838918020329735885284941498945210273233160926360006153033184560564931875635673282831002701618150366626135592045747174437294458193407037749539943623101872706708958685614223463902907095986085327967657967937709541517634425845563405242868076627803505687213953329202782612497083475598135582087259751523910447749314417160060841879570932758280187160487498920489972204376367923167333798383485780613568569050347280624585686583328820112348496419240204518578858039731057876343617507022282264600225236821624449130843360719377304407701743422651922685711175389077345447723677120712863213677252405305102563920988336100333055417955636545132957127288287989539283719847475903425610087632159932596585051738929913383112135435646303606398386066197486986551142022210717417651131236814881225925549143994177134090911067367810730052414584302663707125996797656426354917852292014370354532865610042527145053057371705399395050003184323720710901508036497424822615959171891106679180666809761824823467478802598386185590341236901832267018536435222468012072156466370206706769549609911195406300328407958472808896478849135806681347181069196237234106977492087708427470458281278717778435292576253438378039949400220754426443178037998253251590776569929051912066829214222355552752502085328001175148833212802539419390636075406166830400265861629864475738207970554464947965900044443885018125130367913033239485621293669905859781533212257537190137750634177900481045292940066306779660675957852449925928537939225451016800350179898744438509098140323854066301716913005751612492366189178067402003735828319140884455375509569052199814728774562602302558604729403397164296188861777591305561765168253644233933644808344874368810189740991036280379790521003798654744601987533255215849905890611418728890725764352163069015736871736078727960240230967143654332285058134372178195802936002152805642292571030895779646677151691097053851063792309065977728836517315923597595251222217470600736963787513408598454303071887261307382001709100994522715355014030435586288733785120120049263542864208902331590866721822576781201608637551483842634163898626988665713245262104201020157639278459368243241725011740559008514989084727423988689835230078844255708531686229488837317704463404149601127865672179388823976388660396360014496390054422978727007507301195666336035693918321143788905143671848155697237496184582839789203096145639035920396792914624562979920362131939701195697688656842830989292917211992874383670810249135553528324243562176026907390188346497906392654847289949235066979038672103566397126973803742323159547823509772523496423861845433012440053353282588043737846074794634485689680263191531271939840986543472931715912968116281989819935237881751622923220916856844245001610080103924019528605717526223763654383658065170897138497051448080992386442068228129205645295199221620603516878944227197196200586657418251043456901214053750215973315777234505151964683610028768022723472746466772297517472272742816287601414480334758999342318862632800734203309906414972004468314779417939134400679329237445396091221643214773405963634768290308390338583305471512106532714141357978215449594523769290417431493537334796765357464267003693662324097382577339743789642729646547672137508576228443699381204073035463032761276255284565134514909471610112316141268071170581211457117751665150369303065891731995053913964172560276264535020834184169324770283479417961733025937932800909142024775469944614046571941030099194037127409614353149385523247692313038628337087205599752459176706266528554537983977571548667977659395399655102309603967109706699828259734400180350219951955768761229615231443412253651322195387441621229734684805222999835272010455251328781022560165587076297144291868667682905986969671346065950849251165888462142422336641178981137024572026680978743203057846486723275417823114819501209061484604070271807302940001300661542448069051255466743917342392754834908477181708683776515275213961084822385135106342015125908285590278672576385428236865957704678034182529971749617050280068375488531108924101373757020643513610927707713831258632997435758784318735595941442931625548894525375124350745943912728655490894835629023870133450211914900266124856729956288926760897955029912397865523059287302182344043739690442771882982685214392052833187875659706827423192976142273723104868759123277951514527252241568756948225260592837967715272652072949466711585096989582299663842217184149410871527221955206993049423487098243581278732899876255871667228107737220331963478596089257580557261155147432630364211006930477826223798656477755607102536086821029812266886034643620544626889599322072288118893551628883343521320711839765054434734002095693749438058803075706525767886262493284262772553049454908282366088330640479836033182566323513679033182367827474828688254240092657350354574738821306380207160981172421282606437814087523299295471963536496047839863897394518926212624662068482142910854361640248747743765727933921476638434909367610702072217914875964852127217357840005434286513714503675405116895392783809394180094188228760889857012043660440107767794206153129779240618598656318929925867672026297991679026251004204730308873338775848243992709959752781575274958335126553849162492631480941770118810658089656360425426786610239466231818146431898997804298575477360578166561116777005798079777476108310013118737910075346412354622748459521132188691341333741883358167029958119030406474057511221290632397904671603664528868102983236524199291675300694657594976369054886938238343438629596833269061401370894167648161264858051364094272311679312732783553748607864953566254585972826408705897989065127660880081470914906264645193211995184589438510521450865763844264640859997398710518873522686959082758468822247916935151164593794380742665912483715685656663014574584591119293921003636165572087042844404229512588391137250243175769120601435205814247527399967090936988211272622948913408642614072328164799641385247685248001932276651711296656415226995515308492196638947298982165332573700705437141469549689957927466536987624754607498482306003032709605333381217671111135941113121725055022064054175936264423541759970752533343976072913829314948192165146075370596523528494759054181689613384080574443230620143186250902548991175195348871292310118597145966510292946782707580983821448229024846792178685048162719979206532193218902487486030522654069252389839926953044164913781877531049595951179049484188108085084865539074213989955451382014411448544886583113681784562937044425197321316734813430586394181578045157847348478604083565157712842272754495677445677781031455327677721679966193813943629487724413365107710596402727136630408829161326885813876850094402198049133638113490054583480398730470661756702603661156592765625845497050698813539221064707192653731733629904725952580271947507002769280994684114321895664290068017185610573995430420435971264496007130079248599161248988163354928713742620376441905842157246202782176784372736050059476911266909169477480731124800148284305135728412172032702497879533655500888545529514871037058971183203200566463406055443747493282775346892259250450332761742951967804965737112426225899089921254595570384115588858203986293629900126321596542403547283139545917938693856723160631008376763352639410172847507192487858569518978656021232792084794696704836345776475832458682123739605564838518109757149985857999299824926446203208082056946071063575388520673131061671333735843211807543623815559522899542046795720402416406629204384909382568217080616259758060071379855687922493010094491591587085305272350800565903329431008054907039337167961167816698802754720768671296506028533650872103891429137693840616087199506066524818447765098414311372886778008727228822107888391816965297887995528026252599400258985234142504939916806416617466903526662567425429335219710237128037723313445112115874511528124546427255310238348036155320902292252650699838049933413540148061990427419534044207994995766365085783701434164309841416590162626983730953158557597674261005592112683887552806162125167506123811117307322468029959760609307371780747746179517993860766297380439274067727735353496792585408100691315718256303221366423426446799002174182410050322210355505580958029967648042728638925403278918842999369888630079241932264763585383867481586312936883440415473562589395254685140897446865140808719621486666447736485111576024687249457340887827453636257262389653919077167840174889656638921970124095326511893194864701774869614606925374895103149588796492125792208621095254022012047436632982972736918435311831752791887835750571760049256660078025538022002270587896055160391134053625817235484386336967698595512824011417130432032152180169555667521284085621934048989298323546827473711262120281445795797329392942953709396230932813326906141388891710828126621464953202081264462020548767251952776744899260245896426931802646692780929212856184015910562056619061893896763796637456552343260403467929680582955693494060150756517990370442069921573773346626482251397671262575619289660184904855392233849741147094478359176510021415117124957065635322756246063877559383881369536802101329913816584618369252470049855849415398639080965404356717095327119961733058694255639528894733071954761077927187427681964604829534497594161886333205675717008424837531541992414322700792441463778597689922511691381822922968376700529369890069522534187814451780985411314145635417689382222788837369635168250658609097530644969698089329030550306569289092718280728932107222766156764542439681511218733076132718660136263106556377801092149637541641244645415981964745033538833943627627586156813861100270515211517501670104504034557101036101752223432600680687447108346921437636496319634758639488263771588484807506007179463925069261720775553112012618847780393403403179174376042683661767970732337139855025562251287530508440329416674775349197852786732434263383380402446528956364341448265544253980750895781080352367804513373823318453576160269799779788144542984871926109336437702111408800231714227894367758327522344454948954189688657373074190491198988970656246249518360933680761446989493305310907919361382767614892305267706288399606073561265047455393017326820163275497687910817058828885860482773009847385449513913428234979721192641918319740968476394492193099716260675863477114032797427350848744764110755916354667231290145087155151951379640094118660256531869799731068205453496839316125721912630472180939061114790500806202896133452591811000342645569911782193546435364166283690123023774410770248463720054959429657020666943691822226912783713779965475654682265064429323318818817958004896741031584157681573790790966463077302437671256783053941163733167494369179987845041675137211757321438983420078503425594436586727597863994718334019149798623807326087642395635377355368939203522604334763065652532309579705868186813759442469196075096834084092632216715810605151251816181191372446789445206539813269252833791122260514287973073420592039909421264392411775465463835488850652970085762347710367441257888209605015290498623596125516078853938858549289777771039916859760603946575945592490961997364157883873319509831857758936572756520490403200909966732507972506732208788004916472786165920818694228903152540772001872328809175394025322281852900974094058383615171209159684614430889873853636861082627496971042373355828269771169333844648784743889945171670184322455270313125233768786892512663621697198084726015302808743202072120541026552676150660157519990794657392883810834039437463413300244188865231612770367073035678741494615211135864068238209892293765254622134018945741940440492904200187595055847184448370267157607185886320955032491572305579755742504669328448095268790914082200699264906799327554660459068838533194753603503334136065467643706537807431683222760199991303820685330279004658324232743301632316904498711427931045255556464703025517439081554743923094882605397977085231544667000188475691098769961446066790834206781977107702529627201232481483378777207511336967435232819660737930884693413153901779306780709165627759904862988052053557041899780354180252063385204882034534393416711138673179283322414281150698278296585965460105481174877529053629527148024217932070250269883746477022204504629926032338854250880743632715032124116981852520298391665359505015624240873919426528188789904566671573499723331017154339470950292588181842377732379964290570281196178251294664482248705147122831647181932309544919873321428350525775057857384668964763248165206567349475385462982649005020489348776791631686534032190038830823342823799087110846818145737705782170631686903457290624384722487836241591443869836228883423356415016918409059959541742646971847808394193421274452893594594749279529449796223319847834427942693396710542275184413848137834980106767493951746313572296141178643702953815856393841198395142659351773491043546558006551676356659355408805139221800332418973933588951431614735185010527507820763140346259123698789814432490982473888661259875395527961483223637195473471682942542949674911760423838227325680480080975821898859989460021887461882750671582386400288371183564275942855297169898965677622922156965257725010063299774575179992951155542045400701364106571445934896990482882829391518029044035052162912610776605774151926478653098762773743286883838685631223949430270487953729514671928123436217771088103890833539295550186457093304156940677501679888511091461724512566732888070122600526386103512257805841729458954151935009163492842872668069181746127609318111483294485214039919917967037593227488189450084492045680893826834809673885884180726002234009233743111195995790167428581114315489614406217102048531463519373218266965424158371025109474300740325189990865647158710636245471919393912522740273458181094793097594269950445117543755057139330483730064660963661349475173590175850744586098189158207789185082645896513405228570132040532078639587622845326291353955614281973277822869167233375632404565536142743374452970087776724171767719555919821214708958539134068461847694680343652053130180487920644065323171387978986315145534282226414056321120608425888397590364580004479749383868483039279187446560358889922258987767627083881958018725940891857484236473262640829702242970513247676684871011440815996396027986887870436554430502601326569114020670468837660651454905892946927260451750277791420252398711075352258754369658971577521673966818937343474585461987552069510088790096025919789366859314482010942322512739549378153397773828357020457675044590874320992410907679052709330596516050165587999044350548678565621239738736382086535777473202123282108422841800985794947257596142679468058130954959474331261230499811226030155146436943420343138282257765715493343428065326093465949822176922574031748105357267108260386071163882448825580061231262580314561605471205269228174975049795616769361756820395885005428614262399860791782911654617075978368396878643288075387508315187790334064210631055487673250365162620372738888370887961487457586520239128443009632896171647736728138308222129236189361074447533212942246007780497951841040963799598330875461291507063461749542306608505210495284690472381932999552907757179909938286197086499401747330618309432725236629360294467112227692075304652043823278328531950736298459358405841333821132103761923727257802512306057363909933109840279596811072932095004858786377554718409780639581828836296716659221902119744137271273675760101802999772063889107993264779125856887965370277922578663004828725228460298459071600290425655560247587395716699856295068071514738415391197303713260307774835742359784173946890376630310673948620413035684815575574124413646115176078100019648191873623390005218925755837725904572248188279744810336864764523356230325475514421143835884373099669280062317302642928928087360747494745968294688429794741039252970888415385863743356893255396658539901376613498066814613935633618310492610399240024609808625318023193853666674335729822596958515135809620710135831131273549650192221505661747432515664695195365125937590703701030635726324911127254763389538309551797272119666561553562088056756428784836665833567995981276240166703387822100741686347501150601613709210646264540211686485932164115896112048687268018715142207778122268095672575052649914601053387697021683648064663651202187288746944637101091051689564261393730906230429560711573281313193924031659410069138601637953161452958185199204886606869495819502647005292392674529096524789595200545061752914215416280306607924534053532526260975990702274480980969120642761089247839356108472272711057298671508995593487116863190697712401818800580677988617157684125467817025495378386927623303234810188427006191083133389079392345043837579796288552464193683557621836574834728516270984534683418905667069746261525118196618041511996144733491890630930563321687079293770795401857212843642584083116076971305988857887979255828930466552155613139933460624407088659266019911388669775153689908084870716120035285044569491881139475656989784822429278709793474027396117666519068215940605206262995457978866421631548143075487083765915482709575907003148238344473400120915907303559238707875136140069579040458672842428436382885950674969661299717115532360723873619028370776398564096837852819092322078980058613106868325976834234558513846695893450179744581750465089680784516756585322723897262405632166890229941261023178518221224672855106161992760282775102680099687842393598973259217611085592991669867683183562406671898041781615964932034052450852486903061484877354456950325456789205583643331193166709948690273315391709384341197177866089160209602455733039536604412029710097172845556967213754811177644256791462158452955071814106442773106066820876839645813603640504966180892191051428086596732469651866850186263879248694942047449770704152845209264936366211026079275932651853992242570658455242818294854387838280314401794024438799548459564988297139824067491254233576657365583089171891677368502670818972333155164671456645329235054469188710225016759930879086471008896739272636369504155803486213985800026207015137408526109855168017819646295812157580267670706732134355359155375822017506242369644405583503551246906104292185357724676331478693129890665410416886672541880818590531573781528699898225631479280898242065476591122035559820789863351686859571238566555858890691359991412508449106985065404262899451934516285153708545455908610250123985196911392166217871487448214966797439505350914031189587417832334984423913528217461082091446378981714160190108408680238838846919182392976212870920050345033011920282269840017619818194817135893984216589875577379869270315471917211023230286277790625626690025132465858301288818635209332206675562720371037357250500899958579628884395790675510838828999715906988743806093120403317775758985856609079445434870039475423652970605981163362878057381307057090485825189016617979011461036812096701997176306291496043498595174481967013961840402631010096729003659801528486916829739367728573568280140662537225901900550001965266198965229079511620086345269527957046830792787268104206501873038442377492600874890348545408946224425378472149394290124407422823789804803798189697374848011402064809525674388264239946358985272106278897395624608588727781650780136848092574568257237329177512435617691121992716471583969163311009267452492735861593813640203661991946435363359259381325434924920219021318505063003175901756900744067159575938376875729619192064381393025699578109002229892337266454114539085010081124309157401372697341581052221412194844313450189222588229126768156483313811832592560241496199617730453861212973342794009899984357955453946377027421018352925049920295395484378699743304424367817606546903244232464760504158980655367900376242572548985773604841863014388110320709829947532201177337992897047628907204515215080881339479296532986951965367807474580294203727839006823106976913341785760952524160454930874286166989093955569283151050526792097485766330693945085579616434051450996761512767108749182246631411376159035804729702754916053423057516488431893453469277414882380368174816121025200156109856690557716583581344322402156231222422654706080650929782840412200972952877826343644188514646480858017590837673091708632995132582262332743265132306157398936147932851297744562976010661508822674183331781486966664926723986124208665319771739748254993231797756743477058957623501717889054135810047928605825366948724064796430907364387693721277313276620160223763866792976854102387679671365697435871011256610883703565048165747982142013891385178370291576909699227982850120835078972852835842316359017373713547848697467094882177890172123734603435885869796707623121787571794401520458080203156430455962192157411764446768906082969836850732137621811514541841638026968238917937064489477620175910581251219144953369427899335973582601412568677636240118475447496114488944400827521386759805448919395696630588918098729554439970729273602789009959263966490658198451547369661128534128681058466950646256752190262712410789292491475530272894406526584787396140938908197511160793369653487019815182382853511792089554496259734300595184556096161156784596601416093905760099907809247300060444612199166182708269925258383327934401478884035009227232657988964734039072281540148692967215411632219485333871909039208278877018708073305215779507934316169534486244128715953408499195913592415601719696446277784566114947719845556145858009497842282809828386111855007028789527331363411339120867262333014886856300251270359748487927474048923004978041499323049217564920503958574778081140608918726388798572768464901881929733648233308833330098133995291113053713646176155790006537300557667350969675576569158781909446403936702889184749613373500189170145307714866341435163274590433854478412372474568605867787608130731863696970253023160459014857248141865475585338026335514017866456761454022295572678156501769014750504989315443317053463023150236253308192067612562178081643561875222674335734915826327409056809036005993057058874093549831942720343285498533852324374407941305307523984516492946010466014228384664606447911205129851415180719699668327986922765022094392924959761074774307344252354243462945202170130016098254540992266219491534867051151706288373528020886844880207717693636822013998919074764206641195565194197374638690762935784039843067100091361429630754126482512502805482527283040031186658516628211201490000345302230033605189287626093690367897840665930487535216604473298213587906488298436474143761668059122821848266341399454899914353123574412408575864678485865285880374016717879749560746599749767738213811625533312318331141459062637755835014457128678967746285852838310157507207435782558647893156144545646207879617413829212979750227928275492276998559870429465811960524834967465044529412031194022533052399527237512296468172814313991192341934881790497602780191454805406256230606437562105804848681559968993451184194347026211230499584022295413733042833577777623451321340949849587250992393667354312793562042846666113217647357348200857350806968239406171718100074385094042694610033113240971987616701207898151784471400974261267655980616907086717205222331462782891289451657542096650674948968839412914643846379113937562664057571142674009813859150038554364537010282987578882807714279094890286350332859350507471122157583575132529628325670697879884420848563764330091883069639205248383797149453650886025117964916977680195628637658578622819646110230088554152868686933580199208613798447650739326897725240373953714788811281832156608484593019515946070660462569103325887596904337570032589049014323105833257828787792836164593179634197698330434307013552323010003552132140001865137003815171265725442408660066734623742642725112621390740787639867105219877851747074675343845619272987149181973521362156714488301087472054751797827182642017121528547431402729801563478668322847739596432725748131210253221243520984584438560752807131163062721981319707597303589578889100354797922791192461186913794670181527723169734410453809296498378130909614000297621883657029138079042682463164609237765628907533053855767071985845543482147950973136140534473705495172312661835992128535095641155027872042497095200366502018914472032048671850435272366473696084740789730774502628207927879842198652636781559313491076509171108112703168238487407942751256509412858503691119577833198602307116905753892971432255825270425298767346706534768651563382039026818970161064707149048771762559985212269314815167802493487689551549318856688645150162109302807197168858909570758437564103625347770624391020615063983791874289506167206314619707892923844649364687045198142239592014385618810982617825478215771175238071555488948851142306119159775857844035164987828195876035250935204245277174091601874347426066228824614855883148045880553408783412848621507446365357705375844193100647030414616351643523019094717778356237368223378878928897503459265893152448240024729868366527623515703079596765338080332747553819342945610108163657665565061495897842228490499126100779813804110964093048833356739990028572755378832968399023912416537965550386570758633739216218192215005628998669102279572801325514731221878604280198755921854452797105165996895581002080900500907601387133315630408987665906709737424747469314912845822959017694712873393931407497148313851463352048791187725628917368501768218017959488635700673584944017521311642305532581487061784600593674296663901127696996523641073621962659130372913238707086556220531072414394492131204480857385692509304881172389893272962072611212212484135181102588658459631568045173982583488349555361682208297674089902688746774553208338776215277664207075338028723655025197900255610679104552006671995389608089495175823391824350892714530931522315007787326624027368036147103475603030629820759729682304058148379721276891222675313916553702695109530658806532979408034666882699786508488104613164115255760207445860822428471314989773302480916929336070245568067959606718054109190371353872275835571611818491744168300553135107999809462216798935918907936012418171780851758265952520543062018239463921342603161255062504133278473628408757460501908927299266188308728384448610232753193896266702701276832952512608762302387911472572750271207247462607537644333837463093859428483068607873017105138058199103700694116850168864862251334884820276522117270629099619143881406758540718196559850062771124402552456831239476905570330313583666455997282367436957526327755419555242164396877529622228384168163536476683888110179779330332204583834598004179699700097877618148659253564939244286939419729472375003062216783640553776388235928375776389491668983044751821583701279969381255336291023481746021376855480021261125497338986463784925375437199995958267456011682785483823720258755786563617838899725857615210363135840927072126250110449068862555798411741806015815497669390000481571345255650310406485344522799037330208384183792005517369837652201507520482772961010989502400707200028231416269974513168408955615617171302108894137803880412075570264894088257640333936158422583239984299954877427541439499583514670618617328842329764946447376578281286254325714059793564776992053449517042329016217971179586364509430028212321643035460325537219916019385720910416008637994593888895030136946644742051468034067792695786771893958697289228858414311710047267391008070995413201203659465652625193152355650684014667967007725867813255827800717433015406548807342191400944485326672706269046226995406918986506057323474934478496592949322964881111823397196576495025890681286195051740570265222210341298092851731547629665875225149618033406629555880544550692320643509297862342883921086742168393082883118094678845444333807753220911606389120659457645450392697093982775955574411207089588744811160785645143972360522788623824011378071832897942273043801093300426000250110658903943439235555776007176447056233096202725771443906913381243135708939666337953429317608536350462856168967070312477316284421261270056855878811041161377616154800262957883312068218390867111823844708987515463694506167199849045783255488859430306102867901240342847567083875049077526638463896194166225129473660373229019050137341472229080456221755152340421121364799429252182299909213912055592500434181192679831311901502246865868051542893455447394631058857558990578038446371253413781555090189720182019751751728405913426595106460235456774209999970812809517467529356975491759836813668895163662364817074737972164313885489158469852741306768637045912105498851394383117096196513014502185502107373237600890777665042410491366944205570188424664290629992120695952422025589923425045925227838473754554549365200082213908103660543682897765513375223852676203202049041524193271764406490060434161876617628740401389951051750016968812595208439673433736678265274504630588901846813239010156232344710765162138987697025405511404773697945360386644551783800202881947732029879345561546322185039103861648746631582911500782167980479749658646060765527425829905860929852522967258203589633944810712779599694831500376565716710425155371773592683890343396202904817287936976245242815575212517301533394027570713449040664523997939905591564816860375275133038159503411575021307787547917940368032432365502503479107125106296837427621056719947188226376007717656200557882406667041499672188640948723798604847077206494284837097406543954854955797792211513895401816909900997594731300557718004881306724639525513654000420594023418135313030116567182662850150545219152669097982756247112180611214343698446022193754103788007523583954141115910472737600787040664086858405831704961827944222412338267300951089614514786152588399976225590714789371546899773963171481759177563609907047720516137019936397567871506155055144939442074284867558335441266776542184153912225260247278136256838928726478266864427193940954932940576048224264795131029083177030402490747273709553616364067041459087534840283912186598192751424316784731950685435029841752559075947908131626375758735539605286566339815569696155977426177433034817775065983799052770788626567219002641384111067525572083424158107624718702976662708947105770671331201943505381457071390598033351994158531436249493863812937981981951424765743427091613244248604867130003634958781620004807804652132057607402086489216970616742395297748606928623343580457535040872133134758016625973246248122871075493748381460691673031072940081309244012774093925787658401030244830335132209982946611844986745398831059045938725076682181413648398036734743018911089565918037268073691943408381752268698969917006138115802111185416328192306224409513834379702574052107848628922489356746534649512095833859027804636364115390728523598043926234695488871829772378940236861248885576314462661539657935814040905073781007598210261261916538701191106986103390844238392344203261005840861753050893703600893005437815876175241036498587375192093915764178174425264333105253599169352274121434872418568606155578395667351271821338515509557855717372550622630046490195141418930604312421361788053244324361672865330582195511781354644168075448721947152408505347361521865243466079549944670232079609549191497271424634842740418161396758234226402861828264605461191138831174983334161865363362533814806738615444979503747624613658638291778133875164320637058703176309230303505284974375319775878010882829785567274704488045811891375807040586951482542518450270213253957442584900490651771770227161912532458235936368432763313991571163778081018490012627435286359056902890082437872145709517515460919602326370686966664671272171253364377360117922814673900507354659391986808879395324777922968600781870381478132208648961917133001036339674734295228869791585035654922026604786313470152362502879944199982798236233126095006234736384573180228904085742853495102353514914632785545316301479404260393641069258921745396091032116064504327767895123881156495786884889331496940931989584994717392634498891281878931644291914424092682693186084989087337633386011042876632422963256871306373948187140311378119146764067232237958147481327517291278961953235991924519818407314923719183057631996813098865217924287918249883200129879627354652196757575696450045075754899990011939529220395908021732071342695766438741442737538479931989305758800377504167173951794974876054580814827923282664586781242935522423738621052264778936770902627510707376873576692118287635489250269423705208821788673777301447254288717742550998068346003382422093839788227191605726433146821329010632617131200695835891680729890117740986667703096545555225756678073597320072802572142257723539745847571194230333066857320290193081436367469318396917691197405530815064477856691111876779647347828135559676539087128918849066910182787596066473419504383908881698636234822305443213164744014651780862285970921208047117735296095595276923705839839315294413047371628073626275915488107975169987946445115565800528866913489959745613815804901686842387120959915674558363825447739097432607787111721448410927029696191953886192445697399316853904406459119916554529654720389766856575414015611041865216711156983347055176147450348157505866572711127377998248006228800536971586585709395964821553237624467729892939994708038118973712670402119391787767459566037863652170636429956785487840057086296018538357683495790587769392626004273328479490472799607182655335688584265771714010838162811449834250043808879821750688974277660385142729435392522477263035248399142006607973627526535273785250013782320894275538700267737103920213647898339548268470942821586793419387047188514474786835408156972193446475706398802238162486841957438858382234221558806845301098156715197458963495649439405643491172239432409584122255973441100200148618119282759358660614280642617342529176081211022038493851291094304260138322792992160808398158169230345833403922425112480523903745778342890475987610348063489803235371404180731241850860969834103015575499069180210895672172807351976788608866393110007597457993180883897588415308887290765233320008867310806489435718070729481592373621489707400148644103317903552865604843509764909367471071179816518569648683118016726387190410896567566135814203073918924716812242637036892536442205168843295171718136340902122645711078902703287195098082401170604467123475801841449444823338081398568914002169056915040144797622118368877009983502717942496261503323770192456395376260104866136361818368879473442787005327372316559649088500490893166851198408700586653051924956075261767506639108492883845972686411769628678615835098529176999572140057928912903886067296397006393783322021651975901796741628832395715852391568084146221296308744265309185759984122448248943923255334867342378543875414964135359595210111401805127106736141324159871998532892434299874925238256297859078239703888775709131162975762237832755325326806527016920488087873167666735813807720352719507451502978354711021487218931051358800939827722026771433583052081979248009022523071312298145535395379162444183688825174520396074433650885310918111227973152440114863673746871839314732000348206868680950746984291653990276941123245930113049244881279526418202866724795336171032923800064806748660820628063750051210222457839373583621669299041343050718229245551202082448258098390035598828766132218879331760234211659883075828199925815566666631765259787760979207852071872376835150151132488964805014436115846662934404212654896433213732694147331898797229359050217344302186592528551104308528638362343929367617902662967848802726791856579900796217722820570286369559467476422974655138629481983798814788903118374348231724549423264015414875806566193732130206657041126419994057385134351410602195831958558856023092462083482757490443393729079360117211328751674030120710002224892740382531058342200455703851479865355571876195723833681479193588811687386550543178493332135567215748211263898019951446605689436648581108300355454818457250123390183838126380604006410600713173730652562082563306478452938731514200289667731528755459996366922051505160936559558167927729282416337231236925137809445077274014926139219877318280721214585493950033942873067990528357769774057963119772672613857679367944131109231083894298809841396098018505912146390462322814490556158853154512081209249344561650398435816969125727460265292079300069230281002599924689185288778825718471888144461562021058226297847872391048082308681058136445465487243872807753017983556603029189413909438061158939872423028406906506371850458482176646145920461229392207571378188111106058521188004990673451987458741041186356466170082056592674409564884201980914741343918314303364982479976280543391779260733913298812294036866858276453147138667835680105190254666501553185719646379044539524953522445230801416077646966295227354162457195593750877240578115592695893015055118825467715372592534374232368431401309344367033027764160784780785007033238747696288287311804267546274898473769391536586343111587227747254904118990942685817166215103585843496223417406886934332763935593414384113497585252855885447875328999397062683816649429939590998615620350742741708324588076264532544976722711071080790042248756671214839518112275745754642079255990886850597883332126273198449657061753478981294204537889561182521620240619999900516176553932472088915177261943255559729142192838195793942684095219439136997869628400739053173173147601821681722426009872973167019230708122078739446126131307906818262186123821012007042408870958220457355987789667279673322251545077965621053194529142929090533175096867454770775279611081849758307498406668123095433912790526198766296492335451548190407993990991675600261625573983649661534694715347699801396246114968528386678893012201494768481221854364112144723456546527682490068137204639177390549941883921675488175080689880657197235297346494128293709949723894882296551740121957482190256400847188053414297520214317940462968006848323715144038428479286439966219661377880592230479419043379214253360065281525057664205750817231614580840811488712546584194976078770385173428578809625147517630208582529983913326781970691215299409435398740063151187260055755921124081372047150919905234312399913963268926843588522614524425814633887371227857378401757860656344960866976951026937195126291084795851389850817577408702397704379746236732988249411820184607408571713730103262851611206979464650432106388128828137315815432592943328073719702676265006365155554644427711647526005346418806782202561962014931238725154686007128794258354267571072739311255069540120363799528428614362625343995447761302993965897973907641274548214754612527200678574049715470987241167761607727401841680066671115545027592334425548582069921309031027674225958437682560566238051047376521889874406409944358751402731725118051923256468145819131147842673162817476993416139144115833570932720045055387083155743074854508589967791555263179672367493818807659106728970843375419844590775520640172287985325787794285974136937262356174341141593945284692945844650909044197074264845579472260001838490977394888028065420332449992104860144936029257235033563409889044913711621660612602217315963861628827105892639858839522489373287392139883163961615279660540551121164658797833236896350901581999855250964556832044870647899578402155150597866186411754816716669658589079443998871043397715986490689596107932091139346826486035354478217216460974616560103391023353907423242213858064370221385128680117469325685474872515908563574839902126372374970339666012765215721811216629680890832654674543040478633068768724953206502499404016963477313047698862663546401351909318978960438007164263334166820397118410190886458719510048987167280810442781255682210132771633432195039548716052776940523125036201876530728147044190980914839061737039926076873451909395000360751970530000617742887081603053489096790023630039827910331272031035183682679415351729326520218642649947907616526276606398279218284080326830758492005770820962670067768943889519396949574462397890490627742662145136271303291878254692572830751795329617515695953530003982140510675370843189276851543161263629071069830604942388318756677688239513923941795879928087155704389619872959554942099276684881682866328244227122559409375544683641797444490575115121655168611433553755108170969155621495221624927342350197054389728539109416840902361376747129381376642155340152868204940531457967844945837012791051214452197108610141456434717720838605872991855255439803713913815377985621353841344349721163492876071138000525999475003776079044035500652772976717938320176036481966996154624272929960698632992418262394653467740925104953420714048320884777705516206240860418342568063597699736689265548426207469402300627081083838087931352785363820939772730924723357521994530781140734921030098351293912077696330295367897630609686294556916577075544427872924288534169493595778674224659040530703094678555246354586662633140720793509691223275609739650303276478927454719273111332652839587705983111386669223052854057040341613676876404947274714281209555807906954182740697123706470422451879196149195544227287621503959691463042330927957445051571642622937440148615632455302272640447868344523994109896003348146340589681215645749717617847237101089472678910740027310377226693656726323456130173795402154515646235620881056700420059344513200896369033504218734260520767934120816105763362378914920271381891362345369824760710555923553489981122798934663276099848602913959634962411092581903690859615796505073826138038398808023238613713528107213397537992758814375337336424374736456832086967506327518655427972499627511589477945417939898376049546845964573531000454753458606311049215066785444756687507803727246221539581026891166751749800230450125422909044533879637583905811030345853479569898260594648681956347106135186526179030952067070742438008509850839666797705917667814000266884472046828528612809463786599599833447652620514609323734599846974464581364903048314930239904823231916425124274716153612650168501700559454448176065207817181970613474809127891761123574063699510533257278964118209994259119174758321474370250545968986092041219696848543607868355351610662524031493297735518027278208985561573685646616848558975086685033828284718236917956087062994622958685271402498255417004338719793165567049449721901137371909024409536363060738743460589611508871561724551075290269675544565677011468618388631044298269593582959668256417381237724100238902141012830335726816410136105448592637075741088272553935980974744619887608991665027265944303529024765986506939723039602211371525641435060953393542989898262178500141227039858877043190739186101248206170607040891142723883181772477892949693326970936111178171038648536442549287125721484200032420636772530825202495590509860837785193873391684032244208057479297696507567338893038796971074618360107330859145249979772339773027214626120973524251789655801086145252119450233478913749576709340278456215517853106488418863544123884787044336658235738755800869496577412265391146258931679089194455441222570346231740966899796547597118889591827905218033916713151536578344621208394866903765366260043449273255401617415450265202629263796272915033284972957502319114581315000384900614226628596940319639732209815494998010911325122435092527216718824028917653178411232510686578183237123353707206164447534030545587598549867198598356421462975487867148323940174587763688479814218919147255764509079602128734760211967985860763527427365782013427622141599029531388703016451537242432163362717389259475021775772611847837664014996251353948920387529362334133456212939750492790467858812902833593577740200516458191939761025343306494262813049448609319783832578809884611017028906981060940377997059377663334702421928484679342365611547845112728122219972742344203074473236811087676907120679143998018162408272395981566575605909699033840159749734320582593208917001919104250887933408912841079432533113630942790851607932399258814177013444725396485223039214653394678362783786192354497784480351431401035593954275961617375397920556893008279592947975149372887731473371132831849185265603059452904729649942606437851323101826082609768426840783340247367901574507546798122914322661806364558086193899274884223915152359833524012308588429977742412163649141555768446024636791138338901738091565604286674315553800994017179170864603945378878821472548334199240080258393567194386802473125576956212813497364922374964447329854156500426457495866601473973221120676348734364889339445662544988423155192074992728552549204820898878545648537672910288172126950260633608069208432311241203441874021267746776342264356353659807935674411048906374973986906038280585637646519055674375342417037442594092085703966480479458710588618863753761091780912755038991580759447750975118035742948332582678765345419014774934083943440781395534776238440436080012035459535304794838018231273821591304378536869628974940002573114720910918453423956290337305020108528889359449613355823069997836250557453338352264204842113258825956101069321828346062734748276573340276382788258674827403606629566638628858391742218706299778563592664452796885046891442608669869051245006427653938489363731178086319047520709699727195713777144926834421118592091441405382777530218237987215371096679184760304302131430868568646546253259152009321537537461291013992084174703538426515377269404022591061484567277561923971891488256745285461018435686742234502216711700199226774736685977547201252079560363503602989831847448831350953162168943936128995155835096331579414591753633228270913926540870262333616283465339662630738473701036034038297722664446956401460649218499297501940118592316695316446714300024543830579782005430657293858571999184597393059196908821525985320324107283557336521283732104727860554395527266593341680945731472877262585922122583704578128377312356492803855273899991036731007475749272798874234720569696170278676650088954103392097327141223982816367523888058083576858184798719959202969502499122576040600408014473942068747169823669756915107983785237796187565853335416908986292198352095238225507959208809155890784715102166228190575057042079264613302937507046876828930769321885964260167130832509446241455652607710697805842516497242664940510438764184562437575953996461881080035028995529129149848304241661624384454318705642628496430351557723757670545564207578395996415698270389302038250592136108865056796423555856359679395956647611041775521581218477949690674567370195878554987661664074470173733615113274326745410543939343035358712459636202150379813762764218498693125702060596580164116945143156902536111382422988813364779933133728147224498130060987239790853163845863929612367757769983569574536301831663867534108772372581273169247933322705181474787967770736210040365285853156229326678851747068100345943018252374770672850076676021980248563682593422930631061523221448473287987684097543181286547493611810483933979769391605136074735035424703940016537601714589463165830890178080447184735316516551502506739145188753606842744571631990490780936657810476063852519658321387381922451973671075572284967478891575022440671742193584835750942711617024428615486686382471044587490670901061480525061646006141143771264310342266266482010501586310010738845231733342419993935320624462507046356625112550786844596916632285873905937327757081965614279571868307917183775376076249149119869199082214237719806364384300731237627758640064718472972653310123595528373502516930974599723933199364182131124499934097439801532457730934455455633622096583229589785510918734920031590348286126730928441050523208764867247996059923162056795225293112457594864928217902161875354313464856463683293005607372129614487596655285784475518581836834624118785465337955849038627056585807491263789428144875934385600455875257427208289339899961075302733403023858643888847310722895217440220614575296469935451244392994601553547179824615749768090751678993596923658639674734563723535268905438450053776904809139747444474854987678727644104282098038819530435881913550556731204855508701416944068489129065836198931860385872190141446736873252334824410285428498392890283585233107167540811532311341333508807231462156581498149210497535063551544636323167205674605192401940785569505593803683243865721367360395705429577500780428995397222508719702168807411929411148774582565702867517270938821833057919671086551202629688900905101288222179155313178277316129766243374773370749301376907825093409595766077422366395047370644285475673603213238131776203307200950361910466411515941677029436686417412508623230115929241921419364379729647465042399651673997578871298512445662045839138335972175038991213310336095447717166541309928826486188549974287152549962838552596074066487028714396968830351342588535242114571514050884158715754496491572998988919494547073188212798371152391239720931518602177827836361402267914862132720110405571420682284202544600929728995006804644350051560027643463124580236628951702769416815922136413747666221638071883898259828561767035999123993656702857344398574068386505978267320398828125054247885583234856802097536474496870071035986870111114424451272359345752832306458916743325437600956358402426922542068832932326910299407614540114036238790139117154632302556579808763551324594741656907966726370675486617775930167165243975644871133817368201129100282159741219182183793673399163489269185470920767178554316478013560903595233946225088263563427293397127036111243288050389435933010257026650203800907043800806265166807077144619479375254370991348063687459303093045376711810989325933825002934384778036739370708045462039544686245988555984265059568151657193567980334351393679762921554412708066752971818535382455018364799396689475775171622698572939736997260359130112256651109471013398208518771912735823180790927337682598718989432458582896127243712528276806080065977652291037938284733072675790880525333938077799199799878657185045512067552555368284899789308653740982969057158018610384188029055464795269254462273950136635501870003239507395061921573517347417758679608775580812873984877172835705618852738751621018679742861871760586603473811494275263388892442269499369980511303513329262276067141992723827238217968453747846486546110489034031313042306722583602091097082115274358789646729295747614432722485504140959637225380029471944984795258768073654465910317867633861645639589182189609419516339613020558803033627795251420321267643868094594414360321078254795502668459793383876222662066292842108447712027516329881089502327484387942773312940579419742452536343164085938886001453968010415534616477905537708498979146400777398740391879597204400235890006837946774088543942365165972642158031915081436195220445494504496438565855440968711038831160592694587728334141426957617403031129032048929862306243489595452541308560199556824796201816405824896246805700593585413458830999372205399022044986221620365332250798394735253227544469315366010169028656008794581115663083199203074462049624793727500679338529382124200972760533946322570862740006701377282091429737180307687206338119429623361410462972525187705614995838804751585302001854026037284652510468216723908987867789413971915763396413137997159438049278120866678391070164849861704359257808515295145029366438690581074294586849748396601015869717745050523854703533169328628631632116523526919217849036596544286047789843290483872192787293209990544636423785280646209390921678082711565214574745510180255926427860031313677960449962932188294814420498859012662414945803662645920820015889662213963499689156626013237826590705459683472286353206274047786912648223003420196777173186447955870891162643643540299421485855632935337131327562143677660769221745395769944109044744075716519552069913192088725500606539916002062580794227116282946965778999306946054329712832435828576400064776849032053995174230069316765067575507535129936953682964887714706969190793243206316216637968321613299593983375525690214382206325251083657867041995492926411158390154956003843276453064577083035620983228541592126190632422112164632194251164686438826888169875979321497982374777258097924655785236201026545456132073174033477991252776339876427491204451936646277755221547563793434089119592912766825897348673367752717241766095615215228813646703150447212188208610200620474504183008719344767257439541210931533826078276368011728733029732862140166129203108530516501381489183568501819487780309939468238496904334794509800724798591518143218311914332641666282120771085157047840252797129022292830930378419052593836106834912227102406738434908018459733310168988096780635238973182131906095413504040077120518622731021519131111784048722938462049874294709250874744787476188099849103875192265655639054027510739481178367191482738690705895818968385384473325067186356683738774307352999113204191230388442039564170725113428097040685841121805327356452895776074499929177404139585189218501591134799213995754774605389617715802862471081313048165418730957189506807677288376107350286503806606867270846880897924861229964183602820767652485612159283209587715223416501843973446285034448547961369598006841708818863970257546362948643942050329728123841793321881232555569245475215331155233815008089977176005558550714784408329137094029224910624347765751239700974005929193059956057888769038709880207515782195251289721831769409909132547920475052131710771797360776277254666688040165500420192559922827807455066277831746571267002384779306728019609497851468892692819492023264157551591885103221177028069864198430274843365705912470903874468589538770773960923287096136496162082319538645023001266214743480452072278794097658895771865750538371992056893186183056738749507120720312678136933271506230658172032383892181434927171415511606535759541009549765125832861381837069868571428671284903503473408447419545993743494745955273107683556411259569009640499061498297513498189955775878722531872339721320837446506381574849333584388509224429389067002173477777081412613841169433390091643308333453665059665231316341569809671295819307032963952255225579422057384121581389301723053809377061486976830125174604039188268227135384774605048272142077839616018740445463016058842488333553945785241838930110707601156035218425807047594768314042042253980919883790726924552092575540758963927677934574659045065222852178151029029287690521868649613748224675134902658312335635403975620829419341862850060190856948108839593407856017734571232274842652296712765601807425254448893522196182057728589938847356122647221513265259465735286103188502452113791613287234835552984522745438493752647510983696728436492702402540573477499714454738845416742185574104692495221306099947575214474295463248180553709845283564206227086092687557190175245765683942930033599769346223808874547191751087032307377493493809601953640301891233669295109788462532425515160479123543932302521443531634621065055237279095624340904200988224515207403136499530023342940219635788965615118786479276295408365437077907077089283748485467037733401776843575872402811680148544269546890047380708218101366242910205416764965235394064476937126196697549176652507017976347719218497363501026565586876116038921831701353777723139526450477653263747163283062859340646101160524700893463609743801485067843992243922975960338905022245680087855783022176176712621524261767477559538499974190592134004736700073267305947198365568339125995474328624114513030852561621944347457843958247569948159359109356538684112541884307802296972976093131547256481236479754218132250232279053711359302916213019232253384469669670633822814768782709853082470216668670753688924675745791480874839672057983633211238113866441545329903659463751446182037333163348495182184511215970166876988062354855730581142458455979906775483993414328742218866818502902942374493509672695830470030766681245527515089798789807854466856595072011137075979595800289834128593732552448370222144806968291804255019649924854606052474191167210434368573545613437768852794196761738219734079760218344496892653157599090246678337324979242386857735283945553840803386811390001140106577589406974619399242273406339099065960833277527723595724769122946254595369209316275746558030741939028751712859278048908862452134554021358910615717000108870015335238269998734626125977292069873946024241612668066245033650175070450501943228095876502619577142244868199283602584442829498401880190131412214091334867700104373203451089512510263818814723634446508881572690360961803455892795010604973227648476498324704011479181309779494253883662046221258950436746529824543149360990280978460133032438344168641606126694415087328937131802983780827426502177834561917920842688629494655895034281913344373253226373313493081035258463157555911025129564673380978173231411343888522314005927193514100918967988550503347398357612662127933738599603314523194778340693559900212604438167183364033366732021304686728083223098131095261682502846501397030932603587515562362579946069164869966675393665150649848016374664436767044340171733648095438792188211341628882620100073582667677704603663580635307460666648088782291405157710072699430435704898229790703550468051783007436863741969639759748997289241890949242952118770753103597215901829693815359752609851982988548165820130311874613167461918076059528102253637623266845499790714776001946796924678867878653273362796564244121520358002397903228400006443269506958808822398097924744914088819745836289602728417598856467157678502385302067206510072963321644132204504464830021536293621836515845877541768948893490203164013158937531727396090977925062081881869061525236120051528337652093585002450444253198467583518317597843466629276051649305963329382705041662897025590955545104956497379371510156602688096012094631916012642529681077809674723927062478540629997700223729548723907436862901947359400445981814702594494237777515713528035223773528564480328409991031720428555839669951520309874891365497036048020173309756361295206448310209450261107659176480282157143922058078350032988129973262101307232575694022906585126910065890163490406501747949115879914340137803292186846152272390169836324627974155127359616796813954982703104310671876663242402174545030623178847881612415895236484637846389860922057031962661135666909908823292722373056173135950733227215568425501304062643414178614267929825630244112723330936454583446342010666045664829572555327809879794327861943826318145513230317752527246189623691749811287888931168485119533742619606521723782677413717446251435557065970882855668664144866407345668571433235135725070443274361349979206305962207191316960723136479457215498250813187534838606266438873933843584401942166451370884540776753094083923161114007963603338869738149347358924623080384765081853720104341789243492008413436500678315308257332720610223265255836691534792106686359757244192648927885974776919584416526921575502498518752745928604728480851729929405909597707017420363711826340134438412960950133475486412255133163672590751443469684311130647545791209842932538519269245005082481065253388499975867855491033161466440957373507597615214981919533211239412127329694070728553181426537217131991783666792376440410413227983098665981955894918981576794978779302687160460822021662865255980190467375352666238331757144578399876256781768359610464017982912795055304184456673953596051156199633397790058482474238872638817145174834151447292972436353829020386423512086405285364535561416376980933004178382234683384691273273179454666723698136563861371509508098608799651390075387804356949237184084412597167137991669956104299723553442488373929894666055951409574171871372381098504810844852996637495936464033013260103643663761993129222126074429815556997613299923112874163657527536540444528738299817245340015678255192842253338565139777240662124904961553013976212270995979993869459746849322008242067130283545792147003774865439759468291826442735374738214611749775030365068605774205902427378330302531879106786115734469087595497624907433291741742151470744755987084007950803947306571606077719021663967959629111351741280055564118423059580364881696519246409603807207904082594351501525483588757109442431837796840888969414628466858330356588148703060074658250236218595305235047788883793398701536995748886054458798499975501871163038709651902095112274745316621523930425716751107046851583010423443394706354027477267862717468056440759314390893403409923667726748683453032948222759135537877330608987666731310813513524788042560269045439726538338562574297667682305794799389859143661605883313774418444294432853048945763605154746925869969890982319160351210426817644325163695135425023357771311648820679249382076687421806530021645022900344711218217903775710894091332348371938282220596890230733174083894952605267444277180051677196107855956868882317491083864483826296918055824550212677954638711757172825232667868629445943657298025542673061951142999926472003691985182571685528782661274178216582127472305731963426861536978058089463724991398367928436276160257194066648972272926179497719964387593736579173638619392548857799309167367008932820683110205118535225921116316853612683119053939438329499711231665555770220281490295327543545623588822422440838086184905756928695525370465874607890802579217656953518859671917580796336648971729368798964779239952900909140900663797846887955121771203782602014777332590105213564379256221268064221339326979842776211601517136713483220605334245948213878737498428502856384670167115323551828338744670448584183193287983334144665219914209790109797474257248198331361988735812263502471021257397582488136911077967559344679538163049270765846440355202934719528231764479907559356315956207640963502240163394018871839966766260249501427136504088278876626726146271751158191617311863934507942578065202905557390377313862089399489636598430412066189572759822823541509079379992225128405053721979538999130248789386976193612111465834114565620132865191892947739440252563527609468420255224114868759151824718173049219056333873677493391744740506817352553532207069898702526999509650390291106178983553219545499063473101827796343810646932984306164199546000845653544658726974229475351019629288665691010010774226661091008348604406107308173355874846283768158174312409021667650145388831819829076407254531076469336595019860246949745238655165899308408902551665441053379411102058530498138840610270594742121173576016028327438390011272156881560784713120333331397001578052606322480666406017196927285986422524752674648390879192291661175717386606572396430064866467094378743746208424113021702401053060039871425469461607436900795378083905731251083747395609130160599633272786012050905149805838228282803769609357093260438838792097230735750521300288011141167116192544714524013674230184187793029576171365228834471409308129565928983228712676355640729340921584136423329840740261611244739460244952745805035836421228697459117082756014488986885060103855829476502780845852917525928293205427103385236475751782688204988785367649233650855498969410654411643026274562779362200564061684612870086834920719022914568448799897128211515097549760073036995135832902499712010066269437396922819989883485378874529701056486033102392217059282641613274292142788805377574755152579062583630312612763237630121776760688908687366959841613248925896689331055429966269563547507213001709159976263926040444459416810380148020630948203580123568184637733333200349029126607925944735510650051279922421538482602492590647219556611701561974308596438414606472070960792989456431337368352517409952186899187790974074060959861003854324961876187807611389832636465602757070081438196965104950106634652210034200420243011681215152445726247834270546681933152613053881917915963879097121911738943055908155957194178392623889146939800449332682223484316953507376991646292276123462580401290070853818113318295383393015748349398305595328947689555286172664754770074433587570353091720496037387026073786073511931109425846309322681363330621628612439306249028855561315506538953750511717768568023462538926757397121514805835366423998485944724420194451213998948627534580781231295591528338918892661360264120063724975830426236676514328264842250802511874552585018744542897750385173872471847282572056651981070281230494495160483681089979148604468974181012578386434958304077023958895770955051263884857301250849700071371273681057717633862255828214305486236686064998662468460139545108019735650010669254560093816175579623040954325749400553336715096254475590028466523166500040422336329451305546941634213409094895743138380612224239286393370507786602265014313965900745154264319869271694026541872253741907128394988892959157927507485457189103855985088801685994526485843356932127461102371730021991074731538486361962349442323951453301256176328714695314783290580329535965073777878865196677567142270726399214834855499601665137075344790536482709693289917263169714196077438614711730144994445236524993175201205045766874195695752876897342460507436815773266935455863036856996589921007430010918295751520223282989966148170073671845315066397667753902657491503411818271933619024990255785000508327196241761298338099528162416398926445328717791436425013511408649654995823325503094140224028544329495276297802628794745214094255319594393155940236107695454155318361259772307751890494036909259176731947320704455432419613161629486423433394395641752703756346626318789628152177879274699578305818472802623160240455241786097861741967020637612360752326221090809055581954238752242507118940735069065177375775203003314091459770517932343590752539356888029530922621870003037115089230847245417913938376432359783588509601429527489390392002147562569579577330652358018498702905044968535800060753220848685774065593156085001084055929504545360670152949051700329338521547912837976506562864273206729505916102471746406548788565229319128381172827007351504690009524779231303167960101932003015736792036984892089126410281373209451372497625403402512474747179959330291698824148483360263750126467967060636301383041464756227505210476370045360727661163338669450433991386775981308613344677976480260268634007836036758107997656905726937697846673668969608120463111009041656017044568166164263065578392051221558147888196500306779186272727222183626929360371821319565622655156380825303332004222840370205473250952037473126347917606185753885524455037616329174535607511739444024859817540140383222410933321891068904507155518381279970808058839953475494951021988215710248497133026153554892048750578673990023226272324389315045072755152625072923144526225693539705042105722526507820119906424563082444187183116594880142674055094157239380083512042259661489137115043445476800487923238351823921588279252967497626552207133126960667420762201146353391988611422973340761644977959590317531846158116657257876753422421861927546514338852785987116729363568744795262209278020561246249447553092537289083191085076417560209786801089768591719908961931054243346966252065666376417281767129244873827922534966400817267030238853211135858174858613668310770234734357935849585942208078855837553362157211585300192797633218516483958583506238345320556703543109361035367331310636029101781972247206379144298237830842613813272463638977620511184676669527478709841635863261672148955695905032231258444841647215759926119808422998874712317651573279024379722691645766626689805583500211272188838071326036939292966072627073143789831308534467171094093989658239315726131159027171451321783654678401344609447955619487815269124682804866904878356720048655453997142467876893779081746374613302651465019450304305754668635429838900777016190737716446199101706341812174565155609108354568616349335455910856860517580818291169494611863021633053582048722203976641807792470310900955694396225815726635448928329589329986699989140404003651802785752947385352840294369039164259502277914289088904837576381709612064908055979321574248089382472987877562005793564635351677158318960663780682930659033157512800848138932459706721263655203863407281979998184760006319383522087393691705506397622222108381165174128166614002644752970238162309633951618371676503966460512628370413506930782940529208863609827761765683927851408821656359206212399036621685065539296157676023205882837344509051205949088658266032106021268191941124766913493352119323259954257842769351806360757535420217676524036843853789467260165069358227878544344466733796874105351004133760394471899987323769486339345182511110066797354090966297670182476001370698922948938673175172651514066566176894402344399178770081561022431682915164013416293511534229915816070129342244969933581469074555211042577352507687369641565375993893912140495793750334782270471776977411070056891270778727445261323617624999835565908390177067463379006252178610481554384106830894492539397518709816731943590920947947776766669763154085854621704176451740067650221714293638031138160886188977783115087786738319042557590364348481394462607962768729932616895473192611046865833528095560144746064267339552221665005616173601178639450845926861688058805400134787818475513006786904995368550013494398751484074007190249816075463195065110920046766841524051165565049862296388355430664356541052306356775409109625883398791956610905313987160303200946040372038891511060389905022092124249188069565053873152205301870934799451983398487376684500190923828660697985345374490084470506139180803162982747871870462972842897915564614442810017547210210825528268683684978870877665375441027730926411659166894376923152477963128941443009935440357347431157210122696794481228756722966691652297538457473805267749187099537782121704843889275009356233860098578141261062190738411709958982023171420615810383687575429796162402143906955258602243741942608221552352292445184039037925591285806967099885995378913474555567348701765881377829707676054631134332078066104372821832133369044877117642752976585499672770204655720654810944338980299139522209360225104123778634770599814833593645945798034909117381650953369888173774046789461518842390016391073772254675037910707444629144963038075391481752159128471131616777285814871062810995330252726339750883317768397301303264392348697803394908737454073510265942930931352840445934901043489910754774808083423097643388830531889131621678000346445355742595440475451523462407304032781731116595242731818942298657303944309541561795284310951579689942523858251040854340177607786418790501357831349376272927633870581492093889847682796307880637055512883443510514348170901845567849639182156329215526793683267767756529267129715699000170644298806134762827884917902423105742795672892354140429882841824959840971873199999893387988412133468027230720909308887444446020472094558215183621606059682412455095872524767464027962615549340940181946421354347246167887159455736084925293925225851287590556100582543113027404802558780695430580975818490484592840973292166207549710025479109741078061116552587754965852500989940634056307405599919431443400437273249142274115435397177438882545968908525941353730244051739826922449765682592870984593521954254731468159002553041865162471701399099164035504769053538469437173867045066796807895641157824543904813074804588447224652072039185189392921928546770005262085470350776468936840418607269448889743151751039292130028463775078102112466510799233825936443844058919498159772570490607370388299679977579256881970199179253864936526628427916529359344385050506999115679842973234649052002711869152573502015265691089692625261967623966426453197935144811300282290829677647139686924110119426650892487447300835023588292664132724596295583742325010435537579098156283858417004395887138463783760100266056139110250460526374164152610935718316060923270989913434014643958972085519004451817654561692887268667624359740212449994960638563205662594673577638651346870122313178395121979740845037514059747982079329159588045176143258607886432967278713045946946157859453292226510715690932446942629109320699210938301570170541126702508050633198701540984704854961034777913340537784183875137613346809881501472760623494984283287410215666237967966017740229967844799493445313736314873216291159456431696101891089721268468468895637416361722796641584736541723272734095302794892295140403921853437990175237985412462437663633374464930377225252438430237696440848284985018530525779844940355975098231787366220489212567217636471601843184364975330955724302646785344660503670133379190942269864590902982938770059683603352475427477603454476501833247630641622046734277875210443096278985383335516316800821136147197502778915515253968271745999526460818473279600053600040724844277656819862709318612363682170228368383192091467892963729227874041618878103976002375937871696966216547934910520019368410156669714040693635055057741346083644722965617346395110982128842530202659799293004942518090293153760867418015105272585117471063822428230752348553379669068593359666958617250706608999570284685597645211016994571081985000466851481141215130870480121404375042354358486324300785145195554013536587239346514624196465800430311214831376682502982829172366499176186671075457423472877049912249832661519409980261076009696260058212806062374625546149053107707083199301654768236938195553279705448665898379825045308945692411798388808611360753045268074789469052066282771865150586317579218224273915495361955001296985370447423080173102326791100445916831972317602529278081307287389669844204500821107941074041049009209644762072986297274587327899834345357527394321828344154057884889533891522329371779048421899377680738760782141758008453965933897553731370696959857323109692897335432426334973106213710400133811886597930661267712275905800657780008073746588183725524162827672874828669686079442896701825310562669908335530601367396459050113656688108019023921526001229495948170723871390899212726374834335902659123566236478397454817313008480879052701689527057999257170574808523701756881369652079484896237126560895717822077986136589409797410113263945679023819659274478218759335310617520070471104981239831446505742349695625373567764456702805625143294050286836731800451596209357734172508428204381160668162893413821893882607772734014444976766447617130932840658644495553868453182301514879248068346603219581903061904506880017054182954555475310819603166744463798478202258471275367633600940304484664605480012252143850305026295451049772682544478704903126533617870165670176097565543750124767594716569413158367415622473096760442646652118108325474167636149358229086452750507112064869138513633805842865539490942316159228277369250745124188968757728959336190337388779126906980149792502732841092817117256559214273943786455722817703509492354594788437946445852761761020017394780889913131024587102875799197931060382492187886493202820018022492192522183408479858016954116371471393552871536581150381902798468926811267881046071966082096411538647842974234136503385294823167453697095413310703380687328621536732717600516594963243062665946567713598531253704517537949448160556552604175865751843200400598659863709411192349841271328057546446040017683394202463491272715356585565117481268702607348275711216555051259128149472807223434884346324008790547360114703647329200192654888905337131187479493785909468435135065700139326483395982824481662555608550586597041940108260550152923181042480597221542623751485388999599093533354655125712024956806133906539246887653673292191255103581154403078288401289235041890254707438786241413446014976160797614602431051430158332907329316052698488825311077389980478744926422956464914705844759758184922610887051913439516580354727856088368599652621367487703825766357377451875730207174629324995132555856853723455826996317466564600017691432979217356217239948511999896666299211308967008721512794936864735252322423997649689304106523905886428862166220006708262436732363283144005186050944699129552011604365664865132296075479793620010367778052447857250192887852481564067572773060437857471475342219444141258818457317979396196268085919866001726820383916378518043425923069035009099456028498021901264103404255635860815499796056062219135778257055011650748279748906186140174347565895229219964837228898829298238261338365217365900791588082149237720594212017333357282194646030673183394439075056581977513566800654123492833044397076117279790467102233261762969165322757700506216411362498716207481361833158942665704736990632889531918658409402665938818495707447851801274866723552161923588137298480533161860802252522804722730610463364226452586054766595391263936756199000454134706005601605246031088005948947804757177834212982042105813587456549557253581474373359338167556530650285479975237134302809806288526043343785110079648893810082698675838202494653753857068022101403686091340960846830035570993716131501030554214610168367575874114307815041346401731602926529314665384023590196720013650478957633976421264113658241216037650141158147802685123295288999735946271134490678739735980757143357067259281020248719128594805710603746927584315761787345770725722684248593658672362345727736046762460117928821313312667012710546005132473029025115694439183203649828398187090905717485906567871404426834949094947037892629207078493805016669719962588413285100977734710343749469760880637593677611789635594100323953547585660814154039288824225788642841824160638408129180327428882039299984625847979024337314201665386568548321869695528933215797988004458899688866249464672353879242097320511740704349640417751147794280696587126960431664799201800760609673450317429117907831297878913517097692364102966186242977529926297768991267946310695962785431346554941000057267812391632795603639841636794869470668798544888382060712101717560021940396300382156936554648524379235136689290956463544322473952197383630862484381640438616083219707181624955638328784916985876127975468797665917299935255693161590332256890418040269809297396937156907342955554698236027344967205796630973728001661238224397423049710329581968061305665188629105654911081640608604767582670262961985965623848664407450402024758420706541032440148423241144250173259776142678441539225478329122368097942457729077532549450885757409209263276822758354576659050765719332696494097763072463371275780556414847569056530630920835839750482146129825041274381439571585091794642225303918357443151402246666164866008329234031344600446216595673732658390061421022797201807270145955650647594050592790028385691858035484956346049847600605916628786022937875160731216777968269239368725059035400969098927321313224329655637735697859719883425518499881669802290097413896355809853594664803122912795335859439899357782900690783336062794641899654087764836587576087771047704159595469327733275338803682461311787124664887756510557775578092252953219543480580847212146402586164948618579176428911079341685319322792190359516112636536204123141266177003554497837909542885574038002175116606161072220424058735346658307515553674892325249535493043111445334960929483576576611291644581972207095738004332691671027439114144591821724348308709541714317339377503534732063087370905569082919945240424851578574383645486692555508735316020454634202048550083610258132146993614606960288018610008264310152773486472378866388596526313223287815165348230845716562800176440195243120371348006519020102878115723145468897631107383724304686071781459368811016323514414417178075157623799312444248999523957980311314478836509899518749638443446424143366503004820543856374965107792479262576902741198917344680424169198226406277110806518620558838901619023011272873530469204835409603345487300472784756754723586563645075501622960611613159620675370700263250990834067102832274725746219482562668437545906967386942659801741987210099118120141319646190722521096495202513007371787691480961263650142339290224951078298123573249171717746913621608279158573998022060897591768694876626068276110507868908474540960692237329235415147126819790516689666565759308947538601631180707310175645612025412831747735035543673575366299410551558470443825339841559553756258255249513470805332218493911913247679757738006266163204856208307935093306720972997076668720784882321233747524187172015225731625419271754055290783481997963336323151650345340160880767460359015826985525801451557838113331580100930661312869664596869750064687074254216160925097382020678518947584916940355033848278788706512801888980146640220858583745986416829784397959883544651542871650188561589183484424300359624647668645882989595957239681943216324896491193006955554131688200807708502030370015808604432621718433566673175058029815761850278194744229624472268656916014941244596063446286131711504604388983445195338463615205715984334479024470961796716768915925974506322603356303477596051468507741052177263494339362801218435539494948701915793480387051889043021572169593451752184561005863954591946193945041404660779802942476567236049007587293786529883246941139810344633096982073923162166196407920659117117585057430420858419846979431947492614670293388627208506142801743474037580012828116325709655303003620341521264559741813244952756567250534127315537487647021918616989511108885408162140581705480762943588275005717184525438491042531453478589612074828419675774225894637062947804534047319990573563836944417311251584560069253553492860016215834112449793836878408825421287017651325297457082803993211214826769269626545505060528398138927215650485223121936218088439230616700318026310074755999431284166670077699135966775181886340085473019525623003682799102400407815494238743857881525109730005428617524014404747996137859678807102697409365527433432884208629904407536788098983473561830055749822872418040523114732366858435804518350057686389521419774653203952807802270539566140289026838153457877554914501574314809795971283378018770275153532886917077234017220334276352961466200288049192981288181557208172631202590835370434074602862825269995056164973068342042340956386210629261906592129841340300502674422801133932866629195924426133891521170732200131106636100600145360371639600921469447898843508160038952388670848881891715168640474544477542128947365046290965754600380039507235410403157035044453079416655496876240177607220027351511820300104505723867212419031561340745434481458331658623227633193794846288766988035927167029329594743268990314118779514353499329888978540962603389971836609507027066150716037904697234438853444633451210559528880843944981744491119014805280385335579372200139079091523587896215878868511951204725839214982506771671004142112204179317410250672437293291848645367441410488204815770141060405674853939633614903221019048492304353700555933396828536313516275524121518237157248348429112009740701039280764373807600863336189515721843856599387648774802191553962791624214111208587568587076073462780059983827222493849857552712676560146096279189721015110526919658489121520406008837305312703686483642247576466655632023609156188006548838192629485052960090191758117275188903073906847490195190590642423495103758918836240114002157350305195110031289812027401527241105905468811881672178670444821000230856339553437059388833989989913050245555546857905106662986859686574012437569912191187464402214843128590561668404881365087490792247882304646947113087456180532246516724545925755829350085003757656241006491731400695824598256220175977809770324243952574214362714813507133085767845045512602640074871559930991117938922619116704074554434863238911737116820972165264779804695020016944303269360335325301563612338852081708651632375385993375116798274008562057031721534368514367285434363357705776794138728401989438627037130532075533858437519286448763265829241977736528493793309874648177264665652344655349173407437367691619950970359261029309882274612953818709164141878156843877675125341144183538724747760601365881757186762890630948148998636473729467739276144907980366404494938694224546748940182006559308877763428371499735449876705827833331206438178106030922850867561738611285407456629267383988606321036478358645905938227743487503136651023546530987361140514409563292626838770570536240531599744873570089196104960138526530023030835395427597740306634383738501747738123710546601213833600536810271011295886030700848911433416763250569821041811204150236872004067168359490148507238871824768343463755075454866739009032809410950416024481823955081044852536831767898601541281709872759178670366934808257102197700408174673040266056170337386557552016990372956492718147935918649781891868769766009893039621020895667909512146708283547952992777219733694716026705647858353144294519694198024181930412394487204418353628815728894829740431315739625656663111730063029096363506539397412200241999490176996254965810048501087599148118965853209425185770671356882338476418807875298786830829454094716549032651114391447992285951540109808727833118003295765850820239207859281742927016547887495439400359390991715305767205327284764814624346210730697870092972126525546984842177659928205455872224511289802792705841555268619612609064415153346895466769721191773217543807766823460043253272167973348645302966537054223464078854497981657395882235643150806572211661467452937208877409798930419962108416409798444048459839544486122717736308654224527482612415391269923160255583906445264943459086877268480980731769172384175520778715291955130385086822172347368459920071117314742606144675815353094926426529592758377434550721114230707967669972949482981943100962167885015419016588453422886585557611106508959315126420119741087803371042185378489979011384711159175549887164798482637440551231754784661515314625853589653529426253125352497963772452769140779869540159023892368275860662217243828411928460807486630486781525667738064647315670798501271686736830895842300107234855009965559372815783572002162185977291426984838559317284930881708505742691670379972736112432620765322749491648933764469489276404467131753776257920528814791061225515957795056467277051322150967069829276843058905622644519247187954404708766762411147380915489327370357638363341524267108829868922449801056814493462962696959004283176289831218704994013408850606884105162560868551556208069787479048473342771451097012852414912150137804651969025640661220954689455403850790942009033024250436538998648684819994434982106972129287461948487350037514259490154368763997849260813923629833688528797352633370040597402062975202045087761573038153023309127808588023108194105040382988163641499254822112865459462953367540594208253847844274996760738345541285713746220894159268121852960863654665915369228851203640726293682044398885973188531031607449646560784180680906134402444066111141071734531010093395095568080793339814156403311301156029171595423550837369540123850419148462427793107648991081245225214327626181571495186888911744080475463359702094362305320286020464758392973301657054034705666826428296290977131737897880676632306219116728390500960223722999867463979666673719821729679344129433355667721468503720063948654740211741114300119448210687192398474303779046036368721033306903478281718068254584636784960185950670901979631134613512344319952630545167774352433580289221006091473732450278933802806009881315098973660261941290129240353377602627775116404764766735891648534931491554255779501727466766099111493216053322374396014123016562791858323367118955575768646934371905670544043782389894735503470065200032372388054658318000236955719539721166144605940655257935590550473989576249366655082365121266018308606014998180572607801335580207417529258689717787609400746380084941596206307929542455947008144682229750125320262224912911796912436903100673746438083957634001199167236293928509515980941609426910090487215082196124644964105070807976850501360656509327597311193507226496088899190051046653965742784277126624619793878174882684884508605014454774671121861156744345667680010777546075268955242972260435554634456212464582948864281359864353854570052554584759729816609467542624232071305126724532770813135972425862713391397487256408256343459642035894254599760402848891563184076865984747064251607060671943680404944614256660303453553037521085655312972736746444820572854706133272399358765580565227541090192622862293582618073690222823862844697001376403054381718073953520945747698109021071136664881995145778942373965009976777951920215140235282621221839964269179119058001122867781615153567032194970703625017576895503645716753161100568531782297896199464434166486287400815997793522269867327793246899035309027762583521022419813400923334280122638944289330327032512680768871167016386716458502416512501376901170695635057894781853497491679316855009804353599117439153585454359785001751724815846801464838545421214457368835132754692215345178252842142574381813241210980452715547531638331856479604531541785546764591764556647219154268994822579606204630568370484473029121944639452674340511743890954057094136258264065867201652543741959964983453661164541024533067043350285783638132757378234413594376013797721649653930176354094902046961839412694608639770013534198801416555823610088044478434095437651049872375572109232200995176207166359745847489552441432895387656980019014018367149251769200027210681096862992860409515271539953968984801612072172772716184628666000176762136767227580262939683069396306752386747187932216982649636176789025948689182486573082429263588027114754636895985829840153451553211522407612646871011116587534799144303634747660136982700736656966887339223903948787655849518769790428284936757551000641752890463660503854759081315969132334228682412702490893767387455206253913865976554019396350124986125943343323314618684725527111319100410352375242716664060818388538025579336263460774765381761401376563127285695066806537603566075099212346707339852301171612804110653658653862275317333818890778314910224713371449463042837154991580944493537531679215454013166039945161633134281425323818146528329649820916227477264665247565100523130929530859276493004250725132701164177265119507127953167312434277294918018549694662151530087218312707504820591054461623235545838948071044898234182771102619647139904790767644828607954425963420321241224820413879575954094951281390056574621426704938191704948402106345103734155118241552078612806919795321403344982959178514714415388262176624110046422763729181122201522872758959037692202234187389280002114091863682076909853318969365730401873535238413660923007753458702183535390679123977828877253451844486294065085878137974321105663431406039551959145804028972243966053578615407454610003322604730143052329883630820498969428483912282973115340948044693051706804713382885710940800271058112521243602830207108720243807644816532248738415972739333611108587067402645016481941443729984809742982794220362492903974115718890622782241869450149615479258468603173521182560767671122227487506779245053399671791990166072589641344923178723683161885206535628427901613836440259019618955133235705829991501382211373650207919361020374282543689682063419629873717855209547158305218586389015462715352668139723670436340107181674631404842905511172122135085075955993128528062889636393130661118185538465605320765019147826032131062105719825753039976392711737740116115804834013615486590619203407911344693562981365403906463560695475803963204288043743847682434745833417139290365106937035345495810662056860755543887453524251814258678883021747555383485270259736832381025522852188970927028929321213363923199289315696297885142473373845068259905756593102838428696657965859889446927886615349501308891125607828311270010090651108133061812042772821757858412909247118402058030807723061454900251631685440863949961908452583912379859907698163776512625627024267681551498476080488165114113730067363137602400469882624663694895321541864042652821846531673280156083968347058654424480240354478401513402710898583334520188406299571518837610940548075317812653061904830587914985185060142670097041822006261049858172974622865754076464874695665732900588413087589002109063537799286334528187286390027834363660522146824608142745883595549574864047140521110002110754775911934828056992141877598770244492185806229351280599904421379272542841132604404444485802643096991524041113415232711175212874546515051403607915670438060537054606259940717113045178043635978878149278290527524712187754300947663484487120460600117687921950741267606554737409740852691389815986743980189766213156920514610843278395584718428372418254766684164820815826665519585933099877599956839965838841149837187961456073997880296681880229530710074527898358925352974866998403874043214732311317194979193241753488144865743206644004180492215796846629369390448430456881810173674953011886661876966293031903096163456041256765390141781172452491655797900634368226225114346791173589460234840592195497306945483149288361561732033159111308348512240776210540957809057773209595008657995514130323185658564976121456512960179879301658669951559253429810829071842427831864316876469891815308257211463144820610839581083080208703614298684988991238989026747555010874960865399483005256355016855851045927224522922760084101978112707175117509151050363873214571932883502548463282142447383918599219015071887086796312879154217934427334149957970485041749753616810387847374743810794902292156479101041763330432078359660303769639527626524263870772740995611080306980986058458827943274422410675279702058371318339536394528220695421055906272139237967369945911896049200257112522316071720468164086369643613869504017282169721055178729382414765853208175503642949462450965932196220775824892894460461315904701105615638661869049909335084584559585689547529877253573298281669045792235323112461960202220513158553655230063801671486118302894699568178097911118727890307460195392428011256817810160406198936103560979803062995225932974080856725139387873569112987809119552826885190327420885238194036488760482327836752898560523548205076425407243581006305139031480275375858863185228769230785638426492655632943866951002065565875432848693716889737435201284185885174416768905291267039581696031778164916900138869898091690490851590553372601514240101035028963996528501055045820712295819344559940054064935407116149510265946774515606617928702732503645566227922761022351013932058823964381582145046183179516734719563031099113005158216183241498234959069081441717279210548263924157005791694508995698132928174247424610285110082749682227278154645464675159523590237519342759879061521731918573437809346010799697219952674987188544059234533507663296072874910554795670866199068396304706149323517391895818575657713645269353731223240371593373953742533787670059216095262301955347527506036638252420518551017591019124683724976479398687697643266771680488988065506619432526971270576857470321344809401923997729482967739562630484085890660238705899846332052380915375056384794424240746882988875093119542190963514391201883798260115251093116981327262013911638602343249705634690284409997325408363023788169404624386627832066340742073040973806742086725057915996064979352796817435920028456816136729833385302443040358950141443838741021078374844115237617666135814553917699119870582680411153083706581046911501080994485115588537416241226910218910488874765712065620375087336031608464299300721294914353254130132789718896310272327393215944224692419598382115383550981377418926930339268240081981237514580542223254974805928071362699008459987646207960201996173772016034455017096277819612845392245828565095686780405645599599829631388162602756009322627456579172537362322869602375818799162578052517444175576719029498746469515846594240773658951722122614443802057529221973157474404565590460383775588577894567700737843766955000774503893241539205389846774354776183449571914217085831564974993274655438182544393181727337358407304378791525956029744672148086769652876411182137628444734233200512997021815723175744833899703095049374388763979659923056126097077149353311043539584057213381123490301661177596318880193687732283137381198619295600551282070814490791783106175301965742563308128661714407911732101763647497843530434306380854565576456679149624929125460435333165666699641321326025918860310983924746252016973794705010252137150026479114143022137000946238849387970758757811601274500480564052607537569320604466824578470902817164602784728394595026567931012741429524002016749286086417499711485859561465065163850788320633902437232794372601791820997727201233306437014164217236596669140816603625840087618893358568179830105826032035893165878740050026753356611659297090733946947485399826782886419043055310994217078703179304890353715056207702966926804143982923370465416452604028922206353534043226811476833307478588742882693512885432715847702277054010609562493200630293171896094569725196186054911151990088021476242222144496574308768041805729121542920288534800800651681483354411823233346813763313207906202669610311865285906273841444003246256848689747207797939035158373929567979673860957351476937402655625720645541427948598851554160260937385859333854700470830012344056180235003296952491288552779035570456276742954718834042367600909452486304530142477473218348049716482797367595114590869151792367182738842084558417381586115213623240828625212882774103270926419712805903492799217960575811649738555888819067702202497835120733535648601829687671698389837468392051496665444684968226970115017103342197780130742839186812503479699568612834249738476533620535871739081343823317584631593337847462054440282829069915173542902580711536643930484429124033850688296489132227431900726309829742466035640991766953432090780069641773218455724702641786488333456191152449265893956381778369373533029918372189117685054948491909765175919577727896074901614093021653849196165384636490736992897692917505181304077238221152418667226222060667415401756303388675229028691951102468923642428260360340571305726037711907310795437820665048169286735828259689385085737603707991618233566183709325092305753357181006868959319928594348468818224319760710269989237575102881477448674769870885304158717645515849072872694787157626585329891347140879337133325428541855435446263038358038174369572027602178073141293229878507973299705228340623963322061778744679858972556485657489816519289438958887049595812781615973542849384535968684353728206387725783867185674854944704338975189725144092944172880460061828602491653133625582904959220257002856846404518858557565348917756731362333687607935579237475170884426777646842004185659256063336095482901208693172747434150868118053051288642316520978482570034947350902504204381840590632342543978455956578947116274863859214352372977150823051792597589990786661592774895395074729506141115735599430980635890145869726300448484984831549401499632585388218002901806064202026257987922015829708504824239729360662318376198646686707804133247177926019152514018726139657295266601828138637382948980077245990767105924769481331187948420994411217953042046874009906899949790361229014445015001718051567782266437114728288618174822301531213674561907586678884674012278212456488166141920509057701254676814872831844536920115320446962484455046405621550090846986562985147923937842405253214390331386215277354790954523637757839717056876375984375360248135668673529178255163206472719938949384621066255023372022160210872437942277974252124207203917423471569181364250382847506209333577944244079798482902721235583955799732241282888967529072481611580785781790452746952486378094445252332687350189569919562409209001603740670494625645713046048460279038385374922431707230520784232393458578258417554066088943412367408944754974660041082569899751431995659651576242762931642515468756978979222467478585624039867649880741066294076365504780753944519520715339113185222697588072682759635357473814149921662911356128457172595648068250680409259248742017503686134573232502746024122002382633587638650855299481695670060408945120081268403921311266217859368211161495386039098445060957323929609112424415250023256532770510500859411108872554435472171228860603861504364281913007186984197593105914952630738743779585156266774743010448435101399896018250258387958863533914653564000919117786848108229794790938444760471814715278322577107093889114865260501960043718637531463334954288084442084792200483894088783239332802882348350509789537095824529596034049248066702520163668668224478183279794274990576743645541137906284414223571573787853620302408205535012749575212654522074527646833933930444091143015383680769395853431569573216918117835808975880996957148764103850253701648529857269899337710047922619817766844491868309769490809973632243131105486757183622635092764621871250041046014168272504826965958994981971046091056184246217079412964806528013494564933427506020810059740423959979712465027478340985279607388988682845532807088089638280266150463486315489793227236674248703491417975332073076032029638878557069011472779435608123145921764545735587111372893160272109008998970182229607507149834682784212535656245341430274289768532867967779098373688855297755142040796283623943187607984000439809789347939932696907010999494078325038381381432819117327614217114499244986086228488328250741815459103791597593456139952805303780926106468944631058867828120102607445073903087715405975423309096351849907842221277642503302176991482758205415617863514559324531603929102488010041060078812592506833164195787772818910465412140928244881933868111568552996720913920538069924743026220910030388284465606734749127271057978800021554330539497938323692079006677151814305689386900332456367015601091396852560445843520230461898655661846866258131320028994753984186302189815079917198366728760290696830950877639258850635075617349187403009374009148574945186269707280362449652542618133154309666538356198944548633195142957359146363439064629964005266323118757748981923371895368484117711151070369404579730906420998591899363744851106971325552564706624359389560050063107687238609179394564765674437940241489880833263304413402025997674219153912005110924960495495096666767603553033977372652676034515624729258171015861207610837352735122254466425424136615399953022792194066291290315977557444617620357100214230774416457836637915059290461752022843454905082923250789628756377250439586275444553091063432565017948395979820839842890401494882004517829460866668399934896972296802922142213318457264213452479828676725856339379292716763827215948937754155019566982736227608882102413313605932448026665522261006936752686509968323777000189568636605640690648525929786972837666591632448754354124906651656082309526662712403253518956127824914141809373349128426505230857527034631718949330412550481017949007279596158340644317673599350410065512236965311128499272750009906497030618984966785611615190079299622329672247242466889140953314188635498232158593138588656962296514586448141574195438463323073670051556269741952950902343637950911088510284617047291457349417704721634902234859934215632521324656129376838514794847390189709262704675784651831915357241468951477051847299769689176074918366490805759980432296536497991061120738282158884825587882646474555611836978911506796355730766966829943820005526544455519561538391830109397097341668328909873887742471478307978218124338239158995899194977091565325036748063141967405253915057186404111460494382754194878409973700873642599644959089105521436382822343381303023418547467108088196960802258171821377835325039884047039627218019046275771603176255551216567859946944443598565010253549670606064769221701117478545286564924923661056531646914623615433317320410693383214243416215298213448043626725937916530011872492016696013592799383644241080770264631159259615832247224732169958215336433265755709663770767300220220764158541553366294479140619045929918635364481921765779435081042069672945822492206546467925628064790349797305228644074643085432519262325559010738126867775493451365875351890979242123115156226437090350622039461056054958144110310406832110721330211406117190487487226447138608830762594950492930367769743204381828672823398928614824240724267613233822857395117144711924988938994107698382364700879684285054923198547907686232212790935533110281769245076102250901262561126958118492360034656893197606901865529011511606543050329672316735266565456693100859669455159988356089423069173903258796812276722854572104443851178623110122017323553710355572394237604090816380217176174691255633660743801478600054539612919398199017970869031416101209967395350337810542049395161264425276347218716876527206029540755399169035189053958099793731909665955190440494836886674330699983697600896013917160336758188025427911384854249309086651896155736868712832167324669475922313560300393642880629977684415940846280425486863049847101758895663278172641941450650748625112072448420915056427580495666801577969836925036299302944726052139726623977382754609177270799644174774550571372208087065640616580451238547225512773619319096145567525291272061074459415580054774251662080030077287615095921336479942401213947353108744641636922298069937225219776728488114182665227724395564685101146387835830189678316221486387033214695681599204274346145676760661792488359445715307030296201727392766283192620306897915202962123689380739666823007906537649731722250984581196311870693437711774800108682083712631343003650904522133136980178973929794419178085822267692257659714728891949206727286642981547485167273975160822415884553330718355265870894955815936392533610103692063105297032133608935229754806347860246917114559199232246972436835652297403993649148663738752144967753258290006913726038959843493779977575639689009551761943525930051499429304677470859493307771372820319767995450773180403117527287212059594444360992617529715180028193208984951219526712289127480796724257648134412439444681273623157531782873050315279712220163265908040557931235038057161182794710961815725724105289686887127865386130241680216909843560570850719985032175420456234707428320531134871466743372824044925925331891726053554948137885405077927772261268500933322504870698448205137511395414526987199700029442477719079091159544268188046285539253199863645190537868230551071467210308321501315373537843497921261328947599924206837311452111777600953887436486589767730792507937541165898027358934579198214211283889973937058147574374128155688064713856758589621498362901067514592884091042597903219776260202190118666675005866272044081045749197386326970213891565303455700508422248000926581630364215732712318329053017270059002024918766621452288242177102668130826851568222012611448617908305172160710231086126622978498683421699349065795997527871925008991405273045242302538174576684050318853605345305600241782578308702372672262747111562598773894692760934610660345861338698334817272945233030662097421533977288643275850383827666725221920391814687778063750571663684222798318629211378527782234439962217643893983525270283274829127704658972546783250659483886740180515211648020632835923243566393809957017544638490499732306554466438506140746098293924563996552234317541947718865507641540698010307810372308651211323198206237205566262980604163137548430614065495809277547971406986639117442348690213411010961098846033325296549421391208469497306177361462744586844413432862413748743894910187381879813698958100131977083803163011943202509954380471346513620605172733577775831443138785075879755841749629814212929441387927199081698678138921684539233053950252915844522102289443223172098911272239953820367432511630748125301347520652084169371528097196664594766168429246499395572377653458689295110639668912775281830154511590712846064098584809886774746818500726964437922654054613556429812701557103571120200765994219338999386404064493212216227610820134726077348874062352369616295688605953517353814359699017031682181801883859498115125764504356960679708125055926157128084790054923912979491137845573875434631544846872149289876764880114164290276999556643843889409228744977452746494100345335534241115588627055882129053278971542042203185038080108084083846704694974186668235071870302258820996353375175461340325347477465893871665633045671434875650473718765254303212140112444939282236702102374466261965574400723898125010041326916596880469205151653708498804381275537877636691987397137826755339540574098636902112997971745604685654636089246672912908334322835091627163655097393081584243443410688011891803838539195793683192628770661816587422773758737345521000120063913611175600673333351604306335686544736435427104996657443426820717523487934331079324557462184266521138317664021238316530406146151996642815238946379024264041502767055226453338682275971881187707739183993816440305095406387897081515126889697288062173020325433127082897043275899865078444237953429643945540042471996156534141044218420351355674061584810686393363243243964227147244446335334739151181653110845683223781763165242390943462667379744228226073030057920346122212299253984965575305388196569921081081721550398216980600449806431754747593436950715320358239994144582452368311410754797575891887782772809325822634879340916733982507757943286812956378196926795949015940722333470907625154502142258770180727376955378156787515553318654274385662715398686880921844726414088456847118126993117349388736982256012103732233320326819995175004653974953350446113379079411466403752755611636289293973698646631225692848648944613518868254309499668750518563412109437023783869364151180279545583620110137695984771525731660931869922244490270349300979797711184792748638629069438514287817993940813210100703856446309276622936873004704758119599686498335659348530544218451575529032854893811391420554433836552605955036228714899566496400073899129366981201887102243485592213241840212733988864871196053729662677788325751738360194119080417234155974751657758625777937475780073182769205764134834079729959256250577688764482895117540942081829398654087991483296010598743022737969175200921904321570798521509311584683373895529161700020054577735735306653339121512596578024203570812647021224563811211633425317370375711939354373703050796591130793338303685621383657918850871737011617662806475940774535894865898577826375275584595565092318162749721777929823900561096492524950929083551498665497299571358234622552987683564383806539634099582847431588414860192468587221104202980029069628014087149097871716709175727052094985603558401816501140610100850266649642182515016036365650898174756569246480315310794208535757196652215852250519202807381571545314243556862790377219157509841099132735729241230621433907859445165665689945203207822149282106337768182245373205051766766464093336249652531500030374246982502600590399252722810868018145817304400504245912505568778231337565029947314661731149059102105415868668423832017040825718676306148638823063675082611567964400284231491142235099518605210138475349626176372020102207710784669993686891677320798194823181782129604541012572789816058194046175103324634625152660135486260425494656059441231331208740299240020608202105581017834687571267819829916202682926445224605877719080322684434444095140859265221352538799104255477320737906612695762358986448772294052178565662875966740225778774066654558885046309833949834850136608036150510752662199459825092404886871518224298174350332047126433612141407711432732125907372954007266726852780480193462459100243059740000304293492449331430067944998286081151210219004976922351366128066259772963157564471658335168239928131898383346602010341720251607860536114063541566072048864845647513881237859550415523188783810674075804706046731193104907141810764920000205808893812663629007549611779359701850680916653129023737322866632981163860017885294079680759930456490773866082513058565860709377285863973370679827028735515065513975438101470660093310613406727135657823446302931018833899149945149082946288568371771267410206200959948432088314291708935610437374101798197676677691074560949105874110002724487223539351117180106092387043503395930210449433659193254959914681268242423215233610727660437706826854680458183619614793979881581526282815364409546444203519314292925465140085451417986852901542081957331055915359105700924876670906308151834900661064949905042831835814793339351765651979585118446377843929088890158787807886258615659939823285635766541155495139940310917880592285612072696892777903039100828424147498520488601439732280088845465952977705595899695725191876641099201521470874818896659243280352977501924034432261503687591446541405835569967721082380023300641995618152704978147614804058423451910921860450348213879004662448335766252758821897455082361087337326515407935742871281963641639612386917817339652214611339958339780632100909130225705971528217421876487480174082680283197122706683762590370662656287964804358750024123558226709340306708231037698351726124668512564137979105076995995984458702160320668777560240086368721240301861856203251129378440167755801293417118046795355799641075807626572127167508645800538125642517217129540843835617720627246367584430472698404917913449087157116586433843254617727923843650191573658968916055857909126820322799520297351119626673537754315479019322001248577313178224015781517869253449013348156333403263853662904980239501047064874664907622949163570657679755764902411055965512294227412331252855804892000081831888282214584303932107860411354831373529547126686612018860533269877897961214639961136878360974075373928839683353959160780181944234180974833026633132434252398934463796587485056259851365781510893497609881601153688718561726963273657952961211833052138453660607239436123334166434401605804615615377095084155329931642723147622584637200805921914635581510095138394987118093719768149595870507464234091277912822849947466392258701790204290998691451677877964841511960010270795827115848964122227742350836810911096845252415423714393303297617827957898387087834456213273519244743679290345411430402367250649658944080155770625343820037026018137802612988598270697527623025435714238451070188717410994701392640315094723370033518527916722156578638854307298516073466110567157819595610302789184954770260183156870123364982493207170081728349047763571827095570286546624134204662131141360707072428533176321035149623772769599484505504742428952745133185344182314656350969691071186732812804011359356321302981939034681713518696883333589584808278222484081520086892241190178462971662614098735924534802666343727203930590558014026782574554524950875052901631348328727160521444712753252045767811183036853459197675588030657431635134057400657795120682959866535690143139844845854593462095234266392306137259381531396262745859068271137625888931061923449232962739979363303719428340907120055397978079197348712582320842836061326640493791726132066873907909967368301345398475109820640600988301519292562953513312783130924444020762575144085342746561694809148412614699496836148674054945000577245807534619002012139976291255676662626527973392293677683639074494216911370854456475771229113308855720898604367597841851774738338030423921608067253496676015322366801351094794255792814885414892293962319878172563886696898920677048236038570404019975889685583551903143870878599695684766194003951439149407718719693576972799487550658768566615744091543287806342408419678852104630934431124734542936123777158252419681602483442670661156976937327922828770031884709832662011521935894162535355523558159567633014581383393627301841258562112993528629792209204014707733027297911267247269215347882933641759788346447434597184620332989822778578220085956860651762733249628431814449454752201830480514255093408925048090873791192913671600512605244304611961246437819259194746213720525821212488378929184219842998779106559218735251137803646549806116558482061703652491913099380837094240394219577079221545338828518764744400477435738519537226415567819237756971262333701296876597102837915523102480561313337177316960643486534374349482107665943932993185350692187131178595404496097319951720833741099631535860787653901116214795941330349083907509192726422684285670024358388168356510117633855503932096287396896363940874320306194359755153317304266511007658477149523241724476709516936630087319352803242811443046142917824585299001860542842292270522147630967358296934992777247406024511913441547635583605503526999836137512283016826372903277973454011815893372536786114424776468862173947025343989392491743044060112809008467446765900637263365849266129343258957234789311944388321679469187319528165090317757537987754028969298101006283347712567002743273086898034869179415526444843686307794593916993024101196508292068468023695616741023330028540920804238664512104927053830582163166024689491566268632965914465695467089289980371518260013450277263176592470709386436706071955931265992635252157268137947726769491335725154650412293372513269739308907018184939936979977718310037700759551053729636115977237992545111223114480822467445000576400883291792528172874283504292163712494571626432309551148327490732695346561402162034603527415888090181094178437016975060186430670058576777092419841641707450354974172767870056418816603173459398270296238501756404012929478836206043490849924719003579780601373184513532097786242668477640120982932940912326744733779998693600828844594789811837312012704324001073578115343999154897357804977051101653412381861192752981019502405934982554541422018364799584520841543611614771457400755468409845596771758259008359288943293099561930912746445790022029539303049004022953310118762177057725078185161008037829670914997031238320279095901242496025889337345454453201525892474245420731305386164597728304427483063441674475490331117145016891925271623665473813212133356635558973851234128648073902831484573745144323842091376079361791881406311476864267112810035015992110970337528239602003955172144719042393583801368975806607778089095129156893791184498364055255107152798594550788739040059048725957916587265618729533230839534490908990810802250739590914900776102602852425110072454388431120132903658570934573821758033923119783552739697826073294583857002787829975426937579090606026990500239436463150108472523870818324491383579807820017660488344465601607662361378089250106519435279370158830401747764757437679543954946433959327252024860738383473872075883130857050374498963795154795754954630231613486035366972682305457093894310677253655611660863011829446375037833119652543663323910974476108878804600147235785922915541033542220752586998382447294470905236514704268984069805283126319275951187361696497613216829275077895203802994980242115468263276942235742636619747363420485548419267416604715538164056421890799806788172101617582087394602969628767900950580982441483151833275416753594519472428265716354815696473172275853757308995093505558758933554077403548182041520681351732359280082482020479169848646915236755565716898215416622510842094436361773548151644070806396384406001453581691456837546043071837604414304976636447937793502101013564216739780736533978692979712803978909614127489586924230322577487450702737181453644915873003626876065483179326148306495182016285032242949646665126854257458390763088668977373472758288752007204103636916186091212084378301505230703746976330279436977606107002391853627996838538377647319058762234505842415248425023892005811649895719530946335634500997953538887187195752864847775179726972139317101462085511865260148090959060013215555663655037462982037236366194743695452535032166374464160669413021841775110801872070520574906146659268184718153357888798689675610379380768236488871555721783858033384194876256650654386126951206836804799006773812609456785481743719683082506152142471484516748646173691634099652537744133240980066367376612637223158752394445389198786474545626066852797974792042096906055241163159513411777803770811151923505044998364657269742288016558834638524941191449617308592315460622218453951084379602701918162822347679392544755221252317772198801205877118912530473137494351183731645304328735388556670990041986002525315379845656802944524618492018370661557344885530337566818029539966609665473558354469331078536497732394171518110286675237675193835368051872373758058853874714043318267463575480971278438226556872157547133772128763957172557907539944793458647328807484003525428626236780592446588739138654653371953570154267000396188699432666078988253079763869777082089003447128070261656561314885137230583703973263962828573358199590799108781994125496630822167507745865313975429904283887361529154548353806079777078521541500805956788286349250770643886231254584576538777378521208218268114495100038183418718280014415879584435830849558041846994257776228445135413718806146235196526336896152544085822355804524821132391241514900084219935457281388345979619448885737030089564253155831424694851733496187033185459032787000232255294625148711994678254241128217347435583331857026243841789560750001045697449951516704075685449863661135492663717922933794163897264022121731228810784393462087123178137375255059087328940345615307478856977354187203260280430480312254793379396397869260936853927894682408073977654986621513763669739726447378392437343086566865476736676337073590543965029186839636137269545843537572020805722968220898677394269856776602219306849041309885147877514739866358728186453706650820694513698375199047465361230711306520551516370341517481434132026174613927781345231198839012411028853082647590503134903942441819863107943319035467492944857850667136024638723542961413953878971088281041195558427980726551624323244278802668704972705505501008717490836204742767139097401754023465637589700032955762459292800860522775991803928492312675428694755332792774536693589730565736917848091562095361954567285614926549158081764483984272638682233693030539293955207275636827358540963313046876015304752983391530925723955997467588017508431466919248561858495469773010712640270018392289164219395217648590465280188646315186064939756807902548312106634506830514706624477172089523848846203934908596107792084826993891267321631285755184092230619710963971337107893648146385887178585672124529727248630256377724758738642080494817792737736274293763904056431972012828966158474513398151185161736081095167508919026507137998617705679862321595884357945458747237566228923236752523190340197958775111028326991505858319805692971774333807549028722032497323218593360697206260668482061523107837875491881960039009562808475217859083417895339842057905762727377911770651085875622392292237206118744248518760525088046707710674516490345413224073610505496530911846728615277981124084901853736178921975644007305082298861432631745872354251410892202710838343953297095887739017209066438040597386661881501146839854737960554409098255120731724372505058777526371768348879247901710782756986092178091280538488404732151587752723111399717559390765543217990497272974191723315861193114670520051080590687956347828383201453124404383994901474179227415412544412701061996128708133049018308898228563286538477571340345190733742448664675002044702969495365727377777631690806697069545662319033935381692732636763138079030884135659254487625783093577137353238034431252646087137357741781056062535222517422838309454267267400298430513705966208941885715858316536669366416199143969147428490445986500349218935375329958732401170197136483243113677182814059443390491953428950565562539643448697295329010172031048914112597066863856865042119261741576670715348611557237055412500183816154740363285924063248025950550443972315248117388952572906263315580356062430060350522211058152292696281531394169613948692548931126978674256103676330783812599119292830654562665154107740183210313515726930708402493416780023496297700755526706450375040563052161307843594538602918980067582979987921480372373568564287630900288867435873057688480288634991241500053561288911991105082525889870060293537136590813069501258385068026246478455700357648350928347907003791564004512658579137789118165275041540050301928486628640437139615611900657168772801542298410831213898565919055871546156119815002617718903111481746347851522424429134342784086346191746847128262251877520602253620355675522796498836112170898522084479153945470803639157929154423265599237045572486621077967920242230562652658178812461399404264381518882162753175153209240740759241132148081161527955106632817896346729615448043099276036053470737771933745874739633011890562815713550827618389463467222545499414395710407385055127451723947421364573353636322033834071276498118392781177225417108834074766989710965599503032975110842073992784857360310640514214309020146545227852493333592821406909345338240858285486671615041949465470733632075383515705326051014296357411194319259470555207862134354194054669290358695735155758022329469438763383801942534749550191837105713917967323346245970144086855873787312049279126528872026881421956523029588008292104831246164569287593187335726454854171083361751798675063647318047561448364322960972883579961638527459312880625647154409319711333568336354209774984439302528078426625250893668957354961592588624162616798622587143434839246643741974154118246987285619475932646941314869440563449086293853330873263106116829757960198113849324445817914548219669576485742054990552566113422868625573955082487256678830257889792087968905674058456020593591820505820383893369118130770604119592662366585016805583449330616454646093652741625976829786024052003805763829056395525855519776533831567613164498739225718229184370965520521215579802858968487741869879459246334951484595384537154096787243982664997984263649641122520580377763171327661447732456846812673087508548206068530642169967675414463711131415393671905488191320391200102137683479476590100859648742610435525225576840939710148139802686137627149107691334360852144862234538527986097491156140805033388549239250544113098045708619765524914477626991155963154044085548415022737751472491324856979662995357751407873021829814910108085917588788814115015793802133975157701245000947773124490342482995136590428561129920528688878830078662096394253286680716163981387658050876857219549061910680424251258737579183787392092942669466439464921000621257194108699905684814284167036198178776725918420452579285337159655555614847007453131395917598324843707899155987771813932815636359382639114319901824693577992512691954444887937883578382970129593922134978323196325238445345893683108817302047467072912009020280598049711165765183231939366652792475188986444573413288678856156043384209443516574364117354264993933564499088546836458950575409849300951639702331368396439774445215586167111499181825392682677116507408214666271066353479994090758725768641553462044203573720842789596250083352458506776443194773409542081998430047498743273691431181656491933732093972858977776533570582959226738647457398032094849193221945246475785853273528800030311138217455758554699356945868804392787260931144867211471559982092163231990535022694628211312262246773227399633108512322750243985832470151251599890482291767816227025310481843488851557925535841589853981788378530776833693940188150683817351730431560052374849925884630141437522837996376496524323843133885002913732241634027855749634746617519368497217753723338499242554346966700760108956651137514877212333645722440135671421535154027478901945113896274968124591359253685113661009223719996278922653409249485294436083334602521765677749412757058471504459209905045868740696829081929929165614419462052359315439100376321489996642193669607905104305925578471859755088254298169786296104827168528806022142102340977652003162949361468374904584841227670366937679326589747075520082027503818083465692963459995425971427807264030139132319953307528150318501194770813368585794908008213691158643292061618707789545596242754059574019366251044331238184776040366734752214522103900744020516792911650496220709302905704325731145487631741852270851549841455496472716374053834731136065050737962281431879935064935840928556394590101647881842134494484013239142456583340994131179859027743594982146502877361159343676669752335566910574199591807290845813924634917109778674409327712813439434542834725973509889633100586185830688651314384193217072551692994549073704842602797490023531460189037770359767119513894734693024943256244875710700187574213185228420395135312187130965205661644614267904235224848166607147601702865914194860768345791632771780073860609642716312663991232127505202584593527969568129171295765629701805043183948321875142623653911544273864388704096047135751094521394132065479085087446144596875832410331964057934390177149835741153024940883215296019234895989194113530487475320455616560842855263611150391658696322290282657416382844931992766787107632791688359287212365832747375278591967555430742195678619222198954508138865809745527233419791756800333283701966749208621420262749409773204632653357396716965187638307703207741737944830379876583435094976735126337846120245932376886743093676205566846649124393110193375957339828238249277737906990002835448363320552507956763602434729726303412098961266062446387424913976143019269948995626694607774684495488042453713213841591881285693803244590311762057673266359330626807966985244369675300934600581937417986120096617826230079460361525563565799156843146891619991713746421151503178519563590902013144632227590399402473717898823648728601533677568004287040390766024925849977037816465036307370926530849021746487075466236922766753094704676298079847724226272685215778123593024187139726898529613363253763359311906510998739159733266656104842777967406330827320391692723327997332628349047615543913233581571883798898753316622734688865952106982966272297888942912040595183251757701346946365205613256467261924853721388770536475390700534712653617263195447128861455748053642977799816688023090517549507341963249909241079475087390972372917401075129700727720639156297227696577471266950680580550390892524345828573580180865240293910760013478269036489115432605279281593577767383887674593736799756356076567559607231240504697663540293289682779160280114720299951454861988026779284328295695728769219375740342614391995286643791885704629445849594991832399608117683276413856899400408525055736647689927522285448065847361530715676783809867379430471259539758416544516418373168626162148935704884599532773044888179539954205404478812262465299445751325183518003372700302452688995053279698315467745234167046611260328120301471036995405539591619250039362114495326881010082101351737150018549049468980661151932967704957367322370415999526891974862240842504733864870212969879609173516179466323490288851727731202561653263043423096287480973571261817419436236192949031742107677507230248176548460390289922412011122793497554889776504805205362393170622472924181239888487628770822972813228557127743567156533398067391309945953463773944870828362733391607673691959662651712215108657907821689336506179477300556199599031191401267497664245670096356526320560896596282236296987968986779086737178416788742936770227115041863542486045913989919717217608761865247909850492865793248311022931708314439930749892478541906203712592697856847535295587062646086445581880506421585384113454482920647753102249112867699841154192227708757527433572959024667443695384467172338053361215289048350883560441198850358569921844084555893799209196191888218130618100408594914594315648926053645542248206506311718333217542465896792838509521218858076763062006911833119356350236259301463493437494629074633083836490370753086892275201813693088376151989724253361291576895008891377362460908761492011548822350234508450533831925848313212693009419804934871459833253845829392969114040768166248368631507793450218035903264886778808725833709428121111781849607556750931091534451228797050361155071240257886528123785225266653772837697054123588270188785562136999588520300541003747513187402877148316046477084299727253529706963907813389823840944704834180696844962743496915764657226486422036119342867707908458364372249819683448804302878180428813580455364568743386615689317599862757381450898917482765947770942528430925561256929783921439215386278064545883053182502463475789550473648175366390790763435509537843261435890293213733058449678611217604835490169774728781600830713551854676132737972490468653803301839867137112485927170889712003195287397824678748810576625840564172158589879146119768088237688476508499954263983516020266646729126863874689625201983055066616861108401876222607161311002683009950583780082916367763099813838889743399156996699385843158232382675428463646169197091944965145704854407381488896664720231109575596540486910296056193246770450630237272518745764745533524095720424265230695591630119001375592704196497206323148152335290867146096059795299646677872762353192344075686871662135070673771150901977134042554509218855290426928687377616919987159292584955570681453919289782166867150258506182208672482260164526847305482594833366739005408576405474142969381612357615960495916433005245276226468121056138862111961688581618076821217631133124286637732382540581669768344617434842819312676767174429015018143983646221665912344431560033539154241259216126965844715539266077236224670355273170403994886668946991919107130312888506462804202349382623078874857681165801590149423625000121314157183171459312273792273322905367862888682119738135283005355813691832033372763240148786705948638586725292472127471439529438528334178517344467003894507142300757846741374753356802003594344526232905519701581242199150715843493416337027672059530102127916850479442401122944117482856703855266647228881479011150434733541349887866862490604763938805136499486373756654646735792707749733507899826715677960251762155020469288136108587052643773207103105519519383724734851530989596488433891536868114413648164317583372081990096232747544554772594884177391993003356671916775083508487461968847052224635999485007074756923507348974965850039122439434677713285367931284185480514886619226328347683272048515097576357685729242252831685488169387231638678168906382181518916811360617211804043535713980945323252840919659158383959810931084737733449667713570203878075936727477498555050772398586466513710954449423239005008959680627418761545642996190174102903623533883490337372988469276749014197634344033814848546752953679474661253265901134718751774810862671935916868240467928446082299889115160112311167199511092637649636008601749136266904603135578570426700179114984625318115888278691238050087972037424130782162175166657019612030988358353644314631036916505999293045590280280049506179408703376405926834997650453189764699678031673411712310867050993411724724400202428386830194975699320123058639574795585549614511965119284457891292349673238884908031485463769114655790665946811117035541663733136715204600095811240205128548343845956435112502062097450818743996069429156042996253364504542744267231354859763369273061731753549535192537301867908886681039395161634354887341843572906697741471254826207130863204401159156650195026068743131117404372074422793087988531696697265048173346796310565618931156524648083175978302650084407801031518505294167739558972058943201946794943441291730623614884416548662588238189995797324498516680731373764749726482453993013020110773571354923313131172346907844774202101614457798900216538406806751080686123705472018778966712444806891461092448563776999507823687564305002149335819720982208147517636806371611952007522902848792300754381368917969148819829557075478096504440676853897132623150159629573534656940996682440933201426534018380293035297443216485627049268215078401963777906477712439214573719594955719774964085740770304599216341318835619840258936888994832732667643794678820775401750701093496637479467714432637430847642526270854151445511108194618828851562951239934363717930553362632066236041907505787960058255514194421770420024398574829003396330288628997507268625824205576527014991880209084928211155464255232801360365371818494894490741133423153021009553692299004762456768528190353258723284424216214057779282839923897760874942083198510289800790064704437226160858561207174154674380213771055878743452350043272469994902453909137785821107245793705527198371244708397662435540923489069250806803321700477601336836563143546643361690182017569842766125764165657311374738792121593142970781714435952809065215200342411745918119769311440628070107731337783521972862603216721755133327183612204743461413575158791578355162691191712924682673542830257746388007810098091031578231666557046547561230643645069993390980508368528290491203947585931680307696622991881926617654777736519962776128206174996445718962510822140379760831169258047706168541914221311167184500424597467026209486387258035077740727128267686742475075082514372661128245741117498069294551806436888627455556839812207983344913298320963230526853161458363044711511527108212342435487572435252345891512410167655881352110800039734437416068910359110825476951511829999840229517109412831043373841567826892737369561742508094283009983875520536927230814174711829174069970368941583700650106429326205594087816887610070848650628497121782570737979265168752706174822927347158623302196911885894569281547101149311799951685134619500578419642834476220207171675882094545031205119368519491273877096695972903787557523993608282104888699941663794509691916197599923255432250597758699256313185209488258908362337504743891213114641750942868489095241061096838690824813054631307261606900026571413464262505654331021090260492636570171761913916687123371229605811275584873453900451870525314247474170494870089084874084643505778235864359264704273379845891795300781945795971934578107888003982593858984304971980971167805410504473272146423831684713117305025824629157340412493627469194218604307194099155201078353816593654221485497226930062782439355641479281522802384252858450977978940396138733459217852143017344076719272794597553491225475387383188325022153852320242982870517899881095639536493262009181881085145112332327004356403233147118515975291812154806926179119698425131659081912821936078052125172031471690786367914347849611575338676897438179876701781013187371570501668975366734059440688193321222757297643034565387690804745880687932051346364237536490270200417167849322427177401315637128686257742368819830723101778668950747556520851867685733658312101310043830739915099555055154044142121663319479829360144689569892285965826715489665365456644293772244902017957661360732463374609420413190443173129226038203160133342287457526372959547761644203733943974014838388005169192953413568968632435322664840028323794478864322007235871251795937787561932533445974755438248435490196919381126364920014727466630815509633465263934629264860892295352157965136289759265812877939698405341812534647216725597112627626354804255828963083828214556220665669058128230531921923948387209811271842335330618419623212209881814222004696472432807568046389183122254137904281328037431975853105519827992325503271482863786418725029736465417683805702543780928986521466879915772546006179981521410134298532263198112520226721210003843688018644939150786427692429915653358970904156726865841150697849594043371848624550540581413302300504874043493103118865827485324503347876683819852716693730255996908029222955414056671346482697179577483867651125043623754167757717731125980799306025918827020258249643307789933639412799405983043713759650652232174781966802750562501993323365909109878979872417000615347521114318510658196368146659419344425083116820088990168940204233043636720644201458403939653136945502771590762135682860435868744500201123614717390554601391868176925650579186527471263996592678978102551675358017268029884118243306441989131123703469252839314390260502396209888631444084068296487738070587017314358511133146610274835339500269428008384203424684222706672979430903485647456270034141646246181139357839710681718067973365161881808680392164308948584249835466938596752330990603043842033420614919817967790595649119832745047440893653944118099818199775121448136495164875227090067671443647283370313207912157500992177814019047098885172226997664503036765879746787894428039357090030811560680673114281815968772074153192061388972498186007170085147661624191245541370140868266983722818467664129435617339787809282792337530977017019881995055718717407122256987228409601745827117428448155060519555840993999375944569186497052627706406002806344657163312803748966060453963409027297299196383680194316570065643115711283491039707520865487948436887691661459535425115657648071831546116776265176149062095166231050494174634360092264443641672026655137319873066837336065149910842577849198261547151167855920661879376701025097125186409582084438705216603070701170861930310701332341215660597235787088323930769682492850642652004206190520424003623151254275284097716535769790015400333397170879991742747110057930038045814746370883785454271967495764592730019832284174925891031739641262197007807990679007809779979120562905500135578118079027172597246741185670161011009100286388706934657784495138317124206778964948940630513727909171319993430708403247357711550002775880907133487575156908503352882050101321883644708535540179565391612341584039249316667782954801599126523773830750500374902684998828173844796627550685011130655604995330520052890431786157870022343354636641628747770636025706047259500362128739518840078764148147577563167718990285596474944384928631800297879214484094591972637581917263516066753514352870477274234373153567001703545091654712715381276280684054376716105206935734665130389522886645121432581633841932064334210004752874092561867176972366347827065209066726286977644013529745267996486458754107163182443395496469955435665818162163262388502639299758294532810221639789007093874165810387370082087010309948139110146359178398632563525033900449115029938122915574418462840296305570043915284933915752791607089639848658441140726717755733432442411633595792467424633177500497145726490660598398185001430492013087742453573630256332854716837045417157333413395667194193736827361258521401088948563687981581397283347831250735647062173702462187717412553532102113439991089227074649977921270496969397424822394947208986503354545259588166825325406452689219189714835523186342293576618486857768299901166807847511658216674707929311140969273489291496299458410785143473657800812346335753913171685500234011924180475429805519866716092640839446202940086932229567643165993955149295415166036101310237216673669382153969092693008291661949062665484193135014066134259253094438307236948381001231789736050891002234549275739736274432569690360023396020486570853312197608493881984457014545139268642135319861199652086624419840518463575394169262487693429539761066256454972643609340797112444905852703248653424238433866145988094571598935331974325419883129816931437526639973399907461819278974578312724651108045386295163338079214917358908377812351986302930469797139387128577653487314786473436580661142614604004705921347315811507037893637148101228342066092436522490063217447720386398216500719631704805654773553723659262817075813990877275783820315554520980512070938475756315801202433751164679535113026990971135438501225221302742270191146237516817259769364888938399795975964716895558735319625829895538947453104558891506054207551102413645486108182618341341352285289928607682064931719085525901212775596680604623847384405979274590901909806928168592022595134135568508598052878728343679523227280916448065590593890557271840300556910262724405937283049957362553143988966427187637904487653340942383762441925055836055476381399673922786673657689816104751341514774921673763844960027131094678273138830770193523624372234067080018584968567512131126580159664106668592010822640898099868149629744972716895967527348483531514184700695404249990585418973806979426931406119418671308451049845132287757691249872879985408414936557059317530954859745366599644378386749184387088244731775575980727426653709880181830226029505850889450329829640080570621357983097973916675904612818746313645562972501650511085604436965813571120158837650847643513028905840090841623742278301054521172720236556001644821718090844017453728740820824196565630193535536387807415629456833010539850634939104733275076077211688486289084160981819952134669682239560675298245102847700804347522498815530146519583195509318474859272555395500214129044014396074560157291987245292571397049839192207928267562420951432309258580474109072132029105288172822566800846401336904276598139463606249984965221533500226869777463951237681958790067366741369911143684427782778343635805560152596062288626329411668774591691844905698053251015664505292550602588245109344544714487510664564073891939394595022783266151987602913851300640987624930802234243106907851372130352271764650963666742101897225594071069474788614351745612512348067817605833279364811666589077162678803902001114648453160150738097340597812989834326085500044318503620395454645866739826853773493677506113128711873085779942280450435534343871549074637132743444039733989076994725551666388197780686331066225054252781853198827380224884561032590377045996108646095304356400819492861564019431773239789591808938573514452191287010103028280754403499106166473739239062636556615717717845292257596462985650741372976661303615933602532791614061676613736786302161288635386707519874672322949226358083059485215280550534621011074496007976349046379388450456339120768714883901056174132578531508310811221233842475603296174233960081447003797436625066844256218205833359256092935891383903939107535989199319896133611898326621825340095364416394264903935073987689977023753753703160171637204944090199679628093773968335595470479015224044793775188427115186880899094138931916977675974605494765541046415886076718184302613326828438076886849053913501423206241805510045762039009633832134406499688300535973650370990393345270197437511416379780006199349487815047148631885549961957851176348322299453984312205318882492006744098769836328678260558162857917075095761759025054778290419046703688527085612096493347185910503584051175880739277201865809189453768691490682326929212266703887335345697966236231616061455887618543601889782693787356108336930256661520596409073363402626697849857717270371512821645480709653015632059770331784284075596435628325066095594455324576447387218215227226645986460764837552285423501864401098231799697244536544919049561826929543227435375167193771027668007227543736489168682764825653839506910908336245677531055359050926514984420494411233681890330751651686680392298076621414029583459692833825586623324851769915620253311149787591140081891073036854242988168979497428446961071481999569531675526787461727360968004201770018592839538921027205164147073281612622073651576750579439252682151706539457570837656477762637711066086279291148118471701622695013838422427721518085791502942108820330002391446745332779146184153952518950804189477166842731447137649012177490651744447002411178769256730114912018491988626434461816693663403951812979026543160238602417782575027338186820406953088210464147005240590913797378895993177086337829188796592890554536609650403122035458837136311660618740281835127566958958975745427520696239583467346950748455575623622287465339650308474805988701429115544742441648732718262988128348551077749436746315990120444294029167788329861992444015050427291428208646156152925135239961627198524882868894093460494657722922831018216402773746148559386257555861472860740968692409413539460307895249013549284120216704206367581694226367084078833229984984335133619663316632459782434148661435535589513510435751941156939437593122240265883691783646924144728416305545068760826207581610530865923482743064256378462374661076765175235872378296228938688668535818444335661762789063871407823107364156922174562509596644551872239783148844763254842744467050692696811534601044910747562325175931902228106589464763477669699130150973848554773583319799069966362544571990175894691317766476756213918918582794254381187569709428692650076669668693084771931027861758042325711687638089372284440593447071784093368222970244800295525026073903081593314194190903789970511048822575204281772126482251108266449414427146757962688423967046354045116256429105246570292337446081745386980800816482546910101487673801431459019464482992152932000290263878131927456988850497568163545159528571922409406096202725405040875354049725898346654977252722030723594613277821932797263785210732144134565579481722117060219532390825058520254582024112093007963472383260961019210802152627072902382535412619816333376694142715091889286117262597180123858727093402583149318652319822604456789074002216343385538175256569928751679893552982265617976560208193164991123750414084690335751262282804013882117231956729516546868322561300488795470282323753515799751292788701672731375748829910209058512129351896545204428832486356927686453625983267275815794096230616639713103624461465229971415288439704240673624186215086635190956449713156829462544403304035164390919037727203318785010777941230598878576476984614703500258763454999045053858476700781128545815148158703486283740889514923448466470851988597790619792907619958372078384078280296176778999056929373402153930236766201192716257252930562269328838366509141160316195358948429078243896261289330932272026748650843354224124079352692419834941590109154923835892008387485345509769418593788028173268044548549949117611853839868646845010447895173188023885307666871401774510292251426834690309255697350602692431658358127325383638667473321706628989166141690946785530043238870171596567814328528895793555700224539141781776461214956931366799580372894303798487813784018670233729006605639149413818339684913236846355823424940871749395682075101767708064595985919037479169865248676209064486669233789771327411682389304579851991700568340472184601706849878459454180622145890572454602013653299941910713501026999504855805173441830168237614608027067559740423214052708202789541376777875214268212599508822160452265948463984265493993562836509793666580676017305499684237904727456931000794487707060919209320252827937709666185288074722383359851956346168698073240119916015356272868874579680699752321856908533633772691070012452300319734560349243661220984773600281853386014401011724155989606784233941905676733104902215285104533499574406653496714200788353030999822329228672514333841839173878663736545559015955630201170736528729505521416712385945374823426914064848048282351504157690483625772753358397927501679353211213409704775808828580725157557684282754065280134522311243605786629659156649696003539783885330257977654224900240569645982405343908945482905513729781488550569720047097216135041643216998196816950612590160495429666126426422878655690132628100174497894291259850188961007198183044046124834462890849690093472909668010971878499750204886300592135091778755235683675578167955129391647532487614779033182295953544088600231517578051141800085137700682270667784404529070786001327330587647279892890032693218209346841985291746529382278274230085778791184294651758755122440977002008044158149219533966560264956489201609374514578404785800647985710209741238300283610736114106906905607727107949609552979422378811614549052176388314135007074348263423859515654933590627982770714657106774335710309373593110176669386641151155299345569359996019876907792827924381157006612477357176423229092847860539408268152148315728234993575861207206838601036252437721480296884230081656721324380419458827490121964261368931594698437150426565848645769022319221756191923139790311996956192625689266223952392304803079497278862044614726651505833729091921149001406752342377642353480441787530316325933436611996227124497945354614370270416346236873200075865619195963511127371938121375152493531806528734038045424031871197877242119871006906197408948508579352043885176946049502817457683086104897358495980664690621956349272084778948057841606822650335252503949414219888050436820056170673578167541525668920655095438507466584345952565459524456331720418516504978719340593207758410190196145353235552513157097648111365759038395476110769030486069801715309840140810855275251094207084894796783925947277136840910892812660586153747218388033705596660524731175819991072876581368131776283787721961659708927389593341415460995649479858100605639442408626197392319459953516534694093837795833041663334679573728021792692349390229916214307328318126899073452835097395404631704283781227021747265927346831785893094464286345813387451061159824914182118503988822014535784723691743096438506510848686378850664525443341688342398536435358409536237333790302692452205292873721961452375468620024040595501455349489556202357759171882073122893237338800592100549558294834487759791846047371572783260287288518210186675850264971142742272572189263512170437169802757054672310433269253730851175311775478026493399822115711648590594648100550144673589773859625632506306756734680207943232614295132452619680647576130620899920419940256048057040502370327877110995150611738779362177079954962201970160798116888043007075298664435699941712972752249162074595923368571112215136009817944837707300066405001172727283730521053134763053128177475490901510014619383065048299086222988382053123797160484825151078775799490149432123359664760377470922785976943594575440129309866134718275247009869664697911133548205802325067949538528458981163840649583123902734928406733393451320372381113609567714494083896751171605090136274986455558501513687629874878442670821023706646449246846197558625613978811030505743064077316768567251545668533010900865488198314214406071478229966914215408340580432983620598470620807930027511117486427370388580832372891018236109353133566591105415455200489018869940514838223487819103153616346349646659074678808653408304091124520862433443368467362216035333574481651897651875466973407412889144685542699455982938862588644598399770389989586041059755053125152857373149376057597818997108270295729158992547544264350632921277827621717261421356849887114202371445730548697170551460942021889066844003217427186578621830379571866826641096657238346841119798485382032686952330744889971385740069083727549158277616091192047466460281320052990642616765036271817005595721635963896472639203175871611431101936222064886207037600854196473231440178299119007795764151606864045399456166619287817560286034518102606254326137223636104427487008970420035587342732089944550524044730475085226917446637314403429808618937849761155420763227780327914324231484019196043548273407538458549460625547417875144229857635574642764118361073161534491858355308085236462362333320347726195498236571771017618025718795919918892875567769621518034655368584405319480394623373366431526861534789590931655454706096485259468105576520249310763692250153884120277503968303867264715762506521929997615916096935410299199578252076685574512481315309091181320655187196766275465163987052931762695289894270287150688718696881082704143121782809956958852976361819404407519462026382669142063962218101458670506340721277932188174262174370503761815271547913451456085556377791984412634002017218481477366327130499030633784742397340437809984054980972697867182988174914911453863081926520020956997158028940810139045172286965863290738597268851593913522837506065452479176000595956401639624355513029709532957583733288476798219522002322922438635456774089423641916930909595379036574084558469592472739061306368113562050442607469863961249559171801644509719174679561048492071698069296974109428140979256517915757615625768928775885746333474334951484236397597367048302526055069682566036770797196535987378540293900542351017720358633507519246956867033809532195265345245176791590155255688591450884894163277022939308923179346758526748946450838921073399497065721481620357709178031369469965667917649763316571108178622549129828187869334778107458726569619028785888418507575096722556198350784352699366316021854260614238868964149718746341010108726708062280000916174318875647852278511252766355093827458454995199252746333707298812474603051127067871481029176872807507534707195994051338079645028798474213661250290296813109219451067335547857232627686181094039113531067097408774374565255187842209476512151269414075907493173316761247727888093062814460029246046804948180162779619317322215467352878522679412376096745091112028885262452367720663544812640380886524519189475876274787871046427572192127955419884653389791216692250989869307633071785871944497271937274059899476815350579258212953318500700352432410890190753611270850156601881871609125307580212674226896501617307915716791112873135376047213784976176832684931297190905890284667699958844728667118359374618822386115158734687412063550079325033107083640976821192269422827930358371700183895603760028846107414626019014603060196047114408487741512949602359252183516438337609028945900481463767404520458334734267651882067525755746671435011260497843231308542454538106166509179401516029664062465513590286372354719661292530572334507972155988221483429179971702204647134219370074395819311717342120724878397230435473270253699741054190805947036749104982164943160242951355357226178520486871725383828745225855435385087154959057769079033162606790390175698895234398891332925101486204617837729662789142396476879386787830014116496923589407337284485221906664792434386993998049426258509558934707945903531092857711758474348218195470492953407460943347325201533968148758094918716590458108133609559570850580156062898690699960852097167653335535801642974742552744043011078421555321104357672657228983015259870467930505138393590422685328712003477674302139852899400137498017823625714339193755364359843928370728018291817599328714680731290448955171966674988680095849310618667692933519762549673625919863492987478425919282738553634089472666539276646502635838933004673336020755860280484723190666910963516585000393615735973366844738675821429525437529065896923337640777020408516310471246903340460214591392520176207458785119935351922316795990287563557504762837628662134694320845218093176581027074251082050955834109641595489003055724637254300912843680000604825327576772664351111362511420648022941083795733685382362414789520951699785873854718603754245975598614248021512467924689797132327152559756450468346675532505003345258371344713240436617394505842411507241458216019044864926291050018748870864875393368835321598390521228312321621533504688019018193627690302592318749002578831456015025657898679799883302568243315590155110097458038386868503543999960971479365645563560419150539510461118678804450796900650553814004651623155965975923537849481981330944213395944690515472196680825142867431656024388748666212816113005416582337901145619348675743057304481994933244796187331454442365950402196660389565745004387824406422547635703736940546955163062374557665968163877561264543409753161197892511468250486597343640463513266438947322166666672863258063620922115018059405278812546523145454107447799053292714372193886768253774864789671245097349246692763633607681006173225547394820717948824393085800374148491774836178669344261066679210082151260143874238974143505050879963280219444142902085505417817783349396630526720922888810303318528692180415444367976798574449759622795777045001500849700521542170605218354946557589414700802088208734263209646979308975289023119146615991117247731179424624017968575485762738750184705055294523814798284979957287126973767683091009676257541790846657286884701954302638815441620309799169343114996090888580642553691078240120027069358840042796152693515167073185617932828613918967892205654516347652839139765115308408274100739558432427729276229081490274004306735205869891275268131704934276013725125430855489768149443993687126820882836620998518210183378133005146318288993450906901824720191636289500972368060922767633858115312327494970951068254878489685966448954305496881413524633009906369872787063447713991995564205232525302212550724705495582745420048703924128253016308281813619586147931359097646790510253390062058511959094259774662405560886121562543198146877007211202716908098744916903486109002487647738405472889981934555559596111168537061383669137953022033478471978340179218112984991793660574082251834660077953678766977012000177110280271595432754540544811613372367057560936828068652693641252846530807003943507852047184580804519954550575505763491309634101684108067312826792761751401013589145751106871654586634220592217003646920130981709945120467292006111924282407929497594466576487149711005862349010820729379645978031698721496965286754265216083967785129575557549835648595678032303022473224912568894623929654148439696952796845469198818311593227506109561876612114378568839912413305669407643431360502642778422219456502246010008552849303882511372913752683109132800137303908010990772431427414899937468402317840529409111141666239293325737236334817740877859808748255041221229576680329430846418949129642439095419843501750503521968044760929580984210392126921075266847149036378435625467133700509892334528755451148877203802636323477575682398227582717485861293533129854834947129948389018782609117419138155220050576660906501378707656203567824693608291510861296814325574392956436324432860055345386749970614603550332369715746799978846520301796962286715472875855126129346047769092736922615638718565017196348041211648899458256819554397735903679511696777607593228589199058918075309602927157626483127171166054572741751738137978650342317602658318887402748514907363134999510367409999653030835000205670028289217188415161137594777723123634415722366922659119793091991790651137002343869545189630787136724122331132762670831659496443187568564748073345981072238648143599211214576007461589500642697010242941277136733908708261013491879451659639184547228440626464659945478280536871429986543096263747729255183485899625328306657742854700659145066581304639489271244878002899484307267112580223567209969248733266917569116024461690286693202189735268996346297632975739676256660822052715070257827519329626062860465026915974919217300929745502142202694056189492135502022387022173428179566168256468287924522694915278275412895050830743615200852561812562290310504900524254031417544222625634618966647467007430954488289160952717948349640223764901038071849749809572838440067669451076311156051804570674353873485459910381684450431225634571308441478847429433489504461510825614886838621206591343133950989951268357019348882126389059668126702478985658430277019323052135036468582141199852567152087481131917230309857545316577836791209161450326327735341789621330804786035688414789435095869604679192009828034245866570535787661770755469777284649657592888785885487538007266310947719623030622219004220743575384463870667901799034163612328901865290787732801138628636660281048181631645427447417142326405770704681398567914844897628694354344775924347633250850379039620919706405875747158954424836810210291489657574543418469234209076621118786115631355783991991707712034519906598654931643662378711790689642474818918255267919194057805742387505271293026859562799045693643478373908792370530775428647289213287952165269420965122912198758745228128182279871407668375714796540386866472833038790151179007110459930075548194642745250751581542327609152297588681204022629864833345768897105514654435017558333809582958098782196123134755335982219662466762624756480752237491800790155205484789132459682651338569050072956797364371904513231842964851726030624451338588170831749175519444324583973037671054514363279783803480376514193958118163682123415288951315785770456483712403776653524677792928081252353917500356438998700410428193214381534605388336872308767639652261384088894570189333859090714134981881611894050342699931088385833931460565426393584004435948848398579540310146747278548134443486626095795117339647786096402082429146641286635201652185927760990577371750032129517573002274618212199868748129916315487529675126838810781076869877045826907687099602055044104556921606012659244422119704630363864963369733659634022509949398041680598414921394851918985555831581716084758198687174511927388669570989229497852154570878652567996936597271515210994294678267563544953187898495961030096796987364284878946691082844828576271389098801520597890847545257511149436461310345284100736989246102264272724295078098754838579393715925647944210528155614224443751611023254262937208387812691623881251610088174626658877053669876939037147466823722811385105236880513185714200878717352012986804961441912953531753164524932158544549895020395987304202811321592813673214783479654944398217970707187927173822069797001935206895479565106024929207083218879581805375359807375020445640477148573662798940574080884287248395696796622504895407272473609419720820543103676056645538742239772076825307517955888699001382633940207933277465384827769451223439398524462075727730360506832390345204117757744044217317805974672247522051374473878582829503553313169597534076534728826346213441196403276254752030886553678042299082764478099719694480562256114618363522958162852750162609936061637931811945596279513169352333255455324361643253141284180256643997286448457415779048039818212117071322669606512423996533820419047056925696985650511289925297836709977687563570262030549374258731534829989529986542180445352372912159403270347141420504052722822504344563823333203389303160067773449929457193828386501759162771811339560500919978095009193017911679726695874616262263394615276035896481491133707880079065868700314203980633506880340121246596084365381320325952892357522987790595026385652623895018989141715001132357166551716710947487919027552423368187178078544714928972176960517855985733138860374343718404528156538056357362854047048293737375252926646391721426193383930450545220252407921455479192365460150651988016676469436313363434695792845827353097859133297643247111086079588074169726484349582629862529484863858259946065304061237433754951148097532226563462408846555030699454603946180207180974868891015412709264310238648474182615940149059475826390295039147414474335784643254076121042619611103743439015589569148078019573207623511672120187145228606498034782316120437689308491084266255697512384765593520246728632166053103468928117355891660855679609526724406236333906450838564075147282101325745455934764700474581978886493596235779263623402908805772994052659459838883623141798814930138103216830365061093244654459063690895668441298699648407235172809650773411968833788765289167051951699533110210534508182486360423117642693962734128261497263090195912535872107779877807134793276222948342324292839160939994432521205005526424264803260219501287697578330561604502661782428885904944615967169686050959484749427666231661718871546372234815960482282295543963256887239765801435781841911669230772467066209409442263937526972361643786041466256557413097793885097484418882656590258211863000409118702768674026799319996386838218037464893423578475748776552830412203021719744400273698960053973320494088022013029424480602883319626407384948792178640839636930029088021392211828041702529975109289055067031288768949377165979289634690545561487813223892211591156407354102947946937693117074189780042008926309397286955081043367170965499223171155122832035492876712035323450983652939911367349410164256317143613136774234081662063195909366082263129990759770136392326701533866872158619819211745298129650590742131516937100596470355939462826352213615128911916363402500402204596013469507744840258532694544090764827854360586438066365630436158501182653980607780870139286979543278844525891783625825153361996742002769759299549141701130220091449510949870736244159433089476754416413911155008094586418247045472007878338663716222610816209151672106562850040710060928083353386953485642841283691054816345245770296871295165406748563548208771722360455393087451807189974833516101461348697086276956135936088826944146347321385587235492385967761336162334636581713659386415254283503388224779063153417983498788327962737929090725550615186155214568711266790666530928295427457923163717809957438391264794714720337251366493541128863848346491942399698395333981699599721359930104644766242858107482406186452482493858792806294155715479653773872072405003099548073457730562538308435371811358947787467270006959301579739696754042176753242927791265409799359650101169449748309280400697543824145469720538934348570443937995452087312302343759636960442062596465700201216424625926306696677845354670265553105507798266894394560379038862209146457124658224234101882247564978855800021427792262515340985185912990251007206588684186797760642784896581929968263539279176515389948708910462144493141004792438312131626553910819206489100902222413739941375068773661675298299729136284096749736815014128384523278992166831001107127136914496175875126899165068545837642445351644863052711354124485109105196756430832101102180555981462264305176776823068213574353597838024101442942815672896471025130024481641213191948260653101923963444016179671310358753148638883007992043389516599522757048503929184920432172065923042347140315234375332153069533483417539852811582032108638874849181230355383706669207668206350506424953209057361487479995489603218230650195523455752805215351168501885533004695618716588177654358372030610696376001977116640868231775643888289582696026436523833126849842427014420678948346455475585434628607165880944252289730771687060340644309208838602132293889345022971040134854355625668410265937724162991272232161200065117661189884735460331551351061930940202435008015075793654151797801420703913319140474549177326041583720410484780845027575253007347440975343538774036933544317330904875306349761097447718606198279043716571429230953606078351934958444225451904468817742625392124984348594747026159021275121229242208361678411687021769753736521518595641906589242489780827549946565283466205135954598751088636471180329989039374937713773855457827720392069597303597551009369488632475389571371433942784525426742922432338165639335351751324579885242174960172049911295775851896848651633765658460443151803353700312968771219826395234359648527766932454668499439196512067668803057181195376033058916009140388338537702176677481237430941560976206916060670016357610313091346613965126858572267889194389797009953032106214270194383768187724102107471268672329532261010221607846015887443785892331801468704069064924512867143600551789842387526639505829947849283492524275068911736284710676119546425855085266541575307590062552736245944010844542859679731426082857965148525919223021981478935469805622788557425901718586535893867487126116425147986298873081730992990556239575410227657578102428817522469711533506511137050811760665534747219529043682350083456309347412774407170302259661777761775830854933800981706535314387103806091139076107598897465103347640697429209802667982354246038899752729056895880808585556791897271990355456149517827461445475818223044740135673733803530573619767463097306340366814154168262328476846093795700302607560928970023508743779399977402722536822556917976174803157029634658080398325786953904417621051935087638326555710324108165096065289708258796641971252106176673111437129166335305158844402975458346180005501315629581706770814284979255056406544349926370155207347914441320739431995980731901658912812377562248266164832958302959710698155249484703796639045829098423512371572228924217958066466398634430535359038247809681986214984326416633960821631728276070215886510569509030367069729836268297521528484906091712190912217706843207194305660147679673433770163152895246638332489495213012181854776876151393316883230601047634485036605849715215559915512935635710958440720179652993399946476810209928568488478948392979325683605555900776889471826542974701765474548578183020797626025182190221019390914296827070745819581526293148295142020926119300817385496296965977901294548915487892738013399241739099019632988788662232222789954097878220101748082643905615263959723669194340966587507566766103889564551101306776195235835528163331687063434193601316876328170398209066356811813498645499400476660947622689751322354075481724992736031758161851171250891885869261563525396411751236675648619927656874739126131956867970169334303906259890478593570887868736622730092467573075950033214571798952634682625765789892418131476379407767996731757644823739568753876304077420676706561390219060533406504195308921012666291056610696753190193203203197673800603801676859838889040877289248304981833118999614841671121107246037815233238002585959820889448067166077046301859575989299566599539573287352062227199592570946719848230434316112024501433623431495750293979090170527887788391560539090345178101505044944362734385373910558541989031637104914142580697536110332420710172258451709335719628138478469413023448926398599578895237985003514310836048273213591522537972544137498965269338488047911719950803201336197955310937295427940219931493984660055582260068584389343658643614535273886792915351645311788702429428652273856185635744549770778878804866340244197445441716393762120668612561558862519824537921903166905863626083106478886911412671688577832109554822941646617696816590452932320031690917049556248711885730317412680632437308026238884790463077395373140741793758607911950134597463985087571639137136295393007763451538021307170050157438103341828093559033285629650193455183925707000615058125680440194333383789389672300934238492722830427342486234457599268669153708600804519560028668714756904954838052444046390987881996003050511693725200608369314407387368690997697515994384497405165751397381354900591218688611749224147799951952160322316914746476674834117192406081879792268248467030566686513489085897280456561085888439689982509018350230113286994322590465353910472471487889023068891650993926782693699030370442417226132011886788284754205983196530755371431604873102690278942674125444848866990866682097443321817553997362054870537976278054093691163530882224905624813651225188001153102008224293246341542467881606134750503801207170407411633386338749534845420685113672499082941095639003324217442709725589353729814277238416312574388774275583500329859622117037663095592890505818454545373374019399626234610050292693457911260480972728165667655575726186021744216851568755894852280730594701817621641539247358732832023318353095104075865539764779787864176930103943000149749254453085350513320524395896607756802873610148050471595331354622363878597733902533515964966935471234170913673787704176606108335726138679723814229693102723115923050431118228731271466880855870347232357548011223553893352242765963250168795008203188127317707892576444067754547421631924848402560005938826265062327852034973198826300818656238680998116265302240733309950881959930692137233290360209080729093240972914409916369666996271651804374705676148900403287402062960909621165058880962814424637384218233362277520928115953410166181460585979579806162156947867518412722740496757035483725336549734652989088430595164164973486736318234553968252545828515896088226283245800936809721162059375601028287242351170235705860715448747361192584218171174960704359975532676551992843207190389271702072066859181705144477668805186530194360583313025176819271297063297382769423374379873375703533619005489773378040722930679048320730192019423116574234237219120704201870563066911953059843991839601760087499974774158802689892473358462775698129076597604903548665742134650930944071009971564277636225690783184482749186163910068147049470140364172021220077815646575271294193177875001108510049790466951087106874069796372096349431445380198192483527644012728319122831541100968293519369557884356518753998973943130403745930946101953668845453872933522840605130315757811091427987030891531297537205860082308011970557568401378651420324966636896794712280653492979718984334466852233216294571418001525624442705505498100170197531076166684304292997443553757982946060253050758473896145977730129885814825375943774949270377900228249975049872527704314063250613732248529783417607027961197692420140586572275142766320098273962074007467016966293779470519138034579906898163180820289585343741157477506339197573389976111405290213576036388658627375076942189846212462323185652059756653735431878737147819014002371891948755214505750523243361665505914217055318638315463718700289450586850581923969423401810780823250600454047892496724887477496553258399090131103402998255772246197284082719654477403545845419776309218141602060794705141740262981307146693126223847226740491918143911397969671869467220617561523506262479925224477890971080630887615575923052785299263939795649236024179088022499277501515938802882233431034743339864247605781788324771804856397202373681960083613047695523454622650705912579541993085569442334022746110945602265618947959707014716179029053881946617580461971230388071520835856163774293906429928992004083607149481885265895658966644331844836266977772625117973200562222154830186672387186548318762259243606655509449289811389545646691982549223434673398223773878264855805857077278632825326810496201033867263461587907259417589368754351292271662015062572450009256996184131879709974947691392149569512840273450474799020720084848071690341296397997223142287392089731901218592480582093882236924357171120958820457291599569458455779701311780033653545820219910931951137887802701987531393984583071809501578047423793183869566609607492059550000094747091469023360373783943059056788544306998589665673626489339725837833500674865227207205408826890811017859252218071848448324572210660644584882869044839926908414763315508031055564801972316176217223746690876218757837227183897366128864651799197003908953868012821339083189789793635019635384706222333918183283387014840424898863860760827472161167682986777065543417730269394779415318213387439805838109256162581548044317117010259415242717211723871051617498811745115542277225842576359349467484923416295256607798970381359256329783025969030709480799453985867344143678396303738730681556155173070475009719031042003184287088191349321448862049461316075838143940832728937139840563283649624241915249493875184002517702304116959473223273187859626252441043298106810187386467070692172166592475306882291168524550989889611888990999042327257243639720060785998917769593419003137429388283593179869670387988130958590156904415317496718862609904606150369336260659977540357997398415578383116624765197338354169925075258436821330393614393256969708631505950635807561743608733595642875619696150573763479861653342700737801301410955534685456456106811136314523127525469186858713492235074229490989885952004848228914459769981291214142459386967402693344151238600466491864795414114956280555200046078037853842548263415943788408394481279450886312908162480050376745986941268322246868473689240446113783396657593299662265847657477644610219317601236099103180100382061294381609312067032747442925913746506211316536176655295980795365849151795524646129365213132149083202225665676805406323172266118066988554637278041360144099021261073958336484943122630704954128930155612793921359791971834563666314940394029896825972806260069102248801133944399489842675247678626002463066386842800476672962930473124170331890844797615656748871610009537684577884017784223513686258868989178835257629676058368711525820763583491341233814643338002543459768363278026155014753886355933836152623252160508830087467336750552112402522886387482850060809984628783573885333247975989420795053112875953216466856665543210323543689528723667050456672848724861595994966348018193327697363212292475239682971479096082443404221418649505890817711629154861616562972210056243900214679168180005534305890501381929951634450579900804498955859592908555259478664200910573657704304991359196353491785470101846944634199996341606148000378683326788356408568969455140862998517117949679613321460560304060815943729656829513868525395037053162724069461671024324459083775985697374294720177456130733370448496897866284828953859030134341889734854183307452456215096525498207388763660629435542636791842549232988088687639390190174458681242719283748032710758695291288256948419192739804876184370457722034918838766345526827272368448576589921526944046942145790160817902504490350375250466750386355800173217119102293153582014445321789654893305606870375813915267563624866291058009202649049489067260918667820589790927982769416389543669083857237281409447927164054956455364377507470515940031535882325306697700060667349579718622116130423374817205020405784074942938388915791447618409569348514635059748820738475810633930919706868536953519946391676850859519598730541709842727091480985066541455573964317131464621187736634642026629926851546073760322129092011723924307652100424858452140225958301755989868149586266806184663999109444306377947279371198145223196435011241208743854944161900886898700880615666727644031071973029744305047146009200426039361421375674114827235648598516119275349550347296213815662186431198779439726212861288598978255754768911904933333776188635572766277701522370863149788243000505792027225258050952401558046147939721472325114602767732000118694095037930503250396526748699691439293924639296135400250944396903926451949520808401737485956747207834793813514957920411711870881329402745602957031852982189690164685700905018016464547403590341421851483464279739233353064104382261355460909264393521410576374351086174391255920815623002091405871199395945058461713215612263102153624012678562665700086834302121043164185864006740695957910880894271908898811020231489847751556452714243338474989130541079360110477209128682154919149156803690928375195238348573921334063688620084491625387063827609759728643744238212423115107940706940374926643482154116567512113702419194533966406915185811070425144870037984587002083296826172109310542583903289210577861706328088009632365069699706110082212209079379529736984367298856523983577564376872077613038782325649468841696617436172870718310420454518588349348476349351213587099846565557061647502403286328666969516654467768525498217433063459728467273911154456355947367577087922443201819624258421494982840055656058144110860528557885983329860803075462418244343180601824770389556785476251175288105048729025798298059905951742634155657791959282375451706281545548816178960166455698528542721513757127203415410269521249586520981993737309747450932796918870650811045918704262506906640299970755901260695242450592799583485694771468109540554579229177622665535019846856666546722958985946603396729636116145050574306065875777094911101369150764208272401367024774597816439069183295959536369072025959249062500358483151243407654571745937658338756381908906288063712835127413836605409311021122298334960636149756829268217787788695401058187219183766095657382846343532071480634243915406172779385210421644071267084748742217612268858657084657787946954808950801874834815900966333776805505477277447712806470381886074407426522685116802364893189562675462921042046334182445192397598389354796935698327401096438890877662304899407898401896436351245930469297494137252158532636380162238278569376618190263920705284365678083577092213456649736271216394322792819067672382314353009245686026113167326826108721575821788346155419171891451796321921623956828139437683769520450576905881297790922329073774685973898136029606353496608935142473394592684726273410545595838765522784185091578182334174627570468324300691302334672430470620913812461522083645565059571651143234250988315381954343048997001250084324517831635442056250568199479496106933614761177384326277794028064081812656095397689522406500760365445523450725912183440797889045466629052912980533975612153207898185401235555413132696780333049570167845507659270411950822480457078125211703062171495053805595277526263229119059605549351155314129767803529613667005083432224128327713295443559667572831412249951101597416156368270884175399075318102580739196834291043578960633670155156136428834823416325040564119957261465889705534290025977723149250287310119376679953054790104237873115121653273815508755962312044330729702893599601644065528862368425593662478390369363185195748129608045132241588069461215588866787433991510227421488254244205916067678810906456839147503301909885979551641408313725416911591803351435177232333808082042611961466500849969133605522413875505431865340366588107761823133534525707789966675489818121973998587796463382151903154223584142545199717650699697320161949386188889675746258733826778782425245149954983292069925165602000272385010224376796298064701047346376002307690268594256199748599651213385535800027699744938757450611833307300305394096613067998989812850636296440906156382396489411305277675699420300147239957009320615612490042609816580573857105666176718935214253047678668296629491821001091485558337222742325653231720617459782733949465863150409327608205729969958327276900616357634173444593835880549900774292162699088546758096895009422096655016083001499820029624049230052880538115656870464871711686331061097007378569424030763044292935431976346109006856604137305954238012578072204640775847262248888039065013050626013914509789722563387430035682652809221512642832065870196237823257153988937954215969240127215533816642326041905887939286728997857865356851910259953878744471729159558047272658815113990871067371932285453536669515055712793831443913868348220652816962864237411666106211349479563741191768713614107821117995966887214575895826333811851244249952348117116907111136565383914640819424666665730097607672991395749085172723967843993362166025551937862141738552596367146295293686278279516085330338710232674145249596925572183542900556273574493713545510688817982668225060946973503584893383430277202019184967021026455742262094034451385840889872726724459628541203728765969364050778588704509456333160280614532636660160261609876248749933956611666665150099624788333604846766187380042390729337207780764875669423658074429155163262809538877348548684855105920092729351841584038354116244619243750192060335174337510259657689425927885997563983753337110748251259324128056796307978410237709557334078450720491430698398413223684182625278759790348171600580633639096244037943466479015162195010228840011298120223728070048844003632597694120972524873373692303379433045435990808842029437074896419826238209286472096724557914881307800729332507291750752691932220129177128831094055939505718369073344529312168584559736750189015886208573440488424016433343465436753202335637779396526745544210909285286635846296496856536958554952962210376762455397425542318696756727672882202695695304560444561730128833031061999452699745891664782097718214267576533117476311179101439975350687133293321676009507817253344577882040932226812832052256314375537217244275217764966229012021415003875516600892155435212927812916799871038448649496336700624649162119675565644175911277822760631948526391914604755690327165415462494125347683169645155622199622176376318695545626690392364134280484973436572819264622201562528934062239518040813992738902535638082972808522016731106594913879725007322750113804607021985218782973537353543447815180034179007149631997927551306850533376586047951269218733728630776462299497125547187511068281671704542330064495992930371083009366986136633787293951302456093229755998867991596595993871192923745289545699120993159534935590212387692139947775468980426094376172539569304184734532809440927612670200514458324119511125461376241637963781591070579890297028165092627209164792038358898377657482823604513045725321431241763531264554128803657590928530968027851897949128497713391361683938450271476820618634592873114660072185597797134718286458430198845663455967691307412834688228057573121889011318504613517309845777672240652183641240370908524239520983889355764931378250900827938027369436181830881633039818077984522382628903958284393138570427703983853168512179254629446155240716902087762606009731637694407115526191610833995968196068528924928093418211951612968962850241607348583620471558043882563828676903477599965603001176652170258689264219708059939422201093777681396120776979414788886691050620850305657164747553800550947236872633792423694682812517260388700586140226725766173296644797005182620590998564029479027533456745674664551122919621913063119667888288958718794685435704046543759384402783202230027747202467274351312180091140760063514153500155441875404096748600469392997260450871351977002487998088683847368499468217602449957324518209163830959875255335739822634813206529094178413374483387103582364678727592755711757219137521627469162021187196798565978662198839591707467474912959706850497698156789320253385017906623502619291641077262739354288095760751673675353369287683982871740823466975369784410211567435335699953693989573858423644310315348839541246556957176442039124817214390987463850108995202371283505833701396946785857403846229648874998905594458600995519900189175631866941611676614150699825248581411222842184776216335091946097757702142705064930233984583296154055311976838240594077903121725268047900062614992551548781408716724798615012860231779404540397780895030037599820483806890849828401635374021094318690433197974914737626238973663380490286040377749705790374641048840657683549174502421503498553122749833324406994238040118129977809504656359410946265810189380282108046671307286689373958160317119607988271375245276708722271995703338023382019720725854045095066951071927355372262513705132962539007396492540100018086796711174671792592686156505898239395677705187568008904891677428037847623893318266545712740348261448371795470690682517141260990459916775819863562040355191355597681847264539459061052251541086471659752282554759724122684665608048503393630282809459762076267703748476601287366056692432153614746604014474572743633909165658138694257635250084386846599726994743221164517637156599132808243235983261026706563609664943779046545008140216133560985575236017725919621915869552625819271672940800730739407926171260090630767088040071025657461079845429424802447242477731864627354186932039344508198645452398653901033058710915372366320776238619884944582057800916796531762543771472284207172400211199405924671229908669383776472735459070883902455944697874793608505263140472361155153524468335913228154877308016441759749105326085299805612529638592733264572936619719725311118466841806475570571332878774311276917959028540614211067781520577125364658998120139330739153338688251824181319111578465234805959722493768600145625831585018161942969791106696135282270338995254623586984276583746326827604513811929085741472519463262348693827873397528261697198256282761937184714061739984593331153739811212532106940313194907682137901229863120762311515559161526622424086491428175588057730280218214019441916563810462928202884693002588747776885227312354750475550288975965700379235533986064457219318222483102238901071803883695208611895734332636068464855735140618061678006308198737454925990139608440255127075421415770174319705084493149818728172945427401362432381015046187571578868301261363395316053754461615912117157912867360678168091511906019795487727366823409922506055222768246838884720527496145690823916207210055012099401951420074596308941532188921387847552028746194888457770873201561537440146676560699911667338047263031415505810569023175047879802974517343009268247392238334795604518001024730699409226225577440089001029987976310590275298822932878694063599744178639942930423140387870959435081761228462972769912259728663247784663844423491269337668008062617216986450568253948029415450759094685360749783273977835640663780494918768722782306513119962194652186105614456167969137165684990387799890030799166796110384347917464170147539515588921631302583398619213076933707395233269445419151165333001286862602430787552530169396373379957371936594120951742739431793092205566098861992747998419573245994597388524281647147438849554132926923381966320537243865809781438515527573869608978056410675734105470651919258526561004350993565897197919859352363858126924270064169818294962175289145614301554417873131854998389229448792421702342141278719036074209024747802713069921531214358167206907463948909446004680195729298359275368691760133255354784595201060813608392615218156300686030768322048942464730562898407923322381781110650648690761361045875753573425926483157651018714361050385748351234948737163570106185394763614839861295041069253913696793707834089755951143866166414819704210850834295650780358836687131368523894009143348665766787197565876655063219706953480606746596178773895932602502795533876112483940687984413359473955721884024774621425961374185256316633565133284832838853751677782146439531055030166741287084837647352722956649742168418697093699919279191361878336718736411077189105593553677735477215886597357807552048900525085463619814493618047431206367997822645373644712108395845719228224949166221227501424203488759319227471443409119454983366298671668686962598908064660992667560090566090593644034944779357684467590756317785855517875446109399946787251238101035437491870614803922148805609184649870094937157798283276353506455200920272102140168966168057892464504144914312302772036373877098607150700629759727189599024052802599144596594339348190284601715308538936428595706948670812443492543357905997463884307048334404249825531374185269694899676475380213974096407053024789962185599795744153034952895444989546072033232412482877955183543641917685087832305716413019140387159331449896144831964766475014668539503023114113574549841602278587601584995049333874727638289343939914255596702313619034996182780181522710676460701705102453249893091530908927904905667306205868084249484143500670411746800602666053607271843952487744748722851458973772278768138561768746261380992544795761654449599115423397315966798657244032606948076115137775510141338115384004575448141330851299096474434996612092367286152061702778078711633606146934130047343741459887671232429806983988807524746885632886716382254015892822994159375703196291764220171129891104950860679804970159742960505436268177378482045181111909588748985732132233708767638185238060941992672565923250012914642669395881668123262921420052304495284512110479996411850514303957365746215239083116986392113517019993057389174869721505734772308788222229204789806880602677154335802909674286670682854947933933263019980414765242225352922878480040976108188534184642426021928206177873465180891362923018702243036595461042592737599584350399150287900786092545728525459432853916826721130994363879313076319418686962220628145272009978340780796778024214404472455778221671673331582682931461107580183720710306225484987869646401357332547406061929170371561774307807573209199469806844841529525427944012395942295271821326909679098207283101263855087385833471986492982395562609697543454435326929887157174864771561039208877120243782277732198755569637923598564855043565728447023299304179213750520048614083090547321286835799000497896647662850138068039518742021601280957806157607310428699782168230248946800479235676989590800478474288971671554276696127542595616757997289966472830628484353296341653263614872695337818250845203010623037428133388283874185851015395020018369918750635608414735858513606978673731390666988365967881123888723060310490927563491287687379083536198906397622152787200537235004660185565459136322400812088982040876060589752309677318390751816642115141889328267571137725586826596288556900088423458386781354250365664722749247753072948805917788881357137843124963192569754017003049111513803197936492753308475382019840411980723887388935087577686161615118588654547962970938920543585854394435021755547207640825274035685920152479863551717264177643570637433653760549312160751301766029044601358082227866260943944145865382075049594628130128237378848702634249678109815007518477643238305793135340621023418469794541077269967385873925507695435881215869804332737010617491032610255335327557611168177175435642271045289789329614163578121656033483859586407099608971570380948781329450901463239053243443089350673206781674119968754794258341068362802831028946190342829401106656571878234369164042531687603176932946445081843780329840359323881274219127302519479983395818284347167484025564548928256383827180447588964504386817000409499410820368732448093497618283893783301970239773110452192634460415908682844655753129457390877372428379209802234059987187215042030096522908620359722062492041351357319746541874143638985924190863061670265678106092538787063196035469214187981578316496689450208330925701729464505143832069817410362470124283453741686954551334257689015619882862768129132772687583771756902984806026811442075006089886996056023740793474621409517366219124898113415442177901283111150185308261370269991731345899086786478477545791708350235026265331772004308707058969310395661191219946008948075274646858014793416203373239461253363985089732544346106843978193643131583762984469201913587785485009221088592511461761896250818849056335498691355860872892270121080307657662157294084733689952677308705251299646340428000472276989072091260193846988007664637740645871139257344223473940972597167284739324101611686843547011975619470519665351912923919628286894700428706012082846530618165033491974996608388884210893473656661971665291337624047959169182389806923773519157376484098766831390052353214974281918161709418240287302051261709932014546215269791505305478786391378078252120620362064448671599202980254735976423249459525114046910043531890306854701859509782747749977301015353310812472203823424425364887783285982562313746113079420209473209390529055302620818420332603335369151833609748241966642648750198812621566716140581635970501370711548363412264574411574092977915693566316641008368204703330507198486826586454714480990723633461625559292771964679851787328041710240520770175624801916104595539505590139642110675188784344456970722519337809480567962990530959587010805181716970237998463447037267306240598316592364573524325252700136176048864399523089308856206767411785984160191631878491643263143135738201752125993345251657838093929915616489446378928354914702900949138350032990517771576045872097285608511887213691929930177209218528488554354903812068946684689955417986334751157633901698860285548916581657266614889207735471155065286679751509935738358149979748201063935887436222640492123494428003986713871801150501508824480695512266591860176597734699153448165689340087080734984934389462138387706717624770129620683024221891054684274446626724185995093637548568101396559433581677393473920969336880828128042880880809605674154692089872950318305824347324658940078654474548868930682451085111421198591337366315768558225426973440166720805302038930162128850090144001781710904809009704742670707354130778830983956887989843241393239134606694956564331721200488118923292355275339218427866073937853110391207306129356496840474524069602399745782207597384010581632037474055948829874951396615335264669622511632602903163407401227452695928276675593852988810582086777602409874348843467516298799322634609721367985183916034228771040664050755284581441700502485028741538420317001044296402664225940552299400524855083274877753691067986322895582132524462130804333209254121403634051334648085432131546616088971731076744105302221682469503538663647995736673059506739031517060577135268855778080679460048786935848083179500459577255719333543776471434825722162800224146264021782034601268092425582128758291015687930912422745781074994638495974186139931415988771920428305746833471196616764850124001843249448848950797459199801123398826468388332710045489491134934879792522267870063709929716350788850453764143158321326506068380334412157305649334355046477358170232641325132195140321577630848231657177948639547699475932665085342161300279271083501972888015653792533227905188624402583852231011182750479165619142053843764452247162197885743705345366716865451327818118809412559031860591863141588562493853902124235425006421738472420267670736194809144300437487545348413976752219975327150927697516907966597281658324923500242995885529479409560487198744923108408937408035598594766142722790062582294652512501636082535735895833010523806262261995555533453781085076494895112017485302773936230704691292057607821049283691113882076779693474887913818954642463971157110359200880389629860541166771829363803406286483467241793465137858562450878354301701072185798928320890787603014368125280232803886083454175931668653729436892007430777256669539816458691005506659109870205819049973968211916583927023237351610544148796020243802481826434327428039363071305960360709354347473480530215691060642741503605217503013298111800897880691079275474344760764584715536724755355234383368749454459956655740948797661736971325884443465717721756800882346034048021808732504868464498054289636439937449283171785436142715876920706121554676956539702868074296463658632160819139612933385848483248781118059657590287929474440529139763256265708796849588522442883870095979959391352394940049284395894385120244194049281251032212828948741799164793053950231866233416341904303894373480927667160703903408789159017904604698095090063108553321557548467670312019013115473126042406255714580811915167821261119165035776030939868896223919388037094085047464777212917247284128445551546263393098175767862415224759424383854946694582507241475415101646026318262743012165131331973824193023122360477041884976504370008868367742493590427670045152825049845511562521183577327660987851917048846108629233516903714727877803537802767793374845931103792777443400154742370139248441968331134350822832895326705534900293525201310819556378974070213540905139217164875453376100514474413624008684764477297697559950595027427976652360113616001420529875155052262054014556919657454475408148443840598068213013541855193346921586379794407805384403746554195350663501418283651603143811785890029996795396690108649196872541464961968040426937351300565935492610289731114633912064230129435326736421982074290161000878829434844206501726123822446078307096323106460952140197521457228799500718125056974043865075729289576529365391003688631902869177962519508378341071016399361011236986925968965211341850264308485680517234479585671816152074187435822397124788023375664052938516068344376904622390358805556706721749341760697933862873880364342935132508665813542132043468888758394586137282528745485515465904988492898996809762194414333200866732010078438112855301283583626456143740785375567715824353708191202406028972218610091538350757027779252293719774522733199863791483892930186242538613695899367751056461948820858891661514015746085122814033308824801070588965265720399029214231038721686126485902046770860957921347497699447791418727185289317290899870230437670777099430245775262124668995793017863700671532613351324636061869386446928827949947762866247975285768440917637137168929651795030882914734398641883662590575269061843522891167652168006400799497013351170184309225802093951356727370469541707933198879028466626921738858543673613279072567470158782486337456547406356604352608993501064971298340660100445296756094367809446871075266969933320662401255555098902672859659641326706512590853073058918190725018396774703430778202628290725759228221285399669791642562521363427319685201525981740386303635978335047913600145361500699923055280900626526232704494438441730856345985096810762781934838909614023050930124320161102649277349330547760523727577141005652847507833372172549507134068993287833710132979587610347723744718248104001200405987087496403435135211253755920806424536234082610300758999722602008061097108083005397527740529087004642190610795448448477283130206537825858503089730197936183711129834751261592847798679558015681157390697331915994107471286282443995981153831670891936233863887124342926848924385586383133890677888951387024136260352518287169228177045893306791330572185187232694359343373794109368006908282761581347577883453919200184456001819492517412183239542821849487962938062994931858825301448118602176964757339024862431734144599887561643825502725823779775224461010390551254109382065104410205685418526600099463976177296365869364871161658832081984397295949844963360969143245975023896406788423653513988428279315845099955542570627353589623656798024855782541822904869113144094411813108632992780360544365863732130716537070254970703972925863096503379768711107802268449301858152711378994052440630837708207931393080855263477771486044109297972449855959790509377677117091879406346658292012779577443984149101950560179552285970217703452860929866988036809039287992965454672822945308734957572971434063992949928679033290006408424340724369795328064491147424238673631703562288955108110749517348442666611589145331494026450478307647203053334172009576866975521663722475218026674053999314712713853108829514391209247520401708516798807774677468199739815865306543861067479598136599830051074023645171937473884507301935176147131254822982248869031034400178039876788940304516574142092209075220077117314320521915606125874152455321864158284566472940159379495444875089862537889372606343194049026804540782607568153324116561818335739373789303374563489141427123490438656180168522868801887704872268996727312601907134574063461599492797321806067914576824400398719864980718963147105348666610657609664676284840992520912478718174332657053430856373564806199660447459066703183159199241624566630509051963305182873433902822996519306272201705317718555457568492128481041994343397625932313034020943090012519360262547811104342271784499188769637495122790599644177399699677505858622988412302462147405478345209977679916079992839913046116816967169845314570289726048103702576922604108712916845163073985521612349515379662285047974751953390311148319831905440170195410074570349689028794881577511373126417597939562354039395254285099242526977624753364414779802355839174623180955371152917038787015191734509042880023389536045011903488744986491864960316635882683977873954642513662122524082859361039082065952896277750191995257236574194363987225678016839881296000704055426390847515891634721796330817255785498659415097354045866996530594442512981340392458402671639340395034315521278678344451531130026719780460402034409600389600986678998712216880875081506941968589786763126777392100153249478435960539929310886864347546010339480457080124492748086856402629127100636029051505340541199158599649035203060511891111979249969449643819383150300246855925276600233089801111065535547277897132075771618428645839143139433305751986673732503189611631189397027750956349058535470099600565207859725912952375887629167855795326559219996860560966325452895769858774271869383389831679772300611225453736721736817640377670889334140180921870060042108888184221812298235079265044495092120047178340335497093402524138750303017852488238303278990490840915729511565142109408739048350517540688850076375376578932334485837065179492394764808201964612802134161230923765392794498961288548431991514106178419525537577776426681748613463594893627565071100493611837116479129607370447962745006804368885801542272613407425217929951663705843165611398526971391692015255683725323770154789284427556532611376048606832471622824011855212685577549311555052573586573274821147407426569417830814480035029628706435020095200561872621303138297450259379735630246156903521720949388481072912946302524077908351231222358273674807135283065740564134741349098474781938650895191745505980286498228853890571638169495639115881072101071644001259679561113103640181304556255673834024372586150643500588729738429612848865745898677464908181067806299173435971616342186861677852752633711246088979098351714840159839394521340572868961703135610884629710870701165288223403773237032713773709625192727863069518050414296749596224718634480661301362557669366197635854422103769181987953798018627653106501351172878659502761818290069274579924418312816715678073505378384578103894591012424927652250080460123852950701211231557186167558402765411341285005543800399206052755432101155789662999129687509277856675156294333303347979094079739669983480361739500732989427053063611185872012379700543961482325402797312326854026946381551768943485865323586523700867923059433713033451358464114926865822734236723181978562913786270659654467624918763476579205160903149794111909008312314627785210836264634166242355723130387917214699979955037728751609721591794083946821425001340372887652502393771174004868747030885139821063918363967928468867422093648290193565457956551307817652751839492278559269684788824224633857241175240163258918872255130425131527065019935774222978457443461745426126046485087109660667149318823400471249903493356946118049643291885205546611719292541449355363535938844668988908157630435519912124823484977820022360167226656480859210928007025996658077458668915833035156108048622550243917014517644817036411837340951384525643443491808123736639464535717677064772629042067646077075416373205736228127513839117030126494790986819612810045201669132332743614349680282157579316789684836793046958888071051179961758900456032668123297979644852187336831818656686574407204840869045800009312026454018355460801215478443929978320268151698148739444996607084551355030815664735851037411239737634705227444904218059315632994433464832054639714013946227600224569665624293015934256112532758428056616953363737946134888532005424919336878335358112045681854417122748392155154340808331342250018853793242794446437407219646009263203088346301206702203620461511745717737962301033648424600775595370055794137365504053232087716378585711293486160301147284806419114517539427010634970693525034754759321713121769499424981414049879557887408450769477364243521192933655659107260026523960080842961982463907453653537695412410195307419672123018728155223019049926920181881063869617926060370675585175040823790053001319178666484591885128819352173772929088283919826858971411287066148493509005963149090648786350068248168365180203842931931034475696317494910101483537945259182331451386485189989693605797213668369144007073084818811889816000066456367037634912738814446097297255415390170796806691605208182806942420491311767612175164172675145347559040644709406698898738137997577223709399030747681912035689501657558816979103684995837182605815094326854093507438863517973340564327759537026831507876387063955159462814099659315099753947785930401719109326833087476335645931928237786989502139034751443093939229532647645580853066574768275644471879559103884003186645964651039388316426098891510089645439204832679265756839806727353024354517332036804212618905197969731780814864181242473050651674167703442309454083956034158772152211062203253552677852412806445875964894988607090711515858542370929152482442262678706142664197014931312770038323502129920841711707071857767771596792529912854387516405706913353983320706745455940301067859301522730418830768579465908320490577853287721075192396796006882446783267337715825289819624292799499303527965631486055289180713320835286511037564540659755609484184997959952603817363745029794529717372179055538588592581541251389914134989167654932931936737513990849943568980454005118285182345520239378320160519295457532665061519836333922716669860770347246229243007133649005441257640110163849795101529910890930246112032415417245146996166994626892337845229242631139785581172605228126329695222921739001851203793204348325295083745241322514905325413768720718370264226757682465649833737690805560677012503126722142690480695582243974632447681559887721190745695446955892521188769896568349717400579885321410002802220065084349258018051744406773710579872785242330337114149247474370944233951239372510563052954300908226571273906780814502330385345496327209093911106514204040150848897285954481495464636889413338915092380047800703953883818502278159247668145805651094942602552831531265176534832230460677059894627997820307092444712809486999544487392764712008420390892413039005186612152457128773727818720850332453338417910403583201290866556152122719673698845933823470591147106971789857826941051826350990608888640117187832102245904410480428718493865238702256205032778581253740289757932775269112719781993411953573940120640956247394557448925097320968488107115042924120301118101822268357349103842309022529493282054004985396974209486488048805021723529411779848764534792454311874112540653447436928597867269929766100864124586551648187348677535776755882335173830364550837181905682176128893898535545212834131068676443956038033251715202237958270628430012699030572471929929830671167533862490793736412433818561135243871342923460477035899268090522609578481035439940513771957337354241039393235444376713689398321077438241831896129869665161662672073088710463832416911004572675684959669077717539301261628470649971942941640147861422274455622514306288906699734613591022947556623928774832967383291949517870358926483286062638654979234915887839775077589630497490970223952136079831821218969164305586943088669429808698897604815203492729234305383676468799842629150077470297555825647687565531735534366076537474641137372783033744866179255438575432968250429488225169122662328665600762436229460267147037649963909759880400919508444789803489775694774117599759947370151512205005616626058563691622843824402950853186417098634485028283954507712666509493284701852324193174725849779122302967131152589298431611836815554923639551917139391207409106474532335589802195047906318302412784459055238717732441991454873252704760074386111359000698252858711836811506011338511075510868164994907608637117016461420601551394758912338323393087647276045562127977472847040766335511813679534947053614800111058279992630400923379314931777801984012989651122442219604159304651459028240708095785084942748479338752234178657088626789791031267134797943561771811080627764136056712341178635358458092794761152993697386216782611592386567836933718907069823981961479511299010168270955922347243025731206208574738631359336005960140459101860264699222339342235465293803916227164337961214650082596967413756461937336098535557005754847487502325302355657555003547472186576552688282903140394916383425870389099630153465308513056024549005225653994030271848902428056431885514349773428031706340333524499435172610985462291952382735884683612860116127351947283910509565206338105576918743275456568645819543201785730036838059252363673019349891892356175646793079745563739545057627889347168072539313511547308132018252754434877272173214102745623301016797010870521386349527422119894336600043974646817048893944806635005929032289517079784267241459840886051557758270799084991997910246163924360238589379521725129233411573734036422497851321233886025041455431897720876463655403134415501913017829253365284463007626288188988726872422698927448517214233356852571737370131297277478577695000681402449796707862788630911513319017244567897813850939616468428219337859661369719470001127078896066538695566797835552902296493322634049069830835268908285560966581207534460800477690801131322186941116576365567314996438859310507578198508814452941395531679130539860930680752682589553437634458029427773316767593964853276653608004966500814185332475609874790072323859255853128393006483414525571913399298883828094930878737530358426506442144732933329648136824059030126427566119305566803398633733088162695484734092453216972714445011721617260311675478518130588931207005025458896130918853766941072287933145223101125419797149095279883597586357773336894357246031682182756847434063689319716887530364989535898331899074978353560762944502795970538803565337682666557877923033790686713688474782846630456797201539321583831772149951876851532583906255932603457214357666452368789492130860396712970125795729409697896132338167084875315081704952083411492101506179061884505195397090337141304970408464470295659292176355666021266179007184723780064196533636825930932258307075065763855718881981368066436870006736732724163088288125749188354651557036423569081753183935267077247914849285824405665853724302130853975047445840934173888015582477800246320422958148932860394998416599935779325072004504226914827141519263540702429617473482947325879672661909938205225858947593853288268595950504594722544089014765532115129253198552419315287656045720865992773617620221891195878482205623090268106039225817314525724187230141973789122244340693948001539336618385572000464292709369162704212543718205757029777187535213283000515429529617612517162186409489684362175380761757888804379353182872344364017642405018943447205900326590364463239658519381380231715685679798936871258142283484990339800706806817579107093717670763033717962461779092797476824214188373151383679433036860905743965288535134022279005853544087082699166422321274318533826948892086734483355325202471613165651866106926862387662734657207995558363469268153131012216119382842208950872685232285852012436182345073154188980648170976435661387303503270094912698323491130547193943619860522819755176478531619648996032409422245775927013687187989154676758532718572466818206965611445110444977947239773809207761781905922930688775595212373967692640513005927239898772737121605658696911609075161771670612059717658679658528900287789309960404864999574824487445222775787682528482871288171773312182914800923652610676003439522330741051342556624349050725168032631358397218613563517373500287464244488413408432043176632065599246610130542978637341964370862809710745358195696041267785238588612915942904532510397436752279493952393273177220836523093997337646988249367286069586781324697709569593093535217195789745485588935648333837677655615097907016690485991571279528360481488686708347048826401775807160897437725693410052861180375414542858007368102419286899336678241835647210092636221722588806472772183680000137199915190823597000887115852238923684982626935410030690627051579296224532908134926769702499372849378586153807434521347314060485512161553568116583162080868553980881421397698836730061280266149612679821400478122184818436698002808745507344419824029380545152097136932232983794849513303250197597231375002394349390065456593770661712566257647305856149477239865509991117826023264200735436142284447098202181562270141205275351140008904661603173152123496077479015355098535364040104351721896574463531988446065033922849004414855511285637441071956059122270416095135420117471202792153927519883143254798624137520194972800505213311516348705650151034275008770530294219768166691966825119418504846025631720756718939876483279192023251108835507868946409967666919599304907224101595509211188495623437113434541916057370595631749468422235982103001954273436119410075352057708025133867457122891688862596982529364382750404305298491788807085166192865558615946043536755866380095001229124408980485954977974015968040405482058079203978900644404789669692769296386039569543169951370559029676030125375524135938540757149305982268746866108064260688749205636864062962944153160222294960413393601525680326461117070738158225991826380786624984714998730242383127610858615459744590871978263837427124215571374075319669340498335001025187174653761487328806130576156203534810422530567756147151022231815394252091993805936930625086118706382049676097187154197843993075866150415629045710011896327364230448684963389258065188032324309249618339290362900326899900348386726949246427266600975317743919600397259463780319961604093803288587507229295659608967174542539504663544420830172789774012077044376555568129633748858951852741392260469020728450906139555827108878634688876204314846043821896731793904069709642750423479009850541282460502732339716814478208331229794773555541599325483154482869367870819000282962522815928043642340785872709628789882508217745191019326515288143447158324313439995246087989718508410695950345910077463333980944767838414344724252021106626141079223847302584646353514877813485440273549550095545851133928480532636318926601051336296933294261630120361788250428274978375260575045429810606166210172413626180159019876054574187566363919450889965092577746408046053481384580549502564666866776339456936456740004769304771231745610695261108480715097078864701569775864480786774697717128669323454264046490935905990016813355241787516206334540153769099888466692650276016986404581370035822282127577961318266934593566661162885493014080586641163385470638559269881581871056186333647437242849261397054567717717333776395179339580579047127105362295982704964477065709126428090433732078622716662606551573733908864985845036076340787096098072835882054553047420235502151289930018538399221686937378606348497000221356838304781779194505398521151672952231506621361386721695192224230018457776832757233128305199426738695442156339780999775494981530617544695142220813008365355151489087493105754190735237389886891853961486322977060192697558844742736632489233149689325893839660201903857429198163244255578785880747266668789261782772230161324781657126260980117765158412036600221659712374083217273818050809739422612855743126159274207607047144346382636707832284228085280654809914285467106707989981897141730481834470172869184534175311018155990403882661946839525126223949056275237906266976322093161211952981048896849033143482995875470099473602669244548873968334468168115692295299590766210634726454759378873587414746112845810971695204503499848261733504204630780629402576840556012924130856371456777153295609253483176780340314458535480508164165539388012588818562057878824264893450452982802198147183023423041599955063413323036206751177608527373404930036620378308522865846383366169895642204960722523585604556041530517881601309455309811209002230663469084785669594656924917417880533857915634020594884458239782745204710438268875265086325025050422015325025255384613703252760660482545784177388277389283250110655558552105935664296271616789983569240168178432034322216849880989295133239042410619427881045622691005602263078917778580172108648491946879694048926474062518132362361845919918259826547607110585406683574734613703845947029259026576688176512922223047799590830106405409471002147601679502303685939421158165265710072306139395062747466814796364127486035759577034791241899207105959945811771666498857842650257062596452892077284310311840244654979682380115422233496701428436582592547115183844709939824229703730144613706955951470432126288198889245473614066218122629072032786054253686009934433130113699563017058181182114948453356349880038581516911218443297663936413563905647565983892444605220361334415294038674821175859019079549651982156600892417042617427481668171148694392527424340412535867604816404743218181315790929914650152992897451855895944959064179865544579970184279098587365290309723420156713087695497211145564827104896367793835837447234951407884320310880649852708565959865375787910472149883519752692153126940866085914799052124590589342739409067850130628560361746759999761214569252629775653873866472001115568491338149401917602777505290092692141622834359921738277328750889791336544569346177543693072832604255531625415878637843673918967012002765364669853481318963004981551794667605796250685331697763381848385612068313262765229148437653340521669596554164595691377587294318985991788419417764470938239819013946688144910121439820048432473572715346057990095980352961995835154185042007140845081824782560363413781099803620820747372703214418096260462460161657002331212751436018397812215561172630499902520278669823786766304643880374715888094906284967579279301146730954564097544718972631040317422576550800756195542809171964108276946206492089279120641591016641509164858130429195100640507281359492787356496685066365119149589859131134303162594382079619436282979980741439381742780498391581268055697749962654566823815026192031308076553912423708654011929398152880374793040382568242266396605554796117557711784181747097471944516581641578855822295209193903761498559814921617003230455255954188986442159753542811856225504063153486418936897275781027819187486536484943910215419285057315874943891850901610339121978437924328962721257827970944169451921781471515943908721344289868361795812294028622319091200286093966678511750731614399291397889405709489941037212076331367196924775730210501769874344397513966873221516834331126200309372080251506571079180656735765998969826236030029962331087939268180685339319587983614465734280395548367070551203239397774339866224908415447027065391526432772077758146790561480770954751544806795449319723811411723754413959141120117671247996011464434184866288867792820854022386973502071904381636546372223260341962366874079972017477475121352605989272380064968415131361501811285577337331926568085516427158070979265100602709195417344628707285162809228140046949533870227348036271989969753400873842970414604887391981952968225218378847605424804346480797231890572099156904793320498373253368664137430674654177099912423141276581644229999749896328520057585144647389283860903623858059158616642295277215464532121065892581982184669534240364795219437688245255922795886981269454007001131291516880873288512363989635436800227525633379799240414276224286706735637748056908543703967447500700787229701465571038340302858279894145850597536529141085038967662674798003914945421316120458672718078095361001145266284462146485571534386674588478664768069253632092128162234795819850671895628022165852082748149658451413746067544876179533724836126430397301301267054988578258174631145641472317236229499301006734242859289266134329070884860385412679277873939848100202170886524208083270585134498565781691219220866130202361539546672688060524133786061121687805353889387605254623538113200349046539950808863003451041782939114590513541690842524729593288538924895884082525235312371896259882564563374572792767773144100418974757836576212539499553860702604851881428053564740508666453399444445381294179357664937862157166941647114881050514281273867543373631183045722819871465340466677305963718710871422807510670823087401169485112488175473243502218120375930301234811865608164834844268897510904570917625310355295303826582629359957341278391227523950830896024502727824841761988065351421170254930281545852366350639998962966475303676099523696282944930004613555975698720907318632801230177066052166966008310438338407779792594185152440755222445221693066051523405955234827057809005582247758951761037235969911294129325211070741075137372270646198761037950384835902449240532331232463186871959080363716839537972028393907185410606196623461466624512906928967381523240918833314668411426842354591529067577949987022331177415261743078959793969360256729740957787416030629519402627887085237956885254769219282928014367051906577456406685287281644256741103754906223891202251548109280157138407889329295704299697802676130405199641692642372397157095285267302633280107954927455816772082286464443980023376414683700853314069211700556254500648713934736489118001931591520623351189548257225757832494461747931463672464474330137732326131527975130832911872398243069418932918691862895834971958759802435087409517864924099309660848021736417031739897493433713508566872803381372725965618464781463387750219127345748905212863722876319964729702036321087846036857503106621162130958382087436739190867879118126719460063979734062339289628168301349940748321941501328680300596043148246283768202388751803862562099154630565812434314155713253427939238252157123537063319912048339925665336421940588903414310850132877430310669036379487931680136411549266202586585384323235764718508102330180848482512779728123434214958455528683566960120245195147187532228129904023600841910043590240532519599094930336908890130266759441776140183817689052143798940581990708032234118042208697150542858108950402952727524212737218056785792361663583762711188554927442679852916099126659593939568462009570577769651463702330871804613878807896061101183282429993000016582934286640999454527152379591514949120514127646648508800837292145450920760683740166925340290154392616993329668971871151631179645935965663257185274519858104704499902390756694442655072271046531659476144194423238861888676679435189290499863442488302336951475085021498107386081258554652189449721818853925372793310771843117182328457501158745868155552870402388521068367102007485337452944385603376987861049364379134665975361350225127459981192819450761356886491744383688946758091991570880017254606966632046344577677972501109490541258500089051647545498451650970523973219309424107907165611535473419330212405361998257815730076864731963432562127165100147134880910247695521581548487343128900206500321964173530271128599151777697992317303123019826018212813213749600065945328584327159605477616016946656782350009278844495273636366623921727451940645319164780017360503101849202547436333844005931135344705206784772664631478625466386999956121953586688621375052192044957541040380628536527583397612810862103991574380208987640131954613545926626943625338028117669925768530843235697141602013453323817013618829760867737052685477572484166807067108776269076828239045314504560497653710219538190580995210763505191972811334478706932619611050491597661363085747352351260584275339949427191983269608889970378000043074299859701314428338075380605137607500619458892195523768960553244808876769179621124340269034304712950095862775064524147580631509291323560243831324262110098882251449541821461742286691169752507105875280262339192477803736186437333177208295292203270491618177254994669830746624153906753591770556384424676756796928789105420092979468772449655015167669200328408722581869588151344453135548141187826595487354293979569019204969869516935733395851920510845612576135642591418328555488894109850607539551042098857593337145462994135101717475469380482881060630506651658865956144272823524096588448134786668942907903753077937272720188784955876724346629873524522082225373719611205287236648576812728761329397481249707219409977785846112403288461937970542655414586195987041256570726405547420470002330993350077952772013806642573101800037923341508727458174139724699877701531293891522890335311448004830753635637068097294232316599698484936015843429520869609869417224568870873285653466842646754574311517371643108323571719045777284498433444226536626355505957414434224474498029378467365038882044498909008123427221498121646524812418202633478230395119818690589649600311723847193191512903506455104129525233037189752958646566366755031269486011846383220051258391518369195312372935310553595606650696990398421341738195841412373134170969133788528360169040190752341563179054022866350348614176802370757434021605280252564323370099810670774669234632812688133408831780027224920511142277987640375880514681658123536098346759432857026886890721254617603862362473170926027696628732136781918002362779602659951733702982959077362446757461070112884721317089179192440055753767977702276948643697779877108562967775506593325228924310690054008571842908504411079110301057460522372280308096720100473168465566504463469639193945843188947370831933062745638532361087639246693672472060657639435692062377995707605704420448415899219386184213420439480238703619462166561848471172953945931560811711757787451984911040629707773012766428151962361308967174427689184640693948543009738836461769194784228973736732983674583191718387886649050809917410809296374567386287074321955522176236759120921698284060664725601395671240510143732491945187808116861035830897158195678875672938439688980760541989773864556336080682314846958988767655325368238032169249284833146690290556378948859376489480500951970477362535450756652959406016818008525085682909881745328355176120214185655529322259840885523095788037258526254662833053266951543106893810809224178403771937866367023708150169835792143884706594585493993321062201276273419050787489154601766709792404725799545341957862884287267709271024140349111983546425750070868011166427825500276823987620480403372738410210717511004802431493572076298853700953769384390758089128178296808409851426686331272860978349241163908513351024951477671214699280358353535049353217348261966509777691517869122332968552146229492052032460045525202787784398914854504882668767087245937879897316068550900185931246611702464425740564979526280707490125228141003138613142024480151202648075868380877744479924708733074449302037696776223845280037561418783438938922027364157629156207639561787137640374318667382796529300842064590419832675347564422574657361598352410522824137111608213354472239091588036147018893966913283338607518263362076072127375265418027708634702723615353264752314678041189162054562431358554989716893055126068225647238375672214862154234697769104688990324625682695710701604464452740231582232572677363632444267205775873033875564620483780725579786256388831836547255891377393165614649773556621486660812222204442663688527281029198627378232462478071778027715202273001148678808094948309892062397521446986728953938185708283507951345424307829368628774178704129045308738517836427015744800065074989845387853078002344406724827987313783023954872061383511635085870219960563716215673320512547822936823764822548018071309451447191274407296488928748810714357637555233930295555723735887377637117337457036368104981009818800889530539491086218030228719272904381674965895610485069329841104601590481086397566189259728776282179861827071733013936305751011457099774579315207042821589294315963753025237913842802330977630677920361400183105397408993315039439956082888337833009309121401504801290087356495193774767059787463694261608543494963058807691723065704987564283548366678996021111008104006389458694645494667913628176897287088899631415664232993194147914756850297188619977371911681094419516625499853174797677042708152161607292510995139266554763696555691450143569836692673370809427690483690014112087287892128003621314159223630963758342074901710762299600127459780518153841368789001230957062374242989455431752261358689588939561051452362016320054185679296626636480619054437070857481169788975692549864122046444378726079012776263277284387646981191712130743408945654588050269030205875087642190011939819622215892670549981338673963001729728993484841165250735997315091946974227335765065540004008766437458158025111748565718780426929653774845378347348449903675446829291112294660544232901741354556817088218445133517788475324317751539062960309238105974844048410488058187350218332608825429355532752571312420817421820357726616473791836097450945166442700578274240480008604564132118097377948470104434141713668413268606926532977280557362294182594267584224241158045461697291838420708420181766375745385069596234864889710460974932982700139584132324996036748881979878143422635859448899723412827105286298878606004323288842201436996919961683308535070588161994990829585178724914429656172145545879436108793161035522066577133412438171780479282431363236099003499269173758267734747981475570954277762617482106777721261714323517672755873368384127504506602242312912316140783718873417687127929298238060428512841961586765549959183136176192253659443342613885439190470469900525139921622546280282099470900804717202927492796746396813044157357921242409404176128979692004780121107546465627437069021732008436401276272412409083627490086544173391740282684900524897799619908551283392051543442718270513130933105135767104252805369880779101075902541280892429387928618339835864401514758362812223725588983818828201688810871012337104932483259286228487660929294972862411547210428144432381543515029340693685230442322432043122116148158952930533612451203137938761646998347865638142589925817160688182045186598955338328780027521419892747195334795073930237174339947181185082769009439072296485393514626371758896474703929953974173668371826488055203977003346513746354915703785405816872747947096525075608700232683117397292640848979326735182136882860689603400822029965204794891395886534105363212217182656776791475120050731204345380067189894497249710840807136050685867575586147678688422705897795747282463798127440695132825701032212149039313827138415835916216281475268354473115129211253952705299116809783553357504691949256362243046766661982398792514777819354411282473659386813849740257450405572803855322598603250484624260764843705338411724840609042961867863456431443088334379236968558666371848189107528430283413581428815983852938650977589705040573666868017444600931185301545191851466103330125812206312371628891167874920111401409008743967570184970692561924437537184975474925230102495203273792184251371399962375119955887106885266256776843667417865354386879419540170927302682922865272319964912207206708968812827801314393438474182469060712749275613260763615438636960265258151928553690717267534242667770220625224631937985797298411947244144395947065686346753522997574063396183909151780968245574503413572284554300187223523113369165085420659494514051167088355580751516261239531597340837786058511624406847192081001288058825287065645350228033333972228564404309433153483984826600481789245311030797559440957458643119052139875305029250181822587247483106535741481343280163840812051969315923501538207047215716680754358296259291296927593133858482301326207157019847595582395277755609133875594694684831758083047423602986141072114292236326666798087049126703382871416578993267956688422167023544206913103657957222371276019695206103533754905426459415016520791318374879444277574648940729604216043660800590879103283976767801841175118409432177738501708277769918500906854918650154096541583972739245743880149987992176568480265042721124567436801300368655537437316321310395874094206996134932929525146376016148393770428648941652664983770368611449547134483290088237377725125316561948345286843145519306372932038199296423981506508614998779874704191619331162476903185249433102940379088066232601341705618296010002665976047147194842212521338945553626769333837822102129306994690822648205299534720467570029570533594673065374042946155625014366683441791943673631861433848824668084682947672126752229256722836364281407716460175256213466725172564297978587385944115787838573187000091732433990777613078403677931018820433842698022386134451119409109596659586341409438757675261457970301748079416178824870494728050885924251946199733396726745326818224744718635479389291737590755492638111749770630824733079193500151919634216339144457710701889963842387356752950822269538740438856368526361375284244046330890874423827108277663488006674849802858164603320813142873676123431948976560298867541579688391808524501220936260967501670899888693990946492061793994660273858530868843724205349116850578969856715099919882389271050490124814578940320960216367744972004617731965824900990022142606488470840239818929453852195855485448178594811124797765388513656241077009097478976546045361802185682198146050294793504469731849616440697691406947337302702412752764074934588024444380191088911644097798527154397436904689967782703502504159645319270103835340130141556683663010244475282327206493612659009004984338602791461571632903058004394342164787139177385572721620156414857441355292355261623826055212534262151103987056205000655473787851261672661811039660262730543238369020315679364624433475791533758762897214960730040262124599627030552492661613783964930727136003449379289173744833373749216978381857977948702490729636233651282819129789991976670236046050361510151170874926847627330585042275786696089659720372852459623873721339314786567861859524604687821364062928134995370983278102579816186684563314822693790709716345882855579738082870397565118173467705837502186739698196109495646804930255825046478646047464945932900223853065831784471832763276960121442793517162249153252825401151195682015610250693586708330083450345114483882723223973283645494503575335094974087335771555021070419453704195805805661704687538495054375691389030598426867053056525320565463433171352491068074577610097647454846947899614437181610105788336382929050060187280626494556255149295457470263720664728512839191386402181537339032886235481466920575901643705971753646379805017290272269974833595071755211958254282557493654608923676615284290262606939654750417575020062831699261140188473560449254789640878064179546168722604078809715047965588015212119418925665722789583814956071333108217750500862025561001098925593156680824668783293924738052950617616147276787049059406073396854298768441703595879766538818773090378334292625287929343753880399009768669840580708817494883801591642416597983924445738331985428211913297995678678879774279824920458426921796843930648662719477220182661065605589201023973465889673604827530272279762806707226373023028965157943474894028471856388960498530628945255744073185960630434847257150622331458944678678369605131419970650017632575128475593420151982309762872312418575667661538320245163894167844591345524865274444295020009436438908717582730182800085765698076076641187398843926843548942871072977847464143884834339085657147484125850495096236196780002757051391946461042034990295722018652120448424210083943922952476311033974242524461611081579575647910750590038178899276390549943259081138046042204288964515656337702423902861468426289457989016553159244156824774093055919119043446411620274961834736502489209110563577664314687900054370553301177072264311123514692589001289575398508376503298137564000913592678963278630049033018620360532813484880867725332609874933943335522833329079186186668419494807408628048403527769372330167656197536782146611479557477436914395194923952590818493393941311185005868299468444224687298968283080819627049615321647213410252414669442594121381240083841665815107933328103465858194021643087616642298987977086677340687938361816717719061563622127764679709213211430174105927716341048129478705754175763041742776951929097848532536982330847205827120377087726282787766694611279032282862678509699296854966335340410542297042760263805596541953697317673322381935752444888616722105009456986942996588863607387512452538171155138853831725194883670260009977573498286072277908843869686729667189479462077284736089912170391581230841476007120995848534797609705627357409071390175190871727779954679541056525998881186383625864661986964157206115661639933953622980606228896680508313921763710341795868117499126734123735109320209227837928226929952510490383577704738226570603358290455435631338214844446471233677006168720036538421549862825936949233103282993320609439201541859797438591870400623726488278588832847495409237865913320753340827189504775504317173400633912380341749697567943348230764587554842633319493085685935643424105350791523251538839042746678901731873177044815517976373604476382550625322643962650204098834653151528936726076590183120136323191976773633881220991112608899128873603133171870766413510842624920824346545678981528751602686758685733942577394921081905137957283409940471468813232466566223872479150678329263070436203349779132902421686407767034856798628102235956736777325559860779881166523297119148831610728461235092431953193505446410066867760757119584165865464355946378361026110456876022219059726568607036671684421643744234256015638281931948263626598846583393781996093849058985684015537754183625100032720536115107551322970946659987853783552514355393891248284270149464932325370453651657459671840133908115709128863412270530834606175379941317604589624056673592178875060958499533213192157031411323159186809614792995425322752302403883482250759602539700662856045560978862298509774192095480797100891311536250465053307091106340331800986336678211185681040080321287009037909364982506914815187119863788829377743689802132548516033201568605251685661126159994626106878408571638857701906174416261646060046185758826358231365542002747734311540500176738723606893670833651334436173318907013182244197196536196939193012227019504950934840061259518923245484818190034669660586482593056095846771076371780510680712144813531046424291459778676575318533333514685139093190356266802000057992153198561383540067178391065670423838751282839743670680362447708210821655282165021360184811857510733018190536806778837494403184407891816453918263443564537109484903911704772186225634333997959278507180929749258443796012119681116632016337641686516849613264015261866511318314393653702292901997447591584540242097664682842673780911465093919531289248820476573028261473777692693198518746736519558177327876151710978409396608735217033691971964771652983411144125772493877163936747043244107157696823603675626720554657884430070901641966325588311458494762467577788430882687579039854470195242273237281461970914445367417883909350436329458285333024800163295678541176076671112960570753284967694790495234103932645695204375341225684743987529415567930777863538990841208570912319825277683564848739032837087188641102897295194224497733551006226430389266326667087296206606968872380802838709479141146306061845576626651908348672163419881147350806011490949416986020778030035470531843908638002686174558091332295772593654812878329253093510257572810460320367421934678498375858153408287350632965136717694988040419138997400219848464476109499535003284447949194791268671674630423870023615961276460189908893456932477204039769397001519980412519832935305338192272978614943651676702953716148958336169158835645194084763576295577923719728302608173017491103666574870711347979148572225499298767017531270877214286215816231912390627840125301188886146113929863065516750044310337807935749162470046699159943670340022731825261669635803272309427286974782116310116881758888352168887038720442849042829809703585470146975957736721989594142980012071943693548002372512770105001265115166385547849294255697697990031069648194577196153741931725915853731190348362135423159049940632190332426840316779006820988054291634053782299793723556339736265968888437805128980278683465428761317281577480652708312934256625184132065693036971971550989634488941941246142515482880804096945586481757162196639081006908066259632004366145672194425453804673878033625636827565238476883515605724247966637690119821731823114154716539943962293224084725911199254912299553833598076556453422155772295791849798326028510448944699547034681153720534822942722538265229087618919516767299026701278628207853516632415295449722798885387326357744899936771245558476662272790949659252717186223626995155378777411508690092259920295383933489012988181251505642763542897787869953005825477335497937711566887073994426332666863631983633355068410861165905355468199792216442907327982299260267034291486446087103791118175294452331576437004195925082677300251105004553013203536456672625646068498749732805888468262701295366923402051243105966220968595848142908190108018653871090476547134828733754746768929916711941564809081698283687869357134807987921574205496710936433269770317988184952109145001686310970440464611986536321316785271812131950163569691460362282794748268017168913787153462857193207980473882693506672024609564201919115287775422551086815856504571891192235727766196811163399126714155434588505580330806127486097011000165789729688072563112892175427317298600590528288723689135325312677612971023097727146796833959331907469582562822375647385307954970128061384131784455004206543713165785745601935954984788651352041473358832757488274162075558020757350071673221466042611622121234519406598703868335829770964621732342687288069778841425067463329865443204518556394905674102158444602054393102483572306780238168257137247397155201091136242640140553214082984056458888473818604084889723261029908163659625417700045596480707655566740975076968918489052600431748627912001060364301515468505745399383066861282013398296521400701195288019871227841969190967794884582424215603406201446071372564368567191391681800752126085905242538913156135169329698486375435003198740172092138129441349152250864601340004762832252406970785154925592046242369409832117921782858964856073969678104059582137939489461476859437617776608565193586298013358340792355781865129469779737908161385435993340874599037507873320192127627588808827620534312804421921055518448883158665324917095808701087940177387057413177847031203128012749544222707237164113399693992699534649797029351110777009100713333402447785114986916116655433501678966010467505520551399801215100377412418135108856361445038774807747179010660552596927122783985450068976123491127229530300303779750532430014798530192119846014653518273291355513042677215261058541994406680404363699021615741179335724187341102754567910061073420274361296009200387902067961231275684402258328575453895931103364835413104342249673595167491706197578149545679625601047009337781176657969570501432736352102262622994516216936036374431745964417653187155767613373950923604300947485747018322202160562967311808784086665244708719342279159203642501046863586509246585503362319115381835053655682933198934839914407211084100500045287254662092291074633665096727678030390366211907871953511859330507863349902778446672656625387183552522658265060218570155395918410355584300385731181191072954224641475210223210782140183126090711019630102935185308760085279333703478174077472594943354608930982166056835991033484824930673145926856497693964859146346626383505170434027411095316530934179203221629891465422447479776248289433964333333079427049592922821955659420954601951151083654238790150369525115784353156874709088624864550947512737032056996024361127666250516564290318351385293249441064710395734340086648066663691845997108907093329429710274057001948921665305584210639940772183194068051181529282562560227095357012134611122273548016531656077009731346493772074644685824020939432181818680112149936639311852474154359442897048438468118001614616522909072902287878708677501568749212491798467801285722311572614276902955653999548553739446060072555640678681641086494579518121171179279468309660628345702610900190989517628457662002652218442061929314654061800433701402253985142287098665453347786944004947399349418102090281293211339437806062051606167156715619564613968907374477255313916077556870956830065500120968515621170662728057818421924615666415338741021273761650173045436681904889227371939768575490267065989496631353201047879732812426457653025681312591013682919879709681317871932691174125178111040123924141833965986732673394685086303601991283649963182453412483984670392349272898204251229649663440281125541940209162892562638371997635730708044269827548199709233118486731566794215557713758189215324525588206451100572007850415330015950049537627502363397649906328046978666901706501226657630421427179065587140204398079117772023411059565712119418222897033225480593614537260979399665476387170190222652073341214386325197410803914203662346295461471132977852697204696979426072348006482391168222108920715334906134737320428033083997001602205391531471816235110889914105765378923413500279242110046615885438382485185105412804130992883567275880854167761658038298425224408207632215301972503840805806324282848103129917219592183396865801058968967999104279994034642596903018584636246927332835377724680607262202922314534419763199688215198810237334764354882809651073939725969203146099560763826707774890849260852456293328359780309893143073789622384614659833129122706454257475367111570811537819603054620503344174152303698110749965724606263105841554322863122520242974284829345164815827399546396621693911948026526520790341491806905548782635705182025796054798676347738707015251122713425761526522400505839594547007012414314240947605089338644638382734402782350220982668549811146580929518011172070458268967333924508969498070655943964369352054882843620152629331047102018452123350392213638070031340661049886207007184697227810754917214445125693330408841464767141859806142656689659364190359368988699492252267442763356264942996347660238134513564220732525619061410396237740158487981187630551569785964141384385526084441810561127583209477470139288690451550722035331342214852997871934348044239569608426792064483374684493041110527747036431122302946023043808190971305001844689138546028844533334540674794887509452479572358124515688624004008412276664054101804619740093757279457910047008680823081484802573069907825076068090886469419639056502215668869363489369032755069116329127822029439994035177532068731114255447200016410126919724174585372935649415770008685807638240144820293739811045303574842342229082077323336751648709023346066452397460078006744282071420739816343523868897438152715000046207836926714242694336633475454154636589057397982214709013637936293534860197496638157351484888893447737386303290284237913039448054706431381297886599063927545399780095354905487568837022867944260654577404176263097594658341429006926389242054125685398490655403066176695721139337153837510370557170929169859932518572272022087478174755931375415149124582901137199972542735800011883540829800784053648681731262640442678374417027802004588866470633342111135339571149098148622471644677885689095449981124509530114594201968623984231054678623624925813901311158539947830426605672483560052017028256250230110525292742319114960222704446345023717793496189982002043055487468968205410399009766101783492073871703401792170036107924579110023205931923963390987366358299294662232911030440515190053300959401349743306707463925204906456043249129825050502577905293168164060966942331314888689357159564294069563149703469825350920160962076014410823452734839500395661369373502516760825874280514218523189640369287085747304533005752950657612374729311383241625867460954944333594024236934473170063552572614102940134289675904802395893923766273407703203922162113592598516252963145515903475837969200090488343725692449585783410319281960369271933737569002071075594314924040184965553371311275515225383506630606947452896690735102419687938107400096172178554967869064375933237257991610381787349444403432741732589242256384860589613463558100032453374274808808334230941074473692039515786681811218078293059426598394363895865476719217282303571025785641961051101505001201128949338638658534523529325871191091372300603057243265779257015751205568966082856519746646452613376080439311989952560562428827214892044872672450592115528929489824413982826268573158646769673324042132098008937432830217890616554943699366508686985188825161249639700480523327841316634253761416554931126130958217475823094837011738460284006447580291057623394102246642248805607733036606841229763220021347642364194500176738207146347876294292933524480774093807709295372097386084688251330845334305073175122063826436003154851177550987587734691286498905073063053941773031162871449005163095046213592713385717670187804769788919303073941958604095254769910928501459371005561745117779389638392847213403406542810023637933470415242599027793199720953168958238987063663934060776243459232162108746196466462998174443336950221582142077513473801185302627961151996407383404496941619042456142747615330189849015354341006486888524530859357584568462645894407171829310906654255617892380696009414580435136516761738084369685148894219406005869648343154795745829456842253773889208774446701395475091937068231513263754266279827533543757856090397408319969940363134998519761669417986087333219209166099313334223017120768932630890335323064351703881981821247841824501526566174045831410265979197148029355113446298425909890234017196484740666228064759504202115211695948516296503055874371247489174042639012075985569930418863235755851714566670517798019636597713866609123017124922239423326081186706789299738086719609673082282801359963681901466555253186469378507485377939158932703011361226895547527368502863947721598010507755241494266414596788014955171990914545316402459514374075962326773058290298278383154506893058324877078692680757867435196048023223131514655227613230002920507269663566099827032375386351574516099259052061363016691276072280050404508232350601829309896909106465080200249874441434869758192516597402766454222550295401093067478753008454469156428900942449476486194062012761551053665824078494612164010736408104372752307234998030046026942751097670173694844856131684232638792249651496424835937028765375795572558522733189300279960835200007932521953717632013251612557454767472740066825158623603979159343398883687360303873337144515296816221536611561387202131473008047220254890114362453038271993392460947943152732805425293446524690984821256017474304273720674322819980159935405154748480823701257682792355988216111380940531479624432289817090635275714346620328851122435663949946896925454385590629305327051266511266154418754819531704255913508421180240139622976104020913528599112822828826329616341429091654505289800272471365745821620737224960421694154449866116604254854442189404566432117567293720815090451412079763838136578127890559500575073264380280775751395631047012619765178345199538299953072908545938404142839382805257930854837451138909188206623579149337240361727665747505498297486792302557874871119484452442127542674569489177589304387712105983082580041822016219111184922257718181204467018533334726967606210342454928660931611891621908042171524901751088958409038891207295665916052152576470714852062769216109516665854648890649315344799243513023614256942070958828180888217943812592301707803511096565435393910446403081131175337900674661132248509350570724622722221014016546298158509410747506166817514445328086910267738618922800334925094461519635988511119568885701352468777468733116729505294904820402218251802359409621761235252215000010073267755434139457041615477488457607455921284759091529714709964747455971804163836303687940801177472169813322262992115276753083743436219903929752975577295999016514834703577959916937085097557698401488270119158215843501182661357463020762541401118206629728848722389249756388348073772338768950200871950049968002741366990051447547163183107873772638625821958984832274977930666694709880748135755070186475980651419787300281935813683655257916822848479561707951400367958600904680428193372781904893083269609565105128135124345586104324925579890203446492313146953438174549516413874321462920440177516813523584148817141273314349703878206900635772259272051830848925636570931870336443770315085359531801706781599815298523249615113555522208733050580828192341593118204805176492940599069009534645352202506272167275919615761083050934640113628254037992139301785301410828700163868967899462215850664127020897700851724473204644376110972026103901770774297380567482755204349506252447778115634377899046035898755728229490302951487731527830822628826935558205279182759327707506242776494560716773590450539804140352515134904445212215384456084239024930140358524212075818022321967026454306833424308532872204437331397933941653724385282352492238093969353457014162356024302434337634926264525242823431595606191560458761206749444006444911400416250670601136396855749684832490308540080870384085920765079172044398678763248144404488035905064866550360418078866308018681838892185372175574317272884597657036451286477531455171467867006295162916210836334223748510706496355462615993085925522091847221767357446640819104757935595660624491799259278165935314380788384717482953692137158450432722074246148845846850513776429203725105269589633558567126154664363670664984104971014582383133102386766589185144447350357401908738378248807467179204143914118774163081434956610419767098743829569370226385210553252609149734852499419311623059764714723540107603832671069720921687388435531936631363577839307540647550680806819108682780813308341425166476955166289501160760315117350992232124117299143029806057271481097635657946618138699192139637095643829326636677878779024694411348381188279680767460544487077839601417047532111273803398831349231259930066243696343908636679936569665294306036608194583778420978322874476999398812746750228204787289562567735558064770965914354735287830491957193913559701974586154904404856081547111956104858036174847783398844315438152625805546060838278287175289310410586727983047910127282472393286774208987844000851517057353217662194761194221525781333074038370810872027089174135750287835702025055736471296909181037020396287306131692073590081862875816673206763871310805301036988207655466683288429853637104897961579782529814546842883122864139362909109472245291235016366678464008249977229859156634080314960060621932087427133253665063766116930291237636034410102900069867351502072501993219480627635200334404289683024220460244575335077579800568621932797438152347555246293108609704926373864328482335769278737763689133795828588615127139301323688264841372782975975626643614115114231394152420460057887345074852214011188401747605505059955485400749916021541692171398958805820498348871301014911075927587393068567030043018768029204864141586556923194101165789146705633886264395883483384234394666118864941017679255118108073335908801565696003347785916577707052352569833529763750881352265388582284660678513561313683230691305352772387732081056299404445642116017107337326689998220227861189286760612568214904198183500411666821439052864061666699701655130603550287749218340033989065567495577239161947146023669984216441250967079761129646612127478007760491418515791948509126425242759037306011683112030707450019882085928765245484897140363192442187939863640956668352391797130004428914840514760658761076592273654524023329584185777386519695922244067097637435911895461821526501081062803368119960188376815084412912910029152722852604483602644671282875108472932441559880385195100274299988401167760260330050080156208377505762460758301841510752370150465834563598188205657899996916007306075938990780352932269703410308704393924817409789471042286334239058818096241872193853935903027512431681675332137731349382383516860825664350039518884477128921710468134769345274538021677024472918773440096632395825340133700481235545630004423902569595811766614879377957202106931256193883295028835821947515086748251822807006910861215544473956085930694816627654126205477187470517680838699627775732304262064010292783375924781706046167066799844503082329469716227077885604829131000613226426096038960701367541680751416653422913721351733419203666118084781295706628029264199435867054264631305693893188246070968673625381529648480070345486114978583693838525457068621567716378444325028688765432847973336637282257274944396440857776359340302062311661421779278539213821545587197272267054030725778152267059805832110460881738447781881502851916043694927492067806932044118960799660230096414377504358905999133245730899431659011246034340075021525028288988364990510352527859789463479474850297699630745535411713204722170102875965370652374515887078709300361866138833789356499720186195433444178178806251796996027415987040843990682010495323384890934115786151630309029922245839363848183812456598609062146512609028496008756737192602025392252883777907406619558526207829318418448766162421120721791108239735779107722520049331682738020512976430161535258810448636283223277139242725267451248140182494626624572352671835166040281748496370261919620681313998561253235045674776040729909778839683002975850976898592646700209634940572255992304927302553174109012276092522735689080665842781178217204548990663844002249331991305907699393274279684534877366121781836637838440373183728624157768250858970339185961734102077136530186391036576324868651389964677057061376570828227613399455504073357360570505382864849049820998050178408458569203871753876453746708643157322881397820364919474690683251333440662783032796551481845780469959026394700371292246027108714343946878231668595680323689400044163529259430422327290716104826048916468640429285916945526032815095972986196896807100560350435541895925654696018397547112650523954697182949391079671854080331877217376112368005946456082371648232002398530777266058421893543168578794334468568285771224701904997876405156860808320387520553670481653219219314827905836907558358393272485785662517409248814624507889785747861098116566102402471727830645821401288501156261478013540227929675749724276146537040199842142036102129335621511530241740476716806514937579768404232279721449420953336292737391721598109116755837519761261533890979395685878129978401934739540712678204246152590638017511608504255550918281797603339769782778127091959801695777618918189482642042050728006596964536542026947153769653814688639284699016960505410162358889142537154949651814480067471147978050761985896382040184356683202882590366752733652581390917379780564470311999047066480300495064450933402427760322094725963456056990328609401176557592803104759901199900459044036253559066805682972315214523762703394573114925246728806103965678805006083928767001989245882183723878189815607108943170202360492405821020478354230420483985655799039525007101253884848516259533415190831139716668248195097507371688753355823026491564801191997962170538761389387753872408362767866483658665442820509791910753900024669872600313937358430027992583340823550994316712559966189050657403508026084629954198665064389107055414273587641827151175319662667604051065925883800247240845161007427410989859459220030246336581397248791682539467394379450690899885888251505184233664875428629016340787608962183651517970651212672706091797246101058232141128471364538757217387699676581346170611217898751710981752055151223138211445811653889723121628240042946053189825150128918604010888803343586570170566944758038504643428355279247614691895545952018614747325185077422112658801734162351981360388131523542675597823882738688706981476865146399366939698528635468638740453096176498797610014192715256931191621139706343386809185019209970607543507195531123224509446106798476444515651109570560528945898134610274571090551177978686541688400042162707235724390188284629886648283810588369162984607868590244690844393440796561519801577354696037360569348372190750408891352329931518910753527330754651269690028458307735004866333956431411470231319851800804531086650662430355451277907840099735959244561327868547987414903210024358867747042864839972731331116878363754064741599969384381998783106733362260622146494307834798017098026378707731489636011849097990338953708146668557454007501801962111881555766767154740833187466451414923448103914435827167620608462613011511921152990436534136578676690460898702368749869439745654051671465838688663792777158973921185964117396011235593152373017315835388176855952187368913733008122891663444095496453206956184596879641387906179682171172564062579025070232326068265582846920061487915562562852622492739534579768492940647168378096873418398339070432667918351165239248541006899814416657531119740412309315257468924504106280702883273353529224984550038774431457070516486531769935684044372240799344794683171599595921894759076515798190722471743481021906379547283809817461756892782891291847650545431522088815790211050199896812148259782692846291183897470640196457559620019255018620028467966865467880712261636011187516531431726637521135182760702342404344107524990903254198347023338720165178854803476370746076299776328122132156307508844555762501203076062166871091785342222890986747476307202284122795140075944561299432633390594683439232284591274165728847134898693885585812324426234763335070750288905052905171325002557668093038246794018692679656729116187881701957868311085915986228032459082317105046003824445821651106531859383347960889012151756494124944316265216107124621144736976302970361850165991411044652193070817197100306064912723874323900673389748992187790157948634968471827726785027103634491005079037439319138616410085548325348607195193378507701888305849158844713799654537205969552401408723604361055481928906551847343582965960095354581142561598875174510228654767079300172995358076100056907137351437275321361728697678554305103703006625824551513835725015483890904470327267868475858908234930278719814773215165991895632704655711200508272473441613959839097800764270813556948247675182263974447032078383793868306276013028547552271616993344787149592100432307194930279100033001669006485611655310391828846791300276687425918966987511556543759402780187950494417128151519788960153455562122489424577599713868293411661050659758753245251073265627682274357641389565311278012795763716492288788867430385432466036375650130146934702552639937929601485584580530535581752344454515845872812658993987538203733903047484322115471715765424133453968361184468834538437888267465102232205654797408028977742441508921149934668865557839351707665510145047661836773976847672046412927272338339557232079590505840479852053413493612136687628801684753029324321467754615909523485213912692056587935880899786130179376674248209365042120154901419360057476825687837323374431581477169224853139445225788330348899645695354954294304494102251229691295407822968418386693447113188748935910177451390741008240129266947740488150742457258079800827969216684480800582829492836855690273482095907934196427015178728729497785123726548514120979408043592775686652818380135728890545635217099628718425904139440187304216275275619994369015227836812997593832811582093570432814795419619989289162248297224883588880969302130170061616629412131005642239234847738338253771930049259235037084595838504927075439611390453070650033554235967231022850216888541928808342007330960961103735008280222057566195560405698105794012403928067618862812885864955748107263736791795545558472249704829272551385382585663349867098679872083921540406605379268083001626877936998005830567909005577199047502786758236059548008955706063334131020100106013019158299649760029941300808401851519006748724563386609212908824981470003488085010758576445340245034001052533344095623918037667114792582649865040449272719268286572413227928036558996135629720929697641097735288890983077777064760260848518969613947824336025400557076987267605890706010245323375148837851762892218521271145897736899329141999002810917109711677280014870133033360504434576796873174222146274558708896813103648667747111705396530283217904105293000340798462166472347615690072964818835054059607636985783344614968078780026547301384418626029089849234084353902306049551199779600124620852138020649443220980519715670658924327120291380741474073491791471729793726177815720360922243757686318238534209347807421704695184658122125546543265336334710209381233336012523983560004505592519274684621073913359394265528227748862925228812860482212676289144246502997831378801309232588413803621166820728219384784244367271314420718368727523612510190792694129419881302311827913908599147345877521031040735708494078150736174398772171161948410619946692175133359720273404662556372825801837806848071089917693377130370885624169074109777548320655920681649895359375255557399423574619182438847924873903145138828682712676086783503302509436432220167650815885086282296023819605999476474121033596767436410820293477148391579580942801014484660323078484070517599191287798026590522337102423073166530048965194259133208427985032871079853056965879013006465290144264147618443652724549682761404881451925113130736968946323811037373213809244654713751283333755863079305307953804582607561381673490117371332663950899526598463103166775162876087325596031673812276944822809090252200325041371977826553452029597264020658042249164600997688701774736793766084214327880743045293943847141682959064839603290113915396215337177649009747283951459320396117626281327833573012619757788454635045730617465692450065639023558669710764090181876433179244895934899960835959769788933101886826554674794305385927499847842731010022032917570091461085874874277987179091897587917386007430234576264341857039593406687939841901725045133569690787614830973710200307478343994751035076987407646008836455750189392540663477653489060348472175273523851525390642296412317901872854880961065456160515481558371761757861965134648317181510215156752625985379435326938352496085846503348498830695530941953090456729774709703444934326454683308845353965986760524108101408210818708495077338448641023455656470868561606561272049205910738724019062542923039963932170424014099341409966131428923503410834166902113962163288199647913978991913391548132412009151973870411499386146472298570439663461939572648397612543476935056491449389599455960561405040488080878896586494578410038648188056115315578375086190900783912007568315610639980299801735475346671560929371805447112273579405829263840510751093447341406675374042549584236280828696996884239018919947724105599532195298415369052886535348383865477257174174767763552390061729407127157131818627132624489530471108088975238495715686428011830406983737375319191411670429930991641728608723457707407729989612071915757505866197118886361072907647109727311909206017387092430742430478009094548067026109434065063744051917500129921681901949980480379109320889356388915725614504245660125974542575776046927560645255387800382644780365770245780467218684950707891490769550279838628146885207067948986458161284993600529395036436840368569797450547822358212313261615840533147238223738781413952170127766888668204507370003726827826697533310884473849104511132688506944567837023164531577035191801311737566452572791712183273580212953265138439374624997153344748683719576960801258506109283345474490476164314785899022153633242293568518017652636803911566945933867950273766812296746019897236682347050897926117762389810045045611314135598646317018409639775632833542743071671890112560648006121424316006796074179969692090746593629057400140927004271632655999782297695769568607729724501014728775132595130301434297741855721065241302660375785485287157668911913767010226327909241492522370349423926263372873379504550148902843716283813793837261589095607663690927821454059332228386086443704941888917350529977077710648283812867573523073492875046895798856082710565032260426817248681859571164915077837996349893706471909734209945603612847228273814187985528440791062622951987728019861031153399268058212381423866830787547066648829634343471139123325483789615844203011080912415956381610257865568845542116376864464131530023622717569954067022115272191175622063238873988376674694563534824500753930499723696673826930288834146275899418708004749875090571566451359049640671565857855358611183879623528031222582454172357334682054316788531596011734340050308663906624470170566037436172043400699023010341645287340453841654642406044950731364613322611911003355515480411064245069975727921195017409026273130612275263594290433678405889491561852809325623448812058225904715392416493352598070110257320108809543166246407924075838917653090287503721465744867295224857927158499803726874695642921195450000892793803118649421154424185262035295812068490119521089188950242486798811822762235418111238616023979726402037380748629445366643595705570101206855928395753322969062113151345308689315354039357842543466460086133428998025635314430311337651415789610759770797018123221405966224147438546029085975517685202582429026422680557322419124878684407198742860297922733529569927518340682543181705189970261722741656216643958988150766705261931609121173193403471072202089951594204230336304693454847710746090079555185221101721678530612655396418291118824218812701917643448456098262066553591843356551565846073080541007392365912044874973708852849112536630453146480677645691981561780891397949518837746247603299776620133155771011452365038991947440236910157457549572127421588449371661813404726660106587527984618860502030218962424289914522294596387108207653509552076456481414127541677805852211371550983526791933441843075409822901179007224144393053600661136069866762533788040322028169777678152699447382868091513359449268542203370068772627472806787247673818698080199712021180083317088972378160787414423309451663456601612946973900315339643825758357352893657557761924645942792198444889577340421051367906020481376709071008046926112180486590425186108823104719636004330884413499276166923281670120030521820882313999540019819027747042972599539475522174664744843447155647676449690013878147433426864878500295248929371201452965724020399540992781256574941187017599582850071452512963355698789052020874320535475462193315132324442774229964090544249878781279012817210387079014419350962789857495231625623382460164440868770100556207690213934888158975967396794171848097759838137468396270227225442029048862442109235109227307611407261978109373533669736545922362025958809736862391184185828486250714272702448219077279326236872467445057771955382377189170018726463027212742341804018532557542070572026599401114393252701590473915126535462247466695136102446329868040009027771593686211397654991042855826745357607076480400405216502330785536401413866322004606945411543347709537276869413602688254209299368942184159522882225439644264369292856472884079866322455022998776228349309636705762433142531608147006410667232840413221175093006704468863251624904471765236464031463064187338797994367744379724204249341016207334855721666503814729544986561413427498505017814788039727194304978129331907044778865113745366660021616247797218161232491923794216453511708113227077360564365944411828719007539968360666058309063306576761568829499936551520348423614883835283326488201300767010028654093980928040504769337032032286530846065834562054526565482982519975396366233449294988348354125736421738450700854602978396168155304696677604697553380286156728694000281560437027498023195226328623053402358515530823609624643667104873876046758017837097386637619739575624921344047490766697490269809958599793648539335553457950985083001073298108226178189334419716880570392079080513683815614175598338602394057440369894968099660188395804293795229166916453146724760648332838260259592634377179331577494465097407047294149233276463406112737594926947906306800162676115335846186926612188625089573716112280293546880343335413191186586207919739986764823526286415418755205976538194995674171134967256656210375749066517511520673756006438681104994343591705708753385200848453738369218820803617198592843277315705617954042256578876520799735361730335181825626226023060540593916892560388255531677158410120182331552355755561519964163799757476923607850918341199485671614259618791234107068167795090368468606427568694596053095939623441709668262699465799888000591124043506579593495803162482417232295330032273814822431086184212090556106192853559822150289063711409580778206818931454321346444502467004510951322865455373932766970700124201053551836235286347880915103710556032727296246396814732274112138009057611008912236369623473975750172774631070383627129737269004659316009686107884978488352142030067962947874679800448435783430777152648350705599340081962871976651980965857506799981759927137746420678067094786538748670480732479593009428461432011165415962225229479764060300022160150093044009843867915081001723347780445772365583025178729706071250051171735580797171277258693887996762429831650693310608668787014062652909374556804584859557440710111266248403969688391855913249384789006215065855738871426336456881059495107454691359761887715882395912093532782638492882242890769762136267957033060243851796767333236001820442474456009426450310118086328266572299995573827177912188888909438397389533006940869520145409660233039438976949108768764903127338094272471225018013614917410158719177214938057005550535071913623691500909485240384710796827099641425227790652316378616320173157861400597724346931271390878341508181894355997240961181829513594377317554513408285981676590217329004402662586100825023818219854690978788421946072921991097367762584778026846396216982815131194335533182672101641179565057049408150780959701275354030699257986549057787454235573706355482223877000669005627874162629151307067408407962018060481427693214311750228011251975715918916492997782236049180730484444064370715598591591837622953245167628353485399191404031084740084925363296024059208048173723402763863037718739226064003691859636904676391620814911048448013799157158133620776960941885441793187523541099811276936610997711486718313425088410411971999382484810416831343640421322123819080678323881380836225507736445820881828404930026824565938026645074542524370270106716924717267592246793623665598406505875647850278085118378112656296829664763325748023066608928247361705522377126627437436625703214388218432731888612154406854043588562646397548028610746315477776111545173307311999790802638033375746696032871537059971650846764684787664369082225527483030868583200726326500876436109767131984132753317002378980257418925060236865750890130108939844285474627334702918816299159389732200861816129081391156950412253232359489662822836368996034606624646195240096811515377717398562306704617649725030810685717225198707812205408900779945659346146196775014453531388584813633272331140794134791589191677861398612300840553231568252783612494339539503344500099308303670800111315914152010766333161425413128416703906931667400500801781635596660417626660779354998789922991426935767093235068844245215298624518596596962299103875815533256589775103789660813235750237379129726661629868318292094380345918020698801339473046806682152003790990483843877473790218254446343186696768249055049679408680656906659295557179665924366245852324956085337788191986176250115799580176300296655011281104505898186691246241030150122425675283368723762408793384833977063740337107891370098653570800596372838382693934294782815028393837296237494299790685961831495564913695829035650698759971188450286657237307104162819413389847824605015770111174800898629636417667177995746681552806479012932979367363338316418248587669778484360202346247102686850456160731166778513469399384258466952879407653093048972534691801697195295881719903757654385684409673946429699327568598432305136659824379894387868436601886850278234177545250452224159847053031646382244895908458085738359927701759732383592286445770945936538322672390805330660787329603061265998390107746413449519860673843499890644122732385207225570808437112507279346340928128571318393083202303564044188806637974612159811751462304661145194921325550535173522201418964792594751484138168016869298914161590000112874518558821061790055884273495012939728539327139346181775416275015929735311558200776224557228771113451265654559982670684304255280101462671655290279982452238548157490884861239937459842997109131043509860052203741664182829791784616205748337698001495949524511060505080738938444216670984731181029911610592439894506726546557472299357330454580213094789586199673358279632196117468221910756427355245774224684583591242937799005804992581330049267249040748556054531204599588131897015526499873498825721778500518883538903337895163765146948695095309988180715242247618059017079496816656460385828851416220115668716908927648194504822376132993614347680222440129056142145410758832376234760223930591383638038902384605797075602299541128282133468724884595062372156875098206845162484542998395480591576140058337417376448148555076102755463776016843288714592026382944367949019984590474013322259244899190045090077679530538482648388439586949832786838393095460701373386822593219676619605294376804046269713544479828803948678741850182546958737890657805167313291204185811050116292054624140416647558265455111987513156072756854422554330348278692562004446807427941188883917441309125180433159017467827990413996886625324897912516524681082815881776112396250882728071453258829222473377773779401888736818628037781544595668086742647998834798681141395867816470045417937790549230568784388974404925780522750388414505032225335079463675749880048169916892665713631626872256802947327835559522183270052126246325956710593591065181242732234538500073810256290117389254318403443546179140471089648249894865553430376934519117356981415766578317012209913697588567199730973447381231831396491403918432524614337840703835510430169295973367574276306363757157961189583271941028389181694562088941756570559520380075598654624774569929650012178996267824529524123809718133208702945240027670707098078735919349537083084183826280868330643514491695863484180456586183761834357831413060486939748578886261169071860013462220965307339402929182794386403673764547477628657725697721154439231622440451542605462799805495226716953850787783041446312133341273760389384734730860029486963820869699411435333650196127796238604449393088805954949097117407790526528886567059127731015006953963666062131922083693364129799149465064493766824567294998841724203189931138891375149968544261549157496748776078957355766841454707721546794489364428905681420719111076092372999623140388091466378465318353965814520706172449076355188322237478953431007592782131438084784601820952495556276203164679013952195928577745727999401572261682200467845856208325170053228674528082824531975282058061113485044443892732560644860573875475421037452460112524324960529623752963669336465528971616024536466998291361805858752327173787163507204413483081011589085923556426067884563057158217561749353820639979838580930982478015620120403638483233940347884784785470771204574891446635992251045871661511382742994335042224113968184363919499848501585647843893522699424443692672339436735426922665599203251510884405351117274801726893373109830650694505329375819138833313644650189983312798642557465629289055984723785443770309336259452620499963935112486634586705693962589757923458020577912175227008929921015946745304064873150723496156109153716126314378378482645777909470872659591181684520449974947244895521876562198299713557914425440174933605997791482850800671585648221185256020913085170476679154336373442083981260141650697830241372024355142581918574858041225900719872729817946285889365395675511469779558436099935706474636463853069926327857672075166370644794347550271315974890397113149698089878176047605317476102484167281312731747942480367037046878204857243448691434195803188229300533060595398654484700771637351816414352077351184104251931772043745238800404991998134742680011889523517558886551814019256793854070637075523787302042389967111024252587078846166649589160749635091686643199423667607465221996528327577351043034724585880787195074716498593971154973827409906032664394717322939368374005488704245981123322637267263854924654884086936980348614294454911992422255693115449606582353521346161837262016463882646076898464457877307275360897843665017930966242019883658669926430576275875335708178058726805167502123479607746630904786059228736716722083949712231578515235753186072667668829368232687982833629021836170925016550476311233905617213217145065091644569921502979847734858757002042658506367418600973330627266631031699813600481890454356991035342736739207564632349178552078305863070870581535203786367574750327606414036592785233135052747370970415029105013006969354491827866204096292609760877666818431088423378207167919814563942622299860075789651723025199076078748513230204159665720682835694305350950343690900070656894452588657088162082827768552264566104527307646495677837204320857565470118190956711111030803533007479405637575937484863878123568547942609157103238301829634438592282730228341994949067158188399406000036977459356787582612467935448842344623329457682862976036996257688732020827265075559421619964083910950092229952706291322257052377894510418848904978675790871412674879146222943447689915987648169422232658430718608710776180638586169844458055756033846991790291437287662957561848841207059029719151264270693061618293228394307428935389664384342562854085232142086245547845658247430929024481644543430896086669510985997357973160523499291884423456425829151282518650633787290058615633211816929827511330353978674859411190416318592236601007911188971921552844687556573812866796595476926498578392645928480496559994314838307699743776757318126149900923783948067782265539936038773579587403046129213825850771390153741626310604684804884932144587309089116180978485874785552646124329391299993942646241773507268465679147037722947556087330714258666243712657059941181861828519353369532909122524131013692016172758825632574858074738582915402626668755512840732577516405519358854945152443918421131592702871490770649199398537193022079478229495254102733082626237859821337158981391448465212362333427754764138955548052871116254833586412268876177116855170318810900886695175738805782116082065778962369953476054464398313021229730151106925520350118672307116071127123133941820974481173762828619032819160725936410850842359761693693020111596308993100261530011565348352307730235130545680195256780732221324711038299469365586351558437020308423108710323714714653341045542758912227232466041429876968169325986918988531560912394775901470467261081514415603750226650898596660925549834312367136185732787840987338722228230812898894122503002992398169896917204026120767857982841892915451527568354946248826026517270212074812656311736824511320257026264504743128558524753361942934720354754482608157303967792595638511034416304859831534528553178556162844326176468435395625753387580208400174750985167562544190568312108293932524824091556331717802789698926786063454659210483131536229437024146382938662737818965133074615327397914827730747111775829093061044755765346404370185866712948060644272013164837073396613290017749121940317937499030790742935053832350827434859429499753460300886264769131856655543373898273697724272811106165474940771376449583954160995351101798931226123597110725605602635661052306429328063698261568255376074178110353416733158907329554338228425576369027986036574750552336679321773829536926798001042125520668005558225609789727012746703922085050041791695696695804214139060965549984378787636047478589954629288670557407261378199559797953867480646523628946311418333262366103555736013435865069751556089803587333699660230219208880426365135225662488716918672926179571129310311185296992826290015467860919624366856306780352648351492320240987188194206263723111131653463379950422601595417752030699895043353380778064812650075017495595444710535707474482697112000807412628467395050913595889229261968567787360568109864548991270754060889995754563124735423593217120352404920290003191573795281827971715333888390081110739026984139360150784776613362956144296646401315290879095692060049500671665782668259294046952893337940480247248691378161218958475641574130052886402410998753847324618749906275221904024408618575967249010669996748758417050533619783530826345722140541942233276745494698703597298648651768076424581049299104188384166351392699970762768071661606868304514267442831642401090611322707977358499133729397361691042022416482641233395730886193688068545439547834637351217645582661245724332428910749094430120412131904424983353436582057890544575973719320186560314865236368229717388587696628308896829887314319042600045254653895969147789849659580463646975004527230010248417305821345569439244253574569214614316103949953797663136996136561526857538394027090527777667532463408822127843823991861367584917962093725016985930316260371254877118308576040496600359461740134403245362702705586595100624252713454318189940985499980312191772941034709534184660326046804446871924202111387711333707961006905511052415262158027250986402154731119215627784377304445755798147731448486659486514374279720520350208185733123657842403486781987284325088855084761512690053752332523611926940853759912926650681239127825111180868164322731393088284737142605891891770728156743709512650980460948979751029016300272481797634398328212636823439963367530547919783974115713071856739193026795003380755173604129418933648004322242918796156172954907947934983458237672664432981923107034333831833051107169746572341753867749942844595327546865458137601035940007562588600324240498790525945800842948013564518954573727838996601450538952039872411402315426316820198233512367279002237832266704782129696815620700417446799028274799689797441112868432539537733471369065133486121098792520283387123612060136603741899287805713071037889152496941271633755799337388467698573597494255660916641428829462252843463955088000352441530694615913887497540423931961067103031716149971830636980645173809185788329301316124628384374896450323938232136067790618228114160993903153297181191850771009762039192678787582471413982955042348989583295810446716868615381702226807256957734950485875048644608677579707648463158703941325813029586188871699175222500912586334497713936676727233425035869173146840650742385176650474869106330090442110712246126255232050825263269778945797062495461641786202264368733508263209643023441382283081370294818683421146181634789088193232883911462742609379561376735677495715690905207023167710719783599892929666484637766614431619230469591694707557629027137092786272022412447200731908855829774707297701934167057844071372776278660983284439525013664475709112931595448418789113780271132056024256141816342231388086299584259616076249719167381015805951510846461363245635012464784910866466013672167941836199856638048478428857072043528889393537482608317901252118783737878434615736557057176768232421912441835967869713586064532027466878119618698224782437649958469744362848912576224243054644459606542470048235047624436265790082440544496958454707897577299675393147360887728955673152749155433334815864253386784911169197688693379487569596091811912223216257093892314980835518057634240524478020492640205562720483706174148706395148620138866203789762559359109385508818315044609008269880465032351219883789118568325523192150280308229679794776576209186487763354805450597758126723782734282323921281674073780367979355357803772161531794656877900700649657639510482978772297734275484336854369876074465765439733022379871250005549168568340020315483396054220091814568434207423638002856097590623227696418283099178222683803372463040372357360635583504635736681727740664040286424597713025389006995985446274108860713608010960208640214145977628159642383653093998380593295450970630300588756941060021042977468856587385809362775121980275576417768315484686271499754997113358822227919625733195929564626899661883908976650359216209630349590691776160916908159172016553009258202828849346301324010169917288728609895429866482942095544274790764841999982941792406683092496972624208457110895096425247605253206238224485503439806361511920979553421363945854424279711416618655280421292343758010200592991213195348080406716745378319393229380661056275855494630052498278882092691491758193845929235054683906774133179753492540638841866627070863155551544451643670339838371203547602477076812909573839422062236482929122203668229130040367267763321644072548240467749811365777986993988755688747064902178500450194536738451688485697283983770809213553830750696127564469614846052626623892878023986691558869353109908606998126794837053102616853666966803023933235244432635201091382544904693959019267911924005770482226023701633726833003045292008592004812633925505936713433389731469539442861653171964969986140783246605329474249113125813762230259897158893057433177191715008245174947035583518022475500925100000337814923139769460810681111216233896601254031809169628154766829151528853229204904792881637295418408483987875950801592647884002675050224869989684451937510570884455997774037859673805167815638961677901847345804193758812466664264841122855492420356584939030991698087253964052288719628705114064222799033743007754529150307796572987495769129212555613395504734217385035037728430800401092510797600077658789178728567402937602853052218274176721882930460262609857588120615462064675977661192809085524315493429427001777091441673715370008577678996096368436429058153887537209780940076766530775246693374585065696762957252954253188853933392062178599256254950218777244028727886144778745949265100718321158312971512642854503967082345882800491945454067970813713831069167546710585535147707415269657191280619252575225268818880154944304360527162850004387716460648027581005507786351992197367591645408680878798610671914503755328814729585201604300968081547983666081606063376119144960897148252992312761660807637085461232833285187851379149603294554479540994970344590052699914762635698043339589853314743569041233694815022813401695796465444462847035306752028450715922917144665370109781180292886243869136720558178881612603763223540377198125073895021401196884206626051229685252775660383882432565925357585675749678135098465087961057220141421181130301916487965801738427850542431376417729563566983787805611348244531592593777129171577642554303508929097354111133730636390219926824000443977433020270026805185185814967013314820420734393483457786892704571610516632171171673346865176261116490701797379245018865490568205579734430892133509689965931829119814468614888096984664339946780129049850077680758682224256175417637527570638441445245906789237058286472146735403128693725962892957648775377116800731863817750677105128888617482471284345852748464044401131198317115690178062047074936660639159517341984756207924276793044331619285192815342428925812086445362754686233330041010714762564573656883572327896342908853621037129386654303070214524223350038840497485434585387018737052697865289409046568284094488381361774490737090755049767636604064645500317776135652782254853538991425525490967395881914455262804461392581712014124720912161140108839128635492234735971521105892479714006112650520555671140820546700621569767233659830093377582969784292422104500813581863071278163565567906395414745949442228975532008716901217462829734193284158892518101237422153595962301334756497081089024926738228698679330138331908300848972921627570912826480812542867726941867034993103816503883317114628934885353091184288853074482376464725033754610216096799982887269411134874885155739797808226074244972002922481941302756446889413016942906360836806005123870222482385522691893913579977171054813442158036797698355696972905432515995571085851258689441508021345645741270282324508789362470380903868070201191830041896732748358934617353477335839059259029973392489604245582894311529166187780646388693004469180233558584035896336205255676912640112131020896737839444639412223464402450884024262387137989076178139941543112514170956848099235571862338382946815238997933153994854205479002202413359055872425601909364384441075711472587739445203027254519889069095786627192345218704055688003733839399767753105827027670935926939045000086911128698762630432964315493222045757834108926678669793927684683285441270803014034622055941136359706188949747168791552676560884320788044736833018897803764687967318009282976690146892437569770425971909267059555474322220053250416862622474400514654965842657265870804139577458554186958798958145057533936571848343899025896670363575576967130741188884930731224812313053210844898042513302472893846332009186656520501516189879028903676611014749200774771832723770103482345551925531879802497725291787533342205346421658921162732624656385814039118078135757365978338843503986771959646923263971391571995401880807339928891396785400211986082308661999343526202953242289638769874886713550666449968354781932869695800452167439290196547641427922723389856750437688397504310989299986189923777069408007156208554963986235591507901890092822426296119546825542001505931095255583919905489386745607543447208347396614333175229819250688333659380327354458244948704447042766152266270112890871509461738797677741817227101538679711915634550862589718349820952495772549834113045485453576793403945209006300862328329424505200711181082022439317298479872770967558700621936834405002659280363284418539397453715678741278149551880802660773230615928078044139965558168488799559373947722009360537723975875376295957658542657279207334287289133252096305741839631732856669422906278414306044328971019779046346948814011800152721069032263010491585065253117554710406673530488347919421462454216629416886181546365422901452768940036090769702923667927153160482944637549795373707250298657609607851003935338101563989712569411639641566423050091382587454508023609267207895817511926437967915931272192829398036538401224411435945267357551640634468651685028431851438085771355923082876876073974855753738282765795160806514316673924833917304036992665527587153974353100665681740066679786914958656620567216114006682135886210387952778100966299759991498797025895481737276391305197056706332475528706488710363682645591767354261157408954317507407352300670701097004493191858973210412131170921198675885476657594059596071412779906015976674468580867821199869861445138461260193716635040299349450614086324622422573901523004019377415907483640137695579563351852276087954180301788826830175789822254776030817364841702850871458333627630927421697722841151842971378745447724669799403387531670813498073364401469449700992564641069029674361904536223457144660177585372680441140598150809604214240135920310635331495193959063359695178739377821692558122893330649977405406346534652735929101904741541733840791639795366886435600667410588726759177124541446109791857352779511155228301804342624098411269547099788566658833782865183145463500617077692126311378159881302485314787917169327149514854074286266860384509612409743230864827287423999255927691913121981181329308087531791982994496982055579445965346116438195310084465718211160425881587486962457267509687600388832748038016594758484240511983755356446050554439355773008981342811964430873693125572774200471358899875436878443875175988798041512539977171513739398710717122365841986970454902993889079815319648442328769752611688920460046386264751681207630767306285739330748635686138189190929225691332127664832659220254872727449392922947084021398625024147269547734884390623849507456525956313758760080504290821896096102491946020847762534569872752717851420810288153883342801117514664561224533183931168742760976060957863691553803534165494659372528318164842911815407330956419416996809234180016585757228690998494644721695592525168351797010667110014948012933763965531766654032339471662643184416855117223552120309407755525381826176265035185936077840196594835643291816117041082284342648450298014814065539297461019060375077431191292036442464046680911591323302230846423693317698574547141846871783166051416881555322526713209161510468257088144480495503812704104174466912395940717181661145377542214525368132299868558918193462866722189994741037029425478526171450566424262429888444343542811276537731244377087229026863733524913299275057684088235591736506732241860955335025225389997343929170722912818267617476188972430542906152109381621116049826650461094467005023207889050040155297921408414347147283060146853171526383947617094158233751652731952264994368739315779017855827448406182694488581010068003736292263965412889513363612438361847893383041741583151928515536124792981691888269153978334441727022879616024738266898660097950879858542088936993394762725825675045535185725516121761724057292336726972430314308919184688456567733680714700990363400667613657974418626629153129104332410848410492739448729101885184654156965119504955072108356133946812040200628084897571642857103705269759853161623847928334903578241425340688211685675775668530905584677115540192879072336489859706505992298777467880607551527129846349322208907856485790373812566141898401789230478628347296132234681610212374701148278247138066536194897619786626269642839143299021069082941175230441597206073590323828401912210747969810765008133257452203622409522409655152614241630406322309993215295352568392783418512827076342567236613690699532664721576656074532523361201637261532522737940839380930983095073780818089375371921335015899802985050824729531000182246280888351140047675746081427380929432802602469513457336475639904336863162186313118309012295143392923360826997751184403625904875328454773250207656185454459050174689418153978200618682436462737618487255316258862021517026521794291728834211096215559748737635405765247573088234534921788817253424764758944916172599067213766028141126594703956847737604738192036282998870792646982378336490887425991272661413535882546343110759163484846055467766503005176764071460223238501712525100046124974110682574856607748709564902883851812161164853523319680868893146938469666205519206414021706285972336686584800888607144474395619545061785265271198869552527575061848688434844011222826140101401947392038864879324009437541757013984664054358533477970864309403033907630234306982106932958718175988536062723436856380170208696452926275398035695075957492465375769164957360769913605888758245447716135729222850720619278177451040281163867133462917031392263470775795355329560570562986502444809220627830730613861606664142230368281167017878303859077558147199072705545841683913000157538695056016028337110903701977805647715560712623423634039624753765167702975566172270327014444977932432511308149148447079616789451752250906471536477390475387991498916951370700296454348116812049264307580493886092718548497285726968204283797663344162933944960830026525716161993926071316270134603394719939300277535090927763069985605226617686232063442237716585597610122469369003585660038183916131026807512023739077807724062757828692505213448136764681481614925070222549077981760668499920322040368228287927166522901139066642664066310882870595063477308948610627481452154601611225958558674756318574905035124876656366989658360960869026938265381117570001603939974903706405230126995964071342015803998905832426390461187140071447788254519304407292848254918186319647723966841925608942024583257499931821898837092362188473676872519478651178568941335358446774163790603211315639095305897517033623618456487397027183103824860296765980461628364479621498784224036157914107718171681816027499735133846069009972920025001259734953463852401386550547927098312972284064701148591455565262144150171950097266833560118414430660204811627418612276922439230969868502650238627784416321133736507490056787915089881436872794593343658885247741559333424743876461199632951232948354084813502230965595216060796487126016670962396186644506899749285631261566494846339721260884841093802439425342987057796001106807414772978865487783656301956084788703950591519647917738057962702060555212210083305079857293342161759578159351783572571418506202419889758793461730639092801882273633939150093211339998779876374203262594234114019018206244204994359505630217676975303058454506933170787601305248681776958994644850398517331188513084347200442568379380909529231350415132028694436252189907636802603812948516430975649273852438449129353241991397375694010037029074930885437583578866408634900841440677809167771749343954062830863177781469147217578496014594906003290942902747859487274513929507229358252058861199389438944166761703902371704874301606259923666756720741786216999638567098511440390937074495163551008215898102007237110860103749219220774463752662767722221332901335343714104240197529377129146558760801842263044111881110978468806558091471389202256434982964778077056043231094072033678460666141625200518579171909972733949366411269227814415699592737575031321750403422700906894611245612376378926476490408292382060340170371750052453652152695497125914996491051375359888337741245940156930811155070820575743089444752438534928683731162262027269379422573991470185324937741459088579677370370732368466743415950354509081840948720729455056880653717096803183579082110174590746870547317437435383569947157871727520814117660509478070128429602842362540188770536087271243287947940457459469490899648640571026282487370754269088322922247829201002680819951454544471998753518408419011485014863175568246067229957411191696950202674272694575372314026443446459658463170427076488096407858271995722112573746913471004022987582290310271427570708632724961588119588126810805134111585050457141204769008711777680194403041921697965859132129582237688826205556914507695903742815159350112693665771684966280463763397107997188632084805630462925689834649037059440924564540398132556203081473511272994187364685585146485463826943960340634890098391439045073099749249553895338730352784628411835277033422762408630509693145712086334008071900917212278562423642240225163933114958409893738700621151059196380313768232325351763577269897809888843790751980339201754982498382278415333793071817073733269590064743701404742252697911412987056554560832788747447291216016378087192705108944893649167649742438374068099763905890916019441593398439936965416131542116339979544100451115836138787398485073625689193258071829284238682129006874973072729199209393086497011200173736464424522259177496030692158976196833344939933421745205967812891672939971835601881126462506061971137666461567482299543164598719629735551351090007019417100362517859943674687664916997483179269954552326184962405404992149978683884203944612149636419789091614122378496731038037839532118381484857480861832745190734597305749307711020309202456270510602535318377375736628261245671904018924436297605655105088760151990732365693713277359996396758910400929030521033330655949664025653436844927686982066805790958962446732209306676207659183399344426937197469063374607685663752103482500365565865523847646303694201442131611244412898716856858144089637718653787277307504250026047831780958755684714513002332401613926134701696316488513126105481542817087926175349418962440166680416811438709918080912449175608842727611268545300719892763665752161770746075443442906128477732792549889885348943653629431108533308279485288959172299308808694826754763401290966125296847507046211674172783606197515017227525940363239550319557173463308706476332749142011058773597996964067108038390983280500396263790018463592612578439393714854034616250476362947590123232960852228199281741602321499410063195788243484507984955906767531685631627650868167081978689162867464208974901693508784118614341961721885162886555851532885520781758160081028388955922106865264931734888172667357744800623700391383884883126156143432753742968640899292429845061102844420458239216317841622580206455810537697434283008898529600908305567371586001311845577448091184011142498901905826707404854913920929429397598868258133233099081038853762004767991055843398046189668107582320954629024209511334227978072397247445446282672412383219917049715620557384537652947942588911496339618842420911665905960327432565716748492120125433426280676631881859505127483295773452310832176483099604760490297788151212667028075153679023408863832371453687498324008782577030803605082049395769953996328170437625217691672966716988934754025713247361558310404842649640086096605589320312704823405609693852704037440768924701332025786472424642530261739541724344179863825862153036900963547210368307119130151448951682345236223414511754294121420722410260162403438620848547643905821818121042009238860160597861590155396204562138184766159688460829522563572517910736703675173602370103715535055212156128427455246560872451343714480921200614456980283435622756191256317568574493448270838375504776832625808311027534933791288730405841974654157479428659122348814476820169908398275080713281704407926623721281601362727281294252751184689993530703285161692401266113093427088854119586293366955729540129939392408827321663272742264135617580122154487985593681496328403069582762235911758563974848860467455001693509716895189163264464041180973359438966341568942750390648371982573379988152536568593152734107230209594604235856051119822319857025344064058158854172340810814836895937262178370203730846949100369029032184782005776749223230274480827949518465488754931997482543772784377742018075954589082588605501857722920496844131402827812155341702491061742838674172762858856292854038199078565066859958357267125251554216578459611924847541214331266816804925632606517978855363541603643619052851184333986406035813350404378300161078343098042464168248212132445720990253401241945340951929585824889630816099417170203154936758916832654812093457790460159816411042012855331596027589542871483082134052500622774406397472312992798352391008763964907295186936339273091704987790931354468080262719543880437765741870619627919874184865010313428306906464961497703422227936704635151444377850473745358998457047961199628409913688777204936022822717933867542742480950723661416427778936136533535307736412999055925439972567561077238360039108650015636748220610472432657590430027687003184125587870737643687151254741602591205425157412757978491745146335827678419116877073920184768305462658887283388894001310559539783726495005112924921172427613257058217507232184563758663148924012672104291858736451481318701096729654945973437529200520516068121394150486407129747640325282468502464922753755298171565711476157376073299763886208864650460455730085527226030042821567257342439866371473162902129803192817747180326782821266272868326238185602486996236038217979658051490781303987232259034333063856533161888446185526971441641273688662879947924572707871299429693089813151307531936088796097077801465156925425811773884615493022321367847030105242888120434349683869542792009625028847014516075748938132602789944553924798082190897558382171156692437545109223066186873463214805690179563983170775459542237220530465199681165900370825904194677705732574531985051186794921478404143383117732515665660702633342653045552067777364888616524804789285766039097224314954478871666874241924978368082446165846405788482528440362959421977443601512226643932795009111179276409946097124121317439169805921363327771558570198933918260829586441110314432981572908670003260875707413226826946589807536995790970671294983227645741496008424814501644657507961509925842328889052963090652304842932122974530007522278578711850953231524853541155970749863811298879536505936820155089397858656633677654797220957472016721906954632438172382716297735883278591348264394772220191550582974951654006842881467463036092287878756937815518975288234583530091347513275766486601441601516979793906822752651319103312000149392319748155763812899361096674413933832475014917072804065655785547516410101831993243383981286524905931089447166823182263187547906061732033345098184405051113318080413238533220410593349899866376186172557843278338978789579245154498383749722946153023810678748757565422952358228432714269149756233271721895009523540742067381611386813628451226582443173267638379196861984073093063481569984782457597926993920182199654402268259302509524094817689876081016514493669038077222530069829969710447116626463231275562048267607857282484484989882016246774520103993879254865817509236512778095508445068770952798636763763031568658269532159294374227675898467525383457477490370709819473934795759928842768247349061772185239991755007363380488744427958511885559591023068210192062397969305831265352026150531910622973858528080006287036443940554491198205939944523790843569999069207561027507198127023877591173516094814187727560600512448788770696546576919240894883996748271255711405051592264590825756630281570102114824147346265813557793076107430617990297264679840876845219788924697093340544093524214810011859462868845463008423021114571946169219213438222565153504725231541830963437487516028246781295049499195065369201769856278861668451776678643078573645502964320118287530452223640835464049449915573189102995486595654314173134085774133521621785578856299413320897380958732423063793344792174831117259248544186312157608615904861947436115994922746026451484997963769861759813181879944383561299448865801034355430141759787562728694448422876585664849238786955718851031052775828865824201888781413602382076837396431417295241794579056861165135592927992946659588061168220304443727884435047714938591180970820085211891785463188336766651993006120160292241771360581092344318147367497216890233426286775612854484881214262464995240784655807950845607984998508916235598742134444759421913108293777209061495502760460784360008879599937274280675882284599683423690807391629594898500843034790579088285178553104743502166577964151509702929838095525625059551404782710452040490903363750698253850278626600116352287432725608671095137219179572796753719434900131706090468175993105934649492907651310247923743960819209594935524395324401445996133094690778985412360211237839852846836179502668097796136383633836770822993567728416685931009934663291242016805770909253108714778061988252578094613787636572512176716959515212731182233083310931019330202113958832134706631136130254249233649304283858382393555191361804152283050396311243954458617979260889333467617803586859881725685979478570829310939490396422991449597363578174896939406267174398630086549018012969014694572410098866683243129938987531103619138134537183518851511668594790466575327769160337064489694280554433861850005683972190091704940873635289479509716663690929395434826017127794122446319141879876861544349210130778579416611869381247599451257911762836803864974279718381452789490922019142720758051015945605639482498358988132737445122132710731670622660175702718844215235576628844723343134506848719037404615282391703061030435733873680230625951061452195789441981298883143495589569994240219639832210022393288577966497188136241307495472687737604931068595977032103125572731785402452175970032302356409533620317642372816227066495351411947718206646681473157754684937158478133802340941159951691927662726834659899669064086291061258275344143868609509963563768415128229867833618353738493161874716497175809744706236744804775689359741668716275019424426764210186362702345170967278903676242909711760138796635298734327146984145107231953826368760975874263000153179133719788731953204231468653822905210699277726225213346970296309745309560710080721023870373172565359480682709854542540455277736811507804191407695822074537496012409442333636845388690074024986897059982606447794725761252342464268322212890293757418021772532072496546451495946609015247437128239212380109493125975479678808972432730985896033407841824645425108422207442925766050574848295132191360638293278207084565781367519811433633729838970497983063483590442254783736478635265738277895817519490344893029753401407244590984326187380683320689064858213086125321369135472692198413560503412165990148900660268788784875746258606768652492161324763379138398763295549065622858792587225630738905375308239537026533945996493132060727408189630914451649524554455278635543011536490171071067736244573024114190988236690167140063690571930715058897933946839299393292168999912184138350123060474218186539101104993044443881008018191218137110234634356866576931601268409449783534973736546000160226544404364372259344036417145500509447057534271020566610506800226150279719538950452703289016393969230597217228857323904929040693228301271314338792152173015593388295571127083010742590736321023557441377255555777924078509166089798554175818177040688041521948115842686919712673295412314781211018153367937417716409274129825921091882423106650286253982191518795631647450866460743770374473231190613906290255700292030840015031953497307844306919649624263879776538397812635704362695177826099833693311332919426201923792749414956844373770396691990156154002838769825996222436466692941799603524902490650338150647445261790356730735194086499881032907934123825215395313970931637971075159296305084591331505595371247674731220293445144699342255312812635457953739131025668124767082419364828684786022350677860804346052127888500620161810225914748870689506096335803818005682607837410566084490041690485569141897537548765993536705796142518775998236265823316141753383302810902645855538542711848543305543331039844406116892626804514028046257041987609545781723667672314245266237937138390850737130320125538816026673967523706972600742540928629710955796021773302747931759908429224840058799112281245441863745275352404119943602636908043117835167149826158870150505482459805047333310153973609504576239658203275361241895427729953153102741069489404048545811776968051566478054015687751587446461456396057977446178621657354272593274299649115859373093209421977378241054048456628769491241912453298876260865332215635240836493438812772191743872341482753446597954063202553855881437928124208567050806394031868787167449440556118194371972705704062674037302735764309011195413881083313957258020158773089500534086055713321309397674390228085578729831660378876289658006415213075019752617187214688444380310719129338354693940327980406487287509779775709479378720698384593397804192638190023971159782651549433149587466433833525447390408353797984643997738447266945118284774137754674575004398533505158314939568509148585105453743091324454574639317163924157761081015353800899276241155069271262287001446112212596804713730214466992083165259939492653433640548740331215413372847001826070273883843506525317922821879407144256286229646757290962068445900150862801852491193136398938655467476283374370583481843809220251434912213795905766946949268924418672056726949103772238845228296812595757772514623724996345542842891728471502372033262440415778452212941428709250753834253945813339631369700489262410610121131821910764766816167180757677049844900301564178860108848630846065632937981639126394525422048798931538207006112797567014706723665459783619338439785100380818899952889514066951562365134066410997207516599126517121914529028246469651979928362366083612870432081320845988423917229710511943160427746102341391034614636703641144101111705162330051578654843989943114227084835089213403833416149522282280073235812037659112621499836724078546081027846033018234844738799576444804754377621495323494535533083337934644034482234738540948107829065143231724436396125307550073620117797882624078004165272196202554802272005843966908935074907619808717674009991772239410025551823409928677350476732400353106685714041775355991519325681244790405214654271651299353637233415865610659094459939577633471658991844088290389695652241907038019569945592462949256375773128488171263423572474787419169353993658876182802497043447474539292140269511289028993778046641904406916715923284245919257797164703196129009191324854021823461095960388910152877429319917108728789018594406110492685204406253013803055264222599471436538291533393548490400238663508871355784979130138794619881717910969864156004012339789082359767472684475156699590737001582605947063735989491325376384232246567658755203223494459007719413361680843651242657198952828127272009867137119061123966252415745678779088075376573648416766933767867344572304804847137377964900554216931244889835524511802273522006895799165012164845794178820430952774618992745306066441723587568004632544996415663826994148883892370852179984244890485345581844540014189233641155192794650332011821699027707754909459460835079557044581009860050704318488877148946359177040687945154548351642996247190888603973934994819907581332472377562322120730440033683863866495703928517421597793672202719593071751428079164510922884121958886592702601460572118389403599206072989049048363158317275498316943687489965026826002454775288795636802694758896960565119742552161004317165775662271009244400205258229504204677064663823747746532200610342681871968132374085412633274152195304833390259123189964248251063667064179819620103186000417177370679372115089791727241090753375671362779783257170892362835374827990933189401761242061788299853331169458850360550878277351176455375140539807055973940411405193440684838412668825755598251223188745323699484924739203569913131193875969322921566721844241019774501117358475147987326126132266745775879105601773584490937965745476479753967612242921599483476734700372493645707220614379575243152498542342725175125253398299109565836701023319311387907077796816356494585423314789581433972849809854545557216114252586061826002295388607455947644940954683814610611448244304507242376597322560335408550687077778627725723683670335105758989534364642626376132788337169630336081518627081872688345734078009906977378139495814777960803275831241426257623876078305401478817443327511694141211025382577437317670258936020275874514321795964871282659288067083989361905238512698155880244121310013457376385078940121758640000571487253976732238774383144982700507931213167186357416735631542551256742340921886079337169981186688633379617597331075987152569631395389494775141366505782299845516176516982815777487172001204650264124389198192946000302699401707082909242979251532960510268552055310805841645369583943208223220923047995494041780635255150874119845968990781919702603160994957642537328547058267591611736259221908459820270057749988681566146843693639377852258205786487297851942678013560198873983122314539771996628708175864879463580700877657656966353270705590946068175593723573913945024490023683775488863718344406475829767576624655769705407232696934587891332326217099835809566479741941319080499382101781182443975121974869087530512907766267449737637671792568686542191030361923881682288144578826371078954081249907431362174182874544777310830517474763481469975894868490400073315274942160211162182998759605608943081201521534565186534101810015759921598964644775403665099074180153872955045579008893567057133380057601155842740012573408234363660559544329053631871689580975591880934496895377539149765038720546597447372991411111353779788394825416471409933751254261294613647541082875134025589886050639027487220883553003674047177924450327455662953148346504856304129777114551847266777806484313992066121600606964028018828918272952449173962898388841007691818296390162456526475572249928135360591836124151324227885901511131471138737407858380890929799102013580888611919889188690171739478968641204324487636431491839940372727321932507577739348858132108067404651799142266105647459774241030164789690044651720961087897810238710821800884909313297831511987416135713749090499125866925500229080030637036748630240871672981316190671958225327320182390958155181013662626551853495765020710688386145995699727523147063740111941384946416857291816655510170843622729569393958806552783225174232714624246825054025172370917457594408708459759973154033910769955882151397107363626996471753195374384912832678407789852692203558347084448547074790774421668956576878548505863313962631566444440268293084815781178168645597279771683799458369512356796912672405580305631523608137223372902583896487615761040367200253572126315586709604061469097471894378816539070008706512419064947059804090038187503870603964982796225900358361332167937956100328295056381817219832602594150424754207891791449729104855817047938536198913336477625616243699071936700632957845253189293439217009514034036045901131968341733199613449026202544475973376351595946115253630935450186103243947339519735486197479917514242116611733321468320025031030069185305220121370935060372862612083639995213747060738517479114128947512747964302948305498581525917906039560815581165451431162483302803879699742850060166825663365113850341494661971075083885169998714771753481341460755440094808798620065857667390738582572542663754217310874751021619527354458977656026611266714650029818064219124080006075483606834318158212284559302247577225093715033480638067284980879446004687268652793506350123000169652620557658328764257502089319622060439497271129906345439611341849059283545767039009203814570583865847061129404892683411169819614350921781286092230796963121981563793238135591080200887196933210871002196887745393734304265471498876195717701434059245942780207308028475923524398930544396343068725070742319984445020027851575313769917629462141855692110446916183922372678999590866303838942264494701513598578817602724672356981022895023797191614042313446082807207320733864923244129010681151377124429490351202214127714353351144834745942868692921852891523040289429332933500419230789856517106632941846984154056953861044928211456477855242591175450264690283788732412464387096653259604977899747837125493666124940177780699364287506108873316143219913864245007162723039023579487689334219638584771339823495187856389760856298834669810572546076236377567831562198664443858875109229572436498550796031189654540897940075666231794873606809085238238123538589376462103612692008134273736213928983296400733705501064391513733422138678264306876991264498470783339037109021157661780997212986329858030347492614751146807998789563017344208127657917801218345508035202689541521784114866716402667745011873107801585921513209553384675600468138181801216294425745453396904002445965417328043828027330324085666902656462495061245069455241812232324085087935074002438394350585792543278745167323876177749508990447399424173404853630811095881905548676655234106521276923046991290002715333273233438441397149616915270716040199621007694426974048891407501267893451363895270162511680478871660417161015196488307257598882282257564914245629474226731597165310043189370064354714663908056456049820576319447668293993677981180509461751667450391821188548806513078616698259974313190995294049006241334164311254682882494655665645781861737902189533009700706039019159117896061684791379481790252806579645593273126885825137316223741164909245312646836301517323417945841466905745331140314410726279616335798842985676492129553596793315842918369902301339079515871343049490084654381832638165469621211323810301121461242819154822072952149519817920368956641514928987257453285448262671158491187474085135526719481502771586756779291317447887882950533919702192232007821281496020084558949023178818616479661893696271208795155384900653333810043556674323546146081747042749676892586147732155570091321032844249864222276601925345766990087371551003486120941730936282014786103095630085892284190663725383652161971282344316540334203888034389976522985753877519130116354871600712931317001695020307855118069173828297192120149148442324223236511056934198974972463885746919945919488203910106755696222346141153652870749879199073091069138940836796053143649220840199558606327867113645954606103585445418279348745633718364133733177630885505748152074910905940776660934294258765267783990963493941339493020744611097644306207724667659574740338768742367395483664924461668922280603953910741813310939580702654371394221097057533623468278052921449853224243531929063483504422811121332406837906609060538178348529642274449525096073849529524735071099028178769922982058535761086360675471177745941135550338108995314319656528151737886548343635915108767980447387663767668869510856826747631881833380047627492786874650722827452971110163142702138068741993047281889052848631189655316488603583219383487879204089561003192259486411119022574209763580142524287383811685534534040205164777054273381807822963499871598939595507179457987873446703077793085028675206655953698391789629869026464398641736596261488856039155002308569138915626090193123646150212132524355250845580637569116125924633402309849290177202192770295199960802507980730284849576479035082155904905441738675404528217268759559605983375381824856055004335695147015064097669512637646905292901900573041012132300153269968124601369622412353294143949784912028001417321805237010848709519070698719144843972748034159820547650553443366213535842173953267996035945916538008366992449621413393898545790929823256526879602964606082574767749881970900155565141292842076618967493359477936711180920825286373730387256882608032428173878670899977191800129076099549363340397413260247313662396368647537649171464115903701506766465748190327884853726272181673389640128691766273349055780906519895046425662098855901314702189616117295103851230529958902397877002348548396766886507404477972648845105048715959751837416394960725718720780943264331017972872263247483001981114585685240524597255011984468682167902767836266810496836289133933609775841162364421247959417336264430437878586449214834758666860700056782433326671267821868516893093215943968625772467315752933857377376730270307793472388786580378308387030089250162446857658853662088162471385115264823419254775124911847261981926961204629427081655909880846547281304940722164888565106389325951725672528279142996875949756317347473444728547533733052448495106353785653995555645332392554270028025912070301296387560054903329848830948360101275827246544065683468574042390753752029649218112394635673543326563380859956933813571519995306881932591249473946733889464011873841805593717842918639219295562708578343166830800425951971896240589526871323810996744355089837330434759319699421145912576457719269243890964181156323225617098093451117862767636167776032171625821446992403576428880888252239931300468710547667854443011995508657876174491038783082347025491476128098109174334319601068314127925927217189760432627996878469655520574726304753753369765304340515195871829786179276845857148822530927087958513995942277266907098159909747762681203967033081202188438823323297868044587221399724333684126133302072672750608750969811901875118383413519346308420125479688869143417802236120734968304914349231259799123864780787677231779026172367982873039548231155675712144970639651244420829832827304478487936525671345992727690438548417810261710633223050792562896191801779380203521817743024189980437944835396955666808916530594359867199428816627768877239164110621389249106334688807294764834404625958240488336019185319741770190499244423001773350441840227743387559383058735886941158222003195463637360148984381329974539535928793754915287530026105522777097590850351347658501480322591893694504691729392882218326639682541164216675511020654144177450150391773901791542774390919051274751868853685990811045504708899269570351305079936100355447049467868637256725715692019182174932727533468629356660685086365544250656160212430287985967531073556838206678094785745991802422195582461310621638641959710121479323744766506563133063811188851653737595432701119349400311861701030594984087332134459787530015732206486984940920040097322806735612334566160821748644590884799096713078281951088766339630181823922607634651328784423696461233208047846759632775847592871954327239799292191752490172817974550212306121887785010957671193753207886269361703952441117787155680422857601302745220756859663699095256928380624421371995071698634912511853081911701712400160477416869600181104204125970948514416824438716351378323091695863960909881362137423886417464882947614557569696488659523625600449379026963147414029754432623218737652966214044635985173928437858680364284012335684494582182928275126260912172443638738498302235478628290227448733983523017107850963734304565724069907039332002947521291708494858594205223135663860890837045876501071104682824387591982212019810765786858187778758837168552983471605504747380214507786481548035605041078751444709136142223779199382281046448070002456517912931052940667506283108912603536117642511072068618069003137372355910212162522090505483382875320799846159326701857720447737347088615352354781286098732184442244641880263261743437984272617109923365851030010966829518556588478912422585134438307183352256033381222109655906292759180315627944648680371372743638255956869110036500154411110287585072508820800778687747643928422961243641926528587184519919703295989146033010400170934026941268855063263774594588380775972108500566766414316915422631251968841793333207685658436004270900216158605269422952276481310703538080176476879282046714284534732957914194842597375943216850276890250934240604648129550453204527277396042040038220040265699969538038790286119316633664660973785996136941374206620504539703510148672054124040910181375502480810450356062263147282090615670035846101543094425923714695778851349901449130939316577535126817500586781319470029437918654766271341322129436120562572856437356986298114142376129984630736237546353918063626531144017189517105587711098793773196932345617372455466385042642079882073403352183705043302048027208462881618111653584249853236309848010053895710931518201401737203436979953953454188513878315958998902417196850213657811844893852678461368448199710597337888711881849369227304074330710320799246557396987984139070615542886080882495377195911106962679459220081032811927822077543092455226086748515648152784185537072525585886647738276853245168533339837832453865890245599449616722899060781894970547735813506597470430192878714475749159406212037918604468534399977833919774688461426051063653720027943581213753302726532587140024028953414479778562827906006335624187871394856613927731523360318255468083735455009530478686783298074523600803064895067481578142605217475734078612032191136865583919543506016142584743905293108114485142571478348208128123839424844766443639176405585036222636774370540659282639556612074693682398192905897385549628153828305474096808265255300996489729642640745716310851082108477236744258800286036932366853622770265976946760967738033442480126649557433218141988524325728030137403474000151083559207046475903040429600813807502566122880713736759723375263766199343550643128547761993771523047101665276053140280757930957722840573241067187190045033181992548820252531968877069804020864212424695323986058561185675055927926742066007439177228948729998958996879321882693321646865441964622492266943447863935473464582867635822249534158541972230928364251798598023155532116362289750433309799033243861433527120794798851894534879726894342347139094230181897512883159220345241802240218405630191886314777621771323514837275373845395363869976586404352133007487506012911549223492896353077703650180708232012750892221542601438865865624369155161764524132213496957976725548078258227088758488613235500374749439458702877532708997144106041074748443025026211185286851192145795428012004259313746295891349887479131714051913692091948004625894623222596398478316212590689850188606545342297323615233732619095453545563180117656441176632528718327344822849152429330664589219439876755821950263509375289164895908379261620173992999257778044876620291875014674180889908880515426294243281293985537694576680876373485845208425877262299430595521695590399779353672247868944105533526048219092587369478481981578515290304922947052738525954255181336759209757595576116958286069424094341388621241940435689207411740685387853056015216599613847099030443183581835598228696329643296614403749252675587562532858581208346085573831966212572226878232685676825599687204436525404637000317213990759484061402920260467349497566171942800950032136164119950975427278463122214800530515818748747801020428320731065475219009539310674844796103909823883016593040970026067319960940427221844316417308116870696609018310482830926845719943903765865038660092355367621317677810614542694126762144111343750059215507568528211812094487176530260850485507112825539658868405885621112512126918635563235289259191373694732212641922281413661987535507282835465162885326763078008823366947022482555922580773048943554206298735012902019553133856038643608227254499781083729414000258789273811455999528013160936476022969210675944541567058418431797602272112950442183269012912198267822063564967371449120903498158300333301432654915123989867926512237457973309137671436716318595376219013594089131679417021639537417206711685311882551450750060901347794351933665584860484906633836207475085668710073086715332897018425012519911902347975862901128164115948049352784033835505767026187339580254794621386198892365773542249842170693305049872900765736720432879713469971035853971408402985126653712062101163997666367645377755334446844028289073408429936702219261215508248871186376291181945159061840508158803573780677437380578821075651889875373852308663779613245175054645471738854238153688454718052305019918330410053045306490900573168162649436393217309748698498477332589536079632120137465651191286979266967052780998245560568983874212812308596128177141162557798192248875819975485835251821356760259199862500305778076232270171635529030687686197872290592412975053429143706887976760393514110531233338082189448437415234235844284780340063621279752537334854810136574579170563638947708871679620593164197737441144772561896519963803462582156929207647022716398633062148650748698944915625363972046002224299197782458204805662597434540825589270374533772343530370952240055388074461736941992578442278064758222363125158430951974656983258858149526600272164578150727807121028100591932416649197650039908045404971185200666830662763200882853855143034429342788455876489083356420677677995045410499233084500247583393608277941152331754986800184139205749174524799928524435697008734463235429131862273216922569748183591365493214742231753697652813405690691664904340542620862750458399871154633479491028729432746025613307339761862085461705177748762479343642816483603618416479677287469630328442027002913415940567810354188611263689237979488062534183056906479758999369456535440700788404582008803659882805557879411325628065329018836200069107164268375792520168405119687495805504710564524485450463099715071484194379436501766573100331288355049688934643478855208319636905810541413753204184077298236435211112777507334723420565414579736542709973095876900172134620526575685769294773792997097183821012349942477442283880321155639342602492197297113057715595609617979190420011355111907327503308374087153325635445216521476617777368651271002974693238637724792382294687744927386278750690663898113186403436469529631741417420712371902230989116227760395607587544595915524449024209662742493751197047395502944672265874323403066846787502971232119089402529999754246544122360161675561489055757874421149407767755436374684636813101519360572292739247472420569392650009906377178569674848049824816533774423657368316563006935570420330750862628505095863371726029919103680967001575874989905727169357172168337735374083387412361885007682938826568596471651192185780325368007542502902352842041926926262573080766235461165983865496644688575128850072898972861105769203211427786253814684756641822477462475388880918330896972424185595781269244905624373496893873280264368137619203168152306873311675759368964307851059810324545872418077329590633452159380151906427945826596881166206884606958311229238186551005258499255246370125514888038154004627952693646467266026133958467468513714916813286732297223508226557062774458201227129144940181065212314783135767760108180807119328722034632181129975525302658335939681394612627789582951224379691005578604505612939020444011859607480346323258090110573218683913313678696418219660626175527865398067884576900024177293931351795967977091534240245133731808960311955689247783066475337018949352307599128849292015320441799883837985674931434179396191421949237668380365618419507719741737975589734269870952225326159801221118015082892659334458901747911009192466129522915263708636343422002086555249748969413459846358040936857788702995095980426744194093489667523151137363457336419605002097457943485036376149943124046418118393118548439804246346822702222897229870988503259159117733986881243140032417759055198448519033143053496696777224453705689329405782200661921410189732978018156664852397889037509390031797107118632428222124458135764837186771848043046580789185245147427040048973052847903806851532120610465212572551278263964845375570703683375583989627459736884107729190697264923546241107277073815813955394632334858288574121339853403295348775297547962087806024858464582955146800643347758080436501786120439740264379434893569804044258456840654511433812038747876065366092121916356835387255192553808265216732337729635224558375106881546614387549710613381061214207708081191538517605500167235000223400502889669356764295440018793635871895495833656256670754525534872741839111215703614057787590666861656794622279130256441144054794289598220519048317822740275774570049283320413392750449218017828227501076550482266458343522397642978950923450225528068905399347039616388868914825474649971093910529335748538306135998692454073845529590659583915606179027720744448131057572813814327618695440853391053320731432969283266954019590961495342371548872745321137760959920985782259699081188932220950733478280051086209899215412636088349997567710288155017586624987667969581650148899561334439900967068431115113591985778121190528258820214146422467304775667826557690856650186334312330265844474248508746051795872637474280037697786089169416458105694489083324019060181265771272126908101774564993344744787993288572258603040914605342286719874631034628403559537934921874319735655445689327289331128451013684602274409297069677021937775475388350972145161948669871988359890579272393952019848191956332759738418713998056526920789869366480497864284432600783171498424287915130521471931482623590195850626488671874439456002028095842027791202084959038507175633568342524731757132628629533014867420566364480143495706651236986594691552365855760403701239599061460477000608035152334704860927220266345098524381836108475339820722996623654700791817240003059878463079204736067552237884305830393654543904510871014205153007417109239640482534141319374214772442663411799377910788999120639235594780204984802656140088498786199808718347281430687147437821063945547750772031859447496841923767042821599012402686746390431030290625960773884140477569140160870159186051874062502450557780155361239426753645565432466135075568143745903659095143523176018345093918932332621679433977515123768061361095514359534564553299237170847412901140945635185755439410304174972748246570739102828015608415259741380457450057362564043841176739839458348657125930703638362739408213797584055535657102874808393824273905823673397385105115094720260036173701268969480075280088645149546709011826578330761288071454957564367328687532405801436958004755121369076400945292285773942617142471830705110056171579587803106942851034267322822446245498350476627660452708883998356533100208430141492223011846242112579993625030452052116464732983079615723420178048159744728146369693757588285828259306533061399785611071617737303184766444672037549693800215678899337886305719285526454853038742580201142060236125010785914762187620149675558984050424947166582434269339308970771171840122206200294300580775750597654031338217573188890965990051771661198055645370969141595413140311131761382699726831182230492969705447187975949129865455515107537323568724823329813219141336389116175527211261276658818294711908644164445764341558764205559342447621510094952641076459946852914619201381645724694072199136788293980898854006585578122703583570327947847218346957310229471048891098828252877630595225522857204188168662808047636660739455737169493642211340765164766633634839089695912542941846370183586716354509085688327877192762562353095348421022877899769862163467406309313588774131850296716605786396731821641871695006216352235943594889180180823008153429996998437791264968378266857383566562987890106334301829231057115065447462117081199814731752080104980860295712852947112756153832340241498626985911782189356757221502594629832998186251317918767641425251883175969849382309635188151443279761823388865087101890096620473376930519341010965083801967349594541120114497489888984856020406557479765803378623535281379721981108230820084897005202550551383315246846352061296946339262315462300537619512055755874275596751896200739732729605846058396133806567169759170066612707835228146022945897360243110307163936117945884906709495453952752844145766495689842485573818151508711422965408003370791791330536360042993632505973144736498181555367042357959886004713749489230493892495658347044414303535335220116497871940560060176452046707228123157124202852377228365382808936921737526774142268074981833130951929559728644894369329210658449775322319867179036818134179520947149739222141541101604612865825483307440817631203570972720882717185368752911393416376134080521755012782983933871138297642520280402381584625069162794017581600739430788638212139095444988708919948580657150695440334528987043871432248571487752715363078195370718596610407997740158054702371175965717381531065504046745988910068983262781063880760373525477682619753207283058148378935168437467142987255960305362538799019101825604185989183960005123098070872665884800238787326768939382642510796157392249596619768019399024645375482628862732897522285009624943087289124456221689249968246956773559447406307388345412310572576434268492395027587474718748625464962727402999873116396074479245633564380886524243541394858751992792232627449871601404734499381892737697505373867866054186405654558903444713682478303919569120579470576427587805928836793109301262957640933554148018831230968230976221543918158340690163911141489811901796363380068401681740576329651368648474466141556827103495405528276776816250034002230271637129318790591202673605388407984011706838032535302302365248228552310875070434496481745942789110712530661322775862709426590683756663962677775479289756501623399711680181202614173657925329014925761118301798920271380085568357934583490321010586315685822785433197762625848375467248251877603538646777225596951451929318031202816460019140421949640619200284056824344766791064311929163589119349181798953277211492687290794611918835615003180212977354946786643921289492246967672925211451593253080520407146625987420156724954015251400685804654753317024576487492028083801521611489022119613968069996720828676487294915516001841749783351700310201765352285179250047041323919873162297555613158908075994578323008291128413495399002228602488299900149611377075558419396579283934033492821627952346531956865326401444102507235550931673087394171261864614921485457222691115237830090993559978904299428411194920911407478470408953068097983487918952706364476211828548932899756898538002266542637234906651756752648403730938738194649867235691291605815321452148413119869983535433790418038817816395591993582490214719197547298341977426125222669311932773269639415907931169073130408983124779074971606553980038738100638109594725663712022370496164424776202503491853668175122545753802674972013749642735086161178832031089273891420083065207887926161963538707220834990798799381639466474735838566172023974986978550343026880577460913804814247360187434782524990496962314334047373804777133339397374462771856358599506321191954616410336695696857109019214070263363376717860544268199717259562802283722050573101033667979580906597935175313257425426442588523400278608761980659345023882333289043569463363991050709578751271240077676246308501150187677294844375945527986971779953192022393655811088870459243190898845014823720200132817388029331031913839432027184698597719572959219669572390177747967250544420107911910455545216635580836226711441803085079590264155789752475697340695909571929271712965029260822384331348862412889812848277443660380773478133571309099712711414255456599639541800307538541649733285881857847212847244550439235897310308389250043506150650313895315411671489413254457619771270105266361496135928384280457813044710443917007392159582473553087066785871727353166329677457069125123326969551530918013732331647674762780519151663988311540604146451411781251238655440524735539287485986936661593201941206550444288035379449804544443358329260699592150686946598963667436539893438031104273437546347620723503503978498716994013296685726653061363440430835194522533632307141034698460998248562583475701343075151502884698013556146685579438593668815677004481142350205869295257145609334564997164656317642822752375030024905934226042628454336200495002581431177849295362346651358900232557025945611723476224142750226002528602264119506594671605852052903759769526234837677945799014398339069332176575053504371102628124655200944498155983534990150478743183003955524918073191692158843565534411819018601809990755670893402995938127773779067913025595464275453017559662467012420158783063724367413738588726279496120240465266143651056221255347864121869619309801632000504003452261886522538360850196332551320300249793336034530928293644909102943116376933646515623187327709521371287788780201370023692189803462544639522673391588707533083495201552416240066285074507229801056730534261733584947926560771890166896217932364669529806336347587356916712778269395281122271448515984448642758522145344341350068288262843726045820953737792707815261808256453764974020522400655058025072474549235318184853606964753103278191531772268264532087030466857210287429129761404627855561968458732970210906123162133243449293130412606950757165580749984461413098274113063398457329400124863879931049443512078158551275179024060769730877464655073990978141807986913437252491542604972140154725834199380958588303411663083574946759403472749268810545735512256297566019131393422722830940328175762164617988729135456029788646219835053302050261099150676260057543098378571173035467184966544615125248439027028782420286697211161282510694018313161259223167093675931033216026454177497659034163630526346602780531597433298461271783352496087115407336092538420847240293964687903323973963677033285741427835128315585628450172313775976282200064455960488578805778255996599006973457297622624029222923880733297904383271336312013926668575223311940122659953751284205892482231490148715665888479159783104778038432601584463950239334442577838488474289241510754339932423071121838409163201365080652324373407032149680823772441877843949163033546169287178309718131974311112893895694438665009413960363051660150088815956008534133658084762789608124273663806136682068109399931325358928319182260473083059958763421992747404439857838989501616447971674729420539585159043760822551903990060292237578767186402099165090203820333563979006903660707058450942109229253011190560919651997057504918567937447280964296220727640409141272937732341345974781988505939176024901771798989661314665265863850860214424581833072905571212794588192257337279800268977579771551483826218651408675238714986538789581475916453938729691557834487663139281483097675342806241800676122044869120887212018790945021401560823094874007931795922279530448976352098103404082974737305856336776509110052441806146356854485400519239884296579872082622357568307806860200342574881673161829675667289736394145030582707371743837535453529006856767855007021809434043077131031732216526850204115347633969546878814959274631026290585579411002336999661929203313438706044380888365904834412585445078636092699547388956037188301471856789074423655838299170151688904763547083741055887322843541241227418763503324862560050751160917468369051765178024246297388156433124379663617459970621845912085152561025531637022769593046646776410474578449877139316245931072650263955085407138782221200233735613949745332821877419952319437264988475762657936416664229585918188826132353976739467922375162020310230984692873942352853915908046865158173387619723705142254363213882905778880622864206598575869771929637313303717532463782096043866744333444420749352025707868355557816573357650164535806891250929910490185175765698618759492042509333396330985903153610156079114129904573084739172513329018410767779110738218351034191112445561509496401312388647237564291054409681965826424767703289225755677904786993483224185592122004695308836624019110057542800126746094009763464657482024516752177766150668110887789345093930729977380261262337467402362202110747906600121138579236013777562315149067005010354219561996253657138165185323766240957211980764829099618426360062120151026907355408394044758669222007220160773524352581073525863749119132143860454442781460989904012700314972933411977675845088984456709566766454870741776762487501225879027751365454242439913583940980271360516539882597213784760552965061618676123142948031183271044315879905788254479560237242520402075725833270831264008006772063956717787342255394825901304277864013093822430648719154461684029724151160169634778293908138977249689654868099663500822695594283432983776459634745054986642568128542423793127911534311689811208637900750933909272891700271838271460312915938359330433223983244700379411058873420175909463702231368282849901527200255935058061953278341601463491230801423858417073972467203696294558585585965445929754862069735273514819807193467164570423900886244938774133982235981641179856971592117449514904654596535560341964175080116344577248799813522467189131048450393332037463155585321979084128103749609058429605375944681313652979625826744990503516700209719134096212128538940623207604089136413726637044462028765262949712123571641128781159393834245607977595332064941235987807624913768211857633875590537959069685436144431101077892553379774314258941608690747139311543544950047382712420490748420315531315873911636322692959260009154451252522184821560310579173365054258464212883299797086550444622922673844297880304540689844687900875620416381443167616044655426034713473750106579990071277761313066438067222381995487357979905193422896801899668312430807875270422405364505136531284097074733457998852291726301415640658248678221217228740489522176989230017308696227458471395833461407730158981999443358650944233106434979485754557457304896526708957884197345420939821266440877165028046337194474266712494788719346919933221673402634758545059499720570468793223911741720637571099984955643699667978935581850123016482492483470328401521850875794460549045521278714243541771863266634404662255674538644521278944960710931059370090977084545352318076756419911424244409358987069177201937280735825682619981929167506712580446485145227390918001698952404170843543178553363674734864644321129932288751780231085475119677021510026945017155899760279340194263985745309539691164733591158813604217290736113672255909001809775830228041335392773540793576439483499789267957621726160295257833569567361183140084866661221328214532846140992391121522431107121399688115723395760170671712843817479665842488950367178381782678693671644501190681587004170753421030245169934120045078203851767756551524321809213114544119865077916280081801534332843785945874083054742636372151500575995832367650195415424543409667665068546443708067580137592447691711172874756925218409873858707620877488925891336027857470219216263053622821053501996153498225588587581908259744188218447420747459386164510735976277093310538193783178826975730825944734297762365694688547874141917042406679146042202585948276841668761910867092739485243044913479117554571796952314161764452147448531229140720417604826484473380359573237300067503550752668150977408939857638858840251048366403024095465313147600581020839841915760515302024782879957414876799088859126977004870274416219090249284414999526759741640491126254306646197677392411147806726013578819398708223965724068582760130826958135880361116176510206542945298218568684265574182066199565036935119399886395450557588960675484159868111624904776399230175972069271682186064439610855553672742425725835107299560234546638778652668096510253057076101773199624893607165073615421646890912800951580541585373560028602067941766551891552657685929814497400786634686263335570520579644774029768093329330610872593891129071108550889500092260741174760833633172741125163554650040170638467298463749411576198570696344522985654779464766914399335398614252834172893219528362658949646899913036591291173539740368411015273760326883012187540791715208502686845614782999255247741769749302762276056266045567316637479742011095940344367967100624854535286736404160542201627022027487041427779927834299020403687957441263194239433669812017868296290345396070957894544756091047613029832860201507986077615155641710254893070110236991201163453886459715173316489423005498224726364139925948717201719327076331615254253708734528141144877474153653950836352286614191957052233591359562861275391577002747228800028190673931132141443956262391359627554184793951955417179940931071790720023263682786782693593730071235412134107953127897469349641292986730392288859790892655966613366947918171558984196162319589049878703094468110187553634037570081919039832524809595156324386673888503791448692931709544203806916007600331169281506873200356452753156513866246653446187002635537089946031068059908523535455856024214518314300997524152873553901096698426788698624461926851743554362460758206387783985413217695575781079210813893757698224459639263025124515644585058089215222598782826090471937928321626030006510586493177849866352245946059942827250631646911482824244714211331023297878162245094919003303392320709631212997224160974834591374810326786957427190453898634026094332752779092922048349825611499812949834319336679872852427026661118670611818686633323812601077698211299262097431781200816869729097629208679177613628068904801929891836230172403718132372729950749151740208122120209693867233290534329396720861924722790003580760530959555147109682813407599106416302373249668913683827235799477515962967714392868516699956915202485821650044676840116507546957114837627906176423431374362432422140427799808996478832489518004898535046738912605991121430947434431739645822520548529517260912618529102314880918481233196803669602880789983534710588754104265047572731863923607307382108775794401045755583492559687277779154596764372160652468302175504899348108329245123542009972625787660967612288313628100120069980455695079854663247491274679102744933840872312327332222156330060885237503143829776577703685534118454145591731103791965835441972366447460152756629892719924753090726897495866523128311744164078628006461542880986646296029939692755991945151084496552389495826256563607341329057529759078686541071839745053382953676532709010594912686967523438048798275125639171449685140750091478715857763974980360491181300755782513784771839607318581236408509822145756511061690857480947441252594781319134664658319550328468570434466203554662490182505303842830222445208575513718289388140973949044196437274467702519786556027682563000095263666037133885892661316985577889299419117532651609322564149896996357863836539021152649384841982769248742168626357153187040623202018858739960553611938485912197533290252335978015873594300984656501173479004003544787308221230700909225143266131134308159540765963169525220183686779648589676705710405119057364881021158399309673424472895875959174379689868128983109704406367716459827657218709327445137073243926732389980823480497518200362801126237138040300168543084396237707619312637042338372973090788060214856342031098858420923453267140491068461590929609634978947493267388621783916683140427717329033716945006378129430692332940338015127391378197560736224805940361139531645588554857306575952212862613352601852038520168840202364688753202614263196675963703872678491024045874542635833043370026951371614583379409335476438289565903347404894066972314109589584318108088953122304740299857460086005888174838391789207040620995406619340327731812241979221275302322944358967977462704198786775660989424535858925749718587248189913088250752275929411897951270037944059285856447796715991451917575185291476073715701713689731932153014251224063202519169078326032203243583678845668651809243319088126170655016873162785649593371953984541340593751977098294424229102806674793412773135864204892911929813638464463621204377068313785177878648188800387263090005682345842994884339337612300014102837954966603065007746325315798000955292893531240248811094236726697838499131423122182817417771399576908833254471696329406356705945595769095536607125589886247150185896808483764533595781890722968058012493772228489802317379615603007617553291675329233391457649974324019169438066986992273699075661456954598323911078258789182105292232377193524151307549117329527860895968453381561467855256405752043317001710902135196687380058599777865318027899491321068476840148572735585579384966597629984387225332361654775626174747976768328636270980589627399831470412266732905590005909930022249717752673845917382849593542712736439137410583394283655757030103828971155803709710101160905522607689232474233263416765517386326185050161700046026515319974658617059820590459108378198742066200792167022932828252262245987695929270397990408048231098304712032639051815800219925574975845875397429159717380044023758093724743052479305219474142239874667074687149910238924000640726908171162434919712143511092543332686281227278085809696964847315205401544548041362194466843277237005018448470045601147358005668063951470672808608977812695372334125239577602345977006952206464623014090457694369648370861456929628218011557129395038404339095967533713410167415925362637230797690268072692014160864327467950859222378850444179228004313086136181834179588054446045078773340414709441650597297338685439741583585744852633369223346623068648101449754103899224147446180483873561152507757730461837235437098018125073647765339380748279342424343651255980319748990754168297591917523632622241370593156571054379028396180002758168903575570263210769789755078247430312032754815203155122756139520284276492023426453941559674648638837936785377525875134579804865960490297806551598591533511506117561679661830510475759017716692608251800481997424277742700343016560395103047758134518383578618555907756956790027154576817773927840557000106468883064450293203406374774345019542252948754594877509766644668957996086330816669168314014368597603323957387743063430512084626443206723615981194887060777916284228623914321993736272969622525878339396873201100819574560668571635693452814337279724595423818222072173330059717811716349282608158541112825213214489817735223270106568743288783957479944907760429529723951615798290830523270083062360917528587919582379261337911608612064756179057917106182482120666053463524659257008322029934779142318825714958228447027310208705066990108965487400883883575584570643739515577577729005304295567530607042758233053074933896532281816367504613605431761973965868769048420667392574408298069740346167734945294273760461062943973151582643991718051476583238511745917942262328915629016120176575825984684000753349716865107260986925623983623872465689181034187254501156440186541102882406526703335043714903279351763880011656291438344968708554911731934528223101624901850302323026543027145278680482006845033989668051703449993624416100773995262597879959042501262489155911220338618662182982544086314904301701534549074708112369139040396326427891834018873401159290293479639612539024590846596176219448471534064177273016151663648776525379598441268530738489535232749700766975192132057887708473877003213352134754919524515671133379155173047465673701749789177474210872253395305602728720722727727921018809964779888162255248490976144189798111941685964171420141568870392680794400266040771323540469364106552792152188917594778551914944099905775400142594659451386926618897499157387624233274433534854219258546008863529451351629666410572645980964463808179429921424305527096377173715316907867726657277448186751485823420114519532728610630378043187020122172201041149414479566098182520447602568104710734786131691058974938259561519683427379429025949555574761691637463637400187696945136860267959976319914441300566831704517327567065405925726134229008123854273208849610844087401542838913400229851313059723182543157402628167419324178972779226427239094949276320284382681515978929010945295899816138723241980965862349874059982643631192267482406847760543072199450997117428581531488974555527068753859217575863744011724748327734341243285578046451548711850633000239729074099749530974878761142892608552435161258243116768392772847609851945851021267361474845163423577550411193996912720587172722509267946345253526587479532069640583195164399533056520017884774154325660016134463593544733378481234900414844109810492535232510153278374599659314334461325537501215654617927328808354645190175993264815296421509920365198704474676779984867478476142999875648959283263081669234660474999810885513879354674828312683255057624080430323487785382160150769653313039833830899206641772301987111107250194230017244968539323649749554164957337267537153812476228095513385252662250869395055183325152073126612396281365521242924961178512815488991714068023498376329356496873596149822117742595436971726828338478514535261306330121165292118268260608308792301398774311556309832411448307929347265034508539974753992029000333051873142010070041236051499024736340373672839668944374663324408191672045275791142081510407782339602406507916153720246796695618109171124196822082878262022182959943077112412670472932493663803496645326145411934812675334238344733068962957093196019366066081594286736081624618113592945312748363548098362784564602402817422566099389410011039932435422695637763480598381062955393984948929395769035963314795358944336229643135672853235262025436819833268285311637751286763994485298531013877333607569895342472665913386584587501644275868036707979340524327043043027585456992242355216982054529607805137413966795547085765361483483674512684258787890122285738742571541696735044690135402603058363851154549742994210108691682856624525419307675563050909054265577687715522885675571612120325599111400504459331702911050576412778683220074697602698165767676781151628531770561366612913578519342258883024344993087917802363677831792337185523889230095568145652827841045394030444232795764149687817708429115164399380984709684719702616495484649865618650467975043073212587713085715970127460592338112848562410083777117449203079393315287923436013046890069000874490437737033987002551630623327520535102697423011615121658198817642800814619488491832784440416692230789793202779105438435729106459476213272545466089477717605584624891622812177729161600503092809428523169890306335905625266809993468608366878401050555506604657598775022896021788710290942895552785323449584908076865171041748743733473468939444663555140199735008688745633860234557017239734202744783035141640341652588013069123819414834520232203322083009687343864216019666962804572734557351921993417884300477594668096885203263318653336151744090475917702751995061192039916096615181788071545147545431177363173470119168621599658637084879889099594518568831181127034843689760100384964293282252745523178673080797972561045530269276713816784537419972100948312773635711794365222708428488514210308286946436046201795490130477893529671637195797470840160755271718371110991801782982536421947479365770767986437633138551435771631197150550162138295488064632692735710682829731533779372873131333369625493499295654161212198323163835668463384882398769971799278304733754300597058383071484876926835294404890141158846524795634272985006546509984331186339709368799092823231977619665042883791459810253089503781936344108698830781487460525122191022604826791712264165001686704507289309669106315018052905326462381092609690572011477306795956733376226494132648152362365005686868373852943847666723779231592315978497809371052129669428224153232724923723705930307159612531896017751537344323180591149257454377419995977306089358445221930332518508979311646406686497986298803719205427728504649541077688187307078292002787784456077388602415187880198694532572808971944071178320519949459223118065610067800042400757765849344277015040527490526904448561774484747129616849685416806588006139217681557758787221211148955335018637544060118625050367177410916516002067009227378948526735904237977633906172268881581335613565991142942063691367483276898415587666509590249551285837697942364426710969772694691852972051618281588898102273454507073191473548768017359594141770027787822582602836542236728986483935727500785488511690154395186866282136207078645054623527465466016431409406192627199304600539993595146331672924741754453160745774858361808094402409313874008798677859443189903372641421561820629013029848375455535727558640793815522587533923794768615707199106814349646791452189837225490693973868576063280903499401940085273180971885171558353987125771314940410622206754768538793699650749963710806047875601329213426291483230770086511805938795869038367500026882964806922774331677405142646648664282719706160236128523597803686855285558837399566591817571069614348877354318954241647151457160599579456327613861678900586492755635231159607105790513966694289361370313346244964948987909495561736294003910762313017901799733418825765014377190062806917202792540848381176973502957358968305957318033000731744706538090959611667814336337527782047184342991904277970049887939834353164549141465901083606735304991322770786629578665546104233880338955862298039481964157345526989715633958007634460903951698869008913666755388492497065754234382740491452198353868791311706137110784091114309784142300183671343145336418906208273461177869125010253605074351715163871965848221609578540084838143354262287139359067693088842287983136953201938741139793259623371827931429042339585369266632608179216175192924956154442136606519900591068183056125787940408334591221817101100744704809204836238926136635049173286923937968430778248329083286316535460745584359558103269873757990600894488676098517017803895126916030498375069692824994486209610032061402488805045987880581059639617646504028072310526827210166366859278037204288085794989981523833621225968057702313684552830366011788766002520575744040946065913511895282722834389943174081573986539622987740531527255365121720310698746584430455428167594871431587630104227541809746196298315579237678675541840806093597286769789783278675077572803652509619028130274474470175387728174849054222541029164778806932599188274269193470654378165161698135994519182494477560942707194074897779169111261165570599041891005543859554888510986453515053508927661022098873759893787279270565680972589268226932966998632024054892692669241904377751510243162370165660282697743786301337751038680599121319163410423884787892988677826928377032235513976109843592343718960572045230355424847638600868178762924878669252364363412946596415816546380542332460030529365384703105873380570217961558836440277904301337590416532592021491959124975131514165127026947984098889718477794035827415267937158803691351764457463759928589519284434501834370467729892204312537612157653010264863542793842010712027654409953525809159926238354862703667985670856714038961230467947575433762549587374773494850035424585134487073938299800940808494224975446305437473241104894378555700422869251096490869592588820743080197804679603180763157029529581489714574722652519836450703773136399921255923816950790597494481428662040820027834768890649487249802331814905260269389882651304321146881227287001724144180871109057635237469679880069018580171207193184020901694253906602842996709156447500424326364114455799304386753344688152182352133843904293310956739232991387518170320694296880514283762938678742094642737463328176150321330396014399721430089307323122019993094027385967964919228181853624434859364471113860735061709874556653390039635781337703679483157259128709514179554822505537410170761379968635396734886662892215041111709664990715235003591032456880888307247582101127361449279512009310453090913753625175242224200905318206723111268367499727177317383304230988719610927086639138054944209765448468609308806425649115397964794286224836705156843044618841821961322740333805677985349908310257789780508902326616817132125086280349715762364207077459207081304688404384814094881528821723184826898275055085771254135025898304531782698064109089859138996463036262131854003528791523589720723000947587476360158030757345743955319613989657222003676619541023714304246167431763635153802398801102920233206983950676852540977905317163105338777118839857608790241565163198533014341062712323502747061674856885119279146205901202332302326634788182045453819685788393827528037241228954186238857514560749363286197998349806395775395361216722485445513314655130554268300874615821133617451747410672017981057681455946686972550582613076201086973240209146508278812635311660009366191276393005890314363467782382581556855513213433781857059446755088034568353286557323445933297913331355265047122706008704327811721816266334939299538794541483721858662538921563666913278455722701203004062135383712814872194315256968504617474563964577512489189358488916177596513654013462199299003442806900999310065506436979908259039212192568606808622145291252691853787296474032335993350400105282418599035001908814800589214845596878827291477433661352740715365482523732480096533243574683310519888383698635705297875124024457922578414531844426605462727836838817380751069499679138373050928599121609674469544713589658702235454337403361299203503789681048296779464574445137802210141439881998660448140384363675325657798874016761406619332969337996307140548871954097788513206528060716158189612654668737918296633472910079529786117792422673803958983930677073921754219226449886617482473812635985796769770002568401582714754805636227463659598484852063655033190589422084211107954894258489762518755869355936320413759332576073931241420001996182449027541810629654608944899275209583725651563851405613145018767694038818023177006997286676799472560008316408890255625311957530297885268556292778721861644642295497481351067549750123453604282922990163939003817807925578649139155026003369312149543379914324373949132494023291026859544732613835992213251487675002484416671584164844501496212551574130527723581772792012605934754444719960001701866177651000617991057288184002074798692285940343900764526687574864652506870159654228634963876965873908399599266555876444412262784424471238062848907754787679647874140721276631399169889028592516544356924774548507183527412011217319536602653657877519205364117489411451937921694254769695610814853233693045159217696786499675869851868617514080057263905287665457731694203657252865389138989244108155663991201249125370040298523112899508645642953377625694037514823630410383349815350197679901323887217281092309701804927267909282026165923218926754360356255212962172194188777816573607870445109233397865481994615343346215350744286893655704308824939792683508196054980484439615275548750905422241224457509316733221169169124594881702657142064898496050802809551361495239914758019912324351361711681935637206289435491560883303971788536413843778179286357257488729864173693796223085407886277630391616101497408486307093519697296845180553197399931142926305331422286027112171197261537381793958569684903617714710624655096069981643909132980902829580561871287734544941151095676806719730443683076409100012972498990720151106962958720729786642152658684594021432043388861108137333105576695089590023669376216585429411261729128029155956220369376991813089684983249109371517800041417716497329512618073807599350564037578679903963617547449015041689747041943951742697115169505462511531117472209214105641060082700163274720136644011516009849572914212522680866558446109149445559607870965337434453868684115378006900327648500706976171191201395850813002816976322204324102893962199144784365981232479784852363986632501714292594065190581351685545500151205818271488338202593401462632266928639877084770924307712257023741790862464221991348781644085339760224683519402215751421544745928472484793692167033499190414821394750647350937057220741541795748007595244999119027279629587474108469896494851701199297572732815093020342250216545718521100262311648119901436654154138641319481914831816444920994170165458385912728282954031508241630511321115972952490365065280515379620757183522907111014902002556046021820527178660875840627376451127881413885801583074474478914974202883548146875134399877291643826991259659751943448167587455368206409942218965878501840714985481174567560564769856761380542515198515316444671413751120747646866650170842915516053173345955679815292052481433235390567559121062555892108364290989504178366868268734088803531524360179465068415278030338300131258028100770304882103343165012766336486040735904553838474857918784294033792002213717760355921492421508384262410787056879661189364964654949120702474239329545036878343571377346859959067697031588196504140534572881679152161394695449404075330043444355544099427747714117482335728037947977130150201536668040873624479712705178431159127697442997737280581866025580813029378618396714728035019168706016476998636777297706975739439817674291467798169636233455904982395513226394608391541413630831772907602534605143204762540255374911353263031957811675670785354878536713590616851117130281806470970904522878200795532849256891532133544393720455759740484247893632197559740631394259442841719533219701217031364433711767472626746203121902382183221076978457232534857738393349509908962700241763428055497172689527375906718429834757906159655856936702994509028116141254966023262320093476753893738230341114612642176581290781608706716022172338949780443998077293555276776697564786218070093456426801665276360318460995985613246814772008473422492672801547235968747121891184314913306931021459111868875876036114118305119092543977788380283691882068887093774372662652989002367393944981611655326132477255383989533795607012609145198338303980682105316786361019253899682678310662079057383848746146849562380251454798282030164810574597428078738373620964591875749639054558845967652220958107875429937825070103473569724463263259819641317065347589370619844366200232251008860244890311532761528136006083689224239136903093445049492051483070968517679946190289455094581578488053616474705700921970646800024841901720609308128764314298034435736228551769199503081613263125352995681029188923542986072038332455139770367565708938460461749305756439095461965756036981224038564372474142831829745737376043847537298538735727909738846049549152590906018043303199638549916375969849016159451016577688501924402527838973997319883124214462089780410581294237586208611621780732603638476021709349378173579213925354889073252750346568612452436106493838019250000354849881943566762932660939675948119978039408656466783714562151856471710490398002579320317028579634930683420050609041424175784116469987445814742034210756199254377779532370864000146257284421046653050225190455685032383045999196036384073505614061348060624972327168480543973407621663993621305863417234502220615701515142039368319112394865060011345823901638689938742605533660804466328136384326640434819606802173787721804737926915098278828661224987427173726502588314696318354925455568266197423507018629961944594594040214855470450777701353704897945452308794463369093586834645281035870675668534642277698231288715367420581325719363336246953144404122604974454701253863036907290477188135271459335599066790580002854140019387757491387485698885647309894572807967999298892096060984115978453972401840612890819336085770003381706779743675672631887758633935333078545214477235888888676530441176014323436777330182666855778612298883573422371887490533848198408081664530658150328062133423123818708712643096877140899847271374387331688153454213761075073520297537605539793450897772020063768293175345567495285050041098790594984927906798545875246513369135420665792694401879881831550677805718149617224294806087374364512838742751926287836420904136488620706355474838432216437154718529956642129813213757488057215162593346297098783376777481115077841145640021143173212933094572656150409343073949685564460720195336089718753276460018323911135720879481176685881416049439261624323057164385636776347677316911805872756156764395670686471048597902099843442251572959128408312163547185369247627958761335309312468676506651938050967744609330811448947141324187122737432805609878927334161178065006003608701368377360359319776528131326803408193162104567468090929855541149575774228025071000973432711180739324506239028693882624183088099197617023534765668617350412302779750885867210963682640984445691216355956769095714231938137776452466133780351759225286598729737034311074744726840301533251624094518194593459659415165708959622802957587534373638901340754784665266354453234240823384684530553029373931346500326907907132757091452480359002466127560173916691176585331236284003791738455376620672829025386281100644513485716776660743252683671442384220542933191362413094223463118128731129310651364159035186452131106979953737813372262483935072565521770143453245229487233000857720167296187843215510298984880008303367374980937786045856825895539785839409656361570848015168746315287008165382494957487071727057860436547984072230942303943567898326999125305629667889964232646424147954667752254895990175791495988180527260407663271138156526500355251949278242481634236477085898947640881427192904598884168675260280977030382319604506520790816987434820665767639706862237242321956694062459049814875755140910414219444661296313572080315671688692855630316431023455147887925379249008932290831462393127993529609384514016420892326288965280468524962691275792740827402786254775713503191322446662291788146597260744621739259868037875666153523067605508599386913733380280520146737438912705027041178807240355955744343952542161739922731446334667000566337495857872834821087147488488170134868009781175965793655130709744542295268086890182864583175562635622205260241649936229958029061220263002985957567622834724849080909011158222963510213669794205804379878656441515844267495601811587824487463021896136604080943119598270016744806181638494270454166913102508971147397387374754115323306247176455940141349702963235606807605725967075804872758512981452850675294460440211947333436121874142028085667903994636073216799745127494973315378570902965111225869152698754947102377996009659284031786842345553872297738571757443648748264638597577310978344010226027432743139738398303660774434515945616236938684530710076822669254098042697578472229140084365080772603193713001020013425116513474830985336179775896658540848254485023329140447937075368056912126332177334684229116070970133386685186337711148689918945015256053629028438097799650840554422438790272098125642140096690183513005020995891769258113685554961387902671444544545923481234558098320830566010573522264656714040267715243684781608094745872754650305202877900233907770440258034386140132616181238175556699553410818942189002312697329707671739271652463510527530756187602775647306043360241617702070632657097417251227180164817742591830194776325826589106916436136929749386041174670553455777906959780261250137111725553479869541034471778157015006409587608576807553657643622900461368346482500927048629416798082033938656863265334818703179043002512346222759110050510051555742793110889832917787420179846380306295714597898935396483833012827804335639282485565641500524082908610101506471691918446840985027961080743100595081688259299656694139531532839233837539394658643882222178823541437257027417744609423507455703655954599142429598810788177925366619955049819798312327267567582790583121757992950179268258393442460489789970893441772608416841332698235314036004049855288647217279613683872662273720701515779861098796648615989425865133865232039193250307577033175282680046289638633518237621487468219104140021622510140911294843190350660274861278110525092500997671356557570332753587792698673393969457331266444045373429411109916204793782397473782678013441962051458540288625921263392361848428060706923826156813641306252162435391295126200418438799271066310338059191358291651937731042203565974781362228293421169115566386094200816993579017207376942885285303045507245067891605116104494083944223933788454400434256972618202804570048767397266932681412979416124297148161376530494093039847213168992755971536302016845551776188760762887864055341929705707765385613149310287120160396337779321993582181175719115195498276002980283425217099998627053820042372706875057202001010502554145340584059024830358211061635412191300554929690776547092764955893344949996501954282044403568433625708298816297224728978926465736439110516136380699776990829041986385348739672270494833315234504859778211255114306529779601711478015654386481749001900870646698227955699784850913511205805447598430381691750530298161071339490562547456190742311099325221968318730373501248533518645740084292788758298650693352648614747199980370242421853276754864070953481069151553229210581854349547733765875971907544992298841656467916423188553701296557906970399401726952766070742246674837708397464226659969519580420141910495302044017473093384459307865247196772202157458263473084029460783358108535755506079743235070770032837608976917224141503930525883539828350793076465181800670157974109956071468058763170673032258793480327624848014765272506283428197315599727366902618138806156782953944053471505770107714757124077499578120812959332986440872358760537599861404379029346998576258960431782681961767621495237474106276960378249651426634943186461077513260919436894769170428631570667989548685687740771555528826879562967208470395088581112494816621555104743475258606043922329907101967173793133377990298180851795299079739597598507398337830848136514897223709046467570870464762529067555474808037468479332869109831888374603873111067892340413620230536415391946063783238333743536580622864603764119339588728487171420545684478259920784451368612669336476864395181233615554311363713271998125824059853523523873159876740704073192678186976879605034027863850305508274651872565312598228087838657204566685005791756645516105546838211667893833400646594340877313485592185893418447204305265960344728487996975109798538362905985447185470426724489069280548131524764893371236619760188999479388940129991527897872697948759700800025160743940538370499869089675686618326441017331520277913919962826482038801400145468160087731670672652858200485071809842702611834846660562852099166870569850886194950266086375305404196482421429889091021148670378853123179325478675007141192201383592083981300435925920827845766947836600645816265704941082232032978792679891269184139824030105787753855627058220463053875543714211822188105382738189702356285230138916620390928939704896266248845816482965133741431654184269909665554368794782238233206673171964099931127298526235577253021241569566925589241876121577142440575917783568656261326311005733089567843691398361452720089068279395495528440470502072861651866137348887197856278036571501921570654258895919388997889782129953535568754497771969824364842654269240112892262777077987969774801224508953729221920561005917102864566213357254213089897900230554821086579031224712867416398862685004946625001918437535910644506614187106271701984046475909584266113693163548102230803560277172312465773545490565202692976016449709692051037960426370462962412340855941945251536095386336711273813823084590378995340598078077718619125883606395749265834413314473219059023003337109277546167613441455035850022150815554792075903280050441326366978711768778924612240950037938764456330026299286611057830279687718995216496022436827674044667341186712413560579328410715328320096084559547779583192198685572272081482327688934157619780843169865359007526678901252105085493615329345143781914298062038812552986310460813391075148023742594093792381746759091259389100485785775042918885435956348677141707297871575296852495509064714749087463233471890991686700574330358796839626231275629489330940131299000884158607950566855523609355526174212755942840396499444742624788025375073130315262593184029902083151080435945963163002361152601851403408336806440042337428449516731360329893836667411336159235345798783026923918229439918160433383550914428141944368010918137152475031202364932802202796945145809623816714924053352225628420065927261451603961567814200648207747063021788814284234932414991995752421950176536349292053591747747744940916119878226977716458230192781884146151485466425470445340746751524044931420705001073171164163667026974102562868392080576499849527027427379473294250944632007649294114813389244036488297039036345102561268870401961872782994869820827443455340891410223008513711852742181639842407096978193811977008692907440920704893342391627841260006121682366706154958835267195751778313296069409332393642033334267827768713545358622785880808620202672193557511019840532691823271841016564854887969973705748665170671445750322382199523228341991109573434151930615201812762114220274437881298362137298457406020565646239120023775581119568730453999324744419708565680406657481376253148396930091080904903546698418825169983562828567772902181810222959062460719501774142118461491849528091130564954884342889213889447199451558035760049469879676778289994236756571546108737525877052407767998688397281095437904919309100343983951684376566029541611925727985335114756806163228815679237923110117018998531035162813666669449979131333067988144775027611368006879201480183475734422210236931655268009679823910487481802131042841363580764176690138228280726911405355397876021427022217147974381614305943830437080911112285136342133752146071490913736739458728344838077987960268030849551728906136546651726254791747987352616965547573319964280873984692453972169051706029627693294964080258873230141558900498669437375088702173869183463617286620368457000696628613625872120862313343266079122687856289550298356511880936788373985983890290054882607047501924980961866277860913555532737432875463215186444440378748557481082802198825614619226612141543995440939047319827575473257342933731804564309260071599306108379136338677131063635337237958477703774026856307216854032140084573342563005603344202460364272027198327459986521425054037616246065648590295393644344465250236746073010000701910491753722594134104959978968979924631939529154109766266724358037776916274356233041752868137555806669181049804243751838119439941385517748692576033667373005690560587813342939946527038477278254647523983379171949649704031085205521337091736185913729792856086648121790830282802959975600694868104085070776667358267563696351029457109594710279970047848207774107359617702561054687815448027176407164973775100309910882278592029914183932395803243225915002911938818619252037696483168340047534490635637834078803664452104309402065136351860202088131166999830910561264372436520681314744486240299453514370988851946547246969413272844812375449391984575718636241503968427576613900691391854153026304678849420761002377266970434485567015571483248290087607470454153115268804699550108688021743554367806803372001675323976249905460616001773373719834815206407964257267169038082366378225036602027476480778993355970709766157757270349004764693468684029415933464858724238821014062107417456637811450057693037105336901680569970734985515300647186164764774042625018707535646363811016349151882061665905390409817630768458625271407742505334075998695771437110262748163376523142698564235396631047786275877714601319682486971681101648974844423157754237971559496593762621962946389781960176782184313216471392366327269500480925338118729521816500306116616499242702412367256604140169163793255057240810623036393371163455131758141186927601169130984792703166510590235179142032086109696167576624046165521464864204421302929249342565157550906783800406898459623495811261981613987394278472238675013740131696744443630632241545608214207412483932538904856749213989122300614775791015962404992751837879607938290882155356116166477029398265772681187787633867269102704197661175171672812917152521283056790796621576596207903217969300308958986433706033423298794904330479562684059787487627026853470825834326543334286563614412611308998042128419087465885225058321635913613790777525698111052468592276520688388628115560269393172402739519376419133518952925308116682124111892479637790767533212885829822990354064957570434557428466467159508824921439011383013730099352253444967496487045842877851759977851408857244932938355511913099196647775001757215410462034085367935043783202614415049362756085349840766820060215138706424741841722820529341009626444758439264469594608245012093228172301315083539872896042422800913475504953528717575815221265899673152910222669272566296821004533143582573892821792578092108720731642945733668861643718485256446420161232187952308457906786475679921630550063281065195819152725190575002822788703303056422533414384529396234016641336117164351510571074086814024696451911282644809526163135926540995342208182388019755552056686266818325961384269459076617420163725572402791975771169654437984321790427978273668538260559948443592699242655712536486569708580314613475169983725197639532706539936858933232900013800870149199713373789066929135032976395784556956130315081771089729286261854944163335696896035601005440784930473985143522494901399943089899361058476081448139440033227110909311931153738422583644942443020090492151477230313309952254014790084597471578184544956906039329687950224658884635533516627264336080006646813308081838475229751961763779802480918712547192210182354564056111434271792416406810051764656670971200150390846350897548451683959271786942219779786874167302235219754593214945444410580742658492622498888305774409063785612430499390046898991515388761862382758219220702856064119438906261537000240915363619339451541975959243349589484538271854242470988199433852345757881180270874385460524995534485705545812000167772514556074586808518188730170321905344004692961063187364044790668745159971195583533789076007364453964015700497551073816761950480446620008705397257296824419667290983099051479750283275482114026768190618631764676626511169082624842077968104177239418614019218855530405014479693160504833298270285273167879947787207867421370937998084301566784144596011108616319738141261306839589359046426836221172527040709662545936277144878621313900946809189678483900683202449383766707546339033679804419012417780098367453079647016833614393431959691066059638397943723869401359278916367359854781259963880690623681350114852159767454721440622814942588170288042348760282933103278829855493097607233067300308159397039494297875013783946465063672778598731372332087517772767979374302682954125743758948956056247662958001009857043581424368642460433029575594307583703454800570929809214121924545361538400562257483658357578038534410789441107877868426716542828549881217307349303269626887173180459188213595536796938845949935751300689304806997140704148239979990293084568048488185199651344134645493309455496818630678181085591437767452245196005007407220328603135223247305885295295381186247549710868450974442025006669917338300308015273350089390766632914433510554440213247773128330450905579309487447962846295803997777172283452996551195006109558210709817136926539526780271250731235656562044348394548302121301781864325706224148341994846332540535340843884563064100493211214355347685801998371583860262719069320741737414499524934153331531010603866073898684301823247968670535796855228907474593016557227604340611077132718674430574396105021144173441593768034920530930158249839667394322725659028155148398113693336490582305613425242753511108822918951279804916099333186505400807111516579202496668306691531603357590646416557353647297310039418696670454972135104874311137461825041154375818815112701228820415032347191562709418891008375461195133022470639862965543685042064962611236998767320789287342576107977422362678470062933050750470185145011166943593103169404030339168158515962662368829894299867792782505483119393212084712474079421749491007312958812533353183148652968127131214874118929867440801385511540532136426571074894052156651456025167772959932764848746190917370702998552500336780695519672564903523886353600377916400248282582093237964918408856469982633714779632772189744899108882870995104962624279890225314748514336703577537021864323557280392161196658253348755065919637085979377780626032357279374929070140096741842977194865051910953564761164497145146255765330495263362991343260082553185617761342411057984087105022620188803439743547547845488088206948102012333844607132820287500476532802976770775284314486768037923754959609378400956229093644843368564314671426154932240623018805709051330121168163103008733558698302294696833013848063330147311976522589641070015777034824314866224623066884669634470066745426275959028886040356619442382911541902319601908674670173670428496229349542173215490786167071200632314054928220287681794777129037152388598956203228397655933377701640373417406867554399147946802071323251538906746846778796682971073092893143184822555496819239827405771379313880693513517339817130253349876443618602670175414434908118565844265609546010432099884124661710124523490052917055307882986843126423205295175769074288385778346465328970195753629421361039806326448780066667512675824039823161800260369501209383133698000259337081209745129365064430306778095519600747255981445011983117291119859736325785558517115474426811324321325331142377506646510717775867330546210929609660017781584892286870084092582701269837999298761140107243171985009680833531302151831717483229772362570540098580757207361664494503716896978734356099093798406080440790282591450419931135122674683663009795678893554887371516354180965830404658684977202573858040128866188544279695926110960869134622631555725653497869978282200859597577090995037308265782320161227479357406219429109390550337258194797920817548625916469138338494639217256848542716222274239576575172065139964922426694301406121142770594854628792603679918349885482630112373674803037068183023186858625959329671706107981662980430446265622788855159000921742853908465530383010391130716207341126394073123276895282559608245228676720898277981531879820814008697445881905745284983308132998038820609637044218133576971421009070297317987771624706387813433190936837378924166147434318043361806301814258896300261230257609376735747930755060980998434057627827616692851941029066922504827263855412473641813258726653236023843632749052297642744038987575121972027200157601023622191284573744413522962756559072661686775621093680481894020298017021370786233179872683085886802996960324745202787166749358015560829183671563393460069518113266765738924928177001608381740217431130534462705632398942150453265407755914492647803821893198690533022047434158504210497557739310792533034623982684742828957842836475577018133197118179241788845801303405091309047415323384262904705884848693340226165167808992130353017853691078463889235812922584947493372411464951437823180339437268845958431179476414834324579382980387707912749033814669682899045591595489149822022457675661579173017827250735224582144247749120804663929123891209387683329964703670303710875771018627727483170310334271465014585383696407910771388405945912782978897741200398018871700953028032747930891181717238796861952940709934800516370911268184845429959179869936386590406949438358138173069352000586537765239051575324318714928674124625196862890852700796918040103316996228773311771298628512081719237866266927772943052150239291627177323649660859043753796455077211497723737900087869825454467389895141893849353091861483553349035507363950956913599292905267563519245150611002753527636534407296312861755054822193652610521903112632074647123824019551105431438534508158925381628486049517616555518181610924968929878467102346024308465401900013003043075150452774059768922204621450018821283704234394056657327193380610356360878997418408264021227981355687989574021590368793238627007182750146396937569323489714152665780470834630140011316206534803690296303253709803044975605708281556970384408626697984101296833730874971097334298734581585852521020880096000455703661625763009681198752142008331184274948037595625974531558152602955344669628527056573431511107655025849007724156353230931554803001933139815681964827396440263282762917048527397949653420583585315940632582305198034670542587402829614514690734828711325552735726623738770314040873643826561770153729955835573109115951886123981220179880004401112350757517640413405278222356434847265315220130138324272397737478300822322127221434589649356023477210354606169515707523921513531061856612141164248239325065367689476802753501823328400378595963505514289248691964344325822503018740829846290933959428191183979174674113214842420137228911633838943893490810984149329328613121264543513073004943169805819125612904348338516795417076042851581478877603474275087803393308518544211821905714052465606014748410128483172801850024716136370939688363682649802572551497481386767763441275705452540497202364949876377972526125936572929952885899063216437556352783531483812899241814462214982562793085695468309754916250790174678558381741802441272743927157522665004484058463682269718340087416186479198595661501605765828031277117374301742569565611774760840255800232263714877841592017885455467246619692021500324816774460277554456998257051717003972208433931533620204896907878312325340287929839556095998097589755036460002347681249950286849427026656046755024103752338147124205628133591653624116151649535957701385390208353140199628069760180795973768846036305556321577962680621302417366439818101768705554467715225534614810049179884111765438200125100408497170767521177063536720624024821326694596129237114489225521394874199904921148625866684495588200646717236710063084161287038567409024388331954227495719490772503073706857339449346772250475810828527645188856167153597427774601786170776374557818508259699996350258706104678534241416123290688002731831188540044056456599364055825797825123647418417963416910407066618168009762235097099224266209916174957434065137494863197818584256848691147385115383332007428172394529199026922008485990011285303160507872248982320857454582223889492913098632730362291215853966068188408192333624359532720406329976418803777964451932570642200746619807516196157175759884326107190045249632403017800268192987840148631770540038165018805748358125281001768394025885846891951756611948107135333415352781946976012143100962444876112323484123963864507027991504111421345500439158224596156730371806747141640780854145654489031705214983982869704537351418774325020077067513424083808147957985821626405468833515407329786790288933371603129415256137729763141170588299446155585612132144670613400264406165941499343824058141852633551300951338320081538598452098369205371619603332445267826658865677767268893594827875484847681705012807787936856897678885483207619526416191878271348342119256388499867028067321433120676327035995495977472993493441109795801359655043849229545584587239398425743282200114717150344259201539616877265541197708569799028175973175257401991903158379636890561465831698145329500215646618781631626996101803729751114607121290440338199935288906801179837154422748183913318369177493148317882743051477562333807486825101246095961504076330572784888308252981485801823271237795240697226963442904135231734860073501219236493270227259843852183107284421065936074214969484500118825396373956824172076766646264468199303538092321350568561686776309459133554954813998988849320722562535768085746782201242991405329643806886574388692201378057797579911759756086328553325428581081456451343836158560317658231729942816025190091633829245529042653641844857589653382115178475929457663710968858469566357566007414740092152373006369443252615174582664126076841133383979149905167391393189349062462945197840085651749633421282256818055654405240956254928793856419998806130631175899219592317037700557591040606320039388414495619612055057767485713461422351988374610994267775974647510779941196527513538793638093478188615055523576993852706789782810217301719157361022434239104629053656019142627090892978517685502101376331851233330995125970998172791776076884465448799716147074799088083706800369269423809640054782882248720865890825416889444403642468379378150779197700261471185626201047749968592127787442410472713424111366900657890034871668376935982146488607264839346685488331925825110976311834646427405543027928653717686192561527847640879130250431611716818633949917520210477554651972343820649975855555420123713879310531935737108459205949671311735496484546609908674002412582551223380288614571858795628859059530878715301622506648894074637601102282342382390706686169457784039926377075021701508377545033094839065380922096005386844391284569164086804461697045592287998050746638820333960416483775002994784406332941693823266984013644368812357173693475594899246109720735116710166977729970056442798649836217191868628638676354785213055541360128284747456587039560851506691135885599597907006130684212557978202369147434036978773309633449196240210531785708564511870417699839454574439056013015465706133393473712709534451744328002507305243304712805848496093653771709804407144333260764327508694974532739939659422425627131650002183273385874204764659691810423967977451312363359786692117247606635616795764282950619955990402654422326383900663352435943185843072447966674663309076397598963053110849807577787692164631747347631295712140242727030494079604678995056874796481794774066435193312291043590279208466301258134938302201615449621329913129574821904411355500208047835826265063632996171045857221614377882785862995885536113356573935597057339354081634999915586797773349446323115918329182597382358021531429507864888379893997396506200974222950311364245289026467053270846191005293942399699894188589845430434605956043759986532293221794512192367686093789630452022741756563090325910460702912545801267584107694017356277177856680662942677323979466381585040417533515510244942938425437511543486317391600684009484297041461532839668376022712212248487452679147432180857070663634968861630873285003279766751957623779772446212477857149878729490505639997671505579636095823484445636593797748881949006712663611382293047053539269824410982128845142879413225645603141317279845969921747528001404521531784178308900754244453984510862961330985141648899402303511452874671049024945513673052781406161985112390805968922841565863613183063613853426666129197903232140359455598797192697344941417708975076231499926552623018029417681554761448837702536549094788248164560129871478416116391367434252318937221423327873622442586828314945374814144096064888809832469383306653989108641900904564956564050644580854280923202002624382283839236375916463771735208961786674509125717175229501685414404988739740682893242632667366283173840374522945334329085862571247452152399608773818842415644751356780738597163714098265495926051759620096150808772431092956375105446987786036576282211832084276118746830062939748904670493141049808419597484524813436229364213118395899141565666883979384079036408608059769675215602722671271465450954977118032225345430247445821742745783825015550139593230880676741198722321998817047924403372859337536784724669893699737373566966863670796936982294985903724138954850616700368545611573373976107402259247508646024559652808516092859911210907521202592776718286243653957695795715562370090172544017648411073764764331934792036085859677721646451377064484188038970705340854502040038044690603869664041022594654963595939722356000556489956210931898433976955618989726191680841871499003331893924832263022228757596441186811829795975819336877726826729542322436083040266857238440669467567229337744200676410457171769891125560804227352678104418326076768797699357738066675651040469084815094014533882098591230093092006154436773711270881672116867474597329394181791194201987944428109620566994968372408560593182989448653226210341400161935146689492627977387965584038808976896919978267053913169269754523940528463934165735057679319703827769174278933874366559025976706902412387037791907582128785145766799368779700105140806148875663420632104945657295050651910298530427002648304709744726302749803728928768884254651652758466294379970242459165012015035373052011943936026649004476826014388993818713817281708209484064902806965170830803920990105290401070753262335193197185479127480888064767062835974562180788597224202996825223933095726752580665281896660721868843285374253766802728761407153932501784097956183015090207506762413554709113539219168794186456730283896463461949772857529863185774158474868144158365166087685698092305053048063815328688569329682985942254546871057366651098230725441550969249762081024724313937707478479109709614925152792805457128865793013147732608072246164667311611837140156186190001487686373527874648139499743616507361331865013158943402074193008928968760606010682641408468538339034996623168035236586340519415510808820149810541143640453930157454287828624178412151358422107072513153797489049663766279846706868906972068789825102455999690237267598682311378203257839765413078311878503413097732747603175683895144332521574691266426721272837253714121227190025326601610522366402152136079166888065681960089497808916288275119411009628040638100841139980995497921038216607555615115150677781359617711524940406030035039469917543584093881163081508689159032376856474222058868029061231538243972527277160914233215626702580079229072703427495219133449914187660923219997192801351785235875609613413356111588676498229374981603392025561257358218292205393610660975469875966597279518525639667094106966510744041449484886513903610665564469384726609787304449739706928400884237087956321032918622481390308235206842690494740197762399956481068124959723024909921834269454175979919281846799498588233475102393021465362336065572797076279501655946299525674329205772120808867652483783619197706377246945448287982772710517458525161219326508023833027991354277503593136578616223533543162762966603940230908546359470958860409471401669461771035906774179993600110608211833700673370805817897310484208019956627769998144996896603276933489333453076782626376174012115133643768280742532381070617520615158124147513872326011789847265900719189344484882904025472965185120164219006353404849420600151104792814006466286520780555809183542378301782888342006486688891343806136819447616257983740377999179049449460950630678866773722423864068197798487123764342782204018538930308706262412618175938806006488315346175695857503006797785758418737755001354428608975217862430466345035688020679159409633176768088619193082578563092508593164333461694267686596906300779976879779614013048959945926481493249553039293048700010384786335310581447423030748833255689540865547136689710629883308424381923269921862343667505325509398073559657023592566681215417051240652689331335368630100530549368274285361931949115874080897756360230794387365025130601868945917900050844167345293384867973250397193893718157277700377013311082186551568759057734280776248565027982918131894727502960446752687350634398340488086093542736551887108426908796097446239506829992174406501530938679461295895530119311727567766765791497188314655460744295146578685562490444476918629577029254223102951863806322233170236667538747145391755985574568003892965733554204472985737517929356674526769848101576121996254752769618175655488014721618811707333998555328487807370596181584498358568246131316998367724472531841445024024956725148232469151450683044889281046671554607131770781143707648878830078823280295076328907575298784633618008929870087139828298242928371063008349504862690385154682167926702650775976857685671740922103375612279537722057109704117721648562073043860979749055841350589597674146026322110765511167096870676128111075317908000210150465059524221655011988309195907200653036259392664408954542947072581184389285389761534082458767885230869481954676976608300122759056655032132283169597430961620511811530632450833942163282837592197302223287338373811491461978660589619981600407428251586296171686000519838431305274518784800241323760064932024953366750498811448386667379031663561949881604133552497625183359307928850333606971350721158323135721863426743379006029338160328312409124707880033004317454668839715470931612832295108670696013607541599480672487530608377580654831181720453642266694491516640508305975152979262350676312965405388113477096905925095761843111091586022039493302414287728003132791108018138643367412703176708249861156874309007994841930554843674527098067584148977738123280739894434054790615344329013799252262142444321123911074188617366692650345559982361543851144447619389531620960744369475931845775177864597442179791872704383691847227944799560359962611221437546224177611566572761071868675026131913194861421464169789541808334007576478432976978805013682412903590340435913676672935642974074945849132390762953900093485756693489105095943296149947110305944018825799553419184229934709140222677418483074107930712582387417831961161792941710024464976629191069201315786555274969275633744109395746944397038921264445959052116707923154022991912726922953467067070531895637060260066489500048916534869273464963916415771194685191256637135641081846066380934885103702546848921582387338477277694613918041675131852121129105112883148570505503096771971091339792407273345822427617217855566645571654440463774537828466848929062907654601508946872327745177236118100058542005225176703955815854369724622515669822158653993008189764771980834697100823190387371621859644129287881959470156568231482909571321902475290518908418228972025163326751046267777943507506627678789327852994185200715504356937750483086515754326933197493188288530651821531446612513845222473360741992062317044801555057567279438481645890526590517237574383790855735974546726928533408115985512620132144967587597834038575776593750547834069627122349110473095797107973088054281621993413854383647851871610953777046316551597676925791506129555680359704950061705638615482268054372659502121080447946838900609017138231940163717629177046849200343848572511386316751434889813845529832863169312386616395502168895700051421895440944618037440736526927772593487533094527324731670349207725303354798870399300753436922196270461361619024931715271869180666366396507923266523910643666918877333581150116242240661977198780594478097246554388171230924966735621510429110591895070211527764740393637030605845826609780434970577477140934920789855658061903032631188742589112615407924204287286275081847169883834694450686779135853472632834147618677387461518307393867864571305003543574520557968636874486737980377793294764373514350223689154198708665282099995206209735246333707948700668398130276301955412814266537911323807765448412913406863507215682463531993237999437702514601704652657355700751110983453147028686629555622729262720032363644614845972304153880628271031842756884452189235466304731262283567275127886867691084893064443824724599105137051374813215493898697106476913870270019553340458266245635498465164291928206635303826018248440754771531509960113249143236867402812268701128129872311551533936352911294063140064388685648897166137566445430192763203213999553660226573266277717995185615678058646571738032771116927910530527256975682898465263606502951863225043524160904051599716320538645691059784033379127957900163218119155932218942673141974673485553716870818346910939039706638849735752036836369460689510966063223644111110806411349481687815712043894090327575851091897436671681228691824690787524654774853999970581699985423452244457394184469305437965238515858232170571335867554581812954621176626368393540677102462168083381651047142746187255072908777567657832407615096547059044544328128488592310480693731907383750019473037122379417327694385537095311036551871536268744978390004452274171737501838238611243465522385890740513681848285231267026012877494418352991598290130711914520645776235330430972694434823072232958109506556452765303151575323746489847878281979595675096239555452796298270762132178077994838173233166115054233313311597866202114026835590196341090764688855906955643392034524220546402270200605964829774943570237515371397059559898395526109376123389031559149101802707996063542333861406649481050687147082808361558248031703675709188446236041170001184222706048302943870696334519815308685283427180105083760159908192211935289216425706070374363366783082835878367510840468143541525201172435005294453859834314065693348432503316996784814874583335633311461278353540558176238776440329066988232565111326728449085572938132794111860867863101167532238744180833465171964643693130167244381856684234689109170536027782951455826529904070178294355728019313205626809037760928949024752021589685680119201193614729424328397629228220967663592420415686801825280446285332856834824189432633747316696700299519747278642429560109933530592248277304603345579298649711868913037723864785149542617870613878004991168811116913246349765587235772830162315082201953367311393514603542515320954046845969763014433409583339784205638836614284032462208666773220922099560989053041737624626704977796095165993083808171158618376977242129446884053626436975043012550276521489240896720610544746784665906590107448365554308418856217842409329966304537724847460871854468376894160770885759756066084183349529198286809218036336485399701569637149747172113273404519596986260711570146200227474586034439233899311180303598506507374224773723261135081477417093629136661457320872659935961048541457864146995579774782305857040411791194863807335010392077684495692120347072500729703026548044981833358109503138434908686626029593091549699971242740042598621538221511136910282522968235430938399259015192506130613544079425714307072902753343904341808663183283230214147384949561974321979896563610763010215197457802403750849428182793241922155827497148843098510183277656778921533016560003599477382944655262305888365412400244339487486602829337254811515059280353388224882468364244029580428648984835366564835105717749550905800081112437109584995712823395211365176208144932852605783016799892704898700852363715111968556918148080897427994327633121197897471854494036218929350800593914567447154544022776946059268346609846466481267792440060661191766818538900508367044438110345995644530550117088094348630153980564298530496901152187387272337610062096479017286007964084139582219762038898939225633772852454887998847762087095416189896448033913652694311813597905028316703101620807682012045858568643138266119079946445096508518154207568743526868299939349255840926369639809085771773434289207569324664422133310509463350748532596135867190587841775540792102471151080025626355017454500187660785311467902661318044919795530255863476018472406873804178478867066254160880847097296518610343356395697191594077740263441076517682276501374444402944456183793540539685311627725094996954714791617115791287835458188635371080668514957014989577526208131333241904084601812792730958246094413742329151337131160380524147617677913909673891984000618965610807647636754969405776510470104143404127078987346980441258477652085574128243047097901835489240725638274905729111842498330238000730518792140926003977989774911056326170109407060938711279910627117855170417858320600013801837544432997505718246636492341362372438963106604161799156226547924688585487033079039668173758205810237171581721131196146186292688253371173009363449843606142013825440319032537621061504892913437561542089764188422847553420149340405608793315686687175879674580013517534409043286625379285567930290383693835197465156652940673521691397414534260452146855716582330187315421351771642270389873925192689285056084129040314501496853412218911153912065857861245522348140619479080814909618612597172584950074709936733554653074976984406029658266646196480075824066834157545289393523082823619825338320860075354455873178837335828361121650998867813400295628174838705701439933465470492702677818757815092711818670593310716308518945629490636344080782126721489345149888608631144823130248389764284673983654008102042976332049040947721996065534061603414723406084608487460537951206718731821189908474611158481110334871062795281424981287374642411606940254551471399266492945076996359536918145899451100065496256058564000047070694067806720507539299001061338956895151426818377355544302299272541143653312243410342730328283427015443690261863890251091732189858598961966391266525018433672725310695842892908256588215703149309870533557303250650597144021889981588665344139324887183303885679580358430058761379058817211434911453174407252321237445032060141724636316045145060988084515423282895704573882414897892073305470173572568763236215985993848269333881316107006657224146657758520720028013367008806826977474229862550133712779125347526908175380704183263822609752048420261043079764923484362803473987909059707790193105385153281993872571247515325545939483921839319825862679116079339330386648653135280098147149975274748980666806751360768678800401046403251637423887456936472958949824853895927042911142770445932496559676081540739534546455605131385416765955543532064936581301819040888286962411728569622422260897316034851987633383446584142906525981736210899648259690573853849639913799889300533146747461990309051474220619905567516880840350839312253213965005459759125304187617945134324441059202083608402844756884221567677773075415395926595540558986776479970077330816052734768235680285303375029605323174241890524576730499572543051709357061008660528108206219054675929752274321610723933606755237389527401744111464722184354384977521419407424741744953361825956795185413924708650279540705275209003033982285405550154233640590289725130114562477411498568263091661039214006454313927433473305383287266648629302873569958851839221917651725568400504048777510814324760307603066587341578254034418065535476075216237633917744641904617628798924292626665927102830310144534427758166723465569618471329312019704839992733163249544294965739258832303708369762907578850431661791964155195280985555845468232882069809743446144803850610056464426560611376669432383062339312614366457551435152952221068944429792655421280535106256968155772781800629193766605719542796334690063752065626251069136780800526821976575328415089072756281386786200988255838272471389900755824009688922814528115520605077183908998932675753561508359801624408685988050168033664537490037778934146158888969650476913707803285894395723109505781207968971829464095850065869620347739706262897498907748091273304288025575889519729916396285244748415210391429113725534930366767514527591551726283067959148312712899586105689011600932885551139881540444578219692442994221441620311114958198868491625859669386058082183559271207606039247616949629552782264478913794434589757898202185217076060342878005206201550019779196463016152162661935220657135900614300044793380302510425149565002262782012880375124540499707175585069472103313717250221334339194911420397221237937879716057924807431338997675529587739819576832793073571123171166155829359384796423397342491487359387346004060819384528991457997843774664573652370507504681928099975454868536572891508146588003392080708865518687749977819571289377445818907614168578665866338978845485188893835995188350832807194959390299502857518781790779338079061508764094133917489429892214809000119823739485785531601701608821594820364442083910399789529351149198789709380955270997137685626252252252526621894652070230828685222140838264411890648165332295035772602302673528909736242825377471939033099043597894921909817406337700728853257919104912291445315600744524912675143351809323032311263154421962039993637054941837068078227940050440067641586783721855592669974317285727341737254042529677076793737245592698570608516519064771743750365445715080494014497146999884597871827534114417210498651049517842444425987790701667934078022728826641914626436830806909782897923055389115099370058531724641390305308060328359298477575236293413739099369255730085352414048363258856573265017679461140838349520495645248734238931523910150823309223611984930383272767575180624110016562897581466826237832847461002548761765894089422180692066397918213782799894107261344732140563500110195360344868270284732721307547922055369585837438596508765990857804004406710567390415107470654271356508831716068397287097836102165513013772927915882909347039108328341369741151147174417754051451210750799815487124295225801485208674219152189320934778904394503077538990002315638990622550012713282485899393065336433884667326891059338642268691964276071865424190086230450499697734192808552709230876941950323158253261806854110971772784490559241446932693296792946851271001640529818721792638381842427717628683069905134738982830352235441645352146262830862982233492026050275951831411517176593584025548763833091572320631428353607748542964893282478463250636357220113373105698719591352157908174311328586874257952479719788366584588308745559976382082759903776064809747660607230378048299704963139588701835371661585337265082410530102522869154657971393708757816536283291920291830194666858009335135566813592933091498693853181140429219334353520192072848297958248999559379423646750408393284565154767849366304173777398371891254311389352471216865356310417528579947689819100006109770567274064891048280555475599208669744818567970103003550797331500872013619109946706825214148155733609716413075318889672446793191546838601105237867956811787883091605811069450569044506336503644276970155271730881411303564045295137470641523404029767857279810143981426113705544429640595348781063339495224410970985533866469126632024529546119040096953662728260654637262062461545553562297340299401388615864171321307165634865280538446102646197021020815006544410506802494626819737204434467971537963712047648914597716903878897587196947174740631745565535923106805276309516175831893493571755195048002785492661889486567824443176352269134055541669501324390760262565421932155190541265311071686796645455594784297106114486893969772373097716055425053529440226561532953128014964495719191825013056687662674635852164038156566086307897808487289971196295749316657897905060157567339840398686605126033793692481269419076786056707383725418692439319488138493837694272140270759524176421231459739842358010114724847289001994798443179557650258776748082467953438683561606378583005348512755208142971594958963650256542287318319152586208917107447565189173985645034468904596863744744733997139780390991195062997064247710679642360504890766631527366748014096164476177015750403144507001552090370357273750250759634108375135409319857858585034314641153928278411950818397956851387037965567240905584726104374379808519204459002010529437550007565642042383118955755621443874816288915806477585988775024936794843528217773322555264387167862551150358619239718232372026841448743250211986367860256309127521676867070894499827148664333435518789921894841595023819294109723318877501708459183680773395180294820298408044800514017537345580468905735164973768946967735784871867515837511126581479694898153061642036126586787521359732518199064362220724574525998270720475133876122628736074043669272609478304566464873651904057017246956924587248875374891050958284415618738799003195689884525912758801544670840993930849965981543865310727104501412600826831423125388229864813643417021904455175860919995807450982550743659644113906987315734824132395991478264851884705060448661216600646126239106095733974874122790456802536974857665492297205980988861069995097616479227361677666002928230440467419453301815204776897894018881043831550954117781863689199077223434293804902393807008626445582573518653719161279412731944089665762463001753708629267697631764023288934583390685614645336927413922692610697667966559412486311960966399849294223093286526574321134915251961865888772952739318258474900158527341785921918496743908744821029827528274907042514788582897244926036246906080302418915100558127945583258706696545065265249336574413184829115394811386620017340254593938005624865219207062402378906671939806492287487374150376485974059559191460333192137478501854545746097344959170637807416427377272843218769893681326345071440924419725371669269003729012801269995351282804874055375146961802445187297301448432176672169736494654630643733946173594386581851740057088679351616810553108833521841744574572708035801830899966425292368077400412874312627053238097205959705122314105881891889758144454088690931650824066490373591033947166927180542651348643686715159175950076940768526081264773304431156587414352331108146527226922836807935021474173378013361704974033781689312720045041202729721381711859069831706717688397485424369619693069020086896071467264038185563851314174603025254509790808623639427653780447035996921233278877453473227927653744449229668888125091819787267536186348054645328360730408349636091528768128924809594010015567000993203541636160675371377226915746892010327535478224688735752779333480440907496151034726074138366830259251625372020927141545827649714260016589002878437321499159269356209438889038378097371795359574533245582698682524099344752930083901073889661724562883950206069930497006018392272207014329256341169252832115517405484210841045519846904133467567403108725296883144963582462742090073599852808381832944232102830152333987656710433836951128992509612507019783287632394137268629318180003154011725075922576754771892322446285788483862185148844157548646881276620210651587145721623111838598635317931331783795521405824639604781586170162679112491287280227127846859490069136787712867077177586250457259960393531245327663781557337121116930613359255810006484405802843186374168306010833792405583929293369275756094604713690886486722516543203907676890219365593708635718058480536194308504509100409430864021307123246760167684788591471608686369395995243677165728922159368107141704634268016199168888500209449915531609443141602845150658810071471810326625242038528044172448055630925168702810788698577439405759960604894470839828168403502121835440474613386418760161124391343683754970080674742377176003652908399715243760259667917426628580662916906120246476128105494064211308279442014816240572792825552182230120981247413998883013568070084704056125625069851299129915288828478545390903200391747748676891838700003602034760680649821033156605233536710930697884682735821122341433760571663151166477390656390292467061521353187561336415151077267000813832235638889202914063715318717934392758972676227000387649144361263211238956630368595548517573374787755226990615835671802386371586913414369046517649177196202875698571067537362991933101066769257314515101917526504063983341264938483544872259726070544573440766592805970505808961796931312587007523551640135015915636613887165586312082761471259398295662296290900059376704298559652996395629395444178020209936736956503442851101893846076413155634217918132063643274311498056976197278182966548738765981098382965647464053205388570575455896048198915455725794653829927141520555029693301515623038951553068196762876303793719456066316513567900274191987303049799816018737759683845068812539013619744435796126478523517554686017376722251204252082005044533021842528625618363423159639237727409627467291377449880878045644312636959573192096455407685597490913546722685490770447689844264581837647790837051148405598585207965469362826557142120154641928996113003894996414132868751590596422363387012556480005464002350462689170009780154047521895462940820978111056697562645554262499238137628568072145136868863169843293936349025551407032468616764372822827780903201866591063040981380296320761893294146734330346486423550215864624812873139541827715997648689273459199630669343489186880715443329451729084564700521994036104185231875052412302424749311031259186356439511232968158013470052842760776342031444785788911836551780798647817185010697362595198808863179859761563354460623273547255960653199218419648598553269614246041247370814943081516212330049856702061412310025300824816034334539656742463357746152918049911239955109885690261913551958178228825117645645495857431424545333656295606921201722534797632128533262188092941679335905407958513274390975523250496347418271190207411029498010208880298429669651593482579856352444527003446651298846847638432515031642481995039416445185453369120902727082070095365644449647307746112646885526769772001266936969259392474268428279734294755695229223201112101839831197047586177763344738218413719197119730192923889390793568796533232570178135168147664568887144905772760822231497135160917558751175928936995674064376290328428979611670503072878851599337618542328586337850439954733935498146061977588364613621582802881155256569881577472144786381390622444925826322945506278974765281655852090084195516924466272984323319647096420517581165220644226019996601073511953670842167981291955634313662512608320178268815036150207676437571665349180103076390701723707659985754327204065040742936706783416386029205525654719639800802868891628481637183759748868552943689292995842696914451269078127926728573900641408124545650677078344179678766088368699522816289694568113988519907670691678395752408947368597049665194019030103510872843188000650503433331196828048557857792376401665368523284887242510367527429827276039454254298462379067439424448151101019360641989385072285411157579772318801570937047073178896022913864762110375747436095966937450742599254782174671522355986976364947164005003789071423430061953888608344648997061771238465177776186550636634136677161945613523550630050770479605948126282519540221797756515257714508267943711101271825136663327227510392681981816784888705813382791742609521554036055994108403948313181378802774620787511893101650784725991468387533945539275582945329567297420863073817243122215854310807912138735828659872185563460108444539088462276832514970487207427132969030618684781792364328339512521974287095569724984202352392099660752404927049165652881073999055331571163744770422303569934124951723219078988988932457414929974983555166922255412419152056185323759208090616433313495317212690165537916183123803627812647121012642048170100528133677112170619386563707500078081112442663896567755020692495223309324910713792870625330452950634932643494507175670475871336125799567787964924297668925019292292426556074719693958459672881825664569257976773388410472816541151406411358966977569715274675895565503507553085213188980347512402401231470021765213493131227923795984797666110320038961874005893153340604354408555490054324450975930664036445686832846884255136454516671941725858469763064873033414571139851206008268547822317483270533063455555181348729359407862938399715544138930202017670242650878671720588951000613403728416984145033415910207899896522240475072002531921463779627013381985003874720190822665128129927445536164651458858528772824079221931711790838745401197496046272419867652497540251348437054620433401522800428602881429230075323835424225752111022540273344218449738678322650226475763070738750389800565932917763549379905653862032784058374143020162223358554926089594526084821498999689526414652039339321064108024455055859506985823169943802225547791240707890819716188404208149656073105774945928624664225682232574302171152011504654872832576563469228450111904322596344849989945090236911752217927004011707388514201763685528312774876579613951896631515541565700243405880099441195038004248016693690131893575327810948124021976101556510773435654833129844920786840313486130631782578297587986701004750190608257358264154510805843564152136573879101441655990270663366003087813543796432181456159134199060538581427717176023309954215851418172640728321600821131734645580823448627081806176747434274289214488347883949506670007218787848140390654150798180186944601374791172711557570914743229925587734983842126751463052521268849120337796055418157574922689624211183454528598423754728798992304341061506482279944436242250443027338066637069514778650621919797835290005372586589172326675264765214459597908876133410513614149011521940884864893293404651122414691760450556360176276988472404940915740988062171780847032089971244114310658879547705692324983540410005520290357629594736259087710329130412533797393124291977326030946048957418992472504205034621237498997045759912686713650197608116862112933422971783970605515051131734261624506746116165830746083567552058221012630716037761746901072194767802310859710007508322654523544560068026292689045017554584673590692250799883397584800456290307120616874576441481224755515437614943240213203692859343112922520335608948517973850472744340827937070791918177878899333767384209772742638533126898578885238223334070065490869626807108318406521381473546903665472410348231797698448692217852449989424066491295287201727273901142841766469440966919399653435000722382658596724102920253280702827383572269648596248456032948871368069939449901753949689659306953313632552629226376137323655108655362156422510980683014437263268087049406833874407193574425008708314161290813812850551282939628408945021649868512476402800402985095244325457717389105872388314966586235300343895588246972739468549635107429082144076484267954580437450007645375285976203894054258427891533183086959125606588363125513653225954260701728721949642288265529214961415050617256331968050849725570398585847818715753974963128992543687881214078036734148172993065830067087357632609914008119780673409670776788418458704452778895894636632430981595194212994259299037234052289313041458016410947446213805958065228809378325377762179874018856627471146062821393303181630298452457887626292134767653902118757817681015782831985484330507837153209214472898828764122723214253814031686719510380788365225421831315180188363874858928357963799458315207637518422333144207522428511065817024916245954607104342549548042452249451636023195060025109973899009542017766155694322380592977425125874737404581118277337516258640904628614024175240796661887583760808453169300134235668146811517700127598908278913593173536752172300166491512328798014992998226406549557451370950137420219605577059040088247637737068972594313270108833663712486576178516594269523940815616774221669044285493101448637270429693492750662381055765918318027159058562375636982128675311359828264661702789055400415994398175410543858808500628815278065909430391638547632642920970402086584625050051492588110479047113596474690735376843635412526745527739743212718247865870264982463455645604563450580852912558849409676412594570530183320944040858481271487317597812792535224933425377439641938779262514835864060180952035200483289939361700512410942364211673813452986391738630339081657302502136881331318989490727344531640308618091150941053264672659941777841693380001283665646265329399213187078122026900132639105965922732603646289290062036248522255003893979006896400927058930333006304921620994165252613379294647220826257645016314144141074864692762345333992745902840070158555542053027284297592167193371927480171455257938862858894973104860136878160984849392232758216650832257489760289464243623347991755387355534030093537937573813303764693571695725436643344105269688469896346666958536655589594686585945540001271476550724157087624227281257582293222348051863627619348323752840260076446282333242469266365190011358159713056249049994154131064886807089016789598844508194831537925577631156065330238995533840357093423337020709564605743309383770457109578515178316679370554039039964173187365427125510063022523399845108507103599309395117267824687977700072496601885207369414515215999419862542796133226704857294596413713332688282991893754135600616910703577706163215159010137120405491996788428293531859357847871375302951631150963882499962782653428086623168741380773996622113352413664224067828594678671093709973114056041195569844302553545369679411343010103003968280872432502006429186974114706503746762562277667583919030223963400338380915616475326629290974800203333647071247448595401245234616218691704926502022394905229975767619611824612646289665665561442150337710161514118171912069813887162434872325151558951036256940633284420286795063710141030679340110866265974147129506058966365107984619345886088322777852973241602581748582581744308423481327117044898934514813334121994380318964031009276248028891240305082367310901758016364818647660082096617606709294881590659630708689853937706290448850375244509979668339954810924594161091631575372511040445638104911253298374388151676575448493594753372702145564481160912324513873022835469610931286286521461501012502577704874054205245969787553442918295271846906445680324512223642170296168018696018847447510542763096180984093854435263837173808487026019729628299857287205754038018375317220089587049880285044509182026638004015309038604517641098629764257190544845804104998838005082390484069065515504617775021409279704952762101480328172271592419636039469603893324422929746174528481697285022310457578759426765759029774617782152353649945423611561727355938496212954903511487927011738646925880489539647947377046094361203285517856304903519481670470768078246143618970405510854135234133404846358587786376463127509221378591344166242463340787199148221777308771323882114856140080534932173633990809566386500028896811564288414272847000510679073414510458805132407744520495171506049718012125725208660003301025564072558645243430343055761512370487622306947651120919538446852653015126400057961615869412734102658885435431677519239866068713596149537507505956973921444468956302304112849985838882036245582850563094741955718458498357220116911176497095851999745231358219957917472856945346393242644739040237016471601203325085007357804181447040678296665208686366514718468932296370404071288416930967962883929301239859083505594368548175760241670388723414721236946183772846455805237631815476096463291157824569846439946758536363760178375716735595665934348834349236957721396585584913359247366434220012617268812227608431217505568000327402733996336988858407469366338408435153244420012139719395433928826140603801781631347356936402628508188077624878008220751828784510555592032167754208200996112022040355185183152648981758031028151108350789112876002451406230317370789164526371274342037502493478290604460402095968905946128794266673869214946136984453635224858867110153830245544586461468844953832719983913411103884730241937975590637189467140875404310232577313356268425203926281116585397369305627130494641733578981137322998180111222597601641388092174641414612206819414741820715522041673448733265391122191260948064048947486922616390207441501915713153888708665163010200183617988679849590682173125839185349464906828880866599189386453492669426035668577082653603572630046394069551814230605722375799995932084745312623525807180532857091609853166308474534928277008382927044321101514752732073891163108380533239822453036389454432896889405790678256606844990028701848901118899657310875423387127636329937288021473879329257949714166084547004086022449116686156835619170361411721611392740305361141048722512845338083208680915247622112312651491484528529820877511025517710768647857400696189801652271749827692267507314108066753645673079842662160571730545459337950760680811960912532536649194558598191154401214876501704193605322588780106646348094062802654891562234827430495868619676435111090708983362841111107048533190667870041202736551153383943232158130458617260867156163633951892491456589845735175281966870541162976183718873535676306443652804260809112951618782126830587686340200805302116231641231758644176484156198713157307371036245226010693220713509990593681083476488949963228180400825858838225507714288898381187035108147106165525156501658352787247572151441088904037360107200410238699587508663060913980213254416977249239714511153685117443735095155354605953833770937173159204654603262958891156409411060675580760825694022321063218221164760744523725027856416991758353951836401580484041834579156761589180714295057867966899556162246028286015130882524430223078154578810660724571811164529016507343707607221142963502077414632478716324089546709836511629495729364695184993748656447128010435688842289082635571225975881800077012364454102162868446594737587005958827657095278435331214520680141317779336053000543958882607090444285456922550844646283610599962039296909708059884863485708775623894048923943956715201025696953435710668776634596189954725868491556519534043696978555718308627485611498866822169286120857023551568696423348894394698838818304184204958372674845438815159947945673940972260420340007125084935634366843144266759182652157608334010225470713195454739124437395132620751315014624885091626134767922107429818863123744768011659376852136484296494201078229222722294022933662947645320014633336984019987457873756703047947760216028509694784843684294885385746904447171854873542816676489144287641431451333872615471375723723423055406687525030227844255979714342355957486415815551145768988407661059521493580510098262738834663618017495456213607227236720717506273001812729118595138997319671231073134046080510241928030077840931793830495113382581536933368171065481129508675470990624113752611306077992464768601001681472591258365105848306751153967710257374955018543787808937535674970665428834868415910112959031403064583916396183988989618423284078874880357086072789127689659179155108737708215896490715639729082280991194681923462070404497282144709146460366090234881176255837538216674241266653786955578300249242284696858976184163271592960915846398941102141123168515966402841700313202296137097361728362296668579776655169019849003639770556295206367200441024662103586146978894927433843615504316548601207016499442329167835123470783351202804831644856216780958184695914638035606234486126130686529124178849806540465814760144999968713127164473080967354985971343991548581324848574230356753161797655103168253952805608457585090122767852447371083325005744998296385093098507119542798388942190850863474964695600343754430260867842577500422458830553151018889109973173294276073499630733732990386395296838608383269831742982461326923647735893507798581663081963670098504235188791402700283722794937635742953683486736553448182608465522254507011905625529655124323886905094878164481343446260750924965984598156494678720737732739504485429240769427566474037271964538335476788877815639125773625994077379255020856807304058441208437642216440525212761506760900300683535717680872397007762332058976030846587281553237584451470542773714477192262817719141586654596735967870763727799002400892993727678842675692330375586228911124313028858473942218364268777250542509100556527224790811411440698665154018491990322633416719536108795539183291895467232906798485140882223225428018176927595866664847600919326841420192458688284992726461543837022065465114745867855654440768385621972080908241744037310504758108979049501686963536432166649401202390298785191215465189419716258960970087805616067967424726135855863113622913303733438755197621281294863456200252824121738472280261613111739614401672315920236831015539642004802236161780182899927918470328047011853548489773276167828402905135600506486194786825997666024341593827057656647854853698952602248579972564865505918141247854543299883234914725520843007318811625177662436850746271209843657889080494246725780303020214543827400497668395521916148561759628961884649474736554467405214563666633606066089742399690240725824598242343119126233119023709198664120719614906839814551988627025872122518657825774316806265552512912897392299174103914678447821516425023733607217688292324325385231341791187588976892745074563687760326168552512992858365355757447369181992312000155414541213843498327675060761975874357292251687681559188216748220157570503277109167102943073844942609004251946731414352645234294330847719373475086189643911983045272037673309275421175635436978312326844870284884544204435792867878630838470382342245190991236328416995682759319129686982167994954445690616777983175213737485458295581836562988304299120817351094769523896728793805690907047911698045752799993704514902060021116869277010286512282780837808734115438561402004323892275723926980856484918089809958769306673954072500452351374901692751859001963229955307714837455344669998902173565185152574128777005046548333315790170975502902613139210375263010296336227198305371501721436272992141981317844686394293526552809751383028355283042619511237742686155324284280808903706399421053113702703239823617210184415698522722013852110631752467591670793130847867646326256231604876612850188274068902807747193798809430991197976120207782671525419378728218285881122414836507140237161029708739284417672288176255448405595869874673131388307067861319744720495972106882856264218961441210882854232760036166639879863179143288212284165255300296747123486454456528695815681323592403194845769261506682526442733398601103406502446402641737606641381076372308759715776407055680508661003106235685767810598412717740937367720442501390732986490690843068893506237218188540598630610909946801228642143458609429522888594351149118008712090931479563211245066311425155393304991251952483363861933509722734823225406028092105198345589220337781780100991342921152631851754104670435041537390667425345543046694037443092682516226622424850127555864888507995478283358574411361618572210697682436152664770807432470564503262646407381039186297021566854433346777966428428751423315043642321069413058084556913922879946905925237879269895829677688545349186599668454838494103842851051654503752515954016331125874282847186823324815517182729647755797441646988279648956730196952837650466200293175952871854961001105819708873639357116162693104126481625487021980530766933343974609828804927114678485224448770042942831354076897991895855289248094926996142842390684813066157766261593654141294756811123029269963318992404248286677306453184787082871213136229325252359699719112632656617930532830030600495552123045676941581516660860720943892238482616508362754630418630667674865041791706832467702865329805041538434278920342075070547011341078292761018764813503234930724603236266629656894662716891127972635900385754317368779666162986508485928041224215543391009123965429540123770921110615853921028411183475769262301297670003061862806035329652826231290257083329551384732785417733865360458730209243551029505596928991167846332217671448296457051676262152743898786702104329130337712126342548522597065884498497511341652065255832294931296101924191291184883431551514103047453441967311987683112043439967162256631615584084440382494450813467400056205846077270623372490964571949628002886349031687777954817325225161214932075186939961063314336357957902372501110143287676736838368508889509662806580697388287952762064790991399235970459360428974307627893581997524958612672884138424235982812663388665475587905953863165245725419868458494534896638861941821423680252041303538131660423016161584985594146210436590377847131672685383721208195182052759510835185127006201433572852467197092872348905235803826704187848139435773088190392775716043173046636044546746388133344270004648216200759532278644268339407644248062470793676060606124380618601996794536591104423168749775608604587256621262878335748514684422507182844645882267236532484426160452667541003284847426790816771144086847768706537511620618297260566930060872610007489179519235563186358532661661559220897730174386086432278187132555702834361078425560585384923030114014789069841818124779300338643279626929133830677725055820359414464437853481219271029644027558768778937354014628467451557663093661679912589130422361657814129086599078062371247093235787200547268233046883423896984729354139621578748969630886731797847743407474584212576393839976967966659453693189623557342516684959036117188656335820241332534943847609850616927190078767751290717956566194525577162007177681392625893634138930161935675014810150648822173857090706241208054307931987485635711938145967104951512777204567934466935831068321407534622245060421258037594414389208787393610901719667547533228910486977994942351749231342109198296532830933079352565696301173050892379795611884547647841125099091846369611906263978084023388857615018127047282912006408602078201289682458142908079575398219556489600286639848159518174221206589512847105705090362551362248357110737554428336149658290792799812372486583378952700077646848387791819327332496132057096960383198484720071393630174362466340736874109779214107644748565614369286093458238332541546644824100682102122379648573732480488085162388190826392183275631580774100794476407523846422182165366498633495398077763069101607358685594141255440352019361538006643949063929591454915793531018435313659152120349249878390044753667568923604983491293068088342172056842715446962824714530468553973100677517309090351951099612671144485504445356954130192450966120636369696992031390168539316049619651242766846621371683854945899588757717715323683209920060091523622545801859337329214059598808625124571501428288872553075473310374152188792377374073485587443706559507933172053070622219039137177805757650757208035843782117660380304984760616362254220382732193317376118732470580481191536009104314849340349884829603347272794192876157648855649775113409916073034615704628745715551679526958991000884999335219001857493144924484854191509937164272224154155067267078790624703854936005793682202728304003262160102300952027280104311695369652135236438564212102016998756615675123989312408731858489236492918039186931542783702965012908767434106451575508852582379381556369925796231673180135270720258762641659604533872067082609995549634155115859233761489845494548886443279360117765629724672884532789592876368270204185426985349108386748285351098873816100586949797861092429536877793178422144967180342207182083845885402300172995006354104249391264618188128387254306994107155439056178323663421194821160235087037814299073642985956182748133640378021394555085929443742403354764646796223014177688394816765640087199968677799165191810618537056709646952916015037910886296888819935692597252632953902060926067635958080467478530904093309752015241620177975985518158986035671916513410431195388323363782880755519050747032015844790239966462090029793141797807344116366308802500346454801127252821592850777218254066772402693477587295833337409500120259121291420615259450678162017239103175328491642490173765266822373578205267630772727067522752877128415258274435396244232748022125846574144512111078340330261695018997974007697045536455275885859357715873032048479908770347175916498702212690711184666456422423740110516237965720697999923923455607658772159450821393596543034055751714958831990786744089306896465307119036240129949110881112888281612566098380223717835499284204871175981533705452292949975581526114026974531693293320404427284687683646666440816255546294007683362610974541212174650054680887331807201174770565334137372267432600705597360537634215850959526462941710396945012237332921233515562409418841915802633181015784056690706357597142337421549295012227494812315165476474566737965031618737410023910142129459023049516647223560330552389447890255644207628931184753748109864180987682564437635533078981544842858415448261607768880006644563716341572205703514963368412467125957594080316671933927176834871296382762565185299059199811740550553749320823261021749933655263429775423617458464408452687964938803609711008117417573259831604309105046101004427766129719255675065210715386235764018805701282087655990045261801028166224089471681259352900583377575137087804911298428832217729572559452374304795885375208902688781792898792100801776910071306634755029692080110126293809756458794432826649010497153963679385478312399751713535559848793045810903745761520883266311875042487981327126334930829036263322838516820194634882520927746255095824498500838864229542008964050358883303988673958441246978034024763148954101931201797305771452710222313916075888716668850200871602393705117716138020972023705437714745086689685834000442446341105592203298906419076259562325411446023063653501942707964316667069163272828026540130979194455171301094486686773565200018480426983106674020096418466148959308301328304581489216014309374699736542038541439774692141773146814472377067223783603461435305604173819372283347945089661195057401445054719590264544260693268079298168236175910317212341954844880637055419826909355267933932898391547216582128074302138132508110134795340862537018055202225384304222280464349016244329177368012401623387392536991111973509588993091206267623367028055442440004111019708268850563078036636908357121945129088240579688865997659424538229770731370691535180878222235406572265167236516072646227614012481812918943356505811841706133539784768940553223441312426211955967732700199981774186732376902679337941579180416729127797280946105709888295675745001312314738510038636844011211381948779972858347073629630047943821075540668976647715366238306525181296987444471453193427071560959495243773263018157102058472095906257439538286498761772384742515639241690042408477132526151485347873815484685470562718589288343347861506385564783239328692552887147268204376955331782546615709214998996872672891920302288415868700613603994427567599783424578559965972849733623106302226424485230095006921235160272557625635648005478407927528060478360123378244227354537194053747312788781223474684612729528129084824620231805928043222384962865299447319373484618588153949960475142238100538356680707686187082634124669700402903620790798488938436005171538114208420023048460786942609025174164624868077500689722029877843548032829297558445980218393469376455621311470666938870930009467557885298189187769514234505848051658940365075251891231556387107180283150665643412394813583876070976667044234817859122022955290801193812424885101596941839738679684958511363473848644271619187370573993882237312184234522795725746453145681257502778601444882311291145145769854487589683667799626663058446007892416618221880021904393642849101521338639642564548967134023643979047127741929853411496190890479950191889182130460825707809160570905257650804621368075997313030701352050751376180449684948536636109620571875546903693080649262540860620344107231002063086600496578081354754907975581363744507803701996930018236009181675505960195678400450850796005273167102261750390574464762345909861799533990388464818146912884509844844632618691332103663530224817461095541707204496161877048349657016974636197745576474184122693253579714875904541879474448388157226052026820955937404832957963023308964725195406426822520552170968174557380545660615501565945059211628581276752858430947555362804460782662721298986610190433754024304301329214442021874513269555486930517826505511933771630874172279029954128912807434751147349159879660190129714159981672778730930571201873352245426115926193837515972138214818737882099197071551761315400184887680545705503155732534261112022959769527717032491899991726025375954473553915706553091927940033519497864709690273273293955510507749076141328093686143796477782567447659535073972367731258574646679316012120244138373759051228368734357332650515740805625636903107590105769362554131929485527049921463794050983546221398387851546422022958406947725345387772837580993170581265863653684631280904608280099771903868641026946547218143408554840354451695057487631076750467952623781895714088989835915595874511670755402478777200208208154233404139673659156200143163615089789444590546248744150073820077276956704338625885460266291469168706511952513276517278694908587518567128043581802759085222096403866557854819435650219312431975944812934398600521391525132495993916152810988617240613432228361292639874571111049997842081218104896186700257007345193340645614912061190171773230362127141738794071011060662394018334707984455880056260524040852493267515379010821256957137968095110802014971829523815010166892976561264912391137748620127247577949974632628977708033592295679931242610548196598600974657043394044426953626413284590712819938461081493798387594153522605207313394775851212150633138669435915368628797673266423271447991168905676198473392781514592542192317079724136238249828634970270197718977355013049367028364655458201506213644125290382183977860792558734698009239091641356235091965864149055427510212587881946696973561428990211228698628745639818091451790099209308132862243554412075111632681733431402034449815747704173048092441793738559520026372973916440900962489574482355664158154900109892481234154756232476773902700538408668049716727621145288093624566261983102138232588758716817150860851352232747932273797114679816353770575026915738362591166261002860614688531318787671712334433545312526938424539053474564304653892616266967650597369127798273629534262236680986920630747222411358399356136755234566606572922376807989295381030240661646434203709643165154033689444924376395802445475014851111665905282823322447684184174430224665155522445261343690323390056355918766628556622789700508665385624024897917411546470494490708758320056704424191871870834621691753844272004444433489200028426546739807674869283112210187227088008010711159644599879781222359457211703245934428930370278712771503121915484909099134772152164556761512351460197530953665137759610457004843079817852819867569291000736764826939538859385538277951273118485772972842493717886645483360296726619883937722107272005798346657174557271009962921131289544115329128959672121951960171111245361504567617998305166654658054886559024681098874281496055116062495928616842678320365194073136727566684859417136436817502043606493521771797431999302913275034070037634283665177680290624165253443766868033229686984953369913057365838829225191384823976038997591913150326028316536304331098584029751899556521957835979000967039573426603666115055920959699523776328814187196399895724023634985010878469898003037266486647170921059625323721950918046876681512011776201436576764375640154605030733333798151524951362762989283719244795469062046002152147288926340184211931814009150383358402006924702806276794091039268894506182070464048052898548132639711104438160987872310481682225280967920433547468271688589925816211114098779927979557099162707849872208681891296552208118154174581192319799117531088397741011839643812360056740994646074462237453702698491749969851299157016155704056421317300773198020757786690627255787817260953431890016403208203218513306663382707180334362395011448455636581223444431122953460736570182701766212559069685896553890763273465991967552847707896173175897181139871681327370909746517645531043089011513214720598865802332843839416518809639602142711041873265103801574409799573452596968332657626509166811671698739832817386939742485521999622280998732519104911550209482791822452786606720713090021218853899125056022751755089258600636480389567122345220185735109144997152130422027841802437095465002672577910603440739258603592225981086235224692287656995491955108101171908966921502811854318572188088113101147862760654905914679490994766139891065182468198697388868265612960613753383300153719469815388557692716970916524005813027005218189589307607605815787545253112390896261811245905551010387747480101207322341041750430386785620225332000645905667108000389666638474313616933923090104867107760854614534704928364397959409565431166888562891202597892861142728071663340582702168856702796441106365778327740334789202504299402068745643129435782002713840862473928848172836841237761142530405150186524575653960515737873844354159770500099839372447657232307015198394540165585174108662055579836583847433766980000133175220913595195551251783432400529277801186114609842463577281735765329769573010052099043698503937181082517554718842471625699511569369254958961600640620102935743314578411388417636762394751241559850549592206203352103686481248775611930357901282722513385954569311546332459556553461560328426421446805127148214284631225133350379184227430158900518904297932901946494594837706628770637575201789033458168031280502589431823101948881712534584457310771345161445556865488593665593119882684705179902786227720497992087778109543808112871123455669752441456281959935468891005018499901920059690866731480949549017538557873522017023815433476534073045260475283661366076437905105418126029405182519663015545791005633280691352136378392799743527766771138865173578984494789190389616160238320920117718512359532128278097366336558811885837569605668831137736601067374313799170336199219212018432725126065258386664189747736102897723995789916782669801450828901113958554861421894440588089309888990823733451420456048135607932243108614677752316747788677346862155265313061809272180506907666045502403912635801340202639712632147938515884699493653725493466953789798680492694875944906218778205177091026523099456417362483071910679831484304965608912459505122015704303283674681097688101204343166033664504240807679054163336031658534330937719028782603464066393313170373732898747909138314095706421748289651768400688724984237482095171034255315849902257101936107425743329148710567657416457055176004431151893743954514763919498976911790166252076300930381321383174986173738619074077830311787517860519825857112178315957536491452153357368875812979519784789804629241819743051201641271129839072446559275902877968208144434449484856843273487609907344203131561408300235522478846408389139203624160763764301934939511136400088649349194091303782951425174468673810911314372803477446857996444389578988134265285335851838053318785981271039017624200976033406967763510469852828931996136997495387017599491376180495984998702567779013761463557383956291427126968079634690822281741889294312587716474798821996518537444810775053631533555234458410700247834923785439827700955190331568998162108903588832563541733605546092918039183111101603084616056685958898115553338634796294830696159250987275226569769266871885592760531395120101315395051656967558269206451350972565233080593304435324447023580994889626451010712768258647896260131145164245531214270102278811869135717837741070446761058841360021347128004130222764327490972053073727266565582582876518810235921375144677301785449091350385694870082413360272299410729664376766088333840227439536175031395056519682611700109129535146015505096319513878459630008516685555743457627344475161450572987603546665998654657524507444703522461446345930336974807369595226935600999118027217805136668604324856421648235193224951455559935117268141189384387083851122015515707604596952348285289896044019699416643003576089751316448843331228488125137918680133542627428787632663065035979232516983030761586908249201342357241020629667241979656651234895125847503919743530837380205296203349997133155187856114913445781953252765802257162298236373388864379111468588141950923762136197503170877600714856684809343792124094903081711918290714997881957491974888441674770696766812964125671775995291355785144554538577409121956446151094610484604868671686396056590142075801737104420320621761445958613569630830269380714897743989594406276200651182929913455473643205100214255458432441168602104992312725295667303683112049130587771806044169130548311929166494589343963645412917299217509901691316816818244727688841392522736812129572223611110774150380004899281372365720197603783804546000626304147840661689226108094781457116619482869073455510545134142049772183879192417952181855311477440104076420637875257935571465189900688332481354052602558354251497769137105128272659115242361601032574847424778713063217179811963801850634771877656981008472718368302654022629957157459648066545192566858077758171002819163597578715333348392824963327781269576473181478882444348964810472469969309182715724777165856959031285820808694203564130310729945836035012145033672213195767353270174116480030958372908988463854953042678048277076026216325973385899118626078409114693387248008061826268243728643424257102402944818637660857917207218256224385417969609551449434985087486737350073809157337570796195576422553737234056908668384336023878939462104758387596210920490745939583388335343647767594319357409812177641772577905869683298653592397242598781407428444237763815810676469800943372174116590450280851734570603259617430703188041498061053380042711272047858374658373167224671112128864670856063822618089509399200563687993062601581113963752752417406727384419411861945142925187084359954150867152614455998718207068965005990962853938076182282960032894508941661060310813677805535572596734566403750997654821104519463758398578606553128756046929885393673342165603843000684643783000045735021788186263719830005108655249512575709384898019617707617420398314695133001383850633593543461227346039429074168307715633517767073706390298016334370497547955215032659995032257531664856928563006002585125090873248616986683114225174538304807596371828963718123647942291856629261726828903926083173332182666334997496799648125993700838171593748457787326011264303996706380586670485234003669446866032504597041260774685931665604959965030363454186027188908599812367704876289552692563716426576913655905220512190588478390208607724346952760322826816683737952099952816386120653558907063775094178436282408311635990125500595084431949084581052998918816244789897710364829579290850870953759158983871049192365449046156006176443157153150230106269206001555097328308737624967113476871763786703551350904634044195363765970844030473846796650638482388025663562675836019794946711935203163875835571321258085211709623671520740814383372179976452099137764198300284599745079300822382534773684083685223499724412763001419960160143336045408473414830721907020223926867962720613819198452001550865908898723135928793990446053994511439472705189251754294204001385887071941046004766061241517654798597068396367920178085542679209253403185056206426161577076049358914288104653540973203399206227698808544307409044194336407444146298470482823443711539675468625242433000486372743865842621504542426983244607240314812912784352902665942917508092569377271314884602907428741314648113543042503647600481070385692197233757242500538610717159368947021904445924090860993370489194019106188691544504014762590451423664481043692326095033209973576064160789963570246206386631079077086496068487551867467187366342822974945263612490626153740034887517319720871424046293036159653792156473092947100598148138969139217610055196747690803490881663781285329512122670272230888889226423546622045695546698813675747836695561650259537380311537575058147706985862287971571024239297178957131144927534073513234255488502507941599735619215865936131706738629924273046398670351690865858436726405095926209842488735662323082529086098302106122557262451613410029463706060916012897674389578052423193786187080308036427704271749657435982418111889409567907733942875793668585583313786871505459925475716823271764301477581418196769842145786426324925576790824250490506103302952089727672068304464697972492499254125703005472793543284006007196550068616495541618369994117392209195795108946531767694591374968013529206649783465069424831317215050418702127025710902446812896502605173379938111333568190132011959322476273797775798127348342189374806903134748628702170407382084247647137009658868833633117928312602396465166558115246571632458013984029568895189075443014447109752673297808234518492264718186501683645030865561228865062578723553193387328133572647462218783820873695494484828859846379990859914597511990027820571045879250206413892476034142614417707801556404543914178088888668940587805761019424864320026914799355596955871108931950523191781129989257978037140450018241898137775198800605225674949296453996682504352353453702942098298871532006195996051490702190545368282285634717608534704413141240449874798803476094432363570052246930009827552876470431172534264772710096964624308162872565778645440528227137521333833460562052498987696036418245530007170522414170203656136786409560558352405696368720194021038534366506884981182544601120911682114808186440805977134872261300461634912869277248079861626069949618041280699168930964310581295192025036050324910321059391390964564131492248895177481812359418733907666550964429194975384632168823509189263685134049353815080037102565785670781192662635003897883577468634659741455464405567988439281561712480122975069873612477576988007796658481353224275270449801741847745041697268907530353179110715807979506048562738068025578310555679394972947561677776912412744132846605478619265479947912215930657328984853809959988601781523271600869899333596935366654336514885096873262743028800741171719476292924612808533847286048063784141305787730088735853944169206842489499992262000177267698683554953349445575394539712609738819993260511476818303577555183612980688904019392509259243359164269883788927066534710532331747464063049552777017690599809070925277186576883477490392409610421923757649542087229943020801878012562916089387120465476328693896732874624756283844709398958965943035931239628795214724957617165361919143601091241326064977210301528548003686167439804997740328064193144048339886447201387520222137461542691640380501928389632391173744911408341453022657869994491997287158552290234864637609417926924103317515893088466391326414411644111993114561964295358516212026444919774163364073314877802572280734383784898959066210531923615381298450541551023271251527325230825893160830622115091703493675731738763667557741547681012055985387712935483832999019816400542331232164135506960189280694779795043796058897014483122432948466095123866877872922181168629791660191770605927984191309933463061736873186780462088529879841802752699693879746783798095195221688087017368297696096132608483052225166326966728394351000307643883503761179764526269263662854668998807479976777352370695836815387741339711569843303927881879086579972075735925059973506767244161287805643495303193483293181466202162397245268167361278834781919290411520428942151747987777342417062667035616961242778767418815365885110713765849372086391295787329200374621207239239758646144020590596320807333476379371951744464179776368721468488734498353580059428375158232792619258844792918296015478956963346604715695198271242110675615970445049545180145193722200982349821818792124008385514239641620172007143437457169096162575353752881492645849893804349002556357958446404696909299200142752729322800825412785789032404316209566771533068812576206654420821114896961926248309988248129561138101873500395144680108695879114020834024923785499960219523952661713774030978146650821396387660874080875566990023755975033088948450385464905344686409134478822775453075883805052606840809071749657002559718259254798842909010213351357568548090804091666457210749796759590407884404704931077588474793305720839066743281504295496469041348750670964098431163790767473174693458256130231658907037343569920006622209434627456393599885393991954706958384620983398747933151403676772241874067807216989088071745469853311895642293518548113413665226326259173285247154277456585886064485906517527706755468027829211908930914983882333531854963916969240102438274682776686823739700704645608928390713204511648979482895978121232248489638249373700391841221791251319528465016889320588252834267163684815725369529175148400453168834935474739942319796960381649366470712792099748631015337117917878186163473259259440267312145693242879672369747231313642260420308071085668497564371932313425525429817927404251929779015462536998597119228406980542209123553284208469793802182522874006493720346453576375316297924393185975195956916688318556717668340598827027725216565711878299267896353441551396769830718429230632832989837959541485588985980377239746877236732858664117407092915308910808214218879638990459531344376029806784972709463416033820780500894558362097230601892968931410983704744535057178269656010142710698298436104944670629921901264807340938130367991668797363139388920741898052586970705271700546592984029894130704677155356546000349125789265149274785872449683670925524753380802996413044319215556750858306100893527724318010276456733341148353493454556781275366111684620013073798968001886162647263003938404882836823327933657966541361274861480979715393483459875947116501214312619934742929756952653372777060661615813044068147357379058035070387185366570289395761107576139707864690092211129280116138418851382677822906968991716019098586761753417217848596057989999153857132939244577346850359213218796560585441888665487040933674744462241576068566290938273040268037961878633073973708347522136396133378489541940506058087721438592380517537433695470679679339939880894184804385583571506234622745746216815875544832071231064597866279720627015440449768044264055901816379370908302921554167921249369804807705157233429987329465924011938173168586006070395082828421128812259836942271100525659429597887439109907957785199335915386837591848156965353156154615401089245132894727776814055407354133261757074993592257483099242974330466590278428218114674524561574173161509595879985297178296142300803568197116217993810935098306274705568683497005200300753612946527049853787366087826877929125706385562830199391332277823286499437989096668845418479808046739387065876758259305441691411725876693969066396334822556161563633382938047860097569148142087395567376226258492521445634970234964713537701877010647893769808456476299193547580664664379316059671724455496201715723493078826258531023360147488129626897292197626390225954435142699310208540625117458976595311394060360886882071618011338810665118031568664771549235516871218891760745459505388958197408607314015460480747555996732236849267081639488937884146739543312861230984344379438218587098716817909395246414832373268199102202104697676590716795862026284194286620857831966235929940306772835405036304419412027230160539318281072564134621822031399255291228773677697776674445382114172514979706344499767745738183937592674481421890792274760889806625683235112068961839395030880277588203025707272047939254444245311013653209480852720017938310618067707794684784279602070243759432864383351916074123089041224368718840953679506753057311362290029031753595378286401134788120626908488267210466061411283250243622059947657499386136583344685364824159968916729084425064674915345092750087597410900604394585003239509669421415292141525843381216637434139259876098698126124402726382591369078134382277930007856243017760223332444703368202859275665384946007435490025326696296029942740178242230853892718079011641462009993825808005888035608262998167604008090307622851301120087629569698277919439791937641092784992825737705426108503285016948618921097934874103575152837971638190339409786182155511817467882966106669893018078973100361908767295505894804802641043621885747645855880782080938777711605831200388786311736901669829445444038510178211652297450616009659069090034291524135622062112471360208653756962268189353868461329486859458824156525942771685406838209463959366542228689133275703048758946757400246252799430745603999652619635764291258655852750017021786815027773444169460200285596618316981665579444931314919707057254450622319947232112586756870053690734033899353874972206812744480427595044948662956020825791440372646108237891099612950183227505037346023041620267425691043964999144905013984304695976918767641744036602222339060321157041073429205115429225011635652584598324357690570852728384746304975465393782746310205163062292564383484125918167943387500721383899532726785978721519494577379856756153842401641917735582399858380911081936335864751538558716895740822664723410417586755467993970670305812622034613415075710376274508301812324671444883301683921178142975475892860298052565072460770207782575367048064319806537901524704311267571163905577915721543151428395452204827575355073686326132852712210771171920237167939324008071288493460457365707799709163946303488357128957020167189864223557595343277981413353753039386114060287388661758894671990642341155084509267252049547642953598127489231002655838128672515265820881487285525522143456814244924680645534275642759749993494663016047443218774651746035579668608835219011290799910706464639699379220312699129635112850344708537880413350339582289189261188666330143607120785426648222746074887321572281038996336789156884509901118303696736466711573332830231111647095252833627858350675708053158738884636606928882897667065238059977458716358511586487894914567689411364699467178970707683226881493579006527238498810245937316676421879394100236588623646153333274070453291240212146963028448916860387018831419164409405486543153183240288459585337778955626374330263540219225521957980497536305686075568172736490598364567110009311229173394642806364726717297577281718424597794073318002368296463480320597475546337376616297977914871959124899670949109453522070864052591811086413819382605870105757928199633936859961810503091635233898002350805417971225977774349253243517737681665297779618301838013970208328360011016784375089346359498924921026678977233897918841149300280297031044078680387173831252921667170919569716336006085723769171256243302875728782219579525431029095045904406123204708748509976614143361682192132541451516063144187157280016246900732836159831300329934684474916024289200596317801953685421554074774038239407853916445750845656340357716593061322230815535528948543919677146073211866648765247256839174650284093640855675304299123636952393348941179081655747822338823207132940661821623021538050231139052660228500413808367800944772919149196461242295748441393323226547880685603718393741612660036989601955221793864359958873307687318270865011430710146150208249233278067003174529090241122815251062306277961067021957257756066978013489442257937471923581326041108631372686939308180194471764924576564249586756660557130760553423549811654532832093243516082771042648655948819158112143174922164160180534880708989680205410725998678089935722668940704456358998195932189266871958846433723291540406397873224757854228447429950607235638444553438457530981924186596945223684426688609918918126450613084646282591081096631981791199972078948657481912724266130016044963415553051579534847438223823473823623594522735376142807722047786971346464027811302767348469943262078964473678129539315861006830621004070975176239702507690142954636872034861351130111309663539294762464108980931149799686451669785595730826819982882405474289229691765106034812687155595960284719740545618715819613659008948694126514869528082741945008582418693650549714835602181810156601651465004552948787162171963267151712631945716284929519666426040648861938102857506221819632648099610627377908034684665375011669678506136933507981099473440501312114505351591311549759351936041344822005135258969029661140842789784557585172526505327675151579950207160450165738779335510434563695986065269528108236670249651686339178907843027420065739721844353412886723206192605572785892393364853806222961758571239141015037803943238973898407285428821982612296286747110353449187906362656068184952155401390672260099108737554565485234424807256087773261721062980929971379145341901658332778858296593623058201560352087057359387352928102518778421966259250776798570540733069829041099253032694117538009210518618881223021104232420110370978225900984786482166132700254630047440597801247382718244748171151192969096993823569602368815017873220160908699329969854690547241761376962604434953699746346284102628947540283069671381238404830418854822990151282466088602834566132486795306781616678669606198800294197874548088142573088463047809141872873280870051367884897923955690953272639449702745732756001759324107753680649349102439078186671998506677478668470098372852651488267111563632893937215216061585039798973672911752701681782961584189139645723235247791180856747049068601019040436651064455115727417355113450387527147637652413501383587110053869223765268542880606774273071620212558346144017601995030537036889651633023197798725955964711939544929075522833194195131210770865660963388939975670966058011341341961642977120958958562287517060485893391122719193581654012167865964884933545967765580738597943837736720714318333238821963744854424956438918295420036823905364250087472020453682258161784281505151793402687847657976423862786201891802840428912164245448885587760591504782826545073230771892268495952119031703457935629707058941488112123479636695096629170852210901439582089972983217622467920396461678216327149700566948566301400517358479167925861568207919246484814351042639943026682353947233695764028656280345264418866882931870688492593762324407812229361100220010140830461828199135991399533705439488944832896011588757577987412408679345739491358164195355712785931860452716527584446673425016246930743524727743007538926500245767608047573146682218945590430729535294539765291352888175304726407591146326921018699109120488296748989281740085845086739250012492611285948115039862122290939293909599094355325625438055904146319479183207450968120767635324546211234193847631187827914234303540354580086368708909747489470702302299412330226665532906906385658136187709174656493297762225959360998769018290307513750389658336615245248455802127722262079976525404158550814193036244188888036152585022776041108060301493233758889311231943139713589681844018725220838671464100536580736541264792317802728012426065357027875606638084661090931492958716298173454086256437433373006515544629046907891774357843870140187514112180894118466027415797339812582869981903186814534483499329520551900974864297360815821112751556787794862124599154325477317478291636589377157801061412629744061174498213722673623701637988039227930001595193459393545810072894425843912211702563731453185282070322303273818805627622785385464701748217288774134458568140518874066738992339388775474926695860730239297936907921505189031443008581324805885342032772711051762819550135900132113326118610132394365052921082469003622686095026306332529388338195594875739659650964560793372775989338740519807687938162227852830972881550208286522568649368834633424130692990724086935324095028990065757605665509211115620361192883261894802082089442152494623778827968420947859770172409273713938048726571728819346554256919446521618115221375143938266182652043126239843770954143930809908212771957534125670379381311625331934045791951116938556568590755378423990133907947922625172074036465378018650757971627061564196444976870627632456575933669461975383207988129722088632953271524660698388410231410978779039003151268108057568236817421595329578097014774549425129607333262378309660557506365447937165254967871824894747688047153035970423360168744270143637013486090924658534307058197720655869753916332844500594581350320682939939097710093339945008247640075310353281378832817120582729879228823222962245118201256697857298104336644520827026812048966234889973712013693148808597294205942936137745799410861412431266108793958681862574900575963940207347747871022722775258827031513672601402262709131752927269310169363329330472339082042677632395374495685692916703447213543728429834503264561789647630352194558308238791944898665033100450722710534416057917581008297685102395679210964760081999662623860971478264979627171150686054205460566236793263616968000426925144016275454423075178689124161477783258307496221971721652449129570300293752437441201617590483662274811589777814675496559610350912311057803397684091899384921858517188392971802548602825500913678368402906018882353801605716497416755414204919700600704081829484309155848701686282747219294792492203505889964673562507490167828615429942456667517074539240996577770087196729136169783406354953454337065337315791768485979772013971715260683440524730194031561048750176340444651557232568852584194980988554403568816580448357900672245335922673145432577424858313425882703293128307256062291966783582084771993909792055830495995943719917762080776042516739069560715878694708082721131786737157156242480720284524662326544909659923015589677848046115175743737837784136732038412705783868014990772754623211939168961485189144567628265427680494344309115632928233261071357579121042106493940934947163804122006422132337734903936345984761409534264300984002056950795180196784042039912550031700768984423733067204992572143785870473432989982459044334591010077573554507347494664482607498071072036293266177705583854360834430979130847847620514209169828847544962609789890907004500447967248745403634054132446566653549072472243297552993983649270430813119436521771320726647806240708103776365964848241097186334233283467885607723851267665885508892114268427462381819993863497340619545572777203085541124911979333613786214839454987737410602656944404642670186245768420512549549255653805691991931845412277397740816611576807076586648355381715680448998026017477181793986022290832346004587075442742958403971727637687685112083236214627886585707982992352063564520340197214622897170189831366868627305871191716515055092190503130175137035421417988991800701749764049108707281079187216723815297474911427509256752955247350646609039141122981666831831806380954597206927392231321024426231177250662262853582885198748067032112895873442666296550588989349407027016390851175725536744188833773551850970503375907340609933552090062580958076465630379690279524886950413996610801957996032562317223147170162878147427920784649532907776518965919464477378701659910694453504485201736492277290990760032209316469192373573144787788329498217342469567453685384100723491508253071926818888956760088140294478193385388874765998845982864069926178178057139563802687871688823617938640645591460360800993249920882593024813009749413865381835920844806458804548828668203768515187295436640023050445664504952868927535179725665457625703662584332318837724367880546217797253238778311935198147441876214482126391976344233807489227287422797485523575999014069143385052012067081665030962646502525750738904523272007596191205711909234482112665377331335954253705177736471009168068611114541677740495106037712981273279174658241345797458384103703755003090320244442867184981062938826997291681508298986052357551771440901205585040735838679382164748451434886154878507508940672012475881867287595966060453583010755654194443191704901094788357197338279532881934695048984291247163124999635901949133815354704438161588654806096932685458079606806821434462538139908147851762522663417500781962567407000774410581470476660315455748853806041752030369352189226467288895719066617033065678553662429758003542833164896804262036129200030559974704668189722865425127259582676456933046930701406686846289064387398874554710853161130935951759353873105806450695421502147007266761440204366338628615344688516635765470828800605256186282426421007670431819765332156719810248879157201300106096399275517125572710308948543058379648307629803374443517325392167518801129817327640278774515460621531629548308054925160157663933870985100367323691004911078313304419962747569884101446138221101563679337242311260331233648546766343194547858229894864591566169318519912486474953683694049042472269375200447416555278165102240946947733455945189091972321954662654918985079056002432713902077918250753928112391307345087664824099627789099846550895877173521438000347763915720706632066882214599174620560617130664476804450438324414331348687989153696721443896303690065630211636916579580931139898699935836969799703692943263528131470174694970864237967959640031017771634374388747543724921928688467925005719736555959992075445360615625732378491719732086954336318281427208855690352008702007718278611001730121707603838469450913311690307298538725933370644076907898285318407479412518435211653324702848124206721357709769557844167945521410968688296445425595440462880856214539028349582424630778622530864283707376245540251789525763112159749076101789982937931908924010868422335801066380541449644620473920016873516675417897683146715870829542185330770172733988756465482761966086339384557827818479187035756220521165912382789438302882428568710678514966946422722328382921316000631637616964138789635247919908574976048395865970268529410087835296138802924554674481792012695379751269264290747033311724223379686319426051669248482255236139957439606200035224838401473681306014624875310772997835324925545983871104474412088730641922738137910943085121391877895751043574497777049884062258450417913454053308635844278912333445617207368185289332854042967781795104183123830332856800445298902023199746021505311375759183220756778546101776836291420001129539193860882009941700045584903786042101832447587326817416962558569431186854715168140578288553102435112064665650601317787726131843201677127786365573711413192401571207925294852607009844143140214535070780855925661132919420078549115373067363470840958441918792127813927467477911314851603189857461498518933758267836472840546849474534452250606790182992928705031567174534933974539699675498329513363141672177782844003932476887863204005651148347980623479075851853421211825959884183799284636683752491537119555089809181295639432563361661191340949316671706911511422475221572256994992680809130586790860889435243590585800946832190353748953778283806522634842274189087794358152719447594460577715116617606234008413434208479325242205942016641850525510780541609306092338281075013015913734741504992382509442943018191875549634476706385142783328609465811002931471777671670562628668566022814806088720889264517153225021706321649186016260886554923535390296628804269454173297934151192856125565521328718375266636206207072830770927424962681569403673625580815619015858053244441121861001994499932336900198201782200497219051332214335165422928737296050138059275421244797773302779778945064096697346723545713523192192519111462355869540347645825137317293353035112282964726576065538495580144333097300758700779213114619938092971742268482157487211257044719824777070841028560505228450486943696178656918241315614438661245725880258974753300813591428317402588010280850600324667077788050012519873521467932973471810120077336784708208811777511579407389558630325526177620108652758832845053345253779051919039389166341128923652739350456891701653435783467629845579984406426410812146437331545456345117074705969379308736399061682454971412788461318911165954967263616123819893593946084002930871181047399979200198310791015875964449132281225417130027599971495012160769801279173655960352174192330368879115584415293897451047846526935537368079861619636214490894469323858293828919068788526059288141301649769828357199027838735590593535657859730640614567501587788063971046854977819644307836087636215085838019146176737778454882541679574435142254706588405284974277374922145461240041522891345794326147115402538458535612521162884252333928889670363175608326999442218734313398661470577047320045785198529887288543268133264268712559888438285835875406671763566923910541862551957726167178919044665957481783431167852487255543660887898534265530294247924085519777936220459796026980199773466434986199604269581414527571166000088547934098894144502760835321423687253083483178886533140005266401051092726826311095907160734193667528844299922676070613142456978566723084557444449118991306030715076870340066635860898796457924733755034375382608950328296517053375600202127382988601219330145918722549419311348071569658182051941198735135600829832567669295532840123733185346984354880054543077642940387938625772684338290587333339436124852020106749097715347098277838672515190096499128949110456331000449807079035647793581645045373951478917873479622524237389960524168644905005970480091215858859625872252393504121539666008853761484882300224313523915289696418652161562583996652734239822655457692424447458253081109157377227956069562641144881476851194025324469982244259476237242786028418404193231248367684448384987226837630623508618733983567253583453199684941475195935256967540803739829587436079763975736266553400955531516491124088233317879992451923303656665489225616177343223142063028780125849815431155545182040510940680621043697540649347879040426174321902940702729474918914035876440898054342881413627322069154198502592937284520993268032408005580153057963626164455766234801767859665286497160379031132296108173063262682956847412466913034698439269082859239401558623170498886121774835375139623790102953759956505005453128528446148775971337217656661073764939397537479920099430296323083591499261826166390676764376177422375778354481636806613109497431148487890034419655176372371011896613652859991888706218519515241109050476361721923363458520148061772178897107934780492384431086247593773973562600015108966604206862429435097004612731105432562907481843658626501465112490356152605372879471454896591532560346806704711338874201455593108421383204143901237124030697523405867468276306658249259771761495926930293768520972661175428944238053612395358837367163137922639391471336290673898655078783777876781741701730604978235568256999846110761171037751090572781933156497656664991386172310900021688763338268742980429662039984452883571690535258661331000072392502534745718812108269870787470380762656537489489130717190805274606474071098372268505817668342076929253030257249444788685871404221427198251032878898106448715755814464931335015572187374892926159819190960007683353416032423691042728922949965839972824237600572804747079079998159181474079849877566480040260274352040071439589438688387407664244015610606958767473960455432798484058435862871130210059797082646931579045197504400953394127074640534346660046412596111556148073575975419306395158594703639196084959444104639350261726850094669908207358183787418458870184928562895028766233091162525588762077731796186226982221716499819158829516161886024010343919052334441979723143934642244443931173094044585815393730043017278508563652230042127568234010328671177751583460315519491909973546002804216269770052367506101395582918417977586917589606615934329258297718562866769479218311621968842453720294311929230561139395947971157980987344874640522183463197119707140266845127504165148856851980563038783745963968243798118559255337025793897967415908362109776891100220144529467876190926498796014437262011006276322873894263537769170580890178800716105440760757243106017736005331579756850948732931897668974872849614502776920888462918118547792872565878365534930184932490266724523438405802711393462431364298702423887063780421129010013550032484949998749190136969523702388079817756898753069630743396110186169560183505138427006440860953464439877655317432855017394060677513321561063659153349201312085968712181156856134257517806485565189056996780879842790105981789489745937818361672755826150141089916277035694894930916051191748926124048535868629719617665066866435547090618995005716952998194447386532333625037866776999030966164984318891832066037805822063513867717295314781590267178534511742374666663963501868379718190940665174049586123379580798034688670852475876344483489729633043171037948764539688135279389888753236987107794789969474246220762975462715147780302130184208450677328524555194163002673070314042180766479018522001625432595575214572110929267300653884016974904330474749689092199173127460709732184681538158336642195610726695218564107225020590674550609612508270944199394176579643950092266313134061304550060867791096008138031614003534872976624303441414854399804365960315058121882692959790267079346006900131884660598678663991635792825387005461874773957941288334060623920925027417769892802351118862156578977963700312671482501564877945906206640831458034320247983670470572753757609236857546924231488780630067036511320924924720737519885604153257219200353327432308716967589767309810467839006736910269481199510742419645810643251217629026677391816308094329362642463107219721890468814495917098841377405159185521525474733501031684627750375359765891563074229108961784377326554603067471533605898759458105793748801707781251899531530872308065807810689248611595664967007920546281602136105348217538324160488404138073524320505542986579512558806629083838123173395096888810703072156931903609785293011286117495188320838267063834601758265349085831293487496837025038163130849596088481402705410522309663397502423854205968092680097551117269723603141216331927180276170161594814526656702557692020724427822755885974840145660682353172925732833668240550524329129224994904110661052471790638175432243135134496549392071913396078539358162121657983957723755826806516710707956169375582764332219301809207796739754752378557626102924387568593326004609897246368031722551393125368520247214395996213070029600195153749502776801895380666223481137033166116901383995383348072505424642593308404908753564862405879573978780234800613172709757138049009480132495060460547822717472150881012169995168688740775521662327343910164620804825232739465084821665090164445702640887382263003342312694772534873704028080002534166105932039181527294458133992934207137022447494454291653980202819380458167735300858506213063625959596744162947724127924020648558971027999747063253990082964460045062890356430016267615065769865391481087032993824876116771548854276350202321709476396928679646475543583009824788911398920369480391289679734911010063740441479191587640169120096663455032737556349343676746314530247643661961770197223944407541864784239800623926492895587949835952578065082874299095777357641706718679660723190196116642168438322607218519675966639050613206674620184920192075299513006514997307109734876286537479901067661514156580274934454979438379352557157144417481088618532202123554019781965849978223080441474260007279139639177911415686224549410008336598107727213611142651123235106891990779087090062209632023755913072966017143077863969077874817156268603273873041999067380077409823934323356060217617335850936636007245436534214793023782430603456227429262031794588886964135431984586168427054290924108042458103649343782111272976033851643031395827509144215599906627448097406543423286540464592620064874830369605734006219310416555633866298011446220114157228563708149802553026728665483195296813584404055346569219252069121053759102409834697686936913285408680778343701929000799709728704976743298094199342394129719383688163129778065578972220351506105878178492132995705080628702842635088540756231478323060093313580026729891613119764456724591721615845235460592431921014896280264348356153535253182895534845559537494497790055551208507531316706030467566270140892938028880067888589694437572577707347326821996106232461332552417544374730888114502112084019114923335722302169105693331105968503801680457388635827374511468812583477381752821589067091648943721193804394371189862191666792271955499866935997182665115671755745720494704892681170309179333303813214552824771613915600330123405919147736055902408219695107810949435002744629195666085831773096023323960527988011781769314117977077398219993632151173135945559554861637235632304034361874180589821438449438172430143449141248685318579628917970158101308064256361130215553197086450152181200232425499089256705414360258536284062806435714183098302158976817793951615527132113021953356027209241752714844350526380868406874236598185649537915164715390515442410942980854390794865912064927705963950535982828642009057837660995020519486120501671751977770354846339642799891065856390786930804963878915923420096273717196912004617002598352061912955957166030843938188423436198907895166531392339827579874253789626259852707300763637626056796177074557907485166088664066081237984853453966922131176414627165776032966414617434714095758597765365439838804622778347396278509585089684754005360775123393710632967308515492548164522491518647905167425933749919317376864871829257685443077056382967108403439814169272847578194054311364215939475424473678650191170151370448959986527905820247362086858608042405058951716295614018418232274878990347761111627680773557455224372783509328834054463900616258437707918189313262546807204938944607771173040013095314366994592815309240850316896606332635618725784771414368152858266699733019640344383445105240123668181814489973163840804927444669388285414624079465110267643399965453658723315244421009656614961661041359441913449079576962408377739985915487114128757589940750532134496018657681513703432414140657629725915658721227181306508313615476606439813185614323838651750946580461957298993985251205154029214237615071212113980633139292586018637252492728007258516065014011241599109466153188127629710396782617471254478133922248394052866848987777375382892989722790449407642500566139488262496265625197721508510712566555584748806342013106576606952477299150535788518821307853028089291907884079196149417827347955250618744085189364168982080259278897090867572542086210820422535210216005325816090675454091024291591080303852937336114500122681851036326946415892080134762852280005629129521297815532710287786207330097100263682938551471561917005715905036929358508999144795670360874682827225772462651210852335528416388258392110754915158002303154711272282284974836923379120903216404438400007106165822349854818997782317212181379130157811052061072590531645318677402784075539776464514799381996979545271634489633923174176998235843473190734704351460667789938289688642804365876615089303848633921913630862322200804428813422937751444031828048171027425108762473872663712560215734229882364260585365522105696165519923091605423992750687549181463473668533164017044930684799167340811314757309056202817896560487983380195246743044397028629631523002032703211199451388593630604702148656714349765980883407769530488776042836536469376194245187355911457337181088718605947256505439368664243670747107339292181739069141487192715543231626066805333438310879257535351504261586904384797104042158185944865166478964765678429321541244241543868665211569945030922552053383237862158040749435923151946014569905278681006054570276033041206667249028630933139268954790327200547185141989591839694540185738672788692396223130187451573314029639009286270458062512501436127815374510756824659498512663871477358717565259593808520192731482395653513057806066607288016551152394266104884389857947423642217745063125901962820176819796218558071390391829929026553818282188693363278233440097490609746768666368116842494687565096103142797497447254296795380973797473060083261073929921423680643483914550637181335363268315165330559879252613661178031308327160276455556408404269336574095418465870649083249044658804369454461698980988318584425212280076886959349812005618697030073601127197158790671185913533511323510286009334906700312253076019846148241691877665980002336322564350614323484143839565951822854320426443114589669937889851791511924259620975231111463428182444041782988463297163398184936240016908973279536685859747361372327210979666342457476904409004123510295466007903734693843097247289472289360284149142569083309100406561915873395987911028326346711916973517404554949973679579207136935335343194455749507560900943029257575271067316020701415324625675124995145689388681928377029325877475778136437078154390551113483439650599582007171168302771323682473548385115399102606957782340623621559919821957029251924172639128908098965834008603141520625114801462832876863156303160390592919759829585509697835236317707517034762855985808045485778780995793556693026260844040989479870475477665980500174077267586357650334695485375211645845618348030456311092918456401091893287813097725660235831634483951639442946730456209115835091229413926901601476971115085179616014774800920430182505524028118730249853144319217497302356017477911950021173463829682758130775326975527589409537377251414871127929006077253203030158855717547708097721867142123067047823151719711310152447861457298158468921718420706673591258000458950454128052793019788588519493376313170210036741247532437032202353089005159940026017004262181936136283555076482973368921588464866513905341328619723767832542407066955155692089516892956403732331477574396488994968090619152854301754357589283574568444677987985569488720630595583195488633093964935812156545541904830976443017761880866883816810779569201848183182476431088829961904790300845930957378291494019699233287510535585322112448192842646945406369289397559546531868806901336170825188518000545050287784460937342742686362199294285908167393993510747905453896779505425006643233360300762093999361082903710648553291831699964451542705673606195335671420142499997301856889599131535267674240318791589416933797489290043462714033016112414776252758095176038923431279537737208517074573855573471164620208115017359616743551225561775150917835527091077978862074597484740173737953292009651773278965148349778645360399803365308211998538111106762740370384498967542445373090843062312259970149865451373666039621302301566256925230763340996632828290980841036509635395736198916157632901876829283335575926179618906944343120417606207996953128695867316177762420215603620626560718666317747873958963959015482584187171986071821539764694631894287338485567963470734640381188916657213167392029456145285192255023498716485780466680633022322643100052541432640752769978778142974523478749073203327204243743143721143164142324776075284731876084839510248023811219908907033233546099405416714709330725607220688566738648613565408009628208452619914588106837559959963425636510728667763246285741874075811247383237993644634471752852216981283036598451511475582941674956765440435363025032081411053927104103352817535930959300773298051763215209828738530422477865476453750583919526284339100754433821838670207305277167604257631528169217018738172886016365327335428449836520289801587467633366585961366343823631804546434679822287796893559366222401161022509182107213391521158957591173969220696046846558573266823556641730188720453994037087364835502770896518206535060267314889760410586959859753780660620206115570668058692520774811409638339630228416351629254824981691221042307773891439256308983157397017508393807481031005374478776534948074767016120417808978529795225571306619264948391712587480274171653444750110492648100935683445738751776376758023015702030826194120584363631359101442880837482844426205668734306592422736364741159111286238791570614268230003053497063830244288871075853681816631729920208437358024744815780521590362881836670484293317967353464265053235616371622537757114038601534914187941297602813894558935289471118467737107353561198159368012436715515979168807369525317274035980819347560604147293406305272342414217561226430648711410453293038317657315041189612195363814996807067798686490393032597266541135166946263302337618995971328003472492751645259126107487213536285739838177659394470031114045622047872922025108901311872591509193707396626510927194153149567343485182944296200493167125328246614187752251254366461589135365950907572687565859848120909531147835722563296378649501947852035566299587136176679732321297617832028442826633099959026909553247050647942312194819795283457098328634315880511137979414167994226399466705181731277616578479745921914894425944779879101704403493681202962498326739041067323734057275526525268226586025943993247993726130278929907300137566290684465416386026660472866202929545494570615729105873300096619990907441262776284674358586552106250730159775270692784040291823611943301860762770765718115922873498006195201322719780579259170905946351227009898283957303158378034444812973811456627199496501445917115802613313246478705393742426180803367912508292192474335744072858724917860176343663458608043873149396127007198293386841905524311110598967255009310821745592303613285107616555768159792132702662180320250993886269035622824691298577121226533081612936578852737137494350959734194503450120329327204732091773067531813976858407586358053339341801420141413666162994875576579038456181183925149971130376854746549072962131322765853571477185250615178690201890309849786323559577180312024779360907385341343668023333669196249010435475129879229284081796979466735535300238589831945686199032516351603275960235932809154570730372250673466498936167135068153008700320334897547001411378657227155828139701703670673998495078470466870900539924543288319247539186739336704238125016432949285240307102979648961486710135303420410698329675551355864143257314947895965804754890664306663090197345224071845132724316223945724574533322846845558663056101901978899004597604674778245119674943502473894066355918316015564135344891221744423637200985239106542110019134465662955547246293772649328280618475253359655044842427892455042664694149178848068650432770235806877815247978962907588647980651488060549244569286949828290733363140477955460919640500812152273460221969096145114689193047300252293363786964916157706958495680110596180253170759183682107734468279979157371086137061309904824273502651891818702518483182959596547823953835876939792828565249929767380543268634768393472072279161982111525707403807939460957666144071397657991887108732383402038646639383010872386219548498225712870956416290706525486516074629202130658626900370706136511426707884436631906065016493305029844734859601094233681443753029662779338755525078318071229895842798156068423622716099953220720561617043603340564885862211877252586289314351241112494118976455900681247454576787139554892664903720939689691361434173783489503873584615119882913755364396233310782431897846673358787647805694183314783807408172568956144731241244466231485207163339082650754131383555229932838691987015006550399105874658625167802607918530886931474565259528670438402092847859063608623373738465086736716610243806433305889386932514323807290678845814121629374144250365715592891367125505605558635914471170015398146823766269130097991768891388772128020375708076663818440134036407369082937372177420143441464694838900994129781089116469049410260573542979726407920092832635308627133926644181294861939202484931919294111862957249542034835873499623075646671965560720388222479540835098894011205284376512150957656243821136373126718965483788608659878529637720577010805286385623528186506573762029911151831369812873230469163864208627557423555930707332163105515204424831385045762481059031525733410468177835722135548920800982618268387964442410513401171490007551293447790669451909460023884720223077437577430811694862400259583146939385636426533360627090746451514995848169194585906311519133834565210435089654098237088934767993606461877471226849166645380813053488012020924389997702201384383973917146419264750312423382270840828672390133396545745231134024199225057659594616619599492733671697955754697311991819682644995816969174313336787266476420452440271336025805648695634976158401547028581838953085154590298241852113506746335687479202021109082678192053118237268222739363836201673923861335038305379172788917691971734946438093361405938061255953771109344334982396809027439363943525784746566658264501180389762806207948904074709933631360769649888942191767840043569356645923878705482597509207118836789899196751490962106278768687041552927268956351229815277792996016079805404315751156731288838253099041353040882297052451190565729522427986742822280103064482470969287203592614109052573828656526396098099261612016570007469529128292734423423681742696669918436570359486218078944956069587738216924194550413540059991956822020996926401324604647514519654305895993501868532999018222136033599243592161901782869942793462223607211130867413465921376243708848701067481033584323399595271328958977806590562109383714256438220239448482484446343045866359887797426558802739494113769465583029750145256773237483097992746309091979521046799199194083830933528591236858748982113279651068061601257021709755270987409624758485093238691722988072435867775117097410375715245062164472451604499986385238766762646120973088364538076758352058724491985075265435816789005521131269060115054267792945074323317423962581667184417818876834747214289515429725512719956681987285751864005906683884478338221019745528565742802134007769821320261232864350871686365551525527495817648025663743562432407289110147210323914186371278830283454397001517457396667539352205660640636238274907728070846613948001797409875592470863539840039310680826488626493879279970215741412155743376699788156475125587613959826749325763308215938509554493708284701743617914714233545577230252675320124489031579606203924384619738677848246849482356723342481159178689061965172625040234286790758887480709037084645416220350587771305897998437624625764716872906926277693199865303931748049971515721114911489364153666289987494750239210785031565653238155524945153496211188387321492827237903475154241923962239850545927172863852874452646196575696891016774107539945004574009972889828186209716455120093248617098029809414918337632321750182220611788769983562916455087747069961844635896923361786680994563932348381424217164751300681556016711865494542696956291924924875078277515423854480563221519556008832576523923356385260327049212281801198924720423157240210448929893350538843349490368470689270027205063541276975294691909598336583440185186810845364336230840370406421477335148396908152037041813811326609066532431422218980194000134434780145218308656060648698236863591986941991306423973346888037445640751927868273633779597604095839323221028993823872002202178592006358391414093052220160073863178312551856988104498484537421866881705269961912033078989799471477201029132951263248571548149547970070623287433477317034371997065797449516697583915239364203807549857919236527555942701642251328112765341042639377074037399990838769361509478311045284437194397829014290737269320449459595046801485609725360274151365274552647088851192199967163045420540029964465564185875767487861641494641411330210139975124307525118819299519728230352413898925111998006910927340206684382020183090095162202002812994458321475715949239310079050882537519882859005666437955565470466673542976516441179438751577609608197727077466012880919590372184220555606665875271549073727152456528490377353304548735690474388768273797773255721149942858506073731830613211462940204642008853551771919326078604742663516698762905482210117533552159271243194780162557693427339462485939263807403317331482927390532994847158353741162377431428501818924558465054597343850425820625081004256511955707408061963329818234997945468872452937190645804912366849218833161500678603572942408514479061632178530585639670490862487827514480467441993261758495522024127102640384027406359541017102620877094151529341550612792840580593092658163111178779455472868471996897265639986993764971186909762289931999199984458845923279537795152654051591799265153865082964927909302816968941417648232186925136521326643235352172030950778436533687728549102394238028098275233010624845649844105984503346699006072282916981127342047884222055737487447541743005113583133480155500288112339590477907139334771597233049833968724565514056257893316171867880279829206023137119604658310162747886969727317015525674153961056136194815793781089187134445092919953564157963731275159004265071657659080467992786691496771251625900258356264938273967415863067159649039308571412664588717684296485920327712084472908891186798407564055522862710801998672982290496968096053899288862279012703011207748703329600376300077319321416719070384907782073862730404246342552431292952837509973690460224711230684288750353403872384694798421267257739477258819250433461102603112615834887901533018668551762576115949037257756173892444205349616496066467132689839105742948430277172878543693054455264776877250592403435776079463556432772472189613995610147170825351960507905673812538254026192535817792203782292257589444928851716617360336454336253413645617129999585867098581249418520984946071215161740002122383081286690374332847766298962932672086145536891257238448741680511593594731352226147184857228692265287593317978654219496096339749004167962310161502926855670282591781799259618073024076985605135057001304298492805175285197878431965476247506159352334052221202680114763112299912093877320720631370574192831713280614202052390900958246994784495542770695098318689120567350573388278310186285668837320276815787889797516984521725109331165526372509822432610986816714408699252873817887755357041277917830856979856547093437880658572086464937776148974396805355723270701350769169417837680517538875596243344155635571654954808243427774229076354027998982263814142510287174155079221720420403796879762552820107498605027959356422586328762869971688904797378036898908212752073663885760627310642025476408879002443585569605347543901921326555997521286114072144793559439538145952580605442246602317189231767933825530468239427153114122967460217446191206792288290259146161804730262398205459584477386454508847395077319452535131621190841344734454016729527265631617392801460190758193439305944294066176715213907213302882480241164483817899297065900671783232157624942343802236964776810447474936864849074952691874794043760853295444757530037745962857282060048087473927553678542903296912708875093229097585873751417220252827166369726473096378047483662886979980576109806019200325409718654153498370696785343108653522987847539285014394902199849734944191645136079143988332162779520293666295930623598330477752411105040670663103427557521706270921310957737196253674024304819857305560601289358563564471121276099411899266641854191891353144999032136877948266769047559398134883904874117555000870222895818501805469268461438705835323243046767476804019142790381090682651039444462166034221068672753901130357679494887297354241808049337856391860335120134734300801281454547573923671208726146608710791659602488840042674743657416085957018376471148865443131624010347715138247315410158938097059468067605984140307520736288878667554164696651331533062052282275735712225217233779039245924429135621845262859202918354105518769363260448361992009295197540173630383590098385993931485765215345714936600558185629479399671444269364178919998477882238781117662637134382702297368897788194934706520751761896595496440262620960619212040904109672572178746866339587347392059345528057425618112895333837565421368515639149702616428978554845906828656308981334681824366962009680082602537162899560399174744614502851536857696232999607526515156248121493293033047938633452182995989579042703316578096858562296564896476857796287689534503781625137288654589336709125160379439783848622067001032327305656925382136994621339519966285777039167367832215109379692078655404785004899108946736251232557912710856244998467775433422723191816194346970020325513449030019464168841509001222629686451182109528155004220353370582680550162912244604826872871721818696740592482147018480483818238159150925571538428907336281356095873722812738401575948562869928100790504219924187759948122547463059287447058978014531077057344061762946971268737957263140600109803895227973042211765579915206717412807104077399165477168037995128382527782328539560763550216992510766723329227443798244077062807461164509296226791739925935319390698788947082393546245275204092861014985674744179838515313055170213849855682786773926591271311465727348801583029072308901349247034075352838219071724513485502030317578715008980384515437087876296369880117584937528185814440503177135354379398725309453306797706540066917628738947334557238294931676002107792820796862721544567577716774463823876519044616391258192653050235839652184758151917924100200507262061026377672924496551914713720008245615579148754456036271393063674879513928069731446151386843006479565658047168692739587530590419525735081538325273121352717660488077733547250358766802095936960627458699760052386724467135874053556264049337016014498926473196771560294500949893019301931821207176208626180098677433120138705572923106106446554190601906460063193229975157394729043753303434305969811639517802250497260736850936129455906021588895947534277280047933990215863109422727352824571554402776131985173205505050141464657040793585408950344638156140664422634719566533521632985910816027781491471441662172601515923673850760749499975413845128248310249002879428865698864459184245398307319262994426934696779976388340103155978427328800137718735714738929940140361271967633724772386083809495569204005900067910173023793800382879437834792403159854864429307877191026627603367689822393082447973404613188916950643548030314842624996630429412629630095978239115041880370537402969420603262605069654059937431798213685412254785093215503449222794064829923055085467625907616283065493093417324123860492125397472640228433511687535860048644808480877509298918788043144189542556656960519540149493320903916556448571621895186928239186154926366493956782665638224622195365594293066667898833074178187040065239398913996350637779910390474721581831441295813260878602724921202332001633837083113360176625642354731856485392381703767777526059251818196561096542131255505260476689576780226083272628869227154506452457983416427483616439592391316119542564365901916196625922333809604819299705140382153898787528700215899060680422539524802359390757839604884751021049448525311203189061889276814508321674391658513736952509878800896135571483887087756259648189491515692673263027091585759449869318486673903413083771681803646241099999207053318609214056595249965757797463144599411349590059405926173899028515393431232497559456594271963311545718079415745489027828253631442778331042400863039675167290030968581981422305401945547272442233201569533968987472235136239348919112617695102346125024142297780914385811629299962930165281352017660997718980264820048562112501986353299226311197013021755910182694598186040355579479318221586939206968519682863015556610921632549418946799343191919624072915723994357810468430173722625353927500868655052925453691801702783446472743704223216069952554247319520790036906320644720490696269079866226806225989771924332315975877773836967221631564570011121462856960689638916249446134869576051024321925132257733843620573258842258406785401141146531134918128955137138882975997835087366189429615289697527557849683465159849228973886290573957877234889087174261853358712879675043065317497631844883511540296525457746091714536134255911273890038785454031684119002634426521328167950753686246624299061041756232552264209809032178719478665691926212014726990656553959442897809794175577439940431123919688474064124595722981337760237303713703699286133982880362857404350744284238438670577310441804388276724717106828065602283792000172675045220313428459510820710883642235354522484306240965871261900174470595665711637128044606971150628454469272128062793144995190157209501346531255004970425983731163687849363499673052813113006564106886546000865176757714691000593819770728250146426822790729384152023892940758391096108938980130381891556478957360401709889083050818242552712703568180080410855376468056682317114003979532144390685759838011040294775931500518261873540658453294978960529252571913203898904284415807048905285019838582779520357738228761063239540955652519004369493780959451274591707860385317741791889979109200000375049283483097260764622947501895138493217432912487533260168428859877832727594584743909179498834740607178701937576718533241660556685753330158784316249733710260117549107664557000404183566285954829856042843014738825903434504113866118019283421350028082060076566802762915646592872140218336048080427757458237531024260002159775629237507874751455660471262450164441712059034795116445195208852074411145541076369451443860571497401516813754065657191977601588900471693096953654981689354523974388386848738519922118183296636787467890707545829705128794670253226950607752882956898331043589594516545640807242379871087006206001510569820208295125073663540323137202291791041443399452424342372533531377376527892143511296407177416241767155695320938523896668846137162195258708161653498265528952553404298831412316171798274132979942749230543775282868144155141756776962221452809179018006379722033496022463680431343910914375696475171938711534263870403765140320663558635829701035493949402445278852072893662739855085050797886178591831771844966713499778029265527805532477334224516511070410398252490658653781173847595734638838037401905083040070188692289662539469190901833878494284655740541100757776408788928753544394796477904236098791151889544505430616221545845880073671739016470349487822636545361847344704729979687366382245485376029848565935359014152734786856141276393640218200336439975996163669337064337239522496124125240409178341242753392957712319316603616896392766634001804139546531329541771115817530687929797403986952687999721279594005421789271870858427759566463394119184234253942483516160690575426471607087594434699681301284086020753488441766539765759164884486467289760552164765510763927835013300761380674098088252711348889248464649682100739388480374888029109794668481165332508217359448562760859026972036279550563968785709508291707973461036411581944364032120433113017764746274226715593823587612404972774640691907950046222089551385840250574233202472529900214510274251640291090285878860127373447823913879609313618705075946000714555347835903419885906436935447553135549538362294097535158391652692206205429081424604060501693301470297901851230843792676485265123699777965724897504160584570749281629107599755040896378237642539263205832582007129174672319497240200918722963687627244431401128364164475885075897593066674548423244218441237108095337090872077557794467401692611472819099225320173059090210749599783692752194262382108876537075026061108360560156236117755584052288626819856950426787503593566833334730670354858676895012706810530911061759721813355178696283168467935237736656310402754248378323110741130995532827909235165342015595243967729856881248935720216356653190443843416138606447351118996408989244073671291833524366671511779414654867833184439712587191709408069876904017232149602160690899392512252456823931104425477079523258242987923398729869461503735302535799676238777821914672086758125137370742246154662500344504375715098121854677693079493458761948381414200871736135256224158355971168501001263612977967301555221066783817511993126596337544551828537990092363636392479558868507292667282946005192686233123866843533755406768573250633520954058981041861207845193723511905859794683500879553175320973322601062359473529109672961002288569282948128008429395476327398584450987985094272224642278024107666476037693907302594704882047058333151580403641189898622030488852061621782143069215672047759208935852964531581974299469487020278434124236898173451162821829049950639417465722743104492786680523535468104742341403865286941841362101192838888989629692425967294291333572485794842895710396090625645431434811781988026243109243476701241550425113213652759144694213689793483599215886730391685849565282179171650412188929901913703215676572798115998182349254730340086138941617489892328299027166458821430304959077913678995101013952114374908430314066236013392106575721914090993947202025454714180245174539902800650793024331264455957440860240875905758936885903746590021345825609556417897529733242355100822358638140850943589874193811285267980465042241731101640577696464730472788266763497856700983261015723190338264587688681665692347244636964671571671433780659239019078076831230518603562733949369804471541674094933516694520399234736760993946195186831858884556422024850903837970248103301148991184521597684913544314911281373259108566686838125445044868272955069703719580177350467094330868963191199416629453806596627827436552471948834247146922552951454302937613884905447464448843980167079480632802949340166625607291091196557231014245485840923186551995716254493543183280751528382703090531303930597146835324420030385706033447175202104065577746874214710598369899621275788545333827787599339560001370519785141799537836830379068509343499197283757287804525263647718548174650805244516906506053872468374417479182772494681833170519486471160967949122997207385049003680106287894277339145254352831304224849983188437553187698790059055883462851874673027380942475635505926830247328934229544741956383319450291415661450806963491779791384655551169509407383326233936601804025305455575459260173801384310826753081074375779252108583654812639191543358239239278745198832655903835664776434869422017123600368363476379367373265799351867395066508125654358184061274569915854073675490383571410326592833226602834529673361556336397294383858454755745812301247068738292721718445342156848419727484180520571212650299966097962389938514822739391517960241394698794116904417066254258985629154591022012724322792147600354619471726876870201983265351722946044666452846457531630036684096714230990861807792934237401800326127026015582264667087183527858435656940828662639829314391531039462896784201245994094902847392875975132035443269489380831666115686281101885398330296710500609590716722673883177706713622777856534325400222628279098254068075676135948288322332573072116747435591304337625634263064919615396194217268008244442101916961483445442357934027450070835848663034492910966850252262672070275993389591246776445914254503144624044530846801295034737470909806881433412544582169019656809726817591954622744666800277232889462966490575213398534599559150336831241136994683809126126873041404126671178898716132837591483891693407556941381135699416076968440695350324885426425740582278357672472099499509211628573446195887816128648947758381502707371615032374677247336107905421937841973113781354501863807986027566587324550522168504515733988874815609461609903411031755020136442445329550951912511145850412240528450883866205122987702094623195566617425519945687379938957446705040238355214849190902969300317462024616215195867027368944119795333153530460450356811390125465115814821268748836570257601088780122757768199531811397248757631791530253464691006967639555745851096262788303152318293792706723671965620097170971999701924412246538765399746039636498679788141321574496141297165821782001810972272367584464253512885371600654234559974615008086513747016551295357668014613273127513464615801642697138172191155640530290368161795938896914605830880381028134294887769571871549348110596927012523357049037533757129947657186640429578900649110982887487330135681099974138969862787820063328956160365721567680563254344441124843717185474364673962209625311669114286105158167554269909149545860415417554982786000717999910214869657884681104592939072893863801897296320035316689449032340113396148790739785984109912303376895111955674522643029965206569652519719234398723527373221820573472613621954513437411287405864340713526851983225136886564694500568391484434598630387238799631924536318877106675689855611360005024543474457934239010546249668050590188445095269482142682271126046744787709056476025236463789817202584913927286384506956792546564034785985831202663290118339123901097016491227750712055236754004842958138729238231623367262734174454155698382093814761894776003583140358153054116222043264745438006268641230398491504556630454139248957798126786421182629419098159152601695746620367276147280292439659944955388641750573145154071080970085977379294958393334100468459966434967759327745069240178590286126952534454103486551712570476905188088627673597781121031853599879519759358245152287727344441221475710233806405027621741768330847802793598891978626362453060664566071489720676821576510544250312135690017861495572706394781215631128233839749202728694672318271209103492340086347941917542283576378523348918631457504040621006069907446696851646811622143663952867455567488479960028883777144719229463935859837529791831705698881767206484611514333235134567205776390026551623822503747738901899711727304069744114399248101578348966487166525351674498964419550567580769796435304184502900932005260556263218885574156784651686717205204997385413575702547238190535349942580693817669888591617739457046431077916720540289015427881186373271182140345890483247483189177778490561706217609607490300035106617145227175995089181542492106731132998410033019004442463557560508053400004056852514952809488955023157299273592484575939175969985207648603747344447827625029910275221904330399221439429539627414284347708837046833873237400055152567181933086185788076419486942605900218731520042256570143510671622181109247837500227396374024870246055404305468971763201014604092542043996647902319952260479989325457346939887948974864492028950415432961004886660864114117580373023475254960906175107438799364117672636951679707434535287248426440956884086683621882368703971434440898638036423151216698533179131145746523532354362863222783442130744234108649412011275284899893216445180563075561508983903272736517306607883163321749381498857401905151323743339191954822327683608429559666369752704945683414428075146798800361274733463529543400159177003681258045066495471906369371931054330020973123503273659319475347933580291737345143239103171432840139412719062726652828753559453406544174437839200596463850797604082408397140030050293985369120551955170473919711872745398512809066266636692116987942954739149636145064709768884310358332977522659307835795137713310576670659264596836967661348526237388339340248642650701630169686491761973734456521973599913929715151617248768147030286333133797137265235155240886357252152345364554483046824312975798746447246751549002481200236466298774953496645130983050605551300790776146253876314173571373469576989169910556560816823730333993005057565724695192194376658470084130808796217394303046810150028107147772777279107711748735523548947750597571435980352797062909161288952801271402913249153772629473526365944142707530858229926355565603800040548041820459135540320769365095438767255627562015915799013012335840357993105156698734831061977900517489244658086455660926546354167299355006402006468336602493890570195695126912523810656608172372684564030800190089483259525930646532379547302341295257582161490926392049183572742874266754682417642859102014917175825067752366991853054371914049922053321011613663141515721106134088862978945245362942541313763713855441649849102391167066031490338009249394912865271341070719255161024245530401830098972326452563528781417634348962734479736742979145564022594183232659949653723807193914009345381164502454195024827935950201418501123062350509259805495795130979945158482108936693180636788310908946974753159923921332989081293741487993190798429333332900614421028875138209946906853130066734615920643629891423599964452238648467862794380639087921608167606857109626415527559675014902407637544195392044733765048930430137989881928194405207855006683405270375458307292570708793519100691276005822477572396299429211822118976045205081226148034920925877058630992133808480427990582205167694081284644215342790900698664765415315834563217557034786742770312248007610747825909490316888792998970313477649423547945724567505045120083250064910735227293559273348415563756607524855011155543647728050810232366705582215793004985234453432226021644632932475787639276727607858438570881451457570011593804901819807851029687493733304511357475329453461144646501890007055717046340455473795187166123185738208986753330620363038918548393400466489121673376995367944324581072119300086975541809929566011258248807997106145004113803200759249728574599890232264361438874096905779105784278243376617229009278592682335281927523892438492356471429613279528355354295804975122616509917777942962594304832122068367588727967982051791136634722794792755355889325509977640300001153703208058572166368083561360228749402083707672602320869149951788578994991489376415746855480869030285807895060998482088050620681402360835367853409881182884737414633225694704377017347153588797559755690416322209097045779184505059508793098819644641510306740940990814411493935669874273401603260127088389949754075709118215636957284264676283253007240093308847284204009395635959331592706859975823262724849784962963801574029642435902504966795554665576985754084404133304362521304466182100107810371355210256404108337463516873138856659102155203467273354934213300820214139085029774393764432423813587594307822904407091752997952975404678876007810364243548677996988381694505157408588222723996861479825974047359052557478337775955867307201812085955240034768898361123198714697821273016619308588003442061081768597632267367874407855009868572666793956625730140546963919826044285799911935398998909921860341062356081080649590405064122692796568676221869546978631900203366147894810538655461911071390991452598736984600353591707686522209204569460018899586965040459452458747492623528453516892312577262570369562697471020506049093467369265044612743696734317384628816338840623717045542242763032568825852087956011330984585318886064029949457549264644829021111780679965301221275535080558405519706684090994073636877674991496650249974465881421236716644313190426829825345197580056080869938143780589876491741759047292312357304573133738070374281952137582600432634074366745733968472429870014604241345922056934820697484212682682161274377038855699369876934504806662566873628261075514729189961069681241293033217648963491816137295850044191873361215825134522748706824480580033077753342194178658580498502687232757203484848756808429078137365273183474258283435992731807168249799791678571833858740230943815792225205994978582565949040761528377198858971145545144678145134638126205378808414248749586591524814832398392486138762523159577783921768852329310102738601728057708959464457796388061255045825883818749331685979414566949726500089715051583989859796026958701607616491003278484488862437436896899649647009969032360233092973623254163263765152620835026839562228439952383139845588746681859621725693107577762995101879707693609482727821559560459054560811509074898323275634352751862248369986901754917656295338357317037948037874133812925368328948740745924991444805566423269422268168875503724344741752377439022485431981806099146254557539334982862275391142838316993925026412562041643354179817070814872155993312842518770663636500256648671310935846696275016352702899643922933714112914277731119485437846549170472304405717445314638058373526659701112918627717879906817367073784753190173366921590757777900772871593662085863772170798989950144748707703762971169372484524808614063973739380311787331777023055675779962167058123597077878545170028834217602806545794388864099916744170688669411285120084930329401314454383746268946762822637243248338975411138490260189536009444768418088740918950548498565521997848841138119962094735709091534761952594126971636198100239921803590469916483495949461113623582229029821715818574418638092667298799541305438309215832461299682145130424548752126767723428631788462166252892871927078142249282119808899582777176837659084528820814101747474862040778276696080212304379023999921254150379038203967437936443887411985540963543962652223737869854753141100711897824532809019661883565872087901509845254030208858428802420633913144816260865911588874191582808120025776620649467616008186100935491487822521068350463831454995586368917908364353316826875159834644750091743656084766165388399143293506387645547757244633772337495008287078706292902875632355302551215512964929732970670871085368262023138770420035605089005027795268293666076152707984027497473862927493109509938228854956553631760546400554790965618881480249813253815226538807227377469474152083362987282961172154568246822416190947235098904812695309620226021465799491864939329883602113112864632056191047351859595217060443643625957791443714116476558696055652146231920696671205905922043952428154719184192075432689551377122879532114025375362025317205437100179996535033305658561679164263053645841145061165197844902308929658216062574474568919598982563907202400766080800163249675038395860673086897183905795259291773161261598685512630346205882310254564717892138198991135817938768384389993911301178447464642272967387159509939995915715968332883358251921249847541730732918190677345066795952849963738527968519310851083387227585907463656571549092416114608637465462791433292456821559343326732517096705767405468567947935984992889177293318867822155715393555165118223402071460266533081175445618619226276923430373068278377707681846037447749899338206423614353737887980099525161294927658639819213353841348566121910049684689797509103953405268257084218053171006909381577028655689677480123482655070604969439026777067215819971370926530237520823000812459987476865162417460364571418519653977658751555954492690488477406310060103035037994559262630495477699102417836769411012164869633095990429617190793215328770698746063061635454185134665123070297515709829438925841865731055491804608919532248564925903393686751003224682148115296946195545613944191004369352712427863053633732390228952503681004398689300263763916051446068100027069502880762063876744217294723925961091925894506018737649570882939674817007441778262388065355302720614373318722369344046622956653383311628482908514870138391876005129466590246961731028197164261345326757139573823406540181057557629872217064840645566269438513191925862239885644985358455593579149324153918680909332934505867007335686255087387815352791682761731996511280374562292532801844832599511878005031324994284661033868464609778176732912591652380359213588718059730665019329859955383214411711784642392142206930940843709133747259842659312281456844692425991317256286381657071171461601889923063001214964733037812346135189647895813360892602221898525122099380030446532954370559544106440989440950983720398711143173563668680611993280609418678707622648162053885161410025973418669297535793091288178460577804592227621882562639513540144685331169957125701054954396553788198082970890728270313707506117137179293002483160466262249153503229391968537742184615808332338229525531019177966486630761871901749965230568490149362353654159451709004875157747971109599773031439867031506109390584069837160786277037111875784897793046049021846879237092903003342145857830336163730796220509058001056361914347448932201063736211859425514835512917341014959024772050623005130996715401955718955081695748302190367913209312028670693498106807407213129299017965389366500558019860791845921330980395233677212985367254770194318257228272199557049374371558293739797740204508851178368959274553693461971799463526232585612810808968369503911345079976325634186152095092724928751123013590268566884893366335628537322298723825449013689845176298797515483467789943750468832838297730555824276309614989380198679198594304724528815151294760782435163548937680767591477473570971716633315802028486411539761967296397898183370502181162950593308731669158137210369262121800216745201597968661980880332039040471079786518729905267408302606496224235646823147065005595577369008530325875572651612964165226133800328799367072026852140025071371725439163111704488647993937428365459355158120712072334514391183630394382946940906809015580609660701159892518096523444827214902101411702997717062552874514816237508459276736583340328521861016566077563605208001587172572926098908460203892936875819596164760098437501431928741605523404776220299732930589470526056385181871902023709350678852906831666963101099247199037175995937696223874032936094805906139317790972328267866868951685472046483374067707468143086686654950752674595450404251608100896322644149723375619692804992331522826624126936091024031330837861218580106188596934382118684940847792128851764219241317022255661593596666492555928640526156862776519475338652659234483782285727232578951246846761209519173681343441692301470267251780443913727869978024345786814701574361912141839040747153636403957956531644141055786398393209218181244550968246129880384438298225063229212763797852852632986910179127603780897538801197316943310832500208179158433982330019802961485965969579884953572906279479388795147398356179463537738513430468401203955895004864833800213017710638357839475557909158321583238810732934304601067033004777660431060374184219645417824517974317262694527798922837937134259464830104618041500226341416354087453510909210777087948270244438387590268378110290151266601045734137032855172516133692774914166224448927731454648353409347340142726931655358962639148476620600517048665031661506557937242424078434849029228891591561440893037196229447199881815848198363264469719499396152773644691502293382861954613869767126879711966650723911601453322663830550053585821409888456065812533345987754615742200288403259572550268047073336269680294431974893039247501230936591905247069804616318646332914133845785532245804809324508917728271955312086669471772970610129047416922869898454299048335781851790576457956069364768880262612284695064780240944140990455836970362089102708734185979727065698986644700598632568372604583609970725965347020405982046084728824771770398354114403898087379943485040633016578461096149894431890737943880202593199587494654768342608418084443945263041850990299294433075848162006145090720247419276313122998141914708021012755684551638319795038764293166233519946828657044308074496798381775222388760129903167824979029534771034087042619593546391837810600766626525824134653120621879587309154388078365191729143844477642130226901222407365281190517720788332209681830235206103871026830547883909080922663176774605635304754847213258103873406397376009324325719301588411983604386091833436020380067895434089063867808416737084088087357738940639393024761127949265025759507735893260747133860689371763326036590582212214436062639543664859706413827522399986252378974852135729989887765870845588933130977655938823467213674128845214969178901579214367713277151622430573192023907867440670193115012007682641295269870363401445619848720679125807584709194346574750856052435221018910280459679700117057369564489744265445743806600245593536935461675935272492654641655426497171372502041545103072863294105952737635682006198352750855249100020220765728936910058570743317235819351176387957053714752466925014439687036797397216057895338375059432918723981053519649904976462576087309556928541270402566059309534310531367984396791165587604833534157848831711002998542442511429413050682473119869312252045510015003578504483075798887919873317941445383680203044391729460660108825318953225409712685577974770016360439044020783694875870014410195900822668424191379356290508538228750165777495545313892588687892497696198956608245546112820348779848241999745742140833662469091362956569546116464555080375545838472511302715779020704427790956102456506933416397274888560381340887213804513049636737413080553258284046269510459269435372198262826022139315160810307655391090015193897369967371188613278404383960755329274894940542744182701646625159550336027271492357148681385827053640858216761471029293615635137393302043472454238212755086605736450343725157525948106105159717033874296694985931385673764362524991613703748007870762715564152171478617987822893105282710960038675742776829989816438125005977107800016262514410774816605696511293098425765332004420526813037772557405152075172503306632968496841480683377160242392783879572152480589672677963715723102329431919616428521539832432064490450708926327463610774507927626614724511998572774227552165671237399467321900936893545503811396573553331017427133374483308468662770322204376611068628901303312218488424363441872299445303765110312433849623986331095280863969164674358060974864706650421525935606041015700125686769717061285324560932459549135459478524037159601078200982798120415457875314808105265716316745384708125685319389733549650153273048751349591689613796938555484028067524133050300778234725938201384612927412206763224471108323805646811387267663301910968452408752596185782969573362038312080195750307411872393550236584843180362582701076152910563339452574143294284545417697886179681617439886482059298234371559018189452630483541174401585126428422990491453431963645071425170917155858954329460169278780967754811486390667316265819727158226617092928523500221442800206785665234333918374482979786969711055730589898233031439726231889518844246598527286018814106669237672838806933671473108865641095469252438816768959137594519736216555761225069814157192914758083874405722602671611496305435132903000289924458792268019655184619138624567558208833417475047197945974968897794333381194880874820261162869150383351453976688925711486940635838997056160812407285107783845578535291570304696709117417127596651965331579345048593677924710537914399366624990280092901574863315981373361988084985181188256012352452995481653809875977554656674789229042465044826851419198439282974937211798436920667890045096127784829709533306214336615049347551448991609330266235867405357683855851349676879563512372012951001452003477557338679884140601080199121642281995797396173171311929859173877105036828643133378689152150117606356599635709336784846190421320549761719651125342754485073734641602367428320223509557472813244966761571830891933146956986899969662246823816701039441648580728514855539064695013436584692858340283904859525386627964956780076799558699543714558813133080550466587513497550875524545533198597710250620077160292335968623800834909822167033002798255594281145805012652851865839474090677226057562253404537815831383929592751406855583250340666629850100337470466538125150276148524811072474112298552466060291269550692819313085354385295706230295330303148614966746814340997490123787184003707334281433562466991536908016218765287047904158429995941913268117569156405182343346726987810071142992476113330883195548398302741868158283341080820458450391357504818265809233366629222338234938630823358493595641318482749917643621765222708816924977018850478425927418203219361255194902834543256455751116259016546913889727319217469105005474387984555209049527582262109279871394285849650411810547729603038412408072562678319512154370499226319313379664045723048535591697420291488028978660161582272096228341781449767694081022464713098867400766957878964610946521241364716604928063407171861107901266278689705272731858859095729378065975177642553294710258471667035776476491427733290109550218156016572141650934477444991224929356185759402818372394317502674659430505262752041200765432906734574178471755667094480203271632435734039726086092136154036993715594766492544535800462461168844838931161622087567357250954960965935604437455606709017915812531535798116653323658747608929256458105981591485350209171833027529908028709475862487596761966129142416467276853852357316630106532388220621987788209895828244344323170109094319153222583199095610816127667767354550503637610547453756017140646876439700509278494652229327965185761801243865953519965458243293056545577865670249054419788692073543781468648890609191917072712980480017257005010902560638981476135516121613044394344957162381506455138998228108709933979666200731444321504377894709369419297138610733047301197789887065463356738665941099041327604110438462849849981427033607340841551941722285508187119282132311549448992266664723033658587519465560614363478451507693996242048787904565579431092303349730164403944852810624505692594568164885814419968113096368281702577326184198605747796556214267082772072102594167603365281626404664706588683569909045792703306523342302211076215260449165263484939276023206938416661358371181341340515708862966424352668674975679240348517889854444838245856121545921317908388076143409867199478451247795238338920741068008815086486519922039153838609414957453966102071188597724968950317587271021952865495990246682890859440983473861752996988881590267158747046823641473771363791646848713524961186526335857227333179994843134792940867938081997378184887854943376509451708998967790703319146102997055012145967083706886112448964791484994075188473507499405575474120747345351724400708040220544105161185419852868588216251596542439066696366645968529264678565773848263768977115667628028897800056137914097461013506275743528589824107830282231475621621443282504484225191151872495994868647692748640953039358735243928322949732729101875240780340789199826594079477673430189294345491506875825757297228604957764242891881640839652209152226025608478949537871636561188280582945848838628310214393358030858619104444775593744848345476974688944071605633908534728269211274026325342659423078990266103305918915932208846245876040839829850034693195036520056038084105772588643437953720249127398723581368971130898021839472830857795721896055837268015686490411964096091016653210843704381744494691285204291990937012694332343359458376084941869282322506055062918011514736634700325414728230152548073474386276425202731949782742428885183270474318230722985622088409301658249065250491783841068198833044713719304706689629603167675906660722839829846675337698658387554127517487076879724519806557095220464367182859075034172964789685019921283733156958093667177017378350224389512054811932390766286751784741213900621261269573521017555000853127136088112982534635878799720759932434969769055316142103091756944442785887411689540539231911286566140552091444820920113433399064628289008264229735455767913039392031959108208478155606978968357315888483482249245889587869931360582390698258078205381873815880843280312999282778256853902594187598162860519816387396009646133913747446116358121170012687469675027854108565796816341137004887103514973572817554419088321875622367734154801311694356103656812320986363852518648031257632625069736691406890876199823103239285958075090875332332368021348069421763303215103044832109256019875626253184516696833276662073531648284567707930990019338939580802429774944970622666584980221616531446762966879812151770987291745672321661098973686307820292209143612217927350761187220815123504041998176729405263694092931884223244566643724750556225094268185061610393593117482069736777474032580883533203928791517601331658739996507996204388540436139561710502096079599698238770484137665285097954450097392264536224797593075196099504011074421895560908537312938317869473875240159899614262928118078169188301056217678270825774454971485794677228879893561929273071087418643420580809657450463805155461434365295571555374068021713671083331621404154707035171377964293370133291621708570855650643294634634682682309555707671262071735347891306611182838770435589160612626426708169401625514557313038882791089245772414931742284012803914074010958219680438292608257721024985858130493818860408526872486339693742750721502399231537576924682615426538607608489707848970606348138887600190993768562788656536586342578433153382967465530188542464247042739127792308591561405044185309468038147605588652687708134188575845558838472645551352619302957058532102243442914476025184882950333112385362048005063246351125904419397857796644407230199512980829260411892299783192214819792865706299997374913514894873624714099457514865436181072735801178836954854960517445116628879952480020550618963694943340902074338128676338979303942684779399038058480389773299880483581212761082584836647809354014070451453678993784443487193696744191123768546776957393732031014104511598811068268267409154998451549859538195327161003126998401440297416961674714079897181950583172143231780467776019291350866702837304819701243517640200118784764560622681737800877705999047846279648733226184141603813650720329729230167515724040800903570357854753072259803936540278524262424131192719413968199581724241984942058741549849335968309607658031197401263367627995854027626701531017965803681702099515221530018442627258065812696045209727396536366055647503492218150237125752342640496604522298378032792025932032000235700031703306403113380719212523549041434418917289064340873626304461060222894298789425240901133446689130758280618652838235582430242612179316784792419361226376636991969721288028904793637222896231757143047029703691405831431574066218630029636470764805276994491100246495492500940088661156279802814438692664170199765270834397311853511440519950709018695082587496918051494777734886706620296651112082964386578377031917024025768906567320552394140304159344595801417614906665288416823672449710896176447501532632195915126779512164881135397057397483706508997971157815964576463369962436304766497771493149988613277839239674055319504954934527593061987931297363864319909844337215626999097727494059698587101184759635884700334046106240331711486253216671550388121178967239188127031434977996391845688347744401379734982971571823863621651700902973247513952214706436184017111792956180249890396659534452710512916454819392207776030505596525017389866313418679878808971033599265513571450798819798749756333831211105161339412215679798605656415621970734702249266569374740194273377477760597841222871754200460431878220621208707755070821465678755718103672061051500438274081540773183928423252663933637005551048922872959693477767515004368140737645470505890665355859249712447271666957981354897241561495563293948674009315839296892279312523951192997554224007772132653815882422742920645064456720133142580444518301120745013084823857495091738365418498371684970821964455634745179571458832374464650962882348806239581961848923657974200019725335643385596591169786788978291722338547194715528695810452399721601935086276848760519570234177485856284561378823810701096527159702449305271789834276251854742330275145654489533336971043194066369196057508895810737852178105711937730333523100997078549346808214465584197156405014905171668547988912150294891995999215183660645864879658195256498101584119454424988393442549380849378277224254832728355850647172825236342626182846389319567739766077366114888311637532819575354254796101228995261341481840333060654201308184684937500814929342934244123965320963535395202312165879770481075849469174826488295168525261895033790359279517349300290278993917843751969021686944605708778149480170334752731878678955210362677991028134270792079119553736079814329040601159294959989027461092339749530792836592086674921290457142584826220102588437126378862890719993706373014685284769215874953213636296229335829205792744146282858423394842936104679610695323529507738412761296081776855750050136428274486801577132323536938394338287557657068157346472743181581683580153776852195014863753315156840961218282356267606956119447197308500995603088051655368374976902727046331927522095704728602607584749633217973342720640972195868172999324680302031945837991726236391385760004448453090268087080757391949791871307416382164160161734678160127251366766114970053276320455877094015963845071831677467551388756106770058606367368384192793199046298593662182917350756690048836307069281485092023729568284403940738644098680936981388469106825507709891568334078190014498444642308664400651646749607337809441027624492952620660012882563863154034389147366899075541057335656873041811852644270590840302596988756227379060988695425664775144391440242064642712435721119348403974266915789191531373370786871065756306321542899487981569102592946082275714017420695844438286246175351477808010583511918581388413152956537038395750550856479220401757120952546021455406186220113604868350072387130133625793563584539194788213925702958410062970342700186690830562894428956010391527673377091161586438867688231130542037688309227634918725053510080336034263805806327212201149406945904612221639356855853921891104040027832860193807890418076944528099406663984626861103332909215885366679949007553146924196881309210109062675523246871831357937097462481990335883952535284619267318058608151215486323169982186212898423689729017870191676409400627305473511853769674290454370425558420144237883482603421306114656888718039571926509811685360713870338394126069873071366308741872355179018339894192874915742678238043339608807708386588143156399611503738574248525291950149719045736722948618065694621307654781057875996427247670099141240713528837191862935295939486462706661337866827135917668156446648305507685748387886867052038141914865447576241044474718973358010779806747901187800303394480603106684016052887509788606591859489559597574367371062130434595284357155462141580009496816031819716826054570935634085446052124810123102848038486964120551819149519840773948490235922351525910491700640177082196362857708721282356371712918070225992497300032600900657301919676531818272983503024394620948733982707764878682810428032864256316048420530620278249031563771100612149739685538569660681759822991675045074703059040990097547448476010339441889208978869419969512520435586373081196531995859262847941458401362604997990416531557450989938961037751470381440994521944210803368417594531486349906410175997679042373383925384710055799065769837727919771929023162219158999626266678022876633629508134942833475995677682413016284966861716340100903193241563226055430973431175734978174235214493028024979445822725744424829272172023888968407204026483518855033935206429624447964384670659958495195766853906719975837816002100452198551308404491559067324173725118089109226635402470173904711044976791632478139237853118386496364719096639209427656373272972992627701153215963223388257535861537477856337623681225780572002888466373570922396822320774198424198532611198565427707832226160453904796307134608920533098801027731268017004307860912733029235007520990107402898077920884438530322576658039376828487047264321797511859740457352479951986151561862205756243889543648582160124838476950057882245971963051128725748490657897929466270081726608932502712134036656815804237415254702629389201944932464895581829625171876940035806665833616084306474236825887453008265819515157645065617906938767822046453399373988079458951098995044673065101736503453173592637179785250712607715864374098957714734039358252958969348136792991638655558958516928483921732189931262549764943155047022816379925515253503949746506017609475917814307119489841084071473242146078291697165424180849905983823283356739267406927789275961182434047189792557866936684921624298159868834508881723845786768857579523790808696493273967731306755353619729066545872675616515032676642712336666943669168973516311725519933294328030156491619485568371666988456757464304547427194920180799876749912519927253070260605400015952783852766808979189463260473778447885418070985759248890892791180939185977981588090176730162594289785716265021911075509603601037564435653943404277350439625740088184875564225211924131162317737465348691482305190306374270751905066561027302330012413370403887549001009258442578880149714615230082808477772575854297710748980924269870124272916285193327218895543064960515077288669440311614020154913079259519142531193874881761743567339147016572450096842361185247764972333635240993755257302570689657004668071818058991875727091351711734544791414091011769846275775111969544409076467761074595673746606735324475412717322549265977815227205514224032341287150342496096338088992111805864558420472764041685346401732593123795375275806933298061489462547165878704368559245498117098771884255783482491937490594548433350328472644862105823163470777539167659253285802876021452212490027403408886345640448732475433163073512986993430259423008300492471880319230012514824708977352747643175261215290764847009779667636516737115238313877814740380058792939837723260634131269932906593075549400385455183081816038646754521912891514052822256605444122871047867778416053499842587519258186232344734596823638403590780818477402980307229019005349991032093247094232114070761710613881045940002515525290619471222638409939241786647591532049077688991034301874620573903376661738058302903440578179763049544903589129794908235211433921526024872879920442633855732064545275952925272980703500988030353645459312756819424022356143467298556712200865918969897075793886553060729412504035929738451673288576126860766394885292663496814513144561463079045224694891985815906547579671404688322705518292382460895067224579211942827846353588139483144622159734894323206399019810402550285560380041046053468927977331577764627890830783871985162059709834177591394300581032164679586137904228024437573099658987510163916412781326077854480506751223690787878753856650412047043256893270311257273828324339234179335643224882580050316504734517381141095890890870243570926066492956855362882895703705168883086306313276040860055671096502287192287500338203596068788921697602513346454939312322992108861686243365298632655085390607830808083047211976876469857339067038088958363786225494919233105667026557519143234679986214348901539293523381468991426995065942869131661543193425097838492391440800383742334490031103413715205571444053493324825994197039779696002509778048171813246866262334438878497505540607066668548281749519364046993712223123095382297427249473265363935280463314860756143570139814483309153167539730292439654307049164521245944554021569867259462871236750995932948069933321736883406579905086115339523534991738785329569309505600681149624675718720721748201497791459653614982973707131845464333651311565548627881685956252721686489858913364857102271348143135896247310046816105144662863777286424439741220259962868946971687664092933265267100214299836895559051123399644422411073349198057150660401542537853092717231925389577427244583807644423292116862189069498609713326009737054654065171048460126424218322826113970972039964781474982561358282432552143992308380775454578867215593521871675834856756790183689261943807511619100322676340965602704773571495613516145992454855249336736352364393716079045062842783732703403415623372535458986378077970108879349287544845516028525533657758769760980690281981704071701468916422232556115201380299315915563984130189921195113220297666714646144753426145035843263177078096025236531472083165682154203079599626564809112842959902968690839116695270094077717002408954423398289761346839580588381721068939610385028819148607003452493578353497192280753799476018861323709897805731870746766050864157670214303114322603835943631118643898351958963951996655067398199918191739931774751225995669259253999643070450267395170307581754467515294700056939833282859494655296144027482169623427354196365915098701267692974575617899034569878529399587866773879833770861353216605634049414679179259999779664647758914026187870688605289325775848938344421087192640671287022637602757253810645784499990292549549983808736257689956730311951086911785538247204800137960022424147045807402266846121744654096535122142812274452175237116950225644585453976457929503578756858407646899047477074468887285855775727875243084712808152574909592522501927816088039203060145152830990349073264127113516804930769941143053375728808908900133337893595008888809860125984367299791753191872037258184005716499252835605573412268109807605297578490555476812522436438505316388578588338632046506762980347702552348294537301056217251378573434161438091872825706917830654114974625641550494643102804308290771291357358659867034725369937684078164512382224616839624494221306436328448637447137484434001456337189454049621306804500039083536521453704093526197914287964278985494169875849136083951920203708269249526248631456605699510962660898328199647998595813558660973891037675451574846101084072558017702785928075362818099414338199586955886609794379214982808190649529906955404829982944816427795626965186671655910892521563707000322478863857122997961964601533128777228211385689118675084411205362112767065895178172575737536317228717567168687853381370424517319379501742571290952613547166993929730241611658163325122130066536393347778887415588187734460362969930158998223102693739631455588180999584385519262014442731051034273065213406270006655839941654455283799650180859735865919814553928514506817130939312339099267381421643354608760784575722532072435836809964635494649308491500824618470723477506616559159425330193757705879217121893638759375458118710685471995672232399114138514783640844545834093605839208447603538563724451201275076445772846760811113838010751956238271193452323722015787589539851501752236656164131201227513453948935118091516778042042003076280344964475833848518942072289101988790311209646308894510225101203706312849939960162677131748122925925010800554361861310491243559609448978161121130935345532755611924512366098043339388782830412828408983051103367823826579648388733890916887232018701748606084762803047788097214061740140740464041314610034779269689367402958753847387321832336176253213949603607631038167809487621329166124076313591348985528040999603324527897907473200030048869658975612301757052316281565544302658572198170810725480756997235582075130288721751665636674146327788883703117457154378447827896858624654632217855667136420318791353982211445914480927042558840525131020466337044674052058902840006177222807296828715381503030112710699784343599017165012815752881635313659326520664113155061030251615346166444996795478814341114794643096720284985558033939849672082198262221707670621828306265133226418910077532674852529980403498373050589841705083124623163667854317192908170253511745760353937867014209417132751527462688829458869905301668106181660515022055246393298375145381401817597573159407175420043178058463481535955340809431286731214004918681746358546866115427796931806717805005444264821588373936706520070435177618820667670180143110881564481884334859384725995886303281990690936808509740683637753257847694063562944077412627463378050984171408623743772085048579609058366932993893333351147888169944135638438075067744076416589686645281722035278596838362591188193587559921669806727563203131001669951433255568724577280744689131128691635581116253174706526185248676208322436643895848664213365551162749203020098888109095584551034205246166113897095955275960528472003830055269919868220097808196473108377789513627303473246306569296821940206327169920899126056858676050157970709879401676382841547670370472641246121654574434351445323990998284949786226517588133342691243236937102042108375092902315862343015017547424827270565114329173284233997536882171435732296136368566809983517122120147584078197042317358479935852953708808933337177026181572598419828276420787529721891868112174345789989157064889967826633637561513954192828984706886386706383697891341709952868592142921636452839518887748964620192978864192379699161612676785868717442853377212055279107344342918394037760034399005263428564030021671103622659524018904629180611742552801874045511172670094314949600097271936283228215032105191619679064753353729627891307719543793761441932967875496841368041316317098859781585225911550204242326649641453664958154036905222871182138983925510482738673612692019712252790015815363373977179398758039154387016154842958422430134218135162975601687855895475804724637987012524544254811681832512111725924822504867150977376285420631770150661702999553219253227697280948021593881785228273621551906461388271089408923792418953971654802051436392735307231227050078504572663385458167172063542549962506083007544264648239596318549621937126402507777249475065067815985465152343026745287719747094204807219905482670174552283813048563391723064727986641164056026081739770690371128765416432965166762134972543245964289235628747206006867766212375411137457621038946499985435376265093989161524081677385538304741893882081152978588319323961839028122208757580156315186846570143721117330366500196367583888375558299414145194741540225370651283409727037683155974008534011422699564272353127265299937166895170852178975053017244694823531965985150522421161074186568062192746046548709740715070878532004781228232710620095998343349485561340731441497411685639859405047599227534262943181191145801416572315036835517611449406396660591751259542272225560215349311219557112774556034154768522956633801381705877567322699766283835613125613882813755723429147853127864594730932391730741624168008043308813221806858136131525800409995799461626565521163476139638011652365743093728543958914933573859483062961810366676126995254573768408682169102696029072507025575832048524613251172977017371525713740669250434133025020639550929772037233650015717478656300399845372908523445864694564700861731946858978835537428220391253194976222534990684638436834054512240665714728652489453546511092317056579016122189786839622040193563305112102180736982673597816156655733132358862587343002510917635873561114638272514802710074588545811495257968626768729375970954188670793590934889109571415325746517634582487571967195933781554852973262112226053813623474247561161743743402959601206257517569585520950895423785469846779410486488108978012183428969507658481271344535043113012967857164389197506265527592453112076504630933630301262790923695275537933346257897929858397083558594552528089946359937608320789981587114330735995850692166977559605921660604150391749290994597600491606839950550891077913933408549289221782956442134630424992443213115229279870475555486946535802918554347908656761631590401066422789841544580355782034437132305669430642320168217215057992871740322057239624596968741063238356563686717244343357676114118632233974982287043547065186366453415958321479802020245749713027917803051976003777761287273132525514553151645771805171681420395523248538994877993231752518569127447345170963309638642700885271599317819535644170102506536739144767767640648202297320569931569547717218605689970646492585742594610579845310491238158549136999450520514260946965690878745101709295371410524083125293035241507082979278787026458590521846899757708105177136794908767630050853974934715575774028772913533005775934347361051234019783489390043246414565039359303024268785829565024380464113269116398416511736444404998846323695433190938118243016609295908013265162982134494175625264871079232541965203058883381067048134792242693248527915310118009826929929703310157738076125143248485552991855540420038238390070084587581473125287532200261575340146540389894187638567791744099497632145990677612223193828553515153698361547367687502819169246127305248736201343816838816353381895047730057237189648460233850335196167300433679473363197143796473831468025125783141525591321231807990562105653482945749569539686840562086674884914732809197155172770388258286828769902396692543288995922889174234215792763168133939066873239754264416397691507554607214453832549813267976026024267428608263287397617277534551419753530650138164069340519219312565313831661822938633294468728406825697860495381366442247938783799008859450402769471610289389955364418873943746434204583749595995780331945993915181342618461099493188995295529247935256474666568340264978791553607487143869429176976320884918607199170537656744110065839589677057178899834715695669640445114813053717503895366131180086887371390368342402106511155939183608771056109591778320910108978248786104791315577193445069080756649639546368134251721294721555419646284252735914655182867244815896196441769306712695570242996423363906992960496083213830914940175433740539577612436611906691498499227229279977775391424812377508253026012174345823453501525807172064219553572894626602288222500324213478492624706747694495434668641092244274797183663778274483130220019172306488725524014485681657965321787750439892748361064405952239484024620204309459266659800209442856753301731750866951842203056503081980457822671858150732548726996372533558424801360353565410707952968770097898682009697474640485435528395866499785565433735936931641834499538310433741424353356963410274949493098886566017758236923087884703815237106870244456511623462286135934121327848741595486252396597558322486124506480659178940562550409200230876568092425664147672247031139298768828898559825083440806168313490032636366795544809235895168883460880217012364959278210369131927419645532265522343302070767263168457556599858436982437140896142425809085900784592077371498386707915467722843019890475790074624813538696555252218936367608612759445475058726119843572099939021571766307470118287772486390478063494811677338237670096960331408222221217152131057058012076320413109889132602556180727991879954493601810266193369016613064418050741604326596461791041338068554790420717128394857201971513836745320130002714673721550565482868169273908874731262817548107579445952574351190306693410891107583609295334814982140249034673914638265324261970376989127258393771052886648447322337905479552745113652480403326729770406670201324697817211027734208817565512673974304197584045437424584678006254407174957488801154322686905680381809879976875909147968537898682222682853111823697345345451674557793820874472641824176221642199760425001734759549361490951694172384081398420055705560327419084965852819816132195718820988061096744898386644773708361362242578390236902351704444490407837717563456521679109692059313378476100371011230033388208065875845315187681310443135261501997471015979021093877526937921576192232803116807033424221489551800560658672778590191288334558058315979847954245442000288756270795866162204706605683220650936774194610874177253439544599861769593727872880803464947514961774164245255772488298423428367307843142302020295451495939237345976232655658733998580353706687507477254514941261244990547036845714898904439061945740205676117618977674349248180684491818773869840541904265093048047521349555551968340703901144754703715716546128572582557503787896271627122443999278130612264130309682591485040060484962497795496165463917074541274537247348968983804873055450842023509082921402432860257728376309509914757159674330677518825130020142771778173504939543406967701089862757685067475110770793949038787164026670587082702993833347373927746640176575467947383829793079660792818228156595685730826275257555114948043463140700791223504633790436315640060252514047492398959898213661394940545832569960440306810052243212101840848156724750428478006330764602607561265383952701277181524702325334024152884787434569143622600437765305468435775383451097458796685968305560646905557821915979552753261885033548920862175600802446427549501222748040784715535171121029055665811733946058161165053383068092435514756974263179250833314802264572712054421147324213036388538585861556642998215762706881277151639121962590205430973206160531556711508226169438919076453045681316105978300719383612741524086023226336787269670340297933320655734149935142292811867150206118246225224383792368818810740130408573150602204239762750054401860632306261002440298613759149344092557044968213442807787142529974025444013730772922775723497137801064291617230409703250817348334347843731885074971904571869307423694057333229691915004552736185443218866340498992168691958042522159298975496753226162798509682610592358334373579446156794519445549193545470803794382443429664937239734066999012808243880791241325757638470163337346382972253977233460655458107539985275944178487574525228769645753811643193382803800374233515744974259123934694009975135498565828206201655528570243961049221172897003357345687713974111235162227052365474525606495096521164818976544778478702086588332225216213942064541697823825608619530410398770253686638708387062433251140863820682041480741515184109181081776117973684374728927241605502383464960402792148658206649790414187063312177242431278564805792042539148754306474583136046311534654110608549503119553198769386855307387677924499670468335608348306412286128071006317145902520836760326448187590454005820206355739844701492296031573742239909825439226934764904844389286408463174900591823422479165342158547696768425157048340429783864347235121407805609286588126684488715274444088779986573441216948325586616578922521616832046755010084709034125712319868468134696089546316132653232199372119233712440700400076553887736457752300930199191079481605730121212471434178839403970837863509566913842465884452097651088637056720988731910432619207853286559625183090435525314748843567794945906569355168419838882084472904017606527186680464583604569132045857219605562424394313018283597181294505119025272291842493862249291862994055059438991209356520517285395688321209312311688511117759655616218341955571847523927960407538794590248636826085227034238480984971466888895203460225492364789350001896250856882231140252668373279521872213183179506202295804536138576835792324738768802734236384961409038341747741983915176439936675305931403767573392747520081526705343635335140851792664145106673906150973505289611288829447401637890748126185756981255297812580008130583140959439721851444243539864339875433863276710940859709773856216279677205509672805883290250896649963113888750482666924156413000495809785015114190899631722707164486339191711030751881006069554520621346666093759835383099445893380532642626383759044384836064584434464464537611264846700070329332024283166448619497612839853311393498812882488296573334850624077792194265980195814759674481129499364843657025258930447901008053839045719616146669875156218378161515546645469437435203544240024817342555357928512901864623704120790523054484272403326904369420498573982731963710803732014405695641551454705740411634393239844777949416078086784639248884826402377034224318653739918221836697782322180769306182681933618829997229733975772412610200497319357651261538052314641331945152041101709037975668350632746209348126766089295474445757621735894054021079828146981308088998798893285572129348549502400577175960444666806057241874963355324763661820755846747938556669414808951230168214200123301178127803490338859483797975266617320331259440152513573102171801269671070295599770787282177895386842844434827773876353876163169794835191422881461071438418152180757075916196299073428497640547905804325687634904585564789285892951445329413498119599573599223734228022399972120561742031151525224723810074652591558488053755953674113824031769414807983981729458260221722970269519178013917370873210530066745799486409578092020357235805988281829491852192528829913732187748067561846435322769175862628144349879674435322683472144759250897028492645475509640335875412791648560487548163542661335409269208899048443767441510266913932390547871535989532610439620852972610106502133177142563609601394156742532606707125192782364600754379566730397156163430102985906420093911923967944862501015047703995618064536437101409337209339427677358870890229831386880373227947484430682754370421101362019080829767986716315177417351643890512399920764940991332842354242926474691485613965072570590758294381895967923826849872087158327293011165237642169705920847792051610838339179489905636533984165203839486483656263063577196536673113138277590570241539486163408399485013401181533694171784926345767613009261901593927142993489054348310483045507768869653336530139366379097722110804481057305255729811482266815362606968169817369549082077917267618743277012377167663676872591944153122037006279238597664289321322150817592618271733929538401488298178843971183874991437693443339549059457097666787075137369432720175885604765735843195467879467869592341777386740682052442737653507625277195218452389277966015081179648485013170993435680799395301016238154948111198223244594272275286503425420290585933645361675382918029374134825726424555685057399441760892752226489386040735022459108591358791557038740133083959348741180713679902817634879304584236321730059979681545259790509832070977389698355301486333519602567150966784049988928044214775120769134677885069952044737037521530239755882341156503461877021668708996715315939247237457755225272611877960128020885060056583103186562243126312830311748746785029357095675593051124617514589047443577912990828206993752575141069023169574352318836669430778305937190154343781643604648774420579705322456132378965266059464726558528284877001648816321293754136493768085353352100353548573014336676421142999743801629408917479450014001252659887168217148834320367881271465201325677069459336321177053483625333551997402517917996037835514518644875659630401498896318696955915416902306760130057541134984630142713304862330320981854856189723122111336979271481413643159266758020697104967618852929216528054877108602502948483709705094993855118640627922674864682956808602723032279353977406966277328525727808473913565423494981306990729711290808112417166403035235891782313735629839893198175003892534556689908565236070467249061768871557785030956080085284744554851402029520776551553515868292259908936232218297710149403521025399521992858645677752798331033146433500834721791760407925744075237156517547912565119607452655635055414220261793401337357026940809340456379857606267125233368709354384228325674942034700984247235404995543335101876333878833006632917506416485062134440056420159671443907410509849752059332221762583177697337676924318786919917177217163660083469210279726880467500129544207837836800775012091627571623820775192281760621692498770318495113025711246826082078026483765995026503388009537115202698908715563459780937420534271932764746897051459386547352961168766961593418422239992361148484173811295489739626957432226549461534331980910420700093769233713341558366871822916728899416763614382696447742975667891138633882165348955682701737909897921789917354155714630332130122173473428910873997285523990199698647254971827152565208880527970623023956263104247284523157316268343296689403313102168403042427158622278957156286915323063787601396263232383926574198169980255849125296782371489902418670001406919857980834404173087186321646463370846492992149492299983523063703240206299752211737112454816523435136488455235980691788627349422601144548457505200732651988624971144938189812927758008832059497461450539797676373999626375991476902935370275182244882137455186255847407023012890199427231239445227710257736509239980392503954043985654971510135898720996090354195414710080515801128799435298810850508236377177377523482754950056043392201095164868449893792450246340810103485930423247286851983832742800748422683452224711451406553284100384359846666224150587614016844468863018164065978888390701286986518312446261485384738085144010132269428641580495430942775071871147081447499172308285646043316564168419454989657479206535537747592961460762539339500126482750798110921221038731295355309775656465440369113190163816945787505762873855199860386373446337236215584746912596783564117005168346025845297525728249926151776480132735093277973517021108558060775008471830689121071820437829019506815667603565131755148107641594246419453027818904348451887091577640007708422686003289803698213155880163165978708629634914957304014478658318788155510949256085523760257849912715640643464886259870448774020944622998407133898548570035951882736168520912057338778408193047905921954840798758856034693240520903657642489215603446304716838099283583846561097806890164578715926528280076957039226858595002478875952343565809228617869029875923155983926204604206439821013528729193291144475605297127627570567804292527803997897773450486534945920083726847006539379011276079220901933591324688211079124998169572972629070730375549493633793598499225747137307143843799552905278808936277772092499597082395870781580563159853333184007652275618118330176413780819708397866659623623171484279674675044375030310679477542885843715623750886687970612950446041400524417354967085969736805770360566069193148229337294083921418338947695750831992318195828154665473063414901790682232620509799814231942843696033116871638233978792484385254545748134649456824115407394736523980154804262002869019283499967076004435339769378145154982953869795312404893049892013647071461115721254308455776972547098909419823188869778153606597131717333684913246655358866478744223331903560505269439602535488409522726348777977214069131579560812073633259342316066321821451352489168504487406518361694476120854197854590961018772777852300604661175793601588099457441380625920700828379474796660074574501550942381043684861038962262526692833260550463786987093366506845566186859605734107313493989056060691406319100736750014203124647131285960849962840710418494253090505243149459657324689105699705458698365624657791305999041211228278015081635796017904757204075568394067532492778113254733028635788595743130082031288827922492910896333904299362462983999451975499283330739483338707443979731423968342860076688047416643266266475777266929797939627630976275282340504843185780154391559391782142822977921726687699197689804473277700730865980712552841684477967783769056119777672022996421517125439891604618717530381531359790633157008366228684101932612921710610087200983967685153676467391676126267077702538098224459877461981658191846227626580177667657904437315890694394592366312695503394261282962533492669349357207994711481977541845273717485863336272243072938163702046057926821764159355984174010100274707432798140299388055370641557853614488763005976861470028223983780598281077132188961594881877969235467043874044326784279050973558076235986607342021970510208813568391843585684983555149431036367031285928127136098691345686101689585419330613491340071945481886700750831645373343761779654303540564810064044299465791739657201149484098503248508216856045035727134886809310538111201547429235825297401517693233533094770655713025254448320436564215397414337498473441711886322670596091855244896714894762042417035666334370853316869187768318573670826165428986490618698349301730740588749309142763457741933336141976111567911038770954424828953410661607503764126562293796788228688350098723691683833953196004354063577813090632612088595289859586097074098265521926882405654502596320488193537078182335089398608892436329394196187744201343265433099925598520566717764014360727913090920570775608439257911766527630625683109006486512613959910093403360102428745478595841610603631740158475413469246009756331184121494873616203759687567887036630510388681773194866304566337893556499652938732098737591045212506734999654308654650450831022669104841716149892776226101582294602014234882205334400236102414672108312669594553594530983305529956146878474879250526802002477653745969742835377364904867619299313470397279467773963227362511865557857699736497901707074284310598635578968121482354746433446840033869097961095621175086493470481276160363386918308424105041711394391994140817933805606173697406819362721290059757708515248064803162431618964701304160182637788130350810646744932597692560467259117689687866914003535789740112076610403717366257718238607768162062063421700461926599493497544231290256188224208416902041383400015082933195747890543361869062768055578944208658322383758771324261373291094054018348080741243217834194296376910202136494112365362850799731816165398581164619184846024898495591035061654428864630818945938365341394818485853533130593199574741182379612030985756019314367531641114803084279459881535801751897049552866734467369584898401854527035585258097084596150082931704646103604716604243279284068833107941085355910624089455902741317370403846274961062639731216632917595987245980643210329108550498034844807277708234067751792395550804787779850155825077457994686606677909800994353032575382407307480919384259323586716132499943880471672377865190118355081054322424478900946828034311111412629719962678226883798372122291150127247705375556939646779145930768132864751757088622039338726101010563139084479868219705096348320767859494996095966544548363430237291216848826826039579050066329570628453292678127892868148537611567474316018602898480470907015994369339823855266216295149479510583004937967603942079022386393824794861927116252168913150921119652531770588563745804441416265987721907582084139757146603074626060722774784782513169321179245589915513802223788187913343186111152001737893550006919249882392282788189187757108403597366699232285205546119469950331857403402019530281979221215495731773827100312061111830587441324452354660739181564505674675343044251205095923187111823390058327993051668434149482238505162253478651947449152642280426018134092706848296875135189090969935045295212000023799757650031873016157918814772176879339412401682517288716873811894798677735968255039721365597604218316382097296820846247343893638726561807715244839854502715734626301053727953164012570756977494076857472286553297445964338342893945314434929071677175050234122512064798280360497687867268295472703411971941005808751131234036430627747414035178225441348198101230464855069087175114586449226403819014275161998784844769431743212831306345557485408419473397514923741403713626156546850186673840748222296236241968226344219111876359508864490253658456125421419181445952563605963030853967071608031609838444521208648505590154160047552910800563775718744752500836421420930890920480470726861604258755733470666386323224219158312620487789243846241236641524841454139917531485574120824243298869605843621564581470962899943394137546334993866165802553405589529554961173127000002461323794935429268777753716551187575672140846237317026505131460297477401336660316898691008092940477356100278208878671407866791972818349567027600610796460146642205165732601610695907294959512586925696250378953925433933514248414364374030263036957679541758523018679251776525823524276773063557364062125026255788489960017921085502742341688252795351526704516957829138051307205246885165997598897031608755908771584470699575044964413675985914909450695345613165705581729590908300944785649211518665161754083097326733343047587492289645986015093988364560935301132614941155161617371236741165994093726391811097193986013466152436042181729080534240727876238100116437587670970246967175700589641804507679686719242113218508133901953798250089530482870495382678075706980815665033917054915434584151774678943817356276044317640581635542123694863299683886506111558859581685605341475248443348428703373097142699260072090930293268666727679888892717821409278471623772761972198806475391139132523259376397805613435366345641461929156642081694301714638884687825775772467429523563970966005454331738049444062081846010876634646058861795691227398383561386299111840051439080724815088251577818413689599719031460699385757258055167059530419120325794468939116680864804538415672401098741102870629666864767582668916370086286152116161980687160726452891584908553141633238198370028073391790012407294782350626634027737278528779884835760566330328044448519279125140905813236266680494540205642868548310585360516078180142226347051557190200175667719757678874631408073193311378729178282691238271245744714652357662817574236263407942475120116647276042410668485937963033346627961473361400918650392916790748875409705944306258285669751322214160669651564775494146003530517310646167341320337617495362033568308223316426419255036698669056508131016533528009211279539187714596027242385755679627590781067697599964932920060779828339744687817944400504183704114052189761036662321897804731483618928166887228202820744896339480356788970112252288330248241181981431303964369098104227258447593975159712652702070674548095789075208328761438324075668731057189997430065236358491179554671521133997356417256039373374705243464759072799290548005307456819105938378295174143728628005072843131380408251538908137769175311962856697823182806221269023886860295260232464165711509185044649331144487292373950204067091305566363246039751401913750738278971041483201547321747283134182331393712581377436940719491507822063513187196304555656163223653515108635884770814618088246856032159034139923164333401959930014413628004715194611509164699482216168568063165815936401334571268439237718924835955482820942353049818071459944507214817362263188568245667191078168768848267653441712108525970948915147029737587834517853855308680934015112739561384877288985515989754962517464919918703233330538242540146521800336121951911417805795820120092292005987846116909278864014615841172550453441674432692385238442619875882890687445032507736573740120150240260097029542580048837948270742851064732326245154148289184126631290324033510993350789301473866729933637947851791051957213339873264895269089990942322962899307478687100239185261154176800497278991268911779701572301183041516489807151337080119649287976672875677103362689697097771459223342872322602457787891695880594202686778504983521489516957873010138527378421098064785000033966651253077508319574133203945712775938828984933128709345245237714145058224951906979877719409802932128813060791430654725888424601548751567918642301259740959227569031184531244613962485538381883931684876244960969068979656767674688227999261006284067403395736838918132808851358028333685415237842502527803576503287976312970269138954631826291075532035569378478327447241006945386644675419426138993355846258212678181556407840884167545905955558230035267895740440747793445759744393476151204538881623187919987981737261938888302945495968833844168673492548934910805208807227804617485501671353906939092027087011985766955323117136583438463639858953398851526930930075055155806691806505732881322864532812376775397525206785954382289241796152628284397597880290043040057241830430804992535941884239049372190190690327394497877135343627539065539752841768784018872296376092351825623026038293075744893983781694320841250311695757087616678737934174699621445082354898275615498047211048782855886663475405128065188263325488959213435666263491150219918805083616701795425512185774126549743638803655894855930261882978340184687367686682387469776152944455814457063675577431559993216413762707756255959650059333017644701235155159149169238587554412875405729137837625082755535004910224316957139628462676772853365545000953042691718537368881369209662183704612427741080017599638537351145941210214553965496868254410732684933243003089297276248305926431669015911604362453993262218799932731944459679396481520451803055961635116839349952305496902907584071411622648064008729291507534198532621562023115286149229254228752089562788146730266959950061470207977846879814741516453409795769586566458685987269344082901664585098725998506192682881042054062399664816912479635474720209987840413487627167628581633581975890986485328699157572939839041317110802527977123409339204447851994219806347391767337751337697465672486184153015461725973770715436081388181724585255389365501732171240053954230214074280661601269671572115593763089835925103667871689350393463646176075678440901088090365719503571132660270004796065442034660085097279037928549691457074778050102272319691031652963945067158938972504650981216992189795485893213008452114313022544111295037602497647879161541844612150376891717252798981570903744913794692918691935743051627427293145937212595301897353574439086185991891193635623175380943016480263694815906759925869709868004005432973875474497490845669784972875465732220220859601004701059411113781486714344291130588295686455333611893495210230279361118633486645498389158868801140768104932294610986653441793738972383850619795044855083521686409341935626449170430593941267072090473334769795896373133521685895573389449315548762920661470272583743509631598987631874438889878787796549502884767851979169854842431496679092748081447015228287384528624145272827078777375517265774771615196485531941116205796213406739154017694803553365676913057893899022415390887546208165253657055602926682731424464782071094240112641464410899380065869951656564853662753252550228000837439107780498669530731738336061544423836865043755727456401696953917100227290550949270966752345572340941515214074462142862838320460160751705637847203702864035114973239193767470730824803984589443226130892967216165491406095385181900935536558493279217556370182365570648024726071038955690893974450466595133634711742217965072411358546845416986066719350008346881907210213247379311872915259212429890266760815859336415479959236655694030293485380664277739904695956083393403831312509771744759007208186509610279859831898378135743804139223426390679086939041029934013110736434494687169647290637387968964147891603392081896857411480701321411843565277995195808799550042251119768172255643030688958395219126743906789680348385049862008170261316359027926527206735077756476125089784722583953212656700218811823130813324408411631783467586536227632283218402408616455135711288625091865980169791764030247980740536967273037292905834998834542468999300490745802121854619154421184345324051433252632176512186060132522717743808565788930972194130772336056912633238513151348597155830912837354777471738540345816986338157983696119630761416531689166788283662308563849528166659169688234720722060735726703183217346288413060525951027942114673108661232384685432310327388877129631289865948326562963684446822462391966403204643197573041214382437878042777820497264711330627645033310830605734042405159031176623172798794969056349092946604541654956537686691794391385220623370274793630600304888637357045269097874636536315592074727208302374936025379139929841572902697332041933432691357848834357875591057783860573651774158239961192076220331644870811092673282841417068727349491684891210253347394279501949498448282938866469990880075072183859951691792779816728529478681090643708610303972153687202320704761936097173202599235006354506906578147801802945295398527022971863715214424967033774211234219188815874976260712458328074413679276921978262046913500946201813840860423442262391826603345665981201969322633857255135340993497215964136442513419968005293729734776190737393172689124328399479567026025835817023758751154923921124173570119830447012931593654853902068950221210619812260984394445541675220258086231816906012886349209923770708433438914842343487932333950146448809617656463183756813286878230842823318054730306911503639554491466379858818340014353880442204100110687432645284432606166565644534613667571323152367849168468487547231300889561828654097279571340786204975927495655636852844252167260768923103971343208861368753370600704486788789977572103581665219446565069390227970591001548600237583280672011453626477670727861036131251518553490249731257269102222970851520754332385668788909868274542059766067243526533019527967072715157172283685192871703859842614188232449815647662686936360313748260126973911384431273899030540493475126664873271887308298011194606635467811312877152873951570166751133150961962163821661107156895100062422287079415819764739085868715868737900669831862445804126228768812797018601570647268165311383025814161832416962813571862524561424128155083766479739982570779690063417007025013761041889971170772826782872790676804566793861847045800813492884620140160637631932879196661567002717899853564447506475282423743467977005474719740033293749661824677025769819053548248153417170726914228156948958072983324735133919754679098132610412966895646367365645490992299400722013294352222245328292269367174721794316114833748794287361829827913565479622762056458195525373930068358566335143999994653337004985147245372251079504773061610470933291830864587789231089942899950940094664008678341951130096724153026328021484122680585463191697887787479228519054336946164335020959682379375746130164897203016767529342355098746721615246748467564972994659633528798911526908943527743279678303151879723518524153253694093017516727562775471005923262761053989024969001112839594497317886720042472474762481882759325902046748957980991150115230631912409286149575080416688979140205092438565315110564363794085240461137480605867784296212536911548107077775240460410068285891302212713452655522872811607446559425142440904584076694992144980833162554809831660752583222491369543424985677528672348624613944795054578041768960397079474885427021567911193017531433708270204264634982209532725423354173727733285792237274353542506865277761606723404809873482906764729958118254744516248423239307858845265169545208300779769201919347951839370710668903362231106583279844236297887851732738480981148562828535955290756986649475259888291111780550739224901014887818766479052394268916460843895026689175956951057299495142096875212414316475530434003188968489440701217373096741272631970523555100088830574111366483247025239966437250487826706046715424239939563420366605407886989734363927188049073888667790411661618051790394374469040726768181463409478991474471686368961736439888290549053056402555933651093246963049929371534880033198984687170376174240304077093428730150279664469556066776095759702034903915994343237563126642892334055861046523745943252198619404955192795921787054195097248144496069421845357498593978340849715427780655420619768488443248883845339818799201037335937394116334621021462468328309242639438449407040928063955437354491398845785470061144005477619005765508746253715269283603128193452732400119677659044014445688568098461229199778612299758547102000638346349197952199113247411124873542102660796854743882934318481496069819417368150225717567056657029574088466064062763559935893914975506630600278888451449138289467018250228725661396648142936544411755867006061597334788290139863230081457564435689079692635004012098680046384721074398920531809581876147057195911512858700574844288751043509855459534343223424573756706184731593848955761849215522011356332279659769062455110426445417061113630417525754091454418035777787564876915902474711515431455616662717422945144899423791195192200252735304808249713341013913962353176147017747948043731585919527214089854913498808618991954021162646089656948138242476899350635878379237560264031076884197374116602244411692571517987802755296371604862408934909624666176225790419094288535629175064414932362102353332979530209779641772050559639845476182683772757048395476673964147529552740022630940758792743964148348523155331332438139684374357390371091115630323117363268008043455961432606578360752564673879308833191066671782759734837617654708390498414869328928248775392516175417334601076072052691147923399251881636593840446192163245551166400801526184270258105192594002231776576603157834056191054979372436901542243565909816679421336812139542334422803095018173802496539663191295771969735092655827581600141158225100083017363925189560536131058542915833881081929266555062022014621836632221952569657118943855559655548984116442421819022801734111006179428858960832325427344773445484221616192337529076706354380336084172175258221212649076662046033645189854561549217655984593037564566405762289371209216617429099682932383902548520804219902382397845202313689011064229873480001228705492789384228613756807423473110686267438646663332274224822219565234717744310937539457280808830486005614596968598228835383449468964576719153454206065925193934466835020143587852014427893470195742141855562226906774601119667178853109920483349983270284444808383451734321809787573893921063310239850253503021618404870139054353038222541203411806036757454801548433982810526686981776101672145392230518525163153624923955509744921750680678986518542209036972336561503186860391331487580057902582114017956854820399837961775174373440602440407001420216565443650508797082991311323449979634368197109754115244132918965284677860291227058483781593826948166081286774023688548145692717342116637624408567932313827629920930137796317533151329547041750758105004589374714903262475830502888366008049147005463007937214055723600094816322391095374637165927465696079998676144053887063124732835651696745888814181933817783429534750148746927948866879983114707573318250287443503544613556072546619331756412207355075692981247672021001002260995291043552240429292110124662929679756022726233991257047531171286018150788242097269930936158842164519508785959984814996914644635266993586841083927293229577631321824962434593528085812702957888854448032012073109328164686963733584698238112942977868320109153916239402585988073560116541942057889735478938895521687223200342812776993224408718197693575321492859879214864435330930315913771247063966354506729905525818621598865522259413199874758889608197375652123551044598921689525911992339099000173853548530073996084300097524599041427845497307730240311036021034575463935807227874974943622156985347767784612465013155246852072909023078318313539882573524601585364842404377687547288496781906195324289250390296285736258856816853765993110436894040060363250888157250740820278398440700070276015249332512940533918497811459357973673922020680748052001058624310220435141242488966480574279823539535802300131786727548637739879380049397467488902821133138601806765177443280077962821525541166315209244687659068341102499214815652681317105301420519210246450471625527019841279469464959043932473250225023173108945753332222405880166200378016985485581869129202842954304269621150607245519546642086791621434442037261042855880086424921628779355336337954204072193878465037563570062955035857691242296663420103858520050092833877887399450457658616123696351223503169868585007005158103079239976668397858360412405097157190486330522216140279766116239821472094728422646501160792600853337754455448543830965884821676930519236485289574840632686321921933362741021338510950118316787652298014113111631081428670210158595561829477872154909697860308380314319359688609655950476328364523491043301644813036394020132536702272588910973724747733784260043456114560793685641067547056731453348493367792040547530244219894060112827216219655286037403491502653975115665974403138932417121560379600075787034717018005374625256581217837116918661075684610773715431249627840077452291983099682768646926108026445390845744704894768289275933196108336658831805778353514065786724852700116629780114567906481809559845798863169901692857159367332288096469467206130877632457597338171751435796286250373967384793622974649946288070132749448232096520138919670546567139641326703587864842641425957904579546826983477328810684784113756891097910359141926877895037351756474405767199148766708139081896460241076237988941722043604234640880602734747493588338655851269063094474841965084722323190932062599427092796982083992482599561888234204600401874140890493162878059646906542363712441196915137875409612658738672395363816280823139668004992652033027969529489295709520790966949562207501709887595091503102374488162087678733166985676235090998414576198820561377518079160440178110425554202112797406523775435336992396436746916948131173677033488281422806069409777999807572596030989493879443194728093031184048632137018391523420315637457911713526730069616921999326423689756216315240700306895680505001285775738706374479841712164093438158049737335253129316321628256361884681741687798400287391809039587542818229334001564715953947778239943003053558020394097018903923738074295178706995596017114699342272924371703951393175015294312452164932986911749777788832193873670930345325468948972157670896077362958134222782752205294851627442519531877492226471766596931346250753569997471491157045926960714712048301234849081209374495321260470016613918644629630982459537484037303414048949370933576981638637667334406844767653565024373164458550527804171961516508029139644446790858127400158354956353233292575907870504361017715077249288430058833750747792825521783689438445912260153314890212414173609774820299677025602170571365033462021884125312794090168780513681892556243113726508059142285530413903236771162633163251899756701693919411039323357875365713275016059353010663813397040572908766369914363185488947635002111674467874144389307392770721609131811195013530064787537869228657062762028431641292375468509188970452452055273885584430071095296679157626963557596389755373553633796166049553896493890762506043016276616732335786035310800110291294676413074244961679421410587970590083462705404726511172907924206335580590150428098748489040153244482439401360828728323332906547350901320272719274081412215255625091089555391947123607289380250906911022828228254789762511861699659245373801851893907519859355089506095326832110189914281414755018377202683791954684082669053723054132863255523832876553897609748023857714727891758025585126469949970714037341815562815692955838515573359589665865491247669981310424093164686846438738366417316538670659927780679406437987474764448588979506715285453641722380616659652408403603199079782775016032641318895688044841107191619454683349424914685018200764678544457878852415737140775338610314330485792800493354275045208679921425193225306893811721538015403157286104232890885413201071292812457422747870045787463661325254979273981943716789780682152760725115053886904032783087603109706584426042146826420128759780728209841800843535863011096874949483598052291752147913397116335007746480770435833580404261404751409547593569750272068428327662415829818543173650640048679963621430431757059445955802536742639975817610231470080536869462005524856784607989232283136304055340060225084358231452161749594701961801317541569642359575810488502807543594980813835698561947271341871208257105927229890419281542141878488823450063199662015526266748579463490842398511742702278126646952701482042191583643094796744722836641646133755202816729717494403372904333993053584780661510284173090560347885413625482043555128135186070776436298255249541080436409366149482304001379788950695234654099315518614519450905141285895139934271060691935296798408481993081925925692482422303740880473480153821538238344126720335302693328941106563419857575720535833112919846240581607189514139181895998474184720297669614550198704327144392266186911787138090811282104221223091409214220821006034543309853392530946443579675790675702117701141844965583944284245671198879293225179373513930866037342953874248673884020405956079891532262450163081831323098351655100124898378412787783788200284206371799665821443783792556309336348379186915973465535582051238727187451552633438601977708170620865094722065040283645589987051226680846199899317382183335347545847372541110330870192314118247135711034053093090366170631829827155019367513907272445401400796063002105898630688332945919078480021664882475173205104578391760995315941181072568080912554718186834579999384108546734683118655902377491838383448024813636056628104263256097251413855377088420263818721688321830791760522994505446408730827648718619757317274630085022453410641005687954715310803620968905046919795436593104489728208239920352833354962759413961410112526073999527873981808940250070587911141731717846298514561228198398247116930176371642259013237756960144808245564494797590382611419801090095847944044335944292746046079687834178566487945383469559352731282931019630317656118622010484051676615145580612989364778609733288117059742292836135318619166315400096998570836279867924305517762566341599896302504420366404514576459676492986836031480955513460724057356670661087067924670839474382813523787706507423711987631766372684007169689515317425374712859682007784218518980601296542435449531056165276157932297829810130151118524432354526049960867735387102745885004390484323877288812550113048199358273065386408800990308661689508234811158821481708890898756439338916520367244380485745496642940740109623311456292705509988092664285415970276847247180313622520892020443937415434697126405604982853232945392977484134908579862652784896949318641004102344836098492621719259617717448587653813344835541892127469020973927902106125887625891797387115810751206003020174273261881360173412270066249258469679222015673912890583238159317407148550006091494592417020757189175149622224256070545621802922375864333454053403008893135187447342832919574707260887978470312500677590365690942553631531177725867214847932018537102241519468758382190604607397579004423152425138634653570430303476156109245894750400619188049823413806358198856866979369038439172515989375210753600126054654381746234504847551002323778031033192318930240250939269555506498758713960232095561879116995067185657306402235500461118206628959969317255763089199872964904332683969777813724834872481623086141175378239228455507290099919802136716655369366531935213225229423399023404743833689734109124985684883484293142513803024498212124417336518231004460481233221646150928326278597229638921803828075098228066971094684067493755436287225767426989844016964840559546089286487184699999973775514444406722792140208301385920752503737028326867939612973636047958602803623036375838076953776220214843444865865486525780410545259016500626248969102687535800358654644021280905178853299067282091416832833962025710203655644207380795283683077311809041844790618834510621244769422257369821746023529550457623985859421237262501291775712960230764726996694278963256362072143553952315465409836378188751790364337888859624838128463201220851730899620060857191371188052026709531119337486438109213661234215576233559810849917304344742990118815684455688638901835325960626412131470550037679218202087320621544038800598460056349864181317690395960303726489408742307956031061269406596367637390930095338946132546648504635625956555221522265126673401544267973200624418455305844348992224809415775318463800595581320274755151849266069009324192943375995295530624767273034593703478617012571792775079604923763484662399163583140795458662018453521388763098969543240089722446343243568893092062538428851379070682796764974917062657676352838400838362817778264189231669901502483513688436122849214078880456597542057855571369116426671964450216385957324327220857640678783417250928330648582688774216284596446826759689579537165697181754497714074082231619938632023690958503179245997335975586061170625466294532503258996115049405500737448467651491114159249335001461762620056222495378181127228280878578454076960527979062357406569540550140655558343506479735432787382349540719661542543778092708939046251223318431305057478515092050065652685990387630910052559032069247414356933966733822325532558302468394839236843699774193454388351868386676423353032508630469591343660098875684213139111167782116590922211950309198019350101846660902188779193083177567620907476074158667209955030767779126600470797946981408710807389815213935705504526901416174414851182149146791793570306980637016577698650063231949980563927749763778820906246491857226905244457801349330717082649538561067828451403394101043614079369334815268343881656169741962714805021263369010616551992188437808073231800488499908549522695531105040143525891927013608872953562311723044878180644107064402146037965550676166782540136674009813509281584532879772646048964309091924091292168773318139494707085804818722843257339690095597163402892617257390770419994489640629930995288916830180351489097525244215769468760378225210988954724135490625936198210817642651083290726636528471787425097341712218471973244855432201454819774721923407463978779898136608312705554657625226619440165972660625328695428930590135352096488112413056545804002365184976431181017309569784424981039494449940095281174476580003051476361237278612316433280325208066413201756964363527706909020576651546875836538950080375495476051909709620453052491233610822645679313120764777635548757756641032066171334535965873301899877208215903368364616454435560211761997908429731563333379566583691650130380851481266819950766900694184400468176656348654037467153750765247577432677197975509277518396633539584900548498356416537409670153230355014625349089883846223819278724672395104692094795071144025164326097289756166312683525747207172328624553008012297961600135253392800341704693245357153345575317357375786954442287500303885916785047468225106194067003106012925250159744211880119068560617201487192000193298367064490702079387496116625982030681632158722631031277261049227105489695229572292456304923381252067430423895625556671779697673582912188073982518863155168760531524059918586028059058441166975872371934587336689518393348015397132339233516728727273750896227612411239985084742339898495503043982658170160673598727412614742639927673362011268009971671607021867804791348976537050515405255263780355003594851281061742070220010292733063771041835973201334921873879844431504265393119653029374816904115134809392966232389283280338363711973546992870863190860079336543932067372820618820354655449356015087825388539080152764789436693296565156640564863663631709337962124296705540983801177992050202231136563923167052857748001613726602558720807140992211420686001340167292558073239912019891783411902359365694038763814744411636803415887774810490438634775121474974795775303205379109399754315045655038036428961872680847932805693895898999893108501043444115554574049743489793984624518215621776664309424215113094529088080488597428139397550686687123153751836961131579930767051234690084340702607201201261646318461171622757967819506990476324170142560538718935307817423808507324838837958620650397553149523196492214319416784459956704277923712073670772479229904286046086585902969154603936175952930896158021841846016512491712898540852286326599076379694689618003082991747314960863229453953970120851344894475452651252049465945808973086786046353771909145865883693411237628536294098191121041517426835826212507416187804074318111926166000048229187669161579533673892619161658775141694419852801835085340827717249090879051748782121488750970775861244774438795031329607530494620497198188683936845158252570919817363158554634748974317804186858649549318105202283754241969932246069778800481529304171157002230078402072015677670730422674204152592399602812478364558151222743668814564922775045231096478591123968030891291918432536508390775892017945443365258740615435475364418638670071066051360330673695787738520707699761954489586626318954617416799792000532560128710199380187810791990987024196558616947788543918590547805199295900808812766879642435653870826028316706137693534521966267323006198992207556140767354624924120578021422524082457540732549061989775218497382816797968367895916450222078644556370266426916926588262188549820797918463969435568150182004506159373684557311255893973484171949767017612990696617604228798166026636906354013239197931245976975175683027000217654503840059577060389663934557607298737693251688646621110888513546439363176511170381656071599760372165480426307458563053979404152825558790059335792837828488266097592760462461448687930657593785312892701736823001924349922612087404079905899219425403523947839657129804200144778946023401600979063575787363685522573400347766866496571650490082431935450291132382185767675988897894054794099033583078003757955264511326710351590332280504062063803539694855952293149183068507888291732679961416159331941550530101788389842784908706332271525506099943891124468015428732922502540672490011401577580145558087518294086857851489245820525153027459432289949766963710605715732342288102032813553161913991263301629156846152757815590965125594321531555280441298668016574568288208928712328946721006402303595353959506184452727393506025394449997566063495794201682469779238912801049707372141343741014400184060889648181084467638708856828570715441487627279979376217886920547194424922655805663484049378743146689342617098085681893524807346210141237806544037503773327142663579187452104302205928202749755669644510922245550521719092589286715475435566061788927306645100158339959755235249116996764124137823556699417293417319565044148101266345660983372027594324265905822012655287509989149357049169399903921052185219764949864653269783744038668222401961249944636826664629774507309090650854607070108272178617679086521323601667714400442794030350772253739493090700106334858638260051621045454735348369999021226888091692038312632655505863986642489470090219288378977573215753954273311536583995439334089705956518002168949755171103237025519900663961206741713989380734030672308818158348681800116652678921205277906544826930272941206966838071941070741483084890322894856307980912335316983106658487569009423607841369380812886632632190188901657762328968305742707314252599891088474267482967781081913598429834425763801115719310450074249789609701383520597873596462315790064865835602114647198593794883166708911387436419874793639242246478092833888139333524923606465676271676640471139359111793073288800896391934599824833433756491148194171920072637177780204552975755604952537793817129239670873080386257582292001838459127953198830712808139868352258151155902960173165824633467906484989178433099584768334952500260533946614597053448868963096909796813855356625149916198122601595825146204187195371860696946083596898912954544892557500366255296848836311123491273551521063270866327839318933595957047305197551378684580630236261225151814961548936299740916714693811840850292177946231515364596683453254214631294547205026397309187483397060053357330713307494823221300966166813889599510450210869055937950750516702881807205912520837496991571405241242705126994345157389595306490667556680061982923264838245532324495044865323796660653100421438385699613341939667581550117152707469029120534933571995587490501939495814648448616739753640785179528350812083238989723087395978049014256306813207535637529916452334633122093104014873563945335580131049956908806990818649989728910386495447326434740609224767469317521831238690790584005177813120259965392164360380767909491597640958239860014745309104187607621957779921153081949888763554434646483581731016838888038183338435079363353533844080906804722157650450421289742079088117728420828872757123552050053412472734527070021170571097365779098878185915663720512215566190079387496793232576342224996524786527327098017946360778001929833593805516828079059930209947796182474056000817527033415462635238742205321659149951735915195733548827859864246272154873015336011089156209650542615615019796534309204256113221837280174742016692943293849801535981384217180159304090469579937940766126823714269737189196934385533693274592324843781355835396185911425592675334385803718869486761018227138596774211946182552094186398797741398784953553941302610446401259033540025170776635390739070149690890007413877938236619395949440235356641129598330734375426103370335911887868064218917656161175802988310721938181422388262668460703366193699418955078149832771300507437952338406713893734433017524888919814379974013916634080433367638588438745304350587002169147197483985429011579980145726531053451880732688627640142652647448009187518194763404945122747380524091945176444124843047625442986807190445424460162198723944649378962967417384188759491443091336699533887805985070545603062202107118883987845823402578136939404547314951048276112210905478894009579815981078148935767198337158152763020530712824829168420219559457660368489706555993536640483309237047521743521218141128109435089453264390683005295080207751768235209013841655301815895471816186887936107304590320176653211358144388574941669325349513019228096231517530573233655412609866489197857306249243516539435359209241115215639349813114840546547207343185492443463455183735497995399325598182054292056326506321599954959742756831204794913575971391775402475388312103624107795388931029958898208848480063980769719873178068937726337940541088437578328048541108764647455461542923853372940855834911694423144789546457498560461995820626311382107785475770762164930241342022986626978646128824774250360740252670286948644004434875900598785807392413947379402693154011629677089093439274139076551175286265223268667313303339673634216045748134634315819190267233950724571667289697897662089032490640939780868337408723149434297630745638305359898652001813280432946596368074584329905930375028917342386374081709504510893588656892904497592019741951435186720197841099167273482190700128755052393569999017723139677187832701132747280590748553726084051139637205803451538715243294184378656949746674260443623725396191182093814584186663513125622580667414173844538886495418134649445472709611029452183668064617735892241613178289376651859146332033737256188039143879323183082131666931695949335914276626780499134508316337197988437800970408008240143530501770373208883725446169342393061635041767737112584461942256387959851166917626698584536989226623902123756247913964660413284427075631715216685766208738630468636786485243850365763659967131284075908846371801347024667282436780991659355083840407540123216062288592175151685407276789971662159797785997427997111614628445179330986475148990689719972507545722802087055110299796346291208857014228839169411136063330465938725608306032794317553556566954793926200498127631023135299244716978629415460372560369931798605966899569833581258025509279995462799502807804049914036852193565406135829327567331988917593346566693488282205600564433677357247031770713231314780358188611920657268751486248862067114467545241978772018572436832447051717910796243080549446347944625785730163559006567215409108599286539288981151134267949884161324937061179427758739023471379428102230573763375744424624752002310774658076467104300004890995071605919406751894462303187216594234002716339007268366027994866289520898845955028979846758750536072979394654247183498367652535535361728933590954015903140053360097504904522252022100247045491832772604379143052711943767921639538480307625555824644678658679391946290039416248904152537563515821695266441419555019596652859332954358633442120252949595763841135844179299230382995067219382864415084906317124247324545843050037811130856623838201546195540969206077909612015060624123828124103991312285917087500514419970748517369107149942579587163264654632826738828251844394242628969955567989046437341973032030630834804195740801810955584971628798245856825497245542073229687401454139094678350151130541737964668272695227417917460697677998043606523583178601555505728360697883141899194056985684186912045486842245231222736002531640361388467495960304843796112174575838244809044985434937672728994819824434213986073845507493244966591240647049995455584545745515497982113317756940289678205152553689824488404875506901196321511002487543856562766701347416596471176905504749881374429362959952171414959025992526679544496655529768703755835849574620703658964711635398573128061362231745025590477802058150843223637286359892846287784766862729499557754711791630537260322527112246774321355893768402884783272108653732447193603284805845505312235648368276211999331230587070091118137175990036719592564607647279336236236536985791197715259188325576996044532965920844837759392497216439292226259877479734262880567367215992405541259581200514030925782019524192565185115454460205513312115497533513561203927202125703398715961140060762196524167057020704702268417974987917595779856507816871548671485578340175206728455442094424899999211207024671366502060269321259474815096238727401778491917123205886133653462059781712703010783742482442083422334757717136466781439122888053373409326684665044436439033674497974212234353587492169322312338505075332129382508503474907441134632878625738632279027620747197007505765471735847451136593881108341540356924162727925308786867267051436108407639422669938130548549178398530470339483649978709593350342736476893023287578315939352854067994669142165958266202526823939971443210198746289679509228572627208160346041627712980591124476922871361956691726000807520073679172199667038723637755356700593402115618721207894455791691136405007589905566667275241760849139271344852409349044053718310673706849504931601775436819834258727291107484027483166833283314547869402226515693438319647837574480756412180039820338993034190501425009607641738653546523522149884051500298118800946489883152966752645138145915095472412012445927753161853418731099339130758357523887305758982477964143091087911674964485244633700941550159250268157055797797963063826422194795408246173810393998039485754709683278924288552244360643969091629114651204607437405310232183825746496945464904762949840579988752229691026320975735352258224891794219180078883848393452748695712050153762634218102946202743897607588523074298659954980029265302274336491564231138860189970199902681344758130623698839058371156047476178859519959686466687494952728079838799227695748169080206617795826956150176896202104669702681336649760606210544900119613404546518289785953764695489274004207841147190464964789104089576904509330475982207701583198290362925702138541749602680711451880395082479986013241822095958763685992806578662374666345934749392191204689623275446973670633449096173959898958206250712311804303202051788672763407063239950393151072818096030623733186661599465737318462336109788104726841416558721611881705830288149806737129952936268833173901130424377490482153704688621513010871652540178442821799207869763747731911857161711509545499392913574561775750718646441704288252667568494564385006878003818049331299094107602094430679476968339568832421392325657344129971126203468393940543549932182228207441852847083502895413959530746963983216838575486159933458095461887593144219102096137788716386235196024179356236504675883386600783405543279759374367703529917178472193888688013958834026750262082607686316374570180866826649765055694820672440573215656538667694892629557606657215332544344993948908143953408822480381249736120973021751142613611205653731386132280568450881595319954440407393134511807351585274113142626453939784651523374301982034811796839728582557440350729153873870759333284703931685936921937389790372608589957627162355701462633593754013224545821377648288842864673113291130351273193096892054714263658853262611893439696647924285086924095863672580976467528064589650780894146607404191660253682715307610345966409326988891317325086290750651879070873156989295589951276339477432077539940894050281682572274114418207861317619783904701676219462386403047652571673606747586114269057127255661393674077807635917492909239808842805891303747474409946386678478176206488288932260736702511792357816819913395231972477564552660589824422793403394659549712817242899124920445960936310756808321384161526832318725595732847424511222366363381542748862668777349823821621003185962611033177023991522949521065891612566607061381378280559093174336984944542407400607654578319595379332995185186611022610695644920585776362128208000502040432193654649884103555182694161120175898288911861906536635451455598222633874621941463660940578205645107199375159485816661990801957870401670626489936976749635125557401891743174161323680249123798202341384812498895678808929182351279504914254793244332939215747378400949078842182683086326371601913799528579363381909433671145472969094321482490846021758043857607799636845363485167327970756729737016563258131903976639177547433230204753793128257747862813218219285852363738667038158621220144345075807094608782518790002101901162061066145174335826895185484386140105902777172162164442462098067744258662513058328649745525172848392560535261016624473136694000421561141031742240038682869322148749112651015670990080253247988370914218563380341993633009566064172206381635309007712020236696567022029855178105587090112135926747869411739828614509924685893292547653969778162393751948234281919240548842991363972210427807927497701715695727850628316109813891411245909360523141783957979494906105212379122343556006833578824482394905460326388379020316574857215139244322355337214372756826091564540960882858837276283908200266874158846961679907246011472930635292913230456176659112705970375523755261961842030672853242896119962040226226277914818087308423470026843520958149705377780270859471827058309773660921258797168479100026974233541789355781099036329949968369422078626454081751891830128347843674280903529066123401642318414107263871603023868613228214354724417604362670700500226308796703082130619073276441021789351902071666701530295555127060216981515421558895539796535306196824234093127369595272865187843886129075549934929856274661637902339856566909147761774562943076593787595802285127345195989035359532747096467795760827530450980705132720949876841785245376340817366378566333753264456394771835602659305027876371968164829305638449644078027821309300147458117710514224309292064355789455948701551282022709442787026035217006475542000535418983801826265351616711973291416923209480723111509336176559232114705393308492446721408713370945010340692175820756734523695577514653737820007408631868402263190515031369349364573501045424439280646670007467618046647785807343681634782929631955591319288797148970514793383812084280264584782233963145788094858983286653657532920507945711210834848634296902823704462637160847967760733275705095278954931984961489916909134119487237421209791848419533971388333992205348508726435131786755670201169139051458605384108151948011214737122477109693055121589760272572044942948373456210093024017838230123829859171325880117173695650315453972651291218412020233967196351721299146991543787450850129334712495495986270236232514409332932635570476742578074782283406347116376410699428298697448768457665679790329628337095710361947635967062164911472165550540367235524014107488736288547279607119875634925644902980333841714414832842353789978880908930475003389492406790350346774026956878040478347385724994816385793811234657950941548652626351104107701287886766399766436996181118819967377712810046104278538787784688893268535139188030784803011645694801162716205310083109742250940691324752672418249829833721477409363826737793820924935311377487523639667440462890150447318044522048558117909006674263363526983205720678962418058788942736465699339898303572086371823373647172533253530564434989344793118001509002432031856004816494690051257628549524575440259517782841173450694302502338751513393160172417125353582269899175842290926848738396704799328510374027656612380323075303826373738513154492061811227710526146089275507337321993614193692048093180615684184169911114994828040507371765556258120169377537024774520309910297702444069043836727436249901028146902768355454109575587376811244839834341238251101723690423816829501673594443892673000801656275872774093974524678264681104321931854674990402228749606583600691013478088852751471797487256815319541317653030167800331480012370228012205302244077628630549284324080805070998078914316718558816802802488033957735719195117195139850718102027785786778094526035408045930446534171059849810666646478219140293145964560154268601741227260946844292855047455164561417159220529152363217560111303968897175537114209561650456694581724865970610091603062816111144434180015512300126835559478616251071507119111816003523362241070037068952820016576476226430419418144599517107028266191728713365781846742473335984225858291145678975782046230608739000643442709598857378849303992432154953032299657501413403219154788991128501002280376915331932004810849276890487519091657777687967740159778783409844928532155805332179380002775449987777284144674222983409096312536580020860487208763292781109714786205985534714788023432524749458041092651199331566884641472458733492191665170777508411522320063430674745271433249491280399427723187791461849979941574048692119668941557043728137987966743276503761033031372286271355196541476570105294618302748499286092253995774082403233734503114679342109777533059304316312511412858213659721706730592572059176367271569425361015571683440540064219328827699762435979665625162445102297822171492224852201797660918120243065466738443033724301781217666636731630054323471472262202670786065093710242494610000080172864772961705151200083396060846262796797033027046713299406083991474300269292766401723772405280195239738786672404537064073461025072154571155774693843432481588219452712139744122284197297036332092457607748044493912216172053678577395249332974162960650212169402719129137395641541398442991589838961595051973423282870852217918355069027912762644983564773551623890159326417233058664797851902475825292330211230547014142601192305815320388257279906285881677661337334337592711238379366355278476091572645671533691148222893549366965924161445687536337608106931793969843500996783693580186882364194904827081882240602275063096524885588501857985372678524912149134791890202263395196241155905627375311061214599991949848137114378159209841715301990842560559453997951625286869491137799119784317248596255141566600160664769925507956529399206355634438793958055330799770605254034256565893090466939333420261629478315213532138184851910490447182383168911884960142631116743585200381335475308113629837491450101809542794622399092031513451721992408914594378255631367370837175283057423193122440130716055506340067124912442475435857130721710600195260051136311790015966887361331394235370390199606188322902075501038887735180629974100632081470123638811995455001424951838348360731185342116988686005204448877958800459023793254887166366465848462666288059609911868096661008109626104878628302675344938275222194922982357469436261953470205035196351924194186726945455319152714852070343792059167123863832060096708286671834544368762152233994900053635973516339179515277344411398845808580334601225165588552148853641649876098688423730642128642516549404154164010347222329639421913993995851771630835110784935268487055020286324529685279216925049264371971822520421292209582259229164138725560209900714188479815375669520771794822842284635813413535588650129979131870428614541789744968393944427434700097337707089160152475981057576970363381540696081373780628930523277624280840144892764088746400668555287249782041361202529186024415461464787336591861469439067265596843757923684607159756481445841228228560211187644280861741260514569463701210197982433062490307044379725839510790144914188542570202719404392012049952102785383490460876876250294070346194859965934516009076532548108632568249786300133659848321339527665808431443246392547577503345208266498328660750397850616847915562060400842526888489477836391698363537257663688153079358229452570522987443161281061941413316298448712914627522693729265656318249705906950416665906030352054717439697503706334005565826785075678647458584140052624909267992473375499918339768881945447332780320781729371049496304383108261118069360249899508335202410445770709493866605735996776898496646938230410244015966977319577171427613741713817561039770651516786642814153045586967361756962136229616356736429787938347120215458499574452500100335093846754747809995466235254366126166863074689385564363244342972175423821058037842878742623077230355356478192555805871119091242055535465257522597847299668585778657914417794818998623384422505828270661574596276554848356468872132457424411671632891665044943973580427708260596524213972656977752725724207011557727712351557032666621616224573866802442037636663800474802369874601194738647456113150079262101413883909432524672653157381647920549892244503759765457909307196864843400199975233844807026747521611527043449549463732210424296393088622695895060070134006881786372803449518077059680617353989280852375925275124709913375050195018364429053852673706924384625949538251486062158350964847192036284219187284771608734207906680535508030037655746596725205314693180617287839614293731293660341576295340388353379586734181813467138405734573002088174838277105047021639492525204399476579256872598017602690469730821418448405248860459703167944136113033489683238563114800159649586642553817371113228833766819518443714888696241550375352857067858047749572785570980173974272704432250705260116519376550496155907997312008303959803803015665857720236545134327537602647499278838891224047856700412889062710304331135104008842932663075609459280717795733603215364484502927508076969182994573125947922392707993500114727778852683742858906124827331244883830907876972964215517279527651783313874924669676158793374010331897814609497909939370276688299496380878318092566603456280480219808737599348783618191329220908181232887086996203002376284770121244191651803133866105374512375140963826302947647057978507809408494990444931469408322101032955549628499778904859133118315655012083713446721105172480692820401755837618975710178622002727467396678076958735921043506068703351956355664183814986433479773995256765490501774128972032572775174695634939897982447634137880672936470660288637228610002836092058173448733540164433852920034324969719101317582250184188346791160002397744362914218947548144952067991657651499962270193516103745276372119190200829263884792579118272770248818870666970574235485905672415673435180037739924601170102750051682145098587032396826416789805560447484612637968749725552682788805631954447659471890878349039000281887419017012496386217627475741564686120612322080734713614930364755727789564727909884039928507106031782190316517379604647753847585526202244249966468659869800911229151035148321297618136115437380403478342199787104204675545006387721204944956779050476486292382846272917916281203289105710483724488578035861765392128302425102119503361660987903562164576649267624072935166246015730787326590587772422963461294230206131888091934609800043183597705154310575624918050876760245527888156246720004184033540355369205268796836048813579415820957955591043573848874990561333148936405390756629275578634585506648609341710934221990441296536931619122941112424861931663710817740487008067080910876430382789822582818652543366801901182485302248302883989340027082353867601026978877740239035313069828059373443010161120830333335841642496369148056812443337809255415762301342714391755230484922259361948592944269144576881924175629614015041552790277024008231223294556038800709434149666035506188215238097326654430988187513533665866796420642130892286691772379153528410625253216793630173677354838850393186911254122499759047569398970633473110331665783731528561739536314502500004973482080697541617797686112536487793412681673296954102621864749965145307057063416497725417800644644378250110268277388983437473580939442698161628313604395647636491298164081630580612001514651887452974654471994507204946578253426893579541971322235443755243698746009080074762954147887758002129765738207115534748608085121176906476915409354634677103772761681172945460701061513573884538299397729810891046051897491741078394951279644466280998302573022801341684031986940449763038231530968877229782104249908849524706253473662469021920527901608682229647108054494022255738182544105227143634416099353909053103584184473785624491715318949334265791315027164652574433294445227514183473918021200713344456806036523384927171920821895209478861485847798745327315277226355010434256320645017068651816664973758491100649322796047314998453987149015439550160532241667687720987621477899987962680317036050418990523262498663176316842894053643991974366179595541814262065322212060053952628198777099656349458894203231322810569161964181362685501116888733670362530074806294058209847786374004009188860869225549476046503901873998904503183620236327792778280960832879869428268333648644213313920803453586736676753082044887479641361094355994800512903113538431165367611912321000938436743891060241351892301095253898028240079865501040870139073010581665993868810794693793582176981702278331715087808572952927179356263364479354536471465143465853709143774107090943048171405135367513055443967721430526324130418258381336125446861928369020600577962326649155213226343619330155220169772812844809453690091119651457472182454224289184774771695130862691938094253752101272207675842153727972497943156088434228250576031195541295791103627994467148022526770213388953902790546313681738251677683483205244390789029018514579987300164309455856293351982324836517545501792963486150525766180886417383998875836263506524615229682532485460424373874532924086654672120323459347770931937801363637789250446120417271263004157314861149613519247173858998990351166686516369839561087983810533980787603929170850650479462187782732566111208251689825422327123949022704469289906629040973476674337644404166566479210851076145728007093948774634064334267217559152773104277997008256178150885028324561847360935274750902572970059135981782296566379237356474633248159841122688015690424429014351809343497386243291587565776792237093426355843756644901031152422125734879939054964622873071585871091016948812708397259636074195704611832307686192775668592401624877062045712324589040999434959273644441817925341002707364266761473145040142813985717955965895851727715504866925608485580098620832977633757584639489761645793363318709026247693399552391459087582199257005112957155011879262109049431244010263159983688673046873899045566992385502148759916858282753386482478873751222232116879643065122774456499596680585176696905288389776989105509960087424167280985076887729402321112440358449082845464160790370607058360252491097830365014417218115052264675712023890396425428723559445729941794660603306545535096259550591970041578251713701827835193879608286726253990023618897445334567729515068781105117711092356017711248295531966235700656243215991628194260407614856483664336582005120467062770536902156125555519849726562125222251776849467157002854315834590748694389314453392849539330842547323096305136420940018576267467365211665109091892454043772215275770119718722833701132514740663565578141920006131667004906376208112943584432040754350235695588805090659010657426024429073931914239520393642344828224832441419882060239961845473536357020805093616593160423084322646906912867941265473926865232655692490401630692550821643511467084031063616778190939817371624182590900051135726796426556556040879277413805110039687139866933998060574982335433389763059887632232812650146325886096042005008228898792431061927565815951071504826131201630213932002652586142245149159970696230212916550982082887775759647707885287256613682106108927646358704736466073757711909003248961845262635953950013584948354480000292168058143122069491757706945826259408008562042497910735747080002164701083721645362802456657561834886174732893430824531854625030471036882294393001545853550967520544649500253554718856835955627627807499373298191399806661080516407919395711780094774447825476057280711279209855743737667830920889906851080071969300243710610694594579949182667316046639861387262674570557018212372070273391578637537254083883129032848644539377513912429347210329005735390292916100609011080627356032515787006268857431849052505383553586578946552796145884730307405934141950317917296236724377946417935401223034928378491387712086311157482361509088239690622682951390061044149913855168098608545996012916965064754721248008104957973115874727025386633633895433705246054752230903958452122851910229860290332420728128927557716958798826499295237698639694838545324065165954521217117472349358521268492900907356169276912062313517644634481777160788262010187440074539504869518717987095225949656035694989627645977643557833061748813198170337506992901621929551825079392352165495573197412313180548290812716206195977115226208941608490766925704073550986162564300131854720691613157746520461248561654013861475960947214116696627966926716059324659277545533580966185888435589516655760516528182199974556998468786057854613105909653814239249188510691353804920111183379327626613812455933933290568163085479318499354964892862424989170118339278511834454584920537497932000531653176291812811546186120759619913550124061482313684842369577777536965235371326137805669567716347435443973160723326421976771436814878166341944326123483801706001513968369344770857129880585375782115263681800481699760806654301215822266946102512091120313520847061279622435828911288814639168652360216345703545302174823344811050908864185801885947714169345464794560776981817197563692937735275462768100913007389222502770540798007848594068149799162427164810313185223696866472416855010900057870892040648320313495306251647723579352041650730423382609139335232482954568692385876436941464712976501771996906288073414493893350260850990742892321346139832630151845154462998978773646566010709466602007535563609807897309708692047893116970856959583843956292669191259145180401485000184345201238810063089413140365698696538530384112340726153701742212578288342264167595263184426126393066799542696360057478439006177367970516440103599525527007336545619567043670539400496927725933707958942933234409893678863956188442917131133418049340906400538681898784383453243244886330442409036698949862561263964349371927491850121891351572149637791018891420162160584223834514754046919479808402073863050831258037461479262156178137565679266661406954489216018294323505776605118969147535376646808307993125620984250885673298128617167857436835704930171061398307662915674684858368963349955586429760749000676192737685730769649619374558118631678093376127587555725403189044261460199255644413054056972000702880520717535979498258227647589943239598612125275665534004923443356425582370504533572902476967164945630900518788732188495159703794358469276101556324691423181028299811570825353370806575698761662766517315586109274928008802612924355723805961075956284246180921912714333379860267137654730032625818037587995172303639708227098581801545714978433551882452261274493496151644142597001306066026271255563201847361523162196178940000709084830545123293856448851609663166244783661442511131058290135355392415191468316848783704336037212056291980848030094898384465987319298714461489742431881006101568238984499327344273279455857714056588653920039774998109752033773853093337385127615149151084626845248236807762429240897600450274144051062001421197925047064064583380860318881884918983272127675316465494277738049977230836696742520224308108162645896619864541407652566782173176934489416698919780084557216706502888445699133920698602824283348478019550052189684928391153133122052251869911173989058394484302175528726868834241501771973700531084549770711142872647327586669169867723119182298238984165265290205369113959458894434320260542728295837624750629367492991030559405870153786036825052783295666542236350508012980923202715979511951988888424046331152394164290203127584835449293972857325479107175505620413280619619170532653956379164095485992910942264610526684378403883413532206447286072829526993501287069730636406053151303917046226822733883137714224829578071877135288990303974008293656541673838657644346859447302508548889073798771813028613614128346948352608738145188167293505680633955168860477196223199893238305095834169934595995360050888697134336302320047052393256388427211474002397910200023236340457758200136894087132802766282478871831516364045271937987214435067697672118995094103532579901157768817921160935662394948936818348191494738252356634198890783877187548562019696058540338130647125343512018478891696474254894194514989916960968307592982343587809795453867123302879324769545124668372556476429847056029567840475856462428525908997624796995201389458237344253285151875683207459824824618342178432143557865532481621368928274847810156859582190682961192679094779030869479193456919059530378713289881155797009439546045452983363214360982047608688238972702751398191139442127586319071997792717063165372540276327614825570760339578354555042982825524656324650928876176635493349068200902429674891312012720583911408471110322596366427674540561966551775875919232291905289535603839807755550627961437547917046780869557399991644351581529021875338585173575682467683180763519468566944027075525499282451891353445074118225772347341666696749209083287414778022671258852579759063795896795457045190637823107539223768427881959879242077912265457855074848780311844790261978465435192875001852030759298736584171327170975492702709295456147744976802319778630383131368443691988340879513405615844420959624280342916093357027962031367686515403361667295316839826071316419329192504891621055707058296451548978236514903218307329648595266368408059489902805263232387939692101776376311913266958343275577819819150941571948084708567614133587798414641039422237844408976161966713378837283956635319504461369188235464929032486838212464534128975625621039758411823045284123415563931512067480477886804897947334817861828387792172096608597846996823282775726231924520922805493314579862586609831092212625849106891973793616744915031812076555429827502484168169079720503206385586330733014907751355927310996121994128783555460009036567064281182102142060797288165326014611621269745803106961719041609683794860877855485271568587911323781720687864433977142809647068784567447844021661701200877253327494907182020272657459173518391848214538494024745637087083429454492052295595928386001751930350621551784492810475744190337055696824749640533712887381819325797987879349827452403328218429961799643592271758081705645826329744214035509206576686496097514673226359893125145891913876098467261654224939093300643136644728200072338613710892281330898606538431941183258242287666518388885533238186514492898004331052356985435911278572258969763223449099822522587967958760063050753607694166586820168442543034725408513106547399194512572782987551572009236649196092699125565887298209506129407400465142390774278756705246597175594731642112062086888548836182604924581442242015030365978894270068623818748743955175568733512067620371180779708702681211249148757786449150062407877023046549673568904596288472193771223516120948834775854986020896034306819774836101788779732850619521429277399150130818426904589216050226294163643828903095326516539989700808183191686869932057917512474113317830730624807881307111817689312876926475251274758128197659641224532265702477158881950400071740427841786970257965941571723276401416322919793455145389876845383220133841950261281316708068541808667510561001476721876841679133644426002275517660209791082555890763140824915746267011594639549252506732316755598009905169840025328261544952141353688202661423774293708836797315475213208657328147346319803462355542069501799744605794924746052230711765076165741090902342016557566634815831755226080661580322173871571117652013143708937512667406945571242861358418288174085973036857483945342429681805459812388160095103783006556077916936267469618577623307633445248923613178244916148006374321816885016927205921963103282754021957285635816526642391240811708987855970398469994457386365310854690030134566707434691433644901359931211512237527035088311623634332751128466141850105871703306808502236579945372575819192806415067925007724104344515229036127239404193601173665636597766744409457618629892983162759826735570299784423267727374764958084982649990923645472183426100199972111792916649024895418871236574035004655114830870995254760033137781744178482242422050859683685660291634596407504425432994864489971507512824433220327665640918868248304256125149146674870452358341336489750702923260089944185310203119317779051211201398636754079894254666419421952732493146607339756325499119273947007003988130398194470688393122257782065562732315228297952950629233321242891507026918156733767982382726084307375569131934855852644958689659330327465529812788275710782262534201720204145937215520397418923600655489889679310425386407773231807045133437487993771675775306107606772902551181689763585264778101684428825880596252060831918691417798458480005043999168585013333963488878159286949460658282402715923727301917340514342876175243401771140189361643702783280573066860724187977235935264689529547133237904790382759668298443528416854770209263659351078111689266142187076507032910423550205970833215199103699574493667692935022322465103601662303364382659417568805540921112778975895895964207760661279849194882458192233881388502117263191441189591600828863067863521896381021755434563926258664178780242691876741041285658622292764036250654351186023868995030516148030167324475910658362881082525819132783208277563922263570390974492360024553508686286536777767070394161106001459174942963527571019960375195080719498978970035484750790412902260574530433303662253851432491041984070956586228918537389292778615065138847554651753405644298173903189480249720397166691079842634348447673296749696410280005896558350419391511065160919756273752493237527167343478486472600879150235151461426345974208564727420232737569919254212202231247861075256560320366051479825897060466434646200468021350089707397511020716371349015330290321188924376303640478020382310612123619443655727739559426532241330538866756232059632503255299591828279466809827071334309598415187394549463590639077798436470674787631352057028424397680107928168121180734984556945274539049054309778092497216152442653137938072753335960956602322392194524786329597143718955320692516586779071336973427440674385364926266733763136644351204380770556278298059854095920667471329212202210331340782421419306921640098608427887655821864501770677668805619443309717705637374557372441453528767306154369797746816111971184264223718614017411036180658540550355466416727626002945444888702514666727335959682535224946803530058936160519196909249061960683263257813836582277399005999058146078303622115449454246465832884078825845961053283834713590358999022070630349778703796961241171994783435621253087150908912951110332147521748410873892571918626837976816951217033053288672235500869032185328266016919108801498274469351196419265166515744897511490402779915336088093505690694418244878843718653822348086414529260710273337117619341873180803363263347948345472395442212517098665121312095071544441048385987192645717593918084824278466962504994849102253284556679421113955963581513033689968898140846720507677546419661562033311297257195093904481897536030187754207225995900678341795876364383827856852534652624807585123412264229179150484219323769092223152961143337396220546011025827477422960731884225005882366822792909186767632518877040775723077027862080137858232925599143358566337032920104942025245615554333343912946465471870961359760917612936647905633296735741489893412098321471459753731861957752781214918760446926179831603526239582073113980294582004842888310699897630771911331557723341324831228977102683512246654954372563957676857532332305581917337034753888589942224664569344876805370680023156997796514337838563536111707490320188048702532498543251059732614730646614302761595191424678375453826969953193207719236081689237795593855620773866807978334898616514850844261705482304821559520869657116156136226012968653271367035780126269919028839684114262567430174818859633951987533747645850585355560964238948461215755317873240404612377546693907067752838932641051540211456868776487164106021955322755685438538883638134594014019476923239782398011716252971067761731966294727415708113999052746005792627586855267829224046474562625146091566964263814297258682269890158204504051349553981905830517942025769633272065067424812905429869926783041905229952912133824142525420678870207159773453355504388566669655074968849211795721327924795510040280886725195488693008653284405092757636895579039717584363285589333892379828668303825720094414660793283644942673516708972745643841947251414601695574851857001511625041042476533320211993582760064377662565122538337534610742493549751265844811178331501516484026478575502916157064738864360084064440494439874154104401706538144032692700989421753036539431302185871472248589875836637126644510686189476046818574096329194836837770924442015875654366641775268223728967029790767157318490803134952927957029889486205391418108108015010144856403054325381111791804344228283943670371447956200903214478149532558067326499855861307649762645223111401408131884206661660910886819364235295316997986811002200154086941574143353140157156629976291285882670007615885370416967241802497612561695565534302534729592101087276440327749512376186504709754060164638066501318898264846597304059643642649462153069812626878471849067737835863790242516123466852063151509636826117000979479313748762709800817119969476472744970944484317762415735299771018499663952228350009413209797314378660235896676462026250277353349181192618994764357280324238607588100145456525587908082484938283202558179858733924290404409241060743798992975740977749750015529589504210068925368143150572549334130259551637416974023401340618280238250235449848374315839762070806088010416197495925296829371205873845827796611583486542740668117084311673046294219834963196270768589724619345578012296161044669506568227771402272234706623528051916618543049482283719182304231470318089667932079221213481525975526514083358867128958366039485753992463857804417634907175645147354175904472326080573938363491549376894200116856341355237916951255417390014949355509671834396341244048199249594602750146513609258653786945748257578324303845578131249385735767495372370867361893217094471837893441026649651254477420783940743180630838046112069064717024219107083956607612519487694292228021672598284111416278016915311364053187576915657626371228160278080815695383308629479138033730050652681842633270351291444338133744073646122310167242686157888017899017465633204369045480309415550868681005278045535872064279066245824346070212634822370846994969971081610834647824752152769356331969917678724825372326633514876475366418582672763701337059101478159478717352805874944372856920727023938165645478123813242450714547292720226734534574601798067261473716081299772442621557243320680002036247011384972079076319870362541693564352045198214583203048148804485400595530984531663405470947432818883236613477149941582037448867454044341935655340286161923091867468512665635979737348124825458734760724783466713031851808264135653818285839240428150676924552642648657046247800937200915923464329839500670968218526170125155818138186723741230194874064997816907774661980861911466105533790247449834666577644916098044545850333107818288011393759066405661689522589154440627798959375473082859729991965316801037856793103849799028716506888347359947840204849040895425675480706637583072526578600401710258075555401426068257523742411607583187870187417961749129710907117817576836706574265756469465814570006287801094009510635473263573597522637360732961047859601747323093270422256209694059680635199484107039822253931452060996153185181097581973865416431752165318185273854336375485557828420331916776457833226432346791835668794255779735670969404717256156604037769454611674640070791044025653887237802016684806138502055777359763045753650651464962034652148683479633786638604816746255117298142766134617346570841199982507702472634945340717221782237218378095862408438000995703279090551711967532209030474647592087621039998972072592182738258790567881178933302837229163948988185087737677238572344097074723372962778900601488152682621942684183301805727359957280828986606222640502931936963386201035339615963483711053006103393329803023623709406421317386065155361468132011563321846912023894042489990015722807104761930283079113553473308679922773278540333984114314869311678341100194866252852473749252957882167090175643056957123279365175030850283028233539233475447291196120496076418554436428809598601517861490956097919565079225354852949238903513199753071937545151471110497773626246225931928215010591069039697443434864875037232161794245972390190655574028853547171016740960584422766805433481698967598616474721225758952870726913031360135831314461432432708932679237499667831599790140074591239720022241599700737019513130224448255396692986877965705381585338048598100110606703072846598339812481883199715466940322530114323474690272282884375937383067738279402516673296577114692603945801189495369498146453066533191280240751334965403592792968273818473119415583945172174854276084447880588072872132045525024367048215393625553651447340331049034780043829449795977658902350485990016187893574525821654861537194140101826632996465508932885827861864257947141422154313657161457653964820496667626880793092487467589262849273297566528965685248070505956953571748531778749348584863483884340428429653382206794757847845277898998292402046025378238384478568169761232761526940604615018712398049708596115012570673140126223625679437469161440523584270884840606212519858674318278418432635239000232991312205090257991569768359171625839881791989663111404804456552788284859626301047594157841370150693537454974714188492241397847748200652713594712030142126650558027424360187334112811693038033544308207499124202965452599497663366496118593455451224817137224868242170749553020316906882916319275558344794608458503427526036153443814818250278593339066483990866073324415548101718002738650559641068182452182525808475624987609057168237104017305679235002764724588180731231309595015141935641289134536245222771232385692995513424591221002342020815208519623831124423366548061353854093079278318067949160355527269826508845803027271908816831530373243636698949565303949357653191439574861487354643860441329433070141486067077725106332713418902540032324460749648656905309936228473813413465710509172652867043157095421441276859828549545145981820060649590511470741651494500587420155583925140356902787154920664274677392600556619374463595377949527578149495340368355022783327610597074998159132933603054326252844416612989336867076447330719582664977195085343566948690913516937553596191138096802057357906503474748308444648287974440395035028347784655316175256615102698242294282331489366672858451802477717087136117368177601556167898623892549988529762367924853552974354535237583452987354906312271995934655434690516711453735065775879260335888283640879796350198197305547048725048923305663866850897612428149866786586160409458657454537256216586352029848576763687458689377044068909154418199771247904443006121945873423480987161001721052495062459073198875982280492829441004819628723085869158247898177707617142565595780242685707232573003971553188641660097847303907602153158925926893586939815006324630813620895139899393089278625406789758030145877132670104032238426387463037311056224270538528578845548732344996465543914112289094090455267189494033636387412989142715842134914084847653027657491123391886056852118798297426286605421961969668921158542817225093133936645989056293829926170561248342480471039696429495279541562059230701613392931835717183862004312420254643535848642284422081403743438522921049843106124659126032332642168618586797953556855501431131969897333532906873561772583370027845553005124535291209463521556959773241806650982571349890195456124804681215681027223258279168542507820870308672100382318180518136851186984314056865786723321115397488741431820381124614322070257589533262854621507145861593311411112569537602963938183721369172643198562426148150873289374041370009201719339116974387216546945647777679741097286850078815531642463662870467197739232111755077231265775845437733156314980730974365645497806613616606363917682480482688036512600203691607819904159215063370109711693075859420184329587940136457367111473030496768418573736515041462778703615182801518223020541413593136413592088271377404687376443197362796906828492899137564864800040551365839945841515818081560097138821217793307953249022294478852539361587709920440201259896099568585420825446394846726282178599842413571260794309599801600033588015898093273443042144020164780118964604533566696548876373596711976046788518186885271459308935517224865559358778986981032630631165613304840371334662695871967284386531958559092328056491397799393876496882104297842099621576795953620221061807609719306981005931093871141220241818124472525913216478088816830475770517569596060074274916681316848367487626160308869056545288142669891357446861190035264185181876102153140109155333861744817835948575403228409776975396447038315269855325438409121663558797726000984159615981321666792873132889641930656867199105518705862641320256191927678683022935848513004814679316549877305012008596009568114736188665896921802684697939644075625667050191829421338965156428350628739361620066717125557945227817391346583990659540199371050584902278872422011143768139043445823805275819817542122115926143325915400338560232705937352726926541035854098737831269844879594362524906479962717778731912227976808284788438327061512112577813866921991143331488522536661392173960079099931185498860085617322864601230157215666790694518141188421419680079799624500577990750763755844692006098636897688204069916771586659951416529100305915838805037369103125226636479690019151720959128417489209024803247693751651684313534410792073904755459233449130144019271709574105102037270873767386828909006115106623836434168218556138647016578671896205901767510305421689986188599764766900746928279222926626862939173255443630632297017621128659410228324642514121557120347350261048790152158725151245268029105448800469189060545444901340385875159959377394460544611587214836977208560600483046000013785617388164354028213795138887679167784797321794092970221983030092163691131009061946091065558046630460217426018402820201586484765058041087133506714249430901130349419282740053623434404822251547649679455288651620979967407195899491567850906172506870979828100639220302281485397291966839972083794378650567964823349109710885755885849508932035876385291149918747842978340929311273163624159595783504895729340983272992533390350965054371200793047455088125446999375636767793010396461767814173560027233363552504533156919923823976553968169060467253534917878647293448993328997595936965743396638732944432653952174940546297603877494820572898143653568688537782006124267846379257742390537303208707814496748879610934840952765989571013540299343743134832447291582796433418065152636820885957751746926654427317507719104861072767915233012475633880495258072747028847268288268997526381907019648724177042473793039839256307155232862362292685878046917118978415255754594256096533862910313793532863133376854741118566285881919859284362446175258024367027638340022181980284969568918210954888260625137300976375600580938734511793186781351823962160941077484177860642094502344833690088166095807963988113053898170804468198860127197682477076565872221645576621654560762896730420734210417648412926767700570453191262252392141886851684838125705508670094327708308045994793190934467175975368107944971500777079846026965075873509983822607811757090040507821738644524216294841493161483945255137567328529820471512065478821502595794006239432624755039115565929335060669592640522240918850339986267357058269518000849714079684362241619738039154192116546538312623792130327222226371151999572766776149881824298626105648545072599396378540640029790112681508004328963617209728276298569829260497755794228184877847033791879375014735463288494583073176422206122290399767143152000185773760308902900672910282656104712458609451708150279810366622156040628392826811259286007714766433816911889864192517692790957471289296041385913290615619749132587710153500232488217004249310063577994658296829020180529615250619254415176669638446635922099210712718470831928596514556166778694951442032090679637814091376962024140609376875845023387488375202714996197878312942984405008261191718061327724559486819157164036989665601862329128755776945576002966593872962675544853501222487723608283269093300869747880479328990048000165100605447458614302930292920106608295114160394684080699411578072517628996409659078923134667392401543213737007615812100545385536705111037942614677774980321088645212693473912665025595782724797713374236364625615461348359684124564313073278884239869594630658579670146843414633582110133292546260143319377171653949941278888849725650175623886730187881798639814434510294697518753414256641599067239610412027958403525737622560662697277733284430776755501191073513565663883924346705803708212455471506170619414551917637975294917388199670849789706712455519072936104609197562432543895018061315218323690717053982713825660946705662395924019710624193014058399004843970081576838594435746731770156977488302062510237169449860741240139689322665459908643956331234200950753120980910860271439526807963613543681529490472883363712303850774289385672651863825662935318203628930572179957723055665572856115447373176485654669767936701861037162772297013844961578644507763563064835529895917272823064987830721186289309118119111515910365001701788246618994426607852079240292715512314278582873803585734566133136649389206092344125631581093728961398415463211129648510419080290077344861624255922714416548900288229050462271277913029172206472533238349114691464202168533277933837600566259026896932855935625276401096963482141665941915002822787433470629229477696810084878221356209777277068274114677512554621169103377320069579857193574886907485002222094645020554638883080937570623117201758157601817679956810042748370936325492966127559481309891324527617734124308388190561017838431479219787216847916036342736901270188305225970836953355273736300362092278686570034438167382142865520127196454610108726083443619196191781527624632326149252671607063045184329204348884469494597411501651524295981007545399447943354728600504264854007615185216934541617040813622695232382573430731692921871673721858789382804090212318957917334737243013601500472200439811240005659505934721718880732572912139613039854766160462741819027682067431655603361891572755289813430778860409445963146264360495204324947969071140485973941106589212414729440689185567928490231237051544595274385634430746951199921713043823299379433732665572597288945901977496019905914750412632319212561938361579728560421158279565159790342058808502173401372584235535151493216643436833242837766461053427123838454783640090173508546559591580070056445629894929769309721101089664156099486345391298525938149266560869301338122113573257469229045778211843990095035474268132576235962775269617523060706025319173047370357304755824622461338352778085325106433706697833108849663737660639130726055154697127543898856050406147335162509715325022183407897789266779859667244481125642734649077096921249665536200648256270144803328336186148675181925653505777436553399542294698962098693179686597266932725294103468259831440373142667939539019311676920310570926625472595716033567760706608370078863469426219724416660915044045401146168653174417647155838687756053487575791012113121544976261370337357123267297745501954399428518884491687972936474408535751467171154512917318430922324254689018698219009277915437880868504720606829849967810632820646576231322097202060421241317290287922128606653176162108734205806199026258724974333250762272924617947359596213424779100200421691984021653176705428935380080432963501280078668888815553221010993231765714492937067740851668409698141376461477542432074563502935266559137142955593050618685992435841451600374556828976851888126526213632535181720923467137698934628476305154812913541620617962005182304065254810237526739346406424218713311390470542571595414132077605482265624907755098718704215512111181697189597359812660118821116469159930325685876710506549641630375439123559863640426907945111752801144876687045851173608522294407481719909428376438738020402878086886365035522733605666280393630924280536900112677636270990986050793959050657229271403432021889505886423652381383418547031720293292010617975103202603112769404416058792235611376150812695841569870114692188808896717351746574850969742880874719673846166489184574435968349155377753554652942958949596730454630491069660241382816131454054456569532676072436554726041297321213571195773139473136001752262382863005908006358128856913631523822889399818367598034939404166250616740537587642537611730005071019559157961150015329384343882259455095285433298603211359576556009170915851418129655406396600188241015126518487654027958429839411132010309275519391650770185081295189278829835604853679558989101017799994168838725742086653231107092760441124668618921603356653085804503048454768809176580552453470990913339351158324525753236165199331888232519924201355053607419349147776394341644024991367401862419022212220385976841627433489939817058503598407702772730821580539729581439728713008353291644298468329335649973963559286731290548570298783424819181692678014098149579738896363141672161095127155590945656638725731558277625238101523461927559431930668742736467929189798218547434006360043848332284578994807210181180834813843166830478683642556572961447719286800178361027747835877741646060158234126174890115312568108489258657474408542580118063802742862397785145440217944647199924684280348886954871963649075855870366394374195583796806193833799609759085018315243589208453560580465267735188043121172678111215799161506053234132295067508525325754378824855407364618148766527942827308837421313560938862363132651751558870630473461630098496063370976662759775069135622832254758552076672639584232488945022252865024989802371093690425533595045195346967973160146713033082982472856440065885476273071756560712190332778738470880221089348810391064300001760203971253841886588113412000282726920633649206060145220241631213810557519710979062167935700322645174518166822569007002906470469594247607613623498192574511327727600230490115578849488868389699807609186332012277971465777632657019753177900599539995963545001688286218059924906565856673826486374985068656703379392824790227646341415070313901388593650205080060426786471486849674389455766333056036055847169038261315139149394563096801147479718295014004420709646116062570519427770255121717668959476939593066309667783479474120866508508705300053801443755859377334461096896819504853263666496786116572429920843772420137115413213802995579524737739663742817586978737780829233601201778424523295578732057387914183869045730744660361180495406398761259820857071679242269246435192571340572397949688671138571174679906050615224457954734741365327241251914660326496822487340361502720616782500517548683502393586056413868877028799651702873831368243487603615881089745674719932164988638448833810869243524628330707948323145896493403475159335370825087634562606530125404039791867429509657468921420840684190245349773527006986759599742508831938766879209224944849191797296341543700097787277469297908810298404817138766800732534063976203717432706926519556231865441224499843090127957647199895413717610256287208210138949237694934048193485738964440839993391424436453552548733272107839038472313228864098205940178389696443148487360890079539410744112309245615607734008336945971040558023386561664038550458812356537545063611636767479357716712155413986745461794560232970259832976980939846350558066985081658133719287731147044901079195025569675899089024346650202225945039555514438018272196426138792067495247917166896920628998365203936469008645077316553632684876553897516827509692291360471516206672133481347017184799975539631271852306124450640815133801034601488752650455517079181088041321011080616884287522418669545485866404281055524572730182697371488252858480674890821340726929342283803107209196051585355587239706753736801398416277240393473233982848367248427356412437454731244737789887785497488953057312590647665711738680728131560538772038380153946215137371980469552694863474306531402389901847849483636558928174237393531663877460330316159963219331460512558865600826912073180351816737777499143569655561251557059608647085058807535547607066476819487249722310671230095649462287004780609937222978252212039127767218221781099390353656385203696892411984087703371168944290224300501205087141996757799184190960770030314680016809420113638263941646007338244622859557397532131184350909126505340997980992067477187602230309015161076970751502086991644698732194058237932330006614690887006973132850455007545496980219081052909776733623367658454503906926997469348056449212460197728420989768576832330357725236969591916951452994142498078326103726484352745341744218051687285074164489788865825579697096302323539197917266209214405995258218893571130824480411029049267324484831827599393303415741460300181016868637811626577012414532756930317650530295578801216228809865925600731084020396259954966767848741100972912658258021440127315690904377469713172767601951831861263242279962573020345847682416926693557959668623005710259272517887288759724838959263286466807775521050674186856645699111453051233959425645116874900351351737130183477527276373246471996099605086674564317930446805661816807862178751363883071087764402443581483514740991249831430509993466934412522150331308072649457674898500593716906724867195499177778345166118273382843331127112808642073434001188646394183225817260230557544034992618289346900114996887468277824394851685458629272130611088584019144909332074548030938923945057978196023902995716539813253032547974284437389623812370405691434344964409216505626170770894707435613730040284103526941277414247172041137315089908482391622565882500908185990917942877957551913589967613416732023741514908111131024738940359782566899704630775036454476341961339743902711613954564577500283726619171876578146944221301219568850900776257115401866396848845965742746318843443264837185583256251796423494361796519276430021803352946656639663018394843069553289940577136660173922337928821490683290390925071239218427399097486193866579837101901609513458749009571323633651375874283700663451091237521378991787095610336565375616833964670630666103935962660423954321807177008358191453291699288149969624282908270416777597133181023177755293106915457016646274771305267623579711433841525981183243948403523142463784694525080307664823750209505423147479978056264931001694782846233521853522518501655608827528297048816875273717545649739277688999473518215796060990241604698723505061142821202193642616578672766754294934193388996307249465901624811059995708232108125740216675269124530411288797167036818440628368304016660285591701940385036425748666762126954464440923972066743283129054883397728972597944555138742232005976513388763838415678547999361722178822111893367788521115236880150623348514503176606227251832024259375767982870327582010631487473606417563554562713196997029128682491307930098384222559414786155455588528821681801493467451903186334101022801537926142838977081265334531644106256690096397152234408118659377652328787882817031993912990390391156483076076044273967655532191275893876458808465422341493909712307680752094593160940741586795428330185089142992400043656199632862856439671450742061267241085640882609668319966634552030683893131003701709952587741022231429908030282737710789182110169774825774167354666164645123296597925585348354588859437930809394181933739675182997000800141632819137114975499194336644636566064746862352170648580293238453751094328366743002044348313840703273846628035239059565523045408081611558711715440434274709311530767259160879287297415331409413619649858789581317914337311530471152858760735654311040993360793551088715226770470297058159042643574673669130832103432126427367474464148633396551718136382759855987270921407704718904629300282719019102924789877937429811718367783100490806268774489419540772233412802790983175997146529386896906271137656620114495635616070854273056090718655725662740432697571737479426838645555270362876899440622505646421631615100666681318995852093480314617927904572993650590717101432194622921756503134808241087136806376094143609813103445301677354737868265207483297041216328249247979446099008862377194927379164685200714065120279157039213091841564457572348094438174733011765739210277280998144794266812435883428748015035415248096372757710760144987931280142138562561445147456365671806138946914025635723403994718977154250579328996810185348258649138839958711189554445059321622653179891189044887404585094590463477077461343013663230497223826066809727230697099342259143845012708232527257898499744278619860758183898349189813405478423529838780269075337833303071375185468639288361245151566094237938626831852198655020791706663078870257139942112573496619371779232945395574103171298319910001366725515049265101866870901994904401719632784874807928272450164261264603061254883548383880541674838068121077899832568031734673831632814018071577564869795529886222962006785640548332028059484884871723208837188394227210576518674079841013615401404564238234827723211343857019448602255064831860800524449843618266209771564556114381062105505984266200588951189080262993495307057268845926621464789025179962190474247538046581341385092499536240129709067466869285415745457675240698886221994765264581893707059917030794269398620426788685081729005186988002701789659916387140927591602660857543297560819279964561509722960378811534564707766844521081934805483479672708111458272610549071860802696338353002596597391948897791047772133818525304921515652820934647375635327522743047043391020305002603649354688219477859140615531998464231030670262895608822655489333082991941753214343236411953221796993182218709781787008742832242941596660057411425523454675286018043541232310695250284132950402121328513436267664063810232492734206481479301404796101402680050287159191791381773781711320019115134202182528937778603749150585460339679892288120136942180556826105054723264897917617679886318945826251277503073807779166237488417831311050441018741006515126972038860757892310003623830256946460498805198834189097773161455491210193641463302283538988470134175687438975104303404956321171094349324877508802125056658572564974934490970995658727749316590645640905499807122330301462797060178298087769974063261005000522431435244307630179829607280195143235509559945282014830594807554837148210817223802563083537323195302539468065520266184268362110733664091283315109364141368823264585631592070597257714439475001889717966873609549182763745581105082719423611190786000082063018129431612495485739584603110112519861893635667422899508450413126355761050709393233261170277609349746634634527211979842073204064295120205201315657756315578972725430591403499468771590645130621526005365684937216674379139685543980225381494019379315099412511716491226605904322838602667478249853595176871188651174205931305406813640291181323365666494326107114459222738750930603635749051551744480626867018949716973023564622261358189109716291935787345009426443255007042597054705421206341501867210059813174437666836572935803197814141488608802292587781084044082126053037104058244966178964262088012290120061347213804260709034363962268057614193293852455027710717297332079201580148125226210276274873088805305059428373461309462603348950259245250109711788665073809946249558290136559764121371362522443151238074327032481819058886937853120753111206970734798691012200897938191460799133661701031557810609622246188191388083743568336866111012143685437590698299092864779519759286570293017282591374623457231412951198723506894491283139293039324076563671418475736244182487989741458633742855956098559885596947178449719450066653695476083466246561425778877820180662316530634969347241575404803653430690317544266155867768248125810412912037361049079693407158783333038919874831061241241199068196041267631202696541871533651528041740942446051453721828160192782536335658682725747442745208393590018073302204302878967178886711798598227054195435638641967492870158799341072841420181786245564381774706958159608969373336310706271681755110842180252790021511621793672474416064931671718632481960108726737052812586931380985510981045752973555498872272745643486719127718868655042840597477894184934253587778670585287956672583739639578738821989273675327658344868153442115386540157595443391988986911979571967908222346637366873630445886989047080945349853414604161796083732744329060314237867809282906856430404248857125730734559930503012587120259825143194491640464051816231457271457168103028050723169816916219838607496610886449045800905564165227799636484338727499263381467004336595015035169607666785847249648871866901533588026541927016758976726903217279358410255891305362307168115284107618737079831604112024994649930036583260459048302042825399458149473674564147518711302915817167583381801874525398007025300535450937394006715426626146523013063776017420987507785199239582042655957443857848687857186725090779524583047800158275124156412371530518593761791743037505663132857482847894224642498417940492336421713469503243521829430538498294044484329529675095013324357805085451715224938551736284524476528666145798553672855480172946225615761864896340043023310864266775697036257020465385601665711904357140780528660462249029266826810183234512171786866045147424464362529124013543975741348037671300460559792401431185432077034034447758236556059017592879646045752392493847421392177726377842683056633635956538690671694255063296813706742939336050028850833695368195860246159908381260481840118841563648771773691003788037178403813256425790349770302874358826177682179025127261839931189860128302371869030241888695770768344726570124452927311609627405129727417250540995065012609414618276636912201195126716081836378467212216504783074251448104683902040871063859796123001404163884791557634405975940648347148241962801171865545298293156960835423167900802413246786197160066149619153851687135209108650571188700091968081384008787552499826581082823736853713635564194802493747554631598631754102124902600522089041662681497939275043776246202779850614436594320571557160354536616686491914304143974311917344966527240274593383928033144526562089718688952950889813128194172762022228460835217112841043642400059436955999686444697505948340832239585115044804850762374900891397159631744362124816412963791044203382051535454953280217595269371064065422296932125957050547977834175680550431054437290553329286096682175825614694796016605119507792424424298073700336211997703224456607351092616971521660663629241466675850069058949855528497073123115852630679416395192729827048185892452874029034822538926069950190874443113860553399847511231301372168786776500807535014614381454659523413700931379019948935389670655447284883814089645865190364146846963562900565686899443131470714269095448949206580751925526170866280539646717099863323106906804501794221047664209111281887845270170269085497425087944245955363235929700405986457702965068005974166622898491609087987405887457993381258659142829451450866926276869695543571664233313485981461330449305183783830912740403049677823305143502007886598972187251103027466028846801398239087523369798355134232504227839947728885785532162356418262597590405094576777608083170273068118801441098786586625780071295932555975335880426694216676493495644832581722556056969158204490961509870638166056215866466685411273442521168900286930809693390470927488513412071961091287618639578181445414450441960983293762056714370121325867438207675792978417124096202420539509261841668983014790809268945696195673153915678224926478743044918181931360614088733216458505052797507862813560502717195398677488449625851088987314038665217768752364908957216236561141323885455760966539225420306877125775833423303201659384499513961137972151482897445167838311411139640103465144530627428729536011994101531927157154277780108242029904083699418287337888721291399141526235532200593499826795094926079393187040674081503321529622293592354395894126982845667367298740369895174428866693191721877055368589221969068101434150290378680504099055828992756608890711707647591218687586495445932952706558036826544783431858979699058819464927042145278425096845303890579945568746650430032388572098808320241123497703754296194815661961835629897832460059789260752478718555520513442191089249120323883945730424144534417050013398288571291474441515933362102289079042978433167614522878884820152361931840438489543656753551301342477248095062755564318139254526530580691942237883444480517088738960424573218575252020081771620172981394379420323756565891649363391060825326200763171952601967706287949175716969048556173755469071244735526531836836843437533847129065016516976426249800284030963938501005844375069201165807283905395388691519005471474357306097778032003698753010263523743094345569309267398246108214671528628358894271989860049888817797116097789264563270408346447387836919334455987834685327663926689689499439208684361658847350439988566573950401382940764339454824065728204310649075373113981375236918751231930792902421142126154738708485503608879246091587999896138440510216063265402577704539978568880702795238683801863193768200355056007516551223648360160101373325192588146245043333244794744744783959039120721321660235567512095261323891427543511281984153488557964214408244927046749448275678661525545573481919086753496222620781607833999480491644574544029861808545543696288249716262072635323211569683778484700230069766427950604407866889554384940108044987587877380513597223514983434754865675395342631389309362699369232798262846349781034446407232241829299340882799090772158342750235213132530922297090251064883675721931577575346439030685235539883711489857967590604096869373316957109182143327292159692428431883239451668755752137032595795474268687695239086722335324703212049796802535357542889048834127280756016015674430178570469618243667692116837082417461148355893507267226003774606244176087018339599244329279605780029526351635921910279738694004700767572484510335022394244656369954460611287519817916901987124141220170247341656633408190362128126846597706132705488652186922845751243820134089636447739267976940173220337696447392525049908394034168090637357613886990296239268850563024494231932059629280775209254402505714411779264662814735394641389275437081616461276138234235059968837459306672131437315436691489318170221849848917707001762258083018063776037728327837140664545107008675052309884780365222919932807308625331231185610709124732976772779855577166409543637966397279273662674581468672108163894112554892246416376649569702480692603192453722052624604270903246376914345233287147977733112557885046764779099565518053000647709967896207292145682608089454670154152858708852015544208382760283756826023138108518497891882594127927867043951214469174613627485642851394687050880144052544953394840424486804176642537260105218190558853005835960072426488787048867227202879475424938898324567708354377721588316984723543376115965172403541164483207128443241436944359618797679368032816953797637025673662439545150349796272192085911326428809221484370596783325851659633076149027835903180167880545534598300400839944121457268718413358190949286288475436496194581428573608995932279531403354802658065445590725280256690413109683731762353497917962011256848751033832679730479611211086608028522704469620508516842753919182388538933990937040536258488263268772823444314698174498392199981605657788989159507047112830717161846947812700818733062409550466438909128284083030700116079291006584987204703960816530243655159716751729619900081581113194245635935182069691437926772072691483543569304093031833821921624967587991218520338526748119232711939277891006457641259214731764382346733967126341255892078086256518778023313290708980855009393936947141243974787752237788699255452274171966395056482217164492663870367902804915544405907790636978550529345687670540248332401276352220203793885623775564968869208642926050009949020961784513154906607236202957132966229631036194537581975902890440984351468711584211645472170628826053378109329429388925852732808598201460153938236724840876749668820275521412438947791503675512936191496400943981436715792830349585549801697215869028186300973488239557631059472068112324657595868164937282477796152332572524001640246874974869170018616262711208434500985609587926842973516630775089832973806729416175806172977201451358158316114973421683029337437159195990322246627587113944060140222484371944945912431122777939975151207859562147661884732917222434970416129563393639019417085972438596930049352554995562889873987543408371370186732883506942921407890402473670028929659712091612289615302326663430371371623741529133820997557362722330455664130006771236631582988223184985272074376922607452987249753591153705464404698133122687461329467413060336353277421310290865550750679062655529690757222360133739180673536418914196136773656838363735856896716727672218109242427599456631511482309109484714609393384858505047930193440702643477118726087428352957486494563660860305410141690271960217563616357624296817223632091203410402213237470102339134152231719813145379326253779351786431618262594549262202823419323611319029881550301398592691510892755296135042739820444831337591485593206039093388402803356913029337969003638649759547604943238633442118125826003333514322254903659034877877372002175800963902841755127343749618314464380446952793690872461933816750889025704981065617051284101606511232529153390968958239255501291652489125852303004095928042251692043785165034866161266711787978255046641589059843068418913207277680635998024488383099512039395273808322721767803119116468276474018880169465793851750659093023267149800823218021624188190846625532280737919543289373023749692531139308765345446456460355015434078602654610310982895541639759388738580063650054665968620481349598570690759778811443256863042123620907215418405237291641743493077671036447370355685197638418464675809898364891875369574065848357244727894757661758903667179927369631609159598738906491312212337545844136740697613114222505494689364473088344608005042547829844257929338662282145624772480667563049274270889532848061144315693666957685009658046285140828494824994598554599985787046546076844241432953197504100782318939961594329626715413470061287868570571902809042051810787673922865621921562267103881237098725572305652283532174976316711903349466734693066638420062243697654359085598325545423450472095295498282125919371282137601803701707212547811002527396042072907256878490758729075072687909281399521455889127204752836333555871392982892498125068673824688010505811175263516179932650984880827037856650663819178892882944864403353435907054975901772229760753817380323158989008068801069205155876194966335135622963508461778978442069610715131125162740263183905368497846994224702189168582847427297571945662502858386186813211570427580352634476739879635957782488982150050373631690766161351590083496363837876337939449729425691212241646133465663694964450631120690986522374211654460433088541022764543027518953906607209412700473238947378721514344263215992909208023355448945907884031359601707568546295507524490057205676363668001564707544166606838019102726975384781486967619858179292523206016189888888425300587779753693456739063934881641843968912662457538181170123411993441724537168942545277921730466437003968683944106966737171284935381100762839310425168243915804435138751306283215138625886228396277722288525710360683269852009627776175453395085933549751854906852641653256598769952241049233232271611634287316885807536492101383778644536757699420756488217947370490614651594897217210093531541554096778038689964421362727077128493019299956399764352059132437077180275231347807678828156913469098870684443625464154681464704864268098870057072904962388885372734161237101852781499536689528439508582930635434111864314264405268425457611594098676194674685204180661544103622892124691695253296839728156933549840273373421934106537729852817260959982239536729488795513683590555676833803741847475724749142591574588045159622794973994473396383788022720807935540384186595902172824612104429258453131537963553738576132596222550945632062867365481828653348058943826169734003179497235400988489012652806354244503549227702315634355221685671161012790375529466333348137867533461813347003257961335183329950070458832958178990691371188613926905833549273673708766856691911777907377717309335269261809299256521368748460962560144851193168702998663267572833211331243164228428508313618258440935393599022432758524059850769917900629619145317727520900002947437771281792953480204404203545932664705258678361100607507795307018620391962654808004192998233214803595591426222086089377355859220022146565619806999981477946421851568189313544213374971304830657427489697208282128834006113165590708827666301773546970337185294522947146066092379345489880341873113755031258931920661236304024871695238675183365326474551024022256569617513206520977525479786981040471919674974953689458640904867845694802062458242168542161034374115608689901659736737773320820388607277840757186849150543913429659277439363348616575927180733299746925465214278283103925927007264381580489224289457506795644131535086510749169222721805490184927028856431530212281367082495037646865715096780182210196294884508646753129602018540207842511188983988220533762184454735738405023151959373726854015320421554187357531053416714299755057759058692264259465232634709500503030390687330853017472965732119110815217526793765183356502303212363265710176355601302835112759747832654957745430457537820413044056346844311337096340296635699364143164703257793508668127074186289275336721623655027216887865272283354301986225585606819209055265936482928913222754100849098129958969385064913268763402658490963512504467281869184980410234400473695157411536318181785282531219880853820058686266276384970631025957637790474439399198200416533098125853616254060920295901991710146656033546348676582005743594119743700566364998617811702300229161497762069684573276713388854109098520480294296513124765630714072625904087637575867215104645156618424481483129861577788822774469283589409713916781603573193447217466775161424079448414355587236567618100730683313956787611092406001076536222741951455272565917157215005198459942578781459062358480682255708667518049733756436877543125730786683797426236428285817069106684139351627728998334811762513054155797955837383042599305741558116503868414994724579193505387575046799491104440784305131458468548223605256156619779151043951143561151523142609475745552468189054949641995634224326785608767756767760430647583447288846635071853500128988372292926094476532118940852689329758701454403941411369280333470729245940975918313356104679795506406824139046644257332887181659926205555992345089366160949199447630445159632211718563736872450693599015412090765638987105292663079803746818661658655960110013702688314196706091684045659799933382393617497508834521077037947742557264489802845874438516107632331927499544070360694807206013151835609999638737761971500141121086400523528254197285834452603989628905382521128370419691904966849314934957141833981969106343374494285373970796260195155083715466964877620898566366524581143142904961116095083282501391760643720594367968577197933630213593982596559481992485827906253877560344400025368809397580449475255196474539970019760910211402112548444273693344567711133446953494428654561439257737631024035852065807102581335867459564569769062824608332467388803424993395710726732766636137032267420053963474649768432515709295311083151907135161859079166859001954156295531561902608731524888707910060720930165214186739172514473998739238492478960418729172670130322605332239678790769157408251468932196259724095626591340931081621998911880392282114922973645090256253279108625796171061775354467736918464960640044920633749555095448450849122338931610366220517893971748702870709427399206569256502905869917892725713482986461222270906549237646612997977234172675134054941122821231696231803058836400208947334126125464941007408768468842190442858206227150932350135789275483182035225156549689593561771316705477720102842469518268327729999410809970940158346462145258269587640246344654980996712620169350342632452959954532900531535684610221705844580464825876595653285178913331878899060394918105055927792393654728509775150313280964875478154947158034408760966648294964010084295430687389945176479913985169085228244123775615359937062202857678882371419987841876895056007841706345902745691963429970247827349208410800125863107373422140882390243418260193279962081605798947384385011259475544325997078085145913716474559301183852775536074859206738062671921531523938280725692453558195551244912239630500649483605590328950811157928314712555053003497388999507957128721926114494739961699288013433105334479130020270289492793435112483470532088926545909475335907617888029162791648558431483760850952641906875684182677247346622763597369416910338626648969374303179114442300242393630521254676484519419022587584421729992914641135718086185964338797664638291641609212287586607049024331175468876077716600561301744039765058449525308751446335473536761100538420722720940434861976957257049905954977973775560110764350747970105489007155322175694901794689271877446408426124138258832940338162151694178169491729082017104391237458792194826901899358255373296801079907894540777411865584146038879982193077786964280104612972181113611214959276400359885895999179872160336842923611176304619325493353265722804075378013086014987815330289115959978488646150136272722539893527510679271976452010291922403152289561558790307523021903739573205644859475330206370612099915161242760818841796217988347918858197750277103931561759262354624894272756221698055239576360701832598903475430431131480204579291838750334339213875407934093535001330004546523476118511729452938573757908843184073381854489872915138304243239630286248064972015660103622286232580116350047428749365090471962223889392337291666526891532464394183814757405656933547089431825136348342801713213960594183808868267177908994823267714424931766468228232260708322241930695758810173518574916844412516133972859408446997174134962478079881904387893917270066311377605429236452805006350879410509364196762044073593072906144321367708612331683979923919359230884289620603628529444155079985536673012920834882516722017325392878019623279989381508353625490798406677282187965309386604095737004643714899249447391171069812707286303435519446809839286664004084801635542937184948578694067820457911967157449863117174353946437746227772421111250486248992527783283557200302887181724130265609383677439104141692739666829615338274392803577292738518120062324486184288035714746875935651952427708698104016239672442867349029218264418950707916335280341525470537518401917697484136439934853779664844599633148261526930962479429030430246626430657921178734499378529834017109889821067486119040063614308773199187223242892038040879263182741582451290135999752861180158639742113371650455911331963583866939963620805885573549704583003926482704998845687116898051116905404035783776438619235580650326699270223854432699066696256887218864008455210503035057303131064406819512677521241263797517696168330957983057182326912202746677728916900598960177365417365303738298950009715984511394886938866364642117852798074871613492144159927483896483024947884716859514575253002205539017264133884195651956455086443661524277495794747056898256008811792192368249310518114780444581428669299125714331315460568778394504142038140088918848164778376329025404082969221148391609714148753556780336888288086028705170083767700773254414081549649581935077288825307804467791496554527595257301843403476948187486723168016200483268360762298203498163497520175825503271547649913381078970641606725526480142863049674326409330891532086502291327066323935463229921354794855184167107065604605756961932023532296529744794603772627992705242280569085383125928553380001030946990604199420923025480527504554359420482429414153016877092199557809256327159898441264921662578543615226806176699080867691237658734388057404291310914289280377168546326303364505504342810707231107131750196250875644755319179345394430833341816879637812096185172180238317819100427534405978693352780006457279654421428965439288821349129926129304076467463246707356506398237623910628240802728880425129674243449872742779360873999544302240720409750052550054891109435610247714294640589925652277398665064666085282183918242956470245666399543887424757916053321330828732069868314107986251313714824410999438683010949356807179684110529157539900394178611384627010506909037029413210274673132135917322995751367048913552568088336459269940133675270312375975868474071163251030323378743827973416225503373347499515022959552938690212699462745355110100104867936483669536071821247180120200354068749781334150054662262834138504452947789956461266771654627130474712169200999551097073024746793798326646596576671170960469624558577798296529269864072513669377631716328752611648168013467480397064949284305685000824097661188382781495437743746748885979697668079018636370822656710400117242659149737573463550697871159047769597323667590937017947192649331362036676192438589087462732507475787193820130014417600570864558210966811227288202631966237657173556139110879021578708770916221140768215592519281584076162576465302252769724912987729040370598965096516828973651547959828940802307814895590145156569518066101098020592470604251649750469527547529492644902264218506084774376843985181085031268699999568466224089927428044045940578885687453873076358219338234967992062368181377432510202200268704349787636686528071835403582417123382594236690819970038636689899229896372257288878008872683639418367856022600031821298293591377475521981263793130487611269911078958525930502053164590846904657102532867675725268984375028259046689964721993710638936722293492149127078751897091132900020613411027991622523754600416181468668457994967133626259875085691180558041154487333275519669619100870470454207572792460484916250473130037589913005363271235624237249112667974588916379436745815642397560469545701810843015089487530525515381087469739170145161809707967949235712114548825051267690966565762061317984437495015682400176332174452367420848205060012080647709534372912434635467447722089778885097736918216132954738898229584601911028922413936921559537377511907733634476778679865409111238894012487080796730212295884480209593231393283730774340091143880797892508211173315229729535608893635981000545104057884689990334887692803027954321149595591282437581002680482740920012716768588850261254572033537948509046448253769117292453668056148641598620677967788585090202835214469732427610887741197802449689993908315395629915257313980704465304705361649205584331615719586487201547677063210370481102303456937352032207435801570300143387227181906280697768766545798925478722478828668516187327592319892167548546870106735631677875837580924305773775747140934559825761341944480808352508825598923639023507222561959437062171401995812311515686472281461569691925094378354243148210130916907124395650110449523001619992319076945905850594397344456983348235373297982422425438865424700152893823713651057950770108220205738757767253951376240244216826066664046945559567896676614645213475694642440748236318015595646827341867803347873084936416851412205581597338423311494661272074859519348300320458049488988923496189944671168156104323416130640195198313951677075797416035621100692943444261464091987811950522252117045494416247067264261696119952536057501676843741168096085108394275941110570417139995840374835833969979395733507138698510641679031134848257957364534620005100960589663489112172023890673796616623046123736382638380511975848103242270623619012953595573732866995563423778141495766227029461871250084496543151940889447269146840291310065851686797916061428221406136276464465954421516862258938640676767605183442888630633693793874096549197425782944917014252900082091265518461929695178264219415756500954514565058794083011216755670211822383364718959752966834385349980729435468950425680048695354059413371779060606039254415202739222272939426568378866408507091211648092938205534928393299482702645651136779321417539015862520900339892169589268426921300731793410391090807001096659619917822434504686657167077306399587431153481112160375014975331270321014990826460963748408054810092331641709856849484812710799123926169654913399067780979137956088634339970107616772706872881292294227893079834824128768638602717557776943755005636225821931782007504827607954146267501941385945159519377642168403978540828559363834029176885640983087533905176309693845695659704671352670145178392483423081486892953645531296201930423437273767991699997446022431290493130080856931967189211490998465559366171487212543701669786138134667426816038381596105588028739844191736283239718525478596350139492724491779519124457059613280508969742051082761907087029635803653544250586958172289261689451915285502335299697907904722778432124270959712937729756746995810968336847972248567620786430388812826431988446298271724766214467137704451354895281620766860792134893703180847324091945389172755290100690855414982960394781637915814327405479100897226882888168711807021635866198597639368293435083778984538777969411161595965130204822331330960815117355330766724245439198838039587571504448635788159223827573552734269256235025182340745727250880817345181169344626877781020284862265894545545122242319830784369883954080797086628139436928120726485513331641452869989236844512382221270447493155790312537910147259705225735021079858658476163089458943064757970258126932779647155428586273317124700175634303671714340724319512955603444369293537360648355098074446187892662097911614277056468954817145570855385041661493785737744774492699634507484617595385688728739746365408342973765758688917587580670466243974440501365270331206413383373069905882678789634417145804373038476567431130700409253246662134365889105368311690899699407932431042002581663936165403268460514305464358607107147614992913554176850134241842118308592394276266474729835346914646789009147759801686118687147379354253193385010153349440445779844880673264809209948822734576788980254448178872198136454626542262429461329872107551636377926031407297313243176567172086801108315467044531110736458462799812922372419707902812291588333551577883967072439061567830769546394383192744448505687493735984105673997936064015027196156630272064218398610354266310232477100524970879260618978999144333861060728266011355476749539432356518253563072232177189232511182814394922100579434464901098544471096662247272926939497981245148805100599976702126216917971115550490211653257687759492907946266298711911722400058079900451456680889750552799253953197887049445448993481229453124226607746069047607648785603987723842673382794521082095033477641506562530893115755864589280303984326636222404932038299099337017004349758364527107286113658438452983372938991477915387191641848329251081912025538954418077196422800934397779900815893468086468729337959753739094726898024258295554975581524849638326177875237362865959393928980409643999540276723361964457626081452982060607525658049967610796404018079582358872034966274470351696034983856596598574604606081780661814819331975942144063607618128762064429891332567660202723810229509822424862732897498869559375401333565687754245764259656023196527879280279393530555950857321259289869171475050153593881714130029415780031144864244898452072387254971526379974400421316897246466599903820329786662642795317918203139936993229868673811707506254635499505791485378204361775790699224429799195022364297482501616885247505249092915162434803043603106625075786747235748466100767710750163511138583318420154337129204817904398847565035281401489546535601266265315053774285050142300311686030040664998609279413185605398234567266883680608250993439186501161692267226856260322953113145565278126257933308135989031381340673995247092630024059949396781913450137920119892460051430756096356689183187763767047848175670357681434901776688463885909562468824392848935914057846203763864925860925314545859756314147232704542990710627871855027003615226001882942520834186962253734154974695615979175792872524113816559927671420940500663342909803316424019105208563588681465349222456909910673254578276914741727377948563801063490376267130007634850470073254928804125170271444771525621794290367288268857588888513073578192854197801962126403726089721839166757899087373075641292474899350460291387182352469537338258891264367271709447208450974870374531935939606356097640337749422224256868386581151664139512992699125136275582716038578006649327410354819433566207413874967787113746865289957792790296255228326789727882901929330629081493598877751055911965090822189394622608089623142105042744045924883814542573085965401599527915117401871367660887545416638281666164833734162635857567451258009259090692671193302920049761854953389740201581912610243840816398538240338126963887637865835122083888871756170671502205937317613007671083354131607857669652809791659263206189152700109908006568668052642289273319340107066007630801292040724470217737039030907568576484933481872471973997014217932876915840042964232367515040413374572602228384881392432002061635400832574699894260511294413144501502367119507353585786245151035583133079369778938056826678813330031625076601906245818295180097754167607110517895903864996251706019712135266256772345815621596844211686192058920978959698757820845981233091635932337779346823056782634425315321604179080695716587518614564840820939317954123651835356349834749969844114421580669127240089963701241377761904713952408201509762989487698339256229110876879710299295008373954454362118297284998113734329351536212146402888651838327575170459128316146645642243548346763074387572715752452733516948289131828670502332769940725599767058112938500326458600865736084180401794026079234994317170528474911281414742589489186346619165971055968996790701275163961036948679472265033049334499140126721326126518162584131992596110351477500308770616338316074283229466569428444078426334923066120423107876692961289178903983431112779248363891639735994608721724488552826548174349914578269461774627075083613376437487974509692920825597985683438380411267128057241142465810004957833635434570701613846226866757904581370223915299221457424449549009837478049923425106511062719878513731668545357338454731999088826198471961510705978712669803647221135981937235668829391932700666555438384168609751767380736640989996543066772103952064359114559549595726263431384602317476218516910249952282391554958136196888156236943097468971813102464942662654853264659888761056422447409055313353890003418027393737134475490059719862415423178630040324985201563246075659080246727696468802266179884630885701963464958526990128333747947284488023054216965327269902222185379406229528121959511560614205902180324903953083802897450614478015146348683890188254180868194560610608508207372509523888396094945717975381516298690058745791302386217834776579502904515558057802803235916632708183964057010207176044463117324099290704503115904332006425986332769246594281163130440844373474063153940662777105296909662564298945365273343356758871432311142098817299313457368880814947720083173189277704149606563720410137445894455020347224420930426612927467861134829787497966511652167316289583269351787739095187069518287910480288049925817102859108220498249129026355729548666952280507293585108032374225276657444886269166096703050975571904493361312670470192053064820036299222069559122536836253228867917182632103247786745983223535953830823408181960939142327425183711252493766029143300066681564334803877899791612888302268996240319806091147366288422314417381194284311659965275673038795371160840197679874291206914744993776247255759908825198587265528899645899730400497439068124630037840113841185686631679488960968401761151942341308047360240370682059321798030701153270301376704935928330182037799477982575776214913804477684894323856629674164318082624797396143396207057711743171727656904872475392225718728768046995435145541950421125004940826420032487480736286337728113636221913951195046189472082147451567085294632620288403341640572851650035176986599440926321474113065773955523985341168513903994626223248412593573665719522299594570978753782447750363811044775722779370425172961499222207368136055525347291972137365585024546197808539412527577467855601959963019796209522226185777937830498404956987126161156371665748387929211038086845555495505415782641893986090576510460334609641489652195956086488320172207271260452703438894727929738504528053850131345409017997545794050544630528351714207955077969732155360215105869554384249975534671731577494139592598066567667609340741512161863016471177095797267993010164958754130418393317669191666364256396842906803417532206668619128327010109651195929838893319090929431479317502930784929621148556227687399558819982266880422738039227572732398277255662151960126668192731475340800678590389998154826208239498109633392294220157656117436569913431796904589546803018738109898125456472362730299982887922590357915445129199258549758401291833381945868436312919056108386549277361584412451561482291870362396313568665754887094213848361388771828080891102465126562075776355017656584767903945686006585120642560286672285942304426739071200300720202256087636788026012936422964498456036340820133142247278063336987495518679063710419951869719713884547941020394978247908221910142817047396113174557444959219130880751645777978863046094944996061024999418622889903417799279697710035306674743804973684473661305645985616503157132592522493770128933299395450123053138058098793907150277848497815425697264778731138292166851073530985601931213979217718961967299770335376137281999694479971264044526531814834586335249063378376264501476775836884370619620950657416464613381526041238879220940779009181396810895782975262439170363427729843099358954301022144468401326243131061098793719959882025334098120701688281683087424457507752556220483393956412450385566832585111000221251788178290608924489890954373298467553641126747964547420425481526019597049291406894143760732113472434886577007205340964831606603691755016304126850562076613639148717823259168654890528478420609279774438252940802621905162929765458440264060790773822497529015414850356073064104440557644726282333598309515765272414101117651415055400658240119993894384380687403450393723042751062391830087043233639914186115379129047621430822163318115468843001271785379009193991108241906088724864262972701722184627540205013066364435497031456296582299998703061130222106600350658353847069998093771236821850068276773083499664834684001199394222040043776865880071024181051061677666722162626179092929567567564613532803432868398490548050346751303131056548880450284044768696859493135838213074501005866597547625495447800641145482877481358912796962425806914153620886484057077781895121636938346082909649610956527423567391015729354027907098423777650248381285173584090916345423574048465303088150736172462338116156210816563445025283723817661987995630292710570720923306914216704632862242074776377685114786818356861897657047877560925645364024298606198924529930861088103444989527472627982604468529457844375301113907070300418117074116151602957760554726737213375262272325220438522924375417976781405670210809073383848606047680624273138360087714997899470673222749897368856091922329916479510965118208117471367138769412703493538716997495100820144146176085360295704339690279551665036496837720218641202504649136845171088622085371612140353720909241979121571061412154086771996849151502810947962971033449745161520691592744225247966066114586338811970410516034829601960252555935720227113402903379454473188569203903126933570097361779802520463636940847251542693779139150378566185983524653549974944202747832393271571346270350621411940205170199847635657515592403925514624170253817879892377981412288921967517801772459894784812011708866995007777659009927437869903826518395633107947782116627816576285853958127556488418949900314079886617236316803924509052162781760803967300127163984329195329827402502485546484820708202590486375209562181259642349448130088925061751850252256753989372466965802971639550833375796665697642528196651625556440556170959244704250002000332158182786362276025475141051675321827407551307028553569590245063995211651709002519436612934572300903802072778270320271409059036134909365429353158929779060459230221968052275739669609662688088604401252559303454373235590643292792103185480794784267133261874153272181704473994700835053780577205181866403438697937418783091606431227100349088852775762445980894898862430429229045928159881294385028050021853749275302823037151153184051892852686430096223649375959454121805182875763417902367980859336686646158267284025248884889295152254685634810482911258092200051159793639079080178648781951778089037376309705289494319619345919643545187285463200458482352101521614334246507054813537338656402410097892046878019711243786127886764463411869728703819794562522057376571642437194833272988561074253185449118663807213544196553183604832178001220415244961997558577384008677572650716654849256375106250214171048432165623345581054106323378032842982648608355530938207898661978213374592635701926364768146655164760155618930097624710578362345064682340976346554265427592761861600806484041705286081233400256919787313883587394410778727742269715801347834324573753282233737790455130287167418632711450734547290775989046499530132540195379370757318007645565995951553321446276108629490535264009603825341782512837780547477618709936787460876026268571759885668116110808115915687258760861093514264145391385175539210215965916015968851646517656239118306405567373630009825481653114765626023639420192132476029929422061233223297032216898499658209226775227400581865011354547828020852520320421985566803071917775166052392724634953732059942678598648416749506137089165017194580609641145664404321682808863123012138025130541335606871811665232458823164967296952454531517117697596733292837782433684836310927972093161294036940222612230690814707327202486320198233081913545566898626865470459226305381508323415427637206885158551482290651076480660681124573913572804033415186279745036089526084167752938052013714034172389306070749918489755178480251928923332210433796331050566809099779234260964588035304792379679484331293965809980361175733001045203077845202032528511998093360830978708705766939755484362057821573903129398221437053546501302886315726535752528690905750562487645075480170029930532121191493378239433017725943403827097499398778522971563963067065622731802497825665691456265102900447670441162984007549265615572435409210118623298100693757431269857928472385952996454106568034031358393973186220763858760848746434309120504937535189803811478454894528919497516532960882867392223247048484983794500042182694101117851720962793177371670413151894072031167655154096998422664281450462094615392011213210329633148327533324479816539378718056796041324719988505946416421114372114824021860650866056137407442461271761283625528860050184802840282373818025315424958482912345488510980070813401028228289696833637764210689181136181288873757323472521136975360940045098846103339376379941532457066541980184044380042798374901449511313875939460559482746292782786476603122910361849497907988362097358809880720486089472446202760084591933197722575282836888977825967530156787689344266955771070143825718634431941774876254398317001021136412905874488821156980577281150230589929264712139804345183827439648658106723467389590937992898947228930743943052739598706707302433210388916336068707004413728432318902323613324233255256380319339083344244662722629544973819551543561908091342131088568707474314620890419172364351405013090601587073708803832785652121906645363668457971316267706040035047956055432675040153469657923788212663734432400341402491938511099207865441865936917926735413327267386009797252108575687224666911589425683216581069450126941991097864188898261056998585660069753713666247575364066466618822302055717256035263303828924515624846979727916778359234682006351106159545999676289274494636273474791256178203315238842014316461261029683438405658960909046331372406868931840102587962868014661144056112752952126519422368761636803746928398503990187211391069762234942496080170430963030009848597538670287521563460933398892439075532818601139829153328561718386289093585222976519343895933913473448291974355838471369061801845808721709957479978726768912714540853742319219386784514928308293314834788532109189862747665759843909825197708303154334263797531527870566832162189077693393849065914199751115936941167326215558897307110020941453689106505296183148302615462493262411646312764855833962365497937509283808351189234828447859114444216644308037071559639936777864976602531542854152265398300796098792441114217934421258931052444302244583503106135244901545344335243006797788770260108632567581208449794683344734877146003449769434760275555146389487749460553961624539280779625236400948152163335982380957258770672985102123102539483439361651721639245214960631943446448193300613726517107280838255946897234837746676790817295139789576326951381270512272713387676593759374609121972164058941948259371087528488748180305968015831232149263764640061653468424250482461474630547357364462690849303775134109223480582602761809530318804580748567221952607190708426357122962707567620732166517128427543760026615766645720248279398103361377091781824111927452135198155204244550101132532225911834309301869578166584611322103908657540335797246849091802186796850072551875967634713553044925191031420829921656164957428720985485939295574558061034734875471677119876902211116246827827266214260928904598647010049319149296021178792397987443749160432919833948384592119311791991453053193035334602861961968900520089652451680218007561384129449272463875266990533869152103809667502187471767007819052501812892521000720027232996427030921237861757973506775154855392281984309880607940510819232995621202391071329856300298521355788861457459319425389068845761259676815316803134099352490732464907667336193147675034587526899404265658433364278888002560158641601053160987181252468074683007863134631257708849544023907162383374406208924586473768238835739471067320450884050348790853758905634501827999629424566473718449235361863592980432127792248918877878180250744711646718576670153636884981308299102367660258495215639031752474926290741835480652530969915712572127098725723073867177534173109489565025445877204876478736311865028542631406744489847900208634813569034492104429586200552639251252187693511696282770188374904778010575816829802980340259984782305853169734063981738351958998662899613936310911523203833833515302149062823059360358449554774930631638006520697482203929085148007367907505840203777879353023078812359377817624512477181518736558181423050388768457784247938155195813263570026669961162412759198052070315212663079500001345286265484801344100343901422919432264152566177600812122665801523162759985936763635917614090059416557163058381583381538516976028576705661951905291042563347642608467306393522398328584572948845028306691009940275660897199443488752584867038709123217025989037308791806608985156023254708157215326408635257370917098969166092635166968333364759606696217931602517920522071616780568923685590264067829446029931338156212731053813833173991601125216217672753556446086958476841857465697996607028075846133495512248157201060024497156613029252348158870178131170622593767385429704123809011550444349687334838711914598646172856810464099218937231122950612949789557446263777633890574163235717877221445556706940680080587162595457618792672397001860265573937259982020381387348278759069514324434733392810176608243818680373502376508993242090846847687607470019117756338816623944953752682815789170958856636208936977508681954089428121055751367440332537343523677659086018135590745041915752653602786400003566941897073713974141909490732629341516884268130337712782623135839629579073550080260311041222471959735342534599083415143947819138809965651809697035314453371861749810221256423015975501483320497561956145333092679036867275892834145645463619421352540232541655130378138292935768072907299135255211119320231846462752916855617053512517151999033478600940072002297349411024270243903761233918854945406857916680573167463162881787575359172401896513004878195657882018124012565119171148022903509955878725652529372413290904106569282788256918239819649070469469647505033864136834010738413295080102823948386970134305420795642459174396513829765178859262146502128392398761227427978354817937751278387530484895366397224927415043210330052005055783315321887723773650954498548814851475474857357300341662155545967221572237349492466090474526517873115425633119007408791562958536238228935644304528723346349227326060766513513486181238900730943314553753330996639912836022787596406879841720848629783046605892540954704759104898079100134673593718103901609376292555878961698561272073430677121143813845305267598306727297293027715972276283908494917330943381396576653150687228819446257554919999457349328236161168427274402568125397977099737721194470261758985449335733495531969536570451704778066566035383497737143825871097437620453163384886744065656470206665580550060425221899023004029038738124627165244476739397734065655869161926888903219465653338237883822368139990549721210066290105722964315875246921584650722141167407729557062478923764919398975544902597015323916015661160057330189084640527968989194218468106641711404314152132957090592923644539001943593254287769473667172693846079973477049414184082306749275101681516175276673933742092901173564425627374794500103908386911678335507031462102873105337626635514635177292970304950221423323933619017635523645239230692808242238270345166551684637819683289097688323938751328423876684326413159506600137182144575065754755535427202546817741993058626599700490404753493363251368192606763543519156952965857053779053957248557772949836988479741437578509692458685445391324326550600329251470825005962163811775459415015668798205759737032094103843343837941030830514117775382099009118929960464605188764694446087887140994932822676535527051570857426855729481106230134582167640475935009044595046387284613316784736390896006547214978597908255256971802888882259583126699173387942447636176587031251378904604489096039233808702118225514025364636178382825454493834735192875672274038737193049980181698281682217612969112825608943811551829139674242474485113396872438401623746264851877097569026770361159079771172491349852149609634095012744031285197868907095957583792055744323746845329839142861496844589343324297013297659392948098539563595259538288836247567819440284066305712445219127953650978977338295636866485013786761524696715828850283318788036860976935101239842719376971216136324305531264571841264716167829772820224310066079177404460678528937494693527162027696414741117381125390224970765934494536991543249227262763096483112981112295922884294323289302102576920955966495289410464034006570888813190369289937758447624617885294661875241648850864345593196655620426692646922262299220035238135167498880097726281060799549562174683227154977165384847512749754333616154778975960539307096804674018123824051051349768996331543661870633954173118811707110313294980389797977108961030221457882658332634497835118414775261668550539053543786217050084898458131927764737459233764767618278746077469142721820391999107924608623014314550902634471270509703801157814141361951768284867130780779532923387323782407661734930049637169404812103642165946500977599561597023383529821593760846131101886636690488578783709598211301101703704382816689495147163364295523866482900058630302090929512250317471602349556149596988649608252480147422954725024871454553122119559725205525239372410144763982075834719946475577337840071559205821070964010963435216444885841618702969365756569184171159235205155836920217606731605124717650431649039968276325885795743774473088585724076941952954237112522466449844199746653326081472270643385976721793584856174527595585623803252607764409737983421374089246001719791865222150330543493653039156536934396688479138575635716032485054346331440428190916146278375842947388865866275393169701572391963224624831573590650828285732583985165436580566840084409118052039932413745806038944720736209622474061505959732057534270611631457759593234587940507948303336643663910426317402468642080330494499035278603307357719751110151568718949593401289307849061354249104164980766576936906629935973514344795844048560539427297017074715971423183769512030707090705205082930434168610093421001044625588954944694281306972239339419247736816617964681929533127372436266810357648613186183344198633051259108749044491379817166612089302495441188068547762829887996065996548248293770819318410976682166995196007662117686529689635143024498913685121142658203374370631214980529496176158295541684984516318971529123594460180868556645208296637161211280293503731883253326896170424547696314285559118847234102906076171613329444303777167386982225063298067735967213121345341085930450815392356599836157829953238905196256337085520536988799989481228559803444360698125415321760280780578711537496082695490522177890421869705189288824834298131377645623140892409774315710905215566012492485077828611263742917528419322429102682408968583257458237877709539384047532661174087816906789316805404692625072735202568158405835264569547490345482319388046675545419952997966373010501295749554447678900756355877378217913278523806283803974210595127139806220172587825787880570544143601703655741734996400902496646750348330531833667168220034239020431672891615396653703496173223288615191285003672140500154566982154383152274693828022589063276176431206624550203738089207428568229734467483049746274304653007862121807136978202252928397335352227267951332702060447420437417466953943341415913389909208462644205952169540980366590238643495153553067325228659951200953091534640515020897977515745766134406544515837450394625806756781209086542615264341783831855794128936009643310415795627055442631254742028170679142204072590201035946481447664070210647884269527386697033866208230714902377700797030238226008518119173797966352208586925384629510017704608746346541583418702716479728367673947782466086311479572026813956809308431379912210004183417054609570144644551859312209078344704303457113338647592610298907075639321270995317786337181311439048889256590219630139250997025958662528373652508919552152068836752740432839531804493157920991565038340622555548280758993277873978919365504603424340807403497734638433156932489941925082971731267896967456954268683770411783132317857821756484349313393433370882902631618097121067875605466650247505072593252500609312860214452553751532877104461678091708220306392842435844376073440634414828031151415012640447856976114457138166408683306871730798066014786443769277770756971296158610011592494797760785154702998678280510939197172164929820532534396542116926908477919072520645001632940369732543486638797854503108964658280999714809746607288888124034666532628172712996170525012221789009734668517197147166682506563445029205022568132051041714255300275174613368350749309657888491317947729656993260744475220174043832648716882680276887113919868765835679027563895019700568862286926161089853265099710193336001114022388035671881892956846140961409088786019069250070975432844267211387155720327639399011119229405012241324330944089522452256023618995797100967627769199117864777514529510164039979190587209055007480939423652364753566019571156601881454437186779793852546106531254871791817212397162590504106280335579680399705854319773944146142285957530423811500993829292725020306291987840796912822466523290456277731562678038889805214072570859846230443449379136882510385104459652358899729255422076052321234381067735480847164987283417643538450255521923187714776891086122239392518917766658976698104724639012720494696309323459545715115156727763090044952729192245599697477250933321333977187047113249577170500164174416579103058873303827576152567910921504084187350344178234871431022299347403558440963049362838441627672764278125237698698266144310912351332465027144263290054370480462309013703601312134785380375437937562017066000544554270736566518054911372099004212370360160092665687300803105999158774425051765248967901143722678791637312276534763746758386955592967921828851634673923540539643541740386958662468448112679589187402448718363948546657477465624227883887823435248866792884985873452281875355892516182041815358094919998513511052479173938303610016685353001230988647198172058455891281769684792801353631415161121461113402654984489211771807665442528580751348866889942075131631236320610239995867154712680799661368227692734700611495876374365390383030554973479662909967609321814388493692849815586521647165313589684448776010390523882154385147100441580522714864994995036992641157231570372821482321161524077229086222800293534868817265230051360348079070856186651320398148724455208106466977531379674067754027880296187092647023843613276538096290645144933811145333303396832633375067382925717916212349092257075854780122936757454024193587907267466756637674911491861591110154223968949665411777418591872972346474116162681988253879026348388648513995394137262988806224995907366998167101758209854717011748209288502993759954609941243393920244828846362187461840338676522341912350754530491624973632689627892093429413425908483227846876492640743090542518185818193902825045875257327974879394572732311716241113820462568061824943065913537990132474861051807786173082556133618509256376384315955037192108138786925847362258110716731176531616682484404555035169969027597809479703697130278512886721074010437318059216988640047758601262337175676653777420130090723998959488146233351593272174586047776507350684776654718946809934475186952310846314322771345072339011654285467946790855860835252221646936649245642462475766917855821094448467447016024970489238377487448193627197161827115942434070425044879623006485837639856515456972520116408445563026638149630147006100927073131849991939052427178973765744559637294309717514467431535228380545117017584164869879748053571774122884054378939769935872226148684674182265631574505316562225712391882232962970785679893723233131883420845551198305448445871657198850554888286615612294536239135534902130433062657854777770758855624078173899237996091980508480295859631458099065713292491610175221027717716776696967215881174340225019981269400996637061797293816265867775429737888391721968854553457218632765601025684291596390626041974875818850930975778680330038986994927692037064282892766442561828815086003921749688582160503073542013373487603006160811053641635525399877022802377310214625790902774866538429730024368757610387509659851797649123356208770833067262583032847826783712978206104761948220476879672699542137178261885446299986490459694112560071874812627971813381761118168182631165646423166324160400716186352513686419110423823446448643293783682818711252037172181220814957623357423010173418622557498442982108274366405476066138154638993757226750903469307975204822640470993442586379726835044230628629068357041365409471223838944442995543799132141837517845180058706079423763714743668424463526007456472149635968920396351931817964079597660668204457595952205649547852962161195612838431451624239839245972630828788043643094749864866853306540822585919236163777863086917729161986550368795958778965784654988085269408959365489460906759304652816905482295644153330887010380994872588511419321337977045804540217143068234739928857348285270708960369874017003137543534459657284492351471540333135569187834132716751898727725626121101586104264371813004018919894945161942010615476050720195406971617521673147375183351767586334038641815622624440756383942446995510822060895691036425951017619284599212061271692510713098746616213401100254191134857087462792977976654458814106363571304653370027666080096234407602709887396165552770282290223890275431802419173467205497770347984515234362896358737157949110344306256660956747940177632492726858303414369844021836588335265181913838622388546249515870028030718674471149847790059021795266282540120694545431559656203399078011344779299845590193472377785915706147148872471970411102929045692920556414422967577034621182066500730381296816354607814225181564235860749656597034017688077429285927527435599967000105069891942325650961597626840390803714267636704299292488437172089209062460754175676778145082358438193149457632993702180556384854639614828087854350971858996369999233310064968487190319068853915682885023185991296946153698291195693854004392224353723044126528775447542481026069573154652328211105897553297353590343477723945661473132121945838090220267867488499086799534873554745410774637556456288118239632398882773840478239172722578864477273551770618832737942458313820361898393760122845932349366433081746304861128746824464840110924015936421366911482809179005989555035864457720558176474703873587353264286799592238506917348026533890009620178089805866633445954020265243747127356094894792836620385975682592556157995983551549893845251223811612151216301849832867029292161686573969347690154904900280106065442238262473211878400279376566056305900391299520682690192948237983954329564308731856664925752761764027008481613775956713990372535296958210310292132135580765364663635271827481005241790752952485831315758665954332551000495357048643023657984540564894861719903913320978114953937824178208152982064924671569969718744316195693264647035155961646771424304663733152087505512517613104266810164968065717941707286141356995210252789169949791959189213537825442607771197482503559692930184314041904781783369016100407739120386932114047290215753993076822759178146668340088611918773427617276763874001539445450730885518114660348402903213567761904851293639438904836102914717964273486985883729592444051209378565926895282262016340598315554774816608096458884451862618864028184503826388788462373536422429878023565166993124281265376552913723809461748321540286705328559282328542773823244386053001168794529935465430279005153410305598762563712161264893551163782642473451681237301175052704516657991506278201026754808831263578137517829726279863256259184422442783248253476487607675394325653256608450526244793734677731699781652788793410364682721962934442857966915374082303319476383999365671394040512280879173752930132469114187393331651736642597821438578058794349223518947116566555227796571360044115326638946605150895591955944910890225540470822380424211418355845355095221088857004932146997793285241706360816694698644921356750463142407501562140472507924439778625576513514803100233018444490450178529595566881015576754734254158985960937355112479744238483865313426459509816206870711133894203585996270768460521822866743036213358061990501802839006098434377490071211442709736982291872872292972943342709261197610105913305363705109062377965878325382877584820316438633357510540587654418383319314708562558880093884939175171282512039649286879777884513601903133215290673871407967201095832862756723887823294539051926705664522709401501514248126444242913281596663255900417796757462321555473444570729677530017913330449302093567202595699624164350784460197147408958435002030441046621043935021304593162555496753203712145734570721422806162626843268412022057545054676089493276170682382427722707869124641569272361406046188108884953572176266054045662737435140144695258051380872051584076875878430806440120897976594765479099773974437942733688097615557183912587370805226098431318524564788634765101611496944376412558082334836656075448632566267226144665443576216469340727711722706685094532353637521729981035403097096274622398663242556851473399663042696327648642892656181716550885784457604773573832178245189602890563532029588710671665405812658850333752406434114071682042329795111158488332484514408912571361083573239021290671432081132778690666633726682288190290229716771124260798488791573337416876414367660694351355930033986851149524603484358340164821961246580718991954954291948874253470196675807891057689520134047327021831522157154545765177903656091740930360940525375511540640692803777030556520236204110396468310687294908299231386603987308980592476400214628728094231357481815145143433944597819651620328355956945854751267511039427962918308219046379259214146872837371500760146485245152078034168877719381508595722054632258667334285275804163579302157573031327695191817982724390114426376165366340123869924991259098632665670352948319825378780566163999301265648967768470453879063534561817610493926928829555645347221727383404405343648555568924018949005301898951910174051011567198636490263888778966427155309015224843469343874950929712885863885935204187642301275037269531745728083456511296681706190972946056895621272730381854699248302337058793529925904203381623549587257879939553803329058923326693009411333855839745750855533911710874315273307892423864889687477966258020015066567609613453090296538240092754972895376266084832295124405676157279799069865782401457555962897997473480591743233109748577541596988813196487443529561528114227696193093953555494421997491387959381829117801148929755254255604692455047117277797474698517025252976552067991403531842601153074924603312716620746740512492161772184989810690666756628079350815034572449055935193388226486859291180799613997275931297949265765986343812905886252753879587279607294987266846923663594745685795741684851178821212463090437076359287264169326508535272315967456126867392319646947646096227795215020051607732694489215560439845579981603974551231656574563341548350825347891277121735269783732950827032740245881521922699541131397615789422884329621991831347564483599996016043216278385149412641445942637904572147892139537528964269965064796316852795814767799712189075812834567607492833757239624010727595640551660019116264630651930593695503307093545483091944514837583045654923851965043219607395606914534902930189548233193463845876123394223849247893285675058051690347850677740724065966176184080555739285457125651521997389934545560897300737763389826096673826996299084850280660283623283665816946195853573452188442757607180288775308197651924950656728093202782321910812324614315708179651007687408948697518918096314595575627216381725427240084632983242647552302707438065142365348463906483938040672004132057982540298458746157036868677772134411274863687300647537576342148208362043070137915167910269961991977918989196271859876592726922842951760201928110793767750291371637048458426770325199319512241717910473881242501509665730845734995156649654032111608088216726582490598063793321173612079200596576479053772130002275036004619123186361694075841817337546925577643838708852452069381882267663107460619440341234313320815100231120284816166641546143537789078188540718486377104467092018461287903695962849701628058190065208654526394259487438544322738897402191618242666812379910396938803651875747140004939493171662173343227879696005261077466007835804191740917296392239211988141874348750785713639475418596086134257904156166649652947596541632554903978181243326073218308374879191725572881739533718129148989169922739823269200698995116853695726050581948839706076944198562953838706765614569864828998776750737226555899052592140612594833635040632827205845319255330384342360502518013583325829498743146080612155112029517698302899309902839711266499266624291071001064652414187716761522187281897853001720566948750608683891748453824193233211239947110297062038624947380859156702627896030869453161520030423418346913969152255851992212739145951650462810208345522950860320191744944379895206975019174873903009418237822343551833735264159232788019373727198996051646217422961857100361146675511214584611180838705583645416871116365748546064468311942315597918506678561325383829259614041489322727064756640614596003604557477458195300193097546596540566327261368119069661771010857302138528764725698186953555621704110953060012236507800470760552579022026640837623184952786399489659595170580841829723548365146262095412295217607672968034212940154195644995840810893024469972963378136112933962958843938337851522747269774910024643944004966391480032588398060459735061941660835603394689234734023356692457779490131387269780806269185588697739764124769516690559302715832945354414283974598229741425782979087652784242373963220555380739905217632920570024201199647033364698148706411443525803057693562385322646908584432393834876247200948941031249172675553823991431336602054431160803973818933867245383865218464937476343832832093905657269932995737011565429122514112054621885348018761057680162440706781083015273200509836048439053119012859196978021867362322156203974061971683471645558971740107741621277665091707336676972582743199052108476745342198481598959584956635317028670686993785360773591481009475831681106239284688019610530687601759928655281482476927775953916063549510346608652005929537045038329021707945222098266463145153529982252111858808610851096309071594173489199730717977522742822656033082653464638114440181348862563087600751229797671863842845032170206363687276343458599173040949680849931032988036181069988294344790024204532463159366272683909239488894838760203064748368790286268979198555282025552318798639643640179527706082829592621641734306551515153986625178324839437714592490452606612568460718637611231645335491443615962384205866606220051151253467958201658752664368141473234775933305146305549860211258196902000708106015276405836889437324612133501968393104697670340945599473236702132331471834460798896034807930183199826723749554120789814482085494837841568931624739548750980370389911964754236084251479414691466848414494690851898874295158052352363395314736230679355151468139980193824683885085828888572480172345009698932732544893593513153670211487749282952687406764623431143565212498122845639462001669602662369251827623193418835397532168980055659832785813335826267883722915018120376554281730406525282758755624288784949396624732367553400286554651812618023975129233671453825940001336049073941774481735899816761188275319851776754349833221429290840568000107355629566487797246842572152844187633273469283639599365943305149236641537827215025646440912658228008572150305591356697236372472951040871252212821231269838415346897095723404251930697006958959818628411664670549446534661196419129177364636586167058378803179860135555889107683408820342466742266629195527401596778209894862684183898093606920377830403771939465106499851698662451502973127876976222230733253794874026967516270153915749081948014815932886933311559820514562919802252921840537426017408911783237040534943936540363323449101231417872111185142214043750417975082752985377747356470097742212350670044570707342964485719608052815654756845105634070535760356005820152105907795736020714184459721732407167483047720028328844938227825931652035029960192742168030974408406579430352864953427652628239949201042816754313156099782275900968158858523710036351371363897998266022658879185338132936904076954439873979519862358206195104543853205674871748864870840447443421997108959618871277793982993521662885872448378494863957358524921905287807097943380764495036967912121977602739569592003371072082107513289568845215140067426033306828511429741247564131023357012879396862973572436385603842765954648672599253487470413577878218882298829560086206796406326965056905120981854052536203054277075570194565102703272594800418023302768022361019314139167221785333674820603855318109279480310119724792996583094335643827081875682871395991375182908107972843501399405588502986804419117860791441351771475037083607293897142857985309526221910805557243452366833350149516490415319638718271607237278548073698098382585301620196309904482262574642421274188529676839627901287542402107287694965508972699530398386316945074059466551269245636128730488266679606554817244476059994614473683772253740227503431743540163280436863845147529597288142072770503418977882060021476510148862695790024688558443714326185050554478037105611082218679341284341800680917325910705196797004822624845006403578691394089568373375896172740488527140123243391573352115961280475246756082958994960490456958164716607400299544783705468594126535654869576094349508782809827405805104039168836659625777811816555670209873907648912947919468243439322347981567575289477826527877858638241122565198049650111022103049413837518292783082188407507082618498631552804601845501583953395832982464925341982261821949950776311722904646036387812637599796723219632065512797816275530798182713658668876831907186773861157634410213180943557568941270298788066479019758998255020205053487601882959110509175994673511938795892951893057669180461953295776689845178352114102375273357039305787759401152890984426420799155598393306036651692326803334089296836023908987224201280522829570637431417925389850043175168838434932641767814617793015015002642301013612412534857297178326007832142914023730335146429061598434677991358350454560056069097952393985082959337585703787234656447999188761272690821503854355186064052438377694954310814422688826682280285044389193273981632947277302892282423190898545175684164626560853516577187632703285090882469618769029101186585016313588374438569263798695872372300330103657349499825035710997944040617176727743096379171208573719673756460552834609440792588080006139253457835516305855040950648553253089946847017877488485424364542189649628187140153440173954703585220990808197313035858659011766963666508113998694518774062075785252591192324757169848952492021679793465916509437925598520905691956239240328031237135835772963880889362469514669918341110069404532997668131300096774437745713040910664885044522539859666393920106638592648286008738013912501857784932705820641719154351101671614302317521963051502242296160674798387320343156111613301031106888419869352401725398120902844338084551848821886106893921063086618134444788425941670753257285479910012967714627898090096099538149617603007466816400268460724987941401512900947600366223408832246504711912006088714744410844002370438313351728858711183169852315251256808576082336103068279789279794515056726504955952448115514202689572905416940850624597302670881465190638827275435498576972684771361207202030579293149220568564398118215811190376305769667134418847130900897667472158817923560451254911636617714113602046407490632053000102873472662649460963436871774789050833541774911758537435014932325858078482862769685007983201756136672273007760251121084651277492810974854771120401655561190079091431920741414751731801622713245203162542576437653418287156687220950131206470410706010745123236923550955233219037266535755364517440154308838066590625487779125524357157825799067087005305637661442368790850273974442302284059843740460676436324212638892400460675228482749712076623486797837929116352497797865203907626929791122757387786385045937680635868803796668677831929580940390236728134249390927942409569266803090778500532024802024636378312300257615302228268565617362718529679051890353623083219558478939593364776576134354835785615493772976741004721814384636005227244598288180514987345510734789579950245837691403522306135025727465339498356346428203571615234382195817754909422875573183133939409132356336065377048581480549338247677827313089158125876962159381083067480423668694052488671724798051178378260800859074399002323958238482795380769151152798222762837366143125370563972153171275481205954420278083139959707655067783591035455851014808099738234506269357440654994938008304317783592932011618297444418713967745731540569673777520875367480539972900563417331919456233679391345171849326009666767534120931532851115216709364364777427511540529829979366356144066750863050066457896379589298114238974359065001671667360046074022982281861748433121458343146393404787190540184729771537110995636431173273144693152260965300566055784603821445624259653564406884661827406461216950395344783275722371748960128747563699726708953450219622313137387483837658237480810322119797744447289320371190965112296911940958883711741343854003273251294084804916746026911703202421631536978170194841063998505267838635011942513719885277368514326217873247754996671561050598034669005873937296076314719012663910499433858624021297620842148093203696898819209603701975934653424316581734441860089924133908229363412791578339070278096575120312227190804793674821166635215994916559510156792361676611039882502344283643520572025470400255041472588563567992793501757733696406388132462430820641878047714219235710634679688686824766311642559739900874421851497185969044235025906675609223418674692611452897957192846715998054141575979100797415964298763043715950962662755479093231690511246857996147859525569657409671273027693028854126923631005189810274479217790301257362869847182868607129118797934012322206297281201947134054839521766555114496784358959760119814890687768448013823626060053540130817356256986639726915827824633264685676518592595924192701202806283413773710102337149932314762942055730512297420395892023983569157350054911795927914530394724634070786335138257566029016316083257415023778046884251139732369422204475779111809746634670921101850527990078644292423358984511091562001996896574992179196369864264083151750420041821434634739778657789480196793451230841222351419781827793991847089870861594155515365372361425788404884706508910398488685412697996850443181515966793778943438718337222863772226986307249727972330363996922760660713338227125835006397209586664684309161281414508993146747276840546526664205018622624089360871374506089208157527951011392620932910902023752942395043708952400354906782315325818347212341455519204176383095915798061110668378971453435965290979205999813505177637759909426083069038888199317510834999338326991309873857153082844297671986294016088810108553058484210941704779269192294016214363127894932723458319670859312356626752411527031255980967836637797556888764318494036335820248260696718574696784737939499767130455214064913245153090098601308334710614360955242907480358729969033234212809877010730006081828533074756511524228754114118630129480126839893629794363089242105686589574228645114634850401174872863811087124156351834633699942124563078671102028692774683267202613114628429062846781670954571296689501327809944746645665269947890510341275597472198452987920404573358148108303964622286494770338709058604676151261108566956146358995085855377567950319299956116639744972103262912560426919677678310978311587733645540208292102592983614216931395294948036983553437946609181306431980283097094896358443799021691462553570565747547835753038964804045348032608935179252224049131286599023815083074961358291719921657682092454194172765733462624812032207541471105785507375421874029693730540221495928236991342891179510183421102857673348288430285900126426721446690600621025010810214071253868155554675321022843149313256497555712823497277536630497967303928000300533120628881275808689707262718958180441351688274847423427043672275008274638499165519312721049848790648402763721033434752939029511912192885667839696762215954640118833178892842436067217335490380195769322525556925901740857662606299917407430331355808115850877588236626415954973477866758648409258273910375210135136552550085168162119517558161711708153213916701252920515020724697998838926448798825158916130976425378609912580472140541841182614025234808554967638497501365310798049622657165826438514134154954009936008323563269004985552642371173781752769595281018453801521673270580892450553315646379232567158071746775774523152627914589684717906022119103552583943174812920056036040490773286332556560951892325571406351275815094470972813320253031837314820800454360685534675682794876391207544275408943401038638698704449447324170419321806588616081997282415012306264800399274491367900843000198547530133108308536882878374673920279287260259989899468740466341095966771788585220253547760212093758826343915503318851060887527834144102773801604778674509317727345134256488752308315399382370532297808347891202265257482486018128468868869930378197741122142901928681028162284275118966875144551010361285484655038351027823374282576534504878543345041319231357638767007316859473838544469706164193720894804901710299948114543382047928766151090301259173115319915568386010302560277523253121316377084377929382614542106943068038933892945381696960970165321255914650531733905002950567180626474390591399649360943911628415365474434937729996749727179844130785603246692928657201588397820795003675926749483274675407311495692504994998013361566756631226809072448391375893792032678758159554691377905401835838454492554160622620808410811002791950034384879036796172165848272798476609732846496775161437751231861407459351405913121092508678689643377539066660783285669392517774917445959113482727110301718239712331975258805774666751819566689640031987413425955342285154182445977102067680480810998556986633273002298350494652822153414605342977768398557361130428947311843370522287600474229561117216772954405327461415370016470916213073182503289071625549748611734537878822642737652625954512648272371400395582739371340221185798183341994818908591267238975687506456942453238830589049795951580440989526356826979287149447556192975676390178992711432858878167719226225080124414909597923625573265697342046929867071432075096568705954115670390390015267650062480582161950509793973155560477483103923590926830883037374415986419477462194327039689458095371203662004782905039731351125195273971993263129025965404268623548816610663900276501627931514691936646500606050689043921238431673677024296109142618811956107852236741530313217797432565306703390895376645790956441301804678163856740894144644581317722992963011475133914823544701943541659707908945939451263990741951033571804342401014769224167352435869794820553602551368707375667443929016532812637662706107891257066655329824405359672337336833168794706997731935994496910122010641987949584503362920889214626128438021929027313522829331455457494242983193420697852817536387402165748810653525346610229889130662099117971953130642822775729611520271647372750995191622893271389989556511058470414530166597436529855131664221923136431534700451266998257543191483741226858925378866522945575451979287076744390966921028741711909933220300115838662122593119311462331129166051003898116508147648070556600197597684008318657719408453894695877619712884437930834185794921686783600408494010436123384221402688240220386366970762865243450008315571141469491553918828005898073534962476074484956100500063683812139882217750939177344900277000346799521477988172643058598401680160798761775433789718184667847513120535756350837028235269785225868899075219365813142796890941102193585987059367970905525929819467665951951714074741322920888321052495261640797669283563729074346885154852004236241156134919621403441886709840706105600926502090803315129646053124842757324189088221355356652245998209996682039604945866096650958164184687227409592646798261712366244167480699690179421013197928212502555587074167764265212563172592321166160304056816944125608491209391265467261716910328977746907483628930202817324928320540301047897059466555593641594812498274557816757069266488304359395253466940029294374964359188657916696373867649571227100195842851176253884380472264399858258235819360346292257115434011968298169655623975791382008701642068481593822584117590116186143951136482064431134021647065296536882616168580348612332473281833776457589193489363019570445558547365142104047237545460810564356172663522664363952141103642792519122188314232796566505064982998297814782626161117561533918809015614316454278341594984190571215379126112552496904018462867562442971634829157816473639462985694360594290088118951180841332300759833626605995694992490383018339962049802726645241169527534122192848823977506667797333405417778918236993381141919915597356093700531420526514203860031093707649042016350210850775103028904579588012103451417619109467751041994214687032820644382497610051004865948704381371441095790982071390205927187722559322762590892195006409344810940483158806031276176691218823575512034372432393886177742825308847820852680728419990052515942480922325798018286956549096382519418658370861558023508962226913433276002690294196937002740987779928069390359549764597823025374872744037219607907431823216880329201673097838572477157097907600589878335397021943175882565037579713798365775448717494488723638512095046500253934300793940532364395310123412588341035208608200158918063832395676264386555849620112434289275473724014127926056440028946738039879135503610861051810903535772846729490328622183976433083806973096426274028948865667628514521310641148708232249318739504542124455617226219559153448284002431896935727442674006006932126863450438134420498260491100612464254624554272953114210472914836302963444615001798841213397298515684534439070478588450816578467594424290742047838644782267187596243954385508173684142789539459382295408694183827327000512046528423484921849403025799248113416051409824321514850737884206758654847960723127490576007523175117858070474439152038318573479787007118719434772723259709066467558458967436054328521825276746814594601630040324213180413667119909073954658725928313799968935542427090625205599850052228332337616777861671695200880410536327014648889765168062355282020489958775302833704554843787003623351682136076622260677073068981482811404305869736713158367220429514243653338164145909191137493019911855554082850440179785920911077588421359132640323869419470347710719032268496930806334866310097403643937022214039740460002885394161790099286942945582418115010394849022739159970101718290405844870314487199731090673765087797710295350238409635749936065798529780554313592941589347144790405513006645150718471691357657789094287447457045972180686764106260690974489569423628287706013269229037000910943216758051999387321049738185366719542722210088004408536621089988956044282008575762620555330419692970404083040557594928131798000448981009760987400925453196893607620823681529200892034786380607498330620081702752499018873939688122130004124876412387505681760318266618001732793759231338382207225513983247401435854880047721426982244657870586632917388025311115247925354734889700061245653780874870177931634584678057442675487983988441854201451831408609172401492466763051623671960290127134276495569423773239265217009689542627849546590722839468637219988354263755776406782773733416055597336868952720201307613295837881042296245143989928936496382899024633893242090077286202502796041075402043147848035579820928960719794155005851688693220222349708931293131319428981819608947506798265035990462806871478603493854808153195850800606110939631506687674662321955998310766986223539193815720610932458728849595237942339607226126127155138143826190768978957077085011744851619530842598843394149235839130763055801785917640652943448505516457713220671224719338298239380900199788015633952863308271605396687159733966637965642630677276149430465793353146475013615271303333412510075835391492928996638277485480018442155700498918296711001765936164255747956447309470273296189554009436516941479657131057331610790456056922746989103160835949710602899315744216764875500435440372143523673511079686606815678521068819320771904989453290113613963570235551610858853192622453798157328389797641172257583809360057437598174039480999131694028162145147072053082641122436523943383122318748733503415014883242878640664555338178052779141231347453730159025216741433847028924868917247516041691909355724566483452617246547053986621445590710448735586781792007059663200066036633413265884302891746224325037970498763682381229572759645613807912422732661923528294771541169868972413855330839921699853592138279965029114813928611297616791085922609152086964686156948359101817554435132188702673816913240756579661131334358927120422553354858459122813645739448086510255611012735783103025700417734275153675115396781779120307680901754564953803137777623773428830134316013531359111383197894128178345805299969853013470780729647709551442019689937116564238132106593778987163971118272288145241045998732165029168720105010516450331210306575327833484206374679398004462489823712408095491042332949732414273531195926043670413997902100478800533224449196408880243928463590642001893929065186452153800515283971417901325862449927856218811778955764158112775456850255126856212604606795105104013274018063788478093789179048220057539098735709260537307103855436907810088316951268613832840474992565839018429368715550855872368861285574185319842114418549203408670071765692323223478170189958095712263270334562195803415312116147895763363471398322615681281923328602296966841295877984184142565750621058312378520328904295611337176450513828525459940567060751875079747701742629868100379705520599638445982150564902607467674675945509205513431292354530970184538786568487636111277742590781144696521950216000317502206558650382252663057317267324209242532463421293856654906120438437771272774053782534448564705355044580753610571032221553001179975478451156646250079608949654031301484341707118559860301931931544394806808838138091142530118464194353270029694064245686193572379053700469797160836273154418294497560521653120456152470613699897146299540906077985100704454539969918209213376237740116350042370628717794245089520123202628311803370960665842300411870907572341370708822491957580280716155771050970305547470053909605547747981815945320800790786052919187242422560589376245401782101551262361864044688096889980024454670655575934165482964516882316607890977439002191518410971136270388507047787196827676385759399417742166706115204070980246777541745607518288960877442150889486556495374538185401346580418370147299812186477169447485932688703243152469129664338288993868572004663480012126819932455779273734929052827383249797312144533858570890056947063137620594727732283673464322719327231280971668774684614297641064789729415243121201032863752291937581367950584493949893268507990936973396332640969141265653356228029992508313996923124660247726435529095798439298070592476659346825128188282601124193841526775236326629659093421160873185698182202596552355788603109539045467101813033135676984522547959823295580300857113813121344797584205669949841297134272752739324827569009789971037351239688149555757441559099684798110478311028451781415808039319514666172698595977193008550786120126620070102366229124251791516743904104202201380532057576483682025132837285934278471290327707172775088589230641688938245104288242916287827244268538446025032981634661270739705970458261397494109865259869740745408205525754147955751442567092844784171701963892954383898909573045658812152718554470934259980402614261408820322410799246792981850333396867908818067995007670035693077837409122566971991357203160400835816710742213271109187435413856250338671551874408384815317319279952117760932902351494703600910137897022093399257140759666331908545907034934119113810921972168475775551893107792141329185922400262432886902201959877514149925373378496080785142902598582905439905691624509369226558166010036042936141083289646933833495161488935364048613237287964398912708386975886297897044655425150524662897727023224823641196276136206111737057418320900483851291033458961039306945620325104201526476120850069406001337725568160574010067796377525392558804118623104131632265792386095121230452315693499184231419026452253853302763933320330378574077772662860707675760686115724698812830805186488980139945674148662643293716124073709738208106058583827616521673434900391589776643035911483869218308297438753788268575141133535238169955413871289050079390941376255353245479124590156831939453719233837217982977281404979974300906156955610689784593120376662290930334836138644078796400067676308956142579030653165166204686282057705527139577054443180941809937534151204771689954896559959679690381141349990370047775636346111131934500636349661732459492976819963191588113506611688669029481993052982903736995681161675719677564230009381391937211373139035354846403338076667971185685342810994526826900777199320645163931869795639819740030883007892830274079035860885686400916549231263915864495078032962177030788406161867608370557599763209304856587255515945719165028907956638102323356028573520404865513028779856608487868635339618207392558230677606339966103365287134208725374403778541692916736593841692345124134405893407605525654864660649454079463362860312499858637342931855958509267570615139263541634211551905730802836076647107182095520796384777667644804982833169797556268284253037189738388301102571581257077580422588601130007991630513090873132063808327945004904772169206626269604507106071490077759498115605569985240978918152590706438254704937231803131057081947250815491635894806141090475728537444955127457252621177045140341082507249422067689702167916991083550112160035697774523048602416189117880684497391344796093025301565315991483369725963819510686483268347069234443597871098804902805844395166293958734973415272361403122230544423825348935583939403846597177566029777970462866011294954597877695772111202300933251228003171572443273012213439176905468134721507192562526951907773896635063833167857934410676364688981911537926413356155290282152380698663567259917224388208493864365066837580955396027123366789459901456949100151855312138898326052156083242585655297395215804290578503365676522586136120190418647392055647535903463194029242186032346729300813937594248189254023174451635503148605810074725463723020882838063265704170212592470578535589888860022519526526110433583484462641933113050272391315065529628587259399953549592897540818166352039387822582243765414847326727166163903602146589217101491027435828875946848856120460696891586624549860229939784707543632052256215792287407879183126806409970863736057973165748203995656722909693973327488696263456225683842163780330680654197408206696964302051368987305549210802428953393058100191164550821387047561571214160679681462997942593346683874255085454637030461599852349282402530942623272264565969066248725442024657530277054553065104847934013193008109659034248680906790208294954291297287438480844195407720511050348676144941546767082366796055193917019499860858099349860379550616640069374042131893268352259695358119145513824399939424545069636909532501068560147524618105769983883060346588673337470795800060278032556121847672821618175044732761692057377779864364893828323006639334399069228149954321509068278948775750151291682938823814134901458730558683790080879843600341204617861243162692238494921545333442796842890697212393047221985967141982841460537347414103081482789108926592509069136681790874691675603921173062746808237327103984831066359825946759089332682670230542025065049768543983481888786666001174207391879579675818091869420033836015681269743987820361169126481587135111089407956385418164557670213732286420492662045709941428364252609876314559475350844436942044426996986122671912059112584143850609248019370445914505857420934297940541452999621780436670699450172113580619885056839051075993255226007291146896202539184707254284176998230831568731062024277279966928109336128098190078235323686378883515408762663567949493906200984549864943089436035950064019880781858984886766916202398436348853772571570969782807605556741362373721830338392642499342798611287378562267532911079822337373071699759151670305496005358567716756059422229358897406717006449609764886208638380102807483647167304808270309179500365281049881398344875378819819177158984926159125495175485756628114294430957398561598728863656757811969875747477888290320979667208396521014430148110172594467069181981957078816672833537291343048632144821273361334812056850283361293787116463016691586636035870494463474830039753668858763447733300655891384810138021789035308639962076461231341035219808376283500360781774009923695359400878939939359203376148505972605279194440251620820737904531399275908896299315092546474068580689708942945254814084618980177385862319617640154992213048344020193858688380228180092300420552591715211436834998342352565352753855050360794214254325756808209322967827763466411425294470343562985907814101893641577812540121189827217339308907875992262875521184652762147914639309112065123847540688966126597676587783491468965774372719488074804959732678193448763256622019877711309498738292425507539698550442808237861330755354499649211012312499362453632483606291502763162795044164578265329762452882267332922486958950078664356651232050052925741754350515195658028729272690269918975612975999471384740765643935370632949866555249436274990132997591094262670206486997355633732970338928549682793643639321767543022577596015637149994689796736188698177528388747854894109485398909548488909282849776771403757765726318306903849905770631498159428728902479399495140107350418233066733961307800634225070373533011897421796813213708067894212554380835405386918372871877986200043702897123295776935415730526305503280693027102755971046369441036417800077944150212500944282134816593358140690581611355315156843410081062361013529260076408623221545489763036338577084910373180628216477608546546926796316878967230905329097083485259678138314217910209202123922099193574904595698332839630397939648403796356378871867602559152409577263980529027687172147584672655189803889463054965682279699429689028615625915067313700632772552704934682718900908520099333272212868438809332633851533930716249893680480680997548844600580969310490052132064081626026012630337451902912560431392961908019519633336766590049010580587183281513506152949023288507683278804718847711778237721728975576105144803598221153286141495221100815077083488405965964374153411606380314421117038864243967750756727730302852631402375404001504997470128680042063968870176403772417082052184270872949921265565959176027639619773490518298988433037771969007070310481977672708777277068569260208769144691986248809100751445879975250013500131417135460397888352328282056221248634400242889113580541695170696244116265750281870394825811164472391468899915588489392860402763133435528073526068290551164403503441940316210863379530598071502758997766265198606083006084571987091132520651168720673000558748862139242807388920180615274793928952315096414141902866741355163162029586782292394811531203778158670660187614634862130222862077349910923473993921289444054153032392070103679408895757909173976134738166792521297750746512526694241260861808531117401472906367148066846700221457313735252062022555893187410524033886617376587341702882105984542862312630034447142835066814252183345694261035689203567834382580522142163584448150606853805169743562254541098343616243099584543744456636985231524929650761494969800573606774110849162215040513369374793768373295084574946773780912514757043011102942252072239968651407412460854417922674348216822558997635532738820999710347902974530792402800490097712842907014511063457628981395541501084606064714873838635630087439675900644524168011173980286530674013496263150901475547436286481625588493651058438599400936762331421540750086302351532587281940022341445047394605953504641469359912440356006950352491311053959509498699139113905035114612105256488961032094849465646470487643690174123695277223234318468342755966436975566952019568840089248989448349754972108013917216115896673261508452657124206286692861359098334665964070431310258462220174595084631587951309231863988580463621451317347248351117952292281144362956256381072661992554542770752507242437659123458508901976600786331043684498433070232259798065415962717666242978628782461299030517874785814121155563127343382053524129451452324414664306724953735986216716683251128187526608746417566474521994079653239697860327743970554361975422878939459741539383867889446074109000775412136051986699446981582046123200431393780648343782003337611300508353537326445240108963713693637408620226823511014265721418356627434828985189841387920650942397909295592042582952217535297775200578620198481826608317300814866124352806930161548213888685644146190375086079327484968761281403563000384318529503520216368902563018220656190806798488521786627283060386997910338528768088510496899377993210842156051863944305708622643175990378114150325526724681601211360285193114552102713443157364692900241474612135917798442863908670140790899734184734754750207709135231276794284532714269113191307333205612257164204031548500560069628808309404373846325744088215979194474236699883018100911737903629445897851651519951290225641222955992226567480388335700288872952770821310097011664808404239075172722869031282345391617414380505002171792183893200264064971631181492289192401974288306117427861547408562177728881067244393190544301182791288512137521757563036143593727033476619601464179875749286561895108215042800448622712229871533249739372263099107017403639912716563632277055741385128067771957364556123952648156876932427562547783903556085603892483884190297077189936764001249246376673324761197416561378830583210881363014156208739017357277233245653109645762138909283158301674600315440235119767089701721823568759936650239342404836901311876760127688062613283433181350650267009155625834236582184282038906068893338143022998739394632445671125892678443730329423220829186732109497769499549610693337991031295050656908553869441849893363424173929956029341152982696094512954511336775142087490782188419826755262555476785897206687893360642727979182398721037236608351353768806489172338482578049721156753841412359309109070610230344408233176321771926554676222594903017398239319793477904126215921377442508093899778710190806298379400496836918037574085476190720438182114963153130569737572805321569306070733496348126917889845731630353677389857358904778804685428853250691376124873651710436520859022423659167030357710204059430479460130148358993084406419576869748976746581269894768279443828449423303972119801445211688699740674558481672497143560115154953845399035519599711432642243716988091059625498309329354043151561331215602859796190980955035592814077863821839649858688042063011676258667622122214517149385406009875163592133224950100988231962843297776986806722316822992798099823839345867132785272539355095278773099615486954019111874798688090003165237031359780668673384898161333404539604068849945518212359726672487557056813646708700863968136907383958314563532135101216492877495720015683426430618981157651739940334810381405260263151083902232594162546025617428496466170052864170387180575080598097375113573878889964339938107775135025653296189746466170660187040487695070793015520469734449652618660517123429445113751652465887531742545624630783130549780504435486490091615216447125568643363404895082075127675585181355780634488819623789345746560667120227885271437955411215341190597341232871037988919608064623765548152683801705504421163193016675160478012896895994172535110782031156442648128508215861448923748221455552091128132703114168478861094941361761609641992662152902831691611819917672570608963187863603141998559803217393539271169850642100343520899851613679815413588610648980040159381818643309429236018718056991892192102538259084862818863891726435207582832840200091419831856630810151874869432762347218906634943003857966423508590862472476031810440648663379018523460291430379562901997404414316328805193675118841571901345467471836754799479900077469027270934433963042584128728221861653819243197468534234148500687916761871362128223773201778030906764553383607207233100598125475246542399297830079727015317678420704776314990225200625065527804095068216962786351757164082404198277217091794652698549371278758296321039483443524234533215463611736463364729041106351587449218110564563937451464922515501276980484945533200304142132747507293485223657367587732342421679665856179505329440076303417756027998016450621999398398857591133105071035981597619124023415789324470445656952122000231678072675997759038533592786490770248934338323529621002079017524675161541094055839412987295494960418416620666474916360284977556070147018583967299213999954305517751121461212414791898879043673134359242790578584309025947517053586406849430506514228646129132758125538108362850216642123650999546205744884276049061651811641247990254996257082670562366012259537538183719965059047027442329048745662909200783629575969349229530584570826312341798478170457764119115799732482304102209198532500809598105278620236488890237504748553373165031386688587517001753790519918724196216174957871580702729403980352406966290677180788759648146198933322777532030790866997856946450135550960360943193262864356429305727178728886758289733424626654700266651994784074712568203004049416366969753160766425106450461374055820923658007386100059624140888577888110816200049835679159605412927188573954437917489776491415458684455836776849561407400968583254222496795811899296845928340936860653411051512947731092667408575501027612999264090381338637868614702027128868611891365831092715347872072934954999809106482882711104072974835088541671163628467704700078639358980939004461524942781652489637003826736643790448213259327079075980366872079203973201034350409145433046147050363282521129171713176269473384038418044672145857747015503732755301452202217463357155830512883357903242284861797963073028061566542775776608685434609144360809036880820230808337673750343198979888732778311531656359566301859742870327143578256860256144823405679517403008969667814149555020199790980141426510701401803528645958433025114878308145445709939899270768223737484948799556618291198837012799563406834687249719611379105709270380006230849920861039127326058399111652270969653265102264377018207825044043409419197837997002636163841587693916632560376401523940903096305105480117914215063629739514160287614615109950187981325440305794780888110575003002887277438760690276200584880404314636013110156732646541782288336499558984612646202047683163078353711501461835913788830994678650053093331426566124739396632329611277823598662040244884220338678231204831662335091703827920176605157634391136288368774992415255967033967863908228981508799004762145639920476585990487834605663394366168730345487713860283157973552012997441649010104864635196000736483584847073668147100864628979449751139581427569185005447664711336000629623857076552398463566038844138240864866166156015407807170871178882031644557526475997911361938279699924288413376593482865636876131582902817137858095150549589771917271995339596300345074793296848460278023144744122147012538463252813518122886121683001180664227968774417559331587514196939922736367091579138400033962731836104121023449789808875136943639058732550373697963282953983794137636122389533108328303125912949343897345649995672812855053606593313178169502035296987786728465890301033156239962692736056166038200090448178067295621964720322128284572034707958875087916625285939607198911935418297596388637030785753703797372041447486125187214735324087326180857035563107315408599088800811480980954693010394540239816173450756426671927793561968988215269440207428063620802050745926283175590336790880948853102324607516326658476585025816160882435334428589843776012591192877014656696933539000211904770241131675386098764535631920843354699925936990152322322389535046382850320384972465296897843974786986089807662953174990344004490954144949897075819505659530680640198029584649399136223797576668540296667320465161751932062447866705971055870577013707017620188586604972404546578966324150674620681702235768488199043800946577450876345677126700947252967552199552681898819311817899855031008421709986836582431460403890536115860795092710363465420687543926078772029070624188230521556219070633274088337968206189871836753781026490203472488599551740683047866267524677176248741664190686801531932064127428824006515581853179446694776439305363037469299672659652489489928268758615094465402902496257138436274004471072196306738218651129349854774358329349422420615915882224076374758733175273106640428654802475025940749818715877914400915147529246266746127272260930799986773998615796416207217425508255811306821605304148567797564581593205380924189315999329507164878523144806008596218402047787631801284851379164498042322425394459077386945944462897325933081121300450293433869509739693153176222081771112213807076287755713903516088711240342592018248780425035363130301151757820544445823848977654507944100455295874516516832682088716557758577773978034534318120412877141796745962385213943954129504035213431672316789393430906426352114470321989524729425678239532079371686242159901690597021330255478716308554102878051054942043304537036580971041301500987526924658856057432162443420119105770825612816409615597764770983226062732346821023001286528102779199604930683243953700299829410280262169946706856977405559724430978924959815985274012242701353174394200363354527039271774905586689198236704474963481786758288118749352869662493387697548400596045955134704716229539285061971544836605229917972733443877242532194170947168150208540300493744751672892831795708944868468323452925322770361468209615549223865991705547690744598426516645268426213335804782166562823823695988729393355627671728291981997070746363920860738417024289836830689220877318798987199231752255910276561002504166164879854731692913612589000530875884209153248553761936359735260335439891247988127774249074284366606645401538489155688371164244707736608993436901812513964220263075099540707318788139037942427096868501905308324863811175553187573594855432788806603362268770040577194330104950580696135806716176349557343825686653718434440583226854523203247045554538678210968012173786228426645567899052582109017127765091438402673319018612024508427184068449337594445329583165306391186444025639006218372152179466938738271991557950428238667038089889944749695168871540882134968465488157937437297673519112488772999351281505978693451850344801653754658008497446021712151634315458176321812570912929903030135178675442433063141330439031115292208510164400031838645137128233614823260525673027660840041836693138728948619280919585622026555412922713518714790996604121621813729805488130986010563970263479671611632292415603893944775449243548750353816947048065769577762858172220161128288356390439488742098497381209824176550457392759167206438804669252063346295884830477068584069352249845514965944473604060343967393119524383831564398588367826138870864748559908834165284030225996325790528342454931877260755361182693689631705355140950464775906781319648641220828213290697710463085362874235077428630795612086798137325053024640591428465292160797933878308786565872815056650636726704059699716348901130464109483167431845259962029956451996749505340131864209390145035055825123847282476785580657512276019922909568938914340642796552965798008309429220744327616089216928499444994650260876257788245275483958812877911900451208013390507661163527604629003161455069623759034180199701286530924581832493007784934534248335318581977855529504897673716875315471888901078125222764695967653422452193978856905308647901339474113145125000932006245948921713226371130757241061797995400744480151628826552412985559112186095467716974071025596349857176868159495810330037660972962730812048448848092487750722221262659321065036078359412100237791496541587144372373080539361297835885226598468240061413072221058652043083934158218889232306059230797088661246026557522420621645471112953774792243270196722832888757889421245414481584213499898726358399436980469189038601263204307474904983675412909233829696197858730824939956705166047037013575666113020959280185523867809179574172007801743775000677323487729450456334962189924168997656839442076504067466875695366185866698761378317857992292227139464040985995968904634357018041134000177672426626330201080702174809648826637798985009485128814970039727796884751714425205821550284545585267750097107969756603026842487950476033970626265874303821452122261220123958580110662348171596435332797564176247972404475402459641949835060985482655868684607408788135593324112929979151741182998311854109089878555356303769840072230183243339092031391150731233124604108790732995228449443005742588427258307909357404955305185112592232587817927730878089081474821290276860205693347944095534516474652876806725357827762247169574927646841844773628391872380308641538599627250222790550447689996038674412561654610550441147119417133336935920953026758685988075481795611774624167482268611590642795133428250749398092349337392039616378260278710467654980749440266261801333225401572694991885877807226108867237425576866901199861820477216794833098439327112720702039966936124739883096826596348473134657248200612566192613766575687417329579385899965525145352780513589963533377669585436533917388281185113262748419496986087356854926741952108324234892636492638101208571356563116666643996884428725772960802161759567752866077779314844414914236093356653793315929804252114160394666726586557317603330848731529266729862551751361222948766713448212833533929659081362202561867260089163466653273571096731065905419609907945143134154463702341792269829627622241408100427968166531292816992387564600836611510140636222482522789589299494081263292382271768806501060205913823663650107510395768759330225176123934447618198995736651559254921623471128167602288909720081167474561889503091488784559189504029446700753344748866355552367793059410013788275506900954406327774601879299461333388895049904796985127088360838472995694475312609253897066237891399559429728180718094430079078112243037896330606251996165524629585740183761813527938812428278373493692877185932829833198475966356261797963473825392421900104886131751064573298900960089291447125505775994420685931678970115774448955777213495697300860423807300716688722907415361463478664986054271930159209308825676220021231918144204394584272913301514034511986867046091082250162287344258601872734178121599118788523215708565207752298173156324412193956441640733327063250250420495167172082304581443249867210031095792028200671453135464510389663539895201729543589939352724323992601258884600077158870205505773965891833581862724357455350384835000353822316740257796721901714566427197864303590902911824782506570927452868307068468601051953331285347718266851877814234572363859534358525618496168736378590016579645047702144874276336681130678722119454742010115891040111829851566579314851168703963641300307054411129124105634176944200049445834038132294364943020654781039841731878122435186662075295770117292369068193647106606455391023164684620753661000475268408516512297356126019501081780845044846787929631702254806658372832493903147253057142872120649223561215865357824832953795952947277822527540811434317038491325887698635067733945244880162004770271868866294598444896145886367436549380385519874528146358969936856136164919755974380924648648687511059668703841348263509081870194403957628927803219506630605218661387097117330396456064455393977741492052194153560861880345461623088557940048215904924592820101039115361573763017547365566220706778207440040561952448208585938212233324022071744975026175606183782698634037102363149256862496578333631185721175139859111291564757477120307234222812328288607478952578607251491665242271253282664319536887337348714615804423793937947959783084071176882131065154089112689338589065544740472663166602079959388317630056307664049913744757900607762398960817565562641944480850662548289838837577311523459266315968068235832611097790782827520217196041264037459029312085442549224573955346971160685577328494180341323662298898018558454612693597049873890694138466354290669923837447507319107685325947009530928508132626690418055324154738170357150313771597780156574366005715067102209775048637386390124066448521014434040354832896822220904485097989590939819014141296446787013145334716304355701875525132891021872444736542636700802394167454995665579015960859025227732275285909470807446903450456255362088633060122492413668053441051059776846936902250063930226760608973875631800623272612085315642860700130868286084186074577251824679372837233004489184710878614273905536455030165984583833775093859074112838822063859969165423228293476086204070987148106268094209311758076738230874364253171080243803131958752972942111818289371110743081192797965320920674359012741857250336920333839880373754721014127205439950666901016171454525222153090072513608204269900835521976961899334020923443778099112475598149606646710682551925608467275183088813689996620999215149029016246972254129512244405974348039135079294258525072845590793119842524376710720475185971296501546376817548311952477708025227804466572672275323382301120973315460081702872123064860708401758766840117105272638876875162779935407045906629749252652676898439798419814704557567447172524706386404783856408019840030421926517901522833581617281196515118655538284641442666154174477768069634076056665322047557482393263586340821088588169935989122871818544592235159165698761299827212756076406303635006221357556986679413951389809352058781142844485102760637081770558292570031649877509946265808615264856753666880570194113495563275867589646154484235026619842420727529943749595826108980263994041830885660730618326887816542169791482171671818137804741017143987914344567091243291012286640805321971717855060822249148517314476093157085604874671963523965658372806354334586442034739464722208248522221612373979633485401419902016635100796579872607170084846483388958334741559164708737483599396507198318923289581887263475503174896417428155596254355552620465028042152906975140266710030302016076619373109391961538705492821998932584414021315184827854010981821925548468420945324717536570566619434554042364152700887216288702511046450345430476118365305150780578808302099481201246197688737254069291931234615282218319834340886096619639906463753017041146007477739469219831107189452635594940391430583022475631598302998179133120337394108176275084344164003847356064238216873871303219001855330507192209556453603270507118825987895183281245606607465889064220364211960882149016318218556890774701310790559887422400112928761658673897248608735175252934280750344617074595943866814561176934589134846062722686042877077315369588094736059471406416752795457091508178360420156462741687398104910278957972279613636395900109106094658699200631007256586836891806348312286331346922683654695798146012677384861881491939583431699364527841771243882449566011960978109835372429169158519648876292103315191222173622944997848339558631229002643076111403133261392978959347704922633487070313381856634159044879132835156056529206383367690867283039958990039325737171386252194576986348604781394130254641802627795341097932897103435041616288731449177440315258477939904551920313754394122631291720756728478310429337746419469623620655852784125749058596442810153696115551733675095894250828767836166953633199254125940551792766340911560186618644111731807820662853513015335886154245605292329419950147339283721899850793301879082181384296132997549662572393918008305379755517008019482597524462168531738335073265361239056509892918454620453610027911908599597092184522886236030173534225929029664350398376910782436719645703466293565269978267183330047457948789322643549002664099317025644105260314491227806218251805393161986562291051983687534719899273997848009241184730392894374053685570365404931287313251137043684745061338213362187199092876375858533102701192804222444203240496073585331571974070972486180635648702438731815640159731204415712476637758177167795806999496328884659822909200910192624706933609085953311462746704971862520378097582979839675097570245514423362889592269990389503846682908063201179906842212056106263974462300729303318846330779761919116924339441073217370718937940857716484026108734464265640415938007937387205892195358363023123570020263090904966047940413485637436976806179732880374948856608499005657849422610889084892870407752025853761754078452631309348622551052123562815807721963582447532988957541060262430927879487807813806130748668165448468990011366090788042626303465526715747148994615988776126914873240143504267170103462700761992846821438670442751822880145929693572849169338877149161812323617275980298567805113058622561498192562246935716740327598106016253215469857789938914560368859072153786187324385500048061196751981572623459311899579113592936856440805736134509677723691819564448621929040314047743927083603402264420647775315920095354005536110932447416071160317887398383340570580007703533042862160505761343484638600270123837342067333195751108529299709360331631028731829003370579344678526973307202224038646483977833376984111804700170560636225381578365666494676135829540251642924773044156873180357678953926418090089343545665718419622627055142991059925320028966468483238628830811286209236749884391953478484669236113564240494121421089114930001694355804577857810156033402798172224651401913561589108139876231342411647093790310670636147716190323868179098750652568491489839947015517852552619051171045879660154939356380326906553853230466741817384353479450969853506674170993821933324336508351320491880958518665444568979027521124955283787400966015273375712868656002474087690275203993823883735959694595125095293276950855245588005606914020087891439932770979943367211027273277500107170035948793970229164541784397401912362897787240664580971180447696616021504302561372399443865881427016345514043135876010502971995315063109898029668741407353034954126148429699614652680510774052943256442797487172522038420267239480445622504125916391936356846100093029372033215793893344321503476385176054912203936539858603511579779875465178197291557552758944162988830316256413980778286590497652529507140685392060850942956760395067487718904744228080489997303550330250332325634148473155380207776637395524789129421274240919864733847815786300753907086749280679888563509182170574639891700191099087317294077009653931950832190347403657803131368346412444867688567728456496111583575202971717016291403896505920460473763659682404102805368655662180177223115355798701434764509151715006036202888750117666796734752443082299343058570142217056080589524215356551449535471943434505957541989930069524382858733840826661143497176463432956553963782984689139154633449569785214889326121591590156588361929306613452850953900960105231729436612466325167830269723531751627214242072146608690557979305050221030129640022516499443849358736804887126525341705816147525128797763339267134702320516117902775808305454286837011929490868695750018710675924720380172926325017390426251332325490322144700953466031198099654983428770043731260599446989561354994795984242417349444524633471040643925055672915280947480842594796345598061182786988758048876585225344683530697745823724737400859490184994740600592823421015293362508499896362328786856898001735603963934908459488533958066164814298404152918268646262904938171631538726408036825966676153388209562537856537457494995560479438666296083424469428545865429200615824692525409938161218282552582266627612198274662224583361717563251474744000706278432194860933517465266511051829079799141896718199349148499588654795831130711666756453607320367485558521746527838913610678615778251003669484504620659593080683294004682327071816188835920399549028923767490123820839196422692320739425541376439017431212637884647433012339655593113503704098606690078246424144930297523201266988981714698003094096733102129061844098807938930708769738642842822588209270234190958020597505792253622826780821171217043116729097689676569558767856848901693457299297925858887408942867737601914996649275757779707480357521355263584604126635670998454081974906520769541495763410496711794544072989910777213151962318293564770231823549998458269175672043137332886689399845616420643491831161052489955145095397674817078634466772607954880729609733374255536644254124539516917554286993663376781499946495771263284376240299876780747975884723936713421464299860480612391489182883542799571894772782437461416041592582691709727315277514646200073163581461173041540734285830817103047564092179126644986577163593268984804742925881568849254669792734856259095519764132344070960948095225540034095494164041656699160589408773884816668161464785364708631132242722076181338215220737878600278658220192879599561337458014475732705352210587124392243706798827893169720328256912125562803143111150425277667065680910043523570090304183710143899255705071514060851476450019975430330101067856911378669188848862390760312861612924365173129142147098514719248252185500272660210336235632313634273110172093690523153816975793013139247718336631176271718199164317947190924657292268578217137521788183012956301160233546094297861183957057832215173520285873121993210764692364424236389891913556994074713491793613345983740450682615655350529710669170579547992157168132607538905988966976732051605030049249312518506115269716689679154194565409917876317101985525214160335771685632440911774150291359811175682335992923035919705247590612127353536207156598669066363223898255070706954557508356119491433560896193236158725399248982930101542008260673778129368869041670545026044193530075036467345030673848629415316374052158516507575835208820302653827231625103179812300208120695796606505704904969406213764646676134104953242394587613357595402908161241789720432265925003449039759406199516396510972634041446307087572656152758603619417349005546538705461706666657002828524055626550691863585063381103263982935265199886216395531129523640574479811100843355592168238583065634707226441254840730274640629817214250925893568729607766658601398379522206514786893026743417444182205977746945928387192936599710999679101552608994303320664548333038834354898478192834512371757350768673938899797458794404056959269291189906219746331094387707838770711926427684475287219995444906268639413515550701993741933580281128001541484116229136848295831840607796771048480075950441745871291164145892866966153388768580062233494889655714976025324539656039376918029005152485081537179116213525812626579310515327718933499907358674635648621510809337443910696653633524886443971436162127581429185621495719773308042775410076148064549578172884341451534449709904550421655958508577753640223614166274279184374655578661809092976385059176777590104945954607314951164296786242242230428855758372417183525468018405437542984256062047080838545244107240422667662020856747154110225153629010781161415008799766351598464744512117118918991317579872947960966323473407039940465618712006065896289510286260312513390130765021987922878619323019009989167163893361928034746061755081216979648820438396198423649151848917463786076654332270468644551941676375416074820124127394445349600495440327660778787916213846484409878978018813919619146741061682113120076696396107010579164515503005589867236673247690115307354129788864381073854428503311309781032206600654954700824010437049743060920765506268325983979737112010419018539761823268225105731640314091139369892324912671898457509317926696406484493179802296874964922407225787565397006210957356270397804718153595192638646509860285339753527361194996981342590716485046894705310371086971207495146082234152105532324782218105615483668427784049255083127851490932330442395772904669281542234868256925598669056828776868232852166083224685023494677889570504988283171266616263427456461767652085866060467440610704855118912734730054200814304569521860770401453833602931897982852299871416671157119034928385354163398377426086062846105940026629584690818352362565955330523133320380153141442717647165303217539960289472496759523661140818795024537940938346531599568408161210918396546061412963890900840133198280075611520496217360343655523542244572801614987926247044107367520910708932213593612949888150268934418292516540742316871134885051174005464540350093602522805953070126781522831565632707791790431990742164853056722550265888487683320928697906294052234484887272207543849420573137175851378805083074715216282665274775118944146135751060447492344566269789675561356608877014383843281859709650044583030792437367543435988962315417840265724707529751983379526819622173100128931682022077906906604442587769830292868885100982519695128314411310103430020908516860264145565577944959927418086913514250211366270898074091764273971089088885755282073466521510591896863298047353790273158161042846389706033353194666088054830499420874294511212494331244757056576089351223792923979516337898575262817144907583945789430437515825252639718549287950183513130328665390302022321240733350441599742077847340040041818875213546280186329283203137557318451423712502536222521089792347534306976541163491136784285606520040162562498243849569522224699236754576714786758156089956436175915487945154254614729770877567746206378034421362421746869577647482214203146275724184610011571412149347088195780513717960664456344146612567174210981153619049882955048694143349950566351466829171428793997775141598952393709214208751960358133114468638992883345244216036178551269538324751572937495644364053902628716853348136178482612164866286197363254981855825048028836021228174911759453495396108116366268302678537692726964590814242247458511459590152200981450493481598423044102167012790118035462411599038620550985230209600071535600082820993572493736779809591390969331262712970773144031319114259774701028138395850487662282012282282283035808560430195988277806032824383504022368364176483438614459267199063002253466586106323689458581106465512303262921520520316456114840776005138597751220173486108034277092039088734069798261964236745489693378121512033575054917960717212464052062700916133189956620231837884051692665716247963483188881482248330854609852279284007553741739947291270806807755686462865627227455530313071480393129251998432244648443107070108286804818749637721412651808727408729169421839021411404845343924759284010441816319300100266009264735434139670916884415213617417627784129515381317674050721265189057889591941112203850707479827053241544949878420584491099148568608140302225014134379617169643012844566766955062560504945893764654114861532327451039435695586618991772918556793809961651945632552464011991584930739106004302441678934461606567229118890347698558066355703929284211182412289080790496634286892797714501558069673042651507244962244903630816206740156980467508659820033520940241811523177573828670993901032223452051466247931538727433334294046284648231556172304861448846660395093170564393347011688438886841382280602625323061779404957620629731938947485649534203350403372179474259099414242357087920861401614491143769856992306946743104629513556043265213207194662231047283755825739256142243503376621690445223042717188751898942606314631033633773738894497911432885930909648851431684785188386878944479503745305853738082832362705303661741004411873660896376226857879929611398132898198264354833288584374849271428683135568673495020748933032390819125562985870258280408451070506153767723254116064930409951854039783768682661457726141713667544616359634553326757165232907316043058590693548513509988759607793983243143880638807511648454403162939359458345013111684853384760550373596418362321891668333578975626695622565873360501541402391113215175699116707440742817135785418550905995146730587477533324347205268549326522898783415323530265243485985064337961412432818650646155331934544460670948316260814933108551851455261497970841954825784667524366055326427778842610758863244552032141869677721338357448360513222302434729734705297300493450367274208292299747402023030129124932366413750162205897760228176761954491371482122860613983821451135867290475334962543010191543801567885453087122285932515161400885128756493112952548339371880655623677666327887542822415433298167415431449129201419314790375970337801617988157088607423579355932912080775966258757866904286524730263840353558990691653079393631398982253674255348282236096464480342139968900588772169251963011304671291630005212433441836150325466841897175231405668685589847183621506277790595926275949239193737876125122369750675062273618804808345036514764534406282190658622092671254868505621452931460198686042899375182106288393157485596589636803812502130425461993569589404850554951664165256515712376928609013631670697046639388796748982393519038982226224579810362251599447838264171863859107764270565199111941983978198472108885902819310649568399579887292993565215898136131212841798763144702262931787110316112535144291048205365201651554889283451489541414724183207020748625335735092694234990041021932977047833512750640922658565518125330155673195456688412902517095587462280782264068346237755367588357485197451284850032366173814586217690071625280329334205771000122808013630124274641627893042430970439628645732033414285887102552420696136555031904030100557906056253482298239833852074853723686929150695207063168223111106115565273215079378644919394481025309181514099365406192622445084897466460053986908187362372619525737812061393614332537466965143853226742659994949872950305227439529979069136013870112509994994489951076694696370650969621704157215028826794449839293273061212093827333204811902951821225261275615113877223429472085046144671998100683197087185637042315670430470931732751096880196853238377400265292919320509630615816639761958611326480130529659863758739854670982402127098367557732367909313195251834785393969164619917563713644586872268406190898851380108673220059047881595559806964537767023619852456197925249768311585169242008407478271396957118794168744376647756827807841342555656525976886371991880430153331896789362956940358992915571364268280244927355228730822429770432375237193229422578680256926750537630542205623155655912518834481420632017379315169171703696851620334258638754616879427094003029761205331342647239539515883868276837974827518252391185300197620291644740834950783248659073990448124716649166687294959772899906469365058778349999856811200213174215343953376086072252337818658716064140735675616657045807417019078982299477085871820299813117529937619965295189059415011919526982614533372782749140541211373836326793412052602967001578927692233093837720534744047322440201971233205678847830492639166831671924561908601790933446243463688720827513053757095301743456785996751275728891858654036911309428325610313465782468073468528639293266293670305620847845173384627208117418626489926177502108464881980667981030424480413737302939985865636056529056534346700475969052626514690391657392265329283752681441453303713086401816557052921262857622739744821117183783320138864558183408528465301318090349220929431230849396969691302818481966655594555813463913325282981414309475155413135945901031213006946068308872680968002099609628849914133125051620050633590144832065548765121781936279968023954129380874377609147812570210672625016255776364647243753167195304602191947881136464280076979029311003189313481563969652881497838522778341600453917494960503788093043471363016207546333182395441322659645655723996450947226340380499796838315114365456226872541383513989307651719610370617620971693744261142249747495532270655883335811166378287262075899132653909753494712476552332303536726250658264370896761021303674864169988900017401139592467423300156508710641266197818453779418385827900937839533887426501122905152006502235257687108286381762116257652068749276246477788705261180691715625898916248200776064732189003076875753000367539497394434957507318091551309263896574857460414673588901655894102741691288644434160695258745624057481953324153288074773111617235455714578130696716193341400934374105951703072663934026469667880529608153005661133400563957499171031063545118211754671845040144325331147002136885170909384587794668869347411602502664049787341479657598904539368072904446307056533027455415956529684553276125007560901488491299258556349219698773162579638651592072004143503819268353785578403487885217464637885560950787168013637927199253536913507706505594033909226931568049218608359543555284331953754877708603654791167432018305758658804331776732957503722662810134524596302431804977794479087915878031758827591427054665864422135859446830728003750380014495821774553806319264884369953678313399818800048533416889408099150335042486967629603150399337058907571614361563371741450254041212649469274454414153201743422883791416830445431834615175450027823393844430174966863891623313562320106700211667484911987437817420608396241360460933761569675081384258698434300339322291869800172182132557345750520053299766072227924082186413403402663833180130213116447973835078019468654220832571721421904195628574126730392745149998540321429591020080457089643014080883258462085697484782315537903254835789502868505324435082872426227740783127411885392780505099491411540946152049211474931950842823039780150410484267690761404537534254696567377366971179981269814072066710529896683250935059980992867440847397204836642556464843637903274667907287936304653335235881862782342865379657532107913654163605843000818309164865795000790908636114522502290685135345326373115103468401312357910848586024817252345060166428072814424766340295164467717001424487970307864830768810678120358767459720925847120194146016303986443669849930120703167193291097209767083199875456285126742147018554186540275080866118677039703738051636899052910838194345829502498286802658480604714836467896768162043492183848604241935214945008457099116327084863173011551611796902683444642497467285668147413057896186468051261703531205099952775552801542103530544919093567140704094717310744040979385316705710489015550979601626900585272735248021620812141644309281698007494646353653457312344856411875992674384336186873177959196288294891102476131161986522310305364668981939488047511865562794521789571210245941710058816638480432627659505465017729178640202998896601062411782442249945885276728161171916090371737440175656236528610415537593093469021157619584338013476847754127660713944985893935505187478452681887292051810586659664771975825888320779875727463385088306857053234159874002799632736438594737519384329753047136621238393633942852383084870102392762633430096872027480359011808289579063264284005992927546279499589228473628603738776987831719433906582646197911621517413048506611613044410488738827094084352665770229407109161626972395691261084845836609140072531604851301249828321808402103217395030220745218320798458337703025517960347815317152821060115190204211832719024391789819244962859911507665196104185876657995802053973665277691484993211249368085150574056541923693417428046323136036492627537528460306795917159070225923826058028283269805318603688068403376716105765870611434350312932208371059699346873906147279001539377458111568138608462907114209980093091018748743385420958112657495562481521300825493891706071117387590540608619536136963334024376211498365530190701000593125135479095401359312769672602723884508195617648125156273164712343828245231860248359853745528981031358817821285753248761375690498499801339953100767648759695055492560716502588204968891636909291641991559796318237775770500397998299212556889474443711418490653548292915935054079806223738393664916424522657518909331109783783745005887170980019241721729258826524837934293024066472365871277194319537592239765497967363843496605372183055840827997842696235998492814027146777940396456615048297003673497285116818823859834330007406749543170057636396678946672897207877714104413683978194627612479589594924825961105555718079593471703629975542466738596536376496988474852714354253826204188114530353572521436816522094644662662780494914757581457887897210333799717823076427982674915437594918689203893714420936591450153388517946998846218396440931668074842486353534116584029717479825487394019757213490278864048441268602526087005029208744060282338572724682187590210262174987099332010466462198586296675915697844344913105237550591936469960436930336447440326329007222862729014272406133213570607932659165419068877194052914787506454856669986261556466314084131424619662658704034352620066328100966628260195751934920196423517433231424563043976571074070255571206930247864101156899318933375965678040495901965005087907883196705200620451946689719773575701372068746388471889587367285782289991204322408826875489036772478869457291816209376299534628147374264021347324422190772407124000387549366966508854005944634337642604376976298418777765549244397869010853708531215458324317647782743955313387994419776745387535926115740673168607417846417536163598125860374835119632207281606540442664757779014993967769355986310801299644282167512662927421430465956665428226799722326604103781426661626627819206520919757982082903459512761651397192341553332371163557742741824898036065503937699141692702647861176110113194630946513357069974487104924856498401324135876768047771783493276270531924479485106204210813750013328337079877768248141201252703145616858266346626769962366908274979366245684836124971816850915216397940567088660548643601657584967468610174855394160860008901999875925997936315691900246631665047646783285687449941636492862536286515905564458157105010905124356233891728769044870411348079733716323160159527553334233676902601546188122561811194899586252359018253328272700203620058512651853023514512021942788423616248313553661410501547933452174790758526486964991398252704571121970896695992902409455302254360901037121312453619811894690694734169206829771725745821863255504949348334358055641764873773300586146349530940965970727055523031439410607163864136934585180717843293332253648173044293292341309085705600967643162959731074353483755303791185424641762712346274786091107488380097833264356541492060102090179718152875099092737293434361924630028697471237839197560950283477221526095174552608836509484174418220761298841428276065871337718603400796365394881206788310556580037196554781860310354817592979635969354806775272698022420055816760238200103422041607652584241203717884499164798510962269904672569201875946988441721053800521591704511717811116798243611718455906740863302177883906332685674587702238981992922537320745200403702410828511615577843314902151264371183957315747985840582803799878720125037183378561651673281113768670999179062168081233551479997896368333150488940280764614208614829043013877152642096294335909756510504320461004433609744257002509912912956665808993454561129203582625384941844522160181081100911232617644507774301857577584494233319477652572857335811401311888563377002933966485147811173567651191559166385394169471816215313552653488043087726354923214373474275231448196183763546432004923245774602124904800664453464553596494236478566961948954471845828184990123809874158162547911972718226861890938521131889696111021492747628910858724684412514703916778331705163779919382628069446743127773889849389595421051647633452692405987645738497977521385377479179446044125484115518893365582239786873463002314519238025940301068414518285379709810277142213645292706012786647610648754453889176999727135258664445148244771038410619095813370835201180728227052165082479124318347150530357109008972875258475079499733691885999473875142817891333255759085806868893770686382663136341752122442668974265984427817245727392414869811321479241105642862631630046648003221503174412641535540823845421359214569511383507928847007202175392121971321098884219129139237061639147367293620034383917420737106327789931910735842426629419540965856298768546168861699523223456802329358164251593967299623639441061206252458812527895836188258572403432624856442747779191564217972125324078242296367593273934492490234992720782737097000523277165912044857787484817924175879647001330380598508066564935675139259664593188234648309547434782434616969906654835942697418431180278683932760496826660122125523388363214188892586143972308076454165663299690991773437526192842723590145205677063665884864751118396424637204109852884009400939635651291096297849894585004897688600251477044718130347196781046089411709824536986563539788388501768837070847947703772045877350236331043877203318141462605246359747017491704089124718684330654195899305895854928681231789145168294441281939711809174659042655597763026220658587203004426122346712267922411632509953574115981994643660981415090063665317406485976788057256298812751304486803291464776207251983855749419559693184809387773006187386518608294208363378014916998498475099333009776069876354621110332595815101723801406118412957725245599829881180656550127102429747521924598779752263614518496335926571268217825165368568083405508559018775117082784381751653155017854026913417815166549473947240777234687688314981299048489189209440037851496830155024301586921755129126760550588464160148732838641490070074937799776360551359508968833655523565974526717459460894697958193037257650044974352869338716337440357846136696700885317537841063843949282817740353478725771086647714337118030965069081757994342618529292535088444381303948212231631819913388406621262877183670189213049825145367521837718484532739382492776053829296145748088081753274221746904911662210044662184510205474206991113212552117975320874928982758108829653947110173308053920579949306170609212530269484661763281685348846139865779177334457922296011261887317246639745389811777122140443591943269231786900650205373345412369979546304493184710302162653119588125092481158954645642683872046794045725569306376115801423601395315605707214783027056864193920475891718183682504347893978263655280701125261480536779869349025427674947132315204782481945502898890548028901805764912202302579457250269892778938174682673761413776788910690653864826750063794600055948013373299704350825261846160556633529212795792284790679753893157048044739686883116220474729186518191763441193055450147622977336872617734353225827349109981060180170283796553999524539604540228845241375667787600225152408165149436632182803572199251615808188192796079252471441339356965476945537478966785067268857030471808021147319887322278110638035718169854733284725069954601294859958119034457952664987328437487861401202423006957616726220016815580327985880035143782500710240917335748072872424428654172993732533746436465001085322089089157267589120107503694376028925190640272524341254972379844592065274378401308834910786986002921592439501269948648132867041454019910006297737112609212469549969590369321385911749227260099220003506508577212457800664490330057210526437959512310512369580656041477472717217803293749110165151338166226463965889455683333625894658379241263445457348615500826023429853019235351056186314893959100247662104755168753891806188162622776282729971191157471186509159181483379611734798045006380308783724545159556721824938082785667811745747930703823849552801397518115261597833400445560598028385533250444750109568393280564220648310733991113136145886499576054839292877941112959986911434551318402935584351954290779030881104153229761662531193802198821998028945941248815649366446966837771080823581902490731504991195941504305648310648504386602137357639335452340633589685320594361706447867441929476155021326371319141748772206078273993677310603119490788136438076626957328743111930918034558938412696882953599643493914947763472695117842601234694581920091793136946031065363103494558089583752102529027438377220211834401946632505028146439618059545599426970621640347949259932882822240874835635268324365298689223554202732210004518496619770976459369816392160649827645002759514613910331110292501357770419674184553695422442768200246961010983500856531025464704309708041776062882700756253255971949565530763614694446575405473240853046913988794184064188048521999131834867555943929987818501721972988263419719478129692447954446950767142739697213166555273182520455766370298803012202806462331242002441736098537574684816703076099760822905281102053982282340461097463934427320366744174285128667582767858122994944755644985539977563686355264687485538115243709051905913671256645363649210848734011399184452878420095201074708676305460152375264474132030980942918495267646564034148737104656808674577186713951921264742968085291901952218438449580953775554513253618130583867492074793623499544444983618012647728376815199991248028017339169216231679844482354532209185223254752630270993971593929478856537181279386248321052675787683036608244868423345710753678107008725338285590739769909760647719715145716610351911591490013370463552380742090550424112230736176725625708521760764346868499149474737672644220151559918707394990213139397637169849133317027357078269201045395687509143675549313370171687284373789712762456002259585744060693194269364736835196680501964183190268770736906724359798893740066053044731163112201573185289488754465182745649747807776537028089126291448140469891327378199499404034198400970139623624980758242958601432262932105182190097734304999858008219499106718129040819491437672111751653447758822253979235650405529872135854852097485943151083612955697058741928330460367366106139950376111131585733532165382011476023892141141719333743937172391530605482411430924670857874856221904306052306735093444243693767633361891502100346964057841173449618226384431161749235289608759402676893282291876606840723132779051968464510213136797766285483529714989392408008620522390988431346574789250573868676887306057845475432372996851115709265633632739087285338069727134246729907491292635474705706570832657858845124575318317383147903776295903468965103361125884145470423933012588130215372347043851022895248139309614773677426059041403519783445152835935879615993935587450108328189803060944702569869145176943202836703224075646965378842168897699555471999643984352432610084711086988673834853773940605811828898606372511895595624933766353984610739997690854188225753423654171079755328717133566400218006073933305262010739904619008026027535825144116568725440809735331638777398852674089422027532036446716855045693816855272051051290363322339536625891550068031112320318910422506551924448294567884907593701547076817900010177331468137687358470091477108776824682034715749378013099790550521209302550853111435725189208958286490704812273520343962837985484693456455385109825858968679311056956166557018081983228838600095516799505195996345502968283421241631414541540146296343949911981127570950769909860055682214627499212697466645836766895141935169348656407353198693147812948849823342268711847039103395150769396694693596639626753783816384336356369518575066009081235342818617945162125119849192652182445968507031961210133861622564412830979699453236957252282649042407916143521738652144261437840607624102035515943412310711201734313771019269955252425919151418988842280056559674200333075085772073393246550406287773923434746624540264478049375577978398838756117037315277709674995595449350701884165251631068343079322189981532288657871178138388764239259472095292767215554705908440002493482474229996420543364105072880156301260907070809176763186338654236326755158402742110897541749726206060806209576761891812399565912945432402663457394460553408672316117682230017139738285377185061244294936376040595834560279545194081395343610669527863285199230342900082453845251955396639321447139517662047029256976432110384789454903939849073510934222971111309415067623197265026950557663240953895879228221359560515942331344708225099410726241694680800521933919468289518259997881683639295167848779300865600473863759252908044473359215768876610938686042863234682353277690467793345942461829267561736607213052838589149552131580750194938885195275190300232709176714495144895547190300228961457520687595604843094050043026882415569161892389443222643478419252850215343954168636430608564267456953712868055325366043517174574793579652643687712480110232347955170901721037126340943654414201276533075890815149330422802717255202519227089669416829581649948720631643385516315670904482477817321317437577911493082010687014229209142917311382861161445008781040832632638007336066454448274265373903481911976226388398835181330483008303005422108114747358588704391916230462942448602958094590972205534036341427227105369331115785806505005398552629231933669130493325011823061477138815365050525308035537480478232403413276613638678396600679776950598832563760711891721186232644818680916977781391046089959401574838502759009953436409707710689238722554817093382224021598733349565086206047761223761746644045350515222161668034960527059167818031479457110236013706557400110713868706334665544294284769842724736853080395384377327943338233402937260347894228385146077598616870760028171491370687293604232082267498522043212172913643858988468380653070971537182501260406749097068222962830104127880902090801701385430036531735890694062935595693907383723645507726064266144485207748045905298751822959185879311443916549761747388250883761887618685768376977855019092716805327538733326938310215986513077903335378544134734386162399770596004479817936880796645829423912816931789086244642335368846789723998848909874674719881366866557383082641173120455807087712554413476988403224370857512990972358783548695498942862479486134019745384335459070908662209982718831206993569140591101812941013185038303811722455860345939387362126736561986467696571423128142069362046160823763128658839411166657639786985487265176890236945467967680877362631224261859929480584198815952863466778088773809575588497218711071376897100097234507651597763405921082704609312105805853271616707429180146463637999471809668355692263441719987217611726254955905209429137828865789685454169178404095584586766469980749872439903804223388721278926819309897326333026178887515946633292290651121726463295382010502683463660289585965137640485281575298661046946702344058390301735810603962994852555727805820265050772540407909025848063616445516184469551645876387081864067538932073198710141705628005849263562998841209507754876940499912813998768425038813483462638700933075518145814278563356915416278009441272669062053394140973361749253952731006677216382531923066088698126971277809795789430937521974560561325923121116478464424785960960812344915129274582814214834634975961166049706674627167615056914993517182535878568361134244118528430655387758114295985048742932609697125216580317163043432073481867126764217010980552478063949790581910833991454856062162085482645688778346107573442329991047926678439239646860012066096050040381162560715222289786367026972538119116358432517590790034935180991123395568699463800807358031054443340620320887629620745605227144205612124626657563845337034885388831669104081050542081717718114706714789299020702205227526843373415422912818094604521589039828282488955959405393462555919834272935525817341710260749163382724234598002021844907217060648547943850075205177223311394368809997316366851879976720793045583870561850377687350860601979108051786761087735255977167569882749872426022915256372628564332202323189492414891651132124111058099132460302788949535549679798865958394025685299837847281314395644139702974823340163203611602378416199884488500695816629605351300450401348664854525555233233936304199689632996385653256391778011412532721704149322659287032703000292629155175943770852019135570878020019571727088563242458735444407094023621453833733767853342932406341624983630869047483348747413063005599211312739059301432508174651446861284864708470959347282655909347361126985790492616866015837270698898965153674154676848476472016059853990514594216650248271162841672250906090536953853652230331421104105223680646447310187738024839605759205594576335531974841127230733590173440192428484054785418040153630624068446063364269544044542025063717885734247423247323885233226003816140236060781669516068043394375655628453014569228473267765982756423645655456100289571631786334513783188619056249393664796868648949897434051562995755845144136474289346151030057083782972280846104369085163385969554011499747100869216356388521187828228054990656734047338021700845559500893479672586782096170221854626459777441272994962150170108411888994360172541362549783351807507306946898881842733604204935828796290337062893490101925172394543067161750486277037310728403145045724810515372539164744263895978766249589171996961061682022496571292943473723793308718815708528156075148170191684195984971542176691200678512266255631178227081225819304631229115666347797808921578180335576579414398084961775897360454573788366672699385112041884714080170578182940075658648159277429734680004335684324344186501458109235181848683745049312353807366556753226451564050539695577945845074568406079873055737413594411354359922107792974719334174506618542011895910157912566035610491332905946956906109517568619451235465844984901936737242874008298329821886112538612343542666302592367909988057762209167711624200447505056678691783333098498600714827769260886688347092685625332158899450748962191485863239009251990489624527135426475482540108871711324165907157843769890791263317519467923065721063949090050570011284583121797776956028215278536068726042213454948752819967098899963792722906934928021350443834307154193107410225034283975827670650016832057818141283761921049086902130254357148920319981726520815898597429771054110916033927747852923422329363919450256625904596721168595827274530192743782910271811436926087238251526952248628404512812565646228979197564085623038348826290160722555570535168407084525704262294303117651176264457894327136592656919832557228213510774142613189985972751834263181570417683047470943908961405955114357773059423632990629789444718226950720763907889767863930351658910080726357169609390398113681850495090334530835258053743466731022507014061109941006737563571862019044663717671627107132551765368186667042202422370528572740796176894190892593067153983902487003587303307239430662236342727116318085672202549878973168607616867624183137922735441000503120370450830501499202850648417665855873389409495092000247574013276036567910674644943613547655809376638729331330536930757304851732577196375605223191979743758435353006879918258912571652651133144633361290690023798887695423082908965238879291438869132629114215454003557600894730977141787273503715610258441060610408978617721092132425685190682013777862255912621684282983422963501923381283775241678295702958908217315992277564561271482955772739470986579148234621677171059664899319029190603964913115151789546578406376411285618963262311616137924811300742340758092211906095263522819414513269257222654526275287257682174535824488183036104623238862845276613694894590862293022227463448084641609987614792050756382293910139136886893996186575340942278267846324564107791183037374278648721315147842538866809795405796910415730100911905942049716937729014453897413923316555257862657462266593080027393476676109165463557731603382232103848862532561193766084667076443360739598164791275259290291449090685421711893299502589091468013636660588989296318912469207071828637944538341495602877311233029682606018696792580846317727244791201953841181779975669956113095119594802726493911253811798407392366553886686072206502231910562172343967216207463469390250476094470839055057165805047051799460675649960564764555111108353678548612403760492873737919617446107391915997343090184220809603396487139286751075997193789438815602130743849826401172008100928551942786152532229353309778476486591659100445695947785328127950933888623531402536154900819853369430460056248314550992979682164088456232171955969862168842640833143544281135376520277669470567089692957100746365747783119665543587984235523505051359834340449478283895723881420375889295032887487966452622873083722965753013294904108624083397344678068997762197832892764175415360188263235193938909608574339527405350066412697068816295490701163196747195165353540133147101952180430584465134184942230046608097416892541131965933610361371253089489572697550062582174742428258376036961197498317240043591852244141015893040791001243487714080588366700166805851668707128984147952427396062040288530885246790081893737249240210255964039230957719166703893732119437332871630699199862907875020490460234761552100654070187219967971711604355154844715834710677015746655561473670454666661788425621321996755883571210700808682951338521189118166353872013404539052926056985662698192654752664889324439325159518043487978888666339654978272904469420557818346977774535446408282150077443572483531220461535385215481777338971159651225361783275348787519803217175027723506897660876248920973976758368373699092027437767677939845584362819545645667323015529530684687367698537399984197906886398029878247587126764125192555489507156502509336028873253215489224948278865059659700173711599151425540369742174965954831918823189806797323917633037961697948575989962365827439708638408320994569832762703539070858369080237199457033526026821254570391599208095324381042423664417598890723180266162125954570446189899831452253642282720804532543513868763611154382162297322007429433339902841922718079216702702797904316938706789697396066364936728616334672198527660205016659951955812710047997765355730550410049951063354369585158484238971566241250618604073242302462452909918718446445159163998025369232808460327359520892252194232805801898557448032711212078408426850869389217962900738521269916766229226367184658534255501850544649728483819278075818012254302691616272189359112925446214759734612272553229943801531624594125197272606648139485095826947103723889950924023629803739136694663558286567328535357522467525906586873861605478322880548775298533411361912095636022650511700509564674923710141561004834008698294523054893277640157856122748499413594904784778764222304991463587664754430853644693492112727482487212953668111512740316553792696067459852895840487845800458508106876775446419376844812353447205459744155618135014907208681392008471362658308873845413767714894786018176228869471870985364173528427110275590459699649118237859464546729191026920545288048375509909401403050267658681169866432816278863644443379189341999296107394273300008032250125623979691812301234031645548684882966404796619482282533351302680232399745403843352492979711508122943159727982846810915521130320090790321645436039835774921149496701843777688715879439415308009181986479492990872451868695973041098652725275951604234705489776495567908410962845210002741299079448943072690539232462761111239414661877654958620586227046101413763321324150241698059018448033563614770175532847433613569811536516938869784454211602177498652817087521637828907327555790678217399712819385383554758302337528538792166785253400157143598538776441271614985657419431092650761494774111342157121228462199603598770244548872655549922740503392951140908669252715819228495993495454397502069921208632568028246655531773509735252205704525453724635717310955066748089535133127156951420385579942446383935429454307562689969403989860424238807927088587893673147720567348200938808550447516951545515701768811470659210391560948094936037332866428055002863960278157711841085987680281041638709747454250300413794284315510380608003110814965133368224336248722680932235034128789518403947475791785582189571487896752976009302330788615529562515121829175933999539888588301412838754292057582502034946554070289547553778639730614395041679305463984474569921420751683965806876891598863998630311429704136062224130175267171346419604287993537877473185666331325250848786328737476347457642440868330289164368274958487406783017819486280749818102135335006610979694373399368251205024760170399930382913477222011129221121298656087214022787983044268637739908476423831828203772490005410420360346050729860281385491331833788318229760843328458259798377113849024470110143555366754513896130289819259243424140255161623718692305272807092142813445503693922913911209864678368080169156019859934600512371496924277262481895334805563006035518295334719014630022809070551292764997965194764974582955116445213693406891628915121672604679386305937767408887465897630754490059884465379859536896721129431561145779764771983514493002016495173796958802461163193988029335194109429043054867051778012816869237239977990905004804839765514804501207998360026175587202525174706692725695899234743563433004696405706516900445129379743050790042684899030870889154184973008348666082150056789952415044927084645510074573394139106600170338387777517361529185436718479072246572072330590234878333363454564692205224724700515166447992693349449091382092728535371905175785200224056366142347605477540491713543493928804563815684345723596421257446078039509278064712805427036291947096351643622860103945744338613963298078978250223135089894777355885830102365583828129030749126959479096514990864816192873870202303254019219262134467541782327642444361353634006734990358667099322406534797444592656514748688488554221576977434668340855177098099687739698409706134810968757472866060553785689750095423155008986518410954295743218520679678035265045999107046358433779944624148543853596171138574788195886176139604290171313854518827097303460419392483894529509493684935796023778974068298760174758581668714284209004064475485259836952837861248218086436200681960307705158145074931076639323573755398820593303539439540761958498841086675560461888463753214246471265457388190238300615892061780794790985389678132597079659926760617333912976524549236488438263812469302679040899741057525286658358950304617187105262176853179802738061973438123976216770249474206995514916214270885313346627902055116339167240244551933763743879098426050612148459905203417087027622293255874209703342547519544655603595929702194855121435889790423476240538501391764789532222343232599521964228477636544761293845174187345605324718480517016314524420214803225980587888785247734200255941332350050836646565844548992279880308054694252259243470343771223909633374913844749426945156097788428757876459432416366703261102850813437530144340204419434209770416987810031071773814183099115837954783227177164619868923508955663131077353976615829074529304706097263616604323355373718566575373571698023497484272309604032902595973020386357991423225642498525919794067713445549729691409827819225684417620261529732868031064450815637367556546773029497884555909746041918347925864488172915636150029484743755030587817647351159122834192213994317356269175889641768901662014369655606108453067751650185337563625631737352883333573186234674810168684188322078827535430696614886010395316251487420371777774435308187462648087219545590638890026760076177106866861989524646867761956446944599012302000002238369017472608080539953739466764852307965814204923494762023623418425723608984714846836142848684760312614279766398697643834911249983974736019191227284339470246705373761717787095298637694755174118684534075745624305660222251261479224358928121340130276471847567833818029274121102156933576961232040408687462297015074937717488512728087036368795387345983980623124166317954435463777052965746006706512849123444914184879032028563619249826756269377994225840947296317309562931654740017752423671277655515763228801190714408303652454994967327616927318816118481113245399617976819819585506881853703619158034258670123653710800837075982009474757013154320879393943780276980635767926165657497250702293736579935728902770970498549403131334050861931412591789417901361514698998890877135595638751937287321516559748595300137832298345381628230836758531995315921433289230331382940670219208035552761843868196814257129963450083602335443741874597781579320149733760971989667808161407053783001519071270085288884482529011755164024120043431836462437126109683902648467007826590264886487062843511174064724823269102755631169472950844578957925275816932627059148424984556731786503883580788073637536127432479238197196705239437261298430870892224312046968408067036599508518347181464566035427869588959229658642983237360414053515425221393303546378021621536574335002266873466588451157406547197939365884635347074823492472533833960144456116855432827226041155794055929435807372781126881484909726839314730848440627232615961518440883846094279670060058140662204206942395892964988740149106726603275400356980882077120714920296924797546543140946439001109324274151224064259690456363718461908623843158806943735265427801652339555148385456264540013875882597343141105257266182820817723345169127554907527067665081361606445550900403303160815409383982405102069409407019322166054692610749276215934037936729686811691978048070726634641589367812058806029447615834151341102745736278338893977840285026242530853250702880179528680280485488917475488647086830107358618119831661592240259927799143922966871361431479482855434509102646877968273347003053276066438994923104005307464190916352028155829278994511191387661209552431798435166167944358603413003418732576247014445424637107375672358960862262873230952462275029881836461462669687371622966366723289175124454856030375415701584752112716557869053911978403379770504133931357531800443855253146204847282530231133927228619658169688372675511664801219135139577253064878239113526233678735945268585394733948486507223718422956436737275509607659865620673254588894369370167979457989271906542831096737848117751417533587822307539187630953053525868805064132617570418126223752366385800560199486026550485818296682838899986632028236909963288520884285769280999564879749909830791434465131693106042463501719930553384701437642502983751312748405138761173386191113754532566643870813467625615116233782901885526725452088793748771346600066237890078786990777423160726333160861154027805156377316172963764198717383478398803284129038340340122190651181278015074639723148757138142387508937673370734695521796424090153024099262718662114183408830154014876490102809557685198773745709274198783326281247055535350071621792257218080583184825879162606062261063169108790828782390091411845307207050174542369758401072076161728406367900327665744093994746493555852366096382638878221092046939286363299586114103505794109741154112306614870701302849586525869586165148104813407317897431298059804282133516831903572525635715100698981762705830246112812651946832591520348346023139421669053432048857938090432971809529200940481361902390683673882068120229773578381973644508222939565050793686243946168993763491988976903736055370116318717197367336528798515683978025523985920907845432351747106779279777159169130982721956783711021167404048285375691479964459163771420251068737657564439992256259899202010398879179258727800363421700399558165806199852761672064720112426485023508691974991250912588110252106951473416470962325797348252276568229080154083679571986786939289431364878958722388423984065516962220523947373642481899824209762541166596065434863671163135925905940933783282540294510993339720322221879998490230307024770558390303918778349718475029470381417945262072141209576933891379480494276762108906980992111015099508527452773801533009491645447991469301610953321805872274516073186635269945246668515807782232203633741914444867480316149561924470548540152908156744450936560140446359345427519537924313325831997547300081280197889636348187596597669631449555576394843470554774539509159875832291742837844833424394073218419940922353567819643534626734358658438321896453429773930612465348654226390751713711654242915138815519118707695808099326371445192072187457241681179959789953023132276287796440979169036623455134223776550977071813270703402272214898969003960059560906434330730699386499957238721956397754202737283376315798725954618996315374119805016111104731473122564109775863773062427084515078178936326041077169977370384521098082422554125649501121778621146953450023745186757800699724251439769284466353641054568790224857164725714977067823332885448319563258522559240380599405137960940022037263670159986338020398937522833536929947166136235590123315267704281534682927964789449587054172124556874086875937774516664845448420680670463222404291446962343109170437117153904742460047486525930921623930425126428684627289500881022495489937157348430056369779634100855848358671216942961521667053657021338791150042591184526258436055535467670356026196790068893168081734547831680280569975832946215311085772305312318020145084908944687062924166081359015099693584189191392556567303060276070102829248999262922700753319357843680613559164461525154263505181891429402977153897034977563613274025930325992841209385891321482549077077367452528678580608068053993744637021758483376645359764453067246968276303888640646253706081894385005783588598133312447859588421712757515856938677740268410811144037684035347601253848741894858720017153347565837623578918913598163820772022944731575063943782432415882846532225117133383657064522928422396716415354187767350446524499433494366272330966696971103109737843061171234998478128782573584287377288395539059369904482394751795704570216315870391668428631534931040729362313785952091562111818898871144372576583965301753917690614475537474505196114102163533148416529665464342939553086009438568463737595892809877612275119041968135599315594947930162757758446938572972686409427068205088230767836664908161340635971774355164833115933577225711995682562217056209411152244726773289887576168661747390603538925739439972682407735679139571145972734090958979168201243657887260399659454355162633898030245909489108579966670688790428786402931496872498027779975289714694679021723021528552336025809497450073112992727551573966353322981417359407774363278228985875103968467253872683939575364361374917299004177602613519288278388390804133448683946686735163845471044144625524287770820476242721383196876021929392075786962192419187881234657218390175065384984712178492144311526067264645075944041961559051335605293084487340258106668531680185492919992202532436568338383372899250798019301390536274766619581223266945994165490521427606921640778082623208879150449741757614308913529252040583944383768006106681609299677445957236577234151750149009605705612861373613691484644972296176550142926831363261576187437180459365085329557386550607282665360537397651934378624410455266996906811747924336708186674275056421234776884990570058326850314210952910774322990714136517286136072042724402172338538039137434189585846697649951368779138371608099268937473517213271175108254550352324619399238121765618570549197429372835993132854862165992770848709793828242815883410225770094945071076555677954850598377944696323654242907633283014414162126010195840889332180501865163601160746602221829471630427790933487713031411252980953154312468046038829597401814062248737385914192550208422528491452215291181134276344019669934166112780527919327557726530886150570358404135198927491686268883703648925499742053626820230934441192701312436845523850354634569010633533186271226934322809758723345274520543727524893079778226526566262011229918219118870298659060241551895755518151422060118586613806509136450031323600923490264460255793200103488872824845396079322066690530439953991292975066224069104019735997991654750906286573162053853750748544234367850371443898018092150409627573624633994479090246727509556103998498902617558605912456395366449309836768175706829550479680937503968824533687823222615045921645638078485544547880270713459170231905408580666899212966365218144554924431549226067546302842811053635071419562188844726001469541872604581036074225462094349870741001131832475143506656346299340558157704244995843341566299980975040307263684160817567879739742695556592568668572547042645213996400110273539618497039082821637446213813274748500876091105810817466309633671571568623664007169039173930640514687788419542475212511573748590101688180975936860745816563145564479736756204024408670515099909250855425716003048284170205894245935323980641378089435825801810166440095460686010628455219293702566859658904796502995986268277731816756132479195513308708849710279343201314838650678933493189764007151451197812135458313938758429571056917296124135875579085893076954432270026890874265755597887134666349057343465115900057827265514942215374803371603292376740021185123054201478962113638206889653327885069547810609192408218054369810005866356263265476596845687080105288412854627953264272321598503354329247769201808893343123735865725946039373825117110651833545911357335294971987118448245091202478150536792734152234390228080355966605728635829226091034887393062066816198899414840611933374554585669951704970047630280618736044126788895971332129128673040989846619310631040357357339376707681707882996023572052496583351463544284568341248697348919372258328116237239420406870083106958025693368230318258452810794445294405577030741577494418134809457189611722889577070410475491407578378871707846402545533891181381021663166760312358289343240342893784143789619722460322083478808046474273200223828026862932007627948595883819506276740312442315660482179902656905290535062196639789456226225745238412868557338324761178194410529513327118460131933247396963513773652477747899279530582461148447749436561971589129544278814853333670987894114324527708757640064449029629912498894713603494752014629734509707724961543644784606345836624756022427422282153865888283512461647890989275101426051495805928141032884101988715541347551607915874299724472505417004816969958202495661774074131549566707341808763503368241871078562716624399891065068880395050221506474056938718687140046261777409156589668148983395730885332477510395230704913815493078782300470558280527372933383620837242925776380970127606399443117614609006419725073962796411632583617540240585705400350926005538846080768681736422965702369342287899101248202534033525852236594747371304531571753501602433352959934319490870105360318866449282181636346853782816132050080545738154775288180436116664256272068732123601604417329061731610466575387821903252695741358766172063203460236452376221108775995837536247788471581254125524310876900611321580094732702927503510497805073784794808492481068681267324457798423438341770474514601214418518008307464391346406095732856179952577762245790711031622590881149802545080342332262469254575593741731966478825492580373936769733778145130721097885904206905952688405860478700229108958006500655282831563086706890856089474072808910721452813737850565361309852374359563804149372854604052023967937871604649587598851374602519747264648740472552426835040166985687696723370760169836467548171125400148520011185662840638771492006231855907126472338285742600902400630179638160845332197275885096612635104411063592570692454042592821830199695286789863244020601894303579316117675123637682990244281335817540433315282561197937033616380714715887591761629517436879545076427373470803320016519632923028251086527882335253854624405775929898426107534686771319169641069417959463542751113010378616966685863205584374430151586123294319866905647770927303355668738431255090024454839896341487105364783816208660125290685467933946483240810924863810192830352250612083778371052652617940801352148326297418702373075774222665601576965404983058449632546716074575070007269899069474225816944981156335140505017866706270645139175332462009596836047062476807145449721904328271818453953226616135934378939427378220120612914359336531781808760867599660311115084133302022745871840056597394819221953673273969709735526521013661969986147521977945905266737183697052160809124266123256930953018180212459609184558025757001031526011542935489444078068745127517156392160461896034667416038594407537571389216498856932170048466498638215151972132661803759541291598415625556124624013011614614301662422991301688915697204090088077802591307934735818566276182096846838751498092973927852634498715261182850538072003866098245229679665166873688766480206257757294116996552294325504330875477649194575794760635747714435090037915399433914093407937502258547784599464837854097055430248320323493445275200781877338814320321598886995266581240473491848016940335000785393848626259536154112909908333792687691590559307463838768603404886339944014410372669418928701948709258611888253729042504930101844811174205672491836601379092987485249297151294632894435606752018705659817172002324594611088542984576230659583203769026110551590777770067021724130425278954697677446418870369852745375860065023199856802200681887016469389602022048791144907110594496473150076101307662994137320568374949363151640208026781054507314627823854789889975718365062023410086976416758008785457427101583044296914695772264749763240276211406181155550333650810341000849323318576462890146271817864185624993907677857199122024061878497601478206322084306518410278007443234270960077477619287048505822299712878929998855923020993437930300789809422924233971740892939390995674759493152613017401123792440517766870629439689624293055743718962843746539771206830902129841332997006269355667714837874720987217356246253051891572768563721455002650274462030336279118916192667393289298803226101180323674988862842161932262352043434483357816357413225579357284709254675300059848067940234582316586690062563049431171154784169365982047460409253669443789699949325980769709098244244653853616168116663272669210781246505163371476420231025411329567900347699285858824696618041511681540944784977461142975044408626463015915231160449315622123656586321049259255236551763646729678080543285625491388308677309762527421684695699263249789435372081791654111649717475967819051346460574513632607416528742281962208294698016048901424767168724644069921993491407317112622143287183322814773750613221916389639635410677347456827410139954607835037415778017896260029163821188285332187106634137277331309703151547831294976886267536798762180855148945898512652479046701686265856518337763055944751816127349398807638698894156426470708126834633902489669719108315879099692917596590057389412449595616833398664752798370439493374511928008871198006219874705557984918173566238893632793245744616336732587640946317360493554829512805317296132619570230317817637383337694016503758227191674435358130534889416534014235546276672644693502605659127097584777384465485646353166200027613293797040536119302172288198428573632101310708826269791139051939067067230938598635166793164278279433935850720429588096892143682887911064792600004047046050552042391863525133055325583794712903801647075873720870517691077764497179755628389417475491552109763674367716142042968894783363001819178037463878524613546780693744461335003238826858012166702070164386294390220130176524082396894666636894417179017614173830093961575599150068174556981464776438664373336839927926135198311240974082922272245388751736380996403163089704108256756709044452926058878158144198966918502849764668383575243019184237281154443856327024215116417230178915297668906553930496817638878728967972286802717284694590628739643075464425941180907103103286286166251800551093883018717085773594111185877075248923845250909742439001098795320745227876529094873867814072340511652679254653368942619834268305968567168861725938326178297970030728575397323406618931057237440824289449671060410689795004940190276424494483937120751278436963964955633115041592606823914970640918632711989500216437793893625316359996405535758874505840798497436510001926596119823603272989571203920858498945854124481693249749737109468636284390266514245593801025960463927432388688929012747939701051850137643355049787109874359393236772599814706179655765134800585085275026803681934299520701819027701907745065969128486839908467492365007778155200259982991856087637772328533991503938967915753596135183696083870723529972357467754666016984999539168359773758021665719837216716729726444335887066991530955799524180216926914203331863707093280315497545692718142336896062321636650686169238495847969557123920597796737979686059811534014532804549744197610147174193365504869249519605277257923329372492563999401526696423512972806811248657712717790402991809151280100592303720586075568907883347571222209878759088051371704326509355227226889784550927328140969332031004241552359520256251636297442266080940858307777491025838956593364290244552157388538490831635816677698554566890695092447977767165524366779371358499672881514191343095209373225626768148138989340668158168942962543543992718646789887244967694881453676762755099341180192078191059880931881573712412886825593820967825627014886328519174822224172518983478782923738499702592675055872000722113763382421597613080648673301674160872501393519181953275117407946832264542555777799704604079282108025865047052583614091426800265670982727338261045484001780840253072070341639488601006703287212420988731479092065155840669403038503385341316093656420820318458205222733080073085778955220224228256227541299856731710917543805906282002384780695385543490954543279309015328528787421367429549303060668386843982732485890949857715007351639610677123850552407255439039392591077792320700975196736368743784875334867640654357161018574610652739828576994171157197056447874343000244260636046910481749947114923094309514578417928668874163815902858439702171524056345109516198834661277044491566989954139943045473036403583997555867941908637514971645900020244695066374138598665992463023232515994098945450097052356641973383865266889165964153833667521754097538850528387893449297586050966161333954885441702532447298223282603647614510848994102914181387214805769408731544438192863617046802329319410393585615736843874263943342829991949544733517228760666677833421979063067918077404810183999299575160477688402969765885822099349184955768786397190869020609061705520624773692919631181839472459610036804534508754153956139416714640352625361315403819029441482589687343507976782674135534232542098073677635565935507696923597216388657891160992042646145781714821696398684384990729533633673832107175196184183533954740147488774428070811971939180601711631236453122679848506850110969972103073184395394057763719827102791623249197362599995655757556274720911310025625576661977747401688637996118225978144754763613227338339589031144571351800544577283024451010514579388050300678967228565968764173918308205453066927453503958121990830333650818258716980594108556282002461171842487032832922651925512757702648784349876782644499948801962348013213512026931477906468570771313269684639374227518146963543418572863663862645226051642636296312886945971303758360648474752899035968269453359876566217967307263739410185839111846146120157845130774816387218377750600659763130463825616447628751716514995627242025606239531281420922169818947646083081084594969497563957993443493944591037299817382232540840988280342492288213514307816686508297621638994848930135511245801353105144894153423757405398609309752835660539098043429787045991628389500181968512204653023196174478100017238047796484659986282774878984134880028700632781151136749577192192069749381643214643584130847671177113040246541423143293643660702172575165424660598381098307485912442866236015755095211359402258222553182221147949610162349280168483340526881229231344219254996050216187558336884643363752027769268295854632447144168232894311778309237053299414671778065227922901797909738712896614160438103897928208123041917744803135526094992353255531727082227146056470629723256925763443200990006523111414300768049263701192414516387759471480813942813544352930965711313535832406519798860453624086819687602525581226660220319108159913937620119557346531202507090860180399720190778289405114295961314683459304230258155511545099845708031975842703019272303015311326883566228133187593972726054933461218155824560147229336891249599947877233390427300726733485030766330503945081405436974595516844070084065687377575163243388474874813683317383736348715933268831042937447937680431348130862678649831574237683138214949201666390455055641973826039022793897848925723758430344608425177211561303112342605320544530819278064698821839767238854166974121872897925025871181316314573936278478682274919932751080617914252097587316032277062533569361371956072417011318705604323473283852776499250782481887977284535641632131832978949925172479492534367234342601274276534150763921772820449253097598989876647434769123521715299139128977166159804001553992635760851728796681734996339848725308661101768336094120465083230119028813973752889362663199715551868687212081026905391664523174133683991932002399190138029269918949416835115006850652404466348933515531289297553831205454599447533025360061598139198879929714127557737782405452057281016815781546412016963376912366829772534970534053194759362837871993284119825726959867571772440114351091188514170937108067128979954397030715795456516688180922150707284557157198896124394055006221657409672311849439791711109245819720037582619136219795065990950741794113249015183876034354475645676133214049677931806246516616865326728732028305937143455280969463437843680937105197303359649956810777099422960318026137136374110408513387288862796721004618211090756676590761048408166710874417502880383842967443782647332073367303851487600747942102586593348905289248462614546868710516140958251226202735209831713953434735138378204530803705007210268899880462941542666489081151646227379957602103994815384253206906111561026563204605683513615884315727355316842801894142996530612848522124376905257063602686916954317277890546353606061958060855709001032345918503713051018443423959498014191934421734318527443025103850207225051595587205474241066724167729357875228717492604439231750029213042856150304001192628975098897833109920692289814981597177929475463366312238256098490694849198524600084386835647383507384025338783137779362207527110495449421962828694565712047810264015273650310060651586731156721769070550745252159630244604468993818644303450879597621651089608417745545217198817395796170623834008540688663155008424186173659480014153773368012353570868769301405172007315707613951825328481956785579205273010487951803147416156142831362239488722181116253992446783526143299509343742264533905119026322504032661651385520726290766506119827217810885259161823090472095230737349842578415308650432600490079506695866034102175630069960279723513503861719455123349312916096694857741558953493926900745321070411417387609910331502363771399670734949894684845166529471852960317157651659811371247466866985388610817290286184342153425585000613312678498515817249010975300330543300710555802082716939671838103568554743376710250463402501902636763697527942330666310220312901636895492952312593312107955825422228903716808543541578196954521252857198029840886791293314292860393116132858795822083239561875553864587395087457698523401716343408670131255072602408903332479909443247384089457410793386417235650735026300501378002169984727445203469682141843440920018479385217482673107585577467802117505679415265194531356485421519826284139965085179152343623725264871906291208278484876924754481388619384009703549260260548159520867688607024143283084425110976483179130096678196265687153695446212276043004182976608881644733793532125197708693098201177439953671852026255910814614644815527374005083272543419483732630741603957621326486876769251816939365057681196250678096490588861127006567864349324535899281345726176104671862748108953981895679335943264784899905412667922032542906413111209179292329360191761862989669277867357207409581403755242558933838610119951304399097007781438722565221322999596393163604290253890817446172173834677154812434238212482367714592573742421885942533673694825015409386811795841134129579447260099467222493468644133324319426023886427243423070866036338865269813231631477877840658518784129375208217706965073619821722665456413957252982299861758994035985278003094860553300955362044617981900426929990945323346996043435738344139341831983542056720990029229285466901863783039661046869415939788281576277495177719611758012677153521840476429754555794908172869998150489854105973454476181476827193451650220921126401380372828731770841579256348947471351784575758506863364636710351193097813491177872451661474938915459400768140143380031084255254891061830942398606045768547883374683916016024421782957104557844275063011020451692720384323943627542979598050912252178147382212637888878362372685131159381367559773938615723990113222697495346267304118037000730163658681697815083572151730358795141167971334312896793487897016019687934391777585644700600425165303347038019200568608844093459095879464255411603995816128324127002466385854457293717787442411739014035974531274297364602426545061466291402498363035512948792029270353030818749204132650680377864125215410649770039137988127452286567743581165335215545694373537688607233732214251981204316316993634868628112517200343035958597319834712459853018725269067107975266805893828105495892774534666594150619606388650318375670266368362226740872625833522014702687430001776143324769021447712865052418331042873739299920900575330424885115610446407029792442893285299069948356953742200636576579377379578898292766924116457890196567068441061098686589397367387961562927299261336100105791365425390056491296966414738381858637313713953234772254743693211493832726382750230948919445866962232869097107697202709133987724260449147101588491801868813774067810171210398225360658873841241842862950543475914529229035661406149775592243366336869504595710773886686020234493019904496163529035272922468309162984465898298462226941808753474391233254872185529611188892192083658103382239317848057566914910808761554274252042133774610252088869344438908982922640634454241694315332266023087811794715618586527589600546054264181184809000488855552990582859173206014556066697188038384978200352682920286102931057495301155807324602431548095343604542207267237954969034019979219334541373986240792761810104079496027125631382579731566341340888362830271285445213461649408010684849518230837476258980952817724447555663152594726667177014672324877320746188936398764354268601647497899282298453028990516808765367105698704937208347300493248252449856006607117490526070906631170536956730961847620836636262232448432068978547098793300521791730591420304508812208650987559255926011557055837971649834489039933691295471463524660053483352846652196552766937588247703428256325684707540205363487936138652080635870820922926939771725401762107806488994678093810545309464081378136773956426512329867231444171525820962713396535872394850242809260235439571745921632741465922716428911803820546019340802691565085914272501397037202152896592723593521009584926760185229202373511936305862452351451515053605364734515051255265048642639078401224722034044974424874984576937949043426593444712206146679328328472795188856235674420007275055906989292282409499330999843592412555812472170841204071205983724720653595929283559944748969709171531483291575914071218840786814881995290796317005398411161344428809960187081216146315586791331772976836334386855166407586855508233351376824082481971710562748693980038881602189106106600012572966923655281939994994972687443152965049592415195301156756906161902424988463040947114196734681710491578004912821178652141439007873977192369254185825227364242146298155350233343085195445734905482191831536352267532827091286592809752170553054053901990953987769849595478218151842430574113374777762921034941325240819052374507313562543726255011617454391249100070832316639828777416542304830458269215616822860518616450047987514290085715567330782028674948007072056433538517615542823761823494497905612415833730678350999368881623760073025081774028626399419492600883794049789897532410133366143605222802140758798616845999147334520771453561682274900304168386177910841968463132310837961034090818147263183127035113149192865835056135062903940625280442690406246842079724463143188785419441872295748857258069493905012476082322507038204618530364125350179394539503168987914290436475283457106909011167685378015905468737397963730537528787402693249682993341293882302803204966849441019999782620400942282129887612176620046076690745335534403411670550647978569654867928182038084654284120834657571353248828097154865940061143927716006326447472976786839513373623457596176661209675577270327814460175505344143765567994457150657537593906605507888330088073414555127197699446211481744143526036092892472940653090744023947276104358630021434879706834900718006107236222454518651038875952225279932838135746124134928902603757874710200786069762119695562394763315533664404531027843298789954520544312583357445153461951569672401126765795927556882868253037332351623888317139133019871222783793916430205513278271827107843343848974982817261475509985105433987714022053980085927300356625818236430472032773869449164278087715754448398276215628100623658008204951330719401295944374564249693261541888362443410187080781205716480281570058799544823781435400057758713932731485638078056760274362087454875793534068532650033465983218420948738108668149147967237373412760369664267253462453906483263345653338502598856906637515451249105258935162785384587271899706950971343843147844083653398623526816752822413579653834135208534483262498472628392733026311933028310867913364391707069290854584054342420642283490320204972348971655818463681636747984900924186379968921256317905011904486340014700356869271843067426853252049506349078012345471343159766629082495972765232144733021015787752703236380627685950952218433578186605294401788112796071539904452249481948801627532860247183821288091953357936827721102184813918135723814786517482524119330737061005144031144968416525298517810142642761161319701128698289976612487623240363388479252303409543282872149586846219576015231443262320125852542445399773972646349262606475224896277817128142669022797364300740448821016473602123435787992812983264728691872532039462979485633938958909043102781265356029106590044324014946227483517643604942607437777248121472555410281034652771320711477440379607113841832778951843024405344379367404622489096136755082573535367829179943276272069267412269580020948991214941949248634179022488164941928365851501223864520004087664671924564672226594420778443943013832061902318370437203626138574288016455150496325438710711469319763798514683729598766805440222449083089745394075092053631808081979903467352401786326547428351613402920114764387429817519903750902874439156168503663368876387498302043841294744901334200674917100728515250613288779551838284349389889151665911769541243888657078903511593188231217904419534956913752369763167748609854380470550214511264307936995417875598094365424121283885451788457586662623028499217312636550813071594685768103967409745335866042255495836946743120915845750899185573836854466049537764578174599906047839521060340088202102607979001628926394594551280210751661716251446406724546030770548558829716564492447473815925665278600837993698077062560665620194698259778886131087006634699870687241250193978739778302120632173968891577124169821254936437749525065636905375819823389951240842199432042850573529787811419571029597428689026367629883408172874702229115304254784865636607478178008668625379290371647895724025450100347070671353580714484438191128917207068989206497274591000107505216685559676700732744686074404879939970882444018337638581142566731750921435757172903058374035581527883959628500277283739709510131633345681968381922410516136263863250172872294850283632543903523214092308348573879103110020783227134516589508530384090076263454415057701280534906039489761757665362329256730086087081527674177108276126264442333835983429055120369284269692592768200999944025605553948655929487530232549122916724872211582525046822851440295408153076255724178698080068126154690301036067807648438787959285631846112349131491795785081920293189366657660919166176036895450577434322953393223194217751221164522913432480974203045776365537175166827837082122394397460780142853449673100181425296488069928811352348782096863168412650455916815485094539899540493909968123283035567180635314307299637618927463465100965329111361829897213107519877420482882754210095789592824604160932535415301071614376659722001386394853341249053992159645923248258782985701496618380104096948862019135120011936932560864328483320441505396962441052953607868844477178889556710292270340130969037609076399008095272969633239342068955718421121205860728308312664942091965603692548738179003266880668769291010074981050609373164167915305390687949631938808048287985302149680326393417338360389661169918901157187217611820512091789564009373481431749794609058002295560103998510931941329412080283957322712614484788894305140760298171973466639225461145464469896873179279947417348517587281776008263480957295306194535731293198995309551675553769514791122941908519193347464468717347709577258082238593059435058125190398697708252113673187441974627963057949159439074622347550637342693428443941710072632757911211332582569378829862933406028676418938955564765855409918731552096635198009956070111247342693802023418071623380083698706510919454921118531405318584605565516172244014663215574725572541734650607009427843648388622595706642390713713878509385100047084605450834463686868853447095423028971364606971560480307322862503362596013086752422366494845784743797698139318892766824709925553776931405424547299785080305463053546757651744280104443491640310836330548057510725918112457530274722643763952632715626999271202457849548794998018816286785981409386459538678535276284226377565605921344385459425397254936730961997490599259707018458092155945657331377141071044906461439143920703358634601972145215801718253316786088000648713405471091788600179661111724785598718750117459508624294370980089344117845951560505687032736565068047988554798993963408857025585661830852061674267147533651460285912098301924906718468310256956354594951036352509812401500850273824276425228931568616184984022648762236489406786488625123616681448211231525049450199594676355029160866892754731102088199472410185289206441636200723207117172595244571267109070636275118188215758019726767591375503565629162356154199071219801893394260078211147109080379968117532978684644796414858735708915052179027438218955494550373939017676300494500971493457179359248691102554637624763548721182120124059666039345267368110032198214511027647465905756013244520528194657374742459203899884992524673038260476299676862575951273892658740286664173177645619612366365610360137530177378157175891416758896906872574858339617378547373740418866734491260142092409219513698965779324873849958601701624589163316198265242715101348021399150960959499209815249326940449308587818378558989662096516335428917531259822857498813313189228586863775035775139363714607243487980315430396958444834252372830475441490086275695535153120948736399776824580498288951892150023696675102615462514592042710138754656281183849671664823167564064168371024410429769149549092350685243866466196752591164763215327948319745889305425272694215562534042224750076949178367422759672368040028984452123300804160697124254836860096158223198878016501146587661334284839805470764413421052443874495022167082571107363842909983293477800384360079767923869494931738389235885460456060043377169790707899023342048983985009349524078354690345861096540914799722773077584551272152796301148550718681296795267927485244995868975115314532830234610270127489440805882979117147564133553261416379451319451002691045787098156683148722945112020787933705580211699215691135828034472599737178064169344830886505406522473975359650170592970487745196034732010260088503081107991631597788333142064766138380548839785409610856205299848452265845065992073774739976885183043642838090021017226334578055304303926531927168641246332393511710674353047446076510732862200746191715548403482235620306167489012394781945386301828640783327703623227202921077941971526813115478022568708969800582349737911015407764250715381077620208515562296004879812396079539923693421283947632869131980603751348069723929417303796542236294802329262403058778201740438434018966625959262145871649715022118342463139931487000267867111056639001774351398275748167983553239194025259024076816943298271920784125098716992650425515358608504037620394242071159077720692984314816286729737690719281266160403574688920315043560500879984648539884151026718395361344649059304558549014600368753456978038835310780260009815004376536399124371918300608247551811157125581028217114210775402712723392055149368135847965993131396749309944816626523933031876848084404546712213771667133132457764762730314245047275677431105064850471800326322351841671546932055297694265761442550817396967453664275544469455737731749121454601300666297115334563097639424944443021503468758249389364469702040085111045714547119078878292686657486971612943450616528127754654902450945679504637965486668864934245079377730275200697236485120289433502236179261420280812221788431558752801297739473982672819007088100660520735967390406819263013694329406004095258443314889154027532891660591551270373777235652593711862035727078912576781296799129020938008779965814189774678693247395440916828682709160655541588545721418415121662976266860072183688393760308085191412610049808267660487734511646917531670025081181455457042933849907859561488898549101430357012222069457787932187531927463227639463762329082226760983151788609852858010428548111171655403904304228797628369195866830043925757915231505150955006967121596355360602077415740134381310655556252667732399476635067775621810792662805009197012128498451785698069807605871443868459684957980387629241060778658812245948516446387212472852212163519206662838623595652371095773690990671173172160891235955471402302556812525091098012418883951317926131119001448137525420943123418061406684702044751979829021390998065113110704626197332381966693590232075627243221857547715404665610878960037416051560560342693138235275298311622639441154424691676620886496400362430860853810775949014171907276474979853950060476707086389337277863804466325015986916184678170211450003532928517249678615373152906146798331495157708741379324052110545910452730360822376650034118006707194724949799688412387757023051666241433491915333295444287846521144168374959260845887114604987395566355203831670064041793378413295412063387230877759567089776750291479139222226687304997079035724099918761087376147048122190469465054941006377741949626025452968882441385321969058845034134019791534444051998708548010370848123328092735963592797840590382418423485053953815038358709884719542343296675303565775197681836493509704049337646352910967077453716093505550709349313786540071625682593802948277572294659241217570260509916229447804581728247920448188927413374815398522423326741492518313272696678587034314774432993390684476964827284750247918065720989312280483214283373493601278524133662180061625586365117887561265716333285130306504862547864928965930340509314152732003425062445825486310738518262252602919865499121655112452376407246242292648414273647741838051801809071905196806385233919856153525625048885884981574112213508488096775810417044579595471989134680517411112865943041852215191321010669964989668408592159116453180378778925046960390801204966632017695803122219900299680882999190280803791272157318848392615574244556525022398118210061166462315106380056708363011234901800670053708983457643089631533745808254635621801525492873443543983196098909661861911378200090758274504686966181922463783950959088540838699703496858303396738605680043979754845418422368116130581410620686581498777327629362394951575446988451520429617538665241674844233562420187633800264693188861635985799942627651828874116728318813004856596367919693692610540547306820346422259158295492003500822315983853195151712514877313471955450262934393539092415889908815435829489681886831549971809922758636973492137254169472758877408577215247431716844971308314434351868660457284965710302138503969805513853050323900272334894863529917171872677039529539588019028812960663823221044719482917017848661845406118158757200590978642823755502278565626544489724917473539170339744735011817395961453325977283510023337349911405803790473716813425652245699979349476532868519936593432320380587089126893656726318871511219451937238931734843511982829955658952625256946048253903686897747662874350569687922403183988214223314128244776354853079826938590949546663932191441988841191204549298000652317869850660201984436276729639924536047342994355737810848243181266792056222216055954176282993601402232260512411655181183365569546707975823949162407097349548513797482162856224200642857590177107509670087111577891211066274069518913718677393823471064682409694879994870644367093516415441935690907919957850920193191359494098882079798245318913250838893437829576822357418026054350095711196447177925962343725664611864137304763132262842868596068328150275761473431255664931450674479290969330390158471772030169497955713470077679721419987429879756768221266429325904598248272755748509408422473567761986718691436632458063653852731179765608987637645477115648426448428623234908461806487840451321482806171168167511901729254736529670710634581547277572947437069023873113344740165191060866329026224284527342802725259715878172083622990687662134745196520492929755303881481513032227925558416643040995239627885439095671420828370960061682515377443178656814169032380258142862164938264801439045901167401425888528566280917553356915685674100111879928358202271436807432884871840290179248044673447524925056208947030087049989411325789564557085398019753820411449724947340874817453637486156173794438349084743234437890393511512766604488770382918537447251693423843886949941328321713103541159373104980895522258144252257029594945994880474280879722203955289811320781611544940028201742033514738627387950266835673890551903888046338748098751828894006034556466840612123980850211520995952322282698350483445192550523189270739088064310447381353721702911157441796385772875988760749690851651567661325261356525708916485302732834598758273522077929203371472835716387769994373510148268970697488420220449614002001423270696400549033113267317610126752656028484995708237026219929216310657762983727035974297765287423098253656018730336075909685814052815347704830413898983847813483648771140943962185315639343428823665829709724389421501864403733296933228146175746092216418664695721760412396801421520383427109240389261693479532130156505886613720732996437017001115455394834066765241482528723701434682371494523478759298261119546226795785157726936243332043080634820708812115875887065018251524499869552705887345138374342296041953920475009791688619505375083904009945472602448995065654199907017791537777759957271677005655516091915165732020697431540577839864016955481853708144422906358257355047975935313911946975517463462056074133528466886265876108119830446508315556937226452519912219824361096098754944341727488796134836759754635441260761065600716775822466607659594853425172670744518364265935554513742878155881103294449797764797667556622776841251048127786880706332235401933539768802418809573907740092842692299177692581310242735017365329625645686014076422199172763001546689653994970717950535722834870771527283919312178100911212970519787345999213580386158566813569862708669549941385496482496986422188397059129068827047740049095149829459381792870249567891765260798576232767024575104065375119819443886914921083994477204332270900480751980867739833476782532947341819305810724844944990171359517741473958030197493580364359445625474887688849079263017839706174630848736158592998709061150458807645735551576655693290193414390647565359160454455119772385543078278208647209341013000877851491434799421976734385547387826305204408473560450989211678832900884701917677726348650924131897810638025535203063724099698609499740015742632251863890545792868822477235641836862763389332612180965503843942544500454777198948673995686526934030531954166197289387441514487362569010693319552248952488199331508493858338256405325920517261636818049550147786132221207479201307446544142272828645898193243406385323147154485480967851419728724555924387321218861964055396761246484766899397247483685161554671944423474608677008329679390078484742226098196865014652317537283357216298695176515726628729365760758815656481421518332067305348843589733633385158635610638495873866099575105583471497132454400865212783434898164036101580117364402101175307624928306198285296846963570176577103559158296215430068141154011560757662757938951252930391631710841223080528986711381143005287410789300825099579271258449482287446056513893189487154290160965384913770321228236822012495071094004297740811095752773220983108680934561314937552095146710860114918066174900924988338824784301848155267798748233085517897130916374413370156980621470980975678665226425271806695658255378038880990883441855165280262064871892903078353875220654822493008048862347357084314059695936215871472011085002053396496892711506870112731916169420659303657011402255395764427577339413572151424752034990793809414855540724893291682726326728304481819474256918740981404750548499921348566972398437349926931544425315346441694456293664889227513386617975746516033370362121083941099207913079669166863727031589181888904331108290087802874425799188608979746778172381379582092950929928245753532929160818172194827784367944006663642148399936276695191698417806858422187778590955245021331342023685228556291362176996131985123005620536325446023338871791481095948064609495842316152325296282157217636749625254966533165289617048457448278255245118573777443947267712623034801254170099115482388089541629533203513433059498253175119601067147206073729225127442613627433143709037364372583113025132230304626181617830067291700186587187974889919415824844441288324973260508178918922285915077054159838758548702759717706381551249951219469269211583415311885497808180765802844377059656232181873643737576663767000018346428848540987297321204320441257833768956412491534934339257040552290549525017243593044989344741178873400626997934654808535833561922580265556173878927437734709781178168656434691465139488451219079680927762635596563781439887508449573406696385629145645951107111324260555603939679226528701530719072875720932696861612288647979887255676101650292362377049011996815302064530322231025123255654021680165811500259249544368578299335320597682097576091791702542985849578737633790658960974773810228724405875859990954294378414390901896109430172496279461440845486254093135965349845031170181148672078654559586048635252162584199774437471926033458588642210370081533962273926936173014011418903230570290909096351042559905644867914509825377053128803389177676425304487260984685367908382300207640191232274298469286361512236458033973314215722241658672208754090506694633419454139508375022967644939295554952534824667272522941024024672800209685603573210824406490222824368938887855902813494764831914748980021463627989810263798886434222784928958179241658837185146602930660313728824538496124779439397101282549828578180951712053767149341850564281276741765534344244115156658806394157680988836670075833294393205622456129757586696455965665743143864214771941465090420669315063947310851840891581757431558299006471332652709237101324620608898767204698644953940236513416134946938492827346014690625207000274878056166254634999606274984746608855015347004328757046941708261308108008553065186711470322999627073850798698125610552385316269741087865921892473027587036166008843594085456209581128533541448579184337899201302250922303457525375881851820060438544765803037078006948256314225909231423770859214819547907963292427566798088476363479278467679954016456526931712601630788445743988948616248379540782422113984924629326825485715844057026618071481470524295955219428675626535879187145599940054347855593891480126150034110535932172602928263449362468987448211733589680165965174685234476641632737960544809357533842837889479368172761169804694754212828694185643629547387104638787208644445694042197892831226237426224752023820921087505753092959658206353448547860375275260459892097692551722896396821436125036212181619145410193006064479068510949689576436438328916987514135316496553770435582087846649297378283583830550790833106800874115730643948420003679108633109117325470460576860320454146202942425771375273597426618223620215137513906819626089538837267946551848214407104311751802971605922436460957933995716448900113570072935859406042252182358842503267293843004179408012352388417129192085633264860563835734991783257695491897680231589261496364064043771135919546162075827007698478418190958350390914483914926312724537537887790061268403514382336224752667270387623434599584119810545567766445716809208555975489271855171735385239359508581617477105991223169341989991214629371021681706169770552818967608941699798054237905767725176797887997290472493174199246589656306206015038835099083437722545305429128214365390365402067193826089501781575974074100205630922348803516305627868659691172672016223769570752557035435221779737100505348949105409535471866178986776798925951296866348801539574747835818539984876674516057283089964046036330330457120495015492101575078012899693318496287364222975120266508681330272472479874635607078238621718695980346210550770499960443609965041025173939558649392028738817290599059567627509040961429881666091342579964505653067312299982470411410024490728555764104948928538677668090406106022606091278314645943140600492609094125068807035519255217447567436832828203576412295234164296670233451302693854785656998437944974318214885848889719346550307090037014171660621857155549323473950573970363885970573874161888594726384843129190801749916270834929445190332495465982895832380741175710094188844950470154680443978833997699735968834822859009037422176423222409086871668408731591404036180207095934894302418941951286488979188284092857758796418987990916160415900264099722787665571413506073472885067415281650532968175945384239726331299861826510601949793320594266838446063116071904429503634615062952357082742457409357341720195959342742450022019743349299058696525430344634195575703609701812831965322338639449521877524040119648229187256550193653364458632452916080841495013594957123328247691262421009596519263400319720343705299914343441591489980430816339341775287255130011070002290922835183664149405965949068979304409235094053297535813618483677613927338888651566735910185415272679345849315195833866253324350882619389522666068310121408920033257153864755217224227622507759281237988357079563521174210573911473366520021372321279221424400638512594410980984570619753561591928532883470822257102246514589403766573642694477354881803023773149530068039198971962384692886409248793163782909911254296504009743089266385349740050069510821420309425163329003035334980842962962568234952709665576611313582702330138330658303423421715553924835215688516110277700284641558446417372485614950014196469410592144184714192548726343993914806989882396317830736647719024204958873530115394185555954749626628264965013291036003013235057408601412792009213053102055208356719648380552002736184469879521175716681981961903338728828275986550364052326015884620506130372314490896981925332243642150593438983035915670154830013468532234153989257370711175320073063527887648380821701560871500039574879696321802425011727765364387764476153977969750099440760058328770400337206148527508955502876713271675047141070870350810643210233317947489103422635085749210279832202813064321624971866395081777881486380191510064882435165717053432449496849635354204323755295953937583750594095901595234167071352245199279912541246971289968494712915473490239237501742253005469790697243383834380399387060236304085020159598050295745971841927065066852110517012801451144589700656365653100774400333908465162543453244255193493487297568072991456294555116799199138497218364695681402143467765081773847084937454852283751729570115143549460301666206346859434893872283579539745340487566646772150417185640030854767985957824077982589828850776536282028482036580528420838079458147500317065445535259366596591564098954800380089868583614740424368156700612824415546324352903696787638566624548941161384453652269138331278546475366804709509740244337127355449751116726503133143911478729479401316128461217091721854444353598312168405753602045118826174887419950555533918373951917131129754380527518647287075730658665986836730738810723941835431143150561740214074739659530570297883428827833940621760662863363934263565450076721500836069110927055732404773203172700575410802761094941506795217833700587490116468814234501884677066367940898288126393136895514958034220122303788703447265857390757018043277735068299541539773951964787783731149099087273235313499652964969670465819563482427994781844506351279516893700377162233463295657794723350850883719802327473254614479451344726278658596816744291862362397481128989502374889610809914843390055211417788328877528248434573628779149786661525341371868337227149167450266908746855564660898309702476489087464638613832608152238277550680467873181953036360572393214556282286087707761757232549655422194856471296321880710774118719880162084166579725642974529085391159270977977740293514486718354924644578845915337113529447455673226062671429651225582942743377080465908353096451360911615094397409259042693211002773048960491773371598922253562028830749049675157465102233904130282953776377976274189563028676678208285013169151829996584672460429253935877315235102905150926322035950296186085188364553713982524503140338234173451811943731358029968979991783808406100925157624345835657739291975830910804132600832521771019285525682574686986187175006130073162171298618115821317106030348552026509928037737441604773754303320028080390907114609735384201638074525752702606404292158843987692245581000755150422321349216553971162647108873333491218893810650840311322155919114010445197673256730087581769064195197631118143653446984523336148601322193447435342453061048730618745494352883525539239195370152254790610957149922167950022376235869626826787678926007085511153134403347899213385944638503370511611498942664560776541674802459367825381701325176480882069466367364003366803987962956969229558663572129385218516102725177919838346357250996330869789607041452649389821246932025044444147210159039828584460000445123728627070510182313791785056027298655255418676040699375923254463851797446341109378735197311253374399532300992690008950697590437064971751564525397490548015655043943397567704959527367058394962903313205264617303544120965776040387202112801376802931054424218193989276682347956661031606808220889820006083443459238983367455475360675762023255532470661591839637049281551143317114739835290488189156210046645238864199613306963758882976529505590616468533765511112745364785260683365201667281319088776349197180195816485507206446464739877273533819043099234269936189696718227175241258620422010832504155046013428096871525198704964525666840477578100721534124905465900212375330743411276216794649905375200549438286128773476886462089251041512883980952713798855301347255585004186836716160217463628400783707427861838419631852000493778315655971817982515038686707611786924484735685423983444822999045586184983172118434033628838083728615444712414755792051724548523099816260791006889481416728972651006374355408789648523786493037053709118869308751297658884775304971198280637370178325015477860328934193788073164971260038309561119550471119142029105580591723906475753606397091774780437153545612259016833853290230339833633100358334526159829315390580141169731137689321322181908445398296291210275734953467394379298681244910900997238547053641562835439365527468939892927632874782927932099221067868758703094198100557755023400233657044387590250931046174047475220264705906846353376264612728426729103880143870284345171454032682554911462765835735032661703798349219868424872034827034164640737848201217261356684157377975373959643590989741903024541861145867069112921097699498922614803066809959182410638708126979764032275896876240965333325654015555160118955370567863982679974988308607960022622745724938603116506694113451446448516731123985486362050382235812748616949150737040640927141767158050711172240055003659764012606937890848682020950414496508004314561070452320896002155280351328996992665049644606005401245229804597900027020937105540497315271999125603963861562834698702844862619801255992850338336379494941612893324845336968398641204437431643650569713332473316637045921831066491345714909782712308291235838956784959289423912432398929170029858660791077955080894376528344095977198165802260019779689766656031089590118516066207946705108604771686886780705141243203717099564299108041569535702052729040290118134796859521771865181699121876651679312425588070931250300670889621016434317069038078200006078307581210977573114478030243916828935209556598230738920497121841797698788945293580992700025253503658971210971919718433931155723477803981169973930073860069441414513992315843421098492415899784251866632857374667477284169179219339122363384886016769323455740391272754478990763197995263195638244854402730636359440870847481459854950165533026963614308738651391696456756834860844908094567099516477756313344265452736524570139443179902768451132597634396832083394991437404154022129103849541228991585969984807212773445072213340468009216940237495499978973416430339666651631268762166110968774799784869300677875635619156506918860951319773664395264689420595875561575396414594798434423042650682746525691916485260757511784300290129315895609482381712597010427728673232885490255518095626022269161634881178160486680848095089785866608288065000946415907239779473074634209747548476765946375521161778846156873710101427336980177789776320759027760681555512867831979077876125228002834546993824047021136012076204505051523597682527588355383932340815547188379188138269653190220536958972644050579063056100110732014172184643167777805896223577442650842590367053979251141676285800791787689719615467295201006042138064153901264834209026685515707128902061371704665775140718336962235044631114444546898656172423803492848305174228023799212892817744773554901317317508987244889932917318846484427789738373811365090902158730467724880050038989527194185800788515422244167168928586371604306473949368482010638881301238535877727007748046962546891303581237560348431125630622243443651860750643535700298722599260118457039711338109680881433280696699155474630149931776832719288242387803715153370744309698953396083760261368082990419303654423346043001600981033537944520726193363921065224916515055998714334127906049248882047482677725005890361643221759198542329271953754255502546063692029321596030071151701796421738143099644450592688490493736815210407390230780895801557151309401467748879594404361777697542716664040380027273326820988272018555991249879741362839858902486620279608825833551746803213810417944223197756617820251004444891448387310613807569844949577322983746693376010049811469797762732763896432395626655468513861668982108866977512267994729456899714771595146976667913942334829149387695549113585604932467757124242349848005295996591276507000917853650173986814707538447727711110744849331066483099884664795092704608385549323496909777953025917962978794972277324119458081037031353906994425029288443971323302003055247907939361146567151087814061398262135417150805722554020433129917066561939908823850050148576220205635090466827897139341272528394281280081865732399678811835053010075343844797920369182429720264477562331785674347558344671799553587532220674029225550576021013861110597376713770982897351488289604551072915158249643711539977380789964073146860776473782123372004991062547152324581864039816204440541283504547964681700366780291058148772445439216749709685209773793395144691828963791638226574160305999970303068921289469834077991331878007832950695184563812534825459915414071756439241558332202120884818623207394041209737624470579082997906568097322213252853738868934241782436542649376167472076003958538245989638409728298513615578195840329529729245816878588838999832807740199990844775727177653436411299866495962701211058803904402994648730326852094035217363007466433983531018612532051490778541107476458732263322050661134631949239469078241609745874076511519382380132997153876518088202639416742469339988269153306566414493979740367340637988221361931070044850717243042541130039425976187270274949940630544708132272061682793008835767201405273075881416093951102637756630772615577970676140547909710211473777202903411175380949852528194251062910566552607390148662332999623057774510855517363340018328926335427061512574011932973555903464619471916760080579159218533036701266964154172960803781474685967364665668977988761094923092701793708689373407697661168591643229123470516158438989511908879014197887409203868861714705416163731333000336431501701381739357748427292554077700162515660248758611856832323487563902957249660470017887110063342207961419259457352805787705697972414777523673570200629354862583706100027231072313407268893295382659683141511828163482242490276786448462113399010111971732191322809506504002556349140251620632510760516368253362519093071548769535811784695585886854910678097398436180648260654085869479395998400354498446862639170891315757553198155654351552243778988703175152557959892377551600417483230960755919088797824399012823522069947543685380209818946998036929050078242746248572050470467372075033264532010756886755134210489824059389207116927296971377756223398548531504676020393982891437395022339515376432650905546733352052566595015486314944695093112548915772704933130709825219113654505264542704479558558280204462849968475652436229635028634571632714291035328489541259525692900891380560487925377846823364146207460163249452580547206960708289834611115622447344369386745848958750614314484441281478669424343299788539155590953844858535846783074815796405452448242433677713721175062856996828641490945376204003981712575097128968502268382595384999118602875109318941335048882167120286207586172055899567282941922043055244149961605579173275579454721349516306240300931440745305593470182883000722472137011526798697614932525291829479004617634784324675305644949663404175175781174814544774099824198997839232594250122092744218572665498817981673552231119416977868986863398571903693947745329111233679367701795883982132345335850508735074465988940707876886642277776342608397392595800630183937062264626096853687683244207273028787956600234044036179748208786471608685085807372310915531895523484675220087932974541530748311039488415964476786903083821725000746234218062196783756116176504199796517527476016909839450278224901307807262011571506750893401223397092492175166332514223701545177506458068340318545814177264282296074174080360332442630865549759273198578669352363861043965877733803543573266000024816011336554706936435804388016543392365243021099751022685855642513842424035204144749123483335863524391888322048455928175081214573979648379456269809878749927862152577319680863918489383837309445439164359382477262891792572498923427685950705482222442799193128259003942147019799363853168053582843555407580846929601554233012630557410518991154904909820849788651259267360087910047895893752387171238625955952032807024764239410956998783527553906773898792700480881127001224009479135243838573332439763618918255678824627562016161138985943778675969682395041238656465787792196155619087248663414689910492413861416592784235441156050328407284884167715355288194182762214251869714382471383180311386603217482068240836556621141670834022711477635038393384250708316846656115993569812675569333362066038781860072436835092307826030915931784180132610877652503983946684073657888760583087196166373682627586820344308249866895845769186831333701431905098888158929233262194419942906481800268072922420794511004438600825404747532818046011496926294995534342866658516290631469395108651188417070783078417618337676366223613968003154037469287907267003387382726332748820629361860456109168061970175897714201507228970054862840013033763885164539660425599117429415783126150309844199688249973454264482642437640799160709319240337401923602053470913963873605345869872245430950767340218971462034854570666180768588343341359293499572583392918975801088531087782700763121559751796884657816708498429932149807418540294273615800263905219688802960879895310851284026226654228075141108654288188393396720845855164444884414441139937959394609359789204575546607593110099533715624692124009004772205616820071310607246597105604986902036289266063252278797267243790288041029769778947463868759573795053480384778937631275334308132872288170040471729675564089601223386161743080871724819516596601077343274757814924147073927454865146439595459251357356283697144095238154267549139189247311384475669376471561613147865356806622621116241606916385959574016225788278260017559278954694116455045112217654914744674985883982609275700837881677064766075476395939857332335867884221120849353028546453102678678676308065283815995455641904987993899825296480511717151810366951916625368508660655394850397203785418050596803715038221945735451680750271507276184291993434537524660901189478888251857074318355814314431537740885825017748502757896266384525339038741720956223351393616706618262730886529817153217696534081091795449269915084194467643696981088331449304825170605409796393150187494089094526314975264249733684417396208710672037049769062413032145655436238556711290036712939566441779940101697143704873632444531821471819717791275626874754352840436487203150407803767441610700083471920080535327748496650643929749612022140520162834705963997286378691484333480296594403135477202365271297862858760100013662188431734039365621722398233576832144939499948704690748971159098008224310930017599829129652991052590474485095458210311157477345228698365469519039026155258477819918535931819535659811155948422292242820555603762155676982743218504361580220804395684329588725316972646153731578248707295025661289907977815771075624672655572118908211029224681923953360724847232782422444251359987897271927624202966141376331412289690962744513412543193649949125198266694508683526835583784266834932320947130923091120544151164263751549532062258632626986346676586521766388257245306099576368519692927915521788861390614960159155676573144618702535777181285186323288829682393192007410559007139290315572823939063893757466934303173741414459418828164425955958629428113313044943885462376584961519301230319073036222629611405957738665717897430182207358439978085240653409384857130675055580536480669421683194787905516482558516450398853915338506962493287542268403585804552765229974631215936448705184986850436588804540151086587521050060714176409429531688742518055021470003062746991796779294349704902392347502152515266243966206502105376316952801760762556913213607715732927610829734014955131924358129283207795472968495182106454907943090201419769947074420426317707742249635635235625405767348746898209491484195893713687292559847282931203048653806833611528421000115578405918725013316413176811195333838999038156170610495381597220296107671112277863365467684932486215699853518559103295169662337782229673777811345198414564246409643692502790321025030255131290109028985661845245999515209776598314775580329098823864078794019496933475819223572656832551908323604916706335683141136703614435085662776337515421573085525484204006486225125942435343004161759306233893408031709997787668008625895424780018897445306871963421742303724301732928944159577557525027596300380899550824543082848842352185804146556206467112925428163193867896205434406714647894293841220288896677396948394417918752660070076329392047737363269870371111951397530712049993978008260156888314584941444967467945780434730336547669709454311138444929937105949806758680830238266095106077725176974588497248278568651810189931769312335829962428081609647517709864939973924389773432266786917440986260225965614867389121771182551332508945556661658449641348021190985252267820962593045634124615699959059132172937141950864815457150465286266872362505561063972732004010279940570913180039767026172622354991557708564515636158130106260034107416129803075977569818717187556485203160258685034685848209988531946743017620389507077232082402347616362218593099894528673784580598569263241745339871575180654858712579755935022109798021874999795629374642421304401603426035100932325490404099897208225607996156189153120777380705878439454175072963752448719441109219916783771020012535086271916237561562417971846757368209205731207558708764057340246110266539712560604958457030698612003949995627890107488215683248268768417112770600477409901477404757199993913648038745508026806797371897173682289308994953645272483504979464483739945916783145125098412872875803488979910871437305704273213870900275355958234562706576664764665090962006263652277467787792905482630251516889890786182045356650506632000708622029722747323414967218553856289820281538845259490821012471328810030195180812421843614234359114097777472706606068359500518822280838710903295368671401785162227334762423545511117911160680303980325151891269565604649556165097691430335285253756325915921695749475105693361085663189863091274931007536940404562200179995465024252843153271160558336547490842220135985461154463147051796424785426895465980848758268114772975654964716877550687252114428070076171947732964956437119350026983591379846680892607223983542367957101541160979923112961095755053742255389204361422922641009747869682908372902894676217329738020963364294638253194387260320983672959797966966084385921563340464483131899270121335906392619958713039866698325747814935684994519744501145783387795931775787922251926342742212631632683593919168205079839698877109345643597161300299123533580256487398612461827654468426671249394785615362491035797745235822555138875080978959686285508392760726713592959134337725464727336106313176081112739372482178187856325802720805057756267025469421938952550762929195462073608768025017315798802578389432110218301751997467507284154653494915788930068200630737551300198671938278613434514057437266849429317133634433862274787214739247142932558271408794674801298339690502533511959340845897272377969038800148001186722626093960580399228126827703446090189537245115533022105703103727560383670518320110460307915530377991794672074760903843650671167023918781954414398698355647899045936950171255819884861708043581146135293587301185524085548448634709760538382547852047583985314137747914751260295840308004866422139508177864280718227428968752278838402529681649964345438893765466282994224322796588972315774748874370229575310618734043701070846486287609285524650826756649647179766112706623238318176562258836947143479228512770928878194410065316735466635532418776128726972152105994225359110398112231499530657594827792881394557994080908009493952429922068634714631517789003578914183018802451077418595814560480925224785658514351230049683620315422384779024052267439450066380863752158812703362420606562851137582832464284827377418809578939910913134099791993247649992848710944570074766124869396273579268249175940572377001738425540954495068228131909672482945707655604344026399173191193830661938281634700425065807637421722521643312888222445692977882664803467342990670698153900983847954630428486238403681834188286121332332639810321992165608245897535415734784440175907411519745060468027668633543130885186662829971240536811216719562410351739938651954307777434432887841313921067391639422568922856442549837625137361117254771190056646723641750960722732690869841505885322335772758963777133383903091444287302902564816803993786939826928850513225965684308481977832495001663851902459322504489251388170966092850980419064066930690284265158079199737822190791021895866872748845427878806803666971344620015881585061565417693081482059297894297446963151647392026287201944523522572509373856729874441154291835956472783767825540212308905147244832760132839825909941428802707067977652582464487035519475830607099875418667551760224268186135960302503159678262465634201989038000082857859271981442343092624082707187864595499859350255336833986362328966729270932758712607271921998701647700913946289952334980470856150029522870751111022336263869809200318402061172473281908584724684977009704105325117034075486631378285426250444532849251601491465969585823718858447327868335684358308222049566524785676711165051254385668050705335915258039336785856961528954748781293196150376834140078193569514627380574977923505194018606064455848546727730267607739105079903947433739722464106590699916847639115810174992282326653638521539981517447055584585757167449068674082321456835189563996645747740306758209780777052718850658419816543251831272009387177934479613288398338001401401508664126792383248659147142459361367032896780779948121995679716662746389897334208454311981351298435765895089142774786182118843612428995477699122297582641929079343776125391337547322490029370217639041609885273006065916266383422010718061109752949018350319581341896577175750482144358391190803149273789875316866241097495467983676959461357818228727757534078784108341832293534554958224618574104288735010923708589982113757823303805130079052846267194813194174516820252408412654737237891557895743574891828356428387694654349809819631293552663123940827087746561643123882562857352757393866184045677784707443933562099121467520945606755232706762372679171572901715374440561949308840479993602432183968712435274329791255883827411902714540895749345273879519417867174470781199010137335871658803448791321306527237209582076522537918528906178752024510232028797284728546795165398687754414932847297974674350680027100579540242311237797389193373142401426426855339833396658807664483401121737040557049214518060953875851437292717590735277562622866920330962280277333730138676076931995896187397777451968256540854367807767272921289704777239294413518264262763090471776696842897814600164322487807389592851860794233095853721859763267532184684316555893106801998683191806399655168967876107278001030620981489477736981094413405799298386619009051103711710659524573761052745854321093639419651565105372319907746150372832190643750840146923052122571336435396074343626707451293763044623176715594676249839165649634250999244666786513620823798495845558369955847116774589387222085724952609681632142502742233569771483677045182881478359067553350260428208424244522968546358867478297538532316614180122251678410040812321324646303011398510895509312795246813724018119538170920026855628954990559583969148387197326210894513652446756860300806847280818271892145070732619614498046112304167246492153295070964718815016187129315180285191265167275637120746171890158659620847739848854058420958271600251715687818007651025661582292450513371031075406234347074037404923103581493310559882549586220074514483993876801541410409776682363322046796990397480077868734265665522482357883103599725031876628817211835990852365394859949534596461102791175076085214438393750483751364310990870179322978095325944773028500723979682377458354647146027620770209375768853542060188787293178579887833373372009225822746219693758642922786607682145287740482165555567263508058970109909414474533789140838367553839800622205082140578753431276423715791076124010246699839334933373173376774350284089630081237147024772715550997235420227610833212146485158505325821988455556496903831481601367846559349257826816044904517399039145151014267618651918158454427150228038696098425745398593411234489787971994299270655536307557112323383211764001844951141656208400588673939847169391648252693913396863517597521055108084915855694144214371873855671451182596040569812787288253311639437568860781199094759040146399697296638476403014006584990190697760622050889040609918399592179747691904979258779173663580497972061496235561074485735963799391167222988883438421309902235628111265737807704805752581249649791187104601559727646421251710982552286698904408118583817025494917826257470482980410331123741851253803714821407208686999323675138814907860227965079399663493828823520461783359135437137319421205359446236487562294576200324516644939743213254460524184784305590572979178870381316985237029717764677950913734229005527764621676589156390161248756102555575034616784308634511948108093750322577319191611680874305746896488291253245827601322718568445329592194033443229893691994234841809028480403244481883786769809537254653019844840482094266355986342678817035438216882544951162415499290687741733670497898168042184612043009098026277609845432098544136294390150787389724029776307984349438014139363403925827277366075290552966777406271914220540100336349638879741151165218438635094498414004578340463853870983321661665986473453406090347498287788917805800702409107669094989047991075207722570732791968126086232790853411334622754870130002093000684745057040791878139137673940686008371174150615498892559424720790341651820423369171575977983636558511398778485077021338283423509820124073981063760634029067178612831328967740605380927083679836187698375719912013847792223919726371740313633625033914879304461180193522229030430402626845994899498141348199801458737562321687489926985800764795528568887002361974886227484968181478337030738478719315648135627707188687715456648182119461940005433126580505867132601469205886388671175136575511508081969464600547856705935652210961961193758496793868495922084388465171782509186305585713178439853109752817830039378008696358616250011391308933229870208475824858286896090594083426139073709245262045478689723753682210785161625299043993365336869835781905645542271024696132657389120173985466238080632978210148710457751829889152015514043275852109512436725530272025253256189346511208767466685859202741853014534463064535953456484117975732986306142859705222561036827799905379768084509319146113899291496701827453109813457946669716205108934309824837202751649030504105927877980036458368329515214477802715102546214721853974367943155707690658679901904057468461191588120002171391407245246465074125514662954047897311823604262359779418822356462993356246095298931400895278364708615642900001659036776549252155525374947428175609878804180645883672942061466168587950989004689865755758079222625821056447993895252788309058504052361018400505730478050251199581019262944282614251778586437224426853050970816682974296181191840929376564725235513924394751991164208225026039736036375921537151262213385871922344754577149877557405631615893588139453181122512083423221113731733206385635561641432932184180979429648358306716059171793814574149510040939772561419032459434059364976974379195595051596432405440264763819355453803255641896879301766337421840833421700699962671973109719381074602450605949524717556500669897184336140056073662954752865869722490984771860849050031118453118796520274228849449522785215694004820806729444548084477519350703172110647402476310062323389613682366463805678870697815121943821074685756498904762355960774347700775814849928692968171874659127185074124906652752416633830979798225568941287348117102393019403476335892070086022614024312086287163350443891002533690681688525990194008505176656898702772190184571736847001259592515009173516229787988263050746794411651378302165742229238657458146810254131726377219224886407925207595385148372807901580129496640175868627045433180123964069618454224792145464595909289469443247092072750571306970215206523596560141228960906312347913667774342654979125193325195757596057911796636648324360412688329339059854421975778291644851405922554396018492366186308500586977397310547412051925046566387445793722235861095334888904923901223613661346889987437038941990476675562800897865975088236350000837420337455677602494766710960180073017424431349262796378695772299358223518532640643313977107063804889339340144437511714068196545742173433526657031178147551610440970486763991069525535433763041145667619825387108098574366046962160123711858992326135315488816932941058739249379546095018181647967465523456038736168686209407739232003213265046851985725188830142888948158295412394840414127990488710026660272699430751140619006216917487964824854073178258022299945868679937333342095762142899982392519732155894118242881688481502916965546902547161655639086473926646376747022072522431740075335031745335740235324460172938333573605171076599659700896568055077121639438912867599525076554302296040882394859204680009005430826579030935899600858336267984423837480441393833252603852889009464999270203524256683490203679258755809854465989584932074488720625196819709250879607323824459216867943134351987742964427838523190850756553124396270488357719647307110878717384266171577728642444393790508946508491150438661136337351459171906575255400990695414815305683348987312132856377829796517688508240287504130041016315765958014117384128594332181189360353629118444672652895891812421301443690308194685169237241870784477401489418620018425431159388098761590178248181022066047509745102306275392157652379680623769181279038132441833976652182407879061537649213659501578462735527396593097864669658211354696293927664998049806197291856639845630299053890603358886002452841224834915583800352438515461219483081055402255195908831812062395844050590628970998341244564236816016771914371485423351178607579295538056007271458931997433238455568196982973148778133933693650414948845115943670184977288759961085147056797726939171460104440122956418521666397331815541469935304495214520486660613362153663252174692492375682008551826784804405595968072243877286891762017813777990551531792592088727320842910641588523598291562575565534013198541601581645025321721627675202606417941956173912280045016488869707385605780641259063299691920890829823113282089864822195612486294376928091901372675333347255191154971117253421676112428006558737597207210505925415052805237501355572910713066206716698731124762230532194286975641039997172982400702873624400216622710740085497102762887037564744310555843945292553611780837789100218798522586514505391634672267272525098736636472274059836431010208142909354614145864621967401551294706352872592233660315457424868252875542010903834992728389626750565522000479903320806076955471066203517645004657621698251978421448296890577419001572046596464403815969851974539567431517587384845662642070200546672475608479566767090185671819969486123941042806240597703554362739401396846879115418950066637657733750114543260560378993866556929049690447730517205232926958760827390637983928241605602293279950981983452921701786296005912335717285440089685172943590499043088835038411320896283288982562833936892716227487188767188155175135908016533813788774588669802677424016474827982156903874866947670032756525948032062013880491235347822806789083364754408189811959465370049216347021234266069416876190002852299530298196220917359145440947807833336245683447981364608897389235004888924925123898084061371945941583880024626578280743497352686919536631522678463458693592669341218101964408777294314934553604685127524185438106065060914213464004537405940248858517479196864197039266795648742803354712100505877507158325427532875038723679796343962166709745070344717886983289701387465352216163154021562814699091180356294711796076972274764237872775550579583908711290439888532475061306472423078620809116918299833666469811490858040533260736784742918644310089157009813854482395207240749358597468530714162765325112433992547797301302083044914002162302545288439894156738557692591097893650849326414128234435917090951090415205856437728080719228453855682068119854971109162615312417473993698235930259953667380854423520023405304773879112971835069876369232445019828414576513183434670592539269494017954235852997497885341234878243563725550427172546019516172463523899148526760433079090970958573917538670686838588092568758042600969925068482010110434090952705114942246152881007191708113152990192218588688163568047666189894080151928237254958651391856394328413230357056967534963631068686261305617400490260434718839300002862489560988668856967536773813580306285266140210187384458078824759160451406575321469655412330704767407251141103519490917003473473782483836989309478481569668498615731060763934792887588893517376232461925553235276929164541842073885342915440408053627276959765154915559432318673073590542247481569234979913127400887459403213174849517372954712014494986929051759240367505562410216853218703055605439309061893280107602982545578285239408826753108542822067837430677201814954081724692693203446577604943871068231026425140910723930015111202390390024155718504002101460156174366446526669134027842500330515382035168511928823383601632426304743058519648431400800423882200246744122164343952328300071187777511080438859012266141457866598360641541965419731033939065509144031384465623635834717714834631559288179993072678096675354600097507451197072872345586898123655553025434003359319326492650208346209820684955216647811378389728703588334573693673282922542800331138864891606833899667690043111329067067141156282366373431133652350772221635763398650753982285858223499517940059221652506632661336272667721783737912575847020416339280578253868809006047922752900266424164751523178454224122992688138128265936648560429347763416911031839445693980554020301444813918468618851207036937234431642195353513633994636730529008169928423717569144678705984453858039615050984337463293413791373529104667092810665410104386330966746543338471011478941820912148625131606195262825219841633955357786541556189437073806144805002173766890796728394926852584086567428792742346411262201714514321513012611672085241638660492587441827038404955176641962512738810100355252979781138159486407714882873349257926158690018588264014784206423720418020648597436513757875495421308612730327038254733994505462215565985284475087797609664901072308328721082959753627630509110606675779975757628804002301804878765851955570768143748995586919246181505642598338910644601570982194067638034558315950424966232313512706458263893142021942394265176567170692708025332924840252944287249431229462765318279436291891798839412746407782101193588204376589241844482543583920567166520082074216212253663198625762579668689550532402929870617619401140494761098308784001342976156078390587971954793799015501839610976482179584074565121368399712626629311903709567470712632656019361353146331347481620874889798701863031708827693741117885773114170825829670174205510133395308529050851602877355979282193107918893154672753819282482942558384772125770940219926742166388981914824784962589711057021946433122603300358654527789468942941193971178177191731823628041473800517106960121801180075071054987928530866121282312990296248062779276366215561410713392886992080631099134506039893885062591627814250840417685499119753948931376529040115953778584366906470322332754691551187448565724407981904787099640666111677720938747169350089117111575290886636337636883774454003934039717990247658512296440288839686526329320429347426634824116862980158231928648531688055508436000471406781948023477383963466798647380839807403208452600157209079488142892768662046572147600647183639427117655389120274166467963329707526849058674070591581049542964737802981830910390499950002613560750161945935371121108384723631748108312200473006619978798260430188990816028896325187766950653647288949969433112641188637846304786126788038385333787010135865168741430441805127553806480836430773462197801296070279811707695174065904123795646943510055235113297845162408341047450655527469532582855727303215330877409265674134221629069293792028923987442484227524131623304108844386231022965248187382081709265475303524588441013271149988002735297301215402308458479839579660777107211633118852702592296484032997800890614526559300810853227741414979526070868893350938992854486522520926813192871524402166939856753806598265008653703135777475953381689072527025735281851415841426132246934288792095489388850300561843531578639798357912167432844785479068824824221467180392675118744820943262788962943319184906453649661589108363953761854705380459463790020982959396501648101090900655071848329491777299288529949049886240214936086285494253734898161817530039075752348123221748885888921346037643299291325560411926805306746037919130549693239228843761951164394602116020641693153255854736351348690368048496818806225253624247856091547732875957028904606025945536618460265348980671261283641157364389928791243680745674908486934728891652094276464656348135344794164650990225682500614425627470896183752493081888615668595927925268538984181878700349023723774097674931694577313827077380330101909410727000146172042741508910454194822656320048739862141061317850887826778955143491937092751859685400107528692635206239114966824469448943847262329333977859543318144685704918011687258849400125381072125472031081209602627245714330244262176106159332775723457620294549835069236925034363728322466819607421814228403632779392199305243981616287066602457076409251148435523790480821273960974183770174167743022103708351737235836062509902506876950974019995318436178723265014476941050572060388678694716100634034508907651020049802877171064683964222331494017130447948509404912694311683171402152044301374050570814165968891603579238876223859722920185582973534187688521545824358211064353764873637517270313214568343662395616981410608538965257562173093627079453073933691647100684015396689184893971919042796515840213566396583889691388377987153597887962101887089847036958471309527363978450475274915817321795459392940720663466623462602642291879524457239470694081738773686601662018536173330806808035012136698466798257775820902076554051506639221459552552488329206481402121267770512818314050179366757625728744292596208893016276489203838929109921189294374682651074796774388076986565079657880187695533031481215966718887155599480913214155403631458325103165125327963546817876981959384367976989167362409695343505116254092803031905487218570599768606241944431429398820457920203882298099463094091514387709521122714233338727786445784353966619130534141057303894739059326173450995171145338115160297436048995706659776426969379281767306654458606131632287971211101115319517006929750395854948739696979782248459692261260368404340318209603353103675709674956605591087389186709973520970022331583922008325502626417969087051290226111402924170884258481688158244999564111796869225346848125067138577503627769721458785848142224891867414588109602847389679284272625365085720542430179408846702687415574917123393660753753250906623382056755582670171406601149761474355523031937328927066481136370349374829019614947464410415896695390459012595050951250218310387517829100747214757269798076774493091782859147336383217150492124107475015744341641667643982951241787744654457096532815129814182531749631966933509154921650948707524401515424615320865729621271931395560447689525618289234171018244421772313915856145005714602876891203002693594088424118112844332395858057620845261414654628940333359911812114031919802736083170081031203309846193825282519304549830184497789544941126878817264322135649763734363055006246130772644913454453384373986021408495877281026557874477308255480018358597083253140666801548573327656068821092201856094134302189235335407677673116658363463062179583953337702495919566230934732011457947004466023970136494190708900924434197238727158486251713590119820866187581325979388377745694671941563419045529410983125492287458763260963393054685831448312520837246526721509596166687737011904101713259845804853549028045292518871054899816545350111678285098407585359607739821416842594682543846315656473828273185778936101677357038236563574260000522795567112449058025723694076213652340682187571037708261101035785639400196742207223877834339246196251127630051993931973845137156494351381243855679908411768251702354036164485614362486674234266396577972010198729672596286421097800308610078616169957343847952223439506470730716479730189818984754625528529855967384527391826860592164351111524359515596774700135744552092096927811735148523470657659783887325518029573622786703300494281158512546317194923570305930284384596305803954617779329964412007498652240713589129940018305570877799876849066997033813050341609192787010422913961451817216988890983897405027277294282660281628237848085819134751985333334769274551874627466177367593364182274337519896773588848924982208200705472801578021989638279675979667111427549566217219067961940956096101519014221532439232271873041825424672678387802640573113243839164338572084067724780694171718739830473445114259590004090269009499846988780762587377158971859802064532926338909494401391369323013109495906919002955261207039723071229320504716902463606177830222300199194838245181740204870820833010087948136909299968154960107553714828892887622749387584133660776132105363345077328420810886772540192625360551037615964445316076842317443627057610219361443066706317720335518663752210124938017294953605397400778350401313511060344053250196575972716144922549135872173907749345063375621900482991782425483520340971925296929476429724823568448589171848304955889534923551470249740473170344467717784491058414590132210767207131330225582190039095248027463298436692442412814657576534695617595717259832356077975382957381708257230379459217774883837027655499023194902656904966553525126926849643448931413191310235982600772719497720194370487514307695100119334007355256500473221054962794357814541827093366344397928318534217985729441024443033543724005019202367712153768448788523382216530056729424361090106160993594131961928260659393996958929446926218694585642180485608027111188475794554331426826583926940918217450671722661106374684458206550364636355065436311558565971201526005634461146936480859513926266006366473378289491766498823064666542551657580039676321848569872149716480210920235249856894614308097586479975166317323726844768492378180856734676949741068142242876612163341682537673042154135687866144580143752473773335882401231788329542762874094555773056402293872180806366902518982768417973539723364148215565879586906032130302300875813509652976554641792101481428132592433894085685172074698377479483351706065498149418931761318814299523698242391976836785070977364229983780056955116904244050581933320238313898618562425918566930587077328407705842064625985150332646495088238107118928067002039121374513500239565254485350441245278525331017141767499674266645459696545661767085270013953052263069500801234463913354265521331897473933604961200221731670410580237887972912593666869000615852507166925645695109245245630632875253504252329702816048916817204642917759802898219087080964247045259648734230429701007345930130828906055502374869640698825765539729690434751815722675996059238284681530261563536423285670625313671287209183930786941572371844764698889768071884788309536711576006477631402758065610856479789456235530992762599742144187284500253767137988888297180855582914714164562823228046058206787183066117824292813478473449398790496590913446291281560576333343378317565294202068606909721755553764106476102434194844762612797892639741334680206477166830337306479241628154900744012119963643193157905058909658128768269755044769134304960110088663210652283064938102041783785627963391650831799846025601508427861516494706381033310203908050464322092928585394303221001389254833400022326097097543152999277002261393724949787192127285905438638475904181223191547835446839919856345601754696324460502111257146220213962229329384695213764090881821893393871670213731391598606686264449118769982450900038850885201568809025009557366158509232433768642516659257819248941989643129936126762728259018027210816336160752438946485348915496290323125016444042614167025024306678152591670275189613435032726131154089429333700055309722283178792253888194947239444638255025204242142490706760390027394485008204502355098952030464410048253837589850547477402611621068454806697463193994723632974056200083756797191392349231147844257815856775585465177220093796671720751954948490293899095953965697382067006313935693461486349966010920383463813178718620173817940041135059548083146453141933472831700739449897453446764719148299484991760289044908547851136363804078478905600221132669505992690015669259789821199923411145216396089302239288240846103909768304086478570463774578969169626769163710325907277946749894548904375526528854303738729858736615298555332447436059207226451677584143867469635223667307942251581441631906699182822491465359179006984693053705088875931211753971210920658100952915279340401386564514540209388295709653431418509733834470020285281485444921369943099912701713744174047505173317277475748667107500273879554865444369972226674357090577375442636452252512301846523990624624662940656988321352028861057479790154986395149188608713982059934364127969240836971469772402593218442839069187191470205434570925452776106059455947109899047071745458909331832794611435199066423477844355977955208118246662836850138810979636862496641836530721052802317548136040373389384202481975351955649593928923372413767483816776694815542418419105477754721758202295789664405636225674751578625701760338442465605958655807478310190593116406085640457247301535644280358147446383847858614236767001415092909960615725162652931448491118877204789917715241258429491181061577894853413119805482677414516356422560534683121920572696170295154303728559535297923663971037914780696608096036581580658882545276849440816708313551083116901908989729146717665293361527582323203854111167038287518635796886874998962965522175291627690244953849969932901892880157383799753879967027285877392907783458192921870051089815632820510922594310989435283793536981922190199983342360678326493804643537194552430124167353458466626261811509443873747382438067758218154099676805011862323698819891349579077990100956557502253095180397728062461634863483719132498589307518394961548558560335964663263267311892161459851552202674088757420996395407302809365415785161071057326147827018476829561532434788993185658096384481520698254937754872552538545471472582847142789134480556380187939875470306925771602154474414548356782119582090330639832239303251159009091680054855624976851079574840932011109276393311661420609685129011950885960536355404468806776686775097376456289197248211099156857099185104688202418510374647081236156219500465495595805001399795448082412754277415112539603538156597712923294271451006969486514554226497779326479581121828822907408557583903381736004193779978751122213369193508169536667470295912838350979191642897651227177448820108346093849786417899693311938231386209599234657366424617510151064110406864846867307046511542833256533318637828830501777700333592988415359394364892107108960652783666418903221823338377803196663517717854806929860600400142303330137788403169560269742564490595981230099400192022585421839718774670691183570867170848401857954810883486693014762288148085899071501546417796701142096162834309563330596586373098505219865937376206144548679065089829024673326782356200462857645520569318508214362837711490441587637209827045329640522644396717247486700887224333007670380482083666657786316996482304856356061465864063757410294455308798594016117784137401244990060837522355894191670353896259509578830083260040088347587953374446281522961782461743823351576272002453746965380772248696033567284451538705792172168158998780291834775499468993758587816425680232890531618981544360544044875249352370278975308418694839243975453736523912473809310542427479988435842108768906812703237509086410345201604558778183149023817111571510309047160490881198424602692610816917460358662298384865934061162805310905777236685787836148882633710322511435624923716830844085457060993256875631042285304954783145590045741216642591821292234580260444143268948766084836036468243875924066745921538178107009610018978488864739478673356051404343920289373770512195896321899317183170002431971680074624900375483493156778350071041056083149874186107940015097849659113591699377181078449963706865282461869405844989335520608797874105894013487863832119291996393933699934787679847812517353521709371831549809185493195831887340033301934765391361259240530676452626022761915524530913319420238049177595055568026849159442895689679216701658879770695686528219200193557278943794392672253586267427627563546162409377840992192748834960311278778627941532985800274758856371245347980103672460065638779225992453706352354651900120124958748333024584370787090929384965053807641375848994924012422103418893566318172332590076472312873417805441735765492852522264760890875061141586308510863760549786505163247305130018979505230156092894597789077771194666407085885741360986225763074935896618637165128187481028247425714029400894479748853697384734797692298662808712888259996966965532147507936310590943807340440656107886775159302571490841002617561474528516223110273315265897661340993815220580631025003084180573126329969536363260958830266877301079478221804107135429253263682415552583975062079409978057577711451127410353752954738918360550691457481713577220897479652556573466771040143104171470805066457019891321866886534687735739698210366066008088199523646419620727414516621711749002259905430915290980821460197893949680742740652195199084631570318862978036665228552027915270690968811565974659068088411105971365376365612825562446682376103326620264373479040658016919032757128727725225436732853094671779368885605759330090523164123786317458959863512441015140739352228353551046536036160115554258967212480692228655918346771048539045061448044708156437286720473985815852522410716233595289612290075799452958331438027547836628410170285651098185724982259047785426735900363026744804260806526143172001301268324887334614154818000133931529383186189113970184990802991253724149058311265598871731218295313099482741648768828615530235346684335736576058524590828160301576133330667896068098739285613290013515493186831933645000991688101792462781031037239151328688985203731029237177535305839168932984935514587317894051538667825990870665706491337466746490041977450059232269009039917227866512806311168835854787764768426799071976348885670865137577892773721573081283054163170615093028746075520268159271165403453180013547737675414251300192957483976033270817108345984781905206104730209736034259874942151318478477087301608932041492011335596924705673077622092247314759383744214238842688351331829064915645934652378059324497791836678338285474157531159578539867601383900353056737613640249075459715376851252782721375249386906528749239474185960823759352903104896484924096552611424159536442795028133574723637507472915134249281092718223422149290437399924076197346730892166337417380658721426443138680161722556177428858799187470806105688195852850245855136378720240127942247194011279933676000059546486278549432360838230073729677210269705091143266244289591561016107750172545383467394821486894267212307402389203580571161072624824672967180793832397070903609251029092624200943184092200211600761833457664648873207941628729577811060959194837470439259493125677195176614471840810177258145045666771225596587048200065009222780313275199436709402670665727651966682278748047646361685683006731895238470223640711722664120379818004901237573444679538958045561497967121972159991917780200662009462823639687090177190505512315894816557488505600284976315041415908281087085719016118332556717962899778383203254187606080156521166810477006440193815175108359391687304745586381743756832324022475353401633785099568450934859939988244713726706291424918383438260904867485071075517248594542674286947545821307510414504147858511737197106652304907361698828726000128482807377671835618850512147295921428580460930054702756272120803030878898122830767373619123986213068974865123368574955501081511436491044673427490912274021330578801317088429831141623618953385830622736154633119345101480441850478225740300293816680140098911799121604699176860060651437445008423024940879156702368824933221707489487584078881423934629033895839996026337047445955488455663329702580957333931030936660053420704255491758423655527808474883211853629899986837419676582523619838157236890975248669965378840670001685626862217927462348149712693489901093302709518262883022052157360166547789229251048541159453782174319830401213361168585232672402130537109575082783422329891846912005640808734722434943181156705100348135149105092849247847232921910352496446735897971998217310665797327669121349039799220968036856521537460232892497143129620909334728124663980355026997232832000430493250204812105226325267403740572334458914645269112923206455593003155203118096315952206265876677216174744869057546515044564581741730395751523205765337271741105799970531160113363160413037483688716839125897827823493810261200174229890664447076735091101886333598576406632578280643174414336692184338899772398734652863169545963083483449690573263802721256074130695617127964279050393084095001055026023154246667481797595514316925231678560686427546092230664620579099295916022785429970018876372885546512939492911329617213878220048512121592532505706439160350149959142756367120135220793506683734153642761936282953094966677528958387745740848586600570880237949859914178944341510232117445728463297642628662937573929759046261733186354196135824581321981811128654197489625231100743084126313308128624074952631658648410052458923133977647248652625733803975748833295717712459670511124163727504254114619889967799938316182464667680819542028242830279269449854943744456533805031222747642139604281383905112328883795562429174857700771979889759759674016472856030432092972962277926163041746259417053200486102404243453963292799057937131197685716431792530754393562850674459650409080748227928100635873765940874612963261869793680066098108000536237299378052620120955098683821344638672493165251638877597636570642890077871242113085185446091105360692183995728729599374023369196147458087665868356148471410903679879458851418382100749042245132361213945337616040335734932846481955914883391222746273846019964279618952689505472551042942128425213089242120904222773297118014924074889428644099557562333980813879829208917500725654875520260299830250403468069069878311883788615736131913132958067416903016138845849033299363720708356950434693418623406816505349288662392807486218473001517700751654393397066990983662002735514940855952660789311463954230015308273997144935393714576646643900317185245937944500700940338733289454598229379533373868938523099968390020176682144821051750240797497046158277826482220358559059006845224522111638860883044810130205340323973267787552748335601846874950515846000225500573618720062649907748756944724970115385268993148542218029140455197251134303708194665136485604087996863254208631088785189264835396253183475115015698374036863800963537335756963106568920531179791681636466874243320449937757466489295854442534293521772648949297522364440946595849483238103852650397984026484449186994057524167013350263363230945838925525917003007726621476362530652039310470994424866212761986942572169892400781290069713998231750666456799191134876462710447501147106659393002093041940756087935771055853859559105374321588048452407192707393971293257681541613389456228532354942492363302805737259584658765817713953434745761101795098076989523140217180454107889406643124781845144054345932576381184025668412632765778702219607258417906593255594900783998218551174514790693909845483095815615573778007129059861898338670024771507135698938667616537121187866092652258667631739546813102632799132640496131375449424422483331372620286161166992492666783478912584977592545339527523087869915375327057119104412686661467359543424996958847015551753651819547744404068816355856909111682532621587594690314832563338661024099152626160080577245986132213022897800755129648188512748841742169007314623186753241618023017546398618437188198589432215956804558960870176447419457272045635509551285060049652523457642843850924803743071892582440099433520594430103734163541771078040507296379785360458943327077575588655321275487717755347231456524700510676120238787791018397414378164914041490703593728937843717499310127021282140105582838634058554443899999769860825735417378756179637680865773693212799363216564217967166647241103770873729779567263865573436466367621048548872217512496047280290848926790536969947974335621024687776559006871966872143140829987924885477357827683990284311697920468364223736868468240114642955279695871543515945360682355048210774372543548886679416373759019315325613625981700259780838201221593809273793383707258861765748240338223731938962201263310273755698224578351450091978575877698011344812728445407135666037656513399347083658480856709081354933511440699427174441070861929008798159662568150458034921095006840541227166709788864668555955955430765129442662319730705992361956616129605245568010194281642419317691582135013837792588224007240889013188489027860581834325385915566218787125715366105384326799708409482498720369561476704189336959878194493036884248562338072940729381144476785782366338268220194279969047556576745745175362850571404463575371465381223639731705881987796169879123617306284983213508351707469431890474732179081745708025650387731816091147718804547314618865317146252235308391417970991131038483425300169179266422709436198893190304830673342797563167766381654393566116889383895160690341603316176640431556249316160892705466003305581279931201701622172141068939166190653343534049188260685870823897524234935960981268837790599599077671948347918274355334725388913742048990475498842933055882460759538504176019371981270096696547931686891029070533586831978501275792028435527896962066746961523860216888563831224207842115202896095326756096971844619330368680512091153708390649976011850028767649137749385551380190881110754134392667099301568740327424516462115562321893236391237678512660775799793439412493908763189269221074104373820033810444482336136196296178016882720315200232293092796594173272619707131856079222711882818290216097666013917848730488859695798953052254594252707761728289162351077934696723434448717393895154233104636287878642129381876636344562781790087600221625755652336577544156229545168994996803727641354863322426538461986503206010110194760108788059596957523868509725447547206164291382728467728615363596270066541926238092775264643752996085436284308366180446289109654150556274107785490760115932254149969246010915990997077521504556171448302552399543328295371292314155199742014791608072328540282931550325641536417240011233999625137075882936952942691585238947990701847567446589964487592177895649238579547388958270164447146246749018593607997166800048625416261480744344344151363167195870043522278279026483332869649344454055132057986393306696504762468533647940911538375905911648000344311740333257444483674369270022886562379920027441832024369487366483064546557675831877809388193657571143477168543237189700382366869412995496303095266598392869943879723923411577734579875357962092082844252183016012134152729748304760273056305007285886660836690132879309803248885603431163140176949430317701786740528028658493462394839391253691553759343092831352978699780636457591049770579885049539993191823711266009443869041421954975637104744379070422489658633000584085690835073712630966069627810528764445479761651157920113364381722863909862549767109969213577295758928156925474104952077395034304508763825295716482845844129771598973974056196740198840091568524217174707096061920668104895401818587944547497329860764551787795535529747639840727104220033590676771287028976247321154064538596010212776690330403464536732041517872236045491291698493320191941353635893779587305164991758438415506496863056385524653489663731021916938479094065477082793897801261769448573348432869174339726824158241023639120239359697628149506375996684170607479612092599301328695315723309698926768201498065423379016981252162725668929454255888477308129658947799017659978209236294555456122170173857784570426127574457565466261235042579689944618069081620612204108947216617414362337583538443602589296040606321718604407138547794691781244442884050551485992500898177183164515773153725536869409126179258522070160731509110925166715103384242366304621971973476915448407795329923472606125570603276067920415091458499249540120320504344362762226684991718910293094846578302994254185947660604603385775163853058660599828436393782208631958738512985691232961716473510993214508915796162025466885431702145847393012842108263330252519730981545652792792803510730660861576318796434007906279446850140842425014365892989081653579406528868976917226872244304819926481290859193562863805363642118886284123343136947077669044388000878465690864631233847087830079538101999887925821712534388105802538734240638845858468578983832328503847693188868905107699645260527849739018501620309794121666372673167105085607245305585578681038183350691546045521823756463654467193465020234742101784276264303680802399843711614750569092073402468858746500275741249565827336285591259273082168337779868983861450776559741107028150885903876173329160518530797178291126974045263093095908874570047876738709150656722077157356061262269914584461615430034416790171087241766356319265864849743739544077522725142979874547437792772820339917403437976167217634248031899597394267219233101900194558752648831449959115400597824050485591763897516795918184569185500367346364312417260790474981510297517220404244991678383014477313164301969829026419883544655946306662618278011877785939686218784767321018393010387572205902340844511904549777864299323550568107914614806740254453031236402523758076318222475108535007633138664157773828608461624967000884764129557900676482716385052050970268505778106622416261787431943710963547217345680188639591623376520372750565787622273993908917440300609577072597818405776053076004403300776824381515331477661281014278178597848019880934765655155402462860063424761755599834391244621873972450259592749288214095935877164460593623933188233768248389345781262029535826886875636070756960263355175133374165168589602927459472539608393119902346503356085313017800832297016402499982839895051573507704606205185315069454854234983124067853027268221580334494189493206091836970278989982206367661710191458744960096247442403211234728201442799587050387764848960708663544042133070154706783168028008529108070082297469503694101994029303195930496343082013411344816372819737065421275726998285108625544508024436233009550333705121807711132845293897736191898958326591812857502296840865360072693087826866437913339735700720297763618271759630187566217369275062140060494329008979212504434779845787162372719485310979027217519601568172114679650689139205689686620202678434034679183792418287427400425136275478756641101799062170957848123799146809783239682610762193952571241025664656814206605792507762414311800464853992835135248374395186237476291212633260543453619505597319206723458280119357887984641058229060349960144946386539298496296306094678192319659397602930692050842468119124631678487642435031111185167340354313319247542782485001535748276349508239536407707956056531671719299197525406366352849143311489567815315553281110365195759887198180738293261983121717015894945776851827705702770017274404948443945413249939031854184442331289064335138724807247870407634641759001368114595232432855400049279049259826626643741479593673169634953001041332986771053828590431618889235737122931119726686847668980987164847582456771894041574572929007537780140494515284670674560149127701160014980387909945908716300366981850064271826983150413090493929055338057504528617762250250693077934578333529460164113779161758533319024592337194892788084004573893420145330940562709966708110862723925697076512221603781962984326556701226975480958422421616849334342317387974993433886887864018112801811077792907380393188261050211411376662573410457370440652691971602565537507561627045818004211409805365753611111943658963735500975940245452953608886591356575898494526959177854364616565041043848341645409602463602178080650909196098233473099857150731575850117243401618920490345886466737939755005530308866708560055310714187516941635986311991525628461243133506431261001039206965820129455821751665663984518961801033454471800834665000383095888109191406363116285821586917740028816629827673286075187007543801139708406668759070501229624771122252809289454065023611545085646600406044978949345042005901769880323366703242914218596942220607158785921536446406898939511716750956663067076091154418213607724309826759313562426531118616519507052747702486945140234004601961852554552234378028862486353173126225620983460192086813515115772420607002573583039389396317016220373385057762130991534915720937260129604560275160855959213433493203262965524334420589097314863217819605349299351441360566903702454463368197384983705421347472427862018998002861023829945891574861222942186129383948912573279098196676931441900673029728894673214704626799236774767251294080272600497129524263505215586272288923458135890478105227968887410652985541338735493622162555010297959375422663297676706789435058623614076180454742607305596993741955605494800644456140014146777153262351092702118965659837529654578704990218367199078716974840386669298971348019776895948668033691615624916436247763002380955236962649680329594623723866175143036751981810588251860392969020533575404976610147246650818316862740554049156786750813865055761360488706982362210968219265153792422883557053630561373948756883980426951435583055889490858753439946474665652143664877132244389754451768734348562351778225726572017744399352096488228931285990561670581401264221536909877065250871837387477739997421704641266560629331864484043369981897019737448942006499188339585196063083318906135450711352711107107886945611972972302780053630214111733844289835517053818013700961287042426056821156958416654722588018547679014716132392197745210972491165485302190019715495584303030133951753149150030574136839599606656758584796993822465159397580637063553216439084785164384025369382258664228951203607995791161024620302996737844813017245627081339852090250754188692388397383328602232848571867179304070579612632940267669837833796464776803605007308683832288830375661876967551796501161265520913336352612349040551144676039426439700230578414385527230540351912238620388027037661959137973301691418414233257447821276176491248646611496600094220151839355872905765454192970530509373596888057012822878964368830664759541501477537088613442530236197617393075652174828967364508532031036487105736078854714585806220583581369537815574279311874583963476052835478260573168676643204148545769951578116796583224387472455922284498376272488720046777781519431721437587973183971981383474110881217269105728866039184371350625456746272553128560103394145926570734938855567661110577362672877148215019837900544484387948973829507230756481790115429252622577440907678234033867738731164811060066414085542436445277636611887599206846087173047815676330398038507344126303726072979224180395339708788037145251807693791718468453671696819794896235135638231750378458472602957108191755604330730196877172417241189197846595870845094478004686296439827597189264460990553357104890439082125792541509375052516367333671010305855189398288407579759356395697226689752310017819112200780039923767770469080709099418125554747258257016790161126349540299419519772993107357282129046241203470404405438409441146025988656011179879670165640183113360151333571488656612818187738411796413074445065165901236791127105998214879004933678015719278848801191689150163012526158512333986805045008548851761323337245834032013237210572644025857086403581962689963499830856339527785914317495052484576863523439906897262014423536124238096595049260531451974912683048854867959318040019048967369076505330670966105778164980544689552726049350115523698496235442028921117540804266063530633799883584059376075466111601760631024639784174975420809913302455266695166639117829526400193386164941398422553017649253522976505042849559814530667480582431439797894900304202575634933995274461135729216551890635309201504086250363532748761293578551120868302562462687539134686097363510796061118563393190624517269921702807805032079491877347077734387464280012659740872682564445679793039614179244822136109262104696334982608797804413402211405854180553824927227571681608970154661855548719103859885758942661686663873973984825672123765232974453012516321906883205990743671902381620637650077488960603500484868062650738015909986938643261228068496889787322464055844143445280163408538665407078186857582446182145046020674859701000611594706455436060109496677047066953157675170350174390620041182555172697533540960393146446368014538886961942845746000229209591381724393167470694502996473971277099804216691979740711553886691426442510988517943014504244349276499553580022582091621339447257900864292248052138752630076515662580481021161428603283519005344683335681480536743614259754090779264858901418410867758092961928963811970640369647115852890432568100383592725940936194178784402128431047063219674961372515320675822914218418801127760823561146337507320534500872466196943669018620318438915918578074201189688648840014761166188917962142066452737342384203768194538031870959255356141012409285925857933454297376439373896534487453361396864691601360144417611249645512115668761954203386089236032054547862871398336007024562327225638272567498843743721763364315787172473702129309958974986857541859714531991526782077056759404734041666139180210097851159678534261894485392576659103607913720929345133606347480079437858443028482733891168359798006486566902539332213694084250377457423900137477866915203538405122490918445065932891880073570623329929289642550702479880855293365108163855698442467750611544213584568052776608105345365965883617475699388252763079875235960374782254160215888665253868854604596244534942775331508119023116091265988698887622618153346293886677216270614822830326715881401815167806857776952061026295084514343061705574521605977770412728762794341415508302135105380033752089230704166758940992838302654522270680707595101063486080243813778715018560434832108321622798066949583000161505961736713037998341440275970657285995631074584322578541625471262993020607866470558458804583005465883247892168483741499334510269056406268148623764477113282853255475385620444618153140424975643562585980171931556045871644934459645532345509340079712165591219820859734932011388652290248209608763436257079326903990970082731012099839673831859332621325944546261561465032638873196690937709695928166117619100959859914769655180041110136777241828546102196705677084135493705793052487045623451625584400813124802934497505277783106581767860869446449982815331964667541794431995614801883158647651991197941757644271949200202344335700029749115652479493494872368405867841128127256642181987989938206007825303703427100589240285188534860568615434295144825500804885777404592073977694360245345181090438448880100527200160972089207338516686209294943829278925082866905275401358896225001462465604179142997722559882070929047209097956393159936235784068522843290229873096633968591200092888142335912113319693722365177437007361543609506994738918753556992506342136855010975854202074178869563857301329668632733134341905621781418656960640437069077594637915175828304166899121552394030546775159145817407244092925770433356714725478077314557608218677208420385719299685856792882076308135390292102044249808977783561687290386369863717431198470739373140356631626011029732951820296076780052998311967186936207355138269398469792348323692425190219459424075500632601933049944606520499312804219387279209984102197683872475909005754627530673071846654002567932649198355789029341565488519015959923201085853780121134443027461587859335763607144600406187071081346213102305241093891353059229488779642538975851767745533104028792321928953206364245576875831864559845872711917349942481705714262834492142239591292290814243559427197825253515266417572654095093239832292210716719672491707458821135174853555751717487344558108794792218723634054887679078997991469670782187278512107959005699813245693511832349564882092717434219314196935235666203500789070590876997200179954035559147281988796825622583009679660472665544952591489724771547485965371803671695417076107891783779474433431062875445715962910582601609548026440257598715942882428966812687616134285824952939762684937044307278153759207007577915953546040489886235427099143323380972767154729642485723949786540935999873622382051860735270286906473574927740499334360099592115995531018034780796386109340645789502014861002455954953074142493101930797196718025410224514826167210011152606660102596572496289568469371806657094940514995014123377018946008832105669011136262118136969320627294997542445406741991300605842234501111543687064825564603479697708059916523304180115569789074148526204825452585636465185364570754902291377815952410400711216854979153749950020778131532947967126736239130222310477047364058849141041013676814110441560226060430062049196281040928033676562543067604866820051043447813482948253080868627456091383032977665161148341526296016489178694589953171367956609925012152883005354213662570455718669613093870859437652496166538861553756044185588060407140502845862736707358917438486928738291731872942539328748049333951983386879656252718071391010168060146314839258136686633423128260797455131569818230162289955098116493162076311123067036775070420127857433942263855688687163329054911252600041900892942419870208114209672596850696430370353833557884675105707035913950451367233005324136931521981133863679932451438048154047068127802490699567927483157638581234234022445546934150501983978184579826837106724608028413019519537065754120504374577080820471253675182208819135879105452469785480537743451256600534891392328778639848014015245840309732982861269563964791683714520507666759928787848877023028028313642692021422482222823382596641551729541774000153791998542725428739398221618860256121887289771331075639557448444742570888293688686780856495995232754902729140823290741640801403340125125959034628835799771643888443956511890282096351538601057162018559719170213351578820288641299477475912535816463080060474513631212079100563519836116098568182532748788591446173831123913701677794183305389960625613928874723929510692118533014622998123738687169268893022323240108112224886543028448277774292196783677488763971656540639816197623101099770764457841197072193437496533072454253104168601991718223926820737852802124374456377807551325110378864410256460016252340253576228472156717026552090852998413916474447460525445135530387529813237419785530134553708835220434559156299010649326563721996386654410262338771233738583845622781251499207317403996983224736734068733853163282161004496069543148071126852111271183725368873937423209412553024301660907821899100786449409207082203229757240237064842914149817264837921423256441699128759320768159434472419658472953990753644067530704917545072253600278892141439566268882293672998451426325815553367110663148876035320153174301244325142215538225897145211172375149052423978331952538229631130458063333299669632727252010283586291944037586458538453132428015610059096157054643632334342041595941729119061687526615862868787976924934135115910966296157135827225483936031844784211677424238629893762285121412300359709304433496970141416330723139561275028141628512479106594872103367167094356477456586915401311187560542532579501780612607118745814364424286670873981487313738373230431862590093620884750888126717320560959274748039949094982912590201580291485157457141659894791332872256560991335383459043233747184256162246416334198996257797518169766399997421944625776372592301146100207160737685996586497642336326459075514612360231660175852695822790725029405960248383012142836666122938849490169984737314173672800240609793293584852330362272958860178843038283943508451000586798272826119200338911537514302519420629439492199790819113416837091722367479542758474392086272310599404881953035912974317084357650083929411159655994600969421784293494402998174760203638222684518664176562743989943848274008278589441834780122658018995797490586437221369498952950240008848497259954558569201784863483851861346610211906020761411401859635395089761854382787924147616008315562829665851196289083793648253708426435058928448720324721220306659117419243672348411626139203677296745638388574733425152212100957397615848275111101313282175284257773095225109893177582419991289893094972205404833139865194487837643888193487201017633446893276639166838340128136397223391871690244535350676015945648845827229245706105647210698172750332846891106348081221209704770292689193326043202833815742805168172191034543841849514812198397084962161828355806017190636804527504103568302165713234391487702100242774599973235144397812912256607642471262748881917143214036139701910628395843033050563287343969893112407047294539891541102104882537762865076353869520738081650021811672692691837711709614926864510868312760060239643795858701623500043273345622613540857188679310729037454908146709955941848350559889036933882458726356142370510779918827374085514501319325891856974063407090590268532872137537350067580767876601673455507060055367429535839824374084729527350483767776299953597757656764600791770431240110615700758646050848878536505007802122641760286671089719542211310310188129761348764922942001382476559867738023479977942946679851738235496441806496874648092413462881395827488850888602089942162420707292747343179138978214561694706959191929256001142284829921064010734522927197746456484503677806638415817880567148077279901622780952572642932359798329035529540154502977624561769629919284590897059364296727605266610015651262737579837752994649166056518623420505871015933009397119555618098331611141077239101928039236023032356666659830559995446817757149815864459647600772734626648611482436858525557272493475092019408362278853918924302106547394906310117639300211008358216649116992946095082392712932671024705972424833392738760341966431423648478694629651031215175767994440243654008263861521465431992545459206061380013209291881895064973075033889445891901203488996398652227617946891097667649663293407991109616418104298643705636281390305938547561610217890819296932315501064177309276806310940541608096051116932800142256203963579512341774124311726074967461777906522616537918071425076086616851761300314329818305048956968501316039033514480345559500933773432682107995130755209100592355029896471534270236315553451635028406983738813037638516657371799954946008270300430990307278176903101709386321509902067514761961131074893780132114486341532079614015614788432303274740451355094959596537807102788801122700215649073830472479147091941246938120394546841526155544916492423297341538108078136369502459846021330089558228436183700373925911195576229040415451974787077573317830036305696367368659751475834213165852044657507340114731329643529480458659202081436449279131021288286165698125696382277349440557813112491749514668611588530266805561177036308278158705246152299632400677145454077363287917681306487503679345729440669708978387945982152226678832810280129295502324577914057605974714319680530293292308609262691587456941408225046721927610561828244212252741520860761301171891534172847179020376707346021361595756932045631856247019209343529744677718651209019604861796510805664580787659655976223020507911743831680938006522072668962836288374546500939676051646160316014018400364270794536971508669696864619206361524498667050833650675324738541280263275736654900478499931372945763345700632257773648764078170946124970671642606767642836791160019923493931279574334956735604540965293406113719308623592695202284216165024323379663928599992734781819893173347432399506119977888307047333197443018999464426234276082092961197650962680054337677835406583738477911835548040103576238116469394872476128109828069952916541814394646487105140131999410726879539110484116257581084948879682146847617808021266181226933414910931103588750428628141387766363282247902743480833704239439966950171990697677475130201377586753152734400330868314817744020922573597153266563583970440977440090507642896413247152089122656926927884101899676107645159902622934399895400076196500485327515172371181182506863971245848573473258330461350624038723015920775075255792034891296146458765850880593572811866394347315814713430371355347445623377069761392780075757555564190469869267034600192323232943999659018320422971656403069108960707708396293460174616476754256707611934585183634637343863512420656073874439350092940564257277237449165926488548954299236098567813196947839307539739497645832231673951148967842892210139745110171212680130734803143514785346467802250287711545097063615934259988329686393159395262000912667185690788776585500473954948329467009110162886891478747278684412647277338237126697030202855164852260399238308338422034415446404965465548310361708207079547267977644995827650911743187306061704768337897452173797484763272380085606026214472828215095264072545504677518374241764437917052060942108405867464472344892195233341018153294125933569300121382246403165490347621265108346390684622653771727680367091893543091259667017777329159272972851459775428046248713781350840631179162982618948544836160208530299264651333259238477512814228880846779500231356166971831477257358361292020619928034382208961662783451992881856207673474550769817292917022309633408188424711112057434118769953478361855987956805065281498220210146909298082898430452566654704873987709975908684473387736944366431436474701695057641792212255650368241815722004769889171792577613093842150520104421370669231396233295753854641992864748500336172007415683663462931366872268342795510560168372743362579251810136945008274981276031448125036161710241831526030467541231562406286871027608147048095892341001279427865463786269006270436617763475293456799795595357351758949637724112685324583811331443288449794113871019842891525575636650980886793881828717683037781837922695055725183061505771085229933829938771601590383071642320918094658696846485156027162491490009024110353437131107832013980665027117507275654572320673842232149089107541886554532480388697111046334491506446070342825105309101731568243476641480268582160175865905730843904611758530043959538123375096345807322396295983646356859542370375476820508705129513256065540021631295680145247985542634912991410431261025493757458013491917985625624487751927919152399793617221768010928964786362812621172962456035776162235316028912385757238405906211630609833387544111806329140267431980408513151894529550247664320833818955165716750103569087158704372992747485122684020883172549489922005899177103686677608504713489948677825389730148107661047837020528509899729888961476596322630018238126843961590408346910364768571505271539029819474001687739993613709435727957452047620188450905545955840132515868102759499718380448402243361505282406257163972504175771314238114621538409660343964397939719395784219125758291817193973926947509633068054376381466654744232934288222079824905983713438058752933618497366628323465567606156068554206696510430353999917792112664670264537270296794675490113462719744261575070494137544786799472970523047096209657662254914346142657167362965945759688881600449031521062024234654042284483892903192839941152169730289625743525842181586795303189798706078502983980855654912372552209824105999351882943364428563518971901780087670517170599143979640414513475627950643596752472790755636956016715337559967523323436018614315027992963465479438904905151689553450195569735454476705613715218910982841403517188947572730666079457480406193160614418532529604643494014073505732318540752843794091312349391920987009953005942621361098780616816463368581647854434904963178052767835243176926138922819442435636183099033722317292295537596200959705133928673688680474219953543057038670097023164840946557421786948233625289349996986759892949921797794972504134296684058481542636525669364277292971499551632765532788684198223005920877415602872181222805740122253353491683849065413754439278014118205943189807585820992786087659808280982055318429806208369714626221641672380880745614549965664954381314163309241768511405097542471599757985567131860911528658927659362282868121979429798458757084470851606734402913905547025796517505050453612716476037651013409916244977990929992837997668394400720191611474640796483252071625656121114591333410512098635152696303441278235940525186684516360588903565829390202829344043422392262740343951646719895672115303715850241039588236173690671167536186076123123008706455449927217627416641846306297678088433865498572520383915044528372179897116338117156787768906911658427081387568213107346962938096280070439860254720300908330865610303134104283143235031297679143785097578222787449682361565728694720890106672303985521074873356872408609377282920129784989502224865107501838152643101084778338494119194524735205234378433934533723523130037030106934643877310281988833339796416532360862915100000653713838992514784537437019449072516953786803354779978679892867316887627253125020971176877904862656571786382734041474251291891231152531298864435716669188680320410607903031806117857821050616357127921292340066479466652077311770316783933683612726646903297912783067933617587438485174692680693200993776652961615957051550059653432632492349560348557184927066373976254807059999431233724074545288169056721223789068050474545703052840846084032215748239101180173200630260499190582831156621107928198753977091330578589801552473167016161877409890360358250907359902389039562040304062871390806321658940158461416634870277764758748546722950398348901962559495709499088656717275040290378109087239615446781405218704023743426060374162199292588476840793391693375549995560749680212636471159071947785620699032021004544784229062609614461085597110080787101643577631851258457563406571775343053144904967259975343455968138595003490660402253474770278563389841573514213974702849379070431037239420681717087541660078648275704664419743265737447841413983015770400988447037558334734139292103696922582616854984166618743846040849808942928209065920463370901496041753375399426150499558785451141996584801770749144424000801624583487520647078342944610535080146859550137976174419679098747686017356673742477652606494851947059962448474961078730969697485179014988265230532293319191988290909441540324292714267614165002777841876042723345721453807280896778814994185318257274200901629435441513175013395591869507070216729010781227259391566229971489035331423181381963323877664291921090726022257757900812022158596153336371051139549361994589490594280207887785345324965043086932881376347562297958450263540065264265491022397413133811766853189206269383272754816421611469770156670577112747497429746057205760833310817308535415255634999948324764763712091953227195697368927193755477279298327303103773654529520469224211179346637331827850597684610846500097418062796115911045629118710781617398501916708189290210570710712755480305943652723535668947436352277439788459009230641973108115491424392318107583550532739058588743313674399619796496095115304690734005931329739059556179874040230299024421795176978862483837986785432182088907415044760339302598417705240354461545984838319308902518138910243257382115374418124293733122202452769165234279580876454682106135110299046544618896872103859284078362711694227993677828127972604535041364675465781922281608516914654663427904769101547383703024751394570043506500070595984607227799455654146028200298037573901973348831747238320228235362408215305881803661645902800457905841192974531510233490877036884452671430718855870460020314286447312704785566030923499911508601866286401247151571977205595028258997321857481292773537496475186478521614463655487001724273838668491370995886133375185451731779445999566213345853404724589610771997866667628539692336356642111339593137248398375018865512743854821151609135725143079509637240950196605798807570925107382498864985393146022296818852535797276800310455285814292162409731471443844437481046282795585404183305184538949936461565511292266918042254376144443047790950621838699576196125905393688986916265536564940669103229207430641475504757026977027328595019535125806396534328739557667494732432318915749371889507047974572437677668788582977046087236294994876737407116884576553574593746890043118759399581432119643690695236782279514401222300823142780118290334693607113478442998078020356911963295091992050553278845917112504850000332860659983359322428062559215063886915876970616436791835096201087720995108080797605541955077609551127638555898138467754368403016481847255997339803781212694871576257035775321863080446933585088042698141813212508596254180544180455992608522938406462158010259317623956094152614700045136219337061744379456875298393267092416620798539708264427872355172474992532628727897573704329221561460439552044921656744816737005197678734357136909627159744808800992845533990405673379538245458317453463090772538881877680183835523318363318478342124373144555825684688190371875475562161649093720240852753850969669516650247421340483017062791423888850650788072912798319917635825147306292930196239737749480767018452740857460972077598525261918300759149931805518217246752040509704665441612398197196314161838313903580080237896326585676920859001187833554337453057645611615811277817687118156020561888485757436321686283233119533943477164955609759617372718858061712146099810557893895903124834485713184443876727700478718525941276948717576593655889849283953194079833731493673191922627892424648713492949399667748171358048467890000858898861712996462627625364217493397289708052618301764007876669448948289476857574057162680565202378157404914405583863801728310900952363253331842877414460866170515738052688342232238697532288585502986708973096694223064290433112694882395972064171577063631023231543733742057169307278070028197333393555908753465331062256801794111199649858997307853720863082205720253666057812052619811984150835541907282639148127047627211226200030787664837372694555667530321698546782206405322357139345618345495816275091342204022634334572077026861182227950811594338183028642086953130927784752569523410079643905908905935350446161598707601592077947550839990664028983457639543393247255777623668511125898962619613822314781560595464998286470019180248260385457501309464527643403855397428017729115257922556797669230677836878996727193093880370096139346257696962379937031625771352177383089270304097981095134637141953797214242592102826766634958073417366921962790666218850419021662211218566041641453988767094713011176459015206534816599265414109706586506396123952236456782894938062946443501767380484171078133301285119599138670531239016179364929109510125392640114307208661149577037352831420800216726402300729204903477762579483326654736609482877763727710542795833264435719882552832030961146280098195347150934489250480704009767926275747100820631609271427242355358584913035097852502321579519101787344183666734433535891086126691187889999434904330610954027332983739851021380898057305574886849795674851818133633419980890482729595210676691274683201373049826346097454357680170361556195424063540636093914011988927702476856865502480315048026250541664659253988442658220170861053137681144262423025232178120781370805754875334367258439721400738038390687229466372125721166088972036593621110650006620221627187093646819555763769472856154442179979630916288023328804035450577034059491330149163847939281483265498251131877707152042228250970131188389669358849874961729758020873454595211528889730646523799002919124608225908670742058840110881256818937402675379118117081842285833496660304345776711116784780634819521796960191897528359546860608923693669507015025598822306073913160286117152924917278804780549908319541039645716396012149370806213459858880608038931754761522375381137849906352892048926335319322004821098997999895410594446859008981844728390498595355979074890835052564786341841164123141375777947983805364500177578347248565436092760661466074370989134971391826750427480688263288881963804332350557687562320917255883997176472800198102353905292062876404275682279150457346097527819003929173896434818420707087692597041140058795236375999347993020880075285347303852145569023701355907892043550211835795204910208490419995259225324478711756199690576087113726639604241327311332809114895410177451759372100520273070672628177728618881212989523886462848173789909523826479706825582404674565187375891622659752879130369089476062637852851026885866219714374268337613736171170430426485497180265272678256215806659368284937992926572146600357821655072329154024820977989674919331767079194163516508423593791012840062734459279372768171139688657869885049516252548601878110068214084924455340123822836384385911540194566343157950024250993995027874496600322111347334285293153334380783178672861839994322509446123059675144041326688606358342218232447085358668064789998571976871766159414376187094020670211982684745204131653846342211390891487124775108739072088809558185273584536021416390490740000935428229649953585331047539004476043771603653383538698782452354494819363561243873184259480389980448590980753761257263822376550949246923934669283427256057842989670963605191467261915494160848606136710369802343763631733268463046723194274114199098592631243001470751970173798594874661755742207501668896181060319630693230962590232010484992362023357476258529888162347289153265069656311932930916293719134865299274103452698170371760382294601221182610077983456620583577193790689082479031160424412127740891009315004401992743998502313692942371840350839971274998040503790826184822598757788343689450620559859336752716887949009371222789559228256404733599686891772528023614011946348805578401805953261333278843093308991813656572918600950542087730983138981036599287908469458595268602389364361207476342705495905312339309041501343602093700725215958099594477969713359927325206294846660127165333423100216274339424310085128541382200543232333113267562274416564960599461020614660312210337599461116360621857496196544328713796528728284691640763037400355759399139037951629637259858720306998359840305080261662823403495917092559285834227310190954238994300571461836995254726266785130310672324147189463443854571806899204536963319158697187409756367934581681520067011498602934368660006230677421831306298646174950110933494523864491818984080032215911241710645467830782190998537372652071721083171974872283256678818854674373118941730614947431222315399771311492361274729113560664287850667072871121417691648832258831296306342685094103974809684378851205098979010536103235953561226323645107853776557505305955253219541390493516384881682294926758632542243657679382530713767863801308405383498845769450335495853128763866083729148434206655463290294727669668943150193524378178781363922266601079898733495401683002557327856328207007959768416589950546022676675238151062416971012998604164214892596943354758591610527556841720734204188118355551345562933301493531380535144589543142379905853374349001772133422951491612695680986964767795811046582433999348153363830170688000846035568294836804633255472995332198065378858080749700975266112541617779778059106807324570258362613374472609149068146983856096249280618624464006318036432491133874612049423741967484255465397519042297673846309309463078660833519895630410445482707966306001991783527687853251349868465358068978195290289740745139818395716228314435652060947417702741881275524469302834263487586075630392078337891523744657787761187910948783135959092785885862539129302946785970900262684211710982126322352194826349272385452966135638147820527890415875553375864180407368155240686801574923071083523056359716009967973267863386836421154308816503771010541756823261450741490282833547280204346119208767409895021475895476370515529718723548802999835385370873116993642043512116080869250820157339663348022018568404965447396193611354775350164995346156816526158604034174450987921075628917112661314023898459068090078586595205771120726482778856386873621597950202975143624348104893162309161756045581031960014911116036188917874485889956321904337254610459974285207610179702650950533339098765029611607917736387890316010060097063354138919918265119871108924241489595920676638375766405014466360049233544093240295011853866548861307370875977732536979369292238519095330807904164452829517143454867321235238698811777899790330164494458512954865641519292103226408619357617562935653233319471586520345471516719226888548902411630630360861170167023215433043590739335940069322923720913649850886784596648843519517928385345404109581955998805576868859685180996487807103814337055085173021469443155286092988666907038214568270993224292438729076857988806344498640932836479460439721177910130673999024692885315857846027410293696412055063918650723269282593716676797481969169936087244382100866608398283761408861230959681256058242343147069282191295587020282739739512364279458685212342926138803196137863975401442917489620453676587855578756120803135183309012484151089670928032539615728568118630316152088334862629581608631829863427099742034286474528033004533946085032999096993566939136324203593177796524845814455047216300452271627889763909088224218784750199543674956300298843890830269588150613965414658824099475661879244569003009096267751646468279291314592891089099669842709898828695035519610734640122064274973130264829215303548511859513622777401720968513746456980516792234848446766187076695369029083003108842962275949792051897772000349427657071765141020437912300230184835987257313035993699567586110572434492262712543967754502068475730223792623693581254906658886759501125557294240004009247712232960949047173065343155399305385255661516687527852177332852085877887057980320994351928380553717507838280332144168787260202929220881255289949535393339634887179967471240721904516138830632273287474587998267128788921323285385322518404680518060369595542315598828581718998036129054949241504877155887744062090233445597838196013422869068181412383161799497656748663486828627910993648126288146667393864674914023828693998330469490657636017972589904896763678337964089380865528042427495053885122498637220100061494738705318452902774668844293749908470580434984522202566969720366674854185901695834318013178900688662710506911590197208798308303193920276457685359988043593053663903234829541888793736933084248385040650552438312822907852086286331539229232085514358576696492211113448117255776020701715832209444265091164547329432203924024484438712510906225766772170200102695472562747206790407885164655857324659185079936893087851744169795220764428923764787527515391814093362990082599536842868900445163657905913562765842581197694737785569029779632042125076750140342328719947242658538272025785947430860623480848115651180720423827970846272767922717305858182780134372523876192980705067482369335079053999538939447841479104586942160498929518110956839177707290868379568294182233903745867146888159953608077909600736897607428535423942959034592413363906958536690749200619037387190452085492705767199976693552141434459532086714169208127203577295987537587873833168905663136146191982970723454001927608877326575786124019165235765883730026033880531735701713971555866092557557230461639141081814926162862402289539359087480876539975487183927411933013837465979200072482587513275898554129481177747673972351840633893121371757820956124169649579536675286183079433782080955021889032021573396570511849341142270855799347916570870301999756859066781234045622287753096997506161323029390536289952198725466126898470288765522469249580443334956741604286795375521552174825866707255646150571923303950415414694632394849805039588409079730331631330948127728526268098245580714603528087949907668094581334071282162677553410331581168439724275491559773286399364490917587138802649623646318729998812654953960747189905913980584683609077486754049234033111225649070691932871651732112286836886148584103693214253597428925647369474073684117527341777919308819223206723813760516850345130413803504167584152145557880585878781021950683104489240935643723206727110191853747437455594705565357774740754505130551995622694090030766547083957650859527404179600801673369051612043422515599369642651211156361533579740345291945758429827532316932215619484341366977324885063355778773098679275951855211816770603871454938601623032390309752857315821246728957205766719972256846863809029835768767038523778688066276449236202401375725380889710843613557497156673135099846796589547607254468326126342744884439889351109010890674630054604237065737802827794695139200987859446333515686134284709869392734581046868582179640064878733917239787915446924663818102294105791168183386133740586554014701125116684256485868240475344119587807671839343685596287547008939313993353801453414934192524610054195379604073741090066162315779717499305699334786840926819018757401665648162336484576358551955668836241830478764303843762089869830436983660331356455627080527241620616529179042920556872135489664685413230995254534108874397192013360034296918313524172468192857420772450235232153338512470698564958406925255364581085341798491564523783229086318659459081134199017870968599003991417405995386387223192841751580648351479064766323894288416665297159525916995596466075237623154874688418233678691285622346782852938586304374001581311012570797683838251346228486734423475606457590151174688550463900087309566905816871490261827255989143396053401144410087213799858939537424128780637085082740638213989700442043872785162808326347355431776414778124185287674324531843532473983492999300838061147001279168108645617044035207940848823459408449267975828558992723546543031391350443489145971919507484882881074573087748413834229242211765628849866560462724533694045497214847072261492642522608881722730334430861444134418482867688817821916411661995995947825780923122270357049976000309096298459346994694076967079709171923551384352624849250336825446385418516823882850953405016181664819768602326072954952767505091005972134669654562778874865298096301292119097677700369291602484376951614055208035637734664045167194046410743245861102315867992006328531731037537426477381354393974691609496212155798234704306168979428055207676917609596538311322412568380529472249021768264883445605691356002358566863689231279478198092802573610102430171089720280955214732513171134717945334096116612660346802882019640568298526911124409717622188753021163414818660388897758675674947450053333514035580710745875605970743832311133811811423362664764997530654536159789312046562600043167350722526544623668811216066239661937363873808685831172354602783326260332971866989478719100135638804448187585116706608375904489281229563968511962622723237870139600963323571113379041639221157501299944643726461582222763319986721482767075547892622069543024842785034433555683069224300940928713815885678489889632216137901123864975339827606721879294826976966232964007347605266615307166152065270759374805011903984085503105936511985278556062873743060560037797855942383029280942156140509698142127042011557446204419391390993700033439912886852615244725538306261932389741564767153051147138895446695770167169649441266931742467449202524181360028997474915387982058968859252230164055183618915359301155448917570865410367746206185322503640587700484081500926199494166474169292909981982196670656319405241328299699495461696379107768336240438723165096790406908848496520249980479618912311149093646407609466772302787596467213324969741154074896159843677453244078008968988121527576877489611270182623373083564974400564937350148329830820936427080133999555178192315131946870598544112579888840487124094301155009829994245196788973492292350189878914421608352696518243666786037518894634983319781768734762108264614577290193408271180972678934633790850627583450275093839506191246349328899753557648197079425475600561191520903409501549454360439751032147182783611158744412676578441375789805061000524973194861328840244003452091507959382978026476185339846395288620389792144172381733002890255925595628594691887069016940164541919022514328214112403446227838206507459611398169689174575547696670801879825351994887369871105339669613288810330660057898905497311558225714019257878315956720292246874503814731366731474273625360428499502042574695038515634278960403975894567686202656931425495792785193867309826829079945308619640822025180409300795905161466829999809485880220027035682612333419857078581939708870924476774560750382031865855533932826532293743420687671441571905802498367412655043567021321322066295586109883092882844050070096191529433293490403109831234106831974332215948590353048642522344856867308639247981207853799030558297382066123376719941726867733889845165926731269947149985928851737371646780240588918725041788402709911194930045564173240838330587917881412990921820027966935791148261229477135064781264488111025766129147569264868837985259350270679015333745866614693534318533009453298128110176358779960059120785707520222716611902206745718108984287123377961607527486628972637759041657842741659747641875596297388195596965827562715937176510138155151482688558838518375183735748330740134314695116934446894222139504057959122534948433995467607354075724588579385012485773478578708478899988333810913419507596941039775442257904712846659332886151696676555177800115247867667129981242369796773504437075775181890781876247722827306509771068603094271233148079810417596107959572848994800425685412852377035936456022943831674546526173211857079903304272810233810818037938694677245247394644182221201946928927792907662042040254611620535087812929938781324788973047065223240348864639733439042739743301514250512845154816989448676671312806905904860469028452788019004676997288138916247403877922365033603586742499417820567263548007920909220355446980726589689280400284171401653730656003069889255410018681505796680631509840521720382325888931354076586960083768650896760403309539529583095187994665903464954244658101907755656943170746403567474957806522154759556448570557593302991704575562088634230516535598797941848186818707474218599170929146670182844205257554265616266963102591130072414006067375534039031442441050102398590110978054445109309139390514068417531997004896560083975416172934147628702845632422181991456665825193020396822715526277482017897969360127498575590378502322790370326049028067266240220856607424485864451285253309907478972989094736560554412884281987046580592049441310917899215966010139922758286631265956586324352089794649950398120028323487354534791246133969793995877038279821677180810873974554892072698524749601584343633662860894042474902952281709515597157230622300425791031270321308826440790683052210626963380262007253691921782107399710275677984745634930843479763304251620732279381764550502311660472870748188862367039910672803519293701911587479161761220228649099690554555230659012050484023879593508405285259182673488901766594748903849174882748718174460820540204317762708050749093905234138055908316995828731508985915541867213956667832071535002376067872541368376148016018864201769097719326885647650820280796853025015846333942867044274557159777204474355651509330872320449903811146259831529470820136150659883738273206187889002755390314911422458163492135187878986013176481462846658541862073137786775339810552724467451647597739610346414259625161327941139198782444269968223199195601243087138692732341790662609594461315112935222872669106829087812345994030956779708826696292268192825345825043008337183053910976635117802732552726204316800376720727245625061963167292832453540925878537080902663288665563918607544106221339356439262628440714437222367955329932855272721730562753075474779181119723817933204096841515147309234568141165243655013271863711842584424217856504834951955481354052691709454725336308880119579255533313708505342920115706446389645171142489822395830049758469849181692800471988840289257949972663504001870659785175923482316614901085626946501844526608060771682812425564257449345596974664888462800694321437411383466399765825486854327110812811672996970588782518175973000219173345261345633291163284856496222426922003705174601424947030893986891591609459937603141732820022095304011258417703830670475692242929234425380151681743419375125263503723853583338457362571130081732961201084893507880258334049489013442166455866378717250469303237332107107550037623150783036941785381950466032602456182886983716245020767342547979206524509258886816415788575438712690413581737376054835924762384804307393020426093035886299119438669707665842079578363289887610812910569304804497599332101529705160364800689152419386585402824339429347067881843811968900103050503543151540777608294276704881372688096616758345543167173221987190227549942674326571026447164993733905412079478308893665580195325422612987908351454653657837874113427117167173752362752383052575118547189869411919455533548171679762719576340520407687075814738188262563110541317761619342867691367434985771426942111797989137673487586166834210571697283293537547611539919485343575062734657639408549790484007971966423883565858878632025418833322720667658671097303888984675094789231806746910687291847609435422150735929204479388356282900101995479048597604422783901396900130512056099105546791555267684076630718756594474059520328762241394365243636679757571201830453320732504974929633217565365240049312016336747968606111225454864346206662137825104342170640509018759919362139611081152261498892158379471514980522492873185121727932092689728810057704531054444092340946458824600886652225380722737023132938280669173198005718892951852259247677233258043777299585045829074102719173561865563221882593199011606365742936986440364570673120386940443930771603663319497548581723761525747973352430702363035063949867650751487974196194516550442284141772389234384150137931547140940437335027462686510192929887761828062341289468707786101437821344016131200698211637951327985942231685717442680367852789693679349423353016373737314863993890062570220521335290841828057628552512972659070436910331485036631457805018556008017294710683634382297517265076670090575906909842853346983730873204816358440824838683666749346187388679797193587794543641138487736719510136937257235791105003484107814292690765848860780421849199644314102125843196222950599520563241151195028079307070037377854145916550221537489695582080019160089165097501113840595650635135263362365473466299218081363130639677627765119894412336147879222942884121466588475195839969275428551395540441208635181464533909884361592945905819149546851726583181755786233487961228317511326623385578865680056629805743212696242777100175120385385724995950070321121012034333246386685871617378387133178260224575802923675985705564831690900533096689537573281808669487835013187739261516865411547584359279343876198343004586683956469471813645471596938114259144802601238557547471448678286837757566369779818953018603308857720468315433417521877424453067831931614790438338139386062824916258609581826273765925672114450881876528816981357691895291456772945915716054482730823950338420020994067166349624986428625605173732213407017734528649424382251163276169601470247361102381949045636211655337108898265167300477042022814484717393936387044735751959255534342583218051909698067824470752651428572735124377563862007244999357688196395421993987677074917157354973260417396573541032073727732341727396104606305306673350901033035887843269851943093767771316708689263110842887404725433326896531825025478022895097909603183374922478304883310276525534618792913545694222324391307279231277844811606448073718084275086751605449563849797313844086986030987177516663936500610237902431318629123581711950152547605024552002735766135746710717109276429383426261645316124303607032880294744586538130650963504768093936423663729828813176866581365499835941543549136923021488857454348445081092671100088225427744832664415651135951926705814706391519776763231469072219940261684974803004642580053378854778990937580245301543698352126768606239298165984743398409024628122245133183508789461249237205262677301915949143734989477511667506654543403768291053592848553410838853505278295752234764384510585314921062825334926612524471126183352862016941616274449875603023752876891296730972423176324952949825080402669303071052453526911334332725287081633492410986674392587513384314248036759185196953604644405982828354673673066083536897035595939369363737085984998204224079310368201427828784292354013950633752343609961131453814928231607734701438766012322858827673374644744699263424316205400884055470628685425572129489920083875615257918455356522991694413269985026719006983274782930901648599927300617073817146063205185766840377373594135173712131347039153999266790448914100288519830680069725638031289819903143147854205284603850672051179552193483355683894976171020891813526086676073341266699146190078301564283062223008817931032155765786805575992847734422872495816456123689455317357737192972508090485326654200015651847863739028997883380947864890144735778690139690638651786210179475275727045257180912797860397840301307556584157472581157609093692344405278027321989607496852738861053819638713340463388905829298312178592637306772594668017883130679369676328177178320999369716675676264238531745542614959699068865525869102554442016374797595471639746536966005972003020714486358765718356233314101596363479709384732038660832166832606246296492478211364800261875144014709553735887634795647956972839176040951131742779769603572132550759573700822858631657883492741928635494279609290636901614944981023728462524487920282436594223875278047565719966796467025364982201489335689247859483474370470206014002627719050585591180980465308188737673132066848847225225090564494343893933339477115594747756137994674346921800899867430872701499026106043299233109456936907689345641467495541682744616100605267620992783905440827045801147075299765346496423986184901199396045224312413896445973319611491560865009894758894350815629007359261694536265269326113551024139654218628608994787921641976622783969800583552094631436401344519176357343836731395263456979061054798393253194659171843227860410445432800692328175419547218186558294144380556892939543550579352612119305555202147336968263051848952863490914539287904175820526620806278539130345429214729661456096761420342087168614334536453381334643728208235300053270191115118495291090483309497239326953896604820522829444813419144412123549019631215567419358905267453945719111175688147606897596119206086295543535151624724924129900516909669334495483902314026685849100869363853697173229171341455858157879540445634023227568179090188679971986818966016346863407279824119333867440560681958117235149440537325108726728806702954471115729056539922933675608790394010167658109625760802151489926821602035457223209494232343995485408724796321598846507449611138946409855601353275991963792536760689323625732824952204205180297120543898365066258459487227836321616862139843304527835650089880281686648411082839581229672252347241759922304954898722582283245398065436603592721867661803535218188248670153298546066868350613547029962808390443454919854579502599337865063304942072005156238064760152298411336824287181527229872527098719641578480340512364718218980301969167711005313280528645678743810425290592088639582923021156944580784438882316547287914525824477146619037035374615012145192778667437632262278770987355560625117663507229065597397273570170152434126338462930230246646547576128084026755130464514670563371045823177336113543118224458563376023417394914374247659444645220646697925210796627204679163448783500561929825571781081445183033988715348604096317733342314370967483041598372215491902222379709029331874601001567075872429117982968460163012300616814828139757683431790759256833786217249371356371846218082116627992817339970662067146005750202193961401203890017169978732965597565268666595526583847953366695796210706886999972468887723357734712198765552723189414199577048206053057033231314705504223546240915751444865398734529536795226151005281314064425398563472093898423995027083417442203470758313030583106543384523000968382114425258698151539462586978556362049205377406572639275450639132396848128357988949442231785091800374166299497935574985414115950533855151962403260708955951799937033119886470877226083889136813017810648076040741534689669195537235475427461616303133689317889876805217822431667369212079893846910609779030991963797256977857921891376583190158368704161537608386199496633426076386889764002671596201735376428792089930860874371446179006156487113508185144987944481642406727939450183072431790641387593930380013214766141848594306774299352646943420965011040065214702341460544083529727480693018066349479246300223389424390940658878900652926331631587475454893929068311856249014963910357562797959869080394068926574279223931806139687903477031107997067280083351101278797827693227091744635949443715614647815555824958880947844004857712217526350482729774083508740956350708887161923430513526808506724964570629015295646539645136926859910952987768763836451688702676885523402660142445056519394698983002820798789668785952535444526284493940666858393142054815793194511769421451418848651614067366039472254584133014312005617905023928202407314613800942998299180747833821038530717336158613488981424295355071168761412549009637580916498819423711894014859998556491873730917849962171348847097746512002684549994523508985705404519699030242364137447227279294555138798661151652970497577152950881772828266075208734328634726625316240860368958143786243235172006652453026745670325276886785965561284078076368576581459498721165298682617437428057686289702990924576230059512629630432420564725242335669948599370400419317845581631797895486578344187891244455244360580449251836203287715964197708228126365997368281337034185450267711759526822284913580957663438311976863624755046108740669555086686253254717019506754810632255688799424087874346200619283988486389381783891370252744146186371386119539668886609675554927258486297702391771649318261781189850583149770038389958025275736258031910733679647757533903621664948770533527395098776279370220823976740513563855976057819936637997149214910339889978231499117306632102208405202133909688662936655380633617969684023262087493634801689911463194495308276058568585702537383485073261576424805429251016490302295314879840133770290793587113582887929936406971232643443831301750482928681399406629445243850580933266134725959626030841514970512262917603169475412504836101363978429455295563268687270437317189187355227477154501053696754432864039792402538137563300177581168556696680955977397551390828691523788579291783358807217603941790467359990078768849094394572308410660949630479752195975490297610471297018032511196301422867174098563155267612028798250070241749640081061624719417695437687146116671866060581400947086101236627684417632555056213993613295603344907653000779411450845771236583876257029826694858829153629579786717563618026958308866790927146392640343811512546576346322815766277094676285187126707808486683334005695247180219635599067128819596026016517448235222091477485000508536349954088311702678369130115429389501250698656539813090369348391137021533683535604390311574179868017272896525427355719028580369025974994292145302363431097151669650765914246190546763433851954785890650573514027415237398109244384490956562223089495940606042804502460383166715829707149112966391731088062667680590737017893414392497413331361964101588244357339827157921585065826887384938462906091218358306430821274677595223743857989030938943690710374322121859188230238406145973392198571103731419896852325687410803544545421304910229677375295923306552194585839369989386067572465544072836684415153929236583168367084792787553469761308959704283818555033833953306253256879864018470803365972934784786325270849258920239536517631939881735715384133563013573402104312534441211825493463398375761433771762957458999902876362798249854423589510533161050785316654978404285354210966776148420175434679744784561460842808506401639495275951164907644146483341724967107374101610758947712515535742400887815741432838499910284328270742968273352671272174196706935476547456153617076592633291378386674739466627178267599474568108492731160412116217001107930570656108507376892078017443357320869355192639343637720615393083201758460321987167852208062776965709306604101329391115678761795417200188534993099786870001375363208156978776377753404890089929724811303632658475909520502485729963079388369003830500323458632036302079025756009548671575424548995292303175082214525075255172551094674367397596562871363299891484749907630758523839744293794781782351123822568413814978851484828257762031312618082218221601693972967933986615591284749514940931793861239952058726689951952694149492834181929329177067888963472779416474984585081846172081878855241769537596258976549410831666991372026373786832242245664067844820129654135049267927281820097470867560255123005200398006497066640387168093749370212127814595104192074169379790693051006597544765758630710899796053285254723766720693583427907634393643589897400398725575026823582626649758964359372028999361793428150115529174953513230562309507511838522855017243990315334164949710072322208793095716625171605175929222752674677258565754500577994216398197108298753891617441490816984478224534342239131530347511361018293426124721650801342370441582364335321432229153871993807817842135278113400999774961942308651113135910254718861075235907480053540190709237350824129580449155572335919788737162614898745086253243064808571514367952241543027075440046228133849874787595107372994501091367374354041320771842807529169810179969720708002170022370537086774681885781696959967541249842519671897221553278107798152879763980680315281402912251968298215981999606475492692603574956402211461237681623619115720227675484394516397960748532987977736910602087977023415936324241734613529219456370898781526709446977072644490117696873877955087661101518442200587825188993608495479953947785895890727870196945064337542857959862455780229169754739628314772597299292554742962608422058743872691010844446226485862491219837101597936491328105182974399977759678046638693677225606047564658353543038903647612707431144226291139035939797181467644798225905030174169286497073268301052496065478419077656750914815735823618884541980465746949467206297971304982500178402496709249135113990268063395579191611404503448782706299090638438988596190121075224541070210315333054987303847286841330457480409432460667975034657853534914119655594640705256471763436746818701952206530268778604866042905501350947913676126824704241510612825305291320705612601180086132074817816361074733384252705070927227543763217824954352631206502065337936727576198437258241407583749311176356801342753406805792653501146102269060420313324411214025800794864729897931295735546609439513741345943109879549404765152157966481299901551505922027589100070652303007777816063670450746344144190812095969852644657154079893075699806229219523095872005559942797880914967996013652825683157282026212892690735451177593838527673256288382955472553507446767903240670746487745934171664363308534923279642673171081394183834572191940104704160660397360555308345239203011484835106690225687124171415112733222468843128168837378327161494261280146369926919098192807422088783954513788183654096562156351458938701244775131552302737127385040939115057460531091535465560333434178872648329403063240987138546249078659719361167740023829926916933587265638859554459899799645454484052873345816756223078715774531137194898965132044550517127392327408992007906351533388583702439216194198236657467256376093583875430797820993520893304349435277768403585419206333940273183832817503399009518213880470202675966086381240945596999105441401616162093350828080918424440669031088222674985558438246038687112861067529516737971671940519248220563579599949905387643807577644304885745599065578009718589002130902141117735411794977416248761719888470481023637094422829737255028852182540297028404025583311297296061054514384050680687410889843423008201700025690732879727366418201471322073327337213035988090624931411622930295606558985113279316449582789402972229226221996605782591408903221413030937344672976281024236368608444749347884722908689366768809407370333631029110669466556569704193537679715707712887465686705196175409596317411723443566050770719132094561338175796479635945955935891440213784773872903438341603643003082548752491680960615829280282671399217615007156604447112889576792154081050838262603256890181118930106834651698704908143025060589781316687166112198506171048756565624653041081663069539221755997669651839049551274381466835241150815105753121769538982628001538247885819046261108443120203193464385761042166385948105287489862076219226975714817290946229093561981271652456417050562066053431718769980789315588319457481088392930883898953868405438807636264362307021593191511269641569161678299279604152594545192413452688300634402007908103739821240905592308567206241433983842006809330826987210968118260285605947344620311425579431971105391002873735828474860058770348208238511915250982295678867875045165537730579315997942465125397580748802115902629665086067680189560292578757931274151592377773068968068323635332686356458145325870152348302182566510684045750947847513480100883050126130607400998139916158771455413577332789008974102096265146182533803423417453621779973342529916242854301399839222208845430996775384911818594407115756838120357206231948453601579551091957894420005417820462670779080570295611578715440503759083450103705307518424325894293181865491443166411845690297795723941605622162008757653533924082754145904184612949895645474305383712062760040499655569896699761416025667829420177734370272672564363847160693439308409669628572974413311028059667532264608436447691915427500955616918757047589685060818794643583522228139564004891636447072392074451409031997949777070745870829383380455437367690455653770164153710680441493283667054189547401404310463525419575234425863621319296906509738267029435620161625087770817778508214069494561590350305974255415888768408538176862029237873223002372008479865910920300486681267633966213580847094174914449295511418026438320391014248343169893156796912790466373537409300684598532448468325834745287401409974342798961903198436254224251714232754324751287982157981056912184204775999869716196738557507284460314926874213508375495143928059313493769999279938291390832390546818996634745234221978525596464640056232303209115917644905079786435079241574669545843777636445122939877521444043745585279514789868319630108572041453931400720750845467905742422347905663596934619235350019211039125476716314875115364304418881397366271005093755358011889461130182707610408183043219478311102347202170706601838142616686761900626411051236752798417491016476624495394431859971194856902749814316325058872333739684969955387431080247889891827002576760416156498145667237620886839906901101890803828062823754556241693524650106518145548475081160946888812294887569303323439691767166853192729879134079448408394884902480799458117775744136342399440468632824164746376732275411755509077058996620990435280005917612514109390489210654496695929650910476736708818627995783288239885650312327857836839862154110482913537534322979034818422329627942288912550224996419894796133171960313335955434341560317881336782845617523008948554523389587504128703374335156184610291941401584724052522075342671677889223193474870724221011801572797901418293199196047537090105539033130382229594885323538129387494854604238997723443966150779037348336113571397768675513962372881274117643987148366594139543212009996191299559004189111892973978820470691920783136410985394832039763147482482338286941097578408285230610957274684247854368197553198851170303281219469694730320704259256584787699670619565770144162765622252498788570189726554750335797356599650839905360794557101048370275992863182571890142995490437338681751748616745756047105607277742073942368126662543365287034341940003727883900515868945334259490247197913532798197648041254996490979474359980836388106294824029156382730078385204212840950156581360848526302047134848369295958367824058263105106271030296747526418169659693272667305393261885317627133052400891453386116686863558859343240483493009691489352725964406011543820000929557028819582920642570399671315941903390939642828506352003744707268746964798131506475102956637062971162107890295285382816936547368549281709501006975393060342645849252117223637118143689370608123337182662371864165291207841085558256941410197100420866557206322748721268422641289962072505983811304449177350792768773004891408797578404355744748894629287961420289030870405014232731524667892629119801014790315397398020431486075171492753334267025489960229721499999122105562041065428947261113621101488243151587161532881210112266416996372619781651868385169815585099838245787268525656153553028205455532155469456214786437981629371750089467860613601715887364465779501767974789216571877637864205852168337442989891570144911056927988359344274843764102425957856349518804369938760410505607501125083228074150650519833613640222525439418742641737463420450014228151236647438914913277153129622431479970623180608731340477617068257339186795381393565483450375886349742274422583078363124119871034377318005166216261492742154193889990264548408262130265723210802664225284299077305645043848888715806318505908783689203055121191750641662101636601738389950965534997277208446823901584988815773294871658072992177017481492838150098845940547735059634967502037382092582286793163979990821436983654495448583206310237787167047831210093233646146701071189768859765777600329684356025335561773072830455013682656313523767732901866373791126063338737724625546881942089654117716200697725823947733964605860825209500031697629619843621941359393033280784153653860787498996723047610103783592125915912123933984965929204427111334839743374427288811316995047051651110703771195755541876090860674130737369273045470707312315841247161538590139721764205926054977648071220104434676661938041633029776339511734692178581749945855576477350987511794421983346962932391735992702618091774872790767092625062745945929053218243834627005752842728059037560670692814401485116855065458009528326836498734574568455606584912665640201045191305065910894667063790105701356636890984068750664917469567248654227282575789745821888607488999639424750211108891555433932842376435837358918547081537793933596377267944029923953101465473156155720792284307537232927313501543762639651275651500607910847414966917630324766324401038566268321115864714666445107367509994625796447355084424466147022828397659807942909473824486468242523322473652829904185160544604646362571104413351994191947286920823278218690016750930932889129084361490320643130813315923178435289638768535620750026729373148703215447774545138943045249458091065913468050593136488420513284537920661182559145577597047699419110859769865321153735824610811782948805641122927963969595188855840831312507302156430859357610846599193198116391850186425420363860505963626713067173848685239599525541997786585028346344149043191787239115620314081949896454545086860679257337939432162184754917653402748600666881811019329714306617185150887123249253166656350153017930654323550148320751349746702059044958967244070639858277832271728201235982735488113242505086109227220083374293104112714493041364354681976676981903769443375583981554136137991970831325904230939382096052298791971981467209542498494801785273697651302901559871363833903705677158112186638873337084623889879976405003726367926445624563108714019794817232817436234901916538540056195075327699962954875781257741475928874362463736412054434391732011144719284734128645284230831842302327398566717702436828997257430818935597145152798740816848162935153984360860228220199896173159544073921608117659405088948099396725251618461177098792603685451021837372824041982306142178528466147265638144874370316173274546345783973349903787706290074655766777704479084829770793002286722980473904620931122549908155427834762090785663914202792087566421755002354307775593095556757295853173631885884264254713652726194602623075966757614263155906981783538935188927060695046563976085034063840601017008368561585018542511436623581539630751846214034951114932234619859717740010684552490128908133133883588558518663677210091970449177490753462521020019394198955744388026468843312643097749967794017999802682845840840236034983880407037427315253460245089887537478447929527057068976198306889946761575892599112769232103246328687232849046220490930846942599258019340387785720722272007132023737025798924731976235069043491268034541093055619448664971437227350068456407168754584370918137786692037922658262362294618937812388161104600494858316945239261010047038155827440359933087425337171675857478844085481081995100931256295599197065738012558097493087948230800781949461717421436885292134831387892225904936257469780654128867555208587534619113358260187205716925711579340036020688084939945504340265957308771074144374293288495941722417009692288505926884386069222481310188005706996198282821180038401659984435736519813862674718185617888907612575135777563974898622954586305913104510625063467739180181599900711813758902457278506315691334780870154650623336273679978572953333345002133794531052848955905773394874923875553975886256178002571585096675671078667427465479241281620595546633471060327061376539068938695824962933824575117512796577389598757837077746547631035047264486212717553841374266537737225714633101533647457667167777961301095657303961073040184470686380281811631766972592323695880787901999104692079589072853390240342121059455543326792859806415924987575735488137648122359115617268900701056456864186873819321676250150366052235516483284871404964671692803304243015365422056748389564041748351935824208620496979440577136194611787149816281997708130309107290606633711383067617758385663980345113479741020725922308029730422590715563261532637297528909066510037550763931690945834986838219459017364534538135666768786846766774137615404454827040230691464352994837185838171305568800381418125453962516643888248241091660809101021977233490319017041586410600376876797289607315151645640802724829275950602817464971378513568704245206191781180600008909692374492090986871165360719015319828180646491285605054869411306510728051251151758964311109037859818169284639654571302372333892445207617454523044935039886521362396078452815322256162408645210305954304294610429791089937266052660485710258458245876245596378408411758765987932421929605411283683940041982195335983519596304342503430100875912705328290380940657401031279145609596352443164582784259640279179158061196278321761868359180741599187038021843153283820108202457051277426837569090451011806694959233280543247029805507650446921491791898512943651812910870887014238109863450924576148998530865216252497812360904636139921544399032732960769362768066925074672718708366055516507639109790218731711958285030250030384009666688101817191528586221457518713143851120508241758330560215982869770402765089154771210036773161492678537309086475665352445601837969315367449703823554530331777590594825083205946110923508304157397479339674954880353808984871538907418031127635319639496237402277174686640664106639238831817301239611551076273725254817750216708292041354122166117268568678689106183964885235212160602783308732483802147375893724093662152210125800995464111923422194494236210609840797466002777716728733302295545662405386914314782618546895452719222027703250554720630846436760948943090032433853972558363820528707478982549620549824398223876015828152542255434420354144547002503655095762633623715186435484513219600532396713877528771171339590263464943829872421325944366078551035994967686554306824188899020080670528063529000316119047346385037329117715185369517473997335489757976055907523401812457160974097821346403356408179563815079812486140803113244293187325732965022973020316140330686442167108250530018635146339741815380181667492257767717417858966813846739767244473806636583309185398327193841960138633187735194409853929202671391524648152310922321107051377127051922227107424365203994494012859706949391499887282787630940723733123136381366521108057164358014496790348439970317785486148864452346833328863423260966378987583299571629151600339756162330049329540263337067785416280222160236586169672981874808209411168720671808800546005253053281756921121915174522523480867537336805793868772960260735679926544983169602133967097609972887934180228021475789616655177133348235865335343760284870842438913485000787819405669356925047723871204162330126064931204347226250387475077788240280674835004799613295845571705311339366477463597581606102238103643686103252927203919390861831407782323180986757173728037960672745201056082338846310109666080414261279332755645305987905633331741218749818707736062619542432479446928462380452057269818266748315221599472781694784708829691166996093507280369780676569897953463109954063034365547501207614069500985089464635832779744080856219554229311926676495589812985350563287775845913715600625734896582860957369318231940476755584995688186949666495156035974912235474968422527506956587071951771085990922619915288590313164902059174942124109773215501858076852622383293707095930088979362317925743837138787593302679049495521469234988147144807892172324775377159008386314031312851625203539672583325551058379311665573252168823856713764820983639778635292278364956378400429433320603745001707009121575356470167092654298393139663004958441251501665834436457703378773274029820183775866779488714757903854636375363843542381696653457009147130022236441871629391930232558392838557098900485264059974310397824201591803782365209477677951813973890908647428609351383983976330884589588968110781061726219931691565063949478141000276046330156454390243057484190769181213601738280443076410611139779667686800513743510565353301926879082290784993408471358841049877194851025585769848638527879749130926110895136419046998833467513212037789757403323412784924709223947552397691284184317274849416212017398529299893700209202859579945047776446456998790643715555328175741551655328785703838333831081677172309689534580728005246825484772557518775680487040257260169325698657721198992009239740397119329849189360346395358392460542345281797426498480263003380759834679285122106046119077443162648885801688075672029404069812855676128216149810531161351675456748017431595940319796902497425843663634709165581851070352705372164700147834411454494687242372328954061622793794317826111436836174357142771578551653278635161380360486515784703506907679677686674246840167374049454420294634069462340727447235226948540794260203265848776269760532842535786960708944455032146789582304785625587341947657964172952507216006543393798310391174264566820622005746166972970113406866703822105793965918369520056630998353190638268158821191163621348570971774057156503008994801730191163521645294209182895294289521039918827858518327160251193253320402350782759903202776812420800334471274438514535503039341861261376346986403583147672433774047724295343276571540697300051371293250532709027834514675020125435285527291860427681088645580439178999462709743982598791896676539461142079153855929344758687269810762748000979723666623517514708183120644528421785583737067174409143159699123407812802759440930892452136400635850578300082017467238824343197854065894106022344417993524563612754822899843777927400674184875030547948182969715043830007573379489327610040779905599048003666199679195321438834670432602644320048463251600221469244304850437173409362930009639726575521315081503934052413630919412758927868327834706524426894955077875142957966649550690166329549614882732829240645470196299908186415631785974013352607850680917298690287331216417976195304695614344361421511860932996583058486498961992085683769690593284667040304833956219658010506026233077354234623141776241057145505165111722777229917419385793706334517807721762763384231990393976456615167061563316996772275918444212823205053207594943858384393787362842886780656720012721146342213670870129615179726071821635896227303466796301326229031096739311176064285823505766116121427908503272050186298727622839518356552803966029894971496266194671101311322473025773949946317191344942115024182324840300984769019424708405439411655420564691804413102798726559940175863227347744201736263127213049170674693051786224390688057103263388753834758568317446972801293957346152447662546740807897426397955890715254599286474332516969238871838691160164829848315597895218527044071146134180080493936065130971353837354585933986869358991886291046979658434715526573291133951744108599039250983706464702265088011118419213831087788778395976741072571089758434869934508682247570835371734718392979051288839322631324464675690261932004585883286842927856104088858497487562481133133792228397341437753922124733584183100335431404489906221835218712114753659816071318546713531164331252136687685183393749555777097424429915713651147458539285478090600713556292552767485626636939821463494606224119209606457112217182284355621422968965494282960891263655795630959975642096905459192644749162937115008693468326184286988880612263371759882325455308149428400348493267757180099142429563790702315300331029458629190678719862021285229434421061056558380771088442830385911453892822986425580622528487815084782232801726786997008141363271046375478084685484658681905291991462890907788788872308327956346787681560509520342772104109465122785610353783704568620230997193491450981505017974923795053924480584291295428730117477238050212618913572247609000761861697630688019232257573090034409490180725423073508484654847544519477322600504376696679468371528769258477131895749033325778743550650195368830805665383605950955834627255654642645548676872999924035046145993027614613324846320745715639066090399232804995902543947817260020400170086190647580523561366789512814141013412770632582272210624627293418499601156658078499377843144751406885773962726546387455822465219322024156871103617980023415741014179498690313946215609209429099823535200061899394082128260690084305902486544789589195885119740398627598663206294893460414436519187319899597366382062111142022571220156750870329761670194736597770299921098108346025084115105864218488099742699136046770209363519230724888616743944839156352070765114204561382864384442835040304031059440588551187722528778112344107348708850479707437543427525082011492396234271127791397174749694256483298057172445260470827310778833628690114404909343942696157737273790496128266185499694200743436079563681298252519065067304976849833344532288610665400776735556596455622794434023613551529344018342352963703379110335094062584086986027972791030807277831907105756281675860527020879988169131830971800975006622624174192628758099748055400252189615164574217403351023892101385464692401606069448681170789545418085680861057101455871135569339788346508924352477399332548660326922917824418384334111030575773676245117184544650300154683554693552889201243880567582068797533054875709966544066580070608928635768083513242171281878456424647385939742623255482024721243056675017506600513873489457312920745259728402529905539993951472366563584441643149081272410770750806680728711826183296953771503460694165568545840433576494859330907577207419758715019191904882367169273754106377462649611562100589929559739101184442808857095064711115789519394664928204072761516477164290611886855647209091360773235304646545503957584257394112540633800908498470516278543947748309296582857959845807321347126691517085568986943671757618194647762751368436126516421877343928351367213309633578825780665964591489792035065130317196761693428736664068003904101915866650986711332385608564800416807967854131845050793271970417047787364839549976215226165275348380572960335220849374244101001847580457024134266615183587509413751012119976517797743116953079997122421568927211527043352470070224300420297558928897684429902669455845146655889847439855493402240806724217624059995420362439183753537544624098421956254919898003593787642234707040151916135676034755035701375547195416544197338379185730113239676524790292807156764450332285661747181979330483195461285316642863095427383317203920567925088920904562122243365996688164804168726349047571499569191312434405848033172920142283207824827761365225383014421616957438949718173723561929422744780384951086256122554190428375340010671831381311838549987095788556467981298968880122601102164796310649060821651340825310804979794150201907878481401055765003256256804474207417413360661873527621479193726195335397035273209522073949258349215919157583533624222093904942715966709665121070476021008229419908424242892779704128665425193471611113151596886371229733521444908161671960593573396406592871790298528541498437627871795717543104524704186388142096435874107645116218656059607811960530578385742893618160316025384939447221075713361717970645220142691330142447330157865719119781979471396193618800463081319259362607822516032874306743962478640271770796985948690460216189797262902135857899873598980381663946200181101132067558743068466411436446450929936155612758683243745551749059480465677776655781083871127577437706369014551701049386243592951981145562028033961175919185484332393873391018250579357307331210443290149661316490674037424640429237454157046611856781710507109325338704169035978148964096746495453495266222656856874226217262649765941014323340212581218354730809566946776422356533021608950683258156218829534444928865672018021006218540867651586052251436086946710540976725296820970373744319864330748562295417056900046373815113083263086688287385481888819822474427037441121550559443948021624100533627490564022422943183894872357030423312124075099273151860047173456739332569475100133732505601656743278475757964632176406488315931428953528879586404190262920080825529549817484018504819945032303051477476697384776438538702923572790256691147557311611411654324565589102648542105575022587638744245630717506202878619216163630760414119307041142810695815118974109261540368984410114221080125496344969237571483642489352859318801631896885371660991912772050417166968097195088926761962766009261830757210579280611068740058570536079260113438049430264163411262938483186115316745063092343027912808361311165227190243068572272385426328667685123158625493268295759013703056222187593250947305893385807870118078234228962699551998627796654083775996087294219479829227767904506454436442727354562235841290173002119292861949418781049449217900593298585720137135226512851149349879714233451631758613861777885624763500579949256741945455037122802836683631798145754326865414937186699731597361421468210538683272954393781181228077168068619375878073031579903105666182650823017463243953563272131052532838151992709016163543166559148915505912364200807313132358122065512773647376331264337466157595964117513274751678046183967305394450306800965540467960497184639911146685556589902958615499398308188825499890187251511256018771314331028165819410000103082592528230130775456585577991028077988849499712170654977088670254691816682920236501584122324002183455546068822070877299887353620089526987211870533207903221573413154758863642271954445247490456692442527890221072732917648244513267718233029488533553827508255903116606354424929450417256686926788728998746873426723985561568791733292535293974978680082860951065766795579392986665931408689898706972578163386133968863347792320289261664863378738440519852445850191783364083138853435962394296230134300377076731941176747002804395120682645848050053155457014973377784135233893619932112744067718661570496155791953286081424274762677241907695854088364776408229202765457002460454018036336319571772316920692079483181488018160697417188014553632334712283063801279432813674711303072268412582717669531882267394536228391744626621830037085840368462962983893047011161887436872638049482438427704746887347926223625825483609866865027322500394873623715699222967148917642184793722980572687159937730715051456208696729880078121532310833437218618751611024556031916991799019910217253596990057401456909220877287554112470500874585010207080768918805167002045516242250192937151010462987146088400315136362607429147615493295471404853693526354510454066519459255117051477375340989654058605135134017924915981456539288272678310507102030599828671203488473720975852905567517926166733483296444034649145673963280104405079075276863748822254057820099453507993407403710697575840622105440550329493680909607024119191234326587489258021220635637856795543494864257190919217517231875695063370979090503084021527835336639207184836290412437789153809968064106047352689360722591841918210889094894357892143459911690799372641141272151625391961162814602887493272654322441797858892818237214835561509936134534680239853756462631158146930946010920358557331742966853424689045505841175767442861419805696271282920619711734463753177112644247113935437519974637812093085874618467721367897863015424976428529605453569059837139328086001840445378856828351133128023214802334894856877951803605683261823350461093333310569309720668856838781390571211165453232956932285723695737905957173767560292898118968186780227312303103140046986666876681746739142413252516294543082549016501472567003140911723239778300269827569690822212267359282450122530553692884034750410372697236468832049286215003657453047937838025691045073811780462364667386015981765325556776624975199626517312070215531730241402720412575667385405877743103899234179106828578025003375466532057571199910610763970764105058321782401518422636893319489816667849509417639875070777467659161950001042628029417589355351809892683028170212458879987985271210254578122706402535848289852733847499761691790803462163489570216778982720791080979223351894999405029501771442243314782798034474924877076488401238973546350084952506450282522998705910453598866427365959522384597535686041163626688919408517042922622047130582480431565316817953125736199134697391150993077851580260828268305070379007915534807535884352917679463914977512390389260132993480446963938171884920393655288964330809779938745412516549747990594619464651567944099244284119719684984727059477144345097808642411224333394408693342369751088343223976479442676974193981679860328135084995898630947607275850717731670131185800529947104476863882168664222710010457689145140440341724373837029598088900964691057281496023861105937558658510522775377150116220240447453162722403388095310980593866757954211774101077874959472436037322400647816860720453117514591953106388331002596493991065276930944317680537959827292264420286094304461715972161317349540008250947756168983076565338080894071680091944153883652592181487648729012024496834809367813732301832258933062662981114560783345052384095852913672397509987644684031416815380727771889595386117334903432023616822822672288261871949101290405426075407826848375846889098640431537628882270551283767161121145202774587641386254948997675648601948087810124245659726470153085435233165572151761678040486820930552694991631715741039255973975595063065831134893501488785878117405742382996991941072780419963848721615527139716914312548981406797457944246021843153049975686545760115513565912147718788181181846002146216446093431959204276705575948070354261581021718679259815128024136456374074295886818835974286638282942668807015144827473023567696006152472015128701254232811290167003923204260090938279367721765233743260452175847563719756349723803841737997143856489024659771531045540927641082439950289435309394408090113757579074958857843745689433671283377855692382458305451284524930531973083487492700575188295663687154201037771274678017770717194311170327834583409312103741795561295833262403285430925244307642798536157588403581979921714410614553188581674783582951939655117302882721708978647651260832009396751009252419168292749029826473645169928297391190078582660191866083784494778525152280401443595257437319877711680144517798288242353857544656387620645921746263925059250622288400808795112914255308160611138661029264638019374213856535983975000493896654436205611614495582063787231352762037219934985413915181009211544046434735801615892379811626709064119394365676275097385698778435455756271407982157405628784861267052014106567857830083447289034494126143737423294757734383126757809963575338643551317543287632229650014478802146333025682022854236684627636328720036397813944713706120605523951831997702531191240623240086995582698669997342518314582447985589650048702807981771413891246374325633390001922770025804790928439864398840462376824245526538099787541146340837240757995796078912302347964711110533488240734913347233966022899152288446404569031119613613134519483232335252803485444482089381199357655724007735419532519502521051418724244399150682205316952868104557418364304570927593075510486397002097854437432028179990891214823033058285547892699718398669115464645288398427919915120219066749785788358655088292292229914490618395054136593618577723071658992831163962952681126161887409715253820109157969096534857315042875707916143491628205842114464846373452404201670581591829301015857751791926102657886606935132375271420349182832207664906465546905075655078480772053887472333281209606865501411082675200690100122243710686596283415173418583835741621551009922586589685047843711397054122232157194126502769422703879226023287067626160217726808939514960854145063102310893870059477330838432975194784924047241508488426417159548720117643743131521142293212522552514685939851199389337258268653947106583538402365232063961942333812372047105080938409169614742903734468449387849442507388884291534975716065049898842862202219542852962617485331842096862595714975299810182448781282164526259105452454509504478208719835002598095044577487695296974856306848582046646468346844356486797601859520567625491946855201416125680924814723889143906442708879265309804451138464875770040508164994811388907229082619320452743389131079770975542088234585388531100474894493540829034183905122312067593728522420493490007109400592393906937247667920575438009757244381018800348280527961181386028247601399491031081706722135408804733019144179314537489152522166326361917234369390186337341425977032257501667585056999728105785676713100450989922985533993696692690324286873939427753156557805345994329203231651001939134562292575206753192214497355583142535152895233952893750384363518770574390830683347095967991982885372621597593429065991977455097352174330475480794577502507032972001224552494188371852337185931149201689587696424658444295917574071910415895604241865659421592577353159898506636469077381638586714208840857848677416340102043172881119024344170468810574432878998617108460807970311153552857337672063633110100954834562836713260493470812846381197401461149360004286408078190289944160421507689626791870832045716382913564272811527488429527950306727966500165596627260701974247799484398387221944083896245674163289461051323821782743406149546977518474380258626573289080332967110182416037457891484765372052446325714674299377633518041762313551213215635100235828154707021876737066733142252279439512023994676981787811694138201670632693337167921977343822206315928275785732673418671094715065005862183444610245281891300121875266506977290906288539724790736388842990637370081751264980383712156212218320520396128370041368634898229811465616617091665073600655490754162618287701199676153813230598918917996733646031711875083844097732016701704987509365607746944310892204328279740924084677235095482416127988282393384898991621608315840479560115652892359762769259142399072755324155173463915406180609226831514277644259319486188673408963166175232636725595805973448366255367486041662782395583295578726183569553746113466195178846872429958764114847719177179450155524674702838633251878569052167474909311824883882969889589649598856338137826624246076155929522594073982285798886656215463430701301045937059689139485854622782439588928335543111466561954346371277887075568849844895407649560589287958775289343312894736392019776102357871988377570679333490632310000810924632229085344636206788324930117847495131558653628926949599448306613919234461036668589419166450283589095899519012119526546402518301242144519187449025163058377718453568222674535206299287473917624237991004270452130724491217252792029875950460983835181925690652956167679984596427693029412504944969259099202657403934007432364084100440856561649936344674577696474423316565479385538403563003790654925726742625803976249181888006895226656997007507025848137300970163465841149893159407871873545031527531657270438530909379659358880804849726006664423908794757822228760942023417625536297377525404974724230157770393438964217578627036055626072295775112345476662895849076344759108104977067068207912679808237839050233645523680934719090530863206588410424140067159909556493035241158299892339356091975663492916331925555995162986439164436981001015165452470749597957244253936824110427501850495381429551971295504825849444268219680900210234373331163085365576333666793633109363684746256666238402709071379606398856013229863536455190581021382942973248060745918707968006471476892654621818728670789938792600888228935949635192101968454945736610785566531568831323871331451101956021195798765109352977118456365748402339010886004099920918633014390992149635206799283395699286948851973890989384421994041967603004616341783813706676567016172449578391538791981820881091067863362694535370031331237701636316285318541202900207471527481708798504434650446970587516690145888203001061204570772524259762641901737014515630665457117710179636918973209267740732753837528144532895342513550378879754143038652731510721839877614995947545174698893270589989330962181151865008646115296012915770723193424521667920067247723562975900397970427012384581513631081980289712330025348488030510830880166328175510097553656061924741692882046455833383520617947140964872370979452850578676546259557711885133970561461909395583916916663569048377160062915879727807454507395821489120710036653138408391512291659407705675316683759223284254014662335809787803821396613422697082517942051108890908864286963047477219880537639976561555716670579209220872133991018486858225898909524603107059877066317964805292096674687631957369561442432261400826800353162049969903970525243677496533221916474752344770890784540185883663147271358698707821158621512132423734524270731388103961758211012121900330401826167709916590583029586853334551174854209631963853655804745555838997344169902521705923450099836906780942024855271714125224134709376605838769835185027803263783290278653980409618119936743778214225256592581957132815943878157232501886982400604137495263085751793248333900118501011177410405800146886619837169182372307052757960734016914813956482468346457781055252583576323145931687653078712856551794172381375704590385763063817494510762425809000524125254792926297685163227392536678674475977306148642287730500602604759057611092995858860657741688594671317762022779860171674463350764172630818726499906621021938240377197473504332489708888021528492657436987344361046562456806273161963213549749635987394562467619925021880300410347709228206120344182230022265810273487780859459169799894761763665981844297007362678179887113450717415275880336141590787530195309330048839780199882951887386686991127523171674554183065530025033815710018619926100897455832907454176423772761300917241651452680724183863182451008822487750334050124849895347454573483100705661163819943289545264537940661859870167935145110978664248564152698510468065781962482480171794978874864975304223504557427075078275328577262897635130320986572493600263101884450369036810957347251423023793861269822184218141430677293097506163900887359070482420124000918869217431930022013950797274276012477827124498472650771491400756377900674212890270153158646521496337343990889476633952987132816584128177773179115222047417903938054824981953926188224512969003074582141383446803078227314301486679685445748932939987385736349624049748781864725606608758934396697435228250233344691498867560009764889667743736949377217157318934497736758512306972869549472977831055267337138136226835545540937762476709121811315946218147962301259732558799463711778076432632703833839570665063152052309281640652805084490857434606906460852915716630049927420959515114401038318204904525775052392713491299786543351421627721138240099012969474201003021537871851620668414172682611661392140488129146241814498320088581652184224168674615911642749292608050290596393419518729606825538380873397206245363966417721607354219867112091391532233263037685976683374635158620151143319956674044440725491986950169881571582062034325604884791808101155578220230616622922179297935457356389739949601189644206544195168278422804750025648597501806071840512510414199443212267428086511869630305006120615565433369817186638223040724985158955504778314232009411629141268537076596049873391914605863722695928212805542617313986021252913190601249618342854803928993559500758637646014691327155712204990806365980974076948346612855775344515279616178799314568190564281242310658449164243789008470881550345699977696469302960253436172206161989474131788579089725304103955085580065193244618391284060277906841003239085238257188884191796866450096589354307663778188400182667855816733698099055283536521126354628545693440293568592013972454808638220617531827392831963297690347796776984346701770234211969702308787822089942736586826363838800238728247416407711724118326366259273954658470525711656938700635372321422182671094447209327556890184959405342585630164331337424387477915060109112202504165909842808939093886129054165305947803700823196187360974366261341045175396017404412494836678159216119065960188033902888519705336016945613776203017846913142184534179915233121725151746250560434390097543790074440304311448195937843785828956629186502572303717991829614559742456937146563008062609169193004257994198232960150052298259891123381292617255348909903298222602693777147083313798182533207977849317330008803388584274943029554452846982098381499530165674391559261973695018738537593742310094542506890376418469698536954368390968364307721469062184162676238675414764034432601968033238014167807445294228911598455080894705020879265475691816868353533966511771939617562280495033341823882845353825338895392954854712178051465022754614493749317686963816809436817442394920927862720467252845880617352128232103902746251792995831108796203120117199830681201730864058567754046881184130620779223484842497081739646851325109871182943855228706822216315297952891677642233737754590594463850522583312624118093071584309714677989145823156543421604099515698760159803568226692814747932174130466514903552060989273185994921647294761507619473299240517845445709725450438595871218192663836004621111791981377641826236263442965245224236134712370460508522493480572916155587419778121139364120876117343021965193701913681695685898474082755989031626217919084448725176155707668070712605646767038544686202862213514536278922198249628972000764006370337628098792541806142658287315437230051187792480066331733127396567287925153732061809248944201928798123389955870750569178318840644693631128890564865916930419480937743133340280340719563796009388036360657370140461980481064823930757874091444982994109588970081373928008035701901997160291803592689038659930308026242377719613701481900204670562320895657869782379479408935577647475112149278964317551388039377971849305192331503178514233599883365162430841823528595001606105414356950903242793934391020808961893823095249984021398225248101388665962988550626401212144471378166742390639615320889599649462022545424702748656115237643786507004845988092962426431265367122948830623900113795154998426287511250451986052688173919367939079315743273331537811303634135653071804645168370993854038223307861700282446885680787442118695222563901683564751479520840053534351377186656077721327456445766912838175594194448899043350480560149970300639041015380561828159988467232062670512696206682855623268580028724689719059910609458092505189665468332424636111133850149990965347840183883956257539651543495747111724428145677296445529041751368736441877333502840098218206972722488014683984849808481705848017214842186681141549182355897612375064220912167207778230979464505476025255986469949217086050336324793973593643332909431468661403759243975089008679182236785461686436101903380030489378575456180125018698344073218975338336530413057833272972344614281966715735208306079175488417674269047988948402751420473068720085290966922057156152791361805802556939119632656389333762370536725152450112854664796939512984281899056388317226692129669690602419388431747617952933240992510966975278057515145224683299484303286904510135840565727225111444653675712920633261393858941620649544636678002536390232151606598295737914130681936628446515056894228020757839980078788362843989672618751621310446372852222586203087811081744410670593336330654846322687399896940357221706816152945700187575809997954710222074056754788429739983467618667349343206965512519818876345362327834167190318009847173438899696193670400766691548257811695928809656159733998649042266933423124111756472364854785804652297066169295500835162065295041943674094595687330257255438793522719972352545185673193529886007139639090235966698042707395959186163399645870010134406861223296928423132115970869650504597626510292724196829809774824180969513946951817849232970508359657068453103888323997916690818547605193183442480234031219586524164078427358822799413488596735305428310124701347606928008812372173973564676078353387002615914953620112035744955335524308053750566935968336197293193824042073176277476436644232655216668532016862605262760779540098037854107739459498216718782789705091251115578549013954754853797814278720486712241678636798669046969082534817436434529737750706720949655602453295374565280310383254014078022114124567327781258400211374125114184889188650405893337539339438571677679012805428768788704928037751921910969920962436536082929557573978661041339147730658074200317259226689949428722661095984882269365100479198961989805496702374444105550605400784862692223734890383815396879077488286574815888248767421361233950183535035318201772610873104140612465685993491939018873133187781558666560096426341716379141737482351286446843508161981729515402903796902680262437440075570602968532401297115095809513926265015391657392248491272127195233356211211176699850027687300155534058763214575200547261904372643039637741682614582540460174569665852561255549574942472032521575812383542722301577773360144653062295709240149850543294419726373235512993696625543981707198468800755713605800241463158789345764420267874774819440460047178476497820749982260112211432804292620468872462406462327965776475053083276375447226200093325703489114818866478350331835299282801239496131275261544997725642930261570223907214436532913831189055671716199023663257036314966833642183599132907467978552941530896838179917758339088579279179263797907276448963785308263739635315617886555356151198013741331556723124618807298268827042927108383123575848628146238933403224232820082943159407326270493054545105889771828224737445098266939535091240533158729726799911502539231086480137579356566530937844024912643627083260350271371586312948517135592064870329099088913834979929751710181020706075809647310873376234459601309605133556405781041749544007754639593707162318364126930365667089353806446729736365806199091615221477753949455033507846766289309381452470208548277249848312126758826221678845804130908521586490993341005965166506271566081469195686969850558289033741244118183681160096174306726617796577188695562144973892767587158998681345900287772767294588232538655254454350826686697824721380794874226334942372500597006941435255653002526837687944717851623392132817448481965491364567928825338476212871813225711050453581061744806688515045706155986755394479696903372396276392254121419812753937856769241716036955755712976976862753634339646795714201509253817523709884844307562849321332092094517028113255654020254383953079025775947345461307514687982940061577047593842376751687062348463596548027412037966578788648669538962435213914424851438023011590776146556291954753220918515762585667554493996651074196865639965716989973900104321451945397955855440637907411988525456781791054930848237957682461509933564943685447044235822699810928659392170344379882610830625554745208190458752474803598323025209695007928897090793494416225394032217406734768298615170653359139462153243978104649620145617320220888698826183426937068076622965205729147631271095171073595168224977905862296041199331806281761672873713712219160714769612231936598757216788350296439868843087953985055560137991590070926702463047095307333177685274431783297017298081078470129581494079545016206145191853505974853342437061423493642319086148573439804220602687403225623285124981572269468826042740438051498038589408182069417205340689095892182001873087514394803002265515974816413395603002900051805328635003857715171759776641761884681251463836379099690393571798661961809756483746097031071484594297019148598376915644394173235039882463330003139247066422468764089673959233050437361674515134970960129654360804500436790290474148130220080275365026251954157374686806595048546518188942725321846740391821680288381364127860999029856002288642626013649985741473702617601823285325525264741877396405871893928936310786965886941456911683134828685401308104138364145805488886855265003496757854529517868389379010527205430296463714868127743095719294370557330203203976122619485778038919597626156978120921672178944576394044447954807242177850788300486480900866283830234065494482916166410908199183833634473165536265203184672901378592758510842440107921837918177060125331908275174255896972508874822356925842638674555819841563776753535220067699648150886155520911374817356074189612978217488638654441062831208481681036734748208166224484562997821712358372364754707695307093025086319276563034565881018743033702054849507292512942970149173258168150419229391696157338278908417882506527209436169647967400722103642604695106056946314339509133553290019731340064596886336778488953237271341795795126930832842048936897098855103617303927300139707008291047545363660272126063688199984301982730061174172200838642977364173724061705396905245424978804944252913820766922837963316748274500923418795585781900297512976602431572834365269259311825056369373803383358988832451925302598060188611962397751825061125773559944107481261846299815481424395096370901424144645818844656063649423740408847801376083575020432792704245513215489906465668081769632982562758777813300386781759261995106100429529192679054340704571420758648819982154404584878204674766291298396935048012645044840685042030820278245006902783313406209774030295869712113282438205075308508140154539789300960485999215107109525775161753990216079883881426977875974274132788736250594528606369329578565558933043378635958061673125625820758447089617771041000953462086956517211557718947794145281663309769941577544051834827792454952280283164227767739443590800977016854158257084459148792237157206643823903297441239202817178488883605220981993461773874004764323578311082402189864095560974848623114141152582727523975817183928786728280282749749136458260118353643595280789074760520639369289912711087417232747086970622531801340209285976096099307600194012907790291046887959063851202149882117367943210562415477954417975845182399190430105862918175518873431559432786451249502428682045047253113482471959397884552074040104569326034798983456644530758359363260945273234600047111050521449636478655919615613402902626961699403507697008126913526221801506825831018641401961046672855162438484624319484878004036495997070827813301900442053777259109514674582660186365498150609110716191577073008557761679047001376782896074791156245271221719677946257500082583609686017297340330628694846854825911457811719599712281340659072378979394012958313558986614528358840871878539461842292475238623211364100637980158787637607369616975182219814262390789916343500059947338233227068060787302612891353511911151560573160013385113924325514294886244812014546668484162088381129089044227523063205963094365518608444450921228481512675977076724375719048799894989144884017846756491154135161682894017828129728547959675989791992136847849770838083710418181222914999916104981361402915242601736655078110615673388271216033624847095795553828061709883222762218800299515222654629998481345440922595202747885976557606291908356143928643560486954423108478298869387769241605280272943148363726142004357413298549072413365521544477440230680314294462648167419882646755999764960105247713050813093389493156558702731792577355771392900193042344369683801276696403405460203701162495803381435958553017670143647134361712787983675870348257541605126458789600171991448270806923482217953059246931779863328851477622455688446363043435972008962091216324238766076608210177262995480897280633143178352671152338122946194275644169418998938903149069337172503806571817931656468074635047181501937365179196795385119495020563784826085365501142889754165436113661948042078985463282172088314413212524189525049294917434625850220261490513978896158159086877333575408762348517003841592807840454031910700002226341808843965665496566447656489902197372247914911630348172317394747363599348836388696957909907125078574685333046430498641598477426421126957821954969998487511751699951749028759918441628837966423668289726277861070436791113736684531476388060933155811124696724448801168899177870242435815166515017388387800471260851734739437543289777273014883864118750421035669633954124893935398946601126877422905514488835378139538231114894357580338027837216367363890538986095366839043878175727866559884417387743704301180245061823500778657041325863858423907120753779985414650797345015508785252770815681499893435152306747569491079224941069361066526622021445166936060476343471454324973338897702510162209711428823542391204734270405710366270108531031442380936468999169611887603406670047676740112073048533981696083505143086227071799984206776663362610472438310595332393881627690904181452491592826061294128459002069300842639648187348691638553461481333847428041350346846686439804871156115683346648918038206766856457219115631183807591852289114924152324119916425529410744563903381913263009494457884945902145966378298028264185247475145312976620803685445362467107941988131093435100483006161611078715152918054085238068327228560540722862666858119021355622634127047256002668399041861288433073498499562647687545726365948167140644879753737542637894920765647890848177007767324265788036291844018220244527688457148716982338782424226316403965590522461113160465001264623670878368898829703502638558566806309802783182384497513592523105324828601819298858757499639032615178501600788664832631968732160904270098137692747227286797562607781755414684346608297753389712061055768301238449822617913386545757741938726327165835021140870628058121110575491720862152478716107738479513006792203055866955422406731944387170014531544681755426644309319464880642516572008009720756076124486512509949748750929400494539783197660365370413758516638703303562559687875138647505544975161643888966640318963786389195149603658366099380737561827833202463157699905020875656310675613343571667631840327127709759168615742874787300973461143800997591725856139142016594536110129333560834685193769607180935050581796190666819808635580883616411249509220524348763652282872517459163368213764054644982433916668035429507392237792670403543781116505907858407293163125758111742630899935423069696597837731747550460319498417196543582348246521119312764979124694206165633615660325539430193207872030472568188524805310494121974513184965850755808629810199349935645650123938315674456441250539582151116018437471978886120169056901605872416166933932603583770352695311539280103400209052988261182221628329520929522535557728990940060417656627792210498918633084057858530783989950057870424986484803537568776287055753699115318475552286443468883781162337528468499153285070570855257921891327684952091089011075474078335614811748750497836510815263114657062124630919559232172909577141144285670545852961923002298689554138269038147465787478317744649883389577887309199912578883812617547056368576520685457194631134295408502959044982438146975448183170173311055610615380216525447400186981662711911545583123043362741428623700845096647243906141426316436971556579723012160240102674999422064603070067982751075430733717416748283470201004058175556131134765918387299392571379870289309342953553793960055353074088239033523999665739678904355111764314373672260045649776904028989633177265352477352180906548996594921144653224858757117937727997992731799677666016594537803767632603283064250687346581213382439885770734258847322826617277098122691270091613298907416414923119341338872465988655265159793536482021270772785788428885463569018633390849144677220139509752047471788342284276823959390040267380976360247543525105333013390490953108502099721266697726398865474381898277077581234520907778864217884893148958150371957171397083897855538525103748145413636262737455348011248427900847004190085753234937884059713312258664769849281434422442340752185148465087603729474506757755702226380629232326109588234454225016357747628476539809653262860863234400729285097661687348973326451561783074567541190207982460640433240403779209032709705691880984566390625905281517939075756411590953286650905435660271516707330401886441228146031960601423000581824646569995512824867320107781554159964218141699042205660580103658691741463573766391145954251302158973863404871596566303259569476067623607506412620166104618091298379114996994653853661407706042151274357954751053846889142845835446759783112594998498991510753072593369213455636049541107883337408865515677465039790877264756013192710731407520796258327063453012850911468420176833087725764620800249172056095245975263316270672348194797712205429474629954702736936430160364752709377492217187988025928486115815766912300056870588277418219663973727951257071285240666828745440932230283604628669053427028811065573852038969110833114446089282439414022607059060097890146763068970426041965881587806019898593750936487963138926823346834189904046119767310912902435573886319942881064137218430768056285805097079278604093647599153726623570180087386443360085903617937986872017346529525739012646436946771989731957491723306832527749047006685344431194842634625794995447051677002643888503146561660505291042995692861575522493971861491522257392401149657189061284220065201197600462736350318448826301989953535076856442720848261532687376355971617839649103177745412521309163531106361567113983201875352081125633799947001440463253093022866445106608570130379365628372868372930266188926465725548575461007935050720185106671261675174641434213780823982657491582036408978624382110949165621696120163433525553455577325271706568772139274031273670460125371516270302360854589061700388305339675542485625161455930587180552445506841286137487513119423017434904511507815398446020285785514754322371109861302497713816070723317204049163658328608806487986433876236675876199630783185835399533103355953931222260063000251021776635454874860799599197499907531245848692911596666946752747602975302344900139518312952372420843422181230585308615692968891628205885343688340885405064192603048001508482959476113729612337047993917189850518430947847722528119628194616093416801317863929998111931444184204698209648007951092700420398524791761733002900569731578963221540277247683434189925603217031710171234187188488726199343275263229812628515062808922237781432656111238658658767830690630361015005410902669042988561374672798929085921157783151901407374079736780428836806754368091645596454010639659333346230205845758841285754001633051966336257992525869570600617696453237660089882502649022833577069301763770202615460323246539736128331240615521861352085526128101996036987730124292544148704802858987341551231909508875735806268289476139120182647442980251592187189791794660702559025903195995658080917229844786276743940119698485440395803996136640801438674866755876565226548074415945340396771721892202312877786851538272346206862531432237066497740952065798985620383949400726238295827679917796550602088163808328118509469288472716011284569340993112215778419107080162806348426150520136261955133267681925899237617361498400095939236883838929221903395715095546858969280343630843599317555525949626574920674335436447098601419129764391915275775906155459785409703191757986422101009823664101596013264108602888798747129269242026311256573822343371374145829986731969574736302090920351395262903330790248453430715030120606090230035296014372623756471893617942396774853021351588124330457494574863665865075260135841025315251076522270594072685004138872750798846570913091338892015581915444715515796227703775440360735577278187443497251986639456645957407456645619794931449675295791682202495441883675004583322787227317005176796703284097740200638272369755181665690957424402644870533457636969100640542820850355315630937298831390481614982097939701880088396375545746696085176194004059527101420119168094716093546672014213383419074018430291637638210959993845812099037154413634180906972901867873366800315677544863727023724253269913173252865895635367234736771846900476721014970800859403094850602919515128440745015321001606508461651054971846221146070552744344685123176762722382524966010299556952750133930090727021847791626140728182793310979788631697067128653976259959666532516125775224942543423054461113803964896732456160010817670342726030361520011218582109979820134970124182416162458619565871510487395590324127614171980837473182771474295564790334028034048578455377029601525171808883170620384677967779009651624662484598437854730404451388410127161626729205782754308013194980963144663758872199012484603866692458669432931980855437401422146906779626704620891819018677581186770435776494152766885697344746665547335019520706665948601321293369076559530871891924073798808033075292839722420536317753486241929003255100849181673674954637964555849830284589741176952250764732567736050725787043104144656467005362307310212574881112607938422654921148667861556973414316240273932702948982542766289530972964195226314437735032824905720656587786214095089404743160937217211689465774158182038681735111130242936545247971180929979325531541828634799607542436795291160316591828264764475789826620160207288528838567571216445377983404124349917287345916435484910410207853937676737950377320566179304814268520197905470911679495738161719674719092222287766753568432636320980696250616499919754134843391221442291297031655384048511151147634408840034960616975452370762249109440708312372132501649248475824991754336263597077498167623018253749783844021263368633516083809030713418823338406516683156318623173871466929312082892943011407752576196491017486964732555015541501710716838277717880609040755573435439106759750418070846478928215259108177026732816171938984610960378877785947203214582733550466719687304291597376285558520256327325745374339673349387850712643099994790827229195029300302609777596557688653558614467616292737301361146151632894574935060096552111280104721758041226974240038787317476709057917085783561128266180540522589937076511843130682872635943265529812208827947583495742996693251420658908834220523812452321241171999102757864059060326155962655080079192464868743441745085563995287472773230712677602461009265722571312826692553931414941637014959325803011743973823060786893275501960239977935789022035220652233921407816517732859755710647883321188859782377805325435133314313145234956098132779235094168114441387789364777105975507708646091196828104700005283093636213885606351145338145775521193459228125385241369453274143635811079291403134164798175892534052384666369835443536530271999632413532436717404270754947883375933108368350503098299847872239939307228297863769649952930231704833286773346063078571885795483836106502340073873539652710031378350619308015144463449188809639245612542786114092008293777220238203469424315341091398288221216366916065735642408829324295110138696514042891114915761329633514757722529068095819296022799594426456976011589337153672518272457829158267536725363537183541921588839206120715942433160055512453311073652382355399520418076398855757184719460497333551477495314848235073377706911794407492777197855090190850908860098258537491948755028898632450175893275091666609100032223425002025414629088518840066955804982091559849648416519807506078211121069769072196291286965712333717284959449586922223696529886952985038321120155376234753999701765576014927861077033630548412522664169614407314325742376807861455759780945661010985658170190548233677070832925625638685088307984977132928194856442692948858110457862932838870490223103396930507489092463780773658832921688113897491542427328855982565095082548847230001580321851135743844331365845520374636017114391925905831177627756948865118687535030420466355743326145466294466831976149282273221083636146576747252792141205905702798331433444010749012531262617652923044387826913784520617650942363120831421956734867791466173218533976457116859953862537662233199250645672588684035956887147482743617931801511344498130303288342422420305582165944501551620861104357528964685592479838296704000290161650701598828791513989541339972043606799124139478308365144611792803937782197365760118588565653046594004379744427122691545732494846486472655499981539527514892767935058231671824250431754002282047524225433890875192043506929088339902120085776570606242195398669596754681385229800661417658094052566926777452470764895759117459963727316862890100121715999539007753440833531982136122402991482997137468527668491733533877150429707559308751144679391143902925111943851955295283456413837428301901015600179848581008509609393962915385347217135043036690631140499004057921501725229220310186888901091995867245804083493025591091446695193240118373110502477923412202448414000887340887760443849805943014586936838708127152958951616039959425404666236255221405153547077141873242413039243692459304641128213605423727269147570797456090778866539550066152628116661628118914861107996424219252342408562925977985784971112480826537873665059655541353634592303521084430982027141158578473528077246422448436581809300504609309213178494756586607512969990115494498774293391816554293216469233261637590642527076800205897260685515110101732972711144424055925171798590746627497679529511950644976356294446251400941807365486427555793236616485861519949546287928127457503300080490994060272795086097796057420886174027810392479503271914867288473254204472238473109493138276933677544963362222417644031912237560363007033025033783748227451058509559127275776382625015262006606922950698353629151575338954761706395342402563682214152837330946064319816488220873206306603611415778342230980105059028837737206202187211492353547852366798023345385035927214455894089479669872575411549837570264770612023301351432680863732811428141170156871046445381993175633561793479676228126336251034786348972079984647609711434468279807218696775842485818925632777174749087200933705354586696827736618870389546031052062251124245334996189216071642047000120427215368277320045234401594876584074460134825159441126317890029534334895840910963127643934055891034229598808977822938793985394138370570037470323748780322761354424685892505890460763848003689427611945881496143961545105781632003035845199226948479905979810450008131085489397037837854604367090169914309905650024975533858977324733344126932170899774544153839916224926767251062652902689445934718339642793197570822815566679829857005079594071814592923069374518098313154313392123800209200599809147202437132138944419186421067431379064445967137801899655450691945721240059878209275957664808021868227323685119587062897917982464592228919848577425620284697861381506463777098469346178674493905230029627893930727674099438832147479944324483175846284862958611423394532973559941633832549630711635340155745806014441357331839704299867632247598521514435470532213851944450283319264975501700873970141634331228333966700358948237044134356542188216929456215774131229841823050867470805303341990698108936330683697238004261637829879593562692899783176984746272150485889007295208754278411497572780172561909429410969036108577086803146718298807692545724962452011419062432869627512312677871044906290661127382982766865962909777541027339892978928119498311496584299542248245593258377329520297480113704513152146047134848223149555601097637471770468036893408014332165485289196512180604063061011628213072478388017360670001704466184828508439250510860039009229835428272215455184830098985769921972650380778196205501524734320762874468349417560856608067777258893317600941406250338829128649256400728806548519650871312318907343290114934703530013869386530687630982217999025381048589991366038721251152736654674172682050464001322248511166303813417055468518557006884455932121212706752074491560955801726525632313953167078159705421739364115855956434835322261894533703043555323874765770199359964275718849511848993853805003416165563233984560098896954767370596070139131006235796088048991826167210210902472492651485120820894529730660169734540920020230867563956121712398975926760882619701902280779630181760234511268149366553862333726773673752973690193465805723630767623193860171463122078108361223271343741266185076280947851537034856201632460754672687533763320903619572275982098981923573092992231629055670519124501491539972079894487807738044199100886905950179977449842230805129734747584853632571705926676143723527508304392891661978835506300366141450959003409628850676212045042486216506091380151518930546982982113589499949537794886522106362460857463167172400848797775331720426793295522240593487552464985256974599700837295131485340999011669558220823814431570896727363106694354865745105126633219275800697994308534871978456657353273355446950684768872844629885585003401537560730240675352828180375449178764336209097689863518306968618419025309064136032006187384568998393819617046235480017621926236334179250246672782336797156631044189027892749836679932076723648293592844099537543347497004973810902855817832689253434455157680490766208624334358673911429916125391358392149328799126980650992406938786678794441434649665374198526577427822489656505047020556829626127463879100847000824352444062250543304902103204292155506168603657645817922068644987701641855377534187303058763619353521020954992305453579515521518585198457751026806372787651693032776643350262335020503403614230826391809456945497322931199323438954631358165348963178581416438343566108734946764633417071732454871989992273036079157041739455411690964303460440353827368480037422168746133789886843677447090701018160573947497778450639295120261405397697308175720180467630885817090159956082938693892226759774160327273076324939243246384983834563600987396311906062531803897820634648805339980298290022941235145495348592506932565302309146948729905609432071383851231081532875007049479209217963457912544939744027041783422596599056689924902325895493352846782105529620042294017033988764919405029351295654680949813574063882746769066374943517534381430165323848954015472691763041838975614677221552743553023129892073018496864643853048254838296517132883182604928948374022222329644431714614449636247456101920092983426394597962617237804759083470340444836320598953102615537266362167967162043063693791046227481627525532493541438751183952203578792159384504931870306450906856349968608750343126162474455034876945152774222837240587146011544598242803333645532342181919265919037209294969337179469114745975720575636116519458526808103291273819727866848677275549787210767583649800444957774450896559026621738410374408913483886291120550511500629481415072864648301608662504204275047222536901732775474003474072429708778527458807387844223424570151035738061697591150703884682863589745261368880743082160119294832604062284051076713033053504217500709199672546326994083582933599811074104055444935994182890699598974166513502084267421820922474942867203401089986588007001722605542462320001498851880010531344349502288863815475708021513776911777670614928411517803084852926117950857885086230835324351846065800377102284763817860041345229268483955839126497421536173180666840378779786841246430764866568390512161290864458851871183705871504326061651873831965633037001525585053338024220657097679855937105323987444771203857897690088761769542462610586999064963061383634715458759967295684874902356984831355539590603362756861026041789702572338672941353937410986259001441346325692018781668748752752321539736248011947386961416579507363671790667593012980604124583728234219127731547086905232434488881691762750023639788734885500656282269984987953308849024722257854830365254371251371055255913084016896999525543977706001878691891776524391388358389034708356277589063204685144079697805343762461064743627412343159106086909661164828724919990829189935207918270811254195054033161410701829379323662696372818279105643710506952050870927967313611180058058550022136194784017609582941128204146622875028139903693388551885967428566995010438368878645052707705942487842342807319467884966076641823196956947780723331295670516140744106434424817904522038155870626490171628245022234354940425441674608381997867223203680022761599572571960836115784590044475682603982390025274643384628638348464085059343613887523148571166797319590289738508595562916812971671278432444270784690320310139470023815467440914679956090758828165768482166764664530473792028468971478661686740867225968352563335754513273550477141825923194299574762275795973883810460091998400750017524148038735163737301881813947257987577295608663395205642912817259649275957832492802178880868305338159210619326280925103219331444459523801045084435881689300989724398603625634129928493345626179717293049956869728696982744216949468362881564837065248768749961765420275753433740046864601576228458275966706406840211244275924307459291099769425799188067498550952729283274790243060912587730612922027931984984395062823845543193239863945331775802650172968480905873298733908740391887794324747828865130901087272634065516195432223053858570131351448619046113716273847299597995908485282574758881181319690561293466664756391264325598685525710339620843863840474626778837580589885747903579130592927432071637238877271659015919210539308499679472459045636727103979091183144056417173921857286058717922617818284802716888150329407119946853829065016491589105827126992234623274418084258511470180973719746397264039672113028409793221260598789368110851833139946720778865998017833756323635790831234281433481097224181145631460736914044075337191632956012620973723901215626132560542965609829010936281852852296512453767301805461029605018654924599388910061871872531543332233619991176596045846096182603377624130754662510933087484248361611746369639987141074922605157999934463071714352730850208602537146848716034204614189250630318732080025579274713378700593765883739935615654116330945741988264684454770208321772701314847012312633432504799419797346029908299218687763072408633414353953139714796993284753527393539414955244611244140712666032744435826690158831190519186090442643680622073006780425768587864556855073369997133085615063443141434641571998591724119462337383906306927496624132144609562771097578416542819419448111337043284740623342393017836310320969843681902669131129310157635688749359836733281555360873514945286354071981896767761883870820990386348021356918668583850151441914534660466747330451113404354757601501937130759828431976010714978276020703841455958363404284686492171671866520283656156329539689955599764531877241400631415485665611113766457446035851382266276425348346208473692467896281293914500689260530424555627479311631806882253634607548076037351418058566164040708242175507798622401340771063280636205739198150582887567532955684505057357664574292448593599798999272867492681763912536597537917999619735472363621122352242583612690804033318392140221095964993132008207131455611380623248005433315191155420987814154673149245744909477007842584070861263555037158549732755547958993134985821353921729207436136114030305023322892045524377187454508742693687233361357494057364862640285617823291769865136634872777196303227039847739962453376436782783452410443826107480300791037417147573284655230012819295778369941531015472108720814939616209704845384913744302588005556454256540062503119406274679920342076510671309484597262590282763510457545854797481152735258499109948712368210559158374914001142190281015432074394606206796813911669790176372984495178688481784304414963909653656749457411312803081741399103313688769290463203302115091530466389667873004189648451625708839889778343410187195702711485059375002561421475949437988245849716347215747313697736763133438036079513665682635591194032084820786849383685726005914615134586817150517538707720672843406089441060118578461534845790491016846123464054177381914450447460628099089765266009613682863681475761454226449953517884449902384163347189379916919677691627651622020699054670811302670096846946307186943059452805241410652520895061558266209295052754044066945995094870733352806387542225615564253145398992936566505183631103358407075317261723616342498171712327294389117333358526412103531031648639681174223461613081047185324194227669614161067086199713999347346054627364134939183449566862372388723533971969079682162273140642780650565589736960639740394437772339395224195673604199845006980222176690924963699781998802702484884164879006377771778942717782494098364972340838274425404072361137582347880826600379087854846058618944000348310792202752407316656313318739508965829532373995769104432620962407525596443659083187402901322315789370547556725992007093084575617918031790102702260373755057691566202326069326141789455603665758962029056766393512111895514901661415009571830560378387018896601429613912341133485690749165376189604805152494790815919124021689612949295746292327651035777762125180526205753498836088392913211256155824661305193020828094828945127279822298757853611398549989693868325749468658813939354619488804495987979744874154381333050454865358611004949585543364371966864374076019486541857876962551447675743174155373562521450864175930415538108550233962393793510415840902064246994149898831098488119086229619921383647639259125930258809617189014778774334074045315009546924863693338406273599557948636072926471430660845159966371077759353850034445936889864169228474238779051233852704930192118994471288989753636255984624727258578749385554167937933338824394714961071806877630129123541483625312587323471593296999614302605566150340431421879271769329586815188786789018446689359016735583741412184022616483436856442805640122908093424735516415113422219965903249798607015751504657812120930568623401734512568393359895054887989907912655638897543298362389167083055089465861149322172542286509984018255755468494449512113814458423214965624438990892571139445159267675938079975528723546091826710358957274369003185059801046143125014919592150097683157295214313075122694927028293122419675383654059865547070527750470509658588401456438808397999008747774094906507854103804868913434439172949488386760143299193715377673046449661800844357582363082620641538757220121310575768426390061651679719254732474450283608720681958579466989280224927110411455926773630824561579971700729048142016744927157571759320080320031138636158981015888470304599999009061650224808576911779575726210262167440478644971703011282692223436524448039421786816520212094315823401483019534847327035875949664843875882172153277919228325434421148263641649175235765164772111643084145092394739708014728638707307946764149588502881155518024245813712060522853609532549381431493325286038625251456671093089319339027091345302587636271059826280143256073261515972573522674504503369226415610532399700682405472107459395222610111447555733688525023852542801752533621877028123897360288233788075707131653516402688283506916658019111351363255001683068783776244817419410048610635416161471909640993139053885698688056600857645336867521836046233507605576855480295276178669476663506635603497535915889814210760321907514364887050957414587301786747684517765984139500085993030049255262491063058665916646589961252777836905952007603193855919875468208297460117251832810439402252926082461539148131131640152661217151326658526715961919213735409837946513168146675063962106795941982211269658321363995692194444461839809693080192605054428222606393203339344218800438115308654193446990537059567461507450348690361536211601542356936641332552310140555090616265329650545785642457393155384010697383573531924677563849989340159383052871089183746287791794098745484619559063504736080738581988220695963973571808811161899903590591637137366095019047529607710619472884653398549874272458314300296962115985603719258409631991945066599438781906164947633205401597265118290063908575143220464898500557817328781520970632566162898536074829341147899285392476887562671994771453218692775662622657036551529375435055767230340879270300318962919560644278812872992443846275624906144768587775037861678439069285738027221680078943335930726090423776806270519894851212670726793443869913941585760269291625273797299665922315989246904303542311445954642211572113785689176700825600181969733814522218094208829283270725481153545193207052474091774317675182355929721653546626383800761227847911981626381243237982720299044347142893359904158547452553053619066986444987576415238610456151459966169786410371247594795779244840000760014335329595096948638953549267748197073227966967038546080636278822482268463205973926117154311687253290035989243213295623143936349299071609510314756188775090229845700446946969715231181691620959187169576007186572610941208699421215313056406167332386259965624726861732964303209881029294072857638195420303606106125977721543999205201431236089453924042800106279700633256164121936562991922204181968500059061178500013849002272918918823380381872311990787555416236057533878534035418580759362345469834845797323237115107776541309874277766848115491742437547315903518800150583347703701962377859641362517897850069089363044619392173780941660753708316026821722656095322373186311127069352837028097875380273800227539623534278210307372492332352572958050443653734728496191885662854928360204726364286152733349588877776594798529580666576062722738008955818302230246717668743526557041647847271747932691901265457432633443256965861158085231376063591830833108523833474372228090933862300351298597179606168002494366705219410540637411220971017294903509032651240782488092612511529848306781839863775917182844738471819252388918674761518013111539145171510905921232480937807882375657551109593960588387175578372687722769372375135919426726802004888514182538138740281486137565597722693573908471544818891733493608515565274463019207871555597530711529966473053064436289574999515323384180316585656962955088832995246940497664355810613645590369444662223056909568574047128133928854890403449625368650834271523580198754938828715367410828498455764022543496979685803973543564308430378863793494835792365896236151636225184833743527144597006082497846100639324012835591567737793509927483228594475829197225680961755535595859384249197309519792900298542505933814465032671710561922416839416248568287739477847579951749817722791783305945104370558049445737966525041434262965381364280668883540512981949697195206293376032041402548175703434795312281589135362955780901739615322884107127007718404529548945677186102658225298889348082006769885381845720844662463179550139245181762218730085336577202073514629109061332058386081228412115990578610846405403989342616813426689169735789574020148474686398187676526466123347439695186242568580817164678673685509616336962387786645774336564373233822426313757576768318170698641085958236287037063161375438300313396086365775670758535749187905990867347864905504103285130730219555892889458203763648368925127860704188909275589556630840270616994261106677526225977686706846304404654002323634994934471563287304640289840850168209597263153752326244841374295502648327298638464426011703379271644630734655638669716904408340473560712247824659497856990317996920131508338323137464123471632633561097806954201578735175962190243055562258606271183265974696338134505564977300256555774908311132835344848502189591009639103681095295142730220084081741036196310643930815569734197178414990691367909753335609219613281998872749695891667948645771094802841236219466356015884725917704677345186893398555613415868901545421160520594957260152698434952051240424032498079125606870872695698634125966979314749840396532810182967962738861434595282061407261373531037083359250836993770062911790399273953316008526920013141732675743146780603515753890891340910792846162075893679525870504085178911613533763076148711352932751375364116955914915794165488091788086959371372286909165231154868831652311996702157054871983887067625805085219226538272572611403904945214147014943317649803448656439921649710743540414775536019504423119747032533050399579006986173231050959494675316211171146372573652143473502574754238643529943918037658005198139517651137995152178015165371973672573872115864936758963503847008141784331170322512626114819696230345080129517363699671068209610779364388123158703993363347018696739204217839543003991852543522162566557212399504418757367551041225127767165326265387869189463018441362340074561275448124931114319352983591395332870881282212768371149631260920493656229678463346438989618615166088976481653725368879372714451129212129770419977822984338076575343021863118232804890983091565742040311709751698015863076217781400641208418261713252133091337259868425725535845771178114870255315658443492008466477148304327030806104656329062444359735403932032901573016296900094680045723195645019977196993988608904410662000218602875094285547174109562026881161972044493330898192948479619810464165233326016898488128115233985088684072222631878825733983558213241138812302437408837470382914416197538130459336602951063056729239684128041528397406165673977528093664857546853314472042585322442570431353329613676260122845415339214995913846295313433184764856740791930090052302247979444986365257992431316550268036869002384190010059973956839583551347080210897384129579907881578632359385474369810966079217005333934327608428628234912365913322335177459600105006232653876906986375780133327598375869125539033051864083602902854035387079816969562656302595584006783314533245063886958968395310012122292024841501956588420704819816661364677920438752519662984562118222814819197786597129743456997780046193503571419866140505525919637572551445716653641611721309388288818483690142596604901453941989317891549609161190536962902870219677346596277130593423000809767375904832818169405358969689804932054769998684142477682229588347832508607847499541980490215408023726646037679272263032349922121831743537713061821943364409068208628410055290920176346207583817026003419406097240059812270867761564575291747002376710875490764813874365341223790456560120304846198007031978641882777494910236556468172916125160382774168031738643418885808324913204141970665013506403200980252066693015900161687382367352958352795781313010813970937156752192639685264690773536095187223268370280254992793195495033339945644738168303760140098666874602691991819596859420671163717546459659963321680436942746447019807437530483987891029487398445445407619662970144461053870825175965128426816230119182644068157011513963178115040597143559889682445540667826414417740561700779468500421808501445442971731969703951581714766319750423718723650805984720917470347477085890971253974114891032094609540979337413235781689585280046716358158658286607125919822010655446409157465076107614687667862709710762086436690759616188638773875045293756591142612577252278618434184867846894656858345730370397598979585611657041302787602037165651649357430887876014019738520061978900561309525061096875792381936860093683876601441241645024832728941231446301003378924717193343787799622648820760394063354318688475608044590095933562631368605437188201159985099947292196821379759863744556121501334925404332377938376134764121746975206553526918304786870147894901183539556771767125149854177308418934712177661701174608887801628533972440158464158212263097925223469552658489919733478419224608565717353057805655461298974550546146041571151144626586791416042998336467613707809084854773545553297887384222390882630854163343509801342798903606963434848760680538976378327983142480237893648448900412331395460021544317135820908356902170044500612739856619138176781675766894555395016569232474947527195052604370793572013872466845261141754481908179082267441002284356753951626010663384019644815897525829784081688092680723824450468129552891585266439495814285977655903488636256636972807026237124088638061411382603955633643610138823282016481963528155579008768873177840641824602796354964800125227129002844707223338533848056988628673884145813855301586692320908486638916699368210787705803576491655311977683170141102065674357367421506482143853616350741525866212556078269778746466619379357294188880983902542035444353868819328727864062454002561908334239631266780709642535251571912882729826460392255093100454895832833016920069893129917310881645748154829765242157039383944939137541329425618696371427680884769162200654554314876548942078694265965004538023034389086181536550205742162093277690977654986257528321543774408262702432743850520544235808750431824776909131702343211057406628335955839058739808687706833597248035599272529096310129704949317563187237636220395473800933798790848179325499121881261108403083205032881499839608689648720457297387151328463300759194955182609568765327371939727064917173316976835355322099670746680783233280038383725707958045416089837188467945250650367889182592343327078492752939914496448173930973431217560198634659459975969833092483128056828219774664427848114645805313151905861062099280932728262645133758159983596402011036329882134264307861219813380740500720495799461535046266298142027633391644667812702539890372525507156708968790449363615331767348803165996730772468796950736528337547310525981698963862552912734151226483566671521730010071970418616262130239644858043043128582344817647906364752876768832251933959303628916434843686345736425447482589344596994078624882803808274272161538439325763132796193207243190383243074603664468615826870711229475217785610061908811152048895156870259254028614857139345193707107833313647773070608382187508932582331037616872439128089815601138104051671697012970217128123011964818471385968873258047934353349868616358552857906765319242373409626709930836563385681478265590014869966255195318319840161091180861100054245628811425325731796973023123862307581941502555828434509244350261598247677164953845388553914440449331658647770260275034989790883933128381967747065346130583794434825452476999463091926146159676213954901489644141487685315046601763241364968120160471658943085551081085312900547196432420634116818649839938507580512348132102015674653805413014065695559921194297686473072433760423916345969467187569813629695026659613301945851773724850728557297660131394301051845594793221372308201504184488521967374107465246423569965249791813958759554849243939539917606731617373027748873795609558605368282430542685669401115929325664287264985505608175926916147967267785172856755519451909070810533341105584436875102086993979427187146637863881644231904562117013977890595859036264413573863481065940172122479335147584359364953041646479363449533677098775111286803685946305609839065217091870557161647846122983312831517284510959202743126379026092643400762887186550155959218883909421694576628518263564780583808794663543482760938675683939990520845062439422609408810169391516350606181388409045502690703334695281462439574331676672493958801058512596683613780694377450539714305618804706452790271690128178362680976317456410412688946911987501759284992990007700897404626699966323510369685882739888370982430651331231819204147683831364946323377628326091356611605903427253340350160990763335032581146920770526233207489540025442539505896667712191378567900370368392232272740019891511628505308315493703486376681388755446093985288654029666804549538557786836987553064277241328938939588234280082809095015031396669246840983443713328463454808767568430437845143428729966025617817981856564574460425223136835392652183311234888900758654317251851093830646724245510228346188538659136381946941678691714006256913588722210263181468436219458013143367692978777093050689455448014350341670687281735569939152758703325127224661463205463332393524473177934900446922521528922968103732889918314327634096164530342872589026878239628044663567594788155580784412562699154169485596711591737080736307847738164704444756170423450961845685044982361878778515982336955644693714087300727651246487700894126070940307181467225815221820488338549572665996721895712011922645037860047218095603638337484164463034141902340721539608995216330691417799412728618236200411310678445374742847590574270160694345743995126257961354130547964768120002808254844593027920395389876381846167671593961457129697213605361675633328020667128710990468578307144610833561745706207412354544020163017267415527900428380520869139706435154851595482599404208557893207606064089636983047330209770016385293869636648015627771796690451684451686625802354264921068481843901136680662671488580763900388254640863684439063453376642551777358862174889575724746665657567430102085575078214936771333441395459141358828413371473515996210873336307035170730294653187064820061197867604990012061147768782112626757036308170139907886976767460567289839506745775887250479178107128455946727773506050442944185917932837225605083776940133528060808497847770385710792059043567875153215851341981625162707718780572709830462385232332672466937954949013011335224075074903426576144538231066691767935972726637017601132342328269162024510695959797469751726671892692305858125661895741190242892908439535034639559989739220295374189035313359634891519458113651439728148454985374474185666351992361014751062446859243078562698444211713915650296247829795808872886565057370199093425431942984433713180673923366781638342260317809117124075629446826502833922330936174538807435548025055576344328463185487046332099363193695696845817230167252514074651798378438988450329825013545512458674102919291329573502651814651313454755962315183380695960788485812207627777704084177230327272164208735473988160102808236189514915847067607364677870899784189133543019139005909737539800364147460594026357476287323194848507343887313586063499740190576599636472712068022373595293347017688917926954600708768468933297857458794298672958333964584186978562096045868543020946094755100612597089344801292206858836871774400961568409311999904165461287596707612126450626160800571333413453340382473266941994144818219377459291344664696017282758250923621773129553376890028152321528190345825189327979103892545458655705081115800591037649572350594121612097409676284559476611225344296026282942840616119567661997634432794303491077065783668712632677260735351164624767059721263956875422899755175836138351041538622412603010888444160205257067601771343880984614118984524864224376398097169507072500804699388933829812451564293061133650408160080817567493646952181467355277308203731274481306168754832348676919393373464947309477737949194765719929260128156447709686433392730677158483929082944879257479154599317233645058594539578135250587578588709119129419960167602588455395331592125403792652509018704642641878539689819485502238362533787695144432683052583892305352028045243270132726486521196764477199286888481555318038810627354508597883702390267305072003954682965698709926510780439652841394689554854404268841816926643969070392479991574116940495081793046946089086950364441462620581255104995481225945249343613396909423773678556188833503469958530461883343583272961177190295757503548549513557534923538862156537723179975128032831328903930138888320032358723915649207358206524610732515608171403487592801039901580070486919482032531983919284745112205600527719387853456975037304110607283956586916368249490741836747791560525223543422052664350566961910171104336368283216860511087286034568808276821181237906398105148028366391832656706697240457541140566495167915360796078265636444154183768935177211146062261202986057311091282649292463252671990938481344624069415996546910692676047005500604407856692793783839188784977740093637682046396986109815406174461658039419839464076572921632796282870182034755826638005715656993094415121176840157573063753398876047821794630161559011051466733076537546313008985027286065806427207813942065076602700571702335892506354394959556300441434514084378737760785682046769390067941990630785608823890536775259218956258254431386613079293371986092866720685081277251602852538686304483780937828482852764988593073975601512128742735952432319915491388011463213245799201642288206005420848662703255675327431581698075820227378167467702028202670137907149138269344308553490082050457939043986994489675227903213800587695361167830505382443539030024634880462692822393084084913872217233445897001583297231604367036019218005840399917379519854504534757836791410147942988345652604198415648238706806375706538369689331199571667763215815448678788278363883297503217673692815041490046632018269840513811995371454186930294840243693433928656122040312242938070707291074377408735003983521841990841690036552858457152765904804390286667213004784400263839354277577824200762332223652794151176154322498999951630066436286897466974050168732611509945218178048125214620435431252180400905829275254175943488457629072653116258676887647991492516456798704881615671462442813597234347076361297841121089749614874733279257932079394959458010332248503677696979239028374404654497722494469978181387237276705245074015379636992332065419057606950404512090786070337304768928134317532159947409308899463932301252914234874110954717808580332628028902628935735279497230893326362758506714228950630720074468237106751128793035855221099426080321733028467543335398075754443684158981959824866673833298542800739375228427081492162284668553631478290555300591821254868950391134013092054312771483627312133859382822875617614467005306118521913789681304289583694366201321966051098952172897681385194153186289305054066659662103686721490749662226322816755392550192518059136623410610825352519993896577017298042006976722395117727695724844573672759979954734031411121347838493730891128529119131483471301400568627515449284574560752708132089350866360919537752904958394485428921009941164281620777253878552554291850657112357656950977128862889693704732065065835603229045788384808585873885954180231875038757031587321404360463564833933171745209941552507526398261757454033865228564433243741134913431708390229214327687288730319608634021899633498252508291696929400126880281054807018829770161481080036575138915292558732340766531260822853042191489488984791354222048636540924657579922877413942144089823452793015080639272706554067257217991110817068374471379495314795071313630019500745633774323009581617421856884471925729810020216897845496314921743419638254894304963393308854368909152720663767407939003664640047658663508655521775600749043620893764268959415513488261473447973957015717097786216738198664725881652269160633308483829860270094294418698582333435122177143967369553363535627200784525217772866032769838809290706717936068622999275069745316114730214401130554471648891241782389243697044463415435119480657080002873390566384376647132354707749098646329000446448998086594902203246111227376501349653964690468204950625251645898618787106592887809162626096927069151597545720154483211656919002711467113195976401895810347203336767482962342194246543482368718657744170590916513927868849252771999212109929350611984650973500769613252892768573988081206503662662734344447016219991094526893912958037648027556111141091914095315568211407863133749482308354469602818454522927020339945777838780521315979940523093880020604354063972810899049683385935814912840102896759601952228020141038195347552285228245593120408072309646102126903510773322005676028721537868372136711429886679950064081560201461172162421010133582320783059007230612102869958464540164974597024409665062683213009317253780370088059017418470336624295061835572806334535512053763463275862739676420337923354633847372094831508500123754737254260543810896021970821550052792465200877764558326417434053285980621006171336957160137627123667887261799325558607195164200256912452130717198589224944576858166370788312800663276954781383471491252432973041244592021965194772727675273809549931476143113287621647522542359677606936180918009019734022006167342210615422420261581049847652042850087556371010567835043458971438128493979653049130738665538269659891896219771881135010682973149092348937279286880132938912142459983544674382004454275162573411358690770340306868684729508966192658928630682570734415229235283947460583023961556489571872034193222371714794171648404389061752000833168949902592592094036296578453423659246476424815863424508186230189906409409872321909768454412012323029439644220272416552829581273640197979408420413935081352173918688293916533134702406717067404562811457400509215409981783663502790711023421264540903207967874057736739309823531213849068199057956898401744353363364617460902321055210870585428748317061774034640390757322652583420477960302479671519493766881929022447084520017235236751283477944115676310875386146362439682116470445025625057915481978431542458914737180182404136996549260948339799971487273537334202038883558386932228002698955876115481239863125237457233664519035035171454195903075968552605561466957605846345544914395873353991156150430309191535833305982896481939710255697783980718722097030091788598152978332893244391324732823996880552370168614635259569249958336766085258825861117511388288277019385015654788626234822609658505630568643980111843535758803669720949388674314944974046084665703752006210484723870744380682709549579746917146173076821749447695864076166694503004005307050332875365429737942004493590060107284218859339434923850382283513485921175783147283452781398931911161303502590278201695460508806600953907456385864624212174259178592678195511280584680411930328858112892164462785809527438504682538405395333609765747500815311954227453755462449679254675243610146841660869066091754368217659592954175451585706042698382870805963828721533369512739897335332369774213668376438567006296465214918168401293897447348082037275907292795178922872782992069532456929957631447257719254829222961408680518438142105707554788446267738161858887875660942312995720379981822044290802743482906804666058143863026974547072401702603280530553369275430016210653086424240595084307491766771513935582175526046406027823278051565866175012391680058152024948988566900116895211862184483275904341256337967722304303931540401340462089578859050713491492633762079233178156411905964967340422758947309329739637736463266086043917750424640463635767139969398359144876070469926186038637030288700687303347318923524843027456844861712288246333625806808443253018980267904076237301886070991227911037228337851886569717564349419846873818218517011495769383557736963039363954418944635630050356822910049153404491769750604848195098575747398879392078023389380119203590782288548872525288939235008661385565366250729881348427022954994993081292943468662744047157774609692784089681918729594341330680231360921955740727141224119492336434207924060488643161586735352888240240996463313242594132186286010611970517695746401586807111795389376241173861065422881954358499631189766909400540991302699646988427358575933607285081155689752615808110727023370809076228824787886522144947718192211921879251813888559392003831236564257714954867142909950150620788288258152274565713356842181943704315583124316794881073528907294575320022461916107575581718984162077792081961045828920336866363322224608146467245156887440529741687080216958058780010631480803815910293579940929565151679914842507037022467887997123551664701356831635935789925272082051631629404962664577638401937074455725750265069388337317730710737074831932485458814947352068229676752180142565587894238383646560671181310836777142488380628637310039829336624043309966925226573788942661817443651995653842892034127314960402687129454100281078011058528125778491587657392333069299136419808490240244150505544102231866777747201544848318402618277837111485769105525691470552744275745876931033545413070992496364130661984961591707953332527872548210370648574740879553499334588875871540816676910228330481393407336627810941588135977192058473051565801649123079995616050476430020671179925632982050946498851663616937757282874901202309220900526629477727797715552845929024647671512939888360926734306873414915268649952311935438892032428413211960102775737004617969947771543836467722623133885731162178332515820268000654858107170606525998531893047608704265316115860382713791671574478886500523097985784727467615941544084306875161799980906897334770241954699054195874996695553098700634016654176172115778603531648161544814184788854429030840315277422251440258737443043799787770664117299183758350240981611712160620683175801903251368127557975705634835343402595271944345286612369118917593504717570547738007384822014585818755815261797244415738213378066337569335469704261513425140963097293035482733222696879794374474583372835487930591708647221965187794933359431020768008816871376595103698641734357871721684699172427054679450314783878527033804589138451115383839747092330654763777443470574238503885090718072436955158596613172493974960006152351805989792075159013954814645024243694957118356078677542029892775596648537827950816048069928384951981684317523732150710718661287036610832477731878265648636705996919690783841371851325937426369359837688378747980259083430783709056608776194682233115967712225764538467787828529823615036927650542756305390459458320191064010870200203553730789278217981885900298543047680367387862798883196908882243527430578855728899448008096748481650217862368949024659646735348915158967285226913133913284129567413474317747391716222048158297648496138219350004874123493845559185861455336335487710841823396355192552198972979024162381861087180368202711203245051546367925838824543506065627804153061702824437451657921287841108220076423871623960705382572903347009320802337429932525902560854314077994670657309550686645455436828224512896914172094216985077944797182651186561059055410647644372228839220116282610102594184728547182170402444409491124080295228045084889888291561956482749911849905706884603183954276326295415399680755312545141968541950329536280190605444471101102596332514410922466604040486546990564884223427118862031861857135874964571925024500113169482445212597695442579881258707667369650371477876787076727040802257297169420451723668976506461289583031116739733468536537899896569945050910675218499597538876063519026914667674164416329938733332278797501757238296349875406993980486193896886104651563981695944370004642022534380517525106798591038337931336732375173824784143629306349094597626829953759416949793435085399742298778558476522946147075987321852951739606525141139666232875942783793127694961028092717866979525299813306791339107451150404610081063629489006868135121219456982967922541713624865403782740290316333310796395867678992106377596078284092092051915741352132347715762623915943493966329715165945840154559703164986815790636878653256516251761473432349351761675706041535635465489681173899522366110604561899591737685583518220679053115723612197842185056300571663552218152270759723922453992631300035933160391258842316182424723797859058878479917148692318915178744696196815922768952277513417445551361142911236787496137693452087777821932402399891850908537338984579810478083230001657721626595796383728174005920467843158974611998304618230539228655382595573119150626052144688774914820639017908897508363284331562112299830032830692228835694258430926649298234438437658590063769991043809891502909621927371241037864063646956009853107626489395871854284558093579694867368070700596675224908261812505300781050568790964520791368629045072816213525391141621469369965656252382683556347209515778651591610974206876947676771358916436944363133085711289241306849016345691793278666403444932894600828344451052992104117080195755782580552303012225216913573847927867714634947791652374157363457225573624118052498519390295284425685593800456202693979696935709291273151248728317567478372423662486049810662755845580174786826974503635365828868818398753790858102179034757809987441927660145578849114252422567226434148644157215968895044561306481274256898998918053154733337062792381577332765077870504242771810035213422065839736184722294183634304084358450579645228807820671185590939405958481550202766840308554017230707740138965141373891213173542877517089720163414612521761796599579941593151146720959779435737893744170448266968278390337077385250949135314290314787236266570749729925332637768147009240974603845696727465562660935566901956883327872894410655268318317651642377305984602136608147795174472408223235675218431801459983958509566130957203836043022319086082149938391867763319188215376206592273205807694910016533646232651543769650989673669678327275538303468329712871536670725915220761593455680328157253971035587459045364556768055452522763235085669548002991283213417957557617875414948002909936020407176647993080714667477465824855639169120069560278133800582545061688450685690636429367107986358626610624357562697785225057194547456033926767472897661428860207947922010298603494382911071308671592478787455972116194194258964455629315180179689668549478185803170926179224648472066983481918818198720605816883972023484581195766960624312084549442897593770533330672464724603091417159353003009866532422317841419907538881447500113780438912652034282303128904931756054593463484130616532319090338925631460703568696241880312073257996185264119986152507136196562460720383667515103953701782992854281259390646938521683077210144587803036387781727342707715114473910889023093158348469681891203954058550297291182734023491333699518286446213920899165070678117589926255477663496996665697392917241612367928662586775726367130986559857483987639169655245300865663463236361561722777161111979906329873828896457514605709928939125321273440161504124456547062602288498018676628630870604786514851240478632309626315215720404565032404421139907547510900338666468690590624757227868624282783408357882128921276807942815752816565894270180625040580479206523628112236181460406290376085956552987202945622231173048070248144207462937140251743762693648314933909262761144192498159070892824765163880513343997680049436402145405641438095694808056405722478077015510399545324462347086063573024933047654878100639388910735149667269094105012887299912496598378122023984705025668766611940796016734185443449092423248108680131050475634987477765011640248949427901966946388486560724896939506456890104364971697492083548751332634534098048753813833336607862014427198669503672815088535459086952960886288631808772164745972178620007795484255057086307590979570560420987768447211580759511275448371851984467876680037255429564343402236839083350287281481762158151452831060672795808441012157845521463620075297253713904161371653175074852006779730126421095081961519886391618304991374021533909106736890661576687088222862016431090504047940309111033598984342801619745089414426319471406389824345221546341762050166820594350778690404925564530846951060836934862957663454101413394936603740152796706175932568006100045148925527756797271224856107610623908339008531174178924840312243832272012370062116540819678934646411160115541133028894598094337058638584722228655229953409178445002360143806365472154798742920839478882708245548984587913577791688125412708825281219656455372603234891584783597532716202069377263033473967016688128686082101952953861689816881020247211478648490447038187569326306648368540439269046621062923408836185026854492906664812609532146475673676065134402144478311728368132607158028153969842862815857013698138647553763897409749342198469260613276024554459713266209045352930655571971409225533802780884865405929119726901273416426859300178933845397287626327244787750590179665418664960164804203851296147996451610945761972929261705961601536469078401166831545490249430378632253501129632559886848375434090012706413582398848419025683150380002052884303843341464124621390799435687100552638241980850201908710632094710154505483900747287510501951647154263315897898777890737844535810832474370944052701580767538102087269033488235429042275483791357901155706074776296261723913528917483469544296349258722619728922962969890728714373261234420159780661575175940580282550893973835212170744626275945033377684153936579729981769055325758430006721994176557214248882200967722268345599060613928650830896070289811534145069067275582765479765616577308803204748069201107949078979269244969112356900446898488980656254079403195167583608220152059027069266410648942323922211732950394039451040505312760905990359757444538210359945965543961787065694092413810758618379580082386408736895748177379418699300612112579459424147597953081938015452708739863323173701174331810918441673113362556573456025422752728788981316334974313214148898843054984437658415303969728118644042840963266400572907848626856492389315279433218403921734456427687824722905544744677134149747031213573177059143337794308617799115571068376623152823029654940195670329368807203610790936091319165799280613127446968814210700171802688620622660802259691096113571374266810278858745930733207893525793719066116511251104301271666746726625169225491348550842899778002461441816402576997140499241305153445806763147687593011253709797147508058094397693529875191616755319579004893942716136000066952041979987102630213160553136521604048981676182179118655491465542576757496009167231245917502023103860356017996388232510814406875001576028476462976788999840711617972606712767501803054294808969923002987471522361032630985437387947035440907766001245419620080896415211584733330368979291613243802155643121195904888834893073688669224791129716806220898370419842120426142396532343801852107232131248308874485190370746227906340446751454216520702210695869106656344626158093150284295601551894398140632796943242188998767932230182884098770939698032672102133869898648789577874226795224820492014147808273197774703364896219909497805306524627480265862865082191248871231455658540425421001787930526049602640162336448892212147161497359292372927352424147778195186544819795618174312261984514910170569578398904741820030599575661481148577077661556806056693696624917954040404832228161343649554123172640932560759366596738531656916715775741369815261898870367365607360538519593165035737305967623013108813281527074641092555916432825904982718252077106598627488293030973785923902272076069120607899100476333471521698928402395976955927868151095483555245840590137757459589225349498742745473411279176378647712927767337495714282535086120428291756143568688997299811069209063344257509004075206032478596516356588943078016184418187096680141850642146330837473687615763443087605476923342727269347344811075514941553681689386283211432631401698196510266804838007207268892123825930822306356132968954757162001600486763218816974371883840430253387413532416025246447062874365462434848953945444352379474103939408837635536991313029525003328670727507556322270176641957136498900834433341761628403156798071045778937969883738449402990137369794244079431057655337794978283365294769693437858141229501388131155491071534698926838457056907827816667712752091475181199688824590911279365901728374638507730925029337889222391139619516810391588718903252249073222627426061990384172790318684386869094998473855811983429432096777457032403017006325019583357870069028026477389954429953254895915421830663583727261278618830097036737693870677088846802830303710126908112891190411922002567982965334814616313422412778587634814817599837945868982091725736520453773354768611178894323013504730561926867929864413296905789541589782485831234847170455463765752931799828849685335405762472419084174849171053854947334751380370626563194301646116427383620236770037040268576443742981575033111984853364256281642104625126047724154957135962272081187409202177145446982442343204308486681735121931724635337029072960937725246551654982712767544949038071392723283498369216693002398315143982575933486163906393578777067663661640839555628107601800327561820366696138818277944803256524969648867698980254331665129653831497794342411650454155218900587111534868949472393824122033232544914014176529232946412839954748579627975459904001061798380399251847531279503195569243777917078015883255206930930406758375167251515205612208329077705222366270749305664983956665277127083073765403812219069593922632017844845054192237123861060948227363433540737362164696306087741724631834908860623161078138254872517736550518699516338880778045700962759083263704712315337039436607110691269731848509021861901321546091766251067127581854062861042957961003412650440077524958899079006400823888601062267835935290512838024368169085507768967716832252821033933283983809383739748609835917032264250696617609549590238344138111385387477779696999879396708886739301056074642302815353699584666702064996013685257761778488629636417869616263733750368497737090552708181253007241465443157809291414660564967153473801047943991314218345820016519822093538607491291917891065383282879007104181939440236955789413207296669976539141915642505290435160209994163972819308989688391672095500756806726206934554374938979783191902848967355338771867580824378477304525211436179268449376168565682094095251249574623180210813426805428053971212708371177972080378917785382171506547227903457287626135066924680242876224619811371131706972806278989179808687130346592749869283200333081479516843519300154046778199431292743193874375784713864943510879648627946970127427018344023474025716776628891014205393897386349789046268483410655866783498399181882636928038985669198219128000963293228933712896345477458937469973220593768214414549843062725001861209903116106771671922116002618372448263456874652224585840041764896054803533350590348350224335639856317925822951945566707368858163982529347134362848335953866514855608804696579678665498566722191003149273494058021356684794085622590108833766422314584772479571206322870535696532616254863922561259168468697355994091162858065389869534851125184932418544820476458085123355541672163532671785586512645426124261767281307558976009023189915576069258153782033937905514415325449118177429308061646955582354726921658774523818102759862986174867758444622883020980403126265950992880890143522182116781391741466845519203254130186561210293476078493840360896570198603299804120318714566987723534078043124050532224824294519820091959831651139360690044458662123706293365671367375372584145788638839152974468278569141626190605704947190987978697254185331423500217408935869641735926315578536422701579318863194878692539334045613736933013349821648821985344369413805805646348340924760516417918049447932394061592547849899188239985608646210642734326188861348678579304260063037380972182815688354142872992430111207995283548128477138736909198668326686915843325528987953722198109763708067716870846660048769233017620802174355494450264570891962720200938354293919527842592720890816578922881437054319340810997521875038816658597250282149082749798267753768528334585310655973070631423482928032729210193370250228977694515151726416141971226233003225955180410222709841396372187571650223976737501070133907315902379088250781733847546294864737438564182736091686814560272297797078127741143509038058634147762131941101663693353390663356324028062474497391183985540571855218460371777351031519448467687701342885055472761714563858036821661479392180288567975182352835142172203906167165305158273548356239549086073543639716819260795181046441744275405262879489936209470492561464335192383531926892494079232954833791770201363012031341076789915989108908223229089252463860280467488014423906984954392112681480425330012352487365557176511369246504145898845701817178641238378244213445443256887406166214066167694232856929298692582783309750946012759277300809719226258267553625415328358034200655808928761633855827327099224676990299266524287188968087623858838495972841630680893467059833295214043169905802485100669898911619254894282439594863927591579936117510716103242446324538948755346371726423208725246400226210697127572076259371138573821046365025706123812572308752747266657954332982167086819222449755872223889578308333274744377940205479670507441635996362694220480552851022633196226444147450923819437423571974538730916516023102562508442924156745444091250479381206064113782376483931332416779979814008342355000579053914878027933695451097148871592816905218231147054120106007954923405908442166972719518237566698872041403904421780692725767672119809119115923346012142857016375958398328504134084877423927324362957369671449928426908296564893622961806583570373479356646313520545455407944114081941822667931167328336024769799809176269639879620127677969103979232503941671038085344111673571756075055362989765777256571968739712864464417296164794129535689554229196805270658839941386067430613154227947552698814145634549200905652846120936995097087035588422764814022732187129268561762241583699323486459366925893444802646497659144450508561080514490953868425459696910786629151531883484732346850679164630883517341705058493574397658019970189038010543033175219266564898742116695644668522390630574062481780855906046455056630825546954154114210015150109578048016930754482582094588147076900054691653323802689229227379123076695310507506530488209777214088291438766205663616736923356830922148292709719332119311655775397713214987327642806374307652668193288850107943986470203962594887186214027099078871070689441133261158035961006501752393620995308745218743627912696763791582935712274960773265231408247798116242422056747954803745702530747999926451830091968472219530870845000088893853225733857433675287013577726162981570457821699052816930919214643185908877472622559589613831862590423658659964125581213355067427561371832444145321140986777487920087562723680643158779280867536919965972060406949695746343660268763130546907517166353454808715957210885730034796870923824003007467118130355187882285879705371429193189070791101859555448427664996106905261444586506708487510964748751907624903512704157268513070222396113946557809800432934482401892689545050142401670895155033709090803905996051254362432754717043246282057505987173510864257794307558472798044106008245672424671192961554490259167143563203171290247740985193136884991142042177559365079933496601365309765219340355474371011224329703927262527813394758031480467084983482191611424721844097647905863820879740667932804120371326474684242033248843627476678230132776459871280656047797889824007072356149283517154035546172802469552282862404165740334498489701971754445217099777861257007690369341405958923001789222483832885003476908996560405620721910328896074479484329021005730296077952798507645883993546936236363810575649316646283541944890151533643889994140391562858011465702451397343866069830472574739220855613162688639840288902348989957152491280711305235340798903184054390026072394244963734350230480795412123192693800479420323792123575493876162330458095622027493013297851784800398584096772048105474672374950287413563726953098054958209422874727605925268459856385826306946493443421537272581755662813100449781503568387274949858923930621142463136587455052150119469756619488296025661313818426617680359113846386871297379610022697519912352420505183582158602558049419290908878245677136769116762291617238256539208874304857680200122525657738500034607008216029510650750820679875673580556728366086319781336676418506706527427492181124552553466982652502253904624202592732466292537127054759717387120711008303781042586175956158681188785131922244399951776907650649783512860405817742009829982902299486991441850093083444628379005041725146215123778733829633681715121816248863678543426261714829953138426967596264680393224277552798368134159115811796286636303925336209664581668454684900125626296570668461415068430558032793171788823075205428116197946898071884672305748086276101336901295254567901887486866684746415631285480301049363971498921152306471849824258120558664759158808755840792547525785621909445516765033917520093409316818855932822137026010706844813734964259528484896448075647897767839357107119146072555975282113234397839367020575321839730928555490186133310030779889396859225924940425268963416344724914499042979956570372066529628463977907741238751119975671651503873129139064079156472052434409774956415117498994294814266695556286669573932163914257769834821681798507745829667604568409830055514859848429408393978985825399465210471746082189408221084173143946592105672628498446797114341827529167392518254999927678239569245347848225913480248738328627224900315846343759204798626982638895704489314110408233979337479641215275811061670444672755467415455707804221845683392500987343353408730358552375558312676550192134159278994412342013508495799726702474509450909486956309471639649258845521787299884249083095287518667244821310827958996245146626709362238834303641292038623575626745637981463661339110945531568440163168649846961707962995325663102680992790426342873946224247942338785425017690950817331734115567846155269886250519925911117010711642806710014363918798980136350918669361640819225211301221034675516525565400120892372405559593707951889860990145325921212470922645724892385944882922707236682915333973263992203500753349305621010324285194277261644370323300635895999396033260193621865678381294850114587517864451792284126140282157540356922204405307799699621815644777419039401744565956877537309470933631593041199934464961370031955629384114687664591640992985279975410277204880222227644625440187784385769788218862559623228166039524992621989998456942018532900538128995947887683756739479395152555541866985132898079946210743651669268578936261252377702881809885980854362351854688665455942273439383832440496212684662541319216125087410593823646509137304839622061530012010305577331650877906181649125655672845944422696400671936180138745045730936900212538215380828330457704474238104292641911602337773798019739750956540835613283765809987752749762272087615649310121779136999116447808228645837177594744916984385015998437340183719022942489086859468522863562279432369181062810271430038521825864744757676731665355854787527554406427055326858813345517622475486622773672820819442965265877629804909284750470499580123452699720051851111126970075463565345746399656783880350620999111793200860589066146386737187657052104033894136693154282168027345632387665156106255235853751708761082870290918925980798581823237048217803121242524824666565716035582594552317698985326813998138639251965891889191482692065772466434950586929427070649598738005321220288518010324484296319978452386700221739143789504393671213707285983179372606398304406821314873054456495626985709066216735233560470802200619811865725108276164630459520590777175217917498343949551703024599759209366582758002486738335827435394711326805475812466107688117294883683865414391363971794985098349773885336044009548727289314357995474012948202285393464232698033733435527041221441007239271406870017093995895728819851112524812144092187737129819941466107797886180606803634085593567959574833292334485806121800206602776919552386461447128943158308751561436170816710493695929333624929649122518517784751509021784545974840700275696063015726209038598933656349028074602629015995010039474684043863870407412098750524653766320297955076729316947001739795077268314351542692136918688597936493849502752977113374125535928902757873076625671756691412180214570042577640785078541684761651421184148654301426392518257330255217687159378780164117879023662055123605169751561939607530614147112371637545842884786647768283012202782362261845101982349078963472496678907087871277585504834034461147597098525442129966521799650895993412843919218012888937927630342199191508741140995361541462658870379811220607870352451030153015275546006029061379791363519063845788913079641138839516068672759183575993879113921788813132905353721770734577099815348989176563429833769569620235087738580340539602618445671080286107438059225250433011563116683738112008049602916908198486983205640730920387143646225126273634506562992600802434404491363236169767442927855167793728705781406910020966687895798319564674662476521101819118340119874531119887558840402773151478359876854428294753889431316442046398742122778743707192905293119627550939064697227842232646282981746363278555059015375958912478644510148073276242497842450946337357722923052276100732992683028209684461926712035521470407904102237698192307537186646427057757727531836240219955231852567662276187827210643474106399712005798880363948263213879928516647400196867988046326783235580513445758767571321762485025963294594583154928718287482072010579109694773828456732209119032997491236464456763605297598308182048864079360914100299993373583188484640726697537317602611997484985885122571651959386111330821660363547219412529186778914389175430299285954147596167336653690296857172581934074443411761292129736229293512563981824488463379336251605631103657545185396394521138399053489693609229208098794487198297645246441201013223820687700423622946459416665207659023300661039905448437293510973008008319795304316427261291230393126774140517537546853104808451325817591916203416283471913899772072497456149468399254374696248120405979277526200422108015138048332244447354530201096102710623915932567791742231915794462312846077150516967715605284496327060934662104676495259211092697103470229775336747550203629052127801216386299778287069762827890441533905059332085619782604146558600831324851005460010496911238748987465817656497295155827972430874849994245228656883648085659074109889008520268779298677329994802800157683418550988825469691210707470975836054377212958452688923567758291481424560043703412752826559561146498170933355161305562174061051559242106061911387367254567812183405615649404894451069795937771295917316923292491999845148467339132711313892739790151828000199131089335629588174863894054480847118817263197687320970192836346604262148963520634439657820207445689034119610952579737802061828735724863864448636156711594359764194924366777251339734458354650240355004987991245876229770807932474552069619159405714655088667893294518103425887759094192424467603022718860382160810811547537621700736103251860040069460235091265036889115922426108750146636644339919238057349252808113713042336657267196147462443052321957895048907294306117815436528039373405824584531037729744316077439503421988561961019303078681017308065435242168941417857238651466642369308062273188827372359360857812005162410963918785828290037546010806502463631016353727087821590086858458953299621666602494948625428297445137409197235884372938885375793517600886671014538458446677710578995387978029335885612912638711647785077574043203919467845254585144830050375353453737028489688680917911582379489738362569121507415340451114093925237002198700941267592693550316928785751532499309242538467729197255979910446093557843837353877032865173203926496345000248151700293196313894155824075310137508283191475632001249555245067003069423183701505108209174100350761866736147030525875644744172721833775544645580476172217911235821724265211450022510359009144626690485912444856079907739868621160898817556917877846235359917984311692044370872593480760437868392841198094689297933659179041599805857548020038876521324586788610331713367149758457352288617867112274864023578019148390092435990891211467836141405955553435017712327178018281253402520101633660469024084438484110111778866196505231270136382702402587782073274865582435011809131244010957605130108761029693853336568892978166498102970771907884588371319636482613406510278142428833071883818149813955727209390522944815238370755637488203242015332262120283007643424110163146760348337925953106455789061842332126396904429730754805265977342677153791647542469422773410447742814146703102012521633323300222298678681984388557523201866860271508893160715103290859060522192037971013773974290900196507713492577703256188656755689573491325370180664135687448060248125656272876474546073436967864854889764294347160956738899127818007490535969666175844121484255840529437497948941189459373812276114251833228927467484846719722723596122746152154943767017859475287731944867778440825765107976129444138223781017643647975417109490852783077459191653830855073594246112974206737066656929518241159969630698988543722185084286612958232703472345215185481258490113048407774907289711748804503752901683560262090946761663485442467579941598055948659735116863769812337356196653431689485128798521457545058509679525300989285811677000684208821802487732020299023741215574522065599673104040047613800567923130116020910193876513479530174149581423470810360461731089924488076854657435955256878717763021459725328883906496366409604884669483025290109477830363337643183477466435730224883881248767105556639919526419645028456957539826623989155799378435574260874123462689358519704006804150148268781725029519727722375234033621570904267639226251874873235557983873426894458990065067602872715785374720845399931403721046833062511599754908811154520898035434108455867320538194509308237046357268622773126943887002629584773255308141069146145754288635296825988410325699123518091853345969352695645907051614590548950352290326197968258393825661481149010982809734531857139153236141214572196489260148008096142387836811193488992772961735238409296196982605698902987568275733220451150250803155437072051763077091188823403053057106818395821093751125571437157027708193672581557595232298403034459870542067329316450827554404145735544832628510824141670419781199889724684720404588807703074097374040395097710918462598222330466556243826780813127767848045058361398373679725038913030786752959294694988609813226310621870549621235875959939689683589564111227119341748698269725693046562767088113275515669804441737401540216466995284773236813435174716737475256987544480143204172963533317585010444394291170286247122265622822729436424937018707054667675066327714588073937053594003884908365916994587937179492196964877429459441493159657444369535880112499182797123553113930309547486139260638441085040959921325009633968642369171137307533975627458729674973758703712028697322160454324343630858548968753881972234610604663168708397027371724656506035396576955441898244525806782187856269390814817397488915764947542397577978041026994132002418737982902262080770874885481797900774316105148159012566790691116912834464587405355665727225122742449687064202783528688421723787323055603793822127816288246104213239903707886482600724488441953865387733455518046042641649908081823239180664238745270353314791274886922676797549497045668840780049427928272993511052854934446393852288459047942673894501516987589804426235201985316257538854214688324726744238303075285585531253646331317536996904543085100393018549896308109364107325027652133257618528642776900795020864313293472701044941687566553938178169471338289609384340146004873502869830122975248343566866670756141001788008749786695810505868788255778142663109085854889858766401508445328632069909130804426642526218919600933682134014824515089598421163124429046671877734583057449643594500636993589367279932229811050374987241094629331263075359806526891682271735532313891342846620701599241861349865603032422970717571008756628218866464342968968563066095848489660305714249525444472731324898622835256212857194850567989939291839242933346781476694454241686102641068779369209514809608992956107640684523357120552730225809691080935545035224156964870113545616669859795081880913802592957644813664062610593462176473287949581524822710836593506055488290277595675083809425150928352781513046497720464666069133792353281548774954478516080946736841156087914624999895688042888492518198007256872028284987279394204312529446792328158408673673322726981594358050310178808124379624854460420840872577467581547542864588479571367741614345763371232044351409409404080418513519729016201061951972624809065847623328271333173730095022284707453591532413242082167699398065574977569309147778196926681458634882746237498032380373101132192273891840141781705892453736475483999140237701614771684947754365398738064985636225814078157649978227479305586317791678475442124863645398716438066366988931569124832546822806411178776931018705413231201946762140402635819317330473806009024994340037018203401261110038899331476007512493439921046779206987735697709125824535773719197821710816617303602248460217550378403030108728848812698685992204720261705233146580796601563424634093405573008397354248608822342252107124855419626694422800664183539814597829995417660601472163673398726340029726272169928063062039339857639559540838423141696513395795715908608006072802576538748671528622231903792527464603850299085223441105143701980951938298804335956948000805199096248409770058384769624974866502038502198775452569361269781186584585320381549717585781852956786111010460823004807674067365763482438785181842614546549763387631381478235633979744949132304153553726321301623538433356226122624361934551804826107881197005459857321833168048530895743275483408586099566815420814559531357459102698383453233053568811002875228254911606993052489192890257341220513957915132623218011045452755797099666045137033434534971113983074415178550631245430762927225180871249696464353474792747506068977932638399692365615839949350917918198173827157952779787298425418596532410860771861264278475584112596961223286177293697510899947253801149436486089158506519050987913792035229189204871017774662415378553567480671592993340637728839949627765716587210790099802800126103795679591094568863667076068910550602681395679196716839949183087278436853177630710435793173776758481443114414540722867496197524671676142019392953986775461905163828868228616425470124793954138436880241696062189368230302987197183177375485123778424946753957452225494820799909862944095110362976212497506697354466962075464335279060151947107126107330833799201280947629857963113398586254244585891444490527768506309140458567682406272983624197194300322810367243531800122468482205730729554538323273815802430549004727785312847646854491734763295059392547949252755631475523609014676419701654202567362059441298427173532973919774921151483840826400994313778154429442190216559054795972451181320515416366852523566548041666537635471899453809969674247681298353652811750293543135440709854248352972829565664279627537494377203062925120128634060643046349485524556446269501609961948095972352420814072381143920653191842563123682531336397856481129170233514095040456722534391086415711727353048457289122340718063323386983044185887535894972805050001620487451821554583107803523186295094756127258015101313006935352241433396857505543192502873379629472478366431206766066924021388553869867855215432563285899951349578059144779219153353731009836879188920103666580482448324360062691597792369420071553871087092960655407367725419192591369286372683509951447833239164962009582180017225453377319017979805120830878306219682975828785450180844263628805686380828507271931139578826067157597130666597888785186000704167917715097178713262642887643695409996987892122489678614088539041895188258190225934691547470517178017378700766063318619337364886145156497383291510811255082262244756101735698063576804906511479191250152824911148752247782952278336538490186717507832561645435695221660133106289690767407796964990175646608800233624228681250260017619989509102498312797967903649022377964920445742247231611765606803401084969580549415836398171375303445958915365955182878019520180069824411468308061671638137306707078216734301384200027961299919068229686911444600169841286015318985710503209221562322942623328253552653248118210048814813819898477475797791113458331286800495475221185254114811761429861829916557141551943829070741699051036095291081509096841064931104210497015372642826138451665200778260179587774549461748568447073293994855122000430048526155840433680414692960368537203349726398500291631617911337078968453690832640012579342454660912249976338649032570212884531513023958648457714903396496332967109595204749950871752538546119520249824667989533249479643255162127614240627028469538398100748651313780689464741094830528847243220138686263427342737985453571664475662633941678451387942167638464584992932457081317855473844248913297683068598147451926560268571350355068490719983445945740510134084557924325573907498289366195231618183681019198471508954840378482421298955220248942397778760250295249241945048173380506747688998060776691425552909017437697062476223459414796612626751245150623133521657675310563416262678300838471392645858891337472234431246052338105511444062749809298503894774772513271294455860960050663985468277288223303440938076528443605546944964654739222680347505306648811187835365086055465982576632604002350601341273198653076854832740770039164124374673346730699262321608621991853191789485958538731480423071224933109417160933260156971943347210106913277666842185804733650159032546822313152203781751574523189404922420518525064837938854655942212523246125490932477406612997272843327382126361879264085135831415886877965627936484805602285486564797070112645440779364230362327691920197146894689617802078653323230395518547934125169583785192844142959789281471960527406627106272916369127475931490929024993108477920728982704194230073577080053113618477306560466913293034188724752291809085804191799316093971866121612824128484845316496609825714640457825401292189519931831584835932195240294087350978982909934982991932100041995208239087279791023672152524815359088831072645849001141241842802670496472043597309840013013508832655976260900277229129515560684983222997650506545649587979644581015617358073635755360623255258866018244950569770838771032752808904136318960534357922878978922614781800945693851117721169170021929950506480643911684559756241589159141949379390447926514157305835587913203500771641676004242113379854800464707482597629552675780682987168716165893776741356021753001320235976669214346572364377211590432914368497487465552124359617075497316114073545866497132710152186572967408724799926216078646759466558403322206269658097877274174330915534631763093672864623402451121481514154021772882130208948879044867800384328988011041671494521236152731605206552601976719126291007805527816151331826482764295676429875837658585276307943816061798913756058216138416678090746177058445138734717664511176030377795853069099532667260662543899979395705082994413643272268158457679502453250406193757935128305149464218861295098906392185335058739275576145891805705926378538247777168721085231494160083322133167843712216251650414007627244212759837980218602678261289916614903104992751646186369513359084610700836451373650255277123017790929418022753803030878684072556988175550324512060139767896787908184725754301041877549649241370167513871070067191656266704078700676921096525545451701972715123856770649993333336896189185199766729178621921715814276797031236911652744177650191707288793838323026218443744152172645769850397998507259775188151673589942773639608385201346178285987691150268484882383299062948927181518681027482644732788500353149141672019867777012864905326356342151512757964034616753176745554997736618038642524808516696436308707997492766135421735370057632953628630833817233339987642427546364358379173634801947802784027421053145350077909375665265799763455236126078436126294676477593804568622262132539749084000032158820229407252422787321076849008079839994986293991791225550204238347236570340427960016998536435642488897115749772881730205754809778914569472286189775475675428812413838889310256450172641955250092681059311539918353713321181107239796770845189753420779892535222937659783769563723151224165109603607739552717456964781006247598965916743548016376377570615855079265352665893145660507521163842269991804914696076607449144992308962468991264925129894082409784368400536270435834707418616663153717145014265128419803134893495890186059740958163622772595126588388380806094335456235049263445419167997814530768043334884026691949533808813780693402585906230793336753895702266733752041404544445450405944053908502414727705721651994067707360937557037662485067871823860781661943704209204913220676175706129125392628213502668303042451773069938405119531395592879426746946127731034799507529400776709101323823850230557225891558841423958151169794622474121842581256954050174244198881133198028183344940964648744863213266965365922696577265618114837653267619044300929343321377363401513521702068778388965608407167553653293382232726722556059557680574799459162750862909115347125410122792969761489904892352433306273010655496814556139661365635780712580632756107509752081312867315591503137742139404749072603699811835003378474423621922932869037927139393823244367946043351322294222427413539380253790751990803870581542791204756973148216577833829446129655484141198074347373252793028112606439615952380103143367568798348334156680702092796493465228718117670353906140754540274766167251620252090029637391766225090234481077099908134816181026685693383297930852151541593627240177523245148084977667692065642833451911365690379899265067602159044640617427098223741691668036216653247906779132654954611494851923365993059903170559324169543568147492209990473938678839179561729380408036343761233767029507972771949664646827027037340429012162368159752236985249441573188425764527966773320828718301251339092885087751915046321624739325984165480873353292513725663866749620236366337106266157153321864084470014774026036916627863638638391425091568859312163245614478764045550940546294949722991377292277442943253647579636241555638113705540623475001555243536990194928288979551233904725588439038939843182113627635380592587986984104591281196703764195536490215167752014942900124786619507684808365057954905015444006487259364207040191508228745459751529175285557072400336621585518271935514987741778711989807794207050430990080268932624361664473020231169489809763011791356933732801998002417106665782809305282108341894793718597390582979885757160952909412523176184937155146579346758189462554985190498138415251660332960931098330015813384522184434558030574401060982778505731545452448234937277771917815131277497012940633730169670290537832058764944599958349559226469170332741791847201195388528382107629949494201722478627253677886198850725035181823813388938234836621454343756068341949120107878974076442358423551807222891370896862652859411104538156346433111710735852789350368871252824327992658611913007828640807756290529260914508917848361841054607025869743820281816663335973477945363698017788381372144782038518451870080368992119941853558691848797524898950587333609330718037536790928884344327084798207773632105000082103544340676349089887385951967553964591552878125200523361605151693687106182138064690951654617012531712923403974951520680523701272418737824883615346243663093827778972061014225811333230125194480987594166515823148266163831530386851242696159954167923572754721869047593027357399695194510465027522350674006915843542758922965136202144277773618768010271361802087214798212640174189830467694086347426651937104470009813282604232069769232770589532793522234170162052556506276690231321505725528449831384932919543581494354341510332313387594434274281119743125324611771395664553670559053734133308479543690425593311386149642486883785539983872699519981184059553809769679478784157698657222976712280367611063182477974960519166446984168955564842165514845152810023097613241363546040663406641263137473993476382959274808233840757125750157470429868863100434073296366445447643461898895231117510643062878381821562413693581148083616180463738633459406439620541223403062366813294724257776241011896200796393787051723181523476151778533407477117551838801993589000998002861030088218930320626135240787733217998461228664129304466379877511820215221423110880936045680830267615547998766222831383598508645989350348427154816959678475828691921035458543217929093733135794409218649129063766029756268979843824671083421001833380841400573248542673600448475298921434440494806427822196750393241033299686238635488639929797516581454281065822758348012797628163068313929988209913373235535164053125367380638648768614346019187132907868207020707731974042260819658703911475159597959394408114928806825284855972812531745695829275161469881678387299216845873519877505987400636812987406414775593888485960103399480063739739702697298672826817148427009274537912863730744136110383720500277904888401660869426814687988353415788128467877421164603032813389440911961019879884487121970618434851588955888708619077149643909339834896587038992394190950320855634627269492581688916854494597185748757105120049769274905903313033352403022890914209242839176751873834272356964769779053215510362417330978711533240235528946410689898399412466906491247199719669020816068486430634631693722871311714249812693205811739225408385001718070562367883062651045657367588837047142390075738532632815311748740189352747053130331385068353457193882008542588296100341660783254908807237533817971861085305101997204350485128669907290472630977037011521328358028382605922968560134465148202449548011503348057835108944071487228680087619529638579335151095761399995812242149638867328057642876861451326503109001508478145710428272329866841530965319567540724804906229845393796539087890016281574389750435641698021029088593457325036643425640567743426169562324885088638336429615222602827191815734506612768351181605277029566199980114895615529605762404688033517208858981501937157627216255803879123720829289737991899706531413527116753978640007448480146236890688062796689258269019645162659305810914376049207286203901179086198503222557958439071672524546612241899702785188878981460855520634744942970241392168534474513302287439784872120642034303241679671086527778158066804974812180553590967397856778806029292061853403884141373510044539064499637183240876340162236932470046370219832903389571782181238192054054041393933452740727265097242757011884833899722243511365075914342376236264053665977054384534212777625851011987666197436586368158539296373541080410951187904500144397786273713965807844829737311831782791227308994034492780640983977921738310730048446625004825862469777914035217934512598215244250141819744136433073106568897805348946906126561088986542420958127237725880153515696125573502166964407087640635918019026456915408017786551058097121070846820689854617247831747456659689366952585652355429339707209919546035631622741034425714712296130218355812909033096412108917947634461446167460452864000500494342528945387497696590662262256153717238425720138967939880023741474932144461790658231697742182498814983936234755951189319641265039437747914290178763536469975378365514083983831099347159683332702147174280762484528111091031777174863833535254424768449930687855304269611444619998560045292560319707136054189174447401250328130407233652028810057484468787898178830620607345260664880295077472390599730903303533394356643295419622383987000368126926755781535120357326767210943312893496951704065915266947491753769643697711392093114447817361715193108574298644049065755766404252138697091316364467635681945512999777444440048064955949648121600353587421477486438207071745496450797492845921023991972601656141176628986606759005625143603028807970071889012838214876028597333876846052302248354941949797921703909499771672452230691475127036896750916926837128917378217607714274583512044215851331064891895402220990232862324875822027238556383323058850437740937411562595331441860695146288961462855990017892660787645017071816332938826986397417667031025221311970733082951914608675824901662755847446626429130972433870486637171289521995302309927562566803640845494046292749749025743402414512341044960110680788052888409559055815922101409193567119075897818077903402498022479147877122375714767259553756728584742423917215453713112401285714602208946145185031926745896401453364922800857309631821455005034511850035007247458972849350048457467350695664203204286439334831369747582614607876300941225165243228812632204681247528266871186259343056569573207978574841234203052558688388296147540609612376659650791100966343260839573346809922024575236138978031646114560368491297808623119146076569712690101873960459835896091890128426749010320279940263846439262447932524019250126998576374307817877966816429433808469933181796535444082569689278651224520749995196198616802849011709351921092829318050036785416408677472488930571790257390480361617245986480779021220960063921041003748695449111844326107747584441859035806558432630498223916464861389756017997103026636873707401422349531708647439829982665966192608578940165227556829612656386591595600498989089940039949174395135105126030508797857037470437954254019077005939061794500370725779523663355446017411873608259041810145836892681617931514006452599857363644853490904698434394210304786168029940793129822452060312952519413559875014463232277159938468919429975401784578867727657728349665481857577292655657618829740428890676530949068307739899532933068445305948330852985036521014594986691061121544270725480134179100796589860487034764486033538928961912482180963320190014515083572206568783297851562193182609067182749445879879976020368314878184521867681178508471600206220959253486950399254194938686204421550319363247648211748220505952260387077750786278760921661441310169217215552418744965765023356870924827599528036446611236033523000448068779656410433026730372185941454134989185105025335642378000370684985274733745941910401705107947081651878557190917225459960756359817338257797918539920003264348423951712020912205633261437652273893683918769291123661509401320607379957912762038103702094969364471816469896832945395855874942525858685490126572793751038439685919098851230327235048560061339337310408650663108947607837230962997630124720232449101967417542349621376020219619109680702498253538001169504899345724886736148875050031877343014663260371302340258656895625165733080010713170019299619721856351431514974064290179303464061248146262851624947081663389145484620796786193353582780570961525298703957527213830513683202989598444529745059782990166349735568236008396917751239420995481623108769481658446200511063448804834979023274409291684326210020212094224076809800343212022880675183500922055011918700762799723440144591605657695958954719290615364627975729175882684092448878184622228187080461466726692053852928271531517409940897302829738438049024873336811496954084092638350990693604305409749537243138811963166450795863748146674116855328280176407041612393037656594025729188196151855429312343687098905963485842204487844206969063632266953733534500243478522260148337426739777332937857823448524140299531505592693946942444690816095499493662189441790250075227029369801307883141182993562263717320039927021035088052173753364578257638709403349813142185396859644142228270929095475102620256190269013467653617700285207380307088020495075779687892617201575618557489531194886129457875386810231353634060790846372587298951300287958127979720154111962230634953214170099149803038553246209589200201282544906803218603555923857974870190045606010870578901612859808695881568441509886543651048995551847915861156512688292628166090973848833789853420383065158432785961609374255668465876769471018578803423422118077595881216372163281143957171690476255279638850889419696047512325147357013507735371595383607688473657350490428161570754632502204567040923750221422366403369252002908574019070348166596032896210858915313907359995168825360180807723819150965769607161506371651691410762269753532187828639373812083632071134644338023908981819900923965301236851920678922759017652290330872654198029005430333441403555037298550184173716895655211779993919443197440401285020153659335068538661764639857218570991366944316936127956022535331865581863840542738955246648839010392048405072351242661695764166575193401732169786247768912261568778359157542175288352843229525985257046701208348524914751810018612809949536077792143115500878321262897093270061575421728537605474243577534727642154439956822665688532585442147642990710429992952911465132963536172599722635712542232642871684043547723676690325089377270246141052520895918337082122695787136481708981632133332023035965051180702657117412995719622599159574024489239296527544930331677415548966935138384318206455556878598576744636117312028053954732855021404433263642009152195859700873200111047913246843269155980478652192157123494303947399918757122401203017742188340173861721598423289757689875948950155791907236301431810197758611995516371487965905702411464479506001750391917403154494651677627209686926669559688171691152418028697506505734981739074181627792293745126733120647057267331540992727750203982374802869743016916374741597458943568701087584305258597720054468577574929365403411559042618906144929414687089764333257620809816934776988599825347512223972928002828861360667039871257551501109052171780367524174231592686724283305764972923616243461608989077818079883559834543823952854239589533620047796503684788071526450900882360576404526617990116847332126151567539206228113924451695175299690258234487508564779651519297633818097984621522606274487588106151918451683262493506983576694480139777398931273910600480573603475096065017335399819467117211294990387746568007424265217810871200089038169599785861726311513373583769383414394504107821020769905638344472476178914690395089417662757959607426313284474233824852100426067894207937646268803180710545116090240998976558843128147887011999664114868643255813151582495771994958965768873590153917813888374099491720509630163952293572699052226016268078833310088637795653420137976277006298425118086255891065739285162615511862599576448047518740159846641445077802479248971163203205814819258833048993850340476732457127763256475808378851243420117949396372436058506351992120495101681983086510602610553011655949986828593766987277535259245206723436231559097905748268690315959141623899889202526040022444326883818917274864315684891179388075243309520948710272593925662459022963081857133830375826197703751992120325052938477553394503731327144473213307584076396689668351665569088859306531470367333487105903674817972082834597489774112198428175876243260657975747309286019116700687197781756976249642395111861249520843907976986543194874425783130827004004348196712749073887532078942779397681685882932060979640851154355580396138061173274928432599789291250015517231646723519098353254853210544114521316005953740821544160120389876087933374411490602302264199286549088256833567404560360233476147710268140583998091989988925046553987974124454415547450004644889008163842534371722486821951030513194130231572995836117914213020983548311966858247233841182443422334862808429735157083595784167932134695145438897086653902416801738146488878806946833163160846623591570630644335465574011528078352236507743272129052629776851359381951104994362755211664928889455828482674876233006239747347571623482727885930929017526571000461095353738724036133475130676433568306480361889439358664709832344022242895124192066177768162513543654679854311963275392564785060914027162908604297725501544533829647467714634168571485063523758895204658156768823976880978776818562165468948754254462947037834370088645501120202976336191118849282424007634717064724497544984469538944969253123126331165721258855583045675151507175467413941461323125757556147409658059061225041289793248739345287831049653273742228969104851451968473572442049750044208818879130701471214695519094735983743997230695315493440792772920612431142430648801587587286393490588744706920318734718074106678208011791495081460640291672299735860199186643947494850686702703727869353960972634421870939071772577712766388965755035627274018909082711013777963213109946922252511677097455461154154947615185287708494574449279828292754557559652027169051192908220329866471672195382938733872404250985039585118545146743554381634817574694513539948526813915108926320274364889163383693897565839169757635902624276182193956479262554364401925169112940064815892177177719235516026534067376401213309462953318994378207416409678929034821882829159860236403545956747132904789356054934885465888985599492473399000872575599362452014876626887130445973483780217513126985029277352862032811404917909568326603891278985397731051833668517963479734345043300358196071954266120528837067174564292899558870283386267256095620683890499693003008999528326080054867737157667415827113979305307971171584113310666033445186223093353744890319655849523157428424066694884262534158214430760000668271425805129544426897460051024557433961359302820249060800583414121144731282034749863877621495500107850519925801865474331503375804263820199233174246564321067780033423308289311804909733049898170894861987981992515303380294366077528045632777622667769226595281746329991232931805998639804169567325117670089003457917784215194453905404068275365076000046365643145183477021210627366518978663017586961891505486841424931438878650888824968373192031875396287331672330431805071075627078509773782638707661537749991453006243172277917275233831335713126724194970440222240026777830776027581485416759084469489294404759804239162720139875834080020835282562010671007355316470442326359488168861247281333197607899820955486233278676089557427065747517399118714521410667427577531378465634540026220556636862618726401750944989211697576569482204576979399641044380347439977225314712495278613102349448209812326614364111543984209504876703361877081027515201743846210131096208245816710400139391789633059213017101206119276068093882971825020823914797139902545142913438629868261723469136702086907412600174438844615781312478149157402519424069445019446260740714659909102299800382094266763819144134222734669487177554925396366089450885122763264871334601793927608039063798720661980453566332302563644974838349018978567311370548042673084549066599973719288636893358744233051268913144965690440225106809062589321173389179670632178449381455808971576322594058226741945631094906581354234681985570890064600609289940064799230412734955383738699140423362605181616340645060416775898459407316620201949083695748229123851554625293616719516004627453822529112868907296495530758785190754238865094483223059052283217689325312940997597278394424157113245344116505668938172780220385588651391302233525785872133786808373040123941714740738471215881713547502075363609573356907126993794012944448329735398674470679100487006194678118944604891121911516436384198587725554762935129939609140848702570253434424223015437507590073265258159123956825469246628038055691346631552101461712309314093707787280656683430887737158021544317209275543822440139853445468764355307089104311947690653444383447417368794380432626924214486349447846407410931438266831324154948545897911074826035439757006407644437741789259463726633406601529581318596755538697506078428287272169476151732884668754293585230705776091162218120466693981047599409143799579002936679509073400636525897499634102949543064723620528259094428679799391018032587115011771731458044076598231183577145604098847206459742663977466018598573723563618881963119843598644753233577220187650907080129042291578594163014140176798731903906583332852423050363470341299701921776133431691924748428985720438472774685832661350444723731967903811181943449050703163509949175833870570106008259620826134682837544517119417685409721676552978271548114623601642397101433522301224424947085777387200110009823161275679339438470358745769361610741276631662779273590294781944921868930547261378716416247372488248615599818182292150550410657469638281990859115192283968925780600217367821812295463282254622974311270910074435468588530338104868142580423721874674717238458210434165990540719738345383320839220106208833047961821598976591188716205105720631841095050530349211906975039592233045039046713916007861129870516647681495062995409508486679583183469486456858982328155208953163823779127355480044175485517865586280278615227160404845909045787750356109279080276448478023911923138432395551799615131763746160907432559809373373232536683292734011466031235408637961424420505546664176792023460236167676226562552943189712486128686604281128323637271649015064512170114246107509312243096899563038731955626433098423316991567498765295300064163415504953202833500706230892505002951580583639017161691804215651773057771139436081621500306878136893426151213857189669876807043519883186795153446538136790207624417953592400005143404966631970521366787468046149702485550511151496118330199046931497156881594856071195633296675582145424579887388811414089175888108320266595801106980305259523584390809436727238757187098255405197972347953537435377489272932450266493981933809028143574330970644401359951776923936924521131406005355194359668257226490792933406623347552783626956119622388749586751119931934316417357258524394592657022038868187896098847401510509965844775402179585958415450137195767475352266206799659259721142284199362620939563637151879520278070814890084304890186421368801962333081188459879178216725227150485529032398941602788236359192976797578754988416835127174027515814287004061017878868852977711555273700370547008684733919533520539262779521960217781357831987207001275241081172263330102748426052946924710529113166350370959534119702609953159882146628487550982772652928121017474603993926490599734929458090677012837222125545520343145402866682369734984326759599281230501645197520111117075468491167080603321683529042261982478660368572661911453359135038600837021226212831956598233858693115457521364789991578448048983289839926642849671627968578593165446987942329234205884950533595437920002652268289148679300353607444026273278215319551976618889878137278158703910319255806059287350470319105560233501074933399767609756148832655945473871472474661441023568698635186682319883102656028650096806537477078764933076787281716504324573325039603694751582259653274226940777861216065156077925320728710471706010841399868019217342594446917493209154003162278240552349782296310374711923257486739157755809204378431529126008077219909568670484667516818676888762649546145477380332310104831549230966902316118231865855704758755291924013546780224810030577816749407989358804971419298553033353801194777362478967725506552079593215272931732742220482307495438793100002137129435384154095031512256953318497864684659818321290731124136758124499282089139140693507583529511030314660639597709116941606770442193382362054522731844217784176006325072461874568641215851440783884366275266012450414990847710882072417668065822226305053876480923201974867735990565869844189262721601181798931409272231520756410456314156140779964424901331981621842545184960738930067972841018332131022222421681069086695926364174219315218934296997903542771021255712263070825541769345270355392911911183295507074601425788676490718597769780038925764636489469810007146639266749069321519921191363578077660873005008638671552044146546941029841110666042336366060211159235782731917747457124901684535641338945667319184909746421421475981791324691917660878012865347660839728282958607207805270484972402637835273378543200293518951436051045912537077006711844953443252530524523877422875574789616686016213470368899288789133755280607740507718198663511241805462671398500577481794285615773840598948171123451285509823575844746020573024253457447573535832892599797958075705633832809203223951624026919942812225681943176225009565399172994837550344183304285135048594970952139616744469256643775829899004155081205851785392818527891519011264307884200801405562215108704215375159177687949207992824850484787215566630937465298196378247071459800615960828969919151195781217174198082395069311706669088017979816048801729292349389691904742355267398430570095362629220519777759038576504959226167370782596072534769754489316001722948229507245311035638600210743026527799961157235602236470497530555166412335277206873598887765535124798450117282781756697749233550761064965118363941894739470418521524904171728665520327078347479053955320696890231705224166880279222693908492858122706733958126352633476351841075467120976352242628365933209096047986710701936970340494510011292216402829907305839924902287402770160606877729772298081036783025240245575440260675354905131737412145984652198539079625901961724383900003545220809503144357104144827997641950475499680763056293969848293050112456266182011927629810111909683508571609145153325399009919260768661864326092173935466790158832175214686718368205436398909627709586942610547493275042979214803416665469106166880654716947381774103510003686912693974838175665462184474332276938024218152906345403541313579852274181522541663807123191434460089675927460860374998715361600718766725179650663324422553816799259965748438082795219401426063601170446059668235389583647823422493707867617907250896531963161033684589875013383256286414333017492585185566863481356717689037294262244214299364825559774978296427267784192113710229426000684756810874441617505151863566371855458299309941397767851804607882274545737322969915281722126945164237098417035282739198885578774137582980373008360009720742171726267030689265965164424041314019475952198276063190745308928493564847423186851121717098328726875041478551465709656745260938562231994381819118230243520132351899399915790526361149194126033011836936858733515365480681729667980271239525867738627817918744579166073749499763407459607824260658057032747412639387509298250469840169979626398045248763053060551238759873499399325322734102594865452321075472477241984344762194851534166661606625110646320547016224492993466570103370589913905667407041673371093546068245425752603053331529770466117339644443581225370760620758352357673535782634777062216930159533446201783216267241648114832912364846092620837196837264526455692827322143680967579144136824981257356265058519229927365484099359362925382838045675118015382030300462393717744991884431666494306510216651963561924594807434490370907901330771677510359017845785455591937013493964647583591448858464417955239584817784893133729447828233501257166034600350175200805512400822857644039702644105731949091384202909820465072683554185573935954515604162421921806726989579929240475558307342605728181102540674447988239233777244086884397343951057894749042651296970230912699437439242267040612532219502300059378730708804878866190992186045790542230331855383472462248365529732272310821610114603945349579408629476788459666622833881528756152437337761380574017721407458837096686160250462809650679094685247050292674149568643093698836261953067877632018350088919857373719346144998364654274828383644859887250069903279927251265524930090829834693632354343213520413331820817817294067529553816346480764250098512756817474266008223125518020895984690946702786531217097863820794122584542926534380306097696998268991343051268500031122057196868839938796773210139495531917279151709692898497718330380834425184806032365564907538291231696349666216077003039640388801554881114762042242118090882266500930115074757225454262675670990234453353540572072768852564595462524335170654514121622309683499288965662948210365365282299350797305795798034149773965422584997357377135351312915383822913759074029395899472305436607262070359341247771327113766977178412843651861481988022050824803398183710716745805227339175634369322801415782928816449442579978100659507590102323318050337000797097941575971725213647002658077165217413674142031748042529835132172275307971652737609245639059926666033637703711217841349586706316125305248454780097681165652375494928356070507209007478601457489005060769357081766798736400614773283233846774471614617706242801504814854538418031544602311707647325555458688938747087475696161706403616992786078899700450369378976000082175404755372413692885758108017758388067513489274845214706030961106793943591544967786151516461808506106276405236554906480402593536908120802661962384421067917392394461564618217842973273290743703748640187665002483979012099258475898237601133117374995061131780875045913319283148698668980141407215869885168739929322991870346388879059608130408606366959529601996550033079857717643520551648198269814306771892978620931521742811834110958849945566868845452443246248335931934039969601847876447713638072626719706068570173072631346373931162367246006192955022154405712743113337185818870157509597911476476629794667390369575391668004704901297093361197906321421288869316926269257634695415451509870511776206075952685597899309578696461718962232735885118747523133345023472116158051129733718225500718964270115873292160205206040270188585585542433153630146004325247095502398139509328188677682170064465749782349244748716607298512649064336585663335003777221155227758924568179653834412618954509452364817262893734735220546777778534890136746530393046467262107763672758998171340191179594590625702079806789786301156540643060869064224663847839794464450606616188279564982708047545817294314790174271514900480374703176316103662798594720869545686559438740432136235811833102946331554345746525064745040574510955642530435414676842475835420215758632933680462310660379490693606187543045188277507974755375959900123856259191562079251963344836167545396817854240887402280399666287285639515228602993832379079601563585489679610469746220713255164477713293601200014893772473089955831182813897054289790109479642788780286976699523915995004817837918587312726897427310476161047447871307243863797253345002716754215088017360561905677705284886580607894521753891967638757192184051957213034133807902293471591058512650147168792729492483057225513928217647369182318757597869851375641605799334745536662961311042274195348472466415576913182268738988796915028377747523413315038017330070701271314673645905850585715978457284628487469977692677349353656112958873836584773536090157557502152337637367633171746583111210206886464655599389596400080182103405573918610787049098903748331731533612107185217106846884953792890089713618635579334372802849715106409901809163869736669270763864461385259052292331425886430413338941230117596137678168208528185586544197167736712771604217069012041896465112050161644701538097339846239893318258284473179430376642174986825019364998006618150205865152964074007590613843266387136307039768174567341808486161144267512023062173597892569711342090294755367786383029585009005354160616525519024758207067832719384565940033289721718250473710831684270436255488135045189846635370496851007557687251156430099438529256238285548763938722788798187094291172883251667766767884684069402423410344746015090806882013915518800958648060375207089777177243489148109913435272489662658569739181859164733920876245579461502094278328127758454883062588608789527448891148562597204368052224838378712375086600793594850249762271473768282353268680863387569181715868024249305857798249756931426066717584610022915141784600331119788145324844739915170950955358800980778544851383880612484825747314424314002926949952163441730739347983419139144155310771249774486792513959667901483144701494826063002302407922320968187170275496123551227715339000496128524086085765703232613101570635772641908295017400555751770041544263781408056563535649255139787435042664291762613705434056984023315199458948834054770094394865610080454379003227805776691695309233478294603267275683982406725391638936118203005077159622260259412022572450815545385708636985584052840700200812761835693765828324625961374097529751106941695326983555823326028274565565378729237611031496726091409247636881176941525854083548187135049650622676260310328117232559457635971266098510346695208114917665736059082216004295362403533357394376441827200881976192319943799938986874124419741966723640518435455825806858172977065652383587365758895065321223206636031323129585142499140160773968244582532200955320571095312289183718488132002177073891431966778658190940463420854536118031340322409219881798750225379582967040009224289624820642408354824604164501188936279805521036041693271376902372671576689516022663112322545347862072228342545316328139518554153268632915298322258883056951583652428596386101779809338588810368536919129965183732410073175976994517347289500689614851046723469334771760105387763406656127151959617152606585688964972738071134653235447378220598475291102617243089837368897370172550151219305611622137919955894993789807198614766238764556325519653499264402808789918942740165675798282934821217651695958828276674690397701572787977430803365355845018549572039781487519575358270955132360588630238276098370585653798188921254038187409755004501840346365758761856592134639588317554831627049010932442473246625252080033131886679346807386880620741646794919840870984830827444032855818374048676647816274192717615578863663512530591514203850842234342928788398993386231340181973430300830379496600254225818379814750111358176605031013548127038032665615161361100510346273833279396738363160267252231843594313646580234146959158557330879128381293557012702620531626389473764052294838589613776247266830408313441254656495059691879904903760734225731774456604724845180389191455530170971723396789905838374872821921729891268827921016388179375096616275018612784818207840674132762580874165946050168288470327308648307588679668132930857986224568502988086952203430678548862160888632965441284778681674655890769387037006933572738204152574322800207990288992378886152783591278172197333085479140857543428520638261406841438468626611716547730437874848747217954549023869003499558589641540772188286051127524307581421788484490969743119723278243971029191467394200567619347875802689836528307496283680145278282052394753366515820721781248785377336128357664560528884564870591835788995705957795956060183272592410515285986239422413661079901063799998301138716357803375830881964213314872861507501498424562304467073943941785014079135831539810702103255790647920313239362549964154625154501296252810776462691569444964236433321855248609184949708442838640081801606153113865442792126458934439467199204932942910096707355785785060971156374576759030019559327038067464235677674974501849539529934991139222486686583820785753673622113075050472903069342358816974078785552515042177684362947067591819163744931682016968853612050096605418222337324893846012905302454627164137847691817871149949571381231944953349436991537843371593788089505794539045268571477075060684368668576207637312826254945156175463938922589348959590273485110227288677115114523342142857035558982681453743792926718556032822415119791140107122921083896024102243712544048421340017330290550933489242396709081334241242420011355324012624189927117839348137784719923674891654930299401581149343568220363193117676578968699604350683902160423237392305785271963749463791277557063537897117308965056407517697078021673254978665686668782895495028059707443673140395481590191435079396832163670685301561296324329783318277140378398064985282736865564152448700523235329707242684113615557061207882778172734796532085121699965565411907316870986973510874961356654119833411240809224903511495221930827045427884437320024721804417346749642500954428583857645471321904524382438910121529103649003846808287388609428089226591206031212016396360693870851451429308853207530973405845833208759429904297719251189538720437283170017305787392915841439356679080624535130559362075531522903748057046487659413930690437617475019701777606461545502786084325913994502898806818812573466719230185784041950634884657373844374705283250701101252666825503894417439798226050651653103857310739010314605941562357834158068064397470777228740071116788120729507828656704090218230076930543677758947984979426579440384933807399532891087872703309457684670000953522606957130880300219390234000513051137031714991095127231122850924762304927824548298982967286976638364811869032027831945681847922014410743775996625497093929757868519852648826500922310302189355347418289021051595217299828797948922196971489802750144260215145882669518730562239427406028084114749182421811272529548971534847395218517117034250715014328396505361588622575258993765857034616615240030519895695309198011820598782312360180668610058507312832670560620074752210778314486438520102688496505587893842496513676373734120393844530826866786406400813020258051838485291408516990355271830006219057941852735689045380753552296917844191692732311635574134294702600607946817454134354928937031845867063550101864114204871177156939310206568566476504295651787987265708588031729867680881570502556042492665378203680797915894691851670023668756907289007578692545562684165008517163207211816930724268938955726807652808581979618186037402825858544186361016864050025435445739065389665282249230928765749273496625314700187613801379115431230157466238448726043505694735689868547802470504150711597086409655866686096522385853707250751244191111565820137804985955758067265343568008404654425315988652554308633740061569990540542377774577630121031648849885416055307106575115106223394213364739796151592106593573953829945500458458191487304583718390368122795618083819890806139693529662816714879271913352300925222126735430301925390695468196680999559243801480655604268426030260659351706750083950170238821196002784131221903898783763549343748692600133531924775764406290861350082457987998803468406147347626389636787725739963645907536767167375634459043287387025797199446959231664264264789035177590475747994434152864048558908882529834410127370059403794104608181032131654907122152297744216771984419781821290100484809948916880984377726311010539716466917681710430761257082623964090482270960097160774493888178132254418751644025178286929422663182040987826927579664147556457264329486479900159992603728357516497156210768374362526325202365186057281465796290993647210665643375899936632359224933193217537181313729703372377531848941602372671656070251667503295774723284923757571271306184073842451551907895072430372526210831254923547630416474779998380188987319275798561986437510869025890495940834999007159600371693456609382184025478196790390991318224628448499482801621900854003599658105811924899775453277532848763986093662254665296553218643400418475924830681512553593239802998699139507517486986377916261650170270325877960376493645212001532516790383621165856048906782776357069266293520832207639549210643155271792158633957605314216461177419113292799913163791047550856300319981403004664862363049969706645439468538057987658251011049888078895590752548777688541127828384178589264113097696469328523541317380545430687977249406468892577751705091963362156089656571612609252061928066537030848143059502312011938515552418480962567202856191137455645010011893834158367251392577803374346938150620508587273704060848452068612617974603607002431088644174783574458247360275367165406107907951244118800665187758375908231744451076341435066963434107873309990450265360698784650900514852625894109507810827978045222177030074428874821043329978735559740452754843414006892927347181422096174434613890315345114433144337159352584300956166204062872800972956085052742111866737332380241773290939978400959750256423559934676288356061921701090613974443704890567384536817812250413160946066151186652375905292007966174207801867932981428211662072323675763925081271097821648299995979630011888786637979067979238689879487441241294716861691345316681994009103608229444169840433829613543911264379166992891062076155831270735207292010763770135887973664756719479139406837438069476445019851501155171409367032545187322908111905851282749823149057273143919993917999413465825540795854222487182828736408882873795939081337500460663189060836859407708012616283653054068880294144091147252600679814706746351626595574049696756905551219808585269681264019353587128667318479403122618283451567146538917412529276627350433141517542814552702260046587292583013838854119727962084610507555699915474895689235695171688266019254503627949271353608351054648273390741558987985619012197160545123219326253924766894462815705602386118898168368975191587639872244354090852065247695920716077269942302988665028452353173277755241488868416413747095590876174513849553909945272338182802192143142642038194004899730859928234463871731437380577979094418942936970676788063899624073926841178273717633969648346506649400964039777733129578981098974070712520773587067567541494829319530687634273182477257706193443002884257165572314259974708657344673946549440339694779802447766418001699312036663992578678349653274303469545588791823139835202892732038799625050734031589234256744092028977206284533724681594754526382215506915786334172453470847218196657669031030758191244738166306800949858619490176382183169799651718525937233612096567533038766617264201443758252881374433470194282216116728055234663930870475509335757883228454321510445949771132078371906786815290324436312778678648069959998038568258234936744352913706195092915355205862351352453013128413158276511032032125266288142707177051176011061177835623621743397684562851716540777131349470629150278320114077002896955758907208544261366933832105040473585840479284974716903868461837830402214501758275092991316672496644851997418553453986239929607943375193098466826776772035911706800466318231996653153440663135862834797785280239194636755751615800324773730995954355876831340709902207469559895909485493807782798345555224945924263662118755348219598529464745005314709096555141441164982325926267192345938370750167008078797213687867952039335468812151643695810203660992050759234436168915904216396701617157648557169384997700054279233628030934126997378579100651301615039428286636251924873802238924988261225618976068879166347231537010254721215709551045711118813601047252656655383595136235910349984914143930546715509404736000635124076017147926341625192825144733610073175597162251673326313918061429775633791688427606258187840059789702725840331314335979617412718927964263713285981113543764071265496381069098013302309433075216418946944149840432469167542546851942327296380347524142245480814962681525266476800975327257847289437897839632488527868921546965176832632808439818090337297124865854403488202288686650110561614723494864365279145150349452542035793584859871224601977991682513658937757444127764710724167109502461744409273832815185799147780338276623159324038498728086265744987230057755454966728041034027681887615493081250455661304577554265289902047274245960316902295903591306179475441973953008511786680802826851806972452990323961398742595357941821069395438619785918271329008148767712507738882640892428344905720418490262425757800813701941268894769726618737342361237949524018983980049547706257215896141695046582498908356648671366214844850276160809936925958968201635794929008745274589012403208910809399550024194544747932220470842391461161184809022388220665740487491799580880191306611791285134116660733748219241124503150934833817281977652266719115581512597718016376391508698290046187833618207215540788093626643218616982428375109688525640920334556925912228565018987086512463183941008615826789238201080942814740313409781877688070661355447774544200618079544693399090446527714088655794946888734317758653496144403712473328535303825287196613565411487975699797140750203680692506503499170862062836673672699593137260491843025865387010283145743283299864551038405479877194037966265226997530351460720710821773198605421420756228787750285952208827836721645035720059465629572180038273198709549695305720884735578368509212929278886721623358385588286655723274655358853360706442787744067282222858510543993119092839507286628305743275388445954614677490854519321707366242631541164985316237243714059063333894258502277964497460860300879147890003801640408053328386713843003435003060999645112236736878332504131728318697968486203064539142902095149854033521192921341173775619365932165223407945698578167708054334341280162119189190957715580053184596774337495898082835335900392509733264261192073861538231626423215167957951397435700544522990957007892834064977921633908481380705793995344986321875575169748806461083027251277251856026540728615323939774565840036346115359827715508443326086996744587392554139703080176104977857773412289016164307995301510949374018730168073725142161873533045958961030587789451826871605581110396857708769166488695851306839959807035408410407152868808175745548843397555734630965628850530207504563972115803649861815842712162367162811782023441149537049724470443551734447016613143068757309313846275876459731284164331499180044431669513776937932002911674618366814389271776935572866895865838394370195434406770616197465876822970176926900435760572220970360634656091711721328400572285593918597358424971637107537283432166585681222219109372399682625578818929874726844709207156379760588650891507555665178852755942216103463163313894074382454871767953736002440407457784940698385900055654187958063692378639647670107367801969640525769948021907990622807602790219713937110262277122458638418617940447145537793057318751566251158394214181621041559743152719653318309702211807168431051842963017111085243714336179232195943803074886396528409508609920069523248188233830700749659839298129593085072588423049705584366419936726712750031700210136243620922546051140967782198674264932260895509334377744155709105242504790066422509937403115489459903887030881930566782541381982755675099383585277713953037195007745959947227101951640654533320376083503167784261362386765861979171134153452198643466895538686461955879947929419618758399329345106905191317507718572504592115116245340332157987278852047601119978976074286911656316106065704948951168622505328038598378010712864444770490277363424022831896700636068311520266122993121417218135904472602434353396231626022347503764704150656448165556684680589909798025322725661466481725587762358629608395982576529966435826805475439907230463910632881221229064584654068283866136928749065038052000526596141280118405763852670773788113408263445183673515691260652425803023186029427973733135886339691221548638064509840173811666229223217573644942939308427422545032866919807060652897316567379183518797185266909330975460963771326127205863942811738736681646671416424004058544207610248227158777458284850526835565854678379356711789717890265845125626398623900301906352138424884152960592568453090350321999718765541201503606869952140722789251698216135136431575811424362897964747838865136976783884485267674891812719238736707246809876081047873125500595795067845726249215109975825122121599909341173522033371843877076199499495950349864951833186048557046802304573275959160655035984591628055123830675098017941827548116134501553948854640457886932658391818689545871817168994370329658651212361567578420281725432971902904267799188535652587631349408840437741322136740418625439050163867302433889591387919816001174911210997655690512689234805710988011018306183788548804190437651941016735623768295720067872982577266281668679510436866553668649697238675378188436552209500168036892139914755788942843990015397294287631451222800542435245379558585661478240426266741686706432680970516946966961683677659530202153086116344912142130362300033004285524943786130122340072423697027151202667340758570174703833910622950121527758086297475026462723409578109779494872545645264700288284092909172741730827279431860193870968577993027012188035431557976402275639981896274460284751919996442188778595571138574445494310269726267399548144286342240028498183660812202938272261437565858079934232082980487532170863662096427219033961886180737791369479780342561859221623406441017813468367122090963356982151402438939445590091850560896010057285492321592099352546695755062148979685651173721536300797453762412380364518708206777593455035686139465532990768290997928603461670248549805488981460239729780643176787907104185539958882397794222769029490337410526255241165576052734903145127145531898416091095359989281877680236659649392790977649484860879202318100115704271760432189639264567703533225145020319195273088564927843862053479535480793099858532223352885104809359719817146544322020294302350875658923448271300024780095335239990271565938358530950437908204174567123969176391424981989997659235372338605437369386602586516941115511321221603622360786489628132368770524463573091064251969540441222047131756097721359775050272050407720909463027155227928301720177163377207387915746717614502899266778310856170974927190021070694694980379601812571510347751059041764418868571344377737515146872813669466679747465882644369588712058715016021514656503718865991838956481653459858893002159203739427305698009337222069756731049093763039435725730775397450350589537257118976505845211027151112982297335206502222199152390195015703149150496683179492284294031475879715305173999381225913268592289664319480329219188861579550993775057013570947309277537030893480098988136944298869594350582554174084322888397708855506791755846782527474503457056730823991259545950052752555154808589677778876344118763013324326676465376241949183623690926061834532441401308495280791948569723949257679532502078427574055201014298143413231041278642918568678617102725759995034710163885703564926696537129437292262720800110785532171661298601532546839845588832161588768726657200193691361396745785338277000655551107220928138404375021787567080431951304206171400321338280523652648274641784792103010274575849636167247938501222982553823450259610195313419589121167318476526185966276357272399776139131788209817795956899820487087831058274523141290199595244781392412561766922200135983722465064431605868224087423783486269585524356395645059810826970661771486581801738176378122056225948975992838007152023590951951909412141113655155073151361257947344294254969878365718711173332530963936918943841259570810264287207872173905115990587522064416663674392071015754184313871269902806403924445790631024754029424650297857975513320326121001764553773540322815012200120533819709261935562032844110963203658128613653018439506022369219165951625588202355875719868352849520056424695096768945028025596683210963152047620336680814526487824921013433652793918369211838209215907073678280872543571447755082635436509465789820758234304265676791652491599276488290379344674886077430530460033624713831000008367614500493664794814658533788384203610234968145852319076677199561292429990709035609478889013504706179867124616481548288009948147409705135605291059706703659959022433584080795561312814707625193386080203354119090455926745552330099596062215311627833633186454572479511412509781141041168649057538333581155806193442700984966255868673038039053882328919674499175852630639751583289888223071937598764950801295109487781270512225259679404023096516207008757575958769145724008535455535343468918813712334915524984102054372223077935975347611299548855474829748559692430593242385661362721265015814921913959141345354633123041430202002008472574800828315026449732178686663430804096377563711681151744478494300269121052298862261826245481615332749066894454574028714467995573411900909116556517207617489710064623436551321130586650549093596666694656797353271772717229293533987370506894158252702445963259184539354352944563322659308887845102518131333001125331699270012425958948559655851793700055405659007517793810552965583131206461784363014066173685351946185509065663359755631924763163358687053163618599316206272410380276396496690304719901144063603032636491134027524266354793721495007756217682970741065691442990804171781431130241270060699376992948481480721201232954224526807354734962351300410989385787613186344002350727217173954260014043568605136919107653066775986690377037537691162256949933719104809430677177083990652974789090908104165506391970725729393925527662454302568155441866572222943737179561025262692466875901666325930206267464199295769580549565212750118772408383848673286725468322158122434764443230698030182552470515393217542941595415062394991784818872342591856029046457523059069880332895515421426068627880186613756164962202607113673724980151478528892053095720992929284828819249520897002480999381554498322484148676533614815200374700402938549873509464930064924773587546984929578620743551868372502895468008196441835620740126955813862813686353819731309759559195447715012283244132123584249029732275141045772299351072697548814743352106722292916017878364561435286421535971193862336899448522055959878091804295140766543563536948420543144889287997041910474618814471418326863010981393502158333511113689042817255244549373500080853996524878427495962687958067479424542436365733418900606130711026882485204892963313061198616727481308840847348623053912937750480303303331946959205154585893571055706545860686078472710966424024926850861163912021416817871261591871780523651614740360358170242010990818458366737019037375869924785636424012110680240696348501973409352249962228911985357142466203234541761927974975708706764208117856725574120743684232707189373013743530034342440011100157861054182553790679928893111204647601631169071722033516650941172048358556621465252410353936433465441138845137956331307489239708710255257481426331953228755176299609651752057424153596993462723436619116674267767954688254059337127727506647986641751821410947498231798687087430449554522909685305278278921169376322651990772276985040016101385812389149981423797242105401394341753725197865026363961126373952787390617822734762031420095458610190254537645352684961624362655168212414157165496786924147335435069965031833897931219929601212306902041584554210083363160927084120985349991903627161582266633635112306686972868555249956347468051605097171368766484081442413454857220958206822126149636008186505586454993926890600630920392183128195384989283838519025445849700310286972647611268154634523738617165300081441777295735304559330354893119656107687248846748527154834237653726222410985954851112107868635356687766378733054378427800680198190644015110783099035218255401532443909890662623553982108420837660700843446860762751436401970385585499680439297642658393556392838971527218694714881617518618553219785624833138332521085459180644583413898345023545076098300521255087730383602773674530453667798773054091499867590543002449840424446860008486890001650835247257832002233671110812577914266994605545061562856742001352834660324352612709265508125732867188739773175836176568242862015244844303227716992033723027044471324003791687510796712085377275569722353937826983693863313764916520891073513791681178075732480489765236500837780141193661822176243160008030678862575055796144684592857213763936239700608449097670833204082314770356027832414145126943859550239783515158935294245470969134776205373242845372783470807964669888826004778215031816862765873944477593508599891529507228244457049238747790852689794420923267026222596048804616049765034673604052642896127915489241241063569641609194963194887726696338345589536725693354876920562180912067411813794856087280291429412838642526174294425577989201123244494182785608836082167390330785983585440859659292242680525607592636417517200964959990450672804741287053398857291635016912020043316420403856359086569766452988375762301255732612160828715170819375795652363500801933015299186089781544030913498208005072695517236574515559670378594239760122570054970266569738302673351929331372928939410617387494558392257270468896543579103933524647505051190204072944871490481901265888503303611701368540633043848118668010356566582822650003619642139163059078889854788720232036437847999441389612780180328078652253297443390271643999500597568837146660352566120786020972165258090299567591774401848450089555952097570532052987604115665499479707800493106703511319536715088073707135043886272050162216151694660901971956482249129544982154268063687872974538419551138332483595066997690340320077603212849596162830475620647507693286504559732956297870816050544101480617667899532205900773232654218324726684965618481295979093423103700815990312063847561523533456951751957489940348453969462139166022609345764743568502279318426789672843409618110906676222088193462928671445069497177594764108084604165303319599832406729992559488559906019408316197887211902942013558866830326035877364896668696835409867636329870024667723883172771129207623007875738598455052329670536278384889606361620330486384204816871377519287008482454996370068151214797119336887647625161760923735770840101133006026771469747932888344287056673293599167351053620497126300715657970357341970802353015270035623049877843107757873328129128307078035015475616068425066073212411523255905702414370119728006444490312839695878989437038592181330548745732333512733477717993517914333475242191901039398943915783359564747313458968595773169968364562187553442722224105993022965675300404921883009000806122718132373788915006356523605588874035268492728678112281923345351570619403602814467706356981381462847914890890868256449387916031038377618931788711402475531701170394248764123945629203268096642880262882862083830530213473198671720466877279802036593598074102720074940320956028591504547448786079795035575756962830295810785281625273279605690503190398825499493541974734041803934118196011083746258951422534217317658741545914823251008698518837816610538215326649210334315527899013713951631658604124999941084299145696868279854566751217492383445995768666957413761305777662194410495523314590675038903661527215774754540228487616213815976000332349041394261180535106202705556570954801765413727805912780823806419236272974625698701357655791318098305811521747714002014298169232809594086401115764912935456676738504063979250899858037572982569943958380776308477676779828516438211565637688428775327412837776595077110567575051827946030117367583387578943638242293548182683721519070297960168238198765673963243478627332053417366839424054729111097512943374574944736927859365962673949196074514964518440927426785716734062859108697851365333119454695968479173549036569669416938177680410177822063520071319029930104875295476348020220824337052735111516005056211523522403239522267586118947988104233590795048708335210007730635929096675401657517223084684370561180492655238093238111736685830465577260413245935076976143496866411547331138666014306238648190448589384554068525442609912176428778895722533480295123410319317181471261397820254580291387301848053007201424893652403839827919107135705847232458675803301282496497224531334340442905800588703182769411508125752047214314484782216063015987046033801085997506121793887546171001556443363854546702926084929683209445598316766143984215016912223613176705330656086782932768122578509341068004730733397145072232263339964102370255697345614516524460574343076879303790623896218911137761152839190636042942171762171851597422092866744207528251497777117610252016140208658126054575045086230815012174791409438381692513868085955252031113549705923166858172143444873592191354365305598132173766610748300652151183408011943251743719163841177206915066194118318180242204545866358079151683389114218562220566338637636938568160561099296703235975974252545382138039683919398832473270475913655843874453063546373363994964883268919879708717065127036856552555456394188905767955547774011144247877724782891467667915361420583883505006650303809313658433137033356921700109513796132147522927069029381493928922741017536590415459974982273418463246681686343736777367871237123360493486963501562394829663952466064633326377928162163221827012563625145933718398655074485479742506330585011610001724518494537694902320799625869534292813023110681430746472510930105036307809280485937191350555950517044430394842119922169346389206741857412413579080095063616296271039608593345862735872440524085355611456695475488604473842131038341045639253426296588630195620824049485090600057802095234204941659445402338942611898236152636604714921584047350949163054132041042118248709578507634690093579189777449601922756665081112976867688683101963256255352936113761132389608248983212369701472493805849906712859474374139780305928209669925869853698728503801152958713919428248893252308279059207445596616411440648972757600097194361066635188399945857930354381872531638834930798397844624391471299312657134753488356778872262264935537669825231026269186163530177659021032892414222471465676467084158418397438529263874992716750287782423982077421631361935770604535302421487618884715676312180217968541452495235087246822189380971645907639374887117294899540207883082592048588222667023757361762785257977949557073467862725044683622966376912624635264150794059424598675889651656131503992687359877851259400838113554578177386921613876394027600755527812829502416268585756747973420633473513379113205503833193894903618316981947637695811790101944871383275373795614916535006911379290137044650413229612470516112678001427780908053629421948320251565880797004968777828622240684699978387748973273571955481196086327352742625595396648987518769321157006613666651112148066856814453923753385878835929587623624142842956732039119824107085676040653440479208706215075448534683020107564574506887941081526801495505663489234599986281895230309988493512687020923201241777247332846028351160014262133435797577346836130020577228544723819049103773716686126708120565556972469991737190056400618605760301362779271336727412592964647580424082820495684898981435049110658515563178032004000328363567712138549027806436717700671075927683107601445623195403677412433878892025835593035656451598827843190497093776121806487203632742232974293077422817740147904056952617228170050597771770655912588323695003684549753489323033851789679866981893894809592229763329825885190209396189463642276819486248291698211843185725501213176167176318392709040817277178560823104782373223234126940799754448927422310882590080912695652906974413493559184618121575748026992894047817739727637432771231004189617263366408330734056230614427388952715260741114598470819278724462557657963664600567828128451670018372701388596003506082766466206347312130774999215554028058332790590006187488334387548031664420294031211821293915648205966135796801138908283894379516625228716674240004494827734009062263741627237873605567414095806799245778244435275013469397811968470647336282055017072281386120203157055204161061431517194217106956862742457840227326388618116949928712424236195273654553562512170153750583332796264485960243889235257635393175799909021640778212002181947797706689713997312892782261715407022607050546733190253920674426518659753089234628324183279151318692296579230646534276248945410000817161234607613584849845357756860855541787632257978401390781136087908424622302781721044961541442261993797749192976112228953847068630618186156461059723507599636498496021529331936461411888392883120822085775874006363081106421057994132698691368953078373920680942191655033269920354365523137415416764421480091286551549250387195352061467083075802801957986812418450429157047542513675688521450956564069368119443624956685972639582366684259438105077470155036825908415150731957942093143710409236363143684615094133741255718452280188702077710093102448599316567186003928321089152608691718917906818590596408375537761201776945341024429944962177219874946332606990556984526635153617419898742887222752570551606150109083756548183211381992765417878566067195045094510452845666442006076155306514877305407873772025489413763660524781673816812080829112956483831581182621279374378082883814268426367238120532219727944013271912516147005211796201234703718469576305519671525200174346184995341797865472168098008771235738183042556090605858548945099129093942775484940090041102232893743660049776794798912779064822101966115667229627802987657285784318922178382663002834972028513446861338744419147954329499232018003437183072796486035978817166022427214653785517730114503460026441399869598640472996152395330595538221770329621897828043803390394843917152003010852163848340799737481648285930443486178223469667784296932437934050219915756684926760288705086135917910206281949093590500630631564992452481297435529297600957314356886200967425200884283399395533364478201201099229041886328945464932453126673804563416447771004102410388749061484614127096469109923510252295628342400941542949794746779618517871659538002692907881410810395298556486933601497847534439270174006876897448281442421659098879773210298109476037555890301825745027559130383572612522981189042286596885121169946251384629133615564946255712514438282984269871279733108738148652193448917767170716779623700962340850413339841482114691240280778973657261821749742636714717297893694390981151235573156885227272510258542712210618811151796083750410921841620434248786295996190730137896198921725740539555394668360975014964963007560132144136169748664992281109915884194247996667462026069358195672722766031348162158675185345584689187011709658882490370051790751518985149813092753227260799077671279780715613560822209930924881784136360293729504023376385198201989511509228044181511733670789220533945265696595189517270111564162367423167873071126961353820852472199753470017088230079256452984582930707658001582805314203979711344106206716621482755538140821111939905924424783236013309038057698944549711414019501120865150359419060218915082753074997119275181051655843173900704615371827971987295260331834252892749805378769137456104152869335760536597848617640454014354041708158495622618705468917402402794712204050548252483701637515566768287910296329377189826208787619842044141905903789001108394487617880078849407052228790166032466205322607089224436165987848537513894019803396373759968239831052528030477228092647706877682610153904103158599303318529184035977054991423243812305424568023462800712113241969644194674295651962195596738236571593094047407905348760162900684063829229970918539164071198387224502223558254681926794135272959802011811682573515472769643569251203679148620177645157005475256637373858170938190875698488693506594217039049031052179493458051430341473046451636756231233732184900408961410697418291862302555492416832843130991152321547237276360078988792896473129246952851578065698386193137864600234266877492293027263663972240871110711349510459647308265628682151654412698995857215519540502279349190650321216984835550412595706849882505819896035903211015003520272102859059554509565682065314933459258534845275079048623311999322019755127942387475288470358099083256654081056794959320007453967355318819422965440587709776775998431563532342158862148866285275773995869139424375003497018186983871830716378048010091095321337431614954378697085114442979342312581842018189183173587010615324967381888671195952124526297843513494046732873551885609908591379710689442327266933591682828047200155768896447001149661575921285904050796475673186193167072904299222740110913508050737349672871766308601577475165586686073308336948833038108895828228042965493299592768223439265932370831852192143043601334758611191557781015703792112278791646807510816588232680938654401240757434438236839169718135502808896802930770763155651916364807766419780202799252155924488401870129469324629010049722015298597696728390418407706660167313755711454419966066910058292739873515734968790165112981470451076931459072865416544886951209673413585231175498925816195830360141064736389550327746573025633210500591112733965644995951993253756189613032677405858858785597580980115429304182298678199069867391291530610640129099958818153367076902129400258280758852068435514625657637574606879934131977780908542645257679142430423416234090363985189903910442259000173600055351778687370632086555451999737703955090551132190391322320150620869452367894814372523603701287660569717184635594904308523973828363124793695401731512011248268636430770381547106284277916351012555016889603205836558856945328319201829229874249732147586401080973670231787799035048404422581929755279948442612392702660186126300954568373583030563618926337310057335627585625685485828424571346537898202952205334569262960154209180658325302441930258388788501723168626690755334519836110130768410282515309790958957713308386042765767476730295040623368381195390384762947300228987105087300247450815380755152343148794680881257921338380296938684297664988770972397806392417734632719597115160324740532099690023952901375725978913467257490572560479894972428456196359071382695450481513347836715272309885774259619263883877597980182564361634120057183782738820020876554787963485905886169661437024129843066185688548944776037287585854733768351019567667595509012803395015837211899649911644390124713632426158704401470751203149169505934763221171729407982761246169106527278153074664108648041448412579800923949147444032081147024925246888348772858315275920066773062743601233721532193270952904353710189106001645811512395758634126806963862922857012665463780282083435791559535419841387463864994274926710291509154022546377965791459590798586281939112650380022033383487795422469847982579421059662217231021734084669751202154449704724990750420977085558321338589431552207893111606856817740450801029521194633593360690913608218092769589163311758138449032982410059175751217277066302380970033436539016668612775072305333239953594576384334901408596644726167043274818591845421212535199902944002122220062121096448075922457484928473426812368120141416480585892763203000234740014118556692583863627562352540004497314807543854988483144839840896685630428344731242886906193405075136990108657470064344029368916571144919206318527500044569422615000222412333687561467941532549108373509659131056594532339699729950284598945793227136183068470013554322076813898617705496908992136323289217592399442695112433101208791313982970925764518160332863655294468839434239291016516656429644937481992892639256582482075944165782932663399332891825376764924203561413082606294305095655842003722023674193750885910473390720860482993611205006426228731326391193748205562400875547520962830609098567510355329034363948176245574330101484119293156747536276299248140016658115051684191867338497266652043995034433693308438688591138701819333899656134526885185457797182157221045015389884100637956905729082665025864520148521961186276499741159054208027987943178532630989189709420259260240606828870966780466462030290699956553894160535275403017873654834054480127609652681661907539298638505840324494128006265855600831100163588168242279818595556100026077774352985130443416676403633470318842621793955631743371939665732079083472449925305795174753931700068831670025565610039756775294552304498513025774406435821256201923355177565314090929683479481702023231207788797447810422684448913711311765694709131520028571790490174579221236488066052765425465245509259033012275669180947829034040172227990418626144533503207320104942515066739234383224605380968545246404333463847207847452851866339563580171401893294615262227056290543059019917777344319254077332032841471359427433851534575319455218626954767656789987583315351002781655553466306382769834901671667544526691062261947217537039904827096181083635666788611496406535819339562193287999727934254450581315856437949553749244456982077904465295759586446886708981571261768212848199378405998263872929795548654411955190567604684354784913110930937209274201490854514246289235276632058334685091848228563780804874190692883798305133879094360005048452167226695705114462315915323637441539371215111568098059205913218125684658982855221616365786241787177743311220841249427208298755046273695120579326827598947862276139054341994018794968098925574389270118640053030885938410492439901584463457135477358488920394120306804811769311215559880052065403805331466589197639080623649975974149854314104110535818222242604781435628747701253100356927314837441186873340310223602391857751006541702518897223835165212295050536118252830978069451137453234864318159351606938368434440058918792228814487762766425646235036027824743089617871296073240773440462279655076405545716675541619848148198972099331292801099518845560277316894971830272822944556863496705950435741140614732325083025865781793192262595927267805091154460478132572053243555454582640170662794213578524457536175419030403413999909035976030869633496670190257818652774923221822460814034114015264883895803288693092319791832180935600918267485730391812024431962355645113467589697543571519725779741961520239007737417206488900573307090299889087441520453482572974989645933051127759167448803739669149139529867481982325813304517366400011734820344767733571964109518100262304439308111444623739578732900043431670898982072548137053587936266634790153133395708809552038899034615575874237246779804964774429386141093445009983974445476855019056783525112701777769502422103898791541808270746489638040186455155060151105201683724983728427997498708582818731794522087629155523214631544138583945672346781518441533909456798604120827567661505893942506390869505847784608999130239651499173751364634147720967430655915819097403651705728225627527515598451719759763809995979084182557438551401756512047947685255609011877415326728750204464689536319617361690594213055516628850050223594985932988552095334005089352394953524854296941822025699234023237932662623990619673152507182005361027918779178771326684527004785921414225884114156575645513021800000936694137832381890659894670703462584579286711949181947978976334428953227914132748082832114900326083267259380438962776235438954399534591177942063519761547333489681905970423258423193916791308648786400485487803416968498537826009274932933292613195019258091904781445523187861051945811564970043806432172735111656566794928580417876747934582034869362866736124024486512055473478685840572787155676620384894743768058110861884008293050146090019052735197960817182099861472758472211019419938445562536258258086628927705122932826555562162730688877966638223689896944755842072651968292970051336652545881390077736091524292369557976825982790541971615480311718800089733717619938391841484617730368539472439605173171235317035415261816892148438852434606102948177210256073183121073579208646817644214463879294003132154632918294026923012722712463233355212403629333068056305755000965449633689845455457841676201406244058959655461965657261833465810413490425880282987567252968541787069910682733090114459664699256406613135642178322659147295244608368826588417484147854145184767346934673601976121015718275375971504913722106520912522819508588069386931956797706865508741128073440529196240960429076646860575533919284834602854961933927171878726072549899209192456908618297196775883742777315471211311731431892584169702517168654858160031668398733942458589212988279795204380697354314645103893917554898756114247625423983874689779028046317803244198417413896930785446198679457679206264168659293031338144625095833881021959072974178221247424241914087582708435958189722715990288333876795008125194099325865720710534983486011684179818998108891170034154648738129979425876024369013512880052775829583110492179244672360633634487888000494341777567247414792133230755104096372446996810076841828548141554661392273402714256641101158658337611764486379010313972440726963044551354659126994016438807682740571345060854078180552692309629469353015104984888693297277975591340143283851462544823033171788215628732058737413444972625019361641502258562864488961442611444620678971528978746028505266351068673998652690037421694914166813315058117060051744659691863717429158466006868571929097023910402128963125559003010301565377020042771694961349970910775483863492601029970706837726481517325061974151948079541797022764122782646240067393330551597922693544673581589921960977916928120812714625861783391689768885961802860251387926810206644380882591218001685115213415061265239807323421729651857093902335643720387740665970783220953792092728247026776827165895715907421215521198688972114180295328502153714066570658099232803430474467354800633534538234974514269123468096400759834303009907078730413887469027039247717508631121225716093206078596653943081434019334765615566891495062252273456084268667006751862391955506550898346305511968123819219209685455741309428087849780331750801911263326304594097437541851713584762202434630602693862371505104977544764435040260993298534293747257419900006229002718956221959803089850619303524312286672569709341069753987065337779440575640976944101055086758448427337109086120625216597202764009610983683474019836130749238115981689951180798199278466422831445846644227730546748420507199043413874715722217451941420688093442626830581422286581333647290792003225435381275327294185317104896924106173490190884432847465996414987995761903873875639444036335340905327360273122619706536986280891171574527049011734766929421511251012615622777780784093569252017419723710640995483182144248717827820600694713074844027090732252791386691409569165057088228432870352137454718137585927165932525844799787126578835192735887910999353210658412004352240571989733074168374253093648496366490300653027768385027263413076930641435523988541406764108771603497110023063308058443547957207379697542169315187260412370429145642510693034113765099601240593162323279320825790684469650267941014724034675505687191428367814413076533471581324132623705687623580361953639034042261047427518568787073504268702463021313215425689469231292283665915238876594246584085932136732763005708810111506560443981332691477420415184997762126758916631560671829714550562945470665587158616662691530046054836306104444181762530172257959391042177806176568911284532158342189637121543881234822291571635549359866053667270046677375883182808059046816812193438726474997645744449520011132627506984639869616127289508831803554474163798034463751385145709162652883271978505999282753109284673913225868440626571348396236860595821337813531431404478190742177330127012657567582898424844519292866898628831142260666148787785144754612849536879414814054648239153572089730545073203771526090309007412944701712859516757345244835878492861455701091563407434666788877821670688465795932015888069273477045480202221319266385201487745277714915786633628841435130900140661474510472300687886987500291921738247527643402564090955345673720172511493977149317784482423614718748915944902491619454681782755877707900160923332341551900457140591756072493267460084193085071302739005294956162570715603012548802859910880264602690937218900057025177268917054819958688858435373857721523431782776670650662552145860996864129225031995553840945460111924294458109676383415507239849399658806266341618107906966655787036864459514901475279617111849243635977420997899660723185079262858786524125935150109575014921563399738945944484824500127477968964043238208896463925433506664064269351636191554712588589583964705203772776094849080641634400607133782372517432551735157748048558123777433358906608783397213420251669076992230387632728115197037598904504705692682322611792500954340470834434051437529492953755390203875482271774405728239074545034762959215807582009907056087852042988083440716079981672134377794103536367946082778624231542269973827724081217487689642646757768387679587083184632105080948717318703685831478260865208219726167217075721796021203984892126454375956657573015983343900985516403646522476477150954099152656657325336039639284922351478952303175723165199299109671981376100369685503992057605659694372013626700664711860072437516503535311908301836368287157099053253231023255471528537541984366628666456091417359655693176617917143064956673340901720162333791759869876875739569923852302798119619030212506326936352301895850625732688518325637517012848494576522921819582698783025609231033181958901997747823068396047883375846533637406167272934236634881625118406044936523193942800233902193914077023225123305760829973571548221314592652037784244879154537258520901384784976201654826246631729253579097098330457691548726245028575201887293104887057893622469205431324754246633569633104570511210387258507392979525213986593933096452731260864658730843655790978065777953100359994175721742191794700756871604391915642415264790278092039396540783970960846245496558832732021065260354163783626264140690925625655023337775253211070820658732921576772127538870780674833130679064606943051165691545764978958730679059271615520010356020310147648219283613621043528536831575931854839619310333582745418411261457264319190340263765265802410368053252420243463214550925332308776513870428917848233934981874705422811160690776275325823564908653633173377321732626831639487560907547283969697989251451362069341899388666212455537150272169406743334859669185373764283620104466298958713999742411459553720618318381641546965703703170230510266138244983719681052784011863163756079000787749953007694376893419565660916303058448057943846482360612497196969661825233624304240250376164291410363703800493366025028886361804780650913926938574936142224984433973993804473203255115538493386792721605497523347004101224635213254186737717935902733927236352911118511425675538287757045445131898403251015848037884569855450377567049644874523770300699812357939925986203216763050891394029436405016882514905109114698344057459726249164832757393128488622339188270946007877730571856163162772031729963465449257035189851573518349180905147348756022310505751070378729814685843247309270657688491552765883757075769304094832800040300712946455501288056397195419478150411682845935783761323978085387686065408431032110690203546755816729451968321922179972130911672328419745097684237615869927878087643608046424267294675853344288003357282656980741253678583276257173356799982756867265762222349479393448801683820781688247737860500800586057795450516421023822709476071478059592144840623001687076385928405102170863437688786042112355062496695974586182778970228173176701078354664820118083656308241886495787230843350277535091637505076908186126983933057054051206874913863352972021218299620582031153614930907293824730936146437286969734815183119383852744312113503810608468136649772485073161280560020637775189395892464687287467394652800193343220665452511025356998377593295106406568898810423325361959850445165288107225559361478812133739244871678574031868333023264995471678016046146172413517657623221782943195756039051186263994641612533230953059352703128512854924204925301308687773469924398655865843491781478370829043520602512628448350044576088172345249936629120597510410859457984307085942995427328289535117563405513384634631898289827033086311726208531811527619851782050906073924331373111097674281327382900533096703722425801608131393315262733376037876969635747482282350861314119311567641461542471524232095021725335418345637289860071039127320628983852744659560761004138099486569367420553344822448352713054043240795808173941849738805682099545860228015876100890089250868141583496799352254875524408673321677301733745550206966023962545675094987619481279178390757756519874475105634588179181106908277470872992317484656411157352157707273865472190566341393289989921223564059838873473999108404174187213138701662202303134089475645328726307108809304915908557203076244290901945397072946506994144742270811826188132992276476202241309142879965849773583010488495159371079413227610655769346922762391372586066262110109553875567663211965552487612499760723490628956691025899286634832591907168797580262949555761272277607982763442121965475355178699703260078960928879778868957347574459494103184273570644702519835424835678274007721003720734521367593021109520933850062735340964547922432710441190066704413225986626093141031220711273242210271419193395393763708724140158889579491546568110344219794179773356121470607308078016708286302024052053355717685135165341424916343250659201693435538649846969298999897424204371803256550901212158414844780686024985954342060735652459648952153138836642432566024167951726944166471625898899994111570959520412313341254484959976073716463983578165163313710449092482673857168882836558236504286206014564989712553934929293578413774714252304561262845049341117005174351733851091124308376602055753223939320849521569404675988959971038437467285598135575272420278830381682396376478564839528431938845702004820767475452501032579248956114929296835789817555048479309033909480140759138351564559093497118890299663381190482712743577876673389545566737407220139663956814094584590856273728402806931318643289857011265866675809891904841685706643427791932540897934137595320783338728324257330700125545253521293190644617227155337750984875425729662619435541487039806893838430791083880815173092336977948781014651739632018752070987164192597046768961214258251362442869237709643832604895622839527088532742363332752738633730478310989321823433647991385332926950176307494156968020843039844488097788514706292639100400864534135395165288471563299438145969106243776870932026621176704801730313717415506963229755063495803565641219182680222560865153926883360600394139448292110078664203673116758364968483895061479512832914558613548727955525997727253556137289728929657385143321150307940797749845070811746409447998468698871563433045875284778211283029335890674913138504377065506307150502258635330854900311418638939993463311748642352194678536570339032248319966054651281576910448735973321066309864916259288198548807044414405163774246562106699394795224240600092738785645127067533847204993365187715417853521251954269614630406345566973158370409057149177048638016079959272609133828527989941531528113254309980569083349817214193046564906447006919933025655576763643979260566367899858755346874252660939404544179746168923291270782738781004493375483413599209383856599496641152957701205194949759839552372367948627701361813323599344774256310139058283282986616353506434469500696749883500536490865555832840608376047275772637354212105036956107175451320962996946631365174032332420075398015494865109801608256320576830491840181202645897401349478268939771665517067235844448916543076107802113359998273395181827027413638323441245484100159527796553665205853882403297807106435580410843415663872482715515708092999168497658615069846864956130578152167722108756096796353781053969896166616127569693346498471537573377761487564412814529563892648719915083579545295124162564637456490449881605160672973867469636329053795859881921631303996869254026643899114250595603668780622453708687504146229593437534302657391746280461772093549412160186007134004019482655718088549521403858833988331304311024505232133381164342340517526226151105378725178974949189315280439120426410904871965619808449345338787365617947769795767775166772876679014321704640173538060418717307346881779604507910109814686160366898281509121621933155124102479739198281840123676954544432383111076113199650386668089958626755292166221573607975343622955284040919577403941536915711358164104149352692574517505347811129773641413557819870896557815862073742132925223240129376122810712671977358616884046533108876170626575888906714965256909458775595950511548485529750633557457177913805524416145553449521247301894983886402862846838584898817521304365359983552431987606379056786576651201489439547589940224076460211233656147994223365559359271312809982971275982953815912293699344420749311356128128646965249737289727465381510488048078068668180544739261045034650645776424960805400004715324111229574651973304042137204452502077270459584469970285748175955881720842736636844057481031990847954224465344017238347859145566531230397775820200796621852404556727698250280531355550292655001916136899151518168124303224446905255987561076637576378160611957632536107219460965134681609225076340032044490326688114797010602409770481722387190639372539319148102665185822929656586596012070256881683252078523598192090952295580536679842463379334716837696554206974910770856545612366289300206156566361676697919996547112638525444328116554149558751902546968863970749622546394533256622586910345498869112032754548537607581315107773161510814613794648860235716011513536351513884980966715385607280141215130314761943235369839336353141845280249847034577151676440909015211021042888270781800799344905815224074261979555508897946310557209171663003573176869011226562074610139480587685133385589497734609168640666673711920218496788935152816588937548655698415365898330441151996241867530406522229794042010178141989426493655854079424216247661162474190155544354080584807750273158870487554516229828360764915337786515360219770926852680532471644184635359646406653949704460333356937847929020556081407377467485811961858112586536714342409754110312991597088314626073853212496066922981661718357646038161813199321594516500641616474950651065431413576301027241886463464102070974789156831893771320153671691058209188515166177895647842964041805194438544382317743024865944137799197934013306724083319533292225987900478729411901253144239587965296077103730199780221286448203260788077425227665257330241333476142320712009131661013040975729236670088238618731583261829551573857696895517022282945130230738319662687720978600564736774183172265933175527084437273140739945698643500454766078442044850892116690962708484028537791674423096858150974877547436846319412345041628799547229727449315474496850067855242856262924626302376378173002303654051982801430409650991785597655967203835176353148957591125887808000571157467411052892800616256777285565519831569826821208148452813169979968647740537370126602815661030426674896787353842245297449650902217060258787087997548105354132268574486209810821628218690050275250437549441852712004382152611609574829477332576616893772542903534955114283841184840987864860932108450379022568890286078722753119066995095932195075354786344477205009497817734995024587204184137272448290983246675135560825992268761878949721836279440192477799747857042386189422841118361092800186366277050511314077228100333527611252778587822308773724289366795168916761341726405754322242984376193870884418847001348760295183808475406563214222702167765761478185900622266302534535621316972730586066643096323658951603378346552999076608825708405923300522379776286280084635628736520624226667870132075382289362190482022455883252871153007847449845737897499786562587024159966984017072646931428097054721923193677886592600091603896532741967685644803626145083651027806055850720881226170681362584008784693891211063573736837303439936758143406431675855198392205292821281864141053654247547196348793145676224782593025989939849907253318010148879167918247804336908175485206755068172543369970211609963758480052889902503229006970690167523281748588185996874620277987930804032746085455001557286061118830833863443951461120018027157528468328685573565144872977917880678171048306327642657524058188929659782249255527686396045847083069551800255978337135720949569165425139844990288274088319116277680486486239153849214204107270608509798120264660169996911904769325595140669798026539208483300545876926360104981046316281013806935395075285192742796003991860030941712271768374296908323898365080514301124334033920568400141427793610815451976492729662540779502808909182876694848907652382316736605680789652534366148019126225859455437204737254139005759944365653965403010333240456517198576824384457391433621484962665815628221847926232970460797027101638631545717181181757944441791120820589889147277501898522174029153280704976918973467985842189433230103910695892471199346675549081681536007477731211018067155560262856100329137889569317723883129152079207105716625675235874370643911006001869000061212660942165043673659856255716238629999380792171925370460208269829187593951046630024916585771418195824803095756406409092620234044669215254535109186172740643066595668056486896677580418501764492286616063748811899876525751856481335666366550484174360793612521413703966493692499010542987936034436067360845355407051195865671215267025495271189078502807909631178774212125588584367484792833135858320532791665624105032564247482773339227169484576000070191771184279049587230249725864955181972722110307619427973953071550748056756095034628249010136776370937447393188807184791344354818003224552742505963577713496902146486462082933215107978101127424833746299604861710158360743594058432760529006916013429639729128642727535708469441498415882958414190237991329793739204733030548022110455649772788255162132917027526689954448966410385896301230323198608400940908928217882802029498886395975970077605170873852172915430992884590425624146273065671944335360875148316424141289577848241779712433324298093049800759779798885428835505844330995611147520225265868967698063529419233081798049418538436284034890650004177907061365091560432136535489732204418304693224507473242674327814724262199723835447815937654597183006624262537749721281325573060904693534380203508575131647833000204776187262236919501742312795307439312946088536075611459062118746378644847668518384291491134503659502070122618979799747518773744688710102671628588672760561977957366780910759378937840691906283730897833277516998481732530367727092869691912251354605514766318454583773530289683386305726873434086469251974851381838089493640973863158465081265364560436818585756588015893406436382044601399280803795537592614984365620177242785198220181290998944113971483579587331017686194528690726266940921738586804630905474325736754823525881852037118983770383283184025168946385735417150933009220473027537764304115574749356800295268798214702826514922419569941807702011131102211729839660275280260920559184505811733835941316424021093442354990786411676736271231871427442466016994880980983237856822654883322356350497609392625968375836361636355928059530053137297039305066868077811940605872237573053064607096910200525185255601569311689948330680947282525894500867918339724741476611586250764593593643316592777273412921660297757958778435748614348877970713501992248100486864669735210730466579421546847968914027978478920564790625871851855540158904860844002443029581440466986795448115952778578172556063165104007685383171529348387836831922002764720007105771916493215056092879136286722388448770477282981015784882403296878858753319059205284991498422701103153813055128516448573856861168571580130450835346499862817365945620867715480034107689905573510425874978910259175920161688352450935165947903144954410785816435710162299301315131725899326700170303431650950275576256387838219174565115008669565922252512346732543091133750048011383056839559834311058935607892578429194693757419516727321166050469536260803057928958724784625642736091393198886406448626179730719692874974884121192459294515362158753621863102123780409753716886979746603311104101657908595549605251573889938860509718275409178748309317065731963675006064578021559865354621232611997813656234281391301656699487619084576778431006657379514262963905082075517758971637233248053431725080303919350688560413641714323247748082420386084378830305932128089652495150352598147770913974311545355786693482518064770858650775335967952110292656542455016296698313804033462772181066946459845761294650758866814428067977451580697998551974980333159002168281473543573811262875215048486158283195577980803663643748939751561917478161936798990573200388199852557237987059815900469565436280212002973142823440870670897639726676833570523865468799592949275783913298640913824878346128129595317738274054338602641091573255602207492862111168996695721119314735610045532551900939881192347980225294818494201293376277882948893534483233491398299648715260120893139068077136796115154262752849850098690474240670913863209574005151712343657255492926532784428233863680541590991547258511478963053154607058386901221149086843990316588080406737126030149493713742071058055111387201501376845086358411762489443672670076255648758103724174775734675414497673790867073419777180964132432069200940140185638175488542272853665723658535355974118224247301331838886729194402046022177840527178546284058223765001761820466268447604610079623218764328866075361470927706139478636074898244892089993351554998958697139708917591982399896232821037623139785435134449467807065154725735281112792940524824233019697218326871219432721320242503246133500181679539164357808860525993325373515348176884405630649469970493273462271651661508220547173626768548311062530571726028828736993786143274851864230264870644653843022056264905187755650395019875150990293355221200865937270783443977459489039727176981366920027890784289224763260983757962318977909299908694116399405391129481019947457650690334056718607248013045649030265856773941786478528470314521667076500588985378357613941376611129904454531731210963945220948210036591575819254736583639699512592687951786846645024873395553171837995425677507977491715346762910399568826840874947124657423066673771028598543952843073263612803076131992961614960517115828568939499656881235946149945960434414296716264845629046885881776025713071741320612239015341127010282458147118298400941771666941378141328939797759983898431790823085618283169905187557005265543787607220480832623436653144662304764996291763958467480398125832121597065357998951220289215218224370258320139272706249531026448388352063943919646369134361424781497243145763704217465182693467158301887249363347417765230037273950171510310250055942846760342999727787131159012937236413387761069228432957398245915154917792556581248097961900535311023389347729715753283431112387033960939823573495202203381135305572886116036465599783912752816024938206363144881316954389908629191429162265205240801757825987743446654371623823744638112002590079439168153502890496506849998251536760409283918495267791972624669688153210765497796102902525526649211720816768155102115657081353832850609026877641442462808045840820883292195421405583303711543786136735771859243360234918303304664717603980726550758208674124028523628601536702328102827771012738846821039420337740698364135044442563886194683062948799754884156836619427607940257303019964285087727990478480567222384436612464811569021091926871051810382111497192263383654790171321707741247930531010094423685277023379288880414246123055824304029075103238700484830101018659854907801473331674137221650954084587964719678165587519969818294324722637965193136087777620022328516215262955566919883502192717842447024385231341093867860437907126916529278057214438462515342369184654312190385831963060276473814337754832151486676573725283620259939644943005820059650734351277577992439042821008642352866265124075363128991393572722355247140540835822633799359370987142925685342603912863427302578982347010155492434695328746899731228519639693799262190881118972597473498356365562793314789820449157527989381367615383484010753000451218158914632953002828145889810881046431005654596886230836217247480943772491881054131905965315338243434075985141165553598429618620959766076631004272196271749375273254299703815123067172826980366982350630208191673438730961048799648555545993925649409496434220483237692053617949706138358970145519327444299921681161103436955125474509185681408834894990018507339793082187902168674308327876753623201399215965483849884253378088518406267283199940650440713025673582384122796565419164950551034302398295734742106856389284901227367031423925306826911570774182527201502645402610489818025534234465116046236817144846404753553632839351794930033854424418456273019545313716959073128330419788146401645583874219187952443100381018778872763742495118886489573170920343542831643871362095454019089873195214666748070225774339649868458670670593250130664476207835755996687061508983779539561497083208082055893873419731775530542925989996801663984561231440195030079215372517914037877227750780140001552766396801776519814501246066601846669201383559677707054071289330870718125798252587016467678129170951639759834035285387280973205231229692343009985465391832360285285257619765117029264333248354896227656719871675320084806859448917946652530577449642410251524107006856926395279481607370999155498764368459105504516773038197193135512487554954353783553157603029856052850534313597204332409587164869307690329850608876266796579917086813864851731796134875963946390778465648435255077748259258482878880127829385159821938093232340857231660149628477254151690869774623993230560268560159314891974579774568657911227139498142293364946729354276310867991634574715881146535166762992380092101486302564552877016365663377673082739828283569333699440294183792628372053499966515869525423534850369053436993713250323975266787103037520004444104973210559591289035809644642108804377739675525201691736492447833373790576296425985642162782360364495607047229527857936391342871836913239434280377462209451401916476556751820393018998612850627173846018105608495096286596267403082961997132508103100483922279091195268020451592981133690711829846500993075747826225283536662441824124702169673056033126123995773520063461993837088552521520401452701840142428671923052610857491945692355781439461284319262353638022581561445196195830153171252367992780685657976989876549011244263241559663258033505882036562853676028094800558875312393332476283998092881237191857283102482872462946412246293519275372520304598702372849641809278182771522680825978916385673287181166608725694274006988164671481781463519234357840048124110608469968994577572884913198872777443550483217517109574417864543144169762112810527528375625661740669895316657536306056672716097506280058355793912408295432157008950689906147485845956421465686163855693045369818208075874803631080781272846651775305563937547347098915353135347296129143496079840077800161731338013137446582931861842982138625348068693832127472572939854752624626092841850122430355477540386142365700699481425774034632985632710619950635749850597733436373082602109014929502059462813917889670672891703273948477375454059376199788992994676034146044085790008659621848120636100558914386301404210519677368051303025433675830140815832614855793202039097204738336993888510289087866254987438821614513394540262122580457559101736654367060477349664204709669681609629315296021942327262242832066297778274773316263942428799321289623852295690766552987784437843460050198426553401314045939506455786763585782801090800960585559636530355105502908492237952846523701398619604093677653291288784184589540609233486337646055887332100404135097143123204549967805729583720482281686425497195912505428987243129632766793349466631875283126295649437660255585156592402249569367030047361597354382328571789484471025589676816166467962717651500727602612474174574384580127234841593174386430840333119187676564372389836208302790688507133576176710624239650299904504087029067656007098224238356194109322947238999410902612761027543469963589559495069251716128649063336844346109734737140766974382187533609523895658604695074822278941967124909520234559639120105433949744584034159554614389521852797748277168833707564525418617671042153105547311701589584828371220409302730238257731284347127410949832244026094110710284006236739992001455551161799295490989633592186701697897194819175173452938988764277531304646122373381511435660259683138184338395232507474997053835511425453758189602876821318597393853756792417257094153046967242551424130143888364583210716968531137542653789597987436211286803270722122419421203056742029216159001232539649725271584867442923984806822101601865784611572520701945357580904618275526115666297145656755016428103297910650612982101797998373714790296959648511808718491494233617061648018252154914844774987733676865172852029160816837331619303456334149932620822510314666469316703707133814208761718413416369552996358297921929956380149448933803880349609483928490740194470175657626855836576779333195053502621958411095217911810778318721707393378011035876462280540861225986378077213395077783643974106668060497986525628669810071618287835905310125860669655107134464911814708177451920356584381746508173882723168882841661021076751957643547217482828310872369979137436734526615166919911023599204588532439836447651173923653582004353652931660984191913341544876526159267484193406306805150316945389639542275024359275498358072974143662054796784164080549396490993770414923785183345452998915390683605269969464170084703205323394704501390553644602135905856438113951531918032875853210395306901112869019438837593774327326241290717119786742181691111017482593969583355745899492847178366367126135655975052589459616901915445173396860354943451789355626069431573363809888888820147638119103158989773576587957409267753304688762895194036504043092633221584698894259071102225257933599447433739108629994745490151320028650668565511222018966356701676052057577697342409107415272961581379928199350772850417646453541655686101779336985094877286716123658037472579236358090386493744718620065205822726181770977748815615647462346592463761301749942878494685549007998810771277280968943975669716301061135806852033222345134715384355778446773651299428704119918063897174936750553445439790589555923199046488829784741810117417082493383746457792527397437051134758614129925723635661850258332515577886665688125563502583094311127673636663471596572074911174582761458767261774154946822217298423818126098608581468909748743997453811086937047909138307323459153067891427748526265796250711096420763781476596572497437918317408119587246266595805966354136781640784545624267434813069483155822605652631310981064990273021054431208338475984289672517083567725213870152688201690965507194577801425828533458713814205163794278524208285451100129503789277722138967765981992896765846194838829664539891903592683673856084123721342956720852537614632201162908815603766856045804902454593025387018529747038522478893089203931588088889530747879370483124871072480880592843784997662121148410297257540300450258143515680036310154809187475660539312625862585998210341098283927412105026364170200102415974999532995260943602580076945166999531688756605352644066385459927274197192326342914077596767296769428222839776361463190131163388969753791388329569750166232077502970053823481577487627105661193077014699048872944779839171436579524045415357938540927007885571908096138602132469786232103821242926152997486976281870571104555857433114678069040395528171562593485882312216723181064523129883693245689931840958239848310192175842259599206670726624691954982924744488154919963155240693735694630009564787282873096614895689886732566156587624045283787606145546482275735812305519676906038417925160484040703193880577856782639220751780949793762601073684321926774143485904532277684565367182418487562603795050900876451220809642062712539606627839733468830163329062201929248334442379367955981578120790265037895043065835601267424939600312026031476742302653388129683731223535320166209708136678565901055512985189152694885516066076965812527978485656808172354481756695551895949902172515455567322374343376854531396144894399051488990822233540362063873475861354856765619780062877233562683103143130297163332024377813936095492999515309342507528543388555352633928594722365318705876514014479730583976645359969398641437213164370663943332044258712060465327810352163657062440518768824756625513379019896417215282165667624799292657630358626357181006760572093239440140906243140235318155726508128015571067065623968819043820251575958055112593232934676271016939547027996799148388142082247093883995801574960932694108220587306038387360267397899601063672608664164076307715623923135032898062065415984202979709369823697444585501212934863184268417095841222878233290395621520598409234019281015379288584209530551535096855982845155689106821536871655132992439920889863482534571124045649321371281525036197501115947848252065045485771174734708808380161763522710077108376164652143537052199218798127621031683992265004405418441623474697765808538489261555763131155779242831500897863917357708593968081545327816696954386934790539464188406136050014648810300881023415861377510096858014317930826776689073748738189710525351419462982136683215122878261259665848585658081685249123186980156566394269464577885624589308323596676239064333491701803793570787490037579773115526354570926058622879362376661055380450727501162867907295517313580017637708627385553288583621007549100904487307971801230594071856372538998051824486646941036167574309224025827444890611224058807740934124070230633632917830080264452901930454011374127291162899481962601681272454891634186535246328520777045247370423719907453952702586575514487334281241565431960564449752913018173469873902758887572039519254118366984945650118800243725941272331161126201660708293008969180180869909553070997383635932165287971115498083298546054051386348609749422255752911904825352153813905631114980320784485654193472436484321608462817834586251266884124005344465253545651107853579373228152328502061367421618918990349682729329997417855866738172084287819775601720525835523974229377840573100115080053766880811204949351815578452101782842768504997744552859677464689539190331201800623448451677087302628545692784545604287790129477312787263129613352199647022870025851759446424236871643994463045332911123750989443785581083099053654609609765223201289951444629906147064104807849247694338228911191791160564964273086421680860902762328790466105499952246182149860689616357705055426154544108570817120926225708514753633775136459513169166743040127112410069762576225295717167341835842388122803338566870925382674746240064490101293961278595956663476645707207282746293969146664466897541522169466931575177200421349752831096323068955834935336630126706381146508445585699054468974649398221308029352585203363554113169009889289297015741302807469380095377974369340847366196759070727294656090223043295320202525447206474475059871676153654989923558059413901594740471625965863385568419242305068230024642590189750244576141679231707681799103293105491190303422229310998303467185266471801691427320440472292602412521737387796693009301554687384683491915080746648621338880032269109907689397930095404943274715086216800023325559799740759956722085490079600037811202679106131112398484133773535643743143588722078378532829552038528534921702893737179732300646027584351447399569113532392565189891781415149829933861157731082725085816968370882481189399636865993917744178438078678754535369201360099379512758493508112631535580649284292030988995333365472037372587649391277101899592482584067360528468055864731981458252196215697491492448739308479743944114481617823022743416146123348792364268521155797971025939045241030893945076845690753492988611779655537795401122064470671819046703081933088570938327332585794778147521006917370238776045606334189733919902405322874344346293649127345755112058556262939003439963895180156786798482263541258622798516043897170235940014291151640986255161913890881684258781088678769941169809822410005326521155222599879791786209856291446660791664777685782261239226928902156416257643987505218035927494887981022168165854391384113596656376718249668660253519529619949475345024174154762455593594673844327295601100899720968492068958471706457798102958839807633937708384519384408409597238548681497221337637508668718674637981880420287833725319042410406220243588750498802226226144356798986191169519729695553706842230217500899495674353237098219077690900227890496196657219391820932378271566523558038505339706082032343999917677025535573666243620662184709560502658571441603740367060322823798555542476568649585817399677473494398921013928718631419707589630000559153673706489195715922871246823763253556247117076744757906410328944659414052641111107312301968584690991334448467392007371822783939061138991270702787951275351861030932536180248883435306999552945649616347781202568262826800786220309348074630674884137594317087832837541778792619144961496036280658177314683694796913691508999167886996688062695440342876358244690531145853481793869448818640381419884738035139235363120254710814403051765641542259080489149340638293888310072261552014562713307271166207299546023863789555925765374888622828674230008173476303652079295171707623636342525672926383007500188219689774479462857490139223585683155087804317380183334769523223977603693371700187511416633230017978231274278635545865538092607988565987533753397884567325912905611332114915560630168639558669060074708376443115554924052725841654887971360786682457208150838929751994734365489422290371544836310108662861649451724066899618715159585112044098080225461022629672973697682121652291579615037998105416925071857333001925348824686030444225798956509493621444920499478159065733416969303322103856711046092949064372216658264412492579895087402305209281286647650812481938565431763610037638342161967534381867234583395765186666985020986005884300403517243082979504750385301656484224067457970927392631704522635247770732872090501213525817224550105465362659897646689620940038863286239394013835866861753760751941897116817916349184603019181890985825033152218334466294439853842834482369599263793228944399761135031733059698049453549276910107635703620090214887428451657563058116454168317523862718377750209658768085760603475609146522804601628104332981006078490327346269664756893326071714309540189525046234487613659555297620684275852666085663966234002757305998348714964318838595640181947149444594034790226593981745628315139279647548192484352682590438034880331228302197194360892150422981885016706172241394389565513378480220686569054570832367901283340318306941138784430338269766617145084972409928285066387444756919588697926485980695138250268152311004467037381312294041912782898924977041846995979911323536354125892255806129443991702498448232648503025194394602928282608347118336558636341555896994537249926461698098205263271045489976770617128607294589730736989026688656711888351784294482823315501530717102190509611445647707222967541625672845659795688526685148842696050254805270349596444760900590169877965240922799670318071400857422931870329584234662535866819537232425496240483590203280437656089295521549617726042660149156639156988649550379148788085495806564789340751912062673091260488526531399729906075009064197892756095983191860543333020896546463237957750726525828585138802843788463469328422384601104619672866629583349875727506933008342805205643338242604093019903041287617892542208105898922649659327894584969999012049251586477122489237494018035489986576108496120048118541435000533684155250749203937889943093760097850085320397601607084940971752947230145732524279945149821281570546417661165404165776460579156205152664544746070900233230888012669540365194649281989347011999612771146823622345882375477651985087820524348870642553946474621891987885419020226291071446167603556084907561363681819170548511606745515444080585806436590620192131655177883228987715130518745759993858289087231897489678981292349314474816505311744155903536704846750995036494506320037618306214624668314296009814122038561263704555086622283928874713460056554864619218209683648573473446592748169493772667326664067385278296487633067350270041682436151545372825764939386253688081845806958103377576515867577195786143519318519046956386365371499232521482905169724144643612046846298132529285197253335430326981624900825806220170514988572413365091390709394492741939390015187997892638224609804562337995566372927154890628715702142966254421521793334644988472332497108378447485520349900138065551905638314122226128642047512806311159811763765660230057843590876574501044930331189823857288497094646966638126381120188429020131220596554118691691687247151973013869165839869268498718067029700783988706936509142044310943115245093135342005640647218161538493919464040038316724806341724724131448363168756114962850246199253685417760257139315151146516216731431142595408389322626699946807664954313684681953052408654917097170230462579512663549732143356580654149563851673838769056714833901123715698374192102583191538490098388949263146503016669904485516444392904367374773774148647184694975644665392154895922364090547266276523800018030224410370691517398062312902628997314799424124852063680430155008879469444337476259610753456592867623166489827197600104513341399745432517903134760492033659584309243681260600632332559170189684522104375115325074923987193763493972857230054099565639386515043366939934737345801741284189829242010464582754072910789847448143625546321302419505406987993496834919836962816366029650687064817291416275785622947282097708762641589722433328756409039302082389569436882707196389054249977918925429969027622091189747761819338975666462549766897861200606290642778635386193141344406538353756569598575490894224003660478601484752571499079574784218632896860211856670753675434509479913045155295641351462533531106612388892168213193356925311302784127435722275915202694973206130347059578133761375782952279261784304287434501102210420464955873616192678097708053045532337600381254963628197457780392682398502711455222071652899574533485402838155772080169794510651488667461237300068814423429967463309417766220553527491140725686886281996629541700606072102352576337113716638761134767976747703104936525167737977874111947258558011013213143976281083951376835746620872508775738960241809687130978154524595648754713852975858732973838311177032830615513881956482596607726258089676316977355064818868391114285937213142228379021624218474583050335189007199270649861457299529063720537768727138458895044613544099631392007024371485958832233637888219429632559635530863675223876219166811321485003663015429763955953008898115479769059289432923215267594857323627581073560678684377909261423770031164357715376570752187485647346840686846669343046777079009972845852940719976474660535030415636568985768546001153592097180957599947756418888791293811639894513495282422463271437394377285182444023968699459776220875974180975327694265938487677299578283182434109341851455395713365015341129520797657154020933247130795678974049064344157575763134376407178950659206760040123143639588681008225447498139750404036569026644486962431102153740126564181123994109348559016517761646811193407059324732782399592584680218092847393344174883585065998988568444058658865228379937135584590964215258093333504758424626218663909749632450717729295684654484377604767396461536942847110591764474762509746600347361511366042496124424755256930204535260166224067933143044396645508773563771966984558468534696473700489215632163629324942549808128089614703542388192670083689661473915446885889839102201330168382913427160496031827497473590209671709933467107049949330995170472888091040080264902140667559136894769664694876022273661239156486864776250503393488062615375500857290161097547073209006357442494474069199949885757885594447861887940442524055135010447333818390216920225622044152101557982190487663277770641182257049248301825741649712966601106537479728834358236276917392781267710843753434385292553993652277029429793231860940993041010275679529120408806610335435070245580929482703783516294148279476623080447832146254134134351580798340326975367451465785304735496217200654393836697930462953297612352198698868416633787062429416597787691176108665863571086985995068192493853516240852140564729934632864352552120958350283500966234214074249082132248299027857953740457959647498777939613429226978095425591149310333849773164857691067507404516319662516119267129673571577307604299777369738816512858825941664648893065634779030251777133366792421030510372410849136598906250474916329773957554287591060314028557742637043928379597757311209964752648197918474209696400936162361459220067888920093913577409473380475363566752934773891428290878347071850872862911335799352547757161161995372369915126118317624391906621690796316088583616856612237836225686023680559090488843582750167386841055339234958913244682510243424675454049393423816612796621018693582836078965923537065213958193278468590966685054830690621647044588527406435199475403294206680161332022434928274011034077111492645438123003497559766354316401266786017092974868149484275164200676653179546202746765683776296961415091068820128307234384524708236064538612718311914246039835980179699295111248576576159098393318607964157076930358815837385869367617456688918701672499274273192951344465887542219595416974309649022372541055210594966714710863459380755602070039957441078278636001464197007489156351241864169270811634642443950585919076022172129270782514346154525958261303607605949429627309289972244045740395040256617565163889527400255395081145503060549379612502581855164208923848146101008520784366389109277546977597498892965493569881979958548109826247966415668840483665242881166912615154962474343558159649205601353010022253998943747964412035839019115266040667620937906126330603603609328925833828069385124422010887173840810088873059446153958088948252819524834497036787868406675945311716407731610198439879276967573884020895291115743344265478251477053784052112465913171339468428365015571598786582780602605683038838207422587145280006416186701133613681954707857748932529692830429921507882921224521761572692763384890365254928135854724310587574483281296985556507062669923506574429193035033643751024134277100542461521008160071041481312340726557345219795315931060862726202737191228065230084905977731574355340589310166358902915635825872933392101258487749715489847753753789969542466599313767425760127550769298066648684570732085092396986401366267752781476602678174421211302866308861144244923007740923310596662411738271884089397548753859845105934367663041745961184009084284013358619469471444867349276136858371927301502349936434834204849447656399654090691896068412397856216816893056895777289235692916075187592476788340907822859211621420939270549945400534850886333595514030188866666369310351434165296998298909693091586691100649280323580263079348747612507492462525367671500801905460441756214044592515112569320896049433233104243994397114486355418617826659721807578237828324923372626834678173911644742251063329235997853466204570342269921191000589930822542884406306457369361444543452077333900116495348739380876268382648854180748252051541102837280796158131753151470775344103090159983139546547586249389077250880724604182340992516013898358029054476193274190230951186535230690216282383569769049749865082311398398239273255696970936144848366129311926955042762968124734844765754525379143223782134351789782652869509083056660129075760193821811512018067841293368649741371772038815465946007432388532062715315908412547196457862138377087687169338930655795420916048665870592304028495373287976363114668217186519559070168693754085267966200523073158353406711988232861976143632720503971596007597767281422109311589480816956271767594105205916471806708010223012109350712037531907028608859258145797755661794024650071108140133768750893438618590288442764247050346494230950892430406953361519485753460382099917593075697313198538439190986964086652173753906026398716404225098594978680464254372427761951642821432486723151971721798983077456310010062945198811484061709206180523807408200799248303849445488931727927979913676089130850496202712702780442288925019602146349473210789656105054598555048101461607885673319191784291969543120990225814819892998320139599035330880686177091800261252397331598506095130272755887741737397960770533947153570169300073845860560713781227827961386271392784435982614326457856027932827930780970478407094303703191030299448917283234323207865961023344729136616522113943812176046518889949999714260070409117407405889886387626082313113681775392731554016058309141369982862023919561963548221725432602061965521763489799047193719377610997254685008782723201012269326542467580724501034879204104872166519218596975653621603460755006651899640836893938067612670795337623373236977375652508525093821790423482586098672087626343130681026314159672961367269513847246486888126582898530820065214694289152894799459761856269757119804080574653778099334280598427003555478810536768562649083606013197128380324865698505526438120401361677261764651877826625165628768319393194229717548213870292662393833768067761464276138903003541904184920182170423774683396624632451746352146670028874998585986936765167798688501888903548815673535807667382221894384418898832171569102350991676747539348954577336982372791611969793496080923921295532123837812218261188077788677954150195513372426356485570256347393817346643176298014816690097875300480458243888953764556361746890523115997361487490052382718726962005600717312271200176468022112964016634671064473048883992740800599629234982310765356163261916169795987713511303950874745407262558630232516877682803215208971948632870772304260658316847808068066811960853498807747265882565901468788672038219225098481000611952787311634414209615603631825466065920328285957280373160122811677797196899842792544258263759289368804088485348918843308580938931731626668419379417352812464428708358915089841602141103316354563108205584344856049027317176307848162804569534678192015281964686747679545883170909272606048812408573480390178223820815154345967747402811885568084103669051803696098694538263640855871406566465153110441234111178350783301731676351022046507712453777067409967018833350145263101096443244569888124619074304699263992442746405937492636950767512230333438066661229643485361453885335406547212825010628459423773409299710179394335394464576125826537680054728581749911714265539813036672215127291530271594084049218521944153721793521931773558653225013566947166340699808456652793927712857599783281296091322751020295134910911678215156175065032610626598400539141537729303613003418402207886805298892709557825760010845335585428052034870338553247307786504370982845149744165892635725177429534905854928749166897546740862791030020544767688364122730938487436047779322326383152635126429615961257339438714802789725159520738432284378855638712473836356230968973541196126538799622139046662427959557025031112267032132665862782697558725867885805059644575899251213139814485934705753742182672050042104925189382855939628148075346216502264878800368567305135619281326507892570510258598207517103866757301529290857052161447152233672081198419097447495051916609635718327811980689516752839619810224273625618862949180918496857598198994379650726159237025307492058032088789966448163243564219878963388184213832604884181984933728362181456046327705762767912025541512712946839704127116335381369562055119151187959376545409560390416482119986025234804614036440268632960745343176071435399187902629681867518248777751824950746515408998938456384707318674778242362752124410011100354966274492345990994062587677742638899426656183338772746687311693558502400648964085892971290783219923188201917331351256372499328636361903458180788125419656511240526851745392443266740662337503121562767087705726958384989557524199343996986032327839274742138396040310013030094489420539706121851955586895431837420001879504536263255827912500597079121015691678452340313547584969459483431446512309983642188077200926615529911606494025418424725350360340319782345872282865672589576283086394724688831960148809733175756714430743638193360305052452115154210444238866450355855789427831811850968180634419209774028491331019952027733558276020886236055015129012967945017313594447644182869312117096730933116071869475740539937040864688958638363817853266386537530816721350708541388933005489460126115459143012999353833871979416286118178127764814376823133998395142368930965746389540952307192834511402669352064699761844875719090288113367309574630759783008111512987106107885782699541254149367180156141890674661668557928381005815571938528408382355588392443325825870033103851697689765360370499454918431122001803997670005100934847415377570675628402594723661368910932680808309757009446258573709821320081468553127949523241336703258183277647275966165330134163907352098284056438893695961028253986024847628550980890523570363392681611215111557484264571636826759070829365569086921524607134959548240715379399886127725726544638903395074750452164154325333535614264505109161519426169482024715079297210645580524201550154461303114906565270495007383215851056316081356244494811442534733240976188378322415006254995648731224094976608134903998419197114822782353896260472641140980775682319966783246586792462832557841246613890445806072065952237998410262411710898138289281527346013044193627369598960716994535318714545164541119723006312266185916679304808399235661675041729119176388278714856538504807016369628480084632550369608532326371497453402829593578541727407661207899293606538259099604863498959222850076323900226883172700361768067597475743047456076675891815807249867515181339769087164305888889475009602839090187235844050518128000946203543269785054390678191596587984416422029691396264718263323512219367785512743909920298421410215473450142935386405416779180836372114249760525887509699644497036582755767450810666436407732152538487372654703928318969049622643546393563358259500207847124150013424263333069495016612187204894002364482340153005809789807166519233621651780432305207166168633095733580295332793816619506273990453379744847996996430411402256516363741739145116279433591615500828788033272436664099898578171749301678500724584671659516680868442721003787693922968938575115247494744269115014209341546147716917105514756419519782017674091675272571337211267404587977988110736318789829428380816643742489047069534404324144569488664901451752250589024564067641432385736802551827118712694110876614210425297159569348571892216988627055677290321586811903410771349773338791452730358029958170444962753236291999707774083459817611400612175346675691423834829509255526886878351361432703681483064236667833290689539077525903752600832351458184534368785847261741047625825062250063668808516537139815284516791080743067027951413511277127453325971440230068454434657036897554222065342721064995688572505669992850575291410597921153417984454003789004345705537260724373302014844627484408842714453880111890146851317560221934639696454692847807660389135500687185243071575085269074400175547217307245305091908377792981578969082658960385273100906430806556650404308796632937418695998335516265779802153577549420591527645777883373915128959924512224748876090443650355325050835979356013935198253506984462923517223477281889204684640511208650184518699137801785996843386803557230272161435742813206141964089042483121440189380459762603077083740436717548423327533985618735283244327339087304370240543438692870377997583609140177957537152730737806658432134422239400930133012463246009473237503500287902738897426405405500752544680770426364363495915616210749010060073386731321420662967753749818807544832259970391390455465444243221455603935255843999871370671352355413794284021391251675880936605699618718299216361427943079188053874012279142325775474960032503637503454499506645676628402491580433286918086287537960761499980634012251461605730237314608422184116350902148886430164063537562108558820212704660287553887969634859713358188520341097938867211060858073305923725845350815408082255427108918733997442495494564968477001559467535808536553090615593316463702102614357130769890044372433223844694237259686616617865227732272886894180815519860024184198592144775149929876566243919799608473362295953624314210235652308454081380141473446688297106960796733052551408331377166514019923847269984636546512742574619605956474480359615847410760973251406999000953167727405298963934719318575656004166200041739306915269228595098879572916316382636696911817231614149577643846338656840165617455151651708464816753218636871285939294393382842343625765396370697965055562678442875885576544702366649761757589557672745407396163495012529700235324797277561668638204648772146909967630370990362870365850405175072799249102754125836410267041260554548181263942464687391921489995083188275487087943092736905711068904972680430852097153337078719583737433225575760277735551750973735379257656892460973386969466270221023383166699292633756045223195282897212724099026267954278203558913472601961356347614110769551875233789109639404970387900643704406032846084094052140502394131656212923605263512320345793044767963092578339517014617650855040380048983298673931091063930015478895404099755127997688257545847026827895785668335853485125403061319826841190671302254619315820054470874580183478580082320442044674295932087195795457840686896328637016128676516313710403252876793134496588996134214421100991936425869151117266982832174092388682666479956204170463956777893841938793225002706152312114558215276621490017817407525149509282523386085138147298358080130322471742527282801815757345669708909495024092960867136999883183040750920170111779189990075671187999738141376212100770364068341946737504716656100080643949619832451882289552554057539015939281313745994060736042860878875414923075355726940451192447141248978713205885013501201521523485917726586166890692757814855569576200574153437345969223175547023895687148999913513598970014982574733235491220409027794634506880316726818308557585463504498315486037925155739090331313254772833233417698654776146123543430971939389605523211141755307500940524521026180954050855596288910542991595381114564476344959194468095529199589548049441841858429895351397655203279889889503336198969140118875268642363867548751128513851170912192709636163465399042452033080438122730630524998055672989474398339229352816856516754557906158164416829364356713831237326803571209545928330119355580904571812764025992083694376934455689416292694745898950495471431506094761258206062232872428207962827392503127633034792394208596989194661554050547861351979288040350529766549862653418957273878619321055076204870736678521640409028891767981917344778366276722325432615580179495928198571112532048779560490090223131187292325793077295648311670837223825489572565207964330687967330497659729684152536072035034274181895890124566958041082613323754354602589372424040193846469584513696135388596787898392559804287750478178818744882182392546767613896876494101062809088956151036846303230916603673869496741655808161491187715124209851248498032269625366883292031675042985797721178614317235298166172626114901765322606192196232768508847417098689217744871078638346659052034554024980431312371709054875650655921867142922988578475091571076528258774982265527964591787192096019859876402593062255203863518087031755957365943945874476541908419905827699996387186711394290421894126588153153470730702447740646391802001965026734582952128096833336905177140416224412110977972975940700352797536100342726499457537307209589224666182685833023568897875257932283191304885907921635087614333157661808975146277155282875442179020581131924693466064882912054546597397742293846924749270449992668001578360282921178122951860930272398911288208593029828206117014743193760314318489716663134603043986950253982115541231058182505745010876243258983834162316975664071891654329287904346056320007576353214772778084784000963420033094581120952091966831276669237588864370475834666979077747796826651160775582642562953340145728080035966337314239100579004363886985858268977919225622461456038504798613695705350377904467386395374313438940445606076565702447847940095451810305791844778695230556350828283258839258464314010725361969294160693101729204948962311807295526966481482884835131283368147834711955908850228967399356639138836105424742608594534036106400059287040764534863228991844407814732347000407132329205129134401788814308638703699238710214008763984708585073911596431128759501297518322136828042421850252868060710577460008345121063415019905041872946634722549211136143339475293983215519396194307342701133044393305843498777401816931872483458711404015477988991502754112785455719893872026047793842933715475903825802139407449501150934875562664960411421016485539563761390312849293988942234055248380939565629039962917815975661784921997596692166221375557099643951434792622560005382484230528152883768602013957659313755001342298406254273037003180147136001663087879175315973187966121184995568267545185476731517040053254511320442243214238970229573360061988096064101768539019675708243187368179329386764590598354166744544631343108634783329568856646535595036414929873478288232689217271128161141224741822517001299857446581812175634585782663668739970322195668614097526991718690262792940007166308289154154204238884472992831216515208828549619250886684003248194030773384330152409780175953654423695632151075963165234018613040352160957425263928962357460195784802824503923811051530199889986029006509560740527551684813191035107458389198456401616500454931346239012233800096225190749330562885005762270892269501483140254386417484759857732523281061637760394860767920925125437923247750128418887421176089000889616413149984916202356288000214692038523796248002584172226487929589390092872163365017471447482383093066932163536000746808417315493878565458747241094516077691425391226031667491392843834036943602898261354233630033614450871267889269933083010500736024183125745514057347551307988377303464986124865734789590816694609623581270284740915828655632752442110274633985312787034885355583572249001583208924686539418954689773253958178367131286091736151516494403733228126404598698535200015355069736970687288694243786805957566884608499986451773718684159915796289707376768921711481390150769267147830705499490943620905723418688152843584085324181688276778005560122750956799501762922277656068950162689869060637621472980396651577261917476016161411671057713938046101943727611320754706544540742786752343462763061545253335696598912280910313836164723011377332144627006353685162286650815796389865505116227367025234231260940426262993124402555526328353848976808459203817537698510691274942325818931253958075796852153602968854029802920599006938680819193818618166811949101152981749404983899017229674759494762903759055990516266038072609268229386976311930676225951279866764412878383784416076022122901039138763350524863949279696523179407946981794897032395853517211718726089742855900089277651049761158491311357108288288836947494252083767033310573473046173964873004463068114659113892769775317387914519910475054306025643299114404999261446450783060994569065428221174369026667780543646538057069043876616444153381676821531491372208857364222523071806279807129416313712387260317420940267432362490250273739767555879101319945032810995898204721464338711508819715878990542914458195035276989461503549557587191289162447578277972531724254778779592307904739169489068154853817841278826844162863424774350026045751547084732585689660339681667292975306207441574739917381946866350175025091012100368810146072851925141209147796186937222874625068588632687820599767218124850876238148419342058132595275353239938317262585888435449816423526589280511357318048784776084539806519308889667135181442649861848686821332075220498534196422651840159192151349981456258713977515912628400307556535919037217012776376009257533371264775397938630872995795848632850717681642548622483888870745255700080675154439565907330731646258215501087622999006142221870110484040159275053861635387946593487431222377166310289967194809653644238528146775158576497003252917150721993858964743472771131837572354385893018731033161204315006358170770737236218597750798063130822007043688245974486111930729321126072693349452253557316421859801900853180252179224536154430784543659000597415950113563390483101610621305955470544414996496481902302164369377381106317750265296768642394096922190608427330323193332340439106234165348777206223913700914425357408831020113467078412719579495786682604945919619497603186822840558806647843451975127380848571700627876502533433598054125872168759227875881846768552313643429999976667849982611580611927926425677299532718665131027466150143263898472489483929099857815116411488132597408622741686598699751280544544215069285651118322766088643127607558787830606892470554453866670595456931950973672250983466397299836715239380447883889300686416763355533958651402685194416173332280346687870988995950801821921794562875708550076728229979253392341316024913477400713468100193371113311646555296159075264232799147749289946946868784576587533183050962042895433639712805502804122513050915127271848001683183462029238661908059819501637694392614564899703987066947286274564017912966084494416183664866642387555154396604605107254058417801243888850093162200507247457380335837001593156880428790619300138552085323214618964963286503107499023944708402546605711798234978472832003099407732161767260244950704914747969506504673798671539677255928448673238405980195569060647690631278479294654508839641996887116967542655402955955262613241951120319997397056218176896551330327657478730728139343328279830226072088161584193295457173443548819274153764402827828761048096241757887730823767433760782242425215949127146454906344608821622068277467560141876918050920418728365144075829931212128665671753727657451902827826111898767556950063388767473528820935663584124642713177399298010232175804338365852660920009318519642575875298719184220055243661382884325813774070913791752689871481826840756485995212412483533053969998833215538509740151740477398696366284073641228709193634783181557320294788434912644014201215549796480104575911794256626874099973879573120255390477029863237873603707957445285664072015658407059130814387020792234681284606915096336685972707265941114681911351486952088243650265087998367902346401104705647263932536658436145613350173123301107873642024338390400173857397322220682456719110108495426260228610038152961978457353027168553253747932381850687932661167752124739526849926802660111859967643329655294057202526583714235406460207329277195317408728295218470421547757328520343801776237480081274104074988903993352777716051006467045920568455114818942938271466115713253266992288516229269485202396509296823289731230970052134122134142048443175554690087654658812372678897863086882222261135048849040334082484806712915865889350709280191946998366956450341733717773417919089448360127508510729855011607335178813436433365620285527393961988595257379732487330113706652761305464455696781565836281421031567100212525353166864953073072588828188990688099066604389055021819257569267591618335213518313585814608123395262429554690390091360081576523690082820377945688535969963326794424921809742480663451748903354468237922922054813384564506610797593773387436580685834022819153322154790899018750566201045471754132918343864135325503753321646133815396373379090711285640432574289204278106007831655160872357401480455897261154549962493022636275516594961547920930601116410024641212662184017412091884963935638083462447293039943876465552740374413046980315473104097711267110183843956916853282586451168932382454459009477158045161590818354900463456520369821496713391161445126738860845621259085884334880772442004561495167045472498507330160786565322573544067264314834223304252014094089448731834615223084815850136037824694051478116218864494899519074915620288858648656319442118838490836182234124889119230631375014111508599947918813698884734733148993488679433377536289119965355741828730275956298069404796106549373861952656361681496137451493204637659229855551170421536193149326881633677943504789944669194037210584809990803167580125698492478944019345031231776848125933258597368313603387233708310083708548534789138101501108741375611767494863779426095807203875024402548011751951333197731980185995184128092187996857566110719121992635242908046610314205613987767184012107158859989376925986993785104253278635278353173526691846360778710718644814802502501521577974901691145345389638529509140424428019652060973604965709415342986227259387466745253726562410546947910076682682359741531353099460133146225567308879523763425251629842477297526061331863501055670611516893401683515081373428569707442622324830053874490940559430543047220159735374439594035885544986371257920159277587057167794106559904444827411343867211086176278173202170921051610162353812505317875046657154485718961942832850680744851883679393710298808770136775342136345168915018708517320514167735728591860215310412289938017987802464627241597521319139610567607301316746338396349791623203970762268196238017365335234845514132311446903833628711102448663763673693521424363529800058279177743984037572451596274078073233736788979448715266242480078615877848792398571774891624447509308481972024155705636981348636948342336267307250478295688726254723253083660891336705898846468302752557987303488447499268848937885661162045058729493683159624168682128898600907234137309963526103295337059582483355564063464034662565931219583806036365840362952585520967418278204380614458461248453661279893351174014880482935573792217193619621617076086061188275021150125108728743589783448916399419720630089044815707186261652629087077876525656216389117112938301865805166317532767925473435819523096306705304309576386112313747436006807064706688984646489061194034668676791138879762569548141959053764148464519027876130317224984890571090945844530736119266574802752337976436858019046255057319262841518453618734204952822000738659316955315702922716783444115191002445658393452573708013365808746090049599949026505431230478426717897595293403618665452901812921971907078138212006923490286611538659111950656210252276711956468971679899362281415600061008455462014350268109122593413661490418363829811847568868291438856017297750792078589566390834065101053848260241031150237575189249925011633251712719369839074938866678389617399865320382006078801399821884142861018509500305352493327610228757819782445709620315835473596862495069949242134027397741670078165365509107035790004946952207621548299409489615595204164427006184815694010613538769760043922010944690186820397812671847758068750802494548517081667042717737425413104961489679908574265329642207489514796959906526194062534145569869472092826851981985432119674643119532267917984273761995962470562688925377757494798817652722952721322709968330455077587904823188038421824405348513874030147087155923680093845597316843877085166048966239336568622509438975826171271446990448637775065069798476513877700168904542817548065648244432414251330161941232761029926910502150581021937127804858807375369362602974643422139056104300440706144695486666629217091425015402630249581210585336430767479244612203334850235256777998259106600097152604518184885463139819257443201835041038741037233190882029471098565916903018464072875752229301589078277126669419246898017255860267898523367152613637726013679386224397513023304806807621866713846844609134507788321286397128590529231568234395246510043746443461554342379901414601366332033218003700975755104239918893671753311645249615102013771471068463189808933533377086647692227705045497667513814552640299585557975028163550996331383288855774648969321099578727180935728287342794125506291528701494786996154000326774080816249983509424374083686317222278693005921087435255286285605967352793424181574806518754883516138953859557346181344694788472591412654798873126988168891106004738897019449869505405865459239891827348531713166459921369771536907179974526021743829473767690297209421358245612430946374313154059641031810514172942758325154661051382760002158253194764652216541242327992972637905254716371422763931411711894917668366585962180707578023694558935194490626547082321484318780643152145792695321435479177768690300774593312052017780024837381044699008589563253979875513798624692832045509975930641237791358815404177745665117980699979311102729370160214021935838396612825941456572208527703472707089323295758763102068733278752068754994273380845665179979137905403620455357120149645608505265481826712231552693234225513598955746845132843485013137250329904727056734808733577676469096019162903023290993264379585616854907992112974494838929966267770981661998339225248827025053438182918394833716935247426503088241900603459416681187395493075358562290133576031872733084782968688106170222097736458092325851338085174922557628153631432871964310402035312240655031533871026304572276196194664230921618010643237674676174587731279615667942843691224333452055134431263657208079756617069480994450260040795112727163738765099926193006305982928412933703389345218573453939246187431053202256914180712681166458074352870737206062266016226861366764754471318149572949323482281372491369587596742367188546219161245400860605218280695431475995494378030348918731194194709775273163611563212880278518803369403139112827266061748416032233910331768978989307892594714700567984191287948940013994830267989246801965410132004941853499646150888689559272910089012175724514688697591073873277678261340211042848779475475226180770192409312169918596089161135164145183731823491475882919020260633879330073770287829774159733004728758034152177492193091063232009652546814818740021767373761857319734785154497586421018984516978896029395741063391232422411590193722846726139700967665763947058037766042733785568873452975432844055436622632840227608050223456351858761569290534837067169370668832697031132759029346289539488700975738866197215791290998141524307155208406074623396455986543666953156925555661989244722402319563554470079125969527707630329468305454595582904459135579896086531134944838027988600250579544502499254416894463580224360251801892181972589484569874053164086145881226110215259400670098118965632254778382930598884449959901467111907422620624957440779084763087810429119468403541424491081038893539572177353883971859112268986081022187770020693123075689264848801810898034257430658755951191676355220584653170523127065217020127950812710699368374541635184329937713297975547071590133785659155203372189366763225901017823615597604816644326293515575292370764698649684335771540600765049074206480144989312545772893419917114227835695746100873708925972173070549086223693939520565891294833175854231554013819831803640304191972976495654545487602014244491987804471047038318748000510705803828077753424559491912958030442247749736904470616796639037573179980947845991507198965795174566988098650928735226463701805205579471864939488234537621966235785382803559947932986464260238307692705577943006257402487870662455834703898372019445564521457011352865384428381185484105004205867730392845432097409201678529399878301452894041672783544432283708644299064607290726197585971103496309019332517165620159150181752945243408091061755813798434722042721213760602465138373878907096109333779580694492814029937226319726788616628034310557939134611509097860786156507579028030810520398179615075944708568958877629181520765935299355945168030345388862023141019292380495548113709814880719913754614006065876535484702478927590410703375317640049841660819494734113969745360784323925789683161311262237812207902364596086815681982611550919578232770958023000364547729734618081249968550139352540687015214225347531151733992566855762211871100985645073622785542503326795782533852553541570878106978944775106643942423545780118840934702875549781316460908770721937062415857644571199307734521236292935791224893721759188481302901220265581988722872872032773711675568010381571340847095594802631767646274472456612297290388810119087665494837269857531232407409787120531981007239552792829440007412080344209750390062031461467920641866985622721743159496069397220940490291142520159229221721001122421927422038483654174460455420799085920310077917726160945717851902075101587410646796790216193219829308910734577975647532150094003783617760522507473258104768339818775465260549897427364766084420634837209911424069891001979504848613056682455468378892437263495556874893244826100174328433020321767787030248002392750542074623975035325122457232218108050888446078734136182284267348821916509731950812358893404724009621396682958377256788720748003850975200190306919867129252958895046383514816191493679821876066550837240971674034164455388788187059095204628597296655872493703247897017040736175719263762349560704993736652529337750292406544410211794392343877251651220675330193599642260664855223004710993640577399734558968367298133601963054360066093468213669229152868434424170204624223806637487293819992133946023701858832065114526967491747938837066649990222653597014658439563576976875467141361492174319399880829354997903347549888445476140007458075350313783623293204378478706921058912995327108508503607200155405088567188611764821113631546589068895093574811456273769456266792539342254876282450998902437109316135614533966852945477488924699620355551827598694675381139867382006617575863626875828495090418390196925220138447766078656624253336184105848048399819223613061648748028236422694247486380612430303620187768589059419992764859222401411437819980254193843169368725377491289049082768444741355555980713694244094225751365371805439356235398190961223523006964917726334240640459351169105059658883765918617260573680258545441064351341237107414742054612125968704686969803778486747209660755333679461790501129971387192440032263749115434857471133294190553409126699665122594253214891623500953150838601907939567945480614388066891553666697896048853807166885045613398401229782905931622233346539600925104692622466378603874437360363089114487142140058557516200719355267951126733461274020478871001073529057197864444037858466816100281650631237989627734076778711017968299422927467899351430636012269201831833638484878897415410985054654336854505454735374271921239723844908487729497229944183215836950039603054224054777468173860245566116010773236674562632273313775394510844120095263780250203508059646348378734024841134419718611934851841024885361330346331808453257952019991819511597608200568999016020123117653267349942829561412247449641126899305550370125856594198879406322164243387760668252520551302671879508145066069653251642415430407327874486174884453642029867881133728937892091029686555792763812416916670685427999218549288129149260081939505535738714730272982007443193489329996323822128550915277665863434183040994567318005965503313519550604034856053206253336369623137535319730475387563603116109597227535103278045594881469372373178609614510206423072815567283256212069903465389990372553501531166867850052665052754540230264512621492687476703158249178798855272609309501724243374464145327500269344739630755950238619065578218267949238521680584800440419693512740112535335154398417261191746705456783487876765295470019341091160123384074636809570396188102602173548253349386201387993265135199689717669648601739714153857932558826611632700819442492728965843457822163106133258720677398621627937409270477648472030043006450944618166412866070461163479371065922242284656094034598253536729710546071156104756377618048307037653966567085908083742909808068914409116766388526870261165047226065089399835552462383603047442766280257609994175039137963709642186092748873477116889996759216339715326403831671666586961214777741492760551282196685358238582313311677171488833146196828553666579064600422656943356141562360570240675561655468050168473804129323378868450665671612939454933857415669777133452156829162661072094060945883969604392184207326655028514547696399213894644306075854656900480736779039005342396382719822159521584220458089070979119264702978222344090104977435108673748139184647369371786993104069583048558049964862708736684654871472589669225676734945086253440897153368078764136614262549258594496367277808112544826710266296496051969508135634825420304009003471975992303460150143616551297683227329874044532904549634015175663860181325170626015313324285307836531465396142991016927877860476699537471685341551456662469852097228822688891642258114527216332883683359910653580019987509638676933626189190323483207811383338378084501255849256230246019332222286976123584240323273798828086763463844318854089705890610718648109125873350307209216369497040489402049755390473769434041991541362731931934514500598944299639365609375225716111465331238249620975461336929531726863461741345483967561144844689963250136994188398834272011713778003972247233318344545686679790211805023810628636592193054499973836787437567077031112539901954153931099143505996303886074981768483234340246688181326181561208079941578545752658187886057517926803514756180665565674874472020311559523732080199551644204240984884556806882720291292212924126476553965216237722240465418675181375187658864662410724122524194986394297168850213552452598605169269364045013205565411019991800013927614356375072846557321708810511853448473939763435634441645486612187808437399776559665870228006058779483968660179701702522623161339938182959709352153163707166247660354905113521675696173856844535326237096389227643785566286993289822480661310029929537600900684067255407996240742734200482735896773117519240208148186946100323205365330414933015807356540610761309767329994834038353579318180123197248510436006303958304219133360151623658602044150987820822617772436327086003559051158530449088655209690058828665555015011903066128505200574759108962306027331951017148559920001764071921321462708885021656652401611997496547789325892696576621640685177879835949840637091135122520485083499039778971889462538461961199029403190869703936286526036231082140293871816556804747624569440525374595841162972080417445986580294074329095987224548231209687951777604236746828026096037779657365871723518297253079780770042976935080390491972860605509082756534297096834554609238841127106205643360612702614550518679945255525736721277972524862188633914949349197905450220119938502972364125552506051505289171466931582047552772093085698567112526899103305697761230189106742724237955331063364502046793921487931359678571535844538268505813511652440175599010178929566070596548385423665365866213414189965554321518165763608572627217968602984686619163240001488768557005274612708060708202373117263341623084572662799991210709058937127067273519594111041457093137893951257055850954944523165356520103406831638300712208483764273157195425519817475172178721694663094611359332629478331771061752264423962418834378510971512367721766331825024419530919074852769848140921082801390517612451874712036994273485502871052084854728629139618761566743584672141926150649168935640037536270647033183972439636186547374191265199357984560944282119573513392370414616942475787242708680556976110961165611365610911167813210622836180516234928670197683638607523591279271479680873025325920883872725861430052785473532306427914461693421759099726915990089642888275028454345196130287313757954167981301418963572407317661715275995280566459776349519432838397757116946665041929457758631320434899787805536695882286929628617573927613882730253133750356356397739269612625029863856016416152860635752739762606997983118688342606341550384635927518630809311664371469398575533947972796460695557575385251197439419900500226519980946788253236795381413468773341311510677057295470247463981049953466448603821533524640092682777183057510858703840958590537120951372447781397468056169171375890225073030024840612483687094141075812710323062094121780982660062125355544501959914135725149893710993213929295506290331866864965866785945652481566492675623408810622499225515156179463344559087732913655454115700656740304551158419286151210128243717027704235610678896843560101266560611662655286833433266767645280440099804575846752863956014681950541008566085548029002459882018588771065924630812498413097376793317127202732607482044045896238130968486149219133360517777689904028609738727824525948128435783218253817409226484405321802043562741190663261453366898386604755005116832639818658493257802086217870683693352705597232468951803412361445386874524197305746901037442486010806414832184464623638929844915118643300007611540294615586252048057873878491282219900961324066450643336726471816315524103922875348659715235848037980352941251253053508272129458583492401639091661780972335555732885426657505093827250090303341105056686974061443488492727737849028909416852403924219271869504495070279718856013907605581299370373543606090725674499184205887509003661285203305671987682594484973964505524369551646173050231116803337822197534712478551789223414268849046419863171244528988230559473745684437147425512579815690478620150281538822268396375169690550371835479345222472359990908474559547980580376813788809685617655618859856709095468829431343166989782284860461568080360314125230540757807528047537294537867586676934641002410592577914498022498335235844315351283236982825604573939492073190840103191665901706100601829881231774080605320656271130134211385703466068802388279066983279728133158058349455276443047878589320463225066763053388989341486245252481640565575092098097828107340328474591560613287168534612510026921641472403781688821655435958907053263816323113231953640773303772948158879790790592687493207516852939433367509080062998873250348819987801473876309697774198053275878526512347144511637014706945989008021860219120655265126606382068402515026617617714664689595957669602779005023831316150478755205128467871846754728109705973007602881700928510766741104659015648097213462393314020780872160593373317165327243987574520750413243297020909138114613705296586629429683184739913708986131073216228758117274311080001813021193186824234971116030373796750761677628214055159990239570292839822370891009487122670150031816121633513872652247132139747088977749777184083785894036124465477930448554523451762486502132820699449159157116623864018143966928226534360635318808821206331911512820768213675210149264880869511963020293339304423107334220244558786092345566791624963191502515365749447092716510033213525637165769519026282694359829033372088853308785931103163054359903940354459658328386509527388706379027337083048168588593888057161314990920073281905358826429713200404643607058044243752334532394314284925223238296147278791064801015296235089627953874646588184312820969520396388874827915125679939971077260676154494867448058801652939742784288088210341530900356129178812625987805917746709669980094451408926206276778831915802332957602496311665046899928714442516843260548083922151004162944655662163040547654515434048613505098107881203515296303490555985678491426135544874778499267630005235231495841185291825964292066799016349784677642968917905121064893904172360786436202825692676067332373360995842235913519724807654145756012388107713467159868406200995521862897384336752817890886443956511749902406553479252838449905269934182973912064032670128147282552514618369753098052720452228706360752852490323950361582866524655483806654500779349741295205817077678175494735183119312464785754577834150016923763771971533492491536195858208989280629632172538943980475101272026817536775822434420057155799280492648833386269679067046415380987024569088783314945156482442243118478288323169167882857971094766428695530653920067937291339763801113833891092375751716021605822283329163080960253675668046689681960297317352000690382978845862359275803701495682187539039465120704970671877103961955438627259568301549652388642990962224024378592963694682470053447196621272524496726684112658172670537632356988120189229385253087946550063142083438479456966790223930583532680211418418737071353487713993975066488427043483590555570535966634303852399281526013076120973734453182967164031317113785585348452052649694307493052466530499681187614163384851962200739098818314784640196137425887355668606181341767444834163295894116159618168694977461453090521558789194506982641883956132597864728334871660913839596501636796782148476412218982930368581926939963551271666830015334332430678984365414834611335356654513010799470183225800732450205766740657916556983442489316139845213800894928045494233998446235507735459130763560997460215571299782225794409317054310429054498172055738925516398908852407894669612743350029201980836710303023695983329644809548718988179445646180267502976898199418808236767123489186161288897348797107146645177831379056609155520848628659332079014687662471155648312229959670085942371394802380326678180783243601043411968955695358227600571814530263786755077838093826384038009503799819624849525390080261496408609453949600927196511720428169371689508916010154171662356700702482405481776699531044228329261724765952802073697232736705498443693759878517556447632318408390862851157641137388166298452856057275164124483537220224823051027472718372196446256631998178104310594820409187783167502284531545678440656571499423108801062677584817151367309367365008996350569979917450563410489516269667180878797647449656563303572706458004628382392107040429322532329959454909443260019195743145308122558181172837826788320648127206764820485070325388789478468653235762749538216588021175068839000883117818094924952933517868058754218951643537498774172138713643354446605694610674608220398535791660289950071253985590201584896849998419463019459640554805012927717939926001664199759193087917043262524876789197189295817601478566118473336991921899190267578770641942305718442400462547719256296847689592179822187546634894711536474601149444605828851704226552425262650655778010572910247432136542126103642383889598366918523046863195433991774370530937542648107206525502808178491983568277488214729765143411206497100782983699535007235817303145293020747183675620418865747743955568319029757667770088475368255452097255084609473815042357037876750788093397283903946156286230395326617173480691116993540950317604001236916990394032998654439367948244034989029168147709062393299341567131356104421416547363528908931895823820060677256537541189578916269936991095673928352215060517640024589412948501150788434782227958968182441588646899946879082054047215646591613380918213549618527628546966179048067321441686138351623917216129734224079879872456586001278766986609527449255558483863282045633579212654438613194194693122820254561807897672137471456974430532521345539364263839846336010935159603528765745195079061360012626983262647988967838940933344787095237935438059124422383252822126262464015066932121164022344314020762369738463247379556925672241308848259423426282023786848916274917762075043001613970893926134100916070046490218483581845514633420882173313916382500413608451278103220949527205087322085719875482844666336691635855202873934106370601782371641133558183965217591889482393174726667341142455669657599625231362647222603742444586886617584822948216628665446225324846157496847095665066851500426216260806210118778690153107168872915452450993468078717369348716944664073268261629167313222111108124526379522916149634673647517538106489635020043628957062235866987950832302019769492483042387006257931190552729716761896549496186839697524247515667171393964899212031599102764095348475612545755977303642419405566221561176639976900665797422702987262759298439636874333469051781780324589013108895191598964743916517588889161828595577284038779440977047688504891878858233466131840337746325964198451656830726247785269978866718371879807115733305130451264508626221287741156350687004819496156742003604671464375756807796236708139466925428943927471767291389378807314730150480581661181102376698378298917214793149195673972137529173825454746675141437858508239171159247209736287169688654839891839618352261421520163669429834766003441502130416911569885174398462636730076326533189070290104753736295121821253530366914331677328296867699023597491803086343426218294823882496984773968542272897074628796068012529651911712704857348800404725850697919589622374975799583019694711501745675279907807034616474888284162652927080108242580675518674416371689810159587853775647213377685836727026235222998183784259293365563652789473455838670678398486979397649620862038687038550987558560231061751367147010026480595073411751603065405759651760097741964147963113492437705857277605535739605402055869346043591466832081410873380784151232324559496822586652806154981220578252590755131198818284616905677729712420248785806651230975874774788630200229773161915642286637868215192457835483667697005360347984390304493720489346674086640857902028636194611667194223753507410288338211131142623054266056164878961537343462712383423310294332864875555302944856664755819863962808441773165238117458902606674806344006825132880829066651130738195025203028456373022810497728834784672010408726679946976308760395850263586095906823504112457872840673520511264877219315442009679861774958984326391164200523568402027135521010885581225751991103990251256495361280313137672291504873991224241669170186954874513106463107362560431959853879931170204845128721247674665471645974745377908048500542505850306184098944318148818677272695947703295463723165259861965156896118118262727187683845569235359829454546178213879274745476688719012931703265230982949783266529032504179626069907535306261251977097433436792458338849844798622142315332305129451689013266172061201882277737723286980402806794025011678760652009496208703178552602400577150788284976365617166782809799296938078481208773675888780303466988119619238691198587076621115959533421188901132410049594984134301939241628532010727530784846066428612320256857452612640616372800751332480346320523823829323294792063267787079036697421337557380764511626512053214040043160878010412004469296908099336160229011015635941394838286366430816396987088148939224828682810002545653578280144475685490581724286428467375566450260099395887458794041213337822381921856379560074791468301626127864741935669027536601874500122280466583972712396568125687075343448360534289847400364135980404947558911009310254094920731417777175255328511629292322585103860109747403847741170993598205999708498589218633481040706799900535851930042791032158773135504388398115159737025755189755900242640216645174159646480181969215882924001170315469290776649887451558489983165990969402485359997723675668120297562865904071588004478914150057368612232914623232054647567850717453666334815713972761688561276743007816518653746269105679171597234345840519703916312580106897956995059637978127430046234667962196206133909950153155899313764117422319185722052947031769547666882824089509445424361411065801777300649349862505692390008559362910021347100678413493212976961434369734356879670846995355151473374758010282611939796704061651772018448380079593594041833938059390442092157793155443982886552819680313834049370888053963508618295161356583228624448775943060102692335183061193701856418583094015744185264696016939576621238943598741122114029380931273924178183168554463029587081617710394359794233116837660390921518234228681799978243119042052583331070535488406166690335730503780611603884151004258580259793226523366239651102239310393607201513105160712564888979547856589914966768946581735601804198748829859438405427556770300829324076282728618945928546613965163793968311823050052856231434221380555178973229988871139284190821921036665478461077292229835156721201906562704448804975132246081412520235953060661666637221734669145119655647249829871193139904180840246390792332438935418149263579098960801576933947914363122250006103345344128058155795668837492970579309945608317819938419618664606972281522413635920047102463276339896374342546621439497241325435015869270879171830315405299242921791087757232146421632222769683423798565337088330646321562798877550058026531974494966562351630287392466635177753308015811878454311220905985322790796516571783786923444227191807594195142438002892000621771912165278537501706760017412592507574988399151722836355753431232307349040666396429235882258289320618648654809942862477095168115209456401525795418571041879238258238370332018045444599800909570172224872247385708585603215465241338902133775868285694808714719181319251815105904877320639799575861038645113069673510102781515666591247936185707170152438313139155461817768547289780218794049647012110583723411850643279938116102535594974532248406418030712417328242371233263302983043275706125487593896798372937154850292594446837584559352340651283896104383037731092434100013520098149135849749870491242501663105356394003538387280034489491047529450650619770792852740358876650567257415194697452416063578813486737575709551822759072521999713869859112513053073450470263418016608848274126157111781511569260013985300303954680022170725590235598793761196386197425722575159433130366035316866459428783838156682511011725483431710801822365507899741192123075949473754827615063912214341140728686717456848282828144028764614045680053063250862087523604072572009018397823767633364358259021259340990306020445951426765981682283993598611182888459681936796207853628294180909604151013638562286790463935076182675815699348216066760637442942666051273105296399797293911905346084409643199832184786659130224522240356270850475730044690929718494037445544686495463321653392980237423613817684357164737437909849757744471178741328860736928329524128425669197028073481309180815881151779679323359198398412251777788881162475413716668957646767531620221004193629902705345785128841221562060898040117573500425627289996153926765416899320360498380190975439770289920968160576229674269290462979331527292153460724095626230883982642394450995672187078929482274718013331929017662729649401484836472858617297562831811898489431839426528598558361900896366692042809864433924993335980822925756678670199686244661390650220424374539283953950514491774180653600124039552455487618008586395485190264868049542665956839133290192554103466546212942201550060509656315225223704455109808882221796713835426662119374169592425191609038469590272038734184021605475480469121143389616814559147146472291040056292746195987291559128862103651097126258923922686068280115500893517559648180411212569041443656730257159844471296254431860607528234203964236948116758486491867334064738008978966971494217219528826853001934863513061966974410113945548433835521578424490412276652988013047711577124874332723008885221672577064575485783033077128608057177348742642331210410734325410788414388421923160275726743971837335374422175868513680269770289569376283206221155030863902600521503769123687843206179365914085071708127384916545052332436731239049233799535209293755172201894093007280535764572355866270167656851866909479158003255860397328456627197325611904447127982875894597050915848386299828653355350410832272798714335128434395877950774624935253064288423186722277566185857965118513000959062941390092513750882395721060149285197102224016647821393390473704100094978819951870912253920825390963665688342101337474681085239353544758750344141338369793650660491219071399201087367961448345015182577319585986225188680491279404278305678148653769664135200712055556722259901152242172846928530614066440246377883121759433747827999330483047007194767076931309067784640048094407033814222582868748401918047851796585146103572079099871834822487701489672723693247148308932699732324850753476749465046074033800710255425973341570407936310846235064340510737994357466383013826803070804777382754888110311633641665322825605150864244891295263185481608347704903459192640665493490918339290137746064215509762552981604789603266108188488769025186521840629175745358730931323352222531619016029809163011606091769358271552164815987210795995247464437055871562575235294242574832129816010835248277743437604483690820513246312827874909128110755388813088174164770802737889542854067992168824001208808973104524747176827048987015758495541790432320100786329194479292723572635324727498533337177918992195361794299713314913194248740627377347384563258071064614962018913023853052018828490442149656915412269522520149694875292891422706976808972059105413058413459315046013064101026592799139607140220913260722207613679591332048594709458500899163237507476601313656114161745833831085997054425778083461074891834073924728866041474727402314035482893994591724297390820627497129737227605021208487030674282384569707776010539834018160193400027194767742398557719656528742761938071049409703678618925926230995964682230344837349289677922680595530746767196818023447285506468028869965111918282700550333504802641577389977474121680190243678395069772098173618751082066545551170676497309560916128197931108685311457875207672270147764666210625140242935964444956800009960099701383570337494655512939790957733502609826773796571977322586767678490853273344490763590118850108633082690895524845422781956500407721091199597512114094784050574318934865506631417040875611042192222491111354822774559195264852807831125731163695158210757303706712646210402343807998774610460729609721116972677203833645028885644937485152523895597727092137201470733054907733557039882663306216681700138447031432724691199351800619061924823824708407074821990440011042658099014414405737139203680176208706633805257391914555078884829704061017127107707887372867787253762320153321914710039372559200325989284348563585042328898877574729792267333728063005128182515508021956092760380619767237969563249744514018399722223672250139926395057511936142617944092705234400704027538347739059414654802218001082358566083821220395300860894539427967832085143988717021580393384724150479275510080642316633914286607726214333206254318742576130102269526285166507590571643364308223822758703967476836728217727144630856799189551070104329940934941565909689505063101226700204123411020739531210578727915448378431008402986327409393838417860821065358233456075219552831542290387375162656617620346689763389958390079655402228175712444711541865989440968472381893765267036702500409732253557857779297639773607293308998957774674209434569494327655588930539343381721574782690568503418918493147146745233392995902813087725545264121687297919581870304649105203416750870143056798735431640858358723992511927591504529281031061304716823911926218156008411936929482512056413362566166181237450669649738705779642824465236517861627015090236085704434896424768887104658594729778936179507251735524616433651266316386514673541174139503815899586328096055678082114199200369773764198034095165064741542729767822228916578925920188854539790989633802671818310207794095001441075077618732966949382428478694925473800287104153768004917540074602604082254843231714576547594603452785822017986036812004185456556787346105430242645344100287482622425656286108857629492901189609672441716730632752897325629285299070600215019559052974722423524456980659283312076991118529349626899715578411686868781514341683512748660498843527427776896147838162600179752615265755179068099017494749665949710450850496201985396777521206136068889299974407844580899654521335192158469505374085903661564742218635609077492829150039731897060425888686873603866670618006514392677021227516618203071445481536092030868453200055486429045540446833327701387899548650810521829709060589428968981582480251226505014543824965262345372006022775255151012778838544306305856556753694931316895387579627169736305726231639929464021160255220655257610034276933064731062415785677212414609770785108044958428549577148990983405271088252205609666541465573365494150702017956710905800920688583584677499975506601075434247695343529344665088603990218961927162088580448414470437096775782280060754970211224370365235134659466337681012321882424382986493974395122223197991001696499225556378291581560179708236390631356689210909306704163465218844681903003476711825712372387385382046797850651875175005663908204616886849239207500102539089996930919469176263453711368280178232837742981810275012441670878211829105995762647637741391009738104890575698106923323831935076100370592458696964083107149412348862348832788702649882947266775461605835760298065554462918892625338094628797647910159947670933082723261201970162289972774005942085909726587907438980949736363159554973184724414657196304106097250447529462137100502335212856215885422178073453085670966153837425810759900889560051169093195366640987339570365426932615020499867692908281324877135791450849063829693086330898498156661118141648904806058632028702735313970310706840017782383729337865115863012770920897799469990954681578074225348221033290615311840750717741300387278799905436163526684937794119635091371647341140032768726209307525620727904335980551336601583532797348785418122261027417502652322767275035576147838282327811960951487955912010032272055017827880588223996239988666048709515225222815689193585514006496749388190450893113711741000988758389832080255255824479965152920677524468449412175419715259885178251609669443907860535217366232078584342081592502598350192486915444786227283688750427940964048538434344777401163029547405583631969529736044367423616802886616743535769105874829173345998718400552544061447989921352670506880393375505108288575621174297792345976098574628368722954498848052041055697373856076780843019383907778216055200649577068313643419957691417160869858123170003192062128569680617500331399099683027062167726936340149669297989485661348004432065543880660413231443894150015001405371590521987349335885102133463398445532246979210660568989100226165426049164114017120661457207071175182063777309684235213225340396459221574419677449621491729345948917068029578436977441268038232157836613832215357583306138734893553740958518258510519537625844465063859453618648274949986981060259052847995905109062071129682759217022765041621450892303605375347834114449996422766033218754505062842052496712820824684522655629845689704627822509201840847721179076500456832241959038602900102158011657615469692701005576790395604803347836931588706773578451583711224483591176351323943752889257781239821172942732888733222025103734442530856049887161333769776514024167972509048877152545171831614160156213246096812685016008777716499080658559910799572870099449487178216325194234801271545133780532193935445100221979424723776597227767874945014180376408644182289377146339940326155191371642615668518624955743850399026337935590708084098889114748466925027957190860242732655991328529599696219473223667463651278299494053505508139843474369880560749701197934794734023347597749380228049606656363406004064581382701759262863238193691542900101808053228029167060643266211089800923718961711813336094572760045896537247655410705595142853711556680321574459202407144390304780244025706438122762516528672211776881829170538748591831544942968007232631616260494286742119871251403184610062725952660015247866404330385675652306497403915834683037385932350610393796494561223065695776994250931055363890236876640754588184873413790651993913839609240182260011849914383630261662592939447684554304362694840754568511070296835654930667443421292152171439863507738519564268541906952045651159676481989008332268285539289226569714432967956147756192603599570514587188447213788179255036228354177408053820665915255978338759259824804892002963108322269635622595977113434351588775077459530502094551153830618154052649730601990922593669136849757270395788551374669611592563672473199568882231209866161807598600943737695283824189807972076006511405954385766806515220825115162354491292936027970013937137090233919486113449248048491679911346489243158254149942019927584819584193193798449559799677068652199495601296858981927838883937168955934354159858555212913562605844115018601382244401856807065850295532765034599746898137166295530552681748862814198587168756356320577910745059840982462969899278754351219265423028750271548745133818614952602779006703823021261516214172056782928739580718583530031719502053346251353412982292702697858514912389346984502520474870968816835187719010688394004624348444287889307373019291432533371750170479835700220654583632403242791846869646715502681292400574184705162913356363614673266981372623251692363508386465010810142109217018942287941985235172532703442935284588592855500963469176318689041170984982229481360831476578244726537017379629139876346540192749384258989307650148880645109579559948876165934212552508963395530178401507644056652716529912206604305365623413240038053572987761628708008938909915313299196934798657858031991810414559737267809682309538893729652724085479548734206667201678233778174471519175578431710586624461337491306782409236862553907502668945558503984202938009168485645399352650560360319116745468247396727064505833823422080149397121339249285980288043110081197776298727156375637391598639473577951234303167069375423598972804631159775426450273484951950796987225326284787012943257567435250343139852362328314142974255444249727240565972494706145463172723883291183594176171209410566160590584267083932440426951371812501522373037784789943925573123654441892812000792275443111629038483047109651835761433605622575866965510430297711710656209855265687678222297725738163089137231784027770650161655814662627474909015438524113877834428209439618278405473159154622874500212550489765105636829133802374185009993086525065064735635004310112158367581034493368429162764770840438562603301665426217905543036690146823948651320928261257200489622662645457112623290317198051476286559165453328883628969118661832896394152636343307708309594312341034661888922239563657150631500284325434878428199990139662247305444703463394079354819525559730726269399570690122715858285473457916972035917401377852121395885094520240871537075914548578090853249904900725980668796361908372012515953794991029646211163220076299594830229624742365567397320598223976014993652544798661102571969113479257622567859819688682735436453263054726010498303539773628249551070058090247099634317897109800635144429012676847291882925567211753619369188360220410881705972129706080673321153078342547384874421585841610758980093180255172129545945250245698310958883319391166275467405254309073430112693715835289943132417772715970118139147478745527058345104294162532331388435598246640271886723357859751147670130998940476000249832824214871956115307817832784819438744095246968500527290148672547339846276972595293231191920179876555656025410339425152220387906143951429224652426691310066695177527974216527991060468233772818149134384730979512416192185036209612651247695810968939212198962376812546047604319347826005762496910727848799898402745673159879639504424831376158014269223764425392279736085016291567944345207143485020029266935080946520701703779920076227082715106410721192961575703215645668790651875125663087344145926026087698885154080867397526927556068235095665691123549891256201951485848828008355952012460243473169358943664907672348207885087100342530957143845934775874193465139617748721756374367211911610931625847183703850843583157000703383476135717175097399446312948268632398477748117148207344506962252754711421016244976721786172942296573786660829340904834949108544900761273206495979580279334496115440818102492935565755156937509733436228116676468418521068129272981788188902245551920173817213152765294660532969899235556078892783829759266865254229816802833365049765261954956434221317089795486443674411720370121796493862342620265020822911276349780148235126857204812809049174703234940839280575033747714985174882294250463781479698836812254399876354026616520361262781130885672948279268667392535461799051580502821950294395591671282311278802028770480417258060970995868275719063975568720142897075938581275302390046954142169950189041362661581846456241467571780608597129266851756376318704799926159646465839700676383243875430858301007255745822180777644782310127617573576244356798395597399136255450470941751700328179100086736541112206863076584132729161488158864512427836000981032417910929236838298576690718438584965410137723546384842456790545029312074470328666161348861891814751614626714821441952700207438198983301389083516219842783597452489442082260359467159545830218731331576915572314658691822288718699716109965608909235279221435861374535365711367312486719735753913416055502530109680719141589204344693578761104295210916232212792195411116382674605124709853404149890442028346554838612376827076021371249579560518561934831410364169979616730300559275655668779204015074519527558077580065481913175316125101303182641002008044163786273812159788306074785498123051761943412880948599155592800589231337928198861189264651337214517227417044529352484193290527126099365019520727192702700442777957330428251031649587322956653838505191820563524373998279099654503734721419808327655730193879526902615415351076152707985042829874495932699891291610446327098993649381211528080607884339389137585481890815924130685428102953039341588551035457460660685782326070717002414877183816079063964029416664658822595747986486280364382913757549425230597959140379722678845739968362840969613367903122088300118442648385103469159024484225568747996628807970997700623935181424189675984332397612823612786726134250262499167562340025768827991895551499709366212349428906121819287468357101953597003606708922591411719873529868779124772640119327075447542299460615331168441462696194821246593793674566083724186383043246759406888749875389751119067801643577969326517933902337147825734828030058396665473699911105071976898700478143029492509381721185913429557330446067077657796762683335183283382891038265951297426612120466612765554173762486442706834730298848814952965921001532528951887236244332081793607838761467883397501382527989788161396257185543117511617615948046467224376033228008563360585216758395666804195511558012122647084945244149099749892112066160579372019992284492504103867259841808714268825931345438484281220050654037779765056168974401992094321688284351690643479677600354822716588645440073665724489632084713211565448765426447825192641459170057546064305128091424863466932740818134873388142060575903582065544968083731762169376129363159184482437931863899724181712626062304180916783417487583129421184707452421028927345733199351766820631226111996578468718027887541387135102797558059533492644041380304422161518854938721951805693033740231659783440544875473306073971658708480747473826119621330621037095444049947319086147449974999090657226454115957326521872071325767237221418419627391708416705214632866876618536115577439664905464589675924195285584260120005066293995654033551010113270930284206242495756894472074755933058964310624820402452253478803853729029978991965161211729262718583020281170421795355098610950643312766651963431572028756810781444601281469251832344451001270690519824512067564616069787952154295603334457376362340248109285146983727011461332562705332176695381206393184099529529361838550680765279721496124011384376566553578641288154251425471513652621932374066748266370589887534146456439923143154596842443440227987655633904894656502903862336466907459440366049616666964318125626612310563579082062650713419226012028001055262914640786629929510653443237805841458127170966975868465593607379424985255142070317360605359954074553183986010871251646247132379149872783661241472215130426375430531313963683985817563548463607496468239079378711313997707124602328099128514126196410898908493851796315290716800870599404038459617205395738800524803741907056131535659155754752754760371361589826696881065178585243975399935097653940711931126442810198596218935211334735361553847014544214738080982133548233891404127226747079617478830188116123324063898742532981569064101823956579888367879304068785008252378489063090332380282491411779470651211375190205696633651715796983528853764205399587810068035879186603120640893325820629594083193414312880078551970943012661587064848911546892203923583017705141499409160675562782221625638934448438072214044462677384973039940032380263773576531253643306614635769472623919424537796860097070849296705112211429827253522882883568718467831365333683088261300598120861242363591694131079159661334409940020845509885028777323074904438931367299050331333044322840180335093675952052446410346985100091573201300623802636439523507328340497830513718009012418106592125046572940929924382756025742233004738678914699691623230001986697090854084644811274133277434907436399051541999068094038363977006611675800430795369694766210130943142527651274149154891682825351852822717391532717334591844813716560269324036336796571775811737313262219936973098057110178357517963683963410183542946052317814832445573614966047131585032120357468541009444288249614812405292299732228804968605352087606316243000037293845695769539170352017976783519175477452962569200376490252938196873054711058049492207515401693656357104086221008012985431899631770286885279238129678459568094195625638277999549392597884384448874354684387573005452307048066934170519488765565754748220129781411301489843625482813203943421973495632631926544892307938604670589707734214041759327175937013524700786307890244502229376040795804405743911013107499067942638275017428271089497866562145749922895336499032313116001276017960329077318400518288860589403266076693590289729757041270219521665027532893088553630171161028691835443886062329940502264693909277931954617935748421158862692063438432630908585518160703029225494739583939236384936982445897652767088479483193163133799032010642461770283562577882834204349885150276986928642155717277710237295251102672636531224143571399928122805092609905061396684217404882127473817147143862684048472243017953231710208467607973220359617272056742928109059421991860108502637734022855463153890633245144306596799992327309931379907495906432274264353232146077247777016636550647136432846947101775773345808396420296910321223945048757940171287055465956362250535038849057228918647998991023356816798678758907751307012508522081562171914580863860920971379620841865485916242939828258278515173055965824403610791406962169684594077530017086261649556831271314058189373940695797978253487566266281842967037452457633704128913626721355471308406908008241871417352695465269395721678539372236752553285161736706232658431970557931047281645563396802215638027228789259502106594521043660290178728774374694211990876686851859995897395516379418773878748181944396328561995687600363695084338120414210313288958576000683187255993749311298035275037114446698816252040644426304344105473419207818662481859926025468344483430518237228561243973625659144772864236336726484882992326789549877386646061180637054822893442674589923647845589270168353852099075043820664005907694301272894802298023031962250042832944475346357912439688797946914743251515222097503734121447856312190528393094228966826447091349889138872996506634686112055458700394156979518402273842579912970537850376125844257937601164712416099154303702926582852953133897334194205926004734376794124929399866496607144953494667478835343757673938481878572418071342016888733665083830603012661673387503322490253813680625411347270910238012371172409152111401895238464425432225321512491955691595807403921360666293954942614043164919575050455506030336658041939078314043048608996032558027879018369563724391732650271818434682775438689997823989800138350324809133010623775698303907644538497046722779442650841175503916026100299723707856611806626341254678847710965669119517147701883664192377486838984561834898301808800917088496595672817920843297579956983913678792500694173911809847761666625117182128691692644091825712266708985035311115862774213087682551893962389885627951093866779420263930149961044674302108251318216572394513709239483758977752833573190589335649689555134819139919041339339230106316396778521569376888046191153584983215376016108192825224445828142194651245194585918260739352897738173941446016526454772230177254248932867744001809106992394198200649195690811589189920969658911808815526314640144010947998143859589526143060653444786310336553475353375054319834211209497672246353090155111095433922626297735053186839278199921526978357923830162583779108863068791017641664964638545211723905139345443010910330270481208264590534283557243667718733262103691835363614904763158297031370585393087662407955458859109565383104130461906465355676308546394706163952323636963848639995152838890893471735249717471266479503998563333436429711262631782208709650734104911319175865275581378319028256255432165883533975797342741694569878793760520779932051223509947473269491536281069382525549668042729909868714742018846891108604096399433667218135616446634469488526259329097078084586496213015199408188809465750608260370736858853618676267393377518966564943408076883115319787537460001153148492537909431864286399676372986934989533642980845916027278896593895370812595892193478934114816295867501042834016618915656171703534350602132134027393409671366385483006964530160122668745159103350393558989670721034377660683686295394735374837536255173166900261102626791362623580358603473674399140291651438782808407596484006365122527337464490505133970515638920374752653979871731006931809398970815900193134388775646514445470113747858338797573420879308168552254462943129022288131924706241068227420463956797387538241223730419573328713512383592856628998121222504071340894849133749974353169384428332750267639577931648105296253642545442245799082414157772281977206926711437868852300498431455304116795550751208393369971748061855158633026086906345180300317267937034923031707314949488221824232553848696436343448600831202016812649338261920634255716878578690836489778929859333794977691211514369001529777089794454070148454172859439013621822375279603992331918331209112670064579775206121426209599653670666742349755541734228949608685108683470897949626071021629073469187794121996511415291160288880494570569015296024355623437690548786510693438310956745259464102758485801471490513075678990422112375943665364515340747110455349393011461993020704802457795892695937807091413296499702994714221756338805035884225264731839802675335418842967196068695771879547965915736043154510252078130304719588232329429048445136533290769545071009800408986859211845341398253954324452830130288011648112939004299691336199406168929429383008789011128327181313825024973380406719069013280391530991619603073527222578525409488523908694328418113701279211458583274484510105335399680109552330993546587124797623693910514395766598586212326751489495329074385029227164149566327572316258879295321257780167415743744413016458740519570819021013646518670176701740772342223820302910276607231922266320638445481324127753643389625642896855252260718290337189858552502639838656785006676281891536542825794651632570712074859587465145673855105498569366017134883200028102615092186775500029325538541895266176516433260483315338454073895342504602430004845486608138884948877326215015410496696100874191480727283896848446470886969236671180798019379080395587023338362276405650786745168131092132283398031048072742131584323975111034050075432315087326712990590238826979749984844328784566889223639651014716065476353880270398787980958020015285011963336715478438979531181455862152602667713913932079319725968759076200720205888749870858332577912414256680158193505123787851564026474414060577264560682251313917264082119907489526267574825350324615472601596076600008037162985835505858064794995539647643389511976945877380097076862329599982017077034271102872349627178722429358517713659019562045441041914735068247233493419065678495989928251479821085695692866330010010849371843046352976442509198242217889264822199649197194328475709945916194429926980350994825936332998031636803174310667774979469512052861326261502704205835814935988292573116135745525252271465237883911235381059398928742786611951135464943183117908077494780511016193609910500806102162722248820667225837192661564039347142234580498858210795259556949341984708773061667796514046519067472272693643341248824609448814378962090776143733883267011048492404870737535674927156399558569366005424258221331791691011556273344684907184601724769765811678019199216503647834249845870161106585410685712779112370794600062875700667406728065867208072443024823552188512996317008787310924504485057846635449193164197121652796136803123950243278902256491209256172078572214608422237998072205212482109857350419619753699093774130613019091572102412503358715931638329335374930623555389045014006236660832526089102819655910642900905903950080934328628342987541195066612782503433698991327453256954201985852204544510637255872638973784113171873109596915779069999876890888016750009945968570254682600645454824560257178360914354561482169657808295106512668148584223475148817513663054420631674892086766387251324759188140969539531274189995615404093567171857462613306863908369710691083990644146903889645840813074295032829336399262826014858787489405244492723732385703686925096335252760858387939704639014910799636544766373021877380724211064485491830076490625340834369041350795502175216263976130514368301267412586886221951507668936345004379784555498959476496165389584602820127404219373035859044572952098431005037302704918742255936121567594134363011125321766071009819373066342145624127800347063577704750255510854440363751331512062420895240818263602964874789220574541759166734638151420515751836724436385449805880869989112364002261058090993049693534592141969215310576632057406049542005652506148236115116911767222259201964235911384169282740930949127903798946406205803293443639472284345590601146495482281640711558938041669874071741993585306819344649238129914290516009220722071896147590515420820505517905375633330468409033831856901499584900330292106938449573101782143941332721498119508268053737046455111418381529717960843027795339423522007208935648783996263789124213913685125602551492173486478768851012744648400403456555743704111582865530233613502982353172916220674062674388393587782981681355164991677327805842296263650907033351671131498235431505592864358694976413926386733488424843527601177034428868841155433899346499968366987706435045037110629905187874266655228345015905211558833137070596349441515416994391970001167429150826030012227306865432474745846112853806710409181470249009780511048123716727437547937161109222151221424875965603023148757078566696432377524723840385000261034469516882822349618679517012309058065498280997413882266952851663120931918750641471381836341193062379002952653155797042779663225043238826907308743594065468975477303133730826660592602512078086824942485481917376473587814317130879374208072110585007104215481768842577568224922867930441230170681910849662664750256606575470804424421337190423357677217342175459518179680150197913948536724864850363436464803988897353525360170344812246781854182161781155151972209644266019646470604485343755606529184962486887308697423222279472552746841057063296002756332106466944819974936365581037182046301103263880227048265225973674188808102763979500904403401091339356289411726918983442732405243872391190926443907796661618466689051634723556818546867698899277148808264254115446735527659531965788081268436699978449087101283530018246745083042989280595034202214331961287996171987901627054953880010111737254296317490560399737144183591382254315022497292685902960093185951396340826182774383873341690268926009473293877318040213424173924999693090517376507308192290389541378680983948129901018948168604227919252849024067627158468860903147828948482145469738863146980551521381513154783716529113870965870311433987353198227782114632015881817731225369588473578766178125284033164804805404374506603616159246194395090251497550203544470453782961494998035451896090342607742513039512632213484909429107837952459185684271643339163401531349859974674138612464589457075472236556002977317059386402973249333781783549498859798671619699593319057113996869213255433045256362612298479394576863548063356044721667810413362566729453086831580479175232771916118316200202366563088185179679235175922514173700176140023722799388520651759177823525296766897858794368007433038834220781279570203587883997823492800089131844743756528874201407157221019061818921236489605121772468921633761658338421338497656359747291024300501893967529189396652406687708695077559136992848533947259742765654080602124964534704331568344243796614286901850413290902486128153305637440961325399472243216013595170835597498592007231221323369995944207941772072266361325592944597601603739059521402079633480689057291149472353183801784679383086961071834805944984357889613972506093628778439359797870413297644150611071434006781335103410286961685647962839668087298671428022959101512641231738082899200465449736090886951465909144146771439473293331568177520205199144765482080058567965439885505796804855833815137076009595965013290736782491260244012321256939241675549106294278061246851250933973200838565661843845455632796345185039361455067230338397543089513084965846357986613854205426092592018922883625095082061750369327850630777156694054641271205724002264778845926594250243536254313156715393383894245348807783406796899570722997530697161097939851174432497549754671079648232879001443717706588940310792014651807200280487759945315101568291362340130559596428438535468711186405813819985360527571629717767789268687647483678140850340891713043546861840120926259187931548000384047780012615290423345050798398288654566844268482139199111905704113436169503830196353658767321342721250222661690094915329350892554293661055518271080221095272761300858312784175169684863112459620176816529620665653650569234103112967950946111685074424915651662134579161796235409866657274569944912864382620826387508705975762193811461678398738823893881766887314158060734675238702311398695363074730956238986605219572753985007333032062242756007836613867520827986462514575206648870221079532357218574940180040256193999211029595551863635311351320085842993159829112697905425477600113531673163061599627640405887184408522259776142573827514772580187599366584136925847494163976152303367529236957991556062266757660258895870104446478365278606185010007534919083928776107934453680111581216581976387282368387822080556044332309869920661011913927290563016837725638536007183391785234590440897802401195813765416604391968301211444130827491018277828266595779869981896135447735342772182842730577771663982534279142833748936337509134915537888383666025908478098725740060751522847322873303902871053893196151830353976415684720124788090180398869656157676252986873323806477972704529400063170539131825474624505008499306588103462111259527515429836277618669284684133142774197057338277083530917849064847597245962356329504673723973643892282907973659720163776412185440581835177873624452315108134914195741089256479038443441661258776399356140198443242167641487487049695587373850868647097830716326186395250072452381354476384012075942107286704455007827974521792727131366005881967089908643355136632879916483949975723696881722796489871413593994035436525370965393918306536875503899000107400546985961607734251428524939986823303544320280216510137517172860461795344921171583912828658530574556637353525112626650804119704431639898503912284714827627892003547057951228490854656198744267232440078304092770959971141832028885145108166411577658904387969687095288062461878535038063496936981468531232495324593018017883560496288013818358733589316516134416683408517539341950427877097823413576384385535472169451868732006763732715158736313057824333194896814263328216988634723605032636439280054636491740317933674129824372381924902647888342416663842958579459566306923678704500367220382548371965296552923675355644437357985292946013638685642976491236816355842759380035131024720853768716220461638541604802195650789803441647369870651065539203418847908533825150535670778398864304002401531185386203665598171076848957679621749768422742394476427899864379136950774371623242454519625485463584485180726773524744519529522222532344738889357216942233301704814784299374649795000308800502824352970783420952608899261633187919409052807429973639653407852856019440303002694771313857755031703832730612340471154729750227582876644215612861282742285455309672665270256283867561494222503548927631711614388368079350275909095577823762212032245429756511580465993404487567680991916834910886709578611331895529257107286343080784639759729787971597448746313819908567548574341919850378672772194271998642988091531996867446403082188140117159530050743595077075870612713931187496476606503224681231887915325268625475030220731916308936382784147492610599563825011025046523314580151121098068617131511496005029393873044190486722111431688536990495012303111477816929077471446128110746156432906011391738373233567123333073216736199328010660082642523153956423263756206115735169932683444839677728580400851367542655437971327987855750484054984582855900372464122945397839376874537421137677112756876850913799785575129844247021360975521864129083000166607161670116777555236443851127696667825246816859382833391894133360389856891231531510607096581087948007038234407435435052763416448178765057359283547049746282662053444149034760776083562992579569468929171433353204387113204047615658260960066746525454039935642329386379792023869067949225036836710115960575148271225242943849988597954958573635447849865416360487905401842071621342712400964980182308297089408011204911468731578619716457777243263258999167149251878249375534683462907217593745984680291014541779335352655259752674026628595829596640580529536485544692337772125181835613712020325216459501109443317371973086204197459634124010069128996136635519364977314641979977838361733258862588202739642704246235180617921244336399355519567853030276336288512352373255313582167427407689681071180672090668433666478112585841267630345408683503949649594397204992225310474579550544536725972269123549332572910489393990689888495322837577060480959793108622412585696539270631593245664710903376209582294212276003787981334787158637660795451367945531249410638083972540241554351161978695270150984197985430234027816029945323873022074529607696119221465609438901021463497542083818864934491844637545405725358546149254731602088720828499569992986631984198798914782054074435122386369147243842889169319723476774905629817646466149678006511543980775884507368782870409408465623046449438793622565162383726253953708676696135029694951691682370513380201277734434606410590979637723784618022957753497258802848089374158215292461201523795539179265719714710691966023421747910214402439520530993143356855656220360616181621014076817722544220479486854144805100919497942092014759855635536952859893282790132885934466203444463649117475006446489319749458619181472831408981769451377774233976069603315786454405811968553262554054180395868135315353962704710314463885085130529221685752970405779723149144188779000081176765931096765068698400170643756131225939951814908014483842984849744425411325665055214694252301423797613109583272444596419186498812999037912926250830856321462816762539604896048341588079300418610497237046828252029810102330618239339733770403966556570537723597025074298708006640263589884697675348709300275895100658557875721584794544346208143054476890229697283047300900684337078292232730179365964661623731139820669961199967582839327561469412983294377028433903893297429310371971760206562623129157940403741182551752635670618438485558547252836630434459564114320220788367235691858727840747318113310610695619173821730264486552818760902560339928366895475135019014398007416862042140610937966070381409573122172876013129353406341784405637247445887597230218609741988924361523387773282611549858829108064349976328220736297283561742884705114062868476169460423787536075413678764198273327976236014851045219074107425962829251132283662336127806536590848941380655457717548449920846928161440582984387359763258159846575473498072770962696526083326613564981003139351016205056680081697505434617138861895070668015050309983660640600336978770382546453290871533517994319071004251103998737888423426033583206452762057172625375428265758917745753835177956576599183266095766734477761123547807089463646409651814102088939271713725561835382317934809376424263394116078062091746987269296114905279733726876529386941580619653828680685051877670363259925151759133426523477634172556805943457110708065761130004226926759735147419285088660267776417703901823316582029851986099626604122508558120784499733619410942852954317694273124977720273941207408419082284076720304478083008652716827123587403582386353387376088750837999752225980348358924860845157537546276461678375129220461422266441722849734253722360261938916954225212402579010962567074366119202696342663153902822314252173872058967059208165144127843079032088597120339486384138049245949006084930374983687521406065417938164593749172737332895998523961620367382721803910921256972312154096783683419796446239431564025172531354121534810898925963748518102317769316304297719302146000534413608943277066549606970721103623718744889123887828707753697379366372901717705336887659423865300804613411507207057789266427117875078065344714518527061766355672595793992191696885831729873425537522708608506309448406902067111287943614636064884817503019691196743078407303692648082437549502809982187583823762625937741999535712042157155277342145336738118900684957719484243976677689851205961009611131041120244403327694251357887932688128469899006609200846815133683036529748299531618308486250180013059661663982963258326237856312581027839212749475643538971686778686640037373615588035813609353496444175592478974149800783656847627021987265752456009973850558011959546519330951140058077373004186646212784302133738798512242545260271376034124817877040094276319708252508129086018880106346964253407833573951564324956098480296440308307396816790760840264914206212640991452268004928656443335992842860678543707621474915976513756955233274602504815338580256256045829175101569748755270173052793375313648829334591254706072831806134021728144416571022833576135982073402599388574591016699141425297834960684203443509778197706112405287173554802925209805026397931815217946603985168586438031253904168065527817292881471983533144888670123628768288487940578386115738269464973338719394425341901945453231672565572543817270429986064528522161471290705175904255763306859839716730995465523286935975632032112139676717073930898555585945786287681223836419640939677517893653533533753115650445688373966340897665404933209412965153993089012270948754290356755805832946309222290163514784618240089100595197685456150092101123748479237329465198414254583017707649707974975894681382454479421170412775184466195838470068160952469841299412177736882194464798095785648785168683266571231202977180871201643338989639893140662421216539156395965252578326866141172806185914781650088595361557344390951861912662100946519770281051740484554334444612840500972702978734459960043841638774864045297871527332119341181402427340739856955643556704661932795649767728305187510047034755227131716010493899918671966738648574773057787465642156603799129188401794436737566385302068948192608083690490859429547100691383920909948792374004674891759451207723590077083542540449406489874837683997363148009597303096867736088149366349785657472931194263594697528252249872261210126457435927293044188329162627886517861375454040306256996111802272243798084950944389024199515272422178668155600486536895670421336994321652555093768666606818844328211955969016730449627034152396382588869806680831493198887804341472111071276304700827508328986705305742094881890916241796617151126028146982789565035175791606200618783350281307373046385536087551669122443485590810346601357439158166559667542687115062938529567102001582744431470678176571383700410450531340227699068263711528445609677256851829995832608577709284991177496687362373026140837655352589010015265020207377861611282713070040445199453658321504773522195564596521721512906335363127282744210865993410392978234250907385452060349238703027004714746090032940854372037790089386732769817673130815136700940732963378083362517158381396432230929346673779811242132162553238280045394146204111692195098139850556796471793765664257224622130275342980919290906865551113417950813173740766543877474530076629253403334403014650150679013941296799213200259367033842971379642457414340700725775246271839815520231387387888031143403042960416026996601995626769943938538860026697795633366831390300320925042430208033099049046802397951102122114518071044873690744477066455248162042293647931376691287528674391637398181505016390618713337118217622194721674699969804343195641933140544528350821172853898248362470919898853743366806247926083421559211673011370879263681462705171563733697167023131613837802123659642676702595712823614153756626776034681259114856005503139906093408217805810559278981530478682061373779477710255680959629509307206526587717676562957496695764844444012218619536331160522602874898861047588768749469930289958699036420139614794230994760549353934872848149535502506004312179501300859580372229578681280447587084222410877674052941877460421737565062373669599468372379198279080362597300147786384675990651128846455738932907166896637873076605437050739671331508759641200420244374870654643487657509793155939094075294107842137858151583606033510574163068060331356814979113461136034633350676709986201158532461682611648507150450713012835095072191911920053680576738828271997220866663992528665922037643953719274004321716321942516222845659371747490962500862866366075774159725140471125406783218209611375467839534235213685649352829561329196402410883313514042639563338621419382580403699174505603978534474250530363622635144921762992278107650004013963014708753259343665646997111732096098805837775659381273533501890413922932544708782644542484404297350706285641343773824462231378423501515360410264555939549362890698368867822597219491484227972337823937076706518056147158054864741632898102793781581847189826600661353870878168578202053979856862925724941735284841872185089345341932699774703865889485902785799759591412413218797615002769727526227104460343292398837015248374962438754148754503825647039242869325722049961442555452601207610496517987322306350205507338333371100346610844398035804211777555602227366778910987843820381699871491111747840888523396676691232527711904429883671233350343885497787143980904063480636487531533669643156324180819485276334396166064332908549751216143275594523174399485902476276583662839723643316219587130999289623224434405430316411637660258892558817266749810832087511084476380035604199488778782887260554019562291722230289164161167293077885771801949974141190398905374168045668230492130854030939681209878139577969760307587969291366861865387526802860252098244250399135047928515682449579420537213579030385376394291400656945670009390751125458681153114053074190969500429380509114409913144570360556931636876318141861009950214296264579850179268318214034535572432926512114467162688275995028655230561829085014437553988831269763234482178064235130430741926385246208825167808932451052377913422246404540778760713012372530088490894529682385151135676995774839466631518812971363997816015729870541346176150917032331323554509597192662215166311611876513304623899575999023664582955486225770237119671338748187533504294707257274842245167517605722045998611963426986663478709972086796335924337160876062903168666677192693510355131054315163600327964317482617262720417095909410772441817265427257621079160976320583296755540308368277170066989993132081624201685494179700411666995315193661941548273893039447927332895132898695660819084165093736727147342602390339421892276239432964679894708907058288509599634524221694886753469492644713518193161285433538668869636049292636268889825765152854101506958283022263885194651737384227412053159539639006608155309372750549335165913376100084604510047849083985343271800661125323177802186702566822390173192333429342311235700995429667775776429736291719082179885435859541245130386108062372511972991606852097395109797962969893797206016893533385986680921281066148207345201714241381941375550058536618670595247757923280037398492887246569419346867614027103024307643096754555201192370737343483854064468953796061511041420510952955655017441828553450243785587021656365179688831050986594648928563917896392574508431215417512587580613480142674966923708619503316801854249254235562613134622397795183003828453911106411697314966387149672530675837002659236006355700536287690253064974382299340981450408268857384470594021735180222728795615327968399208018393671596255070798285249689287626970284435452158963636155479658212211609976811265009491708179986208619504214864919808654799069460464981932531856216091701242882944254813321423955135471105622064619148599375383549355505575301502198359242172466789916089573244032699727558773147432835146158548064418684734251402950496724299654736740357492332242881177410886303858024196878261051237836099106269877064221603174766800855279772956624649103437697165928976882607986074085863321759432288723524876469157075529980488061480775424010744024889369577019512797198560695614660434860814834380711840415350032859976628243516204560542259942694229295839408778095375175919950695003302426273878882312503679084406120961677951664075462857523089470652172198520235554367738618857307439332736100840991992211534117467138754310022777993578014413015077442803323051891894942190664652476630079729843013203943500928966509772820222197932654196062884624497113976489967723678420067772916368805917690409992962191905267018499346242599654388109718005453759386333490425232959261324546796557266468029243232291146890637720924988341478931109420600186207328140620491383691250680545897333667777989712250794361406553755840335042128724222496292340274609375669733882057763122202295219042975732264587546398118322208575206883011684793011919717965721339436456688559952443976192524927976354806530875195580028172583603189428897499406527757064591981897811254168662567766418042079474243892141044862491267830642759152085923245882298848550947316280069162467420470963615756313203242335443871904213662518781117232914389833118600618413315945307972505481169496767222876527231069606614359873618759459060418509671270309857512384250301610739930331137817955698548084413582841855536165351449176076690845342112306941827548863764913946812450946055205552373082939185645643785449437458272707190488942923188507091996584226542748399383825667353314094940391124685675563851012429770278426727243276766326575376062216965771060327574426322809216077789640864875975122349779059678252139206234837244786821274633891324101430310516705341392392260839739641509577608904127716169349796594881762591060845049431386702330858637220532761658465316392313432394418107356569833402591048288465398648529170331365626486165233111484630460957898629480637300648536249927554544762562091346439111838026173992255058246742801453838617113391969442469343117639427279574043205378930715695541212675209967930531242725646927627875545229444733585063727817721497309671536382472434792403073138123305661169952257026635908609531676450737705534996395586999689966229072081088329546960179606207701970978829758119103696187516868385715481482526984942031103405639907151109758169149394562356814882433450294761397371693278611375177074975196405973762137576230993800411933074281804712975534245666252285831814452550616106943078051239287004664698645237080110324405898663719576537995204725501237510532160311049443547298540543700096721048103112383338154120395413950464414918594158412585464656744660644647238605136377561653046824114902981196988924553796580911626499774011506736716216079416645217074530753125973825117518600734854017114153410376563168904817957171289593756041422186673952416046357898587577553458629455018990047853247459190667324468828939637117482069188492809230708233283545867350876836439098263204423981965691789640746889923043095448850055537899927147532231314597652011092971864672755033577530736146737410564581021622298639798450303914530335874265998631323141853221670082351071532621374935609200594347376521525261384160749937854095871275083821992842688691069269870070379162807161809344930253709059394802061680617321059840887008073346886763892976861343328077251668229832064032127238280396197122634141191985802469923593754337459001474038381198771632062185812101927259031862573917153642964455501544192731026397544207021101610209670596028011627109788832465730225972209003008554390360000598657335168395939326228651317826339355249697018843700751786366224275013916427467918263410253107003601673891367694877400207257800015822655038017362128317848477170797380438594610853801161630246122397615455092701528509739115157302095238858375291558343144887623870565233169473610269044888664495458738013299564315566658791089225205107635660669075952771963851117976861555605932154907458326786700314414802434893867274842694954938345035463521056121402161833616810238047072296172350858849753276076672693628055376734738952954426809567058697258458717825519615221917175183218849845816953168145661531535837849379200467225244968973017131985808707679465461618860845590805953070710200569275605918560800759027378961959857714826005892573411670358443598599167733452245426655923762661634274493985142703065158382483438467134737657250546948143506661633890232070591424747242872305698501301760625042861378473922396813167510534605169208736799724915724316515129206479562579325688154041208493935425413162682499278022166757460447229413531578556328151530739983407073028776954835030687607022989659791374085438129346041088235633771338665093389846993742265759805109051170274299489334121603808632064234708810992368720536207236571053356854792889262678635880906163474761119138214500211208084230371845282740230466064912974089973719994467809082578625536238323418744114564514727960052949415048623225803050771483600675815886951812755529057120277561767990238128021359329646942066276852606405740823391825140052221208388491590763825084190859494102176597823472355087313587661157076525641929663589381913985454149309310892794044954721944334485801084291272496087156653394650670429432574773223240365970469759553710194287740137438259270488508905398484159959857320273506102201912901409737112766036380410101616818358482537662116141109362227926552171805736532650706889214601983249244391329512487576089868549657071817619050143513927629686263881940305177524773284521668057564097824714783822041416979352213902837667071275873417355605580590649513008702830992984466585046462696294861516967920640714082389872321449876187514223993001372579682630224909671971816423102691950467104360557631065555841776185425244298987790895040357550634713060354757118573411664225547742005983363249482163101390411869587235917790987966739542245477670324117421139664709782747617260831261376421938107357514576465524372498907778645631133250606987203886523198599866589077718289445211148540809326311456192036517150077813486908161560272903017180720079388264161484636673167803833266126791482065959443197718893159468892597011571795500224338702930910539203253173717927190359617000339734434283198066176038146508793367367026142894573161675939266032614477550223341439568575404121358965153293015297618448398268374789468146791916183664598441375104966095038731873878011397472016725921740446054394983965206890520093202878777226724809425595442192566734816381647282940535302695237351178282447673095473059219047602494008948482861073575686071081979891943135849200986746483585858066831067203123911614085506503898413994497823894018304536362964681573129874391364930568593312345502135653254063762294876523029177591661198516816428387483286789208694405689515607010293553473407860512140820609129284769179423422199115097461803596551651730233516618817523781830194247606772387866861987893815001912566710115052049561701038689841125550061823747668334229707920778534728606460006513775270387743968254264101065010366751191955144167079694948551344782473503837586350154361175100652816032509030725262446268071382411174598308275244006886403783116380141396458476821797918687696690068092063878299384965448026588603169731194973156508236953636089075815065785849012022053861042489622368989492997287997513395734244814316263147274359702128130793154756783394976219596257749891940451749169601420666224955161734554626124102088536796861538784527168117859317970563227535541226835309116702283545016878805575891974253895940037658122376018393439478778520978176332503796358611377062983906791255981419929588617741707117583168941424874545500892523356151552305282918483065762801060041346973065023754435731960950611192148330054746487326817479285911142433203168700800102903042559131422932109962045511157367395928612480540668480358796120622846434394794198500791394471678592638833902744650053317005214008624221384561285598133486608336330690176737838133972927545721111789704258022198789588878403383825209582385951721259272522010733284122156299002945042304523091356614337529351060445241992417573522521307188606086054761015943623839055516920515808488758523610707733118341999033608216181384916318552581046746607250089566815774261421858870243578559640712205818973456842327405492421674791811884521858134267451230298759831697599968262092435944795981879028133718721545970336898105775830419009924736963325671162094356629026237705315106702259480062703415618249124514606925189794965150729242626331117759210576602428415929073858238912744371152842320756237344020412774443660283273205642951081024572978731865686279442560291881435291162930166037686061172171222394760638888513872244926384327199542904846063961865885149921343480374206185752328950273439045788351844707505601272064114809672811899617620619749270962987784703785439621182342628747277979445226635610296543029407343468660786915229970361187271918214905647384191289065821352094198081293747564970979374409373693628625914961277930939699015039073902910710074030252828002171456155960941226609854736262309348509458712821230313371728751243601033222505153702619801342117021674463730871469850403954492874549176372006878497723197977404992448700162536796725465234690595078565328516728381800292600095077504499858329568587337394172562751728661978607944490904459105716152677583125492109867888990499600796493767831492991750849784322143535028626022919665439385775632391031923125287824976252891446010530886407766148153055781403000072519686033359141782648397108922557510872892019707123909922485547756091206342664033777455118693558137802180564182263555825223936718084806248191372144934397865216883787879047066087183690145848035932962369657510778927075566923079657783322962765583254705812293010880203418616716315966006781880829401610744714783852830643717592359234722534543521588008877016689973826917783308732855374638307035027278606084722845661384421511096534697669609574717719770048585883134707011390583909858263319662197426350057115432419408691936785696781491969728027655040111346204346926050926145857035490621457742709318777391822426141791623806944371155615916820176671322438355045480227158997881814696651319202963382200946237562965178594223755124992468386763068350802965005180385545756900370050541047335605874152602731931037764739842894937742193042766947181261029840081723277977667831134180397477063716821576737526372711987708471056849033047238792534557606802227637416009019610527920106116805094701536616187971616735539512511609398983906554421879770489332345575946928959079223553073117625008802299706902389826452943428665121664730866541807817666321960746242063282310896106967692096362110382917216362547050176312112485262689187322571085200858685221622673716743620004074286053310281742841873092671931183183665988094531472828828837827194050781534497525652108438501636252287397593997851007637316480539942477148397438985548277621275001454570161714825160163956723094832330757040103207306021449898573525761672001976255633647614707749134980599287348925364294736146944802300151097718299327647030218723785871024352688864890563741322784352524049876840743630617358689239334152497633343412139605641824632347605652190603165603334982698021596133194420543680880882401098140056476301372260229285280659474107019052083557169069658098913018163282747048684253266808213295426997749430203220336974342205074323575793359307306424457676549947063933219649806191263280075460319305769456968182852915392866468028050560038834334313949125529636379433356525813918306062928584694858212447079448119271209241711012374527187157557409440083444013480582183621134723094345466911503313355309447468100205352656034636320061820709082992554109705702675693344860503830228339515852242296319446599626330573155043739093697169983375915954530357633608729233329241110632954371680255512761233062456021788401953624440828629382613289049479120568203979305846174855381648870017857113521853868965621712127600719535859246136076973393048132061122506633743056303165808943802387505280249609332999250654118916755847058793818844167642308516387505466549324841875399543090051893512148335161430651449427087567359232456708303703287263091990529151361905599533822627498028230606368580423330400788640913355448221642679571982748779172708531944844963988070093752595727834580554326184406088792228359983409898944791694464883916649179539802234200477593318270096358791392617558445845828392376368561460341655589744505070875758376934273234837124349842899208014925915499540557516525071569684097501234918815722190435047401563604560787031453349626576506416432857639914991834610809961950438510185576644147640589118687024291828231445887163010622417016519778331865514918643509462330798194286196213921033100937656360522655099029352429408599830097326614763085385515645338614507244267272347889612363922611796487657418449701776904732642684036316740224521355653662192681688211620845800473627225990491559760718247994706262231231291918048016288090290614832677064180219332898989127802537964448461605396466343582419906133000761794635806705718974334442691348513270176127172986147688123402728502846276048855893224660937778491471461040914886926092007473869202388961158258017841194287117117214805465484224669551693122556415225068481112844019975083160967713613580631921024314324024053550687828543379211688909419335750801970180003737398065488850233305358519898757541023323832953541992236304045396905081680819213971842931578680121639676347890783199836541764590021181244348415897811248123846936228739153655483000439246042052083027854040761382250211516771284063421276302130211498238962943454224926632665345116839189469910948624722472514511737136797086817747646560266952988940872773697801750850139867374807912583504712010891402926326178638413492362083185592497860529055845999106001289033557823001416558640007600083720231392613201060733205901419129224465229518481767479285679549223662777535177965597486472034658974439967904640925657075393532162751759710090483713092499263590216675388608591736860851593090275093066899205152853825235524528594954414165331080952962313327755842792296871786287617319131766364585025452254256661307611905665833369165251239756184500085974565965474424750743626119646215847814413682106839404886333355898471611651457360522638924038130552223976258476448799103675997213590682964444515361179766277068596668237499262087015924931775939521826176569038147464272209887401823732967059906672864550539359100500346079664468364202322756116826578287992426460683685428335684357284304240487814204061869374659848577805407097021273489690916850435136189830928107696540956857793786873282958732309802832263763876297266019641256020598111030722529219909030462719439442502344535580064161573798508388400097058300517068762692614837596815361103529338653687823703758426958208647048318617964140234207219737413294614297911125424480223930553998210390484070011006106454389010384329387365324012722018375733056077734412951001057657870647592526252400739815677681101563928465744312276138395946821158953050259039778590115507217847039826555770556610375789922940313954499046316824241330853438130990486357436563893654032079881336091851918826789823481866386787403132678354974506453607010694739576208493056973120131634497502243796365764819349583834267678292202078255919837484439203393355748757097850020996150765197497821863905717987559424541312562823575781801111028231971134510284869800557220748019263057967857924800123585712518909701000789252930132661771788501833371095984270253868580358856452395784752897252386218772481566777081023669006554613546897560028401588244131031404733432551654819552918263183911619931101384310258255318343451491024902038456381744728959526967089068336427575655013597234730729667175076662150297309670686380709951931542254929390938698500866458992966367762966325563978292928339152607630856223297805158163335162573081911480706293229683763183551846906530309571887859691172319578121303047659280925238925277189377356986004713788030110465954121316349979432789233822304918233390601744381812435052971371258016054715287061531036876411022585345762977450258385677032694662268503726164236284897086811357849802636505692550471388930984806958926911244387639459926654538681959067248769002206417079720797148201012210812044101795557163270249015653307571538301430370937161956978097585425307835317360421589006429715054713608875828832687288803121077716214464063221602910227006667566271689204046372108103545083927388757304464179944602914908323939613175969724949332432033234631591752153349066335450906226097863550508451966899293594430968920794200841037102619234523536141963488108329056499586841152489070662254731038570845150575241049944751832329224945033474625958820242690268168646575752606992787226716493914531206810116688559512174339437257686694970586712747307779969878898310535269486832165003806439655200788986331413226038844119888813447510179687558025634960522338318550901085667381387020877263696973530760968832339005200737808542793589313783006431578020669112781369276986062768353912252476071992812337205977883803400274428563538668924492428722092721280021057550744721521191317288447019453983310775456490200534091623555694072302602411618640620807948325459983822345613804508273587934822203919606018103488924193305008680703188033228017482778375877967481555388749888002904484871321418132669808361318130993368188347254213022707912525761590782632592553732784841376133392595898274627443362830560998239643401733226264061259043021291826583912591727154303445255102111473167507587135109185406906152130312434290268706530771778768503619371120456427546359565857534865844263952170548789351387207252635430245297663319479482696160538710817803011124277985789833219985411353687656202506522637653792867072592689111138491369401181667360404196853955291036102130639573005515415982609683867985176960306813364519982251305339322850875559966320890166085892024600594380211218718828535178319828661703266414593094767693098970536743093084998246321468901438677238313578200066529117951932396137205118669927742756301965238401390362580612592747847108688488100732192805866316593560524815376922335549807664002049153131696833041445858029084086674207663267395229522199167393146930441073140110566038743109413540913839422383935959519738282620282683326856939490161039666643355272709769457501202287022388325655919079559618069414802951404400359404724346725300209714675094618340174721493403793390509533014269955753835858990937432127512856758455151735802487182999869462707578444261253454965466486941140113393249102316376144318547825443601859686257243208084597187512062846411336036893724012927257213294137391322433727707503952138471016650681484614870953806932249916674101570196539450504502038056529893417563802431743142421264663450519470508789805330687681155078125699033836300752543970272179388444281331195724660959818515331333655066529461121917545019574037899935220739228456412183924573912051712532547489906668271299436156674074383328414336522294761265312320064941915711275305391536958954790917025581951219598451807884571977203945814706237356426841198541522208171574570240895040706747963827020358181987692282472197121214104290766216505772171137671972564084191131714091452057116499017568517692903552099590901601413115064065922419556747151268925615276437019787672932523288623375060407222965102153552076944803855365590870455835494205470636002433176547648532460846503460850721866050480705075839999450338900140676449703743209485143371639132569974206128227274430907407696615998470520645208555178293700365330344663300351570404019113178501750538110815429103390575080729712527422792575706137633988206615775681752399064767204354886741871652287375490660748158743015790161966962220195383836006064348024706713766681291284102305338917593247336313862853626579452856704037811612520828783166222374491069203952016079916115551259840361822573451222161899367443396460384956569621917415537046424820262035969242239425824434176341425643361796291507957338615671682631097433171437950013930689447719925272063841696966379302900173935707780827222224398222917324120118788244307478206241570562480414236955356701269504912240960883138182251921299412948345863917347829206768825180309418238877574137483412335791116839517892354535814635321603388812461727504826454304966568371570922102268019200331308022120434278349609596461801525665606968692846152925681615214547899674491190139747543249180335806525675736959656479041209497300013290016097791461663842796520742531837027190008122524976779982115363877380921381557147070826359123966466043008867037490448284561657222740877534025517832761770178383558903267013621711353198548069873813619081123318009526917297438318288625206459179360349481893105836344185635849518744054010201952679122178195409711691171444208984161190104895353345539908670443105406406202025875812570647104666135358729078454014377466647713555916162023259148490499871074683864466262379711011964075089911701315954195484836859449234811246177008875174848426096895768932376071832631951350488149489658338027207186888291206669623935220437373660351032889330673412011171794868666446513552726559691673106315456872878025703124358125029861476625243289510436178859079400238083057650945585132778789513202316155559845435041047469696195312110860811720593582056434109109871935425595522249172763189262528701425411915706395614648275547349732186078874967060020281884956260511960407916575367593004959070260519598143028520621428129083523097508364278752593093001628677161187736936548988046481684442041504393271364205918625830471186678674594649716748873179916195720232340297273108997505659424506231477725805725892565290053701496968742720280764154100842430246391733822886574722614059310013584774767505320615781992280267163175049735836545351321578155306336296508464218760822001727720192817071891365900673713026773450179397243855361173391975366255943392908846063715150185909000035163419577249199680460511254312736868099095965919786026986105214752781241243984726264881746062057369383419919046215535706073215340359073968759596645915679349444033589866182557642111655072261355984430829731826439471616724698699448254405768365643662982058845436858151156826294701710370230787449712138651670521823873691747548306820000333941123751870879287637773814156933268540372760532823042692956351005048343756293760851556973014144387541458511995615451982050093366147687684104587153525038443882355754038161862976958324134460661129994573633977274779340933692934350194122870237496996923465498813447299880644670539453906370469874746932034100322022106021191982831248517152456396058148827758005252286219470051205400220247789715315488965701782695848000187552056590475177445880165544581603427413784196239877305727147902436113333456509299564454098672568167895148367673706452761877492200756032724292527419324123569054039278906609825362196404964225284346951625502835336781439952656903222943132414705327779664817648316275438074709309949957764007548530747184161418033581417857965609212800973501501375779986031561258528791966464771798952640854212909228549062640550617338902567585958040939154981347278561242711377547566140301843742662051899433045704763899778565310475729779157013278009903948368592298045285401071314814604370754269198450883280900993968474944335255873225179861380073955106726845599092265107486440622302351772016308654467422822254614266864914977462535553089145217317894269689338855580144856737301503284328529151305395237864150272157372401929319238909064911559353793861796864456720050970577559869164824414873405465400106947484008062669351565533147101225707000437967989211990199807386516855682513682954491153431731666768407985567669280225059324502329439471414676510729552967326823022305879959511384174055224166345413303292635063565222649865276018405870108874391426544339439091152561745669039894369116230379623447183217910845768702662377605230880533773690633560202166961964938987195027062172032112194730289075903261569754524893394785409043426285303634730617024808832630902134949988917812717489005045529357689571505083902245607239986359280846969968652215827314362135642662598375098787757695518456053939036898223311561188752592643128315737024370248899329326311001873874522223204472794401001186592137744298544314368731223890823586429971318977917524391741831695425147068806757765627281336762156746538984731518702920834233255599612635220935142346262671139618574410329192055671464627738938898756581783986380459477367380028298433309053828286590441143251796296418548507812659901780795357507425591683849475203406734562189891733421615887396660907732983902529589168603349395393639573945916036907653945726580196734706891764955777908235410428833793901335986802994327088603166277139947225885822306644519175519478346563508760772564109305828159549689429864247282249718988449493205235163724557734136871351786159939819470247937685126796207566979170498551160236085908908693403421686399966237018027885106689410103900140036505087594069432265553320257602714592419149387597788500252342404779222838610738970922402569860701506108678417535348765883439720542296727455388138441680405840373021485054201579118268170928543782122741275555584237294287073239364055501506088956505110161392340437998021549774961278402284036165202775158784127597850124835091605970726196837405895168662706815233493824525366786269384292417084831826440331058561015578786113961388339582272494243562103431127652180823064171699662484517107424476821206102953084904064160091374729952324419264227388845254869189404089989994897575661913041273622747977255830622755714870870509710626798199201841547178253155987409770395809716734688285956852244973440984648382461677274546787667199901748611436772180089076846799765921178201562974074717540547415961203476117355609780437055213883858852500935036110764955798025785983717881931923989848217695594934393730119874899893941603112708321022629658093750776007533430414314759701731495763378725418437074539885237914513603441631653320755180551309482815887409361053008427222890668297110253057607498275248194288848255917196330610925785799538150014861940629197601362671509575370341161328296242676160548097592565821599128971901955133942896409194220742479808934345579533963299981328955471081994447943483816217036038572875102942121160037362304187397204460334405837457714493070795219608342827167332093425679150547264783550465305957448933367176907572158867843852493700074142700457518295362825022682269206870208694643987396454828589715144640271117104060264476252760315258269704548451770207572322334753595526315509274988649935994015375364088608812863125691615741102075244377800588078509948323416206458880922681431614818718684344549289305534202157653626638628062867947259830094395397839113855581546667233459368581402011906873160834947113186574908792065230569703509834102566172589304427793589338531059513318912530899324509511389252794308668889028363555576105706824722563874812656189232690308080273161377091870751742748977395984152927264614204860559597116131149101715425636227950801013146353033323473592707157252681226897972977773245216149649439680465275276144986004162830442540303354988284740924596233011705978543861247486577722609837996198383340576374355310218655617359253444437455170727915156482888534109459504483597926937045821380110165243137385986198634812176074706433245465712875577289586151927628968724936611041964507964047955593390591521411828034446886400768576761461506722252410431270115785066852315852588123053228695037457336144156721114705245591293276454839504468718723092137061403762226510048708860238539386080562511587278755526684883483900681709638221509684487619489839676562197979369400990793443167683023252554410569019973196472473498089661095905682894802787326679888939132747749557741978690203969377242551053019941883692321860786087443856788288704723913350759400087676029456601333669893294680772094153815203623086477395672974437218257368444682452646044883487528025828913503925852231613379753902247547142360478114707063045338349539778476201471005628601526618117490415945763370322808814268404824026686614387963728473548084591670041694681159954699469606350007910185057255123840851718182023716974905292726006660760480352744322058636476494875888841160311939636391551559961024053655334291319796127145085107759401560160437117652836173560323287302927300329214909149285317694920831420998848854027272640597404954256314877556985534120562839302110581880627971441097851408925222023574063119455292848358516348471062008984411140654590243180235274178558751265856962373220559084758422140591740478196559415993834908025944214672212705948080920468331180099793435770035089205576490852084423144636424180898754515944851471382466579815118276320181594211176241453235055882139725474410107179868480100008345174728303613784090807164635563632112122422475375231723673861834637832032140738289708210686978293386358127882870066556574532332250117325648490030493857800343931436574737328851602727474530903534357125805387952135603545333543376622585396266716489450424893243781882545892921782213877163495276096616472475998976152241863580511682885578066613587927917045484661497856190570340957208503833335057998385548248254203572269991120203534059571886864325905887399222320055109138910758703589302313561474714937359521440450313765407228034229878849336958974431466068846858190876937125165913492064652159016391448844977964133681862353624003835214931148881402523417524389258124977188359050558792748086410485987434820719621150802211256021629563786679860945957980082040809811076195102691951314099744578884013498428903201598978166358075721969354068242384716591914444414580454832232554535298616841989601256865953446331275567621760234684116042990105496098676187471493766878964835531137704798529791625593955620647824515335347447745722065405087048953709451130558170506159901271660948821572365389858645088700352717929847634593722722045520283909501299891457217664837091631054181651809578280856566661770135022359920588220967842744119475168041339499687983362682136948089368380684663441984443637874942615064513561679209085747044434257803456286341141812609958089893520381911341928214264014480252229405548686012534576005175424362843135691208207966477850186499055176835224855097569232710135704468366083026798394199298852315078824784599813979418707020183922027585827319198245678898061844854781552865859075476609652099203849330512695048034892555952042969215443645803810562606681324707295963683821725833367228183591409195519753479445264753286623634491588909292365041823753377487380807449163104965664524014600599631908435633954355745158635332637856976998341071063758641185767708845466461274061381810344036983376064858209107162322890203380534897148391066161383279826492845442211190976467551263916635005562973114257608188063109181421974827453147158595576355052690547831043231791508306513721647774263594438342936639976247515032369428279727851596549905299302198674638664881307641566246123469588407831986745944567876167814957131675960301131013275129276713499939531093571166589719271515586027103547091500036050130365564729962477494248889131349901890578920074682435636880239363861448208086762822516329212929586074796641049147502262021181852653357508164647534088992989735967686272993541189653567407950792180574697451344323026887768815557246000496632779997835612746293537451734443396567537749887289021175091275656498991389135049694234604138954501539432822259227147842064423601156238773462188186964104006026365287527739522528678272160508831333689147767964091596792731915300365533502165654412231269005346646651586361019583043796053210937075637916180731268653128272138292999700948041227885084610906400683679264861279463935700159437787598054330891193907748949903552970486643311363699703011924970065461253596383903493619473453211112552046050075246616966200284425888109568226245448617691452634049157309416474931044285832576642596635589255351190763815488424966829505781483453843913202717498472244490681544253726619125347744148115626779899394796769964524921575312673873025513721074403561140962032135622882341456976908460731386877831815656123006241964629220608470271117658723611379263961245868842491558486106188024815497475387560858807699917425544957093900593820227781361526773754339966615022945572271920913351382612562865678689559803095351535255610004402525259354202984806784781070022106676368070252187650578372145744227250543908643419842001480914861595865345818677670888683152076170629686366403824133879931730946694491061922026169231593978917039798019674695160732960412360542613760507625926017304057001199412861371608192238592088266310690407690775700092444929946050959426583046887985259279661298984978790134374784880731915518592064863788487719107273184491299450006198799922892683421859295108094202967739889672644197235536632210690759684893544536345684634027029966683914056420655013834965153726296734843882074635850254568866824755050668751833018509600778957859806112853518808442286782249866273609104173950041725078873346095256716695878500894085136816121744202059633866787914263626967758199873531861268612481419550140755278244294648979710254550253532147095203010326315735252464615341123196323738389503328562324067910107659909050319225741256971834001440084540440121825604396037861766506893900803062231973836337978242664289579404152469205454787704760412206224505085452560821183718122547945149831372614449152655210430120183968758034435339751555493882533501380637446585576111985847109765923356504890011282203147311183559108379512726570282829629881520096642599989161733184893033415101385354848074933269590450481639273138413478982112561210191292288028701615803813896347089958284741431595517087566681946165400546450220254438298937080243943175865377025271939386123089523648769714158859507720593629847999759424700527389898128567824350516561057412939820722450202681255891428149607825747336982427603005827638108799924710333513614591111180182497562036721550372587694702353788144765308174379432332324444096219885411806990497886832978621492358252578833103032829338534181749168329062796541500081697832091834409250974762674853809322597869110335727166066229399331698025418176505243478935082273880904532873160584387990776053951477625215800771788216076290590638670311195737877910760658147614670623151609928334007365379481582457153709559950946649822983047129714984633299172388092681676004985372731808431819356611549184350992795215781749862574422998680008417924919469795477039222163141248964764673287196299113521420274605962471051223821849770980067271916399042834141405000091247956759998316288751256706731023089157719484644067998115069650866973825494322248699044775946977632337645950300454581677725449223011506890948471167565796152625470211067598476479670343714608728322755248625273313620113569396134074867363121731555165674351927066170402934738727369072902562224824767973229872618672652530614709368465327242221740577077538644474810877232275754150722771991231093690285565681758739072409418480996358675434160404486600104870438901580759439728565636771940149513255756223034528239155944708954452528518489406793239336721882285217789776556397993600851811433721873746119013951884764560102542823652428243170121559309801255011924995455750800613198268071672405396661719197425790287566089757224443057042190827572537197303969326258516223096742300750057626073687455081784255452500180749525910261057714124345028549474811915034812376104417511656603383184463712127417113661880115337431950409571600937902720687488211224038276712933384228897440025515080817753425097860507524550409792051434240577099903307104780614651666135504747947874072442139076925213113901325889252531291091453749523791887189833093429218209530554162508765530806470520953844277287717050169465066588575325915127623449085801703884106825413986548460884590916034707377044430179945824027594818873496420946161109032900313848886776804553058846062220447549500479864135390479296040620084773101905489860904142362904468527332703375692336281037268782696974621918604037311763340271739624959377189358571527919239326286706719446076613844436891152314675758470098720361200270390727191026767259202149898961798334321049814077602169136807993434239078685158059231312172613843623704437786834964120711308004300332784255482649863329743087164579039293953197246647013952985821689094582484362109427161615050082400362434064435626850895962158024343864886933961877902348338377726876145296650100101121574384416758704424301159206954001020729305399024170170885585028840427954849322811903492829299057309400418845441458328342150141670917077079915483014018768952573954590522865011751150506021414267773158472580169584350612634753096833763751531235372101697311158295308162177031134970262169204495328917884731316602629059605832582511062782454926269489772009213202017066342121103960262070923213581286538657722197829719512166372492844739142793054751011362142882042673944154626383292513585415527779656631816304057519529467553534946952928880118515125846790932073432157364043944148635115463076125807959705788866166678966597023292685006920434436986197989368142635449540559175653151601869011978457803446662254982236211218830340168937153086353425773366695777239301698998388488224007829983308805154606770366208846681799003511140932781268392320967262040585858194609990851143504285886171228282599505618693665802646246705750249108096098145741186800182944608965505223269450056382242563542481759953717532918316570388184000402440316320063542002811223320817809853872263378050251473932544486357449982003524364769343029891155960734493020962991852375254065854187764160833763971677305389005422211352452612464041854777264655409981688546551712155244830366159049833913062432019736601616239314658170422305477992932090120532531518733237531237368110344269801254578641760673200620243480461893087357515862296262562123329160425174874992387358492656681112535815347012171462470824521017023655028842189609661995227185660219315053519646631661957158326970808839570952729056429102054036045607880203302659732977175906828052377190116753656858629069963719107595484612738711837112778094858442419152085802096794304135814780898313306805031528270638994418072828820465862938750661997564900267533899725255877740730191982308309948553570196315654799228697589483847903710055078692580788884963657631168455503701579449007098884976075312483635657638468176547768058420067488957262205279866402793885834340237566835675199000352270582231993252898663749686474965766615606220927621381370914991641330487788339186442635972299959252724393753870511326190134542807247355181866875102073499718682725526275448141070692687403166677728515503137235580023443126597398548122947900014839939335221381260475049280896649535440918487228160152409068697811378179255907271009380850349807238448351365254776353043714449724796539405209479868105129079729934065055943893571946622617056481498971312596308919476152090031322626984189563135423013101039641051575077337731302207256540257160998591400201115180491887956302975990475490941344558754745933329489640237069518187318931606605184516170040346929414029236459418449121081474861115057107245643288076130110400316055441584586105945641635922076193505981675145783669303210900641753647130372098091185751806059858036878377508042755597339291805230753785575537851299933706983877620990415819889264110092005157901391060238318733268223480539098558163437442445720144008362537155412023805071023484765257783862036513823462618238258981410357007402347739602175450657313479486279738163085804558365867561184893847714330057605156172779365729175309390636868535480300555607298208008600103701097051881721439235803946980210926399912904577813512342584906158088752001452421826667436048105097645233892081729473338982928554932599255126699042381754939523195028581161853848107621005976169867071921716728507561469799135414984195398569174727184179895264968841609493029327313368813892196333332680633633884546288754732026992168236725663940956663658834526164555703953573267427083915024941944787365379925054080414178801472546366364608096743709837185683322507319484412198950424354345563057380413061862412332902145195338309310399961678011551162333850475626900566145022189000268927175326031254764637117760279293375352547858371301605018460395886226882171499156717961124238767070797053442138538333805661684871871080208760140433275187476787387736244874980272969197378710537526697581155006103617692548599758840971560823110589878550588131130709936926980728922734019205522866289371306709944322194962193805851646648624285259402496356097906293142065760718200144639344744543830250997876595413723757919417611463442945180337401164552506589698031796875241538756317716356417460113345795995308864004000356437205624423187704821356286858657442361568951563023542716493889288088626726301847189849940838604461499208238540685830865556729032831206357507903854194737359321940518634883404874056137908507540164976818006680584165228198390361316837590774844584783456820577440393252190588829127259166101320054928252014659368064452634962468082902711568009217131102903786742247980383331438520569024155397608114563079414126017475991886177873264173361773019797853763904734126413781792210440230174084748748763283263866006881119015425468912588691539306294804338700015280541642355859484855842908250340715989633095962962222349726596805999724145841539978579291085882932652480430223011822727978239034088172020263778142571941093042770667937054943315388961568939811649787758657254592130211473721502900412129717618228290055790795754616407859076316460262695787441550029333890570725713137473755284933648619953573806739326155323519715929152049970101981038776869845435804065468324612546316358172130192107915007277500877639341872917907002999603606896669456230515391000578895117776913126175776317714550252711979733149430125620499777551890060701316890450229246526062847963359513681708592872845741798751331109626683587841932439471963192265131645729367551287473169945023079480073018105978455461727744290902891922973785668466943420472309050062427082643471481483045665083779648368245455446863787032130924702873514192627063295676239707425878263301539451153345471964731478261434468612476760118996618719823769489645528982032960519905149445291156289206402506630879762576813760936602685726707609210453174065383625733079047485903642053408696552825412665202050906589748928226684994158138161634468368911194939862159392701998241424838142254342638021665315724660471402435907025127390210029178637846906146318109302920938148521203295703625892533868713540966897228995020955598543968919594996667058467355875065076257696784043852380566858316977125820832796183301349441605223170225903356460927676351059003942253040066611968731018899341884941751923119557767681759281637039133739613958139252144664390973648953838078846729475656977717837070372050167360045970751492619743967076197268037623620214360534897426782161648653316459073382108383691171003030253701981178426530693992493269023072880308021939131100090770656475151974381114787468463249768667331322819155707203381135276767930955209367754747044970204045317523298405804240392552803977959017926281425442802947295525334792585708002183518601526306617919570210112658665640325012579845381354094432195713044439570104052099883288291846037763492778509475735496856771369471744778921551904893911686023241109444510614483880993886244087952508305674613464529679755914818622444192501190070534614947305244360742715375068165321249382244782830773801712955828161862401833260035988353031688910139365984715824155842771813465467491344120271612832356918505702236432511336852610886601424689924469654810210504560964526643855063569445188193176194247253843290210455348601814165788281840278799677603192846361903692738241116261711273149647484323974383296662911406280094755325739604111280564475616894344164948921678636202099370418894061601196403284047244558829656914946810486844365751892488889435021302011796069811646226480451418007874578190744931560935119162798656125923028938257090645418339024557739728963362851695188392534369106509409355000080104383950437424065456866318096791931045784022783849765321635820738701156705739827303135038645921161813112218095194653401353625961422995997661463883874408708526778666438846619157619561020902319500648153749389112046945046624482693781843811856153528340349786001200528069540433825041451836830308653747437069424987507694796431753985223176552106478201554639515184067272168747118172686210233028736989584671938140229998270308520750183705458912269382280940694016593955817160183823788140624806255512823754479998764252628149289597570659002851697822007451124430372207112513493768060696055307762509721585577498645486296164719188219014024185310173843206790000160670554404727905301419960336129072981849154317608825211818708807049284582112347284397899504994017657419683721523293399748950794842564583711422037403605161686967851745063832803822762013365242591844190006237942969816394661149412731887542727409189112794663464382852778622865177983711757373373290225391170720757260451972282359346263726666695171626284516539418486699484951627516932208797407044908338619487573981767849553782237145310014015978896237051250986975703864946449435565670814227231684001942419918537938443875444355138300322195233049854375790697822312554139047190240880408371771809350309093657720108318944929053732179919043077605701733495630240347577007486691014283102507805503434984958611769928464680648210723441734224465504644653031353417664196053715081262737902696570822579799047579427331000629611378749384759302747472693962705506341503725837555148494395595462078779248944290154755226651859841357371192077907329036990940400969754385495235039830328894544950692249235547305745966594481712050837015109789570006560782144786636347438545178163147086015520811023616618157243268879495761580091148789655155077196959681230387179704385145344997168686721106053111677143508573393022551079876323549804912277430012445131264473472810968510224926485728517550111527530801083355058390297037174179286214117283845644759355919849815353499442213698155118523856352556126757506281934130258341333873368393195076320926766398472405058690472475014068869712129992979280756302161021307753661522395198644312781381338182182956097267938923244364224191968246598091763663280134277120298974393618358574268456171546367225403652250192695952813916618847685284092585669670115801743720198678365257925171302857194008974708084916934953252865363174439803050833180969502464207235666531916661770435170418266988014507635455757265453551256087593086786835097843918776455407934334538388395488384800874369498680748585903881295971918685779208391939411833171210270405921562457399337194335420995853032848853009540259587659771033931230147715279388446831051806813192502211573985334216154154898757047514780859909186218770519042651527010013814641880645074012596345813202258166785914680326216715061885605429203388485199273014904734997147737297481467971421419340203637885363872771377199591051942936935089697967375662297396031103347667276292013866212032462256948743005443397420223165486398349166683334092042054542386488909982054506716622093852309447790416917765188839187056690144916671753316661773081984778574698330252862458102434937188035101400280582236582796049750165108504724304469744296738325458693071291865255270370065357459668690573719202665599064378129276459070350167762529026595034800512607432380446752948461593845616359313663571379892894762371615733429044322289479603121271702234865839030333202757949447303092322113999756302946692825616965499007217178784661782100441791963515259009925733428001863499932007113254596078380137145303682598342813407743757081450889209583016191173501116629368552462356355672685499076706867599503700999953464965344029361294564294432705202539422835224871389115319765643287678178798551036421601658847002609921969634467827344296484346728950989137670765407707041231111905868083745652486942437127927076473029258619963049257054615078029721570907539094814685870529016252314577701082922500425394167928227533600363075128000442414214381448830452159338992659284904977683635451870642842201309173576065017111372861055012672597230956991727174462819317112837220643612307989329737793199664641354758731544704576400414774767047764715678429546579660144737525787105937565962519135331974537408552262703726722634977167478273952298158830863548362956153545646044491172912634601826651636045226438126043604842629255748602828496142335191070583359453275223488198983419222821490031670985669858964231431210051786980749028940687788915848316311974082959797826264136312322964814616045800157150396001647819860644877547923903548263266178506781759187294509931442441871579227368139856531476611556857772614351004969244332218257775724095941478895826339670813137395481755904541191084217652938909807023819913713129841895261399766871764375119259204807669627398503879111101281142944341381726853084053460314646936057909308666875791407437306636811263553425202482495381052301810337354990545508144435873524186989428510243557246882563843091303765208202113242150026587630615569058617077146576617723857707045790820626767833368121674568803330243861919868244062791190057572837646482076326824890495834466424537512333445932985935558134867084918671787575219849043750948687621282627135378814225937662057901880505363099219678517463400660325882997092550701297924205612155679573816334694094048211073045884831646950853992919853468320033450863680817763896376005484045760144463977751510475702063774771909578532815535262663056872141876205429355872343816087947839187208988708689815620890304941281666267851173206887475429439118388700937151611453129805113590292620641933980803478030547087574055732882717651036801015798538637434948945818100161511708170174007628989093976747086758250230554717941882068111159863430044085912643018809606492221844866614100034975272523024291456993676454496670437141936466272153006382142150029659178411012653948348969377836336219909154764979863103440095969476708696713317052143514872838717513781553388165332794983110085674028667853254892383623439389709198906533200744276515641864964268392537602817226625925524809029540069893543402652036590680786388264825206691231379509046393118526034206726350908936355869124740138869110219426853435544938218571419959939863460829372520054362090169596744718514892031915698149095761443600021635252947360055448764493584296264049257169964891183186539500860968835402616462067992717459374437470156292485805498836723443917538326969999659799864425768562719674892692480997713251614453890769970971664646033037885977178453846529999258556512431251025863612574358848813385588840504043004285411115029738463580130378689365337857596175560530627383539887402498289429939928613257262418034929128984180683108089681677272200521705316997487629270898527979535848108001045773187832475697728747437944226469941186388168038429200554370312517239373437284986720002298666846893715748135377290105075102474822261618924716964290251547311007456537104685088857032786484803430117170718468051391250585831692202881885047434335444717057561930958149004304241766424834224808254289624707980900047777846570058724025087645796319332297725182782091924933167846677751489647657206786698731898425123337490089669277311399831585750094665977202794817049216817612679250545977911799314084887118620411175548193283495914158656874419615227837458634612820938917978513799386837840739245068326538535186063074644180080743690377448548540768066862362590698294250682977434660144710004502631740634134685348105752726310731024117187900649413247499773706470165871597338622713555666181866362345175516346501988791643101744907579724662280045477669846566696988423000866696067999036267884301372433953799860719320356240912131115141971510387897548801780574857069271833379156983665199842300050003392285791419855377627922190943668103632320349030568455209029489468671096186697832127085108663267023966624502428187024297239918718177350984566753413715459254797962159208709528294930731360143960446565410075991362445382109191362149906778915425363606486404047754707826224249216035171206352398716546258501032580621283056001783718487346702360565932817300265470651610558115091247749054460553441377064629693324976718791652337633112558858420215439624308809378497155220051877675189914800616785043321486846041020840033336174701677531161155338274388011288582672625431630919241838119583863686879606085343117737636962324641626227140867543061874182595540205591082374339784692457366362898131258169436595479779922597019144772946835772587733218048747960997046161568664136463351022367093970701900092077699595914139442141981819925656527829879226582416195157716387148335805173721169524071908438436975548420856546120431051317810852250639066131812763324694384302222401079792450409168151662891768542788169305966589617697841185887133671609424826579362484657455711321303974489868144421629326260014056234371356712561206096390773565570524745704534905554937835052365004824652378014412947934374505417851343574856663894595452993960743423529935697971570375488093041973366916086461551532813188657334101055216828542441776455335464265942115339499404801270370813801588689893477300586882499246064249049567468265875437746675738728418206188553843371081896559553338790618690594625356948915804655796405243272377087124352106518956774803398325433850507841677050053183855096373809356586872451286695644617617551764908922971791786841616594642291341271177564172888241544610678719535666346248760140236517838014049158287792142142823660595144958108342862501037206618275307639749504139329219840286943326889219714559937131757646078835227320680328755964475456968328096198318559782015059117466475514244999699347410110908704287054816263031519977174201961783088462008624659019740387327749613765281390865189494570817395544632305047208350938042622157087488992896697683197151491496621392315182455803654781336767291849996132740158987948134516767701451914108992072865295148391576989592743816465491523721056113967725733144685781121055995584128760025872629103085997962158307379989220388440160192325160891976924843905588821823515407291896833514409247132253156609045304324431920876460855659004180761403361624496150045211691092716010429638466443960186830477350884633660642196951972480008778274549178555448062373194812971209635791920755493132920261816640750890058750175636435155179519694088695073847971045397961326750082599271849526351236721523531791758732774711081244380865237019554836944832860137297823749245564018822517694710650485025340275556869493408924117124507474416674678410764012670638918678165804649248367492342547924806510315824019319568625043564345949155630663520612555815864954751239668751603915024061251045563100540113937171214879089052471604930332215317654767135451367091028214442859894203377650147668819478998162699363438797941828525233696951395362059301100355072886785591144070177836186102336829862332150807383254955938385769201374820921227009765767315003904549545129120246559098500831634698637369781022842781990392831380192120165610844443237601973856640327723929932553978649553295093049669041559170143163956963680993633050445360336079863040570595372018611021854098742419233699631277869160922134432376205492946766557479207199451257975019580974163625006232650764854018646655615005133678522272486451350413299453205423195688935579069279231033477163797866976862883885345347492632569861747060205866791768522911356760427170327088230282088321195437913178499998261357524370568220049876934365470564148512139730186474286655472838488215778991427969871339393066310694620783826633028048203072447044939456376426368845333825931285669074843298410311223968545477841009419769176307896881753129529346081260704836057962114135680279619505281608976642265983402485825181977509006599439854086061909723367340825599949515486445066610478360413736805993704923681033384039775224121636381539235335304819376829312196518980764214731692078265031102417524523815606772943851151975210403386179293355175750747687491531342992051958112572020362883216530050912063005612728983984598238041282902484814780834990528345843207528242910883918974090998086107248281237217938297496980962295428771997771963235832036752870343904934760727688178014693284657531860039580851109310443860564799371310520855364812254376319581876219311927859827667128596418870246546683288030732203706741686638570007397652675950603107713238147999238430436420966352480006998308245055678715678380053799142471310219132176364613891183356367023214625998676835444311781818089285588191859972842057657615795886689725588986268231767904382284772814933389169744885113280803244951769816866973608470194370236331506267685719375863628166603369069152045762015857991940031219991428839646909121725393515202066396526835582335310390445043073527778230881991997054072675125302027006926269387344051969736655607981202867564960608059759365665490798482533780677936121009282533441353996793452221972330171818680188929105078042634851351869176189866267374957160341373726308787992671075897733071426707578972780567428238925184143841616578567814904418805014392530662020073036977210791630974879606689736158430381278569712518378384834337899713026513266060423773693119874661793608294293164567594773274623597902967412935794807537463910089091423498379163802371463795793136164311133499270758663204932754324219600714583947542629908276560189543481132553566150762262202588838226925368472382375516684023689419214045330252052165326923456334954762831151459957704306984562178200789332796474279292776732491912190330879071259575696635522768427189609456350290010375800343526446110969171972220964872080431642504444564317312700155827439880255513352784010098251300710795844141310997746255446996890081272044866042317084588034025502619575164370751516285390749855094270771082027581550972699725155916649976148864558546746127291341816475280137219548956816682100053103425862836772719942057488439123784168785354782132747394296162358160432880827177274686379485000570274760170589215119376082985658706039359283420363856682581479711140424675867429203244772877309899939594603474879851081799183851700850886538077411721638970679732381668955720006756664843444987075250258173497679911781220966700656791560357336869121782396577252937334371045703269490249096752295424529308797576365894271557079154145637799356430858195326256343127945867571669665790258958345051686459100072576260577413019691262677471217964188313557724251248530414560936170032166360505055481921197498274041925792282467838644548808588217024358854464829338821839331039693601581717018445963779675394186234001730996264325027993137052901998047758272867338654448974426326490703510703439339600411688797409731009557331467334155484369574472400602959499460864492813108997919421269024915425780975724953912724459304376592633638725456412725728945132936750619912516964209778635983302412389216782889286531158450405674589611775624735850633635402685468656812736393969188316743644707281325082521857318521772010815893104001057415269093324136244316102221768709038341579497198599252854707527978023085925413317323634467280882813702428748894664920474429563512690536753591169357190951500294531347755757582052429861273275376995970178516479155836974256506581334939640391707095517638553527324366177777624632058301016148938820975673098091299619185375953119677851802939547025522624503381385671327281399771216580462805647302459219285918346810113076770078647902383509837755682553195626634212076256898643861724254670443156082529498048028997352927409217521570585152842078753323642640388405780435969662981865023736034139509065054453835934379381859259265294588937906186637165762332872176974874102765133084071447809899356191970697197944339052377060508798722671471378653531226985451683082027720356532009957899052641412944950744949897664379476415056109726206034461539018699671968667989022427631747551615176464003249684432578073319553157869967301286526022087122556148688721060310526501821888193599553955478416885644948155264445962273927255254003564907689954273745996641734437900175625426544623471888914851199626799544690867107325935366225718510621037364907919017067710533462707260692760353283417757144520614053395900799595442573763097700518241775143159541253340653750938526296648666833964744057778614777820248275231154746830242320901096294875451721824306062080590003434379956357271984186843629042206794197598114141242251161724342398332867847926464095798422527884106639483090542465958846360425943434930299987092972938988957827598421801869723528338087098543605041224222874781970380975666976233746683275852645638826116839196029168674546866731082324464156526897363153905695593912023337374108690492608129674848493384857183325414880250550898412446127259757223321006196712205640409303346703807409294110949528951652221040695752761783655832280097179378927057238894490135552117508800507563634959900920330313002065084807826715480086430408577451834709726519126696319167643714075094504828723637235273302121890260299139350311820777835954902116157171602282095164894410097488423487266149809756096498867680296317296561833720459471845392883448554656292115155986832567146077207078525442312506969031202695933409656554197610790154664193002313763618041142480673525356366151587935112961550065675111625335648437808299095482792605096671370553751951313388098215699638541161548454894269245919597691965648278571521602803686265162755500564441480217151011430675570925886474193567354693387051233243510184493470974252014266545827133844470373432951152882533257845277777105043854023463709501928473263016844701313932991408017694383580761830207449031985740983800113214150445290721849181961501999285006138208636230753058856430165370779595164677408915741632654255213282855504845628689524947294445279105227033567197781042019735768546428307238293724329004141424643104178211845739800262881128573144801652541680354926678894919044999906521692803017456996976437890575398032284763284943712193094602260135124856467258035037302113732034174829752304588299893851421896416436104990140852841319252813828233372224780154868806093349645854578807642897763620880082542085856397650473388574875204530046428268309881328036893547288684369775445078336544845022001317994152446759992280141040662720406920170409701550108078561984373234095938130181369398205290515539787184502384239253578740091175232142603660876570717251540170170900147753697190735008150127295778594734409941269220370487142012898690598682446638138109697193847736544032136319302054136318546338665115193386249447198804669202868868972254264160788955200644022909622077855134146338531423262415697899081159410582818564010271090980617707292472358503947035832061197758930918646808252944272961786187355553636481090520305962171999900982035189092821563232812002810269457253793097783148724055174697086923362339427264899940944111925020922165591409027000045652531102783634610579256209914633451539105215750543478899062126238160981492151388078465622762464367948034163326070086806533546046266764603307899338491809462894923095224653881128160400554714844571269608126942545794855004894323521119905003465444775006161489638279699724296348724433990693400115881155301261670224262583895234272987243903877727157901554975208586131388613726497907436165109341387382431299253790288117584126860719501803996438825798288381293774479843508358555329353633590040790948801556879738207176231758818321030078103688541509149060939360256476664650370621989123317332671947839183274193089675677849307514142564702203586500528133560269115621228547050079614338721355938974969228880974180235867772286582882599183062116882472376291837749788578443073813818872040653435253630861138027260975306827161213440574389420365749849904872862523842767972034752552906140888290906945935238606949443213465916476068667531035741668573761481761977749210583365497796521203517298977221951779769407793313108348495607291740007435861908730256355335662810458236559869529010651640068739215485529848606266575708063104566679338534956584768664186576868740851411537714385564314497264775247159922652359082582337190930587657311752391032147114626936138573367584680018919678055293075909892365339416074705586380636197231003269201904585269379255129212593484431091274155693151158979424130271685535599560748344470794583160262590593887653912993802669605579874105436110900548790748027441811732744919752620779840494717128318019239911517685645361112748865321779874192433279773293382438427172193893201481212586369645627340046092956853352495716813546742226708878110932329627675817623328808216501252384114268944057495727690272668762154666871356961946506630458533418356630334101744027792616166257865535292745649670538163009496688380767222456827909309549121211713775753180681448079085641325166106612316102972602374610382053416807285439402829917823340347793337406921167077701025115312604785459648944655073305483356391577484306861229445116210080973740831868873049240251519174897737513301380715986221206907178228874987440322323414971504929029673256554318433660380368284024938060419657520102025827899353503612501448135402776616666463791973108981956466089930054029133371681591216182323227793130111392578851831388706412356591869910953926890922243928526285372750488759884064711871664665954953759526072275017184017501149517636376910198616113377192986853214687339039243582033599785144000305131296894475441167055516379699586269673883499206677480869780000710624019056202419094225823121709731105252321013590266920702335262128958343654440740107625241124981699037332485256412658589869700538931507689269073594632178825494708695721959314611601974237547019702153209251822971161598285613993355030137800569950753467949631582518828884465434780485921789919907627149033214265402746669759457759296300781077100945858560792639430528767329554612826777779319053823621208492939041536335856869541456940721768780874337891973779689160245641177830665332304222917771206403893333321806933169552080865465651288571155076158545547935830023326958605477348049180162607234980899777378241517004654207301454110436798290221199031683975163049810008638915224633996486899315126408987806268948572785136035971406456520374526458549516306184013527238501472854092759046049830024278269720648854833807812008089368020955833061368117499301397761851550438542870083228387470678623219893660433994775213412640650892690076146376081986850069960927132560716343012721732294795533357223849937792764234258557462777896615291890116333497274716098926816583364005080739656914714919802009358813529939375893123247562681975423665020193490555480646278717524692349310400449313887351961013608733198605249722299485539690497711205309258354660471737889934489967277350600120011191310755404745909041066715368801711024908113472615349721666870770951614987344301037745148817244684133904891734663596693205000292753353987461154412756086226850337420708357789650471211910975187707531227236023950385296216009654932894820312239293421596983116059862283920663209600760737812059988037602293206159968991419440069048954695129935312349426063197097815648866108247791057483973082523640761782712250459669384930367699785560099003213667089721924076342061886378141724024414121405435733921129689630941740699631784330188262224157662958530688470122258774854202244463706840091696417892262791273727811915009424233231474942659261442878954308074619467840142863530126721971179431958226770205900103117222553098526029831433674455846915108402660298223756047743959518015558417208498292775147959236102963866089957622843355142865625307710112943245094805397368254534049900431103617890669295032653844475426687720791870624409836521021642233508163056533211025047468147941754984999966408644310553081467927325209298997125078367161565148970812180781264660837056996539466911952922009181786594354878433491547627043212494999571902902409434448830516115802794191789469556270504705796394789120140744879426172296542730269429200747208263127359497942847237952290653831932331311990301215694673143214289620296190267470590087382593444489528885990773430421732887302370707672269537928698333640903316036389039726255854913766380606065998793308660809852190313392772934865206906207152093442544672251601592267956738144123492922781604822917431807075349553687047980935029836985796838336686896660436827538260939459603409541020546680044388672769471506250307297931031818725113531253719646910439270232877700058339564465816000282344801953653443326702277947524595779876378201085485713416555389294490006876165625598242187257312299620281923599002632129617480493999075295879306829532937567465378891268656451925375338194894316908836387329600787428042594391164592177267032383798725412058411220831984943042112305909000601096463517760838160386537265725556025311977108998689589103403150561173073024300589174895595927054427238216170820763135370927145228399232929201842884188494641773655341410126203848917720179534642662379100570733284821257913355607878752486492317020752105865335636310299727237755720053683554577240434245006609741791472642251866954778718972879261685157186569659240806430187239405898194623643171181134345815797976333942163676283959366113137640307453458930426374848999580689374183083195273536317695156136600289866826638936432916561345392282349953059921256090073773626638172331871290729631432160271254656315752070968308926792569468561401361980819565701344173751831047448848886566594364117570857024272176728160292430697124367775932859910162389692717082150553036613013085154338825717678696119566898269788881024083848662197956431152465003453069606765790691288501652321291952811928711095573234076452532977987373632363753447262139300546137348300486946599671782785960946163232877919535998330534695492433826708334844615725827096506489924679118903525349608977129559180108962557078670758872678489391415243877735323784039848233079572786341750408342114419491762644419304105290530305097416448294344267526731354595099231173087943124610823557942212367326922685715684650074239557340017628572067890036203551692232453953578854386591406666027156607667758293863614120434647138474535843190281621643020551890642835223922951453046191383817665042130173253029214635406708434755593857419445108946770677440433702395994160037207364778824188261885641341546696398284853438323160913021716650527412337299476229807280561284971630859841359117763509442720706265921919697309571253104490815830344731633600764380024911141449602943055724890367023798250648835107228562747709539172745195685109363589646313215708816381856634225255828387628136935896914155501118540853778381034674936147514451948590341323232356746939280619533895156511538043400390148564795936012264623816422648444070444288232518752075856229635141851842474522926096955973102048388625007843765262441214946976985816596910900309132761697459495882275742068279975473103720597437472198281139745213132501754347619676969468148017926414982618734334345697592207821317471996026192637556412932910485053636258489968374361712077938357610403107626778809413663393050522957050092823381725701954732952102088758796108232777014998855888431396782017819338362821155138451283426797059659563625131514056877531435670301513015395782132140424730543089033096234998253407626224613070267068345752352906428057851244793480000223338784416592742902735736661511406110185442640755235606350430446016347234552386211814644722649787089407324418408329722027678950383990169633055079771233330012336423656880140931752940672001567969906255294867572779727769834428350208417423206695863926565442575573968900590939183479092819934947792540620361883700061031999809658538824706349568681044619414951902300196924199550673071707228864503057779878710052769245901689477748858706455325598249838516522194101963196860391019781598886928535628892030814418414018702030035919079696011675580370216060952614370413505040837645967017653397855563758363752100703154959103276220340276163302156458495795415257194171175351999037144055712136347654555944822001469763830144381737139736188373309601083448618274799047901880273794869628933444790807283922256767230445973795132867642825982299405299921702340103558425279295001326811366737785596751240302681637463273913324502509851967403977362183775350653531860703122138010090930067877324966173966360778222385805332527774476214044501065753654952144501296856953528323587701138977036564873706057498255192897079016227276890581597889662972442374785401524728837758718944754593043684354875751182794413533262405540106035778876196863093966330782353527423162605939278764205183707895296002501605688573460248638499266942885454883919883435618870255687826186899430456345873320162789891128455876974336449276732709588180808278929606448368078468579886795297871879056075633840073968087748337900914642956771034735642550406563200694575159441177921115713095907440546754008605066324628244768493584426142471955774959265906654874685953273262283221759617933038098102803193077385372164568385359012583437825973368199590178209823116149667877866644298942863745832568186047974799898100546584267958019880514384540189184577107882478662832613078386337453332204773301783950340004433872734577494716647118032663771351319009015245643223661245437096019027493124881324730701411313436359340939927097458412985215505713352278041447996715864482033425074297142581521612652813886757661891986674652443157800356685987922241754451216572552057663870082203336451569714494474631749323460265303555299036079733457392610069462970636194294573341324149149262876820320091307330875280625777442516423394166251318104308610684520334491446892451518900065641264136671616588644834221340239455672929993623086853906959693440190776780268678962445646580189152600298888667511815418491723299077175421671375358125834906791109476597171497502626807930237834507950802117437424612478311487734810065412715940440163529512921692659362631056447500708858014589855743811573692505850172404098303237399244168555923953964620062339538979809720357796349957091348660335722631619620470950183926047986129429246756147801410359739353801372998487509837173957466127911946717471666097947585978550901335393280400397219948680618467716937359088815328541961722558423938925442937970009499559830709296714085400247534228813374665482713057412936553904724593680365546129572540623334440599227509962378115831955124541317092729635343528543690500367970375619885777196640954463456077528166757285441756071585946311056862625055548822590515016406176228460135244982670878105712027026028793299435409610078543974619361803086559225550702437363911694140543047678968249964448635144318059116618909961064766092057605814272934143813903292407587317787552201361857684159349970941236227933743831351792760069290823689673597599003019355316740440760351340911138438657194510940949333679158254927926677309633726048643733758249244174687708607359143868057409509788693352889380080883804454987235912266240987588028802916021472407333015332531298368337611396727750845264686826420082815269780598228254157153101198407424510131715528250724978656192773175527156911334123166147364867039635951636395779019133886098948505983037601854401457664110348167386863947120849556067970194719816853251056150251495463137199168237032774845533637500581875382161906620410232858735926395086535144812091652837170013511861241766118305282391826221621413797168808008400394038473197165444814340492711206095572271331876625610568911440394551910740189236202184156665440377079288649577558630919228194778323029107575504462958437268064570113292826515721832316185780985444985750634567117843426087138087425507748445943223652478375500149029659070436373006703056656338802993273156053437676501274848851646314399240704109233534033704158381930898719088692519986868636511342806508806585376881653530497751076096767189441901728206728660861342781285729728562024902764933549905421525100942362265248636857280303960392985092826428015137374419513166160925539381703135648582190584195793217625395829607803690874435218702170384071180483051032706845347089887535739081409971659444750801688442806149791857855098819774512823322038612678782841310905441065594978589757738296276360475302555884094274360435593060341899916061837121753760947872759910269899088312340766571816656525045940928261803053423030404418436055827957290734457358744317601958379057081586334345212176559117204787975573227047852909716102086167474675262765920036742939919874256620351208651517089942582106865892308235259958257861351034864033925936902308125719949939378820407112185979148587754113163691438451298866583576585730385490298318633050334026426401064775219825564857503408623586325243810067014206387290209396768330361487442046668703388354140753508828731178134712876187495169197104472050905318266742607760238368249655404642611737020934315516647008630712088879071199040424572347813602911093363089441476555524462959955891923067242270406288990200477610019992921042944410043861671372658238704622789306771571629261955489591503699316463692935726473209327431509592849063408580054404663723585426155087421671345205094002428725006384072438192708776759786862409245387886875500944298311022460358476110696016864230548145265369569903791228596416592459536586817529116641603238769784565673639859546973620656343408692558222481981000958698412171716930901362167399511549637845579230633863978268993768489134949317598079344482800518244448937643495197007980964835636595715249481323178621217070159277397809156486501867882149869187893407968620253146568774075012612214866996399369630805787543042089468152251911166533411507129686820924175704908453290644476754474966848605787052647304032000721034630199775496918695839761077624829779660548156325813838411297338964374729481125059634020462602792804299009957528437342618579815666515198100548664227544918985857564957538045300416101309319509704923742881866415017321645889982140234828222392163032437187189713305644970918966769117084553430047610654367146294708485235208965728576723683423827348545728161168585467962806853327725986379806461458451517458802862524710576186562660684101939108707059933884910457697493140908733050568534621952214487085326406913992804352104732749106976493795851153794310745167173816979341666565273571402637178954219494719411067259276183415624246708027191692869439556370924465850113591809034063338697980792043451770968841875341951832099584756738803053360367711451085435516494258300529489714849525510857476667586347979790125846401008831578857070376213834641069534800031620323614870041165461350798083165068774722579755680452657477141852934868317504984752611624112193208892799196382164686164498970798059479640567116391433036998310144677871968941286332949364422113000460379721994239282735794644357245229911799641335420202358413846825403055329711511043637847716385732284326734194293572650867927828766083937657710332029003408423842298402332919945991453946813083235330286290793532223291526361366007034554500788983459176700282987117006428618189177352650346297604604411765119912274177565328394282095082709628857431140160762521785766898730735283439633694475292992021448297105311837202574702592042108028675923054841401563572379100412655871019303725105763963553069059195043076089574178545007028910316689865938260327334157019212502971536118935090594416916095276674806371962044679190480955296292501933964658921904744985696023624977876567465556302263795337589842921231490903654085442515441628997184742949356708949063723175880012422409306555253038141308762417599223249691038430077779526018435154870904221988213486593126500698261682451459429715876554168653933194921114648522026069120853776203900708657121933134403645831716431248220568591103092011844358763957498544570968369335864770918353672070983381551162017345604611969330732841388045490469206338031189902748874437680294257305769222435296689596841510312803982313552247843080738055012033287684957185997451891093369559247998985693354060910555255304449157970782293872531042409947029966221778232101776139464381503303978442388610038025913158224239036138333896851360429926033006621920342480246023626670645597465702512244646034971992304554507912759601378162785058781525071347122754105418188704940830877531731704414897820570527057358659041130060296140655776489947463086542359975267768703907341976435440999128249371338473963921725653571631001542423038149611922630430288102536412166166770486419143030053471644055716281608355113700821787981810596445289314891777244799564151774781130686408754082455560930778967566551204754628900219795472235381802387363300840887762917725054992591542630510532594760543601880936326175771875248665939899640053833424237298716332136796664543400380850754596112851799443661173671309107946465320378407940321219439106577259226482481908345072164296052134282044670574823155200306891226967031206523572193717811329002226520963142568393416243936471085433031168314791777143464193662875663392290754810487594856659161241497240214501993067813277963457257823309980557912274097970201848767843428361137149977712754896462731076000936002288052345072441128926827135218288785583834848417606991015594145004541892926446324598317650198741545105807669064915023411554944722109833932222302118194220104168938548107311940792042452723698432353274497584045953262402694531047919992382110744181798172990526742353244607656079028197371603747939360044487593790100791006648945024640581619457523116154500655017316785355918348179067870347635681145407221455248076486819283759105849243038162302830853505207702950567450823554023869972873393742214363118118588971537734607273662583463538788769059001282015184610211975518993337114023278611184706619487867443035387609241469357574719624796207235377263380182276288831068199463998058769998346240606004988921866200449445212479504374361447451047812643418115928590620707038127656260386299934309558106067265081606298405408060679745409035901246069625576040645006167451312611369265671918862729940680250842301338425377192808924612495143021186050912830938395752236549551425542492066368061248538795265649857814635859188920252505410657383821355340704348652687284439691034621795427788773194095751245339365783139230509573608044438784019200866620496895992864429114002277794256908509683490735754634259975645736604273116282889011533701060723128689665564801945554029489798876640674842584464641713275227157401456010326516040649464540168746536217519209440040832796137565882159832042440916826018834889629256513136787158851695583019551431451104633254958838795271946364260574309843128768851537556077065867817231236501518093610769664446381854758343399766822876833050676747303463661617964129706431284166530337397712883993719810132374507252015102598508505742680514977207497662898614657472792919338841829571147877904141533411313220281275569252048680864382471198393485114746893083428996963223652957759828820112528425507755824503374268919375744508249440274508760398207493757594299011638986974905510925012472266939604236631089538505958473296708099916913208584158256744638939797233344434157820381773859381918648625624670217270516831887030150530009620298896728110861502236375973494610685926834300048284534063161816469939848383400069210715342959831001504828875737585447613516972119795045866424952210349261869153413415956662311147815681776816048014964787056794083760404569337245752719668024041360753934916454217135032883934047597631664853676075186859205077943671254493248521115720780370577914720725004222009990380909298313240491476034649833734664368924751665822630883011560296784045339448687326861592404311460504719569777348946981428340860120644883164156009899275897510481526813571610241252137298788611980795234719034975567994114662790349151125960471637567065970700708032058847168517558560888205230253365649573972553258895710487635012352073836469133422582246448019834067069006244423307573171155294659139357734402485788301637468725277916383426025119512382078184599563780660044998781715280276802633684859810287158218621710833113639064912604740752012332892418605449356980289478417506475142352975881119859828038146512089697895336148373198934429475734429593993641782282704178525647269159917865637471713587189671677510144192493442082047423826216182527779297989456626175007229820410179149727148473790897171881147977027181602276855721122322522998633603379380760888296605247933008909274219818513539004675546101986387870745702670721362104877984450200946472200312204977609491923256686756051021213238323112742229006211706117692691797631783883187345087845056108459626527630199895057821926472147877879166906154580518752993353334435229275293407505853739593934295252063185289757855248659609508936595409273366176225710818608771650114468647601433147990060385701177324830973905795398195405155782348946501642580366811842154784660892754144469868236674466677846800341083758507730012608683729050454232616870399729388777062046797010838986657250614158247514461764194686983356767720844257856343664923567550985117346920979996670875725376849103968948190128642691883753746373867045246795361537515118346487382172557084156083961643146406193997752808028295634540748117014593997077817565914960478228274543599947713203603992670198700763235237257132421764147452315569440478031243750847122301208163459034043533062121008463884094408504650515500986697707566653156698897220303543850060824059809515079197758137639685236297700124902574850603215463588753481538300420271680558070007502755676806132566307951012130188715448433684477959416167156214628439698682667180510167567337212026193412886089572933161594386679765888177214855841369494337349218954541856762790181789102624739725725563334185422179953837615520711939335917820845236184761114520296099617741600570604607895928601321287545674794471055869996568815885631155769282004096094888691883745302253556405668696728748197853302846550884991521291944402542106201784196227114514305892561509524331125779952705634117178517358780881250419076992000807295933800604222061677341500578398241977500038874928137551623012634495053976195198039046981642969645854222807764203077026865540961727995582917026325765750320636709006507929434972355532347299094230784575207486633304265232745351783044385057798741145913835189478737673646332633169434089956997202484155295720252399514727743778198269358441791614304614168689493393364751026289791250023912652586437702837475377993773541443289510836001730017958474017771778424804148252700435707111664828989274536502071632655641299975790487504291148188844955863080654624957416921800994492581821979708359862991981487464487296117769182322475180729588042072108550828217166971791202006326507361054391885332265449892813239645440932343719702358431339540254810419544827505497196985191311861249381313769001516138230570143145977162378961451002496185276642023602924868913938566466640603815765840800812414798615171013834185164335676915826087452198593403431019147090446433335711176220317521068442155185322244289087474993379723810058302775020456959612692612827262709729565920523486192234433438450560350820256053878862794297829232331275549246148052935824442780774001991396656420713537287756337887370355735868160535224264929868356627531439168804148078198029760440346055288721105068869289333385514279263800746798435880886813063974059569610769858524983617933369905358956430131548447055033235743072798848593799845058553887601435620486329947266084375476702700479735019460926884804659920675694758447972041771813579227782275405416005692798058312240995365967557987454068451990991190040219668625173954976886753228078401438821171477075377794206750730355547656219936655094866797061299452748825772977663995208760010466113446157050314380981002366959148308163638213323196388127856937709280284543004094512074915539173277222757044288655678074821179514927496058545015397537783572568916015854389763313111518297350665106218769613349907364475862351000749521106817155185089860019866281305856396060632824814576566761693732712313513183680854341176803861599246563762240671497213839001476031116346747842297727406778182256965617294082529818943546865082700247133395600915511070918542108145018712095651935646202706142194735516978143128984233069812568677522098384706510565503982388053861105352606607155407578015864574605835738972398434754821546152426320688293070627751846928798893359937197626147027955951360427846720275728719695193179994637837832296612054524804356574400290352750464747829071685318588798419607845138331476933982086033428075212109784283569720330504904348852977758591370312902296236885616463210118391815833320207895717973469317523737629244070618467206816773248274382492000598530404866132632102221319371528247547204503645537334144114150944074551833588991361031258177182888818978607284120522923958423751186455150133303044421648221746701503016026810993492650435211045057928538362241015207129562746810269715394932627189490966170927850908844621205498112511942662851660390423722664429308402921992782308119936691293978648278654626033154095906110695417471567789292710729440973269695264388527615893245573835677205500262085989421151610342541991847712951838122610214842327342567978483135649409374065715203422415924587970210317562360853256207835782058529729122645785322228190595155404577551257065838557156441326778394512676277509142007897623087611693856388865197434677990320174745133871864517030407478972465079575771814163200458758562658676576775383168355838282578786755746724186349587075656730239486594316474641422847252601183888108560326139531245334020909344967286400949372271385960096743087300451367248266528621372303674802454425930795472076836374807054352564076231952716753931535244834618351363801416740581463303264891559627243611010563426252210847278129016038185818228861556484491671274033256851385440499286361681944453726256430159108326158754718864795577905773241523929714730980820979711392182555647283967034819929246525962630371836026290212660212242265204580497447867482185206775710975006606632305049161270001962477056535230850373524580523853524071642787206415256501253874032907732156421490384869818337473670590937746980939483327759059719654114542426761229453189057022506281504216297604132439765082689709337800585282186843224941245125963324641808775155496540326435716009225682682715939668114262465635885604435588427984402051860977655398467812431587561657995601683161910814445563865315692141832312790863335286626018067973940320504416651014201161338310288295815387263087522697139724953053973495399979493064282070578133035393374826457176642668549555552607055803351240169638687727144613855626842448915096171402966369113536923142754813823081566509978942719162787361841121184625029746894915558604975222147412335701975978812458345263414548969667739655011565122622107047546854557105698219428234913974106207189266087686956417822773310834734240959549180110846486089967547419558014305832711165585365722896779224848118096652095996563861410377330471866788963285069424622802134334083841553923440069216470681907715904563887489623366980910544948787373404836119174681012035716199348421712227934949159140329500234188751163898428963989978102551127234138002574944657399906672282933175691938612691272468664439263179672933578984408482484416902455511172674025260288379350624978077378550079749272436454855216435963041035497033298412726305246963565641449333911826788686619347662672686273065015283007370001214464430019453113816142437832223426628027921850519168099234796573207908109549238090712086509680205929228191192152933535367221974327290629419364628370106034475705251740413002583715648331990268252614042458963684247496884999050493303824534884258246800899762385238851472119711281168934833826730080980261575816209501205066803340160953626014006315461564603101810473551838501591133017269082772385240629497206359631231201171062161345873853355493031243037796388286460317270736000143695822715070277028334977003119467149534065540144877608242497502136429305597841304739188046360363766912992635598944262094598242061271505159081951912299776559296700297277361536399091373334452030014152269954827042644167908482592763709290573080128317866060566469245287044695826517384947263032841600517397379405076669320844152219203974285248978945556304865812607031898093167568366047401000971164184989088061478820045282146565455718269200629510910620203147286489894547812022833985747493635301376484346622932419160422038837769665393694470599264586266363013170640870628525127381201563604307486121821851680725280315846640505766575204766214524502138445851523896347673734018108069919931157403248586938329370672532403604115895999700588974746537942266099432005062523509583705352807198882084890843433264695026330778503499013920697194620911619949235160938316336812454360014674252492680772994828449755868760440708757745792603882057676715157157455057339165544745154017612159797478896337428495710817926485941727124653463750493247799392446968981671921300013373954467305215998991052371105943719304414699243824218684112628179195567335511509051101352110755096236524630474568468263414601274323015205735424762612597413677066305775259966132846830165377072474311636999648273439516198727168085902506059021416527979518797722412617195440497789244561203722177048655485963179655381467511572922501342268340297856945422811266282040918787853840079962613759708484596096407739656856282618224925249699934128761536743004570348751079815800110400383965728972478331701009320252172579282530462966078702200348516790761361451111851126424574670391160702526136858616359567686036301097725395081650112449538209130741520384348085008228514283892700773771797093816563630346563239612846566654954147711610760167726983161259029873154906012148309034172223312423890122568551938515770177856224012557281148116515905455302760977301066599439037809706766885644097878068246261688148810358345119049589521912828069396304362128481433235230251400717880526457549314585969334867685890744966716482867303802675165180119095011693991216518390757844340482673194901143924835909558282110461362954426009021099627763634190724274552761252018286377911425724537259169103993029000298938601896207426602626900325799875344577697309712856314323712221457859116408561213460751397501153123244869768409705886679778246758382000373204107472594033114338849683894229826346796135949924438180638792766520633536883396080041697033515839924463095598158750869429058683542666721623014847308212995999348747092521544744034830742810791246337748943735312139487528812637962076913553807968973508949389762121593082678004237742589490161422306150973162446804054661633355302917120698024960270411281470723191557985431460992347689258098312640180364507436010921020283562006363762702912361056217012921597182599321014979828903384414640521071376902761108830913924737440444026874143446469260382371030397125915847661644823698595070851314344474704508691354423676723454791885851706990000194900689364917713967989561550754664409163939446664602248935235087457932701653453584502069871866556895793433795121720400700871198576051158330490164286563484912348612576445611001250186050501587889775979356202387118923474441796597929520811734736070836622599058327890515109984116484992437047990196729006223128641799908621607155193840252427209151671477733422930586178955372852348037005688544045360088984822550497957925002862774611897639446873646682237764522943533012787231542863785599416805339085319425956689079447305409751250554982090890822383204307868740434017620972977852867327744446135975771201905872147084572478331069465983881017791148254198084721722449768396886370266015793813244160033433540994691236671877411990698776303992896460018907337149831328408590540893644048380459309871006974781006209918407431014801281984741182688815438428356791421954228438081368982890007412739395200625717701331878790287759778460253628299323319216802408649887690081757947147840088274763138924486554366163858078722262765260681708189329989964171601520684036819471044554772840921096574357403895699762261032920460396688625498279667431734833895881042931406204327877567913050416057641473293960157539265930094881957702168914765997907784935838542420202160278763036756306272442161082602257370072736068850246185208010955212283296754713054730105111317772390224732581439870982410356661100174445595462792074844226642562033895884532238733150180443193206874023898343520180683287502323868039770230097370739617336029047027776835099906577528355441773685261675734426130932564396056510081405871618611405985754873424828314150658294891988822383958578205598916859529615630452145902141967849855778585600737213527487373692738305388235945947018651314295494534907840863431466733193060188822489063632127573612664710239893660135542382127463656875784369364630612909633575736287766656902633237459528779548621457436212330166456131247696297482380018651851907576788939396760601043795142219592394662251025752820058632337973574183883227874964466818661637113968405275647428242680161581002236375190961852042784147439297472854553845181874754427257138559139396811023323809137251470920223365340600878215860125707722872834433091496149432771393978496129615799712442372415878550668823025649134121327257773739730071229037376255828436227133508163439584439268501056439499967046989575529170120512609233354834657189359124104744424628446179071581427324214151849585792160526380569456532309685857379117367567920704476945275066549921760946953236123340148550582779309905327125043991135972725153654381789642153593027004537625081508242239867556732076430363323597891022898204684672938624928315924691698787942504341848257560205197699829263383923164028140791357069003811874437707767314482471130217664450169349950143566125089494261213020230530139127966447586367589660972890829013380425467590389201393876823644094394567474327032081463373011706577813692807700067726526332892150147163959278848908585696372810012826314600748481396769298361691357485190099963145885636708441991342781640306406745904853696721466808554061472603569942483817563951465907402566412545630205618399133380457440738452865705617823148698956288836430551628705633093199567112240872147078073527881110810285139083045049376272515597458268663378595987120061819855316104876209330665152958516009127843094869269634659532586654639845570084362682851275590404855486507139545078948825250149127734836127947089545568563662329334165879158827568674792142257112198584620920502725065184820968817437589917170304521439945987113286875144629731675009720456017130209838804538418545648148562940594980168270411477864516984349838054393816682500725678033479881048276426719530338922078597477594219821394207256681749181634308529619155886069333060544303630762677845539024154312798922281752182447831538726108446834118459365042259675423439211808152132426008658467816948534789491117416399044411146481935348802989008079311569271014743586358691576993565321761973277025777566827409548516791393782099733780161374244212500539721315319397499376891005813262186317763728376359956703506385378447820071115133295555280801082308531294213878036392852437285106910240624157609193660355016703117390631854444257548650300047582559098035272877458906172417316674336388774173958815612552581571940592731463185053736085153098124773269983659124557258281317781341453654692651224013717788266591559449299412227013026383165307858408981006558913237665303340406157046724924680971448086853007924657057061072031534420771382728500567153962153886978004699826317068470605058301076027699724623139082001274508096594878515077025559891555273997790134719456320732778426036494297896616797423447809812865454472588073090565670704042706667930153419787961412417935572392015432024397962471668628653919681806623632544679398126458196009940143005937692266411833603197434963630212577027082159183678304683092890309705185446614712532266393141591012089714839331373357153023180195325221308788894446245605871440876007346141433041687128810654232671756272874776348473022589401186740652003843529039211664881880635522269945427813995742037880398321434460169820096560344738432199087673811498092937513789071055178311065955603910567085376523008406575791510019251019537965985146751274103378438827424005635245666793310976948950470886241196331602614146163503947027570629769332905101649819132115400557512308684426890681787629003010654823184498443571170577920208406335219381283962973237043825754319572386057355681922571487004531878584976254740168538952592597487453767859838750417831652484045381344752824976809558770741255729588394412863754809056050781505035072955376793346035237637501398003234088988071875161732687325450535722621199256007273162355689300493275126966172455685355973937348194389245622164088878177433870180663375767513670208416337055815974599510465935058877522295931058186233091539810263195196597891772143995505233229619096309874564666722092114459327587115044383977170800708946255420270736614145086625518311334134202150356679840032554846341440911865452047757570615963591480613764726606420293935063479986015435166967590275103284553916292712813903780295900383226458765322174362038146958347965690253207748811628478005412431624482175337998127721125396210813870013592499625981689999458100022442648084995593995396851642748489486358917747466593092553183014062775345642975787698904684891376244893723115737320317209306348752724626533734809386681309246033796753624560437466221570967202805928926636706969531306351852962713229747566898319169461281123224535965394779968296910681120498986191382090695011911585610610547636787558797591533382734355652572911947890217880122261155840909527164111110078222122818145771120623609146994177478944174246157293270878326558114108769518708991100973911938310783519296397904244132948879363866975268389789102650340815951444887028190977505414933373594814265439149012669711687387492450198247524366411468724668849609554626142685469973355508581616825395540006110713603150520045941076016641490004364156522347355267051333059517413837559583006348462456284536548720177238768354681652565087127150372213265172247884147506207232356420525549865882449584558330059871220324255724202648342853037210231802455144800922986764408463219726615321579931737104715550192390704554572904286779309931452294923906841062469786975582051110034978413576003991730670579384320832725188048687871741250129320413863834498005195747709614704920646486817496023452521261812384515244933742602636727039932404075146979410869168707255162489794403154134350929145076971833113145938952161432168527088914378495288022069378599845421668890103106064461149981822161680978333164192746781927381235014370133799295977699611636578688645644860914027401806602276768226368554379862064262815804795670569660033827250558311945211406531436494805933374084569098151937499430971913866225952053321587528814612923192057053711680725167135672238398592374095879725139569235996171798315979078608033216003865894653948528415722695782325720459082480153560444748080863681579572227441196797095128787410578529949152389845192762802931880517360519419705891055111370124654897700759582126943882938834796574827050891690348282100231113328332810631034467448322023503191340377901182339454913278356492530648611590310788469309721329425358688538513597625090417394453440229650250044009545991733354024916754432670385738894006849521593308836451889986661027122679932945176612539766563904225315210620047800877968263944346676448708308958703711245129733379461553698700806988801188311219986960592429383212835762409507157061903708727997599293862647434634068439702726905420615921524407334038040997624607304298502239308812451963743050555491296812359137548962933771204845225047046985400051768577672748425786630061192486525644573571821678164809668696224858496796867383061055690215664995468260181143292801167387864924881918301614886994884428733742202455711263677759782331070739229554112269154408828377651984353016617382735128717623869877886864977240964757550971751173224323865707284322384426175546864343321370809755151628568997169342605240439526957698644419702594524742053151638093623543190231952332468406025980000414624523707815041427128417720926509845941574081689322197044056685438931890461729189299182436482053358839169100822725572921363020189079731446255226889527777745382119839674550856244562948925027396466624047390598421244516351889006231369877687047616979076222794075137964266350698267186954811697528085926783187779006542281923885831420748548525322822616399016256802298667206383184622981659253614005531552332741092914139159524142291653166550389425151275483119564793315123282417062671339682381176233800874468684800076747103240301231840178469420178246318022293109181718869119722784610590518590229686127255241646007368083368142434468541716251281701490775575483233359410670950688589145031320269891387432448562623098071142042045111430498219424264415097289832676706631568935410295397665870739215833018755562778160929414886974842568256405933443135012258507927928941544441579293889211315309617187292109793524446650030087347009306932739133675341378123446667048179420785367655673735358730821485881635368407690315462078213578893273479626303879877336572969388092580216709443268048262099588762961027058600464969025052904425353928735109771092043758111833725009006359006782167221662107741199955867464600565128845256984689975227941614854697058806215391911359846266904458505218553974328972993826278926842183426420112978979599866423791824698081868567518385859022635349767945813413095200980809747240322650577543194179983289103936317194688970357721875512470685191987458390608693687930157648896712993106773104403868550716337915327697885911198474125111383127160166017513437762569798082719716012900921368467282681068584208927177127527279465995165764238749131651271856321357302368066385247664258483184561127565500411176146191174154831758057676279828335155402545221318747175569956604013528657441415329573754354754852161382435040324856717326293908883964458173605541171762623243149803219473766533169442894862497108969164579031141352679704922137683762769262995867979192311445672026333544375244108790878225332952939462541766826690541969938312803157833078474970744564240935201994222952747339053383664415656523583577735902805624850037487875819449820942392696137126410085660351926413168527220671127626126355021597866712414127350361005134451646899162083419818813370618124312763227992048853788417934733707714661649889935172655277982100605425909216503800926152746718653672275417702471522390869748784424726664083390916981044991315403002028996274863897572416873548444620562386880616364288924510202386883580522521442310606811560869909697993919413145722857820311975954059785509605748434626255518942559091732724268826329085239715528196195441590422061485772500308326789460702877099109389351310366250901690974401944273020672992060160087680667535686609911020193138040993809451127621826600078687388955167277566180849259934447843259739405876225301201738378075647387001697342494596277314134310147726423200467226504782344313295917016602822272067726951493200820703400300346570929809697341916113385251309274545857343320965142656207335746656667666501440089620042020091682326876700979830695794696250093850761083829239716991466268237715885919936948140623095557267650888114949985429881109966629103841726287786634049409889900064007056815118015922878407655036692413553390391187283294052078895177071683213573148612724272798698293777586691690602223880290838691159537282110032041372606663033166611490311396059285543760042063900687548089149915100791473077372330172190274286432165257016181590325217809676109477838111538788228619948641557029312543564266816035820963636681451937499728256431008359119292554369808084553125820133432360662565332262050278956366993444970207807452911138086627740473117139162208796536167991441505304948851882263623558516018691393202626461791509465845777981625834057050899059625682728865735048230793623557052615308706386012689911324190524177406636449524387220889495620476496290725187645847475743094759381374599036272910972404109077158405265262433131866152448231138853259920026512441558946044722206246797661608461573647857175219849805241404205139030302551320952634811254812183979728229926180535021375648633061060535592312562018878303919920982606145815899138405461707943011531490029744938198763034055738225058079825667219860320125061701153438378550293523285889987185316518251622542119013726029204514938490709796128198265182000906892872709176202544302393610383331361188599854212628954156364078476154115724672930936766463175063847780108177554348820212244983410023186190567008906481922236380868286001624140418883291208254036696853826107309449231148851180425012010881682901966139758723352387273425056859519189519823650490437474368609656125120367279043120481897660710020741509966966320471793775350474872905359721148910363861702326814963666381730842759396403314251621144091465627469496342357366595188714211119046884429226389439259956385146350044700293626970675808352473817967454440944214549717723924412737865990182257460724448604587019739394226116405128512009048804358204854996248923908921297113136025451427735840195065966970812903816205360313071271891816174840598575831098751005360578099865039084759060147316980453134009486074890558310424352017592429715607430159678587968161235559743607237142068522485488810027467131123927435441342758895966043243903613829588408022442543490636274562580893364884145444033595966540317877346882318859966338725145684153783968956284852127127817308703447444701419912291474472251452715417479578906885888132738465937016175590814509905118426728666573080190818916879717735952908739424641571179113871013909898995809502929392901227409743750732320909467596497837703587958870329223687708440472927928715078153579902757104376399308341985068656343889387167469770162959334082874352575122413286540197671717801151547033403477353103564322723763436089571117930986225491309303641372942457975713494950653749577631219038667444400628727853508610702822142412043220663670509006108750962973488516347170337867155731978452463219734416417992578993009287941629113274061770160733500737665946473421753309753245019774870187284470750976933177689425823450382640275660055291588938351591059830825465889206387266032387877344657294166462876029887243064390594195290752190784780531524665931444573935741336859291597476743907424524666401436320579427666059327269520367597095759409570820143988960917257299314270102558162892702189600051223944859897076169557032845563205299784089459420712387938051520885728758820764156605616845642876241837086516529762695188886386885555932404022573985407719532643128781252729465638274702275516974736746801450973706583637066454117762255701622988451790538007351698883771271098798738756443182721363734692997833823243850362124419273054225334806869168211979448412820720064616510150454567621862811021829813623912119772732525055006772035168465231537659567394899827000030770366336961562784722435207642575524018342216037480014075267039847054736480304715467123190011564890135007800985714954161599957049546546583037667774454422361923374069927417282746896206446777484473259397671960432338005893003251742176234099764474207512087273741657368367185343767645108305783498125708280855560256552999921191966773205487444985533541697943488899420039799093575206045263163204862878422396344376681319741794740483402089349844068784792739308826234577509289217311287012526365071125629947595947368493271513517348528950177554058639053302032845309381854170691821597909433582948174894303974332802764649050794112485588267949318245073159383355719410225994226600280680127725825992379412356907443618778185930445986857541724477056045106819471582225071495658494864965028949588197672091900883117763385236099088686034882199679526016286448084870448992786775863692388728918190819450945002431639965495339376879707955529578321787852049056751598635633438325838941943979997667225162745172698242348933761768377045551821510886801054124900394168465966180171990624150458545648665118094432573610264984507059382375258440517473666336714762058207843423167405281243069075623365361426022882120928265085297430262287834817197309930059113211275766015214968787409322292356207968870019010749624458591143210917047480471163742484935751615234116458302516495173056347818115493998731848729392122031683431201499876518330656695810584611174894661545958115323448448754240005764452601670298568900699866720498467402730047192444791244933904244948837328871241322750944245978679519493667532693582543907546083389166857621274965378493131561798676181509010012562887775272105107795374330053209780642872912164083947580963726830680623474463372908414286973200492225575658554209731763827050867054238902381316339106595836036323440335730344593235588572430760419861943959376315121995676409510094512581442904365582711372100164185562665912207277089247911515984208041932108257308288829332615522829718831479912633185057477491659996204570609466717934712303065942016948230100823625071975130736642767308293554056420696266415827745422590235419085428092844349038709527744960495351881264156632596873417036649944925720815087336660404020604144468690680750414138901909296622411202191281276462248777761009939413523003036774151972824387794793116252756429847293393598469455317466974361928790813646550264180330705131244967586468199366776542439724756121327241885470532227945797375002043834123539833149095764813142354479771478005692771142923493742650973039369308008227772267210241303168657674640105361916257314459799343948182932474882005097803159943166138278086183553010519149818851800392173679968312575946462865841190980174795030096672938503246806125570080662906676845718646859701217557638733877515560963535424597786679345934290109463665555176873317477922829527040574584538805240156027977577813240369849369398390911714793925995676117143499170330491994980000682650282552156334269856949316844544518952674915100713763771865491878199901275448125695200062025633419000636993145676708619286924543459289666587032978602509182855403158686291001006816841492651112640615836084193888116695412304409096865280956324038252747283795852912044205401652956713275008988440702267928248648647279766408726314893004725991184724553699754509473570696614511145213921306757160375794685580275181942721150012433583794697088574571072083280659314049601420250873428103985196212288709467756004481103265786567869082415868639891498167169022318746496498413282907687879131582096138975386215626099446351668027092705399664304980397400026032045398712355261116212619653885859312550302024858587716820540030723178808902347649221395896794763479473393679153716563736217505278363425353779927238541154326893139597973818043501114199697829457388409309228377440141140497461334369286941979261969444350413488815707707555867507751507940515940498967397037694873896934475420154834161907063926534091625344477526246638406776601895421639302165592089558306117856774903915513593977145882179889210795108873507500232559414162488176167889986900645523073158655842281416988016583643969471113485731931389516101408180110126365013766706092849707418406142671668244472284787024438192225265946153918637565494294093468620792232628856256592503203747944847288224836391774935723847272336817499910366747944851911698797383566231158509764226122942414772722049506783518882205804113956869903843266717006602139895453458925431986141956238824254519419450066194029223918497681275841809801072311258687874760317161855855800615913604288591746074201252786068908368856105732541146731662210991849658960193143686749734146384044303203652279746344741651969810049541260172918370591899237942872053311670526367806764325253627864943603849664219090305973510128426893858780011405077722660112466349696192502861626550048472997721847864879836135701962085543394241218856026754713914279316492663680360949491357386657912206925945509494196023301517547514205332503068084368172228005121034084455193148547747569354549958983728290502135846022509638329884361027308778829786523355404030421843422935186607930029105453077491470703045147244795720858338618768761301358947201389943489571227671647742141881357291527920769864505249767273525810240070730421489514126791276515786858879837108372989259380111204715436619361559970110048792948458432470373717181574640462729587690123938965338625740757471441384818657661945037330382329451279920096126227200283870013798661181913843045862766607691543070991628923907079848841028092009343140296274063461464935963268117799255596610130140905839562027149332246262530678971411726762307542038895570531618438799440472121309110010390426327191256728276223220308860440865235550060307811678706239831180435093697539368382289202479655739042242456820763742514830253789480387360362909945560236103094939670264885546321522919015981018491497498477945368261188176008507944269770065714835202584286668018375939203272188866768082706023895254558239820883984471445805809287876662236807926684103825869034349020046480724932706105249280460825009999879914834308489773231331847445501061962519037547965579135940433313467803760012773968804526471211726767189055279869674915260172619364043756337345133459483330177064697836996252614921802241213733764435276843361152976141885886568541277872546328116661534536599091319965399162213199010739029815932662515777393346209458018059194896173929582307168252871314775934554890897132073111282235797346897909115773324550973874967345585165892389817075518310245849725207205903704100450225928058333576183064259516108803257133187154724809307952004421402356119523830846510518727010399079815655017790070981178724364444313503882224192552970901546570372867531524915956419922536619515901310062090099123644332278317020584395314845452775433316402946906529895372059288779399481568170667417541111422432777766397181594265895768437401091122408501252694631844866554823497019874265694235464659061203964818835805180444113257537720923720201417443345859497113603058568066545367385601536565383482201165688278967968161437639638512164933923177209818250149896853701418005032992453515119886621795319774613561240621493119546250528958770564319667025341830598928013812251276490483746036661068047047846304908525000954550320310841154824117835968658861755529035833013802368350940287441542961785789324500881968280382583332302409407338481677435305251403964183791271611383080114943523200043340033466926639387625507736867201786587073484191470706627669302210734825254020134136484115545772989476720365318902760628536663089928490011125450377953060451797697686076358104603817547444276064193414168852456449740279714061036516298419613670605413977577089795440273552034224831452660861565753839243821617878173080576953249554533749479799904023115438131513740722500931482331966281676927863198281020398709165196341461325275679572312696485805511026719137218250179836168519638419774465342929461310120678404808164498246275107731229513016654964029792087546687777053716058393216582907426348443807550670863158580535602556759642415931567488904675315788939197072138622279995308550366528652213771095848340809386949201712072815116138220738362570959259264839529033410675406968484241453048982938504641997848257634660895914135792001492737604618365389637310781092793103007413352139842937649022056245289443790542232846667485014113985087855038335426015426243639237710514671697985785721170848035374860033729520904281698985270233629137376542895893267163593182643942768676113464229571967716014055066671426196750526321406410949296736535026546977566995047834982074470885153073030495246034499539288066183908636228666387141890785714072956524719521087358069605904448488720440479235406168385612647638936480949861195059235711469164555065198910614182254089431417306128337291773318529085726379440183702957851124686336842097047937582599966026193992458146346331273189401251290236784339083005251491106335394625076380081264110184042843716221452220966450588343511592455313088397238559565834472640158086673949436727691772469947023432535987185723631395220926528239565436693625830204379272824973199532356379903459308049731177196779497961969356166834250414656249556247540080172178864476057787766818910005472047442710336668572040731094403019518247840104686938675233158507780032936716381420427151828122230440570956751392608174865842775851532208717902687629220515169558516684895670511664411495092767634052320034515117229451047692272411336392287889436317806405448417853817890042721215122444349704927338202271355324635211589833235671096681706003856197631084709362282840843396225202809692722284388892760441536506327063184355060521888324795129708524132625843478982277036692623581559390757701417487872989571845850678116869013441805934976793545490685420573984725979604731532322653418141178870778165333966042441635476484097634174864316456584441743927485327429059262408608678172207788377456785897540521638138127760955205422817187019767890689309767148112552188878754998289469721601580500457796054681129027506324429393253042285242909868848732368210995083399336949649435849699084301085882331379166814071084137004776740624767532443632670560270712984968879818594045936915262896343047132278003952854159697208124583753636490178111768460103117891565352062766178222535270735867990529187213864962277828456902933116651271912858166354328927486137781734005020961397823073181922463836565551633464629936166879200702244070605881060077207732837718660672963940799834430740721469646821977426635716524413706839675882209225778860945706111432741184876691357748994896040273313450893488881575886184361927008228682026823188998991334164201547353637579620255513785141497768166432584165370723753879206798873401289362870300001704508147878208838914870543983514844874531077151882783704731883292540260925534100301667715521386760815518367328317672410475313969679408409985929039167642092091185701563282261112043811726069117013766999434939540561974046104607634083480468588373375213585948555795683861631255885209225374107131261273149519986325301794721745401290318888496887567104177209487920327757474382254041150129360127976757772084804233298749228760917370858012172623710813699608906125321328434750920915826436717879081772034911013951039999644468895032818288049794396565186279733748290130936139005296626610075690750910589556439267032479267261602757262064472808500862027814672159201831085071885646140812608579913031498306681350637969997767337111968764583715035550892872854903817012657853146072915587982794244388409078905120358409108404682830441311420409996358483952512243874026404183604867651780442094939019227070253194708969097598774653962031137974508931389376206191672711348517853059170206554050428831805133276375575690633636136599821407358068764906972125900479568192991689147313815057099307926169720632553212626050220959416424966228657141788078826819944051964005181092563799881346574326193334117290731988065561092721573566686115294293184949428449829202579642982277490308054493461087816645747288814090644635674499559748083679319446184151316659564038286730160682624635533400124045745776244171450459445426472522640645175603907701682660608024201087361202272343494978918787958807787270332309697122669860628934044157467824515648564048388832744530962851968857073255244022619838751811664863675789044267436289422498089682071157620923348743602939731394728939296869940921188198430547068934734422985069692445665704654289573737837787878793767298485130363744959323041968732073785164076135238692162143361257793514805998309480306885498775747505369551997539174989475038158409648026868276276554884257771614082556489224757039339350003527109920998982865212316671962941966966466230688506942635391353322296138851873534637617095386695207037304762406603307981520549777531385757043411453049367595466044812503653816027543316107404440059424480326130507744723995283865740624570089608758074626695861198769182672273644903791104232706922378908160889162707910488134119981148806231992344129642305747275160745346137952796180940533884240389907554860356198076256335395676091560712656022772815470400682482861821159660758708849497871388370693447000313596480386058072432303884430861815596859343617756764099607225241687525966331260580268284793752498095816552653198156931101358587171287984845994224227698691714412440831967882179768747314124072133858745497307227872564219190130166230967236189347353500688939357002701119540741445055886655008992987249267587297766686800718721366596896265152836354277413667471362395927970324639186838576029904294782596897562524917370500523463097292657984387011338347707868989649618012353895288669002697045161163065453513618577028782185758353233165483932657820102843056122421745442510147776412962422912968717251614492770429408453279500026053094161627143613508547495922774927524035397903459333598248228730023325404279578419512375973083191385566987191043927040235467018993637664593504257854724342904084987244233859287684034557612002183077515079332443338272623545653572252668557056596579559139002145106048525922502166964764865707637589740660994900144886771643695538454912251340129285640877203945195597586543237173480151719737171224472201664835248163318822822062824490141965155545683679173180611093532681694701488820004900557914360092817340458142876292482397326252836680370891727751699154225795139965469166636750901977696002601252093556399724091362789845888976718983986816407075438336407977096534996913175848029735576297154890368710569071306926268983650970640719885499205751411004904521914178625295299053198457999515495231878554738824009430757457721278987601800349175811472457220273166296272121759094223283098178475397127690540620680696688602639803181319349534543253764296979090149482712774553090524535397185558080981749125698575619379148869676424156683823877447071000149555655243813018948775392985225269832150145646196183025108096173678893397856690076445945090748902467965425961506429488946505167149128548660452177437660724416403420489906448867656748958173616836784268221218595101639987217914275123378159081535418514931004344034920856220054441252706416071993197483817858978973530180428482893710673793947403507691442905742829709506837386737934001085824862301691044949162968505864730860657778640690192902644705141528425646033314242376299444919594476035992607498452775034655684655729917610171637732286679949685604256421910736257637023947606515936579785243256661715081884471887678522293838599793955291798524096389580558226563687301371343755442905747167920295315180228261140954512989309126625543987543479971146481182515568273376010428229922788240162742868474958150151165269999924957151477121590412780590725431347572494866369901828437859197215380215039792126321567677702237921458097349251588397270353669800211549334730452638106323344615712018288664883521788791595388750580329856810534347546849199688741822743329969059364106202803165854075012017597958274948512761630027030436921436946273442104650751271177387312733431686053463882209957060318233429963355624468792802176293911899762960319033388241165706966091358945343004814009649403527642249620482433635601978520398319968710865306190838595715550359681933582203546112073299638131753892709379180756985902565425224970730757858327451236866571665435004633773131410626111425918612869691390735247282694389863649333201530340429610138827480832513620523591573715291488691802064639320017134607532278887461264762136062035014006499182294382276201683743879143014523024269780474597268720699576450342339390647974019077676788563130640298445158555368182041076752682922800860042102550434563252602259416262962730575103858197694365176641255686567305343008982169680816905850855471877749261223900323655998936468977807538577389178656617249832927764459234529440676174996101642442120270009865289641073837020423529801943472931097755590053354372241806000653002139118924047953529218628636388973029661496775722070226577171267512301543442941855954455174470230791372968473266924849475720598913811214781653221372608784554925765983240104658894513646514506386732454327493511964149411597945710685190575046147001315055460104781510612539956000205536360419554324609947988883114324563819456883670342170774178489859881149307106794081577844644951466125578310057599243131027475428955444664874293652381059441841222266542787206441887165299797141827461597989744809959058261755498164185829449513181366838317321004395746193310746751962529318542289763848485156565269579198598551651947676623212817169096691209946291395064848137438461904391367938711752870944603586012249722329326355441553664632697955167920518725451847683652730657436926471931157216763773204080009504556407289815391317573221606340159440300071007352540825226422517700814361454014837754035384133806470791575769234920856692785831747604416299706653579905441728686683063611863365418431395731142155546004874365446385298026321220053599718638244247874639957558805900242009537588817677666891361807175113530732756583688802983040251206281838421372884413661690381342536947746260703716314299371264521972081698538747794711367350491554316770197791849392641340822905276987827502113529451600385882641561644268937404175174592657828201023279945843695558386590342026935293204638886223194367318744652807325736645896737414027751386210474011081226332356265786705191131337372110358584803859460783116779844557525053066168803615818897617272619166342024791896137751754102112643201758722765875436927272329829164276296554041012910531667705674846605857759099865926486536660672090473302369521227458141071021852395843669517382806511651213399715021241876990398187946382637626961389555633174524721445259985102914608150664795215375809709886449946657647691659202212700306008099020342827632377765305761601206375080090227567023086757932041244330774756583795606667151450249607043678688050894667857041074711344135437854658304802189054970662633559084538741552499433161864332730927583152331683602398004811335544666217853587392654861866971054810406371140307593737032990560579416068702678913692171861816462854373637496166721805121280522794289453983481424941870024605268200345575327856386823890035639931187602000943809201467613093374331589543905303776448001349598682385108127423237748749798271089254188037932567885984735275384957964040881287374126801380435242281512792708706208603436078924061691047918403124314554651509833234449706838228137989913613362770304387952409098586083085932132710206241593711760665406385278905388815595308880572533824397175468775314143723277371817995707425289326398863670782224648309897148339146319872219283831483620966690578441548083456141171915830198957449549615763233828232293801249326099613976865646735080226952049263862979313436373074036136871036595279492909608045296627571713831924314022740681461477051205539158573635437103662468516508970176105855368299747248867210435012522279235941698770219377580031164350346803662474853367474369943189275567304026731541728126334577904729451788432258712015584164517040475167595278730987024626344319806241868403566905298328479802536007105352156488000161408435503769644526924158170874570896396342946610581554639185322512207242827193195717100018176864615807380067829634814049515363079107098476015428695203213663017612786812356596592562781383586711539350543258980046132677997758775088065329495708493738296130776443544876281290154194865804003352880283510938785526428373045916483575897176433567154293308590953034028503582440603560247274471673854762633786943848185061474979707573523666489703296481847421161172234883772293171895696836733687739067114605974138127634212269144295208109713375108203306011477812600811459637457795355845162333133941869581447114147078921553478922588909656287675685026252447992517083424601200639849389756920274063008616427819542496879992289833519442864399378283869024399181240761883836867493712888618793161224143634430316819878099530956806899707810353627845220883090484218962519267855439080566889450325258280143135310768184010100677657546045343873350160154560738809071747826510745832226913527307702036138054423176328772048945052077930251877577498466545217140811187094265333816798396932562554195531437852420419740383577597679589304302138566276800235417853657561780177672565517410532357636971804365480611335117378787280681198450169475559683570789423666112914116545737184860293527949527445841716860381896940657184265470068535158743876638745923915885959814685624316012562897121239078901725284476542058727625242807972044861943682762315499031552197038860426644233138264817966984291059986313723509771501627750187047840424543177406525514264250576937002622685683342611837004505613816807899637556607315367102874051983446869769016277719125803275403282865389238532831091308969835175965679443115616870048313235349409115310148088112790588878913721626639262511352486956771538755985484651392941888630266015840240504628247348693787417239206052425583415782164909211956404023393851433840766130716736119679139059437497425542032056756721227188283610458347211162584727304428979320767631699988467374955110893648607481690353870773947815450671192829435414777916230262125763039685160175474244395299927600915730733994437785915368730220065225886381264983299349518742368030678785768613452370612815684258840562798920213610707091728313094352594579324570509227578696914436522396326213112938436001677250477619164069410914009531304892018057294940317556076050502999692180990150739278186172831118341819448133754810742617200802551486203062192651325740391892703410177015530484538061675048681260713724983252407797882477065207981802525233733480144749119128731323705895020156634352301984145666541839942471923773072098330422127526796136591882232083840687564338054250380973319626789902512170165316908212366590409250464728128570691783605132355167076309386757034165206697759085455174436787425331232070955794818733167549456863381356961014414923483563516501127266795665021107688064717576888326179415645940489664745722104390185880472074001394735540628749101455912130411605451415412068799384648176911333287002939072750968809421502204344112408304757951787048164856288407720893944172105708712642477119362858884106480646579607039590508275474419533087285253656818112539180304117918854091446134195417306168703136982313279443241875914287804351513738037299608962426498051517321628440411720157923186500511635639116237808258993392455894617743167998409370715130139709526670195653078940956227716342525890643202562092059773471129079320723047718069443228113115956042800177910679734471011482455639926078800203580640822703144655767197695165308334879253729971538490223350752599899882306677123178466787875274944654729013078471669673599220140570176338085929544535860058046594934929719288220401277788488059827834158326892831399725763791107691477428454574413782068741506689175194406305445763519521303648212165879248968222623841108680452695908470186529415940749903798288440977617367941883863529218987334631041410369494466399530638473105292476859310485503646607298419865651931589392200599585064363005459388215871313410931122087529794252153729036763295086741296977335497825992584943637808233294584717104009001332170181037936557332850777952600277034864614878292750051557858007803201494564068241217059896575717561937095478296720482130007852099457887865729758012515071960719641333533336134089943021852946211985294098647991302376534171817356816008545614082925812274365682228599810332613761594357543707590982284233843733474841531070241853742475952468225550988954080350686668951943465629295163296208266451094289522648108236888990175931680587088400013186914172561989384743978417900550546144238586922131191350351262128250666185408869292684591773172911963869818891464000177236336648723997631317975806047156813632864952516644865198686878192865887325158024771078587515973597867350707891131259413230476672139447787105663696873751054925239742123283147359227496456612277302814462148677736877959420857210148752962866776605138689832166182502817500119417546980541311545183497346234146722048172599243584735367281612835070220198694807629818622877121715681168026054826173295413817330397606455938164796125150106007205296765715788329018012643633848712550527557512712374081195549852023382453754917892806577611221397560479430812667771387677947351250687067962153034562486800008630267142064052688503791528660102631093368495757899300816575288711373338125964650337170593197608270954996269659011440734573371382622920371803503816392379861687753278608766234111769047960924854856120916918736570862259923568340479080041928969117043192520970798449114670170910068382156762311918009636128995624405821860622981334640297491722070373133539963560536253959093534174359946912125483118115312348840615459894800128102302540138041780992225588726526139835837474528076902886048925026188940944001743773429443970563070685551567819450208165986106951109970677444988419139869876192882257901286890108413813816987597639486306623492500999392082363500993276292481837543398274145586160442087233912303994763661326366858777475428381416049168213086432623518892868828169952062226360130537387269317060074989510344956415855209965876405937064759778216011768076660351871391020470829630234565601913956254088816234808237040021875015126791913587691235893314492967348898868738193775467015093385739973417937450570043029436043065249313572410504705871545318043245382467663929188209877785744852330470597683642103261310066749228426434760454116161739330768150246160090242576391852538184696001022039860621096327700618223709656653638872070435341598613185535756936229015562074867349794509460576820485356340937671208045292504235220076655432559427087599896853259084050120303643071998208701138785082753073950120202689425790659750707482893661926134507266815681753844090277349578734196994872024939249272567817558200696787269082251489309064780074650941880934179471070447241998945818056069806125407178811527379222945024203160376364753833677069590048981934256820089016557900332136034067167711961861958902704229101924317719862857886764298306756437035876416243740658592865656720032468899367436710110215728572663280637983871542822905771192286807926702560577001631777230420442279164044494694797198829073716398873452524001714235020821975904465033992926851104272868381857034800616651378047080835028028902060621632278778759069585443480343537782323663649093833746717663119281081666424932694998800061594682103602282484165129829825816859313085853863554864606438078654527492510687218238738329302645176481238347724805885676851134404691102223346125245654102008299228834616451439943418325842425756544482224653386217378641278651702296720619765478639602943475870374240224204980626927614203145851345986383081422167036374680415848515853561288698604475029983454538943048608632481969546457301801120074404008654682258255646763799523029331032141731173415848153121268888638003560627549373468240400707586999444332843904283671524132660953701170157589474319625715312956322310847874707962217360784925076347049369113700303716254989098726424565301541326952429039907981152805692627607631397746645378518322597943591260927997601206934598797969195442105108455148412522438130664819881358867037693143693617595400593858145362549096950782840302367731084098482166726082867789888711832776200034550546773107300697666405685992127915150732687690484879618913321640255404943057484401404620940058813592498341322875781191166668676625362747829956049819176672951092591533498946217442636926742835796245392743972783659479880412352174699102248528053840004309238324770383887285354218068871420613464717648149021509904955894618317943381012293976565239889872964548090911115202735475410146115796059473889741049895917677437511375835319496959949892915240499572406745495761305174927544114559753553022601246690625686079708408430198144752831339295430962260348399024627174451406682641891245272288053503262741417483688419647995989188837878849664104546231279902114391656444871938578741517201633160770928474586963137955882881711831591526269170003055669801688831821457361486528390971349591184569430573994735710410712425689013535705616827156388597287654551517634786454387805648979929872562449754331440955609055218828033997913052130263189723968598985007506451946068587623751319251537037178235455262739508747170260821506555368470630553654778909891041534838966873608441390088337423695108413131291150180396051405220644452341297876490656012625487596287140219540014021104823085277296459323099099838099206642847993563308605644401083118558586740789761342865083979757666078618804700058077453304965314020009570694563947847428001039125435548020891177457377389797738701538219947091105388631383045572957998821294475530987805998933107426994012804190465348405291864316616441086138482317202144781806797662679277299924112911890787939767460353961052913321534199982963009047957568633481356962470154271955210303113834183907027249960233404432019613704933989543186554007401585885525094934064868516771201067107816071739648394891351832635407960510180357262502717250044828708760728090035486769928203532625644615191442229638139250475979486923287201326945821898708974511887826026824174758501229803142354569897946792029517469119980235652621044456275951879818676735031611016700360048337634931024707985214969629450626779359741859094363779839689338782145576800838573494217926841788022591872842012112073487876496237454798959117209927828664882301937705354633202345847741820723585783751657096553612558276226436862178581834057149261882388713536601809971058804788848710316315114392399548041477476041678335310584715241961111714955595119387730584203805300213116096577230746825115101318940670459362020198285957519850563905558591956219834189492377641569113846994293215263987436692521729559473413468640667108767663973492077713143466369173391240189202865302023056725885404538413120011681469925885878324316088767692274227191366688028935664543230015217488484584127396187327747974859028033443073623384675729364939075114346297904974569829343053975267092905245967194111777437971974193951135465536801842296775455346829058087062196343090049720633663739619690366813949208812701030418864816093678158493858922411426874190858844294914139717909566031735112487901272499727447194991748378779384348757223129455130858020759899323492055431589963376387570188650319915425822235055141676779458839921522678838347899024240722841948130136787824525739333666067569972531413637217651062810885989896212721616959946303147484136340670672674977345607759836684977058804702771296377704060528951711637735041977591032404539257343116972044038784057001617157691718995616458590570807961263593595021503426009057908065811870536320304727676373713530376761226136112055876404373321138639454978451283013901106093851582129528669684917048395590091233608196682799912217734456953506966634674800895699639369867649401053296345869034115121713194363004021311945409434126911384255871037947599052054508792208062747201057117442615951340952153414469676351190341975209917528071574394758347232516269742447366195919969382693226508670543021211975900328229429465408834873343623441605182385934774284069599796135419449762160290737748169065659299191497714636131464595628080781437613432313358851739354755414145431412236799350777402887879954505346257729280672743045557581243308271395945167164318313742339475247028812950588529608445053917178409595090556147957695756559245953661332373145512720504301441375292898455867622256269337328105850854483911449724298918056373662400517689868475295621172861902213049728407325562446672098464252901069497092230067214798832856603902518785475931820880392448468040656525003616594796989742157612357328270519222158822552612590904130851471358083887359653954157319903554971363567047512524581095940543638918781842084629664759282520177066691611048728563359935610468072065197542367292836333728547710624480880606957005764204020753362859338791392769222300771870684067943299550848433936658418767249946819531363178172190204891013048755832180643450561515221464787690512081317891952291920612280873173085212862959218564220516055655561378666658437423464073167398749963739513015819874809844719949973130116573122192734524274106036983486740988344595805559189306074973590609038177847733791591544028317330486647451818069989018223116891102691932931674984839015816323980426181981331161501806136889947298048515754027557641773787366110413052799444226739081628661386853584134072586707261873259733683433170477909287080371950107243647881777667418962869998225730383807188565598850271449364792955629145479315630357525550296303207803223010592429458802646321227821509194191039032556772074463308769292920115702277271385130056636334050671954929916122739584447488879855598908823872594911937234729141662576892434590874506011776044903688090452950048246702818628997740444232656192421051851817466442846112228642728252146985746814277389859764920031993840735403616315401320840821501143160498907445168059697645220261610309065426871546269426191008133946358432572454111113286495864389556250521890924964786581830483118245299528162031940815597186424452573501315456685565609094134822442507899419922684921010298926302265795789017075757096382210831764674066809287783620251071668889030896521118708727484955828591544407172411727381773069160731177272454375906708945326243241661459684900085075326235303575965285085441749665075495938238333594404579874148970605988820274518833064102375621581461661187716451520682248351422216745365624920063189050985769991164926649223947898844920621239913298581210502239893291229388169531541853613143577562160425399850174913738135594996008060169611474568819185842058714848031782946174253535293120185494076569329614610033880740722219363272754556269851687867719226731657648274893291164837392782555776912087321674104313541414706357321209058586919070820743450121575859081698674845268287358077856338185083102705409555384927067206723731774895771274563871361129627091364338924925489892806733923016176941481900554685687087538788996053844664497670654797807823134270868381091203290271517643138332853063114047677325483575489921653654316188769720173605432712980383310605683508149371216826517839283412557773735185741442537482059755845118469077054148470115742617472040912715453880833329526115246227207731918535248968847422348437279805375950290834570642248950604638409179794534569158510227126970991665471819962641010542278904975600064441705122155148898862646871136278802367968215729157929613134673188653792648140801802316827966034393827998417052679748664460907183219553453989017250351337799718037152473178595297891976854471035560234904734544111102567589591465699691414935341855418309283622529314218783767255012724262762448761754304326270694131387102428659733577663721954309222415980922585265095119181136717042387440974512582156060707845588930662867471540079469024514342746968630561061273101364875553891277594763061011422325579346680077259251523718145938142481345025481082966575112369073899976444840044647480362334880210572640090888626048301385140925757780113412244307935593921283282905657055375908959764129361404834848391969091279825018534368898579732572377209944810053450342584077189382335611672899443624382275407064992916150301923029387593000820845421453075589297900913613319966210466231660613876105276117883914718728356702903015809827799306537151576163906434430433628729766839530176131416518453133691082071646414752422189349687676141246334979612903433033616450025488037443626500763263134384572130743659069534746275828412499904748462136617574663131055204535214264658943982742860941846782340993675893769286398149307285961548268232198729634459890503954836605731272959458692237680280924830329971912414182493878223596435186666276610818467851464051750579025007275831637177732583176015049114031083362595247724655988563503589573805487104217266373364110204633794273313125846916378543672465424836993867400511004678328680493132523721646642169475646204859780858622496810071785162707474764139868964474390572400131136045830912557651487450045852982773688011501806084164986976069511663765978287902004919515660499659988350524425330978300625528758912164890161273716288691130954872657948330558355914984002237590204887450633640231547900966347144087633058105788493088869231637166224898535601066370294598226254744697276582775370981361138070605356296204410098084346913630402844487606752205281873847603359581454445238321028020135566646827347341964025042823307680319154901695515783993984107853758907222195711183670879892514826374488554220216436322278291518225892497870965164350034535936485484291013706497071070314208811862879885715200396775076187824623916271393174836990321369843513720440930819190522011104775542439320329965424840549980325681473827535967506851667328286683423830027385345661834887883303424311436681259961969188369097876360668598094548565499360923147161617569620462055323056745500717743481229930729960646564011127459054323250333958591641792023431012559430804919492361077923737609022625879941640813554410027400965260971106959479079322338973217091486022006666953468410981703676377498089874804734621011136165684992128606595402457665816148639767911386515347580760603463239631080870144645861096520937311756527596414674888015499534717712475714005243988747346294257038063629066703488290803891466238588335675707427846932017639122350055975828677930577502864042282060374057034935481723164291922561573032043811331930802567551983271944656494608350584628325575582030667420564844386442591026677138957161366974494727085139792534732201376737258325924353309199067450692711142346662252183874964097342805254849231200861301666256686595351946028867408549754661942613159776346944173689624988377192951561189542008663396094335220106994926568937546734537626517535300787202375328212950482593705201840599455397508932928200034294885503359669946568618911554495609743699926836477511862873716129293820226559750063590707443533146587734889597338662869851455435155194234706242566565775202094772481393661732852678334811072719632764620666303536357889973918948997302819742534555666638499967455776998899226924271630501236328270923740426763667887194998129860668880812705746604704454136524106668588454370492556357866122666903311875768432953119913529863834361845799792482254704151844339141384663350721565856414743498671065826914128489658476054599465169362196636517917150204449469272222015767593352602046147480159022956182795142958186249929330325796784664704184177577200983614798686273693667980706819272475272413215569865282159226031949364989647310344090977318049084465352122949550149241321809654921083223493737311420185074164362962294379217577694660088523218102954719000860494833524546281389825175044684733473158710585809844829878289334021538686124533251251922471105102341451545763974130702868586226798945967647195095553169101845276835739905239221291543929648834698877096825884433136853074967671127118401592121028192946481460122796451406815435307265824433089035134789376255590075533662361087053008632563210168494066432128717347955878427032428307426010345399668623131334955611903392455533034324513097353072526962820667348050456068461923520537760380398590257778893423145748192823305385551223199381754946226412900825689268670643890925155791951980092114584992301948304956122150797424267940665646691020436631561114550453951631300579656821932435401046603849597510463516709997466360946677738435443460673252325970910135267883992110760550383161777622251555086826675826490182994476837358789729557742432753710363940242408419892835345241826517833429347620243531157844558425338477171547144812579044135581528517511740578783089259507204087100969285252791971314003833147721963266000793543572191119080145216312429687402882513721884349700577561539326117158838788670242268534439678918935612680841547085978969423714504790113765667779141479389807968504767549918636736375650398395570504168951614367984573978692410234084088203963444116244872264334442985724391414485224951887401053222073357896016593760399399985242161527282156283594871316722802729890823228133693034676382618225424603802698864120234432767720619099638812484709367282855815471521800279210306634147116280149628971238759940829304545843878498147433678425191649858638136793414053838718531109480249501534781148747965965298361312977573665019901932561119302620599422309009126370283864352380867037867910789865531915057999218738787010477451698896455234906880589201575911092519335726560996767101320579311695659597148609749618544963409454763896843027200275751283922068437495774658322341787476353353343722142754047889760394097664074649655620167654819166615346236661960749907506019449400837131539784521584768487818501253360961033411388830377106468510632808347016565983551606128897912923387433743256521460113712770727226553087677539696720413866919045931369135719101628471581460607779275091616824991153811669398316392166272560732482617695684899791167915975316768711265009285055037360832134625231206920583748689347350226359504489716365942041585238954517945591239456966976573465658366335284098131369315284025086413389909271188600407040003621230679240050208526235394126591056607070811096404164302686522015937815143714608800224834518046978052978956600233331249514668128738529344249885030603639645164717399357664475079509203959417574849573474670031942360979168995522856619514929235357927995322597540696498053569166296705766702888889310189264189044506846090947572885378884785761817946360805951484834257342313237624795290285233601113095783843433984300662824091555807798838339707116703782017114342359316528792395817849038807842942653743036038791877398712659516824103088259461561071733559202711313659816457231465132400273976736743298156613900213170580975423743956198844498988071880045621926134929779583807079238778342713231007428597452556607071525610404418090354135868903022351672965076801710056903644527316569527298771321909938103241453487169619125020278336809246315255623045340230083260379122943012828494107559899666329209733430579228591907008813470693606890414984763145096807076640690975951029769063013080394721465369474769028181368580702312242048598599962182816666563310804810733272627556232704031542714552302185772987365862458036784799590713785681257862651562812114027578576415081381399095337513706546289913779856787344731413932338766513580256001621132534125425707293591164648761110549152216216391805699415055494879809198961908061560171291591887053156260485704214145972960127798189684546088256507105080386127732043469813429710544972102332493427131214795684292514667987851789629153896958430516200009999779907979637162749945656935390269518397738397222794331386537284351029410365756790497248916312625069076297334412489073821005775771395522536919717923440935060271039943219240761760730732455172376180169524792988929880576656749502724546045022114955426436812701346261658878319803993001292142604027574678513461721799190404028586489603213571378278415022442802101091239260491679076737950918177135212307112484171796452268458417630005661193955439961486878769477417247910437251153235171994687990381673620815844516244502784083273769827020234257451402251000115613061730243075965292388413839518592923773754095560902720524163040608781071178602871003896336007005959489478405121065906500985684092568196700350148599680711094664519496898317803570159526663737920887207989121582802131624118513276441440667301133007456234978552441753653083404720746531159654183354789125043700454167281798144524066169931585704599590619223883672366593298675930645025357640217626452892776395155859503617603279611988249625623205277552413654306747963391826763086737204025884820732167104598233221403648993426795852547813772093896027560686978793356560165499475467168242091311517119389096850381558982818474563560592390681958794590924602971256279768637450767428267615850633775539890943319564725513280056109445750669998658667826984045285997085994116763172331723166778710283185155715060026886183032983901905358321656453833319017760940705592812641620480468625151493758769161158259026055071038958368659517676626495799221496857036130089974193787750266607933047066379300941381193900649319017020291310494183523918605736721879202764295276146836170365901050363874090461658454626342620626293501407734193921887915509709344674147870908446161918354036296197456035973714463384138429869322842448048256719546988407808603287859460057837836794008917473543849766783229312173440588080853579659446414998739745766214690850012125785571161798391702514966717776432541586835569817546281463736498631179081461216781270510069270751613124902477466226032135228875223881060133100277264824999450957802986438109768479976733785427245156749674895474024146561713774964286675814722339763875606373708461272001054315098605850359122152032740961345562508675172575157410156579543289226961045551058584566035577426233898417090079774315764322091276929859834058796153475780380086269103115015084278357380685307377383326383460757995351853681273465434970000352626882192260575109991409528546097751954396721237274667295426985044429715558724573074614806183323051942805542415897261788517098567377180690200928656198814056088728470101593769229037059352535327122953215910086087071858664948411085995027564447767793807987945412612002036021975817973714473528652728380259477647479503274717064826882252256740892737991217163742119065748952960508645939552867157722439912568550479891022013634419916220053943559393299455043490625810442407058749453214002022656976283616541152547951048745206858707612853826658067785750662689143746625788180901899995485537344352398421571690459515768879663293000207744530330919680855766718406962912494466622101350463206141672277109185486865863435825429975375255994830456895548457532632573057710593221810103659186936396564810383472114085973237399755132984204740704521436994379489310899138572613998887309974303665174538772752177227302608764789083791706167491044902444680640446349910586340208826678960952954909171179113765310630947886906132081204094323544703970622968344940753375457098258388950548133668160613081175924948986829955468776500968649960114416900509547799216795779754568804581847756369885181775377438517560926138724012303950737627595948317263942651397607550592683150516322225595751717715392795633388716989363770518087874467414091712378244031533620059886841062706523221997094369342770426839931620114376554788557899339708137807033347647134839683183308597640962059986379154124260138817534225964907602248023076682415583396454308604208140008536810703365554587707477599601955665155894921028623173878904774772479768669142221501361309741164828483258691571348948485499489361147193863214259926748020209254515212674447429243440769933446635943230285504618841796459253908529342109760611126888655621245747644224691586055843911137489171384411342155951918556293561910691991208109603997673454004226056154937501436550478746294376060997939868713694332140580807752361263150980300178409812734481059341532185896889132991091329890826867088236078886972684548953269990775372184537224475533888098064971084782777558502038323473586974740095024638363826854611939008723722332435785625666384179956346323597608958219425159429350070634130925120787768538160655376961102146366667304325814399462517056259383562810239213233072951980198394474151582684798188758154085098822831751303140629956396288354547449555077681590679034786581198015424626514878439441218328196148966069145466394558501551899729932997507090126260593802102125345578677306480518795290027666141010726620569826876677070270791370112084957061564550564735720351976861432621693848755025012502781828298165469288906390122881608935911822479420195587522383891911658453649602134666153593141485568503307567633024002721232814139886754771605911167856679756197444523840486384095256966584522180197620177839726980645012561211511950150475103480691520325572368427340296790055144660329463686246239084786182280409265766633930606560884696193045491986453219588811718245628485026071910463363609490993615602944946635987459101541561579063248627140226212814304177492414472037726439102240725578681451674117662978541660915129716317778418486947917476776867251400692074317882321753539242340237047387362543027119190242280456070540381033581431355371511197323272073808550930294330838482639995411369392997181636355784373187089909866763412929963205855103170168060738904978092015006915042779180035602445285879305286100057965036007348770318011490227971889785403533927273556963848178458795462429490505311033840050042943697356988210574353777974148465624156613027580512564083779995983583734221732124332622081721231844055931218071325765439510917421595582021483528499012199544746968178894297578112369210735395455091412226823816006698804095287331278492966464312685997658653884441648302074606275449969536457719884959871882154050048431757155525874857951191580489625604919971013780501648245286060918810479308347254634336098390749143700923232362871856798972565968814064371793583143413128205221149917819570775649420238363418452969407426125987050882295303202649303985938801296597428561934306877604205595073945783016942419237806966148861632137547726365810876030649472319013187177609983811756713939521231808123976678955056710800175099407048078869058759407294777717821354694401689613232882033356602744325485654983446560662113710664440013413733570277037502239499368956615013201708204285510991925556703688482651503269852250045740766736193011572560568550801720888230787297485633123851084352141634994632466531681492360709657101439829595231003194311866116672880901604218164288356882941841979498570573471319022564311691921372613375319310043932051708624524425110602855472830072272722965796727932171988807196214716122196738721618482279583920933967016157302474457903576103084137094477364588630806965263007143166708878829017164767751620384274168509073619161388084744995612868249580263709291976373338023164012651186355527423510834844624137634056316290983506109297066839021453017365947710648395160297791945200140091536474882288928497202100361687881163685817827658915722350113077182092955555220839756682010896056393290712086832786592078171327727686449692760504657414694269344381267379208078656254915481098351300125479537221862658508355700626122686702985876785166178471477608137853502349411072123726063440234194148995822699393849636936414747893472833241605525024748034115981713957071401020370930959898165389780825943242363170980030784110154158818120004249394191694678670527212632087451773655676689476427052529583934405989406281313062560922007963074484136645202343497784147194215521017319098702259121475486934347970555468420553800377357884312243034828005205032272331502692961115971745050439531469736737890393017875260890287536986016899634927601482571386054205487932195489490669450266497282319146157572109504117712853530773590602931552456090587222848547572274488226514344306079963030828838430144019350655230301924986619053554774668675445341411165229260471088785044197783042798210894377484961851565785170845235584517756096922004326237755531702500762900505044148226479485585438740328934898053223147063780546139343576820541846892409662921275530225329937175267675265029966236108619307910181835345377745069339439782731695465441692082712710764947671340715919556911283078605260405568416174665369232324848386297777925886236000376394541130882507803890066040514353888738391556409315040953241964080278781878024205811201402740235456368611526480945925039956705655003226348045491728014204179565752299789890807476212524734834855290936697691278779926098969909848443423927555575742063577335430404123604398633201321683291008332370501621158555805802825859341018578632502163461629180736269437366202120683034582321210736161431361789018525096099462160200101802434325772180141869944749701821325936021211567987486423804880056837508334007723131957301894289439596630731138119175938251179303510074045520126923110035182547438032218446061156335109346538414050710308613173372568356539438315751494621803189473601336546705270008462997405118036836031069435811381822253483459097105784271090961252306906106892166090896263254226574732721137498970384871099786813028849756495603705830279282376748528107679451576464285348812065998334906399395220504577111534010423305172318859248441101074667308994464353932940007235236255616473895773119183913725575511063094461551383421207140348377934998413206906804529099772014947555827333290067190404227344252015394001560124582540551558908184190231744166839610196003808151367163348171347401955884079459685444436418367766114651479564592469012879359947295138483742024124347188974462808685759014353739846953147460806835752828652661166664274371544198278983790077451822098838298716329093155357613977011411274193646496245643535654911631672177689328950236766165129504380079406830382212527516555805545872163014654942420736652021376126429031373980658060339612515362422298794934031902551580157645816462384770479865178485174016749409631773888660645494541895783526798850255516655637491027320288809500732136502465250085404384404087383133464021295235704144964742370058434777542914501192124606880608856458001606777012739744419043339207081178650760492217659167427447505222998991711360941918021656348084828795039254261499930465472982689984165633762713995272718742424735480634952494757842375508690394535721006870268090866721766300203888259915859519161670181210591550119158113751170650638448380370706424052482536092418777131633160341747458330624461680467327259020901511767836376820560095783168918829878397929902272764119395401098909541272832929714628617611151699797854395750983668730800773022761985084934839882569338163753519511937860483874695144827504425237538831516637453799718759082273326132830412995723759821368299266940452271571197161453378428998979852311875804663796954222011818252162532794445015169642092466951673734785867481642719471587856657456504867283703967744316959743334761583484118399343639777718454148083647578998824418180685687157691211573584453675189641574024782204441510684197397925655380983710589108159719850454082515990855471595162024464091052201344842574144133948498703304587675810048884775344906083830564525125455959108681014001275549618670196173387971327710737078144579300821887759730973974517594508524856221710449569919749122151562702701720355291532187106027684001324821741262464600935686839227860006326782298677588772719296442398725974319547461334283671883678728925353394494593159393004180689492515295207486069611931015904113385092020438786839894429534137746328508759841228728403214106330850617655402965857832783897010231206969782464976300138646648361702345338131505477826585689723133447826148098978657731809089040320823224072425196640972996315102964901651458737537049498520702756141766844226406596224376204304906716303735087280736783821804820824167279631406870127023529418246456080829616607707641151454334643798039906480795566910790517502321067329340979764904918859913517256753469630540080621704204417825101104679261027471421494429992806106125860812437556479663375269216540680975954169654421391987547764576962331534103122748591877409810938307450540780424785858006256726683031800513153118999335943216844158771747452972741050476306389891212765295960383232914468912776218146520087522980005610593391454422269945499277846399304446031345837072748801772364465706080081868316126534083217331025399306430467178711512699449263724751632302910573826530988207479840292590431001685633120965381072953549326586634689364816171178678081112137525326800865379790313225479926208310944865568330699908583050734491901053697589835328937957656908449582582200427165670031093206154662344661119661287786745139743196955987177805841026297620440448676141602080107451942289716884897947964958808697432527857626795049051643352053870704165684566098743385795200660528190626471944527602223399623808353051694841429618111636715217186050028078783430684203804300486612154771170323975197907274410017079847183161816919604022235603561179197848180455642850929797083314429173029483373636721190861781119860219192756850443035810885568032636106842549483940283371632955090191753069177852939257998882449239712176123038075944775056223011146626127400287686762486552987094517680411820165543909745287755131320995437547701330747658155632063254316728442679408153919913178006776203709312291408894702054346539361159740205829324089922703855025834990541995668393760853976727994344340450883626409901820705655334534870294640407082168114353993587237124915879474594579011366723057437984093675285580779280969107761604641187522717811118262576906446530794422972271912010356626629449800729800444573678418519391511825402401354009610653515828424264107179742779735377204030671289734892396082585967624539163045316471310696632362373994787041707373266153311405267488072272204311266786293332528714537119169614147322181128502902605189185883455253978110739456536167292950200157512309546272852275890510046982052667299489003967187278345815253765850910879595978684654825892661379181435242999059703896314346708803833781420703535754493687941232404312234649391809792613740028234187579692419862074010256479564549218210818821500720469598231606255762133792209056328753350504364639693828429681976659987983077888464293498835071104123112751272975973537493769934593740547208603187227880769033940431573959506447892062963464850832623065064011201829066545682553460588751818889881369012585829415699497625433752897505114884317593161324141981112869653518185545906371578902127636143276568124311765450153589844681557609856996307520921806244844934953880114131412883715180340371516932845969652982633062804989971446156901003048884481913230632336935303869849364701861388749220529928083965176597130657594338329617128468059540110300067388783247548342916308667398002657866036581356971305812356359447097413023262549067327999753374288862578286762267912563352653917305636825437560154792362967214769377877361774254543859345322643812581576370307676036375918987048643382027259025842521627628431491843533690182685738225970760259722247468950769647589665122118964661563384775516290434121379672597856799696414339619810102431004375033428322544941807156360497198805437823793664937469819376276182250723897944886067069000788676243708008798375597572466026099292305567259263014678563554169019152835672355771703711468017186997642644329047100417437012677390814542726753816947247284217432538678256032126532255619840206065849906900670587678970599649804791071349005494196457445720382243811518260485792635384858813721876462500777220706249865033105446632697117393354883016225503693864626132090823140735262139873260672381298968287433495874167984886602892022391725822188602339978038420106390024764694588316684587128365355298269455193459202882049479313293855738084170431364170587430695417171024788903929293515714192023570601723230430133588244543950700267008218213026067013910551024385876489985386063849241188358012621354201476122284446749822987860348131674244427675183877285664568966957384565970570303380618905224783493725512937719362789382459485785414516057209775756029501376097504540760877315471627842451324626210101601047049048641671328663371134164053126469001421542301286320545217079561944097802878206096805038689313475432750741700704796932248920648647589263239794341573491861827384316465983434377106232174551749946924470513155669300129398760768398058465463747608741022869968817100429112505998759897496556290687705385534838968214441375551315560046281355375304538323020942911650709253997363294697059437181334554425041627270050005170902905845947652415133527344325114585675416140492732789035488123488740023695586783555647833511898966287221305474226711006391308814563123732194705172897460943661693956361025439912641055244703112682358914440756194082680113367264962497185639766480650741271689831553863612487009965091669367828755268931133164167270549855309336000089511592504579240290906985333877772000648381910417682800865825350081863309970645154877944676306867168557185678995420186651809880036369685237898004466428598912386856868340845022066764695573451432576954345161158562986364778645530972191563357142151707878813282571742403517595968669615374478179589843029653401108557540153621562418246392597467806183505462855780604535223407753223871178763916800774614253564843585920114511220566777689317149231408884571587184824631164302964039529877490950021229363668927869909150469564370409064765768272425832011614949500550545661958351238242618732031801298465734013206327162565770193672564354040348613069391454814425570808286110188732015455989109492299587314617284758004861109190925845546196660750032011147635314410762432897895404165580697242413428677210209871967710798793611944355250578573030765202834531223068682573968846086034898631501082500354765854915592315161027289043090389853788630689318669018526907894318706208245830371328366881594684140437003371026421627998577440935363239977728001457897961465757291138247923581328488686214510274361747257864359112046727621281482978854063310008821247377048366435889671409619073463497701624620157985469038847114567622011629580530498770947425345625440140890611623133632379103471950433618068954148572010274516945032312468572949582622766096142075682137121922530589094562455141250076746491262066505817349945711698520704535720047755134935194394573080104070707327222655993959644494972512175037567046768516569205368953897368248117388586524247489877818498627642576531471919037502237222818985006614698386256179288843832194990726220631215929688849939638222717432553267400938643327523197575449324891315138589998128672125612808274519111181060781451071339680261281899601880058084275749785082169464651410814412133867806565667792204305446373944001681102730577191291638674613637510652310200314754339809395633507425503030819467345541562832050181760809669164756522178648191725000073899452926458962971564604145711814327887437585980546798480830234436027756701696780491947361305987351992299785871073815227680321985310807917929429646082545007654327302174909397560187501182238663920041456305206547444524488500212725672486212515714833700769928548997457395429833155924281191648679862988010737172904361958080881442349977073537980292712345214184685414021432293876398031458353456468938988413112172851170569524177812232788002840693851642392957361671113958240973152260972930297523457204666042052374170542825411906272493379645916450032365121641261571573022823458995700648483413366563059309677277520975805345318701283166260611651228273825022930939360462938039380273152588704207677009487221199097332078865055632069342318778846973255680280996283888401695727704902247979968188897978088858356625123325423459964118435657801797696027754951298450221520384787281898938560264704530857780719458722455117064365609758572795953362670575889085492920318005799477289650313355980341379103542536354936737772460758281437296819069417615213233987963162119659344299499446067908993999741453904131674456503453015371092493418446146770042659796403902552434479790690087303577365292437581438215483942680348747451295561934037958411538451020404237520775208960161592294121930481434233282317805129251136854941794395811927609676156082868234974745542564645399696484575086221194240889656543693435117711630520123216671035058021067096722442316459445309566320079557143295958535522857680350605493827014269643179970825209973277135453154100676742628314807369213787883434761770990971960099387221083027592665036238768349680626116714782282225830652102247242177276379674737313500372686201959063316947117800035238434846363580023952405442268523032872846720840928803574213403012251651433829552629405188397272108918167402599052349113466642589244152828117351447985823232437369300494114116853839233774983360148050807878005556413574989188396835248857399774824873296571175998399644275836243124724093724505870201697259879674214639928687208339857239015449477508773899269561810587556032883540690094348143128747470661533618882758402920108545676350899136159977960049271710281568712710655934972017175172405241028287930004071219391289639557851755288479591826642586608090731166991598126067273212037019753158287224701131227558575901882617676281316561395852629249600750985595106176388462807264053734462432257021991227892412851803291110294515279031513741478729519042765109715381848114395001466777266835056437258477470363057852943531659616324064575270133607273402863107204691133219320350304116168235901709355285095920047485408453529476305634163704483242654961018508850116783965140096399205470362544191483973193855805425291589544533749804632309570051751833962521725105185734453801930539075751117983036913238397142264243306124496690396796245366478628942517045681145264935133371281605028490174056378604206029739151859966539836076784669316894345419542526175919831908907717234242454005058364744810158063380249703457498551858693333689165116287630353341888308735750193334968252367063464852687543657127881290782786622922698009040445364252918786579977668523550219089744130592818763065835684451758309293107437898269115456268008244385245216971361104777312680507665975333281189363051413513970325096840907007674038448273390205443529522847306923391115906743663145588796347388112165564188682063355177667148365676323296172590816834610811065173037175470153337008577038080813645333847728650056411962130615350071271546661054061824037119485875034328948284167054376836324207255854527576095061269702370194155077935565457423467796262737397585301832287632518847942375420647202892613873666513276608188109428597107736208263509812891651163797918457954132023560024688081336847377354673565090241636422112940801704237803478841505768833970769827475472521946852827136361285323400799722100662310594440980428648212065852967838629719206116583785716068922767664919377767803287722176322354175069990064203585995405062652954541550848173034973618437798990496914001461868357835408876946924240590632968818876576974652114351728826464636165093382366363263142924772874892890529915183699014334254319306910012594076818592998309492806907818319254335733550506095115327696360548944967340693801329305324055170791789505031748851141471087872211313456513318197896243416535932584139863843872895212341869341902956082191442464461309820459751993036105938907393838343111049404275229567202931109976415172871738743511452387022745126973107575375909875234897126945695410311101266005921137708944154657026114278435774721281457606891383693524309413178185790914231047024844901708829090741015005336381220218184904650075669218196980085914172606636596902584831957859628559156754763310782346015456018281676773170446991919773435752658352772995086137496228411865372713030001198598191599275468409350241385663760834536151111596776534004267593580951995947255540976939399244750897051519457394833062075948124620565657158206548625607676138228924027410430578506788545115395001729416689914921728566801383454351188730830621452947296795111279025425625115728566375560246789602036434419933513223452875801557717971261307753842763559858322153097130688001723119737001792944499927967259230373341884626264636383811995077647675982021687358366880966771071486760574225584392660093317648838406344698710100279490046321222202950512889133092488117724997742302212674102757630112306121902467857400207857582659282287233411939832052067329138921014724361890098889407859299537015043235301713608243310011709318000215729938906256591722908524774960404725677797681504161785165874216008743605849312848557675011361978503660100998122923692011460415320775538550022873410732299273999124086608891854480429955896711729503103008497419652130425869905740972098327012663190081108329083900163991041495142947320434118943574612443689738848561761200430021377834875877314623289709059436334126149850427436707871800273775432491871217863032007198234188946972844756726277191233925914958863766536572016780675584140392635775304040411092848918241153381831889866419272174058042201608030378873606795814307335854399171698117849655395116872238564478804424061969641780827643108179650057591376352219318837432413624246328248767092187582965798919324136942471760651594962380723556868026661661814179620202018323421797510621895576046543762580292511771220322414120497816439490268341644569830453963493146452839578573344065663401056131805283891459779793452014926772070514579176231272894770618532576659076973486825725469471284769320930373301730472250836762318765546739042500256515410281764139522147257398527544058446387854037791831392961379312342665984727431473739146107729722051597360290000396235885911641536662986203806690626601863494101703146142632061220951956000795190448144786688775550819109549336336709036740562217906228271043720548510834833432780841402110282019021363384901991606615726264107128152063701296424981528371647358915830490283622031100146976208546857934948531235113275861527409001239221936810239841717156952618536439451568654645183562852273763096536566205902230733224362483862744726706562958327252142752359646013977344220239291294484469730894381428584563217350020972592347296707062468234374475867741819842974623324313312946871269112624445223487230656265275977036195555427672287257323503485355869711521826823337907639685760181296568100777884043063862236225972360509680167665959505751737197815348399482191469137839868196155321562251217950193696679314931855137355015005639381234500243070461832888523777715297636760559133958423433179824774176828870091396056703234368599776145812942522493826235117945245399283139095377623725997457679755901780028114521732598713203898776043458096158727330227763764910121940139526868701670943168901556455573930647331514376348110114925497341192093972902598957653061275705062796973174004895862155363638623527475952337440438185111826746132738508187351743496437164855850596824122765705068268594966469447693226900087443303811915641351208556160536778868232535920192097305711385036754736079504380086002838505359604047322530687154258305685413131129286068020934881210886168916861047810261964553080688602838124092305525127683997042826567658100565968438388990768423668810375211729587429504956251161392328682212888890630190846852757390017420615574419355008382874351141606097427283832171536714749302781972362286696468972954606819992046811146927418632992043869881456113534048989942200334635678676042341666620009096207201831177262461580341746964429109856009573577164449646517043902337189118935157048859777362018963923095522873911741771727168481957432265520532281443856467927400037386425370414207463728738844423708941263658058992598559140287163186925387995198080483071409104642480658952819873108559951168586745958552642570667827941452887369885488986659924184275978579462706230628322883061979264824733135946083234714612588778065811779562702375729988008778171928283965223400152362908426764336728717801950459035820683712058472010946170164112319819918438360609439826194471288891647026316605521984013734360306356154932564033384245291557534937307713408374739780188287735341263462604322686813071394926559841322297570743429982208256282897552312015043233600199662745655845588130283844662999078928517074149830157823684805440834717366079319460482751473116952314074406165195445838587021673898471055354901157880408871121696587133237988263190237638981383202713918096438124672670039097055679778713515216846107085780945353365390409928522069818648615965451597137076594774275480208838594888261631168417643942404323846361914866110040010772279378137090484060917755264311658582831412952312559187208733295104462739677878398017047473774473160389129048238085025892972012239411986037304101349204836707055578098954504565337474401529397509651749281569090171479427353440831633531273414098814413555826094699466293783224033222300811634919064594099114452186115086485874178801617549148082851332844560073153036437931475941973537045789528732742013986194085020902021576882140834864999186809473902438786157821292826492357209430959583324685962765123660802380034618123445879698616930658506782232680245791061284613554832397689914162584791094886139107541877571819129867090272529024651392192927275961456925931158428664557818850228225245924270829992697012417274144940952073313945244446352274008696078309328416446626155673872529467079353502376895482024117923732320985003130227253013072184974992821986258003705156140264684406879753159790969398953456137608058723037185387356018328072391726742708092742800005818863239669337059197494834516130375163572462166379751677779110146016261133877305305584981406396909738105451628111863957669358659391391877695385352327332220706447642544890073778142437659532313545116188805510596339037810613269435908159258815742227092513521644730527145004421141704117843313523822114760254073618709218873362219676164945893270710066852331542658480818887732068831853045683349225346810416403292843740993402556136287527854314815061936780965406680949711139404745710079102965772214573984084213674489372043110892673199473664122333454797859915629541114844570063816030848148013021169945410604030227998057027847204140670788089944772367813628355012456279951378048412928774827077654734311593597922217165834796861994091265793258902096706028509403135150223973404479934908661663262688938541809195988220133414723288447478893305995189645787760584931676176098611585897091325616958092222980435722530351418146245207625138379703368907036623924734571420467142103781780638609327477323252649253158426560974926211183943978317034645151501718112442447435036923663933828939781299196305532191773262161688347936380260806078294799385980890864846962364591322989736456992515359492388259825505392618010763328155445223172210092087294553442341550244750607182840019854653079630822525521626199832774293303969628259490204715648734382711606580307887190576833793312405804352210982049330614397318416254855748401660532228228737306259364564779764684473172671338879487553656319436465779443709740176994920515243339760056217966128771279502438544582905726155549405625342839550134998064346582320302449175064362316844264819846519678424103852694530824459663669594666734075741476341813825693697244680501476048041179148175027206137470625803603041091040057308535000902151361986182503210395498996082364988266626641185476011741378177560725045885297999670098899236398300810894202687945719465862801737560476582533894092527720086651825213204063879758010879693187645670315953384047387315288462620986524600590078093679195589880168843875261201187478588468654041498381076227007193073767300382478864627447845469817943612872801466766940338532245205403956383696551029500666042999801678607527114039553227447827743767015273364731714264710133447758219649353850536453726928803134801961785966899542105714965055500700974525522076099499690868719568081730906260093954332365541508669492160883622023477557863548621856361073051779949623070398440418691267320692068305279021614917071807708348771841332386531785975781914392380835997536283318145776350169828573599665259773115143573855507228271792275597569642100572791600870663409696647621643240955193726664743392935407621771504052338585525318826850045147847291433865414476619272709019942754052261894064296875420926593336255217938425310775912053227088703058050663215972065005987627961177337560619697023706579552821974680253949650089468878932257793046329678939670115677509206702819622091422300280105122357749058756975365476183673049885853488690065796378874126726873160089606608894906526495081935924019714487996593328847048520831543157152073170302196023039556219401478809532603979705690574572955025281511397484458929887893271597568107187818970492870553779898587487511904645233426349227064163892534998290451072330712323286230561340172587364148661185764064077088440492065926206801385918062962574313947392543393196142073236144391589087789795840455436452629511275214129030617399932554093991460719453574284476361728777266308722260456478575544131077054280960114123889232591510598716597113058733149359349774636000131484561329709174990440299693559743543599408608447291986630969531531207706818215958737244026048680625200211118055380925934995509658335698832580801542878904952525995085718413611434377917975253128157866278315578464963394965523382105975021749873499390299689418548688499749326744792810958385875291652829468703180773300135397006718115967689968538969518419548841493008310435475235303380182959075957336434883998636531973794625440787615177988863618332473176047790361256381737349465494668511152611499436280705853385581611339958004487966399691145107172961909568660670252610859997652216843842327369961326981418951044218026915248223034704589426469949900620665730451436218576643433859842563237378776636488048563850943955783952808308375594561122508715206139194921267963895680339812538400675476206992414643757788992321226364454261543689018192982388237842580413974600095611685610670404288944990523919247789034612515824762149452240395554439743739205222749218012468399444265565393580480037643238807510732737408886222037214313594636055367357596100985902314208034640061761794290506847993703291477195872643132240022551865813307510438470212825591923787463340374181193007305032555836276873272405850272302897814862790264621439745528380421237899131837405346682280513235680337343338497178079391597738107591664972693479209116919926692785468416852082969601584816777114024673161452848724059978464271488228356418651003698186004242342113282568146609831544874055340841856786246386886238032757732856574694247450298593891237288323605761704613980623705954083352239192429397778648804840317422256706288818367776335662306544209860213755940462191526253781675227944676832398834933393510676433479249438113738232693279676253798123192486891983131344745292549270357125047207748671906833042531245758020327583544888275292835658359766677040778620496596785379195758930059798190132709474315055334054935033702839107867029494658092905645749237771242174589435933297657526711949209587659582599274983104032339529274133721501965522841312404765112650146785837624551649867360143557348678622420020780770521170182237882872350772172868081161338650173744805822341358006441116625163856997990245376499096929705368860426379027368740765657234924943971989967373022493671734626847789912602139272307378403816484591562868618593089065350225197201451159740233854061575826098689320686660366150207106579624708438953762218807055452767682517027419271259159950069177779236291802383700615588668021659228616706304961049531750454937831221628676907656992512081685042885295709281398552177534645771422014193415353875493644398767209034536641498567064888456519967005561146675389694023527085743065444706885169035671451726443259767664674054698160041893090712725904965476886685957152743750490062596948607854899075039198501416272801705740029162029219747911417483269679990885164364806689225394368180915087004603595032562943127122427993344806598962256800185413905811534719407607781373021777845772201322266314613029919492812159309052723415595897425903631510068236276888831952834466118925112196768097327015056617822911768329217165470066619151613613554668355013245919342749510843782455451129389609906370112869313813999805447214471227005921353003970080316543635888405216496082074172071117687715634159215137710885623365725876472554267120667537023804294180454230311852407841901343056184879536950408123071228637801661427360463857935696177868767150610446845503080229560392490726818434119588024402195162337492774042061780799200098495380584984979935370561867239913406587446620060699473940879541036504756517393205794975923136098620673844273048162331471862158390944153253542962647748010222175431260277631468995854090323509865088634915052988631131361419977931506940273374271666914051179370654799554117266845604778969360863367694864632135573761721074434366354998899389600199332052255344780648464875567486317524124525293106122428138023153219696408787648498352682769759595301576182678388343443878736982851205792051163317237042463431946996292570072093298825547878095559457508929881407198351127476947622433575511087538181108904818633472735862621928859559676640039687849064674884759969416499676709949841638631483145807615473798286537030349228498515420149813204580921733690290194262212893278234936192031990529993230605440857018534488721437607384253678459444530277493458380525679451524177435211010921050679658363174739598480689394380575149762148828273460193416047349760803034557031327760808095090227197591674418980357079511087212473111597659757836895000443749154841674539802153208398321519751705190727095426144325630474762338823921006715669052060749991464021108003209601253808604713591725150678248897742020801688370771112389260730837476475429741680124866891619187067883349230299799336507673902879886568852646170402718550966770480056529032550987819063452645909613940038038799021245805601241912110475614303681033886340087300895410951125087103300137675024728728679077962168263897746559763394546240133365023208239231037859816139127396585132903811837701805387254181543398384207413589100947725085580576392579429424525809340291743288278044390595154030119252284257021283573653764640260262843507672135391159957792070806711130074604213517933768314004297926526659582577683795844271995240374856322059626934640941784617703893342707680726279331218097716697034632855254065807486522067531121687801251544355793959348367968029534835473172562484248264773634128110739286791943469823660526864789989199769710927477767580117839407003274064169960403023126497803309801588745320247892583708801803488374613062060348526041270900000514681729441597707156846779220276982920472548974360842708005089141211975067364656656777178018833195141504699101074288469190455776128096004228662871501971223776502614773674330348437070532998989979226510024195993362251700189495781048633345918741685581656769438720076484992322386168653360750983336181073790135136756908506894851169442947514476345036397559579843601141745205333377094948531042416028345641637755014482800002949099134574349887508988994071379743959532276550620474551667987869821496215978734334699614896747951165211710303112900817093959802441876555649658515102426886256316804710236709319712329128473917584257505401195234074912821128836932073937261741234669465940534500358938326919361264369854196294053078537575499720100189094595710918178120492178083902677932061031648287800736829483603133911247894245410019271268656951202102355535638824830488549022722156767892491788378492447632413734071856398206585048635469357378101323469768690680953149810221542731983737661163044674930203415104301674077033211378750584166710804395911877987313095888916670065291499135628700060537917639505171825477062344736443294368073431368826235472510530130134038732143220544985078284057114883509293531057962867501424433399677797127476061863614157947035822541733253390080036423488577932057144038551358600914390661604312886408436832698231757429725529758796350979952235698327861659305593418206949390816041462020807802171247612215424421673616063583560722022043254218244572356582410898067787570649227225804357337294023275912398096522135037420914397574638394281424326375864847791507439712088399124072417861269655043516914948602342212520779210107823895556236950997270744466095493787726451320400374133161293384624328024034981562479375762937835972709682661733050841126893735426670816848914564634372893348773170942304444774923469604095966085880302722840861041273817962146788181880100156641995544084465049552321474017376694999178615082876013347390267610960031311393065893302121593825828398735581555549357510614930765585498009682363881711325217861494208758869282234505844845811383350078982436392266156891194918122101572313013058951061772172686210690340976455284810773899408372939493986225149324193006730842226838059535515123264695707153279256501391484702866344536746795381239844597954194519573694759990887824323267938893128144497960192064173210227296059931031563353738523636596064759451759351325702417474523691123136079760049846158406213078546818482148714852099295088629343186136981660067627087404619048393028852865498789225159864795223065552885709424285440937961805797906899163637133735181112518546688987333839187179335904443156767348664159225370663226233839477095586399664989161184070611799646988898586019760616126119749378408848832559357030540977981255224913321283828608130369216244862207527867604459303382912642148810949612058735584844530867948658707907742622931564442591018094108010069351471396040762869084230614111923484077345743741982682841973198829657285329069731916257310507793753624255859889632891427608361633028741550026892742054760118599147327310446654950343385257791242221362925421234770404642952154585378237312581331916778533726137770604806598503204608967842107526290636327094042196099933258367681633244412302309504980851862147986601079658152496849322007744067658169595820363496505620171596510539758163618549724516610056768508166228213567308846018897843997084835322467019220471271544595507687560107296433802365108280954403893693736867537578211026475505854347143662575809662759137654500408800089905848325446909676591155814619844777898636581362427637514741817754456113805084134587327268953647333162127733122910098694719937418981261293687757436985514085672997272014706710225598260077694532431270345535424684031389501502265757523197336132967124090437948241302558973077155147158984336162181941733339583742092527538189145681600623707851977404111425097842693707754010505355615486372752380426260684565106260128251556613874182055269015626903264955676104806891374543202584765083352693464658894348326670712645888359121570616912711152987293852508591589980741006798233131903706245784213098137047330954423640711862886371387229243812897761128748282482178369912612961303663722989893420357825455610878401535804980835602601729041541230565281280545509049506558886341167259944623660124115850842048407769497296394432863159874511835597295276620050067456585564236319261036292888614317729203801588315959932436307187453769327082785479986920160091922056869756193116368965586914335821778817713131909265945437968333265284541449927012953038082977837711619486745123993195631973364578355062279369704631418973932418798258337827462769105554033708299361467948309460392040622797161118031186965710706369818563028444388569929633756763670753620547408020114408760286517280191492103555655326174762134024416129557720286758380616407037876966380235633124538988196353104842514882037116872910291680253440888560427475827682829841926849642426405706648914489598947005833303927981545558383615638938670205725224394405725898320006231007414024464072307498225287209488280885848881296953529792552949145807240285759328651567462986390897026320522676063594572480165263287477406920386836352972269187942129608889990685304445153682013819378559064328247448843606989943860154832222223750415701723724920838040663128689353824479908587120895975647373276018107762359031427696233678669772681853216207835846527282563128019668753665037227457856996336462222633520142337755423641439876777439581919209185434202148286406505626869045291911305900619763881275643996197254581996042826600544450149053668989046096437706543030719874517862776957860550317096995881819718733376587949686349149313267475910868499725621510995075095140695455800935895510849471675895481763761648327222155513938813287730118315364055856558288244584733929862027535910851189749415231748403872109666698846216637185030694363332585954385539319539838671674988277085735142892970166188307804630719246039247636134808434045516040855537277207066465321687450037648532918788935689424729008296801326821359824686816104985099014213136301195418683161751004526413708673224679158665866241768494025770903418648751217251200639982958398716016688814422081609372673461205399152437001915587994039300166436327510332645255852996789963814081130222917302676367717988707223937231947846978350232680032495482418654259585018765327287627179314520121488331709053630420755290366902958240904291006242640310358263678280868263518039733988668418806040154184705082161759380648496802777690131332432572401527622752365662563662343666090612890084193530151286973045227574857417975498190860895421280913729439203859643726681522597023137334500118734959854131918968226129486680280445501787248654459450571855948953559945494247436857713667345453447661227390209964907033566086493878126119122713551677456957262466093096066650770994978862996079625332812952756076339218699389820580577330312925360283075485422146117028877850122707198823777916855507319197115153624364696923419299062555044685150514013427282382144876842877411423806402511420036323401768507703047712075381182686172928409882286065588061120620142388850356315942192965361842984954883387790865782369504524448515847340964878386535195601169158245472618593374978958246001156070557561633375337502571592794213191252755124661134210680961329266039255565849568394009632082433246296794282095440273222989522676980536463293029684127451045290020455761591179193734732309451882442797834482056380033347684006864328523482205284303997382406315098203580185487128497827293750450228543960030349399719523571833558348524364267030592207140811123462779934561668309613498122478455794419029161637973831544922982834738712268974647132980543226823410961987524583319799389412594280213081166809918529534809574844479284505109001715116357631144183133557144626284962440076259320592254034014648142901562252045000995497751769164574229433901441282657095992981273458717751557186570438223447217767467344004873350758732322129056893942201553507166915883600517398642649585266293459915854802925182261874627880087017150617952333261170977387635748555640149810243849702902821483072456267290015321655285026107253236136801957682793943029062763197595138653743288977366377739031255524183907992360897900172467664963487840000625711761305782117733130475153495103682145409172131786344947575657136427420282265063461453174176372495557779648462826765086020384770794040149985062568433857822020068754355124753591512144298380368285580545054773675770768386387761218892865891781586437605587107524423273192153142602290170029022116834118434122528742097556455105424595987439367743579792802508973870460599270780939068876296727989540991855123994368690778018726590346803926744473422062762323124841346553815487693285990375868035971649853869044154241190818327919929206821728610043672113667374633824973156620607091171763678183133634394355100393153663414921781623939955165953242668301780404810701782114954347484606987289567614571274412788893181928260528752261503066780305600343101648253949502661336902778172943108466375094315012883087340677312076894051515200741524038800646795144825660634295444211947403252496954975467036713160083591005939774517603784283324163124619082714651031768128433281949818106296701906095549283896716878240506855989236993444783649756036581974059892941891619611567973894257968468773851422299612638028676964195045471189546205871072466446460910673752648282284226415337301312401460581669068524524446832855984179548946444479410754155146894203432654650671764680135090564410516420253195839079737068044676230116758771719850663208026125633348188843307374014634956202408812064224298224517170138420819268090006748422450055276991092240255759594351896063443627040927468892886027497371681274552616636394447619028000384130939005703944578715527182632344059709087632486257069313915683282780340833619835475851749205161176180752272490074717950573864594945583621016870081662854492770783399721410022398167573536831037584330496757207286511687379499681134603343045491767780127598671169542702396887629166118488354311441808562475537904913722146789467920063431578571307398780451019117583825362485562979318334454822846633022025568605982794319116385510228567999010824242850944423146126755171122529850172865188367991400233896102798951190468553297233700874497455426557336055559985266325905555635217616704390829351208237749183597326966266094426452349955895422725457254503366055693518410353601804945836650163964409536319695932452261576795361140323941660081362011764238364253387603403519756309301209360211192664553447361680050965487979297979411161679531143219805924047859120020034415687606955417053335589974383668713385601626513892944022904358356284352027933701904641635657298591863007717047645260567835955942499740158534825469140316678234901687206142781079091378479451104345897846814643187855241431604319895389824806449997909592078738969453733464662825416516227405362819924524035095371797281913210243603649370360582735857512010530104988173515538204340300803026808916371044206106371941254408713124492492772370239883307821388630627525968440660582603781191840654747401929879317268787830786925527117016216552043803033800431885582047027388844556472621276996192672595948576942864861055922823114567275831955301817201618820618888422304729414566686327896656490520545159494098104857926958043880169392916815458181178638033616107411901443764826016883607108398995357383898757182440566288999575791417467507164681149222714044746270766994081362835885962652138479493724175706864070828210058062875647351253715462098182241971290155250933701228679824706169098354921648376100371381868959058754020533495485268335345762830506084401182875218338219173652306641135777824273332745542937056318181107874206375069489638874672197193736854440596240613354530703790173602744917787380684113551034357823820217477840791386075432860535148115585030450853217314317407035404507975683117601024186195706157075046464916073606039645526602820645499605089688839670014059661591994812842354822889192223085746555612960912525836046316456244179781522577919755908104479592147072330634773176251643490415352049974707043936157952886497541494803503639145235633798620082391167168068714117026084594807790169037290570364642109767716394187779419201729984109489720249104554349940118007271740922994832004450061590282799386982402437681810327883668579446697186592170460821484312941517305569863606697462554987408041371690703216884162787395814925497655388069374360231095622150902764984105517409993584868961081673429651823563577615005900118167891507798364753463205769197650708224746369746089922803375209414823547083963662961983093388163670840872722569087538605113272032942017276014956417154197427500553730987905469600397165843832531820543652822005417993967780671569208656188343705159475371026734610753655258006754757352477273720981437810124474724548562751918120373017598868567170620303925681502556188097228359772402936238709722981496571520230374278461508306973190549119663238845078881804768435068356538422721469786677554647752599279229941766492730407240053152776119334216241647578901092709171200809160155746122740233451428157528503789998771373030380494563955926803780340563879651533530699019717746653873897323030208406640438528901543839224310189973804406388484130971516949095205664413593595994500788527131466107608646758125002154819112247744567469540102616532846642033566211857682074511874640686337092990658994547801780403626679101067621163489008946305178663883799993259771573196852132684357565498776396917298698857946827912953404573887032471620337748560727549920335233450648808983912860734300451577393807710910221895707176395210730334655806063480979265480965749444284923366352493112621171550745342270791375463722562010915375578540332751295020870372663126172421818855027904721698651593143969999567494794120424111221466844290838094247256128137346208784326916333698419388956586611661232913736283441987287989288615703610203461158780347325570492273142214779373436574151514307834539008966063866723884153466658311682134185029044976950308909973175572836186206058489472765362336759779696678938618137698580700166344818624256701379756273850611471805863611023614486827513804285800606525467868772050071031990887796448978071933361240735857134728328472208087303540171450280698349184735272840555330780386148176959178854530248197556405057337667976146526418407390654939170674266886579010822720961765629462371117240007161272639551137343157553646233109538466891854796438040203224706654695554818556257601838171173854014075247934331538397816374108392825947586146749619470871915738818539193141989076182442623026624905181429847189107388101456340091528724456316999224213684641259163897555375742508901184630501063836528051497026269656721207615095068555212669547139717888800690341000970659581947613537170602337223570142909031426321554152573195753250387586428138084618903130676931550095297107474118630949324619126724181406522934025572533673032642074939212698000318853176122673318024541101142607023902267351194761682975499978870927289679342137996941849723568316469569765585947402937295676209484551714292484141518042929337475417200536199479400113924171208016182688088987742861203126298611785050459509459854293448129093442174253498202702734261897667814387678285653215182151982344666983375407797547005714203575545859756474659393917452743416562029436993613943060543613517174710927656721976867109044871432349313882279178902803449565568895910697482878625031777433768650533915337619051227628861212398719901411134506945190553120030246466887391267532597765473229207107366195165296186760706590981414079447568489381718989714530566140270550285106147824584387067003093444162851637011910662536776799546627948125136603815830444679988399137097962550097902654403122831185668215064775996055385329189254561554228535788190845786307131076443227607656677972528709500709314395133225339586255672059697813542455250396809101796610654744529250388947158935427727611105497217008188849161268765031148036616600776886507495917251938622768517678121946724551480151312517139248273685408698114808041510561515758473726245210093896027036849135584242377535725179305411646038310524953067240750702825609033950982882995906337451332530304660401030095789073639489108742567805832873885574374083237867927095159656117139501384473090947224822454495378720901431979891589828297236495704560288043534687651581141143367471500863525649655335434468874609739424719022505888823291489259881491319624587995229695149959936603955003730689254474689370538235610768301255081425571369322521316472287194167009138623587128809270786284214258867912774447167388127146544348555460812678870400460100164493055648141883484496718623635939585998596146880013225235238527716212700154092397243241786119025630646771853238594574109134662680153319769489747414797463781384487971270522972036659699222861422964702791804788048888747935645205927497305643724855059582689268588954810391623785386337692255040754491789777850079178385620423354058483199315787279156587148144538697685773511961960729419417923258436679741001491875927603327953777018142176391603919700697591354581156368390788597096500842629444710970210876979404438725411969187475372887654966317787738212505633187012764361906352355239407318038998881040542803618378928378684463069777793791503555742448235137785763970816088909325689991069955881865959997154371635608697144623683967551557543240467656480520323710483733934831406333707067221650428495495323468138104645847416468038867447466086128758912323127523674181001693510791332822088778534835688434194217080488184629182868831259211311490762836447584557626300518937055086299119117708065138664896344829710972638080401867267516040510909394380260861396598550713800084175880362805783235465023226689501137220999330903217746610946189097489099774441416141004865145739262722411012630299381075010180584370658044113926538126036838148872136905388583667319078584447470004743944990068441944146342463556040697218615031613598893447301811990861387503940202769744172160354536567136456752040863350604325088717536085453398527113288737211628893147948334450419417241310764964285346909108269281208994115801012735287807136883258545572908998596845998604581956628403716296622479340199305059600960416943050755888165905392326146038053433210591995684995235664893665918842202630692848387948840273110425444526451706615059099342838218270700975875681963957648538749963903597361166434914154127982386604796401996279881037468152183774361028512146062638090856280365107410368890432639219318367190886389086015743751991808829357895132601411594841093103073032662118217269455122793925986407854607724589744351698466570562723293357791993336548516976300298817584630138505384303734283121688956520838156459778689318463588680005075886469123742607128141112814295024117638013025557498371699421795242911892467346264726538304760711876731196199270961791872306629378115431684121220546346623472424185852929523773847864265231804937572813090602959098598300856143590713244925537124844227858129409371601769526105522996994198722078948539882200642870081928232856108037854616451751150250978609042700621433401250093023553572092118748660821777012300862616753828208083189612897322578143901429086043843283506239403867828283667723744156564507806195222662621612784120011364323058932399203622848484439850755477377289495225147447748300162453770412316904953588794632447588613113973106040163270066665185252268094455632647914840171523477853348537214657154935850968016955002050682866051713987135671268144953474930212308363615315148207862886590664425739877615998989179629346459366531011920653160328881019180612374716237914010404650054403215537339099901164154529367416466979445229743257745220649814470371228885924644505295218634669093309507668829321980378338934096004347612439117219474740260203432818392745676734608885925056564866890773759124943180949279705912392818255262858609311176049944015188326309838759246450004343581866701288987636161372247004384168449197839702944442979391637643600398868228276538415633616317938170744776976192094168694133265854979000769977926260025288050375369013376039491403005420315563010893978556062185225320174840840350553278937769006065798409381977935081908077385371781393343139559942569610887467926563805213149811290063224349756410090721544465066737180785882002046385123543892086189951261822574822930302438037550385505460168510174723869936683884108352478758657632225800732819188059261099880137036812121833243057553433987709703154039015296761685810441560309373794026965749482752321265397730427419812016449117912329431157158344629195314305490586816664588634898907205174581442691751850034019187093844918991773910166208210952109163097159095842214856021678736843695186787546926201097583720194555292645128648704798720175839142734963612306409464834503398116759712420192326122462131811616764897730413600937701717181163118448178979986542345452742409063655641955742854992817237824415974917077246248762974158931856157244687730377164171431303408719190255107475983723071047379176569695103105433044284700116530710809688118223316522572990274851122157718361659336942221211289197483684188002365576161180072586086038742484947362111285998261389913131057946192846090001523827474550258894709823461275240930213167527326316486896010826019387702459516107098898768026231936962125287605142458891588220515535543221020834994608059856450969410066248157861843723214252465860770511953359738684722848603447750304748481469096398315106458559740570845254458531672653913044230423352258683999652239486179022118979023369383694285116857587192681207841476018485068829317677811119935718679766761566048649385370405255660388829180257593395844560593415616310363568853314823628187210913127828627226066614848555860496416273643458659340166497613559383607454879275099414253757621461753569978019970870407438189161975475808843287586692254380483401855802219752755816925219292389249314367379645403189970396019379836265775452906523741801978488027151779757044671863167465523332727885254462629242281978887937200049664844518225271104032079354999086260989006553202924379712815444923680830080127393241651949830127599465428049122071216289780084975080166482397933387507801037280598615423618881666128822486526790710292879295218345375830148032010537871573444225587365715975452117183110224246722840054142145837230289376952503738573326664612115498220310914455862172260116974365120979133696895306511260456173357937858475526575804967139840338839007150415633919718155191779238662615109539997157354080363958932827902442477589483002599500443946636558057504198551791712553729775967747513405843081372934817123921179628272197582553145673327950614820888195975162704206433627777875039673891619740617365206742437358074951129609781156239271626567662417192636155398680059511987685031409071435317343991511971956944848093534726781665471579595562279108605476690602922857758969518578745588227480877426405752996582701095735507032450239009698289580711145722616458101123626769472062781883537931139040896904848335544270473687127250750412696327948512593111175479641798018923505966161777721873441518598787978588742385994418666592824672886275420433000323149380502396198494417324849983067832731261080685768979082186052066946404299519889288469486267143605160728923841589587088628006497614014865880585416515088666569992838501758699526365579748441903236256282290818874954203526271264105487616171077188153027176829399666440767451369560735478007341076945891322723866114672029929993594875460875885921264966444937192862913155248095067703866406951310396589165444952775264097889254138321825578899246686419925455456787653575941950845365441022174141272323360621897011984711732032336296141313925192963035301887607568036594889876620883840890279016899776610057087028348372388445364262310417640917754636087534331038007951876500762511343084156347256026515014321707169746131986605875938582281698236845147034696500913727169775921748068234174382634706631523747568388528990797230706516991881019801614827922586348705081913969106649284648004955171140175176843385292704743465658243128526712436967190359572967720172677593138545868179895059169608111112537160006638298317521144946593212267972410480095020808114073442009064006559536638782710307089872683815075001257823341489563544262813671233246698947744922592631448780889938396012717407943797551187691618444907868575541098560430853067950767540178116643528295883896038618671147138792114611320334718590830843226601003409894611717813814113918386025500734684594447799709309949635783612485477149553492631259821873337750239922714837963956188274470902845565512300193990138145797662884631560091290799081885376561938564355045183501456928286468062691156766200567374749422413817798558822776374212925669606944050564384486679241848363361480405506910460990337239277324295024420435101588019821348975614998310116929607281056176532923859041697274115828311531629429133592020886926621392569032507874210598947461269454899941548907370271453627984935653037620426549304987596925523292517158075955441547916827495177908153657661301961013414914810098738573103793773580434152299365296060193780200967726597894954791519506189453281114015158008888274934757804499124319112221999678867767490239649086736384619095623307722092967369647818086965562503331668049840181406466130355354145237883803737687224481066693818691713262503561564447174538321198495869899878276543205637694917485549337339426762839031118336534415937811596417558905051498196718506309550091245052884323085244567809174253320985697439777611527444385345894207710108848190352516778329477182982632293314225404206708248840055584603494341946507420103950686146612467128814314942794540836006117656679365758815540127879955860277303736200923595363178497846615082215312764569116380456150496000182830135086511930165263010262523057504635649536465953923825758457663036580500353800151470503037513185192763899797426017513018000593686269194469309731248652268548280177035223901677706219775416561258048726119071859396520244974770766152968569306782241487549723693784244326036091417935446864059900752132305884354253845511183739492366359921979715900777633747872568475536708249588925408834832354834015885369249150044017914422988163846857444746077549249565358989770179174648908574283125905126833046186845759715150022400376718284280908177950479308871893801831249842294435775265249355981412800213434067257024650289687948433783259212373336318985873974418971630054336051190853832259811962838674752788497949432965154721248539898418667167610321595401971787020640659146072685095490523324182560039968008860695317173260292784030731793146508119210465256835776019583759507329134933100042660096702951321361281673474509835303894207154659753563812357007138370413228015561471269829842583539068592560868686462994889550206826345075556365943723417749944971624100839076152443366008179215785867949570986837817896784137848933989715441779703235684925666750251914261751049692234338850520503150072905883674701602876948476827685946780077641958618843354375301694508370871401958013538330736558602606225405768277102328336309270044690005393899679177650899066630945866319589651041949022673900382631313840103792344464171547217127812619239972263524093121504380728556008367279795814463580857383448227961764931297751929643232979113831490513217560557209667818547200143981952121030717536086473782203691549396971709570299914921001739142585599713452390529451802891774020775453310138650673863058037115273404270978596546263021428324309802980220752899435666475985780997341187798710533837361376886921337414979545083154945127043609418592121353497693753337941101994859612019937361273054595932690179642349460456291784611975014016064182491217614808341872656383807770176643435339521089629401108002252640760130347827290510658666392416522195266657323116479278435010107534730215052244259293011483266538819890787561615416276062501916927690966216192435467922419914649248686651181831227566176754394545952691284071698775682764008368920375586603648424344822031748928025651474051224406860838039202545253766497029319631578943234978268878335642995981088747953735401528874954163576686274015697170749325869780230794859288409027772577989416265685323782780186976546915053960014501371072004371601492115641156714363602629928318528893807759168485278919892901513724829726511038196329803139843372331081529232886311396510640940285882230092756316097641957151450198587188420756471230944251553467838530925889577052010813956964684030459311310748490891743347825530157990945698390602143245699403352757983260787869770247149700221422918701293992216139241123845798192055340113596923117083563907579341095387628735530717761758925646935243552018363701810982991011330895704364497509808648882298075145182854419723005911729650229524540515145270169802823979696748028038073790904365244381927461312053107229088194635154723063121134044146914572020983667656852374384170802417772489406721880673494223055178585737523169682750172616027602946659616592165447613024217362231039461594822018665613779363363447095295409081851424045558407027484156335846464829271977541865277358587416984673050052221020286575337601156879599812064888951360292259816391099643948478721464481683650604223886964811369652843553318586003088392332859939730332737900399153296598742785296811943532069106013249835233238647027936980966844597607323567379706084132717944677728081841653388276361544033739692989356384047969871482809986723391182791950843150949933973415106068437723931294093338990430155129462980778408859770559867443398310313184664960990425918731705255903975312820433824074489519714202270722864249488402403729113944586030737067983665177794216246026076506862198236629422956115717631385590476226307156832937167058949625119941357424158798934800756925358251422553811002742964129753310263529841881862675641480083833537157774519442691451286263139728752065111034125337540408202936791350340235791336671153576477976873680027336272337186911517257824385567598816240406689048097457809550198405976241311129358541464292541708891427522365283151278309151562459571895773992860761753060899495349525182415731024603428601452743844190567224605394940751631960560276024965877426139663858353788892021924588949423052494714089556899302276551126538674558450251594720908738786809188296970262856507648207471999808872535739553080836259181775021910730085254291793475663646121037100294790450410326123010418498053662086644009901026979668039773690207231622564562778520114622724853670628119555985764610300539110062293319372228192991535710438745587549435626864503291128627661374777843501945225320114476717511202541778347321411684874183696745066140297774260133690031956138308096711434778335709490752585687496972800095017679618797007471894879586555582507760395447050141516209067947428969010942766624349768787084633146669654217205851009934338726839028508291772925789802837782353588034250926021382137832404465590054780047372942151094640466263565876934017478714949268410679395801917809905905165109522595877566244301359110378959914201454690058453709741375745822342895616360036124969683258406973673564326907663483574324469209091336435832066438264520572758858871024722444938657912339436261720849617423795837692906077826090555646851949112893652911437005296442566185432037742596105865125736513670776161686904095308721933887577333614246934526147965011308808922575700576797159608915234988119884745183232862387426384055026236307430742205408703124783235994606507395759141739381220439313836078244126611377675473315350538388292644139500923297761139713072691358385553263140256006887906043718000359352778401040599699289400440566566721714164966527959192458090815609258583577993784909336007679765773197536320906876685231466337883802178364046132743886008167139645061757262558275626964731284651217320736094377498888896442590498128851686270037380838140852864976248414052287251284213707163373354831476612130495194212649005318090888430857059439306019037939194575620307033963849020547936884855566004198675841301113856768736266561154560275243855876714439625862156701916436471950844152378634077472679590566281872654505039162736720667955636318084783884758277733233498076179676640965926093853106307187434794216202993845118122198966697673671046244322346081952915597594274770471874883538458697904463506434562713678737089165623121473291543390469611190956240113571579547448420183063859504426592100201729681507862454558804375281657276913079811611688444675111223662284351626064917197375539728880433013572187115536433025389238496097329721618308783150648771887139967954979437818074035239629760210262799439914033241340695579868692992614098800390839450413784298845428686171984179892416941889494297926770639993080480913866667459203313184159099380107384030665851281873609491245579853102642848645289360061234886204789005412242444783590478736188549998454011137074996429686900941200329049209748833226122589051555857654721773063443919516194702662774237551827217747427178701145918214605455461230433248859165493391137507200487420492042649777618426999799997133604053508490056814624479768123734193526123713656673056282198889900405551016883923226517243996631396442548116260610439938638739991856878515519619481367111950872915050494131522628500666837599769327369206501856145074501711164596064503661411273801126358379138451022976195069161161906464602552249105914373433947925675659532031022212265516151575211734062843769970660417904262610608625513170306643434521400208231144237311402124444835895055863077567721795511888464504148222995411116046207949565337841057349199654037286026508671744581024768947117886243869985986643820858293160034193857551162533285699070700834085513979309273630141565977628083655472878335077176860821632887948984854188199263185176216625193054177287688407303153546554117072954314976107593690448145301787218642383036210295318259501320057674579943357561050585747347090481128299081140984755450223260342597576183796485077814219786138871636076959935956257689259259306137326811731516949378413449899769653313055991022795143480150177756531195412725838685983576880656209682863049956263812256440313150917698994712822155876947272417180302506407897055615782721477676060617276362712599780265578079613983961593598233273403572929103457518206246507726219402397985415094509491348299081544243707027245537348509380376702360945465306370990484826462020932272762431210466976658633752713111941645378987973559323714028698497550862444116447703715120346925729399428060392607246347210495910529902002078046462750798351051916334179897703047182552776465797484888843839721773675815648709310647547867946284183001417548128474373413126034631477379043083587817973244615307107200734743962375816124971389895121300527147024682148956848661930684558375426536204231827212716392298665292598434537757906923335380851016866703327701422471625097271465183639091969519475727672280040686825579143681647010213462413969525553347938256683848630512438129381396292095421888864926049272051179522456922333278275863128567046299614459867491723964835692356950396156937601675442345646195500890107223543544128789040143378739375670328038922120406582488868025907611468812047230866272771903850528011584704217735585051351778064715432306829175375292246426188531297504353287865182549269852898619702579110015799380383008988945770284258878785500944217138114566601815153136432327572718680278764056149909686587208498485782371215652889072139507750320834890770591771399525004435513057283513454669508032603270716376847275586539180614318931335823117001261815501920952288476938031904269238737025028459983736563332426837939216965925758215209156569695712086356944169228457299405012067512782839157817850871481980698178162806119200410419378817391498931703104485076422874539084759234242717030458019003962755305519962292564351812312898380742788258991536458398128051199702505746964408457261819732771888329876256278873552915708528189041128844739300442998227662330009378830912678832039903136850367508627829209528791684064332812544758411220655122306648711862306925803599953921798924573568515344091710945646694022280468182273712832128643381690537698588926886784039920550711764659139623733841978425591579387491760838954235050343190338434133076087624255293682239029594523256148096598666243401584802742274747213132944929995936610978758551617111236890773509330139077637851572200745535623486041555283048354746377307739236301185945457347793000609230197168404842580621974184155533171529619459504177422080372958757462757060530094133352430393705279010614414850688680028677024027644665054697490902434514848279504443511490377579289189446160485394329808940799990008201761648966360618187530791562199577777695188640032085140139936963762329694020272901715192095327668362743133944465720540425530973839026754920485019701288124950120335077425420611299139064347513945166099937519693861775945723934476194868635674191256934705798480326711311068250598716388942598851887211238770728536690498240106193133297110535081388103651926474324483541832805543321409950711552874231514805670790387437419192374978142821827016027234216441859434195708368010270429584696012095697830911982049490353172580295845035927027891863666622658103888172809193549501606103799083257975106012986939863514128640433764843706817749657200850677124450192774583081065284064921831214007192309293504782262608138627289885012185767681865718005782215738920436480972876248500677908341522464778175476199197974767464187909996805068279767403714303310445834939041242504247811407880946896752862046162780096713396809819459564020617817884564389543667398892419605835185396334793631435600135333027807619470036883885278519557002233896244847172884013218281357495303714255766338954022788705916665661221894073242250926122882226996127902895065043875334176235701695139010352417677775452692444916129697772935616748510777411065280701440501680292187058229092610584736884386397713526957446152921817919785003709537871598637660915254570263650956822544875959972405601617709481651490217348750091344153734613664463253456564872264737127817707059842008935760694097066943764312203820867891658418546275943372079905491179528887978267358743371733803563407330142343967339270910100096228040977692679164157209515442138703133588455641897401226809721958118507355425020585440825093238100875010835636623232254495685750484907023719690758587657494425323136115227600632617577862598266637534440911831177996398881056872455243827455398742776900990857756866764947579888583224305514306680400463450528622672552740734009515894029164159886388899236983739897671273957565114609357875197526474503488809423640822269523126056866374510630999237385295989351645816983659454732649959771659719029329094035239085140853783302400632042120548244316547689013737347099176509614023515980260870262173482318256129879465032251904382372133530176569020292286966000320222749237081127565331056701524625289467530272590148734385960402044460632154918767554062018271443252935730197451739788894803878216386429852042303125847132824949988255857229421147331303687409626722738273181706740630370755851704182314464654857463540040254624682313637821937084372912340069584388196621328156734924465457729118533422469812676461806054509338781715717188085041028845166248694717936124036240917223921512465032109286410575287346451832736017054790574605697448194464109980629214640175688124710326072374409719951313268416953382238134542561790966751140637507215458825126672051410023732965452381796645477843224638262766943634016990007395891504716588731739808594706119349804665294273930207248116197809789661542795542073378138311964489667445659881626119610752460537452785995785219485613200980360161655567214977330133084925259134523770014720801640167791702579000116003568485386197544089828368772537544874013107564451733066147193773860812072811488910284612852698174708306012711792759596539973558569054750376065396384550018426405411442153356618549523527503768759130286276766992331017220614934453824413245452160619381128068325699477398796376600417609485332754432489874148043652430600646644607905465944240731845363762565468721894924055222477468817257064484113299866915143758445344215275474021401733337622338463808170358655685345082095238598184270821152769700928314984772193611220954975245781569472203879435703173636831878191628928313415088221479955437120848607365786342954005735320171988173904222380732923750353645528972844731415834376764791443801957351657190694040454990155391091959841414030981350448385369546509755577078158879253218920958033773611405718760267740679405159109194585393394397050164981275293657875442858246529091844804506862930262119066546528833465413097753033851849326849357972133479312896434256116081913055026215547471244127369296691599177890006050126696801568392575294568079714738361402073025783426596753149781841412073637521193481902264174258346680470579432959237245489366144809974285708830318081802418975057988868503359197579612754246203818575650145950228930291170548049919246037269028710443205730134695821493786366580328681833290324544059874973505177627603413128561879347945320539141237814186240148355372644384409750657866895202620660900198977409224569655009230487017171010626170828153544307558213281221748034724986262760961499828523334746585091054486410713138802886379380674467959913530549302933074083434768752506039466493189271942674793857077608588478441962764407989650288313800569222229759417122444499922796022879012751284798669242149053247024452887677619251959438298984086752195146497339261104379892425442106914124484861481193871048559001586535205232330029654356428171524141343459684326849854142157952203060913032495429464603673682004406977761625825668442764261653353799591078631310221099649889684617789360598588673167558354426673949471264680241794770741631473137088752299639539028118514216168876057954934019211745055480700698441780130008318637026035618991710148323223987956028948148720708308123744522466933683113022394808169560884585691038275346372498442900206379482725300659535562109954573482758133750511100017061534265883983119496260329009531578219726389163929889136337872787535614751708612335980074480621530457550330512116986035836362994971189191557927838862636082308297476950083389031632586743379832079718877632241876891697783520369980016264089384142823960940474819377491432413141903532285599845746527083602110972050621643489025459088122527265324679364073018058530317777767168875682797432238392234367156375009307203765925094094531190042340760890652242649390425736127398338527274116798323711946288644172617079428191046085852631932298966511929201898972437720918943590237838285319774930181711587644285574263930000707395551684928902073598274775523465194054176018157035988996971970790624172962323314700784882995664213725493083130697725875661301655154986934829954080845666162934557503786550554308952747400266516468585751476839688865980891310299532152249541480355272372474151939218116519940766283797310637532853594794798116691111710316073831274786450748396446910265827290218823394477440410151660155078423520496421013897488666166079809912801577801519700005587009296036929616074533616246185262879964002737953398016656883487763756961358074485346416849578829687055163535296997473393675102876858600231115366642951124285230769143169133397499140111225107943015506477948026004895191097783800553518010726700401060593203704213718548455548438456187455728833089880875295208953931156841134260858563973111376907179345916872331899872481391507631775601569564158914568421446044847185300145622841079356417134361126246266581712637395051949073256615306335678509555628882309239214899215932675508023011947222916727781042863001531690942765634342645364350487737866954120274404761392767924817871625924770774728686499265809978274520248193481962703440166131852554145090536228694987205330766093731447509898883382551714588670830041292739722164705528468553220685874478162479656948358412447802031049733306708245875847826318680417830230968517579386142720967615821611665436083104654358687732158624517110496938904843723768362140010837213907299852100882879752240865478567559621739047301760538411316117629014128061217599167553541910056311483366729769989320160967507540162154345599226251804428256358373464510688714305550552069218458241274378489345198124181346325036573788213662183353192763256682432251440517248807718042349943846448317377404428801251683779465057639866994316893888549438084325123765752815155268179606592116444599894990992667095199451527481500182242490350741884089284870888356229201107593015763305852609871005302171271384022536853198326781170419497098631225664424088193531059803849727094967119635712268559243939186653569538670269397584642453297378374327203918123770054939077643435617426210167925600516622586320569659173545971961503570687625226249593136476834529371188063034344400489269212643372821270421880464142180447340049940145689108367105673908428241090276924455196932687064665572992137918392119689364639247098624886018167158762027039818170176706475472724163209440420818933553457546099328187517667668469644371494579510367806053508819074858233113970179259572262005974167833045219502613111099892673859497073462262390199684270916409586171905180535664511555730270052182417707605497534228239859519557270412622954418815027818874146709478503242052456100308235713075752340396588515133571973329113369956333070958671196833588711334588973786529494246458541763195072902230414867950752395702075470501958130137746491668822906299368708384197880825249708953877033371282059274642911879204015382180885988778199885943683356230065204786227734717888313885285099061624152283872814611781576435598526747399393697775567876694341796072891742439997470582766838014442632889726890980459658437851087265544803835705698274396112968473581107770276592975672157429619586392699956609417001541221145015213119711628005826336661328469402670768145533405435561288283098181941848286361764774839232774297087092829947821003164740674217994191859286009024302989267014932824128334358729530222754617497431043649105432194691953493530211776237474196722667473851282108422073105433558049099937633967456806851101416774542449088374561310828848394575656484842326110921695047257705725460796324385656452405996232668264356848787398242444568572031308857661625373938693102317249201558594238788278376786337727240760591409494024195746433906055948103592232787963502065622865068831655381011988858834650392962682160218767972168872538436300287916064690633240095809998241517258466927955552058553577264446364633046138481920544312376353175256794043634781904958115283682681473639739840439492434501905441584643456449357834390462942488898266313553197133266858412134633421211117542736815563313409073330600194924403354182614383307581575847774407940071791634506600897508434848621422664211328007611362017242544721896297750318804128112603760631466066151460065428627479659167526131153553589915685922780545643691142863358426168323513488416585353218611985795677902403234707142520692310681629989665899064498524758596216732845165819145155499468803769043400833047891071523961599475236288985324512764744848558289328008928701527622539798296136941307804253124774925948549547532696347036651165777900833020852270584380984140426955873760640684025268509514704767493311677509078018855301844058399241849523520722110902315758130136522899661604646569734329973196417061407426703264589636487876119675372449293677249446705670241698929701546054419693650218783821476617374739490017568199851483892666615997987352196683139030287926654219683937534517754610943322962832198606267711801739449284225464119673716682960558961524824736401053165246545996123911461323031230891317435102701425044994236322964085441823237241509040866416118861137432085190159380007244495493233502872496711500018125690225669524146882629868584904192007317811191066327092959563244841240411349269380224340765870529616104497976690810160644567487365404780315972294099514729267326616913947919716835276560182520891000619667153875723762852348799439575377727165941462626954419668689502787101648130440218233067446930212510970661684584106126217883032107736717594878686718178538654181472130888999678072011462789456733332095163928808317607195614944287088532776887056820675965934369385728101656894132111230360524991734521620938219637820651657581094764774042805759529477464280834790475118067335171831409521588656539553150735170929162545012582083232967872782290600993420282851800016511052892422064704726609847178943446837761378473119931118938655276503298081325895900149903771829736289094645725048329872317441154498496378675713228086398327769524960343845676369406303947084765861041133800485364700833158088118017245205092765195267918983739909945090158335917273965767755128601817663287621285816404952998059148834854002544639974072292244612684254098075757055261491563368731207781433328635037998908097371302219714024091628777855762318585272895763288522525401769140154740743283277197267581517224818348700592176444715565640770557740278903597621438756469902177925946836918035178784506036959080548335736186584314725806739125237477896459801528907943773899619768523551595546664518252296346629561334820527408973099119049242455958028345679747023297273818947412445734220098324881991738958391911962613679903593261308336333405309907819247631688218225891316634033909906539754828606033121283977471460073400841484520792936968143462233275531812711903165548114975389766471503427257866469472181854719782746930834570012051563433078464398426264431659282001458661463789686606056963232400006077895406041734373788105566591670040880634037675523492450187667841496527551835560017535136954161928122173139852757958934330370759982882255933398045579582932563261176191842645766960951553388194426042382430231319120432108643318302437966665056429849427237775121505925884583459486643636511062333214187475803955691929628610306560005996447898286777906050425295848542744698266703055790175709252323913719359575414770943843148141678859416737249161629923573152344180000186675325338091017184302822686752528086601392785828407591943260689818069065951136989803316864091177630236405887750510517623806760840151251809081434946265801206778659104232652010721431128513103015422572057759504478214337813707773641516282884381706859790333639195022838053815253736989366433110977688071781786253032158323895874132013351012270320677119203756200300106961058081475986191602321172960635266259014522361440871247193807651743579141417078370537984927801301077018536396977512969366906789855990411560819969450274035352341242247172296490825615268328126403671180096938165089124621081477859663241283083736300693313499269630901337527513185314962874142768536034277021439609330120668356726025359413985231763412438783249254300400776443761059130907882562389422956881225447822885638716936566986444315104320767693665203582403953337854115281763187120896516366450757339229232246747773591561806419132883743280301964269669844981493818736181849412676436665093715650918702907687428138451037806483296353119831176151854499004333455044217848122868826476231748833635187030330127998529521166122368943695172026342228287530760700732934890090420015834259112714214808062058622431898328743170233879417407303103562180236681822360765997959163720741980987891018381139167987478657490156569016163180456399985636548140080504136683406301883420153889229765927714654074922357104485029346636928652939333694115666087117120150812750008568773275809050561118447750783851825245511958376397351590334010059956268814828059209801203272975754132512086573407594404761965922258735246498856664132385790071040998675054675540543585903548643495269013935198499896742303868713002104707703777292056065428624357870420608602483679211342409603380204879311182150404233843643730519186067727866267648002901380590024438343066695671272963142406741916984581714788400060035103060538388317502605167461617718272905771066242789620877372219786943071098310278190104098575305991643656439569237476841410214298222865230743109269044110270570469638812530668779474723900492853542678117733011104720087134630682068875580894374492616480075116912940317061071401515456398425275140087396802240171035520224959917998861365371120965591568789325245096906988056792744011769065849231503718479489080998524319678133701776379202945648376237010682305341211839483844840435938684318198762123900123266499074373448810107931140393923112058146100053502311213498087014071187246070756553490663119864472178722650159015148208850367569893145182327530856682398711724089169445729544081883074565959493280822758760275086335727133533291492957912101885408064631785446646866965297872149603909518790970807521266821233699962705218125835654075078088012275116084373871890901298011105750008382311888838022393549009188786751358420276421375859985539321325765062381901303351942522676266390662041059800523906986445337685767115555088148029237559195973258395866307153045671193614983840510011650071543540225899253905683524644256629745702808444842466790319835845193007685549132718680792404980369088451783320117963597860967913497059051663358347014959501612061506322093582181944780037875562168105891139788848399574326173272281796406244347711291685372211685863439950344320253163706230834267107263291239585886345113629111524016801128557003278511438678797082719569040108590650584939601288544753881347243515272587562345056106015085329441458813576790132824328177440645916807710605348079978483946277968583849689459392086529221500458120887078647700074439532086742731647588072590561433764812990134910889140145825246556283460782287984375275948802982497407449695046541228658809625440239398608044947495409954934520732172788904501921876001630390132696879866374680534641834336988353469062708258012264650711684100074562733038195762016555590730819370891547653304222978678142103051510084272037030562459732293915844119305055486350335749261710398070927269772123845143533891353809640544018268858101933994825787691301481198344884773566048768628837088769938281850500879363830184099102835242221536628460954652486387826395152227352001848137217971485251693439330404565042682924660736568218984141100265347015985208866972759095470818783826981955572107340257012661232407332604307152316620054865419489657507542272942360903110335558833775807896459442200872366277225582429448653667642978833167082067828190224698845252785682041497522522130596715188052980234121887851006353080190678286678327477974338650708062844838634304393992773196144503024774296333352522346247459756004418955791528783568821749073471000462345785993703642373339854834207247228627460625444660758941299414644551422456819107783800753389327218641714147687936703845245724845567371440637838946372746083520474794003835425869607428352050295602029447802008589122528819068876946131198120556488463933706210588574056714224057157479839975841645761269807073622871906623199007276949290082761356483483521868457583432560223916093594993241229014885778882863998704881981050173573188118789797385029048569007837572642710598294898363372319580316312142164140075321430639725269395091721525405479881418610437018624022634764913353266665852463331267722669512963523933379610664955392232826569642379562441351439850062306518169678982403079475465575076858061650604046617203664934453906334333599807230885899929798278962587441912182730830536326811505200557891277854339216879546115761728938772024498809152954914682309414542387467981855000228698509984772401872802580238842297214615590017923684580476230228763773351495015290997622022507367826646592870119600259515968862934663768435919659854580592741098655369931885844955303956340062340108483626061932920356778358579853520916272397012102169448212344272279488544406307479175009886673878761756240829054074798371515252573859781260812853783063820451318511961526386845306493315420132244035917052767501830377189997052955671222080256020041638587783038589254387225280778927025862702295848440809220413710202423019456953672097576474165750226364603261995832845254085941333991470943706459111708892955234244757042122761416299237313796113389721141574671182109778695194335837493402495868268122495102474470583495103178124468902014305392121500562554648855267897017441471573705932878869554269316246950287927957621651205070796596371307189544375204801335805137987690935027719730747531018161178185211015372128180129676829151066947436433186230182661033331768275868913248639819577457225017333616956524891781708309850284405191848677877636626757153469391387637218761896071536215193040142677193364339238546517360614455364408517165285682306222693739913013740848515781355617389230359344236557875927659512865417210143060098990408227248889553459190889884555333609474375543660669367142926930496541052572303837923014994019407234846832538043944196779107354971213768129804944234328687563742834900954015324052195023986485505338741145319261252296685496958658763350312876729376906531326377493461461914533658733025355799295861206082803848775572370454090162238754366180804467437606807436883004361120190654844929405783468084383506139706585014989749176824882564531255614578244909757505577402793423391602985376355413432509972648597391749064458757688938091891903230265941762327489279565972306654001374645575151227187288878203564468317149196288240389290826101046356102128412847665239793050733328819735503281551700764770031256259639202676319209009276591915063567926501471839046313943513401213485812562189587116602103021480179092773375615630446047825240536456785975067422656164001484819882523715738102617911553325030684198193636893713668923843445159273374757747263012323313140451711569678160518764093147665352842399949339714076647449486343113411420846482779115788288901570227239092205326697575579559440373173784330892450035019553482465767653200447205294060491151974918393949279093589936393805213408866620330134563838656014675199557891805348567221932041794887159445173414825216409534329750941287965237402212147290435369814418178420144903566527020861026355611344069891386393361822917498861210759852767462836563232627135084481575313493624938327488968696824069716981947656499615701599529192189750258384853315561974510368323770251257055240633615207623073990677016727143232140420217033701186787116761804413201756712004480250892821664497321981350521966194245710041895963708221781120706464617077234109937539546554623940200079197376031358889889294647274097323812347780272988818921526620096765820776934924696083889072405042757038135313851704965044143345646945153611594024557432394166858464356988745553404525595796111372903301295047396176676175679480602994385645146460397089302942435958462965657464148741696519508863864753854894695271813900664922820005753563023300905472480496245014969533611198140435756568783928754043572488882135296802849308270630800370155594595831444504065059836484397743048926123433802805380148143620746997297700618395501553900778628780039055335268089364381550250005179426313073083831704235458034518410469592303822393964482175985866287865582955670686347284755354705233598817479837708413544057776146683864659944898114335702445690937567866430447493574658842980526646560920285309360511246735232047265659904154838051575872439859181793800507373763529551750937890620424935508067751717815616185252561431990719056111812657636491588907376086575717983292398537456870015424087069637784881352205787254055670182061546511555832426236270413086898853825201760914337516747498937150773491208165727430899503156230828591143674412537484650728448755152266557904949856405533006201879164121573466922561236353078471528543059495679662831585337186658268516025031475594637476593360501802660398147899598531163781487572758581863827508781748358262803847314297226264685864916690019714443771135087951732994773214603519135871729913050799554009392862288457361539839605293104698771462562344490236941391379346625078663997271457260582725257976469568865797565377216046837876511197315963341903348700478079216538648045203012377763617322251427525282688695423304014890348577401090447005952263588989336282055583053797831792107893783319391103855842213177175717636189833200160454569510898925143908376982310035248622619497341105813832673187380590631579132599759321537057820660169289035877461457541389356702121205696111184203973028307617871653726980312995751338432006759295205352596481335600370061570007853735213980972637921703604478873040752774108571297085528578408862066799125505142067778026844216941603288503706929376221163093454676647055896614229106209350008589866736964649556134466755994228035603287604291148693593532384848229466595415919851996504779145877715186341494077261813968498707570148247754289442775131217413178681982647689402490501738777919089342590329324322127698700367422956559876317740450345024749418798493275418388333569394636216767298899848984004427440085254282294720908254998766615998789906853187623933441006432683937086550703291871605978305176449989337053398713373761522727312299858587159860535543458714354047071999574229211214865521738101939488966458686408450131361985169282799872676976539182813459246840716646009806849794961864881467998738232143525148756328265480548743920019342005984909560272303889390349871799890960057050397629638425509723057153474738317850746274977201102955822477741361920734335682599777317541719138758185483448817368239609435121788993596586977775080727500718148056425020098497486116097386484983079068865975704456841079235138122791453458528265097800322161534746157411789204902554363337507771691563563903992537090518316871259562132087679197912768318234168093229965044715961844045518376490375281704399462182088337539075655561344833884404751289173298988190358931247733691443799523319809571733563524735323529481015172821130566310728690246421762251661836171282253778750956978510366440842758218946741538603702185754692427175658865559276119348025946087251068211440440430886648445211581293133111405157686780777004154092521965041332267595698778522028967836125827976498128610753164132086220757074907530845921687753557865064848749563095341800603361013689563504981964643616075911123068361647549014430371794158273558956654492595686262101175085747279488034627374778248587724601565208615732908285858431955967062020437474596873308428514256070479729187510359673478180982935409314756808520695542003895568860146398062977370090329115971933530598528396634176399008808811157548236638003081472118458518456997258885302894504518049157034097876937251843278250158517479149967801243806100735516742485774930353006837823635326183917007222929903856973915517639358804004820792045901010200244087102250600000220239012455505243860602958388922674794815379027748774035687806764057145719394369328315721402379581056506379197730464879812483164886217650018040468243483108607123039843771868657175148749191206713865012260888499204986183851643130599764599560767418211584223538179262847361721162614990154219345704038885766403849029503667364037264045087400170763653796028975815930499942362474417705228386458341614462510234725167421577339499368021953307374173061047094948013206411501937682062677174161832078712158670930219621174512737119012585168082082084494920363755704029934293323526292836737160728077973779000332959460479301994175737428614694729496284118296728375101189214132484358447446702394396321749279684115602874781024031865504411164206883341988771761055546236668663687026054045330720267509624034243860592709742226557589177013661755070439005005399172311598830754275726786034296221209251789221093773463885613676329757836117673853577122564042928243785365443981961531418683342824799267848227260452280853711337907163941803117187362750817896749205350535954663464279662719083779897254650714733231195418819998252438774211104231755690942618007768377510335260369441435951819840059302648854528393543371323710000594011748979715082405607482964716200724960734738221965768347407338265271426960353306680514644738315952073562793844823975373741291143988428596703902015589797402440363051339393657418025637676452187912670655237721809037645879494335289336784695389211567585024711930726585942975721732830395050439590701137715546233161786841733858286084547860864990158261006371429766794338881628051959627909820841234661224382171862313104573323913943639632442514954826817954771180649089916056352142825281101292370518375028302543869239690533155154360037282325164141219192855547040427546878456613788231236458126061777017436314888562937625373340455913189571941250720170569807734508872253712563570674859073477082004752388160980594535076825770198756228216383973293275417877667367731183119553219277890523946512943613834169714757154184052924047673463093220860097313102682218848602501768954944167934571444613298123191957328547901499093750136129328210520862044847901695682728566216187077699992878660827670130745787874806015392502906114276930311480197833767445276378951510179098645009463413506543926892055923985743312880503927276715749426895258751652210005770549772936963548383876919703337756544132625571392062769774412540048913823515972260172968055175135014201453395536405883224992121648031707363454487619043030444146365356202655469588565933167096111218646085094469732901293408574617998202304257603290340741070676126069534168697151395778838070660671801038095545211708183393555624190346000316154238328162077997176405214721066537181242059084166016664395814555038613285694163725873491986210248537606106029831924766829186788595304129211642624449136375859477467024318501724424703098970380160508807984812185718827194440318296311067351313426000970415852290114477568246468067308323860248078742383640657051232599133822253809562645396751559070624197371391823434306657203152050072911571104557133717054278241227191581111079644679789131915935662291444272934836366843476502831385192235206400525668822558876210200975991136295836463196164962741329263865264023302780577783942846946271088316661148841692744851823747355155543936945087546573478214852735133942369193421949281626030573915790424642393891428239899111461489457355589410852524092678363395603907886894445800800980877514035111070052753698203315463696153665437228167428613974110771887944509800097747208252919375316291914456316361766436423619407830328981296832001482111233714610202816371710613288327426495424198236758278982839412489883311520940631424758307721294146030482586023373883782902281970500831672345420391137667588052873308976219283088428937161694334189187945370651237652061845572983142957827495802231770386968570001896310348001447391384368392514157520946928980693789105681266182201887936293646211825413741622729160755205731230009998701813047945842172022916835804895661864214182874893082801267411056823271578713913859505763858346035680180943351661902245710548937737594501083914732614838655366483197845907437279934997903546116413184787355273014329260704683905000907664998646447844670482496112954504717809624102487288266692278440623930800452001022650517285803126530511319904219965436312435679921198546179305962818857624512229204044494816803511676867410044034555300936572776740219044756311558180121252169190799343138431640187895542142375261435917318214789741317024695258813497570813446386329039224395248342281700876942461285696761248518648591934176463822759622242439287360042337802945857441363835073157840935875243150389024191040453850592072375117822403166037094957897807682076567246884855289398847622112546706269001611901958505305248867667959497280049141309600038797096830205007754747948865860748356461682276462164752235222001995092737105694886359510021723881167816130303831219491695767301262278667718364199113321519435814339622835019421042976314560626638429808824011524075573120257226036837143537030601669047480933584779074385620342570307122571296476742117995161607757184075014760561528884927946070862995098962048687186891710626015908337688326076087005205739121118295550168811518490702614948689442672000311109432531705871192087909017981506217196166348755012580995315423107875667494734647828226243640428622888833545407762323658680069293880868909695705538544907481831037895757553251508407179342640918660988511155666286681895640572012309845652305370476571516924005886443144272555405875183374975770567782456601544888611510262195772277543377216875124390628680314167510511430678931988554388822203107390787925170505088009437953719519034938998016902292239675818635935571561734180325880593435603261263357662236111931839333439977779995963125162213259228735872832587206291306257812652909015696379967736638455546354562330217585145401468113594023066614322882271456817574535396676429784267672146662429285649741301299452110706462689708995895263429394905987541706349696211637506712115078494064746184302968673209927033097543691347813777524943266000957551593260650565398735349916360811708686956506718591681180399533762449025623666721637485956826627595101592097365673870036691625730456924596990058844265535295882041154271978838172088265216456192585809308337636752559970105027294846209860566269420375163106314373679117786682992585945562445791040019502758586839549780704336594831893920712774702486389084389593028012466808429353430143533333623067598269688489869309528595614124610057729776782879856300763235186578427913457954426038151947167329298263345041096966925242105789489357869011072492836250673139665635722398563116170657864420291623661141289771297397070211995070879396953906295026322391922704640028136480475425054880321300790154796797857568514795513570870279491207155219908490813780349567674781929422736098814816021289359544530730595725177507612510882720840794938246959186513820561391171777366370025065611940509102520228050739938501731373484686980820278279442550353189047920285297717512049730763599024187264410359785548021392701336573352996225870744214741905866821642976751897230374419576297221373899460466987222744453313544423364985862345655771443544627960265684328324452513344601583281757869938183299712626149637933760445892363779751312689588117432397329055546472950669208903157612647724805878049932045480090673025250856095926047332337476960311164492094995650857212400568906339968306473280562208778800690002097658416759848239110959341122250973120433744663064193197010455072876592490922922586265838322877292083567679810268166168990767005226703081426789399183745002934997026980005102809982381729504692889231485697856275715382803621439156618602021026446015893117713639530874912619822725547700633379495686034136230556916186091361195327988696593197151951652211368565085061296144208095516289969657381703548350523445944433939581011969378978589020604057593333479164782136962526022576603992960124319379214567189645201947663150753462049518713919139508397999445172305000427636958549444205520623275556134618691195381078168218639949045596972302072621491605224705326646389428603917340367191608443715191734003768755082519838086585491354123965232378542661758275868916913063262380753243760731416684580602649189244065026874792262817346078069876490343753228989265572050671632448080260630966353790365567505300817252189421228290456396910029074526279750231874608299831746573763524837115595987331628772878452390383744889269979064410257457663717763066350177377386545539561619887182680303737645709318016063207879066807565607615211091675654999644733821250026466932006752716541247445021851593609229072185216429233396622064368018883172186667474258038595403772272415488711197734534320080360219224337933828736496040903888756246017574735582708717159999209775843859835583375784845418742373617935904874468438640784054809512796578511087702351430933812746417865874786903147646620456147751847341519539831546520168573648478450271775689968067743525196905315664121700888550076061259485736395104911317245468968669649327585491491325403415985770568193354579326380170397107919805041867781883610960829850895078431329472620307052411198567324210483005565107136252590784935583329211507310947216727851335504125672704525834917299112794245392470925222073739300807091369366687872616715116257265639924921562957574141211322472807008394868146707762946454763491738350846797796309450613660215509117967513998622395125968885777881651242808408891531644784422203938399135175442786112878019208557598625803138388036472435436200180678497425722420473262784012948330471081273066278532365986209820204630824901766175149106291148364119400844620763223025558891475427970820017623495673119468990611326339312010894435306194273993488731905725856644047993079467040456599419712871508482998254327814981875580244109480757245551662184417951046081197445179256977813983081928059686785378752197561832849456297004374670399090171490060976157355748330640513867019602095831488840546413069384054587546315830524697160480553906329145846316379139468548369885619256341236904427414870484138234177165970251584708571147161019020857311349956044922149275665540394067016314432280522475150228583801578329146770930631033012687209302860061647918160273231219525359139711344594856944409919805495483812024349910286683167058159649319951128642017705265373134157941674868502833784322960063870221445016699682709025472455918471286634445879606211237767194795033076951383140932493589756624633363251370651167346676222434707413990190822661873141416732113705363248071413956338546419296316792795086278847338957501183303857111500951282206426926396531060933250881456954175645797606706157239868686803188912070501822149718072585236188876041239205164306499695832258999522893673270195422154921614913715000633594198202723746385879237292770437581539958451757845926001550250125528922001193080193807812233502116688716256975955152043325750115990033276864645919130353157977259892546419968428375829317951048054509626644602508215715125125834108427618557722039857382395231214654889227843689516846464057088907952893148666665165727464020153717258657041032531243294675636318508220038391068131825281809989925254435700057257399555053216500529416105620520892745647101169864852616492986605248432433664319445872531131055482309002598768696908541012216816497852047690717560606058193250260678354885261911227434241534571496975244040914014508656173727900433854070033328192352148911867271614972800861737385869943974276011814385142718432875906323497251772517494930297844009055625160241273181313101690704753462629270223842320287647224751856521509186736722843158294234630365630946240279984654872026952497232442250396999464837718284771911108588403112021265033451925495485689598913235254850422974775135200137433141160485740894053280180096618704892060855719012577225572401647808466865008827823860848013948544696991441308154493419522912720654064894013987777367962689398652909244593994209821362041685795240562501132781534376728679532594768036042196810771352055912814890198850822112187113575178794361870885773258278141951117044857522553837894214894189601307789911622519191682439077825288416165793011209133261417384031444032038960977973607982800990887560498490451529361839475961721856612607905984128516341422026632181386551512037226370603852641151640551852497330144614413654438148105234897709182605939029256823115897155086135854122525655320305011973943266309099451826947463606759676033116813913413146899438811612144202995947707416459024532522034068027434812135412594800363902162016483474282714643415603390245284398260009904096783104723775648106993646538405882262458877545231088706932619235729502708336877868096480873049728703179359390065741195676612951065592835327710639837432590323091983003347643347585155981666382410930956127329044542796681115777892932886827717218167989418801326125399257718226134340630087749840600191357591141510099843873623318206325830102875603919528969060934853659644175633023177690199273449761195616320353975586167645486111913086454638967414168077186929961290855778066224915453715822019279771601690674078257986304855079854431182097491435607997343152436833022551324652533395876963172055244834039305420792577090196475077423368120144358784324536554113875898862176118901406848296817795634622702451704513754245039944336440432253704635211313930843831164393474498064321437437286938002392531079440127186673232725646663884850220143701288799885774679011855832366256613035945205312600160762406913239951425246861814699110666749859681903120581696705099644641756255624844562837382351930483357320685253207842320305985163577305640526142117683773129719723691823111984709941986437256228940667445410257608735480549784450063821094069498648574840781174865629370994508938166573230584929382698090954737328992936994232125874154656477835707731758823428979790864966302411927301941716821053119945174308325646847133492599480785695324605487718848320080764036389149624528982625301015213354316841198322864018208463828700451772172663175914430944239627989713546613251668352424424653071205483269892496565452774848660908478798777804886993123883058242531090588424589575807050966617489225179084106472834529339073071115495624954552618991265206623406524932660776718229891031288522319003319994632678822837314884100262528141024759042534589848511683085361837253200251985344743522072224913399530732575639297620620120918673470999992269470547332886898078209973535288804351955144393991016388187288794674660481118596672628573490358462577394939875559535945061254353167163488352147404032722643461524370195080749360624271250575884401175319615212862382442190627580422295370845051551573371971167733519945389047017964430929539968726353466559103703742947730452032136374408607231197407743244133867897795148264676070079176519243794844660886138638119119903801794984206127723612624627963259886516897721469885719190520958256463607606170064648808048845619070889706061650907157570936463631587071903062538829563772153077849373220366166721256785658556482257636940685576314916760182410170646654397094225136044032681911953949095264147842681642163486671550819215272898558165204716110710965284100382429046489634670320415507512643148528960659330350432865504416320944516750187522421011844169345379066798136481452947009256950916335248117226010659879809086246509016428183898424228945113637935713176686486974556165305902378169824175272305211727838967795842755543348313847103314942029372987517785099882448010799979202673080125520743880422944089900412410066039944829074322197154940873855907822843378776696314074258836929158769336335620494467711578646236538932910692553684238511958930066443042020882958192755124034596491246173913730579177388462275776171458063711707564023642750649545355224096897044116371191463349005390410783572245621943107098937188294632631817614884746119620826933655058137785171977838885840198644246607195576512382568669195846304584432976091080985993744179457829323956214329141292779854814488941307597644987159988159560659270320129905248723574417855377765981602492411251674723318088424849675038956022879141596250565701048021352804457556104473443136950701399491212552988069210341989991164162155633228965103349226704017124149528054774239399985004523457534799959674078290880942066477984385078025676910272822225489961514199580878033429088403641971023651526098145837193720254484020603104160209705960455246460714372314147767202915675262916496786122589268804912575850756220137521408670304612220908554280895780749642609359763758403346978977246379109916778787593489089476527656964072674043193409694118529055973853114002392918288161890185140716080229013515604159476015983340529753881488782099971678555358559827532877373990323485114548505639369652555841573429551229786492660774310804902844341065643093422439224749040806921377233752811507961897048577200377206715858465831738849110405661474541159561581782043488161329893385500000968214883466520133995176327572023269710292573269904538708869016587604068415667341008450579329921765961357891536160138991531463178370962957006862894282220159203751862152072881102758420173030650948380534161363614339008843873115756805029735144965124849806200535717179802385355887284448260078596679486812836317307016120648129167703212676025344429436627578571672888493317779853537426520918245586640323437561500791236153355143796220468384597803884698464761745352413949369640778519278767134833088142691075088244221688877895232359320489430951354302662933683239175360752400443900259679510526197233854714219567653906164966704332115338605345005495888237565936499837847313555572623045969878306886369704386624723178682270913554472978532211690992810703989936002756775942200088704844291166556852384206191956275414044298008309422311620270633521660708224066801367532621205082195460705361262504888954551621424850399653550088559055392239079459213833035042442517630520395545022626664619930080410752071731122001831230550885782223203819674002591794107565147124210770957359392426659866472963458091655549527486271561477452965751718499323087647609822470833235915211565492483489949721185065984519019530992313222496947408132790116706023997774563014182891047462932524320694954559040156063756421177555241500288309053123097245377220353502964006168097728874318242420038915776598865894699712251782199981480435915366350720774520105318289739074939926122950274262644970730061875937596801748308686451055378133949481372143611721768494825942715887991161161356400546607403401610429013515792480429417052242011023199886581424025315067226895412136171341932232132167694458949010795819188293027939547822658096128579993990057986975780374796526218675910476653636370265130239321659565495800174232786021019170154840970536493921096035200550997826523089760754553525881358238286622993010640417453230316051201007624116908565899894206475924196841303509337186660200884434243343042621382318510617562423979404546253624938109760988056995626118792049775108319980701127894610468644075511369400578144008181846936120856856855677714359720613429958266255599959671125895503476519789228672142414153788357442283639062560976627980010332833320769653430791809000867494205873842196223160541493149822483559439692877287888876717579224423793171861526283533153871926540827775778588573918622935125396629118943220270292842472038571468402966648738096647410700215011135856626668125794225036373803163965457860468063112177368682458939824599081138197949579597252860490306507921498361784527930442217641250479463801325651834008007250494468342682960539666454841034717968421729448629379387103126357359173882278948412025725746926299748277547870799594358023229487307093801634467853502484926769279567328366069907622322238309431216567394413314109135339375278013573804239925598258107060095479595641652203352786632687016670071032093588984265027220685086657935811185255737019519245580569408065131491139857590802862845016418679911493770968732982314879854883124463410864511291143347822259667910570922833607424264781423403283623892660186563110209584081784773933245704494332871912970527720950908873603281616395622038543773609108161629306165795410732160088823495407759876290639481325725767797725856748124108051869115134196894167470110702331249640683955337983220869108309935216685163571857940318353066637037113217362789621795345682272477805001201696213970556892081160474758063113244121933614305881859162054413602956412249381033956359700016516859835181208047090597785274983966034078229026002153742532049868551621921489303314283303717819509711347347994556628730166972328763842679189744642249124789982239169811682038684446344568962332122183330187138619850836642000893342835820142962633710621209753064596494192827170990765531277789970426300847773307405406046820340292695574413944990261755686293736553275056782512195274388130671808781506459988475014775554359223002586695716007278624772485265813987303443542109631007631197577012605655898352964559423903685816898821813987986255011723158438445312758213508024995278251842249635671872674982490883914083037584643496975281411618381174959480925914052444723514647645084734029341263766484964452457999216680125204403455011670203493031427953867482744105925051769956229009754055098483847578108875847027720143078816568139045426702559891645219111590914191104394189364768612111678196613436873028478356944828575816221571207406392680432009110647643089875011652101084605482802702309443199524844649039352177013838557881556903356880507320320138216977188754688189675321473661065376747249518734393998859146883743729856831234947185229003958355263111400683557719985030700274492556118624667307472497024288365806444551156705345080424738285468960582561129312044468072323094920167919658069459274105260294348726393671404631987923125813578731685678058606111141537726965974141724362265090400770226310458574732547451366117632862838107656235852155543411744582435603953350548095023767810361667521982236497225252423533839388168191413152888970536012828045721247686310978383524707932011515971286724818446203207939745992037430387892710793805926414438721633556062587977344441790670084637451790715534278838658833335223525682981834675622936647767209494128116896157399379176093674306326349885174724376235670180863310601176758228496613116211047489773474378927216707929841473174648683166424397605546512715193892718398675170489617590128352250971225805975399144390778623454587220674750915011348593694851503325926445322340780454065757784321981049411227837767704181016725693704918345903205974193303261558037404892917258042619319378299790545231420490063031138396529583193684143132860884355066274053187214482325437607668474485579158359014417887270559250075560674654930409568028512589266283018338580258952976708512413629628899766672896496518555461638531725195346122069283885118893205530551859078386503500188060161487362282070703313501046331329008146988914626001927758751387849500477961109200052106553228385922495549431203238660111193227647755487188025064116005634958707671335040519289059156247438137250829789197062681604996214041898849739218382380277765159224605781783318567676510511619918720510595587347044616899477134864007394530344241138493589381682571297658823434970179149629326278825783416892357660181219574438947063243413672314246142780003229532745979546255388215235006244514332973721461373816980762973607635914815080995268949603424519563452322756344687750385259515282692649698082102635747736905933637623189436331028152680707411375355960278264454955667541125548992131356298391658583426371888775789812396986369656544964936761456547719533325391244145138549045125519103271691109153271655392746658539620924757370640779165266895477063998155190881228028641872202628931436517652630033468156723607296177771601562060904496448189975673902556339268619334415273842809345885759383058642870993460282455236979383730990321012188692892499510188923356538493394396551790388904743149041272072988460566264118550289898146595448092438324010501011069294407110965088014231179566159277175231465164525852934773904387230673279705230992450897900232342319692829477377828610058241110705960956363897407818969187816963724276293068962275288715812111440768196448749746357763894480335243630173011834258733317885437495035458061340253763881849897886807469768835730340294572465873334950504166648997643263958506141373385296099404192363573755602736750488155750324760054409034593644038812424476142470510851665044818296791296440647118339715396649005925593141682263790349862930052247099899289798443584355474361281541102485807899780552912305729360511694587050973461868655534575249303903560085760269503017760914982173372260635700342441163633662214076868823329138345011085582839629435870648140712830936024815403627751959899716841968998568082729706248620389431383732000458304352918898511005294689331283097982622303254887265206021669071872338356460548617204882895981182014576984637101036406480951880494628545615944624571214014994727256039626470735806387503705170933170786661214511831666445544839021789699885422025613512395768289176951473104325141207938671303828974794957906756562105577316463850543575121645033735687910132807712997711340711568489335098017137774321422773362628523186764104649657461100710468044444554660417239185266770768735370781236084987171731975614258029254506061147170779056561083562338541885587523541902286116785432285377954748801660781561270417880805875764148360942223596785374815150967567723956545584557181627559235866352031040539980134488253904284495700035627350935033413712109892453016152086326153555323042620417944369863591050611676626305953804049007708261014070786155749531520937903960944973953521783769719215749885282869490577532403347817686610872720905143353047327595126983926344444171518873021139306300003985629571746039400027981449829360453582997314741861039954412760222005675062392498941969198883427932410794628310046355189034230444875331913460231139682896508099335935367667572297405434900255557363643626124727669131232993138487261853627217557271908532685195573968897783137954508747689536228989330961602986010136921784636335655295556525229780323129105108954487577074517926777517541556590978715651730421811095645024396408004585105294610319896962079515192740891703483893558758552230135265549999659360049710963010565401366851385840872086622851351256661478055067711223677020743456547685325479161370935328925598323209617385611036277670547743560119856267395908061928037678505960872950904999527829381474865579149098609943851366452961181423166337944737496816923176884641594395535194733528458129730042680052149649039328185814155820443459807450513900491992401140786813538477157258270252176663039435722702604228791215162019944605201783325699428634390821914075057039622695629780082243027930850052932387503317348369950982510387878237599039614777204008743752498546027140850707222135369389677278111276533584684134839896355275961346030137983857070556098265913670078738608364180359663589364096886810110690036808524144184587630653612542201988514858013472835965573748678376343109133579576343293064377776398516971636847208316655106403801083837684459805257349759409867997099268207482319504426282052102265931859850855961235869944575431599532539172256873598081876689477275585725439751637334439465020890360437201218240026095336900400166534538356185880576754990430750067744127826243509769260753239426086694430558111195916259860521493771312813429489267445734211805683486895230011976424123988050917943159375788617201723743018579504338575713213281246164260306467179820630683230514770397673648884327855664632951212885654772809535724388961812819104358876369397305441464910075407389223665437081211357810655817462131383629159505142608624486020371799369646611818616391908137641902756664758424709923647285078058686891052982874845422957879199784946696017559676497149711082693271534125864697132498487568725088192611306449272700483395505262559044553926441959351231354754746560761830998737573059134575424582734987608367333756354172473599176556123496344459027370028056643902035185656985976174538463443406407462784291865790571125292458854061249465293299037477393878604656825407005256380111612956516589421519687060350480516682289975926745313912963626834963620031040813512565414596632000195743154808370470194408854948630913342031216305139849969406511670167143317823660671176965640239617033025018755378972555635793898604267529362108355123392773701911471682070525825878218686291820194256211733254995303781085502495732317767668067353127017465869847740928083318989626941058585811177379544215325148076181335077369867654493669325146820238960558119533823048234011936054061183271311005165430208020144314871725047347259028767362537133584334646654656051402500055641437788336313176467566911020144940512031814285854794205472546486453467369067012651285787006009609676396415568119884580937465668634196331040630577170842697280885773105515781246527461090168636125993194959723118172674620226598657769384571036375497857717281059740396744452983775848271623642997811422166648535084471217918311412033884177771706344864746026104640126502257568878464723378899247089877528005566110400591299250164233567204466794843982834694585737337595022113599821201102175023919305162464943471377241734179776953257551509539222368144181626180692956573203165591065336005128538769065619643900894247264138453309694155432713459635877387894171326362540203939473180427541456325309869109792640489018149928267555184673701751369006640164566635318727929989908726265224380773870870717773319892799478864865405439104074702972628037073535013594244096826916530202464398127188878791426175732543935441913704845481372118111392369758499214133367983977483779013081946320322650014516815807554341398377717898225746015724559022912401339015551882531292775045622892627938133475105801480192715529568760015206831819381718617976162072218786011212627729703102557374482519504642486975112460125614902887413969801856132572541192298986898667099713150627143929660799763898466600133160965592943996216434584915439354534674145242741123043792960485242520266312678899906235692052157465426303935969065139975016044769394399369952937246748420845528101594504670055967365717463575508952005530664089234322375650183153596610874253078513820219500946923078513120525450619405508923126937348074673839434666626771523904672242550777545165225455820060468211441538351827853912824609027503142327806177960760838052774898376474693429655773951230715530710814994651946033500448239144797396417495811072782207360873111439294748065416385312852996584504953456123043782716659712489785821497568217173687420496888454382477239875520328407120882477112480609823978892583699114874669207348936159832854793614595545771818611731694827430269839966763162337804390152772819594088129742908247212853733925528698637319745970961519994934463033586345017443314044257826483558035799019176496332859587735138598257515308409453711011025732011107056446202724501085260206754203466211593936318635099669328940330060836510494889290204790396230953310881891781296261750708374468989188322087098514325906085388185530239002871085418827435509247321383707888900584579780662234452373645203552478246664043933468056163524628991099103978557204550672510940411905822601450122121111909531473848234785688193950024150403945397955097339059136319334006062159960150444666536994787588291389950134540198774844051252129965870607258658289373911537450103054240330490144223096665393193209010160884285497114173913659334061748866521066942456290612067119030667477445810442954873138413841260944522992850324274248659008976490722258129284304074382998804029147058549753292490776969451307449792451045201933435844806572020812077695830270833094920180407589280712082130960286034606497423061087791646297880966264465136450260225269660209050691689326071927886462005907498990079977055470435227187803741855143644567299921988650256808768949592875093196394019937298259254579367711323766999577940532704656044469615237568358758582447192931656183930185089647193253231376685276223288533517494251822700113869191256657450741713423160804817460902486757460699465502075626927028455273526059252243953786012579554395174854176111306095344053402209808100946517518839292498256688330739753549769042541364164441446066666114867927310935760737885359505700789000910655932076262983453207850622663727099132720077467240118312773469971674103667677749958184510325963644528010837645942005165989725473049409474562799003034516811104593511138499264561959587131161520214375383185741813462616652328154117647817446288961642083026492158201198286283915240960366422010437454696861441853732266969653479924361407994294070152363268228146617076928627576907510812527043274263460003315816378221564218960909518229177461093447584246492404336691724011252883479740405393268817588278593853875306761195635760908466230208518980365092553368056681953612444857351328769017726684870303760005406603079956258393078480898461077669375460149406771561676286120247175603459476008617086341152967558715870442301954518676659070425888940674552458885569175775037124371650145938469063331570154413545529967915889394080555457108628505493145439935934636717305220035133488139230656588542112538583057882760455103681876149874043890545649252875640444412307962658700468777011409856361391626970201608058716560283286040700339184503005580788565621773347412472540902711169012695978158106196003104197238372486095713045730625262069879846468640212589875863685392547353675824935271596139710502206044226988336477600377935853911920154617299281929898451356414307625048693862140124272254377171976344335957184930394945784147792092556358022222469398155885564877395112545456572845223775595233841759382769613847478764859908698353088781001711196535609903501374089342059519534198318372285873226710243160275470671039008309075188995945044464308593991019788075846711862180806076108861236227085752262482093142020946779749338543616684765891784694387250275007747696679214777186095304033831743666378794729842981498395243644143240417469008019845200561472067610262481829259239511442168151993787515141128337790474057984179192525475551636103455110384946321817124326948063880284331009369194359263357905482118057209664613265997873465849114902453109474534553027650490523910248968010377492298836199473830817546787649364004346419909551215161611271290681662325378573836508896504084521687246062786782451064413426368849330597378164573365636075341427262575731703328825181255049050111596699953133660346225919457894257468966482844919223497247076330429660356527209090595019954802481204655269894991035681168869700015391790873773516856178532620031636489000057720219657938896875443482363171755665680959709127078799421476617804024066606647799467034576450306185612054677680933115016603219124588617890427113726232366059993859614968053762524939057820309424179304688979289252849557849182630459333589532249437432074468493412404433074780268252722707505498576304070412693671005614909620456593615717930987910303372935069363045043810836688911936579351829598512265581982416412273802200619569226381647981492164526635374804842651724553901085930478887363135503703252510548890751921949652396353289571998065344358232129320415572974479428243724388497312225913460177561629277458226447065925227493924762680526155393122196135969762487666944005978850846585520002713689596743943995791469862016013697308919962631503354890065457203187188062017014996510856747864557937014464529685706186310810873901962327848124892780716562609092688410431035367896169517648768370352337517487694245020058211441700530187941626446023726548534338659034310814251925799655329856578032373873303464095819368084879818573294351284847864008743104844925148360804959090841170884848323045848095581732760183055966402218098883071783084272068951513800252242921633995570840827870708272726613588733352231292344981457641250255631338986271046528015549211518229769582317495145501155517411120935467023826271612151736071572949130795889972273106548631672944821591692887069085151674299438737601495531379048084674403650015141631492694968560858311226073888102653283721601665043768657699956295706386752360696552720933530380538108430689178487496329800443094668305880842040119716775910480786789995462335934613726728657146765418013622966056914869217348442929047361906548520361184220511901079448898528627115035834548038988564676939682821129661024430082887273625569806761378609736610756949093303485892128566336784009790761184883960179535454244849119093529956527204751658685178947536523680812630987461032436948499605912441695998481972242942869930167350871491289153726818287195180959940372379910598389478864422000401166937592781791895934149165331961903211748439576522348322123605969052923074092139040286671986466257496565392764442718433865092736165843708629781546369094189498175154343656972873943545255710894182411693692289971906706841155987681540037768989338690124898690507359183472850558145646619416001850256478722884067711193201788702866689630177246394399417692234821563106796112721294324403155314565480433092028415496528352851124057548592139672399335889284579387980767837654296479849999246898373444073698818439678991360617309992963382860012098103950900559970409654373111488146030212047713733802171485883601781960244258441089503020954540347350347509161900588407202071543860481807104130226198137439283728103474403859185448899589941161132211147451079222938858438569683997399720994537446072611136216005276246704072757588524844539766177401425845031323086868389025788791490425845619115926561579987253694881823467538687493629996758704671441723634498303003942568805064583708783783976668272329267547215154102544003167866760225235403191229543978421648676406219088561400430245904191769229746163798644514003458346013059913287945482353557101322248338981014653014943567119295042626564411506868592579612573993314259343387698275295051863971046408647209851848156125668994372528269571558010238867782940740810538515730179017770680565575881918150754931477272586455947244912614528241280926706084695643197319668514573673036757648056357108800053617579913719635959384115017228794179784964533491533924580118304588977683463563452110320916727871894778058653363164977237463218263365422568906059001926960688301750637378668760216668265422041951249381770796797695687866351942825247001260353560689985868273474198334795706563977926486746647340615187752863335814759952097038803463644863295989930340729835555181055106928131619395007878333415181672376636587465048361041995418904713555440489032685048189886794123765588009583274892908520407789694685887653735126927876623239901942174277545375357963322046782663955640849540486133043576191384209828326938041407862747756453197264098513020695477106671889963502081143584621489582764957822396636003090512579697705258869584727207678651590296644546748700978532473490282988849894818047476307201559737647541048647431124693706664597790741560966956170754659280300723668052092302985973823144047109773892109972331586548341183311102751121245676424906407124416729207057986117959290315818324378943160009382328064689620245712171018365828216623764524031456400701833552303753531233363448131886680700861216982123983589839759504408770817473791512769190822183868484431679020050027106967810962225858171570647037316024576828696633884360082993482840027863302494827217314014111648074646547609313401134623312615597596381932062523109162595555946994026615518009967264479121917338407068737460019460964599258294990914908581884958620158931878947692374772871110570686535388018002318426266357916383054791527819736131547302026319941564971122361342652431711655832617105109399102146870536738404150741150384418152358205434259960764601230188043462687906667063059446198742414982018929845999982445791927860636799345413635199397156782997435016886968261202959901290265369004005016173683207660982661166505082622259542400136309936333460707098609414395052933760142861338880583120421551870426117226461717287904069391579597108349709122763803485499228891052192558781103225252350408629598495741357278399575356572072808080358476477631954782544778458956397058558975780636312734548081235046185694427181949182929868866348461568536787006944703327050880145574783320285245999155844543934553168751255850947229854730366589458016077870986269963538737111117794448199501748630135783399256749525177647830554642110432654773460236394281906298842166183589841550029952239084346539019228860207346002477940782171003764446820398277695150834048232928248413323943008115393499031472089839646377950520883968256402729291190100799491046043282820155692262343089923703618374280217420529482783168743825863060393571053004174424293651517451260525124749795588299489097539507499095956251362039472245784033341834744239782607619106472080901262485891946725149641915524629445204073128485159769656182680033489546177326387832666715639392645946250146750954785042639268819876300766082138082058775621282366010518828208023836500909503567671720214048348542617822553485177995324594016750030489753132158187498575227931087332108755511183145697450592692573299753884201447407649503686872123522893767104980448906355476710399627724333632130426916949876501879221740016384914752097293620080194493492988406654257894863474952480218792016377893386188347414619330538172993128733289023473181147437736429498888750647570761139495382530303681542442680957719363569127939943853982942571803124829976681645732927348820707198611310435450240164915770525688208927110484413365775102269268931035919169073485951581865803925480373783463097163429316973090520807671565226086534682448826258707817869486009792632432550316243947195131587675995300550292445404917961450322790107640638614497033112785398773785644479897566987223877583963033290400904638794251628905530324426110007717969567538383230358042365976635754763723010587861789682867427279961887521942546068099474690511455050438286845075351006015720276725604444893352579351559735802018015697936014375620850940306629457429092830389763832133578864040697597795419113516139715295867735457339045838901584993956955887984903618024066246517364094758180596411652714326845115620283998018332313021499329304250254916137875331882416917630519122984986689131364265492047833765236763141955936012133353271966422800027562911968101872941982025210819605914298271040488875366352971459499208584622632561932312868402941879158987092841939627410330546466768100193365745487848997053967380246652663968171602329199979598846935015242000515230441567491262271532825944352781508491157382563129473295632446738491072507037796702160734057247158274147147967626193619765469545812341972598766470446267447077551365901097399566174753253108602033232018256993732186239034206411204562165548194419065827134708213495825907057521555224705880737365863001397041601716960778566773996352673610751019372315983821556595160592385689518713656073552683488404041122775823404986122251411686655765721294053997458884891684829452438290264425407650504789607149722583695533032942164383460264202172362716694341737246284368935310180680359564663501473669430460188411041834829896378489853600296567385252037752789704169322944007729070538974854465435175097075047575673188663810279838088925382875385858488969160189280505373333294421597765077935871507020023392062110702364449208114004465638568744657808746824186182739344945108180167638676197120592229252244790930270455043578839215361674666035953801378007456999950707876399639714525809186198762198156819049478641934066837189598704255227979877631710733159065053011232554367540161331294991740322540236296319042560215014729147285848271522288821638802869669178677177598617558249283366567778742008221282519142212723729514513530673998287840183303707472409854674174306810237659198007270058367545279008186437507917931780681435280564127633682090606397424164766174369430454645101315247419185399138537910598796340308741401209388747644102418040111601770987528958441032184685639640649461797623131450688034381594652775779091305530389149523798837324044378395274863784511177566020290830428216680017868816600195455244716468779829131948535230226535019095410987212407064559003580157547829472901982213236507089619435052437951281566458576164500981502247896428720840539119677327310190272035708917252467198854127045809012491151191352121116038279041517605904599507324118311221849928018322802089493349747734782089400984013124611107352433632494567788654142080045915816389240141707595818316813364269686842713566827158471656253377879845461569393321195806445815719918091043737094310565833922790781764761172722412090972426927434048871276785433932384171186556374419987087804029985957482489099894549407719854103050163843640830759238764810971764285696050422135659138431665821433367297544586756196269808526375826254386398689685159605888110211044551982003690861320244398325116985888428171166330914268010609111172066118204699985753131171054702696934835527303711444731194843459444013632373028615302849787732807534052584575495697615095758828393771502810426094801634623180780102707195287635848810605997682690055937456887553252669533254689474484666046111844930882667018657842283935623286065294452662157962588711886252605295352431482935812668408705543995468984070121714029582990986947455252351512829416974453842230638472444217610109199226409160363155030104374933855571134684284273115364246698649379084204169106751076277981133760691266209921990953619549284097358534231249006033102938940164549133445639391920823767512779518823074421075955279905782730086142345800523448482924575084984032130743095220935626356740989071731068709308051933984902781718537168269600690199522180176906553464446244564446844358476932553742535458109402228747385866276973844189132445660186004526474204334117000414965258820579381244108675733175211096387009762459138181876984674247527677141819999704198799789408199501671389689526444777786983121083925415381281412898806472189152340451305078149327447506498541452109829785213203177767439608617477510173644288912532140795296359479095446690556867306562233617045499656044141503770070834125927364191799655986902885479932045176637503379410719780904861769424116241209368646919400966805821552004243227254449394737747609590936484328930267594937555974193339544453446806922779523565474990379144240606163962779031638697528777016793560137357623714952065172273519464885378290809236626001288100273145912462031369073534802818605327034695466027495625835291636607701775836106561289734500317139032870573510892427056023334350118660873961840143346942623857165846476318911459188075671427611108281118952993948598744226340355074420934210797342770931713221726875108241216857989942893408216932868885809557797534331830911070384838344963338560287133826975493238432779916258347215603672674261925030872405205440182838652055482672202623034764094573745852243696223748287059382821081192466524056250746078811320448164847707786331935756130029614499125392012250744824541316106746683532692026261860104104358231130291243587210868632696046958698722186846522602955707961343915340252930516541239245879729997279725502774765432282482337088474641899145822864442542313314148160924367803651537150727906534788368249584022575652584213625374825837959200374945596917156095193232953917622007593158580040936103396508371986596967649342235366964111988660557998066327294612068554709205474777705666804382188817127312071770657134561381180034280658963376916456464092194071434105525826048991825538457397241788977100311589447665024393822434671294345886738965951353437515037171894368684806383831872895432595704855221536960940291243460559766771443753363772560365868940384527300967464627893532102195860369211292717081425569169277686767015803497970914246286579452107126280198222574425958451219645908620073672129811026405841766951326863370557529310617917164290072550568505165331536981340046432315128675408505932798786060514288101857495102988748281787840359356192935221167807108792171921512032890448657142860743206952597039326401030411191674664486573040577142051104245696277488156838086939950824338502155480047419948239850048283791832399858390693922532415138230682654607403177741324531307470697202306775753102536334127282864686219277963473916504292162729003417612807771892779256159437327933215416735761327763138182791080699716843519820741368968885282410331845337066305216725814683770554574286897280600776498448031888884562722278372559877803669327017041504251700726746556252836096880299521200480748853690894083093512359898233008365118153179254493532898655223750210100359160079666065815171224261520095322786728514756697780126283029587839808706296283372281335577760271010437135823759567239365121759101814217623578275424194892754139513719119666104454170795509203236811938555154731238879422463385450340488821944289998229853074409261169986365996405020569625357215076920175743306632751846902133533204289565860087203422130203563145460629682898498806546346983301111677638030080298158284546692873786685719166341035554229717742652464788089229495897477856474837357387260078170341349866520926912554184048075995934480998630178734254576967282516666586793108549583813265739840670842161578042627332723293577486804016474246806353103251696399774590654094095589914549375272056601158549641935523726369297186251251778778565925424145975778842276653150787681136447303663955667119594431399332917788416105845866689309219366319525347127194547878681176774882585268092088487572117719165073036960973267213617282036299494114264250463387523128262143607388856542360950025442391675259306252704819854127634252435048451665549387866148799457355349571772563982912976781847325574537977552838816565020706103548130750821119089795604615863885834834056399138709120346000115465354277714165344671902853478293190091586865082819363786164182072146887247538729191768054502384276936184475332044009588366699692335391564813866649478847897507782289865142586056965793884349135503974869088418964187061652929575143614580838258451085808986924817819870568718222903730779053229153850866775888530492571922957186383583341021316594870329813580718360287930551473063509764969461097104002023462650934382542977249412077880987497362471132066304626152647353471870841827801880614134594267322343010035754144448772329903509820583860259637488464141908900730066503627303223720216847765579125510476287103996939136444346006747447097943460896776911265038249419561981429471946911520160707370024260908321278831763864138890575911617341250299078125610241789385554411461832802791774173133745643616099890963715204192413553942063738116378982519389824581212170183228108616567948450598935268082484264432691583423828010410054979778463472678235099375539855401414758839501362119764871441693818413627350997983196774300732741568239308777474442727237603236131017499377295567208775122949552580854480696627622568083855863548620363552524427114239141207746071889388537394601997332636827770474259564514563281092341794045873829351330932308626036262837372208076888566411719662410576644353363336130565483666418276993238956874411647069367260118195698661678945428879947479610555668357379311569178004792520135586575913901732964014639356901676606914350029502753509478880932942887361805438051172986350926495711776267370503430146934993607470948037203016550243065676151976645704936189260616544107352393911910380274825275436668087458415971467679212599198210571950255328968680339477600722228654470030917283782776327803158877961828721503703376593437797769806425848086021761625472886339867992622308882716772775584031121395746086422302817478905217802650470707078510667674872375781764726603870326767014729039732841055280800106019716970249751153718864615152930790725057305838650637636168530337449566434356909224941426058976026113625161407541313079013041834715061384502838110515822904343388353428093847013006269777018038715505727613487504932850438233725643836388343107242314624945285336424335106744568852729832848741492703520348908909950258656005272872453243275084995322431181484893221151803434311184934216385867307549571807007531394936703886538486072928895223013103604517319323576845077338534473275336779289757168365663292418693732082555825284619763299218008086332306731053624986379675480454213795326647698415042169578834781157225768197182809862005963002966163555609694910118748218290095746218560962765791527986414001180230163319352283887974963106015060927633346526446785829888830517582679980752831580919090579413406128335215448404993439770902564922531770946282300338340234133662176480516084706983095308486582383041538916434929279768337313062912714074567282302979769733921477325535622904253418829550643233951276305392879594845011405858510107426515581570100220871573436045975465211943814002378168991069530741712949158020947713680862503450104360539661864047028738747385757996600585991423151845809696942311049008548118087614872412090461937218857060763295836316456264103706244032477899816094383008878288262065833072019425738527882482175182068630929618101957516272820970416175813886828125054475621106585277567963651223496280805247834164284028807837848537378896330144806608554698971762016564051156149019167907542387219702337449001000538394217266799614516571673631070444674786400604597192524127687459118520715400962048809216222320460862009638944513762324616146291822986682705824195993850758734476320332939048805560049375882341343112463090064570005263188743050530244934805352782358772553528473309664610460318698421411338557998885554425641110969807706155430508179196398256607104773704668256280006681605982986101232008401373241274796075696920204184333658013023710902637292762732094441568622359833326928488648008975730837178614088918515033998936487117239302614637914877189972563929144766263068363065526072998068629330975390576625816129779438674959009264382876719995163007389229195240664978308706362081441617017814144574138377186196516492393799526711075842153173703958788712329479981936406833980010621995812821384885178346113714575002269454925469627323619143131326360299037928674109334696278608234060922723762808338501362378690544159964620946933879578167155222007652769620720720836995147173544672256814344992165577615852524010964581033127271368146625758212617911055917303894344249530263466616651817661317391692323606504112718270290934968017041263306687029564772435358869852369981161224051041104632003237292768207289199374372042079948644922064767520908322052120223109424258013053597284447951098101171737602543505120083607009471199767663807153395555039491677522689518550466421639580630001658142432003502341419396438413911444422965571556074785095745371338682129927073932212977736236565188998201132344314748713980635299398619398044574087893251235468627016540154838005376031667893518003311784277675347352052199569302917096192478174727834712207076782153569938861946036422263534511649456110346851588590420104635352298873087148333587430465083813584301623244375939379896743835411392540409831618751377307268235279534619787495327440758681625636114341216846204363383085884040767000395633086922822316414865267624608466431220522196138455003718945785032021214041351576736273863817128635866075014480879493073430637760082876341025086542378549075822901405144358797811470888700722350902095724967827186812540691755421182735037032340277780418931726563500643428416742216396568188368398278211602058420032872353148099600304859811042037047437964606626875100653662059034774882988278881902288156721499984807883853196238693228089682997764077663587710902511042026481669804613140314548223318820173320364173645678704258697671623338868410941462930892813878683911323941866026076138717578786250618580565917391795795004669680242214646952709989281456700566141872268500786811618998213025387296442983902295605179418237964950153104882863893232242438524031502491671076410166773575438107604635533672949262267653431679184097284494678337122073040281178269250355273920023489611936268511649109512723793249529582333445534553967527245768141654178926835006059469575646110389996273547619204410691632838757432304594169816915676860752991387911337480426917410981442767859348732037512422570249554529421938232105040121945793734330048701888222267572925069622612464205261682587670147838201059924942069613063273666439878839630951470603928519640521517563355557726490340211250602904739025479506939701783168221309413127924884213317655547613616338143274414741039325471381448005740301896613413559571020143075750425414341097044221904791327141244125921240641903132090718276210939030118007402018326781778749804786693107399601805452717482874700731589611172077904047606707228649415010156644726203916697597025298804413302805149834464778101439603915926216879628687826941787452958361592860879347718528480208818278961143817429762170174174673008635030194524008122817070376328130394987680066878112902018944698266768237235932133815024635957531461539061588909749108977517739442593940878867400166704147295838766805365714917200096860684240980651486666256712129265502512454771492189077066589163803600047905668171850068713415072858596891700144014161030360097281533900839186470699463390935318125192911086781448503238013735510793232179846571108674263274430261506628706569618983579792627525165359721248829683309473458720410687380209599534798033961141456502488302217565330952000680246263704718161870315615966494627690943598083446346591241988722942765396580413003197723117475026611645239254965803192954681175369688865851741366796797223297740177390066325084159726306448426743729113251581928514456581690703862568961193283625814260942013316881161258600944122033328725800451136405594161711300693339387355146998768935670850764724683044047862749550871178739598779129896184519075362780466504724481650129054662073906642578870304346694240699373181373424461787852921101729279881173477323538967699830251028523800183549135913591292866475756772563087619737211890359712216845037463418559700196231860973526775614893648994104589475081663299277413860672881044541850337055373009926635750042679600647713945862379467670217443736406117642551464862799456079668360357158687068627052175339613027893310833556776252459803211691588057824684149792635445909352225784537632047251957342681469358620350858678240588718305153375320979656728288947380926266820138325937917179821957654558149754189846830834595601356904702493266590880249669071976655153516950410747549818283573756625079708975426881110175274573510975056643889023096714832624036988124161838134327687290174455810442012683840347891707601541551278583803294974280660414712627574384937051162278566533381153923220481729334201939122188667884881729373887373650504900746732243093144142148638229828218193708965663679003279476293171639927369071208437709182328911038305150280741307650211747977095522600239655387843086842256739097864618152263104688599660010308355713287856887220331805786281996837354350823224081717778921904779655918676901213432043228738250658100045577552627379870044128309549201037061625248687555537138067527569942460882412551884675953078679542660098271139182577107263292067452684274382433213982246898326057615488903278434970429451443346952965073076051611107827469000303639577764458938291125103312260089299349191361504468648031409871259102721808442199044173128485550949212851158206569782135967247405548761606227121771020881426653101427417892241536231936204560454998751497850954124386726346328203939390726277859501962356972987277728240670911566242907378151793679856219282865948334250099020302618634618298023934356875281598112257110624627608465225758796132810628691557268258900412788852576056335286454494151337494635707834172888413225901271024697336406847794965529852453166376831965272746125815402929194916962807396285873289821617280664633242474421139201042043735845439376858069799315070801608884666096022102566894454102803746598885760273160618129277585779906701574227877770429684772681456124998316116934882319047081115582716160149168632939043804359429487178020158096614925621234097183771504285989697485844139865867264123897517069632218385072744092399964964990764362589346049331516286138291386905686688073186101236388555026689475981065540174346375322673165745021547043336827147678841387437377452578265502593392288594449186135409698216640683614479803268468687367261703338173817510149640776850521058050779055285543819523315028011569220079272599837446847101712649435057799754832832776607363447602352965161279904483967584839620881979616392830282106361165202979725278973678060412225630839092423325741228671930194294143944358556692973583740741692290896255123214671022470210819800172292862917980628749438506944137980002809989482111629605647711631245754290575478124693613810774169371966746384473683577359756820896379783580331396048032736825735635940270217940990613259037701054325623762993832458052697849275926455031749822920601853903394485685638379982203326156943237892203928825460350256183715629845850747434811236733483560752021514194688490345687859192809413309737216202603755751522991192345079311262299674486928812091837471381697031928064718011395541207870340334441369024560431782877772632660635678408165769375722475476224426690939764632671603801956403105144122663239505533319905697725336079208187065270382520112113310887979362741607685669894412368830940471173867302638256419472032075376162492539232949828460690994434875580687337067990609083028731135768762651382446401599946991468309116926971468890142220039711913632689758808802773865903031220555999786696216482213760987133079845491429718972936757517151408940677478819991116151279583168036589772744852166114419866453440728577879249972637101949848277050841426553115764989772210045725641195727038701347598185839316158925189730453201813805412486597950559585498286065554605480854841470590986007825055704553198402196003733458559823815930326448921631287188374489096515159419579915034126527575808980646308075021115267422640465657750161607625085709621223097560855125820440308555549169778200774833195391073604096865158462358753297982073372628274475208854569390127505037522732051637227443715225363248483113742079463043692306917115322942642388926364587103086653067275275282770240548674526861496001603628754228105569505887912773923263946531210167260871754175659453506707344978609185595129024446691579551651121094169451578317227793520927783267501678660241601620885155221808439804831629569690622741910738531055211769308419983195408426123796387774457717978312192960153908098611530921018649831754524444090695640918566697825239369483919772811513894880968845406033194061074383667865680541203907519679734111248524861255419274042715022692898667933028048292190421998210961549017590861380607587380097340519160578042627325156027077594541765275363886598386896283032725791508544897759276704638480376867218437105551821281274706274895290184026389191917912068093617386907812519929794434319701234847379136187206899103027537905979166250120229922413817594383750582977148625391623740507518313923192329164206549076125165537609783537716064662344772076074553804040765445244245900279227470550077911048314026052365471375816569104663429829158250233582530297434886072005148942224072115236930099588173223114885983005845640070441599075031811472084885428930553266531510654359186338268910516627592443295513900929306858303176693681260836052635357594801928469015998699823256772287309603635265391365675690476783959710177140145594167063581985771577255982374386968794267363168021466249406933367711996167293681280526589478726133759290286527538398630277168962862842839785073450557015908274380999183173342294421773548532565417407813302024129762241939790908559055076020501484496974142765487679355743865239522032558084263853516268682882208978476839889368300105021116879518932130787696721294992552638483148891005779675981401946874946004764074318810287938694072088003215763647323135137065506077982269534096960191691373646243068495979083401117214737709092765509381462045097654764102226817217005022763259487727441490198001915070173039267173312770199893441928780726362740301612143720996075787350514384166223532349717329249513892680312703033999334420237822487843132087550743149493142209131916538470676108376372082451349352543674811191009040334439325637554859111258323086461925047644901988966403571626911373326682308866222216881449329046354500272296116712752335458858962753345745536786556945046757255588564117320590360586157063941143808596299671959083205020009121133691070816223894612161809694602472677813187002556118021271160969370767155159503000442022426718056297107742643289263964189061328677128272458151699153353365000385970134117394867034998003960448160139616154422384425957366957174596376560686496389725508475098817455041111426666510768248165218613191414878622472995405765805152971080424831206077957892753830953543411937167948111711784287057204084839915908294889484566913392106646408568635920816968056231279627162292878148227556554244658154788604356910250991375100729080682467867016126112058051860916263175987604224435117996426320788495767097735253759958023170996362673336970981938536965554761962978428330466644510794765063743259017401137287922019421480525652288876832589469280903685064399549328615783855416727575416678725933264218420744053414635757174291139702472325247528048498351185927999481991847872108445968551108894206336197226388154373214355479732440216437284807733027197862462808150389497025568691837936073708455971388720266071380321816208884455069755046880455475082260290165427802562492563107621354362719795421629468799160407980868620422450879049966301751132015590643741235068403714297365609106639570453044454324158856381313715231936728945478556440714646181594957597064824508125298682852468587078713996580017886536604687931012584622448187868288464091307185280596309289122951281359738029947675696757979617430953982205772063426306338238383879718347480380267331320074510241558490432641006411365684383677537881084540912325590413701268139129236093898167975631073550010078958345752132545707758485918468172727304586666190860048162764728540265276901980565867866651948555955023004537048295925441955975184444198060899810604966085936248856364344256406013035173687647507298026800423704177417652227569941101940901641633278806316480288780513176312237330827066400502713954886933143845293262855700111328636379279173038913431378689936691868635844454265161296941816302975816634567289589379976577786209737418704978342676618804555064159592643852508661567206115586110087281032130901870435636053380471869201099894490685613509664345964692179445298536727483163176953560927122219994950308246355960355772035054869296294216533449158722210721333178815226777454830605654110268546146567022401000257640738607449849578988016242762712506213425180250855474975443934971999065514014474127656621628692091292032279691252068516197091137716080765811962512413680473252882660810998852001910639101913528336359100318469270829769923153926860998267687185037671606222127070025308465621888732193936704719667578588200874036623941895432162314958117557182972415541888655483676226191258864565806312642543874795607982549051728479594393547439843553994668011818427948550028237306320853584917740983610318158508488270253809500476058242988584783446243652604024969338156676546710997309148818908886429239400073248818905995284666497548782177933862824003215806543708459843503341735332135822148433732793747002881311437737720005672661360594280175050375183333208587078939287587380470021978800282688487030225327306767227762022626123925673699718455625507390294534195938507145800646122118453243717288244050555815886823860448437180983883818208708348733658931093615291213317831239282749089992916772546405436996753197316863227505846617658473991763471436186750865162061477124425087617969307283953260973936504268073282558578049140140383271880595745540159015495479515194746375020767476269622869244405141279625896199586660896880407877661102605263229093036030501180489986173678013179681899869039781149084490795645780246427765122545789279250574088995882363815021527272842030116038464682100924673052936693669050584244199198031258088443382176338300433969366380955043763030567820423627037767659972232744710301810597817957836242708383939580605019135210906423175986736397290169813652369939693365007612524706496973761629103564749989106006405765725689691729663547833437555707891321740524575064039457333874358145750692069620515100654494984970393114762269129064154786837160264488886381503168340648086727227628311887225864618611243273030279226943651200037251662546543474982610590021110415888950830845997026884017209666653702682248141079132677716845081466541192058757859911887701959072331509602346953198251512559740931162335615803833758432302883393077697409210244435738127510232761305385184301835039930987956816121597678480080412839630182802353945933748189753632894801137084329293214375439956555479841224282215864250507192563299154173837383257121753425338452497370195094967076428858463305781420293820296727992419867240483222610952252597666832286979110416863613300006625500980339517717566551857209049970666752502077486863661083632156508525438516633682920824588326056126995268463584716894829375828070241528353355709535906364522380730528949145277561921241629634286144626242013015578160513179484872979463474619415469853637604667535314345070738021988152507682062177469427192002803259874134031363814688981913419212783680422205978016449176953953406716044249451196709953299211603179524103149979154256598306732717469153762135076063452632977433755591753065050500531469932920175929803821889605331457223718322606954688396866637899243148570527713412336303457971293886558458470198836454108952840966795121137399913487535340156606145733977528190401523032152312357904540863891900951551878517199592952167565686698826890989827854402424379203265863865414557730999072188349846834528671337825210629911971331575483519875469323732167528353746284711084006976251437631055259000940755682493313671980382865792507703970482911445689440191601873965527606456522814043979034151851556425089825255147471988747764522080357866092660290167178277384093702057120917962740473084225332449572673173380468004559746965707061362924366816760501483030094907688669025822718801784058080512059965060724097146099443804903279101417271985720424368596085588074156309857040042414648946524226239275183883843042888757619830002690059537360051144574206957930178532259972657096453354705237287973358829733292264929112828414256921552366537532205110817957554748631538773012812732538181003413943942574448503319058798842001287137651630481649477723270167098411326289737039117551959541705478479805715569579691752294684642314521702729805170406264210649124160993744270202361244168788042533304682919967578577292410345540611207029648142956946159949039024358905483411114672356572432665815847675316114760577583394602040364230490485634258516566288666980255214378185662168711183490406057568665906340107317709605290853600948540325322983732912403328360049687605449944881370774555940492554624970199809672165990452751661072531370678165533086256008909775804377272316572151900647022517431809147354810752054489019662069367062716571470732205016787484789534973317313045102112325859808123531116033954122444276206354326276078428201393909176676382618823782050925681977918247405643727655032736745802023212622272952642927261071018747392519773940568530851768565437524168964132635781777318673146485860393995755588442841207073929579595042544326105293424191098982966039949522144434545215062386431345541668532070400360306343485249739419777048759432377982576877116745922567178224833254879715261272101397923285150432481504783271465901661787192801280662463962296504052580881992651508025184554215623562942192048192816442540260323920457932225555839153508789410711729927228835312812882634073713024201333861042183950074211469182484407064828766283764507187617593967092641728520744230064903240562095034085421744046315198933513657010958030255625509691062948024557979558624290954691841287763070956611979144391850999211922905949510655633410987851800152143187163053399913924715826381977172737053414406925122834374160793632633132118727190994047444146157548142788493490499317764261303113963425103073452089037459421164377998507812557233913645053058780665179278362442113258679851032668376552776798132830437841701798847408683509735394074665776734158957577403196732281513376727198958762369514743672015797411581163424279517780476382787950947156462801464287461920790148707378951293224902203267761277704055777004596603631656856455441225342593437753109531875855697753505849788203515789644050955894608107366957098344208728519268684274204017720224826266406011667919882185592273538643446837623045889403636654158330145257211756096729583622523878032540709551306708727685917334678211376819507157492934689209128787972377878914521726067099702010130519307348454452130570742271293006942486103598748347058809996845553153871288747988081425624200904055699321768094001307326414428981004097510065419944447268471120237142123854229947648693402493759549999355700398853373669913563116075348955006362941629746409828477538625058320985939533591859681385858017979997437768098491166048470708926546719215309339107761848033022231283684451357498489253086182720237020747816687401921952568985617746997499666269529049543227334443941811395736138835016798101055875391843711802138286557560073748707559345977184078272562357379854644598306229887987332835237946230978467031586726664846412323292801437940606017045149131123593623259797921806644011815212042752211085385548348990693051995566404145185778552508606922530828076952462854624034928835772805842553255595948345038023526760055307498878139067587397007121092788678110050971927618709121335625112761476253978103771273484915621291915345706461524317704911098400528626705692116614073346064561950155821340642046270034365675486785874888677628539730887922064622253316437648145067498814822504005211709171171830026985111852330963013908333228721810637613699298344211759121056282969758089150977346416792512844574361194542691103634089920009182002146143819206325602533897934014217237992297285625894150654787584877695612521705482489089589591162326978020267689019174489014866849030521158286569129103846854486378993882610629346929801157946885198321120590105409100530741625198273510888216346784134426695219688164665489137932933151135128501482262896441588013678831179296962861797917111951194667533301620773569914018035378215735920325914531091342396389219849112393116810376376822152855316035405580316993544798401107143849059003159843542654538582821803396651257528944233553626298271525201925966172249939765691400267724108567936408836544145426818846311591829939485829519717983325935430999170124235793279753920722274009993901738766576853728015654477552786082129605661383215624391168665223364678228772657881191427031884291309077552017748501247601735533949300479005548215784753611905792768666731727983386980639065855307531438241470846891063984633681883087547423580022822584574393499767548411407707863511594732460909037230241060897432776466304191789230212746730264391055255305498525391789159852927497777380297661542894126536423303179415872674407216369466722415319025231334180789471056548539042162509389389593349485940013727078937704053937189553629742892713536554931470177586324835651980277769766987154578471971148065609652841811693103413863502364821973644381560888628422446118599984657191043617297802456996331359289314778823039585453038220344886137916479817548703352644603451032199928708823476488952475366377407925273280203525548600007656990721260934711683372763910415808067092968986035495427914789130289312567058807998180116664241199959905796872162427790130888315654956100780150828806291830199255686878958724208381101722504031885878634484963741017905318361157034686978839075899057427457099142158958846792959594655835979752848892149014748556525859273001660371308049145848124904153950377364569210533556776031987275866288728187379402456502106607277534401751929747166976385180443155592172327414000541397271142631447763956075583809339047113359210930773799108155683313833460411089388842127147618389747932290542481693107854230330381857939660009230315420097511570092039698058641802919882150539768888672833331298385134869228560508583664553658362544209070017203100342787546090238507077543337651240945475220357920099554349994715982182381315112451443985388335669998578763758526713871830259895444377955420751548130134335328314382407254600385271240267138754144224502206363214897011377800511923142138678299264837669715876282820322497782695825028303123529650129973358000431904922551504542453130067787011258872120147077360455018579748220523411629036765075482780076832089191202338465566701776031986853308514149628629195213770825895065123690510832173542922440037936081639786705580660463506669907111192922439770784922864538361661096869091194658248483784279484263699709047644675605862696563606462433364441501019202376777783371741025284140536640884748906106618932381648535698951075687123921590004699118885696752341208739481661970953212232847684728179933805103286467710692923416540785737856789196398571440400690727481250316614715016894999441553902961735837313720932133591875489391829265120202486035156787037384504737260843647023971920754724209706028386342961910729637112322636819354747657461939910241257519927193426980315092292139363993525013849217946455730465881487046601369438700571476181388037949660877382517769150142296212983602508489195155314618441136618721576437525791651965329386191805812050700780925621575540969256495661059899960004267388006950468698376497800165335790653475556630980631115967078175902758172766785697638221434543949617484026990828194487756421683837338220200872896819596961049066121096229746334480603321335771848470817220016834443786955817325172250213110306121657619120058018189691757188685612987145028723798971951332385804634750469056265315700011749899170215879241335680385387964804148961442117042598412902041328319831513557871482141773055095235848038135237698112175906734959013778175280326836036491564395429011217713124276004874233783503318502918513469272910011405863884021879324737447262466489248532352868621411516899743343815530033054118999158330081759945194171780464675386122576291332000206767927717944598125585723228250120338408284500020483757634074936251912306087063099162536422694864198764948817800496610799767560427905644354480962879070731647184784414484709232824883299222029582319352740294886484383940228347632040482137283851778197037892462020365145018118024240112381029698588483206396065018955691819025028255146006357628097806635946011672439710471031741993042055415309894289956688664618300651593127126031217544743252517085325127036635422509695314247729186148022443161023574649585827251864831801521053386037184428439118747419313672716175720721799946722238010256572349347473862501521324536288903558468753861999563218158225050134529428672301164258762985580371476972909396131599924621029495864246331069263116363094642070015069748413119620677629376620895624973847468499005886278664477038016972312942941603556231198693091869658455628378580130808144465724416358142078597743392953639596614854243281337430678334787679546256617560067234856340129356252035486187786532713000732604389252571041522429172534023223742215335690065162326703863443799987518766284385720213635145339315142925376793572595945144760821089134044693626578901888710235225635807548545410965251265410363042961109098018615398685674483575225095031325070584057346411540750084699808476286549260532943611435430509343886158820583966976504402041664518501339054767498003876599868548014103640186459231633254888351565880568441900464425766559785015963735154551060168948027631025125646163823276914536282536303857870145851108816564927979928148379902807158329050903611339519721578596304863967895732305981616233465471556525828680127807289211090605433730016101277284827507963729966535234733184110165039076340494126795979677085617530074119151362017205388718893672993163052625433199772990619247149007888265047082685413066556501152821227123678353515169424394907125015546099243121950743647413308417215056867447491889763195578048484533485713635273323854894169437804362148488379608757191295861246088208904216227404355858693482300867885619492784300971473560032008862373531055102079152106235462009735845882837652903103964815783868185303392323911744304103069430089080269802936513539039234285430332694398090213708581085641036159060760300540815566705270447609779751412968050581519342574159216815686943099022268342458577070286189358960067101489902661419409919051652096463347208385497090881952108663596789342445284839797082904962399259656753641110058923535146506918145037991241642817919185759816020346821152953517122324491955611834730628615010236708560672123228276641467781105699486264495423203749159081043788745700315907835415786826819927420528099493243472726700096168501681884732603333302952733605175332959902458509463001800127981851291600787726958398526559722786505463007181897075653626152025932105404039940128240877247545732604794976975905035661770259357713704469101349861065328567528497203813525921710039720042058559215699643941301458718978624793384590908188073493486267361795500225594402999239978391475527355488012470426240145145628276063254035810089412180684269130201046615092037382779728000902124806293689548049652856389552804150892169561642316324404603313500176365629888916437529767993885723939954173874205250179241360613120930299587646846297950533677297954085992663243943467074420092539459676212157058278619970772861040715717245928799065353493687353781115696472902623836260453144689459166517541285638340297981146154997077619843299079528016587771064718906952254985642822396642922968330523766396157256156138665405369373288977617363191618637426568176793725772386531083262992345073020483040469318146938422146225971582958385111718252887654391217517402366120632071848193248710587757812747107183017628101181871402647432084507209358481693667477415236226797809254616157770256625058473637241520691314371203970293926194569464221890387311240826871232480224545695155775070896593586199197272279599688640968166589902386149202258093018417785993198439549555999251673601445280846546160891116553945404875675612371933752093308724205750489467737606297788110197078069238475213538976474129300997155189411009596250302444146367268163529465180802854535973670306126865521491433433905299904067487844642928230356831057944759107113886900012550189848192454539591221407384527441286378420541081057030028702010185167476512768257152250406813868326395854402191014026955577988030739908047649481802934672791393658190125231185648975779736162665811334647731592226125594017895630717384631041367411098493545584642121852103984936093965444231781695870905208418617449524786527508379362633332927304574426733318946811326708435192505417282775409962363754366611494474292358700479095752525277943358274474094867534808680368918727684213640650284067208550330369841736802136217859488724754971347324598347155942348463007776498785844142009106631789810386598453591870022929141582033204702322015064469190685590799156144634213571288692680562313980939619996453798865988181653735390851823858571852284920515870373120296559695870124635038468806380665252068975639644063532929038463848586619218126729537466028576546293098562988766595109269607408428413170886578218840033626671701789718329531332757791301715010604667008569947643346658851967571579387974129303533460893718021442507295278494705294566468369943427623717497940828809564795086168078181425110997449949329952491084765901581147540747172896200311839360274602916349202998241972137856028803161861019171993786385841057553825905722430682285634585701209261154176585932147932324668300895472399226319174884931989300709221681755955120334710034952894499484717828425108065685020471699209716820350194121131949641927501896210393745991559304655416544583517362297844564925138346708204150502712957810476727392944711779970242007410069548372002651765615465465904659323383835658253181905634002690901248419451643198277948275881353255814121600681141237788077468854738383349917473667915816164323788709267707454097388336332714478247142249925411679880246421923863052450106082474842112165464586446370801772656508994029838790617882741672707746170854424670691677165181114849322944906515145701789694657978112590703723571182011877369098522943077431786826501367474658990217344519529110333307842733049743395767276696450549156780035636896117545528038201930273244255660097653703236972155974833769363934642701576896442608032952671851276392181751786363110696313450993280347262951352422374896537773623477026912757885572740283714514609001371218351832792864905977258833308965758763505426244523770828121648260941342180988172538243964789693316049094539946478409171198182680243193932445884771008928762835357451467935783843455675478650771301123191136879789212890135677251582011632527247284384749318291465067483850066753687762349797179035698812409187400929971844901350742516198843988305314060954611645955028801402402184918270960247780917502104857820157400845843600842421352625508683716117731584169495363148252355204639028950435411588813535044745391605968645454833643994156047534342755757570055447490248526561891016208766413117618986347817771046710603276265847994077803975354741971892350244108550712651060486981726015980791444711114119038594705507831557523064757189608085931648611133186146955037143348879146263658308732736922546311179982599689089657294834184770056536417448504748666049202889501128703827237448875177956053449911678389850042058628227385679130017949733201876720249788240747789312312265761753888818728773974189705997513070811430930809535600520240911895467082345552802298521514195477030262351790198119434781874250871989211483390925414874631527799635628622300524646600576309534639157634172823273721127820974017270033540611303080705344416887296152496834691326173205051634392934059538788222932355513651737361731841994610710837927038695548554660446862260238848162645568772879099516329739094612292092394411814772954026498397122311870889795321007685928239438761187302002099903371999528678473846791231975971641735268353972697212400259124746380083427306286687871721826040359353694044988937879635320527092779007570851035439107714513542233272649472346769170015819199694902553309241064617866915520843501416070147489618937594683634548673164283285791813608046886042695935182316428448537571893947069965095085883751262069113319198206164989124766849817605846614472926104960047765119605123434336620763691428701001487913321274738767867902624976703331406874606847454209260816421709832816141734548135218526471460745835723598096672356919359297334127304546886831271429368406744629982327436200842944519825885930519332474363632182747579915009337382453416855880476437444559950817699837586086567907981946337229155252302842075421147292568907429121516523866447082709790195251594501418617243921230686773471536243294370922671302708012933626785167598524295909343749548593898511146395946451377151011873099359142758997707258249200905745239888472145534776900176515329601210350659479010955066233267188688560526077394031452411717330333119546082537483109140961607401351608779839461766941390228317793027293192338406865497443664365043578840699170662598479229559868736592859201710346156931092701983216859919917783903309600357868171299595283609830430444674468592433373075729786317434680783634992062541125990974355379231703983304044203843511393709318345875848146454722836444926476858320994528251401644194145385818320310705753531984929359518654675847062239092517908084187364647382161921702959670342856357931697301456766863007779465950841054527436448952409903333969162447482324880281192853395742175152249617586928463485771240266329855076269337485203848528566567200413424023226759069212021884043590669419975302072488844175556401994782273541240803591290029701130308810186754389317430893631157313663795457669015749791341989567982536520956522182403331601733381859359960132835795598900051446717450931725744032793800668168822573032806994308785749379872562414447602507635459650986105638154610816377676703419963211972904693986672369146545428626344095520519521604546826511071863457428275356599875083775325500204795333655172884794064070917669747093494191174381461447236397162828213868120202915120043604677172920457110527269912142773297745807980249414836888902424004710983960860767378737339938346921183701738255496067330236411552435821309468185313745918856620965744789248096121982033861202259193741181760920445405545935346001141941022912491112943770625297189293383761220753288816190110632469131707712594504631899496458324062318696199193580009662499549184352970175174899486754607563750610272953093698475930962268912224466093685638315377210184515078239262029959996308994535213524174686744419717765982669445298672384715552322505853050746335519366200819862612019609429886594855231315508180530300077968087139196455458974407637138639915151255276993571842387843226544762824251441097505753214074632526106763257136284410515999630796845652320724838662779930374190312628770362524032305260277214670394061419789918363163117484433366241717134933364287039684390322306258224340637090408538294894096951702302310113718542492318447348003703030338654029726842425442309506987462749268999895392656310132721975885271525680077809726134965503609324838479758961107521282088569202646157812477495221699794425151079211470890638723575117954101208581440227157766643469538616280479778767639078456195815097126470525004623160149419660747509823906810952029125274754270003963961742603680120536287184308316833903250885817328226442752975175744846822658994397343856736222865927752871384740364606091028880313250021278642507997859975543859481762063105957578577772167450214635402705092450931049537068166616387154060605005421013620914940093775828854491124759879891649461524230230227400624398773673052018236209440552838279380889740173488164452574579103264811002420743935890204221904791242972216321534511614758356247983748829602683791504590899881215350391286613882464783965063077189766275436247336116648499613376885861213632548809441687547157092057185292034996195303520853467465553672456221063108008817464277611886829220575145742601575936108440996177775012423637390293038761667946198799737166083528049037395520606107476805812707050909157933138544175432538800384800384150309189084451581872107269348906724797468160203669522151362651078968466857834586945686601560414745850346124025668698583892102003637915116633556686446111262169648651064349579750281194058932655032990169891170758444099830507306125985435701629012577803202749035472983132938678377183838461519875566117631878035784896569140694223397458304827656776630882631543383778584767445819478415981198968336137428036149571525407823309255879011635733825021392287954921841468308617649104557946856990149411628346127174146972433497324203669418126952459365631453163569966465083098181439903541626909366772530096576310856666725419469284066383591840795281787058047553905566156165009207269662698366706455551574949646670529507410742765401208279633996890689867521240921647743122403523277173918837016088324660304750310217894296127080156015780620300292284885312170429113882840501396519403381141483888082031600634874663846986932511438397101523237408067478348545454459932158583090733239490292830801716347820264019680617087160583309342572063505509148534377893386070108771408463026903609966109210307059915612509936686959821667802250828264633275420020179387469424929219568114070604249210395793130508621657173050253531850164893382603062346733662955465818231126794914035560450363467259681757937878477389176249901919344527019039575697663526970336646885831120744821404492892817503444657279282294995141683485970630337937945831833765207499007201529233088147580660133852840546252032730581494115432219413249148453777992766618539495626123925578478762005695256408846443501246327575104324221385363893937393413994387681130456701505560060939120848060714403935971130648464293557704752913603290414220923922768933133365697155443989928557322640861054047408796747847177664588040548738034398707241146127327386542374709854397403775062401077024915307745842877813364344903196015777702883216693144876146740900681328706554099114598883797089179236019554430904990390585453232634411975022831439417306486199774690119721661564143603756042924837352141180229355974163702721740322958470445508446664940533197823365537985006283523222418423568969003650719772707212245640009577623835612525987725397558940839182487570628242284979797410197072259980664416740214852744668707336274759844069308322519025387078327217171412560282859578752120569195845368028682478463226732390188765349940633585940886139312277247022408316444756908925068986947394694401810951573594506612882482083253402035127716960807772680364942826193294527392655484633984364473718522537015310820427207751937590097562217259117969250425149064934483069414023434092755046046245608748765993127451881459752797388904061759882846915533877919485498211414292784164534872113895259992563768114356707175837563676607694151425615470445682146104189667696520839246025662828494475755744932243562363092332788695021350353673179309625133534536711089183430549026084429856904073208028931862264872301164680737423490547269569168885744658022318482926821447661975794480234413134225443304984536047065979393515444004718556491844042717022254301079570524256141499366734383668597895276286842089665319787217191649596194882330794322836251728734723152639209347564657501876432650682859343230096045628408852094387741418863872062713458687611083353832035167529712854964946239205190050465045382390869471450902130120874499383604702846776021682026825405185520279156213961191106287044567930745114748868071472557620603300058758938448470388064598841836287235739357266696368467214478978644955635685108431885685527270511283189851752906331224676338455986188618659420902231304640906362650234929968994505941776101636069499443047511827735258478572058634658679969923112173062207072256248858341734029245172626270729648376839746107186506874623590747412587920964300386588991194797352358821054385253803168290169984205271106708387176474587790678048242429571135354694734970014294853301350502101365356369788965245159917381356622369890116165755997978162590544594336983041048018674671739864770547231954106133870944738565292080345713896572737486297757014265906659641834072500652974751745716013460780244985635516599945301720972106227506087498851025913603563642776877131991152452496321712751149182950678123753118694525357210308451433613870454020044195152687050015965579062481393766530047735177721886816234738675262508438038242811909493225903356895774670557622274171890598121364821140835155461664657492979122875337284233004736189550471375872105126471216342920226105285782596057254697760236983562695339798667234817578416811181215420193983124959075518287542457085740415125610303807125637648262277582832608988901314376688017539793779989131233458917578913509138265220100271904401574960925104093945512856218556552983499761314993505826187804207777693145191118729923109492993599029103820788731047874100270925367256350494554602075878615242560059094564819377951575122435487051678730700462665621644555417784551914658433561998164462144106292464637976229944231127252377791320007368023216080011419111813032255183510310029857352130613773660408812462808436542915465215472437299202269540965057900258740571015319643262914503638672206893547314766245391244000351711650520217209641452495511465775613054087328624744166497782205826036916841364554763479538170888847065382251065518055959004457546998923879657864784296590009261008096479803799225027680623399021777557198210898956432264375322511969908129539280713346714321359579481819441905519729858373290338902581715157296300655315854036903844136669841339101583509577830150541473671756847193423514065390982076645162122916028845440761950869271029021712672289374102518780672410867474926405047706114667565791517515926049528751372388593026786323887208170993179960814227568077204817143171987731906910670500875840113992478467524437250270536180305322795126609033276332683155061308237874452613031973926710432300172431876945465857104205891418475680156088316972211726728650660935648763624087417161576221967341320906853317429088644606840630919244570701822387782841134654786376790505857237979961955014316112574173972380568902337792600981899551022731456329982338763316419355150326123164773528030989571602893097728482656661994648745301062369092274389866567788863519119708668175565280652746418462035508323723520829070065134990928386611835088680279169020870876738330450327313203247175301267314458806248201562743677014894455533353338304402985345488826080148504702328546840575921207090818940608126231272879613464213421688969884260733775457546670003156659389547961035464539451634587947599840268111250444144497291833542342686963446734487734074818073970288882742210431896699594978720284359505930668195144521893828669708549347964571289931790040355788024828903803107942200339352607591517663834344209763477022292057544648687390950799177316619793236661363183397097321462770749770731388057088938801993972192157341536822257726628696450744196582853497533244180638526764929406555526286424952894611937826818530888881075637317432426670537188373475340714792465479611278641941476443815032555056060117022626659258474970173506737062169951332576741420392276434803169671075639943789116761202413598794119498120780266045074939040424586542522280020295112271822966370573356671839155897329863588839635788221711303080538068573072833386607961628142521880243916521955447199068585673176377255844702905420300796989909031380330936537378642602851736437315241068400122302431594367942244308368623922193300923237670466199703704301642550238291522830508577493491366190112080225928425758611179587911783135210908519440371685799383480439420164782593920609611776810839448398471712055368354204191582018286760965582539388701315666543192543909758693628472741799035069070849569807101965132190414777454256476198909059038325155931694524004657863893438975197573592668227352491614166544181393681806380927771426052332292083625788862161183216326271992890669008253428131375903808388684637273038870951406126199645296324424874911013493286577412516630624675265702009091283319408574974962699094596423959272834259599052152574204661552179949640081386274083394410909494545813390602757233456890562259870860213555367475741052194238583161934973850203109669219482750633603543808955595688543935773486183094897693740747248056355051855548195410451045934087397432044506825935291203858547221708066190613505045969356536768945052292215070991447727065541824696968123246445034219859313853599577528065364863441088525144116210647469663229236382386994869750112825287473237512663592333646902936476722459718206713752635203254018225777311693240740597919878998397510362992347428172369104946138402496076918245621442197449507027887706503729199724626322975776763653235862104395969066052798477193003731847251655949121781737746087173774160833215225538725532957461834090951558223027155793394652527401247614915259097217105610226932269401970250965273710357849612287221475921459641657171153239823492351367463001099792722560153134263091922556179874341782381337955339695498704910980460633015947185296516627261999329745232636035568495176573620468308741407182894529803180908999513945770883799355101102759747706798700912186373546978096248245127333112952562120771075876577537083389317511385299991016357770301592338232328958228491983397755585315276260913642448782422916150845510004327667024844160802587791261760608417077455245948659216851292997905615892983432180122853006169601204632516084221751561628874890715568026740276298956995718403298753940826944438612838053229543363090916234794191860699871202119579500904307624927356460362989073676100900203014291324171727386241019493222591285887278682007201311027924623636533361396981306032212624758928452921915897289955432930765764235962588586219351615464847196228960177884865814099417342520689919936895317701769700076877726083016604824013879521610534413776502065505885976228701432229624362880542041563149086621005041571334370400686973155607363638183966524744803158218416972308385959394986224304442269397615050633310595390592942203422110613626044326890159753138004875597230254426858927050349981141429850289131945732960898921677385191090427626977127428254254099778362817181626695492006414765430636275139921963284645222734533245865972377045503743695926177056886713684694168996810165402556820592073523465974887541746011738296774207029946094843913046633978466912398898784771940160714075016063384407117464292270583262247900941370626195281461136815483163024222533032369168256833574066169398780702822616302005538726608705399002048640704389304789436146566586325903925359003814426231639541695556069551968779075343461359719899814668016376562092620982628222798431065425843769213960999991963892509446118057545808118633417614967165471848179197456718096960472781201857950912684695527283491832541288421588105147674071086762063974443469509466822301996158315129269982848920021960849346140258364238006144302990357464881091850239940340799725268982169873646622388818112968283770727222578366104664826256237879818608323215818277333617026053802120303635942303104551509288524536434092806766384298498616576022236890280717837052320013629406689882691239422055200567561916252483440555920683914960296196891730095216513224739638677800881781942217539690002885940011652200055259938917639648401914115886627837856667057899594432131015961152507029534833492182013587293357533830234160410161467360501949319163087783544524003399276933539585456143519696287830180369814028553919999515173649939234983521818091860404659437798969147446404638416664563425379363147176223750646845032180827212412473605366885907479450058250421328806500928042664850088134850713556088180817962103322558508607649037085029822607441832282872142709106092850777937195170198427699324126810563054145064174580597207159165214957165018616253627452875336277111116870525311492419435594712983869170819491980017949809885298149216343347063012516357427902670620312397862249911961744232631899162115633601773604020607292055682299031783813538703138637390658616432328726951174238346045042335818348665365754582615784382257434926586222443767770882238954809252318499590204782131188607766874042459647590185662623524328402834383605456051101574775495922269377157808876214842349733144486943194246835296406210890764289591697539700368068465762973991742626326646543844085196380200064578532032593406739846226728376492655108579569889831812116052011761164656092028046600872911393408369772526501327985918572585978138272818101959321256491835561133219961971279404107482224762126411788940664950996314454894431165713665983492798372131175466585807001570965888045449296665120191586972948164743474452757813297842875810660342465391303687230228658897049446710304377679789965387407053193659818483000822830427668253269923588990551839661227108566662157196653087928396652820571538301630267610525763915703953324846150574016057375140677205231132710773843792822765627938567514868786779583881402823416581563655177414554292450569840712763104010556762420186739264770782139024429501195633111213916518265167129338805648329805894627890703900838107724627823269557143410603716469970848389188691573521146919314385810137710313539270700845092516986473746120289243349348240859064969846908931637409681202550429457787665399337912983183396766546466798406514635887425293156463996965866202073607959405558807881540464629776785210509980235956151354116384066685665973553292118434653453721904371322129501937568872239818960142793014346287483748558034312451417947476405359842858378058787255289898690302624112321918624711396545309479793046074801133684926766410398442990246567688011489314590146132132555498485519010540910372119869702055874295471731159505218198119077683080450374550340389814791994455579817640950730490213456790827867768436582287018682403729421470996062115564379824369704722059012959482871219942656735095944606275840559023604156973165000243392426178314141672157860903437621693967154425072504782923782097539963961309211526811985487897787912762213299263896537314056577610073377856041416949649361645775746916417412405435968334905382945998697685497324475426769026122051291119971751194218320546385477547758902645890929665427915208101352008475369226578560007415407131429956472813199431907190348724751777151678400848200095756139916772563738368933487781103518203892591435677054057209502459139622541049075145779682020253879765225456511501214715234275974857228367141321719810647162689123687477015893522337486367806505711649740559262397579879664205297112733423852063184269850608313277694680864749330843853922886005506026107967862911971801528389507058295264045698381497468300972914073159418043986596682823404225343453633455904996788581053123616966639846855627476722801577886814617849188786886009387045805726958488653807619112523604296492501937281118532306559670310753538141962249725113524274464579610857893799888680736592444636575655963040708534852440574299156358567159437910154352366690137232570035635079013347304399938060460460612547271095718763740228310579417519432125782028037737747692513178384629018033688209032699943729223861657921328316980605459331724528223728580423766135605673194167353002312295591084797266401384027171511048749132408206889023162444746691969116179842804972458698765617836516711260920264740262773360622807207286281381406350745630251828448330032361928102532024983113027324370771042745791265553753514487259735056474865018437394610410121177047381757602802428133895056719538779224730218625935719891280052295825065978654386365598248960605795567659834078964572089653269633605602353549763373651251271092122498899417872546677422594352097306149197596767020536745222701791166010658427553270426301672453965883289921856619536911511911178351617296475648617126608114403919747533574495416916298949555168495757908464241953889304278968217545001421305699749595111167170113966804233835136450475144124034401081515112487281395563967327850835009721524316748673701525464157888983376932594021377487492850769533624918582792802935112479981480680013872630737817391345399389315200451701730143055073592656125692801620461441402439703408950976014759917601519082098401781574225274028419124083930875748037721088780231831943344376781749243509078369993637111986277626482114978697607583983747825766875994123166285525500816490643745759369904726638368986749415228191740595674168335725376446722483635420315905357906009348167633143161237654182372383328495503453421823556956172308423757039538336185941103383796156006128568543346770155657717823471496441309811002589328790862134836942399028285678611429259878313641359876854307997713106339588181538898946183579191698685563325193065988305312233074824276709039776375443157895357786080306446866832443835695842688078428490166849706126750121900330475010094746203386982685899268690133541307408153848595476690223844996137899307630498637392993581578941109062409496430045227815822239060576569558027791134149988688607326779291087400354165920758807669057150045280329816740461955612545843680892744811347918543877756424296677277154125726864327714913413999765011705367356665300476915685270163812114113228374514495483138545870613258685670009032957701041488233163786288098018906370279171419237450552865122317454179603563983527404233237912776800522877029356715651422479228802626824887159612575465860436524086031074843315224768865944240680626265683480558713767072923917365482310517749873520599319377522566407670042630684004048644481685301003972802744353122816097756405367160056321132616539530918875642702343973440155535495968818052042605941479038196890055263664527761138635063856961455351345576431890076035370045055829406321325154269230913740072462398962757249344222616824506192098206004400553029727127986974471555971476777799644266352676729182494697928989968583322230300037469522680168603244097492869622388268055584894305304307136906715774561863371178703841980743811317525717378874611200838819556958246405271629977321963324753387758188791022672546191938355208486260803803715340556509297224724511551007945681952097988188111111809796582983714472855466381268260930819119063853388095279743389674264811399707382567042894694158303515162534195746175666367131765295413863119802355583150135863287952987585903756810262499360778333689694548784084392769710604781854752397888943834713324964498798491048367551933244719504048713662069933831884728517487382930080677215047737239276095292533069251715386413493098864592344690918029659816784445326163233466191127930725514038746847648932641591424484119662096433144475798034934029759099166649713666269614764349323114155366298660805765178191881899498546178012388969420516174227568933059118283632715763370564408943166827759796531805069761344506390610873031285880683838247612047741507244878492098398017498012513956676531841707484362620245400780185367598926936458708589271972254765183541494446689770549206304461158218902959297599298087534588987695886537353817257856005470490717478610175691726601927019232906553911770366262954794945563219989124703318669903341488111938822958704465249947342002740808222149465912282377108350365148888128401703773034158778194912561862107125578503956825127873517218639380098848579111879432894907294097732586674627690004391801612781323028033420374728544023822022807308783734104734240297471212932362742963930543214547850020544234375109447268932549501789344289001166794181894451425088601756887546582842702099722853383455826544982569409219960395651537070106056672451323283524066297606744182637092147055089923107871411160160393952280178922871303892362912076228532837532709809750062176080145061989841164840042619698999221808241032376452237438772641633750123867705167834900060746799601327018412880570028054654265244828173961840457947299964941924184230471560965525340879896338380636065661342962369525403745212778043615271975618587413275131263727003157081635073412360058616171123464995512423864353689101532595763349411108218376354133257398137261066258941296059777199107835466600323043470351451898802827336056976061610819845684812226278032079696847250348031138164172737387450471532474029000646723494670273048697207082136339163637356722006530440406806929389155540989541586643688631276781857775626992348900371434206050781233349639454807607456678549260156348438675466317534036692550011977912876898471016940940056522252655758532244317400073687239516381915387359906973935014536675888668089497438182680209123234097387883648223077076128540204766567126635761186901905595104151330253919931307229324704622949786501931679529853487166352941301874229693868533360640598729731163578278404649444342989696490643535879357785907152536524576055555878553528087681431462205343445888731120955414612101928499269776679794824569372120328102551698658213848130834161780394026383517289520682823061539731652024999050334556539555275571032888463944737791392867199451567686307486856623940661149083880765038901323015741751137091854318144049291968686557690060832479958272758195650917270341803940198930298823894247377476534714144353035369135892561948176216750618064186297650120089010550245531609364171023512795917274208404731137406311441914812176850798020671922301804491042092493178248277466072089391546015585135410913080766519294362248596794223511921734892159970299582468658001123989424849172162189800519777224634512782782342684405673033151478751097268245569040566050175550355804739036399619623300589108951736172812565765608021286383160068353210227811114537400713705795248095661417013964712844487162428510395420383303459127986642123339166449167369585479186254948120423192575790367641043239063522258647857542320722747349846328480547336837700512443584667895656893045329748463999373557811557647827931960318881562236556711246968148298784380180859724431686995533420993618626659789958304834899929216921346762718202148524811173112720161665015794436908055261158882208028555214156698746018979954902039350542273912475457942308709150461901876947567155054773803785189648174285753675076301981275863745099796799591315955429957550504964506229463180180393065805716540092730573954218795501350975750422689795190376821416375314317813364239918336034020552910685441120091855415588645870036121672358365329552681760327231788041787563681980446611234512673651073095575842928239453339811537843885865110907300634947846559780391384020213418627245981404919957934043741967623160675455949753386239024866933020987924781757770270104078135063336986097923246860260713726576952882617674814500682206066594611282137521738353520478903058585666845408394651433273844226964019613117200790301021792967240888590822204511175605407201921158194860017800683757597977052997648993156084725775724287419093174667405202511282815937038462178849006714727195507940758401589966903432344832382766129599353231769675439504529046664691139996577221619181933479733975428538422551356171089509225212247227473552726197982291900840143504844577121015661315452580937522043434188805834175378080412511532594271851284980035187093191112338977129052811739206615848228807746742377921660312994763825333179569134609412332391567816605215120763229833062909436662296356731004228233088976432039783857682571466232673240005889277410549068682531249545429885113760755028174313205900068752124764065881936658474572866658619910849681634027986385236970710944364842664741213871538899756321252322632230990999256317229357259771684861298475008856508887000948634822830488666113447021393942278480653244614354717161243040858330901188999998515563662963556920018115494439227468094937205180707098694715191513484605483747910191348476722049721938024983686252003928607547711348817587590161496650280071975735813072584854273108081106826233642135631575171520081751438346335032016656393212925685700901681196424152667734479695696639313962635093271805865030241201149639863386533751252668062690825137798762973017902114693709433002838493548597327220115171159026230933718380025337200769770918216075796837230867085167367746387085788028329140377718024182902537153711927124897251041488797170183977464986684759556232334986778507038118257911573145470373395001615623817912111474704476752796906483107715967150985796865141726863439663369343025550409857256384056413601788317239327435063488931739577165107750273560030709869774562777290474963975439557190386208118785655195881139913836931584574162672146701089922146302964740152468183507540347476139548656054917552319730314090398481830142043635166151846710917271192264214956932263170199969641855310031500858729378344476193217261427342566419839200120921388761406040931265067539715213103723737810975210465314916118839762356421428252154339398386257274636885277986922854327676413693836253667496187054867551628230782303073970320958624970168845059728898140221982397685229214912653156413577059897683081777058464888129967703119062730927417896831317907199807247042544859306443191018803890792738160894382306285103721459535569982961358024513336296782673129303039808205887898996818673476801562940691189255293623463420108166350485423685106121093275053312399366484762035800065296125634718859099953286627101529655745988375811924022564066921075733421389288407953177751774119313623178799578092813208772518243568364842158144462285844595952970237029103904854114374380246453399722046098144948279824332863351528164954912621591021613068869411964703105214604295916036550720414459123322806142543205812917983702539635983226927948231277372260054615029147652644522507244650300144287909450462522106767036061731559767317900995830928542544409403437691383066297752883237563408670184907991870061474819768209073397598032141435289704856145388408908049065079962089218542227340125494787358674252512539738413762721925445321713336296190417024481683794848655452427518554701649826479069999151015763702525765305617367181571401471757986820801925149846850089662609682230915282059325034381960886878212266907564907751562832875353941614535102437418868343861780813097626390439514441102865405682575104096535126669379017645686515762428718843882315667587730536747701172625451725635175753678533016256858709697795961975317819957613754328164237062311399821265429437978524388238339832192523005003814339459260797197777461465969204692585539607236407266189206430537474353125689739930460456730224333631681875044713541061662214819310072188014462853252162364517486130658956089222930542074988813603811976686182080752899677968821491577646124195470262184796053087293085534114405357890873709171806304866357010708867799198620293738888476854858345726955086784086541422972523978335698290536916465446629082306901582800246337910293887074800371774566072869263319084525592762107703332119306879096798496826623126921949000014141369856748442679576786891290235439512056145581834839951988138011058651749660752496804354941493179123951777596346701320034143295614332339268378949620600816659588676281307041502462714973780333925069025092163263978845048000474455185670111972096549768832781014074136984315762079671241624874810459850667323875244524652507728536402129754157496399267048506051381847013863513053236631874477784216071161154017313484379065102198585205609957001626409630165944019202167762339491081356854512602383306402326904721087996176408802861843009877656913952413532379145873447595884690898290865819010408760705036165229717114228933130337228670880439841514900445658104973784765711500703734524487082494677731100705694493207487053492944650220374036597353767597248937989385785633427562458077452655676032831762868171502939026042324102504353466094932945624947897005659634842108292312395914575988181997942940809850205179457967268786732966876226980225550854070963129150834015389246256706958673466458545192377784782904782535888785414419137611208835138391578715651661540528562188409710363413387771998246974040772290524252503135572382609091956486575083906716624592793284756643864175898719695082995143001823737218423270573223909709571905562752261369114375434841942219545126302519131322201702861338277680021689386142286275759631696985464049267305965337151918679452849239879439697051536953938431157434114246865524155355704137082109932038703215949673717660200248261938002571837056735958262043040243306150687968437858941839726749501243412995463216048031017440085415664468168297766477702093898240708333085027358502954066081707763599358868623042547639615173870371745977758295493010907924994032329602615000526581280466670721726505653487740393282266839052988039563583505696998205976975879164051563793709692307724535818717171700056648425635570381788515804158988739741352132741908686484037116919805288390864765635023756841217127885382337000611981585909330599972238970461641196339812069268688767250451651286920395872951002911959398361429266419026973465782292127212220538823702091373325009625917802305422796886461361663117563379682575787854995087331497920336961140820332280010588968319093234733331241259448568998892355304639230007022335193880168948885697620240870675104994146892603453823272289165824603289322150903644714785153205956401587181425432046941234965110150010067872707501697499352476792116660039440276694097108926686932421096406424999218228246661470607267064115728321422949556237157255706197086515478153199196136104854109901923554847799428255879575677520322225749556875824401093092358718821773434420970364035444387151351059027139171026186842898850214641255208042893265149220326628686017994630040514246027577128868574288963937710245781946397882490658351138817067620260821207834290688540517180585163334532541985417540260284262105112278745250204077695625928568061317720419280922920076035005584757801346674787192638000379129800620437913700759570090617152720959071416068074714290235058597780090929067916375132233458910097883140342839269615470732140061441080425092506677624733804168774411712913797478370347037990909587818644431367500284673552127191018844699560983519119550718386516280765466202069834767886172369300496611268757722388742547072422218520820230591591880352526440985261189399044403325866014958099553235264313683509110081846379420319042956313007731979667814129660792793028907936382132797444416241429964630709861708131740774144179243158981300916563125417509170442823076373677629382165185850794966454546630987973014228016240879568592910765893150436379877935257566135261132226513844061697305911772018528873436083296937379859836798907538133175139506902181354485715802169809222509306232268498213047961770607318315310654078807833058907138975487484376030915991648395955135123343491852295452154853157757999786811070687582216445701333543391290102539819207134658662920576129988862367206334650286492240269921947456540731843962207809104565500795217934066117643181009457041959271288461229863488118736452926564248975148550486401489835260576627480158063131643671748743758805501559884630391792117729736006188157551143110721074879578993421617683285049424752967565675891868254799743738268276604032034170771477159732981339901359942699792544235117468436392930898031399300091246376351496950207522012650135200083695567810059979525592764921648126787448095925046995841116085925765779333841385283036609273750508171426255418087188451943417196736564238597391447510060773109092632913022504942477707577357110114634796850358173740853617381543522711637252779693642850506121507398756317779974128958075496034917572899529911246443188611423455447631417038906648682718945039038946930372472556190542062733027120019199460061456388090735851428903827465348767726007525780520406198521735949068118989259027887140417627696692181026407833376607951899571177561762699180044585624493767582795254186743247861627401372344977781695652586379913438600518505450380704125794429496149166642731839622041373450151027681475437587177639863421584969550579378988370768471329026967422226545921570477119895324419340642373217872165681852943863948670248453872585810036311861947374625264363179317352740907196889920358149808202880929796454958015242695589476176335963617980681519951531374453059254571523660317031112066336455671092984520101946273690480866331283166059213167005906597658798399064439492711033216415194701505813509575850813543199807975450242252666028794925446491084558083359638099849852267912065878849734271098300996477326162520058722638475642114880386214140094254677378047656894186127577436462828349970617422166676439256698869553946541739657737034478996246816276267655355065992488682598107808876433743299006861062428292506656261094026122106510454003819357656035576999642716420232907639331862777077935050550809406599394849250311879851175764927247099403854211630799603629383116251089992531349693975939652959728079630213120235713327702609023929681881842290504061373932159199619314020108768125776114651892924693682882449478245655438633504992517673379673268249853934617050080655063430731940266883967606674295778211281017305285457406555790789321947810003977632910974228059531936141501202296430370105425743281092506987528498216148029444018892525857348191590125235761281322948617942879831491904877828998629246182244739939829358713689802185544959403903703115764570353380375999295675013676783774157815167927367724080609720280780059279989998928173958105417564727936885179645279967598486525730355412499202213389711713384480601130474336665119977104969681099830701487986242090818822548140153478016328542280520402734677701321888222031293873339924325780841484489218906790403642939747987362999216391696985192215361131270888873807416966809849687782802182804411184614167339873998592971240692909225523277451860322734211342637818097252865055920567161771762487635411456052734019046381731836447679889056103028994962903408636733082680973235429690925300883200823873840422863622119587045050710501988886738640688653624337442794692141003277080131664493524692102544079730443707901216473590008816295391414575396131138535268908403962532495332672888320975058538348573265142903874944353646540046119921920715637281537814494655103006304788456630121199277318899142408956292043013946980736017901736456092342461429508841989318687175868974785942872541258725169868523696955387718392338344646009494946852159516678240813859072867220210859061486081872404290395991111297676978750001705569832281616380792907439018577791666373777260090864040917683498438965690036337439646983431656151356625051335835040365757730949777648461645006756898989424874062511354768166846718219228840602998747665059924039972935484399298685614358973729777726257013154903801964566894906448328941466932175918620265213381856007955468421327675446706474665504586032049596512945269444806840221504000109085994724241066024328585214180787556038321293608045687406335531705058111294948768944043201847097104933470485798680378060758392126166697998909971960752718886308721196498694604877876054676121251062672723491779269417546051867091588600973939404072439949276978808577058297054219713825880866872148628347840596338314804134037293310802075521280811993206575289475173189000402674073958872422263192358520097338571084821110022335346524523277857190301394220406488944635899287980466365659925681865530711198095110124345613517125320600510743914284917365190171143354449912301365908355616358180009048069943367434531849460627817785334392659604968257155244697723246006351032672531414157437289856436779917124795445124656902438828199895172607616582271729593147939968711706449091581968375402468903458366969419951128237289909853753072828698829833105334875396881989158293709090166268334232057848066811230085074322507681710053876038199549793272890127555016710383987308280566819734999457004664759556786851855101385269609266496824035813580252057398718485041644283138439790267514277516435594746076549148962789764229867157729681688108430548277380964267420343831317592246444907814024913500240580659729439892115524283389527994000366313301357840371327692241456484896773392750601896315944995256995462700219533988899059074065556380715795880630736669166027370008135845967592047997414236383670176551259252402703757126850632554240624143044490350257283372626091156496752381060472209309496856271705562414504059050320485485207495861159308746504727273190105316436151562991939939936428283758491399661154229189922629513748618101234680410344104804526024195813562424733495372234465697628018525766192275303726696923985799403787938701194232915759343156839129853385979797152756959115549915607128578583858432977636987658403749301539184370920992063564693861494467546880301681035103875342947325653432620238442793865438044623415361411473338553862850273056282616477834386812883629796176472009962169666415409662645256726273542241621872050377763365423943656248567083453292420765498457919495430344355080622453382281985745710327043426057232279377551724237003228538141844967046935533891783601496185521037981416462480270298629800551308455431701905955018108015059904524203654768821873471139624494737472801843752444241011314119045350919062529929529677437465154035476105812671333046133284020707601715453931606134761020976428241692241001872913530466892618298387047862476624139603198716840280639503581108495494135549130337631514774012424159562127433563291363324368062863361259508574933501399196189161037334358084565901355037732056827278025709880969511757884111937051602958058875253685434952776599354425312235132255354349616591522814816908069178153707527383162950973744078828864932831121410966524384036361513769823622869052751164110002274265190909229361477524486447800274985273593127240615207441853362575635773776406330087179791967975366343580742484429900464513614119801086008964000422186275780256899997197940108165614594838412484711998724788733463513528661754074437771956867593397935609323260852668615443487271840682888214154957629801528952333437658754322923065406772090456859464044491862406885973936688323898519831118879971518687233201969994740228833384233683164021401971882708816731014556486415117816232461031944463615734680902903301659894238975242676631757923042682220581409385757660533827615165156613696619494905653246364516527056405897268689671833477341734667884813717687197950751405544922584679471012446931613238460511019854423763821190964132193782090273358242666105348683904404447515076322278876913162123445743839142118718253437983025368945316927691917117335998062868554864478537781187378576352380951688981752036331821912670437959306559052953557619864735459854848312768898813586081182480673934134514249543912970404814395429354376861095356326442141462816981536814117487416443596231305674884352354792398779220525122584544016110007673033473312558470735550800926764744176966580270693986397001791272448096881307831041259566350163968700913296959352156650000383574729826324527374603557117467212261988101325698256453700737252631576823770543309936743302497587466879952835198254474047941449647486379309708168166779121148987285511560765304810745785534125024501780426227381861974393838642061363112416858145166786767845451388687935569029220364546059932153041469447405220115670863218155713559144415244606989519371680304693941574270685120807184750628058085969253687595305099962059642497725942752754348310886673185562942042945835469078149468540394963180605442853904328931573460126590217723683802075961419027748429929904865438088938916076541622558793480484406174444485882765582022304825571500665349308954563085075409366594030135812709020127673229665688887693922326736469238144499082126602728003406383245469991587177301361460074049547941160900316917003054264543717507391498809705822079217289720047708333671333764160292734790152190707127990709200659487911327004673944922165921034933781434517917190033072386943265739196413057717757456932422001936734705341396881106140197106787968438235717330268951164858587326988798744818065867033196871120874358570835039395422021057943292900317041717946482674598244910803762586398339753457900184379819763437975216504844787500436543412665553341991659880879668415056532998126567120899855951429340342564144196419236466312570875008698938107149564615903553007332581839063741540528151067399463860768870954929791974016553792103575568414049348106293390691026369149799345834300476420170468866291473964576623337347724278064377537033883769992614207213610230720792415725174278968393351178917582526662161796128363567385939502530615321604365438539296925991790245240125590994472939070601288626125721066337070876717043007951412549472210039015802389579625794918783688578036365149807211391891282220516399763072037474237681230007875393247271789743098665938758916558697555687001090735242986592471240395677775327810235945699484448863096788314398899297797897691252468710793617005463103293378773862965331554117746478863881693389727248952496960714122482438988441991149390895461926356040985759408207289551836204673653897246990716326724169660252503181192611885830524649810105022137465224476933041981887647418405095660419389165039163356870448535399505606585875384738159544874352647424914756979584721041814994026743713153064840160472896047538886493318614595570063821365531370798086146155753326217489051792328151233739351950004487042655085883741162156274109078157010083931543640996864959691040125424842582714733137585960451321154222958555214884044244029185925825154384423072754521804268073721977135212180576093592570722384331879943911634745340865446752350329147839124828870370144773188526466640839581964715163743983221794564741510265236999203158820053036936512718899885753962858131356716383496701074916306824388926783151694944710711055659244122154441613066949843778341174833436086401660614008373534728394882124096812570244067892724923973279670694803204987253645716429437207949641726580617601835096965909580402723504154859913191066961883042715365473227740962713382431101175868076038299335586883355859242150941304781146045478926028922913821901400432499035058661401859527427240062467757649409557615463498000558793573052405781277884202593330474383874121470504433415302671052824376164144477166499442505945287179860880634335954464029201636057703828170840420815429642168561186731813416986661063985693074506211870317876006807693360246263541198597891339571751307980792501297907728591166789949677985878626338643734029128565904901356702369770254021963573264248357007625589591808040315674597806578801973673095726965339721387879590066904802518116193758394205791768794066249927872489055436370667649691504370371088074416869515015123819633785533861798149315620734871948186721127250054633562416343385524657502036493087127377926210462356956230058230182163933263859927185823766616214095568027309688996685729930399934904595258474246766054799748880564593440467068264245637458744296500348983166041757904319026048752729225733567757114875163538917222475346204929697490588628847755408599743995584126336080458820794556158992499290544159357261820764378211889600328240232243758868638282344819149869173393201399788433978653225893895056674306962357145400671664670496890107308107275528397300619417755934147800490403974109568469506541453419022219860546186302475797348902617453684208075939385939261554979216212988909400074829989145500108854480882784948420203744007278123371380077116195479873564271220263449566474780765374449537037236068784040469776624987266237274246216254192556065902483407183855871160983837181050226803730107370875435525267167188673391338732099620123791742851731543482343856510393970911112594650006550289908803269402143245965017005733673110530989641354964665898092329905771894200763083172848587126518932357724464792698572506312140014710702679594004947767360477792385253196524138775637558484624161752153889467911616931166678332760189411279042049245122519792752074973001346114470580413773924661815238594859524053080563014154617290915523829198620666804864071431233064118964212287094431726406271450812248702625606595693850516758759841088972013240699938048778386640023944743568163915431675947146461628482683319268309377035607253212649864321128752019425321540272797094300659014711034694126395757083787006898666583595045118037821564974942707090952011262144058221578938356668069316128525955400378061774779127311778245667034892876889015431060796138454344499387851953438650493383539847031823935810546951531020779878361174394795816454470329413018035312536692292080551232757702079314157409285227563181234947334523047189240772114046055663003551963907599137871680215750873763394823963723851006106833801906860766720013170130106687480595583705004678830415772068542156905268039042924652607194846217016099214436668860121407339848657490231798601460546217531797476637279343227821669339798967228349075019198576107834550530387737980342536674053260788257503028556931036416407165459746134897517052213213011113651950201292494929002722204198829931456717046410119837878056868730353328323147918024271425343438283294032668473780931627021279099709945469127256702833111538541185944636013214276777288880109510882541337982513537458077830094077412041054968749937235768934763723408617644840414281634717521606600706672682729647331964565280215768594676137471090745435838260489683288883255489648140117559814265119422804269687747879943101343608956557895617589330475977882639538757827538186195879135518741357616518372116030408254375467730508772123563260929385061775107872535124107563670680694820739701613288607831459681916840135429122987613996775415468978449642542264072338626454077342394122348936443231255618747167410095045452324054660943229743120568236319768558635952504039562536123608007035943815472946132242878705343602377446835942973732120325237690790808584466882143942294826123473864111748117097755571404957098881999369036115692242923877418764918182168441139016367196073759220925443032783614127720703111902800503580440729196789690677057889992343947506370772816237253365439657028512945840082393955227669817483741690049217792699507687700458269790766183797021054393873614679374881126591447392308392805906773261886575819178302432732569277404940440260412357694163817872655840581551242273629576375460256047810160431155720166057313910493271395749320788484304503457385572166382117123190252404904050944962727158705812640223112988233591036220099463145270494688235825535384810880641408031076962831527625314703609880578256854353579253553505070747955885964664657320309825931539413803060774237731802718496768846994179322062589117965751720379896125487399654523483798131704160710232432013865360741550451263981331189493389114407338635683368686538239123634419814394638947020412818452054698334144395907576190251877623739537584487306501038545855245958648969531810530936523478439971973101082083560122899574287651653319803923191339612243410163050123948992207241082934185462702114177654616260172582851900038012838564720006096956392065371837621598096226058633281885427820261689430603670416886073485405588235705994810154800787195138581641719550729974725486678179071146960075125856117803621816191673634573916490579158762438777295129135084901042268796402903025135688720151392723968283122705802599580804798452723537631490301963814318921732618163726871917268271101785099032107805143639104922620681832196049761855137517247212922912779414298906587545186166490369851650473510793579463874895661896617042725429800206853783948641710135745478319451919296981526999241976461314603856700957977641708214952785562171547964714618863181390566844958454626149645412317041603066349935133697196682911042170721568437265271681375990077790611046147177857616729267807462991613277538256046840824498998639439476862270471466873673792935350794036225012878596333677940041642674882834304330577429472352217074252594410376825978868434767347102728028448377249597630155931637825308203740393373952579529252687284799893153370937322278601695653973611011960253226425187591671770814797449191375104077364428071305571082822846013571558224738551763087844626742008220346765647604725091745603953128440096344395786297349866558065307908729168847039851829119533865368263982412908430398018352082644433408817266777607232511746141053164534450699932309609238348476129552379606258179540733084940656963041115533288416720029941241082548079217451220040796512742657231605361290017831999679168217074115816988023628076004266724369728476731487768958476130744073010826519246386761958639307211453055213777851248431704410056121437278747375144295444279615120283494461079638376414870564030170104612574869474193951230727784831459326955497735036666590987254250506470779702511545257549012524099105746004863934833081257667071988902549086686839534443271935726837046918458891833915527330160712248678592001531969162467906434996313101038645332584141354634413244910696799607867689054657141619573757151186242727783526368805730184803522367943804752837613111951621134707669097149263806667586743260824070121662433760467117984262226065247779652006903402826061721591669219857122022251445450646441028436971918355984921334088972726239938129668453112619199529914942789028935061285081882151510810646132292056876096212242079363523410126568528716948235009176323320079342185354896578053413529058888755522433162879938743806210453463864039834220549517393298022603448430732905561770453949821358951244044460700334227594286114844706047847110789446501289961843228954042706841932059188041066703228201756778730439001844739362712818433514420136739189463091310912418119726550040795581405977784982503633553939140722114160786167292033859405871488797361859681138124250417759072605915370679136410621547055441701657842888223670941498021260513473382143626302640045632661539593328351006869245353160352321396034136125670121762719786506720435702611372460296822247038185909280412758457079067588026657183699790845883118650017277478716500186595617827456612889192864404097352237825279703499735609159186463557991898546841164937330346228968857719650612621905223925191331231067322757223318287176383219488276231817813441149334580165175618202799366003302533683103611218624773924168463262906012531184757548854238924080127809801956307317615800313568922977632584371465322218776167013429931907680995072893955339917377464603723670263060313801301164894732095034113495427836313036855532981975484719116058446179986436638174139245911083636557119016971455793832908975684799857144231490870678477340103284574238671487086160891319544818865099783651702898925546876420183319980702647220112106819109385737607377165531665061799279725652219094368549265623169372393940107140972003601242823825615300719989730363900215093430967345569515454763099992123106924353628879287531590616450176728662535193412332227523530616802959666661185970442822002933001259506415746204017729821056017754947098062410317127620285631913817267057067787663465155029082719983781137466743065224567114309832446553063651013840706555326206639872399158673455943621185176823120688288179540775135020237317990521807742383436552610852246766054659694771466089128380753011378033577296672736144325726473270092535117232605839368248939439807964425013125087485694751906317197101909304275159732711422090862400536358477186819631544516977736780678264786740216608881846809155945139526280043759454041194514284854939910451915462666197583343699245151675193566453650561797340854387054579070713988657845718276806166910503310645171170063376604946734542454335797250300961281561953027261153981496527965660894700120939899694131151995913091223952991486159962895315609556928214327556290990431885981764160210825501088073448275768770379772047599589245203185326428727557614965667477043503994215811776961170992560908756705824611506344174714281965131702503381487633093560413849903935928510670345027447496194572550069074874244274621036608994612143547345626915599463275700248907034337431913730800458051331346449879541333903888773667769716976294788877856126090378829494417478152096817552148382182680886098104610496287301259498565466354147537996307248880899563075870732804220512036963765631614088540276291697592001744471142547862672821756198501890506974401103593621816020543737143786970386453831626579557981580281602101260633015641349159639017125831537133203646582304740550637560842525458891514313403726453407488343648399392622677547425074528336329575294293678342769213857163875801921152764702184450945084032368897652098257697883435872120117135861651093428194455282020934173489878724315485509884323808801139534282970708878031194541020990132879814477671349590403696708169990994150382990033837526078883014335095592555923729901270097337785107827156474036921823241386304531449022677029733992709404557423866309295404308986914499758254884214882396194968963304669157498056169241361674730492292489260375660369811299216631963161628812925870372710252365431957002329608922083403510877752979043075696772815473487366574838552762310106978407984351528081875876827408151284737229223906332451437342194675911801388354091864271596884995386984179136328877039147116827520794963790537918960359595559059549843543294865333080727452698821099520506075720982627779043332396816694912319057514537313634625898418163228669205992939785111686365879664880837009713150235440283412569246508261364100153311521846635581802251901454282131987874766114953862259998963445408226378155045018381098929140980234168456874230656189105368932498583085138624163263353807787007712113749065014809766721347580832134159550151844345371789960786150052107774515291707708714308210045514536299719321240255880377620098931818853610032071879056081883794208490220911310788953211876170952025297460656737069118862262768867688231369708772727239958831336866707729450886090202820538045835427844609063846465670570268120552712988760804679328840938026727031260467583804635859719979126294009492654929098968518410871474608416185035905580924696565569440796667218251934588946527523452121988614270566957730634790429564770147422791405206827884070687124301452505645831568255954114236324004271899797055761265556937835708013133216657738253555905023100431236444025254866310733833993953526994401102174045979336993603191199935236020287601773694186342704619000452440612580893061528823180384492806312816993710479830458369417564494474092549467554046174156080056592475932034497594134080587032749656711768311559979318880711531357222460203376303891693566754763811114552516932143244538294995431290087877134845429445582305121218596369980351425846024185247964083367405917912103545910537694772060423027247681813433701756546740151910444184645952711751401183654986041007966291069934653036271529385594482785013105996354709854167376260612932323159659330034139631323584711906844773473420735825164524235983268603094760066502897822179591955380454837811037521266873544244155306687489254554919583916681873465318113802895677402422180357873357045194528330019391061729257882389271916273678285526412683027583554492873330098909213934102293565248607105371070962400018530339293785223980424410518158862454567538632070991299078777526187525107768433377386413848488528581090579716452987603498239270717790899472995721257561530514016364078837718793621996028792616450320239808572374506240529429757757807520500869121051524160380977424933176784462886787521816183259921155952482633794497264538577152043334341894300035287755588238896759648863800725465095563576124810524640080167467873319537792484543871023674097943130066311986133537667568413177841423703585100045275901447511536680838522666273735249617616875099475548874845244457047417361341402365292007405664496678239925686478098386965055737011358250857899942034797040598295580946683055139882652362346213645919116074461692454051358947679893335005349797659803112530023401349886720831274489760795691838616258807655219237494004984829253155768575809103731243666584818390194842882975279405708006982776201186228934455208991260565961086740357347052893779405382164423558665400426274601154120337337218730761374647805266453383103214204533271470882307194465310740318459404436691188345345310238676529619584575524857789079937001024690740103028263116577891977982381356809793431967198315502148045962821237459330563331288749319487052331201374812720423319263878543484709702715025293105771122911318491465398326883118960713117717664866189753449890638960795553709840215273223802685814088278921806968499151006235479933769719338733739958273767683817905808589908546205046424802270156725791404301209695216487278723115878980920521475971124736022949584915115739134303583991992184936803474918593392532591156871955633602314265672941052987388215882491438536173515546823733603978793354799536909391959714571796109987567056885567573423684966570276618494424950376522370157435064148930509343962887692214114881453442481100202545652722418334022362497007482457596067991707165647924463873488077752955087310533733135518350417932463703767420868076180879435081510641321149041821968362415810916235455061321710968287188264237710203587827760719896495553231653657321586763636099370311002983815470659875779074627677036860735286355416236753897648202098030999713107601563653057607818042921573818262587057234466760793437405775657267541452972703663457206597401410895030752669108106770660868883183969119667734887624208591807554857133285914144379393602328126317233635250815897768082792047288141187451252994791392445274510373445395270227469921744560272861851876275274951970285208640452335174569919599246777667416089846397817620737434760983389985581863094274036371559752122311649489856995228644616119994959464490308836806128028606164818472289845871432490495970865632908519377835125844922321388604008702062630159928842947550207390414886587654581396369401771228482690246374784137017579710733480938445433842664702271036108714928558522944411613865994426189611218142231323842559027040577192717404746485937886650439131139090722349542023716445484047463395100478950227151510179032152768579124528380693590969319716695388853336703578161444442974427447960066655737187578380435505740419422584300693845382811751001597055681510104898403088277127175489052495536297143439789315373444263313110688561758359831470560180415282286721137998726490297881553949575600856590397179076667494608837195155396407427982102601219341170673743765778022031843208276046081926675192198656881552275710468912320658305563525092315797552618265024692158832454178623698877004249065841793984933187549972507326083882481162438461798852840699453366684872707204034318183185884631873509668094026198805850578387659126809407624914915646977250129923609283750753844001263727751309192205975150709740283919216212766464394260878112233897001273950027915459294405291848227081485728313311635173940567272021207392514586981404735568180105568502380854296988801870081396008689984352720784997693374091165131616423432858526921802378342657676532318661079508193445896134757833757357064528187992934388288180167271622846254047012277442777215255247809647744369408289016397692790481067682880400889736357239420832548671501795807791118468035756724731116207193183022609279359558746747412544969646010631418116471999974090156385116419868559347938503185489742818826994417846758123733926669803572455488250681118495655149248724052066730181752913623310632732176702098601967125998583237356041255630991569165029559370176291245908587851583311517590778991646031505836930369923853191898469550607347809822476589550134342889725206426666757885375867015019739349460339624778472857921446119071089980503708180987928580795653579023406007265545737492791712253368343622784045055603394973234883717351887925575184306340594613220785488522643328707631288676469175133765939625730967243238121232266028368628020996010587530478335945512315755716466428961625983323975268340948030271035508786985604428891518840338789171641377941551664351646609126358119868575113598373806462131540334706608293841549661608759844114083354363902630580834345976899364186056440518752851567382152604567550005345202012302909776658013745026087987349960395878578316318399506788904581373127112944333950896284677487759995338653307929620706880333463625366717986299473256310686729361883094247767649235806078831023737782990053885121670553918013863542299835946080477694162572745465387173126132226506981872307300663994074343010288652625580569763255116007319851892006345335437540250688834231482361350536450988824555065646775947576404344447170916957448319364056377068060451247055622611900635598740418922057061748398143799390848648947197856013297945668952369465134939797673537684763631010947156260250346297335343915152299023012592171049019804804398598556187611599981900071161881247948030574124146923488315440196665888101227605015020654605735942136086934092761221543800050428210817488696213945674096797501760842488442503265595705059987072442130664259895195289980468784460877461135368153494504946674617610957935903704014202658293939150363498620417278844645101390432689529409548317006545323000964589960386297694785922392356135426493784231753115419112534538254816537647890361062139088209761872833158334239260960617566172262884773532759942195153273221879638339514215854125197486347672418574752495441694627899397274593304644308384150025944239811874715866929635900046382621188605745340891683685313899705723941112776357263776402381157114982606167130106858642549392405852180603904870349492101363395632078155019529981279856792652783253027112087434150417439811370654616958991508384735253365475474162066652225247364541222453963564927728190655035189242456390567700792579661930571073751243685698629963514428960401044379326079936313317832227216143639861657119012843908028277459274321335477818086405074144714407188872415320793745748651241918312987661193923873976943364411236014467734072316656511695742265099543715268030461267081016702289584266400938184635754305626967376740292175452138971132992612120692713180554658475806493164598557351808225021353592802368348530514181289080863551109031972995961253934565341927410442871236726618728983160879944399654531141539311908094118807005842531306484566355142996419660497026526544896145975934981670545392134735780701057658548832003241662593636826747503358828652380956427191466604620137418337831179899253473177668779031405073079201434664702807422526222799776225176499505938053238755315755284176643632434044664895808580426500395341452915258918391834338974234910201393391855949503158251799854541615580723590535428850641364559012958306047982501195499638410756965840376580955022867524023915785844399530853002867205240531667332443365271028947398573433539479852237649726705906652809102262330580608650377347461603030683075994969304297737481771302498408594538681693633494834299325814398467958536850987506117113267082109297927608475730023947379654689356373290280992837576331511342885865783720143405555547367960109248862196619269324473405324980378912369078696989082445560227069430606478957750892383704235222288139746649527150384829751608024366333279834829623844693646384894581098700209266470582059043467640435679264968345008153790479084450446986256155120664659645490088237177354907430365286418428022895876401899481594159515966950455104602832566482044782413174823374795007515934177886735450382037594751841258116544075232526956209562158879308328779597533139433593483420580677894950769728677919261099800455063168318995829495919613160444952400835151408455751052248410314528736184098627900898053009891443072706724264146823623010571891334193822902191945477978324679025758755357346220288397648526616686410042579311318996745575983947898842240905024176922598639185058281879342625311600344677204755303154346881042452551802264403304497665413405767806868435204526947907417340491164237289700201552243189432628297469055747541471825140125353897796482240026710433318230651728027620977270456494046185815144515147297063893179486023511809664580894705222045909904209638079309710614599881127350656757036206545162354490616409629980887650556488313266395248565309853549301323853169511523512843856403772836880937054383015431822960256992548214835072802622770865046831143983042593490401482573712803631099846086585477021136630361132351854046620714035508972476509935609195868655802580883512789038839071499610126178120527465430319335201918968749867111010157375883578007302597199977510913936046701999525299322040239739933950591293444387579151892849976684743149046747974270967568216715800959901102378182679963485415770147862140225743591376021721981853759580177166086790416031837678777187545152227205732579595378790641942881462078644390182983214015293652120252637553681031771148241990480355898928536173170531475212779324634154060470857224290191065963121276868847708015355457209747783669012877421570474155077578638210698584917211370179422936349866340224156522800021164611673730147468189439059473422312484101519486720994652526558798702958527885383127471964781490933555305157752737387395417374769260405193424731967632844497712872733886116784526401799957137429684725117283769335236630288952780509029820519042105503048726368802018209205473934440946681169914797230886523182377043087844175403540210934693952184917395830375013686085022717978176077058430698361090088937555759140512946737701645474617989416667450070930961409618424780275086821642867790374194297918118482253242605576563950165982488289361008115538436673936625812257648353888567757856004439734715483576035683700101703451720778220040123481509810300052672710386542966475915833434178324355121987295380134219019932326079415935759379307281367397170088101288413117874688332723508775165764460184580193310984828908726278905319350819581335100729780240410733203435310468262299196849709436250841790085502294127674688813127737382825886817401454172930348576825046712477623264893948690476957972363257398105260279846826681007936038833982375891317436759076934873977029830510599088365133979448076400889321289525104883790698871972559654176677413367450175937586288509368119657550288194664560606667378700818675724827593138158483462162303741656514566463458781189345477966323327170153880044833441482017711153348715423022802538451330986436590763865334851718992868078129107290644754828869672211294843062385108804077603581226541540438553205517051177676074070016539596927908699497338126694698391598860257796147105519943775988671070115617046589368429149627956497821812156211544380699533126260529344440069449105342752938188992922440880878861634560065992810055434670074624595077901672279118324247021236396933824075448534495690716681825700608798110163566623335570032306126561047543551618389719971038294550252397245600700796752143146611897780911091019196279461210554499987229242273476810149490369038111745582835229904368771355259768805452074271989239966109782528108418912110963831011567340427410230835817722109102180804385515989774798517246089506750577464105656057500439333758975562514752465205922501361735526659809488792383606302994386995008217962918208006789294267908713333239960856675592082803649535569863803100673765832800603159147227806899971592276263280298083325306823304201351322030265241333469454384379210496682056024271707088013206461064069965340685209343096377912610849755004158348846980238158301840720681469912345199704609615769064623273213069696248873289767865675069052138152731319971676596375967225936168289316841655315323637301748003151249913855099413826728332810659833649692664599410465411079312849309029952513784089301072605926174625498614246308677193416252282117168084914341394463506085087464821005515617245019731662349243060753960514496388575314209037571366520359706881112465413669791078122384445686789522653545844559038853830177724155455874593316484823814239577307545249308912734918630432391917192528623364713427788628490516716766846041834426465230574635332268463589272414022032126767612427096769576458589071828917393009748121631990243518906034460540592145158057966975633523981804742476025271514659413640288465778762986522241176377860849063830722394238962914411973205689354723097126241521832342814743661188692145982747999821863065905273513974969494792469261488619961750383334307601083398716914823215931681249596898115039363878614430546885749743715173545115931210425220441304982395972163933024697379372741905072963120943299750827244936712380469375076323160221895119442170217050751654027504920315420180488401007578480207338678519592697852362001702467346423051924197300884050866046541280498449730851605507835576710558562882883475298695250829176639074087194869664931862997374800370538949231021072399124962508603683250608342082615472552774966420660397604405068907999264851180241615410710323931617986440600233875964566292083356749226361219740246504336828075927111098907974548916722031243450153538524812130077803410339555595485548338757430474251812507703888098951790769305910142689009780013641677671968440007242102657856859463118383756145588612202482783227152479512276586693168960961163932698625428680463990107383206360198374214165246313115718458423288369368255642318194159249603710268248327400977951080054162810370631621290772017598718133624718411115383907877115589365014374868166104479455476965033342300671816317666823861002917956810434711389583119019893192239614976592096563916186558064011958242140100332832180068583714331550200459303240557955763887718964427589236540307518716842148724659643464920282397389055183029322842141580888257339843802455087476500838785512315732203104695401314531777736051530026706678235792824532279495276123364903362188581745868999436469087024651800639357501554918464566649409034336038249491399037889651870719693802576894527600324381910671289981565825534956658337935639681613946155940002452604805338088121031546475367370609678117426940344273390865382965995529406882911430072259365244746961673998735030693253287746338521486595642147015212216050350991411809282674786676011708748066627823601699660188277686980297260035246141605892945686319157030154104782528262970320174234279789926602111475721873740673733680736573769757538898320329804441840085753037417732215220887193499134842252088479556153384636796898772973341718181046398577819402991219064361250573623287610845616305220057380784750951949609102498769613480485745200871725187937513618573940417659418381180693367167299415250952281443100857993382659770679066674461943191679255802427060427761535345815841412665018771313046683608204391394974375935056491568356292412577511952876933559358388111580756229812168655166311149611144590484984790159422229109690917887346468454920035424237322006105959099075787135383367481664752889363021901305735722993234878386666786803751523078071941512280533285129650768120696840101238405716987835681058654082741409042202857498401891475088426151172842001645010112062771308136112506893764582550241494435617108476334756379298475353322848747449553415121127471789671113121573818956120569878192888995682088603328286314816599692617221986444372863247919230402988335584405496836520369742729135513307821441970248643090593963256570368379548591832300036935699968929556379671531980785031963200389835699618534754091648521781596459235915247824712503093483684556493396912199983664527001550345891644967291049439884237132357457619292630429326984899041461529885813325653094486499305210332636331922358318800080050983765834859936652223160491211729956065266814195346081894886756623258326626090417650333125588472752151024801206503878016968421172704652877579628053237142181914679593687083854973644059866591322559138815601894712626593202842280128864470617455457142214080052805998705916826515064898306269258700907703855473591085072350004753404372749501603577974820786569931987665723493009994997695020168292085966887809735440665244956667792201964731347592172322389295273697138070096691246192628825721230798072072357733420242535705904342143784990524867879459159643675234938736455050892261637782859541383852241350413263060223686235662628510884601383708730731426898576894835391759295857287644938561464841860995073742081211610599248712093846447135208513207663934773769672290739029696307637014204134046874678500100026472131142199096556855386793146576765432488419168142340682602168014138283602622451828374920557174982908035636350612168481465221618962524602001907703840638960084298245880972011766701455680510125490951852822825620098107187835391748366250867879860763380996876874180462562021333334923099050668258104139839149928244953278658576544161163887714699748142685846729086562598402846233853534155013242072001745636548413969961974200135213154663697505132936464307039808260808612387372689335782107535686252415573225507454027041555378216331694190426054267996162032122126444293159390054363482372886756508240807784560124825516268931540988648631850688710828963787669182936484528786137833385938056658594234117693895429753162110625072521188051048955114203374575710000741703646767340571300264584532233680182461447140858901828450413439131451589769137396934576639650370236394793679222428102241488887310650212752532228978312917481909311779225730611031261689822263211201863567963010287196069838794182845864633421545104900550393492286681388273796619027197444028350644451825397155362766193066056208231340413484539102408130919914002659955399873616849869436898303860603486680675943651641813498122879549231506054798567086380044174910173188421902438521298984745889970892836160844136065147165738012316621225392419306513414068609052909560551002509672497790281110430012552691978990421125725332155143465003554804493807111804032667490378837860223684227680769955930625867306909337641275742423337150579908056434497676833719422163677532442877542211738977015240864173735042322146980166814800465846657793336820024475360316605112378794711557775751096396676490041486877444689907838899074977821580163541509970606221068217988131460841047664868067177064641114077225621982386718417138098230280580924522780035634047421179280723440339924505364499192962971508315968603058966780248871768001610490297141334640406400013870258811138311379655157243452130313994846855241881361979967244682491075591939802959066503702338435320611830955716844873533348544659608651011731228099787069795264304728016220546088505552898863500968383765391540622393534663406076928447641323125428919486322633711684919909799515093096992453485784708210493166423352847934557936648144621647915707323577428867644680146166213229457364686132623525502420038623466285825338109417323475916369794821725683758044756309736482615891478939849452221433283168167386169990096132509272808665923238258338007149867973300935682085943662385470673093731132588368359644878037225077998180300728584918371290222530087903189218699911570272885543376823677568342695250980798984207086239819535266667672064495545989590894904282442496340916142886096118952502476654192009539806808679028347308760793444175468925817465308117498089546494674153113648788363456499601247893087350148684042479527276904860498385464213988787448634725698243991623308635530927952102983087489118608930472471258087814864926020029413692862327249860295449032456048626889230697688101196484690606165068208881583330315235103984754051063528684047858153919077211747997606285431694891377330394574155349170897515518082136021718761700662716870620550124373401038373336256252762157854761227881384450252638862395413737861554457939034742341048266047900573184886503160930436794960406084620002171468532202107942626669430419407965957267323525760102792581299522605956046649940752990223391534495996210026947614772070892896975704487050444163278329992538050740433487605082794973964617478926802416699725034974403733002258217303266746793816302297696744582359648932126115155171993417584249553152953288491305094220196829003705823950792762638502127620070527021488337592197137708528627590010564099684605887697981979318876899144550139350262966158567624165679979572998180821590262460445744300635107156768055369027334119187101753542625844865184165933926579673192917601351431066176569854051109405702786140885971521154962717344350765027317729671444395870887253729709553482206456544291715576466422707735843843232314364540843309314231527786213049079355459072706332338152378334000321166194161425977993311281494479351139944421412114576618877003886817287314342440030416499567084226667532956082300288323151952895318031853477608569475939259475186103742982639278574828737593493400347276534174967587494509976973816860860787434736103744493993073677996468068835531392619785697848486658990033185828253648214784082797553519495427195615818282371227932475374560958014072546279897152235818734015874282905504431587556709273239948504933490896030237595973833040359414076234816196688848696009471639423205844141249096929630381945800282455020359057188601545192748524958039789354645518134187938734993635113352178449351427893711369530691534192082855644221642652074390828894397867228254927383876440868397475737340320568807641025401066805892931195030902400337798404731354502453141033953647948955078071198295880950300353242710017958861824394233089101575780651766491500259671083103538183530260171345043045350993918088953571675100909987905801084716924987907502803475947227933897546236465490989047634581106765162555862022453329069800365522283080620844500911175993610524313757422246511932952492608265559160547048701916331192550282625472679928878458276412918647624946184675531195779061203095764367188430022775398567389909093061034917853837904451246978360107638050403012472849577746492066258208243579447791557104099201037285981326185683071772313330423049532512758991161048658737649236911346797747093995961320206225489523582915393576314982403931844810644611572650483791078488582320896006820011355957290311841293123378088850246430167148220852885871536162323163693753248452838714715558741690387930280993057687127091644612028378859670966808448915733493169387511221343733456453589452802577673374311132173084103689356060110617410118869360963167496614080089031175535240599133761633791667779654456413750265123245837500869816137792560840137663503836559636588870901304469429046990909870050853899443659906570503212049945070879958661595167194552283666320610266521482064678961084108618704653149789436302802864817864978768264490674208427700786554234453569652132636767282265574738649061692007226729071387031320334380399937090735804272734863323773185617267967465873207682533255296318651237179731290425008899554840317440831689776864890803701455696937176329394192866008142429963343085839889943177927904250553536885108701393418196380251629999459159739880193986844918078750075893645670651105964308454747172403312611041889811556053556649037322443640878618890536911180353716454719197507392694616805613805720616434687711493126119576870141531901908708834615591356065223203310878968226157808630155642239627027886198973479452435158328837282870838101754333280841686762097007908012524080947616300014438378580734991349323926339335311892582069075240481772312004835535764166004632855799740156219344307440684372541230047599550874347839707612734926739521811847750775639821288268698285212545437782518209317831328537953489089551946915557236039628461180935944315756220292570705102757900166393888481263614590638813237271476859045436291041018691579298440601125345218214231938571266398027314098044690129862830968074247312912752313889854336821994958694756802799917115475427770424662193840298949035855179972586246808833501404961973771403328502614804537312639457030656643489063255502723101284398538603234017678066697336775201834847760803119591886488221209462320365461700835314861462597817191966973262223499238107258375233330819711938239405013429497142566336580000405144366593839139456168639100393261881144735426082424578429184500679836808409584239044913462508615322252372688965746663389580040641494371796939657049897809386011331772212381863017119016803788257622290596835538604167177595442258284440915728360415559743547226430165514350846170961962479382415674856151598677410886453785713663177982246160220282699996641196996714983466490608214881068701852046458092863834133262728119872857850362591617662903781892199305310228830805280206864765478479759264725799905361282689938024029306652576269190225024226332029085309195460791716692926476948317273282303046756664252524997017929987644017885646095557141747989628336743078303781166628422691452363460287607632069606975551696509536874007783948198295201626871199787261714682640378719732386845121538372569999448754269145311539905085650338118584075868246393862356910743601200258272089375548037718332719920438684652660983878704883788779032055252005808703281129219815109060368873306147393450633503154022704680580357487165542120333174817296776792726206773996008880861645799357667914433745618903470618781059785575650466929708744652664284973855868085238226738382414011053040416744159050880611222815108671966291401211247544074789425732092948934988376167814466529959797236499536586476524736543022924811554079965297535166960380573738553796943792955330603924740108228828351150047308734516221566869271258757625095544868167101255138464414570569932966396254097678679517208109353826942961357142289935086701904470776945424589456125250456486560479392197266119170851495090561408935784568110597913724165971755748224866410492481822560625338368208202102107513670105473700711944013815868747063273032039568787306314882014727300676073968327956760499183511940861833374151771404096496879310923439735111380877110447367441492433665318904461875254218358416575981879326104921358490644034838540621310312838814927066779975227096325054082346725089888394727430465134687669520055697091421921116178226046217405071574718073740263327578025200478944651572671524982749325661342240513211469971110301503412758887641993282076949783556236157108012489877506202242714467786774650086353789588438338779727369498755763448677466727267987114476836662358637873715214783870813324827321129137903121663096428716868507051306093457260859314791933628587850718467463899918475857914181898391530751402624331211407212889422797741885928556243532822129834568393856223994582058757288910517228252989303503528790978226714312822273196994469180785758140169766720053320736029736207265356090126137026048525591498715719970945036155235447654833894078108735394219805743935182399489515239390831187027091244893801824974542530231266573597569097374863376360306061036597573745463342763035235962996303162660976499686812566437263700337836581526696577965252159340191710336174949263123675363671216482537405256290641749718148529948771669613385808427075281429839667281698847663470072442353965004175910255711652373308294197149618892118956565325717982871455375984229171750328219919939583045939334552807846646210988544383796142441273762683362511754050338887219267288322786209874913686684871835084405560260900915211949855711967766179464408217886170012864632148163950626855447780397704613329286019908265570806034859571879154562677220664361692940830576300913037273522266303294410082466097422824440405558576615976439172316995685790596714074205449790479952170054537436163866016152507648964442092940048714956851160799381732402910216501571835079022251009941627399185387651724466174133863577270461029030219377537884967233099081786927295360925508035728497595793467588187554172784299697271434431885002030131724684431664259986375087850347890087049133035581659208364787227843811728268720061873947738651210860570328769500454372636486818577496564348239635997927013069583039851102288154634962815774880025787934480632761723892518720298154861841404694755017367901018061301165287944642227881785710748972432544443754056361477920970448286476568417464142304984532923393625262704707366773658995383126623235617423617384432117154211112282021819419835523598925352168945013012514295119361835208920765638161680357405910047380663031617067949175265117918061107973284982500464673100006353142280389110758257306737603313596078637682900936742822993740993340883700572214145446850352697061241467708440452261246537069488762891566950620435956564918107280626148498620365067510635440959459550472359841462707304961797207545523298278898115627879399159670035369919216586636871402781809170427808017572611037459664846916326091484986429821103384037088625332665402804486677438205834776765473842319100286274200328887528385554260579254062145430646654422995652447144556322900181544238045251091531939826463588356909227912094099064983045523514519185408032169001684136920681928108430007626188309733957223659959189459340657203323777482561233652583079393041649096099746832986713962177690972633493195551459865574732721938576547511175188792849225841131801291985191625731382422221619303482615373819884478780021070588841990967396138086965049903478684529835392881327135751039910751629100167317112575239675633526316876213612172877714835050516807336430085741142733905625911271260545894047204059355765575041434382544727530439813918696771673603766886765292447174253201478527171497136293969710231772616305369207337791701389463941765355462642312504158895273734498875918894390453047358237171198632859303893870268547125089784739039604455450061438913174297041281657429275571143499740013857840644905769508101646883902297983048333159592292353280886978431474779177568612408385566477660806716640532139107408231994496987901647162519883350333130683175515361134501806961629392548768278537981091747805745992147700739150722207585697911954643416531249615456081324075708266676700247959155555775095229807245329357614746678183298246305217413315792036506068333286238513933373779296742991061317919698222495193210233854540991754311471645195315334735163477855383765357584335203073548428133599873811140528619319046511826341316147966634060592132214918278970927807776972467239450129679315941958024135715104737086566481739630394876705959484434855418346556931484806607509852322013140222863856431933296547234761467117527958648655479135919146398868366877167971387731528984277205359771266355335803187034264373846521995257527415977504839502505124977359440420865253238470111165382430710107425590353146541598989845739095347793214836050900658314314939047670127777868187622919687691540601617249396005341451012577494750817991160703297943273347405535419436499970637276871963026194944840218992316929780996264733385251617921127985093883043123683168122787810014011229418922065718488979729028204799779265928887159276998616597169343550245718600622433143833024556290084586248103266553500151914491970062851336558229466791091692909265771222973518771129539123003090628715929957796570740311890114409244119846904902747517472385381019541182463370123911244394468115370681522580521996409181189949601458008216331110054693726450860473196564972407906515084627385416663538082185064650467705726186073282935384537536094297277651456280347869182214531653764224847498949594896913138942434221025656078591395647104601437804419691556362396021873964557203192296335454499461829404992154389910089254869966595528053380900276433735036760090544188309996292150237067563884594095158314823835831462119081818518816245099371127262493458488885485105989255016197304665910349890793157499790871025032894226321778311720540134441832073178775529667726742909992371937932516089141658332139482831829096005694545651828598112332086325393608716487995624372763672412238805661931190351048233128424794102143668842085678815621539811710641313343219160442572210015786650958895057353881831370985064552214630509048819408102469999430760382592988048126786591372391488287313273851151444889166562611845755105529120370175861444733213820965129136592842901840108377887327221825111604084583378183341080156653306829551288206995421507361439201736780413239801771913709926843979376154973800245102958949584611628156843035135577724562431001689718453239088612980848146674211194246420903844704290787665905005318189479769183860883642697589035000438691888899105538297789810121378485261006661930368455756877529935524979586108307832876399818514181286794391861731807402272000255984544054928747174696219878734979299439875464659887154615871016774851079555733474737715763431408079501272097979751230758500497508749153260031972605229978670052070083959739527933653762878337292653676634799963222220866816207524400194029780241617818650840966364739598299777493596419107385487122365154184704481570713528050694997762478273364024460255496131762986129833779757134184609680765964885123111924473469310339901272595886099225110724598147310901743679272517010575407591684853677814915265742765811585892837841056015799538706053489001912665013419409125619881682316054697171757931828064303570323248569688393208282663105861349851513472877215762310925951008239113260013240776718264903925304863758060888337156836366234143411105853604275616668408216573808639932271862612475622471301743031313334179976558305965966860650461278176314903815455890507883838867132142727528059553127874097477758182855526248575363473997899081451331137010916314856319543595699016592040686979011650137220556328514771838156487042699466451338516867821954760809418612383783372743265626603530502177475661110880699439584814869401396061641805711357807995130131768146887546122808775458733549583022454455098060928794255252862025178985812357416670029237897691744265972247528049245983049022182301823687206345065935516999270336741518543862825539453352696246457453206845676067304841362473655952254441924141307567042266855956014211588548581129349939835719622232718893003189208238046131770428449593314674209307804751914776275546518521637538374800544940461201663011369633043533709429113822218749927739227665452329524681503918673456564238520024841040672830219953419015781094201691853578627157008593743383851586487495045170367111410052857062488220171564304174584931049921261869325940912748253860912151837511641284080575665528343114003852262299870499416899901888071930499670900595716291636984333986668849745747919716934542397230448093789056014788881483979110109153896520546570385124054412681222283748834842717530637239449662810144191054740727120358930764354037953755590492728099798866865448147846369912358848765848405846969024719307682095084476456195469987360257771554461328672335582511293590511622096615443486367452536432104021119482646277536521710981761597043100061099030038609086645805983410799603274973926943360132427737517853572972667600123350297377623461045549908288831088262404777546209894619557454794385439896881645433372654229383060304269357156522156397622440398722545431923535230959717897036650729933104475552054462233560094203997686536965090173898146794410089855358229595186377479169774109776803175375373147796688825644713680524119889816774326923178359278298911253778953145297352095833988915059120584658207570874370176073928088358576748696055543264286974887400213781455382895082330116629504299236212617817280894537332261701672573076733101209864985382427654862560110274180423377301618738250210419478474600816144446386281314164409994472777668071885124026148905798218232252803771582059133960441793007915737543678885835712799202730141602104998028557902131676562904727182166434174405305870562128626936914944441164850063807338571655814322911731346366754440466771334821996972112383666406501341413902020275554912186104698929088811612156968009701512475585644777167671701111898399315800694086031621481925161247098442281479639838006111301303716633516699155251672645464795773542016660487628580748659962934162754169078535525616944401972716760502371330548297437866101885454932109213849954292472181852810797258355633194458419298716385949560430733268851289794778443727914464619548597398989306248943726762753954756837314737439177281290796156161258505102957934035173075034952154098908240611944192688713716514765360273795461281627496330681492371082482755459140061975849165138060611627727267183913906722976396402103194750416460878895408292745177978442213706705189324946694839986658344135155514372975564021821476599084481860491638399706395901700529191682055055898099563460818413808770622398379988285359098665329721321091272969685561844283155227757968314666246834414605823174279427711556367512585489545213803134491743074137554510833690457026694765512049912232806462292439160242353011687300930710312531863500456199996808174038064554917472041528729135429566677050886418752364499374962447696148859382994706357132451168531694987482236460230869073248204548163640221027836309438792261654371096308120720747346049232399430210187362526506515658047777587467760043756830857924759938429655544996190569207697951824000741246768646550332528140774946627685708925007556910084393577238993454650113051447136370317754022315231380418918984860483952451984216379243603919719896051183129049806256028001001707266259870847948824431659995913653476116865463458921896633161941385801766869601836369648361085345695884078631015695633877437378831705520381738734348509511419007264738865835768676008474075890727803933132329264502156115536411723727865129702119401631783205399558197447637702547998087129603078228580988112798376295638179873416995927274158204718687331369475725907388266526988087154654447575058888569136717434173493476016710625524245529679319465181059235082814803655818591483931895637912344143653539488173423128095154465161238806877079345808574716920711337890144153994989783525998304201559064706582158359153681017724001413278344263866251637925051464573579883045574458235258859714081830894641033327498062161699567812771677929337838107276877180279155801133389091855147154599214547378570667141258102719019827605578565835112734128249579817877472826688703586076732726721466464613202165766495298846765982800935412367119933740804119838719363755567450224371695275767078134970636263598188590161634569840019905868872841143013277129065873159002757770768992264613732623420977118602535820754859167138427991743425347623467507469326021496714982387082690137114310926468908629966354376233409493846138844116693451741684753336690928254783638364235561168318175490261641900571388811266681462700318751846771512935385814814209162663588516717421449690693283836603756689179538706969787692624390147475378876253923060159329591176244417483943699430524556950305780679274268580131827638542034841676237583779156537832133771366269017394914627837885821060329889348556031470391097216633028696683482056964965308231190333697870291480037421058233341471372692261858453886328784300508116241993374289285785796773458828498900827794826815335926194248391214130882364002157933941423778476265452408397727562748006749845548614460312084927635582977427782695644105866572778083560878618209473230202826236185038876868370239242801180348845635354131908463583760138444898320434749975283143658808844454717799683335607428229793121073903574494894191097657974361940668547759212188633598876948235230941598630919425730221090562704275310245386810746235380879585899403326813002706220339474898709080574410933439163841890849556688683093819264414989876807013403994105508464469234918436174065248343946439599243036449548506338818080381580703018338341436831767173942838206060096980251237819520666312232480122030050619106725368137135346063146663626031275836989300383609484839642099073978996265757463513074854251930260245290589477566851790424594393373621877065478033277295429011919832144096098786772776620862659424636043328587843779489517298965703856568242440951982760669145794458541928903139305355566832831866593664710815340509087344790064484040268693941901099240438029757737062291603970143771028107596011461179949177239264484767545946677951390691690359528889443269238969204736800764745549898404946358164833760093836953078485797745799038962374225546898837417854021360893262777225146626879994998405041634734694754134092942105560152151899165584938273788124947331020885451329302085579911713784318944695408824553387399602734080218773049981132418090545486528071375260799704427224575547842094302961594939021161359769845411490949696826308046538730931999166316942330438804584430743209174077492581209393269577611514104041484026225235342348807867256117652814160330994585090390359964382464813013466413777781228676845312591938855948907049767496114605289637680615209849888053829002437759585996361747103710170980280083461106994274605705323941295740797895812748316009479570670048544384664824419704716287114203332120957357418299294524442904403705299267170097797239286954405475806400570692285041162495098345903514678695413204295504006389977541209503610410393502449840409231196661517674448366916843148854057705212017530768772162430352833794041443258070196630496649170858404904872902840991614982969707820150422584490882831279629355630200167609569306636110015451051233452210985045980934054772235953030749126096261371774677362262996219330686174660074128797140124247010887710407182261421735540706137792516805263339395645667850907462474331868537371512259578388890567011286948450832665122980350538113814443493622127316134067863701846320969862201390972569374925152714510087528667668804183620585436625785416762430199651738381371143914234282070981395792406863104626255827967966945482413483112239752919924086066216720319031961483476500668543567880632845426096962535076270088667262326187446304377032409481950511247725512320600362742082227805104495985835992545262142024118407008359386165948916050592071076231683685811084110140292945607001684471566072230983996823643695963280589156928332350645832108157903904356759932203648465997065852464420375062765271225337593764273648929495604368136392002821776671932143116385858685019710735346751587284272498952156284431420593378760156976685717029275246006004753297102531709864050189788652718980434986781271655727036853709271400002663232208283864769308522831018492215734314125090168909396473939968540184185436260897254197283600271969782064779986126070811730258467846607327106979703470597266606309973419249963174702624505905617502214247980004598858768177307958633371070520001371060443871225076687713252474016382097847462640769254115248302241762339806336184874444688760625320366310784244804837136829689307040381112119860664768372562255067306461990739200422982694272553919275685223997140177902269438375242491408562511244958174985860408604753101206562095450575655180520311444189100816751572152608485173760698544441558790138675413863180448276019787795021761667785212303137663128667399676484391851868890102961129160446264841212017267769132168313345776782954394013014377734619297497673891904185563530222618907578633706581313048499205657319858456458342069919101453079817389699635463897848397408953843977014909868071456459276957542891999253243666456259133518437456412847436342855071186693805070394882604451019267473220223185211213191406917691528113890468370871194946160939802820624287609180480181520997917237076027463753649081416563822776328685871840585368464520886705545457786999962622268969705034942289636037197305602033764302192544771503085802718537177031303546761650505989560241897569905476626314933912342522217062846904939806297957140183717340109629517228311044191254089164556298793328229506031845879121377891274735046835879660357709036209245611124701704169227672463912328999632596907178983139762624521893355575880797851000994995031057042454999548588920020815453748146766441302078883771509019299717044276529125274256035219716366110202255378823934731914191789112711553660077331114840699526897048217776545122724814024963802482449951797889332100807598706419198653315366760200713819405257413012987301048748592530027544076109360745803959258729622489437351875768611122398420784830263513166681688871451123958109557515309997840119697377357268899577891789178024002105191031300889275321554262414254111227028713570626519528410884705473849430402932849506209740372882909207573426993477227841310574466410857605397011518349196941632755036626027014246451221415287127367275630949136380186396184706251776625003338136204589285526514761285595803671227224139147077703764322364080437042408820405835062136804524516388428248426150821097273983170206841733679207555848300332123823362442095232777480033562205854926598572885553675208900688383614535852817353447978191865540646116836601863544612548267086013941211752005700575741745219948516074997812154035525010199924400851160663794292530343177894854641350189441885407896396248746371601663773668977028944449630836706983284057558742124614895138228435051137766984335525716898100470786003553415922234439334021321143350569729448528056461376204918539867432637385763647584058625781356666812257586243902119617439014059321593170327447890371950565664855004297413355286865391830596452863420912075441175813233201170760116952236426236525860532331189677879988074632280404450105375722271695654324316048358123031336637453147021330357463043283583746388857478830774454616902915685303625322942062628062305488001127621653752876580744275618527756307513592218925140175680781794927552277734781960230218834026685302745380967557110576657808740322844383018331943736457382830631608808566056628256881630029855819212774205142873093184152530295248945956571121080380801453281384930136778573826886655566619376416715608685149064546599224007674124998073926650960632722154935924483078738910239577790922707509980801608088118825256306814810900017185746034448776052714316311533936080783270021532797513874003777999481768117619645300745744078691025722937321565660301149832142918725197510450572665066404316172032869307186686455468537783334629697549881238685563330735327905071928896237953779570265971881878610733520968764199407451800288748050591159225980833615907563036365480088050440479382757288303924827444063633665961190428965431887783311543484298901737346969278030268874235086993394350275192079723108184981853027690136335857959927389411799075217963992695320238094563163592049316875008759607754470054979547139353635512510464775437240041562986446507018213209761557155635169032486380377265839082129765345825644200709397093610825979977362568172872942189882755182597878826053595415099606669393608283426530974290496174113963869604377867398731814865845768358118995322764578790597647533221860517137090209572998398233095300008406854669274697357680516409432494084422940320518495434281189590397328269309422871265445081775717633141290030103138164331218575960387469061641150809297967634304647455514533632600715254762556262716579850733863394614423735801154011067241666544435188883258945985265391735045361668650088575909042938856699054331582525320970003394305644102649307415827072943187946480915808716805556636164312626492321195323572377220620858706104434451972216935937480117849054727734141851573866305833893053996873100332439952956908195447278865655860276237744881617590158138896676444522397115244643722294651047525556063185434504700367374157699772201665764749689983015250719491210080484203832407344492113928024439116315407156461556784862058766212350034506236703382856691105808347791643607721451024931209147800463531127391254514291775572370606651178531084103638740144131272980909175973103827542692005905529448069082263509435544465305296303283134226996569709556067000883320548158049607942502312329440178128236830706532388066227767056465035324307578209584834000182908187227502102576232184969620475406374378364754308010549974756077247478150654581793029881365267776767106319821541936990783379947426098495698450275929831299829683113044476129973340308193618427981332463428866661791533653544940960803988312382897499862381847030583692841011120135601074910302106803180385627123783504398354748307798425734206372371546699067693329785818535789130011846321122453287862284214901015051116486021793702684071529307277601560468658836473794853004076250893622567280012539729780829124416142076818716017471966850972500026915196952501947300089981663849430277895265691457249045228815035865205223845596472928308467191270740321201793590040078346368239029802673980843954762184979183770506634764147494676524565983307729740667264099667722350100638266551266974149908810669944972072339922588814300326890616310017791095519502507474450318959254575133758026900330983407799936861232102217362952612726173425339451578021814668637143918971807133165362207713656050630334216397099000601000266599594207744607782358070746301143001563765539043192624332889916596619756526415374448678076377100084790856120303621674060332467182070949073523431477572027835602532156385928168898194287524760882032793879242948309508989651581380779634580388144934236179346891279845671674516107082906238704166282647296049210750631879377375626275099690519703233010185133346873582102839938716836753099619397018891077922842264082269066538283003935287203981813642969242020650683518599027054055274961840887727239324523746419053482675011921801696240488803794097698930703795089629456844453818391257763939727661056387054892852670104059774276847737175062680479774476137816185171206789582015239255036883890948751963931810902678107093866492181584146091929541402119383333138500046357858700961636425060465218462791669082587591775085798470985530087439852803578914939314804856947236212811921408376817012140384641456456921091406701696248745340454516054511215480850136206545146622373972430134172551271557208317115660014117018406133811265053294349085002397421534945846250559992306445387369709578351134692104705166006074540084426988149979353607270476600619311691649211919365156425462242692282292710359228316865579202068564049244169138766679526102058457847877069636013385771633855998376065038982096154948775551088011502207754745110912193475911433534494814964256612912646633371226946642393961453740707841856892525834000673747634166514056680670696666969163567268782399224568486083968077078308145654335965809814019452855816589478516667000120037183801184034665451962043419381546922255727625632550632014171489406026248340296202446941871450984044837899039546939682397413345543199555713173553815691104239326696503652220081898879075941395782519501717673732310081840256178582081696272120628658642436172931932375938247332535935384218842697528579570764932814639280945111328379092864795431545184895679552810872297949137449217239403516726736292163262465479007903539880508920731234965898383936648559311053979084626472916325363186130335186968712378501942614235279043922299300324846192418787148110322599484964406920757741159110895387302820592441177524176861771989784375822989202267471600588432008044210674592059045427589139050103479620322566675196953507616922841217390458870531171940330794009205834116039849864766741592790302409315283818745451544541722625222445730753153110641990543268130396954507764165137000178468517960992709834124322054128895315808996023301517077410879552196463516182030546516819950156164412921178757277147773394685567426542530427069959987761924363995284555308927562773406578981889426412661401914341103125047213307980035754369115932712054338931589516756660255849518847880932603922316337120032679887694342183628421761523933477048652932259793294308884914825412562614111414682135625681751365835267525492612385109232773089665698282549236306077152381716373853740230392609816630574218674591988660657445507559357907053420163435330626770960303607271500182978337220487722509884857735651931624392140325444848384464076889875298990542004543425586837029221629811075816272319596880801430594562164947547405903580122468077581029033029916923301065720888014416245153427799288468414314990110633726170416268555962649602847519706201324606283951928252298679257696565804252864193014389175625468401758840024816484413010446775885453515149143912283991980592610503406688376208287724816185271477141274115965856600086281385137069893724429861345229991046561125342444945147020160465892229116736777408629180943673209227175641492225478753109421266040695779935763459502327835218244994679925297875739865204082969792865028877350489185055637135870527782626484271641831296185385738429302265759074523635148931354929000629408991787885354381066343916136065657494571408342802032283953895005291208212138315133047780927732925581050812646303241552114324524547300526411013228919107261254701254781839344356774340977712519983394157496043165908477482902317961583687633914847928056310775591889624507873639178694074388579263937818160505458772060572103872616729241347467308215965523875957532385329890458102923034868779586278047772017043315356912947508264018206883496758065954368057386674823088318781079619252603839282201186729473140331740347136277884511111037262763033470249494437256364733425489046498656322298029072115749939382378475078877202649665782584558991818448624720447508851330527835456491906677430469250702759466031941989399716719306074423729683206640065850934820137659042395401848365297518350319953802730372961552028417619187291547856510744399249210766177212923488055276409962880647098818684905162379427681198431060185816211909435691073988733831303495208921142707663350874576327515504890161543461841017054810426390722980878956648873520336565895548886183899122424121581858941224725610846326523173766750477329420137817092114441670778540061359503388562430025741843812560073939620544676984041886526598844613270472356042685361712956178287063815436996403124671755548773531604139505216152017145945222845369177246508893254158947346483971437488290603707632241767391916198447880846967502928926430888431853989557036943509115453956615761051938537824193069415043912957399553194890518589359655386261490405716317299783325720760270563087642208570076926718278135606048431470640884764755847942604160254102224886109812456741492215637966421110534409755599399948803291005766902283835681823396856874603948205598342105963806409796941237329781723595940083880614173650624901508004183170188308881879426914979091442729115487479063929711940064282688555803465770159007657178375456543196258465260505001777316099723645848088970578984013052286429948548121319818410785383679696497521483076217602979670477336497884624440509496950749793876949256504330309030818886402991287083888186871163394535753930262231012906011596409759765738563069689329358847295994536027153633482766068706418529825349714566325803232373380504022825606076986315295323598235588144760094604969352888327455149238798992560325968275674175676183359206263718410722461857061093580534839923690559197431750663637132729049081075671044840685191400787623402902221804893771247948414060576540508145335773525689621605363357377363945236292723145563179412161298443234604146482915348721361294081614949364257663207260077720508538324462042008016192584965905531827608523027785266779247290703240982458724270823870135458529295588804192414935567547193454628367117541128596189699852113096119256206241666448703892068209683833903485484789036955453090035799983431275218595080209158868953322456911173715046125884203185613956416201110818378745639561583132398665114464950676198370714865362431636754141827972394255081488130284650568512562422312730678639884710903843956726902795579051911593987248752739560147916965477779082368783925009134995169958153018598787498528212253847845238502920649311720990704398890790493538464439926308353166237855053780826421513332542903304981460834919369424032793515491777736929011230648986511225554511765188741059402944604046173198796559561977846220190901982703779886856316747070453487564455881335511126836832899081709246860814693610983964870665405585796983520173790661900333401129681346227937950557613733562908723744102361221434311054315902025322237189988079982987511796576299941621595374053809421321040801693285910039458093065549009641861557237670798469017060647407630241379305568778823106968384900303622243687192326376845278719361880173087240226870016070507675866711075944176760934430344928696592466581168910052803572852861132009889068111825107889443428253879231637732406046791322271622097881228531995642767935551167872050588057780528292716462359733164211195123935614818897917632490973808040114042200517275497974358774908884717881841400275490241954597731798920038181521421061951914985715221264080044929866407342968120198650111551386801735136990081441373804405222703734285645280326492265163662128343563996858753041480629426687028660868833622644066348596626526319633506503793385443085523444409614132944889959810167697669158502480400926944463337177056482987229502840793395904214557507383338337683783314817856214668552211359244044462588135698881103045302947798612381925651212249290366727863204236344667225341762681659261021524290131068899406662724961353023002148990807000949971797668247680642555758439792704410663104415220624494766343950779712443478178118484642998659934401881389506087354661995363096184895733294958320079769054257460257855622511593868194519245002704738276014462727647523358728605199940949573781408581195995576432480084507664264760730911951384650996130631038548056818765504925416551456572101576566191835676492418622009678603704517731740545535828287908324605816668704468022903023227414829648240455626016575947888402000864446080957605269743820352848042863366805860797603454363523842505525362930761896666520562461280198771181124043161091616775357262429671878219571656021374816810387353250165563391420778494585563546674685552888199972939946325263371796341050933305235205005004038788433915587426958987706087406340319344813709421186410070409311437304205789081122029251371438946164041081016330313285024295493232394997877002528412787340701255889801988177248376415080845386747324952314201814175327665715386810797109777244662993617338142893636441150067833342065159281708847917081109767154197187241802616985408864727208191292117960092011385415901724534685290631914200954130521679066625996064217509798934181123551653987983869349006736484927430470381469216912220349945105174906492139059017464274553617971595962784135444327079103951734668548246445300377503517090715266688226874438025726964959252579175563728626208221278009151084545796914835726194748783039426484067446850718709366428371939509511065108304694391541040484669638475226217693198161232871592968497378975843831255085606139766136868383191400715703705887701092265279841038000280704645747572421087333079237965670187896720800588326138759965134022478468237730335496954706226889938494607585888112214381982367171483304447996470517250551768610787697050366243737692966632994437369144612280056176484711013696553864372736601307435205774254386199820858194916029305341971958244971738124850222189796067380716455199711860063317650853166833681377463413865319776269595495391274562170705881495772208138234342934427052135808780891102676719938061448535937667177431948038256203627551137839033800761452628000261672995602037809842968106422617427093776192860266501547516497941949709182378634256331683680487997702777849173957951322799153215643533285214573771783004862209135902822378438528799466617029423245046481304823443898883074384859228063871692230205434009635168487068292526273531092608685406033840870049199603672542053001202928735876238202658588827565622409894333540528685345234193549265786400800033260283812471451274465025508168078159696994179855959546777774432569241658016232556817984564631670977149197358870391635339639181391177578688879122099242290065498360183638832388096693589337053870084195810260727636723186968053336226004227411097137989747608626402226465110940474072742231098849014809475562793323065145884261314778378642389723681357060512562560224593470660907568193931667525304826847626926817211323696058591032184758797112764105634925866496030356943829753198955171099486962057934215381426938769583661800353772398512829801572272463687993077615817149153039374346949517589913741357228731942016332616489330590917011774678743256023613566167117973980831782106294073461346628712737473692072674817946450037797584645635933304742431143078027280013189332433534863148946330685323329223888130755259280814055926044501533478291070544255902425198714204438620271478355612657412462355884093708736916068583799803014006957817176896648347095513287666134641947376210599485193332672415370053796181613843190292428544964108769198143963667649084514147108709402347328463085998211243911161863649951974099076843416068490661606429567812836608952784794242936027328858955596637267444880163440038196231626558186921881598383831212976047152324691218518927007842239555734210471557754751417357252202998123818601194151013360231066525212643653759987608663406093477410587356854307227657740857575104172519778488979701928225633473386309814446748779229175581707047525028310726016559341742334060585896629767037376162944021036062326559126782026284314413721509902914969789644475648398967697758199527514168091245073551609579040132001172081107492883533052777090063049759455648966765875566260315236167161414775303792063779500106446823426069108570089419166882404077705724014977132360542367853214761868434543403901270274910158998929396807100047036200173653800904078608538764132793028948401600551752587530652080219803337232218035776666791324339079986292190401535380028410905308997603350996259633337504922585145804560687238822283555639094050702282722988211538713338593482862190386580125273177980110868776457328355508226129608463986101027162482226250694067350537030752907341332759246402830881357287410434664885116940789892056624880500208150888696603510167211732307652144525749034344280415659651430405090777440146993613514556802438157062066540412965613740844112321744760825044575838724805350485272444630416110731163421288057279088001000349620138903191861732337028030673971070780033969171338965724117919292585226009107929921193808397605108912750370131096872122837085939466704030254132684338642241288090773704708330039254540085506319509750572982110696966353740016678652842246251978852106465759043159435511393809786150601444246336608244689385931914854489582691760014293938760107850665362962147952165770025265033616915382040242151725759181147619083958483839376937349138558544366994812457487499172407927254848145689235888272515867441213653433255767076166270941963008103422098605223586901062159630712993587204238684967018570228252868966421839430555919567263308056409628283824859806902839771055805466208644317499266781861050633956769521899432565548093724676868482766129358250249854463951509821903346022500684951733917052723000865603552636497666730297693145279397156737303583347684772147805027469226383127903115049492104171148997921065043976844910320165937901443797391152819420467070353723929566813945905996571970475253092953501906437998677395091163424775415200214461944289506231605840452634796805649354057776650936383445753316661286362758114083166618690406608364470139922191229472821111200052097705659863140433727743121038178312702502108468174698277586841271966954075661931455534666647928975308105858177713860663206389111659518991188530917369225193075042139589966505017946486537276772238063991773095661996090563823776663207539141240110132160776724109555180188276347426516349956902568527896337732522633733983127265201992312507241712927168255799027851486394730169048426583715850785163398318802627493698272505180559264918131691473654814260815512764184483435545749127023735637741373067112035146077376828616636392358185130170528602942322347189588746194033114188471856620302372743517772525087305252778619743019418853919515725629755859919965767487849287700110461614499376678863109418645258831875747065801433302376280613884877607716389068934899608044595541301194757446081202137072569933579311977981114228861275519604490057819556807645999424683291779365011130857452088338054227345663292819203478651616252118181178848209294069445059290362261499066813912289441977273153596770567503553166118612642442897136967654402568333614623827776130867621990803677036119789591855571342383140279000350149512334762240452869347646362580336307459748230487962497782100788744126561233714091435160379116063109120962268464578902344603463868349482851108207247229612545987853904252220741058513427461604872087946857578429829466658582730189511089059016696824149501484730132574706321181965449601736239767938879715509310236356896652674828834387943425028315656188333757907909289577733054855090363668045706112173340487808380962498432660876542343784543531490219986013152160163441733110852565826488473980303856378523253911009899725061071488616786961626636594465018650014040217664776086124221183172504788061129103537519248447010447755304773542649232855382798370273093899016738908957156401693757801885130377191289802841695947630893011007151109778156256128868689430843698529924366199815166370645879032627934192905067242779030747253445353094569152057089517024797289143060076294992842317627969778152249063869032411544643990043954280860058513425233694339583976166492122125641928218152054932123876013850802473946642778734985626555767954089386906083446381401371440066024867815951943121284370652393097469019286301714706364399194702997197013696521724404429020768692516357328920929712902557310133875074563186469980630711374338303807205197629171611484564480557502697432333021619930969987637615126215006952141906654793072323938909838735497944201462701944079911075035478100827902782560201669087251658475196118580319819149408936671827050446302901096156511901055394711679215711241994521150800280280318785139954662607229555834339621432024030043917068276229369082083585994268977670984711790770232399072608812827753075614154629906386878308933016789661222685220076086004921828286904002044273912831727252752538952468547105543034672614564223999406759920513940628161915276405082357441035081681786954075116635050833095406051008522624275087846967480461834683149452562945850592858224088958361267252435283222264755076456226124004130508952033060165669309600134032399823376077861350672626185012721281961909216334345300306934761427277081370757997422381933259207513844409054729831504934111444869085589901000613487052906600335769303725044730375395048551894541125818192575379340004114010211661539437480501260284979895985924726102921807207929684630144388719379254484386994678920066705282200637506617608380458002007107486300736773493627615324950667368467321177625836630906448425375979927177184253143955441682783225403489875480609057291268949149514396501215232097464881437013414351065445559165564765318491085971737140060821170906050233772789138084718921021371468424801962938097126443955144228704513523839975721327973748067023594829443385575011043073211259203163200304321177427836878195959108060997135275416298424334745536212981304509755878065230097183783307981703068816225180886673368400508840482974722112274009177406119899625711632564636955256914448066853103249649644723497258985727526195337573189183551677269134429999853771339837185050541004756291498974153488982079135198818649876611071514528560608926805027405633441719357169582271713703792817320779764243775057672968243897846855156511233731943224513004283729386450337673656960156623820560258815913865784963625241937604643109125663305733704576639519085629152146100920361990807409079937693810258799814366396911549673758990499101991165105553361593178289727481495900233529669643751249043458766801274567709983287765929401276745509195052540517316080832520120741780616548832748997056971949854818824234806703312724799674501292730144889765284928907216438149865807984620057124722724323439805152471245376692181575165161140323863238952101093331169131812999292040938927929514763159411460854362148449924219282076672528192423482420884460856796999778143240827041825001411200935543684353874234376091895920210013283434492174341684428662048713782009345803766128661806024222232451034175464567808548092840565845460616994824793792685727411619375619813154856940950358057486482697944476086586769449985624641956973570886738159281059762794398366621580507021464044086409739449289928306958547308769106810914712314440710289222521142553876643840259344966073431691043307721356939946567394735678932638479234208892632869770606237900183786696268008403323799650704646340089341708562283910549415876601414957826648261557422156888428365679039782140480641209114960324211103369097397533204514912201594178205069336747217801661817613467636525521585557234957584694264217864623798088896011250968811953537478968451966617705822803804892204464004132203710296089946968739303131822439317007457824893862319569362311264658208298851604174066243977202798475569726379364603703813756983724406465823375868919455322724160777453762375460223035666024523952381104607840730274585424472206536607388238903310290944590168609210071543822126127418723378082874927872433046422721611810705744098136009574226174078542572374347060829906094882156914048645430051360374760599658766871731059698922064037184504306322748229633681063435934747727415377787178624547235426479778506482969422128322286391658057742248080407986046281980708492407483196813497440058671355603431707303362875281240354064600466543464211138725038163115771477406884241534237801829931026115588431706273118513837941827625947901228318643369891596019876277862046150274583057088684592472724946864732356712901768777826695527023568295348110360427007433170722487762033405983680199115441584955821846012965063772761020955534357974110732353429536080464319103286156482891027217628147703796758074955038333949272622486611269876691132625679507922458882058822872937713984834369174618586699275147157763163372845123109875440304664490303505857392343632667343035804227729116277103052571437188542170467979639971748308298277113418340856271154779690801346324153502256938650734403132968443291803106726516658322601162314956797280302039343988747255152213503933472354675478211200831495132924761881489405833656026005727935678754100345537827689727414773587555185337074402300272264882031070565009010083808904844754294978988670529091349592978720286917687022844822410371172527273383668050655105310380645275809149548191687112226170062275676627964228736525664330417441986870140796449646382266401428816162164785387579504238809190275040178534556388002930890505668912046267451867163410453960182865807353941204115056021393225853052901341287590178383486406442877627890942300201925784697672815139925014027497255507290280439436312910362577285225971687670861497733468379776223736967763371058371817781076233343134488296782374022924523914665439101679120439957853437080704712365185826348695486728275809707778810237578736308096367000128087126919746077124452901940289879001349223307726908331636437470702723139545743572272633797574344492740658015263982235650763677101555527509675350404505193993064290978700159271824617233115650168564939018787541623572517591184553449776586788794780525686237010555146146406007489181600475709242001823572614669805968965220515522381605936593896702127694363986574677872194733095210683398098692290547207522244785671939890083913150901684698680871546557426386379570757372650381027288456818902962268304973102234740347860020278174120546784367025794125865555713437319210177528747326735929040844615754713539824557768831466940446031838479203636715100965380507127080835797641283869293934920284605002978084221496708391388578176349943985223082354790417864283816291695587900885863082767902864122628312326914181046741329847805515833317075702633283291848513357592645392769348962695238920319495970625606612008368356620115890019763175452819310565752655224327384851414240475089547416506946632828685719026782710240927888328552478742394208022464946743198551478067655699249751380356233529035564266792115300702939295530456814561944853580958544165904619430992718164893286085401925934979911133450883825166296112094839765937827305100409483754777710800520929528666938542546707664320286537979274126585600700991339793439416700925274341989395962201048626860191899316902794340262474982967594846468528855060948419478556916189440796029582886820032543875300036749793155470556486863110759752051319314584644761057365262516217670404308313191372348956346500468500835443452596802993768157743726269325465272528969602730993620063928653928451110584201119457618299427063374772563466049228775902743253742757279253368580678374006374106065578609607749263116123872784093351696443744560680539191422862039811293556445188044225617533804361054008348511529840439384609133981871457653123046401790073979583088161854558367253763511984072900678559991634933482867050869854308748580271303377921542223426381174906303155114965114239833767641731230491023965161621289703266253165368531129672451138650023783683147760251303515292788786973809768834353709137377739319928253930054153245280137496428285137794375989299303532357285382690930485705381881782023650483700045774513443412096196536030868712358878233733044623382190986287868344167811675514917532520136281273389865495964527514658073270463367640329196879155627620485594467438876306667914316402766355272582772160926947927619604287857227433014466441530517908780648672500139060100947724001457703875888243810537297413619298694862318439288900916943764029026175420467345465714269739507970682309322891088303581828111215531895443335781245112288143234986414983343140888823279265076033091516819822076054470175265788368382442541583749144632000062591614609782634868842950859681953337485605496007619288975251601579576146807612260257904103496232185266975036816651616237737983387183202750321606064382012430233673129764234097313906791864657797587524930146177433110767124628617189090661643259994021610743231785941979515637674522173221348277330052130697930321977026667065148330102041585658396431470508013279236292393272154120759647526029836327186679493645191562825390527599366196690167510449527607565038917847011426195703480454763045783612585459205524281899350232972181708846943605383620153908398870566140409021194298072283188233558923561089366012096307473612212796950038729351438816395436275764926333482469887169278043498596668524672577238943563945370859295199131598151716293391487008888870116643160640248641437413919553775197633430712221798478594498669329984141221259819605332007705491669683811468926502719912597225035699760963558286152503413925758136141517363114214487290463743813615216159338671962969637678865988286430002110380542755043063086266378890905209422371864619502343668994054339896502540194160093533107758940417113470439605250627578202471403856292317535182671392128379299864261249838015895160857994965759082421627279598948530857518549736077085357839113334784873366898570167595753967485571199742592046366071714150602922726344932629720974592036219860462700792719969677566986056035662509860933895452150832980925883966785569298481630026804415243481694626025422094334389064823114514184873108202275484981661208540687115501664762323747528416253356964587385784044180565951846223670768211426803949055157833113247903210690314570187123865531236087096222631314994087061015621640830621492936273968127344712059295682702490936285647789929593351430908075928630582632733494025866232454763159916587516730225160039046215506181295847074901003680314995728244553402004756764521081220915285075023380982207628789792363259960903201498875115513727124383813458740824011429471000633113318862876095034704917758147633969043809175517862948280042711684080053386506868499450671300347499478607055153756710462012490546601137853127031347222639834032711794894420736298138351899957970796290129504419964222519424656244022103711362939645547211931118621005798025352999438921502533139676322631327490760533941581745132165543317551730593768046195499996101833022240102522031444922227436934954090164627822717597843313343010867141031657539629365331514501792795085331848887156791307829399816190108449735800751446784598780767495109535822608661598964302302118960772718444701549809278882270490759977111096832628410553718421479344981680835175587381687663049657984616202268416325333679117506212755777195161237546501659896697217013052994906970283382895597110295779430492310291957472077840450009039844626715018801542146297046897228237877047057102192978418918879155952865784743869516770797352018812107987049608278838706465850472371950380476688972418587506262763056457080543930743122617069923691949163290222953430366342548731832330189619836640688234519376256255667424395490380572748985139891573526894387029886327610581429360972433156938236826483162891641426716440553889804247381870842397215303240751524357468143880572828188520816864338968693978536200307551401390056212877799753008999669385614329531956766337110114659799745853359761866841344170322543536308843672972610847748659243889117284396312264246848032745192360107921629849613470307682789985822519712825285505668652648895489909901061504895405100729365801812144173846162078842297043187035977214194980799970181979749861235408792385278599596212721520885196006278400004233894812880276022892083119176602362604418117439678397053718933371897119875940711317046730848217278349058356533644779692056570763113040565520816188195994476323701149445796178128568035094402461144196180935330641931392253560447151001543227253332452236708681814905735239687223568768618140752461300307402225545805606428113736637836623931648893110562034380174868464224032974630145720136913713661745046026583509727027149800888412506712318983278207050743608467300521478066241786416693970946579145016121928649922812162536579941515600425473505326572562056686399104757578609312880917893004721886053618598920774500197028486036943155169772171375002933371666871962013226271701292088667575891410397688155716722864359444258050325477975973642620246356213817548878201204318850638402531503101395012557265600147106260920223344075490391869038896129759502117133946229423341956524125700613200476375659223538256225606027772077117856433145928531458406682097550380972609174263880445864563989842618133646222875464133697912264110318970890731602071085788929293103391712468677481291056792292164458358904889041214103109313316714383892544426708358490117011262861864693501131682697827665465759658135811047971263985186685675771799924379804666995523524419668047116833206040928089875369370588280332859560109077905089488681923985512327025540852763242797503756307016260173494375720607668976836536173034707315461190887666106921087175592669748870338948748022034425526986068222021094598348492249680749945225408426254014568171853913045187810121045661355020063686979837724977929560981135966013504162264182121958774007897892023863509691666833663165010562873540450244927219463365733712729404369610035880957815744525284358340253578115519125428468793765625143668247744248556828710353131805298600508259805132116002878926253463502595098563626910161109769830738883926367676504745063330486365028609680744142442078632673456011760003422061473555824239765389853781182807822092097422403952408167522184846338221768122075273748698942822211095762042129744912866870835953817838234320314060416085141141665938257688107073687902303512992482124305184472785795071865135130755607158566559387257164935238410835280086257378705596712014167466047670726561141252753640195570875800032667978842797203286025464605622536119475642141706644819727667839606416890728079662153141152634709469763851810052979042304715133478642216541157860900212821174977239505311811093978862478395806267729843236909088892073416639727014882228809743137508767536033666092648119537593311762524205842526021063651399268123022679185372612881030640133367892945315848071522614379584507000617614108822052622388083398045504710479943346872983256079151831427743556803955013341543363787577938271891508937493230353401713262844672936948284282468445112393853906210414282042415099388579533814750805952462051121819068275694384154094374259550699775929540086574134823975427770606077534750220464687350440978161062226924819171577728695199246099706457725100427662220731937101681972568820760912546477169078320128648789522675974928416903254341958268226631006713164143017544525110828836491413382167453538744195716040603934699227419445092927405683783269520819781756911156198898257515534060343754340166350085884288107192318488471270558778891533357195444643634513838220561325617911206141013354013325979288629555810399172864552824886251957694540264062018680427392962199601699449487069888104589143265131890895846526501510980003258627701774135638598688424184395333528658898528990728264293419729231518131059380777441374424957745113082012490949272384884042287123708315629328848107941544112748684125544602901623172074568529660938765676340095797391908977691638361298506094105818939198243188533712584354504725122597891123132665130964386609160987681860705966798613899439322052182108959348350374786606151659448872786620257512505251525191620416942535048087358838103866259135067195071593253434392892269195067397166023485593563420723709078546905975778590552093735580155420031385445693621111880780756933889461562630423477244084679227858294140662403320901609920308491421441062627403655592387365903812823318855638572987202614870155250314902537407508249148473690479599196195338420242468212530336743833107162561580727453963077923651306283351048795707645155073618948701624947910132904669235043114613604761703724681580041297844027890063521093906682350461151544397333901738540859183529496374673496355170368370240836891945827572329417527100177604045965013562372308545410921765193144228903692901829132554162263644086388308449081797283297870805791031491177659677708545472016574583310750390809313959103806305654630776129710149740408803132266736417984574160624237763707931296437952092970019497515019073695518491514707980384046414335575505756279835868927526246894250174775684748225044703005304997338186239604878343864902199831370487949341243549861989428474596222438247024660092105055319673281789172192557680216468700647714595488020813206244699720782473719940632955335159342815071842959166361269995530754402054198485424322322031234003542697767504595720295451611859102430506502237309901505290475881052215860150421913219421537005826858145176854035039362734815608707345519549964712388082978818155972103752522771064960106639398266363933207518682889133198298837030292305486763443619344738915729956504985085247134767665400442536433970658028318032099592130159154829559868672106935006200602085530432412783351369388477303806975439502690141144422425830731740844498585484150309086733222823220132650178027654416907844288905104296651330748060172452246015425930974203040978569363036017008471699843975880846074612841984250851084944103509592375328457072930686711275558787972185668560978064869505196897963075660216251258354853050191697778197139354418869160042692734876403481414075014098975178328301880234872413865025141858520232278216109466580641014624018528586400828440988840464922429426249832811102124813519621990638609373352353307118896753739733504104472141528380157886757595565675965832486725778151576723368419376111807135127540839286212902115848052742047481064140319457747618671372545254545918181266056852166183415330505990483062941751015785218970420923427427375905995677341442800737883409671791912508305128980914870736314972894682115131845858329617577324595741342546638426600139476750421312646236774726215913216636753174017050659816931061841494012677630714478307345526060956924888124063762697188910611999816866904871940080137574410065811552265359522622105658015721852419375703085252692380366758176455503182720169450115122608887042437269241314126647662445580059816700217635248863554919973942824152824776443285975220805287304523509147813386764957730271327069139460659553009385274901285983236101400803327226384199784869529445017465050767992438771471578869517901261967635961784834538806781381916293406567180618778914572206343725347519693390034884663232370605663385094251523779338441081332745944225838884372741876305583676646787412424525056725166403446747300226528544862504268027196076437068748333766744158864678123995984825261950805896396010035665685991694000591913307959300797807790713337609674904677337908830733625906228307610617415683085363114687329696677171204565094448937256764743604587901263017060047007794446319610596404128670909471720431878211970254984461449609858520809585733026826043239258217421058082041385863893773583613683992700136092898834780053566444982399422734630397639325788812861156996450344125770344887688613102553025734212708312902633219703524114231460894442152410400791142340860522027865242408772093659451928451309049783687872510271619033196833407904100990712224532609478837523981980836313280637202077767163716020957466550990065197428765538338899180516409613229992373040715049650513523264453068752758015500164698073309811744826943635270479557449406749688078023825682264351831615083874938960032827331236575431284637278046228384826246238689170116932950637942453752531476022865906038752606713490221902890474777935696457206873585471841434393777481421328383815739570245787198170180171080965163181807737745204652209411390549855510128561138453189879831663398150669904026599706738958572900536019318685223678471560071397065232805277691092634010096635107435674795453860364268150277480243047489639581524922328937767381963661328135939464191233970081657933102181436814619115260368807773662417152133971169614217242848994618783386743816456155705308363899429558228198177925518936223669166636763459695904415551461974143714030313708319261425502650737261938669072826208432162640696153905580193652352996195449593121546787305304891923521877486427063797739442831604264451891265136982675318592913438131499654925036145325680656146325664336297729806899236716916890683445749995257701030293493607317477663398820673428208293875514952063268660623893682124078470358787345478706494124423218102981407621694455558148562598533930005184556563391919296727534266449065035029881035662452967303721045347851445614798914236952367380863171864454899899587996744213511849249253554633757283870652343504553282546042150287071231683138555928096845129765855488316628957584478215877394794803718612027492465092599223671841899007475628896383857366617839111919116389040719407658789640663188418102273386171240617531019663389014193438741198709277835876208131512193695178374760953870774158324825535956321124686186034572237934690719328132821610506214012541702015656699932163163194345560845165179243300919338423044523752008008358954335230538586756617943701051370397956229641626558328286575453572095435118425917849670208739454602271270436437091437579091725722705641893919134319420004586847850860178499012030335009171407238984181355818665642739370542800556524562462305076932652060437306047341067675134375701981111633763534581768371176132440784571177970113370173130085528188902835225041478444841161637435721849772143380929183169546286251880633108779274489893913210876340689340134875516419677048895614063674135236283318805724292142534405702292122501770804262360454401087446361102186660748365791452132216269294580729655602697935081720215583978920455967836997027190186774536511220732347786416469119816519117622455225859930792194341610748386527638107705574438759125899857554748777880678426657222285131129356487237937399280097568838437449213533296429185340325897633793456918422316524011626038156541173762378405658660973758969728795645155400324351652518187038582785207522708699388397195690697131967073022595017576941570711971076687747116694414731178558750206720397208206087881569329771741273294510137451347966620885650781054695396120728250150550434161801457307646941950680710229845988887674216067934242520231885645476202742028614672617876703842417506469064132876920340789311273281091318491789558272416847976058215520692313078474371371758507918369461291408429255328350730250638024080033565677586973040719025660360599148251051244059562600542904262987467007362986960152790350605549552519391168916545994822818092747554677904636131778067511570555558784287072239854043859951228309221320508800023634915506298861083816802119246625076741719651300537458059852573527853349803009239231450068859985167451989227365475328018154222690665006964780065505452731881536527051795799343490013464108440595544315694141574542661725890379876721515230596717549309763983059413509668046649261070199001787733014356503445472847300143187048208245677326280455203675970120794168085938052654854122463229549644003136761998839540719527162747264127248827629370374199730100737048119675217815283186558963283787863156619700568925696555396074740432669624064191765451905969542732352267703985860446805468453890924915151107254953253978422648656224671373272297998782257163983580845508145422089684388140546707675928055528318249264316559270924904340004290390552912744282031663568208810517841170860368391415002095971443471040199795748151478371790687891560482304389749435622496531921531566673203859396038508160269904894790238166173021050431094091054894007465581655170234908963750072490531464111926953429005261508332969632309239685563188919376314607208781599817743957196113983000827728725621004550266119447715207148057368995755158905334336537185922523823288629844951495293536151535559924978497359642087316211046681313814372624316302156137013393443646824971503863630197996312970122610105398690354819947484719262932157634224548308091636784800561156800012009778219777422159107895392034315763365590576016192896002724189713505788603495293803765226415719979536363114468360190431326731965946137494877216265545954817558603884506432550233015124545300259507960100033327500123514083363116090967290271101805561653840038712018117265779349218162140471255742466810145177496061008194502909931322579727857087382281876286734070560265088771985748454853833263477047125858571786645270664217015381855888060805983336711879310087201992198656793255082356072398737673196832852516931783771636608023353020486318549721705604902332153966239198510387921540616627497196157311908049755234353270136040840548708957630143220674897067309094962607524311391401797048241930575984889452636261704565089157188620690867454691369964846357670921613387415589992524098355765057777164293221362290612121715329328509005315859438990903158921487896914090323604386524872731267045372633098408960349118765235965729926989120168381071442021620914943122285850803184610605818282884892712177766885711046570686942494663083627228220018567912148771549593033891840841896826561261490672041361886504113129973790490246134645478723809221121088278412173473483308158276651585459990838195150743102039635147113952730319867900057635721521551925747064640457033547096366052802887643419522803810104696942924019885594419779621816597530871856022281435498417680122392658872519556757514461813597394647001105972559931904596243031429545402575963515516626896560366823188455524302000524032448899712156737497472678438000665712913776665639171835621452429071868947988152045483211035542568725347065416787206272741467782829939528513289894558257297525381819487560037632392082138321078217429611773578928058812654969808134601854739509717438287987961323327857419921819480568582305124990968951582043582153319749596044061758869074147779684891131543164667805790055633316425635810634397275873404719020078723639492726504599658208581579636853827292346938893864912682722805074843270424038192819287191636189952833063074212215836327115136614672260861075544032517616736585750866642882185607700501042819310366104724231337566426816220548016969848538753165526581367898566581214134762788211652408989613675271816512619897637579448229764388878719929577156677048897668526178652311575166161572293124625356758589495854614046974149452695589212320985361193642004551909517818343960925408962896123059016224780112979933137693453029475091325929256058147104231384619581815315172513358177542485344844559437374378880066516816331249132879164626263675256791769964763660304304958297050108325300442854211533419589420088649038835116273876616524727459529495828514576751363177206751957182648606405689571402573165223244706942248759871305543802121991376393324816292437966077723591579084464394017486182541344377014609577361679817942114508572468506027149222471539955909432228016350771693050574680740391403368181767452688631102076068270242736095997146906749641608083644884718996760584444798171427717995531253894599255843079469770447538205142482358053820270705691633606005257318603965615138079113643298822666897388330916385446701959907708459204672322233441505622850672855733122598011146321944749897203896554705882300730368739536696872894837904854128787057362427047872767654497999475175452292200342175820156723410325637222655248862532067863651249439967116116301197145986183023846182312307849777383908833615043948344406440408715946709744969859278353874626205017037522393982176391086290101959004112986836360000860418373782340387683873489951201936333141181935403833960573975795366516813181639216861271405832016487338085902914858292790353110937481096755384876756302540533197795022752456162377993789312344038219004231891085269650290205825880035415897742711813143294438566028290304371389387479574213331280197974722217505126711258449726874035386863480562363893469394210314296376590361947032229630322935413890417947061372178330042429249246617766058897797946199257996057523610164872889566785083660800420263387735984919373812086639554566973584784938032764032628236819956570742104807699444763887034560464055431903509179346838221606567744832603728836332272774633293005094207830167804130478551569305753877113531854888399518357026748541511871935243268246962144381476250010983710747193589783789815048475255328801966712050935269332551425378537352518550260956193439847785985013222752114979455838423535785134373752452764241478476670927943294837705287602077128029069298404286093963097407745474313316457456641939597109355620936220548822145530554503090421925404715177695021740443299140878119927897589162930580911798845090670905630066964142765648787380013496221515810155404823279340503215078932374552781937365128764252486306596421905106160473670269188499777470988724331890804809108462685410262970485234323081477268713816053191176372726826966304424163228227198861988207323987254100713362220089633234080770033182688264443777965441916912529816642769146027980106498658133634529409180082626563118463191728931965806562050755866381447163597671032613124253088290679267184144699438170524442206382453835583977599770055764737871842643505123939182703837919273183355018171170185770075685883532010915340234688859136435501610381861445276348874928988448326332570570807584802773717200075363396654102973408078154782891858554876583594809936821365626388523210127332730854728816059692133859549922515099825157017679095251586411668039646151305143298687848896367244814157747395412431027612075308061404013122854000814880568638933399129650708615635368725243631633137984276291795392477758103732531427702562487288257477339959512599855346278002393581083791310418604067964003855236748891235345771835512640697936491405366298650995616351995464244404990268838145308680542192849919838087300600780934448662105073138922174072262779672353137151309632579230972705132878452639090248851425409930773138746688756619199862208050076352413475214875362093730317885619432236765323104047147000610893838383444152127168181313226120302411811365446835780249916853867492380951010451268988620641769857079025672167844873690066077469185555906695636605386552604561259897340313702488015884908216071189456362206512696340380109684512923739765188755327572652951748274683538626316213124984453042506042803099794380623658133011649634670409108185751379096834148892517181993530117409627431060106505481441293965140333309175422069327733382204496880333243282369558608025329677528726977630467051351535253158785068728044679243127752428041709466344526475344484265592309996787022231529260307571032396282414867125927552303468452393380465946160903288524768283406922257981049802087324517978453500781300142285612953566553562117469134217959035436706369602077754610528136255487264085082599067531703816097783341466958598566462341315077103415230877663097712118050980720427082088998197898886687504796018734703917699151164974987622387030139937921135128592329564901570629942923882193087457331997290780175482107279855049032683851286848519632139129550780782208448290335043778617450220127380807625306726073789025399973701479714297430948694933770890741068717667315086772077277680749822142659026075660256953607614456225174159203876758563964461412270025273660773684764587235287634710977233069052495494426255740013306754610740063522143005583645271852146883197521134984045484064025104288954598278314038497521628264291685856566703515369408605908307114611954772136196869962612854440886083706500199453711134584629823447620929825650857508859429354996432130861331723472694674331858625823665332559267292892604255351782409601590088903859141780900567701165454215237819648254221215917787912153813678731926061039520905081348156815637744138284904655040893490585014104683147804587108261492186830668865482410625486950741672840825112919694503482309515761497940891464122774451372398453191842311489348778142494197999650077550731180886480076451799549852835195960678921994249515236646035369067830168250551487598586659038030615881974663246438119439127558837589484398896633740433908404900435341990592435063146926162208899269183837961741546966154104976886228930444069725269252030802080218231431962864651216613426981235425194971445670925349316414646842820122134760233856206363360452652856914338651165561003849658310855430477480642746061800972354255411543134465850580992986873571866920238379978789792056961414661216356165415320360987156343910069274665599612884380376231422714367030938475043960434260813437958736646619575866133692977457306443060910307709555898770807998668618259802816383142053476474226885895328719396084207586135365112994339624646440777155699170472334280737331981196394079086926991712857171838735261309842794891442558293729542494588666338316606676241265896834940080240483584050628959905216303130068055807085493458069269704904956116207188860054135149135847725021669902164468256327315159321449830283652200912995066077411309099956293965379812920987919377275586302153250808659479332844297923990640129255633444245452303658447902486177431615033036106116109436496712400956035248936349101958946323833105520289094839012522655164873771040419173624516120587009217712101765290908390462645405380251038627214526684617205048769228948321380118874763843292961548845916859566838349405239508127498215682865883630102192813563288717942459760783278346531024789911634808109501248751014433051529976258557921926555645104034331663154961893271972225880489112857618702818665222935913773164442413421252622635286354036506549052523025210745241061952453651991027534790444012352141260200746941549683272610948474761152539011060014931803350090862993577897435776842991830135355427317650648580636489385646102581692067999508181688842732986335318394972101396904329694441366135747161729617864008129653635242686615145152772175759790093546930193152172483252025152780795016742074845300910223540578001240635684851011989010060051568275332221821145355490969275172843927302215521794533874123768780736157638740085927506891731414880983722432561984689794696948257148794636041802440354482415405597909714656591540036289828658644005093888514231208326894284896974440622168686492707358268325530627633286690391953890720300387568455889378300930321527459682455413780135976125325729197438968119426022482097372202405954016175000491218674957682360674133219594044497597663003871845607116576544282006870103435908512346761786469821474845807760617419816680004988447744944884361445191610885190363602500687069254846352153988401781816745597764770833755068748814645179141432275818730608364380159929894242341794711126085679706089860693198739634993791670275030543914766114940067776372224488612226139974898999522237553871838880532920777595744118969510773574439500533967034438375595414964389874084615173712909576759928278542665298138330248085495334055028045713037165293409758489967717999987158810147010714366161228942031089840711097024852722755123821741080514556636387281478637295141141372742461265909007745291499831263082356671030579281574148385154057659212131576418888301572256342388778988542646194375967527586768233237457521314035997489857763198528231925544081724167271972604523974883394056521122287962188645669431977487523022531310197443531973830131160343826372942034881128704162664979820131740111094743236857258245657098247812393331081380281458188081946257411284050158828885540154253349456189962224275890659989692087385003313305938853893797066071758092141682032042678348401107669071355374965626335288989867374996223369223080090028542737804218402391235703398238687157469437386031812308117312916863467976733465248940159533345959409120151852671611848221421976157072852486171937272325932897191413752256910294145991171342190983394896651916216818749033505808995892712073935522348757262593540943306012486797634035297908401541256139480309520519682544116103935577071283326600132447458963962240848141045432480435285628183663178812488563209047964435337820868089524495546701172113502953996799793033328276527184306232329479512426965657821149117474415351816757792646468869480714294086318206491532533732471598011276163391902205787844442777323669209942686282085631268644541423853721327607852652326616625125649029352955195324709714629577602725391927006086524847986583554216452162177697997046249744274837397158762340449996449288395331058901619519277850304225285312672519298939354610369127957285177248840922198169290049527418495863607612904310227872538129563542898601448216538145340763151206658257049193141660274021567388438939484322477617872415697663781196905097548127970607729841934151169381292949814716923266594245427699018682982471980612411848021236909491945276796745199882642943246916201712689415787841685469792019972675458599243031912502665018631182274950207901537419997821902327875157155307298730226129071861500331451711402410722994914059543725583459690734821698633396110730467336424018947845151193678579649254493426090980683854890094555337179693212395458806297480121576888726643392592009002501393675701920551946695101946246947454690633991994711150184009054867688545839439591922754157124620845668473191820595575469012192527306122825283779566223694899881219656392483118495541999585933949489130557221921194045895426033370889882257607325080289929503086786252390004120993434790405474063281044378417270349033957393052992051900736570920931836870755319468398781385768185302148658124169163656444158110764563308869569630249510853491235937660814182908954996973353135611874835466708610076491920193133158075971050980967001895343317907613300848374733540141301897392160880930409618043672247341832139668537827232877798701694857060570503026009089068493627347316117802729052118038415306106063630318366939095288460648955741132398271236444112457367764980574828523556010295100108250234745491104945745193105542467574987142212712512752748954851099909552013415329322102112013761799589434943010133794070123946807552387543875537654260182350745557851515279822663049999173143098767409275854104389861989751456167460783322482636042381757280877739762977465963760562840159940415728798948528483376484486402320667414133175407672325406456870565813640964025853568963572820528594485112595871395472450636980576688387367423408276265302406251181656209100905027005146421931929506163464289083334327441144207655546385065593986556104847620351429261674520287837029639821296626461313245592983428411647525197432893232854450956440916088699907511916200227213709205200902354013307403851722972749590298122210571013606837076016530860430529812785462194014689187217212528898685636011181394370789577839588018079363309530067805618763340457160752718563238653351882757069475781807887469895871440903118681305335689036761036046424993703972744123465997248997983847108284661178463185463062031345209651417817936637835918298821328555253658291915780989066131404002285624420355899254337101182674632610649345092415838204024886454464753980262711393977186941694167752367284774570389233957044248769452355859251685323874657721939855235335829144509911970827282969842060427821168082450794713476476626304138528897409962649329637493849582643946167388989978418171085633710918650404458030973295889767303402243906032124262623921091010342840636806899325463241796994123898429276056083467151725326314372566613748997186102836277895792518963301006449082439541203584391797016534808089400888434660159977117211534132944726432744417420709214643761832454999151851345768861913202121613518174208007291549397802440174391185929035032249310280052521453963994009606149941040515498582654536284022105703218425400602568611942540287965310064103848880327700565662940602253686291000779706749627288249732582906293793068652046323070227782209964696717435420111654858235932200837212815112154221498267407336383808097274190341849289668050077866199650610152458888016929669294489496653938045933857144258350689568534483290257735484775570088943973581383629573947115053826829436210476084085342754199443484970849700944689710350031410980455379154302591734733154692796600789316773290337465062657920100620670082715776369945854764905371106303609496442452448808220764456044831583838827977039144708967873745375231327811778030883201086902037284218882456729686057667488566198691731967295171733651137189081519317514969984477503597188619375830779427937010385551066070451451116373802072338109215234133701251582885222162175322903862970834593280982191768329041703942656615306648992782974780205174136050866995636700424283346556973993671625846522988809965313331148709114481394626954029586285085672642578533916820893102507365652308845470674571769589739060158815114416808479358857915300162097757699809827536289575615186134447724359176395613954956963959645427231936617100528737014041319104337053399945926976158947375895851423422795327499753558020690938854334967639989204416488802283382057688904916818336135911466848755094188631165611901199253166567698407086731512560163774552442230708630562005694318444311119136355540163376455079780414621460913645886233677598832619440166106799717538345328942796926434447643668942531045714198480384875843359637364012503170496737858768948400737226627412031756101887245667649581259785664389281921786525959979549574012084703538216108806921951964133632718810981610109073716818565355352057368399031216234612562137145463552213952404094141044133783361628335093569165001884220596360524465900440504981848725855535610833786108793117503276153392247410470342375286439228532559151754735211854839103325243915241175657020736306446099197133137248741460857569157887449785737943689460977626328017416325510329707467969260845044545462215812385368089033847221636372295715228826622421168072476340156503618461572608548037148743718028745957039636861937761932558560655194844654657499163876436537003232894926834866840143248190615123017627859397925194342451822902632330763403276872020714889555735754210144011127822637851044357638660316099004251317779173335011847543155803906456292052984566558767528798850669966656953857595510606185476122795630131836506657991104093949716587090458769824898643464064610679764922396316594501320645280021388821079454748620698663886213431133235263261497794219288788629936364184069650619088982097357010067915220512914702813021003877012697796120821800438185838318599318980113052896575445011095000729189714078142083140814758769329405787065919354511351277844151896244884152733034720170803398911909111977575579027065156551410680928280567188439127730495337732084680895712230026445288847535965951254765757823089659674488976947199877908524240467308975063139730233844258940389161763986025958050846437895062596409900421063126942765274608241583170849517987311656652222761820328193062971900242832513952419386769081286787647303634848878560006008387370810884048837412006533721328757588766348514019140508925692074051919470791067229577666565569504286956420499944225282478961918762665190454268467731917394080331601960963589130479146973144393064774757110426967834452794167259775774866563182733190378814429820484657453500510791103529872265773359332624733658603798111727926758448256522724495395990831466624341885061098691428451102067042850291107452227959504924186122304212036086780271989177467688466913387442512301864993372619602918692056371837902621516078964823456117634978729879212407461383934432115752012479875920702691011563028443466762699288778839694403519547949592773678930986074001656621971866033036063124953961641425947554978307650130889346937779552802709742666370208831498405482816240390268030818549693596427402271053231900713226672974279333894797959498420779030616684976446847058737805198160532351059838397725065040317259641242618838690185484518486710568838997083017977396323234437913124348872112144831397695682866669323398754467586834080758527424973781132781295073150199846824572527859860096124653820011288727254315164875550304996511343369131150987034656020884494217796719440207303618215673441521224115530295563107591442956084100517052243653363005034422474006183629996945231641923242555070908125135454693437314001570523984895815894211065019985561792998457950952838428170795827481006744423145547974590268027034473761479056433874939065237304563647439971493874806111195667114666396844470674330122545092745288402142583331433152562780474328609595763148340988096332267768609371500222310863785846826383517805381329169272727023280284228650732339061832898909367065489288679673307904376100224035853458431847778942704650920689914689544611516559950753175936400656582186210532586462989996444487300674399247810056440089269367210860379613319533252697002480456035896066309202429114321571118470063609089701977385636047042490240268121714490084735874422234165898082230792218738490486379592962333665111991316574272345206725829597900185064196647644319451479716142576044595356703097563726952764920926570398020981497276376452213250715556588414801487898271163176556080053238462050299006426425700373383395055212245700361724882721851106317529535329764382907535830362072885141394527920227464277005928256937458060144574197430289042098584252404101903115967151327319197934843205660677785018352326373108749619366874085885784437123802369728137862972221972023160817857128435525370011542852236477321459704021792812156199728204648459475214720490628948540898936878124420348787164075361254406960618308141966131497537721691405968888430704397607181885375452038075242549953005236565617520752711977334699286871592795190586556177339637326358552040543211217371980528159914688425438530030909608580785967705136644257227149245404151048794642774745750101942187160132097752235826853282223777155436092842589649347489891464588403213555587344939498687290988378386662026763710356033809423413180213573982804500713214858665396295066920412992976090886211146423715584327531940370151216270024667025917568031566691319093010885887479763745560153503457413151818348069700063771558316360057658263815728962616829859994605118734796391631576131386611864884169979972411074221936025593073243255593463724806445698568963819884908567729864618753546480574287530537398757433960980601403280595945579546995080995273767963007501839319972754744660768099912336636734267183748601272538725973271193550827036275217810795476016671861776315674788706178539222730741790415401051245811103515802944007105785139636330530114794696838754189388989090520278620145566583866954345843462700692849966368917416908482079982651141172622476361768477699469265214129387522448516866285892146246930204282946663737367521282958229991668880146882626543673562059442156053276047076885379148419412111064128629828071349004205859124338208049743243128817309382787668295853481395090011651302381341113580543087133729783773849157547607130509589905412750768120766804406553331008395100141294005954830817507381062120988667283972917512518541852771120184965034116317171008617389490387944624659278890818624544330629872047949730678599321983186490141982045010176655446824986104370719775481384035426674034659586652856837580043741582612300392449969926294323953340199340861706685578365350712264081547976456183171147601794538669914368253357749652903451016463360452204743782656815294777370885318858186938217129170073597994861157711259609820962759386280585331719215902460144957958000007493362824580772094939096554865145791739630163552452372244045059174770238101699605707381207107582808638451850834319064227508707633254374206663897330262209510201260707626962082202206082319748053436300418174928775875235116885209090378162850096073451629523399760723206811583362856656655805328124528860704247065269657879622937693447878378314518622356798562440056657129398939640611574993506723483261493661903810452076056799618578910556940501144826932616010719888673531559570021779621976290938013444620975736423805123107674375431189329231765315594876927173212662666373977950531082067545748634596711385565774897328236996172372795391544425495753947147956471788715502294794551547505925263255817389705085000007928350775710861430915291370251167774751356076094323926345004510081110846747029055456038423863212578879757330948370576973273377414084819972716157223822155737948044636647979108729213742890960050954307771328238151940718948407895188438253021680587788121895696431418538973291896953617355975717854231658647529226970900009599719477711378085936485229852793493875013519822260826172455412523111864705242851244986510477404175630231623153822645856037614975017068083212238784168362291915413661778366956337736256700585245174954993868920315779597229837838863256739187272945493459954148721305414128138988616296036333914565597282375764440561489823865698150800212642204365324809139727956516175933700508038758231035565123045810972103964273002389765803911331296364638035003715530093727130893262280073514479522451624272829056111327819132195025202333852056451466013827325067377219689889616690790846131319972325249338663617300698633785262391396817939165173576326641916762690192276350059300352734535264508305733056525097430294176846125948810894077981020129033283485610633086725829102303116602058655296596992427403832295956197787041654073648672936134093864507143461808331303828731482855783391220891131315304750942664888591394452174213800729553677010718615420231195637321602896983000414711994267434674538746310562529357712729512528495483736486727812894616681745349762737265355479400227048764500997781343907829864775830263820908868396724739430576656698570458345416528216047746257180556795973333992096558301485611506962034039805464832954414364194888483860330320446119279765187376235829103889323971021641142106455563243802555719170070555177256589033510188559697122302846967700579350877887531771825431323496591519302261989062288937451980986142510197896176469195246466732168734934783668501832508611752883699255077506806393947404328536066066354757167932693711120869037432033074474191035977383642419387933608168366764105446869392757976986700010264140479548359832218939362863110363419769163140874021349381541332948409796567438137377008074852634829479059994774078939173602281232760797550523228194900653707084714086891290170962442089157474126850586085790168165734963690961960170469469265932672684501748199298228775833290766963237548323009241222043270743968849287796826001431201615338587003920997545046176168770507661916387946495982308400776104172518229990393434711009923331280910509454074638626241249989310027583143567639067983325858006086743132100239147369959799186869030717902243503179948876231633266608118323748870144960339328114321880683686994123490912984363673391050499736890920466980619034223701139890646365971237041291323881100531947732929838292671738076454532435725250723068789081916031828048188028443207100014803593221239946170898005513375973390312960405784550928947320790904206378016830044125509541525660917615176715059345379697964699278717949066428249905529322501413891651330176712280265662152740290174121164547242444328242640416916417266403268250226547403419119212223264566541642846072887464953792410150519992975193347419176270076968746105456946968326396121429080105331702005418936586650960336140591483973342762424785496699474149011206472461819266482232350896834026216340245878350405475142259841883309319436476525795577556513758836844523040642613930048627956297735187555926017020216335872852615741303268658519914529863906908584845024918264651355801772118668347349298374108126224382407979729800175633834068675349230918200390938098991667427724557851748793331421353582414963457486208630479569784360135942159051750482828226581839943653628524037877946292209607176682156586113283406033980055817183042483480612305957934533779224653861712251361786751321271582199452001605943240881430164649235968926033480058392516026203777861776257594910653109734136974379443396469682884048484610751543399705591939535012507033565032989964894443001908821601077824968170377117297211470656246381302811114297185381527137319978988167221206450929638966054625343999621484803984248100735343589481393840542337994852138849970779934555005504943393848942858522018923407899448428089732992084060702555765499422062802444896428677271648959999049891548806799643654048900946565595257630433215358470582023480698632297265445931538608124119263201704036762165173527238520453694251079808285990998585260007168082768736145708204189625166727554486529384042695736054263380488603900437135188351158432134172258382153336907578509856144205965924655754368177199047252390987351834179610134142659747879677270625767838592715309710991659811872776251393541803496738416957510060588935378350431277595992330540835288916645159481655200689552652565043798934840779805007368236618546845581309305370574251432063483641807900137506291603821032577265275334229096135469512645520655106385468669753462061939701445143765345583488837210014001612193345648054978587082111090364057965818630155953818297595427260234645547383607536262042268276106029417581253649251090067680135812754753150763013768596339267017064857073598611421031689112998690020206332281565226962086187083619239934571058347522503806483979223238284221797996694305317213809876146709575544353654245089624508632162994129585300466757850176912645527904300157163214204957880152466961839958478341929428079034443369370973716472868725543401055561876342225034068979033129833129187432369441276099132019321001946402317103185020025699104515150708904678637358199680162389679291818013196476012019577751751878403528677593970743926613750993827608883088635347418882547199828198783726906521473854664944854034837158036964384457733580044449694250393061307639271030454319026163229054345266107601291398422000926352840266533824090614129461895372668898150633704721601549048523038209858603683269756786696989763975725225885031664710097312030234004810300744548553947191054937659911292151266192109157654285365349851430334045076863873860091593076943661094344446002602023306553069288988771958849190135218322306479598755034008069825449494007031594319742137394099483566123418718729038923767028919735796161605178600420011200678819097355762107622792433638328575786917221050052669879379853702240300406644578226400446642607302462176805550264624421691433126604600445639953871018509614636884456061521149518321120094388490482887605625246354005708954479322711873483948767942011510291944790296837956191483035998003340457271357750947789209723580343359576754806174011026619376669692654109159626308904607860698674309149728038455784872484793549626980193689534176447184388182826267899853226240006860893070113256670649977208184740304895560850832362802479256807271127882527079605840314359521093937412771024623081801288675802502888870777823383002811251974316881855845621406601077150088646804987391947832009275668320744766448431550564949336535600115038661489925698802745908461700919865503101228115655003007287026384662792351691233852150964456318886311857241984556947664049897041049464580696567657669676038152471858195414067892384449681705211451533852431970910922128481181717701731620044086784427060084903040601240038635705688550219073117108339424060140140132940675665089724925532581197107256741671220829945705041104418961677358247709569054878943341867201275457643534258619038301980580657150389901021407772056291626250446146430309346507336229919952645333004824539404354890779875674020239667143168218141627001811391762185674462096399643571410827911538975215798983832588948907440763232868910343057303071648638879364674877885487623346425777910994871459502768352864027875361143680045720855065866089959542093187709260427354442241131261539186981790837799253995502333829589076660120762245134076268163164548241694529868760741657798461090502934909736920333794531481896867115069616683595681953025165459036665841244895355525294594450173687896797618081565659313343225497508779366078544457439593619194201945963915084618649504364537462263535063221709860031661156920186557512746507775395681105468230763904759885864927367202201058888884628796219633181450198070662353087386904524762238787200780808126291016508334920414276171260468629880413998860077885507908128634749188792556318082904264795496206479743418733879344698896387779403211872031863230081172347963974477909979342591666488470939092774474653428616862717690117272618173238717063081577839547856155464040600675117888537170765736171990579118615271721618725966678300128152561365140132665457231811459542964768508606553230581171859921204778507668488070473008816111328983167204939420925887594829372446567953921137159106223937609737026501713641832241578354112867399927691388906944767342922695073576759000613305612862195357347866959675530200588561202247467268550671607817627325578575492849944051954432871445307482671487653591995860643875565883776358106629049354182366463937931222132309468018495530822655712329220241560020300461862331817821402820727837146548869179216997709470532048790894733545269247483603692632926923981784837857753030284140221328586687674288106526960969136645044098823711012646649391068722726702503369594671658398489280522756974327856975139649393848463662145261040064178859215852222605017853623397004700963778343686098356361719174543237837849724767941823440294375534362994839137635634961239390459357263064879076058471487918735885394871396785185979282856091054582803840221635585843551686309613132222662576778447691589890369783000459451142182068493888398525289584020445441040644171605936448470096238334475202853534475392688831532818649686074969448434238280198008823927846158075014798804195296629098340990618460833597819527463237537805517003236300696997764967489501344208757784494993082200798064115232749743622360274024677098486841808394039397357893024960851505383696135015072850533457091472546936780411280900394066207285879758707047495090493328005023264578690989890250666577045022079369756151223981478595141276501723844313024220194360243584335230320802312559749733985966395745260599336001046080930058832254419857062959987801476236832263772696288967514908323256190073120822585587676929205407045444997412605523321665255079843858858194040622830630221352603896640189213051353738444840001059937974160665158515040298751587001325505752397823313165991572353178561343137998062818586307490959122813246695557510263615571299221755622319794864281157656596957377895483538059480863354961862468619885963623182097882425722400490386693023709672252426073609927289937620897623285193875772071090026847625883904547115256174303126851962747731136624638125830709747488742470571244003076872242838748702469237060116645873078159829160882836994966399001308271399768109183409635218802842746423736029403002304252924634299808971107704849515307727984745693788732494016147768643199224586132394385911657701812326605330833954118861397407470824394973871241673951246910715717551804560392731588929905931468249692460303944076035077204498698001836487852799946534789047142416523724947379558165124646729367640500994099518579667277877954170335381161310027989457803920029420971650843094193571231071031419589576646226642107072395549522757622785119301419632346690128525042721641711416344348898152843552483033640712858927776863102886415227724976683273438997418124824980176873257911560851274431834691945656478404334192565460527816825557034073621924241250154893675853613908190726830982389486845161142834469125913329938232448673766265331244832436976229832326476279317040506070971648343771261902110772404229265017389589285749595813825754611207279801789618856488775693831403556625676866550932984051286377704948384374853604164438075925014232656096960850902024987281485596221727328267554588816902584646532002950313197563222969107595077675472264970557087484445538455740770730918933222903804282582808650211508677744633792994272289725111946885333058456827290149550187118334167563579661440288612971928964682662888279562643839693488214873404011249943157809060863518006015235489127891524064232314201834466438487423736598545575515279685770097079207078361633866183730785230030659940374550723764945131574699845507975751665079141291751880079225884141302927093717803238402268846182863095005995873410684704598538629988013462272151588509469879484928626575570448422577860473879296126883000129684101438441253373010243300199369643984225509770175664162556628525990776801539335385923091278073257334879487704151979350718543968105719435860712622286510130776250563293026569162064688031606547522623558181401702613274497919457151022663631505092462874959554241184496182197905968726818172268478806641177140228750278595087657204785807970583917671106737497166774077555094420114145523120341904811195019201401022060235147906236416387701600705275495568853816046112146675207220089201463184613878111283807603128504923366220569664570984735686874920193075321128223974998390069999055700403211560041046764654948475791401841949879096810049927760940810411382423650229140914985501339449268979817708813966312890084521840398155954564793046385898233843290053129275877375775555144139699659446806072274705145817897482565924107416991885620815603660735264775387953044615699817272179456016810313205480270809250478433807738829191671859830458544920377254588202954485140429883129324894479033782996647971014081094567115348710251974199166166184292576283856032022598816080106782111443093008123734513159260934006526244935941997966246926516434237690591612955471441231657998470045000085199088264741228002726582921104758095849564472508189507149459547782348846442686152260439969560388725054367928070087095355660923209442191495125773626853695719861325619933313002648866251925248002620206962307396368144636180245233388475672311082000485555813147429181887451910302940692321166089833354705465443752579206804314428969086289893261387192658210837420549887183962003859039430531054090810549693153343875510554333834094107798923313704620206666170984411387997944743619496193542913938794290974266618850993190414445377311007952822548440574494509598253723741534458551199852948590861071504020853194587028447835240238667576294393214028476175528486931484693570145548359259678851116393259200411180578318376220594093615813410288935657280992916093524422321049803359539785821742030302144789447438688806123690602473636395041321707393728644006001069970500096809347354435850882894643316556359890201174981364831149538689912887222394616168934743528687560141137420472051867541793376675944883634420663630860081523079230436610286966843494438750238308411782756541413806352314031697031602884273952005940471372543049096357486270813943688500973877590586259297124669508531881510493889314246324257182162607012687418691932397871871040415145495855765403504584252972293024189895544708635405788626018353092378577279531920924865922659087917069954583371867783130416513313069410717477004440495566798504524521539211762713876943365381607016225358039722114899196711826575373766811658957542734409664457977807572809847408157937081220606898353221557219728129272872946937171157605942711516979219566209650727766377026591747158993159408451880145539976472594349034436799327043804357010696312940323116820320919785192152083859525797663077464117862785908570354437042569886631970979045252781046123579699166719278278844604537113060697451524983407183883813478282187542161599755234417720696711867935619636223572195879128817649813121763089004302952135885054712854779100218889437315102463964589341926672125071646846150553993258141628174325348994746716780117349335417728605260046378127134811225654161919917554058415590143215577573739848452012572104141252432206047108516885171204416631602728280749667163131102395377436415065496004511673756371934055417919930503030190320336247099190959319776403366682148581185058426654662770231451050335200638013120996684286318892473775705178067157364682744139489316358469345795377926470040763179486792538397898309579038363399222783974739856747895188116137290497557706441349264344272544206360825591176826872179649701811185333423107044009957925154318230404390657133427171293705646113947895495207176872624716342072848040597224500968909998117233299432805964311780656754152552589575347211230539224060179637433555838413292222043290958022310515628473436495247875580004812394937192640027226163296304506281898687948773613937286357435345081600941793806946635426334097263766670955600641489795207127257802434518962867494582478571844001153433865635959638528677147538583921376836497491130831377438692971363884487763988415540858706183466760791498236970443772265829718838614650159236809620199727581533525632958198099581657921463148638471635538534742057687111358718846687794763618539832660934872221906750788674859313415492236535042449407189188523358373427089443625085780498313609277785576764596163412045717263624918386665589758929790529598383876656284598735840045114489099615133225701521547297312064366536669971310051269104629710014154013592391669314363032597848673949688674010373681466050239405329965472640305727898641394068957223377517449641083699200099143453217431122543949886514609817790625135369629761241789848861694879370064118070334415591348846709778020219442113098810890435252159787530214772824621386956883345178903872958151531204846212173925190188392048466948419466524770843058541209559041032177284987843917248352360014272124042903484772852504292281429464149850094203599072302677567854893015830624198129816670523644680770927614353790238027150162193230591641470452208967796172747527695768343696213746143831595771496456442816550483830471804078066440336817194236348590989844190646917443078802009990051191934860751367320465466756745999957645217603014228564400657084964660397415874237536569004091882157051623649045573871657184522029760169561995192510204192092831801019590189839549945198176233374020362467527664093170336754164716431591806686245258486767869728599630164115084655470088840734478751596343035619226388666628451758584586057670811373432221466115163593605847649650510895180566016806084191427004439540878115907320860464387467054908141464770560428497940887780215856868838960488036493392053795266424629505125930315722079877557734062120673647137707668332696197407386765343585972209627582383107823234652693530066476385016682336915432444341210095442795418826782520679408213911131123647615358137348468807553039226148396481932754543581917381467414570499630766254731565000125374891267040982366225759737925071767908007458465168621388019415300096975610672356965364207304277508874219423256905642157856536446998988501787610408828223700486008334996043641519149395572145453886169485355911457173973676100892636847067277248894386900317659487655155851962972103538634209883874815221834375422277428440445187728557990843090453037202004894767935018375837843476499853309271045529526897735306523857073617699461409671505430783903576460537765267325357807229042540840764601247345990177141334376478920504854984978712811388999468652678404935316254459492508987141978230159401122706229364638040828005523649036016819313882961385376144472104383230708969405344893408860447892504173932731606999402009238978059954443405730415051590985437464740635795727561001464517774687832721896950724007258550679385118606106414714809025754091117060012599337794413310612500589584293030496333541792536213240771408975010717737165869357077152022063081672373842441700138319452836208359891550557592209617492729552738797249876947857921427390973410449668976395805199276800143390622152820023363767752166462871968536649767731662228158281952551973528559177287395751361499430911747262854768920612697866892433199689104175279701104748986841411070984641039407327736602441577049194231891952047767752898684867555536091229244877341865707189420071622824425038085380855676520402050924059738483091598401175990763743512922099390213640619462820661962955964214417726115650132876374055650995332951174677097264207764840090542957825394769294895615178102836780167035765374771620600775911346341752755560505338018462008481604060639595407690793774209776323157600418409818706660163388501876323880285756544109967113057911723561058791975974375004360587850603802580582409072397207269954635097559776840760753202830669239546985939929207654464013537870188037251290841327645454109322775048894834010024754173691034461565994401011608689936175859141001315965417085693988762009134654572874459814961147736870212982801961020053987590161170835608447483181473626845079403932574106637570153464119589706212019813487670816193835660532068948254664580538818801765425491249514854175398735740687982112121176721688409427277974556869597431704854522004115713199860629668667372176481027871591154571306341024194886356686539483370278739843712766603616543300683351599780230225841209874247910462877269259080452586991393320485525100972154274350068398336684057726455824989703321139562744838457739152097259648605610987650070380762961327939503841823663004435662596969190850987518349079970254124877281838045872168257274513061716595509278514940215487558257635806071620979335109152492539031917954812852992318747408619370029229327293595565317270743221613170950720822372694776820367749169057131055820300825141945729639379333087762034292946156696499865518372532857676669708038582695239612947357416312937357138243480860864772392625969974122717114746153986771749654747332520889346091945321076189730882696271963691379206666415803941758111873800701745611064530323429220043576957046968378651766563702123161669905157964345565681175901795234542537455601168480909244630875255057535410174696319621098733708538114674690285869477074076987408227240276955044431130849189474004544657694731900025255020447484710812934112368991628293994017360000621482180561116840688500387773735434343907669790050746802972043184484587102303514941797031129280307208698501615135893899507167300345849587512439239449237611172217244547426129145151220750490872666042857173695369254825969699565793826797689944986535133009091129876046870404677910608070392014232433030499335997963041152738184804856903123055909210054788792362001470899819438049570349142612560204047770723975973725411760825246919827377042368466055723129212205789527965926470905022558219087519159748281964903036828301272602382115695467868284767520964524001714848981029435380155237132943029079348420641326840616702526174683665241615290805806791717085164383327404695674537408963856375064304995996934404606718737415686226306520243462795012667466696544644654852023349969384143463802423972409547160239897433681629560150398694647582372708946825310662859685760265243029819872956564365429237416991900593173389508794459980990352169918236273091787141580880706322276026022651876455876034212361783890107574927318672624307877325248425112680633166563718544503163865862360931851006362188101436661569456624276295382197913305744110760459268027209637526849152302856442630226659657144738827437135304711547980444792545747210886234231495614903857240135087286111988649318873019020057843604130483816815066611413418187558773728645564557767550355310873496503417681863472380927051382362695882747404367559601633251290973189815706997200968103135363463743925610739383082232057623381742194954026444956567910355580764910293781791847861745335263363797205805809645192397063321530475342776486471503647579130991924927552238322813638371919951253216442700181783703539643360326821185017121738344029456707791650223159176224179866960910369155830741379766800654980110573103146329298523249872320131903791314482641916854676730518187004364922156650099046162032327508425045303822739547194393471562381565932581837740170874223136882654671411983258553056261234334285698381025508855124094080304395234180142799206254743494822185840669353569078630054119161789892914598625353941489732823568926466389118436974394041814554255611682798075938733750752066491437210931460031930778227837252446849826050775199654205140245727839702999399215076131382499022205461420056964472990845203556129489879605698805136281029225090266315801768023656115324389234611995673667404817234972072207405049374534242413419058845679101501916044911055078073217348516264840543636497096860201292257322847971846519244677918170750231673473514062118879463124715700583139583386048972457037896863148011960560881060468007018673863163604150010937701741528081615757580199245362602534108293780425820018544785637076775076052774069389921018121413702869403660844926369248231969676233998942119592249856082279086957950138556947984639485468187254103264409259057472099199214650212522389413401688309445759011491342666408192474761562517684576202956380568178100055819984116804848054529091715196192245886506437475796956525913861537409825333430481162231220808788880280775088370460754253179266024596495270621995085045366834456558258721225382526658668119793628293141110048209519964360574023889076966060931378282077262081452368569568144024750888378027877764091746341462290655734716183634425316372468172635697179850855900650379964903466049957410151520282226813973864893204532873262709585689142910967304244456027450801157598622796006202609093481479763894944759715491557362738760130562879893236161144690664521829147671622284483809599935958641825437497964488719133841205179445400952737330608569036389641928915182931877241937452905024681800807143419171972035662447474746002920310172941723794893123361186172156001445221982113132567331001611147939327977601920111640085458166030700189553387052113231320455393802571625367325488011015041933919258580744765068147129082644817974675314069153387613584434775433572655904703387208624889487380481758516232457696986356063395672859012999874558372616730619716458167405008334573569715115931804934992933638409542423618606142015338803089927348409131835630949183371890577098989021749167187697979517487684782700624797655015995021402960805254749541698494521286118478234173757242345430842210433624237603455796096961252777647119854966115428218478982840418059107092689873723956563706673149995084968092212595521612662435476436879269526834274685242352372111883033762330720320311539620552027821870113040721139462878574586514045945387048444274590354143502355936858830402628903605923909282102615849949884088173498229270711214436301310989526576358788853405625840296196861488453661571441529462749696834244021696687471495211830427670468059520787416593473303834815532646610422386574775067658933731752746362066512988493927989850784063449356580422921261270193516892593596203407422694798312420431664950157006755102494134483689653555711914762453041957747773764235478051109728816947250740988515336259173127996300540736739770219946177084273589166820830421868271711362553661366148194366371949363506895591990470035167069843833896836340219902979659426878282495713011057091774890289614169780115601400957269642717108441589995916552742880619711180377577593867706407692762181697167546572876833638505642185305711569219054827494438504104945186328679407842304369173168597677441720634762378321748345186281143933855089174330828358333738038206733092868342956074185351496815752267240807248286231991170619922424614776354102897369866732319864589404205613431186008640355533179973327842022131831423115159556589897630260708847614123735626688157727238923691221737067852373877071435757896388309693850384567264076283378355022837945889898852095047310036122941700791297637371866129066650102564268003387429322109625589266140070936943639636535240366612480975015048727545679205671885209871618572417160725787254933895588941007076554390398608580214226198158298498529631970686118800705468479243716139968964713116109002352596375153496663119888625406128246453839041301663183258986959804535468338929117995484298459983960579703623325877928541319660876295935955474159737748383360681646849189896266830129876836173869664395817267153646699376223142080942337329903878773145600383652852356436794748981867772741414342332200336263443395304143371499023281975353461507151848616704041084700936510027423922533808436069587920484973432833246106374089720341550090854975798543100512886218103975707167347025774264285578170159649804683689943173404262761005616356539806383134783618273318900598873274240999218968176858190397815062465071587043708507164777904177914914785910261151672220302067442483233193041441832322307659425039443884158546346399700532733953016378636027534572175422376867826116259364051426651178698774581311770101618906810875318738071204223553002103045791658785701191875668009975856460279789422462781263269829681265538186150458591905257476955935732162833892377414443789429322207841351363067861014083782628674861532679701772308854686761717788824921065257008989708997612029658804436591845622859691119689097123081241762267026057329524592183105820564999277531846821870260562179976733769172724656489151129434891421231048666499155745522844698758536143704500464781938675500780947330713399272329141136883613342807243402968224126072124012903519692824462148358414596219288323796422207347511931998099792025281954289501694289596917096932975672753840432483431154084897626171858049857411727958429958180720015513973416346419696718975479869761495015356896116763158293814791059047368924707890688922905061945335001587150723671832135150559016380761554529554330648473355550622641441155146687815525456535842025530893105612177005581747543074274738374849849335686107803133705665783010713422872946278221105452778897791315507470442015458744423876565145377814689233135833553314722408469386977488788271223200278279165784600095098328942231325448912657531703291571690115453948339165447201377592463258134409784115017669843703014384780821264135216299987665086558726931672011686533532101170778074566180338603905521139848643664079946702826630515199809997597456804458809924693994425396925134323883470844529165667745797308793720184841562221680501691108151939905866766000226054453874027543517558311168753803941322424142879842809286383329203381687589325171983421425226782406234246439639589559943596511087474273358168133250359343210838825898770619274964313719041718629217749910197256235833368602125797127326536788836263940088240930893869382252479303083329058264257028246271828211762120924160420715608512247143654680444089673585139055589918392894903228420909826474525855495644210169264864286888539989251719836638651078570391839764380980299993800061397920525966179390491951448610785922436055404440543664430451428790987873228985724900895308284592850151818256227874450116713191660723860420871434896943436456015768706365963716735846569580481686789880460289628490103801118744527428174388104116743658678155989391409335255616053393471923376777458598019050769778286503360148168802454882903891535723611883586419336577302514529071046432941162144304734978206327494124421272764142512746435787402921829849194928408243254928488446495664667725223081188388010829867367693571096281603281264897188678369336575659565348007524895010506396206139403729294546617843973589901308883667923168997962002124802708693289569316907195339381621967465021749681626513417182560001355856848451988573551126557815163473567999530206727731243112906655701155409599562399034913796133023568824571172500285418263604065851245061440776947815794770345513322290091155062212267312922271945716387736469258396791275863765934216985900024416327111306191961683332596712642587629741174896720539896565576711066565629145737639565249248481953617047025334951247701300597874161048538629645799271679604379660794899871406123380628225713716853775981892545120894448198705431963917586703482755159673305247994010013198501468210831562121537926557572870450037270943184269704904896716702365403550508274496727173495375180485212902905902100367585828130112780448974309957021547754600531951871377238935473114498908139616824729327846196685142987163972514577493458607546111678479603471470582969119741302920998138776202980918419773196527617048499822463279410213467338346041772749484132445717518831120442584044934991119066617279001651206366101629686179693153728028331493631857010643575125352219148981136952855363928585537490409323026036101993422666161464978296455842528977707999362179282467416883953053754639200358243206579658088356880272953937146975181969137773344003067130296392489176082578672088498464689012518690060517528136456526086220412172795424081779444208980933310190369276464932991979405977668894482333934728262999112657507054622702828184681922558666006529522493966524126447171459680198490645971395548077817007205093682316472829086862732579282893399155365578123408412591888068271612036829027348689910664063953210231007921986584049465211908562829803987371750444349431125825151469841967242698198093472875625830370324065803120569036796483933950651410972742738521083818283459723069215869544653450650473170073113670170063205444433246364629692132008394989917664468788528398572771402659641757519713533964350261214777542830850495665801009837542301464432518926917772780616517781119763119231132179912277131861823578908205173479207826136545975842373552554360136247415036252410457718377192784961026221178010166238297741587515203051128997505835157630707300224729945594953628734495672622469927822575363180313305539261420322844550499084003131488263346157931698328272788382696012166899917535582453367854339716221184104807912103489359067718774182116256227014921376574466176984770987906488373558214192669194373373336782515693416470109605537412193637882430774905990578532026053039988371870573851748255360027888360572391357734140947417642576987759665828986966792178069213973398501142587838891763435459835805846427339908550619018482213520895255046246694734635392713304814213931913269891311749341700228021066957431747798082262384024433547405641173831288066649198190149552705942327016894689079795372225943559725079915157152477448658973813982183857848767949616397607138261464033292895398430490858861285907783095943812451825290459459198007028147027529115782175961289626847639562221200447201830394098990328124968784314572352068089270959128730391996110599539146822105642993524588089277627746983171550785914093063589141737462243761792840759937486103662793338347579971465486565339088776699308458050016207782529131131901456932891121435644266871830972321671076258515501307850328611817869230338869838621776748896632384270363521512983150546122705576899924786785487046564485404199885489435823720802690036406041084846584701164862382522883192451787060050271692795264375126979513613485219198422885238245607664224003299819368765081829146113882436491450406077809229464988037908556444588098003405009081488670909903930363338726148554310466131619285074382977283909517233977046821745347530416936800662103098698192348221794092963878530642161233113950526224136706342331032256460224136201582165923026981381792658913326836434630074680270917487712456987288603681534381124895264187037710536738496240453380598351340107116633387611450096887500790493693183221502168710710334925051308217572496197417346273475743744337286548185707473977737599748642111497180490246596159285601600995681907818173522441292508906062282922123218136351719139230409673044658502702571869460996268055520580084372789726683329888894560345526639390154896665221696204215250970377728606395857197437233991261891953146829573912854289300085765051781630535909549733724365369402505818170340234201570379077719131440574383272011091381394303224950169551990666099822269166942432107839947542925178674767833032225712869628978065358702496363799379391564730222547839148170824099123292110005253743284463411234063725622066018362027439814758323935331581534588168730599139278021841825887433423932580654236770351421950408878991655429417537570461754638284486445058542806574911489410316724310817615155703985157608404765737877319800093794881744444875259952731186684605151329590148088534010455238464101917823064576315834725194286208361344289116075817492529309624064206173683660015582704483986269529353784249493874104192716715321950282627257227349451420790274578396521450910957720368733213748120970522015698976557362844653197458277429213738261089779776069421823909059424066826579801394608865262877198862189826958680749924605797896810934488195989039483829290036212277314901467470122230470791896244234110843886765749994514061325084305481728357133777581648618447435515084531570326899864105382650807297886979964431598126606511409821254572836224533407584364451044447916321706092070884766526870102004139281609103569712071271756083090655421713373966909397785151065094525708302362502855843619618849022536529746600525091767663355383548815942434864289273392324815898353334660918048457216233235922249118256860857115459973046288743927886440991802031708070122622963413059081520796737741279196893032523614087214181775219836395796653666655496002382640184544229625381351904061792407077336297650770788950453079285706614685749651093437572626245909095157828007690308027666183089921333990672649738752454444846226959725145829125399747201561642214924899719729940265369900415819202486422916375155759798825171199821204072048667233547546446982067144680364449515412102200153970043934372336488085987388126774369456036370361826221484900844058739022144686099573205049424389274508155509234550196459906734151989499837107539617868204747847964331844678983515971748958127552335309090288595980870823270658843346990669351675833429568454949963038048206913356257100719227428188774313895294832443104477658444288673426145241809889532233012538292310693772386154848146193021009616618658201276993304645609471194714544174480313817978107724745426327482925007595804546218955987955478939043040653145411516107034132146300884751445776110590931532140830799635533810808931023537892807513150857634838146190162252657968148448749911546085438027375470163872848867031541111378167980512446586762030249749448323370097982546680212827967093365797075232152938634477447222003517781023290296147179143473473318174231985278576683637459119867609799062795728449068127971797701915018874627284119310091942937492036763689349791180872827758651816885561480168288543639849271851040077366879380509037227418964040477075136839123628051049865149772217734434277605714261533683137710099421287592929433446866584411467669058654968521253665395580251970250376983487352583579673189362700586007250802463334592053453886156963049839036423213493658770557287892828960892610008043340035849453296266019883866770803932721535617592584651369585845875901197480191340156676235050257030893722634109818766920222375270340712530960682020384375811531070893036710132515626252465109248572259182434111244999508840632886699584699636581798954760810415514903678262960951279132284730933411853042785928062649070798358124359038839734663706119633105795955119667052923139202514975846134436862329779175044818426469445881233546105371777715885807656876462175205157025119365080507688114889864665590735888107749244122327550210699846765218606602761013381537148742557962900787768164320425995323656899579606827841615703572615473016555219397973390387731924568008087931906630091199977148783655758020733954775163801852988227542658840236785116267210790229800322884140957255781534497400664793813408697460678784937457283585461301129103677596998916833685286308060559401292105848045682835002201928999406668753038382182870629087646250759020104450713126099912849242262468262504332644335434438253587448142713181512329571406469889137584962650768356323373205993064033280261926681882873891846309125823676267117266346101104971570795891973905882957953781741051203605522128577478689341780029660439564750832164014938063377170658774135126530464887580519513583051445228875984135413880740880054359274789739488295124352922661719888854974574153984773191921195014425431959935258698354410746445348180588901275075117283616857222140071067612341398242033853784840758049847589531097415398282045465563457422924910876811431391731586649244452929589085991078232816808725566654067623696677162390711077386622642231566714286471672751576299450360212056568591133547311648964534709564380780179210356046211383816728472972739903635101967356539964015461321529199683737436417282873196352952827724483068932488688832743983939054071254293316382638625114166445063940071412880551608018486468769383290932841948026884704210911605678629986520399074606362342585015006985731408877010716547910079332735734799239728216072942221168649228816090193311043182568193695935266665955237379109331054411274786381831121767966923734795421745676705045101306306253220439387603638987976170656957469713657268485429718660326198276562720960806188826400952624637643208997119398658811510800273823363640453548370331214577339282509285479390967529758320596398369411304075572854833682115323334693041226460810052303800956709121671609890364589581971865947109114184351542351840788852074944126905165846322001947841189579201937964063314905934189122286187773963462558785272711660393581452351196301775427084311457223757417458506262231854248254899393997555201349562340561678248891561502711633160064385468837567014005222105888264347205201581541674791245102545463038436779244786779816835213052492460854868055126711657937953931148714388239061071834531269453538182548659198457893994539060567569471278745328275543126850762413073666103481799996305134096847968771956346122678317420908726069676122095490943029869709076308619760522012017571242542760549191881614626754596935417808588487718704368496805964295418297146599791658117167504507430199522442302388511248150236172026092382744020399542513464851018738818186543476914741264258931285014980117709796241431563689333208405214178871771098427647938823784360865526386070737677087417709696925554825133636881043644059313819116269313645915153534323553621531616270731021113307074870821945043995436198172283203590135782999965922140143471292533537913629514946997498702826066372931286438027066721349612280927976395220492660636586699246300235746181140864910662430079271556467950435517525614959691111363052259002405966088735983488088310149730395622933520465531233812303895029877098898799802555599572171197029745093364847678697164614035935109844324890322920772792875767217253058541756833263679528525574607006561196015493043961041611866713474579573343767929465197724107639074820893208662009845549471640007590284831582884217473079686808950597614152158641047969566580509470462557330455350418057934072394933937225000913449727495117667094897160547055588931596752159687855899991637199472008354564248091282876092856699495683824051464575793458810083173382778789386955636149699540191546629850930903071013607441244709957018794428410003033391374984854035553874550457484564460114719450743574284041374436250665031883583304183987440261679726509677990023349375147826555975703367262219845083389238810023051358137866080923292272257977283365768110259113565302047039805710824289372526747021433476667085522988150391929233959943261802840573776977973315638709660350252089500959853484852650336376507072933478617448621045848700998473676761144797286648468777158022626945376716983168758295869737654277671680473653319429368301352438456750036979764881757265006549628400135036731740511812019006054169389696971280757497577303601986628028970583802946147227725230449653119829335649782672809895092187181801371787188896337820622267532326632549017397512241017433202001984241674139937556969883551631577954899436987570393795103563659911439532471177098165731567363873509695849904887525135469965004419792136138437270459764721310343092309391211358908079143068692909784201753725386524328731255692559982268574999632515067608600979448438641939662226441577851252547570322032258940183191648677471487318241812076602744213840645933870699993428534094412806852679495553267035644979633618159277991687660817276004437165530877367307093392436862250400345966381498088749654508525226329290170134477763025534708468291437337589291693189592455083021102479910171852504313748605175909651369049362701349589649816315637871539420359994397843542397665164052000008156109121385213155384568383163744285323372114837595035030417625681590862792255438598417714951999329923807490619076800820722101136832478180469716092005358031742742018215412351106929590998576437793213322681169906746809313476196873923679391240589343796876417913187844419346408663334156657728806171669075689570396951456536812473572768748853512111124490665654854156127649265419833178471860521149996492577858883704154327158559985871689238028118239368160350397896667101498878145457550480841383084761807202141370472199428811912602251492596271218394742249187539863941552828931635816639397175643984686791920619303400234409475107510213069660709967951266082326583593754639429814452306656136819797791600549513508625087951127809931479025024827955954185436947046408297541016890827823982922977601334533129086379039961571886721652405647266013704104666830537693018326672238131069952471988156734209448919499824576813894284787122168148802997341325698065630057236463345781598258220611864532248933920859692850990104161894303825233334567034476063807618883484979096670127583440796360344914307903948773882968766566878957650745990559298702128482793392711356691882024809878902860861074797637018937267785413114262765686002770271918288165763245765555721963811067186165252312300047428328242964871119291250337389545354402462719321236513132588536355226854527536011093836800432088606302073657427962382659855193263605473904764582519155340634191853745425260155561285675508681442796723211343782372785949222193908879125872884726654327270636370050773744737266905604266229520985587668675619343541830372303266778637050439992739652212926381569803784947277344325320557314863558700782981354678243157977712769519992227294188843783507085438117935748843991283531850754899497108778555476235940050274341014439695674056373602196064482824270829933724100470176059379797845415832034529074662880949150426318824482217311399823701405946777532980064058530836689312866563605457140255571378128395160683688414234892773084010519719586307583470209791329069053753373641453787023283884239577291026655779491874483885841949492544288111056864178058608711098903895744762989256983445556734412795291544468577943493609430637014770419529868519676666721462649542344093509410504308412756816058414198312333878353347730501066571386734451951725402383873664686276696568699505993590810109445440039017053157589997968506277764021267669927788973315553711192726295659825408083973032427588199522395661074991032519445280937946722409107385087984155512606313071625212348501227164607538004704699106331099199079260400984234968727575994669316240072859412635918145156772832155559510929160399965551223003623838879672565486731944177477090532997655113541066110261051481667756586353169945954397811094503491568432400318669975018043531833277026958106194296916879460573330539137582557610666821047342123534617976552900830535587899233902176714051958436214611241462722242537564728304520242794717159284780085513310342341095378406966613551354883185134523819866431940067491997165853663292617015231939733895616173113133963788091016036447935937830976777200311055067311644940040693564884893246246039179637295352010510348411389704141843110321623404765459453721640187085605892803453820019952520494016440824265495397225256427880589173225237033811472650993127698425578783647390979173024102996981360447073535505896168546701013299236937868620821076232497192795280715738326682719894393648684079970831534536293050205696366486299443447035476421533121871650575895753257594772238412881758923638549887916203731772163998609767176479735786613245813051234021392350710348638304683215447189587717387001594626424227565675684054408622481511067787428092220619241216003824598919923745501719130389557974849057616819405725612552595328158661320815918146082631626518455355349858764489624546703438246564617713751528353362530409296503309328680073238436340506478559169456718330673504495550179056116630288279375752629331463008909347478549630483235076111581077911711454689297379065549309475799214227634031130797720088586124736923217606848448897400312066372473206978468751753099767369463500307967479484964968438409039905191263808422898143939313684551141393039442536513346716696161784233177977427878368685113316334138209699072996623682313174060735390350886919443880149492462438701036631890391814930331869950033899254270012546482253683227515335323062978132523705599038098911568079596657285830394231133517672830102396939614951205790891346855289365206702322686369081986327325957936803956437580423321797372630354729411087694343810076769503554983160546465890704348218756308401654761642885860528795275637053479949242222161246448352000593627548385934627463291971082110062376249395975768605228125345687470594168221827191891538322523460116840491114692869026880173041392923364074302960071903919302073579872326744599530836235367890864405531969076116926763881662906454490159262927363870861167356970484604612734030946037285232932643864955423045323215614463205950702683936247882525429761015621852607187678846934359848198254135446490903389419754042468090204017734772339563348344709311241519827436008468132360173314903209506687984158529463469205745317015935135513871356449059052415373288417425793813926354807271000193749861446342496419639978741798772912166892042508800827331286465896197018677752149601901564178674952883212191518354430752247351282078645273705256501394096391461488764377140045955722909010493819298038973574157392485594159235913826004376125911381115129784418453688358519495160582802445468762931171079540946383274342587940962840651646437629757579397406726398715687586136238826560280608669052842220838032769404244608396975264371596118160419327161821043750490359154191815001579492578638411464359426913260858769870982581017071606722288632635907612318195679133318432253926971143639802310530733906180892521204530702182516788640284069807924487404712447572046592269249696751588399821294933727614628579701463986160179906381781146275856653924344207700412979809910379617651872919809576273520137800088582444236005584642187146583595536945324046954555775284798694276605384917102458268412147240365795725883848373080701855953723640707943311849172843509108449991190185236054582321157692535028337107801351606778756242739378691454821065532559854066425172253199883125184457128886100591358342738791284755394097267470512865299116327512494587159484644280231727367950377758008530633965348495665455281454258713867233588062512484115074963511293050235919734845486069701361459201792449872403438108067999758630734761138017655151717273131965366108697319497785643502471495364369925562524570749171359009960376861793303030046489338333130346823296125173425831981900435062874712716841432509224917140780978980314450799830892440144030419538639458197555084451819983862548083272810594940882268007438062103036757974682641164620599064900353428491991493443337288364457431816252455425580389723156933800966987532879759203329555207885802315120170819730293402980684701727105046921797491425299211774117445877373841873123165098079951187112012828512808463400935743595486913542792597259501159811354313621238144535232641754688476798627497739006037605406701775897843853672608477927925199393053975337236573018406536277618238493124456721174114173168450714023814395004169127829331040885465338313961988574769123711633154222154987947295438349123651767501024130516008284346509540649412559268769241580787243741760191812300155410349457386406062316964427420380594950336831475538687048622247019297406694672937824064966881309542278232251033208793097863040210489265084987382408630132926002958533521293780326341752030556643880931461176438176772658000751422710257798738113395808837669643428472293441072892656605526417211235000470569195748248615066555569950545200716547444253999299414571111830819680773900170465929426936140610366397927693388491369629112446522514314677931145636884858636045483409417116385977706925082644826515773738386771506405032869684935035906946643367655306733982100811851264529149966229788563841438731296754366917461231923042758754914420911885795149259567621632566112755265186886277987723426041358510100958987365059248865348207136525362411499284635919849591219383314057698277608572918975218676146742459101079533703103018408188176979685389635435185211240766741133945676263896569213686609050510814225171550681651677941216086914993085436154912266770999035062707276003758361862994818194299001670692695020988596755953939345451684977414788175655375266876369553332425878663665416278197687647409323978623529295303577772872393897806485347948938439406050301768847527125488403073774158431817369036909433093233835101183004530581012847215752892415729212280933943477624334243273703724875270628210728197537715094094943414872512032311587278607695353464248009624685057033262901987033457055594989961336469943546809360238000755200270099266890571165713509711340361096301223998258950947404399068933041215454615739289011534755505214516664833748023202467083651835465654876869188441531743491591395005376286927012920295228436806942684138393845682974238060439772678330181948072372467219748816381991216814379773507743364023190078739720324458510871753726320360414959615831419996912208150876970745232959290137800805792232920575621809584241073627855084744093760256702847938073371467778369891294406377407087369608801539543287513255150222060402858487707523898225886555469179100288529476717407387340829672363611117574564361150863361590613781241976096028034857618853430228747948937977758991809274443687709363474564531281001106127280270918548891260134144258113990824454976444726729660809420163621000807767176479240254190988121615722340209426430640372513445826765361674587903263090477625497016837322266980986674338065836223844817982335283904929384441592877279981326262386628928278473725103851267366036972038542110241399180904281028886198120660348348653145279594779472362867643694804574110990935167980888922218496852150313550297053761381052661428249505087166439158344849999906878380093668469244912617070997882786953025886086924349157794664649012337572569302648865901690381854762612319562001868322437525766382905154196098414522024180174670680081839967282167843290241024949566885760171867381043845639951964067016892117855451428484861539815555396869061505180822871814451604838010469499743545292028682151399084201056415126248159674063892393276638115942692449896442231539901407294511218204116044985378860599342180663117679679503501884267455240952028282429400727272764042404069928583388325767841936300004586415303435952652065869148032576844096504443286790914164487408621346847088062430442562888215591536786491203083598940226142620106794099002029042170107287339806092431941897021985469097025050160114938791237692193551023975983516328937090618167076990808882169514877143461851235071641780702248493912368920644383979392386076789678286522359083491245020045239131581219986971434208982886866795399569481398515344378910395562176968101245383268224657011747819940912266485143882877665385868109447717491588142044940189871107760004567905300477175096519817947812337693926333556319630423585234510654170986244887330733501820257243115421414656424286347675913806603024997244614969711087754837688990009289616134076811478278253127690471223210793819302652070341179586295368283401989549401956925799457217258843748514329661622596261633998585743298829414617272724978434951787633181365855519015834427446480334108332602257828560673208397495789610563802450849044142219594846372638671078799441482702135696160008278410152498269264726834164843812843584649927137565240479779780507044620399045038789604367354458039138889012401301030916971168243070736978546652592461305850278868639123831089926222673456828086410666043348215949842632650554370253137182031550561368269565676056696455030570908380469200807035684237913391648386844961348354469535547716930353840104631472805931259294874487029780842867906362940866579226167750307503678125459702876768795936994919752979427289843863816770015735713803121476002144272317596326584788291662287076918300112474784911864298394411987860932428588417965922218283290464517112245365166500187237461000488718255491075555215449344231362800075435993763346101654850936742413492224131200603568911384577479894753914243467553940599196239666367583118073574343550590375740493523335371130059353198988280274508859281901400244450652061586885676413067798545368633750888886196721287877514436689108731545944626331202508216623033828172705402291724100864222109166986930364481021719057323251153720169733665545976964173079267290266579754881625017907122758993639167078310332477842743517581501200776629644009768444115245525609499668397737610866658568855843901200680626945215283272184020388984449171581294885057929060084571120020230988938000787193732067075494790900486540412348622504441002953981610540468903823826514424268265085151387527931193058590339481931628259301144195508580927093630017684948944378515683068516186975949061639741407758964973889777877346723457767579688294752623754192964920776076943691185403823506196805224748461597405713674900432484222076642456120262463369526505682142034826842718443738928762117743277322275759705880994791108784466995686367610441057580585524330788238026543455904208558853731377094751458703713427511131219364802452118904581842904023309044407056181939533234520894956406406997550254378030850946943050601558262995594916888584282213989554284851298559044766076115495056495220606188452167192259093139503919990939852986869998176442949815002621203613840777002289810584316531867780188822006701498016895757927231798065901481814013400760460880213883863086029850151159226262117277393520846447347127798472210805898312165181556168300317160289358620303276229164405192631517644898025733892517366962628296122513362100633579416796049179405183930511099435086738304713917142621907635897336379121278476326083989412099797980622381451367463378931772963440852476598674210777996946840342159040722191883422135560795597264189831628324853836976598545621106121944879029374004293891735132385755967654910711338123233605242717072961714601372885634809423793879286857466083741266821097570852768756431556423458895268021933768407568397967704683841591125726436859994138507838031492166885907002732280497111100584196703860981235311887697054410885690234779064842873116285042596827651433593760698294359212562902718446573616709597425512770259722750635890665529373753215330947985810596685766497749989195988355142513295244828233280237413775979942288321813874792387025407357070575543513434661878839047515499793688159263386761920470180093755110976751788887838484819369874866671790110170077273050346385987380080809644837736988730862154636066710775531497087639170065781517107915933655187595984600416938354901851034905465833631047014528340793331030250970302009093205092285499685561080304439293311056381882608039662033129365436931681004101451187833340967292474775717487261896109759001247420643561321324147770267274101134139783338065910884392706452514516836738339186080202606624824155278460723843492430963010513231321924986403816797109957131303369119185839636720246719309780472813500311192492594414248733019126228337139537769075964655832490748601757160174506912949414449256322023021687510812031122558408126192033110146614114683575250821237373679172774238925741555827048950841018892827688944006980162819199110608154584460339472128698135325915186927426816252105497362714405713881191350846590907753445866758389332741533479826586101787843935906783668154602447404256375610137253958522955423252672107711596943721298801888203699749071646948400806659778251571660634199496021584333344859468975386055975359904112848979175608599486831725230268633927351705546567189200225445305263633010880726769571631691335580215508805175837678555505846319049439814403745658507238654075473263189591226796750862760269987629991271536713008358205492167076646925114755012089781940378784273910972565448709620371170400526519252523477095061235252160808118033552469637465414659840919861205971596769553906387673443712618700739035722944048285190746522098671875887437785235752848511910582349043372796552107022890960808487638348552796752718626102894462007093315820033756886557729476578840662733720544159974305194626241306850548953107988348403087313986922788916729835294692849505668545064875976944167462449722240000153363801124606728859710955375267996559415885673458320175254947020791585308371201674329730811527228291264914927866738237341904724884903180987352768641303260371924780868083511984013646993187508062036696060714574529648807131870575780982969035088240340311798184530915310349923029823985309510930040924460584702623306367284957626460578295375556741202828440899110647524401572496323147606667109412769935007542743746841374915762816204589078387107071638825430758068672535805496412311412529292588351171575536689682721986062061020338470707364324402879553113885649326367135764842685033530891008009074327407056122990460392597093422153036715193123983119948661135205720680288944515896874025043186254619066614684387139676176382584926587637411558122037382693719190978436486581966380915370391824039192029642552318619823510822755826362242197004067761150751898744968167992705963487341678525539337344297236793402501412632578397749118976719970025070765067601826042164342890869325258246360111057824893324931420052592776173368088700686930708858794811589594902696994472330459126029928458065543331777201299296134405565174317179906492994513211255433471844752630144311701835730693673218590930521269120847043346760405897224360338110157495398672607390817510919015560251493576114931082474905857175199194972494044351160519729035254791520664459746677068523350806319925254775825959588331721217902019240213019999093615293072015610241700757645439398141930207817028613261431850735638848152441768862994070829494052198851512741194266689016368348515824109780460638057571283714752405092150020387795588161498021674868714448539433030476924730885002843429318378071281032765935164204160022174870863087451191414464350364726593351554465934982537924133660180826246021605531837291278804524331561868981223093119714815309318877396058307630136740755305563620065896869407262244969533561807519295992484882346792496055785535918249044103032790199819969594806395742167865941746546346061415158820820480554190601793494089748556694460323290945632447246243102109207761179659405385633042784888340231707652982518273209432708899768156781132841684669156593339915485752645697791036367507437918372295765422180104708031524258038955695279055668796404832933194492457850355780123967878593267315518066179056463028290948166761717701280080894314980613909889081743595395746731209497147304422285565608161502098225377760198357913011752038163804425173879654364730485844136065944088179590113478907403605427059430555013443769004490226361730624800708138926024931670864874368952512902163105260718710662786946644377974510103192254587606710925482517068440094428879863643451362678200447412431416336275748803998145798520202754141647562894294195072246087755436612053043538440559002800393175131424230525513677637336559279980528711843921423520473752776927015616520658235923983137051828469994549904410837007184428668785260441212601381833865366165233372584510192157373295698981669970840153540906388407681533251630095168147554593361442308661589177991171183936708306421650211020094049255304556092832566311533776860680586977880608406846439750789413542921395588663657791112465820365731970118695923957537712637922406904473186002426434855217434567982332607935553503383736517358579289831291819795034048219521129039195850286206053147925766934635141883685121760784057044892503808591115640237807535299376021888378984019464320984057686615901422658482528586024898794182395768913699470896559684905822066081577950511030555547834043867754846750012028009465141678254086405208974886564161720673646001521045454583070218925291389394724454049469775975384540677388112597184561442809376285708620423343079070614682232640402653885405645745268505729141326735076617370768300128515131446754217590871129288088293497477664837162936530083632079100919352205952118563507268468751715246026568547912495295960219730016881939361229699665018571196290948272643612271835917623216584379662778586353638547674545617850148961834254634969348015124049615839169777988240575850020896685043145427457542516509443410503662026607729104628324787449714979529028280415418564211823700480006357804723645760651223679384847108296758527291889471277956303099505179873380860383166574620082279775080066967011022980656560724046001318649010639866444191803483242944288461788565440396139667523699751148064170008834092771546104024953513517915102771853967565938512822220423549826801387663945058279931329707090223812747210753062820812797034861598338541298837578389923014625623968178088829036030883967694725266150546493787272097998730306367560189988421511565017821224565958498078034599368278004903583273780415813941602138535540455448878860923656224114471306275394429561242011964434393390570374692821591083572717320064965011500259025096756521605596367990603843947709161390195294715351922294657080405876518647355732820509683368843491820832324373085151709878398272148741624902314335489349556711842634731054860052005605583101585300930996116208597236972537140646279429930268169884183421275708777173252811228387212246930472012746640994973803002150172332218490323096617454059923385099547385216820433330128774385828862777648890877312841306899162640005994210712913027385263099571998098040872551082333928950830282996744040641940232359709144112584144154970701658492178311016317337683700935995972996361235672153660506307744967246919788777215505614122744250672926184863855007452670008516101274494236830779670034022546080878344529296406668964999519448671635791415276124845141994111886776999322519116194056799462222094004219116604903497139702250490609138480958443859167272355347307466172377981199405171620213791124958935009749315053368436241731798944931370289292875590661900745295369782852563499515929576901881947713264823098708759670786472241087642249251646245443816569392574461466216816523255105265226955248009233954119955000129487196431316325694744251803258002698939069856604880112089561705240989628645727468913321341672589986027212265446199678340793779150375716422337835515106859083630836984203296970814621120537908060126892560814667695875285030249764441486321804838814347114447339906290625321300958970078835480757462945121677183160715804966753179505528024173644713246858921424167361086268837340672314361368419687057549725710084092047979909340895477697075029203382455023911221754780382333580901504637586557608943634701820431638691422532142790931118809163970886541501586575854951868987976279788122667999512781793428343247579084018708280396349372471778728675671697070830123698447860315821992465507241843212335403192751544889850739522066461468148710014698732578879473478058580600602957038983548561947717127399373713261674229407372162284252773430923940332257981191097672302461440032491311256602714930173787129536260264336424982494139544773681309429027077963671872198730575677648425849304074558365794717087082228942170003249787072139043151707094413487931092785492755977895189088885502261696311953968136599029282956078090837527644593658540817449666467952199887631047351793201421848852182436203994043820269844126105463420388334780625783857668776935972046874637510544393304124118595715657297890495365719330670060794105386559486956391612003830077276777415038998312634512385439816456871453173960274959286398214983579638663590860290405205177690577228632455259442216638793640900800171141003843893616142487753158183384688272186404582547753747973945366184548926665022811546194588752898709547173419696425059700108619130524609383548652423268290348309829142369503584737901007531049516199922371688766904239851541645115118106686004076436053680750363334849200725853055039421440933913029448913699352258742993302458519608239524339472696919494068581949983313030755491165081436079641317303929431539631740806502431197448430945137690917181076171606192913017129395402811289796903076557332594111094512005438378831573115528659324812340053586647805868748281201153456572754293849476031554035625096753400697402280346851378145916003697598203835699761117363961714726017803391570385502938903327574994624004434085443863738946718943333806813817844023672836351643149666510766022705311117927571165701068395610111426831750838738726900463706387115428042874886792870393740555240102032270085581557812343702793539212938672955238763594196809813305234490149072276963631276388905602731943743029432971124764914718414803871043000770484240421016062067328320578227190759980920373192691486116879706486225211714358563634407941844011346985240484650976436195682655696868797083756542157747501136223099667112402033399665801012430955963097136896564706754737081901987694468349108402059673455848401352983658676194808523846704217622806566533601589856956402041559420434389959009448236391110901211688791716907201032395751116301410585826733785042608312855071472525165689816903892786048569265148204558604023515323893905179141369196136340874243513095145146704732323266255459115620645460538198902747938564862283505836697523761572974388986814990057715583773192188115988389502345954847519310308871346937366609079148538877612926490990626903399334975010558005366354374012799382671728052333411272302355829614412521628666889107184028533190339998586996617319043358713505039561448183527928886071362652308439801859595687954433676488165746832084092165715201320089883538720229200989990054226809326146784027605354997018063199209899020417852137648763064434910380496179967935587176825798450972495680877087045299844679825532727461609954266822097690112215793940460991512252068302898354804977032546671809379857529061102892451891182270988358634472985620756103747628895274637387847348846409741704519957759566563230259462882309923971481902179309413317592032438570885177257661970228037735513579275598437508475968221514609170001631112117646358539942354289156573812266947457675602241753764455288987979143576457576530676919435352530446390875758341414597864604175630623704331755034398821129864633235729954888331556592226070321938359041123481412486512327984495996540080139815096615013780007652697823674834995621384930028753873657592926986324482085349396134202669036231355740420621341301559061676381350680405644070462528691136406335360763142111209051652134504938772371732912885483740543834185763194374250831623055694955910040195684522069339962691499143046019484926977556337074734944769436552209430823583872492082645360464571237730851805823187359719047696043609272080623158710683141540406964992531752102823299390889307990390564896290772482932218613944302205640764782864708010938054715228893831041245654118787268714431233634301634095345477772056419133176450351199758711655227524614076687325034834456633378551947208888549313727311090731007628844712226039934733604660986971058333446803523412875879291585955074854533624730780783824579052773128683842183462104889160770288201808371140345670386087165306442683821679366163715861406885248428630704655669449422845666923147592508703126054680827793826886197417085021528334420363841551500249489280574523156660899763143098316670026699667730257676201498557494946587044857582971610912038385715229948581118854404575026392880669882026272661760386567950745718935843568062106126635939889036000306709621766042198649128953677377292862788151287279183016432855255447755382838657901153907035707302043889312488884429068485715253675732148778630905307791254899563579421515114974332248619856126302947166081834039767177005827085737116842738603745826098100081518023800297150760449444190279524131961401482218105059686937120407694627557418798397561402543893241869613877952185306580892780554264547559679105187268150444774158840354508818214033230251690247685490456170455495749636301387602749837356143457996044187561721741154915175234606118913768935943768617913425303228079795211398870190623120300314979424708613848136083722404271988231876585982321373160581735712873618638186302361374460699459285701634061962268622021057132526900973125050535911099625071314398925084441838516630677911741882007620840940593639741878335874251741495640167491004508143609043549388253644390397259383717947402536207084209035422699467479992533273388189637913004642187997345710014121249950483231744810701555458267536498337137385064712183805436560275433228877590591297757435514549234516393056637207530876745647299434114834990691810299369271931007049439719924459498744720825059273159135890030693819387617480149578474464580274514183742667245154299817132877907919644567497901788581970564701838697261335348682063543584751897363101000682406569320359819854263497347664757568799845603058014525135928421719507144211975854830623675830936542595638584602510610240925067466845882215310397958774466993360347097387895138632321374372182740978804627082664494802875606293897611912714292191588094197776154583935658163609002747206756851317621791348018724603418795276662293227988951488295917386111288561374177968108783312630511806459836117260128083289196857666518472800290663350368954905527874598420931973527006511345385781754874117345815393364948739002528217093539562470323199510617202029851243163878083221518819489343210983090474757689194977147246681500123077243342514959489876138235429283517033161406617177688581367722596445851921689914356362311289249279360991810128951036557719433496331480211810725618020947765758106324554328427138286648962834895472926524027311631126916541443618598429201382586390798654182399884040437612034800110354210968818410606336455963503549150888613576096737715287351078741148972402398457701806560484428317171739731020364175919219649532253683473759597453773206194344028330995259344347573970182813567262295083087595325359269124830328876425539695137612770527052171098684538913327151628087979978307893723427933476034165273433644019290023968647186638135168053146671098408781009771011058690021562446125895909781959187721560070109506363994570369860593802358535843974457147959778940307030330761635920221152492892637335447420327714043885286067012802251755512303388970643388845320933516004629126947385716559244740717517149841032352568911385963051496435698595094902522680760302459085344266433450583215796337840228268205748516661914089170406686071900888702945753583057949007075435058038894891515984101702078585059265297138561239691718227491625449747133194076493353888087673767040166416776951388430151363900716606292775366480626975996954857154957111200977851232257921103866753951485538378271932810413874239762008287693235840882963020263777303825134250267155325735151611068354821752266638367586027677498440561087168812834773454620188416263371179694227804434362653639364288254169627670227655220031251853134709648496492391057600585329585569764838521606513671535519797303868401068591086868913593866006769855479153741200858418128691810994249725049447874670838214059333365880635168738732391200614866425747676138240212343400915647710596204097867352577115918933444806345679213471592090324199353615169287399320155126697786860825562558294145858903681405477058605766573725214518053921219533354385553224526749875047582531982603549401720566080647590284461748842775205618981140244904077415519792716588501981978696241745026596686561233161466672294118366498114097636335501243385495749967679333294476063439322942893683514391247789653332157874570810959614693643954907885920981955166308497895719891060136271928243866225923501177426313737758418680061437699782415606175548795592529864666918740995128258386491194275347403507718896748462278119218688860491257979749348510405874702353375545433177522563439780623239293035025248228157792824846323225028828982394382561882108145973841800948871575473940188582617061921624216575795542521776156982536592564242112850224821999332557140037818589682027125276207673389134612522863541440334304960662791051332813933736024781917321407800847025608334124656176399882613362944016844074902002317350474364868194763641294207469674258061564718723033918436251193950998096594981403296608687290507166324287135892822018296901285651628938645820767567866797033475478291593010070474400122693041840491500055135327223755459225705824136871523422410759182105170262819407444163805915440547658253750585646239599426154738452699810533777952933339791700019890686052895079484485003453473032980195524419858852222148472944386182898540443596344611112842880579108652079080461740920312015893021530110094724772369337866949992998799971970347265161082540065397542966873837696396899444688848547456909313818951924459195148559671771075640011991482119650115547747232859293261863075196991734793973599227349327395659447287359761959685619114450596447679559065107811258555944979994355505056385012142250181531109434700882997575667901990175502214319711059125246551641392378289522751965626230466950094884575526999457399889849907541329759868190039968109002829733628879462678571210577252163727804038089373501301659715891589505157484078392693082622649443713489686539544359613090499212462116134253568532289960851963908533290132560470063785493328312529067234981954033761713578777510981789107162619624691258482142224179376936283816906498592104777614794797154254524547806294366776800658511189665305820832291663209891793346982951759962386764872372254250268011873729011897637443595968038311950569008538599637434769912862105256321925039748932754180442240821188571057387133882432161470324001551316993977702818439432811132507794980300675904996210890733407877563954658153522389428937383277375461246004390437466618260851741343467901976961535275132326270136908561871554335667577901470594462223636396350888097168947068761546570811220682063500279480658470117311438077926042398189385989554007449319529376716248255891545562094900248315830148269005362297638434526985439487999541875202578168661630549585228406078208574916913665148510247182061676557539211615157389750232841926671726196347419086609013961498050832455125858956521829203716750986529212212384945045326898093206172734364095841687233907340871745121156703331327937928154754050245486871399817777298806980226524142482857761204477481232524639555068735042492031275774462126934191718016278142914778555782438627040563939173592327694587303299036426409236882418673280577110255887206841816854039068922450823252161343499341088606948190044939132100311403497794707929460777200071636269488504288141627358665594324644573359585042320726060404102320188197468211881824367368549049130240386906993286484244522938848037998225882898991981676037646989034455518080331418680393142170055438824062751472406721326529017336540633807361437736890359646463711498053303031971468620067709580552847007514756782367783441803952275472397624193727637778381161367915152769389987218740878172237155526662906433177145131189653419266912522518719080659972514046890585118306540132447421353759745835856144624885675669339826334882686369788684767495923155222464266192309394120340845162406878612515471913743497839084814628194001892349076777324747398156423614194623172492927006017348867488498150446837929576819485404947124053997186451530757246770107382667774298067499209209814111113034682240970582430796865024275026520199559322204074879792917074779839010943023014931667399224361977079975607658121514015627471568017970026284995169857903777516098292245085204987504889999035715309049820147333552154316824526875095304947470137183834412961970461677363362715335509636804737445378141302667118417454537232058978114628147252583290711486528740873664520334482346566257669823083249497930023515320463698972222161117914226867610742128892862195821279969172889183426772122512276344862494550933866034747502512247266286529445089850090944228031077489472108676769406220041003605438019985769248211270775644194919349171426663377709016402535001741694215626882026126731145891038767594631472447704414071952473252961305438025258863602795384298036215766334202310676340284664554354401952204486663528813156423367203374733445231712368231687800516975189839231184054999990681408660850076083400453504464607844146100017218416053399238076226183248886270948053886732781408585322131951742563249552834674671796945373343555970011085729783545749010637995886580260686159155586829342986930500535585861552896825387980776781059279780288787976642638098466558490623579068528063084362816503960037327783816472524968346324742472597057063820047420781536876958647504180801444099382205551376352122787172741689460193605719626900282852477695389393039512847351974879178520305258649947478765865200890362140763213829501201521487726396249493363345656230826606880550085406562557994184391896698169501939500209560215242715793497601110689242993992230930327506063869844825222353739364733147530066238447442822606556693862102917842289527656416392489383081378032290175438249545639410137933208318864903187694429165223287215764220345036215244202365310387605057565771366409424765321327144362431782400953878239583709641343211192543346736017231105057508663587827306588639007163813031232454562043523624075128230751655868592693322078903497045237344861884108453353868676505565699709201809903998669210880918144502191153878364465695147050295740766278852915468702792443978262140476287868520942839101896212850107314375562949978613460288517834207361102724811768518651052370614567596966318967909296749998635669385364264391927857811410532139741745165169855882603496585158017993888689475641136578154885893034287939406729927043434002811883063515195504903586571910507233736070220929038542110309570422271816789815283987136739718820837379098875715823310859104403528414592698304266425848180196127263077757714261283039895159390040358958487993098653821833270189630931872056848480053357475619149347281306538562135969026720165244922596937218799040644603430038487759823433804367857740765090613420833208261082290924006126696945875013782563987358487528279161801562606326679376227390690254868061398483161925695662060149619631156861156685993115723021657185378074716050468947704238293645042021663964134718907844175055090320589568285045845583129320357201821625991393912247838061815150637253612255077997118205259832566042643042240017752831371215807109151678201151851272500949996667639169290446447808121412491731489239320886694868766370058751444363257060109608455706176116803807708480215684952258660910392458229677638519003642365373006037449293314534869910846462666293700814886862534497750927424224712573860532535571841972468497566399928736612221927580730238092357425921988211826007587729452560869702186557195062062422139275039395250991605663526139529954885400362500318830137814582586401559885400309287989808744691222206349928448305991951194842155451546962349810112918930049781536316682114710896401481917522826451791745134710312963008957489939571953478921300610079294123852226114759219728048603017182222391008089232711270103133956019460811692275940424144782367019747501619931607854668821933795645064608443633181465331826768879803211723242742146629003582341500952810721066168729082080335271711601456266963348337787531194994720275322890411683326506293620383076057903778323784617065783286695551147329489562678977357682594743657491009038269291315139046730654824346661497531961465989387553199955724807252795378051513385211394056345075574704571884228909765834781169727392450512211366237621664537521083645732956726489581884935371752713247417662635330244391099548628914380646520371164983597233723065935468630508139093893543434830951128185357908505662595156432073263187724879455648388770613112286906463834227827652598493361980732422675397137817680251642959474979590180614700626808744065890403647588071454539814934799870595004803810277761476485725367879934514425029720967844755151263445348396952783477704396026510617780232830856105897731499952764915867553678626233321507423174873714803245044803810933909701528242396484614915602294938360529261745985028652679557077979023516333702774477488104208821010818467719150021573069164286564547947268036838685637498614653748713193364345581741076996929930759660815040342455027263096634785553223011755375422802552252588736016669239851139078175921991889501155915835501013265151367960658167940280689514855826519233965594091407853779124960257269419907672981772234614477014316151320661060615438692870044519774171209284916812968982325803923916670229308584345656054817403363372035994598783447387025764442892250818207704184681387426940305089162652529388691831887393711809617503039907921400003784555166826124214659122436617015979585790431911368244932678264764045155383234970041764700707261964933475287264068837402679528637010656193319999287108991823980706687275356198353578418031810677041251448540825514458112562855553700604228992984870809105578979825242947859017070112945781349114856575941567515882353782316028650444544962317611217213839524992343735275873902914892705987274060420794741222529010897048800547359432241925040601622826807676937426871755665612620749075416410006379499688985504201651464898553713734103118222672083051202559728866793515773928683904050896299978877310815047471442202784877517567483635506936405049878599315699492477087078667412211058137711421516489178755667861406167874961086830314905943095730941921570532967983864700625528455612165792034457453303978956061662206478868697310422225818751671985356359152958924439663694318266920890474897899954243197928459287938880848189793880741201472125154162458236457123673788889739924186495169968918029940285682963737705780444294087223052657918794156211550128151103571045995626424690369273515274604513154653677139281031003192014433210734112492955758185048835776243988987255943542142476437169691136361222713309537496391022765197621160855286232740208333308313981229636927880755465219653883610149503386764614656354834047325542012573417631505325808488668387226182897816022265951777129402428685840589515373699986945591062762077487754464775057384506343058484461718333259811327914851332856007581333338603293903203310272935291004757597656090186516428071046777794641120348862124092361620999665836808713471729976822778586500606097928494220453833581263854640751787001198980384920578707649778683921006234088831458783285979031537730224758576272801752932830329455561729919672989792101525200561437075487088847355254648427265317816918865397017654073898264414806503361860011416024205358032783017136729143338402242978273522058602377848184943814840287593169921960291322531227298225685736178637226207793297447583038685373507119443267778989783409026462004314192422406772669313882052430375627100923839322069551143780889227012556918879535087619300670966566526831162111568679334672076829995890172037427826373680353826270510866991730921176940190329069507887746117104004071410908022128922682489436175999027879371754761338928807232579986957341555385004811417583092680191015094040417854877030119557942863720115128414854482768479733598376332276919065540339640114808022739236369309604480498049025531048901109053582436052067631482111531875598668278820871022478911950581784772233926124516121303433143326068954388033471093459063631536951231943920704670899743741220320477383174936902684941402711199325906886610047471345307578897513880081557562627403362915578273353126764171097566635753609134656282720839878197323702418384578831223530177697218455538916425884522389682584172457737104505544488634029977757701900786226838783339016834895574080131690107302163892017377197114034736508721270173554754587417039557144250028432721964274287138118070055544232119795820834467033475104064071616009920870931605228160338958886891877688983267636136714715284255640137564738606524218247062569920893482903798597552587976170557205179768538255755600703112147576568270577983022935078495275088217899241245301184221298843648452704982069637797333067191528230353272864088008370658407153403019539844441628559940906961194091933718121938761982351760906890224017713501532358085470118778410144466930298782625463359755708974977129459859668171673617785241639606144759276915521330709910519669593757326503014701197475496750454325617059735848295189098510564267290542221035809263492816636162214589257557611240779854458979171001569660608265280976940685493619493577264677376905772222641083489843176362912339035438025837922631221298232233698478587919231553908436529218316760699408965327608220683410493147199187680421438210101382446357364391114244728691548321112388932448039033764009505068737134199270817544892449865339016161984835076682669900266190293210218987620313043820271267339824106953689062653272768808383390358115550560736649012159022170916103660476942858678987326686635642264536513030673143422764164663460087259533685355753669278548611843947565135587247396992041341081336752977339895912145114254699754465445011545236997357475275148550095265084073897568104596363955939387118613512062691571965575907022685862874480137828286859128360324896635535157339152122878683077382667213100642612590480859389046389178054852700218836616571231459292348867158604303240891258212226568223598604287836524161048001973952458377750072880168906612125167809051874193709102033500396944876162152202673150716712483213718520218725647378734169833523446245139812937098352651304221311114572078874536723521298550461729761989831666025833527923156883077673346403582047270999133652682273600172755027624782774802951529712688377834249228289248936492279091930989584690108356294634106657170823402895190127595239617306136948040220817827365202433663766767655000290994852272530492723337335353270619926631539115776056819723849555804882849147993141041900810416848100703048302008284610357922989013446849502067574772519513998815831305479645036274718869428076273566641681816631031273040437086873077037080971720942309274333329920263434489724147136381851036783069084744520785994963117950683471473198982248948940795659531164589355244838173029116061087044373480567239566408868966756521140635136158112919589336466923241957579720219528340614211103390976344168027911033469672440292976487482202630650574430822657774898529587982800038497237504983532701821103620869049451607863295560825058755894380231046393897732938335004224709233601073334221714960414254819297664957338458297288567416673224556176227818438747763738243715354475577352162544799569493099737659486236329261942210133730872414921514030966662739485537081126431407961942530229913382297994563589297746148258093830657693494767835685642460338387810896084129162139479866618629433615843159588654303949412390811983517885618193419588237757050797937118707549712187833294294226981673571878786362559624215834329828736804769085312994825616354715391177237810732863710723977631498147906341299935438094923506519650775621552496651206838696551138107846765516695343945441147401622747959028291208438580393266198856011462995232431317696542956776305793690946237461823743464588790989422846359631858391119572186706878154398460398505665002102811084017146487638871397217786966076639036184819435338725915908987297840582149533931579578872181009602823533755827546010345643614239558742398014914108885285509053403878212438338427383398017954069136444921472214814089722891478029928092048150650124285006709074205894863405698225706538563511733705542324640811810978030803829601410974459415808843818572850935547685099279429034733275258262968711455376303173736034313741836254845005946810770834814348138043055089935212594874674183258390723814605953805873756705736059936943894961029162673706101647764543224252899630454090643416118752228199084889689516617635097740817769664195099306428917655616462520894347063084056230482978041497714980902462902727576517845147817490349337916195331750701786301173180399231648540660600342623981394605173023032929015421473234186583379752269429382928170823019561368198166192861596271836567878209320756211792802985464369348434821159508544117526356042802294773399064981110533585014889460308460939613174505355033923191093704376929659184773892666281799812865012268272474788346804090394538400601886393941790094248083548917580697606999680431310448126513482510026020352550039636488002917457098955354960274931188582690740819773451677988751586389889529580149388223261040366771089498976337092188352780635816711385277723414909118968798299720534652643354652369274721280252333504353255996717139066014697160593798551938876197247734273535211458782936100373652011613620693356796243713238980346223850396155615639422986660418552137847615230633853838866249692127831661271720234621553225259222133820854552789691647212203222786046555207947561258483971673335891468217749611158388435898034058570383747490825029663134274023205345008676561465490444200986883295605838092927336921821565038072235061576385882321818502571728110168256473641570273468905924578603391748694654550753914565513311393100422654805263129755555909312456932111254681576065963537389767096243189558924287561106860655412923469338506771018560347409411515362768824857365390085207770072831614111555664599335150833821003988090534081619914791941734212856779791016204613551331754976782500188026057386524942419428785666382941345922294956906449464731601609032012096869894595042673531253634933286084275163183697762896236824045253212277226685554635354066316213155629717685030385245715356574383233908309881224488918892921091512909400393041694012825737043817030461677379592681513185581248405864601121734092308814186450095510180240073301567789238586090834950833876436515469979369563943225365829308414846722997466986462210333348480006726051501906680604132694775035230063670300039772340621828132070146177581856355032848920159769595588199766205303119914218244791480947148328127463547545121277019333412152874250955075399583041913188818590923119977630421073347746708349885548543090094281350597647052826842093159949434292862718120779038730825901691889711871964461793465465388830104455512507943301917821102427157419509464109606285543395679996309524396231009747680462281365903134034815691895098955842971342631634138103040300819543274808234623518844281305525016216232492124006909555579877304714331162739532342598501297355440311422512820183107086120858457772661401602256774907816099207280317030432931217126729508668770166131721355919017392594633372483121436962105105232667231974962425503851002663045304816286120403155587845193619685865198917720957912856211656252287272712055569424099326470098471636359868111551064663830356014437513755342463873362387931654032865686371566537932336797217674075506607368824703846068077741784725745712763947923937696926476640237387477721133096548449494645966589888849930283062412839256421715218266849679488721769438389498837031580329952415670163735251340935595816246697787773489509006567317825401476299227597235476503638951384271642230154471764489204367403491385438844500561571814474721517414823864216433866361582349825260241672484470154711687173438935552340900952360092054891014421281215168291117273990721899996217614460616803390415921348172245070236937509969230059811269150048869693093649737013054060244069056136073545618972986034213885680468823514959651582683456705946723502266468443755582620061267044023456865191176742026126383015656480202641467231143540650622723779502818667958213907689657629891987136712258798749451352278012973833395733688076164670759984176025472376702226256385283120297750945614299725105432302416872043499174652320879885485844649784658434456307125337405320052603205098817776081048325305098776189026357131851141032585573876185288651379342263531119538993788964030602821635190661080721483502455948018789939432597143082235279853459455665193284344053014559697778183683282067303028328846484284878848770490244815915796939093168838094489831215500430724156627894501594735283965881794177538801670879073299698762184679864939249616365214308892624221175450697952269831827300737120653513381094958078317643263502984385296793739335279248951745237051320548635263499228633506263943394843483172933415486051112765299776687086791594859267002760697509047838812565029875782033738636229211415179780014326353053016310958250190946597740138950172997254795131059631592062528129634426986121890494059943064629634491501893562776505920745340440183090071223680949816852015931937948862605008875026663975339010441279617849819399153494861491022599746370336332362233787049860452713996783255642178520642117247545416925889303357810943532206590425343521746522025363230503350808977637855549675357974130635599137044480225117912556133388519340507017889803317557032712168538260868725760655465605648833907524017299564883902164917509645164727708406900582296026125622086028680931342449019719153675516710541039908284607429683421954123204062329968769404196170203505091078036645314767553304487267637337617697762967891236870986114433099805641674246876728654301337940908016602004762320850731180157622244350259805868290199766524084727093963887317241899727643160309473337318436585820848385336533092441762923097240366140619488877926104976281747481924002501696360717712249422643975647589742620069089415601803925728622063471884866352363679597390472785208855609521915436523530363022785425238139034884688273391849048530592759993281248730612628032949576709780226061559843745695539403541626891540443798902936934994623311149225796397510014299560565792688752627459049670144106438460555562196750648294267654664807844343468111534004988175517347055048495606952629323295956880371312511705624979763530243493872206687360883982448201174307988942170855890265076853005924441085305472537639900974669853468309959279201491849773764362916323047722060468897188840120515487010102700443527019904041483361412708752484358646111895316301582832174287361393067970336611390979055593990742480159871795391389984235082567792432653624753125646803820166839820637068327938333755004997092583865677613722090244561619047705380113402718162920279865441224796292440288444129808588248750588733786299634218809513953536365787536891903824511290288724880701083541936472143016994210493839986320444468775160689677029523714872535608024381083739874608381843715366936559328070450622217632308949692034850154358390867140233555055792946861480363070739102822594769931571767313056705761940947195184821069432860608436782876973675056780334222808403318210659505651444099449292743378386704145047364112248287025725015208001335085100291110246666621642536215863214849880305552785431075284770027823368309159099902201829518724859927972624347560868942556313083271402363968690092270584684710052902297896282455644358189261966555648534041448599676811649365087515831798144523856952008694972630358101792725770038799423533513335269112343757430429841771785026661549939458336622170308706876028175699581071718166854080996626901130810447255561387675090099653358080224781950010879728751267827209431806368129315164311771740740489668617175520932015378543729654866957580690156145605059882938603854774911198826026489163828775449723771047017828284869302795123283745584108755143162431402610512659902939245017031242672738525983896637969669231589430120537464436276298872298238644072682725258575872850853032581484448576435333765565543502390658821299364980216407842786902714922732049549237551353141418836042249722009397843520581417078018508900187090515749483380141734071949592899519899601066834937886299886854726356474653823390778507546518927493604483651314561668395488008862096650897137891081608577013544235987949076463406288618141626901110746556890515664137241593006235921136668323098822391813816022601331032818743393460865647648933725813605551831548630234583870753575076310131437188706916378676206380922442175343880911006134410465343959531477279805811509989714611674322998590236479547085019488942131040168908021760131203957409157845836079542905138480913915295442683504285072238237979104046187266116911141297809755288106616403863343672417844838054728417032520013861256142646619505449859102565188192063453748928962757832125792290441004605770943317982544658625086738285706387294307229732202975530105760361687137522105170745382931109254951036930625221592984260484910395635336091234191074940336466469650912828582099982610694819274142418049609298661743615270482971177068287371798502194072280696084605531336786834942576571595166529452688486301344429928436383839217362219864627592055764517724418720363078292835998288971915345257506397409942544954835379505130762696211010175498845380158189533380306216434225955222575841809351862123967847067009254846600775184902293839437615725512996206496969350551781953065137574182815684583966803602005298574605835641194126681707393194979017869676692741553641049364696963556653827577822344845064539824486184569918452445244338076053667469545847030903667533220442631153666431136216222883506285285369036409072424752415892174724026533653263171654445614632678843997883803454479937725770141174965883472732871180578673030999482018143403999518941207526762168957231728963888996966413591937464472941944700364446395593165041151655982691378120124310326587681431513158961756725640986503611183534568004241004456753772000696148731272996483798346639661624205234110175820785432668375785164032309940681076407816575928642550654670392014721403549801575686844231907142582288794092397812338570504282819649166024252199781138967540713378797592205513533075170017331718428007270006102983688213925278995310251548686465238953122514423833173623008246078596523568922864178110799143968272365625243667885962222645961129649977572458215913756345683142151848471732660178317747925573542302869743337316011418105965760430936416623725896756571159498198969702971087587158846811549224121728715994950682248127332174802909122603490282347092201000810600443774085570594436970921377443078072037818205697985920187243431074105466257366351204073672393519103093607458818530435652016778673088936188295829792252888642219433487054496109916398357227100358200064056427246801567231207108334221847293640752436936210438945492893163942628334881165909123687396138089966238272096376128633060217082936943818799039001471538131618889838827440354662365512325379106399686263676795266297454685685801983165126277109563390360381624051697761078418474307406454089302117356772812834297338237786111042524854309472863216706976950979758974980062879525631410840957713942116550928461317541347525176011514480667372031634161120107307569692049399287405806952560032050421810232763866051701181627803605678060879664972178883746268106984266198113016589925805514543997934836150141126843982628964813883185775705600519180845967179199931538639393500714461029271360071199463275785347712705997272470893647571075116727042482635986843386571829160682052364198531206225733096138147275588506259744118928830941265163879976671086651224493941847297473699795893360554006837172386387550031969853201460858969003585622281534241510539402818756739178986043571759513788711178953558409510990597055349741571364768052707702294363995884593405984014714122257389935592656011501353012028340771476673869578585575163992482193693341213493626899272942092322378837416375310880803945257333364778543962858104417325005316579153678394130077610026556221342964181085180926768651462298249854251923447547825562630860557152876913286230230496777333462633375918627306401727891365862293005080235281091286246099341041863510162459016464337887278568716544247973197416892518688950610914766388943482997896876330519342967390650645887177851914911891003307823302954927599475770884962729816173328577310964891846841649328794643614181076011763234824598181078035444740622241147224790280100434895865043694110292067809811606302289235026729196776032202298523293646562143510003108633100612907889400464860218492515334971972033176363134810730736335649964218999509607275231226720869714161491179094887961398459844464005095891386752646692891985607748618939651206699065730907260021645811102958062954263399032266425929679015199483468711137675399240611847363897092317989300457160969235986513915135990776775993265132623317159284318587826968277802316652840720829618525460730663946798175977470186094058623418163193600971908852960919523915608043410381859346984119049304115875319224182696053387562836460630474626716008199193081537055749395526987993247613836718848530379734164431098868130429947244525666614610123241567717702005157061375725853861064266757559123610253581482289448184799684645275277307866663001907793981392259783014445148143463613801991998850827409449956072738693616735891884050638795494554239122643684383536100044869675829795062534629859494483879519029488996870271242767085809482226605716896971296349186558899810474815452915382477553369224902395531140651622690752364042440969964700827895670454451068999577099119729639804425204611234796402484346972956534127011451107994108280459650485681749895513641146603287073478229859494363635212922040690722450516269547789565488217284777851597009604260253224978887111983058619693430286998578975960767332018049944602245181867128756004104532450556109063060796208695804615897541225274958729978708608742546988201687728007330101799416743437129998971737213817188716480329429339776659302539986580026248022249440494724657045483833847798676233078063726324284556089264088270838354585472451066675002196570994054467221375588198480563572327230274169138271445952145794477812164283941127607501162529337645109598577219889471038520195751823619652134452706999988793779400162996927626110293886370970414940182732649552592806884298367590957761902685221075275516368188101078842397159780917618403855784403412204116048613475456510559474488861265971670782829865458377658245015055951763470798097133212502654306072474513527015485990920457806662311227949120388175724161238105499226575662010829847937353272185504058545074114971479594805628865340362421196611027798552675454951916968134347053238479493709647394502871679898402671201732398951405075855651888128174689630098305963471247793349381252639933463828389753053781582967259705148552991846239943546154721984534512679925043878265822373216194877484719800923910528768999528220416097815778116231164772261021683953671592742289403143879141018739966763169003526646659989868490242401235977395966945107244576546493555871508085961498295185112247943542002889432858968857232563827772196328434810100376914651198801932902765818089882499501728340672319964017437045398448836673965638899248914610464941163189346955512813996339620798824707859738261917801196381124746899702688269272446339100839289509241671467366269745504964535766870185291785308598785947975673029490329749178996860413380951528504180562398099480568277640805723822603488527142519830533702509435251740979240910606905110152204991839528610142744387345684123930733558704394210183294661993916466198037253980909932384125812365800628150754442667479043079916234165128197461300369331999999704747955277182850193537574300595030412245446934460302240974889927583598285040576168990802577798756093134671844635781880000441350450184529863209488561986622343590083928813669147642790442674812324416544087507568676297485664512974721856148804574294298123888380560212691287743471796319951712750863088191192668368660607098035989299933986861498048512882825875043560546499844055723117606713277854173495739633521286088233093708838350358274352003866182788788611493584789314283881383325002941865782595900877412712639345552664361755014908420496488926715840428154918947698305692642603621001370802314779606904410954009741538615380621187320720417433786650267884395405121218662448693152295075133720803926363872130267208542265743231992348275479516883499645005049580314529034609903988390460298399821554956765323134285364164728924423096684719530963946082306675538794652446077286369875238403513141454574555100231085962486312897998007823013316416985072478901428155561088023364282829903341954695055630419026568860800268448154004518310086707903598652302793306072297389315340057367025156924321521157850724660828549352784192471270492667653755783529301529472537631508483197766068143178752266120919724244572420418400433987941254849317493702686044045205208209922750330964648805668433014135068392984674389828223612580590685165206817253913617755460657844155539544984631400678930805053322081314362806043797436736186115187108945511464907551640826869430146694660028587647789997797622021663792660391491194067804233061558564971924414330681086810297977725538209498451653394229480835277633746315091699186608579905670716879959389268399437262588622361555256831590174027631393003641960560545760320106159358745936152370364793967270136188044962017223068759688583389191446214041039043445471218653949335985105714036105590200545777175104470431003980208711967441184203255339181952263701013578241069587633986452023512112698745535720892364437091534795589864782650051523261719983890343085997196342376046237164303658854524465821721593483417848470244432531797600264990455578186316676164529879381089559841854676066659128564540312070437718219279513949489728406950425314293891167708033071343666572154185959692490879321388735210864316567861546711085781159868214781723501883976189948358387615948212476173167476450904659312259056293193452040903491781244251522047756580353329668957156503073281004119039501711323056908995074525643482684513901809791843943375080655347777571397869023917634299980046569051402855505231454993306329050497209480098181834739406058537522893557774404328147751854462572714922268110221737893978767936771109261952312993954765147122565155459314273586725582794999439168181866949981437054573648315687814369237968622290147600221835236699600309786258599661075995669515848170188470394028482972902299296150680099705447791772001684874140781709074175478457067807985649026076384685227900625164861734051689450522640757985994156458294538875312628086414004750993557609014608930196334766988154596888779170564189741401625587773253452293327781241449930752837743712347570141360663695380198247459739303137740646640739953260859559806742991743576508329826333066335726015074150692268256964409127447426563863933636136964385997672476038317620801440387823213372466323176312061223349051101295892137892479217061545113524456491047479828129093744112321442677253999050775792772406946489179395049028080762817140277667175234231157556286008538039039922846910265436465606463181811452361868311729894199528893999196361699672531529734459160333649684157053500240484626077660919533035984822530498827390143510986440935288986523869272885803719334617182524442954370872050159028960173480794343952325501516294557756445110822432952585993410891119219943892309320677741054210817258479925501593271115527475782784780430142467643031653559955968618647017179869295254207323685376899458962316893044071799282434275277410210610494521516476379184496648033747055722560320277234816769313411078429305138276100875389545868639611549278895289078865042969344930987055647491460190093562740967557625049781996195444461417701442426169431177478904513207352763429742331769538487867687475215899578342682684833011738127435697018634551721096172244141551048470411648984912000934344899941161340416575300807175329771908794442366253967285721951005910461692307752644564936481141296671119024422582150007078990765480602502435121566178895593843077936605682370890209471972945064725626101467800551471474490460103812608289953367822013996903998301017211556396083988446338567749905445627735147950747947484079000223818883535960680244134400199757967622712409551336176409212967601363572518283705209241537628818872822385896446111432124164346802458288409362200259999674074931580514153001288676951048084827008040151378199351804449168753024360702014907304057802267193603985786426608424242860915684958385505243015709750480882410416875341620848397399387040755693294748438946152921973660950103246554857221331239628973742645878151431694544935480252286245126301292633514515328333252752413491128008365463882561547997892353066320219543106525716115375144054720453855128919777574344496693017883562143256368011323326803095963199948215607103106124526442767091491055777623867354485499273389043808946169444500584528549527268513706418959214361931118478168589035496465159234647429755502506325654714873578045536847113532217495764519263998946771390457341745048194265634126291022554164937351784946685739881382175840207250291911724763420177925262276162580954967427603726064181227718665686169704938926229285145782048974350985990564491645726510376641897693273712721863020534433067226033104288612022762778150627523859949609235617546841921565232492631150511667702005177382444829540785504389358834287013558814148646016066175743943270845691575827412265899463372263871253648247524185784294400120661357027393219336942633172350509625279543133450538758598326823268810602744886614751972831175251142810766310147713137907811673052262217179711530319399543150426940504494996226629066453398886830281324000284340356237702167714798295437913983337922264667267035484610164356324999845952832652840253321934277803640382975651042707620024196015904631675756635072331765155331706195387342412124035062559704453355347548762480820478380822419556116665408385981971520964022433480297058996643719549263407823075431274658085626222477800538561948076947267578411909057093088787037309890526166168130087063811127250545610533689798062024838784410317721080692421065136538804568300860091881373351710555536802993868062155215377057054433145517085217789898108129323242796172236532791471788475098862424182840047036224048545964082192566756604499587646728195897984965497018695759188425329857234760680218091329804947520619527471122826997590797748445088620902422680749162345760885765043494937717850799114780434865064621609289415142320552741937012739432221124313594180142735114644217726033266724618371984493380859078691046494991165449426189810286560023265278070335203536214566283934114522838814457545720220648411003763374361256235125717963193204277200505259267714000515825085477799751540236694698657640438957584995120790239848045579711307388691101127395057873361362419181946805182329405707196535909734840044452899229431146642322850689294541070023770156955647248866044742425042574578326894814531946423300724453123036232217555699595450387520807102085563664280391234457292479447171228512612869719408317048330981534902021285323715222497535965922644596296431956795517515922624722263140984764408140447048400391501658424800284985299395118155378040127754028053456902368662320194435233626904719186973431835834953414212707098065646754929423029363636181292357573580228325259589942282508285871059875613507165492578020758962122739251938879536370811145114845837741004490312651140832716161495266435125111479064461460429126882046375552632710840908824309410008800946419893027279674587327145554894771591608583190569885786969533135127570158999178583051673762625241414844158389015464669956410020853561385030613527907263363405284774321812678505434446645207025984259955769582543775089731047633941860997973351291902821119451921772649950769879900427294324029185399066387276251349515336211239866473615581475799521569643566709219152035353774920992732870857681940295021256450342171898502620141517606529176605825880192765708669746618049488051244696443524136841694339216996671569536673885702289194282921023345716066215842914146010522140796027487450453714533828200864695691436088769413409807897959648336595578140016576182511164286972069078480198458792999815606209506475376294486253531608427900783536998245563050046489942173143101907185792640973619429700399424340871856553016394205845393276599612953719677979789568402759954400288284974416919465419665022675504626629539582732734676864424987855288799128677302424363348975198372278153109212189735143989230117014741982333488377670791488445802368062081841714717785477369986275318769722475869978237622970546152710926004557717731364251986266167216718372462668299425164094394311499155502581069620278377855106201539909799656910632352009032659293642102682618434486056933696742379217401861204484619017843017735530364064718406132409057267762792822593930678876034464715469940133525470968252989234543572390773732319174683237923966316086129164790614712548354172567680851056619877829747656022689060773789139090575510845611275875675004938034999189205915920182702333684346377816888351696045524395472860016596924003564381250956067656100881505536638472159129388155421099127968005564410225924149782862680358913714681932740197276435191477037562266005626382755372953535430862811617378338277908910351308156821672909448380202265981308672108745599566430695956643941073035950069324986756906534306996258061044962786904086088889540202287920956455546790925758858449550190093747290900620653453999408235779349123147922189130935297731785788786438518404028001394269874266165424548915336158254992459974097117865651013575169207733197560478713320090459090241569533393183345745238465256439586859735720827638763203954912908581088177910253283563997340538274587099556180350182252920815505450904840731585157762051547011286892455693877234158815425888180747888188691366479076515619227052698665069689271564451154254635856702005740525118179811153432751585439623411123252537076179677882498732605579952893362398982453899123055437271670650416089019575545165329521725239647227613438772551840191175216084806974294916520590057929062719460247578450630629846475541799472554360365762401196422200204590946496999503110890275931517405942536334860646816043930287998588236627086476073276263457608830150705888755774053060897999058885161039584870090393079565645014499376465236672580205476614951575692419172773506413018061189252496571837523386515511154946674689559246887029781907842733580071199749117335606644617326337625750194713240695591182203153823066285521764846345635288087532083455894599920969576190077668703485304027111135568627446786523853040472816635055617608093896107251347813868564476607108563872074220074476226657676312428555400816566011715840822616320317884431019414421654032051747914468285482971247750704254278717656486946935440648625041426395460580091921221776413068010496913692867416839458829297433411801244627443133892807509898839527047145013908019385435497244494862226240212278742149894877532722724316785579933861506741778785396820645875294248118623780738045709714380602018240999492407492081535961630265809907193289960487711757490043876084556351465793161879013992769730813114097654006921855321138084332940233483491870749657480635022994149751781869448121385130476456961491256032675198523173866547562965155830472936367614475766917978222744314840396835771635673316925070002579565797912382898187114085764453459766879620617518508316395876483138955006903704581914508728590225724520089219956095756480148288950094488946535728317211330249247825811159942901831955904811291782449486115498333116748267695755052777355077366197500529568648101000524640199179786127765945670512227781208596720039391877581952662821807004252804253316718030585582755025655955221507748430580641137426800656654756275391834477821563229091980627978607790634980141675747999020988189988640846419630670267962561327024585503792307854521955698189194648847140846932228243169893308642638756712606532431959417137795331214180871017174222007141405801618297137538484669569304825426478387477220923055442389079157702564863077336131941787893123366064129395852974626908948610108785212735573244595015141500416737928042688958017808644862290584876056051421538594614604496024690302663781844355401084174639575796573295021247569469838491412102077602825958780824382754656017312366956835802663799290707903320415204622455675315932457965972668700355259349228206481598746305627679263557717681351292714350801556916015000172897610230666969861107798947903997507592171774161840741842992446420899416670032619048902841987575040758615420933031356692361948855336800838738672178858076774523958794582205703052555941921847004053840727079248363104867985279946611728536459677999046451626805902284335518365039391021931678373210249636102298421343253188621824927272510627703758665035551880691147532874779520440903531721139654662511202613051918214526967265198010745739128596663819908088463954762597156792800212324946001757866484735979717485162787135282653572268512988170982138684868003789052970266726118749361968811871836092747785901399572542516832969955158713759738104912904683437411086157192547239826555196843773670233781738777757679037867490542792025369573915140398907126455091032171172790528120805050540348153164749557657897302340287197945034134688736999681213849066383672151809502844914681747854501424987156080273169107075236015563366732351129497078047724039995393540929397931551484816359496555372052897662834230757747926363225572620426294365204114000259738837961523744721978036961973401770474795657083719404370415519696961412986765486715613274210394070683630358418061142313149788094938669450608548724422786890163141923879550991270741532896628673881266675242828271557844453601071174488151622387983595421814365807453676625099006998315641949822204881440640106200843701791402144997390592481955206630090921994084142475807661839133836086849740182439140900233653430097609905345492004553885808013578131640203771637609061828974302407278233232917107355319502922313628975979068892301676057156727289023265045237523852633137002919521068474656942588394280649811742570697860360040309793905127505332346692061937796602706003318519424652493801641375218973108579774622619860441695674522401424086665425362709525200087853229770270852492217439012612583805589114074814937570424470217925988498442250579339498190210968204731780847958493243971607256048384339758907105676093872331544673325390795767787815387791651404138575197053484782432433526513162534694158800645885509456704522354346660157390308724376984168744323041169217822232146954418689772722336870338360611429385352622081024732847765845972038421700080624275982528439857317651864865081237511990190436633603148875567210208118789876006859271251268465937321301097449775240799198037273206088324721422170857044937914135841942425274999986780954886620521224696287518101413544433192819056752419381335196600426658858841287177464925466990950160966731457516487896707897730751301946949112841167274431486062968531001511691139981499207154137961555391305452071846830868312980477103662650644957185863288610328830680223732000629275639137915724092546917767842389471229604974189078869282264835942920657341793852502783942796917654451756873704274674209438433197096461910467824205028197399420137893075064222637768915071883194849646869128672660032179490522297646309042917107314390340733271867759008495157446496865540032833785009449757745435365655382003458259242470275576357448343550780739557219054790216495973132199909109448168457554761339213842878590118645803860586999413836628111904126468932052150390110919166917973005755523358417185505883088132212806575067266859069310434750843986944482063856628670981041275516278630905328838139957838690201370663451488140381278296185539744696905884095382848919943706169811725029605020142843452157800008974492192216398631985937524144580147579478441460494144708325148797375895686807709971651977143813107497719695913761030153927087745971149452233304634324165356677970583793146762818274281865512044980350945341263889966839499884535295488183126933862548055149694912621472850638647632931341315179638383928579964432344951353928409537740285654410154470212010490236305337100489987602588992072303004794622198144463899593969087909337513889196100524385281461549512666896054038908498334415298309603787085461708189220928978217728857589042260806849240236223783066220815852014920129730476594838526005208783022664537032420597612446614654806263428212538038365023435580853298305144436020153929458724104172582376539531179841553135618585374232850004787606619291054333833833282763444022094117260427276842501987471423714080421692370103085736179436681743323832349083897211674480519002324007829553357017455103143293387888689267753268693856614002077178419360589709545934991748355690359507185766387550665931825041052675959991977187284354429396182620566853333952305419002763169440710501014721052852399495425031319874234469077626537950659009752834434909109865175403788900651154671620833408504397867619368458037342942725097890539726835873017324931111180894942405558436964073692569549839957622251194263166668845355816974890798677769395557215436009919344758536419665486174054012588405024317373406699711092880092098282594776589609531574194775309610435400360286793022986176654075867534131300259302559378812883768006085251580272510462131442921973983844413788482405693102706460414670383592622831459357595121916699871387630952348876579998670103063342055114970654266849353682371447645444229075311074509257999253319704128515299623637284588775808586395702257299290400811442458123969165797653059985755830203397135826058959657552241385728288325011358914308883419306336541920430337752521760391140659247650186848872793309748904396296175212480936333350208446865965604698989604167162270743775877607803656883675405885790423338773193525997793279315136298409442317513286014215836359137201457955247842141374673830226398971918936168348075613714249941608629274405148887652134735672905795009447074740491266147676762038788358868833938199769860219504956145100238167966204314775612216541707079377891031653220428784650945496757408270269985426556977501692446203268092565855539263255559303035832855183941860898933992160216912796633875792225688742946414926186776956132787089233143769051771228891203704875887989792128393974118690085139786716286977601948724620469376750423338126281922768986386633376246014335410890057447735105345465506208704210351746599526991277804278939927894803949725989983859120148908983777541920360312254859489773571271050510891960544273540820421913915269181337175250940453865954379381383679503062574381015877633202933031308084060637128137142822062060505491770358109893357127465580232569088575986189718527372879834172483269690111199651565820108414601571605706416206272866192265883217636764570284767419164648728184436105781339162683998682369263164563850697403741844963263616399388081803699157237947295633011758556012216001654147197727365915205528652847341422852013518497774224521486501168668179061214566805545143323116092372466547274083594298588081408952195339741880316276315890810643989875382521077982920068553297909312505514945821389225222876135671868595411016710040127248919046888497625811973699428696753876966977560177058502563168299894709622383241028398815729904563014396636648167017840598774834793199690443493906704275479858099368099711443056665218825695074535858646138666981141186461536812881484860347329462096859101578914216476824674662167978242337700461800507254567912752138496285665458363778147610516622708791884657641389935536334522546738508101716945472360813065553639423632190324760391196212740383826867790721342625045229121135124964845576321633287878900910676116021375317361378062692910340508115071320600505891211112246766689631560570411716414143115540702070613857635512221997448270996962176746389953433072812990574249258848890575047708813767222901490866351806655121081994005501449025194041128380696285631790414006350340432906839701143318389715108874329139964017848277660866353592103652415867886416805338611892969292630169415529365051789629908450527005108481169372862762410921791134012313725609039323658681765621803245199698764580886004243151256567757809210647584742993090897254099213664800552961082357917193771642165233717091334574510922257391875491767487050981139576669753537716218087246933567005310953003566570969249777547498539597321096000694331495725017706634673638969469938030794254241527387119995736978539144965428719950956195351064474557737934416140967935512680232255380543269349170122630608725317169360238558924903271322699139852920277417549916062498954262516739812896772287430610682424670522269350730401724035991841834057819852604268389484775687651329402143532106558391614732108934457120329356793905981407218222994991826890318937543229698441934441993266036103954131183593272386723512542495118130332383162806016788367826114260998150477519904729862558586530636056993538139671830645279351553975977442074751388731955212133937518087064792070118981759771561526260223473166183016320138128376445515976021643368779698649372088996840924228298198163461080891860011980300184593696777212991233554973687407618599405791087577384629193511217427051540201853049659028896164713011831308694188786751249314549143196372251690754668639454297380831030986943579200206351871477840759863751425671931116721232135080730673825940916618447924547907880649310862297140563940411268568379515281108292844501171916859550547482401804440412865818551384523580399534355154393186440613653244215886783863170661904632933873754636083236502113171187283885057551026957314669877872697293464595688579217339131800234527872330935777649538711790526047008311685450508637683917981776934036501744956881021155476407232690801344533269730167912726137560128639537714903884688379323981581753791816092141760670588087337192442909990007678840746886389338196166801867733825723280250164975452966802090500890411694305329865691459603838348749388759700104186939582188037868999950521668112938729316167971443698719400124727815340829348612532862636484210131531717944683410563029547540640641901043054340957887087679194247451701828898007946807707799704429987802250348350440814083194983420567217556915864359227984099839605642022904581436616475082392460904729334852372008363327116441816099166490134549954284759413140070558900948072905185663769403270760138482832791091696102912322269548469593713308303818601883261739583542614701126366665279414548723381842908574045387501117885503912045567710763906025355861388863286184727286785692855904313492671754797958399701001326892969620973106531782885815038723960564782451790145663236755680823318982756171540653648118134449519556176984793871914512690237880123443443914036972826456424161981708175301355110466084203248192351563519178492072244507945798172362812047585550927991915516333579936852960261954881209138399191873011990099090712943977699319383770692043688947782630699779691358698573469893208045405634584484482742412566146591806889468311319689807024794244919890327868799052097757052851620089935105876445662766532621157433176086971425503269113218190331071659957444525939148091645806980148264397639265495167737661765987181221386363004800494461090349557730693143798496733519375578785557754262755305929924765077669343655169036267112548786108952846653792755477177161837549077316414718699636206973793813319843968670489287024716195302841058634757754995826585801685298173514167709625672759407762265791762139120513898726209306772966306543053566078003528845796484116225421337502217215454900705183923505214836611035363705652346101252308304631779674353538511049810564599691630893627416422122951740868488894968394207267293175199651066009922655203979516129341721649357214795347980857288219026672318480540728206327816542809174694183713216115600246386469518092489876360215489304767709641352191719739381268546587179825859219131521186881479777980987487686363769035547764611259239846457002838213264060575756439091015433230324193488442168423648082907278390748959653448483521408425387661116032542074292464385173933031882271080850925998321028246097114181920400302829060236545459632835650657752564094819316211159201872540191811780866197237627317949844993704449530927656244221256684457717707426667757855552259423516770168233742169446327035006305360765131118933188899583697300516286784851918841766787564925230694189675996422204026935533103645923414827783168481701513243458461121491541015637273993634299472734872919992540963504542226008315174024505215369263185848018706323376747818109032767430839445466816968701718446291001774976146259121168475135260488473085546561718375776294892789275934181376555616246031589275245343109413265824667545691786683690620388909374548885473909821252249463528093029677649968917545185726498417944815114589502837613176007599862677868967435885093970987539523833811556141416745080023031140137924195562546824738346253809280064937964569101722272270535671162140209871293088763961420533484032708648513870276443016937079524431312871546469950716071618936798383391761382225527225295232942660623839960959482405224997799803029276815475970384990650437074563871741346815702354347861265652433134850620105350841948226545306008027376701283348380078188711850240607229369358349793178508829363992272000489155151908715880351245250258390911798683061077679991629402695868844483350058293639354120393643095331625176370499770848507844908625425583292203825618585022723090790524020768257148117033569654019012506770229727770146524568124938500466428231825972651774526283781316054973752008597108854586243348184037114262563431998414958561660719496136146609616402227011129155053483487564375962532345260401738068833873147692000426103504374569306487403253103701541543870264937046834408856304125902995265950132719206495497979890423350388322647367439993443381192670228303642493080225333857045921737770260733802631114144394112025304436864225645026781927689496304723789295516301800034913334681329986901088552548048829781073080249235514128628681053730917579145585951601466237264885021514140164180721637071756065421427351981112893602499374382054757747095553961241069028018173979543146232182959780459547484588881990786062285390155652623369061231731137001616325819876551256280047003180217566416360423230481072429672355110849725950674411864931248009058111171100257211038843736181531583141952768098548843012051134205355657804501946758371978566858032407237442580427779751176287106148119527991075743645725903450884579144509854696484153192740522930664048587766858803549566265127863665693189321952959684618748103630215935000388295307060758394125777964908069307462263642772256155291738789222797084210140142482223632456494295206786629013480293271917868036938390816398366093114407520176046618555598732804977696742137824404286634518006394797052048844830490213174937533875749788113689461173493345699506820482596354443128851905672248241886224360121700344265845228133867569078956550307779920987924546290973871580534552598293968329473482022474750680306343572339618088513090031679071196037598030705570091816106880421659240768465106813603731896132579009441891595217111111517447841501987238938087327241319899912548140723213062656833903421375393622448801091024553485450606510835324537248038697768409475580864745809125955084945149095904778240240175141089091394137311890063136965572848357476578422700458514131283656162466747698841894029158216334313927009463901319704417925658205646124159518258856693900145664624121178883653998414368007002503437809778921455391660737465045902183052314205401660787066196298418249888454642453844899648055738424985063901680889886948913135341909955839791440155433781543161336842033057883378630694134648637714385163016994812857948839908977177606430105516614542355871892697566108733481337937615893313021326338564745814062867413449289025325152679000002390106641134773635638241977907056422195397108691619190582180781282002832016369908670897470408840386691483351065185222652344455142943368895841438389604015002802367418760784564004025343797222835089583743368303015706300703058503238288565132153084354880411754747572536218736844492146382392698147358823553441531594975291326077100531552817574343190411415416765483973420480853958938911549256538107735212454222323498949053789700768993035618816858187596868691919980832186340471070652245486521004271976442694624545648110362794473896273418734629777959852674569888141479621276274236601223701426811508675186779856316278779793103325201462367510138422733209341848529450766292839784324050535939785863640703723435775777915017852708769098719974612754869561160680146500284123624273556289558808212661702123200490055801959220205820373234530626448541022365616156147605938098229304534139397566165243996243995531869113316549606016598847168031881823558601072113628821789903470372420313647070800465202900342890438175119685098674943886221983217754285490913464721780263016957293007311351645482371576898950832994691125498843354453877442570153742375704320310628957068668554784883172966584423067381914936394799616507313705763016190630022969925037503514695456559007142685274973015507426670967572031550058232263892436830487237212287982302418086761516241779854792097922379730984843119063425098256821216806114913822900239501370950253909654143764736065265241242824377832151532242666632789059074997246584761185439037902368641834851720693678126090629346303290385900172527234562293989023560046109301645521399756367348787510710008880448452559165590794562194580753526211725802446576043102576013778250162221644700276909669528208787649935139422572796612453809849787096432566947176166128307781444649972020310340879814673846260336787191830863952003159807999073829063271771756428121546867979475797740307007588588889530719473318684384854730320204057582362533764338367795650781033834447841563405816512982152791734130839264524020278282893584418795903275630390896916322341201110235128517435959547741873224838941964512106491093843577115713460827219631330533713378890037439404974821799769820049944017886250028736254412500477968541625293126981327845226025258892000065825740020759936471908611798727522540556628684831624864054091198648548595325310907040329672215452129724389496442954371322900115611176674218847348298987854139274981763185228433938044943562518670242375870387169336112206103935232476299605043669250334797818013523226740197708373264223958748568207363574473967930391303763220327138728509956243432738858260567856407345150519616409982341411848637217700973907109059615969381338528714474500214180600097155090538404581935506179949562643820514017178480145991665645617427359348549270750546010080754249517126903223371998634332527615831829394371991444672155023062674227968585619063643036643936818083741482299644874569011549560630251300862664669277564262357419114574958280246653668971822275045997034716254710136575505149814583248012182492574731673805514547166785043623026993073406040965687045332123265416620783709421719020811762341131573949047075851462824640459243588870688218588899732820496138305514358103246046432044767237296268070587280511365803830648561142012780533748409283585129347814112185165230887032053863106587363228767264796867813867855832694973572675559792070815199270852359218092794675116232252425798423286744216450735063218922595260142580443139028627748591066728300570841020922109636158294683616901548058622131372922709571384066986595429624942091181526786150892328512646395137472244776089381431154298940350923030868659419164840076674244250240184184056477213461987661866673036031844363502954158865132495139552067635551600899667059862584684858444400741563778247056989672082258899717565758641244203998172644523650764218860123216223856881523373240491239173270023659207691609817542867418024915934666676066946194992034776140449934357924789103633455881251957138065057581790614098687942501234885981866982875155385218095807130832122045492660787104953197169535713269262230295527286515377222868898027787050581262009905842682314809014865133128983747464673811572149750260714348685884230659883157459187853508000804108652499856963757568619077111669589474161225597638665019728781241202353579622378666832933660030016880614007847902922053794309332181376801507841294416681101745355611857550942104310509480592137962986647295404041258242131322151452307341900441957867398132481802527421557292632178244141568198243866792670118156242233478260902576748771152635963841302478249258963392298609036995878035826771789867062598146021369587015810784004357131616846052187916534780676480747431952727587951435874498620172613067015918565107257460664437771563525496908796845557877801053653053867238650033316940091294904494872836099196954248899556641377161089759973567875833490596047023150845730601638296513910227211102574448548500031945405145347075349017283303504342812861344493739628929811883347999607208880225185669891066596195799760326297681690605497279004229383507885355354924068599248773527929078682838902378591829051916600369792602382344793463226418695925504361306967866999095108628984705601819603040724056732857084819582343899684185069885732075049976242568379701053543771878348233971661162628735696585187167609050199794977621770108374145315409130649823382140341783301462685526378918734393294767256395976066175189641559982323405421548681219261989746184034837574096142599866344977282142359131619652833378256831766391952463731808583752352361155361799156495500999826153816794476450087488631062413307839885982620023529643150772147046855432790162877309390415280699863794737929855877305956522645460874644432290437239642589570061205416850273093696723180561610215978036254579879355132147052042998258175037725504289953372998817739883307825731733660692423484195908968296597298396727462582503253087993664449715459217440482993931776345812447197301326188619161445173142356200057921752690992103898145445961920489084239533782069944560291560755011729354956760750612828130633739202287722465442934721073268303210877838728611659234207119108756073532359056111643175604569362731084072358641123730742370578593319421864144441249910586091925889416787144923331713533755283059208740769133971078992566845124051097332585517339481231320208466148192269966031325033021253443889789813002494870902216065449053365885285726956813825802314764184237717533890383862806867991033602737600593190634470438657856354379726989387161298657881797133088667822410115778442735431327318336172960931065902055853229570618827889264736310111684836687554165852436065129515731676128466982313601201931078304511199536928097915385558121204448901756670177455594079516316855157369964444700639936435463809015579074301093936770655325594950354257433823483900083125958895534394692713911371728712120013268090939404489708565362139258429010285660339951485018388689043138802186094332582876006707477065766462176134983715947595753969310926304141235298902187652389884749096414959068428315210581204039473873717830055333238724905060806869495488837618993632854827867229039731333487763889213897502314515061689846328062056246910051090039057223449583736361637371280665286143579745697904791220415253060251566766389857951403799073342516657201051315329628462293503986783647419710732955869351527680798887036720787338082893826765341801719757983248430823271126647108692099702446595763770307899957614973144043103741500903194581637296783431692482291342759108698985745783601639489534735695207371766138361138050003727008599875259143846396923918603782192244706509994445062316909928639588373775073063348267116449908643973867660709449210356313635785353088983789479476060507867354398802167883614448766145578566326638216113805739749179827551698058134167027951719530871973607415465315525824881919272696127935161522069742574224886444000160408244467550354192134939648527649095934084011701185676931453575583732175598368637968359483808234387489666537987732959215594576711691282792544403681896917637419153715876152058116220943590902053732936342263846681065519118135044732070851042182599765778072071892077361686549648190464454133515072199786385034730357105178133539782266015530114296416450564460249934098113786710836955378240202806858367048418648744875918339286255395861986578567794749625888409737936080673822709256594585377719121687889994002854873450362986705313765837106520859964030421234271199196266402350514665415699143161222825240992895636131356497067902578529072908442692525359036958526806207263767498192763991136379135279662077459909368814358431604847166449485608677589176693849363905145464628172136341817861594236454084159089973484960689054825352228816608461115706766264203066814878296382122850879163537405226624837398597581746969201914163218190426412923463308446197085204593802114632440039286971689640267346541218210070472379797208326325445488775675995024482967694311542294841292953292869369493442789233529381216297917712630633195564857619130914544805921043111062894327985526206526912534010807220612923937645705692537196407443490099152591656304458822639641377076414598990634406191946651375697211027817553549213996551190939640321807767803705467133693056557858776775582068079601459966161923546424624530807023469835492533336793310340603511160999373780335831265339189557834111631818971215049608725970662625232624412549117389305036388833070422670738682009486725635814985986369663686193218762430321177855584432108880170285160506588926423344527925720603502578721502996043877095507413743806091994870919083055469268772816211423581287631530397085333042780155213265847088369069673205382840655513716402822689877165016341073099248066935496469848470751485873595684880109221738966710180196111492575189604421694396324679625096004343768084629284049864615591854622448445780355112070995049442936705082578365892978393187753760427656474865122447714901695901809346642448760888152435383251327650007935791558641457874394518222032235619983462385752530079595874911239625302130318289444817376552857093767346077861890774919813882647594657269683798577489868279132100422317239201174212663224830598090268136548297717748125169880459006451308120488762341210832995249673194618347900378429803009890990951818010503134790269064240108557073610125401988200036650886836411796731073349938060273125007126177213708077855252546208545369117200127917703483620450346807406131411922115734486020067940238582661695392152300796395383950390513539509027451747415604858209989599120487349152226635781583105107444184591389828574570699116609341377769375129278842995894738190983542610372726045505029767507498206146470916877553757814333631656426202261133048874257259120993959210966578086522700145552924627584804157846123135785544960215610070640443354628353459284602089598567266011190102710011939944864084640760312162019404097077306236070541203386760121538780809592715482848920549472596429511969510982978600411817017610399906196943950959784928175968034440500979932547309767251427812864907049851094092912737565804869691404409229974278687566504251663266150620979302039671440402426467642074078342661745678671569939837084728340658615052228729433906017516904535455690368598431876802907222063751573625589002374676876427985871182563439799405922319139330687490333800679592586752345491554252516956693457030444240251638708752559619677964047993369234688013339474824995411157339598524406199960090677136217235452389003954423309998443790980565862709680160342960386757088872109805926203542941991118472394479638331872413494693829034524689642450961870235234959644563438966587521651973061069305924288306268888547977193883868646941783810241462088609277936111974870320332298235226038459687138313069299644000354569691599354704827077732685113908439597732860214943877762669956390647320095945622350296129177180157853270924150022589942250887530917257417718388310532807278647142520181089504832856681663971457056620928104619635784442391254876054254877366948275284134783027931331250455227680312199080663188650188051693067379823933547688662574971863474750870404362859234967824621798237050658493484816375554474161081175798913347305438211407118380678918252454908947791737995132809103495137536878264117361548990819623384875371054148304786135155921877316612721397749034718104816596218003874244478786880499197427647106447443989485075285536801570762384704271662238472730565372657534882936813707741531758849971520904044545690353211156523817921369172549915681526172990037683651382214544201772993253985042471680940579905088067763569508661139429559069061331393539911972778903840244203013392653366368381497472080155347228118270756771898731428215614005730475662744811537408477579560629146666033562409690365773976289151824790833623640954225133379586640121871294568621834873155398262403676260066962452762846309665604313158734980468819914973765039928265329166571517683704132896650491620478411843287623999110948415839515383679648261959926072005960556808380835687413913785302179821166392561330392508820356710765627161669716774900362613515206497154850016039445202411183091502167072601120493260532598484113346253553433561377258106592786488863129478859218195906547498519893517401033376316674470202940523546424189812962580660320004567067712611956371765541505897047151157253069509377477025293991640002129663353055778310334088099938004904922462224007625106916069551871046388192901692705044583179713752489655772623878853097948919493530132068770178878905528159248270330966468719405146139124811390065093279152901136227974675861829534482378742380323783845375155035073471697527676533870610115194797061400433977033468036921567382758515965415995218823897759483029503544535790098312410450863229429509353006038494519057011548203061671548782600372262134988547483073844523678907525952943534194560076128267347857695656218245989569012876957661832352033272303861745438345208504226533975647809017369049967303017962310045653475721488463976017292979163789548713609738486070613186479973527641682333107360548445964090502190030985593269514419786195368094752070468292029922399772616111545735189941563447949886433774478906810001528141420863229615798266316052224448679981915906780780347319991365134290116027510131496087716916143182348319747929514992375938096701300212568773803622838979412867091554559529185405948247357953741220036763877841242583221036924740404085572609114721325428471339313824541253145383509869509369225696493482295323530036576755521600938966151118121381764255961758426316034659454258646107488726980329498758165495444930542600075095462323952115968131030127693135880746779817623160322839054812284575131375626583474965166038731086471628484894373246159628614279785103503931932385254233652453951002264097360406127694295108083558654824359107879875506938240118028906857801216214759946867896944170456293311029091264153541731223035011172785233752707715820450305262903809208350554139090774614509366996448142761458719202125978838704479376417321775580943816031103543869938223017170181783488890991415987762166886483753060981014234998351175280402368408896475493941563460977514621331290371758096367743465552787813579146529427108898318561774205736081461883775155238175817035988321330901504689723663439203692726015182274069857401710075447195426139633745040998306428648634753485830835131653832647705555419275077730826553545411828445010408157406488877215958177648526421656707970808058391062910662536723718297040591181540534886484620669021661330093468520974021369922812997936221174480195323970053357540330223095960784164609346087243630130507151433955518061925173292878075182735322452197952556048549064541003703420240599275865344215960525972610158522459464165535208377976438578933413310518892747261614724995039780760602998365966542273515996988436215834110923195102470407528245901837017040267134747405562450956841185473989256896127834823009118445829817672362586629117732571958747687036218718709112960320015665211401419189981407569980168315276045061526101751683060394328423441370003302773805595540793280472431436062268613105412421161917415140408578184051677435188303734653517815182795432215366427281167907854164446953779415581867762943501059698562974293212607214164361733007831561543994791289965281332994935175946011787838512838184043142354610876607711295982387135206009113528253780962699071298552475611720771670288621372420598725927295947145704801329088838509162658348408280208208043728001730645990401874259955603575697530023157261401839890974758135311631724786874459440068488049120945124952349479820702914336607158568391495875727454088819021807544532795132811285235151803980803590981035966113802565429448011510426574627005514755997223795697640931028916122635039564817605744701594471307464980577504017736709920769756681690908289140137366970785881555285030735210597473691789996618887352581915660027398681526370688535992141200997937182405903567547297348485200477869286657472214425195262628346897718264833383098149805021968654425400966913075496101606069450909102798617695533612573338714700222220476395817836152110525555075690434434552799552240924864284141082477739905575940014542757586663848606623696717106269788528413180788329661728436089062488898380937617264232916196787991970359784130768842910976283989363211367321497018448108547738686513204593799465055519648016659630211308373518358247911586836876320444860338278295269127669850314849044009355727056736306382094820731900262338792033323926595548324009326710410272243213215874952137472029369043199238991970951699463458670655861846866457838275873398667638705833500299801858374876890003484940192252770308850005434428003485383023917816597882156801585554089940905944919144572635656689789853406238004342929025992786066163555364759225269665777350039758826431969926588382311409075824046820182711688309964808895059925963783758085531045450182264466967123437492351575705614118618279113211449709225453404595077968538662722021509925451557308715750413122995184239145766152576742969126774434403244819338673414096347902832167860651027234222612724247498706863754898627873498645583833080028302489652666798764210359718029538579168952842098063400636204814711298907976251414466926470143743184898196346991402800690714538384971295566090155808693730071476666725373884055689820928789277303690688190663114661340067582833780611186886683786011554522780279576769491758364779656809028758209196072224678489452116656612114231654034368463161401111779860986954604307298951021418570058943476067612105112094810158006341107255956093398690953713980401266723753726223303678526081462308472140781283852441781784652851591758312047370044060474921301235425730219600807448111886438923638834642100266462627410080987110369655037196126100130026147125801389973380329484209019724932094272563856795336778726603791099058424425188291837431837777646795389592155110939416264806081441019911862112157557178894759681906920329076799561822305048484160330785411847389471460032719695251617949671047421098229538600003459299860164757226942055875086619068414580667230093932960829321090251638186810871251424894180592888480719988084435210560879745389126656450036057090544251061310311980842182950094908705344022715969014008152999393834251643323301088435148950306206569709670247326343613306704014114572270555870876850430655289795568177180119036168257701613632630579083693488233693307926040909568844493738972829714199711231071377785056053321327502536269842560634111480463810691745308833427805811039543704056352945519952140679559251176847953511117259325508733130905058080965903732714225613485687850108319092825692546786735247133699352532577622157499600924098249991450870551161369395683061829808979440548566524968462819773705704107546706468722319350336953747052074663027746434796975537095466968269251454650087274078095847139269195488375442260006050035390228043718184571205810509763193970409470302608515765601970712714217102388588070326923479958824434186508620985626645593916630031853321025911587031492066059132462370946317687986799524182584109558560977486758811059064918166928476558105514361102153255684940924729413149948565008672881954312193919017178898968610939830757151405063019938863185519962460134661677578637902510592240275368241213962001155598141415107743281059021482997177604267703055398134900082600409169566750382868257677344637244925936907882702559402401437030667591560464286480120422581533529741469575832543403681751264092796997155031372317604011497234388126305601385029407889200392198037889371996831970905712437653983590495711521254301718548350174737159861674011768800699587591266738488926470890835280979947460264277987575827058397684973095530039943774736128477546398653117927170197910487008352195735097070328411849193307704473086748223602969160757133959588232547769509237249939576238530502959713273912126794352765656944360640630963386069303578198637420372171744147412050832432381172207699577317943707912007676604765904701950497907839182445320053399470238328067585070582698126969148840255018445991370023481884878920499544651035458841402092880171085035691139257663956515745519164943884602565061632094118583915401062174265016348717917745297263200543558162323082301653832588180421869001918369543614081515625556143850595726211148817932185730682220269708669549348275792350401608739470359648151347204233156299550163520052936074485141245511261809021980248954711362069570466463129417257608019722574268388224113485809446152149145483547760496239540042411395958017333927230213223991568587100742801939531542176152099047451885067192521737915214770169759284106094902738401228358561590426345901692743383764573250672639737032663271206308076398208493122457723490752538403220985699136830027490285534787174856116053908927876312127372293910900264668207488359637982534779154570269748170551807792426669975943896457141647612665745782753600989547790318965906724518475430993290708356222570441855597257376833687540498747995569007767127621767797983903346642231590794412445112284113894537060270019753142279636591413603282321998933864851117899186118648098912237927053728831296980930151769763310845660735216030869142497687247838749797316366327455954183516192282122261648562986934282272387584116628190712047844812613780796589128502662808848121960348635562572124200597414870874028823433940290867970577898714960595847005086669293856986939892383528564753598835037340751477035536474733115392300923165144488481015050122707993304434783218743919830026888757520921790453565174357083690903819248369354069307583890670609449379933939688737790161344715760633340444385020415710812914316821062559858642578256811109645778270286922855394934976527338616062094257917783114493364727317860307363888347449398311042338302446820137982062847766479168819575663407979162621842602330768008244524210384767836431290837299350237301270840518212141727543335690378838229680280458173691646273061895117898978050267355155890397455097462941424555998690168188783586892241173904457114815815117771058783026356481320204668969176705948634918545351300473649860393878969877024983926311200541288641624074609971751493729470482657087440023638350332350028160635027697941010943375975027629695234460791217767906744213963582550280954745134562445741999050433376081699734487533348277524056908500419155246860942839825439368496587095361270660446571406093422557671035241169983657274449794626054699094225564161093013428026014433065878243430841037098439451562439918087342078696130579738154776014318060667171663644305167579281744059690451703430074723153477940777413735389989700965178067578382376590144291348840883711649365483663966117830872511102218953103170777575989189507967806712627003473424859844274213323379677409420905780680913013399963228434468494744345773553097916662379486203045267058307495575564508534009923338230095941116969142464165038010429323010576852271030875512174363654561464336899687170823116920129721846752469412559755062300774291384014460649344338326372368664333867043063822390768290640129182675707283213542402790274433087116689416711539319240999057975694666709087468903974758445531328650931240239805780184165361223524140759073962654416791253206288772886972662814001714365225366622623450692826395877638306629706861377646939808484359948031723755201970082490710379836118640893190262851374084941333163812795498827271092666937815363976956415875040487051442568089039428614345179970338927518834879702454785892324310510776549122478500244665685767257863379197937600920950661231211906794728814206595700460386415141753978896996566688134275709063565107353668330273069081023555057554637521214725678723537287045763986253013997408896008348547976236698112183507245668024733950497155570134212099170041160855120472431775284567836039064492127303088681004732544751448549040916044635604286751142821043766151273786831582011070963346968712073698375257678100891364270365469832329856694178998546156253250665746150184182766743849689298493895908380799698519579769941601717592053226017583823422267490209054455601320305091526237060165178330807243447263866040671801328717921315947404611170551781091907059402878331209276968638235652725069655375665236825886330645207057467855085836632384562722125251153226227089825428696331716980534594330633828575568273142699701079538698784612965314495750520729760937200698247024765896384939348680238072868557277028215544846593286262057374509116337895024051505286082200074150193821896983602041631623439282333627399383038378046538992254262758380544430702558913066041204214563398105412222614475428138363537217549951942593170569094681718167165102864021962336920500469748968575224703770359256181678526840532504400736819330314368974150057187009061619162762504467775149521381933431070193200729089530499239095121326521365871109701204259538877503520274986973172660986571488341463641917492335208327100896007553356249864027008523533069054849233944631912966565131504906882857966905120065930463648925695239049531038994823337065402185921309110109669125464818338220361102196587266512028717888622660555325722839165156334125760267704612431282033409967805839385878940811543514838044698865234201198580063078364880740494434182550917084369593964750940098204000993934242897871906283887411597855547378601027657866658549150559383754129882234870245381161382203369773037125608972681203862962864036889439387069914101461956348157072433059962075499441983607067454273882107165833087827668881617693536597352579629427137385026052951647637174016542729880464245626988732913481687605596189553617329301585872958734293518172528846561753851119818707231076756598470960514295375714936250701355799949456553762549882935766982645748931450807234528629735615040075995085647126324933035155612358866919429276754176763135580361628909350561014537014049129260299816165279562356167169164829701882428041651077875018048976143173969949426235704348860908256251969543037713193663637666623638047230234873903902172696213510150708384421760870375210846005970928242606456086650340545123202711701166282401426749699847679731708848793291458787849643127737125870118745003349264906140160714111174101669647848215604208061781546793279599545155383935068505101957090369119839977552557441125202137737338585557635771987090935326436355587188824304804458558109065346411344579982152641832564400035069828398170400253863737407022916493173983528892428419741432506551183805418114663661213319036023157123282449193837797369046245041253946402780435895048039319275035207905879045393303421462270565022201604690045578081517474560898465084100181058882374563142836614203701810211536201413694449484759948661258934181362830706063174512209711644424511611910714407263501814015489327931673207266290659542569709400709252406254075749684350852567315371914215503703090318714477597823326461560269662550213951853612985564936327044893940282677292446421700021417828964590872789390368330198970928008901435783370118092961902133814756994365511837884360686978800794054086077514966672841399556025899776260281765235758632067174204139416692611894723739122713363267526540345296264591327827341989011527642450204040741047472719512403767841038559897785971729053447779917183635813099933413942281471969455336212292252553680957458306503992314549652678046108230185034655772109106645458275420059689829002219657119935565068017698859238801649409202682578841068274662127446991465435028636931883193026205170775026189927693851850105053200371867610231907362402457974592716506793298940371407403869682251292430880557303574240191819558049898262263742919926131667821289219333994883794022161640373829782120306810193692251764745306835076302417711339457923857083474402952670471516185749966350237268751543275952058767271197599916498952409724306912064351508508121301408086920400705982395474388937480488808971181695026025611821121446225617770955652991611492566339458747644115208253888183226822167010792081825739669362341080257423533355857587320820406698780434889591937662901093702182638902481601100915581981099635660294863132242931350495676599148036419061985356147101667700639432187210267482671828903883591710398734698109909905782519144218420941814195404164629564023776503759901975601467991593019588549312895845899518933720022417213096522799117491738629400042056009099967893346447964952577744898968772867521002750531090173710528519078404885571201049685735048080334383641069098718249288741980156496087103628086714985191822918000779076680078064922409192058477697295391040244584618773822603314022543844535111617486448594557994433339485700370832359855260490103728196654880768878078748639319157226421072047173433692316409109089507364183315410747207590555636373511404569508949569104721571303618825713029225237031939166457845660832733285397382275734517384841341372373003964290719708070351795774099457550667316081294844470490164536768469980054273081536111544999335819094312292807218585853347776726180833059565017316989438078102460469457201455858762050179275514975074092825818141704310298924865035740208479799296157260659322379989194368423282288895901575873107957295131576695167643784162577412897111654052885902740269613869639450324764013856042134298020316502246893199014638102257184301749400720424958846240474109550404688443357610112577240547016230686025505112787133334703558057006967649290385968231845995382902710867368391514584584747344663018596263305412785741637810976721945800309803311768854283024312770227592356929152776480658206950090267607041326028213771548393081226430422143598501182281812956468420942113669520600111268342605448216922711922292505460900070192897817724764341756459787999262827631018666171737028197266930408130482910912150779270573278479499150071794604729165953925554766099663883924669421059277602641772130805129101934299179230997795338789507792006960545546692610465548665510715026727843347006888132967855177989953438145974300543287953542095248490070940518881160659983472653153322258986199435942602767147621492654399238280650665077856045794752622124655940392159730451086514915041383449654638392203037579703865789977268278710374255148604228626122119996631411492896681065420002468770640008442367594789113202808765884219059190750776024439633950838659232218922531959389396153822433529274137742589160480957931998088182569294865529312826320231754162177230004928120198785297569668759315661317159147130586552117621868805268641082360562390788119967146330944828853023198795886431912477747037269832428350776356552137574809064500421635581690897783082160103805185068281503868301799515557514419029760665149498253508145003542383601532109985272294093139688833649623468681817241122208952642406295129141516547454971132706488891237061402355594599396049991347134955467120544245283643937894257572067302661293123494446420346183645756668782119474262791991095186447084905256149944615661012137965617874595165096091091952477589402407399703734842370299485585145071439420606992329074471922233484537807097696865237999273555632274325732679584403229084362015043408491829889319020973317725713333526148432952478276623813942983436389832736865712216983077187680568265782904538331711811106982539060694065755452792765245962828727181922574144871257931645791946887011835878921615707477400963380270414456097071891747964178480621078178113925855545844998523424027853672010944702199851408381156105294542032143580239979942199666049518376208945289913097217632045384527781412415500785097156148440427008661315525651827821926406236240633137415567608060154644676449340838017885191501513179382156756370319773877449476203289859738546808827911397662166117021967379024699445279718018700326741436309879865131962019635779388855133703356605744133828261084449214035648209368919303703675175917839656503758086775844113399177901480143939222913984554093449156496691902323140448580215541026060577915682885682503125729989189592048498125512431442800873785289213089944818870211798074029706976342786048905797865508380985543085754941607603190234214150819418739812980672925162947099403596783800342457191939293659298801048944010211825148197121327782750404267686477564690328649140287164218846440500143621382885299887419079854600845568196898419413649545337288557742179071909115456681031586346168723946807978924252909349784595471961911530054082526041245058148856224517158010193058687519206915112183502876196179046451153178767140765580415013202553448523536813375301121394713185151645830756047936154643276343079297942512513044027319110698779564758601237888728938104013842144694765670103623080473907988129750360464861241287739133825746683062248482382055968360689010295245335494315404818704567130177759026205902160778672944864529613696977186899287027249058471831219258311127259885727020045406899200695215739547502510084565986938557548537473891963827982324304691261617101768169629594665518563587653188362861410182811799200455513676589546689939826598936523708948765813825662081441147166954112213891835959744989374452166928316787076324672713572503802425254868640905368858505349303439590456416266693647477511411964086152553045946262021034612613616068599881140452576839434522752148925219611242382195031622842876627285101011361930608362833157234851524270366241913825004118457036395530989960906843883980471545629493621580484512205732192537282320338142281137687094515889911331653024081671186386198158352687150129509840162877008467821925260960790625326251449450715629616515729263228910972665365349098328051283191527191789515535469309050505654720912976849830120709914737717711620952817770974208182550175898039276279519088796220471243374975957464420861115530546038118601801365238059414981640219101387346712461065240726593559189368314954695293418706674053690859553882992029524077078229883365230920252441213644513889553389509675330718511222391419781707435595272661015684035669355856933747343415344165286941218567543430364592779799823408219899658293482457644401886020379403512588592901181341518125777365193245091189587970969842787140393747062176802851257013695733714645114980731159950515322696171807786228551653366801329894062434964326391597945558962748658684573715648857334215391090148854557066210490840936882185297563404543226951290090639946251198297626099401667942608625909363172970687469399669256381598864471871304225012260690494042298859507345866137606834825245113292407936766025921142470270804655725256478149832098961500280259300789847751525636026663116249161232196054569867721067515326720134410928250860147880917206304640922517908648434037315961219470704946217162204300036781445414544255165011540758184295286174560332244067617600924422442505301931613096934789547406667266890902100465492617777515473064658742515707754185375830930612897160229220202916465217749608841540751272180290127694908608198118657838813768036492921077441073234013351833695153434188719654594717448417147634404551204876307714245420743878540270632901485958081279308176391231490340103005519229668084167504432657090214953859991752696225970165568399640107986062491868315102595956841444235656752738365837662046033490037605140379656194013854719559237860722808075794294351701374827694250810939792150208106314715692188431695175467373098361285626584589660915279758678284700202448152793145252380629558628779738370463975806533441418596468336545025485423329933017371730851482988845722056984067458462158484479747495599482655248653242152768701852013566277956005574362320610743590560496710600252222253628328430713017970970232670354423388580491599444877454102857221571418396607790832757040578812337808876583995979341653597234521555062148899029633860611018318015842678945317804757364797019265087703594928723496402440184452256101293905516803298365195353842967902747612502029776137893967256556917324762825429576835456028823554202916117082829259829097962830540573292457330401910222929912240648563725347263654160160899509865682990485441632399211100659096044438759070740307068757682743623223960734498100682692849357595496764968454281599082694551115962823687509573445623870154049173625389634738158260995190211057133935083990434094196984771441450311868192751542590146849703662192459506531175745454155026663984104017532793005039669184936558266718966590158590440298057245798298096809960974219829188374888598629737182194185201213241018413196801418670148061295748932455281988149587091516804358914831023851390479047359386418706835412658953117203743385129929940295504993689137356428998475930306140184057811381429170061224503341914243356250175654123009223377364717410871105040963267400985203790433404227025102207497122398544498515708370210123385868036232380790774290381834053141740783850610081808429712888635241834197555449891391799139892256791782969936340440534460204133371633739433035492250528881679687121404022383575300163721649826967516309530904120625578845398390772031641978026500769834615374310451736225673309654786341907419003606858014365681450716421111119721864486935636741420665051708089250498070349211236975463478107834399052634707983919405159721384818436908599502686707122394830905404151833340609544415450040203243601865952693623438282806722108128688407873273529159493292096632411005090234863310292522042688916370871662029741989927882804285642712255717070786500303219652781686102340216803718478602919965052139255394315904045493951893089912302402501877667896462346028471515140379428508664925179581585907926106707346287523488652388948411506357730957485103511142818831135217870235065321551342308035514850934406450984133230310360324729995042780332505331243451785148299187739550869051758570606926867601146962366740986197854981338324207998610932836915497164744468062392663823488154609917775569279458346459635237585699722770605719204331994531422528559510186384215254585575855786177681570281619129340427404170029296055128149954463109117941072791847119262366326002527453886709675101815712214030158821328881877985056237714324983310709341160514039791116936522377852504254985776895353516527881247905570585655960984658095551099842628710700641443023569408680289298739172778876691991010790620654262770474415162199165827292219632855166047459255678046200403717626374476915492542697471069582984571448986807098137384803302513582965100981171218104995221539310220607797356718736776029707875197537463280735583237901548046727645791733996257346855128303707518300309626536144226635508670812676670462886759560226011217635819675619184182878186250614484227139149116675133155303940219571707132009508455976444626958894434264475266531853231733258807142747111826657154984004434137037838237694206758737917579765053178235474530856341120999590969382503939838789888800956961011944592662675281860534015405715158176539015345749444389030942296214464128448317279494855942816505202196001450028402545954210945484391020018796649761400216457206755080872838373662313220993483772199709537660196986143029972826846658063143726458497353073899625813436953701117726227126513009015827381195252461769105285330001210210542304309239313482536827225205150204420017925368488966610766606282038023602610167259703549765195750660487710161089948376746902785803837622028748387379232608151836608393953211489544862967201278610320178578957015657538198199794924736611624462305042994702672222996118534975725569805420901586479069660129795002012062160954271628934743654996943284576760356898900846816985542237812633829209188489087153538895145217217186417580535583119678077423049708296095224717386574409814931264758262489924576895421657458684500360612199338083362695250360223814408956553260738299662658244531311559990312954144788007087156273029424884072914927040871208811136475048928470546850394603387887542499517454087394676327704847297820824158515572946664794928806127527160985452024810607693823328482728419337817435390250172995934281808186569431591671930827016920066583091915788142050010141224473057715902760648871673070735631195393302820017620170410968440712223287911492421278189750536039640789893191226010463450739456867236620119638907916724525057211278077773806286358653214571087167184787284611468282417608248977533514168666268390504531578601122032779105576050760496393927003619160915506957282040751821199169865844574429985543391768015539378334185785934982344514236410494727610281579164954339391496984420423578962051738108520357408933213016791477178510753133524715481291112592803287629566673407033727762854784121169771910281629577104784138759888956672290539077560979747462007347147886735254794109662016432862307304344853568131063433053602942880004555882050566934462502107746119189211659828638249177818782301323137777626208227403473718729705364052169484215505249925362056373739202177088172749190339348631198266408081588781059845276498397614092021592788087850722818371351435129991577236916695181563912266459539859806584872835071908267456956458198635657208103064855127800029325983108765648189987054053837865628704717778272800862034722910180784212622451097038492848087959006764810055584653338959426509508018335990120420481750248445139062618849864162343197922482370820363393209169644325546357189723315083331012938220162249183001416011966546675891056593667593527100819775495243350052431395003618878416874142381769321599582880306516893964717107588266769859263416938447765128631797129993874197644431411978588529942682940688591653385404403989332752748767239688744226476942126148747491081240420739737731083681521950452635752394363549587442028096669658216292915647030538812364309117539676796938069096739498908884892082784675778711675136551526118694449349414468374603847002213513973454326287760133429058687212629238169986972828720665256010941623165555635512704436438657141036026741134955324947246411719965961697619202059882345634560166286962876211660018581360885569338011291755083187569296398703719910007985268319297960108717236210781596594321583754439051972411689290567327909244554876840528971853703430845894556287878961297803748557119914489016992484974306320701402873153833602900816409154364698500797692765454778214876170631453591369673612985832480648325762186293429644804540380867052836167006978033962177882625101900560053405363382690386674367628253220196440121073328319561901426274125023562507976572869648362057037109727225826781368993256128054606867925064043384271388745029508102102192773936347984969199617272552192581522550122108749431070986982291712825418682727079881317897441216661289236827018921336628712681304550663004902822110692383968995251731721139910563833596855451249706764240945091478947597943083726483594875310363736433686303055673828077794215899166784940221034416180193391618781135644398845563432932012339707116078326417159945259555105131494377069371218074970343275884255358361583896958091491840430446373020890113186419561156394962305604339947525393069603032038847338667430606133051909837966842220172731225952474447508185379755984184057030074579732463023363297414576625166726594572982377935953761004663415920086956013326617392777058042921208572153343751361743380349721131403423438010545418868838022398627218076694229324781361555714885372293165215554870574168605356093967797915019260734938885340847605785448048020666427612670871700945464241510726897787790825305228144500776877479789287425032974614468942174937824649995484730081146456796876615513661962782317643536517907589649439513031832250951249531045085298311894680253952887142950275151118043755470747951372501695481119579914831897022592609423608092705270960853726114063251844030220636575017206400824317816322583559996518092498258185310933832285405974950320830868621084573225350949600166482182309611850381421467614026314595497892085651968834070600914931806724278284207125022226832035341159740616683098321677825533800100968330315445927592955963715619080728451262418165084364243062488134454080938626413813352959405191667343312444804729882407959429688291564839316211614051582322846445249587887784570766439879316032465828154729398477669070863694486831705884823900403330133549010621197803945728014392322285263383115280586095211657495201707166383987542946858472337958554614024026754375464580865571517030513697816273270259058864209672972839264604887098100518462054070112286386059405024978596795718365491806440870067478604028889513296007451600559827551732527834799108115681797426270566075175138463885626731520095635034358563638665359729861238156347291261147184002654127819201965822901234207353581321046810509545846432684652617941875098648949155815112819016779174342471271425996363210753245705080248534991765983040314579953088985118068449659259451742681199465283886630695115629615580875601270313487983491348416856738834864001725394035176034672595271284760578275265027435136315934779432271354737702048066215431613440957273962645438257988597807635925520691867673917954159611730850314657672412940429317343683742511636119258461126465868801845683632389091048453727109235449529000673365040894274099381154805784536825906758738195957074511250523360910945607101047466718510146635507886393178884847764573842345144353854150412400564070257198168968860659612437635029073362065174491248173149393822194807117080113870999588161091632566134255858341350021788179930349896688744650412021800050356939851878030770164046461258045255283714260346347888018557457736575543395828269578500519628385270356981469916388012148573487066959546993152873644288887519773435866456965688762663863354622585672927903550029773763293840002753085898710375030838302840046339599100009365442559127958910973930267605083197796247057268816717152652055820496594439517664025747500701205753676193791151471133888131134191858390303301532339475307935085416754809570592859632350682923891355588266661370797111119167631776769876894363697595645559448610232545154252830990566244659293256580504137424556446322262380508999707936236178775656802354570410696079208298980198175677896123094090543170122012092399495944644796169409429236890536211505575307313306146943169272778317870066676468364942687185984222179477516805649862501792911038575924750631713715449086511574460243906166723690687688429077059640254736521065885835905425305583371603717939045328341650342358725826490863142054667622655204004125112587154864624820885315956093311314667730278336203324963836914633533667222876625574769836942481532099695627829440193492934941181162593332467274046728657282333908661211745500124384409851567252329832220025505449190766898262144869191521648754243488473954765186165382993279979370319595936233952648258578194973943206888776610134417724479427674338198812399325187543903934809418450331634819064161567526002849595352096548564887933721026134623693392277114707893543747374498195866782130279657756514557147011071315734107892666649912810407176455481304874849458701174567438209380888827752474520086977778658553743020707727344229276384578509474509315285008165250182671607773438355780183058997136923336689831956083196126753064922255689576117222663308595580695275255603380966958264652898023208289928500030357391642139314155188860394712627602713644219004710951147582037601907229967057773532505915981094701220264573732473622001653467347338370409354616120500259679932017740098332139485758401955487182837348031081003376947669115676838461392831822081139185932355592262636280502332683003467409804774487436560542480363707852396526944716266906239417544243000706074155506273792386982200196534174719773598060214464208932770578985944906777532355642824507103564124591473975676521370615306096100945385251467671842001220887665405906955668731612755247670276705824528215775813210786559400843232057301468751000491014170502026661595498898482901869728497304431401270884711891408802350950181664746751282314359914795193629448212952137998990725428564000659021070886934295762662556071170149614915896805780206423762636256596049243654044076506891332949655434983640440720954716028124489512521304770644087721395702324617694279187558559644724990144660225425658511181089981521978366438345361096686751088678819051613882572517376219925837031353281546347463873603795336065865195942694346563981129913894754977044005479306796678269164897477540512997070943615679119828362122883141663331179838039099277703941890478996516517953781452028407700510556356679140610725794666689225786828535498293588600661491563068149376728880012498048171415190604817186860785873768566994937527854258465634680318808578399731828901377802585055472996567900425287106669165405520884037364955200447052065174578711831709970904578842315384531115300405467814890955340854153086263404381606979484196598262687835445202210774133401304715078243244719722661405799276801384365189730247878513806772954620291188678067725849930001900192637309601876597674251343153280332965393685366900478079125512759973055201255918866860201358071392039528346945694962749311301258864033909688185333746640984740359923879451829718713661847764138096864518817334378183135058736927228270023335658233622117115773510244372636267534137346379376912331118817907778209210054986375090807657442742869494366876518597371261384369910355457628529911401006432849539266152825247499358035865687720620986524007630142781024848094662872216178485669959079022008370437334172480447817664344779209209833919322317119482233087162492683654110179759523156079452558372877335216190884977875685391745166029790346641561957643856119960717275357141482690673680905856772397533369252574671812261836389138367706007462804464675920529804552102850226468406974019434513727416809544469028216904347668869072878904932862342857307352220196728253641302494939345336743834050023105962891367290376429543003250599147910214690723636734652661087572830385526290896341062212674550402445222911922652382392590250610295596320093774726055552205365902279431994680636403623198012185388577474559203146575455496081305851286870038845240211699709963724912711119069159147131569726903564855951742697087822561780576133820131356374086215616665941793642176756979023954007546136627822754620820606975171325761725612999402162297470358692752011788816170617738149694739527244562949994543460034032545406298609463381408125957649344849584447635933171201730747378017134558204383985388956226796647166875565843759234345378662737898393972675178854924502302398487971860395233450764326827993252368428429943003942897224047588156354358402433482981938021064434877158324404440557453400085246832130470103763178564398825775331472560106481846324574943659335818934425968545971556724774619107512813860244815868033297166787860172242985071128680784483741932653406871927978991937263730418539644317689055691520901362261899441074986535018243193200352143344849530170552453219349743376794033258350602964734221563359297760233889513457898237041748158056868422794567093811077694969244904387822131087074946215282323913219481862546631788224201129481493871952679976103606800252968608684064906904221186494270213772054413184546352973734488349405652799803964509176277254889366232733523298445195896763121673395912681189312886101355179650391061091506097250114706553165981659306167994917635209019850784034198538375314220081015373835642915350007383919058618397655271099618046277997726047203952735927582659464775797008115482596448453179140654888138803386474014071906989822075027916311635492107431968938832604928177187724341903033028249881021692997450008790538581133780626491223777743076269622896344547411193793358529251558271119858922880458594324450399455169824389841863481701020200482510538598492755524259323386479562161323031675570551301550106569635428162105914603882250202090785088112124896342347073681421478023464703169185692534722379168277613116373905639830394674257007344421127111672453552603223237385415385183414934938577404076089094786956979212650448143827057049715376159535840595599890395261580736784395445561248900702336237211722920663605710112471996317457797545515987728530456527443285575956016319964178464241996005177667722073973519232791930745231746657255539160434733292532377134194522865328695370101839431180923198982201553592344304877849275542302709598904995103321367101120206726410494528009979906643195467087067957497139537063148731573725659474708122781227370361844074785136019945139401664849494404610507042467020782618000992886092919355585778093474815022301841974023875078642908579079812242729258585393851263110720721348479467006353981974441493370754274015912767954202789359363880816440703955997286320528958881673964716583932556176483497940970644970393069935519097065052683696712648596585718673543519260287290003065362567510879702768885286419351838955030449775438794579701290006041893752711181742918064043187229823495259062054019171804850328419237328890087431012768837553943236237957691849248167871163356278822379329582759576988770526487960791398435974654807686901018540286929734440037237639844904535368824423303569087344533050118258033385937680349657232102560650545350229605515010597210125998019899114987751546773531533261868664515830078471919065854446533027167978989374965751503795497835673088113895890947681179448435212806506340215951199889900140971809455363860175641616292495347245422201534230855833772822004571593606174428683190483320549971786308456798985788968095704893335261374247123636335443641680901935615297213684663921188283994794442291984292278901421242269068323972543651865097373086119964938180851839654380418702748579723048949149790954735221942363734585913020063026969066103714064440118251709594736488168724707164046510314717924810168988008321632681427741639693380412284976921707149278969849022123655305466578942964882551721949798898724997202354566663508366942793475498590438989351068301055772443164647763935729166753075346829601256393911693283231900117302576649760149075447576870510909358292023703196009242258500849993376530569324600621261681395973094422450823455642476477603431001236175597377016806320596844730286727405444849418838396767055762545970737098460605292878618431208671944329175830538957805131948391303713938233459872847266270415127954488911361279678512660006267634067371378807708354717635000601396180996483746241316174429880543432369152648502703484083725219196718483280887500259004781671241351421357939818170463371200446789754200360499034315057016525302619953152435073123848157172463704470340306275854893187153362244781191242187045122472556816881114924989744771224640213373887677711810354090636928618473702245092053991026010290093635699093485355807140212407533223020651688419421463323600643902736146553975068000381618604284512715403683407774019554310533811931216516222913255470535626684067316308551081993810177073061128309439281959450557433247839488835528485928766193124352784578939477618739099966406215087023652773143878015787016058267664282884641170427893301051368088983218026610991599030463292048228051068486148305236494636608818201356046227517236826242265590486763084753906722590381592104287921748829009654241846456228482356888009309190844582486568835082447820102953762237337189685221379284868466170908379936752647945231390994642874164766268001576605761947102073868153946757871332128258325017571139618076745373705860047532296398127860413940591041862886538209890929992708950292695153001986181475949593097818153347922990800167373710648774163662292853613958407784064993888996171094084245148081452894020667189912336473403375792605283522569510248985460744722655112982533435281688645422896011304753844550965988616436389217173522982733874034915283879706591731489548254405174171819067570718264454671144868888572405817027851010141361199726012635322054341900389974155569758547228009891723507026950061778451348828155716832320301215543205522789091701678443904680120705174320907272694333657991020029729002878776926488677059358034296398732041779270797576669840372470411221343566778412625246782457056567496096210941033784354619079842061492334894571430230901212148181309037646168704929786436348637153657435813576172428689411322293055406898068100427041380496084613803854997920721211384940350103457329495795950276377658136968896292970789546117795015734612101317852161690234787366611471439037316076139757118560954591922706287042773430295316097171097136011953614933199278867413816262746185149729602569518331672556397513886314940220516673029908506527115108012784212108964057022503350477675567044417624198140962175102740843224084129903564209299824718738968490460425952475351250436516746904516044465716552429181791448061926620339969267171968942503329121436142583740954610424767179780636553887546054649335015235005652300555358142445755964438394263791948966539379388224173007759513344429431619882300175892859003721052627922041969145887411765689379986168792045513857586106705448484875930720252741059786712174524752974395382322243785664521249080189644679868125941120651975112376366301513032664909285696415840162420774308297145013097692033350313175644362121459399503112807162383400131579599600818923843787638591461371694659331105583462467079508751817305777593825307946844371978670885800010604035311681136263693028165654897116682428188996117829233431169915523197012101292433747141022361762442385472116160758254944794566037803039486504638998736432191835980403432243953382641362115556012702051432990735445705104778488699444697661728333720918929698282169732315838704885550758376623222340261059628994016524350394159992979224988763187935624953176516812625056396008007846216114534647017077246027935947033096297552874188850523690089862168434825205428829776862811410666390051471425661573563950979489453282279715405416030696664618907904860527744578833281407968286440553559250478228645100880923548424870364235852515996588608331573608642798213361071332384623170425891350509429823375697324608559039273628429219017874689647827457479110709561666333767795349943603611908718691281464685763254330905997073032210643614592211065860911585926732596102036235404423116777402681481029122687660694066106540494302593538157532325888422045094614353856288535387387294011637184757420615100626259870864101544944305983712865886684159474235112561032434962882334799238330584047447251747753002716948673720703144953632493556037494787495010955392735767442781408042686362477803102499782378183785370905051545625240165742674820411348787007334744770727484585243033242452622843369929962836883660841659562556088623398480461539287778059245222427820043384820828342850317599030794621930876780766807288577939774668715911440413748856908418882384420030452754605640102767993896127168027494252966128457088174620172360384184264628127635100350126096224814344305858637363702202561914422193264692218186155577868371332995303711500454051286106591231124818499499094535543011323171960675752006152983226588478820915359973366964313488525944193039138388501419607586190884401394210446255259785216621233407649411577870299888211631202826296620933997892132850711118060393960490429021603691621300461319190535442242030743046345974048803204299950641730641654077511713426065356143937755682685836639235255044387332234963510372781831550905864089589504432032643793312345628134130390954794023908549002204332726381083602959971358643521518396775965463284129579531124667815409836483405943497932625139415735009597678552491456342454242489681988007790548350170084317827777857381514184610465473698465329307276985968444939903870625077407543989017920123083195654216929987191648552664684423884317548322203161521626203701351941992962461745162526571691337089684587681376242113414124941417426807647533200335353252818917141568063370768483692485346380611420169848605326122555108890679839756446285426883335393611956164003897590052038884601366977043977386561686774257157365115208400526402130147500643687511280186385960603298769610900152392140201764307947482356676119958163863730834336306531861789802730293786674622346804429387766211915090284694320085805190028909682361031392636144953069750884885391943082409915412518784853585547502847153282954203558083609054517729337314234456980333882337600915717974965734850864100375645814790973651450745790934215713678974350763089633132146311379565284539203000758450353326912064666116016092550705303403137843408663208534753647166675478438728808162040960641416577716159288053190710525623827908690046545976152739649395007286405458318629913956168593076879849385831389430830550238380116547070341611761126591312130224239205214339805959897743268800995650771729857551450834262622176722801852083921631796201993227405179616942491430691295093625602389648157850384286350135210787117249242793452935879964373758067283184366816445626240748729530873799702630635532780825360545939773717195549794173920855206270505596416686964991442543750180227006349844876966004520196557299300100265842126474305007382143154878625072333454212493851085580314146646119792576564262237198102703646171580902039471735683619704127612400624282543745662025592170759776276459068873762731563300926010057626323952745581480174246782163037451605833723058634389103733965600134966393839044182455004463349856491204425112818480905577196841300760385187846950888585716890284427035225491332307377919633647137479370885370618133926104390078211962435089610412116667417511761838249268190562000012251141138291708413807931289255678560466526479953497330724058810723470985457752221525920811227691935591188536011938707829693290759819846956143354153239352431199311090664003276815975498401518845205143795951490751985993397954101233329549179790984387200024990603483985110895972122815452043265966331466668365764055134264220533296206478250034492345003463130401335959145588283664369713396229786603935936358583212627550329750365437381954884833126198926952547780861190697170799482846773182685472791606083011543565573655477105683436090100940287865870573123653445329191890666071201767978878884866740252472742199174763340217876431487290806820624914020476638398282130653389556032584977572730262817039602495744918680223115290566090891685830128140892588060915087983181815015435610903164605297143694070458978274252877102108077678392243659466450973694843388346306233221685826721711166784149891114820139833298363823284008095516198637177348099797298104085734330736654670732626459217609698383464800825260292884166767433798611008033449221558560308966610113097116854167907232107956893812841071917301644911201458932182893349841377669198651358540564915081870234087242806984288953087319510208558809192810429371074263624205153396838797568405243702430240821666150704609485160980842535255749662555726517120299166931239053152884502939816743331916397715435851153466865429514772868606858558357671968578427075528359756158024753387542306026055413929049112080238490887903616840857082737196372809623783326561874746683852019556074120864689076348055677534210858280185568500384222940203201526730388178697507940769575586195681237041331610131919823162142909559125402777729045756749822292950645091605258385917555875362232614846231000326419194094158905297240428240858168696756496526684206024259268058625493904701603401352630872890382345636002129874922000425082524239823351358604345943357700181058128106338191412076287743699561517796630885918825769005792794961402815447714023661000884649615991224452810876400756062481327414944678928932012299367492424866694664919887490072448566983495886594963120796292190549449830184387039846662748400823795263606255762620288735074809087100019570599830337404750399575298793223972538109542333343059161452318436087604027844989732632871769719646311822660528718413513392067804023374958702018900921874257789356469412525555717615943549540172431091308527964283480793154826274455287245801899586448556546876744236882139627092212745952043528019004418265157126176190141618549799321743147279659314865659443116501395270830230082754549388983833117144634976923942890249979306029310107852676199386355326941478434788627180535023510632961632803412316617384763602704231380223103931152019021797221588451945615106628139024459637723475749510597902949396464178841556773171403484685499644532308042209877285504303245863688014315863392572011155660209130937089240916346281137553115276347373816654398231934712063140348099370453292104108960587036848024236652297842214457566364853708375207383366920445925048020283034996987158909335839800821640496942154269040245459595985017603955717509894226223153759444786074865687652213517021485741105485141909533893806920580466385297032174444701282242430213012255889437150676026793284732512050221436166597281295120052401545294602013342618989623592494795792651626839030881365714659301488911976851790935661790350506108567909924990117318809761329979232897608328411634982201826239296653101691023948866960528780893316941944261464695910811398027258779035219603765733274621655236070227739010792462776913221070446322289455660231547621457185643892383478726921751608025128808513909913730883386649159998338419639579662541641926526291177578310354462700063016093497349198167301054080558805040702011956055148776176954131324414884707647389152055631370062842555577888874723675937844992551001673267321288908508175569110013655992648142815864512018548341142468454189024945652542442469212308503514907778220405211928627843493304677674617807056819491478121390352145515796543932598074271626878335505482506449799054084281223420696246233761005035475136586088341063543202300077811228024183116961348410301018955649112349137543893202546408763315027977344565791503856554178224729304950593119778197312275679573774752214500492250756269198245922004729948670918325273223495316478852509996934574687874566616445611756790913900098311805690415743010508111580890623207866174500678974245352791070147563088331438942876646519460793651716029835589703296035431424888066622728902597813200132228526251859579514190116089340280724788405401357536503686445110869022724425403975905418710666498344443521149700498772710832450781434467129991807151131648573124020992256017942493180627828896662804301057310891673870424405933497181549322644133774575950112859055068462651430203217588419207931979649322434841149246129561075767585556184429341263632731947590121767958693569935872237224718975533754538645383236055446577904916375014767608426901472478114491933059148462281220429826050315062374588284308756425416018881426334902209592188442331624131611483961316150324201617181154717087141022502147763051641241694694811113858569899255944971962405576173656084021534221244888234314411351273240153290004083377053480148277577636781709334273223140938367344629156558560857309618014695168215469367786172045649031059616519263724400069652683379205771076743355799971472357095355761690751252301971621161134912237150302826393188500365292329366030690508334356730585875064497377553150484975896766928786037471880043348878072417553136740134103175088312991497657196540795629138846942842707350973227566587568351339723927933037086689593238771421437310120244087310914296749673854167776110528666716045640189811457560494220659579782056281222909453048987394324940689376107520896088523855879397510659770855603263047269431120553429300661793359889540590289919065393161909866725005064858188581216932120704312198440170620523181241517388682232028861633023454730731667412094350950630700519982284402159996297590406929941860506383183399264040975903034845702021901745384741143716677048798598543991236026867858588939498963721215753568971536717636460764829906765349028365012955681504757057511258355847147346901211311548671692676726875324929314794586461362179889018729608196925711928477227129153976057608890981132494153485072978223709524801251500278500275615083827529289613387608154528065719249113932074419587470078533645423499125791552521893824346918039213999107893386032291024015218359056884969899588177057959621749927094030367987932286294428948460689214980915705189729245476827867357224995021839729867770790803205763615202941218418491527696808132596139767362205012107277971797790590511329173888365724138788523493392000802627897074454238778813492924682364864326528064289748437336242364663444258261511870217430423018186708755163187549728263101342487040575330228888938172515587064174808826447913359014103581416002513213295311030607055146656786115973702250340225398230637384915581266725819146554854867222838757800992238507490256058082910572335629466514748661460383400054836948314424058185443391823665686297167818946191043208485196716071009337763349003152980996071465071970476870315763806868501602758193752878616203712927700152307983101148557187574331466363411567567034356024542927875477160198506494257229883663000993813077159368478551657330722374173938751695667620313510527872895521282054294515968504267926388921108321548305664665484543730156458595925731631791188247453389609541456525086704362885294884616729477514460547107238790573662342458643682604144599186077976299465765152940163975263791577261718757053700255330642241770512028849097214125191319628095682576087191069104043994451909134676427884560994428812165429919814064138256279030670335098986414973199813574641849575988475099920661706341965828617136834834091955347680245188839477764577227124975884377628820644564073047613020975318529737100758455364485089843712736806927620609597397873521652920481328922548924733814686332795258484186048481154950517333676275614215179311808121998966089957338377292828357158405171992829564726183959512577927979533575580899114611752165587564133286254509259020411130429719232212350509615188022643777572498007610268357245729670180781585782141107441246586559580110742498694602036555645753509849230573596292459471906554291636382303803759862810633913844570891577298909149844590652295809771924471890029955057406542432796955262074775649026308619370416871142139879914488865054151642259483275094533849241945961755402218675680133376661067098021773138194737156711712043063704870784892809445593497408502041916589034811773135603309744624885033701065233819565944582817342447840011494878069214588648097326157215736337242685687245706163478257328430365704070456343040915477736552571866271094373011625237099277357962137830164018908749208655086994173328965177384189389248754131326639807331203952623120742192689967545211638514905068071369204411552071818120516361032751154810699758891066468345792196806519771837032091329381500937943386204265231025362850155409120925420075273804627621963727635858582788248439647980939773287428207630009090939460301340645378591040313344091161467638079573485859295320520514221714356218090333719416473966107728028409657600799144481851326752811960403532831025355313685261815569867952827296113239821336018665692013554341609972198181985337119755150011518860673487221723996430080666289069968291938759654885211003513300166646785607465534331208415012972907274499875485423000216884447869492708646631180827321211943101019305573695785886897347864671140158015394565543344930474332872887849791710712418134545473251540047766433955813759355578703850466657697781642141234525558488375436740478776774761285886069507969448707019504616843407184212157076252699381992276980542670658435309093345288657888455474582423777685328086949515054820263589508786766277102191894330833547696393365174659811678388007474000263530334673179429501275883898339770111053571561332487948829859279303864329075169184253370424144424091492155040070854231531857870964682586268275359139806046073525638718920402478356965829939371773705991640331772579137661501546921073214624215385042098456580331597734986470719053393824071689145771465486762005069687289031513236084459291396353767973909142966370439804728372090156877163857018723125002930452731219767993520762713320717950219804930036541616353550120580993627662328875586970961681836560877012482043809847298404962079108179834989179976031288133413361570369354274814775634500839914299366412403036603941880887969712435564236040113913186269392207802587365510542997150169856054381700034281411621799644972436558888911563895564060818688621361061249201178570328285615296013079286567277099251825793810260675693098771476855899353684016596970206976509241682791309475158791283569635918211537387867942585171446699896419105992424696036021633387060091985663640266327534213324746243013814769316719129163069908370774870363985085764109104145938352992961720753282281901630317192916460624938224880732936231139148380560289835585214387414631122717278587084994609442941408709866699479986336572898946903385154916435306759645944232137919632984372460935892022051499074436223075987478617278811000197205565341224932995669711245060291165685907126396402897742201007228792092496250345795134625770932766074440587875449064347363280344696266888070351343970105186380500665857988216269613068093600748568914745341729189436913921893889611801064388163306757384886595936631902718099655936610723630653832463960519634850783711887453529863327026931228163934527357356110016188201682479730059568079177630299859640808222990105719034313152459817330965859042651675440598763500413257911905023487914435286520128798745080078288766848319042395360205989267877686874034101939210198097712798205470832634140198296588360124487598319754273268364122180944501636230607348416985539653737886728623864297281277938341175481313028769307365224661578072610744397247826868008100131904283552442917382230122380665225485563276300832291926330424141381225140426501969912509902194854948423981675930830166549974442227878766609523221308621067514760357647658995668510833275012745813159997484186051952463729322164484293637794736231865666795957667204689375319938227599643258278560146295723647156090851268825467622324008187159488447804716995645622307534854896247115794440962671745810244650592223538337074976552351442558081638836049754628315806418475674108111232209657394848174038915889187315714865880575827049375928211391512555551010477972725330982230703063171612146384608141233480895501292382799600042559174215301939976549057648380090550346755481835789289771504050349123389210697576563174255533209234918459767116330651836318497666956643419553479095430576716894371866493758667549077520557372068397671326798340540283350892506644465208893596005532507124641968509117646554777900222889633008337692374820902656345669275886895981944325874996159113688696708562709370715995692280397274472020046899018446267987058296373862373600301702977875385596035570165086664463919692741621355547848909885024993657799045687537426438729761712776777529508292530371610499241160782296515205607989638194579255951317278718202483214104806989118537764522903470062860510096308309823376141283319141451753596676327114526623064041681806099032771111420126943869873347664463207852426502791248380656635383614189629590680703119012294402901989400577500639101808141035086188469031149655548706806121113250005642261715149324304300179297774930957736045862309324632695466479125717089336218668218106058581262793920785367932886161711683397737175125549019581113510392047143162647681111507262014314561641616330216574700549305619347328897222491458023115687219140344921468728321676617102253843003263418180433916744306640468259619763498972434622115965433733786331121938042977502053472845994485319251127651378802157313063943873897661452370281224973224675719064026423343122569731579706378259793281161996850690019815585595685163641932621454154770090831257750165476139740331550099980767469623964089261851495218499761114359434019350587203880648971842365705533820701961833117980024651329557041368104252179137286840804772881284147366968907171341147184005432185605913258186697575603363570156771021364416139158990682017096201026311044565434299982401212073558351878568430998528520759198709325849494612606969517722966844223049850801851413897740119702538921728950430475935739455980230778549553495068692000892110731342322244512039085071679681027667177906814925027236483029233993425516547049481403726271913711599247762629537835289443987188305764448034671247486117293214887313395925093900250136205805638659741733234123722494224771029756274003560567591890232504599055480693310317989927152225640446173640786481277393732725927409332871178777224835068789380232857253669705687606567772464963786355794600171401775544332073082976312885088426367090559292011039007427985803362158684723700637720433312152420182175618582943751839790319350320981520917791621088922990752173194159879200479424229891323190627150893102610993411864694106260930159285234790445856516017063789011411740347962105174230178494924751104582869899020333712931674265052187504317902577549495332040617820604636094126386817324129798004525477318716551404883241236273429460340538175923279497494192275303617183820639416444169067852782012761502254881822318612187565430457397721771834953663713665115449044474471503744663818780520696293848591277388887781494087957366138920274555981292757210494455650918743756159334601712817858483534279458045019896923441010243936910375110771541806264059606651668989156184226487732233280310065094907089052979809533409934810221760233582420433845647475287363303424227665179257037289678868438398781166679984978146427446475200880788232823403964692217790455069557878047187463992833289975307369374421356873775503920353740679208111842655503474489931140453348712883971449741641184759044154217048597767714616462466166821850399217976099529922076361737683221329143832410294341822112359160578767834629846121941823920149816302330014211632824954302449768507056893772247062061569790265631309321237220150910163822699860034566991584499484810556253511851777358121137590102971047819704522629831425873647728075342890448903763354027703847255112546331448601068776532969486812401919387923341002736348733430971415741584425769982723951528229003140701682086679491930149554567551249874875040998208568665869717591050625548662772210634080116013607375620932592227677975056507139875623712833063534257392550960645501289370663288096513799062982322268230464994882286563023998837187412829452954826636982754352398278001525762443388281911151118138503254896518937712315364730798272541122185087310114600566802795387653426883746376005310794070106173185807025100980525696115540676569317759272614854676636729181540692659402885264909957197267820484701681235790494181189886475368050908883693038638298321219218514788161062052125569441574508007078459799820587998979934587798860373054336986097976604139851697644329403020311871777387471333111123915274779454658734904665260722281029194773035938898577510156219582666952130848347714923532996383041748261233744423472409441969596122683803132989066313056002215885170155901990896464547972998653933755857212462403376951145973447074956496383388487996253076669020448022919169226113748488652329170898966829890021476609669873946161010295138895490336194294857208441523011636259515086367929491348817537708508676035814072752735057308555185774683107604957552254143107119654871872650480540107055907997614016438830838072498750669573201004461130428901446048534613407998833899590291017175084955051473773482898021194499132475578290313158332397652489238788353453611611669432596894916182207699223087987304422635623440161079354901090041223050453329980007794222952490379551315028163576891946553293202645967503692655114057695105308998509841109126511600209092336649798793648911622438519441504104832817040071428767386704249055508960668423018649654172272154118713757179204901412974553601856147834072228420617519073078909725578827722562981887453448431704916881797374206940875102321237043079251601958577522535059415700191341036772381493744271863068170496958906195946202218289331218613663533394131936155879476810623285344931183490376428010227722384865143805799941301008920983410721442514134940737200420618863995934072567903746569561786479850738542253403675561870520336461353612031573044951689816333987263134522695700683517509716672721256917017377642157199256495994944430356922124703630879234093160485042016782889392312397553974810662245759720664044997175121098017874147611860546950171453153435059210765469587798153214594093730392248900242300450134538477692351203658310161647964290762068223691439533450800426831607557566255685408964296071994167274492376010614904686035740672836275215392485398042093046296753871609288037596087460521510459320902051790374816870156093511368705521926013866538741488622565011014964392551990014957050379724594297430419533184921755837549825892841938410754612942768009852030791033953161902928292872889689013439996164900235683093039729698692484373767861999907748965808176750301634156403090594200214392097389632040937695690719282826520444770616984302157322475198308517367819801043425950777540089057247194387870708502314247895696556884876843511570021654296010259260477985404919647907291936609583895898364228216895409191693980038762655630600343902853850781018307364220892344290736951480490961452193592488761643415598592861067596944439555790437375855837214445479440222315744987934137186804872841509507133526007795986398710866331077837783654765969650347338127900436776910991853309804579240794902029144779158544092891745039470378744142403625023779600240437234638041082199409078530705216515519819621218827890907903731523807678700088188820254816308449386707978121751762142402959009614027275438071260173789327188928245382064089724095710932021152127500298881942197185824823622175979974885139872670095411637780416902530777776255040722070894447395582673329066577537123763228918635550629488055397304194469664831010844035667159182059375071259090987404680779515613931131775447579640505377526815801377458511800895418323332886878451659439117783504736155453726300447353303170881021563860353183423947557895182442006603082397316492309593250616778115624834199153711988340427713996854761306161073614599892440902980648492125570121484367244003436551921111203864551705312382766161507007907931696440876726784542360931476258419552868005866476799796023287713921841611791834100323540016090586675685775822267469656165104299573653702965063009805045357073639782032568659107568396988322859081576847877702260734705532378041060698183351075714493625039211450966917344499487073614501009137818751812547001169037416414213198230189434842637226074340396998861343226175670838297612310336339313791160202468513249884898631791095484419873786651160444023282612518757915127172255567636267233642867133089019926041721275673977897960393698906989868745041880192636223828247390932881942089210847675485003378833537346772756811668557416710831546416282912538192768159040389064586347737658047131850974070063845668984808403036616197595132256981190091583937493070722067693735635773167029308093237948895375534479567546182633643577171851474050864836277308749644381682081068106931654850827204607045541636182261388011283206572648475424780568246525638709351771724837316159885300344815039954156518671489566138165038836491332781646879721773439497310469636558043859155283331767625258475233448323306575768667789468456803806241361741885088234987096563214023955919448892852974290690673247133767609687664154414222249851253361069465123158294165685605315244146124147891145397248153063091127978837735375805082647044027880702798911718376209044986955185713182596682119226644725229503928016854234653190358280123117940148141746893674108836854630729631967916839949536084195756733944043144766079652468100062315296509964138426187233034395298309258480446277230981529008104231426487042131730179592454160378960769869078262401682457968952880356252150960037396316361739320885237037483927328170313213676200830967332010682640424420636182449058318184027447323604773840056502375492383711003560249104643982045390630032610834052731563926468669049231544186980090002009508765855535353434951498955220860723243027735798578562116696922843212260213426277113603483978928235910098408274861645022107418823918838381966221899052452717108973773377086023249203701098055203382187943247038619547909373327273765624793416226122089984226259101156435837234366340146147676188521741287998862661330571156300317875200334255836383647944940607007245487615370060516293998970964399714602717873824609279445937853957781567408180555619089942262068050874663738521385206434132152258118074978805084672268361424910306935471642481884364011172772619435555008814582539489301433085387182680886588430150892176244502395480317949520339166212121670224543194466388689603918456045941440796195159139596639120521025757350255980405518683189433873220718749736074732862776329662845020419747291216715134004427167981471150799037250533258505707169649186501277358167680047667945655927505016900547275100875057978962829213054120887633679716653019034341702832804479316945957333356701342234551056117298955900306819659418181744421602355386939829212272354119282393583818303630295947323270756859462660213668599602769046461313083060090135145325950539468254108552272810155932181120360802255410726235712251276201464251971877349622212200186631671533542473505613784154490889968248655849819767750892428867811223181465395910230343164956613155182670827621165925776618159912484123267559590460625917027234120913611693594907895232065704181649456690619863858461851293637301403621697584910064685546399316040131974634443168663522337722896184854741156129088234877186213656096539031535277114783618039969744366024440847374693643132449515575056699478693422079232236795816366191256425496907532232850144275195600988877760169626891442760219628370250505038299272938457553096596876125370415958443533347514295424138398516383448932569879106827359983852696497606333124605839666985578636876042572214509675525681280615438170357189232739641570801380012175742530832816311426762255609587471723358622200991230871068809167425559178167405179695012152844733642008116019410109875020278281558910402733817013776421499606733880741433610003400796079078395240703691460767484704439749852342034971905046123559233198679212879076558698307345637706359407947045068740424043233664521320086655588249441170896507756685559489480771736150131910533055732190158443520586035787403963252545094197744775747582314993045493416453041545620624106990767472182159231392449631939205926459599004897450764062391663635250192747519228368860467873122659885755951434146260065234277236396693799063676790400472903031382850887832186506666191263007123762153816372640538172844530978544410788022107528738181760976948249827017248751776099026760686530605224835209887413327227250717869323406563657189259873518843530675761320500825705438108300921983157053042517605415222601856267331930716246831040924204732395595412923413841181249603355539411034085450501770005872114704991490816974946730757158421386669436945559257890485522080800813577014560025762836733975075341492598036955702416395612296349059905146648490553760745457116153934770457098787135022665851006979098516809558696082650810422245673623771692031832566489648653761137467854535054076715011500438190675726500039768574271602951651197357275896762219248089076268024540693233684713463723778703181773321171251331676607990557685793960354085882548687998559733552728499863406835866155016503805320008143439117441967227633174046630709766678269391807516807777153002938599156921827150567430531701725907163287595431291151271937330369849020045224699962762846655725855006181408848733329452677715045315666876698276463414748578236080181730527192491929022231292757818101194522277226067036086693841460592595372393062078631907114659111082735967489945849751201336771162660767932153215956573868109121662971309585667477188070673525600988490736581778019099683898734355204789331783677406321801526387719658778279148075240026828615295852491872499470026513574325970938187885594505663733329215189697674352186157107467561652669655225541932631021812264641204441013081754941878859869252814665465262768325142221567707687413864260481846687826981895137741728997302459847844765167048837115497278391566559200551093234322198080822737725133975169406616919122353667278381464031076917558045795567317432373144700623501720231696081740246701273848714440552717597795186005327247308191515487066937270558203863621117358790289018990404215140138553340700150076605703380684862003391552210813272754881595097964077056492662297905606524709530128841411539530838636584359141178000885008468469865743091548079622441049383010118278390148694821872701405111930944760673473849341991186967050072098231414835027143892371010805122138687879466864691805617092382601849039483135294805983824869690438980291763506643307284891775831981199425493805513472634978646541150559139683024181906792679447348634091130904318649657957036634266675466676203202737928427292991284511905487989916559689340218587850192405617174517501775695984375290944962760260604236229710281446868819970490786058625262642761204942790994367324387967682325433383741766410281171714607174989382226983978043641000275760368444587449437595831916964558318045127591479164655085877302142959754922620447474977408524982480137278663638549678095732653441658516953627807846707518672210782174046518611982368101800809332698132352699664009560446870292687294476673092013270426465873345459456900443484919241970905462451564659494251064949486381099836489211119480456182073594100858532444311210445885491630909170570425538369042184670433546488509258978205532754287847271287684815767342552941794746942572502164194151240940206822839053403332796344093801084886877018496695519728262074218561284001680620349446792213168175328709539712430682131990599258556823449602320314491714634844452506652630699176826224258965868674201565090590763453765657552442800875801588875855447218228723086167538221249002304838387500190502963317872365982298018814113394222174559648464720174809291044037713757298009877487169005639320072523351652768301932963136813571627650982325398890584758660079867995134419370186550955420388912991058313976142888113571805774793168570593507695824947117689758275470944991672456894849948990619874059861319728317911137814441401903105394097663429354220472846363674565069088988015444630261874890223174958656516284953118261883640413648861678409369681070222828051436035589707825667961387017255579368744315751560520555688814268430358331097927686611558768598774225840870628207502964842643171162241695235073403078653286163053062266578961318016493134695797654713698763087528674025369378784458973619084581324888096612286638329164650298549237593980763621282453953736208719757561932041226712635961752591866112566004590382993308746359858830475145024925828249124546701285387214337061573086297597372766791359675968825031921259846215227416879157978361912198078921372744367218088015171892572570979933934678673769760252281601822289994423890186119646490928334460419095837049356378179979452523863300567286534475967423206743419309364817399266962803149764195732016586310526429535463490080229921430726632748057748980548883006642552739841058280691374039935605082610593220749729013581584091045145022016853313852609427139666264970525508207310075005066762421888419952931127953789363063764567013583813601798862224960029239763564036068163957099066915772593887576785184783049470721112586045294885645112296408875864823515067475771752553247112597975776007223830421685181499549145722232252531409356831747609094049952960195981638361464495963151446464092912759498824447380214602974513415304771357720128621017556088192796177492986087949090266183892875158466449820756848882409712535618847519674852623229764064775361445609790205911120683357834764911249440908265440969397416412801849349199909433448657991002900271466684118613394814829571016216771009427454813655554169942947068681935109909336369191028076717514242145391506354527345845453738573153979112716521768213952623004065206630657424832838844730766901336105095546246647983762813305078248941040188827913181195100256943990191117843472943199418046782542687409937875469011271508517178377122414891706970542766267959664778246367478025967764594934815752533138008811432611237867811997323949952338526261216835588537395124322915228894165108520289319323136571528908967406350822894119195207427397407403758907849983293005559405236935548690923435317881794260498707929391479087546631870788394604262061121289891504832426170353545439340562701392460784210481412490949331197899770786441279612601400292691384290538614848806272829336417997392888540131359794571506610917400569497732118504224211774774788061807035478790814347773106978672086244140403368688479188949765659542036033086873978564860155410082428115969829974748883379764247881418483318571972750844670788396812398002274982136414622829677961256986447217590547059971496898103215266280410941853149470007881369982739873204406832767296502651544371456588697555074578843492165153149212379133032454155277060403848541433568334080145593938959946829374707909185193174669072574429833734775011357346976014651112085902254556473211592422379259226409668024423470484061420025673052185665898714105894905605496122909069976235761287185234994223048324638889221976054016534738322584337031369237842974823402803054611687811212155244599595376507928842211667343516604797157163635175615156647739313419975922119904196388454256094514355986384242056634864433666250092951523561623954255315907590440846897192357666602210749095882008343670609380240988470454800877528238153884683812158572222891075432955246475163633247334298338720212058117146645411449149026462164654390692112173249225353011781801115222130081438420136298722681291804796624278031039013687611952039476389762075247223668803623267590496739245352948592792272103234634496874982568139618061645454204089447004970334675675840547038677472657157997946144185112556457942801316079932295709233183839239873762548151520863982411298625410180272217125232108477282752713470906558153290876077337176527490733409036399917436974332286488555767832962475348718218987491019968715854659741290238563911918577040383963106030653525485529831026956246676196019588163157114408970222488468436025196911763953015458692580508376616328176205945501786398744419531811620048385813197921004006242051722094920491541529321759472105205786177457513805467893092958214339326907432384468695926143208482773443927731381677987338419562594183993691126031993083701324428038046977901858523454141710063723072747660585192245800185637509571371982851995274610078993242485262619947215050439777819168208314215820113416156617273221161016531580301329723328408680638879141704509480167703541378695293024643323954700884004013851078854530506853678205464462038911619974333848948770310390712823520277705374674072736170728443227262111185125102840952056523003387685222350923058778235325577352194904078427008121172185520421938659173016306075283129158092488580378514963733888186846032936062249333666697352673692370530673265477900016599511636751452998338039198923885202496033598714563079682624265100809858127374598772415082537917413902108736389507850248274169202261544387752312303604466597711179556096959482147341346796728960529572153075386708950765510698784187815489532645451784022578773755253286895354319228486565741793590128962796269337220138268248318029541866485693705862256871538164844274140864246007952536752792282909410044091954862147777397534047612660811848519120016034384031484109936353107914235996381458992439465785611206535899355376977472205706362631772074031020579602008789257553204505301603656296528475831802706826467480100518868148925680773840467229208060313111166152560413524910046323715350132393095233970229972314384516944013356467786313172851684434674666932481250534673979334386039287049147291024789407210559616416749530606499943231321976715300473153802539169612481245037560920118089317504418201501054045204520264964719603978556042860521773085335330073793486276636391991076653411391221688238516195497291554323895012268683924556508923860478578665702486598456617009973640657056738281770131998513782352500563261086838724126859585913909961242624277774225695271372066057766539805274276008890242000028352873161909761782581882491290463072481171190348494465870584062894362702416565503852437006642928241256424625552776041365060207865195245574923077727220738082678235141095613247387099953052159679709165337025178969480447858004850841894187962893035960924239755383029629925289793746161620777560096295950082220282858750669116684411681280379174211788221054510993617829192883578076228273120610662888971759866410881192407730212915340963748953135415680030529771850032535215019153982432146361843036788175546558731568387083798901238099545249592654480009071077807869473704587167306584126799077565779887740212556106939754742528709572687597278249654682457147514860052482603782948837303276564089604970989114647579528419925449346575918831720296176075448045199668048703080785172690910791922998618136448574051353571107455229105571844304954429356173333786699336721134998992422747979381113774465943478174479954518824614625891196715906283826389404061798169522565456798946539590647350526649646936512945285993548222551709160431937404937686258952999665584876049287249353148717952805621477600295672415786505895205138601527041215742036913352084429945164216542781008098908379725657524637217354086707614761722692512450360568373587652017339146445092259706227246259164882996722069613006199222357682190022894043383003875795475252028837143238788508968833207583872514758816548232352256010347018067332102842765983418957026099418441746123477322075873998549499624064715656144545692503703821919565311352331604669378488281641236542810194855873300734622608500708202159391066212882783000496492777975136005889092661618730982453622808276586002080410750847819753156573955866272799179505899704092210267890843267811925464055238974058371354387377409992467690778210369967392588066716672139248428743325494128713222364887686014190821606889963802941877483572490193205410727025574017174155879886618157424656717089319296049630402422770439912285564458068437122142018476416261100420043455340425209086443480943610270177515537456328230221046831935998669564987567734919118427677565007511496654875632611124052925467198901987697661315169411623961730803357123310381201940672557874872554924384567614832587169197460045869818915705674047610225447826493348724978742903833156206629727530475983317753114456064375342539783769928651505029349568208095645999171686837682597989474748599364784927327735274378286625687078873659555418313898767657533583338919329627161015057245751315051189502992351672619608415212973504772139845334898072782078970551779334902043492996929773776342502686617270310518759701917804572711787947360380412481049515041067911363385874855563073893273759363524390596787540830592973806355800712392962832185920047795014856137122958092151806010197217804388720334360957556935585967124560797853685080738487190025669239989185206885856335532178911709738387068756539785444883621111501482602889595271994635939830921208578453404511999248796534603706051494390719144071410334483091292501303015909821385889802837741161844118691950299486509748674633025332086442109503083348107030529229560496006149247598663933085707317255259700616334215008249104100904577581455156214994154003263392027091366399303523152125996933061114972347534449332342246195425091437104721333412614403754034574559504541413550911100062721857513669311932315919570515655202858739001701260071223377483929605254218755761351527392127337781369960984136199532661885551599857454526994826807643730404641138562120274982290229032274172894829202317054228168557832232012293330980075852763189084581464764168574968537608506765402070252996644197540414124942255089142172478476683393486427979327561588574686195632244846585486797472762869039286317433460705194756141229548268032837623249761600057201213863290226717395372370545987637082604747618233638200755855745076665786775560877746445701294307579653240409179821179887240962061053234752097839286601596416477181914972853245962375790425741011184395944244131928376851633117975228955677744114191557039904048959304099499077672997366750283355117402137341585438052141370599189426289219764267726137589471056093288105981324081895215985671048748363699498751747906161941106308663531136771753271780317494420687935453000886657336179537080750260534335875459671665310285334936784883101516477703798188340544514900497359996176896049488520743246435565206801063083289584136345071897482921678448221272132209365287854869886717353658013016972170118394493669542062150842864340937557509256711889684642657363598033281728079974833243843501328233120234870583402886632090814919015397906893196299808061054790985712914110891579649236627904966352565360734446545500707096892651396498965893019192012838487408205342703042191761887654115484662731995067882948370083718394047062049510362373795766683305076155151548298179882590123126275824912895089412912857495661920334229182728989615524460987832247821358023259847275573139241811507778666924108504817936321265450889704408316561576604031834535551903453436544493327273858089128160637225863855273925683790531179233584588995671426116454755979450337121009639273911501902365636455114705634815724505734981685506671482852741949691764522453673272084030159039412529631921682294093600923865933589607841625582438305267773880255617093882205577935601158652056969396415403826955696844024350263200991669628781705196940240441990608379592593317106236240285130006814775124811908333872402286570912792835479085606954547754379210189257920626764005665537749405407253938981463480296363570120692856500595391334003910597770614054670246027486227104984833367999429220044030872251555482817305616865377389614988841462536285006003187883139688109190127597199592237080588327439849717170970822197572456755478892605722777162934023645517096461889210201521405176983338247783412168884920857285545616024935292671860441070638709324929622947936316019250645918728552806340337565709581820862139487396799488152496158270005101327042870442498115524980558398816854594237937957799086825085334507826804792790267079965660366616161788457330851271911197741415657621137166299915307379760079768275411021072966803373214898290878481053983015430385077508763802338519034670702948986547742864910627852640578175749265227172580301697397812950378754743869599063144072146703870173737132966621065446256302465834944915123056293520444673928294140408478659960802369541800736903287329199596303802774909278236982784814196258893138678150704364395367887575732028310255885438156041666199272036963260221012890507438896921730273111718751491160301747524060994713139955583978356921151850241568655421945719663902559322473669791846250547848289098837610979226542383841435343082097112941471179614822510570281736820328884965008597009055880534088560297206202127120147378665701106736247654045054342936554457833479913217817344561564136550806525382514941496774661832087722999923890477093450788771327123383346655081730999381019378452106245215908987397431580593992978804324848240904867901742278529264656615348380717390221034358953336760256646237150472859261619288538812170401119540941594804353437495749652754998611937958357857223940384550408633256679722961744171722732439807515935701770250324254993563627098001600233116987009491720833578531206605227362332357703819263036747620316465854418618590155604872382221663802133160189718313519300313749913047642313991403461712348475738332763699092677062266273008801942936369729560860415198629408453217980324499131791999924828020916100473215419165448164247609237548928478698676043514287694221769053068718922180807261293505356349918846083920010127675096573700930253574564190575481974875226123332233200423276231257545729474912587866350447151878887638817652688836317752941454333306634655075812384199874085965507163570894272214906697451712561614516361064501387901652634296462581452505458678153087413473356339557127887491151925101560281849006481571249263222889878001652690476359070073320478495802721542741725459810880321298211692251756912438765382462169972217733912136254691763871946537041251978475022032114278163329629093319313422998343620360822396407087808606790266181583679360878287065230384737934175866600074942725704512450531163678965585825984474969175078080834598665222924821885825447762021587233875312442311388805486282548049551750886545440214927407088083025772431607357993048371440187161520603403502437573819979854778265074229556970399875957726115450622057709689589414982322432444503208171235185296291652157106764534728313782216873705605747007407086063972970869346288048291661015108329110766555631571953900271478076327657099769760325560400543166280992120742346583660724460084170425338067681404632632420788015792315802473330586956115887207024464938719656727348928089764169606757629153598144060864273140459974490344941607909553841289661056000116198721954529427050905732983498168519688638811607869194591690485754965662119756840308176613852485227245121637943193893779432912504344559045350606656176285213658415486874820586764589577697459322663276637580429004254781890742332973651207990078380955436464694164479695568187915815794293562485495451050818203315721581415643684816040372398556957896906835080014275914569059966476245293544752415995632913525669026165666773213801084251546631062717650831134828622989413905795752980242358024660471873229011429741730436717500964348007765727634494043836819756258621246906890866495687557096109130660271059430079623234246757248311240577286322742320672709517216088348161528000656995213631220303610751640024274060198431145734868122482880386465618994764130799864093093556232549935079311256608415000766134008430925374361366523663846580447583184959193153752201274953388407681532493546950509370936382866856466207473549498177478312930552843694203484838146218523268127920030576904581816844734888889607751933725709774987041684334336066128856967392636364558001208157155436200521342957170590677701532256919433466704299503689331192315059227046109065320053450135462225498621691565085826541193778536772424913250101083008827800559120296754638519572417532499910771365406976232803037704269992840152432220099004956083208333842326403935942043249234320920089001397019280711467334188798468485123380838221376856745767705391299441493318713244206844222024116696914012696606004280335829949712305853472906433498949120127228100699016055978535706487251774382250076380138537849525765825814826576563814777663891434605906846551958410165334745101618236397600915336638984748004763224129698937832272277199610001805869066426618986179175543328515105294967953007643341887093775306708110334185442352829342863656507165340048554465861935213041343843743961170613075539425498812167148296106045336956812109762279079642991253800424504895788010018087938966378243234136121421473935469554613867044137636873108968963872888060681423871492192741328975087502333915267020020115134142582721703124907182862376208763437815079124288146458862445523796733873562722244008128178845198393644253555501682652400157340274130141916100057928628096921625954686365410533398097555907134810266579754218180451162436102347901436354003014238543250851457948357045881557610681243865728275968383013959368184354450815347871178528070207676934130785845451729489744891339181739397980184152833130451546111316095615525111728229740832024466969295262718526971072840257726235612562089163290833172258018071384408360615630874354807164120632178561630490087861432434436896106814031423010420304200191221479333412653537254665998442169372913388196986778367386293992184850801898189197099255666696886224220648516489103315506167805999845457347147372009005126614630917697656049177044704781259036849027163691738079152321375547677080041966342746815680710680492821454266769278736017605676922519073933423130786898872124482707010339928397160451208690502840813815344641818994181601531445835437953754514940919508631465688043241518691850161940795983923636573000435974630484716302769393212999635764185007606714052552499878789167331957714686676083557659934739117299687616900703767626409891699321122741821915214795998771789736099124957938114386378687439596830687481357212674666706498382060444514935999711691133210759738962649864089744007885649995840920692143226622718078218446224057163586393151441061789866825144089515177776273339369211979555348979856014881797991794432259460006975815764699303662311588743694710743467237420524769538015812264049308879813605518640846757693409649643111664261403412525803371346421829683539437069995826756442700364385988623093660126958597613529602873416754839285409715795665408605045173553026517747447665078477779892953138796407938544184079109103595154035095331497904499662106197032901084087455112378082009218587809906183805555014300212395319059153106933069857321537007885117157245514776481846465521156482827738941365367089583623368151093507569020559107761408390301260184765345886388925474370626015640261584502510035369934324067753536388003527518040230158194113403414273179254983009949632563058692036744061728974928407185017526448642740852206972109678018995695758101124308691044838387781788548956757661992292801286624104956552387069330363731968221026457854274500933624250367084452050134450140825857943370632625152856924100637450395262951725730612348974512805535815846925091612454213735879015065528273911299304261572461221229111149252605883413380653803291036303036319307002706441531817353394094038366966531685400639758280153196109163914337429449763413923310689751476420099949784960057418529344925432616089370475586771429370077583138979716006031813801206702025351368673176523231463050307033227708165624960504964356123522692952760995825198457748026401321182885127165676713251335358278751584061202632114866765169709170281945401401730647657449594535894659941735893484153782140495427645523254265751384210546049833906397283575396824174879990795272459647114047599091582799221455707854576581392834087699492140832264685864081407905842525245761601298748298075035110994138175385359388713584528175536545987706479327257644015744033533291587676746160947274766002695598284543341352147143580922174827095972257149391726215995187520372235883386742677627707021056241623120755552362268826910979685489755387097768497263956968597478206568405190393838879373605848760783094695087534713809803892552034389828011393386126936095833424220663744365164098380119547010211872879973882799369708624931919858589276663011424741064862052775539602593487271658876769769648837281289629251615174220223020246325638962629507207401996732092794703673446437394501775411282742540479327890061577403163241400615968105959255906863757049285481715312761410645202481557516918300632503932904351527126228493607196943734699705457777253435329625130679251370120251685116097735413210697619361927820340645741628087532858882097266278764531809887457110113979776921916875861324237423101741396532755088610999176808982496383568544485032481819846342808979849724303824865237882555457589030732040938058130255096151689805967939730137893557659600562772512215550902004207802588973411379377670071783879361987633501232042759326816723549559760894234153163432905474709740359394802629926839713099917574915844248959841245439062954506073398850315317168427476885831200924108098559386589765324478355990840309352725997904701408705653419386976204428708926832986869633348560330631338814370050849024816553321133345679046982458719631474697241782721081894353079595892989772897854916183550745733033145388439878050769373604711866740868814298190155976333956724718319558647273277789656925967608700160873119862201581751584826232957359983563420865250602693538729130360764740856129937226073962878868288841767623839156586411531822958996674587105994907033277681021122095343886720803628917774836750681230462288986266430600901767237868967455881825662043609210783981276103357598470052402638300464050672744366507388944135259978950559558613849301092700636708527466097291463152071843235213926991185922772145595401915954079322777163934743088508289871273961285383588330818054440460135505263771213072660554264930375068036556200020241442942583325157323323640883724829407541561357511843906317257961242401462974323825534453690325617921673477917657706852986062277616221291686053027711942462117860954746176705079677179181756335873521838623639149171721814141244116638613900678888891829879639242093623080091694509475639165653327519245714409008723337584794258485664186617630628696847722057236118705229614784845169769092385538711358633739286238155358655438937285364521647018982828679753223166352175159811175346288828462776683256599540659775663930544350953196540879768821257197766135412763064875592996468810889278326753674411442180688485793813843403892152087366287337354219150529989894894778359206813612581282249737407790489343196006377205894332754707768389629274662826856702509155570141213088747364473398275882378426091476956581193713791080238907994029085968778035300302771343364978476639908958262563832340278718073006242933574696072463193790511425053072901937677084539731516259426361397176927282439652168407799127058819492440984590261987826150757603441706539950985415218968495705659739317051283213693526270316270081330017239894425412589196134055761744613440333791916745675297622510212962703493021062179178179720571817296261015256122398237684435261243481509818265847825988859273510274900925041677127429068397218887122029622772140849441039672635460087879454937124589372591192849890995689635537209775724242998869921588648652377011486355453716838668374843717065153675006181672262866761959415180505898347535367616062848921300295718124522031738175979371408969010333667774429731376855061568956628060431551038891922875423906203619939510986515936312448166463029558026065261403452017870424512273477268346875210153744378407364951551090915433958831450724223391545079821460194410872814060841932411977298317304290713556066305037052282849438337209985608911530046376417586372667816413708095756542166170495577787507878204523931743209602156615234413670366104489201219056931886697888449226853386675303499811090930057006761813322281558179369783923626698032372105389741146203750721824186182682012112781557591164564074510145490186133033501424328004429864785935076883145520594995137568420396932225542606117173095736675000348432704284842469104675437940797891151628758430324308610948910755902528169572733977077536914551700252821257044681622690006896398563708154041909902890707271679483370872383376656761959564747106223402532278635529057411543715313045858511536496922058852159792773067498236781712697392556658915861482928681903757997670756956951946461555748902492171190459210209257913595834310187208824279157207287386334669404596375248566107364265520473641267063737005024768859313239531474604698501640032451575247052317710119533645381603856192774383931760226287008097749521687375981041646818979842647259372533080604006490311506910279615647604885168708852271270809624714631114921798390276661559342328284766839069385867639420667207933082882201353050444375298851599513506797176727794570638713296348706518105575058404077173179249182179876237917930655603233566375133482801869011333811632821974165514423693383886368692867001513600583045841571217304985215723618868455931953504213794658647487099809005705094677855335440004857746988272199293039753516128883760328596873313924170692983880368485301903417127782962749803102391202493766983295829996146971634560414433295032692762068753482883968066623758186180933168742893588388265340298331247981350290074206155434957712256953011320706584243764395050524556241187311133053012310525318069606606632834434046496829118560570281120526444751803948377549229784415145439310540709699052519406951630313065483246011866985684102815307565684645943278337315779646296627881839527109765234630004102878337361932440782734994486083032883113856662780554390001353565835136097434112078176858884672466369700724832744095534443308603042244988089205428375750304915304606809638913294059473781959081947795734849626333523415839531597379866539944412402183045533997342483236400750794417108424131952942591038770485492406982680679614333907195673671880793713390898093960732524443512048866425562711400066761315571636181203614957457889786748044456001603498186290200457195751227542019073715089301274315407522180527510109195854304337253589035850268650529358458640812534565454966011042196166498245536796219591061878363617236624464079057767154193727085680891081005522524083463703217920751676010358300378925075247006391791995728719180391047188859690890914188798080820259073586415724867392444898380813820190032374101070316779029074406852974938147519541009665782230545700273834138469495129073069721167591201598596206783392058582198244649366710108363606344693134605609322268517567966579072617588603475205850944164441410621377907498793043054242091376764904693889680844228766557363346198868157013152003836758963254932121084994815121336607724061313183111299242084273357057122508198630186999738114069686561733461496773773491843545954287896878256144817986265230035219047023966246273160422024956275277686192003128510528148734026644599805828834734056846891724409901896271632922975136223578048086465343427801907021407381206130314708667359139338428362707148190426626767939729738385800704371702641757909461874070826610912616404881650983286194745220139019576513263099942246853399943199898246714724730496477003997339349447104640455038073942397999040595310657523891770133251240260109263297098624508392908675927462279163303223313365645947229494586563716726794784132085462760780422593834166494774523384972823451200672835168009356015203203896599060065794076946809501110053947721317242180105197114367741436702545930092235666482650262028610113790636922318788555658481809192972747321320745470152940623508491238756723578618381327650907772609577302023316481062135532553852237771258545124392789714897798399204964818095106703624571628370263695412198906388681571947220527389681815448386548018336934839714448464954853676835434030927179587826505460861494078314697195856865452749431996136576743878149999783248761512191499936476676869286410892799070477396514852182129007156555787512407376991188869282180877944254213598211985024595750156249597576364546675382377563795751874580513973803207405374459518624246641802146100598256436893388964978419502267905100552633103591493462059493671966645396776197328015019882799581614739305089856762792872960004284153587403246294646943120291327053754525990474427135244540665590851232131153132916945232864874291837649471936368168500219224588648047235130428348064601757673636619324180543066037080827943815327123818739286488739686835067393589574156302793954165369464282462726149436817608445037005989564800728936787577767374693230443142406990227784238058665695877664175360751985860404926227714761712789210564595206064746099934934486993000529740051978651957190270047952234988222151055784818509182142989098589687582875121356951725288384152396716349846639872392583894298727826412003337883852235829244081747163163992968767052249695517461572613150571654845010170578044941428389632080442705547154031745264007650730642971886027620619395465616776946647095742465572129117114872140748810404934036274209719608736430498569077664441113624961895806133908619145248331368495887468702463721532401353042391752678574085070266272193716838685202270543277819046845813005494555993029830521167553189514964700123241877186785770330463495587200858541291758787449089891908267422310872589415247026249742519175356158583756228298270574185968218501242477099287609599349382752476862754991902206565336877101492296302206012578992698511969814319342170530328092269087250736759649595618697715249562077057330784705479403291741076543644397115356946322119846215948514221089299127000506456029606638781002379602893653531764229872830808214914129062927841708732998715504223497222908610996452061562139400928786651975451461957438771915830616342150651227242843059176254584265982016095204398251427829539434093021724373222350590689367250343035211222032080362152922942957144063824899510761713258151316562672272973100568407173453192980659685873269603648890396057123981623187761765867100110670772925274691381689566418141841783031909209022142135980772302112854276318605030055507403016208125639467801240631444458142159813402440534238271017068103262981021091557283210381664488961769296622871602524737513439564153436177892023572861040443821875297778010437411033000483212928016339683263548806214946190060585226218280770026970906962006614537905835258325590093604297368201685574207657801925630042139270984740177372734768855127365900754192116980324899418274732265134234225440355161147053181150148355603062924426450140045954686882751878933532790528668736290956983632026622459510143704340119279004246032583276006691867004484244990964887667478565932669381427103342050409549172847224440057141678725771795420265870495098391056732217151742287390144828858446467517279691457253488888828616133375353333188198658501251597492317696142287935209893015358230970025549938273105391375332016730106277914007837229775925394394156154178078115481103439527754433626902290188800314421665317287839234208816141002769268645710899439051991412919073044273212196878802629191639042508806262650786019635702584994550846748445479994118285846275661087973366206280632687762687377450608030731257091704945330664599235602387311661514982215139567564798701457817920457662610399550920066327118978655209141020184084378000332888974600801676240104887978299474220511041293835302458328874287523738370890214134838947968800349408875621455887111212436206632304908236803736571443479129056966914280839517348080856293939699419392358101530300935197165952376741551618074984820798315916286629729048305099351012143643055247554531184180762291384853591825628224136433481591180734432653479002099623319688573407005073192059767627653800005594156576072225459472049735823372151011724164337770888355755300654052236689534342061074103764101945980359030898827112144064535447406333031632960266533670687103156441239517649386355927087134545945674576059538054043697694151606612438887275384960793284729542265561545676232212093330274847283901555606620601318733140203388748155882865505464757616861253180767141934653652797165856202317502326777188274838453786301140386481578867437104856974627459623923122111910529995478869389181627800282599021907747500322970731361539383604718104600627709709182482743226258568683443927322350081680386504522666438651307843972435263370332200275919594610344348464465360685012165565889185099710032602370485677725210965955611750604430165240047717691071985291989664172238538999455364426996757699300097411804243114606934148769991547021669293377766509235116286571590826684263936744084706903580292522135304494925595444922767790596236863161651499251806115312012786523015003517769555722552587142979212501902087315102490950063953820629962472021593477281137016946548869873178255652201552281619626818032370723169563185223274132224037472913710471088520489304216635198563758766577578787416537482006432427961347552441337497054844343863428807098498474910510724913053173242370655802196322216855711766203014506125945334945934546864451385320175194014910404935497265721797377974413355362774813282500308670110251633542983712789065746300555173564109653823251775110020294470485563996892717930470421763280330800112003360707713688927734049478652162624030084716269552405993182027027479898541029753056910223607903178241023338671420638943424331475253300914453150428223540366038751561470943057086157790627322111161145588900054886742018313976284295011341514566000136715461313125545923017832036415811981418208486970456843872982330582617730383578002687097661569923168390743634439867892432272371468017433633590172529782179945670593251860711298165391093998480447104761377599877521586639819320218594313401798973104565138498051863639563630902522638873836346619907199362933473013944628685039498400320982236353838714579050539028064347113927217081337351932053986051626901922106516900930871477555158776074206193245192389268815034752984120320150075532690683420847808329293318871618208291193909286714370571726096797982586455739936527380626828580163225282792265327785036772166912802702677466034927275460664992615573834309098422993892496523910655465182980402118710805792100830762680996158792806918913486059959851855899457632777352014081022968646700388202029510208493960183159949324563332644536229270751025399980022790944488971753246887643268019029369387267487064410595379705053462925263008787805311568348554974462893794942125795975700721265043600518413522098413259416230516004778025053289204580871648593213752800981574298731904148929763874560643997053005722196517564183861834164864479036619081085536193039415453368999112429285142223732313412694726880002563400664631582498062053994413931314562413575461987387989171565519127250655720585386627091258436410647397596625099227422843776069782642868800749333531511721140729276067883657212866784668155260845329294847936638546074844967307807662410070326595899480624675718470530011646706945102117174454472029014689532031219318379284343758363137660066886419214933137859860058831372905411255840628787950667375109186703814287625218716451109672537339763552853199561807782737274992966480894228187061170564185044692622751704256491762130870960167927165485998917863629408532816430567814354810157270514701071115264695073520775004549681711307568845192211445249739066600920873556818460985156794883583413372354006626450494595654439314527248187806733628850709684298688707567423945219457858898311806660564607026397938837984022889554838031869905378103907614813319318808247592953261484589147285496187280781188532517337293807817443215286116257847499700082193992358927872453910905464393107415420854057769788348933839393073855993099601381790025452042941148482554135048697572361078749747198259148317569546756335417940474469798663972229807711320087563701329194868798287759744662700127368580716416196459363913471310825997912608976555181903681506947948866502627080958855085339595631521575903053858882407298211899916681014025633249461727181477529112980604317977537154028236222801107407223243378925571403365448031374025190390770867015077728633775788460933259277927715438797133709360491924802218336804965309934544398989307444642235767751917753851197968193676272173433602298083331618352780153847124563575436841988164392605378232478175566699988200387191376628478082938071259368843241192688562053922677261249517252537679286899873170985764647820375889262295716352934688269524929175754348892912773824491985311712188739181816225973998548185947562254688039182567444055619951736508740209464909289057368640075161037304312797133075361784713760656583343633622039138205657527170433058466300147510635586605252929122375651595496023931138579460539555038997172259665040974918556506682676864046170773948002555150387963569067631850260707680467224794534110157171231387433861843905320246295247313901894659714674133450332214217173822822402753531567586539430752291081177051147918177522155248311047156058931755748222622569912860769927683643616977429518604728429560135687595931409202102380569136669010134077487364045517623960992118110780359734788241822809848172659190079702719853637441034233251518168895516077156001229895164611418184061097822327006782624262295661644830182750942155037052830944384795434049587502596812729456557255358395054063408449788347185527565333456710197237109786792009341161512838067220514067632457029627032064324753636578612002394677733759564957246696476259178761625646857041671112090880318024384736602590044481199162055107712837222707800186928679930535993003372959090091296342983233546590170845018409550503677592776515891385235710875035799311441861688821295901539330492858496977408038418216476384043244891195094906157076951229315480751929092003876805537274543866147247294193707443755910735499800122870728209172610731490491150122743578175849486158528701425849828452614740844615216274941484211242672332303878983961323960564373983326362052912180859343331192102198213308196335071380882797611463609766750261588279213551210053670301960053430418443093165803535018466787013337338933662847010414283989580772923096226773723262157325406588422262536149310156768062678742596300364883148493759499542153787458582615112495056658143274784688107807415854672006341922986113377781819936102259452013480936601359793869667657883761225854598897243275761902063311301453500738783229370818237215574478278237854628906185269943160634314969119688558239423013331395445818544085211245475576000614142191277463244961970083437156978292313771731898472219762292687977859344467812591074094282850006753973134020510325731352673111995538431771183505968378875631218720171086147927367263225707826906432988736191285327482002745762337153994706389317950130768638578984921358498861643616256861517127639036106126757305854658930974153346939927393398611856684352313025224134714800549887185436011117139915809682788429220724036052814757632533783453561774953716088719774030379026440844803719694652920240226117588499642100279472526318669552444709962044325227303197878752928305893031036993845354650994340297430090534924120117460855323997799413957282575774072848451625951542385020149333938500348687792519982427783922792247163114358073987726805891367052853693000587658870160845453900086786108064478679326558576838021112488528816141150598984968933493958424795905567511767095697113040731499110213354891351025893025004558186509882522573733815544536475300912880751905348711821631778641267044979298653796545457068908421337397282735919942088511460457858391492395304070701760821979486674167754456331402733033783811808436500865157834079517485929171212547023355961731030343362511451555404768021805856223646217559085264309636387617659487472463866137780778667392423549565185846802125731430513103822061929972829270467194677627276980445597595577221726656382984349597266118685874762031303144456772090920897988450320989864811065860377551657249987434632846453533131697597296517145037180386454373246960331287700337026025163482053792328527679422734937731584182335757998441703526791539500960684200997673928450463593111108458059104071192469934434372418096553035084260813470717391654258756462924963749253460903259641356599793465400695850440124571990203440671274380933111608445455746284873507361802044661654817849751861198583548829425332347470988133875429960455131079531202420036990593434810988025883152458682149113418517619773757231028012518245980840072024320385098749175723023048878265865771600874193425217285233344568973831248758182380300859778695302328670297124517638607807406909299476285946104613854458000984667380853808302166573433181445393539317595963393373263380043742140221824845141351405629674794355750818538223108612313601140109977318664959005407949070100673714549776789604292603710504090329136753019216610423702283132031240696149807641087101105150860040084718438023756719154389208375443887724685370819035136652336598278156603635100930776135200994777061683564589070883521045526790883908642617640981791935452900876868867483646942759619662154503977399936162762104392243518684661976096565931299972405129366645735910374521864136219770605691781935172809211104488253934681806274367868708015523545277834888201441135436230712678985315729823837986069868139003256022383079934742480578587056529217640095667741381134494579820123058784622798592879902617980359890775273374148610216645623040262276674455435434424211390266854335830532281612062456055706338513296619418446023499377823417115870713290208396033269490840024042461677407231842137844584337150931667683625234686413848418600737544398277235498607136691563692886821984464065649022506352292214568123515991397812476382027694329668856410699261911690843762474070945531591821000420105028596906678034169881299448114481510761140946933993798789694214657955998749472871127001682030688061691662303177941306792450507758040573478464342391522394431277799164443371127582324162072968202958736179021869535541847436569476882134000816122614077680420788221206554754437953467043436674397812617922507693453989707991585951582829472408226291002552403497011927791217388845455740483195572261835118744731158992373785741625461670275667243919504596074600968427826819557424906768914142103657754738060994950555824871534024688997013430350083394801894269734658970160474077338617863390353685662741356433575787342103804296582563948369334044889265247096406552844040224173497953900721402931202118554872180600744092699039312204988583559064421126603907574233232302632899919263646701277360865211894009155126013459991623660360356553695042949335378621479802421967680566309166858188750605037641706584823299167990595886557663229275401138482944674186303907019658060777390705774043727785997454880549495320038846838681176986920414681184353660120428097976597015749409977000964732416734319081237550252450103975174263225060174340180455565725885115845463316727048845998290553473017065094560506522451410292442348079879027937668414905417097920820934345132935742535887510394073470628061087522282907982612120565252450952944599908021651217493695882512450867316109038066352254677551887478570633103505848409889871195007240784715479061416715483302780126288399205994186924746962928145383199822079690318657238111902287637973961208240347977345852345300976270517873383290147259102509671278592904044941361547072381807345730122918114204615950500811599134815567573382604917619518044913383114126641347885694470840665054863710178432243997401626494321403176177708790956878754792043010486776150679640790968828498997984767116428665675090383073353603174915383545168422930167788350376962225389478159639794490816840566919351356825398048254998571430583970807219665220763661356600203887976717778658658329005483946970276324863718047260598100356356860805818898709850290164353506074243414935590505447252418298896203394985780734115131572571928177019462150780825786025288606970884325018832647952175244821597025185091294520393890668016631649111266946495731850519019733440717131760512728582837016324254701171815764765075643662605633249338073164490322348096382614669866962296217065622830091102504452764274247367184490317572969025028339743916716292970423023734726693990087919828800196820645218601712068194732871489754702872302060895854238250158084270519485902453214575559537376258049476872318977987145541869903920258878982133627604425785182172500778429090287498336541897618939612762244658585563810128774590892750338272768199556465293786695306794867212780552570675647806701708005112873683241152179364937494642317064067815194556876563539663525754934578361645997191429431209152586347102442642400855714650535752529357481276926826438920157955214779992634638527055855899275752139249752696384446344019523019557036072887634146727772153304071201108514255959999893196642309342389966481229870685427608644144099220692699804372772148528428400505552439218630858199459845281396365975253154867515003839021450789649199361221894361553435169115367089189630239176574273821671982619261502205182905549112451923858753687905957121309130887255660196036078727797634352770457060203712086432418498081932076551760068703804386988750352243842442526855094609079402955713889305003353807979179507726789468885979269131995665316912303876454838193159871539188966822795440432487201960777388666366188467115142486256857218051075878098218224558422551476839599326617904215629480497256212273919148765411367596247113682569373939554279471388492571510960049050978314492894748082091022426195698041462248843710966972976861935588038357301380363322418735711675118668962217073709236918293109913593089118441182662986269362615346170579716652678247252172244939900574334879183663323724427032463588225650303784310599735840528754351546234603011046748219028303709566352920314357053835762299454167231824108954975416202699673326211668804181350928417067883009791520653643863294445908652012217423622711538800713744800780429469360779944329630020960289336365914575844667501619426132381821207130656394577329558702015829659394680401925518058700140797910867216365742841893762861608984686983911165433384541959886713903722039975275619617725681010995757770735454754794729526678291564108487604666618933529209132172083640782401338330150274549105204444995196944117775386603960555984184064164666710918283276217726809523067360618302860207972072031496446652798456279208220239640618713600237638051371403275826432361335169371725932820851845967554965981072201092820503567637917827164787990063744763499252902036147912071518524006252442639795028036739097209167422472995962576154559424809638824630275785038411861323947420242441275889070173032587551308542271288627747912041876622754144786464978217087002082398147689693827396647453521228819566177632341248726322961355466451092552593513037470381286626996867207720728548441180200419731940468321182365344778136706939202779693399483692851068185429347405489534127062612725925586741477274566499075182129388970493959489683541802033777910762635934613955904612226731009771327960317685147471965416650345631500037154001330388221607843286367382405926108392172194654552846791447974142759112405259517604946989255232054016699872359728670612420322117787536198211494533934300312564091787773672462478780826146601917238075352437566119934353877707194607791424929047978210850147156220600851746235491507147721242949552626892976736809011298186476347131214571670300832024444682452952866347352696024742559684900609174399482729187201622078549362720841203671990721130266114144399331376413333814241139962872596590021882956173174930162123301729092887246858645098391266353125686512530178798965961092872449824562837129650564551047767748483388164096783588456900437380935746866144602392302509676330254458716841812151849807346619509525297371960575136132926230523802359145350101042761234931489048356255942959774200316847490516056688742711869272959121870036052075434573188745938228146739270996805268919587233820527339803727405681696030292582572122971677790203022016526019111052558497427920559259946724989090614992205237710155020242829599797778628812043121493365520952341401229881344313431138341428570799013060362152325676647327563182098157694343228730173279416740909742538830326471856558812056019151352938162400413696212764074635580274293150110047262842749446556396233795916207979748557782251430087761199462924044093442975628157590628878487683284144723853384112691479712250356689206102687578698338452518761257405167311353085509577207457556676870332829799205117098305874773196521553427787257621454948999416212263336502430673846730349891631465650537950489475946596323547050784036659898842580000804905604441882407607647536090591005188260433658044206379410156105353303117021155650967213959725544423837188984675045215527623104803392629995801856971032118485968853649740138621044894988308100395891835961787132310152711336050802713195645458525355141094082772485199669781295044031230277049630279469709326855679775887356288843642284624929843380132794833310039556028027467563522516390518923038097807622449897972710215572009969370493442275206518115586098109282828788014330288048783832298590164562635724156734537570791036914636073978777455945867205536770927067424247270369057610057200155042017161754460342904256499485326314001297339361358751120627773292069418945492699765217106177469655870192111059408402427262725022566007937751373242204194042364760958981690677317733237972930559365556851585053963923870659134780772030953386288810542956872951584610850458826310017901553729724137268380892869024884141572169658674488394512633100105081838992314378628018334721119907051892047070963587856725321349420713068873887493245708755607533161979134622688657212581948557824499878831951633660996974995754880663203647587252693254747108603210268942131208005914492511029594337230735574356614774550829464706672835395486018156105768848978329883435966522728372546258036638587314814401362661355742773394953764547352709069723287304739314267192794438393693396624493756407920768975027983598580000327796452135158402639292107133308162344268473142616642040535565140838116231776312433497393291545445754445964226261836599972698389825517070637318489499768964086728320648204097940970891906615687092346310304842031695223083554643588122033892046724246643197141242065857512310430710338071710928624866131852343142039586501214387947745756251547843774783579979215229553475600399956085565209823195442893302438392891208295568724698764776127320157121577306207170961835109675802950872995514364096558737560458393609143547695682120013918493728776549568204303117612631239964203883121465073845419724577337757754613594823244472193273080876195769885472353670800332322797441940064415697643229480412872230525595680755784775823486031912521191174928499607391421228679665114181073328223992762364699815410120256028419257137352538052126056339065258137981448368941015592484867387778538615517759496097096411100876320097100316115752232193198156385858462115046527408690428623889518211072918310495871844674019945394193588019856364600442777356875717129011688914466625445535161330765473721895285401847278483312575522973283621512702550211812350079568760811876151705423426815723201894543399938045723960775199657305332347087733061483303863703692492505808748643047418368413238025825859958944725679534917429546150055498115660700604807351586707779828602743673680033731048257326334037585685523644405425824597299980195997178823127462813653337544538372800362232641811863459458144066348939754486163064059283518729159243390488098387200611602023866961804405111337628141894918855181786128481936393546067454451325806031119754995779338750442288466300716373277176160243448091603924076958528377870324781028604225404629633837838560214879667499865349206357253304448886542783447364719802751990491115444929251820401612248475021663308685360717668515400403887059024115027134346608527050463907772719047983061463565515046644521349190606520217500796591020783548465049658096319105689294695588423489755290881459184447414833570163056049885520799550173248774941820853699364839090904742239315380066061453817121972254886755847864953932972151120159166284897067238929269264961491327367632061727038928851624782738324527263204142391715977684080494220544854463866003810752849076426283916480556608596291245903428182815033586917262986245445137712227210856359386025608282766186448437953723125233231144279778584965331529195869534332642418040086361165145037839851625449503788832667528497318504500281766608599674547914656459760515280418374209966971409705336580145652843024707054099771463010242185883352679251172887372199178842302904231409277717962088123841434757957054756044366582154285085494482487340154056022451209880641307658754252055126808224947605395089149946001478513787379319210266760871351075117519426145776961415527069542909999330490716325840079661213113615774877126606343617302642357289502187535343480697992749138417562165278409069656137437073171948815640969525487752259208689146076117252751109581200505331952285487823772909756080521566368778167594289694116011327233038512562281168231706080595943897582545870875280373025944542470017943670643977786328598713691259988920744878710021788214728579277122531539990026654587637593990574375139776915583581186155212681034965701251460126003009879680482674487412112585599102850012622015054139767352838704298418625196083568643482810795479392534711122912694992163124074176852725432386673516248201659029935490485404883121385564891667844250929284894265896768099344195133638169163526242794441485250652640507877702061691235741205539787886260857180844319354436724969612914875020102914612909795644632449019937579180492766317092558436861822559861835286306730065590117673169768854632560431022095912201600533051065937593328480756978813728211529110210687910745852872771153441189128623927582122829417700233025341278260108649149479782427392558384940075598397986765436984043938695332948047676706284194290876668097565872619361351900501171328460393710731261914034308165537665312400379060280573638390247861422557846217622251554686782647539696710223829571008634385176478091388256099245332491277571226877908646217577846600601966553410251827195146324930977533216695681014314008280917138657516199640156946412477084789562078028301192504633416177668730112421159040040790030085508547968939071763982566686096946103100984745411066404650420115746028981369146485895479796844580707326800786590300778156072318196293833005346882997942088059682975347477043644715531210635510641944405572127512963329076553977325805034039686238493202079979456172207036664908807598695176536077721145150382470950491709281803232347075236005304330229771328313359627805905590607810283733465431651040950647097561123074233294519881727357365209545571316192616981546956638777369904022235154071034583366596707507850851178188683878910577610950820884149902182759077853995175794117254087452459072087006059790380630740293382510577465764960805675370856089538391312564310628728763484545357275942697343332447124533092558308801320301309043782822796203257162861352122528050120245635739584586349447817385559156289910549107726254737872751990793196777052266064955248547308010765728846185405893228858888744199497218054507854855201900623486203443312594596207218189369651731498932891145741643603605824166547854623731556712040811387658354421643172676872361603463727153717659256559503981365598773454811851581497910862401229203084585706502621911567273076957324484870257192876983660276258358156820476088223791570422708676395321822887618172276442645555087051833748805184760221962222746176444537256811394199085970116718544805429046646350876045035170896688618283503310409979982049327977497414361162874017653008513862725521069160992915145448458128049186753461923109149224408390606343785514063838885128804077127586953977501574516327331292087063241304200511050843318514002640641756917684535344294420909911836966409215558909626526364815173286180549313863085936715479829300301472772912956438174352821480219232838655146634738490553009579537115394274601999364971590530092089649945813278923950022835628645833468887202362210486503105537720871832598889503410626981971069389873018761686774202137549102510988795602712872591010318930524497108060776765783209576036599540495960995679458153264313555082673433381848318163751884614813015195701528013947996860583220952508477749576185062242987263996998542147936068236833839384420941496239443500155921941461639790042529077176263140286635880925971178998346714390234126036669694605499060324457897669762089428424032972280556051445118018255660907255683046807309056031669792023215172554241361761012676503360164676612012793993628712937377566448025441395662109004770841075486528042030109408816612756332290894050299997196239953041686785991517503746368704284659003474264213179386682674613832070815936326097723562248641965947543603051928306603810425351912580843642443894266764568055361020098729249003120465601815691389229346644988359399568548483613483066846308341772920970061323757407600629124691514220013942561352921096294873986302640000132395778106718968103465931101065496200393570066913091334440373765388877599032755685491809276033938841335014495759885878355578864741481241930913852776600517833199647908291777136092068132038150169084632675782490164022908948213274347608452256529340582331747972967528420102795283644428301882180012968968378979550765357013437630560157490490805986322442138778779179632773308379469639477638210659255616164293938676029081459469308841876589431829549555759883186926026849205614809536285978643882041000372256666711030203771326130004978573339847208806893559463832246932353595046493395057726512191114705901995618740992347974704162692463498808595422804942477111367419549441176540196443083980279731935675572525406829317790749091473150685841240398571353148542181787926023373273854368583773600438578037333528300981891595227079533856588692298053263739401394134421949034934981056054682607171436610813179358366767473164150955484491323427098535246766495644274456190848607185532286711394191137828222434345102999318483746796098438600572169105889302898364255248302434036104571155409149176166964025771013178424282594285661249993994840327348148407198694998263533701193461148427365607801564295785455178744813046845257006944260667833272657888101960978189557900635058391793595900181745744773589758193953345907047161766148205531559929454197678598812112852768880657513362169564822253096622428683790971265630557921188188992306595641528810542351801841907706903734594153308220604116780266787729151568334454526071137597191207240083960730218933538686080376337907038305587660142026665136423626694737965397959059190875910613125294923274711502164130855478941028373921997883130094436470519369851247715036759536546626327748480421825458552710896541333225220514536927475358037729985987514674399240703548230383354794737792881085041586306971788521583715184067629422283303363107387189383107040584711578992053597456891721481017627595657693171551656196760697588521092499833357009064849514046561042784826606700910576906517716692475478964903344067605342570706542427457398374535706351494142847262779819352255410215212326657914136905344342049263555487738318305496992444744416031709223464710323166480740332652955821999241471759077841513610469865122569284769011638605594352840000583995761355488367629623138854024582855586967512964880888413856579679539008050889618124630652854734458987577088649555911833336407784866075269965637659970974144241657420873988757868184592617195368268728175504965020744567155226258661358902757597126449535209534708198360131896779863505150075408296789747645657447376030338552639297433459000500841476818202882724696876923317575271820573180794302504582273942483489461807566751739802956945437329317204539675876160996768177756521778267279519554460551370330431265158490355650695656051036068646795282078186309395980419930117948329710789290647504373197599816019921603108300220240097750001516818259277655081959920074444705359793598412834011124052336150400570060972809193230166614725602378915648968391757106921604437971606514177797371642133894067434694655160263794394037365798280213755864183556704752235554921361164860197695461280455366908269893352886139337677755524682518421459142360249948109253330765930793622604032254024180213282085552197624434560385430240565992204942633412010262336776863856689628736518852392033523519685462849424320948621453588192472651826554145456379620305631083807475075414627865491033126922412722236844203125625527578765739968914417048094048707522451419328999435372401823831552866276241134026151067735555797461872173100385557778213249289400300388759536390409296109924446115250080445794774942099693062569007478197420110081107064843542475581626790826581248282482939951003359576421111381073573545044667198508931275982902141592283620659584615638016380540616773484879792362537250809943659910447510291894538891079387906418030427035613680985359504213451151671707986652880260366929197984617042299620956364714617728629063303758583992522178590067538704756036487978300987774260380007496453684870500685324034456679852848548520056178711891451476767337672957896616181805141188203077799541767474821817962634730364076015752040100804566185270175690169217677546574854827164159999561967651826052908608101892054952565313022605980672136315218076765115088285389884887035458285595721906689775131533462367941435044177026187959561287890722647020540589755572244063453273052201106623158688031279189773515296496240361465388873929720395856559376837389373602171683596068045717708669288506825375832633641477333029941622745737232458340664824464653675310185048140475533528695684631074669692529932760123021695665509604943267375969364617221765773346446119234360881493559657708898467543896385901799467180286781329166179761595084047759068249185308297767390989529805943304765705989403176876726988537346392327608436064434865238959707374310370183138601064092586035430823553889467642911443947301024650438988357760728119378568977883925415461979469093672825878377170648297448682103319409752458585118286241217936251180473683071789173026897978523504017192350473465039080488444422018870308755731971560599314511072291488087717991166197375268980372889549946636588924081389642627310946373471844957115864170902968281126156835831496417112327269237330159206955124605860058894898018939704888670899850480428879049643876758756012526939511724390954346914343439901342007411285072858262099413485474211975985841797913315553202830654103422826711676757042252626973979996441993953958871487366168293060038320208299621506221851041524602945398220928243017583054178198468438954259680067095282260458407671448054620349351297868390719100978232115756986077914218100986379540902846701778817056890449058646623044766459391606246235560658370774599482021339930040668184148615986749244125163044601857261688196622732094487930903076551012814649507877919230323256216417354551010079931496356942152441773999845628985914665660836253385706150841636314119579589370780508597965063840119010527303199626508070535536550642348084891642486229953694043808566653639310519246698087586462667636472672807868714025872634640183866188829096871204396189774613233711741140452756999708706850769161803245983917972524728993408718244179099296255197884456653267292917787051974332392327302060222605904448112342482798035306151571269599313482648415026389291707466314690090591969584744098460968981875520134386883745483666721155880162326300037082348858561307508849905777493326316522999165759816846959653997254358031934538584458716085899643136410195259646253661243582362484258575774227438731095888666310265219739482364200146667792995419748056080857833241778039555786909333679776205568460461464109103417081357545549465622055837832648608126552084758068058101327665358562098476827429885396356743449540621705735334929226503933615229446555619358897009503043579037922957883634218246270522665269710283913993970201492743251662825264661802066176720305130981744221631787658477353954404130707596750244674833696098848804561623619650772345919567552187642538000021338962563030546867309617428252800025001505424037038432380173646460891804075681630054727291812285041709625014316563974122792775609246563058410292777980267955599682765969145709788928674676671744369945743651258205576112113201823223354479943500039448804090238359460199349674538410290999933330300738601074509811412266733736060832963189089217161038009106141129158347499274898150602807720961896001638915287949551678484892539703955924900536830628656498698705194237587601200662761911564910305704533250497381747687998618188254111694763441558655539930073851642033120888489750980046309967276273552736058326035547636718834170770966414441926588253673633785406507136680916354047583026105437561329985548408924254417451936868279466030316136457302630731744118423751377580902942386168655972757354166218497333762576771687745386095333665389968823932908707462207311659924596998073482855231638242383076931079038270304160461272670137799282611341997324304856169083882579604504665559318972772614939551115354739692826667477395826105091025689749156017798248765117509163442191657570115343114911828263939925712438304592659225453285777514231965827018700357431405812633925749403284337816941721806705316121178431878405720306202218524726423431001250628677954282234828842381277399628321496494878885372490456948815530002758133494786710737068482528507116144699727323049971838326058168725795710613139237411961847166091071443093188684503222515209685103747684249942073891367653926953238854590070152325434336741912127232087701954790620331984656091519192781980314463215030142967111599667526207028023078654233777491994665123914390819316127959989626388070525377468358719059046154083482525895712597160999244851269510539223277708789846559264579822364338531183620144357286511944658638762728262907131719785307995205114432176881307619728300279591803459823788901801691305962108866543947100881508791238516128390086110062430591592133852299427500091392315794017234026818590386387706794647448582900269169314510094861378049171349101682587525689066834643152323725194495732917802388033421025710422379489757450291937899935468380189250468792510953835253907869720693426640306041045855674496390196410498991591757857630784525819652746237231928825085153090534990894530640162486157895175263214622233964826417359712709692366464855670575020684626862029486534837413145464225449834034004317241291605678355215451406949062262163604523262844614643893026009174182470407365719711942276202651407759808492241064638106659966207541937608388987825408974394140556143951938304306619615680942665257475933803092524539976884093952611127884583778061905270480838874180266936965659351295416364397938503557206539034294497560588622831894563331080697984537104623274624261305024344590669645701933293995491074057894346273630612525339073446865102045713571764658640238735538598478255565471741276979991764236626675914494838857230945762430173068337947043373531280455654160533216207610212206699957028084030460411479830141286212136072298472078034181720210388314010776256460117946100849465770254232539040555179757832457297574767607306247854216082844352088692623494786944047897391051167844892103828607757936766793170035805303759750238203380939737615663724009805484086305066721184457461266762381137818079888395799331065998981858924673818774003966847372152151945520674638039893247790970035068054363938140006625641751438718214736865249972895495406826328239097942476753724758091923890000144532132436142144428232257707148938536089065778009364549363413307889529829210294160791158639420560060486615701705972420304839916923838091851945463608709325739893750027144419364737787289620522937250624591606101139260257829748317229561790900602683020848331726436693225008299869693840078682442738263696957229464418453910904129106116349654297991677792897524867645599240475686045892303882219374224680224870895986029466588713596777338513224054204057264374308579388611154109447060276954634687640440816993614820865922359571785300847402965784460405760166368419910797956303328923371112622902180067872503674533809686642162115221769605849104490137611622101040050849165034062811531277849384584148719333240092320843522232243586323374884598375146302949894710738549272101076857369235059674524387407753173391018283951098793596415668375487107682642541081277118732634787811218974678218926355791762213733883324374314753501447462122286101957029368198747104093109791016716494521391680797381705821063047570351495851304914280031138046730250018401971761596505484272957940900383513799937763356400840434695447173059217291361873448586155580917216545868681813511684755027603111897295481847039869416393318575371112052611022715556585771523432162024371387352406494158653696377041414308637047580089434613564351405717007394745609647346418701570986055392275865922609654021925176555790515248355308888272557259448408262901844892564329403557732918742392943965694125894028145762570397784755616370640773001903225345394695328725508668647605706570659080894033361894328177671799006998076034019183117378866458344057221367767867001364964297996146223825990872600531974560119462542704898260567957864456644397802532641944318553117151260977408624016567960946836898064901808273935956068037097759979977724034470230290191586458705412751045390717401890719277518075486478868309112555942508043774001353826658792329997008689435157480795806838165658998028306099151318972338398358001324774609186165577795312399866381494100057202240793762180343495908905999943345684743475329258157553145219543110640022767666421700920652324312860385012129721851492865473101098711749431740510930289008394845314634657649825053040260468179778077965256247098988639466105686469021107284535637198582940643025874306859308002545990154804041378325132580812639622180255980725554855079117475089299272912422627978496562933586104977898909282040408642611994539282957703308308673903435454378270183884962262232751449870158667867503643203062446600387744607675914442657247964293939276605978680758975401009502100189250111717916490121989649337911697091811111094487239625317395419614573520182660462087477688025925653448264785560543674287739179390327481412589117491418843003645643212420874074349761129174983200704251069763559817107677830686623871567454890676524493602486498217383890799288474388389521543358932403826564113609515473287291280544950134375985118153977309578828535279935865519099886759889561537990803988591417754015788991992881434305904492266027582361116338487655004034992555709761026325138215548359688090107165876581619652811736088233794549070839100788359777582560705306667713833727837861826051407780477942252239031029866007011474176954624215409025884709202904851471723460530721191113638117840752707976252925290096749670046086588795316079271951320230454653739459981170350889317332860221700708762597836267128881958431064482491613615765013476421612177663627166941814357741861410680801779812900265476698849023664709434236871400316660615498635300398833360234064370242545335458813509944533066526385073037718615853120026604373487343106004550033874122947565440771949346735487336408546383618892674930351720144639368029044040262249272323526482057831531833720034336609599850546454733430527689163423462634354917913065739137253578899487865417703885891576063408582389262345030060312733919605706721405582754103153742370619071179523400213312763690412180095646423716440371879838515790780311299237300501735262153156883798045561558760323455690715885110295245486813044483666481022904496075188252740281874926671779192963468693622071056020744163503111301347992405703135467468571326242260232524760570769831751949580857340580855796235961668610579832221962063437802254231409998140809768947401088892047237160822850223159150879929238682721538067348620244253476503909807611474901229934134224356347253449034155467338535624318571480800137127699318137389555198674238073514562419517909233687180964282681143073782125988259810835880385331105355124504220914821797110600243454532784863492421957790092427082003254372562585804327039251847906164948476453807803900006608165347956868771391576436767244598638660192541578338704480434161808934352540509249876800049231432514341161897821473922003705253447014879413807063709183771477000422233753026918415453824106556766177559218614592279731134079592469746642072972810146952391259309203301740078332377251090295835907004537619469656087794844379064784387241013330015789177153545970002500017545215486090680348979537541913412929608880893146581947648242919084085468309738726126511668023015761215008372568021931573383461326841646986460591151134217848158115821872641052173612752598254604728939763388433224228930005503042435258300869458282893786224960644350492583979044888767033447384105048213111503947844948120054585575193669814887791085126317488775640776256528835613530185675228026739437067439832360539570272953943811811412849906844920221689819880247771439242715443763392289187483523150954963552148217802427340160254235207705340789704817680145931793661053575021992397258628742638881007981241811632876473969761522742397616499043023217789653184927566072877833642322736916437228351950816636706765703332548844379673030508870347463300511243929090476509985822295063170341721709865073969588755907282955680733604082857534453685417399619717795277215186162382262145715411277304859966013487228655870180117065976552436943954117297959604286496718984822903136166319310015701637585638303136313375755725800301142687792251898347338781376322342211382473932046053111395800521466250856691716769516550934704547762708345331219110094928985768631415200770468540171202455961525846160916330131047655640263808398017154372318561373650311589641737014103612866458426644443024700343015819458193463036603753618039201595545157269620236594377530514322663211096995261170190566502341875523409425403895383187161413081991719008694646527374512356761212633143581955896127462937676624175311830068737114458351482253633724286494992433168601420561434436142307983009562941863259414618659776407117018839199336667784302762723585898433710774913957748998610025370457570695454164311489481803042517721244751057404255359656485239613892838365347337622129079449721188765334869701297331686983130839388173764055266612949491078042358493377433713892157068856896803882355438424374887296111698686163856627042380031169560112841547759652463214956164927501076088213040893999124581563149435721234784710821589372755654004817138173037845983098137055350572751971837626798324675820124312698987063705059305817416852000436849006210673036229446659397015964197843454608663812676196792989397477836013239549281561590540410186753095321518246465881237879156134226289213772813220314410768969440139499183555984479864592347994110609282420769624495542393381057992006483058258209047702129362902971558522546084839815182551964003802135264350262648663284170475961465705269363844475246162316150271836584446530106650068363258672667826676557460557732653379259869885894456019204534385933388926804705193678937231204217313246583715958565832222443588043512746515300727718634787925290872278573977707517497186927650728845447549354569467497710766702995091298331906426395554179801187552585677765614905596692343318906045879914007957428260283436594335089980242772915883038210251477609052311414683189140049111546361655720545853081200384167916328871723997594766419762473889233166982071646641186517912325504099154050232543311052430073896994503652621257856656990760728976222406174024252124468881865964194797773621921946090564632237727413000612865470022371486189990744200932407163339206508476871728492628327905608072309128392935717779965448655861651418218651904564986851351717816017691048900271064227263003394433439376734179122508540866667248260546392388049985287649908154072725878053041672515295742580782803396743392569307891931168136854533007648599265344935253929975383990178124144501677501461643469234277696115097189192113675122718701809909424322972735314036519662707941891914086194209532809841786574558817339129063032221419562816991914293821969322308087096070211541968186499166849537129327280440835456144932413983983636714083193667292097934911873669621655461801750403486706288749266982250864267045142974808862297718713621779208713922164772556779990525933366216392066710728503566180004635923026345869907186897062927798646713643672818115247626512191274949699148605029475604586058043643979474483745263682214720934633890852371443206934290227884208271684786379117193225991217621093850851207292884813785451881184860701677822530464207882064801712786072432869513958109406406315673487376992429503148651541042580405737005323969038006925563924442871593406981026363099796132200477034879542851674841442555405143363996376907670213152406409029040960684453497076422532332939306670037672595102341358290364608594969455872852160288133781782176530466241833022600250733197098648190992692903095530645301560134803018072871929437980552913380014947371168223785609686103334932425045444638368653873851689551834821911343442287878460045432442757467308086517190948874186297116116889007425134526792715296925229839928097854858136861783159586759050825404603391135424212540073551761486641483972241348219951526418756436739877827201969535457020334193305948713914979545652018012093632630939324892155632621930457190676941628837962594985166660449493964623497446187809087443277739589356956113079013369229403508924590690712083419751219386262532216719666133505280783339411026231296254126163811453198154360453375970618244131065322825351859296313230661371156240694337305510063828255115032193381631783835687431689593195966889790104474001244297746830680395134723552894075300518755546848427676102417820499149554835815665965828103753554594814157417178627928576811321959920075956037075674487093404277131161166669053269610903368971591562931947914938413944005257443215609272892389790634844938133917285251228202665696230986623251774219167859312739398045851962042776018163883914936933079141063087075015426586987002200796470156766975700420489869925574129468912037802288023945468415647794526637891426377727087786948808553559941512134490602698346357496632080845031457430251266434262180264896065096326120631821262227498803916650632619374930881433740256112622057119895313331636057324298121180938562457886386577086324141090118189363362894215123833210994443904135857156096709055114444423208464609050888584672300592827698551878750406932352912194381326025740040503011913230194859488157483095409883245813938163105257108343791244921017625539494380485779647964315862069511994088153458477088794727270136970373357546316610875761647025926371687737935847270866760857832009929579479673312643656201760544617792715440539323709011573717504191194458676487930461621490163314510618313274055318808135878935289997044772534715512801720307536009226430153468606587526851785886338287803839861329266592993151111775902318880758419194526740655815283660008305268613269719653082999930324856492938345621055995231364717045774171913787801145866650711369540412183829043485001085446566639399845692805278262178266555532470017253193825415450513778991242457889081468246534516455083483893121825549187228087586079238861860889645354797171926180919641438974083276742553233350238205389769842846835797890917249798508862594339968425820297426459921147523822059739184400836093082325352416539258002296134506687407350348912620331689042008125606046329992784695103062484964055816817613632501671674639349607584408788788473990907610809657995455932042739048108556876242081152857358459050507341608132649784206193489858568875064975089805989431471237699960627825594328271370299501002211702047131540161119890253577512795020386522256124794041045626389214944342803606911633698766532846755187805829812387891088016102734904655943749628388743542406586949163628830964048904862165717051663960058989374349494644950108084696899299751124678863766040897915838239374605239165269529758160391536635689280241618339972235894956139160246894501434206986466063727560406756375844483285976851084465192458856185221259265532129174574815347573147129943636262284190847204327556651811799031262634858284030298095197170214950851158119614785873945095259624841685713079652794114232071005698533378877443180083783682294947450892884704832221924354084533787939291332585623252985869991598909725386001409640917109985676746397816003996149589203533959320220174125171197454391600231146601435518303583028740853067565364014761568396862180738059465967474108279979074196640249524203963961381616509314724548595961108804599910535336700855022260284537793313030481925876929250132182045622624655140215994582598311734260475557355990677992219456836271643734401247815377176042469570447291759913880250132661238987595630242135617482092063594282553493626354315380398591036661528555395136024483041393517542746257097668621380411243717560776566247674811833013112356357841808579744335940440572677742477762110375290569810230129245567690507511682839130500617850447895076786581803725948417592093343843538690400397367497882775578927861631861933807967132577024544012351843623140939215491786463543230520236315571356995634147280957891737854205564643212450072829764430603221616179621244744476822772263224249281113439485893093220774987050036552162176068959279970688852336371789035109386562217768946120233678847322645992561278649362512246631910206535215311033835228753565564274781427895615040120975111702799208685941549198343939080524063774083104474871077912529341166150677901322377881546419632371990281028655409439603228091037199395639284191630371743403469041916057355226524951547108529501427845005560013898085698046565116907200362297672819233043647908062188906608984249771732959433783468562445399413662087151709873643732347590681753530562276823421206373911489303441122657834002875227364838082398317106362733657123408891312060808922619799735955371251757883105953516893034742036321855758400216626619762644903365787278913768854108491293387376049741934849470667253842674927603937309922967779103885808377803389375638244380793697481609645208645658358289746795597502895910202089732583135407684543896990035469506335633542910074853299951861896655941517699945946787663837424556008376229227584412312613338490363864081611592091499671466756116004692528233790001553258927178518473324900647325571191580465470614929314740474854175055254845309889837379307586445388822146900616999468574113939130029257463862104174479182729993544675282298848690248783642078817891466077079239269646433952039827164447384680526402158618914126441659920439592207670643214764231364868109722405775559789305965654101909777421989831402581085917060297832353248431353650290326688603453664668719746509846577735224597064744407850698687257330392631806648307330144021366820239975910761092628625824222002218696193557772963276155475253740822403531249152199375019847600006003187255962267688572028319406364801833404795319487340071598700423148899697749234440772939338559633380611575250655931270943982483395898516670496511188593046343243942455245277126808240970064144602276819150098808754119952528514218472297117379693493763877934771415767097571138729002275125644639512639615548512424736560574016861935791988891864247247905335987914465964351827391524768633735823792890943644726196212630926077486168233218767246594857700433822168102001361937011571595476600972900061889259840114247530501204856638682437197570723267652330149042765817276521317518854942364483478968570155871616578180505075549787847813463019958667559384839997860161460306484289574371156194337998838796241750953471412346944764800376621646730961300183406442738206327421478225724572821361263965182929278509795977560058992865197015985456679755583902429880371058423907611371551069945111789944721050096054736552627059227693905678115534547304607995359231153157554055212908467351457089256692794164516423515290120119171982775064589326975314554064002441952484401558674062658871285068983022836992413309905560169598947558526819071046960629353768299890154602823971392273862649882893943146461996458375501937061863986284326591463639631843323949381703971932760808080880635769561675258771345054501664366825839635449123707005789271406738234014611339837720520784846769029158702315355503698237473604512856562011884758371530744504760061000878495629518356765347456075127376906480140597611557354423560505824829304392899356089197523185236769809659144817351668170091844384200913536666588324018947851422249724360651853974402034084910793166037448584663668402893034749541751784063706133281772655270579903006135145047286937462239014868712897464122504703318583091242815063505046999710525740122815892178422371839090596315208333795552085067480694635481916763133564695222491081149959228035676345484907665983013514451477892358434034102626506891932430762845599139223934875368801795492499379959676440232095763453198181913777245138804682148124207523522465569611528302995788070085522566064156096715786735878817129555487533487404686308837563818817297803971684612175707362091869854249452543970355399445434763303655471071916523650288339151530631036923431788388064994450720246038921920373722500625892693530697475366160669178520602545180178185797521690198090190178478905874751791912662501264707258138502570567860424655143764793495550153635573023194903154647535345607086975721118388288419091640687589160852047610235733428030317073043654850392311841758801295570516752788671347402846380734479789588687748419766627308187357723085099383195501541755812709473947776651356765840611983520123218542039979867435938999717815146120248114436455071822831508276265368677692535770920546885222962214904299137032352237449778321652286881933712335105611473048795391955427053801338493904382713505013980205244205674084621649753625281289771753194038939506254501642160434447280070592585938383250236079728169119493622169327442299335718599825236409447384738972273018673120966054657946340161586853393034253383157175578793163944753495829941368586948625233176173790832559997741750613939591410600900790532170659609772166684154285916964151485892571244404569336123633728110528454991856650022770942185758582544373402548376815047125315486415814352152703824653921848430394172096895315450852018568893169047859162414909640756398122985688211653128227036993040938163955349956574004053601544952147491179126037954067335797186395464299436647640644803072566783340033851320300050402397270430436916363885069970632827922154525052194430717430660660085729505311231645371613223715778955386845896007145352760528521946604257793116800734987148151527036475016482350813186457218069787276839262001105964241062714697851099406126922289477428230983985873409611980265559337531819858944911201565293211648406417339432839749161881837596716822920331321047101532491247485188631635552863654618195855152325586216167863051155430536709233834788738084466291962969595245561986858515566985107921114697721060280752533947840493369402540969054768891580882114858000739710502874468133769213072652715818626938429364236932241751498504584093953849999915421061779328233458671142322448169272419699296346115600592897076121063169691808987221377463125211912460435106896583646968710897636612878037289049524568602011490408479193780758000146366591661345211966242861386811002483301410928081399205155475085781230819167521807992428377039332751894898092148036908059672872203662306650521243366872925349534955301208307538645921659183927058478319202656303516594983029474202730798263764908881954785937640739285173044245527114717322330697701815368865886445248461085534000134627280072467872828535855909070769038700636634495002822272446936038503117178208799724105975904922688359916689162134669383991308108046447466347157223459839171048930248128102322236591841787957441323375042513946665450823776957703650834026600716297682608614403718110176109451855129255348848544126056982923058199880144310650603287595638077425868242249327895142122465307469609126723586868541120602415005008164354078962554167034892964821584039922401352060624704860320862563211369092226455937890323948268378298313941172015251539025226555935981829744612304625509438505638444470586179287116845584599794347599214528490287888071693889905963064580465719388666083212294615959712860323561220838940509804184459771427581355805381857465867598926382933180631457651955415454718075238511131895713190568867102195261172472527461034621248069586919110552427975487079380159857347030392678350447923002632152904680383685603530916299689782003833718708336585919849155678312617891499534053095386644192532351861789823398617779748312760120847863950320418070124142045541242337467552280443007077295656260149912459872395756145605405169284852325940279535940035007327093061175750733503176254065717878451110321435704219193217553604274591177939045138432167272223576359724513497845921939089709533859945194028592983435053886119505462137159747044255850865188503259866548887808631809907614980254357285306116892911068963137312415254474810611379480072996168137158538482726695398554032759712324879819464432924225428268379800427192291717766969413931246392254763873590996259343495173083758292170639749069251902209966660597570162838376771095620352773988719800885388686058050983970866916150284991319476466647545288427959845920941427182958322175788676944439870336432798509626981123563685038566288208767999851608386903571250411561638459258412178162756177792679316407003476121807998564111797823873771725150268300372157257047846790593921440131153932476494099990614972705877301774235679924445573814100267553535010725701140683444694394632291609834021122599529980091809848863667781477522949065977229425466144219754647116021617784526074667076518015306752708917448100960391398464891313787939677827148209571860290240725975302525196732268593190071769452581989295196517978038382586117282979091837827017338611850319857810368467165704144144519629887290568707903237791965625295487309024151835206567824065135940034046596656566642033225925611246293886180125000244888893625941278387009534201689096971651215065787185747755461366420368151522767448124030483948753119417406628379749455518549420097616957443910301382053012740973978453335877769719519928979518477745886053386538448632213704906589759125138656367156237926944345270807520329329471626935846291508593420183123835689792098111551332558569641803856945325560200212761411313809567830104222118015295852869464080044382944041448746595728371497839715358075966820417715050586458404471714969607703798787413015268880025464904017347980048840370541081119601396744564933919640572386060961698192317697282626298119817006855265131798973647549053259677124375617545789633249833321758168752844412745801549916216914416723444502955679167003301337357606620012642344310322662084359412303603562880481517642577627304462936057248137453461003585134352768872759312897289491932052998398375537060138670573306247143030340740674327875163188553236795300176160980267874727321640789754165716404093693997975897723235315515139078846042042066227948078439129564783493401683526643281497970904092904527792731950766821697676499639475090468495990902955694163689930175286888311262935326593743711582399478862595230188713693432790195764687752270604167702303296682424507748472071957286272672461881706224081328696484452287896036747520411253611407613262960811716715170645795270556094633431111128500957788967404502825943836514391118210706798488669703431921308734285963680722638458339727656159768411621656792237570567656386761696323101235832600760551433034284391895163740413722601728678313066231880011161270986737988035877654705664388238953559410653190598914700746602794847541685329656781291390256116645351843291691447054870688520678337902533111558250144800046591091117696962232299992281192088881787570199983518120687663129539468675133110307611071243581226288760970084828301309726507700412420920174075224057294956030188450543677661558346304729868076704032453702452430311329517340861204332643743109947769212784173806564958715861550778106272025572653732904975386516431454760451326039579445930811502367559199961444840573442350884412918435334130739191641089564654077607017074705110701577837196531100205072280660326064489290507979933705776437951422272346793317335106257076663799302525825925920242363998596581720395223669764678011559332231692609267524712540575809381936534508537023494863440815121905074709808475397779532519050464342352881573935571939302930468056205213671630172977262159512455440695564525710390200985552948090310260375267218616722483243041357765688376085256098304348462133392905526493712694563244070533319107832721244202564572598469080713295942802806606594848745124222729152464892002304005029454494130101451395260623395649730105350635907332900177853144065538579590697786352308549925826210175846829080911971978944175907964054164386705356678660991253467990714136080965833727395734564796507034988591370644533116398944474757525161230188726957155594681468495413933132001346294225053768279767978896040806805370909969346649573276974316847852227753835096148223024592647468862548321567985327774789421826236978906758673383508933400497134319278934330891727804879152851481647939331726765834357756384918919041013767341651318453991599520471335041221245490840497625732852806581080355215371748455465038358853526201852830270461724089965831142712975782874069532613231301353053644967472546638741431814134328141569367544319606910027275953683391458691535324546337101842251947649643600364511070394709934659523111627145741669770989023675824491287095273416778959999526173957484168726197078013385851018722254922166077352189286870217666029412959615196624328274269259991388353785671083087981408952338345326639171151672048577497367682202298413998698182165025138186197469748090390095448370099657619738231605649843019918209814736026096604385326568356280909924688202570151549606323400783747582896128627069698988426917999703538521317046995097380868998983563940014794519332013302624442598827201216306126505953164021384012114042454250526158700532374145938166510336721781965308182478926704862941892316653669986998872765143357287460909429461268296533894502919680796617919238498572239355864746226066268724894610243802040222602080029955294293514188851829166698451175478384571547279926081348117109795664596211423863583581662773977694716236194332993398230138262121787292481241368901419775132213209454176444612216148126263044412601707282364351943414308910453539806500068026121901489433108378548510484211533315476652214510994175896441379342237665476176151071348553835080540061622252145692344264937262846401912331523553863122310401548346650266299447863287139894449879581148089446241837081236102261992570649669557932846019677954538415675463797863227275414326398606974044817483610405268341223355756903034758473795095111851979243558920607238462693181685674639135880446648424072578299407177176167191584835005303283820668502525029132026453763408181467879580373814755153648901211380570528629795636521187664771836966510801212725796675351872815265072922883876322838552772912900370076701273517805961941381322710738136425559178354238349913944538371425283049013581840941598442120420140325284023103873216904134692590731602240327972127779115376116052687853868053340917898437288458534140939734074544656873242038262508582045653332502584294166889384472590487661447822844570935924497054894108918650092883778764997353175684675802001010448056052273287726522288036649907534534628934570281078153092468962786817259917544575533910440042290072221757333360556284177025847296711728057870794813476727582472561664593408636480626371685364651279046766305574665436895683297574029236464710060259333884724653931803110764111017344388457631776563367478322370911263410050526101537555197728814103873650443893967055080441844097766351042580406304257470917382858723796721474657872877599658598630428772710233693155711224376917961821991173655987589510106623383793495259076342389910371972815170155588916441568476622299820245599882519772270319384070781568208136049378086424718427007189811177690029957077745919703431295288903937688548203009010189981782906429215964107750830403799139741626489817894064401893324433341637117997312051189616523890382299064361184324352671101011339402664696716228023643372156405444192300791994256651146576003933440231127534949960383169522877452923885253650867366431213003715073108704911474744449824815476705689801668300744365365923054483732344483444888739447722636074999152552985866699603266342266117365328590752542567982177050541875269422172647671166984722850184816149885696865250197686330429713913918886516080169628239619017761594598645419232794154112106228256770723071572021293488012828340246476737194621231892998960105880904312270830244528876278207027076908553730634547055023725571459762889545653100668007097547452252510751408595901705392018653151843827043971861497023100360453624406391804018706626069498594528690157157541591451566825346186301709371832311201739142607456385080194818496342742348555913141589850405365076483337777954077942196905668451276275448997011822338566974728263399742087118695522641749107300272303151590201279036474858673836411308815344768291610015701953551122364859794951899659698028549928671260079633355859512517972453066146468408308538254878791280304744643773083976949834570342017748359669137297312202808602248938488041521570889691638324344844511222866274852731186509164468467101157370623618587598538510748950603764020177028410763372341690368431184222728611469299801471275078461597479614571796688989499194276933049441921347861269530732690080549849788028807125203110576988177675029614577783010972994135622753047364198959486454475666465368898063775857176999258355877969477314656949130313072759764922950901226276435177867104837975005089378803652228994685688355828121860379477223568641169938627729358884441384007284507633519461814100061846747526311391945394783614938824104351782062176522711776768290283003874700636527479786687415116920652329378589310391455555093338004456158046242042684986231331928623666361503331394462569871327443842033538748947216034245531647412852696563551688276302913596905829499852366859179726266334072469554606841073375578941009345988165511503173535816584281434463455171857250222196542869815242899006615980247128857513956124598842888353617252297453913769968554804695306418646138417263157489474418532080759286704486524205462740263288742377035589048604911101496628918908688402768045940993513387597433543142428211972045481957849266053269887183343234253551143447129480236390856780236072258567586315091192237535478982577121303863672708475480768106343964827374262593192661480707238060593402718919415939537393454433061831035713209383029585480969252943091852568935063393537844744430017338820625126822860130822542251261442489842463965465330109669078350817916792652215655864654796286195101351502224466825255122196094983997068424074132617279523186137522924138972616425003645043809923201727248816513223900464512591726934003411238700627353168081110573884594562939635516870870048439543433137958361595110922110423696584153211510879633482370284030705197334423202088632049266276371374013644975301664022891879764418003596684212104472504762612712809435144244015964837462835063467489683299541834148403479580682276339498836938502378140948704441600407313946181541973899645026270603482685161591733778492814497195827790904007569458247013655626240848096748039676226884308107040450394591934359330228188132481922089828402484236754414404810224731976915104661556783208116674012866798066069924212335562692670149605040078322357358394333735640974607415561557475559466612783101888424389063476829567363765330617532721366182259460617875871316909231638707386087546369014786843913330181932455048299401789354578738067660365634098741564468773173317634670821537184453340806911638883291274603312052357512538503739280290003759986775010766082147741545337249066306848873450542111617545149741200995781226256166606073236235161473167889231752424604163365431725253586303607266317308377763444419639665922674222571206094809076717272776911237556383051585946410078201690758153539110082321832036091485500194425935510604182780644733245842982772182515922146938381409154431402416869181265106240550419494694481573637524954537224062037082120780512276633327268858023292058310443612670856893713379676098347066543687089375278694823253226053661540010681990405921280296578263225772801031587540209556656284191562970263721249491932039178472550706961302425029473050060002326790080649370653877640485299736396947167830182950450490378909142902318536967400781464461903576297284846225531672184952956395517978019790571400986153032854927602085156979644151063169213325745312261541671719099975457743781126064633697437741440295867341180711876358692678785258637999496819722394184455119854282552897736993259059193147644528390065202564284613597991006690343211174422417290611134053946723168141724436342612484855995073779405399283321125572909535749696177159279538479428560476215087764830782864290947053870147604502702809462691719995502840815742818881665443210063485115703296541270649588909947528526761304093552931919266466631836511986372562636328223913247115524045265516314415865943669152128781795978309683497729571296604739408239990472919889165511896522336855006713073486504971051687785742251255229826268610176289976283598270170850231999047923821917754619974480359174020134874069785236873618915310020113342199807435803794704512652599844511377756269660626968598385433862060108183074972305070990578519789721156248637215547978258448987188963244085305287951917225563987068164780458032366106838409780457226037286100734711915451851444857663168268445127743126556384843012348719034654074640643907265489848957058169009913743471793216363709242037769958872235402026937188809409962658100038750210363881375170444133206350889670976908356214700480565219203569039542072070280592057425841271179740519688099008496757021370283647141451240457493484409621904649103114133744585451890289271686809985888433751273358111618652754176522308123520166721968009303301376491801783950131530793334236560885801548627709685418687178956631626914817441050506669360881647421002661714499281380303292488597430425451525485115329352572487281223303359140641927637179581239555838948003103973019530235763716291166011037810926454677559545555829384622697547859042765461436335812871783343910465504665389921117992448722218227841088222985148785078998714834359878125700314499206842810451621446184535480867774453479022167257931079888785083981774011164261125762907091558505686136668409212510052511900230450405003131288258828472518381663028025552832060582938691847805121577553334211596839584147242966338535646331832634176829237412502709843729165369145480862979364226012701479508082941321097386543755103184269139266305842921596297635784437909693953160143280115536614818409593198987387578075843629290763575312006669650008240222089631485781400553258819338649895845000270309587350827743383896817226087470419467421918264465344489886256906491062135664580771983406195957019762622758350052651818285117939234254267020143929943895823299927071927582654163596323228272019106475730575175191292871114800730162553135480675795729886763395735911506442687242012146733968797104178971513843311385530779643103689958209131179106147910219462006603904000907342192891126720060568165900090161400622878016022529602831337106251200268144950188074554946415963106025455907646121972584548256341812813291912616037869115976444153631103842950202648288690962317695829570043432327177904270059838772516724261297343850817506157669242558992584597521971403578293911080780643900674967861761808378519886633132880555856929535966752461243446804416250825980794021205311825367712294824182482065749801824770178973412152823527549356411776296798264706383168373556040229140695911236959511495523069016549609112254895829342188736309591552107143044989076150629383216670618294871607839293401215370417907146851607452352666761314155675360352071676328158111341197081408731554127648586429706578903283974727476950366575764398636956942454614306995468960440281562470795925377857111050862811661787315119195873183136347733415381902457271314083064151594192545992163097192639213024846603095511188247832082637382467186779018173502726862938532782573808994055878017867820500484330652084001728364247519496153735476213560335519989157881010768113221627520160063751863980667426466636756901688731455120801804868037408846060384797861891535730327147460498396850083605906177552867628617790687230398622231541644810087982814007341377059586749939031687000485986820626600410137940700147814192733760979163624011781725459031365841405047706005746422236255324587573685128319985753863011344872578020886279271599220248497467773173196058037622262476769112189601032910148689766430485449697741892042727177020821518315976343918261844671246092817610577836316399594001211140017676805028747655281791146288847761938310975318708002659496063865110270805982276871527169489127095309928870053220607773608862834709161114320939395965357244605504639089011173864623533360799242130797764607613310850902544606989032708853244241433923227008581352501040460599938652528831090603557065875062880632793076416020161271677853185859656142269573299893275037517054924363007573444895282048650179374094093515717229822082305617255733462740704902851291323570899926789632214373406625508102183076292557698040206246865575904278641520770107784592784562077100665213034153598229734413568013990685791068802839783916859691578152192585375672788425210868498212386289740054896962370330606828879565068427965379963582803865367579083804175367915041909021001125635986912233971592117630818475718667693653670439175666718013627707957034445755379147150391867417146302621808701685494868433433960964912446041944625245656375637627321467929458189714325836779569885145471181262510341884824120946898090190619984434529258524877043157839516018780519670280974903089271696512427650552236473602504707953440146638950627573972601633283343386534898851827046965500510798375776397215600539807227438453571926923065546204708753770333150159955228901321101006462186600739871461783089836750062105953159351974808014558740528038892681288604153440570707484469782665307986840867733794248579330047386003534791445386479098347510940811189996572100583066516014598630995283488855866342247999610183037920497966875538691950551543655324711253461701499739165367451760113619825820531621007653159158300465605542625623227604397207309814621279648907702209196256286616780894871334863513167951206453150141843566731111642805905357706369262343032195897725558904758565615869552033349419866361037134101744361953053422793103675300001905215814393528983409841631267504893284695653877339517573886550268192653499977547140126311046480025310241909160030484586165517984492155724333182611921173653895444220635539969180329367177956053722791267894999186378018143282326350211144706450272396447584789305956362600279240144711256063442336940080777888686936731204422292721512106793021887392916655801666531415603174375220746222489632721062546959839584761537528726072694695333363318149948724603211132106915142887545646406677713954859893556268193651508638444648509437481337062648121178154594636908714129066472396840960831195358865229730006676081999161297423165422753417678756524091455864608854320196542271520424953889843926130516611789873462242124103749731304501428227392564300501261640736270331338917464209118668504134797578463321375905517015158988321680913773769766305311207038341676422694649575201235900469499484622031972873815971333536710283877268006677355656530694283036608966044760265128185848846897987480657607902787528488497441772273536449862268790082008568709440886504117639717484334022807148079613144849646797141077232185686654265237107851330452013255419270709525534799552542869379563502849495981371036100462075347992640284284742110180878427791024972141526930217735839602290969868860186338556585377524132319817534955167839085006900293650838053479866625375124254273992708818754992829782768474793708815836103498085417658352281600823811145994583382073530887214519183909428943475318036982309889115255983531910399019560295232498767215850791804610677202270495438056074658859474767715789230099289578911951887599636579401394922523495393062910275631211336558083125536857804147347820631241683612811964660603578630670199751075463735925450562848610665410919059214154698136355244600087349139505682013044348038609019119370651137300707699808432004833639829954473649314517627607334678737555601492593914925911021578311645523741660639832335028156710246933123775382084122845470952673666029117716543195462925758675291644728960906106677971425067475773124106907513579436863026980361692020321667822430184891294058527576412589619987563842274013829255240561485072391611435313206341972182647231964107853431027982665717717853474098154936613854243034218166254808477773064971072357436898358840204735582735207269008388386031825755117768452468124598172235924465267231657625023698356759128156565468196746621827824824529648136877649592723346342699386990518304328813310985435360073152733942100550755176090883903705628123993594731463280077884941054878681037878484208715085711994863525402445888048327804675322248026681622955076142183583343326056824486852823819967909587796745477853754963822989179265146514394665589947001694763095414936369280066374280975099670797224093460698307552500340874034867565755035256338853659397363894489600594009223117562558668910427292124402255102626341253822133254323970994715660626966429905976145451837910678013059808375958972917521706785374286821186499785255231605237855400447603406992975918923583034801655441964519157340857971390386547556686567110123300642749049729958205569626943612368687267517049563048508943037818360232745100701615423343691244971038442330062473633457511302447396690954935617889772173312283297436585187522450912806099656298461841835686938123249436012718365458826425511851214050032039211119950311726002477414297585561027747382882496659974167902673877877817470932996600704595860681966938605259277153446242997262968388074176607153829283417221412076603667356586871937006977391780945691244349220618987907746838156357813556138965436429537263627866352069969994290753759965372702157555826224134695033052586151056470267006942867441845522640473649681199474652196409804574445222101173152419136609110680884322398033050722200782109303352568225588886266527399006601434782499083028359981092915311885596960866230751870359605236189014836622943259020884129892139660884398787511139800470457083377000787152474933555757423137937619123480826867827194752271730027003223434939254299174560831769459269183024210676031035080839476853123122818697339172609458254282082427084375027724708911452746619924046546532973030656611608202050166815863328492964071945641218833575518017553261532222343138617589415736845959041815612809247650870182255276074166645835300949960428590722339201057667667051819451933348310506120779151832946274451291800833575869236888819033639558576116368789341953839899585948962417772544694351389454472946052259226189438001417991833810229454033991152815451725071512197594937714065536502222315264414768101811758589248350935216063892049999940249222214343512772485147351465169695877832813125562880100904833162246368987683827701220115061869208095453278594160491289629202800974544697165561977271012776538067667095495398590442494822205096296435572809677685366656176004841820329572927458914816620627221230313690265572590355427790293614339468505699451910096963643035039093509415845617773366523197601247431300460505853128976510006428772306785626773915100484936840819834136830333691157302676404961921080231793683506458549131835275683676461374217713114257440663925567595171237032843695789549921686062638210556727680130306127507104908357421803735012842727128103278259400643026963527535350253426521621355944544423145192418754112433480427505684856817744921279615374285057692396516239118574772999882993365923556258082931004838964620523358509030815607843577579672753156636691239365821008847326338237245243449827150247185664602955283803700019851374642981245382743197640369225489672210263609649368336505516715206465681584686144649467245106321558968542423207535913049943528150529369310170082610764286157156378850429076876128200061490071976444721360568986515779544534915174252137547217550139189671851524611646293169999204510521147367546226735504788433544211074502365941852938250922379944947062457308206591130439261169860010690980969571077014052549596180359980305937176742845895902079374468355831482853497302409814756050108248876986225012043229306835701777507083145266962783536654139506618405609824891036463633753322477221366957682726782000705399709746749602499438994151724522818267325092970406319645515526210094012052275312676598272759648701144641799588959093472827582283448807626199997380694715216323465405571418523622824997896094844102945622958545663306333108721469834662337764086940097830866186346739912772889688884273282068220740778543140256394707121633313987303792427637088018617714253050728184678449868216511108512623842042845074466466435883159832818112191849588337184656813294213644364000834751710856094437750886083585258030952159149824129136062261070488593588050665006755148045871336707805740450280062101488504378724614781473320672077849905613628360300799506546476591676741021089854877718472570081378331091541372204599394781761312496516650996207951023384243537436594305100286795995546334785143835021728561062671195633309981482561297713985210413136291505509481215349145469570602737534605060625760428687294980092121637198989499528666634382744046353680148034413019012640356925174904001576744648200725523534662690455614033366659395302098840017107360281038369786994648601097605248426819187904133545517679919563398889276624918373660306482379019515301996182804600165744162832292624991385437266378976688544774204298803248584700975663711199060985943195157901098144963784490620713411403130526125200895144876501489145744809590311440141854748605342056048318553943332563341390588618467376542521650750689637633388484032349741615815465369389051255912951682716482585112653227334716634101899421062115725319260797352984521428942246346629059870994902929797604509422051166938765220262307634353641086896793391531832383622488890665971954083130906376456795134493552172940035004576510548287720252918731772619237316237217116217374129575626744794821742243659047588405123156296001359084961838310822533449530216224330351064507453655916116022257204166952100736763478483750957672224093746726378026927077218543283263406816630558727987194278362150977718436901267504472721343782549200292436531738129257900829316377888460092964446450376338744652333834916123359972407485909154048268967882940458509523342537540503074315758630331157916483083380192872345667289297838986119538768114353734200679431885683072627053687134251308799757578619514729619193105450133188787331260586331367026743342788526241293287113030384329963507285572263238741140389631513176282820464146134313005057139888583671307725717732984699535050369662013748273259543800344187623544000635940804850031771602032546200215472031701226411169605880756523691619166241900005655865789240485329504175740582281300069930065001398813791858365975904369337204639559348108042453938601054307707063531866770193996296472516212224761674267227115043602091984276439876427846868380480865421899136465705526096619496441308621620537142578414830158129553672500680288770547230569309566275606941944086279231375180759936150739442129384587359296301286263254589429459958490290406618383413836248592294305577185481362395583311849028807027495873729804328474924041240470402194297267324248248122348811171234900439045734810237925809377359964350695275854330455725856012639636913442376041518431339539302513859704931047832528185064605263397068252871507688195450688792801942542490130493558436490834557219725546844171411443598870553571087235236662443117775331748682442087479084832172680266639489774830077855657219859948988236944748891555957896812426470153877857114233728300609718559804178757848176845763712121348379392079200789291161532021676711515676945212621558319615081975619113389332020521559050597709035298342192600542269868755884719137312286694760840278609025418075918762954541930168444422940502234138494885991709733383761584872837376489204936771752616913971896239211855191453331968024046765229465385471231599874198042933784003540799260390853209786128931362965176982690557763608338612484062193664292413545204017182839339115746652858723121596432246371660003958006647318508422664648671951266551246660120232430015246603805679034735219511022017657773066758040230162974644781889463512253823808844181171617254592847860419218099159837425859513827245896155249300650519938309057740541375841754639061761967298800976170127855407217450052465541627506250715701732805688215010833703254452533927612206321589046801382683081419868780237468528639298884503522416261452186217274197746836240450634317267713029150896212574512715309694786773681584765241931918917280352255753407825407941733992731563214001395697235892940355518170547588616130241868692321659162556543549851597176481185266605678655491646316131165534971841425164734318302102678024381817879536092888984840949692401814586071283061751250268361430965488232419492311897175334641156756878783118131680469410731540164075302680570583243613552789363678397144923129404939872827678099467892800869422830024259719505462189452772173354332039027127891545461114176308670570603489518292081497910660436546504824306234590486137153895654974313152923721897106899199432310908548270944708173215108288564320505385368806582576844269096048165591534720920397687067618346298938274889279889645297800300963333460817633730153452715748425704522818312009184502894421044014579437743284486100276457381859014401857555573619256403972522132525451289480135576447586391893657723380139523782727984966161472567458710991253597046142284998843420758589607083591281690438587347575686233993320981079064853353478363355759298473473561734788214959269418371881715487633947073439840213325707862194730787829878209272561975928276798592715426546387544373791344647916062609946659200427583034084789579602079189153865314597253149320945268004155511485420818756583526954173429608656805366194845205061382822094720347487672586809305772964672218006565824905956272240302091194404066587172975917567127647261914173897158219403736217893320290429579075115740100188660312822074570507943857886749607743698850827894327476748890749309902779996243659574342519373117980824374613558379660846048366635003623868177193896703344799141363637548776043107604922525417676381950669119715749897508375670931776615376404185938622035275200915626493599835728496548541947114466578501047274928991593969447620421038225792806085095837828985820901312492157635818002898924656048849207512683523583698552608822139664199402872756292913581083290981104622893275323769873074912544639222926702062101838399287668119335521948177301698786936420838812586376216300199212478011441172695796824058508766208477530036549859008960323086529836752640971374418724875418862459272585692006672813494064180987462999675572290436287906475500326504637967041493645482066024036146942543499162842004082349837535267104246631694042047535223127729816207561711553039995174327695635135233445768925182074675619862911943350187531337189870053567093811346685293812891822873945008995001891185141204152622221367555084437339340243593445106930493267735815012460426357127475818246530491890001792556611194065634066227151913217618830274050480982590901358954031039581657343758480457880899223352935305118406864090665894465395271702433024773647657607536060166483295718790399942361018457103783637101663992715760109862293360032820724763380286069767262980234947028741495936581397320726948007355847896671206494422248813658712912541484662545848340297474534525570014670474107653613851148872728023506593897576847069317854423354035028608206532353873029905869119727139747171330657886223780977342798897117410262979602114820385350096607729474920631643420468000212343058541322443034908699623278749526618909579398255837511708602790204560939242527284485238758839153262429344067486296081261421438471033010568467144566459807448672110779606670567654640145764436615556577589270557310646546240765780544258185962010944439104716274496712573117983798144556060451249059070264103923078508696697880540906919202695656593036232694694852384542795000893948813881396931752565439054042415281395438200403609827409879882447563377358839848681526623773380465507610936267368498266878788368741506913694866100050494937978698136507750588646359150449634217638208978432714577062972244676556894519334724941234493464947230072899737647107950906053837762834815920114318918205804055936123332898086741785087960890876342312059885336823731270348760362050800460122552419973638951442570793325889244656082144714236600140159603528333166342177664772655788085183062327577546307409145541167564294543279248026476464073796970374047407200137269353878141864649710737066338703347049307898292028376276785522772171586478468082708698561572553354183595926133776834529289287983364157832722557012966385775008358699133342964030397748116635181901770415339992005667580670832153915738738642731511740637765143787473922555761191860329149106186835243598161011175978275377395529762475609574569211828130642791743753362609582946722889061996421908261286455960031162690990118051956279211280865868350161677885257319880876250704825088463433398258560320562134416493856793241057740581189378458913486059730231002444514090841486578997738940314122254500204889701907521330894547932796729954307069194800334166008167719014905129006241972914367385280310023302630491837141978296031673976680696016949729745174414782500040198235558487399528289237204831851475247425941516281720722422677528664988370083124323321029725753452852124257259071528265581808938981681831758471565035830577917693693947700419015837360827197920587026122526178762772478514145454136323852124462041136884735018486438494506692948322234450369471593818743139403626283549218225747000758695441837005574472408703745107927076467076404649396879209882125052990222596404844739863644644789401948365740772500490117214566039558096439125023838514394451912065065636321519129742155477080946552975604498889118917023418444640668143573239632268965534683458078566954857596151626848279957808348982715464057143199319098335474102885568305603726617921724589959272333360786324296914021791691806984069163043130938809661727284973600150507524043287871516619540077349565502890864641053506972787502615607723325495269881809918852494255364225787883709079367442542903625412664623216088339221526877622259029368230773175460522497776138198362981261482817978164405743790076825766005025868186593037816069077663277909174911016203163977413038633859072117878624096754828999345191652829906477692818902283480486507243918473678794776441107899300418523314429985349959303358174321653933843276063137936703664871626820428017565699282660807015938708279998694081209131386724648096746601138860404619764405543108104670197367986686544604586543495979262144420956396500665059553239069635006162963762504171651984561432565474818515679723245334989074689037842416590892781969652423628261800592523367959944729750872765476236828089924879091631555029532998081566245770539129584819926844687686372791215854905265082378081054426811016512203642333194460681873449336206394817539809393662321505308789996921152030626800685270232298045220279668082145360971894656739161227219388481405745902519033976356463849578806144682155870268718307546493259935419834789033061658330951140472926841778521241833475531979229644948201972993535695042243549704883443211456284043671749707713593332253519914900404972626232299951596438636121497906516797026270781140770788475773450263124963264771500787947614943093422325575980086855167928474608878802358288586316735834710003370366567520041296548993502105094490184663684715718750499156043323876668349502842186505283426694081615156259100278386797900278690283848342155261033638250623889784198782891907106266512364836567365135002746306226082778475095372681903250038533534579632340832587286409238354414823220410057031628583254513407711207364743772049334133908952227024053766809843833210368341507989561677013249384100530313771455646277511445991523197936700813901437836852106101751284885507693342098900463943468520460614420199883778378457417472664733016094211110571535517156336083566759067075440412043702565036788844720392114070773161663728501947564339418711430036869574772528630243772299541864086869841189873466127760824348490814362984630937046019431797418866529950227630633494945246627174304912896282473395541255435345445393428848427253887933944459699297866930108062520091958101273481340512536300653234338132427308470544054298738043678870428726126599793436706831159768410313029715787767981089301570693450560922786512531173767323391217336221730143123433932594707694717585980498911246219155703009089608478008450192548191729260444424218878801738295682906541965393068518060583013280960162289208956050118560055071377759933982749961232322180056537686884998028001934469993913931994986067805660485369425752729771872923521092716459734203402551971308581018874209066043914230722003556133861171370625675325285996866120588865179758976424874446300417441518506738186009232713753123826322383446086966322284246015733907633916414081948898529020006520862328243277105380245210421140902173291052147697112946507997511258448545727404101938783388020830053611820935618590258335257208912645830886008442735344611899455923675333299776889677684001188456572904272089943276978571934142624445436657663169833248711895132017958871769848832306424949227266443717514535894650560199342479252621208954596797271469373873205776847889081950426891547644039224195566800319664963119284385975911540036533755549407972914986897914698954007884429449007752335983505621387800114183733693712311617793892811979052312825413304366390278938907034525209058482274547272957544749474600497092864041893243806899016123029523314489143562296525921655760749110234018709629814586515631064343958059597640154843580166641260384154062608242494723386986341333385587591080173075476096216098885171669561767944310839567574477073863205970559575391225232764582344762059221367523985270825495511016323814201936119017262858004628798945179860154685398972198232761881945882641651423120949936677226371217242785663596072738446532140061607261758321501532444800724301763799858497157196718567051725095249706715570960167741587042534854059221028413445946789683949343913270161049896583217500693397417700073811193896718744214684497322144052687660172375471402711132328998493479171586097200073245334689970069079023378120503518860921247220469900026176966333882556476782302189416479468615053223548065467082721459273913288569295987435900044526371056273529909153119095879076378668179205313970871487521564374661088720021245877238840345196508923774803663079903955723511133023072090059081615637947676144074780374667870876449573571855177033633660328291127170542145270506757080335290193209357792511367865073994235209237249496105270908444154363050615074480854197077127344432115108257401476354823989296427169883099201470256077246139339513833836202419932564874367460722207447670505369258871204243650324633156763256066661945603053640088174788587336179550197315786223907411046279939121315926340394072592381824203597069426785415365998371837168613084901235555952314532370004650022326385681676976513483634643049030551753268934868453410134570339616318257507416563589263020419601654325808244151156285062980142538540814012827013274310719468332327253782565890597584289361394357735661611875617711136485152589223643783228261601814252479028680216387663203436060465010025547043032203447594212651954300176991785628936570526281751984001586973956832559324805881895335632630620999713925403081169027494215058121756473757078581088933123823794697079346148804247194780747388510587306612487241214516041791672642899816907334696632726927838425647092467464549040790997154151889363502023634630963960671928617267776022093610090697771481335547827918890551625463352769752988454241925212319322961632458499976055076000213392822208491538208825151263851166718768548153900884990102689576577525543412834846606047715709362841699501209688847027108130808951321870839971198994938409004743835195482753683159532006408263029260139328855024436462756502378602345163980586288231791479872252194166763077121498222894562000338922350421196596130799411569185707427845955545466447332682550880019636314795974809590389952599886662010647869965218364883504429083518218435198301408142733420753829231920368036807466013522067329308859550712405706130626904033173843758968464153209090673540027630164100998835104357640874561220137767179434075861088601087171461246449724416370030327812908474146635905536091842737845484595763074645275991921716155418156885680528136577815893069258928956324230779685320168050839842903163681253311724473684035797286949598428445118684733802364110293663421717248643008390099754395198119053433444637930288033818251635152483099916110920068006509428788038433957560351151757522920077615847558811455225275575809455082728812822647223800552471091849442734482769395148344549933079940433161467358297887002448605889676654244486500266907266233474911725469903614679604218018010167311097174405480750491094193489511467792434849212129287723236404498500098568564455765545570249034305041961520495516223509593490293197327336354264244561149510160183967894052677513721306702437907759787187693567169029223425909930560316793711397394617433990185837463810621323656744487455281230955589867161730924766115138561395849260164315089715640673857235373901214777981655222009739572836209168937631751186424802283797582651324028709379523519616769188998421402425036215313675348158209986655551779562472824576463319236805819868874231068212431127303103134784564338747382193482962880959761078257143410525350134366359777208790526202009629941384079071095228405054435452800442492217788766461483396004314485936850384391282396296401371671323259227823584112135795595438204269369882087807826714668748405176639151206168640669048808627127960147645940516672010010485478280749677335998093276493748005388270629457706595503718379580085074550869569439096262001945313923185497101637290894937549471941959087679537384683065753859508979625893680586869926634672471476787771627018031639112000004465293887495581655463960360731563007570036647991503464065859215437288634053495632341567453555263069643768131738347220466898633783132326019557899948672914379064743021034188435719938750567712460893568217764512717734350164617894445637769854596402506293111392879784241796077348628730776678194572432230036873227764451797290941471625342451363163481791816693738939270794572713683009961319196582136491250724445368571855678803239185867047616865388297520010444627983612267958164655461779091027251221860626481375898878366961152771899165065272067698610657006454277157655694436239679312438220981889781291980037200877888268963331601163198005923970673609806559457585096036792726173458087345863391275133331700164515036944840117794391431186256089452371332117849272795583699885268619292039514881660854239706841939820172487755665257164457703785789781323866736031393886053253183447703438298013757919837162313168380344077778091525560463801686268176631612948282910723783882301741327441637688390909451637713065131140661974461351301678196145667988389119522974830660472986319310382448964682958777566657185258432224515445309495826262442423582860487536140516391990420520374502264967769783460497216371130726241485835958857286063333641643830398246780325729170709303329720483974282010933819128789645198128369419050686578637877875150381389035673063941822227049748100520417390793132249170744191650324932180160517467181339630690199209128945776307153757728265930756132671842103866306860196193889537337072834943404275191220352776527138548896604583126338618021786130896234701502668525504841625171289019662396192102007212153172567584414748236581108374584586071588420132931718439769794202680806719977640042328647829978812019254350627650212665687875456107424590829485352061017348986961594190256559327193885351601708456813212678790184324141438376392634837190281899502455382781343894724566351786292057021197802538249785064638479148353157977719910408127036930061905512151305378013151666781234511780327802316155341251194886885357392274215472742830621940123900767968289913068099764277056867199509715843963641266865529414075804736277283481614341956062497886466254610153980505041639019485147621757627679542193028606968142386067807956638940284429008099219168206564759391125477562582101738957033725968120264038979656322242322443291959309683730596638955555959557895681111677601650778898102316840712616175359088302935955075255765390660443392904436488293233601883615702565628545817657583870818495874529233804919594296594118525455171254134378950815559520646402542536516056889443339783845826179452864058576224217914228775873442418166248021194941373614147472579114787976625644840253492044277071902465866594301190415171202332690001602550393757073932380318418365689256206676549066101298436894165667919880543367285448429180341720851487642118614413071066127617396981898294241496121317398556145524243865462701957486787849203880788277585114364420802770501444960464607013143446656428060737588158958381589567099947909267316897698426837453296918132674437853942473730012004544907182095891450783081897265581653043468632407932121719180072054160816241227380507278878601283469988730386700653375463628970942844145089995608575740147891226955789787664255842691424998542882948136534372070535886381589682316265958698268554185582385370389012295402480993908110861114877852073765533485289041187099673542098776660213647178140356574197643528145484394449678398918072636340190961949196947370701821224038086052104288475756402808874844323413773441970161184736694586248354875643834295481562096870790945380059516206306523295706833341902466869786158922114497905192966386436245242585681440656590677131806135025439148635672776712139495115156124743896275437494984187602431712736931526481396313510911600696680085588774682053665776181544845558226704193787584910010114736221949375174470168444140576336645903327575619656866770884541324194445378972122715262898463595251161915145245287670891228093456153233335830616482015434160320882140820143309804985284332051316113414831326877865171481797243477545052035428302005905207673140141423271882771225820399368515319876234396127129738701157468774522930658949937107529600829039445332824777876336108468009885123556511900781244755353953057322702312792835972998760855584181636907215116280776579427041447867096732764743620295730203579791257127789800227777490506506715731417792126713500234976874652127115506411914990434004103864372009943057852356382250146553250887154177446413460118171998211391896169494259480981343076523489203816245004160505430809111974434788748544522600678870058404339516186085179129504944163353929111669392487887363586214797480652883721860250513988032518963886767179251413177589250400833260238573292814611878174377567493573890742563967655876237564848416904600339334388354898977754536784434600297020159655099441018708549800761818309776999283934630885377260931320336850667746152751142297136738640609178596946954131374121356305957274850361790622401538877429004257745744945014713467927716052241515780683796744874655851578344533600133084342506673567296170952656106945002399959871525084505108183411999522284611938134749827301028425512778268928677143298506250062665744210672380051290199092699545852621426837343796682750163319142018396415254989114027414005366550772651004217957878643026448318603724074326568425165021425181939399305064363253910012996009089520083636153824694673196198401012474243589570514520462229620605976213524559108213947269810069032856116168878746192888971113183201294492746396190796713574907895303602088522011083133911292298011960553599084589718374525082737613878123761505646188326883725981333978388613979515000923671023545593297573687034087805261194473467928702904927225340471925225785685046947594882299575461654637426626472040791697260344013822259918000284027452710360211320350030965604027340141012173020208095989749947741300632880212409273009618616164339447032222842695971088686507393660885886699204110167390439276064564580588804235643399349747201740585811599695486276412679440841403331861040806232500555305443410829348433088520109116804061339444799117685084960719083989041552240259411139693634158429361338729172032895706764025820644472227750099863948457395336384257890136015866157169634775171991630451878759130044834824924697121413609508306067719429246796508290516748817990782754551801774749038745285924783668920848182007426049192917339651414962711516100869354083935179805983210952589729660870035217679827410576297461780110277232876193409538536678395990816193616839372349547070653068579873212199390745426349738377469406141059300699472517467868050385531317607509014084222199999688153061661948326227477780324544742760332727001784344891469984473978429966695140121268295534041812804781182266893450646527481207071519967393140587681939172450396289029646083054866596257116124409438064646574068134473198459214521421852954056928575248652866749299700657142921208362044231610021005485966477123685954842815952679791729312000991681024071073950830284303621440520808250984972323382824623798190658361063817922717802382967388137569476656583392817959722240813893081308572811728472199994068444906872527187873478218603076677712896915220734732290049573210517010289842545670089807969444614049153648679389082803379835452510259046345869400987605687682845349685842238726419224883348559420622970633074328271962805450291300224106506378596138169990228093683210778857272283197967453302773218161720238381690218406643003983609941708254682337922787529401573092552560095675574901414810910721846633338115810777831860000075460466879187366180063146935069688334102215629766409657149090415108385360080552771493659252722794837922713495925448358748603976597197234402554527116481435890525128256267975196521846709604183331387904635403073853247083804962817016524554626204981034099141330023242404199518304692007539501954615759167162405257919559809383491276567578479597117025981651703574776108968190305243899334815303330383791754002220533034585016436824455894057821633850304549392376068325912910933699213098181306234046122499509576609061424996113913624868834070934494352092391104051566355603727937630905641329039942013848844903573795626323383033120510686363698129028586296499772981780990434009587199550983835257461547201431787046625370522536596163943158704487966109353956523504156337603103135701167347518575657955229266532134575065989985559788132033822079667941252455161711470768137752296563682729293662672785027571685341745156751315248240361490545030522050562812960855033049421559339095560994010299785104898713478914440097392002832967042204886699596392610261078452414827467345424589312302661882489634809598994013291997719186133271580843328659205305995554030606266474135981649791414082704602904198513671562902069549063928003448594887405509528223460316061332681679460378942208879017166558573016844071065638430298033232028663609043380197876553588454033481722656963878381058009953323227211345457141195551713097085602454511610106414421966060640696615411992703271922514638230074518911866544745858496180884920992620155547271901553759893939667618665677563767250891805433292358449869037095953357037969469144702122341083915378583559202323732206484628881067941090755143366024169601023060119439508112053639657905921560891673354980556787903338439296717247020263662467017279357154126271704045196731897417656471208857354432123988045394162382763070591313615164758266334322690682760878073201164239844127465815642828657620055098053875432202252895733515684346843340318867504176440877293229766181496876039264539023952451041166897395249553209378241313858948374396728717265415301654442478365157592423183035943603806380625366220499721670736623161068077382608901403513514204518884188618474851673025572642825346557985323140238847507524215234751206799988254588256788061259138686927153013550380747066368376249089863545612768781890050828513880041830743015958037843226663417997609901536729799508711946558832891588479562598186377331028045835555340504877317427210569178330709987709655034485213113458135099049428015446875731162549042351853441191265444552352090684896795713196611942194366632342148969571527054169594301342639428864164362826044814713048288052425487492281674085033106323222891816758860379480025948222392526735045020770624675099777519749924794194692945677228768905099103416587589116541906160395109738904726872031147347551084605359932046268523310351160160085847442793787178171733815339123244019469992438957623523722475598795525977927215750961328150138256533542169617549270603560396011353903885514140381400552999191666747791038441857185434181673461456237038928029497344765288100895122473434025993126884971763612455656268385544552117634230760412950574074418879449139194330361876719532077541074134842741496179848246985844392139150777237755976163951695163280128539324674149183875398712649878070475815524731335513296599445542035365752231163150385216012743992777310130675091494611609873809618250984901580286919507114691867502937428524799246942765932288455247520428491171900494420307653313688387129150643298162403223092292227687349566846977223598232869832460851700653669795247419838499554482163999725748706866676657866132746239695884628156925108945443782344840651224836563493727007320749986856447583867558237403343905097338105200261154454727415493107070802143299381814814768581889367919022506844287367000467241747040862609717022686254464022629570610079863697319972159740295443041489418779244974313007142951820812648076224039349476542905127231717471982122400200500694502965253972112927273144463295152667325729005178470882558474482842877913139093685412274412738909474532826581757148440147926209703802730264479615878624139207952837764983496377914496725471923619200533728748612226817381961190276056986926516730620221509849546219240059366770362158550612780838024034868108774423358644159323027795002020325799156348643058222582495906712082587656236770647407799895183441560568378402184057668151557731053828212261701141487444454013377084858295881284170140139153432047776404664190719307472163238883669549657740638778493957733823517496380712718515161584807659724664699145938043271727499191864887648063159308999076620931813672056182342789197649576465553826208062325181671228662035128030219116863735435110610037333557178674891990577847416248661270274688879320229934056449901127421449884254578475624331127122212122830540246956974905972458939901831789064504120592859973725063641009928503833061707679020107262798304384036125270796527504010880195378900573073506703512023874114594366413557185753271121220457167563815763983477489209934316137179818041870028318801602628280971968288343261703617106831094719531034141294495888175096300272747709249713339957792375863361562826011735298512236776350564691572412280435303256827352443072862695477991065362122913549900409241194534724980562886824400325519365381110451059403028443675698446522503092762866283274749256132680772722466506921604438233422586796194774409617872413971835001142783837550035987555659389038693572066177477920886464564594935840400984103467779075664704633175958068577060662998888881204721491452416190928216049914974557812887931077890760976977861951600122142278630259199663483648073370177057970365394859556305653262339758661214864964162131499106156507024548260983235273822115122772205166693189082974810579560016198606460613696927062511150406647756034167212636585977914095404593660143822622129615805873596958667810598999682548509847221982538161391012706767055600230745718785047801261181010004514993146998478828260037658631548467543192576942474854456970876516943492938768325580866803583396155648862303645338289076764999500624225120563861744464833630750741401555090164953830223777746071272598361061502221785102690018246186520875523265144766754023123048913561500516414900184731409361523704752402971085010760950095264612883066830142917573603744928382981645057717965020143796714655796789101358279709873152747626966136325148719926741632218715170374740006288540867411214352730632744947646022301181970909059983167382024129073253369986837553386091169749549470879427614764599850398380926788963638452543636701681506521368758487260229989834745467981185321922445875625097505798933732683869675495028909629033467493871890461870518232318412111891212718695045524592821927310944322315594876267610687397516008891204377657342276966607987494638184604769965277547820313745394406059887835508982532915390391433683963821954152526141571004844029601534266332265420284052323312951871708478954233237441917785090984216713683730974214372094464329891853493689394891680737109352532271768061633403973715949581289848786488539347586325359138462801145853343663081953256509272873275590431618294255440518891245646746700652849916605302530680223054415822424861732359301657661069395998698668605991937239259697078246612858417105180925987075835054367050499813813821087369495600461248473864358940039611275048809017644935409926469851430530574497858762658541131650533400132738012881734402054614458635657311346643662314716008524379388827930727420193225687494829922138718107138431223068588066234969950920328347903545311389296410087413460268157422870313428288486269754429053343807721452333433951308829898406381961024209547628571970321873357934607649639978721773775336798494258786439712096554706933055849547999013495340255887076039014078312646227804716461445060666585587341124111953864493079436422505968677233614525779612366914880065825579555664243025196557077129308107090831864371683684521958615541278201782284589743372867260542682531790670700538241702652747262679969334596889674577030189086822017587091533898430639074468556517986150450400705455589247936583662260517263019067529634728797769636286306134131585951830252060487048197610441286179540833916399509960269201816237876477862643637872764015422388687424339697749513329644018309612244293950829730817272002063459653691966372377901326765062661450831664084018482792635548878730046727455900671499609376643924938338524287533816595218887998874735776115447843596344238758415888848885153197004058135979351042006235030316028252117561643588629086536157298107491207529688364126899450393613349420758901698308633982915386580800958375561145100482180410499407943485111712576576200351596720808576653682617296963147896440777137551374192619932105869593780930637625884852491122796586211578399794995563640111116912464206264732780217170301312424134499331663968265946834645009034898782432061411317018397487361127685976134693767501295380761890400461245725519084401306079779936037413176100901796385365972487325638796841353510293774327510509530083152755528806357684238771960315063246129181615018490662507148912124760211302707272387050968792942794841673576636340585455862469123344756761455454386341949432510450978237617624328140527960718968372668155407894027922857262629982116628066180592494760966491875917637968849052002606638104813919535736327241883381403012969609738211718417171711029422865688339148796343686018249118286766582324195692165166547701805227664909076682687470304467158862337595923144195209283459637045882142330091665573977978793348090188343878672806653344129078257468370624827368764940629949613219065878005770360568461773397925438160014398197090493705433201071313083990737947941157892921390810820458326954849971217327755946670089696108546717831205986425278016824410317090853156186158554418415123634135755291367433289632122901450576785992085968655492781685255018394903531250816385973964726233057800712057680282826289979882765423034864538147849961955225791064445252789210463249091955351314120172486709445835465147464854960139442189566777011139148510684238106096300551790622697269982557076040576104962983807716498386474459253967223196639293794050653814304163925160808736514834031802423421593251119775555674724658988903129894862768405133718373079944658134307676464606777888512958223879072262531348780604513999642562527875470492147677396795218347226551238158114031757039641566440859050741433545835751108542777383703128198432897350128055923651001697370748949408550102375864533966284019207847036044971996660148952954761438086128850443589936814578246572191285652039259207398851674050113548101035591706071461318665801995932964858612592819973816227877943407142601438409905717199914782293383911199978978286902483921724080520102779878647060635836670977701811491849641793621063903317319428710729415753832572842261887642802634349527819263229606874158489921390976718588217267971215733229738460437447623735730546291817397661765350458954171173459458448356364031096742092107953990723865797621618669431372089010653644148980287589076626950315975783944959237631338734947015384806365205932327144832165731923178221995001859386797049345730623479317679623377556935079218289546744669021659162578879281744189239367935081493781158493457730754640453474772532193215873952266031108976728021293710312397722519016681388960999885674293697165847728927423241652550211887466025820681154193900995012078053073094535787384446393029213605823639306455560591791389637388052483204863873741141308173983801009486549559541762707336109862402606327249340751375167458276617097463224217890145991263151653264151896519879813217804856540993230466654704888927450969829946131062445890873649812474529567924199410805575051331063187394975356971487161166727649222168672089857968099282328835509648965694079999672018491794312060701382994699510803700236675566644014031981861730286782681199891721883249304463928804529625156863199543579575651127598831918041835051029531855777976743424256979827270289882958106617714366484266997481947851820596637894786257564032118572405029259260127982496582277483122806362446715908473319764761737209530510562420877998914802464564005605980681137470014287547360645278701589728527330569627308330656002077080394279274554539462697980387902720886938007693068099336163354879288083563250163832470456425009813265494584348733597772532622174314162014289530930608960538083679399265712808860994138030236758078291928930971984576123017218489292323457406053219451383814538743331469609843831914797993335252560490997957457074662796471132146495399345474323000276917620954231316630496883289325496824032899908381831049166064109714049421804930327673200617319483509103298397940533538362728712468346618557207916921254639264176356491893820832906404025190770343427959765272288472077066375147407376183032174982051064175443581275571169372221211831145258875334840939587950886683999949623021366945019177647975353457960969237708466944530193640962049156708126296301244556330504400591375795328339274637665501571418757231417685512137347574341364173489482371455741331978152058325888199446692928438171060271972747961435479952752114844801489430370600998906554385498289950965980705165564105017541132961474469772483533409776214880472940408167167463578029676111315963572669879478554124656865368445683346291916996608122441791834514031048603148625959260612454963375897238050230226645620550159793898934383898524984844495521005068105684397701082295400151453057191428305893703044781139050234849945900271325168241020399297947146291285204471178538421847868611360020801941126470193836727727366375157297430256890794747852615579324738461858950142750979417706350637071345584214391172326722621146287816628282902972658237044391980006581378121460584764033995480187625756358481686123803201420297631599298609476619009117234555400559255598737542076441861184215736289594743171817841843943478409312961464073854505157851475500285930924180109987700602264440696327878565288076560852526219000962918703998775565511431290707585835247605618807975143097002762918031488128595774967622991719301608792948448949600859752672041764686343322537972588067359545939255673102473927637625590872997063600540714362334453899303582251876032589607243408228478743985282525437226117914001235441475522530333962126332744114684178766923468154767397924703658961096082419298467973731335443066159370361917204916805471145192685310794912921164366722090573940821338021069383815828472889252235951543126191398520875961468225117165067444911683734449347523202807471028488899561946135203664103329225476529263978557542933275173736278144013391594930939073396671757327414825464171492774253475546824927076748697658123055230132892764919585366021913324761327496436649858493379933805660663774083102491033484891211583598352897209429675068634932351091527310422170262345658028389970788872943688654673594926327265317033368442944754933866208237865686762647055482330303470530948520210515651161461346324867420201508350631556924990063868846712641099241001757913584185533650653999773820873636070143939960820268621329645102102680836544035021036720765123197860743779447794094344330848345300624943291521701949807810578090868569797417332446642005375494625449308503766325715055774427083246195846897307735522077443289561356752880963261465505404414584170330410517071784148080772868603401239805922251425792052965028427489412655831714433839000455912917077397503027186745691733777266636650731607334258256551337988662590156752186889780015188595539362441391935176514207446748829787648301555204732538288686251317100119480585164984950915794558770970209597939797700725961429744456283947953856487459689018558324684520951732053720331347610609336133933822049215470675319650536403652538928267267262685759321444858891174736372204947114759557427340932797614845969186548218671976453684135269659523720896710656044443383665634422579617159702044350093341989196308145123241733193427773010470982201780111524899890314700995640124782717797044872584080274772554705300861917118748977540844402105860079464840996728258315956737293760741199445248380483101151811308388879385340336442890160163485045052472064267378027944240037554958207264253393439342530478723236544849853238756125903890209649528737230762067178034220052284509423962961329401418560169086800196911223043392828674466746900320587520102990827356818011989947120466878451833212382530108575786647086119112987266112079288351844537963743716251466091210476652947390358216814291727909539124600954430106740341654831873604931137315348061153233118023209294663246714493074758958052807041491646411400267893468118196921806333917768060231375127945543782747669195254934128090164943360837882146776341818946689026993128811581505592988526891406275106287627443782422520625767929230070037052551576767807480045827492550383898514871171167651245467396065021459973311370102050474873518645607256685822164096121375672994948283909537185204189976887519988286039284494846479605061663875868241521108217634986612935884263437495612694455501842428760369481228974350072390863442741609311636495380425842069483658716565540883204293353202580913078837446750509020869097194461212979877029276610890901729140579860180019265650443920986661714091112726095337801905260308695478105234523483063156462716739872904399874183274567065462587282747783387347005340824381673422281729324769362602227325237152841986281622326944348656595956682823541654846729039481906787179580317951434761303452855075991356069242075637346476904721860648489578391390408981324307932710878833889060969885454837634902355090310329445110336496582725689832982078796699538266999894283677358641649810528229320340639235479796929872743225732867618443877805909868890982701435543580643770633988370052229249112736336356515839547638900181618940569503379941707039723341801557435379174822558530537929670625244828166458274170890721380505290413005443156447879443505519499142228909008355882000704399429290371505916082290681240827664428447864084933138401170769366590064094782398693685915757233230642495922748333766002471460680339817446199892117180762873562233516216215423970626806029481800877805667039481870635733022033483959607330436318794248933684689016855562855368670041922710813296001445411168617441939440000815460930657293164339896771435318419663175173594135843147924831625567347237015003564423289504999921555614207022727788808326458383086364297072643443021247855038878288677347151582636063547484288687308419579759331958025889072622790137491460272848787759538779773169724603221935087084950667759354158949202695369338286814064590487232468441430142510191081195322776688479509931394804516909341939212657120903284255371724114523342747674174245925004361824241141321817076019072377799354298243238051647733859124851313607800378706066068053737468704956962320584567884474706184574590079937601941992256590519450371628880962460298850425215770229047382241089783334380753077831031526580169163387010583942930373856904780430380665986652536535202318294730043723954253924744414168409492030861784250414895668278350528508352315584663029246370814865639281624216475459714651560493148596662845867825137361524720400253107751629725860485712696197331783601494123517810564943019412154347183748007851938775355924053688756993630964053566361434134274168734922803479756713204194369013567145443882741538516760758591500086451368633168666434306766339229666973562415311497714613713207448752641128321652088445284729040541632853965863340243107449153316530578176991309361205936023344403255763578998710000009649302685100226217165205214681189961289580307147802975195333534124589879500836403997115111856228155414958747666635627346532415347405266340496332924646873742639775780172633390932795630091498372546968436765860971756485425830488168014668833270357123348001176846339259219244017707824923536886065634497917389632996420233234560462039034233176927542869470026062121113821507171150205523408528893671459018251723488523461807506417264046490987113873463577084728456990439168033178335032585826773904637161026887650781754308848719853116907376992817034452816385336752472458616675703767313397041162595704973098854543922944864301173533440764083920958696640971359102255923607250291406836541648149355829012378381295949851134836840060855192516773787465960886573221056927979750437382134700444089422659631838707679042680961780036106816554575197796461942548688088784343159836988549828952619021429201221956273358372301602546487111764141359849736197487049636089001254246150776109028432354166814219111711752468955853996665845319469525151012361486505314272796559188101488779183580913180027272644503844744833352136306240462637084998783251533754730355637013448942397493276598414807653223540593683179740609100883536263902630822338544964767847433156899717233561249368781373055830806207967663934965418437924374476739917247713315748501026340105698435668575964868474998815121351022423662988393750095509487586400911452293053997482435200731740840918062558980620890093507715041266585327975166779555039192592737743700171812117691734660792344499036588948322386027637478343397962328851316132675799935355457779557222093892700551530712085845025526674657124508937737882948268395201345491202105971447242076733092953707069870907076044976951631687882061153224480966589995159715976229575785763258395913210114219156928802987296299968087839522861022995725254621218362790541399255805448112726035236035076259471193663454631453751866470524021022806832862477515382413993099286679241490014273054185518461560529213649086430279879654907120651549092021731087127020023487788741724422563602907845235306461143892111160075632347801821347258730041505515711667053957476875404014782258018898264387947017878033696427472261150549414852137395501108133636887690352273527725803549939375477066962702070450624776160620542002588790432427105096573673447715827218567637642097942492097659555103388777038732209812040598705143692176786362688277894899214215350250173779895605747092956755684092664520115566124582063445497496898655066757395058908657211732250455603558482296043766908316763787821975384334390703354333772721214462896821805266444570680878913189693494146253998858240308062281689963219852965310287356205327078022404874262291607623588701542742557890041324043294816524849708629767773935296741010875332230574430461532884096733621065214551380818889832901575128600252446248799372914907539020099876493324719879519921785092918747108319578346275203094420391312496925257136027289298639132018218045287259622919442362068397175373342782945445759431846482322959660931193700667851797072203496670546274589054514845050931527519167072167018096580974212243591550101787511047000628197431786712748442850732954179607255494273275192472541165067030520977723190708849263880852741437211736444451922634453929464161759847430028123362089387657981045290612435986979522377474623405648899736670342470984252165091413968791454314016707272818332170851856207311353533817865963788183675502941899185609924102854309177433356438578039988850224655923509415267615704670997161358985243665293543826723344189895826375769231764096151483427892552793528219956182365832085855260992335882759109275789986112076981898682625607039191986581025605665144736617035410561042514748449771635146837663037235527094832517224569047140170690668506076288455189819137537486607136314753729829317285765017295592476039179196060227838577499176567185223305452978201461635961000021143758492430325310266063569783831646777390457229713377805535841255683345202139115082286426149214283505206674890041363860957592792967585849610425369358101630080159779744910102391669935915208315231889420110118472755810369370357211371410979653914472444879811544345062342042555372152026382159915736757017521880108196006127110396878774132252233588170319979868256278738046367093389435418698448187210413755516410411420469301524392798850823688758868031085758247643630375244053431292483774153332825324717833465099446169628000391127942636782520925551071204124295755591843641395479124713829086493035503850496129231670469364491085521235296727540638470347297253311194236198249679624497667361649604217757233961379595856739012788939859904070413038445590809508205431685896525093033733149577088721820411363358248759936740484879527206413148243297738347767778187083729991623235135594766798244581276415322561463053026805958442672637958874853185130286009285284071941621637905379124255496024548664580628181908193848238357217639234103801663312731375500440156203569379029711364012841911055413439919255173929704820570934729327342389796820459514359941067841990199659136146575874125682746730093977773003901274419540942336629671194235920196832041661107258792926341162904671397618011851583068009231806158636523089555339602538405028447499075445993892773164990232945829019830332329884740306328348199571799918899189170247942037596900692387161745680917106768351994440643166915182973235935034958156390133508647892703187322469071339583346843524058879135833295428351415843662698234301919461150164559446787067652052062244700106277655123411663731692660417449203676872126363123379727482217734290046825366866504066159052540193730296096728056403796371176612607334289496333552206803807635016359922673719971276202390460217959877004258502884846301483049077240361829109170326105998201544428715371693595269685123631750882727068937725762533871940892547542555784920316712372875886135198841362247949158521376148013035659660830101544534465849473199923126010512154669815008764267444195730154073000248734506380798721008098534954198944754025963914497007752737868978472954179951939191900066181863835229219609635255436183984229914205665145916694340035710725348945107089505082060005119944011952498160893799246441578590450422601962009707435729201766171083340025777009451414531361986633263547393538014811872554972003540438228681497487691651053764640679289236263570754395249737996550970573968797505186692316697177629217951405678646609979375204554004073197005584784889654526248326421725000183488825263995438242488178788125011518963657135264170984495447931406927015273522372654016605375170752381644778409945537321405085139528834810715593546751514861374697822238572771898066159213327893837864071984261365171534011171848604806495046362752870343025543096636809598382744139659426920265520599624447049874834842832304578233180319532826049457480127608297215232645235092390018293429036071848342106822663919472753042627893046659864873597894912810032058134044294053525334242644500742511003415901848454482660247204216337957137465757274865174618386915257901883653943034040988444388222081638692374265410733221021169158659842415838208961432471090099572670944428733097428081417207200803436579680059041966389999667624454153515169146717483055858965768545165237911861902695122480052350266174122612956638974168250192883082606471811677466016189650498371933918352746758443943489498640226004035313064481482154138906758611234542473982052421764268240397824286828792566569665855025779757559185859490911888382163419149072442939134660134988023138617001209655952130863468596679292803580709728416800732203535148248426685504663804769593820951737145608857045291613672217546029039271677522468227214815861552180995617444112286927400600081449383983505007612259271091746645221498794096376043953847575129605400550013552613692573607121497227226726157122243780957536424301627307412976537940337044617537090399729063060154446441507823181446834421115929821474384807949811782862815497921704664116464033368883713011932353207564455462675380663044384885298114337446709845787678961775066003001653458984451073539505432763581486180938372109480798543176527578072614423115058831421410046130405847878464121590563189908133654902148337370704060979908754174559022803739927885558047676891293884780130108535293227672534773225084616470775521703742643986185836567672540784004962513625269082964893832679765379032109012104875432733518233837846538310491727237764622802669351263646762622046721900341753570722979209806171500592144165706335021472982912861746930092230217132176460699137710988318468916016084388227051404393151225218339592706639434136615048205228340645049968113489438748927470314854350474463912322092843082563937862769938439595519258273495119253811593853716559365107878460629982079700987448392034705427385627116159356220491959752169075503191925282577269150657345852848152986437925396849938634025990085444975524659517997490695132492610775975695591650627290688605059656973566257757085208600927212598757307660823957252426287321283385313496113431215543641933588195860869426466225555622056790267360942627862405094076583224729338971245033519915646094067686014479062531941080354191199900446239656681452632806615999219316568413360287420599719920697927168668764871151735719531257147393263873510495627935868223686507502438916599098524394084201869384176454504405997653977918658902114039765657333932176761189452263321760836587663575408558624419015020046821142218852087366062247477631860571881100182410497951813959680218002677928009420973016021559196551826877894228229481911892719853172293859859029858431607336145905767628021383859846870957470123170765534837813042095514644110961987285017763990194719910810465865397608490531550922322802883290235130568206732958621091680898944066464170261649702077584462142363045711765118155738177020206013806890386080075490566590060277801224488471596562076887620607377827547360921895221288956700962610281225121363358203585208322913380767829237917668423783863815232734078460946811345635408664094658086125574903798327461931419601316557847229698355042386972448979232636304853930083152644621371862297474506235499757231445946023230593905529768744789121247286883252059014087363904111739758915370055186105391988640478029286044981462149030426918280532080724073401591852853328960984413274107183927041497269945384773968753146100824223950721866147296964978456292477170999347132370119158131675064919081624822685917110700951394249917809687045351689408933134471063198549795795925620250706041671475402733431360157848974140375682143747959570638724019842047022901955345111834271254608617393077450338184655298842239039187060308325286357091330416048930298319201547041042867780329966908612847950381181417448990667667734862132078806223482748414021527489031165847686382288317666677106854026540555545194216372742840984759534223709269655958796749451490060266341697713765297372986258451787998692792636162908823960781055715187318080667636389726619162853921798078775403144638112147098165011170767253092837599528934080939416077279252487537434648859668840053675552941665708186635567524596101162208675447332841278655057907324053329826443703954831167076687952864537032374065663354038445302167480587040352339786880551850142625497034427484241538801152603455313309688686523504861839971872275010970213854058283054585350060368379405804763786570166296447607908841360123528991357600259348050880681515165714101679121729976263969088410718460442892805928881884587155494747728963270670974627890748726403654446465434811015247487660406147429979381023226536418883282997285166203424642003179952162603800996806135934353847977521642005894002770233770369247368328118425926148986517935416565814279051084177393382207064734585187286007626929847481078174529431534361297195651524845955974265387781271860469613833269087269454368944062927293056917799607026859460171405338113077403316210911572600439059089229431292623623173984008662074738457275598865521952562388442926730150982191106924706179912712455276520249642965388079056670400728288479511846825824572785913409153755067522024482527850828370968578239735142316694331078866284804298804622811607394861782474070591288427447631549271802321863140738233937224357660884023549385940216184519985021574795479823388079946436315214410783770595021667457747944686252000545903269961320878420722761661040330223939511357550104190746019095822996960774242546940570580432837004635692977132863704377975524146268421345481074300403417511648618311378879116093542144135522938543793180024064234468361444806709725746919732280503520127950353925278645659655613792204984272189801976000846020563146200776312993360636158376971091356889039424709919187837017250295753128065865159231348472346163746320243582545475343739193083314857204890387484406772687827214578226484441438201233764979137694408764438893870453889616998004833981775364915922248859823410292937840044824312864967522172635496986228140541961486157240524568880104732544517964989495487832961526391203472432872593725616413014139755903152252414343887963351821836656096042713712239530721802485738133129721676965882068182304876279054644581996234550497881906302893006033913348457100692489680403344393602982304669696916780570880797825505538341313529784095735692347463283113630086703314724131925604423946883955355161846757431019070376816829572304413053651272322707768803423894807665899475683039919716443170390968028243293556344140668972217628433478257889648775726240562780951515028050927298788995395132849327297129375498552036967759263398905201350407391456277456067190382506340852624679966212697369219787088857733912247040571289634603003468213082283252122083131746583513066428845711380027458112071359778169314240096958300031335930092220044868875977645810551670681020478159011402007528506203219237000334741467738430782357465174075346261084771605344771457172633326450477974148697334764500888161621712972665984057295699451949476589789808377916157362446324074659020277548380946004930361103946426287847590879197884747565393509114434217513873328410553655086741699605662755445862116308199221190991726129810761792618023054360521637301721192156280784944237548053186648711654996994235132634776668216271556108557781002980295924639482664604365021646983591410966020867266525268418050680860901255805817373116970586545889235406030960048114164545253046320612118209643734984471313236821850368066620093931664283362563856227198251169552799399721730434883249029008752507228399169418500126558910817608611470114049614949949168450182883369304769786145763613225556652898941839613238425639839787022927016892990935717911693237175864819474899722344333309571541612422962763590574164212991551344268257202251501479627316155756590547692323070200719359948531141498550059979830234326049434030420936709791966929434844832930751747044928224382867187069921530439305573578076065857414317360275746130712442612773615625820272826811919124149554397498089144269194359681095819475225911153671321973117818954445824999320362734912279839162552384779415274877054524147620930376339147234712157352660917495971507420037470292686235010687195187871124188545612801077563484343249419393155931534656113495672794645243314550269855970734382423669401227418474470311050375654270940399302689896242242938855590918400368337679739100775580426051439091501563816182570753709979168700864997982309910886872960337919258029023246314133879837996161237254832409849947848369748834512357890193852846978575547752563711106452668435098556736026566147115233830536196795764220866984216014747477189634461734409915439016418778718702333244935964021407272074716477673725200036250981542335264209263010417149446048599368591606737575732098123381867334215110049157285897178172609919704501419116390895919858163456306622774858352622413782730540183609457257371194084009780771107431675467158252757728796888636831389681578630108387106702729283165574288134477929481152681287293310145238832619422889765031677388998503461091788991004105975949733326131450564190332430139417990645766974916688887003957824812734015142676782536287055930104488703692715633332883281095284819916660183616462803707151559209694732829918737204590186924332238336668495767031806867018862576622946339171420924566847501248394846422430096548950216481014839494457869405495646227400044847793326017820228917447438609745972169338179551090024173451852727089253571503373419288465447071804394943670112294194379772088511240841312505487432501100693814461394373212173859865854281446814889238517980654691118907625951128651025573726692966207044186702815629153087359010872759469519575298611661089202658022355744785909014841853339989898572118126433838416663710528683204120764691002223766623856288875624403675796971965482998848438272688515574419570814274068489501652240305952205034984596864864211856039082772455616953164002881051683225954210134363362010623693239499483411446861303304284195066981552867431258718199417972952744310635988040097794566150715225712216309770164042713815412634557904490564747405572040625396512865531899241411083722067814393737344940874779130841434979582933685473293608166050293229475668855674513016245898993641810219298989451240411593398718965075124589309711582277346870020950565968637859703691483715751478502428499223719545212848186560988157707262401371559668988644020749619405443184354292861927870442223119544840355906986452981720854347836250637370424417220458914277034094181602241016425225253221384732680811435554084034885118801179795252262227205151074277342505872476249838075334923897460882275483182736051392658448981732920964547677574834084169053218151074507343499025625814428192721670762114187287590612146585935375094039772634659313271729206805265890038309115264539131248863775137866271078192866903768725291242472711873313403923154456977292661737701098782500755033189922091390560157460889485148332124304971145280072394036204401395480676891797435576559380391296423365463097166078049567735477027344035345153414531870039265507183774931452559493841696580947936929947588001354631121797869505400547120861108109525799886261439465866583343218889748728581733440990933185692235848967001669523077947973957942494259647893566689904705172523722891899415178873239598846168470410954237169650472045017715398806533541727094004229836888311680285494916413672436119761248096846769261511539192247705581985795278480237370376981305340680060986851068322324335634462486829831716790080156323002394638430647047784719275018905004500135953858648605029391014660594149125974688495647641470646420042518709620459276745133637910515409514964819615195094031936254723359369250196246392002215147604935222394397857042026016770057054165140289549548171531428262218847674065629365135951806824860725501201589370075952511598426234205890555008975386484433567546591729704700133057576733043135901941321369736443996780962041702361135287338505788627226790648507741024913251102310555743828167087789607520624932243080357345034245939410470351178426412187502645729232526360228432416943437292306065136528324385423263886798793802946670367461901621238353314792997723859153352037593485301768135739203511095477643774588066463393169314001084870765993660597742908153391924183178264085622355961815318033804341467164768339700705964168752407383047562799149584308906534131873688961409666917524158317766682939144486221725206214905009743660330084901395239110328146649094494694691661658648514637996634029057591547069201279637181381950757465600411396089344994419218081044609776027062832972801567718849879032771949381247178559235507867426431355501057766753778412266132294407656525872681000717231731604417560661058797120103372059544275410137597700391332565310998900369017342014350088239844977235151084035201601970538880268611753886382715500323034081378079023235817401052665332326260193475199381432721434606180798108321980677433463252238052652393972129268782247285237555275498262822037653640407995669025126342580893635004502014578101976295243510292518024323895375294443029758359891595517518691982389331207574220450921794361148322108815631248917830753850639304336759354707752183291754542507382546489122866706115359228810841169997308108561632173686933201757931540604411802051659666216406503671419164800938069279074693910852165620662166118935308645414257169656431941435353202390568010950095202003013215726753602219150087592795374656693015294006307588535722039481332113956604225095514260768314493523240827563950924358604582292682574291148175003482085484981225970332332120061329544121593106256029855694616747526893244705220377278116462813917405614590398953679136830843725597156941485328430016880188025485815770915128689781617537515537349333391470794507762741946074305603864205966447956178348145469696657869261395362947845131770979032283627400472406571285533629526776025664816100346036113277157388420543305762861549415203473341181636152493504977258078282368491886621557158642868349016936738338829867331347646632606663743040703772844521033041570439045708108041964141867989352620429491494548752775766905202730905558670663941271547465726141398534689084536603618210853496578216572764015567303174041421577670626234282657004151040283818715893755056937701785345775673561206918037143619920717698389660922941048798445639360684250871369312218891621211617122260038142615582188736857650325754632347956562603472107842240037481571824485051652515792023894808536376253255321214230458316555914235233796797732276596258115003098584459815076874538612250856839270342672536862686227277662930043968354122667578573027312488530487840720829163002611906209944878674592786688859845744599795135274782502870868518271016781481318360511947952824660777191382985935842534455408772384291303796040949419361301865539217128459158160682240040854034352333903579360409178015721883037226053826050596359658966051190721161321247199490745871999433995868254781681866176705504324719391299046981447850563674112331447436467101173260083737517216607786157114944719133373264598696378956044653929936882874181291172557454545841702277353922550104516154654971136580202365818788449584152471500100074518763375239608644370737233205338703484509148969321606364643704868907868366152175171881616066434381486205360453640970647916442200455004759480682246288747572667263205145197710140491456605299438389209032247409974371437366450628448372860683110688605696716200028107335085513914415413285877005828127642875154206182711881216256514738586511000856376521535623402247515363932924315278130957059442127308552018039573118467190929828629373728402592819399368384478669566558788284268757848096098667850171594148597172789775477835767524751673757527844041019782281473669614387525542688584799243128902458979303395700846373282348836022146919852838240701861354981869534753285742536434298814126869588476380173066832822888391719440780362160512832236167278779040444162547615752539757906072893167046501297747391438496330597829448818788353493688466183726377706230861507763344475333536326129088474733848047932403818671405470602376566275412770855169883197890011101055772911983452972608243294651982504284029749235319408710986717612188804028085157740617724103749714642320577076671097091890761656124074453686646333722779968828895296664472936945336911340355979225690550811949855602745877317702899545714220114381009341939668762828794119589425249257016388947526876349805193660596507686847490325648998115642739965771205269791393141474498476162420901882713495619784013197441761443418197738314867072846149540381762435858240224324724301862388061912488465060978815888466452611552361322279313619103233082687550210080520064317290107447012589666356352137077882734963495694074498927540238551368403209857549162043343129565060923387450164650591972497590551737761473985094688717324794781171923733488768156307098751413611074598509770618108494806724957272601983239646504319999725993266979267804866922986546339792074886225198588386593517902719328177955929240670959062970193246491119149573745760966389158244304144214778808802661069736653215510788208717855446268581783131336904242200892601120787882095913658373355721309519313736737262262370207027932651413422292094801791700535122090515755491732080000042361470165943012511088398640240516444738778831632193447523196833189534133362419417014269241571698102750674195976336010103087083973690371740111443511979863203827381261641621165192562596664652143238331957610598191239628871024611524992827266981028044740312668120321381707084361788376403648613642288667153131880833650088765857317064672808791354234982987310931656388003875549448723230667179688038623250115607756666202036656356274011135655511760221128024581317120046590990924564296753610881821117447864142958449072161438062784782706726591265508811456650544987871919007920101995753809682597087392716101331576448305444508221360889113830631185361701707510308899773558183119808012420233097079561610155052851981040323295962946944761512605165392208349576157101200166013640692125139936733773317106858585968780118200725727105021810203606028970813221378971425691855348697479239104893471548534139785368473954349082414836248331391889882494472097172554410537374874945286137472565359719891519843003920735205058339717107221723254566217042522065898628291277858915506414384139390399003259659274325326387394409229463892687515634836443144918513214783093042536121219796052692407482323701220298596494534952415971995549963174817159449239593877441821928417316426225208571050676030440995257084876411121239254480256483227005869088999753013950591373374146168211303233495388019591300089548178936049867120721066678668510255597408234482007852854202433583015204736589766917687343017230140238223252841212915718795420055636549943843267694597707525270949140092376228001013425778849822311180936746944592094734524786005003564270402337610553638253236580750427063701741831804727034675370465606505625824339276809766242787435917875684747842613128146854670773525993071897713417190491381937371335624792560973195364267272343776201366421412729000166731612322440360361032473676043981634098492504185145396755621961809833799294979864210146108262988612269564712377982917865943070630682401765202633001882959207347040145562174633674461227150507905299044977247103996121266645110454353051220369157572885928309375659738340741245975171737537045041908453422414381317345263672747104096211767601958817226260017084545576436479745352532084469203928857326099438661547783231694718323024744060103192951625082624384917563639480627928598272925581299074556988450547101830646163666447281211879633767259679582261588369173722916763280145529031268778470536910686930878291731473356030601332580514409570041133057496975528086390330035534438997672743770490542612559630605239484045242377994423043674316081640511343320868538511183946028502812143038405602434166200768071260987772588445356085220867878327775651832992160886456841355169225555986412844902967156254562981462536722607677704912935895060501856619879886343141776484788399588930052651490166288128868354508340867413529008232462989079479505133695842755065199746754552950933439941644709842262993338279592959268109601015309712212017830602103700953582242386888305520152559448509134265064382583364479777683890029840140330396965899127590612228298314230065175907863751296615595059695286820271120204205883567752673440650449101236094630798647004768323060119269299682156638219925894109297771033602208828784895959787573583796663857490637150645581468723710760659037672087242146899739012471255577174653174989148764265825670847045096211906464151239504829583928331168493979726289290597584146359558282798611462379542229597122523304419065787804164484478741270354276324726562287414810359085538254435857496004498361561076451648206233484547543746674733139700347956077341376757320220154012259505213126287067605903153572672536576719981046576140119630199775517253638986335863453504755544928150470057360729227065770158389093737114471168747500960367007223668006532616608585914022487335428192645912255039526421180095201784783460875694763208299207331422285186956503795500831944006767328090663236014904596465149726243211603939379700227188904618335391249092029729503686652082624250513461729004865294239414365210714987306742425074963493869780842611445037129803724404047449305801941728382307851156744855511855328378970964217004051533411833434840834830398162921895193825331740967059958755547021560848553098229077955318091212038676543575891921602629248453736495116405301703000297045953110795537813640774581276504769154618471841294273668331612537445914584209615161742559431320191378365684264442107996882896874470012818129890963666605090539034967050788411815508012526158505126219524513485336205845688289586349241380654251145182490929548533452069485528562229921760154868344971402154625830934736615019249211805347883668711808159508277937677724248054816054541814064221601259498954387964158307734202167626028559034092644032505290535168240823561373665559889915995482907227823045926311082455284636401077497136149113354743570986634299414686902120806184135483129872806261200225289716096884980644288281903911373055545238453568519277339864205787049569907409980760362164482505780058931893946247453449167022392669521835610920850843407266066945277880065714073587172907515084671775789121630428813886706424945359631892204609533428048063107618691874991311919714014042484875366642464602405169245791383655756534173408182602340699092539660771824501702268493865728364003344035637540481640825355109287443864718344650749558257206534766298824977298368386421134941133415920351367180255757808466159048624563797472514767858425513742277432329713986749569299030424695556771426117067603216288155944287135800148274117252486425511749976867034678626382114382450011983670015387850819545166276049434103343923563229375726477410946079611933944598244456319633386208922205119487441276181148259471138929567123448599008047206466006923272922493978724933639584348886422918119561882155982507294711782803264276352717520967355641425032035396996043410621898850044250140318501919340473227155346158585477829533558190174129648245467013468352374243499911604988331072091323648011330336150302313850821851887525314136042832604166845541386179955944828003509282031920231160742566734425431813479332598824718146610950602807309220515411992981951196409375871132108508263126959744300996761477347950992523777617670821886564438746695857985535985756258632492652262168475224244968860541229194563104696220821454979580592890344754955145966105718797394668908856719361309982335636599982333198791574066271194112702317182457954949109356721617677372855508289856867984110745399295107646974293343925892372684366323573845865392135848931377413790309709248103453107197422591646288116623193020057874345334764360282635635106725534230137795876843757799842718100025928261502460589266106914757113638695575988437787804243887204927441597157823640790350531548735044022359999771612927928797312587174757339932895387944258587415661167657156218441547756522053013868573093605932019298558395663435250936647815491664384143738229688719458429629712221581020986770203313962992382704968473327492848589982458308708041245821804579640901391550873175194959701143336971120609107920042338886398655176810690851847128766986472828040769957144461027575476093975579288803058013136864647285425999646915195226934149175663846142688471450550158895116672953541104227828136238028936240635715255747592252151052822229620644060993638272727040922045214419908623275692609227797152694367756636876284827746725475412593093067190458644477768553465292597794284417567613889801756882159982317032931743304767773953948508478841717669349629217434077517655398767018035879853442195115837613045096567394178091027769455821674278738793649115375091661088341948611934025131675051830790425824427211741048471363528089065635398849074907572929121739504904544280780018101407357905226910302900144486902682118348297354835656108976462387570225169504731698828231457870944440526182723493955498326283933128047127929676074121086545666476461676187955938492613619144710162570974013896507200456147142255488479613147996778965634344717707605436252792982331262121395164387846318344477511519494436873399445636252905380381207452606326466736417037973709717358643507887424856577938697679416322769231798405662970225719941732160352717717276486596644058970844807909539698243692459003284745069307246104168367076932995952359321267419330459222794845753023665863660382337037644818091806948652768470504646026299393557685633027122179309764461970084838667922573009204102316080991461074622654844382946106598321984989774232731328665501986953110419193929417821663946982367901334331635421883940652596053767875286411035182134602776835718637648328777292349797228700151812115066046384187218292933357699839615991647990193629087067781682922619405101854982103585855025030554507156506433464677620885274451746231709611439933622193176699146798004679519698835525821301775220680372565577648350815672245025672265533048944085696743686510333979267748982138286710086367285576251770062895146406420679038210217601760991688860642979585975587239998291640972704171718696977697210170369210162891298284252731675347460238389961235346690834379571785855707435502480208665172073307769911798012340403847792383951786065798622844465115255566198617433783217633580656804055372938351929031783104371965786352883606302994535620352409996671265881697533981967366331792985875737863766060111691429449755668667488083874349545894953418435424364715970971295555242020054097930928599284164093020408489598810465354966354317676996370666835228275041698226360477250454571562972173301868550433139282587596587047818789171515130000234750137741563723642484418256520217413878477321357308502591513577485485587355998867738081985678596245839719217028301639736962577063415087442661991585670738518405048574746033686320026738540274053676014656563096486506893380721226056959009556651913709889179574964299191049396614058321725652818731577601710541465443397358064324492363456027461423611560100194487335958380098834187015117762147681489876661256586275324771678685597689917966174840429683705442980938166078642752529305622261308860593838374691473715907642040349512931172864001928608379766671244977326561322774763212245307324668455336136448854965380170158281238975706309832422105155346159736600387709673068511029836167640167736812771276118691551736500587230509968179691772370168557245845770225402181627097090025985838416945241622152823141711231805657286768153682582699533239751413142019671299332168490524376729530742028487770309327850882831477350700610958993238306347528537426602576188085560512613995282855185602362330046938819051254405141994671068111346062728742443758336825572565789036369049048752427845015169194596080294846157223249150076539963184772953288514059227169127250470152793621402204337550257509318084986126616613776989575442122951161622339362791623422511562548615063312082373711520723969318297903870009171923601542050425935096062298746130840455877682287392131296603342807031754867719125426389153863551505946189563528521033301976939607077948466953802071084559185892638877193623121507027083417586360825461247020670907917636789315130207070882153942863675591978116950767632374838729407109795522130937498181495216410244785179202294807319135350813134091975522940531436326552688916544316094752979531098602902281163537295305426465767628543070408924748844295392627788367601888400259007500591363797378207391828260993059831106664187095486461970779905441976555066749329324756131747166733801953793433657054512126043148821129468756961760029492151065912553122056800072458109029981363804171765722149891069693456151301065912638725692751809891267582186970150511349577018760231040915970171625910497899302187943974155954501208222859408908469521072083512952464257988724163918505172396323268662258130351060188441660016112380552221352317624192924241834435137300876405777760437569141961863827966768366546574146113766880837568608457344487305468086035241316411505105106610580600173879890338965494356676447192834145788621576961341265296433822065137430742574216590601164818501819002372519656468830744854515255315689839455595394121747838280982180948862490923597963480235213368106231280688078139918014493670517164391195824337332314635913662167769352488305683694259041149855239282761840818630625114646771690738041228843218077923366282994969984911927775441137323117265353327775563541437366030065529097674673103268494847647745147917783262860293730074530082595174204924131769385368048345100632450827574488216742701479969969148401635278213936167133986434447677247942733494634221575231107226480571426315230572025443272912567236493257437339398159113220930158518808397982607383330891279057398539250389489668713380918600947581222653751518479325713574591642672383967459225652852283365207195528084144276401500596734616118800540564818196140851555873396850205918708804324008072613731669533738957722768478994827270788802498342024551022205393519556030384625915351924409043475303418795385558475835434104039757582277008594567707556928300646753852005049389594655542535270043091144087196122750961274708669207935889733400707328675976247085594490765355239190270498037439289480494520663181831615574830404164141509934227407719003490115390596546122727421961534878357828784855477720261661409762670238830472837770114301131580830976151684285905938518138559884954784810808848948242166801636601104430073379681848142845028919377158322282145332311790677066433131474243642533438778297677251972937399716179234934268710158840977467945530740767181115541044470600070945018841435821246520236935172416852201424404156977275905224575968219337241448618401992810096111912577496535255744112549217780748913714571577843035744305000590308676490050076301109990634099372761681280387876409809103407433760712966875599555214108902534059398984615892006419829211220676750633874638490932497905073649685434365877048363128384378540502182340414227309516618821405275041521646808708349117544093948808986220042598112928694154029402020742534210472644407378914112000127635505217582623039163423040289976971831854309667520170788500164216194251850975043572659857725021124570828488532709810414482467606914248723896757267113196751688653955747862109198912511234291127993177544166734904978635310171994250742897276747528213777576765151552194236818039678590595662639789057458191033766842426465061243224756033699786920641745784587766588934117731490960288498062865705792649730996176928172972081197230994247705912283823383479338556418268077746275217806127684017180337135687253392618083480152004534264755697400931157302488905997577208907158561390786477463033179978637004645764267419433185707966415760754603085776500937102048720904498733529305173095654471277365675654231312356764995582246250013372842185595185316851325651419513171357651832746136422548879614847190397863599120342693407138597494434283027698017701534226570518415108912177180870233870044765647351760181145034364269095116652231992300422999666944926734459225172946606756051588353745491651680481872591224600121144645977251531604587872787468612202716324277867566567450070763166913480853622465488632507890417370096241897764474098905087018377124069912062908048307651480490660893573810042085322800897418657578595497228889688479101787056215892153379017854159764463000760425737213797159135132452826883092495801198245497465544451277544995276366824726986775789236892174700972529765374370088712103568212224027466653975813537693823261196450632132172449034534393434419410633529790876364467666722620800837442873909759624108736742653343875942911764905942227394332103257604288735730495790820823212542147774517474947084088254242754667391457801944637631295294285379475139590790788348898585230045079806491925078594029200798738892491334818384306744452733526482012355131513783188767890220310058765957723559528262923578190651285111858796447935625802348000139403468207251065433793153463832789744795046933405328089361042036760243585700966501122502833882198086067415895671809403564580084128740989304545196726006640663504721256904929074678721684381596703145424651238297571586430520670498861254948787779086666312726641891945283884666775693373180097536034242603395010282323072826021065128733443284047436434661680715236589938002289072322036704378182741441408294820375014078155119530319602020976598917384180874621428799469728675714891181316532390545223640305725278898557193795190761870067853213687211451573852983531608812141761737902259943260901858113619520622518576723674932613582317040632235544005979830213973194939159739648802426519942054752365697107561654930002151106293550315057319689110429207612782628426352835843593336009077858428166978644048773075039068710883358416155274175353068548079401254085228416552840918160905107647813394073869394586586207201805682162494426534611322565584886005819807666441736972394255588040317725600291036080683616832886649499940219771967189907896110438828560289965018736241094245874615301617743896243236318205626240673754903434642632059277824610879055175044872954099585196503759911553709270475596963188509963943427635585452778154600831899594572534280053893848241985113191952057092844735505545573798055085906472744374746678424205541951962053538925870039335612184911601040834725968450002896164399818585680541130746976025197874841627148169252061441644742774286332432593403391038328424221321447131482322576737194760947879304030686097192079528588374849242497481750684398259426318691682529351559677345418951688123973572264544824334611330760619084937344233858963440130496205616321515284022401073435029448973296789672814833596607026286031422161997756373549951698057724891655542510336251373956916860931572533474443343740758702044660155612407406151818122988958840584612926075572922281407689599874122928641330422845853750629884821802280719842859425308328626956314536941206269648128836075192254176951433478483219596711453802000072035304717208497053303348171561710546794122814925577371764211276135594317621902202777565273620851253072566704085956214036020857821601767567615627034473534805628253915028822551800268427816989714303763400210917421463779371927432385007315579598476312513505883506805380828606253583009666103573044392321478750608813132248198117646295137347153174245813126655989233843758433463750798011863286253947771168183671671247114720970236388380999770409231513727509188222652514975297270711805258922460733270770086244079101264032070390564278807973719176533760392986190256276063918978387849065112794218965746954977945025279539457533967497786567860762949327310377485442603960712727281057476703839872354679195606361339639264697473672654192546725240296452792653566135989786579502496641419095423999810716196680518234484542172671585048517439592616150075808648925849178947636028586547180773717155022765245255049821488658896802720321587355272350660494507480273012146997349667850579427365742905652545372708223242535376551497376097090916718637314961346950522096978260293563947992118162268078755189811525832921531709830362156505176265528567296377780754714930559032970558656229483356590302013421961771256034843437294322244376668191065190312650465690623203849354416389414986867472708684015728036541821135092837640704669825172698235282862792295633973837147852168834247655790272952595321972146368475699649899611386563518074481471398654408293700184624149066659522687323717747295807618692131892989252144387641511286874932723572741982310679681146534438914658358524114248783060842104573338126335311623735625200731924413302052837527600985581989948238287642709177509989372133495518110566146569382369747181388489445295993707291912386211382653463134703848009380180230619127620274592012744283617920449877012748502340973532455786703119653580084010125017250901613878466388401595798008533367151443119987544836426865803550184334164092505690448683387171534750170000406203344314305196983939915993401096304389657393800551767001704665831086837775049254451430117373818450559673239212978444492699635804927289795263006764547632055452550658267573947583978769801918107890376260869404379219469588376906468220693144365367015728184845263751780444145691192383205570404283896619409377065464738996193384253629246759618847158868689747408860577867569836508876293893638394505576533144500462960921215656741179886405945915312536332903449429573478395691279122345596371235519614041308769982655818863256300159829751004376075542334740445361052691483656535767261853381379669714599501787830234889620813250655033762460028002231925385254126183217204899202311787420470722355564188713725594012723511004142700094786764190456755237608538928730911889948522862749696885039481148589450561097393457111296326911265921133125943433395731573061492197028315330538699858465311009513979456820446714944511143473224096266760277890514677181404511317105812442893624549796820643169418587161052508970847245617414963082263373640413864312882138603724389398819970306774234691399761613140050409792173617416452365300767278862581451581087333800501047829452396041696849522354104949372895657295734460171781295632274591798506282765119117836372223882480272735769923187490923265901569639151178444563373161894217576024210003904874929732920125031636085933319342397846236226527007878054279677341311716467110874140200357374457052249840753323607499719059877198350232539248799897711800026342791736194467507970881449151693132338410912735659551483126397743808480869702077840348008811017954563727963596899714865341259295177509338203260572117955819469450468965879465037299736107398518425703872627284512112481546503577902552214448872994706067152012290411126006447928366041280788292373780420643693133277072733201402731537925444764466165417142431433568202747151408220762862942956814084227418165237909394266237913107128254323704811482553995714371726016771395562344560856883514611585654145443841630146419826430124918544620205947023446333336433484899423835905654917632825700248266367057064578113362920158925483251257912081810066303090492737285793401083106870966951816259432106803806968310513198096453029327619604651162103897677403395409607813503363725784072161969222065661183896899182886722992296562039320182331946654505312614025631649399210042857599246435396259811525030146981198984317625836278172009634174420855222178072768202403936383099964552512059270767871753726846746207186196068053344912963446185711841074080367067913121466434894040832741276892764320162875436278826319838590176604071841373254712511391700846994354238645963457998247635625544309160817804942030315595134511698420223456818223204899103337845742823636143779051175386048352337367808010555088550120705359936866832859758194836051201447684779714693424665010525786271097756043658762331639459261791648711120561452486496129016236947363811952522607287096371589781062723083275355098631537852720716333313989163266347626084786601058585687334026841461868773900539772587606846091122628659613933416875604677559046595247601167484872256915111748235083603704111956138970745531404530631229439397342321555824314865956554515297816968449472065759402934285029479194913917970860536347535120857080792673963240435041345375821510731553348636079129731769409824236267954447878608795836785938849671290088013547233855261175917056922998301007639121637011093900002887740054691715794055272106274237044574097304338982677436881831971952905254645772886773155371290434890037675812540632076364206351913431685345156190036057143265675275344408352097650821729540641360666544307131945674262898724283956883141180603070991906417550375407124917901212240503498951819045382679975527864433156812176023611581142075964387965587044022858797232428157172298302608983245775826231568371702281260546040414530988253317041604091706182936403698254616262165989635128480522200766868615113386875205569848722752779986846063610222910687991615566349633203983605277019539923738849171656161721698180034636265506369880601205254548242942469290617892874270643038126899040301080520486887974929013493801329927981651688798992767268754388890633894858315277143048897673517964582111004376855162235264703041676746100588706280438694395334189022590853881531807946350328521523033027334812040715865061757698228951054800336799942753959459805957428164150108151112958561146738842690318689879220481788281588018142850169779250586231064079829450066029434153728193798894978431849837740458276046216611187660133718999811397377058836814877901421673386689360196959524870745565538841298679557610979111132769955800828373525830318510623971407210091496048665073794731362500768291850939076915657028665247476644045255439969776190146447761685645561364769514159253483997789407530414825008908764890842423578145617154263188076639485498181814175301446878711121160782106088713206068855550367909581078091545258608687180194171461588152402866308896493029495778425110489522462727967705944937970378785779232122634774684950970015010918919141561092567410577099179497968061894360910067115307150406294864181398986977019722671838620722040307357124453735864688837759329228140470886060957931256258485432254036343329212859292264742148315127834804623675175060691641421719981055885657762846303789100072759605871618785492080616751684064158011657924022457571621285773188111865359527890839407013330232428337794264136471197187949098092153139128199304321872036494391486768728178860343627389351568703519364824695629083256343809141214903406666389618387513670202249623667875728770103388358279200732082446376836579241353719311460037252999766039315905272445017774072299164011068040905459865972581298311211842330196742553342149455796477164440843842002747266718244006972222775451731196475421294919716303266179502062902613905049558220180588952899332760573586587783696044565805445011900304795331259140643212767231176694120739048662700533137915738347216598747164197235948605202018365960187891298384819133629061662920699927193210284515117867175943900128467771997085363357005175440710535438527632943131446788247298833927837991274076694442125236872821729880165036858710757566704266424682359961017988950750446046192310403193128232287604658777844011554717227771781307767425442663436542411522319871182783210901796017307230951007903423859680803825739328284727419725664801937830673998556145865446488807052733850184147889961924991382912752408697780898306771608844232981855246658681064677748936490385152757131924110141943601051218086520386510574071274312244583776068282395344672256133190523973009423758387070603953896117718397201808938669492253591565914304490460134739412933913569104745077795063204824847522478496956955852899385435327027993598611471278244509840232301197877486600819575670603319241686182958524355655640057883746598579213859263845228985451829536203443802071954059757439174297309564954519538035771394388115802347637755312818293092537257627835877283106863462235008018611160809095345361971547397257721047456552508251956237524897299128946618355518802743549618161412316836768918266242532763458151217133791381603833863991581544686684028632457987339888841729545538075640670636260067775556306523706567212673461700179294338205559756073183647287177870862634018655951548573079804099212273118120492625049223169505983760949296310830223033762119119804977175694067146172863625101030497840608590747743510191959461375895954236442499012348898834127400599794458641221499640762033848529476024765106352974756648133897765507198793329266436542500590539670268450231803601448769458630892817049677535919689575487046350167880033539101511678406126838902042551042558745080207831861490965583682715361651259690411545325354270772901042555167661581776998261712101849924495125302362399142781679449544649238862814083599442601466978613695861217427274177006501549901528871755238449569283869767713442673610190710364418953156055143965761081460454769833381670858780704289123399830065515880232164553575615051010155495582862387697664413424113758466366189512518399776861696140630795587724478424080765001583537945873342971141779521303866172560926878540905100239773477223523567783999172369327562994101665399842907114399346160257512206855607092142260273652713360428928728983654104662600533388995172236841694725600188395692148171941554436881240773576273089167566585505239123937091359376767319618748399648149035282609484172456378473562758701570808010316917683764609181135580082855577789429697336520714713006414263094680161100257047795463057116847208361445697912287265240668172890493483286333755136473656925583713083013110644546369414045298408159941584078121269426028925891261315349516878713215214251215570324831229431336353795739787600139775175448073084859835993117582009957777648008943839602066030652860917443092566626664515407791584116784023506698595394003166087141690763901296723808808814562475763638775575250138953090445970240419999871637578908650841051921552058801116238493743255105246772018003169070046014326727765611528501456521173145684027522338165981761509288779353532427839114095353003882284643493344720263048552469686432116402158941804329034211420125370189002127393422123445035201871092891449758702065797515142822737725181124019512136518222376751996295907830069769655720324808526994331696620454481499195442162999377679605852078003768944699410537175125308697728278714885843745409097948026494955042269752670237498425247470869885146462540958524956290366962516706666662633910882169975457311813123529711172268915862244813899721407487208860224142571901584877268462687478634194744197973278351608274821729194932773168312537355771307185238483302341042883340912387625600662679985448564366613101540847867644781168317425316396446043007125415430544832369036394509483953409617647871185700674317372675311242080588801601919176110610311856743538079813393365636658067485358377269999992405561910942440980123595138646908511254020913492950214726998269763505043050424532610465674142889513983214604284628220184061935490315915476188029324395640610136311826323448051462273844849825453290528872523703435736697859330170761743045140130917196684212330635645334635228177007779463784668947734672830052321563729914073758350022176236425790568787595895781026874033426535512201325098440887396589179189190418841755636807741189757131175285491167711122036625872024235373946275682837507943506921885503860820950546994216488272300051677706215113710900510313986407211737261943632267281920466152344127325643771799116168158238917691383869297866185947539321889615360531631643374190860488029294251455874570435128789106151587662275834076666258293733633683507020776920567097081125992082636839287049641697485693141869264810339424191748437886708422260760810664967832791632271714841016760041521380306155882560089310081892556209349578536959199648559375043699399022902606665651997999434713666817197865039797656920083792298915936835137635040149336783379309304547548040758932824180800825510718494608953992132818064501580282121712923722482761894308520447858633555599124442974204486767776004573548100364408104918825029604520163934678395214693567403377524918932403366336997012774596258572146009221073107435431030742018553705315102259499389427992266570901486969315366829127838817298811899573402551098355279634433131323231253615990242046758183192300246876622898778417044280614096065147704415621144636410288286625381073730405726921590657732248524625278556705082936542929407471766267806884458735226740574408750452777697279830970925711684461711953016188067433530258137962759061791616822286555019611353053753444855491551328936760993148109373248506851421384632515786595364267582428511030532260174962407256820705365547272708273225100192691514208583254627147328530765253298803944246340025889797089261082709789891266509811638398898685608546361894520112433894028381475789834591059929643860157945592350390457449129666549663265489323002609680290185216845772500289779903734888030392372606756933586928429489258838177463720582746605383714857588354319217303284478560681687841460476491419538547613957946340346135708224691227388170165579616023956092700339276252895079900819687473012657352674222380316776291397678727329226533820375024373710045731035903820050915172957370344054923988739922025631536433014627256517304850250958267322569967890249219449169695878627114584004390116536628175653086000298728179888406017847679689251062107782607456802679999302535450121194891192565939039047837905453181786287393383226755908702457538103359080243833514067795983654616063002687304536600962266821611926815964486226192116416630548458646832900696068979819389154041129058678492175049277400423376402949196780476182999334351659442274383338775420363771851974558164499081798116827087121215794112903370368955950049581401258420886827222440443169006246869728175635635690931639167862840569594839992567368555031289261917687523849450982322573051743768338820319549256636952367046461284372011534941056689906306438596105817679303951212123812810063462128255523169150465581560115752587498641586520259703244413580453516903225201882472103794690849281448782423636609295992423851637894291516579418426112427335308148218193263662981159313019508630915194751320492409517633590272595523233048088353033969654744141477778918271086670206769730482994099996112647102868352660217550189602529200418976452287966089609283839212327080783207195778058052263792015375906480148806806908112157997789033955641905792767042926476306934660562625578892373880055247327431641566173774783415058059034851634931922003186221919994288067732672496746859662122091693860059880338504642110629598139190516360063378781979922828143035368466010177874006397586327710986009383832762568729759970338401937400880679103037086186436856683093481507938039186481571891438953858299061350720625432825484145147412898831795344109013085092545611800013029391826483356468488617935308212076476097068002905220787730530343783043772781587899955436321021418744251778877411999939391370044973521442125004442493848189794916511921168266844213813863251941024462477125723311110517454224395446547503127001250906310194148873677595599478966322682411135920543631403429923979316833146510513814191790698104855313139195952969002153810531267033083521099996214740894312467939896127846505377442262163791824807807061277312773056400864050285985103950737549187741590497765917856759921081017693026246813429867214537075435279628566143911604469103208272530914859593097338802879190652315139041357679769548360065371441776911978867422391058551806125382805911215817798637223025030124055483803798090919691663493186284055239186298135381239803312201703493947208910470991588462922451801255301286103257122123488650498628088827234938287195108646090749477622653070086715424224784632019070109931026759349432228292031534642101050570282017605955263705600422676260834400817060521406424675932737002645419965936374692272671300236312424972344500354380389511857885544046132262238481222178482749018286234052298999439132859680595965101379198049911179090630599114969109617590189922133254475827208106926867496242953208024286202764329469326331717767962623862042854072751611062526454041408794507448371700656359597643350856269431031112860402354936383966771537838995262259340088963638929358461899844137451283284821573715933312758818800748851832116065738921039279337725164280208684367730785465877476721655895640707470334315894992641114265649877200313560043582729028321099151658172588997297663673258188843329849204963825302199192298613736252832362618962771191191227880878839348835902417096130665843821813146576462365348314881152599439799069283236295067444940645774403622601906087620778286222063144687711546503865556163429163155842963609527157646751538170663629325515357829863178150058638349308076501323957505187380925698918941608061706057545410982765315662587766224914390804409577469739557629077753491061731943920401862706929294692589079260125031932274210875059683853618794046474843688242758983322994966036406844922855692894541879174829359650937441147862506868667640754202468919002349830790691423877037498223592427397361903832395835380349782223819672220641057483630244895591315432981338573269789792622431685116270975545917467790965706610260224024091073528559253329237663711073922251877709734189650054171551839001765373816391620798323889956997554942824766957509807389716802060637542906601197527158521463136775267437671561212140753014982425568384842947627103828753366211187165238857431334549864457105093027178922090038304451542299627191216886268202102158539666935301969586337139540673515851345429557804380750899135477921081510488066359427241898416919155396622329658361599487584942498725225928471272575995545355159440355734277750447335816262476697799474361761652727007746605883039052494704858388164900684373697747628076062617392030327104554006544531025345662414638553920363101935717331744483695193105252680011573916210988028806153212942669515942991971361521989956307669797369614734720790970910393592000890793373297702684412944541195457604073681350205141465526433976526702177308176212218145671946076227204252046220592357393698166277699477004023305020032145931135859717980108211515973409112557216295619587961545577220658794575859634990311595436858134663373855399151851062161137463164743054354395280443090895764846262303744011620962487604338294719024569535021873452582883747134048481362388870516451060664114873898970121225869421563968212371935722499647265046480297934713792845785804756064505182931978334215289116909603308963892886682861865189070206796413276302891578088577526553455785276419588880222254026993888625238888302480178650127648759489191271992166195677810918653091388441210723511330911615173071006525163795565904370382100123086133173809335512374944405217523102633385176386399633321257413720959667458396483597151678887835330715456845779110433420782903832729755511232059284997823623949260110038541362584612461015316874369780870420876977816417131880276789825921478918049712589644880654127198884053024125668241777530864456172069681982647688703708854349711576791229076199388318035307599954894442370185074852182162089989821201272537057015814154656952115608091564622447472714765990542097585846436038708541588859550692202130658927284895691967030954485272746156110373005818073503612679323199300628320994395430814122214211180397479595965151963565921499000961672012650567423481458731436178353771665903274583194379472550680639999927763414163739067498487981543223687702060008799954273664871639165557837617034479916310332083883478804318561145106664800433800724097680532880588520365372650747726364169481293068872866529748036918957718530956313699925914531398717477206441027125132112392357664784703782132645953587316770183636740728772271967228508701888064975495451147681986612936193258171519334695680142782543833916841249282342830641651155997906334157888334394710890626143313499238667824754018945761969341274806179298107842511320189299476126098436806669424725265448022323164822606875727671825862660658237181402634957719220258406371604364058614990903225757202019422727208476867048830038063553661827414401936184834717627284365736543551006479382879506876274661026058061830460588414686518070132614545928372749618982923768559931206468157352338023503381598083308608751621994142223759664777318731102029955796734457081435599063017508185476232474160556683143336756473405272131669315813924048281550221306340816552775902226241111410887070199427372214130453758799574830218076481342170431349356447957329326437445143464781550309403524710968107221202152979520791653576869150938747107023630730484752462180217955527324359359512888034279196052312879446600391530398088435788037742312087096114325924290052635468081412883757437792110028085445273310185109746285356343236936178656070959098359878958446036779653916018339111216487354937188315300791286221584063932133811259665656846195699779785116274660314329016964129091781301413947333659212125595982768105076305568954955877731841533081196155700321186132153410437861704255178395615694064146361897928270953757033146507572691003046549271271254081409520314872330712847730109527475035717524445471323829136124314234127430341195234655865967026709280818246354481083316767078607445305745712648645937967022568574529435478002100461521904700056054506169900962420835178451554630167280969672127764377669495636730876697627011572656140007334636804558399675000690869869341950329328238276471047327474489872894538699568660332509711547795610938510187986658459034019303813808384613172466469698431462997819780715759420250111448690752648366882373167274646939489897737224863105390914597213108629345131549866733939407293587873152208285477118058756990334477652977010242004568089703183638509613846815832859588791130932980447117930436684117351572556870092720045122247235337564524263133646707344877804503866447720395280825035215753834913055901917772277606708361366851971923662909193992611959925154647454588752040067226737724495348808762581899638202115286769894113953810913994731245368609348250486313627371642146837900669268166353997465464071413512739044405869265148796399747245838172014874171045114982582573915533724677171020730712970172763506334510056137355234773101841405858629775131120908824353881190905820221811279103841702394228964888150010369318277929497574932460165878973466659749297923242634634745885341723748168061575101165186813278527004236279890031842651564060089415683377939628307172476232582917333258757807405007407241840130392828739985818041556227811164290191020997406714443529612659171854731145731792814808796596463409766683515025537533211969778053764599997959764145920879780883673760983888860903305579766602212250043254688915181358284188385453247501599936275236850308393002226323144468430574657380786292867463179964995722931854943181068532588484921549921834435820932375776718418208447380617045555061145759943061351994455500152649544062095680684488885408923699353854174351199308276020375216265994171505569870784757891607784965861213761078486688256930492086063118489357664627744657534361463712500298344664218997612105361374207512103219833115271035453611978424025211685704600235350116262389684779747803951745778594487480803944875731980860650166357842535421211028778001018195140208809191806908061908229019746060677878465707796811472700257073536189193555208633256595225101640007405786483413926913259286968720714299462455925121658385556184738408625395160760947946576512643299016008074468450679297517713076029076522033336224951126173801536990927137342141906536537291529341419363770032634277526375702495113458088147288024178057959421386200988260063990341046550089006001039118061158170619692661890241293383507507861860174596451691841810909352104529893681697830309465365066525119821219752216454631597680995340570846575027062013100304233894034823350079765916203311529813835271836101461302335364062914570363210070924078751920709875057657741188764567062877836733891381410476044803167620670845811850926781559724924211150878118673772514075682884354434386085662448888655957333929461718459586943951784212598462577729388256954231461943122029057372591191289216311376259945588459781645133416439629992774401726647331504773650144400120766693030466479246790767529831950149708090220575236829069302670536392823569524320303227638358372759156101197521028218916338051558915299275402164667204765946994421002021396312013508832325562028745186475389131327242114047185654465659664791396079112619428343071723034984358557020067964268876265452129438695118757236140174083201956118283558652381230620506930031552108277641335001857276907703069984575441457349479893585881848276872780593382202628473704843988665833630164799081403754675158696008844038120227808145002689831298543421545266589686609343491912072962996232031419793016340361371146363584427743185542480204748217323451974386343004828997671838983928103866390197146271682824777111801572209983452442290823521455565977167125707493652051356094181715224710376464149135835840292168270076121494671906049654517409744904344004727771281047731557143079756441478478548245097644987260648234674997095501018461895838579424943021838934275241917911503406642166826491306805926899301132993766413669297886496352442953708830791971287178372639182584376838574747272577479191683130387216087020207246115232521438274321162365490656138374176129435842910576341171413955508242189226815239612944874534516555280677231696647107778613048585039119837210289595796728950738669144198034361997125774303857764749770458773795941523572286107587854511226593438561928856165294574065061898090413171131906006663196155168865166795909069876101436405095482161931309207122200848507185911323590483763977427826629511702357834339527674629614746144234838650586597802875949846336724322201306489340207187756829955573848634251378297409247954542521797513776669031330931338170965179796601556090383590552219558324632726731818942323227653142787846965673121987386478115309926265395221904607612097340848801199297651171304330897189338704524353321805034767382918595934722680966218806236411174120099536157821963355996365762665316472328289485993714875883983770269056684500372995815410467116734696258628999614743370570130543974990228783768754539285259304827965856133196658003940171269620042930121705860691317303876494404773341869559774478874191922156438408954471518938506298125060317921232684785888595009379993962250142530431603159431208732460333170627777310690687770678795306800814832658228908543844186796352944256588212539237308817552044435692821030471029568430844555835137414529357985222911382216466843904016308131959943964877097791814512309964426624907892512742397726864804921606088565373879148493036165195457399732428428260323425589601405820107227639190324787097005130068823426043494597509094976803146030580986996598484047443031603418641109771867046039133988402847064878762485815933219707170084412955237194533269642491337424691712308253491663595323194113827827850586497580255945641783983533957950496364307538367996375762020305338921086871293787936035043917984285666187564937928070337184554925623308038847487312991647210752710713467307853378838949636211267533125843574355684328913375183165434559709127007574725566937500675440830236641219667576862467677184670647530333535303778199944226014827468517019972715179526902673574850356255655043446599742248013946830638953360547598139414476123992074418548491427557734664753667756061670657426038880209184887256513030085344559418511715344543713899148581168055682264019471551263146892083927792249187663563524489644002124420470294048578044123194273337926936962026681233638325256590292088599521718472989460836971319211146281650604425102528339903754314798650024321281420733821587885858004989573230590041792573247292769750860830967408593418666734162390232076133108634306568098621257745820902766056863648962655047257811743258015623479492092461365844011970268902521040030267537884659801556753344462707235438176937512408494642432486481877976183196586287886059960571128653927755071773013153062579386399443217090146410230582831591170219106655489460707944475137846132046947716665831331473036190268621235309760885819638138000625649208913043841340843688211827566686086722966346630297257187683558161642680192308884469538339381537455661759814387842475691857597996619806859505588113140909428157997057701880759732345130903435980263506418402578164841819986440449163619662732417975671537699830017973079488212187916446311247447151400341013166596088113835014346543384012983207420148704635501029695271248998202096289579834668433545352762162217033618283762978850930401866239810900223998006727366842524628395490351783025828470723376489372914160248308722266967687161269981548296647754932264536258605349313396080529700167833848529619874655001690262951926201451238764559303389000085984536086885281584735441623621374954443688235794554809278172560495275163704814960997432915084958461321644185015263933575015223669131548439156046317836381565700727739759272935023657893858291409582150358535125844420275484307096871283463461164852916333629503643792329746029196683137828498786773303568350404926402805131518858399351676631418699439758303594380826808001077446247329282520570213849691916753539339429060064370361415393529298364251708983728383152000091888387708042828240381673754098641892687970968741470798088972272862102807620533352679202334042903880790307399186537392196394908317317365166973335357578189180705042536291544399303980057482467568230990643012108729749353827517790970478638747630979995019251590775337932308221991241048076701337552750716580566689513353944883722485494273410825742255994974345108348441890217079284960864558723900560017603862281793884192554161071019185802011060849220349677031087136320568849251923056907103934671298739561570032219446047539506310286776092440356679107848915861054393178891150733712825502191574691427251385034838174431023463400336702680186798504274030330347294283599851620534187529654949799814113526476880396502140190458544749595874889050571895813367340259689827198394627735376142325627606601220835979905526601741013612919297726169819373364744628992386098495678757657375651410584959316806102045815411128507581609253308332156819702732326841735188026194056507187873155175872293989822939378065933615147473119477668808536358763851418303605034384833911541746903852057037910945081935227162854669656281362988490594170983477682007060188958727985525128913100670002339615259513333025180075523630730078137454364534355089872041041690069775435354798495701387087571223012830956687935832390235270065331766228503986892692257064748676529237092826317955614205786731429749427302766102827102209182479445530336757222337857981197188142239773259779678817796219720643270112621024040235674206925913647361719736818180203801504997728050084312977064348809696304303312682096333633222065673983075101719984866930148527423534948197104938439560204046200104367153353890212889506618712163365632363312264146329475114791756663497729800057669799325782608203499727122374813047067851139665419082314969491402274426398453612587827311125245024137642247024943591965541638172977393475995958461553065622704352624671134892417671705207587139369142715400117732239750429763420223941709088690061351970370284571476884377873173247824550505532103922871014563263691394003164555214119607068590610787147665921148081039296870872170345987957631314688428402369621370910451449862519768401854072597815902708632706040635793546137950885431763776762589266431181653527384729473534103298447766183710682605251353632234378731268093304278709784321820194077863639707886372843343341400498060397773913588178739020239605382543855327102505926738103635580036199172803345371554945048591656187175693897299435061613899089448759366596595422347859066441270020017312618728259295964612878530505183853710320122738570269808971572038827570138991042150809181709239772253406256252477668015167277483116360240634887297536575633162249584631597121439440563798909735767918397362548108767120020581620677018903215225530754459278555956816048036681045108849158970135610574869509195268976655715197732098813000693673543161170108929226972190478538751501977257371649665202544562721102749168451824227007484594314156845462823783679156493738510476422853086081398729002319222867326692942295382001332216911913867077116311688149910163144224155465583241811679428093396570992039836356824914996897712586565165854371234480165615215020583192368599451979151152682945754114658151729827727809316423525608160392436433381107268198917453139279221573379157268713061999600303796608149718607567081917874051695603324310820809178093869112962597683169787930013838472651298324557637847352986235126764155226664459073765064139485927062002575461403416481889467492295598579713791953919301606666331954242504665675802667744014286932279347872495716964402101948786652498702546879181020639365324290515801233974416615372315806519318675711465718619626363191855218074951396861961586694225182979911401925798990202925272983295988642187836135487696899850074193125522362294589350175510720307404407905906174925306512718308533401012580999874381840775339395926675494250294091433499229964743672139656787265626808039204920021853415617744918330880186071481149615862190595167580838292150672571508790118457797513792929442920486230545786948772115118365989360820532312133263011022941187573479527900621607230411613890445530270241361185358218051063806695364088556432691542681703905343507090377694041925429480604443859005339753461613465515700658889740390813710852974455063598171957980893299530129759304645241728827015601919849917247134397938673629241545526687628349946028600030319969260398552908342298508170472473725343231430176100110304350914715033640946618316801566668663439050358606144454959149059598645498198845339861254488957495497589915422455304533521887620448002506329535602019183825008944206350485931695011471665215206002289891801054039173293262133125678524043507546283342619330494731413139670325420291859207637336698112683858771833229496701584319580227472921350046068738958609787767733107338081726386703853532757524883687593377326106681286585979370774745168736655446335096260397630606114369813819947658935669527834235794211710266610191899933931738376374850691413165990103707712802428020493796347637589731412890159113212193056764005282640778742610559974446016918203043364880483196060386433005077859530715227620168983750362998161333385150399927550286206638591886799567088933539287997763540465165190432711557505820713132374720843140678431364823224526266120236037583523472326590796303405142899242742811339831088669181753860742717807803586097631889364531953421469139280505071997152626643555164204238628855739481531248030871294724819389076947353424870362663502139180944571654656766075917782190166476829040516227041151426643575651935382573873042300967857354869149568808285076535272480002965995401117473018126562018224675973880918571067901415385355311683126020614847814461688494499021310043855659284457012903574968635511269842180987533488084052422037728167692483178730716044114930776624339816972938179241662262144839615118006880157616390140654900793854889988675425800593872845740873802791235901459624125574667429050743434955094660983223946093195897700453717611346395249295133368207946989893169814287659392083524004552217870638428739649240041406849471560956277721005517133313125779607151522443326926257828348818793458388354306400639653066249978603448759808561555069161243329809968430892958984783434121711635656955777005295652263400335899023945203684372787754087427658454810974659432357939553674064996734128422047528824226689539090917725762198763549624215298789471355589257745907841927941670728631327594137825616040628363640974573852866550720823101636711818626084716747099222075759694898433255978939778704515885983975235499204846255860651170583138984804839339464706768194266027124951368507135065591594094453744204745048616840303638936450594033180638870030029249234426590973959590205339919667187426254157696411972881954166126241226658248358462743946902924744382785535905994593803332213927844244038868362824624484024615041416743732271817461919811789795893971284650058662554778791149809432694777710252090648169160481346996870895508848894712272380238994388995400555010843532677018244619346622083213316073458411239233567689902435577688512011644610223498442084067723456493083553312737913746486062692492452127866240536340974079307651275978493150633223050600577027593263984004947425593467683040981190661572542426888414564521074563245015855046270571815924351621647753499900820106176138575035896192042210505359873521121376907985818018986532792000487587203128399657967698110621428968294047482849292137908928164585379627386299607427292560882492182074923516679808079851273636365932999408507344592255538298450947936709679500656439334032240144960306627695765007144080868901444363729239005789035501848348210836797628644025469604470422656283738724026923120267476247681203415510103728071372402810080705461213430650590632864624171608399489852783289157009288674903274771005924842448993841632085265111463686935160958624289779793280633382086361863595399582384195665438041730962206253101927388569910670509109197254399716182055163699514313395502662393377703780476316110017501311873309262310535699815945438036041373786305935318649733426838523785013961189603225021779750764113212562990389733697278199717659862089185764019115330649103758088655196582538591518936939797468178376135419985161723377755338653442555300255123141452630184035644433186698735187322298523311667036661030503008904471155457942991929385995654990996880920895343843542937943975429344138371004229880151160315659862267932050358387439118170516988022658621447990751116768929778248136547975172877212442004243909818765306732956387933278003985311174520414109875816096085610799771777321665486542457298494564449428365983157266956421019068464850330358657253512645953501673172695606047112736602931310374648143532143299570424309903558892571140006323345856607978417504836185154453981744129544409747497508404242598948819257068985620560987226476466119037935644535728441127799871894132671306925622374392507884653103264604544245459550743765879814663762163027668410204618336402477094540796405434616625974974682640943968744425222522606577674770233195335698353528180515856228539859082689510822495388020786114917255763563544723839963510705805528414588790856539679882750429298065398811311388501179088386051696593873517893504066108779623199869936997019640006409078785235207734664882485671606874442880093870255864367235392660160104248308388621612608219366160143222183396681314669624441809040465477297296857985120471178293792571675848578407197986010104277986174027780111288836269611056236598939102233799216137522666540402789414675519938508239755982623422275355510559143122891705890455337410630286830225570670923406927227434668606037384575500612955590700872814485585999558519591398230319258071585792242037727558397704143140820126090544581874918051245614927526896718402654806554533005352015108708642353927656127871339352753590630514982263082021302671976734910015443723018331346997528654346444528929338043379540967205727882986446282005000750056566108102576536869196130433889311636704937976377741800111641675695849145973236760536153668242492811706140560868791926073042825381633437517970962004714640069613498516705469120449296065836848989193662457270240228770875579687949350593942205021535927599454380587194176183354011783000147270908709326009440231517893110193266876356821006680727849303539936739557768941881528990994609107737577036689510348084289054109534561652135898075969409928014205387269171331016837622686482509824282392219782440502115035810078796524655061097182420200284611868428026122351777051456334578869609279710856187505925104852038661539393560959250774530930653859151928336881377903390830403521416387011582006221018458567961568145475100073733339243894802833112626283089389357590165502318281492166136028119845484429549866282840469264320680283729213728125977163272111913435069323761598015202654624862546034564202244331216702957436985726346105414556813983218163322972943806765469334215320332474569173538903827471930359841227184997151494414477809587420268372914241181787314134886281946562587823614321040271927641696928370443062534215237611414739659432484780809851655613125174759202125721240958528437900960379994194127348961686042233018112386342392456757053586771325505676724235921700053936443492920871311906755882243541996059093849395250355791752199797615708356807496728879982027984725675806314880380238685895402207570005331902587575995084783558001751246209225932821497413786948503559642176990340008204161395526879486365292131454359800432769181533236631692119868178852770956238935907407129828398479209192544508440311909342306911329152388698353312871583564723841391675503191124157704684466916903521804985625362681393624679244176451432108523366571871698734159242166517462782574661698845423069003292064060885164540133243823524010171321122066344908206499248178409776938821552105913190096751719103272292902966155118801891522667193293402816532736421359218075254675047304759196860028447421466689780792996715328941680318393010469961718334175897187135103159593296989812204251157782871797761367463958192389239608092236645013559564273829090730377554374266875000900593918647126467888885079464752836762023768304090589382959750686763070357683487556889599116553608030625369621860774368141941501871127156633274163180133505183033650097971198502206668831866693406723075251372014974656938574515824848162308698899031046841115891091271906514007972510674912371571208258605031076912689052540951509770891085019503415188723526530114031054045507897977936846883368026353762099370899495236472329227690021991953273082829392725664625574832170179322024773191819135281303947756763791183611369846347960416651511355109375701191649991393104602165628839240416825631958912491700083512204203903624768627836756831743589393118941427057962125600305298283399966178445595353111023481484629360323507689983049943802753565717507038228330752467785738727589905695803336253646923454462176006261325399399127458749059520198340064951092242730921436141317810876662696371677200932582724464899608445884914317310212613129269507731639638650908258484799138739119228349079010020544810347373799275781489493845946231249745646482662246875369328773321248990708503757861064204134513943458741029039672028190446073309787165243973849290832260224109845148325532937764519824146798664907393591883725147976676188226566197301084930986612571335911710909669551263130838606597884004586762785234916595933900663712184101108068353771358934583425137829276221900329750481534090164593790192746420110486654282015885453313975875635347723500512014819010546890585444690074128596680442996055843417679891513989972233799904809633579901756230517864872988383058741003606624253713082987807528871626649293431179080525594453910381866488513423069627140020209037616323167452724293172785949319582491019023633943148064842090908917776532280303022951216534964198682059352898085249055958678649060826407756769323145070239217316801994187263539994873210749411163635933500931329167526641057305613781419610466103863067134503104318648701384680136427392026428183827495838843481133720669295105466015395054731093511728623296450362972125162085216562613150750575673325001964370251197574434609323836391241894176789904596647843131559547192426171188803932130325710687386461251485959688150595974146609817293149404014623981528343617427581865123892558757318727990252666414030674834010937548325630938577395636168303865715702476085732201086318057022814249388859873238442921348692866976058606564994338634958401297476752158643150371518124490773018358946524281139904104080326338900891679446690775065296653842380331859078113651465143332423424444695274158568795852579966459195148533585216328313643197439012566261670090311915511429961680399006577543169940382619299127853526672039433429986675250690195635662665534100708640634464759102393444243390366436586978357308498720648799236167664797045713352501338783081308807843458110458166009720833299929637300733402391743583897615128163507935923832426760788659856544765605898624854660520415997458254003753322322940320267637051148616117823847015748602267532257999462401534332752155198685237346281205074645248856056127300649983874533469646479814603152367448681487247434583960781835672353327266264526311639714711082371287773381784181539264295124258614935027147158990633813900039538068723113221648422975516917347870449518064421302025575720818830430464722503827662870015596181856384607323917266885475267486916810143477048421005962919151507267939393979502229553815260265304648678288563553783318528790295680244411454893838525325410095187509097094757014904789127661488554849501511552859765152146478688528746234022143176353114885351683946960849524007901130197819288410788571181460590145756581726012133267982708547668279566424748939922635986541432283065682202515481151796594293394906898438494740172824542524682874686450446054478358510864648062380064591800993309167600243018913351204369495592147712169268125581015252810298301151123031398387293076759857230859024082284436883906769001448812029434438432451721398927115976821707267350080371904460188543922326775065051647614149077500631832082764082502703385662686607029424881417573767672659482969650458792931805728081647903758952990919490378973367821175551026176482267159301499378855418304001563352065781614414418199956884631304617686220123953739460862008308124646296994147986594376260540654491764926177346804797892446665903648226207385102915421146657463906177356505842280348455900480430979414864058200639475663606882476746607714216431867882647673835183945905485564366619555305415742729669219774205404757941921368538530868767558503125717688901400044423390194275961618018515109598951242915864833566703114977928873418952703635878184416769330093748663364661289272123230036562132618838486745838793969327639002889100802217085582323138347843832495729010274292246864393287021461453725423539494555553088063291191618596242666549365740999453748569327160532567475464947943615588330355328231658649699340581781609589774645777732698046766982874353085770889544451074580895447300046600320899506146689181178152932731645760839270333903228748586436488682435966790584149587203778099828480534595787799018668788801115665275938040915155540928824294054393157883257549984720153589938015255578991925403802213806150000728705821855808689550626126906207351259245590636714796337535091196759404128481298178114993775173071983540560205839619406638801556653058770561280432162702061239717869991727639714788737118688548367954711037252823969449347957033284892711395948925816430605775348396118579689308254056721745381130391589848932284887743940014012528103766770204620367882243538567434181087913776025539579804289976672968083454904212632370872084870232429533507778807215804143046747565616677121094513622076084062079605793062159134646468810298175452815854709487738238651074364331122576073096619607002584635033191139116611748145944051708992725917384749783007600495786195741291926830016544389810101040459923816247310988059085346370477586164821173438428235671597285509007444170181572213778473527973111153709587627072037386336983812718658513395623708450614692602290009446729341679440783325820423516280238544265877921559076383580630212287256875486933947602419988558373586614997779097663094845166536173691324579387985367347346751387762191988013420403340080803703002028881990906962203475500813385859503963627643842804339095694337896649978899812764642963626460929237052106746455796168033523583859268472577213746966460748830664853925671114970622570072475106487433974533739461998601545701406056169730172851191335646464997054616091185766256669781891387609984401933060041011942138625858537970145179297296822022304144556360744498466284293947391710917521298233661150190712497842511717561224309306350006417617309817720386682430071702281541356162600741822925652603536279850302023397736810743906359316760258679365494944294785908564061510515566680616297973770105011487923713365269940831002097953489529892823501611424981144556537509974196242479658684479048181240675783980782703748627704090993845389575695296141214461209046955131645036948474094209731805665133729637858366234022495216396115627382448372058211930332764816685170587163609621284206212720783214039632767571073315276680862216240587927928940922843071516962732067658369292668180759869413082839112742726519468043075075279349169839813499114712784467097393314687246942046162317205555828389818873840951971355898242268421454535298872033595966826451918736076198426608821990764628276931017225968856675106063570642683644741266249681738112027070796593716717450791629397617425886666968881216049186144623545580726388026544141894977609628000409464243027933354309015942318554114535137924561816169923516058084897823363781850478567289158754151514725256510484246764567363937871768465526071427764632883579144733024193378015200459566601909415205064906265068017618270740410633145016370829080046472883821325074637242397770512168485945322408235674033997442036354067092528547037351051746939069322440316530951568587735342177776590923552886252845438042211022617948189089648041790198394602239672278374508015136648949589291427068608218300133305182178265499045295310850250866636205329368764048981126908524014062387203157433103751844887161377465938698926832940688521812259055018011184575599334333203481014568908099590027999569133330118984307401071429865937971956353699131956096138692819985390640292074172831275333013410844386894306639494560890765543736059682405314367233211903015745369842240144162471574804992125877162615414295856077575077739677286959808980525078143571862723330924256661112719705519096246474576064350097344068344042231297020353959983606091024735296229948366531477189027353037620941120109435112247106241234540730212568859990820113202347716375280185312397776004425392360816792801873693530520695187380662255797224823733324956651750951929394123315726588711831954389397910432265648844918713742911068335763466145691884736524283226742149123709949369567743496828730429223833676695944937874091670702329889600813505257453031584152805546825380066105738174994881560300502997559840201549551644515406475226987673645278102962611450944746378210050824658525556071528154880170675742143724311043474768621888758341641104529751902970534555108345461895346995059734831378141152430848585019557504477686332327787993271351474989741862907838684301886492495413725658311634841269042376237851132495182058481906305851715042977542043720406222657447603441986806582062411489508669775534495507870726600059121051866003574337098241214350321337166613102033706695724698673768812257220258102280885240762226787633909197410516563894482348468943671161911926391350508692487466339171279782493916695438990568243561855813303065994079568903062837973581185345546943784224935238781584634230954085348313208598965154788354450744163704572801260361779724595971698801568987164790028979902919143412705982504956071692813248731735358040158852909234859005789775790076797530205827437787507473536380809527786997256528697381896891308685404611730984751837561216287765307771891044520603370536545505293680719538366225313311900478263949871106536289494225272374588094148246695617305211914626800305444110720858948208614716106423807682821353952072629796297124221582774972793336972545352926238597853540124570330488410962877844340088594842614605156336256792708675290425528035745312455950515020797097123516079694866304008346468712574760761852350800915329020508776503093727314946867989159539006938755068092589146198936336010802704082417458338860289613203660120175698814043410804707364193381129121880537826945344161464853607521880658446623940201496126518523164257577851665912214469542758348683511632438614430082263875164677835008836438926897463688002603552019281624498175901087389819196494717050930144601777789606861364661431729700119020858367316970742026905166049578176003546285328669451216080451058987789378818334880958757783262767896019905304635288426045381582961010326603772864940789512247379386580616081667635640650587957064836305007493880744862735022702586544939408550725294744206495812419376316078925288335811734956954741685876473809494243904865042779929414443917943865488485928959047684122173874574861970184881295920463647907663404475516526313470475324475272528862768977536770733823209496870093987440362501053459625661052424816772876215945539179709479914167251916552063241633513918348916238853531429834103998488026914748935495879693363737292868424355523054129941989175273251412624909692340497508751062203163292643631474435779125714818571286028763958787112377224995601624150645058152013989826926242594380638999096098485680370616232114264868904942036341258670991887832623189393842848812184252332408383391817158913642119625680645599291130630932441911295223272043051925633662974382550258587096337621205459153678819512085044462697572381405253182794208660852450477467433190671498675112945567793840394023159909546142311719222592919805504786727347916995763126570727488980356459472126595958401041041807487172544708706433025142645100429327031838621486398613742859757956704548325475243556392588447133848230009782613731053123305431819013849972884161220670185800426524096451164373684112040098909551184860942439401389444290754419806784152357296194668848782756808536107555269861855386322802055230875800056049050027819305989979144808407353299487900347936013962524792908661893628613022686355910873386972894734974397565797801417562118986823825804702254480436450810464828754029483084024538216569454376137818919257965350750560546777845108642611555816873473619115306199268796186311444972391697085749182156438293294554689200544232749846144270633940852298941460973772635374332247827753921418669135892593121913961204779122398730986070405778541895078882296632681446358713256223750485320406913549101640120249669626944824814394390956473220074461590474499252189443053704157874570032251713856426787195870194207184198688796503538500881460691282929067264552838055087789558954544794989668761972260006826740483967198071782381069274151867136496582095532626794337951509462289618434422526195275025522956444345804564817600302204307403828665461479780547097201012971299073465616081666943936740211903359146640699625786406404352299634005597139394059676935333916030796671194534988051415836717696155791800767411070264803114532578788274399725340076663078776915399298329472026943441061833290424928142629703018398441843463021088263241791512359452932082563345847757150539469445776892209779239726167660961503543143239760110076689674547800109889376454017082146190554053994303331249099083082900301355941895519634411833898735268274348080709297096016774883976091411105094126696424037411755073160823155033216935211463844741035158867602293096456863192338546699216161329654141057233865888249023231993420663658407389560900535485812112766754345714315040442076262699600947041591387661448350834834803320260795419062634598836122506325466736510835960004715155973967085757842294090991811432338615448281433276698954487059386280838992029352364506799342810398222503259701984546174897466050883286617265813157416222972063301994949066378029568448023060156068507040672203901061524545017965284486295136029665878641769997850406325479193181936042881197051456225828641646958606080202080862567721635632710551918610035627557569612984904768901928271536482153906456045459424771312227351487914822869015751511521970591579318680618382164558340763854353213074557912050896876273147656083282539486628403233578252618991702487118374218236077004780846418029025564913453434258987204714504383916169774227704046826581966274087429336969638138536055917889226480998683822579409158299443334984168155166789281618267438685509678552791375307214284771982118680354158314049447268116177032655479495285803538828168853457883514541458732153008842261898671754646119332005684549176395993093362744629150996773186946127675201345858274501097746596186749659243027281496237951654193522280933615184824328955631776737322780699243995699704601358616834486296184899910072912123949883487887795664856811315073466146057859922378147648516828852492947071758518176505855891576368289923854676051845278045044867826260737668104186329904694607783247016227966969563471112650978245189272277443868536788185406165571110179614789718198988529848775768701318664513443920965377586722683287477014137484817758462912979642050693576353301441370427864607971773244343002357892994783077034324123604869913785137598193663240104021419642229956448317030085538484702474960935669179621348446975764245000834836182604541495518924845096961013384411397040480579318948037352360138495676456210527853133587585902706173211882057055416772152195715361187794680433760996736543050882338690566738383080415396209093462752901862093588815427965400396722339136659087265004579621561499026279232296574057037581818903434804505052899453304819068515260786257059354770448696238881532553906727667827484961104437786654923140434563875623970318357201823873452198962767735831882176375200592712623387092919573596729620169197987736315809251303397531382797777693138570704118871388214911643194542307218955040396514987739807819651392435308582471885851049474363146383817731484193561237802339360112207084307244809201862772399608789540201569143805812313385492199055926841513023248049397949079389857204725548189687139194459429780452763342099896621931651018783801356085287192840311347710715459554255419589107834371006646118905961376722268123813077202243193254203427798496362658289046867241824559598716198069416180921790533840989040972046363765302185388178229401565594089097949460892720151970825154322156742276333877748626197852753261435514341052744727336088776749299607714048036152528078260802205893061338425816160460091691531724469989311745327124266591421829373818028753378938940503241816676928083103665191383318239022408922283940972352904042759699895669891102609631823498365597996595640369692479028283181627004528976540737610388474879372078298575452884282270473817707766777650757062151748017570795081984412120167097285447865311661303372485813530433705619831631116323003692148336464390558434482377465806960430278115204404752623893265916078195071950171266391294068873416690918146492887825595683197667908146270677754685887424110549942687774376404355214666100441471454153672748091918872656237727177449345584860653289727844010872556552585299511016659339293431608003162697576513189040234138500818395208135891815963690487612792745065927382274181510672369769688669318118456086079989636600268830100095523149270478029567929280867518511926802245526011976326842065414563334408443908331163194124605063923187789989485760060482498231723944613290710369063174437684590133637270168111602471923223971330797065906446006707569277156079740942585759857558795711758344692414935158382348400586537212041090190143946655995617041211005622418665492995339795138204531418598875128157609509140359899261445489822914739037227584428244002331322500957431487240389286951831288418725877064110917448272855154415533509851526934257225365063176381416582804818080237700381732287316987774739779191865718423223450785857135092605099546170382323552272973356491904950855799256173753738012522205777117703228831163748210924205643662265332802170540682210174958632847520617764370946176395543025975069193447904921409719339938722993769323967284183672282442698172945612729956560037729547162452363237997435564785832011756644164014860664525170712151601832151097827709964861419731400315497571641694273564362771995456721887248508464580559467724138842918509374830860696725002889583406242735060565007573244196143512366508475991630561299319808348923533345195573600389099629002792919899503038124612808019773643194550307723531224866348696320358280585421349416925356305552839631589391461527044314108976095543562058604930142756972922406541901759210307266437509018901298581432120476315618649683274563830858204844348879972139213107654428261200871540204984527301765659366882989366701355361230122740651024086253618037408782210750100743386963541881869981841074566088775331132943709118989113825602469930052815378471075866035700213464625638099849086964787820949583963655480031433838196573254392584552912413168691614678530955140718188126100837660561062069889333850345486178928874025720896651748685896755487488917423709384253547874589653253825303684011035360419278068526063526462419066410463409432985434619164431398523169428678944378322081592303896742031447362841429206076038639285062938161322660236292744523516342999345696163432756027853334649999992269745974168743252229133629663396234362876774317602169614620477988131373191194532773365220153338083123726515976273076611952078284997078163993586031750488130074042366285746070580967251201478199293846709319323875623169738320065698897479967836443299450814345466223555644819447870523018406282899345395793559702706240862854378023055634686189596182388767920987126187229646748254587450642129460943850739822884937876906034958422631057132231743633868971355150672277464729496625816150180284077357853707081212582849363055702411530760758476654770659169488847773796598579670251777694592615079198190528578410626176761505316834424472049650228219309760348692145252756480101849614794664966537649977099457314454215775449584025899134005811997071881091737083006425223201400193821059681058934111278773100685202578050899869918443095190788459845226150130964145639568686089040109803009793737548422334988567481686954005774938349470749774004405260416022160388089475880496820796992322974728421701150826353061604161269509470403987422024240693607865226742990956370637972458826886977764676155795846364512521475196397836241290338050492334555520123004427005513644600819211179401224928980359654703391965154285225085156678760066635027703767862656537470148057126287822308505011168536206628419237035825788708916495899360575716132732286188994439560818897451993728507469504956732605930436422051686897225876967847173771056296566058272330713801213097938797764197762367456974920128385524371580694470581365351699134687872637111103263205223822789359371704147569275262762311584332504032439481911513476298206196547142488796110669698978482593642445990962634683576847863381813987505217881488979500778015143979877335928172727996616122860738857934494665965439251218648442221785762133533252559222995909725783042840989155577253896397627290152204934825943552159392631148837916722911336704888891874388993668571611357897786728147658363921729431113268899548081294165937899333830001288446331224902072263859254466339447730922563044232337616294263936099116976301663015737760211998685852596978195473787292667954754787761492948920139607441852071326413853701819512155765091785505537470777411335480433406633627255466298824429887826649879174136133782562827365574090088594811644775305364361414495664927291553111334953117869906570654903296881857654444399358104514308251441001847462405935638425410882289790399924377392801371161703417616278535488630664338428451872237192369787941079877272919981268921888785095819427652185136446323872893004221499566113955765140214331933267053874907699381903339303625098377443668276382049057858197861097347718257216187124017700768441922573597496690228575361139445332573328487111088263115965803321592040091785548415171010153816844280494224720966353023287878471922587000431881103217439453401233526823268467270259357363132080907688795735073917584418869146567693868793953655974290186850549198998698154128790944685696094168568920542423563785263007498458466083577125803188503222686030046401330010859220377662392141902462409000669121151002182431604728115009026275098091914794954070071027507561461804626054902375535855235222214368279257122580512183936113518569425148659490489212208893332174451352132027994775320868120955869440238244304065370943717119283983982429340796166682928848238080799476555006268466315312126129820384141410251152328897549978870092021713250365625853000960613490800205199085616551760748044160310079536932977549260341677789945219792191528358353768440146493516361055867073064818080290526913019677730064123863137443079671159655094969592448564384159656376081361240971650339775141774345636408022309694964132207512310158753397361588469684466471252961598084931639702107050363988617082275431590143786520449691049389367955707183293723676938575532967878296360928709699005403789734532240916171491120157404734896045946649026369464636567991215832217647488567259114322465433639536726921983191544128870000638524047938397430877760416563808756544095080578650464495317235471422148459036825788153326729881957070945426359392715878112258643887632970801733968105110049280520019772462925810364645424204237484996643254390291079080099398342101280758190440835943369321534833198574126567035342260350286994677192646948578169308650674534640902557308754181854192997544976312057123005365460697272009536820257365118093312969777100123239593927159087453447924052326563800483093326812780302067703578618425187805262441555194523672785423768833294638826774814430475593678853073350572791472936076349202262087142959767105450281472010521670646357931301729686059860304690495294256882127448116871821371620940789381003711710186979596119299696456705225642342406735765258085500533142405543600323623238348671192563556906379874788492255205999189307100958807036625306258174534548474633424317239111029289941730867034141765508816087742074565301174655510149666705637787026413426376137434339855570239473584108200103464169506231426229277371786269229021363808309517884435021654765418498865559650137105699487055028196706268255489461895994177247517884730799293635571250368580272700630799456293974297091411302669605968427507385234845697756918243452309916603621350652289608991513087703673139892136519860609410220478831949857501652079247345740608365510757192881394316940637039855416020275174840633024892307391810776253087550303628175921680620736136326541759961543429846460900808665865689441349777277353277078321142233793516949141428352999229553249659395691037362434641673239247355917106712852876226901017863012119512275921052896154209769665871405725407871524458348246733587119887512322948434532991764654390938521865309788166392370294698903963795358650851561244857361335190740901717752502773381270095037355997645038171679338968387809014929614790742097091608674697251040978264447640155793190559713136897992343505242593005722116928360694484663771320531951647923609241469918790356122657347379035587755951351678936493969156550575292846203135740283978968030462624148578598580891625411467176425635165832433003313675290357155859798503761671369298673451770291091778613489758080552863212668831332027419896698971467646552608779424201260339726376901247013993295811748676154819917142885019236679831952192855272947795424811763031636410237525850543936124162742081085722758785192790518894822244216740259036568681672935302988751850004856689771946219685034961567405697757488701193563479690321933551985056129058029493751805983770894634133741060778473705638332435361438950592307720839687050139860189329827048927310089425118293144492330983104715491461625900630053845757562546310914356861863946022356849536372354437218315706583131293366231075636386648352125314347179297030845047784769090043371572216542574624398948564861999256518473888133003641022857307820581458396925751954348902243159480185945438572170748528038898884966317494901991898977672498169698311748631121377805661213204256532490527337412025598914448138455982537524776756719845079501527855304277126725387364594889634964910151545211475465979015184267407415010869162667449280622793546709897714598807283244217668832605174162932905087429289065729025619351978245181449134414412651778585209206873175551824806667283490746171135125192791625301187520054580140186212618990900719254848541281287435419426723932895290078792607712468498259702720131224585515868546710229984048202176264956367653568824790360879661680381753815760096871284399746526943747280957782710040384419728761641770843107649394632320557757495683280365069267289970310287412971618259898469921810969601233737944407574506249314105393330008704646643559164642423843311352975419387257422213219697320450171110135473971676197329054217514487760500356877104023023585842131269612175347096984681046572824295033101298650069082479264145472554699019885239206442483614414453681655273422081375401947507962735052358571348600729446826485958866864321889642707522236403065769708969460069666052094377401446875837932284253651566129348840895842445589993172202426085652160608100480659205791597633159564765366998345584324543044180893288810895768763995854996896308184044999112736679218401161320666219996099901891727557239895658675336786247895192245651384036142907075695979475138775892748926882661926485233118607834790548442191723413514986747840265646290059058178873535930075727042677755457272434514986936668630718367378747155914766949147022519904119753281163576556156499672092685580340371270362862664452402918673033291247281009962599590728074096117428746903929139308318749552210193136427445243165865721270826689375402313413326245550526604265093559839460734665173236879535219922514394933129520230993309266100602251006660123412414673416312916166768944725611810256198368128456708521189613167516774119146818003756541758370738864053517958333910294477340877377588635964996659664965800708032508582873375497666518085107273117850260192703731098743450024986137496434027074707354325401233812756617590249244244368291465100109013499953852107832774033999829035503370921969418542992420680991858406617195762534917932644880519338386920275621467091750149187073027306456540611481195957024877130638793738130968027443165313858074667510688774471558087664168533194351331811722452846334224618265111507190389339817112491053908531976050213328159668511558666707012283668003311049011612922232122171835320841428215561459058527226830994336293840472305992310419197152108484794681275039902548339645710237183028249098131646258040550597470608024118905022320583327180049616489787639668172818235632582173574966542890514335547061091160775833314500736998428461683932824452658391438570299609789018475860478923840896140685564704312901068692998156384083603245221838355473483719300591447661985573657601318374708660596240976637517595524156347457343358165931891158028710981616231587935638387933455836634358584878997043284603686149001080297457549841192676504347395770708273623256641120965157793195924203327738587435498543344350706294559676710911028753377900629014766704227564436630935480093972884080325126858794814516283413469528897411089391590296467735169294616686745483525058911355734883922884925935047228247190200289772527584041924707934413548108176389892953323289014261930938704082041993066113729311298954233330544603536519956433521104790759435821117931450305786234480141634879479758358099263968966361871779088005478086698348592256352896761649845748580111718687503711893344831071939401790672009965561046510438836848503746670001712854260917930014963707151209247448059677545525216789923851777591590407748151426072193015505382168596282101435219651839069713743936364524254567530072475784403675306486820482765555995547614598602724893780734482166752927480101677597379505730463184127930994660072473405813650433528546151927618509041517226213271934945674618056007432082486442132587737170218490941101577291225968451531156776289116294960113526354777972907980475713472613561121729397497406380137409535141102486048186039656823464750394505882061667960004828849440341260422523115083128816907792902110905805231338449152514806013885797312415614499019080286387271573380402789980417877935269800180264874023803108823266638006555406367732000289322852624378978565527139319083944899222456631233920903083774014142952798266783337189253653973936078481984215025223405036178388778241623977326081945941419653161571780042572619150678986626364895613587216571087124423816512521355248394286037352371185616149080780270471986512169339216875435960238898531322792292416041538947246721641451053632156399485813841738860884115193843271265392393181490169792192712525772366047597018641468340990203996857613298790826032788204544649562855202701858665409512241765509084500040019480114871449656587163200344218179845274674109970486871928330663710719390929852410732033983582711665132536362655248548248801893202709637693719273202269849517482067816455533622967009366876540702439290724883448022438748669159983608581495611593329611989693120714311227822244975734706100538885096584823755065943517527696669704830176874158408372523690985095177443539362352883753160115978849374478187476293146066739283776554556034700527023405744179796329162983945439742838097929520819669156332369286404623407422869257785675873570217333951650450831899608315318692184210020446669521400007627052346138119608778616976575855959726471294424460406616516553505954212489135305851386687324782027150763737213426256609201824254709351096642084959255290630016402262871563435632498097488410428434356635698663563447171007764717285593769959976430967264230812337631504093371253764706631980961843859721843637250080269992327517668789231488628220756962728726023939317795775600168926188394852774367470020982905229538031243444808971459187373862976785925819024664644929276642198180591449105169155495455668260008931968512445206615249655635405205465377835979490188868898363390245042783930857921534404585916544574734548754870858693361261968828625986032472800474389807904513308390693732589518534582727151609400939188055015543702232029491449100685941295177521997371953120336248514968211905630890202445103872113414453640573010805554173268141369504687991269429840600155872408459773736598300570412571815184261164232352417126942486011390058693576376093878764388440416107681126279237954119514037907995622485606119181022019064759159300772498037813556165805584037575936964863248157333481406373989586712869615370658173158047863111487224520710161522734543794070032581168474921369461818968278936168081746636424858708970882757999639736832698574940394652123985457470611021481168096327002407173212871633432881935552368500912602142630729386144749176968872646642191540176968904128436274231999318058264539239236091282337889077091336392782454090911044567181800987884366507523729618838511828026412541852979732573995566770184129701492678427103794506126496156148077871863133161377077898253293627857452762317848968997200808678850982112611269974435453469915420477752904941727734065173142644513498913214066467083065370756389095397209304261441490192304510077044736067835402725748722156209607651922678538309708141294379213927526831084349467508888882180824105510287295731037644384932669708285611383071429834923980482582153081606017672444458427988767466814456162921256796591480234760377183806028323294477364781138515765494152240559208317716763165524983341089419374154468445418262454706191593060661199561997468379382897662639812026140782933391718582315586719843161520999496742413288898891355034013395832758252256528292752103227148232052128020933828004847514469391027183581735172501323024313680983244125604076662971517666613957575310831914846391518105934114861209382205668079252090912334827933701446953148697378720861761324189312596357845539544274762163600429336448596555220037520075319307015263368766349043633706228537640200548485608698468130194580220320867045486909981896294126397431812508243692765740989254669116142217895542641114847163450797457468278593808155377245523605270207083606397845195740616588122941179134682389611289200144422119827207678787055698018055155675112421688455301374515638420002538594665654690587614846490482173840984006416417677243698853373721061566580458286006167590251197579267517632903920741287086194156999752939655809085059200501103080180701096731088842869994688641723972025644207364604338939342274915311009754661241195371141083051404230804207231399144891821746053364877861528125434127039448038933765028190355726890995326161265553275529904826614206858343805166074319427211164916945481599127814069299559167932079184598015181148141532082038534427994605487907989370526566613023034981482190282060511154677079543709466137310072050494394119449822854036027762421995894285205029091904687327704655616292692791780323058908848227047888310739304217341819234111869021093557558687175823736721943394547065765009566250921559178103727822998942301047945245053582029252782953059957768150272445424327460107143414408697837522401604868336034111755384715802327186016771438314704353766336083942374700431269641458192594689226653600174165855620230599376114745900560002097074735968204892107024683519173053397115237665618698481397459633401882893701006620707939892944041688164969102716619468702434977656625693475627295389305921405749611780547437548799888105660483045074998718621893952704790342159545187905426986585560102484417301602525417581574667653610529981289658812627245440620000700481716799676937047828255480659738070930890075709177207372724524997443532396991108494693047793607633218414061787449635795105977538736468602742647720357521141257587899245593604462319713851522922333567743349155380339086189749478776553231990097573883720345813785406442842089328197759676387770296966203208167002193458504843056918916243139993781242871301628558427334583905014884765192552573333241593910308076648079199752278560429922078529403045743284080354148033051000911846966336405404580661885819740803954293925708089186280820340846449650136971840709873329423912864814295035483969682509168786448763794483757971530521559881415266748442516928217552266311029216854290467001387142854632638354504417606386829506578887872995277869867896056077025244224456243750574865382917581333427947050637333318393009321972243535540319110115012378864757509430926618452961133962140089624863854219880358126136983027758096621474058517288708663051036321615011249841859583298495371306223671447153400784917681665984794363215527340576428786525546671970255441035370722533916605809776448028678700684665734382104217104461901233053533044691339671326238715551386853299294333939038998240209056345241526456083888001432018750157082368621297380521451141113817616764590560711683345215029716748414661395038389086335684910103464707782919805366377302907742434876857068322701562929343328791674001174520545686331594437092934039211436293760302605206626791314344781028155956515903775334913992181249225964649809343383546266438299038765800717114855271730714310412457270879493550531638302879555092907638579541571241589648044426743270114401026796500754518494375453938854269869375293386808455585336724789839318797704074772051399684786236057382101749186511949101275719854772915210363313479462730256144574759422933722512797707376936790065775911103323953671712463175025250114723793082463301282135290910000948985387525541787189892025268361095687811590593308921762398734724333507223663418734821666382593764035943022634844457664629209757450540711770908873186177481568815488906122748929059055621596885425027548523252562659420193108468064560322686950373052124035391006323766820248833143672340227600434438529916352652860256396587153603202688567390901143558010130229382195958442684599033213726276195369814205973628028327031229596109651440258957604608927866217286422427512610475778386893154350271394718850971632845641533436009918700666083007851183203043775436789251966092764946956639001470616100233704476473528389140263822197404504883378679432591762085834876518087174572051015152024055096236755947524859960386754820299708489253028670591634148708983425676015105881929273783992388500572424740038341262686267562853178869855164895532416198646937921746514098783023026760564066853806784763021092768189489945219782427383171585629967218360855183343182709578928480177971667181143984662813491224537870126409129291516772306793570690962054010423054759031641442002643160641302219462021462995553878922263485978313140890794059269602283778839748538983314669161826770768772045992658764348308555634268283659488178668600030460947561934009408491880209494408322440610702575510811351314508936261205737147368830513530219528226679670871863405616389047966161953159740171700035269478597013090746083693878876418236255025499981380212999706759072550466025899375196943759706338885126173727268890351596442539607076392107923680406408659688074039290905287556973565050170867135831518173887235559510827412530293309614513745506374961510998835348353802965110848377830031885550178740946286589575922924033426076215916464332028884192964042848706589503327088720331999169395482747207777386328062535304902100266829984292563581365643651101044428066987890740437824397611147061837880715677993869947593609781199923779812633426334729462570573098179108628735684821089707508811067813206274908643112366848346571858447149654755963063466377514621973900074756846494961515981524751964413677592920329980830947458320254187349513299046789950715104151133766655172226617609828457466163364711115358684241325000235631889023126388661902662282967986193717357508437112666714886811398385724004439108511448720040868730890339927492273062705822568682133462973997974548972803512007164380880952841120517927308750249233322388718079271758186240972787013798931853627897467565717664074790493036867638751224573071043458274460551310674929336999717836501012983043090887687053455373877887208760960797361167802971950045901988836036836648069816784596766921863508500189932578531891561850148950369967098315680985911672918072297046938078501843095517872530345984507888497277236087157355220272732922386242975558691561370141871993128074754615777942112987586890752498664745761824442854726788712139373789433479249482169477501295801040323513712747902244427108161207299472554156261180242643283066301006432042256338752762338152396988887209950120689160667294701599161221130673060100563078406456297596571949077534604044588147539328257715465656705220839767964924912393347794038944914755051570282425279085235291770271038386354612941707431892880114438571658440862731101453267201593235525153205423129640170170525698782642937821205076270994074516401079223587908991777824514867482275532882661034241960322276145760877752401302437514450157274204255184938811909777392466880532816136127350778114423941096691600055415007048194304902001584438588368527711337002371136401104513094087821900974693030204124048822367657912424181024448109054155678375770123546079361539641697786280752164757087064755169943740767265283555482260135343156422733367662611416881952217998688608289945731775453881941356244969495893555460671859208563789757825378338110366789961225318203877474872720494483533598938861994449977322926166108627565261729161549416689265000567122672079923772507061068428648832885013949351410277346821312902776595019904661191285701287776983263620921970458999576852006223181126712979709306214454424632014556238132756744256030283454480034773704077606132234204948558829742094204310606814939386895532782560851088634899612009852299616913023977919321808171595528797676828091755668318175372503380876966667260051753780683649742226644753057262280607873026316388974904066947287506925294384233142700391457821915545993266206327742961165562492554782961966101669045473450815194623780322010970356231054332951528137527102231488915382166610497192133272218556985958731214531087474964864308753704204571072546477025991807708778219994887641485354416202332272116980856434551909031228032212218432434109573495454302814343345347086907383334214496373161074533666988750831661551020204262633564637005626062906496385270306450350619134539223844615076711862892426083058881444622860699436894848869997216164940560646427651047946541900335659408058378423572930217733997580308575909901082441165489481945510855813062294468246468556298657421096997908201162682724196235212521345158649189043776811821452894458875858282344054147685162710540253882955304900482398494658771157581720114360931242150495575596902012823761206905696755708779115157439750878339655253411753998520366606018704736257400809133925690436150344164368174109150905854413028181386621707253582981658451207361368328840596894706801427115780799753083460904846481473488109341335853550979587399671051016561873995170968847091808299113508018139609720668034614868607627152589977337279346835862970018344632456050885686455715395670249464544469299642207108684394656838386315762269563258159549192004475960619926309511577146947844415856007524298966078276918062174137597744588577260858145872115194801693948383868124171122148822242426753097541234696689439209678170504636168170072646608827730489630376790913435571164320684280701521020919856243507980648808508152740517829908524336449249004115161873678625080087969591184723776926119887017510053133617917481687019414177048695058604743269727733548876663778377096986192919517871882803486831661892079645434058900761500516942932398809021736138573915304548566331281419100095426245375774673104475100535018330139822433295731248403860778173167664426999207993660431427487437277804104219090968011174828756448316587658502248825303551151811360675977257463771831364570535553038312541643950150811479728914004515703864962434913908026928856370637878522590495346104240299022972768878368778402704809058241991312865629326573337617176133381147969285974785122606990238363768672461639995762680102727346786443549862992748481945413242764352242041202128991909987410656600756514587653271854012334027734614231236285438640939327809640925097943032001796874446652440824954815145917212073119317040440514181497066892347691167975991528063001576132403972484888218661563738005446927882751332365637710803786234017844557784411096873745053494111438492140169472890957369176153276635425488448347254696914496602314752043478007934031680121935931623285169450865699689395633087506167541790194759324285052628727319758480666109881234119622569558172791458785188545212323836399705690571787952970275506494325204441915585079321031211115736935916668048689133517318029622422529441179775224365642598009004483931453114012023934376395321501538453956198867573236225588213120154079035662899736055124350077714126288830442880049668637940037202361816157117653803733723284266757806890616104330038684799313046565850832577384299056124017680971134541515102005495294446190849151540539148525020326682780522254215496566820117981297511755480823489441327548556875097044504738972151808682192896610310155015002453724699424316915535845400572714357325804863342387932960900024164865324251964382132093366057132719822959759304903741565705549218387555196949394455652924925194997713557982426356472211263641743916305911310771851331393815349534984268008186486514573441438005063926811583824908829508334754718111367633861964886856758645228916803867007840232711898920708285832297375642037790248591919040068746375175094159186162720017345109950478000557429747367875898151587220490066128314724766606742154051929114501680808157301572699687648486464318926688534441125425603279676337330209273284751691356804514022536606117179010141783687449612463335443765640872850411950129788707244876837626495108290156707359665126191666836669067777940752803572308049366453742134257583882228679520160916983322821509800690821270492989699827939719006643991689387550753340492493437843213450762416983469833856604769856789297317004539202460565174857668799029452210179690802871234609256858551053640772155807048491561308160918105223137052936376531957149091252311585275535855072101085336108983669399965033168449488291903009264792409405026470441892424557001093398365798972149056665714228636457377693755010422575960241154435037004244272857092983156589318469024537502774150869324040250197674526724286118138467369779300244635918701645124405415265795702237903038466416893342713067192695750293460632451027971689428235623412624731295275826007956498136581967512362159166312551813042175650606067283215246268109508843082405841766788110437880760236786143452976183311598542125393859743523655787512251049521006360542583003850783036378994920298481037759852860408586720877825339134950133343674711183192714510960790795181613500237167170998099537429812229635282688893503299148761705313760820071505984923840194521709459264457926652950754838328474962509564750379421461394874977067500394516785114089231273266826222841606571016252433662966721058079350149301816477144700042207035474424784246385362227480919588702452806121969382173201670225742642930469976245290752069595781613598310653148271623082352171874998222040061277394586766941637677868232114324901889226399457330328867800586193599347710236473085814088148010446541459922607546826847967775337295986731386078858535675877002385495178393487031224473634136669143648947812427083940352997269906253907207547792272134603374171615943768234627768303838099219541419876317902838581716604859085234653486278742326382587649437033572798794086369388274386525967884312233423706613799158421152607214000212611629356024499934030559005220502273094435284950493611542107561174829700712015978240306991216853557578503040951713468532378640771044185625689721943020986995780436110264163637612516716931494819474293099939973765149311374912276843279748842176852084883292763690538881687769851905166098648365933954246076682146970913075544041737981761750854140579458117962222711151859921262656235835786845852134189494959338343891318442171898410018680847389805088241253238101592907259326959006793135298476544433718690049125866792073158412871018963522685045321395567927520809772650310943165164074585176935049407139871766850793388956548431750479979687303768373709226681028870214448900986626187317007042038953350813715838296129673059050039275525413456798924673923506508652209908731016633934865292689717012657230003167879768850667838491863724001107304278600841899625007791872766054962832997708019488381030210607978150976522004364791208843018460051443350761976058007924424783891828030733655458592439477501090055705495972710255437100882301161154052532104994816713916090387554843649597752713008989927096979559251147201902982331936702806266235608176053459243781793598980339758943309694995293197263886973566140329211224830528725671685071040115493946287307150638339950588132392860489600018820128993167734754190005663185351597330406329366202361448174263558679409323702231202502406359153781376503850712326122295698993893156817439647986713186305983586407633867146767661128117246056223821303869173097032313380807349612361241149176375707724800678261277850412744204272541574598318486584200623265402707209383460626963881487813845660540289554505206624842242299795108856055379974822316118964449131876160003838800170251384468438896221227027104041123572403006376389658357745490048977561213092008468650552165557324930397584062584731840889576220655636936575625620954404729936469681600483228222954613875612232535469133616657093098385276817205783035510789153587088251504541685233047150553604471787106545434103029068479215138546872715151633208605881341727063266856919696681509364159329192629661453243750386306315890914716306855686365904448062612121285917280617323593921267416866046296897803573081275502581963904040120216459425915083336627177389265988385487105570653566758181615763029340156761499776577609109781414115134381819666235089289986065303921103658500492446260440351155974218353000186949484889354264847611037874694771307193269331527144865361087801464471323049662518250089997691463308688843689856726510578502718743937453043435985839931190364621727674345632942711139136064231760061032626101940380926889210952657289280002921335465730252429101966765826547095429642232397201031554487871025713062121801451962329147117681117669231387694677463141204843530471576728820101713064637162086293256664720039930187195277746929308617107368920996826652319575610377061115117570031096415116664444728882216647373334293661709245891691198676136780692858828498637414308794260418643611382527461752976292927450557141919441017333730108042252336774060710258814291525194463143840395167800407046299994904775896165736236852928201764316397502931227184443390027015290204121892430604012042801252579014819207538382929635446261584360513599446358180689613745343756185756435666796272071681400973465916147303044640492498332572042871236355617018718871387448716720757038903925062879719627136344419652833238611197978698700366398137059976552027729299852846258520373452545152775438355455128841423740703889318944955600039847822897378362749751720856273310377007529951629654193197961997765424672531218475635946760934651703951185846758897410246926475356348759775357215194775318443492444584157057903511092479810114859908146838777846227385584347216310302092898824009599152429564868786261649257928183557034109599177241375448982191811436512700941199003982751413335082194850537655018775082179330930300711553997537719413538341863428028069132487182123827886616036924585334119382089891941450929637506958715632752848248254209622002943322983046182377044591221170780356421697641989900669253150528630208182828499544321462646562681964730455387437492270342826847621115174538702067520973330870262439673487320366806621065559781498126360574095327036678340049465701217983801159633810723112922352743033571466765854283101871820815626431223700289602338542212965562405078842625140690191213478403254926841819038676607344582228074126648067131282128631842166220666429620634893323000283120830563335296073033608766784852152800819555142335078105649315662454449304941113060036576032790499435240928092199165356293860853205928932370151230824376538012695620255589636600878185141874666966123028036381513189922494458312161030284770101489545937375485417734160701862368611409687225212269925782081077756543714713057200437022153572161871202752191874630496249063896979587860221642921436988671860198552299163381275241136244000199590914837344832280882300484180516660596750480736982185598251726037524347983850354861738417792164162512867792589514712912316064083117538405942088547257579207443453993362450308377903299166883914041030606471172841664145207201557789935013343568276173134395860165957976148754203543007613170429959563859446104548731215321222321980486630395856161674735081607187758255156318692173460234688434642602523608867888599508589237941229066599973486463658736664898151715895937276501166584288747363521053632385237595099237141578179600288394715065005403740236255528526554592735364193366167670215690320768878546546409208643253679507078375630815037096542240810098044974616660189303869052435985275070826663840590135065305090985105232032260399509691851285693263559856918002435558838455661460271587077703737383530349581750196546276233426004059429249069634667672916149284670345441540413637755377074105272166019863349675772868577042145914485530126698981435786997972704724523681227977609291526355018701985780332030433022292198254122451357696468701639528842034882295091469056034840544882908139458712514362368613980494600202779289890053220463984463008160144079213908291938726501665112397354924154056975885621307125654025890131064737910361465444409629926894884993358799609031080866052124003035561719584985078051167708463608905741195448066348185649497401779892335544783546327232456816864930761251736497521521062952136655813883149696501071034247516570923079199970899848703330749029757233919407949530206134416109287663802986510410814484432749803040977806533689165338754123812059892783228310429628104470571452402369863537014780312672317590380848057418334678358132157040315230439842687096442204186376079670421772034234187335505869870036218224615962272530615345601208111863578474383708796757641451061764900120478471208830254673683874629700868260883406076793002638677032413021559805390289838804251072791352465052568476883338727051667349429264070002281530477662930791216083022374810189960869949849842174848431557589917199606099027628050635783774276854458999492277968039233229595396473876870397324076268866920349736195029539788080276324601489566296043685378501458364042546257692470950653481157109922341497256419250493660467400716868903198553480241586011759446442362807930765599606292885937086946414164619252706442944379969692541371467196642882893367517344598205539367755226703409919100057235385828114283412970529181929296112908657030710890708224500794158287419131124496834699730757667785135591161942396064069826206338932868513427265096781157089155461064571439140320815473338398517483414401601214991228724965615625452507710758490884395363600771600091054247379672212046785865273492601581766739043487666112041630389116645036956853712503189848062382602594548444059466378354116741849988186985374608874206647244773319462958241955136402594315142505136781346657273230313419319224348870411871118187633277290350904007987513889435552312216218116995917088283763754614405847222761849763058381146131051981045907184547343650585129260122955966801142533252376561482263249089378119145929852588392845582433915800666745784606061588239898856565740442365903610867302856017168091423807974395317312774082180620110235972841646007022007489723926740228683225522396186806159514479467433173924589540556625168183996820602049421874603169935172630549657676412816994037234218374851957564532542917099885552558188221692748169073987369119111742557026161580891451724994061676305443126950982475150904417565290546561968811532884155272843951082771494982128960506602079479960705926164503569975389337081217362153982656673380709762468097396484190736947268099696689032297975226880668446315070306686775956196856912544488388410633898458314752638751004523687386436640586481784308228323443199559402335383750306002066131584395752985361037449910289788638542377514168810296260423297361135562125489999258029382081990711310069168329716661862469152465311167400005139834138688344522451153570835006036425632138206675734291286430231569795100145473587239853088230914424416938448098475803912815500228737476213278833610538425374342764978753472586822008136117602536604802169896985487719243257840171713757373796809626586988108689220332262019332966665520733024158494237362544831445161111393219974980580029216995941212876473499913342949772386883910305403423493633921180199390700195910016812624573425999438750927145930164504366883529137540342820064057503668685513464309344136980249245255784383188996042470220097937297759849655623613124169759512437856818432041169155675440655179125731609919097031939865256721825878740066923170626133490371880117728762352634522008500256093380396383255306870808580407992790444148098967414148727013570187923628749499814479188898284989175311098752617634137046184510198362217198240439200143732974207867215092179721312382677145783150055792894152253843016717266525394725248172036874177935184659345136483842809276515753196387633587341162100369373535241248539617964655438910306918051572453343534905104471495123404802036881143923019892788561029748460417125235329801343273787696258813150223574769349165474059202326974655613472891817757728911275525167640265183996959846815329541183697202004265202693913573849989537261454383004220958633195475272770987932162841118501556145564890410598969368781487248085082372654452377775361400244944409452548770782341279321769476565814595371463002073688159539007192188400483273417636834387127522171755483768697265606938982712342231660471848335220211767814723279532537701974569072198426915820000971524175130667525267349650343179607396674475808429506530381894736463952117021979600040224168266996385899831763945368233737437129299029558654689356557398214042840084223009077396521059342015085454575319861741602181972121829119548762481327303516275160725670587256303429995513270636847431087055373303849349315308461927673063587131663231118539433298219324974429790451144191067399334315713048526432011589619252984759810006036264149778431763829634700032530571509701412896870558153413158305194149149285483568416033145406341875628084527489677657879448610038956224536996103003334606391890131067655128934081264087361665675882792901847613938042916595411061740467803829604803306344528177461729190905676807960558305718641594705501471940394989344393342575049297064394586370515929357086836832231201635707184526932564808005975986562808052415800210186583115615583641036691199388341406735667393688051994309142225205990840060088019615352179816834722223614638273338641828307635848834761343627956858573687186643222526910744894147442490489321444646687668334547589960927437262126777026381190085706292682888320820511248049598811871652375709619423736419515682392321724942440405359128066321466348423528052286104546109585056753699042307020296728819013690170207030993699882145449712882219038908209328241746451684799590823638242780825263094065458547096634350991488057937953616342341893451789568472766092684346362196961928365065628379929812286400393378560037970083867868761149235261358463681942657912989903030695583768110264775190328725888629506430513199145903058576118249368610867092866858100764070208596570846404941753882691340432711772142634902501985432205547799466463149755758068630261282066308825602321331996244756666445179455423093248031025506122121803548568169235980694419302486914129180868875325365685660210344703638476614460715960648856239936522694960993619703305337451858431803633448242333025915727014404768299833215598215494089782852750085701511876296389125836525309421291266377296722975788360950252149602020005932964084469565016293960532854222550356430852507121279611657494835961708988890584595689411210514405435558297237676219250746468442997201878926419351303876762013312716622509394760076702738602299991207943258022336531529583565471669176921232200557498870465991682338584118939933904944486282506220042572446533591306148399552392468268113052532541548159643837086211075632672082818805320447835017102541464051578891337686342638131173534792541812042151945965911500056298769734608438983181021982261743646780936294571593550986954410951342151182961108969666097441474645367870944707069011342509857760543179109990360626879304307954801481699096101187928633456931351667112456203474290618417338647025080215428987105499662130567111361346765528697345683036196788155630169355075155560175569820533284137043447427412379859925300391931944727264626467795033023545896053317036364140247241693313862487548572516786354680433216802196448908681227594138794205944094809653166039603512043554805941831249398597799589865979656445687503502331787558870838979341852462159984797272387249957672005928294712666083554510232318427357123417695607852665256780279614647731559200914898284001434102636229193128180548802459562832733773952472143904413272917789107169455416083009074186924826597870446246384535291599890439654141029511871576684460068679855343446949324670546875024269472065659957362028929961969529851956564124597659348979700248218715724089451737402992365371813967313623281871357533862503135526777780316586369348242517587860391640978752810382446047701213354991690242961988437821712626703388979006274716228705813345373799549816123318139097944542237427258799940008868770505666687366291896857788907458059068756881676512045816421108484606897204590737494665816955585178757576391198818406254194404305305492903589227220757703104122519274564902015591850465322660591046611991950901189226691137583819832688112148469099418234968856511911020973483265585142404728261822737820534110218476647921990745118365015481499557799090477899455396116898164928563568826469130608444432537664094889293842973523513783729705142643059511942898543618668396585605789655675586290272168796098590977513724540846383709707217593670261345192564877726976462874541276251290418708604780134791857345856446174996577447609073226125206975181997458630912423034055571167881525705060462052386439768016874051613571895445896984200678309474800981663110334777836077687430893507584999178844789276991882935687110114160725541377833365932555340840503627746002041450198664228200726768040804519921395734791495322806194788444004221257604324730879144327330343957038073824869089382463014104334666530995760562571087753140155792408024559083187847988178979373341899402082954909289400982206819819872478837972329364034823413996874956963765741309594350318305221295558258099145390602172425420305463613050245858433738869716652922972289003994177353662336074912611698309041534945021141856620113654758305098848941233862300285094837890006440987193939486534521231544708063216282743804117064096528742752586923579580374151345996760116529950437053058602365239741763539408632699087001260309384665216036927241409410240915605423342584802468467942629177294390825807127915659771807880267824798493423027756390832312109293882082129902351356835496244095751980402306576241269780103622972054052711418987487850639178037607844796331174456559536505063986092210016795273509102390024327731238015012752059249590499314390577373679293295763040521913645194974553898186442899321267925978878703569848026935332831539831591216999591495739100947475224613263011231213056863291231184970509910046424515455825376640310361309103727303375793706661634466123055417678437822235849897113440329179329393618372409400334770810101211169977393514218463023596277779953904087160520184926228812920977031744929616756513689977096135681373884005583285498415279304978326858355395033786363111155927143346959088315001236547174197297378864645062828992424337582686731847602984939985452640433123263240648496952249335335561691364545040333825888128053831338215218506806817163042570812215494153027697296390366000736183325421887697432495359364656956440826092476112599117853955164694394546983221185570896586001543718415272293641032562619192419017187985644180010572670822595783420444136991199072736509248063395927578466946651309203029008722705330605734554148226231118967326542306450216550969871722517380499221704412352921133528881388545341557230717105075911872452089887992090273925085974740990136184314017949930806630341604896367067427150374526884088661738773020000640186567656294048385832303177741078812102820339749409854051695150666408813573884592972283245661829463654526698986887197433353424545271578347180113266833606708865906425826206550896388836527371058480473539472178033378746696449815521053839548847936563312715944612547653772250984149204691698801800554600676803355628844574764235356532796471092702098589711113682369057220232940203218496096725044170716638227472649431070252138404367906821293325041075543910805749013333581131460546782515046129989951087113720784369333785141109209324910407661454243759162154287615092569995759176170342277027058391373026478019447261000217431080222746934631246744307908145587197952092661102190901197996039884413931054723615102599100616800205006958502660760832058454221668599357053985486370154727956186901794664901778804260912413118994017595010608165476147006593913762345103624164959874376313597513425058981962455401326665105949190459786717360985601514769666011963397088048479724396685296018970567259656969032907725496961878167692512650565057841291512412067317468658911162519825873317421807761481514581295357143552004522324502971886718816619589475212607912205574836765355431529107555114267890108711994988100620492717453300691845175013351289255213970412930763417101966265965092359735142998622695162737847365721494281768982222805537254287484222807173773465849427820027085873925786073890657876749470470358861364369681679774922309919148464878686370282491795568828060469071182455943778909413214315990451070390639815641738601787915530870364851439349955517340650879895382300537766362117159945663502926584831623333625777983416148874603977554386374728785040573711390739790979251428952834149686821972374545531311778658755201683489231933174367435852520371423277094420505729844295490915793811929233352100548820894633932219898151041432922885805392610039482560654508606467213954786089528198236875016080140793552782011620894264735705260315602783301901550763584315427785154705562569650233034325245397392211739534325089863593943974071742142499152705679143534080299878812368538153813715995254895052767262855857456677527376710347327265740301110206598170333320530901513473806481833795951941237103047761328059562433497030575861227238333529852996937027370816391934153164081711273057509427084602208135897383801859101929792295740414414080255953994439024742933278419741130898185880512506134833609059621315429477082265502056898956705536777552139098223401451848936749649065231920868291117005807984950376475685804633284220000676197947473038099722307495806102159988519308778270916022718282135552140100844057668957281227946654651953720048185856017776122502792458143765443438314162225713145560778849763711782734301494810794517203325953151906486534794812264847868169821529238279549122648134036375924237142268944927133264081092985904940502836561542098000684830408001536706338168032315255301038038643276340011001538868555727809941206154050841119051945837481038213778492471791070944082099588637720591390057034932676982613652562200987296952605841408597818421037569541783200599332974487328827789978442133452330003898922272795442768691787314598000254919511524749963592313319877705127320508916429607540333518830794691253459537107673927662462213139818133064945021977733651034550170409989403769114824931352580361237710265913637574874208902947199751467804285835787642467310843399129563261026785866129011431134035729226041773596055042671352398663658728283027509967618171314233183730975944654755221724405971258023249660916491148750423290256858105053443728188727614206548551561245696984775851498371465444098646658243792506057895652009611051895339152761489999703000674090002833264490862261800411837714078053309251900717146669066217750967926886790757249876409089000255087215049057441770637093381300567058831987375805508230385710356415245971831474992891413684405017110213855254379017389073803435170005822649542478159274217044640473259490601783080719864774082937611020256520980350693863688989098378934196169157907313411064833501445904520337607078301526328932951497397234900756019926089497478586923785637421270191542483259003921048971541903113429792189768897471172297485416416258758891809066070489160480399086941648435782205559121887996331569433867497994212489348044321789231745308861830850466830849232062305481405564830263326058007567195477514248314298968247810847709120746358158706895482715668229144121577355854353055860478086992993207720791314208201971048989585367162039466595605166966635149302026994557877553015152337057799886472414990733823840586869314570912844572940668137332916173802080605558531343153434884829571233998757516805442543275588882641322241960309455764510123252497437357160182328587064585019335761060884586570436589025925255021135633913197508619685655807077099342205426842054996196614227499400569088950825410109732076527900799686435296174011377693302017655325901055103940995219469655451844427176755467145714536541796447303148558394700717569282116244651178171182292944798731366297142691213643414179528610507563502159895119648483103439589750875444269596801913862570978147782215723776772448136862568140996328103338631250518993591104729691822778855399356518638881774674520534749095592838676014534024349190547561407458454284941865310062611582477266013209158549906423176175823507298530437429990391761218564940357398146999290361199101169546216960437358748234543455836664873488268490557439976628228386381736147136640035720856455663603342471931210768759403816276979833088563176136906468705112099675968457462935773338810391898446162452012286735032778507390758125857568856657752101335622048135178503138115260440078594199727126966136924971997781407658984804719833255010832364113485854845047053565016503844239477582881713988283946850667285967643740325169713363108654787272554896002963369510839349043423550251624921284779416050741139670989806527164099434650560273114197070941107454618642832148564267370039496883147558183502465335213117282693482761425449972938168606114656698086437249585263875532585323541403406482275349395301625247603859876483152300824034391546007030480219262135831321520122498777885616674240189914594320548563484142879608756831238485969296374098050233956701658779786027151246788993371180133565376266812687291587799745632646117740095795221714448566014908420660239614549028565430999550288042590474361853027249998834461279643715429898439690813894470855709333407484035697988779436790018722848816811969860362218860604466852459481419546072706987323670181187357267383815082350280707595430003816475486431738247392554117048406153147565406965717583609981179783320347994473487947335936838894162092508800613308986470176372175985226404815136353137093894388671676306089518492773665084973241010518119384306655815893489033508655031878552509195041486015910454870615530870905094686556984516201073433323520075091016574784206790505546383241024159937998440387393805111758245629631429587218895196674380150684411127352041938511464144606473752397374310321486298643407635153453025563869133329234542400279581204618877444708585780946412153922816560501714796810768124844317398205402860949872405024725818909317646862321341707825464951878769740988313254054293549855113221938333765285642905850052873052481879337370986566654289164914406403416230488551108238597794192539255885620699995154862069970187065833602079858844280780024196423682242523773985652787908729215395161295487482077485157072464667424393470175753835505901311890134497148083827608362297069732924013440338656485855297067887318164927984925833461386176383254687697896308114250255331725112170995440635025298021623963982424316414771816504693577527715478192203071738847874623592372542880752597806204516024597913155391187382917757976932440663137667281862925672196414550304212505790718433910883941711409814108143543648550051219374936684937145904722074462207256767562420178860158485449313385035444513872592204711838591798713355315027347159554522739368556462472924602009239603121013731974020090629848750823623456355959117176022358519789126411247723953622774420349511490184049804863750524225884779795373950798236799905017397727997184602782484616925265078176302552092053310066401435456143259218870811704217694262901239391065339386288399401244411367635921371397678182824814785581272840299277632955852783287957763549622546632036798061432127338065789536237697809727766448394942940724991471860608367501468595041140944393903167840770601648688891022550023311462550554829344154012537478641093793012860822924115252047714968834949678325409244085570217497947509661747349334562379557695733240928295646404669701054149407704471166097981489905961414127306249515155764695068432038636598696792072320402745049551551492497326914664035717685900338946766488305624058962010763105936861155794899112233306110134403278001464503317402874517378958117005422518183034316601753538954483624127126071019712198937948488867577899752755794781920123390521385395592089072706663466411688433854981376884012130106719689795971123403818938382584498616869636726786037311657796935177615549594630245588026770122722947567511307785494364090203367923193873549759938665553076004313197390212713059318177378075148524210092760172826519340080006708963464362181663640759420029246385472589532105171710856873125832387683467793613226020363263040237232246515143609977822316395937315403899126987563415037798418218609744765178585007044746936191767784557226414982266992223748845414596875695705188823375635641117968120613067149726169621936246665049093879459730733883493688815056129479003589860073442991407416427638515590781868175155392795248021256652592309650480635764599411063320748672627083045811771774703428562101058389772708222731358905826789984650132150949045431520885992578857856018168657689211727188976089232316228133040576984942082663768891553589017260451306026909041686145452312191658802566019158585726536001620247805377516456089455971238167242809697698748314904892136257668643046970943304204775453855011223696695986659473508816931119938610772480229179576290325066145305877407154828626211657396462741835486788115958774308703471360127940926703113636331248972135886636697010812754998627449621650597773337871520014850265250287207718568590747346526019777647079909444367242598034600405184991223926738974612781495563330451650330903301239219692976018603541159300055321974300319915063655820115049320784799822907705368872328822002554590408505835053734250781992983681943926414707913144412587972901393867402256407399813192504918160612376187188842074035163027285249327496861925952838220341260499506056571452013919358235484686729049214268470132150769908452473837758155984006407415630924510269699767918898444337712222501489396097844525832481677337139824806848605826025374050220896874753669144435114101011333498211875302989176215520592937902740873508668012707856258433126087442222718741452897936654377394798363416390478355518462675395957381275420741131305724493999917787528797369869006018326249342564473758818606252707856987814515964620587657565278310814333119325779909273196320078506463158053333904240299197280228185052036444731207084642831652948904707808122164963812407275119542409623652633902820283815061962314950491491252431613469937941540020482804897935499967360572251963291789610257506007623048812429985923612731813283582453808442826811231255871317993838417300180405209261081153705875342207070063221752009918034182349274752153187095735691084663381164437886667854404577999239562553646200978948721801049812042594812149735095774880115529939271328416695930660040784670079728440775031451344813347924095752034298922013286857997924226413293980394224572881966184119266753324071241294743931325129693212677144033852917726219245963907457546017679769357619516346886044592986671383426381399071913692288157569086291925198024923698617770062471566051374754536343387956633826777913018553633640356757914608761499567574503066200071626837117996083565318930370703346614104534433839364216742886751256705950835144551347253587461994169503592022179458252339119067154724731984257539758823083793127458467083869710338651527374547190513619521938727643263044274657862582104806124322307733426817956937579479134490421730033458127415339337748943667266166048947425314184587724514657075769166639684948742138361232373715272325906470292825501801655932916676156553223955403711136666784178291368508694547391920925168469337745099765500719147216298002928115350813174651739142650733588783509797984240216016051450589911435183223758060216539830189310306709196567055339576399652952096997902319480942416066583863753780785974651438257351575323339187067628007871277944653858794395029088188354853195280012703721569587523071439794442398416154551286398105056492426672880926174434057913691484381262495003083569168294489884836440173762115935473567715335954500273493616443703103548898699406213333574192922639501666934731835334835957719404599810919725440946664828763459225583508695841239778146951296321210818954089943567935758717110193974215804008219372919185480757742670725007120411061814527347321905356894314980477727708488354468669282576914504520361936635209701648746934810336109309783750499293348729146512908163932387769772230159501633277847761695776361433479654234290956778341135456005472450903053167503044067202518510538244493833465347336148946741606183511668391060269591706584130078269589795917102755439035149477296163847632525668632475704708175568822158219989039570524300183897831978716436600006393021190289070715782140769664588917168893115772955010127932543668865136324264254753975302494602728447179980137772454906902936994581191476162581517133078160720212907821761885118481387069088802545824292531098204451150118547811228435939720751040699627738553161966400655076499495206175979500327883324588766228151615217558658489045466388126904089176406594475292131383256311260462779763304850717152487335784407269190691104684693753028841894813104327369239959050687848888058043440817204619224721663302070736557690167478077576252241025077206347574378996782337347112092332468536762357993957582038523584299030942867961104051682983316327667713059376353969254597383254241051964066090842459907849320244006421488723047182970523728331755199381147268896165851399523135671417664591403143386599140313417474309866293307340632347086745475160905352279121862594766908030776461022676082096192646041672776574222817143738686140488080316268123020148751027160874606393136390540477040997857183926796661995332526830568008470094743844670030644380421818973261859727838364454955708222770725590536195310226254962958719361925417959210984704164001910309635483278176452600994851677364321943474480215256370524072464667411775902584054635342093809058332621856638105409673581520661834234917637148000027385216432703793798716531935698522998957168197736382808314468273420991205600998108846323533331791566419787174279558265576580286559481040042449364678811458064489840585966009636045770253463734621707399279591863091022012401149351081091288111397009954286366180820682486222791498576192688051191052294146029919321600912679277484230376115037924174731553557249679153608773641692261960361870756479040130457361110851512576168859637741438214560806827022387644983509360105854837084107201428248881865987397283534357579367221862505188253121617433958940030960114153865833627084817103945498698320521124811110028625766130264945096755070696563154672526838942253393017028163312101203899858328271267711471971706701303255502839644788984294753911833511541574842446104011991482517404971682355531104922945974000503345398281261393844805659017605800943742529806095630587796743768171211858059339129185114150580576993637613027546765081325881742740738247559304198577356686200511458458254237090479927317417636242800973356125606591281608641563770277371090804096761023313297333314709952217687828694533528181538063305600146665794367988535722845625298273991149359822924186527046921210998902171835799029582661885442073603412387940781097982331581606600648559471391969621885312330267184781200656933081345557018676817702172301100087739228949578917421972871201884116584340540672693892582182607589322546237430934034010935607344378440849207143240066550627680188411215912436602120627582927135434082408615227952884147207008930130417946831523082243095651760310530185719840043006114546198360194925953181786667812789475352168970762459067541847725724403148110166179063540429945344144342326377686320081216956844189113730207022638688940141685768690274693355177013323899334385453961098528902734886262694036541505448872755501707132917666699928574437625046805689280679314034692679834349810281410870885148773992534693667074826513007779733705906853277119028907314308955789901142483325749807434411624358472162783995763607802953397676395103971992668219400644244578651032140546868877893003181259634615937341870980682023820119384918549388131399911999983755074224165098566614971283587306611411953477047733643676857726292218732456314131094025394910042070698988751482226506075454984721679924112654419531481796372986113913934337402707696586715973731637349451307587637919305123517958446963245682105275430813584520901747271183523641504266454644522305667091614895126980045859192959304642915059013659545644014012091033763695965570097894285558056906118673791038815245650734075081166683185237181883281446457768250535570122884027058754679029272774344511994208936346072973589928478178992441809480046239528733764775230006895808836365800371421209080662923055111613966158110296394401567869136781581569603875521342519691855473025296637145855316049327211589149062092369334074236146060088417445529500019283447894006347040854656200421937955168747327900096416814853333705734287237290728461410912195305224328534894308507952030794465404615284222577422855083236715768046131153478487805565500845112104688145355448087018154636762856215085857117090486460547644578132149550976303459235375406502658747622392178646192303452609434976614343623498610801323409036294689885792945831323368486961343488053019635168525795644631933750293736194026239262758997462077076611094285087639552307845132532269042947299254419969872034355871610614491269177077980341457264427253280993657120405052374327419659914929521935951670281654428247663387491164398485593410837216745710064742884347106500683927422593027196017163079302620977176692953720502007586994395278509820145143343372337294838710650238886510345307039757457092597150042035024675963120730337203614107744062408900780058307531678188863661733541717681653644843517539708253064631638862164213164688837273274373124715898140803786056438879991487691933253772225179680637999558933807126750331324473918380857687670270113686468795186889823974535622101401637217314245927556358060779205471471984825001750543593450290590686433668180757656992430564301949068145098102184302107508019732162438569266538563887814865784355698870295642770218368819969670196972429641841908059635492047152787733043362892992601386060487785122436665876792343718469953286541979061762695436118343970765411045492258361052352209920467633932621763701923127711508896096469754147110988290577786285818175220311040655346973870492999175620576057963057393757647912653992632836458208764829764011648739844941717240740066692107914973628209377826404855662421495051858758875555995239048233353852756962981761537842641477452750100837187595341100161583542595027034139841413145293659662612976437798749520964960292112262015638866237953776022904041511578867149023863899425464135027113479123353361629345501166059509542942980751578570554714142726201625716246449147819238095622218359969585151007542959893583297024613703554406214164941198656080620831518519547800651484748071056833278268197609227972431307682981820037843025072047180807099975635633895443016839515919905150835393259999158672685898744007280583286414194516187262847374728275398865021307433593282161347657207763084924100890045100147199884858796035218914655004478410842871886350270914104325646260507385244713608368155645552203285439445722543526278273056613676445256231884100047554751954707328226044612669029761316830057679819715035041709485287609858006458698010864800666316526480044551525414241544726339239961399618243982353146583942782084809124521106435094243641264800187882547825565162303257407651329182865097795206988157554298872347682347601023745686100283989476091086439554749636180930017347167375265289623529320417147825752897059257107425741207915015532797350441539654536414983738192516874617973666517857313168561483841142462547486913529009219677480972716826576920824357592976204504527427747718211938247541627853617468158921959027847146548364875349323452551444864535806982354579877888926101709766989530588117861599240496271144975800219973266315836712309159753346710150392221781869318011061930949342365549056603676379829492987427588965502671696191690013711245927239860450924780586097611696181926307887285171881141124180201424515098127167112329990421477374347214290295253720808019443675040101597625285855517990466127273368418875413098590524967334306500247642091087389428815359273196473805574033465299044874857633446726371529972948166300832878813348056750054691218367238934125283472062683850688286634772571048398629809706360157067202412191386175335265773705379542984386135634307234727049537570628484950826973053289969678355473409832228463536418089696311683522235693545279738845011322848811360694498496781019769440423470641070747055838943928208629984637147212646235097090835386698481840447825280111087367286273107290231773794757229058650324897171267271131606938839254768855237550424323807183121263385639759214510160201607789530477143975108628377237763195398688728328573353342840789229621188618168915476657464230365484119682636389008323155838008035990094253267966776594036853610865716303159677526554847495993258631090444038646804135859118850659699293784423661298402558901264828428878067074559742124482132132453721161927100983760761870516194531186444459131150139859566585212721355459784485947962724835376690351766488768619859928312725125702942562002447466619183052025330342624817293861829605883846402939881514142243023026771182011994506484139992348300388483304859384048997727487476146696716327968677735959151562958632009989609240696019697286794167005479752125634857341572183349348003184264498057186381109191653546901745243039494735098723216615172113114999761670889845435410680274222315410943351546397008723555125298551387987847261318134316569670740079944179379888488849523981089164409034913069009733695804128142491714682318520894057131478654573533820239952542162776848796161354031759588324240730207955800663040987779954127065376409439694164290286237632708964536710986225448422995570536580442405094255346446565955540070222882386482232113303048800118536440477748369707057429624027326094347338339132525133910571831515411417217564466737587726189647038890390380716632384798027062230518664908166782748755849826567381006325824805345456925345624108752974394932700275948801318818751278002962014487830215066068286545417652199962079177402186713948693213040071729971795768923852384813024679186414010226062157066202672837679541052982654973882708601697408203045132346757317939020795260617864743277033674798009873022214163577886153282793944427084066166236367645226963179383323492535585060397048439954097389211785277370970808672192315272572245373947074343329077329121338960623682505967333158921170361696529964728465109761644510598371008860411707438687132419454333183521568436253475874077357637821991221731123452163598566121325222288708882395503005489586017068440885389894140255505660285107705510273694666042429440340007526531999490095296369021751431666424483813967928970079830794393305041452750617370508773449064363965103327587149271394995424107717525886848819600587602301354155583554518197453163659106144628417371138936806906099352639572889218059025644493657861995160792385536276462506456627701474676579697798098280021214101940346251412966066809388777177381124558957858674890857269872316767554168730869514090097777759716728812487557207545167520548155938602663768721849900072887481927416066106683045749252695948160812832802272511830913336724677627579771603818170050311276193833535608483159495120142852953660607563237494308620553551391120220808668476567524102512086829341356570948590080990961291864037630487880243522932552280360388376188136278961555154826029874881866099240852727388093016872706187427582165356921798572053712837092903574288910582035546798678364768150621676414832524685190294380409221048827726889999711024743229869097522147222876606280731010515146662517017206229914287734887018105027021596005760305449498533362743766843674814564716771604609300333149788120563293418564621829812433281270975341716848096645234777097886809057370998481332379977231228140809475209113518089270078718138326485148647663078861817085668261022743176828408402563291276497168062420398358387090141417324102037459634114321074511520690397066066422564038161215195842187824082625149231851576033558984520766885358074583175153308093872329712877195877040672780896765701110767961798338256555090118303745486795465130019019092296325313510284215780483695411631994680748501559429195361921044778148555640474370274196098561339644079647830237423776601885458707035761541171209055445753644187797270721645027857173356635819164094451949550531324514543463670520400049627030673387217958015449301698429667839287898081391650417710062375707708552893448037377465980445084625558670611054546485779415713970536206229259492539393493495108338064186132300190762487623345813149702797689684375945115724474191648157285689308549529881361575484289807623233143680466549240155556016826752524888441959952098438320986322329248480045597951403021574803165169726175249194429904202195418904771817706490724567838436216297512523180229552673154776342256821632229777095368812853774178373175639786814693025252026563646567991758746296738903626622851462020592927163880730693821000048337971326537492059329351085151723513661339417550421802999948324018106616724887571002631926205730351660955400276953894826383978006875021208978341466741424092646974215765076554784995569883706518317576653788742905194384235324544909679978130306453914150696398005322206664261940249714762886726872550951280255829493201194000797545164718186027617994134248151836673545602129405735436306632696767482583851702115213714402394085119079496616964312714801597483744573259053370627242546979123142201773085300493477152056645862590173113793640600738222015422799701000995506325772787216576049812382891027276169081486922469775891842105205366205525629858942086698554452403922202651734097924641122140013213335962258918659898295378921472787337098404305292464537965754250702877855067673914729271729046817363936256873414655780789855936382435193582295412080926121934290917345214586648388583919824793328697513216571329607252063706670805090150090446196058536232394957614430595083931802854965186921959442720733669696120811846992716337710166086529525004386954590402374683892398295009172015165925886931948417657821801058695050490930566783996674301604095539557869227367655252636020857097057414528183869819486080638642981808790115563459732501195773605823753825208002799514651872890602000161553085972774068988825798987369705764657926298516912862636116375767219643163343520951416043737843783899349535008609405744868704676719664106934673801698884383664831097632717222096728181683341395192578415222392031789274852973397504275003740340970194235022562340591902486520022195515663299906127474033166313294024907161785505758894395216403410690594432227365886108480275763389785465847760651109550530149980799190918123876162850462843599980276792669212565286717907240300042841554969891751986191772437011113545005078898748789111552130957831135774787946553898967288058794668151553891049744087221798878387281086821693324963179772923623313484016566060053314721310206350489312554844994330097937089014464454134543526619596058950449786622161546794264220246624435011583458619820736101509620557869473607842615567808326085904667919722379676405356730418416921179583757901492110801547873710810083699004180761885192255976682507281209486583878359771909421870262122967423219326329458885572773015880767030483341263280427554434860286819655120038944366305300039235801608325682061463038478059652654383063545431380851141878399918628601459370433672408770783825158427918114263358209249968987816656887471168454977713739517910656909304565915216554688937604076157730838368393653032743093459086173809935479518510319194847936043699931376342138489869189151993589517236861533520619635364325587954837325608764620093626591390074701449383124483480991794605626147615726457576393517518839557002898421788867515742127880253325690937702999409666313120856208706417343891178096849058224749902971036371531582216321355461080893064162141979556735358325441763429986886291051891255454189059612575641460509182949405454067100040900787555877889094210140286523198522397868321272172542432164061107627104072439132941280187329299584530754081466363952193874630752928225109391154306289631739784121345118833045970973945216679150215050321402133543361436748037096436844106484626676699667152855093164094970957501975216580835815838872031423730061408475863319411921613113661974354857589321112884021720170703678840040732241203206768304394205281330077934832983686559552831878948872752859660764271531269979780097704747179098923479840409544609756972219452488297444182149927009102958552126345066218511690400999575840679834288736852831086566472318729262041678231887151974698683106662544344507772284736631256293862375611829235533860654163253339614771040478132927710865587222542578530723083181723912427430995316405178166016168198718057913811143352612366781535870296386269539752701594504942994897424232784309810659952396812079738504742901461925566714838165623118989765435837453533116975319603825275861574102100090149702309112930855464886922622648970039242941168142615569553531126551989410679981177544220361220970021676329840015702670903617583292762170475564243979574743366887685229433021460941215864604003850859743421714061175067103274167252788092991635147071970116097688025452915592704684809990322456718799536424368841117974779336518118235220317616596604762801166619299905114317659076184631364219816460115048287304800304646100062962579455318939848801985459066337125951664729967758731898660520197523738181984559245202254954806276138915857506454653946495161058955597774627110779309364690966856443134852255073534264922494641237127037266233779312403069525407146560410242855447976528835148941447773202909727679044894376019011035598079766772643248172181917146371960700262874083668650835947580048066389023399656799104408504752746507084096233873341466958919799419150854973476178875344982178077954471144580401753850192513533699649788236923961973465358732274212597316898797538653445607538074812057019020767283698352861166837778875546375450536843367571121454464107936926051127715955142437616506894943739820809408057551420807546470475933034180197499181259142481827808907815576256318715769163398142730763230034450214694540426612248759723737477506156839512563197572931139699138482156582407311364560760433356321383447681687968287093395114820736399431933734910485190536022366631725599041312308205601280491715838899276872630995808933172527791721658667549691001625725982469348261029305782931664391066865614388832512250225310022519330810418252535022050572096985441635249151108296164544582282251048689532253696662240924404799522012570668476920638984878515543442188280984553713327599217330801914623393933514668823690627352296554202707788602570422224243047256255405451770935818590485417307841401321782141997680641058768276314295136057074277421164274639191119555085348414766970293576608389284770263186034462892279007985289106708529960094873450792238017071140741723184045896060465523348086289884740628150335102072591773973991067793714906377994299608534722970731535389110124532153720772452185295712860052642261526130584410228847317661491581337522560447616062670265328457291790359303692218432965194258107366409952698409338241496651446935939416671422199742765745283380799489309408479175756193138307567391563641424602168444721321575593726884117995079538723001173468420185302298583729622978881150210423784663209261604910822177737889868296842339987022503968225324668569037900044843591852868571083190944469924255660090242276828902347674927712602561803312276729135542624034374644854760113482170295815924572871090287421501835825171214095340767642430320129872562656756658662177453531540085837044910432184755183314380913463506494628566496817594269975867802626067240757841905123288006790935701176463983060404993234993524174279930845615497160982373902971826126903490817588055900319203090173768871875981693996114206445453996900571858247008952499839251345914488513541345070363720472150553567126660529037952370763103908523953895683782149171076755678501615610978853732347813383532364636582288685661760636852835848171124548093860224073238442763733283041789847613170923777064412641426174083046317389449188840437680847181440841036613526608664107200114890827785337437434569377960428885498803741467297211863685751124357796228068878977852666700672350187545660244296026571745985442267332520524028708090116648549874726309260759275914932969345051330955448590303890576240326267925158437826096844150816478654625816739512303736335905259683381115803862915162063757608311677646785817779336637491980234755987014026152885878317903702719734885672191441805797762904821586650094857778680918189818058150376533895456518502167868079582803391128657134494816876797461534634927747060223081246319648319552489336524734226966587163405210805374623042309741653221575577240165311575120645205766971043228179028370962293990804936049200367496157592123068929347640470979867063473181885216877594080278514394737974145370446239992663728219886277897136523148395131999877953678016458638133846699082264420532741441813647536116062545825283979610828448140110262410904232345093384519255604725610059874118684932475040692764912996055814539850206332827489934102441926634211547184779613085306434232265246175308187560991418933922311112077824434178930463260782554147808353263633443522890458916232806059863976414547006216376275409413868522362179938312648400444159713107296930259309082999758504355763119622853903236940543196543569074551272274598204028233552724712778325612961104496321816397730210653962016339971156282931784545673716871530905463287874698314256265498628683173206338044197584908768895415839907479435267892473084881904536460545709852059901844387487475991826015747339530860793905092320569705352148801737895756499478994295275340187675309028478804747556746356984442901446096999874125791762283050782353724629334396651790062801378131474089036149485090996280985327497022362335288063893802369165484906628836115726322442696387836054232578798805561623015869629403814026153579406886178164352860754770197290633142048676891758325864473761694276115321303581356079066645712481695483529266254899100806845620241458276499068011283942431842106688686732922313427061747995807283218524995839408194795354852486417990902205390467496777005568291898771043690556875336560706583695381334983686423262141568394137917688727187695091342027006099314557387020709102200114808630665126565947924515947292711081411593190915499193948586710807848743126544150123344421920206137822056083545810049446982247047006706578915653606432533196493107781707867205907544453660703642892917752876210433016073584012152693086848850739404368944257635856830841773023337280954096532726496549277237164777877731402100546184440227988346971037023644209244444571432156907613211080532247525677936560322694238027305823950129986284533857050203946278778027408955109088774077425213098590815095672383550321826840128508959899790665101243385141827388102851059371584852616934617789217944700712317708145195356011801208942174645852293324901380063034194648589078447291048779012477234465837956956227056064137075500558682692814794991002308749952198148403221183285560385501145263786975189120671975859264692605779115921541836302174834647391988030012878705574476250382916666390905701452281671793905675919111140789877925886317556341883440094147827345537375882037227069932570145534475837028304067819213834671029903706168748680344646281475130843805978385477906097663742833418962736641812212182328346482123523912893918226231890117838477562415384763366259829050046135732453050040136287900764429209525028086959085533307656197422373376658564697541678519735040255848562794041882659638466704138581654119427085391335314729880277355826841188119369364069813453390245120473804542319096653740440072202200993831519638904516743257125315706826444994150927309083997979796185811393346266706481757770656341571747835785734281977781660090155440468158217763188618364908070378644071029560001435874994354019124359642079998502412476365885729305007256988876170433124192199953091478498024346313886584284793341109086813905789445988169078350995899054023128153423397426354326670516675642526521006343288752586842073041089068956072664523001151261143331439337413870230974306024181836731005906991503365248132098717316729365002405583382919899137160728758565328687554562463169341094745851693636254673463282050208847389982135713025143850610995004187509496749117409358649525860625117201253748427050284485222432049712136182192957481878570338600673973200664282741823211363956581181328225814085468973243303696385145708859577236342962204450975224650665165014883285660337399205688058198386514087099616821835219707486505512319258880379490123290420890641763194524583635964807438902851417837413499628827074536838437099720078857875123702921155676886677566117844793634148593518405341494254189863647248607374714882076283107691214311812112375837466452305900061654021896087028769821444995038030065231722040381044814334270041196863135538092548187635969532526815825953386061003291333930399326606208732551164327874664465639983850988534922970893920322033814062805227553277256437227206669549519085815301222394450884578756013485189642601800137132067544431034497731710082854344030279068934780180340659151077496292674793232313163498944819232113963185085606270216105271504226784249049694940975527567089076534569761354042716968956779780335735035063720993547182127585451399870775515758226955914015070077455038536417694717337120434310470925965777179016984433398745245093871309898683100047248149200228522563507882942830222946434292779734051737600575436331652038984854522569997398115809822092326202450045138045578887378575393020477738250571285773710990407863682497604887937334130890091949207449236864948889168560224680228341386909974965776314510592760026648994974764897811472315737803381088488007765787855192674972932864806083446084982566040761256754421026062866957198304627678080573845523035426092037016237366209441912509763468617896397915317678167009185443959566556053095150908168282069690025391635121795947228090546017080759069424513872813907097544854850563764054515228080046650500049569488566554438033176884831376617442552471242583706714659199456913652659118849955494082793239295723149787344786029018259761080287148343449494992699956904928488761448615264620351318931995210131010610117053210584308530745928092547746229351407275202122259405118442384905796140201684175819170585972244988636901244721380536224183897412121308892381143132001660637974504653690029970699240289966740005066136536625275081377997661108740581059025996657697637454451922435730720703976344722148844155091952000693236793461021952725167190979043926717852575086290208091104895272372300344371711950606596943544252928327030487699084222971477483965845950082664088827660396612022198318566807280280068616271996043673717690626558040337990010162678029985163780240903123411567235878402518414252451215787206994092288513037878224871260483465838516791270586933158545601101494786390754190761631815108088751642940543455408113696396492950335880793157858808128491905665902835149322093214121456698514390714914204562457473793002105620161080639352693049422738479587457936066331648491064405145550248429719780350632105402132790480102771666410903480861250950437397368359341846215129630377881901809996198731380333505622481959354551162328807534744747880104803586872435341550496983941191845461322853030174127914916787814907257648131216513665031182957959048415811207154590632213433040717061177017293538202253157420591212685064038903693875889764832553726843159582720694102801873145968529975218741991046360964222129520812252775072478437892983427437442366943110163136733133800647956343968075381021371666670342281839172814213275690543919447299620322420789512880582492897297329224276188647283021754881942890088046740748595985149471124932501205148390258283652947301999980499882296382525881877575707548589310375661092164561449944894817004414207984385374762011384445656343455379078375317597015204825183779576134317967473362775997125780473024313424554806172072875638189640543751700168711850763788869211195747977503780804454137106889824549705811188335989749523724884753726568790519305935753296850873346028984310379370296938592788202492515767601184159976788131665711647502160380550857366408080951903661827740957930277434770779638635693161858722162039349006878070242594790648964126574921794995719018358085621213803494196245849488300112505883746158709252151403787720561159803864680156404665138784014222796647866862164264561515355577001765381384147454718297530271450096743064382177404372220958236124190847269403891552455341920917235009907232109910312170647195019732486243089522033132300863459075584229159758774642398280401966916975893883786233089672168962063507093005809408484186069423646716064879731515760437056164401523608193575701710634797051183803957922708280274557201906125334361236251919962643876881011995871339165687241749538246327190800192534679412626320656129948379044588913080071497697738114480507639623026127402121644695074341417538329064145906129355445284450313996087730086078080157380917061586760814850790547726508091445706836250980700360852997510416527300802263001884602697190532621511708599929426023343937200667116722166135526428243796788192840068015689178169078201827171115750999398848574163556468514643570985772701910982187855363362121891683078097184384561134160988867970027721272251790874158143238077579201050033030855976436246258378584417162126348676246671951667736877860592618148170302359645237446393312956663642644659232863426147729298811931853872461213594778156769814821491415892560799494933168116422868051084207052983106806339348043439335480975627849119159865739451104957561765263978174606142748263629323276666653289493287201580588564690801664959390200909785032644682605134457434299098723856503505050119183719415154757252139927569823661551310098739266363794788956453110385225834815599280589474570055804026428999375678345156003707553269740319221577912798952112192442615994896248998554207793139622878769148922001093958830201475626763477692947820139934438508972144566255892900077263294032781922585230099520253853914696952331343989138414560836557255658976702818049681838792007281251965823059368651455552570662876717722556011211419427703694485012399625340080932585431982488341358592118821791482403208156281357921104283818690575614753209960242413093276926547048656165495466179552917589078736993300034360600796106915034907521334140156683268452322977739187488582888117613441252190453333824152374347670539797892664295067156954314788463382516910302575530085775366144963595554635872606140777863944514792328154912936294378637397010062680881938927634125218769585546461306071956767759468183675876205949093367725790982677243542912272648022729293073213157610856108177810941094735659331257185895106542506795013099066096892301028533059341810923159158775348318228165725970267300532267520877889009723343449337186716861954225293586544218446803264845562415541876845899860228678276709408537750222162986290665723568003073586941852789993227711721218194540754009063448936179729074257588374263416723411222401194078137495687118704747308519647147424816013257218493440860671016383341657587521857248946663881272721961103850022112963612002894680593900444569875015467264609027143867598194175310912107059260594193234747009396175479136514971036213241522661225366178955221369574013817577850599632412537457515516944644494093058747591729363372469444656349448860100967673177508322215389980987837181742522509287999336507623646993742216645506514627782435355540981711712300049898990442775980842663276939221293032193199365590276220411935610570625184798841398213569065507464588581510443473912811977041174112645072889250988078915750099332156274796603523623546714181804787309407081555111472790888024365687727840595110314413955140411583050161377229543494374251837039661645440768098895474142449073903633258296141955619938338945746427370901195699671172214388951634353259666744638743385151362929442119220706465630495238458050340978643649566007611192606437264325813147154105775945690138056708591462089091029781369188775955472448425950713595453323562603000346907078589271502010375803554617584942920077672093278546753246826052310331764075403742651293484874695057074641289624191173817692094506671667942098851698003329359622302581673868795288076763263425350186348339987582234389004552679280353787949009521830302178866392048672305958127196939402491079265033824214362352498234361198754258335179305388878450329062385888283924111099945093816417839765697797644968168967758579786224204128717748363178216660409668351501495886009593562728124858813916480831416752018945353073284892651311622903465181577084178674483362555522798401920293480532847449975633116549595334942134283232485621267312527966668323031998225383522750908095079741501225241692850632930570310002581399473937099549332238526028907431562461209360787334240378417670707776947022732778780967704138589325205963732906650237390519133135328390469247887930202509766763764032823021367852536392862136576939978516180929002945508700192327651953406974867109240948226975933110831716595369235329301413356635178015082532256848266424723521711710397996996885609189696057363593579653162796941517114905609374712654092754229466035952994204935170465118941442045811949220161350215987009702631779469279819328377766612620439938620549737856749196175597833775990974265182627340567198558578096342324513440120120428305135317028588672105081666161012367817084501182719491440670949702566159412995366796590477259706064569517022077790447356191317248632613435746553763855438450218959461078614065397326647493986470094234941945409742474280652059403022898571432563806390352308227621553543034339034231531302211799697980179996707283225229485406895290970078267809405520324663588544631778524761770248120892345993561995472128891843913127833292465853037807187771391695847649785692155129229840310903725297035896275287203571588325808040314584023725849747945077181686714110157508187003381098293560706698971290083282487918078071251038354157307529533857199937319399986067730288627611779562632283612080603231393673175404347652596597976252405106582377515073553732589224870880082253208313005129128358956354824604284734484462176940034988925709524232884530826285513742323622078912307815221284207746592276494488789267831561341104780938453206445828152573604505781107520187336127311972447885859243774764602859550441079355005414867403273782639039895384461819627280083453803682896526662117073504820583170546140840362081504907359727000505699728506569884557582202827782335048158683546987193575509886033573275420317704367634025811156025971632675594441435511818530155697271164946208140975558623477062956922212073246756327580870508615623324641248146986923536096680164299650355615384807863984432868017585504485252500366635992069462179550563085061336664774812362838837334318704604132431653396585712401168939442476030354646785922602845197436715259266311086753178145829040707860908567194406044795900746461437452636391301187891115454268827319506756646680669016781099517617768082336012925427238973468976045718044586215726658773231452241727870110507913268168965182230639964093265522130151304507871801204667702906161418444072803804949072763685756289191942492259196404486512062150180346332999833048635984910271432161522107646246608154278466651289443101805350324578735129941300568295737829055022433299266577374660162879268605401769171901381425449575620752517600195421835070629778363615700643778524191910987424698669297202511172616789785895113437355119225724519617471181837012192514224370360766909084641053964488611968752818825245711238736483002491762230016144507028890316613373359579500007905526660382832796742620240790563571828353361864004517510151123484010965374083103914994292501543048408914249518301875594791604511220645435174406624560836597979093811227708102291699529441235349926115081111264842620368072534433852353986264744006814365448090529270826064304872116019378718534216718933207547121759175218600822095403677710512399027985686461444733487871411925835019933253695624807220234134388091420530043541130491765424304384993801225232312535114327837261290116925544011421119053594027220432873903758208963706571353080015119500624095366514394937683930323459385377372536937167132308623266184006871395539353609798590040682619038730003901909490798508479530940420501521085670277602494653419995304870893431676939421617810624470940067019238489807971974077712649462277736777542655498634233476132664320917486085672668072847724522147898926908782612189604874501036270644444010717654419534020954153259814430994236158056186235458398602924355638923783067810537736322399629766225633016766909327269910928326273093731170747456898458020694971493969269682529637816031722727665790295334574360044380515591956491319790600291615647081388382817421686372695576602051091153367446147136571945335311191044178357587808146933444511332675556053727081047634361172048069685363393900106362409820023092217840201923693550190626497127259226332038468762061509962947293602883184749368985877541576618727560266677152604154056189780700230257779907838316024619707601943765904234478668339990279947171636332135456674961183760635343199768943918112938483162414584963187273676295121089307659097209869583256761588359460728255651214758016804725470897649084940459489912602827374214345546985357214462761362518886333424114200491611602655303282625020746586398493747972351847387508608886850993667965424489577424636802514125038007450662340581333011307174432852410531055116944151538766491783700210631795377483683837531789872792483658809519147812393969621131061836648732893833537979012154214172039765459064833672702307537565498136729837683663048418453889935945539307969319986811339688347207236569883254436520908540480468762956937312228040242264716460567108524569381256599460813656074716222474575035508908090187087720894806135779877202022015814230379513258452430921875725854316211933231910775055271949347438419114300832189221779449928849768514767953527049705529654804676962246415065041908207988163759990159738376777819812966728507145208661776014465476894812071575170973530502817559017480924149849813959702398845477632382530359491414449115063865008530306357183864151421037686407538765012942440129985934383966324416308500595120065208940993013395778284331524632913435842694767224115641025049452918757701242341275559723664682880162387000179900656578084574848972003241678276217166426171590390117592711430842918501687472674050047139976036515831261243398389845335926735684808136783042272622915502552574006247522727389872448312021212155732222092659234198674030578500285414741686505305558480411338361325236564260087661158987205863160446304869939763847156869595788206601743079486397652544044595828397655010776948197095254216981376109961017550855717547891846283495933383938568738571593204387368992281536986449999173694434864444705496869440721857860369569692430924235256044382890247942816805526080983512487805038456593639054644873585652959005848373485816285903049608136794085618523880980514774729646780015436248203487553469072773339551207533406805606320599158631165178927107239488623237983860484519055201613770569785189416575902253532849331886784015808821587267940174409826377361057172240019983418167839640867590320456730129938525663455345488395587424566377227888115395186976005921993667662446839093591780391692309017209195057548871536635815097700130942601397025743512010044348093040362369936296998848409301570103184776494821616456867092624578103602000389934736380437377554212705344795918801504410788703567011614333710189723535206790387619915404730437609808456399971082594371436694568347903034900536371005809586468073453797850525147858818782125237119526924715927583832450230828452879758213289179573525498266864356150832414786639551114686958434922753057141961890651372428816024763334345774050065596698851400185512752555880764306896685065011846564867133870576664802136314448044711840170628848489105743582249993397136111618325703604533749968231837614957346066826981894130786077156636296739732019616425501837724197682391022532668524940525114361003801893611927242158109321727199888269232971492581795217105898783355711382355034051400412741062572266577255959679715720996706663396307991793364940028490234189618709827404351593097878930724288392743983266990458797176102729400047345787903369651635470363453889627859972903844313751078946671750146268130941672605343615233431355389932239910766231043374760330086210731868111296298599899483072756296351773355618351686039318180566148388583793686808295645811145018487042953699586377219150664917166721007283779690637367715899414667749327825388048216889226666971051342590801711957391533466661959129625019090299753592169504060002994743653926161382678528247552790510784212824158958962902948458024958752667871774733243808339949763782637284381903441417800704749359083537231844996392118703569443961238306088410788151732996586538710408654255887835160305300052825512165187886305456281412864954411826886300334380058741020143805956159332669290531038504532431022658927037188562259982833428335502185395421961187504132598683379442053556250364559426699701425563060583889262721459227756024501611974673477864159557695320150818008813184678282748885192427390592904639450479543830806465609963966055865410913229987654422504101121911395929966897139154814344971417539763415044800686219359847290356594459134028916654025547387434084787449011673507039690423122907085595898966787762222627577280965138394928189897712242018369512941574201791294652155661923976928966762000563291969818533383439602960524574787977690331956773601634098153976855774542736369519512913624324783870911807015162992119759242165543966397325422854024011738389960648427925307943799696583571630673809932754313228537481087808605537388777346091063654347320283001296281328939454033885559056683115697142363465933734712124001230372063289050327028439728997642812425310854950520708389058013160127452803482832335979342629008288751367169743975081528470423216001320565776098250327904722106839728465172443601813808327471249206049658292115185849317204682551027426546239827475143210526585274071338545172847990412540632238144482423388420525617644046624160746985937144337896070435745457350540101151760307259874900658351722568805755618110092949784011748244704642786822958926657885741329975165611744887784763988484410336093989831888121671250398043702725719455735877297042848545621033641638689013140149123265634804214061211905248750648936372777081347164818571125537700817822593646283634430654801850822142294565798701372317948858567327797474585520809786313277068224127554718834875374102074269255397054440971861814162238893111022016723233699733521985038201302628575555474543049868212700790110482467185782431084291241480705607806689356085875598545771482253663090199700181288811977548040895442805365471843752818430446235453712860701241001084553725145932720886276925890937824271912889200671315408672308399834774423981490645654183327122586221492238374992490650866012635401273813702154248191643209757548541046128067747637385979790634821717613834575138038366032110138267901637235264793680520774500239460529673875184771261553044803736712902530044067143127241705756326421048603173400975008935849313808051635590420359236555104809506816172356713573581858542899781743408825454741966967674201571297967453808613870960599856946727216547410514024459523517845925643001431359556131688182682626021699074565673982859041864079725023451486898829841318922079269494072147846563945854533954543144093741323166307624648509447155888859112374695971807628918662148641627369892497907300888558526444046736541415997231337942459342189760239231438521388712615797250361619139822428358381564041487717339814043865461256847564897973831972781191335181367673826062836476783298424329818902324669224954178336600233181544008663415531068442354346445461667282745101849266077474919762802584335138918959013965036664046873797457305654340213215052135785445280462844531984744290968810305571635008029819852338691024902034366160709662847987951022177890256004534131481254132033950667504418014627535558819387937313412719465116575817025888640007856366608306053182316153035983412244261278643420126912873028678186147728721022351654846005833954806683635497278630554886354151504825459408006457659818038027581329810798318207847003519333810075646612066087606187565508927667199667593417193709821212115457042585018785688456326404824302922416008838717281782722847660723646414531146677918486617187677156550821574422807974638250474485172521509922687289743452445960053691326137561815923315148376264523293677230451674631904682410920738096084712006643513069760227846880462697841994222296292191946128434732400218777538433214604471562632878707069295174041683248877437223947585410909695267662521553315612508325874908676712302536729013652056949356064254623933355246469466247948919724823252365212703516409156760605165491086879897133728309793620726067620908433709237082183975038930168872352047265821054323643470207684201415554028847943857718160059882743948659984414375639204089564403310860368204411707567404092760671265723628218917378071917067735061384127991349924353582252039244809882292004195734819650682027702398790778088955889711164642236496279261904309559168281315753725642369212572137118887321015813423080809787172434410247952502872865128327727652820464804267761689280012962151849992270796359727765399706353520614869838341166015578006979683427288468398965110221253690879754367980944940482420341118207641549574920378273093665664645038357861811501418261783956777591105614197227590188560110258794036835335153276516271489822465109806459227227239818468994895948776592587981418055929354996674140892698412000107717082189473747806198999478986042581400049535538101257925033957109937336699135232635546562983824483995582667800405155681450511775173819422355159782499730636660061015249414440931387794352020000877001311252745890816465661629745178597618843311842382018677597916294908263177137680700010154198054331619915526849170081249013766333957595898479339184308269283023396603655394791332230293537799730026156815425782578915910571068794777623506959479954832652803191582478231738534996468247280528121983683645560810549588290240334573198798785654055291965264848927287502736104344991983804338952175472061361349014743978029519103129551252291563934999904086172350901187351801793246786528478742103867546538122126035213193187647537876702024721929949500843893685722528988109836647929288852508218303552266741591110442158356349455899574368610201712906000825642217043754862902777293208288814859156352326326529769906056701574076733643148300060180777632977937151641185695591535892125383478853461267835868530763215551571769832858909748622766723701399545121159938099341235804047901148346037480952985833976352808273731673558567498211815494491315188763192694388541312194432408125887917696283506994747816687306754460981241903845482909607054812087181472132518886769369007161492161667800241241815418134416511979554076913136064142643752510682213417271477366492278020507301393032787858947010338058687862750081422353320771875593690159129345657868846799224502950837983831645990051647495003552859093277955186316440084905651628571397589198900314918654245271922910093760670532063681952328755059618267895194882001975313460733853184160936793592975049661278547683458284917386856643826065371762860495649210065048615919978872315159318097575717527132702485132656838381136069082323784961395929243745265654804869198219473068119085648246299875339220697471851713143826141348324623906179549827118525312458132452539385332214208063137187016789044391550329105346154209587752838533551851732447470539939747758210740046074598066054757480177118064317919866197139548031241818570492814930305354046752423729854497765185928251525732295559518187672707588891273105965414134095505634272675059202129940290664101043865576645752817249023975520274550216963394288494971656105829494242364628302950317156075208465608294659669647104023082103478308598680974791982543396784438948983668024162983062785022734660189237078213865910205256769753898253054410452616355110243977692101908593483263365378212122828075338801642656198941257302884787541077296682499736351580433575843504687099731191146498346746920740789433199930965943130455339595378101490948652029127135666332466522785390778269764157096561477978267472244681165401595027863026682564511374032653596274624052496052932187799459630127571773984468484929672987312547323039437245924901989595030899886207386474302868808932436107346794401317132897958728328173255032659796340642263232601261688476870620335635127676793270336668114175616657690404577566539453881002179877346647244630455929616522999862480800345328832329757939733660242812428640242127598049775755888906946023032037430153925601321769485644941057710324315906582263961632503276040651841717285590617001356989976088630229597042268246945118646136462512013120710963075445328353913341640652212744605946905166343027687887600877188287431112754417480847828781926191815530334128125070861479665197743979866953464962459414451379366227400055774184601818440155558062402289406775740991911201255625400377599054104182754091525660219302636649978668024824798993465563669618487060712049259153561347195991913692476042257099574457131719958928261824313373948504524404620410315253682401770843217684034401936407104867262277532388930315607239872200857508462020512130442410340269038050146302276002773567660323969215861645613771142991863343451550731861115435077205591703247160544977183447210193085166242406640183328845823818615435326947343443017987673022927706864835301011530483277072924598325072396854913707947194870251291536928635247237048128304763824953303071452565758429885304857504667323644176848483353375997081304403862522025650072152222399883808458777356043865216542911043780071828042178142333873640806994120424715723304302041995810170595390443837235093494207577524015533256045795622914628837633429934607603560820008753151931748594340190390925704007199017571075612409013741176487697846018309348327267185963371870011247902569702134389012662658069136352597885310249344145637884409506893298677551078579413241022397342711655422420549988037894410862626406691340256272051349675261245576462745610275440968482771154808216739683906912941428717749334446018161378224902288751713537538638324905498734979695354667702780902079818525093336749763189658456553094969192008330491994841004352241147128362046503296423739760135203540427430341935292735683216581896052703360382673045937290918734708966031789862383458743773091696311414590454868899210723245186969173967763385231052860400348790654296056336968651138052901726665956497965398180185692003831187025123659500167463645196364272651989464577005836741975503923223300678557267882640108608114018799179924515176750900794138827401183799599384270680893532504499314794925691086439423487765077534148273496828534087766837495504892255706157982131219028171121888450699856948512872259213036434243835762101749186572285635080640606516037943387415836358614923467381116953933889122483669370325706710529236159498953216237240601845814455495492533429633836964485187538665843087175062339943136481392823075896960060477458231411265129836872640943446109145995479446085703122775459877458478885716228902976870444820445343948326716295837846717347719286731112221216420622191110259629583220434902864376207646924215172543769928885788673528171915892414904410788524913012158954289500859681891184899557052285912520765803247378040889389219981467480291367995089583771955934469891840132076980579475244058491541870205392767838709917730894735872882131107228333701208302219489436624059415769649880223490676841548145987933192763814566796093491484823403008124049786592505194185139435832781160279491369657259734006019977240885265771870808027961414117462355155580437660141517248826284696147652074585525203613611685252168141026107111621388623691385846693504095546900137539866644178156383687893572383915615645506426035898481843455295843197038001908012357674122561804857340119292907197389284097946411124608973575332656143369781519378772538345946839732810188392784093639655639845703622303244588185184443346669571473746986722591709656414541339808925250302328258561036396215037355622915235210340659289994659473877246098866939074683487286251317770939198323801605662846390582137312655527437510195147063365596979540642701570520394484412561111654993790153202940475263815045097973878659309590036399377975702618518592741240698876441965741770016526004049012535285766386776884756389898019657730396055257253896031949170513838359655923804697952656030037855990783362210857653289868077038913747863699654507749441251370350753501162764866690793812154169779284861366741352961253114746039541865577301310444573079923995087523521367505796340381337301564739850442911893521104466204978474094771009590468317846689862214772166003193917699761771571251678016619474358134740214783290443791047085838472080590968269474629353779145963163487969564783028176237374966828069114184752198715783766906422533231986680479034764200022728234559374483300463138770524147749185376966468295184437686037552713649730246874498606674100755403236922630712995703692148288540656361850945993093627284326190452938278874591101421288631334410272748173727778856364876880563415130714043806396635916964227779083530465035096245506065314983237238912826777223457345262381197639611427864419792234977136726238000979772704255248557747079791587795213640708470878796779606483593596980534024197323297979464211993438713734910458221661157790293535329869577792252412174072152248956833661509061540127446868705404462759408548606092775421183342581723488496981271941862789614208625676937396213166695350143253662419081060363485532409238909651581224819775103667174284625568373560455279241109173338350291020756996045849288935916208236915785343810053246587626147823665313662907282498981802094254550887097644177833012749778244015493707375574887280832594170357036681518561064267560969367065414815260994723281451037578172902853347046293404210566216670483003007725626599901871772217054926704006913810870434613969189353384621399335023682693662812903013067029016942979186817617998236901113720457074251702881606460483864847363487655076099441665720826068477678967299230782985061044271273209991408674785759411641473567567775697605588571427396826497562838207471540708385590281406005119117942943494138811978765195599703377988924256980584443328019497131458530485638339026351139980967369647061977607455195391810990409886729823715736275390395225361836891661866052471662670273515261297713720750303069754014462210512884504110601650276077351763864657737055635124487589395383998719754365019734103671703574455884571102921281804494597791401897841167894132450359805808411310466981184824461924393672646071139454689054771086821008896034549133133527328576481571610541510948867910539574477854891238520445784116335492271794785691219488982144754001726180992581065431995226136934878488021148809776458222369823991862852898940719639723942968655644479884602176454012632534455690507664432148636255369859002286064884629512581525439705321433525687483206736494014856711387078832973977569997189803842143212161553667112368011346279692250242277584750485482665169922007077403703907976384728304180721693567939458101747898209281688477576816599641938800777697166306278677151599711850767259709546775121873770539038201997754235110946585669065745924683697999163904664505545024323469742580839049590911463453812218039429773385717447730044806958770362111186234497464273175652935722610865043635247558801222716849286356074486278072455096892958723453157720210088031850213972222925483470719615396062221908957691773913693864378104378195460469605121266718840222786903664080304630874501498754992814523312145344981361197876789582806235210380948682878084980679417832290983953525730874812686353533412539810877408039824892192974153344687322744623689136452349881240623917323525940335125734268790743554727799005506274649249951606528415082552946438462041087279837004832923494406108143136061264864685648855655131565738191601813064635502726846980143537508207669619819888361669762550661829852522253167131698753873282728371320357731569684984141230633697755578588582280642042649921262548827036747517867635296807290286912076958098060596524770294853087508504214640584704473123499243561212397758862771991972826646898205093539413921263832733186629139574261636335474281395986857933004092451397535307596815339883396899543652873273418778884779732098772156786453586219496945779469016956671562171514116265517401756114447120768679355314308891333525463374189514385522489913133587585605275869678041432591573683149725809736259180146058751042062667684313638249242612994347421802615666254701332974694464002176430237780961392895088929707625199133667945741012007919835904295916393171428153276279808182788053922984036226433418705189442505407377749762203452739141154208118525045866123956893417149278840467944791940635309839110344626565786835893297927735715712461852829348355369977342188949622965099636321792527525807211556743887328483504891172981562189707508928735993903565029003659825079510133527674143974869447054953308239813929389957037308787330927215889005887544475497725508374685917856141956358614276266496006382858876289894058600580796239821675282736040272772892762930402344253566875401593227230041779551081201715805647515252876404238699801651777346452585084841091914039263984824765478580260227726903816354166573010011131812438643125515470743404592278016281813005368063511656927087575226357635927442172991520897453277423872885062501405772587431933317372496725667872268478819055007108896238405786047320680541528712508114044103406662594065033474246950280534129086437826935120221656060052343717098070668967703864304981770922835857131909674594666186124053793696955408163182086562965609834879068627189016015921700185805313263816548105975720587382531598908436256147229098618876208494841152489294163132272023667821526300216617099394001445032049724513951454000524797546205632752027325871887402071404356015633694284014831226424981996180525049233498438287152784573598791982724640198926930410075521569925012426065634532194838118078169004922479590428401643903602005518653496727250225134858718027414582539387947663934744194661835003083340762955717338880816553644368632507295856122061698459560892245369666920544325148599140981530213082379770097071861844677103484032175651994636787646490883922553830213456544313299211375790525849337852047911353183154149317996150684013273152413530623800870104109037171255990251457182075543984690310898056785390832138861772419175864575672687558410126871744184878443900064241563204369148107575692138736824621577765312453584030655515096617844546046343552284994161083837207465668951269565935282569723984939379506549716303013474366331752243095811693943482433956658103093571913643144316305613011061133733540902546455317510484245395213185264906308838057896987205721775144343398143295814635180747221901172275468915268703945491346803394267876474438031659412216541008056121793598227401378710796377141245290461563062901083334518211180782775224935644769041065383161850271756850331583460979019236523810547899852745604693449739455466458624050516047546653037896834125621881602601545750547154825771320011307933485731472297533081945448675750253284238845974072668711579681139326176318917853263982790119391685958761510197693054831232875727649433519120170643320674135835906458449177108473443266551984596233799579077863769353040462445162041400073287037099866391888459029025652552999461128965771252406517962165333076507879922581961761421344246784263962575738490826953264909549875138000613848135894247761113247817596301426146421677150190258426847565707470660391317313550563551989397065522199370008303158013617714388589024896922677059885397076029043008819773815449866052254410806363398009213533843035682605059707112212563108148564597445586244808997629018205574819947955708073199941031347978115527450942391680027176978118040414513801443015352198296370092245720453861407962714119235210513476960777421970670541701906689324062459288198435180062689068381300323149365452907359018556464011364713705005604466654140755509681682586068073345553924846215667516835349864729595997408389251579059027034591051072003759490547664887300697246965118594285093177244239637525866230233622614506332555790191715453957651333849579147531802451186201563263215206772156647369530175318196974444905859224375973119476894507743054844901210932871409514325372331992009651397565232949847062041666185090962741749927701647167223820785853410458710404491866883325063457303814250950229134545537917613095218822337255904135241709223776709191072238959573401940519693565238817279408325264082367880858059922746594921004082066284653769546910081896263917186987400149047801197303385107983324785470030022904125097121224260994487231878155587248369249821358493672918849546145342873987582301915651768698182656306218532800781632046561005018818698207229427241772165249235924357513694687478790628179036723571029669612276760599999224736370174353906761599199837392124968407937844328974830708505860965943155641363871215566733332306418222554180634278850736307213582837671612508917241796103591629125421406201870431852744505101488730933711494899124007203250355196471339822420405535036757757072348831680094578989713863169624676780266079740809417684372786025545225046263633536395700515298488435133663401365257109675906624793413324827007435035239273048316171326279780160457860909716336618359563594574452233291271848753032186767312651194169609228486929976572721426918105837370946613798282552760231103219503384076225633841311287122459210577275383169168178279488421062033511580361095576100070378583591483537433722743966240395779352938109206520966279570381939233255407753884856668156621324410593686423572460956331313892839432179584117429933810120015813499399134719401775075460610447562857378680638060444006229024612132933266202612960918616845105274777983835100055784509189312272314669629311767078395768929782351221955208345523699891701479093394505608140234904435464830689344719796655295588284380157334109357659119059029369973296584094350952770014676999712938545598779572938950248805458936509513844685331694751055841085255212545062006124180212246914128773947943995194991117372863095090087666183644266425157809847537978063223839386517780790139375941075800718430089529643873411862318249640800525015284045577868956013174346992264591826565218471016264712638531985140980704323179098831081401829184093794432749171729579108380374791750636489357004112035862649934873067290786778728788298034240815195379859357370106100623238036630473857567429082720622678152562978732105580369393758619668533047274490487199703066282900353957976351000677008188829998834339499368687928224665443793308494381359932671031383829307991181152205880891195568531358742738370336740825963321848552890022745819846926953658701954750383224589177229696711220287116212216066815710464263710634466573602572784131104700451341923484858131601156218261602205617718594482011503375325407365577539430593269717174073635827562078980244004221147387275649992354838944010363310614105456798764755251984455870738290175868342218244565913518215896740329041094292956396058883803705304334591353764582128900779283340377408489792741532443720055809173950529242083850752684355832549795772818180718516025404422728353388314070455392899949038688950074772408198710615247685693258739560216117681400643119390373461932968705014214420108799075762239484878351011755338148342713029187266521693010058113856354524618096608405483343859127846107364362966954675020473658280323446342188478849514852009488887116633140291709775730111484599050840712104063081623830729948373144830486762860039660614858909322064597158366757194479094120934598498579171583845722518874707285117483796855062455811621071460313843270762105309953100957588650120374637893590137202543818176971719426503083147499408907029622202781336409847899918561184182106160366639930860878555448182956566558869559378492630267823074027792431622887668309882560652250387210410723981564319215158291980416354659250296074226133524110749169037417367934727404256390925612726184436959828089678778627847530474764831067378564465058285228445213822633791865998802572306864853363331587575066363098673054979204973534142093986620194702547473178943522025394705423635212719730599069634010424323107472691497288688168269871041954337452801854278501351965007837440385372790491797640094113946032086251954335356773988227873384414897280654774219241180444533176148958649380799556518716948689545508673983772352621048735225322221550685027442540296858633003011528148583346178090736210699479181992071170200306524724463613806752408656141575092042433227129964382553069417025975129018295181056873372925784076116845919841036745902928483892115282868771672126357505346793851894802183933444662832874056336918220356968456976813187037919285116461630417928576681685791483460911944142629809171476746052372731370465483751337134740208463534888363049478219215625052859250378505385374558255931624128047822845897525597238384721143940226156102849137422721959402050081567046619462867726642755036198195459911954358560690740648876104905913427273663535853573549421454261968434486437794241294909670292287461826710239728454484260608337901184057739708460917491931049181329948117229094032935883830725803031404134251535908082001398217380586607232287299458140713135865991776143486437850576713561875376550471798296986621990269388891560649156622042017858014358446881909055524847286117553767851601230870019208634442687718652168363176265789071014383348571792000345746530768442634505112854683299193241907664550610940447062460053481992282210659997765488970037454051584130099315664723513079955096770081398031272732479397287421098541241652565557398991755299521612781006750885275397206063631387847925095218595852026458131993298499010165131976343892391589673013556953113360312560792986538732795675849624724785934723182612787214537597752742337195663715518707983843142587146612578816355721661231847417941456836671450124944446509903241552881325907286471489309477294607657785732804825392189496067796047753400452457302886284418820841363749482359962248420052164167178915128225355253993124469084078947215280727114534518557089218054157064882895435770120367413623605312013400005912634339091125333072104354017265571752951242937887729986546186978437174083126315439371538950613525531895749942683952857167854781895962618227009444422923755553723240345948196965216300548168978384964903097484254307391133984765247605719008170984306242355035357282565085623366260131063241305838804362820204034537569013001377086772000300343214474811490545955594991807015318291719112129205461781599950358452535226756209892749645229461058589121214138117058726330350203130231647252805232774534868901982638018346184499736777647974224461192183212489351709400326583211845863695204430677467102806474993311046916639662671170493870835196308168720697604923236151461580156910852281454996376867569307088970515541079315103508974883288306654051203205318704733685483043900317231125483191785429482517929531140929450173131325453874045355718625288626996131330211644178177737614608576078012637414617904517479995801440810627816079007361586928060957088337644381242122316171234564296076409616449821558295397431097401655909549311334586065065533504180649516882415658675212110688081222189801873357743210578449515349341767415658788109259404991699275685543465363118789404942783740909040739877337488090253997165330882740573204164250500952480146188000268677043170583892830286253537216272819217221337907985107797572077358738374210035479781385201146970109881590468012489055584824244548201822899214688390702551493249370146070905541676545970835934242112396846143014628412707528436695506197258599130526889015021158614144306032008329423101275456769373090500282187752065613422929763985617711331936703102581341478492479204069672215922357207925680695890104787145517647614769007066970428151337465754310313029345413764193254182794374268559482366261913702896634009055955178698540435911360553686022321790393230755399379228685043639040918851376906389404728545020625231489160496915404078369697568573104347662008005953597603247490172893056212054998866963108620840029330222922124322216488335632710868581495671276191125577236201919988866308566606695764956408415686857723379662524306376996503944208000483449882856787475379089691903439924247168415524401500805225750389464563321981046620953928436118520086922234386849289768578132418525725914866310448975424172372102775750946397786974604742667998086284657565638178601829219619208994367664563638057405912193983733675628028769719420080238311417160972253266677627699215771745951612007817232596700140310461721375585218028947860843581645396451911619318095431499363401496605515735050626635763721508319264928273312840819667224335408799063111171326744441696053281278783391635792770218232729387067691420903977154361417352070749215518995430743146926740385089278012611897295975747156535970398806219355862543200038030792352452729624004036289953820432527960184103393267967576509722479878411053627550897295218103210202856978162425872798677754832197359557858870179318306839881232786732896534238435090964788198090725883948707932033031008573193680625932731859124850876712644101831046270880400111424595501811238320068176332114769451903811310416718531985954745071014734800223377216934552478143690005063882289605683331220550402397891547064120294556159652113482784995402721650704984993427024669034715843117810346374121107724263707006613478611603182957882696111364931107138607786710273248329177041126498618715615376334083046446462358759230776510294995808102369606923436615577907397438275771020938619185229005403973641251821529428522119233968222653306600887630220992513407537342394346797993529002979702176610623037004123524879260457940684791174997431190794704552967481546279809378775553558764089474195537579051338043199962863705987629627990660419465760417266706774334972284988165813739168334532863870628240511333551028616536080334446371102689410882283467821089533895297168446734172087410506533277883086546926483455713473163197569566389490583029060105201770983176343605275253041535420106470469486708640916384420119288925831269825273166376706723157144785056966312769024313891718808220181016466836957477805456473816001245154994001419463440917655002031036846089314076904861245324946464574456548314910208053978686669836954097871518906891810094853123698406474243037986368630676262768694742612542783203204110541160004640198085340659695927240273595174228668284253458366531341871559926632251166159530764021621334125585764103358014365623796289900790676102842511413690429231492641921651673550230144441823724852316517405259259033427690273715094154097081878236136816278356440378848846320384911790266784413237488787012570219687123676608243655476310739251791355822694835228735328865023783445841182816149588883634648303401088839892831072709511378547874393576997386533882139708688162106851785738606528398583227794696466685215697758257473493357056312605120671447651958580518169549181909769175978700370840960369831903224741777591520208774327500191602457435162226869493595931483512619726591043891702773147212785022624061679539998079737496704418965099672121787201096096222286219854868389024215293933274579687631695703295176062946497366660613323140934312595550436912599153176476827377424172193027754790394025561059489072922944315409783012499901709789840645589061907235645947190823260926586460150230652123284949593738655557809352614844648277382294268209100828813984188857374897647303768019708045554720868171966695013417221821858132864453194393346047026735948173926799899298707002763006419043974443175274661739295454501035913974960492853789192315414285240304066636425474338996340198896103757803562733938367523522088380052639605257506493969308879034435784888639172148779578387339134686352944128798437968403608211658872939130265366441749376632435325658258949212295589777218497060548480855822046856191146949570251170245708426784848057135947117841322082293904979374355498332436384138885464272133983168970556773654421952422654473859184370954701349856702178807485080902769369109184168126558706149495687566155389615747698293224730259350029029839784596390097203401759026649998122277687161967405398411687626256177969802837960739495819482638527147300166744662629718855347068299899640576880697921557807870352433069694135780772640955331092028279708916886354641612712583899894126858937316053801420381918197269746401573865019044897502428334699289634551430481781031551407529604214800221693773324322973230651953803532223451797136360915701573657285426425046865673597092917992755718041434326985571453964121492052004092858177614135015612700968710992621706126125458018091216327603815255571679185090824673440660622310095039863628187066007624618938315525672501513203485156450170674448976621500495106869430689966298856407323391783317585089568391257979275815636823024992081939551982463922794935938653612904213001101607142395062379997921136461719735145429522978253719547611494966192710648180079260031840196145155563643739649029506014793117323944926113979038050705947689410976251294710434356019436630962982578799424302699479326758113728348248843035735365424133474609808518688859044343466610373439000321455876436452261860285652650821905732214246245506755239533017461762231104598501501078839401506374882647164895145273005199506542978463630829978167342058841435831162064169970596779762290395857568090652205727773067947243369724413932010508378026169114776585217642734465768990530267785292408214169495879911570805397574171979142124514536051958549858642320260215652890427923452117599814503191811290410526389574428045630492735560792168809176398175150245638340925485577531125219349274684292858005978506414670246316745764228948722466250094932937064294259348288295493844418096769940473303765238163629747795347356166993471855356607407610588140912334251839008154114084207308420720517156996855981570510857141127165433085030149129284792770959833617931224693566428846458483585155540646555555548863698644381011331177638677086498279992707952388532621030867135035789078469427029398924510987407081904167155418876338634747419954090234949660079397347498565182630409239859670813680465753692810517090509359915570856583299043278723290998266715959494147701958045780265305521267576393382857261390399551519182263380388669385045028864900270274820609782129002990020912402088183895960050136847933928932621149760737937087743545905856612594316793337028528631310043374375848198859047676227148488246371428270587344141655853026422719534517570099207340342474241365795122204738990004116417996248250848240072671676184944535591723673669061002371876963647676563638035730579075161327056245232357864393850684218340001358822664608701898640387393551941315405855126750469328759578087919876148748235578556630080923539548992172867714465734636114838698123760451482612819343887168913029174940752524769396434653970704335075472363500052516743556751649200669179488376641498466020247637974061961900424717900655485456526889913007511361866786639362300561494177572435686094960226602497432963979398194534990506464275082134888411517440069262879332439584941012685568074049738545571344797299426679145599594981824806170595589823117446562312243139090215533156414337015824180611249630581870806578151162116158461432171582076012691468266497148396576970262777397788165923143018680932006885607434616436527372401537965865115626589780809681337232660189608117385020940620475835608392336210672438891856600894953705561000699478827322784079786842144590568664101637538180299337486551178637895493509701080029934605385090334474497591547560065087926014286139430190742451138984519865814145014379495420764816016778103598997790695815833922377127745727534486370776074503365747172515191657684327960668517350539190821282369555031064101951221857485094157156792647191940526922725482681878577588122234112526630623436774385960399921096982901210259206602426798114852684406111980092108700611186280065873730557486419288655933390105449780317917686558154924286767896199156423410442667751323426943692388599302949412228985600762928241262415383723944611396632575736268820433915043579749101999673203403114477335867961777700064070810793233437660039379014927985407308072273406901487149343898412513442316374319121553556168066020920558116175387339414880570672722355834643417497519645000186553210355089111571523336127587240021090970553947583032571956379978250131046485212425475854161640334750751752936947121653231264278947655700881747984499540758641915117067900793226118223709871963550048949158587012221304010058857208882295775153413697227659338053140133577708084234560411218390035450899969501571022036854305172972803930378780566062995043534646310421390417861467171185889127998377633909704793835900844272405426174582698110894293467607592371999901817299833212155637537288787552083883333193437985148545441396580155044744376801818042316310144297968117454051231284770277714510812535442489086793504584722892072848747135161239748755236649209472492492016336395398182900299642502628783739192377881683692166745990526934231919000683538413511420589823855286632687898778036605060499898883376267343667801110873581761660871281725536705418944761387575314763907171675994422639274716089632918877348506671464662799611214199589724623757681266076265210183443436381159956510957699982388234698754873742520486665380375084955012421755764622928885245995886722729669600488425109946692449357301739811515311260448602501527721130708799884931859180650924067004286829338315550981673597063075140596621985063826613639721304660665196094676563568346662529596548282630100697038355043041000731129179479389436558711515498203124416150751481526621448275113235938920872528491739089941774252889033130277212786219187399260871133125201637480946631707291858304903834025299995911963870096537341723849577529283897360017160078784673060249067697799954254156548998808886687876824093195944347121990570361201937428506189781489461453168579790890487955440242431262670338882547822881993894476685826677287433250575254084710599734953441740675731223822491963584723541471430333580767238980219558777986845365855724663257685068241003232923982512327714956097481146860187866271015125562853878467634409105488902127715506994945450001375975097047541408705094185761492764206913925450373878462578561979821043357984888071652346589037114172550045783517813719125459896606260892660297061535918096403630322621656543855918382679933981171203086406228815449590787739276807478535781566706679383826970449878035547788106100749882969444023174632986146570899417231065018574928067502617005969385928120004103297085754127621674320310624494056864365520969973383213285807156496685961106971791135861148936866263884171277738096148752307268842186675053426466338934680133227865509291933810936112245729667832827133323300088513742269539054782671749025648716885856286259328947854298119143189721889158696745375918416201138658212333391748245688511214995667895486197235239807727601206234174454796483208147270854738165435353370943862887275483214382669925369378702209875817354252201726800932265457441791898453183659796221556072700147972504035581071163536981386256423439939642647749804471467371610121415087582259076034891657683448670011766052083991630909507078137557385270016230279982021473265984118762009837220344658605000387951356284424857963267805966500837372931609376264152102449075285985493584818298074052445374781311692760782916881770316442338885658272320810027580640147128698633741547916117891040076290969369514761159261748213433279139933925798658732815988669823607229140283910663933599615896026242268524235198557689270033854415083593116109687216222359061565207615495947988753971654459483703150164539430269867648012636003633868415587037058669373685429555746587028635509565319838289286874592169986192713435179201777675642474340625718738077072474804654467155142131180974141603640224263284173195237995121673667946648419548162510261709339851335746336321714076505093425590412423876359434161984722242071461386964472137146024168408594581163970890154977310022339941429105882414419684750042761065807530275655956123189246553777899375677191065801874837555810258947062815730857624951417756044496346336230492056641208264784999511196849615648879105152592938021363209765902971003010949560108010104285066130708506574194994399851520560661354075316936383423171160308681630306522871120860607023917248009098581775170562087072239732996927789227586622784389081484647211981184431390624345497667141269458346080245057048099615774602652744484422827355725273966962560122344841701678392963476779514664556505079076083510421656846595895121415416917838552572968244016379296482800351694688396692366663931697429647836778405714141082396173965976968152642717112656317248610331073836940764354161875656993422492641788526348132812412660130064190669978977025688336500727791347928630485725666458046723915251422446049565358115040485711119728181383744027187757831749829844825650301793927927321951147853226204374501102865855153008443248130066888977699328602861544695722767178351840288584619068398853268256317083538271671571608406768858269202811592029044911771841935387337172429687147166358519290541270632210018086519208416843454736006615977800258079350417201170207058560426885484811444466641660093720085570415319504096115310687532822258040881128992804559550253834776829918325822942388162430363750397322166111802729329224837798000772434041006641422792605817253100021884551955502631217252420591155447558671649121697568019828701597710156611764424085853206896344909989541120230474645528256755055852856773095337406706326919024450486854868846757408257548822754795745743604560588494368001518001992908144654094723788933132576319111396316446271991256434164272644992631627621435239682491610991278844507712691327363620958231379883916235231417537267849240245989758121465513730980134832240859188300265268510275677813214831007075249245231653330623403557078888878538190128749326023357893846777640606556960598890282962411650402492370220539586421302067380208390802203068116966986358056079923033886607479399765660550605955431050741141103659346787384816185579059316134652682021456101835107337134899432831809743527086197620680757260465226466005945723022869461908683245333959929331905622035545406160972691803062860632449489006912352477161510147450874011409426347592454662048628200129460362212890278396928942264041716007551843757594237877427978283792465339256501779432724317911577450733031931977640035326343946531853711569263366730117755743771135745528193552200895128126197716876874440839192780192158529780218068910212086387497538930001108768885990244293949374949664621675283673508138924402331008277214289709887329233613252630124520169511463486435678341201391517994153498606162032792519998931551877545410663116590180790579564501870541238985185837378780639229865313175869274966218224741765687808735296617299524776902463197885396423431760012075675223851139402758975098991873665416138980239701695691396065487324256591617132824162269779552029421939386251435618707505602757243669319733722628776993069442298724954212576134557854703461443629526746844017392836881088670599679323331959239763873524819807094774423941723827728080180597864669639201266035065403473454552946339677387171536897795695643344629014555254390076508635939197684925034454322465044888260848230257199281640947159079220148285023786358456167471190481669575111461721858903223760883212459821131822259771906708899334521943898660618823647932184528094655989687337187589627959140542840421882046648738134656913500402681729489354731703951410315776996399316939869572536549667300068066756094743742037794517327173656327123418700301391613788799453201810536795860921605468315738834110215219190903440534698738526131539911850664732803601890218109520600209194346498607122060975897995582643759508840497537358622315758515253004016618774338307841225175565641002129847109879954022261346458493389919748877871125901895604490968245379028890576982841314822548079884617223511276712875693855388888051883344772165390656022541449106335223497728096761040748459999381640396469844987364206319548746203389251550346582723659977554819224946235376612832486265393750496837511328943334278329201211727754360593994175459247706350299282787663026212393551795423763730226194081702119802807519861887588947363783018645089178557248749598580738039545115406907036585945408809443957659792845026060593205171451826372491183785693840781230604578818752676296086584995062571859254623098034713801375473846843527980246277843679683443182458406049158138739597336016842063670237911950089396692472961394290912602806382453014709034941835759917667103020722614480318384052001971581994985226331238794447741331917695652681768071068356202668861359216458245831524507313790887601563523236275640164351757382890630065787179178232194225299076034812753960008566395655615825416008711833278407189581274982735152931419859067994222065020708284429841447289651587276747724162180988969171729587672278485904418497702468230273365735516208571296047107263981495319301427253035304594279007672183832894185660583291246189228724180082815924396608306766821173071265292652417936035495071737130629440973559753463822636201886307105775064461503282883924188956380128081348819460501501197767595278606258492929019582451279916557772152455618165233008770468581209592532828110490328039952221855561325692706603228997082917800699038898917246896818809396345665477210074475587882408290085265553330456388859345781088257536887990080333387153954974111955353835221303800982866906915291638254604663683324390561116569932977641364972850031559100453331628349420942775005557781288635778071500274501773833467596846537593738947694846348096438212224916430196923449737922302204692410643415550375123785458754029067530828718930883777731965081197393453849642802712347360205984698522362267650810144324482594436174655558658908850899231005465726118581789410991043458650393809761656041831332708384270470480747038720112295964803770695907748041349501985292988906885684300292533851902229684108294082159806153101518626017254655584218584927487117606426285831687667639880636441024102074779983611089483513826609505501848939008214700569190629467930572712052786638437483351025321870002572775005544202417929161632279937176674112479872486476419900455927821952055948302186325972783517225432335493883298366100144724173492360427383364733624975561778682221126996214679237665853914006812325377771971272215150573268600328154052850879412005423863792003783152808173963826315764336372322628989321842574727757270069819595501526982388433216626699355671055200883173786732149212205476269297591440018181893003563739252804771735407997733280746726797208853823530982256926469947602900250274683105384698761956851289280433067912076577671007521080145043258452875621308452916538399161288307950077427737951200189493461699238329082826440498802476544652518047180607218193562082675460373732631578134915747667808420051142202079551729102148266471991444333329110087207058448221926502696539653531174277769998813077860993065136474561105117844776061834794259948338280472689578963568000813022108874160231233971841651429703986095016868865291629738466014073027517117474004279318762809435221588019467986015406187716432455193601161532305128401085064459604658637485047512509567444404148014691008118497863144211293599828696132216545517835561141914188190274055583262707339738935185331181746518644746419357823345575899789493545181591463476878385523001562230008768761437429891545393740671477929086672086370199616093798110764083070994018231867389093125112862982678349155048177260984603982584218642881003592815295129986639626667485454345996023298507815548542361260410435830610410503618065635093715074297593764632589125298110045555067915138445607800749878095246097834060827234130350546696940637553101916538763699481065182665704829606832286102111955014603565130068421107120297021917826293894767019705676946502877186280575140639477932726035161120814763612438181595737714238166119422378143554664679834192989199277345457968882089811005796025777758512420981265594780816925866772995556827732331846577301676831369374979061200899671522080775318128953517547588755056543331717903549766066165266583987832452312799260649557129541893262328321085837842282715623679366797530748129630087070402330141417227672677282422597102654462227214197888710737035583296787442506856645803568341013074360110216455223994732939077035779366957648613811112353928080544926958919745957161344788406905708068727192568632520218833150380528875673231919913360883833763839399048172363574780011148697405052279837509215541612643739502580121334795534109855455339100263541307436126963530110083858460252006544491003894939923303203898850922173647606334273829057913207113546651099143575760432276851445106791601349829110452899434258933296322091555373756614646267658904894882808629496739024790509744435436988771154170798144992607734709119634415295144845487419557789042505650991136950576266262697970921954554720262714920793185945319095222661129635729869378451045083417339588536491538594350622336708491978035377398773823639396229789442601660648450701052533979304552108073894452916013306087597498991137198494159690837595310237622902819601895184558532333314028595035625732111180351898262247759511114333142066196965123286934880922030069047113387477648093375263816461153075198133405832342138097803568569094670684723603097170460655248645989680220915365274271884925427145353988616858096844224484394267612821669136972001889202400801990232042379434867799321013281841175349046785329995503026944477335310416708869360003031460882073371317353181445441163149203039965388655140356598855038321097707949356057750453680895470331069451712997696782289420305907438511202310701437460700848618407147252960255931332179283736375461771378421491041214249466427952474834326291785256466745158207911332030277932343018966357875021937946630005067780706214375619987303399710100839957010792142593564816352580746572070119029288916553784645431500907180264747611027958774112675056607760453943344601973798350954778268464078613797067626960014744113171000011308117640007859596282077283865599730505244563503662467011288571099718204451404882422452428975318386072483856933423844191897904082263700290309675519051406180509434411962019447732199085451688076548560284291025632022996344698503064833970072775753809193232176625252121021141834666530560224087276955769730638752087609150543630216072061366146732918148663359758862249458007335540556745847707078335729064483692157634562981823612800582412145296885253338077335842435051812780830991965553848162414834232368163917394253688631216653637571970354391463916955851709175137134664958599832302158881506429234783954218234698776421879833156770439056647263673974065489204917647533624933517171537655781837626497813159016938191672873516513323921463514578499925238225658339980563149947487572823566793530055870712057459136780856380899638211488982709136532527535631763306656623734328836915766158131780464264708608278225377632781678372296712105820356015468632821064382300900764048935702258761810199479913141435075726768989686940349277885277392332169626336539439609978424042404240679397310688160330091684518439100061227170408978416192688248349457364370529132428008816847980286461197774559794947913481208647787857180294217888690205600218144017742646988892614637062830123797607061190134890921689649425487665893198076605963765645918356719608482583255898593187450462437240063670930160120173783123724493315379674490749567727180575199832319282276575239042428505993853666149997349433424689223878716243859739478555264731765023027844295588170783505721156572164032303473815005580209511215196769161693057392259963098544915834629585632949318657363725974872931082346089610974440461327159188818222325748524713346556001221983606689754994378817551257230177212775858139438679663869240916737626100989101364470678423618499527744296295166525185269595119347427894231683894807520461022857256813879956461019894779348626172311544490489104654301070428896106147807239929570800798246233394348368720938561569691976879965443764702224991264257244569510069225130380934560888473973580631871779405007536201708220819303409112834585419098604821329058464540179394506343483910411216552694282052566662108208992162653804170850706637392006451704785747407073160914120838446805002733357222556406576464085555337363120491234229616509623668103652100757931764900173400055707457791976385700550456306157581778044111318402521396697385082333337405203430068805555789126654709632443822881915072206386923369790944103535332129218308821836125744176638141386942483236002363596466217443226099450252570100785360897717766462933249843924104210693630072101963314191768997322762776350746321597770803159546813795050554409978687334029870993457364186962846780912399830808853793636828318173301427165267462965242401332271496196192405355953008626967317738317426393594566306764706194613670475411347058328709334333129752612281035482359129374229156862426425017542099990493355042287185382561597737645278317646718229460273315470253079728231216994492739697715822939140216607983224747643564255174468337988392884685233588280280074663657386886595883525158417485790599131235548513890690213227447574912579523751356487943634762397090885291594534073180870137926604355655454705697423050733867733340664919093496208006923730416892472252940127076430737013843162999361514351706471413063255453248600437312104003989550741610086165020783720535306350143756500537485243655547427807717458171749993350622303683475346585282505220613608135830465109619547795826995122089121547553542781654048212288060317449517665652351002016815786423958196955598508366584625036753682975172365773132972485824203903698642141887754652585297526762302843770106618864387079196032136449441872419137663978517377256330678342811725313436542255470271410036768023198184613082943578855748686346746491998596183240544559192939942510071102843753713457964829961405056895044822025671788035758063812891287689488607437293168433867994475498428091576261508716060332803703164033270339227707286418806376202422003201207475522199907135050371867363825182258680901020546954772402777017310701284145470981859605728177676510292380005980546604150739980561895022031569439616594484323874289524579050980524969711263711822694396129779898423003955708870981049526273996808397261791697507008105805496202381479123493140917707654218317347950950202885041655382203009761575281302092605340506143440549187841486009199031506380651890676241754645275517117749477635052808291975010432733534684721349546795367537689615871218660486482803992902387847903341674016266012287243680288688209021110228891450861882327345170466841747650103943295535464085561916382476628127073481919421767501784730104426193734938265090886481454982112163404115914502327625647988871093827155377482316524998005375724658304221459873626008114144726628922905661517704175244057671971641745189220656588618786416723484763908497291060933606694166314251335174135627399897471394174607179119329570636041199626031728575581113788913401803872586103825126803493576912954252762409736635602075497487780079293836203082983060801400706015449793224797481089729010999596121180784472703998868469848998492975099413259880479638738137419537089782451338625407730003303801596724103422802157061644716329075721425765271725126541062336864671747259481831229832582923328158951944370876444930252103682277122429905651102298517451272619244932318232968817409155596331722945715797426803501421358139633683515387375030348594549192962612329818534503875391356306967872171502131540530823146464861162699543237558492758027198386337269998226716162144982323797815560685265233400556694142712400608557866547361253825952053324858588609991757642654349313817589280595262959526752455637627481143611759812429894864272373950294094419417312817511910931420380404747919326711127981968539932735280270065110163258040843242872060034118265498343314129905593205040867211652997537933040236922254550754544167420336795246552783708789446297480703318120448490827957954373374156045373740302216801447293851538835637414846414053335190899001034887898883398259891256611577536836993408753940639618241017871034369080763756852975032650736277509368904412335316251620621796714104872169218142390402548509418795373832680826930655171072956881661098455906828356076001917038346613093433678767142499450548608649320786131816499580524984693644459394656082269309622195937765309128752504070592191192908566620571127840643224243766075389887086713964768586799511412144305420329292462496106683829536605513925946518950668707194234001846495678080061906907086829149674837069492291743407438616796489926303842680873304374065173610247207693279046946691533627004861906398034940318632557738764171217405612991128978504128526619319148315775379329111779303264263713444365113108091284640378623183067867618751342513112103992878046263014128382758345179974877472648216746055293582388540062639621772174458450813555888672660323759811789366020261271065418797158543097369306153249953806223586319091787507351366175211233735602778797757405365156570017077635782860729626564376036328348366070624937182441184575706893960710768235961675222981419922889584184169406285145269102521741783374352565656394900332234700693663511784171197317731350738642837979189776819266949902268475040786366176470260870820033492233145256071449347338720438104422531886959791623014293730981845505187115678774398384648126338412885728069667805509619601114300492398896442995698581052382400078122189047963608560789115127329592963242086770585283583190474343651790462887166293399833485227705484753362965864621179987573012500850732783916198537204881899091916076492378686626622510814937034157580745585602056730496824429045640592264292331563820030232160899825640597918577487588471048016344038150221642188241719934701601897321397410574477012508166874289645164962190768446818663483595905775003343941793832818853657606035195621463796877739424421931744437293709945649990659843099572623460487649778564471091863204709413248843979135062406715817166665434664788232666270043871521240678319046806482581141592411381312315322122888625617328410351169077965383504055212950775634853769335943748755135470136842376609775302538368149743085489639399719692095835411481924098988420916306441847996441526173781431997141060185147615588366177911084396910328285235287789043455309347432992692630280746252351176065702629758449790396642586901674470681433935935481764123132451934682872757548913842709177271751668926801716602560687130213541936038348344182484066657109296368862740858775376820303761116032396578787810118939340589889572207551436748364024109276922471511189878870211739041985936462637459864026952404040198038480641583564561930836466955409206858069529129054975705349511627945842021632744407725057907632670883083603327671414599880245746900498865799933739941955033904254434373762896434615764670605738313364343467120137336860110009797547621158281957732952220657332863263084146570206138744952729590537818731569984590297443835425876830286536799429649662080008288953905776884324343092289273446210490411194570595729698221863935980782416742810986548913883140691032555793816666161653356607182973442241175691812397278174350684108056592327145546466138751934004674207136481550377776361046220425748296751731495152755741740475467204012578890654512632952998779008638259346304732216658053496110542766391407608166122513777440792408521147539811866624311842337890656859155394557614774943779996492413752622972061850365622872611039988683148060042363561003044289260145932530193839268097663364095521273971097231522722398881242697007553503989890461548347789977019367755726450275993613389037876640754067480438632857232258366197223617050539144170724878000111804560554488350775126097182318459347773399522735704768463338883182476363051495740756039707063347112637621914326058404831931520665525062917079167892440051831901929011694213229005150670253643329251150659678514665100475365641287918394456405819309730615350246730877102881772178528263723544754997854912741396930083192020861663801446627667845464076214412766612117407356934939778076909800482739805253999929293413065167420448022825189978577770662174575118069926807946407025609234959471150312070294299036176354616862519585689137439775383240300399187483983552014226916504475782958167568785176683467045838860807829188655736442141741873166885646240751981080688467535323807664161099422141987649852071446698238314357504774302030220452360337733177924971905171655271162613720098179896014007798522621981266244758259110458327528123564759845718811165513445432973546030869177657691427314698513846333426663667481903732786120757437086517630069890517845972955394036700786466794909488481835049154212401373879238015697156870740694119136819000347754158462166325060610402515676471779518271682396368005420711153799351955574898604275697889673514425623686861801547105095990239390853867434495842292411597419808529759236968917394108482167691757824368216776447242059404365737964039630457078867884907392069053764681774807694184619440656548070111354824991230651194505141020111098401572983816434310599185676260903523893108532660019428912591181914009994872450239415431265157839022223955008182355086489824586775405997852376153708749497565953312323223289945163922085751508513207500581999542044448080567149514191494635375496319142051801901754419977598618291075918472808041858787333484009754394053896319374804309864238442902465963486977459922289495735987699502604551911935306118729587242541410874356375863493939548217487911794693049809677573798949888137796451230105767142821469073945284270651248732334194614511122048991902127905932170584420572800561132493831729086178981234295626504303695592147783365741520597486372681681046394235826738478898184414901339323210554299223184153657127468408300096344458799963851114842641520977808561109758544833824791924421324834515904468832823060159384411161312140026785868283069768954234115809175280529073037818545322119938162245622276883862492576335935102665208348429112974155536688398905002913771497429926159548455155908979744499422230238906330125465804345200429389683428386568310045441041821500884734989704453284121196343042993406657017407519421989665767278501238484807930356815713280261148566205895031583211289157602037155299596224739421607005374452059138154968477781834596433000917587234339817122981446571951824386818300244549927255910020241797269101030266054395862816214223033636742466687006646000002083816664750385980272939354231249790796737185095738583422377699315927549385865002608804325051453396860024003973747406324907774618631503433995507716934177684649563321792477994164046091257140188704741315354189286259431967882509705145660268593045004475628901269478350722477804549732058569910151481802457133700680695356525956233103415845675445596981537233736496511913042055941094265441579547613735333164027198537076462052241382480389338410709067151720016088354821933925050776787415970145842317753883732337620384240816937886304364823506066877716182497454129658256338220174510893639990847126634363324788937116542198573922031116454126603189027074378626325522031519221815959777498331161109478423814587344668905683514912941934168831934506810469097104470333383082114946046323601896539973438411174017604452352471643219765703660564883644887098987963690067889476992572393813082254833075801342246944985882523370526984581138360618050494270885571142174426934111236271400221507134398964935829389776001223155999203149229767977234062579511456172474624366209574572997533537927206667429374513979399878473990390179963627516261367270522387044635703615634380091818155439775956920358339596557066637110285642115452364540905566252645998713423348652104577033210136632355261719558382139068894959806147649311807885833900204434143326483629938285620830187967523458569793602114496050691876591322237013395802010148933957460743927117770487987924549948975719365900002513169472662922799931359406147778603883420534291511566318666741510874023250663402336315068274811666427520044343139914216016247840632147997867620773862477188360527075919740068633278556643758580516599717147200681128689967037554264704731157364145352957405062877379924458550874014238654522912390392554356118308417403150334189756626317559951096099643124510199569264155427628111073962509534467651240711748694535110063005047368380572071794700709909121351671953607910946913105408712352502078207823251262674773293006720835402013066307946853499200709162866198039609340535675944291018612755746995753970484849398563942634245254858605354240503057120870398570305108584294885073922825383861841314313691104792855398260311321695397269552691719280525741574182188809712289689259100387395858077269478095511998360112459777207637000264615924716687599711593465789732109223596815956081699414664304494209459674981858851410372859552100725292252165686659482813291174361557259627505792051863151083560709173705848662222236776165890433776599488115304733875387824440346963164038369820708027465309312570580772106814978504041079737533933671127547714740451310160704611718985947265939295253680551588847315543483371982075912941042361874235346218443449217629535295987933651792290686147812423064599865262116939202132944890309757894868730282406256383546742215656535417790905222022337577180201800651888069147524534791559241786165158489714532243943033232911868204525241121677256785884328099901313621985728927393235741193721070220930051349274359962772112873138404638375099873216799166690713209768143863384712880107239836340208430752816926846302821456435552787902774689644119706684539575511666229885734982677726880188364222169800379590071925883952760210264339926985192236358222492582742720491388509470549579996607551095619007860304259353641079072136346552556221005924677792907268351211365194759711468389122477034405079034440628142444862731157594338920086728310795081336871152666578906917917725071385060341717412081855160126978766040022412218974360570170211629029141545156561871503640009145324957872322971359513681259846821134973015326311061924627964814727406568299839455475523703834170050667577025180508815508308177890418806544998724505510463404965363053817996299136971826576799251338979237216569098836237256488471883004984023860576598719581179943648899049871105071451262283342814593032447758019597837742768216382336657810603343804927243268542840912694982882773601254027945243242763254402773203847753496467455357149907166992792072886547839242272809844247621290132930898957196269342035930612380411415086676519396314809519386462709320065233621981791483041793902978269473994344724144954155602219200726263808414928005982629605906043641100095515368129470442533355725327862127262762199402355859433217829846801497311213308585627810307631384854759324692384896492445044085565959414384057506328566247989612259455618547038483896524654921567607954270710461264514555198206988788916871119940403733973805354917919961315624805593528813179056922210073943752678171044400200667631110887055817883739307052244038348667271202800691160695398081099277820806335874021167887400894630900271318505599826431576920516158180942009025980114894383058797980409595022964382547663547563532641493088843886825943814126534151786419904408522578770778663972739597869350450504429395327122595955728756223095702849508114132153694722485679297681564169490223599911988113512234157557339458333671877153027281574644539735273804283952908314473559500173595289101972509236754962332533805531800902212968661794357933328038581551079315203919290603233634368108698419703350514129372672344160783193199292812475666717468229280528565435745033614453327867646450973117725990204773229233220248069742490884873691370016500785593324210275707944611741242418993752703512506532913103559860408289545053183611086009176099476019347900463416845670945061606838397999342553147178276677168590241459909077205364703556697209552069560563859965154330375090500668740552593085106991134821537213506687886474140226745374054570915558628306753763414788791577831537712839211054174165656221998170992213469927875203038428079540946674947075171395533066561067487968139467259868028426950843128375407516482685577229580340832639737019429161673472267047036927274975113061554505410252071325918952681276970338010744787530181072480659132753933395672690741984939518015339568892514518248656254693175166727585129956147007215977058043481898107127788244317794334795414453110694639512607203541162348822461741967829961637815796416875037780138489093764068951685672660318408617448962039863462272904020669060811574673884707189611200722866755991643590997246061912709963842110659677614411453258342464491888487066719387079901834205426047585172115552870919758993787832683669018154795832330041731424984072968571032680788336657475096152133517356748469146513866808837440319171120766806106873149946561316668733366214442418129636611906585650936776623126192706295995128149270698386754342320682640974235851478344007144059615007192337685306093703756600485600884429424669118574047530541606032520647301688763865409110786988613031411035608027014107665473575596400848858344110576802482141336674469537029701207674002666797672877180960421697306011920424776855720703473200572158344450899225080038392394710396435619995621993283596726727424700962423766621409794190424959863417639607147544292475029545660442263630870762455658164066790183632219444494407107491188784523634371379485012178348996416678970014266014530328101564363759383305101231741225038534461076665144613027107803759082678837082482802394518023909601829201097656169007906412021246302796592621360059749764700832208362912982412427614606635585588338031611366862794256149909198832204244881216086459441708107284026645515855656355912939940669466789774199073850421349337808635518700565205892154900665171480775446961226037872589511857199583875246300121517731442160417901142022066835275658224248831398007570968574344807735934456836602557576457372318928489548881559966882490609152591144576013559713157953633288771861345485860952938413012322436926118011716329900031143236997840229369112745108467145243021177179599318683711899641708124782182250250825411597575635965947061192026809806840149063756630257666677382154828486449982567173082087848409874741877736753453913324008622987440363913034097958165028807560960122252471713912337106576925932871586361611682200269148556611163124164557831218234781072784048362196902932421508611438712501550015381967718311562702046725634643468836361314248545474997563581479324598222114546490284565268357108431383120675135726646049132876798516357989886431205394839120498084647379279413117198949587374222405792733034350562330321716954338841541128206161493061760560983527658077656031787136259972039920514762564020061910555646516247710338063993034885183779158165024465835073332268869793793503664587813773347731806051858309613341485082250893576096466593193116720837973313808609656140125626525140572354130615125568227124849902854422733668241782014805713204276296446639484129355563316420741619224088276043268123194485164762755350596920552380873507874948138741826949847092772353346723448166592771676059483439968901985997284671417914328774051944553108308634122333711262339875603036700354401829717519877168240400141782626584594316599070338851640921744234610194341777793052279155283070913243557522787583285683249262588322953498272329179966369562771206289082038715897329270766525972316632480896953890260810223725595783749047841375212057224582273161779514801459057356084305850676845524624937304026473073794742654101576746725653101922024889082824068586632834092518564768244484167060406969402242344405749875542539309708405451291089437826865266507566233915572647687084382422037035174414417393097086407868057475373190774849722995610948980481008299393647073068054711035334459127482738961032993200062602942631312285983142721089673105831279996973917438896925391424394578905380784915326300240722838495009352144560473730514936418012774715123448478719908290482178974640487073008577991224617954152416174056106390771860211486002799514710174871107027493256427147624437811499582354140087765336813144118207710943170102237508431061648290795346754002165698409676884183697162918743989829438053769773175743984906517668229506279140627627325755357268178340738203853902901610425762930679724434247300277997267820012222252729525839394309459845825422936639593206014648639804197355157653035153256192781711525192576545115617384706809236035377622364772917687862946258516220166128924461413579229455379122773837102922148689704616210554680999640740945275546401971044234217622825503829187172364825812139214877911183701229632407058623478268541868700588454018288966998321654614190682672902647175303819330286490798304425486490516968331238233022826926772552465901053467622594499392212781271089914480534701929926534947821493887954413053430072741673427921422581948854534816080367752791004917360349792456837800060673758708650272824732273781677556952166416635675844596591055469022399337419995794999988387556366504983286600249837067326748807403933697252011418062718140445605537099958975525752664426675508469149532205752417163306526896334003211600780947354754707104688047812473800232055883086414629733146255039144843099109699870096590342644431585956625412084100694937220253809949151788378494198259246176314790724010906685112940724243735821178799678683107086663628238746460192793502739388911544099531977365096423367376198085404840336014102509562391490967755367164369548595280857020740836367934231376441244815658875110260510401962986793157634890305723340385403986497852259124954595934586463930817523939322843383439262959593164616061305052973031535167172256006900723268985279977550433976814411825494650331975577028224601392696818219094831241402712503554318065297842465277214849379723989236150799535830555935051068594040538736649568527920966817230350996933203003207481473792830834415871241638344906564217918047819237076303337244786271340385731985340469164957926855170176904194441216135314591559440322236598617508871839078052559527227570079319131658917690693909302462674401714255600984036535602414930583839018378024440909395653808720203633769436202738661441236213740087314293578416701493207923320977549944967014242967138120479349690437199353983890846289678769407676067266942545559570468570564790729624523154923311951998867339667390603884109833749685235407685312311991672767838204023143957870060238984792603876506600516345745906253487623693389794754759114937102680577983183680158320003045956210812895374348193628847887858706638797722678133950645782703980810684229334523639174944221810233722026929494318125198399768973743578099163100284078824625281285913750146875450979429000286660216125321694345915418957472282651354555370350525184368568228251351853078419816087315819997401751652342923228152902640622145638959007326489148552850948199075100628495152553559192091082391856103154494650124732946150306767439485273717795298627347437024845547627998940365769088791339045028198716016528862137178392922725856836422708304375754055038926492054429387303411901077073209221167930804046538261518233599367424698896472591982187191631810128246070957001841136916281511307721499335161379892148808094436328973882452326371360030792193109329539169347728319866285709617762147796277063623932580941507320218860432370707658175819152665876693329800089130789231405690987340937441382702981156488092305133420482163130761136167684948248333646581323151505564025587425444090259201631818601850063681377490596567742354901813670183238980775630019774062201633120387060792381853295173195838963052923044384330837755230348556409782379369548799858943376031556318543799638264933560046485009887824719845169540470444971560964979013658952587804124908741084418131888272247576669158825837553609867571100698405362690613976838652766127744011205115923114169573702989261915193880441957803643513189736626191997463806359872348500777530988325880494945649045353398349351677808798166559809788613419856916221485923599096253150624462684317970834102250199337157872336818459772363988929144919751644371120579870050527339865167164546221817414682590657240916968636079261200873285956136360008487010733619427233130119259427818073899404857953202459311745802410462122230893638319076458604311603685732575126060735524258416609690876475493176631774855026982066277001561407389171915319001143859115437195592648251006734766317705613477262749728506601675526578722679990313957652346720521120022463785247808362378487536466838373132809882616705434457787919559781350019040076627575120590136175121863602928139925258937784287839183811010862835963793961654284201420613304881504923238037917365801034420435014006140610529956455530138280627251909293840279850110559531818218154238479102227076280475998899027116025433568526173551570170741768255535758047217411867213207857242162136452327367921560044024520768760677070133351267356993694278624209350155924607817966047146318079419066024682550691790722938850425429398862874641253022770995647420798804557374472287062998564710667688266715368909460636236503707114178371904699222328533099203848147813274509054241052192046475530522347144315712514663920807920607050180667971283258648967784609683598075621202062881503005426224101288904491430235239724812697047438769528281690022209530189460741744522100747249079240293118928095010440048723937360983494073125677299514921016106707863501907972360670803632478572319582487926736210495814965648697900303035056154680552334572622065156063839974388603191408862788105653487579000616109423229424043141601162714291198061815256526496181208839711855686791197862305901166516969307407281388453627927070513871290596749014127961779993447668432147459591679458199368150921094304126126736647667516930783599312176310234260294953462655579253796059620478536549956913714502650896718034379018982832070235733096614858926884122474676533991327208643370774669501567097998321747720752179740236261950573903952610489685228868102832680271067574829757375014356659943898712166795366407439088954580200819425059861979208795543039798817165122283663021395050792792007048759449482106318494078002896467198083061581350224154090822774335381369700682034463431528041932494410646819040137003765195680121020295754168411995961397047267316274441382815929927849399577408662064525350317628992472323315004864030571400894491242921754963863249851817569189884791958439443783402740915804733048120547201497328933682214827942129931816962239790430607380902064356804326208134882231712659738468386263235599913382408430086629774093687979618381721467457815001820543635415687982846040305898018901965122496176910826529561627524764454883020959643600660582997581723004936791473010220392527930581343304682366056564533364389284844050953047531704000450134307711331154067514211903517291459144654843326760289239203448197787517528333567941410910372881353960094567234525075764396826734579409002286833537400013714715033933877306238970367190461497306598083657090259438021531155767269921877620707022745441396920659676077589329122453760805887550178477864054644157266874545534484971287569566235896099623953018563245341017895514729811625712930864771130331752796136355374599243789692162162119819260749860054698308039496595539202671721635720009708809280754325354028293077653959905250428366706502829671914282656369492938571540427359902734522124702227185769245752620545074921204582385388680751809706595047811567568611181909630708528503886143413984420529691104839827733977589408478353151711568826106422191879939934323418931826055448966550754536091348945857073872182235202798824214899500255799627317150221907085574200473799050822218469724795210813091348644159391243046809852303778407161264884521837882192542999048585299294142690599915577744345459218212038970684313158052208342702594129038947707944552027342265430578434254790666628948280011620375710061196327357458774185775711876078423520710439349322345854463964025307926862532702493439105401413154068898543357972373431511635052020958727220885157101592103194971290005358409745495370020895431072217359805669597706544618122979114729396971749967044540758902701403083390389001058321738310472270397375178286018335757879955787523605186557339551722143202840349850573221758612008874990333043074051125153522633703233536297584967988992072640783334777089660416937016820483155908958144811931791469732875104958303370094909142882911351728658926666905448565794755017641498131610278237218140062080071191881337703547873554302741494373312166596566103472791487606000335853056894518815841351926148122613058247391712818616015476603316601723947298061234524111711175390874435782750014223514966789909999200898155864434529849003538726759721245577858053332856224623286424690223153859940473151742692993146394702337390002246672582262581993252817278888298509862489744586009082044455924856851134990700793992976256785228371726745823610723175044741412094595891839583282117219557086508284354217374769718309634894395081314488836738214844610901394155888579580983646084261387387517866613688870957223235913291627691302701074196694374316428089634785427255561362531945099092309872706557810931559833109795538972918412337086935424355251402221640639133531378938370936540370531242264367628970833400495161920889656046597497175688236011428513685168990331861474549222135063039512969152024178344986358870566834872844368828083755650885205314252366772389681620010437493672686792542841070814354547904150788401120538010692373356909604154902976759230727283315102731586426746789229603305303073837521690648141069744584853224275459414221230245606134943033008847015250098744729954727321061310575662397657524454402181953437140063039964641331352657659062150263468377976784907291512613988353657655127454607948839433127571374916386768535356202713020397957920311235174379933415771689231589366089265691894492845200924058409657860726130624786347350154059148320515510816874706632245348787981297341621037290603407916383021689486104331698721817984479613449382482975922067917046513985438581534160915614951934740835545631125345174619105538149198364032497655039896439209604385193485498361744309126430488900999991413335310945174632265407182245587915657260534449996588868110358926689469972988648767402197332936988351965430569441985974880433361845825820320261817900561168939611299417080546250137645900504825269745012382619159397131325903346975936714165852497825720923208230799627134624482065301296639339448408129386263221731398751737427611144754042244882266657436653137657761651013123287594773828844539773665850458977772871600327529789395123456060998374152898474349125426931764093346721176070587930568466783831777981053689371377334908822156341450685577624724640502072643086912559527535028881039566183266411708678532877136023908669763804637893076481217610906720676654608963485699517036376905234354891138351812732199482666680609348932557103969830378419781631016147156957797208571439248518646978384531545733370887127170341629529124932762123809435805387730908844657110489601039154977612455453672613203401318432914633070785289293692886522925845604026890792437298364977832928919290207380495732500424995703052604021604116186421064089811069700469960509686678850404362458263100855858036830264359314591646285358564819262880097069285171190583739039918147724054976198114557077125178764507883270708633493933326548479170530522974650755158926840184418328190463498361605175665512118417932761524099382563692314158956929439884509163071342186070250761790276714578218825712761309573603296578855455713521361321648089107296131220205520854757157690320081585466099759675179962225164599829191806818365899528936670213846829367874340460198398347048847496828303323404459051827476642645396553586578873754177671187883034417004811868261068973196497108576668440311673273268153079539843026739045819946342556830280816970619883312315000377766706288895753682759549116411728107624269940473793458957951222826012229459165576234055006536381524095790295437547784714902276092250094129749667088769602348449249543693418810139962983530625595666791610115872275214347454320282647207055254539042591398205330815960905160908496047508603667766467200018816590788866237739095439388278041668866459341204612232914978177722972454324048947012387391712238097375763431725721310685935723810390530722078977704344196451128026203204276793992941093185423270292636575555426013744547773883407398293950042312599617228608786107832713963183483249500356650523452364490646668232302433967330285364711895198586658730775680918466246953985776310163166106769124426313715526383679876840891277155179659598840537219794340068508653966568390565697308367033996069665173921399093450060730444437203680072448760911035958016575866185857723948578988846300005517044073381364849456016607526768691796904949970973445343428234967807010651165006432869928075874571009765888729566990032378685504471755703014504893816348479611388211326456018358384777357157353040888183006890188804683262447946507649877573130109143726963129462922315569925815531730700450092538852470036247716998182772690447213565560833605977454137148854368296449424862923820449523856556902546947313178997601542141909163769216863248558761675952832800806738256120801508763914847545954344963212672045313722201330339488109573715324713076858077516069133343218713291604912491848947194215258610549335049588308556227409125961926177623103409002400466698940245344063507721139217605339814075825412529888744671895721603499346951180378079756636256731128012350590915281552281803992780500681433307735681135269377942861300071938939200653564073456174690334257949843504897658575094226932670356353152845413848857157161113531572069930042234353572349720537452374740654605105514174213610237858603367610507605239400704836730791205250210692009953954622151355751212301488677275251452037864737070406455521682952506248157774972277487027616782004595987501462484196525751794929046212165329623485665844721223306689540454419805966685019388280574383373445252929688109350287353058062189304168586816440149415696504568137830804135801957724375820372574110318280680947441661599044928141836254137823350398446009279067468259628756947404807787704031977890433347313245443246804256103950815039921933752805982989578549159709427888837341029587380560389648638922418629286150501163783585451696790497229112853250528914573740248959555721844926782790174140928291931600972618009425930933638606927400012321991931080148104067573771376858923964555350228309522215905771467589374261286754729260358788431343166650028284782378913091763449249316374079668825632653433398263391500447039842392919888185465084555675080768872183046006148353288448489048769529271301027710588465310529147503579034277442176638109806491143260381353739419125472185367120242928178505801550572273385758970144845406641914735108300301596645460565014840582863892768752527732948459843092974199260596534684261823517882394982538929884357754128476835890318260203072645395596799929753143081488304803927065002510415378558055333697053912450666232738209003247087149665363892620397227384644094280247026733164335251884090812139327911590481800467364224849419713099724370908238344807388550889567301396079371220181962451040919530955933176060330762158070777990542232477560415747426062891062033025723056184091442867395911571895490542509551223312511695825855743922202901061537524618552065245801679661655311432746617178866173079229165930590532363064498549955913212061094755672243914876936985017072988491096102256782268584179256616628724795789908286649868716527364624440217167092117145814971339984212777045557148677956194752917388030668713055622398595803776508718905418461741259776660780122343691475380672942754037171542377991546361906084879114860634618078803807436275877053632728087515428703070865355599765415374320102027715567321943177077083188381560512696132486222333070376686175999583763948594158364381633866956208425289131257274548673778458591280267298039248033779497137116594189292288131194331680800319626498528125367338509011683060743184307409217874326430044320817759678581717040934953724318262021204802756011431317116328487560999798728859238692154063774691357966749493069816634758291764663081276781035356287453010354199981807640074299796831100803472227990207044638031499062114192008301804260049586719765100070945569665646024600653457422280501883001371283559587925951521708329332082296748747735623952851918536398993305997789593843162308746354318042016183633998691950926945536439926340525036816287883264271912552648786655500958564361350457012574132069088211610326785613254629043391952322060121660769059434328009829857860589741582560422322258997837542899352481126768828252054710919284518266599287369566772962766837289993355264537038358809797485945647000295900405967874331429053148077470880433702790737391662376559328457331630546335636050051915553760319440770769846046872573526304521984403124077485542088332952182669824824180472414992816788842137496000863246673243508198155999734876182157579863772493580939350658000408386336792262823833594545307826057413705734954624457684911942014951565001283869923677823356489320784582596936243908459860018838671851304609788033468506810028530751168629070428746018626235964895456927413779027052008736615936887127454170150090348239966750412144863160276501763627575392768608034412594301914088596085725013536348291062883348413352964343116403245381840220504741256839974654837488163637358837886493420210725051667689286970835888691852487472242408487919545023475283514579833965278696832887815168964485545036320059017388916414975009310376982119130350670477080408861500931434925236129956522317622632649762245905904730206047420348302091138183767242888596622019731202010462109847740335127042767963944573642378491532680816639627420526550302212247180756493195418035450866825817608612148387726171399443752973602409406903583221148190926249790800570681054200501132432341321029194009546680280785825951517030946656695472392882556384082783195835312722410580039392786581846203828643758590638760173397350497691986981179875061989654372852697657161822938483861018992417022896099536186679091976172698066040473823484611766374397368986845821781570847440632704896446022695914047293734960057468298347528473063159910084379092628325752753124317027573526200533751648538930442125758662753774353770627015801239713250907441969732994460833502980293243480184720054008568080389278495287203993500115925382189207894767916162368684953566676369999431772798302821868312068407348249440069995304854060783403525567338659091412877891056018635613244286569127680848895463876145179632265354072440981475326732361556359267944463792610955023905867639571142886422405772945696516215833597362534626339087248207409273439596079102709804093130368000833667552043516989258250012424442900188158775920307780507047125149021734911806017712714961027594170393402078259626574312028538092798190782543071931656076551164760380149016502366700631600211340885946072864137415401577243346792649624431432092080478664803109754266167247401055635241174802410612523336515671307264171805457970893549955522735505177690186306112031465673369165465342002336156376738852624323047360166168041166684221321810117537965610160325208591783081711634145639753343711881133777826677192440935985579605096703552346252825774068578547131395713463465663527640729933756654624009771527303223124914649532527307402463999583806427718537140782770484981110236120336302969975426657401069565378615437318775098558725450666510675668852175089305940455409020452726812798884655162106046115375622631702213862798922261040425163535436623235162699667969943423949939436165943301447812562836239453407619707498614112196486309524380666668622724135856995992529520035545612254639136572009834953252640897220827229514994904090952755495990962062681146552310583085452978604653405716581967848901667805931948344550056732034304803504485131748420610503886959570845096717943959280058247094250032304338654042782723108332355074557531266029980104238918903264178861446787185279243270053106477598678241940585254617971285774318750412436118031095679824134203851381617419885813049419509105524531599471434249269222647560482102775131271203300218116809237342910220395170860653137969300956611002866561683810206898265341956655357616210273877899536704851030602185781398760169494735751982244874907340839273419882550533055163425133065212082409379398028904857631624976534204083872903441330158318065704123950576595009893949324310420065631107010364726514333239354721247292833931215226237767115345405820008269716519262001669366693449994660728994537569322005513855337410279218022841129851730896788761533947334678466967456341124874769948749677083360187396524862227867723125174302768927011432388025217649963592630135404549360748786310676654788967181802292848503218846156463680896700487243962010407577288377327550141401855544341262554926559450956604176234919279815683734079637273481348188632641461685755280541904604359443105944496395431011536009336710528904027690900152473080267667448330298198306082179943329886725357451773539220190873532346385589568685338290042786339372765142658971986259378583440541944215699838778550838655559308301255264144687747771697855470039456803975938530788387303455725540807340412379561537625961938788944822549039503280522251935690751024140278703112519756077660422149415962198071083786770097039262613836615445122744707431922244342472480494363031836568301719560026527570461555660837607623715397106798279011006158692235878815230390786097336345164893892274405836705288805231457754524368690391907592825337348893217700189420033497698883196237873387192866452867187508617061841651364099142224241741953884666338735951989880544195489198036826411866315751538248502236000272493571358503967905779800134636698144647991334565625841325636390739150850709257522827294045229753458274596312011446128173368174316608444543674188091727548122467708824973270140470917672363825470546523015559686668008131405048250138626608307260545493828520991813807370872607170269860757049557387009690538849753002852710762219488127993245101245686505974296861188662440514132446230403686031311854737719259175065643242633488523071150530655184862187684859906220719641527372059789992643679201685064352256036138378858044040456362281051731278660258455847373865979907185301991562114417975565788861701635072815151957298421237585294464018312970823264597818297207148324015546987060406794300817047279140952835323312660861594439690370448084184578469301527105516822910185860201572606601086981366345411111355819083651058683969246503566356720480108344271668199340528102757442671017294454890809887305262373277388363159562009028869340095047006379693870537486391037319996512250448900314314584489712286398393812003869329344092205211657584381016396064616082663252694288998364489254697673403752345114432403990996704446716670606028306516217238629824768294243043265207632688022617818013535798597617954183853854592933008902065595210362455693914805592492220741340870084517952614703877805939819454397362712770821904336096036835231847210876833704708087181650743656631156526457463524665658461873805286806486595830055772197910017018617558316772569145362999709390223207929677346976761561996161169457294232928749248502613673277239763254820312461113251618741630193896506357235008432735629072114477098096690799300395287670614936695272638983373207085917923103625334690194023607175533413679178489217472971708532726013339954069096756685378100295743489966841567498764665404369304131333772265279846915003023360602894899689523443844800407543604600870970864018411003294220959433927641100153816810306497730571710053334258550586537526166991795628402652641820544723722695799277188198422945435371483373398689753848213263149698368729850781843467700119442498955305213007369146792181664465992991486190096512681987389941918829170226192624701025833929487532474512627016991687266219319479249445475324116609810135077616015230908182546840463921162377160123121797637470311119126887711621432241869683858318060558800781051280703227012917433633734407880261595857023254682468564999153894075169404045278377381163677715019836821429054140863365058061942549955057449178867730791968293362417840891099906656203385876141955436215495150855410697070682803268853185027960652910072760069067629772951489382897670075354578398152538956664755509248540578168589520015467031357686197719253483524134910346027557255642665491421165527763075864328151340643062903461224793438757067036773048085119284254836301143728245441684995980713282996234917246046806902093499384875282065400858071183721209932651472443862523764004149547608560231069734669087328191743593022233824190461963702005477012433827486503678673236956671220494817332465363102588091818565378263727271925966841999856367792619698311154963909961984949059244303902640116990013887035736819732141358949315674797408143037429413659987624244194547641650607262247224880774433452423879392424612016797424230083509089018299836239405140569282940327762472404917074066809264592209673082120118439515507285966070184717530617877754542733106249731906739491042859844886164208878661852372187118233992285171252793957447296332547456417313632230886574572627056813652703177390971173318306976820929348475267185056862091654238048819619077337880473316090294607848832852487758981037107082575838739122829207219538207871611431075327578750649634131754506196374144927164779033570260737111052425281607939057405059722775603011116945035422888598296849431428537811902765934993656862827650066960843104587182777729364256467349486151574044476880098283457353053400056896897658187051375848141091984425477129517191017469706472154364176356125391070647704412423749880823058846670687231940488704543033694212645322256108300534120070674269688660432250661504584447333203345760521809621832456632806110055621047490980569255688835283565098029460642030797213476039821880427025895051850812415418989286448572737864886092597833761882393137725622174869393137967431371372942328353487708082481813661920674558834719886156743660036951840147454277237110486499969176082971660973277465344566595412653051390898400793973808732882075483751055645049693221207410313061325979547265888820459563252197330405894105982190557059053401773549343492791258832009322285913567152487369053757629669342577203128797872280591920669434835172076186419891909272718923263075475316232852451003217693939847688859947464186705443314714876061817659762588389311832850245353808981689487232491743992415440900747343300351552460702782192415413285747963167113002093090331509005861716503009710054637208843347675562632555464373107005764927073931111621787924220930584593987194794611110854124786376593522240547112947256769510571401620373525577101384150278825632523666585961688554620694911719876759354838434801566024460210133517812344088885952276403986923695818339807633316430651394245892477489258508681817250940836864075174037457593531634561507985538658048345912119438534173559932270681091292669661155851185090084142217184797441476197736921516477129300402606226418077828583237300341078435135739345736569554293433758621312794875707860930144823071525417949999343172430702342986439328093250009179399400256734081012960606185255841635095520772503001766735868922317877631779108363200454374090435878418295652737148327213705683968779018144005125212309868166575529388471050872314142816473197619614500032851157066486451365595829399221407430110699055224593136978971677666177599678110643449273864562732668859430041688800955941323836936375811481828784873271617827875687707665264301784948027389778141731671113474725684016769997857628245397466665371958929787069621009034056578615710100841744887733381874367308936199236988914441983629548197491544291720863444948084848948301586123901268623334159649138392637454190889774805066541191138306167962238265201619403813376890489534563291962924917925176063956896413630114542939434402020551575674302732514213853150560816826479957744762541642269904746843952700258863095667428419735396665514310928795555924187762818241928421664098009967010879982388775885563701899737094272171716249735964271087552762736977885555786554357214099765537987278875690405566689706116932604140928723673224309720821280120480647133704865555622874970105226273497507028440338937981588223718630539617469611798461012880164671908037826129711186822963448588927120142260868510769979008421470444251087148425229929769212936414760846780317591066772698158654500563826844601611539781177038430386354620036965819558079553867169310683716419781143895642916451580678875456741167605788945674330439667122407376226548222196871079596188944411545602249029060989971675667130828597253770735362789080959523513648428670827453809108111111734124929247203196810934984060635644778570586770918480779795467436234753880344238280819998732255018472587525947830355852532099342953399592820408175430513395630615136235673485409200175447942325966989480515726628574141234053293685938513143596464629651163883010715438663489456307213572294698113807399368431032006478262877527410508207276470030799386057612889784580866261774267606327960083092093928627315327078548135354105875723017638251212942618545480801040710644841958527358952878444354447159309816909437691121749881054827993728622960695231908788028563870546583556413207063355805394358307959131758067800161016539744729838139545003497779232662142432771977605752801290789221015117857258418883078359817572291839185159491467375007867064673242833765679554333849143863839401135915191814467902879896605628280610956371442897384933894290125124466831999067245580390964519977393379853124679652084299464267752515335847580908690225735203396568145724257268007015967528932441042811322947861853870025835072233914912314450155779755481864991175765479998289620677706592482012417329131181154370499120531159520057714223104031371804661841965988035297305340771669069974764992242591961381438970775012547014758956090577089392442716636273922971901028034838656325514369923553947620368232591671298009907979762537086762243223739026606987182344532919315970564196436664346731715807725864600903105999811907336192920095963478111572522865854899365779364566927617176503566857821230056425695805711167618658727325896535342735031261371276327367463568567583405696589782070586473456985254626234458190415310175844028124485581107140750916800935484764893425950696849352490188232848584669952744320104276829638595282121621594074616096688387058588221028680238458691072848718667761814190981703067376815355233790837306404018152673486355418340246169383112282064149089517547642617021592809771498403754155208930521622552730883615490015218517292925593615096596310239077216906630101023050066337370541007625974973536267733854352296109463395656355359056452717876878680612608270804149290469283232879826891053460103062232710500325867351637952707411150135385322388624743108513810811934345227407114692345179464060214889783504783628966605093362078207678424424646437032997766582252057113874950683838149799747508278465979771353199014568992141121557463476429448871169771483026621111317149312874228670331940541580659751890441665769919182231950849550075038296677237142259791018001504391136730322862585226574973400146058352663077872661642269022962745948205407948437878341496914114937898398261873297852391060304214636260322091140807805317553119047230488222905017633772341232483490131422084477946070216610529390282949408024817347338405132288040210431490698417259273114483549939215379830382302357921669185057258422246416574993795531553267573569993936393283036616025781947147107860805619839964842628906061333150798825073197973962895704664405376945666049797533893870218437795847382392769083556280964138901041979132793940629650576710278572856863200336386000239148669121728234107317621744620152794364904117493261869104684220648874956206165850613208887085666068253402282790047386634300296366659561218394560736182957843268424860713663218837253966525761893745717918387872429732540675630893944609939726375630597516960162488427512121167640309735768210236584025449241592593118522499877098427779725133239366539791393791891043677765324521700975736471582219522004314429327844849987330257972814851860340977793796581171104923319067171314693994224767122576434077065443324229011526004818230995782338890586634975280591029670400192462327456834846067094855136186109581474792180968095860323051744975367044875848515398738234554248760518437264397618731022743847423152709508923383822585509203810555572345350881430628959443121651369176278528725522025803451927976106076013479331577787367840941234911025012063440209838000292283541556267367755093267607767014476380857887411119585805460033980441274622866236111826914233433514881320248070945099642028167032718432647760138661052719669499678705289689537124095230382272628090387614316334869097146778638959031765107318560929188263609569837142759688399183545417326336932136789194487738819137851967354868963368608908542926903677367072148629531183430844015183766040110993987716855192062137882597341830495148445975633623243771722940933703632924142675154264645126932832475520913247467304507063944410483830500088268041375561609140666612900553930201117327384756115332325532486335777974664576039418584336606743323100258621303359901586868004644561002880618821422340342765089457707869983737471752653545277845641582419004784928913264549253876089699559098401123668829195772787001752992592679774029658007668259920901492575842008268715240049945538903467930571113323773855704922766173039234767618683166949435648517554183672520019507598973707345655664717230774818612320145981262490785763526063631936090603796497598651659697683752148355862444948826072006814838070109670024441076201871897986490282030132505340371177745233965984401219347377686742779084297318557875991416723346897773106415089125367759250136688582447940483911194642254484685716886832371025455133191804168454415550359421511868149743975774779176864879742622622523006238606710465899156454751533965097816720704322258117661663002144149824986579430318635285649017414413831021979653483127251260003221078668927695526461015773607263139725889976343187340343712036942060978283949242304027128409692763672155822191402705155957501413556676771861525022286455923941927335672817765139849045602873428952106849083161477890761745116350243552996680989964941169228274902407585348187218181749232489532362791209377651055538000928018572040776084495042981903262271819629144069702244054404106228711370890462011854353842453406270170049045236245659355204911869570302518850500451625245300308885570329862988477773872545775581198042228606922455124922626143261159857779132067633768638539881613373793606899568449349561813592241697739409784306954106092843197179950531670265837498297801397132046659260681673423093389524099957281419369898029083685332525620152180693531275862962597160383318009604294011531403447151385210017311121380960582656024527492955438287921683122807304186721725227407624205763370803954686246882336920525054707811198631269665172902559945844941089942513995007613047848439551177060054917150189100514121806578903451576382512235476061129543017509687466485341345323389047103609503961481004491524062448026668898254135432057642996918930119348790267617747567258066203169383951213847476812335059508798232573674968275708411181801045384819088457144057052992818260215064704320956960665200759017124870805524079033514288792996174187578483814954165264890794736443351801172656675881098485024238747819706265711753000091141636753616812927098952140694009185382662739408108340703088959986666882309367461608390277890389965739473435635827283705133288803953200369693394334217925115839506761719377278610626085874263881162945300191903224711028902305431750402888569282911496335797412965622450917572548090783278165419400488646226102982632034756112973218866598644053631046571801278450529886661541932798117515573559532627933161026522478090463667021965685492629850664715274614534289954529270983560726433631760668889278691344240470547318900378434750658103367547252299590887709117210319658603753631689031627491888149644096649246873151982358759463868930491885369182540664334270263503595679500444450698909620726887168406485788410409063949436633373632552804110566955007688337500611500283676624540931951521444230047638827511153962092371879145900146712463893697160517990920985714988221213736984176859020378214219688689342730002765256813984539564639720174807173870037753405470636945041089839339204339686305429224812171378026475149415070240205312271735881371146058547775605967817426372552133302273268860114098051279944031222783660945198133220458860208935344445237534469235712174339188251912410870141357247810057178215247057097413250898373095156786171689491646252588684528834493969874033595920181912578018672746684501035889957149012590177357153924099379344097138637558303596545846290207231405918066662608806557833803992737039812653336553401871979851767609563265640715824374135641501456201742189216593620219911193020834802941540592417202691978707138654261768611020590548828783564475775410119854795642100315050611548474318914652284573869338259954619173309090222947621096369042623093780548413920940277760667611783851327796796163769786941808031766763246936979118539116731244381328199422046837848127249002455287204940852834848501844580141758900641473074499454035727772170650797170735756452479493833430014278122688770217477149078341131835889626645408240723544799844136110785434322828915546436309059806960692547427257182503152339081968013163526960580814147114323758777509536922103827352117104772160170786590187268782531177257542095595573883640049130476457685124853746115463615992020459363099170701397074505475179865859712265182178799121586245597356213587544664740712983155824319635094990834788942567740320894068191803749635722094346185785779209043973135423050631772009528633643771230093923400752169195496444937641060831574685582481094822252686759654999689344593544090409302672567360758807514706700117962485896364761197740920833986443010657786956710378143043494182902377643543330930735382833842379863542101253299198378069947945284408380152577255717624478596548002439221187874040935957468867803733703195643435835044453980634334708556590162179319973679970954593717894703567564350942378233203425848935629246563144882906670891415653725998045617646135708842645316065335647074683720727720969021777908800522911812585609951900259436267355790923614190233288376719470615315263427507614150438047714533197512766080894227524840071342418528808109060800194640653885239466002575900237635308251201265396289479681394014406950320097962892675655378019873278840693950658525200747378631832314238607254942523902260740619993764541499392027367603288038909535788439797860647167950843626092089402328403421228186429883956149341827576900816546624925098877660861001599312783318905131952215391614419855414231697141213849225879513260758980375698278733841889091037369724636493284078748810035959069681387865119220755247838406064801111155539204782495382336110389421472352917333734253062776146719890489819661543102615735599796429044750942690305399557625626237507365846231458100516664019776979340534119590431912442173548614456601371248213133859241338248370319691943350570002041385419968151148938502276807827570408922840684819871132132924401342343705431429816158119852873458145586521108755005740493312241464255657594692245871184604576199791788917131488437027673002024907249986260752690402902472972295892655603954851093180601985951185762791028032516753735180080434200203595173173885763205540563912165787701719872505277420488036402993079575414434232243019382998771161765423926048788657905757038471204807277779386176106984073799742467047813585752994184568618125364213858630259831551980517243024146536072155684299112162470539811998012183017272034024922257500003340230047242879162662242142463066081903050904088283496302766953506878541144595996358512396383089879316819025059329467917524916046873635134289032106539037462454914071709842263807848130398476104369045567843674066468312652104390773991598116993816000811413921895460296567963255420576738084231640830590473570150344087918474354430441403200275665138065907217641562985200905635570304469480752788304789114481105275307993021599896035567900494971560138285464796475286706818914571719669978220813554184970769319391976810292054800491244527906939186257663068763961248743645771241734589603772203489467090248462836586084854245323574459980001300442007860966625400130578912800181101626438373962702015265131040747977585263159445187285096060342994590923326877153426707906360428230482155627933007911378989902481268643827428108117361931077057206557224510921975312502713231739661948458485961046252941489364201725571741856440449563852303479891660346635735382833264116780607547554986662618270887536901661895886591869725128142651559622611828895139714419154599649647475397120098400264464786004065507532011132377104247581478048026292905424930081968233683098701677629849782634136885336367907450195717542083530527358035816738396383721766425330576772114536927439270062409189960143437848773678633627496453240088333985393495365978834543885110978144186930563258078462276600984365897541740609676727969573081901970380473005089551359129116737935693725189520259205273511084679131970383147925258890377649448067256584540774225036936283703880745976409824265206176714131551625482778989667147295290770146758821812426210762886265451659597775241260313382542016042035123798507192312251106565156319652174895320123657981539386723624521290428327053753138758959965775913444816602673908822309542041481813801250139697193833020499511958171883873444321933401520152591812517343745854914530567428183947031019482018472419446266709688304384279740983809887945767201655673707590313823641986923102058447008218411543069214758936998711198915753168904997393249260779408270549400472221154254167698544360984983237253933926446950940802396906948687268071627429412090652471279239347699971880952884246115956687820689437380553582535666349216991968883865512684459554215913566441138213877037628098958001488294011514370168926042328427987396197586371873505918490418760272356959736538097323009098516229011201962662652048340011387213820021366470443083988996890714180558046292083670207530472977120002175426440440227160820252659217416401110946215098878111928745880706314491301724143236085374735010611746493443237370907512063143567466562333290481979954724915884502916817265892455158852438951822690791970978782756902942185787787926029116316249702820511855815267654527986976054481966945382006245134508907281802599425465713711821249614280637728778559102415123615616559151505460640113587404095598549193944446800689862265634958107427702252698900272760502297676986076081409652953014368330546328061850856340798130735476857095368332770901664187099834895182391333164709380190516194553411576387457539995296310955842698914460382938234678994621530586645212007739386598652207268825193678991128349871645047519379071292454593610288989895881249529432393933413165656795064191381237427115315537701740988970260586151366172678945401759522611989468422787644079318768029573796958006663771063634264536994200555181491244852700239115487505892492700289174411107103229324387206025177779405317069137463652422044816020142315295641516362742695077219256391836135066188991205369527060903030572666795618789209225291354486908149644342392661065244148978685283790728527246530903177224138005545328185287702378946722929015542154084449702595527559154494892290527982303999410246948039043604669767761355721057613523016686792965011267587021703258366903139344424354050708269663586156890777730641792936992096246063898892859766129774126540246323772960228459764190459938655376764675505062266434234099504298546701260002470041851076726899209302238537871434154387314777531658391895564009013580481427080103115292768525243663803793729785625747319626557062098305398008809681340089313670553682686851272076298886532982396624598222934641291508112882327518116387449128917762359095428903663561551791004638827051462326765366245399797527794181322098781537560311321509013888805270775075538865079796722478325305616413873121259595265245705827724578589068819588563270391283694559157946670537713868986690006973712912146381172370824767490064537665138266532314699157661199671750600929319746175697549948843712119158787911980626988607028230233125616548124259700660152286436152312854294221086365416606655774955420577715165813080420106840259498928027891897119630037346724426958435366440367384040442407111784134776786425441243397980516863831878053404793415797827772824178677849079849677429982819956961498261066649895458292199299595519302595139758530516476551399901863431100869422772550670134790046824051674512615584728117483774461214463396574674781356958887830488905490955526962320166056428303552484439096563685644099298824260453935810283792038284974372211723571795875091710887211327989094268719606893838893369560974516118651904964418039231382383303234993743715561728388953207240631845355363431726009876214751870204547722928401316046143302979742060901786199932153734289332924163352834282848147421486618132275904806707014849446615980454495705823101532829072289430153740257432223620139477221998468695536056503557369897070124418478708223027752271488586628251141279368907696678782053227354027725127096928731149056950706504738351315752096730904252779988077542995192535438458225963314968718050701235614524793367723615119335449867478871035674578581106261594930936274955987957157587724580221965067803801923929524167429723592414822604205052769211581582460324261530211414635100033779732626641391081152282713860288748724809016178959082018495650583072524868416941099828972028576637957398927967219621032187368134366454726610932707143155360090221315014702821026158034342172660973444107973737258992277406604666205734078753110655905381200620143318903825263398420659726000507058615290999852072828882162375301253257821261033704330884577768793625527899137383991699113199609511125253717518214541879327071555758728567419086245892572161262905736457731439095517296843314359948829828721861900309290471145253264515778532854262685926013079308987067994974931371859091039844300935938106186310659607633091246794138016776358094338348920925418063966709991375081238190681519463064551511036969408979683682293360299473371500138586422281405111121269237892620823211298914723516336298409727247453131117049645063842730214081280129795446310711816788259260467202467477567954459097992418431947501247726261718636628302064679775892841203269115061466629385171328402532415903770075466329073204760906423359409421027329578390304040684462102518273683626883416500886571577697176110162237587772389368028582121706382536011922393897313117962286369234560865366967692416103140315772097380799270177199609140856956514493135080859917757390835494202673993953657697257124372180902812498293461026810965756034926006480259717901253392765551074774348984971119165933609228782142574002663552896453502323106297169277876515250351054963585807886385396384101288325114510196242603420656505419640557220844464155420691403718952239143670304885221446539625467025957597982029597565723779782475058969528990662230895085666050152622756062599659235605015722800780142768014290945891545279543563201612978956865424048736084228106396447107013422213864813326856087655839976352018648564949419058411870538880700485197775100634209773507041535359770077732879078780254339982716519167005441437222813282864580110029253815314418834653957849027779513455409533379367891018628839930317486506224240967464544754181287895598729524094676394090136054771921735714705807251904248450271204431093997341650116660603366325163454494577864861645520442020942026942544325136100091464504436468752847904245083580640652835921282169500892900267009347011832985429141648047288045046575908581295847026398644915669335326298399595087289629560531342948132697615178179050540943803221784284838098516325482449749074926428559708973822038235725286106078691131287489827216718308941027995625778103196626345077483441137611802880190142974947227641931300623600769086842275511959163272335759468372637800956201550300834980989568092956097752673598333114058239341175552437253178400065849375994314785402543563619875310642561102048506012826244001794409543293893482968412892585693453484398306639013660789504103285444543355474909357217034242936901751933937021817444475032477893106765051297950407923351359393750787280488563612678965917880670422615069664831546986500391502950999507629572354539142073794661058730113323183711583117995126493656477653495682260447558111993807291941725162913777994368881103159084736646338196514771939908466862196232773860116142388569818859084714573714173519131698876600012084779121170220087835650809868071551313869408601982848097500926237846307952393871771513253055676540910933076713394797584491839546244441894360846584555150858180927358813700594407339198387589256477338917938608337075955777015028420464245143480486237565580782809136507197365974867424721330036397992635925830647227731659287835010973601796937467533708423038939447368243058868016676823936769947044794607578719473780677807641049326376199585799378898197410628685092333881933849957770488774739262782299573002398994854060677104127861759115813765808956578843602472653350925508190268360665014290632423417478864521525746454148024945538367211254709263709462411112981731018984064979048007173721337586762687089261676024962958047409228972977431122618260060068797569148108337140617644306184923295103431263402081254361766225001005218260618460571980421986568044679162586616170885763605155302751487068643720079553460832599219604893236192002211951861856992843048562501788206339691942688227782574281637522391359106532344151602835141994807896778349381453527754291541169257007856372440939881575678333215901867491867270973174700115975647739736989958915502532040782536964675282119652028934250052488842606960625686008374246126046438611293491011094305078806976746210463256394158761594756902121834742141891405902587842515686048145918775100285489982943247619202254471363662440804612025215609178415455618593725921479882301333883688531956461330755153514913216596368016902502049426699569908575955007094715430326276467780894837533767830374225863588693657658263345515260045481211465863888962809988183461411934224097941065531652756831848558487991407951356693204957118739257518279282815492816079167564798940660494110899643729859333841730196706400847412210670165173576695861736270085779820419325292854417246592916885911113449337754222869691004109586517448983468659202111909495919262578114780335358839191485600554100487569127807496341902784681849495376230429962485704963112243708511648342364031800279528149148991807795735435796458866474743784419791837295864925310287617470888410608012161829267636524550677415583130977752998608582031409247623978029783620028946109245511398634673932575588225766481896792182568446958414565966300429117389316305892054901280459769117321874780375684824470316356592706113365627188811380555350396394158935791321218950613355195507359783174213823293361590234230939919814724855457873572341662063333644281741474493075089464828004478747963236111307659374241572207753476155435101656401922912045291085663832147835678940430917442833111804055622141766335118999419865480348069464284744627843174908485850702543666956239214544788119781966874178021758321286228750197199685152920718624661191761525012074894834671703215137359467484280459200203684732519567653416653898898619437227894357112532629116984950540513978687588726249971402680500985531933353506254912012276974274641269682577123378719217849355471503575041166980340771898925365871229111009694725165011638968939319721637128624196915827428951311808272104907522827286328100071924228569424359955052046430219975324191060941194229884072207097702250261306508949485101343491444039570789044331844779796226729548984510345095985237819845803089440890298821578406194433399781060993022696212583814151197696121088176745565075484876230064319852537630014848126091249721961665741401344288924912487679370582416296422299728560914126442795085274950461114696142040447612675775879500871513434031864085061405071510133567740378931277385729594651668953249367756090177249783839640901290558297188328071108602207789869949494459608278556701712195166322882267594550365105020094067631333648511531614860501441420985632950503401991703386754476741262004322057401960111355208368753324185015122978779741345107714522816854899813171171117757640896015409865888414946383778539173788246002470470463339320367294282372869734441939669347759909002109314814085996475924042081826307434757796346990801966025149017376246018500321753567011092406768252321764225744109498898646532307215799279331993247828103221089482857929801368496006725363359443385964864289149672386325682778048733517388147610037059630169297240276492988936343571843858281952080774891915843481536777069264528211013283050463515513361856262660932230057469075148547227087498513620560549701500540987888830677822682658258970870115202243473876927316702760289547575407341689830127838535438573174894865349973674150751255169690116618478351345863349775553502646072819088464726961684846325259754698565077274449610334000911214179248468746181119441997032146517627241240363688716344383320725986481365087770158392687559063558242967865875138061707148323363005139822992848768806951368575402907228651896826043007750591005152411407553061201412344622014122142672480037024086838873601735276466844916180071935140745044274614572632078365864886564427358220292643432048322479796322572661453782116346093939966770896408927521424267972180803890166888159186907344963154476809037230027331674769945199576132723774735996418771092801760964234651309442643416583253666813440090575701616170340668011495372851775926933854789965412623828031399541140041190318576149168165147833921153518956964279814903394211748759895329420957549234155162463930030951769298549486448787472405128519304275365222155148322379017192784673098913380421847209260459534376399912877741020112629895122738226547836291346435334199454684889693513998523653689639215729004479859324505684952684613242439420785015821328850913784859974820937629977652710273502638917213573591784756730104295664314061638169905685992255003468255408716013048611750994581110071892983757287964237945408686633949708585307088095119108190274440728793582060913881141279167885129651561685295652748005632007544823326340626529378419515495761804594200200664082873590155949321155783267842859234305057122162141555504827617041016493913451189537101890283840527157213797646937898696123889122132798959904773333138531746686563205145167218285893339287522189956496776166961978164445014582090373496624731841923575488799987182808148749914067056428307032957366079904658214717446123428264517990419260593698840739945419012845695232538272185788257227735526954999621632518037069055305151796818616799819135998995734871989508554624170805143375629665279713540827621953800767588708902954938735408431168794409872478396643379597047910497994007900370080274314907952266041942894213307811646673573800394782906822813958840133047368978727499688894055355479434032970792833291045243373620487284758771804580661827031043029934337599066026774764386360338041759571468895447140406968457453442255201067072700163545981219904364054395412784966118378881658820333984422828448745931073980819511966494939910402215549500823590725515162810363742028965232046259650945970965276439006586465953427122327331541475176804544415830905280215548255197267183937096324187627350243850571593843430200451461795726538310168911322096116801197844080898301873106747523742246084791982682394481453508016570666984924671928807714376675707449370708298080861194656348986591990164842213891480484826209372102059218122572232856000384642904472094020177170837823330783990474530725172760103383292736672071405212384044728927675654736936672703280044382588925877174871841527626491289099125685238349513891483718928616664342693527389289383320538496060376253267578882904506921207685555572903939257865490736760166977408502332292260324388877209404001273895552736557310824463785983383189656249993499941602166187444186634586377986323902152299970984806079134488661231634436666879523362265417233232670581032982035045669109012787760842271476771314581761725476669817829680928847788201580228133619095561129773827425605757482489675725744600331492988304117546901145586879521739289040963241021694387361611843713376383982962299715359947360083296386811170793033652738377379292608762916412386811999485416785052658254296123201060021186966096976740517751001441845578600381822323676545163978982145925189140133634005407951039623624686782055712514908965551039862136580465947550307922712312661295296575335840199361434041984408530215954187339822084487367476041704379618443146125414649740585355171676978871749749306269690986460943427850787743047583671001402035577495473656115086350055155003244760798354113912675583079962883672667998333195208493740751999109288167695662869629531815950442195401681115613674576767803648085124776287648092195756952179558924857057617909867599045266604822397991314220169283863149409052393172212791079303671504523175346523134455980731526156642960668608477034155412356589183885073323668961237569172530251944213124869598255466722979558852827731261367866588851454292452030477909687577180376344858274409228493942226364587186330698866680036351111763373607402487898787935517395925861553098579012657756664075146210372485871899648872867862559443165949086220128103768023587780695829273419534410431474022456914999469999879055116586393437404210363054163775276660193649866146727414079340390775173015893797657344901843935262366737371433199626108002254832554542590466847831331972181685937590442705039561516802746698384121307365284927312274470408071043444564594886867334030338984646276535888959267444623807160769804825125962557273809376196471034584781124988627346491712092636100809778680324433971488632457165632677573970337108979052420314185596919224572096752403981707740326379092589796677748530424873748430717997629073647712290745222563333328577063872863046681737735056040899523113721433416025770748406407575599419693096490963996713585271975324900093075829532555836537266849486977297703722348190193346234451318000280583528335967516803617510212379746761459177675313867960419367863851869562257981957066230320451274876603561854920334618295602189700150346923364069942993567450456276348524716232696365262456840939931955965384827796191522444516107367448116958654813471395630821336473161270904804114518091722984098103184114254018097488480743056538060176219007081118874916088982766837150486816787711390210156587367984795762684721529379438077751838889064788972482516432996765942186189973071530608000594421672961655964938033060693589815489900619958030187922557547750021793300803198378441637867614307174734226325562501808020807986473147592441338627897141022390383262286852790041937319003310444014608480936160627647365776512060956476342293799615184177449252391061744402239639806866043067556492295709165906997969447016893811167678951398425251286291132923694635637656197166451480614666163345844841086431807542469617104251899542534153741284748543014826508293557190485785866566438756029848347417654745955797744150684777548449951968994618314905409255084983187882872932717694674323268566845757291163218456248647901254222932060652399938292577888266607520440614347267166876405876792313939311608452867438243769158171453604590537753519466754540763850982224739390355606945658998651932933061787705738630929370266747675239146234413164055468139002461003396942947593311872023476170246543256190091842509287523106849719346583611737544462370827028158638489776276597503367949341358931594269623973386596759385742211303550479741616441771085147914029762162998258954030958636993358294809772285410671822888234667752924042587428355220159898411442576951924973632364490039653897622914854682996388520151894058393783792803583974392165222466500532052423829511303811316261324794756622623985781025399087842752681201162608130086248464970358218010699167099057063841080836118101467930923782959384987670022656364004875525098288362006260839425262233043144977199329768522622835585106168600253529231472192277048798249925059432899122160016502654263748503551629074150055340088934983744657601053021170114071601242622236710469639715798721002654464352008946851109317838827460770715695644586520784258361585464523904856145887337029814389969551912671296672459404943503754975521494562127221506569696119811434878863089153251905141760964592965451446916895856984785908693631603224029450803351186255635960335447771855818571616256099390269610370975068009063528049384890849839652098909056322539091619659332477898271107870944470333226587281431325986206177881882845584615833725048280053559026038085025310400511995055923447910385877665807225482384220107754547786717543671342587628642952913576540273005525075764929164978927894536997104399631374334654772555444432081269038007952915449324985135453565598384174998298472663116496692694154295872866448751464607505795432962450462018286392121556462563765424940451939899870228674068786717818187764708494478172269986908373367442345652424431882525960983290879379055750467068146963601809809518143334637181337745431125667706304085067411824082336381822968248409798505991400429484649756274024909563795421681894425804635971161971851384669852682021771234216661524000623646572819542108858330684143148378430955085217941055640758258092085114453452162263773767096603724796626838760772612623978983231214114501812934056265271785557751950989952232222328633281631168546330253812453529341192598666397079606719570915059574683082392626675983168987970662885825438078938832492968059384789619205470371647418447646971989658277265422076977428118529237759926429674715594243871508758900645549329151264555280948529959552784276194110253236519938316273177135700475475885876632527606732954595246523708643033431611711208256636400512806210225746574401335447165805609987003158772036840140310710549107766543182257615817331633025467944255107180277762226761284680470150970013674673717640564385747620460432006357666294258324534043131232810004627106064035497702728310206870223465068763210540004054630646733090167272247425239695994259396059333632119148716877406156626008718263274196925190301273197153255889350331207346673470899113616205624322839955821700766787213537522984883279545244795756673282864549256909502769446812443580392988799157913275370847426744692057851825123880742071633722745283747886501605582717951811397414103888002057860291159250851260800334819209775997664680433996654994614731742479586535632777874766109305907361753878402848847542597133726989247364875015475769757574887670566899694479275908303192430095118644791328237608539464731248367346849333045521925088894658188686132497625772223659136742788805989316407419531829745363928172904342632982823413611888145419889929267085163721952337548920385946259211546233498398152127845021382902602698893379919352635385430636788921071636992247042375112871033205479528600912760200965176304179696661529832831254313638873740172375647696760149633275137949341083416122774394600786250805466702504678393907207845845733266411380922282344240274116106912860312823595818334443320202729648823171881232614505530110177050403664236999005190320764733843828914809339456956658497578960298222761374353158527887802878652891333754280994716096528603625175124502021441753542683694271783641456293403575445677093451986007195839600180971614287444335564817419952950696410331553551615904418993641784516018999089621370688317216734667993948601118087097702781444240885973327341612512359890457040363321893602747469672912666987774883742525198410318471388750459112476112920919603690719707122414993950814872498054255284911704521886899369372208973809145871255592728667053682700561316399083033878473975634630693635768125964452349219759284525923566395398976076111663712025902985586880201725888330206764573615469287420738434623771377261093888084012877389593403786369288549425709362297924789427424573228143849860005456093551818584559364308876492292278066494183645079638750974730219045452895434051020838395342944986814793927424389858404169064777869757259466893863028867958880377435890889008763932596657055021217743231737061823984643256283942811340018094327069844217591277658602032734576074578792607393882079134509912388527658790210605868514954556067832254700615545521523013690632371366196010372305046978894845875800388467334685583798372180397620276098992767311996783365748482257584009369138949163670019707832217560224932720902342328482248693546603222550809066625802818722087864260630556006236841945731260135382187923733665529820535890228544216256817870678332313947828439196594532744541136002357937939078162412151562345717826856669424599444842265833661418060508815423348729260234446448433036335466042169921271123086152452819677954813822114341525192956094896937700969010761686788681245077424352260990209417605392976274697153514917844462796713041205232733866834841773749405390115025195852668836247646611681540191838593388620995119723252891973995382720850503416288009306225596462865322939425857635350655662787044242083671461336257160585661708610767974161066940133791254180347977862528398002362907258234715205543584859079220594595713352068005243992960052631589683760208521461805477606075622139564286857075895563372618362061082811447358129826674990862327902627492101853016895037913265791300607969673965825523784539812237080144611669613946240004850346727852849226971836402539803632563274201154709912561696304123623892758395735947292987482856522754441574776936269087273324345308067557113922110326948250291787874399278209860933218394514504134914514764916410734605764846204974442424675183462164620011680247616640270787809299603429824509960753634685973316341652685180411770640485298990827566991925229942032314113759163628250285640494177112389617262813309037317439356222997129388636468021216425149454181571027686495722652450202162985994282906138120333725548232826489065064260411336109107223388248777307954277017935445266151012135508632937755934130313154791515083487279406798657241100213895408879428027370080933362588555686786163838864821431232628365213962647042803004277264959523508301021820793232053648831937712265217163130641453729610371839193649019795781093020216352964871072259015988775655268275135602090930239401224388660661866077111581321128001452948447433987580066522313301554261992630537714763592414600625778544766967753263576502502070084707477943105906420930021584653272398059735969421428685921366679282156884351988613821476360952495361286944081638706542885575940475629188682049586964278020075660894403376596907754885978518618394271441826007252051197170485019474732886363236800796919461907382066175982941632954279817085391749427493593040239642948606841929469509421017828339241732065308601581619019226398043794791400563206339529491462307837595826672129490623760455502502006194582184909755294445206164346861058330806601659699115758391693416244306560455881502646340398209114796486826148749542855270685171896982238231226567629619288912538166009258823902318986658515816497218837824234602636441208213084279112851689377221244161313371518129470242370520713386212084393856862017329122566796303701422921529376335065461951494088938684268014845139727962658009338353937495815079450158815627659749470497541492093197913309136494877514010775225933513065538050560075941093461720732161586773012232166813675583628764242813801081521499129901321429068361976399563556767141427657691711245387289012854122736648940412277041410868550003764999270675126020195485924660563112849278223154929566403567037113531040304639434993930447126857430350578314633051652331735045850781285839054455656822531330933539504463040499051041023076163557970132250507495292276552766144621939062530746804439972751127284053059065072101156271930937976029268912840558442075880104975054043255440802265519629566795086310907266599251059187251506498650207526372712067837241613026307034105099867486980155180709448645836851783208414561598309155473450559972389543994541336170864269991479829976754588782841766846602365131916431018294141410725385598442493952536645261008779524759087631557064623342056683863895606289668247970092197042811844252633669927338629004069138906984260538124867898480083414870969893087814621912299217450184515852395798729161567189624047157808861531620086131924750214400262600887588573139681059827233905959555921014639936567391460940662478520581469757577686210851840389908041082339980443701667452636785296483464540262326797845936171354524508676000869345929680049400538282317170811553543574556402969492694925100403666587375563086892618875153602190549924028064822300877066121497376466288586746804041175596493142529199923693754402149649991017973775120594774970123745799954887236756232103286532331734219852104275503884880515563326152349201234414231539998123190186544055529980655051967058543457587379477905249706669552656885368320610565171562647220037460822434799921839034040758358568939064092175200111396291788074992889872495587253146878750185060756043317465057019419190627856891781079875530484253665875577610399871060138115402672490982317953807970747278415612981440307427902654297887058718347555837070702852686388359752535134817099190146736298304060423776627959811176876635807040791032804692644413224594437023571503266027042779028664705443349695818406883175059338827581480925237903827727135944626889016286529474513314117490632184351993490710314322845031642939681533242933686942248154697927005137422663293172265223773114992189810554847399168192248314032926798210874873759138746728040199367613573945352194278438181058539509695761736452765629053754246333952114589479374521765636232953780524410227289666745456775981832510362902375119806879944216478198052864137286676325009504219205969505053474287540489846358699433408048766872368740275501155476253377564767188827279947292059596698132031612514139498593877542445027746993855366251173778445465536171923597893098847248696314866193571091670881709855874065462500771468671611554471796590885523368001750018765174082716716670818814627321165868745678844177500318991642797584756571469346669122246602296920543310605313559410497470894594046558299547600151590194925044520864821927598809071381398703426389065763358657818752602195115035397211958276479740461378665768373798190440285462796673461769108414335764353301232925823052972344230874358433614041535770274031261012312566940321722733278741032792129860151145485800771570787879848091021675893368849116151548550792167604625786005569287897240643872426750045695853281651564529295987907911890452259141273887073862117821895282771686542970242595869956642397607962141444914879995720810322249305694178310590607912715499875915484751584907560757234027086764766462588163594201749989218258214029262575106533729397122065671101820392967000061417720036620120294532469056463212632641484443952457341300787806099332295572592138579435340858547747276872442612934803810226220727131655993903205334924153523479810682067245579300375348519865342061677702939500937796718097643824090047261807726782131583063542908308176579687558813042685107771527820756890187703739268781486121331580080063876833780362252317105169969728104576221584107386272531854237422385560248108478164458548232232240064754653634529688320781601557258098249808541566139677298838009539732476500338654965419350553411459948989515139011769831826595881837225561046581769030147654325674545674163369848366103100506219822264752601142976649750288814872457362413777403404707511042432054438714351242981819157699854066951200564367854641581434979515310084321576517857077751150537587199755502345532431743346017732822696582402088901571520091058445839534499625567710346385483587629574722170928863321399748655628472644205944987177560966636881470351968002499783356771835481478365317752822471803030586104345270288003205987760220920099734046163400632008114883484698722893735509025928964636185301038101600049916974973087853675050879286054120850803690958078258840912233435311737691323302058285567324313483355675083673742915577887477085973947932458370298117167315804259418194829595634589052670013770630378973235771504980041186722342472127336084155973926842920218948224553799383527627067231722343012854791884033454820411758594410629836596339273545968110704295054109591405929053612362873688779114766862535002786877122309546289295184946207234230512854111380605681133664504257274092833745428530587596227325799889075070785224961156342056991487598950846447840430122791672436783191310034421143035607002664850139376688498795856454600400303619870970753201679589165842772311706656552626011270516931935873214745392710658933023428065740029378061138986738865743568898629421109649314035730933760343196020540169256365066232384426245717926219534657671087271719320165814360345188807848265217195734094704005895735881894119977430953468566756391279777706287652877492231351474198851271832134956083096721587594082500676375718056042007679923576052428260352196868891228729485252577745606435891378453437778173487842224596094449210722825820674502693634122174598104044706212766121279713279300455292057093844535284481835043818725271932190598843283398144056611683741566918345449867750030372201472718724217665571876147003910091828304733253211018390381704296430433706339804962961408459333670580285590735896626495378780194813948930163196172223283237150806220984018985092873461774384201271286011658819629208372599199186612310790367944658924537844799868711499928812566816174140496944977344443404982586093216179692793061376778692850846525867556305717103532480396350773702623662075583291409153832409198023188103282610894230118204898562713414139106483642188048657681419059666768147308098071365307328005802805540009121698637797408573844181063533387813597884916518736971888246878374880089056911666416808335024461878175965994266739872050036642853961079080799239072362279852888509213433801888514322099793149870314227659292375586579646317642836531825531844738042339371741294743626055802107004035710506391034445419225930995476430984752516687017728433739381963003614773977852643166825482426710895964900299545830118205034839376395992058171294859181273586228249177712056279253608982978484228048506242914715563140940669555096981321811670320942508354511804087900503523899009041338335844020130780329605147018853410108159810452676679169596218617099121904118476472684170326913738737900906985619555445691384215187881458448211937115283643066114821285244563786319249490461791000555202934790352844080687150657529233501199569211652826598901656404784571407357990858021518986203004284654394368164703312186445106914553153976381795636247182204623925989240811561238499964893442461600026652255538343323691245872296290956503079489730929344328503493679303417255042177588597737149071486661260952270320752998883126375678112486953137844494824425834734736092831485691678695286731289062110966257166450731046962453372522586164499577570815249232963007868768346751791937876048404608052173896780603403796915034044349145344384503626614791826788032843852963106037097299118077858910867249333136383742653546976216097867706688120481810780979381107592571398282081884888342281152192003763573662215947050873319776007474872971395921870228473189228974121020790508581440955874865913305286923031446824009466298397350485498435438341582964930663591156128648617555668839235930711395600198671013045877367912741637995135963740338205095254488576932106383880273033435928775932580380140561943212699421618523007164221279963653449673987220077739651959253935913085082558453729992119043553169329328401375378864303445591299962626705746288560266769113209576562392010586369153219948386753134523755479805676153689964846167531586329415511062809909866911370054901336315989556472234652136732919733307838567176383181737931797329937524545583225608946421012513660041712105074325129949065140694187940573703761617138342325913527851245154332809712120122445749747255795753401194028579713956194476944069436944799084294457580731098873544643908290940207633228993569619287520337008404208881547435901222766609497309338318680139406230317783838340022095192652627922386822494037327454349839232663207606867794088154829280619297885717793008292261910497797341873801314514496277886125316885687314378629252645540440283851522216686162154758917067313837026473442911464119089678072454466487263149417639709102686258145839100648233835164381960647943560356255898741871247989158334968231945076729480096106234927066839027935878277953857926840424132805772930625395775507225024119285770380738891001688463904513841110625880285783313916645120227379051531030663007914365453399395061788856209329271101376382150843304209954826781935416395543978914626871707606855955920297018427795908497468348638913065121541059985837666022676889162768842677243337966846937799391995342499708903569631294453003431372688256982865031585372137673044711736360828223238425465943540418048017278147942161261006579177079647953113711141377832223030223914749298191475610464161884214603100954209784428382141889695643965784772123578035765599667870689123293813770323790878421984229870187079690009740185139397969659910505684113830463296576391137291042084597017569973124175034746578182818911891983860112885375888414651945873070491591800639269538788746596801149284299892094146277399468026185518387863368293995208811905152269672812760777161247997151376575949343709816082463553461058606011994814396975282619996334835443348350871013621951432852458415846529599982250083026518831723499537811017833459411552577763157294982932256060590628288188069158038090429994337078081242855379918564284976960298244486757908259229437072441356483769317407255573814538362803911343772025945465695688444240993857371432021615412884346281199063458743107991963637642405518458837937122271785824602923893551935943457874768549018758901681341995003847296865367499853971978845647053772458655424603835658580272936187810619849549517215257799780786973281539983755722526803016292559423952311755587515113769482517563863668538844377965787354336520346396934010186971929667847259718062238408475992465925029120148466027064292042723582688285774576000331814446919311590331916339238210323592364771324440549795563859216855291151477305066419444659873823133401347375884697762624882523615312489863205993662294280725561383112080338680308746748075832376436392807426199259216607049732390114148296971171338020782544628045413233133539315054443710675523902822471748973593412185796442029378770209361378373896653580724496551909886102939666416238628821759970691851400473887484106050722923003965111746139674295659755752927727210121839199398010588339283814899892990087769436803441773135775288963114169733118693066539598282618139456726450793884203897278311755408588719454955603892604473945055434152542225918361692165388547439220377631075565240916690233847569079836337311614804334914016945796133493193316758804825583128702223400935249082899547671576422367239898897193908343108240741835035650031570029426039227557014282369122309880411509078221952801714614701323627350569802780822176370615390809317477723022022635680600532189472172955412930392475206349570059281068887676409332339795809091195471266637343221293171951616206101633231095956653306203777333008633087323210022978619351919936420010973693182491971360839685132303168070605334145495493854926223238260174053112612267294399302584793438670986096802550802822074355896628211216232660817358087570887644431970851367534066819189858952304574783636772462207604719163429048808136770461851112949782932762622316136193433259587253117606378038482115037948512479008350468726288775374103425915471725429838309875602568802669616329623467354860810815872217907576988006713062093405421770069797864917290263993731688366003686168583006955554881285991733867644755895930943589907626507035276043805657232382588615305155094712450436432046002701440554335241547634346076444991305864309398269903558600704859957906326241295361013303208486191308326961919859886741606652118825189020261469404753830318557598002789931035795769031502385744362299893160785120901542406672431173927787595353775562115127072862195463505138379397239453203147484172132602723325062762992389679398974690106254032945419279147343606563566566617688257639689343231729795099824327670131016679992198036938008665953075762422690903340522299916643121955872225847351334282161401431208151872799191392745346548136432272040402865045342384438368962222926059388870222636286655055039970557144950093279665520704213020990487618578443333995347801706718184839434293566492890661616312379426394046707956908307509573008438693066296117834570933917722830110418495355574330207506716947388331924446300038403835827282953050382261984784641238157120409195720602779830692655958049017323224663926224681213826134726361778430181861691747726149834676582040098524527443179681945069789980375126994076119406681690134715554524844159740582313066989273627130737110187890536877302204591269312360635763446864490570487699709170692087548742438883117842226346981735058954859586090731690915040601352111416604693198268299554896625120044643227551931746621806216401996711394111935373493701043739863164243862254034435403021626251994650712854096296842959696226003639267688798301709538349775940168707898899047402203842491509302955672283626530011493873591023385429991389451299435051978517067497646524879872333416534469933614382135149996747370989279202053214971342659967807077986587004128644545100931642685259055213391397491157365621718939558317179552533962976699303776372425928237842229887819350103793033397281350958823000055524593583971444568595889100989038326654816123824354115967295205187336951855353704168040369068311565682210778577627727286981503736386496927942759943649604388156740601192376292048528421441999431627902764905902002359548737309145283158861981856189164575204349226584974266114051836330912623364154844041301712120094952812516568272979958483848688980782796751468905313304215589831358172088385187113714524216006653124164590830193666016255009941562583000490453067671273229018699804610547382992195522096101968510934064084477003271798743661868350251144311379317417365451212071346679475341015974616682792664139363668375163723160463370733465375116458311731003897630037674568816502685746985187837100214568456412983421292888542394235776090053753936291108579683921154464154487169828898366623981371400302887691049976484827524679635590536779975768451624763564712008744429387627461074377160654776174775432501668980889549348396910534736161248485374687256724715994289592318296308636132356743174560697404878752646038628164165918485217432399107209320900506805016688379270825737776122360631168464281238185246373018289131076707739266903436480923035118172048476795663600866386500123936757294717991691422646988881929860683124044116236405196631704708810272468734062768152545810332142889299451397155019300551902989362225440823414546062562860936171237381908716507020132063792356379713821812217995704894325400614805864291026806806561244606038678899915749197109933376978064148701458721782089324748282815389443392239893800405583695219051265621227351657554357673357095216434639857190144523647271842846263565720998436537017177733056520652538151199143130371582407488228241415803931980533885300862234120239392504822802873420133835729877342871669997933328802266730522169498831593976631491523288069443570263512635824062748548259423457091164255758613711050543790434433924595047848249207444087995808563288092820413941933023790098351519605695711515666586660740588943641724892756373020426232330208809606959716591020946635433343603608808013801308131936544375626927974288552815646093674463857799481561351680325158375443948161459839388219883308445264031042546984658049311387772353606250017335690455937455124714466519504320509966521747743309674878745245940038312098585621654589126713486768706941851099695030015329663822814000765349420113947783534181013914947206609681427731161946022822628732916031981154516137143949777351466832578429226775910854835954490453571744193177881619454279356142190003956229084055534904471373743143717085851435644509415434525105025997811883397449052187195805004363303821317936690689708764956467096747830310768632099085172586456837702170625440290638936401164220767097838933137509150647565118632426881502375802237072054866949400469648805124641697581855131829544467482132445617616437239440761677499252218576203384499727888822113967670957332342262404676291980452488471480226413692696530161534945840820511293849418533389683314215913851431482861676396759209666428254601576257708666100962981802839381111153758294492871147351981155872794149279028269279192341319363433559407053272429536429441854613901567255256457412335322625850374564041213507783320928765751236895776364246635379373974603546934453134064479609790035242105877198586324669524777806812728587350063324740531603993209050927617183489571107517748290484559039626247454736698444756229023316401833289396352112963771088246872958621883309862516828349042020168174035570353038507447680715974262675295711395583173429629071453391260783363633869403884191797585625036603424275542109523099296245579375264334783383279226553542145661713631095955815462070498596538525780403539539402734677538385658238027163068675077903856509624670090561655687272868791277684181626194600555602092765265481340829900650412746774514730232626530725706725659738114186870958947110446258070736682407781268347917926886613227735094864837093224291239621022858995844521912237425769605450691506714420834597021876045377480147117366339694915660232006352061259654628457404931538039538111870403761969578483905733190859218865214518266009135733908828149112926549070079875916767312861402954325426180981551259064355931878789632705548762664067225187393244925813280851251002367888637716047472494716398317021296536678762388325664297995251461913497032438409444495644920306956542177190924043609394599404015867996327185515043722698413674682663012448537660351896924313181843907907694184080714803777319193840453671383853498807963477587871645314997747470172245775531681285839615457276198095705715736019550897659885504040298763686706112987101920758407347365589808157855466721587873268091209917583224437861939663514763511004099739651586331410312626381329147939046477524419089957982253869876093450238581794539967890024231950304476692826259356332477524140302428470715461223304312969989354622358998480290765742510010956813142191347205403185671979339154538924831597761109865510507900741584870717343419969239630335327217783907357912604414329420139692442958779856153490963400118945951159422784652340582206903121173893613984548509112487619215001932423839852767878577076229864869035686192683750768099600646633534706084217594289748939386058034719571359500491587772036787992534248063562042205615189318893224490804543239364765325696114007187403359350041471572969540945648149274684932043671056082570436440780750264812583443909931675687847373110177636338684449928292776900058177860393634722078911756276847947011159963599295187924736494294891104560252259327680848109187410439384910012326405459709846352642509336445227382029819764034095460962731985503813984667770912663728120286187808337262329495501074006322479748986232835539135515471541693162935269564333035137461854245464091834415798443574989386870019595183726252454628283558248244558232090724204489396660088758656459844263693774802315510278818961230375826563345866566379758371254548190110160815214409382423052327679866552772886936423174989976177994782745830382248045247689596996764709903721090323287349683095584882338574543831981263342321643010745652832603277578074207906700029337776076734580227666729325834483397021720334344355945603030058468445915359276404581560056500771113688120022502090315999719525811419699728063131222367126790734085653608983442071091215863909064821001153421902110822568037392737444165932675817325367551175124788899686747353858248991123252048760783685675687117804010033195513070775315078278648040327205110505109185794866188751302797504511880082288346791682609597015276329565589972081731674192047213925858788122145185874625831079705288413570326536982287511894574530299357570005703889681084367315544598779794919023637567427848525822617668440803734829787218556235200210150777862651313083208081013428073118333202524080456645731456997179992592299312005305825850783508401335532233012592684954158776631994160282634837556528727523087154185736367264261508469804711408256416467272415811946909650929047830419140730149554221217422656058367947328046681193007955611554460677447889239209040273604905171324038377967267260893859754894035867807829605748709794831977950761590406490018801446441578902666158165626990499805020241967049280675532352752291513799777248591598452600040210251714231467702447245975988541788044764025591104104094178000818238656841814420277234360791863552111746204050128613889516476915358813659585041399969162170201502279126685598255664320893438882988334111412681286273830871933368607814666058016964631437451179652564677039011407785770051601992208085954051237698532629097299892015697992294294411545935621459777043408250598089249264452941504981327909994347883038290669600968378303452194031799754819383254186782315754617944767293882775773633460503211686673990271204277715587194569969674802295310175348561208800505006603385211990890332528838571961522517641289877975081465347287892218309560652902883442977233123925874462500553874795299970569601706676377064139119264896333308661419828004326690095786268634369429854736208095835553330360895478267741434309518751435680343907282542313302513763962392485923377499525104214458394520308757631600170445714239634996211968418883161604955784416339034306887176912600846822712198799704373608673851717097746295846481733233404350615733007858317760525224857706961586200757021683575875883420613750508836430151288006571003527149235095531317659546066450763413202115564522242518075147423123775283948889996615598929897227208240058014949987533726272636252848409470757015796890751077900303507891224979840341323317571470531789944541419825129561199619901079715530350307674850089708351554262435331870638746346480961023506059385457714132293639207006981547807834321143597851308274654485754886197015744792818483316505248894512955730684266152300541745911599793314163990307450113309215628909851146679432182808718556756534509564345739015559087419931975274415667901105651914915965518694227970693571835583439735107775811947892285083776454659949497811536839476786687332609534792255783289182614273279653093276311352067628116330031920137234960989943415495605193335679314342279013324580494470537459024148848086420858897421449112012503320156839820543734961373697615985575577971811324626637042753746872349313685197766527870332480332316172037684093880108173787643132190025822556844518748298228931342997760443662987696649617497097898899801996536496875455734327007705601001047137955396396725362260782443220446446757489929480647409386147415313451961349649830624091999881502066359723908769142541941413298001314208926750980005065219431219515362734174866669076227366416559292858159864199146130983688946841637176277469534672761330316274349307739774184168840691931483984814823815487517809656898306661766852172169460685228694636519609980478001737529925216331850681751384679275244025519927634588666860458451789371623924194905158681200667330402423345661381775875349117358724413375013988152537153391608379898279522246320331414128015034807167787421607807785250714198385958205031988460033438716106715973115795533084677522915905489584644634305208995270323409382055365773623205715791221840873637798371129059369403402898463340703244545305711037135038818169658327835807636035303820978470261379219211873879145309132942864327749316106029521274765899768555753455952246089740237032575066107168962258368132376379579212449763291206816252224218175616369780375214448830839316964379257389391786968415014612324873267310381495697494863279837897258193596231414025177517541934650932226577886065493268558421437331560615660259603789998061400201608345434823711215952920031427772774545191775177834044089099502584521311117026102158030338154369962528380676917675529015607133758967566471785622730080365629218514156756237789373360222365401729235869532017963043144149500179762011832408016186948746199551648331896055199279285212967912196602685017805056861014576899548168731029636021880445044659703661554214891260660774807462590049543862111030293173772035470122264037445575827622162889197544874315712614930384861029286822119193183131184232730483881581748987532162044918491598503802681346217781465931434020647339917253443202179748614563464655057911490183716352646419754163358396709992769423136001993173579057419418485900283184766850536421228922324712220437839239399112078698310833442600159262658880661787600603533354677433563631517979133696642375569645782056060764349891587052322298089487304415215601602536551497293379396823371345062731320559810622624017568486962119093839786963625925644415210223526283477662809452004683083285125280139648854206719654919094154940817144180157534217052540166096525238346247517458762263300705640843958216668612212467989695308804794889338307536009358805983727097079373037423626706982712516487201866932277295867314592507318558323030725399934814574470113456070742735571852995181123332958373849026009471311272504146480492516876960567363515358257916136657798692256871892831462305915713552616942914908281505313397022140462666614440812330940929913367573603830326507457904765854737444753422294067824300202918750218892933009436808087243546791997952366142693959201796507860794697331807761220540534931689771524827373824264943172196695441089834699913292932034003797673963721033618945571358881304815030788649840383692309934673111616156558000621015599408522536560987314814790325854917204925799526941080451270216659681773972048851099346950028199029161285071972678469406984073561688313805096923394818559909590806426188698996282782486349224009879706994887864019351695280934429203740435178625631912743494848785354524717161522170340283744564704653367657216722966246253706611893784788491722634844716129125515600281868094376224589458806919495612493641486585226220741456371885293693134581716803295621743899983135846958378075927695518897994491550350603699968075151852093762949958541761687706147788144972631827490162387846085043553387805338890155116141355724282999779232376864495162813760303355172177713740036555959462691314602613933825423968569939000137272548110663161038530106456255527281915004916684578669940595284265367679432027617471206820740939040604788717928634165343261792428030014951670521916624502124157251082311403085059647554153917604994608869161393697238240253114251693677106225243794239239407697204824601346378368957936159341635930853641735562815979478461857993400211482738851715391175207974232345530122361841111442677450498931522470767630585639173413028746712093418414175048802425468878256478166014378701788138820190479561280077284037987624167957008223481856110753514133215853898083988322747173091144225809225655014075736364190350661706607172445578553376156451683976113904442905021900413655578180489284251907337148517626887715204665958526710980433262130997390300370279697603279461267458032236291504430797715665683463626543136138407515883596355940586719054221185283154964045331554110903383637900879493457525499509133122349958700153049806127253020626223560153704845508669945627079032952647070117000566827507287805182522747668107815843753173219174766573217757983140087449505288914027669708821482242206876423560731593350484985174148768968518153927897426527236789626896505886481026541585433922438274156505611267080148700651507399188495401186263297278646416261966513408176583980884926591476992269664569832744311560759191556150741637877245713905023449532009822986570832916561830333024921361001567727662957778270657816994626069278073586291764739832709484398015594802649421714489937827293052859070140425994484222991985095306141548540979401613253677379707392665455761020811057786306472256919896761508212312579020081327157187233286777174216240046612343035275190753574042962045458110861851004515752503180310113737204937947686080269093908829755641864173598162653301637699888464737208381811315918109584358437165374248982098420642656303140682249934887152040181437743254783737992274574091451017115403653873420131848246243464919036961039093738792691240793389261172600369360242648607311108921593250251163037265817249851011347733359400689220894038536380794237994879669034984300911684371699982030281229107853250178314639673853616994203896251899442146342828991267508972283460553705010063360797085736692784277100323169289804085720019933878537557899130472456431087376621930179164431640838360203748326181214779317523607003924414166631033282059182407420310526615081184990049858294660921278447337740404009325328288821965937948970145051784908686479623781480773015413313442519990097506962098901880460489948474942297867882641392525042895305861171714681557192690906129022504884915907059321956345874265206213232735324631828357887070325212633627138281279771334991294908167698660527335377088531605508606322077775507369392266251888008823027428911558585905078653698904165533084549190064646609672730268489488569133900449578298791278200106748611737664359954695899333020655768189523733512242362179132368829652059581427704581681609732606901537911740193896486795321399515926789010522689663287620628487013026128532586982259730157858819581073263859289793227346434629134034356114001359270125395021186371130788185582072673874587604360606050890560591696299613215312897277894452315946839489419958769132718339237436774156673083902149797848818144582412614622704534024837879807950329121894589223222283628798151358593458074086280395247647328628334607653974420739789273788415965191613691584774369057633978303163065110588908070570618646440484002037165644807186219604623687927488351981498371206664269559108413982334668174165536127837388408425070723042546673860782055954760063920675288473186777255457619020417981822871418958998360824075492659355101521443565653466417436709071418520288357278897795658089261719725419263318334928539180814924022305869621973426227490562726362988210753303706739951910950236168993169309520451693367333788417857718949901190834786547090691346672179978013559903858617371417116364796490175498053754739583769850690603695473016849037291372904307401055450712652157119078974209664257692095003402918054082026379182241796815231918389365021890440891207990877738654874213959652002897776730144661513438141468379901845481254490972644536344766649176667760979719314533225537753663878969454003655156854593051909136633254968441552056936175848423637687691317428955230849817441832313013396606044311949697479600616075105212159309267885502746083337474449182083895276070941765924492659141510376346177002537468425031663447835797197082048147785555613652121385083069308562345039557335044585973735027200479414021862780182578366984337868518036884687264650457904169175074862213423042906621581618393288699366114325895839085122990521854521071328873495472184535551877683784816136553837646211048666990066171453188833465682234520477379108755890504842941030797957636683760704123573272477919806793659724795640545689921124518074153863811123209694421895158940661240148517784519762746183650243434241399834644522208106960671340055150165497847179429623886558364686038205088470079416423575196408010884783060657525266629093156485618050333761747449404618062002713836891604658274772476575560674876787786213671001566408471755327095939963717060940184713232729666756198879262779667476101278228901333925551718647940766614977153470874500328012175690744979862579143946844055223017961237938955831523654908516476516886199908641474127562795411612822860276747760811182834598770567742900052141213570621059296030978225195672658303464423543099000094926675634499485753831965425622054661651754983204961390027674270279421143450845964518059045972166260715777918837029385517033440708929629413236160145742447014480362274787451013217022032381499587820874394382672513828594222780812844907304733925487861262960349213531617960858730772509421400245823813810349660170087210385051442190322425901680828357927814631091192554734519228195483560821870691444308113042492594458694594445019505332231624534860858039309452079375922896484869523242994661622023777940509180677412584928593491568329843257139107948696024143737856537156185209307442142255187182154105683846466617538503887615251906615214295075241090551119040295502613155090668824656679614571737155585030876224671157646434406289583112692510631111057408323695613477699225322439369792023501369706140111015279956718417021503410507224309666348224006993865816398510387483026315142513003901280113033687266460173146771520441777427605184158562037296182817915431208856822410309676502609363650772689483548552425866218524164319840881669163044333817442443004478731032979469415742574424032074516116867314892496259417234226371445131267027160001419957602240112628891572727057490398335795087013452572666826158873782834800598774519056254971857194919071405934945865408790623118789814482093535569703365640579905437292019896377981356452796404117396430161400567791665216249544591280422282015587043343127312129738859633369543433689735784142182624600455449854949627897832255028925646279251263350733300833160035151910562070936169757955272978747960549376520617455864112451720845348139957987200479690423868903925579491355392689733094689145631538514844293965388854712084742240001585669693458689061572092508189296222221284526777832111435075643177064197966966647427390317831156484457846204287912177556804115283220576737709730917379995128996371259747273362208086773896526332994212444288940255418790277713827728830912144037976220999921816613258392644175078869091387566100194659668218474041757559880070073902622321744699168778237326591728704027318991595826872333653027464218664557881927238468828407778627856625261808603057273327866175068705985383992079313749434528028692624890953449922988298805322096640150924267925843618742688224177903554169556093154816054646651910850239865301113320323962512273946062067269094619111582082648417851323964380689685161985948534130525726092926232861903372976201715041794456035798048006686187862665969461417176138273450185770702627662852378398630927122266813697869484791919078652180596473133223613724699447497051897487212940206490973937484552545429202104658939074907684809304022867842789575229800710786371242074281783156337402640828889407318773569833299608157363571859266046066590044008319498283804576624189124872084984349361648993022543338077310347327856039582727691225531043177679564904479523016320930730356281815997208333007062912928303931724288705857803807449683327806244886951203453275216521027839542667813393425511679127616977633715631126723093101602693045426408145907373301717778264370463476345987771747801296510818372283587070724127845002806759777553476382273041970833866831426356200336575876800098009286391386563231082906065618036174684808683199639251917632914935323709552123751097226352246849729031649381647018921262343656191471539446425390155053441042888059699041519450498719152121368400596364375942738871335966372897842364178361859509355328289279256893787716198594942844192947906538867198287788119878220576761530607991971708088381075484868870020148991980324749667756148944265555718242276091683867141882853086582073229746071980116345947525470138026779107275479986374989226266786661673404659063618110389575876268905483787061142340589577986842086830654042531887928564355637204043481670448922323448383582288042943619351332690680201883915433451728143480697996607962875392476700161559113477294755046141473476735135685506706343915047570050111849366355307902060202840921573130509073971612532135384640853307802136838961871560640802014604856967122498508813458074957552890779372842866922661153160553844357239454930717767950504630794081584888639549897019440799349820557833821106947199154604516890448587322746038886102817001717273364496077335524675521508839538534322123589294226341790860260108041852125308819901891413566221546094385665767176140897225162394829364389163853270294153090538954334516122826016453482750615243908190786092212585267672512951104609595664760143255494534661030233517895245899771221617947769790048178757115334900238681034642262051764363120271056444981991619697034715789014150901674600398433833625451229869990394011577495960634921136812973295368163138661015743468899877729706844575953228990453374227375429820245155597520978271813605041508867074912359922819440582756769476155942814354491268774621502290160765128131343266530994197182246806544409471063027688344121292935071525831163878993647668539355606989699753975304844530192124337256273561201145915032244858507776373735923303232534865069860615560835220080403211206023203479106948083533316743998818222623407674952666237839831424844216520562103698297104846290826646401575708994609161238699143725671287154300062157889424482311114930392931844332686992383687715887059282708184581937725880762789041303052034960643596333261464033883237035577071622200771424535049075957828451060650073257743737865766896607253136473485915549481799836232172914831545328848280266665116971639290326223450974373183404214823045590844643559664822778458635174441426194841668191987707155404201729941433210637959130580212891347469660507482480481436945921963221131469090966276190433536385521467648871936812680456665842974180007050994912206788077708580696039209235323535271947009286423876879241974962235801572787851114229883783067408816394099842007293609955411009678390829288067420734900471691725270925081487924659145936907374512675798911339108442216748350438378292774167257494247834588920189182472900554654015955946509157168508143708124198663756411222842862175082562047510425575719644372958387394125401122305966503383126725364203255650455868972937412966275940594001516358392822872556769425455841026348140826117169739704077529887489859417999978793987806763225131757992217483673541983324742324032549931845737617848607876349477467629731730563266190509341308814969743415569543213013894535871774484871291446824568295886816259213436126807221755735737542883428583936647513989057318904107088537533347479967140250520590582280674608967981091634937055443997478172320749440161631164765737954255079879095745898291751292069571178746389846654681001271196717346155758082849255081370590499990202316637088916768573589237334458795431678216837187629289882284367709039985804282191506694285842844526306186311301364153200605786640797228131316774003597987256756511870007826764479520113145817760958450215572161521354502631888797409799546171196649156696799085216795435257400460291299506287014041467019653813238107048573925513016057955763062747076695789842899233859596555836631799974350508924660059703670318879702917756258572800334657935943870802063515860535196915130171042523493533314734135031835345370461444423568493020855842906535544102723721513887042488298327721295240242263799555204685907453752975454274254318282146714750528970331660695128494976417693063518415194158019731051512749912563669806037670393653382921587847051646849840417280076958726665559847089831846818394067958610187344955070590651418219713269887855650860394008207602036557438916406426071298882573846612038254225323591511499587289465542037927140543837793208953189066064468054337348815220380234403685526242957402826093016450640230316751293876967418156453169079038964684425249684841505465269052915333437323212520939228839816297437729212207272959569996503054589251818856057095603943247471669816652258782598796956541478532278280292806586928870283075415175802163103238511233539503950558189965510154446062117379213214257669964765758232633302633344880460200351802828240296570871318214373239141797301609589362202288203875847274970753873508189809062508799757274715143404154752934420300011743696918371645864655721718440273938516415031735798626886399966785165348616578222759054437111592465177113141306356282376266151676631918986234467863155942253448721947237047363135014365322576862828255556462592848837269906565402988040648894400275031663135231755967904150470202011680284460180429847970943228286942609489561461506688363650513838166953027382096614100646013844603653525549848377334988225785110770981051705547234069902848535711719091206119020952547153727946531556782565933719703412501610977092258717485976207322519099094365184220715549107581138839811303504748931379719621648876995059844272237816394734354474976470753642403862920838932556813630200879206077664279973740431330666534548946216826575180670799966631300640036271317656251830723393452566477053460745792059922325627902051327153596678748507746021236883232952449778468570962726988113641875703276190363669872678140904791472252067441939503344504055160677424011328104195043097077484431025725755390348491089636140282505369820279351531828595261473582953096086188171178506698849034040755590782126882668248190891575144893783163808202200957414173331230135943019935641689302949647984986849049528431755092388702123369374466943761564551452047586740373199082343735106127228782959756264935666966240596334526801934744350730995840752745332767179074853787316192757600869190598153528444623640765437572739852923213666404415455692881470141420713598706985270560054926759789398654141780980963821326832738628733051719898055002650746498934062713706576601096904626972907192194444349256855661283313807919540676176482360951760826361513974667845563071609392649618569624137466988902698046589023775483868145049895901916076276889253560137553190285017650032061271139838867000370371730485134142785248750565572798545417011905299105394890939221966439315364915558811042803244343155757342219419195036499071727716050759500450823266871277302203822826998088802460424192225825629991430996914670607514530057321547826383197194738950605446775769673623019111645927907544910980161233606031333994275246355866499656489598884128443999228524882271490811465878340479851240794037403396059750723639366305947613994608557099097731420429928755720730676316264602393189533398936165864087831899376520770613726103678781695803745790851131102592228146025106123843091215098590479406619313888001427192477636437372878600651438940889877086823227714674001718334139131056997426218524125418333120858111214559285050184420110772752845327049336582134862512657197540194727461087704762640263878512382400072494654178225096248277796000405108240787045338012951363349849836111369544922873622438138477203568426515149512438592904522985844821091930633015802322076784665162153130530575436303248594981623126172331059598518851284767783878765686237694950054926904283311232393132736047399802101153052889651964852792583880506103163569892797359370666626720114234859136356506363799117097527713410955228213230637582743333225135694182805909948118564393885586207614103396774983249547411054754985998178650973475593690260398368797111134708508803170596190226731608973903432848783119352741268880071734980639956837368262142696370654197097442154555694598415490598412606739486245558009599299623923536613111292552015540293463744028809445086498772547841677010758322776832616182064048052336951217853144293545899457893752965621852026743525288648659558185294269062436567736754573652419989728920845532466640839471945555715827455870511920973849686546029032577802064800078331873128577998905583148290224801628238586020962647726919927904686002990137455680144259189179742665618342060453432638477278871508468752180335291164024902230252832526294749806516632551616765379605822947077658806598532651515378738635162379018752646544138060970335680869619666093206446207107427480841993739946244747691876716366947028488799627149201241318519851156897278712209028571945535959410336211187245114348768560711002989283214143496947779622272584622097928392498946011062478528427843609754270597620714738878018703590154399696225161879505152746295451352781131857537671973625433449297437788161910510175269111290940989953586033161369804736776224433779428515291902274612124873511540603581820114224583840949379192167501192512491060453221457435471644111874955528237104501394956740915552050964088620567345497484097675360205409285913715135278406086343863026008196731652258434449581427189823141548765093828821510433958991772463274535666523850709484410321393966061878289103920409328454867615962408240361762850350856472046608688297332041918260294411803818965745830402143842017968158364351537950608995993534227050784435886200543766149777821526408646162075562046931858495714081510353235622084523838095859709162608087140357362854193976078434156561859359548344557354004198901329478847163488808968891230803829520686273894016633236811257101793269680815060405761794733091164364910914339317205097706477392445879772648624692052962185097375741334701163404578029909305418377150556316581085175352588574847420633399228468643303022707967967626358894780895487445999371078784665365566555140562256405745962737488535721550060555996879279129551056373714667113001797695392197789583956174831207399384172769196489938641541340514201552710053302867179429933108597012972446022079955137766575343017584817830064774617891196432309047473973334329894766397211424912210764270073833711727842536516415144816882093778207243310564921281207547710531086963882661142477814394828015937115702704951683423771325725593351720286896694519826381371464170981908545225424931064205051402275560364298511000203231415392635737316093393399952161897804400843932605852644803262497829579513694453184709877768011060844534365552721912597730543858760560776525002218845363008739355909992371739130818891548605018327795767848504422109546425669380246924635819731347661643473926847082776403227210489247083422635257643535828647132202976264592771761060522364032768081653296498317227877698232921975237848496028212239811171822182601736087565248858547429432342624582953657018157148025289734392103407955857086083008273130632571137062567653817747510371833473771376444771635746312163488111071745533299122053221285290775945912413273859916993069398418067875593415542711638138504861333150519628205459193490154348451555896536238189143955384453362478346496064726614810983333889022489821063411646306818054823072577526219360878801941712710373535875141640852205093986000321348365410138227270991795095072858482633876174240869083993973760385304031799284297856198952275923073521596089529366488979832506798206117668340394113176232161066779405686087045554687213267423853639305567457482871398655361436411813897550552885562597814853474863137831928035877444337134950789100846297741218082026345003572884493579835637469475999738458266687639479979936620985247614251851304825579868232204450001786640719158669611633513634425645800136758830252853782731980968087141876805868163656884413594145645288294941954405476277725544024620636953574804334152007506875189880384186909883739411311063561101400662682352573780723954014056312002794112208839629366240505733180999294237184638418850123062056472774172177974568135610217400589622186491590182730378347931981320204671028216638400399946831889885668109281486676316457724637169908912078021319780336913540884271692041151340566748976486116169358916926769545114127451611359541336947061086658121123473966038515630854546194319173958016446813421934678465648478473784034188207483039297688207766105972661445348926943390774197842223739775721839113908596542010927508876958755058021681163805764031120213022964559580765735010519307093847528367051284055771684790630371266763795296977647387195627572153208247161093436232175771513725813113930341037984984035507855275360157998440591051617292386577423713511047912664142214215826359731011665879799109225143061744358414255572298819210029159598211405505984880731006523478537144444609327615712641779288902371866390837766441732199847615885654258169289030041324786885864567985712688339394082183508818261384187169793094396634474558638521943776445392826529701983630573788447440730579394700633777620151210057515350639697312737809113829219660269383107786852360466120288107312260704052822455542943916947880001274010178718135289986320109324449606602602648331643655801782378338934523584870989606087073402142777936756469629518297906011805990326819336409615613229542341734550256184344992915814059597644553433567531409373534963180951058184378795650275943734394374555583727359576650261777187324491356051665734971406396000026965756067871810277330464163182445531451355691829436924523435185959762042094788488016472508894718577921100810347284087377228777340815120206396542522263788997465306383143995955956680500915869760899535852470708357924900579285308813099669628435997266396189699335297245565070352479275587311136614003326173530826940804087970630121488665043036234032656096134402858292910448501820923383010993771812316251888951705412676258632898245066968358287360094402091502567323693820134181855352209140757742687676789111325651505778649995335553601196956396177850312283614799620159954356270184165046962006302485342149657468528869156062632267151502580777729303900021549108437531895196338720635422420732828784663117407404092118337287290461139831962542169123483110660171540824832120199628742119907563404534235845104550119720478238772744022468644528588038544021055823681983816929338110954725717885124315564028937923741146188098172583990909298264542136724995122643560022673678940799106232034882277709162765339353557067852615113176122188264070448058641112362247561852713082163887575653296823621703323836364529528075298645336739284939622707421015202909313616603318511260571347705663050499931344439630403066385674007364588626910809348394206624179756950528433659944345943200523169259914331882479408932993521223558222444117985445415825441458794371506070939660717349620295386506344237170667148035839268175597702088197011953129439143952566326826762005353618328958965177182004408056555265940183397208213967877009056434643219318797132940601658939292073655457597876331752593718785945098178815944734294453022630112222201190550607920100427027702791602638702918927230541301225137504057322642502299725025686255191202087650708162180793803013455118754836706210952250606068081135823079343531918488762605927622562486268412010398985827706281764847332594334030475082709118457639686337009362257906738950114001724688508568911399610041541450852948291182113792881795100202438083591394280318472244121220775812113750191644198146526271482122120957061190470434093517119390273322697694358542246846818258881354042190077622933645966404343300626253972827783203651630361435712956609107779837227860483950380576203725787408285239998405812914049256734440441913308646277944662607320513443764677939123199468644187192948210452487613895068508516239432951138689182122746672821530279640769818913913328054324184306825235642279172089861740101129014213004358082254035421976732245702064122851424610952785581254887173323200359971905495390730933083036041684895341665263444951577720036216618487229087671442264184686404880083804339527236067690376452483134387178279374491867085356518238063748449686734974979263622489896044287541612060169853906525400877864200396519391017979417436374683099886912159098526745338257518524521696440681769703887347849680348752283804850392007962430394338475873266137142388760668482796957827154703787617703449459822642102970322338417760568880033775694351742264707819388063335856811850533715458100780525800241202699228824806798549543981647885540538144832308546412440003281067050940159302130288809365921227304195332627331027884559976516147436929375879492438131451086281251937356763480465500784363341441460428911742286582115285881719901071030111420746340086524936966338790440379085747171048970280135973784591051267416436983770381495108385345053433844228289844973124015789649740445703962297205659889551062253443527834802299603957936274399961203218541914653701063794813803784199186320984442288067679310998595775836889671555853775470339070943414274746539179209304651827626801299227407039165912511481978578366632821240770339974299742396493858130647298290297576892589029013395388225387959085097346543350152424216101242253450234109248813122590147450837070612082533150960474667915115694205473495812099727257140625683018127461905572121374996717168031454840597701385314491192139726696265803441926444419637344091493944710357222785100130430470844151972918384961237029463276092102923527276159836077480881088986827995647619846854295405689279489637180927236958719221060779471216276736836735225202656126299061311033033778015732682718497528181843253602947888186269434832140173598704274470928276762337071128139373308179035975512943083656206481073172537880030007816433277756257930991039817463322454890171631948797222448476372779676785177222335595688459000872374960987520673735096110005595753199244435083918170915294377244376642196305992338067838610964761226911324623111308150195768267693366382509650545188187532186471412531042758854314548528298581951931604765770739933960782007181506692139543621740913172829533778294418677646012722076587345073580818319302705425038989273067645237265457450440835802589275268984394641221915936640816817100092050042221093962262143949681237010456200176221228576444754566238298277015914992547836912041474675406387930286721499909210213202530398674067458294108626652395746139016153163538025486454131422708614354040146144714926058259509430515625343791725648290942226082468200459755782278604678189069992289724232411461848440198853461402998695314874056061392046626797115087314503553964422332231324506012373884823140346648072523189306580046289826666922635411305289876481127185926040946304388638245678503125279343886986168733413423083411155603270889755680404065765138791495020780345564817773699990893122108245495119574380521960171124683488010924461323862690044166616459259855242281211054003432790038032217577546035297866049265499351286297126541357825222081441153391896728180428759068541026792165693862335489342034280180739517442333527466427445634771403633473302107037449477384362152085536996960037094685612264182306989961378601302973167325428295237728387248985378595938160452108696961898167658023579893313568890229238075116133672630531515612544533326442627452222186740923059022584228548110564945170193658355596342548638952775854750979909397182069017582354533496435598733897272956978165949625994547614164981679754851611098954838667683078296945358023068454762635485991097517465017340575653900986805095536317543022240639191679900377921671843853598806742908429851207201891888857069973309666618400711841339904133352949096164777500852146804028812028171175632387210887701230602122710297041451126590156469981450266620117218142971220917694092386814241250439138929060116695021982556450796111207821270104562178771824229422558433221530699600007404290833361843875933934719913855538060900020479359434285434419025051303961710585662999717037110033673701836077969672611209979436283107042064589751049931140799314977985538274684509319780649286056304437036624921498617909286413152266724358270739046477492950526563552271994129120376836881828527483391826087851939633132844704126476206452393979791418834960326227194449958294765487486225976993809471510843004121085139214354557099922378855873225412976531757645198739007836476307053908506792908940420432914452616666473222557364034532989542931214075913506755099370903436861268892222642411788420359040076720982758708029530468638731164807807008294483267680668942082018232521958140698383919661423158923022898145156203622831126076599142762722103793030628144330817326137218729647197877641814770125883081641936066813154058210995188103906218657294096451237248592993152143320723468741556392464473550291558487969278432074777226576079805013719018216376281180058901807428674138134078329829979912575430246725469339482730595188068928558167706807375497345448457716481709622676329530133001382381762619969958107031710959107568535704986733211240726275810711121248413457254144295901452819667875353673964614573414607255442830728336925900137181619646044322212009782659255313965998971413894228876891445332999509646478798140654298597217597250002942061360910316361515205536195594739986214593582256345371547581657212834239152953490970694732421205093697908237633988640706863207597525493189700733776916800167122100331439052966343721393424161827934319556454283061442875684443061510673855516875320382453768920484512113469018958687801104417795011920909107922761599009916493590056908277110181458076895926462833936106770249523157130783063338850938730656062202399839881947780401583311123993048086641944127635286650474296583881095931065988754732987479719461606957381082129009107610049675621911762130196557137999201302782247768650655586912215649239299790184716264941735846886176435911029585959706149461975644171721904398603994669677392272090630747378816037047693908945694378554991991252390244577875521781801235588111933815977390790365522139328746593511089320819948574565268580281478364760490808273842158916395751473686642378977036584522560783228122778933755273164868992923770641519725550660336222394742732901763467332825183433982816103585337255256177303035781884512295362475931022813939263790944287945129069325999388453147935138630469108630683792666929341000334995054679511632556116808182080856051594001134785120017272023832384355450896549611868091841206472391267134235892275859913023586522467669250867718332357392846375798163260723708989644165303581428501255436921038748285729892952696635445253362275646800219696885823254024894691686638336997610489772905186729133150563988930147829318549227275223636852597460708026492614191603861051334817358418119770961714759054301636148773608426085125027444444688885591890225688636550669169656508651951568070482652806664676382001600904894957006412461367828390698340439151155178881568891722091218315187183751579499697868074324569988069452176129447522342020811136144973525464283576104133991956046430874964109110010003499096798247677439663203503113193044384707019582345114746382047701034848349671668931655973576119860341699932518579097506883806147801479277344291833552415783896466664729910041248726436375891760218943541982795818804574622949280497133543519946604826599470598499363160029891006532298311581791553204430025308259650964014337472731400356728511405357577646438883340663202316336277357942223622863884648795490642060966881170287521484516383292644581527643196087288495298894467845229333735818670160733453418261617851923780812434920280642317318019136544780929224769190724862841731631866219699116631169036419013494421865872734239946206641537069785636431765085080172215412070484174726648322323967888139304137081918484257041787939746859961695970024785089875528903764902866338464235604605080176598596112485089233753116242998869133400340496517432769845552977957189140207504040864061022862948355553676114553354355943689962994250199245656925608882772336438498870462255907159120408562873230911703659867032792952386900409903111298432749932755639739171837760159134620732550196443283830070922357583360891590484591559075707295821218902992555833058366938464584298556438410540187996662367685949433822783023270471785321593112736461509245372685942476504075390401001090937992990378891038157888061269847011030272155405072821018024974727081011924745617762045073520504025965288534223356408197379200456077459873416787982502810621620120978799525560571093981181108359329704955952568423532401527273989718787780387534529892436042919857230711816689775358506368310969815197582249435608817271555727978131533741636675951428064561583351173013306946098458333543787560488974492577757670606552101887267941742648310428599484832806025773618053254654652691141194778095657634256412822566406586450632207608603737798286432162961092635084603574532052148182127510430055773712470283271176962564653816002467737734805578751402824738355920323802170507680092314671147263837541324137238821307772943174898819441288519330089270274618528515732167976425255284864356793193085003900120752595496203593552921456939713388575828268725321086711235402726346570394421442215149904697597885211220098436602105852707795142107623456146316728608266589031861513422581231176317343417339807722260217653489930194258053019256836811096189159056132447313396658882923684378886371386458827281143129784522545376666855785452815693666979599376044965257680576542656130224956973716271523310929697927978540855820950309409140446619632615557157264486283658110958942139512927950108126400954847216025168217683414224562107345228263042809151801717661505939183322642535306250685218282062304217889101572858339780123970638102276510011111809040860163402231788467147422759819681807781463666777389711409381917913750301558675579251181402350295094564176748781470038963423932968354208224758608321710683817179895811916601054602495658858325422152091363670760471611589336001758516266556303253453602069385668729289409918882344745843021136458228994201122437789711053873236594895738947743814867450327229779298898136765309150672245926595134876528702190492157445411116465984102549941513020019176106147514530618649589486253394963124720333607448035147601114797912529185839670123545559966447471917459773646500626515506250067479715369583635638451011375481150432833025203419076056932582745283305354098150576560965830704451196638211639182301744889202376042822126932161153949569207059575982904127255282627160661397159367214018420928807688855149789476909032801357682462427519609215128831094344047691855609619727830622300523624869706164022597561620020350447173721019015651688948117303405392342525846891551677644891513711999399015085426300728597191187511742101817041422586532463347335642974278544551986590189615097822296693444840437481260135446584407085708159986039758738564507513281850292566665775883169125629500706591910749173608269057001816104864184206830338092230357959274540603173827446883976697464466137914163583800629507410493419754809844352815568800324556263045320807445134153337680474922066262960979530550130094645869832401277348146482806518679281944622744443226675501865771580699754927396645536797277472231280985662288806066094705106766445056737104821596388368182799677676689450682751306846367508732581251628203349874241660465868288860988083686398083340947845422311333308756816727572672661429387808606930101219749476043587915019006778203453190315798814220221178536818249724999568280651319527207331977289272641583344906780996335853502222641924597117430622588176094277698303012551445688521862074628410297873957163875638552379136969249007711703458553815184979666446689283312908718335021150549443259884930079099520837350476314422762207113716162369685042551422484358190196836480827590072807396956991197020577216377915429316709197545336252549113668110727449689110626803875158559238729861034456665242528404552214965965644412900466518306684977683350257973796099891305919014375362383888012118423373077745781352750160862163463751344466622016302956210525627210026163862832912926400797051660397597426228257959365436272953295775341646157141890911227318896193680528209240700022321540538128263246713108662840185862663181100935260545407258971380547506804887106000520163542846650999001028628785654956170089548453235735718014175378889518381742129187587969690175901873341363961730927240718218096853626089662239145872554080367539532327041104802815988460945262527926117823377050741212669300783219752177389148281240584760178204623594037016220489861291040218360842207503384750870289588986635405072207990860671892086796115832212842549692270602243010375894165588118532323403045684077201698849486210319632190813257742220276905039964313228193815806517999276489833380592665061123241296901803183093295944971104134227276659590829453114183095592248976855478710659258100714799954805041434660531607538465363967829233824687501819756090026173203111167975744762417260828787754946706991200679388973479525077010274312774014233047786399176666851292955989301130226029656931411581066318811443149667138039882473708937815084868550645092748453459617179214606263959460472624477955513841165801419740666564135754484361090912301224502373995902500086978377814609849559884021488942034899643354005628778456714714069652866285827418139414998608881417243712438570023332019019401282132911133785105968350172208565738882058250607650756538002509169004033378812420029357319459676557583419735932777706810000542340629465636033623565018832896300548847614647123775814647393867410873632841171548195153279229803915582163013073832754517051528463023762868437188275013692343385282334168545457018213849401241319119278482839462976334095821730744520214886526256226014296545076846143288651688520269714816672829179311228609739417978456488764385396915417194966501406178514053680862784095089207038531994833614408984640663529214995218224578156902089281029778485715357077204101824402458988240029136039054950898375011052534233889640133643249732892225521879853625882582728941121813866519228264181972135806538659091480141180581261942827480744192882949670222967201631699021313651810815967925002273579536260131555109618627579605345552880410296568705385665597212046389467769034652075844670219110001226333984384895723511586827692984126201524825265407950390794886799951888764727843508049320767926522915911144353499273052229391287389599975041187953540333045813918197996959934637104253849714026617252997370364243249565584029656627808735319539653448248105500947870042481624055882272365917754272169543219458753929524408107940944481566587613794655171280829037269736595903454590230500451498070390114370478663267149148707488860888328005987008964021411197182422767121233151740449347430499096467294332429808672466767578588309486775927527669355778218447352224188585729486008186480657464381923950183880053954949724062627301094083201974161894668864456031843004728414416078612341551138074081020093094683957261260930490651260056566441250738526809148485708255136031259130102982016362600992992911905512704865578344828484800904194367912868043277445777975982996320877919322206191800838578224159210860775675936870155524554076537849868274486081296261363346996108042353816520888751198336836606324194408014221108304104896945466877738501646974988440225291808472319146854590541241296923679300783098485251072475251026877243807460898821452703408139789173471749030050486019467094190160218420002484098787543026740751246835934128744665245927322989644315333708831082459556370646178221519795684839692199742966733645430249754002443871426733198783815281809143462567213821384037770934371365695040773950873387559410528182855400023647520454840079015725026699319973496328030426709469765458036840832128522237045670259424445871226970017240956213872167285182879775411001213431908007070946885492310345089272745136783421718544226236685909688127858692484619658294927828075460512712394317154742317903273659420556809789358328422150469445656097226786967425003725198403865041899318446845894691725284503435677256739972075768661652879272204851625071761680643022493842324120510738147756653958447213007453055705423015117999863506942049899965332259474677418664969712121787734607074501677598406804181068231434128809329727806706410689828904471033136152037623763614298774951841305395148466282518488519892095526919196554639714783616743923469138393675121703490617549581560336474007190379867115663755070812339369935160299239961016074348165813174932810445605895259414349789766494025511378041975803668052942458792046096262278870662508125354030476493987497957834897222253141730465380993469684611868409743432811074524581637317012715685065125321873394230173560376297242871241528320596339494661209151998951541047067293483486227071650239519649713777487471449822984823909541834145528600121059265537616620696289308814995079580599909526471500491204060288899220103105057569753183433836201665377721018384731910610861571283788020994148803201977938954949036423080516149860376800265705094369458628370233139424560029314336921479045596040648773182222451092412997400592710288900093090063879585334621329397831911434840300598397352669053128113416919870155524584845323221494628469552014751692234234719764527753179621383210798102846198018051480866730138694120584199032309160736595740800119669195343124599804680784678304422682973045528626822322804491525545363046274073203888921470787622584273284014397152042507829075140254364034350932027076027163453637816886342708185593480853526099439518743109769530937772108429267179993110506993776165451907723392513300359126758550902545422038145763671371979320707293920695471256847327564171111669746282600203529081412258936073547371754386251472450245783109813046391999930223537658115757820734672525618713763703278412162751577815590158676483964341761131457999590027156771785005002836165592246749988908786546674408670254910417448310889959397467381378107456392846539456604429294603884088928244939087244841882352083112617862736368492528594288140516927871458127528795959365605342940636749761729624677289166810161958316775007462378116267040332123108198004394625648693938218202515294495976770582295000691079662307421112171955322729092722728669969479239428379552578823898612265646838138523578872512828761350481821321200396264693489737694683529949433282716116744406451558103698373699900857549168611916878706863280441846714528260096958197733263135758705569145883555381141141154836917819644465073027846837572942040872638836862875292361262008959015817977056767089152874320916829684844198376763446121693354539947104682688222462290260982252763248940616465951726291508484230262159263602165328351014096118964121817766562636234615154465187265420874051868286558951603474504933151534789333369541571862467791513001228060070902974402108776424386427758450474154871620780397556079745657343964805919978089026986416790281369525713513493823918116667742158447993489735376163793133402511549251218304637439234275336873140961334200985701001650538085971189947558309298761747185916450523703955861304999692670778475179587664653723246220089474968463178197960594171944631781488323557108435398101902503697438195063866638352578648666520304275798643533858514710884169194957684772556883715166671458028513833774834276768575712202608140730117140185032257019572816442031402037141637141159022729066486478790602468019116377364775317717718868403016577661540614542183566567762556812952578560829392358060434241046128424911377629868373776357055015030023607349431231132056543539933953356411208000697470092705848130316807926637391849278502944611796429104289416888769253738052283653369077091696921655368290204588485150511681578892424261559884187998815472789356110257651810811248696896142559547586618723168458519870153214551221779620565594194973246349592225293424599659293711947598163302832814213305621730949064885039495007701496751599331417775845340745169300270324776377869621831426540569182502745772106982795982858651039312413062660711601178712113459693314981901313066015389864752790598077391613609568242071610229793354343958374063791722802471283962810789128528700068940570922353384788660047615489502505848488751858080313373443085713354276825329965122089001975676110526587263442143666244786945667943820025609896688946084502730705355574418422880710842946444883083835078675985509245788325200964265553816244136684720855163572038191005099154757181493372923674389271358645734058739869437209179602612949176175955674292666020352998462938453195047303584445133474808948629582641448631841993782033622865166701816526968385947151622838365225788545004234139696962367978037964381396701655619984075461437561079242647350619237578403848025397225888288032952018851719296192746748767419834091741066529131482270842536405385881165516586838128711334450437421726026610633829722700397729106402920883762486975379028389407695859859438843242455350879768111798865922156066357788296364395079735057036961021127899141548210600883717114703324145358024342929519970941686767598076195294402789367557240672462118727131087663974964658142084536993737221641736445906592819988800620641582490148109154525729684956095678803562665487700701682571840446936605748158528783505200240981402363330812155847569075053626724995831815292083481752921768213268821301826626849584451258535232661084459621608540354692360023829728762734281592881608798762056608446171496812996691931609928284915225425299851552062508497909471196267452728166708518095010040593864960448907853396120587219727703826303031398831090351847116972980146733928311187345307886770595989593616336980805322400881099079021452272204635347596092234389303127479287406542405957023684962913410689108859255563469422733542838686152260174155220905125448033078524354745546682156958927500246983106641054159223140941226152443740941138710710571862660252454108663154438306640641129729977134038375847523272065980710304139425843358566312499937934871002526976148177400330971013339091217620674890462541486832499691918543956693270642206720948824607813237130772562229392573635024350574265039552033927684963605277908398001484878927488067819543550078504826017049719736078885456670642882416201292823067261850789492128595883822273086864513913213161055663023952664170884324291411308394384655942923762082640672862109151305323372758812934150823397295710208064497696136998832706448929804792280261777142041378988556397507773521552478045535680866225151894119488460835219624660898650993087317296588716171569721769634131299099620364665596413895867947695233838161813348355080094333363222835296309685569357839535131163656187006836266605834555455031672737761069248206054706231334492438540689932630940484402956779321529184129417216289824399418006107393890769185174369319839987540522894625587117821536344146928245449795904139990750260846869993172993907844497595160519514076004001844710679368700861331810040587063360913625724551463469979464003999875584840065966613390715545081191683971775276114350041320465756618958858390520715894065611179378869952392630461696556816781849701926421908412949132301225454499824659411476672425879214546846291221726274603364436063154326550522392276954052966690392037492055719750024321675666932188790773203873233251663359976800940812313223557370905266004087004755145955376203199322240705072429200982952109698881746033419837989555062102910420239910254498728761554249635168869087262440026682439392375166460777785574908898661177975844012666107047458062442138188178502147958280682573648233664223532159656982845111668278122426729147818872981290774261298735170742143176068431470572121392511418649484496617905081719321532951666270468776133536261138327263131913548480194227809651338289580151099114209509930148171128917652648313325162934133006415178600512079630724344195709781746140953516807079998943586965790369217432953373581757458244295150275967595107709409457048197204451191588012502122957187310410395799912095342455250806408317935459950328733629943044209987967086798637743317639534091046431757031886919638305751462326685940195065163019959619097448586506595479968067378557842616107407426179733214657956453014182558448650839955983842024835115415541396573455124640537174106660178228958696165797862908328570644620537487205836536786861958963598145882678565325052261864576698548090604125049260917530068778346859377726055691842275772214238375812783315291344860073667423291826815414748964955235274034420378793980537682769952974733784138255000248717829137065786946085446535199690735670649646180573566367303054943646843349279930143476436793949993034973940724525435880608929597788745820628004869772398820001314860031756610297050213874948012330607798656724245112324045948495490088202779273499187501313709936216058063140717770296212234318850449747000747196303108445090513246575191798469689097390098382853556342647591054926430306631454881697417790448895388168941424209494797001383851032426329992517239018965175939957431384281887797846172473919731385955864477204717173011042820894324538583516119218299255669261850589607150946456783532892150860744183832405477844371534505340849446134400185129894622385652026989685825118603285407503780000757046522206822619459767096649109948023571599295782581379194518269398143026419908603623877165129248023877463311804205186429245223916511218834385607203820122817431629969649084361306927641890275289194147961324916072610447931649240481553848459776194509690485384714837844125709094572051655453510201894024117359390846768463216845015832566198839943541504773765879265279349234927563700719665410386893962335205278686284339736694364749869181704260165019723724182283616284145124628193364244554958416218617206468107891228204044378898306390432253817243134226982177036422922251960089516168158366016660963650653177587407043596589492613337941846246817721909438877484789847508841760760912495589372105577225559534321200781580470049911527159957618270345353074720083840882573489349563303730069994626028586931591008993431774847419036092508893690765099043471750783244877849979978595463182568746192928618650318782961720476329574571805352551367875592611610857180229070697427459628489175386209361196099077679643944064230313082716395051060038310396248214229333382861119571505901481599655165325007612692315182385748554045400858608695442585485973197482943722515040274561405083220621349403262646798447752413703000106858541139560396224031678194523288109893472963975510224647495179333099116023648653282396484007609831560852090829346464099884031395332424726317275631357702567464875628561459181941703132799449682076569350919554474298919591137887532256174922866495114293491218316865572912410684548558886661275367537378768987174568963545541068372348527393450979749170503240734068887609990339810109803964125144304571794250311654136506303276174883794413522094327590460895360871028770602524304539641010998136605734084510663277901466866932181788376045049361035813722124144374804438781248946049053213775575609157978434249553482304506279286563303360590356705652360342537132529742624122975518159268026292738872054159911165037706218848253114135232313945105872821406093187751241051164426163116136755533129252684574670452416947362528229320998550108702528467924488211792220770619904530638644697924604485305865341690684821210275214920670230813364857179110488610450622883094605958634513004020947720786957845077726671401008602978095338209860239500013164799584766155383061334458997953900532199860929548408554174134729704106057809372451550988373030858197617551502915123794974283697646068524472693293633279646438540037616106413935708855423597480834273267302587971802952982983497275279763549944619391478085392743546284685517100008032718197121120646250082972657107972758921901996517575196581275276435792336884137032193311180564920653529563618284108962571313093101122046983103350270490222561851869303906079967483617588188534941977965008390134803473827581402607281946816789430231558242579052784312078216048516939216097544794310909112953665337227703038346072330899823452523912159994112275628255768022253685337803053743036432225106023147751684113182683737300927848838986696823616910720859857367502084520230468273429723298416207601541089184165118870319859924390579891574797835829845105453060072031662956507121765386807836691760912875693117047879888013077782285811113307988790410513348669011258014689481403262779895642839430653957777150310277028063291905740338381048685624817131286912651440325277317765957762375123252892692975895728593661264411005186605076357762263872555411038834102323782697259932369479933153923613060734515615324041304109818075346284070243041319177748239637432789385616603892973954523111820983768403717618650923821712964173478527747121995446269742020809754243765650316974272562255292549192734172096767869161065743333415430915557029394868812314509061456894757287628727981278671740718215627405736625252091924126227537234938093946934488263433922947874418123947661095794729285014723374963359373388283947685705196290549875932626517446458497348949767833557847582625196721267154114883149991829367100934410575025445315510475966205247398347786240004097385816817438373373606285142451681446607743203747492950736376378987961059413930616746458312959089342306771259498468652187450100307768760122699221499335415000614636853308862257188129693797507591725614499523002778310575716423788932822571975706725597435995628725079041181255530812597105767177233115113005481871454129346672099761709483336501628894047629132696754646476297433582515938353360998256720858974728923732720823314967590147727590181612763815975931226104985342204517333869229370724206522059237693892391193444541253939280100546705386904975106704215283164327491100931536860153109198805838392383276602704265198862886711754258570551849058170497067803153540372754923073618379399643058753924397970417667620617935964445111302853201607142187419443729802223948976696512493655124014071370681023355290367130317642179958903849310013524937365328513684906017433902385486890889994546043628996589143549313657492103528350603101055769343929159934274285526247520181396261866245405472754396024153199133865742584055989100993209637653177851918938492158571921948510598748285114566796689319832419695401788334664789737163481085800798061482005186107647138444450940723136686471891141414068619631857146011133329195535126714997064214270407250040902355321746261203534679516153026747068980290604566627191763215469940386384663080215359336017368223707261652362114301824909478846311793091998258464049849114600429549794196167945770004398849345935478731634296469733602173506416244246007342466099065536123289251518593862053543704084078340855144496607906987972242035642192360875722825312768911093006965583174513269681617051618596557818583901790479798230963523380887209465433159469827763770828076132943472386689775072935649535893596241037916691011979292684632370824138249071446961259710366119887498497327930671816797218825636027779165986204598060479747822924735549499267265402143387870273312618830645288143405491631530749467450687817655484928420696840366306942500329545322696150497183304768077345242151773073239397622939650283721101062660941983362668223940635866817760873233857770448235834755718900337148873846717674827725744234852163700618765894265840388829335356789554770479903935651085924656338259856828569091034363093651539896126232406424231401158397502870245233569497261921847136492742642827352760508091540813118269864657597426059251851480018394548796399398567307017089125512875362578544730204329234728916935799058377177552758226945445266482645489267250489268279996706540101467659369663405255966621894406015757078174075273940574029324853471696570247427731607837085413232019793358299822440416342396866082882407648427711779791541572339056264381612414933153789172524322068099600496377772311967447880818243294205414583262074706736774086464142640976130124360281202027595182031252307516158115905712843047103133192484601151536705605427285120271231274505040706601855932397060648932773836534352746353869831250025301869319540121499553525841451128541224328023881015011476613590688934396636325813756518210744469596953729717160410999951129699020522053599240390630052768228153505979724733034564177836169957446430306931122848778861224230284909750356635834300642881411496522601000363700439447194772483991289550641543804334158948535987146251084173243649477594907540721854843031147773080073583609963382894003341333388068422113502483127760495724781291850672694995674341896902810631519354922974875282926493177206571721267701177162104872525737219327263521945092440982281248177420941958373315236015734008330717514761576958614498636369844175221749205114101996332915176407770946193768734685244239086470313314531250943090978271245044446643382865465931424134203803204059607470622029267754493099456024703215739256247590006808096146187945058916053183460877826360156226123771493967573619200545353982801825448706946238743141547791670722083479489844793466639107903357308942505148642996181885159758226197711319279164826775287681429625671566565408142702093814341800344243032039374507293817865989254451144444900829848385022289905271661212794526733782707143002377297888892601050780778063206658810819960564248737819509711455311276268440785236394975065777071854880138910610097356654785399668930015710635371330950968700691703951873880637057060707152436837974632944663880577112024613831692530428354128947076190693723131929131564901275666124925114999574848604204963976882643322650934478763081192040669616835502417433276113697968333852641538982307494128872286641934723050028078664370439681595424742998807469717703721971059191512575575605747706729469059157378431730289042383145380036267353218185363708491344265493023316357563444206273407824848804199967854771250895959890339462996210548742271788111744136104102558338315518586611885289199385724238776641021790174910254519361949287997162923728570730587356290971983833818575237301860395702599149316967410398655297178157645309610712424486304396054402861158947367384740255463124633762008116717036863690901929407905679716308307059938048000296158603876370721981185955117948899521459438452095900400983872599576740500607317220805456036112721980825754392206532201297658173074558151476361572746523206863591615456780846835629424637697824478684118896750547476625400130829845888023699243826864866432219350803489285406377859166686459686687853032673904064438100577263488423322507765245536859767504754133014536679434282598550666017261024953783296320660277318787690786532375560164649766503141919497089920197463776383573653325277645057898891847005982902313950234109939258661681166047437605520697481792008215657716616567449605338106218512537517583047695773950678705023810049691529365104491967510204632892570480207202170790857345680476819243102638027498805783276465171293011200859101457392990217738441473991435629874214715715978354631387597676665162430133437545371799420050265281670780122885510479982079635689063981765885000885933049671236984615233694520535562420456556552981864630751861555701217588745093488772758639802486556644850420123289699427917802212472318193799387070494655489916538186119335845472509876214805406182580026018044933665140543152230769881711513628291888017976304059001860743566545906313003315250337299593455684149426363865393360354544547550154922440796180244841752751888256569188074998446514535068754016652482486262070137462390591282559170128748783826188118414302953121374966014661550361314901492985286143912465732172468141267673786770832617064440877926440526573615491494246725266461568744066923578885440175229973665203559956325729625125670154067740803099472239513314479210277421571638582407784909929642005854538529230257526642474921957700194828556970830933501633658385164802073484166157214572476384850331605783586659700686717436446189417217053771254462181677733846911821031463418825229008741634187924157414196176276838326281375470916941762740454581450789824912316535202996938309659499701958621859749711729696219920284093851733441235632995901050455789725275170464545413528243670797235462301483234243708269557239035597745636162480960954710416029248009383950895409777357386041860430075642414270282948824264510240240143547216660949592250588680337121832127092201170314665588644478158091525398696909043090591965168613915096179170189256818318704280000949948134687108502276564262316890346085139700404614086602929128583447922758358108683887418590564084969736692590202325053866091087686141998903367913607416121774193752609036136619393924020375364323674145029616403228107192827328752047401859810463793476477581483403699547080265682172200480618040953724784960545849501949853668154792809605387191003403654031508484253617531510940536288672408086684656791910912596003729205709085018177722457590698026561752487307701497229642656660093768865719845831169439659872067780674078869319617873475869677677161081066927645000577646112980893538884662700997162780323174130457128541294902533420153608165675359369160087641087165124431843820721816289169469754585767418106256082021977934792052041172453809481210437349433839925835190905492398105909937430501024118331001894741084787808459540105593290858684459023034721358444903875865999363780040494295444261614957637280448665295855039730835415507950463430596999571750390890370232434789935546076139822389022056814999571301181797644971668152216366152950764777416928011458744733437131823010025069047314918526179665255284441417129217054102486677012934589939488144042334996540348627931223915332706484796902355535949902413944045592057780224722964685476631391806803713162375299914915178099942120100496230909957944947141687830672891096345870000567620136532061065670756942917414437701891574005181208009423600881754698852980203944049915978546350188443674605060476670579590443025226287662418684646648321917734636738628617420023105911121176632514963020794558045029346213942572974885861602403006341102926985488782328364799665251642471371386385910154533101944755021178625666133874245738746667379404122081588329322388851717068419993715179794444603606173956142617935151776210444187161881151122839688165057896260452955126584780450864607190845251461671171577322080225666422255982152511585477942622518316868710823204728789575198573031032966046473818226969820995963437546857605916586585621065359518986318802783017941160893626612200744060729013494588607316474304380743349027121126222212618174227021493956953365656785848106210563934134378374048812553753079808653596637701046917799744660867988769575001652408686296780093482992597291905077578107284910522983423159151875347704295512725043596791364340643449786218823734877001111849948934510731155374327666100948107687599024171522175376418982775388960122498031850074244234287765823771141202143833956144758391041973775746229048212502158287340127855423883380735713152350243103322909774906448196705390832446557073664476879241421228647255079954678732252985139571427571682328794565477340411275391151693275130577065789216508010543495567770491629618927564307438172112973810587335398095593420312538853098411196762749626577014773814355585164043464177821593859098935668019592880978319718568784389795490678417853086184247822247841141502887241218848291496950241010018538489792432545935756658157812795493671808105503245261662189567049922864313210647246543245960366276210240494872588347056397393475061365625915753116730216610814110867244610620227136002552851051067833395425181159149496305601549262883984980237595463531736915274133413150783770556350842533326264612648219563521802112063721237056523562254524507317446270101611641599401571702046815203428156893935976045570026946865251388009685405570956764745234601330560956003510415036682500838497339665969179040453086915726889704019053441778191846150896173303771959854588145400449313259032285625474060746701878311546805453091594266395281174823772450112014602719294918436825405270632307571179957530099948232143946895541726506564752886928935043928995770054153368214017387917524867950034074563508551199472413823280411544184127551574751970762552218287244282019956454621196620083353234803690038656188482744415354088542516105180065495782921811151374080699226181284175306011105361651829188438048961206095098966694067130383819388725708364894681541187595880427436844055324128959312131429528765309848888305554131408003916238929614394920042189120765987626722522819526165348741725483731402474183101136460328354921677804968284845434347503518900958788182968781440845125115706308803816581217796182961651270003716257298832464084884193457211896383502246847552188902026280126556354618288184173953402600774499869358486741149649351475242171575161402484201867812628512235918829581771884428992243217608962477652757019745418710719308091753096003214769525387851170761292386297281940280563782515457225988866495640005157921677303307986294646083829210351614068795096178416819956518598984279449446707490021415379910535292817561276658861811078991276227697249004856558986754346051929504774034275386835165232245085800376275834023897009830880441554022776604222284725320629414197389101572353316884714640534464219226612399085345900351921790029202124936764366269903316501617512107138062787827829730342579376722992907237960305980378653053059218672033281975758953263374712622276322985274420974880901045481185847721090472775455889589618863239048091008030925284105699699970699493425161434107077278889285145057844517576122259543495223092360386121823471898395342408033837958049303734734748878910045586760929367393561237962453687472787460469680648724888901002545439885344517540606096813242596721971565219392058721800870066181880806658221386764131242355756984083624901151093419658737815652987143368375628373502389525317644470544962139369166124833904353161126668736042756281495725198108386985450632751607074011531481894437078982414086997185107573445066262278160950345314742719990257826354170346309261003035935329343314417870738536843122369739648942335741610731019133384716448233012819859624699663233047112066846608689625377882479739971992958697054069398098292984748468150540435717233267318128421805061977791220618925289532503772263077525056529076851612425518104495949494444115224387499108445821901075510475954897709202708734467184119282913436360988676535836036846702578769421811036806163272875110787150208483166246367796777205041106095310226260391245877701218548273938775282565409981731728712040819608746361496536111704682748754659344767185758188237782404291412175998930163400973733211951936307995044973909302836054572995288945539215233146907011293523280385901993421177236835369623815496384871069159486913743537303805053485853846196596370578255190949886180334238429140249880267738538240130592588393273059857340783905463440238216686015929186655633247418701759511604831031381276297216331435859341674484270393522950054584481393336824189099505933021978889981571048971821018013266155992417394174617314205880798276915576075862071468215030268009430950122743144066235061744087184877801393110751416872055235121224474737872228572070960723497849782866594701508617876842369881949073002304266956512841999229323354767033239428742929986986531455058181434100364846355158872404289831721440508437527089006753293344250741986942524480011694496076923732396085175875841051642710680008174576834286530512136277611440102758990291154918055254952229790467119382966066111641590723654619714731157827249584924024193852818045008576188183888311742604942279116631913205388332237175970927834563650962227700220136717966976726101282235597207295317077797835233791924520959177022524021489921998211625093889357609602618496188263494073988890668604168402995500843152509833710582107540123168241346889523156249696137054112880877374960022051460226368319608562255252642195625649701012787638380407162178426892444346762155497415876375764829591351225444091455655569135592477702882861909236845170111788201152941352616016084178180319492591227317005851282603688334548447345686218892296216705287697521592343188038589803567131831007305526633464136527820274442233548717105112706963157760428538150862805010179140675528955961880559554425532524427258253819755549620246452924969555471329535282401839989093341740768953737719698072510778046721886948187071085559544386428851046674658139651101611632477076566402279232045715429177571200473997522764778320271277972441674558068372216047478269955914386377215450952949609151923952540547721537805623969169861096584789779472462427310400224801947977306983347743249937461660839646034853562728663141510715366298669427245508487131169434732941901159477259364910392376587787674638636830135464797661315008237333130095593497026259167473310676776978517955361784567316908473730486325853720136291315754237979248369281330400897791187678896759722005138083807915535052139626131662266555674604648999473359539087881711573081069577010175892002605570421422642396167820881635555529845146468932486392216307021546979290004845264944557029910769458113638515504050997955746995385062184568165786826663894009421394429341434911020086770726151891021157012470203754173892367741486504803110144002263272055205573306855893800193656535952566738635083236512915637660102966980428997695556208637874473068308543810448501171868317324828741485224031203965491460931462679431728798185765711547824491506003367326373871479903983272671410263801693613764046816116310136866096321156031192373445360884469310826406206771424861033044997489560290296922547797595618674233843853901578953621217086907996064923189957423128627320355261869098582327388311447013439309060259175471747105423342724684684127334028695016684661995975966261208967764176588491169665132314787341991308496079575410843467901927729313729813915669757400363991161265213609951466393939004841343057594715511346337373212455666530492225639062700835657401529120457341637731792337944135930517966799718200721167368783483645952543339477338738167450310656160308676642766397757994943413243016426572938185159400109375546280685965885878797866297797324226883374619032412201723086998613313385302160707044333121073745829556382854112217992614733381957465349493602140898283467750748239773462463778692435423588366762118423629396021929618421226188069225064809168108184028193694368583944203338025665727552797379392808729559599562404033558947754188717207553353668259407014639456001938057942177823237373758764595982657923842761523187108698588186221411244100341864605995133645679472698850274155511827648636098398430590026040074895927597872723962708535905024583654049423450022686807621677243925357409339971291907024211720363003861220746368382263019921051196841378914530058967503307908016959294556413234679994008458258104791816791904311150706748880897292942829755687934980743409461566002067016854744193138326784940797867030863291659065716540143856799280120266368471966383597460266626730593004761367533522617608240791415787805549133884408156830747507915824088539618330368694560638174780713537579483789496993380348863576625118428487052412253106929106047264367511696402072511375811120819409199213984509232286901437787165693844854836237105485621161464163871483934619958422911893128569224334918219680662430034532535398124043121428682506995550977454892430601671259161187828974205711950651198462794108974411024030480038520546432490690644758752970154992442438954662544517626765247883463347526329482504292330685838199302050860776713690913461260098304922638804514669863154348991700208509893890213742014587784352736474386469301466353224321971563055762703312554062778183403918084761251797233155669385181099670827941544034903689105562295556988372167420293648177457798200234345943108876162915068820314179165154054599074944658203634950233850084413530707711482603801510775282744937605919704118799447189385402001167859890205574562449200086221491790840491168632398188979771398270054046424733355252361960297458487493050711766283716759451270355634766305597565358868936385442824148838444494655228314404016706549491136056279965104871340707983407882231611956192550146494135075593413742718542684760398222280030652186171392366592834429198970048204755859925309504538482497112550684777797690942290567752887661937124411101279425517841409672382739431930615798158080149200848672614665382816138212697011552108513043998043687064068967116459245552167085392162698188308844394529589886974202864099843532248604602317333987795922720295997720043899282548726524270838682756149759554206614109654204373107987614137644169836333853659966923388018007901399455709376464350317209975731494260566479445745438833743384357039003412783681485256267927812599434219343492768840646918602528385816335648536777921143584634658414507981631930039512702143318705637215045610970887274972255387747531986213344034593645114287038236558909419061194503720603110657936562534521344612619634090089622024705353321789244545202520528671926531912043612463479501335175852337141743949081138857903715643584263844294298854607411506406787361932181739664194868153005709308838341763056715067805099249134224527000995867385252543632831687884265248838949311167995595269327079196712788872583031930888044863148027374040375839113672309364433469331126833714629612068317132966165687619772827901373067392222149932058885986488378828420760832291419954359709926645442171628963368663086877114817022954545205393855332586442909682956189353108985302022497763476084516244035742126121607514048629666628486193086563734779712983662336407216268651004124914460817216878507004358288529679913407569859837160906558153421599156371605807630591010604223040110673573782327136002473830789375954702280361882452480662720382257202923118273457412865320259947012250052398253074392502744957048057241121924483281985133514205384013612128391455938609720219790662119692995267145473845291125017534637803772924109033571819171882914585758357790546586035243920837668652963176720037926174172110921549677979777413365502584141066095272280003187540203057361837037975249629662830605210987836527775428662713970403739612353507186700877932663576238088084159684847852396779927011540414258922118326749836945602903549388320826220935041018187250988227346136396876326684372487068629896604469797087383531374511268337606936704175427889756964632501783120782310236126799754048783321023908142025307579040134081083688180403696740269036715634466862558323289012121849022097575473509179508110096218265624273371181612782129058897370032705942204955248694787667521690595988582027003309815494095086194921818109961588929946970489916459622327070050235492952127078183693246334640066078403033541764034437079831031379745717567920337251175673054625514680457500657944931402009975711662733752707382171331473914355107298290335531491105432015968441296456061518073225838792827825132885647430407401826835938948797290993262964341511928840043044381347335517962272379607807513302923512250565513901846989174405949978061620008300157227143616988366880924296963985945477073621144033945255456056285324816259384049362923980807773016109040056341032915533057729383537094550297297123947918577696340546229521744841488417203834267834454435726255607467399406608749321991084536966006944051446411045906877139721097240409899041345503390940948547654234509971859859611257896006679164038796042132125059302132899774695607748465595657825858464573438651837693468254423245685383743971432917758816358999502990985758936875876952643997011159031121521790872215356545477903775787656481560669217439156650527214424326678491890958936926257119381993325753156345734441397371386546027952595153626482209623863047767835436336942264731659840895081874258960781883516564596628025945335127251201450866113407520048180868106299078681224440200302142519363938662442448798894660186106057016750365605281909806620718182934875754493902699813297958440160377078210831966339077325317069611087657923858340920614856631935295054640675378226822017874541210303876202713844985256972807246147437947119877747504967596323808175422075626785409040842565978107779841850040407361314079207537968659641624644100495172541814626649016375727265925127357068376038895045214418488428118837282607991909070275538400400762123688466977480889148220622260818027968149688785816936248668944767442667348892217098686275387157934139774685513549593588024545460308098530112158638837584592939200696321403744664078068613161442055929123474069078959143380944248130154144496070026250354625798472580641330807977409517809094032486357573754754774467617891815605230396492187179396640644803383407613734334109946962314761420874699400141329986824569212664486087900867813407212355193295346341061814399332802348778104382949027078808621385755893093320005970636445274302996070736594258914814856222385389151611046570170613885973006492209447043915314515644227273095747610873715799408911248542491510540677376512059600479709566413866811922062442775511273381662538584167706348336309865302454688543935617941138883514947534445300872317579634039556545609149505197831495333632132288100634180078255112505452201772760962862820658572505149118368425663565298938319316047390832747444475000288300347289362743784337877250601606047859612065056145622992257574088732943379070463583644362995698930080929878926092405245657139820020314856895660207647921000242376082609003707583174454939918467634834264293466165289176699046867227836911517202578870403428633637282665103999842150603294842846738371277830496359642420493566672938646223876587559803481742317036020071178985763742895361211836130082306066028931205575816924832704763605761041174005230822707522597129019602972255563130987342384414748074433797774144629677572847083112897333519523779474866948104624640232861241149636363059455093353502113676851654443464386496144866386338155741561690492968260188841857149716280084418331598097629135744328164017757760640531544170297412157809070011258640309011510525680247314283688382838915363600868903231450237005986584518711355036286424191453905340211466085986979365032953834041223275857902736193806360405928923267246768257345363304959712982691377091869928660842520097365072268702648467304024786568913110579771615361575311865549453984290507688177560359800252758495443236927926725919990905419753389467687474089436010931465831592221581783680996809519671626331390566892515841727101104570792866066501803674651222213201250986609299118753704351336396077310324650954530383732737221049697737239763918128437739913114047658468677614949899506667358954975132370839793680683496932768876159567494979684342151896960123056294658614231366059005442170600353881118591925179584905905530970193463677096791198092720194865765802044988722812205991089496227744432819903121337713370425759197894329314840712857643055515932059409286564482486861365538768586053473720663744252382955301138787404663126582552809346632434549649026740185676333011098941374349917367670989850638971141907851973083026631873793906782836181775122936603519854928033266649052600850831290023906387742830568731519788460509183810867911018761590103848356510641023250717662163553581053028919165146274824150288725609282426598189392219507581026170312618517708389116468937324235753481666511920670541648837424418395971228213638503361086386373908695064847668559721092376824601878539900632254350370336707802730121756808577292556576665881924199747001137761114006488332318847576340729718798196969694651736537298281493047104846511036777619374336822897403135267278946113973430521384655728860212317615168313393315999863417037431083050113275610596747636592707054783789662532102060348603710226156144081984433597330342553596713940217197716547861251069977912352547479545732159756290976055848915178547525137363197548687844292676889827492842434939204587867628169939136071816205012240521133396644529203166306838570740790236556447612605603335811052580499352107775326819081237362916065704406837961941190262188719085379185231180485736073076037496665562714995285035168996264500220648848506901432352987309597144837738753462576644341304641161456180384339914973698479053810899913757050551793624228773639744923825409839585506880790363039997346653143156648134823591240753828605638516607101341157953766050464573813806581497385244628358628128854759554591256689982404250292314438321213260276143954738977703604225556788132927487205635936073616800746412061383673813102805774988635934501891246836080082325989364333993919678426657661300844362082463776761533421270480122701559534063124832804977709152954996445272266815621501344115284951337673161667961227391779751704505770688551577917772932456159991071571839003975326459516621509449059876971859365291184890904996853506248176982783485849738759393598177021034018667438643371295386452809415269307588516011046012917654592149196043722417213826864733617219871478144956986581799624722984755238436265111539286608267259988249120353893867893320387274919364911398724251449341076109695931501900480068557065382057812979992053321084799486668926200594790926222684266480061341202784397602882550168485268063634666676464081480514619842909143576400159142086018697659942090840770375671925189337868558808150870791448760619422452702235802924975937630468282547416694050550078943714913726735595563902633514501326677923114252304584363797637206363625723987039308335538225814426944161555272480064774484422210789396874260093861037772966207830647390775498168978032381734066185983308390988190881335513776260122128500815348104418850005376739282196177912287349841849925284800264607866854286208548198729145029068256577768629463885279521169276569693334692782713655380157969899367202688967341637460782549069972219825492110944979731942614136457301018061827665036645682002409651722650267295950725758143063775317882327668228896409493767917985730818518946499094058683878952231715823813357623956340654653822353975990593146985435167763222937494481110288390231470431016106128978033664726533056071963122380292637985592612395695637945676650746753046864033728176219089131361041605199245774674522435779981397432872389024446608473261456000009780722274744383311585782854534136623105833082105131534509996903511743037330932127513376025694732392746392907643035068471812912768085501001156435406424412804302107917209489139219896233305534021479322657540658591782110139366977135556446896625996922539533569826880392059066675819024605211209956274724831776335485082703741734525217793499666933306795303967031036858097936273876023128374772318246079544313582863850531471874872731261216230319958371540593515145291065328223089095270625173620418050674577184960454727353360806535350590415630337210267078246223702302914976819548354233406055735969409470014077626860639543310793308069823091504360592637171459090822690620087491845182508535356009255407238832439047208343572043565851366437383195232184622391055439064499933759935874440708561695618740056178314226381740451484446287892269613447417534701767429421871116887002125779749511370528525955459330497771057220704910546836543824576377427582353025868648965565326307424330344056711048583393942226167414478002248732326711882071709621146199150213733826287106241843111801010830920845343804547573560195457009939930465386549126777157027155558214789078505895621683295690072003364254951499909729300095594102622513364457003550337346665536109594379635580962569632131608225707882279736479622099849194755263357995096560533855276616659443833775075060327029799477425342879759654617918689866428883544888672521096994928157737563532002626614445697587698407749395638136414747172101153003608294079617593622293576133044193979110241237798132137139126723914554097435610376554203274083723846158475809259586301988186459598428709192930467931941014654760990933145918387425749272048005367754863815468887814493256935289246481463665685502008443292826088254630893043048884181618754213735929239858585306551038172341374195996320460441110341152870328713642390402083589196695629561071823408388589023445081107761235459541476469710322190752588721484210260996146978323671965960966730810125459430038188461833473798996398340662493708857075829240331007261544264907134601626123325779873981745795454369447954529964574462690066924707832328314571093317772146689831810939932886954185088127894583120858442195216456742751578173330192112872130456233651827541190189800023202696908074754805365971569036776487044452219506149084447184601472764052431607333029413701985677902239875340141786525875772830398682432312922915410275254634679171478061843986225104080437395334129070672073261578710294368605314680360531038649766817786007448819658471579438493315502365654722361353522592570359667028369546947863939922904511925718894809967987035308003714042493464442653015175776275038864815476592282255344562674313396806895326498405403459046962942933821936153202598647692139461357709426057736272870285879633037559963574638827369160915573629871267047405595232226103440151438951202049637932600265635849429826605147559839685573991797538764113539412457363912813036023235140098527952931121308639051488577767372997976167807534160918504074799185165831965188784789971334143650223586225820281735520937147101796515204840298225099485426331266440194441952706533994736334006853024661969760267074263552766467942306597260595797359171573756962144786887201983490000816961273702114333107877664289110905986221546931318227884937469894866737777729133421845975726322858155015355286172830494151532919427200059426090378858854884357620232655985600521758975845451130047296685435900224116111918972642764260629777050008221272864100917773269796791842100240333348176654483418787229448632284805279384376372819811204232209039933801949198306835336008928764995064561488045044947448596018340788376910975348822360337480086118775582786956394553122571171196374634114163106622631470733257619317127600989535682524837663805816854474965636644443524370284901616462493581305829217064455649475858826032454784992632590748499716861889612533764506343758033078027062828244128600756628295578953644895228834311251572625329631980393107289120132785160009375566974947516696044610570327741605787920260950760159652806812812712379997562276047763636465662447946809164711077029188990799442143181858298632024625332554860839810296042979956290147824139571418437930722162577016541142521772595112471194197589448306382947248118147990741061932680815786269333675644299951488244457059372009003335395659710032867260527889930042640527859234762763694799435876232077885588157458469728672221094245788577271487963574140817211846456012433625114660761004987005178380172152123317252028014535096032511075707150204672119591884426246642995895694156862183212848425120420437423278564088155974238011743774169971864834243522782667911497599630921673887536509882126507317586160875868624645839058264900642289925229806336444380001751244108333684239253148589794586881385157954405240079532121756411589322942480146499093013630932907898974805377076769819712427870199315421911043639573107769338068856212211811683822754123350207725656715220592963164663052744436374293290225439332452606785001363623314313609328879290750292612721570130250028099262175477577145820070309822675605062585913246001365173730492536993156967400667670379096895269499375296546007375769193513676121887942039757612157728561286559480130692988915238936611745175600639259137308673929853440356439931467468022063188591760951692993564342810819486248954443316908486239900483141632308910362913494468575607273463635612834692213070215078232529532305523238882657633445075138997653426636482694596821025545989102655512361187678853448283784705403402195953007782868514818320777164839631613524029646247763471949860905661028449528839152110508361383806568396131536400312666789941640848194607586462133304205112591345837898625534841243970110441823967060265862509448699690384713208166498475657132145311906807474152495915854629574224839150322373292210609390481836886324902045244882944601704126911595998140121984096115477571241818167462926638419090490543794193091982611278113456962071489985887599400173861388214341963407453372656972544679476571209855569222511425742520825722828636868016660283996126128552862567583079300151092936823820574255195548354035482436112222875360441526107043350466569400683461447641525104189995856446463065757932486900401890420372867542602676859638585383470854262495340455924809329986415012389308535164770426399003896874623324138457947911428776949585210280223428723872776144193374977702240777042139677224613697797043776410870967489528174536677637795316264281305210316970226757049695746064268448102169185079439728842477808588480635533385609299749022694178381841412306483417826489834673193678665751809930732307442984223011447856735929664828336720438607358433029505630024457453598755793930907973277335069559019304566747381603364510003259616370793785219578910218892696421415603036064684699363396719350051827763508876645921797680924984115030378479925578419307222630181084902182817238502701721798534238318847561032452972048028337696106604443531520232093030634648156322915637707591052437495261886775461611198012705031290933428295557327717742051525489405932833100152371883816830107509843789810990008747669216069705611359026722348890617172237632316799182124734225892429598178859747613491001352667913591279467571800172701957168499211866047173932211690386789540447223072170427303057517727715062731418987640064360352260720949322723016112645281180466378221060496962652937315029330302471171147902191627219039116743814093290683254879923171191867444266812019348101748201854736818341557245110491229198870454189130645651197931256661452461045801415564134982653138656203066426888393205405641677345115755413291461338980885039727027718431341770275001171338327461063324961934028418759006044426379526168438352298501357792874131224695397175603724358482062255840812851129871535827622816129564560993405254097905173116704514448866880640213402087766536042040633721533787771615013888158551845748479053858940722135900374505888823797980396783972851742003812412281268132211911827559240118560891820832756970125842905000526625232866905771209619575510769372079478900120667230346591912754860223258126401536956756303451532876673672681074342820674560853715158981335823139374158633240888518278263834955813622506096498375527819625303511614454819386332101627343546457264120593436929071186370035433782956963509078154019930816059342517380330039886984958320955543549829248724431221315766498079900428645922124472294060201425580447754828037600886427804961886444823563736705700532051251338549372970907126513443743281107808357927862028956075730762991973135365968089621964630071192393527872025795149657412509497144319482566036147446741158543351869926558301578786489326897806248580169597043437562864451704176106157772649549769232350639728745687787122058949369640008888150478942204378107623296701616408329489225530303578437592137914265583188662302836663499143459448191433632612969416729608667558011659015182792693017013510088114694482687725697744859952699281139726810703005815663401310997380554876759535373345337322552397042809952073471888617769539102081734553592352855928411951542860245504378006654453142473452140104997067095394942792445330752901946060106045962451573443551503576655340952235611180267114361737368172431480708180685933958086280280531328352978373769497946917173451000939314444550761235972815308849745775537123462743649539230285466557993406663632235027500903906450407313443560304912254259198349974174891190836041783241409601592634847950457048926937012728190713914074291941507220540861386890295874883363831612631243833327726160660292442067610379660523155930185633422666885041446204000210840255228077180455327978976859584443905879362810128963197923124067627913327673118057274798881321421135757912127059586161923571244456831170530855924705153781370174586496890006390745028974307095276381843597951561314901598742508788577508179992267710503034365330798133502694590297297396069526359827928213267429015930586557258186739884891496452528381225639139560531486166278302896615706782743877686278054859054812180725944780360609535953688868196200892506322819141023421749756054991787312251841164960185072925445088447470036855528097890229212610363549514798414101907219609164237937695076726737649332536994959893185782325809224996905665033645644008755130683675630944117906450971818761124475553593464861880083168961344529402881807136474428594880736420579525493662014908902167469385036561361538139496447904711869902302153197890604879507949459893356848306875701048440075390821164439556209908332244651429025532613626408723804221984525108363335941146924861750642559429763666823290853308355196313427591402643200217351491718857594806902974656831972615066058254193124466915681622561102516205417914767244397468000646389010175605326349712500999830300482703718932131866278521500261118980414800247723406918430100610344479989286360409975521500472696187063137244501818595657997292321379065711679581974808161980944030069120913758547690957409335037321573255097557777502406146140831914767071538004324400333665983664779664909245911818613642313199161547071249876030067690845931512860994605345621036084786870490829225125372109685382125197900111255452665728841490413968908949101579248725070592730509097262332148438793739278678231307163591152068435759911707535659668249406951525380103717086431928937070061334864784640360230444116030192124824532700636971459420869604338701166473460636412933352861759553477481249134829373371406465671407450520133697947867753266224699016490580508751811511154540861568494502615561101934348511333001729317650200136166904309348191096895016068167794664416922717754511675681037848032071780406527788653683362651880197283427441867780984558793342944715685243193181577016314393915226429973641621179515998619621612165318826877263971207116062271987668326903379977845037388997095050708799859867897908280974015346666563188938972356044512520272884198235051119135745331334466566431742027348417765689638396212037321994636782988675097094126193726913493719926597847989452434587468123000022726687446006454434603910740679489419420898879066320774396440608346288015733441098236095483500495557134651527432076098407374627600932471706592496488114859171455165365172936943331941279134216397785485762826144200706360388263478555945214343038464970611171592075095075447874274179040574221411590037186533479017484754129572685229559995320417152909786995625080817339725959405443815356642402978782821208458487512987353630525891391381117763892801804681102591552955449853161845437915994159888025185508000321359320908400309686969157730762124994789804819018342987969778029244039262117773270374170063605899370654942524461708566759185353966577322282431675203194884160521972572634701062071623626951578161860266933283614434652096770401326718709338209722663005890486695541813861397899928446454587981289404775839277273746381720483639406652317030728984433091543874822887473896448344936635859812310565812060578612828226084965075082919905862872376132286161882756568529489870921091138139316603139856265533927600675615221370615368373056735506146635278067637310858285064085633674666844030899460750357903998970926894103409423308898086228360766984213139239216187118119602581556884137828422042813459679232136741428381563104650115082958648724049815180631952173970225716408041735179757561002866680882489552073228780173199792817600810315582306367718309588638764954932278860593445724317169152021276187423240370243131255202702660873256000012820986766229105603989139643818879248176951887583732180976066680616449042414767979855112940656081901564578867681895900267904828346975435515295979822729667270548470477281801549864752344921442558886490770370757627665731309076631403274645681201991341324810438071450639658534402603635304864198014193388103336353565829034168784019877398029984964837487995807148884522232666536315002453178348181611579096054719189480916339967978516237403798379943826597121016889011131778974657067548726320364345649985523556480111499645829017862702038190612722919414225074061400266694435995813629873315177962979834451811814762809700981121816718398261283302253882111209850198656547658571209139303766546354806827999393488732541581316395939398095702952315679210766218993940087626733800491363996452657883607206172697883076500267967148236733114086863463545204647598743255453268853825690623508259468403683496716707431301573677250769472788352489823734612461978267914425995851643015235837690068273033378819589107380415908635602954038282852634038895623634541255586194898630907955953956561497421598029750586042257366885244026218217795950220690286176825850377507634603983723409103200584985843511452028361505911117626830317523078051958715117636439437870988664279459755451553815025910252378808318397806779904115263698367607554322368281309581459274294528953802197087318165143748925493979622517064837693442140640018267237746879733557094994699687065901494388467171019461902139165677919428028983731381410996024745280377115940714571546204476612275767858562332009797038955617060788531609940489597967566865755337436562920314944291269730956851534467032329239639077274771921900492949588851944510212019538811026261892960479940988192503287068320213402286201339611179764529892284550754129084761133877290380690557771120850597381887591980531457229388133500427827380227817448910455949572443438146825051261191033831290030280776462755582993645991224413446946118199316039192917154649962635321742295243859720656089559049435306673236462047772388573339619313864728574830184703252841236081241699118678994568074201017680900792583701368451500384424656108817658995244444809604959133824513381354437077111584682615971318442538329812907145140059624398736565200204885171193540167171884364418383924156670047085477318442123388667184045416766063285320647506918776534221640672685210242623471087672475649491486931565151034625561658240578218121713336309435256689387320570792237841050313815405554546096385768195111247412219986507085409042331041315671756160221088588708094657042100970595937750044047198000821214846330994699909381195301113146437015085225468187236585442598649471955219167997806864053495018137093940565563242191450988153336677880553790288081964889907913271239231873183614857890269758188653870001843749134457597597426203233878002528340440284682159707168504626689431840022375047516221123341138441645339283548688100652694992284101435528436920392532542604942042643451932220898160463698536649289613736593953924536013973908077274623668275967712204982754016500839584447411627613426946468698948496119983293259181724348364584057923247246048510525346122817730678927779632114385477640913733921079655552958549204258833638804103840815626067909241591205252559494647346495020546883693574287047046767969346252912349299321743252435620756181603653958901508186999458648243677827854181082873682940843940778835985803433719792274863235378116855550903062731929930567413995954129186750310082944537302959135407904344673481113794802587788181095083988810801953460834609490500249587293007371563492718270503511885392093451601192127210060261888824975377607723423851724828299959460281811482769984016375784479874323990307673179792210201161458618331596022434391045871464950966246038284678358378281465310725644441204472529808183854322694193895092907335572076487785192027333866348861236968486669370860634866691161744501377445928880627817013028364814382536477113449747095700519893629844616910823581101520837203362815806038459356596627659823500612244731047891495579689182681326360933937246973554016682656067733982061073313544472880417896201285960309870806615208449211061860135984909388737504594817230417607673441062937080417236450592652881012162306170341852160760559486490001675869121300548601151280804732614756821870684786767310498912878504946650086319731721117951335763293973183890395291197838698353778640426430925776289354614692733696762370943645316818432665493653708822408252953756015265208371806886199450400824465415586543683367275332708701497404860579806969931685869226395326519388263725164249260727632164775324474942882595241967147660402724648989697894867252257858549741746692935452955812646756861796080679105145312702134473091347954760572460270713662383942704606654172739036204374888405906700311532047551197799804632407837294990156036855044880301680175695887297047412521943010079292228541398231906528657333651153025744061955647020150718773699750211961432753149663028470894262222887275471037302852625065531761436273204765383614752540451184920916562395114664018864849222201525904285976591919667240299641558995295703933738504030469104608371754428829064640747135430445159554179343695255978724459590225025025752798107141393428232449383549494831498823849365829324266595414138888573158216537124285393423975505046808754016688943636704993375399480574910365426951951547851172109538106613082626053530221284044565425156777316889742627328425212379181075675417883853946534576662778327953711117318566087991633420852241398859348130690370856694082965381740140752880278359707667946203546997470216766851233227686412834705315218945533004150053845624650220645251529617340534950097178951339876856747049324908465579922181172169518590063505514032435805197603952261488823574680058996932634488813948781493566362466101518387710450843939108445199488913304463647012029361117464843151618336671475303968476727036973229416567360969839898722775355363638500829193664314945611278578753521917046857797201448889124877542117226805943412353628988973967488197100746551115191637328864614787992505873629142037533246653249278869760729033055199835496152596745412347493774360932414395316409483773881777894666687102470130175215312542841327923810703260910107824253787120860461280432425419667891530454146998752916367805648967352705433213352282924873815600669227165815390772451513476267293249949518600070976396962252252283371596082915090347122175225778680710860486445300608349502395967155675859327910359724708802011928476838919292707800765231381467366688096454795723905402655735032950772983095180728607254333152360322616117558643064822761294060162186102323394607351896552795682375652104437456070932707433787588510828561904560457168765403036919367891964926242035884660467581910735152326249484436151526853979971417628168390822236577199356985393036945750860259249492947579895902680804950654848574160094294364332508634119533447745415899618771126495566966786925379918379499306157279639036170240507642182617996278495414343019285334352036887023384843612962676304539195544384416523768672888782645583783475574970216624503855720953415157498482072996803749653397800875920151921592216269177483593463280397777124128642724800945092055166688886144744002375767238275419934471363387185881503179136834740574977725939182736423944796878062531343196185002484257611032456352300713258541413368191329195189598641936006922206864770432554445897633065504282983890551573814073500113082642389742555157924103481019172598374637463335835596101460055746633646689965061388481003590284548296763818905324817220884529173851882226814606847687261562429594070081308637237299523049133227373805496470153799475096636011083465153352707256652179638905967047313258471008844176003706958478789717770439605623399449026868927424813506188705446542184074764803679843374411214123211158062235587378960059303038171825367237743014063027750456718424028325740883362242658843596004877879883655209259122997136940158496757853435232716409575478607010254684443241216701044777845825018603833104164874869743100362703727329847939528288367820556765332932423059301622449864202776730041098027419066638455153480366777127091893585683100302813853768043073973745060950208158578558308121983746456280999346728657296110499215770768496867495200904184101479655769376185144649021411304949038092970761804351777903521417278008181365538961388204576480007031381788060378794393072782697161206206311607616642170935835412506291876917841961306573022462156480889879617232503985282316325712251516786222837120433831564044315348789496330203121963562882495468956388590247074564277746010514812324595374550441659454239099039282544986964906045795011139895194647428553688875772503098236238279588113420392880776044729656645919431745299714808701760517890560885244531619935933868784359044468871947631946205701647122772126199086439841710679509800119158265993568317867921187058175058318840738346245823012149515878236412402693723496122487093358116781928709821078659199251204625562318786107663829285747679498824293675424260390809098625587923298184952895957730084644738131160866484007700585873298633048099313519862792371917238314042506040246490181552007227310977323902575506152459777411797595762505886401604667048141236153119164251757102083444705893270207199813908606725875522045509055442095538848435355585422049545915140181622132745910559288292313408855810526308510302209943741434255768697460378957404864785001960547685407764638437354754471272635258072854545395724355340001820609161966980479245249888205367819994959472546396392222659324592654063924743650437574473422037423765252136986354663636820708201678237313241744363494981069684298895446218563671298196728681789967553984272634671361454286796589375366619749471771294106261994119181002345744071868213272000648286322053636237158441552060597779102829228617857096419152772180756974675618703171169935252107877450108490751136505354095371246528175508199179269212012656459827641249303347010138002017236370008047277218244274517172914719994759515761910996561113763362509283949422925883061515962193617604821552664872279916020146340856503061777738619244546042284635533686256092269827110136568817318683728193978722691903469868032933219177600970720380813563337232403937385164332094401408153199244827317153933469521857511676716781223016319568556675472579379082479944616456204597755541775452488323245208539719906214726137070397105259785885560717988301504733587114052573454037645258048582463105816735938207997351291732855932989445322089553264851218376120016570890090227856472695303910904112713885805951915314294891888397347624769991531416453497005861192921108369116956374779126439722422066457594267335100988549562272866299857514909740506293064844896008275632669498179000488092043301393905290594275634178545027216776463499275176978288369861463893276834287086147687583326208861699857009523889574767065675460165190435178144556746353721587585694566578933458147560324766437692857913775344246664755724677739594913550087458144387969548905968349762883960356766036713494283082651423702878418090764404130098069815781089443172969676893331294655178111621117970970468747188262228386746321469978438672141690978767387262497057536864363655062532996182291641915037609771292646592085305806744947359219093078368645123342204815990785649244747194770746414931256193140389030842258993083444115200045634208408901413113531480581823719258479938656059615301588419576907873708261181661227771864237693698008306975348900578399189194248470787944404141646850370113420530883401829604175140729246235333516879386236819235185817128103926475903401994381322247717720362607146615147568162353172873998875996270110960604126439107146148481783353292220946875838994203743484333140202041376099024554423741819273623811782664538035078628906978938650368659403127847674159773680860597878106343444044887609743478033267932373847731107932669891169780919086470642739798154883645047418435310053967634400935516030843788396497248777015527400227169198804786582116049038800692327295735458607950267965924141997212798514329899261884180901595930281411690890775604985310822523991108477788820584259273432683583032004423366120335388235670822452055461716888024922202924651403034038616968421398476270001705270072248346534790976402079993589200742405092936300231856788136341579891723571175424241017490293423836870386937773624683413224115872745987828129050621998281420902543543691369769181514162306412222947332165515633390134536059375133780478400397240065065126918590532707481579692026186507753961557252738074140987877735999032520377301537537304457915857317890427439842982712938891327455912243060540986973949025591602615080725597679200820404131535174698384306464321465583426176863286461733749249078858151880542265390988993158938516208813744917060878607248653433284755768605468142844755797325707043418076755103271809775850385293969898794421309959804542371116891671185252824545644278667668579637720209204153917819599184387049230491928484526290328630738540212475442367098261944880042760279593340057287165318810607827299199747220598160850072537109679208886220862885210042017685751810382664261002616747752372393779962446954879185849477026915453959956762907041721084279878141009646539817460382784407927683489742738683858412053759464868493491839246291131358547823765378847401546522278143378563225872664284485472322488222499411156004227367185610575880094680525397899520105939639509533811379713865434566409526383489300214531016487621368392428640689732863115440177882506048988458714787424806225603386717877726635027105535239933056559665395779228919357308140487129431885728550508662706484930894603223485297496617239949805529600302911965242286321692325125483596527496466933959368607168058388917929459371425704837135912128843036776000478121710366712590913343845525205742336623875194803874453355862248947264552975681767124139501397560976703579224130926712472574732968455743613846814795288179989136189464316926789441132990569672640463878639707024561314925216120471275595950614465926793784452678344934891974200266872771694014844081598289525031139568018059931419267212402407756798534120754835032997039915298460784100653918155986484349279900133988010544250550076351369902927251648315607099501098567787524818870795775531601650322619109055356715917304607670394228738653518906902245720757130800080187230189118509080934249983658277902338428689571453657540585220573205188278056394725866931997155463379774861077789521177766205122314764710199676743399562267528582885206883691152108553645638415415200691783690713377444705584983937750723119211787498581427320321970722102462063959045359125697581257940884136850332112658756368288615125222394503507395339717058997352542699049634350880977663727997651345416922310592936608165598659221904410014907212056626026370960013221233541970929340507141941822197458353056409734222842162358909108044645902968001757314061316543632425161113397999971115130618044429900987641901972238606596764178422604928339771085785117981710496536705406643001650892662565350879119840067301518999964948813018448854666805899080329334161407371920619255214717604651312662520588278521281980885870898976311375094615704581152838995036267581557975344157829521930253187326378203328176324412332042980911110027606269657590386038554021410210493451764131497137813136049554154599011952509181234325056979544974466003785904019174177980539028543962809059002955417553874795497457841168249442076967064504450338273204238414856829751986606443282708502603939956988447000672342339426876920432484423665398936291064631742826453090390441839396589056919169871025400997537861720056432995355965469528212005892092613442321677743685949000604313930798298018944728407447141970773875217915107276149168592880986082754283752140647641469569152830455847442298323219092800593185172061998429887265197352723358465111626125632451301679075392325757477660949110142913950806618664066208389696431749323993192677882993250226701432147204093468594342271836777423135833041824922141790825040387528474119968115383345760093725521995760429743320134441728025748606843254818056481071389897592388035378429079610195753093140325921592240637875626181100870336774169465838875194550921119845435484126164709301049862047773844302415456362364814685294309036115692971019914525356899865590536743420566322941169630594333329756764083203622824002595921115964898178244327787229920519248215277808392119461638405758538471196269644038320279013200958236375960257807770652905244186762047855576302025228674485714636862157068359664207375126317567722839065018428680637002000260919862715531334037295006999385368328736390982320859849117194715148548095004567212099548619354971921365544804564253398843971413306327763367819251225217329230110492008052073278469469791592508370989182248873300082183774135790816099211299038819972832582952017436403766324136197057937720917995812202669537056873475133415585980328491977076408176333890490645963032107010249882105812593015519940246979033288846075220709981250975297428882755106208969517641165639760151779582384725368724826040323017125830423269660191490846211019922208541001704267100185791901294015854066052145178521788581341927854265940658621394126256174136564479074258852662717958056684813562636598448370125179249751298311459864797183757466698440165471045275630092170469688246746767565244170386944885467039623985037514453682335129449342628085149578772093336367124097629986248809936091958999716770605907562618048233095117272465928982430199846698207893370594183490191799180211984502340007505272340388977376246040226916490617882517384118212844769614760179131130260485942972365041979034530823933764852030062242674080198274708043408834520205994406434120976423242853808200222483206403925661563088545911057079213666529548527509269873326168281164401483926608516610077110503154038649725809190952505774109055402736154430204280907064351881088838627739604202482282286483839585033391171920069079329732049754307890795685209559910689076334855004277013899947558615916082819863127248860102897686635604979171359037609599836914227439127579467336710957835133481296859936652659069620924312526563501250550334110845549143511418919948691323803506895597988490338823966299130942760113887752363493998569924995311164487596400632982431089163822857896303662662856632698069693362395793190619554543722906518030678282001223505303116874586935582844976281898431508050050853263180563455870790739187933841249265196393274516231383693423560662023768219236635640390482366242527454529926206668760344943792604352119808494601272095916974057895205876377262473656076876511394108248658552628686503233267168315776762314231566400039803131426050841150910351544397476210220261386708720249093579187335070403306969519144023038302741454627028759446737505458383002868657477485495153569250048538487979745616856201515491419282161970866572031616513332069619889614933639301739784573742377945570225507524443423065724286603698811748176612149683997711075154940484426592245586532261267131198965379510717698109014601463159702371732709006957755529773494065720559303345807452383598918696961096913596249979269470773446643413834444486683554425997012374441609753354817436622118118273405343655983038801197182178251079406792166639451983711521151899942698909940752186490756547510358972022784599153834014719283931385410389151220789232167390703313994874933774945886950924049774833996570480307121754750086236473028354240199494136627555117653359571974449381823224510915437802945576627944787574382676244369433497075549781514610252169291382736392690218219280573623412880323746972922350821261498385041674531838860666993162068095895350970065345595269136822624503338285799107310621228185147776516904347518521726560757577005550920840157646922493012984376569819654589251721668777851910576334572555061904836535522136864136039116672666864147701340142624028924591457795125372288115716468809012567151235018142876622156849955161830055521699970353589612973322100504084477515222280182896277095971076765825757211761471360123697545235951002233869629504002740858863233774582448863527368017481938664794744914927885951173626483165559510907527645729999714811528856771650468360212633148476855669455481839382332157617759236556623728592980684324070701005167384617319966805591465513130579185073573204017634656794072111420187801540258146107358018308464012776004843208225229347315366912058987064526995054779652416471812105913326653863689470024132416306186260256848293398149560141128573505529453148477064747813229544858815303237938999747138378362628167834993184039231476836374444137430540230838250820974882228869021207695602388988800137368457429949133618540813025848935821606704689549215191924680841493866894665014720509492289244107876405274827833501912517145697008546933525421817232912534739482036912523606933713201738760018719197250403750969195778825981005726308740050560591966138046596956720884215153490163830302929064394735178169186577759442227121358975754610053220001669949818912926606004212288804421354914895275254086471189602212990822439824309074038909583043416169967580679624749672477378807325963255731601070345836785542082560652160922888824351616917477415369441361524060877478850224790021189827822552190916886946630476351595597400196770982436102875739661122431858237365601908141642492716621359148718358770041231787451920692325683221813855627711502538058446011153297314180559268189573476392748396216953169819965258462236992797470699156172984471451212681098974646903156422519622906008866859710300460414739474319411541398661760661125033366568327738633075704667055238429004710991976967229646270176573536765326216839890997222304204084723470915805782272560120112614965129687489263360532134078505573601294934888898486667642694259222835614898906042061614075334852687830895196237721966518087041230113279207639265820059384230618114133246409464792351872934255829616809967489011458229648235701788425246017794821220640623584093967495392305839053481168326316679494154547455367348635315617342659567850557785085415710095686402336035202114243797460293849892621338699610085897566638262133310539340770913974712786170522094692745272819107212206943498394443908828302802245482350413907720442681244730536243183849763803132696896545758990732647777109168782862599252047913580751218796772247761851821285182421836072030548299109466601724820455010913180696762978793769928217093389762150744746078063352343063320067135075474981468176577326068089354673841759109207554437165117100041738352628050721045954590549788240627487443846776204614299441949546021925157333030427788917967835539734933910158580986594246244059359828179838099540264315116762238820185115809752533477088923779715392649527200802181981185609626990665801934936399154493481683625242147236866299987292452399375297780404431405689086394300286399185552696976507526463654070287979738257679486848913303341188630267383151030060746017948863532946023016997736424690322569437833442888221133359171882206602451481486258868091331781919790689158518905394811029742221640874784191536938017529648332089547824411759946774085644175910668792374524595506415794485974446767557106147416733858489415541947555189422088745767199955911389319259991514514609344808484790769774578141064455532541072834329932063837150084931165616931133570618447262581286419789693443471633811224448104816230680770762496708908940773435430079809142239765128418719753460864308287130556576101368708042975405554573062857198834622927941142359437437782163431916975158033504901871538475225021506761129105372523538885079337216085531613805531913516219620935741562992194592242537452975449733118057639574109953532591168326253090154934243972537171561630744845928425411540650977186140324359617292938541062607097333146068539509122664090692620330941048968060966257490347367727575283130835591424107871999958652265211246428710350738853955231749794887803843649536091888401779280273796150034163751364424351476712623966003071501767977314141512968345243011078736326642915177876506257678094927396831815518866089721235578843162812449380712255028110183189116416995762393049153009031619711425689617725751995859176164627544820944460021242719619005202947620334352488301397364240141679315352371016938845269678313249790072262778091263538747722673813262925867044741913421017446522398603144328098603580139643850855623344261440042261452185464972690667827586545705825350705302200200301149269007367691753797452216001771224418289650458205226869493388998551246790089117776319119968782554349448166774338589971580031829559499695119096441318595161426743441640414360065039003122589793880887133803145038521389803545696272998159211886829483139903566090836015387608320781863996576656012418162863698881018340765225595736394332250347445459910817365396128371772330868481167141910875446170825916404768342009959426359591991394835187419090977211748540305745899506764205091700333499675880430847068940274000704914884674961575787676932386795827872956056139534487264967191951145521148651660432823120914331283044297116667474334892620093868361207201433148051415903670724542671768456879145098070879784962431673251415359497443993036359298860237491335307075972416529719096317625859426791150880051976567972475778531757754139977854961386199258398142377016404773443436427930425462966745907361235120257059439002444947883999792050950670887937415778787148688247723784814360495460010590073017714511919023255087721013164819823778314189744615411936880962110312082051419895661671999544850893166054213231040082421550867629717796978202148856383578038688641042369020249009288360051494848712227146730594418635493914457969448922205069995691530949903452918571348226322565157986286058500455852148644059499995279350112092982200440577917131050753521312771283414347231597531063573456551559828734175670200181452953652282006414708685591085511410027557942919169328789810838301487191288707170782922042941398748487003485634194097440488795717262495466279611170711620913308820193519222301046032226690199209021746319433376235577879518239459091311311171742186282896114021379732397731510903389910383818645651999710166051667206294880652378776003975842604300290127454502935740847813489012794635661098763541695967521305894394375720337537333092900830552000542321119513090087336464321762201806411163740617515880246322619915993040714425274854369182208856645273350138710099008311972472636285985730666497851809257943565563060779000666413135808601447946691869774918664445974994730972043515873795197754404734127079354499553168463274867697099135241298681943170558805902479799692141849472981821010048052407306370241820210055842222239735846176284686367646350910112409871125434868003496128836321181460034952199729652618680512704348985917082565887568840854662207885004145515230349158553386337694199470907197250917067418137711379555158803634727475274508924352106624647932769063165041940383929838393199265860554588148336766741249019487408430068416815164571671373940221729632298016772948399468075366970627313009093735436039572581280702457647776993136361624564630259297199861962834719597593466417900600811170322746515444965150245611784572523260062487081007422207044714347314259811696551372389270903093125510459177305971605546202200537172727867592866637550093613207790081660049305185433132437512975358422593871915498592491199805479478602242977147660854539784632340581181012972656793634034190308635278408271972592804073612786891730112841614783644398992311311031540198195319906972577923849745056994409484320934932011114728344728458745335729153405468451170224563035831998428017510729397861842869014338212555329727876846162895996770097430342979426414858425846051163498049807690912375596767007686949855424853861661876376840962585873697765623502580249435119360129988972228435736872157900519417124815913543592779640773259330653331594064096859641057497052176761465882238182253723458079225841884523399419968783961015781728190555432381425889783293520921047510270387893802360501207751161128179342255270393197821214205924924845919041704157890882153373475639968161970545277591124298856708842078348722907986508051388002361596786113765346112145979663354954036652843792170903460242207535757440823177059944211221851247468940453280097946055430685970397474124109049515256157375757059561651499655945243177480491530795267616819060750419208650847919792623303092577180201273923859833446637213169066872725399808690017854185899343203767080528139251758721271284650385950564538461592003641836143452981767475522612430909715398337753729693537006963654040853408185604987405774723440074858228447858903677139733601850280644130217187711179134351682210108121140907521273631908564877585594534018283279106186062893729000497580729397435158572122791986792750080864801777686745713436711502477641056334434530342059415245462413716336729140498061678252042517941715619196400101872836825205943883968240551228420302458049134400446128091378209602138092454382100487472255642277731580008690779804673995216657067127080070204595302104799372686215110161873442723025611608477611926325294391709569796824389838867844726619439953660576799196841440841944912490048953239167548021882689920921190344743926270450815967430905229530294291807771906708346387462914553237428497325059141695276823404393195650042175473423696732504805374822670695242395773189941877548861936667030977361807796743394006090595511969845882901034097289346292687076103000925864013487837955622726976027029045183901655405984953817767050651283574106744003957219864789025142170833134923954040931304225144119767860956047825689267377226183690948745759394093501010805911293263863098388779170636693390794413886851868663608424012493961634131993894409083195743240878902279859481094096889160042173255689941716715930241998024598167500764707735095296595859357017470590142797760570630915439333901540392291216338464526173640226171319001266691679170973006088237543837281161392529425573747593298960389519403404633776658032236385656041966793788894473958585096167305163991581510459923530599458474671781515324136688714453457623524798656540813302745666962168645728828798412416396725350839603509110673241455090596047130265446036456202074463813328381799053372323186214087710365651392436693476394817290682110623530718572421455347441329585829640009286403461943870793038046733020887007824585109889431906881819248364715176683205900041958057924899005590658764178608770203497255746264039042361644014168569525320507246354933822788731637693168936924512348622460827201192671333982002242016113813809389181976039839356132271740800449517021758546624208242278671667261732651972102460520421743037285735622835402785165054640785962111955040050072933110413859859846654835154977929901241187701763619837477596314407960541642887475041174937093740503597375293893481254623984429471239354572265834416846598967061221735025848177768568944109517663462021797795768003391338229231446786446320684094347994403929342837074331210043817379793117502272268176337466768835691602348783989852523101477889068387335029577247230057842991029016591757551515222907110561711083572401649033852429561279991465043445742596083989309476213399476752569140654908612758937126898580356480967694468962718928227848170122105899114343905009676167235310972644593766899700896616144395585570133600378183678915031550521008623787326313960720794997618711997166451850837035483317525079487306850753541720593712819514052072957553065022863500083799900876938361167992312575373560066130329146546763958130343872675683706165248232078978512834022411663903163221309652213212756055782829035783554444165948158632866352755610457167019553845418334915513071211290451753248630828157072663413113165968535525904598272733204902145313109654038470653387583466516555970234358710829300360763293939520804553524773833491028679541752933433056121322164389267397975593167968175697712080188773891811953420743361127330837912992326046660696623907569186742125996457861418234626490818199257407624312504101265033342484749073345046182824047490733810367032547672161675369717323522894478390039949242236931223401235436731620565341177178605656404048711862620032924451855059801871056725614389474708797120921531147174426131330409400718634902757530559651714693390806207853141234719276035864346942759697522461083105291332830697141825008595011321986752865740998104792999993248531333234810931430611487497235242109333480006190489505569093539172226601148206293414646358910113622524183757327178118326727350720562873759175053777483767066842117714846365653452059467097179465613746081227622459477846222176997867907823878458333197779762206779122317383172543759354286094242299861443209990966847464621123065014075091572437306452830318400808701648734488069296041984088797575066550146701126632436286369860204000762200106070408631420625792008307314145764425197641969820539230423332414582983600987519621499461325686890721376637617713973586961053606209761423583677286986298839650560990096578347387154608651213309772378366042894319488074824555953865780614014043840786646442940202198819862838382149785687333402232150077129458280543796304118630146053020903963320031243650634488538790567712847500462543164756908816893358258103781203344192588609842539261452465988708009993903311021490742111903507937257469675372383414612190168002297004130320721646470304344018913487892072610936179624300279574698985968473633388235697909964705696993779918999758195186033215942439086526524642531862910086252541039622488527358561496097305036557318994321955988094723739257201268399604444614531885601437427525226414562689994211010555332894949747924746496441742728953850599741495099877836017802485042969515936399445744512864317836526368630918334137135293393964431442842024217869357469083965428135051313629894127553394148580315265068299790699258487428490091489916668986426038986091050478103176155868907133169283405216612236280633614013639265270651068924579841848674676490805511999062768615435700023723145825188636317196888689477976385423114611403001799778178412459155720670635300542274170646534138402055584058971850143991105496951691265290662175090803070437048667292657819781548828172547051138506544040413018871077109207355735642633462731537015250860742319788440895124561718060406967581407996993484218903069168526574781177751316334498959551593067948851049211815894345811564771071399678720892104912779229423817495518338720707438937751024933274262470410261757965889298666595566893333902405850900419140989052222442741433793603399449467993974037914946415819036134844197747730598272329038892552796984577833946949464731447867840810289408854394816468426274021759711961075556333229700346648802412817314366172687874274404079051838751431611489957024763106891980525290194243524152344855017979455245100044081902458611246884104875252459968281871209532187098009242625778331663464841472904276453202286052231149046872945667244375050371914289250807466663040370926770957063318629367869973346518791652049695800808878462293294755269034270496756525869229601798678135569896499166263360618719778795888205955565714424685192199869640605976345738624960588546641984067244013919684853464276857544396696530776531915663381473601190926171008671733301834561383813883927146829521499204306314604615388890507283148287995277743202573618056054623617127891076508854902023389437846775828222718951966937652056762130671111083712709102711102302523960192112988372217153199042198264161952642651163289214758096186667984957680841250607770402691929022466953761247576406207823662379838899398450221982848911100077880083057865716669232162950509898433905029063229514832561389915707389538719102590974081521530833841605238155203280699644354457191961578527542167616791715877685466249171669832433584489527589473495837793836642528583092753879000435986654895017779516007407271843607284420436650218121502762275840465218160923629697101462273088140151183439469293981214790557825986518545592206140594243446129161829736448736808518246820962497275435188321842512581208680995666483168146208054696954493506126164132308576863473555681877684230151978737583853861829469506160861843399393860672237006068140130895679811755067253547847158667092191900759502564352363526292609145174076617329393739278608777978193283553505398343650403264311850582966644412111867658094112107748599462792821811338504177671049984582562705293091666976622499639163499058968389271425699762907607701713234740193421101040213312071569206922853781945409899140848817277394500331772948843627469454839806671700679217384769392025630394756716850578647456599280696480617626973286618707831598350787983182728683839203759144892645592804135628300453518413480739343492170952658910100409058049542097973539210210260564481550609691323504515350683266763840972396580257289042300373144976469719189282046443622968383589378419573170425095826431129553057186928020630026942766230975858134381619602468525355496738428186144047870728117808687322795337144832708072737645839184827127897013843020701919412962592985848585799992784662526608421667765619185084738049375200451591848810056350278155148992452980802053748262360937847190734836750160879657957971925474050797037035908051791733645342056462229038403430243655946741898351961693373709981180113977188958584039202478584941879642341366716014507450644909510648638930430448632741798704957134405158125583147048743588984805249328983943330029282553078241185033433430264384473865290339222967308200359576905931727770379561117423685722380874484245285012326974177843119453311197122891398329233244522839589228121976898285145835980694687980882593140545197443348269424093789865729218348960885546298353448513419189969809972124297351916429285945379596043854544996016346705533886137663403162348069598619199996598437959782041251213333220240418438078432731945642722574564584832095016252349086061704507772765183660921412863627532035064422396492573995227561839516156097878481411486424902850929637035277282957925427492092403197357209026264212064093074587931223116890275754854954188873227914579616845367114457066007033751218143526333031995908120616501072684012184481582460308968644632567832064537158236882144188023185143105796268146131415013363159335905198315543291021350693003051097883321788033448785813976515345744380037658692112157772565267800890397103017236443954369090336218373864779705262160257195413913482499430290103988445881290423286109775038729335504087858656148733590322324403389789431500958616828646289852909610736912318773513092267348675885142686472233069606945508538337172373418501029291225524424713993624627316740516842232068016491496959513257817626166635773338316986673818889560103437163614673282597569799959248002459169669472393890421134599900743911602663463668170838825536534349413626804671698229899966652331726787929487933251057431914880550203236243115775835312879482152504559047429452123854236913039853829388017679476303433210096791578265802884251865000663203367194001344999843540843764408942373580428402480283847968805001429536494714775386321954548668297056209593872298792179891353644227325167725025207210907572904017633099692912006601178522582625598917206476060453953236899135831575350240943861907588905520350338287854906286710792779171402071588839154227206459924352402293184800663210607761337950653344430203238896247310037113427546122801540553816019330675380690747352544072001871889641593132677385006562036448468024788742061231283817361243576018697120569758331105858660985536656251271326062016387607067440061783085297718285416470024280672178456919003258690079185831551037939838463085882199670030912104846675443204488921637842752199334576051636813725123639264263192209938680760498421994935199892940835097096799203525939202868014071773587696985440879866672987332722907580095826542577481442477687985633160778495130683217337001908942218852751426439079759436977204897430264735457616761307730054146727877650227193415858409096573435514647849119628093591462318212952337673429431665124043782354519894040633106365858733400390320543919964567064641317380430378205254541308572156979846487922304962024792476708863239621103868341646044310320119541298251019130625001406714642909492705701174891347079155713941417417866381950336000281960885341868727853230707352382697660995683195982258776841230419264787332526416028099052671954815578372557216869479180694324904743693515709323984706985812553042535383799805533676792911433945027533641393705425798152592683774211984295792066999394155751226374630614606633657000208182639816100980859996433471909470612287867319065961962649360585235650185316903624743295739581962040225972997297646770419115680763168680620162067632669102226567904759575022169313893985086910959000000226499032960908947589385715683709097914481027890443826581756762932329594488325417220466362243624228008908501945567725706710006058938986767924167386511819641442794687935498319624082276523989157958935113893560037759568857164300595398734054430401989965388885416474778581301041920785513044747568092570233767368992393795617282956389482962566620248582501252328331829616540557795614212351331194894959521991633268047819391144349317170130966363355098614241477322818875059505412828479099628042992628179439716853643241914524490620896540754627463412514130911210274226978193556216640003452954559318085543367877068836913544622016458908973625357995511912873501425942097237994184683599618482634384910912916404076734030501802276620022047182807162827305293991535386845989758351243225737310861459237938580238837201985836697093671409616905319094406145258680439776232537221769962825358370868647993364905419530467898418424806397343362386094698192486514208768459350140222192125166442991235897811547751256492761013193692885452246135913057101546820852779995148263073437791903663011178435974178548717380165677432775978606955272015918016596271011299403594511184181051752187882503345038457877760042631432282549941322425547475826302137690993047025277314572461356660992610006431070207917167062891098562333265568350000431647237643804513430731429455452131235884465576007279792288873154644838446265908648762014411229994409013014329173261348772791816729038146596587730342773786497617153102352999532759564535369075750422523257041179574827083640089878694630265284681192935393113025688402273604224015547156406463345014351146933564310039674435875987106081284313137809228032842160249477966517265900378972367199320239212641992967214530782433752263095146190498588162614859578649816819532358198570645303018959549087533169245909498937523928467612199307180977798283962922625838161847333409418560648259601075324335616565314928923732780677391989902759286443948704127594659849387865093310107196557357971668172893705611726511492033533193707787531228453175497806765575988579329223223043784927264400103190314521311318141660362398720305006743629009423249830762095790582031522893520452724695568203977181099046736691791647029839861037694398783058342729822011694149676400938981546950506688409677930449978024029223874258514279240223566264520491828851726379630504530378755317337913621569417221279242335103035354354253091666176483005496568206358471355052584148004680353374977756681410849743843744663212182638139282295061453644407126559250454671660047508512027185122366325668916458311139611784607767833679706575868992686319984674531791171679579087606645589213972801822257998224403112796201990256300540837435973081001493067619558323636778225915643345275497639648315344596227738458421836113318426717718428323386459612279638630185628918397990724735711751075028109963033578590820429790405237100526357814410162824328031150420322527044495866880687782565038699290027218341728623546373158180762902788118636653578945888557126657427638010197111950526343260736160941608961308567781721348880924186753417991459012167457806894390375605100384125789090280331289332211492595889921018508184508358344146556774648691880331067093709741207287952914279047546162563806116801075339334429781863226419186560999066964925301104173689623402536659434503698877651598225514252393578137269887450742055486037547685606611515691875314328396276214722322085457442832759373847121110492623451693442793407823730197952016364544923813824345044031076776136887038304075648247860956823760160064928993550687499116649078066638718775033746538450928118573719336204121791042997584262982289286772560288955864175912889278166057685655729635069782833155553142349196894275652305712176774636432847441844835864840004570225399853636865166300849112563911789909801018900964496575385419049228152899111757798952522639990632087035261106416286677389847609068439135273617223227253871884154032704431434163045885140217737224253753052202043423066926072630872622831578702354572510092756870508325770299632280568482274478995911116454262220402753655106823604220902851855048932139905812542222911211404038476477975694624219100400119559642725159322043006310729446944870852867245137298296889916187855313774798268360562739171372742503230116424261748430595831323281986918048514385284530322575875915659341151837974562294679319803746912273486312314689354412297746043635852476551520657728405455972906534308926563765032906593976009750889719071281215008567359010483228735240732340928727804011159659975142952144169579643571626750623008733659525297791557241481071691672696540204389731341961281173566231035909001837240837124535598077252320481529905779138582068575488192382490567572370403661319894892607612771333997230995471370970129110333168063362106179194562698744458014113718822374841288366643606634089209960841013109910495197310684828832313759197939574303486586965098257087166983244450295610153335952590995268381080648232645502174608644685517121877997071075336580495866295725876975489779725299745949486354997965454598062214064688064609485325253002005655157196403291578643553823552301076194140610593837034477772368659848104019888623324881181558844453755372217922034716011298666525894887272780782012405373372256825502359155045487511930137179602511994668858201634761861974522371185803506063718581630693216238930436384552472986930682066952865899432215555184454998456232094597957977932163968374507958169488539170491448144706972987820822253134387981970146714308607648772791015670540563139263395898449099119358848056606994742095005635463577710970002483602465866265995019571590472230268119896410103987903285873750768741750319901770801082141186945135682216056501950516757608613463667940181370293175344564977605423290195414210945075394412103498523367692547697332939291805676834082663320276636587845821877052120300183511648090555511785053802437362944397730885535517668709397005318203564396708929160788572209266263518529734621969759265572802352017621248790394088625875202256503191586773759500564725212328141883768051939476995818125774027546676816817023254257434148272932464200845509586702585331653988874027095692354944821664729815609991333756478213284046420706651693051956719215613922025737219017010107253861196903524836525816882898968848268447064835343310363546752697408734879381073924391030914230787224154425633915476295812576320476827267076127672752198342644924301385820894005598173988050314670181995682709947440817015390803813296816805572448569238172057928996438631827652149583677915927790881829042052641539736329847583563774748139860082704513484133005887006079907748210372884129564107234153160946866562376986115565695002111574800540831765528928562340073461626645850915652423536545039707915435947496829142432566781744385094884991375783366061924147731715783458398573212540273659157412340419020411074847486593387135685335666912968762810253776951493498968580603986876385233436411092622185730763644416920015844075688462041986830393018093798181257770971048952639135226319471662264960998271740504340637370167897279544437631722015071210116156530850975145979936811545813265671537453480475522027508567624192540967613722023616021080777448396765057000723703382029589776065892776584693623568160293396741801354761398105902117586288757906142474445938505373632023264082484717147508560177960630198070416586922166119896358967303912655590008419282660851751747649887135715547403652620087613649707879383101562289842605407373528769160805348012739270179768236358695418986093272622756715712302449033410142225390122505418661494568325190397707804182297669202572225410921865658837975018326488497556609697465962728049705834137002316348993846197450335793069350889780617805174084693794556311247850495117645426902048478494076996716113270986591869647627363988929801412593900896059670451428018858656151281552049519228066820641858749391664525540963278100401944373157782707817789047401763518797268625854427260054272480691386516547559666346118544744414056546032026642829077334632697459697619325638809471336204284147631065903147513244440793327300545194027919633913795685187716036323309513495871762339050916040886463418075349817908398434364669294352771515130394409571560766444430438678970496718838829595467454180042099606177538862462050252982766702029245315491373511806449379147241233308332642185461954509306889585968201135466161619064640411997436398632126825139971480700665064816208138151382007570306146363241997377707421581183036436109654324623509432536777977533467896121495009690705557843020544421577465198024754644743322021342705588513664745755573498159479966428404504121107422091511230253930492024032935675743470433523155525634613228830271051365919652784370687079598521329707818286608644165209313035370342626298411264516560883701212677934207102870755888950986651681551929823132647485102181418482937774098830786971252142078238359735956827178980241071767150499159370585070085898243691255600818288182081131932110043619780090354731797608177118026745494425688470765597341373099125975629881878090669936328810624331322299507148289380828123506739428705094455586235368628334484953561906276520277840038130533604642570170130825084077727261742861245075751032176687871839440706352416922415618749597987646565998581014774492962774590763266109806669713267867569883954044728260424298393165915159222280435801795653688184685783096842717202573539366201218919861608433431930070066622571393980676571858781765631655160785388560013855517556860018649303244112930106680170980546614636211443964672292262598614087379422402810191774706520010136440575342849189693335647328874994103001037485199546946406621425972569769528667326487488923091961913946187149186753004788112164022809150244030285093829502246906905300235647127201498225194505366724326770623263168193038821275102501615883471242025924545009900894316812716027424852309259819082011408963313818372544329483025402297491217155389018640988634602276293500804271669111352907431491780875235825005171559699166592101944852271122642616656680756574702640668424708546125940114781795575324039705723660259714989608190208921051503359900122309433180358537142276829235062859861408308799204444809537933612613305046566187246944670743423976118038398054761234803535809467767257579791675024836290555028550415092649828635116672584153016030431235544809082035045319961488748430077852224048443578447915696190990524805384631534043249715701447153824806019632338728690320346146240876459286545694349255455899650784493442547087311255120177358680450043783612203434273076465862229877518428074570969412846228441721814731211900312515119812490526065631474668798083841254249747799568593681461652527334152707498770823535363177734687083968106126485324493952889107067905540232696580731446685423609584989939421789982279831663861050830302417849971756549892380576132844366362625351237832587173376524450464525610615719700929978969622061029760581662177207363538105116901750840847838010966810455666053992523643775241032213831717290111912392685979008182077415497930723328547471987137800411603167078997018279709391489456417294857798345781048299868860401693631633524580515160638496763060460586188642115196509508047542631278149575073750231808353591582442510327669344740834980675025680051491508513453204770793962590778682799467835156040383971322500386324244635110410666066031930480527769696821663341374136924332436667256364163296175919309042097299301954101717044034973152655625320879970548222424041327749971277156666462578018567195627043543758089177370074712120428286875148188519136813512672678588053820365234440415168180423645091773489040283481850419375821042707299262843910196946055774034039818103104327738668606788743923293931120222028928905865436936304120818649251176394810602933434298602856696407712507127875010479292145997816127860161834711733553031959818284734641377683439575604950121520349604215049789285103550623876422846673958710425164490835282754819544687093744506683643235211972633768039006954140086502749227643522084576756943008651417475790848787528647518294484788241796510891245110502954701570435842401602915075507899986924906442850282988709979606801748150809621172673194208974870689137404820909954324878790377849491936323894425741626005905643166429715408892070678072442576449834880762051510562129550783257699220156854030629203828259155894364766116744789800386722698209486884437363282973839735897659915884162405890564337084462568028479543520566269855924424064662468206505849647572049828761259038889330135574900731236717840436676277355694136973054745335166832255132656499321095034077580117930210846663752269614202105688340002905173236655884224359140979579551268010426728152363357352021638624798337037247491368815559697348074932887209613555939742533144556228446061551568479426527137287996289505347857481140673874323324275855430388268153424266093379680436999508346491687544688392674910804821934444118718147751989019524113239450157248783574243939810173886555894847669536834510173421361907066061709932769721737877563498629048363849451638663692779107353737324958235232059993837859684607399340150144295677375267797528458326644788614106962416803836491349328455471983549963985422598380881116840226865565104125558826777660678487001328913877153738686534577303146714508310171499555087426975406844951587363820187835061080254948766683449927139032984382527454105030171955764420546590485455556493455351445267498145410898769439493176681361216304294608851162682975615870808101405051020969128732984669748959776756106322237883795039510423462538955433052119378979246468304787685758011456133332139635922926316256526956167219103420484351668308208549718894139613302708678739504092034036063175824889326640020996986221821546739286812735746829502299098165629730985736428684139664776314552275669697187968352478633512857123273117946372575303076717364201512351934295663885521651806626088189739322144366180258521690023259974755935370780476255845567851688837224738711852701234021421806150497184634772625694006213091692175658919669965490518029610846366330767608071028555419138657498772845432796911141130851827101723296493674878621996900767736350795157916044916168348610099488800001003349838478167077334340257751026034181793621691764569362831193494427207508554230437528062904205820467995904265222716856995096404697456406269636033753975599435078617479260925164746466654097347199733268375128605324489440886823842339673537919290747205745741737635148507205308588687212163410897332228070793553860820560249970783855548332660518030151379782613558475380778327630833357444160542777545382024916278202155886865060270577548490156936350167793890093104061496613758721747355915913862105010162183992716049493437134159721166594219274188124240464083129659844280756667862513433359390207397706510339355830575302239269663976019783763749241262736742286468969107337022279327816952802700012659844304841927078370416979815471186680072390883165820558512000289148407236115181104869814767196405024346888617923903262041681659735078502887525320996252058939394132601558672529267766849148050463045725104370840025552944067101307152905385379345228014640585490887412307016701594360462124644747146454662023783225485379853745754665104036487555514227491722871489271231698089930200166149527846130530693261782955340697044993976882167899427406769757608421458277785598410424017111918459297888466410438475640620677612504879913222760702890355162126971326003075314559293544335881035386090118026934487859641184552540250003467350487336958784541372829436318151612180057837030100964149273634362424471574437387286973259917837159348631909915005290836418055124704415346532081437178862823378726493129552364034257930584005644359641336506254726040811882581531318272063871177679670821179914464565545313386024452344512454955422786119323455841252104516301197164159221012169190176230447107603634034763370255818839390916078668681781603449328476610646176885380639679982659606956166640840053651166167416482316434727565475255916803260441927454368450821651960274992314770785431627989241343004891986531186512766574946719991009184107938859738492970046260852532213396343046358811650733167529479845615148862654878210330569475006823624845341016869022497136214016745944658376222269773631080053106006019711843866529654611439978620622829504425759791124884692883558257072553550962902513930174629632965864816277937244641295954548939643986414490823036318893343180937815301587186730319103896846637393264847943957762972902459553130001518919742760516762138409203017889906539361952653396398609775927940277537998086399654832583348136347064178625814210962976246921269699465327718607697027690645146967038150126870271294698678162512839517530186684785105927690376455407478928497333217815543430335937505693295896592691159950095061802927153794472615786824397429771315629933210036328023051281549543397515978717606822904356316690259861815792452217088812844045060503641188333976943023484351128083235452132517162609248549635527800161877339176815063103715721742643806086397359231159748097891689249210478380596506385808640891565710432054867909066770627411829116441753373391555818991760038598338879838525606889144493084972971883809136635000708525063170815129167794661554655452416877430212436012540320428585994312422066899803733273733659656285504693957815774872045910135987471778020869962421405513117018290703260322842569480845984154804589591253250744464917639190779359209010540905777379856973540494909080417622982118101636135193017364363779597565411160768543637880586504068734695055573922700552699541452422985620810625002780545056062939967785989298103931651475533051874465191862003296939364290708420184637433832168346046333579342404878774152426066101486037433890373172042116873948779401322009999304690121188307202018977645825443198717803912110437402885852339134028270043809616629332309853980372016348938365504968582253569304851903872736090007758532478477874521243295508700748052944304014802467108413376094948939453402770159040388049284992258545707286120690502205111701907892071823855754186313334060008993648042845433105865091441092199705060974184970115584470731326234558648059428689144089094004220946504063591222933332328336860736319459656424785306261629666262331992297409605194406181462474933365726425957663184357944392941821505388557062670287746788403999541250956337681363733014952123381516980758233312071449321053446067805461033913795278244846269881917459567897800260501567822875477546959822760902674649798967641458588100480759400428082151343828757628967572195278513344437352047506912008826021405025016058347367658973709815575330201586172132432370675209930090797212931767059793140428248110030483893895500172713014580888874474081125198536996655545232390290630157036752884895089444723096578288050469307980800330314264253909577216394539360642739998506765946112704934067420326571995003506288486140884467286589145529152130455009022247812434637198616327387384231521010638511182859439831391049377892983284869964869342097843607279673228963680712421350638582782708054007190560692526825937925341063738132657952358738882212384676592903173926462059248038175269786267628261009453549685564879198678712026007615731292410872231654693581311590696724103440722429521660040057485128270880491424392033630026668510080264557655352886321516536444586038873029141427723386347768368498461787268829937242146426663614590355812719537468744962033210653019595630988611721513047213433414838990370500974939264230315615365789427897692516524580749117883516129803630936895332994715546290496111550559389242639473716682346942534782382987822834010918913896548003889851291974607713971088301099245879669209989333691192173494704366973412902563508318644862967516722840032797743938118568932244438984165241122873036291463620546189542254900338691199881070984073770795027505541670360845750186685766454088704967573397060686618369312797763884736198952437609519657993636699903476120294000927759432164596121381976674501831305745264567085257939095527303181344333490734460359151289280668393408235711368039946476335574252057924771604592900621311006616915434605636547567470396260121922973737664263541981141936699384391329393409332698913222814966098590688868715497527304727548033832202048653668432187404651576256450211158503270509388434296582258949028739464637663305285224351850928672224530013743730400436513589123726414991765055317155050084292491182472086332424122026379181094723396485442722437899803417162122505008486256069395885884637746551741869826904363225204443719267633123050392042694686765155434604964466059810218632078201069216857166485159844474762661380386586315332534449629824453214912009055599080408018565538824161323827351631362946489934252667709312092108033669818913798963378651972633501368932897442425951255556184720672898729649440561721724278679211771041813534642585953929510770350737688060223842694862207020839551285303595340641971148980429513278246197117258582519471334010972238030972344565776326875410206192112258029978178965760359485128273098030372125350840697265615227499889248406769677476204980900237841388887364558204172323468423173556695012120312309093795399939499114480318386000149673609230385229122209107807385565606093538355801570478406317130717612317587383136191184346899571965209480900552609726690113257993080060276014437855223004291203657574760238775440346711657389158100455610933237928966850874002926740231842162622826101176897836554545781259678640272027560011753306316352724407629773745227483229185772507149510327105168609630419549652916305736871185913510512018846395458325297724447712943876705606179717008247583990665428419042178740957619818354201342682914124395980872350615861915530288451463917416204767284793422466885093839596242961047790133059634544992491807546340658173444317710220986601240270714883628507330341252378594331470986230508849555515800878259918559527452057893393556406277587018190943029315130423252162659505934837696952670647584915247821263251382928744567893083765608216809928216813509719648256985697634848904578280530920262580229036432716822012180234968693642745067901100173750069364709272784282606501321811152022857706361645423843338310352255998414648394853388594575197979570712906336684405287657950215695095737239090927219535071383245864262659426634356264553663783178086234666122044595062104513949071363830255630568539270587428480976290396799626371911681234092370901101072729617893218306156018583817471129049144735994712195389616553870364044059823320943315202771645141869453475179569499006339534037114868872556150428076794384203166951557710175658677615718141915002074229752619072741553948488666749719885217288560254040135871452359746024127585922628867314272910662677830838818435043641214511809320685390540460555161095068037302738132323545630843608962652368838185270652559227565757949299499985466848139688420212842766564052314734183223038107166062769076847902990798103136940202093314857858453254280615417481916402061904622602345335401377102697427138134322168064159439920084021633769170432927043565807791130687863404411518919989591771651054166999445607390227834447285360929137124012151600358444319980484091276035686552025306545087893573507090899196545204420053679699419435538227157916619731807089450456901840916141475853096092587109486339952570284805561402152274635004164358473698568264095516516098966765582800694537803831862481789181197332849091363335218655937558000510451032098224733788102943985502069145679173096064822987137250701419122817960680779670333936312653698950170576161128818707161180692195944912179834987781208335187286147683273727484727420271215002831355614084926669967938306134250693133419328255497946732550805872009030697496277512723877078378365300191230177309849515693561058454493216032488921530856689645564563514171682386190084364789041248510177690254407309672707588087861639787973664136649292359541736375461861362250079880722852339390180801881848429600017445445885823319824209567180031525367464540131968705237227740530961421849955751947878261797124932220418540694039885966857542541232669940569022899505339539189600891993449565059058559338594942276469526213889422384753626016423617941669166410885677031128590682722575380730227919917474139277362031046192070056039043282897203051169588528237929820583990017866120363719355126259435222015698599408128227944014242848943175152089702991712591846748676426822841357080784895137659356457804944753282094007376553179345105868769997755236929724978919610724415011444871022848424569094980096159853597736005424090609864283606300517259116120593800257146685393761137434229663982033940909014877660104526596051450726039372331635013508398982137880000521654825199973616424040333155907241061947687131556729734349457830885525163699073334852547194699204812515027200758385339117216886891508653293293700480639247687088348420078517540463255733778399180769528231959359264162492428522816753204919095911304193040532707707532336988640600257659056282705279534992925590880197754218510454335997535857054093479878367983741997595901640820372745606944873341715062450657319150935666949861881555709769516001361891892773604035581453956243808823542746819805166145180813302845462631785246217627259925814844086041535789188423292651165743658989825587378837985540662164721404042571440490461061545270882623293710961347857586984911594541262815948010984516814719227978031066096770434958466120974580510852204197116926466267108573281981314059713487518815864059318327095212968309918202798673077241694811246958833671835986167372419451682113544317251667258895804067684850479018688974754076105131393354059966859517256862173787223102165587684189618919497438688473236609633738710852012417163961324692541711230072936511857097010039442105369178831231978065526173570323334065800876145536469110165740709461066449992474030966144235854336164368196582038956663435167483522983314004697252313212069365988410017283882226724555716143962229911659690500139679476882672415797006123035463393781597810917566948288844041263332147579313481702673384827624812778464416301037027288357763626841972094477354431227157603164017957064006103284696615238274943111707066302062781126610288031414483034143150828919827940766747382733724827727332741066349687084009348130574651401991269277119480781932102458307559445844438314344944755922870091705672100852250589595041936271634599079098099525136753475163314254633818332767922208098227922716878445554704676936551168248371711478615615334510917365397359111928648847781575840753656372915282646096127945892528905465942505030944891170551148055271277680092430519547444782428172316934984855078033312119675884505265211364982374474162912847933367640987699763946214653318726909783893785043254701169481845622016829374699829719059141693466482418051020654233204699458493978122674718134222515793819106340793631091969847091039480016949557659225522157342815151643967745170116863056730369546160543850171837516973958167480494004732076548242684613168143395125231623830637313490936827372628433628054905900842394845501665062808012487407114335948424878149524964812316926779119661880656025205633170628746873056819283600335603383160701205779478197688138486765513130678887962735354189456435446913603810321086199212431959123180012871627813662447934581954191561348867104375442473643121640778415483803659724119572255623699475531654399478615962481420456334225085620549941215445839090180196789783282334167315311858907866028609973577857680073216839214276483666989359723077564268261832457538666719035168068743344943717619964903954535997769700960283932705776151643143639591850668931183823413910373170118402792376460507946428599662822340277073633857880601216096238785686026421991303586102387646706529773520646601567912734787449524527226849312398524453289114150568645656876954280650781741653878755861613887315489030658150311544371112331213041588375636905286574580729684382645429117638627669980207312328792466089767714742190611121626681536416891745352087574351356042029509287051819775902340934480094889438728274758465843480052956134224429560287962762407166104633362554856239832770298168895369927389504201761239231773188148198196107415631371463359116271998659331117117738217033868343533971587779147304864369203560510781336274703418377825619513053298288909779021227882080564285250269404803842864274398234313284217976706770054754645216406039459956635218760640567153729937474000847551039596538944851635985367851815925007246166832928851914082832652402872102569394597288015336788351105608892716302863599478587272664273210368047460358723294048436349054553041664759955823751513283024348805394346646295917720036038674065262473853418624115098481790167829562962980661765960128516498802515894811431988083324207452204979192576493228792119305122981148737451776240080411425553281760953483097350326090389125390235144593930145583777011747477381886714245417547869512393886733873258861352391759324405309723772931025643550561454279466216451476245668779192304202995849451576720698954889174429666679129708886372037855071248045357681507171418980024326748230412841206401715781950705272090159788269990422722701665443466672198028655170530783702614356308266035888080554814814053918597476333638637904682501523808302462975487153925761709943730540306892852859763198417296605327901840100609181200577673668677615533864176086689908825050642597319303107076658057688453867676888145321279863284477319516726984905551155000053825873821697061606654900072277546070947035488500088491363794107992814813319492096117744444113359177852936477537298963304026416322564317845293885166856522727015686079607282993750224247541250171528353567343440472434515495926124963167407856432946750535214932447410112230689626297262079780922846521576878644742630282735218038475511905140320573447167641292630761798874582735138521978316397434600112313417771347674162326117353981493159125452094591677193970056977524458090714780228916027705100219577995844209098287602559458712090721426901637364916222580861954914098942526798176481845768078180211652597681253551724926659226351277968189030611854070255610473590668454263820866627857378187592439010016923802180247293530745153131021429271444860293056252512815608308956696862021344463543397362669437359689561551022493928706827282983595130584082482679012247718919523467828524178171651887913763561256339955579877094195691735685843413982860136253037538278244709080203929249546677392144148946521907528649444315980837796908692904746366042795672600072451077764518852065020170110854232059282911058793511304839240935037204672917568853826085212507601302742688095896019619451152460806191587546672633321779910425683980441535811680465518576518548494542823861605014532716890230443013635764380008581244767816440023773225284387708514989520150933375350767748232064676883531663017118915237160895167426262006552754726555329220120394844714217942471557288505568411754712863963122024386565422613661720356250479283962339193399552583702050437276626995338097266975773967431031048190118445453156264259534687252450061422631958323751093100696856864404405001860270979522322637590163983182640997050717116519802614321950447993646882880824776184748183152049153953893533724857145898993903708156553218898391879354578188823706323440222358761000512518169381998758498822195911990711840366981752210645179126815582117891008638097149620257763018749123593150199304114824221302757027691315115843379005046831665067071302189217359512400400961940157932552214502046880627116606044332020326174339282534343338362475391998470425644593431121792308279965654875951980439750366663198500580042506009549462695517543846215264522375593768987662316850995062265955732886128514036954901608712317103227823900809895461429130000461173088552140590844045884833377882461443126091744843096996140794333937210745956852826234190769910992808013567105681862384752670815794921324447077021757474142519347972606504658715583657738802970316039559380295016360434796876792631815619889953215567038215483361318567566288856196952378626093145054857267623568161148620202547392817404704424422681263001094172362206815481788449978991676171985905035945598322086610989820468363733443293698159614770210545416792769682155429089280747705238966147632990093112445822609663035375111163711599814003965070927832603392684028835465680380051163645500587390559457622577392790927890282745880974443872503371197577076071939126308577939925166627791635213784390706178615453934708297522044018377625959481810363662741059289715064132048700411451986181667418501125082035157259455829019814702874505827953857217730813464918627049136123071717832382747135281678104262732969295460468296116271835294216412093639397433193483919465893843522385692261620341308748861141051215696934850411856982181818838577235078144466956051368224232776375515443220272190527979526568929590615147696588861369086190934024811559999545442258654287291548935322710105023350915358669413640711935606779826853575758208562732596423282975366954741091524618986591187625962289216787789135115420117345970115604275596523437533767066281032292020462181445782538003460521429944965540375245499719920512393028073142509257832152032328493883771143740658309295137636292905850943174902422922142994357261686408519516696660710510763460151143881017266041117137102871946399457470008363930958843758250355730418078124271506188908748780705827196359496740046957129560800355173032061262046588255309897325002517502539845611818851055847055686240257669257307139914298179215230408094354802116444625182810074731671579055888166479709125396018142210729339234878669017034909057974449444897458060606559556894254137651486279503953762827503769224554431128326706305350805664177529243384624282588646151415135724402945557039010257871350204464117396240374946173262144096958767457969329468532445605157596224452333364222860224965504225197775880070438523324943228034963490592666736351546284119791285114720885491516142999855109002685876778822934000402798076685679745024787193333713862930192595995226835564994073461772231524464553426303395694173176907630992273947899442574074396287000325170459057209927131815002791556921668030358998463447037486217286653432841311033264000894351073881506857769072128588082992949253489735955721045202011268585263349310282064688390714441702132966622729121568244838760547930275504152399842372678277640784423374346131858752424045807444912673278587021208312538154846913840295243206828302986349633725420650959307219488461488048013747201365444688208385106377216837707528208566974816272565647157489715209227312301780668628063553911212363106864409448689401557135889124143945732438372347620208428852490559832353037759353392426289069673720292066846976100135080437411089937703499320631430110339911377547360260786147977892137677923107449421997802678518936588144111515159673331479644994385194025796536387205554021585268654077164305824585609601691332100964446199206096457415529453359763267706102894029189021355685576479849550765042400110602610994004777931307491212798620641689513945567663647932714765426554784333871837217709640377494870020430309675897746090742365230243162407592177740130388453748421684063132972105113448635264502943878788970914825325234192323880282272498769887234799698737782018227690328599180349485565157072098685146776116176386744896758360194548336516629422273503792646679410718275335285307650872799401362733977387639332888833215439820021260483275149608269533296684333679512831400188964297447681823018194220412846826814844408158809511658476791387360724498703126687601199334018148483907648072488412821530170708491394224576692690572738575892232843663047126899990827364849858286932615280395142351622015274011714646242879185388027868605474365425672404782043250503478785303740700416433212866079473409990114408075964676441491812604364596313281614028412112655487200488024856378850002684733296959817169559230683168449489209776953018182213307040056259288361925798101799963734861072231027669670089638559004117712098351824306280627567173531551753463349308781678177981832343898335477831757867606917455790198190990990156931164300985460040240095514442873450905035891446143255318598257318427226007033044547744349083628706193593529115077253127919497703708085549645383436098857085332116581265783104674807307087655652659391507666309180783074008773114320221576187055324027124644068604386460643811242619452415672954706359162078591899120704918657393220604746607898681194135140635581449247592228565288117125578627881919789417901732330180219370794951671169561905368258807829914552769827233058382903899547714646145600306609878400306788509066576696614603078981129249932539237057222304259205352491589018516094393603184137065566692721816973067050028379290716619034681052329407684322487346317665171083461415682965186717986562221572527406115301235952087239089459919702929152601850919847665044565604378036527070866289429072420027380738231366973017826700236020236512567378980297817761208890649306508949981647971767476848268066120944124356250996737206878443322146577047232389352497088465078041080437578615307683645905749511917304517545145099188840816353247800283836658226821749654209368785408877675435417464659461660257419117395563618229920957188799221591933166198419641080514181053599844826340478539095629052991011560911377614114427793913120392196196325117895695350318772574216648842523922834636934815064552292112048133025169874865817805709335000954301331288893611693101348159653743557595127320169942794093724694651121703060267134070017008428793226620261805339765255684467617508333352957185105816479342150500881778772060957537567247949700174021908811352563455800780302625527206918384436515554144644014802959455304296080280289919431033763242485697073133362619895793335353028769314313331086970312094705547508040581187513240935794960340413197235458965408170975845613182521500427516736993348825348262524450869082853034566720024928392599603406428055420052575159262356711449612099860134059540345819545863350217827760746215367942313593372697947526067698564364788971923609056585430645939820474284861676497493041194924242088543893023743484989015003836336829577636907545107211911237824932824250268780691603615110127645414827410974955073830779390303360835970041987184100679619128126489607411438055632014043241633435583892732321177684834606807629865383284960299091407485342794350529437974850800811397632115196587238749692425389324955634236135232641770008419729135758940589651539728515058559963045653564493312876666496510528386048615741416311876795719515031348423648042340504031383361409442646022800227034445562103263514080934655734755179798693150427943319271586592311413514853164918908256676982473556002529605919072975560659643495140515467973609810621904291649403513511760830238692723093214548260170289025069514829656984313917764967717459885133315414685973628054128662586597468848888609659827595876326568400330754556796129753472226933229696765288167312134802414321985566433280220544020019846844476533485490730249660326917326932167838044438079788125458020726664686414917769009434259492334831635576049588646302136250608824206589226361625454014159198327270261586945403610089250006512432110371466514148776860274181433640731195633166141082230211989781874982168590206616795711915959707141992155348097713076094692319040839962207114819341608464035193482909882388447129695394469541082716907687099361035628045284985608358127055216340620498849419383611863680300286513003708758434543655321898815254895245658879551481937695945722961276450124612844602066350660236967765634864513075298031182263702847597577127513192500231537965235429242872583359915875811834013918259454569698999007802217440707865286955154754863645665005064294673968018702921193555970322826931773380200119282190431035997692899741820999434441789707563640917753784311863306337655000547801643949682737530707918583999302331072925207289091606985666373892687117053176082977018866906160325168134150982193051382971530163891453506687136156640337150077563361700182065172925270031988250868914914070418837853886107710079306557033170936802433506855912768469869986457692912658562203669185110220088334269702711383522668165238779750918565135190280780312046309218899505024358795531782307296034837572949187854138495980823110370690693292701758146433203161473166491449559482437491325199603932169731824089546836210932129026453364940460938293658653799570810221972975967629213739590280601671838411782663476020524282010436398121156193277426296647068767830088497231951968963971718932621058557373054999040108917633971240403066330199139172193254236480649687625210770440159318815276662595185220784005684822471489948060915848238331797054970147688573040904695057558677571008776079429239171385630363898356385529703058054737428580551620181871467368981800100205618214258932363901450851665161288808263185811898186126446902874002675537042639234811355531246434574475111431041274062313174664009324198225594999260643027490078589981240089431819966889323344317410620509964851711529497478958307340417816929025707489578834589872383862309617871519546792176188705503914201074539111237585277035663795285197917025986410571549812045580920205227249677059809917270892564468907164227029465451742820636256195727868104174383387378228459141978956088587953409576448258247138354348639885083171479060093974615098351623649375736792724566628679364743686275335391846685045065645692506999106143401109517110757579961876025969914887582864853606927154603212096822450152646094707323744163278673419283696126338639549877364846473268527742237992231353708299362282448909463777076765238538421294284785251399304859653043861603294769919468126853492263110155664671468282256626019694111893795799107555928126175138311258297656437595436936879996424849774724089361363737608682213000796434733113095495942007698292105722186329275306255161231267333315508904908245019752841876664388305417200057994920760505760503164726756899083729782523303167214404739330409886333811999569066861643244419085370863542653718368293167699792793067372203751138074624168350302953004339571149025891196430912004999914267239134997746615594102219113076307775178866972569270324061681059525164498221237910881706939376057251735667769880223681872889909095065853192292088729880109525499706397292791519854363278890878832521090331887683181140636264506531058985726623087003853774552262259254352463692823017413467252992535129816508524187548717095658251985122992542256290966218284532101239739736290381246428419836703126592275693515378652986841438257179651604944300948418895738756182497054281927448451054133383611454238951469347947431355603230652971467839997055636251404274787163255575905640128742570793415544383943352238893195653740753227124171246480458440032621884758617543720207754406683675731593975341372896295034293552787601297333060655735136951101857403629319936347020278396333093039263755278130875840675891093553302963591236935880292809486356792478499916538576103412359636564366603420820192721677333526345586816468648694775442237519067537564044273910167003063457383016556858271474508340811084293239595684096494596394008376547482139314679079861522282809093299716203832312377286314358561815528050240886876491151205065391960801743331740807122806263048975447251609246948629326191430498748158090250721788983529328472117046830804293411727853854273315823908477558461975299845552184225263933526242306124900914914583633759466177623310370427273270086677068895983352028417933874032144117249202541243871341519487136616673642806474209010125182356765817033411502731906649885289569329653349810087344802853194705664148158340185881723548065414967916648820297025818671653603263819802156581100220676515799597599047981888970147869281492408411600971721987375651059404931297602580139653994272031836867355839965262540742504076086086653566225711353702998303078966673520908609050080604581430446114433651835118345832203102026233983316406321743643040208277484365830864576519735086284567521881064869051765261385162881079616354141033025439676671054320843887088630242766900321271886711541912966231026843769923590021252283900917968655992558447482318348964794856818255917648491286419645413174339705339171227345262694904197519329453311980927739574791915919722723465567018908568038188871369799173961513368512945978057059092095499117855128750876730133592968300865341255066537859847084839375325358303031520896990829918156657639245298618958915538975121817818522065548610673605816644804096390856284862315511707383617472111671692740780011122385093530858195008971542369284793658098098284539031478297016177531003992375781184129350945175389054738310940988198921335750821642559555921823014985126632632862409531580925439777678535576112614353928670390500529412929089367338558554249081498715673450814608275756595334490809228797797413804144501390131448350071832243247539131161582208760044741510745120205192938778871319078101782454105367610736275830910028673656203996286937159691029383132164809689925917947170834503503898051901963572616680595343089319688428145973580890330405013145570045922871239422820775665012115577505301441706668680822849639535972462516708931619441847030256458011578623597959524750860388051955965642533931002215142503380238698352311707990859639595578643799610370121907799390197556007867146010660706063209266141583714162514107664774775267615575192229559009732143681456126013001454152530307269132356908552551128892782857653063346637335199667456081945147601262470797858756607927056729752929037199961556343010694327734637464421372039179885083561662651345351356585501143027815656653553263046713660127411560996298563825234185905805264543309039092166523942501848001634535207293412173338801550974220192298501840823462085478732577160602564184249450747147116258308312752566562106113483637855363714505642588949006364726703644793556897987978057541608774586672906709277263486690986141056794954643695972435651578611137422553356175530406539914657153506165846862429803091619562457434582454293727245046964535356449261497053745304544584994734058549760643330001750792377484819001422421651823814524987201143541619566511223509990348722644233995192657179878295925164362431589608762913492514305592988190972066592843522873554234707070041866190201595647150328032213694602007485536780172467712300296446295471784384013154271038532704899456480111470072564840407462076570014008050672265942203694534643425543546933106291906309932410235511236408718438585915044352663012693297316770456598631792304561586747548368590891157330669512122414100298989650858612410661789174451249318689023754666879889750217580205799249101044573572932893536829482052329073004415655819978498462327614815362904035836255857554161807274057555546849752847619114299302572203401502330241285377228612662812588434177973660599922421469106454088119783822767915741231886119637869915883664146822491383474540504450744545624087436239032920285198933874966446903978968684910182322934215111726947762637085171202089466964669883691699947640610900614657145804737081290121721946921464029755722995830564335876555795095964605210559261823742274858412164344756014307607320702862501636697551774869143103264681993965094425884271919001450419394523041917504664008365860318532434611244034107843088351988734483408626415064711782377734616783477571424259428744871037055601485539943775351249255106593815893008064194713790835484842105272493456656425515765455995351137912586002768115181850293722871460353608905774205164589406397610392798000582882973765489044722455009576269424358914824106136656100314976995440465296386410210477426499285141518740150722401360025904301629277351816388893188154412628298904814416699365875651223754687460610225378907395995153930586421402181955981590618340594830359850472430469836572834382403931683067118899002047789098688187787635028988114650588248948579701142379556747472651618030771215274076990115168127061876582028866810985375770976523892024591691754630176032517927019375576700377946877960098043556757159954555120991682064662041405473533198821171183878548448622543494055055053127482035616726556555562547642965429555825695186804928513180114017934890396424541990266506074348300897758605706091045529227176994149205152862710350502973864867469759914173929252730734758788618037144307756026360620550065425852996598474355353881238710954967609684178390664162286840699335877438035785795839780276023985667266317222506348242203363830513985633969862559630843352793894408467169614176122042244420076493566309161590966926379479323511377618182177523204427744602420763473561424794484281073976232899149959050955090119176600337185485866863010607263179245995164746843103953679166371040290337903613484281632072580446603288900325565502296753780733436561268504720564019824141295623252292357416967088903842520295768159420507258768108180737146650893900817057008473339545412485396590683117243627450941693180982805936446346878074746400453457248206109399870561037535508851382897807312881210405411151980207064580991319647455423515316832706924931009752969958377188573112073130306456442192989889111220562591717392080966583963829910690126904451728663982692082548465937491482743020368693921864010869157688945276989898727088370297880392375728853633820886614897160161958458714564315967006889464970824140975328454629253534711112005357327940156565123148305350853169242802549585932476575164168885189152081551674231945878955095235876176759324736244892409701283696278300191187194796361458050821907055996396108757558515846451107117966203039404989934080399208829787152998665132997299913459552488445323338016868237092508175399162933708858893652541595760737157046854487795521782268455136488501093320415613161490858848979699242649642023263911709503700012182841719888531329062692910287738299391965516536499738153301197782596030041873729216568145420904991520829303979448425075486890047213099991369962424001933332065441517685145935631130620486218094109337795761145114388553688790157782594782758858092480432878419168696163462359217461264727064200888613821877230899998108410060228367118824423123059880307864642743553262205712870993419623366842042865528167820210290902847433829822676249676611870593528843785048151658754547124679336332102958891292290978456903301024884938772717048809910484139496718471507270976579912761585336986937606930069318266354304307362266842873795538710806124407834662927459378250777722803567046556673355454047955964323188193203389229356493872949878578456978067890506605313992547054824468741777631563220277055134431683869287875193171911067358480162616397654725271673250297452487290493648497890167926719141498955689924618874954094346380683360888739393214556177456692209642875476495841725188752816999720404892936384893016980694823326292394204829278573642684716536308487235055640391432335019813810937247136359926759027834899315414001125658362693417626301662412742893076122223414130212277551167669073710313910316879216778153195488492263312667024054859648517127683229346201248938342249473471322208848671346955732059935408301240357064977865167826355905325984811319706435909843103704611400504319976315244215554904980385017337709468197898581986162885345090152080029523760505346435917008072654384984750443201943654557928745860682584700304199489611342741920886652207003037676212475852931335156429631848777179818957812517830726738482670114279395562414363548406955302558493801825459944092459540403005606692818846608890132856602556921788869189052273369682958544007917593191310698471690451547839005707465469139750343545718230575153175107354742959903526332927773914514287653847776352215940500236691284427958305307215625416732104575118818078412463817376548807421458062034384267189523628350411112056006144045711398772660066459858558548826151544655055363780627717591138480424746556596162837341562469959431933559488905687614039415751351665093767093668991902162012731468447752316804509281477015448421217008895881005247443018237584826683683418231351052658386413781499978628617180701753493835247944720617000379666555169334618466899576349506670246047141046637757128952222262592999365848475314502250769154156168848921700926473545231435727769631530684522480355967361242458123817343624010674983040233120712403541041885980990457482076667462080171521954782762539400101655461694083667754008968846175816139381452803698488448613695370636393847249859783261189239958902482808999277614162200082662474512902785377064002830585698004693167673355366397431464632808874721631755675183189366219257274932096102852825811395039461459161889764517165795536851912626698533900245483969485278431790109883090492742647438560210624010231095601827915253527757236394705293318310037744512369417790096667701800806992322027524462831245395591817119081217131333460835245401882932960428353977778979704451265391152796824585126833950539231560478868251554548551925481483845506618224625013170186846239586166745751354285059255730894147585843536956964988206224982629655054901821077270063953692988692600124881247900637291706454659142385060343929099415075686467450167626070108149954381720956568086089832110130099257029938931489412155565724589677464344064760468682635630264884592863588460039602486715564187987230907571123917102479868538712499551902704515884591536324451171550177121210554316393892618716133724099160966879769619042874968931021494750565941320663463271501737098618053659187602690101239558634049305675669563292254863320353125873575789015745981226184355318247494430409904250774622276862470559486392104953067716656745536018812453909416703121438793318140450039515740537746679681451922087525530400384008926260618424796999811960207845950052313782950327533103155169620816780369632738541652158813824457652956646948652494651996515881061468476038444030604971333991292294349165153793963064853008242592525231190074670075957037971501696483513566000838156580503831665416722598837292589170944677939021349485923640768957600955136732759820433383641458056814126037625093403721365636623534281495211238155104649246857169362065222936415312711427701931260857506610477947646160314590468105917137330750747096262106660965192673367896129115007703618003058100823303702155241909404261423025036023703110322538540504433765079146142008617598358367491084895177669688190345917977503998747994324858202181024973468596903100464691603708559582004897827989807214591026053344898292750758944611479091880347084886772928114510134418874978481001472765159141204222862802963822607467911363212096519334665429991620807224236924256436688692616818084281265237925481656370160465110617031767323349648921051067390550570855417707219709444231821641443908586393734906831832941706237214589629099815702241791027303124804250091644498320034000246631716494374137697128718694936236066323235466325007144868536905634983373921094311124182734086974156239387921526303896969538254630925107471233427951949480715657191048607933645418116050045804159566973921622405263886178858495801965404850509752581991435380915771556830561256892418835473076153491419600052894915525370678423539276172209818089605170491218119631380764405949911729882606682261591903327190621191266604266167049703217942440035611530006789851977305443549494409243160474768765995519655592625653266995616238482851355472175000075739330353993242750650599121763155785338946582011493364871856129492014876459729848749454973551603964088946624150856357448452665484434538928307531091172616191998330700934405719173075030033961422350646153627941904603811061578076575176498132515768614937287309882007043065829949662583796865090451917824723167865012495500732930282987616049027603378105639186430195783586018075655056159192906962988235469267604019394987171677852676333675900877336706138392853931129077971879292703102320712419058655558318782323125116574094035902406870522754942701193120043479908600875063414099763051818634002305610750888577478282095640323469751043686003681160240854167311104799560881117403227799180798237221950775811662986058424777461201211988387420721195580366551642622855953610970388085273970492683929857010429909633997879682025161248615635178617129575498193502068577105636628775526643958049895280108491774740105756909868986851274918537333481879287995951751620933241800006360541883499110480184372363527422283387493590473967714615410179340467968741814377899105223822899117032939176472233245489212583575828064825724501241389398648472023686388501939900032303185685857564577225060961844944201911137151958715686549798938453348446607043480176475812615888243869352048748521902545134897054204768867556204536796954502203745905990372670542980163582039122196026845492171084724656568473843132927837958291759756928519976657615383003768401446965890178769894935916297152793382086492097302239575030614523016580220401055863542411978141460823119362115927922648661427984191646693174389366318291009792306563388651129915260050375294673557222516424667463673483900392028199416792529308420926577862683067415012939325495847503976842213633464377940438704422363594744969300340023740052006894571824483788149821770453085942351186437645821861610168501145067487561360667921997413494759228754373249006128044980574803105633578511849140921395761638479277550053769855040743517347778158027545876774531435709134649562051646288383661019319906688376614743111191937123271104055257394411231820282832418870918511712988700310816929690223425247878044457720410836883789194412838517238259435399477478045323275530745648646796959379460791747514277951083079252259962396278849613017494292218250527867266307498035484782917595362307010930640915075458914423916576937517686073634409898592453436370828773563687520368795168068004487644048361029743999429398389680248012372304631520507196836951251987162271594950259363370826378535374264854530355910916925406648062655465343109157391262123139619270458432124267774725352415643350338838398774901060307990152554721181375129758959737876164768453006918634353946280542266034688051641037789702190730703905831656936070130163331988633709543460911959532968937173271165305553584438022100014207643993926121537802756562358323279010825686417308880015190174773724232637943743462914329236095202893384054717684456906548318758825882268349482603128841564858648159077427745385250284262983915151266571407777108583634118169378997789430547216994741792685618077843539200237385543269969237523575339434914873888167661547469411298991514644493882665424487169538931778273671526405257209406241930329714865354968857451435183148694675300688966720498083833106088635903215035818485507429230961733210098405235500847833207979869428923494821098253033252559183711243742542125140145196609560935751964691013775133703371460528335780330900210706991504921409892507868880469880672934233860942549148144718478017700067067573758193601303400089713660156168504802594950111842026735953788058731865979887667500311058367640242163872928655702684764047807388129074909337382343867629109256461828322894223885013638389712936625873334579310081103490672118957691565204992126617420350199788030548909242883064676681529342984238949464886833263604194748951085529727964261185122405025537202859180156023452987314080805869884582692818636247107335310210989213263240193749816160267443198889921226462524116577994568421751913638240582746832187730745921103199929376190373355952789169749507451155741014945433190448277155865409760140611688630764170200148864429561539643256053493971671041943177642305840339581685992468690058306707188793416481615895387118128677573088589875427104052000095838316865098150574543973970440752716687730244842884224145483812660952144991891337287984622617284917034583909624647824944052103461906469974847335652022481128584213647975779021268815435946297921910824004216480426935499670433481691788431447353093768067207356994839313440282279862455328561536349728019361010093639992821134369718013391121403504405674063046361580770022503702777917106838248685095137331192657486132819680509547934623663454249988912503232839679510104336778148270956100034357501692663200629499224785172003273082641822627513234820669978918626633935521803875574297385837516433242490309731723799945388754324869497196280651171408379963463378420049226736462893119666639240442668197227314177343056209128062258089153553288152481590394015103100814737582090341907984734405318653058840762132638480086611666000288907328362771823991116109330248373775779029568650716677737398290385578267282446380142063007707950607166792765387310100308506663252192485813858036462987984618984998496850319488223208466290824085506512010189641052914163617161829684098813112255352474453326291288328829575708427346685529345166822141646713485521252066116675667645728939194959434648786142882647627817951350468684838007410099407758268465322286806512026356268303855056862662974000002277244593662616141593920156293744057949566806017609004343002702291997071301471954229739578374787463104766475371087315488916824672436112323009081989198883975798108931272683529313599019199640822872291302393706681062873915602742396814273922019269762227389878721482020934294752798592061460583183942424315601568293632866679093857325603191584865459200582744514599764998183390513115182918168128427275898174849782400167206205324780029033221326985323253477988806142671307544257076342843946101427571328692263254361241874314196830155848555664705326880811613049838648585948429410332956527769124998659847113548565577288443259272974742358666769115278691109284077653685631156906454491166803973389424017009274891946069077191020157049742872589322576165730779086097783622274680162572636123481906738918263597703179144449755567674677093290841877575040352509590130607106033888832798429194225446231574184145830360325753409421707252472109276582417817892446468816016380539474795979950001981820544119867215046132568875469031495504535185500329303164379722074945506583678825156170720737654471397881746449812184176207383264812658224698042719180777333638219915136714843000891876647214885871363544459237296217413372550348131599355112589876634685117631322931379494040174543692710948259849323027061551364762801934485893324216055116648048109647235114404804499234810348950465352194925847395974473729918836823089892298913257359593467249895498324095825715609145297637865455125623831107039068640932833169726780813294145031537630429317379593475172980419982245131729171730000805978042754743681295353102840690899109373921472240351666189831264549082222347465338685171040231262468691273227265541127388590105565216839023091356797246380471220902520767805710156028937480722742725890962765810444946641717243871505454668123218216343757324921655144392150786947731538353848269033000511337239154711183178277545844778688216985576006614489594913885801006488715695803417136367838997355038474837348311673790564193104868964503806139384112832914894611223902059483484551217969544295703943508028976660887896621250284441630902234629947472616560708936728288030927338237520327185517171291564557962070879908288647129035441933039820353667578576532668414852782185265655722087011973117585841731509558677974757370680418107303648136014507225963254809537242154626434891002511326255503287055462080581550361746416615543834336191588939177850251741132099468534603200306355987599930330283055148636688956229611707027269963664737419859261362111046656792442131096087022799652653731291832404227489629830293623463923555572123937219784666431988561961645786842287937883719692397016006544750440172658830019548496343709839347171304266745079223687260462294245678093585488048427443763780706156843708273283117676492036575352995073562536284929782820526321165953372496003917886315988288367923002601579484908301727246507253176380458619944460496593796389908393737656486008438731211038064263840480272119748357471254174747347122227622372260444002456532581664538743982660922110963321978170973158200962916960140064945760627058406197989734423695382202470000235493889547810137965574955416605905963335322249556509842642803629315814859644460484837709822009397816954878569358820568591872996313574019367443001392899882851824210185412739576853031930867662099654613768485313592769261255915822757231117173169983809216539666690450234615849478247919977322604641623101587177625240479273577282529693319867795356250840858719260200351119265223265551082108830451844792014100518528511425315929206639743603716881610560479576335389417883033755639211427158187402814539577493004207076224365553817311282406712238457893533793690036895432918506772872188784499594910474445776075194522028626243320413459754667227523992461194444094078394232664354814973757120228885967927416987909659263550530573678769443847080680498878959686024636990934525997465929780463360615282109716139591260632991435856536672237164619312380758179531495729769739818691387450852166899809771685811067287461057611410868239876995275570749195259818207694930189222448179703371378063756851450769372573740361287853484344256764951020759910577067770554633781036014079096422431923951258675790367539347228786961195536483775894504885253720317224312454783754658516183475115463854754541701696730026270742223003045848224065246126474640428139946313201253147331348006520617778022376258668666523370183681609430108926086163840442217094503406983538169136331359470156877528461306302321427977118082729783204134365550818939989954015258343050135493706320102246606388133165294113662673883491102128357630634394894131350078510449687255646495133580679721745626741683975994479219109163746227726511886414372241084450387428141227353827160136867466032370665313289286750305071344822267253344297751214824894415674496487940355108950520173726094212226522769824900747256724079756661645850293578947771744144129652518186253052122582045599581481207228390079867117391760132457672329870307868257925653150184780418043138374617390835456594718432342817995244963264670997970807264519860799198871151651990126564370965336539795916220946487580461508802638743484361144800758189351786352829777884184805064176796094394320390001494051431344737476573756865387373212321129032422265316513954234932992752960849371089975814631100815423644609831403419726473022276210899658787780926236089102845352907339788586724581771010973985177644460256878075389375166676670832607630712254740850019935930755546358014811999187667534242561803784808986033075209077006502196178094300281317926013922780062333630444514006312802183649844802337285018464470650243028807499041735520918884416725790919815989081050929671502189521445152163588462859221249521736728173651913752339655308589664141276555765959480232472698002686859241677451020400236680663381663106511565774273414651535830379893733835252178729294887996049118878348378375516069302438138763137529934494646223960861384193949579277207916655349617567805709021776350076860364918903467373168822157094033943023819038263455356114389802222042947424593428786282295279738054385424610325650088654057721233683462478574237253221998604810806865005901750072197139711658366521750686610609565588937141495553645843574842480553532267405366978984006908894198389460393001731601405267677739725135959471082338488583743025415249535819732586260521367144736485449746803957676080149431988388995025485196438662529935832263550990291240986660494239696400793923774478061595832125428437580705066226429825625415091302930056308931314811538262283486117737907278425091714266439085697552044151747584017117382947358704186407464047574906906119524751934731775846937128990588415815906157655342960405640151825514783733434799131247185867778686413842076538493031372573353358640303932453857038112746574149637234302645041605543379466729815177071271668960681071357209141017139095883988407772153787798417231892783022970717846297942805111418671008572025006042134476309533979112298103601583965436919536712778001739403554759859355243436235742552882084781905839637447634514945229190185364352801829461612040033898055947310797613817629438551887701234742409970962441800239750760516197415405199670108852449800638679485524754532047611311652743017860996926656822493332026438453171081828822774539073656538895715963097580447115406566825506370703186124451025528268449807461818374189243251547098859727841989584473231049564432759832764423768473662127720355490435208349031344270291368952393125673472642288227216163004898546747237034126457172986556539677543228930637514030417121621505626328025395615329193732774556361644942859739742817951567725145845414802410781280654228092370430827941136576337645146423171196722377465436280290017180570205068185870269945667197150390942609756563717079100295226682450067217446910681220400200174448038511198495806059116608790944767239114428177602529376412580437362907592791657069029370904833238615001617409907347439469701348213001657588104433914930513612886194641746729007884695567404371695617298336152703459826728848215663347742891166010258954162620661882810848515594330788238788652702993368179529916004284488483476555878046853374351815475411852912599574142520751643923525220035390382789985004332545061004891335515899300818523846605277522590173793695563102046825645821337414056959366457685343688298101085982924972722281947030595635541682795319692400277703009619939524396532798846068556552708438467209796582484868953530826010323840327577460105157412499177248457311843508371046473069755253177051406030353041387723737120630566802515260546977106801012407580115377673712487638177283884282561662829130292439130896204547831319476446298556700496670873345550363922352189719492976899285404873571467614345526613719492128273877689818125268143769904081260620772429334158951890218121560911786378985955213473328704131254705029174494128925145813151028349616139676468719585171151806626456921059591110190896732869717014587748441443227829244438242238999085200403520878062892576330311340852594660202076226985834730565903558328557750599915670756608743616436324826327627445743569027705903907463648562523579329144375989232557882448457661594197168018449096230674190243479089064004597947001042320237189419524047898438404260991185365890715220387837600006421402329013525730914647300441513525699568711256747862306151350754496722012600280515228619366430486512171088361875411814336650478193309827931766320583030677581638789429122232164636403323728502922431970025673122956530675783129286884876861755156159668231326095474085638305100889637805306767083337744490164544673394725235226161959266649249912327565026427241544504931201363138940140132050112183296080775377321738171595433259428388915130807502584189312621125114503134818567748918798630638793672888617445275510878859070192302139163587026943907508369395409382544972341180801008581905370259718255802088885748636282249881120343549520284675337735664465932685527357790246504284792026937668341325869562772806828039245545464032210759307602761669065399937323680183045904595529986890826045915226754451607443175859815005118851688172656320130827831143409161262579779116239076628134003578377474531602934467933838181940591689025518581203310293769905954497931185521472769641646963746878423693784333891971780719980013758949907204474904086111963974001471272361894949315365489685582876526468085931009382599361277027430560671783912673468369754264490972405396179739852923799572631940113963353597653335461543490831967250060688731676209577389323024531666363421187271409978261445533839589333560703807179121932445768444997962943011455609874140858152192096396313621461301749672382213893390251251646184585474554125339856554667843294461227118089829023218594997142516257197145452138549454088907923906715069901049811880632527577557932300101384118525761044558883606249285397560544177787513445644872050954425238772079359711793903390034076476928086581896652935765745029995244979386268153189843660632445390149438903155323715280465662978635499859433725609493385072865919747954744113957943827417405633257097427327666058520228010762451002940813228377318265335025102304261566876034915116182888928126152886401118319020448296877933162359358198467860085559512064213403225304306687195230613446512468254293754036618045909020924917200542385953276910333007737611565747503641462837768239407389358296569592445746463228451165668734399147286942340436867324598095990533029394557693562099742956425125799873386259714054029361869237797369517639487842555750082785380533254427555472005976122676852221390607015009800025897204366433471303698949251317928312684793534851735316373983560361314905619758853114828316631056145029950353502531532506844661861494298522813345880418465430422648841124763678707656985456207034431303699911310229395933651411419201882117287113702244749259638318656936172669180813547484646013579104907977279540657351358500830423599161210856441824059755956052794662634484939749794786700001172125821967724120531722661886214467853488675404125693250594654560113872272453350304415504565424037913862774797540138016995747481981018298832488426987252688414530794559604597759483127366676262756006532491819799827661680629370308824510824621148112334086125884024191967285690568010667881267897588852955268050027607646026394503839452915705009101767812127147790919204680504595217856917678592157164979531488561070779303439595930363630664650281039988970375034222879165409733765848694572880184946613242208672910629751588124129830099802471160455522559516719314175276017649855707269956606194752933994198945605625934774681502096355816116784402916845520164448528935238369361350820801590727479829216039071308545202493180253974373620111300768799392312901066046548205587651965112026210897745602976921368542736891390914178108461569098422846069595330338775327829736466920182673305772031138703072783191155356526735276109859794827773617229743053722790114726058874144608923361023547219871029053435807467449236235105637229658125962886268483631294314583093094218535125135332062624274686110510432394425057341223731319149062661425368480580269816031734161899996884658842393167852767399345821573784850622384225054867564083851110609273013288465145828293371450675962442073240066519484484016761579820817707038355174339956698048683775125408097967203023753946333781047892655563264549194142442104738450776972396743818578698339041642983188601449357547870594324045846227651647249502714286738194111350539616688908505043578429772524102694572579318277954778443983418947250991166047298177237512891367838951944203596319038706722742955287090352593803010066221550666051462972769754849847751515151709768312681394246561627031097725002422984252062341909193693031692787870100876871481996052212222021513652239377287425383295030474421346245786621960931991739172419642869259596743159936591878555131987291398239079764997567312844928380559285819795319655775410907263416107269741610095007506985238477299927734377724847638728939154460182881654042553833206508549296610594907857920262298418858993026157189491632156260534318546940101291095239107170750279076955279322314739157997278377565317778691763483435420497849607808311447505396093022198840068201471621472058111769722816017351896355482367369292099091878564716483061422395216246359664196973963588993475187961880331979076769693421530167790268489524804599964312942354278473387634450127342438213657619542802989150023219778385352372640883832557580799115630112335338553112251700397689044763138687913359523856969590876969498185927098293776910045036805638461840578161925631565921530060103089335028984109392200891325090775256841324973449757478371476186317277769442351765454666440945076437422366582805587516785229639402743101139727773230883122594838888608647175046935637728916059029984249332871337857104504070478784243241563290540984825911358086401899049622553449732617023491844803522844582168582736126153350539843759446608899081415722788350911064727140786947883167387504516636360624950804094394659331499847913239107895683902301115901214965131813037583988211712273238620730046026605394883832731017977878106038533169331529905765277360900537722790320862815303335507108597139197505943747660521230509337023227493273854409672493651286030859512108286643869413901832133846957305395294540853592142457390013734373494677079780377019723550545219312220507786249324179989482994107811749383301997229963458865545144927254312645476884738893845419450359298381944696300013406091548262455501619020078248409980505477961092027968865129340189154510735458562409500007184261899848380282243339760655723498521872845955508397432416168584725221442099729563523617956232077719621158779494916601544090232236781970345293810624767907920478955475674716076729982484617187518509944227277112867207986818452225190193449047706733331008204646322358441797061035059982173895116645130237161470644898279486843050630208042867296868153418723171569914680187191907245677791530698880107085911154282812311011279603071708086180735374748754408842404459888875063838921566776444661103555604712914092192148198390624266463413890088573854152948758134493064025691264512087421737547284810163645727707561125202590385445652155080985705411772339646348736695066332160376298191668609126477899700729435589389631455096101914054391187226074818306088039638222562289635372919701748016544841555672147659143118085460580940015249299451005825366790028771111385802213681652427675004673230808038099969310383119254912486067317100915493842164440595348323057833119580906504202361786627053246560390992124721715896769913781478396852623730196927640486963158412923198609836773482463633390060818377748432348001868534230634218925207137066995546579644154361013458989983620617503094520953108999189204659382889115946511930183136020447735198236061726638654721190953804357154040120101139975726992556289568729341853972570330989483379378883234171382324350635439043727285553984615459492172189861451995986390135733743671417116774691402626340276504877213181448706049087221859998046133217039402664417106896283393000774228348670269231087571607994981038329256672989841194100445487686892115700676076988738968006088868484664793331680415091159490352259316336614425005761097201190667883146203006306973618934905931686738493765213101032790654836124988728241910117415138264280821843447840426242885508094881576287599593582901423356208897619807080249460760538300522808944827153011417852246014794874993469772073454238995260379847692076075134609356318847485585101393821390135733011839524911952928420154905704215553818627463419056549008511941866771608927177768959881862929463055595992925641029485073858565777902209938400452785602492983521365825040608766040784391866849859885986159257926831556639409032098300831952792483135200845639427216568909130013562515581174255326991962738130159396419796370924354184545711972403587520725547761499842515225703314124806250833153323706367652302425676299884686551002386713529062886977504378469102186699330819440978797759076887185315333073024334502145037917574692543473160128619069948699054299721061767168716697972592043647515247928959429446515641522617920540337896743447180143926779481878020461361594284942251513389185890166645372146246747862519247790965909354365729730968748434648783759619016738333307599921808261926558237627836839899205573930068579810124228010658370426708050107648693424487018495457705487088302462761350569838553725020991707115096537639295612965328929174686949286258307105076096934698554525239124717000350504754883507646138800868900689783927375327549849304813966876600105894735261040390833254042346387281706408536726268950726690268451921320511230867075384943888246549409666240493099443538270043563391689909201525042568140944242658831514740261675983265611117190338858607893884358076528024833300616332532314366602113621006273486679216490799853104393551249300636092698136297073988457135114883128765168815590196434773245898851882976923355436804948125274699310946250977960863232908534848340415613346956570306546044698584515752953494186344833103214128312285437295911026825135215323064244569231323250758592898409917642921008907859871485613642967034385086816343328950630957661407174267402119756494198494243644531587782744430986927082207347523462618997519723437180208600149033750454776882323770439844279935860659023332129560455387712666754854763099738677906025776676105055073939234699249427721686433322809097737528771729845726164498854251628227421043150204468963883422810353925932111216020390156752938134674232442233235576004921257034723643458101768666387515347183906199132193866286891232688623919648920545518411619680456929424486834767857775585014643521888605253486186852415306171468825465324080534638457039992166996314053108579495931357148683142267100569725050828562256438120504608408067764925744959880197186624436246607040571272017774305581525781410830928536820977571829510791167623349424896391657878268658296592729773760678806229061821575728624575471966154488138563974424823661324813470673066232751130533180374562128946188648405557950317605309974808914882805726641683895099902940100130300356961360080560930553983641798219059655154494303950311131774475885691602255036572385232628598835457532803798106693066004726681289783310327035651932732912814009684608555116487184427957222952736452537470817976165642283933260116830528145316533466369101897489059231165768583269876493550197857368254594008439221324819178144919764210549808517303207899562199409923418389221938970595108461010817216887301995550301000821918198815988273372797984189205545611584047702503159586166430628379886004010937924956954106651632755833987836877599603771521859736523533782787174076136392177143513379953971144425719556090262627396486290394834834263514869359822713795375032778636852351728261019882647759147926586291590303816128777827073538618221390411451694785531277781901929479143878862472570526897354242351947725017718957680896440486070060429034611363282242552396516598871088730988442221166557066209669960665768908752225965917195885326792387415616815531526991312865263923276472102408473919362040349435725274935399533377183036453024828846505602643581431350373044810467223732784560636378983604075377553200472643324181647135896200047006207229848341957552533419747873289185037813623717769737022601421377993279553579527979824883689133325210511865957038360610261777532579627374181119686260446923036334314276867339929568912298548310908740075890045085093203073275904746090500675669302056698460908078498445144568941072915037379759603952998610675652132153156827681344371372854667506973736242526853693491482847667613134152706167378645148754419735694384708636538639006027782262653601674622353839182917017898601954286934421609396532756431719441949134640999944154147958666188994339294629389856369262579410586894782459721731149465396538241034137971638271003448971678227690191049609477891762541634102467817817254940936734402704592599544508133357659922019277105070062132833021819097113349607468647646119513342570016046792940400856887514087844532863318786845417084214520532943007910655507834995292764933553547124756834387016486309099574659279275298030684317483031256209908452620106978425124428716000023143466360237940585353319744412397860146914831962300848389824500194250379869297072195096996593340026314218334297425560654660932085876097907852347276281947475414741576036099343054232398423209467851548346581369362775552416438211135546861589086716368579706982805511084051515498574164989536343207117441696231870257959276726042523699365213544707769131952908457147330371171132712198541336936995440655682380737969653869465126795518092846893032479414630758042964958975778382271843540450601763230074523538406513163456438311542622519328492309693028998751279931142764136594387579175353050037424501599659395213044287363889638673326747455904091103202761149756366856968232794337767693619039879255281557218567520603136545128234433420143746893472146850409942245105972578587058953888437939593176823249814680675549960086422530086258305975664611316768498097632201662681293590564064476774677478832009657434558435980053768946138878652935115790599142389286951918062632060597501891373298660858435335288709973861737896789351734933448786711991348796142298972619129247626051096128284851088436377810440528951741934976037129739772704850910588216594839163905999219185619963368028214810186559751949649085861529570781468815521503433311376059777542249813217911603609268556222862092367004819646268808950015445735487652931924492023329592309874341389780583062308104799350278819901411531557885336457816428462060552409058824496241222857769919400731006765687030045955942369758496500876803743102859296752294905160726879718483507639601538412883074290945463202210381692522473587847874497548182837911701705170925962256126181370861342618963151248423436034911828015174678097947679222243881548938861420859121125236452918083596912166489649452113625259496213035365249561591049705551074848914006825586603871888296860464804833433164286488657095782480936489194698908645824571738913617303026421934726090508812750393425174027349783640120400488282182886318782945819277802074391707097494919028210383027158209301918822709443190188406982396878638811836040175109734964258336393664638718781312231921284176763352098021305951371505999699624528854392264451697288005669352219134591253533868474215439884120699280348171594936697317119995500778245773960384210712541912023755851884031620429602074456805744447901686848781532462680782903415899488962060903836149345846976748045901837455821418253391392656613965689992000424497805253064517612080171058548722400711730112151461938489982631746210181553002119266732269762907135470394662204372824254168360279373605493040591380754553087104705767227735128582669686097535185895166915532521339746763175645098332762875915838088255746669574440193586621033304670057324813078350071092057023476099351724034917194805401062308507083129653966723642874804066434494802560019286837799275166229716998224736777027337775144994950611731132937547167989563994509695083496324690696236079791535288194212023958307788212735667683388130843759509026036673855686193668194331563502100397756161082798755612539392347790286499000439868508665717940965477082960843252544895919422782308992438981571682743487324286064468199513026007585426893592754321714415202580323292005103738403086553336890911614981671930003490182065504073904267063150791989512336695958953009237384030514601734921335097110524077202098379708538424507176076879500381992236208841086435933146630704176001720675187760518268563224993584847292735615686980059882630365476096951454462833170794804872169718259475869695850283315613004028866577570709005461053742141391025267264159809299132791077683159786826528667470532699153052239263659939862703155285239581862394636535451198040915607448488318085763665171624151549289840098815364721683446540793159044640367138488149762781615182711126982565324104048486107919938940593663485048486475552497017835383573535494053061359809509744746283315559303273812075985047957935250823948139111345476942823931665037232505107291356737792327892053156696589202310550248215806827385125313590246050378194003394785751089155718723356543175507143439084148562613501954071590390066095393368333160606983602690713574838973382664394021545858048362843049187984716999038844081651650942262784314785728285611102521692221518224573473249055295121065893246673227832786697471148667864876534074218838410376764382313686060543739711776622637234965729166643234765663455074138701300503741733018764599906323054997406634393090235221287598962614156501039665654255785488126623767263116955170756110743791317007855886242791204404483027954297319086370681709553677512790854651262560960564360976027881259981706340156834039183968712944161248075299892126600600010353590139403401167388705858486310511960555251482661383780820839098815506058738590804544837181039455499554879641377058139426523793016250578458031462014708509290897905433969455700223167438069020210802221027618342959960196109260806153613788768622436792849440494581952569760589795409399148807997141223984881364296697962900652415367932228258183306006114063657908812054097747371815018724650631240603895986811315013823756207791203836854174693790332389588678751245581029327061344025557713785350555974040492101335164378285894636800997351739490725284631477501675704399092336915362920963725363194759294940636188298746703289337807262816143690744627674588776883290655254861453715361917258039331381635606053414717241998634602129398427310972418801747468658546448026487779043307438253410050335723632532110420542376334943276401146324788474903320184759307209746231364749034628342633512182930754728081798937385875402714792430978927020862312582997276748461808688679494204221252164943724007393278033178855689866343841560624660672066015789461696980784789445804262577436169824880074928485771942354873946068932827694409773364094765187634856362825874498962240271763765479841369009996411879261216362883231175714604149970672629779003932695367254925673242789501635620799335465224105818024864023723975593317372328563750819147261309285818444082518690459429319511126889422473691807706922712440883465711083967825329959761769017944851266443824406212182263273716175109834550047038562968586118356981217398509758468246727933635190301896692349344258477766747141765175365417432923541375012481070222884589950508493799199700315595773630103717680987382865813256123550271290783015242161995904491894179644757761607776056957414642813478536012848906627901075580023195117134757409731076070306180569597706734154881744984597806658421295548957135839806888372986796487631017367198080180617942691371404052072858574088289352373453305102038308822870249442122538904446196018582839968934456032593067430850138956490550047223564429086755324257690700281588326677611980669915923609543333547660212114970220731284761602838251158944867174868184537568465962408384936438264947539287281193791014726102181204537122728896700449967744091400690426430460877906442419876249913613330688940554549208744478534390744587164022114945173210075317604580862929160812854197157246792184314887737204859590907000146716801712913949496000638233266528126706582005089091420736676849465593914380660043255179026757323899442732515736205467813695042649629522158183997792573921796129466830092243926697066317016206389765910428694064408584291244898547257806194115988933099330922267542135595812150942681150824345825072597320323842143835730363684472614286340776949998117205786752108033480524737920279101822310518873281571276019798733222753965097753433865711464666569211210764397435416772560413089759500671635143779268525011472665327615217343153308679900150937972161571892635918092202577699827430864755982201293620213865060286522300280257009228601388446806638715837240410693454374270411812191500396353484996265945222151631166878384136008863178214770196964599224286202191469131415988126641619384499575534506550354334022626157367186988452768710044878278970330797623046911013254146759190999328456518189628472957619803634094599970654685822333249759894299971888046902395710399714305393021289199943197889632910991413196715509788402120682791389597095557657903372393721913215279421041716234455479018435217580243877064259436621633809471116960557204730159565100465535972090501003488608530314655682938385912760986110238189080124065149434946453493575052748812065365879415031401653323537832749070229979311484465811439652640527991176261856604809607615868361088605479825730587887403104373412053685442276177586953289281737653112413450264519983567324578310830861025335615094436299619633821493733169714356784934724582453830248481998293125436323970760830597979077932811471050063192606436205967150138796772473838545203076560690305681870236368811132373135686288778844260450185746712341980851234441898454081842569758444747278830910040636472670287860710929552728391356730591493419129812028172054815636461881596653654918364866208403794578755556862990765815915393469224078703544088670733497685293565992489598717830874966762886735874774621783892993235449162327316827905377232465022014742775869213432835504044334825196312113897594365291260076035704852498099711423701754269160286720833568729736657477678270845839558187951075780236559511500494698045510453484050031945610446787554623482745064807295496979194426006728627182557649168988712480726378582838212112780541633306925709074214577372464335025686585800177820434983311762448560743755685361631381974370500834424991149277383818432215401363146584882662183513748801399956788816487453809755396903674183752138335515615539829529849501907935914142981513726966004756969733331492665774219487304292585839435671624778640230277587571091378230508055149793405957257481202225633036310424740393527664063991589020718539113550660537484399264220106640518918622644156411972813286794577998733557545832937466044604474052465471531480445629999462233044726022291726947086216648979880534559382373597647800728688579214104659953967981874008598878499027281616408154368108925448549725212475069653436020003853344568675658048057346033187037634952213813319272967997172643950013652545930106684286785961076859126068357733077020746866470325520498993828907091941023125729765428267691001023261352444833432785070691434495018932333045037502083503166560726027086370645941813931087783939725059004590558300370434514525407490594925803328933669248247758634955329421857187385573458944708602697374337340140277767226077624650113792072453526018296820792141162094224865016063284867314366240909078462395445459768758726976115764416152420228644143562573231693292593697663241750215245221877026253249334690794208472561675956691769928776957413237130104924155069204333173749967370987050757361472732283039730302861761378484039991185820981112671022049600725595428834826341758126727071659329293193051639799136583165376274516765417988874713673977636372307324310326026246629101354221309848441351228885136037143648340154409163607765914619319216362544266211877520919223132429056620208555407283141712784887196393373226154960604355053987448805480046005637500483966004377676008058182625792415585039921146508617722841127235668476063148418176623740300471367166580221212895640077298114411749560707250762814546788221513619638275724511641954023176132818269173787129899371975444217652888440087679294139759769413237783553649925308609155500935497406936032332597939729131723377317680227750230517396811908632301210110237270391988974055244614917198287744471713105533641079065412321652837041380376461730422137388536405880349812257045453532899242068544906495866244803661396911423409510501368793882656347526454619071789609384263462022577674791784429853236525325092083960658845863288094011587130958882061938734920567040767304432776603956610585215741434164479026668734331886987307298143423619524047693049865699378078242202239700921277719058866548576243364995978859130265332924191843685336236105588056840427081618314082526779872489040409271534740771858704739824872165709685459779454601199267101748249188384116198978045044140154351198241040767738676218371307389377736090744545706334519696534799319085521576089531523510414664140835721171136438602561704887166023851668374575851061998932170325059161969975608886493938449203909602406633360607730672327937988457105948913276875070753364348533778076192236421042647803261538400048910318734519414882065687190454728821351475968595350119136423098585625252127775380016829080186690092660043921736685033412957763359879823827332740636357573826090090662579045935857465969006896641008992008539029894774283308452143910270512648428410655477946957789822526962035895892541077469410393215783268019916333966986558477622369692827483645399346290584988912853288482917465962676757623746229944607725667917276147392722853502248545286397408004368086709941583913157466728517048680684447199535390907670951549325049238572251161921601826423956376852141601017405100479266508647694481248335289598603758310133628187710829951772553188615941222196382205159682769212544700692995600497310779897219959857680994711237443622668653283609730964515912009036050934548058262004560912391010107068935800769415218603647480047325685840171940931056104930592074069212355759824334504850268166083259065273888527994848463333933599026182440832889409986442298285503983059272310643876603405794202387550927561601895931750541584985492150895692717977212355763553699658078676086733037076197680014009513764112578475522350764759160425083953203615821458418659683390328470491772436285447263279312081088849180009954460306563296833426536968387095780286827014401007656233064929502273025028941133041658963189742488609929857443525808541245678423671532467475094135865774303549990458722350175206454425977171128963541011437425513445152771710731610970294638414344859609694617908815532375563793165903836374388886594368470105016343509133450581785144899966866095765237757516642110843922477952813167440665501195386068368085602425849491696735623526782262153553916449764142082112556066887394201332717505415979156615364220092740222384542295634206946435160074719147292968972440195798117882667311440096676140029782370614302912858823730876798968435796908753065213846778611915622009808708806784575023643580083090912351410830812151427731660892601870276352050790954675866110075575547295838421474121293213879017179352698026676835292171817027628775900691425523087995077365484807322145885172768100495027124733153661943895475233368469382201323564172746160549552871655861569873041160135189636545392976008708871002609467419852271365083268885174277725155516688762254386894190472485502183939731215913468892343563736139933131246382415515605838048386499448142896972209674564657661427269792045544721229276097284521292597202760648205131946801201472239542064401849108860678643367691656436047185389808229835117544847164178699701565331111883968528894036813988776255397504897225937859819897363727452727356285316730859835415566308620393348422266171086970071482544558404748419366577661976219636060426477996054712140591915679899611271075801593949414521837830700724252339715676176827442455025869021074086934050852173374155940845403567155912661767179854092506319079837178648115473376310914193085259302602022301821581721557611722096812317668448073829795007819222567111132541379899465059963410827181860460025805796619117894909685693744791884516608065701098492454515959946591982019959632640559457498565917353054619155750957649519775191339202808159415176346687643733668332516895598261606333932992368414660890547750997062332009234918469113648352069401987609264695042252769648125254180465821631764162904649752075414827281882243391241844389488244915153124360522392828212700963357650497306338896877063340119611960669705399978529411300875805908826978826501478491481086807504854803039010852540744764376991430212954739470895849387399317930192834317827563017714285652555049006202660428428764711590727843528674487766259631724645152291304412313580635851324011713898121391340090505890675299319119187093731393116311777218216089487926993238303700044969784827508501019273700834847101155460457624566952913341543441820775736631291395005857943617948659968070824186386707273603680895355408814835466837364744284397424633722398482495027945502346399542475430772356750458718298755277351421310458465020501232003322726072834334420152772730589672911770455432099853631247888217363611456730351291601134022373221145775426386826147523545546767402276830904366999290175339979248928380633515072830175870016768932824579990281418298560744575445443008154179097345166152502832811128626720420652747999007650009435986283720410190661492821011153849282709824394441955807060800824728569413932764209563958722384195959268361907071412919701836596265212551116373336826558913797355649926526114637261545486399896817429946158091771743701309327027238325884653011640190394673881428750890440009398108880898167050272461285724449964591601219843003253627459551202153525627080512836194899783827547592302937797264342055778049756875081005951693548349298261136387951394173610478218311466075629145086881538249307940697496172236724392476071701559665602643745191971570633405743986745569615437518910707825135380366604504684043688792732367450232030386847644437645072119466288559660385432513769500907806303547746440248627922792930952460754447808053092670689243612361313297013069328082679520560826367029987169320255424204505557243912766741594802191003279134276180012206753654373310456280946074457077553938633110131337103001723305086033476963870711328695651885740640610450814098336206461417341051425537922444857806770904068475215766187669047627960000063382000067475620020618803873117374497263187633965429601558333834438667089298796015638349092133248630215700942275663659231972830667062269803076843421351140595237916741750803536919014603504804243808527296012460321439618959956307108835742245933176120062738344494129978583306666807883531561451795979122517306405963280024358617272883815833107237295713059618233760170673224231878970724799656860981443052580845760617548869928151774193507182733428986356925234262684949376681530577485063562534004773790570072117763232564921647364463010210385390939668384362460140714084167137730186140170060840706509704174096753841202181024118650367922298502187479527747304960873983046312281146630230227480748316961459813312107125654821221933178525113682893313418904613799499895281716753163144430368601903678016989924442885767141179653741576328690821752517667706253057474980347608795830953042963152217105197220524263864321665662330246748142260040417483122781047846829662611856381615739463057275757928577291030654398432427973471078648530490594724199658022332820233669927712428531273602101524395751403857063243206189590086361006932278900267482418697573824072370128043701657673180422212028696680106577925582741057804423453520878535855734664409875359094386921954442058097114360810253685961364183141954103450949085639831244351594627708780409256954445895057057135495100035316627324303271563937116882021143698261997793373280620940802805715444285707239545047105332846525824767940257068091604398183836483443768114520552171591805936563127729431893370794391474904207477904921625753300608807757788247550846254620348225089776510331003305622912382807127472860902471413327452333301622470126128472133438327964919279240145601303553812114629752269139523950907258190052078510884881425353834548153791578457793715767739207706978525889432609184393955968797684840634902174108805948846643405841288280457231802184198726109600112520820197296198891071876874555098853925626842268976247390720916869727675393847095955690090872054450425841090923155397078761420772751455467644171822374668190231057766698339420072148719470347756363627363003466856764612820816275288375921560900822829804357696216605764246235278530937429108095939840394369022571663159764454122439160036306989886884034436885225131546551632858058065581437913000320907116294865840058723299799883829434077536274167729832588893820217812152974692113146503890529354307741351644979127813866879315295762163451343927369403053798959271951803084411138109107103040342303340778685424487261608747612915068448809201735058077125914263050759886698313564287823668577904795941870587376598985657165749826115206883322261915801065866117452777151199221785649748131500414037604059629169132053964161433586573782529781623680043666361256061433037681687186603450551269634349818401633654976437921483894650867284690115283558436339602716893819404185883121097754288117005047831333173820402717175553282538863842571422261362039835140758554312220899391175725877817117631136413552818863868678184677227832884251539401179938892979996189479432408298264638220317635642166996574159420953577153375963662394276203190539338887351141988084721456138569114920317120361284478890042925614918856233343461060128071320794694357456581909300834983240494444704384807425705504759211313109642424733428018450989365017192372310611093354412722571033039244461169276120282048444848874107894840683204874736373577975520216819312585344932608628688278624696577623534197680197921265883030397751610199788302726361893444584395928730524512263580643624216989256246979309785680150904405708857594952242911729986353475668390293293162804070285350303070731591291149660646409053771019871062151556748492608930818527490164732413106320443474427491267468374165599019818616560811399799737091407524929421931262922172792516750494758520347332059359386643188611827302642796339675891236234832340092333836197645256051008565540200930469014655789296738151905660544751369908242019140532620744752544773144423315961071031726917280792737351754826025690412805347919915730745809393335847515670520211338132548766704396071901753679428591091764890221259623285028647493399753771811149052541906077892998628742666547478489143598628897131889944998852769676488705495761798268131562117221080592710248502786871654789273308616703869681018240318658921587563078120622960613178879869162230645576117616653929675850624823417660165257836951921660833406972421850618635756541643953589076644224024250884239439872856072637094512608156427452989128601362314700857585553305118323532044842015558809023411662424187121662531605213140861757846132757898686121138226684817448772553486719940844923076475109137587693298906450469272354079649081582786682815037900220159250060315624338614647780479059842754356834700051127091305792097030828039894862705569441704233337042015364804223576859054378637067530398594934770507191425659706537083400894747353221771416255422916752309517322498379426009388917826811828709303658576652554689477874101599559789890759863740095661602644280973215840157040172603070008025820785778125851620609141300225262767080180171909783849512798474929719627456717720059006165648246425441497462097613083086157503436215430018961015491229437809538589303622516150206299748683576978755536395225661644752818906905942953223340590591297718330217175362387940278224893778944187635735266452380230994660439195774983023940718984202378575056703359404978259296709959145668328961065123291836276484998229728213996157271358477896010511790739732170251945847251046682057443842445396351829857525600084821069860961346175429098561312334010441172590349414861628410771494296903934669674024559629094568068626789040263415114634446417495831566732998694718099983606856722526414602729181875975381366568901564245879913121304185643505250002821480230618414845955442010553255368508861061593610489645416757014266203874714039958197419163619335190984285314972558585388367214420563563815602558049176442738201317755536268825179695926824574025588681524526897090030492163885561460445845518272811836433413839314186974180843822863813069298796847806297313996542670224781440904985663266435003672441812578630148402292605830054711648049282731125589538346163522175491007710941661690463439624676690186371644848702669051244806758840683104138503536926019777979415049078483845019465386518374619549179044154609735446535232526447842073607645858269676190017178615965589417603748055056592483865941772161387227034366774831723547083103172440258777360572645618013799632822937963819373423314663580075816111358569493876770889474230748969793094782405598146705668120257778889149157602829282604281304128659782593059263530414429778103209031223675204675792047016497947411236147634280107164136755901040900691133349615982434128331324931360407414059594760178208658982232800136080334390211896092294527599144585104305619057555174944117286459709980531485998778501165566518524668344804748217563259596217429540713454213596902501547881884005581711330533758596612425008883643211767145727505584497813340224149292842463976161662865660022284993734509379588462021528179354035933106366462281275021096155744952995880006937603137010738599257335276967747046648569664179101153852308076996438836320725557559761066191504431940944111390180008847518258441790370199441828859526209587816691577603258549157032968393582275944921722385479546738862657821895553428530266598648665672869189686321590639222174509496815441428698609110952747591315154889720584535797354310224213605394120174062253985204901919829157445426348036507442144707757936911783489618080319245204487399384645503981062881520627521818478520545498570624738136197755220467873861764114024434808236108046268893046114886292272990905301172183570808745049714579943402074159688232269662651237876118347162602940861377400591698138411412106414677129208844250291989229313104075332030053777917011332917073103101200467465406316306824644206316997217478947559391605123407044619314283643364389563427027034218812782655202469839701337691366548372938818950439620703973982431863144511946300252306447802873436760268857390547612981810385918499593024497324544096473903569170546644616195450235417567362614376961224658313436587319734113049791992754988469653697636519097895825920353508010132672872320185890017185294490989502510120802729867930917491045933998000206784450057446153584554906793199081671406627595486523038006402361381328143133096273354827820978510456128042053815916904502773925504509704915930600770631525520025497351964551713274860133458439699065833555142654175202559102443911372219963692063844115424245463143928021961769712651365967227811696148467721379229248567346459066411388506298180560584772200221381209494059183201947010047308255700666994750880116326483857027354425826701023499740573130330052354519985040591283734506067280306356951174142011018164686052714761004883732088625979458281396087694041988697090266840482527313740995692648348613807396062630628842231370406498632735949415046306470935813089934791435749971812562627535099649633996124536427869592236248516762514069629149108100630440078955374064052907507415983824233797573990479739677329477429642288435668770969281954127730284218361407660084571415949209897290292927430549184248793770038794493161577511294085718975881856751618140814856672052607282170236125393134787199315275102855215725996494279724270277158312645863142479457548598990718835536912764488812939720646231240281244330573184775636271853519128768592636315647267620334326739903494422226569126632735537630350817740806274730216925949602187199652590254915276312537753055199018190234435926762497582912614997240336637715530260769746675996556914046359646807050427565964305625915776398257021367990291148119183151678887279453285316014851735740423758818081398417406860542288489425984907599055293529249206867816829932674013573880951898649024002894942233713876596521637755032087728775243197723143051978264812991526304756661519489614835411302311777628184154272069743343466248496583642788789168549611164510048137577552887959658384088313827159466579471145790500646374393510849593625712961712858524545355171239595918155888598499353171680943123247479377596726119688575649738795720441966612782591419698734704147827380460363429416732068403265470111102226934610446666753020886837427116481965556500278034936044867499169021554673696364310490385962664156906811485955078978653669072801390951612156097959302612589942072362722317857182291514053036874620924881788994084367286351989247479243849151127270896711869605325819182751425290781217217608574588027104678667509005988047099481771044397263385624845348646210751320732015391716851568866943935969188031532884036600982634306699229642236698595212992582777526282761255327366930042754518943761954565048896316049481583068196265731667355395818752209984635224800229169470565951542584052894905470807416185253792876894413845325727553764209958456615552281644556517202339807690038466395670605011584771590198847060094617259679463606211976517896669835573174194452027691572433913509813463409443080087157634800709299486950412261028280876123011385786251440557911248445357475233978328064815907689009122796457281490296377794378935208588186642496477885425418091551372782239216847640261803044559844556446538488303652222504802230229756542191597431347071950348426600997577174554192831492420827693632956624667792966415398913938122094451911490658865314144721374800993030677917074372855532719050979091880693407134168513066845486813785114113646982154761982528147860101508055779819474214517628816820327539529774657374310040098099679351527899578634650179325545942834921679615007744706087905308560190251789480700257786814240284038547868434691908759290061061342457646912777237250642064353460875014214299999352561579860442007350088759248776839224120538790749297048933855096972971771922193309142851042008713499426047035908861299969363652234204338706967583428705568478795902310533420746900254883421565226894960959441709254383382896123541461986048352662087879898987795052658514050356754523152964115380328320857282968967574982601296071626509877506554195643112468792236319648091544549523041737408850228783343296276753470841530562649580322710426760963499140527596109510727871347416589344592527399338925069485827219025891461780045994094050456897897515079312787608886171188631282055242341393659237895034757290846856374734430196218640460011789673610298302151643905961252207920648396338539310678476408516470163519011436095852808980519186643390713828059737127156005701115819977374578930525548132317558989946018787084021183898296855560107979786704151560431705737216580054811605817639133311063361603241961002086647186974736133019751506177951824749804109105125754698683143226673028069311038898741857787533818029131835895537748605927233323049369270690604023285663985859561970020673978552891404748922695448355817231662830573011023126192640190967036946750967604268071568249719905029547344690230353889567754886355014672805617266257861837638829030105547296675940880598378170509382103561551101226549401538719241258122980872674445672998697134895689328473165353530995042829505499001988815032989357464572833440789464037354850580328344473502084245624984659056440557837265508318762667780461934318052857859779262561311279346481838514387619366028008320873678194964260744453809591281853259842683679316790592601393469469827764222384596062150826019486690792454567779555919933209376134366550171593149802564431572863302282695555019722754957819761936745619882785107730576794387825457304862403945011055674322814113557236611316679462493641422608975670353363198494237461545403291974432788222142304048560302970905113328746776939708793132924239436698420410933211290554767649121293003445072103774216633522668155502606287831016970518530265407313689034817327490576791188209353781434635231377509210841667468495084703126131262090506513090426638148532022498819653326357439625503451526339082686032615198992885041203347623941472263317995469767431277614733962844790492827646184872019123962418773147152070081144118014060479669139985125962846371923727968374912097142471114631491876581134324864996996553955323227886236234380245577624447251350548269302047756767120963388121768583011397435226871727116690548053817729329212728370576979183867757252279774713513915573152145688749672446399103531995594981885162744973936311012166505531119065856356593894158250497362140203203416148174157161094305360760005111350382188251881687124628913435627516155425917605282692994684348929723668151212752642280334874205685025856817672738252007411349234891997122514674580226749286419716626183267221306301630331147341666419945350063503644495191265926218570679216399073975526815640646278713705093589758592842547251800791810759527674272454008913802232932720869110483010850419659019188538975044161325460017980874587193137716582383165681740415182583781984476136561469386324351611148898682149932376280035058701561510852718570504954686398131604091307527788887012896129018872664199724586042341274123499288886633913201022400118398205802526449939065501302333186274676601545839381501714417001504532756417996177110419491970904421658420996373773848303142669233437283659226032250894712831031179360700269120603690116504883498110663005606810230180688186488130375596194906637410735052731792507372912465221485794250999870502141454236517338264427379210942925741993515801898352028770877852670981287982161401134490623313912802781795122172796626442325629055907277213350637128252409791636752540963216188322470459606707678313422842503965383684086678076919803378729722814118234502195948661463442440186826742467477295655120654012772551289846935076728446857532088000976559748866659123213192661978764892877638885022867211428232744145117256320343693843014656503050684901645679580527931945026912553820395246590227826764034326047458616946912999724188551930025773610339648885466814428489496496626808459253235600350741576352267673269472982567491014865727942272123677113492126340960918796890284299335994890334442578255851067938891598093079930804213227001792304131223778070163695229209602467396403077582215673226309463680119126826330907568020630250324505522934639220426603666490844888558782950182182679900631805778777932671547116839075760672153820770352090491971316695140012730551114238802463272283289646431434831638645184779180456087717540184498068508116300186126400488048173752905922647294158861395224524617025226242052492488683575253072105864542890891162149202132509543629535359526192768418088578499525755468209868007306551014367847626616774081402578351494655618497821790577231140532971142453644759390382002247309590745558595347889854305997763092524018162729078874874069847264075836983378408096790846181707730265501549062497270282632865158621450882205822923005007912177871784815086290157163895848784738787005317666996868785986004534301418198708934407873556778463116979590554973662245301391802816166303588905033464700913924761914002058215773051195198407527192164050716935573438756415970010781810510317478799437296010504158125714689634940181388174772951845369300359579493345312861847138610304925261896614018171410134253981683060320988922434214644610011061616009974693438202715897920224858555437082623664478028660553652508974212106748910221589830530933029159259347799669078151953095595713594248219972460035720691060100802025878115319857326402655241122488166361138120017274739332915554500534616772782641368215434385977273685347550925911874644974639494765381170944791475618462623413419726051558731430757273139628908127428853364528506781339302041051041971659367952492623445992325291435501819190284055617273795191830689262194896339446969447599740246681271662611810067546308833358692055318341471572642982656378505817152466858709753597633448230306360238128097371885906283197172384402780165704262159124139552308183579103466355954362378685386592233807188700876445444953619869012731756961914853813885348374936382738476314576108072793804923107641488868902061445791012523599025540158782536149058786866955063341795423111608565286236003658932089244726844676686298980369517933273370048253041278801831801687242195006873775690844655488773945469285994903380733372316857707595452534402021097883712124921430352116747024197946971410569820334583947954739495280233255437338733758690845649891396384903494470096123793665910399797572006449813908882389406239300591479496367316648451712480798140568116879438980773618869550158374024853008048501562805607476376960197440926063197223117973220648736430250550960720806812423962155073904784955984910183750941191417023829014334445354210630222719281375602412100601951858896406221348729788865009316457800197602724431601826316174124180495479224832487277882060350419121089641189712859847939681299184282964830486209934112078981865733188796364149746198685519546051241590343353953188681711623857469475393469029206841315260961564880436737929456861059835971277218838102515844900438380919125158883895213638938427354144525717347687454195417608314609000004822501951773594311343765478868141477812948714838694672305674288257073624701282824538666641092478594472946245776999446724553410185373047515741468154286598715050830636992894834754308058548019937388204655138070284815137733229230388253551953611907748028664992395197822727648539963814329292123041906955475799955547205392238538321705571968817110903741481281590029181742795435713745440720597303894530542566509097938450713936770486552034969408266458843008655180170515707050363075219449303359456450696372584716870832348612615574350618722226272802639969483687157762731689672441137496293458207717045963977425840016074987110862689372945786403848029275812004906163537540504836636894206006492207944734896436381983900579240033055409713715147707891399022020000188845099941288162852434071510890236214211069366897019732811505977579602564006477504043118674206921891503925781610241219241817596869487085443077482426148074701205517314083447638690373653099783711960040401179625429747224537378726153098926247838751119034137721905036360855216245647352442741212237387182131913568535470764247855837139969765889436572614923270036051932482079088248336259666796622991919248886167348544955521698693931859626542713600825188032996966756703838997963348921385843825401408384366597854402910379380817116613181812371607342924955099871116725566338250231783400430204279317633366030348127892136696147149927690160537611521306428002332629496379691210426266297079256148284122372558324722923530677169670771237128139062093752110160513920058196936243672544238073010611714127851583203462330139525990485397836470285836077010962950025493419298211335411965525911020794636600061578885675161510161628996164153280312605030551524381284420422428008941190157146496203931985812091585294356974444181623791864230650362302206143164660632010514281650107126339040908492803552943526100293297868518816324245677332365072278664399140680138469084792046206631689501471835615772970867081160271688894233172465844189902982012968602460368770337409550110588692676846604734014953176008348475890331788104427819066520121225576545418440012377009298453530841539419974530960393052520062104612194931007818282218527279114106822130293218014995388276065936227318300927391622897845066311665625983753272600773261560054699524601074604735116708681748469191563613632128510995764693389256847523163320158078400356730424084145485322578647561831141891288909660706095401706332322348075156528447598509453217631193800506134342874214153067379981125536262329919887888646016742353913276886716560496410376205191812285178256292883154384976099767534563355562057148711530058977085522194941762061373128138013514725192185496968299158618161584546819714390901603173605474285660665253047242077461822420942900258393448289748225100845260734571348367852139239297003099451904624550421373212917841479292834521073600551816633246476169179807791074880161891575512836038997773366323667251632434238292964743143748729179053247565931358744311546270240217162194472909433084140018107149769231101321817212374441231180218205048469403000253515705371297770243395285880159034453249956105730099679256951499304299387246325758221011926280121786770428240762172821917731935934647091654882190823949077618218220675950270499738969782194011954125292834649406077395017686271898145689945521122396836060432928176985178984337608858321313532875885744294985773398275937819896230615590537185813405806417455614231968095741179915536663582219314432663303090304835751997077580200101577587029009101081329437722085786518131014743300633701462865773372779125137479683351889679537327032562496053568898927294682381979858739047527261687160536250598510569620030990461171620300168951087290244880524291034958304945198376437212173298817255453202977089412137610220182408484471985675540108356123754922715696008322979513310161673974554609445160936125190690506413018111769028045993132014774945314970676756949744669696326012065038012505541453486902180473476358724733714607471665308779663740597952902284814862615422923831255242568227586506715260328676733284017825149376384394188579474987278685258110973147338882662678472783691188515768711327529045053678083202459414992855205509486326376924692015004563810524314956212879164765183119146331448217168012736743036148946136147106167306888698303690866086480189547635180575839205522974585281661461593539961492793404727370479720365208712037576932727978783073157463505505527655125147150620154569303397394538105585980827308580813947372928688226489817724830136945481933763113360592079037689524519811403916166295279474319590151569850488075032092668721248806381342383077918952533782821190474206565046617327308461981892110795664202391084190928241789748947460408353303178482576731039614050191693680544338299231257352771451932076551652557987834324946186798115596545326787901837989468528129598632965745509932788422092052047590459896060313313314121951710754246306777195917403835161166150579802295412407078516683994794859745940990432089001993323710493158816714948978959016379755792804056984046694933634021244288119424351525284172128584385881719077203253508861545760558896288291951383635918081485332825468994406130904902902972716848049204376550259814371798524261002341644444003702311683069778934530839450875762495025622717382988333293382870896424791240777039236015157187969427958492296223902772861742461815844217545813288114119574245107325200122013509953894971395362993814758939433229440685941364395205148845734517263359807701407253370510895700187921849317712165462486702073836734935194714822017616112037235241603523460598162718644235535048649818262094805961704495794815000987726497549184553087889131429093448509106493595113710122532118112532501734993046288051241579290332388639071298223087822674402854439990329507695524585047316403953511571742184910185143847783217462284936874666675580068134786879226853378752531660993212928581441077071928275401631719318435611336379387532559931242335902952416951520945362737618260019548093628462472355062225986734050204746701234151586744937452473840180980759719231152147552026771765258843724607388054828571549427053073194352329425250151591008288064628202722598876250772532111947379078118356992542344576490307701182358102456792015558830158342383564079043713326392061872627874145020688543098982641282872884901696481557947038752316217506187484936477896736027219416729387051770796438104750211140747434748387033662187974857496534880138052321686302296483560851858832759196505857585554641816819051196364029520681550032649722026478005572699572924286686473311880986733325890373096064309770152574972589187299958226923656432346294674863777193042796024470641283691244145986609726734676209201321474576994915487514349757163051357139728434585114769956303769892015616642554863614339794207130827409591883884765799796105458683413213532605878802017698611103475561971751050528574369940585424890379817416384508774228717950278349622966466894946880140381747933770292171605211508333787178160058553926132416293670975868050308812770118613596494242543375968774343650340316350130766453854032144386435230353203048825901966444721599651376494318006311134006710741401927865045965355327491552620699787345324593268093957740174670877009636050913565761401208133206316154725558782678750205005007587047017174968258230802002704558373502561086323649165857651597280140155886867601364261068565595315348661292349419342487154045786485971229612888401492961140583735234499688408558139907449184625021294181092972509078874349667119686258533303852220631065829597394064172420830492486096617206605564269813975178949170071349684929325244583545960570900042644028048164532321582674743239284649366809881002442261331993214824890185927590468048821600658646919290944219211928222496080906549799530006652523506750718911114724012015756935309512800237495869487170328435685030033852074767015840174581306350597981474394521411176299306961535341610064927492041211904676020935696748041185842595756718747012588343145759492392137782656043701522078255430870869429290598942358678503229681009703282477463007618957738864001145176815627772009300129879641528096028643140355147788643511123989056476043775210599880237368730640025955648365184624440923648200252854313098325481339516213530089165135882000092583252511482049198021340127067252853849474875534439630322950739043538963280177110320762457226024283319466964381916252274104115633091490646919592940412151390216223918368453776200131824517234517541329260411982225035426296136487620735785148707184803625916146772254719680531654548397112339171560115094532588545299211117254628654424012947989612505276004321884061792687783040882264624854786536244412742513843210176513419496965265164347420497105856264556716540011075551594829300393068051944893098737252248852915768410123440162347850497889347843200475062998321699721518854336478657504261608628104339797243519014886193836023369927251859805065751309031991461924983298470801191289627211473834329638595480371498379651044016621118500037028981028835346924106354316182746807693541506643599157477581959641326185956188696444398022581289981342423155790569392728728310880321783316331275917316432506764785214495225760440022297768368811023426716127542516705342585855742054249991516625548735567199470798724668607750693628278791175931383321215289676188222263471967911627637469892453891380976000153647320134645628405683548169492777594280397320949127904580844089806810352663084362508708169972070866006487423898672280734147893792987579761294515702659090530159989532649220102389978080819332296471847986058139123672598406001672378863632932260155057547294451330168845246740791339255122065476558732266766814245548145030590146133842881872326859785746107024498879715384339151617940169227261771605602296251727476341830397119292048240736222535913427831829177812154946366821739286177027912957082732946089771373633399367820970707734467084609417043251225874837289475784840624929584232635958164586566004841102758692273119548502978891994949963088596213676945279107041127212048191431776709397163934124433755031503516874184812074132287521500613819127119011605238644257133002217108042279505385368312635922396985614204401609736127746049330331690311536153905243253011131047270761760113753715754322201787291059065222905276361615947849365412789866223811342356283178755608540476648126643937998929784498493348946921574699717458941137328496833530969800940016762169517720577456063816290267392030247698001708883403517350709742860601164579212362261509319070712251408871496616199236357787782072449258530968730893054379411497442622796608984782447786958329875755751912253826128481228347060129433573087695122018712996032685495590630247253690720029586286468876298920339797396630033414022036157917884186194948631817415064173723805855671484278894368083411643695961719125429102752958167234664192592871412827922193765138161899748566665299476219803883773258437275240426809808216174380945589821460444731187715012185813176359897582842316006861726601382555345502327647800069231370478750596602437978574362434300113096019619405768804711477123258948457541600553790725343622980408148409155321941690930768918301003552236330139508388661625167898145153571597275389025937200093464285883978096491025376720197671886906300388836122227299211373452661395638866473927073354329366869400701887081591907091033695776284018431826919945358093889382522295586220092822355187861087264909282479874702273932606607756347390574239037485220436963385717013616149965898432148336572491031578337387525095019216073639031339469840849117753164974233404510206240225562306692668113619604365882467195927536284437461326805692823611652424646196555965552315762890668208348905670647540806790530510726126987204671311025897702407555296319355370396511533687227908994136521612121140174535522929443571218463341700327546523519754517723480106105606867941347922088368914763462130467107534423533521645093149685257571388488854847783850093995504416240410596445078190627630901993683728147392794259047630806815627336198842659235522392373900694640668596721382978847485071718820056503567839374134361987411182347973963560863060239886558110829184184675240957035836599302847737068822675324771699603166132818649835126044073642835774714990977854301474499035267257688990885573221696207994957715123022771317596522954157705926970558276302262042442358573018249802970251807744859459215477331687541880274976968534989048852479434857883530296509158147005670053043629634572414734812253783873192138778045678536710017801923845552157783298261825506987367901538136755933180585247567301682936998266040051671686118236831318292487637715362679446212276763388853525638699659461709789708212109972575471939227156743998300608076613632547721468121022287046129109017244599878493320763414304395826758761544888595767316661634411513360055629889001005225024690086380276882880814708337292791154778803323780315846111991335787157235339414546591503492619314723126461265268546801822267345390789911173133490983421710650128382500261367534047012693997984623024497578063792536751575165037240505181375721881038464489134538932533976987892374091016596684785881194825730563099620281354806539117919439377656410403883722699246352024618717615323957363820793309875171943030980470774205662342757821385058109740577749830885843159159604411053485452882347601832377458661990744339858875376599149545393855783203911728683168788499781042995714363289984170662556639649897335551484499961265663912996635245965507747669108062605054366786155086986258617050890689933863794106131616145673554476800124077277006272345927915027969427199319910275092195144166612297818847044049256683015491177414710993536063675705154110608857435710599255012057310725034890461236612364637279457041881637563027029277424846398060259124865422554548752333729607204174866969818505100546544891264190973268606193712977908006396399487906041951108814456967455575224916999847902518376338700596611100912514512441178546039756536724414094737315046415765090436047909503986762428364549114569035133297741563319921821362271062678072315124286263829297346960003398718022531049177472659377380202070535489275974588254181532061696196909653822187773276514479900706873119244363437255021394041706738717912920728783763669551603527194818178019823503726022006558235491020534784060132546028941208828169137057765417139718039821603106666519477831310940918968656171806050266396825059835691492404750092333102856494592340415062715431186648440490612805723226508562173052279829214332684479884864476512675119277379570370954609652752605654436022940539360306139959073941009477532674254154659717518375646243635245509243754881643067748175056258106606613133320914143684869194365007465156255702760591172859328259553205925469939133121905597507533412304601730456575439814153530044425680008233883208853120882244889892019415362379926589228057121558622748837495261418820961405195175900964136456247004566912093201711779066235638698855232255367979506044930363172009017126233137463679298415101622088463231878373842693397671886024055490881963274904410188581949941617609001854102362048231096609116922952481000282723630274488041584594085342177585241316269965289127726657607822931460483037922518172568409909426551252502179114862876587196708637327752774474703814872711424262652524556208118540197473616797383013702655658851412708042245054546308720660671491982985417614637742760537573575446000869432928535886019572209584117470954112424984422824044195311566194904333870899235732554683344093152922929093279569732318655787844712476447235602450110512896746685283179758280216524942812159777513142127899481082492056707401252191977181321798284018540991671173994986729904095498058380749624376069439362951426979029196438552662878338108230175930241505571338064174304554645405043791202394909947983882661242681016995035666810674181177899796146466040890793360179381976858464885568950623829953568901048907964494855161699811827949392236554983924963914446176824648646002189683332354127359728763788298003005866157461350604954096028730335020519325301249230084961681120996531058680167023858718345995772331686168347145746929061402455745392619681980963679471758090946345604253287194358006860118502604165382441358387970432310171211661351008225105782587119349927619416014369511394517510268954933643628900241867609886209770180988420649731943850661290126003814899174482604153239413910982309949430301246124358860259978979258349252271225334513004359456359630750386636703940323273948817052775896957546055412270669578890746397923417401096971973597135086124265128921335628293459279197495243725945092722504734500679687982429312942640506089886140100150872529728870995549090514321636674707363339856661954564124293975483262445175385812831520425139405498959830663159837662250290329551630993855232818141774866411105152427094040894138984140186011608885804448234861103209925375209092735457278764819355075809105089283120979206174888053376885771620493555758621471075280839713580226193269320721032557120606066377715198722955243782715661886774497986018173548194735055042214360046829081495223612053614292280937354709254956192388055647608650263347928214044131381526558734811647101185164412431479991576063170697464979905728069011377722049676417916953030388463019224910505962451129947798421665060534775661134366445054187573470357928220386571038228328835776099911559170726510770072365230552580228160125605237411518231726928065108312208449089644515132926748716792138813148811375915904389397643643566427817743957098364674380373300666418486097757337893346045390151634027215253851237292375177171394730875460253999106368442936295287804597558420596641723454670710043299170498930292185386130803199596601161690502536999721909190199282757497113813074669419117094949224368971213563799849428597923265449461619629655960757597747503808734732042792115342789486209358184719993570666709368299767785171815896115718999181987863483457853573283403014727753895659771201430255636840579688861660384017271423211010642074279324535320692073493267747448576596539050956296976945151584546646432910685309588574301640004611207172103836825315148993477477082540835034551263492883121035103973405203864977391660136673581715537412619474460082801120167504498710483755245884474064966805235416902033564664386340332684820578401797247307148663028392743393401014386219085700178522242435155098682390473628700916163572181266568579607035520156980028595190186375672435106969691335753795528440128821053433408960395285586505351932908298485127743376103378689491287503448346612894739909314290181858219750380765283225204736658142237125564573154961062427192956168717746756111240699068608250590628696416610004781270217978194566854941675399032365443588778999600460129403117695284973106672879873273791981808249593695713442456416454382297584698592650541524003944703704060238911332437063579112575575287406745264016925869698797326143624162619418432798536959444149412502089208982501531718612783251631013866395467935478817749820364481479739563825665071144221695268763823849061709336460300355109892830782908484598308686268282988743027480113662690122004503020214712709540717431773012718645814981462045738295459608814695486224227588373164854067113808192985445755662762643708352997521828037152048987215865995957806079917831847663471495180113680453501181644739945053204012766970926176812383722136975214923978485477889920144905752480051970781633050615646729854576383452875141986824592881004072916902016694254490992124993179940998149151622616214914458555047352427803146210748091127705432330977578700557898378276877532353019542752819225566624876483977284667505802056309811537770928424804459320195735121096989604221515073550399673259468584742815803909964757880007349846061558039428581415243411848727606997685866524641932555564021361129561003936389145318373297155829464469278644300106854901331290708784396458237818334266260983008096915873961429828158850582708131189215057090484278951724737971267747564156402427406021110465828140232710861501116587304075229158771640926093307271318945011839243858256068692370143013620941479045455566091587652467276135996369003989429786971188473666327481521059344682123830569666346295640109535903353186119532334827736643827102554560221228199480607709145452719421536129356116708347513512376663881228543641179747947468494580311476762457971683555510533700790208429134323727379052629256707299467219062107542853962162333416245701969454325167374318177587664994206386794675396336979069436898123747896725140637527064347441517077758495322536471063442160626413233376586273223267843359145191159547767878774081314000759303644688598609169622693171463049928509609274605322095566715282826168856311843867599361607427565147528704969018285169581633262832133032521009288272962516908743686037485116501795550467877387095680410883144436781034195813759259067017995725514700413004849627612278451905088079105917793537569051561890558960901158817278249014402345363786305458677890223067597992815209663987472931870020709520876554557564131628442277635775811878021125297459578941890458826955351442291261364045797672583964240461625088503432059479097479809419793471430741755505042605340398343864942535817450258988747722603683735071595270701999615875257575485615094866221715484057246835175979704230490033267380174348746598943641834720480515333978681711543692451056315374190246645452829429924302925941113626087076575831793522386192413049845625350470040961078894141698782293257124514373457384865533579216705882153358370074767419191358059636521854989992290410307896274849225690146899611111859980282528206650729126224444242476567546830461719732800088775222166525407219572456535982336827740049373704730355770583981399329563230776366037464170528320940338400098332273138140506833410908125279792691779021942097305136383887563913752495422220916051040116181739501713759569327516689924719266326195552950633875478550113464647884663544519203247263122237522105417568022724074650582548265521165379167908513353822647865912120144139435987471894408435326076474574665024865596149524210790019098852174349230608149439163524273910792838463748692801468220403184594060431823337306435008271802365031760387887745947520340879365870467399663949683334887885622706341645205222151637039207996052333025196050849815072806343557887280998271002131193777852005352998423591684156379704262997947862779735423095323298413647659791735111101279545569768508293475408092174732424523567189564524201858521490042903187017483522310647850182209871257347374723137443553785249461102474044546438391872012708244143031563458296682107060535819747410684753340334946731850907261468115835795702565339214820059127112405280440062381382131125223493769299915975739427043702088918286162374740309997479433426685302592126407517085789270509614354445499224906085444063348260215719226381217484483779876353795320224725022339103100415849228898661106886188744038842411405033518376604417754061428215104398031589179955489852658000102089658337740168003703209929349107347436121143829978492434355666120392442471017492068143495577449818660368274540412879517871457888371606781783974402963521720426499962967419046717496873096187810127436926499543799341057127871021277830351080691595651727163506540503570837044831383548263728906412221624996366434466796811482600706190330839363124760147134538597304431444211372904836766366853269591236905113391634840073460601925895658945501215944731642177847781886035117636438369181705216801565475474920975317696515177024255180640438086612351230085942453986256001464865413896097891091378255874015531080849587706095825263744282205044657372656846317916860975739170813696811762850279855527034286147792568594786696694639841014957340186923914360696066044717900555355306866661784461383070241708744983186825245876284245831732724404708566028604304577910525797975656871151402684571978980552051034636898932228636164153709752383993856770243873701914921810518021926431514179228622566081327980314876656470599414415621809892723398094835710325121610533147347056228796928348630598962371171315713624539756393067973526030817166524267775740149369367219480332471795754108028005533364446244013665744097986567039318405663451717015757954802077095876316464970549639759487025529564980288566347375651002817178426695672878501368325350347633019413428641475491590606012835114759580324837968568165815089398563719516037867457178515163753057315059438179202937242631189958671618421723651704281763290838443018066223912838367993385274714955801620386725388971354603124587340609445992232243428371353146801417919171826339008563280835152168334387845095252110771354968558646811839677198240812987638352197751485144730972222071767983090008753082214970891547615227128777030150304841858156398912459459403915183359156744513588124999027912934736277809354949867046618144071212496431222073928457481352811873007958984107696273079535060789724894166952894467905614251059716966776617566137763642278167347456452846512402569926280481633256977811372491311392915337591804144311820422005643800775633998018786202067044805643882355495768856440855210147900461668992838342491958009574399081225326927683626670418966239514988184901603723145041531364037986258621110813474291064242823984174114565306938466421244513498362252541648703249488088479514816179463655559612005312956337204225210538746411588014661534020806960787911291844755204726194601617913322449138593278442303064488998958344760262902729957100405097442575931175270980593545051499017633725911137887401748470092977638770542729022999898261845850223602546173279586489992232918430796228364639585939146169440346991816219556969239214200337869795032693262811101997775742612758144238299400138051404489032983842096215350554057789262534783119267231197432783069896412378865840093146444835636362462537110240163506057128307935874985233613873710242734099942384057062124267925657945355311226271358607302838474266871457987587398809452347775412146004492590940348862135793609918441681484012578826670404869658566426947009819987684553016521221385756091800628229552247444551314750513953676009657732710125919731214118326787686359665674635422067411272546171817005181034221970930535941647060158122205552480919133713747301647935297031333496163352485418865261418648145727396580758194286386387876792069285710208775485457966156738549638365864368562703297537864419096063395003578667720650940766773939079234947303853426514374984953046716513478688459097327482271911626355245733738610792392030982156232647681175863587562658236031986523583817724152598800731494820366547167025268617709967147106354087233400624410582908941120209040236193905953535658941771297621057360757486522328819333525192487073062073323779561233034398872963205562359953926828475112597993494140685234922067942912718691370411109767521876991576098861517308529397726606559237846576084113915642987860695322067661309137920699748092960534836268699779326355115638184477987756695509250725607948019076120965193380206607653463108039613787232695054624421763532325634828321022473711625766327690045359277916615358376978903918442806041630433167354134693566674354175613512534370359278802064816018421066586881852900330979815595401180277098283689199607842119834255731687245283285034523199368603874840646921116955708224298791662002025952276961342064612031978880630088582572596452625670087125938391649686395672611579795396795450840347657198635505865815171297398157478957369877955725370799531180363748414520282199949776468866172659320187346439731026337329302421592687967536905574601787721570458238038550955686476086890186056130356232207747064017283797076870428726427711649420342492579106910814865449459120784188791661256570717666867073607175663440606687374669165265242415001402702126614844667107835763728435685421751311422082472051869036403102439660961662736430273989789573446795599973366696465476326069882144702979914272484486072806078274371705798197652507949528106661926222910287096224290561044690410285408885472778765156864631918162205144414785573349157895804045891040249451690155759793235959560899589535143043125923391963904372470505470672847965290988229107833511925478632110774229688877688378868852335839549780811398061181927753611101396970742103831319103032670767285702118317229641862159147438432233530223449266778747503659079926207822412877272835385779025629664149371549194403773932040104382532542433915481594352049316938825021621848018586398998731506991304202976893839609082184939300688688412073601742986504572074840132853282911362693932438865911926421471056599800110360415310224613256609804413374507892764535424162050895953235166704333478585638439262723567958484439236675435086685946482264533508811727516850003752931378754842485396748172621707852762387425813461083460705710700544390141097336565108786722382997083047522321316705831551058752052630255461459428472922776508986300622455192234566412400647074327415070546829994168503109276075868599519206462711825949536775741241217130387689936078392070443446647945868815238917180908897135516956715280360842258887909026356575574143058042251602130436358364590727223177542009061578831602860648788897914248666178750498990486532495609191838913877314838690351754364470303620449884836032588509819669812360349049068475916309650503671335941308274995366075132033237081365258962044620868524478012869965397096276236015371098832168916646123312064245702657624981617842837700732702558809937110910360662167666937923562451709982585180384170030545015836834185831627301950830241782025608616538656171573974794969249973875529877062575806493165066017229305262444473214588850799067055370278822669517182081910774091853448928686487157670339809024160426016326274524899888139592164890340358579138429557443482626130578285253742464722458598248929159864375209718035387220628976283458642007891518603933473841242398020333188507919629463532263462606870458005390611410005063053313705029316732769814218302661912136152720838489287824996537539897136318536353361636725265681870479638473812813000034803704515740133110357783244679838466803905416575799812124356466558482091026936085889995964075499570135077556376478095071418887783713869552003235087921004957595948645611475850751734139431829280356747982656120818830367010216281187661148627152785924119970347773352834722052164062529109882755403924207780285324315475642514263402598522720676628604031124814236161397836200322517646252672004458190552919265676377812798841536208016359325180766912269693648975659318211924618729027375850818704975404843514886199638265420348244253412753201427004035782988244100274700105409558086795635022791815933135494650087119637895296525839622672227048799248288649471545306185771810442088412620013766286456429493420588978497596356035816607062368374975651223577335324275744686979264345012491179257416579402087615425854031036808792659482119183892450570504394350389657230309103338906741434436916749266008804647330721932698490435212047278347252526316354194998113326832842264829953109121089025150691927216214961029502023929525665185701200301204325507061137790887433347160400762144616689266353222893162460109900563161939170497913012886065882946435941763502211244176771211886804224825270868904097795197030725181300335289858261756655126838101401700772481911408641554804433449884256268176811722451585768761734835706434319872312453245912156080878999756861375849261111533649198742712452321737928132965456153479981375271607118349186576291618022101687798295121101432767187977280857663576380572575201098321009064933467486122032517757597979798133935988296522440972264183716349479941911683856758100854731553836977171490331255541946510960761201742162802228309366001862330311058598659682867706556529064792448752915963320403281068276800592647035822058065363434830011547312560774301723048819059470662248828007790118739558635746772619646483129556506642439735900647567941932004129265693557612214561182916891073450635817605445394657927003432912262735887214927764713774333860562788168845353291560255389543160271716564599730578828799770235110558285045235274217044635927085760119197580091364436746087401225770533723279454205138342662618690222059341919829428515741924472566196728402984752915466662715267454218884825615039923764869377104889364346305582058537931764943025989233374844491778806882703230458738470077431441072428052088656399415327810691359739851003680573563312901855161712332055329436398588763523571884553762355108559466546413220001403340908014175783182412887377505527548101938871666578316641248727194626482050192891384948299031834542125127211943765760393793629913306010493133974571089437336435567768628533493842333937193877731434707455523008976090797972730874746175441130603447643921336770444615662127969397798734585188549579731715361886896384043746601694231235554168259343425867511749541297293943991230069780992756373877485329124483879233266600557314895940267930884694997236134602027444480611778949837774785170750634490555840475893428624512295053073937389401024513659300688213182890261171049308964030420229273773591053026592136008565928199287617575007873104038862882842958327510247794759650430582576875353309595984430865460434045293765617123533689166424472431986005947650545377789837719958445217843289149305913360656884482611452024763300144534343580663432566927404476968178021129739952024402198985354567058770193157787286459071948591339326328531613853676360491221754588206063959074934009811028132381066935883469469718966360471575727127174914421151458125863826640593013190983135281888144960477919010948319239713437106081981076228354811708745228081948952086735245450942311870053978009766956243013826742558220863650455537279824907478666793340221515757803421673036289602265475265604734841227765587360854246730544276855080709393716046107159786904598237944521975375729076238396602474370343491187420018362454430147172456488519741309728511634883748520872767942700980229299611807774056741676257368932111855777770585994910903975985298062293889084763922694082792584869756106141211071827984676817116709828987589294282063014312484683380088834849880914895967095107764074472070327148563037420190722293911050272665855493807032668990384440284371461020511993483646681242661197405009820480626191500689077567338197351286121746108841184026784935741449673707774919016174895348683310050889345948339287224523882081841954383143004689802496817358088299014867242101836499623715340416435733671893807987518553562463069589223369604642759487643237272188452533080876927030949479543858611921311124667494189266359876437687672926166588390082932714955980370207042300865255814099303054948005143533300909820618782885649536113475516261118374846134669324098987564360267725620407512695409900027246534102395680842866586107146380156204481302761320835316562659633991638376147967366538501689034567616578120429878758212462223351171027772062585214501227058749266101103888414123855900364682710895080991518322759339933404881149228659402677863983374305434879037571250975100750722868976465384993414410151143046080257915023560396415575375746616518285767559541879519466045261888753079145792394219403870506691153393770254097691443216841901463280212124437246942704884203964811390674437032843290068649340781782537895475270870372906628609381665164059034740308712902564545621499365630791318843395927652326057661790804649762096584173907711705642637917722505074235291220071344333099130912269737089808633615795176317561366535148337692827836729816738854049031431010366049315316632015939334137116508129912966830397033350196765859846606610782352253620386368729029086689049440448499532846260657431064630293483463495064268072879729377896089992200349896799534003556373960811181697655439045863530131981868262572356812403671985471124270108068223737512590654079617335790735133087104888630086671000765996642316331746724565991398898454411517752982845267571371601384363671880753853952228073570552606794964184487797558052288791335861324417508375082452955279855844458437221917633989385146889922874956382697413213240020734209997124589160146804742370941420725047538706107754761344167424401347080442393355902021936354540040818069939616052807822817263891350083837128333748039398691152872930894922744203561392735896691977856262968511998861657116986565248538548214491320042415456037954781010541424014548232944394831659365019198165295679630801450118536260672551398415384720260563751872138009566575235057297150884226477105436763367287046510136245167046819385119216825723793222461060358849784701036299290248684666747116678522432405142983030858871106678654664959636473805888642702858008526683719093888796641262695315745311434129125765950841858401564717538558575742184942287377850223365493331947937444621004536556882276050220296117134367729352775853920970773523654416035980389232940168857351318933768797714099447006286919099774727838214347456585331555888553362340518080728216810685282956553368328940098884930148883108215638289606047950712697388183594520077371743727916513557531073668151639544247387112938535584951955317527279155093212460193176292902266724794628516045244538663799376190292195835795737425584835716173889435073097869605535414802221065632646182965018219153402194690388617108896889707953547515885295943711360497042639999003292744843445540535615398495882290742486099486596166295700316295380200487491939706323270146732946414631478050245543644484628316914117404647753028503452065941841405018303275774409961487844464326540527845067204755495604351793836771752978645556742313415315356183409286398794442711015267926653438978527318060815313311464342698651926086873567866621996335807055754935391905956095875135316194939137992725113213540312077643810649556246106476111301561499754868600624173187889811760168976837777432123259478116751931195079520542983711010394356224766697334060815249460852441090532429568487841336570655735432752710158695445187298568194391364858639327548719169654472772343644433488747369922923965837788139875462115834012154475886712339388845590888361889141096758902008537752176648933404025864792580161701263975217938367020582010157079348452162727971537751658188154677912078490141928116200137920344398275166134068805196341646014321666144058351779741705297116500326061472812880223668972387971081994480011281862580202948337690026271002843199527888380117527138198516234752834249347162679444017274543363897935985314939824516506125124108320969188310194058906246752052799240109587722939866090621454121347556290851659239974047489396701367827574190906651395667658882890095125980956418608236397959042055519266054138958131221797632549091031530378156075479141608064399005188342631564060967843580650218714032482227063463977168131273813228842120426693425207842638205289171398673609041612054362869280270320309729934030257736290805099239069424913046959157134684530033391047233862392601105874351342006882840647609651080528206711610188221047757436270947109922651447887128247836625057671057864997729551111390602970345922924267138309469378948721864719511445125964471285027408617972655463123339268911211136334360521442770373869634971715326286443785424868547969664949700006867665202868041251070182351685753612569116082434209036135290958659097124727682591527773923967437702342648774865941414346545989744895627593799794575641178367052918119890224927341047254013665672824990592612621830011039833345120579272505991405060882129990593435406166568979042244087983010000240402958211145660629353742987695169487145394813158622437292338048740673144978576547446194757944499333682863836121034404699600696294821440761834029749476624310916040972184214378790562942718022389036703901580745664139044645348429236420005119416189412122819019395528454194911756753006875209562831111927519644795058399598896947469558810673973436474231177343323418319552955440507816459043434790378867571689493629814702530840574524014008041130988363178115564014539476657115494323732151256990558390144444788899533889585683799660135146838250840068277123662652144549747189762448952722572100656824657170632357788386974616571323887849886201170254152326988557167811690782795115515702628263718350678304364652340075826455735667812789079373063596051645416112760641311782688508563902527584846693047087392999701542155641101450545748666763139863312166150752883146044763750682349659404315461210794594996106844837995777440608533178548891396510701498240214064442873958061626071475033153027911754583513599950612059732643675307567144717306814999117007499903251829861076387491462579917964991353590678453772615440395716963835576263443550699417724392800155024492095860241599816687692855797298843068824537238990229215204743355026725051005178483506822045537345005805125276374226416092769951384624102133636834252164287103371731817715476106470638895988810844138301850022791467730466624711373740958088676587578352885825622471563178133413911082644582007761742434560529360044645354608113415027657093240072154797255539347694703050327231646486012567135456410609829856173457092566253686439543268730160524056931369259425019560031519140936806790997572413370684267611674272588249604127880331661507004618886205727261350373038368664861087586548259305693603955271432359747594609334277349771139057057062165618769609221542283158954250978901478987508624671876482415991431817544581546628110643019207422948192405784532635735200230887000958394961908773680145268461910067036567951292243083746006143303671865128396500092446098458967519324995590366202475070877640758847992718064456900637946308203484354037361379214007904666207338309131212034019460852127126373368131548381877588624714137768104555864146387830271867324106941264718971291927346201554587146265220442046722938227553538036312292759921817191244249881843218266848335520145998456209912624801981326636428046639652669145965713505948845929451994903616820174999398425947931495429273315761992521852594139110683713153937177324190546239686037346781313528674722276367119142055991060981054323959574867538981149510765408876812223234367698576350853240010434373073548357454382969522676103005880449890120214655837975738154324024844948344775563214354100168978155561340038699888597900740377331596864314325694121406247945619687359275287036873399229314698855195770871727634314902207159642071006429167829840512248108861091498325822449372507080778138383779782037285385931880395874520842408143341659559340409894512846360207264440421101981698601481159856905766953022338976631687203036972549275178910710428537817731117224511712074425035631107707860760239841475307020069302679588856641388372996881565766486153281373107280983811051383798063391506828002536457032771660663783091278270687294675510693774865117810228263246864739994859378035910985621591804150556477700027036856084320556284123683674752651183481375363135557087283574541239144540848177068498013982830234180430515340813180239569350621987902794047154098186419440611971675784287884830964549920290014659245682473730589886334799081550080377275102597279371664162275007939323018089418194538263890710166448784685305618988139070520945509831800121434787128775304182475550011503070763470704256459876611586818948504929538797472616564625379563953772604390539235990289913621510345875040207894712447400175107131248857641821869198334648325052776504842860464396703869979194007768901343101931590408596401193849919418753520974606740776580198716685846950425151871406241504870265095169769022747965723280877193556936344226313593538494488287553068697191727026976225650988423792257301463144814639400711413623760067822133902404982063037182740134294944132103729580021900395494086963074614261152238700961310787765650736074482997061764580339114279842217036056928439399658067430736549921418108287442596281130053142327654546720569081172884569080593269085019485589937284077170639521820491049974129161426721548435968074851626240714310661149513076895533761646143788324345003475448708061321421322322563977812742840078797334204441630495386144395769511390998322000902646408613474714601674154560276981799563670985755904795854320436235447101320905667930922134168152825197044729562681149477292431635173810802065718402742452860191939324873320551272296254309974777786272148993429581552223455270811863178301574671467746880810503576483724989367548716555643365448540384553881424857507739445237420068147473272246330750615840046945485225182589543323214665501150114618013509164232689261399352814011624333791962922673972081533926804424291268108283656309301815990908054288359244495703733247731296365972853356978473720634601405303583044453065378027956444953177785927889779079334176790205830160307980530436082715898082969999268503813310124922320643730909246928343834451700371363214881254706919115266383212325191346276746150966486968034272576145160107910239299486682758429087897757042934933737094070149317970872058043092973350782716523928662456134975839995730690732286370864626327042180855975891591114951804966848024456237895411861665419344879970031687648214358782240485319724430976570322716976404655643582050443341088358248532906558241356679905490096527579410181413273234344236906645337848206594082043260455000218345893750182143285421951054446906036345914610183484952170242861783809834893389280133629756214038647353890081250778277769996064510632266159897967292304143425275217454071009854780202154743656806584542600753119789930367300490603580757148921154019240863705737451749059911979263391267693251332772730275188609455354891468451154787113832348967167530553060122829475492823810794720377757157146219271139121437848778371067992668780324530038475881673452308189722658139066169242103409047416931735578318607945600504985715460470810130739772667379919668726709399827025749144312677215216727627097941562827251539033547618953434911668041916951943464405721759798365389337637666841148501682255767745380975962841802337283927840486364099311675345547334028560760339374726157237614953140747733962474841397738694304955567813962212242824626126192010747500552488412329965999204460427294043935916147238586071264683901943391604725067623332706777385001357961582067246506420502153116570942928067824883221756566597570928182128116220823856304641932383576715324727080672194037447465183219369731551500338405126225440174161567778489993962740354166608638202268355446201243312089298210663647048593008252953108339426781596167140226465678093140424106832680595991049250228144479616926330706914794964553555085446265405850468444963487134962182373717275829166396077987094871432843184841708630041034271140595605860379181049428410225598742467904321270749683548212147570619076738991512409855159808188841820263015251666468047787784849825258732513892728615952401873311912278052944806192711708366792800279212493385334001531993235097594297890916273306796652253047375139423437650462556310936064934548257192690051029268797880450685188948618132073709680583295057999750521413326719067067335023962297098320432501449664925679510888121597082482464983087087045681648263962379936832259914309053792355693647190926369525842712139227045449148969397658556378851073253456575758424735236239080435247175673399549284502735690343414944180774916143517939631668593478426598705423819187333659380185489962589867335132139602445047272560752927393600954072797377833906423393084009835412003131591329341453166226753312626987244712785252483996502732836851041225545467088998082729377600649968026570763315383329987413751542787070425276469908394002409775464341725415082675059642043310891930179515518691296039049295580320368703676510562877297976613758056972125805779164121066326547779789078957363692953951149521232343693180345350454696981375670466622394670125102190782895910405961475647934755443752240883914538572907668068453433146580367588216310190546794762903492211163875585291973536185928307355772794440482062050110358311664681763239943917955792279141021523608919421104446804969727539628792660371112544520016602754425753222744930582812381747230027620973044779745094551111536283621492990278696242113747430211138667868235420764401109780237274800088040560546198677469917751784298722344572594746555177514205875414103095739087287330535639642083115502979163690548107276642710924134343852340941017456890382992850988331459534969786689883994181698850882492493675946596070253698950661451722152335851203286620642599799983865237845430125784719261389390789564591910604815446491874558014050203782654361102039364212571348812127633353267228305802842076013845615607356142493994351182850272533050687557328777569403362111082759801646764263187484565876748065999627477325423329639997300253517156886628681193201942347418993588233915377036159518223212228641392562135555642556174857804594535377905625664446730026432666658258562748729014505618887838938946207725505269710472302090033832145436363579060536223750085649125358278102785335921294022207652712097496601849208741222566126101370782228401322104083070603908616843944876918559349720348652171800302672277401642171978807046152698563878603938981121901025613465100530326174693903938802090372025780684082174149428806803334863910038160811732718228690058606130523479233057961017413751192528696628213391050540843429875035641942814979756807603943681940426222604450046124166120234044273238022515789487158714509584040318272362862162636480436957709470938981096168630505938738258791080677450087197924867633018776835305535793321661903122834908184076916463017152628532833289906663413877313095979472852246659920241637787545563639445399739870029089323507552235919635175628414631383959417197072464805513131972702470938752048205559062848440382303190959874043047672593274651000981338111001845613219119404469556416584437302068077714392350165308188809338987156003972207577557256486230154326388282538847679358155331813886955856516904571130324135238300373071000945014493156587485534836398386975381658424455905889998214107000459542869438813815789639219735835934856292698740097749316157885543114401645298751912098831400274261293619802640841909273967439661662606016857552333295694158408982612086750501301457654137844974298630707863485027559562183676098390287142371738219941426636268089794465797975583127845363398635063335384082639456304969367896955614237062819312813542443754873728454419388921639549605650795660172995261242614273532452157062033528192584296621016027535330302528736794654763422771713248767914685051884475889679305438765910464371301035441653787922933201869919543160438040322641163895785706070208910540342262450882501849120872871565098518657199543316152260842834719776251675392276480452209305194055101183040762348986468948253835019724603543135551494523176156584330596929693041038494142287400523536254425481441670625444469898374503812102079020388563756306692644777319835748136487649983034879314491594964966050198403977394040095597646610977479403692421897337580962478985841627443818546330715787523877929084210851954387244420701670430931042009685941016532977770278339589224618087331862179739593489549615419178243019632301595177868993307208111627513272100486684453125851749264362524321695186125031259722231648852470632445231935708320908490091882609441563847685021459925192791178226180062907448530692611440180539256061874394326079681765763266885752006342783612536270093988892520939204012608924314648544959983668153235494388232065066546712950521233068028697705113413907963933183753886138687079947573296357858566993216761029841105103582815132355039785566620384808196121737847287535502841926566605989658365657921036727664855310448555083067689740271667738639721637469573633314135155704132135219036302860440877469942171991344872626750499575899891493582154038948140545747395331164011664256349142516813632442004684678071264316866147537799491546599532419095749411574324393254504593795716494830018435669405076277620684262621215071702755538832922470679233201507589425783242296169677635621979188519123504573484925810564699943337291638021246630222304215912726599369479912207657070200906478565757120015450062516776472083182309674642932004983617270573102324662655031493483356291015003132176315714201845969523161213800208071011653786875410020139418469234604192821275836660253494315525102789468367945686245372167305578092093899343756138294352200417676033875150931554703398031960720806289096596672882485585378538061353883711949457827559601224155401282160137049234766105738643303153066139298438420204356377464880050081412344748193947994298930999337836774107116830638073103754666904176439906739100522555794724217993432805657718138805830207196730441981907936192396841712740692552361128531042361705716702570172053915746888878935967881018438656857233443199314064990116964562920592361976158849065880153795553122484450379812785006114035094290450276030523173559119343516360831338516812633334798105631541275018193652547820956823968979190475693418697203913908733459169111795992153265530740322914592313522651441806664277179804009986437112213422844972822019672270540576052602127087913090878768339140830991424722684302516609767276992217294865311104357957087400063649649879629258558368331134820823825796915843840771967078618469003346293113848015805284115625276697582897131624233533297381981831554503392103292187961227157367413178412421094483885246816046827901344253676546355923854281266761891229263540462875129284497271833308975651711605695335240124269821204288223321016078287729806898363529005948093513068204952151324157015116096210975993213167160402688119764486653169018910068686759157718607027893658524318422393333141644873003296744323019554151958335297330296477853006370689217150506411793367273847538028749304910261430172074407184881921996881279045989535489041256049160324813727135834314586022017823398632461962124006487323764618367737556552180824523444145765571023290108868203107060009970267329227386097027673373053015583334901128076971855324096210914578325463562874507481090422018306202661562281416072546990002519020906497811391338890697992426931243033734915331512363215633222688841571022785354603709845116174915583549540961970277017250897755374112575428190411334595420753797734399227775614274396371319085220187231125910856325507768338451755871729786434940986812867808109317735311483697664188049130556658843354368939500734475975509154234452327239238047347471660253024551164170801150259955145216424064431969352022586027597820566718112729536900008344711533605963788301367492784093657289482282887542075631433474809678906861224816903665436909172953492507687244205789969832103672032306720312879164720892288381417318462071314626817441713265751512719545551223265979659603818127810677076622303975083984256991420856297133182802855559571040647099118061474094699418071793121577710881174086070461950901940134420462082007240305867520714798073293353750862465674577442753794019224707966766281514203830111415612940288863710010734671596520552915274943311210269137505214717030943779540105667321054713756691698655616308127950194561956386846206829224900146005845054836105431637483725062482857324121623476372913527928271617167719542724356913900178578240100617778323308224687828940859710686346228738233763413698627007387579480626116976664807714419937523947278509591545893141179517497127077317428008292812698673193264490896769264683977242206154648354828863601282800031765811246461379332103875098039805233767049195230844832307228818867897487360931718394758131919009969095359760036738752648102597190815773197391731046330414856480782810381731462894009842706060421671116101079693165619877221203195765318851983101499103399032110416353606573114923464518546359766582717750796300210147867716470237685319363586848352791097601796490811694106352993176670168791182116191008102264125314072548937584649455708856890983504864613339531776976996609801792421343156289777090412645725874283015299640011587220077099624405633058677611834670053402958288126648795778531093575648646490685657267412632058886913750315665491785661419167389183329138551682770947984207944874636010750542093738112566882769829230435185462702863771319906746889134337657915609909331404585285227969384617907990608153197662303603834576108623119093369999099352127735923339056222276035054853312671769474007696002025039101765319391098182640373046202828176157516183101111207587100011411368526837524316004944285122982557220241634069593738810434129957933924733862612865837668221107002505273812340519508181491092285507927999222248562078138728000424103460464875503423003812560012753741708475822748521819764189585680384911716298271563270110880028112146045429116822176753806313071002158295245807001192442239932923133484575327860557672067059205669530047202329927804322505941780718851838027380724002775366983992347482049125707616294220481757910854973141823035893694732717126287561680727192741557462110201482660581788710963709574362989188945710421721092777619638988067751904075826786251941280921253241888130616421765704324461797673450485104176906648206640081427325308997794675522651431210059293588313038736721422283988716962216182784995373642135213421024586077842911927316340379191179093510076857906807257436915856914224464602912505419232393345357031700916894066029328731416181665133083532819806870326075888213625020233317984931599830360645065306059399623338101046153490154933515600254844598938362572678618474487341435439458765147125446067584283683539792291620895884054500069037128607049086332238043867339596712512350984895362095481260244106815430704075653324752691645873058997537442498927196006953762348623113160691192847323708159989931544731890201021596070625656303048593657517433659398105753757208345452317953622259689692823046374514177021940232619066865068703960586621008293935964646581087044441366742808385581337094595370673635599335402847005511539547314391284226839406987097447778011963103920810835280804872991533227437099627442186330400770144684045933201751858557498959253599293838270054473485081444375503880243999897322339840787737906259965466093058161789574433265725883549996357700598808220670580517864890695677218396268363193880824823262403267349242830957012546243386844472114594473007642065457788813620873482695076873946243474372303857456846646990991219439985492467777996589625345815653422462268564549587678835981787081754904818580221797784873649619282507841750482042392373032756588429019992433249901618451635249610621415331141392418663203416055766139551629553221629180783943886981163784495820775402470126768511791089226540780090755243110131581640433647757418156455277504816758353261566196597935570920504759533220984748090533083538103500759562641412876219407380925719605351390810995039011652451607260514051674911294036360563254129879974374446067916321784356117973425519312847219282595338327478306678024366536801570049876939492203727653103324012832442857031971718312353230327170949261341332444623079118267317737888183469106210016065762432682423711628035337363557284812760827073719836739205852534962540382191637672239655255491287468255640286509552970541163642677599501625303015145023573505754315869178932950347636492596077461679354392671072531686670469842841748805904763252734616056547018394822928990082643649845743176540524856812593151960586005167587941046698321257889748701500619330847124162216008258655764710194507533956022251804470531872458906428747712331209590159424452514190653846933587593955775185662746167018033779179873417907896273813586675829469600024862382853558717383925820806006320680528011246110247863334230917271698196951094805297435761083379582371446651157710742354886510126763757578140692139467114493191945905541036400157012031543875446393279211459827863473345445481413686689237639269225501899630052740526857095050364939303913199627674870096079052948439119472392500442709483967619773836028202109956844716974740065590551839702843065711168254133103614013081325812873560850670550496165342637410923467597352840987071902723476245905420073279617626052475743491118482976162015059796253461209382239598471971847003405729157382150975019071954899089653330100172354561708595868746804146064767541993384213684403432163638587780511398163039034267601189637755499548986498869305907274050655752114445015463062826637496442241611011599616627755896181947577664933591226335419141844702989342277044107718060457707589175791994020677057477538259510243401381174527607430466872008343183752935260922635927931032118844432028154809310153900159171404100320336912410900072344256200231934735471738290633888668988671079080882548440674673859868391153395802008835178136594958337359404420876368691666571564166891654569643092080522628465493652919574853359560406912506359634948696653925148824561673694535854370512754669353745083852813308248551935901472756091740980897793599059733476014817937827965670841671925863794997828941288034735695404242986947344877626511662999908169023819819532443841368559830592238318713397169139729568594529397355492524415664736460848169709104930768309856543103280960559963234741057895578777627974262292539537324045901440652883419886013924772691973749991980517237559333481325306563144881036035350458723126911426144048183179711734722361095937649188341573461033945021937756090127942907352405263616361082678438577010011236548276403242812774408510287059371642502517358928349039560061831699265458188319073280843822676874088505386546256229881100167979965391896075877666150924764383811766172212064058586183178554119594940875416251901922793997262360033974569877086734840260231696906424919935600520172666256480040334285328900137052962732063357621827026114393884724875129496228976582474357554977106821621500787443360333501202815458669938891635728452996335397488098365600591309515742381858351373044201139690069320944475440909168421204054404202783652826760953980793180690574074968063525452720883514184638295395299775017672359292872587064407129255463114779741936471811126497559879776493415670114832279974368718815504404545130136115204356201150074679248236618195854455401531475687747958168836294659278914812290765450508792458803735955109626661969838222602661452681803894791693088630693204228799737795803621875767485526288554396680981624756605337695306195151673536445622869516075592076901972155832341390156928405948410086029026768127366795500872968736564830088386164359584068623932789674659545857702694792254547735813170300535742991750080758107727547143477934797159056147956753640427841848175391815987136784306948756828209429254158482044197828766859054143924314091448473314911613834773856318205730320716110558264455206544319797955302519118877166129194375769281156504317015025460619554864256401556920268541402871346432150340136450782547078483795649918988488569225866226559059011177490833987421537998285740009315266412973333054433031806472073397742786007338369319011119960505251187144919765752999455159657756646890933460928649746803853474358130267160683286702731177374437305907741972065968333348510986373810471194807498456437444482696949376889098481556784978362760591405495328657106115620391093369093753978771772040460551063364875254242366205325530113812905551358189811773469114980699074585902127037441808154058690627494330287536532817413753973708901070638010612431623306557497300927136488774241850897364124208284403576667025751363581314024291441259049890580946458096812431911452786143155955730539207493598474080673144546856789278590951822354509732892577355486069353433159206325445091259201974312862481273834207350376699250809610962307381318615971123352525931079709662715332131960531384215899101985982515915756144437803947917123887688969182732024509768862126625804892914104831093166413581425103898740252046109460116207344451157708143460465492129459871214382526344456243259353446840304306677499807260680041007156809736555527026108344610631303263217027954616163845845722062554357525459701563672317563514961683946389710084285451867234745155376673988724837152546354667667942443561907034306501936563851454466880958606734084059484916201634079243702110207617046794645835757484255309976918875187564723749896136921118502196025652940707024881926811227705481221299334924213010110402147836076551662232852457397495914419664589763188972587975394659881313485039524363947192924488655653070915963144764086601471898480410202390370719445788311867825721078826023792357761301092671328880891358108259628918803358122344972625721824191598548722998481239183029048689679393280200790274311128617468139296214749524538753464870063928393766332346940455650385962250835082752567752046363034195755358501771064134081395997104941475650385549589850784374969001549571922444221647519211129329662962271475811772683215572361269984572824187527794029793627924864300154733460722503060847079543924787429726615774547113598348945528973668277900109383319666547215289024996155721347645587446969435430971323165254659067590164714844796431042968302928055828242871213250583760173013371569864043577127072480721791325358500902061856716863357277336995431987318838949738788034811083974675231660107540732292199496157043278897815690577354184632241416353882157223222774455060180192905661799003640982904100365153716775976953996195190388988340717786973266885123211363131181797751717888224407199442950973775647492949995646562706235453233464516852252579981885683355355210462145209914847728050248271995402469621925565964787606913823863561974220323268329969762930013434003175227319827173391161577700786919490589845634282018006363874283419397150154877772476109366389969371112520605663695772015245346229093231546915168204205903306888202163087276106551511088002698692710601474570422840419531639182578331784290716111520640856015571004162758772996505110798789412224522750737134571707817140722698148553934466877386354403731519229355792082958464829507303293486691943095143753440933593549909672187962756579256754521331937181930949864285515015345741080919078013544833683788667986976952551521367538314660265174923999198606312129891900583655319362270455112411215969734100976953211843482962816533849661970364234489630691457612183389631174258592816270277452622495499263071503765703212304917821873445824744394704136523127597775355775234078128085202339156196462163973767830499561948789118236869924325471611649206084742065016235199905933636263232764247258653282624434212074867151765658437927854334495504596400423450791837646965480243261006255188448272520558645298558881877225717614794384532351142548300349947446680811752479374138374982040754696767240210423894728115985680004359747341742852261057787801313569253756906622020957460143886405428022829255982202009555618198184784237989153850468957244025325530795456724218710591098713215290169797524535648684463760536813047864255488276155382257574503981379227202255935757670160161261804087449293288724127614246871952473773424385502963345685176543902285658206077310887684381254049755871458874259933692053927777528133599043900885713251631822067697160765734782294807239204827228748036353156826196043291411402972507687052484706449910288292092589718262706794465143292785839020899682167420158413270991817503300774115596375040870643445575536508945266976881713049038397324112613947997698046507530228688532325530206654806489862508333596057417361389090250736310231694086700830100137133310398546962904405801934915164414150956678772915664446387363177372767500457436461322583875494720143342108269736347919410038426940905643380317112284768606792484300983948073697293417694823648274668648072410552894355920310664587180860594728570524258379934490941740140142819353634775754935352182531288912128094408074102082341463279221421321478147455793879938954513569519432024643829957981489117061401401834164629737446807061628490445824159704472683095652556172854575439533498333794625686237486503575748517139451424182184937459455355977860082766662810667586301018176379023788691631052120183115148228087969550989214256900804608044690946968756119004207489932965982824326941332542014364572797294106155985497012523630118909531111889776756153970029591703671682825647879919132703125125472540821594222331098779605152408939634710610433592016806279724811035996720592627492652794079118349957766634505607776069253937020535059620709839938235409188461223415879963114188103675420896152648988405065126256168009559578189537173525494771795779347925795626621900477808300000950384352963287824425096881878878116066754284498469890413096003839036368921312359768232419000833838995871769684943540551393060403412056925227614743952893289683080401239608932830041286834781582528247378048052563328936870993814199015173459914954140036285894688707470031860406023829931421731917123891428591149009753289700265058070887285157167441846616337432965871511458518140232811250128583272885897483937407758804938615123377163461850849230823546526621128190921687877366144752295949930391830078386600624833532369655084267463732523911515809729577459548281291354777011000155720338917602323145678989638544045474086002953019504418644415689801321178437487827922260849396232098035590202221459678677226643874147905854037663751893866592344191615259994813227573683751794253462251154069808004374163614345624261645863834766909466711242545513326534431525450504934139440783700242367432777450685494656717097385886935405584723967020439117436549279331894776215621513340767423405157705631483558144893329751142771134349067920894815232090999165385426182230303526683954952867276072487414067669908299418545444187046326696176826004711711242824526474716581357096332195087499682271195940868533197828205755784065847310094131089114345871094791051533069132651638965537756518731149530145806171413978597869746058928213157442496825766630522742583554121039600273195199036228590075981397416156334081821505633551086829988172084878761515635269450814671647032043454148608310182598304327684551579235554455053460811564682379345241378116257649301409978260572485366685954959621991390675496954350805043017362008726053006866323106627117804720452850638717359958622783571525606559101730883908522565038614490148945826605765747371629838517892499113630298326542073061618831454766271816550447345053632815639302843622466614328068997103027763341361942136724329226069050357700650234836172178603610445275546018506529378536377113386789087400167559251594057091879824910513116424221598710769031951066583933892616856641886341535990600207745561505911366777924754867866101731374998565485668575551966044372251574077636420235885304484603329156230993155685004369703456165784115593427321552070826123046188576713786245017607176857525366558672061480941753363594790146354441172300242531913259885325541481010483690857967712614090168396363574436144334209903461285865617171846212840644840915682383312085805765487223964113549575994378854723260171791113275216982776496874880737737065384549377338763979431172659316787321727964804968132662900819003080186186608484848021798636492063165838533899592012394243901495896848553029137985106596514758295511377331875201772091919733619982451512154285714287334153349179658684496258713919075992718211713914914294889947270672252835087395176548451238537632201391878170347282142739488295824096145317322270757492384378602498754537763642787905615682042276424814895250623392368287796321894203687894096118704062960565801015955668756080309168184915610648855023781468472273522668542164953481256695828500846611806856118129130797826779862007133453661531804573205412389052258391000990930164662514454703725537733962840818882628552456189338487411045441720570950602839544227237180461296636480859781890459111146476448356027464683990492684905697960169641127543215492298666413235704921099265717433400542195826609075717852826124543822448093179704060952280297468191515659966902802553613919235374233248538547380141939152831626191690487621094512008155832889638762070977660233613273783744889958920084087041266585172416644262516362340151777531020377055794637533906610810515549879222781870279952974369147033061111382037372722952524261118704207357664129997641255325914356945892027482922583201588174135949889587041037702731705464561482995290859236744842217160423492864717388466871981284780959620455788009151340031292021646204979912904437390172632577030062078744463004193724141468387098913815606326319723104295497094233646069890232989933696886859069456965328082054460205041014661278877022278989811144404150182790593625820742905199979421566776884686472823032527178317312627714487681334369320367195367460685049874711980521809397519123866508410277623016951211689861063248715975059909057390201735274331932881367191249403720619118678159307120247003736530147050783977767401523847944783002923752501293313984471835928576319019732466152045636340672735614524405816857840670810405660022935492865978740776275278032086150302380555677241576114856929538101170607606263784386318238479675849601437379176276713121774382283786454548624945133797738335289140030340419157307896867544462952862020708124008128625454794037807202760806886280103542926583999084547765152836574471138203308729550302370844688523728889802875636446129420433845339533845905099579613997832795054119346763284842446468184413407633160122037650324578317199149225415466363341000948902603660445611475286724310389345342777898360325727662099815027540131561934575782382142208810411792344415113275898984965201714341849673994707031459938564920273176220953972900220787311222199607177488096718287056968097121938610394871384020896907942844501785112240833247848504156442180865006547808212325275649770835698866873666929397842345800710587941401917716511558015689042540908817395907723511543810955145312888423164953612930333340386126626895900319589236085954527479106166733652298546580878198811750392228689554273382317025114543209499559508108241462991235357658503721866521786881526152313075203084368127926697614940772709246620083953690265804860209590538357054206769167038717199896990259976290758253620899971616523786817007215741057243315557335418678879344633915125543980164416087846574038393114933096844321258755842984710206183868141286426241286322988813442536533013322779836484123242337735709814224354418993182063021519744926203194920847755712856327387192114246165926603033069127297459249178769104815498177701195451789803621494590926730607219508054344096214343872689386820546929338999159690355809095140749020312387930219533405943200294320026926288911218188110802849977080205573676883480112420635716241955576464137045038667270041528776513597517816782285496448468366068972424537511527653817645612630918589679866313956447346989044857025521946518835941153458521957080728749432482791875244858550531514957928934390368291050525529275034512282335261087994607219036439015694938205500171503374527045381127382512790934272464727576215868152749647296195896829938091400846290856193703898222126727686637770632169754528729520968156749354986340229384652246616614369777290176808980429104630432586653836904188397105258994654074316621811920181971585152995464982628202124314890055336130330487149953349967588680470873695331530702396076672888514724422475968642864130530203124862571418408668839674749955200698934196567740535846007764980712444792371022804201080640955154063519059065557034789379994400530826035575781807103004478685179194930855340822755096103994504129659528962129124583393208229436807866980303488038394792777607985616517988469554777214384833598303621779778695251527763386049227588389708937142587083724252943208346503234402739929241945401059945464709719323975775278620923375049745871666256973069373697097716297937576980289051603299790477628365820836560192393015798415661592438259615579033906013328523345171524363802723104876884077413680727562870241305847533178536633195025575395189953962620198779356015423590595745887853609458643961512657473437241193139032599398727573463529475985768933275798197316846542181371325720539084472389745538460448309881829386249471606488933785131946204316484501895203201810645424021624118421920781761077489952963521085942307942698514248214434142985615749903105656863540117240136384141030537538909908916648808047133520143229373208868135575338145597805873144370400870208481758167620860595052148977984109533648075610886591405341073667341984350315066424311589198653461262315434876818101233243356788315193152715571224876544639667964052082427076663068436585965457427466734846524392882004343795294620186655210422618798314139190851031103857235002314765306856212271033589228135531597272678905040679116805472797773459444217707744077756286456224970375534027900809355639771673258308912217798768751635858697034260024288678533408524368430388456789348928580679333838504010860613367350432856684492861654105329340347779109252452125170365325316933397207951293011182574331866091301612681373386082066469436921750377244180971121021500070883590345153853805711945869321340716995150641785955980875860176325412238431233330885531088931926052858603786563213869273281438966101060680289123106962419766204673836480069565197325722139618052984163819269607274779308165748761924944088302986844260839531613930851622644500812956346598124956078058556229695590421530479745731695138710305032493476363618969810250547394659020593799347596679001981715717309385143188935178663995265466486650583902004733440673133555244280690221637174341095648461768328886102843331933079278034351407504487578413989908838987518207594572582150393774698732298295185748457021630383771663159128638367195960836569592264527745912043291828473885624777915993992799878297383278414842584364329559795007984073211807451252503959799199420765861162509842202476935462482478001773271324602823625804578911103636497688793319670969488532914306868321642750400665927910103580998966619520700880757913950932796064145474917616269604671614255432039253607055089702879508814368634695681331775381797412900451914719216354643835161483420149673613619615151630427700681583117329453564833782884426467921422501071299178236420679287701163609100465161042497828138832795331234479004430188241152592496370600564296587550295357923550478549979111025872421609150301524318560004579316855042958471092094386648873079879948146493321043552870985180739798390190827046447261128280189883356763031321107659518445674823603128911883030212845928728055293389358425713979404216424499869903782228101972833758479384216311806685612358659539575270338167902424850806921829126709484519795862982352948799481796340017096830594429888000225811840701630710521652100972200860532178930762813396287636369352323268166325209048512186762406649046734066529000192665715306995330052534297745443802682779886401530284195828895846375554188841177457138300232116958660804283697203569076911866794835699216417254237963523190637440363641569304204529471695095014664405262031065281000433247186381239450200245904470412783262054079014931706900493956093634825873068699685875701508291080046751382021592030168764379775480563971511548926972032312897793677561167942401776088837009820635132735759013695951745613537043267944489845073034819552045438678201121897769203455617115748919200104088417381704131471375216485702723381989608143845140942452455678994392323233503090172997721429485094469091907149210246800573581501865722740831754064885446285683603633047466912102735182461140386755957775075527823396160492388348454919187721202694132499486566017240055969170215145591909844050316418354200920865285983140465001058330902093112653501264840557184737165947870087513492539367410515262256468635580179237042241430965065652631536544549523289625254989005136523327791247996785105249828680971601778190080900843805771333446129970284804500784278878785672963742375664720079480258441216256364221891729986118668901030729104291761067816452787537820547973986815037217591062869096205996033509697186231854349709298176293246420612903830988995063276336997061565217626140872335740965741655908843463504390468915902700765346576146091677651976306628388010555294891817404440352651512784391737577606175496631469139285101245927519100249721709479736068924065111742961414085399011350041702148815555934897776272864204318024896387396344290742920559901649052023966158177619413253617477317741321740931239153810429286689614657336297597240900263917204150320580209711454648687533279382745926812244108940061205913911592818473437487624047120687865382460031586165504596239652382254529974101921062594794570511773720742064117019163326727389272894345411562413788492926848495427730922357994603606207398064020204647004036465575973017797999493516705120948235528063058200239746587621855483841627564080729438145269445915549721847243964164054065110556253400449707098108352944546574413852650917064624321405496350922117007308446952912863499105402194905841655863115951828878713038113812977223432473226868437049685115785928475630509605872625636856290526446570170788893435480167268507898837037889243054028568577953905085268831171261090176040868482852285952668098797963747047662338408120955715897097313109662078837588884653119724440967023139837011890955387081243847586483468112611872739397730232332016380867465172760481805134700024761913648008031925207828129659650693676074553643911787478376992399506606528101523309928960817880450544294128238353376764581484225560584731647729788115280609308105879685004753953440762419014500202547258143611470942482351813715294828780895339974427212646380764552388276065372243243678776100399109986005339218847444307257823292380874182843507604157688808663090733974914805552069464681118990449435311624971151291125818945999172472687676483355764049687266323989045053937681460833279956045185996926740733837989598173730602331717498670325119639763932601350922925304415711109008535584977306062008933647035042660960703790398911458171458612777631445513302803411220165558467050295367080571936314132197996764024571290511560279416153547788570274189711090327165067321231300562730904907349808480838951727330416221377862089777669023520038761553741968246886366730969752465106364625211496433964942236289482029356142198303186179934580885969795517326556646897198335886760420406644814278147602295790447500371059695712207822646824409677477532088655714461414130254094388902152627200576815835950939592539894887154923345394946233178985257460192575197317816439378792480636073436146119482540391623982089319786595680586793321249100519745057506566289648715581113448674705020990670170847543477844482970645166628738729570041841928810714877154613260224701541891960250000843164787183119626929606252955784788491586959121260304460649032279820547974025026586928801856197013134488724356002534197733415259038406732096438571769948493087255547805293318987024109175254143244221834835691888797437068561060896977623739263611444389450614624231263471630159869543946686519456516992762537002549724418061962130981151048831576384779237198858578289860635163937937177616682222417418819422622349342417409495436696481339137263442842723800565069546846117407055735346316265963691074664577588633240459179161889406932426262917873894576504061107052036805812230104553498019993768176212301804068083966191688908623606279569849706239670342979057951096163968665325458901835211997629136199892298746534946162274810677816793281523467704154269304887940501373860989219027188757704881765156437085613508090423782045663237025410664352977345306909560953449450861772577429711588321208171232544357994609245029496643187813873723214279977225379081953784795792321049910479453793302969085665557250699029587785158310421419449225653623351800787335000392002696311277669370318365895039069454130219629788208737951285772123892200772813131359535694045685847857374158961343881151078793269079110357978458299601791940783562542971547634933811841565314899669759095180332480702938518091948364007377124178794506095232268345723147051168345406911537915913992981341290466269871319820575858776725750622019842208066981422005633099581375579912979536367446663506181011198906290855594204146713638363877782970455371352563278538213497002078459322101494511912484246612161206922720952757852158289667879139420585613367679440695232592207768398312769838008156265751129403856095270491521736196236893202221538414732489804547460408666588370312253024573586860547867092980149387233535899463392781780295919991336862919678276488795994679250852026843046876495173343792780805799197288798840613875816185766661837727550733083854318631148850404179985309665894320017362400139232256218484203105745493133294009010431712409899460599932701123850071783338626876313546150689887915357652034304642357575573801780746522955391986385196185902232218171410533991722365936237212342252697275462150365426554476196479711767504294842186405812617645335186606455441448157497076698435416783405018638681247009906544314626566491829581185155089501900235798908121565209982005987353842070974220979333726489186910505043235387086970695112484532188481904076165376243755373411231697386577356835239044079687755084695039497967656298604160332512432122101286201237539084552510627898014800954923516343196207954361826362921987692862526217033484164661559194111944418274606714485094808220197120936159245455478052958573266302790820663528683922433515924669763522014496437787805539041770859052339100739164993121001687209428561693194902577991159096591692174816604707568803143255315030400478471902135984320132915426005046242645653346365057487678807798736331742653683963912106579591240181558710432545002627989681344732540627165138589701364326915884621514249932365647770528169042434610662512296202818627257023701607491104513773053115021791597984910409989181620463318613800680607335658774799935569878552249206731242742084269753593071195093118593041136976352352262300740620503778602042254917396300338144381854271500863422319707419579776550253726623388518710781838873184979061777103694838216769084070908494525412594323430931726812117837725750567113516004120123239652702817483818681921721856539629235156859118741872677521175084277420689087108356686938828825840657486633560343383101437937061107763854653270582302263952092440622230786321875141089600530748943435534341927947847038554035506999324110106010911422275608448435299406899735442500162907599541189459560513139644701298033093780183215435907068360824479605839508954298012673925114175285082585354281514205646029511512301031810637522584999236654026041134506110281860304685744020253025807622715161414097537285261529476989955746214535605203581414668373196432989033460702073549986387638335068625286961405496517481408545080839653847318753585830193724168519584841259138961060591328022534127624843839814758697691489991499613918494627126094682192958477166020668311101262965014540389134364852916023087195613431361532484688337524965020110430068706169579324406572809910651861401092120769069694765704918214550172983148736249464840000897349873599273198852682055666435828336001840171965985267139176375833353939577466202174003353595960715451435605867332715560553233361206780804143104378805342132275604315408097994789289400057691733765810448208323175615270936554968592640209913546817634515042171775523026876373247199620054017000647077913983732655209492037336579419117672450855729641027124903844971553124197114903531516226839231958057947412643273140389322999348926373636812150468837168764241296638182479785399759654281450120677608558438195587305264580065808753526300334629275420907493283672286523770115961464495968254922076629249586797974819990575020243662001845897222048114210171187285428889899817021889373166160792949797328374847428261193500548816385633122812157252469074197141642866651035116287617012637917349625162726200351185781232440055751691393093581748828497641156234879230295848003065329229120468294717759728000893029999431577754271520873327735107873331151338881907550572000390662534028087932695112668445221593832772864555303768931573729899894817900243444576343607255731926451426115353614877549166699366292173547953318624672272230152756160279627986460306581087733169880943976949703326727655301624312747789380047628546850752170391083843190977249359023499851148901177249085723378829087907988629345213268646274517607643493601878520933079875094396810722064971251334721204928606623785818571836001099922376460197803090074116825853577057861850742632645226316515026087472028294163587216007666110827343358199580693825744719797107448269329737316024813561794667371659216736528204818733708782324158290392324680689535428240806389019477458208987080446866453474106415252130850627259659177775765066122340428938459631012192053975399738109427502826017441110079938348766134277482864706808277877684893264388567200959162854701724675878213753341455732122176905675207761537512514912785376407757000836473319926469728935727925171822309280860154544445229577266529842640337341400896589792335094361739191313650600257890253817374831259643646189738897904233923544055721756496815872324286618709592755765171349753006433302290127874101694500096665918738982708531235084910771488788370615158734121065703156978086806954061213919002707235511213535148543905725747967681093505092959437780982388164769486863124574315056862291954191885689413187487090672483519549157796180220518410770736068816151105239838981059948140260391107632868737952198616922563525112886916959922448989412494959474657426166886113996766166679241025775242825617001589266921952614151566216197824716320642605519212448793218544378905328006868909518439959306063605912574583203810145974155131237878293404451805025419228250175907858229115683645854954060335783328045536251759030123373172027692794573996016860366014646415130292778793500770869760271708464770746765345164476448446234150222809690327387976863720390804452348438852646365604775416295069453669250568125627057304469659499986389471709132196990090493364363715016237261809415888706315486529216264306854749488463129010815213184727018279760130354065972531705288795962613596588070609024622103744619328791572967772243088348222856596298611765474407103936811460866923637715413552143114671934646991878793096554763428954229302498383315437206980422952186089330533039717636494184489918895776766005145826019693839011911102355674741203265077805449512862658297147600994916743011339017913567639624315568941569450100971545681995976877916546860961928935515309185860600108076092989542238138083378784157343642105079144691868997687717820594443221964325396366411060184388222810031600125602771187289801219224144104163178049368487492779105425326705014398895897544054223786366379720049045784641422945119023330179401844137581748758452970659312132300005655785057163252941372369477695576557992312510179318009386246773528666634572746231422414600887857402007012504002323747023496114317191415695138974355125527511511657775979701760142328835196225881018171270121289358662183751069176888665257982501730302183018362292119362817608627152969936117093972293531811070123427718154393276331915956190508223501139686075752341188053185789146637339472661541042264707502348577052824041144704583257334779014611256021428919781145344346968096444724989406859543716562668943653875954395005507441438952793485591131225093693172971046211985178224171984692134153663792091623721801078908434023362037063320335148460728788873876599229883966402912221249977001557118065814921251075014149071694128250159178903689240331984550546276640525644281376219905365933924210005214874455829872085465063087162147382969576626399070189456613484379384621271605221828485803257173909316964885782913507900973628008311411412317561011283496710185849677486932157849321711081767105391361466381027823437188069762350700375171523848752834763384423456153885938558758650400530950834822372551498963532723212346125925845735092953161713873869722090807606885941061943047004695790921154600660033657226390705612168725489192417535006255718179473175236498531523581151896014067253075203157758779993659732457950505784262794322441392761145504946124656988389882952067499698054488378413944405243892156282415812550682312702427837418299433585691925787039416223645826866996226596512078816526877708460217461977938788880359435067797566648249309991839939495736682775644530091149345467038523869702110580246426933074543845292297209000124709519206630176990580251687286083235740338061834135796215474295061960899247499484299871017699425686606177775567040566126603793119345088792201398773695286186566759439051372243951636397850225426225838859268828331694680851526036974410734106267016865937598658893293047664053809684793201543675196631957161499719452587522734346823082953821217525356534143154575961659602391699403065442216591456685583292038563977377079391211168458248216464746635253269012364296761780606889291621337933534554351053550235847812245456931830713705155987415516604282030834677121274886388767011221541589004080740378701938127254548874818434392077498412017132843904472578564553772561200820540417906006689761347438598859789830494147642677742812446994483829038106718689020118421075982544606293396507792204609697125471684160320188774250571100899807156932565421992854038986327506076666224417749452327027304985162581449390919771844935912604818335057435530117689455876468318203267173074687125816036215456635544481659947818887848030440688831492576995974989602550782134420062533919477215456056988622310705661393968432871529723134766605814008429743980372181341238694868531926656259870779080263506852428531714619702034625410286132149356501828762092246782920723389821481502368802723131331783348299908037434594913975925838143524583988660274476719120314486972863354499923099477750061107478855282676889111343080895567259324240541526551474888944141598506111974660578834868821139198943096178603314727578134089990716282061729048886771132535138786089867839007308223327981361915308280951841877531137049534245223575929676371612397400542494832519520244543225923462781918773954507741949892401888936503031457938991145599458893700129453808208627845689334898219486789293605378793093705930356778279065803995958812074258783444676261703205083227836716093420263612549168121595904211581552925341750619471518033819662182406132563417236076652349675450594176037976091301005442304582739218401607209668436293717299197736638820134576537005447746274448040807327102176587470184230621217583324556168411970933123083978365769875031798576732719680860334206677761653267710546705080845415790815964081229731822736285033910000620474857926832475302612043156717871348065766757518887921087777253509806767506346320705765428496099583963123659149596872606629200689214815418649204312813089554172764566217106132030463726621749900711939554143185304863662460326334519661414516001696784473753148121845594155402431738808378750340260888330939902706548714012933796248028290053352572480773154329345510435051799807407840945132753614677732907455865185992275789603949960944765789459866236356896189626511510932683396336461875070874156182760289423000460588620895916350444863688586086979936932586718301698336463484708102109103192194262458851160120291018186969441196635386794620219338199775589296447422302171690469477967680738490570322457282976977867933067058728730703316778513899077428901271472254154805048382395770824096499780529116377290304677744465167670358219065762837272523677131833604620620381624381519999031356155711405334051508489066351214396109364283615996072620756122570077390675697220404528376580221070532606720497649822552536475297319395561842085514091237117177840790044317405763940914034109428502799791985847495359239113214247200040786227160876267768816091188143962841589310793092683898621820770077105987529554226883997002805496872533664460846017201690724501505908378102274828108224133617727159890539111441031487514146346837803420340291504427812183105548025510142770310298432239712996241487536252206292889879109854515951607019740206702534480803857886178791714260865385255009273028683357615881897801056811809104300820704733091766695455081777946413813540205734320685722212960914414211962639035584199536751563981451252502870041089371955988411527694705232768200189032941088802866340109358304583886437626385641854925072448449256278337821613777526938180775694776567798129085734916533936492951017619139982066071045902161832206404961785475274483624444325042962274991064810236156674447203608360306214418138603363929917209861688352364448543405908900572756271356160565096818734990591411962401908926999237026776437070030108498994676348813842563714745804894189609719322295103487021364922096390434978808757193211784850612659703580309991048020094876366677418145219228749937346195236912390892808468200623825434339280721826594378376118192890390143178285811004320899791220178263792949782560956066787564617948958339805919480241466104343393477806353488099729200729340614008992595025336136541745271765000545750181410792947791567709130358877987451886355475590289787114060340181963488879822209518802321108272335221691758678055439640151884458222135952763715838313143624301670879105052257547651265643383096726683061700023146105908512821103910967749343449097287781509693345972527144368202092345101320931719094526021109499521212407848756507601402973996698046158347894768098942401872735644253019206439812506270467688398315774502015779738256814503709407426479805024559638195337067082037105565746288036137199962074382900890568784372249440254232484165253712124247298828350208473855963332194833941180149039202744307068626532620558023662728896100296528590966023294071524118063341840571691150274271503155831217315858624231444003390639175331077468659944986191163567154200482495367836949792397404689396725565966986400503942391069684385338718698524523549932928068111409487119413508535313563877862841321697370971130603923600098939604605541899687130800624977063713833132153522014624931056565029524213888407032966400245649560591184833670174874161135557053864075371112617755640863126963190373671295757880814999412849992273854824957067103705673144129087465640984848391570863126419818502690423547312195305830772715108600792875506853641544627729377610745283005575133693318757868173295435640075244124062489089670723267467955889777007624660839438339419428395808859947516194545656450726476263719707867635322375869879533804070188722392342596775510758567395894192711070184294959128652218094512194420025497032032421167767399888255473690528398377011033189146460502057484041685529735614340545902432393813698376220961940300393231008597324749143000669733793369305387789264269757439532232788726956602005107622802894030046243362489989393381244660455070908689693599937329336437372515222496625795020264667198417114590614707591887449544404195108572881787562774823891295950663033628686016526853412508198954424835673463434867005657011255292075676960359470403992421914775351542269120178330002610030454476191436362203337212333103837602510261036198505197937540023855920101594823765289633893931568286885669897290668014395237004526682130045194792297719176030190957814887323882417083986036353370560055273506565166685103046535986687392273098678743350387094128012784449373803496255966796359550923246775680652992200043247332921555620312657561439574337641300253292886045401779244399930987031033464333312888707828267340790080120277478939108747819248604604980533485134351139316567250608433232180331209297049901041097061508188122551650425875335432654387794736812952008987493466887081885430594916389935469178015177274341232710142228871343519397285154819398752367625946374337728354960854554670745286887414826661854067137442658754251872849746095512592808552940784070782872769810219005626390795135945201814843928751780608350318317185512943323694982394245864941958220459383587098753630074130529078426677095303275000123069251844838190323784870409847447614394070945466828099839996082917188388531697893831719819422306756905095138556244675738544290440872187259218316070675260851166923165600672386825530838413350511962336679536946747176381798079038587739502963548415029685347034729297579753130106238521302472024252789306852799364355763700924773454588951156260761920137252660581993226612805176003980746760312289457573989540327751407031106882389513225106711040992190418131972975006426763014862222099468367550322925443517897224810187825120207926117225336094449689918851386785191220858006656937185101787595494649266406856119510427141457970521480887907238761845501005781003079722873554886568329246619955812927916709458623121041236657906403903416342820259398519334877460975784695413248667682665219867416158540399359465553231731763592829836964247416477395308556913201638271359622007961232044882934859582889096187510911380676338221357100166108556854159842308325142224838141669612150775149835249120128761442392300546045349859412323093431774236712179180780838848015011949668878596706345676205872065400947614874129388365141278755108940637038349702682105099148979860387108165403266347886307866745888747273329672462746144433700666766131377173409733005281118458158486025447676568569154778760145483802998803026902369192102389907321618324606091461303863213494798743134489334958829135680942139065894714683830475403192228987495980990796888415038605948596141749602436174706865239282655864249940732979219490536764617716299068351069013799377752745731347189545299477292358976135653929782587111509930231420603682169352969573809364107572880660727223491809880706838505647465159595767434731613255002661321748440312163178591813294131587014264715616830457703960815816031352191840294263140281550214289054631125644418928438450559294525644803460283698268742524456678325111916816245929108382510394392288645915538317896632480067056588169432501897292908445702624757953723707947362315044267713659889214934844662958899269581210212228173027469322617069950606061959039924821869518460808874780594217079649512371922246750716131450378872124135901107475743002433160800174192504472549359176823457587788800810856942623857553143314290719753898137443254287053314556844319450803468794295992445405409012802884650925501514060834849045535376497319820753440715516124659532661676557782838322518190770384754070157484314576615275831761062440392156715223579552072434364908164379057856039365319156142142750381498765259852585511462950791430852648501515902581336285341280541433792353839394000225597002495272281495680022896791245649145219797810777038503826655088415750208613716679408904459425104143098505254900974133465949988543134522904726218771857890952286458108093587316889399776419030588566280847018760693639555873450802283095576215356542581645111195682699176370896390277223107778802538037769864308559712888894857428412823041030662707402325803515291772951125965096832517152985101986970410987099443483397562029942570500440345120386493647463851078514636402992299610244470018403365877849783994047952461241128112251540042079313798022238266870615307966166051989108668570216623857303601272849111258016661277787096315635438657998414482023533688920723276537780674424727402217060310348227507360733890942147186673234471377647559625609081732533073536467819693395098032420441790621329651669393851316500470287647919723688000526042087859706488223277239465565524322306938945504737261352059098946646263236533535342714315185704515916143541213993161508839002334872152705445668337293982717027199756057135255261646193570842630338452072384494627564753267088677541724446197531868854810135604235056158732220372965598907165573220207783863369764563627619725363001704630178693315766559564533619334329503171138884013940941446199146327953084906271017911011220909510272248473875897651274868920097768714470125275552238137824579522963177703743872510652160127345831756737311341889318445479695159907732991221723975390792490106869164415007920077007918353765678747307334189467166583444093642770612128068803351834709245785033458670153866558568896998872637814747407048897541297591795876814667715631195846067833147061052024603060319920020390177506501429842810331029722456599266835452109862306597794262309520287104781206877115813838669361385841866989128233380754529506562975105175572601470635699513208657017878295409785339892778498263722758270435781430190291672038775082881843249415972760211497845367131160220841678096076683608887393054122196590439077217321949943341811100772590141855514560510082142691343097051467338355886288739670997145869371766096498603312421415434356116008340559470609496483012484342533653407367410376345894275411855064848706485174913108388417237537287542960786147460814096878456515912129869687893887480655330088591795189254575398718272466232398254344455262996808811459911666017727829093651944511933261931429733713635401093510068842787050415128225975322861832129754930511368452289333774367513119120669892696371396451422673930203125315509929068868790400922319036182612420108601057475630345252357849362146362531096036671893216956265733351525104102023448375156419265427331688469692315248357575233416985949288282964227397691616942087269413513207582893664341847110535361225827135519525505214682424011236107799188238510413402557388730248538318275179451006858454367745895157496430429752288721316633823591523008095963512562944679379280869484794191863863748216072238970095866747818363695678935952993544449409833548982409033935699202459788034552577764414349496281025784236975802395900547219262491981819727035113375292347069284727117053582444051194819909798312432610363906965374541975413754034218128726350380266119072524964278095798746937313203862688989310238612427097093329231380230236344744262035320561462932251858518446215104323081705572362540587615128735467340448419423765828722653965751183062783509784540014289130883147276999506044290105800360609132814155789013852930900882043719953731935821130007753401183168360051434232950428831897622534709029392753256728744314331102450369159469403141040228538294894958573729036107600780671164398323714030428183222941698342759126311790602423867055483392474237293463977891816746683994253750061969214081130149227279483604785138908519050316818209167709433839169204264666235688522730728994739565790387513060766855195337469424289332393079427972198478358553932223525203513576621730208772823569527174292217327858655068233037041264427173353622328747035211745562556247853625745589933130366254844735032638599358194085343811072238059408114001748464720000614839942583570803353041972058667123431770218002883528953079691507332990956895068425698920445019608452140217702149301278776310176814058058200149372190783974667281250662636056453686100662984910141430333481801778855319984350560544059647210317793339289872326483218793547477271201990299466276940130394658440717065143872761478969249054911829108764266406144801967242843213410864898195414383357014571604852259827263650137823541920498511385148051983012140368852954587616610724372929918875540091524872545410650393428727953046589166673607124220320378771262307194356880307378558968728281013434215951154916077750322639176464535672829765791020260509940008364056643087508656918179444997291409914065217378449391943666126990604562011717389212204120340332722378510495218371417025529580875630219474788111443206108328964329492025748428803340849053637112824966422463604228677887198193313844474126160522421430785579523526664532634688417048607112641701649614091614213328126804870011297226136708920444201143907852075984561774188734075458234262061333461942349491058118399285554587732743814225620184165742715586273603434006871295005632560455648032235841608395281293731023588925131283213249475188463723904652146137679597909625285746480201580001834505569793318447583370133028407533502389601371930135992477528433199780853556370689868749330383151166796146520818871393601444130743773982162267890469854885031093613276231984186561658314567711035510849513605785541021388179163166951875998342096386710886535022192730950969070873282704643740042664917250243362502043787705787191195825852414016099372751974578059376560609723495474705744456819367814738989558691513517925812429909461014777737863900484912070675906698481124174775823004968007872972333918092508997134329801735162592437617727022797225460885601451562862340443491685578620822901034536800023968527586344884027439545000626594555693796396417574292414615839425744304162619043168527213997925602806805037705176163284077267091694796539213232332068939029458459311367040672249617576435696702149271420696064693364404981503204685471989825823561631282925254935023099365817095207474699060700847272541470004950958709116267040727208084751813857609343765887196041855536539292867968630459736887918548646143003762861837238934214423968905159215939605194621520845293667338127536005278639823609941153683727531252674749036329162461821157241131252866485879385472389361610621954425304898743379897926690933898449689314713189099941111318903941166387217208484569350883907959986092502689701530136761163003842873836643489658960566393837486979265535427172364688974169385521267734659188023999546008490377022319658484164309453832047554551344638544612177346491059578591672181276078673922142279789498267119494639512125869978309775903680995063023011893578770434878582935961812195280550371174552810650347279507758935428000391626145350499154625361452967869357787930573339106530495597665232013633999529146548952262079249400472697195993664641179398574695049058188262359886655421434616646712376835508043666091684897199506546737049488770025232457490757544572185187187850575239027614594666197456506484808508297674100681464046877844710871180686601126009072978790412017385718845726447395071508362294482965952502448654368074857081833949556219818029078139843404357576977696267444075093853377744614802163034491748624670393460136137567937815525393761450619809049374571044077561937453593426889038706685322542336444027694043067857693426025238607266128665097926737725116930882879976570585923529711533593983556890814104644433837676182428822405929976310298385640832288492880893370659930263656855475175513247037061269402230363973070972441372930360711490112289314526707180096945850283596272282844824800359072707953075373597273040656537764787738645330898769163438834987004671838477108927498085366924926107320436006151516434908596834069690043878916638635924898168560212019245081985417086461527218204758845236374634633894690086863389143698308860685812440014326357353841856250963100893982810994949599861081136083076399146781540863687922087547115639449122645975833845598250588414525888646611192399575658291841624525776196900862666230863437880419531636295161489377492541068157122511467774357407739764953315065418911728013262334349965684707026124883527577523654675526777555462838496725814012608963581165772977051009121743022848882485276302120524330079389768008903026986929867401867735553518365859756877738703384486188955942606511839125846330211174438750276488464460991681797721523802439484438238577510520285466706271681655134466683925384880099143250040155929720326599102977801939369028394605162475666452803463768471361944940717640596025425333255318805770061227597821950274217369099033284304133747795112490332638311586553390802887734447662712570051603655079586000047952750043763426243840444359940119802312985637054712140201401258990063242760606316548370956982942838515368148716337160850056196081730192113162519064978448985262680769670036947074607006883642104751347248974519947424831348279388413040309732510140884680237137299690643471080601405230941144031197107588016255978414359915181404839744096727855916165260652404640787357636560349826721952363066792529106564757600985683617125689659381015675833903735394180818459867808385332475449057021096440362952059900126904758980557243168632813960275466190613414020282703999732422757107347694607342091265354989097653675192281881636867532726823002730614074375933096866296780599315528528904925312279461669156411757441704624635056819720622256588487233728937680930798061437163325061073844690595060079487839318125690745859813038475658674453026274816116229168975941934281230228784320327528435708890656609319906399095935817298495230218956300936408735935135538388387535987503420984968194395507617982171889627647353470017207812520627639995438823662337114575614235930026734941384717333534812945361319550669086580950129911573203783052346994953917323435743676196090925741511228965171478565084882947925379869770469169904066127632803630589431521648428698180078009820194775192498236853260612205467354237088054925044817040165701624296813889208338366805645428360480668057642679177506310338204080399279455655734843683596562015095229766127641381675213283491898593903716835603412204779260142715546385391723887608687704609934067903855396250249881009982688601973969846485209435625785355371345848461871469197028482558963393060496654273937560872159080963052547945505786655284474364919222034701175803054625262952658891921219176563568866554763122294679983780255645316198392854525903471282781547270485271702175193647861811497993256034757156815985992278822424475891708271302113307084959384511887279001334978093778158003259022329245453452639849076340028606415352364699500157881876601271893094879235836076865413098835459180989206207569902782654819250369290973807389565177813332709203126090640178431464503678014716980663383238005008989565132378022633596717091974299894978252451702095141208097002843151349255740594259016131012946610867335688163633274355130020652062449621616174323315739542184734902858273316062838101797363707262042608471196819619853923690624504592586488380168301449897051061085272953830456113875461699320192735631747215746022225534699189646968497855652846235508154292041093095709708410616185149181239743833754153933133019498952124254224666707055156407415498342050925406375161384399896517952257572478280208282849276655698927320677520593168347927527585020000976597812756039230612912442789840876628464847106574488406086088123341500315632537937299678927187260357555788754661225514428176014126632039745032763163814149275882339452761564220308062137730089481306557471411751375411488571757217038382764993190291169828411486750610347495309843722998189694707376492878924360236182337583425895767465450573504879682701972190341573131388655056245395412126661246360890245382522195390014452977214648190130726673198012891552969651668508922933937421261452096364904604313179051931611141057567369552503820282982181980550180407474329370121810593120013417955212902465760525937839094638509453468714915436099529945851828293916959754721045241294128078164493459861763163650451041969140944837753123017447384594189336970732269035806842714135237913096596374395340126779623475139857057058315055028224600223916233617068118984913706632145579771561547919476790208494984450197036803581614365456272224852007872208330798425541720870620232932321157281684086657355468085176146922503312911889677329898097349590918565717163310920444828190405300809867239970472298204611564484240170487307271565873509855269510938141645328021494883933576700431181479990057267610184707560275141699768807120100915122789519629747132594780615866810448089264214694439226058587237246723984647826685245004263555202658426764518567859023767007197207835571286356802560284705024021518436235583293104867261782797864060800882535303007948348536995695431872833629690820983201659259493697702809772646684596429200745136327003760840542157423589083962332031540508736850433691151236196734314948650381406023080475859632000641717350860808833442264615131071871634411503515854158802319344349901995554286331593570019377565575844747297208146118973865662786814892634853855201153150362048909637759440137827902364571849055348466296240219299264999187386309936078788606254987404696513808501888786058435540167066660393905223859187247494391878652181959693504158743339357549414439415989940159164392868220389650151838099195957633012161321811284244380477327276086941853501422229102009031306098184798898659154617017856577687868031800547717036941790272970944322235466011719573237729884637913554970384292533419069610375132573173434600572797852681473041017463600928407546896550450679050534701311958961668511473294386025400184045590019190262040542653199114243805231897120152504199341110744234897090631439772421724883825169715218144125312557523750844469848252563524487366458744759170866264173708182159103651542550425059546736592343185873805083280813894540090296245950621777182797549229625944734518320247050123791743883404787015747996987868252808432449220357254703662164949141065177964341885308379293722741367109905849455314619033337177922165892348256802856808083624819106796783818923066253827344043513896901238956571072924399991888851321915831380143393651925365737059419480085218484713646053958664485305259958301780393074968848958384328344985439056435715585719727022489856722313859881855170287652344781625689272667538832593175099179304633121304847806624071132610181367765082585572078281650280116457365526035445972812830196843683577895811123287931232262159013495325131191621543360028597957209232631305801189706042923454173995212353340759420346759307025059019756696208351854364747456793140348391271429779592104806673194849758476380758349810040207368625382865498332962766729133839292140947026884598413815111201530299298999533599302262178719224842966665109449932225145608236373525325552168464758464413551376781241505012362831213592727469897914293392360228720127451203221423259836191533822659468882750698097563203685970308836365957366210918509165030845409009229923207341404378294174031617316913655002955069599374322912429368354906932405845931721311082530895776933013688871715353352605935709515535145945092485264996221944481380310442366238679393505542983330610775846758833956521237415378162697276581896585166034054403457038547415083772202995444032422999816301213385453975113543261639869484591213928364372419708862591808159280844920680756546470064367758043599728550701286183348245626391462544689404783977357230934609486047264538695586230404982733225275827996271199218462381435391741571088803149283303807020897885068803386020840011384821750539816633137411252636325836569864913131648320291500251003206445310255588765868953947000575478661813637423654512164436469458883653979457675674796448694498831573712653532310678112893128518053596528391165766595080667224558442323569045027510154471680969783703631709825992386872302333685661658955009813756296166730497635319080139068754325245389153484356297981948982863524328682456394309101216313452485824243676851163128518873392690600201809462570888180025878728353575091433700150829662665681575646159454850486705620253061027909184706579776762975052937652033336310428749162875757133098750267646282487385466319692823871954689227553107227175097874491264860123782977971369543456607053399407432235132099860878050150124868135724013074155540369305871899788111300827021567405827267703156116658586132958508567185394579090883696405539938620940728104776854854399600122854617433577996369617611577791342585647036980011942576150562761094601663723853839304906410022196616663160769790182964869533017889489193102389709424048885323791043899662701715173634421640830218752615574809154928817749793786646808713909771366112554701048770443876930536398716962470660511789114046963656302168272753462399971490373932520436518367371600352365773163120861780659879778324524109458984952650507864635955349097099771689151781850945379802014410448580144911283222072855602819524766834744804869372591100095037035823662453153447335829361125590558819896597822605716686137889419755895074593122542424869352472234843522200735574211802023565733598676540979288369425448267400543055743682544828021281605732131846464114632961747085899737147386790182465447556037876398394092674403552755271233502778697559006985165387170535738247798525806184450938520293959800176441771039212264378352945423176854349365756552864968524322727235458495268088909985240382099497759115604352054581428578770116546631776030492198356502740774705453735521001588739286301338481789047483389061436753914269693639130062584827878274698971858022324001829358832393381371270435238617137004341303938661855454332223539299684856665809035453459525795129784527013963081763565112501059576514600661737992773250281765328632037486490888418359855952920053197726237839962624059451037496346624358493729120933517494728538694117081267951299637463948799273101240759047685226597945306302467736492763538227857702832975202214418013071786678255311837553985665674889396362706998609621315809962888128264375582651201367463652229801930037926514859056057704633923301264895063174564563434134656451044763433483073142455421119812546523191631264320416870014933581259872706233154811077473499033988157327350563279187241157606362090521112958958717773184483668052227396488576448108982875380091879535452193939623391855167376747242668593641019097847874567752071443277433998082020123618864640978363319822504553694370555629047025620374045859374853076064025857704123912147707841370190427224358137263711980408592732505019869411529323826162280192939000409986668396504153898725260285102467139461603581919337637150641919352105610250139353465342779196678214713326144350643551552611321562055027965841095192228782358880017994803790498360796922544211256845864080658245532725607159165394988015872787968603238561230804864239489741892460530388163337809600879988746564696587723260378977998016788505565986708967907745857514086842874827223065942182426112584368968380408582858845119254412629537804772201371782018236541157991625538243021472357000610433497988663322342899492391097216518833099626751638743495529769824747462787149052501896311137871052607923921007064941276585057600596434113439470316365560390232667717390729037366966920375028760075969425391081527640124706089393028599527752855300945111289243463418586283849488389219749003275170263322639789959506161543987733321029730746926760138906148841875401989937221075296796772632643791816625349103128995600211514147487612262464203915347252766722384817591318184620432888470618724953754479218374239390728286335774130919491820041273536042168753692181303378018649171290167110267377401591678894815168546704034583629193797006641388226262944907522206377308754888307624268133114677496865436118306652669003994146295852668213885302283418667438667701050896625696096532462415702257669747521014699647697556832933527694392345454514933921575779140951834963607943945047388388471365888391298989421056006247339325729842156237432324813069617542020463711099678028918910512562920743855581589435870687506775254424607410109690061568241068612515745887612651419601503731877409720312097487647375058572191898435294914253581828245580578740966172376512560844341047478518504629365797750652410994824149615308346851539989490637701422101970677251787541204889599553772117622791475460242501217331260977105692463881475201415911584279669433850729123760972627656652483991605863229051004487302791153698640514714057868853216671943877958890676529984403097724258801017878972931210351070356546801634826773419604298553651492256232688393751625172316708567685894715802428331213104096012943818739803856754258767509609516013933621789765300214224924490434749089653918849205563012892743682694032516175974830948708139745504055855061101925261149301351837535406123934746813546407316704424562643382641468472547593587097200108654728152777325570944884704884813359793819465656375249411215912946951461303677248927216162267756294413362102962038103992099264875525824504836344530800000161001770628143963929908523453924861428454878896321655748197386368035670636527720031550252408516650976722896667907670774251231835593425312421822648388859191502900031712727357668477314179355866736459441194326766430847674017825517475104292102804174663203191431381456560621788562748186275632547699868513357352836053749760264018490852694443872564055763495681801558110142612626070866199885675142197186218021976414280048964786712228515253549083505091143261937811579842204238474854253094354280055352479853971079788908746793683738339226636943367632708268137252522885996572578328054288662872399342336834797617636454748395408479522970476013841724310638063075300323897017589889278456961372000146915782613171667632801803947138942246999181361468047120753305189270922026642558947951777508834889878843871365300039449648154550422607998290276617874145053369389657653530263986648974733994429573124181082329181503716866553793614410152329213411829013369857981148039736816327312088063250318148555890387455124207068103731937296481765058553226626089384477394490936099130606662697676083409073238927850584156562580296778938956351397014746685360502687616745397078117809353889396375421140140656314027323521820637971195006803504472700422105134595440101414490210021197508104985995908616321997820657714169970640287497292352889144630935835265682678348913298160201411658558969720239289506608634338517544446048717624434193452613599239640712831981084663771661657036531556826319824584053545169640054152947037766071282356832615725265437551116741359777587452415954306396360384610334189236968577330705450917534892217511558384791089191908011299502109276697971400186748237687461867191848551400587352019840171603062939027983629264398600816691104492635126120346849089025388254907940864473355829455554231115295648521716822116331524634505449031921512027439139802090678762935061775993026804811733442259385773060249788463855126853306397055957178085443904991027797218786333223830804307111597136279426102844154179823168835701211345027276291076682569272741560283632674272669650193231136326815897474908708854306582408678696163941597554869669391849374452588790717469434300536350014180871948446807647022536456493240028824924530287005275110241450688653503205595282036556244554715290845110474286993470304236103657602073015215956853863199486693450815364928107729368838136824944078324979105743105490936405430414579856005237062452868247370373933131937945302820715841542827127105815727732987710519931347314365736387634328057900912003338093088554565785821441959223358580778214280890969888408664186983631546744722258455591236488981925025895730134223369086522673600987190267282058530554463175631709441708793974407488453507607282551585030997743910673969050348524918944374628179316310429818896802882382045220937612968411784770462326654186474707920189153003245877623329955280232071379250475607895108098561311597919942245708659414855439077451809568201655735298593819636803177481365746878375727768967000302304410018779093297361502910269075966109820922669845427831009976620933074311950308346546645895124986462725420232211718201315746887275506147988656816439842801878877745161344225306306864526495389193202319470765901674091485996621587606235025931790990704663338492487559722163572424501314113787016380123548845521836588838218862129329830885827872728238451211237908988880092618212353495721638476223875382544336147860076893756214593893268390435193359986825250299133163539279393563196997055572749326807966157996317436619756797601533386559394136853369542885783941066109744723862623654102585373391451061586621236882344571051249289887815862844285848894641280272584943881511050639404975498130390209846317668249128421668133403152760427188508503745753675038237067834017109886493743464822047165130295246562928084027658829533567648283548493131637219911855575814507198314883866246041102284361568991112918341623196628306301565997074117535217200760368298857007248656195834634304460734499182514858918342484474588541548016364151507438486180666869949782901005916382577595497997132347063152093618829843973517301024626139039312657448550837729282437176500370488523457772751750296062111840017709513594687870034839981920884445015735547133315364821217083862597902351419578905813863697019453656761743652804911131541517674316809271112655600283896529197972749896973305394609254385696464067803473075351797235339021031645057445951645227432352183480935288612151509633787020553741704611288265357530496660460155627287011832433800180845736520145863732328545786700415926304497962860181996837933043515793674477064475376102686736875449059661744751857408941188067273134093307588428027704539905669863027215220707343316086490551964479616057152917376656706774708172151864339036761851974222058723193292009928716596350093479873458866271352122408712085597387426586065952483908119130781180033943046997488502521972912809132563012734449246357822545584561165742131688872253052921788064392856732071791888049650953464301993078104655674140614745971295360205635583855407701782717040250372384831362355034812700541431607161761962667124293102790136470172389928889544059567472247931164973828490693510165624869415064232696514024746882910666805460110054231405331942010537074922243387789690705861737710386622097623515201986160029436354518020168536745767939661212040793339523001371916861825164026566656861231588321321790223249306244287479355672806004892085770021264282185824499388956763076895620543067715181905042308314666540498860916378884724272759324831503346988336525463903071184563554397038107916451887505640863633542280629012241275645757667909849003974570550269426962635130931213857739772987881421264291536376736470664593161826884477352107900491868549446501150580185655493751088766664440317286836129965412003522401748735010495465989272372784612087688063724795543530000788482679614135824950265854446494131805004233640930134950243010889087881872198857212868239110602957264951505466858309062825077721066472291783146947389098237157241160347623079657308772032566960282974827841819355768310506396653738645470302589863809598299645847323992790614244102627835059939372457642868796190284076375339894514837510760027043339174720485923157367203337186847312537360906785639067845676120624259153803669199938030393047604100184396239108172181381561970035824500091900306543366670057760918557755045097609242574453704155297946485434628100813069629208317797981104900262258796474388526397403263982931748081167677105695130924345885750209459043485388768119739139703675749337444824549137627444341293709731845859718102990566381911459977694064952842245921328501435188878290355480260943602430495171458162461296786133149881021348571575182751545004386748414900430463130123823791867803320188132430139661053492839316107436815074625415627443847322471631591405114770893905737675486144491055213588000977023597386958160538359526746703845847664294025446444444928325932940561640336482758820973542504652127480339245603042317977839113301981725029445959085822065448296331122285842506871677461723821412517005926407860615648195530870910054857569519132709282987927621267071049302997142889829342701063354734169741418228952477050090563929407496663372782695960148024709882874161794568847370982107603075211905701226439836556659435799164485769481681244423609125050600647608317610758309740897526716430953541531954805790818239749554323102431768120667333842922735928535152179898417316306904853284555083584820194969153253005644818910818743465022719141441484345379453724270997823629934668430043264733156286481563799785333930006795317400106494602205150501430692952333010722045708219679963639663976839301980618305783282458021092264047663620771584216221638658264399530593256355033740560450117016739093044729365465318119882692461804369170846157686377696943553408528367001582207253138660213947137150158881104803130930659216810331509942127408996215413435940526846086619820141913455477311357566660186571743597131119478174297188751751744730197383190067375771104243713464809086113501055627577636717956555194756500167650975609144535458441400678516898920727732796893699911323157357603697687070619277698971500396855447449989399819897378946627422740499248904629289003463147779491922067701070473490742604909712558358917682695746797817454778638467822214071215397583674131285093752043030873355531208270597096686698839198603339637406202304036961397568721971686148076323318285865414399703791644040003382337949615063872027863352161040204656979106416493455739558320128057677290602286909630304526114001949643283830812027337366942164581111542059321768589488489078066133785737361091202249871831165545989573925447744669983638055448340626438421684560189460409964261090725860276372562889273185906264908409119849056569941701638361332078870973748086854045549148642153117546663046550539824974133063608060594428019889182234385853125180788668078220518228688115755911704771128599455136890561511296700552319628838524735395564664638848918652849615146151119841192215263936426603262295391023509365616237801096713614700508133778806921958713240085680471486209999473380976388405635538061859160815283976707388709167061411442457017856096671617127518659095108179891255593397639017651631452677890714621246365838793063115460911495326539156732435479763524652147662741971711914502960289722438271776564600761886654000485177816825316058133572799358887722140536412905869522734895241311341993947156076771777912297540500714247226071389231064427632571987386976046231149267664974120230451839203604103265951320798386850891163949868664164678396345839275107134976597024023608372256307321547011096989851490898673969462196239276526908195964700953129129951002526523130667112636701616244454460050161482535171966179933833408236664041969871062308601584607368190513157676080082403622339589379662204388967880160939162373798223766777841982315679393169240932612934930012979999393155183728307159358301052333116509408484898711315187457677626228560467632475845209440733912488555142632523539692001071695109033482314493216360915295958770921538702014198294890145621458473643049680452270547312068960928348524282957983369758571296603429973269917628882223285332794257535469686585967752912336580641515280529597892696736966298739333636477243618715416552211804409965639196628331501962975067406143506348473224375753811510246835581149470650197301597991155958333747386636199554814212853806463279635108829685725951691876023844804797844539569772612263777964168199986882930734105972044490229015717423784026695179933775735570151576749163396783888516751827027373975051153709970919862906181972630146364826640364997384161753624074845837416376511393008577241868827800640786190912938267449462764594545410607982318870851865069193999445870498103430003433057133610636357542008432402227775549068659285455585785636909482942298276076368350746094845195760636044022786407874735272925900385678712696746784741036674474059812476816159103460437263264207511774525282642589091159220095112439175089766339498547312171111617653220346213519303121590018874196141144180361120763718996100955015187768409850850041852797374890973719801781785854853379265354075774669748458832145598893169486664693764416403271513679592631611063716993356901988028900977421687344802936975733748361351233206282423960025276747909540605326089173199941133521205473323855472509513499089520411350363116692291008112489054119726400647647692140412425418264666917178636813549848626102563458526512679927610255883606396417092245659975741186616687705668215771299051170091835775681704934692608183482365943637484775223183277486063000131009353100105795155554648380627909788697147635327072497955926252504740677068005591550847960634474424728050589429039161408976115827519759556180933964936898968558744686827633705774821217938337073827278931603064887374907889924480732715050910600973126126575433901139157448232683926347106723542436722051301100307508519733064972134464755275593229651666700987471588120165162967237968713872595385127905656775057264853598974331179123765150885122303119196744435107410750111223958507339933409383095443265410291240062520990034473023018118552953444613246116907928367525328005997894780296051856347824381135217154052503951395369450412731882091164639096110445093638280954303819343354816832557928660975236254594210209109147745099020480218501611050601316870805413149125627731371365211578279635713821904512957268472361931823297834217370779338160797768352267830127728429530769189486123167835649604876627797172399969390764031000870734404309835673590481496353758942660510678139000131636015898268004201021431541263361008531076943333797920133103867573423977427318089540752336703260043792335459533435009592015123208339226817861366206857197322442230035015499345577484406342751645849735948348547357585516982105273923363706792140320864138674572812665050794538438490281850470732861988407157972092483650044839001740404557291067574977627845675617254127833545354365084908347080943600418017406463376711561602406477002892364061091142371511584976230302018400367529851132773095831921881154680269438869171532778876122088547088335368722487196297358883218608908106660123140470526794547784436739375101661631396866650695768028215558452194603158698156861393479741515445380693710072357920004750264685540027696085944487995099037282361734789294965424607001473659842069598703525579810464236384999562741342669128961285748628198558204194770517205644453649697221844082705408662497233104306570644965826905621101891707765218660091656484461771060078259202652976988048761051575309290379894480772918298377429639483865414444779132916636522851986861508108989929677897580896821692292680438182424473660345057188291501516737042034340060500325835648222490652406785895341161998132133454705847965026788892781611587373410877937417293636028251698721059651964822098307635675181196762336645165553584529147446115680030473854758227110310098581195845979514885067767431311115085865720691818843724917401632094914339917135861882896962972073584389757621510931861177139564030466532672735928630137522592395847966208567958059838307789846641964724963782999218806121517809745033662637288226331567027384558780079401558639116200150614844428451203368508497718054768764715949522160690864802273120635380037298632895724113801688111149584445361789122149717623312263220499680163380808644545621446525121452984274564959083776442197342598083471387599481697251734866069189783975178819323118336284256220306073427585383746914952753362930838600046949721237524788169252130091716967797257857870320702164897855627658205526901267668258394712753092799291401097664483515641412725754984759470032347169404418823713191221344825866220282002140441007652723144272003398909246743486472045416918398691419822598015518699537608998619383625390221564816446726147316519058193029750472421220752927647642178599336508580792187439358079001478735070023934896421870948703668075126214900414638577834030316442543097369745580494929263537631583587716642122729199525811480655722796589746582415192041305195768985651103587924259038847711478191733891579249218852936346502731849281803134483584453995856148483132716688436783531357041627095162158327045844050506839678800025607329196991090694199189243418657298868312936415878999629125785395217795042560660367419235048507192884341391356783309547892547097764676250982061801265026130143083621687527463405190509008283181639965827062943064107594448824030609522210598936308983807897518083308947577552871856265916730851259227274342727206276220022814549977290568310604085226718294106975956386236220522375087289269361364004001484600374431578684486717744967544224939227352522246492287544901783616107822627199072632753821111078799284022277361913813044449413546935448643436919535345616960635579412447389677186369245929539039331164371257645716207022468718313103042104972463546514947805530264008297908020669702543508364848175826423646510713340448408497337890109091573297442657343507725561023297970571799509350371455670326809022794261571730731780973639314567724816672678022618283249945702486460707728254643308635784209785496835074199590271082984191565799125202877660645052948582081703942731740578700340463588529865591749411726615213552800796740546711106490336627496105755432567504039995124410189295935291012058109150895384729211322973511888073042055444155201058354716125341840134779671914568615303948882520760390204940311712534892312490293914373595347781088309918635798780095747614676226764892491484313788513340172603297509964358725040612712140428869237362505105780951240636779674761330942128154677206245989659095725853592399238021001321735648740237744728001697023730061605843449185806871128039639137468464492670720658533326888589907193288857933819120993859141341675928790927747911089977015476645649399582301499439698351420237574498339183692323020713642645962461080820532656816785972698968477802747759080701900601888406196359146735178492719462079080678007183587720722929212037972774433009738686204543231151681767968855954055329556715784021962099644536296094787343751788892209617447731342607414533028393915666145905595006436973586394633575165904553658353790681453040414107981135780020226117955557305638705846535539225644385570320658115972776359869489577920463589317522586570703572422726216910370208018870535669358987618117288480036212577870476217506988873813582327848243396801680499497736548515497893986705454256889654253427795751823712052860047681804694882936731337733104608330745568616921459977778037370118159142992449454060069587111617546016992428661712006249591820722700012411835146541304709126642475153194494328069610650527716623469579827206930493703633380213932401114124654607003841951694186841086581252609870009636916331921064496605415645694386534508828756019463406360537516137062527767309430651787122930422683612923145895615672141263106651526708341382901423337908571558177154916295966372861598308670985201628268810224232462686376792271814474400943193421609257699894467256147478258474794097986522683423475169926573518523852866921395412428702030527501970751921162068793312838780293613785315650977951258270200049522801559402653283961176956660813696098253463480875948925455916056897630580435410611404773283906766210326005552415203118390216848770030066989944412212102169755264537764511972479449022608813826822250788173790973780337246933830658758451050442004244004541293736215547496061734808566138442188143605046590978906506775353513246453136290199175015284623961562092357345638534745165348080695035123903901359326377468696022596252922259125258122282423987963993098977900128001004059194540360723754472816302587503812579998772145739442489734856464394780913232416841000264152280769780985388456582264591560330557525200448659210837920223849672273105182426128076879799675710091157819044600158399703516231457606009378384271095911416553979101522824401142378980281531281751351167518361020534882168739186622884376888904985061560182319646552578426811748702869088276557865105659556602114991963256923128960627596314912475039381626259566214375202664493491230161082094235592164869577439344933109019800038113443525771328134070649177224189861892138160314907277059988464286939133286677574086351019707915387023927333842094602488040382693707585810237137019209784342017284102626408749727518316218375380691804337110708169921932782972571635775446065501825582735437638775243569754327878997065035490896050694165176856891148996068496638461600714687993688512610193696226819353041351599279359844206610542772027776880582502507324859186769045307487057346865111197574621037383679254569945795954112980116944561911681209805867338089579462650475234089724850739222414915952044353893651749871160599912294640651412765039278080676402962768903174407890414599012377277236160325274300522532011078931570908100470037878644035001908954792490256321746830277168737002512147958456721435746463196659303861982824053274364908173337084784529076289634301013147324190709991183844416005542598018282167665461146537573996574850978309974303303049491110837359185149384215772323438849639275062809830793032693779716209987154438235939204230894955301029967250747837088146306181587759562819906699718700081459150790953807328007564269386041592300496076903125181688918857147818576596039377541981876858510295869016395450065401124730658414009224410110182866859098906313027632803373118742267123737906051741153520901158145565174580379399904125621535375381485546267923275729009327937001079728232235245356169720896486087687658756972234397354875224277175124095283427778245815751380525256894238081665002404312481093085924694450795264544778082792757327075667462711622586525348203011963021271760335555361134333128098954073379550113029790740752248311261465569771838360643737520769270431753144343686201442799485607785485046775427511136760597688842733036774005734528167487265724838093938962968048030230349553927614768962077556169464642897730759440993083484485465013594700393007670380227234114524444438690066291694997886057158535748855275714409804425536172089599809450083306388418065383845567895595983599383074223325027117285545821747213189481505106482078992913559980867290930671614873907990037216317286804120709472401733752877692072119904457633938852952988664763714768579749929760162802472896147857590442743404330647875086066453633783462541428442538099426662089259335455459962390498898796279320941953189946558152384111165453448906797638653906713779497795549303822166361212505860347427469823903732610234429047712748000895495334605888889611780732795721305382829965131814206994825006936941464439362563419414784353905965814271954913237554916000823998867396514290654138024316844265355169767035619000746558541815388061512980450513827469530280676567197099955602773579647648213297914987144524154378130955039509013799323296360767412479997350204378216724145586285754227839758599065171628764088093815663553323472641204219830778602611911341521519337106174627099288669191211353925624594920624987216214869601630460355434242972002738722309615079312835926367948670644204710621329361185478488160909377902313367921182803556679535596545390798760600245205310433035479508870900472544356361471352521478716484046128229211308616067005745095685322759956686567350507134614987666914054682953465861880030184597760699260391140990016414342931534302844726041303560101314726526620015395685620803732331653118253086559384387095663219043539629945178373663333603814902225401857414565724836866217122405266760630784519493350981163491361616429474525194420277610055618316135324238886639771011989062787302668656014627535109591636694338122463848020774868336226514889618821974426673507257687001579539211869470463010841064212121686047924130240050627014204725380086106609675411534719498642046638096239807211363163167149943889911637939557537578320110077028162779683996198217104844438709855188755626209073161956860037570330198752212957451544888132582231083601801719491913616688251102278378205961326968410537766776110568685653847106753716630090012940218036201604568807241495284864202943970621093226441060896773940201640251184422491992862581380369430713403946358347005195295636289262761567843224278812127067800964205850221113179559797043250724725791281569464911938935823011677672085802314252198637074527021241302943205467733433872514349793435856727299851861222720767743126281661632348894197370780426024449243642218829080280481035224503261061426871107543851520312367899112767226305224307874452791014162886196748134436750164212096282204930827754797596307117998517375050727586050975587244388863648327090411370622467914585858396745162973558358825214326905446024330495977887477886322286877870676227024213337822391147764936565186743562090844053936148992583654322995235656153538623407534227648943826566104086355370974232043419978749441265614945259667028965661517488520886009580601606941511444516817921979185718232233187559769700339689965367782582787281831293170345239563897616082831765650602298576844903194891324197169335637658452331026610552994409912359438632335746013787816825060607123537127312386382749646825024646448191001735033525843026489679203828305536142740843899167194133364102032829957433631610389187487414061234029071454659170476598735066743069886766662043938957037269446102484749854833850353134873131061757210544870635404249694037927473666788134942162882445829256713026513153014936918208018266896803041676501879825172630315129200505249133564404863836389562112336827815036589094526736914184396224525443489471061144853682235140868482406534555835332201914266184983308184058897302586053243388227519986947971823764319737000580340045196314162049758983209318573847637585618092479614941596708201739469833273721683441499641040527418587277548165045489044647464367380510330137168537757611215428014932411940944419829236955323264671285320251823251898996588388523637365879800114380095142636563484828409989841036451746474107030539422647032591542385319542581641956231046980361614580221260709930663278521217713981305624603220445685532604422585217066350963759687573273880395394179019142816631938516166038695291009389131867182373923018695392171299602281141733663231321410942294739810263607304274957388258836424011141657192922208548598136363253142408492079803239666735496397859266619235671369187107747802932584579298558597979830138019289736138923013954684958391315158947946659398911980946100669037569820340606939677527496750679844511897943927610561420932067573656714056991002690193323269764410079154548744205415345938061528814318592798770872558263354762324709199735601589400210567099373634036601354164970608359321444255386226394283976696425707447786642385153066082167656691945342112669267169758566724083465409461249331326717927610416429585466623379427930143234247003840359547864825565278735829988395840518170538153878281585105269181729585901686414084550413486359517491208150324962534352929592294810624056397326473909856752963705083999309814865514951830966176823676639421224242784302153899216488945495597780916986154124142439789625080201831335276212485864836142919050780226714512547018539580590408949155898354173628723695104780465319258428315623184433255038480829148380898310808563737877584863947370847157500584811742253479184993467397986456283580018099673143866153780345790008058450726919199752567444698728702261736235076678223564337116528436704569494081282020092946732100108779318101320627329589481643718531347121202717371011358730174302503373719628104124600775351062640258665227530987686817991320314287258981031073679644696736507450777623933739004101601548531782099588862083588994968412403321472733596009655166161772525832581224128457517944623991778656314980118110917678050794218676509230979586479704965959957957377985449285265239023269268575220518559695718120306631032945914076933021028382439835703907119171414804907269960158699006120883230370990195451729734320597896960499694151070604495065738919678429053379896652695673680858142464883705503596990743524515866605549051204911572225141985446493790840513121224091562175922451531622120749383834838459592483340114620771392047729252145847557910441185987317468610837528556131473234389214666312777264985835573182184150493013854825382252757640028591960025674787684006014661777819427956938177625289044061127951740145249317891847821785086139706958998643840603032066003588573006307240632202426524026652696362054964966923369423366179384904789346121778818715832750124364731573800824855721988346797531994137958725263073022882767659635617595165537959250671748406146093162291877738655684946395958305867598502727335054719460824116356100128502810569998590117016827400513476741777846558393989771606460720341447758620106745472723816270918637087510004069180742045235587595584602776467541687492597757921264576341539340701155236977764197124334730886323299871835929154670335121614699601244571995314187303506419340770500024927805948223341402992107289754392057258599128103901313555015843757300937933387032929738396978534432073121852872990286703787252894859475281492827278254559191077527737767693686569642818573080449164608589653660704890593735669578613451984677147692024382859580165220229400959304275295063941522028818792807548820894522290779170453487828458741961774611100134376408354636887685541873062094316031809376105929325009838516318605488381677463934110816439912143892311043539201955446830278715326197264129224792377025547831745408513417989227922167046255830776060309370523382488123739788842141863116996936125586101872387256767592096098524192787327765617458448431884583416679476842235816186187003920027499309781585326566906750071804704963144696642375333044938573602139365812197628422529122676042385367327440177933160244157160911772419790399488571003012430996518940604873902777532085801297724837275103284945138121711582050687032367569358517083238648407477736956893340307076309056028422867683021785415912403991975605825686401106005237248601016711052028577767112873767116627745905950090611863691572366598110827128364743090614893438140270890643745984718311868438029334336226711871858615362421135137682575504500838974403741830271065546413579607596930740046987586761503037368845769768282151838309702788051717833405362122502621242120348292825060494505670170221196972146772355516627787342719523146987110797370008373694779264887394526513009937097011552287122338108992705610846761779356573953310275590051384090434023432228406481741538463761449812736950235033598206274757898885094901856656126629322096548392757544950940136980984310416495853036650944742064381543611003779458561544558620531728365345804708207345156121341269603373836158910934330857773135566929886540206849198130234330534048351460617789717650809111070751161097704111756037591346561540545080350159197067809172538785461728308732659117375022527140107781344802475950911455385187988244291018057699509866203238585152563784929520754659734475305225490386509579564975246486970965055870068774832752825483401879942669787540526303804443371720042741362185070665267973771522462387167378470846723877129013207634386634276111566428827681521025670139410967102004282922443203277450186912777491624962103036711114329494521599218358459865341878105076670103947770213828106923456515265062055210014955215414278766362915419828841135353243785809077424081754730627494037441815019575512048622567210103759912477422305487753371691657354016706586430922336230612963578637144876801982958832202800748214446853773001407451985247694591472369370353827614514857121666215573099636258803376218476431747261128154969142692505220008786679861528773359636374967731338278664587553329325169198031327889362163981474684289676532459233136749473104029597640999685790048548712203928129931742401582626367781583485392902110913176612284702464563758903201597078073285323689307724073629389791339832510075433882098951036513270644729929198637694913366623037470675844117844825150835701978604179607034374417892721286575402123408316619161403061450232699292630797166256509415002064636974187626782793600117304022109278719259581043119748506785278808481232220461871492174712479955002005489871428090703513479668885481382615977087687207721614522738425397866260020843714203924210148409172265947982051064993126262647227939812508080605454411782557474905372763635509890498452053833555372229559395788548014639838268542163847082002241206702643460934077415352786541957496329682660480852987603205278350696186020530037230791676670958066777553954530070358530402714008024565631278372533673484503905789247925922908746892143030450803575551294365686527073616342894277842853400606780462323947820996280053389674087289332656765386420910639401033061397081036932228460923174526414163361148641061833961817926514132107153120423601614942214989633750675566499735681011403083833434620089507786159914962647187971305459062571634588806478940269785800622798728694178897221661043394061281777665794639627803546106802553528997503948732470577555976256714821644668630091574273588644303707107799582965969334529055320248054081791916249915223120578559644460892394039386288252092013835631245342631090499381343672878835296603297411585733759566758831469470300894055858298970833781588450461230317627826959621478984697184471156268262536529761504006080966877615824046279312813681004759647666326258019826239908884298382047059411960583552758611381508710214264110053471196433903437366861965028496759190161721266202521236623870624981687863082873055612930674857281322108867265011184918423102861584294600779169349049879278118316223588012644331177414859758471811021581363521440430050021901123386958677108312388070551927386353491768321645337055387561272098815286348372885385437074484154143575507031400123474867783802282410679679713364981603386792374968390949561824919641292743794021454607937202473382285763273528674871294006337873665093284503740317105249359109879810119078152138412580593923486476122951575134805779506390728006576961903775289753086931342848965355732054582142384160500314502497362975797531641218829095071771158282775212424199500766432232516850346471378324239841598391137259758213429750971452338396155170798152395592950733647930411577561027716111108554057662952821867355096548491819838212176217996706721397192329428572362610930924507108752161158776311058948549444583444683768270458508882756509873781744747834691532684420466706580460778533249561564640580459485175024114502409367199798436088656154929647389840400542147998389213172495788739626487708092431981758112975619118736587020541797278581444229883252271490304813219865171538289497124848208210972965455335500346693559462144684216993150923381619839574538132218759925335615980961333611277263683227705007756563033449032125873605541172766091546948001194717991666339125404301477994756727346675544014012634212970384089092459940055289573661472015827797914472118376187258939529969184543468000640449573485235538223695923360006191609223753932954108317196895952781852455605042257392103533604942296309835567547014147455947361535070103910751778043190341119893566878163449886552072632561831532984228523376672427195530408656534492920551578740348981886609970347830561693515533615948826817132843276202839030448073290523190318590025736117244749230330479044346623776440867581394032457455922814674704209264582055364463743737577751578213134713140068412674659162707276139684305709781301633520075438856504198043668117123403110371077893846397453396129231648422895619993744780796449647145013000653300647418459487137341308414134898804170589272302260263514902622373213439043997307811340748887425975773535138272400837849237990049088002881878959334702808950095802316101426055913807213760194627356586710611721088915134129493675135813894197515527289400458739698923746919364737360283711384125735371807124394143738503727151323984560444383002210499904863482217334242842415042055272809070497194579339411625495542906479179788033689559110504186317603077165817133386047683371698735880608929367123018800819356780656040646378342511245981707933560632576229427196968980649368782988186821212138877233227463321999343112353772357015881315598536841099143054043104408155664522588296904188778269246458863542957823951895141873398031892306972256475447639444224007205039909763606422890345494965778667582929093823035280140247037327505010708390562479248066306004501817344411305186390150054587083910857289089318353180158573712297778980357721176456322580232785744667709745866235709286176217190888995945152808927490144994196153638178892319259980875263530632536602679309179470868396365810357047015906786687205890088962820516929878638948366718945827553054692177853952590978950004410283064891734262282193846151822152297104440069847815627079403357548364841734526836394494491311457849715713358811310823293530603015731595534119992527208596767993584219482477263003589049258740472955764764752881542694496909814571449400862431037076503177000942435856935856748717051993232087092475128028990957143803986353946352323540172812382641850048721564970868462450881845112268570445158848183098970719255758426512611385431953859631136369083781986676137300921890197690681542104789867861407325336539455538381806104112705519531335243281040626943680233251163226266910466105849103586498759747261208985887488503565103819834406532571631833791836022148178746366637222362028862042875300282464556519521345564747135558295076684082691722151916075745530471530017690703176686803491595487046611318529810579615760521249070612377785477466469157722050121099084596494318040090406886067538534908968495564717808437144600020906308404724683143341643424934797749380546440121745071368095627467653638283420345448633768529455074919115437658467735535310564083253042135492983485029088012031544591872765550347218862297512326014770028057634665221448683741497745841767470013142027029076230291055906291392256972628884993908599351680619147685806035078940498377304033060974148346451919032766114679889728850983231668467111851703793055925837608636861440721816638542847567866720923484133072174606207437877885516512619989219688938065033896161807199837723233642833494693458945565666811437605527381196884030617822131154851445670555105530277174801446594739790280451083257116266125248002286933661379076551612916286488565786653437178778850052926093208740227858693849730955560829208746396572215251242936933772450069171106125926704542513024100486163610684819263386262213673870353946313690201670218904235706037783838629963649582631431097400405214238389841356516848347867478034908626645282689713856657139989118343799831472845250107161334226238542610554935870135168977036256431298199177154036782571566843681600313545389893650946637332437686246543607479077578831208956107399638455790854410037708361305478223284031986735038340494441492379372862812547804122914856577082770575445107891220225433726731891217490305703269409036592356537449686597382319865738024678682289543121074153913639170180992422671418872511482392225223125376327001532142879790335409885753572383462685690696031802207707397642228581057133052115321637256046534528228659235247284354910971824878796156925598070483015470813595456220101298310924635759670018777142589335168106947002189441483351434962187893181715782296761877859693068895480966736266986019353913228592691704058371787339270018401331424218990457899084946435662103235797572779035867211279350151122348126547232707369072899757644495662708327415722871716674412528390536803599116177349952914504747717074497609053709609833502729839972465909242380100324857878416396748733480240443727399151333936889871855487708633669626519849800081060862395924917660811374982219566297678075162493792441613217183118394332954245598260704457232688755444504622435953010485858021009019775100722699917428002069701215317367652368859490791089720528712903909492809002682237865119996527005025000286015644262294500312316872924965450914670320579676835026383196720268749781489688150804178055032551919378121236045822534348884922263910717270918738702716357562524887215374888538780965150322555152703127540050259978464235800160993612476279698886079154120683719589202578640271291502532894130574881633034968325884550204626205327526153812794012826571875771067073705702171967860407918395531675321599659040335125175521227940354929066106653584996602259037994536534371639110359168595246877390286823205987093264976788235589303984211032413488389984315614222721382524192624557964450368707994080530608895770728568751964793366352682801684224599462386230472401926880143013830001623519181167015953340728496210344158900139273935272757575924200746792697961032964863125030794321264033237852226790592580340760434165383364352891731458737245873316365271832924955353285698024048775209273625100467934241276571591105890269771219374763405660165009070194455361419183721956795539064096438985881009557202356114161298431424629429218697505209851453273873415227842205738223819414953386483239541320961486149920723265520639633002965487088940308396072764444062755346698499910437981374585871858379547730677164299156884520860355519589704458660356958033534766500901321437645710196368154923864485481896705931792111295965364127521915897358422091668916364438672164458219682435459957531972168563275449462328794042668752009458661792105794787921341188204501067026222644474942810768639902728327073921154740843360816099031487392608306931685740543151995052465767882050288634784610046215197125680554101896287638073084105741362024970129549448669516495386819343396434466657152778088360352394407014546129397284565388472025264859794175941451885099757614226449141101362106589811121704635019281291542648225825642232412696054561749520513235041667359197763555787116151442099264299044728212635011130410416049682516215889154385354580088838417589639748318697366566986481591499716081045461433215304698186838377423155013490621619369563792259608393141329468435255293798140245439504130355396261473012122636347549953180469132584346653538385226041240571933692600482374021128653468831445283214768925010476251039743555741965162137804525353741290072945981128853941884799174860520047442755689991679623045628055569976610166546967196570457064787725122016716571626739428170463202804199638835885909363977096530430279317628493229866055101985978378931614716008340534963141028632285943872568384862662965148584661095067433422162500750114813176169255676887451982727987714188841376171114107865678089430566542799887630947905784230757558504473482714389050789903094492404757304530400860833290499511423167650790978197643621320458532953246487283596728558840995082778078765920635658102478879146993593039418344573445607668012914318320847218692960673389094407815552090478490671180169073266730997612228466344535258023229029239614597271834411785552210616725184671692808310835301229820244233715546573312084100021825000307891320357616845637066782114580866040052810216784688829133089589252173073326478859687583725770068518091491418585957452898257994285322169312276210383272867142444569410028844785567878030594263797409177543322635930387960237975733707340638486609838746843219487280294343360960305800800981110861169178999622762812538571949335295229370575591117327582751962167268324205966682866311680480772973664445981984649929567111461799234683769124204719320124973005992381422026814112472190491306168451952393995077403091220050287092421497683195759579219315637878405423644999047239073892277668213601047309313208453702342417563964290924540566626809557125014486242507547905150421271446235088450175071719790600386467000812579645805398179482873186576847455654887309431601435255229213112159221069329497774805978915639270476388659605190895944934792539889347987275383375976314002704117151993825781550291751774175368403289925263921941981513869995411609766518674919142910838766368157182836847041360843059619439835473363672393230551300410307619966552830445514903310978448978880867601547268851322391954633143969936456762285861782670770690043655511170043675587236535695404342003723045428715360727539711290028339222004068476358187990144256050426540213999104359605749750863598697023375653357899291974328333542233196395664983262818430723064428952459770710483171006179029547486678500387324146887169259613736498140725803593794710515387316071781732522312614052642224220302127832815293367758839405900420263309111140624344746629073405990048573424128347815123647423132462258165105621950814358851647268608247402405120964050874690440371163210487264534635988912943306585572957149130338049698159562343322014850569843612778590699495105967492606287211320167834886545162785291194142288961239663305519503048423987169483949225090879819387865578140102227760458019450058208784537684520019216682602411919065095364564923487793647067474997084845300507061932078550423808885952560309268178383901747518172929511249640834340002169663980244374416463536858842024149095729138650703472960174409813830689382342035644923427830326751058752163876741196894536176162050948945902637013840725929978913839950578980562452789148099609949450785840896393359801341001474407946371762295944137605471104911347483710480413314189568270254253957603964688598864167493409599740438982967301769393542127745471378225233147358159097520422431331858550560343092228282701675313479446079754048031146549089022529072382042922038365562772119208124918882016101065739650889944948855200187946076017973774857542385486110977178926595835626286794717086694293342865796141108359971339596787805547339985938860960092182303002297022303286395114393245470895733731938322084184228169371796693161519809646265282068884960607830430245764069272534621569276889891857668957291881220939994283205288466562056831606922986570061072923418427666444618050481003456820021402398066957798386619438436298324102558389843915276569512091310561304956187662180639359086973210312627985958490802553329755546799942066938913664767210814616045729983049112674513507790953635239762509437531889233924997284583401450908447089103813276262905685379205384432910452085951611071914850813293386632261591944031979371174085795859273790029705090013968345966507434296284326571825889009228816637853396973015975660409306024039148342337474626316277730926102365592387681063863794753722118461628964006387440042259987362053761176088274961800170238556671132771963610558097981381207127629655107614473497337373956027824314734995115517555534655670183937845369355248234802206647560552854168820178912518864079056949568311119249095858890498635098891179901060956514252777136958341683028186200709715873488721321874710055470591739647447215109305907429325277017775336272015555882945498320521531371732650033430924278497564093494601254531478631187009835634430779592658825170131571809971294678748973002163595899149108700765306432166140773225553305214462457456039669622021418309422772896828734067050113315963589403733408122575547131503887031593373809538223154831423906392387777686938877228834992965396997642365857454057023353502404784266354826321320516206651009808752537935370062865322058267859765127892172161719708224936304539335766412120359289759066870420388519161067406257817353997998188577620469661642146151411692122297597434564122117871718155741622035546870876264224689732418823890834101113823344224679394799057731695239506248980865390504675134572840664591194842246564215100698269737279710478584985603989568435128583825641001111328637887393748565075574824493043679460438297126927601958139885464643509199268336429715709730801598812468005307361634600951007975846972783044016314792078280255013620097578558574577271735852228600373862535894089775629684553888905411105338147215821943922657082343980482994245389814943850463967453165484964549019760113065582245100101714651490663599057582492207351564750003757956637160917952362210161659952469193564760020530236444131645063876239069601846204570041586514997037426166225805252730561568571435763599673644843787419392493078608310952255664496381625701334743540087816257433342165434140662557569766897359118030828762937346118716895787717961125432680548944882634244611040414888392705160615106268095029379748229989590086497568518478817666173800728473511592798247930168989942193036078250002748427210411613194080850832067349740238887107642413877903257890788976051127648378630870231515469662931832838490466406611448438675949468452699104587602176815689244312096511071726872266189166296556740351754432056527593195395998154433053481112414604953758059847181173096675856922794224248373401250731598637485712675347946968247423096728034005289841517599182912209193924796325743946673719161522432052940547276651514694409118653138876547363777776866187783635002889087005906855527547094180936492728880862346748527394857777266091091621999977728338105339221460737429375172043270868913955544970798714477690685576465277523542839139023614456938078497187763167395482437749037483594652948567174290238003499670048482966604521533356152518498062122008069268181849627856753908714048174346079511342644659454665829762240387706801316326701096338657826800516796382342460122062084660351263434155370336309889389032568001410522710947907106539591513905696371106609177116515275751658622189675660576985876125706101222739997174803394895338559507393452933662525615643906175955654495571077542979074687658010818772852722266339854564965006200199535913600445244287572782573527927382111898042578174300772457481587005786076998702882767505873949813098591398247447719749051810856429227336280779465052061905966708579767182292461919081228278639484260054875290581784385168841282120186910274099850368751852431683600334726814827638558420584630558703296189298598930016562290301809356265415475409236110419760781253079156037278921201680715090437057024958940383608552556826365663866427213361289372995061462367475768739812757857500125386395859842770047888909127541406637176413599670962640537438388854378829527895657792138772443291720904706808932119236219162617949895113621157419779603873221903913237530577442558376881165493794391586923346889345558029078906416458767754212082450812783036622081652962235836476831803930137723657041206903493618235482386611647462256620037975037638680214009194212123172913411884555517888402851631315361162614426427228316825624595293201190062058826119367200565741690232039771297124328778936810467097626479197802562427566193799489305593740350931544428347325642872172810217787528279891337237544720509458522338124127620366128085571273458977181719454146157824097220927876428168566800089819213404291045742389125480080694143051361243875349129582663863574430648116976226471597651001659518801478504154358853771940597961940167460318999285220399771920329477211642251802197064235829072782621811040474768688343498172348757986420621366744989493450724891722410533300516914952877957893695746895754054346013919567842496250710675986701769681682045411785514288345974813248875819391546408695005446111436883061242699784447814150444164787677663470694589709244707396000739072757360310538517982590728311564571791442135011480080104087190357560302419538782043847007189215719639461279890245662226361032875499688487722552390920790363908346467114072462203741243515626162281346532075385873813626057078678956496822187536834167874655875333272274292530567246607632804353846920743563575703083531616170420343399869029675309306859079812084581794368067566857007949836864639088835984422363072820287127857324874538096131545858832769525989318390574611134609142449590596915856398089701819611186034956209036108811233775698393097846069359760853511006237036946190616039470969951193987045691153531499059273137547103014429887041488666598560018323115137455592330102355099118784106195451542998721425962532166501673848486529768967549249456591600416650282345006809780625367182658723485147096772828550661864343472203398985968109897202010785542340507650382040390421813248448770040455159273177432100781505155202151790793002588341320490605486160555571016468837387967224725286471166136929221913667582726402760317201707027104729195686493996327643915303810298139554638306667904916107480682831153885909535510112868485479852230171217414679544150704029520099507233204237403823573574992900310177146937971764586205476853077211024500164985540603587443874161146318806481614627037240112105701973320714289258383901915357687951019136375179682459754323738217392643128267514010529859124186676138322758180736978696340763504316795935298470631391021702942857374491469435396834012019360484823096584181474253763087435016237914345699894688963413208862218929391212199324248525508245935021390888824608305856090357467489113319147609059932213268426746300879107758461939530954995584484663796512966948483110773780277245656060580712923604676997951205997093044626439139101493532453543529496794126128410295054686366005429457115160628396153050283325375600240807728230648058431586703884955901271095200238067589004912435190210035964487001705493021739368372335137294174454304813129164675723625918199468643857493866265729374729897301967285197362550282557529230295162632682913434665945623475436538445343310942644314199269737997777265023422601630596695420672732570995638721460139023731584835841528267037758842194926543348744025668136396456856076369210333063515726161966592150153256933402604168662981219281559534951686994386544736368839022483949260403715929926578209184368064546902032723010391465403986405997689456091269746166624533153476819346091251348381615667520653593054430184781008005484941689117307765573164237885750881265959463919246480431746080475255117794477937481732566413906049744239599092204950093498778699108223843941531514572904182013033839975075451491655206185006328231270457067028506820611328559198467885472199005000394975349851418573272576261713310386957119069485161633950438669997223653542377815060690946154740880883161383767256500773471452165313692931366827622476029516819593310579928834235103436679619510946085960561168361535017661949064189798476686064997094031669491405310861031189313958603074874157011877643211643428597722010009792753885266874140699552528509485404752391098400118963044797211643518045253891432532440067014094648306146924888799903507149111752951614478818666142764472510053258586271701854598913977168413666039116269620361425534512323286750883727190785560323582669302269146526992517730383518017181211840960338107409537163173600009692132315493413548005099310394890962521861038706225842158604475735835798087017892302015940077120803924798815160066313961817924840361718877408039183442648004936031810855936950810025878195552917783864491963996721030961224962587498066793485737624743994326438633965397992005819554633553985517918418307385681888652902499971803116865123192697766220059737432454324707738243880023198594833184991327119157208052695384626931563363568997572248710351759548832815259855864073494723405868231373153378284078857091333444205921022303166601097529375521289708010057798556236091513689348215503091347858048333121029454100893659393637638283514429490626429232855328923949928963393492498914115720664812839334637968767138432192871253107080992678749986925763061387791336918360316284738888414738295647867671583123551195194730079969745876010882499338889228349467257694309866141452028961762669483256867797767378832748147220970397373637276236522806506364209269839233037441020512257453766244056331920831425622114610773482603380966415829403854344102074879680739743098520961022884505817434051548316142804597923974135061167236823780709648698810731379434388438826776302916885314328048604529541420280341098922306361129520363075617023785451550754786867200969994029773024277866187148935551217809990208745665568155047825988359795543675636289632743861358504183175646878391873545002894860735714800904270253957618774488117813767833155457883442694936660406643528728364248169423840845010721615845537332232917759688243140714207260796969598990449927881863683786896897888111393638514727285873922579372636903223972672432327351079943536360400355180537188209564789492955330904258457469634125296881287651778407703042296578899576364297605725342152852315282416316779146972495441597221893605194269031689471128266070725655860847418743660606511376942393682875616412467865299263577812895953713434006429466719775541656636612040993061008401326452704722411992076171227692683464351059632839531638837420269976601100942238031725022522060816917939872461773531178838948583343005508022136390802403066361595503936877188935552137329230047251317921858282042320692736353387011553199283790793909561237403134706919441943084372613557223245317725034958308446488395981169398800948573198205402623690181057032071222572512158145165554992935221590803844608500622667453014492694598117550269851045213815001968560651424482144147582490166888356673064432182675655278726673850907784357272446471364261075718364084369402775840997488641277938450108480809512197209967864335890066815559076202281657748932630471771284590905931661389446186918025108229536793733434895923569208524589692346244276353278916678704146591999000902800631008739034873515965447894303909365530862366775663061553735684602534567688814333780431823778038223936838804842473228855453137676491740206872790343478320875514947139442760832789777820682136393394820107804944547790640634930630487536520572908980742510585276320267937921587875855739068081279193229409314897856551795280537744115101826385502912738453392714122444509446807948057628172690573514226178712114476120367572367683693530279692700994956632167487941065883522217584667783230570508722145241659308059314366728084297223837406805871219359059516124561274562935210247554375819325462720863514618695613969562318129144644966099571971379369506041198021972740481111567535837579640418016728803494162992415331569684623497921059132784906717391477917036201568879413606369252064134632140906209995478394046180510792078256808047666603365018456648014478600669082965071143526596127664069613044711617928039912264046660141341266879485376454476469205544262066351307899067637358782871879890115926761673749430597152321902695556285936710268412645676341215420436810561267983731973764699639295454999446820272561500006158098534158727595065533539788483261830870511522648828620514203902504221779797941310304645873965150533667323222949237818550847850453063949622289201594750103392108198505724246860556592782365349541522462406617694719861572726880562134075842841713867181753623360272684189120631295712320694994118080814658660602210693161300341127854177643287188219025317127049573918902417887127796739393355697282231014068635132702178918990311262332267170472973489277582776294430263670529051173575243627425751924404990583975567908074188910268301036310997761610358020837296526851964072475944089973044548623834987135487735261853784879705038329946614234025257517207194437037528861752485451383429702099540863602342990013796696014518477648638729889044099702620833757720906686072039232054494493687089999352859165484464763070442121744278926423265950508403534764058316011663091706578473372592848909923219115579276894579838423901507451459680123906482743828248024482099183810077562691977371368071078516092453921223988784565796150205276512873261217453416742696361181064856663322625336279780450566367137044657818242837665106458573013061422172284445766867912161636983831137654888269508163056479708949566581643126932077450772378746999372734815160554152678865047503663107323960704733238690393342921721411043889722307113345213609920429004111285150490746211104725776598543130959362746727182791930036269838247414218446202080895025500647406329484270903114643644251676228305985050982668172800133437093350429427948051283705079577871034348161892268314286772542532204664160575174479808452595347617066189502300564644192191637643257750428201296572768841372690185245127371279318697735970511005952342144490305805069780297731925395202376665517955649323744078746116430425858615380998829802237619275565013795876981471022941937535744842705834568358735460937488785453864921047908818251313689891393964493439609710427741362300105376624417666598011472824047994235992371352264057585193868448498737224433122233388645167141720368096466076953545716388088832748229240706141891966766065081297586428977873423977388772970498689874600812131593634399444831785767710651758479084680999851126628244400911302154881405193422865749637203615644700081954708133794028712195068155166141012197724707292244714227382054758372546964040648692576027822540853334515526133462743758766494317003363712561452858828071490321294886172509231735945344964307734216888688738645983077921432017080586109857351609331512032324513465350315534360213833882229920605576647142620106893334937316980517512968398666564474238858324134334161473069238289362239168998660187461488406554295233211979446057223120772917916823514745117447379573075814163172841314544029155551712412940436679637476738149121469168334651493556451425879737881899829109232185861566677085019662544244808220091499534538170419831747706804893254870370132731089092486957644490036673725131857896016215794307378611378141226370683006915082415510086855061139610089061541181207158512428916610334245207178481313374243549271069998997694419456812319684334624567893185564405667801828773727288024251136589181311599811366180960250245055575497435456154215028328684477623498904724967432481184608382461322876791545669365850728911711229478041057863126458652423755612410758473146380691388169497254511216524842690499887841902339693537689722227342716096628885490797153062012892134903586968199872187334152245506695114146346108560429320297298866455924762309826968665104838746893447982442028861433891346685132498566434662691671608911751314999110481240751994225102305771181164606762540101006853395546957765843044482876420747736580568211030507249456501656043299558861899888566810337517428080598861164755710334572300943571276720114602418019879498253509685007854898858545630637006185532404929651706481572642337663505044069690905523962365722610199426251281649021794898044516825237412201820424378326921343858932342751376724942693533982831335225770381376057813643664581121934688235529161191839275779553113740046111168134831076192070596825917665604138381651970250380867049678995490573781750500939336133672881202246078247702834107611101965422041518258119939108863538186808906530419951469149639652811207673162162995019082091358832856096841351376689755458547061258722460012403851854312641691168234628129204248153690285620000446735701401207257109438455649907661569887879399147249130506104618505177249999170510375696210320585166341079396907597534250913237640286876450699402597459499280179923976881399943154542378070546357699423606487257853451967519912586973013648929048900514987968768455379237538118734809197516483364008278744670373661936864250924722303853325953312228992693964813029931507935152154609089757541132235849558816199886552313881574630407041250073914680958035902847173478679444721556393165589582604452664799355092888458504392986732093333430321360837671944877864001993047608770354304328279620996405990968269885020996766842968994651139139934221622219200719311882214789137559944564850461989612253507898941220320164916306331118888036379617820062366557952093628447287752447854804285304199683412007805216836215190204336417234138868182504026174619378232536319466858850384651154080942225277655556400375600995844373210782389589311229014677646153117152656746472690576505751967166182959210297064459313103059857648286572672423582180118300826046809354500904486490300423682823475288664437191324521021828655351943895252197967599104432498064174409444627877532784603463864324704312738781483752214521791047543640106257593931386405685514292517377250331839800056908890797410846307596593077607606144409533896831928788771601576201336940245055023094269607263749945601979319156038366500078190868252911427889854525838517615491557682728509842786524019991124051611523763855530498680786447804237760832554967939978558124918931831857531820224191371793065113274078620176627264534470890496738633958750347771009111598232659180246927430818198320026790858242194089709904631368932638946035283610380442487882543938089843103437017251255183576463746074971329564572560337827292536561450266918013245208686271999868633298087212897121529982396330052978666083120779637777608455817562941778594549764208222470547800164464216059648340300590561181511638394711187732611140108121966680497978326981923956280816937127413874034677759582999070669412968969508060382405394356635768400009592994185559444874166856966326897755062952953828031404269075119718651368000094312813940688144651133246780534503657198645162187503392106301200709141152505190125946432128677041480458430697580776539800576640096966888633745455123180195987040964938043455819557271293924566585557175996673501969607020273733016574485727875388590609716122556847847547346905494715055844006809622724037860099224125471940968258470114767415829723135884618815104765358257829417021568637553746908469627654763912671889813023272773997701603655429133565072703929788963685162963754937814529790604676208963475902309248904298018282522608602655705814992348447376705919521642991375194649976165231681173884546197072589012800249003299191896262658143076539690871955292979111891057157515630717387971012931090025861435521327163887861974375891809586291794972803812742002831682245111531265515794653082175553419381871061667007721133277612383483242899081650853533828461058714627926789558554553999658020378463560496398165716152059680516545970372055454971233037797852017536752938069902954451484413542809524238049946461832099629097072364442101833477429810467655885463439098543288890656587545266601118942450809131109518073835552240581297378169175219402759635705408355941378460178083298989789781263367681379303167026942928338931364121462682821855477335194472508272560651512726944340262498846466809624796187269038635181509620355425002591912932690661637622496907196192557939100275985022560325058646971799465211204833416289648539621396298892314851308973030230359283542665978879379776558495758749435798383511406616785020873584923968752284079697447466997366418010083464561274597970648950780579015337937866470772103217536275324661368398738730119105998625481904450478207568409769393680444630512314616496071538621337756486449279376351446383587896920430332999299716157501981393697884066613855440799008607070028277704664187701821157616722550961819556862403178461781325105798690467364933370066026474685004296317827762489933547658527296182911685350181763542622095403693089555358757532935060992291443776598557640744458326389833429676387218834751652392836635985712856228384507520056766534665704311622608100901929353968864587084530789272492740627584446396479168893276591485097420605924606476116205279788613958387434342970768722566795045969035381763771970844903459524470458618174917990224413415406770908001906348422667041090085380020080355534104179535752022763469733149682697306479070561081303381784422810023776592666640841982668257329380700070989339184483991711445240793168650841219699312280218933227006502120313263518629684783937939035624374923898981521505234691278737912482449333515548771133654895117819868832022214293427131763066982085627939961715487986751629606050943612272609177835575831044659423523352145172371220409963347673693266753752417970969519082204104046773925859309670814988889179764206944745723214499522322321551467985517633823073998997888739341475067241440789671944901516544300430191384877802056917034890220577509359642654380761865312728686146794105233829675773551827091214999643386028887980457588368909338421596574219427370617730258334127027599013861187185716946395101430617612787125666811832729645638023727342287712516635814440417827693123293637186084759414383139996581774712122386171848868036235675677597830657142947560435551236971345527008010073930846720692570643755430012749950151728971761617199565339090310112138057801658156171366367376845173397961842602936593190526794560985224463728723760688097446822275450931974043314600322790809870048700372153170601996447175560453207204369248337660442646641050223549778741765538896034721829623424199048181980344353464509418104578448341233407619435812015518981689292489474973532153857271244208477775909352159307872572474537254991928107748496517656946541156770726739004029873374154164541399944353728515259296921423571139640133731000883713390589783491753724312759392798174178666270791198730800218729196949219412873851351479547623222596668201878659041236755474064923534744713315120597497118649559157576027644999084380165474207845571590695832671645926111286802820809598292154851896972406511554964880544161511796568383951055116858611385900769192087600139443056653742729231938238822333884257269540383521857038860564821974719899323685096855166609524379998226264150824898927241041165285843025204552560697133685495968740890462650441082161962334249180328443468253333345264518034814230548030987045625163717875870117669103840826904449076826289071566892656370209178829439944084160818948224113705039048728150013709204138952362930372065308123451085527480583578588989492174707883459990819116570614547401162207201898846683772270533220997840010825189750429625816635608418088253833844883516789260359995128815099711735483673520363717915525728910119906702656540140263662999914691175561113874730835516459783030755488196363316570915206594846601005785056691375934634347497329879172932367023103734746093932483955109222729629664079769300153098099276700023870993893096696362765859577424086568704554072322890709714697753065089226494989552415256612214109233277269598265009687998814136422385048036901917073242886581528028911144331279811358947062404195483390848141916421273697525346619979022748341406637608223763875120542142106269995455217146408746651310909564779250267484367099252426732236265125142097408128189005472118161577486199932670148750459202007800222335496293990751100569767718797724528942810245556619125795885383381485522565523491059357606612010039480635525989398746252292041905774290261453642227601091716153861371722764151240250825495330461977114736417518672863325298473404735961465108564137974532702795847072913954769784360751179761451680477864594960893392340316926313368993822723737687645991200649074112147677732683088884372252277301292753753209249777906134162556439523201742513612741057389383366021555973717249993533646770257329271235835488804033957298977176996515589927322375904279761179719943844443815005286776597516976349288938996285285678390323082025283661187127699838442888614949372218891108212664849098828281680697948895910880203526927478687690251231799781149940863169511342381755379639768686924213611532100334961187751087758224645941145238610380462179739792201861405142007239988646843577948418975379777314643217328437170141563313591126917922473827268442086311860883907169423161226703281363119808926706026208971900562130197606908828146503840777467570910575679642963212867871974677027087610932311478837501242185175771143633440720110019462854575741994493001688951342627739806598938133292858540921742895125720165682958964562154673254532642982038358924451840180653817226878087976363279029651969012608611714488565602524061052752174966416969333881032744290463346422685413503796873394780293347201306032357647309347654516749437214375540686194503140862078254644346716279574051983161486017653782173066242024616307066727301395724242184840731790425969426359187116891146440414156238670508697999409944776534154632808031668325221990835361986337870025976390989620605507634044196778547164262875431558943704025898289994062767370664161972612380215290000836195996121043005882686871696483054376821594387146771637379127679807531360286511228082677602619520470896990903797591945401281597973485302256161754709677479281378978690206531450459219076796337026126603908615185094849132249331048493100773728770759246454911151975174541628229872901267865028363329837261809261039227168343879795874356104438768727725133044285677199590030546938670139558068950577698416729359829885444101474154333406183068460194359788226468148170124169644478764633191481352917187608264091284292006100340606825051597222890240476832279101975154644971918026824553341080587052135756391621065853869115894577792362620694336445996937355557726133498026530317351005923129772288966568600328672938081738463551384659675954808147226200939421950572153606435786584294102130547943160838267209797541535079745652726636638364180906777863792489418123058772278809223805472451250364838093805695668464716807286285251047714845756656737496763333792672102219070371047094344877862733391852167694363452210859272554570492898169080158447126797238202032333973705010571587691513797593596588738290215574423266259629159200230055575525046192158455373881783368791062696243347082244499607151550039765909179417221421941116521469292977869643222582035588407810103817869609036214549137378827756217105548963124532728070394191487210515687104405516976028645818181450311395824057169513861282351331732281417026984569611532766165596060056174993276200698887585647747571928649018912531083395802476135396371069631928780528606480160066406511757991975092658417317984957011896985321358936655893743723281426986582529147713987743560634005608622629820282947167847997261929672631480004364724791588504208490176525579600960897677375650182881318157512194444224886810587531073295719959758043588408801235235615506149592127752856537180231061346064440903183383529605874070352779667844610627346000165942992942555474384278086927760389735331684508556747774561958135066724099225079176445294732244942206720824802448722156863437465259881098152555428139676613083917961944308571023106014374107368821469442939573760290688092829442297708129556858153301940077544999902767795130611428077701535098259391416848738647911319099953702076101279938692357402706156173925340325676852239948894354752599543491942400828821853184775569146737905361340272218786898731618034357218195929421567541474808063011642482395406272335746522286814674331945105765136929852378099590542010136866887605224306963227346214809765129564750676347018154061826912279516729350384380537096957872784751541991564242354337822161087485203940032098886740597701687271662487802444944845452425920138207166690529583688232632322702063988801156847717754909694793182769623698040568245611231859199615960981564900747981911508172154137692490635336387538697734579047846809952929140192431702946885338816751634237404576188386346915961376984979120496380694087567920041607622949495820282008081833389854005134217275921504873341227608285360276467725667469140481346036415495359437873414513946006012883594203561911748927208396216581934970946864046762374794708875763352080663361472325297674624735963338971224497875954805011970027862498127514318435404521736571316449801773068153491295054166774313094199220938705803371107344362408562923796828960409009000905494763138931100373239784386391396217249242357502347184408580916160679932421288211328392758193833591217404997737692218014668938541556714036467673383933194782801478751538262341476576248743662425908743501771828594702981081236838615596016091539039607807514078365503229492974013281787223761405650364403466130331657843204231196582010314148452012199990816465264954737596121002525608993015743186489590544325534771000705824539105721581447634968321418415983958599768096861579887950050483686804564350804347892906120687093252007217037547447535155250034451407177091782424339515341776635787877867410353322904663545029929834745186974055672105796878714320852727042425140828654551292701880156464608248828490186651508000027149319872160583379303856742223854638722688441964629183666906754885910306734044413794572279896399162537063235114636607657585075757191200768930927464401792418236577796109810715036602603908757693764327662164462286080062922248319888988358685709353592650079162607421385996545465146372241293154333931735169884488353770834207301494185246459009299204228239436884235099423178612908624655812640100730678117336745985386979312998684308295829952716529553963845791228242981028172641424460776441577574585699630312375333886939062249510817678531842402221281930905726175796269796457413271310275353144895626823158002516853382727987627621019655245148402434242469484807102511436481184823264752285862610994728132357486419894382762486863801879938919591590565423234560320974939739162315694459378703660774517253714475919945486024029930041487598307625808005357894909130768905097327868707381336815947002634190502760940844962843832821939467894543289289780225800983783829986811667058654633558396374096819666281335516303427470487940733784564104476095433391002255825760900369064545752881808912992750089866506650428717463554003875330299185178125637774131684374419234719684468399544534829856602897760082212159542464018176765737063991073817958324964117503158885010373867166375730750257919771668996430848790635016117772414149290815797809141931314548010850517811021413351968580927384040501745553402155344202749200548571163922806766204893160638767084581112490433257471843479139975270579296729032623883924736912911071425743159040538254166939829505549966038618780247984697481209147703410209616373693823527084516718112535383902363001746426246151010917989225469561863788131992980299056331797823282714810987419736663183369209362042606967767453397996115247045824692632348840378491724042827782509026755790179354739035540536204637926963848841153677352950084918763296644083201529447679805065932375706340527335307513146529377324629107768093835501141248293682033631022853049989912385634345986037377445425585127484196740869482731919398968337265253425776555197674409308484218244736250568245105802227696333774091213366041565820828440925465307304489993696748734872575043137798020886160968856189779585586389083790459131246670366355908418960486225438771811736317508173339150099712060562881882889438398538828704289089936158409244830784890070045917821836587205540023164083818145448560382889796150112917381420890102251695655948340703513496952899379868880016257092137707148526732715002514685850417073009964861956135158751719897590388504293682591383470344939326235557178858371303493231282744789564332436520348384347274657937772833209443547179132981332820999108171772584457176198385357959055242593248052357782565192896482196155791203792723751319982453970153732136996597217445644133960192677462764535149914072351438725801057687756401124553230944217465676614722417235509249593732710181094971776412064705486006234452459053168341393128117085489862257121955778996383004134753374249190340661800986969951426838023167511382920192008775378695650321071187272134354546292520218623327213660290526004388966783257966200948492570075833406334998267368753433776278975153338973606237719526749596111983681557114017793708645530846828841272004325569620431731294103130473159790033280502880797439847511361443464389283142419832906744970521821199829120912621562826202205842734854421941559512483852749701116100718508168023177815277955793592319177624458269530273152539973346336436669153960275090303677748833700664362977187924047422847824373268180491070740258469870077263965501168515071172726641269031269586288583433109222784737752156121835898072930007589208245543978573386484753531128690655795049121712588759908107926022749780399708698060879172611676105089464903285679769690176524254697383467239083876280684206821847572115883710020114383538176701409719560763187217528893963816089020612262812981912936949733266756283585450514127434126190106077008052448723296884872775838439304415699798981462625421941911291754307169674706664813027872804347176795228172744932039749481776707958869332072119980340668683572803440873688547469689891792930583009090961145520043998622409505696323286204799796455726744475182922934773079229308484316301616786507004067294505161017628290163211532486410073503174420153534230859869902147298871809219812388506865240474741181764772897408766405663766105674107835415606951007168067218649790879779687119724691994130517712233471414895982519123620278061056727734845927524598239604510380301148264771619072971668295906153770391843518613568166648848081182387224509575386136506329325057807597233413497319999005259166602758481275993155702243799655768472684678458836062318004100098994402762959265161603387963501019850315317493410456513798816590585541088230135198410584302864467409454023298770601215053963734632485987055707409106046861927514756730536147783641504698832933995422776533128862093367252573309748624758774069593514943847564369392393395312531987109363914523737953292410075939603221792442579187779386273955143421290593782816759961433795169784908316155009403368194137945663509357674344076264232003971955730250278359840749686034116000661178661352038591286676564611898653979334353299365878465288913621093526847437138949001758566078660906245788227222185052673535427678396338839544653488737784428495952596807796346845233138120604758652826857815286836576557917592370139062741151593140146490521639441672173174999238424823960548536603029381863448083932500868143685237077872337184941394752400446774464874406979215328287979470202339259582859394561746692260335299211935485727092400902352520213762072157640251119303876385903048428354256688702184868131870338745514767267096411574229378566120064633534374885697947969401064453768221138987791920179851069070264605602182057222760276360786495080350834575186674422706012320948224925501438168926944828048002077432326225737185830364238912213453567870051990966760334773801792638069528551013624834480526929909509391402352463201603259627102713729232431863064634134001727460625683963685489162283691725337882462548908892198976475624336830799289562233598289952727812827110379045227076956580139436756279646327267928183020828973488321084783339635714444174571552641489647068241946683403022821716322728448906696603505754811582943279893125267490194782464033039841742849575957285691095164247071871595135195867866312984666402601713371923881673848761252284034453762708352206844516338025236221646792138857348748394474000386106443226540333794951465582848541376150163701848328993521274627083557776909489696316162905504828916249045150242437213590921687716968961430992179289335889970482486010967928086186329414045292234184834302530582013418781969344593609950401397844492098397475062763476743275185081328339290790917060982375109679196908657003567899746475789957633366401669776531081641706385836150355795804910932984854253065499958884889921679903943430084933629909138401145615365206642708917049672070977730494410789431292116002230243584952989605299192281392678864582408768734421569828681568085586847111539224377775061858832481098579696493702965557222438931447902784924108094515831039841027205796664473403903914090621735269178660864773708146935154360688721958148468285206431673070272424033906536443746354440009208415278151889493213882812306286841670979620072921301484741136209614453146817865678853372659351579559879721656368823278853598341588061105962439353617405765478918744295587155638355513379399118407733075970241013768407850393951618869189426109572942644511774295146271590107071258599934779187999885177704277677284814587666728548954581193390469145986568447497919416334461790370480850849519577886972832323761170694168830719765883715495104148171397955429296850521448150332580717385437592101084960306220411700240437065331320665832196378330804185522279130455799366319379849972809271012236151151368780087808287333792693040542647167572876226191323710002789854716893191676640552838939295534500733205555401217473661592691245939729830951676563746664446215397557081429750215685576858489142619601006742927379887948820152543139261147498142479503449774243682617279433338382415810522557127503177598797412140142762536919429281112208697630078001472491155245517622876329116071336314478087810185592701503505393037421523895553067733611239178159989689071933106112152075438252046162118715149304596936266745430271146837214623060003561093030237575932465642789287095505416370048199558487083699145458181509099279928691854744411302855149284675374977810548726406335107815006382440170064032999129841579438748750422709860093090603535469861043756610356934619179294792281062103522841818288905900158706931122647537529211502986784105658291057052325344904971908716224902454060283509915501864132128335014340020632428219502910013174913334180981031583209511581843690422360630255630667705932128418493785894650691745564359568416311391010198230800716910749250625704739637092770243505376738798776985950533611336197300296394701644116046053461338979470706144144031340887561927060160471378410171720902730459620006217173964161431363390598566453410859407180868848575387978485460340393308732222568625990395368203178812626328580627164872064559261509332970050080268823241751110509294611191327897076113410932518208745703173056116629866267486183453347921283741004801159169588723680582052991586868050529915349097009203146261130769472697644503346256514759160140535932523159561390283531204036890235506894515965537852806930007671210045146598693188318618930474424361186024817305326985842136500126464993906048275502089217567751738638187431802228592927314740933404958306453817350689281986795647629537853388068564981624048385520741653813429796019910096832519998737583192903476881681843386681558843488105485154828110264674472305941089078209274471101719340065677238128097744360143606865823128729464015618671003162384599111495697945812913596817760539450114618538792155274947803520484194216736514385431464837369947660407881809247889977024331893146100658757705002622521555762140246195537282223394523075563447293786661970906920865793891898879197298215578219511722882340924622451999490343648820211200556402125508921853550294863251992955714561745895133873889853705064834753096919624381294658984292114287496136848455611784388827823289565794656880670130461296065003513650300708364898536745152683412332262655557746517541011137297916521743465025951076416210011377863637246260145841651119949609481701658481833354425963555864697412572417526479228976312663242497058019465365198783167162322647036204899504499413734864978132937379178559514316211412542354697973345007175858704343452021034164850329766222954037951637928507524843652281199979967644712502528361422159103162837596797071138626249809940298968463662534566913608193654144313244169161761116727662734537576018344666998337281025764715082448551448699162975591741761610006350855777505589588595256517827331191566152206154750096224330819725688138074396888608696913061516223789810086203249136843107667907217803715377943784654946469657768454579710019016433576438065840999085648504562370801336669448029297640596261527813360010335999517016148181781856825919063761493207707004508591729066714458753440830197319202724600131687184032256964440841035833469070062599502333180030530443882331473089293696398569858932875858098074514856195864360340239779467594747625682572410594537517650306810472268241583191173238576596062810417720342652137455420688945090702744748771485778097719344194162824988463742653444659150155627834908985961272336207963001205414260195197067965267331850072749267957930504996393043085043936690022576588889805921158253452243830843470710564285723452426568564128611148721182458346534254076378078446623314493186635459397082114721318351359622046252647694137042763639940924146526306496253928899213611464153363354492411448880978293472907542195298544125354942254830146841424664339956525367524428557182819610492815584421964895942977615067173737991918404109337073714217307559849526209677930937308002178765505781093872209010971920598406351449994931095398652286241500394944958967548875900942173030035452383655965272089786199354758772711353399190059396889927868187380280616908407807009061676658979595730522666110289558644521181121446488532999117201087872461675541736558426989625602471246937584223081786196987158806901667557239729099722395424162166440115882383509226410472293631553128709718700236617911683769099541879494559813498290160637116235937010689309251507077545113712095220642008544837926477140976919500097399050756541723139427246282214405149322824024038600020507850893117597565630625254129612500140023953719144584304630517042750200314578322950886185435831120496304447567741906421775618925841333347797050413420441461799087658719725220920851087149637536005455048882794763807642480789543851367864821994381274893020030954336076747557452178964881453683092865891759492531911596844051792736320865416565168084270968646130129326404565277667389338626065639491195519845308260940640106136869072807392779736309634583773034547096103808939538072028892713656071197951785375313730100434949600463445839359359962301055152648949393823748018915950910275952204362695381876792794343931486677848961680902761432325198970659776342667487911541414751031395842864944788971613129227135277748466002235719769462052524331586823909172875586205685885536035507636864036662506875603736850492641790995483454482233882390320429797433529248731301605635489054395124216035198196525682934471273666138764394078250985612888150126699789638346410404600497047627343111785225666233011864793597191482673789242275376896271699953539411090682394964288446634480926097311273372535637661349562529678825580209993876833603882499042311519222490339802950062986820164242694374207098370431357119074448183094011243054365373168792997387872317620141894935468259000791121754873231942119891781931461448641660746028046738248697533272078392418018658902215037287820243286714851452341715466292330336567196591321570222475383024702948467455703202645203814126340506791644308962355234214242953746282062677107739573185803256569139471776439482877746509147916345768226172734952260003917744282299673618553875587932337501173198265985789552123234785705760078434417338655681190874614181178286533361081663523043580069127811058755786259291719038551772317175968105047015040235491666363793146671873638861001082779785726679760822345571189465538941151485407125751219373121147121803644287625091689065965457509286307896361852839146533041661233864238865110872974367011751596097154067454661250598258940421367644475455178667383295079585789398168021499364196315006787558052349592897057179862096638084265447687843967290418888368565340702095811973153900980867323848163400041676686645894085281347001456760617972132943160458250180272731943476481458738405482461412349992620601934891684870295489084106194276047467268127498118152821227715827137418208602903431314427956661637708972786199252790601172281861125869317614467126746611164229026807676685990521229258316986125173848108503331757815120636143318883549996603057982205998855216270619207338997589808298640910710529917002605316672654356589368555544917777171287479315432794672706249966898279716288715044231305173185773542084796495273555384174893178258678393648477154401257611379608669149964501616544623645020522444022978626442825591637827735764690119030810814582746660922067290472485952992958310101529871908236867100163104793913069653257560832481958541370017456983762076274300858955456945770644899349817904983897901149496848061761301427335937644755674557344945640061847947460825798895843039327416406670711891540083612824132009843659423885065311359186854004099713484554629628269329652031228131923491582108398163567228449482625909870664470079089085497369572692499868501546302983975489086527254181720312156076347896495360025355243699548832866780459082855817549778272666867062080306383487107022826896026374023130571000334463565863215031026864852509913849621330922717963846759605928775647707508019163809569505798185763607703130397136399310404683800452173463059262989893374548336328473065308971833701897716432735254085664199370577511491350828624087081914322959974615883487823718456102584294201797370174990157342171453699808494493724059356888057370123484004752904447319495587784845925570753987564443694226546169479034420513819187685568795611310510498630063977039369954346576549144944379966067506359530291087075206645504093126164054110978823645550702646684904111341549200566637901685151255643063837342109790863478080662045518263350967657615333271636085952910914168949353548674943435964904566163577675706005952487174314981515216833640063206245554773225681098823851614425157516749767587635864841535308753759894691544473076048097228643632813268150192652611331923270531690322670537148369890405700582398432166795115573275129494399795846880585482095346164057985450134679661566101401669165154584677397065532062102358391468071098802880429250583492545505182239838853893012977155231845143688077328703567110771770177734389981384718906545975079608964509531243125393741214770720615731469919094494263266339558656647542118804704187146407908562396249255873889793915482908984636869553239884094846707877154057219658053782700454552255545805745373819058755558191310504948459671281242026850988615212236515247411671344734674131352007843628470149439960517820263250572971465994835123595683119062873728516032385186246631909100254499484186559396881404412795626880478143065948783086624885889234319354565088528635625193617546085616583328466503372784285014177934999850514390987771685343325634758387161502782661718934900144708069944021435090909472339758727945310389521009099965402450511734732958683333253699085857831890459415335316126961126731873858686649776899200761958463432814027910068520456767876027937185712870628875038833766494351435848490724930631045328207339516208575464249956651142180194545215360956390883508954234138435620159618370205899706689799512936641033968947467409909698379830122641934884522645341659114033734790365535199154478932612169620821420233548241218014416987806588721782428675885606247248152136221194261680840819827636551079601323543616073428139638084057504627155059980876973868954317941651435748793677918007897075464569552273645139221454151349291104397111694549281269384959644293855339493879358229681395586858998186604422631482027441953957690667991360268089706639647308969440710154964380192060742940009700141277293093871142137053710715419689040077008765156978816190389486370015076535215103606493990270897085960786736138084270122329308338345870358845080789514882286243118086967298350839725289284371932707441989468766021329546549969651088146645149311203322971821386721006553794755623347304044697930445632383568440046629477558593118012939135495624346865137066507762583495491667582351553841461639725910620092092756142850892990076184187747653004646281764639083280740251097165149936909541005940839032541989735065511445789844184792490956308823858258631306627619799254687713451236759035231475027885822345798882684691067870073389838917387999128872936853697782525149421080205404590482696435349288141450603843801708294331445330549497276921297170207025175705558739278013663628624261630049641344090044500718924379454247003748053521988209505585345235983567843597513277408604346941753752040072589969265325578434070140395693673417477667693613784941894976403467045430634161001530691439508226671140219276617178440412138483647634752348790749887871673741777762037370985295714726814952999584703331820787329799438375927094625761654799135518738608379696508343081017447102642120110722931985494312715826701836828114224230988007940407242384502985400222914953595554725201531586101554829440490349099335206018210325679656859812393933783434542656208736979652286584518338460464949736130713449073321623264125853487043278502676025858605557286026897057341780285045049979739689190961460773650475947438747860524910489672065522363422265375802711805902141710971119301503155105585144926937055991885111619196470069049630240429777193847036313102581849004835106040430625772720762428832058517250246513355111041566821051397191902194979699483550401246908981163448378157980605440584279927951394562066514136735049548535845057013990381350754553029576860907100766751469915843687477628064782244468856741370787455378280603560346239667352490734054424830841426126411862969354068941368475864223925259637470544640435117371158753104948751564675271455240105502707576934207503605249319076927405453183667518717640758819071275160881077947206263964126865706925615841415613276644551388095792026826051395823494775046596598302930069094015786153784885894072963299181725076171043732973282146801991134831769577634093400306313140225472806948747149150832043351598893990505384578985552359833863589279248874140842823507143983935609549719077432714141481514995844184760309521030687581134392279775266552839882679003688153046018669693403679884984409380737355485321219273605606575752039053199505154496727769588741217321856934109165493928327872073989718144060711875750802900460464148552296895201171858693613271488710824406759979613515895955853649910471676709539201711813060429185615884921918344366269625848464765336633208704645452628254764526988297364348895035804616161711930258681431365896557848247122434190454569329254847597446646556265813260364286998837436497392833305690379719808009020368899175919630712713455004939518108928324949280358084003843743718840708560782253267720743510741823436868535283383045121932494016712090678714712757197304622960417033050559158414603928287753337625250010913241439946517010029821943682059892150414935206351060536856626321757722310961437411092653306698161147236753576194281050566749491104670667536856667039843216601518828819887957136407787076283523966298911570027229829852166543715968594013650244047932886111627310618523374988564584627686698859729441815513367038751098908726518314669252773170599161292317873057833707878503075143837272749973017708431943591760672256102092850533964737470535412320457093426975331874365741217239452254620300464627209962555402175010240839800780333344646015773088483328948914123789997137387412153383584699463755366554969501126287430952735807258973303893077032060760787017537861259504198063039291510829304330743324913838658771577559548875899729440907832629460181925555050585744397196866148924315130116282242788718263873544250231445233862782082371283438998513240094157977292033048165850677249855240740388708398379392665123639714887274711411376954097972574628911620033618916193562617816848618633154922881850821826806131603632530400291078820232501126405368846297820562532904947535544911111421789942243873413917062918244269015865693027721153241345493532461867140546491886618368719893643362860512382402509319732879796414435024042352526636193144391203057280867288495487316102565096354235349321695451397038965238996696792667255790587335265842472474359160337512107177184719190331870177429978906516646505168805669185230553989092030151529497090772541109037236382730575284652430174606658710530961783609595935204004196719611640106687341364432324790218055170346850527308729223388897758722708702403386674695133096034924166389826452895555773209397943685556782516396047989265691720755166164655128921561914631405533933385878836896777832097458639777916299838768344595306309357437827283680686456263408531925568435823369427140343365298434315546351496879935290956888318571658252188800612402497576570260285422920880010306634259365913202731774360803262956004500822373965862421235325975021456353684286675685642932702220420794575680208589916785294129587133830555609632541753501402247559169848953194292408599865309260050222089386979392647943524932072509130919974915947762732153294598415861190451031825960284055004816317524054827359983212333619301368003840393353169586314996322669271400322753069735420636189444393597666376385427666653309939790838784023881558761736654967387828706838489168653461503508113379619655113247584349766379562199729762978538586635111104142105020597382365816266608226131826627873045919680153177305301691094537177445881663327426078884873677651353352882253836302650627716980166071135855875947820898564564085663855817346904569713731835352049402086209616882801575171813277550156090072959949930462763050696374009541775141569880836715871339909111146132744873825424446014017658185440752458055232510050357868853629912852351679040001294892185554308098886686193690238656952460647872172157266337839470668648185237561591602284251988673946486751193723573696876565656787629569115356289669989071338015094790612028138961686072526296711011407462710883554527188199016549356495177344912265215427727574642911148031698111086701457992847065936974288249696945203462797189331334881134551598271393491785572452088062135260557960492166362971109883734178874147801808720407284790303265887119384342259785810485262131976155653285840755151402520927190025974718981122597503830333305722326979488732942037346919913692468345659397773437536905716941859281237582305815650880138451370177667580011028799224884247529415766470861201349799372150868880205263998665843897258053495557204865559087434086703114556093704990133157841807977169028847711178341132749101884678107342076708624114847014096004124825029364542217252321380404768983684398439436736087155795639514197390140238746936564719502425444487416749665282518750628350512005249063450589190358391759859470463491422315077621776689862218637718401134767202063760878221065646751844750506095450961968917636939200216945632774420995167199441606614237610360940240294150030074411137942761709043032980179884975732995592197772938822455051389774833199679429291540562351478193185768714117234187041121634977497709162979815932978010614361172435941811851245443307233126512577876715263325499910681573848345671727449509875412572841514562296412794652659523690966067564320973504147868480375480203805655860571274551956323203426282942933513824292104737052333199881900599768869975352483133679384967221098305039443922508979290357076601046135668507478229053725511292821189246980426137121313911190986163284177638136546633602563894926700242866781985595853955765853718341942478771819201671438963734686067925763185864409622378489089934926640782121202428561147464404822769078775714581710149858752954273971197739169466118520694853438122260160832261552290247085624031902715861492500768678143973592885643583565364380487111418066025960062424248116143685608060537661045376370276778098893814391548724657627630161557858348972045853889802108822696090301100950573626195911060624169293860537044432913568932752370046180862733829696142768901936250715080522181879984637532043375697427128900859920926236221085612590096237802437022745741055848793715327402867493480680651660728834070085956092297081484419986352039838071635401617061304042094106198503387564005989584119605392618021292544035493136068798432143082790785558684136362749031081685329047320283598945564006920346215446374380646765685023096543377758508074765617314705264415224031560645453203284311917727259286618885054687864569296013863337120824319870128645482941595555134283700968519414789825940952928402598903150649206340360884127282436947978481028096676392025501274104433288994314391916600770348356773403214685447146747100702921758602483365154857436679952988026613775421885427869224249177570091406016209805854691303127758208865756581497330652206255247779340446494635245417636308994273221011393062845150318438136365871197661055557543026846595811088418526385945300402745613118798520980842239057368184525062116161466221221798669243440766002447959589997542865760456983413261986202410857957254556345174640656283765070889481040275374136112314509757258239279354183690638884973825287093587113621331585025754729374935821990211653868422412923710584673779491438512326998051461355220427788890871866304567892494588742520318850471266151116654529508603453678295062990328435007447032712081434331887291536450762729905705626868439998976434456028369826208549428319448074631323538230427046342856646180543948362163007349404056462913825583759037734795261077412075078033095494641951160706317633762679959253637964278409195375217082050795740441571821034555820032994295962602911422763362487417642029281204935199639780506365292323885457560812606727668008338116249425078099427058096699841838797219214281804572166617463404507786089931292877578490036027811515363873759565796127417838231423335720429275089528039732863989028056782145200770360158729079008164234009133979682076562624240451575523865074382128482772381787678740635030170150922758380992241919343708559620461060123324227673971771941700489148320905333228637977510886510159250659319929947782314893980755936461900639297845183828395743574910125970244544292303854838025657431267248624646000606283923870319245277532979588736973596461749406702363229510387098019867997453975227198654469540457263519605408680491688186388813391528198137953146389593384053903337585997673279003834703832841927116092800384435666627680418875213570610280956679213950503839025230983877693522050558746846963127221266931378717644112868456935511900708810431759959096732959363597665288569660083196458742640845432494341555530729534548255730284267823783444639240374786063183319065014691921145399098779951106361276783172303823118235045065359261469911090382979083692632259974745358608358966131035025430434628400059225574908838626229011479223142914294309597414101248884788925982836888217387100735167000238010549019571537128114699140942342563717144906322895437694649926113416133215757351648024590195497109935169646385220004243785323014567794155149572871333804734383032643094281563355113089257835079073255816358711382601111600344687500861948368461668324652074326309951455480957051774587766282968195549767165242268752465067062686359139208612051712108006838626873274815450228730811156228671155049146175409134939387091807149936435666908149762088195544272676033966609099930565740796350736290310775722889779629621069181194195997680654764994756897924440241628815048726851089307887515524592339724415834669310900343645960411313024158669310314631979211004907758737836340566591640952363459145994723663704486040272450801709482942568989470291353080021754141477254516677126364136423703109942188800569914915366984109633756972469395445294667764901903748579166781602047466141597152485862915102358905898480216927037341786628721146464153500316450527850372696859593426710787253658156253549420154813672582447960535796393704052497494041435052048552110550430918815491705678189990493613938345807744424565787011593011695080070409968600350301433015605119853182628765233776819293114469900952491149852348374676542336957539635175387385033809348332109719512824229573657862536325622976319482742474660706740468726620956779173334827574976912889213457937081744351323881525275218789320887073645279794439269073351570878667005046963613608385960095466220775657263509951191567403666283960928581694456156044601979274395609304396996625625612187664137598263858559097700135658584361936662396723254599571383872943394508363987705196343486082186586968676941784543533495310114643767507198763174028984155627067761323932130601692801301950863349759128186110502492401039893502904107064398895929543494861053043385633798318708333972483100655703845583575518322951361609633502099519343042632106074167935003137201193187831934750094568918667762052736442238844857375446834407051178644663871257671831615505037486833847243048919563934665923820394556025392819625636954612950759151599946690001772992021971973178530116584480069720463150049974096838582897595913167577152422998868752169946761806602085370144887934998206652665123448208884053383765650549957455002159770476396666869303824561671240601987716901356431555927229493424057173281487509118257806307132061590279646364120372563299040701958237484393156827171240901755891764493925111799963626945063196849918339307437034654911243907642055628699732480889733351464068658527319573406159212362460738944025616810924665484368106087218852310239854940009562805561504384536580805992360176103354767546407900953948877054669072293377063791186892801077328920659347860236560679260143644032413086563675915466635388141653467651888691265819485270728614817378716015604532440687039975808808973524440662710878627951325810008484511545636842882510422287262137168781037875686269650362180296560552164692306909530777379680842982684293824682104819133907540125527538520126572174302876669010934070941455965890018802065873721721010168546912494854140490371590141007966896298952358393235247363344050883654411684760273625977333882878925567917995652145658869037329190329621406089709040655703230092857690620008623699656609782292798259827457728159469944276362638317488891388076088380647385485609955648642271244300181926085402289875917227355493529144751573036432673155959215705188628171431152244497250245147101774019072958354082435079115561876310624734980794544350584273625000458552897055175966317477282331277067769234257840425368431721315234339696973333289252233112013668413313119379213692109436014396472674650761092230323498868531944682145194779946320384295543023228409135267004832466362505848794471000744965831378266137690502464609667589698076670441459918283622359944188205959532365092570703374881507889100252903744699421555205371197984257604212430574654040167353707061393502032907369215095577155869277040415844618257856474898853441617528243698309642842360718248700881734897082533158869978603863955360663520720860391783435863640017248156553358522541254019637795961533928403334466147825127014524507332612099104828644715790896979132946048763213018832619911052458809287183586295580699403497518618076037019596224864790199480152880638912373031400623453537326139473351347201920020246271853432347356517275283247786483229351332582795153367263992773769823791546212628380827005774934530903461773214283490912745128405877466684468130623020829066962574795105935213666251984807807334540576685939624308083785512879864452648488889538322552488578331569534444707982201445175115920243528910526174885491349705101576380552710874432760099890292524250136372820608351473244183130955681716316732312761934651171300308462708632154623107475351299463353182624361516203271493446911990380898377878782593985870318651954383793567269766660516976513681985136187946752840091014895258666694967195912370183563557445663779044017982756565819666382321716899063464589854418377170354482638546376126891476553915258407775848999605276490858922437752034363699806625457082401884370052657190776353856063289718738710644332124762887053594616655974770383297319613786856520503336851647467404561373125307611287623095600163784524109337200876652194363313513982232203961432292357675314463820576601482296137785989817913488277469338608844810594838948943761978332603300327872259856980278191540864065278875046661179647030618693567058386526215253548208007119016284808766141323928491803152410233623758554628621164238060150003352479202163720207471436899263228639697141802746897045255835612872515634419428125480028336741803064869971869544619144049952256783598591075348376348122311258272612318048920055206606691459821502924308960151412350740457565366999912285193829030782387513500894710511849545868129549940760126036060650956057242338766928066812033437577712112260500918653315371853523719025695247908911736482542206272392694520249529125985789743285371712539811624926281564824637550009279112991699235345688017203139556994715690844046203502968417649290110954273686803219290278472943680997055515376114291567283870456312977347491436013618811426041500996091367006986433569953344946916426566702273557329573183858609503285749637571826314200901272764059677629519918919694506003661278655180779564598905348323233330270410162507732432812643327693290785814136658840318193764508755379718783137387654344570456754078363442931897545162613838214703255579217374710187842841870550126669790042890516207666473711722164000366972147749720021563283676086163196056501546743646284921929546366888070790550279109983702678962546704711371494193568898382365930227108889854981157885114940343416535801336186441502205862565629038129870173632901300497448330433917751485562714350797291028547821568267484527914208823459297001593788836191033148383213258341198025082196019223908636562080053281270808970906055677777095259443893460029856464505419647823823180209420374477685757956842573977469309850756778510601949688509211141037537671977650103994902841757976413472428295115043333379070296010672611018675696786986672135690368708205260620291109942471647115347164318649022219295699650557520834374987086383335059490605188817806387007492346498365266155900316878627076188180057679451144493363815126103850521835050376321507647831668213549627116719134537917750669345380371318065681759011533993806530535795963949785071148634378630938613039349062398129753836390477650486407623792598275382756816384901418147563359840816416198928481229190516570750596551533288152621379057219390796081188528909602161434730025113025216123116384479016897496170641013708662561161429714120317707683657174194175025859683160574552625231192540954609726557814037140335021789521691131463132340605829001475326761971781129386500239043435962762525541144144377136154872438750994118082242936352318069195001234814950635370752510729903153420588031168468011904611343400252390569138281589350811685093544941661971517547302504953766932339047725281368163405529261562899048992788284391200627339711713326453076080027519371725025466034938091878788336243025790659111024989969207893340560909675523383544280063306545144607737299109025968674742256596993277080802109501119967473397087718696829123719406527335444535707975617616581725248962266118821017095119844882437612597847533460749279994988901374337512426352678560690776789212646652707124896751476730078726398429397815089676148495775531948764319451580340513245006877276159745535926990881381004650894674223078142254506654523446790397403715886234637378326924909662899340418434224656068836804673053220720271419728772360377698156879346187508019219854619840395841577960109970493170302546787683163623156653564042231276118584434174314633363560875320563858564138599555588661798235764300607829334232692865967286426709391600031862826061742117731892720893352869817730106403327527523296753849943348504644469631470520254701281027214365525456197863695534953075764192174067460342175035839194611131555689614978439448761839736945504057284197585049598533990241666855888402558042200740631136638795057548530851496543046388452007319511390011980814964579561634223551651963474271489286007497779494156014642265777598628144094037636087051706036392363366249748856322510541222285167362395832619233389368959612513103194453985140442414900241478762008140940971559038083196828083675930801552580553738030503622172205877801227949983518355673784939305051002514451525558776468930269782719588699445843301845618742249796614709341731014826884573121212425784548270566033560488879693187156473077239792361347247142018436271559092027658755661660544301909128352599217398118126811694093205059896503307350368377968574567794121584103781667661458764468813360937458764038534502118924668562348102208128944443095520540401022345932547575563028424133010411532690873536098564571512128516888759964080614762924303896816935996067240220384817401464176858783711905540207587476304238786883044687157702302191283802733372087593515243546007423857770957665289039560602182965699599616486121979133589461456312061490462617840729829317856605880679545448855539405312183203022393568650317538693064575498755314758132916831087334354511253970667764825414005088769649281151382516392712113373524071056009317319088357302098425276962530851080882049709412385258830224019431964362951651348592957283066998546215635825981423300356474109519620069661540047834401609585660598201035365708448259603395464410266147705779606314576706071863105092447331417101873044866162715328729190135280531601709797261701311116223081418169798444553161988980259548227988442245972546004012388272962548919051729255641761869536990853796519990326837962374094169195290322050222826230260034548795830949470426924301342665612209279285809448751111081096831347468124624213190127535160400958637650708211424142139960783214781234660089216576184406864236496564270714125495649032356523139073670407021177192541989715603925314400065144640176890925417876989125595626125295378674099958078536356398040773498914502619563913185827963177151506213843838048204959816924146431478191640311838216055927858784642868572712889559833616466530322475902427754101471311912913170187424533747581613500207971466614389970225071812948205982955268042693816331786181686973182755797745562655771707106447472053275929652527420726135073473921339361811711683150219120527459043616273967317547262874422630091083825616389780262282516082562662560139567882510810515733421652880977377723142801927599701441448803379809891861553478737869695718267160087578927069113756513007006821192686502355579030089973619040195492427428882722908610850372427490713098913162231247343570848800154668650461019492624354371838903174921751376268581353573075806702963948904356865186299914556315756223682398176296573440147378848765071989614353782278013130726189173578697973002059008825483334541678485407710558148323817085141912494557764508078763979419399309188600057435413664008216758750738870138187892885681504790159204849125784173657134531863032442960771320302605538012471885332238346864354008288274582548025831300008801668804463245828169686166924815674266756412915410624929906882996668952726601063512116478266230303451481687519776019046628780073884814379816901389329620975206325586709769297318050511843676793425559461675914637428228120720934623528683467533050054541864088909052889527243853271532811964057900101595717727974937050556682923859283127617365949970100068582272943244562050617371584363115353704618619699850565547430876897647933769137399951349846324428180802863428380300775230407611076600666714558170455056948847946826243047846804363854794461902128215222322153099392957503688225482761699605350631655416658587619207747013192349762653010677943031207170250472713785804888572324768118076736465442150936467755350715021772948432596176861518637660010192383330874791058818751626912360434223069566688303994821836565885446225424593811219307124650353550703250748210712213111075922451952713933103729253892127171815284389151848335609213695441054008821648145882625042989599370055501514005423856775649639462001608846414738390763341841369760711397404934536329530751694637776991886055245384587946833464988764661258459511275336481884339035506561316934909018204253402121733515694248553432148288943824250971267209760662772699422340394283548959673313690893040092325023226550096651030396328216424783481592797319968289562009168946906890445155469827579215914692644079226611633314268909977374643527108744882778100998838517297486123544228815993532181882845947587153454159840091277410345450994386223849249747643645286249916575418389319573292617120500402936517634836403959778335207573942900908055058338370651777110634847971313329854249932505694887812009843959522114400522042644226309599809143222855102774502685430401765133247517745634324681841635752098551620781360740020062115556173839655816157051041381396089622023970840783800518028850135679449077902584373946928170669695450295107944550563417735904352358747307063611838996014642897797885572072540563668633204896406415651400609144010992234627245214501139063170792145866306106981583256235301598712311540484729005047366144024272532345512244009512740789035653214471860188879031254308098836601439702996692975041016172750225487058488677998198613404189050721868098946176483626044961035795279669936916568372048591023734181618236451381697994764944403812747014714801100713995962734794799236370200530545665059933116181589857299489552451024028467063756566351879855800576740227976577395602240821655404064533355301872028115888611603568600613638907584941584368396379034112620021825253734327043328352409927159331927889479258101481358780197212965443088592585016325607372351479017348552852053258515979457569903265997343270575920888938124460587532506082819642665656608789084042984407114560203427869218826845790798201201024994243302980570350649904857213525874616988025724644357681206980996061484598118753424174754022451231745595733196680078164396000095403837752630879833358946867206431397256612355221144833422366447892519827721792368031007158426226991260708502730340323573354053968231332590471733924083461996663434176076740579837306916726525997406672034409838269607514927261901629501137868619641964771445510041423985668418159603437909520249462003696024387630392719128335550350405122842254776352464127041118269134409913785240532541448579714821181169636579985329809735210917353395450057565997464438759540040707257469339085349706077265653778077202424602957131361621375212516681577208771445843382006401117082695977431067281851789651062227075877225328153788395051429363286873365520976630484106473404036086093416769654552964551353439921244678130838921324171782377437882163548310876904051461710286872904555646194655230403726076372666460883317862509036345795706645784833952889967803059744022651206338631520103850793258178345471059333468389144881985931461318445491089762585008342018263949729487192471058886632043255072040250561433530860727739797958262298879050226612493825107501748125531749474692803943289682386871333063766075493902730758612304768750756486496403766005713538335438502013819650946174679108833079067187107959567046114031711423702787116800257643241116322371316073885579858633428665309916896229216661609237308845496821688139589258746283525240834389428035430755247365261731589880907012341899048175511941866403162170407355031407353642873238651163970651837508304951290720632804394419259660862295220086819531519893628943413870339603659885530872347113428785099241786574514373417039517354708860767634043907805775692932668307015405143027977968892568098393048306172223465307831766693958256232107536912154553632300049545227959965228975803016961241090784295705003292710043873688239626304378325695774508796295921961142423968795413347603888212295874863054730335290036030544155853566429007577885416691883366720550716391702127646375785070163063316288048325968213542869024063982762751922404257960887701156133924200994355582378938998713569650139369498138843455496761898348075376819733819889769280888192851046341575083589955832099410298009447383415176143233623867264070410919452135375955264481646302207807948081322837356640933348369471391897947817721402514153997556362804602020164391489941716680660757563026413694302538372642593218014563431127792853552803738519800204811197883965745577828055312804433629975177459365996268827267828250193926825174867192883552429584491343629049667101619921611747751391186995809894415502456636205693294523414078699419188080051394390285088318749378777635842578615991272443714137783901871018943893906633900844652991437925435839970474277130509473256497361356051198919444411648420580741176821064296810122336740116519756634091636338975441779983627386735308126829686604368612670192471838622704061846384415807938419920512847247035079131913433503626374227710610817874131397929794285044419798293474739332081550761520611729206967484690037876012241660798800334095413359403294615107927189204896197311010336005561722657074977556058194735485212074738778418428443554918555314163449891256300864078037837714680022249103662491030782157336430024100334230638398831488678396681946634475453338663346631227264122298177351306173255407712217149515839390337550773796842165392803986808439886310827074841054330831237688535996012962845940052267170264875859216600928139838840156284793998001963251349820177041161280334049602638512568743280887383203701804912723980914700156230415870839312758176259649051190515352923364108909394775215121531638542470471582271718501080595859437361516724668875674743643914588241652994427796663933791898201674549525007701194656576244196276547825865618189006170810843623518979669219439820317501779761097265258167065301504026640993284683822151512368679750439774498546063881125042143017851806769635113382782285366431726559182014531528709559573673737409154337257621171246479434622956385734281332464578081259429081403993495048958505423302128777272029343353401569408300510488101510110677718247562794008436471413565763856260466361006116927948339368199161486406768195159387656794321851422583297418322798609862165187443051441092578775287943646115794906883326249701060709142349455868231166870704280970635070212113550647691427107976606072892057401789390051735451316329363679782224309805806647873696129129582843144515822363750366775184826580198124487385847335692332537834309215930658729464148512843571061547677869856490891462516838772617608010983535575965019688230667094139165693130505732107907329796316362764556046364633756007352661435131557926000248793600833451498181876932926170339669834177090220307979859231038978514885604476715179487194880073192060970221155932372733521807334547130517113821792355456241317022637517401492771370109320284474893766009503769522623540047110334016772059023195884593101191121787697206547100472661203468567706338228071908605674485562090702048654709505470285626463487162406806246157692893716378641447796638468328949398909022914786841594608071324663344479915862577267264000882612440614085326528490568971601281996056410751020229068893976769889419466529131717748086246736200473564724240782962816588829995628454750653124831064167172922929873155867817862579819350600006605845653288266003509765368399802674361860598424229091222677505472660528358579120366459193111630113588533993819538674598772725767633506009546337228516525241332004290711200118515359591157459659059859654111003070771279300927670086990177174911011838552240575560803020141275019734952415758779517451855194331308360382636997611121697066474284241570971136348679919262597270859978590242184981293475217155417520998343446100367262426568874024591327963695440136743463804379558806436663096566308279869493493698052939620874746526094883215180809896447433911283344355410249074015124118164831436213464902817005861055482595405775537253062754486340931368822124834457145212073995562734163077331132343520061944717859535128337064136633219047449956458035293161549677229612507452767981967955792853155732382579590990310965429192472014967909566174432977154764016554185515672445519545649249601521984874850849150048753074624903216451129485658510875166605924276222227607592955149855849684736897639840237210990043674795645366238509745253498575403814863009183175210994776865202946401180696917750769202170764234606018711406330664859261701370168097871617477618653440651698875746698700546447792663354533111959249928763422116317560549528918344208439405746954335455165527660606178510003812946492284353463136506119742275906282574473680014361074299763425186326436167538163496604813416486812353125894749275179358605384647593829317000233818172318520749099012992823135362858448490687910286750996327944170357354556768284233111101511708732315076428069602323506903016499592168235408103115812514749737866861470883403575168437221127103457686611470947167328502588656905128473071660836057065994855953224938375769566477488583085051489614775237298852537115458181413762677005828851257639902478139058150129664302093737459487016085430333151081176188267020380976659613162332544744873199123596410118482472475804841248316878764579159513026018392268085506202604470408451568179638790634172944694755316566669756476215953851296058004366872714996172612121706598502265266831207851322024513041618702829451475223082737490132590024306318114284542901374565134771628696053665748949348630595713707214415291428569516690817025759375806964198097586172561413895625699016026451599037347540098935021493434936203632437350630394870368535712894264138597377135268624856329037755970734956556755763298088480616549753901625230814729142717577248379548411631206598107348057850715396358420041663497984637390999129920591974926614569379123285828003324276080344779365260243075392176223684938451786616233570313295195860370129050982325777449628403959274162402219618854270420257727780388589446075079272943286205054413865261412098607835294838008694295421381744354719356822551024095736882154670536826822479515640033673136244580586233544348088351115753039004423035129593045897506773252974998659802021597995116020596757637068653867570945522620466417041796036363403962290822481431948540225873580334909531476569271560824277729866906542534996300119315267073063597121790251032662480126605307712129232701667152887820773477943204744519406321798673172869062244950958551889565375970924364360433571736450327803696200380450650320327068477223621668330610858684970690413336648872223844545209766022718937766953733936648703973113110022713248987399989500946476271352945485203178309014081639138305155725762626749036431229850760331825374121435819388167943693375194310433932108238868230479756712325428663602446853659057660346317314711962094258465297561733655977779908908796166730217925305371427316369241596811023170377375136259882539868455907237638673253896084587537141011961848599351675462531842801040256900065904958246749612002159558753820353243429998511847670969611760269048631564670725701609883948507931353186539267098463507110664989780591464377371328485057216185321229229225060578753059676684000482835232618669052348378940447040933982966419956376423964829913361411197322778214061602632438116737233072823985550650073033796889758382367212346097630836064050272915873660543818906532041209001227419719146264961618115227307483978819830478249557814333630994578649884233891838308164973958835710379831177020589795515669024081030283245312221984052185410754436353145594879302780862539938008621112540718659838459671883473761671844717988896288034263216154064051871883494055653299431701682529239894123812090300641585553389247515122439317358621956048760775352743578568712115698325194615221456243613055249734508522329551390944032792604624362668369173646956789177719364960194051470317421562903199045665811762660846658461525312364678303994754288196844567231240994218720139273876642725646781609230312145307120890886274294861722536221574504577536185141275572837016672425725077568869259820746590335031041864787935580831278849514197982443212343035567021926110785999789171325564639149327439349060073216044548987566858073092582308588048053658898887083094359732865734148302816433219276970907589168907231773544405451182345669032249385399845876641912281112655472772126588782568817161238353405907060105000049007945566113661646041584198312899586316888900416820583717917348546122611101592613734495570324577532036337936759112966700254538745407862335404492366136441605441832515745279411679526073751850034684680485825612992218134650988616168547093930478490346713069065161511823641886347825361439475970225119781799985183565539728826591496983203753989394287240763469177562815832127824755612817437310005351398955093068297358331560302706660901573834813321661306035520391143715904184202899144028754496564641082793530952652024030937654757964791675665236786492407268136114174960353087992094052524020106635818994665754710181433386505466816820569635462286492033433277076958915241229098075038065845138306390648697619685718522889931639884999864093443073692493825925873958420155464947016217634908715536223515830081270738454722633617682752567884239897599700594008353539001835921077482861617732030381244555721187856902680835410534138883098249649764170505028618549850561060644655474687507355230613737697698270468113292577203309570187863964552359324516318241589962537497408675781012815138997939823906977266378987456603952249355520225001459057066662954174485401521764120402162461489248243197484492331647972567515137608329309672452114785849822019273672263647731537996319482307264250976201871029275903462731425743229019575946919941341423807690906228234615476855077282080825192967311784030425305391422294019099290105731956531170138109783160222296729951495238720136618741467360189863064818936577617967301205232406588474199450304301894290543108267657055505904860593389577074463509312248990418750753328549567804627628068034001134560515849255803968992949540247007877734560858844244007129051319338600314192805000054005565011053629008016053519744296100558071963578498466437824296668073646357982945252006259605070838699803096540378813624390637013192069930642520760720409955829358926625729656632104045221334943425939788702905469789050476925108240337354348250880266982572995243474135071184798678369686464733714461813111013556803247286666490779622224464894591973429286306516824482688860131307501093020214743156537597857149724019075807538380124604124230680681769126806323376632665504452885911869739594797595386695864554214628332977462072039314926061333193130788187181632512667510078613692095757399878865677457879361217983339806762531012807209666893077495684674834093510448319979480561219641412349978059226596656446057392667690773999719976586408287274567115024521973543904547557636104508907455178554596558899434924078649412332591044448383351721789081311295678525770993682875151290251186254642898996300041766158395148540664538420994854004724931233859005406339879395119643408694204843987012716699692918361664241554731870795689946541088556308352083625172471108010631639755409644878168991110565710441261625288405273682076022723310868966875762514108725747911073819636973600054522464190312992317922566627979720167640243309595055715072434162822633395028978179750105779644039822171373922261356316510789023338570154541360484376106064333947368506289848427387057833100466035620730020803105708826490533551664702434720570360618888597809899502992921967185480800655125824082121574022548586371249217084402385559932267767860805161579197085279128705526083571886524091395551000730301949598492422377765184984918503357244284718798916229295515231524476866866594156429613051101506001166635982353088740954124462335929511346301011666599350201877751216196849634800809399094516238538460158762137808614753952699646300307575776427699407567040596072760460717315740429412394061848171017451497465327017194295970580302171287931317484665492196561748474675078239798002828550543133211655716480158049450462740715182778977316537575471027815282973463476534924244812859744019436591306265975468395662114707535941736098696137763320915335441610661832672876240453979084742516632834313948231245977397450214405199707668472744154726123213822982419097412363441447189703875193411321765234664270803740669102819626231897107223051743027922697277268887630112622857811358525718928593028736952047991657754647830514403318250457762747084629370631748792156320773195377208772261518564616529053183255961102025577294800878928739677536330435648915380261468920194362316972319420638490749764061213967732744966155954291260641711750921280203358093070454348416457793308162603068934948176533921497075448620476285976419106565650915690615081787658406751557364994113462390923125368093504552494616198968609452710307977653744357489442608812422416206980846493365079370824513569597065216180929707363118255030234999763362444294745835689345903626638228146156187334848759517007901364455900876597005482529395393365003376205721797685522007585774421668472021486158521575710657145589878407168766327731653039215293822175986460957871187388533188073578350179217695634983943601281474760131042385338871284925831847786620623092001695029452238287754753707427361933325445218969869642426055715448386431000838836580209385604409062036613795004547387425360906404546526218578751637481424114627282936750931401335953060399692755852787891612650689635391554353716350765298560013059578855050576896418069413382026857830353686341539469690812175437447913417310840721459633703767442516971164758139328816281037404897496419321745645354476893752921527722311970349302052772823946729108345200303175062978677941561254783154518269820624030268934195787072969076274449581566265363260274708716385727810003538985028644618849520310929518455610147089853101333355987448677499350604632771446209329912061014585066640629563112203672165242408434061530987562620224486188352120164620606789922761455294315182250495118715793974925431983234665374965730154734697049135132826396080672075297182426863966553221635874922762805340522352943309660311671745579005793631425434173339133317303193194698740948833933545843334403649824585730532492333750769112290169957203933724744720292999845306497373288373831717610102175165728131284056026600910818843733938618150326544229457617660472323362665699010733116571744731779997522975177202001209850170358544476228468409361506664433754055592015307486973698980740804771492152156878912094486921790276095268749686000573857432882836026924472395810058715018757666187277544787155638209860295704709531252229523097028385663280111938742762970647948852918172019216593725649039165017066780809696232585569856852835916428308961281890614359341185789797038474593024747664903066110436617605511021341101571597782470485713107306065659872208443530884208903173897779839784792833347181009060661145071893215957989825731750697997182161656613531814614386569453316510050762567448748731480323275051579389552689637995838282392433184726836130286127513623090240977426540774652498004806527829858127327688028591909264530494894785152100614977080732728691113269263054294752299375869392251002553923369307107332534774992472892840150078786566045146551311694453059728376006826240381178841334962725100838972440301874717611787267777177430295510052385714552713313584626895345234758543342571134885382839201231209579766724649703699537773370612392203437158599238824025905962987146579745973271662963719361115054944670920265257802318522643407548456566304425590418241776509470126853318345659265849598710011969166761430780167706044964340869147962738777075334669595189194321996918044459417101373547826753965904856621030519211885791582249309395967360868134564980931631169225861435230213636581360448208354844682723107867823348675305473958805703342738702741765712848675777754890610292934804232022345655002606647518505391894224595044386817311665358189823493442318893428856885376091505041230583959807939808353861795381884101048753178215087398090378292561127620120853173458381169280750077055603615925101440601004142153181601212440322481746139811028804541134543989190213768266111239995803602971604123670619769543048670902214429045794491925419893580270031060890016212164272296123662862917391649420920876742669622259825992748541582683062858365951513263058264875598775194561545337698158716896064164694691814388941874553935341975745772805314772072417809731487192724182556794833180565600891665934249334152681527978002737602642781196077107460647888860187622179237684570126924996469152514442752176596903464321023087470731481174954825853487460844194110237879604997232988961624396434631866163365244625793685174518138891124782015600455877897118843133704404659123594998542406691280399082137368064724515099312513391701380238004577490924925782775522906384805317802758904902130009997801845223950877622673490474968670624639966025253842597736705281599057339010732109771850405794601790756011443737743986581629548165352187798757350626168110652646855848712358445196606483007373258724936809289849572693023444401246301524206441464293045518886941236565805381176789430431583113989291843900564117770607390129448387913419616593504563882441724359482110728470590208604029475507059952836600088287237761890867235037518660169811534013045064079108499820846217735382377260059256793450389583790955157945764674216877022122192495738817835231168648302294428806865814495122758223368067230087707310026490255434731698208753846308812882521351402007982309913643959742313602156599900100183280674450909077562626352261048608944392342983196807051683827274332463483174328501131111329970805237133736156384803675362280291490578518536987425382063736239497171334842891905365612622826342492873041754276073788703046386111417372157834740462550195297685406265428458127940916280998150636166534747808959954468542966839553866474828413341704502680221266608183229246898858615259324646694261714533808682346810940646328126154947879298113343974399682937094371498709572001387448236731866774774753281317565684965158269906447562925243944420862375021350644911359098654011389256569516633431726188384935552052711470854058152375514013607416437866602894873935405659090472681026958804572231004190786288781039040034939546371083917835177500794475089287750261947497134288158206379269253560329980040905268949762502255376471578348419882644622237863071824784930312851925639548441153001257681111885795019138289983123381247224600612954869177251813152400955808287721074270786845123689838308887735900328921577210773244286071445086142705082117665155326873546609822745291413112789256067838591971879085768162872081317633238220508086859963782754600124498122324706666828692899353971806564726428514641175276405730761822527163568967492879816027631011769534250227007981040126003037752126762826838599797752506873677661873303149568963349548953584484051613463266965127942068054837193074982736081541697304147913720459702543282988524907034635086505503088987753095423888485738628287475035453835437411749749250347020939101713578211278709255524245161054146114604133920468073518551944432968012815405751739006527216739108578672087656258567692503766877772877444989297280257652265233659885567931120312781085626461450901852513669184923251386739650720793556345876019855675209625516186922091902486208589854402730187260684023602430883210278442130894397540898930177691135042181194451562614691182030848488720229488035167313375057824693961682626081300290498220695947221561754719090698943808952173473448124360956158740870951247170416373640893137982950545727739349806960549909169708823563058334609497793793405681713348634421499256131277247370255630494468768055005329856138874595549553973487824773046964093647869674006507042123528983859690269262915729112697521280636056308460861036017072690236601246466958266022697880110719032351590383932576493126801263224021864181707288856306468629067824186842831841347710492698601427934564805110154945829827720589847942257751128003405626713198309766899790908513599894840594817212393919298383250934482643911288963821650615122745053088176056879532151405623240358260458907850279477996855040573418119497900286091751907816402520231916917113854822936801514119587998733863733867751026365112200884151107312417201530220812426735440597737020693326460679646410564318020415054677215416220770508453289477079761573811535823452199177085555951332092073837175658366295683884285822862151817170147482795915183994652832814860698822644921276643068535385050219343569650335806839186717093424826473514694409861923188269515841410018723293362810827256011235507479398810517477922999291139910452759984535648172221601042945763944574904338383895338719783859892435729266596154047141377467739955386482569605865539798426423016467382125356555099883879158098985882081519290598420252238498109672156373933741787988304313673021626455087771757809679085873265633058523888147859701126918135177580233929985046475619042121630039227930564827930936975774476108755437927854680616997241280795571857764102587550592414127679911103407194313976990962303674091143979238449321420544390844219311889105115445540223768110000981808530591354980016765649936475728320748664880746407803992828339597365162084255554907942850972207274276054172428102273725335666819634687761128658033003496025535238101212655142993133733427703082234558221290132163766238760488225534451268458889330239608313608958098800100158499851511548352002295431126149735347886507909262705758789241108406194282611181355187675836884604601283126877797671052232141431546432495077732954369691759906508783782093074042773837977635252405103841125314744822376344417672638289042835747542294476688077148994107263998513015391667681189203493391103578632673179242405478828956604556528029384214273429379469301216930291750779316544525627743309694201752449617032785548113833817682365076225701667522876579507138161346232313210320517225637831293305137672738202907748501921248926961283927963499629994213959114203742538547217049871342719929919901411916614907282853050776259786804779044272414144896461644034603840102754118659755833143758934345261654157529671039956974546730533536882428419214199832232749839083961987723593419389927155149506869032152317657643954745184224394695840766819823803339916415982853784984412602482118627444716817034099244766885065495205286703619930366956945925744695547705100371845189733881050022330510275541418168252817583571131498688395295815385785776638394424828237641436211603512403235424593247686669664172774699727368150680516944729632571491727736886922994940089890271076481488955586964431098159325559865865220051562054789193178250220466258610683662600669379504895776670956017249246753993523175266067284216897135801304887818861582192032268479642528178727849807221933946688561310572568195856645059311520879410545588106247002704325619185249026990814026674470395009612050477885450257749372930483839520435650597765332412989519268399159226292463057776999725450035429537086005484578230813126893029948092094694220387620637207636039976888784825169514172552723452883760586634046693163408105205570005002749727914417218868760899985048204987496012637000338113095713404042128597968961591649712262440670887920947229958262673265531937366050034448328586214919852964147177080951307593936772791244056685793648024568268028308837155935528603307895992967557285203482619864204881920591019486097400139285624316169763479687061149735138261339948807472446654786398724374462459815861214321546292499750824924272917052519547466419664060080572305332196757988078620917754833258094076210516732244407621887811911038296255019901190950274893773067042116468614905111315699351276660837757474258433265649720635138589107788691116010653855981243135251060073170303085886631030774991412283745668446990537186821510667960552389868325189690860929322986339268397885069177002319837560890361067411006813762340649485882584991349276173320100637490706539379090611006253359543072841700980722395061567524186150077346171588001452663921993804358000609633529199155614594569417038478952038936853810270587917071869236425461346379023807587556497108352252031087098974464125124872430124979485554026288390512220739218430806330318268302427504984273874551526805028620278734714305248768262346808642137317179446925579767303675389152184296744742339473355617761402578018897817518702601526197940863599372686862346635279554699133360273091727290513329567336695944682894286545267002790617593752277777906282678780276330816254301943921048963412601610699895237062018080680222266144755624195521572662971883706245954959173552099068688926565894535059860099390347734391927901813036543658264666607903781003577680170042000231497514111337022834906832015352412415464596591713584013310875331586450426840277362825524897780139744941605041453231692492232715857739917843252071106402586079678431081242452596231838890074659453997253560516036827046985643444863506540799188927882301800950905363553302429082434905040954852986693539278059940095261326004543518696732690413163674968953485996302296377227463677190425313318516840450867100651547689943187984945652676767565124192643513282105749021392261003291262052207514358638159045223462868729028223377205223896334689862418539911954726469708288884088078339527887079835236824274363701014344735908686949342184742395291695736698421506770249775740304653948273040059685105037988808454331422418719747664635659898226145343926858035812080274614405335865146736391451317887619251826385269831332197092830445774666997342067368035257386393918921288809188787859607850180495413303052777939054827410233444213544124354390218718461935970906422628963110014578055407434322559267201539026145116871946369010216950743103867248417868392453542340357871815451848287389817913051414822323429277945468764159038104274116273311031863169244567154558827280930452754339153091941579030577217258941871348180213280199122232567784603129451329786629203532737616525992910044345273260346127263229625387346657258654607993938628186480841239840887379386251290549970257053203452518441807019774514664269046498902488416915583809997506980697049912659551319883441378391668960864285206132050465222421457474095294997801946529832393894970302719645038863655649903813497429805984783892100665553351807372929409472557159960275439456627618579225940031162786785884262065520390040014006267607113062743061940339262174215938828499434703506135515471851979536348112508300430101680816999001891887339330049976321008634965028645000931721892800701310954207563401080996963077162667629668390775782360688623820664606476571211002412716416876827975645281481812922991836678516574901502363333708232184880471644191853257660346710933611921387884253247519662367382703713382208601728717647246945019419767504969923584602836542579905591274119143369394857625237308808751807266423165592446017636414396855165350843163340898719041280721884942473642769153231728827272896391452346345152806569519241023588484401723114414913052681250483243468953085360103606627773565224584903949386719471249183300771583001668211123757049283076233386306436309198906788687597890624899686690603034263777584588863785448034920759227462113810368812593978338875671628045363562879488606161805368564132354030554192482975772751342897628706598451011199736302025114369603648341047669068426941342324757335740991348312973740348347509367132054409343849078523503530083882466771598297931456370945514930706371236719278209836608433632941590708004451501377346476530659670063938719562579214990514357279290129532798287251592354242415882156319540332215590084863303288658916174607941398487139004188783445563652240413967822573513037897372964455660415439415948902809344937422280352792545787745069476498093213268123882082372826886985023095007098918208355020287508306241955876690306478798987044610334779489285622688499730415091135653129565708587623226832121326178985325125461631035361265226124847293795843960292649257115433658322725691605071612840623384893855927335241411450742827416645533207054444532563097148043656441067284120490754420816580507006101844841265207258601647699351587578828092982107177861183995965234759269876380709476078797269713459320255145589965452531672689629088032797246707244804465650650624753791577393236531546255809014292128124904718713318300739658109226340907427932152499006534211249130443971903784932759259976080433667445609648094311187215895973461809879042032027996950713297925870416689460432166266332114919107050070587226593308078264746300699380115225493673448427666097489141744284918603759778580649230388013767457112545149309646129160077443973891474497432490223700592558966636354682118655549715660921780575068620385268286827319493896747002016912552516615855875385215892541353089929556316412560791465499880988197661769412732238762994536758496332380700089656499164957682286036904715161654286665512832504347508072932914271720751123306120933462787269547418764870604055890152972453547081260408530215940767563972984915262578251525802208478514402195085000476951647291955258623312491027096496010344094413615727966432067161657655199689207038725480493079387363056593037832592214548276649643851060464699604472860019281898481700219729951202277103362472873584571256835718216595758747872555503617904046635894332490175753939523780632342896024842930561683328495823956346259587509038333442153188443247517743694385181823589357824445138025798448877652475451515423848096352994068736854700411999902464394068370980353957882578412008089834005424583790024060147386564368921043107279219427446705963613341762816441401245129085370208024745596988989576618275044812416497629864693215201060852579934824112756776890704289500678631561010800898473171361184038262710693676213352335700837250009722536284077638228419494240372443956945265001251168235133497425221076685803593667089876909050362213823573128804611134729776363992239927551266703397818275320589299922932425585045553111937559133421192079761849079124322256242113519145304011822178366641419762667575164018149904619506779398105919534883453770998150261289607656173676169290886710914772563260050350543663118800467334242851107713962319891970891645900890021438565819709685223859117326530961876815883868528882000025008105654493505846400845717774105152146138871316717801221742834759684313095066244721090792729630534157558464473887596802485192016565670706729822866888781460994476472327977573885290391726439577307012419589671981956685946270845366854276630259628464248057994943764536667346778334470467955104903549627348843281791019500096823056102161129153867718028665889805446797695445618070434866091965174645747209768492734744171287581180941531449787337413782602554596912030038763077076348846410760109220670490901982851008138394032006770053282900737440086849273455072494275637595712465305598718424600606186715696348431807774607738650290062679397910666744417143951026449450501964113375651760346900406082078156640675298061754201166788478162028883188882551307859569975430536652229196854476639351675237044116380759841325911776696370168904479598311114670449636082012770428294718388391299190204357940840867250000071980734659862932390546910722121771793750494092935368274413260484136391261822577845101900478308981086299746517047064621025307659975041869599951266053771260391612322792399195453596978018156501672384281555996056335103920442350623847011894628962397914792699706410016475098189549638449912459057609820999541357294519740808869814298434507890319481056005143141759523982043879036584102401446736562405314654790061531173873801911105985466255903995050019525109775893627022361260142044031157341786760804665889716971479128790904072768015536154572611998624395730653507845121906616581138808708597878472746505086678323704244427953587809269907249686627414533444509247913342595289479632121997969228746795733728471110963528387809143344215135401374927584304530978394589498519186319385379697278245902896851918833683038174531358461648610298230458126496264355062483075913023937736001061217168194716537546097162711942805666674145702908770321604513366437848921828147730748564514672619385415351398821489533256828891695590652606712411212997806967640940436749570604060041391569909304039651471884851204231696614832017426730870204283428788317238353611884275601743171884816414493400839279840009920474513036879324818919322457261069365734332969553056315371958477295855285319745131135612084334608819528369737610534043992449398999826793152315964720726102582156321697733934983246657792558512591785856938239751169218848705624532361419858016660250097364316516765780540647253348538047181029922458222070989285897433544691547563887243581432933797925015170121383516658102868070661496278401920400792806846738948007403016919614358123106025722035821376782617357633124150711589540094390241490039365313526471615314481531556622002764809437763152020514355816308079688722940213902704780921395871688556793842469043217208770377618648384033612802026960142856474182269771483391315448903884219715443973083444661991662232799761916633711216121553093891267759312972568381703539139815539470202559415956179612066200794603124166572782297464724829641758619458440467532325822572780987871097716091161285470904399054017984553880976908637637081929158507821445910058091386417178845590015399218948763601704545910593167482150904882551128832477579299650187918502186972643241886208300459584235795083539711249204632555941492037627871887682594674633883323028352792888255814581042548636286650616062648253559137348022856365547306558376859267294889633185095931987283261177189126353005123630285288033474697922212348811095627044110673975571156408910085956330974948695517246111548958110568628500053891385638227587133840972742156471129578762836221313811726139189113305364695771499681474934672890524774007190418557532125572538601537532935363182048608695936173540772118019714183179090606064159091025636060964124733014393725221756972294203781933135081992449309663560119170968129302492613231995098565325425145445830199621856197870243578387818468289762106760988632397244700862687578775740522598811853749542559684037259989978667788213566679062371547688987431861572921928894316725105059027183783925747569174543954164708148974255556826729141662132324856465569921544560894060788597140606330338984658498049260749814589116219340773704835225503923197966319477393309597258278983798682492362237638848832377354399398088051336937894731259547693137562728894081253347399174182983185051994930977020819034548456381356059556589476729873345905699467931853429901416036112878869323755167712501908773512020736109528478297283694763539179283145146399635399346741074165645541080810661503042724276318329891073472226465869904503576471281469889842237769169309920040988376089866735554644761302854123271308251734998263130855642374008487712433961578868890446116150209716546760345491307236932093907433490818569453046556967306299319427661267380741387979270231413216551854887727031414443951790316275097320521380619837749288865315816802671583477740963110776938589657700317056706710377153537320695475405583749746157475849924760015402268997593185429601739974463404620139685763209809178144293238536650686857472599244236738358275472548140901936386347564781015449459998236488825887218581111663869606884977108525727730471143763040862075732389895378847828445065546656927376590323209479019211734430416959737927205191705120726155804289123871385753602605033301921064034599286840124209981848235315348233571193047507143172451318912063834232918511960630386696618944783304982645106610348831000630461105917746156825658951787601278016296969450804797558902860612593514313668992469235189294254701932390918711594273383780922029192492756784407666222886465644123819205824749464583795332451856622597250361957650599522180011155221026726486190296172001344521955197150607971473102073619986988615487199255605210822347910182506060221495995682803894748498732196249915593066881247351562321217202034298771535235854048794062551793373825765190596925400916716421045694099254283306307931067317585896054295324235836857057641579879957798134010860109746978993791748973006751409715642734083497212393423586096020850462192468233170823309218285103427259104341171667723421093040869337503475121980620048747024101595828774629178296250402770576216140623905833207406517676577106766118009306990346632532164456612027933179661940878307539915152197766258640156960912186559909382544556578293602136734120733130750236539678622850051969443804470287723803282517097106366883551780102162805492908925564830406983994518122975912534243851936520498789277190610845954497728696466194720988076296521781483059135900173249092662388803868213118496338094745586149645840415820523859422596261140230479880324847613420104260289362050797414118780719946676790038781175595954488014982897546571245060601894607302500274344717259175882918708778071722229093962711689179514011792704978380516242544154683522558052105514683337697584820572702855972334051272991332731820188310114082999940649091016502734384280328585133083188785700419609821426297930793956185005587645086678811162408075050972308236737663901897025076501460328125890443786128597756276116735855124157550537976175844980678551346237708119303281019380021657590923170672854688776980713731408628144166816118769759253159836687778225471657698673700911513941779944611551870234424612450617099276846902598744126320418987823304684166194150552847893025815596421302282852032475148671872379904613094125901039427530670563930787642794308122289896407494376155527670816069190228699309342131199836241179600531100754714477455350294704152253827662444521465251613202732131479182018249368817070711369809591191260870614266480128818836148361156343238120957757328196598483503270204642060205097434834960532996915573123708247117652958137831050425931819432894205549155342487134598469901912583224959185028296782409885706506200631954576317694512416900788137172516562411333472716767809623539593645080498183691463431277021044965180592147816307190816609088628574308107064555475457677744824940799861464410369740922516108832598372673074303141318988521960264387540629110316733506144492856899028529182761235173088071890244335740198045258111970469009866015200406063995127185939001920734784239450287682524408024899952966036005109904392730359290554035225643317563909101781329513029856037282007068855879540032881804428866062698536601947350990383819556311056359106250815512628290248576839922737838987424189903682990413472218940379606876924586998252565915139681246344843384007484179102977878811134261350108581751194095120482726101433953336638748968439733391241627521141508466975738254625065985954861911678249381671777355671584627184799762385875588080753112329993826194698591548035075265147063778933422945977948081552407480428690169081081172730581074023080874342833314937978328790534273719031144085718582189064458416784663468704213719796929710140858549547163539614884578198200938815602724829366045450962080156525604809703433586470087244399218760500276131502078962796512824930743816463236381809008824902024174130693665728453916146295048378648160676891505632960316753444244691121942244098020771106428145456746808778576330321065920278832502766035719977757127903124404287172447562853868764276813921196580453935507117622440769075185031624012387362879792801696616616380415902107565513437261827129895236070488558984008336265966110727044134070771348827572450324797551193687172839817034193402267279047085799149511781497925930548432058052396099962234339393129088961239517409943849375091968980309703459544745328833684428171399912804355386311535363086936776659024243368176600585755954785229512224625165789491628233779380931643863044484528534464479662830387048125239787823786627176461365076904747106544028513346954309751054354863234586955993458319403447550727690895303425045638811586127314421824186250441463491374082172415685482528779060656605761970922766878653630910264127181035902399396585397108833766907070386659720363852211056029058810141134718464426877937933570018995471788591380507433098443557719289700457405699118798541688693560374497306891939380442369841984783572798113816910429183499170277473964548474916594908536414563478696647370829059875962310559663581741608274965107115527687579208250409134581048672611922379166963204282522333629170043632526802865855411610437278022053094719144734036359696165421608027305587467928142064897094583831479328907103324730234165771098980562723491462102352900321104481648394488716745321119288977751261255845201230475336972792695650511689785759760913700674164536375070118571913772327593104267284755346516247650578886552876105862495619437409604958868958526474022125537170980813028468766430018943811611015291557338498880760991945591754312511524885204492382515617546097482040240855378513297999553756652133293034294806234243369561005020367959908012892064608033856847838982797601264292074888435105890318327610011845268289093667771633267425879920829640776462470996323294645699847694561133635726469713514263761860806297578485958601764841943060268723206964826928595868397776849533696371866215401773418386003187084774682606156279134384452840916514628004546668141531260056647042411523443201269244588652219713553449193595260758954507310828572100227178418985479076436393311253637465563761565387405054623157421041546032258057795433929244757795423137049841068241213653606380379120127367098973706034339021210709852252756944492351558957313142625107036080638104740072724978170744946626794933011611552469443323849616042227698400413211561229524492352406764898666285305078780192941382598230436657370981898244766873708707495192337585880357538815850790778800063451089921855658351847047421881097844176832063400590937660904702033216897801583531345640148852252969844869493294482961785706407510701657683081393169432363541269612562620086830125873128808645978179708009529116864285382179737608019030616859980233176030760322780517497974423534336247665250544135827552241351595419648940869401741968883170199923969805937470888256301247417714689444916423005011924567122955056332789315280119161193842444098236082077603404390404663429261780207745591236046134767308486278108538615948536270399536661298029996028130041285686054974919700949879606632009915272240954300961943901432887068518387236555302691580616744045522620318104239681545537879013244692195004640198873116075929513155476946840301683061182479351502203528598313386499480198855116895894684292199680380853852544653027693233961546688635883161071230408241772914920414324242062143691964144576188743939498941493474193969796551586871722468287766102051579556487676142488641079283464676270433955063280033443616101987266581615386984019946922829905921192854422367137544063460138055967435599290216660224787835384818209780323706733172103032801471903584122575480144098962270615169157792344727770029873711925430344821335170113519996487181549092903152048146049558922591174690122386474176544365585328338271498568828602070503771534784032078205981268958916720753043125669937840203077729957124719011758770976764863802699489720746927927947734284212357973612756591769418955519377286747753423852997853269054404435883839321285303742577619248280457431291941861245501264692651300380386881029771813497643569884295850303787804028061141119769185473886024466303267089843623493945282952922270724574923704847382941275598481917636636852091887426762179027359328832712398076972357812701027704216174975495966626684975810000899166681946292016050876072792231616446480229911465390049864103752197425215173836173739131889655931071453004370192916842329926063567866448585990514152526948263506448420000153141080159506968341166731756763822570143642289975791207761911000921275788183000521361538473511639624976823030439492270906413549392111200194504258348126878930683295933572086982373635995000342752466581664709683580985867586796985384340101676935359638812429726438320562704160065655080517437216992019250766935282394633549725944708715831198851038431431821254848163150369922289756182038646381085149863184832130530623143569455765237297894448420777161345617401311418971237678924762751740112548177400257714894304587154371301414700669266486834014110334856587106874915029159023027861484546310745001091737104988151278415745388493968355534832989820993000147418540032081125243757924561898122940831596097599118474771131801150958467983029753768779529097090070080033577564932548875137487365451055558160397900785685842988798137820209638009045932395064381474402843761638017103637254854828314333052938662705197430037939744248935305510098925905171182117510367142771891804952291082373932065786536145581230012489911564781195338415338756420912799702707794466326251688659326854829209956002200691147732092489598600954395833311972323788105352746216765596302617135651716005072500747300645883680850365745479884274592553176013240841845354593601777650629588307364468626298863797624093739343716759509994873591533692249553565613126675420994454973273200162476456630706050330549006427274824266341669277261199961360523562461114842660146243945509592130012812654713837513450094226047883971151154379665942938176193813444331690604928442207061641267342375001479146638323091522725175819849942065508635245434370703225695367347558158364654616085563248871125174204275932673607983185233535043158516114267012825283129207159253364960158712121128407692707138318621087452204023972040356929892703825658479053741310007625078139408299926553745540168954788553870468096924774530986862670480540446490542857492971154296530361578199927699617462495773964421286922113317789768257658072251874042783435314043557473086378229860220343036303808993012111697232512168898118011524798733497581033043064561370556756177570276083531699830225559432509259275844008086782990356919537471996410866102962030664664893412883901782546384858863813890889601457814646350362271548084895213283622818289487507587483097126572114441582225621895606735174490290895439630550082264482912354493544915906595590405863564456255598911150316212432760201291298239197014631157900848945093217355883963436042950966419942447903488315431647668369959016529410552248542429681729790545219566517405366785480559868124997489781984760037360769665077995463420362017422947909810513220478064732214303907416656068401824027401045147481393597187726412404752976381229514804695852932476507943346765407194198378515760846664114202599671290310331788287798963217418317120269065590827476364566292429341055480437079751033026441077550163465029863035284711201639273382099023011738878416716557139745386740019556254071327916566548555306996465655846740349586136831901404927910745642098972765864274153942136500196860264172353565170613138889884242325804298498374081006174450979348450824998031191794050190041784168345369048362374920388326087441107738797009019573856747891394278164927722675355185129155367070719540243909737095003258108288843996162623974558308388752528713278393774098212358527342301943534375150232447588403849133013777272013728881336520553529203134385907196345759921322154117569122992685121165419245983904837216110781535424334325898459686779650611745172689037937401361336430393997986527607267517449568022624578964880840058574367627880396681227792392883400940906242440989106972012338823900248220573024832759362155115821687854788930088170025707405418685207838829166689859329480133398609247889454432402095367946228377332801216932580345534325618201009970931284027276466002725248959932958087600531965536292780988174623549477758807443346807956547392768772669154804243307157518650752681639246162796143985805685711237715208212308593615840072573600622201084319933328648597990574648536042914797759859558087535721560111193695213514860564968830276155521602238804964664082980416944240285265527328596757184708496794162612964263841657486474166042761440064969302551604002176501478400502810442285526933561564337628704539224882847669380258868283044527871539389489056729877202269950760156930656315803659766276754787117102805067610708764122878604865588467827453725560859384467565305419371083279811245337876370094917725285565149695588939257002904132497769904745816079244119397540024529390538735357411766022291960180560426272047214092438236917325236551482784103014739501133187946053462842483044943182401667087149061399772013066251305721584914376915376572528309612589198778891763993854840067358301309674993002622656941630217819139966925554882492989866893907498586708862356850659044911992042007349987713670089749360559377794555463668806467622104513343739204364387270341015088912850512563742856898501758599199089487011569456694813159953137669976738304382636737905506743890147612466270690212947203427460017094799194819590954632419825757411012593096113158668129517378580311897578324695762767988031635041393889201028853573911909371647639048484946078774773649190122860673511207544432121042243494537778806946762845817397755606002368966675504598474671579749580787834038191183420150076312378638617638681958139444123525046601772450196061913845771543401983523544020895262723742648932102495071640876600098709591680729293639379564936029739906233257219008098624352814597845564453840118718502280564355755661491568492148240731588195652536192356754421181527009697052122435878566479700885727207641161907833583215071267777052851835003450471056863855168791321755449742839834330209505860110225908915521444752466138274662661239848483790021465811799456240772805177622222540038720098755189096065557800627494344857206289310893822653465537446781036726615363616599744001885536142716512898740750869047270573775614587152994345142627222729004320691586074782854197938196917350617831037840349910282260941609449057368444367539970424120734214053851000881151109859389353087282299527781956751017077009158403744717111067099320179551596750314503577628083587177416523128943850949774461610782516949650375151112852826612594624812052365824897777967178353799494556675246545415869364648367140790479049046012579599106433726890810571402503910217193472166265434282237355209302763010210071240747238788107878071442929358028419384261438963444453647264606480889869514358941488846282457440359581233486738032197012190627032749607532937137231277947475035637474951149853491150802875229880498116998809687919402739984052262292144038371726563076082232874741869841885891563351438127445879498150311186396897897508631821949330878624487876166434782797743414783761202603107031320872228439872891734807148060531430652024066316108911623820801937766217946245771756282242978046027205527173044107975770328836411252104697652534902833300310695084704034432759824091413014088707789532185234531606457634732639641434789813916911743178951802440682256899429336541265019056861066497062233617803120108272538360369809396951954075859921753250250692495052130841091335540344079797811579193911270928487053756865322331017141077038341679743576177028445136649354460339551486881947758998556198556700959820741385310087359856105641030834149461738984495462464401945563071930891525030031860644588532648495359448989793442286935958744841868099207807970541546107073126487411189843578761945388031725972116923328001042157786019167383390415106900394939852536896987514619748634386060012305834418106891396885019112227583767058165389883458011991964174690779245492389042457901364495057519815815216808564055659964067537273761167172562343445098678940494626533138350293966092662082180205871818473225515789527496701896607478189981570768776046491862573319234771926814043998681446155841859622585820501853453563832026930584153803933745009476772019853249070152974351839711747019132962731595241958014279336479957219571432624954740004411954169307617429963218977286617508437827130455502277496403136327848819816427116668101018548311269253562701741340445795980117693347921905553900261406473752093586685988174114967510017376270423546404729742608200208097595459095672705856508184602683445224881341165758030199402043534887893267831165405924672134598655578187714839759990019050448319931756624147002700418409240618894453365180624453362642750365309727341579086981713772076118723289109241013980471273085727309686580100793641262091873069251897457356613299918985230485349888936338738337933510542704209456297813151127292654491886969336995554157147090202185677220594576752035460085243774753290359777692913414713609677507975346600489726175144727108297614552830595771787362484370176525626308465032900793525729975140159077173960505325602671720621306594569395465994113588466830231219795343385722424612170920130013028482936576598679750591984461143710232714225940958719787760011389535652285328495323380096532487132820083242218964954356250908855104678667180920067886628010523514444497984868995253675133975621304495757689316352213084040154157361336836455563119509820814043102373566620704665265557367351057095389644702913462505203817028364481624753574301395131907071835885386823073624802163366560763589399969702587968453668366270493043896781631925079268443027738856551540579154770131084588027026869754256390325139586320142066560087652568200105032720166458391534160686612050837540766842841194605475412490471944318741367958844161354567212067300001598765880192602792147810794980962589893520130219175498887682823430914116970926653951804443032000758375835813555694567263205090043255805763663011573484094794802116881770084708117822460005930778753718356596939824758483453695119157180129585251007798587841453760896888249403985179008466211652214550746603207319508158663988305480957220550002154283111060947970723916435914411880610397032219767544431899438436943714407615190265285885379988925433522314026140163299810733617571110276345776659738270603409834577343828948734043424164635378688294882884331076244118242599697016256417476358730437345933088589446439373049767955891552339862448018130033699654296818577266268272255331321545640632761102458587540101426276820234850870672258118557909927499782743202122303786006044503870375418878606854723252705209218205334835188831990572442384181443074478093007848357231457486037942481156659076518740460757629834728601107238666453229420936995406807558308792674129048316254169622975227012894459332731814865933951055239144545482977401761527540281312498728509489791195519889428676495212260374441743625513581185751151648013865281935949063973202703592850791878604899863722265167764306156678910893721819376639286081809001233205911107737203394334661838319993312052884532706470972165170322202471105689585199637109330614238090845149997184795976384342079423624253129320265889887897526271755111182538759084867601692076392988776355495973361589065741941428315579840897185668921375717013025186047436343703495842231486762277436488235005676302064641419418576118528927719807053242434400643375572644349237122542195605437789098343721398000816722136801618173701673576564007730037631553448042745079717190988529436563364943607239809307232937676637644703070712996448719629182122447118651090812022589518290731074839023850168161719517244849843268891192694122537728840382078328652383606039797054432032389408514994144571375526322684319642730356458926501492914803848594438720676815784166631866264976891626638662473885775866716642644354956329296485806593308674985410366942759446967211659072007095421577702993884066466865252308560480521748609532495256720094043242672537479739465267899388117116400966314618108554877328420834154896134186316304412245749343434252386752340953311813358091113900539352209742257069617659209014667030184963069642788021949210616565204340844076593476355316610240587861579133344458983932119643578210185897276512084331315069826977912489331459268997091038129736492770335965957430436149036608335606826425250444680033198609383287830499139623758149617692502502797296451733736059042412397406587891265311738422744024400833021243474236063596942465188416909802420493662956754637615888578685978443546447902877257944103583864012573354379091799370545708282928194688545244996005662221428216981694260510048321653647456233717241118116285189501790596473373590649781677699320468168996154382463920969568464692423373304522069850663489064126583841512520400503446746719864901452875904789935143878388480409330294822873071648945479041458474765855795954576409054905283543187650359759356730041573420305288108678623825156378867920265892157030187403116658417995739147085955231966048682052854289957574589153236735342855349502768829367132036712575422583386077952152191904757988723888076498445607837282414870478618366093985948953486804613562278379811137558201135597559378125542940620670695281691863432969047958828574861317145500042997366031569990060516836320680902922562924023528071715537468001416878572976788305503116469051348030554537608316976618622277396662743610058348550355743803064416182573818133023024209382916087131398760296232416863300534007224046372209693904257682439825220958089752890535324563826582908834631278536130026789760978610964025538489317786090888584893174388059785635410326368735785060411736524940446936156773790007446756610546059420623877931031716244524491033933884830753001151288685099329687115441807792809113859498109171499491966506430503951767097255669581492134629353607074527249249303153734168747305969159700560561210119667246633282527439446177070955132731183670023147540065777020482905455547916356313688588381740855223428771234296561075358434054629856507761038274811178824498600593123892480010799822398995260715855810850496283138064967736539279165903716319409586653990629001834966335344865714247566117329553885372307909757319689660578024994924070182882773451362617191881900191670764069624219000961787166705344563239197484670075980102330829871654698481396644620368561917605098862481084776021940035991743702738810046246684226567992381199861965340476721966023451362214421691890002190382852973017984752046860632355692101362928162228657084503794619705828179183038472152358776253346852171740310610586145329310732133087394659716567678369303883365544341715339141469080608077757674397755743304755667371893089276920676525043990111993524914960704353579838221650969424221945087134162796554471167600118841842133101817710747721692820150203532544066662459083782219350427329588718216085582421329159135066523704346964988982085568608102126646617257335045787999101842331005646498254981879389878787885910767463264111120061125810122630607817245617791410122135384606449960511534912394995491104770648481176947228144209509583231479628473079653461206357997601262527009018032972429870240193237456055205577474846460511465000765849055049187181349635020277629113075853667676824954295595913955662709095503903848553069434679933888569934523252956296304768759164761894932232687918159264582268284110587594632749414027715419779714321241151321302730502758555795791439949483666780010815223813287658488652930904727907054591325779110481906521411931926722276408111625911374595969045344325832240795714802411105225086773473166962493104752291327862988968338796858984973111449136895047287004656769665812348292859345286366181144623991279601758375110868134845164044199233560192584961190602690419441476072024730520145657749213786487981717526052074106779623624009576934688342513380055819857043453081101571150917429682987701692394682334381775245651089033289879722690968008942497614738696736151730344632366708549921193483406126811105988083890441482987983855355581322884024953556126084665094008779429539337546669828270856516470098646396126270903572199245436338142534189376703198416443635990170184160132088321323822295381157993277037575402288643797168933007232428972113190580116917292544418329595095149154173545988330227584979148273261799184053853881118780453269985203808161906102555387061774899332278361904048813228465260139091798212434596479829116617572961795967185631805146571591007683237321492717282615569318935513296198180692616045250137165269232992026731393594744019976310577204568457602605581533655498809866324979351480609647795782622483170360855191734420160574482926354213645122816272138667899286848379503636731546023974618424314731354075905782822675352341764594371841683293800992965858235910741971020563655301478464180214101920727645307067443133397287282452047028379655476106290326376112325292159442990274385375052638679950564212298909346986743463202058901777303580110626183507453686150827279625621477293303962989921518104475959920048183995847778219476638342482480267616446531820094256812060512024293283255489207839073251173281170427368893418821305729164838959879435143933552362262711123395898348598472740116341224162198683489718608679069621246261589688268551237242833855832897691063862547083127140352612195829562179510144654117067369353926399996663235875963566311792140288301687185724872495435635857976038316989986976275126733931701232416150689759573437757208750251342658490375731670978419373118188626166242570914712184458419096452349262055945419000805838980106439977337108343064377560414131206582052558039477252477670811198491908591497098144463838597601485283544063496258277219223777593249841687727760055521257887279934594676375710142468506140858673647030509556235096272743544670213644004850969636263912342637927605115713801644166053396303834817379217396064191747733961346503396498890910767972876626947799019238837223204849469434245975297824915775183319473218750379415501464030998514060497712265339144541385408086739274718289742478630040831985870422206961947346593841738596655934188952314953695696424697851971177752104611679063301286593206692591944038579340286085368417142081168062183704875536756747570515283315948136832132200237735470822066799170913530457128391535024512036163638339177039533504365840238833106600559531551449415480379874206251195639470270301272072648618135247456909909381727263536529526641854942909223416168879586032434404879485906355630039919404218797388577711630262610091154761476149339652879203507992905479618342398555482635303999314599055526504958649007105083457758396005235643987677480664463593053390298125808520111082831118554871996868068807783597956667080034607222806318746824860617304613963523593136543626780455317005080182643899324594882570430744008389513010551048616323525228878566138255545335234529203173851473774558002314316088588006649230368153319158680356404165122591665907390216288671545108024063942356829917995378218167196902460085402262301758670647585146486046351580811970543858632680982934394042565902634167316669002786820559752627131579160266794287649570157147097165688695928506204100514003584082397082131352109394659677667265603029848653601024538932671792107266017041521704479900876291351405641985847151777687456498044977064836909774619650967286587486846051969134634273773405585746687690003197084564800481974604643782734969248641802368082681864749342197615701027507303839595623041454101967357540558610398571742938928559998585040489829999248203963211110722293014384701234502828246937524527166888542729333259553701836054707034698800128686656959283549367476020252358572064278200440860990795525329784004257844012691159646908634337082900838012175562170403680965073981147552719831643045982254654933449907359032534643542072365565299436796592382313921153754946326891952569715023109764405296468676204582568751271902953377864551945226165439892747411263615632077147611901386940364918954945426862236568499273829100574937539975225113443724934616950722533090444515206314199394555746944555174889592305426480279371988192141574711128195308013294172754796510352672826584543952915893052356604565160513275471712256008405235136382913655089608423625197167869154141986123554353981431126583919520257929282724941635434590520656458181021657501043518626455292543179055129031371009379735283456010362494902860092107019752266913584504621403683382912641556190025601351263671207780019659293087512493951490286540721759215362336595329732021703706071908086353955243247308139908435481743231296715333375648658358224952181822989373100510053139137016866906226332621808984058036277780722153090735624750214846536346120359829447590474385334070811338211595785408635880919092587471497798572991120141853267634358689711506604206450092297037519920425261846156715874498707422653624159977261272804173171712183205320072215246981110078492868973030168301599086867593121040786674150684524793434761610603452413515459594669389454902393568813870777059667083036453321215297404503738694257753107201410713783774583500408709241712259875661835686323422833417037247303603628461204952873058210797844907089760245379915839983180452291269625346759904378280580311652217282176614788625104918112342993556312765718111926837821184375972166539202391885710895726840229405326938697591424485685628032319859591302185266090744074379263934331586352743129064334675570861195770041860363361786550482713225718044538913806158296033698687241890311379037240883998386081309334432629937941430472016932623876954756691253139405794829012933994692721076738787219675722232801826299832365447082681977025786086706673479101273914969377923409933165906298889575034888699225962997460874646180958307998895514724696872554070768996681060067209499462750824322264575035186712113242398464524046169565111763699478332541882335108299773948470913800100011031914357432400808912690299911354581146217348130235881979747511501088490027856798357754345591243574334072601564257781633959916112948469033493296956087108288953070203397280849837952775721999521097027378464140654158354320703918199812379071213808044883044114463197301741195177045421049701267952636467839229044502642980030738743738543192494804033629007841720479615781462490750146044945378391936267126756166554009724427463924135469806437956290513613405553656050286518137120917870915152431494134736194489189516960551523857010170769873844653957466907894287630914001512081066314094393257881019913469348756205833194750578008617791435601189990539833383399738027225475848066063853522933262156224329652525963405464903024189187193210235358471780140620996809242324075908897397807379496091039623581272931529640977193494290913992679614363102323093351986703376601680322029556846390744888428369481876668444291626649033430528727498035436932082271643759035791807539109602923751042468946683399803811263250242856719408141588414158077601281456347776535494409566757650842407107895940531667229394057419101707099406064638225651510667262884386424499829104841958521567151800008269623922912084926797517667958710766142336885191090564244894353985650478077899452634844702894019243318789490219502241543551323408591039484912932247830429849641907648474470955767346976721354707674959057476745938081659837965590347061858677601388716164859932123604864519474583091747224946637774390991651911578381237132659409770082452023139226846088673178737911328756557297290617839556255000354359567976003636438535263033714846555470225815594149501954506202745232214975127809924872987123929763769269389795629996873774925572761602777685248806648110805525368518739327991166680344683438056060008139325038037412385256295682051836152723650282423116638647194735325894701461721079785664524895606409586416752162459102747818171318443247629220614938258606450686490371021795969565619391103563885494494079742131469361304627818187586887988526390330053631217169639055573638200893458121098646686634631912001082054287598430805572257463074551295617884504472714875841176840247017456089195979149479177939302577576693895849198148308719803266151260552482416144429264930538970529164848481049392273994463524049597606043153262900229243093252232353359847046859356224508440885733404735992327524367852784557979257375255708278723874141982744640991825888009909951860898171326804668902259244226406227397004980763853318449669895953989667205756404603551563783325174176263477130425500647381899146358981905137308298134797935175249630911130181594586596114841397579437748595902321686582917715137275406702716556492979000309308083346259113728773108214381526823356822689960356254914568630370013964375203857330390711722002351945663049992611851076619223428321333533155105862726367307198676549520565476602613184972694812733987059096649187915096764618228798319281652429216276686414681079749619522265820999589417768898027579028511151923017269816452125192995129461369351012956395940299086080967684829701570300000037915142022965963560666475897002614943685173419692073658540452318449831397834073275535871572220824570290510609940188042043304444931662321294025867227430350318413651934665886201621683365680649932654060668739184110818209971007527744587961822306984123146277289078359542170364085230315840263447002001042361051836414313210631498345541718730495114037536669233220824274374473718073286248271730960625200783474704326301374256432669639624482239668203525330281925724623805353949793735939823872538628232949261279965450315014355080246912301274973781880893240726766248176358625120533007955716584675483684037204847917359369122155842364113291844507149743110112794192962130698695456740137512510604243663581087078607926240776140697012431358422391159787617049368319267505822282263114676122078913102126740242066396338256154192022357392443249044721377481968874403018869946697788042966252777819764361530424987964222445930441461459799270969207965968356782489894195056775052756767576135348777398112802714828960041195125226388834963606529188156204914714103358718989822722486904108539115541770164683632243269784023064831592065687442716850029215126693883018384442673945896413592065080618708783634518236073720583937884951566102721179148662242093145761936862654899153688260317519424879190147534779712117760128071602438613251161265002005652080313237431568084702745722172304958270728116871614713548292600916314617801630608883157777330564832589261017957068017295475599226419033210418687569006532705268188766886403510723723235000195928232586691328849405240375625714469238403552112121883773009567770071520559605923072357385293322096145206589043498466795777596722878119306948909206303428422049191150957547819009010402611751779754594853799149289233717458283528504823543759624579881654449583668070923457745603767984084006574897066630485510606539367863935701661977474730205076041595550607787143611027313098771067363744297191936825113137989082744509312217604127074969288445454922207981310908633979958798353484445501568409756604826135962200495698098211812043144293019821947613215639002595654830927686682870971230513508725127081222111601257142585942481577865833249197993197470776097043257748793015831160806768053489897496270970292782609254621613916554636017415117040175764581778793838015283294169455497529066945345684614032918145733361408416758021166441367248845024675018193834394083093760585702548377223786481246780462442119971958488808584692694919068995340940606530653493851518996745746085404230092135131895709831925885176943031220865295735293456193122636529599414035804488274513965021128210887870252319090807514334713520607670124517432692978773031897812132717372247985506133579722565074151350446377895545817503306144219692597274931985928306279786102175468022833172713101833160874660242457896659454807327858097422352206733394419787044000792908021157637272970660270182199201046459893187517278740706530131958258178670364556394260337878433975240523545726578771095698625494196841013039329905214685834535146517426211545023831885820905727385974742000604527487678612871849884541347115132019726991096365526264092818255483413251019005907870374376353026184345745853066168987502711771061805836543160082712391425309956868742504371240232085302354445120981871683621678780019077739484605879345881368981333520190484586893632731121492955703811937847457464168122839415249060235191479349646505263280785797511250655367106612902290260003625891219190709799113815605201356834639929090198613083949651226545450829997179918380655189741624108872964522293702928867234993815066144149731899797429233751442479245767641565457806559485241221234622046161602449374596373155167718685569789559353255476396243111871942656454984180575674290849909623921410618444848418713438123699927130541381782144682906319109632028461596929385505732354342310779386762347095243709548431066627065292794450253860442497431404857193834928571575786234250701663384896202880040516152697562614502573751108150665587727141699969825848485620027307380291703529402003488728997738626590845194594376688239935643484475761238696701621329633932615514707884028250651707702531693124120809164994556540072155550170959232384162842823868594558840841789022684853551219892517008067736368632743056611560281426750666019986901263411987169101394413819768239062593148622415856551435705914287741577999146509054334654090801432574451419789975437357068436413046458275987227313770972524859678562042623464208892598669505242612308370958545143305249498594877371695861615421000632024787905729804680768552102198345501648688012339553952610847690448565783363596467472933293489825015094885918235233467842096307107523702849393837570176132105910260445024257239970685526233740777597680992126940729238045121437742696681901221019965882462486013158169772964034359526898569673065103511998366501904670806404712205498133640386970277879858031387655463877178487057268977629086538919109125384590523247961635108977734352042895638544618943275798055851602691145669473028868929192865958782235999730613828054579266484068814366307454756434648130476615897689979991737946976961448618338347173304124366077480259124185668070648625895894022423628149599944690406564421158779503164842703797167216471049182024879316201364453958505975333317744804597241714580442828842960048604003984666247428174685309399863300951113934070172868820840162287456347977110389817318281779581023537409577126452238863802293744649428132081386586830855506868237264190351008795053956824013927096266255850841275800742422724176912175027408960964972838006758385697342056150396929011461595640184231976034920119326034445299326254957622017686326846657112506948630199074381893683534112193594480832079809708889697877107852619464160401214342701871377117000675896356172354290961527802712331823672680257851804820612374529665284482856669638795935999979972957804649897070697549368653649624419342182429334062611717309761342924153092932286070404421224168145066580909802327601023300740280005474417347977536216126318162606589735118524004333935914374177412652135970914296960799381614898462625532628701437108809093422111254307476114659838114532905083635495053148480553390843813441225775712990258391663123131030900725476514992466645265419878562065010336108881197760598328502729312392606965854105622086683489111154330001530530195974632747656685996735468764900544392150090693663240127840776300019734350961131905826323389890266302692806562236545074825502970917534172799009680082639821272064302261710872877719433589490559593381640005152806022899571309830143278485948447090158211528987601172431532045796298116585689065464586942730232651609473846892137658205982762051919108045180219965493084715892797964771046444227106074285927498075312968451955599481010482346983471732249309316827526424264025749216228235642977585231705819834594164630388461474804962627252981180485625794589112575851369924737671506190244743276596728451556283680918233544443854665654115130109704258459594370533308439855830761199464677840518236884285359803693993561998236721789953432655644492229475215665517159588970610017974775485658819752637579702253678493995397439091605184149640666055432383158881447234056569587754185980228465771870934006981322151300752924267043948511840091791216685136077235187304538719869697708582363978267550800100388271308308327107766825086778729608924237722370624479602766754514136808942503321033542773173619596778872436861391755873728208639473307866975150363512991514601379518891627166243651287632210814495541547191969406519635537041343272518900834448786566546714879983184012740456965312606153929592942332036732890343780679698300233420468451376206267768649759195522104127827845819202483143633553805627789239343585067732248737991696445138617916742065691502008683855766820895382541230212220451228139841976445495813908403325766262087798785209907261967316830976697883318049897009820049277727849217306495385793149717660560774439515035957257687926179390962823811219798373310473785956214601591716308923007853152604810572759234186171657724137805681398092001196143210882694544130140593432488570798861882983539123346322820793501214786923600091592196182385037588731400276404330605842905840401947818832288031819284921294011446304020213943842905824339292201140256288118497485139550295876571131183652131142757564891583270148067388533659438334597500404546907954156285126380740563986558557186143372530547396830938141938499602656940075461068874995487104151229771714235977104348660461576975932345679381814018552725275493241907695151283356280843597699071753228700101918124515617491674788669229636045614714185044574448369995669136240121947664937323490979050430062340201859790340610368352295432474405191745061451490361840721471003374219908029757410878492560392443214166143456563625373829828461948675697203070954895816701817869830860601831056462312936063134355956222199191874117512995503592434725904282809971177750320245991352613239242206309277438192226997023863880894164091445621377628294156316315395663588050145247585790649488415448823266015498205662338888419443306479463445624413014981297509995861409016007704668329500221898116855930574984497615577593144413064101503162668654707489738362162357877500466476566046673648040000435126787283120020077892715548115598740719454836510450324804417061316892874329961117808467888786688383055316288058457837584543916643405545548527964964043565465692635860133377759989105698958690259696763639526338506813976141978692994184665821454808694427827750010910076742349533022318729856529620283391512352723475597682799537443996995343409760877361641789438033061883684465633098848689626057052364308077644311216199354173375031888045352262368815391078695668248856565060362051611113535550268670517470294700038914903673325201993831193699188492692664560994834907341884236729868260245895503315591907366137589946703132390724133884994451217571220025792247640644847146188181419925568755788056689454574591189520183386162577818586104610712880220745911484296520406951378934633719838145792921170228075800910551558840721836256951610883944283146993205838760512463994408387953522323723929656504332254482507021394005446738108026815912457133311401374321864521668537135980786895726602883053251313231638214128786055296460139266260177181382308752697086063901306610741187169810899553407700426131871383608123253888163647389591569056886742869585979399756203643235026063710879229200982490451867368018162545243362074070172027828566800801855530105895490781612804866232516435935680472398293886376986060118214063577214624451547734246184022289863699034283294838672875946861690585964571496645608341957439106432645788274104105403329398779636742968975625264059609085175901083627671680106805433263631678997655927438003890165762245723703327987213699334149066587982721599843479879280680335756692129507287039634814257570362905009999615357146823606587023320819635967059671304475435931089893016232452708539541536016563532580239796986163653485661528778164312047454575742736751415252326761035646857766031254007622786279059617908240997350342299132978993445532385997582349541576245538118157223758831563572158716980266741176677638353212552643264860751256185158738149357495317374271284447938132361745849026481944266523457481643720663415109061774410120106922932622079754393638810394925437362258510430051418547563024530890690054677296760597593002819658267521428064015567987175687445308155953580327997399546117407465609021742502483108331255300618040210918795985328045125193303422243950124522963291518643688163094602135483211474861481217902630649698172469047571431842671633445409790402730912887839730048397321198501878137060431175295130718447757791140181648743618797110786244715843904549102059614209660848135864524626943658939830472198584664940481175813260529122618415297352903865575695110699531642413786626188029436672797603943377908216390431515253271456676872583909005239682706189450272536916533236277902685201849304109711455628804435029969217080641698381610750281589572157725058678502438170013258068276485946912567933020534033095984473974767181879342972405473724929010050505545960759555135024949846242089319458047713172208381606378581044435560807993700112087206570312163657530669877464427076870371239012705192381525245997575002024911658461152208996871989840668814391551758537318959710515209753422483862899665502079757674272752050962479346094396480763721318700685524993533034681994017339456586366245133189579072480807769754517731889756875596835155804265215730258045069669064852544928041761864700853052877931372107030162732899684996265032598364968207744548131225488622261030147535801552438784470712938456820265365702324529067675320111462553729431990115482884504980632699061972825895613553527084211123957966027572790202756710769698439643541397809837340535940122245649867370004969228420888711323478647245555184344413345642292452292504364804096145021616671037215606770743318017466303222842551535700252840085046712148508822472015427515478592264270323070978087182955570487686178433960893005357477024645939156349684963098552325145868246122635825578423218971797589813508322043635550613258568167515219973858145104226992748422178002701011329054095254693545433402698495447855216096671157320967480768319817515050975174722663574612597632836831416385937491959666040092100888564902335602942513136011706961883115907723992830149716267154216985298293604038895509840049044804651534745177993731463314390873521621745818665625264128454749130271230169831427070618429972852511504915520429180774110154398715495664777644533559497680445797607448368504349015603977150649115779216205628541705289090083968972983422057568287161751101228486499031544624932067093975215553671190729484146208305238897675478723266212694715836783823818263732449076897491027954904782441723688936523299412456446877866436801025920578511709176432497295872479053779466562940889646222296600698781977666332525971011234374576780580384193912038392693371288196407982931895243793149018013488208899127238555756139911193141634893266476056037860096640235077906370370319080664621135257724886862191092304190717552136341209036393437363560868944674372016251558441913664000886851258411969007646277506356642055867035071208531794149613406632340565427184849406901421188796051859675071540513060651199051392789992827816309598862421127452064431881457252503024961446226853835658187193071486505645580349964903506850702311409634467042545206255311664815186279924583236175251058283185227922180364160283992101914399939743896146219612605533191416865316391001942713134647155305037313005936902047231132601221630741834895669648796816408118806757092662861635027122151954012535709971014012471568975299695098203779958746941283621294832086303480884842413808442448713213637290198427049475316652840995971107758349407748939400285750531175969397665233708622148752163340791376324718924370106592474659488494677664644609736455687143354165643204163289868617895293765408660546700288288258142932654728232549712977805365497159720478235354887172466512041916075997252689133745217556117556621583937580239988601984137548262601169105908011943047429099573224136099647587088170582205116461460071076081300992394909486669872030071999727713802539582929990878349218267053345882559895881029719615984646501358811699788603904948335759897944613911640284360714205082482516911191680793412288444180961149142800773207979770962934488468436979475976822082851971424110182692881568711026176096162701511921996069892139051035964064928357464695449757620638225269394005263591051798290457238368719055794341770184422252457968178668542864749388520181742941989571273517405280717697546338479428237506684388603342048303070500725689864917459963728577314976009861445989589158038935924364497169808656629904327408697158606231626327704217582282432636712906211774889912156569234842971376238100686956292099017869519415566206971111739415504538909948375205489319971750213859564704909572210305343848843089112237257575956664946069527173001204198076871836028739178966688523206748932211776927817818187336248134426768167336949341500058409495655914644156835059841957231046147669203266469026542831569608036202618465227111028694759695578606276799276206064320442492567439317430595798310001327504043132813672937679404273938170059926719717857682934184968823032032831216080809919182399916276238034348471314032344460968750345018207439309900129152799532209926517686142729700602343413480147131150188250779183024029161465893482144724769126435084073485631602090460592463494903708209405644514055264635906457853762170859363550313095399419661695663187555975305803630572110576610345019913613750820982728525307453868851787882760833210326015219021813720537086842694502662878673704515052287806266648903452762351268912610736947385212422868095383212182618628165660616464600374483154435721317037219475004995760508512051053285230690085456879405140878217552424388614805340774078355841038885385562773589775293750803010341165681218616482467627620471165531175981287276170638419003126042699416576026393008221222334552794319715642131453447796881854006105517616337946119512109967311893473303090509321920007122445326761103181645263086123931384399138940620657268637455847415271369632390794299921631748400594127307568494930644078396471463313389383666693225192909184683383712874600590970390397640314602176364005746326704541262727155217969831735890680878965859078637974399059628623448909425139634515134819654962645259810242421828175505031274303891115803642354015682641806445930545401523225004960831529635378638138744683100506178700708084788328329374662634907888317637446534281484358422856147300669110214178706664485428469538496498587090259411379333860612976894496987646984672700325707706347201260740018421061886954621617196963222788084085795060944062523328067695045171144502956076754926201951646367985161258561212319779391198545533347186981972231130853391665780042276087415379915954391313079746846769624042228843412653019030763960684201896913653868684051953947635369285902574983022703633166067453022934907433869447551938887200351767858433262470896221406289037746579403523226507899192462774383265158986851630456187328236814493867345216238061382656926227670150897097723522906182420445992412129193120291942951578020386456113258554491217901570350913913268522880029184081903801853995567992592345437611754390220664591629100418378014170170982449265160672316720369739052510443985665976087729309769243248152796218133125015896814324979910664762159936519867810750831433664395742506598533137405448023538803917782343193821674381371195094707784269416905623206854665200511047942016380629796084072548084603390925697149164627488018215003001425217204544794264789600302778531733138908440902538163154750015879025877110719148406147925414840170767145476392421103845649887408333351520594898461275732875131629420663604957021642986888672141436313991358717031448756233891356440658609646149919260636877099811865310049224233631377911191871953768881456978032870690508173411669489664110837751466204081939642929315373150264020158894051515466584417415279477971065879159783832237516050039143569399345685393138967555170092655553942356836653318948282291567067654418807237669340405893863506717416643659995061546476328203960385913743994987915827965070410497128590402506410146602934887810739949127902521275172387297704786586240666525390975638864401648734643138566586127440311852956003423097364143968821368172433194838826610801998636706451329980392497896366900675493506068051761272020548038634063664617930256715142017323765350175070119682942861766351882381806427244791483032458846836355076446173265210151108734567293886666645615465118401546417255310405324719200655470465881925807598612719679170384424422894445230344411288473232170633237195409694110620608884750445063914050377203203352400171492952681590562869755744323331621663185158561752669472925479125801377425050259755486016857108278877980245117208198983375056079225929124891306887932469783522609815695859060207313933363000763521453542969823788620199453870577839552247544523095253301934960907273275319652733783637430351599511849036731636366878145607852517776313707189071808736960567027903386866334241012355003220854571808986926292566772993427160963170131197047446464728409528353212612118472903755999905812590299020452493595240108570889318388929051309381426869095570978603274100520390387749767451234333938897077822042889646578012665692277541504206042010559368833152219920559375222638309092732670929477988175760606278215900151129788402156033600962657695739254170930305267899916501046812631097775155597871810741395120410538414244425696090751189068915255643028965490537984259639021637391179226359103049038921092143247389158184465992812049861659037237963732624367002917001707005245690721198922894590899729237251116235060739609565604662088761920023813269070060080666386835379598028415127641375373087511771346783627550451756796003914505895552207997746880126900436245425819750785240628846148038758116392971989199773095670791769366110625643025809862926998143588887966860800207029167931330393255642648901146934208587036358139745535961286222649789333552757523882404960480477623200976509901177405640755029399523953808884458295063603433097351858878605725028200131140847423223508398776387431338200658157264215769422031396647852957845960471021813794302265180457517213948157604224645579598988063321366737459503181721353953277294132104726224768592567952254020555923254499386378604768778846327994575300789557697361605422946937181149717311053562461641648859872626144535560954020961356833326986668343626805402174182081214446584295836102817654701264872999369432565556446353695041678593260379615842034520549561644202828012111072033403392392321040460942545721833932712144891670437325365509055196198459210716729036978196224902916212675968013417570125779571570757024856376380556478146636438354111905059517726210070810228459137710750081460128922725008064567363161112954556188479344897102151644207199056324417109912141574371347909062049365759077349388569272808106856544676218672085949358553333877745770582053137829558037265872162343879512064951015794068751595922255859694779634098460082609989523948073418789189584357302564263246322439019255260538214977099868686890653405171621072222140557429094714706060380261466850869286140934805869335301484843293890268177565161947328612763741807954267317321051906431694263636248424135103392422094372482417969455879897992552422109921410901123180400877381526804444171621905792402189971041429817228582628226054952971605505535383407842637799971696000961485090247712658900018181208198439653649184235699974961257578676519931342790013622754046545017671914368348132494514276798736547149046488042761973865302074066862629403816462858492763051637706511878702223067240698111076876847387516330664911612242686451441022878703858640998253966627755529814508955264586925954808752742465688450437334286513973925473739577541391793462036260573283290405297401906674911481908431735789423580763190557302640117697481720234262064445944634257682240498568952054788219831969534907700830874787776715665374719191099585346490626347449793206470878893807514555261815300920511416888571047179572827499517639592254028331721382779549340116742586856103366325062323877880679170024651219479710390838440114756503984998148059302286893046974268774660469777878679988608872074283582259187818377092442027157137645750869699725795667453343091201943281738105267856224555820967714342287855618243375746058061376941096780686373226991291987337565683205593322496785803609369099239598892693421574473392544855043317502089985601835158738740087447576690252620643255158897254130990106270414545646404809215431454821502407423056350571050310391963935457590901430074328826634358691655416647250500541613666308515781561084283022694610082472859976111709588833902005329949111975437331749929447896721125131454489771747527907124894540941784817108734384443020194128698905065230790011956455999713129452349818058499102719990019043629318982217717378008435616107698841990043513156502539883263167863349873330223966031193093564291104281848294322642001713537486943582630433559558221957091127395521458443586755496632369461413280710537102852453366563663336145572296325648217521117540782144970920803356053414679265693723884810124034409443430614396806744955817414739712070851782800327015728902759185921186172003258194607421624383479570224936686285251527064303655643387373466480714299654379334604365384203516226940543033602304341347631980854644695646524022941863079229471902372976369438800532917415251653411561637699936804102823092834501998037857684778007702302581793173292229117234832167839225719680878956837135272879577762227328946178914286889205794244605527641846565854364127154260985604333962418976749856785774058500320575827297790139304141418900678261849270097677859808395575787348962732741057016520883021664165578780348634961529169750625197582408929424254818050885124662660586671482334822848109770893829666423312949840410211728545585487446668701621920371945784926515696862014807449595070613157609632533055454151713971856201213182898122393133976708536555322696629051846533908396674120335254952411584613622221487109326228048713920325513275338465741849529921229637595986452876392258108751103687578669217078251581634208683288316907781489024621570137738471105195972660989205876103455179387032883793742689684102400098712705030119091432041079750930858269260761088097786001059185096334146618333866014566071063322452668569886121495938029847165455133277154172620018801192126153282802734241260274089466520612135669064143527515307416905007470917841018186058406681326148382007426501118623850523274266049635224457854788332196111542067569377383282085212083817381172208934659167178536640428961316540046559578034984849200812830734835489437447277966500057194859943819371844963747636864226776027505593532058484976546286092497748138092251217173033738033211458675850740364690086953926626200655499665029092592352592202496198299091844841189685705709156418510479956493242037746243116566083810639746960120480974225024331515680822831402159244215283574292807661934372415175663905594215494572524045983616217849148856766912671489811307846878906661633177436709385510243765944990928645571147476424880342842023243388631159492917200478280497480845740132491163167188876959090096822233081897696801413094443818937204656087514688984835794769262560075691837544956559676410386025827985058125445478915507326489139974341111140209029246133483615868822199581024156425537039940066989380730844346817604512649626331313906590949124116040107443025572904624612974542205429274510491461654788885495701317247773979843018104137038137933697607346920480736659727255708364320235589584810438133690753831427916580525249582395351488649843650302671525199563745232223392566344119979218210402627571100618768784430321392975657288677037813658619531674644582306140965403292543467859423019248943358407219005110169399071181014218160047773986071191752218496261157095876302174518882659161855953116022572622165990115404064560963136881334164860706706752668145788447397717547614932613886350706167036807341158597734656144895144719180200690679997264874153743427691288421310208533660285598285709304965922112585085261906603975719038659992344952311428238270260461059478296809042064340526361013287542088865188335098807601552146786241635918403262992946504135636452570913731332916480534855627841566812606980130355449593621185249340136158039404960000410448999685649964392894080858829783624852689608237873231990421730889041269769408214369198620515260772443832822692874565367944613099862775115230432389714114873552414720120838347251102118826500991513362030598897548652247466844515327864814416443863588618990015594665179971175443580720973705416134474861431126225229294212118872818011059992523677937105853083844835854287554110891167274176662747037769925883099632778258430900230333478148076980239779940325223019908009277821428014290051263579984803430042993242038719187509182251252835895872541098091445856653173063843899107142432175755505831417261104187539910341573508500908580688823495875356062787374000714268410500898324982907012002871968252963365703393337522313608929071518087888453093365467734507483516709423391476439987928383072780605827931824997341339945699385575332694565796243926948794580097437636535520573631567645291055047656682282363695941599658065009247126839488088930913379175537161544381060404703572059955472918649339104007179993283655638225563854044783055596393086391393916617261762869803641869341566720663850793970669676503275298914734241228740295685137764305923315810160580061840079110527049315258163947567747057716123970022681576741589577330808209437992258634248785745085026989421748498813128582081462293440718434254923952388687947091705982824488776174057814098077955706385431369442528894764277626867157112254786814836176551305480616258602004782391328370772375107752015299140242744211737206431801935027270628249502216891189052324657243535254683073282908815782969436427923520727372626805440007897782906569711087810248567769426680689927015063532546104302490835502466290801969304930788885737935086114777886958633017387615301398943989900904787304080991649249034943938478932794299980983824327548324022378399077148725096000476897140809931628090712205691266649612031971412742944949459690807988648935972395424413629719036207002950639157471208516494173400746792822258953239422979964070887545786151647715993366366492029129829833391070106667527259189344753034581375643852955771135239521920289950399208717918935653174824059380079367815107185412794838789990380904922988091661170927188373365347517956531459409432132021940797534484084846636754169011822851688883061699522253539871227163414373200639646897701104372577215619702507698353594697763132041952925153458963082982513033806218963931945328844531199802177393979404931290425583853273443530775231928641666066704354901780497132722835875160287753312072585902454291941614620227076688124699450160409696771470876721771428409439260988937879929039636883825145110576677795528739122358920788952631233940523179860384137112467178894170390142837641831289590045333092444168373317087954940686257370123379553638546187949711156955700864419240465219945873771247138504192384704784792098185023927316995670807428116280145968643920366620633418715641943390456262146651664340115480899701526180064248299122795802486229408044558064459154741631929708769624003097130262218366554518626236579788201388989531939559448485832887461551404203569805323771991636999628322901241964426675765433325992920118789252581248376804357413902351839631559521234763795307633722983793908732458143312567167847660617105230317533230373000004190061247559283213993218883118882897196483810465308670347015491079228970385038589595272738030953757017358817992846004455517673780331689526730248848564803598274159091795597620568967577278437698407723340321600269186543779465019862724698168185431239921995866321385941763685721156587243554790454011906322924165421135301663693724254916711904898852588452723905832324390623945289306080782174729836486532216824511697464538996565199158839690408708325020709624711323698051038195046090832075659529252528857817748722565577926666518147239255758979190549174290920953911114190102545713952285479987959300194559144815548669078102521709184617516969153782701424887641455163871246057333359080906612621388997678447354169924205066654998899493162533917309285198292269663514630739538219060032427321446058503751936160476116890148884196151156565134776995120119674817863911163081921354805955251636908003007634618348047625750874369180512787514216553170393154167452579053816381170834798835383811291925409840851044819094383938731044045249768203809478777503914801325912514388416103305615467063415924023779678140230908391897046446340430161701093070734494995786936470273038812839993437186568152776993176018005564748116173264249809150106672621850913347730691033866501296653914496320183609434395234777918146094247945243169500784313230364165870863858740397220800910560334496717348977695428165977351763924366699954254362718463304255990673723010642960139324256410765650364721805675887117878325077069822533063873847343041760123418179920830221649605714844672774358690343971127868425523604835513429268690405918291960664233476224745729037807712592621297651654731617009828600017825734269648909750570002777725516274695573953297867404482151660197044789417841407690082040243923241955125835175030726536721810882522099697541779824286873062262777401742487327449549619882994059199541518941710810348895873172147173557549004560293959066013274837275916819700441946008289408077312842590267619417153151499342255441274501714280439635088199171403689744893542969175865851886217512394624569872319497467909457368847630626399991882279377716822564732535092812930232710289176001315561321533544760544375160408625031727395627845943198016208467326851944142765788203869825514087952798239524399838574250863853661833255065786493914797601125988745333382315967543251096288199467030379464281020398188337678727842203359973169900786486715634862826509464902309261306009769764299118878354364976675360649551412743266218209188345375221224576693684378347977381675251611489308406696514542142911516254791113386898657092509120322735247767722732941028641998146928212594702987920344497582792843829113514892195646817052319461117057478427309619020962605863117525524635363098014495725703913251747119342154358627111823422444162960610002887802863226653773594186926844370458150001060650792720024262163368701984861946828384495841803687691658731133706925529474331735508851399455525512631533484551999044524330400067230567579024697387500047187999376775397411439822101551104708316737146816074069817286656079188048871879328104321047931802807441006720659742142163196510764228859026544100300849926447036431886769100546648817870669653006979883886465806884505547637522205684635190341404696158625629138914024291646184651415598075737787718714673842416502367292317470998534165825905907693169794918195947177763738832713937653659015938212091520163392773418521436525569110922989430978504260653361273468284454001058606496608963642577087311741673910862294254498470945838729940544029430570729463497210500878574860091279245326255942796422638117541408743775340688065017812533433434744707067039876768509629296873351812045509149577705388516215313079703889500925299758683091515152764469056841898984653383677336388133951281185486955054845999336452448772358827030648168161372833399883052356577827054689591869651556774849438578755730914774532123395197738975884698893128066503580610065205442157879649727752733356038178552353378575969188388686628378740326258645652230101833273576911557410017240397985622655523007985642424456537568680517190553577762510052677564926601595347566607735224802671216462991161198058244156294018278598346720687876383844663902242033272494700864064252704928566628142893110409017317136357913902406908746005461111889278733712319260689038909441872672971452028020638488123066373454132148808957122553558581146133448669643941786476783960806484797341970076903161522948081170205094006778397528100064119927918006131729192934230888470261818400120374361915542974400399432983397972152872455731533762659228928077386189659736567182340584008481423834812327705831829268918594374342997741746438924456519597602855742354994788149823596382951643582301687436397249802132580015862912143991310837176636220165225745334794090448443314240205276581244510480811238816671671083546988001209323194475684596857903041823789350860271606269411237536083304356230572574414790213065714853499002982253929778170257844307337274753386094267293718279490492276289749743747196431838327343491751160288646837084225564261077920053739800541230303544988913781900769429524526546028912234796906986323771265414161938533317374549477783570537036052175223114471632865393890488780368585926223119775538413563859170627534338139487962093721686637988136213597904136606358585866725282619181820686533489702866813621544227059103191020384110929508696675971961785687036109694590174735259741194499638342928446863062241015228326798290257717013696342989908142509930296361553685693990912856512986943077862413424014823901831963726809333722776449780514573130699496626162880833158013049498706445933030865051143579186925684488021882112439467805218100042260297580994453496341412964198508502759260966502746965454960008926975073909749250749590414017243192926843003698630794798776539430303519833323292374751082433625747647613532851346620585365169051880669228367225467622693306585587563071076336727269763367458460365650978830841769734420900122141517259186141162363537788283228814187030479861400107041759940207713653850192515902749578141672963234320769300747366506118677212333073442938735607872006187528600559629224965444906447551752678739215582527644140295167771523870543100316340007960560512613488765443642817001526842667973619088099481115957955674351748814456302671619530142695766255863355647580551416926931665499386174724777753510379104647178623278392420182896208552466413562298561593194655873656089583956201597680817204835362737474660376612662846935538301219771266605046727319905241558657786172618619906399881275245924104220204994510685534791907210534328680544649159041962127815853038839187394264468241321530754902393833119268860322938925742930533443183898999889130800510575600824446689390064527709097298766202879642133413322036004048410418885213713811183366683083547592667263271189912059593013622645426073822591049205925318894916342703956820480583485873074531612815314053141225082034414643670157023814310556848791882733826781610535735939063856557871046992737212128707270212379017863271199181951261538056052813181561075148684272052572150782027720762996589492947887463232308270930183261577764000481595667887551996287105252118927772550245682237521060834139969491179943623881760409494673563877036647762881675396690549611593855538787309954759709503724810364274372774249408249482836810719242935930222972565102851331061685474736482421189034169036064232686600849024252889268315016469515958713697114960987465548564386042680871561052769887524893756228350303684413740605106780263953702672717985597261902376661280771076126725772650462156558586605502705246688670535331877047936227793629758615088700194950903405083026764745332507412196210417394847601239495735916447978695648640002479688191182052066087281077471714101988009319778585203663798842168672390986659936551027576002911948951136983129874856459759008533294906090139793181266258089589154007830556742241739286471048608899252774969027325918614594610564419559840250935828969598208054790180160793080994106343847424784036236569662506018396359758349375481905048752671098124627584120098610927472739362377282893361257174526810195339592565094530769724143308511540681495483936750897831375740421984326974493354348969104142152904484834041324845019032393462786683033362487472828584761469475172254217544451028898279097749256534555862098045226514656311627855490272245981660494126362384544574911408488902478916359909698690347439340368275052401323916966372703591128029921220085165979031336616405806638109646468662961370938686025843033752292903638666239960659958654709697109638490707603360476629664733254196614016386719392209536929229040364579018243591226154522464422149922955732459329281677830700118817463899761515391372626040090546934530995201940299803872806709668324692229094958837366677136897867035295396199534106586307134801498451171324978622031265440488811005662150367016794301771181545428433977535900077976582995960056545262307291342388274554842367866432679171798605111202063361972478722778310063081710028578606707811915673306428009685046254126262429864447175243338671435019160072773079289107638118899487543545801757208844218899519751553701368814793751489759677051686110899641082297034736911339971927302772544203640992793187119841270559906379770538409118751807930799809691771645902901035227826033670391829165053938616379580204295418454861992198087112026152755861401619599827448672567635201620659058550580664368627214319328905513167538672350114847964279307043842643299882401054923665473687978412935235064827669098212344828178505474296859156950371801152134177731867175131061168159815622992232575003483126304475852958351117650702105770768148608632728251594415556388566453014214603386844594394182878847975683687046885399353404522302876293004441355883528892240505304451241428453094534814545628933610667901477177937046429784683766212472863344629911788869898477850872764201187584656513136169761279139378300255086238403454372786853218626686473338278556630148421501869185173466904493729096039959066160471964124012007290809963155513507618525990847664669454301173007449258726184131620241609061057814251493603512804275694224255208240503125533491619086515603040629561568557777417818736391414926152368589228299522360785703519580299188620758871288425866185611844188685760603235553122412910399105994515619299838639718557669223126328183963907807237557307991451394743156333326355012403039178855958079868381004459397291815174984226692759186999261073980520643702155888383934741986439802297932362686542480126862242856064319811174674268883889767195797602419064594836518738760234578706728764641160401177554666800133747825494285238698281851733665074752001381780855778725095298015037960123987812053625451838762454055844683798289676107281034988496852347791566700091716955845443037994645375491287420261148651858139034583456847367548944889731781852616496161997881617553268573652324253254748144316194972894272992690222106442937635699869699685978361127643551557202082957397903763865784784320800927277126721212689428076457544635439411127657120488432013961196399155108384926106775757409368784500541234607721878576663954829129651421603673771843530234272625361609884572658034686878705028275749567681920739496204142366992829632982403313209157082939885119636135809098331122962879006686710987921819027774611184048707145409715140238650957498631615317985181280548390200694415147705722406614282668170304128002719755795522038161487763995341272631263627527688964579679949334212295135093865215360580762595518790560931513256321975233663404554317583650863047104446784818440665512717998002410874917546790232024003514067625403812397469539398837365020190757774312308750721138530180398317709609088338433417856036296496802082092544680816891900997338293573622810848986643318875573288709710782824461975296539037083213744988316649045007755466897664568136124187642367015924054204704248807726341844891217711305134075511335142324690120903270876593787760881274948790655840730366076654184881800477210743287294810312677123126333334141444939877535100691794324724974772762099546958505810782403466584517282547286327627628034219528410784628117249720323916364184011560726596758811989724453135573333448741645036282233184107469069803558162124601157069884783056302217562293653618615597210519758564587766317142562255008312053010521835087969354322415026816468448325466019640554286944534318602357467356228483214187855358617540795803573304507226022360698597784767669510686500305361594293591726683016017748308523666948463993699542053552500825893993189743066821275917972174549889155651048089102754072300259188275342338993594280241997096179884430173252889232777528706641441977948672202070135921780649554464795256455968371514207956004970871543101782901894351029870638269793230659284211746464397523233850283753703458211369342632495553437394293299184360552683537470996691421843823074797803204444053165356338967011413286208998217814569631073023382811938020666673190236345422292860545838715260904109310983064589384527495786043693727829160172775685397920683413019194225012924469222874787105589450906518976215498123981692917929598110221449066538615634577004817195028745461962338417956881397354935348525592469445707590495647294874114113335738250965599707612690679731090030976701938078327102045624049124951633174714651297598265294103637123037428585192316202365154243229366679746134865573009991221407212735334379826051591866806704726624106188507741852909062196807731807365265154448500593514240497725816867251073703720560436057146577707355398004791198125354870767608656917892997106149684982024518483030734568724969174456225395987829706250002803714448900759012801127935506666854717197087621566990319363039481377269415959534444692233011154260662723315198451050900569324535667677896922453975282048904026174309025899134960954515255160322417406359173880236712472880479847166320242961835194354580282896990382867959093636020210325064608702882624277481144512455551373137983172787917333158905539931322105163590226960712901736345819491793651063172764996554079526428872602746992723981156801525420902935047981286966074983589242116092410850221262541494381452067964989860626919935783061700154464544253644922309255798477272361287417683294672853857369478206758157890252182095698009645607422794919647185928660642781020868729481194650721844820288716947688929499477309908203014701113302230949304892839326742443746898157688135838766882659227214893306669006784560774009019832408786243083944877090479315019865051483963131635880144052637106980828583096281744230010374471803630492203853263335949232679346577103477844698202956057267308467750709786332576008061571020584355752564570148253283571825417429658645538427281658964822600466059487844248782915890535311901047949839487280781455988986243427504613605174288400126912971617518889675246388142361071066945955348898579290660913237575912067526759385726025343796831876494747561932245822913832570431742863179271084073825081011575806297561236039036098996373794709552381027060761452356605511085770749777245950603734182762898641921063506532837892038601776210755817235380964810989897695137122984913637008961823942969184682624694539188725830221854432654706018767199348242481396492824816809177637961729527744940395924083852010304218847040477337932821285706687576642965028658926575510653998285070554103431990328996934719241170340409263711077694936192010462720521917632205567897769713051114699173208531097324993541019853410248947950836950270275057818000501656019440958012647649406971533078533509312564965552890161678559094600775557790111671514169253639966298157129915207282148373754365142832372723670482883912963319014426251147661421318347006975813651764211565055735441029216945150535751119448558201116283810411691311231462494692482331905348221076602660183888368286656504919301895618907356075742673140053701605641479007905334150139984714593511864486114514820151326736650578206412470566267967921544238394261095920803330559681551550785948810947849006644415428545305251949579060790318173114314698069072856673178040024071418719649244247116644372038378651310179955511419880851506347931543272785286480425928376599366868268624789806584590399128329386904525199337261113520553364341428621547679527979767869369171749355611578228120794313845741464205709369022303391231556892801864737548774704841710212898092581733021653211851304100676359079879463873217155858008623553011421257358037217115075910429469876621359759615708188709806252230013228502885417384591018362696080056813204986431931342307544357987999746607205242544281308655089857310296988263554185343464740321718549434468895530359642500459047679636244930210696436850888437698940573947595105757237441068255685793111281292156091640255648645382648380366215718206590784216447608513687656432246028930143040489244206121116538314068909340837909004383998509259267538996348975775755916234757390749467211813813220589819405886957244634060896365474119421163706462845363026279709171142539158170647818819382384905217370354436302025993278302602935407117412603918592488632846037548302600800021196716806461551996452888328640096812821716187899570605711510889965767587220362840450264597778272752671649494347821162043151062006571461125873788523731050534629628576286134304297771433292631836051707003337543742421309266722898046794646084281514713539139679392431600453530969271623223961378618323111975817284485496052329816022504020834764740027409981779643613813196344732956282598771863722924747061702995845239021414251797843540849576068320400326081028702768080729459498921660334515994314821328597206160689551119595101989528987133432118097914039883372111755104246302779061241560754235008483410420057470658749980297949588717537565545374633781862051667400182212471763939053910591793700778302851070582818408354030338958897039746382867508629743365328542821775653970680517614716732292827582823971212063792392802245160021867602817866849413058666594606319567164280716589224346587517336787242092227003582631427521269592316513411936798256380942039486864737386331827957577816217700040429874707317164471137544189688158531977174119392733675011093267292542767311963868164808660051543151384105832422198580493870291665490926366456118532204925209332864164671818140207851966233961112033822906906103528180754071173009446950426025118567394852430983623648656534670290623970101536446292640823642834277711110918371271189841792594683048241440368582006718462454507400741280446198537497297373115285328868478122203237131758785913575704612507458315756629405303854176173635186262180777141982060945184039686797367033382320906980216327490865800853000573473258818762762103938714746114664847527987834398231270721309117005647898152266004095210349211187521287725991949965544510056237347730253499126304279277733227294345349370340069699047436347350755297084898360125356494038609059089823481762416391028925955642082422145457692604091415174524640335326611834332630182990923513768271712203049361834628768387601634340104021006210350644279413511163209150428319656928180027975641787572696654348895060191255019214321788950722635330431433822889157291569764444598906278406386440045543901323269957623760483595555731190374092655161281166884007929728129099926492306855983596852214958782884972399176375582601177689048430823216437606179998044337783632707995024073387630278544875017740633686234953513347883284550557686848065538128128297749051803239968102802704654008575159961262586013978185643420830701167407664941596011773052701732117957585902635802509096049858889501571842712923283627198122577379160792460603998910934071238776393857745909578565520071927602893808650024074354961282170096278320184792144605712928700010164396118152294803366834605426451107408933240605238981595132200202483542954556245002200704335449991168841739197969196597295067841734093550751222564609343634210847614517328973012992735383925515541725527750103974573477972694440319367834712148196252795968856974734497758413565570395573438074686947102143523848329314790302322721615962930466032382288882556065201925825588424745978670512075240176518554537698217957596928735779866959574315546696427683180113538755228114223122723442037535714189846819090398648231012191747070453406781519554760966216283713097953819312895488496279577288434136901466694729589160981334515930166952286912119881458653605571808910010851791099267507962210952331476226595134459390694809110023684488683487550462234185381535297892765049437098672496042573545128472966654153906751846164257000112714224928247169473042687712184104263058297676502337980211745559155595683355511533353586243495807077119303253789624340298919558839803743502138077763542714284018035158922817975931652525100766260859258845344695998300654020574316151130377732760743740330384885264768744361369563173895646517256882089615977234649002165188279214856713724868383882310887313200732765557382297860221569565539360870995596352483921204021503361336967351681463827571713941102508351876351519354693426600402616867006293302841056580922459822469776228254879379165068364023940723974809379655620570409238251247410445082761687428623430171825395280557189317292404108883486008376548668164617874513691613397489312083544054797200018467975029340140871822340001082591976720834993338009790682492208421134547817139413602813645090203077812038992035312076835886597575394247984712447299434487004383214217473766297724637066792384844809253658103172867999671506860556560001884743336992141624353701341365638729836403335272204504242271504964359061478760492303976331014821000271427949245703677092743084394195327669790170033942486607098516518356390345866993961293199969422653289412673946215868856056519997820634684643992429469758242916845893235348047215355862654072666048078889199255748702441394596684008157925812312483375448368952114834037263278536871909793392478388444425336458391524048199849867520452162366537143810023470670517320348179781836339146654906581324436518783560754174294152090404856494860909333097851181256443205189868845700258292800085128888992835041977083655587710245762328138034776818894987891101081113937252814411854613360753917006206016686394153253321680473723047444550448804526777632831658704471198157015701689338578160374375200206723452643857478768085522266783357014423378843185473941270968127900122565125978893154732977087172026729841265485951801879061512738494430860410165616304932571807685429325126469055037772853146346282245918376668309382006684658304170383906627994474680660922578835556724571015262942503109526501743554299069546970336984828539656691166620487994200807148681786664214965430912475906682277696928890179251039304695879897619851831758239642837254012109750937413846094250371464909679236204415490685433908635428980406267572541941930451440447497829016844615454839715162511009343230969222938706748190745810186582247411394699428217845140059960114481199880610407451277183938632257033961211770994717900531084853059229160174579516604249705818525089840524548138987466825201742959759494566294442523372521819608711430758892853334392840407085469526606165240707761171482572485154350982163162906840508446546529239558637348233116269947898624904966603947262332453570887704423448624620833818678915626285930232998052353183303510877135946526329480326985255749924302532849191499084436688071270003743757697008360224247741114240047527225432933182040651777567872624868656564075928728465141928855386272230339967263381229461935057995279742646931424438075206295529327448419471960839753990320500110559999948663516957387106117530437472313745994856032534487966827356938402109456238484735922137801105046951181150187011925500078557455985992708439571013106691775662482388775490524702581312696790419543715219010653374021964371141545705772404271569312984914961404778125143156876884933248638896157057769020801650460234436015297289136749092330109263339372845948396460808582402183306989948491501838022517372178269418389720317141110258919849230181580606232161616104341552832006290675138457733407641341875083873821632171293236628152770994765860119843413695093043238743038321839135484356325990944276390289844637916450175935363627664280316447447630526843474690419695515367683080144380484105314226989705414497071792016492675894385715087129958560917886463391169492821422068222811831854562528648307017168218187418474805348772060844922403800984235691910729547035374984729759959533717907466819531564458623878497866833481776398161567979280398508565463456059267851759763091033158084862614393237802813008314464804297965014230241212797291967094560230034170873733352751429997750610844750069928182325606437616763513647419858221740876241775849952848164165501571929581674088128611575579234552282814782448233485880365268816230461293343008481370138133801057217301031277269215823582672094347322316155657660635310483581696904076099391038593101891247193343631809213261948630136092748470890809116890764823762715632945190154930935265311211938668809388635940793900302283870291740489434953487874154596624408741416292365348178512582871723700998994590233615979867827212072367618633067736418251469276431218677363389240569188751809032256248430556209320693834870630243033262369441968507429653630399131040026760628178473330151414120756608543583708753913972612703765474487114374203602866046102787163841169515346627452304506739299130552101959136248665395280713281084521793477328331301608137402983850202271653340622613141042329919049827726506188555666017214597074632615119372634340496006750183518389978739471891481118557911860415410980287514983422945792649267172031490062625018172552128139509943934075022547579368451483293303591172961505364299389260922815343915227269895078064729250154499680802249009596738841628249385533219177164289060612027117765848937252526165647195614795684653137720583638385733432170572974331322024624568064412223732638166648376596075654189507479074095030614395027021897968359794792589712797430529425755008389970500479843922186019941338126053532874737737970582555034074990654902359570629769257822531076963536052651605963263963528040360494567745014396298927045574728025669831137702300170818502906365497718607991475238799242300064164776180836554681410114792625142781697528407054153697942842498884743071726575362125694254711216975736113069001488752148252457108121705786891768751479751232246234925947292617007903075893439768051491645929394091201238281558815805432102430100795235959337474133397315352538348428903405615790068836708939591866476138737426797320837488954867470611401846422629772574755341065267220270993158652339224685227298450044989137671963852528325788065993076978590337095440117893576885563524385715030309337829500730625161255094620177344500974095120789882646691585307503937153150926584984576131411374982849546856561722064813195936498346286508733416304389444722411055898713308928175627372464457639783834271022578452706777244577105929555823537383293246348215072276423866576711977901580195912399513496909067272672807743269318069433386002086236844129510738915576427841754447902408302744956489995712136796455721189495278557161257062721520929870150416117747762882352869957760808186064439311060313907915623088818098377518125266722705222695430351173264933323008845409273093943687904567820894033279413091399848374656942741986195197260465879323691335967684786096044691020913238421176113762005021487843814086808222026632287057238034794571153834684284978480136130762536019041728665424337669019944587171832465737424504447877320789732663916903544247018939064817042044554526560060864974592941449973273566631916983661019606277241860525759079636626740279144609298713515213591425409842246709541373892945510671920891292408753834488638675656335138614602800348170399741315980974524966040277597564621320642117477824738179620208925415062076948809458276244052881594233735060771044560792756961300196166040686964535599839670382243027242727131632923493780752793241623460534661068294773375044544612685740406971088330000565490863480056947515976830580785926674065501355510100748362835400800472531205884311632563051553233281241586358677008202318560224844747804307150860420148260993605520100785876090774385706166600039860432302428378015315753072698534563612221186226632542193895933282894512593441008524338073044408549054465150212915660919098509315271485195169305358120781487317113930723664776424025127015980472574240481176390725583226816471817148866528708603858719351005365184130356876868792032016105657629395213318407344701843537067497849086274776585143978859130855945327236600775116373892837482875754475590245333428064395363364296808267126095987202674660150446704182396965192093943059787925060862076842808636804074210099974430920099960455650108305644762807752113230244203071931976835353996347967538752239954033924414528584739087649517850691670133079722156522329716375432197741840714340202810768442184045143445306194002954588367826663939718506662004788157042052755110616879852072296115659951986091001561946535644178893516624807488687682361057197247110175298772615481637291012714988918427868625684281928105726725072215244534884252991808492084584309019195816311866094508770709698769370347307946414436164990855599380743366829097049986287398716185056929775058617548588208697347782101827847624121312563576628798529700080595588738613752196347649105436676643852751980596922038660282656492387490434932613146613172670420065724993259075991797219274033092552490732052460392816194888281723906979639678662486388998763060964684082448148298224271674369761633092826867043768821635081932607608077894946382223659751539654974254484801776964595600306077375994615190715601398251840698267971331422092694715030255320636608009798469987460679597444723494952482331167895050655848001917026508292753365637210531012597003427525453448794370638875719381196141235984484962045401651977377174359468863101596230048055066755569448321194975497452707691723050599116495667182819602667342139764055477703043613317818770591584101814676974963671591755074135167606486460359434937915547686083551741910818263048009078593487174973092745336282491202023365381796314311521908915883814986495856759014517596690198259494184566537171954621570511495987199955855972132557894399584373604684008136729548900286548760177102527483756454066480478745029864316444910227544814673030720692169386754118767280362730223671812418873710076831442224060186820016574451022551328598658029547085782117909382735174064303963256098154397299333217406009057142697521368414318468766887833188595468302283470487577617461687325660334920104659753128591807643730832948403220881856366886969148565779747484459274047533325163924671676313144214464222413767888901422700751745993559597600177687274454748300972072937080481977382102914017191237924825639421278548544431827290950257689620590230328383644015433221862022910573583165462041573703175092280207996629810451435535613554892783485325258431305928139118074819516724970383302406168785897326954738587939747845073407180372666992811193021594177815551936200049048576935231488446822340043788872220353774921746499962644104585057408809524118615727584673888741412163508884110011910994349138250564346744800011394520575106014367316040237976234361089884298632327757144339958189098481140138596881144657021556244602176310038216466171146574624540487148712341306396629343322132297324245851073336408461322274897805564006267388295644253005497994961263848996252058677988593194702105087202894063025922086241015142092105745063175163913287620683718162154004925200444507684233181392066943568198384477309772408801601430413742098988796820374983796247416862415047280858619707983391868621115250566810276222874224798340667057761116549725368169160580971132566893242920043484890361096749101103562124121465774469729649630011769996228944628984315718250630583267368327223137656151313607962053911308384233597050589899099171408490059114871159071477280496940048941035767941804265568827988892432428443671728299305271894715388872872735559902083936895015759083641565149544543574254114638470202818529542394061673956701289327079623208514175028393534248140463027691344240753969953079091059860002203504030762913329114626085209671083355068206041832304990463063308725555870890340944756222205841463909036848384813673842626059141313380322296438068586348256969304106568946105058913436721945908750429789183843723394850070646106372779241166568507539007757537559512442006772029510938359866783788588778073171994009437280787631734964751893447594100945273468276328852762952737365113126818106926828687174610019773729785419867093920678058912369887093891202350026657727061449828915925985592619434965177829628898868750113131104641828889084463969367472744323992933670913858552551424529219203652799037332276730980062977900424569636894780614374974235799594078417863081892019596662372382519614404979381371629028903486024296239501405076395001090499705457001151460920225747646463021041683051275299380487390525972236469112466201825903958632902362346074172879374100278761934798617738684180137619836113053845778417834878436185164108886100641886145935774504370260238069131306565605531044324680810730141565115999601952410079803693968506055227585623155572425766162141280146067871693637440652540177193030670527247040701379693724018951389996154658483914669274082267132054925602002107030898952050767636627242622633732973131395949306402335069051451259573516862066497130090122671580470517115106261144664744183870388433150289563542357174511023013039591936072698229959000733065153716292449008787803074185457341440933172008694649698132426841640116036911785979392460431764622934940076723285827017025967167664628505489024357453852601117227410355226025316610808198275208494052145968290393606859061090082814453613649881151675302399668002065638428741530655472651471408598565872024450845795782995612034291080236572189934071159069828175355695049912853282381931413586116174775289800850643376243077801160348145641549914976157121174063301908085784884616567301924770119593974788732206768918912782446870039076571810234834258121256683582977174435702740732785041588589181424432648159515340263648088471518873338172859105238011949528013947491630332717128864005094081766108213829398639156249852130365254036610576882600468814911012585441035923144755498611919907375744659697572583385215680157742270835120060443133491744767488778446062698204214594571115396852006390153831485414684464598041922647834683811472071692879122923390776810228774693280202450207002550252503315400753696023745499490026199376256572217478745378327604667564679858035678280685577793045852535972819933225512609634267048367916712547325412277090501464386063944313586109520352418587442800874353360553648666254960137203885930764377648223172774840248310371606213424972524060818245191868622650029748234902191978795546342781005958322899961181620546258531960848508405052968378620826412264564559164010290929721494540520389401754020632105054888729110003292757509769189330815864575365189876565145535240995206827779992943092238106115716358162887423967721511724208552882089477150106232780530409614056702277592199577373759583305009640470888153205754931523719270088759272459757441133553240899207196238107583335963594487436204580455275392917020472350853986696526060805341999914564490479098030486141368708287855458374305440009536674346011325461653414921273613368202788254095677102181337607036413698650906243085777474381805529265345440519016160063532592721470860055772337887378959281068785755692046377562473922955092682841421659852740496194533947460274345172932961161382430299074757271783119084085361667318887698818032980075175204668151195293967804088032196863461252024755681225907030059298457293940623390070254984506028437112802603851961430068113141201194932771965081799602219495891843699624301223179410269285422325149496730687338786696071754111751312202215883171710312157331166466465150250362533550264330725981150747183695611736251007145628988681974528650522397397801950097161184572360516609668243989224585852628915325120252963229983279151025613409940610930120899463580949687444289033205913059569946613895624637075606096416180690942142976742902463676074340674715434948011124317150166264881021378581550724037420024903946702978073880836265368743368989667719370033402446133483584388490248424263448641310767400545695506717213973264832080808205373344346856203457934954954476199313133025227388049459255977947526900652503528502488121459815747478788560253653078824742157858823004757676229037399138409506566145248209938828001346270997786868686254457859422901839317500861441115962324004979895636791897766925977043986273502514961657457326567825609530712854028513764384530048759688076946256960674160503316891796710196701221354622229680488466417449015372412007367727479280306085695379489597416114855243446188885954268404685866865777792887283972235375165085403748068816684900400540570924265392810578240600536294914597341787478656808241704487559049244869412293768318371945347628749761862471930437066389058111041997186465352814972279306380626983355523375572530449253761178046494642217239399850537827023235003834681571771573579321776393381023523335296152342951994020343915923607949026317907894221536746082084667319939848070639328018735101893233260183564504410251340473218518966794792442393190141839339254128486225503295383021767588545686935778071902295765121512213534410986438881185238184779708989690368932303406285654216776299976257826186433797723394397298137644144741769729065026507719288380120770569897415120249339692543965220589113997599165041123083942856835240087599958387581238839331806226151577567855408569943285669541187138043483497610411037838552015421849894210538653372446296579698130865760152048886278843879512303113644979654293692344410082944967461264821242234317126509147353036576762756492366439937610052839826873066758485185246483346056810899346778568730322988801759627020494883769789606057073331992123284657995133540092671232243722253127784405556775772793574554001619433909503985718889324102658247375944110687213833563968790973733708385965867052117063313401841711634104514851740129449989700744635909944578897308247192205982048806833232933316687150717918214329176698529521797258385606366127410551155645990903199796110549409967443754947852840452708897625752284606571594307449272641924263845121268520985715723183591747754323879223339906456177469651298736314930419111916030107002874032690982429440878777926930143501461446969252829311810197138561288324188259049519585789646984423125954481176526065323535527087916824430091380322312773886131041929647616946759023092600747792869034087273318829416648985410953230386942650025960024573280795929470950477284674414618528777988865787611372680243276668490433549159754175705056959725388742208958158476972906998649292669597986369304524981107654518886404199333391299594371968798710698726225349423367014270806121472589676365936088148677466204819899350548287151704497437510530256834018222194976747543868038403809565816647952921116382863951751093743165828022874012457615208330873938103953971367545437201281732957932437491329890319766116542390835440257518419688767371650704337922339400196588285576374058958444843514311468458375827691248281716546835682520787100530130855371403329434084622459404768262991080689755114109538115752455839310030058388263349772537677540872267191332474863958049244126610078241794510063633409327990548634617955509745206086346919206972179328226594095916233041935538638898731420662062732941086997265934773000143075067384593870429181885973954869640412538148442566067697101984267261474884393231953445360273474439640500998642436012615806178347101671178212692711968042050271753006651968346351176991175110553040805335789912251540167609440248736595395553710026890620974700035565953279322908352174147510400118411490255539816292690360964463428247513318090523122666873185440000570130151470108816420610460458268465671664620723690450860786891445331786574125433891616650632899565404032607829850754736084007921998817709737526643675056986059844857235446745134113847899797512284229743435370161556179771635182551378525908974157844805763989300162185837687604237914873073137243584125751331586212465377375312589104880309788704848337572015292898553120249213907507721551401235493688846831037928810373556645640323866373610120750683852518406798960789334726464130772080663705672230569385849217098044401598529644697934195574325658461767675053545179548372681186734288612864736858471788289211977215999441350887863509427177917047342694669520515314961612837876446944266940503892009781775285617360481551242601924358722232025548998665583741021969771140403602359233609939146870266409561789140392244432646365186141541269195028603417621947776466574208857786902949911399561068816660143762271238016707250247727475424622696772530286513670789106256313092529508161746284729627864942284475555857815843403617018230469756169479046642699417916338891098378602444255682964771615587639357990765265931212964068458808251626544102724642819760343540101470157788274231521749052542991318072515523918124065258871326803152008045473609869506192124334102975471219081450757445638788513746567017222562757004774298785782957510432986589246007302317789271062612061305496968828357212382036927507205147007001379663458925345628835017254666779476496372224374388830474355059153038051744021594655749171824837746826687721553218483658655821048152982922849483474731631964389925462616582732177278669703324144786154263905624154528427816207257435272523364084605740621292353172710083759865355305205857536489533020672178497958786412315397962792561371346810362198997730522481182250061429988521116909978413930428301735503934996486600976710304883291564852450119841162517020129740245962515482268263598173273176719046502484137340785878388001517801312797914690070739434159006891732827646786853233459106760654437515909145749453287457109299568917037359217132066482843798241375131328829122562011152912740250171202443318801501266490545718209475635109372586923137055852089467185027433395811868263633459393243234798111305568111464474895541592204604255035606919797042439953959129759847328902011753382374530059920416489341861460445901096164903276331435944049766072948683997809030397768169614742349779948349197611630556170481540031358428284028710511200848234722000996020527617936736201168213674158683842088077388136491848020783509257047023521419646479118340928535139199642995417818418857372975470274787877392287663451690627920596786333244938956164015046978826385113980465936457021682425351737122697281151188426713394998031512074303075575696267219790763131396495939439051672147451104905999962521180935458086965581082861968197233641159646421781047431814913091046431741577669859137818754622911011522385461596450104898329225828542997267272849856404893416606656434174282775405641483025369438117084124878749313141977324684104505375337202566163642513833049760321477070413394296015278064282658119559360756449583048577335084648257441861542894199560430710918676807363011949651015706723680118700195525619190936962927958945272385856757351034621902277442261646954793595534118005143687449292400070034703841405109680580609214396575836589391125084761421050312487997506302484146144888193293803986247925595790901496381229326182862742630302566416746137241379785822289703926901330606230275153194951758134359222196119333268448055992486528681997563795629567097506809901422149209232922211756005706905654712252831223939564490688379685994769639324216633271031642612612241874975715476994453588471762820786727173084357831320456883679547718238378357208779245187908895001745853654201160260656165868295546090310523109632045081408342131157325120517147341101873215301640744536268456967676471799281680508341837109509511138127933292704106887206487239733764949530951446542158716164039792540148059909229573111380421868534766392020218832556500364162448408804580150028191036468592604488343126611611543788042566003497152986557527884456275813357466310644182248943070140008164428209091137181344656530713883115193109099182454114397982751609837950221311850184472822740515450729516423798937697925196716151987270775429479183699141718494679663607937806146398526231154254253797504979583403365484670583536611705269184430305532866376392131879034455970872865400572442581970645039010977949665398871554592456473589105563275564715976735716449504286877689938932612614204699665835415590802966200334096032648854709024150184642567889896713823760882352589730370821014338884529977660995435130012154727992146686539438739284090783858664753495932819268746057059208073327626473238156084993740475658353934715503606853210987278510756829873889729475393292108583199505500524965357050706472580574654114177290300940586174716265046333741000398988722714575621500235735371627710753162309292406789899808647338506029293965934085116192483931353373863390636803201783795414149528575088001080707781824588155881718004503507923318258278341121835116966853960320442598567870065657568211914866371977730738031127456852282732404811437979624260326434799325778406143212807535128254018270443745235203951959711745499920467369202880921969878818109005582004334223331140506454648134262636365559863476836381845092821880916382283714204457650641465821984314121762853785824022203859531741061305679683912975924796345704118977477682893586967798191594369289318841669699126640982381369629341590638928818664909746029466001270861558787304789998046258386171809903537865300062860929955032326065224514827498912582742629567163028648081131707533477983507475074842895579460264020337387986506934158923781262930429111772815722327882456816921132848970680668692925952763869395522285846564837016834017331142641192088929675285489886953837104239293599739226480522765001693958354315445721475219422599341975942869359744515299334276992042358714767964104512192806256301177437652569312873857078942459045489707486576723198478296703104523338426894112425118247540162038672913660289871603829549687839811580827881589969058068678098350750593352825323601617093879596499591119936729933561715883801863182801206476463633938611408221275088477112896312622254271381266057150741918285157707537062287446687289183780102255583581281525426479316234101939557049406626842496817048327636990013401788206756633804355090806258514771870380295564370027967128814553992827720459801095458141429348911677588944217211519060302611364479562860586078284608379387718343852962925684846512910774417226740780693136957998246088098636073542810370055978434762985272418235976712350373308271806023186487331160830866895169334265439532436137766197828342883956311837620972705125950402795818183812645193326846725629601445818362185510823979628351553031091850601774117711401702253175747245422534755564409324008638349609103380388400192846876175787578796676722637573961832306144494630373369349698595557169017497535618016488465412011471814414247808091513997575671059551430385383375309486689910787866803501202116711127030521981240795736089659755367777787160001299215525974992488688160947356385654355522598667884830823021694595924354623217217282726280488845389889702495544162306703051745180904465506806317309090495695456348129391948906534614007868082304802972006910450164056206789287774706008093063673284455647924028919980573228973534465295371585155049669048423170747013824017374463189906611517594153478706149956737161216116856463912315958526339412117143706766642491309598532673238765606712797929492829546299179532873011907530020467498329434714709741890553878613358360299617664003975447239363458376486547280120012670998068623655001941041174333908510506051860027103861290784264437119425382741480976258430894055974044847535114783194259558624810644259117354465319409639909051045574775853518564860320324769201631744281132367699962481584278001486091099898042590715559238969363111987082206994521165762013468365160071601113276253763353436275752203077591336212610832121485198336903445124053333199083695137069005929683452898008352308059498766783887659290362572315653564543719010138387343189827719021637724006190244011644454337025627355941603244149466383938195502982328200749653968956517236906914432432824586128011500354472589192361842188096157425917743513723187136278047877172901413612923384582317418245820206732918853234596658852737312954681704793002204936138968018480370879807744027969258932698516100990033880640317854002591735017129489426855216144436578695285090070250048744132726080879167959549623884461786703643293782812319836011393997527634519528809719283682211269622912229747812112147105698648142373638202987764421503821710524750581676997736406261285375952936372608832305810179468539575643355533631363810773441781589955204425052201723455815561569370844315973575291642338457802830267397347574097894734845493139053206700965324700352231077116927039925513752638455489763468465561383882196547207958032864523689489311867432020439674918791081886699844199657570759526989832745239213300158823604530444143475775479146858564617250429608967825512926232370445264105180541553361940874230194302366438861794875856515714432396799066498856905230740484917365109982210855992732823658514560677051696412946381657028512305546615969137265664577341162067729803968108849296134807259490775099894934865151199071308450784946040883217463619744268705279324552029238673315482756694663992848106069947629232534522346806682387887232074011324676493858428179103910857498791303020099494499399937054969161896289860840783141079017104775020751067419245359570571947103290163917904422018917380824103258867520116638930372791359574792422154938378237286374195445874738046807887839581183041963078474475777059320088773480498475054460299292094312666092340232090787379131196410726720893126985610472269429993268933874758833679598406331433388189516333580810681961866484097674338370015499811813862822212736987901979261949506120007109902803722439520751743252694868481295352415649408334944142651451559023553430308696724356212146923543960757639396370851475411652532988146292387762960266452292506360595620489386250733802323036545899256723751852461921967720487582601288895140921020147651203085767184765362191979747225527968440927112761301335740977104149480136364632737375858337750032235045868992537908132934178465086461821031510570151047554021345206813351886393478740493618155888285779279099005658415909891909790149277751159710706785320077845790858029099948609603657502964663670419513342300470924620601329662149602098114808004580365860683389796061225444548688315315863444727590232322399636010218348083275480635777676280031915672233156907976456619873378018884042581064903034136517142422677709482797538397047858744005733142115149673099321659901330241494921922460797908479056254934361595514124989505794268535299455775925205041299165576207518360685073758843787380645516080059378854279728517279518393372978377282134223308393890934832658337041591748202166580739961670534952554790202686553811159977882108111470455372455345205930356464716182289848614583687778674367415242668918322806942927284061559463165191948989432968055739523871548367735070049099672626931484643483935293726668245298589468351045626726973699404524117506142141237633680722354599858436147558245552595352123880438103741233334827185530630114154635023362547436756771966769670490846955558610985430523747650605026555404613095356291341492580647304769618167322592234367648857363760927997121815385887795566594700795562202200904476194389243127431323824852595970618621346550136357738045388588660484108833632153521532344222793674530533320288164697124589474879536792371817031067347998141971203158585984208034592967823934588989819964731466133380508327485999719155701504256953900565906712705916199643895399386931388188105210647592819884689393579846181741472705727651437331419123672644756226254948395735136586091252936835780251231503529776084871470556815990568297893513034271160078915961451622049983573389347131251457131620954766675809302076370306126536451864021690540414843096214227541967507098139391313750688807906398232871754509389761992493607944686292910393985490175695504212629326443475415334695969470195925941422210065471243836737837167542677580765034099302893490886002135709132248733318630029198324259466798989452540976751035078727710333271592691891061844161546813323934913130811779828857254391845088867963550580855135328965295960490257682539578967794398242386021440397150303865674878058296911915499388566598867817171213293581531041870866267961980324556431119521241829356153309611763157582934376194840362827388447355556251033699258520968163698032616025751970388394657205680273048539070403256275292259627094740510991641191492416068615831969386694447147174431405750250039529476274988574658522128680500994280034850458944048608820483645487299351905156165172766768947949512507411937698146545530717925987573858898934707714150145724272889519273462306583549480858566682888696529525041884166358107404139780893355297671500743518664260460942257180730215710392791743075291540547426284588729199005944041980124340748319841000681527605155963553040470001309034530608622705766512795359245172512840720842873296632121946063724833621424702351641534626760730761621856871301578356146413215015063586673635865343789138186285695241203506432830591048717734247175412507592574957781868776952825379252159588386434088193024384937971112534590867872580797025192413740950050277870955579767863390951411120292461089416705613548085951358268890363689784794718055869974224082357311222379131580028194189030117174695428422862909982028578490573795292766332386428704711039594389486693091110463180579547060342368452253769729671733590660276816379414032602622236233604968555549610807867807332724297479888737102823637054890281029663583370286190260459737594967529498539087386288179513960327328527392957439212220579475282366264090155174854647765629060705885849421076018257461132760613037307623027863118219528967291781547123867572314152095221753677847359664311303437195616572895110580041101260729113891949318244810025772776251688528417580696157674015675090023939321901948219635866644056475500111850767381731772747081149176599131336481623773583233041743498169805308786229577098867835284811933543360093342312468423613569935598492336725592139186700016196634484827648938832058571890026661195063331010647881915955780540310865038127324841424576202113323090305098738956484765073023136167459896557008266030519630375635797365589060989046340329771223949567387521672567187620355828846683871393723816162572870637801503526240558695665734297489688161141074165551535257461582738525696796629399156621244813619000505788669741904176190014724051698348670289403282134634525836820918124778582952536624887696569157871415249325370696816611938918350287107185084991038256370403503234939388082772183849182900284516445616217299038053335614687181661974939610454707675245441247263843810130822296371871036269274084329161981257423436072380466843225517890063549450820004739315362310918738042854290150154483907856939893849370287894890697384628387820445713729821353950687323789943951845753852318908481998246480516994159768927499875706455483094866622007700479360829279358379098463878851803840697020431259807792243683489319031616032676718808604700983702276951768518531697758425878550316479308357934774400925531300313044154889098302017692128519248889062036202889151574535410116698689474590371222525901848319275681756704986086106933529193383829439383244825943275662221911629415359304546847340264231136143283232054168707456323528999934881636831461546832996865860797751469351924875012746015498007526316456607205820002094818269094381675449484212361931630992487892765051276917677207386190763941452390080449317867694056764570509576769300254946989666130022717738851088850360331438683120718101996696512603316382197744058307302437087383411419132584102603370718918848597829169697455173694425891634489042689948722533516530630673747339258544615726346741977031896571963192451289994574956484270236447420084689011102733289412740542235868967350421978517107735542529103439531065867411113986086326035595025355656468907725624656494126680997721499313487095893309818933437258291737658747915184269031881620082803658662148550429615387178584841668947116539895749066505225390223066829088259826003040388543016462991450775613392711756717283872585137812263955080986554665380110205207895469075919263447718271242576449499149779217643433573617683112458143789187440450225906706248021441144155992994377065458150168088019934015541693253073100105822409188946353670197828144209497291695502841788530067824624666536153950862617189263259285664090770282137994109868848510639181944346943019296259770833976668856576769209387060322401390117161331062121657408557241711094492715915204124477038722545623693458465085893817784787995852912539922432473040592106226444377611273110399409725447170741661453423028366421355447020519538239414366452792370892987857297206267523919284775745371225344320660672340025546275452875646300280698790485836905691470727332732673544401719071534071609615893813322764090244163006016753847286320250515396899731960388882975837931781409539374580979191486336606700891115168870333983671776366008528198776181468357399649817589122553699400596455117369291673198571453254243097668521213506006563604612110165103201670336657895846515548421331488920209709144722887315092285390779337951684720241461611915882576806620110578474402567865998265094042793692793575698503780816953236864029605050582101215282541810292565765549159361738790281216977824273249782299970711988806616556678812749003212247960122879731556158112346243962447969954349359307798133355437302982408722983901840558435078954442799717628605903535877510975906980348803526741455336917120727577048952472480669081496538186409517666223748681021551873345995105136050576889747561187671405932572579696526623819882250492236518496137536943696809624074449574442847280620958332739941813891359185059561668088529783821902934677749444418905917420992390509555967706363326523135285099289691449598767969334648456660869443265888077698732787330227668391421594977958022210267429658599287892240722898613731380020182219594246566186118274688747910157278464080290428893339377495579103035816851151487126695253252624330034208618244674712931017100383671929965004338907832641752894514198296162958158521409310154498963386417094382960328442922017502055386463280782661378613760926948616849272166308279550802645585594643911490932239338045324595915581141167225594642002216086783075332731726927371003053338867768211204676599837358409078671755119326200869051007448725164334602580264833772093441781064738063976344995221181182018648300359749423598719379396078253564859176662423600524233845021836606245734952160337963057775311674939340252281967576024737710238977179386369059075592999962218212191029336116577829836617867406302577628924577926388574088125247625380703231287069137901162918991357717601951327695945435544346735936276781208953229198979576454505287356218683089636925350606893727563156546236386615634293775237621111218436400885473209324345472658797856977988608909232020980993893096116697306303423607196534691434387167963004833441644866821315572472314466076661107904655826977413309871404327211791329326428661028341397386226617063388223875084389120890211135676428906227395400911281277871633068959538904508336285048288702324125666265663584494272072148017993619314173551945230232342370819098158432325382073923302184206594422180275338360587180300947192334194864888536164988946925218323342094580729279153922309463773602999976831275394542339157560361323468929121688616962932279120328225539463573162331835308551437476181932157364974972560518569845429914782733803214794184983920510719774462076981109398025794197932746095451098321401739950532546529781898274814494586377594834115642831248274325443793530358138259235342377230028033588630951579757896531994771548937043297516882144436477182183006993670097516445882824231584341841381733135939213158976322089957110975620299019748630245194408326078706499598651938613500621665187262391047648321894865389621540599395695727034487282499273226628637804175194120554632575326274893178650688508406329393011192679858196842726346900151290673390035000944476855909060035567258965137708897528350116157871278139132644332038445213699505269732089490274411482139923518549307049357051220893271791232645687320428173503084564288469823955930539244546688520182001416083792056084226004684728993883769862718084386312159442132800218560959660221911865798061592097568278630684348659708060586746596357535198189571399873317991881550548345269383914947153786225858848135882741888290336954571554905101833209966641173440952094851750397237197760525662210824541712364675064856894147023906508193567380161399093220090820738457678536568425669496083409988561322147327723497828835388188786788525154690293797336698005843651025074730484752945017535964928027557901838565273283458420795270069856502292586599100635122932491166582111875710772834429386577775857772167213272188121143537388753500680234509286297061207457203373392032737592222721617453216081389446651034799416745438372518150924548245606399468735914957125087980444665797404690628052604155739461414571915465141499892865745829142645068796972577838376838034588447826955973506467817051856768182863400523455861339444097712435572290286269328239653235701919229403513612081543593478396380057603406356355566792276372175290924985871691321127008300977547584866316983057504029967204400501290503202727387955524993436551086477802483152444532178800723364330235296102474465719720953363503107656261856509364663347842623139211866863381388113759164961311733953797444494154431778085644471225919981154276203919910395782363080666688220067641430017307067050640849949331353184058455742191348919860269735322760556674606368925709437887688278180479381961520220719063773238748518594003085881475734643274229480419952898810419300254766316144803218183636835310024834272229060420132310426975239099135902595625126882096149600824485846208923528152643392218785683186197288755396832085751970449597716319579784434896903032454885796193582115314143538709757507239477909655215114913102768808898121685055008629523932197684800309473002115845778053037502460259929782911906740412973818395447501186034815996661450582926379639737287783080949870346713675271175758431681789787920463520321169044054959121559982473367422595191839129117147652693255497823710201697179969184602951858448599678123780982935520590258806701435291185285510061854662575747446241956242042183717038550413634477960382528450153225381817735157520888312075433214942805384446751906385547086986409167759073141286843122107774232716034652630436552045717033646025162242947166770124163842871497162897257334522632182833953846043416197964208881016113237333716430383216062682240256195279148763345051400182632589157292898417265223562804701488536408544561888418396771340553862979077523738630407545687155122116231346926883976763008914341315020226658072977362319042581458764928701300847313346119344562076917340486147987601484531047299612658250096130787147391668813781601465293598489314080210528727720791802375394957417786131852637768041541736380116893779311570022471576495614780540960554770214125474485529070239704471732456206478120356601296564759094742314650221616951133652579911624299386569053208840707682913105464917044563018952199908841060889226704925607336422383348869849357725860353362998294754030919703108360347944510801412679267039121729038453768957239358361002341556201901433642203920099113892749365684530706302907994123738137500746249991972190118696296360113622837608400326201453872176681113707738425831497231137273810231151986771558998903493948606652506972364883836172954395682667426053331306463939298802773260473693513967175874613709755582250831622169534518387660294605543205691688708341148440241932678081441422679826979684445401844372621635923724273451290595424194048005313610483047498987616072853717287736133328659781890342677673959025166719144718907011773347495355746326821378389645939058326072147780776224133973450026174042781225555592694428838837775649430275219863663102358295796762465848502359142056454024019300621715515019812252712429677891979827881444274035579738227000405901644236980626421501245591015402118100338074589759613737770131692828699181011176483135293813964928069610222573308276961716491709790769379813567052501984867377160421190006212148621487420980569857179628360179215377841744322404166946698886348725355384365495424914082488859307324278606717131477101529281596177951327201981036379767265436007480775697167668924826909919633620964006227497883285405153067294977809724177691551905577139376977447820872800833609080223702022221156527253927515591157796935805805302076300338727716394997823839805486983799000948844928024608193217780105446421370017839175000472761615118091376883117286803240373210738997884152929664827702483650686805774107608953118339042075487686113916929712023361253060241099401052806470332425692164926490927180639134466551510361331634841838024803081594697654100254167985908405217610149613404572895764476323635068775123147487046039919306254607718301727795164034034516919833869262890654118418735622154725277337741700318909341368414255136885066888255715157513424536899521834433026985309618940146752011507595482934754871021248433104095043211576576487900981826154346855782925228780105482809634293676067400207450457249747110198528652723024111265192285516441750403927667153178547741056367913705935870545977647950743124416325671369662561622192372416637297707911736808032605109546775720347367116257072879045733573433660960138024190323166104124669408260385851024214441221183803210437823408882512265812852752302869814787634111130234003203028541877870215469658713169162432238034878055996613286848673737238255696704167357319718558697547832169815453183742738102755681645390574586895315552596348543490299159991089646630402848126911748568932995706073012801842341192537917545167993745429021997664983122780114258949168970312258527358288320997690095375782045351379618923177777537880242403824806582431555386166689651236292605642011805094935938620977019320179698241788516567533126810684873972945660044719657898805454652478149473752044474976022578703805536207825889926735238986776151485181137324852263632870714866195993825911690457409134929548828625750151112480511749471165534624221693047340016116837266318779575575652226029534649944398850507262434716080084242407445492628221040830818307106634490193902377013120948452036199342546905679262926656044464889019765780744569219455593431702273166377112749848183209578402650715936805653933208481844236201386578759389354994922017814189363993347417884528795675559560610351327362224261659741198720471434534378365607457726396030236085121104576561957891050939568426098308823984793325470393799822915572132801106045628548241905355477289694084676289651560882007538197205008811815793991667968007440763242284454708584212996347519528798466524809342471520877925567943865090975101437435771080890855644581220531246042948925026690599804976813637638106155432593640916519760080644965626940733692597034714255587486956835312965603104029380301953631786577048562111101522415752545782929998595017847600209774686226239562133132519806633027784125669041732962736802002464347483078051787834919001692166727318111339302964715015383370965564004056425151015762462496013963759974044954355040258231494825049799858945379688383839942232128692741131663500647115931073181405854971422922709397070360528524097085237089972927181830668181836846217180149136612519920070096697356612394434502581030863219092302003931831461832624725674216316895068625159064048400968573727932923412993733562513517471257157493371995991816845371764303870024153226652873061201810896527027192578251840417381920568116363051543599736531929598117561806815095458977855747172518902261871201995635828490805330477363570330994469774550644767677373261406366893158260978291452665962649743117243312085722313654316892339382387732051525902679650949576319533252584056568715265399337508653934880476488119243750177604016477702873307357948771801169498472465579290497785888177532626795602177995863210283684038024179969549852613100758462888433164456713109114285527863196451807641402486325649177457158530277226024613052784836574706125652853619465554997667025812247245654281376492073245039890937365780249966200369256147187523319818671735098389374226534453269881786348268903823513860037618561703775421029668734506770310434295403506543775277002157813703372191515313494692076450739690217031130237045807778413006940670798337511643569351445045671113964228305931349074690980185320162214091416563395615357470543644859179983252434336887587804510066399864236736546412306682117994162139494823493578978601550352766897570471853378723348086668780469102351551018858885590531456691925072297840921510555048800031590263883058534447807107430478041592260864739975767167632219908961298216845038217348133766322825600434663346702996201087910885471124576260840382793371050877585261827003253898887798322778659700383321304352942115209155569180036531035815062631921091165632344152196503886045720604214335167589125777361717111511083504668581279385097167122997141223641909606634833942758070737411920991472996477420375205701869859725759798321853548663913163603107549872109810132147447011969963851456273795529149006182956042257335087914305569005752821388652313558046955022580804840731695086293889907097424500829399505602014438625225137352570783056519658300113642350780267831212214020249576116576096666314347942188106860199622384879037355869961211039223548533228261222313220167085463182359375352132813503354571774349014088399264383775049730974443926433752859495003280672960222568040173650099190044121166656070955582470212303351392837554635875121586410539147831804388708118224632251005388036948676938944868150662456040849485272516386667278053191059776549718019232982402078975441826590193749278665003140825165765079353732085961570366229830858791278043971680126704073090594756677158755254613220677269516226337353987081382303652675541680735612080549023598808756285500742882349010129874892897461749061274153173012551227576731052521621005844206584599725637987039663935073121033265527841201382039287572646037755777752353780098511846284279892031549199118047620913854290224909473230772788106869268638168721530362109398605793270196210400203246298919986864698505081798290722171585420157928222776186799387063850786869325787517941378780047844823704003930114339225917946966194347839535797662182384853665346739670289526825847562839443412417943360416835506504526529381658984900132674352107910936372961235172167430142970878066809354892158795414815456450617464639921407989817393447676485706544968822290106864355120736356294195677682749625622427134192970309169983053940198252818211081612188055936542928704220474651819177644478572844618879066188445370392699847851423992563300755740486077548250167714855101825306167194243288973643678047208127220443064724004604247979129707355316862828019567420108251799719443717896349185998168610448175989285745888632828240954925089885654943880466679626155374460898658128872315794886508876130844313529728340808793263542220795781115571733409930247697455656145892744625695989094911603019165912041630271614781018876956527573295842335755956802099712516778005463821569163805844534465936962875799637664084253818076951277216915427679507361458742106174978024289726848945004281068477263899197139552397562181215164913969822677419034334415323429903560328607652089700844238781306311196635608688151695344500623605356250821752855499217031013763678289953913716061092933851592877493069645581875326731239628341002287209527393213674685269310284332990362802023136395846261309593277412987828315532964543177367919084503435362396780331375880812482485996174887021873800649437761874262319933215133471412649688779388074756161250530701071223028151966560651908622211847573045658517161611754711788837395772352678022495400399498021137366225281305255156660808982448495359890670905293054607681675815433504407636349950749075783950031503702743523952477541179717182083364372332148313138288639796845766616872270204023432789118043767149804658402672338962687968913146294068309679552742432916640366707101431210670720745487845679003009491332483422137085616964380382118734703070769661332455475671430082185849412859821773445844125129657105870989416875572725999206832912343976878120377112278055372625384663210474984763594233394274818896081592588209613880367225301656137817976730185104938784475398805666051001244248269776834372434787357267275137589963825370037395098287307883688195084110787429615394666214604754005146620105030596232407356225063300304714241461496142184077073631950904987876657421214128153367837768489369704907508195422301552893906686851457722339784580756413282485665556784131077304903519964373527039676796835248039417656866515355804353466709227359820549463842546195333688941488255602116675497570425427869875939068927285765555844970530426513715333345867861369781524603139776662050090839406541531865184894806967330215150087535959781866479114773583829379399763841310289048281614262387076354741829494558243074314515643974318730881425202611489774195501972531603904541405585096415508905735917607416352143419690934628382399696008252012196034046606670110378531984452740399391688345374115458819891053602996086220371718048724292426406754845388826088344914330740161306258575873367606550188059903891417648347626690316919166548781119157180210110016584215486928205325298418822420678810003952137705204343435930205989253799353834352773931906964900746266128645325186118906275485273573935257803057967901720559489954422667806575696397458634976439165772992625283009730359531061604166904531902878339509188453233031865280761949326321389591313943686000126120296689842609897211050816983228161965614681794406769140820789073265713680784166740109287633561702743760898187201260115107080684924113922619551153588422737316800742679182935684371376296207935074197874369487408949500191669110076084834816529994119202676933130274535153806833489564352627038595698848569881637804221505815195148831682631556756868089635978026317268110514152322879979923778210431156875557360771014133758120762303146635989081023361519502757359665920270771058858588300486295975021785910423296138954353389629148493278994369945247286281559881113195703691209362966763714173342322218903576088568642787544104092130203924012326367804298481145682692992125556214162370556500314136338873709473666404430367520600468832955680898382882763480045184663578812331886202217741951666983089621760428264846364150431317130313812758074070418172721201347098117081429769541956919428987093096636118506765911019400464939911627685346787986349989319725615148196123527558382768828790130044929469941484795123220384452115901144352253023523878327446832257369091140500196553912141644802357682960077842796781385187070288389655359619914314300012306723729988018307259317451135034464775235108150862826929046650501561682113021938867195013378436489857840218275785495361959958475488628070337078230049228434972360410355582645201117181319083765497368322540611295874634262205994409967439353235475918920135511171112937941103999600935088587365444062131710996509242960094556520040124584841052347083020237866566444896526334976117862714269569804119601843241103275962282061153219822974811912808690509183925459500486239180625254246253834532984923166312907534608725038030729512796679789770934175374247950026227557548655895638550228473724056736289191109645761634023418268370644075458356170721370696551333118842531096796870589285712673992443802672503198051531941084257186299315545535966728396939901975543783620782658781816487219546269143145216438227853283195688542877246576030144907078914448132649317602217786524627646172083164887648545188467248270256108077177950233277506335657146835649500746582285091955324587068343416065897296592726809595548702582036074036749816179716806365378807630347995801561892568699781230258871804455902870546597474057876619697971024231578963594591815669331130614957766147110257319349474761141491027664005237759662067391729038372084807920158429592141915829222644141619094900612645827594571559571818926267209604220813515927404477456219944281939071461681684046103295554332424192295548758949511594445563886460957220912890679557973852014494533324088013107484629187324980221794485268064265815094631153164028398695824969686194719708474777191257965407472121352267255402610699029664002689998197255506825389335290036071208464356110575850154660681747213942287279620997659150859984405984638183590247924139451244448705064085486956684409150410568617318997029045797132414678943100539392464293708374171169884647989978461752423560624678511520946253375735872527816615605038140434261472371516115511610082180152317762991592672758787762151540775131739204564400735502383861548855717664394973999211181072790795556812923571129092137794076966518072594026560705819440918632554977790227493571420654167013949285903417564190163468585162411377352853976878277648778421969829218866694770441127392996063153183087523276769036441207683287622202305463216880479090852666472082198267978232533691239982565589901326086811650657853033582708833377667403297946685750337190364998130363356747772073585885549252312546814741107231293408384877938803166811071088646902329355602907151115259788389182261981255576496369673785639748705087538577232563047105194118430279946081116389333703732387164824685931037320567428808819868659375124201118575645523474405445957954546201635817642293222948759118416352779348819398184168147545877584639234147577959031592956826557327476631429238271639030172589946018791551502004075837752684894522970246120761009014015110390484124485358339842229629390768233902068770382696561535180570519852836080419622675244672450559073549244873637175650483853344323859132827487104564396536989181515729847489290936479171989042018972587910776373511709299876469975830778372078435513364986634275378798168192542205668973638009648230105633527156337430502246247803996556353469579562624817401326216031558142808208467272185972930171764516974378876438451791700491501901129312446539746090517404257202600626393999878606361756156402238100353576690139671127854574939780335356757481070413633694473431727816990753891314732267599195494883980213326498782600996768456673466350528028533449639583473851425057857246043076016485862528216757267166234293494707397258341621558121788853294322064778667653613645503770394487986291952149304538927906056406441075284170081442321035869406995667894800087147173848790099700311130745828916565487072380174265942107345046685785893694969627722322738119012789271852581539141255790682391085096762304193236118532181141783891145727027964882565528495947457080154950299492424946160933796770724050272133031001313850069399143421160984333779873448983396889188149815477499439401441820348115166775863342093073288663711362493339861061058659033836986683301169719612933332531968603309415907893338666992844925963132714083828778236236769464939808882893407587697585180762597406820518057729088241861124121098291109076686936187929172878758906849165765809261103828432120888443038520794238467291511231615393198438201126383099716892909675976753372375264247524345953581015354273326180412547290363146798286713051510441911084908174350300631427739856062914989135179321921654870453962429019184799461086668695491384965040404687689620141701556278501996043031934021149011704845477547752158537055993477175669362873729499282006289009710063174625456388118686379366056993782772633047953149298742021796603599963506675801344587415644635204272368959226693723573451508528767689844187682052691711905164368787898822358092874692262278865546335879868608494256101619298112026554547596810448139406752894555756092825566319441167822614644927655356298432370476593875376103874807710917402058895647141809809225779977893914070212730756189626970119101782245814256713785988073715467691389610548087410829748640064763624785031539735865627215386555145910714000721933863823419935663034545445087513989783372713089755718789009396633678038121670031698433707174974686233031550983509378283158167325904364405207338749734204960592262344832342872531300563288650028825186955242874698137177514405899397965789945809487238554167201355684140640101702664358462056606734448965317550504867881644782238821507835386863147150737256989079251778030101969780647541864958622631123797054636657823311474676400703192068277076891827696525220688890186039860826106343244962824620259962770628012977427121120681328492051881366648209275673786343049395224511384063280185863378943983433117891773821651492183434589837970878498246012641522418979344093632401828877615394133893868890725906345172685077192483895179704367486391760660350814254312515961901370446357576120744438910418272263856095259941883927491246893510525013230367740795940307513585793767004182782387628949849532793834761444483113315946213241884453327747413233649944255614814824844969837128739707419543376213730148470192439204623506292301870855644764491273536519640794817908198327411531914776452070499465368114787283431732318452814545463307413051305453299022654869298808836483400899750403354124064083933904278428706008798702341216177842662701540644323784631166025555246696666277097365034157605820446105389498768291753940080616919345782053782431586643889200455040147703456387464792898505338773708200645444681561683126643370118134811398942490935386392051098625805715996114383979427844972445749454887591630567137661757902313913363471530871810745973057866229807433955715129601365426177412141813172280592938066165474808145295315579676087304751237280570039980229547998888778661668368333320494364451287468996939757879693612272502273222259827323073745981917786301853278818955175291436178569210290960632291414359049735209862791249131634192118597073990938021483472775136406137501740100480627411693178125182548255330098972813516479274723511700876143407725103966978664587095258684531732963855758734441555495730477966386259511649942200010060132651691937280099721069194029091712926019560641395580966440457636358534598381973820234962130917514954363062133468121560346461261051842905158630260349122830462587912250856226208601270832447747651924398317841474413670819441722321562312979343539981461659328621480394020317902180721089562352513585346777880820236310929000059747616016643054357827195340223379857624852070370488469212295133384487207978035450486449910120945507975811214610614704077258770694749310648764562565907011519398848364265669350509454765173569241805991619912544625217388588708204967654239378769862344796676832781952998332061439634271624173466495596803462182892058838725694957033143599345349278825298511309605977470116814791081713412566643110661536148390289740664340110808307806667873397706087110024198927522813446352300276926990794560724434363213652464424301052443207724695562402783728475840291146283396084827855007074552103127396127186193065752852120889061254489689238465632467277283187610784122900178563807238875014179491406159897171307531470975735362752547045569283365438627747238980840605787465013505275973238510155969422822271174612774120376514523305270200657830024200467383639617409025084839761694872808859816809610939788072378190976041182822096006971203660836535750026694947084811079118811403990698348799753691366653470544698553256367524714153641716652008481062946655728257751627356320985050410315910508058503287815914410170785546690774786972260361395317273073073890889146645338958098644043140857879418689515393789232751893054573912257145330983038105319850979629409647806252605796960791219257989907636190210261601023891313824666088297775495098050776809938921173980490438182256979325542291975902790602550227927252598723030631835798603733710956011710250336386001054490440142044611631225605937364961696256701736073964267454199557256125149870349152746945541853184894414829730152206846873495803954028091004151605140066633654809336126667222983518329376685498445722088230903258891669213696291038837991707430900738169973141194382257461320130208291620888804385296664083981346006066076318753092541366361808735343800241443276301862935325265962309730615376109297204695794414198065484270102346830265667723535240485017158393946278506012199481828757586762537226454679921699991157134212873445023160189921543528982432246472906079475436608375843814583588428375920474651412450802859942245108151124767458364150326792369731219638868100610153442483626305198576341451733943467875055844287343387562956284932457888535821154047564999801495562919421877715528644107373811442869001784373506963241123933400733545474352507226646628758116644814149926582560444605645869313931950861987388223054631564585805096066936319229176311340451752470769856244349635450390721748958726582791114197296992053648707776394278405793014612623700160831857116695738051330434153535550633891923058732178833140218826735235636868345012748013848133602100008336536897999500920891602998253193390471117681042496094288061332234217769564188990954433824859277116825381329418029990330402413952353622600757800953310111312653630087421763070967260083703425004288674811024912963203565547118068819461853865390703649381711559378943539652214143361828934429283187398003822868331824608637452620106050297321417111932766101984534531497668532601917367631882820567290401496558753797993321279793031265481653061062751662928581888458852656310215830277620304730220349814369832969129259971965069643555479270010826736875580885529366993063437612082101403895009524100401111706172561625924531316878169377763360367327621862088207084971992464787610633492518598562449977466237662925675818375334036576745101083222588880674636720360674047150045080635279946556387788973373267320258150549529129694107811020738363933972055429174124154918213799530192927424310738426935849161787389303350065146469559134299866363732300320858597372916385103299096034502759644658878971689794713685660813795886637476684005142931852207292771132477391581519341527228512995557645797817018208686562941105018108479658461274056872644025608405069623902353616562253797192359418599898455375520595146092223924992684071242791140663490101125735482477279128083677580055705956334834414340370642296874564261446109285917670582986416550359253926166769627128919204151539053188004913293621162960769767125641413639285326846236588440871003871107370793628510528042203879461287275286156999919581862587901281862570398262801978623936257416446390448989248232937898232779292953827144848021543573224330237715152680114235310928095977385964697966980829305784640773896337994503738492848151076132027929408122761089604411074796029296790403455632496718572558232003007102510674499992512929911193687071972962069984173367257508567455029912188186337155705443169274702955140798799515956449206542789177733087297555801593791029349778904688801917039585626942192651992907025548781627335460572540514970504060428790690037936889616308931498894085023004071855933368987188149106801089666614288967125345338771567144827170379837619259087954403948122553403333438793257434886860242385763194045283849759183657600574301350914646108215229378643996740081740405347890596793840890055942343275174545056471333171212349388160900359785831105646563826798552962280976703515300564527637140530388169834481026170944022364646176850382993256487380800631703171099026875328296755484678719753578952932788665904765296083405443101982602058771837172529604696799215067358701374592424806231787508975782201997201750198189796313678073806916875051019456459366784377891099540582836013481449495913798893933170086545628504389581042237228860062352442783431794298548345635587585889538228376462423129126132937538830073907670659222457662476332562872776934226359763865843611213029039015239429642157310583321905918538711324245871170363401283653364382710505995924705117113456129978624371750770171367718227272523521960153852513753774679096992938729596294685731990490697044910848133409423079006663465667338338678475879177009677096830104381267124353596161036294305566833929480730716571946524014658669438074389359299573076005136163705918526167031516497293698976453770915939019773882870026451530704810825204852890763382586209667935600926142362970502710410413782900879072387544441899806036352135226689020124867066475111022557082719933591802905893663065484190527642901763837008779414503813145721989719055925025979521238296793402613552206451419392329764806867692773652239720263196478552044663470407246989994540803342437125272143050077024097331578022810675220845760217031243297631244041874706021805415606071956201272983752791513376697532620984463348218799700745085822266985301363993289021682006548649686418097105193721718170836568065139908429867070485625742354029320574304770272424833300872633717943865804929540364813008923452162755062058128968221149145745009742698375417927001663504418510672169296414948452813850144505753070125630202796722767948026534243175716325003994936541514522007793383526652689727713743578482709089496573590154392495860040771901285302713060889393324681225788816716152752567148210854587305758679747211852552167816339164515236230990050354775248929834563632694874983885033319439436517151518814782092167558756246834854514753747188837618066209221477860175336880439122006198883600541232807516851252687181043953755014040890976149900415662641381070298515339548374758186970712288597935464700008403696781807904393549744596030424485183070566323173605371704827320519895688296289930166970058081036965615457782885868616844037924102560273822491335187617180717259511727387996066063603010825466562162369039398775022585564969470886903158326137514432930814717791804877947526852305051379025255958500795050817675532593846515810223137277019492110288799032735796754208893275835296345689182173784608722026567275700431330751463171140667966758142450935270974307264528466315007529868470871354507648449615575640007158977543501063796848716774815512712337406085767552506690478827919181216101292072514653793065032336553167143510264942639915173198889691829068311698037876303048201026946324316450167876543596027082475727050152530201889130496588419758600916452201768039356923130002251416339078378132113708878438120501176115826616764466059347587076227090775535494573338028805837775019725643492653888208867309808775871530086422501953841587903448908018408581281171677859108343632254274404652018532234155490566995536338851289236671127141516087098742350442839355735143324856836772160672083085253078594139717861665337860881434616159281050262763819579371646888714292749168466248263302753701229919808023737245347236414158707581845735125924830332532725476196690837237592838543878406007468495611516719715291514638459709028724858411345056874750304473997680379545322590155308075359546840407272777566202380491496538198786035464657101431120953964728558411283370069846944699747581666969493265452189930417498091781729572131937030055923767513680117790826273942083128126586898111392320168731485627151575450049317638662093974813500926408656135343881721244705783194761769332517765728689838770671460087054389685292221854592792945964599383893214004280071305430285295527454689003206541500018036797672512750792494333786603736934495147716310322560993312026403116817337535082829502042560684081178754655405100938401531683296485238586257732646489094456910680884759067283290371342283104332044282373619467616024340352742352840447389047899266668072752593201855548125458620610341052815024038443554094800520106537003804604368186898032865152162947996306579077863487497432100095112429143118663448864142349266865962730450937263024084082441110222691361554198305296952226600293630827239350572381195148434666160281252730864913797961145969346729480482818538579781515790268769367856254571006616526799431049789645294473367463040785620277111708033611547993159911845449363754035105033102462883032995774595755309610197170734407156734948808422748218752717917945714330141596274412233299153576252216136205085866999037275501808123953694078371954981583304705610554685504722495735285574454851395304721101840564156668214743495496442430907844057290217131756010346083966545254372346224873598333298861542702179378118262064535273535182113356794955344003584805235535037381215042470337869906995745584191517307271610153082821442527151412962839243713388869554364554548990150679886009258367657911689235339788353349047917359980077134888069629182930000943724007124720025267477955979918438735856784131813853358057704119921125176243239417749267317625495910563177550639698945255144193548237814647171198337880883111542307665505349960547708406342709981610967396683202354670996841136519696432851931079754044076124805512942990623845146756678739930590912623049106347067036573978327263202209031568616996095741089586083750904415488367526491847818549316582580229717083940541968692594374242496154029015126545571274224220391564775746514777647614226425625190109005041860409085540710815285873386423262055395716099779104765240269221569967634175384095682452150107518415888175132490724287018105117187181584146709170421077766928033532636285213998352474162303034863108081219002679911450929884939764141009925389674520676943582114679743669484749315238368703600889214453787639893992051632992152945431439585001516903038571828095149183070207561351448831994042538351634859101660631484193243342587922262792503060081366441111920409135343778682730308400264389201008492263046918261574913545276879652575564352913683977979983282713981125792433322281979972876182344806866550047818155149234637337820662052714752027187884327909883915424293413971076900606920206242909783558417034684982917748280500297391440556596224257816195338804459834852623344818573310840854603247082413872559573126186767852592568478574443853095262405039827099481637013332666698399551107860249250917548708816232780833425838673083105911221982379675661760883911580505015460485580314854172779431530404821018351929830964285747660356314485828228019897688153981678883488556686703193166970968273554058210437242252996396199782508358527638998510350718268310083879833487842348762787841535960277352994520287072689291174693820330515628829494267384469269499085877684425824995083619896862984838643184522337603782399539450278804497457714320921168463228868827733184093191948543190517880792736502583832263349443125674865828429100524543761052214632213061080066928515190699138603632341764227357122624957473429725058753371379143970506458993168711522411230500222858842044736483902378798245064783690457422675586566222783354970213017915071973362685430382688759752623982427169908728446227465428331363685648183902952795530068931625834281318259019934084913815258302651384352083928982818911870763839576413339594369541364601992831651802478089347914742926976003604181087144046585045018003954848573147010273989142424730375431967922483646083369951931299333784565999992946092490164914899548539347413102585352458876063668246778457738264073817705246092019130253080406880936659754966401330642041799045836714755804017446371946306439650679156812944871154531432886670192229298179761802433373738506263604617177715395315829587440728311711599556799842219593491524552710784945462554158478291537197210788002242433332062516449220451076023760236326687083189112440661689650636177292711383522170487614577745115635968264149039509474263169542410731354764216993674601054227532809431348446175157399153925287398593274625241606165382347367133254852271299286031484719301316281173563160599029140840413334185586560699758456316502942481189008693029889222653860623818327664736950661575850128077287697010913842807976714425672349561224486483368203615097852194739193802572958209098910857870192915642522127151515346917919712003352993127537783909652102415153949664222391337779730442374143749830338658366212819555713699757713910638837702066772972107033791701839658600033622848591581668191825558929631280662365701550311646851159716161227932730544400398402314519132032176398940058283005990525880383618534056296879781006034151671203147540791845473076283827311810274764346295632659304994723655153366488817687720247403110375480721222534447354903138988620099654991306362945414039189240972892272221681146134957435438007014958121759906347279510483920489044849819138742031966969738540628409294261188987432469748803658904553316720020546284214706642961573067483805345347733422280011145957696177065607383279941920487622835563498870126445012933171111468542156656391261027694440385059940760999057056971732036271616314832827061973640111995182666044871461804266751241106527139866387375280978286571765351797587262933697839060310716785746825271075163686328339136693503242670570349022244546913281553138347367466072315426379187745497516159941300628897119402667361659661860202936966236529082891358371601154972570055040736758031232373986542593117542411026930720813437790090216977373191732806918813039621013489567924891690540523630257730560187895924823527560424623901853919352156686972035755941103855389580899173168921632284670979226156380858001299974284344620105333618838575047908734764129792009545172409629573290599744261013118017843475448068161477587671387546559611815587794265448249772342736047759807466259196723320306411927226034228932830376539503287270215267805014064033296235071674472613289544262657025669403699249889448498638152245700794968533578021650811383821932082852051123030842593312167249020381846628882426069885626971411291176125248069679006309679382463343440426252673380380922592668112238327090486931400659398573066313150377262098731858390279369756126893335584458943246453993031203157225454422807138558203295243374113682845044312064255010799037372256058644048417022460077107112568665837022290952070047503984524895328105835398260659506735792205364823471046983186774565709515877889576597436991308970669555413934355934686405933151302448277344945186355234799609048373537927189049478590335401765438818732563815123480399928023804097463814259705628728957177643575908893555656972064074165768283893042135573182279865859774344642611595821574270519826946035731876085619008862516372549425480358010763352323892292975130959974823910253795680736898681398744846150040725314856147780402228817058890447515661206842879851845811566412357512708473698346680191799919452559483497743623520396928485717804035863508042706729095784734171411781181514290791942067008760545430801127808166687681598515014799187639961781471768211286113566504070512752313452452771156810613519448131078347907066923054151782855147308261150714257273881498073161263100281015145402375442185345696984485155078122724590267596089222721657750135145125812341542965733441669489240185011161808971325573230903395247407748531171136312177097033041205240840229680750886672152092635567324901596406104733695876404204441443017063988834639508120854199515224563779074546220472792557802191406924153176954243421298906715604021139217731538416757175144823928545305875610290895248615915014642056590449932619468342902253618166262369698799806951923412322877149339996679182146996483810159667919052353217362734493695816781944069832200367123334347780080969564967617977537374176762345523477569017059458388524730197086016964384682854797085386399337653999024749857193274204526427780225388923125966865532381600625184971394079226771916089938557719107769241929323327237800710294044305366995052437179664014581861006769007311617968411790428197843216130531683480342343793743833645194888801117431994224440739823001835774136530870084046973744171393814294082791456417079890471817165365781114439356517168309501001495843962370514621323144556689519630025124681344731271396232356088932117179603261647578889677635155973633118642432524957103379537340759324901808271738924705209490298140468772039082502146080688661692374859743391944508599975706609781141737921709104730672661668490541178031891537399826982120332031369592141746287856575782441809232114237517314446822151138731071888370671906684780243215563711565256182019628655489269567254209806118569322770001716993690001854592341628448461664181811190426143169924784197112731610888991151621235764071545511564683468585182508506387148128081829553867016064052583010249160199498849121786414872240503118733087318596422301238259571602686082527214296869207932179481673361852625954237440223223850502617392655620074277945645288343571556808576737429310038436854566328684391137322057308232868992079926007962398701850762702535466703257884555450756047492969117693338408169631742276474155526587960913038636168287369162892161295321611283081450979541181002306111215158599500861736241907688232077826720252637356191001381422641294479875084481911889545655167186518413630395042386962211602657829571508395992181380708373131792100420931478479977239222519099693689831282002842488402992438410110420360315108417365319124697647183556166814103915669252036974332023373863779021340468356959399007737291681838770991934193165833134753723621814566549366697389827272247853229889645473548989017562065729792587253455357597461320517807305580480315843792434615811503722837096124948935085068616442768714060300794120660698171034214943044294353760141319348083268019781697128083915243517961449715921229527323692814446811731925039676482882450407196545946514471440381123961517571688986449613177762227713326580259109270007809042191241967084661289851995738592096978631361313011543475733849649645631694477867291313156443504673196693070533973634049228417544075965869125728921937894367593202619264672548693997788951059982159250530722203580639608420777166656019330453329968528725625659204304670792293712427146518258022390984359967923260922359239157418798768744500787313345606551571397421059429679073341425642443930663187887377431061081079889595941521017578187460662131872022639404160932866315497950540787431012298137561873097301802025138996363379722128000918507482195363826137411789919730837625161071995060881920531604421074646081465294902848591294798358154126451728324181885359996077680308189470749463293006665568561639363128064757955823021622630965341767057010827631698260122089678212074882708349806678885406307442469703385237151525210898709716794980096405499123031018976408389602540774063303621912461860442293441254517710422297448821864137170606386008754801009423004857150224440581033761961450025282036937230128328492761094176980832283738878380762415119556291804774601456571184761350211067480394274078053415333356306039201723417547067423285216487773800273443641777841030270734288127462764451984976089763701084904699880603739490587014550493094090355225190698969925339802012383882737185640699812820118741231819612120607256808940409848939155930737559495811823482853209414958076692477561992940801535839781858048724925758730024100374977958220726643706237761778811825030012121853772277736908007155772030747101364674102469152516655798785236642893999725638173879015543568224776034765932618620249208174508177365850993710555724242827383095488726240816297148050915949165048132587394532957609903645992546084096668920687574469869688857923711140352175631312371762248694442401021873103443559787573986510781308860889535043229980575827762255299927506408286494018859798043321183709290137824709436523084669788841793142034220058524181235353506313236281555566532146896242069786084211651425731147684127482982563802403913309464699406535660903930229870216178007247731821034572426272521324824191431194294509231560160422927106962144056025440081919095252793975156645882470572850143925992984352910296952364328096649150215356129206863672887987123764162806705663348476005146112815753239423087466291357493799138764973141013092881208193728798727575761536346093101058469688753968656855603647055428102609310708786362819474277225875139389424599432122793668266018192705643020806383175826665007000256872361338213198906659918007112130204317897734385871581653177006364245110583795416014565102425686506245829299308046264826371677071207219225578041023269874714373303379679912700373923958871207875213748488462913087680526493464762166663713566443140908280298243674529351127548532381250480428712001241930832820418458670681076903585624004717664027899043963136334899869460021776454519778614818986035236841554980834667215058674608183578428223229357997709339420502303193136747723545086075128715025682134406719335908770986901934041274234038324832202495346991904240356656325697913615560670236017815981385133239950308023501481925838280809731327121421132712584586754043315955953350605937661955585212820272647207652299752493050351592740749944393964173929445154104897132936396739490064653402445855216920258293182805307355319955378255384842352756872332444692427969060244493889658034227675651361456544684882099029157631701674191972883212202891091834801279828638828551408028745830491770361677043452539638070268256453419753727707879123990899357239171410764364890663377165860685562195427270961975173538597839122846623111885998329739562489648910858134114913653815418221889011706829491091942446472547060796816294413888916457598045943978417348051054250630493993226980561395561183741725495912370603390237141608326366570571044145169031619869556070611230746035809839147798913034136787823820927047912344087392954745731872961313372748926282442539915131947428902286381197023672817432779230178069138446518614803783753919335527431157253302327067298182715749581580436263033771823181287443857874449367186597537692065436157583522427608097976054178148723484833548862517201006056912567095179460792843258981323637123970097945268581237645861967081237875903826799840145349900868261348136652679884761381948588655014914739651371963826767941686914959517771506819559610551582872240937382541109697918047150237096135615835635495142130546059103333107172020335514744295422435239991422438902637218490259793457148799051399847622608135962519018273395888156301965157840897203756737047367896778875366677761373226222605276834532632881894187094369520913398534961124889809213372388913700622052424231069032537018849549640560669581547627764943865521989371579987714514044562560516807590717706712246460619164709548490407903546863242800835284573582130927558725017990283023155492804719098002969660058346893075864629687338168315579465313318494328921826732163566264172568955223836290391041769595556061766963316458974462467274997940840656301690582194523016937306801306571866426391311862367633288504434839879897282174171957792331783979140153063103102585903610564977115849695618402284891755034427378043383853254505047605838933095941630252773576732636213036173076288080394309965727196122332997154132517345617618935802218120821353467283933344852823122586903917696978395864710419405973897282321330432108032637257268776179690511213041170661551711914975362897013297091111151627624147171257189079410092339567396831934285825307303175427665477174301220829082216428672758348117006697998248648878040697741277192779441757369686381932938361056048489196368780970907464717267270834235817064487956093782853219560179530531073754205055891312813335580006343045232301380305357228752984468299626476117063835204254956126176402666906499936131615368331743844107421226837316809545989932766663408515322566204574914181390496516380115488013235103531624178489642086118497798845604917794945917739990214774155392676338281589057077349980319224924195429134051022950441271766508164338431679480041753393298896433187252726648164259738507061737894424237691934919677778777144718010271912109532259892065144252389661757385249555053884653377253093708425084598515940990762340350916622757331607034775470205070409559386566140261906687676741930089020311743348223087331316748607333566893824090832761309538506965471756606315407735580821562178737968892319522137036387666827112423052264484928002612568953680542924018219913902657011953059181706559843286641532652358223469820533298947854262687123052040285552907673676688240572274820900250402042492124615037387699862001696934468894184172499469400398083638296159103283387181700930966461319776261627736579844608044490662745970527318023209647173650388675518518554103954579521196388944111129560342236963471028599957743452291335180525883765740890500034942453556256286026464807055366264822551136671598521936553033957849958000858345885994436650049256667954266395514616213927166679343109762646300522353662274141746297857388788467202652276137177021094947472123782720004142183148450902773288873566209716746152641984058837286215495452573917560886008125102095516588128317725990657314201451957351659772454316220077634311190390582063413331621149002576428919265346249026531477901899973416443587237486236793811286518546312905731256891724764484268323167233248585923670469344749420124352484799470844632985537623410094111991021937743849962125895363039995149238247187939596477869414781262037549817226499495109594771237818164730852704572269054114466604441388220563234604891500888216178972847165867426088850574458734084822929382161181386203457469141765250662461768044390863503108465878894367602192448312248713724901258105711962695404527885039109879344859182095444800520378410807444199466421297653972408727754421094828933838544094119220742031684336416432668498491733017369259769809091997252981677306448552748960920302697333050465091713213695821833567710174390254252213078348600289007072808108714470151248768820739917904825207570805070237696100599195961853341324864909045710974947334598263565436081602936067246906533840930328397892351330278550395390953303948301873731871543739238242242535352724079114081487936052529441079134687167311571312821179005977149521534675729798340105110231236461240607233360722514690025058661479993957783024206344830772291593880477130473147700746549049014785401591447312937879903565313210405995000966374351214955966655505112785775283359036471737679920950970404807351449816145093019313756962751857700338698750833713604271172936038114022736329200954024946934478482967904346229596289889263195909322741790397545977968656652230099132011754669163071408697140608390899653924935960453863134727229043792391888201154152833164748722137555368598414493199256968563631849765867186645760996994100960282045747388703595832454379846828160183539860333981687047747349505647548405821179754173233815786099597883718449300507223164787021945979658668796571084242843305251158018025034611112752722996356249156911826650564651645828412989338645605539874971369020038315235576475469078758359472222733768657771931528405319167994869567416640365191285766859048498687862986080933764646880861799461023619438268008498350864003604301283015942945033533624900137624780636647855560248107627338157637659674526005670013856231494701932554851796529732338685190591409254950884861819414641312405601134832086230275061803646197539491400360526394787648413949265996247277467854984826276884686464154913901037409294905320433031222121201407886121267493922594032400084080690030471544316253392299690742594828636641672538197001172587541224134119122483026505775177850940621866011130752441077561909664258972678929554081984626150113454140119936765236662324402935042910798786902034630694730838087630007292199448654113481792546422810415129077907878611971875672444089499786411999707046634658157951935423714912165969169793060161350544628008995110415065173560856420626302463802458165138950276646729329960612470414386139779025764671438644889185889324462175508532503318913746284003033584760966189565531508763408094781636618668255786677118722014016506043123634445339665635914259777450695276338120894065349482274464690662070828282052400121297513084762369671214896869578784696260388930423873500654985571112741880440938525809029132618732633746427603223436879783609164575313540834314492346515234716781069654846781448799680591900572656575312265095194246873678201068468496111152524028676867097462210160281897522503094486502827262123427461352875078311003374499077081020196541590231273956981393517372403179028118036678884097555475531245522389504179533571837618425526293478479611031645866494056500694402954543766586526026672317257878273193859827006068816813171013309785922297400511890818279428540079748990202449530835843876362345701994634164557533509351669789402410780536346336797654083774001673048696694707114063232679282695635395896560274668901995428983401716675543929936549039542360915925119960063496798689806040137789589879421981772856238757268198098205270328313687888798567869149206349683943154002930959988028693811984627782282776980158208015967755116488283625706536481795232568372744136364917570009711452406028693241812120175273824839218640984257000803693918423158893145604628235513586425391568520071574020256521873013602677865173064636942621483310158964103908090797633327354313406142510397785926476147823138553609492084155097977141278761217918672716104445067593864907280652234853884538456456885637197113129151838984312615786310985409276232661093702504114392185481372998945411969877244194510460210211328942401617735051507617264262284505546890220880007046487950768523134764555007889177159216239054661180954407462207376111398271176298675906856209125340671517759797701817118344873680869642907295592976932934948042513640178616940740267436438607637493138565955399367525144650460287362084922460431232595300863818176681270855461823703436593780022523201122839536542992061939644264257537823781136160502883720822783481041174263024934017992610080210866013037568144707841922439014768103309137768373253877992649700302095157674070242030440095205142411278646247479484874837915374745335030921900461832354413856929094913060642364416913393511052074011090189048132068738855749658311780363689252658263277782184586536557698687755461696158485001797019998172746332012070814017597754808760060728056085572669271860630184503217937311951078435550496720768496342805501581365137624797613861476526563174969152469637852276592115943732480699140061622864512345000804524106880416731862664627802683859325369808567557772012054340480299104021530147718761179956273878334328069910472710380555955530103207649953227531972706637862318160763252237583689438405587661576107081074376407525358730380757048581419393335284277701149748972041919664318807077545929222858118876124613750189492614029083087313668036316268320217556848326213982853750375113032704665150389732914529670221387163638426441828137799513381419590633659853384216442520042333759580357151211394145248771504389482506252421092735381850894523968698555203653312749386830759167191138269640097905736918032648987517959291170097434944824459989538083810210575573477689790678074706085168276577390325130484310171458321086017344664848225721533462450597808067669459715763906972452697876688566271041298680752194231970468700612082208358328842236610644693730872003862791544428862418652904458448373745510646324622808132894944186162701559314780854184077345567937794705949805965053485641485816947324689758784740692913479531500260230814205794851134068107452548439950406957194182568409182309357516773905911773724883369138352665815759360927381660720674828373569976769419405564852559512910385967816813627457652315565477555946479635588777153013146941679490290756416474484321537948760803163149005919742020051053317814544804245725550872674084200669297536119647354966309815233124554433303059082253190594923356389326209761803627674009661654607092413821445051094184273356436615959369135963892553436789862929873707053991246545686970157190078111346068766107832109929498435871830871305471946768097336730868703943822210388670509251557927093798842595214852727831092722604182899733187731282077175676680882608465009862494988265768796489892114335243988800723338781170110373512226998937319588832066320758212718267832089126273489037522242836013266680597108435024935443235155561787770184948286891371743462597696741872243770792891300975157073608798308582775705283896314795163291621758719372172732849026583961728869026327048515527845640223487234022686329171751472756321120317635055622737359738495851323409668886679817813978403656160971277993241801511905673058740361758749792014861739516657399926134780830380365462413924503214116625431885767687251790075154002098938201490461216146858379989416787662892804325835048505264905127458834793405053506828428314506278367384085451613891434671891402997395799555658888138866052478231909632000120358939281869390746670023242067360605225066635764076246733927846868600823535175669173253743621875813263113423855296446270610750767230785320298069298325127593062865055363501201623215261063543576478807789145196993979471118934031683314600606462764826881777822232227063106838955778264864622811086425463196172788863154620667064145162970481744971517526560313842940415979179382137974603893662943165156000681550393946700675553999171781324513109125516347461466479057326641756617441074908689692425797318274532662556973353079169558604665738267703010993531833593089489754615884188157853708161214449617885309576075297928851444030526525347040454825318210964022784682842060897733162303583718774452765843995652808184666339407744021227632924518411183988115260648033157251573836435208122311686539785600657137005360010220366655995339862688002837347069219788670329105195155785866287388089051828574987945508683665194746389713550782678469746039364497596965567475777541573200223817230816949968957972599047443673969871996680850303176715244617065971007569687706136574835313842751775466842409304131253537689618485942118823121473919322615403526130326260334640484649658225530080347486692980028716500656515741804422759319632269999725345101563116273854311218512269664334000093508701376151056272138415246953824557871328258087013519720145023775669201815099755855754531115765121356739048367023953733479738786465264902702456662759759373567449501716084830765927665436297770859255329979718233097659765220859388632463418274398720629290040831152912648268404576760116244219092952450152144656916970881578897903919839897302898752775048795247999136417413546122275933239379096015793358711880692265497377310438561366789475027625142642807405950266840404237880088745519375721038640550496870420223562092586670036862724130919513069757390666963156427067417338569407767144042312914669869636397721038893314826510802371153320024700356428119807693051892536186758518273726343575054032692163698980496705624155792274393197541158261741205317910823902536082309458362464162689986405767056593648284382405816207608780470452353322769136469882867127997380138238582786224372871542280871500472584310264639215689535170044260580077694110089678692832707848471808725110371529213298923457815936840885064986722708936928918182669691998136671553910910927140296419592966154849831721017545164574540683999535113958643904958235491765229143353189226230679412854068894494642315758077947158761542693049178485891233982883115278097262342187099245018739936805345348459674622344570188520307007066806139284856690920212755327304022774341860114606001679878938168492597834911990390220200861494011461172890097375359647913805284900404820374636252736675078035186149799568345026744443583791726519617738717896451901411461277435225482206369301450371415505490729428410059843132328980124297934255708811686847110528288785777034656219267040097974409322088991732769556382285508699804843991535339607624100179013930326197602927624414365220715473913774382480253851124200986780680936377072241433177952747120807911796384246329197847306187701631722996157307131229122835808226880793911419030849762069813900016813138477734648667147263109445439402772942646305639232233022764630348807855537364904608334914953210555479464433658478778867391571485282327921695970702902056832865976188558384147191439544054640250356305163989433633948700027984329083124595142708289292984861955484478704689237477153720178461256604809849522059356295900872828235632509783227874551062207365563374646940056186474888562743633305344902166264440884326799405419400094986908992061967428245067841698847023625876123909143184553707516844793912695013627872745346515003388405754016686187734763508555338262686241186462474918536998576131953248761386782573280390037656402701585911277333562301408507241432325075996123931057831685271378370713595809415701123377331548709239039379056279270106689224054361914476702984680276886066435954734516286543685229162958848703279022105514276903795812011585768210892262593473008925281129001926208161659897361288953953441615161773708346682507016152573645212840566457686132318312703522328435800861665451039053222461106655992134446833434988951205356588715949613362801188417614285491866278214829162067321645895070952057577832535499046937440802134254736305262070492472144072207789505594525953376829173741941027143926990606634471978616448146551455979594344811888200554727006644144768393325154502989736360762096982820458018533732343202318763887317136030628985053397606319651586074183333523405533097859919236668107527770941549661783691915067196825040118037736295708335057638234221304130066815423794536117086124806701121307874850759887169640598855129653949346622110673905554525724347870061159659223081448168496972998940573017102122177113729473250865980474728872089460788297978577199393704259843335189785185616915556616065199963614346040449849797163718939517435013899919835133668841637285614463264074989124146963294018899070979712122198714627425486908233503892831860437095499558405170145503730585973563308366590896857959195748960426732751734199657976255573828980578540164829303308945572681865103680521388788904653990571551210926104765153191351279817863754511205027802150993362750416817150792975651921434115137130576798551739438604549661095012202040405604358218674777438342943420344950163605095487848249070624743303051289899683704039537611211503062679645454940452135873776298254502195818429775328324214305720065153541325124314247037609040589739668706500845873995968848964178396892779892337819450471610265344210455130954672281465918651816747611925334067208267333256320596969355745087288792414402039446265170571277812423705855236287888674602087638439496902581262797675156019107560914996719377539682633353298220863704993077380827617689174214372476058474492134185184788977998575352106177172765786899807239928745702617044655099292514613025242652358674658703576422567847300703877267116452571573329260909690907070862341017705171402621744121096201315489489580013185940778757474239926291738019237730220343535381842339413156598754302144808919300587463036840421266350167978554497495955758263180161216457109243913136773123839891565997261358074467508264642521214709105566283681732119737906874995828892247864691934727243243803886923856364434678071232206519421009909968696064135587721664404470509022127963476420533298105486518920628731687518109964277819500558903354008174844404070110743555526791053873103585057330546810892595560246550010193031801274137730496939373591968792153902766880377214956684373485380494532854167963280104458727769039867826048931977982835428924875032415076901844290903516497331480988179575678009613530012669176351897557016212097801210400925682046433472132132047935843364730490866738854549145155884487214413600197101110830058762035075855287581762749586777384087705576951841640224841980935811437260749773089215763358551877141166449214720697667598006414969607220027261448409212692777019916287795077610280247679163076425748586938548957202526171682825622314274560258401774154906795153819849002870116311209406241270046542219763918558589192675408529871718107666107266978966996641998228950665048090174697218071553447507605878983060785727388726124874092345863347021268181246512893938305923991550663538243562317040492337523425034780772449701414719108385591268379707318687010149971245745952194488893316300312958032098206334927691069786823812131567353001347200581330349882291066409450158392625168358409699682797262642367628508513188547614042814769192203334919661185762890675592907762746098709647375431644342350408601369148274789005587937136014365701938149064749443676117292479520951265227144599522741882795124274015817184195348700838900055648604465351087874025027824839281203121345989448793304042439392776289381705663703161863233411948181039736092725800640907927982759586225867098840894025682664660367863558911738507290959257757275010764940428062057501414798385874836371245291057655451330224996092116622462111202770309522216104638674899458691043364875040887579920797922889022961472957458920871837839024206685015715816497029023046360992054698125707734270689206931859097621458651856752663028628482022908479469908020807614320040079432711397108245875817166493915112885415172327114455102471420925612900587822536683706246568376617919696441598593990476154209780826557668873323156526355146335041867918986214356493635295996561732195502668250884846312826605593772635247465854087954643448282659889658347054237591759977340501077450167214885631069436498625483703672108576478659699934574919989965407715374746482685890102517891688464382461440630672963481223280413199196847749385955164351760732777318023698446172040975572832787573112386992408022843053124517423326153594161272883622708441981561958799017954483824165121064413256484919591037708477816493908843273361094171110552603800051080108662733050369868158913050612467141702615714947438896572765632308714801110138002433444274653003782054087408721521926213171098017693298393080618289688154470507259560644923996779914562628990710365219734361215232222615996818729886251273926547084058638291363994285573188217827748125054579857450242987877346811709980927326086847367530819245622571792002434810787849103641404734495245987748006471466967095840483944930054665516634843220515399233539742340600896090136184889340509322815287846364090756435026720537993768265804286293866965819262662825460469085311111987390358458513679034356137498235797491673544676840075028516268509920892153428186446750605234548592953460164708847402790014624414191556201105239653284952330762614106157674887995620949200373373514082597138150754257995308256266253128063683954010649968068569999938245684951632694951063679554445866580179059140638181176137247837097838390514702663064464271450670899553311080750006813261049761626909261337813249337380392246359794941301121315798068011134042672107614966832022678116075751455167136535819220608165416888353046689941105089851919912077811576769496493470459437595437239411833454709060383078250555487236563508514734860707382600758537490603553927570074721361870693364290420800244217209824012684619627310330180605184648508126631021282474067495728430682728725450296913946768776661379674388746416000390842839058855934177335501454103124209103583878845302570488917789350830647828144610635412318108359247194993370764051260094319530109199508911198111129989604416166486463099503585060595197555407744613973537053146758764979025206849607718125630815891307434216956029786616725997664975831063370104369776362690821119975025624921069685383569034587827672509707133154540152399262756101451313732792786589766916450460693345537059284029304496053731271919383868313987638711563430346758715787552075934623665240072615747151098497410336990012753856386019031163292390188043257065444227231804922832162667139062684718096923550908302710236849570703984743735748049931339240402662236123397439071072659948461445514370129317564325280448937419766625058386804630544339924114412349728696114203110623524607007238915707825766681312003118317424833675340561257108156324091992835170915689592518215475759682759450044071422636900112016405555521904302290349389234624252377599530590090103169351707267838478287293591662520183485624267033721352888889400117534135069131647505966151003635590047837432416964842739312190565958921952082299480863507845138224842280636015860065840654411147515172760574870621929887827317519848366752821671574514876198612445623513710801646016880988293087507771046425784430184583940399067876055524410251308901076749302235454474962206377950829323679697004923225872665436662634024844477559043667111475691897273228198626516044972914366464466011886046994886689394784203309235298623957639225848899466219860913786822346800020248375607378092319965258309279965315271939619927065160870921220591187211115180829855334021872806569809288104472318893294464846815919430484420577399227854280050840253197913914165284441335637676465551750219804987345799697278269639068026310871783973842372575723237962122353523279450580207491776712157190177801159427393796962517913731825237892341784597291404472396147557106354888223189378941730946173694841541192707023377451979744827539545245542384117266753979832791175565282489354768479108194685196348707431231937504233011021858125185285052781086861980961307996983586719194304810765692749043053991519369088774881181668085509642877244505053232231170042196359448833494226620768417801766874940364741237248482905461864187959450830463249920391237779028283407597006797649564630742568898828969128477860042226649065941900319413088980769162900358025956372082180755696417019427808054169127812828842239941612868016857976834216386102886753267092265160152713288127598435815027095962388193681185868239176772019177191699441965411917314377558431033711868760425060516206216142109179903129545831583429051470628213208091050091118182517940563775631940483015413915137408291567704086257554060203904295481317281298365476536487390724990000769408950434685397951620342724012032120690133703525421499337725529804610068412790685063323819930374086323853291085281344766377468784399327040632730240431384378738671047616127433510044819778650114608066879165258992464078656844905159630190173651489205547797959034561466252993495203346566632706931109250900652842566216093398024011705437387748144946716900872258330191594491676387118673743820227669414787281871319948333683261319466862501594548302291739448049359395742632397929962816281089082028559742512219771698335538347236117221831132741514575878915028276863476051179434289968915723973392683766888053684188653921726514843277561777923648075888048111824867205119404361126311505428349644110603424547405442747897162049816415629436693249410265791420249508019226096510505103789124868570410510765680626529413537022805371540379205128618928974025507252474122672704754121088934109494548777441322782881422496436430000288727851349915451950866618756093235083401238434209672373445136566509159618561224555245479203660669059439230853960644128935267905466656745593921489786637719798128126350648871375269395974881462878415256291364192641017510317935418466325040142746144999138372792472160889552717064777623291576737592384606708337223753218325029677182704813981544143185782997901116084137360184164262939706718641042313766293192958772775204256678062318163979193272002305707563201581112163019210280925178316955589538213676550097205198599969708605362314167849482390648668278157078310782558548647471320416530872042744950827437296397051065081864171848912854324693744121282740947361903664430650532900384001717011228796818692643716367150178072572219378305156910140514719828862752955339188512512268924320893862140852482711340533555691389627213084455912790049227036780712351625091993733337794948975954868013234652084686342627067240773800069785258486942566118494129101574706284235220566928014360110416732875419565351386575000562021346196388998722057539601510193825893006848858931203253208229991425658798340106697467143467622007607869446191309575092265238943781484708095080936950540620804360975051697494223840716290613956714990204001859387980706202068376655852290019317742512058738531702267014493728727040065645235054835430221553435195136980575163001993073179803281858503724542330294460206585853348751157906021815645478629700676534175622100745461727340128595521861589476892877483118870173849098803777774799850556294767587073940292047107553568438110178514323173591938198931141154201475641508347416976851199918119552471076100770983728431209067243897008012118508265900837945338240739430175493527197813179269951629176800465606891589769427738145537010811807890322999389290497572860954404799975849264873946948782965446775547904373430296144390881216213996146248483923063856468131535950156687198452252441487512953414225809259075121119588781456461721568910140221842051273871562831701543412124419600375830724119563824559988267887757523757133414322504661066836856341018549706494560728718843368321558381621639714918752395705250110286989478846348604281947612564943264007187098725411279091572827889371535715227073057917346713194330636116904642560016214100613699992796245193043264759001375218979513513811296088528109259829121935898570092467056818536350665669267363485290503147251412996109718345734310424209401882008196877600309530854209015352804964065349908444144011386788618165640980163263936166668820378587899033101740339054560457084718233155130559669399233151631607628771625496216279731766909492127808918772287463534137962403489309846839956444040120300247210902374056211658461768558866084991033973905059576399002875069912382333333555453575770330565336927325416495064660944139457576808494053106511659551177528997467529422587224510074627124254250944999949704428959134633240010551351682568259262046232879526412753291933306907198563348659073308052282626247543031932970695792879678704512198587206557763113751307822757818042545024389566454825681092844801174540171549141808332757021312696654587297462969211376423884781668142957508532464913336704945495238985802096039253323745006715132078621663789338620594618830039345480939513388211197663587930704147936126454078271907882734006193082878642828527041141551236840465703686112801748916804234621020827039347371018112902353797995022565410572527685649597109540766808090941507531554500566089463293663377697753852243746124413173755685446019014949092671837109077274414304950265529096228729904936841529693130696860708892069236814888534640992876554538484587641041033718231974087157424832093201253024339461490964452054755670340378571425268402468938314242050286594885816236761850234879930823689521698764620573256099120303542017141058689862911049016863317206857671321106690973204756556640615134104616103408494785295045945628121972509757019129672341903809910066457181798903501968871846584088239352973200932486968460127102717950563890258790751660072355581418600416645537656042364119041551436194541554166244314436209354242645049509523731444403602826972060178471747341824933116117899904097075442216387281372563919198209957421303624678368472042172815134863845609768521720147345336853652537914107980332810141992281058716540682239082362198860309791157887770170141253439658139720439628750101232079756052466358070836273479001991952399488957377251065151208382054501788950559525423554341576987070878149708548265767263578122586959038543535447340995647473489893146090448601100941225091363481042874503179975946830685637443537919806843432593592675292440261216943715942605630194872217265874085565464689537728423692182018199459058879230563755258872208277694618109023388338124033725908860732048281788446363252566118717036222059157435873290749028401040518049638348080572474479523972891909007502040017481438765656012274081969400510096592299336628083720327140369087031556720411181011025396643488621413483490531818911158246505445597737246089206013293581285056746386059568089925490395958596136709433440981216200904319111508785155240875500464852047986307809731403658475112493092758391047176709877146469197154208568451987490526588365727090805073683483978647591726515872328710325019711682751313171575610896675987493302135346627858068938645917389559631611402798231038110682557405674648419610647193878345014829166835118769697065061574360873675177633449887939925522771412714081676191311707411883508297271514916125139116285030662135979937580951658046062136725166307961369950356729491435121809079164354145735518796078848285063929823499600876969881911120037395671933215734606607849463598742419159852174646963191983361036275863188467901244014324487417322794789800543053547051810436688029629804438189152332971616705501169091628346132247844412447359881678131148316326415437368265358584526636974069724786656652171333903402391098488807462967328166934310440085139974509342087353384182004272764793725882838466605197037499501629054178402663285542892328737912056911553757632541368416245373152402038824367072665869137950116498089528742191420128921732819808530376638505029247794600687343307549627697995878272950257603709446973695436618545168335952550039461266663831287877986930603366834733648785353378176534252675790563039141794466992334676790480665464064576513597333648833949346201233151613240973672518216322276293117308878222925766869980463198538903552830497239206186065560806736206772549899634604287572190908187979810729734999413793149255114561465716531174456922314204506568491890383233691932780771356809644800175222179144084374926735251117817396493207814919248176805237639961192858391345741896821331306484662199918752186734080949633994498177913432958050378164260025169670995254065240681215656810275793425117888389208311459381682291448839842992596999809948732358031782255957163401681170795008384489216808551733570564573123545251755727377907305666465525234940531666466293453465875657299847294151538965688628212946731071060098146778762700472110534119198939899827254420241632776239505901090432193861556313373942420504680420409880401054131682804599651982336788398496831475934514201382493321474778353316543866699447692284593542150360334925805351731173373437961792767682024608409956602190618149556143346754226531464946371004213423597101403297145707071264364796509494961881004915818505601779169219612825517558461084612481573434423989253265614173155374247455313412292322557037717662685612119953036334727543172605571742914852714067532372258786800189652807321333800365860900621992317513615613247538301083072038360502221679351276087259347357588506875528252760264378835344567738158397731256559133346866711722983641573932897179267389251412893481310963315061846220374491074136290270962417416444873807118942485014950784727508804242411591565664202802798968779224852711563175328928536316029413335599656998916481426066141883126165629102458534718912269278239759218508644105522275851421781241389730181084738870670309144438480081294350656008662462576231595913748833733071380289355778205616877305438435581562675625849213009208770629980834878952098440708903381900591766359225402869159430001618231546045359592739790626792564420250882635573372361855428561256807191157097335445293830976210191171604366172807816130315702346294310253124619889467359254666133624025565526869046926012501674397193527547868675578956605635450828670318515613830836481434946883561879611254254502833158752529120387644627729915202700597923140442684582849943594194095787830725027938082148640249541449473565984393181370555306053646634483611969749275843860141011089840377527063399804177802401238440520033684665244370227508759574643302277156883222203725785604548078592940463886624266427576930503440377172306170441183977090119254065127801904857228723222522556930695155879583156689579893066728285108311655513194880812451416387296160725412747274532847708569267723305797948529335996466799476166993896304721879576767951678723296530151976939424967097531668051462011704852634065337687405867287442108040038207167160009052385470316232697380476345952709543446021787650208834427563326266082611799555094161555648858784782459038268013765715588122713464065749516133716191554525513867950791777263157851563869825191826901968600570341022434399977426957949470560017400799368515321844455916950545054774935865215393936680928014043543290936223543740322325066230667153476045643380221277696482970926328774912378813658699244725133664478589306202275995566673618734663051713410345644477148093884321001880425768421366693170499576391231197506199803794629389632687770477429104018544697474101190940128653385601071763080869852600055818450517827597911582751349733733518546418202433893301570299330271404374004764014936220273008474180537983211246953681037391344604833400750947122714203526529542146169547408387769467549049281412482181130505066387527525232861604546091553059953638098013814942198401919199301595301537601106988150989368775629681730231177084303663175759871081480788959750113670537608719453904814486877512380698584472384710890095421009683445620298156299415304457766346623687890557920006209469774096465564403731104332009945544540470175846225815725740156533161158092874214413529003579339192559053303863672318885383688985323132102195539147761945051230560767580245215476284519488978930156808484554234020403826250061867710115785483139448763607718175433625748389595863215260483792841832254446521932191470323782066786505297430701746149456602307266247104019892267288149205306858493665923149800071972050916805795364906032638983332745166158332537994687901877238418585363458208893137407202863535035521571714442304883162731558909454857677108953895426641720059526303018402978437736812988017668052059122766623357351597071808912410453212528305738364882212756379589211292067068112333573692358972289713159501765272482377365884781009729425809576970051057571852870974388496077913654502396547891264495847820083771511657363407052618837798801842998142870713569270582582004803288495558961317422945490474220513129866656108489261052678665985273791514957824012444330541839681352283155962474001396887866519906574558073933399604488809986726581606567366146707617032380651377354103221757090620107361072045545600807874449711110456457365133576144649124781954207890368139504162178468266450263165422374343879464398495104077930234218560654797942901836467625160390896483045554744454837187817379600162617918705766632354025891572884856872858679247382631824143314263778807592392034725495860425554655191880963524391882899794172017074543203245697106949267375929999842478546646424693611146563491546205965806971180200840175179321195437714532906464367590426631626027188416387753219933277529668762252910745212585347507065913728279348300538721270046095619923487943519147168795981565046825379196300984888074071972145137170266758771680142495010020614760563223498722349116006633746331440200528468716806597735527304288620156336824126816283997923081979993449378691849902024780010997599573763643928494158091280012936338065999461475364796822940617973256173653827482445833550046591968601397786379171193984808071932750862457244241368033599954773186259026984095754032322052968010141947785886662572259463910062408240122555785666451712848467456551767578747403395679575355191683585749377543076401834465428443896046018079736985628447015995166658719239393143306792683992989992953892648666975543347961716047213897308259078928580891761610546079554887112002348129936379554377157412223287170308096249187358869730430348648769809931936365959731549639191398950854472888524292953086311507588465263637069850595532983400484193842268869163099332228939300345565125081868446424143186220268795330569809541061024903601827841870059601808669664232959629815989655885518727835257134014216539699286207733583824978829000827943545653716128980630830056837700802432688384148901786610968507981615485489910120110532955078713581155464988564424879199863628853790319811448765156743273870119297514821104597415355264288102846434521190131968833026759505613499733077027142415876516145704144578957601789859957182197299522337334620044589855492119912330865453395555619093911813983048507295763615583483633106372414855026302469057632547517443641440278328481699593730663220196343629171286794584990343049209486319086761089058960934951422541048288734180387702670817507319930395531249585779045267461663296968136257337688371155044959497369279103827440285939599985065064069443329154648504962409435413518119960247429759026171438452147901945401495716526198846200956016648434363947520788976311772042562308893568596294221267517786166883890230825653910221763625270619010060283972916864385084872213959649404514133747249490230887791834709446171506764680505175261018539304838959730334876196260243745620957196554971494568908411291836182824666666923188088759613382411345953600679271961606579108683727512856127660711584219196474854565292690873973956464779852442467102621340105344603573179389116390071541999028780490588088710177011320457536864281357393642484400044397724217580750745976442450570613677759385645941996626807441707410112712327424007793243300864372083374028680717151678118670174518817021986421818149199138440934700369766763491357942757732799036095599011001708742688167583410641625608069197995088894963658783916885767091104726133489389650218689031854713074051087867263086881718882600931045238538865751922606812184457115163002996439227882226551996871162313914388487540849285715553516276947244954755590933267648201870118817619854602038022930600654955750633642764111936622712998650930002484502092150194463524769700621915824829485175441906654278464381637398060445657691071879532899153427596802512688211017029339957976989984528891470960388659753618434694386791503820737639900930962862435462497969872319072504839210879874890956887222104558453559759293146871572922932591986149287265957475914346466613373126665863724254189880690342832392137212422609455830665943382207848595546967065012876852173113580952328073184376234497532101973308394590813408987458298778532057335552297928409854172210920171987721893264259807996184769002215965343214869210694791742819605714186943055037190352925176935405549502195035713258582240452463734152465038307248011842985764456685623844455615487600168396768141928142947682876656854024727584510808995267571229832408796695273446510273744789773491679397307659622364498919307849468262119697094279119515239000489677876338914592531029661659544916939176324740917472812216186645874374823507533155971682767735138143367047190850370440942308407098440726197450397638398289731738644905052584396926531301955499393446127822502250955360754047574946092474832517034486382153602213008776912260978369691213451030685541073049877617655155613927655119757968940372340279736527060973523507705591683019744058007544804791833323828424410816633555432685885145280567784490165173901169548655408997613703501727306518677172451498237778650813413295495944683173888652859702351497639515524118652639893526828127747633082070322701116145565342349394777334271411407573344426710030003747074646699824883586219269545970418225204110525369833698642089203317470644393797814849559873134752384611750528698045133915641990384729060046602184294878261857339591789964389827950883617267316017459977361736469631445828340907997879769605246627385570285126172363296584753523104022085231160035888035324762352716788097026593447431251327837782748855830974664387690311726478708798364762201004579402714744268632177767644854862673224272343612095470108454021761838471447619442115743668944137898061023871625178623521595277671386794137440804000517687770033894250029106785823105602340065930237907252527855049843405826201177283485851485396609514568496766753274155721053236544741985338724099987792992744612030557929606908956292543196583695350308683984630029876823068990708306712064722353696790065456756145493010286678521160976237901151052311251707797790455218507239170756441033635081536675533258982489674205575495531610921567333696512860133501635862451577927166942303079058737055700964579512143722736137996006636798539302151410365302013843506022012731614616000878604738482404066038919970309166293825588992824227047456619264478395007035553269032756325606677030892163364815827715584942029319322402197028106988047974473453340792512925111160768536974094665890558927563088312130862345830583793325328814137821076436121173982198349318240539198398729627807674237204299823089785161841347116097849359261772832607521851577781738212649658605134179145910917117512627443076568279234644907643766256139836212335348572294898460004076955168600113031362511109719741157897116286377488814277878242685070921718026177862341455765154051277597623350688026218686586724888339492287392329272005555049585544255238829917368623408715010941016629309145525206767823671370313518702831767980512981251145612299084615561831308815524919250433950153597307867824614255017667499290575665074957910761989023989760804437431558063930421090835020183781996982517622873097147476936862044812616769777022642914971788698000437103094944052225674482403637929767925426723063264619788443561881033031487006860377618591473400004983617137948905348928689701293787762348983586724157624400782904437696972389559165405092459766540241488367080918716001750496877049934772081162056265446709722015870318133899312114090185491253062238848521037210560015802799603766842174125390744078112916427016080237850036130414975412068876177104068066812736894482121820852688749209511792226424786640619091167657692544567202852314564644889351725019387708439539117767360112456695755354960554835288341144973730194793548821530810679583471449156731081726187900468047280735145021420108954422282369178527656707026311894778131580309783540019880352586961415599335637576530248821826510905796661642856927313764841386093062554099602813458622135848979196763846441976593283037299105362003904273890151398483811851763821684977202791926117604395373196244032328468387811472797852032938289320344122139223453485294183596937473083914630619226533094053309268010671090397407567610314590725906630774928206377971732286550158913943495781953339293983247997652166722255077566661316003149046373336775166051059012472214130602045996336121276937523521076879386208368843723127335960416492948343336524613232839831824595084469499285061863286783423948712442261388046194274122078143067112518281451925554483638254802899729497018992031074558496774653091944980402013238974950363565773199030854505542584261929525718404756836512609208152492843773003430560484074080209072721246908536795724332517408976711126906790823847625273455434494932396095351570266709591313644785555474350933603879745200278151152113888931532730763862019731140863969609102662809417831061870945906322350202427157348813662478146349100077550343608756853121294486577977653794752741964436032477904479684562052511355307996360426819701343883048286409302343109131084783727628364865563639058394507839019564471924539931146383762717426750368572886721440313112681889316589829049341129740883204732577748627908321485403024344656177933241477916455822678737108422650408676145866134484102029182340844892955820055334019572705679378276035168909355965343494924395911614815430825086683668910108677005123894267136736500463669799486049247069314231064456694297113519492485107209824623426397265633371583551903342858635475685274409167344496240188213545700773637893226840733070601529765758881177185051088282623259426671985408916010123599708112122666508929406525218633475784183134470273794777520035250206117321666377357754315617034040131891911152285580055436519143890712269221798789766770957104669637530241724128762885545851004893668705525606857993896175006937197465664678223433062525453718074800510871953650006862339495637186481242763691253636454068560279279017018306743784697478074524580327218579813916827204710533595166911300133993767607931726363407267085993122879951474546994369609475703037829973378331314947057668972197067697602107840457095718758151822901043338015610944934371772412256509227447603964075783620893381320710926308942329930712543098191381906591924852657815333021782945248201605659604570108008409009691488492162535222006262249247081771247848017310660438779867162068935088038398660785430925069793683021660223608872849010935655312944692578928891147022046110069253298289985514065024887308136433160481885740925253492679741598332837205229732828250452951169820960904416688348481280695233988666130062004071319854316274500247972811761888952672121400257581493442689127434873058622300383816479813020154243224248579889281167195395345727170221823156579245715119361964597440966212817422433474910167412849667350436435308522855583961106191787914618565969579865736368656161579546444301241501004954790792712388475175432933119502517799050964347734101880814781077546940633241035535334791319724889453227038519959607040949766332818112530085029181664235245919276024083897614221086224859150577931812659553328964998452907105198884607870752713622912714553964961381670910911059577138342759444529763609693371135725006291868327063764438886925874610417688929925157231502845286809876292257121794784268584690870337928998587918542585386187730890088364462168806347608401558860981960519273260620229519250839070900156976812863984814946700402137684070851126149666457551668086263127932369224202927162292177395483961786541343329498218006080762250369572761538393206499171312945625791600641106948654316080047201144144114534517001643993111888624446900358821227684593324420616963477735110502350607948467998767593158493016563366229561719261110919782652267156335881606968717416636997123504020084740701100990143550924985785065389553037604669775540413030837069379510968048867290347317649777699180711791039416448489667199107727663784151880613072073798386876250285646750810368637046045295215731448377185562668216858256875516899923540529387629272077956541900002963573861380562151301087545141231425713901858663507120087645364636144812797713822444702561694923200576752516837531436721103795634998991231051579082324896918344919001344630178099184339522269196438315286687974402709086046729697792467963017785326926141785004078993754160059850408087306398285857653582678967335166823451201483825786125120522585707766013752440101873732695007664931084062677816856167460613843750454807816384015954696038486965364522704840339443049828901610589238550491480380826591732953004303833920017806596713559173320563522305894190156862017914955495203944327661256428643698390134305134973399462823139102881049083151904788281296308479230545787019886797731687564943992660485473780819898731244810659556601378478960108168499743972651439431797424060133185695048571638378886012073492300847149627178033136296043386802946691216732264503508128442400167767562921755800624755567691100413041746618078831828278240532024427562883195779662126684055300788546250999951140956333367556877300832391228878228512242514609619997676521286733233116011115679841228429416229752018326328355836764380515146600963666467476453358379630288220032706912510404785282109092862256711395034339428019014714083445529574080033782896355758060720975909528234164801368325507141367631312877142608484169174866580554450142674841167215870527060340803280044300726470473700388865683452339249924184962840060192981228916298436024861647526629318307378243871239188775764921093301881688485128833805626071074561653619020842722977986336733959912200099868947611955402439350767473601090581756907978087479163227903760041673021264167936977177437510619897947371367570247296062308722281601157621122377924421924925771719643525252566498954939312071593121393118968238291661235405620170525612056897996653079249047153215441683576705335626769477699054776567843688948964277003852772833073970707270480783503015578126704477466977493075271856444911575522563440991938534869729727413042331640268255762461862503771282653449713417199485920128394958164995616598365930995512797210857537575778508859907899182463893302317216280511050669939975522883218606928529101410487586400413785049083865385724916406060168132407835693103232435757902466289365047654996325510553330184756211856445878306708471830601668299800209355815536736204194696242371813739657627893327577303703720325216360311392084390836397032596345526944533250510224474459350458093180173911778003299643981857441941128270449501744235794080961783451522513393262150633349146725313857698277160165703016710602605134215474022534766121866578720470499665722347145668121073589727102702077176171482382842563449999155645081039359012806581444449038025184726479305463626902353746749000000485284072405757483692170977548708072485697295891071365795572821807965091357587513075198088877162430848046500350757449875906644904999187084474029314791425253287657920029659935282042061364393276671533089327629951290696199519901671099199973839761893731393861402244896618498943766981500609383544892935303364286249503531520923228093032755511264943847607872689384116077067319179932713499030323642528993182105009767758463510057498151706609169469522086410168747991532922430183395400615289486196879449036387606379213692782297078310405039848199904040771679593263948301662114014201288110329424454593215242380878520150975869094167204586106509715258365591490227553008171987971879614829145071642152251874346547848751368352040515595533665158249745507252217545696494862413444247633134947935556249078450741077375937096714391873089491506817157504977044800738237712180111866337491607286103287504939739691958456886127935578108845890715685937839091883924737381135326564097880559365051861947390994913723542234891747091227224887989558879291930191677217679600219389740204252535328406244062756360884461805277587966123390841716464572138181756564597869314956898556003992815472680676634700662157497450811402081228274715197824127967099401805580889174999713743575836249790575358159110572908070451323810632665836643475705168406257489444888840592330424119934856728521518675053507069178976412141702666892544316979490294528374394337362942083735940771453195346303792569228796608122657066976049470464983998123927941378656525596662176090143416859834506693561688799028504098899408284540797718078732509649865208121463861192485846293532817686989410120675712452496306303220101503184799486861957603949789222136239569377403274192146725130172705242374023872278753926438018822135239506859954300665953338513376314286487635850912061464313318444527715716335744548908086257985000836805239700616853199877841099211824791319815573002156248002123897115448305653138194316287572959945630470484361316404582176139970288814628078342274387186874084634896044081066007175851114791388148575923324173337988288688158009093422715944451748446726205121433094730091787086399681629551817272595074921322483306860253275343444736615493154232150800327831043156184178706061332018594269883664776998931196700364380060554178419500520433968656822796330524983292689582537450421305072794833682886361176038989610106374188238093403509570780353223194816525409407224996494515146871357394784139939419719084734203191809502350837476191936738796900479276279853151309866592305293489758361658727214778068459354395426309302870313616321474197957335162551785093853212553408301880158743713614489274794788660885675575769404677829679567596721664983628922993266550830559246889765225203390553938000527389601359689099586445114102764570672574621677378188718256508925765643905353111836320296594678345743633862539942774613958816521977211478027474641633135146250658100181375709148402439165775621256595329435665586767804274390877533826422477933862023679904596103671029787263490556322306385002912762846105016003229916824863297114365420152654712517013991761257305600844543032404415524705688825259369251960182926608067129503277768314381585364547488360328251267185581829871126906224791619837963621638922783789456063400797028172201859667077523293169418926025354084391042806577072077477657445110736541729395120864340294767478735141158127606870165689147238900818533715273784870725449816103919630895784142188522631598326165441737863042062369278402504500661852053883041041004719481258066196842489491375036722806714459747241547710559501247446033595483128024739345070024037375526880760922366524479942695062907281200086850281581177532762580375817468250350471919346930215944616029806067067086738803870826745804734145137283427994750011086941554990513320665267070124156859180989140354209933237707047109122751962588302795490232119128517237683130805337459955957482298640218687192463198579950750165835605961195715492114451931576546656537028398997354138248567000949553265603432372892816906489132074115932174781853920044033111936367197435322720239858083706075454634124709467821854661762629502817354106645225214191059148036921345762365444739433029846482229311084702528963369935061564314889553121433017484675603322065890365453277937712455245809928331666274191665673891242646975168402820929775291359192926892998096579611298644836274052166317588005165594048015374042928421585119270275004355489306883073956297583591346795740251469847881829914905467179133867510552124582867811408832619171873603384260462922066011141380986656738267466325164754902395782635510762328482693553559663318220078860033003775340232706080664917682275550198428882378554195363505281829566003219670626835308888850982514088622722799772968913794936994344084818746065626459801272517357694024158492125926745050110960849862591379929787726232807991958600783970877101953791522648312108845993163905336035179547224103468942222168990855536365251351908620780291675626029802878989325378395400072181993656772985089381420324877754364314436661038809098845919864733490855895986430463683866100651240287814211092987593947155078267344439248931644239041938740897910916519645939893916710033086327890425790739015010683770352428420895541815286022638839932131352075510796281920021056486866581606575411399498069041421076940140909521078423784783187526462145735335176485935337189315827231076367436280959277864396552451748853678569766871369195011863180024366764498539841743263544795322872509414896103916954061575681190267260351897432258447035690929249586591509729420050658406603482775601134849138795317796612144559836073452085602741617456948348715658395259799672049907334760746047321556612117376829577906294702839741087575312788329958236330305943719747650610941892534953624214026171363192435696377183808613386496428166419535139013974420655102849949097843321345991919800033723032181654474956743332688340615923249397996301123335257843492736040543936100698671881881443536606997301772720941919092782996247420080237027243027419350585220617480718891170174624981367196108539928406992550423569550778578194549253357370556196104423347317882216206485028145190666925227454829370373055669259543861228443269636643483987944162996307235526322611984006681954429469472473126195375408751535765538353182240218553284699419116402281740959555548452525692426260527345739190254933846598416048333639481126428092563131998456198315654029015174807845518907667639427140210461193816270709666190375431074867134599630182690732232199426091087691920695714896728277566083394842098234569887519512368753570361553215573327978571965990913235230758048157121447150402909442821920258952174076312787869124335102540244806495306849151604733533221605375035449139665042019631111790003334422371452083618025973996290938375094350477292283495220156313214531100653344709773483419672432104041080856132563255945950586920099585490106630164891754301262289577444257189675830119451205220747635550556251437297259087167032098327383809615584848249604065557106290419052303664996044027637914554724579461750495114844720947933718535073068809025330773882878233585047310589195984530607524048237757475274460235428608163490070903405223149096440405946367836176929194248175406649444518513329355634270277562893113535309368691661345316524375070245188552663508976250178797291082759213819090008901466844649851925506667070281161168743226503267273983498682272874274509799462470500114299001521396265424299167080508479309644728726022304888629277688862726187344340033111155836766097426454020765023461266584861833542602403532258809241877332702556655197679041979399978201447705432994955511570678958545936881619231986134477466561560652314206482752170562830932072229452319072556436514012287613798159811521340661973984205308634456495129470497006461582664215003332324129338997907880503609735574310921608823624455152999998083900869863817502230622803796800262437942804712465327207607337697479619672910003259267794610191928855847834549969267777776891520732421495805756337092852387269709080585576393429061687451267800563182777489693423005763513342197548695116172881207749018782884829274766122074943032404412231891898464955759450009760528068899288531766251182131158197772740780571140794082152792968008525331905892583207717136897835077394018818108319992325616639979212199810610958590357005855997647333998465685922942839828799687249393506295603476883213856071902468194595404918167346671956431717869306739872093607893808659602286873403328567999663068550221201300195283854436087947269747237451721446458848396562208310123242322445387402656564991380535805023006847969671354229435031633176700707025405343385349441895846324678804889853179133497901822483166748834207310854482015810782967950417292256206262213203744364817483495311023152486512836351460415336626288073802519748986582572123273024009937759664288963776802126515247280932697613402763043863385925642958528624094283816824513000114361784090576599884709263596385561741484141818316591557757124902295780491044689361749598809176406631479219555737523745715598448185297398117910642903824229106699321984942333983391846052825729087813747328978131381822258087664378274606294716078207000943336980668363369010754568939008697312950205944389168473774446964690796885704835882935615731671799846315512824943268347494470251329166943141837871265897452035103151040407897108810906854843928970942342332216397324712492670332954303764569271204343918323458659067198320169556260461153690483293951075660843817121895039729710583518902960192267229040753906605925826637224541149793326374951618630545883969126712275236777282506844729288581987427937741973501566598988176470449354003220390292103118131921957021180240664474174319920490492352768560831192678912748171591768664789724332599837550315997800031285513810645822021915177608593575530785809722280179422629843560741828199967646749225845199669729575195143656665982091412108302220217406458449049461695947578537712856132008190129863403347817070250312349678039180955875270753081259562247640467697748193236232720843785358276352294494672132136751674193110437795166414355333324195593694081322876487104742163713738181921569211637801117274253637373628801697452816801656687877534515721448585763498292943837405398312805422909626158997660930875195183885532589611140907507296702729620866855777388782382431288705153268921039303796886109642898336024092589544743425337124426572915770622143019937183500523411330665837063785863696789309109300900676450864442344609644984246509094407355536394798630174323959790125112204679444676392985533933278231616796260135232034915937958760696289842484242249722118114900278676518609385195223844634136351595503481864049017450356699917466652734424689324061045665272146292558839833514120406636832514841368349867628232118217789020146465593748477482788306146088080816684824563037492907232101511005684849262191923491631766827173718459429392175015667817173250249660543984505012084378459932231568848930752366044699315366191323132734881367523380261864317070747518588728450310657413681658435449529422129432267200768859590606154092172354339914118948195558304527506862849395979838785954451063144863978335787099796071134936622568662129009227313150059924528665884984569203915110030562142517914842877326790502487903335124164752162335599021347684037239750226548503081143286537109217323549277142114631858133177471258935655649856679464719427636991517274280749548879146324765890050231104172989187076036227218052951617862088894133480589601340080800780469596444766779462949110722881316639124690098252349712930889003207130263639120492620055871216517662401719207185777995645980364660156076123498531262282821576158467503859439955547886079387461749097562321550506038385687014026352570452944172743726017160043838264069053810013744791593824658978112827312604571534617759468787830150429064583667829460543228740929496810107838271346359709766206060478960579664953728815409768874643135296663501016564780779241563718913920054258907899736967476675952478846957120146462473345950627455440985207118690056776059859043335677540504607176755972640285201999139305055112832983725543555743016040426151587816606798748669097536901623981478308740582703523782386043948124986788834485830307302057071307647916581208861324515840830485270931266117312420765216446783412672763011349547708241046035352826895223134886370202510619947682783707071228191383735860941575384807127868140915049015156887909610489315260580655729993592006859543322830369395994224876967093231792012622146215966197763250011114594650447763372906833825404989935846335358069084929144608925402725123540452480760254056100037284854167519669547572690017478294335202653078382275603561399722556006110504022256766058235194492707116949759304929000336037823517495107798312101526519214843284833196099343389636998857098949545652810654045705153046802600491159590414730954888988377763757936030369661641198122295096381295571818231150862422360450920954753494684265692682739582424981218674668317063557488474168454843616560332572937028797225698921275089030364046819996009310378126073583157241078679427015919165078681212745611323565638784386937472815287516660798795139248135107828793752459720179921963045161386289252300144884116350620327173057134717155314455576810851323842599685993072386064197645494767895061039134612563221437308728515548460301959254825388506164061464640204498142881324308542328639084262036730074788552462445458956665100186512587968009544632022210314044482611732733038165806243462783387793813162008341760129567546004223019082661298514973511111510276154988838634697928458639479380668750953513808246901382675417008308680308314757193977775751056431339375785395272468659258006061654647785092952681841749891214532363084207863108550291964193732546317918610462021920933647123617468976915007536988104298263873979050163742442719340419294090932945254432640119603189900838913795407587982866598919013604422938974541767597450843920159774455455322823024625665129933852998808309743892036319205336792581786560791107392331335418028602266144602448535805313779275633015010838327323604918293986153203446042374492151142433089834855654219278050207539052142375574234302888476831875288178958014334115146734493711631300349456784115278926949303585600220914794164077764861639680051795347902404871203391191187778364259203521368408193197350309709037982377052892071382805818726406546167083272041494794409339506623899519298536806676744491842839518074874603167113431284475411298400425614161717122179327392664487354889319233452790463789388864573672751008442315692577432501379401868521704227151328589826535034986307212712912047383701230237140996259746561833713488244851800235087234433012213015112448944182631002774250092846625100198658212457876629053071815838706798130206511771992028048741337289291333774935130024930779348468969475466311675949236631730696539993191529312162968261239311955266277823988489957165138381305842934620695982686086325310927696515498379868246351560844808031405755268852000733342856197328736211426126099816321893470848087457844238137873725215632866960619886547401990911515324485058284838674221906196328815825319033760892173701230051349838342186337740502962427868950532073725535177361551939662241306966539385396367386575481465284152727099159520582004600771052381417020693834825619947897184421825186333190478872011492814950924103156349455054810118118155027072269045821988491095156713024743752793616090530654242152558270621315052925931446814941032617483440695501618660726393132944532223183436236495295674771037879472330723423429833144395027153803469395072887572431030604416059441235533174044351512403920063120728812169969380478359831486738658423285215437262689894206344903388569019021934675856387288360706722280204291906630680536630554501450747628207398633514677883018245183687130989567435576168506900454628600944436000739913768155435634038187944148069255753393591045492269924515878565666821347904659413734108761245505829833390888976907307376669201740317720582738002006796829478011723190517475207689855722775999117527241274337792760631522046938348541739290945312881387674605735435775884275466727867228728779178636402684427540812847781751553369141733415526635807448053965133663971809145815999799022703272806788368110277879856183733320561306937849020835841213213147722482088595777036451434362438346959628779797936099613820230306988426477921209097751066134361752439848715457139440979466469565442579282500554528698045787697806581510842004683249314192343742015008601973729766594013420838655176974903625174388464624339227588617140529335113923716838728068466609290932206125256000821798696481470354154159176024254442345751197143365870387362181886934244707036450732217643170363756848526542423687786368450680585256409581816619104994384663895822510517436438334507646880701061618043760356878531206605329498338116667704489707570967514374104558787557380778926564355446228790443580204953248717763786622965181328836506821702976652559202451242622006413389662202277206239213990593683284761523909063380921666228744954135328011341765767823769003707760304122069550230686908916643936086663235761706108663911773691124253119947638859025729282168998250317481402459128484418799664064968021851249866155327412648507609018416139628369719602374497673086206780854511214018605962949245703774789907949413431250987019633445562697454453605260887256918596248520766998567506915616275472546800961320409818378306018992858723270147885811467360092909337235175923741916623554061873746730939944234990357181651851582080506711308536080183763993928282427814302517379087674082380030508340716187292376272585040077032687460857963385334540940835602180272649463437310252891560696884533319255606437550307903599425879330824841285290644832199078282120637018121403034853832528913769765673554046340159938054387157234927007870656879966528501900432613068112161325936797690391713009184283975439752289849664269170337663809319552741827580844602141778551192741851956056479453159176295620592170762309179558873395158023029357406610168837287085082531295775959614019585719168923955566615119725287746183408687553121408538356031835460100068468535136514870350862462836173279638767668426953564741929876766581651906567128078218671935527699548425470057621195944782576441278892039996048350919292168315779160642204583240495351234689129268156086024077983897459722080166730943220691429144982941097357755515262914902825169776090845091194714796078113760977549285732319734598537005765688036660014259313394873582231130185075938525600342767662067883058459151398230884804987528568223121880243172256780553869280006471255109716864377281255169006120519755676023982239554160807152999548572130771230606494858490571883536552317756350331474553651828319377916633113026139749941436873075165633343058490108766707217297527898521744170261290267765123625700994021058066041617397345883650560568805822875897870928796607511412687276212130503688224093999316708126596452835696101605726408538533253040026611497825552484010733747468701778003837006173251768009080645061733672878850239322115926662513488536733106308292814750260217162350348508130443949046340279006328950168316253456445228452294285834312595966988706199968957172952728624677105355153398806999920454134781532779088708002744759755691600956202524341643623055884048199628676267194307409450043591554876735091652785417705761959408333022324157874024242406550329061973541564493419395508099736557690462260704593236197432544782553270352712428462473367097991153840495510341984609064993258670831295349937974871529067470161752402632273499558829826980219419671575352560925707805449964956983611075878064558127309981566835284436238427480633398032209425645060709460210023025657255216546195790926706576451443638524684108339188042766942263997280722503776564002412700236408562308202515357796864488906952369307476462891752336927164242963646981707985508430010018743960163790729504733229937096282368238061040293441791215570097935004858159252862013174629756669025092768815222206831744182801831132329403798521720089110661543910385253453182061075286148225505004004620482327304481281588839818858341886588641908065030217836673765575790055812857398487881918963145576700304867386455130403239669072059494480611678939658463458796397000506224011681228892738004142418686404419236211056020056691871542835518573368440482231716083922539274967170160263440687995652781361992777811459000508096937674415214155938190552230232555604641608474837019639983022349388498331061003939800260715653624018059027156225898753912157872527179894867239160234640244873090812804608706360218635110840599775642299699910474514714402490528579865849315093507367459159508874165315234514704770923197618606194170387370619389868628109555485016949627512038989647265228640893495338763063041939705759841569379941471549702682957936915394529430027896833042598121173526785013404197265082324498912958415706101706017642055761032038284852834211670245546587077019781062035942087736620863021644122040018045676106052976494058213519740230104670864510338311626173681776770605837592667462280892342803003931753883998602550940375366592638906970446925439227961379206499870469866899321342634096131256266831256742295857561676593269931065011565941972751084030549780109146177392352235998027328750108536025792859828544943655532587289360816292493808184596904215394974409134961128319970870533568187608619843231331904721632037287011488635403912672317887530950461630304037164074699024476263654149644661135709081576542933911020351749797237085094744938221109785715546570872446423795314575380281241060330303322146350173974238701566173219370286707852191608434437919702638451045673966925499793875007469360519531146424926752531329121649306848132118460231183296043555255110400962801950431603210253431249203212185367810487626069383437586297165985729295674499182711982521154933209723762290444151715969284470697664773657275408207560582001411818772812220939457457733393021041829986825709859195353855228201464177157212768319394846057230315785620538346017261413653711641006146804607524848843872794618642046846286974233858345414295434018484626258437860122696624080638250827821548705290621166794126775035664428787035251549679364232328868301527376589935000496517081407415850562826655267588972208572205367999108097367130283795860021285626245784357895977487459282092602740304912230108625029109260881335286999229461851225438290027473448910066935480021081704465776491664834904013330724408333922930303808676137010617307734337897563778637532289904482137476256237468299158294568271124340093203647169151848719411274490388307433999985809077793453765351078237657251148599040606119820232117511446434770751271766785416155905916558610837404372164483969271315642705166923164489670531952515924226024675765557126843140010944639655554512832434887762795441585883070182825609427863794738705869734053687859490123397627433410424378547296041515600245037679141422658277967045641772747301142157409483354935272128249228704629862845215746937402165336486252957367142960987879628181261012773990303603467282344233264999555087125663289976287209810956049724994942456280143147456720349204623234600472414189059456890235820045650519782628236354620887263248800117469397299048368321897245105307895934347748829389927558599653094398006469533797024983820675409083525499722637875186285530538157507210926482974768369968850972319160626676788664073209127886608170555407766966779325821805592158008461811885646418791945779190291053535199413952651196291375926786758308062022385949706865402246627956797450017448604074224099802139629145143122368155148772601801437530683512902581567012191044265287486441693800431271483091547753178130484888580543532026647068546199764381440604309840848260527202833909596784966699969849403507120965276413324151186925772550941854366243735822346778083856916578464555515890468555904281376752235233038439266515016860004522544535466547996146963664127585111058706457105876405791285110258660560431558234995525315434478312136511841219532661564562746856888065261645952131544435587925847432765544387783541547880230523899600799330301690835531175466675835865145949189641376350302637310718314687189764452830717848121681095328963657169226634150544382346192059681587080214177138227604197750069582609461644396477575719157175672952238134951912995213618708030068733477489286304305355605094616821740752279410688244588388015073797862949770263580531489833511514963613820582924586478195131849383782159569335306918651684796590560880535962989128102089958025633986345301273140494134902829338277176862367748681655837001403365887248269443471064916462235743217193564202445436577925946692958743886238011348436086840062094802118780652938411202883762462017004955931023802485025498542600248335897578511727774854825950059360943040047036607265837242796105958096153147378568465479034041319245678328520093688878665289032242380096834403617057663172514579536704983502016734780395152587339912664547750659416086622281309885067549925034201207027978141118947041333558463758260571235463156044986926130630952067501810981899997989545368602311168971330465238097740092370643050421658706488041095536315244795620095021855581489969874161732180156231581030550657462171839032434964100165043639755005962470737786267162794095141877513768013118662784735118405531587471458360873611801539389144668291532187509806156916819831077146619677680274278002073756402489591454009609501320567061893099754766160351697178019085501557113087185181906664155396535200513880934690428811898667118259032028681598038305775515761435503508470281719076753128425745696045325674323915584963034474027090747572492486695176862168065403985079665117955172658172101006889648808624976624591820082650889547889826579569550856519909077782937720005911096759060576183988414765095482532514619632236169874771707468161891260327861469163390648279312822739000454386011997657974716905398515843472968565528537488961313787930086848451364094441908826243189049164970549591481355576864917562450452747722279247499220843234578674722136361355906870602027614125991279333829136039441878708153745136281361537734769285348528684189665223090228360747011492165373945133772145917580512452438983338600078421114740535307740420212212191308109443008606072872804224507904767880648391652972320276581694816276530172304699474618039679027938823814703654182029898257358677631188248173126248505747822610909767589109545453906026311629410980608482550327895890493365888442788260108060160846677523037696879570130766473786040308087462946765522766888549090718711122724960079093725234328903297013669389196768437511645026438803522528424311388674195305253496630054852892453756819564852333401286702637850459389622734492707582661958447913105258817188747499566953062048996480450788999596024776984822101758896346008533541756161736799541100084262901105448906341787099840119795202382117251827402189995932029825543491933375718080036358767290017749406437640257789571557257544177393242194933877698389658337718986393985030375733504153128759705312171177318449435283355767548032460433373212736509471622181313161587616539329600336469052735416537537329435892242159885216004380075984232544131018227296733413856382243171152913519138565318716761115186162803735816989358954241675614766324263147999897773816180158680635613157343485108827354309776258659775874945766387165704542319342680853595490302311722038515504133813107083013451231287939412780175576931561006308763973622044881240499441010422422330729140452077807644781887430360947623596199857307861723789910483431743273559754503459440348779462876695611060334114088000377054935880688243304121789712838910768758741929240815425032629075685953755340118909820276827181788064747432642829676207787521696863452876846667981682639474613019100866990017612257632270560919357109350835638991318552748719071606242136996592001380477757244848955233007904193644227472479246171647445954608297706856133025889741046978570118006101028881373838086031533004435242571821401139109396136717735503274401425151929189953974954867186530951382658242730369377317125444475644003869024048709357331169659721314776090703976394186280731117148983245689977120913696096184577076342770181801542007864514432182971111276942571639830244523987885248812117685531406015586510246007039930383390916723939660117339606541496156869870938740218928147524856481451559041550370132235861756226385244746472740454278829964402002297399217651016056609800621696703647977546945933845811054179973149776308463119217230180876857494354418948212672537536396298203405242832347210604372656065937283460613531267677435845929062624109503433901182454860799668658709062506289085394432084939477517649971515034257006340936392658797684509107305125787835006723979456455360354573447444794503827617674161914088952514109090226732485401957429610175126503800427819332848947817567929911842942461048435146035168124826527602119428309674762998812496846431814745410158103245091964075409079376055524480355218943614972402659429520925850347033449472902199727264868214693952557093210077242383439817557483488560451180393566730138893358627938877072185004755497700100767122608778698329044758871981786457982566930991540403845320123665301115940878846041083305320223528262407179502429401541832359152448676204854432730980060217202315044468579608791586688356164014087644753593754976342932365004845631199176473748179009515346053189053025446293029227029182615567480787566243241768762647664914076735620542172580448954749009207234114284614513201637507655258194560593952184334234929313197414677740626331062707902856217207809818424302084003016236975400199659810718366304712792741854767186160243205400806732926790177830026152794217114354494143769681289655677008715674908444478468995762224423076268291268811834101458546187906061841828833089413498667485811822368030502512683518853212756251865107077363050458644646823725311686032530911866435817844424142713679612094525373143567959899370125532834607301133035140969959482700048575742410936615895573471352116072606978886258070071682367639111042930734259191056115984309150738981513610693956967305579661897305644974183722802424318466973762388677128843139696943478857937696726191926750658482517920651361421697780063704172146449551512061695974641919490572178980111579600625671193560647876636462275825531508602951068829112961922559374132684784176705696880445370887076989984138563519935595938077430518591098311135367101609903339665571416943558500611213977970330860643433475558116178132565432201373679372851719743631284028519724368641916289964293310063120800557984016690603017154496600575992466472713555938723073957574991605312904031470978222936319885240641342720720225866769324466710064352099504130750755815500934378482897067674613374043655770190158506481276903485927089796181552498674703681265058816492465700634565493445395635236846615549306087224460472003906971595892688108497602486061991002831845846173516987928562554258572011531754325977557886511390455848697558964248047013647178902458574508694984754354401410008981307048945787294670029705447661574489600825656953304666604381246700323676254495623271215126893727078557786293641744155675409110776966280969869386126351349934395254132890339192559627743343024245758346543043931990919405652184377188950481745730241137761796379190263451986198480874257626241708708541580378715313414790400839760747334662263958390510060376783557521642594299312159999767204379107590373316801236627546069109410954618341375121149837127067756610662107211578664535916052066477818262696384986124662155045572120475217265400728213352088292122780633139777282301199296395965170942668369636709394648883010954780378770207795539218858071896751817073527878834708477639127249490147768564865440852883372608882043067863968935347579421001246725344030158482107478083284994491512912723356791273602458496299154328591597026048884807235634939230245736038512852387410287655717939525421262213350800082337084754074479077247862629686726134779098360844279632271654070328641448346545232929396074144991999084913558193293496894752208254840953098893471329173560780070384511141881765690550003341341014402629350538650923506480590831652174321970269693065580642644948825289384829204718953297370116588935373776223687722233053065101366469078919378125285932579531656152373132759461366932177398699186907158530100473714131342911098258222873064601858206660006146257933097416307365989008851656869140289756639780451762987637478001070938515691753855993046690869784820734657155184691103421259883016161624058642940420007360371644294753847679739529112804445022118316108427815502232775920913245122492755646364080592003774179528750413366437359059744987526357413490734873727116260685656323243267085221174070709194423488379345225409277962251520359872563651054060602523687176028684597069192510060655091318061180294332257413828624853043127301078366293395384360346419911988571231117126214430943169783388666586296856820700225354630533845959330756628922868955122346994179668393120478567197778891528784639489872133571597123439556438563071530329178833175559272480986716913984078734105036968694156891194521657809437889381478472740273600454903336595943191618661929215558601563581158500264748327538638214308225950702583471541427407723483262837272525112941221591095209308979932017690852244680864117425053518643492780516818107842220483589788815802997253843842546140350220551893510951465858767848558381015320256098370268343621138418556559466810691956722070185871345413148995975326951534067940079929467755305901394097494664601830633565637313597388492282242094260257637688071876725290486189643892016363619641073023307661175527656470124566535321582817717554814938220909424888868460956098166517770942662132325579363860234467541582409206409018498627971390934615341781787939197345266300102213865212991713017632533921634299520144382900447117781256053731715378102664639012125288049825360750415390542639012016958256958295960414273085599666575507335057796722184109818421319961238801213481273056360011218330693545869963508498016488660280910872876160191068221899474979491021224870555758119765663358938614342872109925154341919495598337201788964146129933347244173287857273769657568958826125361766844380001498617329525760950657078604041789997264433684523857475033924107585210950371085625098131927864483555856702517481019266100603449153579834014023153768098892215817999581678793558152580376009221831802639317626123111543428708775489890150857526165252503932485729075522028077218771518803032011385747090557332121039720449026248218665179188444510338499405536272534251021079272536920138412901007043832038519112881367021875853671790359509080408043688158343996802022043971622034084064491182453118813972648471414234873649741239364012627597253288644104861952020416785881540719270080779470202345483909241320541919484653703631157566302842883989662125987964277749794157429089529557789972107674784402642124037421479502250211644493842791373840913315896854160800184916919297952979726518541335301796646652076575398219756919641348280009587929944541645616468126237234394045543531390266882010580024551102578293366067842733249870873228692223484896790406559916141841522161281697524303432309167749615384561816530627746976108428062542553900078456007102015248263315660846180885361360004930985772183898343538644888664032753835296629612381388893038479960496004693731920593627396368139283421081462096657939059640641826021272768725024790622461555826750069119680744629832490342624315360141632055228846199859006479969543278611862548360978307185419298115640081162408435400013877709077589260243284768627140614177724215589108262146673170100703956311073576844086688823912926606590374237779841150115287275001788290209612371016715410616895750016841345353414939658321881878203046390056765119883296709574813130857874370093837229823541029533724756733990654043546684201757557871818786191584889782382739866461505294277317190199979199046247229559865968733937733361089937600440019749734001882273006667449838139517021045007763732918971283937627980251185682168232158741476072956337275577803184108887025682820917399298208711119230882776397947328966622206486508610896701661841674840888956608172189393241361118453463736069753576105078426551829416415652990059568744446417939471558589181399354946899478254537790105937996968142028808140758855232197439515134511675493935584163728177544781043053158063782379614489259611835344370769025353218206935155130812157898492112159841741987801863691532485000043338813996163489142093170289901711901783141159001808397018888599248509688151974047723627422734696942654014617384394312911036198942025960515121886130803413573674116811215772948301934328258594298573575219088823422060857036742579911578003539885541595509100441097688942990854617780890975459349573347087547473860016017314279815600621107835099762662150016626541704673015580225762347588026653271617344949757101366805687535477958560065900605482408840522262306365814381140985720882740938490544484649563732479708193230432968259859397004369016435927986713365014002756069839864694014403666341108686817589224082735778940929091362440997533318341519227246725615563674633305096564344678116194025804653235684326138875141841150657192709290180613462892477265079984120968709323256439297599696235122445314416798608724476347965480057381378753312487268144816643839706092004097401978289550883232741359250948787117534909546532061663635875350074660252985453822960196217953196663237140057238499154464828928650195539146778819649601061763602790625479871696329047977567126443614074107145548401257334301138189820326753218055541689805185121713583665925745898224412383061697528301826104020337882267363907758885914341216136291796730083889664309122783162495979251014878303052177263083413489907838391618799332708759352746935478981666074262347006031551161853595239688880324352378248280232534555067595190302201687542596894633973603400781657388688568811859214554191596348353307235411108961420207012817808988150099702984713567204806518494415736595036333396542403291035523953105963263792124722318193481828365908122480795102358577559670406972765565522201968371837563061797082833848244881441099215542943478010975037772309078171355411118586193317671709536677612502144438766199283754799057324726193492275732971652829709066137500874844753542781623002483128520969513172327696945394043039954973184933804130941506607617793909134438696503857261661335565175883888729770287527543391558107453109153700419517977301451141918173773252949376768759633438211588482419412136934738449363045497378425924691002881029960160782062792866084419006952194999689554138369262910803747003111137975557260233697746603879190121021975290834055453207056304735324183938865720494564876681600221736354894170765081390169851068788225296889712487636084762802509528010358695551529414165466836368116448892382918262110401831354925292182271932280156982350061637378965096062173783985508573133747193794647795826844257322861464483137692268846503973213898722396415568452740756478870710790737874582742492096200889513758182440741750825836854891187846264441704597483272729756129291977560005810682928922387861343496126917324049191394056262561020189986593921109697716569502547809707147387265057476569579241638117704127854387758309504892269906761503727283627094723398800533582789100245042621201212867325301130505780737624096676451179375345337564432460123668645344717972970069843827434136925057507946211002803491168003765120367387298407605366500866912052672571379039909880222762196404196978119291719236038415112679907023256653512169509404154337689102648418564251966751058606660048124909075136812393422821950460509318159002008986200847283090334697301616631603271922650151312816752076684725211830899237419387009324724459520958171528990126787360765278794587644363227732989891372886951901382598763415666157095135839268501160866355550135705882848707251126763265437004311759604967402196748801906652105475179578905207029617867005050409236304326213804767178192576913894684001524650266065318525145879503588021810247298998288122710970557027827821717212418466052494477852242539276528554305307409084968244681981765797479812175557409174350435080792903509384620939804785544527763116150962992254172998383163167066513402983568547852402322977873510804577255556706752021824908440659641283343734191881435279235815837414116737306707610128134584755091556300621220921634561750710922490328049443105016822165387294516523511262533929403059464382657793039478704794615200883095529119846890973409281040157532743820648171932164884816246681176480162224311006563119119581852062455290613448639984525891645823434430534833826014820691241892695732888702875804798527174306395074705901392272371642683150865397301967730940649883815236920296486220448177900946930914363139757948142513611420367367615668540461456843814674436533021003578522520123658117861002662413659434320347865670641167740468597933834119611293225081103536886377885230940851527779493698353603732629604245528170650778902871706881842388401715825727694495102761295291868429565205469856559162345962622234690410629201524122047181500414233467203153186005717973643608164498976682880509755743306645368890568480033907434529364058653413246573952673844886662581835453573621538756779733839045320721430688308124366760959190862647054967796906471313696210099405867003165378689351540347643567849273932937952050841884218057499275815814390443597748870890101834607420551370773687340634283028801023472161301126355833737316176189275518666197612410560582889139086807220629754336054533268624867541771357087751424558486603000374318822459877738006764407989882313434617000797834893461970637556748649956484325287754636052167946157907427779111790817933628389525142247231446981233474002967065561274568877557025603803458671138671758151684799125423706131525412405956230889799799364008017245263934209494566572471089782190507439901278693473965854864605601382516227830232374808884357498151915712319743418381281880537692087603028555462632586817811288929569506565668650849465359000045096535618958576858343385104747373341073182292599913145490017196158676301176055392747209751017493508780203272147525400384007593690473464780261701294043432789785048601596969242620268294937469430840603414856902110900206413402187039798711416851953092668286383071371922522049797615438895011678627156386835757504719226232674991718935101095587780460724280534848976457885560599991836808338076414487871488996446153022669573616160496085277927539829315022381724369502939980298299196350374382221774231818501999043782276538870646610873825156397705192113969515274798717908999299921457516419368215667508103473646379205997636224407222400421031506158843777486719337454190062484107677501395511342904699059820636515303822706710872165379129104460173106563034240889976021074867607956594048776061838838156523349264447510778319303134249141453237180751515609803695073513951530949447476404786256681279038832214793514227356832961040071234078242524881327577784979967371354970237117383697844729495313225310650719985505319714465564484850101308092440177691118304291326924340529002475003229298885656567256752462169987688869703330395363755498438741169219198479118632376809725962739407475578847020575058731862603656549948414979060983288669145386133997101998326002711812601042587300357773198769622318018446219712768772678743930462568413045889446377414472457569097322554078018473556145567105719240157094745557749099180769307980763800325890941427129354362787002333968164425352567672227568817640991431378672387298168957730355330005890081757100240528459332861571216097026931793298625417191756520511557899712188584698218299659768223888457132147289563061114443297525206140211264700102625906617199464675688332202480121367149050063423566558419124660257013961990692949580208979953306699685050719214149538942991992081678723834092315634624658883980871883060131367470041246737894851528072986029887414346502069170199876165527608396889547783999375270093824681800162680278186918075416933037912419244230254616701363588035062720730952914436138561481603525919042141398973332361993140310465084789651773348376556442119675047891709715475653313855922819239049523614914353843802904514178807718755656879799274365473734729950125775898129063632302453879312792162444440815724080573444433726923174509561325077389954482506794968320167570070532753829573572486398858964315069792034634669263167948208111226125845732856595686926868821666481280014567621906568255851788356312212593812836001735381318620155038633004113094269138977623022088376324510317164763807396845681396609504337827505933730997533899124027524555617389326187606509702190698063368152887291608628081048548087458052726326799996773177032858097076823041432265597013244482766997730909221274090862727625836729095959455986652059376361225376200988768884785153323149153201301685755880013882987855605089241335579946812727543746400672810748315436920481058108632362468946823549380611369942256456332563266797254308378784686429520412998164497256012898693569497230932369967908840079035290251494955198273464803679984943585380172385986396505839317811212678490536691942496523117861635032285341939932780095723807869873246774422010675321874888470897464181574565703397946639223693106497181012072549218873465210679219154210340887481582502699709505960163841322188350534782489200516404815822339279689073647881479539114146452987625369116917957973413301051315783573563634402275480436745417263076755231167520977565752380616212950941151143370805443133268976507392229275389731023904154810768948896939438444505366894651115781141766413764236478602095823322771679708048580504196533727104781140747779298458618292217971230233535092593534319655019107732786407055525102296049574681745678477093108497105946357146266741452627784042449885824288844346599495492653745167370009389075475147688794401335367454209149437087828415944006431738334353761415323173411082261917554464041368698143643812058849664947729478103318447767106185537646055669013524288380898488672381301806879933853336448014356965091841657119969855809543404665118050824561807882802121057689815994440578316807169453114168172047159076767986211982579017050317194857723894206320732958114058952965229577664757263539959589641439034627419606781045243512045246530142898973425774068766711212433605132586713422872289562489100607613631397637192062494950085346072284663976334588362259048588003162848748065502082563869905454443720512706205117904596380294961673416714736249035645743033297862602179908809262168367111225399655713659842784951582424177811763057028279093512054936884378244686195682291240493597884948453975784820147937646286518115039019710649960020739440409096874587168776581210133055435404448002947539144789710834819549215585158266884355581422854078962411669901444164754853935982548468938549826667441847449277134477070116928247315625783996419069805431642029960395015012822470138381046342731022840229300233655493674390929991311620319612882385945754089732669448231452173128047832815732605675893781943749011629272859107969096962493294871011331330735711770306138373770066003550789238211902655433530675414932860860277363690964058397562315506023210767881995594763064925256261720042697323860985210031561894070980076105839273005088255340121525133471765587421055875009707484517446837600241911082338163539379501671309080159129368261751677816319295506193335190211024068853821846631170903890944306946493007960691298603761109769900585520579452899467597714953102485920171421317758238707273483377033387944160450494930690960794604442121142014955222142896751990465412212277905574164297768546563785211993833278850191503968496240622129598633896242117448257758110557382178900019433273201655149367438420372031219041184145730712692620500164533353404475233278031996168732730731093785626936815826995260657277102704705383673665937324191203504389666204163853205139509291253678258473286600348608088586212605931175586629071311167801092152181287954572182698124194038307923265183530388347922991666427170546782184411112472571177004152625407239394596811362147760747236306487556681915557824607318854601873667332522612614668608870849365337528537979035513076395130090676686622020508404381425164671793000951041188199218866922549113657922479578296567217549700793409681297244462075706194292239783005150282887155953854147330522593536617141835855305694563304904632689088243736010152861099875559573675260728320075732334436032449047025315594377890670469511400862393960393332252638357743806542099380739617210568417062337037128719610866513497012997374172123303563835530886523988217882842365329684608929910540859712683321199433011378947631582180368818756894509846465852762535994209681492673891902136720609810101408745054654221239622682934106430349554060356365385764253298628750446657148636953398778182794062754924812422853273248508151327116811740161249936443758747241064938317978835518258457759729963030362040817576136079197242304489547537603622497436932620680410044358558840913626021055317023700918476860425694833072319225387691331415775997528451786637400020209890327881416247673552290351656920723057982598525769781150076069695539290515863482482633552007865884371880350896906986178940088036509768810558722634662418842544904728458664516636570569495802606697500391920351049814844003705737698483912113465938701799727899240690204270269046846595753181921604566320741806994225502351676146879383151071134042326649557791679111153933837765798839433871163968414352165764559027736253216588333332361581525730774479443729168405228328692198761945325109309357575753879382233441597559836918397012976195422425121704141427885697635746507576077010089421410571883659862628727608015701683726742705883542325498807442097339535859006759712779619812391448443139215143867023729479428093006987626592631976112848108556595305329147693604361241971981091040075359630853635329351156206501801734560525949175271173595908254220810560120881186579883088645697002114014054191115174415610021105452183177289366056285185727704109399319712970912511539131811730335082792364052783817793078514573569701151500341158680694497283003508686436497422344822925653738404691611573701260741693099273002955205139682319402139871769851217407586930343214059262129428933996049519411040756098753477902823911766161504126436616540660310518404899069309800056835113512262398465137622255227500165238490488999200755744619937286491113599219831326321802157820890788031455483850129284066972985347540655482630150408733147742089029192028006444401595475413366393787286585311185806957053586690830648976140724646556218244936468522936563669448478348856726012583681632486044974057653386450727249111613919488510740131388085815181239635750091717050511541436747770641762204011118586381177637099665992306803925446377804537568452886419696251931936936673099624214822870403536010226156568229929450254751050657924926530984646047496836365789643206004041923707750562724809896683831337753602093278113821617728689170335938392092514398387079665200646252127621572884688916158997384155179952023264085884285909062429341342550747869731897579700184740425271695674013440359629399765978058182519041880729633665815724728012140962638748688290222020278529870952741286656205572671970014781340526769335790222652515072488694445723916665394070951122322700906347537502017738480945991742458841932676891563802160962863904377930630491579023954326036804299947140893352157094508937785990674774513396256519900605346756127608602967687607543986133250113355100788680324076835567827874626000628074638853256185842603749032982170555253540537850484513488836964312303741330847007703684241417258654660701072871623785928897724610046625980842025469372109643351290014720900875110746652518985830411850285356530023634591646264956495541296350956213639370762811442505779327986875172673150566981024808941734340363738391842448694459866999609485611023257371860923671104639924068909021540643381466078885251597926004549800104386039643065033096816774243853091728995929982026366907524823208616512237996074184276147705721955274785972886841610073235813831411616452144144436137827288626403803598661090138110889672447397340262008707758217276915018553750961881651605076238419301119395257759110714146183245494997652788918110429772880415642696069478512572805931500729710060758466385813944902841903959036391936588239224964428044692661178464903654293389202213442202027057510150083535405949740271287174847692909305076943278915958462329551938434349921397768786192022939090946344181287753286992066389316187868541683097698030710056306507717025785668264318091876658911265507843083779402491027105495715353238709006532609138551662147272457076143359201082069671773678467224684290713448617153400754354787762395013001335470883606279713796742732141140423264657759450114283592694398150767178210097307589162942728127447241583014313198498270401974720783808497972825899032243752893162826870033560351236664606858209155930945039510069623207914380918007018359963068905118155292263422456698452022563048737684786955400427142906485515686188765389554247284461430026544464912160650633985759822808097897105431062772417980120114903485187211985985324011828751192573756878291123391947365372638025599433500527720905159886474514758355288355993348255277481928014776476247450924972630235905235613840826831459234088113221442810000414528696851932509844570552737682852102510079561630557375455809338273515912077241164950969994735307596481258808049023020952365476717796433873713974008512406132758863540400715109317183144453629274198786740461808050485987166324005732721663595234420654939773105028625354844474647783672182462336088902510149818297255948852778871781251779304485342862439506726181778812940745310782484564507002816283310792134683918577675727595350201808206919335909621511393922771656768344170057360197125037010768401665074677287512930071195518261458371401896023286463994513467072838741579915858595438875986761133210521586593485235625777145139270687156044547860909958537119516470380550288629068695542229849981306605563450908694321243204058594203632579682498946967231021877458962340664724755309894197182970764993520145173807704759923554914431632600797264225949009572060671435272230374528783085197867497115862739308402730365908865019660911848736443019425487787921771479031127398551344162014015215682081449224761491027588735648257221979717131438305781707596029229459116537770611929676595299039943186797263615472321984903243462486266042721623521718187999088586982478687831652136625302247969008001663647279280025535335912872539820985057444376910386820896182915501319125851439114038105644486454444598181266259422916361805780677245464688048974715950153634363413659810594040958238291413316543392658617621363612310008108870072413382400028355383683294705178698171582619843872805481095549673161067190781735838807114794870805581173380935735444479809287249485738262169804611906541909132850072098594241018470601535493347100194909076416838675018741436764002806372443816355435801160841134093158881906355133275370056828351785037482787418333343879648226975095809522559795777798453025560547286447280839845173392339254967372708349502442925617697838052796884014322445213258199642105516006308316164907965308949858266847406818228272863731673419002105164643853498873628106902197267406579477693365126121452163374221258655209448847229464212600296100574044290987909391058280075590356607948040822129437972702995184524091860657558233548908275522141593288470961711214668536720515100736774649970679327977614856051474914241259953163993401682941583024797269210303188074550925895107075258115573345288412511971133194286159055447593209014502817730252817555741084323485616881373214122015851740258428767668390418958988990820623860603363847575218844653381910337793519482587576441952546460888256121482638796704803848869807815743486964257932935898137559372176431881777422395799901398656984143076417816115503531131826985692508051122965046690665673772567513861990036644625361137043990735367612769778518334237374144369891567288128984602629347668021930039362512198764908222623442059025103095017286049524761293564776729309247252241919446230421465265376173793426290645251765282083076141032702671807903478667726720187400415311565873501615151828864452962271313471875286710413377177677146964954094434136310954519377937053248127544109329070040905461753789988661534919232902336370094920122930365163676911070041373647649673437747412538586360048515747522234540959878173423708642579620885670389024182980967722669180200853946979615438981224161989732206521223955009508702414055011821750790953860245112130802149428439801570809072873766697288059622274138985617598777598031868182805778472744483143020570076879550643449898820438898907064871943917233356090160135749201924758634603121096096974722944874591656998818674464802084316369686685212725351802828608349938959194326225790696387370108960950053973277161264973264188975632341908527367993896409303983739934555906118866016851577626857499495008350619602704347569432161526555203145603870893087135309650316469527224963241012855798750281459460037767943822827627922332348749060189812284144378021860144706941032844515630854215043335304360077943987394699981568958279550399701467080700477832542342764009282240191560049432343655739201640205215543721623831564155717231961710633711080465580319270939419990965900317880569591661493961187808884014809890707465742941129599568143010034016910540328951875100472225414224924471249326014098392162740250112790648892919519983164172322306895664752005044695233612829031460585445885309076343245707487488736946866978285588899698245930558146552318116452455741128886672927851389370098738056234142576116415380405714004930544663166316030757073918744361338747077642753922593578442656519720949021165050270274701871296520438671284753643337418984282396749630488125192470022506893336223493731834326043922567733956924937887330554480619379535770241037240392496967729147109108092318945867462432886822015955971106413347271484635396820762810763535548186423937474477060699664152974153404149605685516620647075476630158453097293473547533602136832879043616829467007110016533320809986016354562473597190467798141692251244326414321101311723007816232782340163818186420153805015408746851786715635079658521678623795894436168189740742760717865399602213703383951291971682459963853762740674697746576172900845994520839455495883098798904947342902889815700443328195009902074292804025619067180076376337845038582700820856202178890905959439334351282183023797404678114198740217152609467565881649841395275337632416024428866848536431739785447327218520111969462244526342173465287609173977363334942596688475460502753353915313861843268327374618932184672671849479361360998443234703821880572732868028370333831655497950762631515134954323462971582865864605886196913851749835928831529214323356123271823940717559021057338097752789346171034133450526352546241523585077118788643277141656112205832478594197713052328623417169652682874698262788377896255392965568009679640532120782668257269347800949040772483896826788988156666252935366483153515735368847276757469918290195863727947715758457876653355618925511609555234525427582976914506432303391968883421199746913144120097540067527546667087206492823944844746306879225780612792834161210862427070269243789881685201890510079640787509291595432811917322409480708728140367578824199158082321791682008540579356966546354477467133854419467937853395435681261203373375828330460548391513077675439653397230178281596925352514705579896938428462060340036717810980232728735394927771264902818727020356294282956027782749764266873712228630477726768004551942760084346821864303878681209128737847253036047011359320217237615149039300774795779944821767485246381373764859745006537120245931893279582422790751014738374505424101892439085254600713605928829921172665429488517749416154758865675075691079297207985261672210599170953805425898189878490733349033496561549111357187001900921609630036894309045098401949476230299919159862997792357986211422655302222497041892114813438773226110674369365429497364103929584300339025878599392479030653837554733804710476491170971583392370510348232460522690574130609172711834794695865313669048198285370835135458309201411331773344127608433668146507168957416311818393920336637184863595053581773526710621873148232314712075079902544892434264167611796328999130707277721095104088940556185634210319909267381824788568297559144746962405719948690481772576704624554919984697150192052133638716510384586129778388072235804277233636200794195586182916545165448942240521604057256980207796178678878858173085794912080465762524149175268956096340735855083343649272195769807406036037476253470403889850605119061910487031034266921293085348794223806262312757266161798316558909384453376395385326992078654875833565733833219092874705194347860107945113674738451976820013573397174918243258848615793664253459081481664862376148647516268867111622277426117057714477695682852709245645801129682811360601718609680016484882405763374502857224999150923338630782316343658239491272505647072348961205401771621056452084236473281469216683081867408571738442263171029563263891728464874092862852058140826534401205543804632259143835680362668349436535327406695392335723436289231937062423668336168817737371766095068300276689185695666756074221269203224465486068892318179844712754233361941683502477833355041382343579393776869759740237103077410420006606277858423936626399010519578858887752387287993366616951428203639505130921787499761083311026763756910655007424525195102697617253862785272874154278509853192254560329678063493747892298161835709082145476396410638962299628718385258327707521307942020913267690868169174961892940792489086716374426970102358044722572234234134166621157570897366098348587136488502843775206134567699054087089714227631314439609947409100837817478090895587944873249233073987664528906886910640134495901328462602320581211223071890945112634904792188770131272522236129745297661300853066853556607335906569360454762956105256105307317274491017075715460141039982297059846143078066507913531169719754935005165958750087411986167360258275721811196395275076357634750896386122253803310513030822272800280819402612540533714406564007745782735937402728768836184756440770485912636650831091929135304163776953106440781896946633712174891658091094076430554553838819977124741392467478001771193493281268273698125635478969020623900579020139882859855590984232278685613947045011675493776392642194332507359112875521791042692038571276107040478261072925925600664748532600843271841288487687928991647130090275449971326029831234088538441614179178696049628357628477357126997385531955333731587927480741782305300249023191750346364721736792291931823232999154153654131318315656675182295854169454900795137425727448006830443999134070347121487489809369630735820579079602017659746870921120727767663987410397405784315597561232816534839640084406341425533078157151739236133654949123094556374820340450291789511364283539453347244198624353755375034826860518306007932320403463432145755317795830045574934199973209064602472103467539397624610501311682808810328718369782526637920014771712280463927672847556571953678044340374628897791600700527184436122530623403894930596113167689593299189387758718707883296972856329877691087001414662547035977799669681858100101577275853673049143085381813900789732757310495017745415880678604826785719717915275581765671813022012680559260481638927504894146188317879272627533021839176503059849920487306066681981285219054058227514211243419405061772693166644545767557076233465091132693529093301613830684297221853178898977897677623959299507567722699742900375416597383745112787647124935835720702669978799537634910418503343661127037466674471012804228184953640531139005437828205601958289845398595954202107805940711441579857744414116124731354164947482763777889398161289612970778326038518327008391899852957587551366425732879856820331444356847579929648175902743515204949478077045201426547054082801235721487361617538786162811143978630969374032114795566770859041546241486466341218481389074817576776932252510862604119735407091249501395595041319244330791923337704114575878457078748527047233749602835355644225480084673432766779300611941837235496944604462807928676104558847432765869025943206678302664778195025093280144141640015356180927505243153037973651304561889149659759484681306912976931366133828254324728519811721258826468282082568857902206019388966692074795897173613006714344748452173903202971392955592078174847039770057886135679884963685453671265700607436652972004280610297120358515789498633050886046411390952650024861820890446264049343098645101828557907486724469911250104813848209415498392227739394708361124835418515659824398678387578872505669666979256734660368086850443358707462937673851148365523085061947953323461496178092323280338360026308624144249125937190242488479356651861843546609784900555303022249864568246610945882954741514033873028378655755424053824455513536799952933683138550282004754184593761713369006305397997301784961752631938307983453785363291896354828843993087108803973206881364870570688405446254914256712522606611869004107468672104072008318325059523956474032200791146536982696890483970046389227318053623555462749715335528664426135663376738359833143171803594356289950828174824754457755121609508854812967535767515582557545217606647172381046425894119206484504567901343433013060594525078200191950282197864951046147838989242925549550111609129872781195479066833755229116934262791720088655209031310186017209050351565516119671352376113100232583851048041613962027527299397493597608595170756116453190630238391674695485057544207229380297474916243411010713492916313150544812209316384800015925209627635135782964796846015838415056415708106671460416716515614573579764702064413886349033098097206955744018559790411988526853869860384200702108885224381957570996192518236356093449053183915127948461323088752288265553561766590089968868993052426703388358998960105631868570793175932951742662268020652720260626519549681135481993282700633611851301154894335312884953807359239844313343059437908558974970044961942195801263154523031518906018642469827332233664147790553743271827052296956031311242697942447836763843858451607160777395489212581110824014232275747810125883849854205421024422653569302195634382071311186443206619447859223682469707557725613600867142820071412967115191500350672947720500518144639812144766016108368079350615277960699495208108471623865568797628369542560646164872064712463832246139438772602722889037234369956432338198723949543804707144727019757415698301431240598258772764915309495589322230108729887862224465545058772570365215158159936602580382639448262040881997947674413072903705074166961098351122394367550573552675937448294865541087318544613696716287080865730550885741954672001316202347666198104050304035134098993969931106131559378481964050241196724216321777756323829810182714731522111079521064402056809001879069126205128933750950616628448838556213184966241833670572150393976991455378873787780409641181895562927083309296517129897911311410198241984462419852558587215947217738534646348418572776990979408260720711744647929142607893336662173111580137064578680718334376334438856882797774667788656911598378708461353999040941844116844959865146328115613626897907982735546472124752982640726043220783833849230419590410249307495831011323971863239879679635698275927556154834311864172343547999694997206711997937896327326604295857411294933981188974079415531283800042103143113349491058858258027041974489321198569797754156384961206049913419814058076631643220078832226466699547066246590882756776083725179215739611456668324023242036682486448546709233482423275683109266270988159118624011716955671686453340439867389707056396043630790621436121643796826960674524672607157008714371935946398121138491425783301665714519464287261889549621726796881064898532306352235161603696230660240029114996226291563531639633627570954219333421451522559027547176678296088355660830209158033243295144903051001495312807298787840725467234249229982541352290861630011132801525590640156628013483260093535028100461925066844370119641345007026535727759686168008922289057825086169347830987387750253887299379304168817297512756838554274894325646842558166985046161008720685484814395304412333540245028280483956806031907973371728859376524256549562133820379373734117029397740440649665574381664413618616109187497888485005972673691954247418216722151748753442770690641283472142929480654248180601728820824549438806424566776248899077416382631285643974507326459944973064579743048972114930358164858935893907777830052317585351460393751798340776079478047995963975120036154183676181055391201815717299093230929916668527741842046947866523309017390244332058116921134271394815206250427381881392279304419371260920367488788542262356044129828480369863179620529084482818537160662272996804514440862509026623181441443771106340377388056761853188887245655027159620948116396344710125515125540281639282962378483922692166512560084223961517745073975989617222007255719380246288610914755121046022547991435040578031471416825749255535210297296362200676569337039452957905264758576099832237376866171715684086326260303898601130666572694413839320145770914962685017304622861814480243737798702806427519636711968801830869040272879343537481044634368810754856592002576325348680306206840040053956144643629677609520171922888247902749064390746103588509527908406907083599244540191914703477931459114154899359767708801831556019069613587227561813012565222518439327430350102270019963579990333309285814710628489739532847711233643275210191438699772657078539472926025305086377895987092016106570734628662459369289004744175920442677639474414677142977119950872997701963880781662910819924577504854964980674327060914164120206080260823767173815155048120822214355374588279432649955644207083577096958017107044989544276619511517388842562620016491103417935841773198330397870600297064293558945352985335883056291809960642305985436709565464093393199668228608260731884568307144219076220416101056642499702248169684711355485145617012055972101687989093645969095924247663045914311550004916090007446979926150710203001287823148787114371163777681804734116977256840452130267392945358609003309535595952621483578000453422232211273994120855456902504594020752383222464071493066546857339991827783245046028874809496489477011703370911949641295032643309687870053632190072945008610417500016010210849629043127277821769836309841912285020098338720155680822601567773230081073150029040702353034408950784614237011847157553848030271657187906983929416865630381158886009085110007674058913383443991832620610449539506552981138304015818841453864688712620913682055209077979659681014846899545381617050507185629192360593843201648868091224220073464679331050830882654567902020298022866593100449399576767330697239683515477409264044275372270023489077803291990531514476264201670512269842626398328756517960336186203291414403554422204388166954750818337543970583933374837800924251258458587042958811493871948760995178561576359148286361587267334003371902303908007254045483482750406356577918235531752208522840729127292497932537812506700557526683901219047114670024127196742767236213947630292361246721694164294119257993187806797120665090907738287011966501689958408963332791815623815224926796840994931182812977301942102493626925809719859596352130053546348678860966707572402887752026640616106755812071844901265468318503985140160265824710066234669442651526150020671790457873378468651578819694116495327287452198424797982770198745402173213931375009438102964381519300494707880263461939180854068638579171655861527131214267585251327161735351625167331309111930511240484841297148684238774452305353840677384640415560658277101579149567626100834575286028425601877322496868775622218831167505985368572536551053995917923853639793161220412738321145424073513687045099749737189323345998582426869242936792970231771691026587329533223286881262300477646927595580480700058138138523423809444110797242001477388748387997294979730735253386108449814888301449795801105009600824226856423499271269032952393753625488279061199262588632261809830261204006500082893382580944789113706934071935880599429671722903685969187832512300508132596584222748778087451956735831512099499470602286924440952614741158411048824308872402741281087910783977991061112257109849175361508029366222676171025675881970373701184292561494814439216759106707246839735816551566782992375338889485056545183837317275627607746323424218302771315203071128370871508097113325211133646329149177742336350980361317296994365660065143462280037161686401306373200595782744506181764258957357812070318070697331296768565042858123368643859491063479189341136261887919831521427341664147537365173247440455279583472571711813025553093826666014128813748801056895380399782199528330391151593555866908084382978841504187640300118662128637272397961168287728776630198167085880758996986740249792556789121492034797654180057937419424472565361124037474983316360628482863725919451609581322634527080031278362603547034804476151159758988840384143553548466746039941659743659576954098558144868466888137696313534374407237910449301321417908499243702663015948660437579150540415798351807506472471299227070963359728426599756770717024711821083978930481543474670077434609037355864021579583664087245365900823790148522137616730089474650886495827993079510419350835083800303632832939496823133553965190675953735021076180598714034193410346262827941500183811556709322740736081490000471726177320350124947158207071563721081405436437653744678788233388172074588138402736511897003356633960271985255068472237232658024244238009234558472825738432014724733112026575234060404869486873656274872653520802703627169180640306378085187968153265226728972376227257549269486863268833736867436403091094418235749050951139590452501902513828224316104514326227087391023747119221425094809496802373051267766464863820706841994708583225602682008507399093100095756578010145520351829671365940434760912549666628600523568234271928054715963305543890778963301455038954895088026449946346543208258148155355378110347714460198253072744057499089546705458091841807969707600594498930097167636939850949164900066665751466334657042471187552951091753221089428454301114189675944425479928260799152810575368906992853193262094807155485222408977501194516860284416183991062447284312092991893339758764935809749069641163210428478796439571336478495407822164845183998870696707107347814189659097380427042164345906173067624057687297774262341191312551309450560535047297968839996654916389628117887698005314687072675093319750623565457365587621130065994039379949103224322453122648431491955276500960057320173026814580495660768784037213213101014479450968280571499279388715260899718086031560595172618398478466701328676426145851914978080896633670641478345783906643921416075788628081588483266922115644218771824635264542522821343807647997657090020356002873246094886782666331985377929667212423200658986359942894690064587939775003672588398293553056403579486732679558102298737310764124987154581664606718619276244819238801279249018334919189049020957418635264948721184324620265365848138901181928941158821205224678523677184490444728792140591275427201880068641110454641639112552536098911166288348227372408245398158244213465545212809635131437586323480719894358843461286592254449996374657376680620553314766175759404634320284338084535849020767144423227803185953357888287219806990376221873636481126663682724298808027183186070869381147899717981035832630261190602995171694019514486376995702119810530971390088319612618338815899411183121081462157519139818846237488424166423616877592947399790641967606723911380864974318074118953103595528409146060262203203548617996731150600547804503231005875245773266044849620654069585292148073935879702842676034207003722064104921541624110923403334785231174677707645024898388989591290647079983970580385484726475594286786537282662802522603239616066065497634167351042342682929649521991553243113559621286581901028169521150442239045983136552153736690520732025272719161798834959014558931426185230355508040761155279172288238995748574263639127829897432796253799732627139463811503852116600049942403518041403163563156225382946609500374305640636207973422122303694304046962432809098525257162038801836324012859789429269800468123207371479094921810358678725546706480038884522286392961052516056994186030528482227508515460457378191130171433717778476802481223072691524190793353655154993538139508837378113190980969876022699290112064769275831526286417864527234879315884637534132749334280592496816459396694090270421292423981837916651167897498019689046384984869460921241844669098630589978128950041368131709525281269264131442905657285626207536443061533225312236850045613480966209949522897439505682072385432310868393828792817517856483890725919773377101974956746184380860501752376425822862819750936507007512849447724740996142853477730440098527182709117795586078938627958142386815742905903476599995690922775487157719871347896648486928827996597462822460401579816857729374202979241298491122393618808945432232929687988591251784047020875271582727146738290856285477212636566191032403609735711301768879188364172340715996378325013542790927521939414163841093742661827086424863609359057822691294456888730012361737973642761510581412857003768605454306359427113704893963805463952237183371382944716377025531766793906940836688596994973159734905819951967123704732242142984772943426644695748576835954184175677569743997494557714723507887200444513691060020374816262911059070247751511318158228889192960888013549187487622849934975947498041064842394826228397806628834000002271257740296683475554946285179925527553448622166928286249024482766557884900629258028643350760175361119514413803897177121920529639258495687514245296837988497678109657891229288704391316664959123585221977762571469205248910148153961496380917011669226154910869974006117360311831262150071323201056843828284447468527257255700344348588861614849011235922099130904537154942092823471825876498118906506059122468303490067032309096345310533292866101533054430946029745723808594349462609485029853966517330823862453316143492040551867600573297599929908888400607576076597386455745458997674232014262634514470380897138306836622990706921943015826499899166446103519863543998020985962228288231112863064105495720481682839726928680703738825742602744711606805063321767925479755452303576435157434505092889328774541283003362027947801227798952224624179916414710931159301916931640425608928482414345822584848868803179022533136241931480179952578728208819481783278373195074943341847576932424544082354810693938960492487656596926343180025125337590034722372222508359737844141380045511280627273029921893846920559293549664827598579037498350790946150539321252529602923431036635211861749318272711926781885048777323489205788774465001016227800262605560437919302142226633084419692429883783086103313149838564941827288697405593361985056385821711040931846381869428663757290412207729954236639224417178065307898521860772468889170584442355602104156924463499168237163476483851823746809416499554066751320306357505104042800309962805633736812725439857979258377201394144565457966152914800767950233144011714100994500243862255384541538414990747043385907742695527868209640104207377849930823074872204615526171286640449927729768868386203998606711667687997474985077301211849196477531977180632836914157684726694692100531626756477342342221116837778074553554967412752394382578424465288941513902392163051980576472578571701802149131330595311108881079068365238695067245033442433761480933316648800649086693135513555521718360084526772740088391550227724821597799076236164177278280575116423068275219023355000219675154043525900020312266020022676579063689826682057209801480139133305867169282701866776915949772237831108572518092928899540042995453632248792804907781409800853817813497535818814246034591039855175801678394769864529841377530357919451986483595116213433695040052810533382056881254660073257333911624765649602336705164011965475519654392808771715494305698606778669912778443923653245959400898704766598238605368409814819646282123092386834380109844893996457909298028471987161170265203931084322415252527002464068656025357925036537555978182764459827323620416670395020292530432943132817799310740781348271548245394233153218692250277533645854371550725895750802103079794939391538506915365438078168289260882723304100188879949772062341808041029625897586951522255086512529551646629917189341788870090579109705636544843146033416458160157447824748211424056408983107222271361337934023568549169209832865459562634823852143569391220965634236677570183124279865697209871578939865410242912736604414340150424336352293638699726820730731123181181336893067028037811795775670204816719132334001686165307536209640419562845238000765445613122287540690288831387050586698836198998464257739522640860903918854219100134904990516442027309587191208419487947041145954364443449352061231586897975418297305401257131074139116871550340137195430970713623642362709603224828731832939695382540715605291844571138882578157263251450616116254326451262511133693273034983597626523135508242851227040824978122860527270093258430523634440345842368978469710534739998297808999319718866328160830837396184782220054289641211487733243213570737577708972790628635533374382570904774668018753971157444038570051412804544780551136104749022754796879710638157842195839520043367208214326213163220881316492838907525638667268326825553272208171207190966603295613643756716408992426635132401124335132645719526980889876298579101531373972996014809449727986828663426877154658120434896490603687657032337012791773796631347747426845150322880703924716368263627823322586210911333326490612811798193526739517601906158033949698349624162781923067222544317348851435956594214981004866103377559145259393796511625183989038398879886473143254250680814337133152118837712558631808340620962214314998782994488373484433924561504335016962105336326616577965847331706226142968694346370294450105602764368279048687262099539014096267614230366783764623085778019973480134075974691833542535337911788609618882207692421066592830714991364807931186526534963258503967676976307184763026180364608814854248812059321718893688861608780676541152667404730141138562348763427058644199493067579178574781688671101655415509093705259643253614381892434814458149175149617433782789281051064046347727203452480419336901333686032607028792528127602107840261126809116242338474646356591135915819225171777890160049136280738804801006269826460062936526835712615766192299301909599280040374943208885033131226536730194535109035194893540259514174941078528137025878198083729678241846586933560368450767580383048686267898796314108344982342771759965428170207794440413121708756217207270844165395501245802242080501239211129886692808832108233711115707436955400172844193089929387125668171473629543333689438005388181563642008594947024346931370752197697922902779959972961012963018468343198645493973159802983133716728767228556470856057236522521833622621282953097073995634629022578044167477775461980714493052607316150248434683904835225742071383034521966495054126208120324719567771669122279488961997760769086870731509320450306207662590449078480710589365840251248816996512200916474278198958119419243479871469718256829801578089072353855687083274249918309270059283964444876197679082397609191532830824616002304255537564195673221380535689384362587196555785467653076990717851155936662675411717826654316529581561021078160018096555730294355355647170256683125102047860506076693211209804761188878065144415636869103678182860440305209296672910932130578882788247615695042737640545071069184543013056060241248162643059067406426665597949658303504624598147679376503268196225802167338141516684125722862345721235468898115620292124622881172886403249674290608848800638479064288391568116091348044719000403411216813023343776337737989394337426676806481350214196443060698539449914506971809791234520360988893019509039075362261791663966199223640545365492286449093148306558891602380714708437780359430913743661940851957950274635347157520927639321700043201468852448512783756213222018302119249073428524359578555773589380573105485719736307713120928408698355436153993200411931438965162774037672087828448603805553158375598037360407183782008034421963861720185766744628386556990380804219722086824624494584405368250904366575565311580528580489482643864519622336149090003898672900066160414437453393327086209436013357749972245700163551407037887405084635250480155284457596285516400013929843703321798637518481721693943086687414851704702687634445626295654714992961525115379877689266949220317977290240778941848470670601415779972642477706770927679419069066076760498445742745749143659831619314194732463872695515268341189495711901460093927148524947371060358733505372287272327081134376373615080719762386121601910155055744163692856449020434986879910012229934281535438620989252191134805108642022382334393175708629769472415708660965705293326046248771603866953783014936398186312843879005734745097921852510885197441173986564283532927351397371068853750117086573070930133166172611230110278346497840158442302390343926437354385759888170011905331615368321500426664555930270632334523034417749105263971841695885822763723803903960906762646974126571099313863956434620725052959288178026592186362145534216191623843139562192807921452640595071931937022976585892284404295075974638942931656004816323327394819674523279346128395088604058019907475722247715095349643473541114830015209605009330052359507187093499888050666084990456008294987509413532460894669509382624114051581589753031182076765241418558698878332601755174931458668183986903691738887411535249720785989065031013961984773054837520071063593659291414621128993526468551332794884581860302863439209334559820223261721024183021212492575749870810230340843219841032596167090105616219370216589224860006405366651697641430115212700506763206304058065573043275660111471758970428311322195437516660322468614881214283495461281212682714609584973921330279546190232945090154230278151001384831790077730629468663709921973156335125303388852240248041403130985389896459767179504610321529284886058470683335836161487961012130889077666109398284201262493759347035179951716235435203083952569624120423319474807392622746444505413212181833531952390935539535770458098837083576157768298725755830526532998654612379516575784903370253322726227565282231045310946631859912883865137882049566237119979373872479050075160934731755509771334448729712375274647657518822845941895235434773622570806700358603716851181382359567376602130650292731581498911212782779448351205433132012369329931833822887298579528112269448690701951472782149257812014478406181855063926665943993569388948416121102474499955621458666378013851316379407825714401887866270232847000333879136986237426984783990720929318140000507057068912314864183852362795902044496090743872766002623819068836589730969084187469585426936583200779487381596338947920095208413223495164076995772886754776864208009786928151131855102092708387559774815040594632860808643293653211393099726359813888458386122186110121659744389594911141393697126109350642689682595356309588616119214047802333024597380975987200933922035943801952219257843605135379786038405131390697009147358543334729150014055238829153433352721568050932174111017107437705456051500763664257592160281904230126441521340658138226154502137059160011676667899040298388095969238549482607867185909454597781087160905626421710524747795298270638520553150563754413935580170347634942022717650550347720777419739284182237326684306771533869115528567416344853567668961247922452476187289791977010534813790507516029838950906236161444461622533864577108390870694602311209995054278261267312559215205982537387297113169453255260904120002525100552457934097480170700573487940152957552567168949391511185856249086577881686345216436992383000393344381314889628281158034105407202928160023441648702306074264428510760003160871607270345195180937643104467354273085598845280557139127062190286506042005562795170968879801270074779393497402297022511726669091570739585191294907254544227782233637484278712250130606804893014402668988392181895734103439943766313904770295005132143734973447679402390502952447390869669574136029333449728789228106607707577545992402854666109955611878594969552644222722739683107634460316280803595676875089209263205877596857800396810180261538603685365018330362852365911523506004844366030064188422549272957653159725019391635521889989500866030041612024822278799725547257332939738147665210841984182582353640206623292740161602737016756562426195461959166388527094197866102317575392209971834391878031596742079819655245969102881496354809214189077560254694483923095505341132047578971106196464545392924318401333921118441918952788086005659008691306617175042445802197495887209313545214643731386239933295091161143569907856924480853395497773786905095780774871219458569284820497558882426006099427102979023393190597640854237820408744436141428844078807716792915589501206777791966869113764542200050051860105736177027628975994535922638611079035641449675566531336925631207663650751592496865899057975682767889816127420483316180755787834571181117976020006901205408903134382379420028855182805987414126076120482470912343547602359307589178869606033061828492847010567453464330098466701696009943404347874684817898181079924473522178278563561378860852308148879956306146779344280862598012988613572324403640792769271401734552466316730389450691618222407967075970404540914447289146509206590915828372312523830181215813896016383378768297246781500213565326542843229009097407586213263147611687857102753599911763577134812243777532923884134241445258459891906744010283074523021867497089671551471696172595577301614319595649630574824063936398345148849745676999092308592667455177861579529450362695770132192455829510209556581490844806902811167152197167007587062908848268481104531336386169952705031070228136946850752211386856835007647803599065522954071227103088265097594328235092855256036858750290943891517901854633017082406574068832203087160769601594636681365402472574437786151972523944512717739439572943296260932360284761392014695682154061211679363029646477938835899141168063493406815210624914264493178503511288934160186472249108612807806939407506255329900222218189218784117984365057778416521458187297696882306393614071796079033680066837923407613490580662618813108057696547189694392245986198635625826900610708115667933471490057487235095790926424064244418371356124744271823824062710868827255468415833707370115557515931180558502163608626820723876856471575339469557057865401048365103779597882795667389633636914534336220332653275240511478664132497359416384206197191227370895543841816690242960125249410358521409939580744467817040254849151924668104228273758075172056801024766770266387671699799428953317371113686184686770093460587852130665757013823322588390390859836486130285650342194858677730407809717693923046119451276412767533706756014520866554838761714068354452230443373916059299039405925458772114502951146761498497698213041286222775788058718622705481044834187464544141253793312442229122594751685795837448192368002177083420314527430351159943153195115763523848358140240004591080925962229001158667641825666338696392129241885097670657460697630209964900523110470927321813640423372212639923430965547820378819035452491379986029262987629932252710666574346499547728596394670015306003092337635702312176895102062401993105434445874188408118895490606575989762384108085520783399153140630245811956690185859838925321906874201132899106239211725477461588953727583393897214587619122549665053128757452253479560672239308222102428397519953074604265689176533868732614694639722822857249267638051038392042995689516918009679123102542460238865843802775872944631401653655402192410280722183856237612416896085323082900010138090535816539464704217825045409235556816045835252206815595726126416864985484130030118645179706239787522422816657680647490814666791091418176533184568464200971988374250749111931260655142586249263086528223662156709710076513504513453831270477010597114983509337735199633740607810744461419376398298147915322079750479483924215401354725865552068820611462797238594504812915237406290261544781628857814372032332464657444745166687533665812913848190754841108060008335096569071215705520610890096773838604016713054660136983997030322430346388694647198304655465609883298418213324904753461380728323126660898254855530357265310548887459233065000637249764987663154445885364190207582729836506910018065190175094980146689162010293445969844510305746030242041642015244963600807050490065149077470168736050952572657476075549743474671441326596580351538504291393935263165154059871847646006052784021893951150166755995774913841341982302503725478431673188012383182307305594837708062263018202784393863273207653851313660591271430912488886831062610731008055590940745891887515241188581434950856408864657002466039447202034886391215463196211101582681149570673052521473939573811491127282857377610940328097023564616840572080757300614193938859610653116664775037091677395494994573757193880510204958000692033361080745315656711057654576459835819904587079775654078013870747370221089413278726799720734932440949809795100081826197365605569461011146821949885875789920319990184836904989274726063628644650999105453847421187898632999928684147931246980553720877528496047358431398009166944484920437800593408473916327869566282601234142305863034666152338859177846170291457323098832771388117301455996986069945179814389337501706702540325102218335343394552730419512934523567596384844665703134406762003181497165202643579618624046762030502904200138080590163463534725812749350052557072511912024674189607093989343611986038829361246622275858859897001020024515033146221829602678664484727408728494368047101252011132958940233810350064910960733801426865600727663198127489049056133319889207043522762592285785409196170526489930220148653425503441229918906946135103255384043215330295420574133021818946119750673280416224566408305034498230996465254048406249799951820907892058854834017607588963361316434347198854128414591964330577203134550425142816363964797915037170841768783239825625232832655907132601563855763200054962183987193182450881725763821142961000609611511833833154427378406604180263996978725461920096382742258572595779087701512760014433638285213902454452410058248054458571151363076774678133391914835349818548920576418110494029333140187725663832856423851258159186023256101489416212741279519003995911443924223705967283874526617954069935121655778825952308701320882370507216898325727550433976029420961379323529511320504897789902477566432948965789370643155950833768683020150755298320268989931362446531228968124975303222243555632193163757708939446084588983951235082291225215967247830407834098195167986505471638757020623507729073364443269959232598408913356826907272650471110348517607408715930529460786885271183879635022361792524742188071560866754423464841469344054625644185778578739876614112863107345421139102020925115093696349111020879285105653113844042259449426254930444379827604329356643662359704109340950172325006532748819610090712502736282814240798544939380301635452263727354627168183218857609564619840855035414870695615007255563033595581094456889849247310335084150876360610786704946770264074921773548622596593758833103546788465655542822001713047586003319173598045568277148523538076751745615210148235335655755837284548946807436219309792995137055555784954234601062841184099050012953384772833462612651818679628397514572876652771776774429223555787525528882000416293569502997228557443379732941965372594125748942487966207816057044338728922223003133640521880524910839339212006299843209475512633942037016876997064019238273712721381488434446559227489576792304356488298217393072730067303380730753138772607892808165357006236653786439469763339221690991231621370439289875287626647036271738952606064205767557804895404574093355879375976201027719644892625058780890376894386280151165732585403701115967082434656088033016095348873193614897812262314431578302775749849156769461655931323948636047311459959401889459480535322389457316938891763374414654485502195250547134303621188458466806479457668968919290246098740202085816026168849005875159261261542809449003205849832579083224074764687113686801364659447102843742164055452532176181461514104447660518470191248681428204805256515491209938965465978459995242706068582794508783148405522575990908305198688442263077256016263146283244879503026648893871666704705453627916229855399156091803983592812913379037542910566358318836241926149364930647403932526185613612089705410763145493233102482601956984959329345725946106501958992597296165970941605524892236964026259328923315830575884832396571926715273189867662627785219498469179860040297676200869058083117881344921457219046944930042752210813726170435311895697750073384489736318693026309260154315467844840124842278742179684600193751981869370746715615257511531780396790981031276657949439530716186481212291347115117812982975073030668839554220682767959221442147827940590463511625634457887375392250659528210758721546140902289680984163952469355644918079855104432417181572059472611629701605119880515355164314686559887191774961831553064089282544945004708219206168675826004198639367252080333602359738769977126260209947292826577563354333992759626670147020259607965717059876454417398173741339574480541719640877181756763312848939185116273896985961772649967219181118341027963374848199906655472849880688920790200611197150451654655378653581330538174575968563366161625221472676457644380711491741600176590180019085652783977501836005386107403900148522274621112904645097911334681004084360021760196120365610891629423167797295523007195135149120165517052634696783322775079206459443504788376444548750869684506854383917836139295889132365125806014140093363382880212122091564842802325687316133268145345363289666504066842125706931470171953434018238855750695624511437819017518150815332340190715826490321077107174287455037000620557484365753279032281908798189585515220844896874476798241658213778644649971891952800609875044715943621367627901487320066880447895869229499617830391742561958196661980008780639678872306610660367319202115958758251419019567642120384585577009299879736711499444174660506107372133924628565880225700440319117123725356657550402013686813167934666666359954199805671532047029127129663391987361635620026331368384233622188719675342726445312149536866200623643200800994127808907834607704781456429882655325610376418159489695020864819109875464498700998130924831123028789744362775814828055288826201181464193368075565152073525863209403719481728871415738660727557117387248940892086164435094698814216979014879176478676979404087181294643932049374916246501994729574907683817591777532563243183566034744770167258116712350613559101186295816302048840358271871785172572950282378900145964881240560685020220199380385334397356252554211277968665289343001875644364125131486661027690388364698424585683110261150197176508845990038403414039990789183818398771126633303090900535329377696251823271954012866682930106505489447857908758627194447795863463383742816485815790907735704527345646268795239997579519446812342771946378211382301667363273634342701613601161804839894537592922673576135396345993908439446826493151288046997674621125788568777541241048877141472338569344198265327023339062481554893835349456365879952450407807341140091615203893898392512831241951414540213407498694455012015127681757012848308892271687780218487208731158277584984271681952035905455294111471359993067331745099276212065652754697675886547343824203072334704271430353114958691928810612189297285485635016971971677375862428765980152236960452240784837334294819985715774284804565646902883407912813610820064009585928007089793117051566661618327881467234875420025436989081219193397153849745252834975595086784628322973236524891134853680453343097316805647120992845330990750625304825242239142338574248054809531855552416451515895452536772529500435482154036765084428284808845983697403915426804626827908898139326092809059383053439808224514790495710604220255480865968808090576613777061857107072838376948114681913341744930696682921594023883151483235521918433401735291322533273185675001128207811996006560360773297308597346549853581406918261928816768559653032954793370424961601774134119007418985282164638480977671294327046260109659696879375066426568517590618593778294401118068731656622275850340504320620248233507333854683053211671204405447048359481014156006747260723848923076898697641042201450082416500861745162694529247652548513302203816072916145329004144877690686594603062011682106773837525221765087378161887766724325440766662443417508596611799289492938004794984112184456745270169370518879919435524339821490569965923023195668804309788054232994840203708793411146255942316599205621740995713322869315798388740840852054296879216796406751038361437711507463022501175770111556103768718831751000920880593050507588494347082856497273749602722844308136988797689358057446597363628673318082677557030046760996066124647755084435056169617728666676581344128973464184590786583825679814197675878911643990066055390619513849861659162545347006381274023827937461172311747598295022298898989748347912970655636789768928966927275982094016494141574555917280569872853556469406391229094470069660192033099167341479392833590520518122760936825606907224000715027744342625209009064471081619087499829630813930766438062339495779990492408156069390466363558053080340120526463091367147081418339110580057669218364858392574867418122007632771751011733971713539896196975096440594461519774791349472951617481710949570909167904480620486730134737978184876200325602811884026025134707294531086441072831583054945088388709640736495170808081707174204719631876366453271477179514824361750790187951683080219669179571584931199907005709584548178164622275200327571369137112035563544530627832046702303913637149212190589626903024544075740141002816926015611745596428137496877761348695373544499608578332172544536661876159962697699025578580295025842042690182533681411155012044458611862353952324753072284094197053704175146856863645943462528443575523516415991584627132553745980728428341457578823959887849772553948079523801147385601110109207393625011333233298378323962585017282497788853294509451125894310451638146579551655314070043264436775519920662020556695132958040416870264021690534157422143643718035329532081444844702081001893505693480525968524026037864646169462679015342110308027863391590832575456633814982141490917572815285091575186652755819771080051922245023538865408660164210189071489237015245795835163933656305298037942022176519838476240169560891443398530557673613107079868229302311756154558819787157377704122166793042896952116271032643309247827971950581676121390562181738900992130235594010898337765742654438565906595563128825861369461574258254876049380169297521243952443293225414474200306254740327933522275980949028983645293454860726927395928720177033441561502128858285054081050814982057742679539596318084302340407470083991385920518283015243037391921078060913395262610180314023438062163810191571011838637166772333851649594753813450358870758572922611596241991580358563830775339123426413241216953366645513531654648645909959540301486656017276418518256290712176559955547370660720727171014263012200225817148128699869402771338275246807872062328440791372504614739669381294384161728438653045058832980907358555399395425660181122135142308708473531140406523269334236371362189982317207880302240674704506420731398742617369307667497879775582939752632206378000903436379733123874909396108033608125658135053403870628563198409708057045906538515444599675982902466784616070579113702803666418423372457830073964073208973086276290559820310067993920439163398241266811574411613081695377151222872511696471758026557216253659634231910836982392682999398677096422004283407242313010899374128601360799878166706116383627311242791772466575175262612301707369448298277117954984912980287051572955786874237235154526836938933246377817091162990452968936850246170940708835838415935208986618640239406736440750161440148310542027114216840876656588077370501627780644102502607846557241115072812505470941105678547609519027727111341916098365225801967137457599103775302648884876508337900861437152592070215305035934060872811897634010920054178818280351786107000793990250262163249293679427703003471143160509927735795230207131739035856799682353797919156590296438784254105311605559862130837734775689531955364443280375362685029366506411315624138230523733392301938907239436147213036630081208713048465988782801894525350546344635368140225026279089884096000067264801138668556085871841494056000656273895992558257827576060873980618793683510018774615715049979852936841663697266372452938458730016574876709017446823984205105964321067701602244415737850760811264451051134999729073720523240063597673986519485554148181490141168924911992903007454408050867687552952877277231423293110288929793573042914808022654708901456105642513083946198421945703565361422906919614895585650431086152361903607867095990963400900237249693217521164860473630882052057050269110611927865395612132592480277339209593681556062326829246477545343602803282046675150874690762657456063229143439832627903346336756379066946749900799921155865070335432344484280276464825138746556388279103578642690054182212409385550455878411057034505465172023737795166174162285110923017771395697271182865289296611064139596208379930712569109810959974425432758733716622740599150649450172197032718730670608102298200975429120481459417359863365779967508308515111446627967450910866803250269977179311630698560603586256783993601678806710295475541514545455272869949562038620411563174765016412039585493494000163865924497637762096809249669731353873427138196705802839878628089510116360284204827787180643335914267075694093851396219423195973568429949273289562565152903478174007440838498047954311233878876014422799300945716192257125936385834230468363622412774541642039978137291522880251897106337140189914072724178625031611030111184795561489248858333479954338931590983375378648904251675950912422635118296558304686122391562536438934171055003065834807206294262062916007265787249216806480168700234570291098887492105875104964693705517526412825044623936175604593340869552328765234060352929802448672858209890768950252735949756096672048593286778305088726814374661919582074619970903461101483578382858269458642759166033226952687721917377800187393011380699581576328841767153213200090397935341232369831095828981362668903283512029102647174469965314204086133713127557974600781262039515307200423890296351284971932788594277372598131814623194020926721117120670630843760663521871157298400882984096694569387768424452582334677660242878808489502020924157860713700265163312205309752315638045674734223059165818928578150369605240068805365196778592041289079191081128303993267087575051159311290117320417515143453219508086385538159864164521968108282866566802440455686507004893214940369119847666688165931561284243444436357086578389427863462460415777436103902912595111206154509989307490868338670195361923933507335701352957084614185128879306312081080773570155937475316867436635457910703073964572255610462578166952148944493814201835066037463151952481851994949413843669082852086383026266650532610440601543266717664452597837455980494471505957283844659227791228705662356722992935380024220496908475262290675154729243034454066455784788985469802724674790872197562738673550552048837317137234031432547250692247806385127984679427996332613649382227407501575873415656423994374064310863697975328834130820309148369676924851104452618190037042745442293233573190517598955713113020948907979486326848252059774627581305848587338721093575045376777711164162223686882525958052868576036377928512789424204465791090872900826815230706546102264634140934882629723963076708774531140448008579108010770484277077684836830096270059618660305925341976434832689987244117981888229989487407646478176474906911046781255039331542351062498537085751266025119277060175962011953084710791762886223331675730255157486041477986384860616011202043030147560834269984501986585785545772877649025017321379076614078532935699338719037676020783872889002160782643408004507228504994775749697040161291505058194531653170817778540516606929968682726564296165768475816667136082224424297385712398034188036344381800225665607931267046661309252529147890344480245051505445146212397618393584395929875128296178063468768366743210146066555930945820322725516142662132009206327676966552481182448851495548365310344873756383470348540609594610626015422207444754309757236473483763664672929774954145652824587550007162500552670437823996139069698132961824930104269683151186346034110801801196218021744044751951360288486141057155717879722228900412615828083834745268012099580552376860153883279198948192185929440182238328132946129429645133317816914115158299909073196221832462060201404440939341797560797242846203574753624076815731995082376478336656325700582586415843268480030841303414554287199192017866932169882375785374074300638704060563054417343913866735578269229495452068028945764188050275845896479376384752910078522135927315267673023181020385581262961043046942199767264859332571395159284311282991462455915613513707801264841643376052220627875713400558897231491305230295764501695661524631777038368125569237148672914273491970310126722557084650619655823820883174651699708833001318172835478171023972040369763770394509652633304564884340481604410148128166196949268232942533457133331331517638005970063627407368904548550006876027619390125805463410181068564479563908861983061975506215239660742072211219670918347709549402176105585167138418160395036604923789037085519941319054604629456868332405738980285394859908313460033721273025046257984157980571248595522877788466156852492702308291597469670744932486570160633692597183021612825593422427675540266258250037154704355127403163077019030838863764482085638119226423131706591990724188565807330338890261409477138521031223948891001095515869416670259247454062717656067345052420773979525711987056809841114825035003127655698337502054089916366133470667786105494663239194386318578098515180781684997400678935256130892958460431657468895023810567222800083049870001122733581012739162681534570277955485606733610383367211703830150926847257502331569393736454961416355965906645409296973660420663567317318494565608163647559351548910796270530447450929276839389474888923624659333853340729192661289499842391094448949194729848653027558265465076090628100287656291111423117849262917684047095477125962061381069885367683319885733833149049566027665478877138230497410175089742652231711832017160547107162066760691367318191203395311537720579458966302165280479892117413526117682418641226463238295608639714976576275715155581490579299256670433015527322840875897573327859953229687438854791783520910361626865836852005345967153435816965889294049397269135173914567998732781195210667453884168439097134557316706557732450021613993949901079637519440153470888934921434128680608370251333261734222618238449266579620347897978284763751893940837866113614966216695760783617723545168162978625772069009320715571040348743357578074298238636153885494152197836783822386812670030751745048139727995779582867424622229265106773365234940724584078094293645071136897672537152918697897503231383277901153796758656989063213218255172049284322363927040027911391716693079323813685429370936166927034187726605608030618504316348104549725787857555297128119259287990149120395291217022743483368618467763342343508788847144251817702358571955565886762140647154798548310216777332478880540904467873694233089182071533735526376012554141130258983116305092347996533688009663768067577039437484478262249893149128409586544079001627117024240433249609414207698857166541490319239026728492694214056024446232477001289099611822629548718803442955863157890143017192067480843320786379542814339880702554298955444205107252230620369003797173580854219552761962611665123377735394038568451801463539261618777698694279685581952605297765159032388002923897361595055726744214549304996675010215865849559191918450593130768960667077584380493292255921992847085802572267143516482699209653602486119517090106676274771063450465112267376767819958010841365733820121090729328558597510085131607910401385953937031941391927182610101094417894709542958917578751996136645922584282432698541208539334520790472686701119421920781391192406515172780825320281882333250467276362561748522422837434546810982889354418074082990855515926478846115957138529012756622573224664998373353021109297187438841693721265258164766025395266115530146289724850750587819509474427419958441068101463643344020524771613734759441857028103824620781356557882528309997320572272021981412811500421517809372550408411813892649105184773361841586681360675834566856109058813865289327547909752302313837340326848813935026212212737786556668388094215294545669454654675364425206894622668697656284325274779196313688320903714256387574201527240827114671665699432186678111690573460105954697952552508739901738320058223006825180266401363684385803068488010037206855677645782990577694607746164550818062819154396554045039232409107667463617618991637491586043484175535740443802225985161656626983645842976032189051928662482986472593165250852161151120040403520116854465108198852735514020842812921713467028859864797436720680323566957970177323967138269525500153636266009105982166431075984247610030552379924009812224448394370752202312009641411466540895147899483894249443673518874720059821378799874880294249213439811738527188933182071338232563588103400340611216968222569562417795270654021794239938430896404336051268654251110052213922153663989218739612752360415471244808630429513010814396444667474827226068379856108830172208114354931646690324302392422075365546729020040424047305641060151062253244319536920599665411079433490036562003104406326816783132920215170088327064699922417493368433748871625865623213743064227275136786762246741975826050419961422500633886949851024374087120011685915344586646431282829269163367131375407355746778014539290761084457758467109106000638687763902357462874971238610544543334325291934622153920693759687566586786924235191468004579008118662021615300691406931444360685036568087915815344399536631063846881320084007860630186690576397007880958059845963056738723800768979620394978777461707455104728474112500054357963399285014463480134635688202513118456520587902821193216867391060110724142819223314804873049952797958772183002870786053725378048995083407143586671500783615170248673092911335696734936714966767656223896907143642799879805273425719893560215716075657877268109247722718418838994733167023250634431480589115966683234664421059856763229687846764917620223303276991717495707268671771431994343037591085296676048626999328736459366280686955916252685371737563208304206900261707425325182956394788036899167327742717188514880726806525470955179735717013955964307439303519238372839452136575852840250446890841747679927612892775503344056823554503666689193358961947466129633558884301535294866620124774879741386970632718653519212578885657824730908613112593677168412787019153431578122775848898239485203604126117188444948159814734846347339694600214042824404272352413365081202581781239104455329358312185525546131842015293205635987019053848679476205346469496018259209221557881050229273261474271231182909816196125804382468553711403125357878535846854322056768278949460617424434702210728029516564017880103358969536609147783405209862873268175773903359199908952782493392360167736114170685717429498258512466456243265257641894701377175337960289447741389163980437927526737404665300380355783409868031460825711123179376757884928524447890602830714577286138306854527237654151823569225974520156374353656718488848185396591654724501352893335522341568952454522042997356198156527273921419611292917935169682632188847222435941078925073684779937605754131439060418630449437965855645838078925955476203603799463536585298494622150151536822834970359867116297428106700841344824656377410342927223669493284888191905715189948202922522542227374392284569760324542650353381148722117525465710845859094076911477877141441878901077697384600939333999200989326907584040795378542898568675521811933496062518091508903813435596161377036773549290850020304105867015970133853054170326285651870097258171663938419768625045911514325931154364224435842966121103417607078237890576808556209686211852111945608250254835877968985403391227583927886496354505486862734942812402716902755804767140448872109932905932240763504304441763132942843434629848215738015047071105565220464291883171591700645826942577318923686814992679419402858468744413545049494157317773634650474166148203518202319319867887306505984400378536338907508661539618510577414017084453785452570808509655937254013885034723263841709574563352135642480436224489400592011244563325495188333117208903062385061590936258349605497337090748859252969838836522095139017890707890091649018351197820473827890948467826171068334765502090240694815695016017022201921564997321258395070688156297874244071126918877464003896235141781959833334036948010580501956656487054603086334083329957276031400859873506732277912330979315155127522193708111408615108323913977833465390143415276284261298082110387183629842954060446630217910656674399844595532967608449231414603604670704588027046123343923880570636907869699423580169760990075125588373624674835896546945775763466019669538470175524549591119952925631398903880823298465246816737534208950348581883422398375697893267360929110581064163957952858225347045091521763732278230974238360666278296835061530636557863407591913599476833485491107025698718747876152951109969056094582300294891470850583849957156690455817887080495515747640724960781648805597925754086825367326186792617034252480561229314553002390336368231107742876342782849462406008306445080172384232724754224314112319355532037595731833191153102899471160926592223894938392955103840663752803468155581269945450691926798255334890621513889696806520916053627261239609276462923290084103147180643504822422800123372753697096738729743255610089171378543615589539441617862093087902543722353818703088033607676992561004279134941917423745660050550656097497121404081854196736575129644458635721364985002276325666938083972354714396085806099136998892475193895626131559694081530592827466462241016446858144983838927486315860603694153377613279114205157497784220276107566776259971321344372818292932343667974156075375106327264754356068480785750659461662676787220359793409741982946452525252468154052306160164641078685372248203890569258612157649501729439296080610319939821737243400929139957802796830096129292431682796125642471962966613326181773353943140150505234547440073256760411600960083626268642623549600019386134561587314802811264172637654320463815470583325380225161447163522482956234425097782728430170155056007784758387211496003340472463119573990946209029039354098965332226757823687475761202952992094929709845342891763972561088811186150693932029957652618359844128437517464421158918382108745639115536420245804626691925079764194795932074289255286801088119297863203322628649722883494124627601198173527921637813987133619041880684151266681656540251773814828455895612182604625679704124956704085770952272130448217049123901585060090200376108790832079166907473353509920082758434778814204840213434683576418102387039334063811986961678323798598262498729122491413467034522932136046456631895554189560662078019549337417271315148920184136300704765577077805878157990282969725067958060868709520958972849097313242931712167946114646216163240993765702998496127984697024082882646845613689005695602382436163821292636584182201701506639983797511073124219341829901170230598912668326071197183156111151042661509140338749023811663837546194591967667728131614162166721178034813979697141022824345418670685253056803826209274566359678254581166327964072552163947387042060431768346860017663696411781272034980167302023970603681800771306251710694320498745178878214150713779572398881874678539002250267767480732015667563201020367040862081886986607005670756858118258808704096948263604866720630618286343854504096313723750083358344283036152453650819515159476981646292924255379399953662244844978865709978166578593584960833217142607178789722038636538188898728481726928110427813960772846723790078613054435822962322115955833400436267184632039751004392928908427175154673703826667912364294668731171490998156211955387110471124480295242308208058311945425276549963770219766516405382028879812228519966734888006137447229512318388680717720770331145870841865543845953554176147468436114481592537185763491293703382656878227852889623819334380011434376581161324333147024735916209381693227940729259328098903241790713690858592053120620621380124756332148736925844112175876338900901915326410425654605162848215602019833222739351071930906043137215168852799268395304021463059100059263254083519797946076125476819798558518661278146597953879435760073190849171998344246680916116826893853549751876798671092849755014772920604725932217598817474891573047098192303484603363133464024069969181801133504646570070429293290624312736643720893112298238705447051250700427832773345565649950940555320943955565654818145389590307299970048361433344105245556719275647973349685194074944223403952189726932137135743116658483584822245628542305576119194120243761451817220330055847599286580817392278061321619514726644902232840967868997472509577353686499910041295027311314566349751400106253155410020041268521331333064329151723677847478274942402848272739613131404644084241791609773573680878998147482197656456436742077867729493229444843219092311078267350392922806290222339806044096591147325347529504909835165948283651621203884335179015942016158677337644807134697998723590213437839790053595583395872634355275811703514039659584564324444320428107551905475346536929356248702839291116129045301705340532326940336997891557427104617056543325184393179104902637177915165607940224858708326768195456673196377417726827462623177375304087012033913122271528112431165705248264538241832739494072660371033631547368560063683471744268778514790798900463160365985207033370567204114049911163715200685186248219142767025333768413088481207432965736777426949862658371602495362473518130771183871727258952040836984769672920649981506671052457954723520151741050517989319904474154226988639248577239647763975282416974374178725221809820758254258950458896979744641347117824411405465231480348319419462700728869501014201488824487371568218646777931135178921820880777429016586573671197860914335637942651134861869110615185913171777382128012446768938407372211499221609728254714778620597566551217813954347279656181568368286642008147103968888651572134193453238080221084518452081035114144425285433969302623609096164373569499981239200217920147580975591313478724157683969678488352319123063179432885199631552955000944885124035492526840526192515860802548675574511634377762954377674099239819452203324813099603349430610949702140591725673024842700737187880252288659625461773241963274547329279394865141137308866099354075930300007465713082284744887843735586464027144162362611238838539438873551432467023202885592546372575239493689823820635166567576808302722541673427004930975481874222002067721769368929737894282741312495248535234007395603299661945440222365517378530250678916236180288176250011497697058327184549120047408099372845886047783342017331358174498569049170469821570531405757617671262403340649257155519450877793358379504645989558081978415325047143230198141511835058542215321989543372521031526058278376381098038563031462933628117880573980444797946500912614355853026114630774984956318154423079994741294617097160499456110076241826439872879489724031405680869049867206701799782055550332447519962124696756053280183382440606400522103437577722832205297512589053676448252733672988426439833355939602761754679533712157727687463035307478992618360435295558330280585438241674188813593618510426149956430910162751058966476445755634874890756566306848352568170658032923212396128655127464541441257545116279298205358973901115550856976276478543977997437972709824518630461176324410097386078917200995417761409984863447501292750088115228041021846201001230348119697419605169289649537000110713801444577086361848541631221252347630455965872155448806059911267850357295153721040237793441339969595141867475128440356442438296092917926757298362020230869328430175591837072892929389671739433780325234924409931899804072429202307934988560309449868839798212085827716377707385636329272395204481050483508361002633839790101615880106229991759846795188564902343104856301638203189573273548780668092627399319860376548456930965193802570842989266888498479447633064054302932997183697404381623372015320266571492672415418620035187884530657846431977137837528048686257298158533976828882447699285930547739898229119808065146547103708903238872453944742983123491999959959513136404440558931589788421037549250035843082255023151292994488425557169519821235261379636855078231815761637617777527686759130364311375194660449165654322907505440090947981158904584840520735987181284870255386416941285698918477475727815582359115592566070837193265081527597835527735749023981131974325479734387282926868613762950243375484450311774087174384531888491764374206157548505773786470987955887420670718947248796151837600525306261711405187366826598786513520626343937711549081839042628045525461804627054136112260410485729289631215244194424908522001084013641213445943027005207411737451549262938088946552569701754477829125317099907247256743593756121711803460020110894169271692290972292526208241356179312266081714821364248223005103372518057840121059980283394942603769547097025139106715147075692624913532781049762735845945315870013525018122837071132313228162220097858692697368847263383689607658644895954209315340278432127780687216164600281235092836451653126924910682627658528562308328681470257824418756164933516784570908010169557737409426698863519990197177813599751995329049762916393366039209083196068596740732078914877636320264912185703329548624941219305385354414615558577789387177138660572624493519851775353360509838632850304177591146929175140937400661666369088126423121616254984239400851221793927804917408456476536945509773001404625503146954569710452658045505024670374868150011101064083227295875952875358354279714808439796452105893572454707800189797379633102990806390682220140911192340069498982644748909536183224307528740441750485334467018912344418221652917614684603054077912701125125916801527619029043566597137385127582494425797003806909891393752429997211930518101507262182338760902832456640655013997998291991311941182410890233474218616517244077389946690528874796184023408492021008979623161018019674751974093314989134263760155485278064144449105550220847407003514355545413775720625454740678504832943829178106403054789326062126178903890507796667264978425242879175621928712459530631011796849236391366389111513789600673926734754362271263023022664701779251014421840584281104659997536788047982851670668105920444837865688711363431120802939351641946980271434954733972437301266158926128238783229644239796127062526716883472848705134228871656874571690698825128585657250144693824884988130003359443323516020043709523225137438155324794861203768443300873829306520711228216098403816752889605162465005764336987019127000964202949819388532128871534633712270483946132830824255954808365915035986939257814974928261877467243420935365835453196866557096592760837951018999186169326521047364145662475417045361675940679595984121207937626373011119549450049060372348568782422291826852948980207620053461099659116101414935376778152187733394835117457936765166518542095147762363610989559721500819218534799228958391445700020209995521823751439105023700041484689786407994829089436899251575412155885048058869736728067983146359318988797532272374804439410992933803589852155558101399353151118730283186960812480240883981034997645183815964795771456789318792185316448847388672038769251143687412247632298857275715313862685998760096416124250289883517260148759655189157616198523844414277076145462925171367448248878956264475971474948048373229327885926877648938058347284119062499859472744480266753926540458199258271239606053474700736694816469286798808915241311334214238821657175240891277745385122653182973070914361740203064502911424418120750883151028686227463431761144468234807113015629163532938792325035167635342409763580196462813047444366560652034495101445013983538806606796000180909491933870638497556895982305930802828750558159539162791178246307111550400705741131964018517691730460334857245785647068344995837578344399707213192675409028027961734364908871384014448859945027757117343227600053343719302555032587508429045854600368195554622950352825719794269999706792942539748559003053659046957144294324613242054643070175112390312611448044722534814782001354428237531396981707775082604408420195638320851882697532639047444185076139726224189744483620697678054269406967975096551417375114548608597921780262730675141695978298902168187006259784503391537757656437207486801025141166840668459094937438034510686745154169910775557083109861590135852655625878066973336169064757934943822661689015150027436003902052632210151552214184238494002924434692244944120986647377667289047523766832275789863790426129084061644080369928801649616464622958355644518994805277072729442714922168082926666139709324219052506443420952316786356020713434046339869059233592356145606175519169479594244098645014372296092277832619481473440942747129392630807464665654024504146658315596375244783570984512159038207834856860803460394975981541227282034192711364532721374246536154191696551634380371430692233458362631944769852175710170831974165391438368634728283955209403297098111855638561137347267101238424793732473293664550051057274182722572964956009689751371720677243091303025096501074508630969818226108880934327932047928815200157179016374044275925252641875571303916054693107503641360736528893257399157322760580467931700250590745497449661150516396735937631336285690207763362015724621515416355687565014889406162753769234629690567201398902160442671699856595988283258373913702013932124179996990682856927599205058021115014971731047464461107909890265865799235822649730771200187757799102088191178007979460122081483826458989705381097538802304130599560238254290761956070152141199960677456204447926588781313152195661804872381787953827403360757161498119007003728435105701117661041592982108894018671874770884051943089886956939192082041916355409697086736919652939797111999362947887996057359567366756610759296273285118526082216139140277062708010015673373116852616669442914473473583790947321848917613138108449072103917651115736503802960044149934861920090230655432314508479904805084029821305092182832858605554102024525293106270954023510763616374875984515696460702788730440014446563218323195726051682333818460699731639145071688595215590769153247319738306945481883263964745136667933847442387617599181198960579257261154253386621604186721356534359953095819015590182267246118324553628652430827223517510268712623392995944362379982773957791057180076881542708970162759274842237432091993746464423670598644853203488230338162638160717858467279700874541718436151524627901626169299768005309447299093414383883343945319023293797090169568966979687988516395109754261437348731104742103297696583816860389307865869901492724231281706548260976342662628421679823703454750764726379731737770321700695353076599691617122079846127124597353753693104773865725322213127812666246038368409060168498835897203132641084208444042014402060232380249647795655665530801780128322163854091751002796518859974562773689554238236454855564729121434103882469520931152713113474370452850717806743715885227739328694983500605517857713800798133953413148341923546157132286439152850342852976021556969075868347621071569648800917888692671423373052310619844055085787616972598542280431038681556247510081560030622181211305207501631236413343890344132817766873701279730052704171619522859465084520042908432500050314064597455481082076004310379779668700578232330818883532647625391417427610747596196839953290772867882638205497901418716803986769783075252437086482140432669612274389274266229255647201756732478770785501910362129426779110269061272203009509256228101145518692231365048512040979786578434334313741319372691489011123348134379697800968755124938821359777451810090102094832279598688046489841796902544146710694849474456141766255717338814130761179236298348596566422381324586312179955991887798132240134168035614814383645674445595326063071878870604712697157464777858864921507134312677599117515929205854525710241877892149132807343744810059788351132587087812808272435105554394992028997638736139427310156617053177926364730850366156277421077493121507227518669433099369443701787290217015985862820544060004987573254054269361046780041577438096544387700804119670622409231088123578912466576279318036141673123563193703114796926558980843011104813638790492056423899326802422037387256360478859421253671595040815456377973214648375280085487782097286177770030314591986326565991778725792274391048265100192810491996834255189547266309224602009616598569455298851163230006807236390718369326608085501743258572470523616708212389579704853085574279661310832959514568815903890959997535724495131136778027296284964615989094859239601955078084284735323409136515386221550872088076261214871708851997766512698163878353782445061008371497142198042242542390025837916382660564862381175545035289399703313391280127247802755626215296581833273822415682699770579338301679431722737485739102057404279012466743572811367834446865569401851011668809354486313130396260969126458085917062830996230057993522920416146265352951061133805664888617640120354098708758857602337292253437549942131620645456600836241948790443849778671744015456472439392665898420136790960180103889841802505981865699555968844018439678286902922428189493993478577061735646552383778302932970494879908489712750659722187539747506598498096385438975530075442167832645121517212858232630279874455896074152984127465862520206903248643646520681662781376530919926586378565029110999284140155592773429603767723801658084458077813942920207767542681476967706478288117792176403754559906690471193530852819218203920810205140517814422887771184275838913035656043261315582393497448555454158032018312109967362666720175312917843855480077785189500671995744888430897460442035748715875223317547845212882134716747684365994614323384112338089847231971624836325994098877978237921212876822610627063164946573148694479601056305344075178824961460986872478581482289306134048710514544475000208645195997286732597840224709424225782872630184956180645197244832875588416521633087634988303896220924903031644661860452860575061819460722182982878919331484226995854709797590919114919326528071056946427526686877606520264642576377595549325081647067495590863650603733455000813283141947201168174643022224905929157320071549036079142224864963065377707377205181472353557149555592954966492835734008283037462447987942962163736457895518205939296060081066424134100051865025376863778076313169777794911064175511583598231045269552368750091550327211256411389581806692009383848823490362105518736913045501870820496456787519054532772718212689621057714538858435784623259714622097909067493261386440027270308111113048690266679104929429193275194275000072395883272088888930716038266134103810980525835404765227027209033338125339407445092299153172048602421500466955940288891621602793754977544932597835902918727997911885441927795816756502395082647579765399659088770711969048695677794363355318378323823893585717473594589952350802138497123265742251221846104675704299128748490490401088236965278203991142107556798474618617002357041069802827799422685187424294463815906131345298646177316426263035084050691436971453348058099236387830136580398632183903623969014844514240259015782768715269785045896968095167066019592560333521516333533193147554263524737231317671734031666992499453320906567378396025480989817080788177643653121757140677610755054516142056497640336047658927499036941881872554552529665486226309414790082470621637584210636370519501494662208700276471582403446139069200707500526222111099114135477572373061260673769256471856481375314794311020745956418077965515865381267942918794434330214533007371525247950955828140129070329538913995449069377919586021924394253268413624009207879573844248239972190741480278932219240369051997752978275304098844167060670767975563525383563667817775920071780871482539424038575556115169939712632607702351764299357085313482507664048778543876362127923466523989831019042911054673840538849898379134179327735017709508544891033165024082429816648465259551975683094750962698289398589754088107075915047011803161461686458314346467414431076424055688877580138672695679619377152214784455335010206426604366456871906072283252913429063840601055075241038918541715281869025617628327603012997459692628908837567862350935800353737879915172279965656309899750747695078503713919950061813354963209723175136928601979568514297149165745172778327760960850870266197232583509916482798165520737402792647304346972037783837056141752177498002769766094048069580583137228553783771307514907579337761144357626645327612334596268571949164112094962215669608151769276051554938530378008147081573210728593352879013571441232572590121897917228751340615471950617378612466527119326554335836101428715900756546781792077836999998802210075834341170809231471341926322883700176478152353430485636985678810425607890663515851266835937424823507562343521863675990263033039516720673951431298742075022412879490880160822343031685573135726970376978440190348797697059226766450678590749667618314519842757769432066551671891558489959863485967278294787230428763494550315632990937555613369259545940564477895227300761208942372159884628753713924559991199969993389751595457683343180353015140437031215347439768550761382346628537643833527837080777473816342912928382886202141915220653301134587395214096769494846792086179389797273882350596081740584664504228017233445317501502883171334708350402579527074247845247717975886311865747308391254740946105258813087367386465824904121051558029176537696330539491040649058876715359881390017444133408064446036698682871815304865742056780589817499986558906272184149936532227124550069971052977757431608298226918110842300822719252961614340465297740839429253129607092247447373466392858345089557274632888581658181418666122080307581934646758721733463811212856741754038916226608478591719987664981017700746121397058411561001492680266971523651504864390764061169882575802220215773485121257575675323461684550195062296514365623694057338601132503851236227219390709384388388682211157722757176365227909669331291499009594969051031538780812539444933362916091362566267285867946971142231691927368361758024824874471612319844996218045587959790506823612179762977414996642141655222298099465509013304563211159750484065127180781493364968117613061481941191716284616707260205763950388032332472525356094333915624402096027780712063145969508706743261125070331451908075286083400358831515277495563788929920302159465787547472281830233453404816250625895168974169005446525531752620938917946098596853845910292818338525650346218708733600936973309374242399816903215124513634162196359280864863204611079737169388619646081329263538986932727879115132467718776211587502836385480753670111710669926995507702831701018196883180621777268202948573553985136430994855251035249657601464267794012623726617451685064168429298451778809044353372174164357137306768011726223685904617543416136449657757549664598155977867105386141019801043279327278072660469900433032051069637088552132264196087291769225541491601975273025377172788638244937123877063058230308455991031060786537723351121146127855269773587541892293352125341227991504027803452904341388214249344569792326291277951607370154027849007373975194155442562246455077873517400332542923722593142309258398666323822644577777082247171977951447352321018446630235286972250377131252719010534084781173344826265646301184698101461461111010999589845163359975439185116721476662114342807782159382712779894682906234744534233851338084562709792381195006649535899065632811403294225830971076338682409550979924870107678305937088001397757003750260156776818661827971438773726480557171513657103454373000232933469962801788934667047602188891228928655913936767290864607072412368464948181560148873873919867499631608432136430261483655181102953588468932019740457920199569029864015382733780910356749413299703378247082978251070855129952706680101235892163159547974972646173030960676118646711006635985490094669211960391238580191671212022030301954126553719589191335218105685074673319740248447056746327667864475158084895934847926949331240308251395509923768813702318276426383441789572508959967283826747503464920577202517151567627860185914097154110292947668488457353798319843337977993104174764801048576742317720062167575593341494681330885249663113788563492041621641203792215236278510495455741556657514984998473924427428996849870680900273787052214751971875419341779251568591978418127786376574746697398266896062972780427419037148347747722201120584224275321735495484093588287417305287705855131573180445095810551534647126218219255937442144180749372697295677181470490417140886447082841302073870657421112492749104589950291713272370470246171011440136796303910411209850213999943356742730125826982746402193690973432948933083521155574742024151715092838678336468934260139074201313459337963082524052772851900392739145145864676209436389774601311908293402016636380397793699329544911195131032583661434919807403019182428987040232713065508205054178868066434352601299074934529360269848840999643205687627975045079752555993339433338124377179954205366095865907902750948495992542953146829694685295958644015799267147739441659881731375838718555107113572409332941464805865725479951674580919951812179957621396657323591983025176491702709248898448591532817473391295023767770078044367535334916202859895946492894358145369359437388721562053207499036929809833389442959920421841601909314326978083035021112097345187386873375322492208238108997440368256751417569779631930010202414577344802226403733144150983080269734085545784317494935499422706988215418295593745155182087450074194993191772416593337230395905131384422326261998300975638376442327130976722415033747261435921708788137427409655851242206668488460803042085816968023406967192092995497011833562430122714261716795979413842559975757319554253624591991958556347451089560062356346522726060202446909695141621900207876894913456623321102977431377839943068953772213826563406971553433876198153394664400499226904380726607723554581744234409449910530480611369302944775830579539711015479785811215347305360746501680834967582670414286995068382958862338007581461101325872648524295828565352741167393476604404710433003158753207769495769680752491427490666491514592611381407323834913515347734363137184499598494662881655547682304841136930681164716740050844921499597217885794168231375856327809166616486525178469937277964244078441198730342868458098190593998176171287813442637550930964007445408933626002720217596236157964728057403394433277027518924443911751292007645606355204798960078579590799720879704374528439649338752072007023228543163662120810712645458895424391277173900598566022938060723295665468992208484215487514915798161700625132506432165597546623328239775273210880187700800150840256987964939973837183919909278943727928290913244702999315364172475249433687728978312346611662838319051673749513091699175178311492847480241098040495407389519188019637481137213243270293314047421334555847800921260191898191980631625970298188968407510436065884412667339941000674969750639953600285387014636576078055764930048785866200142357098287195112191223859527543600086698986075411590374219894725000284882877226302910110213580012783234086236874732555031452790369395790220607109333402959000801438526363299430707548701096946415042341259695841538282407196439644485566664143182802992433217754693784802017462474016713737859743724247540054407040989300856179454246832544281839770479785887819648532289808589468025040151316657840937972386303481339832919134042358016505906144114061417858645051542856304615701009720002139202987564441301906912674769379356401784170744151777312740950954350873513872069739097113544037211894344959664724098089149329077785551546467664349696956036141253442913973281492775641648872888275653789448215467430195938758770066272198386991306794625062379667879308255272156318531933073886304612711266757976875863848298909382076237688919459547792744997953797780208895031513211562181013915919271130352604015056483080866036664693687293045550913785509187437417781926183356652367729465152149089315890889371258018792236265218126519131012422838829605636188910036676791308057020208877056956006996920280306607654076272407961438299129578414430602793818603519703053008638849054836021857989595537661571293727020587205859451202268739957821411171546713947219353615412372905303723594481130503553296273184964457871176093784975857601123834039154855784840580200556493342013437801421070769381545177141221664089198833295245563023584163595504707161573934477838527549726218763915631436754675196988778182513557446009403938694031401285940299260088875187844372628249631103152979073469352757168587902749268306328120155274653595556594824350854797905476476092552463787580726301940289393239581851080087978652630134944127824757676259207092507047687976747836004497975681465647749329620251330240824069432862261071748366179159258057818972315708290779385082476696780106584185932887135556467711854703017284969446888546192606178019412712265116647148633867217288175502697732792657285106857723552434646361339534953477427825248258723971824485929351440125122671113486375152509411300434341856040098188948052327088125802043210493940111352699390354853365521800460583170450183363470821513234521988576814319758031892429779945589213815103542061881225019478875406556499633231073192545634165302131684904439779640928564284180516863627743395542418856695806745318657999742455009476132146217426746087428052254325039797216349732278550909060630877038151061577657995750883946872199784232556279390835358372205082618779367628060019876728676882414202291076970059200642102772427748753378333224628787720600633475226379790511552971607977093436878489018630261092020434513773883721721862484186207533151897671581395301456529364817464221637172991161598176677028115079600379780983039604852022821447836441301073070505585790106575613219321954491273414728955620498834006564879456727032960688299989306707898307103680303273331669527990231505639511633089217840043980461321147984572316697336059790689150744684023170008784671151887593874987765131427934558855428082121026238087371392044157672250732785897392861262626512551084418697788841940141456510507357446753338752834166085529673650666046702978707375371638303990854543179574715003178224534473615015388569169966278352538482198446642214522292607180176910080733235118688704988267979268033641521409289257191195937184866356463665933636788903785616167533305466426502532817859038468700033056222837907885355553459672081650212073272210598195141570115346162157089194193271319350642906120743185906371039117935422864607320811809989442933024269483225042520907826724596049550121416634866771609895556837639488549440722902586689378907835846992265095310983393250096947039874471777091976025308444371819671149185493825369079378806629521861064303734231353408625127583496284977774932336896439113293005980737524546303634208751936983504187611209209512738736887556354383801957854659829808953736847810567397411288185493415041618603329000188241862383120276324319533489807867112059274784864133382713163225959626920953181659784554690762413246780514485177969767974443319157840560215813037790022460896799977728166806897719825523605516191663905117745851341243753380332240167793775050584897142380956472781707562277807872072504017575225731001688060476847848168892187858556266391608213099828458514514596320527251311807412254936657889591147746455803505508752842862993989947508150784865983054769502318068607957377798881366081465750966868956256417753404296924156983841288213438843547618311947476049633584441289260561877323590104700019505234413244682088958367224450675679375672633782199918460812334790047914607734735096779211051743091972739613940397047118622609992647040167374476969786248448761162525111587950693359148682863570663350287486392399638195977907022007357398998877582104380200863743353695802833045291763114008364859310381054506257420513962629215702112984192369010639936138987868992264062357537972364167913702797133820902976131515436789508904166432880514355074122503165154429761320964257288915733227123687855409560996346022527194535439967626560226108675921927015940508285002840405069500459665486856771370116182935869229606649156500809981664327060881767102801385507169445620302540398548111459106674774398877168906832960169421739480768553538850602779749633044565495406894921376439023730582379445872793474528253854045193530602764834933301854765469260489268720559786075293685569315083497176135192144106962984227608217317031638782760327244400237098227148514628181143630853965595565080888588677142515213977789780635492002446225788754384726157705474547048830059328065609639641418469407502701133336645665385046650875049000402042432712025778288102428046503425938096829152577900958064422528237210399115145515000949357505788383483147310361981766265669548063431877226687428779932544961354939497041756059276683641959499218503554544876318896123080234571187763070720038198637958360057593777975961383601650535428664976229394204847906875746419460161776101777586622859389569419368805549793373816875451036681221092086889133793033601033089440214512956682640643656095937758667887339396772908526018028331407394576860523264145646666719524239150505465377984185800374316600924733202720570557774592600126495649951550951064792499012939523127957244100687463911029730175137834801844392167191807076226373870434216031565331891961879849707326975887506694906706436073440782408533189213987192171091512347068892128005199805110807216859276360148545655161396272486626127458875321879008753924684709813334008823868615795352950818553782834196530272832121097349822565023729404467588286462115368456147181969063832214835354618252959386443349544685546714421294335047262694815897611378623601817923685366046986788619738992562771785131358543924168245608743292392894570500570570760236176880897999606376722631574215463920664961631056054477979377438301123069735486543281718361763267780020246678138355527665484184429258119111386941882888199147383037396903507938961881471378260835933589158918144094929773604861544025683437739282519341426827649692950911014141967336711193304867404160280624303309910789018193365360044979935469107718877931454293937651862794863656293691610640939213817714344231905106050373855077313775220209469729561469879952064284225817800218868142969521523640392849125341705974223845086223937218593108499806989134620889460067710037558030243354044907055339160450845050632505280708062687622710341908886099484994271984122022376370798108535750943834536406431269542528613775982253757452377465206442925575829544958406270623375145080569035030934289785142058147713573796095493752285826867991409429817726033212965476709132899676348081645328528086752216755347452008749187147722790656763677136280412510004023189090437686798963875440967820107763939326300379584007109946437538151468610217815314574481683704518525999325632286630625915823073581652947477085268731594917500269436197484122609408004104435125647522265462296878561097860094109245149224868043893488120032280232939076756999478553576145402925469699799450412310173033371737563896232936439114719314587750193986621796466568214665081981629235571016703689405760624327496917173355078338251421448851964028200665953398209886066137174499750935705387156839268103004155650155264644225142822509144966506774592881938051980682466943447977077033633678048986114873481534974715996102960425019200862202812788067188905371395436656436779640772127857438825182800688915717721812838354193066936687566610062188395490452181346652755050752055250752059759179608047861596601921195390715407749790112298007076014742637779970485139708878138985840281934049904756946836190649419759027521005025094708535149331015044671115025791459575907940474938299086975810976601566684575035543689238435423316525495836081100566575190619739013915772966620885530243597017998061772015168787885821904353748061088168247462065365101211110117540099808840688378295822309516694722644728472407752836241248998074569351463840377959781368119871960911009391070318084932717632339616293060336532854414280498264154558140177881954531184341642642000999585455803666696846679322555384776537261481901879488490178088565976253371024258957029855894996881280751047898881388936815892503198637351129517571146201130476702966119139722060431582795046091276820198576678528800583296624714750814172302562967980751256929487122428715215029169916325581364032984342329340743920274847669164808625526062588195585542009096670128073073842475773785138242170370287036920278068693837244895291495346973889840444448396777264158606743508609372299170366546682155072732630025180195519597693267526907725155258880168161331393771099838868127742233395529550619785222919610227294498114321171555378834381886627031661532631200549426029984248091810079878456691075543129804664596606231267340728961754108849674760149485004186907845795836343981884466036277521188906784492246001878292007598505010291779368243756687190789958505268110681946424020512391256676638572575553248134407657487396338402140402564592245048368467339133405450396456774653227583815218579350244757904868723725655191006769188582345094746964369579799798579269433909773556491985737230771776547569313688642023593755348752457087560374756879630020629407458554545868182606717653642456836029103486394036783718004220237817666564949166617841816402559933608627280032353709951264758169755446404946472783243241347931889245411341963364927836263624700126326970843862661005403201151690160508421207905579778966850097870479851721012797147404067683918530849104707390514199475262313156114031039674497223877783521430374599355967345973441933215024296338392475233373340050169477477360858102010951674600730663637324698163586722685527147157011890763765321535514319349562817822304836015400827037463839304417738791214611044607204987001446602075381123653275134133191036097366749813526037582884885153830996019053946523992373834241048613365022266051570917375400945280248057722429846581909666620025289762816749294596928872131671908009856593646438201388107569134918900563346516069123939121987361812085153872500484147338453006681611890028221978366245101545082088886572939105518578727658489826501979850263589286434480928857862923410291590608746519032838906285491671804840504595190578825959249328644059048675316885468472199157485978817077544996426656635849735015474144905807499997056819822049837475335543278895489460119739278296628929203537683560122372441481247496319723232465663440118099118430756721515333482225783830217134926793984190262984370537784656058008423434836462548189442601260923383314330104368915910347312534449705454302605008909642927322243587694418981174894880216151994389904205033486286110730449496423659906669311571817027584902243140088770106374392677533938090178191348737073525983533122795551971578508719355711926232667884520224632865247791896959931082516701302172806770478861927448512473615658533757827918882810946354788094942997427737186589695374374864163571516460405693845964778389799522147102733889752808846167736957834435119980577890106098064654439532699408926227215608950714629742935477068664205791764296649572996279184173213090721468098418476235002730367011524623279640780024990811547985024577298546799542762602790478468350330965708708200518841931513360696084167887849959915939445167527554574415242514360949658891559312316068322333388113500250248983903945397511057275223002054694144601308041764887004696228117434745463046264773843283416327856106575736759401395630335633773694534759404494135517780225276895543681890560246939123216341599028185505467264345416546105872741295664154934629432718680980518749641359763856284295014963176630274944302114353594039998335289938668933167420301567639435875127047085637449969543782422399187166678159035218410722528297655317932737808720485768765882570254139136666944984977797875978178321524320143698186997906887627826488848367984007061574317351549141347376393146221689670304273093128429654380690698405765184143269339157249058780121130037618960264694895776863830723332014677022502834184506399979384077180390255361045408815794828866348646562196707286693547423875250792575342271684736487913545913785254234962623419669387573298992455080352288133628377441142959745020312156286057221653802505805044713757968991536797884828310354701164742831495665062365270751844471229755891303531470573802134700039341940995771896729163777062991637199578484437005561335310248821349667477554402116404243234101563028778949194421783191134860532427639884567830863787401768041953686419882370940291610283204975190582054373533082420272000589750445624147258124750534783573152724044231892723013602826430482586934264140168925537112072676970986535463268015846798774538271031505413620211201195319227438225573233173765568978128778988597342284393804010250720106325401845666717818764935990768855230731341467054801521750065319892735926618948457383464038757081248771086958634797367339146555766169988304768029430887181975829616225241364636669716758237048186382550197298909746745166641417098953976336212924584654241543606689532882959510508624421932251755516872354446405417755627844140365317208815223529384113567055707048969339119090518584777249795394370139475462714812082739648230729858747793420817375980537221443148016352821772561043542382739557565838563375604685887957676392572289389720300174208865566746969691332527283688440063614890254365066928375380150779169928956724937934822009979981333160184075654943210096184454984517478395538470541100566551701277786040742328429592471724676173708677050540303416069309322404813925721188985346157562427229084266666053916864360795251125309509218846851186695656686134778551217266208837515734240281916996688623829501145976865042898391259618142056220399895175523259021720170310689292213667988395606714006202931182760536821478691042685796878250632153715648603328762707701781085828866404697760158072859623300812055117551334558677640189502275417410938998059607570617273310027677123589428757874380169734937577108476245259349686757034461771224569723431046977354403599710319270952198208959427115471421001047706974772387550839618940019826497174512921565120093595248893265058662077580650638483469461885407620521741631327409219683041830734297873258977458680432356238690807730233719520041243008584216352727181127446034519846772518823934054954459000182430578925179423708344325415269333856266135231772495309960888744063339461948438945525580148633545497899937988462729602198577054950790683305744335508122642712180408872781122929937502370474115472901529601483518548508901536604996425104176674949195097180517304222972855855023312246207196733261971422783299446706978288557134969471140040346659343505605943058918509940273535774246589458362809314482895133484942357856349484256107723884810389330953662965892173576524126613914083525008373982925598068522540772775421114331737422961964390038147478541223237980079213166524306657666233197686983083125459857330326166434747137406643663880568393721736049747543120856782447439348025909947370586131785040799690869978704559962049804479095732715766185144003544956091796116088762096713084758693416133471411963313935636598362681032126622003190434179810716139163799870552922954435099527412466979403627536320445360655390649562188703726604423548839179666222261957002818178698027205741500262888820361775980885949200720348193619994317719820059220279438679260427767495350998192663194908840648431805869172679100516566362345257882178844065679803237045907733970075490418190325249093869020806517672314128327163808186770238856292402753244089154605023100838131981492793790895296983241760422732725829521968784341872869513528884874803915800007501876921649810788462272769134061787718151409560796177390939849534334942971053859954099268525597640566842653245529683401845694517103474891888737537297774801007588362509824867737443012771230267791257815769929805286943656365225149546194897798897180827035192404327867980406639480842698403114886012903004878333580660868402675614006725980165185202812245660614906380044290468700370917749151662413626903892548078792587531594589950849320891809520342105870016184367441304106187591847828960070928223308588919258693256483389603457621955383441593431943770884397265317328243235253406534750226745018218977870516273542151238618931100412088404446606292667438518418296260383006767777953898426195149365148042199251816322232540872645667037869771363607072608430498790827707263100868547849718967057915609282886996366830592976592973979988723767110211120119389110425089178745545859370890575159164415980424351591630355161340621837756077161905643041567806871321467782480923656833508539155313983908475592014538195313617804352393718086563777653870892924032127399186838303698751842987459333013583570758829456497516025991142989252726421438128783622807821993633345062141509401068643047681453614940942171344812407333272380319348737103771147897177576960709102891175183128822690795761747608515144602743766763259662505765260741825591661102436432092307498335378159426648583590789113092523933931072187722569653717011754784784244806130434094655345819027969174145902719456924093627444811586186573183304848752271438082734693165847311505706808470181410711011244961844111819199380044766092938201791921599865105703173441630472299134335890689994794867835535009320885072596553046846282212132712672496012517129804625764584346968891993221535327450667436789082882538365213883327618370910822752096893546902084893850730591679282261410640218125114566973293131493050416203149135594968247846315470123063753463965043112753412532504133879042915763119048672378761810151384899820424675121136690215331868123372197543872865145348431466666707199767024333462209871740170819482416140127800495481141191217218196392584454015572480586250714386228879829044972263614419322132598705907059076484887356282747569478603654771737016471140578790107852280479883834857771504401014128759854260798676113661545052511041949596826346372424590735138230213783616882446814963238181759644112974490098502227487192690218352340299254613487459641150243187188850983126597834083602575560488038578279388355898394096915012186316545136359592772557073589887513410603314707765329504960706694229913951427022182281171271752446040506261320182701995895903247562192549382167373156209718964665947844213581736823975858950929964387426681412494393492709036849935702770060403141415412594925915639342503930383128841991340691524600249792270443649500660414292263670806986123235396450116170976766803576648769661452789723393476954329904650522135875173123965848086758263040730141622957939252295458036565844921567353884446406499255023006392252140566259817389626949406966864502276079518798527764879322008395428114921726320801588678041044197034207486809939415204844583864036975290032263481862384894484243532556754465490204787165464766136119124950911218074410470964526182038865785567782532410504245175985027767509101348247783576502357195736016677066139754412530627559692325810640876661865159149698746146057828216067542887196379514310481646960909114453625789951089791656258169702982146689645375799858926551450384940189428761125175926729615821362758729239003012739730585481480132435134866517377770007191264268879973843670690603665176116093603782701004649724571461421435219602307405001787342139209993826522811145879297637435651635680205625054457244288088635973114568086405625385979815212954840744274328581646683062884532731890749169456373248037426187205548347176512765705930765687661010933012790528054855100252946672482505443551996564831352787002221957481625758882917048760980080703404578222026561326464964702088390656689332358176144368875509314582412351822017489003275106072216208195919692491840764264143225602760769530792860761062085070496763811998862628647084146503111978029386110998574182068191018428427949222201642941422399907544477256952222254636139863257862024482700313543727812487098677075565422020608495810999193526217139837674869352234024442387438630262731248935882095477422179059553868239888011831130794210975016957624467598239690135788679125600595320142729677900581591112961256267981017488940365940558553784881062745580717229570720472349001308764456432317289417039826681356251761152010539042675557453685285877759868480719448714669918826242739352429553605156420098993370499718087530988925077892383525625967808103831040307608078160898599124698799231963713732424480819808826533885763161299703538262199473136861530978264765561184618537369768236832564614459322714058778099054282437590623775030975164348709303559583033182809983431010560092961753636659174355275297629871987608908164618445727897131463047472420603106184027270074567779575263068408844119765797455817211182800406798732225025035670944502772722834130628807784575378591247121727293063376303111363819247208034316572241307330824428313228503554318310638043664222511252258717377111422551883961767264252504145105237736880825533183538832865539596380776200558250196140646288271298792181055899004534187004994958991086778059188508420399416131137730652949591221934922814129952941922355767361009764014925142541194857928745079440846808495650061705395187645241089164825068503509777911686304258284390315058808561346237575873305750501522587973336299854080657172659623952510459842608724419338829892316493242494748328854511665733921257142873913829683485591418406931091316634427787720365715293689965007060641839789314177643011104828138742938605544167580121667409639609147888688313134656637688664546646375152300083222858667679485588657824775400234156074714495125050230057157996325308295304255501152176483957731847658205746675174697509892979424948001726802122563566629510651734870197124438808301563651433275865402324216758463029979412907649158593795015886658611575216448794683237500063256285597095199088419628689680277258159028912892527263117913272291364220405982107486771942587231248415887556391909596995405673908449671121959768404542146818082621699110773452816687606640121511057347920203015840103016671046558590590091967340154770479266643051387966954608110400018591745397339705313218763987429739854180695064035612885396063653193378938012967697472066213710407480091055655039638865371764574172987272179806952717472885652054618472573843583033675884887976674268681722602575473317459743659906626717775307037215013361089189904684692421983492903767855075358174056982215551246181439737357510534609370814298184118306019731774779576540620274793473124466290121224018258025241221972022612716658382234905403961539112217864973236306595076209787197517002519731933843505581294861242834890380784758381645963251630548756383844397845805332408232846117026280179603423610820348184452452329408225388098221109183990278375282759337963667111733770588006345947199643981465051364536841488760069681443419517070323157425132584006401830182804363444503188117644014836307497117672720707518548508291622308431920358861373466685942825480960110722330186773374253993634694029599499183845549072613532522193290563349551757365248282133640139141701845373803075060656248875559588006300639745528180634122845820841146713849497767522478423412168644585215529499927700972229714000761330214805060906632841336238338635599313619164483340655964107993357537246006538427655828755247185048219237871049101769255904297987857844448750462272405986341373585844542646148197013678144786309803207505116312165210340386625680952452431020456504191381441601126623616509537230193501841182667313175562060845029914140376810852289516133545960059126911675799807932332846505741933324137851368220939989542025787659983585560915592534484938039180650994897867999591856912947574851008403537185176114627869205021974270815119867863230227095192313555864165793269723636565744557657541851860283522614023057709865884898291306631841058529217502103798391022756271336361589430701474065856202286887549204544721751098020959435818648171169811662254721665950301924956077444997479534653395809359237325424863917450551542452370524397795835182708911213167406055502386502101642046642986049661419064917552531946297169923059109903149678610537161425733723563145416461484556423168628395268306623016092430871146719375499595535264795949532533648187234594072325055136569596286216690825437506007986039915722353395004210757147490082454662565652810849457765631055318372423913191986757117943791300503050430719657367353608060037896763224876697392397013265292004892442818472496905014322564810480291723885046059450408578113375678166963425353411486588595583739502278133447344421072673080878908798557510423379477955301402959631901411327025940307561677044292127250983434406018079728566258006051459404288865966407076801908978772310208911495477202831790584079220422176357436949753001458522369357389790716797505159688648992950555995712464194627434966899940145582823611594786086775801425534979572092049062959425717555276180005674907260379509033105661256797275803926286503075801045118972138047527826290030047341337918928028465230130303423397402841528318045785352141717426563321646213241329889641795063260872536108471103270653529118258886453522071791275467802355437309252847142860812758653851146118996918611103133888695205381071044765639367350662290866455637498937671527842740429037691380496022262035288812220334818687424331653994698612929467433977707531181087209780921082675889552191398681436530749672494830131436710845885940757828116737027692391472108785297587307072067931225974369033227583934074785511824564725603330763656947019712617286302195287863540464219733526746057009970027481100836574912536248166042067266148828619200360757091280072242036282611935336490466543267226855414180231455981843510081476608440954996400854821883801521798553979852600980940875935962626230962625375983864277064718346918775312378041699597803758055502253853510416986895839287442809807874064501467108776877315124540928450305034548179311008958543804675050874075495774547518954223570848313759014610380689087368700406017026578589297157722102626580711080982492785490070303133376979651967102786475715174683178222137415197137300069330350843646928482704029560677733081522068800328960544685893028790719687551891400080438621346212562914273446007758220035902124805395178712902891492118936483163656157205276267957925827045415403290548919157180600104028408173027650726337571949512731969799126756494477934655434147549314044973435320249655559468009378494670945480148600355490311248516670496339573524761021390672967925983370148157066488585896600962635273864573661457006003076808231948690049353822221713136902406193340751088001226613973750279328401950908581149591054730799640488605287301113390462818257710185301430249105036670762180216268133208290623477424206816012228736781674272510892809676899292932985470241698857171243737332436120515298506788529067234963479639368969629233353426730113324111027243937421779381786129821356767128491532017735242204397836107083104602667798211806719849004524087633133648000275155067976808511153787036571315441049464615898009213141604428157430117010046997811525672052509550513912079337845887880051861966582730102406299799682018598783405768578398882331650920357013997550611798595627110366903704799228227831460381037872317151003536939867277970506795775285180307842213696881522962753685243256731015890576579894195234262661964866868039928136693471671042653908524120444343906383279000223823060819840684965140876723484999074726148509147990967037320600971187644393138830516367177815550119122532420447189916696857047695189545115080042257585558884326772280928582513741066265024116999548591915465211527410234576424911265473196549011102819737792215241056001206982861990418970289125729663115270267963716840328317757101088472509380872620080381919147870428356190801383003887095017867621355997089619658197580657253711916327383591870834406370517010401154916315700163462798604773122931602895956085402339204544282079659215931706231678895958662498566132879796519836469324584313139818092385300209943232012508973947407712166365948126366917756088328725274710476240544207201705413159355315841804524666434109239846701005615333596264775463268039248229597160118368208663082082767488775138908783549270186746518333189461509494493301362163575237418114243717046106183817511604136231024683052939311877790742648646360263131124877610435696684012958465449103775880480033417023168155520915075725928958198703597455858575447880688622320298882630543634189353024095934596178850382867006354551375152812226535338432576270975821607200131229972766300127731042941363398638149389772153614085185584483277174709693250111261653358069946487497155245722466348786835453677560845756499291629710676690586495969496033561462663000948500357320574798805140900405474281078251776209836692327122883992123682393700607871499327778940669202008033009165897071445001509361163361540999933664325089111835784497904867342262048800592255701142466831143303823154062283544225315362084398284747175845658345190745191911635624853637276658407388200490390854152648477138933235229914336791250371585285170609421940625253755759196790119666084909528980542073189823593259039679789640170577779860686764963362544662852075817378567656440737992429683594358253322709175038930263151143620709436171239816622411893519231783193549481408310727366335267652874857455009403500585435025783929527705027874333061163262058141181011541627928852892311839678445180415841709992642130511233403716417546079201864561441657325585622957318260592135951700656351130572248624386540982912357268166604064505398426158151723735121266368918054766540748887429980928341361849408777415204431542527574380398877370480825704774620045345085193186079137329227462411410089752034327400270545618838792174374136768094895457504625711532193352564986985516431886379847452699702086106663835779481502557875937698695781724470711836847346113615476878829314599222705042133481536671572960995176572197354236018937352900286800693351954763860644511340279570580173571059370984692537686043256329824048978472946264855983938251705371884131568812739418959816830986994954887791009089058950930486882881071189774025796990006079881918590517411876945400370171467001621772571628817033030633293118838177781253582478122808773535493407632940957079875149359661684841372250066742063580559609226901000644971333883249695643185382272436027472801012564267992000045222986970845895068537170228403225635265318013459478001561755350910872216241323072839232681983951956440457474869872328585084525789620518594736938830356002026634753353973611943939932769296986139854607387126521831434023852475284068579704843371905192280453126134347205474170179530024818762227799713870849879720073974222374761032545112710429202780807400167146611313338122239788125782908341018953836567019369051018265935069248250936476769655431883659650295770241639949373445846204753785792976070936171023108507177958565707417753724498271055141634843874616102133943326658482895298540538758666639560378424107757076258235572251599345088858716531888417182222249663291199413843062182930913409915142170671181351055010987265556451778060312822861884249252930332453992369070332536370808440750368371018630080256950009253609294184604127050104391129090014602977197561524667376074807297362842284157210276794940333979449335486139994972179017617366557037481908800515007837225965851227735889556685040367767278849926432121353935851086616639783471315632462006289002602635892542994134854253062457811436213466413079327847442683078865404394918711598369949485520648818800231298234906590326227515676776747383287518720443908908158497624363571050317966167013585092028081811518370460161126975260271735287637861419206368998598856613970830850670651073646477114493604535327575957872619284491628451540635820735640480830778649067154840985360398772566286950069942242476355525109627600203170327061645680425527827971381309138844040448457819203806373023631496133970921181513905211406207918274182368004774021032658100812799472896839516291525867081999603373386066380194439252215595616441618449485544211206475915390020815951323691104179414614428789853667127362128153816581962647322347667436275971296571574757913668152743191991932579154799419618380384103282233654133860425883106166586028034793149798835949937215551330074104175734313529200803015717368541477880367680414710124901458562361569866185083892745684452785528829733495531595808042553003849621175527777605976362806335485596226848603025428784033293377104695431591652340041425325807869368189818550461434649813417824648781939278014155498222219070358101478459192994429963292882013663073568747397879165107295925997114296839685315780704684096924862939000822801567953057678991796343056394248001634188048816501186420095742421547915778741605406055468602715397696364783683150380096293321264605321876309270366232528939050845315135058842292239788800712011537159277203552054924461472442622576523982159686992424896712734078454832527672369347690995564483634535832627838296474033840120750010684009113771792924451146788297425400692385932481331341471153914341528132371655963387203320395883482297709488655437560142068505864778035475630628102241087100297863175022291878219526642529879996164661855169109210510274699979071081173380417159646442481675278209982296940011800791449448914341784346261252408037104460916240838815282840100638176205395371793440048829005041755981043565861427927550624612260032241800047397072606744644776915061125617808728330108362189482581451174241512073528950557803162117428000962351091745052607224051262612406165959584638081376979513622229904874836955301846067252084327574222340533326994876895152107987289649327192851905566920191791103332055392454646806322889738926484187368282250915195830934056307884444533392151782209302369703800766949140655459205767701774528680158745045504661600240492018138736974621930443809552049788624463212105622913137654549233163163955028293660211590914670947230849140931886323065621916939794464387697046099126228995880369822371375576691863459043189235070066910466532134123934252057371089679801255835742992999757753235490164844617795849964247362911738002514682400036922059052589860260714254687731839856668153514884073773592720552902703849757378233340182170514497086992189545292822560551796989363206897744299838652516621177596236419797521404139581149838261396651976064089327787956778285580961819140173432101705077565533927814032592458867023745156353882730530688861525159435596744784533541667493952212653036227792641659136668059145468676664433053054185239914345156417513727090460786109638269152544631854201664763473281094545277538318808397170552191424705567924867615645680916914419972233131980286622643167375153248020985350154554371445091025029096985697902557120891144294527340912841008736143083880892681630245980725384094210847045727610635983906444645195348263280862594436027553804377314173115479040221803538385477238229263479111969650745937556714765124693624040867245169016599258377754452064428847785597434964616118384800558208658934481635299831515499356216383228926543339544531551190697135703466108334054898318510746889686308482232154719312854508512658009210371080802901424501018178715617224974298435246148596705624190289830836141085347536331412894837523318122919708575739355953881411935082679418966975104774215155965614493978525235413015479804962184720259409505863714683065782098907623991624802873224308753615969143167002266591228743639089567621789728517351979549237920917971965873439351015207766618247318569785241259443451619861228246078763306964924312740452365252014525402376774275298527097979776454015989711065984615107769226804102082186456566320430990278488801302694178796940032094628646412162481128779261535014433879496122275403269101506510997532916632361214112711605709807630669509677834593491140234874413289417371305510717259220188932941114540425394997707088277050557126847082152612200826337572786736951966306908751053392233307551386994142888939013662436445724254494852956381015786553738161236578043859884504622584580392283106226332799542923548324220069823587076610374329215888219998383666603005817712823770645360730482560111812949718641077606022130948712499128801868599824264999393369149901857266347631801258048914849245511836280925997985734617715330874234214203713146862298358241332097383325099229960051146598804499572250488367220544942011910259467977267804328423775532476763417768076235556710856777295665007155459605992198530030260160107479036029740056182821120685595325806978680241660654323977099592709571562858396112738060105401259932749085178359852261780602751844689972768806469597047955760586718151967101084172445357294025417410688463140090868254808104421735304368146098801860520135578018985019628721503437857205935052006434036623357110115373985569492225792173761097121981119944639746877510471824316150406503564414656465565391056163064101668869402018892165316492439149427263269365636301603030621178200650758635780650631796825003186939411563413539754432883306597086582152472045519690193037042988188638356066968174635489249936651681450467330215401684867793265712846274427894011900051724654879572392866103660747299526286112932248357919805197702576657768387843683271060991941462400536662886082025320396850392372218246451862110916386760763769201045485574582824483571323410565941816543620682196136495576531666690348517027330619404654646756746829972560710203125920469424764439349322780507265785167909171495520483618377748999018689173838763748940004804177099840418019220080346963238773127142536963272414178360644478860915105638378749300731188797113290770368688955845739477313364628784352811683478260796130946195373084646334502796373572111961988303845834230583272658776202752617578785087466186617369713641826590443509598453107225923093048717783036074930796312148409198373163414311974517067086284962115734856754921623482234214498215321228058538445079492265221799784909875285899830322852550954444424928572750944833927930968488043423980835042045727281495404404844896839861888131165247574133974161851848011565942297827042463070655517560458742561157857907691490494648391123694973634412523997473849854243989284738080390707456663393574704207123144432226166371708182212595079302182279435490264805950143885386912710807333737286039967334467623078046313897944199564916543418310070789568210549585713196216702668135987233720524726370415863702743066972382394722552972996513410297454982104849727379263714843688157423514354545305771622416851961333564074048216336912626463009201559465134359008378878984056206353825683176066688222927267734253801492980448731487558989455825811408599135664355223006552960434957963535543518611823628298544997926107070624071964606705271538476682423037069890760553837638553131893166719932332841927421365076345490884577033523323217982525825535830248012382252239170702499300190174934326742327754023140888011326340496008602465356987056952997902829548350858067309362187676151559531037005196962105575552388122106466328278129503870974859561806576073551929087022365509629266970047396126962126058296429796544084082949948963938343008260287310444865548491018280729700743309653668695939265631893578198557826314048957451872864750997335093654671456326838532617775586982090904418315267482336557704557446646882700244563004927973586726451900353975807026091300855266921433142352622126976779356572902803164150727710490979651746960221251712461351138081378984855074970679515762641229789951788851582463510617227437236619216363843090096181185127998558307107620543167482944961158195029195647238988699611109695879750462268562084681174025728256977793268249993337509382853715380307985159881799947853897117185216384131700132233162416688069367357430675432968862509913089100679106280687601046760230359714261312715679946046113491446687930908314320023674156124096023609653142362067687410616743483440443195925252895695745733598478035532406814492824251563972739958938072930669320285500966486455624205210350867509769035794383137090608748859928444164339968269519167295024604903892691491859031309533790766137372216077863183520764934359153401581999485603854369268603843267931592859597728293566503643484392126654876513581045521944944061417822278378922593912138778147187816645479962030977460677927930501864219856903119007324604830923269969305727461588532601386205928330787105238676734845668059732093363820469676608469370207793067616113381697281713078797011897361099376832841725195144392557627802476717284667224835844148624067679664818427903360865918158604288369360624676219821477335291248200153505179945746286107075361528234732664349558068987167669720144987595247646635920631987661120471236915754043145466488581107772923485653354769149271639824303750892561485579559087331085560966173051227877952719004145330023911682581033801459823141206409302882312914816053537364310650773397553487483360602083923454282541575259284573616584462731337323791220730023965392127612463605209791015452219676107872447189311984035503904012395866225919248866186479419297998375139614555413344930541591952642848299890470297632310014034008051496406738966913526268961925770280627158017868982275753204769751420511806156847204944599448994445832422260995282157655434224585880865346067119205180982362237683053084589670735101964982358440354444689809056143746324056942507086688758825700624531894648013210380994493879598341718748405551139752986654389893096829583737806477339742013582738483249723983990906780776993088910586242185511845164585598557807500699223548298652661140092507234926006291024731404050710445194123054375551467581600201720379588277645802102045018860392564859710006683940106901383861653218303267557971849614490654118453331050375704072045239010218529233884553510662464126336460833087532826846946758946972741010771908243934127964732718673655776151770258871297627741424860650934469477745281398455923595009057744612539002312869774717807029159420784334089638686429758443855308381309775321267595532483265763364795245228648292843547057870981048144914265250986993659948404268900080095940792238502410071977964639969415233917921609744771295268064999522436570189337618193586355194053090223209329354547039355458889731572799838694382671446217123849662494557901363768228018333954432043390631815133180698754812357911331511907463700805598836821913897364507687082819689439062072002149455273214930503829002438045382329394475122236466675231749819832709642802418606334331409117357820118846294564133005255768183573179030170803979958206813044932487063820745918470601309939678270230348327425599741242801796066963096628142321916385176692250383374097493217090960557044727340636395171181287103061725489505982424003191084081094100882788235321136818176300546503219048989025733474010193979972925613719573158224870617022793347112158806457147231978694296593828774165301832280273827358078630271078288774516043273638225147760751105383080275935009494475625610554969935789215740178291782054048756910971136993641228593520233697603178892702610751970831362622348550009168602603106805044772388764977265356398132816868700240087612854371589939157982823375897231882035225160968721426386093736915873546051591239176605860108359785803919178910443779541698209104489474769945750293121180716590905521612004023582628540028261962899701592895426081749867350406401988400757561824415120129087175427954966497455002329627121916305176938837356201533191845968964022075366975642818775946099833265926318465405314303577617339931493248873345607986944148558419332210735094900559038358165783198988993340094226587692832939222167199502515502522721675127337323982326233047892693532121041556187418497815443624881493152552707253597946548904193302428494432063511032005234559855661745965973853533190239804356774150870122444259374953670560632418711529899341783415150394764918859827866647622746323945829139910041364240094905508409796557266472843887260346849327841254969229570299521608009030057358670659745437409761595283538729894978766421391469485377533776710588901523291470741463957709707430778823116886803825651876876652660122876011093211884249939217966555503321225462105124215733789943734570665813600107679812385466150473107328143941638434180962922551101156920197968706399782542305755721673667456183384227094686177049756811726027188582112121391331772830366387716173912374049189750800732713563452576739243162270766228260517966970770502344900742533504399013876007653724519273068802892539355174127895145954482485500900234430289287639008047180499430610242348388723822492225715698082932580671371693910458896820619411628754083863930501256746236382015266003241745214687605917149664092915744069284134848933469451553861648358792905489937839853821533957320373183250413720995917708064992161074082592735210782808680682047540205402629237472625566172499639604677631014262015466357609174806346379631292120123567413562168339138799097204908260197274844831201794616862847439018229559944622587944997716274308546002922777738746289953259794517224851008140700372886747389520260929284837227438014001897178494504596279515102781884044496240604830519500989601506248672190842182818070977919287691563679937663970879151126935756918014741845273194132934902301968024008827399426181693034215427535933633382061052567838347645873627006959808578590664026833397280095650432055922513079714242878101002271955613698621560796052050121491361527329489626660104820704315883756205471126600718741134815655830988576256068089539350481679861332357536050730878417439987899878591120624368681051640348212119810328201508579181514564356879121941243635574813416732799296363044170954052498113048274600081868842540963760814299611036849509099259052658293541769526244554082022848750174141387306519298474257373268184364395914333478580456523125455426506335908163541680167546025409458230973592904744160009502063349773323106344305624793343526052504063496510444573926116476980355204009411823783530752018587029072968063447288326345867983907071136213753598917671367887776866061217599265490190280805078267762848905207627327777162419501269586792953349364102231589217887567167952813073119851526083294969860547971741497978455382125029580573039031729610263235989713672235713718210691177908533959333902857656116464128535475754489085456340778303244109194311213146178059430510241636259964834425419031915759379261608250590620894976325626301981095511778458825953994905749845320185837001424727837628104216155016565235162029714316017594131786331161820634837255689088454619896240241988950290649304440324640131799168833528209026488709594011243145291579012131814663714003358466273597422659280647451522765903633771177466806001714993591614557417968872043012567550466452351693586341562794754818319996597330458426206868775515221770418019794596794930959324853789422780743480597528667711412164404673653255953825511967653126726447838471994606624830669110433575528197702504625333084886061931406522156539072783332914851132744020898281776151746312381935054124664583838633118957601785899350482003521205961824302230527590623524846365121590431727938170086590355016645228955738007171678662461809826698203740030940318326880792159848092063525438967367995380736333591860970850263737482571888348654294675180505199761332317029905902433728457316277967017826663062824327189099330675017069830091835822636302297310619171074885451244756395497487233081708575507962996953234037709325970414946223396881660676334329928430217884377708860842635690187665163966426053218532938650371714516418385845954055883530883826768693654841440115023278517933487141204498729278626419496811713991102456003683284523286995560244109653190291018127779331052674700709923451037648267315167667552751635193977185299869277611324459777491969132438918745391957055980518677307871408035735313541316896539206161591930639794081333014511241829190766835136142763011942312199597924350494524341985082474420502013816855994849800174380587693672569486656766286942827113057510162080925436965221027247773422904828283794422571353729162151235505013049313013683691812275368270825097595753223690202860036158654438105892192988020529929746760394181650225153232665756111571566085225363694055196019411098909179736104155697672091795844638314966122252276251835020646264833958652236890955734860343089955776670623971014466544314177220972381256844721567058207003209618010745879805836548541254561856209371068627337680238941695644976789099052642004494377051710811266913185109860695573057050590917626997547074610712929773769911928818527439550203988017447557393060116364355204703061149789989419419104095329118718418779133010303776922835057741111627834552116456265507278955756214998046733637792009954779777744188637267575750446585454369956947918269832825190329866871109904484922117455928458113851212743657406939821468619817941839028154844289557088742832128658970310024182837380883067266498864758904500267546278039051714584559890256017387797195625857941225529860480438526902845307866212892132307796533853103372103921061956991356786681040621315770757993734455804791150524456896706138511524273018290208641305367387793258824171154182168787685892459099616278753431957728049372619204697345201224619772460719094173453659462835427532703628488975259738296355383008692975931426795267552855256706880626033971208669192665746313895886674922576572867728483972335263071148672397466286640510167162733448649611222886228943166587621473850799485744415096553435806274770255242983945957186269840971792820040616468140601491640121308617149216053450368926985658215049947783932562155724774145976713114272944140645789865021138991645073721078039238928926664147904810279676984911000351791428368115610644116057808232666674789101884548553846792505030720176208204699594870499539997532687445760764060198433281936184450366726193491063580314221276978463120664405418103569832090706329706773012999548624045466395093468169634142968370244829884937410815022857314241161680494555497776827068629864099410834099853173575393151004942206705777578011051744678300679815721840165348296139246601924049544931721899275736000884520613262821803511536633182616952954108401309996205844210231041126357260135488517237554771802863836198604390840500836601449212827020364648018361660613679179458047990485703842086923547834081474636802460163801490111578794920480879536668641451149536745185390350534226510055479948596931393959910209783357332340592115782559629576273741908003425302335379756340875759552065313893262287875472436553326080930353953896954457165610913474422522335261693034120003850390562722039116809896776872950861019212324608102976251265649916016785301722508641554903054454906066638334126476131958178102282403521317377145191687816672543332687747581308252751546615056676725206581121946056204759378976327476031700652360827429635715785864898472053248367160281165001024949876668980648612213403136593706645557049209079954737917494693135796265325148540513489265111990076538246354814294155638386140754611751266458642021776130527147066085407440080481727156524062024387823708624797738894340110415833392227695540689974457985654346402084164828891824267290233448576466592169004061394616149801624442357080907838554748258106792919746865973275088187872894777884545757473131062201152646321033872693876347952455779579456243816132834132854645588837131191527540065730354434897781844029381270938176050457282066885920361251710222674501982661177647124600071934782430448910163976877586704215261811281939358926056841839120380478176631744661376465666563524283113255415799739341828193715330994438405513075786942955203777728771607530954222610533662539621181738468768028967984614718300233384674396402615613950343035205462193419834409976970371934648287421380984338354951304875686227784721124785424698707449384275054106245455087748211148179030500003650721876547779783625857793339906539341375085473096550876067833691507223596696435187383822350678957654236660589251654898151664173536724550335723288263389879608549815463765365293840558552624802020064200934420204989251088648002986968647204025891377447938598768018472839596039618363402417187573359956114541154128148660709585811859022922582265543121949933956974233807578473214947154608926909385908542462037450075419738831817703280779980686764298840031880145698414047084600322038212477766846643401383914395869193848781383860121283913547317430300654410981063835203270802159666824893749967654661310938008909164749855869323009877796211643130294716677535243680344813460624180985054687362919052657251561992241944135829944494660728418164403617872250721664456691100118155102664675948304272330315194531834470296980851562000605250250686632123827764260985594024155046616779336234907855177601136872632365250729667774644763869687612706828528726001524902273437912307953237665853633887412156608142985921780376869537803645225026451972545301005771689117002473714683424758490545076991153484205672597690600607872759561739762653394978822885056701459799764409593748661859862056701772999076142683758874296080657130518953860863749814486081043101568759959861099470464598075385091144665226977718786701420294237064076864333553329351971984332667674751486291235898962313378692375488316940199823348121161214929484329640181158242866686699489534312805196620693593717337754493140526021719477930584644733668657138825723290652479311704207011989291308581329507368017460265392623424524997522543759494931637206337912959549059354848103419022685892281927334787441605559099491672431057001878004869196828267230448894243815056535283384179561514952371372761706007833985045268070794839871342142384969845337388443456860956934693340306732092690886277891508794500064194834763384048575826499047542269332003881500596829982096047279108476012848016340274116394936078326171575934156470317605570031062264546488945580268319549638952126081018527930904309109518077781783739928410400149068777549759977207258283951026032719436752651792440326004740343993368032713244090509905011968293437149946867015601282292440683086812272600387854328231461814171783035818905938796004689894987502462476851922757592492329840472715972276035957570568912889032476707898213147629694901972695760084387922040639392440606226442358263341501342998236176677857629753748344608751182035508250744082253975583878272503317752597861394944472876011977138907615362366836912493993920994924863617767107674290576257000307358900962970830182357242037413586978159910762540573326707076166503363821104595676494294101876792404675916949211099060820524940977487245621651524412982856133362469974966948532106046901100467851138612080809445750767082334873886514761976180742088073194954831349959615614679647371205862629804518301573119242174163481908574727041254981830050123212044230049133647364306259615403701232306916937276928538535998420887123447601290246415381820636714970734410164792195043354946474653838869158593398242893567487619220963668175263856321240534620337056421810473637369592619877953642853330975430573001055986218184121966503247114186191495105052413646851676900457430510113437444385231003157627392322417214431183823284787036026037243043060191293700612431988047539474128386539236782080729254082688711320882200283432207708678389260003341304783967021158235498565818344862003097500147930415967845818233984287448212117413723506126399069211987672301403269596726757710114815345791413495919680781558438402507675894362349413371280272714026022934072957390908346716094848064424536710293233695091167169991716648162299308703049227949699613483165020977886641824066575449568084009564898271643072402558810423461691640913024056649559208289637247050305830939056975594658966591913545412045929451817224477592922132002003721985858505960000542366860369090355628494238458915992022895073478442189863640901152871898731634425996174173923215622179144872980317698940676376080053886270568115348071777547580935425541349772896614171953598206272370477853549355330022367098350428332538498732609991503913421418589574525259906709648717418465850295620443058898858293318341801802071778083772180201171361887158992975672632831988482863101483863199551251558001327117719636102833197401302069989546855553292210429876666966341623153330213633665285485212898350999269892511390107822598894851956956646354652801035481613113506040495520673732226531495885508752145979737528776020600783543707716341254321504070879363129956660378395222796278090640082231043085110642584086138482236528828476495218334965350564140515400725708665624246449262503264919058559003276107612257348677584317765185993644235593050514984524516743617486622446581585305088982598802942995591287555641388770830138768393878143217548552381537487783155961098565636371668785565317169850200156628095311007938882233141722006245234759889014549096116367564450415716215692656991000065488663861349616958857377666890986250624051092015424848142437952361787559619922951210876789201011486026085654669910470577227272678274944515340626707086345605202689058172786637141451296486753392029876108081029723888110920870919161483710720115454893339147558040048143256218303158174273503891881517373229725893479936505361299289931338477767292124573330979298224742284362638499362898030717869839789445547685636103853855606246510466250082907059379162554183955410002228695992401734727917612728355748585171269234961191417855828731965834725552341940453241494532859083757109738798318951851416247443113958697857261807382852951459629842879661083165805939601194379780445549097189572736769360173104517373845997022696876672250795537229774228007498027896529331997532611536980486649241351846744705821268292554943568693689144362030234504101423069592541071574699303973066251610317784031395388838461385856089858949014678181673233437968973932136679842782097650803981728439021358421483160696488432084959956338052207517452724148413479405922551708025699582022938535060799482497251934429067274283974341813011657516226596435367318264430695229302630857424943465349405344629144598931616237313377402421213576163311650959119749193995425862198621319617062180801975692198824395506499769643151599763250859946798204358566812097118236278339313578851038402529549033162563383351206369497805863098680011474648593610391378988989156472648191331790780273971756724125871644585336765152011401900194036310352762016538894951420030880155673913422390631301922991983574370668988136910069675554446861760549415336634030508195959590164123582776901802900014196538008200733462958346076081084370825801122885812900050583685264785641832487801505245268041181102965332989506237115953027703036896700188653267693472427310236273890909014802369631213666708851422472047555986337556312256528883095833157660679780882989887223532538516654049536524618050859257194465438753561885056486237214186025444747853685924461491003303662695864680996666169143192031901018390671347765409192964010203809476985331431352977199009871554178261683394771191027625474315947789236203153765203442509915459723930957996451207005454102205133381474983253902840027002277432824517881331921923381763738268834446683349385522739492186407095259580766747184110473919729019178237986528504013083617333091736442760461418691454155106643652852737290810518707873227405749518060396054972118670118651660764789336434988959593553424221672448819640089415967846623276979811255579395864832819834581102363762947457070826164223243813157447471352720765145772553978467990996583019952001613690446482829843148169685316284901546067809668985741829254748595945769912508839711518528462695825009546980724900260664946325282041688941857261952145474295199525068240934337882118478866086602259811693243122501041727448803169941346207945634606472376577442177335736026234105329791384988826566574126236273818181435936772665415802826259240943846594004315642939168224517343302727687300989645186567195210795603174884110177256459153865046427906994430571027419622977893392107643781616329896528068715874782681938633152101683669830932697757281868625265762957710381206630158844847807431935389727101692312136456059923249061324417920316802558467354261086474271510864679401621243839606005601706071425934622650414060098807465918900247550198705800482818063070099948018292381266867768482965523684430502317189890790867724231460246335997112779297930221628528096728992048913802420748753481222143711084577835717487991854008687245588184009787358257220558832321666756991719616764386024034096087920168517585615119595407914519046511487946291172451222227302325816600118314258468853094612818124018274962428376178456337209572764963566847082477513217640665149187106953753190239021108048331810893892425213951670918907387303751805208670399991605438762333817126992233061757963020227836979556803996497325522219694032081946663955851233374901904659907566667254494923718329548554543460054476720249922954569997547167733662963222739375293349295009650851123090026415455602860651867683702032829478799086048763489325186161314090441043368778618132065151833840133334355183069251402291197387600321671316059274294228489990466779343010598176527647507562677489160947309351978707800004309339093760533267122089082200403711812267723564398388181616777518872483504039936849576180575008191608888937009169151963541215435142347225807436928156099428373327906789658421250262113794165082299600593046129246728039362985945890715164895280307267170357543164497915723181708220574948285559062525191688792612609151542238384920229091160256362879839655877054441406575105040464629853276334671803173044070476933319390802077789424817399976689474170671699051979648658144183052197321401430811209013077769465237851962072254812206908346389043367317002356155471590291318459959907409412260138835237300631801200148279804765816188169665772637375501461674696635393123616968190081227494418401324220723117224608918029490571352111978218616923037927304185458407977769818492257342925118811341902503179133139598179920871011243838771202990546691074069394799541863640350676024715953257536935713970527583702734133594556810540881849192591354323310682866156461357451425631138871693397094937590291936634148075608886680561361697689883815977594792837464692846672017703638575844556124421859466211264892574735777713321068117401897882285738394923202046780078063442374030345278536673682429712595645158874662955271720436334178281910969710414610986952786705951066313959468117791846244066209336380049537078647109805170263852503332725861956413483089128384842970311654918178735688373969524533578309675344077148831196594306276664383939818036697882351746963439293422723874423772071333818993341620969387961682580378804019832479636252539517657274692358132856024442316156642465546997418652261444137188475999479609017137286701579436225486322664329609730521921806294008287291028488802008291938906264696016763210389281407500466897008699366468231839945287491943024359713229106363769230999112859451343375898758010859459057900562903970275655437091363114743190409277621553046555717437889667286379142561524380732895029722407093514381263733642957253153488834620871884776372456791303673637662056007593989383377967802702165519650277723627530396281535769889818827941730438259294845043770263669740022208301663614762597342350899190624295162958139258794317996133548836476409752789068163846445602993187770848206952322148575352246412163768592410475504920145457697288418528263076452680435418050932635428453172118914507085603152903218295818671986890867539878144115752213583583028961137745756260655381239157130050352590652175488223509650701838768618530871491842086904025058145106371573384972927384731066810753303500290289405200537379719797107259230131617168727733775302262216639778649609288229117688863966668916145210795965897288840146751303609396323155935011301336565187580365393153801593548248260182277542105855176188780606645399243554369194839954396751871412233243105455821023151060344964458392935928311605194798735253190037092255056274441290776719874981216869651127881392240509927539129260009883861836934060622147479545125849673279318522998506443628371424492805917254836525001067795088040955628016893500964742275010756019714593041471876414389632318631454600473110033400622810291280445762579009300559204360472855684068568645340221668705268916770698934709629459632729960103147812105433908050460198947868707473960767701435714875756390462406600864865065802851811068649662159091560818100141318567889481289390060337533445205558407404032755394284056860681254494931778364361409180220401541613985554715163376854945247200143534007608623965797531313194891417238521020629106151008789052479238950553740049358174543736022460096751285091511521011996268391446890768338033555874749446125979909165609370297318119787200480425570235533733226961591946748824232872575828159628626006353562873921070363450944598459444723355505378945001719757727792272509397479753912977112569475353507019362478871399333129097852974901875084263330892144632549402895961062689510156698358812606430552088912265145410900245114617828996603341901636951913006228168788218108036243200677571427092545145446124809505590276072973313352125216728858444010755345988524795121652741039152238103792852346823659732087124859902806636137975756573935971393011088352257447756182999027990402158997040143741795099823626376343136913514646818454449190011651783893501284596033109765771337900048737758546343924371422324935429693431003189941205485264500901259474829347128325472066433362539210739513131568375244495573407057843284847514468152332108029944275864837203536620340540853556171079502458777439396664318311707065425937444848885800299993672031909077895175846985874161776851987619921568767145004670547978135951132287750103834857934285396328948344297294998167502063910962723705548295300408628834294326613867750665400760650391155591470728045139467953707454247666741900626971872490262406561443586960971022620999694135909988367466864925010427403371047851180885888924106386590070883928716896960430291157614035021243333563559677745805891604039178397020666853548034261748727781211981045508892069462212421557689666366839201947434261036666965509704809864370225523840215752758430057562895336777900060424109118229423611320499454209127398192682141725767589677506081898075713146313553863825667903291891969821047594584430594111505174303725579259532843646210429019294672129597271950598678859638761804054155025895895191185082870385971254224238997905519850736160950827458320777385901192978654168820283496842664142898027161665752029475229014434382880159948146810443797744650434624070499461062547170798071408879628974287524941860638690407064798316475306672599230225270334448753449148691762727771385755444664727762030264694097752265638459060814187474889666389922760877375503288555059584805028586150576171872263895938407332777591528598862446785507057692016655306082380295456655936768664850473899715586339486982717883696677381745698790580127837445104181391732902870359763917045144515812982608361399872671325604079090086496985046675807321685187702271591703426261298757437460323487425703362894851229812096496249708877271564587188238914349495159490508228876210594795836168559091181070676230216204936269165934600029184228698133047956864377579896503276664224076277073869387839872220657725177161380484639482433158899774507114231438099489462721684954625668572743637729110169704424761165138806781749819636041431029227481788428641611212456143505310212559648505615488027773178599671535747841600855818755734636355955460808161301262278799102007213546308352878058096911182157406682812958481678925805894712895683069884652103294147076105591427982145831575855939032117719739621022127266801913713404846611641526917733621099965705731640608065331837182992533042645102197388984631366454684079998195754242800765165370989462534245883825264400116905947918269803123133777146093064813591558766866449907794473521646822203595176985717456244523561252871723542776203750836493449675551961490056121998580442531855037003165556717862273876342497896889599512684166859305640954924275655285802570334363137107886535858751741572281177417101421081379359313879521492540864692740837480856425210546967178141614437257267849478345340009661503365838762776777249548728698322171715740389885074498867509934254578844898123236463418175885464102011525202580301225223092240128532976181237963056203337769141955966385608573668309922950674508475835913520357767223234103811038089387088667225333667785973300812818046017186457448831515450387694616475602640452317565290869115247574194123256925874593917832791980243762860192340155903535729155876414942409230666413812131368085593856381939161815107274274312423810897508711596767015049064448946667679697674264611248471243734691084073612683033202000898310427121483339883842884528090170062357920596790842620191354317365776286779882739346013158222142503896961565819806652697349049986456572583929552102742184697461412389328232704223941477976348941581525998557301019282769412896671918411914460175340069904263764056174832914345940492478148821188251261484188616123358594983413342689283348671312098002590693885956858516935332538319053960217701813793461233176894763692292929705800383542995297672270914412744850052490687644244566328325401706203163991399238884311154602535609087489359841313319903315035981101542827462112545954468088298650038943951269583934758250667904744324438974794421124377235913974871276054350745701707392432878889365231449013650370707119901021669860531176195705669402497204943326711887992932024099078006478326184068773069876259686452209349136172631933017939224212656861990951086122742661891636337730540244445245658855025792534050983105758312774102220488397503975830493687026255997364138253581902455868491951339839487036652377078919110601309031283191769202387850002000013326152813599821628283465526505857349863707473090415771687075297466425045775934265666932026436082170455040061941688134760481602267863107245894823927461175593502990666057773026131485597876613702211743878821296577543625457156339836498064643533293790618636339823014599948019655475275115272671795685805393802134012043820362250530782445486268042463905100768344500325037019841228533351045224867039410594096344952352927748246783513112552384292130212245875561104187747252494019121934372271089256549800268386572437424742332024513325561238847805493358326615205898046789417271630343051959330104823803670134000822981539580204809108733494933221231296232940493430060546814897730923308755383373482243800882279368062329175426476356367202327000415809053908350515260070748315259898051892711222628351485850021394700396400401130597815955811000243436003281266155083818402829619714611593850601551295023175547926969471405901559435026207211194547767515173267788197517107804672535593957056961191879293295635025766403792373756532737891136645539900334352059516467343966174341591930217826130965707894859448379334981393688606755210554964597337369347495388713812759929413838849277905760766053729647403336673948067980428907020654358125681173174042009740126269581746683993053242907982892036364722347790247821783783290974192094527859566728996642509979346210188721681153312755302780918447574756484210762317052972935884306410630008454410537187673640759715287992777512231701447807031772948098030583607089671528414901133892900433550585834208636423752115054472387772020171286561922535373612926342707327259095961444793506716831346490835219852326307872769093762905483300095292988932533953483141321359033460952865393720075273095451276816194594922233035115780900159668459953632233912228311561572977297054121529311990608027442072039154830523264850064140517456651777254839732322836236999740191450041704696436646370452426284227917510613818038650573480691841958839864162007630136233215555243369819193601213684008480703957869489870214488765719372216986739154875625092177913118530063794956120238519959932343240951571526135105745877104038816546199694094510157779416032775006926847849988726140762966107350590410180393132783292889835905170064386766418571523268605983042323731918434274376100796206847220735722315292142015661562561522711118863736500716868587867850197914628330859962719997527267897175896667881364856107985166490473852733340584951700133688412874104380653959659799098978033510735494487581310338899089875784419575415411669072752379071788613183588349717829984435331354823283479901529984044933020720662872348114100842144947344671887475880434726083257894298331790812797474861706943554220339690458813853377873869003858777534501872975589161915688481172918032007810126041708658730634867878941364527706657217504222108412127784997042951110626740231449684804482731116332416348384076330403756073763934058764728856891838145796231493933175360961299259936198590548029380615814874181366133908222583013214786315836339717619777243909649916036273840265472999692871239668352649067034763185428485170466795680452202012418886920219312784483093923341712847654558856858393554826271182038892457015674048219461589377011061417173037842283519852871792241654037645045503422394428324755466042008226261312640301371051569550487704913583650287548524563364464768893419634068675315068861408098359764658106669323013009860475688853877897771399885454814989569989279290767899834162775229217455365375370398279590526776816017923816999903142298145346128006041953011055098339719327878138953934384389020948307807079094527644773637368167800547572362806196437146590551370485436413440355728832148320347180651241495215536955242308378485416273740799125921802848898629293175739616275539236239549116139154918678776700593793182136910648060971095030317403818767129469619972249078758390067481839040276019344427245993243615050121033010368258699729796976715683723168313776412174318613946390721279440735748934515073133498110252518199177326904531289085670928516193295811504994278478461358462471711421111049023206650821637641047789068034044079182411129348248041541958447316707490134392209732523489074687960117507585501644297525886197038865433221425261277787117362959055356490887331542579739749433947799832601896934960246728286059843039089752214182253839998972871225768966037734824448000845392848873789097943950159729535651535980007278272447052110213156452312044932264450590682158076630132287902625236373500351453203025656961820423226905816384832236423727192431467494265143326718811846815673475952389426592424149994412518746619296915564119636038791910222393562083451910016643524840517600118507106783284664304019626580891358997956121847292791579884649053040254141777419505714272477637915309832057344379131624740443279251601109901978575042916801316463012920599095112952243398124377704725586514705545614655657389907955732081702546563727613304794968724841576523632583481050561809765219819425590969990395029358304803606032587271551845553871903290109353625013464425223268467445790978438495290199007825330473571527893138142015191193481324822239914877132050382310078722976299754898958895944754590542112407162845018476168002204498668901867635132532891937095080228414825086395225199945767713286657079700982382801079731325657215584406976827321306987851521350148885999719261855764063541778804901473717288080114327123539758037613541345019211613273868120454334621086927025793159799520580845554363402000468574395248858184609182931670625165379297037595523689618128274290218394391242053928309367343430669423909516640337528734024099535889569133543869987853683263740841525249587015050392587280798906799913990639143515443439440009130542630083890455123413393050159935276780960009355584193000683360560481436361371733008121719383131906804124556950252875520808465389354989711715132455599372004804486863815778483511294605309563925876443737261123026253760695154297090811927450840808336341187491282544291404297949552197766994446774143417079818656035430228138546287834508879910713718721288767393345581772253214217243616329675699388790797946268220956976483618361959025422518425166059476559232357866531111842576695765347820674971649852446207720397331212005971590277143933246010439667357164860683121418115800016255099502091242846453596941197759919932483027987957212178708947801728397936210583475023407100390526239619517413908863006647382168052534202802949966566819520984029696586652871003450783794339981641378135577881316945974327676588062564071453968127063322428596077560300480244154801281741756963653275279291672780930575987679673703486844543430074434930726470098803100807287471954594833363563013695875690958167674823230004477893244225197951362290814189151526409765783337231552369578601222888582652172878407458515353988775535449367387079228199861688957868702316463761607047534519966959783774989669817405381264057216292734023262911503553662800432692346531587601357720517763636772792689446022185360894953325731149586447114782917125392167094737510009564145387219003941853369976431578764880792400181611899961969558332608576345359145325054363036941216494325403189649425670099449421695303125625723632104841457456267374662516242239648422915946695055984495324457815498989612707067373730071165115267274864532787035581527325211174055304556439062833731207663971892512144925783622901747763472940058966902369384260059301508315353060990923886953857325379687010085808535182187432445247993663693242852392978466922142607989492384290957154724486172047582615332492534839276532179840275984104115673977977296412895578998005567782020876192277909797270625330221166967184385635757721821788325238765378472253653850375756227330086433198712040791366838445763197028886184466436074529041479836410822431921168531087249705552663639679735334221787244141170741747076895479307125070909401063739578181522127694120662128306949055344544059898032290280557088443628724946605718280871104960142383386294621410703583724860702087661448490175044660698212893852835080024477888261924292837250327505128574006647412269044787877727673927960675526694109280180779752168569982597363378331743587665912597570841862032138441358741408413204415897724215363161828375461136199751434076254520187549841923066245106078129911726685979533082578159142377126144069446440639667341877255483894626084309816183892176772472449581747198643433450464325221956847364338403866534127359314611908370050754165404131668693199637409281760112341959789241694293112631389278521735005362907730621997186048134179104203796962078901981127013558467295760434857302303038347188113045404219505106581035293566790784284004392411136500544294917805102000043585534545277348456864213049535035675397790343069891865710727178494406860859576857820761510246496845437684378091342308700744442846576871030640149481829963970690702415192162061842242306112970778511756100544862805337924250422889946062123138481317492640824076462781315412657499148524590142581955173417131739222307737405601980498191187704066967444792869934765163449619454525294323146699242900818034778603024610341832467090229042437683772426575164825500148912599191694054298083133431766339725761500542917086186513201483620204496655975905433937627390699230453063274036033327486057495284915711324600038065038058946306060450743505820325956853882424865561950805394309661900385279192622573064151633642420785374074911660980331119375194947319367866647842220675901798812918663004500659599139440551989077469213690385506773356145176008031656126579788373711752908762971647403478473406564927675989024705569845083153550574931760137345403222698544141749458345788559228445700905126530757142861358118441913620138406658553382037517790504181203670789744814147187634671822330296598620473715230039801324860493191507944839467145357499952213285107868232402625347938631847234791160806415798896245690216029358536703851983965327555096097076942570914815601953193659602219424494333987484313447137296793928685962397816123731907501897143313861533319644230818154827913873852827611028715775984044142141860724459353801203044423132463341336526200522816915331265830900718715069616839443062880569668525112771950683202059866777857713698777153935863365579429056284564650774567646540320254059808303091300067401520796891584639010531853160389317433338787158258755163472310534465300655306234170140336718608761800427638440570974508110857867272773221911043653141784366455111148706162472950198700154770864451452313327786351116566559683213106582114121884376482722168398271207088368883271757757405879722057003184289187114244472597789999763158564258298815242814678347766065188174479859311358003139143459114492891634125332647709281911374818790944009106622686352768336881999216001235230574240007293830940686558416828260158630513454385657567509640154082891527424139253507858186149415508081073241109683091562290376058607406174394144407423092013578474781944921867679451704734076419830497727297174040701849470269483487896954598247922569608890648822625445693951644202461119210203144842314928285224910328358247901536424726423052294306637978838006758680077340823630084823180162293870200815334440839912481899658076801873880096671832915995582501840370471493398379575316565784426544104424935350861192729611248891350742396454380686640008754699166118595103800969913939723216506986022333438152604326337762744440667179073101115061829400127212084057858449183468718589678438193757740632865558419218772045117746715879012816755681966125817447180904854068193304528927326300098914863407942137946230198209979887146284786946903930498959646119349502327353365597862833899781745093628716911189447706183499772073038767716341746771962414484472875771389003941236636879225767372132735445144927087171268309339882763529569402496326843786210053555254409101791678117130340931701908949305747161456554191491630788494881864836767774230696017382685225714582021793830708933308303069128160608220925194786223841259083467786212055068948394736186437946250577008372046428642053543632462033828842775625291415972578746779740346911923597512394749650628922395447126667929788896758192778870394280198939211997261976206279115763818587607215805523694487305040416593160297949329444853982416921755851601598512545180868021672081217489282030812371194735583170733485357754081531570110867920300842896618456705325437559081970916358747660526105844191237256096957632147847943986508336533500789686182314801811594556521954583461845436998271084893872114557640161470853172217662092837302052063735882422958246557162300549048478642804362809842624316414797067668030504016634890644122336474039671029729265296670947962770280807162650176019880894848414387870020479815781258420679488906300413080818097191950373888342525949915074649509791045128620599818392720626819164848824161269429797077723664388878208206689797615808104656689645899417750398028352803285357296651772537290031802508735524669102302333713721823124199023864131044992416691689225430362060061540321168091441098974521246179770552933078914296671101764847119057304520207925700043181821170868591476732557143907316333515466161316256510961553735478516106958214203563647595300843991511097676264662862096422563238302849555865310677841156068623986802035809315350611788159466054612058885438916799005646971033201187618914762364054450182650125246021776170083177758448036451948009668067052511843799012111683900269117057540768800402638018552658018374495213963313400883273791060792873133017484837419289575074733641355243198001551494623052615786337053582533406142676355203587582066929954523400920460904610672345275548800892784015682329818296508154323751407958953303652750855370882843615042483262288119856238792487535172186747948471629827530514945554077073739826119752230533302230015803595716341381675077599521780190675870839751344614166421683544229998901406166916631983938920796537962462407817274997115696534991857311107001458310980294215952111571096977993745441373895889500865497372399599898516714282005111967175677462883957250271629076649703924478846236681213507370811439310865970062679170657242918160282018336733456050134132694850712444407624916364327464435134928998267842972850053597617721073215069495866432411846779865509916999222309887872503576013723966899049215856770227935299406323275417474690651890151747425894380755718118975832559326737022265913511687067476742828142964738203478563781639953094844755843686109437903472915919646353823162869020340471498855294258884007051694403929711565702439523444635402945295783429500901728636382928102002508076482264122458229009287914679736688890642713456785934198390322870935579264309588286635558207759157379813931669285849705116757264410847727547738587777551140902631592780337473368369706094070692526830010211717420737754962014438585297832043090265252388582622030293326735832637212654539003487479770886585707752390625360837527594464118870905566410555919686353015837695072104232352729699874384006806579835637959389526117416620956321208159509861203997451244905865914646176556816805660948805786604085561960689355186361947337627226569158974052871411032255613818258043914490857847323823900148010967750975034939818188119491972245172590231232851143970492345703864375209358825551456903457835529168922210799333973218904383489893461909844943545431250994822519061200310059758511832642611925578148734056282779655265666549349090260167647259392361924705453409119242130459516635139477060865611161882523109419816901372652069355986816608456219255911875375968024320187725863916454163165512344956996535193901860437290940634235368770446032425602328736849967547810875229828192388788244292438412892602324652091399883997153478806406903413962267221745525067697299420616068905614695620407638265208022201542971268096387593708392666671711089350878623368096461649271481393939191245464065174763925905698392353755476437868828019732481411581095984380755846388935462478099748556807728188071463331584320884759154916498338884597391569256647184399717904929286818656390394779834547868293235580642967530468125763110617930063210102677753741005896558469389138131415119072478125719220163815867538449190312845464351882737480052488297817321348855836063274379222459880112042620111599862897044975397188942836756037846530186781396035356088816445429216655451829025262428421640180096210453157551657627153251484051995164799811497485646176224569445469753829384747234122870912701930151744583264348684834561152635548723870187320414052415877329617480597915899931993929816186465481256364159699830866802052240275311172108036165513289681244300726246560639106339777731384077603496771049389252414594672366523701923489785563086750398234975383654271304400170803847972613080458604049532281023740463175226939094359375222014217673275855455809432078983192746481573349697459169993425638332122148731997150073737417609443852850928784002921222704217583735261078666221614663692148348068092718375608170277965041893274050982631313564853857571138885799449223876988220471445298861718989935598554642184067896760342746024440283211520021814948222725894274246350685130745701754299405834028978026767447125536811742041558614336115844911708943902118116503371186860485153035256360413591598820124464273198343182471932731025155342262207770822569472391059691994761648209326926181005357638392977242405857302624958045422253525342585332616478646482335457856635418365043300250622371349403333758712594600170048643380970693869921016812716991994332476592203063936011038574740847001036845176525875613818417892731292047120829685863333877101533118911207400225513971201690883937721661882514715444791585479494268166261920137854986246547742530557289632642185927092603216750494670165060534685336067192864110456194205853142975495921301246143175316623246912794545947159857019808689935358649396905815750538183937864664332939791487609952061589763936297713060224057553531926514977319167614890015044458363351021523552003942103943581055017100561105676621074656956146850801049891212427160272023156082479947962057928914216120696894349709058428541752384766300528984739996567652405627735079356092339191857385765906721732884391267978282788642956712793558555526025582320063467338538214094933912121952104695166895070317679409810168431082984492198600232587598427600675995282252232494885095415464923048164665119508921038312283625691710203742256770802204720987147357150315697269929864860477358843175417237403149472885517383087832227673361313883868715293946601485011370276717460302574453878447686766928052284477511517559609101602785752887185943741153323939444319012458557477527917694419868422527127966614580110755775553308745278284091489795730296727579990900798503348827391349130150462292937877640467614182833689451966425596989854232578319249466029627137191681202556852732549289956285384598942549426993852740849459315439348678656025694549216632725330131154769677384688287269189974352083323993533292268658441566209706248842093335244246328850694956230734771113375411777501803337442862534464389449661110712736736506998195337977819842419078799699659482578720447135769164605164377278785084809841057509018680174921020105400988653398512070814599315584048058821893731259253819511919575219428674523077470825800569583136519432328981591072916608879818953736827289705658780736308125579951893804223377955776375496046787578337595468977302476635815262163288927309216124875342723283791732984438422876866694267887621513159476315999152688119007173016974677822869373150594509540587827680796760155751406746411338836665374660651878550062544274975717403941096256766087247361675119226475464767616322734153837847004922255793658350574957301716617872193528728935581286089376692270261639493910195828649803748842734538246829003525093857112396370994163263998926731012161020266711467702825005370033879982115846645153623894050289778441008812217046974046667978666398620727751785866622379166718481387316804677215470069330984753212343102834602543801684760075625605238969385272091522796270834522719692021645689244733297110658974339292072378261371579183378680922431473410367126174374125344315932462018817566386794714375331790840564896016652331685785908268032994396215494600865036599970444097715133819045473441197922250908597750497437739836281900874612330904045058203235992732950419716294407367841507087413681345678137673881163972413164458707370134670958558725991641512816089777601621734080102086304223487003384369428469964560357874667745536887359377408424985709859356275815054023839520306820451131594277897774819465744026505194426865897759564989505834900560880697359545023065612011069444698755779811064917022110971835141770529331577854191608245272546684008309476956865822091609800415969399078705405319045516478310590188801235691358693344372172729568487094568956246627403291414126553844440972851674432660889543546526823465905426017150046397836397804589969146455926245760242553903478877672550111459577661646072713672014263749297042165354648461135577790128367318165315038245298402896245642653918349634930696373558140299130158619117659842256866806177220375587740202684343115983021713885056018054175756286584811912220812241189572490535484613175744485486897159029287341682310451354277586833465782730172743747021197540162974353718902951637723708925163777476741909945667584147615036698876303502809325955928368006363775364513324413172392218831615028053155490573461450970869344120804740537001484561099184355557866411781402984996567110388481158465419837392057223481352402559642625140919428142882824739278555966793027267419815382635292202465555962280400941397552881926229968270352519479034569292487800075779576291528763168907184067539873677656899485260410043938975642701846317012197736654344214702446096879287573340319535005099603459313035434429539263501334802702557753816559202370758545966960477113216267225803339915896199996138169754872685872969237639640691680448554489196977729306192299473175188891180060915713902770815549644393126681873075892953347112016264855156176539857752156429497390472382097341680862467290063998443171380706215877223374335937862811637546172983617963815780494141679746078782208480981816309987938124160920971397389627970013109259487014613919816037271126647879432904705952605734207072194432124570828294372247398221350288640380810855467837020725137602372339619715592640914361236687366321344040208866559821152657014872857505297098446885861248797991891280011084146302991546049787053603644861126147837922494605583775053290414717776884645427180975427812183016009314276385813113745775249009528187195676842882050132388594257234811242052291779092673226828046391718414626132311955032820275747509125607362668897186721096177871077584126247614466208659188132827435910066806832797492995787730798554319588178737094369495953304715472394774188176034733484071787731265012388379589525500380563634291011835691977894879064257426597865743323093857273125097260129796410086932207717350876839608088015504763720023266090547708497820256620656882768210708663575032999725863707467696258209038730470907787450747425948291979728792812797764559265439889792690453463771572596865283027370060318094664741976492928906104042787879940157695110382493310969380613219570733999054689905533559454341714198085651662607183488251570826065791569099814360056904592549645863503600289167105842389142834042115650091923761883066440779453313681824198126121536788898209238878895219195490951612840374603710447741369530274848171399560755679972427846900915784873541746048893937881389287355404281474320849472217595805901477173999396894442775050787259549485401808136118967676347952215592185225575704805097759496640427547989436018292068485945857311234455150667238189617406135239319818263865877992704658730151196418056527252916312297400067284593073524884644463046240780209493790351430502138205254205946819558571166251144868354517793608960001489000371683476059665811012149287929767344700370387399707163728773182430519228226748725513726782458502350692419393207159510791613657169030609206112493404102035621808419934571223643759423643196192136891227844096823543594217166586596763638530581410386489529607747097317719330918253725113826498874477381030578569943423812660456592368701529978282630119873697169550717555311773160887988270075404132097042676804976139142549695197089390009279661996838918521777914609195668880859404025267892189688153559682131858224489281630973694739862597474553969807085262285022822687752014376571909506249474236859337401967595999264632202574611970672828171815994874500318227043436582322090515495866456897063709941142784367812407787602255828220020652334201578828296199789039441932703675836524413010402218108566137343754692949871284279897465492530130112994198655448957402691881841128210859001019067145951108105491601465464319714607567118151400650088052213089290255295067058731404881752924241616679449820644339536603301628095570300244842777441030192021211305902432855728785518017572923302017483825135006483969875868949319101262280013964047218239549901028808491423507589292075503236506355400603445865271880499067637319106000189855975362442119336185206302219556563787380746878052260409317696006376779710138110616989180997560463314240663293576698033607752957997672572527334276053530099886213132391656512670778292029416593524355460948545896607980139877444907768765624296159988266518237135092817491866428068062710293248489655484459126596597796417821760190033134586222849530431954413667334463712901555082960490305332548714883885750513139609795474720228590119302945759856006598265797379557478667698830389436531769214906878883409049734271883935800315847571950052311604435599672269149602387341979827931999095368925712302929358784991199112273480454908552780587320312792764195786862977945990674916797020359052881696597051473111964839346668845928200315573397211955157808618762800691517429769169292909311471048569743273821184642292831044477805139214133338342008758242069170795088448965760613581414485894281385631795575964644340018914621793824504969012165652925508226307569238814261501059347705614633169806960840014713361283875803054441309340042301767690945378322190312849342315683462412966205399857189816072163862928909513930243117808105606627055037814963164887710174213887993140072237401474512277996139250738544166251258019768878537447935794274655025739773155739653027581982254639856982305407065912509346405956537783550308002931807088479147886153161423752122133465170259916468656770030939515526043283407651593335819597850733687526622263300656404917167724633196816917628135456379622429205190066952141905155427424128835157793969754984605905475931535798673977598285027817136902974781366693210646063871260259407143475881717829505006955827620973343752307931898156364472578807309409167276215881031030684267476092525867162944747639703967855226966952532338379970140220213061301423690742846131481019462782107773208818567734177580805354915467978465710787794997582123773960684305773500284651846793794350397597427248032861958424478206752331708685894660836371920082711493916421246725162808617847684188655077016587703238173226177584707573154194150136923888060076657462866557005767544255062953197550509176303444476491230206335298825472247385281695502235509367971280243140175318015426824341345190618244794480635105552249532410983516417876916999781745533881821549585407614160835357857607248097324352560266628659844855342875900570329958704414469586492787127268101650670078300921798420954402852226952021373903074150911166061035702494704378246536748708757627285228387431902572546356193479661943549770721771089651176773595521439655069995605649765194136149609240840827363141500251982137439342757138718211142323618690498522886835524498395650433350868903920743759316147186733278537592472421124871736387106706022578032602058067085060507210504397000978425761324991069706091879914447249574205428588763507955062247766733265572044756929223810130406495215257505165991044796788155636558705070775460715813678807179738769958114726778273050509115640162537628443188607957351370827715926915077620618227036041281630030919778644975748617354187905961017256082094799422346385619358610172238389263078660898909984820378903586007601107664058782352031659372447624936048016110917130900781291069823181417741647338255111587169936107647123548216425280611778229874937086443661055560004458696772386091776342532100075585251102073495067722981759302923674292065037967205569750311017639425857164360323590304511241466983910998720150429566337736718706919386565414814420567573115680074235572162458585834228904963450921075771840136884133371959870913335341851679592028604132642613692977305005745441701055210293553934313347923417594408457579581916448371214645656761779960784887963582097144723198191506317013417676507855153333756192096146991322648691099485588307657336646542411914754003688628681216374090100116941286634052862290087195342614992260943562769397279870698564688472444938157851551109428164484654534830717686296805564722711007767668343253312363939895599769528580719393370209206196249778141810264763245942124160538644851164451540953092927998542316933348499670152117734040119391861697331914946929886320240226098763688185917182449410058444736561634346511099898944165627121340479840960284823632232414242342346792298508129192370452141841132377169062843963412851489831129559167625631763252973703390755529893553491072246342303002488602898564780155652614096391769799169619647604630512934242119483929039985103466578010359413889730923009639154181896092319232814373271095789244904332421721417114767143180730098911157490036237367047678892087253579016953816986871057585832233958379953087108979716824890874227747364334725957940826855043173370064574679119789791584348747663818145426298515493799255204321898718218175665967231496737895814797159050797089078075764533834192055796297973999955995284355369572832331034422847872816506528626870957568832652281939391195593731280226604143369430522999208288395386761723625120994445575267706688532701300078552759871661923033769479180548597332353276896088277331529236289496992267803551774654634890985942318331703669324279654029402961549645237381012362602669858406926649722864199331715223132012206442132255055663906822461730958301037681544860978275648393323258524895859624274836790759644584340076478920146533639046342259044789331082724547406036432266797726927795218959371203074040380026311327018427283807891566045796832302922249340156166075801704421325589069210762797187948221023634381416450169386564632888010194006321260330111537276585810115339425982631664209449885907701312342409297225326332227899269525794511456998308550085859005576163210352335223043348323082489095512354530109522740768766738363081128082466686054664033381916815058914552913778126790283284043711955788671709384325929342388723112801077357081503338662983493608983875390221621926628659017682615233652482321902742024919308500066386920886823005408162268781730518010526955659554975559342568800775583771656021405114975313067119352696362287551733022060189564940085253368775716318384723305033836146098407836075904765658052291920970576644021918421493986451072268262164607237387644866556827808194819535946547546228014662139378787563299271939205574813254338621694060610204830226984659372786920052923520689394469766435845735986569474456594240193314576156386530882649164863997572292407298286989453971686917564282637802768334373043881179272674582839057980937434762315237451574449567295821453049275984060534450443776566286645332766390387243368738899712011590420277095349797921399956016937133881736511154364555345053349880179364449366418019003230400952883352538054711915129484469448465892864331894103823704311193141292431867377091952575692095083375148055642827669719370188700086794618363189859027218387774687701783294982274588443760551109254622719765849040164295344224611958120675925822966855379997778424587549240022842131838775662429411986934266985146165424043042854963477044680653547596485800454436426396900021492571238510489244475334976330433100111761093495677606801258883841951846725984970275435735941581891865345119117667695571454227136044628663261686755572997920375333966908807654597210357850429117911154990394101180526475612205387046195979069876228849045891877985379696966108706055962389197765437788311368740241733091533805543980125044874170047106962222267280124062671734709470738553905193577772801687653159894855975621317712044272176738470131065718977101805709834128399001201355198735082355472689101094866357699242043930471353124808946536902032740299031038652477726956645734905875183978860061342134810008775587855461030396705831542263675487929752811005251719664845842752219854094879759727948422312773044505226606442171990683555962785204984493529926575963444702585578543771624419308814575784056748370316336117111784614067071078671497146658891033857291154550789571243740951771400784366072583163652608863172934756556800944224320349902841448035634909549859749128633514175063797839635224301494812300894000077668333563484821374163520224290726598078411917459404505857799842493079926253722058700122033397498692061699962916352232231712806673017721809809802112835443031174157723879168389966893404389831397756636921952625423424442250026416042537717376996114706284845740231948504202915885720965989331772806702181059582794278552868905675050119963117151445204475242008726735666096776586818232123192556149791737961671429875075122184869973573240660213884709975215358596103615652733090160695635553885777602363742378598699450621103756940271063325077906976137113825451202631510216152342237066625232318500689348439484080002325670647869994120929593478098501141133890754253295583095682852044435725715470077774042175292188880480362779494710583914984284537011265341277553930421793619060299437032548347424753073337544848600950680635008187111162324095538270811741216187547922946562380748198880503411261074586336019006164605526834029289296937878693787835309238342836594808944820919964618258540305794069482313010141298176573262082385700141977388221265375181619696474890408283898696218233816684203468820758413272415496540901215252302307854331935926700622800448782688131487132727630692929583391109431116309552608254214775714230045056274347852796350835655164176821545132539816540366061837588964845001726921985539648668805704369501183119505078145660695192062858680837200925348484392583228285884832232518152342920796782906780430593151049221156218399394739317086960558266500653128446599421302526982586186501324352823617584437702164409720823973223768215908805644362394953103169883320613073312599002456923067594385644989691188409216376155256485581957588894859293541624730019962659363809470112843585293906216294988443579112751098642245475756771875511699868604632753984545805785154003724713272158115351639928966354339020062504946423478279507763443763730138673535860941063038766018942411103308861114368172302475199465521221666660267667119613126939267910674013833871334847688804621786123191984180691987457789501212943218491825355315631771735225350880054193197135080720463326742607574452791755507567093391871475477857906163940547977696063489343871590369697049482955265310843288212186299079823637450905598085356888742575080002031913313860738329482477800869922360770616691559275817225187348350345859398150238605943973956910377982352777118535542367022936883022557517955925096260911494831370842040282038607687180366829705753756429612082464730532815208907088425045937732852719419330957407101821021766654126821828433661672338331050313613327110208509620700749863805991033052641481031829200915373628284066488708483497567540747171946508908004385402495230046130981804813963718514723348480722432633965161031400994262848279843472850774053489829465109213143882298951648524031861359210225411063600141758805696088250205996113268484746016126801789010075186245895885434458228628996295252256022332819990548941094756828183803542307126409642140842257113725361463427012074689306883053867974462674237013223479692962817860380818663774766480068046914123641217929409056845093228576029347009735808124761525193770997591006912190598102511056445353707364071166151990546416745154826000470777160901349788166694937334720335287379217560944888884396979287873212677123837467473036670852342905930871404572024832780867687578030722240139080029666032187667168996796303908185663952009474361644544109676935760244002828479477761582651094750836958998364738252998220749446803651514796355956515790728609728131130959885659920948302571938578027105067363745403506329474962757816873524790235387791813274627689351984775747594946698256696887754744782792911162316199253453676110959940247522802927556636709420994862849071385394284180474523345053464231472927419778958632374881963892275264069144698974365035838936158079447921266338870859989536337131674412752168514026372573141575852448483869432776045916838250778998491637096658697864500233549040695070245813020617873824524252901405314324526012930135483651916777825657432883748582985780515704175608172167031885607685037254829007338764559267107351253840381626618346791884776372732733040297616672555125030639601829839886383613023461969059042194467879417872119401191303000585754006737974264616537345030207262793064858371668488412118949637498344740994711806426095821330293701904133501692991083052996621440167283683474491149119697728822076833552269015098360868521490489278281041401912516904886370935010205444193617409502625839659555238840143364713139908790580625883454802716142711749499048241376938753268232059334648609636136386940054816696864298764889063934919830346333132803151492315175374462973433233751580789045002185586964813303503244586643319323473536553664883984790463664247106744656358982101739003358798453066132232814736789888805676445599926336131456751378215305878279108393421692542611056208138751768424969054804609622388574692817457503342136523814649811903313629803209498478481534149749455430080656959821526842679368028508313661308335069529429109965845648550889687514842866558786932226555003328949422513962418403789205982743644827005828377319776918019608826163928182104442617024260084948239828110197840961101208658417532341637892910054082958168013215367055040184734960573661836662365172849632656138070162976226173966526819838996686094081502379054107995726757312345225447517329425489722394877603695824977682598380697777520775522987282938251411244627808512956394898849424416853482403758251864286664246345147305472621342900209440514344568599212361895485359884500483601506134905846484431338735150870319141432325192148144969268872306007208286921644302202583814140387831888370240998405422877110977037762153332426204691424470359487169933454498327792340866851437893795550182945014678959313896224585438405681585569413947587864256108849345774342277058813141611678387107788211320547653978417426594014828276935607455615516692215675499942576956261310493001538319630298985505353658174994736414498892522966503763252477471202760705129196515681550788572739805428159128740525209360960116758513509910015286808135132526604558216405591196967324718106672434038600536348477744734534645430697637768872318818382222131107635537300523745794550694624730172808433073682095699097845526674465650439928357716455260228285101143000067979595509528095372343319981102783456812226873725420014725295094280648312024501979753875733350765439443873543150566693001228598477311766982917597879912279777573655919368356081059573690028911426480652532522892634379946470366421663877341619263999122786413429328071978145406631811306400757544808695876047076082030462731038766981223811177470932172595394670677949840408469728606717816572191316116884252443104402325623732590426615139097161183858993473613951722379790211580764930381485817095931285587934918406934293107460106632225925187444329938476585201232218180362368318347753515089299093238014225888427128878747140717806298361549660155183798265032454216354148368776960529887644377834305493544296618477689041188066562482423219281205259443150194345661782881426376610980840813119318391918287079401069804154378668948912648499315142142494952915346285534995764373661986237290647938824293047987034465337964522251050724986313975377490725235692332088957239416177550314196476524589328179920084906167882087173756986389199670312013881245200291462624538470157644386453872878483362370480241106346197181847157014390120993832898087932716497721104114996761719133943703283271371972531508903224458483098410228747619129551167285406382035924880776259829035622718734285969000465930247841383806842629050674824696155681631171038430079945975219916239354356684125236700645739331969775812515205555991648871801345070059589702961138925389648277381091920321275584927590878204415763464900202394892013346902211789793855275610009021819235628052532355687737564330658865622176609164051677165488466705242602808941121696318597073987114874381731693440650697550489568313888042855236866590110463291756459055692368614580919562410021522129315275200358200730087396989752858427247536349011706277918052759969616623800787709312667357753526843684627906197495761382394265131504986415494025890461675018126123073758521989364689996841749206833044047005331068110014747187596651602501798616104400293821264168489356085813065365473116253542579137205608672183849042431899896342498002247178239338567407198414369705682174428040103192808345292487016132948503733728378134901039587144292934473048760878609837721893500069181294348643359782732815714876021596396454386349113601163865834827547407359317022757697032967875711424021357069176039372763782666192871873903390258327625372805095192395768625259616687045468502618015660402149031403549342044062110995163345637404794559281695965601032879700981833560003884667725631950045439357351576554718316768032414884845271631685948114851758368081268055370374481408062775985953011446439093523369719392935949605148527368516440507952162211474050216931829666096333874461760801736548913857472227010078028576320688281807164728592774694719397297174493950610306137187719847605504329534950401723050919012841301893077446591433935039125767961337717017167274117969614773180347662666241812324081145715989904740395502387966648149006632813782300838225265213948518677392483607100219984985194356921993464382471971382038528725016087972098082761331446176752187164146088055303412385741308001037650008077451524662756575923429174151045285580969528522507832975863503139256250925445778619859871923861005066919089936672436287316968060047541178769253263830065188905334286491400130962130431649893400795490179177859800695830847697495502667545236968600872443553833463920275424175319844424371963859961284580517203083540138728898732371098433285404403630981918600433162609497014384600610780433312069545811532226333996882459781603805520146997888363493263078315113966872025824737882511609632272345814997791735002497805726709103044876502114565755785057584115473688839071326316512348839570638389262837542690720798087273110724189030876551747422330713987377066535078706857884682563499769001669140711725252432005220350125892025534625668101681815118957963116526684515737316877969863700549249844424914653919907741773716988071689716126563878689665654805162026061788671118662042898413552179700725200245522856848600077975088849948621026941452162772378122009939090499363247300134254262084577028695001961395430298303429386633038868596100275026170463526291687999184880048651288808116319572201248920528273047729468624609653146050981128325268148486130028794606715291214439582275324662733959470096444195246368331053749231603418004054583490852738830170541819986229830644698105706216150100665739784007897879815416827336841876240866225176520872839195055396971536016666269375575104107420184592023239193242578084712802320233488145468618733254639934847159825452858280547683345410805346844903662537941634013540551156560913351824766959537137495198688110628441242055669826407631799125915975728193093614158869476199858224226435380613370992205550902089438860470191001104009894574002243973673877766139262998787616684025257531466317925683143690835975917166138991322205432318702355353341164257184780089644225375220509567023512706153793866340362031810451420972602144801913358899460338592874261998523022401037750915708511674442656246165928568809377548974691399501713558645815523247151213823996258289524787039458937314299981234955461595771150312872478903339190928085116508246424470922607324935460980022135540425505082629241976660564404838184116300594635138117281941309457305652590731130685015617843815296281868638836898667800789256449078413811159267519602821527828498647470561189952404488587150237021483831550442250697321181059584244728190929381897824754645443153110860842298686907418427139383060644096599044301470375978035166486818726071044460260889963938497437171500952324239269303126779430441574103620365903880194319179423335910177247868334072244915282647280390975615703746405175015352145934224344412204721978273010146886834618404950859356842282818011509941932031865007068761164279286832762252230688220925179566377518894860826208566570244696947653528334793712972958761615358427264214991913454566280691313152744103642478049655109993572318901460621141578795507196228385301371698096261544988500311507153824695886715127049823162380624172910031939172589122491973787268555095893659759551049493256296036951578103459455405959753383258427587068706154421438743848968529255783950411859260335916934006094987213338343364912690017616508829228274327317077587233719393836088063116655604469370157860413952027497170439167134559636269863883990957380235030676345081633533507508410449996319464470715458267362665121766884329523147281979319115617875496327529765251171433849055538245867653392197357933203772050805868282824436704314770823395956471228351999132508844365000996085529882506243092167377608960888266885236838591263389545816977368462509618308653304595033373056553320437931872879977788357757110760967062538785029795113184617758656672495799048942898819207650977072619599130233490071642947013403860275452986033832890153065866821835947665275289252120644520698883885359554829423424755540011325737537679549029921381168645409643566407838795954843452542078907355485405495704916331987880909116021232430214777816970088856216175198343488811144211772599105821619646555744830774206942044790375399133467016014867330763016655221981510891039149996068631009524614691949355737132600192159473185876503485212672635878498492027500664850936290972920690342153095161855802592227787466959540248807131303570977255801835752669453746600165643076726021389877382400845086571667608969079442523648690114594041970091970024856717483387195790441551389232626723469303593654225821132749083304760893253930206166233714872547569435911074385114229225140609729403686652919393564438988844478337699883216620791313050539508258468068002064713203780424430711796110708334466340579762583774037690069055896249966978789134828540040767455611280586811760389968127253506150077859265466331202375237165510946879224099398679780926584147735702619933547975961624546196740528110426815331931991000337015890798946940091639290751783190136665747423364041431625334422841794736262347026099813861013158831844498279508368718729601841772965221513161247958120367866543883451314075417481105805420387521104233862665026781173292471968707477781541901917475146050435629096689444388991743900137740459270692538577473436896937523878526916832386104814651073058796411005258620272489155229620113849101168966226637441515101745230806183743340409623846643692171056501398647994686166737908855759713562839401083994858637032521969585655092547228348782964711658558686885551675882965009682641601479414154851011178421235440505446165646351425810886709324054692632688898156566666949092289750176504022555157261549367437495374849752036658866544825895379557623599550990326244993626014843439124667069301315232545454391229493137073079649214622692598881063117480178510527258842149791302223907626673306025845644439199927707263278096072680636284391249360311770332903295584967871745479864292861106629170166193913131021440744884455756128007063498855938389415992023495902772298137730529061721317351482675891712792949893114026848001466287607693619570495276656222926104348161114094305921652103653254808419066720666532440598032655815893986168570560285520336704372304724877380437665571849924361920902953242663970151844795541607287832103707906480317339524577594150319090408532914782603237178094694568078211731473604989097638837099495734169194872070681971918918280334559161395661524623023383307702593651840302512435685474953934958582060041022484299947045331035683659205395315538933035071276276626995947722442596236937248161420556737977342826674454257417723471513820313072471652149480322393709172741720821148908458534279069246467171293295695275827334639159553105561515674631788949622877165050968963455492414180353676769829639524790884087899117233252449992335377190630573493130944012305489110588628250836895843036885986235083350722740120590397814743023348977149371332210935239892447701136541925095050973029259835647902588705942522921787205062865540264071063185461034664061604848309092759727833780893900064916628934592536616246413660438852998588253810770856740669576609639420881726258953609287656780992070853695363559000330817041025133034871295395355818245812868157997186825620481401735194282581721352827369595079596329541722981764194996867807787550634505045739901824208736110361984555433613665769717422874585597552449803747394784726440257138963487877610233022089624293979187274217722681075304155781876248902831440927568086864528181502994345539614857963659319083032767662994204391778088593408395195782616379922090930976975031520190754439177793093842812305448831375600240601091757983970412808444912578250920925379700164479692244766369541632137140049352103956555669585850728497784761275788438654678817286307666655446159283249791187702026901558194319121768480845987690649406431277059637239797031009039153985512705858245614234837542000490331177276392189945475594395950933926264153516460421669952189599551937108334361084137463758676457198054247636344688593641674816091206459712964979621770360134473199617843870582347575800237614213325660779503336708786146963267495279677210015944051627047935827435163527303966380975834210378420182641838558665883077241626960285187981568554570485935989159204908890832962064077676807629631900352105447832830231577736762240894185336195763554494737712189133188862872760511846882555371061801738088213749826419933990301938860685752517440718218931266147050678980365602573327995293557070763588232372585131343722372736466939994781012275768442914789740191704773359360630099225516090010362350059439772678197929378367367863576284124498626692117379467071996317882397286136938225152638158990712023920631876481325410990721640949428144955123963323960980036583925164090675130754722377717436373965816983989622010123280515971025018199049432727542351573304990846547748985694151505316052865934842290783911228807445854830467709522691165606501981602105832059433881369159097305132434496625272105422272093444256771832452743138040026750180261743196147200399031611957321837114095099478289602230898948782461090157079630224671018042291969972305977541512436831892084836464597263675092771945223682136377930836069839524526398681329753480627099063400894886364597244883257327522581368587573584427177305225444685502439916232421713680628648676962329177720469428120344917388406700995938313199453188077663017766662527920340142778292612080984695622224288101821578404287539957604607852369793208721181682353659831057727314786084816525950898935657740851749478760221919132738728599038474957475661475722020219107075769377792654237179581824514761998236029927952568087818215781583975601782432984273398147539265586058456076038148814242302208943276999738581177698447426100121259794828360957060115838559566781323516969196728116051919683672384672715725760887082967759521137485553187402337742019659355518638301931592706901034741957962379149352890553213687893180969059301043162950100975932060287689946130143474549539475996391953781478057508236569200810439555666225342230624277037545000941461833555528870352048844553088979134533526650923230682225106732067232844603531127185549576416949706355806442576670925187888862277306809845880505072319379503211746346016782737341609874420847444993883245236205545298874000536565045382640538922083035954880483136054101542989780907838438638631379429256506761574828775506266021992492154020059165405797493102397786316813643539479355802298120280292797484623056138027537654971970219651231052607791848445074933762118503235600898828234396762717679879006183290709747136797541478922993369381641055206579503847723057439635563879522117779932752686935923104930217125046830495476192517127935381173685976651132482706270401858872130910264594562155410893287138853695818632717014831276753676189749382601182349136322526723898545408528716235861786310149943951042425954012353456497858530059097125073922290463705967507004431288487700071302225160128757147689097995505315437942784269148804191668345009957414190924014380763662754530151841947977116527486219290135374569564776032108321591235925066720956691254947965580996333621985924592661463422050242359131497017485125083603302523654727670252986196909489606871279155639151570817316502461776467096226603719724104228322294691134546768215894805006316935670982120811044357703876300933861358206528876377345028642407538751186201020567762067077643108561103715055398048030070060560389296066920765064081661025827013431024739086722116337541066935778861577288484836054941558237389592594468281201230163205525611622536920169557714895882467162930107142721131667642682862569572123603465513703435322495820832360613830396911574247723430640981869910312949781044465244690744169375298286157524215956423294527675004285946504047120363241336805333590121601963789271396540664277308293576702522855757117112081214304609505032882829538110463760670743265247584520053811522960674482036457647769802069806347011701255200730614644425827646920649924446892479828934431988638444943000484835103921907506279647682233791265952426311652632048903206406812796957786762992073627437000301289415847426051374401602795290748975307158397423206598049718999588150988736387547591655170861589813649155882144235005624795586687511626546355236199483801973869719759218250133269164690094838253067640689755670535926328477344737141042447650973912412457619017464833185511887202058288748325930460340451297394295130081864681899429358009303550389084607693161503549815651813867393289965437735509707261887824929780297387874336720883653581513409711416179755534187091043644478279606410127112496858699933179461550228702729492393998161079724164793320209483853950248823361767915515134528439747787511424582053160190085209891560062877630540401555580385525233286561891036217024341679796478196683328951742388830865834586130847319392008688998257507053557109074399849958697089890352634198943647730216371170952283973254122361333929546658424206926734157316660671892276317224721271738973049938734337637965127900054620188699419265365362254968080688844690661881295809714285024968071745637814885710396403643243378113173673464552484481760730584274643132450227701418023441967677877111849445980461040073795280907515696682964828848770570264384871986034428525253223491338481222730570547506249961598368438626296661923364935778411873230612959849254131880308527687891857051669078735695532334216126037893568846599327175754732428175436340767706745870880557446723444475206352253459924963557478699135345776179973071385738185763647406645045161135341958431029024023109165301755938581638371815899095344606031458515784019154562155064271521693780956938660579998822824980705188445823563719986652146245364068097484637998077844432675349388736272812576429859722074185186155137557842127940560197349734447643870526048068799156169244749496516984715467127973899432404461980543918082042567328250725895164412590004228337207582850749106045391860520329668384838056002871717839587701878599676824605125161900665266734747344141261813357781699190685139658001401210323489890765161273522075889704227289446282752869513748409928993113495077382268504064873379834356775760218967624736503565995694431041575810625024018068773702820715859304895192263816591953116609566621632174567229481982034597497973457218780200159240440215552348164849823414992803244916910223030844227131724043793667251916677744316166442502817998090676172197437586673616129341350695876746360791734370117727077324378139961148181437900343150547885329175190346716435288180056425371313482161198086185552826190927693234442026927483986732096815905037571857641980184725547753680741886320821692699478428370525978997171806507726453830818188402667403100778323523460007723798689180382755282344711155983510293310672167811570719559771878829372227685992309283747948330253617506357543214518077018724582164065259156977565247970898145529282890571568319011037070364218581351623773692540505922516216420357029833405962459439582969289248515983004633177942159948141408404358837307611024703601970685751376922023309282818698771213055726051294115993259818658686632551058477072120774724202942491413232386031021751005577887664380454938601335183063084238657667868343707598173051799034111785862311372848348878931716251886493002158972285916133275916989981515937251153342576453421781025353302547784703458453723192587420680636487608755980998828550009574501010941986496887228060637081005399126372987731062287630649929986137748993346668629632598139382430365885554081354994205990891185774534034060011701421777125807033337361305953966032554075721782748240062103128431082699032777894984982435545294592098497263260022712254377029677409794015130378248122066739558605107287907967699672707974387476729464853061959372026300638449291950719768068624933072247102026223874402849357402282009885871572570846078898683822490471162525366893448803632821229057445063540063112668759958493199077264756220003738292480894157051501250539805314300444963171295206438164226272413664910617802019610074766553121097003326105679571719134826888981411399848639764985015341560777861116174920012916051173046154511450070021058481499334540703333840492100284135936665074862220044514041816417249589641859953498578355146035127089510128860762192389292551265211827714967117033013233955621579547680877816440318340271331284142826206933103845616712835425701131193981486834669322081011492714676961606055421298822152727064881267295598448441741588591678362095303756140751227641610271191850131856687382826526899278429755623718762747756389313390929766384400305074856224529878864553871567266523553660754441004633716477722324318958593128978606309335677695687056210531655868217589794287781375652956330212110852264947286962053788300326406696277824491367311709085463545760489362632473455217547343259854826025449676216345137870363405775860461301298002181679131107947633988653423505968030936997987572719409085307160162643990377278808789345085471742998512411578417444340177005597099996193303460383070775326127322800136145662576506155609369788737531476132222588671261897921223602561223639825706674606721728238445484562437767475290559821994489951679541141975536858916526430198057976741935717113109979938827886100210100723782750056723988954650669859376461033320470750847878304741425887928194996347129761927526421300993805195661470555347244986550834221258765349165928104185565945700430781717112388562255730072234420459677645348723580804891574149185632992445080991580869594133296383124410372390562846104515243784905304398620162178455914392938778586868434851190660890008098463872194943821463331621730801012489684096574103754987007746481168484203849984666996989365748023056243314704670232665197849926365093561957051263123149918639636927546484704147963126261631862711244005206413336228040488839756076361826320484413714859287578686723786496198658486416630358716191249616230197696424044559138406317709073387155142473316634107661278211763411803242028617864822020836987318040825057738083141117554002334955029205698130894315140065901660224909329525125757112795605064159049930679205272125270891044564504974172984613110025959699501262443402371125173853728411240652503690938576659493717770939895569525635068538001593638272760703400648513128827958295382102427930877597020545686347495046279881943263332449753695877288724863799920370468424460961950363862866455925892315911113084925783023715662085935707176114905042117459157945399975047910218252731136417778446155263959679296770610136145240219210961262226543820588622203971220220216323440962657522328258441264564711278125797500576252183192344872034563359207697920119618330221914259762251733048255000078441438223135630087409604557045176839258622641218791240607303235851118415151093836038463581872346953689381801086934498344357991621731289880486018400268764218353912764416072587762807859305504896495715213290236630523578971841498263196658945235733347179505294616080677529852448839361768468185789305508732805969442963899476468113972386714803188244933438395501181984325934932184656187643892617273345060969664529224932016969139783261638163790286055356091110183472583032356176850189317020311079656857810330564040647082066056934801749427529624431870676460187082152406400985731219424452084381514606517212711434880246503547418694409282109708012548366564067668185639465977194256457988790523754115501559341425648852170496761318462161940289854279654119076952055380646664520920290672015343254720351646150267768632532499737300968011001218149999556296338354108828971524484333071171292691520846808246252241462851411020854818156850570642317521669524084202664407490184924253367993072232952919649573257936761526730682341340686749851574430132272968498220672720377033629815241335325855503984250264231598221645539757315699195586662675242362158577655215939233798094748682071180606739529823677004215847978328502442492833480103797886581292652496627926221376853188369377949547187344753777138022838932665498263062613562783878931588223315352342988196851703160636920578650874450336353714471252567641260934293356973567129337832759264716141153364266196224624461934786167080226164148295701843678728757509911483075476498496329361955180237993859763899981217796080001233420977716785879686546278463576351864135391938361588075044260887794901199551469666268129553926625952081495545557306386988975953961314523534997611255485583859020769289861441878115055696984251050849906861457643227783301736145388898979876143869236619838312364366301297007627931187110497798826672951813881151608429914511237721408523870489193651694561891340928868719975807163129467213639681614186687377111584027575554641832174974562557719850270284138500604567965019643110612370138697982939717724002273467536263608964978498667135660260160627071725421863984395557535732893577222793483839652536148912974032035375040601991627136892835904033462911125433059726002588218223714073984021671453362924390015421386120903270992412593981441538477014302263733526727462034354158479520501010102470089708115015986408479391848499590678892529988196190425782216607108879210018606102856015817050750173606805996631560708072203118888928287127077768014664145962082976582189912451882738230665694161964675488645348054754027681012494475749225048429263798076662015512684335396098943714843180134621145331656664621235760379227819788407810663390761695887528220682016886168976823804447796253131615505558471937613579731295324463881743880577556730130740889690682413587358708134820695633602201603102556221456972625608715132274566501134255565339226946406476195556535154897161163068602362958403428157919017250984143575897685004364245964509684756960637457263923951814047161235795819228151400172085142905368788072891960856604339493803916521659937604651601391549219312875685788100470091159637568652195258421197180100284112558537757803472882938210121664640977706990407081087227072230064541743650847926390778673556212670298092119327395427499272251703226241055914889859197251958422456134320138573507671504343482913254953743329286984610178748349603659537801399762616894730931455913642260846349658348010078413354467421783522570402291898243312740193672177883915881925621978872671536746255399710802579993798735439563658544425851742533645010093024601625908349667324306703797974771798485538520365420811387238410324139796906602215451597779208061042623537549423030899146320147883512252465524021903660082342648777366514856309517673634859113108269521256001646215996831480101804174453913334343836357957139949662008656253891923081685212699671385655015734085993877650596801838332640353827850110591736977654000589949454173806801268742568793437653626856373824578780943118601810525496105740612300310122119700435329320946533578981733789368970665556515328134174830186289487680462606632435974548043722144353806019017217300679558595121086361924422048229574281641819681179242475261481164340603275218823899375784168913164482717658524161048969467291567763977433018626086077254886312432916188418605789419019253054683637176411530440427530733331905915284822437411987609500011229626983128609319439349890710494685779822539744436220729527532005210601808559496043338601925191773927253276831996247206316134267196989434765191112335605155669166641707163974648303170813150038013127634084967045786428487180472232471527744936677818271987042679745219209230936078444234417912256847788993512714154292322849486493437659799887367525399603854402659494364992656019446363435248624456395946681580952038899319844164717984971143141588171715308798444517116718888318675624148150624083290248468644107648414672794794452158622020232042230458079465141511091817831356982724966703460181518936507206715445210393352242629628842414165688287741171130962724279525201790912330106367375994840987444700751597734323346294477540766934997583333831350436281502368042535565768822724270696877935989495586224931767748073140027652236882136848809490709245798303634653480471824538912974427175393489892891179720622180439838361280606162427343871276223776132034110607548827782033124990166598498274217123647671864352292920528506315384008421725676199941748710605699850013417062621064828596915566007545235804155418639734340319870205378059951143790667174420582631774313105835652071395569224133056708131535341523614460155523230793695530342706478266475405117165532442605319450653132680412723344690221839048888264440568485853179765510313439928295826006776672191052332286124537356851752022923848724841710862206780710641515431231300337598887084768296539282804546538008877796922837716053270560839908046528394846257621526719490192323686899351093947409115937648621740131675942697636958957286570234428774221984827234633816846136610211896680235159150739236269644071035004674739676949460500566847433020850876246143232173755963990058497635167367019548744873926103361906609419988156302013424815447265657204642014049070011993262442936238220036353838599986576175362863264219823239425237711055192272926803984606048671107375828817236584964212562293811566264647310625931989582664360597036172889699201298451603820769101144395340316156561389666555491585668325606803102067177460819436247513471689837193389862843180319427224023494071097180323854803070893786238386160039469492864267463820377550786672125757188812226365796973468203285987697784572700897358842642199095903979769792714223124828978923031486399156311273414552600159907408858598928462433549202215371569567360790778298369092916847049482365248683483951548964941036950508351928989791532321489929169580324642117527123191225186688151865319714321454095791061127804618481477887921218410133668684706235636169799544233043032275187619564077908410151476738446299996472307626971361530393921674006484917051297733495065662186767834931980925516679985877190724788801618858828668196226524100874914270495033694639531150423919697099752205786298167584003182925391456594601560697626901763859973488613037087241546282572336539082342516805739823619937882073350473061989325942636258157143698011141827627169141235183042205892183902802855455902119602573510944464804185821871014327748421328690208781266343483291285473799772296369485217915356457271653582010419352725108087859973863791623480270924111072100351201980796556893450935662435638612743269351869765757609239534975834441999076386927441498606132629402312730283547155171499879252925561661283356932063488955946614424866963901107076246545952091606590869355715996326786850099163395524924814729478962051656645190023064981816240332998864425960483838411201786192932387156126012978911891922667596051837320425100122383508841080024889365083517200528660227845880168807367895158529646913537107684697746110932900584195984450399579606455862776256706306205754738809101969709875580852072867342359087669048640337773574542989868492612054176116567786836115419404852726105464729187543488101256081029991938414783284564393962263406120771436190878724797430767956327545369284418621773239443857267241493859181402668686024150123215753145201139258826296565588260903373441042764864777323933519718934139058483400867436316647706047932974594670972404471193690389856543493971457021825548603996428438212343954541397507643317431669046018721603596906071949947230753138259036613928125511861909936370623765974006533174714633111352273524137454582094963918261121602465802104829809249813813904695167285910524019171691506118724930410315926563882730288443745845206404425548478103386149636042861619001720752667745533964682574963261854909995130957687019169121051932889111240599727963030435302052366357627616511625926680707869220616060607195135244578338947631246749961912252319809336952733236669746059151123380381352959069452310716492224563811414593105978463171342539809160566539841718251030219499937018820799266375507940445753862959441193973383690041552518547403221954088961505597093663416985845397252756532453337854245498319843228968607302897000731407456167207063716100336406720217575727062849031699846693217699087235971448434225413112038884778260939010537035725555041799078400317035238313339703217999986550998988436076222390430014523748800741562535990489544031852915219722470604607159159298397608801107324590613590437888957418942674943190949423017417238127611464403525417250237098392483084325131072102277886686219415151319803797021394235194146562683766835678072419270279669630272279182790818238532262455757582325132709786736579948150491610959766502159537961566719423963773386911458060538141435061767230166153023496908653531776580621166113821143907018820658694657443063882753111816951309720495167591597696370952508044036657828558218046080244722977656684779344004738036259645019171525474746437673924232010796797399566572389680782701784429117098314568424245695595502516608827628096432143026104395010102331229286549039068676683010177974660787037339273768682021520334680078927381316316464883573758280984952842700326830952503643201271797418164052290482401305152388509384011844803120911588921491636568740102845267406715890628637751487606289523705661490588760990660628448854417621450318511254794052011222310659527912084983173688126716733479690988531111246132827894099497829892773974437164244429045679149904984206864536681185769060637949955700343881248989764267555861348926816642693264387796392465142011522649272496685958119966184126626540373564694739443817281322516773540418074524577397210438812136503455904430762141845212854156443096412775375781413682863350395415085357111129773079330063791767136083597790702763873994682998235772121486943152558481774353782485197266655679887220670452440665184168604513039461222320048403268344506786834816091918536359617932057489502102989468276918205467094676715158252305951407666247086481838472526974961002740384728328664074155815537487717965190841601258736096190842319481100144069102171173901158682505785133719380916854798581024780404014087464780434163059757981649811450864950263751438848150103273451748272027523901703578677812809010121562586757187297146153539212235175625152862870531951221408978297789465157043761768391869485810089744166755905719786757296773660893849179562239560126314621435061258566875177376604131775076763006725680299405563265503719381708600748569716231696078257142484453702869233307557188309999759815222773832152357885628700501263711492805715363627799499899052213547797922356924401339873041449456778496740367097746484747598436246128598528194296196172453175771529931544810174831763436951922852461430940989199148546147375988039123243211366497245583050460654670866722056570288064971724302186095154244248637179495157008682285550708336160087469405068793238358281299015810281197154959809787697324941324196255833136337627745141064058801732981676086899985087100899557697592416527664470348768764128830366590337226027480324259180573693715427979714468819406697804448589807212292910678436546466876715036784526436302839440864665441648696457158344189877490597851205375721172988570763677866050503095352741803181089229148546452305426130109482736573387376512726745384222382352393148251415990002952172993019747294623894675625162365537514190353951987106291992633238857714509212870325790806313674519634321689356298149389324521017789068104230437294454822143001424267873977422520225764523308392526773536826038538467754405093034224495317660297840208590190205647541801002685224902510824432222719156633549478464513479757980459810674077547778743982111618723407665978192370319947050379507113886550788029436639411911955040285608706048273918076637992966559316045272140573857885504869222863922210362138498678239048596711013849311352123701086196785082790921921104504991070059509632727685401650805185866979176855868602148815149406702051880551448892855710361898925486829226957379025580354535696534070117559230867149353788043609626764027826519945831699604423374078989336492723741111939547369191397100841021457962240571454776478940121660835679752157454616342189727993190854611229676186352007344095527903610044149527383989311456239624679846334982067035493029935751272468554580947359357089438563651905598334529131735803953936110692393548038407957106939971887401080346599901646885669197814485942582145092716223662858079307769444192537713391830530210193369005873902403534970610730511395355967369111177542085331348975963265785717852060134723612545814170723238572452447816735848979015693736524415369359491382363673911332316518850913852216178967073208165958117397523665139871651032371380158241129109901498730150945574716145691465287053884739141310132153542940794145763283545671189535710733820043656090403047870962960380322396505445270847792985714264905859607744368495562949553829095789954471813259191577071011240102649575338705973225304035261828236758127834291732051889410617971385310297895701842075117566505171271638110386359712535562136402195440949690403437705035871024406457943833448388554701802051020760631348787637739954546209580024264232104530295938971501167207038863942143311092346716106821906346816364418346132273771449356577091968155070440496370493335895728660301137471078979502321071661501387373959481810363730656732401377257869654304010325727774944194655307301907729628924684277427696227130833230175387774197270469381144915808132244925059062017693633749356049479615521940711117495872774502022474165680904260382354011974436306849289744843271585059477785758958690811367235193710308777753723211739885323706373511670164814813854330766323916288530194754165980699628927156707296836496462335961410385390006311605538135138465556997023819908088744997447956780638681185694188656545060453090317827903677566762914917211968976307698133870600563088318536306078450594392516184424677322941806458896165102323008572761255383465641945132449646773626602281856393071236112829099822649606545828237144898301020100694924095476853220675809012170037472603784830037671200710422658944727156385560117490121129319452170516889220644292045118234674313847488089281603789693614024391018488991385764397566941124975341522826768010492854695003022573409336571979474781861322501235885546690349632311903339040575806298630532489515615841751053176736006045247282108039462256296084013470519944949441956895707886393283274905183561380761314784973798571002306555474568007752581140570057076282932024536698788443374000790684198099744599046053765907635445325688707823973760235012302758495921893425975445441375009182468280997540962500990722243409207454847600764055236492604824809987172292169541487240194022290786304647338848820296213117358947006727447630364061760062372704324311464448219857580232661840697125553150044879369322857207544427967537140571612171490299735152944741719182271250772965116273893034478362412916204863960131450710288721060461621662092778236701119634262188547117857358559999539656253863973733741850690137495276988697938118037193703286500631398131934494965448204269318443354373398534439106252017707444437036756500400690839320070316864699654485133588771210546937282795956807551204358081424603904404320067521090892711409077617681291519255372033229476392767830479974242650198636976207066658055235308543369665171833453808915523140724313278742094435671946077187251634649060394319107670240278931098356299707113198392529000627139840233384822220138230158220117466035333657680062542903086535675315032246021406156089781744587011315178601729040892920607446868611105017651158821770998862122528033523889175167059555711763733125933466011364480194008297850494978607280552198191073316136891668087144661086052128700676385170261966458885268401658681128336169570467976220151270954975799740806346494069153440345501963535964560074171193380279415503525014553290651820424452427771819717910302246576115599282215815958201821445158658362806135755096361287809252440239498398078025398305015819920760703612553596133386794949163982917370844706250573122815746311179133810200800526698414161015054796093511576231220806368658339657863220870749943019450785179854764566051929070937376411857032329969348093996313001362921819744816066480443023689936983934546291066010730568077354761342597933688779298440261152763849672477998670005876404755117190556741258422258613400195546311280557507945791427833805598300525280819654848165038150453521548581502621688559304735781101569749822767211402720577376835836448880708551898166894796947687526147702770815408631509409262989985617304959234220631645573766822328309606048331936455787245254262930936669337640059869482097022247063336667137937734113327953027807419101933513868793938093756765024426689609289838994825408620360369870066252349850687973000743999787426704757466111084422208147110051597846893199711201077994925718395722751706820470054391414484718073938513373765113245957969158200779951006141197542612430389916184633332564078429354550107645313048409879825501606554808639178635055778660344657443144789778983227137044483927202862469108765325111710496996752937215428283065825642726164927484025272623063955894006631689738123006068205289745353919819197632487862278175980509069863929168396586099024061985877805509093546359989807990509277505495376384361466125493876253157052943405417737088171238217463889768147694126552184871369588896009443705861116946120224955167850949084189024046737542117424212270247867017771855405481135147203826369809896454137313826297370420071699783960015825768222760213954304126652746898782550040271840569974789353152284825961941642339525660608018619055943097876577195642384169948004026722950997011062350370892779718120558414678470109842438461513172146057709767907984406052670886303166218931192498808102621227223580987088809683702621294942910538163171529905407324864796982087287892873438422312638973310164959658418485873569862541050031912841329515577873272956017225452835002527365228134571507573710231161425977374146641930830919778178644995623453566210839388071294626288170288565749371346487121678822333334377651801948404806573736510578180270182033328372787108261405689632068790224140670451652617116799214226178995692632295947677675344211531449561247345164625036196673726418974374790026291775705439975745294526921632029163629560681840342371274056726524718611329993456344067052336297339911255726841806245098976899653547046437012949481727303873495812243933692890407575592643317028546676594615413456975674140195587940007604873127322162038917686365433177309883347360586436380411420716197879380815585389709936031399832105036990705023260636525086133023710882138899359361915536992637108166983038667931819866100701929759923175425593019497912990014502558517633123512706747193561778905266892314114328223342015212899916240933575963936238449678996011673266264919863377371308987855538102325310128254558885373990290817838557201393230243404389668938465345941934559004452501510092379252480954537054393674026655555640423806895062685829243305691399975578292279623054518545255181247493888243961620123049993751814575747834257335276910352955029282930581029643087621688795923799337795343707082340144641982501662326509899841460378946563569954825736528042417452752841775503347172266100859135201424791461510270101833948202673247407965873094661880296053010674157895267945279815477227865793801783508262695028994341488194600268658619265668447753246968302377932138019780714643595453865079653458801302476655029441367493009364070781039310489279575126731733210244986904542186404290669352160280183982636859491387647259704410703639690079560137162986571833654711551461177060458374221616384871224187929366048647427954548640385674406070949487393250340377814031547558412217344470884014098130046125797335348262206847096009569438587468799057725123659486326083096858091684753477177120584594237907652600120636163250738102050437779617850606770914088634377763594587154741368768576668032282196166621685698470185453703313635948140287155668008783756690995155025332360826112547953743672260923908636397573480617922565283902529083275221492964367529617412594939333816772107934034364364339317833306240031485311516214454943295336611173626391439505738061073776749554055551273280862130249139111763755705114727906436184622375936502850297902629923079159724673944858970227430826620313308444957804688944635957998412983697798396566444139110378469900979785504865768597914089353513471229034265823292735833220835619236976932626109289593563771931043302628626178800638452116899938913140223386847560437563330131214841290456385597362131456396802522727251512360180824190423677418102091378841424939394078915579194136809768790616158710222746182935627437465145542699929781309302678377837748593678617555283450613809209762503124969458579024778643846064683448371092627030071082867661046239885809521165785163791157097810486958798433229603453302670150154977999504424975722197619170698100936202577862154533680916609515020067636131604486006662361476229249890354715810018045042287788715650822722604693999212310359282135269825794157303969972308123745124281717850778684945564194350589109836113753063296888980439685779480019078761186394572632572682627304682400947473812615340230402032318271193473774885382720761712675390935420425976549772194839775876832568630261828510924643597645017544036987414742876159367914635932774407916101012683195393759685282218855470464175908415862692084168629770078274466932975944816908437500863899270809342901973372525253328092920923921406337824498197855348654485799511650309694443378384737542291892491686919292883171797214574358916427211859116912830201903132044031715117373123361770265299721806847029425598026295303516039149313072656984647801707180740258687123455499766731527709792322048800450101916098697994004905800268232854206294208949653461003074622863551333218031493096680253606952860775915899849689891234413796318647761303580410905223923250799241204807401884304244503015035376994268053148744525216486472930950045322913174436897268571843455138740652388242300037327657782597627572301373614904843411601091920907042962394692294567292851069303388428507655552189574261862746889178753322879039671298727700100281745372487535340989474465206158502249587298112042806258092062168536839438055641986942819184526025376946793564433368346285722549371033337623855216958788128139133964495208940476143300034961985664988039949779754380246729288309289179352911437785054748881494017091341196833910747271352448867702103799769511013616417753859717718910434831760898993317256243244958293323439956008996173313624946161500757816818408491899489403533418695006100422712864434947305767521614824722592192153155050107029821872141600008197088053080823164620146122703123342764980295573471186197709477848579201427781674446837754592475616544978145788723422084150829182755387487872835458876631780897243595341348982683275293405177313515776293052673531039696638945961622602067543291730041404510849073199618620198479550191986824157052275605874702724031156977550329692963752978779167584537706394361710618483209175596846522620790177068339597777520731790608287336930808187223875226765578154731214718753154575286834580949085547876014083760174589333085470669740060384865811431657336302328614301186922429054471084706701721889407152964247563741817965738862345219196188434155855355643432274591632405910450954177554760540699498833010315810138790199270287490430790646938944034265324017588461412889309290276721400524543034412458877589913306010436068758749182671726132436625110677888022934374500206168589867087369626395002535768443177536508429382109011645625976477443744327569448892346718922641709383075675414058537243009895469060241383813543050880824035001079430693270146170421233037881998225533624867053690472736863862632708840936774682974206603552132615564356995600805490391481635931850215420516614312891326579720011635128673041609340897802189185491564017289095244503497985541986393550061892676837547252076707965567220210827080618224825035409693909968303934961534378529682871281076666141730268312473333185750963615337953879022977529975346524512676087022232085744431728865784977050666698419946980867115732720369713161141397754585243388082578170639314417744626794688041498062299715117056280222255956857439108298841362571330397793324134042400060129077326017249040354708316659673668067460715132918607591855606093898503728137231781776756493497475623459387513190416420566679005390949350092895931347783181184029715003706291679795369442720371083135841160553244563886421104637126705649284311941091418787138562555220028234157178023291119013158977197794972161334410665759370718138517224535376601041706257454151898402250501472763375547298405899986270335302952850589702767526313642470241129272334199488565194967806417324414459213773189608914379078203078050688221876922671083707816723932562740093455479603181015832167799052691423207215784779533441147956316498637765143435912297786472076782920639955994817851576013805080079612945256979604487351429609536039595078604396506262737505778598865585280668255553879718687080640868026199569805307380110522844817230669829695766889081500968323657220463254208679504787989652115147579974039093510074516423252543550929383827872631851893404161466608514389741251143021945448305265645530972440957167864977162242414028985365532969171358652204206947564647231751691842428528011573536148704757734402093732524275627246849883822758364000969190645187841218800853073608277425570838347369562829195097824060857772503918387785044263095487297225901471036213342411474885955927017104703091869308296193506155884071493611370937837818967589702947942388477258018615529249362655654448014689518634241798447924923931529574727844388777708678138839461079791086083891011044588508369671581094835065419409115900495779565635186165003938451932417180197340679019473403130778016976551645440189353121051304592957925751759929189943740211596367874182343285562819111410786047688257701034350244451817048267628459338208312284892921453136156762530008064099649713981202092324692985827281173944849444284645100210807985407746894107342427894046098000640868917908505107973293302535351186670541297832921827668992264326102384682427721696803535092512617185384933965600842301385059128121854801730867573816944949189940053732553915009517985704156648963403232780529578083122089569221827509974577019997719956237487320622508682900794340638318491239968386372754633191596213115190872094823917068674979089832547874822289017726007438971069497526832002467449216404303022978094391316766270428574140146657280233076473991601142496437104458556602485545786693019482726081703966396175178733497874114655453254352971113545321894832498615736231976809261667131037406197840135288453891124501328367701285467867770135575681828798268840346706867046465002841768603028370180836869487159345080180748083164829573582188209456145983522072142107395898706799828211279920967292903790435146422961588690343322943183143314125958409630756723617052821126150287161565474489598730509671077226580390281980921808246641979156925052724886570863027037884681890726845746270913308576768081963923182388202711476700008663328681583148313102908560163911615897029082841767597538539354641487369541086691297358597271840385336430766978874008413980847307959346499509592290936605091850011912553514390506913187529129654813044750247371499299560739325982526645718164792114113585452133168252917243268873667074921563094960612025196541195887804236975935513081866950429419675743656774123389587519396656674685888896428476087817399008755168845664653738398600328994504713066501287110643152182622415043884823515871382864297655360819817752359141622759427887975799112300160726834173157504889399862295676857197962887116847948910830437629173270185851942764672491914956659952804255306648728512482703697256361591668063641795857956866904531486633591466346149127937657646827720169386246092164537174931094159934412651885633958182522043169726511988104652444680408131680756838164364451632848715472967910636971156540710005316048461176689850190731953378985306861788021916944432584674540213450734624696398483504839691299289259222913084680324794468886736923622290670607538533581346019003362536531543321338936498015626576425534489305417135047647243359239523791796450226522734624136586147251602931107800477531083278259437459544396832627036392999051997244947588859732873609677729720679934851758476761185529776142982787787376559327104776318909184700428972019936035762583417096866347437369858574381386628410314702628002132494536763727560266494447155472458881595163419339468704486871797179055346803169796612161634430921869448024238707059033641961411032796465625718428897692615018098690743595066783346512969532975203515920198164066784365924722004605319067166223502119116784152524749013757533897268812051430708184740608487932231755685276685341100272026921908854572462837088830208349553205608196576237828612395553435506747678294460365812567920224483849720647976216579578335122055233666630562005051045957599863680344030616566093429192271675331603916935435793463481759223488296136976191639722097604684628632038030634722121497309684403406218037395475554170578012860045774603524079887884136015483819510654682220280849087386178968719835991275364963323437916792179728692478808726897915237621094707824270883819905885971487899507227850969446808955039044867505474756624642239245102777390491737027398309857328269236040144875617834890321809206972193442534543471827798007200050908228874427216238619583499705798922490674579512117583258563589757439905364684839376142715673906065822508650681312087302148652897477832115575858248263770605138794175746755589915872835035691352075954961550560816083628207029734143356268189923896287012168135608122025430079793965555327413763490312839580533593785196711338879787004667305643666080241056687758565717380125577181448300763817542478702765433105563239274088768941143607859460375148941866989560051438414190705381046775740717304696329497202374622192513802815282601532647227349408707483566547156758423909097231824814291000862377007822992989441036876447104414958563856441785064410315003831337670336683791020770706370018268954577270859339878514451601171696051065371285755208921156645470164442382072291162839671235125635866124439411468104250991957092375719846886052092628520282012878691916883918905909526419420475796114559358230638588910150893104768617728206562590755815157527888403254937331920897416238960393654563941651833237231749109635823400585708085306673294992800294904026691665412619688163124272648047755145308974584814949976970344139826575919143153055759241811646242189199625920548359305303487806259565063145300030680055059206010023294319221866931642270147909435234877922393778547038179339166266131348342143257479299277393416690446802148306834288895990869673751207617526783056996935494315645015939605850547664886861810807596723054183914722050861128393795802741766380740646395394892134219057909277308406221761339973537984128542600433931026658862900968163887693908977017587332306207195798874125237200088511644205079636622480700847575006948452600886219350856246952654086850671278046908399178606515369703081286130793198333285363752830638953810123112273066025332952279118471901794328118139570814746192914705106621766698496664167242390333531987906915687715272870695472728819165324704343646008655528939653288622145066712128435077707897266182103867450446857732445426644688459134976424042321762621375159793704305496197691929820284199520582521312649939218032846679134643633936511831030253795651716372079188169330174831821643983102735041013304592362271980836090418024576138755342413617524835583773112823460829209337620677630090837733108929420719014736078980299090241001303247040549552021645475891301396550617890418801538494605751620214256628809485786995443276989283261462030317999266415757675790838310189756811567895230025609232528387998993976283298030614624668766569687337388872057143013606603216358601949079160060250764493752053837996918490026825431854422761435347999201713557890973064012608370153283297522579201400440234889562134511922743581515409237779043936928843359416108593398084275036771463378786773816564418862048455578464792825292538287411937410045289184247729195336579541461011302411056832176027077610113654801814040819564784304224429288096997590206720648464427764392501324449357477015178533792577885230166756330854101984541066366297545171870602507304609403066310983608200394846445297959293616646740179548250192005511068490535383638261010450656008009351841066093166150253977213741939692577192468981490426854978796343389352183116082496299593361223704211679704119354429265541568696412388542779414891376093976297403259361936347468780218918499543193231769815722765668159668235761905253633347227926497172820422325905769578650936292418879847933466168450612139399591079687923208731022789785991667780295875034329408743115627729762926123018957618050251295724590232276053665222751147735082924479959013587432755424961331313635609505481768008974964215076954351287694677204976024736063994920677685207980905364852599843727594876419666003069007819995518929642048073429218143680535039627177005913387978328997908524022758545070984548409202148103534880031244742101672833105020430075795898787611240757296366794815637376166972490137591154955406572490928679566534276214065829662640153538049912979249045706312667649941397771883044086985544767475965149207096883640163970962993648093890611627497993314539354840467101361166933729475297704258396481328463041904104633999869898207141825278852288166537327066262437031656199981934735224320724002618335249896236122634655751362848739061997392227685435974304457778800035957468804518581083325780457643487695430077062543519722474470513893919034784980166434981189605776153936118825497187553100899110857917859481652498050478848155306508929295467474475622289083580644524197219720547052082894651229653909969443831699490194212459531609548028116118221795249698519805897596434349187106576531084976408749645767406931490349640962202395816275719179215246248152861901262762418110984641469327724350266928041888908623274283895784606478435082555175657646212352344564992050761652836960843411136662237360131132663148607276484848570197050034116004963091896690692589874320874550894571165474740029052116718124911890444506862611426674116890790758690856366509199536298889300696149030135404072279133167996937002330869940381412885949040387229099332588916192263058193391026017145747328265792303128847024029768114192087331989256152812284536880369579106382665998371096642075742290308201173981870129065572033906056668632028012645497079884740528098778701033025469452428692537299950464617885062771554315146605659305844711564170375069815473021331997799763352917563346253196723126311287796289233223248313733933659549753132517437755937812349164486005215142578397067650650754016328660840846648191983004775996244058224114374246768417707490949633723108560396644342197703473262393162220913501242443121571918967594669491088738888000946717906896476679122910945485140984979167762230391329064324361199137058599378250145222932616412398862867451107862660489141240633591810240300986040414770709692727796810841675490490132060571104816594803973223602510674923194825248863222361497378501974173892882436138237791586400796202725327929812570865262557869994150206320939236088904807496687686505280843593150051304905941842636152994159561061128430826883861171608767575224268744567974984826065404907880231194882226877227521782811309193693633689348628853798317751046070240702695473326542693389551628077776708175430268823321836348856796306612166509524405273531110579804410434453926069363537223447813107091973952952480124120501124870664294860007796111203140279722963464335530265772406152475387655010923521846138390665541950684857251695640315521489294705322125516310449712006736435428507047496619743287017091760411373188494867098998190914744058932314304236143763981167683335779079296601389840964996288593838026920512798507740672556764119628260169952027216694481746152169117543024277926722531172371268267089050228192374431556582173249148677374266210306370337986825386319143424335345070724513157249616520341123763731437880098346956817221948771928360066381400608674918983910242186543596358944432887840585593475996379021536952620491063292397169592817804427657296203276851218159368152157822969491115560993027821354299695632748427748521886095218467995046565451684083280815432219437935177308501065479220455959128148442420393300650005656845437122349845952947869995479894042812937549833902735880757906937784674018100485700329322531556226667211506783670020101435391335581824800211510713218810962534324728085073576471369977266913816584402979534925062280901429563485393300264106565867236205868261810066041126823515369046860201974864317053021345062520279905159034748672017042146034084755803416331256659293035721217720860411246434467411426545495552591173271753943698243251153805061450323373149871021996516215620721606710579999351817016216588384249454186935308081139099361592986985464398238997911178557419571275459894879614841265355957327202259739578867502525622354507599297888906870353747584197046572703314043265931154123537344381134860752192702538538230897278070445673849292004725861865912857269077202250264896269825537247583993639518759753866905030135495483733898853782883519128046678836113704099967936408757681831757986392842606921277411619862398536015023805413124212983723971926543538800503953213901790264941246517217885752956634297145586569711210426914325915590811468354109441725827755115039807461855588727251080367155631344621106453728050465257113809428765744414151853312680094552515278373422142413071424605411994959457732164119641116245176783072338928449975329366758630960673591836280368795547674883633529908379684556288914282586231277790956579719054867827351263428872513630366949816094501610604112241659518790002735988658416189303160598169312233515923589258538754189330977832763838991109452933641130546262803951255727910195941077325314994867723023578640758755830265781091393662142159796152530143524411597190244618402024366580501472070878776568379712593223730416514285861229311130008621233004756529953308512191824503586752608449509867575171788516831798169388893319931150768216329192823959170269351298475261744540857776890896594742248070294973685051407608378721383235214927887492424359998491263106628004651997792097823582403319928009435287733660842559364421566148700966836518969427652409441449107437450239029249094704228846993691520411073075399024109018906445042131827998088717274233265919700523864007171546027469305999585184070822545335433914172756601352192152051121639724322645348867195169444511397977812641227816090289620146944911280773779854606922951902016319349136889001312671399097104075924028332324762494235657629758535098771954588130204617049117123253309844708514883214514100135364679861793162523670997478298014466361860909376317540551515051673683205175442650187276552808020379305887136746580000562917183984531636546461765762289155478781252385725932730650414889473643258526523644519121234403263717445251794523755394023212939405258199901544326121414846597452145569162947981823601029469456293733123856551981861242399097393299275909234971046423866462770737783312053118699476715167629164659180234013010583529283477081132671635140506101476823042675817269143206955843559034214057982504065659011207049213401726753233115096474974949611540365105565501696878629686872054570205816436760403195409119670432586742461181668041008574954751713658958940241562568284182176874790455656803293476428264274746468201353253324929964916620186625375419040370531742254715769004790747369251837285454524886546377929502688632546374903643696807759259213359361099566283947805694764242218701022249265554775020870354011080298123955944994295720146901081347575610473997567298382722973209144214763921784648892949159655621917393659789192001778286362122127209979069051145543854770419416296707696762125048782488316566573744311565303269339113819028776760489604704147454824542877633208820518066811419684228709778564993940344002026633287356047864014805688227233041347784320223399821909476392984776220514260251841541037585035151475118423528709797567787416549805288974790243172821545398509357105426851499527307412915156268143438290057803341497012161153426790193988674223713447147226507918342446694894780817293168960802524105854639820004103938501788229138602100134124344076029910841640584431816716324117180153949884130373972647714521566910169629390951099242213705966938985889792877048459816066382598818048978946375342984997710353707659623760850545643401549234682242734980166642655508775411163388072794089654448072417141529356373267574649013864687126085848147158097785670309895902686955334051460193772282171842577027038980431868631434183108841514890089686403792061163815800015215952401114868362423359078583581767309427229411336751443778860921256748951763733597938835580338474604861919011415808348952884258215411484446170891661637054609867606777074282016647202789854024559253509054044102192949469365676836441730949527183163191929502304832913055631212772236975926805707487844239658463707243185722535239191842137281919730973721408161968150939128602807629429467304335957527976518906322294216591973545983850189982215995964635037341860153730038329249993702722378825655685602897552693547550711384723593871336569413209331334626491779282204917486614712380768817493992668153107407157861070285625443646605690431970637047502335886034153887327522746510627876616413037648454541164565769730316754008846710418771843905173527468109353925982214584906562568015788064601621040509700274769752875349468450981280798844467730606928559432279495604130298562168111140333651560057705575037939956638123716017413029436897149952072174974202027046286030768495131967060406509789646162130724167155900092803534196798412890522473445831425012233052443857526922846844972690098757793157487950848551659600239207119160664489757794780960960498562516738796004617112101855024958657643796378374578748689397189217941385537551920390904514893903102519721162865515601704917283636756372355299152126824627229086479531955184970024468787161362577931963978743848539744113667862684869146391891003082391899515154443633846747580038772821636764985606744933150822975204973792916878237177244652434049436613793799557180652091121231224934676907273824846403342993086719415575338592952879148197474488565860446869845841964349661984394992948465802512008587742432557420690693278526669118072530745843602633021611730104394417155190762986851960835152625801200599561141709638836046808078564845885655524984115522770718341861372829317623837635273346474058158660672098539156005075849631247224883981223479068325864622208860434794326151590774666524070022762367465003054159682383089848293350827105360210728113908383910274280991510602495470883300714943113191794377478201780113032592334463589881128140765645194293835321630190000088291351137980688319132659996312718863593631360772676084387855494416633664919466375798603522548770613663956109084052693358458405296154844502885863886270644702787138531425658040019710477688690603943278114737512149083947562645712013433728205459929544104519066928702419933299586302787680646521992819304091107535749460073668190099101911726214655765148113105703907822605672921390391086685926127405997158264158334260808360175694930830505163990130458516903740342159500937748716304174379447798180235691108995159894502794992531719074627250222356491925225329428013400677090514801278061680818471666211391468343844791896220607427042503399167466041419519671571435253518542788433658317015371454363100116971713370714344510042529008237023051840437259854668459789260164751966971475554665124605111271269905303299549738585837672403742767405797059755680327002861786300275011986302031839468686812659374608804123448621314935383845099718747957581894428040809980864319873704277811153959399903027273023312296184972528360797282522072407788900475375332588897560432784971223140465518057955154436711980836004057655648661611875231397126560595114629378144353781670063936913519923470784159687106699558988823954348641876490046560892581397876926899441109284759157005186913801235140654511409687823053785923877943445877653846906242252810793110990548600504049016548395634662690884771876515587102464114361215315956173868483058865020750781543362373032866948802986223816928608893895361790991408133096809787883203882797965438066564602790965563337110060739782890174690981829756598126924754504368684256722369626694125711049228572672636510038090622396946530070075409653548795032315781178965452810384743424573529146218700302278417034889652275139606772099407316680652667171511787443210921062577869160914497762862366814428133523080273850360174891199570686554398409016118662420571711847901594216374738611875313849088766620788181946055124593898540196558942927707337459975172021531619253125772540106105691341297191668498026387279392330956805559785533178284772932869154092782027272022847496105517411748543749361627224264411627851423504677034785421937268950279460194082243948218635590140429898947256836709751440335452555377403259058075268828826129471216727957519029201139735860450291486317862050234784512879226266503193695785396417385741202181638779288002925914268231903764358710759800809054268269672953687706584928280552086037191338263007536287773929615532773082842468500947346450404538434363346646945775799689632766421741232925011690064430864328665597980403915540381220020286689415995034109651314878377928099493239016222059889378462652390539663334455670396309591073072113095515484102411483368675293723827672312489467958361673464180639264934109119133987534865578020909983506631361076123211982326326036084556518620225294116255434844088417901400430285205858583611302242404599802223540929165834587489140538152928792227684984874553435230520956673138867385769721563095545622496104260204617222644212703846828415085427090096476446146331027965725350468613508951562786921033423263004604652848895685998083073331699522659946681889515510524208725279135519152903422718454671376072992688259941683574649447031943369657419758454514743047949964636241409819761820231040124822627081403083911366903968351218540568356257471500676781604174725053117382496962191298720354886721658259798423921714912619664200180360906604861831451207443504974080163042395553875048575158384975797267130377378211233992258649320766466065182865642879298989843695512265030373555368544298519107699095000728786030554812038872179831123765637987955222558089471878574476135621508663342906325323496505876682253496968461035233006371569351264921760455482035853255370877699529404774350890733467987599225373427205728662305221820638900161656715222187619551228301881581463387777789627749420665894585663488605504317990034403237884567595643709416347369147204581820601908410269175784181987560774155272400647379960848917884768486384341839742802668085687741715160456512144938803695638468276707644461821585193680985306391070352398678401013296535091235022891565708225439423893903980244080791328265990280629707821259612158004598999883750471246506703174981873068982014015101570029531653420516902017610846960445528557201957654961707202266933380689973679509317670246731169661837242142942214472495108605060406016287932968071812463406703016766283609147156670514491710631293853212589313920150613089831438786474436899052993245644570768728324396675777494868818189719065103264168745384841268525885012020761638531257957164447969554503305761401575353720753972251681972896325920334378814779791359806544378360505404508455226524751149295463804248229933265896430887432494374761411720430757676937555251615036844290404747555531997249311146180636136388163962357687027579924738514302209913143658993857453377775860685390320295353796108714096680914201452311958934503203174694219541967645627870592539307543351929984283376170856409472292866203202428016889680878137984707913396946687179573967560816935153962508261189557520117459128108202766216895533864696724948852902336641602118813792756505799797603112011077565450752485035093000552709217513513640763185051091809013744072538458426768247573744225241138851695085720449307134902262081728461929852618505565908234420985707507491677262376572900780954931708675569927335098645414311394990770076267213093630647430136544644099795803857855686226803757426173951347465967999341591751318173404910186253330203296823882538620444151705918155590407250071253197445007589915802734954722074178062667116736594524455480794213845428844555085875747261489317803176615861899941273414221969262034020323366305477957945151596017328504780974723483202945716664892965850930009319725625252386830670774838393859274208411448811960658131178296533375198707360310196057021674481444354611907624392209869123053622930782641419452800736217141675252167395580439023544164037885862704086549107739034114759850343203069985576971965273451955512596277802934757417322992173707285854344072886760054171352712525128499160269885886852809651650463499893680351881671019333205813736933877482227239846033918533161906688789882141131719233164420416019585931890383589813506543929976131433893073335183070607342735215080704959930931216480516256606479101173164258156502315211174981540275627478017296335044281723168520379637637470444470355089166425392421354308663623381164094749689781205815820423324895421715112637181422923766967725229591562464357627396594965578399229623521842668363486793230437623176999929663574028199127181117574867508008446997062418608714744199778088253058024262230438816865313157507252206989573992948210527091940421717008815321384368595784473229076078878729308466464603374967711167288953573321551617608205446557273360112162498429513899690689629439435906480726122190844381614324091501641996542868006576050821482242106746737533903614645900627852231369595357158584239405835996289319783770689422466669789141951907021505784689121955181178092645812839782150698186767418443528389777138538854315005933120239559384775528033181060019051238669431155181008359752670887379486392961459091447373306648529979052295939946046586242001289746965429191231619291604100052018652997845210480494406177087545671874452841958240798423444776743532441608680679884955060620411541150695661268126366161454597279029554701497331602491602130822561884740928674458986306068933868101812557151338987496155155012460138740391875956412607421366498899582776405007356901319581255810372694026620380902036027763232396598700311200503935863887488793298427855390892561512947632335526864731565112689078394729387400240717099742077749410890480665375953892436226967187299651183434061120095830624443977224513837757772913331607443381158871441608118688576156455035777063494299066097088325995719700897462418712941976536968525099875566492982225112530158015502534294311715935515789263929291725671757661093949792881709895203761270096551279311057528909088813809154874352097349605219457033980325020910419147927002513794419121077811475354963905470805852927549253910232523346778816866653828549819749354543965304549626360437838756278541154965543966923924351129739405469729303767634339226290935373056472076223031729802636418102973628908646460939582587001035186121692109779784463736376352826985927148799888352671375169947689235815922011982734645187079319059055822435839602211097565853357165469769127936520188554801919411814546082549096786356053159099389899430712267682639287621479677456352429579712599135424674809543939256627915856313807725121351401908358712089324435995214862537344122474384957523913537250586236136201696616477517635344118171202551165944017737777149432202220425707953164789974513521606615259474651752638123131129604749355662501529899297089583307050152526711564374963019047975876720357133511724067582425791057870987750137414152125085254231327277873610005127820911020786660876124871784446861360996754596000381568326669132309146983460180274741112457832828510425756753895462539424255859202867763595531999794242185944221239507587978601291073595423813416221994427976945208046941739476154395551643530929596719669458941792921474783684184217372890757783147467978553064637669904625774145769415597337070582546361214232521145303124928073088621501942245638171865918081832869736065900821650333250652042544976360394575818646107984824243558852381795603387083519853320142670280446974887183536466719354719442778932886879358938160570488797440195966363829450867629680529828045200570847501554465552714558102176147002007618694653642070745768973896266845892905225913590309534006723952021357213549312008160837739672482022151966049049709937576667333891094900024419431011594321618777873573882639559612940617097177132530389726741269693812571953011265571212679981290027281420502006072051530091638977084219146088399313683306902248139516270218433603116279083892904163223751260646558072715691034361930714603142064309365392223010354212814876860944241713099029411691286255681288401426528287228258194488520430397496882126887865829842225113259622208233221318480122041969884069716226197997670100595641567170217566626268568748382743729132257468731654487391485010987711360000733737963994064629770431860128962894530963721658435497679710550342423223763137507501817017620970351387348658939206900768197372039482197963838130798414369892202638917378504175817936052118630387094197213780069463275422081573607316464070592891950746290523816115221207671984694378505119392861963341626361773414240991666641240107975364352147435891687016497880517633178153498413198368628424570277107280941266004213151309853758757648003016691642967954840306363765930770400428384072412702024159951763914160594667089876794826725068853564388294620898023432850993557820496604360029242821995831355143012602830226169857993779185956237905389982595380344032145754279085242132831263911585364359027501847245486403993913931989093883259930359391415197631825209198322730482827750146632100687450875021114994933000062161933274110301908838307759083845928816273208131959828625874206266212609397891698760196851977387859051614258268619937672050356117177145630104382248216681118222846722830193588269318986634135251537535936484829227974161393934159000501901055240727993165291166842524068007884138738890182078065894678426460610881193409658792341720282077241091063185908543555649453568510218605564727437268463523269918492867609192752685629841144381429397422945387117645998580613698646543313657724417633627966329612340850158390320465080931262296206553176277157106254834838552839051622250617371373470200053236110734106064496890095493689323507674489418555921390342178499811244388618002884663673817787155255719245954926847944043045795833475380612354692648474255101989474555129345365941568678078825220552286563293204782985817112598055646804558668530964326490774433917479581299250074618171643618933478609253514721540133893897063965299358300458584077732011525056668660059229559337663934805667563883883608102017573622278594913232643903429711716944132290590096332725337164596847672769925747273320702811966237280084911802876632401216367825669199514581362504104306662772746770308671774935411412799533254479136193630770925847203671925346776674666141136721095894170353918306087734512871165884133028371248584131923930437674822517538773179653908305236848934810814987559435835750571510300136229438009994551594592832349359623366256480220489267944062641894264581905912933335116363981255876877608146922430197401987063472119162086295108144628850980693342870423707758216229272016719788338823210677420848914900199503158815868350636245379614851391601362199571002555319747664625964095647898158856228332817093098898245024562051804784016312768880952406878815530731504691570169315025419653667732873117176685997707489590904857766147876023736573051010116917039496574038929763785130813687280451058113165344646396685129529891452808147649933919883057828026595624587130092003226125878874435594219339352917536936947296564001556944387261502830142217050191446535622989590655249030276735535540282607559666534739714639400973755431389106957848747721837122888182511414236563590555046909155511022214654531966679784144588631178234965500459961883473088432684822905730345947165767633501797257012662781553008597879421550024801655296541372041002370216427197008780539738640554925116482395571317437897305436903216276153608263318989543293413025456073141753313621262005748116494797968729386898357823887100739198624826730976902061223814495678299388934006731328099633250569760654552338554511171963984967650524221455968862569816927091087546555776887611601840879951502252630126759584794702969670254121861032363794528704398236553727275752382943004402009837634124115437013140760005228236937160267801737954013015435613086864486790120855638739072169571213922963800022398629426517737079324910412804915150915958302717402674166111300138919083951048421525494003238387029936990956705267267103960908028846450350130149942985736272053287482223231326538203206376804639993971804913645076855095060575306825759506027248455589820833484844619356466407134364923928735783684681213811574243968868627641651460310944395239933523044121494448184126686917751633246317619807871899552982197413423050524044404256233117866250794947635257958532929112431371195839445862197016968691869156525737256273194296092514396524888787525596714196766933593677290092289081687697503373510434092025177427012502691472071259779388617723555953066448624568353045789661545271708907159031903023383412247368775945940133246262505910171783716750393919895237388309085209819724901708191735212647178986402350755327896548761366409034152773114530209031919568631363039439447644219556107501564870101893083426126295524472093953384448621197653740425166671754665371026838484939279933104836303822249826089910221149249257262045048253882631221154443356031950880302417510334612877144784014184353853681066557445649066952899453053309940515943335036253313039350330575290134030966065067686857925993716851642978560279195243530192667719567271558901354495740697548953767751420831190148336168071207750195250995839690569562084696925472317789107109061636102054530683355630998295323047901297244432720066182776931605288997315223078729958003355131454623256464746424615163420693843581233711840969113176699485673921069392561005500079601772154688768660808288810311016780231484855148541509846140022571924645251031119702410301325018424934217772410445650487212129841238984588864189695372860345014873865957175299805078225107843077629130168244826536493533140433049608039703243245397947802670978566782616023381139849978613953997871526114816715408003330713638597504495556432797108021227348977863092105025465658492889507336039540309280969185862056756241886659447656411436159778578537202872002137804426630523963450343996000762137705880627869431081298608834213843604417107899023409064060896538782770950269648021309089066489805643041429119386684680757699203062082944225956407800628482464384249954348201002587984833467381963586605735574152348082329882494433212007163462509832984065521715759604717201337857831900884950198979179849171814429784021656900498475117228649981213003695488459998840047881901571681581703850124717608338932170756443466725554189585513032491086957724862516565084062506288209201064666374437819494550728807677958255728549327272984658217199856069544418049512340489681190773350281495200246624236087790869066484471733360603776347902280185365479034291647847157516238886632520963475105691530789525218629667096827502738143624172714632790565552046037110163209328145370491988764776032838766006697061303135467465355732150957432605434612552755663729808089907277799412498932795747261718754701485349020134553129551583585712156642284035522104227242730598637823581262010262354431817277160895463713932453263145789392818707089997716801763947390177933944837056241410598066136405895701457515985852156597336430593363702184677191137162527012202253377311386354898164333893732813434615385938009372014908096248085539021086769540000778323452570683698123875252724353243211136692500392143980897086260652761276303115141057423315267762922560071510841663327110906772741110767411208195883544379452449972084453338941228609136281023082459038516058006430965814071589780084410459454948276007265500319414321766500470443901979921655869865041138755078413534253471589541536232429649798294975460803942659287452626178437428896166342418254830319253988942437313339533941237168152951070502547692656062661904953394220485321262163833340702803505431924126863455771237092071945976216906511465023208176714760606510153723280005418406758054811967801501118030369473472511903039736304563435756028670770049519827399133464339270523453891428836144356021348515621436772063815776908801567022776845300909271891945037796686455438593979257491852162508018030221614733703544332616202177203519395992403717502555366303365166771262795286814627061217649477042154361585375927114096857053750948840604313180694305380861213898763994218110889493243424624855336809615398558085756193434022631532720125102688766465748139808636978503918897171564588509458209978277187273764229140589726320545147669121373034853785827341354089736144021046667194281755821350832871306157119924660883270417668994954539391074132152718595501546761700501871705899770641832559632006507428288524699349839077760821836928704761091265488575687054373783033776097121488062673908687064673871529376952140287861049189221273625770317252276556718186730037101597077737552855741192082142016983311181922362835062475084700669161679470393299419804040415050643278576604036087259127922250001813094149489065801617799639951429929839455634780079145181907397975722764365110046310224594908235137398168096138370508900418011440042790627873139285342760545311546724107676646714208932689180380797830750883548194779650315939736928705668655539329426237761762423666705033701601246766966824327387632516225109254375584377729762201621649688192362178173713715959594259062046405014863822767713392690720896232018779579034852892929709482793265066406051064260449746212864930031720897300694506164868545620726086898225185103521967650027856849070036993797716115547314618728808414588652763950148375335530288046002996924269110995284636033448188798582068176472531584970516027012356013283570857240425953811909998227264031603763934181785305775850980372451228746575151624420657613183866375811132321622682062926733819150195195627119314060566076693498018043141133563411273579659313419330996106591313106496387957230211088335368502897107793212693779860926009445312644913854206521623744956286094451027130161790261458581979340852548180475200461795852246534771165552315319096143910954917867210298746616465876172377582974577222542735125291125980344022188050291538047820993799169358776444990119399055429825329688943770580035548942911105452318534775885588013789616105253728999971841481797211797556312118522964160796690068847746113870728737970813615434032645677578795330586970578985122088762667694247907405453956049590003522240630651874451800218886318313691963449656311682978847857790555828212712618244280229604609082276773590832486860829634927786971194871608606651971822935376623447044433809995403736704515834696449061178540236270150046562822919563080642445093528811722647151787513857998977075790186279282105475620266205164752103131266356506635273813268903284797552779487958142054010873918745109520539415183539760489043386068239989845281177777613849157312607419180719702334685024945469355650266620783974108617918231192632014941228738715275493149319375953049250418793347554799504496027087908144431388188342964914117293708153953708815147658656576588650404255441084436134421320501941944647293081162190121857948144234458455649918911887439821985964227608176658760720895207502075323826738313543295717362200236616212053141048738361194884798956895265359937897465267772150794660070779311690850089522946437110605268046524345916650589357930020113332555108391080249638397762926632813187171549707852778782973111126244502355109688156885030325343698877304070104064094379674182523901236388001079186194504942499458782615569504941520669087049065530519716436242537098940113697729422014377414455601823624454270338537052889600248766184580318290881002736236757828423217294481738431075407895018061370956090018345467552820199573487954352737735343245617562337237711227886662627371635820629335910631751273766404678848505611414329091591225605037180831294212992645020127198020342069716669741000738118989862048389494444981976424563533931968384743260509231128279184745375865325401738948287417154592193580353145050542675089994625825062313479969974662294131008832017426415277778915670046646952523058134526735501624924372846765130518263904898510004601756513002035317422448345566019126373388169960967712548442308046135222571355392297367017650082765456600265962533776436903891648687089523634702638628975213423699573180185232894623739396905650724475555823017635394713509482525590034989976129436543135109718182116313340190693000093164358261898763379162269185024129307270132419716497345359301037564671828958595065951083035341189252303120590590843613439980060670305733800478671262332400213429583150246099277643979312558479676327717612831771436474790494126527807260069909992612655050404207923116938092693947033320773593916080305326895052174191567803447359267281981367510153070700801473830791284615613795825351937539932419317386267897665634866447733523188038773074541170314805568778006161398506378223219256739057461490452448605489905527066722340289437470391184757594350535721295101176728282645184165467383408026826365533436867583467554891241494842517540802003769123618865097932433075525126349577608724300611945676137233205245471432151870949499860893002759681920910120117053400082532471095649907257469562623860380266708379938252207946789566444633862710256640716748511852555803986716740810651475376874282677925004595453462461568033530552799178518631387976658872839189392243392260026720722976512712030994125137211593265724508783752646317098408790682554886643314516363913666855868616365247007951148574699691654741994283367430270957525780262692356519108200214740885451865572220575566100149205460670152837129502209847954132814045138285513894059138259838315366261324923778301647870390554092312556003924961656509648538431849982251933451992405537651465858110905021145902769283030822081634019869680269809967236287715981899768635331278108493405000464989398468681383011413427562894894967578952094772495880969594593059593327136448457114658495558841419056303354595157249054343741735424280082323007675966967869641781860468812121956819038536921636651706341731544007390202255767107636428067200755389116897092543568871751645075235666991264529974488871036226197055260238467921656169843588347803753002726659646816921945134233564668063386732906812601534686938036383751992840114855220859426862590710374026766123955609151407753865247991624244540814726237741975877435243675324933777593254393811565201302889338660012520986296431297457429493655973669498069473087642980621138001372914844538786478270168524991633804589928054116042713776206637104244236117046434258588192390436870324401897778038790332881572847265347934208853243026605173556933201076814610873898239963823763785009619792371056231328078201437136221062950436440219225602017596550915558894756701462834957741111139986987202607055589135444664153764567294243815937195668394681429056836720154303319750945458375938389816577514902557414753031020470903882616259044575006585869136425863339245952813435165546957914856180646027685020110919698521512341276059481947306192051484002405319744651318120874251232021714600817995653252907308539295816927540526214414364325870725342170192910076804341828180884258184583088978803576787936512219968909882276930224000774414488262386991312493829443930574674935759070433036686032368225189824307071331225173066623432181103574957514089341643968821089991143926377906068411724862683363159118438531402195923373276339540375437786422594924338113355442985143076962101893986726697164829002634212915318028750222776462205551445706898712522933920067580639032693130594207579039030741960475624286777803644699990306618216362532893607770756547954326113159673753894666426377676393689456610790210652523795800445991522616903826860257416157864833626935155550882258870577621256836827604074138488337558239996737825475562548766789677897569279395979347080139169041084143010081810817935861836325758494380606749753670367527975280568832072322562451668359823822983575963975248664321607584431953179552136955677342419601207745971322294065759251739966877554598964143776153964913794177536523318931707786741719860794631548250079540663007866867354572446579161910277423014259548722817195031943597627530910333340440879896992658278794674680889082123738496508204186464729477593235112119467975046385577571061905728214384303118985565040096526407361338026282508756307343067558223736597521088019001370341655549619767328981258585511184345255627741107518516157784993204012335500770705468091404273240181984629732150305584536344599045953620193234466269281323020506111572278426619487477975112447848295191386679734702429007143148249423019664335076904477557264721323974725531512538350043928212463132539156734684517829232733822251952301597089283001572957672940334505912487499140850865142872369743603611926543985506026358018664137783304523967363308338618486658180684322551959283167343289738290471909665330096425766847188218836455503611495788720946345364050717614148383039820819799369590410779948013242331005549904804456102332509502832450487623826983707195466175182275012050348313023959880182380562493469789212986042012122692465830286957053401020656227137920949352711115833838702642171526514946851597071543025946365681520101781004009264910921100982447109998630754251297428451751534376202384531121622763912746872570660608531607229373544264469233714676272606487012059647922631537794805396217171333650537397147601838454001729689770082831502880942263255550706657611447227947705256669331657630661850235787775281541188581604375962016418372171907452655588509000241828009226607132376513952248396284348642817603345871002997446411536914485766234338777168884894128880945340014106815957643189557764044900613767857806392115644022731434603748861931252721022780191815551655741945241252434342684545356746063382495329143129683790829267115960461884075081573359185703693807011042234394843975043761099615248392384116030104669945757578246509462289299754185664144713526779374375792202549276547192262799332963494411966141300190748562545052713329329169716489867281157254835201020879899123241245680202468342440695104383994624839130547486967479202220715745643732938310407171062620684291891845017155760306695156261685175508242392825561201443973458382347076467055729357321101996418451481190240225920534627928676868128101120813246433991538870566994946113542673970184070581144884419808437903884854562445326919807779666850523258711647669815871166917424845761857913208934733819919194701270693195082043053234051465789385225165904896227629231774894194395982859238640704742803248520875541005417215089468482429531610387374448636388615821892229210668194263579764801778825102103467596749897261993197309518372534077367649928904070332089856664252328553902849243672661862721618208689103156491032772726562901807336330864197800011098772399146306146147392302356258842242886978098398712077009355308209412400503945193839802603810941453076188835634303121631523997231434646205083615533638179017495758703040802754230851162744304672267454267645494837145308787790727828606933707699356278903380354221561362832780916391859683623365447282588449258791034291059580918706783996017365085322979305486306529940431938619990851148883528737680502395732133883901021901597523414293833303154131384317283292568180873977099888239502033311405052506208960415642904608208612545666953257492015391397099038294133783045047461226188452231379231232738816307272374424541403981546300593514528068861523821178963021885734847277250979017853752753194778920675083036094831566737340508269332319952964890736543304124598237422972704817069527753319157129636010441523390049474854079736223773476270664242878636224530218392068529627134522877408507465568222929743833479012605009234124058046757312872254965649957155382494975323076004929796356217656782359139571093796047293070481803455247073929096057006011812108299517014478018236448045093713281293111862830201917520124301351831451367592160467475477886685457987030807940303963264583283795840005551266686882634639510950826132236396307700787430238883266333747210485607552076792379290077107399861659738044716349818497103574589171217472166879650804012622058111182837566574258801032814247162249975396540049911373645730150675020036412344902190839491551504574235523561735744971589364914219957123394560244346432644726823356140134822009469350516052523434787536749653833956483622247856959217723197834288123849064848573909634262992776188330883938783492725444006541626005519853653945070880757713388041340126907258199270981835657185734060500611660098196482506341223859573815125037577894342463285228371795302342406998105214319116407307019230440861252091181531721458985276649373184143097691910764541024418968260889830688620432105340348161551807025988350689139917835755839280485623304304825677656593036294544609646187925643396307613752665447755561896537363777429124414788650411060987573678951126586001279023525438552987755746390926776894118387392576746424528779942392349528481227331682796460119375929810478416747955321352736273548801683418915320288558564595814067397953562484119883675543124208184903241275969155154731923509189131612493047047462041448623911565175731945371871403276511335544671423665430302347437334073204623220395700941333403131229638856209668311228020992008959490739330622004015826267494069758996114097389445600059398818505510023255117112075190975657062395224133466031907250628334972581239265432747476818615281619445442462232958109011551967380530146949608120695230230962784965892371583398136297611466431658267279140406952417303605988880217222371621389971533996836331557916075865879743264153090255389749907280948888782112484864656308038348449872459780233107641285534931445566015611492163366126580919068750336170883886754290386351020653155473907773065097190596483197905464094632994916641639097281834414620392521123405210904326004728823635819874097306424810216618135710187428790453003574545357192467003089083390945203833426633658351489613805763628738037422803497172153853193109846435134424765255009693635397236813592156836052962523202280570820336295844189745346928163928807621058158301924233347980495831975334081941477380748913160665747541757794816276225268994210197516262050101809265984448253423887649189325556965465894851137309907568576741909863774095301054896319018929827869378557969906164314933853450800070225883453891884531292019929719633171973933209466612911261320321106960314156774502824790241514266613651435646026384827325247486506098050735989595953666832673296963838232885064626389880683143343070129694339651940736542062429243430010659984353030709421788837295527645537552104093023570971158734021324187438423345089518000341066858568582125250961521745527156696173900586377498814542949174223108870652807047689587588693617347456545871635311350309705048062762805453145813599803204743032981997746142224956728487839583300317015701471576620551467119312817328845740818301435075385654559196494314312179763891549726345183600529992814310383919346740184239192302153677793083924897980178690453672724191952365776500348974175897141826491110527679548303934554648076061286007038003175683146994428538580647405136099730546977325343334434635097637903291576436473298918402662299055874243123801245694891762360013189194527588769590937531268814439177888658692008439038827775383146074678663137459432559236739733421906482169973146125696664257231609949630941610931768914886269874271090453442879509010854777138240816677458929889001536720289518276718262777776408236328762051888553274116587815813443114667332879865829147352142087496337237380909327160899771400954443172472607454209050398789795578493800368547176497746200441929559201420501065230454407044876553221059271102574210266775651395272418821868758062994840116691565001050582196493408069344784234969460642330748973323968099858459782192189010816162104701732876155399110129266923024533692318093560153242390676086121610128779929974095969797745240495147041189310376857614166972102550491091670455856955852411678703081662245774899207445715874167074778060249568213726018246362241827768838085134855037961378900045122828206186066574901911077124131663730036372191585910249110980635693313547949416516466204316166320114611511719829497120956527628947823831280415168560285637684944723703491321325199385905005559534913972091042829757851349206944425368503624526940116737435842769906257083781019683657482165429711136133509303506358270718123857723279074654231957814339717697005165435622462790797551583600652659489157889174406355853193084342523426899010409803791165060351137085248322020476313722614009578031759776573743063404061335958208603389063864471425305335459407379840201791710861369559170258166823336569076826149375169885599669918538952152153179430088029238907967485452695354546475583354328365306168401453014671056770916874637784499847671719567355967587381667493198747567540577488657858759285578394202846858644963542702415706479828309309335815975807643834989727896330167215509257386994948193476244285496960309167894441567365785866744459415466595322101176460584268078790033030066671193501724439244748742192252061815127596510196073434190142394534979013497213810428404587368741998380299863129923940787994411620037837076076913187922200392379907419944001319755561916469778134148545277777613411852913014963231944500731183952570747426209587330849327738620229798730646290891150797224813629157264895293085939489913822921399488690109309657303669866901769448749890181624926075746777339835114046339605856643493915522234429354568794682174192042132310608284995329003591523985873352240794150850392382252932527392485799776494257899862672560824968354639301908285971982596712565734846945728007774508289141981231159259275084146305099455237496517917149554839520163766200825591425722268822574145663715356803141680552440582837314145530463735623489703943738314251663142165555260849876527320309389773582540528010194695826384279010726080699405501057580284420710665938550113480897687923440909092522302948485910355553920666013619204285187566664489426600123240840529114077587015713724415662606642172565291415807875372810488365718986791344645635924818427576302797182526942641159809323177846485298043887400176533578001984236631171783123711265534647749103851514664142859787563669022987803462204630468793117883267459982655394438983702738001669334622067654132215271300057169540961899532565706426326808749635437999021529101000585703561583086958830781808134647830186462800202119193545686116377635185245773931612370005002901880046637225340466744951159804656550398315742094625097894712321528355932899657352836602502568985195953916384391769750005578750981879142081169780398645060580033984495294396496740893825884386450072162571968545422206778861510688523423094941820678714536408909894920532108990989222901037729258553806469697767084398598045829591419434345422534011248613489970755208214927777781397494304936579362349376778356723735040824343821657532062534598686421499326395505207446688423136821857740627310324388149963421045731227927748467033095943696952093567128147870476462305008048116236260616140349906207393111150636882065566644733582909471691312163835862716362548562006134161013137266276012449481854172885025401442631792827793282700560335323625999481003968346746505106382226396093864193102849058423014649679786382527662349366261520047956839792814543148439281947818228954629219671223518605947684811444194507379383073533163428326726698107554204616046320259759543977479585290943462428475248753193558758518281474516203134779024520323622302820589248469822371845157104391199566005797969828946905490457393845035688403545389657823654130115684937313230218408116350281089145230486642693759593759562160394540809107359678643255564405752161352894351970670041004035317433767686374878534657371289969732533558393947514461229866966491546882256448360040173312897423399517436327872244991038037175536764998290574802993594150162870069527567480459481379623179273090565826525254008690212546759953414067013287624939094288329784585327662756448664292910516484690335628357463068355307859634332942704734663238597986963385871682204680334264520404042195094695795094266206774484327163582237544663619209603167176788748126279814065969368111048471179757532117394533008774307959509098331927237973834879843396543698986480279315735544628907772439998718400485193640845103301339734165431698412154190606472404222593388680508169384829636984261334490574944261559443583388832804594805306085924804510150674778353604706618451835844867296682234063951008887107760743027614471647384887029298717128805093463025105763907667099054863827825482228931446575707938439248573677058906619017602003292908055216593129971165789294103164487901732038353253434682563223416947184090694474704502237873116998439161344987464963406074890106444399569408589332071562344133311412750905906828336719035355512497451475280696826180572703101761525407123519930802973312935563706370761593864746460312663361268134493658159198242939143815590503929602594312027220412335070574996243495135836510206635142791367108804867777438673307388377053179797337033139601400581573904091828546129252150565265545055640034182650254248384300484749843303211345612576646257609815803950223752634656161816997914490991818732619236239201937439720229892547354192236651379242536635952448850239903022121756551447701651297051172022451149334954159033708372482500035408867613730449146773491894016173256163580686498609980682578640396335832773561426276997187644310496677566748375398181949556438169593590684257399425419669815012515183489281927358234653140739596620146027981866628542551344775085172914032576611419590053358409362323846521414952714937336803410599642358814802173820815849264834984637937550640526382071723706453910046835967385339349575925867671712072742657345230420092516055138172583454093256234621400615893317162497052561533062377023100448890171842697131267647904287592458771007101456095192372657326612070157454354244443683193743921879110661692418203106716434505152373466040302650951686926017056622177347960957294697128264773738368659334889610711995203083290100956808531618463747996281658957905027593023033492580073791970641747806224620883557861401677946086541880947788250866372690523031584102274496623680449113689013410029764618021795202563494560318606277586593497531143900286812300228035810193217793383147779348921372538085365880002763702473988842911345430284941147816839892040847365477152603906238253663186036103429919784257590478103012535429902196708388021798519590296999363812355423328157855352953286886774620574861573930480546373402874241084743911151616179117015280329259252234758056833991816883037213247363736283001375608044250326994553413546473468498080531312989923349947624555193700615526918116453752810842081896872594422874334548063431985667193839920368008333681626514997656579026112733949631281479284289562411439859859723974109842683869956721414068192903223190985228120391452341553441915766688773537326033921390846376734007252189595499962042849146331421064993209272521904941396525976305227822285480674214842607794480504041001908914635718313783423163803904430672442678233621077870283372176580910334315776533374341801363392815045984852600342207654593840877770884632343986029371263752426975721565887336021183806709549668386339338052751966654280400608107732100130662178157836726237827533115397740390584158946573835911946535888011734985639355107613061209458131480277944399578990763976035328071379840477174376043279085678917482678760006348243455710260887769658363294446424332693024344542310444471545814619539067948098841955205661850244614013683570931638119903224684519725591980717182659781720183997922578968164092745175992808342277302831555182772855474971277905918597713801574420673547358813534135305066611620304696478528177738175090630921245091924916725984747698406458818734919075989123387244499078539488631541236911604874352749019100339132628373040682029687456039559766363494406914911657139864415717869849316557363303354094770182808441860512162879633196534355868421843735844766296084766010058211047107305875094059206449877659637966729571310940351186647823797367441503790359907328311925737212544301803024258565348147966500708276669425685128511141185432095668604366476816332983462784535379471414703805297893294469204326965706466169552273490278761623570319013059036094264223282009878437528922233106021985406567252954736325541471224520298128025696552752720860521485361786219706625856048195247086243131918400381166519053861761674366776542178080276571853363176136464230323504965142783667931200346134746996764302955032476789913042056487916592247397072591500492047192485537635967534052490486528848005030191850174021931068489836522879741353875120581654173702743145824287002546622221684243401368911064884790794908920633600969695095089193306108098513705012803698500952615067228402230043743869061530852968808583754134473844005317047607250797382413546209883015358799582297298463935260141238516325605777392497760428390020955804298609560000711555611218601987370243401164523486726122011233311565687833360309240922678757108921555646531782756227405315680318537587788738038556204310800454649614633170381141451999594662834315228414603792293998841113634477069850018013465889487769385196092794547937773780118931478745123359061560653043848869206196281899942583525077514277878681775899959024023750379904386443719154456303871765841922248614777419311597360983809078859325423438561767095095316580302952319059989531464678712959838055604710839075516412602628571745410781924090246042139865485146087372550423404115520266325252460691725220618283909635218289595566774709833174753226020275597053260494839847274452880318013744159695133592975431919076409570071676592752733210799139465741645991734340447631436892889641053304032136716563853571959020906776285900086024739252929902180771887970685083643340417935020634927783484002886775804207902909910918166086289019518728055925603244794613220238001242116393762245072800243027861443527141780950180248526209822265976508253488221243739949130598879775752401394640403787122624338367432438998417160461492037915638978129314596613725165202939386187632019079859305292786215226014640114985070137615280945092397047016061486283648446041331069383132493810298031956637201769464599019705961432801243351990801507878056468046074302714515070095135918733919920893628201999569753010937074334910015363611822410591408713154871248613258153384807856199053278810474002581256377597333273920371399558847621920759623113925204233396532940384242462311031470768454763287523246979062576109019140211710967772846038433683686433435013016192870642668768010292421696136421133788365376410178866712477661006842581301331452338736806323267538485761700687496230623628892041100563143062167393866839628243550755273571446404746381224646619417934077639723525537989803095099832802521043749333504827038925431761423182740468210883108919612546730563438828720260344066571806791847575275319380977379755017055469843270659277388226853335123527269929697381405138785847389951562546244069557857155011755160774832482114319697637265705782856464714772957856023117050927598532680608055323860352931055281566854078337507584184068358518865394034698296507847612163766076030071075939945941612514902866158898400429221007099547464438251635809498274351482431882656658449840481105583164420521145469646268297567094653123786031415135286455558078507094131713131638446870378989870498783093722572091206517036986973929777108097501816702254990345095788058025774356382055418365861142167131840679440659291593175037931606291646027890978395322307163936818312196840341433540987207897297463523366105867200859405821821177168508189319978711302142784013532012546943888877399056471468837246764954699059048766013680985413166965448456316794552774353778052908095867323570224203942361378619976189554448970237734992585712922462891835242868210677099493913092812890678844823714420339791343578303850765874751256904355982482195970715259215118909189435970808642701027749967696078235074127553455591937369271379891032612224730574012565324979489317724674454601163098668059527014351811825598029005231815589660454666471903406938953445531573533183948821472147097181169352345449425772342779223687774945192957372666811064685904336720875004872856171489639404599293513023512382510548077447267218410601892444157292954153135099931987649236055256426106839602516567350793326586286738548356723904622418241493699746697944849290299043578413263649728787950178526569960007329356816770918672053647460530351338955271308229418683763353414189759851381039370285926777364375317802776226653330897991427473710622534720544190881560993480703801645547881752089005258016395127707139275080772213193986416239870011508809881472281989852278985520968346182557956673729999369737425801431906524461012659695124130593326316480066438147512892385263077150381170308146178910445275240718773470381155571578164365781668779024990524368644574656993658743030839413828177338303131811324680759940064166136613246779392296535439471083580750686686707371874744833577665445628108014237820865246714238787814668274496727952079998968776605200098820775599966787459861163550722360150288484668386712089227046862859733338371756446865027339863525540710188723640272496866503606194166594550138952935843459904409690535276949021286474020403321369156866711573848289211651369034296914585865319274043969794028612556456382112743207939342424926114309062382409636003000595347066854038323028833751961247407375498938333454541267901969503000260242512986926800744597741257315596165336234034108123396365678247854719759763385277279282421906764818443736361207271004687517523035873031958322030727771886555059687460793167018676385345706009017473022642995732078916816073172166047734358522226363043172697162078642837706593284614817764989324236459528801954878856967994170698927762632411282507539868860821636943838956830834686559857558190984824095509729363629179788193453146159969125241597334464869367110758870065930046590321233000726203482864836235391623675282223802602071520965465540526885646479236395449891054917327986332464528828538818244559841765812699128490193408820792144797228923041307262824177852376802738725877767188631646715239724246408398098511676787692324332232601026441737604125940850873985343480323059100685798040926131413874756255970707265648394475538247487089278039809388323385252483900790086175411149987836658790688867273294321326118828693718605696710835675762857036491521459620514764604099674156642151622025679670740498529097047755411269940765924364543354843794562993190223274634222570288106174560913029121894185597805138846211335575061068345505525306591919387525000866476744747254402060106698394895967848023706144626976125378251624604659543622073217253105795295812302354201081301620453883090708223416009461384242219521441254708666898406152891454020118941272990181630447509723081403108020941982053557199228057193118620962027643169992596228372520375930441683835585648718578757421028434979810397640960917825496171747232067774774992191074994462354463543032217986661783374990659601883479533631275103020461135334141519465403848878174770667905643705413147366099392588369772136876520330435098805659412752798073664147545594066107091463107567399318112793165107647234585242022904858735279102740550207109534006822579062677660145019903671447210020611956544873905660694412568561046747757489041674538240601791119369131219037457960533839142247833951905934829610252185232450950078241898466756592139534205758136541207053271711404883548051745065419334698851290006463793755538073595685392570009788176177845045898533218147034342905926989247820846349323240535978845825306044851142596285543055484276497627015762328171568525351516495126695423274175397709870065325986331526005779494630160064449470027658802414910635411518520935011611989827793855624472908607814538502952650800128686341649552623713556504013472832710860567229113618290983596034560389951223282299820674987387731511307799954309971840628197952968171475322136132019333271065286433361293851238341373365041734084393420196275832272254655516368370978572090755355620378396661835609586372504574196477723678128042452528247082628469854646218360093614732002917867866575503662019377147048557415478499353336682676192818627625342782215574643464743681901896156702958222771853115657239657095429181290178699323048640086088004408775144922354477799061297809243166447456404555173839055552800619281551871859171869347258995952047723097988355032684742325132704439169157710940363517031273681931355373405448369303479282577347270972770886257440258459537000299370030228836910403681894541112840598936136648123253249550200622922266917698148509073121039511516806679109948900302549622842536499370349522152690944310319453099521646058186506326012453196969361334016352140409728780711525307614966144442186669898751490898409017107272626630172260239122089664189524007386416912304001723934282434443728042294520030934905803762505268966175950776337704978296845460212259167623053202091315875524133436499384630761806514098002824617934893111236487726012544873662778540436283903943883235816814189211752075000464178545167439435961564794714104969568502149942213057269049293688019439595196453038242611712827412313786224508993752699183703829554013152761799721932864004972765310619590185558517282816327308089661608666474723397938234377678526636364138261613111274232770149406920277290468825123684287018144889394784809663470217940347007200573987798551960297489583089558761588256625903725864820026654287695520796146647218804519625766658442225236772075546450515605620975617295962230254443321031499646514812780527689482676913586749281672410521616436838178676184396960106149892081926869811255730125702252677789039212539139248214492517141008232159957380459465279270494775761873751639828864681668298038499227799201065291229412150893319051943819649506877521274290298718619608814973075710979003873562850191498779906870154018726485233660415363105170090319573410972749711527670182407247858094158417464853440440693259878699064064430996353917177526653148906944755766326003004818059703607660220369616251780374646136664633604388350212526840621523178084300988893984445147540275823754831922331530155922457320956789002178510513949616707809044498796657084850255243962933428339329331661840118301581036486430437676259133064756715062065696752617738924349452444656571445238068315540271076582582107492879193122112058211005932784777468628821314849235127040040427970837360454930371448871633238106227025313319023397826121575957145432557818348810261279898453712379634339371800814954819849959468818246520428982981075725077422249283013308178690520320478551457295059307635963402899365829344844571956482486131776378240339403893203591484586555396694099626647472302996693086430106209328108391572385389997472390101869662495648010961746577853175458516182997787239260412082778905092051585231846238455232097921066749529681726110322209105126609472954691017629188853259833464438183367960240812229898540994061114813976865006663070859646294189725825745629688793907832759696518514304168668734860906571830121121892958620938886218445620146911839662528156050536533099885435055455955217371863571364636807902007581142249116357356936892065005750165834143976149162582002117288613489633228419365273759911516634937913571373488610264915241987771954361820664190781751644375693803864562711273533579068065661567494961229435284713542465424072522898367241521678509658038371439153140918452786426058977612217821718547088454187151437195125050599154949478947276853877732319073767517135760823012703498940450173633256734271276334749631866604667478463365897244395082580845169114863661802620609391880473372382601307541565967972677125407817653617622362244034103386906476910961606494280277193241071480996147622964456752762058754547398752705612558281585154369296644097173938786387013170586619748833353825843332925522337633849759892878343332300702859787771827491898103009503072743098284563526985731665971299851225368978836300710004081547046366051051998099080714592795690449186760700430292245792850426213632313408344747981429015056754384209906807013693332660275415107490049917966103755703417303144914016257979412255104429351173497072960134276602624995065239801808815980599942155252622417947432054247508160105444687662647172492103522613916077033982703729123119251551477021995230153241435404911320342022955884809844634149228120618032322098525881424286509833878544482542218156026953017397431637695542711411317385550778960422598465016637255924083897441097022423497309489917326479664224360349744474761668644318793128764824588012513790024075742505611487428764434454849319224257668472633402279380120489323626134987500121026769576056017131423871564921400648550600533274952614820664766174542923530793691329810633273080360556220254142763283483058351471555586037187334508795127754875690489325047619215803710780137263450094005329477524702438433950085466813567265716997804665517481255873831631024014458284555041605804805803309064418257876025792488863728154066834223877472700595069125727367174641833509512805860455514211869253175586818762925491834447144365747830569573305163268807142043857819962243927484176620604275232007669704819706987621907531102924294203724630354925092321408350564164290652394335718293356596385203158605172472776084845723283377443031058814080209374412446025717728263707859370925813833393303314284148701323166891635358817514597787205093399756847112329428829033312425121380608239421712464951615404709298782819923114555098375293880239672775037428864852096862861729297266093936255909668024475614165914985839973301362051807505723214120463083397768388215120132044186578303505283150809132815605103095644279500939324253051848329314132438654925283242613840219645527902151354750228953482014652228610564956967419869830081121708764069352648104860580769025874788669472632530735067240055503921936481804722326806803514686245736626997258937808286693900884257148806027887712073516757597605085626728432398911104881362471852329368492308356119254228041106543448308863181732373620621644738898413946690465874741514892973654403289133114991914310670655616020386593970444225806633277896658836180393710915221247044065690420581363091484662391033551620604229834487680775824576592347122712158956077543586342691731956809839284067237321878997324049407167734133178348016281043520856460954219329889428093724555766778296917189074735829188033283592075064062507731631914121276135684629979206343499775944557252382086183943234204510140662407100741719699179053106078624164456061433840115592117370850584939115145016064523968591569801283160185635506785354458964244661421297517467853599209167285461459030429064844445842077257695072435939136598981392538815259241753818188658207578054811319915342578532612150360625760603973708253916862742464198722008429418876142213637925525198322955120225517512576938612980724522746615846699194340768678441984368367898011098945762445690301299748282906549611591828948519702261822072039701814468300743532416608805008481365508521848254505979043141392062095117350688797108226663026358278064361852525997936571126694737322805157814102681753269338536720410695534312627914777647862426958346926197306392850910975634513746994088015787074049092227813191328950950267587443276515068110186114366344164409665838328018819489727489014067279223243013681126432653274417037967977386754061159097742469630104599986967438729554503954286809198159489286087091914283575244870562828071975165389244611716360078979151077953455885676362759958994380957958210185719153137767612941103087300769383818604361271510607348227789509617974666296457600817085998894141910326714113789015503965395376990441647151276352161745916606636772238376540049173858311028883684207175316588432333714253981896036601090732474549662382829057599394680218193534528248153000858297635481514176432196061652792722489711237069544575933734903697603576671023380733210118076364683274170274296155601753049639750417158640572124113270877647757395132401720532047165377902756406000701012210264599146275550129630283219695673119477220742794366326763726748268927835132788598765952408807740724058048093072857415521650176999551853600611025109971797255609285622517545019756872378418362794539226606492767120807848069080837863554697119255506792174744476385328206215737059895828440564475838559521529068611783120742424540494403549026196485533437274565731588182258910444429529761720587937118342581635270916305005983446957180107988552590145704228593453866880163864918804933332695601656513674585066494716583122556543965560701560869691755802170924477983102743351557430228310718046783102066347269455664157858743862467689768012092035757416432316087939778582305664881735846744991365769419902001453621556928979636306874442096420289077835111108778056258511695354751700902173408667466410440475340123720108895919711518792416430887721235554255131156940108288872663391005182075341485040306660120062000905392961659038030354770877765642294518069676325612461519552051106611127742092180281680696032273386755938043662980868399436070386914358928672244604757207186011276309163020389352009275915048856672515541472849504039115737240261748896569874769837989105515043046128942950198993138010248579118416070524690003109944187793354454188164283653572488601984238077899072213283071328508158009579893576691387437717268699811252544589598610061745564920409079359205601914594991384439304145970601117638494732742230601451199837788387431892851867876340652544930728191279061388521007900343396118741322964155204391380619375526634966997569055750288365933700999851124032315644460235173673985445603462662348381677192996751832776011798472871350627162572545135551568592735023056919823109890689005306856272583488675674620237594164435504336086997228477543163604910075185684033651537953901909919450133281792231368377273031675039866825097764186738235646225020034337288103476123081819556784153124311931492539329099079662510974249682478723542699004667699803552938047647241185088192900466287804095346445930386537304458255367617934186702888574573446317129685117953522568329014196557115455056598892458918055163471826691188294461812950321845788399162670749069722988387241711051123936167585403243555132202065312949682922049813545791144755120858616351298714673812709469503404538620769476411495330920678673695589969996371758053771881493516404138707770842018693315169681097036535605228995229186499447876836163951929545905879347121583843170776955289149483114718772088294946416104452849722628120419565986811679003928315254534460480251707359429925270294231472845581327552871061585342828867719702114614828382498707885515051604370653979283402953419284047075221985350204980977725975612419106948213823698857340645623132652635448712951080804801018628691810250120729741688504510891431708558822568248863309527861189186192787631077567696734544189009169165900573000694361268919321823649995609109003487318129014439897926806348066471789275216242123274118189658336764899528457356399869137100870742067135454188951086652595732824522318064724964746500999869336005306642711368629183084800851897293741352905614111817714801024708142933597823775291398846774755852282742162554646641212462274793327899741912516812034554537416872097532858161519392442912790484334752915772398045773438281723826397758510871705164227853692473183553478754375856278959475915395277601982161275784322000471828512872231233241523954180209485454184963002563542073993477379855266462203511099740375670883566479096902657690819692627969274252606851054709779735965953027589603970115031599212859740017345517099857069764377959066789335003237464716149084315865408992575854824444741870961969384432005014608511288999915827687850028409458577610263471009412073734924788071290769161257510269235964810415191410475263666792916730275947480273619944714395711043418892902380739414149927437710367041673090530968247214577861360761686966774112346119919153423323642600600058340545251200066196190410632215052990899233061749248518789873645898112995944776215926975896796490888803275958594971633067588119652142530737847636322673932322540500374945404770868272116114829989831565195844676489205506065461828356110648672014589759035108504184905323462687326095930577191089924552502337949461865462337390331394918555173660086756489809841445138033894904438032918337645148905522968266299989417402480872131343754006727976036512877962043892033107540298277150223549575443080212673458059303959446826094768233324024366110626302662335184623655504067429826949330991854619132704761286014911048445742467972362811799290647589020155523887878169842987950095520747822922478855559204298201574105542257364603536516413756814685040217391445362836324874225089644842856218508226418530106573094759883508803967113565018786742912965265869426345317079395283312325923936780488663816266327666384223495425392639259953647886544516697235133657601387949302847086907615519265709580214667374954270527702041661509685181896862365140210187812063940081269110249870606803649842842805871874951353519919304418852241146789340565436726741956137882700786943840519318376267768755185985922026448427191522675962605895209545424710862674450999145507003438218871435030730051116600380577057257084037923611781873946039224280375360823525020516474978179581774495317768242826584886087328125174402691800825047142689438052738126445080487495797429328026560446007205610909652916309704975201226551251699141396010421261891824564913254863558540547819541438100763244644454044050991691275591555412813817227665282382098464672558456060372110500811279202638042455810283280988634798245621129313940568991299222141457929579949666800496495054216867970242848830400617667719195156557719029725276769929185418467861630992237018313608656224528878359110552847687484681638293522602518315676490152505018727181639895589103995487189732412715415998271366571977092839960392653086879513822222890884239075498180770983036829967316711724845129366436139217655502911929818940147409995045858955824281577870866174734685680951448815280239218888987733986608453018925706681573874298966289917716088566130403344417499983495951854736953241260434828804560585207518278175160705979427927619568874493360798292159169457372454962470721267405648890218765746179095826377124963632671485310235384003682269779257063498353921709505260528391148377056244260614103024779347082624467978149922371665162433962241649782093134102463488191637906866438100052058956303171496682386601540106652340336720065680658686199590910109577501094168818368151550247388146961715028645719337585327525373000818992987717806373098514139525987406338982791695674552033185727032491082765160569424764347997113131868625750101337615152742359330947535056316950708036521197832489365941726785909430605164820367571043400925393219156072579691376868138171795529541612736937983325583790927130818997075300128092595050050762762743867363475235121077833556764151776530454247325650442157047553501463280414195921666333009630931629317624279450851981658983099008335054540849119730918497451598974738948615377641035938080779255507571351801920176226704580813175770562308083573614986826293221400531847613246606829136108196668656067027681456857450179810309578370183919992062528597994092237725778091837751191725988021741721181963738720625184173173600936932535824708760238110841700509150334872037589423955449431923690903568001582126402552605979397525520585145231225846983585582161181428019672148092147331235910797317133955876868652073928736355387504684753565645816885524236759139202337231276959547979900894518780738864120842737591456074629735443069562055061319408856468544043802905791966081977234112875204214207927717968939354209203847037503735337096661079537065945691603386652724589203173994493568396005204199129795663301178283380547228892143438752454410773300025154420472438323618165944312394736630133916580125210562926548772914355129446162582268643029189923409565736649782552722241323468808219642681435977546718249310080100987410322246077158354179483424157548828592436658689985476784070495985620035441245769156429905211155490745194033817266895655236209609388007837816698202235506748088707594336846108271112545020617817922959959472313788258621071438646923114259261101480086562987773333905478247678537244925516946777329241479102999275688517689849554782527915153856318890657841740430915902009718408163743967943252471808807389198703039671678344589558449576578407688851132201283412195819263734423442410540506838878976638955138301527409236950995986242325747548004256102599837865378193681849852560386829380408180842728468021938182580460023065511701573818739579239401530495857481061923494971575127832002722187107836716025367598061377783356558415685669721517150949119713150996089221778614824412913028218904445545051004824983512425330401842242712839361410296039423680656926115587120570322165261089936542406224534866135055487872503973084933569453311397237941191349119401538333638652453737171734953623240364378906188218287557837847669289606543849568451364759679857567560355680894301510098315464268395560217702560798816574552252193086133113933215282684526016108748510240858816579268020088088948112364676668761584794220070222508960234080953433218565106420862442725203606854783920627482784477744064708385717591894117440066011328362503544026723643895986958779454411387979072991007862637187337019166124588485268752345332141553274423476738083387946141213889495709773091287119606311737352097533312665041776505140296128991680439930271795233914427761120854946021470965083374837470413621363226147098139881409003719367092437276621472647077258915676949422676154877505566103685200408080594939751943046698365976643093116608228594594260843895900238287402742782715233796347579636136021315998826953941546390905822043156441596802869372566015941893701810873654810494537269749889735397893482073704063597333804426060755809963847505306096058802101757311971538638015799270563188056512121154679555524386660916351247654840374582196833818863643397128813348070642950011986658092113721361586248552933547295162964445853767149199727097340196378398556249562169853893584369830539576843066014952101929997444797702433636904240764769588092413609840125140326785898987027962696385656917223001811761195846521222665274772735404162896297765459613435919413229552911722763248614081028927724332830137912778528640298516960039574548505713828894062161345928740968753356030353779988797848452909784055701975085152534494730434637266367094617546109846631972544679970256706753089446244165334196515325071815881568644713428468579565790005949202232020667022597102599542758088020910290282774280790503349000745999473969471540681138235740163297243896644603732639009224209869134601347659926611300161513570068627622516815547682438657921761982813589332452541920675291587144071158667807134686858288829272371316812694053516098120651910114663650685405831852222112778723479687026003022585830566324835545825763671327800241288397850600094100537787817288352185379654686003188204863176893567036038744015524368358413007728112669317103752672022395081577743589944837743718966091056715227885285557365037606687245655322405234908008685108485285494694066366396644327306180337578688759454982707753689589117623601601058873301146387347891563228482891890312497445293905200358919087853706147979754843180486145541091775638487507587442192940560417821607602829042718422673056278139638652706169420072145345492087297930076384204221768460668696883599521872344904387909065969972930503785734269942724600496517926036441212001499804628457989439392599064200561556554420515834338817959623692236598030962759938322860012048080750510769389534067187612758952825697338238907209347068364993992526345227116792883889587601218560994629484508064227262327711876911999436668182615991525971985055569469305521913783321862429736445136986092040991384910985649731411913541015061857404226654211647414785559093876435488312096186718547505501996779701930658510076633554981533820139950226048067536214489162223300675125818006235186063684794576106197261348407657851583404410055165916633790559372267648983820494838293767825156488067188026774444665783073627781154484433774577771612027019197454938919045839433703471503296385450446389206520310844552465206111936550515134100118436477176338325632823802453491187737592111528968706043189357345757929437981808991475358607399814908563681030628369984916242317524195098469170939605033010398596528141218581672127878783002050624947581899752758896045326146372607795063367910750565224105171583179928421401918146420451080782823456401539934389811229284869069598265871832206856110060200824341478686130150553394094974997529476582859380677967455904786923350735089536210521090620629182133392012948271888266826780197830403680942458895700461753779429735568706484004236628001272860335441802444831616176619961598567139778721060040977924969615651193527416378400733658265539164890846197459221273328699757288414331504560167914256570399001136793252130411136114979945412042877825084092159504183063480027721333096523584985443377740542583516163125478978273232803950182370445087472418586365168380174930073299616224331504334739606082209375645056850734136554866159602855873689119200868551273728883355588199548072788820922304506058841758027173646055674953167597387088953235493863537457595341435495916423597364642632720579388481918484238623667561176952431004708081915793885228914089793081056190229800368996686207388280333083790518236547489246694120703544657633178807601223433673961963939314791795865940066694074461121692620819393740712544078199943971949888038283641137739857844331941263024425507095032794568810946799964046851902042765096640871129785383230468551332927542997271502578634339410608506169125984649064824368508724688446706067794660637809127653984954725420924162587902290796075409942863604015130124832352487918164195265540202669714496627508785443489548825243090991379454441576927251950731668971738677369107386425186160864861877826611403726678390067699232346970321789660010390085401990827276441779459487185920557174996919497025133432008590246620658434390095574634903558701703914644550427537791020639068835727945144446374417671692717548508874230702679914530462736947374129338699710380049086917258765440076644962111875277373644364040180112490583115322058737184940329667889895062321523013781039020744426210436615265596714561181662849118337516038357980520734963295169381608395551515920373061396447033052329187913205660726050272018615860620854797738794045560417944267883207800125702819807528001419624507610733923614452430454951169248019755408040710298217042378017978094194383685536776044627328356496653898257636164237850097036058747804035571826298209231734267481088679614675429098949676790543004805074347222959113760325618672138494938929902370834014066386476823615088470951791370873195122295278863363392115806723579271275645010735363480150425863847961704211631116213240740058385067564903183449335812057593959433289372418240759432001191715432658791242110375680957755293423794110312719981738801803902891451326776687178679985489768633672427720074040594348471012191313430615402180921025864503009079164143620615589714796724036990277101911095275451106989601371902571000932593888359335175648293514778341858429674954758467096024629030126148787364933358665664341038447676629290982066961434416210942445097762824850521784687123864136870145708860896193863856911541445924139943532543964986401493436464349919440016935991200730400792107483296610335016739033656292133631140367606395287376032661322452985133311553683731309354116622400166736276177816009118767759248582028417408825160354500485458074969534172907965757393462669210763656981795139316964842275345137632767328607786811623824576773987466504958962838934769412455539509975405345173545289217315539570315784093272861857786042863139870418041567156810333938132359442890063804436627161783945098186837393178031707995091065286450476558162512699289166886963577497576984437203375889584306265043143612789343484870951143725397755373373736125243283054926338343898372473492128389476401550827047479635778199298895334932496357925175478159859585013044353165852596818763270467544156626123587884211575526048999336866788821052449544398036018191925517630538950219855181763604879696534830133675481480604998646485482805053081471251893350145621250338814622902369452369501861048206522454790588929312071598491185508882499706740624769591211167669399726463046842396359499255245519343119745220311146882787783659798953636531840033047996891015580912294407899753755541471437617543638852462397410013849083321645954279234954779502918357439861545232869286509706502921817420580275917129101624958664925093933581950757620519968049434674658466099513655668818672562511277757390903198234881344805512794708021126670821219675353819114837192911551843255907749970645557742817901983578191968498496136850130765366460095199770406348898468158537574219571198490179992968431016975739176367468798519489524663201860069063319629504898046742517530781844596700421848879313806130595156301248837073526424591617437397115036765837874985453562776588431096060039309907348527972886005241196973200673923290569221792719411791314338310333085351418067978298422117712880527446551738713533400529516186271015577818893223280999704674890689909197893571411894233576608855063935142521338509439704392243229491288091217944245993774439500242365186270530574842802301702533805195117582631434511188111581104270004563208079143234977171322120456452951789137751614791845872309657268507160659571368093590721147024687579704137141779817188433543993810025507443966004175784996927888087310232659538530115649270590250446294630875519778704377966992532546821410459710979399355266385263580477850057587377147700098602016775813073034931063652506533371747245879566962052422622090065668401476058413931911073392678524208079052288908985650788219424693855164011087508536701295310875833115931836611954405211502787481173561469065075067605970096837388708578060533013519230955157494850862915988625653944456213583779931852683511738876735010255701889862721060263709024373354081565678189071512961625880430633854748327841893378728207778514971681620452744090140534140120021419795961771972266498612143536420987373654503159291322814398854612104660455518501866861464526733241476330574580722738634444513741802862833812335808322390020700737855279761722444648106290888224186462091696964249809018186339627541952648325873470321016854318252126516836268434461837498088178303261087190729725624179937952727223437791081094165773232006221074277287660621267131036845659770073463251398914116685579491530233005199981628486236368844129707125141863534204114051135614096104188657119310371397068852188720220012887647860704115121683568057905675899564937198036861667473996474931577458299687772250874697644306397918226100197712193693671049887046711200501039086274657731993793006592823899537118988834192083043785297090965380765989730227726796429792465790978421781814503196045481010821531772937217895956048670056196804811416892542735771362856659965516298798472133492943274618256413787506590091940463242739433645087569570540319528759711702758282003776277539402765205786801700482629260990405950007402822008229148067258178702225299495400896153182923472573776769207663715429452828471678108960181388133191516798799864985773756632470845869076583556869205782013164310123300997153016448795041691505475766295177871702565622314103497491601815205165479905760450710268445758620221368507305004310879422421314280184546724640225734709814286940846668201098382733355214686331233173002353481385285803423915614677656672112437598298183023829297340214494512202577855250822212731438418040798758281424853509890605317808431314251789020244487841380118594193254071806283798392085335287011997208668827040464802054714895612605116279503721743054675123652060406623138603709622099576362778171596832536416740973704079573336559359536055425264542965936635898072487536428031451423718462405027418894848563796472372937061284137782927560287471423753819325317096643399879497523890786037635440921891566974184557600946955115976691226624579028715279185272154603437518957682437985346890392101055391806313260298168265307356237301377569855355282232878289191087512850705991890631217579462916743629443372899855772486425848827351112401395042560453211291024346744492180800968754884184646253091311285599468174696631352601796507798034802751095518777280016073763337083736138446182918663787304602505717083654158282022596426741405408294997792395334098822095283251854165623898452752069272736113751045136162796427586906342226330827897305726179465796716442419557924670947686895898423421941120514260835113370776227618833333141027293132553457071020087910422113872053410828628543271443010942030217036539119005202919312280203370991644254010552680705378785022667522751345959715095817556335214699060786096783833207807925366566348935498139221477403448761426338745196436030847245942724979500057797277486046354673434519351205008795505849224544981802109640436277642455118729377973106854834740820064666941356545725443171930654280256033587496756433779181758833158869577723543870351483600454603774117522709142238298692936422477299881171328364472393030068709452722438190644396164461511923030994621111156561465291488253743390295447988069896106383410945885011943085513501046025731636121252093941677295405089730085081370768763650073584316526976502132781359401848045970504564720270609500575599484328629734725197912124563251963121864112713786796030352132763411076316446222113579768710184204929936355272164786942389856518984938959951885288161306359094888419542742910924705756262798200149018279254967240714158150271395003494820792519910170233989211997973091845819921760265574134760081912350539728224846692007927534357217265400660749126692698250681832763332346758647391903319440964504472093119551873318680331250413779811939064074503730425564880187726605295554724901268232980375046108734189875682392788520442368644150105568793938993338273467823241469547780193129202866086699182234704290572148300331100942485979343174690145780708459913575516729408129923549765473665227356613976985941999563537384718052597391382206985441302489444931097352803701831871747889413001732108718489850059404305504895769642390690872535919623967531963341965172683241439616648228973037295536639924429541399144537613463207212595218845618747129041024442988663390702363432335918283458646943903410639618292013425938722453181745662302966036507582769726248463359867058789010474366871844670070951798779855470410176899170076543046631090135291319684853702249861519609136942756191952775492170151101506021288359680727993879324371842735052922510407851649329751986871189455950467620866278180709650382431566582352303988772172542143476029962198289028773969174321126830686782366891783324663048704853643784886562335191456928451744554013330641649784845475928937689706357919204265894203743468622466601222598126951660339921167433297532101643629164242984354980664574375822964405199056819265136865049787330744958462920219752384966221142078787868966038393141014825061854026115444949465824128925707643236310621258535943423837806232888723789672188436208827426175100321854703338798889701377669152625603417948732995402000487707370194143338131300732097726496561888328586892184133410984265152155085024497987086129529356873567849345235235230315662566149923079218032879242843396523126379194951272763197684906313631498164314701304812012266582943781451800727243237859954358207320814117833200086984361323649745472565103764248806705241104832776310317748194979696185646414696323507720954867543860403304408175490046546703553404778517201659003384578922284245192678250354033211784731963839683363576080651344656545590112628931080544344653758694996587449383411274262063456543529456851317497653197249490083723871032569929882306515038554545353155001008594973565553587644953096668020244228484283137329556739085946506979407655934195273059344678943415740727407291050255777901918916326575647973921573751281672943080095685690238725446691641026544661109450106040747486335948814330975488781803889120742348224989725193664407771507678687012552111816712150383373843742336598417680682924641739950498601508547313060618921821256847263209845121797948120289621510729361718418341340125367571301517422284782940703887401390466460948158458859541803354939175956101314788188118948892746039770079548020784460931497849256775248777192401656512574744737133714659390722888634072941194281879331263430464872168925660774422500889657574434283293277790927540265086904121920064930157650712188419370172959330815581058379965342314136301371610285837603811426086500060548553808458019386818814560760875958762087327013818709895519130761632855004900692533814183479176458241408620539388883691219671665952482319151363276341801534353116691865770197111291539364474382251379254293843530867539702371893698155602913905401362256799314616862783822431560913869050249084943390049886692731651396762541764075497563834686756009723539183386241434364689963864401890129795328156070236442886970211017308171377990079595542121079450187033372635920839893059726480783205022886996522480518630427335399535132865411992045383506911797563853903028753239767147845432184060875524222762005980597741505544583828486622327941520529353190224744708021674432548345083697022876315504830448780455733339141712734279515417887728512827943181765037191199026434644805177260342009136648923124881643296984763777087337659256683005825500360089107570653235065513661083547028007821075772741762123178424683872848636608425391915739409752885705523829405364928337847837339267572497206396166547084939627851180530128196271743725775714558946546707899919353388536363648803948496313241596751206815480145555276995415887025265043830967359074507097644649244621931371208708915790549672863005020325784400610151217856385486350266543445947181445212062675697593692431665095629618707870421464529735989229556804840909859513572293923126846404032240607013031739474572520629168013230807154198105155214022232377485655504018240636789375355348556211169776553738390217352764140444943664080137959997668685548876861160839358124174491077527518992452951048712847965110692739067747615418496345722356884724303311389428531574062322423167157821609669385591038219969512945116233810509532899019945898983874187941430296768752081393604700240103397224157979247054506524519887717755286786105623889089724252351129767453173958196828776255551889973978834992047081130757529384327595942698907439986711283465373058731663826578229254908753427802012179232233317206147257954283874753793972878691215532922234233185099186164935475174583720206475514200781053240788809408386833036399975174118025385613187472668906231633600267580466521079992188989396687251665594906380704322610603437663735290540563262128390016597345857749042086311464714253063492782775301727361403635367376771063071072101667328730488769847406341140602035371459546662522838090736148911486967934192367892644899283277271771587604722739187497242945870088899234552125041295739099521774144894459153804435758665957175936295347097676775771651490871827363547819427988872286631556049637444569279762726352435695767981237530020527087053601865148504164015829395266173665245706138379364893202446125819101721685499301172081540012591511392313584125350304989287270707469445584213030193486914923568087203387164014958491491743041209033361834341285355367690963294538531729664581303724331516255332048614766465969659321675463367171903888249087760636093668178531100959949345819724003133086110024443705736293333942682534935653319050094861086901563733967166306462220695052339921763593824364789601445587538148454086751935908305486582266677094557055801534721357175257384547012396266518253430450423141054885955038972113218687039595336107221865930036749154463360366133745092935189204271862822884976116667407279849400343317828136488592556088582769583007054974697829044220345728479384283774416546285253497635864268989854676185658940025867232965957453336642229990582159586013600844494358236723812933029860448514535836799857651033599422766699750511761733094067971376806262599089662466721324148760297887854632544295906808770039076684307961046195526013115020120961939729652829410834589294528754385656813077279406030268136117155904679272666459669337574890070687085426699172678293505409930193700517505264441212270458313998201441864841527031461503987545255775719680992509490392246350060255627340072129591603795143736747364960449593287075492585568871380155221845959328621040337854563989000060378801161962186668312815986044527483859816687534033293826457005388945849609263035636299710540674641640174862421522485851225609462753132469616972889137396415827194948975991171016602344214804621569119108134605699464795817185831072876272436305691038053471589357552613868014685347423276831594265119481246190515290995229927115875710683561176615445290217500648782607888632573610752109124297465080421449532560377797179995926354429657066844571874020258711045938255148209841472113240501622067353350256155183985595281045174916420963502440124045523791319098231112218022010282347222025377178895513798721234063333979867397272420203849048456684133440330140055564172981583953715879003951142405436297926189986281458498067047445991476509041217809633225346316153122772805684432468784916320824401742923701693978425365489392783499687758564980822669114063065881863854708238593105144111990249548978524553735371453620357516379144377726832824308125564691063760532373990649982326612938704346616414447011578498216287591867966131522200178190182317415689772852094200905418225661937924515790522258424367042528883309189099762046984794657188915667018059126709132371067246815732648354528770654939044096624941524885966775058785079535299542809222408478788420940960158105584685160927285177000940557900859455967587243732028373212507188733997502248605105362463611318480682235339646835355482342595645162883920885366829883077893308539890330134362822045653709652717022937524933315163658469225897620090688542149176951505530906219937947426296249846380739994669087436094155253064444862618990277032657420726084660535710556482515636427429499043740256210205776475191948881254085279956526926589346941343938872413449398922576545220498811715807733964760860457914213634712502664233590911061291137144664611156146836182181603390684925339782262552271682430937131840380119839913052323683781506127180571981322227938002648086097748739960758594658166045486565216327082000779176079400729443198701930246780875038132880185462844950741943705343528196835332951629468499494307545759446415338530726015710479155168842012883894759918598976536138872285028545521686949109971532964143587793810984173262601257859516010722084574125347995823874790896661459060389375610253584187746751493329359595567183407838313533535809866886592894487256409901131057304302451088438580714590790447357619033176964706942651003532303400968291062748816072329121976324595965952031138907092449283511904023708840633838335184730667791217109290847050601518377861137875878212477585088018025744934844926646711698834552540967551525622559644277082745446421616470634354457908112275051168692854785326650219954307307398743434183311262681837743148802555361693545758588078198475239884508781219977081547835129328791846599314697568623283904082068981961242337825840515082618609438050682660991299912550410654846304572574400566499357300538223297964637192388439899788027951632782825645822992742532303301590971099893488218216304775640118470333415957202827502558665475958251821313115696116702696534722418425187522589671089146876908042967375760049717498944358739685364525611022694051308138876378987996959771617385008839269160986409286563924554538571291855659611621061805235953195646432008048676779301944655324998080680959245368487749437194952698278360737950928499509070264958770916583523801878046196038241840365229985224676193172864432315767899561702307284224739625659029781244881038980780253054168112533247398348634302317281638308204355663225852855436338418965967880918110917136218863469668694297439358602634714625508668583301334878498367490558303691591988576726476688339133281663910705177558156142538002294022819949161194445029201259859333717018909083926010789797384222002283732677541961501567182813460868197250250278412047991819314086320729496604126472320467921381744515944655724035242837723884296323637421557753833191021600567628080455645359093736553266262381795531972913927061572077967454621114532806355637615412432793271468461787090721381737295913209832645733180471826592680307077226914470603113406409405308318430200316698180949347319028311163162470140734134089262492928742139162749008682938081800451506799786953517450780847181560780205296037278070511349623869811833076699138187508348619424638578721217279590879913603765860783787627596960758415004271765882337593556677235570118606328429727692241612337060594438196198756376731699512515096541265166217480631200631401844243721016971544428796682723621312722782561787939661911295134139431203373988383234195102545886275594916613460355416442142975346881206619105644009288992639317700634159825751898179160536604052502654637994363210944789413408468400808251466869835338788187324872116456654585504750661448008238384716942295073142834499234210810806848327859740061246148399561778981955639510556355870505447896014539289104740952877367314398946169032188477081912621650733743809485737523060773490411655975707084893177500762063121791459010595552435618940097223836626528684700337575460475053949893380322426907376499895255957442877002842242730080303523658588306957041046869863431831236869416797560761977605555121609762277008838349780394215779689726957717629425061445580710164448724659261398842205731115813592955498441412995214932094036763359915980047750566101619787341621009626520108465710227562568400656172089988991143530908692575495459397105709491510398435917916375599798075539510954626359857594055991901151751278987488789699210367284377895071085012746771910545121146427120818574787412238703715694737485247453390967694459185747057017296250987220564723072728915749395252762683155603218674143400920753490423625034929734168372399204517186649876183427065213783387894086070162044814882539368670060758455699033521273071373775991579180778874348939579967834362075028241506451630554707920631014902704385445113051197715870955020867336800907954711255193573658276483889161950177610967379312990707465857003203568602516845242617546170631511035798036563752286497408269592793169123512878467078520897458803587032656039130474585441788846883625034401469196791986726191376977384602754946269023101081582353812894788703245339296433146556709772165265446603497752068309914279169915178839516341718893177229117869648473312222034574789132665224516416096694707011550946709640629197987334313537727306077142247737586050057388720420819544236247151583323417997640571818270105036066915059630615544606606503699399757683224557087442480864565596754103432454558159949219418988796405165840543177897237736609888961297998750548288594450372520751633686084258336168877505327492362818315933857114645698835742341365080586359745279971399932403066422711967541708311301684688012935742997306687573242077904157358728542048526525983528336438182920069106634239149641062708637010610907622885152622067204325667886985131066483276061128779265286665391595535646155054460530191036998528785246681843899688690378961372511445045516586728297655882352941296817214144791229627192831235719364745919049915138858453584443706746839079365595592634179135057935392894969364362809311500639764168260749604303965817237610934970387077679081945986348497915141783339272442202848736193944468525575031284971213475956019167172745562679138322210185929084521790841136215061002297599712381342847963355840744453218105483289375848766989390925053111730784265724005809479888273870380940141911953593085709005481450620110631820033651287859327938450040833445143407852837994423777495332989284381605731899774254614916298514328995597520056142394386614823978123397611334981476752641921348943848499563212837908859858889860964653293130796392984858407302023698120400865433382713246881908532374507588581127219462848684518720341582369476993037769779362967716796428149323944497205686929199772379859649966530389360719227088229519744254951618887964801175150493590228582768409326053658086093144674889413523281260447327967178897983251186728707834199692165106521830777503369379284108347160345774957321048397515185567311396814558882755820830642294146770126738776336230869593869627534646237474094996941289119296781453918621984673559973132158036546185239586296885454620625059855299834901791743214960644137370910799465365106973369288837828864521888479019565924970266024472503404233637295996043639176804475381671659156638096273439043552968064029540242795951165127929753626120116096244137269493282935089695895495087059836345125168024519680566622092286124085035097063439652681907335987450096216690246969650481325770283507059183373226128583912911397716414731633082779815953959368873899730394746743632975252455399656064494764305048577083092139256638010592073023758560392158406732384808549122689436720403766473197336371163681053948953922633871369867721683847885153318701613707532624087960949005721332718852915930164359896529364874060405715667956057056909720875293580063992336748414061698472593692984844994030860258789451369421979757360039116545257113615128361247225211745548709635791925452042479423067995492451646153136753833479971507434299974378768685184945342676796990609916096600012391669906796266538567633999124971216828828438759336667819037056711432543614142258397227281026422411902987740668334538779188194126667911366373617467137480011144140723621818443333628481281526325284860940644435311219857515764137500077184378901733763214302539184650601297493241542479222741208882043727347021537006231492737682246122538438269280036189194635453169380797043543650362070842295029679286867207733182376696210073777630416799812992590103735022937125791526178566090974815792360044679238877014204873977893657794888279578246217911269806904950592484136248778493103598982596078629819859870803855785145826950322533131927697781486633210234785497176645717394310816504194914836960559205150379801258226799758040902288342663436527026021855335733504260739239576596921087447344251632315249802141934565172898103353364057085336917376222252214671751434393707839910692948028271126242887052983904327179375858185379484746366743807452477396079013191373009861314180515353444690322961459111478902704408233112917361929453973350595466660061724254807668551868617156589434852431016962034330555148139327680325373664210946269323080178672670809147050254916632889114296141649302601965084168827633566883850007633208062304293708715919570328589113455710794661894544285274543639682078540030800915783386183749620204838822585172952756278270828301528361720500750053219898665128489372156136292149931423310901562008356981705886064420271444932136216445732889638044387914498049887427319460281377074519038194852243458534056129983744952132144296372156293554465328735802925706399107630906661678640991946720316050833051138485213067272546815267495845792095927612206657782100211201066378293572711966293214725417158734439339868762609767710989521832391920073312942645310820276994668742952802576385040252534317549324886923129734290124360114595718312554690963759388895069978188455568644140398335029895342856577173564944832908578065551197760755489746446486460699161058937175246697639429574780035535528017745838969370357633741309356606693431258657347797959134249487482595046436675244066257203221447087741412521339540099890792622858516096440887887282294961076542215051529585041866440937555893551983365950633331682763519713707046701731603552152220869630761871772096734362264609424833187328500944943628490974458106430918494754854810029954073475364049459227178833441351490248244837094123903967987390734520235802384351905791870665668914728712955194592621728695753869517233198223523082928151367990225535250285988177376026206516024134786797882093672136950471869559437517358494976044100233981293768795961241750608197790792629831674231721383878488543595624678950415203090215860383050498062687011473472315699231413671401343227919291127346573654492040967537350690467039616369587433824515901032928467464578779140241670335508990078672337960087323826623686791649031363309161935897768327032818345513719121417357170663143171577546567589383572309545263108524322732187680385052149874809998264156024479186598803177468910664677851362166067180020305954675001272698184522685372155614050120066167963402996732980658000281076509429265955356670900710559688839971811987727077682127493005936819202679660498086795328024869588479550882562412802242502477160374379328033998536298715387146418472567883110484826649446193359308873134494051297502748425896840311360169851120799377611076072088214752156060066344613743372328876950791412607529288535694086721739601537039280978457931437318048931243286490930857403546757098354535143542926859106238139669701458928339954716150018960282771099180292518942135409319930230560621330537977866842294260537280608403174171480690516059971049393374434132384399721515734093435301112063764199624812557540657607234170279120835387547184074921350306701461399589182584708372394091215607708881729834705718188703889300262741785405202584827332097900204937391696956740605595445639246743260447827720910008295138042934596222364387083825551054363341979443707159824394007940166651303785120409774802172308096405873288726857290901550653531568140879901199854852066391067395461263591854893567554800046326806031477147609415275802412247249294603901365190346914436032300974680067982817587536462336481171605276359661062239312017921599841138257605837403610462762277662118241669680461639588724084809607555844841229885973769800289451865298684014191199434762982936938945123626588252101131391865327016989908335116780391396247611154829226995140379897982187166609194349306797820482246725117755967627039048552571991666300896058684448957833543033985809866276026036710135917005562632255114900996900308051069293433190789798860645715489687506403211874739965631934598420391809547245657654872712260387143562650368490043360296656402881394950697591395731156009547741170406831929734710701213910694786693067629614229025157775716994879665762250926436893326827501873708693147283259148017220392301561785722886966070416486985365592156626249878453617483648772898131434818483919859580999649733240913422077059810228648058234711417774177029046764487845650990594684432341055156077860955963600712045540277841938840181252658890631662007353524236118323547369245494276526582001785416491304082353397372541409495764575594921574378822433368248973321445367639426597908550685592407284177735484935156169878115527176400329152500486351604400581116659377517365780214928945938075959172973104504691180693756152574310649736774728229685749636063660097816863119744906965169505211895350552491507787411821823017586288110164393950010678104839416565053802025483775734367694434331695264974956964865015498936554209167114938403348309410873805413385668732153685185198346191710777941506761082480688918625809755734828290838114383060031207360818936025063303436508397307376814962460600702303830803199994665796250434557726206255777066847433311275515489936507112422060052676020936502357231106751909501243777134288918553399634676704884387415231572133189959956866722364264338838358289743296534068256686032750120074905571911772187316208998714882488066928962072686346420469516110925936367415542485082762474801961781475484084725499565347829698139628465770543658599742094832645442698712234384902078567639091893499485551169367866617920958605362145420437121623641718899383868776425440104037828784235013563224898798309734178868454930861231059195264013321918091074499379360187571040675997122531119690363438264311309614624970808371272019060757978509776971689286009095542020972572271773440461700214355440603820582977993568390269450012675750795245941070633854630670037866720485385135444635437928397431513667396560386305034586414467697505791309505351308584793765141778290056425370219982132244588768781396240755525892595222349838425542939720479011975274867261887851744094366735373052175436330759767992385189054217446330446561881240829217196807478133296018444735500390935497128560708318868666091470500513113990945789927288209425691540244603447733074919239103066895586754634718614965785555875297926467214349028624428752548150798226445810720304257599192292036127128788882130926738401777245066433944561326706440709835956641335659583299016545724797791367231476291053623820038994032388507650132080334354212306473754663082171444366600667837554646691762504244621281467431290374691735704619483284752128108925964160254473063431431947573474495358270502557986563420822596507295353069002847012239175585373408150214082613756893725452644404524043519052710942316237743447387820991918216955990949482932576253187613530270180686339088608753087999882676439566984178142637331709842283333432418980432399830655028590585194456341624847434936885289242901578380573081818904309120312501617556074836704554653715673900694437815344580830575980192813849082700282032424639440473912889628849059557775137312310055833380462982024191510965586773979960993068616802935418811022111118835831251052833080059001848172280030228019224722213994380790444498479745787375483222600801424141668601212503977021480875735377816224785668279098330760773656555589112906214833789932735139988434483333147738232231037233221437665403911349082395195487911640613557967078285708304832485682561427806609549295208544214959714091163498801365557932071299743109637273975301154569602635842854452668219524906976697315601010792454344101542908567874839141623081165590802442234626106523918275853818213518392121874796542463027553679026781966662488588359709122577613864639107809478135463072041838588617571955437105280284369407639744203380841432829098762612364854133666273691436397726971454168656358841992853484976890129320254384555913267403521058913643715486465333443982324814938131362176560486179945385301968141554664697298018212656639086205940983833738342655010061169731028443394930255108993780389760198687061148054967396103840212414174375807746260435247208066100857927462901264637348516296739263635677451479976936045153085040276734775910815606486289815243566960729616658151865860893748424517662342617076590924304614470232522108154072517298837592863199101505190981137903620716555836541870732145862995198904475145127302792009844372011613293804682755519861503633115263748362099897096357401818819126781057803368834984238672190066269271051702574267833034300209323817122545544238586229928008834672344360440938006515657725687096711820366892877292353852728722227753152048862094548874332993657093420088591122135468057484359985590214518800082338137542254886075981688962350297648669546997669374553413705589892567696894958342028078343448981685376068012993294620452650240628992073833053733055314931312171365435370787421040721238043591164255427816723023437999185453156414374337592778392900833034339311429223003442038486951565446829495766541578092513813864465224940796227077779884678839058173169731891350608286010478028118935395709867549767117141676389784847616361847683141119601297739752585427821902642558060541377895364008777918669146501308984607735967711428717174912355095178831741586589952466726277042292827994246970219663067954722977239734538357924633862250945010539912209607848308966303601753081469324807628272937812542730665397007005446994356782020195988538933462200287633760672793278098015670158677387122788191507334227274456739805547039368362067718584987329955030637581645242129915829074100309683812519900755079532463875243641597391693682831041264481102055010791249079206865100829191572397914648130448608109847974868590705147646414541883208850799615790267212244164757263324989275256591988551460781322869024026177289950622575147761339366282344658197973534627120413144309755640861679512172147673727108551823624011331540314581795049698153728444460051797452316042597729364143004824234993120080426729919908355334781503700798158694840995235987006993914371263162018044479877860708781764693278983862162963363115865091917559328690156262528152128912985763783571644715341990403171958699500718358335655378759445020956291770575510542028338410484832985728338713134488808637963054645901285806575553658650282640531900500184635963848770297001320117427667264690655699934098500020497261459142169309525888915621413242504390052089717577601235075919517413842010814686282965061072581490531566001595504332647465715560687773261906345740383124572587780981037051918265903364103182112691422474530197200057936046730265621762267456145914132107125770718265850203423102958526063926711446856930662655835328941322488482983897388592902332419767903768936516942903335032989730274392758966770826857749185589370576598171184353233960961059012374071425868471637469109788714638949474410590349937085247856881091912866171810721212181562989702966210287466286453058165425143882426150408271544676033677398126081955955677444978953767544386835551485542948486675971490752000601956278012764616046683832768253870945913166528244433640775567541158767181834868829131140535079783913657929044426197500538453571459302891130357348616334495232107603397855990077467135024561758579155818896896509485232058113570438127133283526201533989139492099603914511885595881679689490798729470581328706573854216624693343951866996354682126100932996701747037045323969927801437696726847265948723611691538946315391930003743694830369073057869431431243022927570048066268927346683386195414022829308160740633710038885982853920206654581248613854826183032143063124410542062348329566901877513790244009221798391299213589477450472679257242949474521982306729506015020071312564264895983398007365326470386844344108865263051556625338600642493692864085400066686401465009165162353078075817931397319892680786705029835454596987133005255758754635734792733183363973778413289979784120861902477844756625755954237004623337724863384069367385244485324904693842143478892230913168924398136811892889285789329132977534197565300762828249417159162307353108303999560932744827974206021781906570284421087988177385024960372905209019741738546607678214480068852069709961421879649092806374285618984266325776386073322095968683654408692003935074409867402387118555322034241497906036006291317784483497526113791220678408400468495244258204810584838593091192263838318774572609455857680825432742275353909639627457773852700639420667466141877698321732451032124842685550209721428114788748911025927508306387532777108312000860126117033271422980854114599583286769281038665126777818549427694268997715242706150688582661601697491068571376313846873415264021273683251098044732319260659290129041388115843970903697978988838864091885588019186550214904614253458814648785655141229959652441441821401734695110723834438695642371887771941031498021654056877028010861302266558647431730861362368867282078330967419955086657257361171235936239718825206574602213786540784752689333460883026155942069583691368400742666990712096633548430561415456768814554759672792553430211487852532874523745495015779848668482044224713926783561749677201048126722416625165888681837123380209479864091382903784904786379051469669104852862252013184649559958839858524770604856940520066457803967900704244114937241835588638324142357050491733531806241808954610579871170494725213504833845313667475850074909353338006015589647449180751442927478083547096897809266500180013383594130768855798141853024316372115785377825209332935547970801874771062092825194161253638540074537633388468964214982821985438255895938065229276491698467323526612113639198188818532839201068213724774962872156140198695882356416615680044713061160675579875787076275333609040349459139052765897568723571194240877383107817017130331697936504413619049712747430519177437426236692336160339291272727948478176036502651908988029674191649403764646799907511304043559143354706053245908964004949647839815795831202802028427922832965018380695286531928257419333162290817210537985969949183245851363344818323495813902280905045138992347835941352436182794543259728534444010717784988544106859331357649092591808215206638580183609339625404516738540993928460125552133653994449865980031007747051393611648480196945525004585088441662788672791285939608259886482404178536392183650339335093363805300783878295683861279108816646336510374101981330787447069733830729389380966013334009013706953693903642994749612735162176400650334998729899685537076610209355893367624308703809333707879871456435327419325428479861156367341512584495132585902335930148331481828208448507571844862307134180201385028436607583674334495794135406306742109886930176898535214921628941872541674965172583328671429564743619068959886218866197240938025438677041648736964620127132261316286139221281518909400829598156226600493492896829523122493244529122927306921356112589031834411262649658603465707487259115473058369045583738017349320838378124036108533044680551557007639312129938244429186935106341467042858397531273806340378350983169646537082855071318182391746994234624867274478761410133403787797166477333977845646423879354167393932003209277131017012908697943380236844786988794619298496285016325773504048255818402212715980558078532889971984731733512821392439803241801270045669969344321112184615478012904559115488154176751626862620383521803257312099442854826114541972225169915789783660622373563054459666268395256328156557972060663652580570111042273598346203826291842937183197689293628150956976525260119881709621184095699519886784442739971341535272156675787812358610613573113176899508504254692509039542301265796141317633357272809921403268852934937904239132014224849185727675631425564507752078511776421597435033488708903899043648628851906068259157778593301052864235765430023949578648740688806936261641226422932320399931478815721120269316232962834036015934886971353005237362879890986792717728669378101001090272737307029118785551565777018597961046605128777152736118198704984688111136828261122088004758499564368982464541019057138139732660887695374225104743932502107433129866832801926752276140467228070244464856786515796994347320218889416671001986404946783051349525032268482650087519986569839809561088708471535981913082517018029540334971078517721840226561749443677154622262546281351917097118789669944646934606464572464511842528170379844781092256729805162083774766450387789334077504065397040681683146965365198467351945567268733674498686736535481406230085190828995788612579178807303899590287733020642078271740670835845814310615108205267770451520696915564801324222568329341875027428967574428249318077998867757736396136873470603620658364324987223270285732264167991268021537791102933795162103770485320114323945280437513598996225108305523390215847993977779819732427862890911458758332221480489019543629208697475028614666080218858181061569577701529197027754162265313612393511716836955747789100068762503584324358075599460069484441154165820055307619010404867705781791118067465067662116544521761005545164757119369733135944589696605552549197370538165921357341849905449678716678177555926939341358188783658759125645722795508712944034357893189250812506123664325972675758598922375527805446682479288345782041276832514346232781940251013437940941942297548462352435138948823379964247628153537441854408924560441382180101796337012034134924761120012355804600474517449928741060025545727787230190603720644943983381095271308018722950007730453601234889909651787468387491793778679639868444313001416518894310914613377433067087140738106929646591801942344505035890572080126856284890419663491913923146607232510953141312037235321645851189215686115363956265259308210439383498639220598582428126561017102235836653789580854477585547685659426358919304825775474067862871049705123337081716370652222259843078244136216865271851370996231629730089462334823157021542601479458939385816590230971812755672833757821650255555263136931168447574573216736550716502273358661374511572456182134049104632772925864738974822464017166419109928691364876255910685385680102189393802509375144170310653242015812385495669278822038322176096586998524177659548044791294776166931173769293506679814546405142445303864805281917174268168609646126623544849809323889013253266859692240341057528492891852265656936505018015350657291819218011621124241184281760475059155740900353754195303836611768554843234548510154934948556276532055795472706234521148978408952247157241064828031893072487979166775033602731785474991562641806145884407619494948788687668356238307280763886596910605265542454765298659589947452605284948662260541482917567723995391701361367828022302732579086585422203185754985921044820175440106236122454841756465266357870118623245631570827623108783012854548865620979356719743280624144047536717165243385067135847446932048485797692997875085071310502030169441486317326733390635324195265645143929016872002983419747575275647444784770982188736418341109036589810981355938885428010187731733995440026154097575182925902083015188710315168978188789570610135837782258542624488840300147785396341432306180094100435106066679243137060070979583075138609377465628032883175804969054219147604339758556729795829778087698817558138527697551433462791332578785933078474526526370613117021430724774895579665507094683705268661825137455807737576398821225123708934655042523683485939027986917489769789976413744116284455242590836573106980650667049040107997998959031298517065818605313268882651723959116953592299055096635138553620547810546371333850308671647261008436124047815377546738341368310482265501567223337247118192305311466681577251154095289224519920776416700193333245879671848970596202525805386933215650974325459168231450934087097852571994340511804153590606805635907336356766345523700868636828126958422865459347845550804577054566220718901914337018028123368275253125541524003351821556691075542672286759383033656279467287706467971557154975261078050464655674840451997172669569837711330939321446883335647432742133512253252391020313388630419274466228885020536214179042662396821847290037073048720104396691841409839116768161148137442878851564873636032503319292363122894149672252761991500608329490643588775363417763276736936981399854640159652197865573647849481939062255153322214152606451253368842109749249880536960223294615947278241440317381201707920892457069743876661797430954399894940274265992858338524219277477707612681660476171672234175091933426217226746671622653707883248112032744823241836322322550188744085241984610115960799302880480028823144857014377985740467194633906378495718199933693236902458407315761036353345185138026743385713039705002659639487952190864777780918319786945965606520770182630100834890999170124747357577471179941893306871757404036344006765774728227115206659318432750524816303894136452995348568587143581550055494821138728163510302414531613455873485517731462924460056062004590473589091957255486188019910653466013263321842989000392324187197669391529995703742505679333391208153207688637385184608498271363394621388622268770674910966926050611394944786259664607414171501458538446042183806019097064442740610144932464786839372828636464469224032423775476937721378477450401411754597291534859459619437370637051043074917068871111955182076192138435084088324320951182105791556648756749991082598068914881986332723927237541783413636719611280199298637192579459315007420680565563384129743346934170684004835491054271095812376106555312501107237949678483744353407982407085629311995225720106107900753902029423145226411903718126960552351300626532999646029359756937843674913033807908989385621603995126589220447246929635065625329777149997005484910540412552674431480435108586434514599745487598658176352281285085273919603995094459749439875140818122924688508688912468668524419992388822018093890023030947892484490617995917054940807593101297089051668032667419603632517185094776877214306976160198798879524270344661709523694784249331068045062664007165405146393258664395487058173111780137246987375194830243841335292664020398788910137328893219698376885803173976977135339832902239257490988506466848024459839727799593853223888669835549744625844545131365542168351662813643121682387369558415145715504911072709353583870285469290984632662264060737695165528248878722423895640408765420081148651786091318764800017607853243357327223915438309202773422813767607843518706825482978060662884024355270342601815102215467677107530455053522846274197299511209666844570011754446462182511663403841792238422851786425618831822860819961906266004228747194882003430905955849648154262390893400606570064535173816410047566705030213360631172090419827180376398266497738575413821057908707253065376177122469181804908806965090833451782154778035011155787352997978453063522527051171608264009669216874133994605856776437370424724169895968723113162485843690755050906886713809788350796136150298472257375181737633461747443870493958001175765344843188425307097825521802498059373072003035719435396555979805977772481443922174997855720212516687470235892848679869068165747015481240372761809585907805956508468583810752922788060691970791076021906499503639030211630699668207536032443877139257491635278932055992996836280988187673225588579971898637965014038794167394400765820733279250206062571992526787901226418322762475803244916831678383261770340743510362006608874997047040108911534731435995029516593919432281764239787004416591077816318592105697742091534958787136765748938093596436994917072933079521171075116380001182357963449270466109766300462767396470575240365660619944669826958501934329500970249941451350098510180137115424388334789829143270881459870027652864629979058686983463799946912991573729371064243527689429126874849330548728954323835451261708001361882027030327666627345558998603890262263295535281128383823784018643595630321762146222347640128078498900567433809650004811163830248124469781670315811514178826099211914036577746389125882119527311038196002342975045099672609356982169902008554699357199759261695033831849785633538615430284718089065868764571927687630083832901735569111262536391672931049524320782222694644535643917698478128515433878390830946104357509892416424534233152441321010247497569863649627447288310444744155421127316422353180303596557155921986561143566445865128580944196371571490293121000832665953027128332647521818833925566631577451969233832230979663242600210151948815568880091435978293442788398752233993533089822513481054815555429862763038020272828636340973500589150134839901379400369879515114903250992241990436391261720858311002460990886507617415881468056181962749210155202363184238195354596343857910353687610745344133283551298737562982277825519431743656535784939678885258789932425937916004851258248297240576301556376099234275424301386297438705948865421586115963843479979684037094783225194496190346612223995648090314917158066808078261753878807822311623106728968960282015841665467370999632379206395445837095074368098637340373214706265132160879168522611256421534199441473554166975733059853963572295766685134257545678711388568884557834010227296023882332663107799309627387654088759868944357335923629020057988955156834366955220362085308602008485944479423070015232161252299087124128492856105983204835921587624834649201035479496698417180118613422046589479684314940318068901236039979592577159785738597934924001545691594272506417398358526797163143746780614378129460360451673401767750982340847232588728301378607270784741698506768724990239283222303848381781133951311601742797667871939972941794105242212269206344772443163125448836774140459203928124810974695233602593039369385198987611246146064640248225359491447739148766291514957266681093131416718437463838426020498890896822713447304461964975755119565796335017324348348941269487713334841897846036450806525974304690861479064629508899718324056112261410320129817290806840971129815860509687247634437478640755375827011511064324242259064838686491453250905791861182915504875126881819560522879158060880563766124634779525532206089687981018464703951334323397613304598520819442451575046740924005218601939860402945777413798731287888161354794654319043962829187868472239818576974708281150164055032465104260300585071508073773264144871677516041648782860406195320903970667929836660521291537534714563978668584529174623153719060996155302906750796617174094525105623738536879314649902181705036217942104440505793616620313706123630792750938681877394591250202847848467528741235851831420081133075262273755665855614124743849880651523141669624608766675576692864449206203384354234084568797798155526757181311197432365580105350915861569528506784634814347813682751940506856714422788400736092113522579275097193885815247830813367702627499224933617254038497918931585217985069144446266036026921810921455737149128389389219820554841381675807003482679731915810271001103910748029672871478558775348149261041938282097400892794279734184504347216331795462367652080064699882163558258117286107302347644661295577525236237799942262978557573779053912931184287680128300563034551354224750089133766688118330681965964186356088335827626511370698784325136569338628850295376375355444312870563189003667120471696949398637861673665820669850744065092418836329752827913434605010942431812808991991826933657250501347548315738533453857142746553187342286810988216460513868979267014699967884355853001527564668351785310759093388424728283273567111504516070109453846449706117819663848348998784964210406162936145862335242663494850224449080100903528686541573005597450534334110712337912760634621109709223561836536844786446893650023676067180145217640745519529342645689908490427715470157750155151530509917908390897864142238255402551426160996992253455271247057430713554761931013664497955779680841446380161222239564227541315312907945442305896426368220579715297665644776880139582694822157870281907051393366579820388099280197363855175244217431497556998138998730029885834588655063182121777286653991920382059604256581783664477768610860337716164895910978603154507673162911907254641705883345991672828937369373604529732558787943825425851434572068869134045092893578852200324000591739817972238006421030549026848049301198109785077111936316174031455990112658479462416938010338828668525535509789508287642956901898390994629417766799744436359256333250792428030962870233276943708753362152781041229099022385036401146816775950001543636148247485328963330197688992670463258425579847709538137052988791191434636946281057105710180327935626008533414196178597489596187359113064426888402809076015904617782130764999345033465349397593638813744004848735354421492913875440767428350248593932557336211642518738137618106927960580526648430910361369287461186611578658486272716316600751963924999771336696516081191267078240336978604918278086383662532678231440509238160243463442411477212824404804090658775868501581160085314622210453123428673725436186181155340254577662700102910037721998386398748588291488773744296154203779352048079684744571276458324013575750247923434283689757892934740209424009935526254781837744299794981540622686363282983210847918282081602828441556016561595123133418242766572475407232842127300947192338763377584175918026310775967227827163583691445748287347922223687478548375498976991399140428001512533679093893434791081038304593682135667876714493458157330036772379641234636616646402245506014757912113191753190272222330623511664837274597863254507667688877261989203088010446879020901049262777525864648167508639290163555447408656735054885558220919601486059595691625345536028186471851457667237964921296558504849793082366691631096255241739093139163310663913205972130387117776697326452331518591085144104083975925021471770224258840602646443453333880057879772647927422585566145451751515766942229790232493676339277985757388655365093305220570393642730657189047761269630051785998905107383819563577678944508601785862974804770831149706369872965719346722674321472354464813418469121378196730628967584001271192755953877530217947723074810002634403700831229805401093357709328706591374764293202935619548812297944990224728269607450024855259265230056673793273175923344964589316779700452340421579077088504073067869575034650129597620732115995675144869992843852276343587076105506606269051075600552948590261286955789798917966672586376290423235037566636484634472591821824670487752179815962753980761123841034912242063765832333733726550465154870427993002967194575629159290370944318415957248149889836153968633960483230554319723740381541531370144329713817110749800175787997694912517697556437146835517423316024409268038317013526827987722391480415682347116178545193759284236105390320138644022472991841127076780694775246272278384349586953209942477664391030904765362258479497641635662017744533645904334990854209881331997381531323252723614167806610986613418078962990869064437989187361246970700875568634524118033580682429951726724895591485205592173523083566656935838770040754717279432264228418468212842441239985868013207701349174966243576016239585713481419586512938996772006086186888028433666564888292803952753522485343070126990203026240518984604520075000700303498117914925065147080037965215107587609311752117712561845430370654114428669253489529560718639424969646601146581713447038805023021690396358096449323687963140588832792517193232345201816671297505150832444056239846578167614748988646253819170621739089610203767049223294105094781115599570948087225127935376547359943164096657635981895985839321030897468060418047512826886480855889838527071424511901850518918158377805250759633303669555320421966625344139897881724458459984323417327954650926365547436642178382268461864176084141819017992405792544393212446270684810516828200908018495245370589976830105810178175510429130604818639328221232427185991020021898905635420340184722976440711655251259505159012445079441489353189597270120598636185381775550465994703491734872315059997003305610631650134926161599576917294620291741596865895627544701846272729097136444009152715414115542533833726979712321965781333715743378050866823662446056347125378002426847234744463941776671517895945953327377713748353640432617218530493356333183973410143942019248689818003957197296000837757971749891824338412915493892672087647624450175067710888134071360205615866532753409245336545091426345142260695585725389558761304136478284009121365767966237798278272769352388158168430451411306079590259200986020387795695498233890756420181945640304665048226003105165653399385841506126002334112082405695057633134116050530072212542761855025726657718873258761212383112906125617830905976540694187425801237823837167327521034457780312386560688954911432141014430085425165534955735999519327440722116783339264812709171300199558538791442561651030842889927485035166797594393823183210241035631919760569830057676662247606250843974975698215074253694229040074753462469961820600259089147968640539517250508524161870372911984571858511196204772686028440118181945546182184126214134191603345873598467859778860439403320766304315781235508050507249741732572296275706583686276061368050447978785950181865752323768527171041420220248734831792620532733609074730567035764295426054246758409294359661841664632640470775868539326355795472976724053547502572626224387088554089536967262162621291556371369810662845226583017612098025882963774152219877223243382956135960799235369239666880744968065873654205228745112451695721514197718306889237711764670024947100731543745926552538976597562609986443586345724868230325796420708292080153479038927653041036283041756708647371316457800720067489865916927424450709821815945399928698095961238512745582984342243933564049918699037302942781462970212734682983105152616193297626486598718965172452619466567452453334926852500763671339468987388297239240497326199490972958355369017647433285411581446264146764480813857265708392890952612132377783598104437736627145523285409526075554313364766333000372252663593774461385228175013919931516061070194237013778835968182846867354051497958190070264158631338209509713408837395412730899186910974540175137735047865577044836035129111948856987786469896995871796429254033324849395220656553455124196862159160382815506776662563190265108293010520000360490869463767619045864264987864644157278897830887255707959222214414701167826939573363918498724927217612067099038509735482002179523521689250238713706868498330183712435001873355096951200405319062489460787472922896242119100029773498320499707192202428322385062862491833669441784053069245496735720874248009716247057074628416276279368009632130749715909483003099729263616921044924954463809254816385669874327957093655061004803411180542540098331215590885487738061586202295132893908227102878770487057349689771350524141348598137506831396763405336329870634595349794616021618364190446438118328746613238350904301381322422943244086968352404759462052875581878071704396182579590782490340553338284890130475666225343324430093467855411013569120234284825276579101478441721265647775944396508691382746021012320600136810178849271542427632373463672319989085750834412091777811588042376025264559065922626162878207240129076968231127273822438435869273794276889989847161484364851775842879350362238990255790586635989755466632903311310222929876695480136086739414997438203783598744589277009253671400187115922267802492893255902063497787958346311583078898322151287659530248943143458160328106412950980661672144075873191982251709388221706402760707267333742506377135429622852786526223631514179341402288155099594176225866884964241024162214260345296532414665837756814914396822578788846780591821648489278344666194815978231602556755000599220573598843565558566391130683287224312013779308530503458927646402320566401150327918539383777334856112825102633823043663584728306571951317168915341185184733360033720890520483318430654375574279192099560865115471775378101095637556180967272649131454762402772204040521016049210443628753109526170875501443079946196131289656018625350781628332335630301550757205894227995282751795630013247719767428678290133603123778471031543451107017674483214281987505603491507596299911451588321882086927993914898261182416877658116129632284441922209699029241736096376536299149829929957951660339805861836753944327860222751698962115225370350767245118453739034816029471578395852561497914094511824826035874731984213014789084208520926987777339058432227181014100974602853925794962752321927222175806656184989084466294675909967152906108539856245557689626237555649999033778392547563065101537850435630620158538994081127287369331786376989246037800352510689790448536222414428873607889033335107752643698566209569358778797895185014214517960010342970700973014602054698204941049658625903969898839107675442433577699867369234347972665993647428324115339160688325726899556373704646493283038380027038686792022657476133637407955385376133895862663606931361325110711876762225725202791163908268378306090232678456375491356183911896590019463254333654634976421089053679346160888006199744852284110970220153026503486645989731974787716693769229769507121271241829048884770826222675868207907781801278738712226746676019422844681846261198119193937279230024214894947389922840664069468318319669039538272431743753766116836519273069767780184370132780546528442003816131465172315367645986238591552332413188721959402947769003551205916438384647394077961478028305432251424449106939960495162975982370161744543212958969629690273669324607835576523211879577380302070115348897652959187999835992163179871019873303739616844520689437035038958986010981518174763843231194880896539667596555613351631362408644890700886674982831684594410658222145311770294092333945521300868562539319565081576083974275698094361725752574107115592217848938488003958825609183655136672926126967083438401848360518975537721373818475956697541254526888530017135634185957800324903668817708621845639339696355571005392799733350445050193104905305044625291692699990594004929230900611990103946680215647013162104368236760312858936030480521679727701580044894033876319840306027170423753379038675026417267464166021474622974942517017229737357305474928739979759393922380984719908644806877602380812375052916901641647857826961796016962046531627469367770082215868532912471636051986076992213182318098174479452619711999956600911738605550992085182720416220324152395761304395462502684522382614051979712411811997383523870180187636151039239002037556162455278335294055164886074975067435300260205035126941594483092310539906526511938052824014502477865873521197686263300889627438710039068222252679885235343013071567173043423334821292649687182329168535036522071270634770960662475154418662240397206456091977511874746752931427378123852662196727814967989165135938936521115160890683544407056031805777432584605721053239151930990330422254460912213444032733818120652312130915210961877468340256776756808690838416405467622347018519238773841136621368091549880830187780312050544402696468038157981125893163399171619898755812014621920578343942363463425894694682322958639057742728121076391390675844562775180785068998319348922182214930401493904453495266605649584341526422823360731711093256536407490794018129524308283578699734773224733810137943580259683174781870923382619730464188436553734200187029063856754585838859855263088494613078290276639877359122128980815786033240743079058842771902155353654821736978318522274457814057241708265031967023032536327544341532963123792338466371364151480157027601597028232757561230891022820636156366861858651103849996612418062620507700144501982522688217570207704718815515196227890990931830764930620721508985172432356131278401349066453100590739976837922557954966689523225838906376314756199640909432126058690892444693632678424325291917828439388702025563334043582392610093184799066131918080032142084712903797995370110003386459340585218278776618237032271236975537764447265303239210872871159721369384908122178289892771152854402383163726184454805046932668332375806476128182785907101500660499692721127982278450585018518563715753289864749168927454692177976788430053925462289573569666811423456582482957219946534080451016619845260488381002778461377401022560681801806200968076591859554122518750722773158773018382333525469677691049356683357122271686249469158757887442356723686219192099789495476689464050480496083224966026685519878347609452522983512625866067740513765877373529139657567995152592736130012669673599088310616882675700764475587224467719752119375349167227728174208723452169919613273689617688049936093265191878402144051994477796648493400899307089240044685959749864908886548083553115581558187247778446577916815062251558966351303101248248968917487636244956437633295147437384592547215393529886101735213135345152497390097609480994780839527029384421655924485906298133385303559247398370093098798197110413260941073765199949838458672935521891463051751792746002184303334044734409368141814098469939329259930264519700317336461125639267871505231289501010440423370698278972535339982863891043740902960347890207596482911443006489636843860810228478095479057975122486398952522319541077503960113871347326799654960587275160799105949329118875468917663026156285118976593540922291712767040989649683305100772213974942027951181152990127460565671604650110099430972759271230381485329034921706831277110249409945119641613671039111402013953805857644091511161579819406013822827126421275732465728297767048731115056069086630865845010641872705384788802656553231892783206076186654605145834445011777366699093757781078723890953442292295770730147384771149635550237105902775762918816109652381455499034009248886198790385330847627001541708574978066849453914584074896185985273581038277909034940397746632005699758815517962948541733873307651618324378430768488147004720332335177593094516713081112155998880087561101839072960893874191910625838450927171947223783993495294548213367695967172140540924032392366474121457877445837644391719545324014540269061108624446572491512527535735612185456160394042223565472313270432488334957459124929789025659162671836853449455257999621915459315396643666433086627460037379993631722219283326699925782896421369113333026979821977951938100541783911575567109411960827921171222050471521573195915182340696048785494593885370247021393592445586250273232625304344932771827776800856621782122197682727161101795750585905982446332337908296951360926846740372826790049322529554309998170855556421959486794706310600738621874555096760853029977676278595679052296515722762503279796092878694959448157481671765195350384944309322022142715960192354570027536441613975467418385609711262495613314834378049922486379270094627822635648321196410546602656647345164347119655947331210419234379300199190717867871256321113810840624513348322704049535302125473076506273883457471578187555985521106840516890166988361709493151865404927464649280312624734350856087460704089997519681043739068421565945703045247578362593024718525561137413310967842704482692503231889079344270574126282106465053206855717112448197693074323694438795493515550618679556496388239488744312045435569036719232583903143025697506138056057626217601940225282140239798775182618846097298256766733944235521172818363481143802023930281363704309689566900649249130186399140492592087500284496898773215020565569388070966950157960825578783898447595978111912312942858003303425725817475345778880017120776855784959314106930120383940956776357053242282304268008328336539111335580758634953599252551596474690112425055859636000065059847756595247444961803750608029298661597548638297877351340784877070434134808068417712555211444936303638871015509343078142639668302401813993507206619980364570644894045287613510224007628009247560873621258828784997497718438845632120227232677645763601272286630166776328784272460381456690274085561572604901529367210919814160776286659284602143356544079248782320757990906983141475270792985874069522754685335481039274290458272682266684796275505592088018944806940797508899651158976337422176493625492081626139300903806351882682456276642190132098008304480662115995682943811116214926822042554006861187149117337780614132785996417108374752133355503695324551224918890617768404623483113319514105863415861571495537901553807394666235778696772350844854599613863495580470764479278975891760885842011204655203267759046874079474727919804053746153191841245175418693319881278308671823778831050222968840619979983178756495466590255861764454159333357294461464999273720483194081051344857989870909826311166417124512326818875996619327839639841029483406213438782944432063452455814295318808816138316991196483453657151967068282024730545048350258922306274282437141201038521364019864973718975459702412552589923176818343232606235494346563264044221691378615785131947726402008443717245531454473172863891124235142526621442876472875237068304881217933005524752996238994501686818889689208747012706190757703052833817973407181007106916742784992808986715209319609479652947607376800361674049733508866124781584188459565421762869461754693364543566571327534954495627554580386363288947821109054509339720177985019456213182897625197167536035457324730471879568261558807843831634104653106240289043445554630281448905390022948737014291000434581023246333731145860041748361514180223616846655075561695311068778130035803775674469819160348877522828719866036730976158932555970994432596740624022153225023733490214619713621101595244627652132235343124458032446666413127844794494566656906901745336675574918294881829731352016394808450233825032990698251119387489404490305015175119954881507977718255307678284970655096736389667756291100995566259359886562256286430508917636176041554970769838668581595618394357445748853853330940457602418106515865711453792394811764336124330690459649929956672909061375567296029725490807397241163775531942882109517283464806385369440960556109213210976292823887903715533067750535404175937236355303734998185238995819680987309227443613700211619662371241460638302291030888034478813508328233672133633939500435129029244992308446143388958061325916151943801108118894765212486305847264020847897998554631821380992986817265388723963433610488866902424829431790270000755948585895304959606247148670746373132073929520428296522952839600743830127434469424271471898648694438065718239874019201863214341691742804139579991519894117576358387205445346821524121503547382244418486600524690292468068578379930929791292566783595216178631111356301996969516459828923726424028626213328442062026755708817862305548805885462647225630939838270660783358592937092938554449682478933909970871158150313010633489081127290215603326966533595220765895662086434764717750390513363122000264312714928475999085335516275074388451551043733534398830810775384454472828161480333064971071244248303033347009695623911522762821308906314219916774946736055035775862814344980860392377057084576058582356459799682325228179963819638587071632555913160433576412957299343918912611569424539188266393678675684144077813701166953341488661192819830004521969993241739755597689180657506726182904246406835461933633358521611711404573989304708216268405238924850731434375620055356430024489583744991971410514665636117632764193455321542504382760871063167219364730256400013702714225945860285950944534765807647008884902696235724518262119678954513223973443482775254622823816127457911013178385797163960138155188114483461440372131774102974963471014863602392590344597478595574889944445970988095749673654305642823153785049116675002967979946874486276434256255749163356339312649706874788527640621279907836128718228826775820620492605646769938480773557790928644038798220954583389170476255446325305523404477004756152815284626212889901799204135114916862362244437878122450012037461691692210738157045899162743034005175888148604082953712865982256305227359545898423548908155689103088086593552231831806021775552135135103895849526527510745000230164568641421396845981717111470453644771956662709527577501602631228013101231853059748352203126704637638166504762632653381459503457110809286238069416690244585204977769775141701000279686105879357232330978317220651567768655527740403570989065992787311553847746440822342563693149295608061549568304712726411245053284675811838403150204370192565897430025167349308451660637522364646988692064635159276424977841822926286814850525764231504208028368192677168004050264197353636824987804854370121540182628693701362689253397708059959154832224901910724027875370378584671215494770549486119869953663228427506842453897941263528399379991136380331619307839194417373128901129246328242888797178017313980490008002679711268055251788785681116124351431975116370974628520872913508534581840132882114914377027467030627985181814020900252718504404174809350763886812298660769207891644550207933133769834297438571466066579133191373538310191896888912495999804855367001402451747738101835991771055276007734555505378381620300151119140997941996854647528132983574410950389333882842960695692570151385656671394740537458611853799315158320313518853060976007120241848520101144399275553915351191837995300323246469016710896140127514994138833916847097876323649750019381550899406283979303160198837360490004657602917990565413971968370507529684831486843872624683659995613110395212704696794958841686068241074061192862045710863264899060746771770978340478377898856222594316140230428753305286303119944440126851927494421442404293360865850328838684996964053818617208375365036200165039656743498049436349287478360855130890051230773034492626338078068317704635164557554650058091040683863853777198609923143988031934353184395051721556905820890195946014151015392115141733241021750887570756692524015857873836185603100655752529564729915060880076309107222760190550795611803027858782707727619195030421046161543880174183761484516085541627100887809967532186008751835355349336012496389971510179501552219974315821416387571231413964421482009790854577570501724872144192650830422555328202220044843194083420661984772375828818083447785925801979332657548925207361949236029351405202422636991555190607243942076120013156604827073843099505788378873843676185178440091054367926289083713398815226651683402145106677719412078004094331003845326632381419771047249470370355546771572215122608770593453267138602447818418286582046714279164043095477923200778879374099795501449317325741572089344891098584196502864711409593096736233223377466392405487855848257091935357221418358593678396121811036189811420953898468974952038794099740497764502704474228796092602073775017225296407020594388374242737081979629085641105673494576835224700134252922336420178474129843383191791042161335974999102652947515749358225050483641779426516445133604704346461162771338200269271298561993527327522262503343787243775692446448784772671891129015716922378881407615428540258921158891344648578718104738844437899819231856078560110133733404095994845008572090479098770086144790503941018479078638822904934412229408447985630093002335753770627209996720564080853878159640124088067120266997009762569997632612711201114957078729379278968073890884186395561353640880300634666083803178000253041124998353728136096450135567283366065806008531597491820505138053187940250792503642622473721495571100010597051629864047459052605198719551023711862308582640080063177311701416454051775092567075157719770145060563253439725702375041424594542381677858688538525313559956391554856703340760467545186876405267634694533518911423681994512389815429969275666838896536250910321983745978897728250067567823149244145971267765831566047308675336035082557112027067103847253804392609163523628008713642235139268816986382380888562626733364953739715223523612315818587890579674335946315465495647248565590373551299559546462714044413652866233506253115816170412418927700754084676566932880088772290462714288545483039191161945930022380190273263695132360822056000434454218154662970577427282524991681409296393672080057942717845418610377117485144908757562252784241034260468610961326815026339126721249119518063503095098284141815313438782464507365896398067840833445031136830098410691704384804270616357173755528424787994770733939583593762472663525303891851918881531921029885029321333050300160798210485138903180177149805190291296745485773431577311202692171363309648754504703796637150654998048902105222356091499643459564149066450179589183072689120519688185100761064430016805664720168905294203892853263781021800532816449364501376087390695080338391597610861668675245430781856492503315174458461970460883646520083308081589903570199849562414779961911649993364657464446316048238149642385883803031138426174252988165942659953785568929722151098708216119165424095370879729202078121085522529716797531081695997482737690401301618322572044239343272569903057395903639344225053080951281351759403877674842028401272981666952159203274272728510228416160645109203643156347637717010308723359207469994455586461293345776126173327251669081253421340533492862997138598474582518718841038598921626053600739328501745869956717612249996797525470446903433329888261492421507313174315919549307965725917355072471812165656238589721681306476897766859896548355241152547811606487521996695897161087255083963084082473997424892825774168010879745996950092978527402788279352082845822199762910375143664410806655702330715977123049912174375478808334374037946310086370078980500768592110638524006966999032842397371753586511183951365637799222372265738423200231043409637357237026916936183391731393970851698916657150757668940244970761162277135418700776749261544741393382389230204664232043240547994713682683270570342490233211134375305161385050207365764707706026625590601926504830951048244722393497850560308827947734074837709990200447571542522332529252754471029391235695664086347636383253964069735061610097870968544885325647183809124799298185640695963971482010640845576702119370249776174813929241394075283355982285374258423812541026308802511280596601997410218632103149144386176866690889160083059951978230171179763329499172991041891572545908747739227591532498138022227475656566901709011107470533161285882199954012452928375611886818585363385456130961593124520445143022729040843919026063655223900334347026372601967074886220696228360068837158243299758109454117411610879047965972495496545543708038977655417364527763900868810384836579650432646933191936947093516529977527746939793390527339747497826650311152157942516091939985446066968671648284652414958271505745750229304073125422066904065345262344936938857175970958278890348747104543927722665672341247121149279479846638422880059741531257203684699499986121195030816353578743695885509584162283136647588488319511040335722679820811834018808701227196382640286937503930077447161654120914104759673727328555114587415930952314561014122236840492423907032067677313883278272519084137703575412011250831041755296909043838625459235534005739842519069486889672942272214003434223013568643100792459663482926196839360134243384202936009661289024837789646760994861011850490911344344569959767796533358169762404244015572529673930512461740111031367710330227127362600789805820762138775732647177662013635486816299832141654783939117339189609825967573495785360208789175062214633724651003996731361158222855221511708299326400886454133934895666796360744589830109076632994645401222607042684620783969137515184080405517280900787851653488593228831804386961306246143400743065963830273405928780313079665239621532300718314078502649158154491617657192384095954055592614428943738931412425326508818329174617250807973868775557027027228273799641807206648916254627286255283969848419828984948992106987772871821333119200426132375133921590824872271196051651626276167945428253840958223367356490945470917669665612513467454277943276347026847757241556477676069574046830510385711540816275595849822263488148158856048440013762472836150924978435343075187365483868392427864412894859489746501888397625241155417332562867458120476961824703551776776272486836387255886582333836576407591296507983744556966221362867898723464663137398656833601054365383119362641387095629220429722788277192836444404610509033774834561553801386889312076344161487461224140439762272653055438127373661778653383605178362588862141741966313948925163012992523881800469671538598890868073343811267277285006524117059704223241050415092600513877295845680535906569596323938010547331939711770975731189882576351777641156107779332192585901522165770544093460553519291912413000961750074343670099797832503673318873754982274342248981106937500183495974614070084894745885502642012049282859103678572795117399724604629937866287761532632944655818791240646138807154113410248619763132140995264242536942450103363806418521527769276119784980504943234228841295889749343592607408559199858822276766330344485991262095004940437651628982775312923301395168215585176344481890612082679390914399505430167245176123210076405275591457236589609290611844865120774641702151840798934920782343601979074953613062308506711780565533299493279217619477249219161295001761733882711915006593315626396752068460222245172136935147975403937361723722733439472460794966754642132798405785946618749576913641568713436243391956952709107224388081744745863260626394521691354711880764001483660352783443160363423625106305622575572091566293448058760545576179915508090587913699861316606460289840485784989649580807317920058013702751402413276378250990250516059775033043418422730912154565042137470372068746204068456793911896704011749663307104763804802681558316378699753819008017508396151418556766266148317570510741040282022009304393019764312695449909867303391109976796181755839311484617435447964677880082019985279277745767230756389739861568882122886859888489019355548940155226280898960088564989575043826102157757364838412571186237316930679272865328647653922748562209635749557917879532771231349719600453359286916186477981043747302515190190387692494595264028704571524056867219087083167801553538533456662004459821206151912859605359053418829515756772345144022082701274536651383643582122773740416261457919463827953817340368044309684767510745732615979895379843530719545520743472448033152477852562916519563012668411203349831220456332646886909410199656568182140028337198860619585979225075407462821606724839294184745484641662978661166830373937950139203222192339188136094239065760629629425605048598486313884573010906747112871613914599490981805525726993673642219952299194227485521626786314795751962631281593547073140380769258651202447847978727468669363589867686546064000858222333211111657595506848437577389657802963515549408814381396615896889522620975493778928202847897630432388858546918075216467695623194551754021900119267637634054961154085886655832114418916415226653799047992788184089667823687503131445848395031423794688999960068251354105207116562545657549297924510826449965243831976160688849103398763088366094885863489894700370113442582358791512398986411107434248869601929734655004169169333582118266921201562187327306324341552226563879142775753026841853414748190890317952037795977510639212975927046222036705507590270178015335809566603231870024147013856417918471539838066969310987898835357284674506096688710101387367153214611301101198123854295237661146988515977959403804693988211523519962970380049740516047867642390565051138469154624009431436721554128491966463313100129792705635640900704955305180395860104669235670629290817064044154959849591375128884041374149341089871380196533524862804442841965273411722276698073194289458340224015178817390639051383599723207473816098669480916039678631966290936090720345626616468835496316443886528320113180281929537200388971745291404178341994255702746911244130325288394360689911772585117543314059085547610415453919067485591833566449522246025092054937810851753168833516236525317887693484799453242931388795231287721171497515343319145811635070888255391283889726332154350807716766462564346342991279151671594843622243907584862031166627952038039821765913394869057185527051090375891650001235908154892220335117225385514984995327085170323225829555849623969926298418601393289024886152458420663833641404717735223793250165085959699336152362216483376260542556632044359696835919975822319528934517177945035323216503013517360196834850661371926360841328636971065724449691185951581670818741958546363052627970926960933635358651567386439851427522255590920768030149275227276532887243628185168275965703551845123043070561024528742084685993003097393859926465414468390664700275589983749152240134465930364773193858561653847281002131448246909707378072143252613618889204350620639627951051246562957612800300224435332311114481379603578447337888902805447444752519289535729626741815219051730749861218185223600410439229680636406238324101087100360367150391390530432687534513501488894948548884416170839119601970879094965705365728480699468475768761855685326718813235831632195949385407407705867273208718309275363434942900594866414402083901603284045739875386948573449392421732403196778969022986186514158554013225033261223837815872962947170268662964122724351361975746730860824040550528787380862956299173877555715935915821459113884201342651578212593974579374774851779256057450497451191092858284184593097218011678409378904837578848905488281879662855450643755897736024366057775475617469981517017200249053744119765625712322388387146764297861853803673135564951796502009081547797509422238826114791906965469325957388816585636936416110635794226785675518312142642145268019302434991920640145594859912730373679983415375810379435479257848286122614689419341289966340717015076676976290758799420556034347977329622761287339303821908855406495460549012308790282669265293355038981656681967292613342199955395817074491501199681469654209673887101228677970452838247386701545755768992789994762980951938647680372493630569073012591690818453235897549701991831539668303406360980233661474147896841799950155193914094345947429385115692448582871118525046703471160857544699989361660251692319381334410384076557046162535794781618163063667719626260658685833435899109688983853298725939661397191439584418743391538530506543729248377244614502616022413900999578271284801274926943832781400653098121945231353172290838099801846335497293579211660204093224772084792945690885496888486434462208169526135849708737653488937056236717444331516024336143973049829602082102145850113430233643089856420704436040001950559189180778634633435078595289990349541254371558161333918373826318180796562901262088749002898756829553239050822280808929418031718501946436915660361892988363747074252236683033611580761831560465574431680140224060658690013802623724643534800265440355721231653868690487070478258797246106339427272202569118384000354859024138701166151255158433941845423901743368517678070658242682035287677773725810559856859468256926534072910093958831934367387335253740568953547532491550288187794508291181842423328334132719662895652689563796547929559739149031045438975492943956378376597151388078533977168299440296941397094848638292870175230442591202687587486781802688711731072019031391483483126665700575295382336918483566717993463402465991731116972572183504708478026453066768912003887715669097339865333170723189566752395134683917973414227655156489897530522043280816707406652424739232240253229909638588629647611631513170481994463205584380770035709986982976204017751408843738721358641544232676008972045532559639094512541379328494669080601138405161100441871037468568612010219153082670501294328391846670864131895412094752006348975907172786873018131385569917057487390485432664823374900351899007610872235939961238778281747052090757091676764154079584173036603710130851214058116261934913115695617193005384717963688218540042783595943529348620664985245174896323731135287251799494694795281149515759924306735028968593253519338254330865958744715195020049446067913619432415836344650955387201258000436423656232960112108745642379071884522583332550055355345931400653958230003242856767648358694610168009257742699746458717564422712779167558109546435786840868014246464375097524656767603521560995017784026687605608962281263887057485103680665535905347880709415345018844303368245131635710344151473809629404727854801242233247835760077561686936969700250188053833303268484588513863871835630205637352807404372592867770548593368576183796836342462433479256317521208191785125469880810394411203091760639474075317207969151692159532202409790270885611560857813618653276265938782619394797612107799752604601710595876774955532874096579511778412542047650926177717921475299255673240281126479906939203197000867291646619259784181860665055903045355346218911266948223790870074616546090773600118245191026891052319764871595321861335837372216556809509750681260069748953910162038923060166924628350964662868114889552463097072799910067264599024064277523610024112674561013966026358388625561653613328627913826790579071464957435165594455571191382249164002948705444909109646207767463782290739966449248833485848738776090946874516426656714108108168047914466646814999892025917223913854436717081404928008831774254298595122853327527498979133085274086767086478478909685146898403949604040028183505889467261900920417526962143314644831076341905182859837935614461893000818238265182470897824356746255825124302882280536959932174909405025774238517582003279820447508737040925048094880572265279224432247599754562301978262689553701232891915933014464136748568504064247324320239321508182182084125392996780576467080327952460253764631862282528941906542741516512052837054946409729682125356560078344771936621929812736751309632035581435040429756787753044474620342735888661013396780174203577704056879887088557071022194345386973447478361198609401927148668275578311206303806418008971874734685297073963778565774289620764189268909386003111518900888955354364265667011465627179405463986475273523955727730951138258310793606435822134485397811384929834335139990143239780928642608229706752853058043485722484016420134115533261708498137601521503395622245975655972185924317062122563332691561029395942655280117456488439793683956309161506634797949913802410259446086145137030679612788304387023647217004241208516742764663289087381910306469414692634809745522645711145573022784671864993206149603932614406053482120921991407043347557059146848612613938736397719617681817179159909095270901632212322739508686220316701917208817989175956982479924993441768404310498094786370817900363777727658152539666315750701505708471268606810934255461992526704273777820239769099467629780327063450710649528919403336041669509645034556899382248001837949188690614556455722242949550783197177859464271758273690276932251492702517202982751120941897470397179519784449051990498124383940594446804623296496365491034121383041674874924243019058576657876786364005168371271741611494018711227493747863216349886160314023084906546666774850863846131010190912715195700733961768192299065632434682846848493822846613264145111977501558565015953907455343376265673790938577378497904595361905853430125274362995380000299873431411404035293154762339240081647718256723766363867451386050881731886463447290977632715551112800953902469593599652248930866216603290210224831831130604635539616887715085665909654375543619391196085217957670020513645622995853480252306808743697275126856401740133432560205533766653756137015967740136815231297070089340436595498158907780412307448818438038921761260613014147204345002496769074979882144040666695120424309211675171013583480120019312472924450941520077723827339966448752151939578710868877083411423934239032341313627625051282980118496420199230096426073823604046303443524419250295046669785359760304311107826113416368336334161943712887983008958664350054812155629902069549624138670939584821572666452609360028534069367925775092429152975095857523775415370283945128106728229900722884016266321428249931199391877400234855001751696611751701316501508559480823206683307597711543270764967183943946390683632494588457783785578977321793368043730414071610996315248856688647837270552371455995654814211311348762835097079357997508952517810968048518683450460197890734185041640070981176152772363561308233383972073743562161999148438308762502668559315726736799593008116100791410049804789384622472340174433268213525175417950666655770999765343299186555247343496188469357244806955677842933541876782669071240512463500607123870784139807116004827087861985127524812334457028407238966370636082218500125800090907342616176955912538891198988170667448624715595510187210803264233875418751299980397904451035158390273255237925735159135103932518823935409577084009469923158506768612963168965266733380971103278909745329804189386082104314766951592539321772341522923991446745829404700246239268884113815745613889668304466464294190969011987978581282430302578733542238868839673040201685884271022911374199542760395546097655850985841138877735790924600094205989522782266968969946042535066205173147070734879044397503573421711361211229308858154604999811864174736552617283722535630099426777765035876873173318645845168569854937821728320485511851933285413246432992123318247884221706088611310028403892445276712060613403171161632551285955738862739943843334309328592555958153912051294111374415972413047093004543298643495664712560525864579497942096904168016849836178608955628706539361475457596226506114895910127676799536924264760300891516934731942366918133792818897358570682336353782298444113699229421407623005609720965268580207686259573191515840637151939588044599982506768475108136683730397866622433318288183279777160039760762393508798275884736964666551243053632791225002385567441124374328505855778510970595850500705984262129279055054971978893666905673827595131559807749157936465481043229346135572533943167816684044018835938190817392415817175594715349703061224282682507660371422698080372918769008779535040901434336727146630541557292120942746613992468758540735694575650846718449479398201153383117543699490747236937010115946414896874372552014313724389515073633549293974984974595393197177972925792831865511796322912886247473409331053634694433271431049135420866265303391518219470991297640586941488014740715159474923244668169244056640112489531018786088755763752480565638384067607068126661238653552848925572616539528655275707697424782168158099402143586200574341580174248335016523336902605895966767272848728966336047771709091846352811981431556839811945900138335443290460456604895784461199971220436612467218773757392290744099082857082756150126862971872267580428954967872758745972918144194831198120828029945669169424384105760710341853124243823599251359798148750135918737362787784212147561344873901485079876288989211802243062451236906439472521418818189615607683549087909844217777666610007023056112305641474359725328628186892003996459256689071963064303475980076108534492625119589436919941726943253726055782287194946095457239382743542287439708778748751790953488741338439251031290502098592603454082475276638230693371764910730710060546080531816692137526390056797605373663220480102790448346924055473581192887958528348955765152109093051416101066897181849497925233109925957875591738155327193459445944124174788110264779543246669728771849672433742974679016848412815433615555090474037906525549914916638966886302891114163001778625862288746712906989542151872590391070904652069608305024871840038955898754339196151387017758821585000004455298483247583065846627955571939549730663744483392011910194715037723268874698546237283769119743644182141850281483967319561927768460192003806440794488327928161255323121619552753946820007393147073804769181337524343350116079408972312431465030559350178612890211142663227146319084345305230284602608698398977335889901328056518463179443825763761701320183272888485366246377963200122864754693415418326230927267102289231616682730640735482300595752474249463447747581738688310506566654684682884726627039299569488531724556786416879296625223116875656167031640382989618727075077849713921218486568869468300250142307086876249909384810668581886507813544012056181704071269030138001900078767511435551017882899546638441410780841418456038461011192956403290203225577483086785529378536177850831395219993544055501814696912769703430374907814719413946836994832675165525146622302130342154960715528847264282481513200893500938758002898867669403229346968609012512397617859434319009813247275910332168923078496485393442772045675637340576409872516923527924797077680611798768199217427761983245370036530540795204059073904633864176784529620858449335227613845821835233729261605468537907183624888779139459117557023811244145653430458632970718472168894844419655429104689883896615273172888061943027739653562591006602113467889087341569682724838567296263723159089909475321110957078153540759107060666028895115978721008249275070150015279512462583788030701033049106774305834890730215951389412104860963227246069357862257826067304336672552817197696166751614328088599452141633999873405140494071463277307338217013257540698459008889583010604114529649662392261908399940406009963639924428653953981017190986399642509060397690491419314482299712107349777460940188400221446070736830810116324702018893409215984980282558680824327214933832233887885406263151101284637558910409955457579912264710104060121518357122191749949411716300384653345285025396859310852342271050669843427359096352534127986130665647947588155808739245585886328484326695625190698096896925848837401328168304071740950970161314424529289785585463474606252562108024400192149298291766284845297309919987390888937508690840007207766266141149097199343934679813729684971801759846112003815898088993227712355991395928765165586206200209455005877246695734962366932160632875401502447655407438211283004823727794859419856785102793088186137461519972520688616423205767172141953275853991446925789221654881382350329957753280198243090350604092657296102845912511086431365467179208348299783775065567181444310076358795557217658707437478239995156997160822971271491294100134475201896905384715817773402984161876899982334800190505740678812113565520639064862590355458087785388980879381167512202516829483300088616036308315718264411004809660876813631860759082795726940132739640617872698223558386655330074241360046545550158141064155476752777644025528738627803352469982557100009971585407764934486300270812812044479707353106937741035755949996114518670065027083142784913411123494583083964336961512587194769507230521807691028654840072130609405478454506892028428636253432244538851188215901471780441482627912126070056995207405337572498383041045004399194277080574159068202815595634949433980989506338764526338527075941295786172168338946918317767259784108187547392826491165908282666283673949977936382556870151486668133406309028517449497829011207657816351970731467815933299256695836542770610500311848034386919479166722737545952955876059892245946672869519359736057979744080100674194000344973974548313052837161741785244219773149221726110187103716802771266897715253634695841023704370596010118244251896314902058209671391115052637504113072927620807716863012285186792202096969069915577572858395269127469539685674201319520174469722808809009346357477105410285080908305538802306846073103262902549493628476161627041095179652385944493673529724460809662491549199365325734135907840215282731583026952226995364284726848912956135502597067166434790116179495580809651252345624788368618312320072326754953201633675670800619565657715970992116328663125614786380350284819439250640550100031350252187737912821265614476821167688924605811046829196027305860601791127878393320672167295848731683538787081201013795150508270711795367603043921093543151904791183651772690463931897525266962937195229482451955454431671044172598736079881723544619777909761102304275218231520072704200420007775051344572939148545265292341346602451850799237194333411788187051550262091011263050402410683687966544947634020230778945453587178641975323257994070881140638074029198055505981159651953231176909546499684085446566620426503678158075994180480945499633413892001950118015626973356892848448740908130812789690605079634867215722343220823759866609983452505659688104040789443014391383604676704293641824804003571538736358890874073886131445044502615031268690948744879984409979717262685359285003064339438171482444486600016526439453295095691033756291571244778132866122649635151142393829214899894869786094028150096306722222145793505825099363331804100195860660003206352750936053106099605916996644164133477154015192114712812650023388143124391123525160271691360225409713252024296612894851809632817579822193404160378213466066591142868128542221569896572344402283347360992898205436911382952214475609577591364794948876405457565042422528447539340305494261795358193747656224690285313296645931588533985924851551875899122492071571976510025791916875983770354026362414379515190863306999201417971320824871198116128805333571101141911880792405228988034609180327642563280966728189463774783629365293125184812030983169386796086600128690872020714676774836182297397374349906293024067559958625130068499891199618924213078495380246371389296130387224911944516778748396641294618699696522522623142271526534160234625924343378072375189134050156132990941291246256710743445914421323603436098226790483984323530234181193608387291131398877562769645197313705510237539995185438820089514826295639610873792566132588939688458148642959188077109984684977224266938380459417881632164315139611651655066766346910737564906826346239052177083633486753559474338450246494410207231793992907739362536292883684519136590332400295560613635742142630847129833900282120298097373383109675880729927442176388214197646383679483563209258490390945288176957000109968457787669200283178596056644958374620114200775692207623105575280910519824507486635002365362318680585044684953767756828315140495855111115839682253616623783849851652920334995587600595093716600958664428213758054913775903427433109626171375193412281680278575544637473544237887435531652540783011863083605109130636148757848043156434716765940339539050094171224102073704665849510396493565331406876272407662296808810376802291185682898201348894919499093576321888942622492399686738316481615390994231418096395202839720097199427234856729330575955116069593226161105248603982218221150305802224487979845445311895246160490453337586990032634156583765010795145724046558417034420098813442095079959099296511500814890099064292752148958241254833362852471100741857049858030541725606572116333762464356186444035442389729486596474221892159482659151983586908059629717271218690107447287592713329560559171187191379494578229973456186825194759833495267467285413731227186379940240591766597492869618889030939409490451426614191443816483685796937457292280147404765196054237008757360614626868245940970721281989277888431195219800183070811031124117310305951603602171217170651191256862998266562535398853765160933873919741215055474209649875800858017953544050771099715968413863864221450118040290273842692435487019362005565388735105455489889406755479445655672630237420048311858840199732709208405089253076902077103793104824146938106790594831629428783331969764291196514273623647461927618550392843414583843147122823504616881131061090671206741216713647853592770608692125737607031891203415172409968229600579222528413105132486535277593438369340421899238747560404699518683452371763766347124862670464989981685199183301273827973312794829937142684663107541606088650632547396356176323368580085435038495776595714814364520604943543488928185833137235937056733016110571959304662464789667951155911348281581355925755813910078649027444150083453177177493525373782157365957502716115331220603451803809994800714269408259737944827472340985460522564432107749321605915964741063212735993447780915812188996384977543792127260463163389186682960088322844079494237350773296422256951719691017426006162968228208627532584851912863008114859924373423159429538575274142654025805218302369063762303752840106650262678029410874847495185063605897592068952044398065577618257411726400964473894061014652955881911744419049088454759662001349676171151608350749203619556838044181294935444503728255837580183592009024990145911825487644569897143398324279316816885978046996308720133350146505329206409785055422889354068253391772665529998430732862260664241572474198793254456800392179470153542519116004404528418772250069696486106805133874931216407030036895372257750187541080693735919136349505463979783111070209463211864309857005521931820381451338933233975990504405173366280204254649691026288753495206046834394329374293606807246582593225083064214465607215274764217956034604111789578777690294523690106482400677676781740776538073822983029968815725315203483091016235479023711321009222716269008880453928218278562009895464495234008707109305939791243620357272253727692966755913671738385971628035328072442031370085424545795689385237395375762696824585940306356811366413006208557633741476083432521054595271389191034017104477748233352480357283051409251481064076876667120898716362018605950178836536462141055792103649706382383619700309627921076029271542937997605064512518969337732663609856550001233855288287054115067113063831392986486564381625592090023165872764009683245963732635686678924797963784530458766757879970136995830428917615120160462868886398859559608606085605860155656414201346511978209649917922463376271768153801743152126107741702986018921079260709503905638175077615382083518349606611532687733689372067801543740837094583416447691787873421936805298154539957955546289650469527610820074780671660965465658150785212015892123445860977496762856318038080004152743426402195566011863316827119231118776438757430488529677726142841228732717827011863140411082247055063741574949271513517082820504931096765655616886629250281381455293431860233118375412147007260853651764033173562983097658068320462695458986539205286948539135775942755334690929565484553784934390061997138846198600831049169487627727383876795276534053760568676762886533530170109263020778348789856799763014320678841957053640014902139328019628447013395182832424681273839763943538258829265901263059561181796081072661194666030824100209705228914476497971239496929104222004789599461293164322427697876092517487508118066348158684902058490940170855879955519314300812489941734492794569769197198302239235426326982958942369074727491497990088164654296157661191555049202628565493512451174394006520153895953791792452150963258903534620164640536970790675637916103275420659858838493018373867603449169308356529548901699762173711368232983990270389301130062288765836577330737127210726070279237995547795210156624331892629861822934972464187731424429351446905691824444635741330030685160892404365932017805646386917087607316727244573185740179139835593478249216705409394373960552330717398376669940827099947291642394746683102293570666592313832965412908108507594841216830614940967447889406210228384091955599350430141006304895891789388832130756124974771973366916329156195352592087334810239797466535213625029894585775783854815465944735586445189049406639068830060648461885717701900494620553288419002281608852507623966248897114343148789513298549778714420078654134640403770219568546420200718314403302150423006725008306108624666776333550623474103649715353864078546673223913402259232034059826854578401424063939685182533854818163190405384919939006769146837492426185108671169973940305534103769668499932401459886657394560628658497028188911431551699436826604432849624884762919087471649247187619091143758665064865150771096867529164684830370872985535265560289097503161509559867103491562023238049718525713875407084232884827890702923414732390351909190491843462365096464542995332527403684108285019022045036325201439272355763498203014859417475399402558080438047243190418176918105899133813882140340941310839335346989398306067462936070281959773430134263427702642369816025558848181871397189036655310221469480206278288963410704461429401372595969534075520582303717934406731194887718048960324991801538019162623437421796397025325230013545131299709873935182015026589732610629620257915592901892764084808980577454973387813675763038682094939893985010984149962955478623219038367217467347845169053280960017282572626068244002127451646842350022750121366681542559375308734837890140435881654687216641861153291863710042862489550489337398286326559936185496299759283573492541683134524888144709105156279817818627392981086521744871123934181047657460193815894838228096300343702601727165869033199321193689029943308885765342324287150322371437270960808501198159295866021245839546967796602400964501282165981295404987760010442476069524965551894154173873111354950241217439343544771984695950895841824810448115310438807293234109858780796424204831988329335290351897031133128588247955430524910337874898478191016889367194410752989284464925323924379485675736213133310355165764112042385547111281787573837579978625965433245688383029447316590114550586984009310016981892820483062015959341103958113194235415424850452573207886497767485065653226629949119740496464697670450212758901066008825366027350066109931378726445840327428640423096302108452675556929901613842318267812173171234497750644009368202590677415763172912645577618100070887389369600026206734657012541913856991289359714322964376775671647347581260608745608144476318373614979572767659251462057484741384352117245931124614871434017251010014954610666723100575562869607551479675236453375434971423781363508568140245240045556772183322725876267711674474573724081509777350807439612572179025282514091903327249486431714630497578729828391635066316890765082944287630556014927789522191861836059746323512260641534030184128707495796143944292813863477125337462130017863137701112775706778621463161639557631390636577371931612749874025447209258066531799475038097161375634421146827851606789995617483271514365131307936669375073035703697607366704001604275501536874650025659734670275635469658745508258177653618942810977057453955427314189915446793886795906746018396579132566134238991330694434393638593366076001196686873963711166887692628917384734916636213806823172455816051144247147635953448079988418840776780634273856854403413360326390708726095766054345471655909133172854973937643763988759990942604126005571318664502087247202991972368786046553486544209379549962651806276920828474850499889672709141576392232948500954604801784206839643320209266230778537441043669224950736530683640362504029617809040184286843291178293593467682627223441331871578884647078528221571035431003505331842630438185693055362353638910211508937338654734649559133063233292777849698405142605271504983240994196016259263798732323052288881902722177537439073901057914907528712925599809186234297566196899172423895558344657156471323064170306847666402339810960467345518194684226086822384346245732317648681994522739710440563608355620659640223050148261350891922978753054270095681751527988127526853182284235882111282275236992610244170657574970876030586237086892451838385812270957594257102174342402398236677242753787964447270471831911947093535400529798366670492157352990710473758485232381385452188207372553116029222244770230671855877331798980224114328853821184480651744714053687655374088429864792429742903714461332844823946129503921036634333192926512239086605086703512171019209690659011747177983012859708186935552636248265139668656947484713487479583129498269404067483572044635696590453578391752499477514763634813888840795351131373443552604440438398513170444533798968294105262643991763798347124002328014469552799405554123707389882382714913059074176647127327971489235454782628539234555343405162553935605962201355707754591303102045074759385667859342919781111110110106781001658060791585837294028029292445264039013248176266205231862781062801355580992747945206453771170444640309832003078476346719280875155187987528345163115535656262508657048005062479796527892494706623030846340987169273964717557917884609330674637870866744428177308110165366492798422967661655537558541929929232743618553043004449180986476998311062607209715614853700082152899778520814378018379624741710026821981501048571594926327700419623878106054782169147337903855082593123317071997302663290513272766035380704205607775735903751969231357467197640754983116383223397198659606075018468516752194822063206809761299400276201270533865037127636672800251777263067548581917852569851053527510040444876778892466384362119548810825721853815365584792704520527430154496280318500063917411202919121025655209351988970879218456992735721847143227252397701131380608953663523523815922526837403540438278876088290081577297208051983408881230232868463176444661266702741172815073064995578840438767595035758926108961339683981251923844012276024237534425833618138753690584842946095124475513002366938953762492424495906228487705740771333033409712260640146711545822188183517783934079436583501671450961649529470221161378042453437938818992830754538187362722087812327177811427671576706033017078896721128945998050383006799567746976598341692933686606563279641288880221372491441714555268808608267397103548483448589484666847206791981998631518258510999870917060434345108254075178066339646137112411217678316972755797248322480804733854767487077258864270451074653377814665193750278896771657579496640494376198194589677062137022024708996816750204712050705689792143239439515416946252303096698545485573206010601229881189184253003139383269305628179269052038301055758445808588605515719149413179199738587951735201442249508128910966800841617030881729517967992382112195557973399786726832447554842146138495931919323646924120244964203184186731114705903027282807479904406744808705393360282756466818347447899879165728487197643441692924083580798065475161371108566156850966810752294732716791390816131471101403554624999373596318020696537791320147790192457432230833583261828405813196591863281970436896391268861680141146426908203483361856709123070264342343482062889636666018394535592087205652954783230861581062527288685976486052230226212894189227865937014433625081570751528439109127298190713498898709683792129681894972469518787039146670778198251302885714655785382909373885040949263957674677186490543146697181121676567128728774334903876946952738116362862677401499830448757723464403608437386754989624599981269581257414266441249368641604457487979087873292518584750485751714812430760078689483349859317355192803691899647110611353981265258267646706586716554381301769292302846519517098032677115440556305481442636506473449364554945761375550069796350107762438229057850796543225532887876419544493457631555431961619345035228984467809819041020914154536911244541795265019549446484118023746570823696667525434224431400161914134609694635211584511412185425826252257584154342774585460285510023501392002903934261441045112191802058953756507005284901291636239523731776456160103550879971465689914405335275278892299380549547210206642989524690863394307919731384839711045475957292213766492443252063236939321426271008100232599051021753328013535616334342479763391372216524946407473190711987101263352418995261671251690290347934849615411957308285308458143083418524289082871099688776128227663892419023850151992576378452341984963275561698607632201090562779493473410491334480492129798575172943264782686795542574626971453738219777247116198722491384132607742970818410262367888321559128657646299715196081443215736604116536047300032641164946049477229946886854036223733189199538488953340837678931239203508216258257457974065667181970305707078591543253571819428739112356622918353883113839722470768982372463643349739676167766120615237914977250083931885678755818087803415194515247175412120550743740437690432343188439876900694434429482046542952414327258205163315288669779781674904499944183902029214613755510648451637043551823756317924880389167348345004471018270899988478438719043943410933543975160906368477886149629530845100730912726147390471166706333947468439748618976553645464066673054961520613209730041115145297639067993747321074959109187665825020437802576834989087164272745788124234321159254910296499438476695056723827392341896659519964993887897413778563843563719669552294953066392522204386647218142477895976370243375639149657220397186911451621337777799275252406179786646420959064150840896647196428368499479755874522546628154947666643039225061816041494544078279616530752927461257755700498171285213000783867911458026201172208155672235641121942879464850465515189907686108337079413026345857954767220634065396811383479578896996801571250893069049704381396823947248841941610376409216775591000419299578052840645011880154616516853434592599018600860772899981506118464747424040329499924685628129273352427163888279889719647480737984764094972089922542579256601615412957430902337326841438098725608117037812010358594183718564300351243712396695251503653376916923241937106145564279756945738814718374905134839270545362783520278807816000119444050003169515653162315989522146169145977816621159005298828857398141118189887621597160856339443573520862798956889178347971552074941453363854246444238575355206029204492892859407524183219609652946011765669758745074797254066934598481350642689627187955715699047471726332018179329144870968181065665220333649444984609755508133763865597145612994283289456016605303102658350500170653102894834402361596065316774919313617154841859662764198964680039417664061023915025279458579893329081001301011847668863173393925908626197989818601383960864598606612769613097082614877846010557604625686954253524432033681983060066239295833346887776162491472304887525362279791889532672299564438109509724919268929492221076131049191460141849384153387205492489321375063432424673525145960545751320590369417369714861294607646438047287117174782757446123462160355072209811288857036442236287512798774341631461904736077191239823714291141303693056843697563485107138797559838718194118262550520455751772460982616500114014375142280814471482540428201403577314163253884202009156402093809380776703793165190339257955854169352721407132876687328215178359219007357616491409519096374156018270814285349842714186966546795426748634043137220358926455908594560191829520557047208888933726770615499760557344813933325546972023204078269765258339991839282680793579412389995453889519828936074522128744128957874864961278581707260559637910966163797826417628699920120611628267366996284035378045053014788732328782900722567399773861938753604218671763840278336175738756370129133581976514956549029576697898760449941830744800780669531240715695477008664960013356799149585011419222551751755753242295972628693238452847993951398325568975822596969872362801190740966805456371975668453871753506954547106683136777359723996934730201221684119055576970043068438636169482293631319963717854003070803423376786609495799035699404059024431954669653595559082362889652908508911294658264857882109275190000927735956412927363421519470022524268461925587600494400484000244280534531470451487046635580765573176116170815301905550177763206371212778862319070306725281515605262151470568634594783560869738193276497591134348801166361074946939817265247804454304872588387525917116793503605386151841003607602984993233516296863715180640856828384306045336005074300010396569104253339855640223784786672885925279332347152227394199640533872238647633801166422295337091921491290369372356345874918484945254662640860870264053024390157150535335405251067074281394965285486553499654759655144818031953822607572620924787507929597284667835830516070205535640428401748520580237797970050021236836852542579665838825024792098716055121722585424986824332047351997537311907993496575534236688719032935326041621651682585811936220369986664922832733229191777365204568378700803792008677507916912564812774953887348037418375798032146826736272483158110819633819252178933910265135791882885969892420150919190123746197617305328829420485771372736923922484103945649543147211898996224546952028282795749283431191091284239981589016582930833159148355152804727708161113431119720826795537017661344639129867476071913174691049165861975103232324431740126140271652684160952619610533423898101343619458121239858615553653374029700444863703381585588609666903359803648587413371635406678086022580360082437357465605687847743121285584214322612682328953516961894643641112677512797145741832197477760305502966320432815306411458400679220453893735861738489301773899203358563579224438434103162237877577991364999223648205772394006995052440047846031182373678222703946786135805402254576672593451960981932312116723804024766713812245918329045715966227408431210499320438616965052652627828964406815577539179364788213706510166717363548495753560817454051529711616399748990332916256755876194899309068605888528929501112058147785342390542376223409506950637471686311739420052458969715011067758485409588267009776478638697059928925058923651470677062327730974055849268861095681765179032982722243918234213053588017647190121951811385092179837113334437701440240943217514996569872376688758401482534250506670049230854654542841391849059391546855532939897941299953007666738137503236805795505274623786838378302458146070258351740627238588873271147680465481054859977189502437461484388619941909991955516268900324608934738341641707376628065146020512890958869441178011918371384493433321170398535464269341994195206753874245677804720781207416977946893796949294266485278496914652145618674844165710081580295675728859649583602963447985636885444263481663363829484404972641421234636459178184546111881980841040406265161274951285552796957641324860019865001308611874754578333920250601802682057769436628342646305070224078926934326791262809953494792292274538828709736004994487143553528415180985166229671251793171699836583595662750477100479229244592761690657230437733789469355989901283667689114277641930984980558825018712226120332580901190335141879463213795845278068314060450680782776615552309031855817853974290838792107929887560535091664810171539310033806463406279398000260669989147846680493819927453610937061538716512715455521748962558965350490056331121181039447979968401460746382551504298882191030552018306834238669951216027771283110768469427173794570566062361571827711963337330357129627275249791202711044648413916632722712425048454473004867456242748158504877439715638473161714796834388370123534253152242259749517220693141126347937340772416785412361879592607980089778896162190727926700386880078068482487421779805905783698221914076223795567739242916871546644688499053825424471408200762664296748919806284758364729950050125387843178454532704441666229794329187084536185599597772919273227729963604458703891937625187266354973430616275624915805492799190157955782045393945101644797813059936668982565362657441678430772296405039717255451265071901236125065997807404736371599333244563297515383103892467775027810859274118674158794067087522224857361476296484477652276473741506543020211997572418992300917979765641611939705197750438703840513786119840116028119771072021915633098772512380283538361623662283988302705521433738888296739399978275133834044157037716593212013131241445374830703182734968045907656239137267220454163834374834753758409647398078640557144535987982832789247422068912390007255537328555638380707905834851277815319380466539709221018829971057139319417760550820329642440506085889264509829968355622438100151448882147012084924779250222195643996941874887332595848534398886370678592664921756088907895342688455279959537065641016741573439894713952150830909806121719861136926880552978617152077673571976234086779612646110885605857342088292941824880085940718482176736158928906435851995383992183915373334635329544895765883180584645319781071795281830463612341274316742514684775113934991094945901338552216022293556687566983376679944122612375391231477996985071064558510931685742197360770494622816829506823773884459081711628950263026095986380216204507900880418494313396562807403604578005452384988860899123891616886198571655282619257735288382971386306316821444185598126977215014455437721931875669941164734032310144190191575187403190100253767918508490791666455190954336375438891117560392795530700544922129056185478899056232180263295017915000148167262149784508750794503253154461395745805142349273798106924508613762317804341161167012868773620675305943832762705861627748398382120132579978748818703728103198581013141559446726601566498115836040566392345283214102315555543870296395724656843355621504620662893779968907352708220444964312117845306858876669886676783658033244630106860730221641914389907360594723218241953369150483373822788899827567797053451377639200485165289141151123281608651518388221943729419992721586470214119399458032326279252081863547972716639026795655301523838721442528785147301979012523117006273424077344503975345490467133878359808561562625520251169257031710452257186630730932607850918769553326177013132890657097095716030025932297481431605775557315124598933229184113010737054246375956397773907909353398187206270332002392851571287294592454055554570132158761770078608615588814045677741609771359820701939751596276992913692105438204634231452924023040172728407254581364627486596371041663309745674965207332038679172415796540970865723984499014905689843081849029428968130757112327048470507680024102423230320325257409076617162961629041104182503914321659031853142482650551896687702406412195480178212202727334768319634814925500389816488462304586318395380970710342152047879259978117078665810289786038486462332279185528922177388703495077505192109093761366363012897644597362028530947387125493660741154209895960730323115558533575143190659535295087759665028334541865694652576714438318822077882553175415201812872802555783063521739064243963709337107604087887168986427934211895632724544829573376995741436688014332437973997937317338951529327662078049867257256260657519206448798311181038929813986442823496848878368757469133073837157665515809952807243963274643016496299721423379707789365040574330348325962385254637801133114959635680658341986926397322174947459293600335094420083609149443164380534798016662621328872149732438544704844008969484844837358125067347424929615365535746346764182900886784562304906766825692464397160501097382086748211577610113507145694430859806525890081158318774264052666997846007393348622450502925165287425783886806204281595241206165409264915030209283087413973901377520879144562040374046356863258487849619361685328744476609693839376422419683623730828869739921413320924673069460369536871108163220475656402425432981415579971280829977340388017193043210784053738630919910402633893482411885484505748471866989020598016545444081962393577014489643585049291405122627692121588596524351594003809347706370563453666599516899753766775020118451858030443617763968584778603555189067286846822081550185723445446446686943983808268934160033113050330590859718731286396549833571919395120392045271445792710385162846009923977741603880944691863969887535666499628130031971398075327204075823020282529568796878983640836959865220422494530381401327357472114126436651057556921787769128288722668241023281969551868992800304486514592890399220964954380964215906365750939437763368456684836323125450764570278377107417757251740240811458130113583535705088379410129495532245546279453319838447527535337126878530047362900565584792851996117241161374811321058801747549599445200572948632700662187260624780013433462971889302214067116645114710676108609042705785544700396499139848247477307309611294784594643594034693908686716976217132154138964604717561671631107406822004933887314991060601335114699617596623313376893949244328790895955808102335478225144428482803086359944788148455346452375513920923351046285361955838552853240232563434384072381604506255425584473152672290412511751452481915308506084643386088990772904258472453237086968381284725376707908149516267979268054034094063293607313423350275358852586905842744130492800349233878672523756776851546073582951768698717571288230432857499756549255571260365690059054265732192463345574119395600839673239916473637826275584318864528248076923168439812529935051787465265062003356322839553864415483682490356445625002814052453942095398366679771326209614168627832713165191859280352115008811081965610368728363724263767618663658133476565467656642196687314925095173534086869196533926984264927496353572966188252528377003235745002740743690477680489489771751638302070204446536023505323273423207955883215798996858989325758510191056955854810171885973362443359586289956877262264631941270458604547983432593283727701794217240658897729088293387938172042409046719190839345032755731681439490491800449408795081315002891024430115689143979570007579344959049920319145363096897632562587856782836863235276916107111581738592946561081243691936078583269440667950085216917466317866358924986068464973225187401199973957796110375285822151567284333454518766272459883367102754841616500123882705741859488156738164457581645764911462747713857527731499189911537282010903633873032499938635649987294352494923897710393990107081151747837834801301642137396882090922036288843273953418680613687382427899472999269595041502058287476972550279426025871190179198983863769703559460380638575976923919905007516386608009368509065867752478353137689288027064758590000956413701148260308194048801554457080945565229212170150797631845615354320183969734712013135222173084362782690331424515032390079758963605361367104131514052612218114697491054470231558831309820102048617002320639187165098439268575420453475368441922537151499711952119491046977873523400104696856496590271114818085434752429037821245097070743533830086467439233046334046502867655558116443753640174604439495449843636985092147008342178101160231427251756208102490338452688445273563620551705718915502871954322925666913871407158898882953367532636844830018753214833927517481861957455327376508214333456079044134761378820772356867797653220040246386422448676514742756023405631535281499068288128386625394292263880046774907916223364374850547661397779965991708248418045206112653133765485468012848883932986012107494533190292245984303062657789002134110096258150525477261727758207052171544642712234239377305081953159976943745994631687764180799751957072054616462466903356091868545858679530715312131005301547796123113096939166501520758067401263670774538071150101260022828577268318120696897459629905042125520167200580213925799658909050911202360480606190448536735591046361381072809619884811322660657714590247708277068160025752911954751603465155631841248822093458679041436910721242319338409667705940844875226097618321866477965297129560323569133962448318543191157953029867638150661168497833994471612057218134596168057115264684849863010117511230142687774984763489882183733766938884241071490459905176927531784830530046899696963808521398191411880322827934968379762504293525184178010183920948736205574336762133071307049938826903817162589828480959591085531400149906264380664673096202434491131182203598497542166302883744510173134237976403894530348185560733364248750627029048110541280611685525437046774072931675108334086641839605098690203086912759155650054668842487781076224403662639607400749052400334069895100196608811116310828168881113272440091652123585013894163208873507813649929425616510400021526322334616961945075076260951294318828120682787198743859791668307363487829568839727344759545802976837122020948561705811414690877955104592359041197046476092970454929333474900301434329332887308739428794454683537192802972255718078229221923126709307579456692431375488755282510083880537468748681280983882949535416736538738516927579428186030577543942594151793741714378931733391542491367734628885782510925905023683616023625245695173705745075935127328255146439159712264483780357979261018701663688533585926670037220050380670238930510392184633010370318027970433369333959525352319320687131186446709291459199299721165133942265716753149502652067208312017781329759386152367271828183724059315517826060929262802279124753539827108103408425614349296859727924001298267601152562554052887556918391701381248515185419363234265112854491878044047236432202746790854690257199098485505364819892394467276112348654400564766550115195474462296111201485042678340063567316252004949640121477793031900619813825130464179336342519617452153530450155225392661159997105896227673602099838927880711711057733868715728923724658534980767142567567558286913308620842069609649005308791108116238293978713036809085993783329412009377092886782118555241792132866720538893449979402065380674266186151849798678236893609079577585015760239119645486742119063542202222722908557102406869078377451320414723044701789559032968263697917591601020264003302335993654028218964250184196877667957536194796796468612374795756840654497091127495330336263656565191703200238243065401289181148376141528686387914208046143265723705777249326884645396519189864572899121279335955790726052386510495831534516700235626039749265505812252093996513699525510451197517018177502240017217729778168188951523901262391075342418666841236204749689529693675289065332737055265441407940729567727101764819668087881583973279338079974407292044062547057257830608108935385555988515272763499908800926783321270350073078790398186888434908052031249877655195340217659886880660745954301236681760899303875311317212279173551033418010016113984234024473041423729540549858004303817476281867389722506297033037194740113135118789503778466537146743940396037846980434399985560185812878631377773845266045423315703204351154235902743334953954360263041391394063384953816871362834964522630312606463963737593186717908725432770265131939873195368118999896785091247372487871720084530964898362569455659355673068464150275668674916252206542328183221819209012577839531666044316871263648982547304207522169721134942372549506713976780732915252478046179605341499124276559776349367203145734164005143856945411773430333623024898946660569057752908617799941147615367630562129382630309486267524258758041109864975707103820359870750748129793763763735363096866263307539931422200688030247084004074649168485814871611145647815914280026872658667493375621580817030094254897047447006111923260869543514790904289720788783056009730130519664298981529136070876070498602049355199595552214576970473905147206472027470727718854131789189843623419984753169289616216965009297975178661767702153269065914911020260555275730249675491659022574713596221647269337621484846816731270455110122959192416398820923934482840737484379987985136317230547960056508093537426356333303300884052915085710904040504515749646902622465337236243173779204816255461578456986540296224443668733148906262093700509262159714263713067176213278021705826054117906030315352206471871048336782624089665945221102222421645059215969955767306795092883161924159644062576175355211494445790959938033662941143117018665683929907761863243107309105962894998214220804071933888889658664033397160255879756947924068449982712358719788164663708432866155418895233509745938752587056839162461982611520797849483818119658944704504239351972241000423109910049747612920508708967168533393053212637616064763619007948683162396163567762807011132807907944595321709935468983258671821439417884466445072054798527950040188391797932338030147001973203745184979248121507766161753612772791747430819368204987140616938060359982476857675609504541867206352746693361080836201894544138840063592316615318794045874942580102940198131837890616356854404533736475431493368663791787160593193961634675356732930848739014122628423170055575893659809487149366270214334452917122478341569433264675114372957516480701061825327735745436458986162908718720150242834242888336932652961590950453131308210296931617415218810738332880451194311608291285862877769284002310990852994397379225212526880599523482827847883874195727783197586727669827405048905772119570589254824059561164656004237443200943580373018220938109381704217581273899022330166102326856238979640212632988402168611359091016665256965082771798248023938818637102970718856657640519597962787414567802053838947467075370137583331543280658484023958828463642318157705191024560541220646133821956645172733189486076688628431499907525676578129581383443149541526331768715787495977185439036114974030292124249093771349218917046706301010491768308826644408471889933437610916171587014714757697440531626652476688668823847038753922692246213975487308583211049552089442617735434508765956744091017060101133177979708055240867867923419478545391629199268411114637878420441782368665841865618727213293891118251460041340090382170303291008087047117826352704857595911329983105968489633652913056096107624804402232979876337255469381054363217662047941970554385956808053117370538364659684435121836436369784038854715691793613091943900763193309578632608180321747887135752395414344636111947222407461145213789222560411562913120417743853572847093280077475293063305902928692649836352821770907325738544207522367261501332629047180320868600485368095854037281676216321282051340998868698536179378997178597748996581418355620737540866885562716465461592880140031330433046036587876851894612542165028808843756357171175357718308336220603810314123563705577550834541547140597748949670872444903886962850193959432772773028609293587125142892444992701682973412761151626593781598519958122295367735042021968105092313768399776349664674911144755981354859972833529067124629647875327796195150052141710150414427839232516507164410558656287606076736531107920670739299088920642256944284990831934031484468265243194009724771407097613295537508063033010688488742236732372147640458728134349076225353920216686380526069701238127025729890613864723232774533685365297445114837081871853652611093506015397889922918945399752200768479119626600876107170854337008707707401420230630343344785804261972184316431644959041126778775263257617477891670199342303321345177770953526681672450857106832774369966159493537334702545097383466979583397091995574833182769133737564938337096722213714482630184857977530126982854260836818730394759504816753870075279515754426442092258500709149151436188520812559455356850149628320225255777853910802741777060406621076326752097031857556228304505224099944254706053484006469048921652859607686558364928798701663585716935384615984993984623515856040189520376307224065803180442683828117794208312074603515249086165880569208056340393951013052667055632899150589143200509604004576624646855577333116935722498619376001694950449212337463588340543504885242310912584720622161724638179620791629724096644550804834245490462194767954638813308774099591737001469559842768260173273245810404063859077269574932098010434936179577496023688355986045992666758824447788691260310928968200724650399676302158607927008057274171828184240814942015169062314402361293611306534850894016789981008460071530219139296630184635748573300998571617532489773550606094766576274258984277106100208302084595614299482909000391412134526699902112238558864565657289269336606877995572069268651647312022859755206141678385229672242752540847183815889853017480584321871646245366592813993748725649498076341265105046232566902976408319323532751050497658126996039878945731988796724256916221034016550824226970985858003520284091760859494462055699931829871364805727198907216075174773648837862877387477962623705241997706049610362455938919136445830876796532339788533714088315573058091332035991513901520271129841360244432440394679637942491241173585576739537064923351962264735301915965895534480160814848052218122438281765032488227973470408311140006634319900743281526287595234706766835141123365157732301004385027486229758954887381339937930024802041526751458983274151439493116347781261682946884197912574564953335877642819604693129590683143191863512134419898965971384620952324441209378871101319365900350406903199240679043276586974644752992772940723535114627929902995914056199343256127797106206737574942444755528312788100932207648789848386616866362122504062920841179568238664178572033428576262069362995356411967775266775221410237871872431227659099367440931480590842851687812519316794412885869741723743483516015106238460539710674958918587893663134734047925027724313185567650874131447859777878635934614285341321831753788637265019754096980017589569292320098420371842784289599079680304837603021297837950574486599506493660978465861424961298958418226821067635597880397565830564436475863489895251556402367589205889231319737324801026352265945328769305811210511584718187386786831274472456341913949345219619844888571036013380051477477640151288211701693994496777578246744227121066642556704278917826970634946876725648912221802019899905286356635322846792227097816217751192051651902434108818773061362211640981290259362965047555113827906026610609478240494192226735977570224771341784791026425871114196398541393419052446851545557445223589489999621066432892663208477027599035494617574284479776918553554159247633580794363331271396027721231275467687177105629421529153258408743308503246390917482185707014123328791709793495612864523772747816573846550562380658142995599012951924962672567037936881025418608915947832177915202435362477612601404953492833166189146116660618333307303692042881352356357756449016910638541240988426019775952833521005479543108744440840625802278498516887240641821682423051882859497058190436580685710964681677882450081847645593906389592865189908992710434596326609388267113582659645310173304838498650463160308157682663496003152209577213994144172592394747666140266836419241529607355481586587818933227719791846511488971562519519903133493209142023769857189782442538177462299189642777448430975934119202754106558121700014812627188925003943713863979798505528000877525655929872010631362964902362442968532783078012006108607509735930780078112539718246643406652088184366333377162640389649014646402789551259279704083985467252177897101190453360721205881626547356748031253232328481698908610768329169610100007333689351487104321214326659370546772683349244244269280041121777299386724417615312177350778274653713527942354214605894132001924080833156739090655413469872165298519970447341601662421465651440154067368299984878916927459094932931687566207448453157479151741460370546031782299534308795440334392595557793778882174452522502443797257104964540400694396250720944235302349657235349523838978530362483620081091392458513331266164029356225872800269405466625102218881691576541697742159688652917640572697600892928610739968238016062693313838873043826086301081678916187807427866834461531380169990864492870110153967132897577665878185904809776840537747571848128831833376740598591771773313059076830281461586025275541324304276098810929685202882665022421011265571595670548159953755916638525637273960105359469940320205977388596221675921020513502949679032750093904393587025126170866898129406149845279347815930682898829918396604098898333701200482130820047987858731753054450874388294659435812868246502690195264260614378774462369704718438191874968261661503594646872098659018945741114018012478488562005199331218648068547384926787964092422111429971358162481405453216735410976392294010336436989778777828104032348625884237372807102277470877569988428056756842296439235400269793656987325372369730413176328587285858266529300146586138903969348598454779292063674200230022618773090659512824424474506542135265647621532354680299790445252002024836573460063604759620509120706808573083910321078067766287568498290204108190538281591110005255999999312291383478124851801208096028224663221425104420097293123049561075625640507556394649830598759753185872595816670171909594230223860470663696244419707985586589100439289275649269016733636466107842270337823629196117497068962555797331872431611687171141750369142186668685838917146768346241393213314098145281479527868756921522687723472937752328448099172261276667142781818744821614918691633707105316371749658163785531619351596461633186701323501237191094248330741339707415313899605483897405375478003243283574309497942679662130069489249484685196685787594859148795616444811509317351194432902204643014919050267199456868755539679320520870966946250468879522231275092692137328639093443462830646227718291839418862020132780487851721381461717020978862241214098382290548378481283337585792249574789494826624572046553106891132090659981115860218855741807440234708977927875984951348098109033902095895151208160701886388549230051393805782418560132817880781553622690243363686165057613432743929695209236046242821952936542862319159461989920381613449153200965223269685639342547493657348992634303187338832895301775994004678816732857728956078255449179672072242700208665335307200404651583764359596348239754228067386721232707425904464275124059713974408502902218465735362413500849746598559940542339160272618817728396130947556545992976940210379962537774015580091795586437903624758196442111811948378482230041326629853941318083431519620542151611294032314687613020367474744397249605814466372485182350016237212259287448832390243761399888617840638468075705311299894951926080365368059156853908345009451240380919602510914500064498685855062196353229385206909227011773658577150531418625006277100671642194973797824684273049828695778235719253745731718005831992588614894651155451513703417892654988230660493004039739793577124159577700370995011477209257129642891370262695911990332034207943639274213781413418615380291146877191329186682906506186300273652495415938425667038342972188426751202695252157000339249809605995272883545261745567084816490872066193488486464369926782619958372089957012701731760139539498900200762496643135695876602542473648753103015896209924436810867541779937456758384176250277893943901217332270099296342571896449344520741170185597709511285806843010997307368982241103429249816239753931957442466796533601723259759920376681551330715102403685968428137090048360384881534212754846060531419086858640099605963000281298488177540065170328947514757648176255279049385328758489378386392363675460158877162817219110050397785226018179890430905966114835929021891385122782636067790166544798857892011940223954365931305566252744714224810616906130531496739819777398353751005142663644001633884528301132646411619997218488526582535980193847817527243592134963387249876167228553437765619499556646244050082743378228726519334234140078049664996629967932925452235375802011178979427570829038339081485069934114505574320507502729688449761840345330124606615463069454129117980357726992018862423186069031473870550536116040283720348542221488815353156707301618759903417034196265496459795632881046719742063173456547370275383699910218434430303787295796423513404195832017563977575756364595185671943834657487278346250739245363070070232554033409630090959500451113568071799306986797013677070054323034255954285244400708950093120676206081478175695706272138578233518274843055875546350036668904050665956277140172919182059888545091518558204250610191419071145149009290572394127970634849596380443320379968518897146585106418163014254270848871372957268525038382715154686990618878120495088697753651299235383217723433870972823902006115082711108428116764733660102269679727640029275299547215167059674478223709473349690613943133820085755670777598147237602187492474429292675427392328681873134781417120119763858991949591800462226951794319817718881561505574163422833417925398894855654829313355044621479916678804503622921726726802023747340984943406248195164812921045879468736776604356564957258828583265721236854168120144196599892562931637198792060577656288074314352689873612531452812319000747388161975659315908339427542651603711337692461522496167091996615289307120039067046861190488778572805813879806122920124323102277538841217997861092602156713133938905243520575681858435092376510620044087528747699218833521130424905004998411583473352209857666631358620001576584360535694258943973203259032756689492459525017527644097719351449463333580080492151116891858043576448206545633178923621099700757308037136021734483741652577729834294154121632193402599402495829698427780791016320397563122227270836931453138291335196412766650828270940582206952501471926796360992421890215450582743675416360338378529167362112422932200952377101799459167740706869356166981919238477449732529313101472243902846910400529310045939964788457320234725483540656034201448561721996615929329204143618755650380212128813749277806337429248148206145847373009305277764222353076662103806213787616834285955485839250748963901257063481346523424289548642472723640669545538902115940099939969727552923387909470803338217048089992786936640855272941533117672049423556634812009001224838614567557263225991097655967182630560237306743291406118215342530440347680911633630600427982542831105273442857098283255555223967255484044686427484735342183697489664904426584042248944851704873508934370425369510122306351734602651380503760024728668832145621769857920240636955623763773832834343979162593716527634574679460783624027793987442251120318729732726088243686107200357992911130248230064614255141994285317765520947929211844696555674492553763847956579571398336393636309748748154822240943476244728978553114915564402125167943600033197001569061965648673593869276177951313524405055832136678653561280392611695534424377017375733553587022625590536354574846895984894567863961172535965800910183558245053348408145846240347925397860091819649768124966188943648769779670741900565766155304408681007306668598326289762864945046540936713394526200040612801516768359052685034065993013488849225144576297376344235381258787997104014098390366406558692759691483375221070724529667012167142622887549672983845398673400744028075454017055518662638589709570385601260134958581350165605994268452479058956923455773468356138463075572213880111708101270834054132192931328442493404157752761192469251937641005665824574746325746298598838505168499339125479737537904490504700902210899181601509388802760847523369153257413317841053412872700759424778150170825977651600830050821283148837412211594168513530487597567209179807566887048450090741679773241666593885165152839234802365742023983800387050849863625360892442170868419932605852670035706383661393263463354470432017148906132126608778914685221275558151183674520121775470652035810167612510673685281684594308280440444057167319313312770463784564074438776817471978200185811705000634294118202867281091343567195478475866424238722274119063576417950114775724279375492641148744087561667349594041291605449174972001303086321535202309352936557485269336894780140011736882440147525076096452527962900852055479250538086273276884524703615396776038899892227136768256733591986190486039677694501841138524722503803550695259125367202763985201174998784813359754533389757947196706639958896591312129614467493535811299234369619413864724561725665682355820297122380131243257799952569796216627247495517849640512126487929952698066898661334970060731480644263484211861041075362688605623896294593999006889730106666112064855788315855894675918224358413557643564672608451240921888585718817558573394675942415448406616792930081799927109412518421184435821827644713652213311434825327708131486267407743903156611779970799820764170805603583827788014994673218557113594053233478462213576873771218116380687431979441579527053314816265356048271136409431399102062884578114473008804054523150770826579410498060184482249929495355638750892391578521083819745736987609817555966286996562559084633087339834700688431802784099331500523294023222958089844457261960882909971889498562286950045134182302733167765662100762383220514757001729035053756315383468755722734772544319656444153005970687305598713351339757752121871518267139618875929054938686624604535507948150132349654452154271557325771540557755859352222389256209286421534542460500172419938887833738299260251947211522843694942592655141987083587387865468006292286257148646023738242602087291336251694912822520812458514397542778643523496247563957461619933870576255022570358734746533056420912286738741279633730037741575776368251298593977766717608800775572735740670440850796662966040709670814553325111522554339604161197978178864679127318439492155150389664831271614393686809635028464249987578686386160687519940192580783987327174148091025609094307461044878459269244570629959889862323769236596259201071671806121657613722335882891226125908171201902114135086870476740555295428903560730610355949586566234294181414397174801967937601546454582351181670846962594984210629036581647037730609776288251700407890645888297131604693763683996510945530405553704966247416955003756664514993520921616415458440147075576800900918189413657209219008636730614401015020561597001324773482266186341362536357191857882909887385154075585167111236496161239036078672760300400882981145600453870306487545534731130267461036743428983791056196011843895210425724315655007167610051724256719013151273451444011344122278579475677744995033036791807530180741218941158044587475056759215630117648844685279930159052126205804755796286380172924275827055947763036841872612230223754073801907283258754507856802787789536194164314718907229083918528709694311819499273286430835769788023408163768603205590347896420006495590428567676952121718709328586605485774573903548491841120624629871380185890634688833382564653306639294600987163751601484341760426620541370050583811316266532197830671177096038174896338333721366808090831056394606899636569666683168938735718296224282943257335459848305487529397108142761475720340195453183062930546693283501293294616639126372278850765387222495356139579287603746131259010611250414695704583766165568758834480078580873478402950826570525150722475352755759398496057260378576255382552485394868114973791877537516180567725171418523539049222240709332154008590880433877226791195607417989414939639351952843081732404170457283164534552053916089879788978789976955998979937763975182523882623957466538431627307219237255294521405375681117570192229194165505370181400660319961220820110639289465619558116714187077427255256539126151104409371223163154339595112239897663521471147307868121988638542325255114367482112063672719210469941245069683579077358185165864723551884591813066418700526754865717749593558318939941836656258388845333722289568646509123591679640443678003742131033616919920068172531551573458507328772316324865733016594112906717241584881538237806568387383213229340959647421225512275547412130995533773491022387240606404617855220662058426442432378244536736518862852078059799437638087216427544476420224978397568993512352945429489233454493469494665910510303314883606234050792423661884921920152519599846645770917635061664836287305215833378050532328907783727656561327095817362442885873332358770237420996160636029947650770636257013964258555764432870287873871552125930019343165228788728615620771265044880127127822298652323465908658772755133130980621185447413771724494614166844377439312640435471536330034154854828294557039222708921760116621167180110020628493830201124107185879573514990214650703445873666263730789879242611364407352267373931222802477162272129743640959124491842283414291678463558385259132930382531824251212539016493310324337568776237098500430735579902200406200328173743613717788526447516695349577312650330538025449733712577148466070493174426407836331237653526647613811269884989518931293990831359710463501368142279659420805881951650250875336306810255379453056812011808621194228512553011429238814161890115657702535707861081027631730510374240249477613492071708689702771581353381908950965280671575442760678158013731148409228361286325307138605351200355161540641430562692348540628725546695813802522319424831936967478295527422422367543975386924458894935344744726707121199969704989185988865590113330295643386902003245718241182133824544344329007266737333898697397882300445623948144258110401680747799310838352338212383923408839076662219337920292000291953781432934435350244518247102515425835433818824001037437420953024732158469206609736953162072243939066379236632005988642497279903573460430811978679278931026640361350010259969496218547932869357755547480627651302503568801982246313900271715762893449293843095791477854362052968690211578459190949305321493215861321878770839724630484621527944743357096006909138646985166704402546874462582951427791123693106586812382614627346589718081845835147084859724572950960363815420732465766031826051299565627288438677194721410979493059116947209294048841437220036787840546016253431939323194162822137636856732762308756597824296613002476923108191197605533811069171765028087374745182758720407890713411097101118063141562407800631886262166198850786653108535096986670730173179785422592449798867921045928352810342697219355157237048262306804051086099153984632816260318768983577413399589779197043968501030983785481298624265622419929534099516163273614283470657519433421012509601847765503795588512193794968493151452485827080866789963186100905748089718244735445271431974147959060067313493816638119261330546607493887562083141275298665016877250446742962335317698761512867587952937122513531710743777982953526038045790063600269602047568564687597276824228049218593431008607083106898091355019097426572828276666856784976315377462505099895312567934268918310727418287695899597761461377510758001004381078287933219503904590086297039494063964141496172204948848801153410731663185809053730406267659182925270952994174525878996055582503571078705473513603652968336905698978571945542978656908928516430109729595929645802193349780596632032451839761576986725625280143025423268019824640400159670558226235978818485944025348197521498045254043137416700122143537693413938607037365850882143635474987200539235354411501201642409901228369629677091495990823059649805218749627589284615535184942628732921371953513850895865713066803167261135173183396992641715650831941694723722140553128324126485128251550264149217905797156687487337195207126926172257900611878317135126268624899410965767185972353009373373302388019012847645787485870988613948530474434860171691931698768178959740361771757069046557602924239582374018300154717298968185539990137106288224136016882160231898844177322870389387988584671390510951289074643546894698711737755260009697017897812538691107666769030290307953069354050074443103218788331956943453833563215224064942258493163173518384849115975283318666283190732173063341705345845271073095058016307119568179206994715720003034763565491407307715782467378193406343844543420437797238785999873912132791912284617358025900605034778567069490231187716389975665997012434090477112487659338080967823798862430549486402109749516336637051189078263093174542237714126843966007662452162454672833758687690835245620982553973186893905858671250778238068117534420418598104753275516823895661004059976699564128936531213379093065236672757806565781437968233090272528338138825339138095883445597429687718755832347412949333734831654849895203140478858956873033149333399252072112379627725537319599214599653825779617548564303826893736990365023947291040230019563074150988765227564143676261616478751377357096455692081041828998548680317238432701311744328367284572105100698197734207731358574063232663169389080111939109661020300568510669440448947227109529203476702116730343711751761607222927463724058381510930349869019388341558198701976588107275830186348029046976382825055324138020204739413035729631180787058766125360553037476268332008879361221489954333382757869365242038110319865424318378587407000535778142281492040847055092162690996912020969088041166305744299683150180901735637250751944895433590861357038558980906436015090487201238993548089552833833292788263499577510333271086692155412691139154242679682145996676594245846253837566614260855499481969564518950474296313340325553613485372861867719779460860767063127964009137335541548702307604269373541584783226734125098228776515273161057049183103040049702301886026088007275670686461326141796781712234802105705574871452384929223753336015311270247903581292379691857991127689419833694452190912380881766125668951754896741971082413626662715029652623839006628338723190986594210105761726139268298887509154170822306697191774439090890535218078304495460137566587389693296257289240275365541372150680655739724214370018385168274472428891200862502119107861499591829290030013751088349252949286737908296306602946468111863303679150592528853106784877359878178069414647505977770232758603590418647188260122305080319870051683944956856694523276346762201899238684425131512016787637995663763743961574346816577482657771192561194240429413972344367679666191074100228402087136673696627109706123030233796594494400538990522033286233572940224201647006923106327735172158702870254339328543798183029065957013495865570111811411349843997194898211794387899564462557984895415059539502788141201958217408236415436768271154111089534588319290969700859249076704897726864932488505595704273427994307581133478967475516642356632553216148514550268487038963979030364876310990784558232754577794695238386810234300076836458047389191375351457606677292322837892180115103780694301215276833232734760802818405336242938464972689014036998910081594944789951252028140188822020237035645605083564747207998793630687271507012057525271368775581765947904112471441510604782766188349699288075092714708574683066705184191798534323278104382010750337904835574167547633505100700230243024638163266557833018842321967855100854510994447976123709060143014983805931929782863363062005265246657650837997594244084657366120927818281527141320983241204474732127118163791410002621812400880581491274112512806629677002349006268545059830151669575000810637577446763685756783661417227108930666796703838811325842274162117968186332306286211301316430305994323891985597663258820170659693652066286545177461110057190950687570549625541329730944915096859290045040142996255205378102537348557189415898731801303954439249970212229753574782498565685699275891876617117029148388510165817805223111416930982898589394548802747074048458261686367081075899110538042114882634845836222670576917347948293057543835542326536363587497696184434748725333281499090480337924873612451111412104921010759440680545626036926548570892238448340325390153355040348419576527660951370828933493078089807823795901832303730911207535468986471169153387087440851656681871577814751858210090835397604153794016897954615007181732485501730988695831075944911852256875866085221713785982759438448457864766417685416752013169335148306403558806289852975819553623761390500750744038459364353911788987559131276133519728470480995114973519160896583520281562313797971456120607416939217702961448458553416240395530722443620007631263585641985820263588704930769462603935914555547516544908248749018210657732442623031868141322459028942114475188284563260165825375998192226360253270023179502733645103421845506673776254587310466042920128654478217672902465560899057088076266174186350107241595313081384664970961871839891770963088994879811313720181306966705084463356775436494665780452263044606558486453047083732301176209379908683407220093408002846122307953124896556865178387531407353736535283971646411937118128580521593834833241347512426075809206786689934385913173650800939301715599537977761374201660283330679217116893275264586169922358281585843928355998333623058230742303984154359831471541135839176527991111457795574670731930747313289405983731963091300975437767276453190739461328214562835538609708441381081568167499620901696125575604867362977832661249892527056454790974230148708511915872376482428399120535364409919895882768715836082600245899078403277604638206799773536748302539397826534856751261990016621857935508789559255559253443125823383623241306685056463567969700589733098400150650136756059050974870017036695102089790444983122588432052544214062589909212911914649932123792710328816378263580521335833268580403690150450824627446610575553321563743277295146892432263567565238762499333717641939411772566954383241711653458907493911151440434866356744813293322228203554065519384755853757965877025358840478404616907477873950777003484643868879201500163785739006325419275816998516243664015287067057077126862684645567863870253595150902588131820769124871594075201230550547548809664289826146692103789195054298450869374927207310024439457927785001618118338196330876604606950749329844682890216370545560141896968462582269283071725798394756717192696265126124469585844752973098220894047724670518793272253664280618279572432831172117611304617011256265678668044361458080452372484104132552108496272875354536552793852674807954536018444286307320340244130939294307811265416361513449896049181404911628168334129141970617671718320660383224625652403684051531467539759355196215816438811466137478638900511118766758607198656102454227743604169854953369939854045562821346145685660513550553305486250152559582326440089861838286190285939735255583096110505404195520855825404684906310576658931847585200218226630513122517191943884086623936133943940340333277598639703155108884946396015996085822640469819681885822813971424679720816303716288193445468419961778282714123541604034982546798005042887782299710405829136471477763997484201760848306502035809800732716275314634834948939577239845113787354998291668470992500163954100343121736650029128610730804715498757330968201724697206304629706132335542799295898959286114968793753486208104027093678706929500146731395260020044200797450339915427182050508053787668239714891398668413426978810511670781128677030581736251542394142397313664440909555543992686953694287322176897180604314089358741518040854783610766900252101933830711194000044908716773178788581300322236430911914044847423780027963621364729221082723235457317928778912761656230270581551999312857271600019622366005838020462523444584945845309920052087090756967716631055551990356738341097599783990612422420745362287425876131579958909635683805169687295451470033647808457329208133496225910630799447940067268467847042975508248177199650574599916594339400598177373673975770947135154089391611645951763068050919469327597269587310159358398024115170060775963248628476498197746769288812821294183331153540477479836849427347929234711962351248319960720746515447026054684883450369436721576564386579378907863232808539696130217047382082751228699391813503836261777011607000177258477801446724817779769872710684090010213507332616431954891298318315562807257214722006036186523194636023628143989344431840856430216799217204020789909323831066647566448743454335990292557575882141359141193784984199773994987112845879157269974780930371167520322080811869409759284496258946262504226238015894816752150543636536534355796850723126004917778282048531299431548665481251412325199306012322395034010947169321230795382222370221548112477534800741656179814112857636923319867099598559029862718517305975346126569485897125497616320905808746340063515775653678113835323611391004513245471001557516424446155341847798019300083708025348827374326955916767207088758652935588979830383280590720071571772809709377428248599194427069491832726437098416653374310494018524966623267175940791381413600163998718754501074633688525984204349942768033044825836212645762986707465790406035975026410174560703673032521095819249556977866177768047585649708742405679850812079139733078678076410755503587097344206193218071048532271681591851782909053291682760892814554375675365166485130208046692122076373879172393113216659482266543758780742261430833416394792480159244430301531869563932693250694952898698571112664813311571758145171305558537345465677117484336742786499154854116419096204675405868011048925910661937589897639112925361730072627201190785705030190097960823473524829161425373021622348825755613099426929424891585753519311048031016361966927966926361021379020744503680694430520827360473609692351620275388021102895134333074790967179830174353837595267487614991957947994137416580354963590725509980304136037902687096271547337570563595385929553045012493938970076661061832398803979462999885085422485939555873863471043329735032689838734941157005472040394854632942888549708755297942724716003148368515391274369311356608002611774830699019639108367365464739226884360294066013599504262248545997866384099169820870313719520994140048635914998449569763143983012294205834144198064349571179021990121954345049026363061352548618824124896264960721597570803003577659973691281447840606660469613796260046572320050288602108715099653683337326285738865688430070583416044054964515443529352552901114919014975861506742873820689344928710042323723990129763193840530127764797964909304787505803188270774751827037029993309766041201200234041943734299181823941154274274798456223688746453876566158241712006934387618087146590783954653366231605031516615383649028123708524445015022211535534143624334569052192074203766220650915706126560673111872868640770468179112869206122270035817000750688808916059519147552103804401332884810806312974809713209027193936333684834962678075613888375786335048655873271234383132250132371563673900508641665612163545275880256696502399153389872937891169179767133529299264827368797592792874629868384806533721853798473377596841814587081348351544176547000250535270713554998429712648510306559075380175922530989474542701767985963846544899812882987010627308985045776397618651963247157682022705282285520651762759503714449425410641979253108503151643191230617949631392272608789426971108187409739627296571515062040070496478346036428429067832113930960718871359383691352487546993926396944523479690688994271490537077423138714858901534214359005159994372187445794704342858759046865622824995368188651757821750764255174621336738206255665618024633035514349506436490036134718056750546734836599093501155368007830562636522066380012560618099085852462943360455400322998216045674750798309321137011875057315892046525497085926470729077812178048280649431292267113131605235216041702055671023943256332558649482801366499146869741642052024247603397250384995197240541368190875020647409088540775644083529908464827854006400431974139671680468107365480396950101681016688841662623682860592104042573622964403129860684798053507741157935316267080404516885670675423460503241063548903984186606090560100280391338425792966283123002722302360357751281211848057304388790330731197924050925093602690203299077702032929711991175512689623691136694279038020082657345276922357887541944070618409474760822840788803518010836534768393337841929768598516838134517890066529013075439474551241279115834633466453340288712922237613524256653407588287144009312875866474650650261663166754682018165107422200696405194873841950323194568915714804353644653974048441453021112716628599555460195226239813007564097918375352083375162629180006590237152790563170871987663100162706182904340702124441128958770698904317010265125744610948998197800946575376670459291483537208057295584856432457296979746966081235442070150858993108401915911374215587290455284255186060164768591787181869784966334894639443944316331461865109237629200501601962574730031129197847726678829971160166146274607408832844312118847980104053464504787375457029681247948353718473064563056190283569193873088727851100975934648615850873400443503544231452807247030005560893477801388394798837642030760982516770326669319457926624322255172358627323791319458297916045567820243792620251716374154472332992593820770911055559462526737328743079840903205966972763561381324724896844421675964994362408980012741590580632593131799050722772163514839289522407494798651047136171543624214792079658712903233332181889422120911937521306840503440856009056581178462151594240504973194837028714750607778326223645770464546601040459064594275562928909924468180410443466832343089239405030344153838507534128436195026524959005792399482497789596479428418091708713749169918649628064121868164415625486991985118840061099452406737907163020455603374099722923967919226320276467671082662981064006940925016971767728851932045921944978380410038877042330315997373626453898211424312827059273637063781845940057639162999117628357139742917576468892568526837845436610576259524187782701837952220257636313264269801120454295734795719627779483022835069511719954635440642960870527197230176011334448154748780053996578045160119235004717640147579217707333277324989337132605712450313736548237023898667414468712106099603676369119325936996620712366843648900646943722759423013805355272317667282362257116636193968868977069533997687970259388277825911602873131866337843503092689442399331860969992618753201764601885772416316109122150963105666937214300932405310750343717915216063057806152231618898033752848817422177143421656312267476951021918221074319537741988362263713072463542961913745807468796191001709007588019043996095982850498430613238554460371136303520425826885410744538667593347641710715231371994669030038934673650919497535644493469797971311473784452494835467336667386337172516141660496173057313477592378101417551079016450491880828738274783690424638334080916292497231648428685142114416497307289557970816043250531587906557872910769362122945834746794618942737333466558170061186203120484319393277533744540031535329622857961645814391588630395035927040732469918744056723663120848652855667997256974210556981358570810265183094234704487089166660118738610003237473863118664507086554299020116159465838929140820877195998637459387330608066402520675647689057056100979772638479172711365512266319190650141027624065872077340666571027707423617899009034477081691942118354215804852736444478856798414278443050448005863655006776229080960494643166213807309324685069694215492039574132859539673851224005872892552993220628397174343260907714025514940760767720325276607281787231812881785150244430431117855497296411233547220609352935718259878631198493515492351478759986095857154663216845755923615937728257345090631669740946876645809499220293251181720471810554800483859721586735362421233684489631189270008952676917019978311267552345779868262947529472457091345754030254096974369702856419545535151993762739914415216108781676238530663069892010547261862069779889249570663460438598027699024371874781236172881983332301199550925565639903164195951864791182829793048835994671895229719565089411214594904181020292454030874115240759050790322802443610249781307285896237029904316855661308582489868843683085213838630747325271744646287630962623181948726253617442644678809365210194213706411672360910237861417571432733716742888162386121814832340284288156391042022001953441905996595967125349872891923059238934057550673360786720435039054421467976897000779371250062244850945526805224125844340900692948505919087270131119324688537229120152303672481175895003677488094440930605200329971504878970601148990080260800669464292711110581044847935633315998504154606625494315722056504603518860075632834420227507195028873035286214668875709828501444994048664276586226803929825659007661055246351600731733730086527472827659612915072732168941878418018406155141308984808543046013099156127425599879651234176945098478911391434159362696924248187766935278384225915436568729572574850974239390435931314734299997171577702163395048875520241349478813444454856860645794855460254260201449583633922792764454210285691659965188977769397680067715004820061159426953284904256550486724736412756129803509107335035069855527177770894465628646633332728064955366789357393137949740939425167884873985743550577178980055254375019843366430749743354280654992729241064693847003444397821286673403444973304583404610496122072530856044827373185205557045949718502719916796018095200302142903982705469795991641239487239514480108803150780283906389801332288985975563591711211495103658608713364110300282557409152034249628630917393299584565175555096286875278092379158203337158582740799657629103558433931174658694892837996172646511602743935166420533394964009218510720074943832293268181152359161599771731756383910031085884948416479692618241271006563489684237273929004803895355284919876172905034946751821390135331291709020212954649982346395017829489210309355340606476340408410663338565324926199472615267306786544503638679684364743789539760835544764925258775258317219676023397658987833212535836828874033739803977090411953673132323648893231004552705994701448797327000472936737834738872036551504105972734916729106345979535122083786847624210195209614002532246467026893652733040855084670898022350867709193911081095186978981022776200736842103144455589630852544342294090927840439842247263943251891685524096237843182561492188108009487924630213793180473601460419975792116486015861060093131261965639015409073506301804156754376708121837559756776835849280434520180734615755018533496509392357773036968417226775776469727584450021249921334269545088882577414342378693910550022010461646925873552197605084998119860638266214421769962514186311214743321290516887522134360767429732477282377672377932464653309237921776482458075251284054263938877556652491067142775933771402491505131707259033367688749886202676873064907745298329055657529774065268048862887466906244293877816443995687741791045864404517205549261273236088580715353810121847378899383537314744687734349384889579021941288532268589231179386023186128594428386680959284811823437976150032679405884496880830822705081753771284080967015128171049100115671210285405721778827388139269110703628261151844901771570618560897267230010645450170623458707282594499082408940706011017026738096039564131847827664361480428216682159379630750024452274615623812190887785321354944699106602410525675458116905670841028700288082773532210133256162841054691754188276536782083665392298727719504809969229890998410590238444891686241312401669326538590874930646563360939271827262162448928478884259650348454380426656233310823484876115294723498956117877503064957701951589310323593942733301686837455719367122448685678058701483530438452997569742529240705656712989641935814771548410083037961857465900922747351736309976000093884871185242971580425554313856617152236883526186788185589107589924419185918551954236571815053940478227991842646900867132617509256916560794031497586805934554049342122630212340478571305186159895322312220082925131598412347827668913854130200627245457453161894283320583351982012971312299884834379090241883003036830805182144370430636284711226132142987809522073569553998505865135694397599208786627449219460601430694398052985914269861679748609306316379394100018877377664963862601539019388705463715085126426850984756392141718443541756680249991670481347799501429298083488020664660180476849410995161054703827337777143052712955576999625800930541851634306129144629226180802120790746034613064016311250155650724312964154926362482905624299000948324268980283861323302584496526288287931347126584624650823196616156241796156368932706052973986332762787203733922443758747452160517976177146870301692002668159425863673252550768890031852270188429369375824110709897280301975398985035915611426977340826590542344471257977231065972888722528128873769066298756007690229050472011838123650271374428724888745336412110475833606193399738045462698450348838657977738206554835627700434479098319537956932592207596345437384010687946062112194373652823079208838339272519189295883682891067476407994198658427277579719170457016200453975786443476853791479409201828399606789785635228636323008671858417782336894741554527222850262969814630715836663254438900771011450280277650697252571102747260958421067074083345970820910939677439016515257725960822635970035155095489967281445011225651449072234001068538149182635078577680802442281454662833413216618769163424187980267043555554017144045569440005056167739678341583937587691664640381825410949298166238586067673936464224481501663764559299862920113659503350169024961813684723853395790768868390777968478743089036007729987178502499867290195124902374223142947059012817337237661129386338271358674949596780484241695581913527834081551423980616833673238505866013523050212557670674573840368901704930091762772411279982654705872530959460963240974764326757370091759787291228318829592908542011424242878664220772738706739279545393624763442376703498672494604851614679941566762384697715241782646810351814983089976564436279297436857387342302775735218326127916884820155464618666774393251337147276611887620611547524255494808263336145725603793080112362635508919137096998333875102693208687927226365563091466271460655423880424404310097131773897150835034751343444298986849935273013137435667011830988962349334864443419020334815329868013769783913874271550366012964574771659876690648615769518623318461459702751320555186174117195430801432875745435462877948892065322717809436566273521351634471732292089839928845740866692896188135156348535300252097730525688870595817259771592001308007452791611720381241473769898319582083786776528029005753677014213725899953693886694257234789827377360472055613231741953568058900810788555978010887968951231669860974512253049077640480809333690714483954230698679322390924821831114714014554259698056818303295864188607248816332222875410839366711650917848733396529105516216387528567864077825696066542813804974588068097864606524870079855266244801274520150953883149942237742478798429949692778366610306392294243487624654183232578234276741958331193445240256900507054653430696397931257030647429189128621615528071707716075055447988461979157582850810222459141121552575013324639422024568594294173692645886725410659462482038206467142983226984773244924890048922317455792861379899773665550062949165378090155852478487165787213496090834958994478616854403025639642636695767483604095578094559347563979513729579208468172949219821740228394413929774272020183891251264257084110884518364483403972855897561433844902256762014187742329359790464455521481468899430997756642798807124623063848884499926460338483266473104590989951472380476774817871212436724622426521354019362562685981347461513500842575390392694070431004283505158817806479047901788067427889537498394013863685719458948287335514470357956015687014789704376326691287620738051258925406836281904104624051829191593502115496976284648395403075490176047009526276494287575728143978404739525825080213576002497606659868788196162809874559038083263764429540456428017870765424386410466350565589643611769068926246812628018447558707054894692648210327741783738178505024931162913723768748614726577544333334654241547857173777332029324044300336960704451936306890762540213520332920359696907458142094248216362721454046437542931726598608847716279964737299426164955274429765170646614038253427597454617394085956314124290560548462980993528613728174555401941191961219622387439090604461622830576329520057914167808819633891838748221787059780972013283078565366810335674167490221655808051287019186371382923985013095118050845702482897640652482625375902322723534513224166106951279087599791823762335154682797041829509861581278754479087609476091264241033767473670866894226888472109648991213822290106325995292460529596948255377263887681639132290386472801471728664667306220530351783012621115359621044898788580319114314298633703150677424646413242977817927616094185597214276154464161158595298062078899078611214879906684504225542989966926840392386304113682691198230839653510414334112195487919838586643488447559156574276074517780899489799957805875721761430149092690365895037803848533100917679002137597101632970159140517063853115417217738300926566006265154786261794035605395424340376862663846481634289611062322876804500496924848555126816011627379384861967431473061914600735181158126725545722109353953728743821519523087199727261507030678892974326717725002855130271439010017227481642176007303201331457310812247483461365446673840967484524774369613630585723658778127551350919932972519203693799791626262211146095639589765804523258263906007936779041141411919358315029626332496538290582168311190516078889646065576887510419972576657251397818441424509796695836478674319381599648688225559764589502768138780348972702739823789476841369537738147821312577344873384209519938875598417554825509881622183820938392353390928106406966191978052371395738960187623279371489260077751385835118060007344677840131395412980372860851154602932799820500476098599307068754482455849588162380944762977857842619296228586747622696613751120484696644310070268219687662287458522991365800489023513659883577898985416013548807414268809765369173402868534628572235989435563412277660889456811285052565555853050144209134402099784679547876089400018647907480368453776008460102384032012702078032580079290798412327104805110140380180830093239234189596974579717916317776084455698060419711447779332172254934340745907446969397504963204416514146136168573765888598111478629915321206316181399610523575371427974591014206147178808438554591158979180902924590456136332608810041452534748868416891897642103277182462717997396452224019824552880372208009740944010856754122360368163569801119114756387856151024230577201619370845574639232414653577325292478073829806190523581190289020429415973536503655343444681897490885426958168916241370401888059713968533776547961407428399421359599573970959330808448212982485136647755636463613885517379456529534225125817720938518516170812881416028065734218421725935171924341428598137392113825793362200915353593926857878248019924909977670767583230366146713239192724437366836098084692639248402505419107783078452117113064016728297953026820117047069806515672929850420809386408443155836595604079609807440488628630156837693275851559587908108635538709475506688117378350233089849620268566704752037840750391427659367790686255269687856236612623106490087366253349896783214170683969621397117595714258483893145330526756797173645816678812098017778961081484154323618313619049798976141322673061624220443653878545329825665701865838634005711597943659709668160661557735167335381752005409202467019835830894880211338350877186358558992990754141485870076906349555778178019199088482270325534246589596820759369484351110573444912535208020396986974377561985500285574029609496998446970861443771552430550048880310330337965201655223435016866043366277267014009136102476965438467715034491114882524341600028901159351435969540622102801630302043004731039572642197575348653176072618736437364823919739773147530929607144283415256572426758349430843837661851472829375888632521561411296871445072050020729253511775000134754973570694003707442858229914725050694834683762522249088609472853407854991185074885310152396627545732304934416639092006323382837536678741069118300156623437169425639182974559926874967343446638436877943971964224848437529683366504566464383654145576727905087259926946165030819835685864176713175222900977628543834641512400288145134386665931964740470207560956053888169267418732960399444380143978385431113728990306660495103572841685096738926104486151219061085938179092520605285238347798100844835455438352575898932487520301899752974326765629990195463823204504951926367600708277921085016625339703262632571407668564663205151181472509720245731017636993776304014837332244995092176931722241662177682041604088670978830044868546528238083343648401303359559740225866722104465733544107063258415807552503334113069917944451787799260453717086494922417566308069289401315991742275616273652777600517503570130079432243808346596692357377491135529718566042789095072926729582665158431612395347045936600153077118699849022120831137060501440375387980529462293281572197117553931806934470663031491332473667457230415043249922213509663928931812876864686830026810514994911733059413173903779466431641131045521990434095351636350099556379476167617138575836000227693006871193024185288680744718554030627251823389302234959569527966197053440507106775269597929335635528407385455322500849678900397477983173700038275567182215568130206637609888810823051074463140322122113885840800763927542790436218949889586765266156780913547700573778764592404511558206687006705903300311265207643217302355909835805842307739792278856237282563750732680308236994508832366001434263824396102766773719793432157456210698720897845622830873557381546339728203464785708646654855409238942844821493582060629195337749298626664667491223640539622747781498742545889416749214140024404027916492439786367668474484132961078325393607922406287291475585245848296025802502476222792795014040026380453127108359102447926484918063956815206046455472104261639793089679398812125547116509012686162736060116131731752001025312943522825026137118526124455142747509409310816153947144271879232487762948237891144597619113230657466837309141309518520997820872951814569104666087511736574763691557024943050433332487465403042392899709309681244544687866459292344592176666149882824318108238031436002701977187773237173007202572081057935764367858570693260102174545808025021621328874200608329630590769727248358592389644537603679189865544093373598738930654474166384164625251217225240914924010284972342054997905097228200548838552579492208311688380770550230067950292385490061637243784041915983566267360351750905108581486192250156638261682366777668039482218164139252915837490428066592068822795804038809037721182880068073342995159454534232547485140892606634393127720306496029955237137583823049710021289871547042073565255506697070023320912774107795239816128056781703128874900152922116980726867456052115272124598156099994691604431220875298972398206833353011771771112320203446228993727412552229358106188038886447886004699572661739202397394678323367857978726272569036884697960493245993410696565239279970386196279633743584602822186317976277467286369751257083336269109717212967280806938150774143971664449967592593831009968426627325658156960401837738407105212408620139238732792142605374790491685055022500818015072756384793809338660132254978265566993290439382969600408985402576159700269167357139088474829646295773979268516440927935324021380687538759004268892895059844336506208009602287284673211953061741458849327142105104253942889329494169450251755408676801480118547769294913773738184673318385074051354795992865162457489290407702264999201915081311624928455724068105167302063982335114218172481501375821263329925562950964058643711822500854974340848756218207225438109838069899743384441865981589582263183751162168037621301390803316567108468131142678645541681806343104018168840349117148911451436259332495528725306960801421689904965338963298743530193368053404090540701361953535289928639139493604623562267095025526185572070917123896822029166816220236183141031394562049699209820632472740299590135450031889512044276836585492692641904214571065613939123672355571392784501456499926314042695882571756455862576221920937927293178641009942031894220927033219700447444520126548539107971129967922802745707374374056854493805811493766002151537713960114566092111950009447330858258806603234461049137149559277922016243920322007980058498858706103791434893546393198882199153902179722906997969317507674646800527994404693551212885109310833662220711162830019436034418437823396585441593761747272672693558448483548901207367029810970720628865795864692466621079432356643045336874081409228562915888835434649442460321057537957580599186097834573316303313980237636341282173744658602896188529915855737395972390991901749128558660915416922942262177905225313269018944571933179580596864116039281007864255413367100456572643214411509627299146816050271776973864978705511938923265842165309248672027616049915399650883560455207095833616776975404696453939981682660441415856940282605241729568222551605901369453955174031321755172824312540716226116043008294944822077605300704326231867521990174946627321798905762580898199147151552746688228957313477526676358836013420380266706732606289532193233559274551212121977480017868605074623991152819077719810266519948313503713344014119811033909367316603493823066262333712107690224291456868631586491571656276079091213058796715141406593184998547234712770630813679000429726801307733356153464078046636664291109144196740492027650632992760356839013933877265270691662835121883624482109329606309143511352239020949373627102703949955933691300978583784577456885376794797319920498990693715210982633476253426901636810555883371350612152581748502111990906869849865824409857604862128259596936198001333414793316021573028481606338712844977848248060363406991993330913435452610734189492889715963700179836102621325496885388680336695058316713514573537334979876678237596559023137183987979362665112251124508067494904302497690735247153143894447872701357177345127322392363343576640551510776670967828952448072941176576767914243840278153109763630943071715871406378233096655242679279898809803962967017696288341132340041515854339254270413389952124379962411911418020111257463340669020910619104025687062189201531669762883443538603489786691186127389462293681704665384861411871989455116659327825976814768280193680910051418483858801746202670535002932991413527299180250872123912176626723411556757960450809057245141587427391234376978053284673702120583122477030803067673684715099181052514467013385919096479441382609475922692113104860692456529335982967496557765927650995791062354771414782414436885276596834304983224645715387727599518374371797853226673603217690831205582107351973432648573912943531575722618741966069923382635191190652287952786057454331042074860570213470469792326912277517792732715291018707273526023004334395790872769514507938187451752309610403870595786832636043488257419228922259491979886159402190214057698858523969015546545137804335654671412795117677203073211200758163116061356685215951029778085589840036285828722197958225915680110916233395107365360249040236987029657668093383795490403055307228112743084561996285462881962190777883814661791931145105848423856270718888090006383607315913198052519365715125907801030581663246557492858129045487892881753250908808234852412138247283987246457030524064485725615771670972721259550942398174494944629087581832690860121838052999296828886458445670825243226241593832385611401896606751104466356568045217698069015323800143000605898174720790084234932586099016602246217553987481864791570250501463804182802168862696970470876939309735993926834235776703098811767505845400167475144081401797967162965329303796086923940308736777328398230087187594650695872115875675106852183132425526446976530987293267181381980675305255721640710270739860719024931838292323481011338131319460694958990890437489265044130452588738100721873923962256857724401278130644248799251851742920607896286471071178193023265837171397917598837710963538886988676253303247784139378673718347396467812767708662577096709778070507590457880937555886383775023513910341539166229114563644177909239846760769937857109138963163052761250974762013651535999000673918991995072144259702665572293496431107104213024844812509099752523293772430144674269446060669814567841907116556286793777497573874654228277522037157562962747207420654455734718585432905248370391066506175535209446425779865355286678697856699177143456489346044904756668223531492027537947465452236189612138205223960320504842666531460504795533446112901533556463135538928583920035570429484834025299716305796142066785472088427588418286194303819583444018230646785479805086541071489118641299119999410182543025649184546452100776591027456952770464167698599235486320403000355873678977147704740501583141858967132225359069841413291898390359195653045980191060855010320398646242232770156996216429054080211157285185237336906093148583249032146890186507704267297360037511443371377232993683936339232762216362511895802951700133604115734410798350091972370480001274886201312791959345175265989922422068864227555535395138578010683056444875406438915849770227276031876875052101821799456462111712757039565666678535764500880597101742490587432576072145290704670615786505934891971548720591640037564962499336613877457108634696658267573402369560423657526023124545795395740602023864933791282914243609140091431998981197214905068307138772180035921132335241179689054537627475562728474792772989492881907252529901291798568497004561300839400950443499339438847627597715305318140487147241299680758963668773321682402140343887121100605816194708186738666292494911559187755193081782542281267727568243828148376083915563389187535515943380606764582108143739897362478372877787484771574915082415180296788971637792262927272501781677260173038264032900418970538741949512789348245663251587169790964574849002912139351933068318777985804734759045217093358284876246211379171042657362527784753638385955913509620449213297583346592769871751451190160465410963035353509223612368549105062044980684035785937165156383046980855515764504466989936684654081635525709768816662373116276231314449912346069026174268337909651726070663640083938977168520187537895066512953009458263181197560421659646517188208712596212575392576077463974332205335072217530079690926310226753477144577589555051609530518947579243578841608639541047549877035071483042643438055305811752968542862760896049175840074554395905520188675687408211956356668843334302703011693673505278882545864109054402906827842177007330560076559308725748406366561740626828991768315743206727395511937135199395211027709065194222890624239965820563457951323877683037339835675626729746765859584065311934665621933252291819352081746376676319117038665154107849185657812837970642636563554120214448175337617750586895890031887905888092581254770780865058117393612909224535196729036423793126260482883511218450990486527938850061696148033137225651795722239547239742426094347527204214896995627589282628525180179024117355227660504225844588915950477948170058381787674983719034988145284958541784726364455186668002567491147459707559243865663448142412616635181914214887174817230152866285861429530746250504753402348877777227649974530843982047185011004444579330300610671572848131764706718625521569682103304463445514010083371525338751437495103054085867624832303793418065395369451082266883065972635108721247523409625101357519119279218607080908536632822391800970815364849238758389023170266976347526940909733906706952315466681067376778763459390823690848385533436870468264806538850009765532443065215347852676043492768394327984284626142491604542167629153783939475528621088963856292056317720226849478164539324075559762125265839559688150480767747658521516098111713899018210358348533625711048113053610434733017120806758342128643697710203770769117988007277980595996571438247250608685722225718784988537921522679644377988627594264459595467280269404033938212126814733513036601173906999327649249264035115707847658571472542010583392667435111995397099881924383614453056685333792979164952618936794824186143677098057006843314226069408250327921576851597686552989899395417601470550194836849260083751931610107826572531903692662315290758614078306297218204422057756838018010448507856753128659674530297921230819025770920353799214542223808638289751527163890857355984634595509920461564561592503299886627722996179824631648466264061046974416495545184833928232982750721949486437344429016192046994051015744791003404439509012885641350342010691753160576691297937619191499423376880681300871857225854197961254061372167909256703106332299761526865577600807331067017070395531717583208700571233699697659117377783113569237331850603323826753689605235856525492620533372934734131947176526295971266096065683148681123356964737817781135144560888267769641298864257404395863296647506748057666088689824958253302948764512242224586254459864485861924028373202581913557558277806887098672958583883134812027116065205528073256917656380187506530885775037608349233338138838066163195968054965547047812487528578708649356514626624664372167808362466642458044788946591641358912991238315325568302584178279628206471548424274507680468198323190406668401477164926669127372466859659519333267940409764528174234511526423417154789609949761481401251693996093192736360102348178882037952968256309962537729317645338512576544986999979724683425237281124768736302120785815053652721506677201903287250323086602391304186441199175579196661573908568571041662639956216351510627124123501330879751350315258652268501096355668372099414501746917567438368005036122601015755648588379373275088828848598602262476868895620704092421962265453486873862693169325761861283603120100551631802626306569603089854022326371627823405101348874355197987805877526263865468782905086499126103860376290108434270324862245298773093772403462514483817408562173426545804910138496315774412037400357001699880609889703122253317595466254742316094852080321234485912150068046894222629632177250314464688353656940952489952464535643149742681236034652533662925642171121280167220431712352868080938183067144335452811694502817954321383079741713829111149174424840710585500108854404181607699601886139112105078568860079642335727540496232319870041092689926303431416748506180476851872286023486575279685363830458146965498190778309878459441515955391907215177188446375306099511567390613513771291726874960790155754903108841586792607028852975319299481937136093209389280160466195309072561276145269624713786045800159674630707669249888031738566678382717717535880108482320904381744286642780252741566309528072541246491849464880127588288380891371455500182584066566823795685861880278898628454265709747784942286466001815300720459518731070324555775038181192176339328025346191421318076665508036967058866283767865770143305922345452612397464241773001593944430675282962221550591918796335989035250294181651656769816490447715950370912082411177972878295180249886986164653328858280343619671892270100195754580726992507301946035850916821940125618263749634709236626130152080230836050032008919569070037160888118305335927679259021670423885364204749425624179881705981456963667138599801829498084968361451699034458813307616038256708586596210825565912812952161699669252639115514869185929779254890771895750054825811914977581553217407772601212511173927921251079180485568899889547431758301295074805335732938500911480391664663508266051686622473030983743409586460142532001834123285557370420070667308285482090276619066842431221096481750593654207327761917407849384131754704894457918614482397503128551458179316220392875162369900634136353703997587225392389988472861283981808112732042629094454465593900940720162193969384270706232284769453891471145094845654936264163618149361525226222167506048093023282616722933358163490536462574845899732749389636487354591552780191508158764614505327984864022390012226211216630740014693646684828375194725026864722953987916598661943504811955358302115775259132659526017522625698966894503241914962805618825079285462555116371572546305418175127168025335327491498049690081090338094001821636452199096303366094841517840633430279780091536159609233706234732782702510449611012611049543711098826518714668889629769757064105136928278100267336666317046818996187002948071540882420014589410014434969832801255663552353017701004707232179079642203080459198804411659980143772275260323924969938287708910169955483659280894828711299299678545758998535689185191866809550482193611724307813962606361113935182753375921023976996383003431214408303917550767743572826596591727239564112894599939531053369696724630216973501114485046359811114219226829609744990845020284034446968057666099074911891575341981759989782454468573627964315895798832034443781365725274210000475633767684185116715931278405296963213801264516913354332966025823674000055068971060359058652425288337154360955398669367120785459078723524615949057878398613748780277706779681786057003296943277638489595464611535833047491594673885007665529154096825191809655187343349041216456389122538630218404868168943035235685586858765080408431903722812443746660645162291334366410785542302006615079408984364199392176788939542998560167069738835128882924498777518970199703206919044471225123515049153875868639845266767944123666776245361491209612570699456577919191633884829553442666376172527167437649800817290226852645521826121327215605958189933704310708477135320731437555673686246467333645110412903324078349087932739911356058639719136629902517381105105688022107533151380882792961024988421789566221033910831526373515244909085226841375961646857336948092655444619185969718836483826677247058296175478678447540376395499826772135939768337229847649781821777113039674454628151499279732108864358022938050308264801051293846139259837594707151675545836099249386828496262042086334778054692987844639698475085667957850817687363674263478839821596820221771074010789614890583349679689637091405285549161045722475500028122424146678642657989339619480260243756429573064522678901161984676343319035918536688328635414994133865774692365043592438457390833807346930972986375843122115908712957257775108615860562982970572631682836354339226835641058046064011791474355552194668817070386056384429007088784303378286730276647864439496031810075466594664958714142027139239895552320788060928519592645764076230513678500860653731173735860845994646505856467491706965085289928489723625799138632264841642310840930681515111238215091382629300276962924341513236223910109487596626931150006637085275526177353403478519592934998121376356058115007681739324246291362504191179559233393640813579913073977700765971564171714398578761756999893865431186443932020940109979695834634753926738148486510378940082354365779658334360055680722515892795032303924465695054336574838388362732551440744028115778262674959857055072273142616509105412634463540881308416039252916298248215902411816762724954403686471831398599905657092687365714895415787472624268150380797877437652315594980384650248840029453035018860265891527017676693217044417711330115802840432252745373178798884766258806581479921815776509283563708426917336479704024646602662201906907085547922473910830860721041496469984409730178813640027600510262272034355470357719218608844848714231726838016364553920240531511653952459275664183963956477564198357692270489728088536159295950053950051934829920134772681826857584674423370425501573395983089710693896553777417007825282681616000694406216534595149112622290123192932311922318884660508913392462303545957609744672498865304370435458775343966150129933268985455633121321839409838419698347124211915872424674191376105872340960354053209721085788212427145403764431810605638069075626254012126802537308689422443426114600633305316837192842380179396526706272350748238743718404740805292559564908948412498221941333246217583660952403498858040668825459291891625511450858389725989306692027233491121402753106852982387287502581428152233254348922564050088201730847900159041727505651649271330645743192029591409157563978563225392365404808342076401214419236885001605339353554363177178514238237149847768858834868270890917646604279773549737507092526588872573606291872931277885374794547961896878865559533434180316205525170390408896376886726408199838599394149771440774658168494405460197440105848983072470209414692927907631978628666725164115529628549752340123461175701880913448195614279023170869311257168084161771526759688885574761343969951464674784905480503782424932185549015975785264009454711302300868144318894439009236528931397427899466581879088014205215280328385494020255376182173294146299249557333009854339468096296295904650608334131871253684991069071350498368291881803819559682842816326879231535921864587263971125985180217799859772547296971139278154392703690238206590738751037521103053997119722593656644438351265583854360272901722140041817308974126238888258261165985364343063482875518918548120076670110079200145050093572323869417172259125594296131366955871649389567881154159320721201513610922557594893806697382800122345463310901932485484136348256859944163519849563055791351967534778068504443334210074805856670756269674441606034490160209660166618608410203693508150015905684413599344079961816771269060569180395031580648652577320022738993656757755763223926789577271001170205541902155011668909350683094189587797629589811721596710179560771369917992810114981434355556097316046359725394781748798251882402198216143712635105298512146776949657538052786762252278939169890227526777141281519833404814628342080580816665179962358668372607370977100642505545271104277099191496794125015758624393618871963917843933651195196076269224361657783573402749989308923693924578256007633100158843632985278316110726226444111087217273009105215912276720611653284719747288808911446893093829427716740178634286518261260086085421980607303571004158627598751098967303875848423408835283366664762469539923456388820003939727097237539996084558027295561595364725701481602251650285506549905806634603331419116302475272729818045272445280223349347384374716351894914397880466986162807731382486408878741920004140675793517987904542234910334474451052186861333805829052932854097097608782986699494817157075323800048409518328877163946408250375882889412208728933856336527161090348911618489431012654897891406314479143033751879397165365369267250432501440191493234566025775071604559722391282615409718951842930811115522962083929465463282356569195781496051974112993769507917130477659172472737941429936680157438346243157994151781175842829078350234528156575124333673185365680675671190583178074790095074019898289157360716560601744364751257536414031751021491550645963154129989455705534311664538223625527278229021024838362843233999891309794329404347404012846923839092914357634114615490505523802494983713256926401466904271194609432049683495789516260465526891544087328644379490145362994181372831807000747767832391544544493120483539991733442553613219709654789360830145039395652513944221241647192695075323780631581691810788180045428779560950029695163239089959529092386031838928673840569927532426514663671420731510977598972452401678874431245042909096281382659845237095788804095535303540066591387360588020582591798047773776267421192093536837616664682543339270284796066220577957557057270679277402958627220503643425802028761121067562020156311625942125209737396889971902606786878164561405840507766457297898497865318607297263986297891070811276258254099832611243623020762590894983476914829635158347427300782576573967539475076240513025098585322376125629114737367742844426399654199835628147958968816610666780902036148748236109979597889844015019324092651650798070031439316095859196568437790200058927676763968725182518291351868383886938240053413677190925965435882074599111688659032318966528904988609034708885817962695058018921897385319751976530153899845050014549270065666896025376906090512135973622922768124349765330925460752921543761687693914916139577011166475873488396103211638713062809864529018133324286721045624145263353446782821866950266560208352920946882513036474757038161723225725958662978864183665399249539192338983682621821506118360136487494150694688856228239158919627481063188953118532779195008026765093360228372927705211639268031656485791510079875493058508773305997942496053520160942603526973490119796254032939986169907089285866064023038916303209007821681528341372906240072042733587718943042907590164511377902830089203218275333136161276025221820922541071776134235447828767215470097196621986336282503483845446241502750035356240923652864757607334070729494482693200485293757542860316534538802120100335963724176269497384177208463642926697044193820362051629680544082880645994831131397860566650352613924512338134835469136913111871749680258924227108648613067880902206202319298405429568513988344523326424554368850565289870862868995888096078119208025596879480997318707713788706469995084157943826059648862975856159595492337183084271265616920781803722764681085321940521034401246129771516660506998853411965959359747845439092733197046030814286708931674889005849507560141105412781287773036429006981214655282617897078274072794395628756426678967368994207794296526316605039644138975584039534736716932388373648372913408982102328972190973230446066609889577546712450672933556534608697313377618906124974642084868026124098574362046853415177692273354908667290199883721087112832643100050318672212980657098740173024521366473715214150766686536425277495722030858150166899562687469974651002635112664787800289302448098012963997013827526966412232664817707690279258711826912518894927389323261145746890001418143763129011081480541048556467217215712006260913477776887705075174677146192158917693437796567205145261942864367978844486376164662879031882758716039900143637370490350545861259317676743620188152676528089263132472612325011487973571165131461009117378270914814793854437571876200081438193587083966495308770874486634801850239267158846939503815451373892669549134951811832936917376611715990010496184334735990961403053685020705307794577881782409354446635558516443745603510920269760440128138582807419142971061156626794309063448291630138503191577756279278268703943067370262080414980627529390754115482971356444773032921760866899678840525750059942935543579977580611817600928830081243940720379974714421990478454949322688869041212358379545636153558860303050146878035557988889275661998164688291721135365841715362105635516556925913790458002869425030782290455313522367860175745127552357695900825320187614763410421369612514351840872377495209252016883878015802148897904183250476806141334584524085042821951529014813592559583176435279491583338506654195042165942050244139813140441525088020347792723846076589511723804630352268358659272969257074640591201749743073595127273584439918667722419793777028538048580373441886297068865671485636352461287405360858146105603896620780018216902486085872752038745243353642211557249515446296311883013754894066130145966808248128939954019220400110461441521700947508864693464724812651943465633231636273564316480568844265109446425481305573942103112828155860773467295867437799742759928265934931086949683523822351567051185892452695359578828654445214004998554685273712114191274003933075692747868686715894529841972956706989301007608251513398211720318293683704608732461363700717108576932692856650942830171449050177368175210493135851766205081440447466270431039968142662188186308604243642774404303267594324292987890476316854123494250986862698348197822017215559155755585671415991660491660633311592122324158835712381187267775197965842503789568018433820270855521729487303502660244236646140746010382291004456897844406725032215712338541483207268566865069904520026186461317268790058305255843978556935532650618025038261196155841808455233608719570811050705327300174713383034893910874581661970522039271819080881365183804054375291803542743619649438351995731937534666039987710239340605826418835403363449648662952444786971542117367603553628806809673401174695498075656297124739762190411116585552404254603284045603683963623458055132735811521776529699482648030029832699139487610707217701422440770035424586103758187961301958015602928811627605464840579683777291042320094858851208063116619130930129463298018886704692969709646636495083326606750190940597980153437541398322317777473189126270761901978067459938235885551442052174698144739905123593641064240283222550478070138989624671217380947047546758694322763891232269950141795639216522347534566165250736067077678572369820295045933954729255524443880393410915994567200899257226814244185411048183763442286933769912071644680484793693214728449431250585719598125290548248568990554008578879595855727909398546532903382041138098231437614058128563639039104872289358539980160912076123460753963527465674521764220028007354947619676233611883993005782208272779329462925399385140014984776495465870091714322915772128869646349991747172020756803149821643306455934016176476829842021308526742895811064125385988173272777352748104567929570914949975332198083252008622735151185107830258402244203451876042056598394286073631191455537095083543752700604838449140743946647819077698102728099034482110356144449227545880596389571526962033825358056594323414468143682675773784417000542569097802049092145915974890980427541405614112844505269108438379047420138810261327943770522794244468350244336968787709340247346008313876326085031873543341214238899503725395036334227140685291941545632439326852369132832767850482340937095294006107983613863862983895175790955888816075875892529584012672567161940110346559403550065612523608427409048789434786954438380454396173379954783788337720711632684215437315627486569441064805026340531712892326189965321066589662938655069300602662821630667425224571512192198790537092374242224132225383062829018090750658260857910097030471091112531787677137015078559988129471792140737439265993956143777239972414370398085400292432128978325033298299174698718678928866843184550195688225037781690533981507261698856931883690890947046051611434714886496989281408268418977655945578267850035402050233234678657543577434773932472239312794296830662146391911298916211924428499181584491098629028321509707972259509474161927452019980035619652482683241307979291520001257615167610349621434463000596849582274281495690702126898938002077464735139653228839067115681143145351237236226967204422067473553862006597075822702683354741981621376814805615491008333463493893415157399847964473136356759717752619817097849167458702352581405361209470525423439034036520829738539894639843579038960836299403683278641085966699175751930566653865382479084297176107834391699592971224582727401984310585733108718429327116041152526093129857999113309843495330262378781327375281461658519183071039155989720886943828714558830434311502727542256551309334590534757377072306192600180186167512668019413283325258665984735807555920471804528627067334003147490209033972298676047161005146905186422137073739508714750225622619035970645783790881979194220651322373913137621222322871606820755183957937823316794026920152682040649037499587052408943140624555067114916652227103850793984341746277279579605248718901869421326840506301676451397629329998626997114137607447643768785891617692018285962024195526477116056069869739295968200977484542633169197713081432713159772343649984668948650940233006119730133115900699784583634327646935492793141307174896132277357608407840126739892932541857349277105181925080357206617617537590138869615207186119884841940647821052523887592768782617119769712035338434076388042736539804521743739140475475693199750402487443324345610051586439001978567712424536757225736861458913935234999905403419151584952561315240053232381814160271756554485391342448077042528709462317217074791816442974595384529263192369929995068981809920849265770084515149158711220376582702275713234157633955027814538524404419162211390574880805179449308721195831779135817026743055357155417938481756168908142741770240136331982965122290568436928162756890387615733191915188402260985656458387561164926241369976509376862606663020131031607889122718580166206231795296148003627341930024867984226059791993422439416657227670118330589055020103749948979103166315324401319932177352427704597303840700508494160648785050224892132013304964208739262802577277553112988522192763273374531630218825423808630479079043468076871296379431109699125650221272730412815284373374007152711438913199015874961946317761229924407687103570174960279956019882393743827193847295947982009089799526093287121827954473504405241225641378775391236416420230259178219903650990227883685219610425812148614401349368761044337679028567425628556698207903744648593775968773376212434785313492623879015986062760118903639721658232170452873540350588939313306447180837279394435926923678909653906769730538783589778691535859281217583869102639447658355973460562534362886821342719520479834721938516900051463149238603605067716558766777232974225215021346537636806757667346381367097645792681769138794952312121694888778192540169644680709359408983789089791632865724250721124062001235626733517107843857230188663923566858062056062380583459677812254015431126559456049121276206965110580882108659568028533262955489455369098305765224351233121041957009844363613555372151455954266741357981985732916894894194480702743143077177694172619096015822822123197776498277756404967632133622721258770308766941876220929930043711891467553218794333611897140561130276145469507699438441163808051169000868014814014105508962449015488802117274419333131067517713767726118296090691648855163572829908047712785526601593502471702116037982123960755846549061591767827541276390788094531819479903689024181518947835972434387039319958411709181789890168419819350233980609326339230052538742134858448694255745955873696020915007505755148204418999564825602932616921954787668874082344195908665361234874497646496964748912075751138087466915014263355288269671804860310209720328736553849535992163020892156062756111413581865134647283278090377391244106901677483104052704281802263223981663613163066538409069983612615514262221975718925917951619590066007498376696966412601447105131810568468506902374756393379198722050005685544912478484877304930242828659765132384472604127885673404255570999562127579211201339563713945434107149166328296066165294721789658572253660253612238274243604372756263241746379239871327487479928831034144050588307429034997548496045137000681852356777953307184864138395602163791687412533310044335948363642045415354798386660332476457511027135920411185526396034351681874067996738738556549822185828737380501284909644005294832311391371741331776991135329461608613483624196068001104584445294435272040675759983182240287749193994336219221838622938163547524715155584565671354374210773816421302500870693529674171717611893353788596986377993976320033712355538308394393635424383855428701417904681152025218392115563905608988837636401976906186258367709452292843720106041471988258039094291990969407934577990905902062168393295267779736726155698930052999789034479894412730754007401128611883584737896672641108819089446977570159551040240294491111856394150022042044470915693842893973049792108786763850923364485172571475713730178252327334268735604520827115428314553781253634046551335969640461228613565338345396504460120844594912375905116174865908207759458089323599904602996353152235836743337540685238475127335060731343134205341410531739115531385875594076970438850676249375553523172798476634455630732216167347353549543241078370345719160470172152411848462747804300332199886707741191058214441534143639512753373103527603903199867386421926658043677684830803496358650407063179170089888765246018915791299708028205240577241439635580397020254534875664217542613105745693202279884515706397673873351069235701070568373512387795117250127581589020471020342270099697592083905179889507878711503597324964435217799766883117093539682337252234466629538488658463970889410798168066916494277468312362950267568933662557184440518966147280380715488179190656692951510178614713051691864667572050621355432650138114727839926934538442487604199005632471292554197834636412311240639406515528626238024590143247160605428072663822069219458963742826501554932808925649945224516634769271572624411782503747642914056404189043943548607399345414918408967417008345727335962572486255405860164961659622945303585887328989850818349301041296095529337363755904337251961536990246220057112102309451045890464409413384671210141593521330977880080208951501044826897475700551618507657766114919937800459281143236066581974223686660734109650273996979607548933263596428671577037189100276156609225939016163204755316883262984249531485017980515711960233041312559556896390136795438308480999787237258101833740439013169136079166433173132924284127674036372181027294659827466354021907852571397702332857812798013394427107435310050500569191005076605159944169132340669956856074528728311521578683606416743141472113019732904475195805713764895658147516329209112703042495382574199610148073846845411144080218499544838871099802974691395036936518094968624802775187338011689175841390319647548249223189942642235692573891733043879477111855837343563077952397458062845154031449832112093614123419580108172813228357339594224076640117470285658356550003350836470847037356052932915370267381360235264101850228499002907925488200175692968067498393216114053900232861450645409784245700511968636751537249771980182539063332003995613987617612403479273208870503259209095442244815005882188322365698034730502130933603612919255202017205344969112082619534628816932735966470607002769208942949256371664158379315673236503691120122244661391709293628352850913589640105481781319517294965888997816424241533254188662503267343233287157467113993924385762543307739736918866200625595112285514193083469643789912294569900558085003473331244664199600392680732137336019129352678553548291855188793397535908924552206938909108858014260723308923301976846992663471459144723772476525126569196365974119376609890218369181308170327562570067065195709151215065836836197675165730682172054132554401367198371696174076654108694404901482423812557555634985322322192457498338350507549282854447982878126396873106615401929384110590413545977353995851038196901119231853000522092362170635924098316501723582199110822090415177377918733234638886080154231118796661142526234045817118453142308651299547315933012464380972650442363282551955915245616354277711231943190130594409868272697511692166322153048838616044693661487136088500675272014199015170981424078482827183381860328625988553303356251199532264974526626414131201677202138771152947990291595359726996686416800077176098018598389466173264282879497103547468310283351427870625761745760042185521561437234109028158206779108613360329958699947177622965951487176950841890304114981016341569311379709092296036957526647321029595975452598383946333744286949922023681782763624506765706080609841668172796688892901553788469971001606861778036531755981664223874521389454000381704263753959531702066743772499470116458332393380159917146287004332869593622251989410601905898370867271217841477221671331555578952411319792905231437484891391004354184202000785912748884185215927940061494747178920922242523481922932732139951838816642934874359507581906184571282857001767828990282922231459911306767537393166666978532139426437972661936606348088661577419521219765473158518322455945405521105882117042201921015237759147501142186103465290617198774828610190031750778611013160173076252969497322532102566181117388648327847752176429550857227976140418380446585580333165613084748143243468237362782052878322917888262783863177965258321947863097605333254697664006190674482221670391492655165147082394803675248471465313898163463530297157932214400195348578052607883731480450734935962292605607751215838906769623551184302405071696901415946529125878504207016103607420450349483792992756554108157111324516765538672729171008338989652112135278246969989115320982022555195328980195249969576309279188423930611704700456942020475053475452641039711035158009498772955969406384657785724210244341789725966202768690295864995174060691322606954915980787975895695664692616080587150333176787963457128048961154726683168999940043928387470028358997887923500967276683568366236129580951847057954112010550188655985790521052157561182076958567628828010688136811127330210238665298709519776019287396887247979462707485664760210686438376482826843655659645530294327910448795923173506978655883255470207476181948964633965279171787036245554847767961684956220050768048943767509108269575556960676563902652176008600244996111139343918427541011786171281718931980918110543784796418022004268947428065424139036907034135120073054849077233018430302168084702484465038836125595470913558999110930326277531038809732965201065701243557774868223154421907796854271404249966285734695369665966246202687426040881837031392309816248437741905830066609418533222760896250342424601888978781220095687648067648935285643551510985268755080580791122533847678837580450457781079547917931037030134307751597412709051489918617556891555696135096692172430459485789144019500200019300088013647570934896377810642343214886513765520825828605575743134298797271226990403840847921683589498927600815555795650197079607536270198802314081021256148264739537409102436962282542178352092296879629373362080000497898382417793741971387471459937390587670592150496870686394322264726511100601692268418061268919738803579740652807923541871031270720646061722332164018798723889274879206988286690885733280465173651930152786663617061235851188538956959149253154429285413007113811846955209768318331712097325340378001515067345629019053704793710159407175883456901777403782048667792382678111697775997599054791032353337997137522146401345031435679655285956364022263304897091141162029071886755828975109187854481269235789806999801163364421272760352567897249941935433327213143145820718892319146802841220463895290426847261558126048140879250516944582707344902811992081040713391952324477497003594018061589039107923408851711206813391345885170985769376357466096499755167120691456117263365337012981164468187321114737504896622571298977887696946501030137478362382527636255215312882971765740426645613229833627290154630896628693960580451122601729699227368287100475926266924303993481943982727302026003951764464566237757682980864490982399838981442951188148771720986407448498929318344732213775438355489512304283887770204104145477956126387156569866913581611122895804866756872367213837536304648185808678296905950257081346979247245473559321437100345925338147545141878574317432078207158007109711681725281977771090019801596001574103947446677730174393631713176541360982857379114590113107404150170189085701698228627266381921962185843939644913278456031405460978273799918855325055949244697382211948950010075880104854913210818705330271999258717861215573163882802673241243269363296019563614190866747267990030525608679262645201263041068854437902554536677782346028425523231369536769679039936686968992658379511179121187055883647786944002721268791905010933834940169277413592128618888805812299272816531075148243560620699538425151000173184784410616299237511452677734447838840033906666694332272473880601980602299636180892399776368600180135014071492548892845784032974855372483272088653189451989056136069498515510606034152548662777472070819482435414770437481677348573872118866951110091285755297929232008192619070949031401024995459835530058001899798600862234291285755731814594755870621679343985146221080376326663449165181709133081436080016132012767636927851006053300416663429996502709844743094436187799815505773741502460914330538683044925674396757174847321516141326154081133102023565987389541381846144460985701067339600715705902742940968256869553449286455938632621378397659545424077653820557207322343728921190616512531334918438247034447035428944876418908177172036991591024100036204727713230236567272370153343348130195967463519380791279168082989949814690032774920913465962994720124335351154226742721027702064489136421431361322385015122263532290311543829451084517046051404989478483886386679470572745947236686940244860498230213892845687693119149130384442852224569724349587274653569196166851384197292780100160495487805795697263502258007139030565919494342474002360438442412694903802600321602416964475551862038309832787127770146548792768984502011543289584851786863160061222117372234577153780915931011597441004920386058425856730544275393751564410814538496887889195890851749653939969909807767203567753175482439818333100304925787254656983856196847754028210136614874426468388941169225402711971906768189809301319623946562386268222639856811102506023087298837089308136414001534245866542831326625458499949696324886783200041340250726622566639155114117664754458312628672550376404205720178391406374355165943738406875146379666603543337533861223909336813876179208795415697807237708253442983214013369290485215212745199108329517478970124350555438060562832452544799667838717881720994691374889717653169731248935894001045566735025270642266374283011549520187163990063887400445170850122134540816163521982875523286389786176445579424427933588707746195127652913025085022037109152386293355053421825156633413657009746978609079310614477206831835122690566762222890443270100714743539264682900856999785369409563288980801539996338203469652019964926150698088254474364442867310758197738520074243599933475548516179260665036572878812582287720203291048149367260077818912953439321758043594688079716457625853523906370746745402595291627913231459740887839972288516392621400935659474603222498846733379874387579836588125652195924486609241373177279179216439652706054406358941476790961944172463533990136202347922312185615493128324016512847998278573187367749430703366273288340239553134315552683488425917938575944127291830191404681739475498288063500664374214286112197122694613906751625510269873259631277782239961624240116889304964956903760248554656198114055140460370453913427859980287673001846446935275181712259660641229015643638781205688373592028194225377038323476485501740792155163690893630087317037684132435710344832846975195220269535663267484213426786423551451607479264450363329870106981353008053103048654997684145823043132192137327794204851767274515354369196944392559167810519027284937117404938381466001802030181353186774048971980904397376164479143257592656630620941280796587400987082429618591726644855097826371606328091785081486447040588267901720975772582927486467211097135010813014450419208615875339815611632185955710804788557685061618833998092454750450038542224363854959451890372216042098533404230828569515211583521887900447784354009880753320988903571838230141977502777430813359986590472004471227566481780330753700956985964208206614635609273019835307752211603458831588007149636029700369266382742500742128438517273123949848855712256204907243196104482142580980534468028930004999441061902433643119299141192234735262831520280652699923941509330263335139130663198015169075419455002819911064738027722534950984692168556798578245672543267977486163460724467009205334114784546072000719199088617431549006015418577978912851051737773298122671747620745114339028828180256351788833641464998466599179224564157587520195171821523561155535125000109900203112889596627078698783947758623725189024068938960380133942487744914060916336064824360150440671551719010920706993721010888703159141248595234050811934970981284573650724202412442785587929087936840890872048656916317935316343153414479195610161081066782299755216335441638046372385025034758432168454724502951687945421904360320483993600433563434490946970200117179526691893742674155636358603421828245392778687488410601412417211679880346752535620459075868781921909630505959498561109519980704025717887392233532719051114345633993672395207053297342823272320023577785910557851389011431428056232657193990384706833301268792581784011150317812688089611929507107285652616403950559113692532658019635291356284950171930747956977127506015332932475971356885659266479017955980958308389355744464401218292098924466468469837016393158888192680755461206297855540173096348681102180564198788691525164182420409130912121704805760334425213252556084412763201210328349504012466908859328734818015500398426883413092885105414297961047233799233222844954002383567949133547280622908613106560384288614128690437720182764834602369988649424667364620599081007541937376592289881422525585343215784682452450777682168627274391713148923184642915223935937326812958729596700614282968161983006336343916371462638332757482972322961248603472011992086236871848406651985783014054782291935399796168824643767815670752093655844788404395937178239283552390626964694405478973153688681572282415868953978956721048387388081955637452892028533291231363782229373190670826296807340534790259835602150451456345133107881688334702487506848362870231978309358003424567752582925946340427886627910051144895913951936441688292915514106798949250337280090695897751299104316866034415673436324678439940638746292649542796531542538479719340523560958458091638557139531384661845272110201959234007962565099430551816358358674175883489433289576046433731773045865091343914131319330629040465831718912394007093251803714891700492391066378452145108306233620673457091523687273268903090549211167708373781187879249666607787381763400192863779554707938092083394441619306636863001227908911859951094285925180262751040359569491092747366999580566030607339079304393782913402128099234973841720197700490401811092240741955554893581525575268999996321029910526505883581815673946696653497191915917145693625671222205425547938002248799451929884923163133444348311152429693107596362707037881167538255683410216758775772763579799003035667561020972436843514646098684441870400866006663075139219169353729677666523878995381358112111860200865910470211776684591587462743070514731714359661122413215835054916937930735597632533768383407177899337297886501269503904129409761641399697503051976741808878334967154197781076182859089940805693942713096380002308932771313434062066539889268708624193714610305251686480432349049582014950663979940297926724007470289295809937677100006145941143888243211785528473469705801987389738041842152028169992000094448958201531309033319156633338615134384832587185617481378577615849534300094569789953498160677396290234166101779518663612296508941391233057528860396249454263579109118690249889539720837174002215298007310915725396242063271240473720533741118545357894424624077607412726309650015984462834040782622381428571531065708841019826428963838352936307828105590245436874465608273817633603314437655447945535130107037114252641585649172155457351242557573752441457656682968270803815657878659730350313082911719212323121531651276674664271702373486335228207408602597745383799330219698952385026095598562904038510466013317767846834178278954767740722785669260631734046272495548279459511694444315786111038720622704127492782312036480286571248885665814874960519957050693886953236398977572805772090609689031083938914856910861604591252166454742131371141094099860742301037062371681421144461554326633004305801628464518520761576494637786370854469523301771775527207908566490446191886344165053597942709423410305918166518888587864533992834414480774237568655932018560290486820895718437750687588126507689926574196528901959201183711078294268092968167526167984250942805982986297729475315189510315049346921833439399061426153835042998248441556981777947751864672992087863018256879885031506956082732099670600447033900505929393020592109139093372406148743364436875336380808671876170647299452612275398312985132662669158658921966694469508508095874812639521505213629488267049180244318742843942674420201516027232134437920316929362967242080992644882302497762369837922704533715590150426076398004775829305374862097322429513013039911839503854224429359078714710779427174392405489363546917441189420361699871785661959477355606963400549939298746676608935151277436551612368207114858324875247349643282956148267865246634947857327283449815762704612226757948475541920002435835011806367106993567019357069358379192300814068595414666938560642658424979676280012962566670209287740486327479955637630453395776346172546114522394309646939196935746668000978208898413334485028933960473780098089672291169067965856227500506689466512481684917748874233571429402047485479879285842535597238279285210633006136022931911364896103500492219075589195173033557374524150015524847641344583723763516791022231129760200179539738569778631461527547316557419529522624445503398019216403609876169845185333236166067605930716859400481931171411626289515298979498033801487217620303292447254129682750938578194874598003060159012864868643191651454514844209775385663979596283787151532972115095960116389382194548258205759693559325279485607531288288655353644566158076285859723772534575284701251004204803257251108571336051843648725943714801256583417264004498311856401450327865141543380274482479193533920888190408649928101514315934399155949193877241150823930024263897229630051367485128071715253217106430460471953451244717724259374307823738140223685048317495061352107832089781887087650006087549923478522352445579191193214172716692238874659864300455835153619783119823933958242969865235392075121159446316291981941292030199308126201046175745302558861960318021685048237795254803870757006395685841036962594565592067831414941392436846426862092204434505757136715178169654434559064195633261740857932740777790603113925465019806545340000791620849184638551111713774476742324631374723725901166146216608598035856580910282425881927847065930739480203888464191848199644362532735999100638367825335636494033917127374878913290493742342530702200567873377916385916690594715284776345641804600482070566640862656018567550860741178638599294402301148943088314702790936686547018710183224803094815182383751457843272698058901049596322323334168761185697407648316746620950987144016191579134382726614221749378065572846278011447095210323451651340084189025163686591918557047517814347327370633501817841223908681519641072351365883193886148343043579641047308127324226683447104749843453621889705387630787712666410396043328795536727817004378829008067967205362148193390383799527921733400177847668094287042728706690087658815743932439235315216735663716115986740087582599133391777893840523582131079202629074137550733574745247201147933360904247839273385051509444315616670471024976270554306881085187467646739244287396039185455298316624539521248161236258442806854679610545891211322275124136356315941858826678901822153776438450580818891091240492746382625737742845236256177164047568057607781223610400701395008832748380801567663712163927118576098947782301964255468019341795708440477735748974756078515297516452221746859619116450702179899689623460287744617614797787248028191429023390759717402066973910212053420391194438142582988806118218873817541146794713333087847409552734062167987022657651553547854008114857667378636167484810123274824738259926945930317323586684083110224038696183611110557153391889927312986707191310056757709332321659623582610512869865027208430575781665285397720117383450755000170888531618174366264661023300263380778195535852603684846020872861311028506469002305118715135542989369448586227607876610109271121315575712710948175598019212644299416844870900066451589838184314388752759189048775799988340718262380904572154784434184099995238368652513221103253641211310011112001992456650856328513620752153027425079382749162042199292439198615451789412827367243981825182747026210309261451007492079031357714160381577202925037036913493768566931425609459050191811906623095469500187624030769795655165822356227080952726032152662807452598406346728719006762684817242133845107390494291952435392858311477179941413321323532425868644481893907120209222291450178948068444974669926333196040028291943752292121634829112927280412972336531055462166110869092455849120357926501338605780843070820010323091894371059475589279066994741314568998198914049982839526876543982799775187905461434126516076599735417914061225930117228102171839617664222349102343844607189769491061400305211222521354025133969827052994701071091131993772444321842942197079074103159042040266924865175079060973643668126812050086179725357566583310938318560000528366792331880735156688948170072048739423914193319731780407278391699395477630845251177325726866915639280003249036424017338581667208580631855829285192788601346299780427143869799090786748293369282774887081370482641021707558906267968145696116662969494797194654748962568434856549268111090533479321415483492102503237973204657256145192444514210805370429067107556968434497701149067759009997371593813021495706212158061788103770247816800387513828054684135091927759948124820291916059308605787246552083870185273799558966364086022473820480858394847695706946813704570057723703374954190261380027423876920421201441989577961229034878686763507504928360409466790532308688875071931263863833383072005649229906125980122172785372318372308889372783566112980027951987641153166900939539277947529371106290586021766506479193429490883148811907091141638790243673859457235639573243345320498883883601032738252144768995180152269937638594562609396140703479070910422069022720202449131421196331337329245723590592248824884272485413473606084176218036314157845989691136809623567444913811614552020213756007820386534317042107776905097909583560412735826805276028575231110400121858033464944585250191514275499928920575442445541602460261256832219434603187974125885337669831903126383852301761124613916900058467144716743864465118148669714803092659485591092609426928041923623884224426686931445432775929931175612237320117207416033509262206630915551291755591827439255564415826447375956915906418086907830329142450004599400153821660405287629257544543761093052318127501726311643868065222839153643806161520904202909206153993768108987093384635403264473202119634063501098151371333604101659018857148102434542098334668137471485380507073325621062903243168193584503435612774128898404062771738777442736195489592908016838571919746707182859235496990049570965432922573782308611270679329743099223645424231937622379899722712671823212188721767957573870294289219372158022419510705630063067192687086668877623693655633973891935172574125174801937147976759333778722405564266540278439423179755243726261984481230325613611189118076713975521365550057827771712003960319404268542514968399145529718007119956875659624483005894810312710539441086756286776698125039176267938201355333588457836315721450250564720830003848269777275199862462026300931552242274814390582838042271795899668205682477156657654336449731557221127822117224145796491033062052917337130876812857511895182943048465908075689293077153179082066664930814731042114738924611480028670376406957536060682665277202260377342749894980828240069050090906552475441199270597226328452890255511423207917035137223436457290921776176128611056377765939107574470536605192318209202400194860998937311408353549915010360704732157914821949006927151371767714711860192335631800478978527435250381372323557987106433480444505183299507074381094650431639155684639807071590841527056166815744898430779104550606803563990969523350625232295137385796288241543767637272148182628702316316136725506462184856277589535695435850979483329727479858454666080837406231297222237567532333055934237709465291308201791223306900734018696217482588198175073537024120297895471166120194511150062844393967747087933131254751822601983405230017969070905272985165512361219884904381420874957507496482292469994992038240692764194124148015407780838542920488456760802505847320853428814410362497180758319012328862597425298418488058882918196858560467217377349989686035299414898447044874515183999088185735154195784705231224535914027904727177136444374726471778111180100309074121790163010977903050328197110011285848731639950213651140657710750061015767278790210317040004080913553495052723691703506389873838617759276952623364371442625836427341952709636156949712416937349038554215311512680915231616336532193716689804113421454606233190629892402269165150242359119306264527722386380527721876802358417413025175516999339271738305817026771858012566176004208703989653724897601288864381848852368689832584539916424852469189127544174186319159034609482566893731912403985493002266903809353542175687095851709560474673429815490303519907552598660600336033188721181376051649317189147584618438246043484325065484941588630465067858800845679529934759104124021149484625164066552869042819932384799463366837290696939138952356085872814561290483501544471361150951304177807181733120052292084797209916563708190024816806031860477729363973424835789845547373448830973569528073364546572132860717415013808110750388033503524713090545022072841540773249418659631484713140370092125616615924809072460229958165311053706458783286865941393501404764340598892811068778316990041059823713555785127862258036048185299700389335031208744618771848668191035602846261108172453812875724171624928272930464902822710228114688748391314864036675863099737033659701929231232956687743493146028168043957067646683173574502398436757938456416852956952258023984750985348203256940900918251800000791904278516256242751489994405286339770233669544922750267740253822895643913615681959363089499160188662148897867383042875590144893194363610563032425982491821586260208815778672919403483447571229730886477602728713955402410240384850658307943054500483516997779621335626547425516970291253162533228617031530713439261798722364552064963521242783505726222960890577368773295926077739786878628973159723066257354240106191964473513491886329833256058466649818613186577989346511511081309581632542578899095049356544812181978341821716020847871060620150332527978176151973312145708299900341648930250561061658942864429252950984522230500809737566335579263656798376741892646379382966507071623086814599389662478160011635848946253557633894856892887805460034138627695470367738924928242313694858705687778140437767157207240150767451246958005576473776363894519446272893375152898557868813748173662798886994733891045197335199480171639061738837603543842507324198898172224895715113846829065101241051495489523902653699480156564169126993294333663460747799810044936362538868648047141137819231561969720055195717436820436012483748388776817173520612436812795822484317097597671802943832391017355532384809711604307548145277652553108103749045739271600391004257583370306407226083857875861553449865066034001897259795760923880280738027686121570179952810321676696460306337011769800960920698130545071739722035920853240188831703031400211997483176212337485835723459109076517318739687047200706512585590292564602508038568951986093319623616462075078525683520895819958737822459285543227759506751252515045260827432408278791445088017195931622486680625290938433888805248503046616544083435259566147929292246597978025164502867056777821819681340942026921410885711659076424247857923391359327725559951617347704963511993263390957135378596119363496869314145240272892141540935271265740870510239295634957476987144884362066693041222466078457120425520978224828038565112518257770292537435826933888029422873806289802312956040766577739266026490566143656214991607457363753362444393367949490420172616696625727639367308486403101640890374758929090574875261613125573408284893118990513996708344545882845340693672374844857112403961410080752936895237385948129885413989901500703222773506256735526778941306197785156225323782605072096567621790977399318545436356423368714906270679790066090681653280190600486569998731299512916575562287618142554243374422323205413365339899029581726474076531654973225963911169441117738360361214100286504851215217494883661882011838391010999879163403711930961562018507686144432649510788226290001249241511454436073230254256386120560545351012193000364816919648167052416246475463014301500459433575134551276897874599547695384224297795741441602381086999161461697369086086750995325169365789047538748032091733931620268225673441999544166135180006962873082317523199227260984165940136157462266242380167229497962120323271653834792065353429770027964763601018612351319186289353758399966320549146220870501305872965564056760030139897186389619839132658094223428997881396401422063022545609945527304628378790311704648152775324791504191076981582938579466341852055910094047070098782278622314219870999357778837306714271572025698903119028484129890014632957322382663766940540165108543123600606570704971283128081259771757543809085460768375007983206614906765771406758978725597944455543275660708143255191061447663699714984058946134290768551833295115286681505193444289826571738097524937351416745259095071590259556583586275572941152652203263857566794443995003355277986933980089692625040957463117473836198059558588642514616644118975192215525228984203343722669924195495597458267312050846848670686235734760010617438480020568404069832038610533323203870692162056660311424869755858044145950850907875564134713109509027154297449471372796116535085306393957501246677867535877953336280183011456738150880687138396072827596804559371211570883616641545858526868531873524540253804769615857783375586895588689804277753089003340215944386128642598702425875878379115486957629481827245760878501466894550391359181546016139619650220526264820271367557393502629252144854157899891314892858011212963270083521480413875557700623847023728748799729142870951415960887697354820067220289478095087542714579809985593125113274392091373083311299280493653325735326633247543952209217542205183255608889298347791263818355419402428964307787061232965863283508276480049479147580087735708555570924021318622146400276840818247422491864819408533743986662493803234792621203058644485750850284535898021353338826494428004072633907403726214368355450030101311408840542191757463670544454764175057378981789432930048057366529423975008984135375216637263436556136836424447323934280615297757033933722639171050716212279594485905549765362733655820996479837277215216733558965382767509032842010888275253632900406905837382315998354037666015308581508859245316621205398664362989905505478385205028954908366208621000507325209473390803588946456229015664494380372923754941599552212738499570700747326103805803306595017421660365377833195666882141604954906589792300243117042368938868995349547504030171037100723188618070215232596883282048847826191269777129838926701751718073039018115105662011666929156012809885831455926178657649561308184649658842934469092344187884720334713486324339591621698155812643535501541208952447095988825922495369153445490109305400407947368004523020213959927573053876145120217496536675877519141839597755786191175638276722454598581672614062733924459435168213277806907467780436377461998829838497385719910169213143789406850493353921319051886428137862858800328377988659558974916289848678746824181569650034837112939474166798452968526501024851320872197687309691663762557544935548637899655595256545395073164536077008561012316225150872791145667345890216542991454012907123582567347422835314534289891784232127813590113835962978862105305473712357072057565188649364677986754788349410894815931364418617864808586967352601290195806899237381676794447767212502636837596561933971537052910467759847347788472546323142994646020447540495442322852510095264502922926118227362042792147968087647621843937410995107154444475203066754235279166210991689297691622265819624185338580223042123307393237346305123948914498404351705810851387909271178984873436614491288592763479574678048647828051918626719517860577080358794890716325933315747695615612924103315476760980003626356615506346646765848427247013520988279539182786444679761924576788602727881098651101672646826288238525593388533125269345730559401085471643028205312716534890268748738537863673998829678301867532197602954330419923736475483889629947170549132840280918152828786343789776580425668448306186055202586705073682205307972598965739592263170618279376873644338064710862618596786991424598930302772200901765984451325993484024651590932071763998709217793020835073682048761007425746999545916065895122076302386526132423721659997645562729270919612870732940308327796994706554426977790298967723463644455213926384770763015116724158524435864819400150654958741187913255992171319875896256085584365138810907048187624607654831354302379783707449174150759717274520968113823301984118574842747401018268965000235440542645733764162202986618611838319397569253970158505841796749800111058352948149950054447284785454350948503883754082528712107351950825227621699587932156503771719353896452775739493524500101981498339307055118665448964452557242002414000293777515922704088396484457368720802464600330435766943505380803494729728986265015871328735817347832293702839639363083661068438491047112637851381546156819150930614568547849178094185571285298368343483134289700572178769800728575094315794659843608613644118882270818811433320361334453700080469975693424951511051999746005773614227810777123395022301669709176038283918181641984911604383376281140712867827850350152784375834748485689238141181542955789167831405451585391208982655021703401799410694827182215080252180265455598654847011850086969683994096825442162647092859460804099486158490926814074666509212480649698256082439694546094927778667316020583614267751898423558886921896361293582615780811405893207906947115566432395040128345341860767954645430282488203405062201240322419101051763536996720986150212438586898688043583737962520790671595938615732889996879260500888582853652725676516437939171029885169953473437446794834879844743462231910943440977790684917137759287999421455561136586671481902559289639459058571854393733429276669197843401512448535244245253387618497230607803925450697514374443162450772236704488172215757729185445690954543292688757702973219248564283901786474277548913026741397919659571922964334136069721538620764166490526067289465866756152666776723672522766740448960682833218578220066982960086120747510842762109594822145598383541820397811093509128681655263685276112347270727966242183466768737485805235657978267572704027958682375798879774430593595132980517029488409211115457123026902275889648635644106032444333245793461568957984720164781081600301322230233640301971672274360951312766088922693069527021295999952686627410777241836706921979332729366767892578142947339984393607764221420843443414562333690380274278421475175633620425508094860850500220290274905511573920521126601565499407228103101538713265891640150038685291447492370835270708721853552993960050866242741528717328191241750041110638146430142830563579511339499556208304127528019380142080801483498848883231360514633195807228074795137937959713597045559946612156820595838659166361838949100371940399969358448174714786074319695125282288447144964608170376563299293004785588566988251993364564109386018851489865112581629002852030327181569712490287844977985853293749805961741080681710880436496197412617432804751955409817145735804325451406423376424781366414477861764498667305890686915442143406299630981817314146876724816347236560944959762825998644085384825853304565177813884434318903181784051610148613958508989293274038957234015196647603986465572479704862642791885652050006771159089701785352863257035443363272960218966550741001285769163998781499441639422787188760854259873571827776231557870379436096960386177992951973512907867150658841234086432733674427651391738200571232774151092422670693739769836058341732604112430478399283242791687838176827067094356968542119662392631656655229991554026779559498075235977961921412545672604286445417558099398869772604808106995479877171207149283059651930107635678821516443821037376000409827539338293519848626292103425903921717302799494984076469134895774234360446305859391029006677849375638491126391635066901717697226276487098060453593361532544395116363543216618659610862373447010197875294298950821415505878550531514930620189100529579415683886338353368641361794435903846749857465818771166063767096168342932294058027128736539496995936888299361023073617833384268454986988508803239446137883724718553250003118388719503844799663189471063846539812363070119790530478039158129373392916491215509862367335750248653033649078833033872558869391905381199422563155480561294520448894808991378243107760934092721020412344336792019067607623871689452564517265913552183877201315574692299486426324826894780228428601966163937260414861166704395752333366315457431705421281542757228540424968558185421590879615361851733097739392597967815429270983789231089467226914239129810319750797674794539304048194304577910953125388469318587428330525331077644223091731899294808650067726324743528975481329002179631399991866545168767860048806037438963006437099963955593566925383696431937300523375112902136433800462926230800117922114395544400081380954897371793330526161366549294112974558738845368164380542317061490008348456356524227320130497830625154808315298067119865756146319089357613577320394065005910697095233329535568637062137595023402628745418427010226703056103963487784304290750425871443505764615800906088521901602210223915666551216421663551725335471088310484988820059818000330563989270915978039402175749186722968847696669804472616627128061731769490719718348682399879760425788822140856146094160726997021932459423607898379263161532750768386574159340635804312555192507443358283785046301952083080646687164079356725969957895765479025494049906933923342742913610197060233048843569687098294555402044232230082365657713482568752199479919547634808119391301605958987869017945112566313360782172036043779713171055816915930526115413752700299034865635642563436104304128198098060810198264033687351623276957015399006556727465714849630007600490623439489595447372960808368447449785884959249206098055842425210574908455994381187934119557996551120819654841255504073085629535024238321463781983977502582793226926037649360718519204717738273872661288021664547010037691227174176712186549106781792524028594285907659490745276227479311355944859241963405679686629898806315182112047591419603688721763262527751442499932252565396932808725745512593921929151240740831689308401969996535681650764752528385927494728904497548053027781098006530749458924089964398625621119667537048639807207489019112170247697959272215853988491666842963803147303802040679541443737470496642419714866464348767570063476616010009499866769289930566794693791185927526389098973723617414830766408435686046698368540531879602111264911044756143096532044611741565556195306453541160266507656013775408950844737779623593498094381472664567951552082894353817975627796150343304536006382505537997963433042385695692388356684030240436272662633401823508838959433644813852530567683405763612702957586258547069693617796168074726660519956808997913680615068980067624627561107531797373322014887176358530998819969167444892608403843490631849683623173298680467261429304276023632359041936095914511116144981878813837362151948354919671990929583296721108992080050443589041692945796560589729773973454188416875941724963353066636751653200874271165867062669711675921585229479534818847103498819195281444409540306033256884394746496304314380911878973823785520747218241260312718132199213840159901288971972856506615974641903485632856817247142968143490753815621367076241645565948018752036434950269783774525961717816114767714634923268724716405571744505424896428292608400514792469336657997135216606789618628502012570562135274803037720959877826580458469898439508059980969710063537624269366945097377440261179587186323601557996061644624012182196522513632603210691788567432838266974441857230621584045691028534221442025046445967425548223281664702525159746485287846012601178116151819375992486286923861315841632941535425203223441017354974698351512676237414393990015165904237040711975309226078213814985633397004093335423604607545597081951168127338349563284068881499082092618436232566932986712753899871180421568778177994220869991737724005776754543107202371381946550866527222561854013240262259980185300856487151710387828322804031842049583819209779928214257093393209649281116923411708454321728593865474853535802996455567204050534897216536110442297224727396838762023994564324683965556901840665410471570145362075763927829697134826165945625518503244102153200111324709520958434261215747555527753179807373959272316056524785998183264288297296076478268369548523041598634003153021781788120863472303818578119515198620963436505225721630677307620012945151431174592813520840923979513968545846722627306441156473879036246830376867099220756311057673250660459925064920942692615764321347815717523929273132968796085566672735875451675374928032265380629879630133226565859470505217199596689998267896087631847508807500945345131803207843331468391645250250993748427633952278155245405852955051286945115276634968572553790922140024865370182224908725749344400321072816949633706081447926621027073489637214116903695292353487134381385868919663990300672549308423825137051347769710027511320142814648231636561857197383899654421074681662356383998250402396458584473799708270962068333243833393384685156287638922514610508777276455745424326877329650763991390057830330937610320447178787177451444625129973967441506104353840212413587731512519576158562577959228862099156092303276813046910018255812305334193524057205247360626297888325124939945225782181445511261323577198887460901405054991723597770753701090316846818408684555581034106213510545715795604486748279374482338355412539664765235455912334241165965300616087737632611667574559324676004425943343992708203928423596243675942144887283328947621752700941854680207645367848960466790075073016405924826871705986253783299950732706939524393048226056261057044496473786579475186289434122866082720087281209582415433980469154449025204287214213472371832508482849101032800442285278090771463473099917597753559337029819410453546922767830949549530406710825044842696949519676759969086004014475217704466765863313746783911651764863971786720265818359172846106344458860747592886736455384398363543926487960523988898123786259263548886692394341727720893915144756417910137486523378144276599267059443178104493985563000985627982734502900901487519323538789192226041795248084600646613731780501751371636411768959643068427151552949600991502544429688854903623228709802776448153512606058311588954992448077273175275216209012734543565411387902998704502476230455145692410367568846837848609775212729371253968867102742174932699218921729652316143426806842449933870284789951976669681284050204324732835180160802570569333227829098139045650538589035714840741458321469623497509971263314342706146874974869464095021083699682090672993934780866560090903870041403809559779946912108737624736641744453007394072386198857364521671686090377791534704140834449918129133281113352226175579783811811995570422184061309631571722472630550141069770275438811900519327797283097287455233680694560024543082975762103834867641678311476533556802948058487238945079671937506541688079147802351332806056574856938792143543951644275485207290204797131259526149601360745342535768617953897535879474000892333317585728003811644240811162455301293398431016925150204079248605203169375594387370196626767793422890394046669958160900205896443325638223054988985515717858803970307590349097985846073393018240042506804007160542628602024396399120176134440924783403075501831633743960496262054156022606993422893715818602791223064657333630515316030169987138542547846085534210226552244526797737556093882025148672428055478866899570673580994241041637645979589122969842771823186677450012529837017213044913526873549971154928817178454714372248605361841519611804518457606499774083751749420300241582894518448040974361355677067689302368920039213948347024498969386808573602296876170247875303693051746483393542016666398368182095043322788418144227100848440520630444416384399887749344340314767375599826096103589856458637957886207838133967583814683466458132232563182070933296747703217517909160303750206084200268737624838328810312685634701619992326099860848982592502330406886041975072484023395974086582689490013592736845195995025229066659560332894740721623464599389389775304355086477057648802650603478342011823000810364761832603097040920924087445515227740690922550896518864218983167613873017609151903369993533101722197693447782774455375490664662522180133657117092870750030217227681793864086798939620605727471001506418217152475083403597935210803710873006632940994926425731180835570172415271488133830838657581117256767040631684065059012863563343541464762113172276310474608919544973681163381832834760829181786394289691943395373414580523337040348848847668157933109510622789311004928537979077650162378594500473284546742563298140902976749834795910680087570344155563441436161460384777242511142438678309367690941884699288753708118046267822047073815099327229663156432692908411306127833961697625730548650645490973467916198599352814624479466948071253443937683833421752351267677092752315014934458494945646383405092452934792774467137625627055594589922900893963759339776782177250356306445501240731295649650507878428758884772731176216169780470098440348632797831187832432611992572061283606372442459400916372382740909465489413459489281770018734761015511632049459426368961758147466913829206138340904998251860499195113782348983116134493900548312435586493973900788302028408534911068761964716081782863107317604964386875762077460832247778414529411715502948352418997438445897797544172418737415052876907723310608301305350477025186364929901640852458573087884192703534346393066021673252417395875616822452848043598745625088558274025734480817828288325452005581800501090275919132370881923850322957869465986009548036642639529277710114336895274681780051561211089943967756555536465464695775847804105407083579050217298265922498489066052137862393125109177407134110002833435273497909524130772083420069353903366322793966608155271356433705896157756021408830559737292948659608064437959287546961087174281091415136041639003008974839450911179452681599590875247707009822318397822326638501816335826371593885471553044317313280727277822840665102736379022716727993103903398279476912837401044609226267545594382671715243211460130841957870585544564587711903031308271986660086631958526407667080398546990236385840869297496032123528127919076282552667098099307595282900588599374329175015183304180333399792314066532603526010657996650404280900477571250651978929285908744350518944799274249304879894527747150296226465299984301175842061874970257263901115742947757263203467913922049165452929221398097980219321772626338678229807297534530800670391957649368434654277408710196150761635653293181841706437720383009084006143945937831475582601750457627506755911807906393352127434927189141313902526406081758225345093215443121826730649768795123231977344520944115426195878417454182563922360406688639232531951683803908075320901215338453211182475448450415053624249851546934991564297457738644812527870865906614732248041452515124662814645857890196500653421687934509199183689274361731818435459467554871758228618311481393865515554339590997075915528190353015948997756848326323688234696113161625879330808976682150270177587550012572236662653055201459823077137905824653976436737750226957718268693783919833556561283170731936764134946213038362491226547527394043791845483582210253178141476829042141152753734186067008516315198631010473460669335751885807476700478015232033185341880155546527624996669937621695635069198669787695167351939561772757855598519065558929512291911751870214480666778032106662628018454221211215346014238478624884716947906876805484292388919586756666823163120559721824051224940336920710034129658506401075316581520825500563899712530243589710272982828555781410512655011818948116846593643784309390689771465443664681429977412985144682612273839263849775371645683226665281302242212381527790873314400885971520668728355956402971970037916880706390881301244382168086722618216588296562481426297191529580440712544807559115290382927565533652446436118186459149077507536124301301394614309406585769025257848429144803715580067778750194189914582879052550635777539749404752906546023705803422757764947246466541776993465014022961030453300802276579722921912640707223208469294285422640803257836791315864013386814340383331172465598720491710142275146668814414352236346689613192167635745953853366573689103933551271930806305428386465549438408478743029652596933675320672557321264184716914943693740284984555306109440794516056932949106723692661697681736551746733645491103592022558983410652265905471271194783114183925954224513940998126391565160037667718282913955504948290233059822571155626924833302710951271039434905416987578151340496379198423343176250983711690608987721013290695063202107312942208530210195531703255724731594913880239297647458220486600537625676618543384928344269102531428216255503839025891157468233355130490916418832456252310821554187625371012488521021226904259683573011827437486095862337554443540552370738174903972389086425688915233668181427360358360734602995827640197612062887966034417164932893377061984765402060637557947011275044331872569244860301514414224947117864879458088976573763370668625123065326316040517338782827685922486158698399470303642491798429593980438479656347988052846927791981652902209802156424867108513669636118686459673211834889947535049762993460998241605990032442409874829365571402179341612539105053340301747223638087058196509266580093721926964630629150214828424532090546984671126621933364297802041758608140656173588762208657849593971640209773340161083724022700304016081742089626892940786655230794127197718828094345091898937841006964368811388078486596545897134130682481811636173649860226558503957854205738661635462842875152682962474615275681036591283237063547545022838996598520339090527488451559408365292531407123315907728828004195086951900863734700030899321240482613293498886592444712192988454518730820312637339620049471372990778255665659965190933603771050182919828806885326618654225888524911014298607869134026672601256258981047439145774978938203723822660869724503898397242785146000048547976655809496271631540132837162791192919172794133142371412654287968926799530110493733447561838217296200582690436205010416175491952655929894880451757843718525900499871502921950781485791552830047194031087719857930708808450216429835875636236193210997880551367222197993283281654984747988441012759582401524017261620688649233895686684734452398900492794977469596094518334348053236576014120152953016225658730571473612030298165726745146335376739604348181230869126569262232497426983671368963849427103853461328635762398075473591253160745105717473735719980588245112654097239471772693464337414346777235870403501736893723780646098287349577088231862934880030116822810735931529810727376838833721097684326161332403378585598919711997639806900457245707202089178028691105083758754879253953846163139826110700817000617316907844910601235525287735581755956994344190252589204155125106771201549195634029390060496604450643746341652808389213887704221115400767524839949421296778111366398247547396582462548817521463025004935152021886166608507268072821762032407090424830504698902196897751966382942323600878322021969488480426854849314183977078627440302512082732016196689844512051090429733562569109621201772915557411452663529024934168424193260791691648231312331024106441000320509204500636462096390666633155444540595111534198199583608146703444734490958833265134019152316371982989995310344317009464910101045594063440811468530519123581883390786736157190762641063056589427613626740431482528410103684417521186030864496820458983520943445877176411328685629213296245892353076012966326650347948268025160545558440244364461647015270696561705243908014877973780165645094574209686939299585795455193790505255873322060415534001876152926564926585496792661007216684942889998757162987181260037617978288313761583059255138264350568050844163223384696314992167606551959866072938121745545387021693099405154618986906793996098414795594220853091122117551783833804982335506141030302824937765006834518296190648603162866596430817606333078228133132141649433124759570149810834983920155012032753456759456820397413897969406950383684312727137294310633889316674035616613043579872427350508576834788047473147874290714501431217878646160779389347638963592857240963652887206948244148884913702841404999368630300383870486069298348860963407930218008644433978507654125861954287595312348993086694015114043591946038762841221545417264431774297245279163298328929622799844306065399216578961567481995715654080341485488060804881408297527897978615407596327613106250083772088225132228335249101325978818566033095318631088800748749849767204907100310816252832924723108821021672850104298047511095966440268956650604540171624653190040119758308400712530789008054080897418341658965950922016550806792912058392816238864851215369492318670196868564258754145848401838230766449522141839123728966336251445880648485454831553485908368118364348696094686478552279480921748495505702953452440688529250557264452069022080281582387348198382102384849626400528957209400058844129789932242479058710443441282456498084936716078155200700868254427439474241395479226223230146883101163587117925263070840960847729863853275614938219282905535632371806365775699705344349336875592401773028622965244399507000959244452192209823100344974133030256782378502092117622654135476817419660481293975219496037359681802072525377955889649296884232509965335253604829207598701792565468826261381576487857407246220450834822969880083265191582757360440135534978771264010117986089483772632340819673362077183367839975313131883575271618416571507924807849559275260550668067747518935595762347977411454487074685423737813763346423051954575982067136405993708586565239532498750812535754903783331665768694127987586457022360694989915381278606797914631734660762523713461490855667218719336045792317947842749163407544295288845673031246140032971913982734590133846406091989050939478261411744115421926745419076498228924276716017670325207654045138887547755593059545807494628654624231573729028709067381860644649844667998686576670807624069169642203787939282152066571879617509082121204754655325626968639796192061394022855215024443975401529353879020232635717431218203775035358157171074875180642207896790069117604370308181506141780753610895172114157175012125942519191337384488907287760716242844991664833477857128924581883270818315498272248087584923871006694950119610211321180892595345926405687351889225123505402986193245702681417758092635666275205033304148811602733197642610773985979283831127254567669001419681933080409774179333824518371155242257706607205773962564374725167880968421667039997536184196801730982462892312786166025083028788467466753319333476068829935975550321208618718918957091798171344536730415773542085060860428754934294200972922960716219923908889009175713575483386628251073724061546170268385815414206250345603784598927424491419080985155335514686353369157436995318210190952870163308751842894638187448243183971401189721731960172697743424275347713681130813610642945849231032322527809922740240513647120824298856582822909651816063236171533606004307847468514128534532516875017053684105564515267939781013453015205825103326886228415173021736345588678359823332721537337250415800363124032433915083559990996071862198060074648068662519340114432046647569299187563161231526537716276749428048477725723641329752463981770908191119757789922032880417288086297143973024325920690452880792548218868537870987954736815095106650519967787134975351524634289512937755694865837849684063264404485089194970247063944007216550590292864448312007529429244766981805963974396850893295770490352094144845567308731360963431698480026363170671349590755388633893941367498565228571420626847251336741424472877980392962885236128412281975592906721523361665524061452571303396461802464073482441238482298666061983023756754900894588961733701903972612165712651103622407953976566157203937189719970494997372779594620992166373216345261163336996008712941884422353216755626941337582149091014204757873753534009604843326035536540549102349851364260060132785654017082459204407355087050354970060358546614634737788211741944865838502588272770970894107665251551998380116600175188515070805549717793257159944848572876011219266287074262753535432706564095661955599742161154114770314607350662652420529797345110022102704977036257290991480841440194311469896440431302901084920355942852794559590629523500178815193834467038827843600858146274043960795828572454793614488224042983660068879631105254016948453249125808416305065747502209836415928155790817043841180677495067161097173552679141684698661676555429342673974435301197348409290601177766307410346154493971588758526611351014135106529900486644717310313313502150887585837078592813810656698417650902787970109081344955675851645219247038246082512581551989436478952462162742255702484921744427558541630106763491701203705227166522952762430942383671245004404536441537245200506094983127242344286660698745079413399939348831930694930915611656170704613070216090156279383125439670623301333301915383921389927861548686628777657751436304636388493743477954294508009678416260371812982491058256909394145324082087404053108213678552489953449938331202440062427235426379071028594795117961474796481277640451067635075217226221010196275615254424154224555787395348500491810306890208080091931833466659082307684366108874586438165753317584069612006667675432690453909750728882263185436941856976396568422893118062135213829305800325399166756936799234520834706263972105769597285974447909346725551095928171953864147311392141168307251401906017303184874060824479206966746332634659139592802729801700781734302960802747692436502530186866133539655129249685008559668660154530895729348585521191124598446005392785727797295424239029956362961912011438241065803194900008114403601987454297175959149271566611224869272966694806831674102581791190655717498882150708099208066103325273989254442118934626086751960934923231293368673319960855429240295905208933947428911312122094269539203092114642223039073817983934533047152378282624780268349903247894229948936051055443859756416744048467053397973457823354420242809569737528886462395623101172502969675621323624486811543214467327946653772490945153689331173207501477140843446154505517291555061586346840171303768006399894342023371176965385852377104463635540664297554377356197905951905729580230750775671385722223099731014617377164694500848144618104195984918708678376185584512669424227572193633863859218307383685699829321977455973383609018301889743909678485666623285406781853983957884676718101945115747803591147194091140674473515693988776474692185671300817235759470063420354324009635267218561305763894771027743367099479126941465144484553486467911759573769820730655948491809789501001561654219879903724630786029102785293029484137015103258061327003848238694432290451271209960513093740079560353473598497267031886631137095690344672633688050119810484025800571400019098837170964114454097556944673805392435344112279294093780025006047281371536144070220178075155541394269959707910941494551587610129603128814163630244588525679109509933438627062528748801129247287989308755287956384776049873054685853965001424660414000928945936716264705473811549898226847412491705713047510593747366849819634618725844373534858978633170522724272194336329184521083178780054699247196828528323909667860840855405589228667901474736291870512123344299517695247127530757045506309451958371407862324119669907022087408621865216108441239013269656543797283042307045345125262608450579187877300270496631255697263296474235363004595761720326339921899700213845397451759456223314551916676284289858561168146547843247726260026246231557761648557913543521154976550782043960759182985721012928251850350316577570168139219770031586205471272535325248380885163966063319945235175654760006109005699708307756923598055990377726322236371064922767252579229354701412123665769910148686037527730696708374983192487196404904501871351022992878665738906991345297491520130442266406422105349302661965952437501733115470036938808946569080300439947577300817887981833290103435523593068610640419423233435843414458680492632286800288799852794209921651183964178412145461267214279739107579947029856924646995007414330467749817510255627221684794226687513182909905178794613834799942420537145745108935850047936722871717442726749033999481450279014148347977903821127503836651901718342480640867238635650270533087702761434959840740300497926996398483853191860922604671162328671009100177972033290492211110745937196584851820749156051364602525366513777751276665261448726903800934183491748173049282043839831183990513675799133153449678192756311306058640152054824330018962682274609649919816088528320677161457216535827557694967382204054791210198598721607559582510103224244499911234653354149430214005721912285215488416284287586748214173139709584768782462994156255063806480055334676673110055103267650065420638537684700358051676862797393236122367300674193048869150287825588489689522083948783176591294687222015263293641098797008786250133648837140243370417631669476579811258121536542493967894417699394104627526680824996387250932272252630789379486241352408022653594499379534316748537449725718545548028449372681983800967358656206282223117648308766275503923752971005789031176606639772625618922049212722997020475086974588462659074854846128361839767496323938116132891813319561883341655736705617380117158997481053389855936370326093416350921012320936429414511315319247542561933912387490921678039119840848100123560731859469124805449534205203257389064743596543790910484318336271531195526800762372155752596149663100641715769291594407268532879645472592904488315483828449953840064391092143991553423834866063641346646734279242098912451466109570750502531296087073379066190495642142588913727929283185558689518864479418892688954784446272058895791899792392729167519027365501757269060239826984739652276765300382299343288846731307788035678204195713131730926425552273923170795589984486588457507059606033018031070969418713446164458851001032306868528932897551566023327998103278062026681927976085669675113667308280930165596134762021690370103583144029362914583216285883753796777042128036994137849270270312698047996698850630975777717064922429363878011585218768086114639200728506320157189159443704127041206653513484782488965974020341415142850475445302395080121209714188304753766040732064558029796075545434533719692037732316946145025131885131058124209727607681307279408176279573932922671968117856690212113214202964119095470092336252851295485142213009400748508028186556927859068953392691811812368901559675444756259689083973319685495516163236528444675921330987655650750046207090457084434436982675521150012305341941252668536827728990198919821128646057163386659612276592523836696539141202593876891970425844841119549456296656601493330739764112740100440993796593360612211979949159902865104842625215905795212866215568366046616640389836372441320688000716397395406532272722253919113759106046502941343157707502310494124633814645177589141988688889242582049950446333542239569948243533985798706040456138870847180812722313846667443497763898650882361622069267445335832954485069014181214147244669425194994631680576841610449409557018074309598931677362887147121342006849760833639692609392889680048413952714191375571567169070058416995027286055109492781624058511019342691791763781313810276717034634018191864961754107617242059305115765765724122114778168129177354227205290913236275043095839528261307475313601811914082873310334053356173014519475313665839253438888951102136331199054808795266630596068157979350147774633700183771136202698530596233632206166145863827598660966538277870942011474647671811780041417578296713691635354649473651617071165303637073896556991692894329408155158161955767740179355088798436637855741366808991623253116872179194751653995818258461335842244758510404392191226337768849483170293482207497217721350961747542381737870993787890364518860385082539224537638984068845217332975549189317249020201631529215480646915887349942213915778034508574470390306591953796905852528378591860542206483987520455392329087491677546522153677546655531878822946489810721135565695197860820811032428389728611246531891333189184991903864912268054521281188915908916334252204371294964165818199066435027143755843316269193997499408201428840217049519154475731913468616557960759319839761692131137196090067004284990232902930377907646111388498236995115802688556368764260025195862959244733125284269225849024190016567327564222855040267252753252433744756691239295908263036791599850801909607844380635723853271748494207694115829864288180307127538019014955568273966695431341826414294378962140487124588232029555873513581950842454619825837920442289755365651995315374667893396533506953597976096425707831627848917690226842469750092154110451077490729908574985297125837508175956999129050723203507094468775866702047994888128727001938792180476452617204297906068335002666666295387753911237189595243383962108392762009093957409543910686130219151337286314434125326891326454772341630231118354071097660764981789177279140698610980580400098095800004264141584604808608895452926570523075700181040700539260964958599423973162007006168371115646495221345078095291459139437577451021008352774532478013787699370860309375227494660489168184904065079540544255099730089161785851095576032422128694436358408125405474093992252241826259865623004065673904135692597861561068184435979652852546674334848351984413457422237938862721968193231761295136562509304148486206600293681055121012934396658464784238178973363604695163984850531061213486330472670880643397177189596408195506145493513068945119438018553379969963748398245976013826423779417550661684470331804666898405519948993085783734624267059945754304577574063551252103712682540764700695147712391808110446922259168677906100828976005655541835809719603741440618075193275855481366725240867798365535820668502885940095642645480926141412622503330044563465780148349584151774393891863621471868409620405388377207102999817022440400219949888063864642193237681480095726301804098296837699519831582082017338382962098086458202694347453564923483675604133599274868481913863970905578783255279969741462543178254654678287685964857038154909322093293882658928949803695078730590759727392605683789358190095904258240373766643744205585626148935650926879839090362396680657997809700616930743294148664715912192097818338371828589068849853890815610626307861827681221505168895715505180214893301115544499665445823424352421041173107966573975115174992565579492794679746136381516359587013260961815798767220327912881136260894653333386936392309782771985494633003471567498904123947383162932186007608676270866369047149889889143026085423886664870280768872620805723138946883607889249561851577222521158261184349201005187930368911744674307583985648169247499188985846274111433096410399919823792676689150013933585042011751955239636026706452684024519481993342625736244124067517590072868643124810117051006746754681140377486288835456440029838753938749162428043293703283566694491894061778174466324684469950825847700942419643564169931044668261000210082617432464596993464985441151615085751669866179943101524102705903940233537433961779070719936672688483998319532772259235120998144324502735991440449752718921652236060608505292301361074020665506980162973456733953256777371701086457941595296825778126201591845261311749632717991990571711113885015569441823126354962286721387071109106857342324863608260315794116343312886990052585468914390131566505582128167905444259640212893207169583618415605289986201549396439520382863854392640492482028023609898017166698453059906886091116324581750725196702095348694538507440158142492005374389723071131371182382418190923255094039876887185497246914433024750612493851332102805996614255502102706828319580748626876426059672603590932644653361323652695513253222554583316252961359606796899825389685460250211866925977685050280182932586830672447815912024579688135984013161047033716907955538460873967250595219456783144535578965164841859100952580232949644186650758107743697341742443410962299786241415867345479146097134778801306817074969348379672877244818985821582405638178119383958658243520812851236718507818308878842048667352819192046249200230410491600924383911577673070464034118347583611432384704822151611727671944343623459900615545824845795457722217751571584802609492078667145126525479352251057637235216934379507002882738781994279231837165763930077100147725538852984464742295144005657745500622636406304125057428873733250230303325062418954838285340002015674243197788627029217868935879784374025215009236993185219475969984693088741604715302103335058918264767566288780016762708679986167699269702157987710086918279006184568926012874121992473542559394435566962899231589273378353596914058327754326710883072048320305231360580930919530463706352774595714594970842169928580167151668227092056246129650260421565653432389298085198426030652746857007204712104907456653201703284736858276557124432147171892527352043341825962505195090752663214767919735828464409299267373797293386378879247195034243302251552455238234474016665317146514019434289948691091086557241007730440855983729155675054496344047887567830579807320189842614354642853610842503637739688699491514821563350710822707473731663248631174948041549733654750697455433190280862074956553446629410276966851473077682072530646888256939108848514259453093222812173683383281022247769875884269352535030065278269742533940317087116005570956979127780038784846869389141697078192463643622184247288929755814081919404299981633149649654869250158720859678213979570707674595349655682944819822256846440513775424070739882368396667809659798076068522188838717467945994267248141571040332609144019263701566699793534984895593357954472902355221195447217657824976527739303943834009165881388843540593709088252881948958994905799197612524790528337382801196644047707736521968315909453814975425515032056795539812599611674084062953257365632236119597050474258254056673478805445933150248249623499414884380528468179495033471129619704200420902822113842129330966121588689598786623393062516061932361068122881203491864982079153495409901531216541640048792352979888789707513087258291997581323529104659592371007018081400166224627368087788544641169505780801453568887838227277479647744871276080324562008711616440952946888409914845744120265263843805482146817031519340249116633506496688267006731548923669961647328686964893742349794609427733725118483261243471054870490015877548357958889449590371933994873187270755914745397971463658910396829080619019222830939689900432409979885371696646097741309373167747492373973802483655504685255200009386758359384544600956905187890532698966783424212067537513284046157365268903344824730950694385565908363049151640449412696907359017341437392770670436331464445476472038112123797235466669805857938679394939658469097299176439439870055241557328205319648864617180227391358958549974547801795110053200113331062421818066214090940204278536932612766938605822428293456868749420420422734549947360166007229981525542501288895285995568502726106074852414005020863215900304833646235224717181893111350076992393056560130193801772998995501363843036668644209411938970382017168719011927655390614804465685058426935327291650973722149627781367351797907790448189623363782271501953539613805569871564281733291923594119768755063930047753656988189185161619774102666148020522884940108212542440465625240685881935890273898909509595378797260627673408097976547082723987736197431546174375863601077262960946957756865578696665941913891118325478388460103206411663779301191206147148496615515260099822885184375923807848562506307690953866719360133871608499983131314456181546898245693251334888725857892173453461414759832313336174166583954251068635053472457487434018142614710530094110640490101255888131522059869039360146808634127469148102727102920863046885418506174212754641824414119164130994082201275346376415134139754319071186106746562482235088679606870342622170248212148702045030571018720051621798361944636494005935648747723599691631254944910222177406819040856461497016781599945188556848753317374798795200966511980803604543580398400847493887364693848150806749591334159711724946375017969074661795721767044533230402122324040357953523040996053739155381896408232085192894287251188233393041787358324823551735752870473339923714073818732590958135382750355770124102023906690732281425890311582875030576374972753036709365489487155063543534948611365423460010639697218463164922496665136813543480814674782882022257014140253446415163386713507085855494395652031683428439807100939073677860656381272221058209883109692416222547543142075709967152095618002737289262589824272493326495228586754718616340835854904910010336112839671785576512694956791205624251946938875018292447021392261733677518817314595072229205754817282030295233149853615496332797614694769520123419064281659793934413126458179504804935766156416715229906804610651966789765140512082394540247964604586202484281229784235733416035018108555073792310873707752672750354438865446706244470580808877940177546251800302902782821664641030072255259467083385950125408447163837277476540713491878537062670187880255955058944573065179330376194499729092670104416726777068531621990800450690043297667901456199252113508761389050198591289936669290093291348415344264433106245344154450330074961724839788928450746631180613476875566070746546071556505525670080687727966881119211007890912850842359035886338589027887732008521314706203608252061624753252056833521173738116273118543726065770436250260464103372159636958873212009015875973961162099715943896094788969066780705745891513373879994542464165070999631475751500935883419813708533796597018727587414330579467891815283311388029545822993877026317590785248593162616928162206087783857680761568827957844445950530431410453033149574444833279474389284506209907547806195732301907791491432259011963990262202671880662112390302581988376098833476011210806847809010686408857844477161568733391572494630813097008426068658077887183970680486040136370607996650888132883156967344874964850533743423569203369660472308840148923848305430921131516296562943879929810811580499110619154093333049702930179482006468310800117289728629393433948821569426060495668972590951958674880662387074776911488258992250220086104309509542566832313620826330467208845570273142205706257956280452043558697399031047151536834439540303011695873164670849748803260393097762093262664975512210862804538592357556614803046134888677142385582406013739198000407688667421506886835386581361929268822229233594628468429171057282972130053032625606280901559508342583744497405612562982336822339200255123911717193543309711383604824566494298159335209048030280228425443804769707259306809604677966391115603805735927989585699599101671193254236329444474423040011896374469381262231622008720351726470598587885730402993824580223776546492539464997096795193555857993680867399960914672628585705297914304435600960215241019997447254267251325192468512480022283696608377126231308290879518880558951234903275723124830915653460615018036376037091249763081800970117654023819668989362445250539075790197848372041035368465362600884777853187328137506734137187270101776062751933832112765843699087002343810185972978641696266483491050144310937688697361552481578159273956819865405370663095879589995996348383242108906844000046910318942850456071657292023907831275813440497864327997134268689194435388665936606092597194660074830873182871599100782941764015773848925131189469578212950203262672394518183753055741846390581549488775469374035443403200805333145900717334689425176535544438248370242708578827344259006815895378392599184827930460794817234488063107043993354775568670803727826021147372266767724361755601621331030553341580427867918478638522043551863122240680128270062777621561763811348898390370382489504801890571513367115761224953401245043608296055472712202553011441593846818644027840424379343719539891688379796463241537426292408741745616360187060668714604047980100032604216228634440743977552374769682014479379183173977482058941950818040900779180863152554603779408565214590677601287122661679770413251895871501377229826448437979198019573721758132828465557388106504337113469927630695349012282108244988391827695981843189335363205830382838379007095382662495988832211238709494977086897516477328039417898555065671413746623992526495818850292498158460853177381382092942871035633800406312000482277630346493097408839462474651008108995818009856525287402001777702581203995313704402096772975999270715149088664172951406956702203399019474168811135542871899394621359454472775159540819007570373400566359084488463104311945024745763192106725385436754564880611798042262118649406208953219668799565037688015818199582316030639052522765030498810174177010657158551678645711777047057747783821431073491773830070840174277137474148928579977984761784427528894232123590742791764711606070688920661155043964390203647254945763611150010693522471532560271373497703665484840086713234997536952574246692792961372334906380844858044953822139339422819500610500680266376883235654710407357619985643798307596754941846080080244335546547990245218581390545195390845570650361737592223604243307226125672908821210153341003245668844763284788210240763272947111338046256142292446721767941208634295629531025330303783104557802373137402944077498065601334238940896385513723329953055520583026384207383130531659701523066366655295596757781605387090352677899695755149517734056195673305058015562313047509754981528779707151589000063211223017304217752088578481658853195388394483305881840506843361286724976317073547258794060303056939110224448388552916501831238353914031147353169410602048812965569579058603202776714497221937369470153711812409898586595270083228859999390898644573054160518103179250497933867784854352077851135899271959573341310246245450653801803735143481246730894560480228905771664957179435130175245798379166655802153417752875236609232908547959638681915767044934866714957962206090644836777462610735551741145194792194235299559988448237160106608083466074792176056292201765142024311439616938787473411726399324809050198762406538241353052486267942456546736464948416780263751671564890223073008814149163788564180934755091212856021539452879768538506001029332899867863621162222605254657826985284802807495595709954919698032536209960873625496429108078942205590828841636739489412825324272905319704553269641114072991400433820176372329354573972905683262105305211399012679838396820628259975377408468009810581391096033722217681823084146432186635965330608213514138659962767479087370585137265633821309540578513938339095318967977557892908589384729704009804424738577442536111500300495957808046243630829159772871592760471794090079947000894484431138568089414933396879778409230743554573825559573845854100020889116923501195678156938581211442005807718060154465460409011509787431759090735762031583460117961927547460576161638781889160245317599964762620030253031514890108617664828723725734240120962997269242969155476606021712998249807240514934459647849971917623798806868314311670810057930358876943028495295021599278346743640630923858983147551855174198650186046895714389746944287854242657193319008807294722792511014218551191460158474795339674842648730698971132351181014453659377738189725233005104221853287289148745297630174182263076905063605597554043276153096475759931027280637236751702919383298168932558317008178716978074898807902274352285799189600627019441601952846822883176141027055886757780376449340116620410328339685575717589038867973160533043292921699714576646801231134190165179328801125402621146780616594013578986895935110466855837662063894524775262148182244313560603271632429436277826446447144608357505309706570438555877024889241900809179154681456973026699572060340744993212398759212651406087304361154228694488587910913233874401673459276050585137257618779873975417427503672537760094063583259621412040493678705105490701419425513214076541030554119844394824473603619977818893481666083530499218458592083183704258279678890114529117777191986244164742084961621878510197500574844280156520053986856419608361577044157057321236362769572376245352169120004774447683930073959938089347267240875953427348401808188252770836080277336651269538566913545015013435386346277759742124344992784975166049425189166170821568964371161985726150269353820067555805267069031538458336018031023122348096156884050526990519894129663618625654253869985065137653347494604085915574075913133538100836979757806255400404919632943425312332970263538459574121069402319044456465315398917491826834049317049490981830759016363361683887030840587290001854085007482898560684691255122045168934582366150962896109518095310687053135464545027813155688943188951456429924716386370150426812305798427972546044832496074186068913993025060032621396890994715175251374584233458395295222337864596754556857856448864393476604470720917979368377849458549945301283281140207798670275270117509554048028441181412141008762602412139953495175965453060029411706190392975863952040475832679154375142089216986889514924125047041881732832361028299603914733903003386129498238768161205878255854975481405885025267324542649626435422059679293774163405054037730372185669483509032954652211785408038757155784682707026818679716555842220194175199546569240656353256983607991096924838550904513570045369031138644326666315001306291634151234751686378885171463288090905345455244114282401880812489164375337400973790189278315334542454517503179728740493776086655238167206915038879644313006995068441366982156401872524268364762552487819770381408300135201897866742380399522523518985741832189047224452785603041720080773081470861040090108120202019532479116485791903044138129626933671673866233135204408194413840771525414285406741964234846818900188313850940387168435380943747921687642596643718331666686866103581571943577276039672863652778303435895494289687772181142596733797505452908959961874786441555723482796660642339883712647258833207020840842198809732397597145301428190004289357050962539620180926199689636985704017741016168369722472270943929737599302658283327328342126557006408280051293016473361863746806637384080881119846310383268060737479821762006908330643446940529088501879363877860398723452195452435291809652736716511841073489583636214515496279621243988901731522670169165192554652926456076018594616913670357281579161544958793465674748885368095460971097892718893052777403356037024361985552177598663097584771012555559554990345317903981321762361105478079453955680787251290616752499343518388348344308582270111582121128913638092697562096463880786031195042436691388361375704783726271018886641740263439628961451143887408264043076819866174783629831870405460805061812220531072216343653776381256934061397192692205270287225064840789012180215305224920355229673483776071412770778592024397534276396860851865413751953692739571347808121589056059386714588535565288359527053940759885491999291493381285189211287447499080993502415386307342507261546969443114029261860981428996929694794188867669176734433684344446733062641646631965146418542360764340479789874725152409621858190245593359047961370164693447043028706307475740942283058507254093750557640043773057508338016045264674274763163463968135620174010004388405091634477096999588730470980496847398110638450781040946709636175371972651011948368660123440862201120701132706112969324088276723698449988513197446316999544584662444209270370963650974834772183261126007308059277279183615853383753792574018618058812849841222241416782846310147723255799398402552946641940359750535488024611723922058357908257568193827170199814473220550728768059104153153069919190779620688987687954870790451622812636443219655205865943533274757154833781243418149196442346173380234354416088992029885944345761777518969027020015879161955543840646373527903543577745898307358529798967946871155252591839822766835902252281250385739766545308095659468182999791144515240608698839081040612576622224552777425133054183173975234797355203557835453607098227373081729972580372818790586860058616653955842853327362919177568317751501219834438486962642434168325831976550680367051085834798125694694537763610954566329614938997464082585349075064816128646496744724099818570388850026650311157795404794413671369438363089535927186481902981689823505090999355589704357331872996232185037064068585310159085092184880160736893626430357879077814082836832723537389153516272101821697536798914965105235214324900092668061926676559819537946753152483948436704204866234492508003472223668673589839273405764938367813406735321391624304737060753454820442171060332612099651535199699076679852219443889584557907411636640564171925785925249340490874076515565564001865146220994964260627241230338145546523743803663543526667009178365689858201622362090950029850944995803883930958843632186471245051036958789000009794199890829667513823346126426954966124254560595966592583735717644590707815707706969811104047436162326457927499713951715262150835971792789317815666970055833288961453432659229654372269097720694794725432010572496190321938909075048852438767993443686462394057361697618688555886896874572188740554911845469166089882547331976012949923800313472928286257918276526302358176743057638761963296456758742252602040951401289065203348349114579316850560259764121662715728108359606912283600510856837144317556950074845961055378712301010833185903097479366431163120719917199871423384591971175376368273476732374377550163732559010978965069439899118355869166044934355089602125378233610259012241374859588788589630180401166470995992847506822112940922082743425978950553193000545195213117856837705658366017535350390116992057602461432067730523335060533100583648010836285000933768066394037927458989545637688924146922235789698362978317234965602845854305216914242224598833879225764947102667405702028891330865881769881004953040348047614135104037551567011740918227199875178138042112182650969993334315445875143086546666594575262988558792292540538816896597971503111810419159461260791823868817536752166453169218891330984544200884316494488374458902727371514724457214627571171764361932338708502008834627768022084572212488685503469946137790815000927107077556885413151679862173502054355876971128130880101963495705822323397147708092021559362669813555832467165091579690216752941109601008674154531260166007575555078161532741856521776816147245568977620977966722861226932411494069736860598693361856411997658341137440983518249818104506939548928414082672408516487123635602974984223716722078535234955404739236065720013246867268125068944869162469019730534943139466080380279306702342945336714916503666542656126979581922318512641605672166401564450125589236507628820722593003410514005022983710894271408438183392714889637024257310197978859875049033874064351376550731710428763555300392373449466479169791773297321342721482818960745544851851756454631675198941032162306448424245436840088076181298940428983240132067773867071949266920111290110646609193997392837843393241011866029833004906948399034957589446461186350815840816266192045949530506983094686983456650330567489717829467842215721476029066608777063433766599098272413063201949468277847559596038445958523146118381747283431860415988799830711116812734674941079951526500226204131250120989742581369037890581610865213554438585798689738044098297744489108890879182221373026606048022357938285476719857775919372539615633869128364853299880098963723675314851220595210230962216334304996354749759964024760414018969133308444785406077148383480933493198970035615105522780404284763948389958572627984972044703890853789120567175224817812029038786675282647276048066029391566291968697997864142540609623120927081940300045682494985897828695697252578371120553223721194441455305105049017307616410416980572788257419024543798586239040599691468362818999630535523122424045855330101716407540490899776104590355282478190542437118773180250717390150822649949288109733200811257207113112229272390992902986940838620959469992823762522157053139367956281745788482909514596129532799419359244603829492241003264733530289405154230981086605072869032130773064408572577560506151332295213445438975667108046325145687979040828736703240030225853389517618676185235088299113689555046043604564387289604475301163686324837670381980682880379297684533474927901383705006615183015136556069060418361685159796193987675958230198903098958349635626403649636902526585567736907671910524338319723341104123847662028890044557506079661957057557301371804121088231481404152836160329554785474888581008455132298008730161301029336069936494699656112111838483525048360052259684019143986860389645019073233687634487096582233498914800118753984698250272209191913104358844608175449309125316022333010648017238039520427927999670908807386390814498260225816813394998992520273042565350847071447626474878626030292717146361416363433235720647391477780400299090314794241886035438939616324973990600337495595322298497213182021029543934487873077628139551005983226541933098514035258361230611293656850853556888670848515039379997229844390777915280730041362121007735624963113788318279916154757472484824770494310614851842851527316220295706075998761044633333645562437568337957909874136683697473734706481061380063388532643457217126407936428915137739729908369505944852695719645179829306944722013229972670057647171515172618203838101725384153553991750763210493314496441365727805930020177295435971655149426991147494685753329259563941133362405842148004276536291536494217932021826144078792866816318857648264583798703499675317917366713655000257934510319700954741109312358774841659463348091422013239739983464990337393217128308045048219087708406969438665605438060019601260668914362072912491581160602717676089291980973815539135099068352186233502620937112669656555149532608766684976091473333884117785140130064049744589907518020230270657353846894680783963521662507219621946600938540168154527742978431340788452558929386006447859651614382980178080986608216978991420128268060924058724249784851056720485781501371524608539278277621280740791547480861408526128877220051226505424462196232061620955116362110222122124637877996148875359538631143269879920028875127056201697225155782779194343019845891676409871509843696333898246295692580969127230723008649368417753201852892307463130640800713742319724543235746481624011734439381081651679117887765748492899000185747663855008806521588174990074999484127715903782342128942616160993520772595003612669283751820459473020973131888441113236574845243785767717844325554411801621409086370351697293574679320113791097562326168085993946739809792607074984093116498459391041387946373223566252033740714009129649992152643977643474544540948561057334403141335588191083496940547046679277788233637544028877937879528881941123332642744864683700034896826168697498733831656724886023355623710630085724987567151524310485415118151804694207460442707062689437650910951773372552739435331908219295107165529405068224640234232302630781390148783945855833679068636910682433322497941917914212864145436573005443133381654818199168395956095800334756711484170149545171201343671018983240858390389333151983468462582051156732974454455647921161052629036768143831612444762414109666848182508613640700649363667916945325253351306944303959738497319704353917433107193900673742835590605892681979729834674151123160282342755495785897291818503170023984304207056402490042374272268462468501303888990969260836560941454707459373338047081703589781924695153173029953093207277303910607386129699324613023406294558533040748005043595496319797557826266963419461394453714478337662141605475895841070933679787698853265725334695795667200497371024570669385384395944110297409729079746742674106767756688220770017638727113213066731092874628931731076630439920836750853852503617739561707856431035044289573101353058755732577644786492614602136834095972117252777282172928714247999660630989469920485678768735063591622747651480750437373014553085356225146585147533703672533885365693212396873527895178431010579312361721406220237154908574134262852456301875854788612974476888965721567324993123575079003249425980699218277712240917743279850852703736938535730615863178181496806564990864154243005995793871155786932683677374649390780391479670631632566088724491176498967096790277133985895786045615100643149590583085159834746453870736042856388854404392998440251034009758315138156908213445908129126603001457347786606132759584888522439405348166226551087718429281091560533649192501019926209933476953779249616899461359913843177808330210454914314059654856601178086204275810357714735512898051542879711445020390906267397206613083637738605124055951414792515269802599220281836562578440114484160945592683930223287010161062546489342090972252230525248178465774307334827994049339574739743842327859580541779915843364779667719277562551350387854773595809443770455002687555360015790461237758753474999245525607854921564790708527507153659135801963564178127036866941017338178457151025596303182125206179372601495616593183532992985202523411114456164372670329205732654357985960891841011973223346935944978694503827234483398492479173966206392104798219385125515047140878950185920763803075818208249507089333351054381755522962592506908310129375231880484524231024505950158931362206075919032720352232174931046355954190836943467201422369503858644399073481764422436584115410136845032308036612166431460452284071227769021173256655277267071278366410008313751576500766319445133552264764003433031808965822668034566861873407235520183398691545917841369307489453025393415685318047699719066880872270029272806630276619969203993308095367387823132021305285435769528905985988239749836852267200320847840149179500983945556587017143560763578757935404911666036370672921852763458459135576079473752264881742908149706620850004822055621282802191573633837692248475291833489722236174211527865762265621195134080132013164845727072060052326897362558725265814434099820554838437195677986319737102716278774463161468534909296170581929594807074638969093871075688882993017311796989611420453508413026575310033899721968943237501390091979561759313198955153245621004588153467356028213412394802774337395766239113650327870391613959785232829175863372355899386774127238393863372155122893075511887328904717525235164559826976918295347930665623607941323604428490762450021876767686801214973402037823210014034126373422905380951181736672980560815764511016736191992087374105500120377099281667800161132443322331501684512102998821648384641611228458591959491025991179447527567319175111801175263692014263028042593971510422041826901824912963505280544255451627312351242253951031755479468774021897069708937335872496440941378345293771876132237847726201346849527262639521150017806371845536150658918851115483026684136296244449193881322580318019571395686933105286327003065904399011618865951218838195583046973346848469501400570957698041111368138240277026320591998132965979287918941404323075495700305476945881151083494861767660005332175529834183089425502206856973242954601082278036949726393089847932494241275280782645282930026745980845953530387081835842069259408989901729334553322209739369943093460128201802492784807891662080430145029800842141123064441137319647952755193564791573487563882428153750860434493996263782364416649390080622758072487640920892806260030755745928071018480287625902015534381363458143606030591787895672789978619385847352935844305890106908269469559200529495782000623082462271633376969436747154910993953610914027875116857863095969462957871173464003978618706816990586115282185752978017994892089496267301632873342775648832198676472856240245322816987903321585486058734531070108692044113427358881785420434044728040234258311166778186853610093831783083843972594313979208421727558764500791330045232462804012520933545273879317137095361097067605039106867019781013761201697577250439116876241723226667077828101216780907276561105907078415926231309145467227430164948209271847871044184667353819446543208896379919812137529214103951685288507047989647502130014597585557653931735378270226495398189115473691319785653098630532424544175370698567546038381695681286016486953952556092682887273889457654344128892744423188675927287229431765772818508238339484724815284616190545048325758225825869813135281924958502549179868810695062657114021774655223767531103154235687470225837760180772228564692115242464387695465063880768558468620003912129625684283607439691658418789821708492275311902333005151246910508426208902939483583175492314483016682786150417575844344923378831177803507430634479905134208670837678953223603598488197471811043693032886999656386550767364692694639730660276406511677851914238523720493854800957089267997068279171814065796088609934683333632271029827123161726742850055526699560149034904295553437925135580707786786824770603907034103411217632970122718065779091597978816428137783013518568996128508305620562595827274675025747211533236867599147126054056902156854307638883862184654001286471094166828706397036194931681532656752640356992487299024009452012774565120398818924812492560668347538586188320558928932922543249645543737057814473402023858650719724463350665293162018219600182914432629977340436360288945703913344593880441109088159785521412431287876549664792318569781814660799885222593690376556403339594436457958597575678209890462596889143998911845311369942841491162286100268169088509636070992853492865204846267037773421132101567722038083073858964426415278928059846479451466415786015529913207664258476686459960918520125911919906375705611929364268784494278678551953657768371250488489249897074839681166873966665657800370867408630222732166440743252187354289239126889460939608285246208355017452822242049773257095919768060477567522478027668212252868509448148907926156554100455729631152904060511541729955766190944391803462172922196663053417933513500665498603170103782235616670389415732899229229887405420091898675778852329191181278851308387354532837062717682715011818046681004679732552729594501390842404959877912176866291150759308570835283818925988271130656356953289261032966778683260519899652973130969924578739982081097206039663492926557701947972073962265699909388613770356286964328762711297488275608296065375671895301661107096079894451103650069810351864131107475841746598722157468939497492804031506565288675543923596787853916108693726860667462101813157532653636487808240750895904185980374089198321768531488278500312380830848612334339901302581156979578442097556945332878342409538188631289738414648379867344981916076788298247196804749621892233163620500253240674227545567397846006621663547257814440302427617853024573910241751096744242351974790882289402241815954841111128772998103274690275069062326598947289825405040854074314988992256787800957016498870016880772801928707092297210088470418449672316861496987453673760510801154383797707843026097621629097966823198302715538236182689006096318561389193731460843505817411457561888912983540632998249080140802801418808707093495958989149898496724351020357976599415149579481346575630111303733376909443586161946212037397652515252323097371734742471175009634698821421222499887771949476869786833705960256683374917895044750108338010505351165583951928301379631928080218869040661414406822972166956904571752295906253557562093870418081873678717163350397997849099750009507443162410120720966213475929867820153758919594282254231466325270858624487097688841985152745813762302880573128016423348969010356159060493823922441757772421422754570405480016142575178580383160052167281863483990067373801381148010932868116256918250274170696127615345029667288149877113545663418025136835474412401621884262309572186914838922723580395688102001121968163714009837427429093466604621578301569678640949597014426766224238390268431318932394230881727356055709344141806921526896284848407126733218309551098770763277565288768429750154938226436145770730931226324256569463803621635732591628169403845678266310106444540016557500235786569649374208531155271624960667138625837382127843324342640732918734116444396170382317771877667946895598993960260463634605726208813393438359250565503463441203438569142887576888478545697023505008034560484618304739140108513954068316596337871096475022858561511657206597513779423325815039268733828736677454547028885911420435404629934148443305132727398393218174634221063625987249492914931253754218374779863550473782899606818348038177090161178786035493325985978240567887841204116382841678536948339855335284672940002319870821919800611837972457412296596184511083221009613957372913521376217041508852937006233208898524764825768524814063783649679925412992032968502556282255645526694921219243579429386084592205842576807274281848713867878884394931461705760864280359801654567761965040131494450500122005924347073894737836018275048645391942092018870678960585157928628509030804479759270137681633461933344598811365895087133332226895270098478303490956457383041393071645836642694331856660138692633423922860323049425363907212440769503838819675372401795777157277008770926686348204664008567999696013184846042271324794626265478577832331375679466180796566196874338366296384619654903161190865600607356864012414844755479394440170502136775133105583804438262166086742529803025557119009304060622646073577207216817207556125403682440027257162442642073066184512995413064125099942819356635578889882484003542821323457817871615023647624878927705405845644736458647493309926484002262209994955220957374873153703751322928766338117567056012160462126852754818690547490591778260717166720269742158338326855340848586864534883725736391985069930562985439093774549159715386394181263546062036945029061648894721727772994461440248412395683386272475804859623003516589071596741691886543994286352583951953916109801629436048983553088699369660623390246654204919113476320982095500834081552993411317694843253573199966747095795653199181400597237770942673976663234276596995443058913459700044496664904127261444546961507065493861991945534427928461157391192403611600851828279731032593500642782989038094332111614348359598911719650971908247474899313864835258070575926274882591121944274407873620694543014724088928484697014995349371940985672664952727503268383974077344728193070546363411391898392139433689269795302890717060447867440798402491878540834556088144515219343508547851501030861892237461557151457996697578371142588659325736238875086156523207972090254765820878455862635088510094587709019817808885088252212341912210180216409909079125568552184325287938777744198415007511512341619449430024622182695838510518137525387567034180387303718572273322179029655192465073610326027817616177244831667284709178765733950791243833467252762109585068331265296773790476580000288944380775423438324722864625622571424851234699882404944487691877507458003644045744213900100224339939926530367259331645566990725436989619888764037829395866289545293937550012591279763330606138056875738523645198278124583889921574692537589533398361357612219470128216944278951750813375344945424535277943932087349318360986440504908211233689436921756448753051978256403897256940811656748962674132266744656858704077417561466960284526902159312778149494885155886690762130273884947442437159940051380054081921861549040326864727653229044650783677781711298536572334291801646829491539520168685804206737464023126470202135150347738448848878409519689491917924397815059722720514072391439419259028933869386930330752393108231055562223367241390067097024498123460760548012371168362954368356651737732595281739379343709414663816790513075691717116017122286830614452315127387967228152841659792489753186529091295836201981957687384744468121038759290273083974244672051844651458469295055775794786681068785263381350739424655690561426885401821534430559377865633765439813000584464530237382801678535378271817283141296676278106733009988082234700225886809126290211277119848482695196259604493771711449069101654874147864961669861176259338114274568864320567590534967863928602336479687783132751693249477135680634325925316825825455684618914942185815260948897702202889297676930861399342846250229474399621502457877533306555683219962711019759142292227027534053938373146308543138319465138911784355372275794238224221607481762620313054584951078134041167170162080737345761571000182357966658445761415399583081813881827813476202669061136434943469956080796685437200782272834965068905315245983706931765370616087403078002095118775275809346414763145204871025335745611021231336196283270157197888622432680745724105653131263113916607199275138451392648281107452696877448029013874717888440815362528151787143956310274054403055510115842256438567741754557071187113305803353645176252000552745275996614325415787071037722019063191164557072855219297029234975997621774115704135621792019672089170168300573321167201116130933364087599942086852566973196716851246076423441887680296465610515424680979567012472421485471840185919805002696487867685046996097242403943586574627252927971652871681386538941188123327246494961134742368003615785259606756342018700461515974903827276031055602446133106024179640028796924328802262111381033227159515999888787811523591173170456521286252215485125602032624160610414177880039391961620338555099652299881826526626336340302501129656459943883779099512104570124939906089631348496162372103828371721717632690396199395240392215784680327582925497590111762934818574358636254236425714393225764180614805118171032686026235005209535323881680784483050082531134503299198651667238581763851045839959686679463002874219797264183460226406961104194111482309344500557186140132460359184405547098762037053065619490866211676983048049721910849412381735510791045012858886494294723179241683227675735337258079873960898015472761106276300991415518650886006924023671499627498280693960680199393465307185002331901743895866537165881856268823028873451118970042440425038477200585217860935726516312280744837904040601855416996683558045347368367866263225529382850946504013884687355519540688700535837926177107387089846114507470504721159546957816666071821774095055392935195465924953300461062609609627687144186767279478071748920127065301752557642397758857977174365901343449389879457741047352763848017153990492880337068694690423961636240093356902168919905307042906825866958774059639361849529347750198686836909993816991101199291791422458376943176450206253066512683810815033878306754987785911705922078383032549040151318265603393016383150447383614697752346942197729436594189231664686960467597115460339866264954248225456992752236247934770771504887795665206515581641701262859393410028905980340078088484083120937468595951828355859853069734314124653681096099968875213834778535244511083639254331719266304728838098823332283893564729262149243450481027562093622773734146192506562348168113165472578266536171426641436101913239612251898751490915656914933718105236978808665203207384989546137117252756599436235930527583310312818441195174183679562047072077781745378075714635683577968093757130681278710407682257802409447861791438510943769064229596373800434926014273752874447301293438679875423287493512124645966213475577718617816216939535779256929774845190783044393778793903503036327755655608682348819744257738310734966043139675344661105756645104672875536489736263893001347183266516473366891060227443658864193752893115132960689704743831923613439392532990816277429940080890448669093766213094883422851242667275024579141367433613507756119336416075825752295828409508406247463014328091531228113394112136671769058757388471285363357361307354663783278605003084020379124496422075926013309315894949858057821924180573565240567592238985173435613639254857351523948266521686140934739782773732164288107504425683905682195414591949146953419706829919280137543654250798753840460959773598193273452483122575921367086714106386926965044914641016608932490884883088553016320538219697837593982752632727630058050313208027141621956784978700760103937310727726420176365004920676272715145370609227179864813897640631132306143130731797640865246076160948785954943073317795302609073590864030954758724046654906466245097472287024399722896666013855422857380577260554757337360418172433396339568221282217273131141697198245941884357426107730741940834128238645094540139658354571644832432757089458733014308700589981326622659100277559193438695530518947249286439636080287878431947849635217203318086509123585598989750811412015710304481123824621862676226027571259301197793463597949376907581845438400957245132906118278604412745727490248151193791984233851188651559025455437183062116478954113822402696064761852779139035899510432860206368499145617788929770211595348895387979545561863868165271410413176035466614400157019448494320826297788790730216011191333020319256525559278637939862631984997940119760421180155728524270121926210500586441016614983347229224012506745669238499083563223210028916012938078414716837831286783708230183681498556565762176092775432563354607588460316869623638103189705015920503771614440244986630158110803925011200297753943793521487495956001030489920955570021005620031038009428417528824835713241819949886828894306680354581594428046400555374230602127660449563187488898362552425002731255016364729474385466311508175565166877558407206247162422206341985164161938123557662720361742270294886107368694593486806160566292731988745660305874419072309868559747312779643222109143147903206723003293431083917035271639006881545994796550431164934919307743915066866294619558125878478890839696258435739366712426673298502896362343014769879916598065399550868136769262555324115924741640863182974978713986006750359691225242970014195180809564355925378073725597007552972325580139897958492602212555029931891857985842759394277770297317160644668487136427821288699376380124523442881052861437099015667732916462822111182613180710350372534128612994830180963247114551153992340312826752285489206743925482306021678639253899897994542062242299559460103129523129840243077820609299777905757976864446257360243884795327818832743089547809496077230442619569441626171795827364063794176584550630888439708018646195956803572586907842602566045787092723751622210508410714797093175122884935622257436134596231047880928888283666270322465855852720543913664111362698478935263846059591854673645713351977083892232709131417835672759885186700378735913609942695968593460153843790489827927400253639729158640726422066179414308322034512032735861802422033450442787287089890666998401264927162899283214518086072207604695942176789959219135005238658412373160958243181912865392282033946038450576718853338751621265724504452486492286025351847803811619860723752952776747012576527427584145997054203679396496949491489849551495535733778833902956203186328880240360849976317678749416728633288318967580182199993034507761994858800242395416536349032228537939212044798519525185644868825258546221719526494622127573985782122346539893368815150909965759067570470210653149615200640541414218446624258225215026144081299744133967429778878065293515723732618401730334621328578768882216286774431753320986033840056072374443334907006892257456299353849174857146801935237246031320287624602923443631287937448678470462261647536294743645667778910538198642283756913563441214912476053796918090887465825567205873280670630591604246304554034561735021255449201565291308067529650108490933420579307445253597878461688121603586663783701982073051650433067639549816851002624845782774200988014611795775966308505433986089186775084750672766031299748500682647548265268636418600978965651620063066999678649547313590442779241348739256156529327502611519726324934329057778691547435225371185940333850086350237940723182300959331479136950366032215926831923853601977217656378202020493549000510569332090701494161576739962150978058232741930826627918548480127670621750865514831903974790000185047111293857310733007066271996274943765884061743316528948490926755791770364234489957765313417964715391147647519346056537080079773282328477101211569663717534704368484173710420370561017281206060751179383963541127919120731333386482906224897693857628254561720095883875861045335861280287848913339146911289648291117388543376111725978486589216301144500988064428542931148443184738475412340309185552522775123664624804482823443826179918329405669171896877860718491969827672230050615084562763020238729125621875579827097744712160873228738305023634417747608222036349272588508462103666681438599717398263861514572497591980359127222627667416844786964659192366433195767919470674607854076432562211158915426198955098830319962779314274232730401656799966383191588214366244315621995813417798635032859384026903596115574831128367480572867909278894956305238036229531332372253505956918048537075609469544635960223175265212386365287522605850533851020715862547198173211898256961387272180513315269296339667016734383860475684107474207747886053985597545634937386519203949902002911375412888739524310618687870284416858572675326442033116194243610272593758710628431932005997121776230392541143790771817279802762165291932899994145285329711782736426956190763720101503824387636391618438083579800518922878067363301478326741176012916798610700668816223774995204303054154695166226966548966189128995930333875453555583713995499459039544140252825630716406321925814734828393172824457045217568987251269897075933781746612611385691582355820240692392601008066829786182954165147420471644722847109993618832118392332347881445929727450369205736421626889876124511053387029839570210268057661290122191156196893594207500526354849426607120965791017011752335210075813894290758612595837417570849831785873500420543314037256905137375357986540717240249363546239990625013142020228968387494804310824745401199657709802911021150153685713775466473088981798948205203886067616662604178270607462888743269130997698044913061210633101611759812136958261474931173651035946630838852939373291104527941247940753874969095638035921747370777994080476189473766873355016115103358590376666896581802016030805902147493642837818334045088686020268477251433853293524832914637600485937093037659208661319971779933007772278546419209867720498228480537924751688716614927994062335867605661697030567395465108450163305596081314367074876512566685468593464672925239994545193470326313148477074486684860664843851819415461613804718304923707756151398890554469700794345688204909889531396259629136367326021013558050781795173199186443295888500543124706419742881279765568587317211653633914420462016495858381629822663422447364515660406677918310288290738138584574057416802056641258542268362737240330432854766154783122891794241948242204551533873326424660961488763182857123207692668880859411733903887649201583097015213923633345965915328186115787794064976041196447353174887786408671308243029932386076430933377028633655200816847105756374338846592118092185710118625164996298591731653281674422415963631558811454301846926202097906872431990583413682517596672788667723881978547753409089697622223600356290606025479811503855215791388339919863500858082814240443818447319674369181202714283475644522879625218506072733070581514841676043865560327059949057733359827793260627746598283904616184475957826704966576982258972407880453930454154045790599883267244287817345164076518352441670869075255785033817127465341496834123037005190027322273829001323211987007482604877387826042905868230932909988837011429681357466080241478528353445139543342396128138179393617063404334988567558048517542568423468248490096824120833004573074476852038477869437651806895000920427409936346614509340708508363737163198773281256239258979192438075589257734327258062347317410638057096931909985193746931507694878360807056106042771524602836340025743124273272214851133886558093940556992577427793578466687772304251609217423650101262561572227122367227886623604698621054828872091957185698512265594060093401063235409126462276432256787138191188448415884489915415736607816045481549413082900731376797766757217196152035576896996577240479852073506330785187875339056445272202682100711524954789491185817853916145810369131957320740242611634637412394900067610300055641869455422085839078667828299345552225558742158495825053266951631708026128021641784245752664645834952442631472576228706590572230317327231189409028267677226046081333772073912233564258991093475037535348362226168059421781938014458321185180763916197780964709072133529202558064742507159647436632256590656803495751305788366193559203859780458330690146627707208648678659795742852562063450197144393453438662324927904567575291015395702257987290310311241343617102490599086323347212236288310048118669446735933355277449463944288267871717893292548631087405620030533622490468883056983853708562251878780408823492951750109258439166039054195699672192898122691893114595674352140581553709936604577458232649197119371732880355013789222987190265174811638639904423333362097693007371162864954143897576928789778566647738348040910124224558827005841446693425452010509264396708477290770325738266562112382443748266380119682703644634754037804117315697575573945765823772038990058816116509851362507114813969886557074568662198112091365757357763589424737451015296213274401056093256720719095554134035098606723543386782772470205553921617751493163511041437716450008781024395443471547646143400915220440759839110878329963008069653906203510156553156008925408034808037952502651404069299612196768306291225300813091216404898401933451044408277936233064554910166366287125201825919642250556816181664243517975116986796051574252952521889484520145880057958156535287376045389499708453930556903722112297791526056434799940779598592546439718760706243371676041144256884620429085628477856293158377187110329307409989399884422735681477218894524367489533987812720547938096333408332898882799574729462911258641535376026442670555413772940342235586945285384853004134004927486302168571625763721962682131624436491140647312825841238457423923407308788963056185187849229920855203552561857563029357588991859163522959135326804071165370843080883645357056153419550741731519340271630379204615833911311231407904377028646447489154979180635394111633580446184312295824080915342594651458707732634711427945642094805982163531998366823608275867274776429360009532090806136813860173744959601206838367785715689003670671426819556658184680196012897344373443291182648163032114666592978222675921831669033811064264510424176272515619750828326375934012955650204511169551892021177796381268135219268700442595351611939355448586726418474449006569421336992478378893361931567386503004653906776656609044950674758466804964033076403763746495198671225321983547242349780442930681443732260946740200782916548041981690324427096396507649947072227593985229994743996055493964736007669946656267168742238628812463541712801780950997741430691064779959946564665948380511951551593197034127066545978134547577436592937504189162702377804313867210498015701669451674894827747703856075008532693879380576474615988483629442791125110108433793452019407506065830548397622839108019749211315065022760128155368092298767991651043181235416164160274527805175004222904784047050118197153112387032520484078150415743768920596234251367617816412339442742929061308175617697916259006085307843633764418833637032491695081413917434347432332461967389865076020993247111249332821423834690010407266368197715598476010551772992892334124741586138304094600772037703758646178467044220011722882744292709940078086531210534718942184842535542673102046262437646628385665882521552809479774416519040681891273682313467645015914134188856925809890615225741156496066986362660074628145893373344604585250534721858925178910346329752198346640034572131895249014247201051823235834071182362123846743827354441571657779083275707768834423011579986513078196490034248538228606723270116308492198713548316147591900006437951897962752831407303886507307054823102918322582489624301175363309316285521854098299424923692731978216512468800566959684329440086372161509735483463460731539143092586852277177376982778799527127521217405229726850817540014722718444715662032718070889728924121619816032501177529377897419717380048334776043340761066281675000764966403789007051043631873189353976460357868531956792364707177101991540799358419123451845493583905698497857708881450694839355611724173641920488869974336281376305746840051399210273283551031452436425765296222744242561398718451438366798076597029691176536851967460625084917274629380813680304992938184268985051048931685197586834979392072218182726124614017240589821631911776733068273378910927407276734929728975068275854799673641387229281246881578735183899053636384753402675863786696589725703439427145901918859324487302181763176982612222770024412327672921160241724102005186089866101658119829730581040443865768003710299502782648683447409799796925666715771862505550400562371540354726887693757872745895472098685888182175496607641879674352763049476202432421711011651599260833146217059549567176304367726481845566676228756863670214981154789209973136590583259983781811867461042729636172321942376369757403748898144721635401569733989611497213883186056078067748204726296691478518555621250567257408744177662314668453040351374923841231999905311719597044791789105637903416760336458264721598337722288192286393670821109871701662944768675650241140104482379093777073064305397314378939116945443099981238775812116141439150074858996078841210687849581527653475323344132832067502860038351515150801581022860410727247747915560830438825245209355838700174624361838613018638563455257966450527323591386466460358694908755013464865707080863417409791776809305269642171107192158606984911805972207692010611201118761417176475950588615250977626618841892555980077587158366524713123860815632476750213500796034822140462783209387237790058855415550860977862617538385045789972552830244949819945450027608340884661846658497269689121442521274522639825560626899315803126125403998799489914506859300481123727028252379908867107345802832218705377797439751668165834966203963492441522869435759066011690775478021721782793161205451730817282833602945212104596564366880831489336417465449178518787090676199833320805338306436421482798649908856307476298920699079510541058728552506344136181469218025781408949713597873728833329917969027686439282353773253658822960892631137508784235819894000388197906511787779670481498064981558102128671337609189505458226242486098638755329977148414449828025919356606902616033868192520614639029530336525483403822830529200362679671399624665247289119936529858683618352420394286100836032485702296999303447749356690902421377113780680723632394429268618643158644927081072185481832775553051090367162705512377354139707792564364566272104845185674122303628898844831839219243353012678554194070698261021335821823386996407620827073583218014520529355870873607510603691338158792445945570775490025098484522521374977187065841147506573315155290479390721212317614879018568203360320712389270486978875361247861483683834820981010264713386070692099014246452319780748158080304627768862559410069879695723505154713079110531761475656544591199648298012412237335263302299637912962906474926053849174562177699804390379623249005319808920474915726618421570864299372156773228462946179720493679731921297855518709188942869905563994411460130190300482308390759872262614170969530237292601878500164621637713283260511725171052064915252041666937516883042940588858006776832486223954908476840556760362741021004198460338062739868383121796609271890054441741227181435966641851591019320755865451763284382572698299515020748641966053338939760853262709665435085642716568393505081004188187102789084913747805851581406225252243521472814737244247445245798523003309732847574441624078921085302207337207521217539142130378289173590740255570754372071147500165265148690677075247110093416151091480942519067455877091925415568487205977221117336630356003589332538865374599633583237552057662768256306165277085770694052136207348549427886121114569948453286769168396319096432680014309186827972663128483024807375632320481878565967471902935658810829139728892726300029456014463817661366188569867336060834906370406913551823438822794369834434144146960705096130702534477580221912772433267031070273637392337929983590575172349785459879995119244253263051178520918812924551870746936674769067538443110007759226940112637755942885041519700700660191872012591095678660663461864818542127772183097299186163620989303162067839492796149548472652873425523143380278868365701451830550545989625081845876501603678570038804245293446578939188459039963781588717339018195901075038838403113304498281356629035864763378187486471803416546033838796277976100586855602707634627507370727022297330566018397751976924759604594516960418727288739977430976799421405960599230205354253354513566492484439145645966743726720193404551568837549038045378811681646765991799885577807880835314466971500887728744384215508482786397988396680896865342477526076711780090728378491078744600511770550834392987221402763762327694544215084557132050907490412170710548241348732556969244544055885345027254924950123870618321959915589605115153204887783245554788504039639075669271282115224484135990402473238745250972008377670352053924312932646349151427190946753377698264165835228949185490943460467075187953651182004911680870528402517534878526941417953819030160310247186683063751580975957510959375529480062948214315729018538236660653501319267245121335107906159178038431497459312214999034370340528605529171681582675190958680292279066659598386361962250473577055695381279660777321143336101995136514777024310388655471036726177919925400548965519468227491321842088544096774058327604864098376866301723954107418919158824978730719958819424541707984755716036893652466060000120529078003564609127527635951476087975781020036090257445454800127906934570561881552897140097005819340981043049064671608300109931446280403270571985260056828870366201777634163618418841425318648331295491321900545590054231568154184125636408255851018592161271085558003925318689693915153584872561497244706454303291933852247754981634219271397083075437645947471572810392859779090957097932277812214879382509297679915053306589882843949494367341091925173907887548848713150817029727516655188976654075439365187845664303623999113856703336070554681237114842992802519440360397290796163321521749250427830456277557851764390704553885560758561901155601029219970250085897730695388594322276803120845070631431000099223844744035959642748170892730737207571913046407477387505798269608316213471341968782910764100399639185792299885517745521267987525032340850431836664781891878085323784144267240070272424329733396652220435518791188460813342194541810073961752333153848650773013627043410974982051982939915416616073498735203928147149592358482541921352159047762825115017530598349010490921113133375667026352361553963651449442251617146461302716820269729923160146440359266043416400300773553218397881006890914434708221180599764622296482244712168809120740763020892903643475737910886813426668089229296044522199804117815136420465041593519515903063043956256291554262752450368331722067231655745109531422176051597639527053692127489618270257539364032817276059303712640231306562790345420565619374773501402720998539100174818187621410011064484454776996137652140243484068914804881830755763307522776226414437831535557694294265574933248706980794712823828344747969141062000036460802535633740389493662944815723055352352446011950891554247003894091670188388540746770991418323644430303520939450383125762227784621482572342798871761042141158098711745956030629591647611478541750893743254022344530021383254495251536485861962968373677958750631657681798548819109209929091040201207249416263171578232138890467274626711097176754310334919840397146853618850244349194530138226159297930181350090295614297135446512851040935231952184713329875278623666483385011449059761702961540192035212079560062949953602190696771544251961324941925671971951729358773525605996400536965926904241667435275488046193310329608794084952399857137834369804038461950518663336560371807652459256140185372541914537778549186798986640497843226950568880541580488915079595952104715113802033007367678521848356045338214715632041188011773377690776534921435073825173008769794905651930021594526589696014985098495026073753387962463327230758579090623260973909800518847392907889042148840631454519333459382216569622987541198788360360740860044653557272051654082592996010927141759812269488009633838194713835495118215031135200878300073787592547731181720479284282499077916886018294435343444320306539332515161936840637234246582486092126930637595443250076617389927005188316996878980143755253700732990236316162573404190153128226293811226802521179143119232997999159672138025479129818499070664438522733833793163230135035565448925424894626224227621663304160017942831105809541696117494528208970375909382024848160859559177204779107150573297265401399392043421565906920541533767197783747461383327554817519010586694553347355617592280438627906356595154046769962826917164998521902836451162733076659296731383562355603497826669216409403774087783549632230307415298321551775195417904611711322150415602346743998198416624351432103412817623297896019181615240407277311236953265221337439742858012189909787602497662470917180624938053313094733220374286398992542573023571517352183361620414981775953366057732471400303390199225078198673004471635960510564919528200329428369928634230991680957671280876922888469420578629462826888559873133617469166622723736931106260422628011608621544122458605452077002949480366481428722641882215155858373277289679526567290201250932815255939018953182899504204115428016975900104894610371271649045162700914951604906307492674220232275347805004242928232758031870580939566767011798784711629985531324561500206937229208796368543797427009250188487635327201956240907203909454246124612885044770970145870382043138430957446804146894698647994211594130621400285848339045398878649609533509026424672716740188310963718092318317890917844254060063166126570612017424730186627395500248414569825964951334050980847234375599450743279368183880451623345782700813531471676267356315863475518087534566029111317277441166547017142819166000804564289051402755199185059553245910931246464355988645293897570181805559549209768083716259770121719935787874576033443542841721335680099216076865479549985873263963720521445128248442500769076467977652173376824669327865400198967942387251983522987895507811153450843508901598182333109245940786394202520964563166892505689673613852931365190122816318166056898854209296373282127404038169543972725972163879016785846067367215267194732879338109710073265423169465249956103090263370629728445847272104811685961137580612588239131352853442608389994951796756791179813006034219004806786322557872848849117946959624574887524560214164586806904144829375131821825169760229519922894886989246985433065034853648201066000362677450488989246920389447300167769820032653554949984841393714441650512714014487850181142440248776647630982418812581303883521490992683109120168119866458104248251744139901848764709005760022953706069248538645487938517093520041962878556332430859169630295359644832717192378109121371563466081652708797305697435017835763116669377227983870177312256181536963941007120659875476368108313785542619138203539090423541233204057612754229466991448726389552229765860459583938790445096345005987583029565382394079106573698436483320397221534157595069756520999079655502804877277377617411108172329433470266232719787739865463459185210071967284600583323452971545079630395425048829391696385342599260604504668821061104197199824006286484907269706891071180951555470200320535041727354866292536082180832881807749835825355726288807945351702337056832148670791076413299494710772229889746505740596924285060751057895705517952184266551482415253271146601668186613276317534635812514467042332034649984475540654259467205806873373676182776632927889108740345192746860166372205551833257606421758731291994493278207477790307063845688222438116869831661114737652737946940968718578099038065062998666368591736096877007712698913369907178059545963275490234808926666834983555414038550535290057857080893130868821435733407958576926943504489476762036312379729829499701371483067313260372934788386090474233952372989814593958866841045032870485179898361646790877072379439031070000377101766161867718657424697112320770314840940240412988195287183395548106927507796906289683679311153419632529782690924931257637048840055358021395348045534506518982915501943256543420914995594792161506595582740681930763602268907965910359207718263672576219089591339594694609850053635808055995299945383520209031672976265554145941318123750889562214129444891935216830595541253116085152953817354755941534916747386770863159668043294271376755127767704835459039081305449895721150443917855390489106815802144797280668939332094728640556996979957294933537147387436620990412612551670387700619365337800332700237137569147698149438802175013971733986686875304135039190137707406990486291401721068453833202373807211747591959667460493514399543218198540212250431372971981714258561706688860237754996806080205775760453624382449849138730868455980625824291979793716870610063004575381619496238269601352089953022383998398841892588930240559595614424197901548094610972155547910484500206843782731053671369118485076194002519599140487274559518640427567090465826812941424853132125421899980407954264512918552619089732335054933022712048925876583087554093049602461544232422040911164385391684179215428679823772593282507134578700146222166386481694260149298253940622321583065198113534983600750943325438349071522546668637276418125031724670013532677626688157832160904142873754274064373429632695734712037754948357411641983807155077871973126983456510703605221220321034442392098610559619513714260775097288431433428863376188094248826491545411510139869420606995307493513984147366734087608679780249327360924502663701510340895115349350712392639925486865511960991150200984122543253845419751308653060798406881072325019254206907580681478751139913791866644089929570027303666383753643699760119823006121780374336495200242194189804350201763938005940732769160098565578195470152959195008348100708091409792580058096561061885275174212763390926976049293250617413498625278912381576059157682024466631709064795844440005691126016720249015686389884498657921739615954576928940807814245405973664596711926909091913236975269867763337985384074025141398350705198251822985383070588774391005551000396014684394330636429797857909400778552764872205873061374242123957364968087882973289043604072445915822912845705553579386153156806931277790144589786881285447725862865176689167279687803829376591362588811489682144254367791040540781432595267821719171197567126464356224082379166366072587166792439749002692925429719431805592295587491133710410662163752360089681363637291996822234849459993139986581235878896935955174481467442623748897977907297459537996893994881660804977941891861919692548966862732724000693273266687330470658100259733043927823282769438066385993132873415306394028753953449693130987901456563084842564719729365504334751887119688477286877657162177473051792448256692947249092979223702450020513073544390106067611758810335350036018258097950776172457536062678493878424400127858912732538293705490723906605244582273173596626776582407895058286218073966958230386125103019006493665522292606288261067918095950633684023388693982033467611423259418032253751798349042541588388045182871623312871287121208688654747812259651853545365456217097813697528816136296031428254892061619180912916091699012421179710561159716983013421352662318657188645896093816112380932730795583567038612420835215105418082261661325437185129780327911057483599348658563556053263427144570377605897670539844502490549144579443074620955148880503292338643496864436695460020334164486531828311830050716023222680799260617705618178572588051384287460888826104410283812889527869771989282803033939949274072366829282953373546418290081411460070753994729253285807597325054242043417838097419143046813089296600200762756825930807272229072742881038144170825268895543601521521414897235792071083386925080881095553611619964343861640263749735864925020699212060738443408394193695202614455698132461081628085582741904280211859967393963334024362486939295289480661953814965715758420282204081431420447668482460253732579870616439762193544865307768028484912059910979242024632192297557581633757352603728535048326668118770936204255813364581059218834659837864742629624111316627832698023832305292340185821478703225494117655413688267768161907030348046609865697326125534888621038526009451648087152419171512439118720804947048282459280306352525540428547238913878480903611969986037996591806659600261137544701198229570675372792476574300702528914325942302213030812807329327632381485183618425897555426086983110792452653523265365373429045524008798244922584549274031374247422599076936205872890184846554900600585362975910973026056680389826160100134466347793464564389804866179632920714152698620106407368339377905019942650697781005881474444563153494511533363336932941427667990081026746151000420818272078755238519873710598940691679139376393694692905221397030466968316727733394400173451361911348672317109561423231880100464404346028915741922976873564658301772915491011285936666813817594354644240136553812866743081308972373065921784089955570616087309504401549607223919266138568749830668799762274486108410937246351060044948124858019219463666036231762314180273403769303907724294030281439109165562688287501703770943703179722642520895152875723272557845937145922856369928071114363567514136896777258668958728743927627912351418051191437304682007212301405273437179919467954998560917328420719215515598631344464020177561783354260531434660902208684960288064676249396754964555019211929879791714536438530369978790164677220234971842092426243552207651021704158875843120889234827002777341217986222335200961831007757284365060539134740111274618058998125829804014518157051336903897787758698619278806359976163036913984509198439897738812077195769544508657781908636401191876199943749667421292845247586796749859396982554663422729083211749888416889130101764754261504863142363150858958724180930071185307655387796307054193726706938199281750137859929504008200321578943581758452913078090975803098368868341428457761735267550553529378652774898353191405580947321472409374586502065695082286795878598094303902115671404899252736137613676985700677222713088468123006604184158651151557877174003388977514244486545903670550674347509274527919331691156550121759229739758106379619158840172210867969182228413679805951236367653855154606267663709960212312988437435806761011581992060562512452811385310846656745042728948477443988345883561350810594561944855275582246045468912483379488249670806532808421240945806594161564941819970193875332195305113935046781933588706052561551544962342969897091619958581112950873048378040081706628523120250672717042073301679997823738830991517457328762148315915731755325350196945800339359810033472702127162802115446255277204532199170912064035745697691181907050987573219281144787480359401143879854760274628539022544995591538518055374140046002041732288437668477943148848815666232623039152948418202036193140837462851845892996803148777410439932147335028840971992211251431501606128018011200318006620240727862257759379475349890511162348680664004067289319279750618330510002989151168312973595765196271788115595057517296991873666038085908770437319592923927431355954198056060080860566485986485338079178092006536292300042181173850423001638966036121665979635399385563989117924898822241308596298886362106284111698869625079965973194897462135041647252427443881566185604711623037046379486629253622198957177267519702383415629969807534095476859548980930268481142123604457894151772187878439532425178337011182033526585684408913250138443655032723245700353992741632202298718402324173984137289526004704586134148596684496622023185040752110484072982067088289830490238555679456489862208718213556347670217092583575700988373742572137412233958232855269408658190167912903700935467930042661196686296570051048050548216507181489279540134792763362539711409010039285870419331927279611769921749995909377687829445782872663681676364544434635527260136631741164814294420183450870024987983673755208700564552795606164893475150410706269780708098607402313164710976645304417190978390245336864148620080961280128042184343125459650944286768639308754194064958983092787452275698274105341138285846742037909726071811428187770051480786327913339822346435389163627445700316321440072766812779539348195499244308844997775058008629397457963139005981109114261317346860473116100179235253156775096880345444293447276115366904397184762145329462532756694595881113386798146255113631215390653999201943291218413213531612865627513931459389485474312531469100514312219708066084106633468252506923938451206479116978384586349475464566909161053172652834950237473674232849708757898471827736949210537933625344452092756874227936932027148033477724919018664070419969139794759281473318289960093323053452315711615554779409006728566001595699743792368018860276396088481048394730686610482442181519217447180276060451042280682978774925305819546004971572544260438723677846364731209086837523828258758315764694918754814816555887199838692129326393938913466076494036637916254575197792095575558068122903403867529940196586622649690688951648587177401799671968949023847223925506410389902429463820540353976288681031275914388532509401002807269891163270404107287670013609444798777353040150903153142089779587820055439939402377139645041943016061607444942117672230664062553677716221072734957819452767194006796977844563817722580918510570930600804421502827992930893011681171709000243666182269092948458026520835066631441775928818950455130760815723113489301718571949243351935725480459446295391471741054810952422389958881774910019120144749363326684545441032294275811125575742417060719969939183034728457129346073916875266785586261546522158373134523942495838911648458858609978650052338645164302099292755015354253503326750268580179928664631727633771512532189711502166087277631733027137901501143162985433993850666396098672301028059026618032117565591647176812815512698309263131321743498207776084497275343355488260776319263626514989886127638538859191177280820377800844882979844738435583849385648844413662976138853874708140187748316126278156811949130777921673969957900621071775320766304083784924136262771476646087683649273003269012268596525602184703547607451408434421341150241062568498983932191577151170400102122180212268624146034254766298617464051342556956183523481150111731382179515409256020999324838854897878172362026972061920782538758384200312274882461350822477326852804177501616273261645130791926690557822991333849042000813132741984196658189088913281527016048578560585731391647734852896399403185132773908198265198288044996821912126284634767364906439498661803991302308949871387645184604379046869546526743771080896474214161367334590385438393493501891330031968546797750705652333079842142879753989722045564851127153433950612330930172637143603958239492506376738914217414110203183635898500289267590128723168803697609080447005571651843767172019681241951971872190431104824860571128886413623173493274002642155216840475420717305107308355806359927399744680587517513527445820333918796336468512971412020426164499356406701568338622645324080052636513107887640989971260755704914904720468295264051981562766813647838839349413058707994396264779162618823652944304185446457390351206388540209708029167229124501803831689685996880583706721957438310594318814196344006763173673616250244764683654666780190306435111463277667398462322708918293271858040733964687308639178763947971327152731341093587248478103916737453310888777043676547290873147275802139813710674681824476489367926605594304249183349414173300637680356535682095439584378423299556646256518434565297306792122633074987658813991974895702304186358264972438175417489661415898945242459700041453158989179593869048283647029179872307794732929381933723061135895858455311125992262870630447435173707735470898658241771600929561646501827447353269293937626167595026179236861718136514964690882310819080627367022636598841695407601976752448397654086525010737774855717032516790320084178459043719559230381239698112565621484511474196448814986579980565292893373726444217416614094358023575274744490454635991707490569235369891626585646326365367526002960689646261306985761437548650009972308942449600142449026335430088951830217922695573675369146363692088108853617256231145901914976212180247400367766922919141019900531026819485147073752437456582748371432221009027077396452378069681821486403444174881486963228378947827488125163850871975962263943495137008268276850613413741995418214013758878313362650903860394139975758649673002015995850533548435888293646702966202708542477696313098828656446981472445254762503031476193029591991686312337286476918483512458105851915436834879025069168375785105503707028294435041973635859209124799317048971913226581275649245613683867681497530018847342340873744233518438636122623154505467309550168201532241033453738997292365631328817872755675383380281949574961692990618299708437623836932374325333878575107311830708883806069738814021173878629643404300069509182262171991500388342125644307258272595907407040201591880037848794621680450137041114188499406630429864103174947271184872527112188934728576190585145270789135300322564464514040039551173263553622440668817951744765336814405956736864297117424103860557830510648105264884987963974827394901973324657170928311814648368272029417433424502728465885004901549154052551924500174484087820232793093610725792022646653691015730547681759667557963933473578350030046300474785349890096080484802640590192712301141293137419629867160081454062791660398673407877715506225065409163643520613948042087756196939528076453174921297879466478230558672889167014873220593568534779794560557517710881621044030730835395632872850697609445506329676103809904469355346026502615802591920134875662637162224775850173169706293545683560125153876844743041563824256806403694075599752935307312538184411495591865263061778189495356756363320340063606793710022575762601663224687715292009416651008104201412934196492251721165567305190620800968978257569324071116251577986504300904579253107923840955388949300474699440709739221388606750213608438881142988403407666937061914803705747745385834712994910584111224320540604246509949965661978800902100895081583180079762528815872954608798615613124109646620992778458234678722991807247616280790374719820508423293590597423840426977681281517988564907236923060495830887355491934375346345548880513017884133911220903302724460732051050300725009284955082765474355756678156475376268447108566575651208176434065923193289122174442873732523431760370948757326188565580860341227583572867742265383436735093110555906773344786366452868137947968325825446153405556761980931071145592618130594157709497286908310626417434347172932224436744040328169016408923814979970865859185747234650303784618614636315851965979018022177997299269452542503675830847846096581142298640476012876066378282055277928050620087179600304090372755493376627980920789332914508549991302801412649976468149906488718279745628187770324698725753441780028801351756709388130435733722019538914779438876239264891784718436723930135027798372393579348162594777570699457666790931440984090404624562017915010760802716848129786816977315449447572833070221326087555649610646387288152708807965994940854685606763464653735411324202682152103313868848237908888365666969793326308126411874353720779092708267837960314040483884385724765460525575599153435334790244686443745448315829049666170575714238086843016577011126365138639450590339568575959840224176306298283420146196865933863907281268013468225616883226071760679366644345655605515507925568537192862308504611813128819604790669236444691835205702732946958314984132251790352174563007149376186597224383650318560442701725449941562559025711801315893122984175692500314507014108262494708499054347811368935958535940494371081733782466436845911020995704419997064127405650073667876388950075089263781446188216831899437781178368278138394650737695642295423604054720710766034658046529856681678519597120385931969572715546002205245687176494754180882913648610033950924652707540548521706773136472353760284152366443354811635995407433904629497471633783119058440627656624071422559010819695000804068465225655726980745299694451594130536041462958461174405422083628289932891262747061687277538500582289954177676196754502609259010342509132442951935091367739813838665242005952706449555109714729681609148704032179177033287844254149870156385378375234741053387250251466032564667118542211948579640778102104060426447094493793040090959103443510829141967776970618763316113500021073773897673733404545339292601525988526768950953722154314375982414615023963129939847884261062968182642920069891823549714947427863287782583438514281654321304690598388417777821914374053550924184541886857132979540864155372302283674291510294227890693031982385090763792576454570525826453474105982842250856641315346807756430825919422647973541832793016804014675822300512139038209503701747396294841393701949861217552544899389800328298996236547159225799560519724117573096387681067599812822125173521167738079348750201435891006700106373515487642884917153546779247748581669672838365513015770800113728796019765110607827039796731522618319505875990899848567808477350573456728599161261311534369109678466783853848873792553610343644215073105597659578642170969284676136361332510301650036453437450081481042357664754859483001811323192573678437143145304841388269466785252103756822870768108071477092097009003118341386305063827447148516364899473163108755756337714206259107601944915148143657534793909324298214991916977375377757599342749640327579868889968927551040270146835906041682538933638044025548680724723764848422340209119812450760792006251878777745359505160720946596203599829160424836808235090005410151404749826626190360411687809462935094666451282648393415724138359149875127409823086410710858290570283745646043767485502874408413515134266115186981756595937139304859016825387502988831745406861988165615206349604708268314587702465720466160570184704985905177601223524904985831934447117981209367282480691934161806930269871753909154293462192265960494705350524073695402926277893647598320778594611507052589502062686620607039271934005641514654429495448635204564720606233323577375677411133088490332723133120603592844154762576399472504998596188933465622634006345267803350191625678871676267629496630513374918677438841375808514077817564587790663049561758227684915221655220476554650209931294639707243849042896866319285990096558633967777874613122925430975636949732036231501977585136283355508610361521806203743299381033283593060710725335406865679752184649837969044028307653233634726401536938657306792863536523564722845947518104739108822664723995746652541029807876959553859835477022530785270875697694584083313059379879703196125513647647315414309540242848723110952624108066720815788036458592862946573123733580422848043618157676227333389337116423561086857935834927441537537191305016353420842579618754256368640572876171471172583771002754079134024448601719666888791137482695424122974319645166536971675504415936848159939369921916801080128256617943758985910991868382460583818383183921521589843466486265187536397245458272096228193993241128862350227946572818643919996675642873419939766492017845393422425759288167400037884080755442805702712409826765457900403973318558599229881133572936654044015412512069029447937464571889152722286850358590061466220320631160632110032421233078611227598320293812842460004293056987919461353834235849911996483841768383755140912239698309288196888680341665753399170533612752060127570253536734445211819806399202426187775121682928359397679197483572504599554167434179157612293735856874310628181525556367639497812332059435831911530827059053014741533785306545314204475974680529106846663380214448067820247663254110819752771333208449518782167720445386194142876360906492261965910618768788971502207693682736604165902728686620347770246920108072955734256734741033445376202013937680424091624168459336640537428417703889564964893542234589258480807340808527225520773709164441337345490728047424970086580653264713035105984696365500360236277783216790865530999836647561161451632486813723289146742716447077859773285404699215518831545870671885857282380712436865798772375819283980491522361897002119766154717426746862147614514504099903602276560083007887550271279609106278639877354340232366160484043408546859581411114420155253381458432995832301370187656384206715318300993273142872707027215453211403935616726746549109478322868510584643457372194282971489477007949672491468214533084216200220628007099448691331231944137804270423251963631542813330948478899884304597941537811316176716684407876430138631992144166945445111668808318896559709333252193794934971304625705152925012691422646718360529726176053501375401188013702837710129002195316395441682355483923471147722876768263095768793403113939917403598681921751072349968311669893992679788000269363182191768369526327863375566757620762923329159846739325954626312486980473132066383478735667648802938677595553290152998355713226288292147570957611499009051335100160186273339185745566932295569332745930550891564538031754718420818942180192275795618026547215626044495293879830482607365393091961205411958425847513504402993977817554601599907643642229031736347760440426952515585547235143014027186618946497718363003431972116840802923704238534544958362549734796828631418646883943565782011689911165411342942177729543759088249086492349446719213202731550832653475011181216911471788758729222455577783475867344660391618179281617767925986646296958867979469152996668198489405480868535670167785668059925122645487745121689625295750102880343481432045870845647278781995008349335157215031342410201621633059430955011468337757382165174809849724569007085851990918641567967025171424607576756298681791011465031154553766979641670456006735559254774685530763462052092772448856989386484228082238795904438744458086703473072920036482562837387100515148086162978159951720451140818814200121652311389642295162794117478289463582890518993602424399086493267456899760967327830383196506132759646471515227651809079541592312997501036033885590023367776584523869446437096088497558565736685375069137944098109080805484856586433965175318849608272519148517214062476202800162220244859394246493275834136509547476108437369970128407720194201883639682651306330450378793341541260785479977566571955377374533359079754026941244213010159543637960555526526768635146145375830821666657756795602729719320671850847486106870272124891361844229125388588300849618430184532799714921650564575600667231130617175062141404287745817403992233005763706259339674574917596172898708022475912567483702634340682612289906631464640977187495159570524597799557398878451802844832967233261316703122300843596478836529254478116811544036057682280285436330143683063037535116916854812407649275233921592010231134224432300640473010656828160826753086074316446785838093964609968638803283782892858603141838447281930070305355467409688505412161556200890641670391838023371495817413053365934505345915985965632458647041840520504019484250265218198456165799467060834074911467045665431014020593164371543236727512802328062067289029561157303759834519326678256379195740488912116535272365989789750441068373648245568806855904941278691640431600619963666541560907138332900607140508264686059540522145734647193616679490600463339474320331259209150172427361749522319733580630380731545433580022116024088617898904420171203171283163082272081595919767253935802438432681498017254028324288960454993008458529689530047414109196828056875905300366040775932191953779069519877589379255152660487569845521154602123169975612275296240844042130463316481616864892247637581210576278424250035059718199603022890653162548368312943436081454041014796195892512829893376919495021147927417961242634723006817640874272270712909092517545509189348310026847695653458113539268306677923539193170876477801179013516307085575710442516210341712560797413080280682094875216080449637059032215654854394128372529337152300162989947591655034691365338913500572955764016630866140233191622385657953384581877401139744121255037461007372736340988067062434499976022302730647759235893296613453062560467381022858179146393279949343578778135266127351921387452453168584948609179295568178776533323536976317913485219076080289849712488886540231300822310203760355888740414360998269177642104885127673862323705723605467880522963606428469704031050137929582809194879483806355969673626766315365689480315828109135413521205164464724939923475764084319288985648252369294522956840779725193264749176398410302997085194332726266553047476467787994777211326576069897384986351087944849459132420282810482849574888944021113561118409076202320734209243520782341921453678609394266616461263807888560773198599381976069490364484022398430758808280658013863547360578376063670823773729680229716817034464686586582651443428220511159744597246272858661963470522134969859172568224859917081444474639896319006684644842821252750975848281163057175844467085106730676761653902493362759844994305573041140001685757178424523135017990535423188392341777746863058903968659822619244330043542030159582697559091139762134995176327161105441362542575608995102860528022354117971321186034068952106044143290603398110155586026179382914841227182658491982478148009921466581397601464579883230827501152363316599843246889730408674465730511840495496316753008534219294136766949947347274966172155117151100608398867930072679499998822179180036082611198363682304879756499525929928837613622545383823420916941353309589964631592092396408675120841399987377898448985735321743026892618442474193961190039083031939210796519794038457716540473749268495276491422460451757367825413453771298826935768422238519381038254618338655238412622525657442165753050746664185068016515748982075579703082262282588058812069202690627169569551139365372877289235453299973747008509065144319056420438540333688195422264521062656532364945059617193123606093488165621211324504704726347294824551394368205691030547491450552270185847938652454480886830552792789260040590782163081362580035641096848669247189553113839533909047515462680702121597597545298818884336488328804917077598500333903917220914411570549015748738092405891711340461363967301026231950035918833402711051499903300292308519436872636542601118907415019605357103476269557585821901009619947847556107406700082101519080063294655619788060129472438823548124648603207901482299448827694774439225008353121168467459269289810468281469314141519316412411171507373436514346100026085475722767004281638569209914017164695956676007949017811337553719092480974344938270427182699577864937269331509764706699618408187678745418551868280896708548529197911589425589940364612160557640382736080407706578237589445324358227226974993817534137727264380624191971529311158630220450790673742285143849158763993716071332940822390729203609249133249079510639970411564258119671667623078727885845020536975164723920640380963961018871067728881128547585171659554378789718252815921354987287295060488177186156728608040585701677273900942892755788914340249389546559967289085695604734346741555853202060246119886083382583555825235524786411812012455292578157715085745307889189730692727481771423972407145918223919445576801974486978224691673456238240730507274548539612789647622815069866203850430059563057212941278001533181619788217811709238029017600315910060791636653279567167151032155173820217975212658930937647520042384096972192915769056409278621692364638600634863291209103242877701734749429786094948020011241501260748229502056887122995923162807856224200867827748253153472981574458226417491240059383658227364607910157893493944838769073939396519840955177847594496627960342991624921721309674999142152503487727897076679604323927926502006882439587182721518623412716308668246832965371020920456086761385738894185562684956980754982526910579113584569208540104616364363729811788570196933813334204521169534036446842522101235826132818716024191721304425644445137844488352409783575410278625792315042706239118359024461812489535460888810747913936433645042228128615523293192486388418148249226052334115830726160749262960693543215756101603272957190492881861183031879333162180184707545563950865218418030268525471625641745527094227057813043871912409433926118350831156669576195604343666799188924268704398300169144269691206171258389624652118706511360430279087709786741885744665600093503383637219816113077002597075855381725385293160670311784999821164073236192808464054424542932257916928964745225564536933723779545797437788681538746345927865443957194404703858127473183111568818958536070163508214420930112298347366554944098455737213623564369512456237389360675972719803027966348482086401286450640447015985523208685173706085129535605442246363532728567201080202751566499319187608216469262353927845464688763232510085619674492191594585115671312542821273722123253225278030199429843075221044686058780558938004337036661227268183695478876944894170005391754543282832940499895994974595091253824193235321987014918550204523567677905130723727398674912031096397453566498713401818713697685013991352709701035201853046362455953880404988654895167557433069692620906892630866676668703437657564266691771168744804791641784308424136223155234479852381663543388228830381010315109991773426686114881617717839183611340849607134920563926773229916890950366800605139170731465022213656574124460536805626963613666568973206046238334485009693687799851011526857585806799887397786848233357817240962874007084503264348128549594626454865114758440259446216538206800779316488017457385831267350238303009223770879769753483980182816940168575918375447800998859781787827654095097721177589246447419067730427529903130139631480899887622495698431845968885544313565773073077207999429685008628942258707243592178848785590534761118047002997564278739181322118729987202844821814323868929949389570160686612186066439911494242385617790064718428217121416484910277260779192427865350604316791016762482412542216825927152594277899918949648803860918137653174555451525412028278901672729258412248784924375627638818628053716056853420614439512688537752382671669664894971360288094442317009522116148014001936184745863033375089445855361401673827420907756144041457325201519395702326398697706828386719930519466163486526699718469294315120476822825435708903733690379018428361030470342131296096447783078513937933716941388493899788847512459017154892973811158489703301408229003347073768158503696914849464341198628764572118082699445436548314018932571888254755838568967639561665962252343434150119402053858440253192037400944049756754378187303339031259401552028548876827849338247019035243251456637726584257800987963268715036289991381582244166645649628869643358163140595991890329064921737629021025937646741538312708050415004373749540509138819155970451747890881625123498286490153079894897214826279287861212061099000246014506802782397073741757301295984602007623434698488449420650197199557941866377318959799823492412283638358960853887475302720671027945708630968057338276291804898005360587815689863375462690286377876003873927589578586858390424066183678492995250190510661264467302162445832232545703524223322700870607931395800817103136059930788072681368761280591277574601140280747985011570688492507744827338231003363740712613171915114985283034120844747817247057180983633382923073818104179220449125775214568981171257849700475285922712974115154924198995516844479874027571783551768213974906441256397631311245760551385032484848604852602002309133029351209836236733666242970413345607899945589448620939910682207776276832803057727657664671655706710090907553089867494154093278100489907680010299802310364821199941947640496282709314902710137351904098527500589686861946824372051097347209916898920598094317322593698464248745437050763046788563993142965637960670022829663705512367243464872296805579179135247479050037365560831550500116149401984656798433700571470434832823582304540707814187232893207049258343453094728605407971505625622487874332392250884411313303152331813019723584335455655375720958205709968724460599357766996603036546625365233313800563966646225123633830909685389215606003049367026844049193963868898378415796139334051134281520145941304973227161503900929401418085716266420532505476186120418436460926288907858443695802409797466359665941069981985276668415808053263287770680075427853820989365329180025735349563452676098636538917026541468177315790366804943350082943232072323579285443336131947474985999414570774361558944213716559644608043537826041798821637227594010250041053394635095115735711384125541051343992689799677989899063173081188862703579313665392302876575919496865829259001103407806338670776014055058121291537653993444238992293911949470612461841016527785408430662308665929679756024549980274513086613836010797517568435778203441636777941671339914227739835441787048758556361609366704291667067714801816826173233256096116548282072233360168221233201114998996536804081934959893584584890019800988480757710944695375394228250242662293318132853267036957432766658574188645192205351758065090722864844019202423716473705786826179809476148518187992577575024507193015843873682500265513567075471541693664262299833761192365280547850215023634862440376455015453121653404210027243287271060149240401067820038601937301161702084050703313491150753803522598383744517260027206984012384067928113803500744977790060381717136520313609835645377116004350706613287976113521944120510148973309678649019389572285756740229433626264430909550065438895777566561926335910740858809706870564024609500469733025213624422977743184732122816555336467561278728524834822699614852539504562471837043491344175258772870853774731999117661017182930094778771222220672222330919357708109835079733444842840029287337999011086093995736256420902361728709219853136421794293103807415110029600002969582176288015179951103936866001687980620743286109372619342339628786391593016139701303614757836337189283825681064564351872764480769960012255414715856519329156322059801439154214715056016711395058736600597557980470763949097583848691846742070584589775393717677628522817192785177659278730031423284701772212813947754394313989030142681259590485005514340269568597204852946241534090258057644017684494492664981995973577186062433359148641417984112137519776872594966372889814416337701168663243674968363639915101046066842027886953106223518213240233556850416001439223913630441619447485687961462754666491064104710328872811142467030686781383006233563486684458650120849903854150644027102156362820449996801791470927276246651685577435596562700314555157906349459648371682122500472482830175315671877473669255506652209490008823090186542365924540339372081511045283319444908830088081839887203646683884960558330071208058143519598085803392520007756071577555098529409277197369848442409644618900474894722223284036347964795627628645044319515986786970111657148567329437388656727293320134157720034082710563607465181096630938963432971818344943342214263874336204808527778047950161893198655095460768490763020235979454073711562978150118343791706187057442619613337843406242092217023045909425254409247673101290748374004423283740377576307789178052690345686404262298491707767335007796143684060397034824961780049800580209802947129120259493353822553538695327064536437949443121106813231012361497116210122277604807608990228438823421540959525496085566606543878182446247530630462619203430046473076594584475362185137840207684988866072835690534411039514173634843438536362519645500447885823668601676039769008878571400857522617938234278522023530022058774935806365251728899971585531629372196390394631308160041636713074443951708298086087639455057483034849612538753272111006851008799936107703850909870470784442386861100899923763795486343008735895266013740948014910677296320091804311454104751654719031466408768695611519620522604652295032943274785806194732602319894841246804587854112888848480222405722727369391277682742707985206396999765155492710297271434948471330111101364087656060941095960234768196998222391879876575661904013346556156136630880307000761094594601464524651424742502018933197023956438578571852231857405656111504705986946348415983393232797517379547212087314003569834411586815230525115935745632496124006684370741149444316249712204966958261604485626601145151651216817702966171370356843949734855417049505150936699685108566353998299226557764320229962068518993397676913304542523399200480702453189492757405288909569480078637871814557962383921243784709726766287104499912588236234210434001081352193252780923354536111355817044363644529163431783364072321689275925950858136729318530943761601240840287256704838728113833904617599514393540164896532449405275208020652357055037363120738699049943741610476171275898193860191473459234187068605453407606647154489700628168586510795538323945697843553796052867264236348990196667727175705195466693695343784238228703253322973926349992728815566104138363324500619904451449182741814333287696800603553491815950945762738753356357205640702819224294127489986090801041162783349798834658337395194691285472731073169598313255468342844420979246913283210037377584196000226048627757922807539366452439145341909649891220499437176017481281905223203413668790388463750768915209052766065132677506057519268398348305398377686866324580924723911792536979028496386671195968199807153377183161034769907232536696407437958069497166989135465599192183768025910501452178850575911251431077224817052343251639763747060484658071721806180801246930923585664082848697999813577376555919487059599523247106934399954890089073272213073018967352186462434007534546953887802869336485298849090033968361828171134493735354419599030816361340353861338695683670900379035653528895956620159292729248959994799579874375686829364218963452019572472765417499937554863989547875659933061985694087555013437269757727505057480335594443541524600167329935053917152093089779048385048490301220448392939462209049389018400597881348679440496987180814332383944982514533466775705743202695997619504549600192210904336599347191008315589020978779075274523870778412848742213034694239157517864831350953880093707617195129441019952435665053434792725885287350204269335636315311190351496892603064255041203756634299705383676342023649662584894885773845947501996612087579245577739916513146627573007121519593522973757997756375399977129167235116593711625220188158658133087523334450406814569986841000975633623866859245591170310732732617866586551416673153561325172607787618122297268542059072377624889316591643665436021618749039520914064295848115487563071748767233137957609638686721697597198237897012700771802665632617346803430446081311221003139978045851210431500050445434832850739085450123380913424489930156303563325083376841578544447478282001792161294915006452180938084448480474122020582876663366496275175341025537335381488348900564134095931155176862281408908690384821801077083621258489564233480624957523160159369816121609722680725778063087162286153096517169031862341490829815356330092840121278269861388068799520699493330723414398786672571784804158661606004784552284775032500584608729044535310072678325574619198854266586301508738172778968934169209408692030017141286947093620476028953836453161114416277865584060863076241359624216667100815697555266848883196279982892491748551578297177547086694179938564828564018279268765666822913370131755772379633198314151468166269305340935564304448194833667389242242579713966672985193558567161693001994737548624444412811625984874485305449978142067732323377313703830180966118101322432149088034643973468102008424640925305316423164006312744720609967180756978110687788363394616222097137202773300756883742394054195950580491642453799032326198751606360385409141310567392731991992231603470560135360038831907232740546612879418208806669677593815443842555841273789578861879190639971414613288652667198859212600904975522902990585258422255882406909780322738108431679147024315753210585378087266692987225470055611195966637465327411555436730817211486839297524426692596084350006194344496422594329073643849999474038014012452712454909619184780259892176013529813423462143951446124061954394267109965488583016283248918483705400561035678968851203936914870872103719919660358032251287519750962829654171223423814524998593108507491730345247385977844986391218725487007041331698697266578155618081888225990671865053429335247688023766944860767712587487629101549323526996670156980567594065661385402328332829418370429279932913877873654104425502182980070942112988199613484635602222109121426958641290187669884984937572592080708808278035954066213108189427156926675304859498925955385755332119449073836132228435704166709009742643311064761640500816230321531465050890397180430148121312296863778523454818204946141568796963782562953237326780715998957035405379046939109816980501978083534398337518293626790872323650172076131670719224466333016401330358773707250691682182922629613256460059843200346930207526496724337362313671996127835847618512928909623029342391194776228210156822884762286030651434446733080537219087388979207298857022166074355815055176091000454796864977729737149336527669609638739141398499172795667715237427236240102503414652052988776561665160948586793665400785769692802124009698028299214484654670668036455941688566825878894140309441762875108224980151848553039708437034354713133873391989174902269594615861668747713015245322726919839406121096241155098562112367204804524759487319055742435867797834681051183757718193758651543457542688866394294004582114421222527055825344958971333357890994842781979392711031545815377748710151586309732107510665860043193083011095813388567889459289870685103174258297084780550606487138866930679252132728792608791573909842378486456873963427993577724897318719070877080353069848823749240489138762720350803565156554899019284915384082970557640636949359040705394285474660145847818745519831720500528431786215322528773361168418732554624602445841459009797393567584016283773824684672185341880183896874838499754885654332413419009884729606945738469121491296185230895609185241694943141128968124322791584407222171579636930739262826229307450804489281202701970050667016885929459542594973484225944518914669819468838423220683730019541284362120057728012549154854344308234064789215171500127942371878711843523109866516918377310700238192056828959973429638936099091827129099403649855308509002574184965825316055735663137949875053318174622576483742656333650177908475495068604624748592375987675964374756565050483819638476681203925235235893458931547155242865417335499921762820538962302567446362972541643291648629328093284792492603195354411798704873844081385837584391712129820508201912038250533918414665784130400534519134770703776400290832550898044650492607678088279840276223857249319986739389047299093860724460624684141349663905490893555537342446290725584611333964310789841455392897835031379410022128012747806570612459849128982665946619668890162787643929137596106992254790832573663344150842462926786514916932185940004073859391863544511729637989184220270317575491987899337718984138547054830795578900342272139500651408068413985944084228780691471505345116004264567894694121555305518111848259605813220672654462987235198838217593872783238652740577177302002112811096769345979590016069184604369117188518339905929449715309106542901228352289362936962383099733192478130439480597677339727992885411045115214347347126397563140775094175680851743768013861474319281625148166237600129080926051674292157685914523215081300163204716610715476711124405826610261694000713515020251099606795120582391676802689433564625102082570487861818586749474852961564094645918064475809086831270029349591978397728781035032470439835585649332581880423229872642861835814359134647405587853465059128684072007545889934816358642710944142816913890332166020376999359475403860159185777762793528790716347824152399122728919615994583714987741358117161193173820957497332394885288769815818892596120708156917999772530489062962362507717937404950506898243527361200911700115616162631716303965328892752622959895595215472009949413969395196458585948586945486711133642468314749369597252478255859327721334611908360128272126626493421124102296799170979804802844171753549326600005963046428868003945848134195586419876797071059908558600893808570719332879614301197842930859531900206590334602605592198528442041714329818812033875989877777676739344514461517863415075994838862283010714629599958050746999605251255066188239942161209947717767251575372324710189884440623160217835052901867153330081697675762863685334106745568362623632534550845610424656042196127270817533338364924146396262128836451017864930133635618968424799150641029894438014212847941716717140088316062425357294612255566312271878630589241183439372327788509171132964346282416668014891373275941029611648417254043407482896104192292206804062054455301749619820441443853974822745076512117212375706555339790990693077474561174657926536323210118987738912865225487304169495156763259427944897960865373559622149434153129047802715409286227061190650385813269498796437043276004913336597511659791996401373115133449031697124278571389811586248183015431786657027928129310175359627271568211479409462861105604022907994087254258629036554455268143906558990693765528101308213969784404143665845515899550517445702155306615074288476994143174766870405060841325962180105526598548056860173926112958746840349954928448452486728558474299474979840478511189415508215142554525512073028611501452345394361008599499745980364195969194211642242354696155799231785433311205184737037517639485557337919395829920786178889598242450491203313500113821944459607454882489961547648777071272016824887134867873133644072923752096053323112439716637719964262110061637088740200306606782253648294032526632985238970150154718092966195181516799969177399659365646448227678271381653892478627651442720047989360633082589208117354404631228905425118672623419243503148515482699205015107139744549205151254445807242156516672393052856720773359650704413575373051820071990580231195959809987317062346975983422229889155455728743972045781053534936464239885521171917552431820875162589600105161610381491112576239850818658828350293868230660609804017557194802318716357158271312137860886686271873890206736664377530954949892069069166101901040797476489853653624196434122396238872168486191866776866915744377344588704588031752119143778978932338359270429122501408440664126662132942395869484204711066364394449895983409687563601283778820572912152496500578953184777781317734603911678293134540324254993972246938494846709101089242460517220700438480472705486868369468332846463515303647160501812580982257623245572856847735037841226797958325140557524340620423506322031909887325917082625534161882904998247921549832041558227623801385764784571437139288929881063645635115304352174004318609691031692532040997510732925502746978517128584538022760201258546405644559345958717427633837128045180147187253295704722756565765452700600363355388666219598649940951642126928481104754776698157685835771292423721021154893948523836411444028183122833425006926760791121042181063321501830794866511011772333977994418149586145800863594597626809601653336869316040270845424007560761258192703644340917093756818723850559835786082413233830906273621945707080652838215066664104003043167476543594518686722496535137458040505627763855396781621716539126106698926063520156430046573825999975641386337828987349454459903181200266900566097736502676940474285565729760615681647831209972385781999004824403611102187893609156723339167043772454544505721525051160663589854946749022394399946012509655219589768677300712846278086425809312094922003541390315219950940307133469623317076542036952529554329879818518086828544908663641796967408240025567983385722821541886933457356579624727787637364267642008332338791562405603360862639338285270667684137524051095252377510753877509397640933476909960742277529107348011781635334342039503618387468231555162522249986400580243740243525638293437622919873415932468870420333210151635120700354422997685931181610080750870980110823997159760743249533427753300980969912960685274100179604909704999477926662644147593026514472832303707004566393479892684038451170809039123337768830317344130444698514407980084944427820998041173842203921796564789222334489618048613739091416311954224599002139071929290784813110770470521050399000954593564219453031441859601908394757423514861059994762822027772345593652047451557538717400727073264874421614596437319239069913528886509255932299745461459927874640187596661989664057555817979248586963597730621318417764394659072220432372698457274372470829007274151890031974985561095872433543668993610031699658036275815351019973551082721506799388742264757209804795862594961715112996276080328810610348066058665040504949200511093986765270605526774860616290825725094213555516194609650415060888157062568457784638955474173710123912416515892287738019348671722898957575906835607846741472824985367038609957379695164572594175672924256584682328627123740848134610803289240968813850490443196715144962819688298310604777700981868283266943249230036631835276660582912031571207510431517255012796156614875946161674530073637524996607024160604450314682536922273441059564136091156400972564538121216913649278050564030204406763149251915676439161497804487757967004305363441263807480312333878886783896572437133392207872912781562273791472296765982047458800900281396888646109366886307907173375227707073065052766295622232021273643104491041337661186683338861188350314971146346151820338184579681284595520533000868729998039887101196747103451364233864378409768481641110916993198212589014926273506938720921908608968390761241382848947798697110846325535248350916734146612588902976004070795737458870518270740261298822143329772741050422215039806253682130090360446613649332653555102604844137049548241650689318684419240818248153594326184385702444646391742822378834169177949441361709804261154690418003842534990276543897140185710340148888242753197907526583639566949697719896480207759459781096283297984271730979665437877920409805584561723791012048955993340166850927768507451345820989897269181502756008457318197022246709550880230892049328010514743894209651570111909311832163361168642547116980842027055646978994238565306706007080454463681531123173806416305479398703820436507654897656555014453224245829523820309508086620944885237427645627009521876635539703602291599625598494801422863619769553082819913930914409204028510656300156212765660616860519992347994681975616941433976926239196317996071882598166683876352298329692025340803341669077768340571262688388299774918490274205738100155176302867449111005737219496404053026745589509970371929888837728335603011050253084511891809696832395175736241537841171444813543971589269894112579245051645486363806904727752578238005104063382181133561030266104134754435171156531614270919266515899637860046769613310912926233298775743303457568635301616482997898535921618909925079068302560615265055219110011047022144365143366659925624913035903237829460389740279211850276157805227865164990596159685188487719173282097612227570559762033610549356935342573280342226412868257570441659749658495457683134930739952352438448515468853896106376556172708808059232648776056495904824248312195507594281867064174000135742471544111020507850546503592177100648041788835991704909381380958817234253027844186817430983035700048513622138263743902442496897800453861510621747151271666202623146003966025039776970441286679566839304608469298548269819657783730875296352591537957322837117353519627612763429389964995933815205170044949617123392713266351422652158213227846406092439367095675055412885018484012584622901790063724458745105251390680544360230959852644144343132366005706428240670509688093240339525913064022112266402336498086748324153405785661638087398599376040546097447062930964217296319105081838484972573915017972029195839098610787916881628717778006806444846645886802998028214335134524834293378609465185283569245368075268042835032889266085217808462115643370444588633343422820247820579304464074712578060609037246672892390588935521012733510335158692795916634505576259937267631760335069194645000537842450137534888616096763150877318646745796207026239068840785543013791916101517940521156520361880240434030616332256975362305665717119168884684327296972578116390044892880087707405511794827292025905773894397862342094339396013094582083500190281252714904820849333198214590864456618251428101024478228620763907734604222398457463252192878388931947428064212688201989289313974795187453495228410194072313111447773736719578899863131991952995566719572864642462584132041706195525233279274949601637305266559761213319305774220715006451227496034463874236750879790509899737557563020994163528609502082392180208330498804396018970185108061980683213518398884663710247941981984504787070878955160838745939010489461077445065690711565374367280094843480683641999142032530760246063541287814001760627452192142405119604058554436960733616842942176029211470987789604323330791336184405389602236854083390417504696148944808516305908018083650005283661606904110119696373959154203102577325814968681655712774570808182777003524674109902243626247931585919452346438153468339409941968759755358494539071231546542220043386781360847735595581264610635830430367359613661902949869442352238425271167945000319800623552345444045771657190762870603628870491947465970746894811470354121617202646292913491094097689482819796035160892085495645386550996264367047138498688104819252051641978037055699129584561274554328870112237664016479497809678074062128028364737286018866711174280311632871879295661153187528197120565740117869452982876633593635636372518020938648453876517622252045595426734967096742034040518761283304384253256379923609839456192312639605231218471646299847952222738277062081577430639047022365881014252394490708914297212913767819048764936242654441430659837226617844952707862096252183867645033793398833890016715247684414943760641148032554502348036752371709498587132604550106869914747807478026793984610376736427701844989596305971408170000324433889418943391138971032568389263797853324779309173959240970168867120177421143436723654617872267325580642848308235730416465768357232090384166613346878925794476446359530781270864520074804796907682300830760082320108867964864420677867267029265149991558302749263607058873781307228972905161973835759510494813091936925713131214501995993894005029005869839461386153611451795930918342826861049953111689618696629477447141189482481961638707746361784227942887757112482135260151482535290263640762339655319739087248125029334470537588777191517733589598407746663698002026292785268655700388843977959127838143643201489929541744325184275522509074553341899193956464932657712981134103155642068522002858726581512508769373388765538293646753559656587129882980952283164209592399939549640857172559937309894180898233591759254881970330040507981600474144434962898219231879450210651511082870817892949804628699116326630462030231271840089503599387660677250556709037254917604902827041238085025663198455806652297326469726448362159616391588542386443387879373632723061837092851110149946988055539961861861518892551116481467193143816082639321225741376611021603312524857746287320719018632715981276962781170877779683157641227968608252670087631156201756278303659678123746903695543763986527118016246157810135453488040140447189093920570241374404579592601700888319316220385460118987284525857164406033925779555454966037305204575249875980209686363716663254067943166110980602066279784725414299737234824453155327318706329778165559072686761247965863720478159928498626369092742370111269494961044130300706104739000748721029818905578789924798042874594920356918746294704662462590954526088968672033207049317559219891869178224393982834793655935592028560751466253097525281739951889808848500656805285607458499150003262749895318058497587571782312080838950975748895474675506093938569344516790506259794372646352477532766900696450153815200859729676757037569669932814117018703327298298532599933152488908421213923398674010887708868615247408812833464748942902609841404173532421632588530539183759316897309752214778239762650208642518671576365726053652992606931580909080081342555280717912571317426761207387861976806823963686699856314158070056939357160319664989538513288522688764504607628020462566463074193284284625332177446408214420216575599170011282205240140637343276942994796782356605025761341432795272240303449310382365574742912286614271927428444516367041068948462529600217530287800289291711947311068710041969408633433412112354192103599679294443720787470547585231185321247934671438420364450455403486937192732094869442492611315082641916917234393596925974606189893640401471318537877956813537246381597808956145716769504329585908923162709662427734036794564361257055771254918600500706946729146450667744036789869542957613653414246379900365311296912804965778730566984282021127015827151049669423237948256558558092989190826632030768004652636933816342984197784560733197469518387808954014272872312726104312455074190516017615126906120247972438440576217965121512813298225862593667258731595075002159633988019526450144138695086415447067056705253095578829913003307133737491910538905983429184385871101926865948425505824825334956460022972456606418549607580972835427885422869391552745338008911122586398463268753675109699179213580001972369087410398217739601829905045254497846751951356770794428505264034837579023394037571447231412626831488708586659633805785428821340034648687328858452854478676549432587161895982021678749933520238941427758957695529049217135128953850195667291101410548782587724439130430771487097555379020940119229362969299636943212699267621625937791615531409951821323842696535797973661395550091322530276897314884175912935544268706077159754565164958929013022065361033287981748470895783415996539981989361128079541356315793939840048292924400942616485968869057497838089397436721971832907617726902081391743300243991628484866055723140442384491452556689157790059771264519483378230596804994164671380355531363744203748952025870119692418010999628014159255110249606536816073076754841014526466186670401032624260708878191156091787428864608271120827502872268051022176751635353242529013458223217687415585085645311944625803641153427384987871605511079104273402980251799095339183140727278436392652438390714465030695450704065026854746907075286763724331206107882850846700777061576510908716801815603107125691412106011207454405238517694993551334225832240990839122210144618763299652159202854842337754951489193797785963189966532072100792705151052872781514586011717505158556175329220738904429080002564586702862075833618521793931892015194988593263262316097624900224880454932860876148540958991582817067064831609987073823255652421593885452170274098045700037042637693089427917972505055020504302376696339890926047715929564779355533952044181222177827610911648184146763115798157237837206665445870810513487008212050614031910717027223035980497986112322815548421721920089129778891578809780959127642706672312716657209316159915651721495675528782857257130570471875075708456648889877971490150999471038793268593421786618185317600108998479062318427701817975070498996121870852456707570299977277004567564344242423039525019105835064939168236751023774832269025806051125748791966365437006786868312092712186525103040302265746872658851988687099665098139536925918750702717211828168249023208293715881947430684183208388976559916386097482458224882225974623911480176295668696129604839320549762746072960689539581202065340068910751194888041873846061067176754305949328699371244108723585469536684171956736395785215660758550373619921730720546853398554517590523650524690329776575845481879594196105646483473100698316325511176512560235416518745654167550137126220521170000536586383439920101087432173238116347100965542892479611293966014707798881530378539683129333334165349344128168462973948627827557887920272885328937161212744744731271238887291899673025044183478971044398533058926428623368903077931142578628489216378410825646912736238169933498669276309280501784828795801334109906220664899265888854685671220177959508121359468966519011864930699625924557279800849935595342446955811087208615143940775667892405592861741346316124554686859027744542398294271975409747769595886772100487483729917375258728381292150840273340030589059350921002050710868973599572160505588858117946870863701199850171646631938618448444562834195155419128195418856811566160676846538947368338118817929640947756317464237077533275984703846502756740950424446595163036671661747273605116906037399865164507318605696005996776746320773786682857123684458838359119335328575649041279100386151021453103678284403490274694002221010338459070140427617332398862058488016442580342437782844150060856538286329754980208279202632854133049919313445823373786273952154742463475807188898858227333452821713379389358537538628676306264319258848895842523277459792871654450638623397974787752349570013233457883503336557622322274487886631440362157104873633294566001298279120505337357234383485806416505071739103454027666066700790175721216737178375435476974116924563915286865142948285698719111048426132441551427965286386574051447680071809579450395144332471985385296991977710044102255409494447636203069827864574946045033330973735286836492504627901727418086209151435597220224237395826950580634441437832647453832056384838456937083412465863449878044819750459295072877773377700223652145139414055884391572510929220269897311428275410282127432930670932316727872325764574459547012872678502938942728965534501172256554979987611814880890392564301088466395619263257169000070227778293110168829148601938199897622773535387436068746680274055440236809921496921968477192455171328174706899865921958566170327800147230951889956466207686713430894652352666746957047891429720963438494295765331556114619094841402455720753371857406320275346734877823524034099115081527061811287398389828240381896703204417523017809073964098724579204664675141768160637676400212247779947276325085511505908553308856228877597495758814688856552386990486229357664970950368616600305608619048286450539755699407688805211334743523611106756225071841121745131479452290228103915461178939971363221805088682919211031258368821643115258959922502362613760156100185488755621611879288826641538640563967575139325915228038222986294573584262858303508486057524501179631439753597230901417134633564069105850751401415869707909649425793869368114258095353064244902111306962238872881051928599881788436126837292686181122810702153022001198949341364792188365599042385038580236059026748425815747625361120359608801728594498855644040521031335118788651166624563844981535195768549942804505708135103688670336560609859776652060210929600662431805451700072209295447098288628973372497028045098416075717661147551379398442542105583932682162871109975473249553793413248801294694523426285110556742295619788947578128061585992880549808022628063876632406527361873367405641544090945027588160022296912771917692206396810481346219710463918586359708402163441076387756412623939976284093970976489834817343983027002398155286510504034964076569468370432046370631855180371258691075651063052609205503841581639059888410538845339383333781587149387533114585767784344473386948500735738823490186491737584133217994213962514493281767661228860927305671633646076716573069475577939467342349021405161758122724080922011100543689955582129227905829106117527095685935009058759833732703744549902363497075210401003853998053722189820263173688789805199620742172210259822869425117751863915892603527827325178565375610453146591923420330805919790727521899570191583157873014994353326048232489778154582420942879852612622776565670777197394481404950179186065862661093854570991809012466588353864868742245085753971734082648184389606349967173371057521849299790812581212305934076037001816613070034994128854455437970758857017911982239171086811465795234619752350412797168090439602114552594839058339144011633048375321369758738784773863599626738512492958931161791990239376022477579856795204395592170345037481739917017892880094235748257349318939173622942662137398551414043873840255302929909808356124627991336885761615748593194855538791033021784828795461625356081851600546471528370695892271947840216797434914860493327449512605819634553381326944235668572831882325109951252469907632140369297297520898181880888062597688790908736323906833576317158736326159675490215817426375522311255776631308886351073501989109407912082150715913686480536613393419768498274005652071688865195584076402891041277029380279843311995989436874173527115538262225002122611450780873780146094782556068652279200662867194238826054383772485914332060499318652516179695933046508615742317662485818123029550749782621043986548854865898661462194961580218080756726787663233548440250723157415894916545446328032931773044199160902605949503616996109154775931615039750290937302416410816509986832162053676604465545469707460066413607386738124130719203188998534063423005660153520051943176635780962394074369874472587352556548941408850018103534669781749122940603470092093949247633576554558878661220520945172508400755108295842112503174633016399435922705051454144721052775981175449732552053605118067029780232604415406222139626684441475984233469925307552547243031471630030004987568853439850496448330706950396473732550608462558122684464544185978398673423841929733440911992374026782035126863281792110932687151255489003293346301556676760492712069534930784293744117313827833837556699857547141329273035698058924496134091445587655310631774547070846134109357776337759541393171478253369384238661936466433934631385730139847719600745889321173726565116114359443778723568105649209546736962474768549773199769201983477826707187733450056139172979780667575041254312037228252126334027400217909367101329615168832834046727376225339057892600515721108186195444046590614261029134924396512755499073683118799808819506940038614055432520703278123909259198257346419023375395012235002494039405337925415242554554250844319199507621880918038397917973164936376262773685688190665102850120398082950330641089391770501706125372026389801144474119246278390797945795952184096390706020679098607141064376531139443065187511694178300704824617644370246397973491287199543601592065330760862981365099598976387934113794652984139202088323890603907125025595917415028373804173352698894099718510763230644231362302887235706695567601205091214635168888664471956577995197215813529193611168356773669759742341198052677395984144846241053229854565435251969059447970720502496019428975724882729029621154127865999443804615711769260192202321059581778254932869255572823521888291978719840775689820643092464255910502599119077876655804662377890141751800008447162148719881444719856227591612478140694209507837051279252685722245889427499868584603670719905183876688603859705895525833203463631884867063965200547225179254613269892549941993477569622172214567757972001109749542740121509810573409553612462367865799490943596257746732015110678120660372016695333667813537844315091133726220696131879899317241422075301585116014100026357783649624210524897697997721610944735816363652961166011465757260608060394926987881994037091108913578671121210382106343605198202990588232012420422482979621085905226126471093114142644172990406626264861383887080038832628315428625504259813490774943365723963863199397769259131358525750993823461720383886380062158568254931749916759657317599833085289155608358452842339132479321921555575731028446922164921938466216532520210087708867815836945743319218637152983178380482003235361584409291872021462697182040810927903721768726249445983906847424186383293022499673067138087552943659805704200710509134230984386627349854755512942090378969021242553039515610361203596311299932603715121615458968989009622802320498506216792064411502563488178443072788164663238009102342195789428947271275780266315748732359208295917118986222927135544051284326265373211539198699065277682680890785738316266939435822405716451407176448771143589884949849076879090147691959341563033312729866859834201708172113747515784861714071801979684909956256210680036019587006081360674080610431128807279241120930005090977433958917737569921773343916538445382109301904736277928155527372464604921701579670466446825044611950247891057777058797199312244427657580644581979845115048054319228750236375684586077861708534684054119920681691079922372905394834575357352969713012634914314473202424017111803603475602178802704709321336734669318027147390546098993116890470910929352691449331635563510480646349549985951003346797098454061604703017374013213384196924415445088317635518226923435287548869402778520857620113080903793523994255795174312287748574809910001707870426829858220926123850542081137815442622567996332808715874594722635972734876436011782608217721760199130278624130506101191075220796729108705428027861987086544644790887731749340727131951346508002919350806351002267545744153888862355840567074622331884683636396149652851583003720218782063097407703308484692052257356099330010070833573853865191755772114071213655059578311222404280097066237781375944577054014693757837654318789654027226276774209012861784961943758044508746932146172616499144212995858195246756128371007123823292728892595524152314498871681582835244546953766804247927698604834113937055650665538031211885485048939365070372186582253465486902639500298997154459650555948439523549254467632713027157015787876219925715579608999915980004844385318946342078612033093129093783504308761047890315706280275600054918903549017443038490854928313092217139648850914475084751605451070303240742537587868796609870580442737453213708030439013753831119965491595261273994639731176371108573043948188838316908635099699184230058606473028351656730940516499783682211512850606053533075156597426872066316097101527668477224941606001891276662870151441754335883204231380812771350922328065728837292850312076888133779202079874122992722887030217863110187075650132343220923613924886805471962573188294462036312621616566530670104918684174401106504627993986725166485959733873038843788636275756315677812955934887955204185551770561591260403306241321604574875541576970479033030211123490731148567776086825621269737166352264751066530278217441801374695507778301804914217407744791242452757795101052923508568757405851926648857017949708501667724243573588190516166750241574677876159038232876340556653437949457068568188270249259303445853701010940371034524651409815785426645953777667748461455253953848484364782633724377255510698344258187035624442035444048443355542644099209069873028570081181015459299127776643314551967501196669461666863822664036847334605030984164597524161251801142487662546115560604685281559059161440169050128436144355157288841988322223268553885223991226225777177158143147661493056181745380769728714305670192924010365929933192679361703833120993502474456436774618712278700047016270076979278375742281220923968893787063636536860707538586663934754672060277611324162024390104626473323487174600442627663643874467119782792344883636807450955768768418876041542877774886652404444929790003214428435656018930622837279363455805157749819217127603246344967732596039354186818334437662547560109777298429449211988442021342417764640402017602879467856765609208663547077961898882452767608771803723565240862615830059311159916227636451169820753016770191535093270534941832181552027237127235990760162613006422094363321513545504398359598064600594507952206920557637245616262404088696662545124715628912023535349237162317075451086953651779940984158118762011174677561729676259576581424526372970805803019517674976892005970973848414150383924020150632131425875055725183727241771766814770676718929093631709088028239581062995690457489203617283833370410688983462728802397963056990944726479332966613732945001602091654726157096189882579334330120898492750120542507724236881543965084018498105016555573280380805586040092586874759193017725418116753182904611794905551654720704569924204385531174112571782470760619436657597523958204589320319233628030362393496650457376710389681644120956746094517264689377397290695069180112781513161171539750104844346531143573963487011032427648292711318458224279846978295242533808228804696649511636426933397360536789189684227054890442092006735136140578083169690995588749111662180332065381181282999464070693439417766927241335516166167624145483500500867383367132272350274933607541538869974255285086631424029798537838706168839944303770060842501817203146062419493797653479429304207215688643130646033622037581066391010912565094403148001502448011454169150571119179114207920552962712736325559457425707288570000974099146486084213657422518460497966905104729282400352754511084799387457084882766241498191679804528838413156058344833278489393419743162160844601368601039157714927835293026955718319937579440679037165360343900728203687950965689781366567974859034907894227379723877654730566033094435476332098681893544606962714021701651163909595551421525980263596392305204153521041770407191302271144242811853384343466753911367762066950952545025972687668782561617462633413091643606891900459147898485886212298135264730489229938292554445019860608443088832149568845401744849373794609985530268683009612793299781790455800457321931987968411626218765311099520441339617039349481240300876133036049453986934909367987775585505094522663653465838680875237250163509383172843329336448698698889380352253285453934998968387453612898785875244457298193627097648963943722127893942766421492911306506826432322922317288000449861247212653798748219339965615388765690924499988185336328607344850417040275970954252546839953941560843887384904149622367229175300391721512024807474508229026087985896181406748132718080027737130783252933272348448082173467042125053089041831259287599692705567769018912521356212789687714592878313429294778754033912150048973499888694651718764868445487098485223199127854718380631677278855862912058727793448868689622848724864857560909972274463236326016595726670732725101680199628509811219881155344264058854085065903243635576057494385814890368214973396595956075899688376676406653372938239563413365317761784469968040839754471780921420963086144159840407750817315056843318788610606067979264947148439593036107181615241555038998030067686732834647714788331689976782843383592600430394225208039799370018574653175544532084058937901677434174162376337160766812675418137789774798575052059447427622038647978020037063156245453530120738964371552172179794366925457282936200514585157074888767297965513518295349801274942634728023739078052608804646067190772951361717015116435939019362686969463501639521167228102875917710863856826961432772112316874103904434814054871763122303863979335131366505091822940025621162466397211203310077695066361184841985306269927867251313245695423943903461566331628629531048403039761067714371053265023849226655806462247134496948016134790375239268358271719942901901186103539938224372310601255347561440915374653544761974648602046021895261840146204445249784126568123515536467580598384349998808293998144849363996778003349697862981107961217279762717849447949562867136359090025622008432316658332197076847708921281684817870549782246904275368930452613375879509412153784947933340596373385751544986025687673478599372452385148416338177345925177938008056830930888285248980638778365312464296841581703886194280692028718269191327700908671066801949575716429920247627092993149634138444740977109790450877266997480431853036139463907619710951608050661482191246500063690568882658471270494488511556400122244401401136226197013950201465085989796420958588747031888925436022820840822244142127636155547436655865108580852915158219598775340999359326047874474586178284534075390936586177146580010453922354760796591568399365783022241842637819502675618950337873666059790086759652854842563366878476663427518099229631673335691014879811745306940813821846574528794393882839117660934431179982083301904535729902294448533772138600372342502694303135889212503302939037474054081729087412323391024253358920690880306187212049949290889147481854573842603502321868073398763588600493799223217088847367810942508327153615917115986952316809899917969335547465357559493776871069870514125748680698491537413894810606777590463713145063076800893734079114259809511073928999194612157284198419303644069936409709830225389050516011148342130128970171714505189779369711933720766339428207475426115320261545892673792731063283455883025735159849056291735378053565799096583346937740993414963471396861763812223258832531909732599525354096611359563956687858990873743866548633202810922275695232542513685207702835765579523289222184969707132559927529049904207081355343931106686273289821560176931990208917584905160051701283920256858344701330922116265014863778620510050089631546620075267374914017902177529306029288208052993932960686024974169981663189088348759136030526158102763572785976790615295980484397457788487219494433426215127038994743091571279006140601322838554903558735403008063554071026260072483085560426931660058566381971089375469132086655407866107752725202362233360924044420859531092958130262666352785595467755284663980549837269128559740317439083004724518716386513602503242153531651677301188074157981679149573096919236013032326395654956050867967548671334970652920065683008211900951035905123788152179944083653929259961328982128089162890607346712408260713808222780602319899696860660978685053506544238085684762137890298694030404599706324351633226864760393064230017216761536937617829593937948698319564051333079046812036409018356581167400709694293146603396515142635999489798800932420323559888232104004021337176227953398263268884415023996877547989209223398411671514545709677099900997520503310681669621641669743174080459953158186997662051105974874985801912608984844190213356033850359015414823293194012108151974844775038995895984491344143861435843961298201927999314658086115463019758408133189687054189224940672095461125683727754623434354350680653369183227169692261187196078351761615879899706147008897698481380875910350781086786095738186200401410161658940987333870898942542523189281873825418912578296530201988563740424079153520669949425425673869256812230063068383273729732383141809331310810570083058234742843758667349555324784439472502107003661872511426626190286382918841021221030962697118576604255267181041171962517735220608630361936366810543362489470325605738560122739062914128565810407255976442408827596111836472698748265175778184967276749134140335304642478036971053604659659360227755039751086019782074747974251894664161687763288140300400634965617131583355895250444677281783919159747708768397232693065379340732484528692977278190865789072739090490871035222670636521691129443322866693273735536801315889071683014306856099579772134612472009690951963868449235911739961386145651451189989407565523138716143097454270992779696094545610154890430508717946644837904085388906134540141118265966220591262414782785244282461012875759700294548618193047385671570494078580389166059323888823126318911381129299676537604454016743417385058278988884303187976335538002033927028335198763394322871449109742394907200849031608008597170376575599928111488618903973820131455110432363059937250812217734635751860841572367836602071957833496112926422458289560938631096104730771115139924808681092779268307386992631284995551148947282058661571976251395046833224588711256641336696779398202597204409600105536034563917640354144747143062563564468875564453725005604689037155642705332545594392870550612137514313619057257714818575897124310297387428044325048755156971627738411207140790872291824503211102836973809461864239939088786198441925078232664108481985680861065643239278163842273634276500887433278496620184674075118722868518237645167949797063792229178931044296223045595405253912500712699754841887408853041155418177176762125409688359645005826679628656418787125932078837874798358993810902178574796729146559503272004709897629987302938506006450435187927402561133772342077560779729371148094013149866204398164988314084610561642526595843198712532253745683687641080603518396008102623149788305767327233966522735771482159194024536727016710585361980288992781952025286908913655551643352715234536097473949244827210303871804676449314417643952154125350902057705135531714072292858300223057122576907621342815589592037377839109007662373623731903049510542066591082265449534491805732139090318869889436664521692681762681320415695902123855746858165197469231135010734540554100608013758003572102114734009916065425578302981557332929366072675128189973639910422298753218522365501812087620266085813463227378379038767244300324810334671873378819541495874383921728295144290033330644686526565554256288746656635895949780658058717017239056783119363115378859851092933924278098849221968465315533536428820751635187298870278562631711963031118832237731269622124105878100849337799881948718919122667978392055804358822338737472387515283815171340424880313517743933854404810171257389356024061612914941380003269225225149270660013223606987582929067465432442000509598081592955168724435931859604113377838354407555795294068632317029547687072483270773183921853843872525425935556535470788726363678331281130130962931759401995388429247565650354684103627013065954765565183938875589518974603327337429672429802780181916272977527054088798245953573751415171299308130279120930071764995033432841069679361244516270018581988600249606446922903343380734985458053469861549154552138390423240456143741154241280753638417187744000185484180723393713588437651007588225483583816654344083250372768237144734207354074483418831232894516002993721548706031747568129515176903970310595737809538326023897893757567832822233214933595123322573563952063680363654831411695222214514315961406150316408240932215649200083528874011605834807202436708431905463806286910962920382225472642832405711178705345004741492388736351768179644726171646344630550229571278000229753501740681883479911586600290102397240174954764977392673400994073467296189087729684595841437805274138996505559354637674393232600633480400511552297151854990726834019593116206106806856028641508531010665105549203854701472190682870729836528762393854880692231876228767163308085204568628305054784716623020638063826136565180557889179312969773478776970046323488831824504585220350604455668429853349034606137084360359925278692528340965012695444569423805404078026789821911171808467017319813546929906966724359205993646332639146769278856979642471099653689844921027854905372521732880387312868201595444775246493839012606667158291423969409910845242097733114892305686922723533582678142970629261031830033301480764100249440267866135900333229283365772781839927169295309797745276002956832072202257232158203870867140198552050922875745471756677172573344728616045390127710609113759488496766062460240699893550893609875433473419876876565081889707011581026159701680971278668317353923413998615890974397470832747200761393172310049711325307241390151353231459567538981036446806250555883920232897656251599986663458490003110905895407847133124574158100634126569398901252297676138753577565008548995342530370836921733491946809861394797292270574969039313952735830129877528554600360968919833333620282413472820007021832318586995168848544141950966340230205607280927763684458935438185211350792016066221004857609013470397341868386081121032744701482745245243684911767752462427227580758053570010985565953321702363609913670171079682805044335506368434910270855214306011420219705112594020344941673069447533248619931299835683308495145887890587049515983125806296116070761545729576161393688092645976512923066822560304348014969644287971575096047934955506768339754626748270846632058265965470524766217385068814938751884678718375504458129152589510408946512138959591324211537786965734080098224764043356150722961268637205728934977909360822234568144176600587416693957788467043735502556323272168828310668982470252635530582828420828015022733048966143876492478540980885439828957176281858393301105270068853513601152309829701300069660665449719989596359087372824163607325121925031614756903160974650694297693672760597662707851836415317819032384552940931145952342698098975889732546726828684161630356831199559853309680155948661511509631278876094118725790616613842597722822212255349383899020801670698445880421828922973243865755742870173866697942902449407581002553887717683650615695579754133217148796117556616356392317245210385502150354762056386920328692171284788971321572711419238355687490843940189185479026243365395421772370445223123300124062740834364430513369693998290485636751731097493423929251216449096684621364557751535128383290179456426676881877824420469319502084710689590855116795502259736963709059708828103077879903918144205302616092304952382197391769597991326581591230964321747524072104001761163766689875499038823967192365975099547260613793140556884715736860990778238239359942635448657479059523752390063096718839452764281974947319776354384741000468858743384778061575390800290489677496147399001228437581889757793961348616491070937201315462644574542854404261319896374252969827732639848864612515697009787908074669685277172734687845833791196883332864922940832855364951292744199110610160849461574048164801990815033505022714377061970744592914095151939028637507459866276187281850584478621971535871733198849173943303607710097333025253978793024035888736893988583514527421458331949985522749852234902808414080558636792265578255184434705632347898487739849418501300827669947632243854544005853215040474532527069215419624673603020913357895386713703940001155470730761814822308553943996928258297671186120791157945783757256658637709641995977956264345894119846283464374149292058395189091569734064976510979963692943173270263750528006592909000409638050088747240401616816636234249982652631752076478984282745538851886072408923827318048587173223923642769297324404916129567400993883698758121075541412581282744825664646947376912939050584498843027699176384158778643582783567142427295873616646204109064203785597500157733814222191803763178048525820259035373075543789141212206655734357904886586219524730164663552165592356084900992441878483807248972963015116125676426420164960869659340957421814155757919497324674072107315718345238579717202854886227686036868318998086934622670574994685839483701441892752192542717237678321089565044816287186640208456529092835690946687100331798107241843028065436971042899747221107501297249878547718127735887556061475584857402978511736878364290500232940429024280828783617274354385338771458776799221796263835276997727579259295957430015123354724964281572088965883472999515887916598568926972701504365471968282458392128628628866850779619495190749938406687971530428327261796478587021873168827797260514191216946292819557805367376493878934243440599128324875263713593793599789213266732877959462941750520391650120589877918329539474345242566390896191586842914778007111981105785302687974331014590214505511077505032341499684893348801618583331592768510720780928482167138138638911051823078563760115172661021933075145303715397011263785986136129794833221462576257939559198170200854880282569967102810338757486487399486705627926840565412899110499488316327374648367381747996575344875731150604850852610705623014253307465906111361555726426117118918119242136562483708724205179470853975391217561727683836628880596921926202571025375806474738287653318536784848808039198139988281945837556961554871215543981868998368629522581680563687934920316986713880698784018793690363462693433436001535349712560988156916773043154979159577904580391904090601351952395342291688144095096588539908469955405307181567131730373486408255751534067348097120503755949724840298830664461610507714250845154524291414876516980873163284137559820485355474483606670623096597722851762582191862938723102743524355656238561364413905152392944377568614857968610264636575904229641427081778778637264846196582848702743690694687206821519572109609846028949794659635344146921289813853911207529393169293802084518753314956926951642717079908157086478169099531222998030687066823857301864560860719545592314696586903596659391773596589308287035642340579180165742891997419873752279646974050481271249509190133637847662771656728401525971038660473072063976397450179232347891756485861143701764458462597339981282166747859719222100846205405464357767046692417207511615880162053220648294981668938235476734559947990298868456859053914608861845395570987953269363671418557539085864938442246669497050782898295247624166535928835101783842926619545587800533661627464644850217619452531222912527936965482033061799061777278246169838066011967678646805234868349928711862292199435323966970268860165683023235425359609957348420773896555950268615990466672720492922791378544264416584070259184743528763502098876223810361783959904269988201766488588981559479745133876836712223999912511270188160620262372033134206755255081815970739509677659155536215235898221783077382921217079423490853915087220802141348448738386997655340322376853901459806078917649412250274275900820553987092849024503185698816106767850742034176903203620660103578705231672691251236448044213112080288733930851324250479159738176964719487912573696415581155771369492709104820851332405663047137979591484251487874637034525286453326337450935380548239970310909686425341020050965498899411125147245118911113132599763925662567784704967506493611656907246975026939300695197742637357423011451428156373721680455843280825051946985565639637834110314327324264414249421826962150346511925569013598494515989280025384834247327443708550755001576150700230312428654120269192518294447225540978782288586166091713359075920962705495709442199637148022675314090513954076741142159604909291966749543519306835790083963031606662870204811610137826789831916563245542625673421053799155862450872326853094604632302490824681272568916385691667052076079811531791315295704393702333993131681004118020824560392313692349280304765922479197713516039865573902869672153108239655259337275124770805418990227738999378508566898116978744954694851155158682930640759341181591004862908427735044425792591751079691562786668747169376694517111822726740079165803338022146046563264101026738622614006495264472126822525071810262002693301652091675560291644890937070681580919962387329975606390976023271709766601082035191334247655044431435956874115183814908408059183738997018315043866151893389925157128950338838104396000967200008393897120270587244101949675217602064732744651159576843527597960649128318175594237760126938417798984056164789152941441072795168790635769294306982331003712816457615091400534578746139285715515265278782869941055791017165004733890900228402875739629887088384433299296801894661832838651990701997609487851550647851974863261981876629757682571577568409013563061653151798426805166450696766685612267039751795208848695904970120103154542650304212843144296282583506417674601424717059235865233258704758848192335902627819459905869741964007466380127511814806210169335421402624397398465656053728019318029666479765223370536955426140332424082187427199003991101779109942775855684844638060038833277573785083849602378841744798006810105760189680016398811243046336342286111122887325787300564149670702442282426881411100193455675380332485374484091700434519128249793728379507254540040629780405913065755953910821263966845240924973568417539930981216726166676010267841478102564940538940988805078868752052635091953449875088803091420787668494607053038334405038888534009283696749430176529926017741645578691351772999763346537760042371503279045744236870674284020479078047080856696232587374897406995568660337429846296435453427145447152357019081443645804496306151184851523840348931543559029371884409016414599269867307621987409473710348554391173886564529316052172937950823825488901084536094240550490374125231694223260691925952453616526009730875048137133764359925906627178457339529978124123472195469903443802304411804205082980395360187102139656175771602530529283925831120656409776178647642838114238389157327018581718686296413285632417630986715441526991921763443082992938870621403187359881011694266491564389452987500073838126310774661440830846997023567759052781566504536410649098326461909238817394534115361957678365351769796214065420362809727825287669792162711919954265278253218662608136694048516800669561823166071644571652758319213572701680149965211991674203686414553421766414664715807831631861544720483445561759832086144658742128187359317635351978942666194836809657446245344820822654402866753014370916712134180913449152810987470618138292749607305864044269061897175689579628502327767477516261049761549989749053579339848708610007038631056158063201331960904768384330397400616952976454868736946149690910761556131420576744138259200334708172056583822708343801784155165442554308467530495448781896155157130197156627722124813616365646045152202522028300659715253326871629157687237825326383770634522198215504724907500563706158623750876821939984598080224983076836403271843848353916799298620974972051612143765474595222178740056638487056209017118288303006347129518913259351961694468514489318639772401887249901440271307424684863668560896488095938848033821276334616935483772759107683985549072109673167589077969672492186731947056830667996110290906343310747804055946219721069232292287423983993434417484737103859352728763882203494867087255850579272621681858931798821521038091006965071597328972680395360605544242284491636716964277782947579140283343473010611200033314788956694391814703571681177515417089114891929774405337496674596131935345126469078008224468014399468793000816760940987819836430652886270147891389811760842639295797782921463318507154894324986408047752106480717153926440875583941064451552181592430440790002529497320878947921287809749420381952505863597301135613121249348083081611577360417089588404735268399429965430801330063828909761226190877268543010433065055042529143207563002585322993879011912760965588349230625161878932020107074076227216785706950925579656570993611420473103347155421389144271294106080888476076578837551408616007787406634843590104397252320755842316116144653921632650229903720650394189332769735828239560238766276183500435845000275536143371213247197039884467766227283052554579318254665818701215191517918926150241871188570898093670242407565336944318906558982592272257285165348272950954907866745251909459747057293062486528058417226626000834786916609141231776643023887894104330014380963726021338233286588244192273980328732512213408070398192609756080719394815065923414090457385069956432217923234209660993421570910159611726815953722743424399383192086002121165865751489711800065240854723016470527535137674412362210241910189272925639898424848641414016219034011619833264076890880702893926584458533865514086392522943686712113245882647086247081415540101338417794840766546683861601409732914488811138609232790763179777534379821473735235250819037455704099334464557142273724081603060968921737995683146387630332019092497344326701918378509788013919027837849050525914176541630148540487639225770142552429532312141159089242062110790469393974428793823801581991289331068768044713020752934781916056500000373816977950919242749802653935484742410773566694248719480592541865032005199961724470967497841131159726879603019749782355548966159008485176475553606839700330237895962278506420552557465818881647030690145267092676892124069622284679708964541583497646634803742078898202225202830570627187687670494362621966050329226266138782009804814636969546385889068179389722418822686514765315530247368659546178739640985745254237801754981566196409160873435674179263106915684766952539483194757746385284916651770535922194215140930124956656422635738449756256250677833238829669434449157303292655945672937165822353443175188800560558979603336326433202772466214527390180944318030490583147299063898699352633713430719481213801622235683144201102325813178820352013454711618154174784915182962024283988865232069481206602887223204781821121326500647946423634592782956957258764740972558136672699606316366811953920525599359936944062279637625319823031825431059515481179820594498950530575102744709355052513922916994153283304926234379071986233960232834612916502648231942144181413841809931218738840837079292980179992243061010343080691845507149633825065653639770820630992708119662537392186033749642845863639218931817047134856216856261863822828614374532151797805411135058551715336985597583374082701646413948760942845171856864931041372498493077119508313919639080047914424857102345068896273446353796674048703996921184172552246640439118681698027458789595741238721971761599792728384264651035551476408178662238237086358043566313951018835376703305381784901162170421905423670879208328782934403177637921996283407392229573805591212935602930540846203679965820692578688203749392987583689328938896421896986506287290075066758950587257165548130716204792204895316255054126928310686657144006806369158050405380918135523982341848735672615607454989972719119068538254160107116466107012526300574906041658106936081108317120282280941293929795411677679669309454768618201171159975638106319008371731290292213481934444068762595766583282056347262245141351311304556009108926936538373093053689823192392291238935425371737058663200376297637143161563315064052975231990030425420656857045050405156123067227709957057498161944093414664984293923912567639243904345158204829360640282474652673962582047008816682966488260342154875730363067694208338332071041443144055883231890946549214538060407355006310901730103427083880132978773751377183580517632180371293533768606355180632158761531826235768398321461404315690376501393096493722712687294390557351093628413954061508852918833292069081276913445873212180217082276723913678113312140867609235461074981907235558357075994888613728895168747447335424012824362802601755671461091725370666204833365945074657349343074228105343529908474593610785153328777941019560857293630795474232501823188359718281589993879498892504298336141109973049259194241455236724642674943374398368748055623211952345619820084092145752747597807331787082855653120389417090171681073548004100647327245952180817237981156733286256499689373080191495032927372912396312101296645273507273425078130780851435298604837346652978089389557028331108441061581767772163740135308024651858079265033004010393540194256960282947324305689787710526950131883101002494122505365466751716008192348220583344748836431710335536591962563985901215573338528737570088817221809145035774842922105626172247755150757914149484520236360219994711967411184905592226841079274131122144850913102349694447400685925140847370406354478856426439418845618209796158210895683973654092501836189427497692555562159351914450993740167870657449300105452950933639025779515579899504003688098093844836775991835367807565087709911940429220439753131348428334681287919936599512432076640584918502209584470937602782582247615002336078654899128727201436842983550502940779175255511208977419940383425489662940979885975404695338036412680316058391996622017877494524985325323875314977694926328843891373356043849011665896645953152556634284814698522505632505617220889410234475495040161729852905075988697898739845364756932736497094694221463414546556030603216281224829374013940567815371573269090087949588689888601026706591124260941869490592826984910253639691994002956924134726800735518411143837053031632451081609213939904089381648507564946258656785794493026110111786612355719784779107048541993945902610623261180433585625815795516529715436216322036720993860928518719894559815629357185765804741789463882509310859014439799566330125184855744684284751456689422654150927375139462151765177716666621237334950986718201046479965063956291038763648432876049178205070198006436217673322800755088231719927883043253390395433071860334350676346350585887608641525088258233253866439202848893561973390451138116954458779290557060253722960061235925284211431539624360900927666609259628616554467227196697033582720613219415004673813642102979450601869959372709496153488956397281696298776339073749518311967825270335106842906166701171943642806687530010195638856868656478797812120380292583240381529065408444448014429271213384211241638086909528490480711185774285771476728058143338083642897510442071367792258902271572135955322543272997664447369214178231114959091909759527394224173499448212737297062044926188034105720976189209687659389928112353944997002992995064666805681108971199993499301463842462361020881073074425289573765072647402042122500273613115430094263590799308860177998413488747810991714420393251001180549112441439585352862358484529923502493006433207379445247115436492353880836913048173751399637657022621299396285013344610620746205032270660117772690338413182388880219195642509669905303884876375448314033398664897526923993654046168845428596986862817999927881591454351790611941805717867313445130854901642295027495342704035091426144799540554543776701779645374194222600082418840924708589009392278778522376245751994587584663102686925811982668666164055567505627521080206048368171305926132887367398798537758411374462082568804180586119540970382304243712162890743059248450541203572974277913332395743585201241555362734710507161099800923886241012278392850445227017125883132488446354583919423082560515488126761429776917064711029283198314469375809728306474858358005096436862009045220353736725291335807136017240598191743386726721396115073194467113956768348007579264570095468367752140690087911591369894012481950551145789080838795808744165585008495273905664859487472950225239963281647196962160833359603798948781012675842779957104273498678455794507478252581549769778034836434548356381881267274261347803792929672406096420675004637698705844616649503822915967172169287714304197496201911275697088747820362292726791956750264942927397872531521860516167149236305761811079465866965406668327955498536059359809501362750370292350110191829855087380497386472396273031232390754353299118364748493313528490569982966143787080484836446615134381372008907783717272476834960285037597487565848455465216744244197336277252851031962992360184483716183418200754043680111267784637513421078955622489169534694586669816143896177119348159065746767011517785921041191861758071768128161211315341283736342587273994583025110305892986858065221377244424804988128117868841484008375763667885435936245915288293977303293617384422142441141213503977209093121644043433457881590574196257307711697629732850156735338291764936698410154417870603630418290840447124766827878332240447532545428634543114401614524582026592407289268559067133418056662816288877722328519734765739143022951986691407122515910337222028230274864492531564497390387823924089004091382270509176260858211843780919487629778631679692868324704929462959524864814060495382630772661586455764856839688471169176802633273294398968774822053821813917369817393079779153378160258198297672851114841081550381355648769114475880185913092456463657790516582976803514297613055646257577508544795157255736080034831056335128896642934141526769178939840821059285871025919952761585258624721254026098581451932503928353834731319982535168136470813912185867852694606869881905345343670806938569571078485364942516615263905545648487195349167232143532337107904465476615587658797764074168553003965139439401052926166342057188651213875740686170811348748807459890879629030479464559819417836243480953966820485837341132618693804067924283756775945478222043411045824768858024309223573911888689299385091642951870792254229197962401205543571064757202510543113746427574433890773710338364479057320217353075544561673383103092468371632739052843093301005731339303272031891819148794809095903197748866083835155289987943512011730682707130600356742196784910389953130278494467674889259694463727475842649512279106926072623350455981605166383795055314560674274815510975852996841788389566572980545985087543180635275480730630256428662559634533665657990583279657616774976849166907302761484611713042655684234910645950066659300304019835858835204558662597732618248653541036925969872335525448815126096582368470111341844182318231142082590272742628008644009907360217429780251887386735248951040278951386786252520834966667226889074768041706352314898211937691083004682825767804916239987839684534423543929021740967165399309107804851854374432363712780876201573812266418128557103515374354322548447987680779035085413145332425545728557677382447652187286958171335825442600063612181979234297075202668919933742067223209130819948433241672510522467047678143900003141950907858832050260961022061495332868329000106626830158259742983634996583763852204885830211875130421996117628830555111651375390614479300433515269165353637852089469712362313238318736911164722045266313495472975138830067421262391440576569286212641652599725819995184675548808511811063917950766514806429752071753190372115613907949758617986676039465656435518856498728047270412680281814292425617675098849177133991856739392688282871550174625201372223860039680703587515032730885940634748132892512945465904330242990756372292372458260798572150901244245060760354063225283691807761547047491020598392246729677737313579793962315479628609720272048711596558023571500093364390812848873166418265623521442836165470084657565226853635665271733257229477261470017446743697532709282504979665198468848607947824355171346864757817017155223486249172502496027636921392276052858817573937212558190782948495762417977655319692292707627737655907725283698950931237197329813855641489444061659846539314745575398584385137347247823402313704673104405094655699445107987039222763341878373579697626385212346970806966832406070770776972576190280011379831502685971674161015722942842117076246258781058116792747316529874724841921622807613147585515421672064083589068850302421657434081512730613360317316179681038908682998527759801728551454972081641621806857503801208862980763008767813763741123044006566277371614403512801226789872541844383091264893146472026743430768211992670307309982404494329301245538207998408850843311717442630538320765883953374101629165664600302731951792613817788974192204380512393418790986948752023477644557418861726601241467874830825297545765833830530749621261189526491109888490814906403362754651881069516766737503207005834352903321460149872224201543025948405981604958201362933290329835622851705364555166959889852079343825964390548447004875346705334580674253386919296496764039879968889432413350089768285074966200105472643900354603171225962499064776799756661784950718468458899608522291054706697814050995024549973978765125313532441912506872093622842358263727318748785395168900026606986631111904533749416824386590239709421246407822784723915341113611728009096871518262655565694347499742491875072745063702002100045121404563583918423128900516798942028728285620019743924302949579100124083291695930364404226207744477343962517342459077218321378295285912538167824971194359954948915367157841036504423616338167050250183313949344860435626760385577843558983233056173736066720582058112789998432768377769523848504417350403413519501257766130545769146406341717731908908219570030033262876981774111219176459644932607830866593199474932016844765326470447809485441162390421142308804492864292286033044064127416471089920602920279362265803117111321993427471039488695724943443582780864877272211171346753453064983889932144053671317548283605732260052747687251370173162800597476948306158339963355535738815648644903171038894350745622406574084439804098893435910288860142076561313024926944551239645490139822921965747120838517237580724156896561329539423142132547829223266711781459417970099641659088784074539694946900931773807936661996373048592197257294592268280153332993804325330696073169185054651598523065764578963188650516790345161321006015136720534840298533136425465994994376458486876068242695889971130055378952311731285667112256868087207121342329004768168368310606841794557683684388066139608120320083195082706802953984480375562555880744939060154439947758190899900404004276678685922867716305162560204117763035765650087686093746749202414887216890584876438947605184071392843111031072349946923006879128573163881920429496265512245287447249550391356728115443319355141783848391452738207364055589561790530325957010044865179567933538245418430172625118335435048834476146638015738073703209815784967680419918577230833504310863501899148929710970487070242707689401484414706883607484845235867431564782277249067423131274053408977822854654963740144710125557292039818540831916027472388850644048460590758505514117737880380824680446430311336670347653007425638069005284359831727469779291302111125416360921679305980649225852758846548084979862410920555241056946122395114360666278130128007395899859998401052521402080731636477242805929339112316884127243841416240241145279861134858000092537907523974251618262771375509076749146861979679020481447524888095997605933221963837497996810128634419579221745489762263588003394387490691982502360634372365114756865275653489848618022172886111416527123736335927055941868400366772120498924227610940185924077176533675711567804338997829882248958771518983853319620650696446383626012986363870534324015585627393688160237312391595455096711700114204720641682807092200601482739077013853846811350342293232350383994858523504051865492123728098593057583529347562896356870887753421668518132389281613134509713224339124411953225271738278602895845629356405582827591847835564470222905643170464178979789049368361393878420397643011434818865982482896178940960458836190353932126676400648309435505591235534703149394559648297455612191586934845561631963186389489399604344728031309084648000784777171319545314119203379003051180929732153363190229265126133735987085155713053588071958457145058334963316743605704861285455732513063510290621198042706626503132967383977549139375688111206231272921247349865914443856109925730736439063923217571502373101644080654035129053214636698112333066392740737171296946622511322140149842342824326172040925172538983441638967495644146908651757978553168901166512084312341201594270035673988719123585471961881305109615410579833010290981527851155644371820296736079037267030380761480622586255608684409026798271604260461931008912712219365284558655579517772866245644450112223307598648899102514059749059745524322012845992134985518778904803688259346507819208940123776330294066139580640459429772734971986916923498572022312205432063957630086728698272106282119296043391371591526795499754948531514598560587807349575401489041059793734560223541858192879727246955229506527018433607029002558790875122314811862978373435267955817906915563834453631161470384292786897148320795245361206475950691618146202259627782811235083740265041827914383305899390942498014474978367006863344839370208068431109821328851617132723354281438209236599775433961745829044909963263143320514286343935362143867176371064189758743273470464636281192982849925511317677359073958621202657499540475704115112919605203430668251102992876828435082761225399996886304415030180855091285974747350457659600695041757879601174170124196168089303991556991595705621084804888075980307238817749197005426759203070040573950588969944499799741109392660423826667570154259770850145528471854672989843019701022445049794400828422310289613633611980000112628175094540692242574535401701896228946979885001262800739717050098226227827300541269796106281877981852654253630493563200060866627129226754713399767994095289274656414067685904240608743272674344734258301982421852138250038120284568350779605005096985592302068057016931074953637816108968181770857280388691749707071304073032598839748712063922412543008551049542391461857551245747903986207017675239149759772239129191332796295504359962400974336955723824109095928229758278458119354907191977005400683041583638693072332807310612393236526524863239138801411186623940450266418498285681688221940942406312128988657137979458625294861812834771185868184601314954158962029284870177978219611345213397934330689078166766552996840696896310047726778506952072609262916974975553840294193464666807428612470346303311454044606353285431016317576104848277981534278210535740375067910904754176879331248369868371403458422618282264981370487975600221808767063615534790884501283064725746304623012078682505853702489362176264514528307034864063741966632541275779776225702313931811801660615668311991540312552357626243239710982462169872601577778583499351468771618140508151914690674461304412337284132772502378802960818134860206501509596884867171761041346068003791574719596079908417481925352143255869252464819694595618912733372916509624113912958546618084757514702374267694770282259239892110294212176403175062739196704574078531696750156909410606444885832641569911227571463008634094472891848016469110734602998590024713367540801433075229759347637934516568481162179817986656801051572336252315713364205919562011580860537385514861515411964265802580782864189723609336034892735986732934073230271526914973795234463198382530971597864589971159095473186325438471722808810131188707497791788241804595091479850565495313044859812148875682620203302971848667647471626395872855159539847937052731091937519952573184280402352563237613962166709299606875622798476626051226929597436972514316996387485694910328607492324585844405792855605386680310245419506940833922638428857899802997444527733262764880911696886061528732898830983423323916600345206509762901414922972778847141959900040541182410734027287562776397445575087576784109120920940969537843742186523033417279032622363666575705709184021176502768456689069615466739534201336626028879310864037356741074298102650792579952430371424867505947047676946241634504794680988669487613438870805258630184255076554893819991195849930503867586717634660630060507269347194135513079842429184961808702873532945317725539337438535495720922806839875463935064929655534543916389164822946908099859262882905597958563192223602924123881775861360705280099421628991235345498600143168549879727001293887172498294110556132291977473429019886179521200432370004681857172212661833097650012790980762392231511165652489567563923328787600169472507255356656507494840805397437694602580746812227890249069861198979090911598312942605463908401631753900992586762383394997585878170251343294790633978023516773421239110870690913146863876717606441470090831725151543911155511706725883960314901710897225872784648583119373375832223865816113825809155875459736803286089553022014222096398489759954940941216585396443737694696740796733793115694752026258426103088768872767677628364896543857701451214320752276687048506075661767874716089299836776404234234933585419831729459189367615879885145199135662744510889955706017998631717164185033923504886767227727852457728262345526643605498471369587550913477744377258306759508195818095593975331694810540905043381144280250551222188101410009349463006270150376658836769799191205987153109825854282059813022181500339803561487058004248544858760289659481811422803385304257351244934998972760729054909176205672564812287784738859137074214393580176470992668628688193727681806420847405598749466452838693252072951515050332777540054021736704435833798427336519051786627334795847070728347211913284672823664280047249887453296172800770871024487696820659143121675509260253672484981061735235942090018497641806557164466118781703202930213318485482954821133779422432944882857861408859816433265723708089011784777420079719707252479968692339243906852525759018501954559477056220352071812356032051135010449416493582144828407596768610559704814932025691028969859458340344929345967399415688704300265036895893401103835691998380109394173234112654754161022128240800756727787661341631316436081556794948462461731027822301150110168179911636774318264991484560666576292670782268765092100128798211037695550082636646952043544142463074214304257086235704207664657731154714679323719089969655383772808142220679602310357174334313189178091188225352185567040842428685347939108053561169921690719794917677854942816884079512034484655040891747346238589617990624981836193447728198096241171763569063735874998160552800417166179477247435093840296140789778904350430483231592775085050369923033275463317816887100948396358963634273561666082004257842073764358593823418585987850796917243875199297016100295571722186962846500627766678060688212419162357864729164995386185756019956210917819633005752481377172688607566099436143667488274816490559620715258816533455414060833152855827708973463570706302331797950789532779899024141676864073754629790165289194173282258780400289496945963772546769748955817939744177382051208394006196711683616050455045731037427182518795774825434555127771603319703868601204123483004732298041280097552649054100882351225819496238489436204373805126887396094916248029945208637876275326119180218054973588212933216842575038111317415833426911475460086308910374164712328124184904291473263886247199828995314712151269574146312519681613328176639481903377750312711194795410433645723661783168045797545137112773285509090958242211705356144487361504751486011310508308395926917273624708437765018955231132582121087648004793958157555313361105526755594878370598875907257604149995044116083002911443684287243575484512140288520610030970151181491818203704385246198870242192206463192092669125366294403905073854444688883764386779553297990809364503156466476264768215129878732895023200097294864095085096744511513980011204356242668511538828020089318094375719896777459238560239542864587526784318858685574502424663970346144659569081114863386600819065929149485763909421454864097760792883407701775902492566733303746145282739385083287632772908163973142260424088304843837082756798485768775804437313587376304470897093658218796500551307542627429115369948184986263461026056572664578278578883918895653388906425546388266271868739261804266930509174114041549100385324158156204998170987097844273569718602603094645674401628645953867831867706903029854865969538391631955959374083870910392961797883538304449236660903337968163700522943758819229815019285766418329692778957462020921663366230363129114947646034503643209205482533829900685137829985354603328380173112466456977673949977083985581877011415167492380497272909425176804570124847551828021848356212099170864928308896966127209163413546593127984676332171529129378370801725065992798062466832366579636152873631358337048554772006748149872071193554797887205254549181709192105745231669373750028628031436418268744243020226447084505707637885835215625685410729024998284391543413162611725399097647608203834757457103284353080322772460104193178634584080788374490580302773383473723664555723716856675730807681795550344722865859341940590528160575478166174722667184408835305764801825939021567358511011386630339981795341308977866690409466000471046278336607932762030019459860846154421734998772646973994435648484813954317607544305511492755035300067322323098757234740925362826965439231120337156205591815178343739074094995177588481931605577820396159361551743642108286289310273609285227614201805106948131258710134090332301029094978278297491736384667664448074409151373713870570068054707254235779508245847497450886037464794054311795536806528269871198698100247935656215268787104242732534708121647866566514500434690993311344234198570706548153225889489345034582212759615533882317279111390653605686015167520069084660442481680700864328578589198284057253526780677728427934742453117454700800650192538352209190643479835316989803065689300606321040048766707061147931521862212992552658720632188839616057908728695118418160771179835008174409551501318597547673675847127224578174023278845711735720330605296395158690479132206670800366928371790654016905634132270862594895521979888659941178915096760439555033098733146833987739367687335448652700767858744527427534946715046293443203499245642908445377244782649285345635457430671489761114545002124684813942670928721661602920394706013716330835224679004079728806430118635121509683813095649086208768676423862616724655037159161793376581030184532476625098506687582858336009489625663423288825157648817263547407773814607687214419237357195000622979791215728651056729085048870177719127438826133831509542912059723968718579772967700573217915843918779413899675543709137806779983409751608697499975871698413398575908003592953672015198993269835419457815181000512562649145356626419065283016156624868300923620742741348637539068294660290227307981041781430903469501164152391618110183990111807240939841194352747686759819448333147454026252817256079261734338492884337565395976964640724350650071338892495841030315106058776703941406203655160649409118536841796541904972157593760606564614636472884991979779586113761945656391305283346331491875420480532294865814652207482437703498247078022271511596066874593824797729487050117534238366802210885612245405076530082914896159673140255162278073802684212455889518517872489497254124368513578908569257914967032252868598431282370832223811305794405271127625464890056200775920466116962702055615829585572246679973390370240078965819492825018094393596136705823173349275414027887144308889761249397529096407723699741640561401459072596290549666515391627945546613010300475312714918143371992118149616243139778323493023934946991253128165865371379079508537667315435441514623710906285049451046529711943126623029755850609963441423740137900146107185924425414348211470756541821904750838409082838255501170412668171866392745494460318144489747291030038554484513725495840201579522601349764423376608670329797590299249291136503742268977787517607134973378624803386797826280789205927903467557623347378800202788519862260975170571760049774951895222269342305695545214818701985371182846190784491540122590937498923720085678163342126255595704813235460704183996245322004640413241615265346621298073021140698152298752653574115003121676479119060819292766993505529950765294282882236994438119323268973300881092345987232996423570109205127689300987858663669528306190775112900349808408253568390121660363445450967022170078446368938892576398327441946947817654758393128863011304134867571240517821699412304573810645738498704858630732192188641258138039887793001417167789097566715689974214109901910398463651520045343598356884143833117218075669731653805237792853985248866876502931791182922691747599110377437352546840890052087431870946644988051983185159287136521120760090360183686477205893140408095896814592639476993343775723733257327686263938700719857432442762988111701585289779123023871530323879867704487155838386607212176624602021203782325667390800447794378167944815852492434008162885446442471358903286579955281381008324103693713262571138118518559552009818622891256269694000191909117023591118378459298801004881705713099934958902862519808870806055450654693329992336867862571643770337126843526712333556283154747743481979089348292260549453414296105796054802371742247056357492926255718983953105367775840902502662515537912793600290760671756286509802472440763629717056313635523446896555349344021026544703995630339264176343748902584293753525701754628931506811125545716800892471514927574922792370521412274346045806098813034973998925050287973794642135288179059388393921815050317342425844756201434440256888558242427768352278427823742728778287969098925976068149094014933039807290532940555235800461355622783902783543046949281570696162961320428495399071780660470639991595880440793443338399238528927250741969326883601097707836859246619539703300261181717736619209889818209533492445908538423668020604494485255464029408180081297164033397168488463312892936145201293762737605141263220548014474192087512862689611320390530455792931088444467416496738145043017730205741046871003599706248096590868625201500907858397280211297973398854295747940468587531271202315065713788993795673100401397219774748638302015190445172890579724757882487486683619269963072118300483835494064105444769905777413426709639375715888241322269493644469862241581489118060750020405998946392571479760640769297645100588379613591215955287810449551796871434074071411198491439676196539957356361606466947856877348680447279079918317019446718474058635812084086770132858079172084082035573303511939236040372951165519215563672955617214885265358214181805882938194567661735718896950041257316261024316463700386219125330427946968508352684305950377479349795425941424445118995970440978444810667899722292049636271769131213116894783025883992946875558557066736882922241822112048257188059485128007159017777072107314844431012643911345379321688256172248609696311748323818072060578488938433324865037581790470649840322653119805894891069761609122324734140844951155394028901716508849748164060571153480748704864566445997292086116408430791703012194599015945828058258198835408687060625965136196233251546660059679592620328485930948434724999974949121144412713718128641860964195707113782185181889129352154071647240753840850478565295164508984649198185083570434786669415769834526866448706901284648564937766899988284277288516395932211450682618658165838947738786090082923448314816991240733297069599312511828855158281696767736642506206003939340012280442759848199692599500068069810477339954952845642306724301162771864057890020446252546971229935658728166711193373613597251570221789847308468057845695640868244388998197447443512524295745619014966771995409339816406082456710623772278049680661974920756113238397569958767048673947266491138519253824763851181550009803099768229091350619300149111016968731241100434181635757927499726515074160848167229676245727390322488719686553429159524204445144508124005575968227490346615765860093612805255081138917584679850407250633787067207798861421679145855037187455977147008063763811942709327766874018402344994140835635173504269477532442700518966779716941309767358715967098355579916082683853539086334284624331352416967590494643519963948404046138944559765766216013193921634709204162044555405927279825493364401783021249778751046020752768255219115167009918646244497216087793264778584258220315369177748394648384611092410363105594492401778677681786925564437996534797582069898971832409929389590478237540041819998824110203415424295562245486915429471120082694650750116675085334391290817113539965734041976929739735762986408899028337715778041084262988962122863891098194922098751722734297834661418720238929088970775972963650785862765010305489532092273672776532839523563141506661385587534497492752765274666567872574455647352595824841408648612380062678237198807841908003100381809236663760830092508083659331135717442523276326420914476888807245712916511636147901378935478467646782103783799852377460172852857127856560754782799831330115592400878649341034620939047812500626706339508108020933527645822632577838409965525416802159992444932522905724248436175326163615439564250397662251003329070943959208653945894854934558829073325454978612697998193408062152914693789474612092383316494240734802049677066350460746639471349560707149271131557611151410786859474083808116644659386195398136250181801909093363706224039737733195375405415151446211457667192982467470139573807891710468514653232788868262817724269625252352854485252857809199261967897341088141960260290492315394419470669517612167883531724217999139744031520053800043185936459836903625930659566325756747229582815718612606277233013739451851301797580352735280309862123456258148705090179346316364851764790525250397861854495186244776020811096545199292591647902010475085733658295718401821800839744086252457335883392318689003909094294789848806849896397864249552390662105637010619956436463542711574484098718171663418591931022388322227385112484921002891254979707873503291423603446491690413003421017711269078564793937243428567558535994914590413340669082006183207902347795061394702130313349730810494717379883680935947786145244619189225397137851847758381367427576339292135624044329306664195979601891467941273132894029811921865771270637836057696989586446657724087820737533122959047124553716057019577289335455043593296205050645329393817580006602135409290639592371134512190588677866121239810128127293618013604669489665871734868160475899857181632942167419043333069619325060760163124568907347334476169648212173549761470546221344898419260511925859117232171118646131659295462919130213185003376325198971641531936340097401441341562020171034826431167481194845843990203884719770408953220916784427395300459939669023326715075534116026067372681809777983182367019613188035257761829564047178588051050946364977455005909641276396011742324459906607236717720133833059717174301169600610122373748998166181839248341105958132069002472423514868630090265758208257829732528030502276834774342088207950471796791058000325800300318649463663305037832351338274913375578149407471876393828185960592668074093933145955324708557113645975512618984553499189305224945418038199492796453376546645224383648434835523022881797448174468759553392255797292549948317732084656799370678605578490274667114527401671662055599429992588480428394354017242087599852426922447013569668288084078711796399344422515501214799676952862400758266146969101654021561754453608766521248322187778039109325686427635404677177197793715593996949472695682637355397030493409054759709022333883780204240418417363454910075017656828695694468246491094532724313085739501962661455611018141663816039519473488779776256185195024651995134799908331837661483938074413507798357865168992612133241394576003575903029196090213230942276549356739558208486303703836496475547988607986202705259039450341838526746892733931395687859607531965966283172327189364578088007175780717906225489074717509747562094644614285631482717933057248819768181050890989230230736422987668022751619700231686650056672813280415774878102747577152615668377497778873443655827735068119663279849942566439383813585763890150820287809441816887247978998093010310937736351315879927550422168918434160030996256633849627158015536938200842357756606379030374096777907829298956954191343658805151664226828925678166115217224447014100134890664722583437793780475947971097821810805946122914146157917995608603559484996454814492816713531218330422309259823587201384257341791240371400160077566831775429679406717715059304081759612682046420057471365704650563808188239165054578034802321707245151119202692828722317036848399101986144454385069884965106837157226604735563393073432803335314452242222303440242722182911794612647601329577021687018799158392279851658054075130903178654937037842166465488263316521685060049857574164185073002437199773323668120839615183905311901323783431795523842901362979417438586516427418224602702964630771076411944523761288172466411358032912043492790386196689585992155289810670982865756266014147612676822540494876723661070908407696840438879350367197855239193967586824773136585086346251429568577724468906019052939694150022281270405991197425233633317176931496474285436545687623132303275203060662638744801431983260785971775923866850921730187518360057418505912033466206088999775085164270923454474072425173510777821980426929943103408880471329289927744980579846787896755236958334354296370920411402882458136861998018299677080682225203884910796554012441556053474744142636378126874631735339754898577470002926639409348811038939746582861816573697477527876528371658124196458415711215257834404639162476426974958277565182075194808223584783484481236594031621392170307448262958745811340840634116360171613783606081124769102338209321854603599028903387371593040075421475390930452046180726185278441406040225576250451555315546772853612035641793558019230597846386992385256479548323624605597530460946856479334734126213627332583935034407211477875466692790413554189614878157257206732509556990666763599227261775575422881420153775470368183698544461189398524352063954399393095752835022046111444272791616972315230049483181481629738218953775789092488383879923650046781827669230246515382532422200039788944359659157057786904046964637885316083380510698842481186267732180386315581684815922994080927595855789774913740823423067149158317059340421277081627800644740274115049439226498849621257047284464889189712522981595255026868532755164188195625307925661462828055368817976031795105873979828312565486561238509092629182412066507555419149978271585708434914992108272947553126912613807498797718204895660002843678780436743013936510536702211925953574192280554426406472390824574056650196490330609497619028359762741744388064284253355747619508951428776177115477521952002518332158737363620660707104490712138674773812146438517671928402921869336216551849848789988441333602787233239013588863144035330550619738858364165299804545470401029006528667240984299255036288350785290074197702119891865385675254451400902370902732671598413454918788504300123348323920222652411435029177657930474268668574830042158761109234191068099429828490994486002101850941765689153298803136919158912815581146793226975457812247501885892261938575011673245384451668774285527029245067672399107023189820911725817274874870680249448854228476507245880409524840846866907338354395879085522639109396011324770438894531242733667020661163593192481724542955531732956809697600496280236544728853265984165502409408131868667090984208367418720290970178597006082667475534573728011034325674862616771157218824111152088763538195193627397799295537513593965625806713474909680049332034704956197462893492253442048734358895739191941823471727374290996212411037103189656417613067960844388130736346088275943113263237041630885912627037606141580221340113619876758156873780216822805706622338672729373036526110912509943123225732368188786573556167912981074907146929454963121837035909738097696316102515152599394802590359088302364565257015779758207174014910540433513518173598822957815109615453537253858651604363536546613169077309205757988959801089717861967236671165685367614961852061041894558696078677747606737426980810211210139142298264965859652804887307646566090450208045243802548029412452094687338427570412082790591751550847012986760492706881881415180389395507455673158359610242518269760290864802348965819626121032930317853372495490214222992955039187796076042905472429594348016437278592519425082233891500421172064996292097244890751264743160350011718495090061120930618909379629490639668294771159760029149425055080622739708172843336829308911501076065912916404264773832036676691107380954543986727615323956501000317279838827383223357087545345169644856199828769710466764998808339618145889143329903889386864253432647559391700862769911476201494157825710032117293108212888633029092050036224791068059544690729347408694706010693605483007920163575669329530097605661232314447972876612603048468592333594845793054412218080354628749829785851722123502582130685371947387245503971660759352115114838135692809476045075243566931630391822708955507742661776313786225930849146654123392948360535029757848867851497000127622073891510331610305590018650321898766139107397378406720729762140685654232462776411792712974839990903117472312490651279731283330188362250938786446647009505167776492605744311809516470514230612590546883321089075458947327991624012384375167398670389652001751413296984797719255783511296332249882093208746073625858075282930524475315568616962693402279640941259914661782779544853919284732543259295202123794229499782267193462129611028486136944007835447826880757920081811132205695163844083901847535277489449682257146592635439370843479149664477987752741866976297450171055085377488065748869749529593979759044220692021337627619491109700975562048899732935839753026166702127519805783888528526567709189596465353490738431163249656261541248400275489067306555956419320174079459657117358352565529271252533369005989040752650747120619436965914786933293902105725313491963446566865092474579154479208408511321169140173570686691188884701030199556402891530599311866059661209728938057219740619673248881813357620648690896033310089051425070208977091243098873919220781973973417523105396593694359890682691282500599929500476976816384632418237682801640980082480680144655011510911890331487737675334132052949031366448974497955112347926627485600019988487351111120682125096089680656380369030392740108471511304507561220437658884047710540387057677106376283035918826659882783417252120797437590708489836936259923094853827175105968372380833723344927317966362097863563339661966192979965555695878963987943394970696594928222652475631878638998566522283726294464309441630175100272567921038131663177316750219774686038275532404208614302146020078494158429876424021650618215969846351994615722635114609571891336906139516033128901523205113578954961855516415105706205120618994690565223857821290922502573532464602417953175138562006202122580118975731656076228384786832608602279706741244073994141265452870978482395662221770123455933579671073587291649437998093274671965497797172318263465380868791663378207420389281923240323269025177759495298698579137886512934036787792026251064437669326822878672451922776351168134839422819879606786243131230806618590426994527692378388741352315105768109914411196967281323591299320598413404296963672894768548113350321741370946886081982659168790369079844699648042377454747698589265756377708533205390643205541117980451172138871707733377850289229698502302648243248036609277452670982681177119929760767286629242349635604003278256835276682941068772715691079108736636528827390979810704193543123793784661556320458649193579227533882448982864620731737028582111895188569109616783240103442082485783498751358547093484052398298596294458647438923902287451329634625797715958076111590406449275964739689157474531043421215895847294938989939612451958489744059425572729777107971420482874450207800218405354010863390065581396900165967005450380854092637195508996644437509123116218781467207292705669200578940785643331474855591303094144457847333790998309128857601625933823190900105713596817786587231281910818297661360532786629461035898879107293312292263079489902565957039462381588030997760719088060411241503004668954089659422178365958900496919865389144112514094018410509169196296556656851559079049535122015836320143154157544516204700912997830975789544038902595687786568743039106675796123981565940108576204641433615789089067142207599426844971240084222440035674832048022269266205718859377080307797269208354284703986308577003814969464105741350063344587299634139957549775483509859035660995600999825961993227996613589580527127215933391796399887175456263047866392245501080530868440244123100912492381467428318659740600521748346624955536446015032199038636914214347132424603365356610575558359526424038805923291604784354183604469874238833719695986490307331989934711749017185879520019410209005477322223386676912311276165022755862643317087457330091584408369681207902183937876652383543176208023353069918654786555935761093065748705598931011087161784867628912112038709226070156850313262979775378462295880577115715350042754734253529122899333038138951477134448697160926082142370992510956846003844739258123719343076413330808159160590984804748612960302210388106013019257914311606481843198037594373616627637624607780302369938367807470867537435029847014951149756384602259149518815984564630447369077355819537862419887736908394666762925109432999106010062206794205509461133280372958185370233503829240541227877119746494960660038125227049902812025172331616260915496000617300723375262830612061727935691225759023147511837986019226035321114373038694469645405589095250212975728735036264185924832639749836694896473018001183548347828769993738585404743548330269571446164225526160022060403163782390128730791750178488366088838745460646251065916261329960699521229568352169254396554355891935056120276725351038956153464740632853315583354579773865738593448318573190795962878591816522384865153652665949741034527431033316806308687637353598069058629589501790291536765450662191307554947395941254667298204723151357891336776195758009800233051727580645234603157395145802743660632024603329814928212417977259194138960040222359856416141780707775983461780038623107635566470171438822604432916966682556024066362009807083385759706434429342291040904874010911411831756468449224183802848849092124665381381620951404642565798756786374737030402669388249814570032136527131444170607623352218222758152572001597390040808589144968473832040175840938245468616631685137521652823641291208425752920767266343834477939090021941124343058990910325609276691132692169549771448552518174934710817983470425960850001226278649971218588577322569448547424208689073741604544986551838972386812825515550089228983222208556218631083865858426257373833307973200720875976002716466158256834105986443528131905651317405757179647115551351165653819077535131427010255959026970634121987503706429607433391736559165619039626138822034488120279228472988236108193472488343814777304875238802433911714636546373155391281122328095789735939883222274476475604324427079176580086389206842758340187574642409420678136587269841643670984150582474372885339317267770023719375219560839461790722880926035992486227190345822947310801577300366517439481716855930175336516054733336549515925224391578593409911687908771382686101442571878768436002088162475207002551368593748911600482986850296038039455589052902571108596510972361446316775894259162452989696140432815275742069525961161455771164279404402602039327342006047125026976920870245427691470563366429812052884703476915619699497139643501991059938952266399060881967696345993502972680482961554258395582430450486098546229763973721559786090483084155066962312514177592233929976210975321991714429676940776761080535118568200612401756610808361350396693566011823829206723302527095605484209750893547875102679833463685713417561415349436630737681737037325417357473298373883350615311034233366708070480092023720895637311176557213659766867714573426011293535162096126632938811596436897510329400654902754972878138287097114997180004484207178977912261626325258796646037837927456351995304925116246312373162178960999108271808778195051095365543117172602772962393381516556496348553016907093739560060704303889072260423180204197328721374176218465434932376276944056356623246510589354740809768359990793071339792362709074671421571743439226017421808664253561992646297527596029110733888587726756928913728510960771160242305898600841796370999481297572580261393426917342156302214855665493884726487534566061438265156747154114566276259168350931602635731476255433956497491018316375775521889588749789479287826374711248597160934359138908598606750537887724440782290480726035949192321596726596534937183785886153034325099359126778063334723480073122989130106847750363967099717802858702913005161380271026867258274296798751761729110648852867392103648373703030411202388074476417329195681767197080089587650447168477341543567176388454969747789823705733184257359366660516022173037242861868142479496588124549980389826243067506740594009675635555734779762767799863881813064643366527036993574943739157794259432728541110868519739390475954204785917344614341924429926004778388395323258860715153446366811888143827624121466334455611486548294575016490360281677293585072594433721940067809329617887745879889212757477142177185615486289324720719588022699516655127437162627073851799126765348787270920516744591411896685671292998723467694557972129754292233703416347732378069648565409489399782703817517908145095992585091874906672513038618477283423217348078778786523502536430640513191887471523257259270104486160015106202912354042053463112799984770314750106920029404869070230146485565627243034522414746596957018293160973345331206097437659372403814933696199887042528076896471286465298216508769676031946537610779444440692846969584862046617988607672003580425496277479552950708830305869721708696848102034364907063424298440555789518944156498588912132594691355019661899478085148894100086813475923918103022618236604745309070212790910744375265415066846841393493519091393569421583774132718987606668964504066162500283924375898031880057084078311141716111002526959318890630093267022302944436475231232625410984123271247431921639014838063075928712112351844474598146546200003136458571652172382352702672029608783071418086252319507897188431476908216041388958777378598567403286286723334513150602439652435804500850527243236549301208853042288966570656488302898201305649818843190652139620969262692935123725718199758108568140243317953630824138731667056283707669266072992348394939066320858965882981924833532095054738686126048889179859359518727912192435964969326392394568204408370405623908087153180943586362991715514332265919124717136576332285897439760949409645842926158381471629490804677514186849750106846273170338296217469726859912691322351402623857825854366926042838209245862232346104421057647246277078434638828681912263298667270929426965672986652218069925245195575349499656684666759427072039458162084357194681042040445590857250599670241511950354905019965937917441266494631568728293085779600691073046740290398994906431104014473398582877729036947409910962597762778835205029237939382809986385598808442556451503732185528655087744324296526838469246910806732939734906566801873627441734951857141506807796944496632711660612559583884665180069921757720241751044239078125631178763066691749864123191436304295999329936982822034354081642334954867207398976480373007958462287308575223063616764571117943018110583400774082187478640247121203220694354692170466449274485699001748417151756831254705352487142349988612785237264390914292460440848925601562285646975562729091236803963935288937717151226381752957388831792050669741745721804818721434956623093157379039683486577295937641062375751978034377808934965065096186740032282948340129238513386323460667770614607292637993187812254417093606127031121059956095194024001693605190096463602370170807211716135484419077605723802613306641693783298218662606792119162115264321737194045090486785697481473603337690382610666488937166460450472139104612186558346121715074073493825895710971922155922775188497129842903104523609149555925242667429533756079528885523169226327931366363867333594104083744175430731605610937188167951185512752727881001590098996293790445883504608252798360432886435690434665507793639780210038984050411580803739565496792011648399872614710513332155457450078558161390199212592471784854867593171128613637431636169203794183614512466556800213723073412586277777396197894972064441769945319578976458885828345379266548837783071681494114693923224863896057515028262539767038405197768816950156777949099978375868618963538640652451437713779145110425858955702948455048918557048624664484309386808363045147186535659392325344588205456731883707187603291697897662309499001379970230448497153218185248338515798174137858232368178875025385944979859834529625690278520634699239356335792952191037491265154024255819727836170447901282901509896154424839319709925457002150022751414971665302502714810649889888996397156165638018130881664308864267330141157839152779878333255405590939848684643323776655206173428322978132308204855749186217695624571465363360873319538713888112470549975791504142033468644329318059952458615673397893594594066051026500159801744991234827103533793079353118734085093943401477240918440885896736120701047239452560989292762913587983611267107062911211577879845362752237728863866666067019435181831154852632095222488567281373771425427498939923357840065413371911849327162017698889804557855623753644197561077624864508546119015635594978389221378699725814699253651531775417180344320714658716101545167022595904278231085280082372675474570831590500134964912766709851795646683881876407483801581846498098384337057218660026997070384303686834544277879316583097449498361790304304775265774162505955880979412197196305350049430345198070045502656197822345506239628830085004160118216973484309857369742098471477277479767284755435189999071479183849289054684604937092008249794512359649935117425609510016475091604028573342444051411702579071873675669614666548358078987556287081008865742936704481995079286145796529817754888013146087196167021967338082626848383907596129249153347705104507101902926184770315778049539364329394855436064427316055726464022854195610282222325982814163167697423184380882351392939018911667652425874990746422284685386388658808474202818548666540877023735060605432958253402735755421252115481771704152262460418698969119155961394520123804350688166036466240333655354516976498108442448012873468652959095014189415453363670393507589370726935198960654171483062972541972944270965301835057846233341788832879795262395923635770534470258515786019818072592774441874391760048897392126640317993979624803292530205252633663500479044917066244993585572642935597183865551041760302964864167326225393474417653220800219970265119283703364711980203966077004356239520565485286199044921710098463934408406344127320658820891498449734987859349196817237572847853655910449874195634006262811140757629541792624406776313553182700106070307506317022580333216568653782407363164792404814708356127390397224017671844001739604214394736857724218058712620341131840006206974232140876792352836131338905205608709854269303621448750223881236796257223104656652706308953634455758808550617218889639466113251226111195759706209303227210874577809339405669251478199166668412384387818286819738214030574889682054526851204440781386831978907198654928921904214461969798301359936742589663477626474471339178370958890481845518979444971950650077345337989764921593247209280987495527756539160513142890629125315888143342514504344266290439535767078071942439138450283312227147749475296782344486768389975297141937767962282855861250686894454944684565946829986690333543444569034667193318304486294163251351496764443913202988890085719106003480931417705493220775238011396980564214556335793870598455496392926767177970578728536806677443946407048594435372539698575721005270857261395087610668883055318063428131926396268787020701390666103320875097462003700151849026156696557570745614760700274784629691686199441887808754766040899675757605586806876057496938022547953608862702308426697698904377320537779525570473131782873373116188669237042207597311336711070302639330286124960682766208343251836837770041612327697992146909688568614730650975888635737406764868819178274216459392494858610225892793217197223298218334019406921672463851480821453143410972189635521959317278623812458087399363894526181348953025983166778889415201063472947151124244439451653324404375640885158043881463578050400873743314273690042917558449033336789123459940463279959112710041053899162636899331484707477058756302996362480690519127134356251618373223863051919517181740315861314277228517055825945961670052762485435187236632876142538547909004706098163741425740713284250042536868335694932063928993201521796176664329237826719987154928769392963509269595451643930303561456302321774377897704752499851130356040972214155953597180067251892701454934127635974459817418293207661737197053580860681468882187165705338709346770724781776680101942579981299689085432001488360100709275877791466201197604988644925963965969290521217567974826428281409921414570559928036010598495360731168300369344340329436784628176692355167249796447961744327673812280693641712942926899768721305550254904459154452443070508627574053766097252485054465664726011561961707226162220627752941366851995657374925379371870160454389169164932314461624288109359066029239044868611745428228263725141510068544425162529035560092483516536642751165711238178844831712830591781485989689513313003118977429718807001889997781056709699110951753755754572096271435982573763914281742188977476988821408467625151416537568317992627833350478983823015753290532671325543352106307427874485629746264959046640392233943133174708077706576630035077875745113099143615558578446899010419336986745742488728270325003399966269716313075737999292139199228362916132752073793735944521934812731682212008359393984125207113461290369118202772859134739111163258188043347326597608125202329914408505509129878615834021087812337651858119540606767928568043495758561454654183342550186677252553288381203406610065028228479544451950428928423970366879196380432955397867421136292377708396020422990345334303178110560033671832061125177573762162755314364198691314626790234812100297235568253904869853720786572391381740263443160409550781166387148123111962982411251086190713706837123433636280824305081210350047790270825062022390508255076274711475453320117852048081166644732011428463442272386193751351270397925564174955937839320301776951666098928546522466920567412264202803949181500788419694873958728304012051593429107726869460525233811425720001870085891444506239138902364751437254711532115808129227396083453291633290351968472029108777430813350865005124942934677326890807688182053397481637081441576605438350542865553054228463793100515849882903106323674558415639775865329663276841616508825680729077019195240417021953953711563865200045855668775390520651396353002998376086065333053039469106008700056197152077428524830119363196584057523968623434405914472248550998589592116103278475185004819332561389057625559780747687975567457240953987649068698271347223667153651049508248821598325981630227611363879840636995302905978657490482007011399369575907941550086248400289706086524715291131425920924566098512906843947066184318986166865711816060539676704446084897946856238736573758546122712938869763993779214972519456734898409659569708152525010987646725916332734228935230271254426226440806280887417240239435288096338134795623592777928319571299169542044500995157217434608296476096639182066522321919246847030797800373953186409057193571901308116796798673809822213006519980624181233746080227664556764538266363732720245159014260833398360687431435073856429365380459341059768665125681866354613207826835883040452241462517127617848543569543213289989621409057369064871948586122321065577277356644617067506343422610156306770022115063221892153163445748512313001906204267112704019358527550468881146890914163724687756933653021113672744899219143050809927004810288770866126599728522496367621431279651534682009449244203822054203068317233330760085831715373339870890758678778880719260270338689403285160250543506383058490480446025467258092131396576700863020160222284598468073965581957857528071740167047815638472737067951604929006452378413156656148108962270873762248492495669906692267837664854261631522626786091390831554345056462834944249816505524628755758782572540143451561226807176818676777287798795090771316499910073753983231467944674350758672654629285627833637974299868097922483966549078589407312582962684752091452433492197894270702089079954669451237554246881924086695625653549298056147764280299450178714572770422454612201695175891591409283390469790198924873400973269847300761524062374308047351535950101332494884135772212871176949024191203100591442619659665683052418965554011080291890213845822924270836681470937867468565720335900814529092053162679400975855096577720995434098669791610435284283846640530770751464452563043002694550972622888945659373914909424708251682409982583919077995794811652490922145387573165540231122077883673976267936047546033403108195946579258243010161269006032078549909121753638060214256753255008095173521582853601808835341618450407595282791182931738734103130682434912154232587865505851666567419804976729600083813907003499219927829849140649868227562215800084251848401893664979542047317623676489063141887824973817007454945613853488359901734464116872565251795351838701620883862095679859517881151973092482820068693358160793650311149750970866687297697890461649927562556534008678677145609345876801924159914403497395283601498366373388022078921459321090351258852774220654960553018293361917054270681365607258818521753391378741976698564981772915994654302009526183991773978128012879119203925794442520065504203059707466086041711159871558844924128621660849617225881647648835861206460340470683104133422378509236024756321409156687752078776475160578367639745877738918931925528035048318688278836018853825171861559809817618092564368813009131820587205328403177247505426310245109845127518376225315186391870694925217912943041031299374713618448356815295554416952391615400950364433130629665651059652269948098276791921128087853465092711659092598784974374438048327770197832848088912792990272320844148537351098595349884786795826935732674817606498054186481838737807604767692315907540215211484820368998952554894487284273588946552268213071443190577579100333584937538831567520237823008830093915773689527747411601967800912916921844795822329744848831525009818935844570086999135051340154459873427680159122827752952703806078740166927569010508952641651329657086920619161207548072515963781920298014202865128576394091678482504025384016252680775341619357013879411022805493705772440406942807284409210207380758110843596542772485959662160725597165439290630413807331314151678890298386337482631857385080327781349191397135619622343074126694203608591483476920236480279151767951183491327003762515537939514701746735558687149915401408118198348022650768625151974816276539714010638661071154028164516002421026263937962305634623104495932792000156783438669654208861417190841537268798631429090142916123523036864927283841784067247146176741800530667843973296700821348200070848935633252727911027004053146273002204395305997979043254031433129993367806343733109198484817269945064814172597231455957959326397547621225973703771379971115774094767313670331316218826285140085306525021950301574008424473317727702059837261413557825251137535136997327176905334621092372137251078572842989413300003610582790444174097694264232518617129994852399497835033584989736705903670394899133366381944638224281303603378607642315262221528786186532512885437668881916460358954853306568653670833382952475231536850119904074293279262090548595890101022008501854691491104128050120538589001307968673658719871162818106872811556295237011020250003662912219528022312882423099273874573890192029908777858458631426902369474720842211581281427505234038261155072936846953334981682725945996192230771816299671343825570120488542076026620692949088911990510498990760736879333902800358072783564967596993736838309590157474065829078254155131722907992012336298270292752333785572074118037160942486369629930795512040819025592350870249603733071888618107010906200568980169742481521539375321198514446612780725212817538420677694713190666737210971920152867203812768530014664452322413488374645284460494168902596797726449335446244704637480991159334883442480088055661927485138309749039780497805081082377153886420939519261981262686350722987067227816693116722309371586860260546967374447690225205146548379472771660195563407436335541109464057120198792385992799609294717170285610117463677497792631471974237598702590220660732236074409215402704253278019099476974173134905576636306330865305299468033878858223111943757251440420039491495740654933877131902815355091430968155491096765149432887624257237211945784063065696833518499859877326504729655075119974391629744796939256166592441853852294675183550660564649459039106445909626325243681458550497479982488418049182587451821139877516129562881949577914998526887160111455624127990500757710372505121835810155599154582527405918578102983723205214244304785214256363188467735532153185007723149348488180598730893558594416864954878016610045703003041375942219384297025333494475555595417611245099638397298702551854895084145678759401843297980093148330871659305887559462842832762110719992465872774028022793705003782489401500561274863525612780567142202957370333702902856339993020064517937269889179191251243533938270033904712500258650300623567013736639686351496928550610099822996849051209390611737153696671439628092826381810085364371152636994348914390210741092044515551222156693680908715779392980247838490203000856897418711002788350424271201270818112279150936631838063015820491630720665471755638114230624531992688662660121456337926362169312938226150721568304911268602437305210725423561195771516994987283583996398806771057502715542959774225849083134760910259541499896188545034151547032276412851913573544064762214900302903283869842194436179572315603505685910119088192696616570694934372479917191499184240842878248678924398738814266784371980210655868306267389757207337600594336119602263111838184420505438970704213568537213200480803728582077005725217793355935079514403852293037452702634492300647672175640243013129333224151988058819756828078952548756396629593013592299059529852075942243408196968538850385689448879122099713208394912720502859290664474028226572331641383227645788829132757717475118255931554387391702429771037424934636402827709629235257086965372080793937725503685635939750531370174288736597383105758282954737933026882958783117663385959635701471236248537114174531905045940427099887252528967502105820768380350222827827635489013278889803138657523106924834826215255585960442070185538894859324496748812789650714833245845154080759158094654189760533325091209141756759258125655139948490267685158931177219599140053017539143534376353157736757368238960670385614753583197155431104451349564044733958106896713093585215775418061455922246323015140726656470778020307931814021960558560268600747697252934109898243919500680839073310844445174874350165614326117340780768870523349269510561370447866526766392515418108250116266221141968709544581109018265458894539352576707867410255360864911506859525169074997651406927710073627122137269427788215274839973555689004034021770756079426894556879995559098935176560489758381998580469679695162619672805208443729973505860873010339819368130308500559103149449458466867753299488960748154728737371336888757182915482038508192026597720474722035041526118286957452759464384521103110364440946062549911295207045448163507974182554248384745425386566623854817643061912918656376570999370799223732254734883762334105184280246438829191699680848624890104280865360192330200531632747886864802609535686291066709363606053547994154568908371882961192506339638692874282530771071458577028848773491730454448990243339020060418095673512862189331342553435619940473487543018682551548737491751719554779156480275852012422326326622563589689822326791618381049265536006088756458843231267115278039322689105199666234131760475341307636049592837690938469930118243957373698893105866710696423066771897445072568026400819600282011267361676921307038937882149772140723665753420764443347283934454180058767517494791107558815398422627660731110342838553556122829862257029546708158516459943148007531163888817449777278396761117464216945651781642973366207548926183581833227105772135507631104967982454808012002015566476704812186702667858743574243196421381605922092871339274510147228600596578921567243243424027465054113312743870936546887159161746992456944061383643739047892103637845985043824199710059567689680640661275306114318253287876767484986481233699702302998102380138418563501969240561256292816725132321106712233694310438067594546537087886344562765149472691991168722554062452551115536898493708076756498948803721906839722716785277342665468488156926388593191018179114648123981241381082716711347095603406016924690482120177801101249085599852131244409194769740523994626982803585051273738839074225232350634890134295442311796475347325811678703840789100220362720237174794878721015029422609713698313728927532817617533297815238722826551599258942008041760851937578116480161508864738538956816363529278698001762146737074219539009153219808885257740213663536659869705342766881682099755485667422924323952921858903204421431303069525073019879323938394814569699143831864931344128191065839848954905946441517711726610233221933699014957045785592677377799091719205788764409194275642761841445443615674043928097078606645248230489553945321225683812592712864875601325705758625857501681182864584209362782834421257832504714541802536722832254227063710066489120339999044647912231482242834330944333159576264801503440985546068773191595189330937000846802240026033763092382536963277912568919814182885530222786237920762689914888915825749188640259569450004811248899080399493486946406295393393349242167884483152580328514812310538643984772530373798320557534271800918231903427759463543758156592726483478602827076038358913091817535877953504153542582202771572698394161219978571476896073661546041350811985325112885948630076733984671989197971120508638309247109672305984116632800537663131116677128831174706414886954011811294116508354940000150497069504526433819546782139552298779049919717364980116856650383543419995162406390299101599040588507090106798138880407283945603098368960784226642596791159838357578754583178844007611638192001031236776066864093688467310026512508513339930022382749192003520874163259417395640872609621118458291792113414194697920697516210996258432030688194397944642611183622238488905722327603484936767860203186317830982530747416027876650818011312533529151811179879906535311891532379522752462440236526960102170988699199465309984887363249106452152063043449863851289458730431562100243067062054242945675842551070509955414050566323531914816499761830908432967093247095359774298370565807356234704857482447915947123717656871427511861743611697460863828665937760937906533484426201092696709243793654120494574148285708524794388696098772972017147760250106113063672924185073025899833843412198247621030772285005532663793111036012548862475454883139907747045598643056353362971240593341848859429984652256006461790198532692279449703003595336392148943771023318553584849778183972678540152821587810010688343998573084178488660769766608382708390005579567857902847552057279751375014195421630866714069927865546025154010312331946130929073895912158347646955565577070898473452887016428292941209740168665454342083198151793204543987699721401488020181944542025505477199224926800103510125888460019480705021157498753136239859815468659853484025408040534166367815091259879206616554796085148391019008956142591700728317386677576810528494020459417382948070124558908252505440970127034546395644105497473244561131819539530769619803157635319348417059702075539872406001648168446530221671868273810445921126924685716054196108281553534141305294215310303650478174934713950220202119001357759285295489419528356711424835543003383583388611535116794144648111576906984730044335584671988358015092039058666020478871341629028529636781860750438936109127363366253268659985929508792212605707733644684224500131521473231962130083588071761844648853806734804127310920756898583326286423130962235631905576975230987088600302703352677422881875670620923334156288570458669978389447266779555403257999936916414120751099900905462291154936874328504318101723963764799957945200405638271671670012497113359443146790563510245342184539376621195151339164426871088380060432115681665034043026081123677379990041908118381838008052507569639917685067221663921135924451010511825531013259253126555165823155097431875424408406983935320863829688899903993000560796075941349647060686331134018668536234842882657014786781840985036067055367201565737846569701942618032544089563481447727617320230360157670562549810516739809718207059644622352637499610866103863882506991843400667659948400755532425563147275522125463496121000421097339756942899794904726399140202245825445920374082644981586780329967949061868034761707159799588199542687345847728782715132793064100739678777859220045241065952140665670139881908010150298054882049404351299799170946055020537580419973272097910834919007921405148655573023064058533976861898097557707035921547686695989448752151962908041783815530778896551920742966716135487237157726724291058528961792093604443112582255154343395922295295477236615535202213594393569463305935445289168865092683005613140103738598847597357567020498551349855258355047232459859008531248130962806572874183882941412309022692295728751326662639664536127694987781268632788782408413171415360210140551594483787150687640241882669379596908406537868631199837909815866599293012355743002752992400307720437656622452875504900501052054672046596007962797752303138616143553991731037826822910504306504729475477900644993779357517149248955200847043363933738058747084245230398380096174250432855502010737207753580464943762918697247893798782778361986485180010430945959757294362325138094465442310148902937185432090108842622549467576754152783819048243987739599336379375988317700061374030364433140805962482670510029797072944410299576849021138264778392580594052448133568626743638882757663559717994070066432634785997555835011539127152148016523177222528751550623717087363881754900332124350369849338723423205229546069466705619375482512031873518159163883561049059569811199712600238426258834878151990457478282428740979815790619808113234694639433713608804200559575327000908953712615414258082933148316223526343442248850697682194648590678081393398427290294591219049796323428174350602226084122288163929745423759317662031709056631215748661944399788921906948094155834733927214469979537207936290123715881233876546365423919014497292017558993850267363976704695341809793145616549454764852698046828422339518172086803738139342905882002341464483066348373223718778985293499954267295206457036885470136519740214092922188601067831009413422216145833352394089796976849578111708884976026477755104990095456322249512687915395552973144730701266407023413636007310811854328821601167156243136396823659282677635247827924683426981125700452440949800034295802819668742476965947863304336577189603933537864343619293755532407285207397840354648495204518486231818599179787731697480941194873702675351595859283490602899645230228219078622303722688167774827459910818193992063083948257977532660249856167759511766748096967276027672768764399387870610413137599471220529562445327033674295137160012635081545318010451526999994688795920489879571658311352755570228503413691697749461411265391549054547237663679181131626905132968451911941579971182700025121572864453332542337588507127124809448906849512059720876078317989141997872870641643786496432111685267411158492014759268369707089396622959335047647762342218932605567411617937833831521486960657123878335104835277791366494753219164839799131513292406317656337355565396686699625329742860695271726938790753518676933865818448355205482561977238176573154038415569356961823598737398930450609177768369621986102803455493324205475160399170488516027120982470718731105924032241214320833854184447983641305546094838401326029655534934970664768493184584290343866616812632792515699237305859466178719617608026638098236302349030523577432294051809875065012595108702919138706174130100184974192801662408148249777846717017630397868868667128505195079637257605992465847918104694630813302787988171464819082890089497914032648597365847051487739331062294952876103685206322357899426062794000597897555472108278005466851082586679663841783572956877172813275522190972825234987118581122418199518446964087720575560832695530971299724183660217666863742065984423830805302624606123300472531729805383580832119178517762613447089179026500191285622391506784908414866212408927352508752736084831855769681638514384860618297866805758363872890255121428426278147394008183638098391156619026503170599264511386860884766352316175063088049673363232190927716510519104063462197813034708224887714882201565866902726932221335272222561702900708292422548862278332867991583947087922719012434979461506095195877789364902578410259270570216449768917254771978979311477610637762872669130860571310430506867448523431036291643256163288669676238122757634585592932337716083510073703739851381671895300553826846975662479329185343430130696347538584135651704386966108397025438112043247301417729478941680611416752266230609565032507021554082890617874969013585551722889508658733652376359430618694778741813903346907585241815150735087890493547647071051119572294672603270978652330791721183927812172397471648064887990933591808914350549756956010484546827569319905366214935502226552731184598518017453083948433567301221707539908204918025335753150003747900333547975073734345453499069920137710231077776060329622263937871267739437052803016069533203740429105674217621848582315823841197497644585980806396490991598169236804709065405659561561037568820854721118939892862910108216682717880016748945951925245566787763140262288640530976753388179000156459862601088914265085927381443593775263674852997621424161744729806283851249127020875571450075293656582935408628063182762932138856589874949843946713556809139447089909160685158128678393420598993055860707706245280350595647684135346170902139417908070890781452327757666642686741189559693902717497703828419478497213809869344887314564355546190213911825156698617150592560949224415241500159839695640232917833482334914226681784757040396112583893375933109601931553205367092392229394706369027249255951369969309003442051895364251155608308358950887002252252103615258505954000785239218672180006109600168447240536645594118061649432113342432950430823311467111486284511499760409824229154737418054545747720844789379725578159524858106023073504371513660783793341278152825218390159457805369856046164389314279846760335005753067261250655133441280433854288848776438535542074607299806543348279287559432317835175586105906101662129037645836441462482365404870490006401678732708637765665528271298108264949263287973060321489115523655785839111994020417451955193310517546397521247326914793438164940184039163347992514872389032827256638115000227390548596616436088985431191509343393172985042653266556073348372129772837758672535776337957802820786137075754708467486906042388519933584957123788887735000621532211071698974363837718042671200903547333043093172112370617065376896713732784789863207703990580217797050980775239242322102403173213101088057053136625549344294939754034289897541817000953133224683696142085097250444036604147215046046518372882125624074436301610721637510896740317643860083195409188337555256944853163471444143836035336409244371426839284155487970228408305611308741736163151346574838773057406608924807971382355118809854580266143299167881199205563687354801953377492845920930587220800625638164076012234110147442350437895037587487913433928975537928095079893294666790084474443417078657640184271501532131248078700747909879688507243912443407321447360717826167735499183563988870688390245009542975325125596783573066444169314929264326516511787686402090415242668655104425993278050751929903242002152298125021088714427564451722667538006516478597895649474260366429535586141647816235206081709294720937616371033279778994758214912111579217410989377033201835038883110787971387370502409962855569589903971030985927763027214980938366812034796204862961995300421660353943752668784620205265522190805110901602746021442338274389214122522662685544462431896009440140889384804307827155585945550207201463283994736245452402602682448514047274678149041844379276190191250162890415144807892112318980800407326732125798563807143786973724750954752072761187580668839466207033856425834159986584583635162743926415468535564019995510652077846686094347765953858074646303875022742261470238371080702239992465546125462232576452030611258030270968525925516239139360826728274567107559694034354752551126760666231062568279469250761927584360698164185690317662854932496907427908079980730421833635569176267602582619135912084055626927906193868150859017561725250210520895419331394559732886508097102156987954585173456702131928961183581339687829955049482429599051576245158823764151418561068536192043870292683810984582521185734817564826963376429646229771620939435424124354545372613005169900523112829829476218774372441334308527817907864801086275062175139243452591499351370708362547569161079860428577114033898357723580737676268894774605044944917492437568522338767170120925823655550753499417662347324760717309969964684368514663066753212736623627628595653435851062345673451090639025984037148094478776202561712782202002067169677059380492569791700314330747395806771156072234767813945123092536650350720994747490655892857425901722091453066895248260071702517734841064247854023408900725045321962146398068336360616088847508323564297686991715675598333507297483508029469020974163572737534686101929604764048314576047845368090036953737729700249777149306252571850988645376738390725476091031043669413020681689111640769708694284175630173615498899888076126425878408428781113590147825288987209550570869565861963009630074199845100970870972045510993952383253176286153995509576207346737841127723236618115497960052157029935776916149269799762765335037529649767951360405691661831035468632562894176381209371301809194862404381232462461653033527883787264255713938927726484136754852587162255911180124021362606068846596405358683402476014983386056473309066183760512787674550026496378240985294793105547777139879996951188867480492002702974154823033249832434128520878587029085535578942787005339322248427973520982640704824294285128913020047133020154248473001555444714319297347600258270161181459057026210386432639859020453516866821587958852548116633036153397581553670721808096117116699877144461792371440135494713200555286618626494339585268057024662504659871365820911289860279471871651408030585373389489564638127540354446709863044837201038540462500062616017879670626528785131011348198821378401747183858676851267310065831459181869206449114719773723028226047592273053588639649855551938407579381048938129793317906119166881656022646526305785290131753370907734184770732379499346002196659973253739504184052473755200491130216960036069390169459058947801672041492518025685653405537339464142390004020048562200718220473436716090779158169502317198413732667138139101010363644696880341933538034246792540902386944463791284943104954458019762935363014325028577360095641924434976590407209733036000077172964107792878269189063870691311958738875228011112199314092490016523542183422087684516938516126074196119755064281452456678799931652600010463249487265125026022701460728236595409905787902368920633356874009329490346920589317645792125330620985280570944102494011023824785264676568167680335208253105011199704099845777006802610903081077024025038290197247213813296027668559262892784396165504358340783667305619441596025100212541301613608274194587043435640708902961508647661868690801696101819339916444658161806887982584419427699695403392949690817264085773146260917482608645725369578990435855115099608045392881550116485068520528560202076978867205895952152985968566105685864736467451147724281637452755011850944348092961437368465598435827618454414696216089835428913523486732199370287934376498561080506375379007977308549558369832961358933444247563206601883147797902173384728515151177035520027241125136604179222693087659028162907870849255047214078631220081156833388294030059109784979703371569533501090956966257971271479866761191805389336520558206922535793711809346947560671912824311917180066894386719622854572719258205303053622935868402211797824680977924544500726109115477138062810589804553068900496410736260423060735915836735788274615367613754124214869091094350570430940818222316166910263676067769171828301222050815571809352111557773485249348459511207468112730855609888571758238104050683957994989149250116521638998019540520769644538500598430024466747334049101385546717424291471849108404317484182301665214871256013450781667738325408141184160103992196679095802023685093999843279304756070527865756727394276378164558011873118999786790102132256651013137413570560848931905202653472696868777130726101337733377949284042684030660757156520790884321193276834070575366717911103956184187910741922646258431259936779272154808067877548931463648984735554091928454274737786487091507815960571459289576602127549314379739614098200359514945300776411083788111411650110816808454868163747468185568640719449963166736162071287438459154633930650811833319760491779056071594505514675802571432653212326349916510514222963683766533948344503987528372008663868918373710373737065950737664362754410798193740571282145612414087309772807245135976761033349553490638909782742813408002337588285437718090566094154435454027648545494480874186055717016769942315373753443817445792857727223682942485694270697274885370379448283236589059071905392201182477059554053808976221180814287149982180694552054748682980819547589148608000941850097938969510904409794295137813642774057804199344964736238592633678467558976415085053294685897840651986969361912328782749583134365883149508801224840859224841944409529720607664239577166543609045296319159003558995713112308443384768166476952608616326459358599703537907235185904331378224361755444792899676310258239831406528991856011855544887749676788068628777952310224058898402065201831787912924624795434869875091524796837291599924978711771944065770843888633757214335130712093078255064936832845457816761994030175682435949147236987327836700189278561042130001726236149252449940064196661517526477816488447740345302420378351981154664892944351945781749538247324726693874133155427048928747523024849796496083229620590614989111241164430896236579545297946369885950873051858044854959861233164443492405836026027542398783721298395499319174363918948603952612552682229368192294394673372693283227816454991779041442224538863741279299758586451723659236982550434699547200314654855048262202964810771682160867157184574123479062649480804701906934137598915109276082317169903479954231071015885105319576765761918447952680582424494160829163570797669168436474614117862230936447668365296241014380043400586212731435328338094628753183685230758829606295373478187311154683470657147156544615714776047646395479331325198566786513680970511977921982026937680508409578207902497171967936962535322216996127574866422282338543976295729136685309615667526031002162623655514609397932823687481924003802182860879666692430832208546972724737611866952782890243209937616080751079821288110775567823687641535146523196898596707511396362751606793538795447506385076713021061723684835287186669844000320779249728090399122033762586076189935434367463629327454068410934208617425780432006024769859012698283813664792638058729165204943889420823589015201590404369613218667760925595889297401595774903286082347825713554715234154887622123788792881249110104967818407498045185723244630978255021367846801932838005489142724336607723465367094869198931735381908077015712704353023264399592480845834365333477919030084544007793519465677295699473533489278705122694013609794480191718552263097862014663130879681687761844999338917738088745978746589486528906521410827014698354601226584923175830072436485910079198595469488246581280604395344144864378731257864684385553983328578799723102093831027117355782772909961459528482683475032122369933029560647327314099188842304110814341455698077616650131985096061449840516682224386014511327643895314904346128610262681796996960466298521121479737213370782632534173758370556281824313713842101786025499970127608985703579789284204965937109214602449212359366713987305587968583553309497459303063455581948266397274404096863526198749441749367772849167318230068069357287337715996777588870416005550488896670140432009956806973392512095236243311013130150696694037160516405536634132324945558947110897681342338141452911711662697788013537238959503152163160125291210586085937890979614387845316751867643378677642776519995221778562291919796142342175078158936904127555637236250054477193714791818436623610376459500822324418253645960698313262155131102789876656620111662577404181156196637839749813539794796871961896634108439073223393526646767493652218353707362222135686832578420662160329069566442429769706180749599169026675628181490563452176329998700954866670762918539677740121347736512328665084528869774033137464210465807464573386154950189781177585041449747977761742544172979838116823943001982990489786746873924883263425450748632470602436253346345083431463826297481972618239295674445094215160098564563814107766416227318623203917854717928783955195049572640156818768610464373609603671693310254955449380997502635106958446758317291213507348035799845970936182726785172393232082129253093644906490906874772084382377088524042170322539368581471336225449245640836081059051478614375350962424794873721029418573317915027291348703663842048383442796806972220059436679553708102629877167992949934776797491712452987905940508894017132282459693732875384130326646481135979211107050642463318364862913069712656593968677426457496089976635009301090646376684846748232917349035687683981097637848173386875934897384668623165389766654869938803334281359521066733686590079051588546317251920238021928096005974208425531070284727485545926975468349211194308550801814926841296611193215387140699509083163388281603403501135431949694244861263921230661615723009436218983942864313806067766360577459082732227347413842185149892821627096563779057958797747953596179733644221967490714624840360919356459867074299220414432431815791945252913335363957107851168867764080721755077147504337264522672288807228144622366579485582169978080852690560401683063931197644841639388941399104876669647925512462589766565136776534484774333499159620706039327755436153864793657793295936198450073910297104623841997863924194285063581462066417522108887840285830242524491424906742295230657410920339617201010797102276324451965915772424636990672576168336460690617318789734696404184272666820034734043243889702419792167782431991122633985728236912397138762349924455809548677720279783622068840114507457990163043030765230616574397013035840877654655843261646887461346156210199337743892653764816500494813615336385700533014109568761577557168879908979354823452198875277069187977494760752560716304146822413839846840504655323521878791809023591161263462042330521831303321279416047512226453773821618490140853234462265333176381660776051350910473091628443352623822122874010917523816974540696664291379080241658608898884374982024836953145397221298801234864021284781896391155697005471969689030098581468589617755530585964305562039081771828185886560381379442885156983378767267602509683263497858341815748255528726705177194035075346835164250024962162662342465012866831897620107904252049675277506826624272122442667837850203475349481672220850669836565000297769764672329079216265510693462368256870250144500997162988159697972560670917905581268339140936412939784353426901335706091235493313042087620465187725379209051452279861255253455985181502729954715471183006008162955008423733005063703935794804384144615933556593825197338935370418446937011694134834942873109797903942744059931920231742940477172122946045049149170242335672726081335722917209478879699044900821770336166224739223284586233277178994505542872412798081909967173732753227651066680490107261010720771099352889137407453455145563231409601766172326663678578116384005524631368293674894851331671349291971974860634068339416799226755673623253138829073433226857849937328733581792196056173533369244294273282607062113156724143224051922022263354102840052209801633053526445764156793338842050732790124011599971969577174483624433935523793188682527222120567903770421450282727847670126003538331132757257302187274086238424757471227053300802527624869150748267170634366952530317687444210817806784117420477028391997063579420056211815220913408102484701597012554689250393492929924535977083004943046982606960629130844478644844460694666051163611246042938058510727291479383936709098429756471383169008875646937963386345873630934655873624843511554555232473504679957910992937328380312763872467215370896394179038486438785172667142460879362064144082603031088479518168245044051261112681807270513813935165257809203651501793230978320890194935489577575382759150004228452822838919443845110554815876382508929139654840507298661856149379857651772293288933023507625000415116043125960512972803847370843792514521458179627044761777750926329087870881780973862593889943082366147690295120157446129404451557937733034329778058105216627367921688808365275741522997727130362274967132133197177064815196929719323543566809883663977934290571047329721162897182714022163245017602254244289559798734992972417772295638549386006056020922941828141558008809081511366629647867557896858268790046513069422793675069926603975458823376560931439920767218966194595333716284902274321593952748507822038005578194536410128801501024911519163661291552864871005403000812522829548961607508484331891538003756164473725115838609863182467384820441691783694994844648470006307283057202165286708987354583021622530978162545633776419975276711143875498725619985368488120958866952567482690689183753022524070678748495839416792084485162060833748882132277142751132923758736405566568766967809547923869895753102765127781036642788251273184006201207025003888157513288217652424664488670471546974725658666012180858605158001223344334351079740693397939932006310728802967115988295291005148304490170636102732932881513904240782863363100744613292961942788317153448133765595684999795010950624978531994386716738288493640848664155583534279002771651015309195449168388764019091609230805775113331382860116721063742847768016971296594313400075039455561751298472356043299951704024265520086041139822158602775968459879386003927587639525749095362559692332146356194111256665315727041992085421153510959255555069667579781899913932624086654453232593354283353212991884066878172596913322344540375074823894553406125489863659868986560845095674988242569618410655156702990636457751586772173553584370107871588954181342974388416926060689529723666861111482939030780559260567391133379038784366358553413496401115188336961862055739263464557340340857004905116286771297867903015054133398430444275613967365594465702321108488454714860912788905309384215030986898063537251840362465128438764571906211035919394234370232151617053253773041403079287861376905102141295694608711777372755049566334334941601549677274921273430766663863978394501953425245416112182098969428989412886716177932214344538173583969490358862652048281470362144293670637468406829451844781007789693230591217121931132135243649967975851694646144630840198804415194795874741709252556044893948309698877035321558201396829597929327707468941441960866062918951106681722695204228834857899711198071108290527543392578067257493480211706060317549873008227887986261169160027447204380873116635161057601020350539473646408447509141401285466214387518188298530540974074386025182663678861254292778026867729561291135191325935257938223301646817529826836378949358301894614300142027893375337329382129414610439069589223583903706430379449298830328189945830933157449861298596843190610844692178771401847364133664313858578922369225065800015961640231121462416513835159698712663201657779099429482070265980044567289950056848790673307641590478374626960874893207998218811352214217159704264915283063009975411020642334599953490667658093489831640390439770023040892521518987985260514918079343103787968535888271242690508883831004126385799381840147619537692503045271045677893451168420356269322371377157652109481804464009119435367761919611180310308967284868712585246267291935777858596150705039010442389864485361644204893598935118941421659730154329191696432551284991180697771949992871116017341290987044865487428596639558350329772023656442611109529127296570915997628553194245318740103272489569916673105956164457429995851754477276720718770171447582254411922932480993704233909665516522194551812966058096939733683545211384105412499535899514815991025568474368089254825454535967550333266189466010512098545050831461554485859727543118595667211386067098801194449791189822069312668370863737393012120336124713114996046846179018465028296228815699062904524800639040981788092224669970667077394959199680873334768735595865257572534519164565753140848501284840082338150612098006032444132320997235695300447952900397542515876703944947803771430389830521274001955280291809698366778387485004666195326002270554790135587470088450070887244480574063867997558377995124865690239213943317624713058496953469729914562182054489276177695609541182594111862073365579050152262925630712936077973912734561389674673718291008777283738860962525180826445692120640632030061249034232368989661785456752721647011270310498116998374113035711671867148175170595082359918757022792806194377621680933878107576795016443130542558372958410164696909856612340441269117694279939145630575853519830057140770434768705212753650048573497692158052913658304328833783613112578534630488016707894412983852967661211069509873078429446100980995741157645736770623531637813544073722981409458798767270828147019501486675030495494405941895730197097910227357629017925812599073009622107282092036913965902254816840950272405258995268403347220261302576929826320708810355069178319916481927810769942344139201596724578513666542759175651994071022554804327248930045411384459405986774580275734678510321508862070467001312973392387120426875005027251704464609705329851904208746112871454382579221252942529338690774109707996316162789901515567751926221040286524882943259275854147633399884182101094584390658587794460829332341012563403977590355978487278697273054563278824541056657670029552120996788893782631781720334370150595667182820438058082803942383396196899542064526147324835544202221100513811831633766582217839051617333049639823812938640876321380620237977087127469799806525369606556267258416639211096903553311900897302192535316752355886633284761005866326345340628661422435914186874958237165662298020234422712402494447180743354160873221363747908580830804654716682612549691100782432316589722974009659837102691854729231492782983318934557301719881403427457087097947256306156771999015070956090605918405920702946304245011983327612966450848483125307405827760070507304441757997970181189024540861043443444396149156417638758619105554699415150073210582465234594626148496209163069553544853475108293565193806335336772526095050997707692041113987740393608037569784352253545580326546967649501872529550324666209024101230395050131413319192648295941697059908254804963468347862393957444174662868728524379383802147791966045055456714948082448628174274677260430183787601517168165174348787725528955345465342976989255962873629627018961280621283521070359470180545768871041164777175638762236528556320084338653203995565598750044439357074410575503894329820464045360027115919651536429042346802043345652236164515958756465781144729751099478117929677053655997688300971926068686439664791698038898366439549012477154435197711868978866427223189239246316624293948380296968421507894921621378844526609168096375684385907832764910058216779125646644868196319153425282739538259449179434167546247050763909914601900741441678764477965966714563182114116280229231592272748487319664397345827975110373272796999570739476277388607218895658882469477370295667547108483790152209501741769844990985444252791662972087637099331404722158618643103124709665733483243963699502503287701379195013538253589011506989123648788218740163101372975589585062265892120762103968850421440046062075272068323985269999114895177314941540497607188525276652705721577824127163087333630864982896815873765661605323153086853167813296652933677880810762662203117689997007697427833398938519689676337090033127230608950103321643151111587024112629398651426269272934736413246288126618628374039601702915212283315173647120501440135979671359493952591363894118924153255371615576832338035489783900326145711363111317430425814230738043344753211009867376799254758095071126632323075262873682507126944695386605781768048695390811637408092702596688508228557493211010483550743087566944592460171691486401783674382815582026893028180132750909188410883379450290403015109625083306506893303998715049226973328437514920386227921906668408930870240961036812645130024476851065543894367914645013920641268391483879820446265762493247146290694488099238742115761432464951883227781533359898738277560678320695099392318082313541888374243968010749840243933847922936148626720542772513906206643163408881690606013455804500115015023329993547908143408649850349999943754734444177650332308129506255881332770958980467746748216092086669889536102704105553852254168546962382689995148161495029319787886704327347773742190812194836563672024929241686304257149491327544575239183552199042486398345001630465212190535461405213699209913886375048519311144543492402506718833755334726261776919331551273934686603049347683375337983617381269381720764041461898395085298492570501208042462184784050505468734568464583280407565438723135595880055182756829395354736983678726088961235733153448518859060371370151019922013461287998071774714120059306522125876239017180439846081559006934075614125585108244597481693955356805264925308318807614231452715555410198810722033967577215505902566996843735122976789437432030774522590257415753979311146343030882052968116756086625619749584929530717458265118432263323387191399387962653135296135292390163621170491212826594266593541091461662611427578120548121749022576416570263543217879995437581562249790486778837322533605835578910347505713174482325649046751233402420633101077853865500269390801281796048527286160273307747979390650066598431768031425729002550242988760336778218218205008839481989227200826310148206283527716655456759858614298812115575457814396816379987258913423355529365734178946687733443731779354447521688596766856616497798974491545120553300570032962983075188656380229528101515293589373806668942366029531544235171956560566451154075186167474586216796647464950605770092988149387385566654107903319718964289750747914011924203297223517583663860713202918999683014450057644514399520064105396851637398681881756482052265629624519660160677236087484352230574292368922910999901926198743383452043051566293529838825283723486411596757963469872454064115242962633834634925571945812710808025608668390774131485164063264865489710977755513778376583001231315755792742394713827356289777280788188296418888791090096051911067547662903872245059988338016557343021380127008580582085778560551554417286861589711326790770870719096819650073048702046358915097511888140828989178734853915258384065322784162849817085393811573998822381209659059856402793785336862190423169527616714495003345661038241198245442984113448044115957455465655682967078227347847270026956574916743836767792324074140316246430631458883040965946480240136499347025572648046729483037834224508206980893383197056880854499093968396220092494426095468850480383652940218502029515217309829466331203659379675070853739963228172597119517697969605559162667873214035623202283353556789149544085881276936150780324708987873909056111848292907946851423436844592566536434277652665452520934637894356375735257703479823742039177078916501383783714953148009696639975775428318059403202810280566685006184992349650234240322615852676525128764253247835412796820162191530795705774267151361419598034387104598758539610051772623307575060219996265536922815951570964302455934653611319942199575977350022991820697746255745234576215777833743839299652343295960619772745312893365236473276682105266533092166773173682114974249192611254923180640453449134341601774803111755123803794524630244387440281135994999541295608969748241568417117680006872573617474335309902888538033965396918199371072147303179272492642981359726100287745237607482208255737222426660063783314324861394429349693312645041630657829274400035938140433504376843077985643188551562039856542407774930776222873429267041305328169930378789155054164360162277315908059583892908123266721145058451453511889704586192633995166571890010054535176402913929661992599459328721980798670827377848790195757479270112432717033140738802091669245053005688874776252048791576831971690507292869677186888250897222921081212194011121300933338551960886614276849817580312914691742303883467222198847033518804684632514181386507034121463512005477837679328424350928766831412982834045921239595790345058234066680673184831154416379361731102987516516087677617444164303751973406733960709703273229622443699545111182814075667792245370695654227856124272183170109616650749590668058730160299291092496137950412192125177300310242555748781535447921159459070271512854571446082046979121823876001460149474425302368776116983127201741834291510309885664961410386286812682606074361344090255594780020650468660372618876658775298667577291483835786459058204426067766167741333024986598788579031653912141914119401827448731135160254783929739409126163931898418147347005900112147671161260588294060526363580833140324036609889567706409510619462806717404529590958782569978613584558321923858721676250086471335042730247096590234506950945456626652289279883979978283648332562757088200327638272101633197931238280395860515441544140724372730763149248187560415631814461287881543981065097370091233091139119627071162917291137378119323056075513448302855804786197555189632633286134933981865573527925794146481846932319312118054593702858263345963306459734914505424510189404042561550705681572484920659951179838061465927813361485036248518558692259361143601302822310527036879680968257954504121066701489688435136294588612647397158031683694522158777731686362258313963996712263676669736184799605085484194119538116167699637455452058982338503878337992750474928574269640982669589707907951972525006522257857670652864234500311596079334567951315276405168141199368281767781665510422894637528616460078736308437967165086743044381983825409062097378082218508110215710286018454638102212839832275299838797251904296288976079896916073097581486966007231189570865840947063383477812242208224330763394361347115769630828053047515546400479806751480341427288074883314048282405460786910969785457537922568572690465551457184744193382740483454648071014373395993925205803862703679493690302141160836874144656144240316335663940064165935383009239841725826910081425447015435380102610665716236439498275875196843482502689539307635899155417214195677291408773554733539552202376512690194021264049772102975031298925551810831408172447592734615049916864514289773823299704664486477551662408354874358298634439532728108947244733473818606961742544509629478392330417278589625350726381314487075452193182140379558114232642802196612322922750729046582493358141232013684399542429053654330446945646891882143811297069680538202890710501305692273489959793876069303088576424824687303634615396560061170949026093820824419486857316918008556062958936646255259185233189436772922333524784811493449818484469073211381350496418144522160251854268929031088499294784785258336159447322777307094194500743718892577076007206106770785062969131546615181910325823040432415553044741574204248459504677303223251051979668062297810218190786995643572409571468738750484798710590221995255696296487669170829712530087932230843197731218560425088027726030219861783158161263292337210659752384652679974933846335411919821029528609000075180334083648004688703091962373675627336781854400832717524140116989746705757994540414157594848461401121273346835172575161015170546544334173027135074771588135994328326176825167469804858461698997041594585917860491619912898777624636398821644687863943714505816252297640839264351968462998289559222274451573416611263468959410045221209153490594381521506968908152332797824323806458272896991597777653136832382562457435175010087708849619026620463052339539453710264375270393734235111738176239339456168587113633510452342868913942813286205981351066689352326072317843989577617995034550755155868898662332037593803078630198765403664179488317735539649257192647964573918758941199734619857769394860405422874067703399988305636848164185491298768251892754482532748037011196169175247765664892712200024924535167461850824615614163944447743418301941142382469730898488481357680681876137045530579099029220789777604197029346316114985312992606376935225894397723914128737619525716247695866235998822912066617386772014787445498974502007084590337179933806711214617943168570564297257854740911908983043780851342614858502040986212064529960603454083078151926600324496596223602673332387492610702291850516595312839578614232291285197449589969499779326325666664132387953201142554208058848290923921880806058603121805528685033617754087295111872234978448680971423474330657117857155564140035599794858325332967379641880206674323756193673360771008385897883418612491781671304859150325860052798702645750826133689654572863337143133197853482499699783385368325432578682586849374125791739849008176187113129648419779944267752659430688528727717078184061272063297615211833440270507304803899636696342048658408065009008564831932786940684035008753019892117361906842194973278013995242021836405433185516569800118113271376613973133993663551447019861465181912668165550576677992102016427669564471120087383155709745151776027323431223295368676737481318641862965600599749782748255634384706178039467393799107472503561417245663953413240093643082774700170093407064930010086932636308383892967381863416416718032983151530576594949211035089167763434527849219825688094479809307141037670301203065436199037798097708955757941354861298200528229273846136080881485864976491431951565810628098206246101868352623859008186392264157996975159483875721859554131848135370780196807530197858333639702757936961983562869720827618420787640778158540608273974935189185875131166589680248625867724487918220587189392045044111010780147055292296417093213533082295216711176336820639963615941139209504551364789580834604989899579080933925026819875470630315310500617770918850315058703978098904311696332547273634595772170444584638512812843146409821661858266246438515343475936101638475670660514324619180274294496352706212733210638872523909277940648820338628876706791158271428182220449900345695392417724535006390167421587151033645863752015724784603504695599407144754687918099084185970829216750744984788099922434659011357174532215531242986293947575765494199248769262397845883805051927640309354778465207961326397154334520062572749052138803779839255311932887383222125413222242223139131565905517088254353976573807394766941860571430213690127697272543635767749852285098283839437393728370919044203914564157133027997672110317979436244791707162657489955859720314293836958705302606910927889348006377471169647248435407546629957627345404635142643576797424509502335269362487772073852150317712698780461336288703414003319846238205164556793183037659917323464296040698988634664530999311202804859530574870173648379268372574849436275885334978640584451436617767396564880995526297944087243468756234078627940118805180704337149164673884638032252501008096880231934259240993586434158122170538268261215982194143084238881458803558587929424669960382756463374417594827279709044873758276299255725350772539070565341046342218894272816649631228632419667194990524406185010008421485996609720068222574205801456814501965556402966027145432863961664959464577048971081773754562271407093770763482040382994826956854857019913833968497852239887924721048732576059105130685795692726199434887365700931024056466850619147748164899565487101582325230573107037809323166345936673910677959222051819149518511356606955737685603824526308771229215754875516846790565412799769405405151632605160573573356977496684282859059896756297013288613997150165331981270448545675241285095483178016134999063299181427492571616998760398983467007063781239583796283765904984921070095051042306524736735160957345509927257685443306703052590469975769793931559398376656736682880042004404777027054622574452590257612031576414052668213834544320244321761079362258564467961014373195296642253165157872384537091135233883539323641841356803930030065665215839766210631749561863342535549840347551238941852338626900480917833139305187354081111289862543339611570390509991191824914576298862043428381905225464639068310182093872714206032755550358342909858346088169615897653552608514368272958251080293237164849573944114341516439160472023870434545214130740188221270728313276187942486945320739094514870984569047079017405957735617432494151028292408626399092402012939980539935327839513124423235297559476470210187796782574697655382562438483228074793696669559009680087497585027300337212831407289640207396114568271638654073765441955213389223783971064265472751914781301129187741987926901240243752927081987000678343262113058174176214864395031573063802963712679910510045569374616633510320474080776531707716593080445510592855617284952687527024827135907244015026239644329438725484305935800211035965934847872695614257011427822054042486429972877061024847785660053999601557575139712508460022335068387820064852108460891259759164615599677214520159052318650325989519531690067940308410203048391183866897737079988762881394680020197293322778253730642502239458215973477766611517688672888211224172689720419133801723803533566774359382878247527945334587407898554051354321860001768541488240957973799656647063070159073540411849286030179239238198240747853477542318160968208536855689277425093068354707187625581031793517460232068504296484687632128871061885493882136475651666228904134577920376887322539524424011681007962185565309317995379212495416433523396168448910233073383766019563611820674610919670367388018537489049983159750186794973928896052962026007181267830588878967934931275636932597630858850018709149593741285785361795641395541878017383744564226776602177396466717623402268712642659529810141497693700109074258257858431579239634648532123636790727251331567895677550227825912270700284097712170253622109952963083562652668982509591469990692375630321414042002662233384470993992982556449893456390320860506540100256265624238915363210924820524801291587079811024443378464176787947722001410568496997989713773067192123339303742018362802851691726309421094948403040690990424340039618891188090676293832725845664281309229205979747313697688122819219795076942836360282112943779135046324111048340538842550087589626247424545645448912375715192880558871825543815543745838175706301695734539100572815558130505477183816019862793490498433087709113152206751702600135220474570725685126607476306235640749035907397674497790600066083839334364467821888548477674131737345340013591065161042829092759332620714635429232845851906260494184447573454735660725162234706318989096874196089132534081378611261649677494166016088974379016013397964564181154265578788858631600821382702116542408051468124044884674239227309694097317943906420543901581715809278608531597818507014758556634015202768835749486768529251451390647725902475829635370707353650495102498054953962542056150202817900971589051147869296747495923119534159067619103089215118603281241133284995710356055529719527424731780729707400325755411404011808697666337297560598711003970295871506871899506036727358613203970133502817810929772689876112737090362327320097073957540119491400051921130212676369435182329880380864463596377803183514548353759778802537653852917715838726353276744794190336522711682186652341555741260034654596391682807099395214005675541166596854018533498168169414304600251708926556212633289288917341905895533035901044435108466111806863762263797508163422509066399576709074592220169871256165131049708017965431979537592642710201431613773168473288109345286586263429004970370688342688005736748003400893004485849265058057868271386313283467298400703786776459931568436191485339665947592866095378275511899152067244539864656591214735229669369117245637994055698686355751724350803943581790191692173649899904437313357453809146896383362311696683013692491855824425511096401734742607731460298583444828748102643327562124688848859783353146003920224137091775251647007703292959278388501974075282591616129252569851384612613132702114913807027958708562818256886136960167945883852359031200805984653044513637150400511816732175967733919019041198543131687688988284134595484216487460076242390423928633840612184789267254726670840451020816973931333292837927190245083706844932729837297147100172253530073452459779457886991459244948133947707443453932436863798042632430305539331471858790054663224813409895356263287615539823898201290372190743777596805588106445320991398409194931710680579964559460195928816037494462571363802999900799870390633884687798380782513445296883831821407727020324264979959948919404912217024484675901220056838647079877329656395307271156583164253561790716004957447185291000295451751108909083720122058347234357582428047723583585185467769971154322236166584268397861887249807946522396184803622499012441779051225825019574242821968734188993653689049806916487767650357343578411918432066684984660307541689610109051224628138773171256186908872528790077817710851587296624813182937333214489463018707654601315534675619375376754062490510052588984139235364116142107455313307469558382084965970674081571825063657461435086716859667533961796373149823709466822760490813188541538375842059733500196315346964508173822670886701167402651177141452471807714171643951544636636320796301042047265314530346364954348775117948296804079396973187622835429769041108004534227017941217490024988706566396118990041705415625232149076837349428437787753134711072906109686043667183988309571682071158434892889552447390594257060138282128174264233227334718298236299710909490047433230215301617625224067244426374891286229854290092716400374784226179978159890955770362783982349354822131248583889353109340601871641317044493789746145398788352302162476746517191565558831954879659191678171480516730277011489083470233034584053800828957186711150674747166609792340570064399584942347983006597528074093189410042607369536937064062994244495594133873327978810156355092048778481238173686801237811088021256592378948542228612724337793744427434241562287890946172543610599123160212160096456725965864710710693018818048074826244808926229129448694653271173747176556660638336565053714017856047328738599797915097946898389712627567263194730943340259021743334269502474864747973021048024385737799238092007002284920130933220104232303496231332208603915321067025658797369762094205564435558254221003805093365408124935416770704532534563524170710801802344121251787347390130460916729756539858818158203139956360559078967114070984561124919907714264003237210947821998227136366331019202133592653201689042573247290457931269022736283689232992953583019967463266991102028465716806933019546201278261528316266549093784008029719505549093852181465412537753942872617696362666624201058136253531909381853596019079762244445626574719336101830000372006069942409227879818398951543087116636653097424856694383235969501975173181665673496707086890798323695043963040864472820932346906656732313351640863860331133683006901384644780050612665677813114526013073895845498050029433906983413506701143640749924418709137921311329182120309700244666898743819256354486541585066950622794991699962884649967758129105839936127459609209660875521519397697795333129041344021456736101665526509577866346279670629213099637974855686394992857593375830739625225884433921543183191329086842125317971775891941910328187389220732171439612002080586988868038243770567271741370882785155698648276767040250352563126027317906311085732750943721260206037339135328626699112861401972237046076342211198434488546699387991720378131340796823579316807604355979179443904826018192374294409216819793735914426992196422400476474247792784007216594329852074848118558593185227631324534754582109907803868100016619363866713796470457661358399133946156673712894219385033380616930435366288125167132615189374729860554169971033725687041186641190525411581393787203919642071860059886806050198100492266459038195012453262131031527042970403272553067092086241316991689186005949567865550932474112998004061830432577389783226440364491628001862705299353098135047364388973972474253866538212541673966898951046691279171722164055163987118888192940434124471106784258972989131324233705735697621569457896844350197602913924178917184808863518097207666598864363425837897417945397944703697431568926911467626553179921174645824276665309682182752593593715430206830762541763368690131332166269536005131807580844364323981587996266886007217508693972352345004824478508892633380992379251616990919021006678419849927065103848262139482632301021681227638962089779985355495066785710312112322131080636744759896209189782962599142171861539547549733137697121561665145669784839273424007407798345958593079724414306030838594615781614184926669144749010249486282047513570415099983396997216492089503519211255972737843808795923456939613067336556116911194119228987689347800234286370247644262398915876771950398257257993652493570129864181463480774709965567884079445714564161119574046481586166132287602998755823036284404805956257144450344558114547448610600893411924434977656017840043243877089931875461116749212408043327745081968459812151675343055834293067324412730799740262413687863475093053403624913700190641376283495324190784637997119707482391737374966369354823270137788757818162636517767772802503176315571416960838714581548866196722168277343283456937674825456677617590537570105610969232631147779976663560002993914549784172262979492362429747450006008208614511186334232922151664299169960876204861820519511534635749209072929787299719153152174665295886554204036527976820828818509881620515624241553659996134637874493646639945853336663793979073437151544469983182330763289975005892035797380734193009643770242498874069803784158969269214510424714283738559615470215165835982791109619762499843283563204357029463745527433926439820602627425860623593550450268825195521211834657628273199177023211150390274451966493535968503047424983394522674392243096562977643613790275905401248638391275038665002532494174190424405449277462911332166937910298461482283883914939858157302644694525432386396636561311139810531410725096237168973704660618950803260376243897141747004267070395154605425661334568465440237260820673805787740969107650620872984766386029953312322953886246994156138348981941212581907498837561695169821507696356538162179421252420204747160090896292504905723921272072821217086044925801742155007441775078757393503779073155786352803944687815252190100542331353402104363274211898743789637587972237835119984246657322891936622320220535416507712201591518568314475611094030239582826084046495125640642600192813087219689788024336341285740018819939265705950483483223662300337633600192579180619452543447065100381704661949868242196391976558966537840213795858983439644486644638042289647412181455049219360323942620025080890737207838262284588162480476317685804296870263205856218585497310498693133947678981265431905137742222361133829342441159308093376984593881904910735745823282559592502595110185305687709197221973704926596507103541542021500395240363003090875792739768948638577812285044048635639379435713485839870830023463455865333604898519820252147747303099608099007148911501871842393156922208846335050968043408976049428461260262959550272315691862046299309136689573056304553014285223843180649354671637532106133504445738546835253098480413788805777648668424661154685607672135883615174031873307111926435729113615466627641826540111704080547851288957901410966691347577672054368069565384321756060495277014736638670724998889674121777943504286249316802098299826833945642339755753686446344230570291128317872064192815620522050761380368955310787345965886914056793308986475359364293598465173218990229221697027418235846427507591808732366870071526595850277106723110609486729783696467088714327286828831873994084757135017957847483451568804154008747274490464403286127698876420697259991689627793767953378876500617074998938894058078706462259767512020363349221589868708328408131248705510658205812123706093132989658670861418695399757151936817085943939216294531985491318286339857256616330819706274803018479727742185577444340594420298681643902557629496125726390952434736491480817153407755779019660784096815561812173458263576696598836779868238377263404029294714260029669738729182467163083995095765073661821088150995778975720515515182521607729309705083484422873018542559212572442233184442679847732007987194868762416948848718887985345793061704677599947111430859300903228081261147204084454983666699296081474610538580430920145390477473864233250611123566002925855922489619084316006719335243943714752522251816090083516988554110809633899290088080448676167643267007841438601793725671210550723534895104562566866666786287026212181316243515142441642781310112567480575725282332988688382923597613322861271279079550477440779856925239924408948771354203367844705446499692262956983553852613216290666726541168897477514000371518718819241129864549810020312011585744817190577832847737885264331704660451559130581056539375725144280463027806108276070084570701056902630535070880754862720247682620158088044419722285979200344569013861344250430414308292041784355687324053605883199094478033378262600715511078850042018270545990652591764116715071966899568703429144606422381632264522410013209953911892955062491576444635042905342512809488307264437429470038298842884286424490757324266951986031351537282179192746948253371391379577577052317333223870340609654969405714859122114967002444638944078218818822454241498037501847338671158412068004876364661628148422602932086917067217529758117410969623508119677782470823931584662638601157346072185810468309626437077839224310780528497345744839794924857445413733403795033633669243676142218446196211091746999559004057983201300994944993331293540727152184218497044322531057528811969229240266072092979788093653675652297748675744026837327710993935822850621381063586573191778745019860178985846036435331725834331173890212084795138906841837562448421662371563557463629440954005280421871119738285584491969913749651634396123773720552425176423211063980882440293003377399454169664778704404177697395456124983429807004042620467729329087299533146908386855374628223894893534761990793827242257582988768491755621083633650016353733618042347843072303705705490995400269077276458197578749937913477467720914946064696565541957564831855991247252596768073972410418973283190398702422502768195343520042003676051085008808570208129179822403165786284857056726087714059338312197527819819416338367195945515086000934175807733719309196832645641932390731747273174236238614891017445140099802211476535219444084094725556879467537384109013219704424415912401133355559877847374460757583662616163826375391051943684922599355687704206825688249375427920068610943073578969071950205606268106154113728123631717232436504696748736636571785841273487543651927675054032390271280096625004562870288078860921319131035460492960199952832667612525896921106474732197923224755176625984996991543602675203435590470839345675168909847540025910295095063469306743413194902201299969020524540790829963465899360316465772238508072933322971447373271915787633620382998269970686260682386045742591911718171167126089659759105893910683562730161643258654449108397746963839288045008076267648595036728172410275893583704666419895701621794596264234180123152697127675986878004689466823743576536969663883298613747739219347574794630124017454086239121082377776107856707497470939761037164275269146181348775067065286232039679071876436537984321216464648868673814210722992589783616573896558570881321699133742271045993268983681844389420451473374488099631101672046032444064184792178562131684536352098024909420781843610842950776906738072501327897083624736919788210886574731656503106079599213231382833951565970316364382860166329428890452599098726269303638601831610464617563688084238150319746475228997044463786042974128306959843004801340481258349567677973778587934824642082735201399553120850878053113083185999789957505655191771539048922870841681959515121928810365646913198457412742307059264570986367967024340445654229103808811969737238474621785895551383823889536765725503425100149776744602052698974849737530193223146737486820880869500020673261271348297062003283055253732389995951205891900352539422665435516440902526469953155574347830679278436374205245882917224132122546740580522964760499279491033948701066011692351736313640490650335588044884492800508346126122913373083688060811508856908626867632235378617160898803545746203206811499110471677098395243572500701221279461555230493581655221924000913231678651126274956724908423401788690075002068461980081797081517119575815221186805989667543294125797250820384699921971244912305217333147536449648050591997096826805345026956436492702515238208753847193774190601761236779239446038350374142268655281864541586364863958215429338805124748885232545184787645158724794516257561292209772847168124938871164751918289664202235755830592254170881402696212020786190354364077180055856187375415245175495725918760874836133063167032085681064828937938054406932421056452626760765434504551032714496751924038960807240480324913754528736385324251499088146427777509160896642187443329007331508290103276044282418963287215097995122280939732623411951089150408243325337408394448347711994135183967107679951476860671534629793223706333222016331016416691532965243540043744198892291980981303675144339201491876201992878894535377739900874493341911490431024691554012685323709385685959911219515277214794292214099488243453708048118491284981174378720482258041682455115399365073886728753756859128183123487254731206609462980842275250578315085864776509544937418284301526396854997404775983176187440577373370908681712878302490538061343864037279132700875758450340029072255350231374160161451336435874226319033640544354196458512575181159164990416168447913014156749377581128838275182078551176308365792724990514592272112722432497694060259139722394416527917549683416369442000550274741494779134902965698007311504797477152682824953393466478874929938718057139035510037603798908490768602180835118373795481700294022612985185010194090810235746520346917056986940542212377714506980321665067237125471471083358350706895997268227293434855203735400119918971373867966598478877068697079348680927799424001727915752269405427683658937572479162607127339798016610513577781650869819181817744893475666797692071688405863075513086055763756941863284777966805400015831018028265514309025590820999341293106329484412330215683339644956009173122588310350858916554769406010162248733005845028427038071137930741613197150954040687294008260189488285564606522179431693881310415005880984059449469594017366978652743512485383701583004850290462966559753095145334921145199216557745714510626820847338596743053672134582323649005186557539437745780320327936693016883612642645251700112744467933346782838629244581106967840582178120879536103323675853636447816707584719051538828055523646078444787830965239688481206241834429160754349765657181223498585096355622648673298923608912756077689911741445014450143429940701529401557385324104518103617881666785109552320423682367931956890980963686081411770122261226309438328021457219280462948602819354653889535891339725580024107715727542675773542935919451973399932385893557316175850685353983906588431036334366919914037834873959976883111248391029734716649527506136156914211419752249605713937955379374103127028635072086943294393435732343648682988925829124355347558868491103248585780727482819472353614563980639623046919309230238700005734161795713666505954672078683016494317501862982771687912255079915308324926416258879150929509728749047542869065940999320510254264990083871874244843632055560290379219114922254226486205921436844109823414404440155440749846180127971293004494978233149559095317723872139347253821405259976524967070293360120811827469716150369051329702297844226726770058194374706859750742571484202222747538125078853229197295376310569125057194318780747210878716407786897481756449428757600237450851996022220364270109590013605054270556705702297895423602510830840056298677330337623369985714289470944031693517048124562568259680849934801713548097304921845987205998984954146095524852251554866638557805354115765340839579658805257030432928317681975265320935257250235868452543549878735977696732991434038351072190979607429286501665647789110679859139704241896271290282074891625793395179760693632890382653478889396101227979171408311232881204314280260800042812448417873605985345052373166767723485056726717606936694265520462365063957163369688024731485485497993446766334460232433188004613405405375464239912166306599978212578553878451364763143477628230821701793775371385649080890153235871618262773976498502147007314899168453069124610580131857221097126915690388376644903448520563400665818298883271869532683152036654082481496353586776722575156176150944486606818243997576346623439103499091185161944748841831366274993689727357134258386243354357301264006600658585746261033338791074633928370495974157314165900792215221877733919205306749958526715926744232819391126286966237297187327418440538137200863887320189655557720678070512077989071926933104888110918504202343358459694237199551207150534058037794489009985973609587953683984240755357215297564606318373467537588882640563261367912671754291066304250319260251519333612808037087980966630643134480683960240353871629484517077883927369466103801088349486741979567307805130266211528407876235402208514741037000735372787758928298686455337153694842883897701221052365224426774334556897803217873290223415219632234639801742441355575771685130912882515159745955358375955728138208984792207387488373679372118860531921395529890342677396421147671665704138528818089882009016787969353719870854507368898315903153406314409473686765269390104455937549442203270576517724901043432351857467211102083908435511023924300977296171069548323852422572924080899144120212035003376496033754745876024887905368009324587082726531792399029687177262631522909960218881369966713197619575104225530717827470036099678174900420457240692904195002545194593289588645126128046221092036999877219494638910466221630841189287315131533856068792806771148738627236052798209727214694526852536642673774916763402262862682858707856863663647765328658922347837339820860021774107782164906830547179084175429869282452251762110481958434047431463838467304222193429345890203256445901954051692110771617114531080972606765725235343147092543659153879619339975084201467374501612077751483325848783228014569973251624132327804713658307902466471385505012169711092158175718744392945148729429578393326312939096199743512113813192396434191697478326916787385619295909223514622974131944954377041353815622661989357294283845093081029333196674249850940419787688783893102927974559977306890188857683919593230484468105782908280504238336538501692914656783615884941401652507820824419466451302659399617689820865822320355684266037528160120310350367884732192713381064720504092205941503741798135144629117778107215927289951871238290977328113043316700395814739168886731804845681355975099819721139461303530331346328332520690940027407327852138563937958779450028593135389593260481933842432197935606054327076530534831792204298126704542967554043181967427848589165649150551251969575299882032897868175209581666658844456654705298849362085905871291072368200440556110542528488851291906848524926760811298008938889009612673251259771073546554323869105725510972330220953696680855233436427630200492867419623525810504996929200640411953908511583213162005928486164167387787959584543446159802113434974002811998698945336499264372318131568516395897236554974627113363620228640138854888162828607551143512637449075879249950733018534158751532956676638002010354766024419577456550697359796770356885530784042043301028825698296627125403939912007649283727387486810363239214521597043627920263309690298900548745111302987471309171333297827826304570381774665147982398394674420309996986279506674886327858350568603025440746712435364006657351203331906603219229549243457009142935188652630242569327846990728618875962106686198929322438614432608546691664443969366810292553502719592320555900876103952927373879927767250054235828383340311901398465978343258556941786944320464591782280187635335218346468892102603624633788677114388551230349049553691524279449262435612213798088741470135918387434561276116216687169103935591963638632022324401128530717791839325378051684928697898550365244748024013376581771466199810795942000326198498587981224835037289042825934119587524904009598286939557472099068635273900651939591430130733006993187721391711067179490252436494266862441114606337721890022837876028141789505973951389692974661802656587456872280415044247857662795429942160114078160118077210141087185164395318134198321001296338615500233131854443158474369528847120670694615306980639463491366912168399711843466433150614033076412488533999516336744321304189777156816075637443703892829205237605606899448590633110002652187997584078002755648077073203965372475495756475657130801949156305274679434332776269023562045499706058899637139942715770378411942214762478185002524887001565858394274396722864043582224693138373690800666223368173679354207869575235150434445798136606086683250799916848168765370411097272168278641569769867646894054496676126380774623768654703983581874071001145530196926894151111863590003571134127478012080808799378819083802258466595267193535093768128678139873880731636595437957292156672245534860655552075274763071252799069541231617866316416268996350814258964611356426411030164542079667326241252717155223555842126166167131945920513629344493376566010966360141879628273184585123908424241748328969119688508041371381459880104609846196516335800278710867372586892238457539991057042089544748050517281930898461604022768536850010255576221557705083879109315016684404480556325917989720236136223431228109047920184288029422078432786085543631878428489246876284500756722597469899705354413274983958975020121856132881355446881452470442273887607561232555845281608497525872723205944503470833148702597463030608806311037605875932505262423723185294092869401911492667377421657394986681766873393046318682497283301026719980626418914939513352237281922407392654942727409703935216304399105025897618365750662251307258750946298458862995330822589162745222997045988912024679102226136049979675770395360961692097231611774345850389549523954792009338370519406071213087458735653875620902569269036081241111524168864591920614361429202542548135111065011451453817985331970497833669833115783092963498378739576104161080324254412443848864466168192154059702727473963706589233981735189041324761383521672158472681685259107166779882546328160482566807262409048369955070938662142845260118747882109151013313434040245129463372344168228750247841555039756768231928835177540966873014328874840469344123247213474462313570824468029170382252197961225420067138339392203467701706269272708252718971013244939453054568897911135802015309896803725194191380897471348883871634081032815996081718134549342561588358006752154482762345539225181188194175853986691261332938372757214956470163428388903964229530512287959869402615680169185505770725073562796621242970489882978059047258773734837553174501267379240267748331969353724607602347735977244705986312656955574474494408524967209251682591348843703192170235852667858018870145564781355344451929742865912688365624841049816864379669035475251080774471603926158016269940656021816397256190785826922441182696610742827115558772177404322736686562261082941628275015674840964233000386446544931098598005203430975751401560845207048627619448474456373764935198786774392739366699116384504731207657768316061187369076918294894045624652924828884326515085912037590715739702212518402387162764251739276242218450224053151788630157458242806621420151815810103896996070469135126549918656769509729735225189784276531477594194928179478935625084069792264551073671540165422482143062307809861957946442532214642996012790600165182223292041442501370945158864041358418228301304910978215978847798112318378748715114603368129602569644922892497409851507103708723694316683000421836377511919004902030019664119706305783584027675933420724574868428320645481994525447581742927902406654885780403983006256810960646371984567981197322187434658531483851083390996910525110121815741869830698406440842487708185346025447034290292266312101248496334609476883060397108030574785918537873079106397570396369400451162558990017222991076597338472495810262693715202249702596886809287850686753038894944696116530786312754138446822371238616486847469896029509642722789590682149235850228130228046408808033560581065238160262062762595840168938773326027669883085252326901853304575620760911103724418005169470175567863667205560865766699900264023285642326681690457232407339335901950733597496710713493009987076950295552379682247971330653883978836131548622078072005230399548384307776510251041537041313023341405862696191121541669785279750566078420849306643061415962470430938442193218444197286643768299923960380574139452116882450531191104061235937963178320099750921809926869093842342098651954368906270167622859158966252977470083171789440657059312013521124700356207876351306304555577138921169390633751565860005513720050268808439439538383165692287439071302170071774865936822816499339171843032226853973880058709963164292220173304337726922646713180315840159600479537613163030485725571794713422117058592658253319686181607253286266984787157185328137045502417755166037385335886715710902777397992144469988557925828681977168561545061517815040905326584882080356684005341867555044588398380157584662527283338350580073500524635839946191871799352323884122423265147844615181247405017230125536559248729242679115862304304385383248230291023177188297223285001783027568465198797827043306847959640030018066090361325966048304324734402253403478759324822636154200013779554286177687251731067055905399201934404126888313958391331732323870851648885408284968118742265863315023346959031970063006722658979633084322086003266723970341342617536183088491682515071009686482361314501651476038894003759459835001841463817343980931147194724652726421985171878745363156793043235677141791500482316056486562763240564566590167743251314579302438425308939615250412892717997219418625352558627838266781652177146315420191261208743703154508875195477918092773182863982271517316170662934776250832867345011710639616794119420952610930994424045020816289989693129289954617816975155093808199828369150476286907203267244202790204290061484441876178380726875995830380093579189029795644880930558745542541047097455083878845299700952243757967879100604259630475542535649772614671390979181249152048703420724001335757403241790642236618664062160610632197629239132089661254887750511574414564727858987648374056240472144694889945383545346863791660693681352246514338415770330727817846555125256329802444665375314267151246618545563852990592300604942408749769839816764948226775790849171896859611340509136225415622086237097977086998106111606572470950547295023970390550054128963242160115472561182411494246995787579727618355810096861218947443139488613414020473176791842798639943494916644185251056343739388173585326987542967181022782462964931749143583750527090276316205873956139815585537176231177722335938556507991384157507249045734279879116512358789429243288118852466456063990932566698207937657579000197231859944558748250863420728930839003128188277787443869808846821720244324161785985927291811244960026235847845331067415476081969123897806254095237418023230502648491945279404505321124242683708856325709027839889087912736471294177202816755610640915637166475733014195515496379166230220215767352785878144665719571797045188161592015912270191777476805823004782555429039483056777329041894405198630461013706851894354655405685716178754362824279619716572039190963089337853419962015759149005854823442456841182737588538812014342184298951811661299081713480003619987777965365171796896729074190645054995918059068500815093780433280602587926973368119787846906262466039720456503969475451247961959100575597399540992197627458571195077084875876677012301162920477521919688037700504371974734477590524879764411648935675316997748865117218007396402441981735901908828680799422397406925665557335763926091688900020451423764174320703506718361226671305841020109539693562016012836667676358544450892024289946998907963190811598233043620678270973863287212448643420380615565291515206897798549422787259836633657877888593317266961239483778120192979340510548258066270749159453307663334807089046713068358688686208173090922773156448268879634444034148924863586382665417008444069630949585812810343938753817007346961703960438355105603488678887124021886711564785133243205612673210831527483125917847187193571018127615597869034507230838837399768628318023345705267344557264762007050358343648144955900300354927743320892205553950429458659729979086718960070861718894582748962706481674706303544324174291821813389958506703635509785665024094035167552170153704313648414380428720028327950137656100717645829564082676584215266025606510578112494468971932805417735064028921346992425049623898358445889943452995572330170963190862538418045953794139582511152632721889765989899411403195596902970639655458618596162094681093957128246191332416419735553098058245716389498127482346956327432942361546398886724310063387444084372953241372814826611754501940235275176505752733140873758600072385700320074912846611865650486525413150279034360078884392183457908747201669418045535135975764698206805377732098706731464175941165168370598800018755423569212884027082588502035178091099057501121681737491172630858723200004042798166083158744274590616258294893896748123960752009390709244637331618110382582606391592797069434429731502496101142760697060778951414407817990205113582040505359482752748286884660903288295278551505095780877073872414173033624856785440004298433989372043831878376622575781900580775529323881647852187630923875420135006083673807914228968514227237913772173335782167954848949977313469548694887970121550045737561103302725113540627080627785469799365560399430809704566594662197402192682861408438635127989189464927443092705866413109702276005878278868121817604017131177571677054292607725620152627677307006813882570285756916880785251637857982659067486458371136455368793531274545930207327410648813764984642117654815610896102503909799657026025255074490215863983684312519018922954565028045046785559939665081727698120523986888691168562998525469307486952418484672768656506033601827171074900561456214925523216029342391202253805098240962568851338104449011386854750437804774391647912700141993739442829449027362370053568120168330342629299435634364559470469945432765662360302614541332942010965124806225298300439487359425135622947382347083366499021211082159934479846698224268616693139080911151845401328744404703986711403967198219736711373988527062866530160809522334030514582207750819571855473195074485422254779865929428110194298922434144121207849202556189647463528342156947015647863919978352336723936830911020201309367375238160447261516350127863147235537858020137811882262339890072929887053067247431999444083704869540945759671044383268863412420640152579432613913798596110561342012525620135408170434361862842847872053917261308735416953319968419507475360061320607446532389106067641977783309343460915891379569169284512731518272984812009523860152392230497054452688451270206397650302985558181350548443820212780043903706289196200803295732622180548008968825500621950764849538164157637662259883368058884579995140084000998185726280364947379652157010206650657693083143638752911045398541569978688307245233990028133996559644601585844900603692377888561887358878593148152671197056117951730410595305854294986159381387667670523467290807477209160734086163946529817836227977338535202063584616644753322307109635151188197937130417771766376099481203651915966783933956440246677243572285175430448510280339742967467077460969564288907146191143964339796770695314880933317090546024220745202650394539928422195105576279331294153634930197012478439800109271826922212304308448302945535861149139010697194374015782532308111728211394219375781140602814956963469109754443952009371134731393238683268384013288619815636324217630630178282136308504774197720414989741931606384718004457430604591625706136038379441303581374532766735618069037436297642793940586805995439937369198682288931675965394940457150963510452483017400777615331762850714576277572570512801342246632633087561398478457933319142831612805068148144193765028278571782671431723116882279494974952891378163483418882409444366979723880722466244205781479950922490609497213546865159259892872346765035659754506439604038226397243203122232808687118579912075441940153281832212948619413817969306831140526434493532179238125956027621413478134580817608674013726692916839349559369653908969585046284646293239779507593941512603944118968184517040750179547607362606487093003719639360690562791460580666437739846678989017246114120221237657720237412779171397000654409911925589711723781678542777568347171224514299807778949664658219069447193637063604736685744576493622435631344384341743333007473381903876293523838229374254145396771415703991272823897767022583082702882299022363041971919818061343004893918421509429194628678841796871173628439673104476826273284433594050420570162899819702278925874988682939995066259914264530080496119753831789061242796838912681234492451045268328265421700317209869647837000233502856079559876767358673329616376711665349865783381869359980672416315340253568797799298629039816745982765381458467004233751522955030548893832067353760724189664563914718765006997001986154587738050865112493089726876817880541346393150517621456462174975530712739960054634405327932819332880408295798525723075457771076365387488587638190676215066769095130800523875159910399556734240429571090026424065847389215251301339255955229842099105612787446544114745890989951815268244682937294491277733631533801568981342990697874822315882513677464746357321818277459681840696675380782122706206080014389871187705252153984485153375741929968463209118018563604786109857856913655143620904861631218672924462998392744274840202510392287180077841475544856816063862375152648546432180569475231506649223393903931583342264467745389388647415784045637214426598386113497120282003106048549290223844452592472826625386916856667466979065584285651333085194022191709917919274291118876080491678879372930033023696962836978434149405840379187169532384539113825260158488862955028224944316291189282883425406502144109012342761958141960396850805455861447788699604590332647586499715303440770291152203077101228877164003931780785532658796426013062995881099312200599770928124149815407113873768211165270382486064354448718493542216809801415929401302854479555594633657509897569031450708022872148684515339208570196293927038744865041309725145806417575383092874972233673253755735804793327218250085522874228328793776549292732229887423341906037149488320415723430219330669460150846533812982290503085251690323593439942233994052948017872303881710269058198522210623886897967668997380577550183368220353293693970477919473417913397290979586571362345881596296536404721371695239425500112366601194558376126806544359384642749205363758672833334280924070692618167054821488100288897707373571551649563531828805173663543292689235686099399445163745988264021529303284495540187964609205299275095348682000265788343724530110453755436840326208858750815642805942340537280506608609707716363309919895486488224832579434059797290115839919879809667171510970915705828126659307810958709432473072435772925271291967035242987223116672442608653933680767281706245088464212765330767595037020216641444357367820139638757757932100862365046699580334216279104681083840426079274856957267096850680690314217778294035748838691152030898681747968441840564760733946422282860502486294748651618882106544119501373750759463843238675300149306359416566522938175741776325723462491882416251575207488056596000320475225052172080638268797778102988928367898316191532795233621477573692153558966617331394870540371113638792784736634353624799441820887760861398095318288789956519430321373145814411762150278387646965855594165273609074953371396011878639693250784404424029150200613736707407932443469627894557198043858803166123352901297022150970627432368684858939690855957757717513741745264911956252339896273942099564616660975058149959285838018959296114403051052329814428525112323385389984293044912804077434770273420208212270400214364266884378458921411885901634519892179936410961477932831409255319739816733445483415205546374677979248615397147752408583050285257222054266120421750542513544913388837068982202759837812473807155717515222078638557015332443936396816506897210288927329693687578661870280793440205786510396852060755495212874830664356834118349551320329103395721540635687576747487259361059714842888957420663844278736436479889951362924101578390657277383573225409720866528210888701015874485390023214150981894398609884157431652757734129253251630984857344947020362646904900433960163633427902701378279920830174181256543868508878414621901247213322156309371028191513222784505474547109118919990924109293390413086992809225490719475522443380376882631243229324742223750347221708450428972867007352943890179015658953884332744834241037358359942644656890153578750372925157534972167334841513422277749959878376257962494398934211230644512497075166656255388001484712357990261687361714753209067794460193152652059232454150664997260722305012435648696376041789170313950650860204405252719556393816850726227765222367055130469902112289999755648085786975949365281488666194875536831691920275442325536871072500448496041326157151319029186205351418145348631387623350383369655942743270777237886988960186948798169010087948556887521906815382085615071073797529108925318244100950052090213762976609479399741447319979973988841719371143648419610131217747523843046323575269004201052079079019391927185159957830828574757773732296194166388934604023114095178591215820787131609555709337883718461346517738474687555717404322621955629735939562616033865513387362443198409393398221935992520952103663783496569360679453480995490625365548066591367558817291478864603126715937508967026905629450734153445991684096145233890074094420155836946022775420403188031298307169418953687456933526390886990608213847574354298433641359796162021716291392001163053414163152898353431276911419271501330125975978768201690143360136569555202536749361536578466043014742388221055628836272273300852232320299233734644198688528750914626826767495396317728261653737465445626600006659540667762398088445601619759492872470474508454555051332488996846695317491805845122219256945487270273770557238372970858941073012061614029337676173442727898579323710075240897127344142066194143838029355641604872974183483562144592606663735842378309060048689214873481726299512554776522457450090358852374326681660740011246416975220498640622542842602683170404783501184864019760943668787582687826330366625578704348523946899742179800565361364897886225141666845665354559563284656640883673497577389558250027636000906868163227940324008763458983584232606913740034631928922670548115708477564948993501695195487718304983430621897594029775592306007844085125719942823053123160559338202150631175394853880797924693342709422361088303930783865508509742996135727689930056594651879618717795908179387225581871159401313406941658995426055551032757355722740725986915955884319365578959942762659169317896073817521208895103854560881907005282966134998108645469490239863824739557570476774217627899202994037621995850937769082913827488668775449021535377611234609948040386972896917166087126494927820995425483104007691320291944612305138880096102598723465218054386407735412687115827481672272489197179959957719395200798947514851053239317440054913604489937811244169086233732819974336221961170751961155285682072187660398734516527527496866100646349862573032636589167739288877795708323477064215951986036441308047129705509368754924216490299522301590772433751389044611231306256227657038210938760411514661574505143772783503744235577433524582779510453434205627735488782831169377827778755556817772266716834614204208405675063351843394856995234499107571766840286266453699894168865771615239661395039327088721542539420474022275169298352290136928139715556294375254837013399307585383655024976122824662676342277621303965459418088859821423549461723926972893073677268287126150249228024471319250697239624693107680020730620203085295731902532062259422152154472794254669938894430105381304464097456196826534284886925570515253834167165771043345635925741006875710721726912831732917450869083654275210777586753784726651892882153338314171738052963965843404222276147054386023690085488204745279007852370483598491988544432471425306663839020246241080727504390992458395450266878428278840374216324139442933373149999990871927637272569257499889702807482199321659885915406388253131429882804403877727098820809435851408470509930716207150289557418839631825942123494908196764294567369457748289934207710679732052921454200430306276707543170873087025179957175890658546127038050362848522839953608941920835307775416026939433091229749330551896188853150192949610414102404675028621983725756358731515241914766292271514566497125148555774064493530894704490473984438240191962794867394657565194164194287081135164746399756651881953501636768442405156357112920173512410806216924195494169035981062763183612027062903494094538283615033620938159530012787346180270725798184105359175709205686312161678077462503244903807972844399534848168384304710819193515944567405266648582849334565988495020932687889272680419235522861070866549986542783108283674600130633873279163578644328703410106232519002067768496218804431815969432763327294550617572816595332408479829895317353789866076325585565011623919305027008360347963169531768033088030274591853531455574166812486942415752984535985051733021770858608704793984562416077420891240641733809507674196171440862951204333891317624647242961248969298750496053967129393371916083762388880639184026461759178881854500035666977250934898944632026868214719786890754856408603105288835795716454120431051673999971515221558582180471893860762099636506979358297734794686821302981771780804627226988293685714370808457901465403386774029827067850074315775829491533185437801970137852138306761685705473654417716622547190180979426489778059876853109665322375665051396527837933032593245558856560973884207330862023037495466750284980958852428690110972224934606171085950033970795324074639753410997129244515021681480156799709706975769574833872758903670783423048039230084132786916887857085572786641779782490473290974834671747744360829222853923859724754797693048122238152081674365774446388479423541499419866710186303820413038121268582043482121869483094102666005597001489028853331857000481965994357171789620165103951089969700719891212770500662872314541841060536587386549443059126710961879431480994449273554812190775818261559499530450358957541064598329858129888372071782666377612049056659155274945261832312012111474021303530976242265709894183503300680830829108699119324389929705739009763040489130277354240046396541085427945569545213484414144782359531016924706622158080325795229536812849818546442165071585014638598002706876197585826572365738004948609343684266154712653135383811774543579686802707862147421539571630476821388249030171627533189981970053232585317117474119219249062721010121305413774747836306965850038871909784405721592120906009879217233711327256401358947243309382764836632597157690481092087174044664466777599929107964645975911446759343897143101040565904949580465638303537807118207845345330780173722770913950413657556194724524506525760067434323986881303508079771783729018906371983540273952836718151974777798809641576133721968146215167784333412697900879636285911503770989058663593372775751634250785233592244748637951094224931647413048291920557505815898545295938032320308260623706297888423469478254999627770808774645383829479529308507869530241055486245421391209143893305805259631522151446904236754490669431539234939461592463585141585922493400637559319910180010186985814977236669860427621572245249728847058058037336278731340851963507799642066523694270551023909777079661158818709023297310111791993883053628398394534184965755554193304033673289948569865208329691150296535927943493835573390761985152101853732407704087113675773568225263096819174746907435159513399935089609221963942084138066470040861943637031462705902264675432299101647326266099861524472072427857521071850990029853337026161940419644861074167526517658524683643099915796555955095118616404858229448003148407730117188210296465854982182495941238893215197534892934587432688285261948974863624729831784018416878207942535100274814249861520604331875510652377957411564651442807013419066118218374861257353545837398832881829654803012251882890987782741369267843757006396856224748281285831624117763823769767631941404673241737684414154419532997580654145683949863229503527544519755689584422420794423045431445687355094069369932887737567709477481471878136855291555686933441136637765309811735286580883169009783343037139981385231876230443164455172758264495268191527566349323923295056049448279217167411804587683385398183730957221592795132842669841688779748895426144009924569788631347243109103552689711222236752101263571086600440302160118365958401904408698497233839164545190941068368529247767108813358228153361694114322065881611636578450458001210703727637016363930719005615083165844355484949768500076653366119875008522034440666578341885817911241392247639081344309996567767343056923337458211110413685581768148327667591815950979495866060192911549459690393909615931831935787418062821952834600850517117549015939278768986064869343361937805204178181566022051126169847648153934178443760239494755404566133702771152712065399925867880998289552349342378058846258851827458350618639073652131196619741431628577003418973133376310750004309626592183990087357767766716921210580495094554743341023275622793316421436062400790218061036948590086507490965477503325418143672978364618130697950781358044894829821357709198881953438069022865384826087408660528628373692135372620522274173661787086037319394397802345090011549707872462095822193998003042113443465001194878790371363405069483201829257254510933909960931081790472372448044041921953650090220021164089167788647868093580049127325555634203487929607268011005233708493308609394977237441743204371462707430105754331945211600770165960979940829967471653095075993895415185919490111989007085873065252876856450313841042119642625506398215064093653315868882922350336759979453749939907395461965745022781366368312717246461338628925758900820882281188587434189489912644181031029803486410159484623768295097811929115151605338621617850013610785385176363453812042748503312215731231598908139263787465888882386235166124298990408788130437504827628860789679551613114158888077610457296833245241811479860315092142495337602798300041559874898377354115044278349744429606539968218744221229547379234048953433513575984777337539307117087272082933942700251650226774111940996611168102922792207104936535838064026723694572772501887132079844247753260384058674043197888161812198650990645646989185383923891537203110568254533965463581590970706610468414626319120282525146864937269390912463463787578155848848578126401660907876082906010461046637607741923075006277455557512764166348791978690688853568139480343772673360090238706088043436952117527966814771364793753517750811831233605534219474320699015447400205647719563208661692302408371737377046544393785683879099450884701026764247959223768691220574933609834236370626881060703599840538571718220595726902148916494039218801500153064178536656018919435908037297756026019500192267953212740069722041835527046213202640769638136007534139240606689543814668058977178840716327863107298068452944241520257136480326121172963823217616240281503418840717915658731683306035954626445174865133540399829728086660106752157261718121975259868722115093484140525252989954238811890633838020105385622572965402428502012040199757106608779670709536456891817657654333595177930881345271455755446058162298331764834144309762522853892027895035267605841556133183226684534242494546149639352296131587188493182617708309535744044999232308048193090070431805200916559271655135448718225512830668556451270506202426909781954592595136134386073282913647385817214539965382682932006036696194512565082298112546450130128891185677383023942321889813877592425100418532720553336639065079283724238583009195048392948289860489107916666008471473800853088927488679018924442067634977472331256995435379416840272666643981894802030778564777213748111989704586977708566443838831159066526361869656330164856399726252102418246365735185433099610518848920686927433440077267965391504344084175334888216247517832748993270200719194876366265153161527054539664656375482757997625947133582179540510046798821453216726745541265652676303164551687414880616580383527488974019989516615725824889359289756655324480519550093308234288655221901284368768772889674607803302008985200591791776292073475758580890637033090137675411949483269629541392308515592807270236404028877838767159159439448028798484967714600448696059506564501598096126969461094626062446778131169185444544899100172238658682436171275992549920088532758705534600601683248262367184179210361560408501818542320206657338903399968808811231225410593703450070314812609965145314555984574029268682506290517091630984318295506452881164447997928561027539310836080321922637415293734929758582224772016433909889407554733994130423021131070241356248709523371843609042509397653405656223497024786946446595873659589380316676944899919687023023466551035768869572812156441390705667908135397461313545954309900714435929891300344913981996219269517052477736537495169703612012373105830494730382566223572927437009560644459348681326904681130524044087704971825123456594186475791729406421296928650199429947380603128178863617019020094693473387140239023391206526278043245766881181911994426163619118427034194916026156901923823936173796148047992916112270785953786169199034866223350213921941816086902367461529526017209464801727791408490743965146927865311322880106894154076624731731549229894240560651827704514540664508988774452295809725105977706941344683031521595009981808203139595101386620446507789980030939323174222662008115745040710717230211400972543632871479285250742554868879188997900325907918345485238096105663083411676783263768712130924263523546566868758549964075678147202451184875656759587265171879916216255844013492020670636174456264835869240481995648838006144462256267344169810925346676367412729507698328617503657940229440861425761558589511473155832634157391404631978262947382984585375911608059689812355204831690601109870420230853557335142445447801115042096091743371875214768009805422222534797068969809636680591561353322948451294494703155001192993330302716736661666499502374189092342438546974112046647767252797792996919338070234662345035250208287421089227982101846011661602636760779658598088134476359659560435161535622909493753094339742398218174843672644259002388763103757582074469698746706419766091472770729081636159460772784908489596308944205462225861523056910628388572912902867854130660029436085066983699986134695436813208700322562571694988735636732754334751041793508211157249362941755691226140097133537287542600935740957553692303591947263546504180805923387589074403778251135267021693544884063037556545722266711330290868642511845357301932011044839439490465419761970791158759722905870578191986571576266432826507913162438296456520093601506853408388298991934095298855331341259550174337757409921208867939654278128768604215273567262525845314709982716886189915855852412814777322245458389351356073424948996740861841894547886706217387478991979719217374202608657578629730902598517111957104401635593508255355357152808077405607283007845257003605790765318840818162053747434241313719687832808081766324428330104681581379782836789797496417955029310493889291670900468124692520517526904782040780159262804182495569096493862502103737297183646592613439924753115105786388087148403250463365858484744828449438217907176282735381554064654574034634579013904035385298992806940482653527349375969519195124884716069949562681241601129392521282666500197961625083598010861689058183250450869254454314297079313173294315049691508280243834460000017215748042349999198146669077134381743805002506952330710167130659017682040981417308582289666682234954758693463037104993183072253486378876582554746423521029359451706317058620393042354283160958131338343865170334615884808240788211841409332624435282834019850861042945809569776526915939001860716208133252433567279110334465968760570399971406550722602503879138268106954729806928391448735587668582462716035451335733078536766577048235294917483737907496789125732811828153430494834899683164075491077614491318415515028975055582749118633799110849295493613995275977814421964851536268562420690349172193592594556730585022473399623010980460210082194097752444564644674033076679108475420047891326718616307632520176079151534313379469260984661287579485116868974113753352033469178657160306081699140218936862542158727887095539136503109701758402537618734074161811536344970985868503757392949751314516671606614463855610337929597160169988982491165889971852427979165403717493798857888113823095012053812724459991129058786456656479597218254638543079242833520971583497088114703420940924172998316055758824775455062819912546661809324151905809524315725662242889524327007814531007971130650381813236361249217471715698009464752609505040673847140285316058290998090062355952301611830757161253958833305210859970625298269230249693690161043864543224356458850780598156017235984326404717234838694898316785288443593646490708132284604745838690946292152741309361957017228254776157966838526663717703342226376956343073752755181678658242314298159308173007339313328323387626681469431097728669665429761915774774285476098327914298659058661213553102971376311095473084376105080963998901950026480975468221658858998079311488494978385221552143029170310483473359725315142123165526152039693358711661446981707422212118137848834167918290097366297873555682737780457944380487824075376481046185049137085555839342104386715424899584363797407250149322888496373523580837226762535555592680828981966442357924714740100778374620631877599306541844640496438340645607233356635833594975779475290331682166604767975415192622008655758299006951882973078138852785422076095231468622744064629663099992659705744314771614821840859263917416199455215620249118060461736654436272360702963432964660586343196904925929498264574227914857354578639814588502577254105406431856952679615540363871677752739912301055282633013740170263386169760754370100492245345891727823072342252885484499290259154449569963429853597013181840899648697970764396598465128384892913386343285742555837648218334828505024880513887243759152346014587473757582256813173130687456339773649355231076542877463671088542084585205028185214054766559936730158097260109091790727976285491085410028568194737356061013815124733226980797219324861524119904181724665408024352447712279589079773104760568411911312556640672096457689086876089330853795471315201317796874479546016421695921057382331956242836374782750340494168861984243859040161498275803124417172192963664123038800384599682733728087350009765633405123035210869137892827898665346588174993443105645471780550501374230890934364085176080405143488617939864987106557288830071893375825819225900028384693119790453388983336244193610059158899771091316162915760242569767354639453362496712642472566704348122187551798745015658127894919058591346148313390103202074608030321447594285683849918743342579951091190191637675380621880867564609354492946815568064974060591720568172211861081423343941777560458851512583053585888882608468555313543687961194231847272344897686813500122260077459515842567743794294326897655821863844199928884064136350569852330172714176499806427314367104559175300600544739056346115095651890271882565601398776823826899065042187548272880514222748580963437504208047962588416083961118957597930629660010952374561971374544847911980250462937642664617163615248157237994340285510447040958459820758547328680906991506483267801419579767307207479371546545296873757461199006601491915466471748351724775497776318313426209243096098987542925468385234231023251838525404903156813762696454838588198057544294612978027127941367577961273330670908358213195471145259620989602307636246566130893890566496057108890179410687073894921768161194355948093506895216430837165856184629393478010246082867619385006564511403406592331550640914039434580480598373118194297430074182264940662171892344947668936273741549319532540137997451970740927184568342988158536037471808596848658095631763865561294314267528477422083292792605981665323845161775227390090612497594096767203722345925595429954584327092667773100817166417634725538321149526383339336413818543604987452315333295388721070663625506395762398683228740747271415409466855420656395261732241947189393799922921142211910263941600844073795982683091264369709561636148108402906771922935547129936517527376904980719407495023890423689127963495005381080932069140616680192167189384374510770377111799874060693011111095372832365716878467742273149509515444170974975029026922981641901064012537321961554275495136512863126914854607790462819194072505074087656401431515445010373731708277313960179841146718288645982233229829159738213347276910973998269637590618264058992078517604400927191865761844631433650056970785337118581951202149395711659514694830435527468030261588451945125416077336702893505547431737314112286351813595424963235055279352236531175179110428424239300913783548157679228692210588060005905140363161524559196486776748951379058880264994941652177622266423398644872403427131569909209908447160042304553394063569030037400667555827733853772154528163779023090221126002902584882274647612378342886626101584869440152461226244776215153228620143715512840653904552977432153510956006908416549435097538365662081073240793900532453414251639622757108988850432752533865033234407395111092594168346544726190938317439528549247329407370674580573668647201784815574213792606824559544616213776340533144712244133097630644427004991517588457885121907134487321075660757861061590350612954480198827172839209667286512646821184162740141255287581571314859015469027735095451670972447914368301327887991459672324507407278518818261238292496872482971108798225691662362059544373167580892298133272583884950009658630442464981868197220707386054805895034633453900196284796379402904287881529992107781272982697207270587887518349757545536187630666570220095502523922995950115596030470419880463971584832873890721614027142734874388064976984794224109783006308277740406182867678716107848632358958546783793577883499522205489714743976703643725437291303936059095858197597381536645931749560379811882055854930005804208825021814060526642389772735691201081174646344958713704998625199060760331193782480241300896313901858200431462059465122058592253198217611596818424669279386708557520263005646080143065415843951646136644691600344708639484968819112669029646134887732415310425715591711843243402533729285419241997129810844195317898964087924873613018232453673702447538916224197490546955772382855298602003211052939707481497134613283973371500599279238327899422990659917758075617792653932778403806893017676089010802960044387521571652828869122764722572872049804921226994827040226827482972166880230334308601031988324345585693515348527201035602700583720591355827900588444644928304452675382863605333018074239741540589401459996611614986242643531060097823352094146626979318343291565043815675204529379826397484646112228524666341054644288307016679293837238859080910879251733171151864644457086711567241481937231199232113962775796592427241058439600405700154163481036937738265207450417669840356088311133221204899939386550949983911734692882976142966022569363805692609620148422115565218131205253668975160722949694461682698045847384266413855979817833077852576489669303109804890241632158760886743344851819686961219486516279143478447991808787437990529699992103937967264831101011530631366802126228023748480780061819551035256964516271445544084214801660620006227571798321784601876258566535590985000463097093605315481132690192099065934105991168822003479149981661961767407791870446398111253747991525940889729212872847666233033677462998367591731762467737781548026435019365789877503945329498059751001486165203158443620378521257356252182692865499774210089866542278860589045145074508498598650754509604083250047580684443648750633769223390084501130593787404263719437313160627395882317855500782161940826983600904428637919454246988802951513046910934773659865932243338651459439802150170906389780656377336152512703479202455169814330734713072600007457501776562913521305895979814489480297912783480569361116018631503108663742727812148152035411862643105539244565596963659195631552631257682548353344688290297983379348301489532475768721387642747699816227690342254956270339817725842172345392355271595396035413547918816047179226435095396248856427563553407458594096470919154097973967283828907570378329438454105698027471527970404545377579904423621610789447725778284069019950430655893188369961106392714237171886085586623425772100868782514184358072674826990158507374451978734864428204736263723434419868165823580145841721143575021798689956333116583968361234328344588301945457990348662235197830679237907730483091072231726648483305303118115835720032938145075916997390280497537048381919757578114728402081368358868401066972758926467911045375406819810596899636530225554664468385733109834711443729080993202830373612100351208883638964812073836109137141766718672730262664923219002778034857350995870772897383154508900197694645035550437316116532242392539458935598581493940725594482708853860141487186976455095354872994945777133124161331525609274111617847319268360588442476752171549139327961274060218185046022834138229463296022002972959489160900007025049009651884543248807068893241223758037556503996862560007662496861928850362618993858062014794934218350063404141166582132202961395733052753583245829804163053867257606861200250571671518304895873787447254094194083260460123341276186789518110433200919821395460842001912897790343952753843537713869053293828601701368969633859810205599700083737087341088351968081329903796475492416290187213526912548212684389594469369973866453912689955922923524894872449705415507761300674531080015967816000036581128642305205113809743717449105569760692448864879874659682957249736160672891455262422777007508977577212352082173181777860868752032968996885729801789125486670093646717190445479218719929476078406764983999568021237306084283617436427177975521217017403806439478967376030685855520906154639202992145561182882884590301869696582625495277156701736004363671347068574690979524302865690164839076522629917250390643499503582829235209660781614932207485504990470857664709058262322351492702685808033579334234105022580309028699673278444129521508514956157141636501991701809421271628657947527934709807482219969979237865618836081355097471648727952265426925632260035493956803455646850574324926017172162835201366153549564877093609596574006390093825702550813979282434861730279833077728320663829428795851400388849458243264184330735393179469693722158096232531802619891082600775872552474371188530189114850607212121147478326019762666091071953053987323521961526540125697366422847299777109527557495266329437103506642666566581801630236297880935129895532450417506446768034077630163997022185020263638591832949247814233822517027344162689471715165001244403619616729324415403143116410306982594893987113880987476651700580459193865386579020096375897426223807246292931966604204678235740204096089354565408408281689617383833279576621582245097157949605633052129769905106162775676034459108475905926038145764729911382702580792576609482856925837534337220441475731940965735226730123723623132536152002910452996113706579837465418741660693396679887382472521781387230420515849147840629132412107754097411023109976921368065204239984988838204019820225972348156789940724832644999215616642908499835613113323971054418681641842938827302225976537395242649679240207015906778341294102294908807937605703161812432042615225314618232443891619306560705329760693904828999336690839043910056615376326066519240582983286101087521893827563367182739732315605858727679589828824332169261048290410807734758831672663832847824403233128033418780996179947006599463350968412087065563537511196050357292484264107860963197717589520415625438099895079095891896350101406758766169204229229538799254401995477440306806317110882594388732818371799377729227889979510899729842905364731144263178236983575229491068184547765416435736193660274094886062843516048247285286906615482590620291312858258747560014078740997791200381039982938783175361978990005982108569866379335222510276792860573078994266804762980245725186775676289793586311418155771570230916543477976355262502825023881165834637867143845315298978808643275352505510982790394359013752421996339950216267678485979143369503737136362650640494904529738084339456029075841319297813168043079316336711246411278211269229475575641477691988086181793737374536089427997624461508713816649707986135956852296818964896852716204259877861397110557639180480502724892144033743102290736913422203860780475570578652654545806367254429764116536705573862346861041415457142039391229024385216456150299690517481410491950306656699547294020470876239976746179225861595351328509428511476416393353611833045353180680165933253395147423651773498570994130042300736641784221146540615724827521062594905111055958829908918978424183067348145454144760865310945342436879916143161056632288752287898508196581762074025101727195478115153298853558932850935091685857097698426769410676038053284845624823352944487078527950697638064918986007162882965867090527638405234336796765864217762727169954622424011939116466729508331615508741099424102432569692315589622903799552377502447225236743098217092986747552069302304941601325890362572602173680402510963313083743268609697252185763250977518705739288311178937699880988514287305468520673368814752529929444117995690062979121563019560230326974484491192246906976286706882083778586836488029162221768142631449522445563061541578424528179329367819518631138232431404388485837847424798797947343421934418365207493871939594437841932223370147170814788698158976957892843492219158730736111002573201336939094861418209518363548576878563484633032862705984630134298074036303987640693168044036830167747112484238179337150655339378292377863879699891816039649319551866219775658809767589138227903855385165340689402689359027395817020185094828497683966609987360364263276522716547283581101330427473293166036797475549465340458210953708650278971284965812929077578668055389590010637087373134052560059504434177050245636957244931578553493590503666800054436378125590490958397789630801667067004909572122960835817669264112759729531653555541099394770653964955086002257540469133814902864845173311533059304322757455014656720790534750698339289159858508300091264826381201006126003279491057777865980452284859286279781009417728749583259841198665405985920015242414635667706174037761032041339951439372580053284569410332480110348159936724180706778075191736095751147665949946089442588962657738002567489673709065548916201505906609149298029219419240268068081588291760650827454438218658658986315163095848167664030140098071373155830492813549580949465652923129220736403780824666316366801192174026040733386808459782130330971889322882122827126757639648919742072647722588853947800839675186590903693397095796329501444341039902793574073691677016847543672387648042380986115403292855480198747875922661000885984438663945660355343264437291959874049193799505915384380361657720236249952901364026362447647391497432998371394433038434683649489624566992959539130468116197907449778280944522511849314365301255018054249296567424106987980802317265712438363856738360189550621057819329482049157184330066042407426813988247574604847152717852491948882151873864012233815705254052596408577046710496407884285743486844977789707145557819281197958131289783426591000420594078127685881849449613538126624627277993530245112877265110972908282056379716825103240793023645662850093564872535790715560040460644337546232436077431963599049275452645935911434618226698047071725409163951309749376567850225301243867650574892359691764342530072510909942797921321653053647729181065759557198827413230172906286765120472718483590501672929697904452522394337754695127433748479919413335413578899131179417843746023874787385532625800874696639120203654858639340418225412544551042000995559414497389264685504509872976081815425832073933599352430563534059432353991768385759766164333074876852171967809648690181137133268339749441949420302428666932006401570916892865516602465696672767554739031881316326698790082594025747763076011852861964260948997277466102475691505777361171527015610767961747389222918347200543278639378928429279658917765262585319426664829436880114262961742573269526210382791882455440429804107944117595625994071850664530657884499557661664224163128431747206876632026350178576963854111131193059632530642898464963964902634799317223959590520840528701573008413909217749486371698064099938255997969761311132353571952666718701797205603681697541654009821932232246380421062519717911828693257149312820407055745061882621167032036938341294871268397554513233650967178107556387267358105108420789163169246812779363091345392900653902150045414410127566904071231866291930589437731758943606120292295215614956292395027136531383834795868083214328377001428742440597070023780321000006216882089839394126543722029335115356698071366274892787406484548695319675163745950284954405696196151063063396763460667565515072898554494716426358321520922707673420777402710005673157793730870011832925885190560377899173259595557923641767057269743186725166620489784332160069319455927933545623333635700811411692247523621841185925850899214419009797555196261148520093029076299752649906939873783997948181139745877926492924776609489191289910970618613724207528825269760684908545801601673560326433595930319373071259772001950681498223545013656284117756779862996176238359340613827137497606490370728725655908193187015254581705312712689403731301348788541816973577407246630919046945393091645545499825791900476926752736007696822048041848944463335605859311493065170923339227947429468857374919717027907227558957217214405780471229839834242569093159991852117149272473689429076755603151885039469547457299297128682262144940205567379072925424833545891614834438029942588839001214325055308710843218165035035943139227726068002826678442757695917881478482640263686541656525645985103810304255307397906276185752555714506334518518176048510813412584499281745910777819158469859902854478243489538968133285003672622997008859156801830473889410120592755330425399728599654925355636543838756299576860081679051035408946002201626506280174355034469866535501066001357965147265524849642026242581169934454598499720483741418995760403239530754504882531435813473473598675358979300361622070898998010620046619212387593095418112397909319435442060171316667331392433718081694117263417722226373218510895357538716958192035489583404759280112998766080452963546283839007763048303501015327561909262838444044605818302617766251893335431476838002396244251926044121190620722444009481085074534528292233981873481225621246682173812208387549689483998826873543239699167555008077720069093004595151735777091900042452234377034712220669387262214322307727379555877793094223362188115832038420426704978416787812344862990956550493421295318218982653283996702161599895660248090607077292467482322050651460463876655120342817891065819985192824804363430318575541899746829385859350455864359458444300295188636566273557465431581113163850553862072215405996242030485660565415559493418011423035963123393572936893600375661817279108250714473809640654391815455031974416726684901296556528367165209759985293457056159432754293634601123414464756356014443733635563750486550770098309952109927236788067421053920613582655443950104019101147957315562985500325916370079132677108049938017530042649675400624273085743421092389763013165776946588886697336534189499158578085425119042149510385859532064703667781734861643846422783417031606181392707686422159154457594500943016182587668062495598490256438418489019752293683877810115659594692893102483145215508571414860858700897617536446677201288774459933007200130327671167599448376950435909222275886485290693302573735652610815883699898118452775264718845160423719051361757243265258760046698695536725288558234401524000399968772745107200255985059687828248114377037916168573892829809110520549241115698877781178244351803522906720764787810867729730848134179100399127718724789137289428364562650298791721255452923463335944165770719007607916129477538493097203112366113279117848565189118885768471528088784392269312133923990514322650865570589277141040971930469248950667005949296412434384415622102951912900803958865809389330384504546829773707150598318026339082230437189435387563166524826011961972017868004904291646348291664888517290642430428076477261107947122579324718678548204453334390563754963086765240690816889971414143409711796361250673546542849789032680307071983706707388523246996076672680047669136187329449747136789099103235333390617898181933637919013549662649628416049320945323045830541995968598695857097199240557882446017616940672220552533899467814319159995209444355513050695226944275757192852985337633251308147855091385773782245703290251836393141628375400955236946387587667802014056176324056411815728492362958580146649073732186155535499384049135772958911191046623579721575322674888895920877255880558920090940889436271973893776085961190089430828611594468561303839936808828202751633761211332971125597551851902262917088836246554167449416930877193012179272122211258158633931545944563149933084077231142803635290073898007774273647313952648789516958368749948719833930740515367674813298462428591316545585314422387618197742503042203412832804793421159022604603143396299621102460653399989078869553368896102809371754209230020029831267095321637024780376372716936647686474974306006120856466321705707764456194712007136412142760696302910078699771984756059182000350838807555026105736111092794340251352802066661297919131689827507655306886379519401909733055382144794314713715158404369028079726536885990564507515966343071276231133248497616925151993106429322036899083566980369315967822344921717907568444988351988459516428099455134544039538888123951444495994100040380250706686666863981163316273369517568031836973965926852724313309091094613712662788643518191188122791963676256724898156636725327024793439382612467943546655821269727061001727114253281080397631680926834376582742996472884478200709645559384558608526233682448900826964994399721520041598914554456693882761940634351725171490016127710047729528187887903241979239127157266252867724129856471120298908820863938988386971995770907095647563028156691947905248112158131517395007681811153169571281956414273207509277241577898070817879642851139957203625211975515499641968889366202772486296622949955117666980588292716308291744911448828380353447943530100205989401321800684287658764567871777271611383416117788796247577570700682616802159069450080965556387753620018458683727994028415841884766794971582412726404389163322114884187589812632253587913137488289705640928396342177057180548401107155049195848610610914641887163324729099518612877986011870248901086935662834299482561007818340942215446977083403234021039836534647528618064353881656650792122332516149727828246141003508946208198015546256899304584374067110846781497169744317501552310458270505964132856045271620382420977228789527579705214576492237221517555579779677919794634884120787081636314857584559546780596788664433383900773983042325400534128734640627978340453841500344168442509103938427923538113181818413642762048907959715868117582992965928888507567258435089493366223721681981258675256484883823409206106650941067707144583374166988336099656158301892690259137351078189354057610448858924410413590498701329967255868787057771419424498563720243685306360675864669827135586730834875081809914345739076665612693019620196789730322897896534111062458902103518906449474607270501698736396154957152181126299084633852539913472320845719939528197052536859961656611717030090813463039792043815562048342012861087338217156597920301839843696082896002107250737634104119035081329741125945270087083099449641251343129252512673581352967367002682335005155073751527226399403343376050036685148476577954779796103229216079576423344592858912560028049562842986979478493505554207821435322165141517203569214900679024466981115625019354724016786067813905012934671937055211234798185432173450121115453317985340003992274018789331900022595605142362554471648072895040567046245340230315835112014540246158203878950639532072535644771795584552324779506320842951931632454742888252462182422761302400718756232338759422050233072114846521842679989925979120774721907898390153345217532283393580280059966817779784211726126702415729232334778180121617980958035225856867571832879633228980575887214459589292335641608591816979328983047407264402306200462623053197290169122556728018810314496447765820106686030846867789312517170935131040903486202101078605527506395001287898486903034898702691372465981438888206391491527523220378526883078656694096195628328320340076902082216360198872439645092576317541464355278821912946589930894810683056601122570093153304367302243220796507258918259420340492866286595125165914436163039616273976160205047736868911461238962190952515553506317234311784345819275406572463958809615168620462205629018965128951200485291386079949146707591490598349763908664433204930868938498436725296156373868259098999827602777956702659840427546907861920647530995301986775933151248054528741922764618929981250449320056145167256394823198731181511982064955724519628562021596155906181909811698411162392191625079528268614692660166679918042429115844904309538673492083013043516627079661530636547810892810710376214160300758152999117213660401876929832646290888589610915736408051390115725289839711018058452934878255406656636424763020518958544792908644007104219544293596049531965164936527654709936838309731827741239148385651337939761668287897780520889318971848159684783426663173586621070771012669976895135432826615694626422777409488569213809968707498271068615977435844627071671635524001962310997282007705164456433699717443422390981590392425076974211090335906047645482199150823672319586031368416853406921536798943959748432284259211607781244682566512270451475581283912921988331205312943761349627536629344173086541512782377472786812234603836733416323405541088583321973525269379697348549529404281846877474078501783009634733740700776584999718675520253127507465004792934025440869598221272184642401138293192765406342554053726658552578717059777677537704633221505472737613563241167671624543137452132658720223640471628720662645636469929575190605196229694003772878424468017752547698822303932022417397648509899602503942921172686225240661845809803169930623668535782614113942361700966608854591737976550789097681673749072085256283393998315736884670465384089399729473564865781206321397080362220486522169694012058698873579429568292651688592471456210929168647676727938743196180079784331403853518090498060331381865860805978571841988561600221802383552468200710954533831451434310171101495581047429109329990544715558491044935328136524442712823897965328619473967748719281855599162232195729252179381297286368122043820610378350843988556850999316923321749508533462060366700387636177839394498609630873115335541887666476920958002402041534416292386091677430700369676036978293242528359963341579296035747280629872485786701091984412265490588168975738928442642929599955340439793738913191626950116193327287562346508712085202408192610827066209835904485628534135343159287300880480005262564734469217196437045933909159096704392478090755847693167262142224308868387169618517242307355756684008294534368192874744158532662914857220992326747386014859547792241398439449574736427041927729804309415757349506989575413862372217487489415775805675121925951360864954496634530087875233319488291450738951214172148183190511154740096481352787374445477340879771212277686648096654649289733518275177264335348200782789272503684799299448021808479831695296952177961979820090880966519939485471961264150572253781968685911229279920221764081602602246494074233492267621233289940317628690371658351963074298091380835874819027311045730828350959486691443236945652099708784304184170456198061134231034745980396867937919347012354652757298077083969911719589691224508956607312481826413379918364787090375608820841602718919281840015139754345364389686512837029339682141600065184995519793094957192286540932039659755496322605525005945068489607439454418954195804958853893744894639952751600251800117145330270159394588899297704837641978897885740932086199287792108105020302722135994996046787925353599667145066319792310046168430527323087199429779602404445963549670815625471990134756401266761437819176788971248046061749091111204272592257176992275319356211380255302511117253093376805902602411813416792651367840500446615710612139496498539506270408352594358889637717939118158504487297307121700895440353724287377856750788173318973076365792984929320371785460391217283321970111488391289809806191790648503873579503593872275739757584132916208454553293843219197528103070233158408993567850641252794418326373501072315639590619427717847070281822129193802895936171804799945614438363375641535620099603318328753865298680594947631373926374214116440657489551559543358724348683052207005169203951795576921215239388964397247381405448332236284392929908984929749347227184493517359964905025745002307876052975917790990544271988082398376457759993918910504619273061610624037704587936197912838334412883345882443808067412066776100063117897775691128782566973076214373487784065325064963238611529359414424046373512060287664205870572932456802934196050585533439748276453101745901146719758408859621651034666689279168634453907131412686490709432658760870378024362851708102534407920573786778508002627038180115492838527595692522332401930698434166401583314605921599183138177890262187131512573296251536543561367873998957334072332951304997122390130021516642423708799985412735400654082596844542850268959984407503159720334878604860785911019046571467792437004211623728234799857681609156324561121963854634547763683385518123565882097483127019687914912022424621401417359595974714136051578938314986338286575609816637965184522636781952037369551510690421300513399823041192502043408459916604254354976892642566805320029139414417223251057393123099847775939929526476956820928787105478865658335927182502426242107741634416248555459972162804499212553609420753987150301129644431232283194274222359450751408623882635375611001702601264455948813867104465169377630346208691937650197539513964938761732800213296923995949537367894142807572993605152881921030076963717037210851121893185838077198512188257468689458648899312585802985393069673779268440837696423916753989031511529225017856725892979460438506116078020573779087187326182017972044586430778714947109508499814856003034680425612559242953222572062224684169802565346646198639386660903529104349146568489077472290410886087126265918683626732355102812040502302130005497486586408660911884252333007763824528811035280408476957774171375999225615513969478433778847394218431180006822158321353667928410971088589181142386539393760772785818711290202974096103141165085542421224684792084287319914172240959165510029960802371592035610364234839322668421641542395467993760643932975182148052527653857380515480297326568533130464984626662759885878903970983274252148916478619869343985249553303780463536916236719305988942818022151835936178099134931251248083640513228236801191985562640556350811716995095208302723003532754988002385306999297764624556689002728255354011684112152786578956651030259362808384798671050414118778445113236370334783363681912556987462031343162935440169036783636084504829687460324277050460370958288169590201416442157524127468040653276941169213166595452149197588803766911222610864068402159836570468299270982716049113012981075596561902599071429078274399584745889688628726983159094190948648705853375292650978671438813979131997081532703744522941683961497029715388868780241393599727052003266216057407734262063103779979621043344170207488340197960650284507236929678301555374880116157488196143808801415398847670412119890803501502937897140392038145832303036051481409500641959596336154485485134481077902840352005611362605434157307469956893551394227376875982306392939162210170905061518309570472482103546715238992368966901377592073642774755399697522079600944993424076695890223740823426048730934547570169680859309797668183144612722894112877223716499521467773322711904690712963761011942160442842842001333634279295886944611872925033789137477084891579466121330197254212078005335646111219957860953571802569149171064378866099371599978261190662283088072524624053620228793882277895713711999727043493318908694653958994318119309394407294561530013392150765690064693922487548159049643692652495650698830426054064239912973023385827690972890283115042974642939325337808245316881547951429345433741798215011144517063368891896430395495689677589107537326387575976903579784334652428972965847556091123555462963839787952521715123284964876897197541231301695521832789309726406994720947162824606460305889901062462817650666631896500993272539172529871467015566337735209465757679158564876164489884242970401035732112989378812252792396015208327339602396450980364003108293791964875853476213837142690850347886146166798386856748869547108347858572251794245507179838696190722620371421843162886275061946651360031693259499564141878820011008463068487652651633049218040386294921630762187752488964719898727103570030860700789931555968853680461431013242264206868031472483408702100696012438765424363343860520794526216009459526454691543435044312172008185677398825254125072917151301257499797403093192657409856282850960459916565062316577006592917290471356219101845270784724851864690214812950920901958641203747317454230255149624997854696892215315857993941664369707386250714868065532786254252137008416821796462707661927914308259111890361771619327941343967111980998776239971108303558936680103647214193775018336552841622245588383777837160662086759169274131707934942466984073645901141820471025449384889340439379469986015697735089930809509345520658600763792504150330108782845145517201776654216798060010818864754638093184086728962520645583946258124219937257156695213962953034584184663190456234264209147620842402147111146032231747578481344714056505474082733890567456631391844046818790837188699376924915091049747946818539879790184335562374546803538771458583609166000854427306599980907341160360155782084672017851236395936309555638657315935482339126484345104908602714733776782218799779768437269775394565546919856769787367170178603355332215941239603207667952783878729564539651668348944439322959065663974625512173287374196642271745600952010520514097786872937534645774370271629965414353394785660419796002242636898222447226506765912473221713791438451605385743976157679805380903133809891920455327700126581967522202367389010264876604683979573770719326693952498705801223777103543470243414211394421521459160553662048904437470757740073000251083706391415576498505935723602284970075780167315301973911199912288326674722607211756202472851428449775091726037342439173628076594815302571576139024664279724006224886335520880843850615153642604735477085503222596167817609164500754358541933405544198304029462901768837565530158297654030663433282565840396644364278738666785210489834212545334822922279120544899386573432631892742630977317201813707771758527898019705401331692024703532690944295432736388909753560108989668162120791146916037812638146440636934735469083535179141084917075711122352538796891126068866231866383667676374231781270282064295889175731363320713884377938321204853328285307973977905533171714140015229112717462173833528777325123560773158270587227567958763517098113425580762553105833825002630670522615164305802021900953770979405969367996866779621943229903902648490125346447947893437909641003445136184840643082225172087261657784718630465566021899767448849533529405786259023182497652310549658808591479185815856599215676241831688752632238901960402911405908891459819784582552058021961543012007426066171899073351154201021939109096512673014799402042528029238537495950176882670167228553717266178472539546984896688045931445202104529177197748299829639648642606069279550157461359684956372348286229430295440111174117596492351631721321418242712210303897757410111303426934137041779655106155501433581375956169308919039410035756586605868274039104059816254722046868546484080882174478359007100872631559198157835504916299614228400723794241214405638514758353108494174956835813638843149646549778448944036511961266797532936576048965150704841077675454874540360456865190175651405314736036053170656723031585675200305859015404893457470792639301317442254125334709030033148427883534663705137963521484599423299040375774945319358007372500174283618517886156611988746331838524329515804672376399352304619960744377177460732155589769182805466815957421346566233834093965243969048289906861139201703375262964688460532569357780246822782646063216415585274507933517644523966710921761389164483631080956339933408666225195571711262698179693426393341446321743210530669772288875041610945590085249959780839316903936198906757494279510156305324501916032926073636504357039815026725551220900168748013256538814584027672706792970008891536384042458098274485593443860186267662524739625127814114390476015883709257810923852297452159919499714952325890673031072889379671368611983556110472475853209568605358111003710746410763791838508741610727577743455733593566521149376631235595630857231724610382109383845126544916107368684024931907238943871154672715386511016738384180185700971947064009020430829466500525009753820152281944217945611595671789433757745643926351844042985899514990676772217995462024290147013716044175963401010319965635421046238402380308483941089242746616273081002191803596608115146161504714997230293424584773525864510153254831611203158413404933600194357197929957540287046742145975226143902042048274468290240529346404663163055268497951051324455296369213097161736079725550572242360255718927639256367913375349005684082183364027364110436720667301275909041185774531780026075752466783166881701009897169963234890042147616166301754030584183084288894938276463323855635188964230746488704613384640731288745482460820892638785335609735022202286159597366769306308784539010414714437517493788465215263774493709141258220602402774658347326179161367914065600635579220650680169807559756270310304875087108942704071311589833994092548702782605718689769838546197630262994155825785948225390889827630104370797959556393064182752873868041958000816777017029661883609670407720621237058410335376504089947972642852471669064580680606858450514548054263497858075393490234880950419351290835290849077900405095354335940198644120833198549547664073624126249921756170600181448893095323482909374379603998227060719080465771096766815114512759899768731490047757322681155477283880576652231363801823044092028035673222772133317031102256313106574763409095801294483495813946973377996919001722138731309989290773583963772144970012632662004821059901200759278408194791621397508315814791380365103370842626915985252743780938594840140383971014089265925243632094447672132016813962466401473688612426508181419960424603624356825644480737404481962106981769929249979605988836162999596366510632176138662426837146717457119403075603191657070693705107404802505205197665576437647776630626473426632999470707092626971320178230684256692235577116731974910971233811952825681841559486951450597944259309212494241131468653802282760182434525146672065444964527200520091647417411886009336456379536027720690802821072917473985172335807392323597928240757034363628647618321384530696658922095741622463187488198772092712636783783886212678307563730868064654428688753487297720122647913403266708578958498352679192793015240560141733755774446205635714510015047177365557732966208393366034979785104649199446427168971674456531748172629511870200825176915274810692828391672377762081533670343674004457478294791944588293217869776292359229350100651037192887409433658086343866763812694954075830909328438029829007942752927107640999375282314415533369085977203294071390882205136284195545612903684339975431248607061316677985716107332188774898158670791302957972407438630745438359625997479556286998149612641543445639766373702453438394416965315228039381189260588803570947847362306136180535533724758074772759158590264733690687065900500085445446509187877046081228932663248165167322587126211905220636314456055391063148371643057889461953111869344950081678208551383367674858648420196863683651559509903779691623698010477742617157632693203649821541154475500675402579053953468355601907401136718224876812407896132247976488862649136431013447420420947226537367103811280619555742592420339951249878831007664491557507653965911194478487947484583722550501758518412787888118052800375857680004119626233777712106844739695559460104149556041799430821172584501085087379013968634108690061839289365301527455900382252621336963058467760105447073099890290817851177887060603864427333000935885267386388436255901765209485606603150401071031039004836290434093513836313267070427208011960074921189551915779724561926147770284487401933466647689574390240340801434922559902505179993137878069094576350634098302183458586548034090932529097842855034093266740113743986464893210281170918584271607394094788960274483833163628279165260024290080968261557886441900292944440469344734648468959075119561731388185753769402858668988039343734405120119715924362944407066393228456777894300391537970030825716117520337388020274004041743212379277746173155439930198273621584882458708574109019280344780389477788307871389757246445151366780012175168696857927401072450495557653438014805982399299820419014527421670112655039228499126731516287885059520240014701350218317891375423259260904707832243486897723399988437937675578000182097584020873573892268966335149132438733281392549446690428950938640697745180318521319212558909366262613347409502895540499786814108886458489512166543755816692506965029117838929204959040552149090559554098195192734025621361415413106300301708611466794372614895206829667006650000093920221020943138677471843387093455119639361565017677152544698942337635699256630735322236008505285555173241560286701602252962979418717809714379608714548546497301655827986904724228503819557413047309495514966476300807467155586219097473937902093459631409390730520510682047192462065602700164222643176783112832055626641679560070851936630462135680126378719213845422926966330867481355431793379478476876255766070567586606851601880772548091176506072320478572929154268710493299966098554615554100595342629914419490064561113052863745753859148997347263834198169541985930286781281099001996625661042988909711493480375062524771552868207694366835984761510669868462983847755270705619885931134957692382685792920505157021864474811346329930220870743846095653211715482566865146450779401211846289147670999521754820606909902588791037783467988973986812185541579347824404067750229729883734233308695849957382282401849692025388172455957202836719459440501918370652446887785501415581521806896283048071925818986381626618816557593096457343237926714692880430440632004740760166339254773885871285622540104413040698916781332301367138406061898322387841357230200010324029038613759171657371847816832587040104840879368223690802583801569290186030284981070004142131728729241215475594579969053873442775081417223446521519870191186212120095497651692310173381302905562888428661660321218617966449686822214056311792924467065493061258645401061983975185433412916647419737456841621823990475993757763252639475136829837754409133513425701954085684277915823229890150413622508850503101257143489789166772737991670978760944180650613455923220578359580701854295102875470155752037319674059162797468683704483383442044910887328984137752542502974187052930767737370916123762415464181916099756628263538448817469774386688426094346790670011413880976160515046820371652160107418651018689918850886544082536164655398088194382280203375756101364613666747828257618594306454907491293929000869006195002337585340900637544574689261711500674934314929575761137899278658217880763956635117371756299248057052971418207541601375797147059342594666597623640722372380523626800557939323751201223684930590983344993304246365931016821507046645389576562111188245530916206083650309910969507083320730065842019777473645141584728756551056626802702130596815421228056912749712448974094131258263786820748477653103214539609955960482932877774215746951519929285389047692464574087002206494233267099266365368073445539851172245990688655446865027298484662397107041582110235149050151141468823771600132130903779121632933379978223248614039535404259118687478578007895537450944637862053894925287428752927250670247514115454611557059178237850981565479913437158954625071468128042464882283179499927836709292903913745333275195866158156745341870854278300408198125317583764619832189237245463650791801920726000183331971621961246109090521977304627063048852937617592510150862564096282863634139262445342656691366072085227136088004976318487835731894048797069952448153039453125857119584866606164208352437318004321184149360116258775811864191002375175909256342990514571191955830448892098576728792272433268209360445474599094908776203956750440665957966942200440145362736386248878763937157169659308373800515791466475130319638856402085228170716526284951709312129103211970783391732667119954008839830380782900477093535203112980556220886087089472774800940082780546753341627560446316888446786417247423655327752707917310992765623157736254028389642076692181755450059238984375290066890729493458323471160764561676127664654791374118262704874099253572855514949748098266158851744097845452272876979595587222828986168445332605670397454048567748051253534318376860778095418536978148574530287826968861109871473827747894585803995189192521489518713859531497116380311462711732573338120590725862182133232372326152781577617446342315069682419202156467801044498463073725568189633022609933770863992196820935763716504417031663935134765966023250729126806124232313612297502693095267311376401387995618181098674252100232063772170318179547942528290459978224456372660038434847686660740279553980188363797729941086100999805912374104627496001574648055305722726397697492350089813527184401511407775855937347232314450454040492893451947774033838220314472022485355511842496132380426017948780419445153654704747250770836173115437182938142285526784716512498715703799842884901932299052258407861476075561151456752579177173251436796034372079148800647831462751293739997764582343906353763900330167920584967258286950409148799863408168467999315727600117124638799982816763468494385552033802844551326003895817485452802970658359015088120370801999308278532161720975516779321914919796309538610349433862623240213177414488307478762180593276254000533939678196792931630967536547156476007723214901560758226259493063419155456869290964390055293560752782751319900688007341376545412185150573172466967338439407931784101783727682646074557780509976567445938907449227391022633377326682420733460724688300005674500769765141118687596013177209735438661273548526530058768052128488506721686471346105616635689037430743811952538857398591466964978130313031630142687878705009000425364702129678144567792972472333451650238508993772948811595038485779420183848252454856288443550002735484319151970692704605882964643752544441260476788304557873328285289655160395107024993324997825587106373034071483743901586594750895817250465846691825241144666272864422289898243739084212543792158721616953625177077937312760031316772228990673516160777976534242406302712791650970273431550333050580904085058905421334745870822200655053793170300851283314379482307036109904684429606725062656599065516918087976909341325178914555267485345570977194546883227250533967136678497306270909532789504583309719362697719023879304941577639855009987862283884319529727096076813620620116492716848091885325167975135283955132498074545533676270831397466440664341649796036620735339865695467360605134215663299320352887103964748252249808669513673819118776974763630669142023547723315386025226322856399513507586249421855493384182020894607321711264761906935997962040617579029011145985114014381248356158002805865672267372204282273018623299784167560467391640005515953748831250029424913195906917440829890925711988491100404205859178064113345882793689639982635856517704495971399256694037028631363602695137989776537169846571482472337182084233696279761723857814534757698768150520666735104286002916708781390748500563849737008971254370381622509999876138165033564144635932403496143322432319819096697503798220343887669600393383759522445599214861072422872661183093557187454764262036625998123938939295295045746243643663754340791507377271585508576160612495556197836307272574087566051541357356891370553380153545292048188171966557784554987159820421865186386192864478959984074818911850121598037901508778261936892520074879220967428547887018747372868250589894646041361351656989216055693650295496997615314868636071948766388005889122116663469352687398356298294347645647140694464333487797129390629334122572355346906194559573882266772831945244263606436256429068209384087986800734743192092075036297046296735297011732235124345713220593977799588210749032808779581063255298624548883871438108232769593610335811969018931566860183448417018226500403312664901991883629714262194867314316148785726082679522070223808187299918304513996555542138960965195505195581387759144939537583313083614769773998127441074029891894554211749049426682176419744918960094862172237219739512131340937528896930233927459233052242353805320966259106165910957821885747360729622856425234076707279915110435048193408788751344321029412927419843220416210222244835596522560331713929519853349488936531898757532767748425294847982931581754081291534483404344359844626589595540304915244225444735673415489169009681113348791397814849257746818900513035028532288282357367587682804004738504674329657063740100721008341915040819765876557240437139957930052118311924449312388479904173305733074942289457742372316346078883575827598090164410872314369835418082421958006941569093487010910732247487715615270202478717785135946431256318054961050794453126441588937606346069075057612900665601702459210758384306047980623664977616978549849439458467556386701111085309197155892305177831281264092427141856235213491984213925296829594053122085774254555910928144491865017094523825682813439530244604171833448742536690943612614144896582791281568696782537040311579501281844080089794978104251510689347836988620561502464472399071302374947227250984946380681371547214467803787993836277967145899474356054803616268046255929089360106012242668000783274046886736827774255136690287012905188428792524398903040530065483468197800648660723348363700137601008033381895694674705721073260508134873824256899007647302606427187554887154131866358619222784552178832107695987800616729905199614275869937051626421902734962811851461323983002724703473359404994910501856922677576441999984598772087046636979478603401175567364481446668993363385748304235167196174464575005498566562667918574781065269053405945047227357363032495750982150183533545553291558008532704840246839944943526111549559350789040636929342833117708019228175412163206608843744249592833720788471581503158332973593388188700084207108600185670886253162884202534791333306925091917874584024409689714068098146773675185099810083560840423627281187464723657798459572746953282085837290488632334475944125506866209483782581246372521364902180042276829795631134105361036730018787443271280052207487182423823929358518074270687495902991664270070437235918934925357481247043685023541317095985776707034296210315133214670113454009975252556692668053900103660905652156874472233960832743873058031639526879683903874908806908990837711393652770886102551193348679357698975638453939468029468293052057552216795119193804881597129019098674537096616427196730880484924820460088216716605028593164368305456642810474374072960044996966660125346233024439778500650910717418013167925801896895222042245056291480867848444197489493325530895501512636775184778438916955258050581728465294004731256599144339869888174819082866879551909946204821164284763015345742827222307438800724898349170365262658895568227450284272866866003137160617969309753272062691171158181038797475001109734883233548612600520060605829051841094941107196961852826702746496829550288906235781129558129427035987462408747263325261311963740265116465034609757819740951742251908418128734516240956658345063489126891916540451028438332800217553253154658269369085705849536876102008883719597420877240504655945757319631035599334590075093498695396681437224483848285092983150396856487138938932191821340966837023838623185071694282025784179293612836436064879811115278905968312119279641446103537528500686327501092937385021060691441525945520910475560851878814283645293628843100742960442310192476081155944607533939494821687723031943182464516842353455622416149188987786082358238023817994280243113668058533076403633204867896175381383964068722688146122915489837962104938792408739663703231709325619367862896203957778265025671129315104363120577050220594005778329471647022423017813303358420913143824404387794613999464928060733650070372743309083156765013182932472697717927385663581298550890427940722929775963151123158889798909095832470568120148982817437517885289862956646150236641398225899017783228893637937237322749968781661585936896092096507676406443633818208311700954584726253036634369147450972613295022171797291789482689500205569462428798878952775811353822321019910520425511026595636245083569120176245574691734838534337617666204866676710665968259904863115762288634180655607701418669243850986320672234783587347497697833486774538612727266112002782211284553101458954171248413421846494735088494523609596837558083575613241888842162629679406305645217676668571040215287354730297183186223704917535915607430889397537040266318971246653914887125774859549085793246628518540824953903256722693431461015993866864145508284040207891712967999857880940610359459908618471805218585195889389867305199327965425138695003798816765444968923432227774945102255556701573741113977486626375938877631573455907245892743711333643263605997055207282875333536573153150312807119498345877361406122514621120140691231143855754713124168016365865943778064563123628467385496347069247405651803701615035207251283336076147541715491588434207583747749760354327396000931222082050114140115252979777354273559503715718696244834409317518573271913214252864173465709917569393918436878606880203898174080875827702073082401311567208600793605412866259187171439545437559213793917929230731710602303709024561156555941612467847162008458168866898180143700781502327103470610267677260531747697984331322663555898979182145980293414336394062954310752928866419430873104483270397184137829325824785316823371637337056240439861662901074660557223700636102459244758747223638615125719512003599645008644013992887489246610962763810959664225450848826359767958450426822663314066132987252871506214424612679472010520938967412077026253554095910117482192846746889070303418277963731932223185867868259496910103453695884131092256539845828339694360847414092346096761804811027281518670433324532535447926229501049079684691713747699226228352960012351032852110576985869595715160052679888865189188931478395533210433946349859261942706148088216053030480268619077059956084760773088179446699031772733156414109835022550396447740611652520898672700824527532960469498730356818012161329847568372592023628503214068245123047761949999339255682343066083329150442918789826080041898868977260021853709944909272978099772141777736698756791157434294845247959624483715500815417783376048932310511150048371380424799949846262938816975510063358403177933550271486082884137245086070470942818601789051822536697144609601457377404689400037702100981824701529940465755650089483155892909936441978747326068482794943294047032116999281731146972098831737669985968925536069090157760842552412620331017944786093544635963678575716965479054482798708057564346659780212505286125507890333130481120894382435550991773823312944913137331463269336936163937630698934138246627120022277345282009296680097953771053846339001899669810175814322817850945141459772505119322347768807502462654939908102662288282078575960499707296234788137743660803863683569945238410289665612347452265690146772399814779846547938703840885137182020911249578375937355285570548923152100369931510730236792435101208765925513036624497044926747420279893196766552776759436242125931003981468983378536263863826028978892235978097168034385898299734048386074683333249378343563487500327552923500964296140915316356530079832301773263238583111345792192560580726262883862289432168370358926442718525232956204791737939656816081006364816120657421602025962072091308733627260173974617933823031844260218239026878848048467827152601553212951353849446901320906179126063031310533785164193007090334785897496215664754600228729317554367892434128880563924401383740206337742001556285105214856998809578628037927828144157832820403256707240142081136542845109384063042714184905410492329893429562805960980396536795111553338246327788989027003936174455084584577088496427195071295795416164226371430467412879768510328916992442134774519776732273261481415868762851718811958704877402920843821430887735054636131782804930170208869162413473138653662116500334278190989421016634937987083925152665180997873050377442767564478108614175237859524929293683945610830179479455803458886907543518865079671987076347007228918836234751792730980697767075389271710228264203827277292526856207345420927935521715451114610997456544330174380752737273977440880453345895007536110453819948093042835880463164504323802780063370901861851434935129389010378795500150657657759474770577612724609364230018402141512464512565954750528131895402828863664332350204287028962115097101451759901087400878092179040905482344903754962690503568299897589732918814228393525309100324006873557428905664944039186545625687195133311297835971752544021875565133234685281929390464834487836419727654513798203200923750157515347270246979293619975761424552253730850593369346294135777342269882503770950415368207728579026271975910680372321148792658180157454798419829471238486764899077218102211360680304895391702109749803530508748456705018740211612657860091798773973278869939806939696403225152365392089964397160372280258284073943936516895827828650545371282934402816524615688817527294035329934436695761319011487566610998809504139417802860654227229240983360349321667676748829057925523857865827040836313824033145461765736186118209283993299467796935996350841137207926971889877901932847815132163565066021733348600403577771508515225549339195386968072100318828190263918145196578772836653499431895718479864003612128317642629786520258208579818365562548315420259903446655199954966591483770151760425314958956024590207773837824681324457361181131702318637879512441214140492771304971809099392788205513611159282372111157879840031381167996274360120992351249885284549164144583445212736412020740960961916089459259192340461156273382548971984861067039323338011730110624743723840064467537861670098007999736387904525633870660922068832118666256867860117943067759483473468465379311582863781766052646312997249002280256229546665609493814570994640023551881153719197167523596145914712389306887750519464445657481092243431826911737789670781008594868843033161417085659619966563320723373868159851720100924753872349802873040769925717828142516680547607006604715406349791376577382983406709389605809381908017779181493705321105570754738122369249550995355811131108137806006359714404846645599365771278229890640891636531371054776896853648886041584389124094767638398515714705276413206941688450781808897533710246251338142115173835851029137698272768084002871169458304715257063530922929749129389853664056466523412073302950552447498027898694696032775572454003969399486734544688733507294979487214020642683400938158510318664207990708670997581239991970101042435883002729630364743786605876068636615711595006496598452739948034995237101917632126391079093222276773946430940295030871648921583803804048689332091095817775268579405264181974141988913792590073988432906876283894217295694058213914556664047820632750742183259149796244692439633770212244246030226642634657162878706927991342961406327739316396161097454166403943852414192923522963690761722971211422050417845499832402143325847450962897320815841361018297171467862714552391176822405556537862706360918316152688489361153466422633316513807960155943443807934963284181455403814561777554590985411862657439235820211670573854684032347272899878662532894555229059970316994476056093235821544106230218312613829977237774730180388243000811262616092719033393550039510717890264289181315547886221688002241986105125681452506490145316457707375748445432891926808896708076381929771648808501319794506713514155716869201966732694629970776714319819338746758568883514199589368896431395162399961376428189708138533068790710965765924895938822654201713421708188507220652709298735970283744157751468104664051562611568560790991774892029788846776696310542884382616094898563458471580550091037040145295110984707014845718816984036004123829082177469782301111483209132561501830621744322112623436383033891383619931358534573810036258766045119033860534709515048430910907599493796528730594217205325161631425991316833842905016818960050323497148419352026585341010745975620116090090938270952788455382457939303152318233979089882214549483125497748587387308294022574606402022225118994785147765726204907939045988995889263779989563441044313655927847767662536264853757125700161276099762118844033016944741714581613789832904925747085196625825929895813892241459067436152081927908266245845086616638498826830858275260954101859192934440563579104060559353903697666496710306133189994028324486459496829060156982772901130846504811987763866373780057090162965328702243568592149698103217093747738713536021259208434649924711083126140705453947988760807939569760175466835200550301833455657233405173820324643126394207150669517319906173241482470203893534985362283541034404719671960817176052343875411451906280602379231073262920484040397103176573933260911932229797797502568183082467434371304823748677842979253821771112101345368396591545580854230849286411487159794391690740077883115043139622883624977790238879696762175681701717729430406519975788806813149609882904869361441407685917879287472112551328974260864296804118670802114671148418211551345149238556718386004208064409666486454142488486423785876264761283111907845716028181790668712547525466695109650125901120593235625441989754233565506880362039610291722702794218751350213294905354059611521072408535026868954211376570205579175508879172818639918730223162160417833355694699085992764820796959375360409983671344993399171509551997881789191394995406196604057011648947926642669815671652405037654712520391807816467935358403864184520564384864023180948906078928640591480536460429609632491676109748699589371633804333143404562088571177835987291941742978270606903855250551330656653671718104046041220450067777080612950047703565296941299174279106997612577836186749377696274097354166974648206315939114156423858997539676081407743061723936068181238961945231264004797173029922559169353817667627688220060222453838938570027190634096271768163038748932754904644907146149009488517547413628083660788015899201332007363914601456569295984959991667922566259949491608213055956477023689913110285617345703985810254765741144027219969566691708119074115564911439374570155789310941375663222766102932524080763970345366893143746192638434810005444423038616379824722354794026675479610540019867468765292402386248785704692345886700727312748265879129207128977935190467557148150901896321503773487081685564697161860125688040856067754787541475515777349773853808423208949555627651025653899410649972851417097224415668638251090314236754133616658223008349485410422348900473575995765246637279886066072678631079656921428914650868318245203461807504478459675121125428610449874274576310251012860718094999972997239699305985781105950122710602730923918581642758413830641238876973166082601826515523585748650346896087528054853898779562838779213534917625025108744928610484393517354740312011693999569818500026883993894013490142284798832904429688653623196238787207476752065129883583495148336940460904003188365049879053319428860313436018972107482989839120916958753354726158352799853105953614493795930337645160260404614907254033677801489046662996850495228338623602585567555117118743529279458763532876729056579624555175635585108091100142101116807263117078339894755476091501127699464470642307435959132972491734748311042324526504483160517361611194161370539834718841529126551554131607075797065129746274605014114951411993666555886712076262278646587216618877332578458089998948375913265083548258739941342475250687703939556182561254741349874453512888245323854291145896482216287613752164785958117595311840375832376811960061241815752087865667004292881002096860039096811081138982630427582144289686687827618195368095370038868165589930775153395952866462325448696002005751192711821489684201205664435432067944367097484985420564768375464763229009469072720513771962226600348389815982793858677033119273311511714798968116284731537495417648734590051212733581112498165098501240092790010668723349541616736070379158658214182391053103927362913861853976295078385812659521553717951882242697914723243164626318927600464240580251528620555480303418080561162767609263047899024583672164216934551607182035864614424939171870398335181318278928642321938798176856636018445356485338828872390556065885945079867071668566739442782289672394647193760593553581761877459954089360027849372466135349696590427043359817524228449145686706429291541538490989215586452669418746884668862088763964339994076656233105331652760873527275870702697074827065013643046750604239263717963103372924155762589904517788504957626371808153934329699420622508536851522367949664512835161083275451973890605254231092501808412852039847056348124244783748731693886672919728151656392214947757590876518644280491169833748797066917979404926667887983042903947949962691433495511589195098959503206982796147354362683552640256697992746465083440559743076855207569234951084187446709466718571989742064607674678661339789120861604570586539003720323930683730243401479643045327235588417112712976359468423080554644591419540040337082713050153469728039205472931851828021798774660265231911889135917638576435215575605344932325879978048105629226713609727710873217022924390333565242317901466123304209628371659524174954776395626872793259545912041521591198293244491471459607674014599633620177638859842775722595776982146246716552261195307826314488816998644238655170741897490255269065432966913635876482911690019414480064141561500776413721040742865603530297609808751965973949805394535544577041454319052422797386856484478278665472549792265242456749050649091659758118546743932350331242910631533093195708076312427119329665915512801383554085774623384928903572258699673724821643562477600991122624685269709645722611934261599396700533782078744938180072934394172053673302431147700670839815984000182002185963564094152230843788117895447171202403737283970207915073318480723650792856890737489022811450879812244944285530778553710693230913478345146939476281882873870284348297431409770985023161889720877553946000553573829056049280785549013559549203855699570963191261904553876184591284663301072794495163235137762418883903794482785118266895924124561946721754049051795400770324942059309444415557242242201958904429340568576579031406085187942648812815814925212579824931733899309182847825976420582479473073733897394919196455881915890779290993314809036036379663926543786823619784957953717479705219333577973088685093305719392941138019554067627082678932944948219589850352425597487946035299085467363219797848595745258434804708477733304892337178932314092809626496265582616289985641811356180956897504601583765725489962029671060880709290373348589966390645925493252365145535521461033216346167540931996279797700038115319114986097718428669751830727934128900095671396702402659665713294740251485425512438187108905841109366194076605970842672372500179135479584725124921613406883525303151017287987900901384846690716157485968357467904161893382266354335648852279167031517949368449850586595351526322307383554183351622424749672076607897434727690079995993579844491241407484746997850203442123789006228446622545921885159573655976939492661462233381308742489120540538260307154411016722378513136182946018421516708520979060673431461041825025965826142774849393353105271342554778374745581064967816905990718837892076936058074891239984722034148875865526029603322854720719860346685037688827949983566145430077252070483524968906564619608557125086117997730885097172066419093616089254160644490365348109791416432022057231480917402648789841464094503930183081300745857982049108251712532098304835275192166159144313535112038139853211112408207713407083871862917997055512323210604343505635452337309141915920251359406048495794840073426378157194734825088623910624995326931847657366160862051472241175922156946814855407115448750055409494050341874957117578451704565311236392960632489037983569209506463192409508160621790927167003856119501484183045565865564111135973362796144857537403473785651096768808904487293888390851196091715057383680163016764063645943687710790609041396436702203475684348735597667246681213209939930614674783944895121585607109524233169499862443738378386633293714290606277561101757295316437512455309835966185872377231567929704040153417334539757667282322261391964914514599027509158454180042571163735794070272397975143142727216277981484774702568196951097721994312108270620039509579998549494145872040157187872408438232812376413199644554120854684793576112195874423706705791205561803498657529987595690385720983396613480301265905623810733389738832829218552319672682251025052933503469441404815663665951290637957040714310075784598659482876653126361378414060859940373595152873368109388226279467385112299710220970955799185417789840910119239801930362869545953864539189524449699588738195574884225302799640281885479338973451753411430404807014348853371483065972777107546247281649358332112366112139776422149076650455855759533566278338505256070769933809483318066011142403327933964795314136510167699293791791802210941010447596512955589740148288348929794496313395641222343720632721625485276514679196504092001442928482813859614132424678284632016731114026757948675956616894354959514232554319336579677081857931726875710226425534189516636520149371833792894616711988178802145909796334277618494472287420941285848798839229506846634498437053697839382152059662280533295233780796089115069923956206588455384970891707360477296640148787132345665301643530424318957063408993411269979205877199181615478298434682065322777038281366050372176658872226284279177763572067699684442891854250219625822625947715245092219674925658673580986226057506922643245188755244437689227406962739411850287880532752213925916533669442968880540013915154382054850250174588841865565171304975319022852138103952563298961844122876708030500100505905147910896925451088034602389249000516356699233733189390548709680151670249416944338665887780653847464073947831711691070861486954544186164686485332259924878924647414707315141708418628571656109665843959888550605457374554614791489008421294747325674010247641040907241367785750117851511524820843545906502305841873205043921292942094514151678792618492935666065495934580048522749754128636644928721994708077786251722313920802143472462980755799989852888092033965992721936476542917000627318947963966416682107422053804689953588208629927338816597354203034735493793932282082036171753283371211935909079346340688819791341432701120472766952539539829695693805373807795279073069587676988625696217909655184706638065204244908545329428443808821346212320603832152250115158200839553272987883463573231006396864067775017472052116853146695747664819806770790097359444508972634073619677508706765316981645108622177605957190814065734054355789198815656647616255935131729950754372376801406580760495978054388430320732619334321016846276445775693624227728119227323471154407263808936135042775087771249769536540495678619917565797289520222193935990424077994924063983930275620605034056770739792363924224940277681405946726281422553947010317741535693794495461849320196112291271132920915217214361208644586942386920737855164534411826057129343565452589118230543581447957890680007946856771089713298487769673608383340230553046771015612352626348816418512907971995767325287826032922490439481313144587754677019392639929611071487023639996408969842869535766620415735226322326619752765194853813748862717397394600959603340664721597236787874235209468922223941652678760832360487571873163757423907855378440783071387944328823036550105331796420533162044049632259205153393058115043741952233584139409129361709425885335674645446222887383813605157928882470351848092841663855743395855801060036310480869004331324359018896953996383255124798430345376069804751547960149094151945344049864716583518726788052548964602341404777025070187246343563729827105785623454339096561987069456830908769581310553567603908166358496711455030706030422472068545876489769061918456889166656205454541166954529025355225739341345178532835237039240116338710928410834773451469762992502919260738375327451911646753206640264894177455417965197979732527091107677277531856015666113052197167482037950720670062903637450004457117033168925498340537874844725735922452845314083864500164041565828171137864816003163842037725381606247171339167027100978697637735446711648119722538126023979903414710646863733306544970401216103321730612738417674097966371352522369985040331707708706276467908925164624440343023525879582182708689409763980386989918087051335015853419579814564542942739833228540205156260732878035763605023147484232228884497895843761365705574679100089525593084422022033475737940518129856408792111967806430606578310320473003861409130406945791047682613242088291624597938721736178323117580369943866581026415933823416341912872292497886535846356386619232730284214884497608304245085045368907712457574611940924333459608174546337227678182595465069726922172833027059602070190026498914602686846716690997067566020052124714366271202058214615528550760703240102526296027349861679743963385853559102708143035161975576219598277382781870316360259627742452347915433661734766892071227386151204672218255090639552745631332425991983838321503400899615113078372005759775094560127526833353879843399343766217562370400497657764446993828083915144972281284474786242607595285063559634266701595613470740783013514438526748268933705086209179622076273204409850260809377177535517472197849921538988394472416262897651445367678319753538432382956403288824939197138791551721258128780972793716650782187391937516276564365478566466684605215661158832214071541581901860343787007217354626402826966216305074088765035102302510912000666632144450874238163345847929634562353891746107733099373030176663758507166443009084697303955369901470866944462780949021543413415946325611918636463878882980560724406268273578478890508522147112212096254735508644054187388483977098888326557130363726600694588253714751692503873568464342792021421787865017272514990760152752573050965950575918172811945956678506966713610287458159291454654294715161937560625254006696694765223911953736062036909916384219349791034008404313330204326319669078999567348003355365613538127303172399867495896958335772189230353962891401683179681237166775842275370339204823800493388411706826857299291054474757271095798707244570365035377600147448327705269282655885052451859019188625557302114643142516854014435432258260386858149465499072009013982261271255760188015104370869302180221873495593877180639968844178344598434117981549817950755203859795759561893415676169449621231144938719180653406128528512967313394501531953019723867189384024922636960690409450469932810168519678376975410221104379847497874016653385016217118753941981847061250248349700985808756112757487903811942079073824226561988922698409182763437664173379334473959089677310365194727258181642487650663517585421881096498760128249555168264566366837452774273765517871766110967749671726570913964466914814660413346441499913209940078413040889644090814194240396490862274741417991402423148354183017665283920393615538172561855212067332065016025072769534630795504505872415146429256867092252998443841251620644128941500419721358580093158609818251678852118668617022193381757588712465097361897962180070809460576558615772717232163406404858936332802892526999112679593114267686267586857777830053479985494328703739550967904459647409163126044341296070616310492695333447099388620325810027079810374968693360972887570654965253933013172796884335493874031954611600155389182312058654365631830566606402028948794833303250205382432068256067605714795387486880462795835239360921799741154228895869387100355431139160309336696132883722018217705425339601478563589642121603058156793832362716277661740350946349686466797368694557005308194677751517209112506392817233796054388211611262757586914232536716109331405987872001559685061869179336015993713522753956747130780849837450116331388624323822785850639274539740889033076723633815521553376275147200605627797882965627076546815266604847857628318983396651756850470714202564800589081522550044513060017189388255161514467831749786452233565824775755323950204675011292111242391896550065863535864932525339883641892574605974515955393733285710455178681797089310387215134651610213522028445707644937754387779382624478681622105335647617560813380174080040227436616184411039193547486385953450406450916258537725303031700163221135160355294890709342872979246086056656297968228854458328404220604779940367592766116201469528981129094373410377118740659144009758203687651217371239064739646604442863323929900904221240327581629557095834925422261420977482303087664549242391154410575197760092522104438831318228770993397647670663920283763416721133861231456701125186549882831181304979485427786004805960839375320247121986933975560706727730860879999811473860583113278555016595959947973305366274111817971191739132431569002809426178117395460468302774049538460332634736985629116407823675351396891882946584879110384730598212624465928083598124218020971559436344379819731974874848518525024577409051587591073468788438327604293960913832796364203258612701704703300178015757319983309943669433385295974036643536209989306031634789229215241710635760796840640476391735925502508660951513851014916640048150923429730325688223074257869781527844558252570231675357560139220627842209469486826120835181333793979782656614663826828860016105414050246039462876555804848111986806983773994235990494347676278168482006543933247017225125438217991382426580543120235414277010975549076761435297961285056421098212289014144012227894640123356605313937135116039379968834246865344122620670719952299727559295351729451433085710173214940853279776298283250601486881718542347462194190999191715201662938557257678516773256075146487730478379557307706427298247796084100372443851871443113605392151119580656571023424601735775638183140122577920327464291248028584038059450879054999532856840369289872769130066403555747086380774040462740154345889569094169497043518572781680286208311530396400120193351796306538299584002705795949412848722925678089065767134820633041157742243224159560530852359572159353988302979921155145912738517492130157898977207227023446173369352165855898948743869649206287851213644643615708612553927519726597717919119701518065066359127439656679759602947239763918647513241306597501001075727469269246811164640948116815320529079823953442891617731018875869233357809162926761583857073475495382901568281285523073134152852831627650296897087223756613262730028470421720811709799714365099078262948485877873467846826741838230204715302172206640508187147978023024569682627668594561406234869818765749962643213529685667786670784079410702623648590190659888890642016245037686409318483637297985583869255145704479917314255878421262304254709763706145419214892196542087395634637568018509929109974333147773562788398181887791885310861057649632877999174397525913491308523076639746802779898649188320201101960635289819877379380540133702716067407127138489521715158284804419400390674903710217206941982263689690681021244936777661230244936006070301006699015150865350608636320925022186722004051454952549197649720709764349701637012747197730002764362558045772429172540650986118969667804311582853344280849605801235915583418863258639694996342630190573296037118688612386644214910592813533441146889659288390896949912846079067360619745489455257875338115008966551206731810885260053558947009040582984930590270177972121646276065935350613897664540055143760331942083891736924054783596470350887410974383390566438478268745705881177352613047402406821600199948576797680835983914104139035266800553102142666496334364395536077874539443117971612575801429653928759844477216043824209056268017828477232007007832452194597361469613964327376402666943274666335833567350817894493998487691050793551093978894457533583033151367777035157571192511399091972662591669785770077262152110196277535838588022758613300142269293175615001953661267162150714005560483721690423574739035415916143855036338729374581821156741025112724090264654022364931396658520036513049849339756557553293991895373247882036389693311044095280073127882945595220636031974752274148141010231664547325273231760456062339650075735843026641429424354775598275440973096369348354907574137999802575858553554686967862823485924417060750071485482972855838138546691542450021065875877052470276288647317034706469436732107871532934695521767644838676912792439481309406864774291401892739158594822371138558375219560431064182069491042300406673868453058144237995029875431085167920510534182169350617136589086727191491983857946051624450081842679271598307807647393689075463329948379274187989063612799699944074469467994232385148992901391294248645535996535163579771285831398593292412407606762788587140504449914760375718867472688982489972519371589601143486194909414285976050881097826318491893001239226199048904891019122019840179044288730805546381478930024735927965511748532791098104192573951238121922236843767252196717743080180314939970969537001839960630548555808599440561657234452430574357975453896942140558563298424233504451163765369873553072533124729584847136203136200649383558011730114703595207138672703458415995862569827353272467917348387908017038002339661996059588945779632981095323278083978399892035030871082996983128825404745242876544415944856362520531090687079305210494929304757246517541625685825811351267598484629423201596923711620516208506002065316222909027221996767866577008391305339115096021932431527701537513387190272622954491011898589295784276815226720839115406488372236092759896352143522176810963130913787470597443368504638818904536990212568033713362405319460449396030219468178159387751116630497755132329799969893552462385883885479388004129555574670083188672936094925882349875379604306762802963653818552760786566450058983185098793406820944263203642859470241665147567427946769561601998561845769677347820952117520777914962047640433624043830786075329155784209018714996568874885956660583532042139932009171299485757355135841456034318196300700539512089513561671387170185881902218150878254199175885738306718343690353946324579759988911407926307108375905888870117633622122594274247132053514308718426527869818906412927745367006661490068925590558350129094754539309559778370816442351977748310413653364178586577485619531758502181249368359345378202202367520185992326545237774718099334947813217609000682464792606972915944383360521517649593988856291107145649562191620013696891399881147820238172399842773317495837119358518857672059268430359583085300764698752970434377108718334412068880056035044972254073047980856316923687373791959453876607310809455216514773647551859392376054869947814380302013425228812776536769397976758683661108669076964629237519652107835583150091344087002881825538503078488074385598456694105540859961075693601845285554504024565812220843769192327557413027164632665858068780198161400653079258027803870960058284043540574691670167681043602899924022782321716233027113907914149579866298900444903443146355082730136408840731956105881658219814916424204862586838516345125484446481200353179102734173523771374018602796151536544540436482252706130635734739176846194728693584381647991247185969171505069303034479976841668795659284905654313854027590670471142000280903306314573326649109203788823535898800296170167322978955202086220674282639370330460480012629091642951219797384345848937499734269590055445024256045315410544545638357875331771450918681513349409723186446384840462853230444638392302412681580365309003717653684578761458289331499421789960324588779471836769165448444382347078759506038777999267563676125604390133653614360559427120829542612073275417260025230310986041108050737518886979422890470048729672029946219582674017410560203286739209052790012896223530105675582190463452170247269277193482676746017112443157077424862203493126500088545525163379130055610474609527878599719203136938085154226116917528868693764996671334946990186700165275572639159679955442469110452292464887153490091847626367005750405314823201503185536888130024919513254746322643971726738885088983924450082217022244683314693842896534110941447623641140895898206344175596202261219467872086905067242717899053619748809236943019785269499041389655672655095685346951902510083667444226295311196806420651530758362234295336999982121907367893544172601903459102233045486664511757140362962817189240503647863164351864043482243611172774501643461400503665078722298109628175209050483231077457384477670085481962326468207598204721660077940755865675628313968101340714780312345529734880567652051053366577263707888527287408086497197190318482483162544354644869778811159548176137042639672860805396049149747403944842637970497270004211828948875718432905572990319074481947176529642196705780792853653424513383717001485050521180737009719971874583325482068247913711417648523967468375653473907477465787695925129558372334149738749675308786656213245481891108928679270097587152632806849971027507472666257375034238131662347130932397825129870994165631559647396252592790911508884048739147109747268860684220403572054223629296003806176045363874066356823764645410745665358196051498510958740013250101845654755958129633607550530781781074477057249014674661906208888983062823228339541923939251018985470121784132584922204726561063414129008068854168620927248220532512549962440382997771505956041753317689863785172411446518240234040367417736421769796472821283573597778136828245692556311790952293310362236357380896884178812907461471893930643866558677070797790943418365267090543470704245446716549236498684331614484599611075729586697679619862738959570966773152861476859393791383134733217894421395837346589835769491029937105802920561846023505820003703270919671769420597469323190767156205917306830897558407348397878507104938282917653091270614583346084526778768591145464475986616004407200076709774299492827058496120544561083625015462073430075937760326393987645418288295911054423880488255536401491558109322424890981262000035512595272001967646371193164071618615832976992711995626441389758493049607834754547035208214800357121925282178607110723727021994155737784722475622813592914096362015298343513229247085199167406876976617488950159202476995639350745820918498650590350172633777605821202412514418559448541018609181691402193063813649601261222919551017698191182028147857002678313355350187078638911034640030295254321814951770159920014408690534333382357718271707896285458637470842162879136961057126681319970975145220940030176381850554057425075753673003464889963074631739843133015223935806663415139305238215078721663917066700335519311667031746077362287082817312850104999253920695430473774147477138833698728792557145986587224801403556257954206954859337477317738466044071384348842430810821198946238715094305298752853399453272790368053319215422121219399501637174929717103258796936831233669766506023957352824341974714330709266909417731545089296310532309251222281431326331974680739876676039121807542228287613934469799404251435140114550329687079720423718928574237904685653440014087572560960832318015959313533240356924357540656556185186174423990319492117889668724190016232880367034323663121941270267250220747575237111440675600904387229212589275448395924727767720459961949556804945753770423820663109131471485074889654950168011409197231570907862252319673559021598589955604185934690710656208805148797736608675378078656036531585665600508471778516014598273765393933773718431263224590519170462505997452374778446413339251069210018729736804639180853554404425946805713051441277187848808675360869931161036138710612156813740362601009848941312924994317241366361542225264365280658068371924896539145712832594437565137385751052821196538164064052243236734505232518781342050073879674480574744828052146546230783727655330766626726093890162744509203576474536530288320648490162202636130226533305176817537142654491580894545032414682884550809801362898627747093773679409891746625947710662493892482252155530607975679368092265291891408916838856619733501924705929304151456121283848558732283236842672476427008819644342114460945469448312960732609000089478761266384209920651497049044169812562872559181077951326446223701594953980584202299162809097894343891403856722423091784558554615458739623085067669529897037512967344987076767048785178418408811989837195836270426177445767832973452679930819567160849195751475555229267137961096857839359569815314650542708769750658932593592167462167228045068885757631693983177582861261456004382511284618049381305806317872923409733742764516487279739216053806886571218903428894390243349127337324685143580247069666580609419758019399824404312372206921851333107378299907626442840215328454548463566908325848617685021096613038992706237049846098601416080090055562756757163191674396824286238803662107145987405229153058633952476927359800997371007209248921335232368661018486936811484326647719436752573630319025938563877065481538351759694568758950680662994938458585656317910135748521085414035138382467115964728045886287617931285269536531165825899116011520355953073285132392808165032846468966150598433446326128829110575259257054090317925355986469622714023798221935016066222098353604933831005132172489217232236773346417755074388052028902305690323786014469209850833933426798360976782513015907920669635167157833881429190001732573406452911994804729298937360075734657937244137668571472173370570180023386924420735674549901305988243055424049148790758233356046427029738963458089900213912009638384087837483161012036788367609077157081426804312753596202847334093377777431918238483150465489461463600721222131100168163445233457788191270566689790646251875796662520534149433518110114800722808135996418553446991274258234960455097161413953788489056824169463937561162903756357342765160251371258497292089101146018838343763127037042850674304472345447580988965454089740001349743487931945944049310736473726378176004486567315855003459100011743390096383223379410768276739318282987229952098595873265197890192549585051081147853245299511472187022643096172302164643342998521517034086594379295747177856565920378813674246653757138292830018134316000718800888742372965463408586344189914503643299400903464369361243053595642221239493173170905498693764059079934865137863821862831676263996239213978064894585334825327674730986703927408318244020790691744726295330888957653625992401628141677657793178478418619247218310158984672214313302607896860650176339619029039183112350735251979777421510369295418148288328981732098721954069851193551764878257076203546702247853980179723513148530340014048528778568189889569187813223091411511554193590470105962626653756414532808392040593889171958527899829491432555967814778692600053640513280913953811090576562327193669325278249313566417869266410016337939305349105706587039792831619332983435926463929026786840265287112001264916015708122511438291582035645748595373728787604669753558949519835714660301797173815377446527850982123713183218201677981973468325586647060458568760914176156878577331304322457728563949187308328695593122674161672318911762633708939790159971454196829619022327647951439508878539794366899893532133342289083505846524375237266280655768663346690949149152583929999261029744775317715890908807029428295118751595827698018053443113873004662979331571815934698002165306947398933377741798966192088250281271599401243513020594250227444437126617562989177323551462568497532509512589610132268199481336959554475476193018301660111780930676618016877694131901801465416693092448504446318147423320298288590547791506515357007021565257723362178559279999420327168921471957952878317699400492815385637230503736546003836547123197073686337774262474903848109513957478703811940148947634117279464101172110776292861927933100200666525823832959847922235420797315436541064814300174528566928145788946424708183164621782276579150370183265905177031087906128613481968928522490508406081859657817895134617609428175487525470012773254113806180329255082717730881460733354305054190324772836475503726491621743024100151104869715653547567284016928382605594286376523334503729349258999521572683131822502934363598302934237901639773540219854878195410853133975096512653072522450444824530106550476339159135415786116720616197687561273810382700645576932864038694968208201898031203169819298829309918005300506375528614151292585865564092104888124658212285261866421520981642400259771596510806055616495327451722488990211914880326677442234636227466841125449457601909142742339144138920578365679743953732878703234263810577494393468080287515668088890597551132215570464344424669458968252145227999520782723204872200129756753139873545006462333751414049154485627876285514326563199700969351974182541338745282807339549706348390469258160613462516466740855236884853886978186089157593294950614548665338090381540222504112987714695377657999848734587554497352784665896081729708381005302690363945103169303377614819992732571233889059474180326438554306245194821110088617267646444228020396554010247063845514579764790454245795273718038512986905119008678229037164852612832301495966943686645789515964643848144397609647501551118686842845157026255918197576293175580979613750869946954648493790783998751261341065439315682478614591855270843249470698307819091845588195238083394058328008609104648945418840139376381019217332984818794593169714601444718896013030313175598335797783631442425977614783561595180478200369265880970554135524152885612905590731483228858595393554524034810531453556323008845095601148437237360445002716065553079764871567077138646998364565955003164864877410403177645778248382299913960964320104348150318862713372756991232503468126915630692209975573078502838644605579626176150817232656490188330340453754340379355136227196241988504081409905086674175226311988910768065710061486663332968004588107000698024495882105757898996817269672305207363359241200845897120838393429013722999748093273907935809423105198831467043400067108068719823694966267323228270824880437274533210551352602171303842423518996649501982938924629004414697480667086958082395915705240114598285810495504784149302839952050957439470824747239860816721021943064642835295611491384532733955988164990452870017836124455704970498897040664156853130256383340899464108490417446393327164889193958676466698570379085002947293368428965345084865798032985799991114908178483772322810605728252273853939696330918017776034255338632536275257850223169357378275663118223666716479685562616299186369541153379354306291911246748638124935204254306323436575914555956088229096489712466962148255612010364983541897875623465862662683367404730182381569779877151171076752101855685223272104979332807759272525984474194769093044601503380411591570436109436578809823063495469117607197689361270604076672601478469136503463421524112888043563822100479391419699774479801601394089820152950277207050705506076296450621501693741519958717527277096125842390557926729357118170290492451753698582566859393729869550555736844987427458480917166452707860281952412263477499396408475002110441520909722542333799580449645867711762582745140574230981617142590192722570927109587309859316075117807822552433622844356477260495924585083905377151050503883526896089268831862428903682234023434807594289266124282013319267053189544748608433214943789734142026412079090281335982012977259940695424240648767219646506081849148058419499257610084690711457061119491836572465812321156337497077740097895298723215219651816741095992954508012350232486975779643241992035836475770631083793993644693281823721187983792952168768357702373964758591532690116911200540193875140691058970010499975448152654334100283526814958145766659277960686825072710564040553765101792405397878591761604834821570421293458393200343383853803935412826092089826831224899160201252515631728064217242243442519745631984957207231841587525592145122107848755006349850596721650483358393918999081971646455484039447236652583480970368994211813746795537940063243275524095185765982814051872973544999165329031197416058419890961549810945319938690930394070267848940957656208914680905442742366275880138613055607224040007334266885210179947743273112756710721920300515323021647379734261938626872626700793975094250964859190885571524566976691266008180989535106982703996291169836681879100094897957566083387409215832144805145266516007987133886563720936730816499705703306847873671811889115006351975976346592623844154502518115194759429639500857625249045781865531944890325431767396003927369726692182717937622992358402254482985316474568313471685995167318337717733307866752223270842929163178793233930506789808902316657877288918567716298931748890018101484618049700480600354201021341568639575083291425301545224337651076622558911815023933937842112073205910075310542217124463472373154809739554260117616876439699081922562897613404064259041940783604758647496120223337329737896695963306961680830369659056109110551345855056937598945275131784801941779025180320961777129316053335730014899135488206608037936800152409908633654640905908476897579968208738537735704105838813359915051455212547329288881461712036448638333256831833595390217261586146814427292512826884649884048357693765481327315117219525421415336147965620200411139466557103885513419609911152342961493551567843445098777113708140063937899808102029810552021551708500024340620416955509110230185334163618083414703279610783136546169275977163495021046789995382849931479578140777202263165090215864212732903551148523036186053303760912304584117893645761802007726194849537936738922600060439830259698298532491936304332761539741530762933199064505745243551564282720306489741108008187363834082807770138200300149582703753426758608696377090873911273117312345907127862427654672613556612351077719507339060976399910209357351665778726971270677770099130290241392416420227915539115894772319355183542008578725441504208577140376458257289552814523696731428306737071259631453318288886987964580858605633594753609091192641850403659985716590024225031015509454724814070264688401116793347102228874852435360829017383937148188180993400133089130907625746295377462431363354375992200104705828375856210593001711180389159405691902724068946073463851946434021539448627340245729552136039082809368614716751353743655184827679684079601535388259664070729386776107757891122875511319086924858876995263461541319967684364885300491592202459285257077683595400919432022404438217618147441729682134754247389289637900420962666680025679757787200679068146887890910517487370356775875777386979037553116975550200961224711438017675471138814225718684012851897738336548147448074279455913449555761765964729352478666312896453697655065903456370330564581963868782933816231203026394149507255315983199129198865070736811656183413658017921539508060110783207792621378155133583679965765664240298766055563520986199216518096272953745665073677338361522934081314720776586529871664428553841135000449320701974972766790809630202543528109553572018038048806360531840175939390588846999007579833782213496649293135548425771367541745193591624903414482921124344822528451565095850692892420121042424271229717026372617959870973400523703955538310711604148906387622624099127935445754629094235127990495369046494174621587372625989547545204491051619142839554714763430126650414994224438605746455179877592003411535046062533425962499157799732269895445785727585329373174841304342719086102785465787278750390459628670036145623785123289300353188475869273259147140150462406151763029944586053160835635684461614886254501635183833568960007109966199279483179173489390093510076069579901446205343875982357244270072460053638459331779324699074428881912388829166577029775936809546684059809099341917476707132755992448359459859521342239609905891463178419833378052654873621102697271207399048389859931223054630291638350375059323773874115021664811382432540970431396781235108279372962053991092307963536339367423931249804281349530021764975070564621765320583807394864891884541115470581000508076299600728352012629350224309194174688739152046851135572252141806495666781365854749306801891023637932059342326605284505446733530701983591963009640866773946260993891332012066727135720887172139448422639858929008545285769459607814281948657723921589537542898343508654095811387619664393935773739681339272767536474125385220976140710852420343732507769630058604139664420105974185109723308357755531800399505596345940769724767245767783592564410271905135630805324426364470859988301170752785512614565859664672773651421575655410669140994418939787625651017979402110538024279314188196166405526152682509880321592045165208756191528130921873766938360371850538240508755879524330010029261082360799528727122331861290848264534920722847329560200101510648065503465484023782343027517015955155560782623988839560436186178160224054569415958389212972188522718303191943416635475923909080962703770059419284229473911523809749985869408107316793538836203284821035809042642718568100789507842076156162944787229819969670984145943596416067684974671247301657370139600550626704618032862003397041061679280866124281410165923935826630155903529954823757039168139935629411754285831821140606412667875304917156276376714527748525287073086436933074123331024656571570209704895998452612205794509226019232479503907254918499406278926610573299006601121671902150500401393521278867937059904768073418761526604683206539494908005427325661796116437498662978741990786835856934903120209234189016851714894228815192631346195741572569923278509226176890805882378657569044793917706430378597369650510638426151664670841937551690569312128818924600496752641936279218595258478224721978448723684422461634743093460376739447020144867832096760877522756398544471982708005840962326249714634675713045880328358854232655999013403242355148106001442651205102417958325783574591892417221885743567803214630656371649526917346323817664699030501161809046375150939498691858682959960392987669035022528155213170572917901135175484033997312254971975631208845905645256009942101442960215727829557798515334694220779370469027846072970362914140687505425722400434450604440024768627417175295661147135565547014027793062769156595989744641598174511254235520890514647804764490831213485007075638100695477552788195441654613701888851833071543482601302866828266114230599148821002400987603995618724423330085065328454228600532901163449904720135775350450503828918189059316167980118458816011242569749364506411621887739392507079562106040982361281527915777050436587391428256447073406470242617096790327387005340688887083531719108699427207600039864148048905793388228872529712196686721258695760418613700568645454204216653265121257328496381017276583103187999710121176389785760961512887865834554141347282001746601368386029574508855142917025573347474319426297930868753660516539427787498331857335655004991645883510433679811525003651580717752003745308400003155326084665223812995827030982524130653840472117425731258670950967497204441788624363908793532453233471950997585945687971832439004443192828295801385082522917352251672394194025710202949127300288400905887640267726971573160847014982693770662679643257194280718985470863726902313530264556911589244014102658423752873715441761393433845693300949963487098558982991015060340490190277279390964052996277327116728462143981254020370316957309198059499247296740720259680121880146178625273562902502205900846035815380882229106112506155447051481899698294556444441462472217279869713840001703936245501907720339142380239849760926129815027077588131183905875361318823972121086468114289440705981145435818944452350335965292982460210649065622299367436483079791390732862130090664706056791140632819342977737966214170532516216792425439051634788657387614323793129399334409919354589713351923929159952387131393028482733071385925480029968200977995662097182107050077929413456622999193120850075092829042134031174801494411020715838713643582659141140577988147810826559370831450872614033793395998695901603739925986887457765622669204795538112563555879887388908279669489523946107585522444073922603799821491310408927835417215381376178507346911008320998065474787418401203135674252098621872472103213674799603607494953575158299833175605030648861651595064676842490544271617253188435755628113638149818222305851177684587345440608133570835250380320095385355118767450957915724080345953715269801760108798134454398746938376862567292385267352146277269909247814362888624850228244217379648551201133136149044562400595099728493638966596410662291433564731432481458241213127018017524537509080085843052085722572300658189545877801642338304978146113526013059672430552498298130548448403496580041316807712909639928249768126381128561222613417721588103546237027687075257626165427203087275584849584068408265489337280361528269292701687314305022353612392429215750325777426405425983539405599855173684582598531404752798479358243519294827532343261385540797061646033403316564826825739503512400537189647162351003290216021262348372608234686972020131783928951759791239635213574805641644680442311920738615838577474983374895678359789986562748930534609063407114826508339647443741279165918696488098940881345518662763280484055910419293871479351985981813794983393252314281614556581931778382631785127110740119091357121013779491303745230409223565773701779575236841292683333870935696134491112356216551098178320582789403816068459111842580681771003596825475778719539195253110307784231424449948898032741720635903841307218619913738261180633125219131393090234950541800551961131481873141712448221652625186025410728670419753569900428222493226716255140651400019587561393600272871067859012836295117242897716312938204978721981928439208714318081047532293144544209379035442961589679940894136712063203350208976351290241644648394717173104746279045417299372588618520942987631484992399279362268106818815823266497328084547510290066597270956172429880879645734051688094064852475408542252987661413087944027219135091951350436744094093029819669188104305312012219937509102803420018057230854137476257718307221188257177573096624498671869302633366989353837112506576049522358965140174252236843655162002832705153810818215982322974991323829584686291145368834991269058227469857922917432059444390913659969743221226049255859035076261524217197822942664696019056517140413844542032633401283841394957183589939176628967817359679702103537664850529027208164340017267294649698960304768129019738146890603061058622809786352181457938372199181616184876779928422452251658431540940488704400804175811173551418553509978982298533729073906978989587260781895521747711041070063924883688642557998727800770936376768261614903202497907110288459282566751140106672101676955139601075402696858920534060986336524511525546434351931331424612943854923113986225179701392400414630536401825743984204063172812148956820377756860969950188930171689974191563604183950314350182931578769966862184064611472425906587765210917887199214031770431553510001039377186463425022099365321774743387424614793304857358271900143129271716913011188286726960887577710583588632612981265151643939054360257912839157920839621432882643440553701973740296950186582363295695355287208948326726674387854103473701589243574762417176501712987258194541062986762796039387106248124574876138617639310500889956068308538141091356284472274639723233284725656138449832676727620681706817889404452576800298461416923140468974569643939684013320043707063678373391936293617629012807969023679801117930161983368105309123718659120590105648135352973569278192452792305068448404148156990421311001204656445035838860344930406301954359909601308187642919384188573182435294135594969460942978039645156321271069058100979822918188985803362352881800005848084463247250530827456059318695869091814036101939180457331627703822289116247774953224593936652508503816560439186166634732353168629629424874782831825470683118878903044625474378135105368652713321296716280470667160750164884026766799262838014352275763773973772226313809404713688133565601813174042567149849481236015848552794443017861728661886547589383356851494698114200496447557357938988993308640545433938047462235425730895801783530984109774399135269106624713150815979616457954093874871856597749657147802590135175864242101853605735036010105066042743804013086153753744221712790447219005794017437021030115561235669168355823888398913392608183327122095957138660649798555004352878141989671367709247448011210856572705804006880225024868434055761464625771677473500487729239104961392923754449163229965111074093853271607370136749471050053136265209077426348845559970488693092300199834386286638672322401475513688273512235221443883738170823143606742962604741918163514490629089059970955091128922846067038405902583377084593150745945530285980981238080177528897487471479295772043094003916189552383598400506591883848944769461079207525591410511803505289719278319757510505528349443145826301793799648914056487933165182155526707001306186800839258910407146361567694132100865997038778509769175255482640712792911289224809608777780759916016281129622846309027139979296069531611331962158521913104498086115224145233156178559805006486379029960703755085699909642758448858918308939732038306783064164863217439505056403096396360234108831140514891634643616185885131828948385208912540711461939521166389500199708511966582097380470066554585613620560179979904163865405416689870458178864628008047892188485908620189135564581558431449850258831900607093811314684463078613229182362576536857343116935381782751716805725360257768788882387222491165037270898405061334164964544452040231273978351140198966734663343884903238326967750837772653880056235469834603863517431024293634294637584696555274603932466651326995102445146136099800561695927487261428061022605245278879998035849694501425398642548207054102826206733515046106516850887069628946188078633603267191246597747833940254269768702873079663465100492908262494729970187948872543667033793613049502686694694908011209950083732726848794150389172512875742123667110845677495341875754224020831584116393121839284038001549286040337024191318793447759921377947573556767959902266852639261921362459661686686291396260213750149857813219149141751427916559080721011665815286750155326464665553433493266337320217481177518513491456297860719088465629016702263407611592444240852239377181259110073512216121098192172014705816465130144113299889900180469681786091080849601427887861469590321503099877435379706166673114371962801214051855872098442081157582750434689311669721925633778320655027229166781704883424840911872290769790545415339736323012209579594295038176406206000564671386927751762812684409759035487483879978589461264265546499104228566754440899395391837297194149863510817888477851591244234376563738669517145011596391595328935223907286754392784471994172956837269860315003649134743583156713371776299722812731491681753149990715161027059340275188360747192297911663189407738732564216680344849131154548385592967538525390559162259911222449011114216362626560081242254638962882175426604061847290059228663572714343201182870468680499138561042740638034754693616636827755565464336412925273376752383014822101459301225073713983060521177982485081646397400934503264648124498370500673467181918915368156532848325734964934940316063724571522105539623415232348503135517440588061342936049338969464272907332827699370676441476944184006686969554052997057330499158177106558243342373448126487700941063413483088987715628086383444540284777271936849667570960637699045165645929437932836049976616991421487767437006587137818411994170993410063313346329834423658757833147645380930014745871125427033096213035119716841844958152081336057763491605617324261833143220477150943689869022647717999675143523288819828433630508052971784459780057555686022037842111425511653995218226177354001478231831748761788569613324084647140962463509098279545107981685035512998835087037233498673144150542641764615303610916697125475053194485058223483496451899362259450962568042773829893844980634540472205478299742951771878526016482087745004884215081000023325332336277645970825450254781261618228920829353319990044372579917629467901949325722216131146744098251481298521892406200310339952925037451993467653811323674272511666950754100820480654245799744855791627900647638216369292756209105008500175401866371679666402477751781226588760406079752268788231747963097207665892602098578253179182578525243620763447714417735441051183304974921580242503776485865018421208786762026083013211130548731363619083792539414050170748400136169950331951154845159220167285616856406134264707776092308797730207200342236403196585756191975161397329186487062849868888244567483157913098622269077778126807743065365101762643907639669432704249752553462271344669521555282576101308834506221762919906963859671409811915724601771633397769788626217963217324832626976044405791411906905397323405839928905642430910402555664286014068994776140554826541244690197954848889924028873564954886811418757843716644667216489122147141083335369236239131354642449222690194454367191979490040960797986132361955732095356903859128164245139765782325341987368212677447291054448355181588552707726213507421743362289360350210436568793322475840958551431553529281033491091452093030050831098618335722171796500995120742721523369323716664220952873988074344204879602137592387859418002810718278391155999034649262658255809639935729080358236481860158994335937578350087374964894905734862200266132727471352210116433860648248806109101061483125782350104065671262131228061856333802717192233314693594875239288234176942831968211006887474487387728910456585095078485657876273204366373473976239493064913110189754862715344714600034860911108184134636358440641592852265240854407262532813603856251169241815211868297914683512626442806168297261336000105277142900198219086648639581347464771523444302196379067739972683562368529476411793988535600983557496394944925191163381303214376680127152806477529141544300645924114754389954368741127472472138797004879274304650657139883258554306030938431458138107946424571686655371646685980731813636301253290602918199841959458439128854946240386126768783863852786633953414518541017867464665838956031222331162461000304625512352820579861044418113038332711018456861238896674846456435539010541956126082523491882983717786749553326462260349810728870966294322955199103699114025327006693732902555764778558194798246188605397103715606665513952078073062987211289328763867972853586222849073915416037798190003304667120995672549873647552632050129866847726776297370619988611154522241605163088074218931937378377817302103092389530549855257467843922153712574107906500061621408736532591352468756821417107182708971608272377607645170875646968124345801258532550776239717098847287241341510236288770352387000987066574745306911829558403891833520483634295127790166730738098815793389635824033577286321702545500354572786225507766448682035243418790414576178277322691845233713130834348153708991708248386036161614480164071643209832261784571403611711401500243870858001277320970148504157035250798760149003806734908055833349198557986242537119103958880692677607551764859902299330376681528888210112313636959398953412580227238565268273418917778936162858213697735313703343334611248247291009579604213697613165631779891321409729852209179539041798216699904638280037098198144376434952004750274574919242910950406214141957816215179866853986354909578811801694361160035096463145598804702169253369814033962836355726930020323995259278902538814304430492935525548302588035476706980124400895263048813455194878014552916857856098886127794524011555218720702477048685968481809791924334028181719863143860253066609493709931333284921802943361801169233547679845971608503084921766734047159154926502090036480479552601398004540667497072769066665170223714973787086352020815119082076601219584853621619543711819073825039371590838116155536002883157305613247476327368884072583462006685436317604183953823933646621724894420581776000228558874569618746868651065904102574803616334639084586344495792290171284248142963855421393465652777513158844599334155061194943908173454378065467127840130015896974553953999684188397250755487654331316743472633293929465375015107498425288970018332019428148338842732003396099121700714133918406477720796537825087568925405080255811764054563206005702076181250976673124593968854672338644364292930189948192237874700705334626665828333095539267506303189954305151260518167677694692038628394451254010953594856700784318288866371159757313722812008505664836794206506437335771151906279287715626011739694318573482525672871241211740593978296913895125098418690054919878452494190493624613056888401641590965072176908875632614606084988039992738676793026024633788721319702441211489837677091512976261322031921320627108152843511272862191633145977884698018313178383436675221187784924533796718301323643437365853719578741444131616828851016380186758865318699208926021351384439206834202028938852379928385683370978702056211344817973988064474926552945955699419379118168591643690307227823141187864599614965600899857706285596033218115145956172403125061597734779162202644710043750500784531727670426708562874948670557437211782508519608322206856960546161841223693662974822370202866604853806384827731686346344450429589711980793868481987915272842553790912712183394456309695819049475537741597382535242752819534041665400275241032422907014212617869742438258233141729747425704869282142433117059217487588029077086877275604578896160756657633579195990169773680548828360226073179449810480617567604501237010790932741878458254999064537565387186756879870027537002565747305448787884369953688535521942294417040693849119451645507168554304955460209232948195478635496098381535815985242095770872481784811772060951626703376212199451308454376167334297286382509598160737321385335955173161447062821836466826150748137361576118319339686807831351060150997250947071672857898981818649402007380077874583992403644291442617828661326763417925707877106025445120977879411707484025620155866719788142549195023717631127762871883519451027285327480704760416892219822242253310249740695193103989479411323406355616727897108416914877572495737618838982330012423573193006660252451178339989847244396391404003680096450789485027955846595457557416470342900311199555988558463881614668060352700247199954230731960499182956181164489841905494051324002244658743602039878568137773074325186476565545495711757145658303812209331927272833940957654069188805468212539953939739215300175701980468173714085641070413988580579139335457752657671946172843799663011022007956811853039463341417804113467849183081228351991402078983075592820557150553643183451046916864007194108237282344450893535813054370760492557730403560633255349024857870247982392470803164170204934055342807125319187092204413785223401530272164383129503235674812575382083592926539461424028302551653149324036122656862040257214930762060259905948251519799391406573941054506821171445484179661905720449940917828522802889144135640034672360223574605433515451430383388771373342565991114966821460963652803873580679443420678503553123826888126237244470258609984088502666491903271643709186886219212558847519819759421321211484861345725252325377548249706788665919031666713652688298114742794295197358379434888488365411901894960584687212702499292443766423178613349469795326853009750883863796531169439852096390941961336664593407490709749594103085833487621905981124371947708948457719818461994175448714250984969426257730981448818683097676147546346870592174021413941563088837226315412548265602843874382299069361707390847907291702979722233987086463525624489933362164910018346673254257388658004365633821090536974917488218240127902717004768039451837567965806303830084117639840644453338254914561566366891072354281864188479262937513134813319957404978603288005065614918313692351314533145583036477696522624274280573605131918581422679225835796174637471463153399113681526596516316994182987558509068445642585138348770909664615289686713106351233160492088060362816210076966275320579184079641587902025920576496853859949002500433013032955554540294292084140292681262304035709487453020024607949580275119231829769750954487639317149552382495846760305853204861692183409858327124085100776379916472228652159872980930354573074331587013546266240035104641157563342015532749407571527050184640149980583738405742965037230530385621836999320286135121075703454691572920867341109911315493890820597684185890343730043819524228695631488009213653376787494395054871435151344581811850140287608376854157578703124735528088311009697185455261076840149147047935953003543427674134481308711510680642538253563840382971649290345575566530564505122388768165265507584511871851525628455927147405923756213766049252961076614217260032438375888298638474859746506751227542634888174285928615505035318912837609479614118579375086736107211104295614102501591059346284908188593231159676241286998572875357239392448704869443192298446839635987444674524830770198103311382782771891162156280568569619338508312486387711938795366062843107654851703575751906924544634976383645988265303267460647135127279985428673509046265104723157652667086274344571556866322986354951763484904983292125729824846975630939105266921246650268526088848695996970257458739326680181404965507321987699867390923294727561691183086606839979024791920047601808068471345802736463859636850319496152523949738266033547000973436701232109634406070130954171307721805378971995709488868806782698248820974592551288080989304435875731822839375488741028755550995079329935193683777782256187995480804620982311369954650655104440058045550537302045251030378431266649354690376225690999657490567434238098097033595971118948811798811018444243640917206555753269304078376075765231581396933985741916408317593508483253787892968859128303937906420649340891560497643153041959775669576111187464361999451569801800541737776069299173270854760899212598369748091928852266625763511338036935185689805845717974703562241656552644103218589952225078058688644030771605532618641955385738981297751036486878919714174468621897715891045441468575210926317525953507654389753770887114156564530128593166537840202900551983976050118615321703640463478290810529910687345969686631366715073117294773238658983836874500606774337504446740853535179557135054762007717340611219993999382962778978038762088142514868290212794509104738049465698048299722783811965152943274045170252485966842825683905082204527701809446335117288498486480022739483691737823361718634181086656631425466969863511931586470933011217618830303225956245822203508321722770969040576943760011366452716438769705480330162014041913570293423473139275737240583613410786693340567756531385383484995588276830233791529833879908714716605703050483716944696476398945381688693911756646169026051757758721045710268737503886418556074840657021227097026683773523193706851309934317680807448764935733891226433733560301393335492079998454538145279974196118922918120213164849434398019261908954739212338922335886703518287919691382497213470022504219695397075801519804766643616425031436673921347865475610440749038352456484624871470033167518234983033996900772243150575622039684902053116846600062934785630440511463310383293129059945924583203554493348055932976109009375517609848910190670567350159933964911326598255210235465503513199444625722409233274161795888054409910400607686438754794229496929211446259014609673915081098143777917819253542122258714319535985249274982898385298222239472478702443265860785792605806542266108690178543351072678884616659656205190280632374022610472869701532128793086699662898755873514485848372527312886174275817974833439621535147376443492765256988302665285502010404869423949339784836741379140931064721698567117499541021635867135728677027481090843776827223599398884945218861077329682562794534957424981136350319076149018976529659903156801682765041895736291895698106624086823234143283029854832598140756797653887145223133681389434668651251299463230924506922216411856246152460438904071246364041721248936853100722093173541241309791106776304829685528693268711282398321300655558301364224635929917445838168318625974134776478859274931785510491673497817670568146307281109773344948015782895614649375058666451671061594434904039334288619891710877533914169806917835168295066959586432957213847182398245114443380777228421101139484053665650172202336444758074638643622603411686865479006010645350962926280045124128169966535907030936952335538229314297284557682562102208897005589808162766839233240961408367420640146038300417833687868342871968141640345478529414858420386193764577518943288380367327114460947626294688484559682336446134275290109662654576953775923411863520630972640322956663942351726478991367303333460808616412099239780476572499676748005695064325720507713868075860482494270366339863589616871539683527503205061990373932284480393875139214209584580212198525802822722905902149715643459473814559840891106528301608173727238607251685474950396850525603680402343064537132771980135736066244749573632049467286780198451901560690058392602693694319112754921403197944118019606067597596197249594105650749138246275584925511227171237862122784031752320554623773148436704337124941216280785267758760666573372875375645713402446602878183789472349011380963445876284690672679336504822518031115301711895069598312118081307632390067698196563439704485878116750708127740419590628620487612003806307572864054829581186855920065260910448390421987655183883110869239103650851470202557539207808102258295565348348769399383042780402886072576241748993143656952498947595815648643557935965339043968356560341441848472968458566780240006189750127643484700343726888453579257514462892040408728774411648442174058669190580969300069300319546240687141798304894482143464221971447673018326833914008111996012218835931189335146684900164287502774487433674273164462545667029161408741995610866825138987855362333472312662887965883429182766990688758591335070654634521566615882212300382462897726617105779348125874929239946287311073608661818109531197922744489333492917930941188713156465396496839755356790130197321939495016947395108231254330930585104426569227539228292646397013026419983656024544283239653804899681059023182185543853612980894565322213951126235317678558003876106449400503973405591885835275416510824183300084327120881165433103216137748504171284631131025671808199510627631099586638676932946180983295320328733962423766902603526995278666459667131032645105055034529753578437366191779020980130038335168570349853922526900859636339429960516177756353712013889181688090534585686441627358002816739559432161800031721683200946300438322070071033554456571457455343875613806601235046224703847331806845635065995279743094660622217192930121681890919226767560833204141983557148458077081025026382240426741648038072659804076307648794045551692926473407641278330254818809650929733188381994275567584015897021683043807832766014384531484164142080064029272521871699047903305043799562094538750761977855616579321749399090221432906009936512974209803501731219625220064311028351504375552735989039333605164785596734094519262165030329298443243278182556236722929575798947791461475595865170995616632086024988121352192869630350761606471113559821448590578796217811563310850377709451431404040956620457692480043270981501051728309949251442070074806841315900486537374973784302705053504391435148842708062053969630665479691674018120088642061348576148285333776153702808117957229382973892758820807757427784656776912547297604486922571611151603199595238180181750540740882806387045980794150056950725339729798395140100825034681623630423869385241339730083735418378090303383704628857951965789427043207862595180363882564599383572429384219945913454061748214712828037249252694073503678874323278496188002729234352660844742353301967930622039575665940309887546559860583073657694016848009835931583161814923132888126766698339704847177262735671026289184429800627350896297668954226115530543078551259815865899550223879603968080067708896459810093486884833696911517634876191178583001236539345043623959562164966490132897581027531133866526413825001571405770365335216324234326772914332885024512667249478152550974453226208997545152634029829183942632393254963324487469090113157700466725849487959047836727787061413458765368622702745162184652636547061850659199594689646749161205123758070935399345880203864033541599047080824468985395951826390728283933806746475243624575198435873651748986841296983092982046155692733764247339674377215507744367282241429526005005891355291728462436991937770855368356434980833775654144979713020012887620913822707670173900245378577161029601945545526655869067120721367570536727056912140316693633990133753498703727980636739398549341505566466467526446495737071791692345801399842397292963547473339670336548225119098458802793408302316705131566846482794721970386121653120347006682025591363375161846738683804270000761772008582421417704729852773086664900232704551800078061009671175235399989502950708067766803654985225925968227650867522798169738682066075926530185171714782839795999756682692957627681216137213549029021300532088962440090734590731277744212849255889846504777328812430998646039369546411051488793226360765029522508814257256015975751950219946369298227718675481074386636930415571560655253891400556849208204685672094248019247688952105276126197102028621473675241575866967676103619137842153800412762718237933800666471163850575890922541965854157615998013071087297932120198823445009349907526058638295337733542653465560856760156981784945274350070853378329165022050158205101533249179577737772160449130500356413576186940609920979111446980349693549641402475659798349790691447752415857629217909155762387989855165815368677529032569643095520761851065914676456138702679810179423609522096554851223022337583383983238642619634655902456998444780454905878827259599452272597684355872371636000485059129374190829035128923826642006942460120174870690986942483792945142422710425428853185655688180965305375614967995935180367242036971235902796926112454344478542068465205196021580677244729501334462543597357625083249337472151563073346068494029975824583857384186440704456886823554213048390082724897791385038029690396368317198276527728661099794463524692746324660497696577471999896588591734936599019650610163964480904259252041931585315963839721308758006211503444206674379400234722071350914526150621001114849175901190034592796999783226262035128835803397312539904208895085334713267559548574991955489397718526527638649222291290118231869580921696060819053624019329179488551022682191707102114683611362889503503087355652075689739644098554719636645531439141819223774345438118850106317524438760228020030012556736879307631838947178411853296911187086876647220593910842393136805807767574464612629728580178820179059448194556027122682463858672134685202231825165863691684942120130385835244458122335703634082162612099909569290377340153708939854696376271435248018971475755442944942576450123880005181872068390862208354536023347787824120858645335385697110758234157417052921039240906892041541778983328701088534577840496247487226944260385117698153146812330543867726256985077441489518792985837424256558673054751438223621182095976900883610469378166389139028333923484788053767656089142283200822290131355884566000950057120861695428909156701875200049577411851585987968049483309829313605713193108501177826183020581937062606393229213714847502876492808094754024041058804995245477683908508980416378343250865033358046491871724063846855458532276408842889484499402386736389296366905433879746215470315687352073518452641947198425298610079816084581411771230010968769945492181826137853970289905590798651758700740769183191618786775109692353618600753610980982997719852791848400616848586184451758198432608680169709132756144738647908420170710235216071997565062302424507319590070297664148477392308539667272266258737254590629615887831455340306980298942760719130204663461162443311864221580143207229313778892174528813101613180976185587989238717924917844499358086320288031985111278997718338806445772175274601879818568334876401339377749836338182818360521927251344699117199987952683327029583412292023350572086404983148491309441046938608745232235988018984620129836440652603860440179321554486252393788710248945509019160275543012154798979818547654828610884069597716188373617331482641776261949926216813352091447639227106535622083632199675975018981924659478108320526478695526523183201606366863962995909769240584425876640376602649718509185653422058913774139899497257366869922133536910487442829168237622334374834229859664266610101963403415351766714809981275173350599633017836725418794152578587395879325526997704543162084773005923759969169073175989306993313141532995947830513410066858012756061072230888567195201383576885207577548054437988492263785562391096472259693584262430219751436233166875563932196901287492046674557756387609532175857142335493931310131094392989618777598138217477161080573962017429875538300639117493888547022348253893127565408361407206829808275031123158530423856001861183082126397667028806080553495582535743823769420779536776771294767959646072244196915277378863530345038461787887683133250160185637528779659507833420044098565705169132234918388292778603779601092773288123543969475847539649329537831932520011690514178640354664158405046713963705683651567088078192416272682676847600445245790224110272033819570905549235284684539606709060224486283778490376703309269999324917694041612835691328733274371850114827707239189924285308791798752054062367276642820155071617172119231823926982425647109246194194179613558080438543089252675062200665381408904175536952822514432293475136088091904777753683073799962669856451401131473362337290031301329976676397488141616019289174435963630495358489453860155110937860637347307510969177196831901810625195924443137128874959441387240722125955355584788685044252696836347391425095394852581450150535570403684251121817864657670906434130267294987386808197985860373578471700168407957540788154815316197013573928833514520519671247332755970100105140868783351974690476730245562431644327977911200459291445107763503199167194209859212777426293138321420882555269305558456219331814303265906896773894570164681075047402304981882146689882256696954454198259898255135764229700954646651025604501326007285747019060826299047986116173740181329328583100129692325416215645936022173533201396773138191410937673808969694837569461694134989972681493317579677106106175279886810780872946704683313710812955911089780219607423726159000421514343841112880689740830479494072144252359662676863690225777044291260411567515535867878090060827129311084969372370123368052381554474218681236907068717586323196838738365128543058852920644644405290791502631288171739562378385624885650622555530980525565703976480291518399157625664879049908843056933059728892079867678194922489318246125597189728807916625081228343480116832965353375156176135079397238588803364738556128814655156931047215505804027264676049776869881360434603213318095550792397864048807870651719147789600511848428224686001928347195767054757825214616820308062540046005651373579577667102682838331154640907107075792311440963823776288309278276265561508542048910437539939214208439696448795797265937676569175940733334818631423195336037277412709119964752998414551606886381414337695490097531907712603106162513669864123342948519525046587390746200571469717645535254045619994729541045094165693429324975520972131249982248480275567155286281601633606146721772422524112459182103514139965648702686016958573503427142149412143325835874792583584059394110783187176362772611415758618618506262143510891950926045858620528574511334594564474076769188380696391584310220439640021675840556287271983215148147563096219014301083196273281822990359194813792599861117545492024983951743245018720400507661503007752540164338553049246669490969627702421357536177741923885497896857425052290927095455451971812779577877003994059312183872814165711114123409124622510224297574430191220903886395764246520292598451227614174422929270033843202419472756551324035058524333232584442971057710004822733855307974932266870535191782738066472232461598428303053629475043504542320100819350077691170338285976721104046492515660120749262026213172518405816879052990475996471056558132977241041252708654156755796910774502695072917944165912667554330970990461631853621432886027885533377760645638508253725099341506945522838886041872974834847052682464862754354008324364722230773919620766526637504639149062121522409542423719217012994787174769742098565394322445040781693774161456789824661405793657827694733716822162975691486059444867610312886633767368101394099384833842206251869668070784451635599778122257041147281878477471903176394267091344142283822133703780837431454296511635180974066347191484528331778115620639198570660571527428047903057642405950433011795995450119630687105708174655333631876291111249013005602809351347103669417393851083589723155374193024463308816118800600152453349753519547450661203297427828267125728013829631837271773807942117529552689479338626877983530370335316104425960214816302587211316528850291997290434414765382393761186868245659040298074597631828898870216228546939363653164450489445716099002635300675064514877777053836322344876545657171335187346646300509741964410846058653939972860475750879895891734880924917779676189812843738188067517977940754211405109722284085829207766596313380168426420882966387929705359366232489682562454852590640638607722935590485114180327232476162191351600330835899456653338231577563546498197150780879051892576189370695733306172453310692556390537513340577123026658611495344287323093653446609272452276562859261700814424520448557861849941600742560014896395771714416719459696094853453418276762122233338045728792379535389715991111396468688996272288039735517621804885646355622687170223761495127477709709772426700935086426676834723369636788625017055136071387677821001815925342103576897883554317534552800416682636221426695423834456016266799784610257133730360734803170217928404240641351626378395357423659221497830809064190279759589586792014301963501832988094791978061531235775993838898895878186589754569754510369769087955303202205613018923290937735612395363199449059329101254821811799448848789739591387035778738149358713813202436456932971632738214813383686926314063356722337434965147847625995682825187763535404557242082931188409942544008902467486302642147075826424554983699838912971088807904216582727406188101254528443357908154307796180402720836659641724632501678532072617782631821915187316716613337879935763890341146571210769010220836444805840034617995944721401866049417095177877794411813123642373925228724819410882425670427584653635478986945192125640187148812780576783255845362684693275436868372383688440920133488289436651050191986711203225922236832969856261913185525779162786656526503446987982703889653903006715138090136497941006644738036386347517877312971886826264166439571189883558776683154454200344624203212507137989213430026714326823227333962161790470239389293553479455615518697940011600260988171079081234257023244923183405656018630900896463505576089401185144877917197213821420466202781609857225601304841420037344043048404193762125318322792560771246485417388291232704646460555663673909754240035904795264123768971086472070264649772851188518605357326899638424101374861696546122635340817836108916049427257266494061383024693368080182226459630259393341166830447495958457101384914046871343169122336972205150547603205354919661724595298695351983928810741840171457413534716070563949671232479666779781616477395148438699679353799523876601059364753079395879026665246405296368242554988102118609803949090259423341281670507461185187903087725642498185894072109912318555275151090752644898674942892428092524516649045459850221632650886389631848699512987062077807776526771798330260367920091224618981215205212088196837757947414250545447927815948145442151460780930404828980033071389097494671649097483254891226125183543492950645065223311600701364531684731666336231780399764583339643797662525492346115797694910603562001715302527869758506134921732259005132829397345745497918056880575730103654585151120527521635767218408203031370794204319400976578887337737123243132939875027209106011451357417675887960040174134844947030042058663947491169495509239598302296024698705723934727908327960812101443740479248969641873420407235338167604995579099937531893414464941584506004258649137473590178451105674396445023821886277318750371099870257888339789697271552817621202328077050613529917880242003556185318165507125923934292807191357466320702986469060553761630160041564528257557020548339874173307639061805122694489761267435247582647088592236362460129628903674089772066346909988707692728879349807172598866751592198037459800315421358848983115045511189847706438091112229023679817616541220587189577045277878387763349017710256181056219594883096556723453833802799375266876857011610818785385195266307639778215656221841053616812293429213783375140998519976407660275391263388243842661039631046773161615295072375198935645263637803575010783455524202192404954188070828486922224692245521410075123685386261004833829814194607800419054526590243311680056257395310926850772664273295021582626604588575396800252313015849133242647989784084525695127836645158538354372366875359986476760909664444228365989087548995081942554845894645549267659087486597250108393215602474526245998928343383165001007832429092922041006147721527835319299415988146491013124388853547632074336205987398228854804986299304322057383624361523817454620410597271877195202253832398820003685150405225818484885531082911296172479994012127098984485695753662743469824494644062877634054750436030572313743243041943564803366536931316453736219180544163342198987976362572267752142539291110628929566400010305572884887612279087025648680293054055914031178123426431670974860432355563096501852130163412218804528585021538205112182867808749926810140401804427087690498508186680661088143750122459498494782502673060006555380613081936498259280085363432018478285775350690965929506821827886847619239118527040817502210500935432919184409807816585571860941279952995616297781101131811232649673339060135962013651089372919669769009716368556900118482399427199586664591116237402449507861052275695568568346381187101769212619817680196303678216966748724750412818541221867183097531314958582276728362238444564740289529054130839813861441807069845213046518186939396563331498656175830144016749563293799940112790607267660307760689005713233185936112651957575530081247466852809114862878377017432009194064647985391323988406350117956821527934620609701834794914458044334839678179915892773389420090913733537134838366948264917156314762749193941498818980949904816556057864493708873835947164678988681772585747520208243834076578700751708920173594271458774606060798658557797182281694808146340947894532329381551419938516418060679472580264316389807511375745462844909128883102777077155777911368422644061044144707238426628877303143198959347947460494734804042415103496143743316323791949522858981590120694260807388040549299663149176889348222845072369206487935426774841731823676021443485383196420473361954655012098217314621100380457471742922697444238407058189436672031619891838789020147326122283668014057399380638402016420140725273770999931183539239304175241576411109387604911724570016737109901175269832709255723705504410463793486683269026401820525411725692943180083465412998483664028441315875369469813890344922698462507445831043909581763182492797008343576618638208368759564392071790110424121251769607077401300172799915406070729042474904157090254927828934636176308547052639026723209534182567503385305275919268475471745275442747117624219539862124916576447463651486898542403405007802398014531972255360869585347295439136935006689985896383529734261900349555648413133177351097926928566415537586585171577162644279952098915001554399509927394016096907890927031894311065869795857971242147331084295767484087822180763890472702295948857243546579786869810408509100810656498771559914064148262146631667528545980164242867328215786481357873421714484450293471917906816711188564984429253996144866263092618516398572594485976495454419681354374697854340078926873204083230873830219997286457738578678765557651217511285488790413301685791882118949164978681277555665862433855069620150738797449908910502947744518225864255829437835900682086515779651186124428622637963810498316969368612104675520881569400798571625923697171179531884746184601339809463254217028787991585576301316259022731066843837664066680551717387622888242314175169000090339261579184591206020381351473244216727391983504585081289522294955236567724158685866524287675868745635224341039625523922643951869046382261945478708511736888215493655236082798578239436952021680985146674325782665653132273337661297567981492701518429807158278349219738083156883423886208908190711988685976182748528350183706061999166080131638660867123220341270956455237859664087103739809326285162538974299466955389615148113109459191217277599998522407478183528976826730693595230622476132000937713495406907384376835674636339268612153527310721819966529314334524283600778167594328296209140820763775604437667568449714691581646631808663466032819638015091492183341841280430873904597533991900105417010293419820955328239946023627773115802443935428501977236378576516141495953915518012511643189333785481646617969600341239427658722770507610435540078451465138664684430442542698621936657300587682066782577571427560258623355687280916925741883447905101876257376384003573832483703396644966177646742150305799331696012100979963822554584045251450924224261405817030631739300519236530890073837357570195818721326215539275269022999933056369715411422732120918244917174109690103992792825750925278144440991096781379716756737358467026564908117060878042331348689531776523932560651553996838630944387399886882651680730719529260870612893988715051770890749100732511563609934898011890969840831956318227720742145987980871821530563763441840210767822202233131875417857834749506613395572878089797392167299084073188292842302036546998714790473565855544635837502373602721665397467498118776846010344919627036949582825551718320656560610486507722926991992836101091122480387156750715521925784914094151998447834792501969334057813180279512421743490362875637637466542941732314576744562580443293610837574749336607213970288610576914448765409968177949655995956462516827200376318369936642022244592071411531028972273812772592278403524006438971869952681220666991224749319243865083895325459925204897682923315593246670796775817149367474488911695451348680558234483609459282694760991531760370997625363484912717388642291779192487511863111248225627458634443825146843647533753606299984184747099242053110408980819498375981488096254687714157749933270056165315745269028850647484558820640066884522685539452148354337896418197074129971657569146397918560545773946814517725049191464269737456232355712295743935969806424658664786523166194943294376298609905059983312315829625102340083247400409466683263721005857154892053938312535530970891939931002363000032695018208467546905218205753633703568118935172502572920305005257223990068671239727277330256520319575858813100528544246744711042859453053655528486508322370669837985244719599276514148496449168766526620341180094933263349034603229351248695904265624572031458691424702415490334646630479603713802798091294005841875242068636674972426546160851194728871169119529116930334276587830872285120711448945892812986402848258359849212783610994491087514118104203481037651541815161479155704270275799874245191201800655001039047980049560490275031368992264612722554163566875686739586011546341501183579734173972941636607443734113784455210547137965833037716395434548255093678102674363069826277701168835091609780927756825721708399180518243556789970713472752215748087736601675883714696395622208818620787789347612033129878655601078741266416219926457498759384216027069753777275080926744773429571962969672412091664304865388115565114198762351232503908866882503793503958270912517937796195194424900305541337169132694188016942501413683709195880065598423218389834312359884407613219513075855327180729374363028567146424473413009076499802752741885489588759230703627837072057643845509603763899198463791164375433412904706954222370020621066599224895231771908518971702560634958283577012383499044759889837178314956299854796022431484865991238560254853534775100276070746645101608651948548260109174238790872369648475080590384663563641154854641824675711403390429700118004044811110911768109918992015517251616132689289294624006835466851776725638347967419565920662734367693624702712623769471846955981081419898307163991575161416624721543081681263678970667145873464118655705232737657491267326535218804674855520603978868641413419809884910517460783099121486583712136665878973850675005370017094064454203504601026299254653745686714506023978721275593406599713519655354430545328375293936588998582703678196930247971495529675091176449184984469179185838144173501977890580236494090484311846856960610840239834241111012972210683233062362836310440169106980057765370607592919877066440192820846754862341755986100352488603918819081996139044964447044214651880757617191889379295143454257583089548383163412678872623328225323653517884864954481131597430230922178072890305995599894335089437235537169336703155057732040903414399550232450434533605946203392209300058253503693725178869908961822968737874159311010408749210702142875266652984777991528696762057175718931869284603415453564457625798396369397586853214547566839727755352898808063593864836055968124634690622568538461462205444923384943513891373263160950221961266171777283163911267473508075247052045209940935217428359532681523284438600195468851190411348150074139953761575540728727302551194736108054815261052694691615303549121224143852086508192645518657407490894941508905400596670109856111338547115516076798539521329386997504050091822174328842111357438718149088252882654057676885090363040554959945036964029535315285067948491017149156517967381089108003016681096099050738614474493171881293065819470956430902434480187316065523375182861786400180561415371754331701495113173767621561521587248252745494491698509700029095870524644977567322436183343493644008107788959769329644068048362440247223772426421357500027904950557175822071952115894562793475747361821718736332566764212539707686039223032920427435879829506273645697091755832476125644826950322375244129736750812538301995228524385144741592047959536941016418628499510785417367624785307182755997011012720913389094984460726326453497479047968083170742189849193642035567286195469500561213054439155478637372767911128038976856880473984738955138421094389631048232494140071441921646940698572469756904242448233214468522559986449906159786889543117901025153486831595344461042095675652299348888896583072219003271722985447997726915096846916698394727167351637853400676393005325480162438690529143025058852207558634129202177503147793063374519920473388000249908056332409058596500442317521391532524121668241068803987417487112325728900217146166214669581957545178785718425046124889711003111085750427242872908214338013621782413000270863683054969467719938748604976959752017067156249026696681719962133348041352451107770847630759749517347477168771919348888425205581377748046544451014966044050837218903576340640651729889069172687783479633919474747679065339818144909936664158735715371860221620785095421418636700019952012831444318002750237777425877759009033881102331422202646552651752700677840753706606875645187538728611305939817493356960378931071124441802581351762669423264845035827556804655596020921474812477295898640316411412503085576346262536627451536407539770207359069157220942699159115449366027498508646559548268097902427597694033307240312055235874962680644179477085902042544341492246678709451531031760932907884429009658175048466085164073588101367368730872746083424342718666517681288407601213912073080284040846661064533910035907175001192834536412950903087116073345814393574084993915625362276931248376694290331465964913711479435101207314698721799297986924224545837878858645119632398993880500168946803148842977564921274628979239452595917098276673815640327395355176269299374110246520208070674917413494336545116976348812123685752097646199261136032752448266498614137690222254476155202955458609189869688027157054115322106734438407783828236261294879784146557758947545308087693621992374367491544956493727965383483971922002622764532585188057948455838134990198662654208701678745910195975450872117689782011541718839407825896837747906001492134341809051583445766213526778218865387758223102918034458110592773112509219975856008966752337258849095648708788468753454949854995131724211190465951872201027155673399779102183139056832597923084441150799721927222047190382959821725767945266165986929854147592478117086002955552456805069954718080765251850581980036387664681589981589165752010787288488970541773674305136876166328023284422519254481241003089431344183216398932779296295694536918843089199864206113022300955376805983214312344927580522972394748597973422628812592511355970779976582185418252130407260281527360135128995665790106706567004464336078252386186610574538463179751590903878494103427456653407572972217440332581101520222643287030353808816248515520127096321970244373170684137181600587272692627656263859235620908772065795552738133630608968771106664187981278345214890634821724046289467669955453258029012807951186993706417927514838646837655451386827280206261306864183379800613592323335586585253963163045520777291381625903000343353859586023016108711442091473153980789092431342708051386641850478956395069964290209629678232038631454755324370050088951023724865970325933320655509205571914128770616447349654612246325956312627879696774271703349497228058390300055609598872214735599925415879867290954418374857063262299436123187160568914111159707684796290020467444191898451602973056596324333612154619096794359622563099633735277421195366879729107513971360655632145417960992713822492956084360632454425441281753432180030240452722173699361172761722653295445222334216363159531950922610053838150505798742528509412126436340190376502623710252114660070355928017305633082940459004195716934610055239550383291345207504828748446706154683996501940231694745796028762678843923792420126872090184038526169921938328360677299939151818802535826726932907753037164876296322296802515645082531130317824975887500055329495260005905941839145708862096556918362849495906349100871659717646995580118267401219044610997333540611928557514279636727811023805475067751039243475989749079977303118528548357139121556766673089220839660273542860766289964034957503307397243862854595571050840114616341466503507208360711550122064391111045916410705571652343127999462486488838849305965470339392259132484506515799861156074668382637338951676425954846893878920350636103253851709709039680252364507711098057289792822109508893935713273767364094737970347076496184559791095921751099135802037507896017600010384619170519153523678961996180590107940772541859248536208289023154297020104592237806261302852858213095368083660846472482196223544208528796641365416353245725897100276923278168516018324216435664079490975984686410337045923911178634448810681802325471356121522697389936570190791465473792029060730493182358977550011719514249223045542588001178725956764457101300495390752234809489797166044696046367247003662474559463676436067630336849778064243573571258791870824402260022681463284379172837366414769071605116527274411499713891171245006607712070841026441764199681672907316815831447789175312743588810939884328218235526093460325538472082821440896883766844066850096788419895681479804025288854216833659688856317248573507564075996276808895552166526900338329222430662099385831332117021858307403821750610401437633948625130779555166780974473931859694354973503003012304232364152374815209002913039902453385013235196133188915868803293139648741163631587356865889108413756306967497735410276641780870024779504141537908803110021774888661171515492017207101730521234630969145235107351449865584578178390563798223499982099704878827441762471420104734717000128018569527778661365633215618594789568589947098056440165648623194095513226265623293910463099643724653883850988075351590891391828340284627070682290268786854305466624196372546829808326587351170243689606109289575803432566834309049153507698254403816548923755975370098479600273420315465122216865227310636998170833775575337004771516019183310792107638639632445295344637845243485745909828138077522995204799417694267416521814582010566785906534949333251409110951338955548551730155008718532485677523730119103132256043712901541554581359932958997239049710114382410797885641944515240070099650847517553709135765133527026124415812745014210280249873921232112951206076945747246994879734201869422999475496139087807427015605598506406509870963094312651504222721330849667691327468880090841109068306162333203719935141128289469933989508897107228501419706611443851011728898912064860416437373531683500033391169871081167126857087851602302414753311859719345543014287495865942136328296681469470371165534673297615025047997707044588951278429458928938900729549902115086215182692261211980880491102468869579495301709991477450224044714186817401827481303389926935467319090474783683154455247002447509085888865501356726542575959497134865911393660284014946811520910309477575961206342004179611685283183197493179504377652064806167343941577678301696151413771456839857556567212485638001482064524167763760249491125261375585354057526274714399374942572938284461814082510883910320147387587756608627465141033496886463144638525066136366512255671302798082474964874387246004354474459308556779393487441099360889996141328899049009050776638039086840709097079333333952448028863793879249878781098596880959629965234077853515119749682327536882596115484972413911694364772123812160557321681937232110436178857485239388250225945090627981924811336192454946377827039521273911699055847986204147975250891967243039497808227313133656905024584610722195099499696571943627352735778320452060978642747737529334659760376542372246326475534559303119919885701702456380283401735023384801082603497490382439305415973077159604212095020878631374606235791941272711342149743318147462248006613534410641310470625649422840843359737655874111583974973441996701244828898194557160053307133398351405669158530342351458891575484725634725833868873685360001438088077339891225429507781231177637464319960422715941518281188631896533436010138690557529722104615972929956931500026249093294347562535806296512237810368649223110491807050166759924738798740003764048849886800499882739007168766821956203708613492074636140615680452633339279940327281153343209099045786677215389694845516294077410148879542831905757807152589632491158846505095126261476711554651324927706512214161419481006561056604407703347998521432714130355607905859754280173087288824422532216375242008346722421104877368845509011306527558486870948346113004857322329557206555530816722943002349738359599100231106812419130700274462958549597919359105513610882797248927304784995928253160806138135355580061526848307011421029595349687091649369982327618112129729208263852747497543074682739221807902208567971261932493148595315662796810864659365780205399765535155787893723152562721840933823655994298505004456768596752847419511611416101277262450707310510285106996987105980350235737793828533020136440391395235762125164394638393370298080887762655444856388620281464570161671404348402060984295835614808890543838429066016342507137465042824618224227295595139888130824620519130842820356900637676443765958979456367279686826793771358547469745960914889473975917693745880867114521386729030336205853560069971806404925849150860187062281966987787121027234418013478983844117506864535198316354034291992081939266021744316349668382459579711458839294921372345207116159754139259773174543289146663180569582115810066838140243238729281770803942385197370978254958750705337097641181235606444777899494445587877543962587953677359540663762370706221930209282210847791197553311467667665848890730287147393510124688248472435611320297141709141080093468158217764033209327233442456069193277781061973995273489067914976476533034839995740693406671084813796089007795731139173324512482634042943387328586699947871103133150422650731479386687910112097705158397176519377994454257529521043043141135784014617945449756682283401499648681290261181144099712950429153733859015940960804695423238752736485154810075380186559425916927952547779462700702628080143229395361041155686441433557757615946344171966946865646585453871734822823304054095363939099249291301804463383786988840599120842746569817796822147213639750339594770708701138911190698395624968185462096021447382523141670854954041791479908881450312093995996919267089286776423836545501518677639222707153472638693607962303511145316396723970981887655251082407120525055102650826777440748980097868243431937813440707037449140298481841879434640858046623088698072435348170330069458689532469176069520135763261796007998514491506081824663589050668156966120411792821516208360326728620542485806900002292922434122270052966288357048688523736289165973875835435544307624844451366894661005586744481559820805285457706597691425868765240330908300703139718737560308095232013065465395619542637564788622619114515876514357005208852133631273792677641602652152702466657562270743756913922480244374872185103089051200940956872593539161203226831850117115487833807551751530926422911357455609349788152856723622571376448043876445215628397280610538210746081296898879280246163964331980935068122653390087097834849184234080862267409983054601520772854632492286095740787220309541113462706339168985504468343811455517051761434932365095241959357712156058144272484839098865545501267274583323467831238840651492080392013523382297392271464950649582654319263161123254040195105943250744906035382527491680709159365134335463725679969794503631466032358714276577869325633668621076005837221113905411654416924788968198783737587734436274063456285239240044140054765878077274536879245290931198586764345260340686593847176264791505723051401591905052300591115624733226126083471297850382233637132662911014568427860346408626341487560577331945266257170630131046815312325904105197570066120941049946244485518063549360612466244146967102841643191027977637334976466193138249755120605396577514086550800055962388022105525259813746479319568261193764130238538307415089073817283204009446479594555939230323720189655256623881694333211887531480488647984686242791537073914878655578418766723931760663671401417872319352202480777963295621387393761386856237487306769028296252339471184319898651743106131408450637213283548497229673489753253734333600463363862565310433955326268069480449784288264079041262276071314717224634911194662960392020960253844392701930501833693266622829358095154781191417928187909123873862686254141527992803243509163879443039688653808105417039366336906332313978405027224016298613391611438869519307782558643847360987590033342114895885058773523741339717559038175698653976813370205997445377837240010366496850684642255857357083792637400967047814861370779967016566331051335030017347871854724472029068759999017699373081366726130282291130587816711171929119063864902048471120064202814680895221722283231824880669608262270330983415993455925611605970669043481494211519161697673772163741615544381755460623807687387240605353405749254282460136301723480377159182945078574918779193635853922372515063452100570082945676149323639921958221942884257837986172808386411370399792288105442273755272961891956990872829566473801021186837302975581621270094284524016804039768167523610087221237919120772798409728482038486515795150934678268366515296554235094827322397498606587739787491262257996391077659635700092779937994675028636683369881325806739339137493757504446890820857097274137658024867871582941542006836038628484332076681312113249766844230147960215807094489398613808866373367750056373897141958316143510445823930542060448774602512226601330871704280670569086029441658317249937571009339913036534901525840583794236584220262430535314646871100388508755991084753304121697578142467529089954130184042351138044387402143164181568972914149005769978715125766545306215267358517071680490295212705642510622512499819302409974377087534429976117473843759241406633016475567057489675256692094092184794071960213221718522490078154791552480745200984405323903686068599486373071238221609333162970611736768584613961003317153921865999752020775783294890410545188926028822271594380818610708402841211127688836627141850034352903121581601357187563354553972854338863386974206396990038110364967142861379304195221258286272944973640479002217000626701198345922659317397617481421762162294389165580217777764282945501366371856753170241819552353171079341656711061544136810375823779963343900380782969790809355194053926373638702280307111902974837778309035607523164236464293951785315632409784557256289684772565932259317295493600120202692497025031512729455030317266492363884466953651778737093865436752407418734965058186580253443480398819856903514261890300161289080493536680518734491204703503513985857576355792114855411378579545181483998115902653400968137538380030830380091697814045878445360520007303626549989116373242462216101133163092361677025137969503597531754293084061777807742776021755036962688469817733892381756675464719880537531423288328391926802805431011614602383080362006931864773239894078834944618540978610739017384330253676719429847224140792041774565767729085545909788762631695578860790108180944246062277175694004392468002991678531937594835600284739514891394756817701888878398179061047414414758373616536024018535276265254033250953981362188567847099075319782608061436356502187674489183246298997347908204830123346546260365564132757222064651287919099088013282702746743331198070034838659481228460282118114734527985281285056752380357651318533155050401331376852753445815023802106360230627643387021105951351349702751123989191472704520814359670008995143625088275709090710211220118918801154894050987510988490086716115456792875215431801907968982337602782682296450482733131519659547649509737177993591898723481314797828648776403387891816711692043104673281667896201694194289288688622899878540822430745271951371506271845165785103602428991797472741157631097166873196587180219686894045299081612700138344944757569318001422670082954568155901035634464985952072093547948730582173685581315566001089334200647932180408336734850158704659502106463649413391177734249331059144459229786866285641824543139338436855107416048676516289467024292503951123703551008506920434312720355112439681926569713743947820969988241375583470526108232831983848076512951395681595298152760461684286348071983932635276266560082798440397046186889737641915942832920970440501713030571079191396884986911421518125574033438249333727866728802508994665978867068197436332398597930734031717059696608799803098329803728473554021378690808093014236226674051739809260118619171204543646278224863197832892238906898588429142128163225486434405060771619574453790195333252083653076194618434668243840719507945334172808860687342254558424330559722741121109575855191409578189100394895245081333192410669846595117986563334686497958799245857248921479951955424504483343641137566252250710601827834564154575556773034447353384943168818007146595862893203581419001917169573151766191000518532775453865320073584482937757876157841546206425296880095468782786075091393961532219394368378433010579618516413121613327405325481163154630339765501286325353564828022456538741240882105875201967600703293743803332121343754191327142067616110924542467147939062110583273540512900768155066064073942984041581261330809425705325295720417084244212550147694313956516898705939904281152677901178168469212821809867791000429395038113575050474663721738084836605024242179937089876544323818454693543169993074749716101985851550529914868801160023826172472084694225240073132496740541817193277367625905611460440071418164515533734983543279922792170902436540451290155769882726190218321345366037181638358134318248513715805100241704620646331702357227388505498973180098310415481772200976110613934710684423540474240753644101665127599612386714002258299745011863678253118863502297541023555259665571413794161584488236631318660200897347264552421228865476308691576055977374758411627233443219024527973432857836198646194557073211840855347921984265642186067375818062285652003366241496472892624252707229783846688508536213397154968664467462834992035070938957415501633712214997812860825456069296365170083285783893786304099347717369460850150281061981294065435541190475026954380426298127774714288513105884832690041043109952192092400643614363109064904700665754375530711967642135091264976194637333294323631211728269554002248894478739577938496009009953552493064411728718252036495119258655518865629481888523453867193188490116892131037071210371923656909526004280230897666226036522828745980875669074416044399118791256457657520591599675914558308702912551667378055164049139912917248090744728213435292404457750975281537831855602269045906169586125448883200378562625601298482137364849684381711501763907825055997826331903217183721379731195291027869461755548214362548156106290317425122871043958338928615852499496607214803532777617814493715844581433530347031670431055605608385573202672242174308169831607079967970150745122367235139499269796289709397506896749978277698850713866495517092835855791551558370182160164322726222843423085324814828683976987845130136748004776234488627287812723665488417570366306087560972953193608307351421705467047468035462783553720370062671592885262066342965008994658835166373353806375254862873921954343587904109049233298353795776860907963406578182037598881785512430703441284941968994804385355228574564671311323914741002744394811255996647250769357813630391795721222770912629318616733036117602009871850955816953000171882076058105928933703906985426937315425798602822031842292803178542684533175973427656921689916701936540798429753786512545783276218960229593289965535293995008850953705864360885358787418245796986614396561594407318585475859334319231711644289227976539837400732889982531255994221595209248114578875142998158681088008420864672231088790161934859702059070230309095275498169639275946456136994475078516612307838554542033034380742542382280033065095863244747526292051265023198140407238103788876666000882211370785801156595920571716256614530767986498065510566171318662271160180858307549798976659979261928378076481957018887079027226033550021146343793381414427357597625710733440055986698044271763179027001949580495277392411182714769550010215366051629343191294986023164421716665575653173185406539383917845629219655058549651360018095755987253721329608896294337204777155679868933477578377402859916285381473689171816604576232750814737995690187145242001680770416787870510131725516362581970382812688257096067242250019980375258182006508952114164125065324473457276739744549327464473412637640477690387448598865928239102629631587725221952285285295026453553545474494294133579433742142820716936325636487915460235537872720693080995548280998958029838754143080027272542452481359461761225821107788157973941549828243815784731837619956624798572905606763955033111231223357022944485967039358177787206934435541607254256366672254703631199390802832676772166903558229672642712425764962386882805067449708840135315558182573633865376944217668565087741014833248994583172145459351413865692023358198863052380367640688104373055942785432641920691153233896646044786412495721719761967968890687651281332766285090021282851469073125360851100917227844778915812666253822034250857372293481426255677346378341949084891115153812252565486879028355072321911750317520158365805894818085775477478333583518286409403755970732430752371798232206749670777035172498345097994348821659194698293502770781817152801260377192236657915321313215889526833255606637462723514036089830687282749594684958613640292645639517191532337863780789607760636821164494712768323924752819813694157328835397943729795100772578958201937451670543123122414054562714701306699524177533207320950493028225226986243231702361715492035179407524808276779883748491826086220743542090844868280455151449873355927712715006742409903134258193145322906223370781780364960648488284223651809448492050619526268402489956548804218465893170701142711034143864606905687932074886843181696887588914891513123269412067105871486523553350100023411210167288227428582155605418966852700879373933016563918623648700225628242021586790943829328602558206905376221911150307660578409567265550135741749007249810584775209187069575784686459628923532248208333704487233905649999565386110491120715609858879421772569573189504305422492500885022353898994595162969298997306153163753568858360781682733170799252194389768456775742026268002104610688659350365452939036488180687836152516943441996152743649505730195300282539024611519927711385810936721732766539440177234280690176653211784578170241423914596674911780456960936962519849863718898595694040703696599006494248449161838733395496957777878437182039186966790279867367485365042218419779807831442044698941664834016962644796430924096591178852855761215580037901986858227114705384353634376825271800841789864010091405738903810541015794683456342632162428843704021603167937319226178525642497576276134297666512043300679289195859126518624524932815870446064555006663592770474171883017184216400440008742786122166151769294268184597278464609278080343389627480524918172678246388635889428831367357685968736265515534344498115010662066082632843256716899537869539722272299905800755664909780679687574134521964429431811401197640814948522383434646264155798649122539480497231855148957242194925131557158015804471577975152625516440899157791502757844711539463171073155975396516791570903127900417212234279533147021456993136792943910313930127753245996359331709333418222954652617858027015916073690497493906030534931279932027971824122578662353363251275552997325085669368914640021446555281330114813421021516372033667849237419552116294045843116249135185259457688719398905025732619314494775464377185001887138987305498820257372789521019921172443939484561223587899334025969192444584084565006578681063442477254297581358596195511924302124355815693870457118373539152622089057379754419834709752904211335081121664354291592975058463417995700684982918995198444390548630790942711942559366397800271477234938018428357068758252099700626496922468488453022867856453725244984533017136636953305451137634589556581435612223129566686345000813668673222135447086389404380177709808345770612315027709143981330419776610378955983133685121725198956019401879959622524204139573707606886762665525121283112094847151695015359892122650146512340773549293969891824405799889989862151721466890767133608160988114142128610061024599745438771028989237394095783956064432848023788546543979682882662820205028803977056097726581443809308082918869209479984024587142095414915706722591914658737852992818420540272321424314934137486909617506549740627965148703961405129322430978744950019802732521815942679075578819945069525667515199965744382822698910506689305670130891254826196024591257780684978672764257869822963742067727882423342295965109255280753470086361120497652733283024215419304722201917922712329919536046536260034219308841076350577038267923786916577657056906297666222758678451270110349689004371546005635181981291803702037602228025889746415683863566383333780133363277353095457105947813451471201976932249457337585752907840796183547887529673391250358700198313933764772958615844202830518159306016375975465935526781537406148357586769131334918767065210422826577574492672357025833234724674347172560177518826442544135663798708680964551423692683192393150734157194362390501425950148934100022904570376551461654098486393005500193098295667508826606196593208006545547765896843515273579441230231510283912885753636753462436284043993633057704290956386423770211944230669050011391723201347630996682854345229969914959941337483693118906429971186480785475793537315114833327714760077596909073920867903713423635924837313712984443795531032095081805143261875113592786784494412240619349580750670986052245667248456304594156876613364930618524211051867682920260227933282339163717856655116068236551240007543138572946744191660012467277972608461304544951280201194430087507722776819733848329668158550824070914269172667656393905577684159534199285159014047478287350771253578743114761932022230799657009907819959944874285650464258374170748377810976005479623326190755650636633733552201124304281816523344785246162423803960205939523790014929956127677271756080190108747316024278667633512055455191163680959044158732051611603768911486932729703536082987123674653061379925442352870859223421323303307578497572008375058581181334636146266002667520181514243143223515227219498276040751554658599902613885111747631455294518404083419031814426861476096096748070568395119920242457834205074414597860846839745259666474643339895531179050633288301141731031599437943133608613577940932250862942416101435370438842489959239332318604175870684455371796253492984938028708762119005044593293034303257907805236646878121292446283218484427626350917196417929521682474558407497025152789206472524276759344970780055952709211430494119511524431671293847592805041391215294972058514289108254027212419779945363686735540188387683612049939700158170222302644240031892633253036069270697460192560721707939605206831836114658929282082164587243076859658127641955495958478875156399368147360641529389083959330660210241568113608693803251480953841265947091605576781694974172935370031602276169566728049660366938359858820937089690601549160962681790464279866453142168096029327265936423214047104403895036000649489179471090133925065232253382860985263794688804671283564383316109829037513903916417728492712080612633203687490889571110489713494685941861846389877872115415926733354299576153368753042545403027337589836333417746447800790063643598766754194062817535821748035633948783001218469911728542137940826598831366206566733475375420361577290915315333882073556118944419820482116964871579139677062687379366621988073864450893893755100220038092302525107836252570744003586836635147672728868640306961850423926242097118319196702304654445064673994779493326720026413825227525664282596605093299306084019141169693184885978425307204224870317435844980914901080676035034004051900863539666554869827065005635029622525000683672568390386036387102101572884522637208872730365207308671930787249755996497649947553435790809767290282699864456215998769449533171582329736135158684266351651288954207466847226073257879769396296835843380247808156218514735605984518145999221918325177393485147989713097806950056178042457618009725513956489101211032119907707661114086934932725489040310362445107654068439062527226666094991766170077068791001315976245969437091822571442161091606771238624041146118253204706438672320521656151300007404507533794740070422443514789926701428738293177688446930991726166053437018227206538805890931432105484275612074173476107737466606687311517413879608271808028309079491794782156503558783243699016458606665529930866247941881716700250372627449329835089144126438757561827593610695177656143159819685376519420156204846201681262457888164344374125355705298535504816559546912606878107102464879345128779639542164463624522978803676637990257827608791566509708105459187526725951728570818725046487367672927026483123537517279100030543845871322879525979622059591407153320908860188033869582531859714670391467864332884306839430434482509712437969774669381762926441329486647355656397415360175569665271822035723132698590162673617516407163995684446570775359630526286886946654141618260731329427082979331049911768938740077269662120883434708669461425984434749067524529467102804905365480006278030793825578128413547579547086052710983039915733137140357512519299024330763582563468376369396539393659901367679771357896533779691936502009372131717986202037451196156098182586616084546196565116329122547144909713906645469803836986902586544895076096385765296011576209909640942670076432896590951953255521634001720174838613515510276409044805004670564395083393046105616271001001850982460605882114375458061103897764423168883216647075995850300327014054749859145578357370066504417226774873303410569359922252530544288499836433286072272542365779469545554756975267400392235145279396893788288140206267631952109800903521865440196255710449054719587143920165203792430629877795568084515753271693778001145120976074339781340056276546807086251616161729091403935575000571767837074069915060475738654433475416780270625060988201724770103978376255590208597329456660017951194183721512152681097408100549469360017362347474624725609804128068290350176401801544240432194876119411117872110571626039610802294724146214506742061906571170053853392800490929979532449766768947543103980950241224292546750762491246658841467632440429796284446302857249755896906043683246434573085568695830630789497442488730906577817309808961401542578039176973575194923824869893387705919717922759788242148072245687029921460892958897265406410341877868023031137439356167960583795806535831216527185039505017862491115085475219803352894799554777848609906883298518710616905456219752183730523806446032145753121934867532510907820774911133778481757815067224284865276480146490120123332680568560989224858810562508732052540087026229977218699996933952079483417158294507059530259888507950993304326272874170243758944246938407321412544286741074129394573723710659871056229284958771984518547264002640850393002157518378265827270599229207055586237507758412152665574173353900979976747577447517204290041749968778094515308265815938404776729920669324812240895277140222821378005663832740428545406880281368246657483290936372045314061787832217452586705762772070731674349213632501862952263113284776346784912746927454063506588893670607927334951331514740936083260116541871180061326919828510257155622842772413105367092636509157996059478987112288299483741337395482602044539231078873081390362284889736233126912762392124787072051554906207948181848160169412196233723602185281693057581382219592206871438290685591905672532941314911776109459894439424401943860031849334499417348553725225173313938623292642247427595385011522945718302994888167505561732916004079384176151654186147536664438847277794810003884455048360070892507635640262960716828711058233802278453928952520347610025126285949580997494052465148857561005738417328272085412631171127127280351539343922084164955273468512435975269925275438264110347541532569624248441855204229241281121073863447314283067758927177787735692475281858283622119909762260170274532348511375575730474427712494175038325013310199736196727004414647518451531855560745961647071738095108249360153818068691889125117698382097501679405165754009366686538276531904532866929703819853051548365114701067937976466154246725995601766680684602660969177822494553112215292603453665827425016698178254176983456433836878800506064722739846738271454880827583976580452826452912745453001735445851073163936999250320053288576932473503935016682566088392986550853807903333552903661313979202778047511914567896580112701438135721725225020231092660181037008637242598769889259110096624900718332532773340356638479514920239883276234381131271547756429201321587633817418227557070155616858369741912002459726434273172016443954821076784250049845617502514125026461154021206783331292406204111990570156413516775117013603586322381209115763679921813133839232040367253612028226784315087734266584503951678876336493187261207983157664214087064820580012476271224509622664947833939111203753386050794462739383985203301358474470968435238822230549558675543098592366063808519387091609208089627250993170672774370465525438378665439688302629845644490822168847771660815603587502915601631206522939821352163478677308529989605731914889370390205177140047601757306162091458863216281857397002164586772284517174442777061528579489555488973303143711542671981669646566544032198772719530613586154349442115095257566635475639464558931259540230159536147740508028495694826300151369773567555404807886705185195807567579811715381994042175875388569805788482006590403099298667410351295085858414145687446392975483819058008057789751087421816809865446558399761451459138848839122047863195111679629849807191404731605240900520943954182178151456938870446776233807574979359179138283738631100276347250891005273359476531246749219816692056791791363739840065981900782468589795616325231295576923992302310361526866772138683798778691242579318345130035374546020524154304187533263147279925515051943668311533111438654676827181340780349862540490625209769182782078214224464344015522641482890450446958163447101023491358867690432600567548422590910991534679806820936556830657652252658619871891158038447021341156017263898780177383947193313082535202173209431706164689451029528481614830179798890914573543277212942182072115369563769873688155050580960940740833504809270085564824496181394053226846167469233110401409186304498097416661176479109223937587696126029241476985960141268340053024361398836299387841356614658195902146290037949103422234178990897307442255851094832822004044437129804102506420695796009069721293781542343812300950779419735398936202894780511607359745771193440209492166826481239463242152750765142337545106732301206841112383379225283127745716343935948729717963118431866970526068479863714682738085990206937322172256763495166606454385109148825700836052184196288554514441948463739066319101631012968479391481353843951131002925189411216590946000192623146210362991673150407081103378100757079884735562219123903246999211447513200810897426940342952130617331169836222668612370373121693308915529747026680139051510479040701055203993473081543860776615342644785793277637581691972127908763154634899196288830603687779755931272455035026502696586690715725855485278347746830191788334065092152135587947690341913942849765467111607017308127671590285864056990820923798723999807269437333802798001645423740651286288347616786925149422129891155073928455313924501808015562253900848723616064761478147910772319692987166665433577745697585520572620950161148424314638146711444853470148293894391367308255079374567976756805121652819456979517921821195084276577985941732213207260544350637392108887385894712772069693250723178996532146217637981250958360317041928778713531749941599738991394793664018863107699315446104691452772564198241830775318836808822345810431646813742970937505513472429537714462803719934153767771052600468186062315027904586894769903993969144776062097359340946451744435900950295095212078686530369623247490024756146052475090882001267049130814528786559946429618441339310066314805693775495349598614726418665689846753341947108131704382430021906168321796568914980300451724343811659041171227662924912679121574930440625276768914352360569928791113576436624970032909655128731628685181554663902704471905434109243319865740136461427458098021991117034169567140729969512063124400446579319599401943683997992446107991532677912136526379618476525740416168049638536502824830128944170158612115897770565671256489450223246997164250001184965860806890564538930946526972605646219251078877536791811552807547556869341879118189740840598023797872443997266441700672947499189284786725045852063620533215064364790112321080902254021217118210342549965251209824659867306907457013025807955968048278791134013789584196249956948463927218430400557630434366259993064133613715633980228254061704037331220116946155266328049460076357235084338260907291439153514919651994984632612053908240965030446504540599525388570634098995658069155331193697776665136661080186414694683075883449292318391248212741985028513103795626518034669064164614782944385434573978972152707562022241497273614017293016290697433307376885687471984064928778613754841376316989247889481852127289040771506486789397611394642420063492646723058433440992659657080891478354211180401219871454660420838656204829472110781712956228365230547018052925541425682341493274494944903070577334008860374176047187360489540861853963503641359434792285719579810921393348755833782372913982036263753667426817162708340631874605931588543650677726160054508362543940634533543756690746385692758908017859517687979499453050000234844772133266298735987583237694874264671318354471851845112544521578508147001994019318937723904417425480914168055139675472220803380040540208198933072340583799056210148019548724462862124806833468369809390447633238430702777086370380124475386859252885600466679137634551258941241410693109803005685852700938498958318940096838655571127395979366188332374319232705444957841602811314737656142927450871946417281039318875029055992900634086040922592006509984465676733742186839593875486620870000990581957182919920429069842751169975732178330565568717780955356048428736519403576502073987400896810260247483948016317840964494127934358112219532444091117271400801059388204591590254525741321419421511088003035143564034628410577765028491846307601468969115344475926008542075003451526056193257997430530150000972837562708006079059897460035521623970106530698748664348586125862967503565459322359084601008740411015379704721386629628122201055071742187862810342683724695086043476666436838252990440772840782824042748462269574073234132548668941607169242684528504824502956341358210078547275929519557896221173208142946743922420200094222748262661658789538818188560832846297005709720011610446620908149193378644996194322975423523593606333004517504427101015507584711488559687516216652722282106562265708146178166288994693957554270222419384574435228952889061678130712657727224367143948230819586327456821168273540145068997243466427454849837387235541206363590486975269443945059158025155387625870161357580335353201249145627803097052005408344761898159074643764172548645265639166403508291010650996680171212446919051583368365270874998108257561425112878627362355482639905694304409734394999301249465429910271191668391535048362580434873496403760962502071875812541843188833446694584710555023441801973297365326502701425928635743151347883669175102661980562622457935143489138930122153588529049664757404683678334575123670789459518834396570183878463249011757714353310253796436018339345881658353367888376769089305068603913646678222941470676807075331339749345423550767737719564639063190170327312289789825323154817473184391568378794871007596813025893430322086814038733289716037939834182263594239835621999103499724700319351205154452815761581136518934923406574390994025783430457593572036350763805897439863161724044634057291676971135993874711101777033029805161212476377143093561329264309516040035076324719669534143651487605022056267569005675320855385605064017590017188979245747956276937353732804201343373366175941759340196215021008323211220886232965585452657666336560687817278750670958694074549041943472909578881139309716419388079540682561280345373964961152621455094110589425617438803657343101311432440765550369344617868446931338468709311487165870055514226319604319135884338889807248412782848208731905904537370322659796771817811839769012989147207371739653083880775650857478601938754000993356352709719214244814434903465038654418316729301086219034565228086380154735082989625217513301645380784866248035974231121948399138310310369191484635599492150944045116062974081101852697227748043347951285331164158262109549203144652582544626274872216414931106378895094335614707669266832152755548027707255312942714040324094342393317825557731328620373354965646551782532984522828106698052937995038615028314468720768428670437525635231160265106281260842293212084688357653563794302842425278644195731361963330533244165133102173368970418171677149586099362922774447981925198149087048621773522910274779636761821215284862101548805653282029088529209318413942294247655181760995470592271704811585182575528043610212680336423173764387957221122866507699862651106249173034318731673719825771446835627616265205201216723005186907373044316507174036186928263292561510631671312377244385809655430547232713138942043492528404093607135316026262608103429541511875533395473093805114375355129375888837838585726187670648352212429804431878882369839268987129757570876834074858035364178712754696550300556278757858030015050171761855589580441006904007892948370602654500936066317711797530211488938177503639646200638266466259860464275282434899727375095665818997879314666827210695728700937441305399317675634656353736317600619912816403524619198080952086172394010068108148330163457213713696603423278417440541463395483134607879143093664848875765801833704898704661708470131877375402408349268733756842417522452628134821892588710411945189512719484195460993649576046956324365737342116368042169843735454543247530246204483088995676607534179295307383257832830616074843639262623234121402906727924841842557783778828791672550821789021975815669278692890910003084244966644349446280074395129896060938886157688251751560285319148881313775674347418508577140625738808783014484742269588081229011685694064944409586162399878150778695789515171688865304344859722642126869613944505180740256519139820195811011101502872721278612770392134366586260136778916727828354412036724450331955098983535660609478097572162157883912869589868285124718872200098854787909982440774962909303220573789307459016172672889930844281421658158194679427549486393968878747927490421462251870846280106701356565120628597355684204132301760258261079872630644996105743230917530251481192930982706522193340412880299450934852532755105736996248299572733403639638922088252639159826182744413383608542102081747265868389035221473280285810322341605587065196706567723378317663051123454290256980736183430735199859778211537749231955565206772787171599607022025961039020840395160531651785713159465906440711959802396638672006255430420648356230732384973710358738087764616754325348544168383408619616978908479415126389197522641904134801066647446138263111152339256574712094134025330548980803132999680448831351118940858948834009082971576180392007433134685955713989439263886013842841740196730511024969846374898440337919017950439590586575526759481337051055607948957666636590288810925961899430274448307685658957525246438075732734797690172215929566284422459228605557988657560220670099815001821781876496075940141872530282970083275745371268607954803154525089607160050888128567320556656044376227794726521051644402469699140464338675153649961921880828669205446668141391886753228835745134495388403362665156610652112257061232102277467588633570278995694323878284053528889448406749907689286706986987348443766446164592643288350544073791572902649483069492737399561629435518330990022565426884242071294630280716662157464405972535835739343036407011535611633492810805629463087542681820684703675815331792473743273085247871397024577600151985950331885956172918443229877576185636136909520780308067907198750829888307754263718677659634162528350317074995984094564141608981929124743329558994304845622982335723329259646259670200957767950037721164937785851014006988997727202115913754863983877463613379822633613170136251326616552797372367729753098663557447818911964799536257947928880315659430344673541291745602558549566750527548643959665054735007301442808015417578232752568240994108083243899517581649725260449244614255471122034568202546638163208648814059442738988797535476970672934912073955638952430276469045406377686927420942915362030883507523406987508553956075673980534959967122865741102623724058837178395333304366375284605755958406799826851008367953972496582934964477887835177094758802318379161779829107976384331344266322232935977000138017684202734145573715220487663390804919711982973332061702606503250107306932029484069892132049915669314740637346797914208644299083592730132200997362414694204494611334902098640531424054925071930060720414603864213879288426397935403275376470124971603153536113419915345664358058957391541782697504504452893654333346984707024115745899968876316530288348851452222404848702950173842072842601198147203369020618258770654867486887518992138253310601804473721191293432165177742167597958038814114344393453451281232931126023396622963535245277127325234605616983434509897932379747033446184078802964883275057424839084701913567260120999667431977842261405730556160262010050331488036198012183770709295614718853722961086870275750811928271909177658384665053764597869525859894272868613117390060054917154258754778308077032866963838479850062049827533509307688977787508312277848227941830474392444607974539952611086378954956699754039159375826113413530979588017412893020922918106003305779555595638734273119860490908063611295527920552196163836821377701902899206185084906103817362703897551685487888389425471793175755711260300900963719541796816279069042283450056480777538744453537615321040544981450219061463483001731909655946924376968394904671034175064366267124378780334609914898469763742938857906188063127020846504450979881895711818787654872715587840142419440044765584483573276633310780608036047404314578596919442916272884707903865746400101983566957297226410040537884530946032624203478952937095500857011253392345625639419879927989350323136421165931368054968364796702685564020865478265319375365041431708619040470811424364734340600435022189637747235786383260486648268351651570742912486268084246241691705878958067900556178667242457326422822607860360713162085512806230761153465234130635428285114790443132449556238022516413981495106654817645038392275897784821117205584695195340726802979298911055867991988176537576167560642864037941927720468701688987524406335395540597259428164072597516579072330453362783946398935823784184081140709849847055820570135240882106751403913261290106804860870450008187918268323855173176144024144878193322579975595917753602222237040122240703299294871928531115716336793305108646598414752542217853186578197097320383436048442103269547418403046052890376528110224219500734261721631127508757700288766143674323111373454039220492935330060245907229504745369214971697634774082692889259774434803744459885656995293138395773078394074124446579621541625221906789504094529840042987642402898302198483702912945499872808623462189270361090433468349431701807535536093550535776694798365689348677896777262274103553782976525212084187539953568649361629394511191885592340950294087157263019775677854112703058396488834061514348711721320339141388742618567283564478928433295930872548517469898726833684494730995183936335284285618972246806829447838013669542317882428391767625845497176238376164756333251742764770557561000015579442688098416810095255394111055340304058327063917754461533379435406956820912770445151183716814428494897439633370892919544390067720608731838592952124151935508378106252320120490390241647181548700638774477321169069786386139818429131538579347201650074867168123798870120414019361843990796705678022481262635005781243117211921912978812668331432628760690697390823968589577720147112008440332626306432681647411441228502535450154453071986952434677200914054371095680400941131337731642670243655870253968542145627675424959773743966916749212746136382685391370998969281653127060505531153564033842360552009820234868619541801740599196263012796540278529424464672629919863167410481131071823203223592888703737012532047006142286192608558834693043958254559608139003635715275719273913899957274875739320817210472740859077778585233525693088568819616926593027417889465999972409599326473008990140136464450411033809874040575561495928933092543774152316970704975616353343817925434003555890696254810334823516148809724616379775138891082131371703104172096403012483459747835917642948777314911680324889242761258235527749808235639071579368523887428811962224582212912634442735144902351930150593524778374230654406475715729212552479987496955008797610561779080013147277509458452521357821676703618916192251687175813858227370530762048031295677000123650200292702603342069073271690500342055349828215704577793186291222256844562620439138872336869469495708882824199618693796050048229330563959221719564776281972708373347724024752234663212009406079178401547347392838360598221419058354938952359914737031915215448607587709212323069897642145269540672980747262913931979668887588536536359613139096165201060031317465344699273171165111269867206334131220829298776071764250528424667812378465591787028166413257201287930280562087722215740387780375197072440015649623194971677765362972290013277744473379731621304702456565917428308790999418919900696685528143121838289123509728921773580394277668153988815660762614118896890954823896610866183750488418751440496105901777318042998809130752424196277307484872872086568212007725359990661790202755461815349459289219956897816497734872604913552754933565617902720621406822674004097711627821147068212904645989069338166016270756551867688123662220648342335463198078748633706361259880027070228010883864132564725200867927975576768367301544967561266532183673049356679746292796118576507424770950457113735906833276432787518501414448268793610011821614675653921501030692210664498928258823438216876094311571979147633212919340127248484135699837204483178910034688210394531491290708920340653575958276857699398988647684346782000997971359682069684565137854748386310994382268205642833496709386425907078420089940747577835638256490768705798089812394454681433626023416843556014726364057239825083654991236585632526383369491470826456159743494166667968671834396136339815185862969181046918276533076108445053827735158799010086137770979405113043315727845459781434178224205768026724181219589304098752904040007218609891040379920128343609688390465708652242762003112466556641736007770783057017391420699295110071857701341572695104017708105543352298280399464696644131633729661469589911589376184451412293977391070591779894660438256358448787896411054942026892010811365956573490647125205303046757341762393870119796027394067151850589062762988200644389415373806342987377961521170536963309896689650636041495983861042587866064323704194989860191409498654232202216821888623112626377248763270793661450256938065686094723418159804494380738775824411693984951813143161736648212189407298530231287680474944576405835619066372163180286619262963004985981976969107668279028670640574893531631621939098446525987382841798658333584595663466764408057886226390198302046539637811562665929404508091306676419299002547155424742331593471285282631045678804661204040430146320698593331838241954438607486394071291240168004025452262927327331115609769866994864622955442394025611139622286733396769470376408814420889651128198941562718872393986298071701263872968032672847165868978114426263583559868893969412560919288058720532270251600279066478933811732678042305987238283176663351946676249822409821848527669990582092285066731912589823488354370151529670808972097101803452588839028371364169209210729799767647057858620932292045925040186621440589340645474963457894729164502474532939946979449331453197283444181854382537490536521218248798089961598576602029186393091656286554314140543961443177616952905433655172126270542406409827347684642932292117978036788875872061854920307791455890201984630435641473139851364305931126841201244747734599928331147979121588387708170190828860778174777916220860261007491601170761437415158499413069667838094388005630838828398561982825464082268576885669265750006680500297627839551350296261895956701324097474639365283058994905610066977244594388872002140887511506830683101558110577136297294901370640852039528891862420836949340387350506585660074287221732603955845760794917726511484961275761007279896101222612875286294880594566888663056864650364400326166026525578723752398624531310209188168211757890322331641765256150132325060658367681083452936450208178024835763162759306642813905127640670583578973923125689547440778991986849047541790318151147521196056398379967425136771271118403153237151539909859237595770153516658693331590270105950529633521357501735775936849603895192926247275428288742120867036808631911167115868394109148148554213013264914051390472347021999471600034207928982246227335598164474903536148015892947867820810730901053021599659966176803942202942454529114939301552025956960641650677238765569238776319295768569686243338672216295313145318538016301561636513809744839713328102023680817339228243292936180672700372983561775038443121116550748850114588524154238973808211179129381524358797314588454030326307706598002598268381624821777840685207073021946134020901655931088142382047455414436493061771085109046771854387992134821420887568586750976027910864981363458476490271487279076302756169320898185581650444552743344189572840341249871598450587178373205677428983375474768830282023093730773444172351119806234152162059468495130736004920207968054834753616469549392938157232253287120603199754632132395170162094722435162507459628464352617537276887603875678789753058861119568470974341916710222068355948571605136032432778169628719386369716011430541810171036225492034386434858774981484833716947048065082516648187171712380170237357656738782730404221879554392194497531253095119133635288461343764192427488267790919177917340068715800060085285154092768115272979794534799068614212608441383390167727594721770907940190838622359692639307812985726857556511202919072114908970911856584924927753038851470150861616976898096353614633759235309566722772931559123333005653022790399750686184843699867559292312429558997282717856288551390694926776477581697965267862160929957913951060037635983349540266739466835647095933744675772532909456686589886650647107930243788728746767592842140744063459418695780670269253361513720942883035970197807220437731026563886232313388159519183685690136240282878791031759720720884005310731411329203626562605045340252279559996762659896095431910462021344220534724718314469965829816317889280043648170467700388402135490789718966921755078641932271811716810534357030494984028455314797029923287131946988529716699775747837762367263003815844303178493036312560353468232793772733751013768289894387769070501958091197606877134826590185810556510024710472611309581158112094359955315541174638204704965433042110864377291303828413114396845564941736157157000267001876592069750651837299764566911408960811523140129797663395830232549705981232379426292320164989323956556431061427700165080287803054335757046751660992454391521027206866286010497622983636406510003469029118179724197093095904620063569657371210893304719947521856507875541313829714417696523461583640322072988903361641622619795184968421382906034024776864143738712362192901717126168370409571234996254190783134174338113442358318139186109399047011557799606812712112703078169094130686386757446685780642383013249447041156986055996972699397280130768342562757400396773152335645583167538654734540921659558585606352497141392574876259315082477458006073086483014009968681050496821590075232296167495986898570358805884971162985612701813050695203905983564431634342159917472305913941324613640512180979470501771808083504383840873533463377047550902404712016810777708978880967933707077201158759051623524146607882064034432194529913241309225378340213321149642437491055837209751019944429210609637327767000333429512553427617612807720207989572252689143114335678285391215843809654596701372326465428200698027221875144012831536783193596066578380608083473906410811668200660565707358534195150645300067635018568284764517316936236120032047297090870099051138381288255579405244649571786486844874185014101227004918901554959796437186222785434558634991440259872044914026047348117632593881562117221700936761113757666065465020784845467777341353022696089608772505435137951938467198837828241241231903751075069260180794600969624600904284695907625877633478890109412230280706315097560318652369379193416434196270081126507098201827328301691323066963069795117130074170715098864404479941037539687020529314269080245166349175794354372861934738939389674390939886092834645557549305569579054037071922674660355037820493940721172482534642388061999609017151172374236028654056765117878872018642864384875756774685069664795617112533556420936817246690480088531401657850077086639302496194252633493500402625618068241979857065247946204660044773034437589781013678224381699742717015255393156725046678445084796607687389218075054493735162419419374159458079222975650434270090741577597234812786459407396390163172656738394099024141170363349527541302013626009716783085425836975511761129051445751532418849749511603459348994305103680980351550995156633384015491306827696629198364838316369281132261514017448749581482747478423659426047313188887755295789195503762293152602094000590202906909158425443422994753328512880972818032797964824478425232150053861311555224653844621899972998791434179603287178282168217607780789802222539056750683575115827830016434272157376863922620367858439977946943898514375979089744360103403991184435863079903390310223604496177887676472379499647435798072554644253570174213331372392168846776171339792690407957542701224282299862176308805193858908882262226807960122162074249334489574215012840882043636195623225532926287400698392923735244669204110912625399866042797252388261623724604988115049314783914265938534265475404094061055939961890570580933828623445204948569820230248110211049031081006732195150497636268678892467363033597368134420078126042672570879351136191152834052113286991067573426540637613042729503294162853684320498628346474063644320544729355282466661448549816135738879508343939635006072585987353664536773076892611865280388155909676066713286629043138584157541996785655693973564041283925801765271381236761184400317454384658402286466689353117364726040845282703824698031663859205577808700399466428211359314547869955125796725237348891309819488475807290347632588957227717927856232883020708608188837639916201537594786326315610637405615437587938996439375808464875066344744950591264593989631697745845092629211178452080760195120207297754467811580117691481873696172505987622757444288187632078133734115713442104969717405786623157189836465005122429486926449982372828240083907762781446931364205229215275455763528136459262067121235000149586015200289342592567440818131212826513751667039894936995286759838553475613508641511964127743294796661525523026671077858843819003674151059810921802111181460647263305426656749973407674577956608579210235223568497066639789967143116406198043058802983196286160310506117969817583077558585770365571533992020126054859006963549918282966856848915616183973624570849924633919949502397144529791821245548440072144144322322451957478822897980637951474171443183784298345497157052167064460728925952324236529095689059883897999434365249096529714688794107861491305023836458348276310516970370227226419273233979279804199545767834666038075943823957707530147974899227121266570777486846438688596112889893865270063034250611302018889756013315774890085990008817367365605491374590604347224693769204604920657728578093371196336691629800290938593364505476724886716251730891676448008789618582979747763911808046465277287925395292397497940080574601181734630289822737288245683272017897624861702206982787107310142070400035841497648932204289225877911256191922063443652245636033859127040424286858768276639759382915168872621305888140264532234918616373888448576340759973035587867437553360629159992336615711881044404614259647914897828829670155164503559044490038571007652064649970409521581143641207899335151677043409378544749770205478784772951424903916431268377428755955829088806262964412484593134701775155298192082046598276101362709851206647996344197989278046706844644636560251060931591703503530211972229136858093342340948809985504270097148929493085043398018954784295924338464652160178007494725912589702404574087743510667557229960875358665662658434673579431104024940328039097191056251316890769314472315353413949106138866401363588579455241150378678743869191205965678314461736280009816101556290996732017053477615133242995820504318930545414541100959720464364660475969022689509618149232752253470536287234938042057218661246269914960758541731697472872002978902864494924277246920782661959829977012559988232727272178585734466670253029389091173479805149618021814135281571442926312069409069038551240492743729994905882897286570673481414508138821610177640472067599857766993349846909273106380199476911620901690191298113464654967108850703924685703366094021988353495385005344964635816309983878595544245183110024583301566521754212639642920698213839766491643490564667481327041685736544044828641809460989777365843731255970795936738201099826055581426028659544246086204561505469784461253124116152286143373575412331618549741365146826247568866244696107696771789243793161922464268731946902406749646604887913323751421855690318678809911788825104697221850143854031005018403379879135634602193324731887417979570927783304764841099131106429974121343479650110898565811584204658492466620039611744989696320413926919295439624043380353606829995449501814670993701786079838229341064238439836278827407818925700336264158323682025521608936995867592979279631826375831113937874342949433074573909621384346467439572017083462142060368432068488208194943517697278392029652749475231167318211603053860492573673329908825423866690665954069654917009191105072120824639911431224424844515572291157816917487659931061204428320956416200219126120371072770761202966128287719816874245874005487030986288391876149030016052327086657830966444168747748192832674097620630265936934024760844973046264870566228431285804639387993144881380139936739859586042109500222659903286288387704866687623137593055575189029858922155359317559640933840438420385081852570366252729022975947573314152330365512035783304938273063451445041444768202949075116195788060068185277557232986417286239075137476036649527222294800889027857750274221228363902701757817879393372017614438648534677535032340428030527873540171915041457594505710498729170958856535273680576621658230648508891406685346042266226668215725137603266289942466011483998984278449471587154004802152746206773795820745676742463054044507665881759319518102664623207452977635554669579162767170510303852662396344423951276452433964815060915602554451301638563639463911136059258835714550217450974890598414986695166184016791521516752584863076434147407409807866271563473033974879676758587667205349785746006517270127797356003021836981292657018937250302713229491074911474191919046356788385073010604143406647562624422636042884366309678709437478953877448408309607181655463530673764686219959435687396363690608565458311283087507952369707904050626685572759082178050069820709105156216969890475821830843591398000946557988776162344584866001357790953479282922374929812174003759646084115467271961476551382836979686385651154541267866728359833012994850525291402417251763649701556417316117416468833025528952103865056771839599571172010892752360752916119823124015362426567713232286848659693978871817810613941939381729934302915212102486134029728907723156942585486704973736340079256338015666885888208949825880656079192208440897692012399088695381066080684731537524002163821863902736222850273759813656347393340959170801602858644875717065461210299181056690974046731196214255575222321669572280214613606393584204091913534353767136207733466634804450054471446740278487185892436618334356944917191744525821506972964944486162899174758172883058978856622270067471377017136493628393142425580257237659215119567432944887511886771061973355424063848858429352111853058823996054398855780254023363399039148213801841583721495219290002294098281040233366938988240797462098706660091034649040556321823425492470784266135685850725741718146468451213780621574170157191673987984515152193834793261450798865740141477182935135801920527203368406437973236512387371724108289956123677515312521483397327539046001864997206175717951125816262649726515413097439034054912820237884203427519446305023782889941648880138108646666306418012509241949912971402237129424647387657911723836199079724460049509441821355413496521470438968409679004105691883820803534736757427586747481971836866868310758920062441692629553745505906640956136237084651672110000837673211373676485273565176812637222794180563439880106794559375712310815237298517109501933670918966422633018143707941961980944270418997170940635006405050481495482903809497339463551245523410330998956023700650510087614543913250581533567293607309005247263794965183536068408636823711290998219296640052275378320060067353236832247254394061452497249006463496909248274616218277449552600510281679362895203686825480735472995960355727380722625751496122255485206458265228878699266623775571957914675329063678579301077714719235475163777485622961562327081659499640690398561801002010417217428234428140726880833171706389628200157024082682568517271899875858569937709426364189953700191202790306784211324896263452806228669097353464927256028062647499040656026496084610286103605393495996302539343247387749233622204797335627268086467301001886569961912043754580779841095077979106627721841653407309217939286776539996511514416529898087117603582662224715486289333073258434919920580985506928124052997102782827973533862483891516476731846401521670260543596274044071802448867814239176087094916804667451258290083050927630953241184751190838491050408009733168832214067162706554339448559617589779059956810177082896539570983530444694848288138898601626120833802509449529453206069693986288998703539022424451374609370856552676681408120128988744463454240637869688494011041502225696362057755712556643723285441626049286219604029911035479761099494762092789104291484648605762295516442536419669485568836214895621481346004981685338918622363551565671289625456885308024775519704947755944392304784479019469079288326482994848892590011376360699298292764861707822447434650113704227881500557051081449472053020784365306102789936009022304908145021852190446917648094975484826053500845338260400302161644019325256898686101250040684295407913310699200185227457634229535662271480057822975866327100329203751344158339107393783599898127297344777170617968272975308801971969250732230150433609135021823933173437759296545066429584017358801990222296262028845749459621738156778057713706442385171998884465610490835764351369495875597671308128906328286472240225129723805516058775086225367770924494275812594025953520019370619802973404607671579197641193644734056008394130273936258889087647254821807567718951000157874673735318496616254318688461206187007593786267492537774748110716373483144067725589565629808138304239422598637370888222470743850573929353061230493006105050325301646295073572237929016523152959970470296659040230060170673771031626225799820917854524492480658927223284243681133883030223053169922015911185958152810603829237008497538803630492714245798293315938601638091654529106421617505580126661748005264327045576847184775078998404475848234076832861378555786152343298001043957699607461375963372737427729082280240172854775836596703944563893793071188996517743168151295974899582500548388523211110404270733710835813983895997930234018345039558606594528939459624673188111282797456187344480112067415270896911085589029537027996846811012956798595896055527100292766763673527373774853927397564537440076943628611520439066508867975768629992549580237691336253604313974598946788838462883580690143291203644829793572630340621354197364079175558582004101268002275245046370232027544295675775120966515243349915181904883825328233087029640199039420274447043871165952370191695880601417253712646175126714286193695901792726218330943509187680449936925967326220178801777779036036608633145943357696481205994347416437887772391352169901921831484619696377262036520469037833794452606583835740129629763503123705850034043912235200126125434080135884683037474406009339820593116502410429434842726682230389510967453423408446874334061251238833423392647801555380823087312678730732491376704932488248159234750578558168164649655207287385139591761741394507690390563807795040673467298161488508190920958950061233546585693981732223995795459496653642390119077802498308438270395087268335518300235394070756997056124221737489917300609308753339549097332908552513499549431707308490483873848811264450769431162037876156202385026027899007271501934530688971390477802311751038953279143267424249340063796374609891348158855016937387221563403281496266568523296049360608247185731657533903881140334478643212988401649391502885182490802070371306864137102664900959461069890863464168051938661463456060461703522107437185691352134598449421054723369885196638861110010962038705177053864342765329538876860456931262160027831997327776392564382962860276457014354358236221959329140718422793911469829418178592789147939955227897923555301417093645493692496894550900160388393082442559120649615615236370789509358260323269909195442834390281600404506656595505408706625114270064336370791859665230798679699359547394946759801236882948260017788422921514888061203808283234517789706160109584481165945656631764175818657521213059646095470806969341310049917798243363174745076520618528063728655745037450297097491210666315931722124993172050266392795325140808192885884937213164661194459360404827123141165263838389470899058485400653598118894404886126361396100188169092819021376584047208794069465312784951465834232005459409297575521837334113386056456695140444739482480248497675109211172440650085685949041249285117480733123887966764265307275318363485337507301274058965435680798000367752140290341666937364297146794829818191697533111743518164996484301239867637481900583832448821508873331426206076812855465036153992889119341638103447972429324460829706604348104041680870462044475647571145540910551382511556796625813689508403761631434451311359440438091962272990596791486044891385879108745594513938331544492555804098962544546379681109307735253972469306687589919042734412895390492930011362150169874482648866014588492186327524181238081010815721639347528641258714263826323980529388103988583113888366871448822148707300741434955495862620186969111396961016280592393691400063206832667987211480176304499428635738708895557835427764982815161912265532340027281685046425698516518024968330683472039015295182352599423576050793853493230560315125361526425476401454544221428621910605923564139074258080076024190765684130697670281404606886703013772372474874960058945964172754243697324388965555424434359636867647492170232770632226805801086541191991747116765833756218421595047892759285172983970902881255294723500275980592572850169775940295378416720119232904503603169433342785405468598240657501471353348078233598499934986627804292120027265920329376728792205307714659143731251953283999346108502101622675864351283829739669983361965580730604438453257244951534597944575517308070050105331770929560776543799219728170329644524760922594535426250131505787332563677528571003648648015342065878048123097124343380365297011083257658978795328188877531096390930347328000578199974834685587066467720854798871504622770900224793005444224694135091403385080885976543428567703986237016094623351339060366820416213981922679352015940006938509553284724279895863852104601173298306832283044696968042368894943325685069346517216601573937075810723371508333885796714601530038091331932666273004573752504127719387971083666339780966610789387435029767993206350437583655328535768619184663713666924878345503164623802031957993265856235363498504547481679798816753671893123119670800287543566378948984398735601821524906520225888780193461012935627697101955716272249971542797894612466722595855326338246555347791230494382431975860350999717553993011756492378866887614371919252090381858137316434888871993171592577602690893812550168225416962718305923769965058652761521127284174294905385578169228719761971987997962312242628693303808434349771896494216481092353216158815537313650047355707813065565654251067937917229986907458250217210213608223059045320746120346038461851992665896832600021812906441216395558283264550785168694601417852301379987272005835551435899593460419634486948339141472059084319213193380853193694381663331653974253502353886304556584913016974254045499767390901848974179228092544744269838766801300182762629103821748241938870048970635411841604035422569034638856869338255603052834101686229436774391440297200604850799216015694647154640376812967856427697851007824537230625507136482273794694431408791602399908206465559821720551613808906488860159914862906851441580747856289773390797801661726351396733732134899982727712056137618589392787498624468727497983694963592125722415373567773356257703055665824568699267741475081421096115155230649912234080612390480687691066394336832035683768711696882119471181143056202509088711292570896123183019761783284015195105169828444736962731575363012616879106405181496916606954979080907839348023162298491462657367836519772648449078453688443008483014122607017737174603996745898700450402706570556931696375780608358531028972802386597014382793939549003928920920845103651547349663971771805277589742524962832458960569065902770790392322028854740221253810574008946744776753544539109019683149914065497189091109234677757721931342483135969710407802805555878301101235608193824572381550023199098921433709520285762320164931451984895767844453840728591330164167837264048983574778799956964614419498835334871346858208258445693872299247701438021130456157660546804817041831683865526142089264689042862401258022888055722970179245909458869545086171418966516802730253472106931933408848042473770728331796356698782055900911224839824144367655169994927490357405025065895152513953364667240330656818298474453820796648093498635081169690357975870978275801764512037765726805148024322478724279485488362074226114598337650678389008373032324289212330287243024567612452528072475920326131649401618847552668296753046746489185783693178880223789753087474669438131964097782244314723829185449564924331354270082561690371626171924497712534969576465165320272880074476016984138319826642182087961489615703648965183143914288506210123923757853003270328037508380390064632047153778872979560966770140987996497489368554396301593358141136528421918383099482025966411034142623463216339477600907412449007321540961317733144729212660650508180909588539587565080536642037791033341676190598699132100729565958877511654883950122732280566097416415068809141807956220578371931210298340652455606860549585015895750474948135947720927403295054197698235429617104296765282839054886584014629125219871874365561734694051707160727207660506039528982182432180789967708309748597470342605749849333603106014308560958851799879429721558926244348242360380388764184754734130836406694825442723052804581148152687770052393834652980582649132251734953296566445906050366917431664615528642058092108818294014059769913836886948290610810748637500371177730400343262824551286334989408443995793259114502370894819922361336151670001760410077177911185450997373432398520422744510546146761726200444748136363734900066551587181629276692387328765608333740467340694923881276133426800196139703376298234164178499199738285859384018274340785049166618060193236611930012533354472324471285968780155674510246175233380295924856585433825850025308009741278121442042346363167165132481074998891943059846877191255986827822837008245937704159997836715126872183792820626921961119181620725905778667598325400456450811621930681972639008715850454372799837799077107669362852015216433880149440958162453347562368647872643198811559506704201465184986327557372665748504802857048020682152230725926867108358974913730525966031257045402463004915108380401608831828486535647120585891009761999030880411653529186353110468621158600261589561728002406711335330920114511941649238513586208705947516156711209857506225852518365153971860718811702830339013498006737876511798954210709079562759871952981763505984642685487939197511790630905848048545673218121916061286332910132987996075300420662476893019370276192374855416714715763238071071678450163355049531590011915903947470353445862636957385655329712378858570574635085071110190457606754486579917282757467441484362677938064133762248354533187659421434194126863355763773451864065078659978253941932333157872760003808866816499171955167822709467681417768851380613488071392379132122772695088994155609986321212377608996373817266296482958557733450994443315993658818457346742843952319041035186656052052665597607227410191134536166063639032675952338321178803477212646124298331137785260511810028451103163559946275319151015653964951530033430868031164457058185057482546766544780920000775285423508828052848991435936963134828271332848049241213909163379931976325376786264031899772633039820419472624661556091527135034555460270570974284364534177264799508513874593730534740293280376826846979893711417590154944983177579503470304987829780878002597071925277003562357052199310894404377456743035615965106174941033634270826668179222341304813895052513399795459951467189600381669628812915227544381946468728340883379379726786638848494045796346105886911160923998152982074288170257373514051286582291525522575351677040606974824863337957438490955784586592366236757101400968092810237987974834903107916279315123040730324071149862408478167101824789476340919804669733439909250709564186894574704780745688077595797921408628469447066439436837031808996229952171608106275179965022214759541720799921856699700638266703456106533878264484946276094503955028095805954790643230824948948138374934722739261845014859476147765937270895959861867613449142880075662548177125436761880753089416209097155145524279973950999725528734512651386177162260364669626700423155828385942477029064110980383451999935045693531338290060327065916157769689856397946237328374206622075389658863717989637630979125904062143691295813149722434004044985993837572353060015259196433207441437297309661045935557013303404476528967296865909954027343848725858478973309203046670595253167799890572684414229021816832591011932657550498036857380398297825840093778214719576367873144440114557388935519749665283880558512876787758900474607996841773336043016488888633176343423212199741225989260347737207787943377789432964851350878064453496224491796555049826786631061337402229944367798836174919683048200520129330661314655853632055607824453506863435091114907028398373743558368757206073591036517772499269385411906183141634967244631756820057115215084605650814396631844215270907360648876405833052397365914277706533030881948235928392385443406223673278574766229177183947102008942597979535712065880918211466121050450363246984436921053860493868331358330081651100496655644607034028205110190738996275187947106296801661436182401976092330595041832915465064241859982702922820864340406283113836941876671317491792261207989391984944525864576040043368213264895519319996426851882689885478923314755493552981146816269718273817941226853069971142797101130583563411401203192454495341484022881232922439535685673653762342016140294496671065959697324998779752120268278571086761148566349190193718252535330308456494006831780978056234413933902589942177665005293172622836270841040509555204317355419633712304299308639081762486583047139009485875689539369494296527587066541432889640773637658412118194914562301303454438016964977369711171293932001938518366975071465736954437487523687671896960915584872574282218501049026523753051389417483734319292822064939652312999377642072700317286501999684338949074891746232241374954650927422680626191697105387024472743023511638633713800596330183773486739263382902771342302564952986629271429773448540400218688556724356289724522801133242648750031165005011494680348900006872688005367842540852384313200907899026180637344152255413662777953874733702694368925793752560424131524334290089764152104244981510890323122017532638888686892538122874487931440699292454560272551062066101099648679790641260616539395208187440831944981820189673828341481912448978936428574902489867038963402155799125792653625353554728232371691208179738210399663105880502331403948065735308142668659960133315601315723423288264008545547591610670335657726785853356707525943961333299215161181879228059526883928736146733986780564524018386656687367240985388940409585469442242919848383689493703447347141674639191401451295038458448994963011664422928184875007895469637288663263482082057675870822149943854250572357188994071188434678002404326151318829547022667287969734781247397041474670553506207395223412895205685073776428546712328319037274294414597890919693885325722538191460417030782987546785410491124059540872050440275866969596738471353672720213625961438197333050214975167484288169408595783403730842632665906991830028440405293606530309283149932791511093206740179131866971311539729635866052922054607537115577797178543120784028950060743122343981852243564882726605165730765657144291109586495539525898147450733944300206456586846261541353587073714329298800411115875190625941579582174825017037342421357863450562350467770750813522975410154949254651042174035267162733064429102449025678283203240388286145215141126766209563632035470377130854369050593770340305389015289630299839291765855962823346966882414317419394175398062261559470477713870109649881903070041219432878830131671615894041028826951204479850618188788753027572411176736869313735824173128355474487594036915979844283116210443998710009925747445824528185737311930529191716338969236200455182820260251482573714799580289002572454003905184556078960546337424376071323391798856827572140425775603439030801549568440107050288154464714245911713484340670882568199277583508075609318508269579058256821393931545883735908133010112413352656724699074021352119378047901947507708934575149727513062947273942444728941325986884144066259331757170430833332115122133771766773099305782352533503699621513923879432391338872774783622125807195156557242223372987237564558166587399831606138723114486825153511000609220132840116582746615175862129781801088578780502427739565364082675706760241981538771676864702319177823264378121858631305440377167940941105884037135116085294523416394988509352602409226045589645746532221920640101405306110178221270387698053202739119699879939040095824961046592915341947041145667245129340334627721773614909717389066331351650101536951438579668593494483143345419961545051489186720332314443043026047214827225380591886985600749862835203237997618014776186907501313368536765409905962633005486798315535570115497504641511193675665261696274270445887878667926405342999370563432191516616285512784579164361749453282266731497513802018086423581934061991266895721205910975861575502421928865229785862090002937466414097679984077704715537979536720724948705495309173836279610559689656369262095943371728306776159641410642284946270274219297793483383180096578522540743537048234299817627125653986775392722471192285307381600924591490668053145663867109323266044800569468042098854089676131468291544043490656743169058402229991189706545597191821609858980860389265307561104336013469567993196395408465793208671144767335573885361179735176664040289487147433397226617954749336399503673837771279678554578641102582995886271401617740580531693697300321241380808873809787198188936462465367497218246922571814190644767895143226473224781569246547813518530873274244975320340043564704262322301704332103681171664849651840705018123483015351180891525167571458462362169391213476452865336894424721321480576686897262533239474982210033809328992484376234278264042654088021902890069921491468083340827097606124922940778953705279192563771214486357921091241058992494329376633735482731663813027669564405767231009169262099325386527786831508720359838472342704512760828874963297794335882113057594194511910406614724739603667659097241499811974042737467806058854534476853637633491619817143943411062726697809898763181811346382202432761119252479857045590036937126555315192966160041690741454745976927877082518274596263435703046534949036874485497753361527365430039206883990874202332297348279158085147642569504319951646773013921125191114175736967988251492726918538716581185180233234274035929712457544451641136953046788653132746143725600136093884144845722558063607080720380696738449618182888416564477133615971004888087354422478624052643319987049977032119997716135310517876986997964091243509997577980778328491973627536610099872303391297934869561922992757703143504802590952575298423442371533381612529968461973319840117097171266756166619704629897050648426942855944604485856211342330496387597353681986804315915925033054166528687198986938564627382557809577656630767366571983504852190972601628448985040340857731360751710446252870951949610927165203352076228910997022521321545993468822400061554521779806576459781960376338691404995604091470206807165526234207227352831368320690596420307442645815795186122442599120066485655976667849487995308159017844455957443390743368143751659469263328028717930609239152488353929481033236406242516759721484037683272129348684583665856792563771288001540351606838570630834082378866971986011097926249690855599154498972753450093264640702791552136770384117995705002404868145576294928847973859940123350804612985791610864405322931633053515647480014204490931884214234318129361425242941909511345165141285505339785129280334254995125430964081967674779360468357267200187440234135048794743890332359495674934755098145421302371234738867793887440239705611595970439932879849106387119197964208544547332672792273661116490100661762471632532626195333756263901766922933968874084283054406856470577959047638319397095148005235546109740837084490025059158070300577789301113308803078654608950032578393999168706516402117205891207164699384400469559851687255144766115665327255448431511315951449312826982325932576376746596956968186144016856762686001707788947294266652650450235227354454520943647518461778986713665558034234521001536628393629121054476258155128424323261186456761172545174600020294471169485431032587273868120080114715473109668531985464265348545095660536805919090125983058183491789155701436075543175429765887784580231556442857723396199507413362534837123420556862432999804268244069965904792602798877077312643304520617050343809452610777638498328094939431874782424048504039489100425512579667239247833606921780192118421999323453344338454823380571579277216104642804666007115747082847580267608987539021470867324990423635943903607014152212498898057816136951280239789665099869884914513430126557357839498551067103248165464680086993621932364037713335007621868527363573913042828110855184347450490521821554179891428038836353307717104324646167779526504383102818466804904338886653160212177565535988088533811639615372887685655803203563328063573960773580901378714580416378345271260198022975063834158719621039921847313071733572036108061048107051662827784987085446540378357232723626347976722733493068086315438305738341617249742883215825352821704115955636839630488563331249194367804401077230036926821112191610891601566437782168023920663967877335210585209998955908056678239701108863195931507381535476699327982677191012795786586965524350091112440917074798624794286154246413305020726824310023327223525804164643131407469833940360677350050920028253104843416452418117812558719450900490090209324616505726836825506347483903322713350098887715591597962352154659847784630562793045061173932742442555225051977511457450566651924745710145359933986902197289727203504929037489233557423057115322421745344547052060837410590904362439316895629258336937865120112210549496907466636238523628844285193182843747538056227161764133866617218220571622341751409289520804348313335989390568301731131604225824081821015350199551828182204183175516671722221010320202771512415219594956089585920160071738355103865347447530013724058607704639759883867827919227936046501174957451853698136008445318337448889116461289465951922153593751096608127374588758714742077759057365859696428374600517156305333628864694798119139698509939005289372578363353230610813136743123444652472838162789095525140546880923449467438964419872206234480999489272053322915124196476160751604561993611552665394995243283762782310915952814198930241715289534186652489155790715055074063966795467646144046659528769592325787894075212651100310058896557000065361628834679043223444274974266096565178596035173341989785748027303140182113961218652724254809199929891755929978195048059684803746606377424965180855208804368079722779438115421832502629886584302552097331572429712217650881543699435671043608184899581260318647673621692016732658507970239251341993574766709349257263113335900762138983736373862380966799089032158594004841199244245128454882442485471624362376798928225457798034520192580141696248083192673815924771031265209081066110648184438681408756374971875276283784762492665824919571818488139254957646427650585625805310642716304601059448504060526028944200729932957419954756465677896297752195459067925817613991367512245255700026905323337826755557723627440277439772988172498048504059841507760441631496487741791650384029201542561279401447686318853881984965642136976160177800357751248297804472328867063043133813366238665214722498569831416517351759665432444661499018786342537144459147086626224576750480588585600766050792584797829658664107863269778697268766875615125272819650855926558176003863254869026673277261838334679710447306599042304522418242119078806256692383680554181079500845091169479922371531491933217912074040443273805558704393269114409831205193872573238689075542316771683051649073828867412891414305379009124375862913866332562273707339634598664643830734044156941591251415522944620298773293037323630957588564783987114649431682565672285950517485149679873680366363927937982161696047117478455956724897166799313554811550800770812131217940673643980494639439825843229055339238493294872132158409518622796802183609878341534496631490165285902581363267243409882683928964337015779036375465531810735466434253829922764062617337422522943560749464522854566317107165823475351314025294172769729274866687007168142555816283237949294619766216302576803443138531333127885096155787478135829120050708371647251488268955016777383605354988789382963489267714888164764712461066444541531559600735712139172984347698918346781396370566643554534774526035904783686728744081103377009622798617547741263796723747891511857789563126148936047150506741463848409480974013343351291852513139854134623499762860534976275512410034129632885534759502960431758153732555771135037021582714501271461198990848117099754739994836765888463200732125118742967084070871286563548397308255242552879440310640349054410394569475580630022827036425939207171458943017150388805476336025202119831900468667975103792285579394967560470687073865343213034262793570815567447055387373869400877229453430459758635952610412944722741234024496542448242986380722614114292196714241783374107450140488453782563774777898657055480398174174114044259488948163554215051617224640681884963275498345578695358525392400317325737453937682644601485741743746109882415782912899776340744319150081493819258517381640770117007341419204828899868272503812152735614827323855349201068057621640788343678475077071097138267246999633028180577347491175134623078449662202064657536271441086940646214218684896196639083397913457894710394140486105062984835453796381455614395607379676185416732943033638358666351265894774206989909696005429132359261865412616544148783641191223751786218639270163305301280836099939911844480845595930730747155621958845624698999296719914679660559359330670074790482142043182522833230790794313897133430909066994887034869392621172002930164824388220460024450192431536258300406789685306502321083607605744825568709554626511139986973163338379861814177768561709754048008839951636135260228646394552330704464402588886076840565276139409715261591262805712200011881531185304950708012665406382939384710142586345640407503455634954057492139653677360659380957606658581699078467450046313133610307803412772924105034832558828761155707257596711227908335295197377825640240210618089659198639230365255549473956645333271261133012048128305176120485410947081861738156998847896218264038434006547113592831762792224978246926879740101242706541003263506649332451717497357013166783398666257243207614571240349719849889833199676298659791813109996087616924364425076578612011870561141477067615374815294376795532779486471115645391372288973286280384969674782681672656258505103135159103478411348762432655331809978978718199934099921766472941434436401437539225184052173004856096115046359875666572095798337935233291531814381201545727071762170324379082005557017825116502830457950784932282878098962618209549091364392285560249132068964233962469892116755226672410444040533735095958297184020749220072008468650402684633962721890465122644863440590158906274808011699448082898681362408424663239580148637667662677937752769794744869120879290434691036829686482194289420885586640273397749240863260175440661794131803475279435918815411740864448080532160722078643841419170592454978049192922181925133458717710434799415974649662576016282768372177059200035523495946271002012062977606965776128608566344451630731257863775050731061051763248203777082552948090944186068551858823567585378238989077311327442674952663260916756111085911471552535144631093952868830282645043762140276671725049922746026519557238752435033920121343366669301744094742409856769966730836651487125467576237167152368664375300617232756007069073468533744560669973141548326043971617498424051659461103089849550904627876053677526566121036100939178086952221936850247170613311501153525756696215461576335798000914786458485231949630403547635627582638960323067480991866325852409066121456605193165577880640712432963310649201180697035261361051735152147704538453720819401821326232603815489606078379834598516840368129200425398059270429225729455344532735834257952644682459029372998907193211362570904417248988722841957165054990315047042746722914379009135214322888589437861473716817551307214113850138673410776240483442148946017145695929964149513141497876430109380250287814716923758273193919150813518173795920621741343524807690236845871953718132111892205184310485257364688799935326687925178984952097981761172335913297667655594851392932147536271385584175674578494778998409698098648100056485101391347677451800452873377460325804511974930538326298901110446277440942518196846479769174282342270893304739745641978657959970372953111405946656035221641329223697328045714514533290348884670711687495269183602068201236996481305203735251369196091837474972804566879530988407475576054040491853442232190514852149788467995479700986462318757832732494425343765488765784391766095216559484234084681805750286684268671407910535558692631242615216174434948457906854052022535053450690756967131179205092711666484189940273226139856914625945675654364141782891807668713098215043889097227502039996363972580279009968672502181843628431598509429690053862213254768612926817208837142528652473908036567182283700260940956702328602666308120995376906463207870608988476917487581129200019381736831547769997193929352517730596498405432839192176219959025021309951150118733940331557745961455190270819419956046830322405634213596345288879520475746702872840586978137665770358173542824818701739075656702212158491599117232332217043166124979522923702379325248282638954774632975964653483800062151657230835554228272541048570310915874282135041531022045168313205699209212093133247463198076262136710470919013552500740828251236722278498859407354471068429952544113017979894428863253027112785030517346647678794465004874768250936370168639756897152215785610530402465780542547047143472207295301704831730874038117533000325241465930047772666485207376831603149723071690264368067290335913511839790832503319702200804104198063048259873454307423044365112608374478027046187817114108341476882775289826897321736389241265483655046067566456898809156313948317972975147808828720794716059784610867700137065627103834230234191339909130790761749024139333453880849836518694884357304747593392187200982373081695974961220905893763134247031039995396471852385821066296490748242047944232652558015355422881133609361342595581771792503122801280878206258934856849176947015274332777099786578643775760302293710559739371549250204422791945712792186008502391110200372287328102272562255968959071670341548406603107914854111471157295201471749249758512972136522202595692430208731364443296861839824444734128793601808485067631098763216630346390056081998979820090854917802826738067956774722722779501270544898004205611179755710589667374818329966707152335569670294964709725820160391243212657184474866440821975458500636466019369381931008031236911601062460831712991731874687474745032231557845771780260697562331871845803131756864445465613083484541070681366583720740369003545076372770486911634411488904759819062213927987297722162010426553023659636435299081952311551225246464158091200839215383663458597606148970598304380539484243829610888576176957281315821013104389753386397669846359401770884187712302233914446830426176438869793886783238935530619631559054620351775650232100790999303267792362309757119108435433947090434994702236309535561558761789175090370321700265546272335757959725356294901184042963657835094318468197878779347078833313306622919806030642165039298755317011170397596680792687039597502914764383702780275404998374272919314962704829108941821736819440514119654942381938586656636720486384268525385477261904453802397585074198952166762584986593869888982896045754238722882123145007721819266069652498975106325526259305692328584552723430373788411244294001977170044117082809938195674881783318126022766282714935795320251162495047472948464512072147736593024583846645230885741669335210480792666201754048489240224146462469733110681712128393155447953517209385299293311487550589738901921290089806778469335078722894709244362619883879384700537979761478786873565909148915381525896768009470838445054502268313139269609113639208245419063161022694748947825500835769760134854090486196429626377332712353594216327485753561425413120223989701199045123117456452684818986195207474068424400277068090949467219026801787567614984753384555452393620953345589216083528350310311481385830028585756832242886902333370584197729625656710424746634794678276196738101633178044775843273573360794428240195741306183357393778618200075708322971343774778418206071655405197159192795315449815150844922397755919531100081408203091015347059727924889830984917528396236700771064415839478695868561868112990088764062669424106635633836658170463912100026328158492700854960981821092701083181359875832290426759018577142496678634220547209315029695350125256560580602923117957856098167311200886631326892170617160773648541296939997444533494893913721853709166153859702803153008533966132143043055655846576820404338482674387568961979017168165857850256265450964808310525534606888494833942505355329074847745052400212816177322387229491155020895974308840822012370913715520410896506171416301546706067695546151573824930815035674434116850927429940581359408780827662144466993990149399145511328258333506125889643745992719246364678646409509771866989054229378712371045536581486732882060254924065823052928719640999231661057383903384188886350984506442014901705027038501280768895521384520276079824144805090714663216316036813620052113655593073143641153529346588878154359891296213337757456448219384529291739729081729359598545147189459219010766091094198941252801097208372613476773947347730802771469061020016150262932537946251626782940912151666502764235900097809266318299523321290923253574094414384965807548128387958754152534412717523199819482873696109873206632926493865044154958732994583077281113614878938885051837900008135964315316001221686583272920836308748510755516917151191795207549614199068249960145439425829169943764203401623634931179011813770297435639130438663068548724284303790762859490532844281552208161875183995734708687968644036460888876197156506335763883017659741776248774544321104755153490142673087394380897241364349303248555227675797882368959187598891534791762141540272992078814138256608668124802208663363597670782048135323263593006724483524965975865678175250518020629443289210751248029451454404817420250504549142639818170451354808311822525475758443533641662906533835020532426859125832024603985232502726100794861808531172627324864965769625221147992466018433206707788309820458989489516158452866662100615280610806286194434098810880583995942813970429289749478018603563827249883739635215406644821171763373851188753067707605004192411215117193980725457141515809074869093305932858245304784507157858843196287571693841660804682128122552517619543311115713057848765826019849608258663534002456467456682250686976903932717443761919529031649067236587176073942546948457202071870873106924878906780296705189804537620678161973124553887218011856548982978483284121734410119203734017309786667123446062223493581934092669673866945764616706509152870749890183052933086201654638294558539448511457751249938095905625051592859956340069671853177401186710787372017636500941878425375877706566664644397363792993883561203760000859573913067340386840350710767590772867452709926951522316393017761040785104094388627537227438459042136861967715981267535611569609102104074669893740783599683004808875219105700787159959214517450696285874126239613031661249612907017435239965308735051292016452087727399275539453813642047171157574989502851716452345658265175093957403048088538648836280959709603750194155415908081450171883504487282121042508179252663606293135417901802130986747528278919886176683615817813397918457095730028305905547429123447167500480561729737970318277569130195712244497387415733613374975437966752966171014836972808275586431968434555328199655468940646075037350703307024338628975956539716303264127038326493324371748911975227674390514433245226110579250857259005806809477398227973306968808948870941497203583492505254850685649081068505962855931620777461657080657269977664959353046936853650098512850632953978663488899972218834176866766431071701519905573755662165979519658265529582621610546957812833099314421144907163990238701766414397360927365540310633032790588197207020386506285927663358283256626659162365704204193005156837239725983979769474952264469248499644263823186865738342499414050600261780614819207123459449644278988503852080284065731870853641963716193595051335205223786195096240144642672720280853330635667977218106983017743130368128551592708748032150000611184172234723171113019599216813898238077781170100023759330244778466327075821864473491324652498232551265789313131613137182256162535457923842403637370755790806006458792122038118235346246916005792219551064898765738628223664473759843641460395602128107739492788630084159063148790990575771699362618915071120478491220639926535724666698949167952073342771671884666841602593313151384684681781562638014325124593874108471177552772923898832616681510174492957410190035775455967107646697965469500067894682512286280245338589475663500569999540842880716869065419868064574716049922607709625277549128483286127850930643838241739526964887727369195369831469296725225289393636533230471249453635762743549495215751325779735978708249026149751415968224018448146606326322402438348490079997459009866332358463848478181352215570026393921328451742830602274980451715740564078343847455716577625268550457024416130541105415575012593646310308845365885503540766148472554043233453805580618092156448256465981687714486035263236581873961172162130877288786996003866682468412533806058661926765860004500504669825396757081143945743851425018193525488635671797116242527380057594533496469134248303031675973726497822404675590137757409723037323657338857526821409246454050580889828699224203014553833679019158883871628923299672130982335218273434544828553941189311892324994922389863103073940646353257716737733369037928619339016476611670654712219892304273032813296694633267232800805413782627911228562732518671909866647486016951363282195591871595965484369509180471972218586253696269927546862634555704601546249243055636383572471216987803975671253160529638393480078038497440893163791360524004716926590212598992800988457990804910784307260887951682648491222668800016057467264487265428516304417952171998040545682771775445054262128789645545876746669228098345765246401391243442445700928926870271227764248772276165052744407435980094051308116303605461883381235521205070005737696799524891625221085984226742171053924716569826468964574447942293286683622329077518916176852549735186427920080534975481891797835142169536410306993971286972393301879713971595572724701086017153063159731887351137953567817933482581924155912325761741074879034706751355341236546542434947817372088024206937704983154576249416311618757456461348417201775537584775864184167607544835694769489842117707703911244181301945657933576182070914571996753114364311877453665974592658992279540379113294509593639633317430807559579073345746698728446346221356983850441572173478288527105044602130110370404895362205573548199684955642485857208134476972855559797153137753452375722718520172766960792247153803589211079223724356093547036907811684166767447115168984140706713030930074394793504993973631923527811104216285142277863251662852374307555204112893642850536404537847329772015312630824118668226613584510375032658423303529465830562438906545456608022911310458058156787134414501756994603492103509181929761828146184983650536822139839428453248054006747177238977796309584379313014149216796000377256348265599426216516163968351239036788317978280416270487354964008993031113136256564601175932969396023649798796823439921338456045050628708399770157790522776320290744870241833752615096169226722315305978338893096917882773076909760583917316636670967305452798348490298523622447269926646638375766200118833115304198696017466406709113270643791107481572710025843270575672310712676392441153706979656704602756493300834718854278653577757108567574199973256855553047219889394125936442822390631129613464852449949489347148721982632030775622402584187253911086384909532697851815087758114685525814742583921712396227661364795037626312668345378606231302043650748245442995013613809275413730122147328210166824708120407673003854726861526261734477187294239502356034169322429950064790551532475879251921446971827478009604876279133964320836127699809658830659480749485124536813982310198779341652375266829655092468825734345671529970544044912671305419612357233730700595471786592716587820550441534475009024316317746110021996020499919986455054727840087643060665159200014147535439425504380417438993505899750750467547558489485645394698491619907512768541553890572854804516278105828774356643988783174088587971041329261963622327054317654115737631547465997855448110781194217223368177645169391768102290391689628712118097854270547137358315047073650637703440153032288820137231640416952223784249894668135383979226531577841222711550005667223473901690423248356249574068417510632912702850051162348776693993699430096109467784950567734244795737111753744268107117614528225165684761406469406155984767969762524375130268855335092053101665500680016417763470293986926050113776238322333026577952107100412230748455177424906622315297346473722338195203440159777359191507074176704283636650787403185565272880425858735731513579078262843382090449457770780543379833996489520465545394449924383743569223952019461908396077906988300147231707028901403781102611775394794875013721440726797380844197495030775246357632100655267503531313528163801770620254434653382182705189643235362894082651119773506822775488012434259000793968218346101980845930193561944089029348865685504858865878397368957599610191569181972016842269991379640397621720619493349544884002839356648933241401200095178204432886691380852664636888441848456620978078047858463853934502282649649505382087413540782693548112939454027713991112661180740758089034609794748424547526896670971162570335278185952418045858112687588409137830176487262041329360358546065371328953822598773427191290207545150664948345004643918297727156437399297991887490047900223888185841319003723037943525150940862024508253291207207884931558783797268752909979983312918990653087597693919020512367959272585338451802151157356056866132112750258317115361346591363829604607891672836176183005767449592763095114538560783632141307213857415078682648220842833745992293764918005185631636216795042225885096466370375695211227528784598951096942682374166277386384438247678194722816424041101203773848826408530410810823697341820510460650350405320929486095206851802246846849940772040803365080819741877468193513466277261103582077473700688151838310412822038490748911484127696157760556293877289796842930996419131414207948605257561809228825267248309917333471679780129664297082138213222773810173206043456029949995549297224662942561398454924045292267899287970519201692343762534097569251349172722104539080835720496532534010685563017714146119476446977763138747968324265589081290736880219367633522559048911879709151776216120987898118196826317873435199604559101546319930738199737387223212690767687810574381076203492366194439837048887788292751679881638159437509576880451111632904609207860714173294099755235785112336932041021797891635032154482236870377071848661674865457626082159428928469581945253401612121655572994316984509010205995802052010904744626716201300474437925372847265997541518250419253284582610951922830270219313664535477871640567012494080551618246339542831263483571297422711841459799498976983865949208873632509696339997054089727822280541119846116603593719428044812412176758458127637577073508883986124444643757176623741124438138142551716092770387992582719555980384538043944716569137916593597921054113149660033908413450543550799202940714836966251590152501649559413766806603809561748170245278265410195926338103830951210413536639995247946437069033243912378417644336433827474782884885902421367547010193549254141798856080563716951821138660460282068469276168854745757083512466836887055913538812304926860718162349783318683282070990197111251480550660503165296705272828810240862912603760819505385109108557272828786468090630960083994858212913259075938243547071640132778069834297539942575641938186411935119191085013295316324814329261930639161366724990836721518868668118213195004129761981370370067519672575028260105645564286768795375962264180701002274268869575782051657341378750340059874228296020829822908367481515431496950378777689865249842015578818241037134408333595140024839897214688090214373209379715331023784117205500159883751120234503486015440020603750269310587953739146972820339717546825059018344848141073073276071432285429810442762076429056637651126675549039636454169880170696416014499383806513838935386783297017034915742017466894390170659817143123830526012791429786012707890856354066630528276557616246184070664709978719693784623917554956395566659453992046873251997717704874482326618568053783022357281569520546359142073960486891496668934809749049581802659676969816271420841001620844529029914948529756070443390464827206616659966903088508751152534710860132716473637168912154430637772971629527171177519555841955880918236421910679669887020099974461106892053100628154636182125049382512287227018784826968177320165207400939968818272204518380804168630313889930794520190545956898199591025287600430962882054611649742433511810110456951395205522080835731630455493766183416576873092314145922781481362325617553839480121799082333949886351748693735604440341983250601135006059509838845112311451395559549818284726493505407898530861644158144847465890539888059712637884606485918870072250788045890595237578294995234691319411053999912710940896375122998852405701926784050041348924839808352406289258239450864919415666007597131451837906052687874113908828324333464935089742733441903006541813109631096122066335868361479999597204866958219763600584058591406951259792886519550537285744591701114333415990082334053607389863512402577932791458110717190097205615387692974573985854342948680745779744770762362380983293186487682354856797666501240212223061564486975595315507476434225893017655068455237317730185514359071939388446215709255914177930981875022254987063908712755165616734794359195200892768881088078590582266336520014780715412764061463819787793185550238638889495330932934718007828462173001099488908570905501907241110043285647043414980942247844454653160342655980294848589097293073919665599118201621302333379840874240665090851244404096570650833801044519886642420793315065813478194361863369763042306823835330677306049715877591615002977415728750553437125999892113682768735694517592680282891147265315674869325659658914867287124379446402436247982325788773277537961494552978520786930598441651603506703017794466790418030609889466670591248086791330015507466730208030707623981097512980792778123825817649694421995402285230543338769648397870550360704691878035525276170263987751892649371584694786678553416287903249949425195218269059425058986181789716658996997946939820120136343194189071938822685169491106097096465011153752585238346888804172681111164062682838367161144790439461963812089704494015582404432243108484179580893265181730498509885570311533003459921368930260342302487979104478245590844687336999093909464597567038896170965604681533849852165198812973067393869721735615497217647986125251205276347503169008174537464731935843104652404745214960745687774536466724915073520287522506081844005131207452711863802171748074758917285863854472475926254106631339756468813920147013600060339424576049413601066458915379771952678098197643770417412373419938952932142297166296228019272787670140502622333825732397672717497190726042344345445766222030762743353271149367120553625966022519188422409412178917929695139942442172325777466711996203070961017496930110432722568240878281152277280895773894730458500298648808506429569357806647264544353670977794906949587801704304076149500940442107429081098379069795280059624222177604869363318872733050133662643839705016156547625964494329364709027898796495796676361611353492474994338494933284781515251136080566562613759304723335454107211646738383692724773321683606335231993518081906378402263969907761362938748090004511048580610842548505940145232839480988496307439360371645201408163636057918090611473743567144627731430960591026816939382503608053921430656386834648568978319473670093420842655249827551698690647251844373095318732280215106354334394234630981282534931256635167500061294914714012284240456909941020318195889242693954796147585921955590194302889618956546494207935925570896495577008847462555095913307151564172579896618572293061598696456796067812895307972026819909589838076669929062504042207770859759273075013444076765527001673188111358799913105964585210305205278323656647224183779882680070180880534045405547483424521194361742419892581714525683369199706980990007202281896386178851702286196150894096922927936889094101373246560996713763180240741059112840318044479326788262345481151172253209477884645593110253300190424000292328936511189009153546225356046777528372627510935880885544220784022115006598492656855383791181556547057073023453895358354299309358351153679709466143444220121027159713297717641199389255291692510280249432578353801228213421433393402286985011700366873575498405740166733277643126805638416127759924716836693867528824062572811080697314119026056135500029829269307620683891063193253727158486705211637078291443548940668066351622508834679618213531490270737736883128651258341796811700884429021285858227362475772271485660643353547719904273504849579079814402734578236182652171856070182075543365972441489711859982243375412448679097580476599827687764712706780724495211356610714607520986794613211329533752546573743983012513117819207561539047238475912539263005172658171132603800958360283153378400130105861405250856763476229659706255113978952476667106856640994778644835327026795423874723689887779628187888378760924850885357851911373338509212152976328860648266949750135203970238115987190710870565330503510868302189454556636507826404682925073215939696279137898006228581243844669255081119699194846712077935570720924062427708052880118235956447232798848899809746472055331803609669995194969562675982077574462821633487828966065539395169515809815106265471708361268771352634002418766103075956857853215178307980387886890751949765871791473969079741876319668655868879986710752594229080573009502192466896526556608506460660290732407352129277413361917489894418937356139536117992215614676365812352405821007788737779338147791627608363727835747929723203137753044242037281971290617131218171932324466785449234913843230388800816274635850493574266523132862506936242822628995115031722446617637086773374213254797415846450721868991005194860869905705468045766940825538063369995522937646302871456395857180623487773359620302077931144037201041114557667207947276178291305273233174381955892294218024163962470741094329778105004235264741811700639638068111828837359539651548925651665809369956327092787722234185724866150754515921991525511468176805166660401876404980952437151063772730932054629968820624143304561913582421297899947714749800119035865701726649848604193462785958501192841318796602139974237718195067012339353069905336264336357870586498847435408021788833337847525558885593509756875611951630671325697615396167063887184888696029903548380078880872513692466985162602996178551679494670547967592250611942429807438912880607977286898377381242884906871644865708514033682140271336410842544293049154288785019006076718084911202928571194299631409814318349706838726779264688735866452426099230967762415196254582773058026618345780230879956442414842802434562462611467247722743297858404610666888385202412217489881309786327663268062568244579641203845481229911911779269319458451929658332514267109245146001252507718830638892603562997594822339691127234058503102677258551772262238633024685561542291045843194176701137909314401879436235552047730302711202130049018894493207276321033187175303481115257661289878160073150776359760105768024246806245519667284346780630517236623743752823450689355259213076175772389705223630525229561797087393347670210943918186075633601441095475913216581441123406648933722255947235884826102090315041806722632886990481635055919860753328095775331926180261047804106333872447106101758682286763135832220533380726998420483178558090165263067365516872076748814621390617830429307003230362070790110262600850511342878790288742610320750067805541526816617846985263827480757566821231786550296591311883950639277493079957945937842140991112598423671413809048659392814455523447508971584268325262415154054646594995084812411494068910981318523278538795838837723154077717306241066645157270845684955844210491215855946188722653799027173279513209164834734848742300865287634610468562774545237319148566051668351026938684670682079048359649838273536572103677936280009365077288810455192541736458927610045632232589722010551690742806111347311781925572590993858021113118795493241995024572692512687297412949287668679397642349497480177099810228486150563726624012961819184929758587601941102609801411980555582140916121321571322211900580169246540712630617223165388327064614431789988328053022448016406816609774422881214900415630816132871513670827839329478881656080443162855952995844529733099024650140584198213123987296241729207193483248567040738863812536096261744004220237039406599843613517253358662625256017766509405152948471211913832260279866628408957650877679938184304283466807419123895399217830455498020405244481441236974985797487716820284925876402662719921086382347359658195575754554122548678846304821859176169740263449202381990959067937816059478348279351976597501229126480729811745590390838118656826614117188126343224607639547961048456522374353333348253270297420529294128041551990297009288626345388039309800250849132895741796002787448527283149463839077445156967391562056227282578873789922738898427235068177862647877166353255174049897758616208599547171114724956770186908875306636947606780962569074286149077538389209977275195154883776831753672817034788280292433566623099843033762290920894909286060919609403784911967821226466766589695405848736178990751185455330599483766805353647318671473963808617117198172248748516221798713225664129506773043553158891325016649675854902042470491588195190711560433200057255136030454792006990298688980886611727571637096235567513398611072732752942294401456474332813983678206205663872999337529866305910826982092764698207134996373719293124320658079606241123071102716909952877462960459790381444607221421745526261394928384158295543263368722885677876444801309375585442330241718417355190858542189447722419857023517612365507547999796229493392039938558130865766006326174366685611640825466430855545851741455004358492219073501985965232402133235190035734052170013146601176834848337158493656745000626654427020376910316574055230437809212052617609140950412215386663218779046011549266390939889852609434892159687562539287735564458556036107292983814400513507382447587454084127221223946830339409533364110739891321185550185638517263738667414574630878551103647755462929370443951502945531290779031830073278348183962477689117090940345061653077374156186761579505559952025560443544697315265222597335953056360164719818384376705974140644127680766328896006585451697478828788239615491458484338723491440302917993906455943623372713089431074326750446093491305612687053275818947777509571172557217669128162744617178531665756919969094437641896417102020571152857128493931071445213023766993147618221790748100088081246914652698739664855542395943678884517248586442304938516073281863915529966229103935243880855460916662284687346886912810038425564212743761755444881594681488539544198696449491403336060613802169920278022170942802346710077567321665976061677486182680074752884102682037585732835892517814848471514709177538045613415208208645285870818253092775144252754314874209664992376582895026176025627073738830089874974651988211758160095481270782088890827289248497353127776798154667421180756964425668365997867883817159405647130368028837288748807668396497241132684212294049771826204310988456511792476592383559662993402260077688617086128259626194217648895254552009853310785312959104592608959172173420105517980360882514370713053308635087078859180595243961550131746467519869058454512606141879949650966261775368107766565413946525229802601108625301452734294892303977517011265839680519780215478683045993207783917691107347313347695992991370416113385722177777403250556077456070376455000573918487666042168941782920165403719448241411347094099883053514284334617354986972449475665875573094550500723036919250333941713175519541331295545426507214084236803315241408645214934267179500366100567410734040703049765718539052841415486584230474410174442127173267422353606382494115330621527913699309044530824925112130044596997132194539824282866153993677191300207479782445850885896109134656641399117605370013137851303622728210360568157596015353515660735127654380007272429973428156174413012454150951207110493058785164676083532719444280676157881896881526840333408269043339082323465703836673662181596457250230849192944826239750747629576624098964424326932606725113384319069274080832162979849294210068601478991177287197763903694996247616909685166266879491582306874534807120273310380285241810935170333286845058538638695003908086657768473690675068699839444706586977814273627771105839124315785865905133108257134329977359985105991019443702032240335009105594947419960336508080031205281966551811762045406988048128291597339851510638435993219626269600746583954718280261354496274251048231802220544045315202300915790406365909441403125030248285203023956954349355266283915651412174108628280812404460405799341802172736226482669971175724035071886333891833470762689331442243679887705127537753717806536792902025516879000488185299219021034536466382370646798747303192784458275879385701036379848701090931919188980315872989334820229790760035474811384020555067044801121370459816145983005574585920061492218737790251559751484677890641100262775318878845756887318373773398420171774419025080652287445515611269480327067514595088747410963540226826767710701758980443022038913589062293757863001785199562627348557056872695268152983990345822015145424809384843721177966864197138992832138018620011694804135543297783420616139873537222002367112527759436535904998304116316977591768487589595974280412246537470839788392544123585771276639047641343169938444618515878407990347975583055641636335662758573775085113078129044773778852432231840264309873103651024150624877274293655984654252163104256834796382997584435805957920028931144273995060030973305435109953544162080119893015555458073106785983569372317897105708904897410179886657180371719679895727309852373583407284822810112386599099514913715473365137010249885130561221122119051239108801480499423792024949121586760591291995435858575075183553021021388407435772610524791752484861466901032718804900452579932451596630681408939044690110753644020815173604803650352876670306862918709702100142592292582321366546447350513509442272383528146129190249272772416710301096285337076669505234396437672323154340239056887143152218377865908034665215069799211770595325744317248141731710609847304686577987114364072478655421950175702259305872402309807064468048393134213876554953692502857047391746983065614414749646943593061503685689420518515858242075493259026423595009148512638147636631999976273411101707338919947480106794643575216269858914638447197199798837058643278719309609667473259125485880725338540285550311314636841430292894845438186995981812719567915580250688805215827867716276687793281663303588530707716709835547988024586272569355489726092355566406648180200310689445503361247295223930561669337227107277420155886749048877533203383419253456288863658925682324172692222555886748409466308329308001041379358346217165518580382822527893757259028908222631795458889798475754823243081504204439427063535254591371634192460232920406212352229924651010965282996921366610414341848520733646990225023667085093205386505946696921744664229160318227525195248266353408671675620838492134434359700140819051152015177312798495282591992676787102255433124277358009956360904750065768277398263156463766529389526414728791013040963711894183499398110115289950802209098800916600287780034302499038478525933119139857838723273014429401808657442925479465823840957922248140626308328059840359932647496501552491461496605050821432405061081260141934626309207192032692033396427244490629420803724854105566210145144861878634496696853177264613961905087364953339310938587178325305895632725308436310981651231035446693096055446076076775492310454778896796307342537134776003069573332154288079274181927755362658372065612973800176462656061177166194062133724126652988022607697562519839629664128958194819586782461046425864066282748085282020909789427892991270764707302905730918380401911902908157150984665542389160306989115755228826208635940016382371063223373502543526780501173433196352204957449108938462254692033923315957099929046156587211334087669074939136001159023628025267781153087349753902468060533424844141269122575606790745405699821146381813692508959277350892338628254153234696144655410032142202365005909838620050498093200161523800936912193165844515715506840917039082253533661669846923165446277396510410295807297478264960727252658147154747916321929635399791009746819289508895626860444797641238378712540231048508283932584954123819913887151589323488956242944418857415882302778211583323838887952178395753428469735177940092803092486369425090823126287258926699576841353784082361170025796450738163949973404169810186803030459194204765233933199137449147902918665994184954578930616100582676260849281938341709793840120893752919823320448844613763711746402680640499039511049295517057384353502053458938884810201511780908352277365690858369533548837010451419611369507131055975414895545757229273199153975453936079820707839586537598265143123882060877518959035046659584672573852929698064774978019034393681328740650693115063458091281182855698994315920163964673577662598855198570071752187228489469915308793007559494065359992060558004142240611652536583001653654425415757025374561978315755466402821449880997671534518935075370202326881366234949277064400379645156947148951257000416451680903640680592077971027605825053568893137938891721028785838951933820414323264330280876994933412741090995157241342942548880247901799644019394278901725105534499591714297256451135397845709862103927107152725995024952547677123394351718409612098266661691807891354595900430575589498537964913124388574428590775437902288566182462184072646478109032917464703634284639835003683566314872661454428201293004298269248367605537623228936667994626520305531037121312408888601638904268987652169779452385773952272866730814272597880195660398221009031554043464091579076072086335651555157652912226170852267220247246061930350760363121773681914904951460538784954699043543112170866986053786900968202061268055949042733953312405667320912517656812051216454968539939871388836698006154326420927721187840487291241924949330756553801555359698638671340582793341808740823537140934549596875500077856857475953612851952541365716707209399632501274176041018782416628241985012712189246299616080028437499908435831747452382194695233280694595860537244367262707604446162779293965537427086175190432513280162354434689860043988116980272984395208418920117026887790952717650075410052257009434009789357258966200122940076527918724502548103134630561394291714872858951200394663932981287320765273723735560319217086784215642924068073557759629565465298850776037479716517744522339195005408358549649404717099644489255359796009325414792416819334661249376612503799819867536953844970967686360976627910604265719499046154153283694479575781824922236580764962421806469388738106760178702785316424434115906643614946008575626821941218837530604876873240163462649572347246832325859144789933455038067111366946085058234600416702614693221013093933214197257565119262395020560974147025092644334706722619496280703495905404195951990804294465987620941513876760182054428904036033535630761152200482527083220779836099304314496269858286613871328448413657070729089929950674815080915735250538396253394098479717489957567810636559697019703902681781242311161211707318278666937475829886828778165338612822527048464025624715869028899263598698900162925409435792409494745421063284477836268929714813090400976219656020011455939476642518082030597013489707238619549992946587723620121163687569364065050740716856777012000163720459639228527073096428203953700005584657642073844485083052669158405329654390543094274000722695313517613575323454239424619543379571792964630898957813048672928751052154195666530696841278001546988379959951594794358974210794505226085709526757145981928355520162307951905666001280872621284451509987102770858098693283933769862774748826292271126686614852296904814112855706480496419668517767578903740211465853572069974206753488023887634327435607703272464348345941732104599576717476414482959169734702058688718662914998829365192683660183154595820787898631925249387680242853219187079616698915165538192919909113548263070371828163686739973353365898563341023810228924727513753646901978395615103665707017992960165206741550694228085204120088908641045256760705082541834443547729734560689588299793693740526897836113442549016893785639194311170126909165996356045249818706694698548940338125687571992154740263760285595888872307052846471328120651225790803638905886059682176239146140853045372458304639506196833972466045891156900840250344026451393794112835516871903475486120386798531227034972440551127191719789694810028021755021123891830529806330399772366510238229264801020141152368904486733906244075759225560013245439094297537160374084595884626587565882272019004425543471312489917049767554732035473298505483812611817934077920876787471115483336423811742881069138376568223847922556545460546883422298108895390227478707151286572909236140775843135079426147101284933813812617767876649646467498158302727904916465777454821520689908823371653795658376594754136125094808031595324947120412816034364592182543165208995339850592402179621098006801332972620727722471796002801285329381631473944373779616452348392959529210871787481393087108342948784543706471500284131714985451423019590868752816305221030330252610846009799589361085596670366375059677392362046410306579248719382324788079948708687875216967684626258064295149927948465214208243884575217420174146534154171785651757715577927023401003463703725809917454657260734576361098905363050613991092090666242152943392512563073040690335456125395485951415578076145095671360117905777816557674118418026154062278199545522264737368148101923192720166540049188042533110775967933096437671123383858636873868269167366895828692755811503089844307597011796006251881959466929730926121108334769457040629289889607163249500665644878320004267123010927217439795331137412636322727634831220145906579863153772148900151178056666744567379121445557763217247345778293529282647852429577744154766367244134138912792255705707635535205182414264375547422690942581451790482096205433054909368137752361872479394300065491361205116878124841797134649165769536073815768592536300026763135675452816992842464269779082996881069335937961760380198190830557078420356111409666821667668135080922065002145128050866414090269650955272637946469791268889634800551616736260693007599531912920587225760285929624481766735409864370211591312245286654577925645893176267691239224712954871297725592261621887489099282106370613886533033603887505305288967401116115877156760745140159258374810536336903029854845634882535619773193326426505724367869165722777333620411523367658734037381638983577273455599976877315603923686025834624756307316637857082274984063349857559967010306625306475725772974993553570688639278707127645866898770283325794888091838471592389542989961126378697389322632037142922431330729064027056853808673117496100682323336788073952326224908266075911770116374965581066446689596325254449780585715282153757702842519508775662752296588657005256562594880301360672835083955203013003355581948712424364743866446346100098328343549137469440983105435943822438781928346237796209077908587955502060193742183134081892412892365933669151748009175285118498914753242158113380258346592117514463298544301910999035623990171999018542278273712350445010781525028318777875671111385243801688967764345734370862001913687923213297060608878220802496363048680005312753555697075120348943976828422935340687448426773994132787467205278347200645841116609433137185217445373838082520921435650080719783714929359808811457266336427927685412969627361221511486254575781170947359229558503248555847895865708565965421324121836691795063646112402000274619319143664176946010030485427443864634131725590329434929867404000478054033248151337495150686757104318095344120453572965341537717123681101017947933962548583974627933156977178881898472663798570578339954105353028696457245248094055763958836353302775922817722496889357306888218467746596077892199800384369724884575055450541189078531760295391941296178614471091452335778620024979210932443554832747131807016851105844961525233241349544214072954481902039689379840819200420697378674532385363064412655728870867615176311377025996373255431658049763915178040213593851056927596264436696466579563411926441846363624837615859807138947497456352933317457866243103815478455068591336580287298336550041201077991719740760755477559378377945458444820540312224231576573883938612630786782339117334999417715667554844675331308000535099149454048500157242923514768307292848533738466773327707029208570922438599827238714931211402356748679844582159222954513947182910191714516369898666133814366914944346201842481762411438306671713820448177483719185677532127054522787144294818595370982867794145479479038160983319004244275472847306762269286796500609482481932245133058660472358038590246097143099462179070790336756741433794520372463059103917715228019590967394734272135176528908658556753391480159573031020240167973817954033425615679486914307319340308757866632090071354993780708129066799377934269211126616748816195691981420713635487047317335862208604548927332302743368714468055645293732148326147042604963036213940518305221204177370897008545255832686734217275212324744382062595711540997910638735602016936524862861081417600914199600704032054008500202708518796709535465775352220208527881858095499656532855948081678552998429879126611137726683691074558910285376414414249365973132652156620012557418801233789833295496674171247268987232079385863501191581499039025014023243416984248666181310514787231179272136324268095992359841039885061353463638794594873444856495751530626694247276514786369987876597315839708912479292663502975732896227185559411320812304665972654494894677356318290336803858159711153973521384567980477430549542946195117345725644095628451808926182671424821115864518682968167904571995087848697301965277255039456564616416350113096980386485079055453836572904597941666372154782632036260582027949283832607337857900869673285897816456045358261424307830030228906416567768227729209079782341574833766470389552935716324290823151446185537830648736491722257457091395917062939584804078526084821010326512014977174377460340132419770825592689381631142505220110428480718481922047994308340976333730507138618453082998844543624747222602305203328272200750626744448789216706189551686246530365613977562842065531595500834090770892625223906457336787621346149926292080659259401159213077414169482571071371692838847003331681552956955311355286227975689605383963890211881720033299154809023793016502496815615646233682997623179629037788685488620878889340417308106776513110957887519958090125533269290239008520136190292300896566558008185754509790047082089978135105448547073907559143356000882901664358107076105040087825971243843514194377004951835942076752014368674916278069459189927515872295580512521585155025510533299416376624626650905418489109959512586426572186740423147321375900969813957063629990516844691428973358133245163646051544134965787361438366804573726849231383644795570803248974087492742538650450223708369817726240962444895132810650631722876112281342851705582388037510923139472822487664822497627266898526056049321249906399049986797319647522021996232232797543370479292331342506193206015931219459277945830436752280425850359627083363978491181303643052500317260255923915249741902534852236671402867128275559833188338024010757253987526490994363020997366245138754210846365901066316863058174605704810421963587457137143254424438240474238806812357396687128682696813824758796077809526273549678183118815483688520071220145113041847816695246630696383364844599380006431461673015862647917717637516579735401952664472109710542733762352798988074641076071655573863686786598017185388815807277451744944634912304490775230701741785299593054346840861039489474601611447833378542338029928529121200186005896310451683499136968607873265485408737559417851698690845764742440703032024706618279613812475735192355537697092750118069532222047114767087993369910750807632096655234806188051085166767883623902186544228630533773008902590438185772483900526716772289448528294725334242527278923884173293040542539105932244301455631949047390935931899887184859754361705053476508501109905204469120144765045725592138666372718351726390995483807856340472137060469379817520154841478898110698114853356420915116373448086141618789921201555900110558011110302745754241709703145048361722010893844606131278688556912780744985510049878372079778888240579029502566494413482380124065398606521015396804253112571761681118919816477584393595916029605610533625472687204579146305285815942215190443967330866586085664492541410607361703380171229762744085428727007815959795351556279761367648667155058389240196270821516988755496704835061770340901208352217117081130526218256611003899331844303155183337734368653004931494675933034678959723116025643299072951127848165005104738316323749967830874122715221284829837258241277642490482534009630085577362396197812192757769580808599944078150655909227933747211015032570804111111840802798801662532913040245045293658955316266650632611627465044514469759874580932742095897103089320820333835449005724213094283883100799253890426924658971242685509198632865666825084328464577430620836127466104608398450665487798300679694649502956606678305121207107020830286269615867992031367997340218348940566654079715023589814684310214940774146467279520600840829816409800652799828572274060477764083511203030183175763675475128388535337682777135933617933885011899195832049857330407521747694396773379909888476194517257487050044179678321565128289058269775865637457581598570548860623875825632517091196185042222080200359020516919968729773339843858323597589505451225417511781969848213426028402591595636001211376361378394211590176916304893992886840941362948854535789145394576289107130265524295154579599214948799323908229549702152596027585692812152659600875265438719171458358107838652437884457522869690299302435250172911245425239500270830218157253259386682367544502191330699206131615298922126062987098257185724660235000583033169077917581098935113313269623056918265418010966115587571666772787488307030970348437845412711329654775099223846989358763188160813533063902550506968847585660941835449896833109349924879277002097736002133391382456983224507074239865175123396859715442860622486364233275151465971501017619749308675477744099044885417311166968612567385146792252494148610760549285470144186387838459021031690090625124574993687062997869115287918176586089153867450453168337623961323621262981497811744280451317627444018552175880210349573100471719825436475533416915039959932780396600428639147364311429102139982871319258992833903947679098804695421699354561552128671425934205985516213566570593014063285802348552221737935092280186821361864584804145096451413854806745340565247810189519573685782401319314779552047722626568798050301569733077776205438686690466412618133961798591206378038865529790729900598203697161909915003085988572820526995324340143144894521624827060208351062597798612697403507157948036580370842347629837798394229187192347825295514593764812511106517851554070406039929700727516376804814669968000163705581633597077954530027798657425332167257394524586167764611936351460730702728792158064572788385706261306545262619269293389281154862652539365760360799801144109272951854579549844308709016243294675598698137422964212312109226256945035338917526370676428030250734148489594652507082239592865127789755741467206156702975732933335948305642126894673594527481918542394684943459078028424247084372914265659117000213491622905222304384976875549225840509787199725171767250403183291236145096576566048091013197477265261908030702640088152909525533594089068050033661196057688101250207238194359177519269757145351784960111117013778291103107383038335146823208756854848045779325160328993518726446073789412832471945206860025658626483728441344190974033925919423581123283570760694567172932748811374306840960236045820452637410348616264181066615219769291422367971717215986331420752514738188623833578462597400807138013598350531992406394203666341278311433551029529611601526782886862525645157014077986680545976301290368170647775802084405824975586486187808273323474357386889228544163564240685989296801720633652279204569441181287087313449041781374273150872124627324255364888353358125337065020428603821701818830260249590971099621645316172792212397844467949590839461461606083533711884345711053154818674615261012053203940101762522777565056287073770290534199503467859723084979525187882512407020979215884565026708339980662527700943564614001778915988149937147805972491759913059114656903978983993310953768843200172795267938360465416084434763321781792267308536096654716654879032930188401627758526273274766509909983453471461509581621840492060246196025690920841046876174453905015545187689814098614556910454590156804167139277518866928948887688706547436242444379992349290310804576611027529404909318417956323370893808931664276914036181952363558597098295297710636553870026619738485291264353594645687167102769399243916629164758866640551285428482308141095442848711648417841381308436222544288824537063825704759986199609584956619131861651341005609035145216152788471947532436994016994438488752080612247405799845300066994297946979976783907354009196184610025682483736157812831643045092070924280722887071851383215243951872800070014611411274408513147879692052544726985164362075775592429856020227461718730881984130076624542606779857200011303148595741860587746756579993925170150477461369111006685869652818691389477092057972477110454021821452936218878622546345682729924561738013612400157139338866437610317058544758520090099708374706761841037861923161626828813480494797042950822348417724700001316011550588025367494028154281443128754155500535830654789135405998308980273562370762225863232709384570309479893101356254154185824970869230883690927386626289746180837603316064905586002390004580208450147110747435111244185725611493423285751060424697422482329106482955569565161915079327371011812011109862669099233776897738815179361533466112363055717811648644421922589673344058786537980796655253311394784458181480484608300484663111958763753093367402491359799566885509507696980227579448639513504239235190037253976646351913814193582024099907295052297864514355282567325444124641846903867049882778827344170689089602467053293686429506508570386339307805858345370152893346717116174648806430130903968583650747596574056741542149858297621533276991059778219202423601905291636081159052821505332304275805693236791932446936726557663748009484615460352421598577770688386193319355042263973220634587442886932424664453724214816470328328176228049783778109175113179695393288652211225034824018710284393469196318215403129188145349075165137960954467110029159584473483344434514168529301109005408155058401433889283353429169310738290212895824663298259035944644837296933269543798393630800970263710066398759398393180996592361293801987128693294541940346278800059043269381045760937005262163018650417385060206356947195747329282277186048409392789901131450670824397389735705324080487340527093877093070235353501323139785544480291858043457372709796330338366801511574203376021817364255944428288990165092193507931834159283731738919123602806066222252895892383595834128913577387062023811740789757457593595081486107166703753983702005274202253520826260041670781382966172560068657167275892135624013777574283087162320456246302130957683021411535935410220911450086835376567142129912788546557131616631815450560876391698043606569021746346210806548005413464827089334748274764510852992812943333442587845825648650155107654445277595994851894394944839835889078085419356927464186145241238522400943537043861306642855945920297824083603454997891398822144699966622779516326295944466859289927071822888912976448183219995393428581552960202374315450028544368676526595486430982778697910326588961070900216146199421898223173965701234512812970683346395669274890782489077019803781976639727658591061136209008473532544857891551044254545800412419722571740615591881914371872769977943168452652282605207812605528996004423038755626970433571392117363528351142464750982524766687734253249535958466734814917026947299498984933317764071206691533160690945971359802537308749181020050198467104145124180736442506774456250562469307240516967730881575097369955490898437432510617190912103564111326087479973171092778861705823126675927447087719929768196500766486984072973700255143471901036843610864543554853956091521799839999850138039955019062406334681857363674910637196821348064532561752200645136632444800533509647857142596008508812950603898601871413170341219700316721852347230852542252544586296454513781325424202746451029532747664817447686939910052540808148216641957849419473598600098498925127297557616790618575081836061709340859875039544429467343441083024774891579759784468974015992557424411295427486196658643240158720096675240053971757648456829989986091027166008741221527899681159526759756139532187844262443492894952023549078406661089036933443238612203284833136448924263195652554821832014281464806962191780462785414377224499233939098137094700029869674478361455700304285681442022821935886630232260881988758747311719287822688488886320113316478854267908084033545836799623271710319218448977012623710059860743739576213505715894041958609304519647975564758476965165677129489426780376048275166918257268383708020780581103966680393685724973918603215111496347194578800523211494979462340320956995683064738357942466185272740458414713484741372673794989432681502671217051386422158129414120597555412665952752812846784998470368567420288334232586924497223038802520948821885675745127299607106399722004205702391205790175296169156427935124565119740155099439483400309111546241470500289621284851899009711626934900868595656533923216279929563906356975189062940465123675305282985522217443078355275884186735275778719129228333093306165466078857752832353530348926381583081149316658612396164796009610846338735803976270785506857939493228489599623436181746197150217928621201873923444433154765347459581127022752432997835200310014299389875188551386098133963396483232889610943931336499838710886765740347927775746954861151202170390603444160755161630707060344619490328284024471467937893985051247983081729468622462384658092040781893543652665348791517339658750142335463803925008087827551539499452393753860268817578946849347481773251884421447510184029346135693846059929235484509417349285588958415875354663597551993118079162931570591587445110427754608361627723488273605597137614821778340799762824732611843700449160865598017016284805153122270856654829672395897759379270908223180474298740819126999947718793570291459811756558999357764197705684048517322471543196615214642004436684286946763560103257290917065192373052675632424280712359172240489595926461691322839931636854678546036194900787288560993214527276163026444795584355881346282921045166619375745287048201994664856499876281581913765602263347071150956823997976818070027684219726092943364383396366580410174739985353943004658556774860712192932052231032182696024358738634634623222689732163969323015468416370389277745701132857028837565138323865516354280539439670864612834477046706901968945750013655661136600612239278124976870489155527846455840786240745225269083518582136273937971234905282526080161278147411320300718696718802267693848882821277534094295925622215042858900606168400807940695543564633988446304092443751560703827926826394404333967227331635625633014462135085208127904613077778719741536203110805108743309352337816454635713612085704559915825715803577734471331552523752659223732951294570327619011003441745503477282675345442401196772643030218075785521977360587427291923455237843333891558639618631780850549631789478352466909082919217017190424672321417905516150014811519072978764375009012958618283697791594977909860260199281023505253160599194608631211178889806797709721679923664239837183103585940684068801315153815634013243947342203400484705489079992406501622190506083077823370577066556090802823600548111302924499438108779071116921864186404425551769654056456984503802289451667607372714820104783328977685566077606529492915576229803328314026437214212280894811689737986995988182649060212024789217546623502445122824191672264175613534265657400293689775070308123559128989089488056452387077379790871188011532356741441845830745171824906740417843980393484539884003407048107955492655342699496870816152714491932536630486190502058625636960824251992141196019658312148464279353613272450012693859396377960147943714923385006094699295785433688400391231532889192394166110597765084215238581375985938056998404548674593631944136295244781219639286762490153411182119651693574088220504248628773908093362297925816521968980470974341453383218063829299010844499264505048435867670630583878599910307175181705916027846405603688065287841784903823430841101622624447438336260151739108533008308144904947578268273923937333757433850815604181405194521777469237560423575842845620814263080581033484306543247754737728459250848168939477320176839654027348440186226466177255991743122636223444906968720925315086406153204022686229541817004504378254764676650759048631807303985321923293947004541464692017746064836505566206701537110497707215758309037993083736104818729936278792672973330753976839375648628626054578150774392671646000351798510338809393943878296876458435849451293997887819160861806570071942624394860908204824164881787243504672307974115546764635150792577963677073062834310665920154275364834663550772371372771018996540452365159734087151298285152924913224494643871433230845289058901551789370429609316493156235404565989229700589660287910576568747821191465609291236804774828014855754079143847495099796914345650016446434122200892898687004967416323018634273547815190063714383486726983186506841114240547887603768533048090859250427127008475980143323211521393000743565783908071396881259604238155372277476535653442530061275869681525633063173912546858324404734523978783604210706830890002560416053215033405751751301077513094976876374625088574423426271944388682109009912039452741903299528444708947728322471374460465249744099584450594355911548844499549295929970762583226361298596821059452219513293555099947981334636861670510014813362016001411973070449692716701690584870617608312848478474742036418850905152336427205962138019805857943076814558894892472569431827786954773264594186311661922629236673204706096631095142355669571271051214622104155922095269013091519860411553704606842112007230532683393830928512374249065512925614420126084194181201449832036385990488152839390455689487994928047882491543964885992397788097285507044646978272318800833517968112612080074662097107650982860885520578242556078310193541425965958912526933835819761189759725816645682241387301731936141486516579538826838589164684720233934018999758180204040817800991467851847916436882803822449997929659367038458024267972148968659328551544041228802576785983567963650502074265297499488730906505589127458207500941485084464585928566403762417909464279801052915698523838035994089143437292170494998029036990352007057111521029329715188410263058651735481254464503373369126786700544142869269949270068030882000181982340790054973044359416753904748627710587622218919149004962895546260885026697183083737169154297386072800519967098346849663561913986703585578436369784447942736367704028307635641183622898421962297477363533787425785233107205769832797990299165381129291953546781055979810494218889751973114640331496183126114396261220941359504798937038254315090367807355888929690386617510340517099493870808055484249543301923969483102661262864593092282606042648960365089949134886175155475150720445590081370717993721208284874719520778270896304791728094837894200809702257559308580768957423893389537879925058278859770751973757527454373069332672892288580858426698174639112225003640753775506196185020089622340657862043300731616638533854343236694526075151775254405942957732881114528846046613299074171434889341083829092435687922191432548123397289759059353206737582212996612446820722598339677747824023064188180603465105143577692554488610276211170015303270165783008693126441415031077426376403292255284826109359508545971751994505799594972922320358740405518099959074158677895403787398466327696913442550090796916488268018013391622982644095087642845947996440248640938674698300649851585029864030221920108848923729640162778178343319899442767343241481010008088776984285309381698140662060171382016701116048122538750584840399039332617071862037748574223511067639308094890616331057259655633205016728235087562422845682582054804431522648645129200089262687448964899979232785197811837312569273256140128742416421151783317225139608451485338514957691116568379068106759499401095098147799312874921733102914042695997190629997275135802991015505542524971348704473889749335787662727038834914048807483791582584238464942289596961489583434665440623383990429088321824640568954848378001588450782966221293512325156259560936581638364611401575138784116322272210198078325684008063863266573308356333085062516949583455752471809052510530001371753470890292547376811502929987217818004045748417822036302543650311038841921744562567946110500667302489242028698650129900924774200719488142731328228691222890332634118025480543367278176635030876810567548522544700561826325940333739104456111390578826183168623726672762359895714575071602558764983408402460459309371913553716939504256318628927593752652127453381557876149141986356626416310316712970791108801253121989807078632397016102582249810265797677825368468169868234860597794072164886306033045974704186839092685457581166508609787379129372019573511844067000360927429244259082885312559894001043890261262174723218213909992725345032089464780225931488352289582593670822239975588189281183205340933649719547452865985607289202202081206960211968477016468729242831704297054482925180649666533005955911874898291679385038820072222324675825141264323984328307420030382575652017558563448258718221190324337849110676839458827967498220192737135670650325091264480313104780632623736915901490835520738288774478594098112202926317067216073150538896355400041984283556855700789876833529073949733295199927858924766150779760856743172126372998101827173650504588218042399234903599840667083167366577196621932020837095700676759353586339036823374655137384431222184940178887890921460997797190894879092280687250214617655115332609950087748763913864671214282551371441989005439165267804186473040192607406103380694954245670576152857420551023448106205539257161945144757437570465906516977509491904646431814896925210588008969831639951183308958190289786962127585677465012236631143803064393616264256305661388574206794513699212258535034864657836249506143580123933466613081783168873547511247461509985322722446936505407076780273490945403089285143208441961483603868403671685061079527036749010350464080167846702281232056408823614647794776288023531160465356948871092234311835025618620944367828252412737298674601310565104285384539777903755154425854584042430263899207038747177326067714645424816359816468686153959879702275783784514561149400367051030024859111141888319263578231845464747712923228543758552498173296664560283730496504802305434852858973064607424105677619958564761001310126841215817495073256169239831767547554603859576552400938633123857011812177641855468156170908184768344791393550743417394389347217569421439851156327807274621509733756283550977961131645301168281926273192615015415247777678056278481719285243519479917481989265664350004184866826413632883300711274714424008024151603566803460991656614531772172873274863342522920176226823524794610915678972575082549788419275992468508099985298360174973468290410909006078443202498794365491577505361864553310283234111369353078650887015346548269317315976609441724155603011482539016626016642437960240074357891900830196654820495805823203785287226341747947658729294841925865396284714644915409669900588970666307411308976421507982742891800642870441422520276044353398704314868602584134242267338256082106268345351192853772191487517797821377627792912143165265287709420487140640832795230901417911704726431597448167273047278559194804558642019188331396661111984047936941303613194181837631082451668532304286133697121432767388185429206528376896782617815161849300822530253383650114959113460712312694224064339119929732920028652294998068809380334908010092300051893151501634830095325907550926737503456750009249026911551284631777753477703872256362776285414572144317021111683370344641523738418683088470293514515476643691129650624107408133816566725187262451378438227918388807928003981650625582424404808595918037593846767166201879309731391395983134790869852538111960024095256524614190861641675641620863546174961174539801356891402148986558954677914362973381479347068597323331646090344862133387594844089146473648057336241764055365543963040234342821534784851401845408948967718289528792599515958521168983261811757830363381254861383437829263229755289655964167804748516717403441322764035230423300295858967287100324408181786606602154187383174360055463196433415504415995476397543983046535528429146960466422053299531614679749158662643900219457363227436940107045154419743527491901911397669017841294503596122018777324502337107969349492063419725716134324361592311727923794255866656069322720110343662641789757541805033631286202965823562728863812174723471022640560235555882355751576773126210205827644848473509300385219523429019750303945578661339189086177342637591479934894565626850044111764351285382987567693519542492522173138650030347370099038298173410919250551288988245102247589375070137295791991861061521362609144099100579982044163882544150855969179134632148106718259954748410731811729951079184777419098582211368023184388765638211708366977868767226572079245936740184173820481245238461339564509171264344120553424712657553230274969701217856679926423318488852767951072873071175071453654899721906441348533886141426264279019924989751079026313561178654251451218176655481570518717646031938406934313183268295924649475916416141035784905103034786400103943470034709981189767508189692075619389848914346049600440063685549663649293768394673052033337099704322261085914826472114991446500624118535470577373379789272133039069844900694415215308963670429493697522147114483640665827105495578295353063512608270942212381502645808652012772619338796885974421960660412318587384860734461068262023689224353936788519294692595595919433636514844476606691431095707580996724203414694500770385340383117740008400238333761838585274459817957395737427802733946030293140385184555903053663308254101285460209638279868534376948586591446575077325279247006043941109516623834606075466165644165698709073406618223709510707502098439076968438096377279873003636949820471481969604012792439791537207265273404345428777175541747564922413937006674343983733321798510182347148431752317390106698267609515980135029108703799475992396150230769555640011831383107362917628138165953815958442858081481977027334454955325939159428825051973400021000125093050777450769136579372035252880556992890237616180887614575670693211351949608838770147710453767180939314756114511397108330720640026168892337554397634289252611204131659930032879079957911463938960384025632515130239986547422282756136124782541479084314015185147177045789963934931827167487645328482402331600394368240851212907482288426549247429683178830760266541759315845536769702723284030753446812282506941601429344094279844878785809230888508328959097300562783083357469934109202955496686659173901137996691851867905021175617499043967146302964946399498148178790261768292726351978764872197475816087990118983189131693865532142778513930794491660971920497871417466492113295863772122173603450226151537478387278942793443014582691093901757694473640245212546954522697144252962228948056891095698785295433984699898554519426353664529661313656675004730635784498638568994478452843110426619120461245854929094441549223476167545377938420328169916903501322428581136074766107211455871669178365444485534487089280575542201024290008141414910829408376816233274359077738922722998927662576227270266656009463077537877893157471231859122242038598839782455564734351347330415725613904937124323542446701931836172948902201824498962902861264555790746310256357453771982474278848879253998372092662757443337929869743990161933362045862688107539018466238628044077665488088975047009032641631239098315848027174273611014131133467018256250067356145629784693284723647869520530843607972196168203781217454403440461780548815690308173764198926762994685435197057378597077083309025496865375658198892614138493863569519906823122606868023354700503872310394369142265280625573543200089186379675604956238316135791074324513285017234772868508948876909394346056552512241825939148860753973637346405135563434788639835736180120754361729105529671475750772679398041975768299697211806560450683326445590782927292176213580358870696067223844810998159484649112170214838611183419890610203059862525618802418878704236721431580311324346223044165096372668573343078714605825481278476062884737073724815341764092835262206054357329828923745426123755390874449537729389411640585189821728841993726553099379745188734915514418572809661753737668316307176768058796850947052766569052420185269220170328224422733000523049081305970174737706410880005872221614802444781736966292715313615854108583354219975696387476566186784656891087945778038413628070872452261102575383033744415968045496815153321491654330495433331091653103134302728027685694503542364433931243418840198118250907470868113211964948401607695758491994346496589860952761156952893205116001068417916176955579204179739505628433879068494734345905377027297614805848428052488833580706702674969036343361011132591014629934045235949361740511283554325754567094950173147968030118757728572068016441639653244654547552684066836631368478151091924794903844307139962055808213772261107183670100190632757040406331844235361021853314977985006068434199630368280668415602710221818567870796135777338311446204167520897407723847406738728136043998995840624135251605228766707584602803676437824738432246561077696592376475316477750973223931447804408905067776584101669430455458115036802358878088423598822649642619540367368666920494775582259861055066904896532024422732076844955250144915236809574945124196469265583590266480363289221227939590520540103954588269459648086972221555902317268547175924839752436066065722778430610326413010971452882312663576987823865830859718923054185142583392405066945832587172644888695986974549146020722667514265636769685060980911326434186107559309807562562174649889149670956200356261545258938338730624436335520287326313329890301593819718136894686344602505100812419903450777006303758563522624594128285407123499308698192400042191262967124139049927049405903369504513969450516956031445849133614048877087478519026396690118798153066902521445497378374136248945906652254590447109897281060478491882873376944591001167319427166424127684471354362452039009171185229993349397322665696162055790319183875760545939311235892799508256830154397138795628886420428414308569811727478099401981339662774186361830627225954687224553143080289674224914830744688407486672609175987839553726936581549102079155799096896843661793733059516121707937891415812317811267590343581972364845302395896225882055254124404885474070672638226585606109375738603464229820151829475545966383175087712664043612300449392425827069502607098279187402665529572152560762706351054991239172133001177979260293624429681826828574069438923790227509927189206072394153406356864237471927593403609202006594330038852020106553178023167798166575921193984172126603144394709998911637554487672788490290043789856595427849675610660647027146931882894416445161704617203450968708962777399412289645710120256921997406137180275856274088079285148822028178773433573952432817315975305192786625775526993905907518719180642023027905677329573772575762980016139034540107509990833515415462641822517202611238812548927022516312541748471866164653716722793879766119965714818155328542165227167579312662673374036760485721962412479640713866294469802092375696511742000295510135857193017250515605354114461187597371873065864384042748611159092122358548149336899491494177773569617349687312093656483332338534399888665470992020862760933120090729190996572045630313628477690281272779805014464394770852129448020864016902464456225213203221969519934328436331857210065893938377671987070049704874895297351267584802419999159084053689854419326867297645731022707170863895170439725183102793719050865621323331690447296860431854843693146842014325156238151995862569706707975714385594719820101534588412463655722945958225945333833834772876740295823141264925631430804985423776619986045514697051238580374832964513217936156018633149033869881236375710669373334535701834345769446838475495222162123701998126861558005631538443457814138871657343395863079452022036582205966645828956501053227931332229881156216506944938086874817508702893361145077725579216971241660720577792137951538761395982039726179430533660340333159968089431336623583608180318335985904302004378575589166748588173365085889010734894756387670905043893340033626053763600434684592845602818129015663152334520854120435506097008964198307243528149841487064534395875037400047563542533671475033991696180440868981179222775289713810489021908059374455645765696325561403974221694906501735942623784785221431756392785850456060285284911520644461026941307015624155390313176146167490013391078908169346012384753812362307248547273488483987840324459142452532653804293723403322964404757122575405013084855782658756679835805554136567523459654817137403035709071203825312547155115567283527770440932105181371368586740135975778968591762002066253271438833675843114929561420104725452999273635089325484445797326453694053717182455332461264908729474725376440851753903651518446799235328650422879575837994816206649325690512269934859294270885558174734081223519611597562060983080026046029161991597167550315049234517492069347457491106889617433741451578837679176721637203552153345735288132331033124214627863988368757233805728386470294993111468990874408083347420331601730432885774905613491502292600723278831770009421321824982718423809104330377918110474212569110953125490215727687454412696136224433122820447304764667501162481301567960376998884620038860583260261740535509851423825966058856015020381057360617423174402262372497438519931442867418256065455848152086058213934909792388959360264483306791533562306214626699994581050810992330741777599582859419683090561877372111483308143717378749973378348618512276912445141619793272824339065227452361742201122860399867113312676061104546391383238127896755336445139271933462743299600005891914899601091264387719347561843814300350660746569278763101456988965018144702263843322737179408108980508702001907461112275066491806562270891400685250468046776898886290891839833825444948359200660640425895119159339181567148967856853890398746201248859223431606100498723554666785565480538534873903521201285570589909487714410206275341276815541659336892232846670649226602024807698741726092162777042650334881209169573710453330784625664871245994968717682624757607807525878002458637400229398554220512371889649290453103489376109118709356369508689060506825629510508331736743093079979857659632459210627506439538658619152168765393026683362158819816992441650795902072471145682877349380287587398874571463538878176478330701183066900841650906031292584971422189590311713450700834278320777959595033640409387772013904811731091583795982054714129455268862376446735442616496949946022395531653456048846281576579197496810173883623169075751067245757292293777359341908846997021604694459635258863788530335852706083670910310310819535505927044786218743756755729100418683581806273136566528781991917091451388998258620699842461214349014655444729554329279993179678517976368256318020420979082309235823779468482798341017663645604089054432147237750371486699290286160167763496929856506615944380819896589767551269027964665416114369566898737226163816076587756166024741656836930238955727711868181182550278262037213219106976418808711968444477494117171585284441754329902358850219677052267409603922668611740712154266837842167163415470983255069614498583192616299303663894170629842815116680878346348006752427180299919668436792564172037673322410212324600562680667006826571013017690972904789094544147374594273590490050323359048263566710253102317265487186372950603551904274454472318097215504077555717227555731914734381760017123942237313207307651155481836254439233100088004801054918223155969855654606342480538939892258729915501640532100150618330659020024023470756455597538193297343749968742020077792676606338488690260295260569414711618258992734251477070950061930829644326329479540235531215400167414344628083821947835710169035783231571757827277575584748150583404389004282206722469515132671948564418645861193856164860311712530417187513513531215561207371749008014268011279438743896258468388841043853420916724580503737915309421132534941097600005154273356129440739486604680738382752432423985226523505212562530851828172876003841768773499110570338905251381469434366860492572528424146879920930663398739266610800633848881551557511681501300599363998422109286590120760997325108254877931023213665353542447744115002913432968630055438186004462439526737174828017633377447313559855240977513366809860850671580384352334670601747188971548770705130036078528084305020511688448229847730388741959089708317523231347865325596725360484614301887142283825537578865221664822159912210274752582761518103098271050254443555326176307828217489549556978026105995886219561846385149696978937500227303783106091040615354960481470005876955298090791476197523669954147593755220366502267248294222401354528258085651401149013656421621464115953496431296933470488918664674861885058098136834945653064095385700131007667894098706180682201610556129796483709552593054749796989877406864216780708808028333273324499265168600343022361950754018423551550261540835962594481488860474554043954163739658622421425304962346617738360408637031449199336975845448901644087121247080484306472929911974928246949788281964729852572373353032720035170535574116063540672471650850307533618507675334523367343827895443831183210281542451687175368857142930446236317027590939388050759594746828244259248115259431117247386702934446702226879156638144954212836790772341796505054994515291788818158319530026766658390857594099019693909804356386407815546207235259513283708758500563276236726755429262617152321995264466577241832112796075065083692462640583631976988100912911419133117416389689578627699790173017678954072783239246532008233746537631948132102185897858865027926890286583180746302566814114717556994141373798168567846995334177039363039232155190484000583827330468415835798460280766407121801555027618373239815525486683574013220071053741204785161566623522682007372773387602995452815256564512964400823326636151321373409861785373338297690141160421752092936477765422971686843748839955729421416722026399642082406277682183478084329423086624954235997069133745423214388214338804859572134713142646612975884566148901814736882530954282517629358187067399402251136024058750956812447460079694893645740511526016902898136184087520226609303072466623835440491688199418233768289535304289205464757024783825438212556025418389824901418736374630246483722513510220512420703076578014930270095338896260612499187336071781082361131369785015754801007598455946502643253229067188889917170932273987643088238944369536102380817748423626102184145523591806132842598227229441445965843932293974357711198539991246001152034105774172907600430476164107483232492386297079640474680824400792613704499835094573743119667524541251444106014570454605339912804565672342285378585684663493439585466784447290626991869592273439673720541953214660382811825090034312147036514504624179279265914889363916244590073173204796536772436833621516852889377962084829227616023222657352149054019107764144335930184679359310522212647408375240497420158322819881192698675652713856131279957863499620156648265069466634689698155978828041751617945472234500641933065543645193083653874168333606584969802204784418779560869173318467507806544173974566543861839573825902192586344158225594517023307088675861913448549616136008857143987023355548733655196726231504606011768667615124632909331617083757022818994402984075349938066260192853316079543912966832270009890505168905964669357722070829396556996332597724302718095276872154435733772451468019235664966844315439019331142448915461805625895970229884508498887878928706224543569814811987829681043886183764202785929673784218256691805894150187487473109324023732596656147800039603290116228447635000620418545859404083561624494884104983393384644074935953353295097771324003217332446741403450782914464650821473752367946863032187831625229199130267801889044062711097499933913773966413052893663503465705756854370392682285647016283302771655737939349412191132493856011080686104610076712303651569890839345289954510157347867475950353231206678951680876804028865975675135102991761211042709018540184673113577601894104103766349470875340087980135283754568297141103064852961016849190442150850723571650975084238261053584872069709250666933653246968014360400456458251204192830900043891313169248739119227025703522465661730386950570552083821405177966823371020083077611888860405377436546768736258254783989417181201410621349939184131224745735636654303639157391518399693400143266256792488127460482817580486709380307152085368188826763944327263827193904303428239254290604708108912324869274340422288547863906335409968722080250235911274675506712485778737427317298683291471577299396519165914032568249149337871776616705017960981269825565893546822728790096429778059811069509747282761556425579082731232402717564498946124407948196399738231094392709655230343695936472047077143187289925606312227964859867186291372266062423879110763824968939829369983598382392108582088343248035561854067635309690147722078301054655321335652163246986784345387428668621664494495217150653058671939295215771344845132133759255284394344613453363611414855028430819854119794916707899777909459764681629428924933314620217530269636457631056469976519390563152300923176174759484582462683015582394043009928989010105990817666470574720983212100849509677141011579004986889567423225904497218800947952197345394536974787554225276289299882762055365617385551078070431652473267015080425089023779587954086749908750026656998806325151550095382582322342390251665471218248892270949689930287469714871619666773366026254889524781508386690872453445677090122601265323970490274542972544285900931263440181374423979626860889920942550366860079287361186356502881562935405790833420572190450095721438316848102306400947479100213946876021204899318299723372444478136193782931865042874624404452709168591812346133838431142781692959598451510598514254397929731581463809421875390718544775466540888567393987121035865596447366990305744057068318970750360749129746380272832025156679212800782111652712345396958643504542832227371578701095454947628942374314012306564753954347664819444479829760177248692693085160590393649608119605719339531034662280729534790069892383702192098833326465840830808688358902267091737308222457387565563730334580299843300447328503997873514470971668660662383679963835712220732869888758118510377626162526296625461639275726027473788227760605514743618980110840302598349569608028082455118403391691145545319935141303032650353349945418579789528678383521282880855472592252020859289324359422739896645334315967312675317410782947764405340304125399717065038955326734375596103847555767681778492233558941251375047112481144966516217831227282200636060167439917283067917736519406333301481161157832951699616100925568275358416050463382965249755674695351512409120678066804823775946125100676666365760799243230654784972697361893668989439226393243034879259639574314127397789745207639063548564829365350075510298866973211243423127328378531016487849052647334178575648107249685258327992717811624794565816171422422675044263132704445303879381437362937235339693410383992949063851990635198049961539997274249019011123236677101609139173969396423731803564553290880828975236836152648787387021249537250187726012290384749904980772824357463957887869718644774809931409035426560086976336266614482582096264117053479496258935246033536855733773407534736952402572217511754620156423443964552638835507016579998323336843363569465590142713037361481173445678512145334832707738008659123977715688412601735958067213253083678678818742993845962425195828289296216309234124361418693462744283427252928423670436715894695910234090289572697698285502416920663951219631288879318752878628931037948562819798085819877159955913191955407282632033952750574942190200166731919408928870926318817103223069519885836504083879869566717629750966663736213074827675009766105072546870166951278342941587736810317077253356838040281700957071537764292845926551748629066409308341328570468191057619982528978029160043508589946035382077615310677256270851253276785981349380852662623546751846382807069726066692161913107081570051793771010867473391597609583066567353838237945170385399846399213156670429652139326686895777866794669347142283086340193824397374530466190212700025785266411103175066357844612971935411212187619626886901856580640705352907134054431688090601393409292842417914240593737961320257248212501599419932547196744897568179488166614490556220990245904589497953466209905164660339366976773989983043899739424518344012940070174409761803326734485405703697685761375585575031772053699239692125700044955767908780386649598855672401503758072054358568164331500318749668988755083987665301125955178824532058083535526692550785203940590271006637958518200568692852897436963184673269435000736008678492871952729776519736408905439473956363380463153594825894784059616924493568141348676044430535217920246146550302376706953676181490695035796314203000015585056689697515715755215758637070270929709827500028674766569116510312680422648234237712162998337257276404845057052694278226566138302881005315297635479347305968896379544351413463335174251503350770867779968364991032365758319264362280151463662748015773412342478599292798554736470323584946165117825773378030830176244418795745481786309286891767440015724287984709781863522546510422656324296530665102817092278706977716309921697124274314444549196146763237021820028821252078681044026080482990187609462833902733222313611203377382474158228921434772174569143162941848877758269025353877470454505276452502837048529529869619767716954751530826514185699940692127019519430367380925103541264087433967178438417451775874909252811293731397351709668158511729292470274341637558040388239631618345475064272867168407645070913741427517766692460334568100649734894818679869818429724832106594774446498990542094818944130200008502613722107836570809882633645526621943067832834261709106868182059213757385265852914752742360468808696724144439866222461726097934767526600479529823121052447841742355334801314436247815326720083296529440750859599450099595285129134729400829160934932964493583631239044007595589873700293281175783437679992022262349265508720568553334351882204333645058503864358484890593003713041822993009124836869110103402135123727259856285282494417083523375665776151948426789279159242749726543405053566125749483610398525956081020433016167994121802225532340895882098451242607214258052406225996922485685965720133154591173284325082860408328947608580876444131601203684215286915688557480170906065739083282683019786867361876498241849890624010385051817036400534816569905330001615680999885011638612033694892843599182919325887554160574287913859368292662168989421160454072053346943078262379221372766172937698489861454155569439925455528493351182700344988121801522379829117269146867005083130399689253583825138906052963668758848033867483117181690163718607530045956518280175646596401921568910701621573933069725868619395855188572224518260486241267031265385407629311403517458150368370215457271172662712020314926767757006464663445027527349747814945651368530998895968782337938353197820394094003359623374186512100437723277358804911264431627055083892227571069729450775434246453529979582717393166573754132419719428360090487188872465217378899218010321281203708834278500470518215433713210067915910539596650934161851126686392098532790897584914838152451621614255376858314457994807316483849356679399982611016781264766539737491770521839950585265025406303120801203154776594817500385706878797373669839678740327708365835129909271141809073854706977971604226647117899469073816879022557972402070163754487916704153314298350535492393360670342793469969192086828180482652134653019151818861390069347233415797848507677813472254894150611468167985031867443623877442058942466065989321648598748507987881018490690123093700732956698540808710140533839711484353678526819157857178079194168678454472896969445681068517988519661749420570602241280547716175125029723708466429651024192959358051150824291835893830631903308059456849621654831470473772153365185265373532819471288698535449428625484998676768169629007380213845357747549804705863565598651177449501226837213425278510706258280750640701314735479636851609745828907635795518889855928567736201669189151615519830602077816612836287723473754202946782414143682392841959001355242858233818503216807419632513789796343372521902051564918419312294231290620450554495264103403724465010007702390323949737732939281381220433447851393451399292073500104797781670944601722219789095344170165877673132663473386245788099918163251286081063655455966563945984032459043001186144029503797571308533616957406234725500544039346618092502731773611864899205151915446685542042183651065327504120861363420091925136229098576538261256718434232693674413713422166562678355151720002201046584628803477210538326023661151155817858972685493119099141741263660611862815562346071596515674129323358740290843070003373277807996311425601311938658815176710148124301825270807719424525530271572042664387097660155832867450797323736871360485273528586330271202820064725144282766559304056171007166714286109997758887245120140129233156562780771254422492602000942172875286197915048211134037698597955451411992332632845508957773643178835174473006705251778988880241476925628887607155267311716710619519338296781267688974922889648885547914869609099301649379073183345504016440872096763049345812557326639600355567521695606763637128423760831756256959844003093700029939743008122014718734861704908752273179438337564096252970881169448267835162199788893157907902921871419890992209638646574349760572598002363294334906284977350509278831532008823849980221424137085217324591554177233067659130699526530768195103106377043214948156295920139916412403947565380649797391588860316185206688710520695603928944193907375186450752277559227701762236254007535981009134282596075567418626436538459682018824385605793585185541094290010310909364692128479965008529596547275899506908520494588210083942115516370402827654161587252027409097001341278470080270966814448646249719201900434194702454956992062927552572259678177222057156986661064162733136961518010762218118375577870531836084784124431608462161883141245397807912470869630207094902656195280425340120330629797301439013043282273818627709811172222362404418910390553490105021943915451605467446041056431866071932204511359883216051730441270449593690302285906721360295405090772693398672304425415616542176338276878746258839444721912737151920337492012478486802541181717954636025471652112531108603836640751571615934280121801660857990250127777717555882602433814924140329233203822953234320156586029638698288528690672963387678029577812050923369495968719384636279772952291711339578809910669748049279396751555583286470549341824524410901464921599352382518977908082352625556325951584917573016853441836535387978281307815058462079067241152866038956721658574763856353180287433036030743931294451380394218008624983058844818997862104768739073606687042145452189329413643051987853744342538187136367867739182831148284726069034653451153081705668226231523204407112530872488905971725539151584075654059546816327058357749700275344367495081890366002452234988404489663380695336389033924448754864194392822158795111566608474760743105432847295480869035776164804461562472509919514458072898452838635300990863675060593283541382587694097591349923521628277185253306837930976930411936005410618453575445625931674575624878186199798480544791198814470831236689578310488726569183943472676891346872412237422816646902146755835492556242297907585065186037553281628461732281110754214467834559193231497361383999586413853301975755917182611180835619101402620311925258419706572608960641964847789997906238438443925335937298574929578562737473818143134508497634763093027102399543664077664579969498958679090780219464234050959157701089064218520382890867182227785631746878826882500892567156444635866319613927859323424423058076943704975215177049229233014837204696290158986932373674831983970626589632814774429446501618042569071047701757296789898103629425157762751172151316657488108817089454506747805078156073855631436465732948367584766923781282465471053286713774050829806182146316504124601237591304937504399592851924799968177641241422872513471845856954337248429482995605124697969867060820242658313666269161738219109680019218776629696532664832129390322169562200143162356598610170798600010014445693009822314486722862112545481693337956593801747564201081077957119724098237826813228196901663181216445473941065430381098691343161031065647719607193151827715681714641001789862836452969256791543656687056681374900025782566862460440752756608128297544066813080743783977481635322677730838541116221324100847637572991314427822367536508462835057366816032143181807691284190458409116554863540248683467155873105740510542319473641362427397607936894891177024523821148675951984129760579582640603221324147643078405898377139399850898893501799242430633773578375203546614296272813350938520119388415003731587626611474318330289679406715642676898338826289863057177235119418163952360556303664703969574899386011161392894035752256452715665655175152567450827803804321258648913408268791794755310713450994270339663613501364838504057769283411807921788508780555547444656049756210934526779179111228215308080417428089823587890214705784591968385593960868453022745493454588648944525071374177804867456885834251321216966991260580496783368579156434881026640256031169282270858845227410097090858281095048864327279733815413089745029907025753811495634804262617315701235156456998365077885095790263360618068287183552863180122680757819780390727349861543320973024203538125984566323371295861346561684879706308815238615113084042569393568726349684221798307891309348275454088389236543279876280619334718340340475385176794840868241338104562883767286579560124891674649535892576768258078776661053113150239024680022905509557895543397440847954020870229889813330852291478349896230732741976189280050215729436386710256830170538112393780545918803253171565561824771713585867280991904875968726945647314849460185703373372094001606553094971701911319432395787152002411725780395478213450516879787702176191261682958262603057711492567408254119168776699114146090458462993918886136510275359730438661995427597746208235965836638368876493250571897237214576500025773965788958166682800636961896356497776721354221572581986390951517506405050273069112597022691244534295778183783887180791695284998113261518867748856493424870893447342394645244223300024267361393519224931487736104551207505999036565828119101297501255825799328243614993548436607975963815307935319589359981503339614880857291743677898992488096746571778383376304848373100939392780894950297509193866868616256443946510268802373441173441383260915018452707358497127598124102958526677197659056826902262500554444113445403849042706857706141618164207567998162827347007438084028346883697186836313757991872360401195731563345637851612510580924383739194987464988175760669606326092977966678185739355541544634097101423179745414954179673481397135251006035034422411172115255025281325842703948596600450778829842081178804183452438686120330220234701233026706492654031530309054258074874395921651945916668927541306129494427532628170331531257578160166732064607158753251730214506819125365856386879676540439869228078924605417986763630247691319517910750779040802586109706621970541642746042273177312175028674872724476001510405451746563178728183429232397344389107933127391414884182017077625805839240495737985715571689913906165016773043484831962407076153082708103068818493397022073969545332454969259621425836031923570192765088221975259632942700174662287815950226605192912594360270426860160737399410542069917109726847186376887884789769720371933943235633777140848983496634783581294161456671912556445569601192036112215586059577737399489614660934207986035534985052809582551397161722259327923321243267001924485218003747031418754529854243820825979297491149752876759393129717816005763881758541526744060398360003406529539469188141051146009199785382615126052452550604897996749451942433496473367098527753125162862627735042631647533893754300144601048208787454464774783982809474632629713272515734423122040495594761718139466271042341799424455606961875358077310028637470866338288431446937102057658929555548651096593761176541666211967643012107509349209303898540606667475495681968696010733242011602245180890575293939389341921802802690110676765299100251520476158137492269346587403203757194684983191635446236238797991765534204700651196857366496002171462964182352376835006347365986757830538023306023546081651875411786207836037115905024699512462218320286865777208313477670024960536301455997169137195516363345570470084886798755575936925770897647836814906137310899169033204219965035992129516704975553013742441547204324441464618749450494725667172394736298381345470695637722992156117502939895707330444671178948534963272763741255622952171563989092606020892988449036745574884276858585249790773264195888818344805892887766054588209213782824847339043609334255154879510564204944179876245771908286156364889234697781356369142807526615852397163181350882319741529167986280554528373757449401331093808495434909722754741892220600488081984324279544464482558046020803411434331747724836855877736607457357417072390474456533093766167446241086593042080658273355482774161571305009521571336963773840065373465007516387042218754994852571595899663085764245370573934434261356355089103850161244461091324747491180082234179603025137367743829355529361836786781387499625146394509154588573901294591228823522264843067718899174742832466530053856112140787857901344556009104346370616747326667939751366846755273369599522322330540909247396766967267670249397500895102863675589254253711102812634433455434337376734200111255205710318657721715500383629940061915263055741858768962087315091781692137001740386049925974605311131757523265522033068629248613702809411990127761801749261061827116625793566437336642959483333711655800237271011656433823556960377722961682002756992196732937451272454642575095498305596070937260595970732349723175154817745444373790310802056722811072433356449101583477632926201315791885386101986116705305676034301606299018780129338798396594063836425779843024762871332342189703389487812196192762933802753171632797930828367983045186988560140214500816631459370536155227896065440475620887568077419672121920781662618848956434912490012481655703809456490880160913371191381338919796313386002146028935493518681567215533213961644609457991667453784470044216533891492137796005424176552272204125199103089789523353397062704199861898035842911218779249361079961597482081541839223847532913827435475699268867830334596607162785200209663250940743828773579476925862002417304662080363304512309482251548951445276557014119732754319301143861466923859374714354202356903130660091099124112587519779738378939438270778310161710240892932978600701113857675228709222724776145040084672437893834175606187293560836990650234486396360518178815386802867619570105126434266338042753000309069533495354369244826821412407619508156946368825583060849086015732452582126143627875487212583273797102265997231901971598462172507379230190073587583138641994479563838599135558641605141766949481657492496762257607066588858825535184279644673689262527654654052464523183861616357375419418369389125709060983249490140548924665290142337031502865179432372195478855117792021762524846388544735413990866875236908998829689261450421735981908887517707301829181133710808015828241419530152518695018196017269257083913871040320333477498571933788453203169164643811621554959353810040754213447884101871535772122829913575996006328753878260648865784509750628555235322116025617830830689613104482918915182740782781760154030138534392910043475474691222831395325649552150142668689692650670367190600488121814388099334710773287502314133104536095821543101256538002032850968352350458962501730064355261451695282747424906072162103210994994114651673840692465184683146615147564651906168846591948069475783815655865207356279575559348400276464212505803670672983831797608819260373317016976302068613055871633133381686971607517080712093026020218272778581168876561496446047968952445186175005554026329421696042520537658232370420358152113908361982648454232058122584919397774678563748701927076674521374837781598838038373343817843376046209899110068940722293922449375614324717269404099277785778149135361930255926701739333248622736977273299300708738067739923954742773728461256972479630384108571132501469855897909035168076021007475083093011743995705958173342535707322750061637893469496114794177973924039381741568063845666076686756104572871199849809043365639873764793165535969457074456876207117985068486282176964352670182246075085035217407833063237519822918893004761855925983711401623859433567265794475295198238453231521534872035955411032989954245895397925641066900448869152784659131432271378196644676353552913010920218598311916286821451458955209962455556486249318634314446647442564479829102651123911225685426119572172384632029514708762981155326967638892679901599494640675340741692354004538695701107316550101470503277618010085692395844059201136097023971267645181154885581242252890805123892515787038148303170436724484712479143308638153107677802929863000734730644888130257923872357740885340129505486907852833644128059564132139007121876164144879873302460161478239159880713153940854533093352924592818929896832458549850955033254877340494346762294385598550776359985966854536901441708435672464867649818466000312620028623951196329775169575802406594666675781007973943148343129209275116872104225007955065331364579840262472613008234142951078282841882096979475346931233940581252031801223451928179591552974361257845668410892330702361218789011188625805347570484359596158802832080213229327913425053172167029669040860626085395846559744892269936317196739206288414541103826404852706950903301495067913019517386982967103740688670613138891062824048576304873577008801134160910619161117028495856457877259599446300774479805382118058778598505295500249299976678266854972424566279690378911694549367663385235579942841563064398215700713304886480066989928501972930486300141459550852235593333005327135414259341529683677484614399900191847232137706629880068498051664518750465213819673442015671292467842711046736356601198986690908898147303488204785652788133909187738337806332422303535571245545956643173420704898907828069344705495678415054391800339988121666960777921711030565691669564796218309535408960481616353369981613068876707066985351107191621395634614917021681516931488792110343360969788280326736475452525247010521351569492196088059926407223585042689272100768418584932354355172085020840088666015121711562714453750696670782601422683362326702489001419658807427935737063247135809152549399537742012280925585086768976181884039290991649223558535198988625402574328545209330170850887295975792589177757234284375642169388299333772391488325849286959435445314112733473893373839410532975128179606830214516966839659300806868276369179213112519117349137926011199222320614673256241346183365395630768321602265942297462834520619398647699670319600537220124748435877233612739901547059823879188490974804177076983677051465047424208485024766327228241001450772987182439036562981861066907983089665083040926284604951131362203369474977814344494120058937613805515765313041354930616248266224728770363057630080783015711430894354295549484130565398706663714712562265308431369070349903069309583108599903563157942094934976697662437835915010538161918523378169605902201888441635942445915914744308560982211266565647247786552830188647852685074546204921216084166537364812530691582526271498292292515442571932775815906547154833358049677818829428461151304936000643877303955619331371687337207473762502532467843410574541340098456073571930159308106688299305454321484113656419005884202902656820478479271500789075229349091363866847165909737742868864508556622906271452750229374282968582879484339156800103174172520769156772529420377990041224147120165216260421344618700824809805461519842076632019806307149179082440009310877789284831666853587640004747099269556111790518466335695700989978553332208994554753411953847490651093756672083785250223333785072761711802104661739541913630174255291165079522444704933350417748936320215469718739404781350217872351976133866815589060431101376894335894952236650404547627301887323370441753182449385638369201184476293959652234617923542028115818922856406384194252639758488739757481221297811043952947536187199109739970174443181574119625166259496762957077807615802786868618967212846563437037421281066577427741978754373405553735492097083732332247137995355657625574462135757635394823954039930409411549901851655972534141407508665294962281045490890354042087705605814701310721977086493597562302459083454168526731517621597815696018972997438850150892644207074411955673875409444380873621767561495495039318339139845838456589193330132199879331009542429538458541519502927911961931659000377472098016030116763528749503929561012133470941251509092722830616130430339484085538352120799911335538610039606368556101061555120866802593234278712153327691116680219305710191101760603392997290799687963850465502820608025646648116214519590924078027923197927994554401245439881871654037515876308464872491556574242100154364811113473437490495595455314713346073470151080410696178874173468806987279050565658368593184423848643836352891941274365102375046733697859739355795051223598688699410964911420210376295016220206121363006192800429715408994726582568319316777436011764368796545080022259615654681758456102690222250460989243533948533301068794750053957647819903831175715894894724190083431122268449880784868592822045436875870983315911033873143608636919024190593452223899942784680371158010134108750270863189222250334740053200699106561070217473100436739804128169392446899936656025533000345931062630763057771215248739187700207930198267265255246212073396267429197456168839473551692932019801245860883746139062850792593849896988440794539588466512073075197010425679072409661842102985045880851107135183147051423229682411967834153330499842168907805763570878194566503388484084326985989193182644324936653694878136574979546413850016306581022515599281125499043435033165968388466998580843219222265657889960596704414226713079530469607946597982572349502448280639425720896736019672453578199557662309653029474117365984284609083469501833328127080352509956425293377319992058612174876359249151543471052651942321852172995585581826894248997448247836696294038723134309966600203381586285202805122360830550514250162359777181009742062663248117498912900437347648610501340276306920305770873702483304679588907513821306098643028336099237000443518688409703372336800505584752122682766668716325413769301858427325812336931434137639477979376376058288680752511572286793111293189823734543544683712572413008220351215407950305557959388318138156660202497795555855817371712168345330195232787255112081435521053477388462982660417860521719441470309636900110596558768488546070586237826356119380504134021087352117244474454576763222708284065946124619488794271577599502553707599405559813027179625345675654107518470549455475537886476009416215979494700491834580146053567026368553128229232409024096384439988931681002093455760295356654912505638427127509825433866344072386359608717282025348831876543723595761242849950794863007601447886003270633213098598068055290650082977052377996474222742135442185238903710991831236849317345370914115358789386117364293225610739645252841237606753764018049941907358867370362691081554775832053241112370843379408447377335006440144825019357192753577824156699382952128823477236537392244042389560180672676561412476435404107588986106192905075811491685247108431140824475061697603837478047171275551122353959214594368547249942068742937713575784594386363396654969018899037481844055277889521132445964771508523906239955446291539037184375258259185126665608859425788198988412870822480811491569561058315832478684300458247475143520416902562851389241390521729129082526679486557519296660723067333708819917060081414905616201175842503222587077116437358341346493681028724516516378743540917841284420332286220509598925363817859744968816826755185434636024591754916093603531032633132171839644868542680595226304130500268279228153911013875985851192237366578204131808467526989119730174336611969742091854444152918278485822682980363210237137865140608535344418488048769950126716924116318722037443148733387191783083091182856502622433098940159432468293038884878036879030592309542875412416686068437532978809047092612491947046257376494710189427206578103522795654917506733584144524696600338976931795402703682285424332474776104311054311204261033456371227405759391697574741000110484268332441387412524917146603502036963259135244595509369783025341411449888744774397887994291310402513639173326323765991073605436709392285250495062806693764258520026524553765449870971326900311585665510133906133008916535844773531215235241026336673222804054332839174158711559943335290445223496883228412095522869130641571974492375641764857246696998262114065021231286490023504608169805411559742939863919126216366658592296087058406631614319612662951494065941636926997122246290625242621608626935935969374355269813581991829886801831753681841637685887692179084573981566456188713722635245781437473249805383343061331206316863812147116352328434513371566682381600862382125146858904453185005197579116700867595248120200243961291070102189544279588828510931754968644430817700511656816135356806558333325070776074578158115164533732580438540995546610117330483490095863284752329220935323156147979907141707000211559109989350473210096482364895922664018333610240545009654370274125087779882735947542415273229467419543902119421257338914261270155197884354253734865100516698796808038055494937696728155263698604953450915783550612834366757374121133382282929307669386671726822105156092921190494040790341581426375511845796722293951173934574683012823355120282385147740017140564250975035510508904750757915150614116943714652483608265947140018455541133250196085365391165473681532652996081577284793144272204906139422600540841444644239060465356354054232316311530369386948479546640152020434802934174045277059796754297064886439137699370018389924761324267246230274251385406493854038349215011279891747684694347571078448895771379272882086227607409313137713488964010943031192429273375244398859097484558692602255691802155932553391899538971139828768836571740761145607047143965173309249143017935180607288779080000585930364483827718066066978306043585342997143872414263641014129978049909751499534058208514823773477246621883645330951893558280979858314747197730246986861487661447712638924089214358851675913422268442102581059985391905919414163604750855709566030171576062385946285275126586607899514871167240347175441348254745446742699084420959482193972680210686753859581436518869366978120343613362709292553240989587472173018545153730278036857841971942675980162086221484523211615508094330801106351794084916889051161710057199691352345494922923464698743429345541590540867427158926726883009989726648080958479273357804194761769987746785604417184944408452507869861608452275582347885732229313811044767290848793673802107236070764993045775987556106722880851461808244560482770819825789409521401265939904621495540920043251699386393467494845219773211968067751276881251453965081346275813093973409556280319371744781166999128965602611376688455088248176953818366295846088953421355994542114402567195781008015997463171623051672040637800825366721025672103405670398228522909802366360957188722955142045486461109243093622846852168018241753727954102878715610902854785212366562500244574648430771368281006953401478917285880964376709792976756151037706705042718262483479006176592471494778643530102619329605876207342357164069217778020629370329884487012937167449682379083765922199755634918534513537967736403361988407418279818186348218624232970798498257162937082322209971208779669634462742753664295931136232349361342107278953497906277945566503229765812974680885739819705568999505902470756921686393416238526866534540905159271679259549319256965373644415029387667530019641456631616915249867187728486474387130795964704474101051929904414012917184553297155107135388546728225703448128869597690881667215635293353755133850525582896012652489491046728123236277829033850741205022843888806396262546520255499257737611290973925547790432302240813142841499772833526308971025238165122413054292768527330506948266996034316435701960265843800591199207727776438349208801311740464540035012653822949396284780602857526852487012500315973173019837205495441114627813565557314448987828222238471153955672280849374167359100559065788455098621387378427126004374188633346786425807948580852989662952355400979827894572401424135127775349564436597010989876142216982789004526305024747177845838346607245446382227217642324578760328493751575975056249373843937875600348545399742709371209238700954489117158890063559257507429453321435831789524216651570956505449725263508273553647254997046692282079361102114356798646655861362436078908636902731489593636016390886358150706188190571734515314574429015970882778522230658113296227019661142484508391858310703910682781492769412449657232875589115760569235115243932003239170135299716125580607980615150859021956059321306569959693489769089213460927607933111863141615400421927033459133050480527251929791681872678261426388442788621083735968738371575166083107808325397139959915359539448363273081714418723406856735032773223994212959946270766504701514040724447918847995045340069383574820111207308406206011837644484926662548569239221353066217050781362133850928486258079765839196792737587585114290201836445708491302951690069380395632515792137208754603270413203699751265024482703889515838125219408987118688850252415280961993915385544837906822933211511643279112691123529168838396247000531899445444269448373566202067584368458195700829599977633051652024460853400213486523018495417033189632546030277960355155083618727585545221943837906603291682445590577473358549432617818081877114916518554241417478139035506985447390720038693270936747255033823654107291688483019810340646269001127690210801989816133705679128695378824328393981081142252889647427342747581461240896403500263495357321456319628150921563357423584581753553512506108405175161344359849157610128510366744677667123030002272975460631082146980616308355998444295076271216540596140714722141265598521639389470490649994818333200323944552475802049364185837574685295597185146245072623471100551573006016983560676486476460679230620326791852665659467735973711040804867614109086120406712716962693760434308093780196517855902859790398591041593249202040256018431391166241751764713918133778294115519357279656599678024479146388411216080805638673361790839973370621704611795949464212575098528285598328579098147689902673444950945133839655416234969350255313330659783776011530172468094118830527850196088487186012338023782543140551068209690717103323570173531158516211514668939771856271381259400222006989401410303854347077911757882391510049847301401986258152737855431295089363978550641878775309924977166282962754175430539065729684202650443891840924152687505173479125648419431618717945885911736404542211530625795470106800639329362608865152950576814994199115860469049927273317070841325381813063765840971033770713581073923687335344184637931504577898878413087244357014987691393711269109035770703365883950096880133053049391868969217709338559008844027891217715604560202914764063981323084120934737596220888356197426527488465421602887903041012454647505166067301139566756978456076991514740952051752522976032211616955846278817108710837453140435403184926677150136533779117701918280928295229370228113106451041799013746375310352531770917644128251845483156071687030817238302886553584785260343186206297213344845473807764207522300632329403203257329071771653507056479080901641569705042541585891466995610888805707623678396117002075438243181753183790701825255664844457639675968843503426691608589552120749374583287924304143634537703816813552444010639656309847281406040058025351412989188495355699157492421672284923636469284710559353009877029931905893575845609002873995896174964205891186302946931399170452943527473570958014587715897832166659777619227020229636016813587008851651194221041746841093888045994606362903088002880384435429725789862673426104919536375239686937285302558487734475842202993914192965487792882251122919756746412363420668346676143690814266196006740770006749859886840126336817684689490058959936704384274462270288709497012139219426376941063225559585377652481382597956210999857008131285162977720601550313034387669816035526208191732243381056775798277707100010334599795182320679553713805663832300223135198698923015174785321331165069199559015876475976066018703591262809828532874617424261165304954512682803647546794788895677016637913638044796772995874879285824698510394268985869853934937662624116021744820191461977048675475491473685489397163983895808112619902624438527040399394896345209771302254411097002100873464932375217990643978186280891710429145104675715621875019567285000130163195675283142414798461467474902117960143118931788905093956414368144585266069254091369691718291975000686064173745774956305760728702961172079522918067250106911580339980489797328875743322458025417735906488513186797785833129204216747005906786345158990205184370981923668497691762407682805399821594320390083535832437411027486859536110190595503392928350236373739113217836829493457453026101428842213391663356948419022248744544821161058754369654001433230575411984431147744352324473251684441224175255936071355010472052612857812437779439527892212365977256255757392978685657822749262191244950317392894205383607316460275240288300598629209527504277498227088846706617619992702483108274122432184172990823052428118509126726218039252541534396302793149444280581548382589931417834682791390553601806610491095071693308787702132024683304805415034096181448792568576479195424382095970229339501238169416418683542996730405154685378974717462771002679118253434770625601750461859993574948761610652270905449700822572669698164591357451234034228555648661335172695209713769393535181173917679484310367919443770088429191973123741917444469261424495266846511208183233915028165721587303797519391677452753958199006193638182450643525523458387463330759210252204620266658244399339232245887986224018575127517198161077340625869964771811306603736082471885137166431912780799381836817345563550937817250447833848104257672752111070512471284103550392711177538118548266214143352682453292623323860955869319287802331610598310728702937714716385735907953843100195145671674760583848542908367965187809607688246918492822654069954732115214358252527189758474086903770703724034887413717795111047638653864116508099059220774585789322395085959427633677212154165228346700230154842266301622040758105939378032661207032268988412153045020261574464979568448543409438922622685757279074073361071606022900442914333155651176803085605710584491183314653981228181409731175959394870785386241151829389652104998046840496796494997526700332477345693828070529533985906803747829785425864391471733094644297788881900795660177041341743404660923808260184029792045031450357265483674024432642990726139465555209767863284260777143278642776691424308864559971406708700963138456781434981643331423164167688608391452271642627282195073084431260771778785566306711847633931041709673831285126200297759207109416463724842011903817249982382856329186592571385664219107409343491035801643473569653207628499564999497061283367319101947280123661361005317274762780346048006930501011913123465193272603298645716024712452630148551946502471256231656215232880162602810217668863268745348963086983011712244193426057694348629639246690176297997153229728595609797223261950614214946680132711450356134673305733131644559992083643225854374426270942828555100457164140915660745837856307293512723985813555401313710224532572278898690477665462546396507191914377303579152534207404467089097841660755248782686979282760150569017674501358372209317649292436655199991403811276884366558792527050066940890507019956684251832004863955410683238637414034038332338751922836561055416536439528371798849320734144571329800744516636968768462667071857006065007278650324525598394989129772695622966432710545651553517690394138622447774267976959449341274771718125496795682787522535690891378307747704017177289192813459210295801837109797120791219779762631223438947045312647758426801515922269503677838543054043705345394144476418878123169186740242740360016256335472789338130541935499375926412212833128255441532130066841163808767237055014590620016934147155198076235652509933689202514990773955090941095157928245336912487027710530204929367348743373547537695920582751946550254225508415986667910778001960759988890829509475581517239287716562369492966241325056690990110595186202232924239659522983643490151781861716878976197914186096964334866508719418997607541045888763282397429404907787943572850874687526958969196572905986323334154010363035636719940699437414197374306051042047549331515776876241342105208710756996148682810051219775507857436474423915177228792477241003401273297231416958949563682638149863547208241672859044664227671771712465262576532978650158797560425654549232820458294830847217711775345028448630180090818241769710540428666871616496382214119743991235482018368140505024584730994582353633666043515224917586846294485636264610322164233942089219693845427527374275050899515727708919848597559928467605866089334300777879910420846285372814223308110571243680399603227349735781511095830093895457951433282739795182449826109617653773392502644269472359483264641257838605191805459012101878728767426267941399613307951274855534402766444865497039271379966358422036758983861568826899995613795365567656174671028398377627447295230294289147858428430784421507450613454203933325661680648851407134288693974630054341357867626026291167982887206937827388315909084226220945227095645288154819580440505000291184970318233170090442170787077208259517937697748513686987534011804893220724941449593376281692834732947151947014047742118956645430523995472658871954349651449815591450507442707064696316203133732255809635927983667436240807506331950114589495738222034222574522889137475165972889682165404254476602087245873736152277975884904423616379462972451287191831935601719078251424823002203583162637277482490476809125696531417606726513437161968692113154579588280974876983351856775137925163169707922251481637891801957149167295619322719967990367073287708163151257947295865027263356103627725831034167793913113561996404583554005917364045612367596488698157510749813219343130464631624339369225270944893346033604861665333544803882755139513808250340450079387693839872648590321883257240391259599825690076273004375624063207633450415030165252693184960207693247511763856116829104121094162977744010950359850344895248615437583519620838364256356874030262883225064498299794241607895709137718029797397067247644639278423566741181227138996508527593415643256390654048854028619069425496897437173767376079948334300239344581330662838997757992043765890767638868190895188991210669604409180534305512737854343377059678850143805904116915932658360361879488146124191793032091315145248807690919574166793334772579216589149189735237229581965672109325334861727753895295729492951281521124325060409368590441906696916175973574200484876038204188628003464138820460810753773954933226333268729018374910295251929769361165438607752053826620471285990967839152311784644129272266840897554434068426124897174591045698437013537750994548724018127168261938263250966399752645524989758980591764508854266875550682957476578658492512851593770394239599038613712270481908113852581356758362119750779334468116462964458800771031790738850787078143553238772260158674575356988171372038981051797320921369036866161831891883589724779708152051812463678431122168704170361191983111321446350816130558336174821205704141127836146613601176233079791355485545025294520292758247231496968671889254822497626634857804344436505757671078301194098069504111388822652284915909873751672961301064282160144793844648640531772299007259390120817687425268371878837942472629932986858151989840702156909017370622646218571877049468590878040534934050915229942601854254791491646274705116892607816052878834266262204150229921122333324669062574806587884700247352241338094208368496337285654098243050959820416153789037796859070886057264207042514096062689372708338622712632232823887662247909369400440718714960280328073756731909328789955609062841847526326238952871959831029359958165756959194227125529292614551076745788228892716224042630852455324452495600729118890802206068138036851713353074266916907953383299025550820589979905018219107216792583281282420041379073144807474113162592389128939066612388167066273826711011129310865669859597038359984946155172740652974134153436421729120802292962438670819828224195988300846468829430867853660678196478997127524586184823587690443030125615412879470443381429003559257620011705780465347471208815416900280046136375072320590217705554755747447017714686992240602181875576526505559530221527357004277764438862313686969970707110750160026597569998235890756736949304138316606174396831724912733641459491228331572416110868493549737283611555976280444755516042538690086691096525399004855665307718569504315996506446063180902889516077420095824310628456006974788318865047549786017498376627159469622602902109647787733060716686488893223653302343120315542370829705840841470655978085471006926019162515471319927232956230033820277739502222267544075278402987093186094302420848754663712481318319579490488770651579644780941973444756081031967763274969452022761138593344911877958536768172951596543737640121364384695520700610543207298169808914884591996914599462952504651871456678188139192608534274226116999220022851829504576052308029796058780107656599468366317533822189056335930509550784588649785169885632125463348026651243637402298979170163700703068873861159682167248686577621183350617237053565746926945703746074904730688642720199013894618128956293780475909593346603292787950932043734655758463040333541153334315480506022387011763193191015714014340692975290168869229715645023252412456710696034950219503563579461993757537955897086356932840782004397242292673799207828899809368086066905902673539194899250307240168317465726864619444346626204406687962231089382434589513882861930324578633829081447024598766058307429630612145933949492082486188615387247556833908233453619494856647019567867308471864765233043264161173297577084355730840675598837661591374415093526821196496734477683527672578654593838697519724079690486438392915289181234530904786589175008554269110334589229975805897523494327753845154025963171508580230811230576315242752625323600636334218097996139579141074916578429322563422555225321469526658425653545899454435794941886474082903190568918205093094796279384855356028109151008498653668335325425830678381958593170241490625097100949476865732931794700206484130347316916017828523453314373859067865963334440256460349229741309795746695106959096099902181335379134438574917755478868361537826270377827458061913483078774213179496622234280247119946405988351786626078506285245558075318375339601286564702531163799403396264306071211970073235631280427464648777094505277024767434066371992817154665810670300805480613280265316538260916638686599928275646618729021812184916702391582813892784822072420447320367736196227619232982807248304408950364475280720572305770620019113559031239722059073305675004812373001873027159435439079338254116322403101105835472683396717222419219628880424435083702760463189833858688296195836341532138540145487853307235560198323473961804994286793840612329984655533757546684107400515146691084899878405089143517906504467267190324291361192068292901140274699879493325854695437011622639547834308425444028398566444650236173207534001320907158562348067705760420188813643329473709271737774541943116438010182149220082134451737939835497684636060589262526105320380825813947820378582770778506354870627105582221735994822541800862146823959211000742608816768320234169546888524915729716244393297015071090277705635662457905463416181689287247427649040681766003747508932081503236238913256738505651924526110607546170308327628759698382555660333855252071709540028636429655955647403360273197897584320527087198269192273999223658181239052803587327439487092333108600702366972294184505036888279090510874185697156228978704549543547546179703025881343777934331368140972669128014763319409086386830177300918588959313750574464890089642532294026643241032129075436985401312340643328402734562335003802772315979961140097123171944990895159341732865485327786566446729317378082339505644164785030641974847196127186159633059859511801405458475465918881658162184407138996411367941024812175469028400109386831814160877197124179248828512620545343165337925327168184415901650141845771671123212163023940333712010869974657547370177534429780734286129116220759843530813892625909789405852429795205544516452788183786007265122352902867833371410340592156999358230610659616287116450981052997075545393055563698777886081885281050521829894261080162902377406577483609671724903168556673795405503807427194662706381313516830928632446647796312085977031236145341177406776321074828755920550723582685462207330526482044637579788717046005172258362292204767763386129872996473080178648955710302660421086553033293587803637895772778994280344837576149625308041726567093324351567738027186908393730043833760168824689695002873603171484987324789400262703528888374952078518295452849631623215287225771679459830012665382789113331334865162232887508672872775881775879384150126465592564242303509535198867876085373798321476648149721762781095608431721178004958102451719299020646263828508589555820198807413762757189064204802152991030648949594943286917154614625181898118027369981151659578618092908467383910164145111206954363708247919339855823618047819666257170496088112847955470759765020934554821760958596214606056959005610271040650261749089539551649497100660330659652957857948225699278800818419089314908777759234509435386720351130640162251526413444051822087529973314171570928521098919002114403333777802203268701765934579820848184813181788798026933855033535043185319492995128713888070266156090444586463237545647613159930421577105268391602631210621258656289118878605882100481727031732263012930583911044191619784156651228343528268965624117249651136353783871150276816853339397827874608569144352573410621267291882632576076755756948388569694715036327216295655194054324257453499338957991887235963987579324603523380918332954199361227838428490353401269882826842288582069560766242177127495663700476131181987030233949114203270510361951269183128947182798915132114899681795754048746049302004548909569450936578140343297535080219089207358263776866078462220441065205366392234214712441927248940282748094461681331181282165436808960747482525695665360777753535384036486431728594152281329835894590636402366266020067778359236642504302556357698850070990245288533120923318902735031618676568195216976525327759806776876534312260011483781879963880908982644938084786918210335996578939283256158568721371627671542842252500843286635008458158981410187500845243175143744294686551502421466153354226326983838390034704855253709571139312225153214211151458059978568887331709054503035467063329175937122796747163384419564745753756937054201088524494168837211504525770830286236670179626910353466617589441550766157569079650387922171465489705495782318097120667150657856682360575026278421875859277177235114605005667360525002534123674466827759961606915327289186066533925200737882142506590740881315452582955488617039979741397175185810740902138972242494921459132108300512736340201426785490690463085579605505208348814432309278818910856848974561492454894099575308175683911295647002922373972178450007205014778258316227170768782594333905296913767290203590848188531491750693937328423652194810684627009419382030525846396521043608661692088177077305805686736588269408438187707728758102446097514293089343825510861943375522245977082376932893406303140862078692342352578882161644560854516084018800271664330530662110310140334275807074799903285620002318540421523400028731792690640878292634553881067322422339971982319915808845500888631968143232980441072879603054372330251528705826068165596135529861510393910373457789736314414635116847531270805540694959137586525898932333782120574067329282765562061151638889639653984060156729238006208436296894550394974109379154705026221585034394009368552256121706054231069006080220131993415755796127051083018018683013510650287111503967469797427907974233936259521682754107570766439374411438231323049742347008107272228861017526389498677905255159191565892480505162645866947354238722766684662041585971085439068341691344012615385397741998257439341227491666076524217717834135807937601776479830626601086041249541953724085202751093828619492306243344022242411209027993549463824518786819154777544141137921592559344528303007494703594094460903540248921085667527803208554149669726059505625548059130570182483192266260892750769387803723601742111982703410932724543935161706882232331108610179496950699284332699155995572039186334248623348546492466847215287994892801120937297194891225456958194495968972001161738023127432970642407644320742486780947869811251618687129360693150448826929586192674709718340851081749937710819340386283343332757133589185537872163673641274110343889332576865033136763537800095224700957728409994053349206509210710465980246451578148944779522404640451099693429988091393107248894340351399872542568758722206678751032675273298242307597580743867134717136973525568091828565357110974433976847585652551308255615588445860132984711551117554986557391597291005177371101979592125932293158139182243114865084659665571231595312125325909946390901400301603071318952471316200042087021583294981032271529917031748469874214140203142175457681789586608549339350815213075377212416056956980305243303274557272367533383180274342457617021301369286403881692060385220400760185787734770845130265318962518040011394085505185875377631880332615193425358144836191265048451273498995520863343554757111571998710457244279297669604885018531870906733570024432619982705446821337334841653202901908884402381039216082859565423052785376458637159897540803382238691200683560166608654648230384124579127417929342769602312648903574601596171813204856113698616756313537253874974812633196776918812025540593200464939271455841529125617021696853958802536213443406433357229335327630155373678163153195535120433395120765452453489193582697942128224496870613385167231778672427786422281009276468082548354720802658475425211284076090247902858705596213848889930121210203073461745065668567471245598101100391020867640665380736239039012232856334253395801893197506286426822672770194711225700374021545974691234095370563357602368076486760140201311483208872463179362243488401451832216148395508468000427704084577778073070221443476376937858735726387744628176983066402371015045665508913224093552882258312772162756643091467975400992709469248886685938512768438133441264081682546759927115700765805997723201996846373401099053072539368090332888438440043822193052470106199481446021704646776955789266993926503700275651490233060897021696575721449549433901216333127473587243934466671013067646053480596240247071977769468569488586925095972721812307086856739537060008818906521727333335161638462162675635769775032911152255144309660406626922639010943032829626007136369031503112100140555951887007942733082155472140810938310948224401226631863316949550778884414126235841948702367277883395253186155271049991370000373663405017443434153781915222969557125528612169231302212112649165540859903240657532024172635081529403486555699844644879768098120608989552174049697639472829633431056240346353781779839137557869609688055615033750302114152412482075414903157156057422542132219411622683686235163653737365697138698737886093371689624458980933880298792058578643044692597813436723487070684942923010018586636170831993927272561789250458258091601019199598087445663617877516307966467802922810687934789626867570697404142768781813192888018902973057889592313114367362314510014568769587305407615659827749474004531661309776063215700124783060499604405458884552000504486518437487459974670389279403756881077161228710290341627934548949711919249909107963056765264352300424222364845933132975194417729343773635559919764674819569963548481997525760649456461912355105367858826549396731215193191968641113628879839900289756202174838681723300800776636670595910342209923244579226715377216363197834217877624514157485676913886791225614660373755088877006227612096189209913353739220766258734881140867809140740844945218816620333654554919910725886971171634759045649563362542778026144748466122565595259134013501539111456172532500398134252401809216108870926498626376647070748380893444607292461704702649295872875990949954269136735301681509658652952518254435384356700786578662812340051789690653568576655725029145590626889411600723019708444577724026359079843905651772174639981766553792722183162582307090518674996528332243041095474542833669713904635980594260591395011261744905888262103804004484568094223937031791417182603119659418129111625609457159322726117342715242324483059710166450959443495416212023738403800120199173767580287235325342954114083625156855771141050524022056295695333341994737668105737296303044918813905420959841937662950197676103429770903107889633943222399262532402839103786412259632354196724169520045937074459867190361828101107957204486224553600495675257356503592201755480164913339218087938795855948166508912081377450340351276514412726507759645514396035542055226634512152683337748640607348158627058360674711096660264717976191469096192631945999791968176834124196027968791049388223452146204011953804531940154097523055251990716061938116644309884745612111499717733150786880797138712578507000628063281602949696768696711251401579565309091838968419860138297525623620722103670253681131002508847068109696460162280985799064243562463871714036773980593539335224579913087085026577992653672288405414489070415314949235168639476292550751303735784940325740831310917431244714015427914942905130408282919402049844657005386010192786988477065592181126690809144797828218109318610078856952126658488762609211983574813677351143487872506614618366563076804195640053039210780446786970494977332604949941357818941770198557393943879620822914995462831500268588183111055900579973019528033434666006962422862667293011394690077924929893360384053568865594817899041080468036452797646738518278098283727717713555794727261419757676699192396601777555216362155541768288991107530126860287789034449456533299187294743316693764753685135115498667082779405077416244695148774148625558138696539619873186614299863510951774043732875193904110928457890827397306361917985175071387588152088559562210339657036665999826169158100740661459373631274719547310004886383245664539372819121197411530378942511858275194437323643835384382829468682950141404161991266974922971729612846668457184446219720976409268249636709267388085190881895900083927519534853077550239331732407478512064254281491345864414542524895588727665876736153299227495787047621803943365143360828717811604387391202396627041965530987769474441397335233919468468862302751202098103992594146332073039382630536295541289237266829564978653017468093136477305466997191729835643930146918985535302438411302476166028703381624286960948996398843500672315753325835814450157923840896616167723880051298204783920877838542117163234020789816125466082673669688615675621665662218880004054280444780130956530466109826929379551971907979064917695077545281429390433011496172185948847620540296833030389300934630492970424114572867756681938545574996964557699249023154705423967764293355707784301686845033507501711925005519368574682920097211461802208125734273638802094985727091676897195091714108945979978193016554355853228034193866296707093410263727091280162519728862198219804519305443162653982360618876034634787949402323069525314847658733862587504733095819535790923894672471655461091629592953953595195004505404315268313455484063143601464608714044214513693877796652622162669241686754483399072201414993199679756161959420217846164633177005849448120761175729391473197821839422158586853970470159565439066924819604185258957731040123097161399867412846581207172880927445820725357656924371342810241608383820224345520837667963467265310804497116367910309878094359723748889986270825807441329390577653338842036966122042671177188951490988174144321461620135390517257781442249999355986694030253589441388685577827482782720987330911867334213811859832888286280284526756877082521395030837100971836286703856403878846279936175655504027588058183608830282754122537953054534502523150678982152841972155105563511002622254824230476329281770511403110991450543911879170708463461300322805858240945236710249907206112354349783754047857644760248335138654384963897420196326347827213641190149072095492467868931070387131967358345524187637683649638965618068056408871467123706519524836945971321930513651711987714500785590848550473603063139776417573710093977214352080064752688794853279995369516647384171138083196863939306884527545101867409798685755976789532994702456804975646876226093533641091324049685735124390304918079352254829589961014549509534782341258758653480296831413944951327423232097457011383932761319721609727383738087318872383771274935034787051085244221198474087467908034085962034391354169935819160753451797785746293722730661474922414660761133667064505821596684024466666724203973840545825180906979234472197088516319276291453696600764929216737661884667816531599953487012309792033970610125985331399701468462541176615583010299458290878631942167233688033548142148267754438655372888897150147959808744530421594074673348233572458682540821858708802082169402524082445234097019514317956712107778994469292576245641365461986737316995926608900289167144048283351434500440325056365047961318386369750419745824409940275004106679693214534709619662301035009072820806930405448352892238677991235136958894542298104075118512882546926646661550752085982811733858835757471239455874903466035117682109578315708566513625058892648458709944045701003078400313954761441224226039560527956824234505593541605937873949274044032417157945984673699327290056805421687208445468254228473001142041783805055276930985973632956469726063251159722441173581199618185953349507812665291833945388438973548369178971624247566083152782892177625361923948434374195184815365835133311579981474381408139710731175485228655507525086871278850224456449559951883657654255514764947582142966551562572545845534437203673627373493571397223923088714265936505087437492850327901683735140453896504265213696413762788478562388403171142753503428474239738242240672438577982356078423987780780019127345189557208019966856029159319250187857741895446437459498878381208357623238158514956210113102176256411175962918254326827587607849299069293078621399819610616000287948317917388097038744425962475074724618552659593314510590887861443692110588676841606107543123518653874991258904444296645932850301679958825034190453459950478335614042439040124609761290273983849006517320664535755444850667225012855299347525045795111934645335668840847914403632120519778429591266427885854952255843558746100873184551871100423110267115051239537537485355147775909052941145600780864893080341396916509532204131740179894079836798835553791426200116614361049096426170263293297387407145558153263094500019843370200207939646178998647164710564601154921401506713594805802391720362663796750160445350371900351896460018308336869534467383613072183479691400213862667669592404770861194306675100183609164658884960604758413198561881506423927712859833103821758908196668601657516759949354914210098154144439808968014825904503191179259074813191639345170309367788390253097213567076590205234083112555183602556812632298983532878761728585686676292769958073748482453219155741507472311639756854225897453194563752147722275672248087425889384911380165749855473894438584145909616179614116144048589619567317853507553029632861991296602174647364147370250862905220440778612735866246702977572941340354711234070756607935810211611716828514920682030418894972143967102935228443475315328800078188566713745616646131626223512892667489238142980198152873987146563406744329135467796243036610086860234624118090620767330024636308740080871816167241731520311056612967174245348326542783726981788937598266493615963703266226076561009824077750452141097425941303219958496486248448589526430023678257923652205555060643343486303794707228359117216610162974096727469777530773892329944116007965969812811502041635736475397245969370043603437010367361443766301780892145024233236491660881099950825831952308944684804877022715153988985007042251087767478937226749548685812092091773392509969652175558894327853862364487455311425589059469883669369476784853379326560801053004036790212880605543969174059243519784261767807255315203002147762370832946751786193026944148124388705147451696682570048521500272914864288342962097117170187229373702455945404625610827426258125453490350752882275841246257491286265417473270581969141110807605701065474972793185560368976374156891925872813859438761449996792352697252820298883953916814688771258491550035478650042546980701950830789439933897508531028202352289080824120830521123716334462378217958446372499345929034620989178696851702100441428821905238531911060060683211335172354411510730658726651540003567734776129042168143793890300311892922965529885032159411320987212924840339190081444656135953537770611904003503252876919463803117329929119419629875591743889776354261972973463194044115144040727333133113780534763314468464431533001645479708455697899837396876439885576174583003040711345739235622788578226082728000186907794801532770197870535543054444779573494227963039436341825594644237682216469952719900390989820675229135904559057512404958021396438197408474633411407366940999148068869926894147936590261242060533492779789223539819963033842866081400094300636760270780061583700402579488838078013023809921204721595177041655833282289992096344436318077166310117030505137801364451629012651206512482393599476428237639331061195463961519231711121977923966779435801101629037537517927777973945101293691325088075468338000866244076052095914817496869460601220460407568856134422698845946327119611375680837856370364364551973189600458952334171854795808003225691141777945917075619537700638650479497675915761347480996063155751937800656135745200089469284494991062941193087721437459181873689506170714576000367497632602162855406628481398684463590866431063143282398611959355987402709294277938401384749407974454267824652556612158484389968763078913153532216769616146565303393589536136541222040083854291969622075486092056505015551320182461235817682714277879562339986376752268556872619757559193220555754721294414808301314755466616544408509503273086254486984105486721218098995073271610635579828292538192204071685081715808287974962743628068767471805530835646832784025288374403634804899166954442635656070948049417158985001182033700826727125471224079464900254497285199169726791292734482288434122380059394328529591648638389806342521700245980694994869842363760038734071050437188405870765953018028165924279065731460499204937041318812905349151694230957917570422355838585170092183339011019517228188049710158641856223709724863410162954050949511653842066957874409155920604843293617691556522001568466533325845257495123213962893395856851818387288252858318940729976360112018048749898684401276522873972366425922708112763946637591212524020271807770595892031398971338228201529059232546562620443473248203227188076653951749258794787231096553883375960689072010097466638459410279830260465517722455469617577985391669504104869517882695751747927465017619849123610174599661378102058278372872059634630761459989755333179648787677800812527279445544536801697470663599922948282616981807518808501562435013141835784467307302488852364186442136695734875182949582300980972694544388659981694663295604321200320661199197264626477175310282575816362913363152647207956087172379485832063975700096488755159889760554125360394921603810760352808509057195329819142348664193227138268177795163070947891996007913579898930929589870423594514837482080281925174677071835527388712774345804567307479253554783045883827415124891333815819872420360545496936649905518677194813140155271570337263311962800957538445227902632009359203157191552921477422689797046903192366692225987143783700166917704134348212948651031314997956893799973158645272623377914998423349262617614221735466119943886765790062007053817274816547312613821977965402348489426980894163886681011603118861498454030916574387991417576159999029525468693797053534964941724049209424598233449999781798669601863238682699569894350531900923870710329977856645696468536649795423852788329768627401705454520157465238383502784309866448060356101027067836726143186239814439752822838105806337284815811345845088562410257097564788616442044947091441202804458899208213660885729277497284502975101494706521659264718463433204033393775399573221429776400673160952881874552632733762266029764479513942940167145176326796656914972637879273736889614279225352814692127750098473962711009333441225944708903977346271652440491128966700663010451544962162186581042309651448808902512282728818507989991288716016486377682397523978917804687674770148017821673004157770158801552329214418409979363588524946975691319860243212326885310705090035487663636869210159016880748642332656440016427835718727851521350912922503617876499716825436163698864717642735395615298095867180847573200572725243891903204374858585947656949119164648025935174712048395244001473920583872647803267643157922789374208569571899618403919427634488776703687200495816058483714854673335037852062379313971471104343013360665290847867813048819124531494747970008744437856495502425073118381996742998303992335789700141145242277156089948292103113401828085655874115292549576777520802289666609593148746654159226566449911355872664147590711461252330592840225531492816171771193782900112639720714487100638512650984497487410985166468736131684362895301705983880066506828122513809623939283050520094081477081225871267449365341377804643715949736962575976589755172207720628896160328549172107926510202063868699309633238146474942164840720493647895366433830861369459390470389827773456197541631207194781891200572222776988304541493428777863015468046652980299288870251877288473598912908407255240298233449072474238378797950498089222193359244044774859094926056039702145747787228461382152274397787437543905667944221498461347392847953561324887985020154502139479235199353040700182846355181037451772766364595146937537720514613335564941769422594642669324189020716613781205215079133254593989584491272327665114462802886469625255790534159305581655884110974280929405784724414028195863105535718727215020056840225250755296152760020136704886029913704151323316328510391668537342897392194315567633274145708611394366873866373517209708366049862019933990396778498797514586247319558785309070958247872072175370663295951274252181072764723174041720340030781555137431942762581277904104779425860489106232442236510294720840117156468484096065908282925836670834332591820033507697683267482618345294641139483622413119281935891473135499719291160651345675326349242233542894742591107395764736056342648159165128073274536444984770152852646677682176155644685687872525359150491083839499458556472139314828145918696901114724864480121337551913518115781847214124887428481654888409020480984449500948691359331682823284612950885798687712849487034040213684296490547678238758805658966493292318127371062289629611012979218726774972557147152941507892254725387584026742546297933802790905022538471750603197322805820524598112148635673395906150410445356940491151916312752807165036617517654882156632075031879919210544295282024309440392819865792984937105702881168731011303370050506014467959145816359384204560932682820357560775459950356731398364327094489579300726988923128274205480617242301398385923489503847698780310717174813499351741393199467050869280542037492347110819576257906754232305322008318010564821225691935742091130589528721558031081525723713265944225216821956412499634795860796638059362576217340963958259490449775492817938508537316163328029888594865010950226228159961940141458557248461271066391121378041733750262598777360303149015838223768692355230162328930414795139286419203066340594999238167882772547469722851264963504698223066898444593890430083730670248777997072450682664638214848919931815255082551736236987794055116171423362335503790866378882672087483092167149989640731159126985082863744424110695514601632268399321819972384690895430016917587032045801497751167095226108089068050520612351001596963865506080486010747055152255890378214436637346754600934110226867154296671910368844621860542253182037452882204567507809500148691838964231624152633256085415853797080430354424268221103058815335311411321980139847765548903763984202580219082225767134374272105625391838196791445014758368929028349100603003228507175175676734146899198148680538046092227339222667359929379840265846285649180968095793695899252295043758664076034312034393459180272765094499182611010532166906023313140672962386367341816257617962194068295923478450485080855195292248400655760837517856546452473382719187445057486955136270425266217394865955517943565772789082968461121001934212044988387522628879719408157324114257857656773929051574727588555747772007167181417533465724710494703660461867991261789105001924161695101901106907677434962223711146278386038127705222558481562058890272021710914122910019601304911119628431047250935185912670465770026469273889177609580129739915307982828050352057170915776040013591685348457888315689687584746810590922956766581485075013131829886890449153631803301690335038337308428592730569724536358183253456617779153414987570576601693958082713280593535813275946319358943262803268581947069310882092886465432979328341374787175117016635715726223468614111107327788304799583627312030246570287623761230311679153395498170251763650193184544072058582304686585587949083810317914843684850650182955515448710802566347221451313460733365230219932201842869210398726747849214480597206821277911322113715326770591233017450403190075208701708954907215179823822293374420972479745280289189235594022519234972011783792062452477839773436243287887286031896044604554357802100517927604854040819448865893992685204711978623948781091854102429381849363934873022586248646387404936622650076962767705910463884100476491424947925666294831203479846306736940798183276134712414743190037156204529239597866858551320115622926468731108070345403978839886786358355131481190619721429484941796829841285226610470480389073484865386630135697342157975608214597766836411271962268174810799038564742850509057182500498651629359379385033042585131428101065939110306407771684206913887772637707925636500439566979629593666552726653646114899917885342339007798876566357072063892906420721131269392372584855906734381146458206540714108865173236659593896727971067812038129315151804339011013889512241128645298871779346070624724202240684762402573148068007119551069379923400381789603330047824167475116281823295348297114127800247738150128857756264094480255200813722050660274206044801868165987899754560331508276725125713896506201850338962139952694791570748050618041798102965593600688898385546274251825263290492168715440100585060917571402462012598720781008913831851689218026206351934939657089073065596113653579556664953757202689702531820189977108530928327355166708758456413915821250012733009091880322947294431374981379528172260383022499011229723871177348211286525314774653152839277318816072049534159466396909178177848916839042750056181771078223485254431803513436852014668729379452749885701423828354112006273933842431554845971947607136505141782123168230071774748666813863954818366845755660239989849519016030220605905740113976696782503590017879233037915379164268450091691470830630266262654864995046437331920087394005893912878713240716431414882530236790824324611919545991064725123646715910731318359233244841315751392633993620248842615723402655092810163956800320315234491365697994324107385254009891395629690465257977231966178640773326310723929560812076140725833785370605691656250966984256609065656856263607165766073359536530081316607396617406739494755495523960207920857265527503422870527437934451296771625662545367915586081697245053452887001637884503850764986037616183394913452290966128111139899858866372317118584058450437776651927599519679243957894710744044322468232322427819488285800821158994586209827600195719025610435575282115695364244208205907153893672713106826628937266690099668249479546027792939613146248880857765354062977690970853564947226818196416976698327101646478809714402487696909529576506757892797219304784821971599569642546027907617719544520075868386909248506494937732211076724036074033407360050620832862249531340929620286495735061682690454076775968656446243223497006373876457159284580068278829914499798479713364598730210602349557997414436088567457982047849252633355573141651955276079230779904760610695922534355239268545890182060040049542613319741820051402306913611928475514359449613892074310357501843739221584109139273184661230566830805295916092157653740155445731610236447539906281901879780223816553768671699749609495132622707949143647098759557618069006681849770370805743106860814450159746364660098602307411936445554610704538086837705995870210384388340689206141633168621319675880111760437455462752336127430966095359575718265628142589328299632134664392309425028642547442164687676673594453834888248026677995743326707216863034423216896165629943958843747081013672873840222604385092090804472350706075561105473006181266286017572290710709334713618785599191679766272682439001914655196052161518580686927780863760016898037124421945774270611898071050272468888660819398618458516307530026284059379713034731425144485359234939154776391329671826169254667926429263563846441315012617283044037631785495716751309655283997449397641866120586027407269686487954050827121009531321703907435069257457884646750525886986912407437455978711732408313890758041519000811833816938900797842585980257651061948672978373641745404977686831044171170441996485769579867394217792040871277704007262418147141534587666527629154717615504138204395507817627405114343357062056662628353949452343084500467709749580662469775243561654047687378437158820450226086806007035846693017031427994883671783449717536308982217995820345363741739682931224521936968842335164777699084684671916529705104393445405779616819428540053371180017245199916907592810769873977966545472124122465556421514560789822969914081392594871536277728525059723541576857024182505804255218209482380786936202809177624054472124460025139201673012874291093737354308438546743299568635321560322066894069797058128675696006467113708840727965101895997649021644509101921571413569812035975316893285301302696241456178518632866507818188316757736955127193412346372947233719121904364298732998704324958221138433939054827492311655273581013361064460698308476510203091862787711670152431093447936021852390675418471155210673752299858792580252143351335282410543456260518865629043885594676418676568447004343751967712952655444652993753236999678024892692728827596716459450392162145194691867270446514433333227938893264701963217344706621599526679258638542496753542415380471371308577647289480866871807770942377958008940796107547827437876265822955979610032876623284667199267626724711195999340470311166916865634684919822059503779917388324649481123587990488553823556132330315278846307337027722925417841993418974251877841397331273939402817706923522450404276374186419164225154431497876625795435503392782927682551412459556716255634505503877140303054201747959796862307150109878693819740773188394535071335808325545625112255864268343208982454366387038786584280557414776825224199661015994154790543095797693884991858883090134965919521497528978465325778465255922437141111198572204311744040959775413144444086085077332750003736666272661954313105682598645467036321485609552157819803523392729647089471378958440003331711662039057401974629611105616144384332204345086975443261121566973600404753003874240250963537498527105015152476728582318766180976641380794737019825035645456892985681873133685020965447400508038314030210054852036538528821310038013623683560931144048522592116249100261413321442196084379297549371562241139950307997171495087079224365035632674979109772935790203539610976961856524673989667060803463844724459570844547726363164637012358218259192318208154258142138475078974597715023937392093584560701305526717953841914503912537864966085527814784633090231908519349307539644339093619736338167535547428920795905352574732155165434807135920201598421483574010986884288021043043736429457300091217682635157011286154896031119662328969221059948932834758956301132318736543112787390761813300527369444761200641042774588613240874500660075788468636033648312175716914049094290825913200981444414873840056492558791268661836495789801913695710859307945517285112358452614518950929735072539626753576174110609963722890224283451220026148485299286141555827993593951567871724659466041752267897937411302330659209449933597379767067349504080213336665797718162940569974112353550509614173396003674396193218132723437445188224815734466435667994755894446518172992853788846671044331395285497741222263752775596824831539629449649790654778346920398494770151729332137188817555964015090439759918295133835810013579356020959614259635157753903979797731427982177253397752541502795305344867880561963653915744082412364751216099560698900855524928364952586391544127044810609972491244087862230253077454347185286325114341515427392804338120884118838420623053849190444971398466457855867496622576449329404881890408219511416527894291011612271355735301830286314794737738567964913285181505292806738586562188729338464176992697333782001985043209456007846209155554590144591996264813545165918226613737849614284255612983481064771332537763617502251455571501333436134350787439675364741449209229864223850236305020106692967076070064469867776369961215175855596502254506286951818013693609803644079239580658862059861797439748014692602305960623151995755239861582903801818650983040935948462650948913525296521642789313622542846957504248021346769284993020435901648939851729444305762020320009660056234709670074112768097390163731578824584304308085796207352025493751987545487666808420921806342395757014368683637301661338809217150800690167994101410350189991304150704956267469919298666309542157711135330695922906416361315012131001947716586288167517498004078675726228891250057031569813097731471862801303113788057658659538417271216679807450657501395861017522889929151733439231945104777886642587239371134898985896344381831313779440898231655404433757049214479391734378915405351643987653420852061487885498060543254435175681397218660744819370259490869451393447652884565229073109401923491167689935888990590151849866522186515150474075914213395116041305960055109404952909441925960344956419477519228863759239268540412790387139738795577228878660541701245263892386830425817792490571213367154531249751901910329487791555793168481469634858789039543018240195966564710504388995766918240190108938912063567571858153878543483779925806506261065386555054265170082558629517045049374212015448513036714267045877227172855969179894940635527120103967157920528726764189293463856973721911881761773637747037240765418703310417562077693811055175472841410848279087214971137352070606673573337410947373357102265747877916967702553339343999732666195884818447753145410354297910833447833115421778577728522842653411259293637286844722762028800410418798646792270497510487598534658526251617693077187936084826541368438201260594763694180735624042828814148866376002861203402717551443572304320318907984578229264000922138761404649903016721291890024338187268497251069239667720629906098691497543721084309743010967278925826112897515182811726592800438816801372416571851382168789325664952275538709878173596104522257231342424012477134888802332995237449919644118953503129288888610795579355508191678991009194435717060678940062004136770345752898985735682199641363142128340704648112808516757294921034686571902292999738263149753284707708737383908125840386560479400889472104604396751629757465216169653344993722740435602219882932880482817554293792528210619066908738199117500314507618850100701366412382744403895910216679515635318557792163746739931737157038458643304007538047360609402700689740879836564418035206849988887616501570218024782937906194162345432954518286022076535521909296554855636847321904835509892733483914177316846120827924839886999590668021873701458330695806455619305559176511514687758487899149789557201217254115847905374916430072976066771941956832327294133002356659773168284779144605043743721821764394225387980869636677896537368169150061076265276347456528433192347974469225168240221538902529513127682952693968297518714229335309948559998084861687219982008831156445033394846409436075708345305534584545594568981794661784735636585343108678658045707520364701935446511580630571880635530527044870735564378536468038508945732698009891856740491458967981387682374781730407893566012508914889533583569358070638916668082810425739249131379536277692533505114552697125727002967142738927703241306829726546560805882486037773309006303825958069346791105463749018297071627703556746344274081145841367253724764581160122486592261094806877061271386612996929005600043263571994565720368924165082354605906907750182422566809974669586463028575291789063940531488162090012426006096143045580388102296485987340277771316328279897092750306156934975184599027762665825608074435317416191531312791211113500357946144320372295334385546438864053246492123794729999619884667471260822770883494942167485910373363674663515981005351004595462029024475885191514545764528740234552503578177972087716722480854379852606604203045011610808131625952958958070206595416083701096791546227621337718932259476216494157409180172624996939374957621921700039097001712902899958593507529850464515493122402633690709681808044050329643606320528108625507128786979838501121337710827758387342039882379156868608153777422327839666028927108766942680768985660702228875662998541668855792835671951842897341957368569726666073975740197210616491378003835784254300080755591396337201264951203350945899524390398752562746917232531888552406288552336083237891799980473236071090522955557864284804939989461034120644694212989043636568337617632378168625636802402892544352661995500847396164688116248004336445632689713069289633479927462442433539669354637234294172127401897178770295894123502416286817041004063547276862384673225685459015151553774272943454507973899013839292716719941403580225372143295589962256847872580669088924536645925851150414935204633793566758327883285359119532387063725430688750933038356204267589077379756562683277568057550685683460176600186395507070783746271732980476855052209144767045996309731032652897363790203614178706225712456472629902992714848388169912433248643319275164835819510399989319410491597248316498809119407050360067216823928864491257720969522584750467288909229549256396338795450465060139311962976317884519017037482691302962735929791250249435247849007228659131169447984053580923969831578713104898638109647159492231020991379524951535847787929205876243008215714816341826990932324966264758208728172420119031727316174681915860131250816270494292508414502589230102659463140534905588251993436289150787884059231491568477224714026962961158732810175907269823441667601467094694178380250970129310166725543126734849305824873731818771519188201065248409521423808496813991753588284542127337098037979372741866067311311717644151303104147399797148161455662066613066049820667102889198792876184097505966085492613093093862848740137687247166902629313960076658370911383121346593309923545820167761205387291131879957748896364083598416577166801932721293108147640356456242277114819073764098547789582524273517904120561867565117528132735593256860282708534978924781854559323136831560012284529658135707079310549644194257712021657351836506630839161385646881075448431671212165620705885505495540295799368497258015519197857732724453596078743663143104282571514874102002039643164984722636616565832293038047057971830241135594535426023089748255868325654303732857052582319249933135431417417877023710475627080369246329708496582868787296395647037297149088687709485221254658027143035438036499391028428278384496077198478202988265605104448780256173078330779391019586859452842786177950258559697138367747750300406154853318646777926016846317059967402652926271690689823260785673060535016067543286127588910936129529747314831593349455091150653293598262154446600824630594189416521385743161392047221785900534115409429519566668291866722204763849887709150804212863754666073275419594592232025791123534513627378998726850822781505047274045638326023376116059421173032675369722125515069324345359566515057513459068567334215496044531407726083968580660502312935990311751068855447789030107523032498447252617686182575181969925009983660241553166080582213920074386769733762083323982374510057841220386793265297665236811155627627196528120259885928403282234853654509838419679005804870835526610556489363192473248154889534723536521122533162746273896261721022704526624294230450094329708120924859197145868186206934546168622570430306120281607671111781035393945750865093726047970756834194097030118637924721720628050884150218896586640934586106870261298096966846502018319119869736300708954698379916178370605561656219358525021261458703356326619739358402951667707569711112486052977882759660328770068798308651597609505142056795378006665405124357554280085821197706277059372824208358533005963734083724093109504155322903545306829920843271350015772379844048100881305102179009519863309821089105870575131391289078211238803879709741117059143092902315780026287065852311520730856480430974635521622096111483755816794216273282578301620309876161554277299617753926513252816514293389553814263900645158226020840873055302069756613210142851119152326843924297355629692998582823279595257540369002851088151749366274295476089119940353329682553430668229960281200706603897033851837205193896978536415617176871278961237010303152616013691285354210091722031957902402094847748082048727321015815381165593966458246374361448238410651733354160215763624220786439371176859197575442505463459955569286579758413973309291476222540065454592076960002579488718248236678846348144478076735983626815031541143344703470056127442188698642515527844774530026300290266319901743570398843555531335993638878798262474709043752968431402373795078172716653293661535744104300146113443172847451047844404501914684547519019617008902054276885521998592470397025860483253423530059686903467971370275686685667300448445385589663233060632566713736045810701786304238815146151769023550884806845051510569777907909872459011855533056498696703570063815245033426229385481025611480460056946469149043430495229870355611179632971464805470572046461190102416621324419450901358872183990384770776704251168087782606541380819349687068640979646925672331475656437605054360925628897290254840041178268368653549083669532015810532582284174312932832146718936196343655678263656735384529393499497594099105499145019191096282076219964644040009320860772863635458508535093910224814707495377823077599987860906275709306772795257192741339168369351147185969833511583887437035757440598170938285822028477573047530065975923232513555716327870312821048511562710761772885293520375715157123001078180171879158020144370237673192960478035225364813839573374196288750680825423733163237858401537064517908741142892070120510144023726797922882634971171589176074187782839410384100127201816524408239191906747238018408049112846908830390215004080879740176914990697926320423187147260010325053978583002685336650010451128565110967117487494316441344578231472814054227715069708282966590195575852929496677954930393450521493965886256579653897026257730693151807821458619053342780671311348995464302485055452508136236277388836855196522307673376561941383227278739073540112790234065428542731978538973860900749246569852519763303346704023085919352554414771250356547704818200111159241773062158842428449576318421269902962358982939941896014554959204755746741325485174970613553002705825504120644055047112603262252134126861116397278177948992457906365890846252322671485535276385590930731796448175966980989612288014460088106058898462150265669449386264593588840004192197040216875418013186702544565170948888173081091594035355293676351576680006620376297421857346122258123824326910894587160831401017979787677220423105089059055052567679019464035293576802275606439106623426724668754422118245446546801427105837271949512502998879253528604319495619537712682651905373072013801113313731598621794533434472001233202481492619412695389359264896936354945701868971394001870681814169385154432744271160069895518025977419311325474931244562221056966526002309451777671376126013484170147819434336254922815414165243475780406072204043552357700537039888457548572679871178837550059567318357127023443345832462774286454528349790612201915922141459742718568956665542576336248358299868355645501118904698421754854267555137916424184788128310935601538884983864100442295521620021847412980748875375215454810213747957094669662744701685565313496644125699475333804052786483581032117545261299553534327405543375441516387694297551731161167025185403640082138637785347308392721712184789170644000224738981268003415061987653909457205280640611579815299975907911611356591890584478104015866858733426139822226473095614018761384097206819616936704718788236837487826394465550472999662894041042114698999569327133461200167414356874110395114646345175135864969876750641294256380100671343913684021652668147458928493034625875902003018641980577515706047914756382613728981147439855304614796032183279863117555413019329438120967297361394070732942770681461079173950649236913565097806393110213009135360888652794372125534875289900349867797332378669996729521777794306023328221538740934306189646146566363034499800030625969253479971533455441309883570517669771610812069239104303543783001367175978257308340384774690882785101196298156105816539474053286923522322002770685398880329481369621268432080812027356936485873766272589837670007257504406328272753747611244041437926897747594045771657837518843444049407905785479438275290639420144241960341345306668568606867245436578098329874779425980202652774902036433642175302744369990612838396026279187867716082237421494299797067861564036550267661025256813147867469542555909870612339789701433751369448211568894598287902581040425162199284031003620063964409185470576900437330412629704653697135218286140453570869011480031198723459477433182423699628290364255080433952939415827767017067228439322925103616773683303592701142057241917040906619459817201596038520793724027709133821919524650592270122354157883353189366972215017893778010527905712361784387296972144828172999898205648512307361369826839128272390900155401871861511074013107212716365015907034627297053041139503547107568426014114817795138957805474265977729197160356276331849084506444587965979405893618104450818849306734274822111844125152045032341041099259624589577881217343159331865265833474205246993187895612792599712446708294628940563331224906809386251489063019613997678250409018636465114048177181330882396546196095824966263159731409577918375593915158608238490908406042442579579933789626540169807978215203731765337859167775151077736646546329505596625879417508983909431074124327015034840993006541185823156836940662579457151362762468382154248988912023850801765410995678544913937880303801156477323443069170691227421749044490480537890627743344090454458477807608749707691759904289396911403960522306758792606591473505805658449154686871247048254635146642268503912438902652269440448621732209050256476126237808781621107934325545655485512817613739801755169213363165835675930421707195902582350946199494306777881958480840590102463273358482769524065589688048222918413741742502424120815799188037909606828596643048818932718632730657888156825806774591237084965633216550602041656404449129485390758097140722814036684046653863573492099629515304362092573713647203118072361920603501412664121988850412322072441619635798464925453302648172254543482740191488014985030410013289690858812684332579298305040887861576753922324465800756225226749419529323525481897093019666027035002496278874171974254472829902654971433278431682109177097693548296389880677120239109987115676251115212640264493251068558450826245843393924565187492562626467159611669257336548687238702267165655034515038685514007799968555446420946777317151490092427884376825377936356293367650921199595643628569958785969874434530483629369502554050105837931353604051121222556803801691086860921860948694832222890584255651614971303208738636046705269076165460922098238905357584695576937959657470889397777474211074347227012220102803085879656420068334151335461761587031509947771297964015288553073951653751065638619054666108778846836721507454537026808335549931149956834683077467058491488372891067064051658561901538157532075578484901131759682615088662419809869369753115770167092319280667152583499200587377829040063047454127938808871258293560505822385620200355830641078822406155924991825759287455147930402735976331607938717487858556371340714441047493136046117607620791216898260038739849223461574780051106495900019744016892553862472414262781493156789978536397764939352005801573404406726238803667169614806713341780780412621849859594990176547125969025073585133878947270388458454463965010940476473250386972071359432816652312898721346527362450032472207296569660796701353204557092064385508185345170316875542010929930193457857313853555585734821300182119320470057878703483049086498328879804493485032311386060799538834489183525080359464108884296475464859940326571003554667545270397294392302199942683287532920688075732622972734741755671552916250778540802769641196337618159042981445507528472400431264310173164782608621064158114612145432969219320469320416383026033744068483930828810520466373109157177759214727001828238622054955390741298566613701762005392960495890578503719538133499080922384869450287513707480102843715424496983856434566693240127611284984825409242150796542177440213923146092903867082495573858607554789534785146148284286832379092345975441795893834607971207940812978358404494434069503476899635854036979045436182815448763204778764645921944602244172927605272652640742576167854800790815137552215655754895380844178005417777275268289407517020561826832476093706865746704333766178330476466716365838480183018246847885008372833615458981041820741918558709914111349240292048243693009241430775290983097022420051408765201467470710862953002252263374281494735402528112708597428662461774530277423921170183498019525237700451862520572643769860695898244578070011134340714087342533691414223840513111939458005869399044656664154624671564646865806294346841504605847226364771637805196107896484146251397724595582491341896561292761122848728801790867849144206256737612103131486774667530752670156861739558003072964627471295879719610296813975283539793303896293251102522053253732108652611701396691238602839816239255475733500011613058493475079612649494070971419553802879510800098410378130923062922998254960492028734053586695452781630532477375821375413737486397621854728885608919612398265086800333098027636117401493894441008629987616284341668573444586152394937290526314383828615341660658924944792534325789151506063877896736163828264345366784939244576580646376189096443223558843934297765531283416914346752901905918344373354372984535259144613162288754724695878712747340639688868034349748855146702600673357777872373967623636340976970896134518755621182615928031464914136086556874148132940253596000606744205333468333944886266808512356495236358453017996138567479966547325545448141755050742208228003498673937919306434349942943777500049028727610133812196521094003263067319274561975529421232915571847874883748411227397845028326811368902051911102211581343260195609149230371958203055003678850943021825418514227453075910003957429744808221967028722765289622309922466391972205360066350217397313590900717089274021064190051454386102369630257699101919818110904928429745602165436808262199420995322885433528857357312114143078985509407007065154829032850945605266230658633506651401446187428216579022318480123180722631284675395635325097263276679661720062880525962311093307835322859587928179634646341540225702062116206499247313204374428364138600416054875543443955504716182281808332955832708414193197469704635945134366542266842572181731145734006078843252981273211431699418856594957161806239424017264226015310236119997589836740246094964903962677460268735501577917711612743739437700297133502118923901503168012313215370175471332828425980526019589881119573972687820174887748660328728776196527492362611891047576240586654214505195476019425389596915106263349366874852839891745398095427931327673703417968443552919615747270843710418741726468068195809973311751542773515484520973915655829401258430644499422875663475762221128298515280175951641729554726996840893190140199518672367560472046768965688996977128385999747954309682238927659178996398345336982430769586678130690028382616090951064659524005093075901395781015094165123427234844488213230510934989225321273738670675777531986863138455888789733288425546511053196049323921312193656663507264920998564162715145389589475335846653689540550523521664141109984847327392221804183548678371564751137873261050323892489147118748760740009272204955089702393945333213145974724189660700662277568114752795181600326947022502721523269075586381037202653308823870420078318248324848669327127183974610775817830212515996098647338327568881214000587082261168330007191571073137828789326896149327549875233047645501815661130472647712124138815382881395638017296757375465357177165599082502379158217082701803409569637161517251770916074808592401369041655022566733909111260347276078948728192819308912217031602202383500993128053482971721695652706795652441864669582169636865884325604326424201959958909987591185788367307383917322096345094439685014041289142161666381203078905906343420147730595553368284926020654066877876167322603050211151644225673365487614698997581612710267713690912806349536589612809981035332812988514329958898609659613440523084902632313061028958800810294803248125974727568434012892415988161355224409497209229850257767011572274689260152836724153188116398786822852455336576207688573852906664580266527586754494618273399683957710834325631190665165804296312685980466313362062721259934314328132798850187502221345502335912173657642991939604211455287972025397978572985373490590779141441182032954310542430206623483281879459001465530819986999301660882079586296206850011785916931988840340100769001325033909590147961513944204831411049082559736967454197528993705730116433969513463863297716606149380200798111556248483447931335600963528127785572071694389483622489710492895409800547775448152708484379566324550523438510637367761606513869326576670654575372857553490717300697349821921898828443742921671231064906375570588795670609271369593787544465331071253560125814465372488591470075514799025189076507116502875611205432455330916556267492062106503988396749623639220377967124778230410947737894396974673413041746503222042148750670440506349021424227786348650262194032257394669833041438782105143480885652672235592484878838825691553579856844753138010174763796617661881954371181415701204174802129116465278494050629066055369077709794749748544434806945714267200882151262466952435269628809234295991537563199949973302957286402949383788448836690143826276280517392708687116320469119339944857169872849225728216255038684243715363497362798322364411671418703006235540425311352868864875825239367111278159874187550562424728640941215992835096659252179612749807048063939283938135870954155868660373043999951377503606977563016002897762112780271430086813588022230061443036407172458401020924343635292037991963808367575960383459344258553510124439779395288861288094322977172503991381219645876850960777660212089745230029756026721058617731693003172708288502187466823830346724642948795431498600627145288254458887884498188758090730034595615658536853691150381809249458846353633644124026987374661843607207955766073959468382747594181461576796101065503659199903846555744180550022382430729187863525252612790613078225936613150430702538082402512655989539118505890032563105002086997649206789591742451384497658760042857050535199190974138083484181991887252982938598164661459570707049939933389121433149491705141211338682137856551703985272781153493219962579618360116824435857496950995359594085659717750894534099624501197503590725201642740724984193131847824299661625121876852725957341332586198587422528257172546091628299853219309628807092868584864866861647521207017587075336846180822966882192177908622890123237741004049201995297698359699342582064031091629034478053973895132133423673552475607968996164053838772142350976972159070692906822395360477449180893472760611269483653641390206313404468571309052749809190216607940952761521188993327033360439890043672243626201647798896407635591457152258650477088188609571403064742189696009239571776247521489063210330211031118348195520781121132251093739753997138287882389283688652546981746000761067923911819781361650758527392669863147364994893447301006458484125870736589043900038174090347626293727147775109574319363988740943315649645633422858191339263085359088891207605779512408973769553828848190485121403943486022796775436285516264474735171903789036218211886857237416042614113821053667365593340445465827526187361254463939842328587926928915406717388167104901080753350728432476552117566790327675887453321435417152780063573266563045475897581781866764697403152481676739868346728154858268390426580790153543874280765894833980163745444741746236151324662239652526865006022652086594348381319965441913217280278060738325992865316148267024079690795338283620504841984567930011951537202685338616824496997017956693039597070758626452790704200413252624486187655537559816818720314624116235593212490590280396740878236265006479625101078894985297317830297856257125743413957616938813636011507660227298770285795270208839859934820288014428787746761364694301336125809899386298377192812461992145191120793207423116665620481706493456851031330329673231459793808520013659400311848354361123733847550960637621638297429782260131833774074104624850095748542314319670429671614575100993042379983963610577071402962754457845449362091445237024183281838912142494394175987340339821241162476381860269125905312376879602985666254301222522783547339401628934373036471860832200041955708078947373852697494981294999180698889233654792134721669776246431978464170620458589213662123102254202508681503500524248421430747619337600107405778079321014163416689028242960812988382157936864562030468504701983798561453491296109338951492420509354684660284131444119035633503307517003985277432738700349843680493965749333362748333097639849248894839338571699454111414398058903096863112802815930446577110551479796707561385772497330522433416843626805726269870595472378678188028201239837875443539763181677472857038980956826752956973072343438320009867757774828616519734927512086404843559980768293834997729304721813592801024445737683545995573901366757478559779646393279263219396052557765751171978258957643420574905294576000627570355435346144337522512199663926290895204168866724722562525691611376354612285343903151725316816124928600357566148517783813057218889425261081106106066159205409594996148503769741915909963311544651796970804586464647513842339934934837244403208976284275343535895668436645409483286985798728230060811757533116372713804233141538958821711392956659093809220419823560984326214275410078905443105971219155362848774197688292521733750770445997412401266578773393310425115361608468252585224662244989841223770360284878701731364861876132555065816013896945728541025173432322347622021333911854391607170967419701154178904881330158595075118770008404759867617595567897674813512999421686696432283052044322434618421129401221390862692683283224813283735822437251524819772802276779906527364224037090720309129525485910501889913460655863027761724576021743653218038432686050205962083815149024161332091656314105922698015692498051773468040623400075504017278753591701672249988014172197668771462406941439773533558141980914265342902321158819182119462639477281676508520681358964204873931790382769260624684705626766249382589233537955830847120728104936745365474140931095234168284722615167242705724768518596170858821407306429610473331903419812432155872904819784675129596095488786562763494995218952503360089320676288048585526978995088915049385573938540543190395903415318973403468977123430924168146143763190292397676081118677562358811182550540614685734683115869842164937891977346341585579745901748165385490902151916858137304236654105358339589768067611698822345998161462210427814541957805529326754874262396109113041885551196865337970983614637930699478957935719795163240037046402818716852036660428551265372734388553756004976032208060480933104819286526525668164048222583330528478365996862672030585329795818821070245628086614544397438489410051299246622563134945080661345259229474189085532746368127267357245169836109889552683286094149647863371957373233164012296181445816101311109451932569793398543295513452351001290937045684670176799636016196153702291193705079110368742372107178184906355988629047423643302011406505738500452700512953434201273023300705053619597246788542071382522555690120337998758179350454488500437007783169528749065827430753098158879865019744919715762867652061268856772415420859198903155691367513541790738010038051703361976774088594425535024892232691845681891351796594453484290372051685486959454783417206930335799058814113691513662584026341968432449332296408184186576743690525310871383927209723246789135881662463048328540387376807213449079536660272660300974435597803449300298944945032199186001232284576312687447213542102131326843198882081108813225539682387126850478040099625320534605160300228051712515797825708659275945538806139884918727381491454878149630405470675941190259108248450053659273984071248032158179997466117450290901433589927831125002522083626899028851990585708274150378719250870045320818595228800498414847626041649862936719112269108017115108949007276533793668533253542676343173049543156343444103083187672432905600391031913744326061655666350725277882045407448395002312368420728902100651183456364411169435364088409104076440824811643345394363918140330129332131651805812083147388021819139860072274303792477246861619244725948795334443065218965203195047104133408138982025524304628013544043518733556126669694291709897812248027247359895329172232774196683727218159133963411357197499023968128432600032465026329020538131869258440561738987669760042137608637281046456954478247517498130951732570828935519114151318704489570498070820294578108947597737392711141744951980285221546468717678088891587570447983197098136864358561854907261101320102721666481994882280707060392716328468588818784427696878595659659798848823983416293682069452776686084321204759737159894986574208420099032826987366787793746063205095279970320571893577293492670900812827727175652456927364437243068848197591150591265331865000318006142035837209556751707716424934225543064512911123948439009537988222936267616516508420627998797841907224473415923759493335561403187455069819064054116495840199556223719177542070311519635081832872866687846007466264476244909093332867369076770888268826407852949236931506025737910786277270014213591869836448532824529048215871567161561370517087764526504607900616955611119761708087732453974690789231762927707548322341662598282565304724250508604071100210268859077390873533037242178473880837178771271004227831938246735829641938344250890749764910151262045360250021626612525357418685846820471941056358319035360728209114102235968702127630441350770848843353921722810837012011954988571306383442221567905410719408908445620774941413680728419448831387370706508205745857834881314100481704911590607498124497495484594450431623448429058535754781286889790544357641424443362415307741445100241004321345860903542389602556759736568657126178365164796517600925872116112353918996127981948102061108953292732697473281345815467015198983412786483827338622958572924261268755254796814941298331326739270423189064049532124137200403111244021770937129554398076775418597956790659405867053438765622949471832236761390349759956537554458992885331985411261041004789808831928593430851682075063127565747743475153207906770636309031833393605614888299240486455109840513540757867835411401896935823798831231953031075128248900188480079248582366907974430971015063322359196330396728921045737309368961928964951996726264346675838179074356097810291975499577238278639457439869532185924188839305910718310022564454124018020668820686591932118644262970580352583305886459582206148303741294707035594648074300257756816135777641582611846352920885597809858934214575563067807596749755636601519584978027641354568857861304174941519802109250798043772703933010167890836392181949774937798138320440883543803233026625586893656643589830777958513611276873843984698587793286687021638725765463173346432742260406588529085297847303724748682839190608056260067377264429989296675128211024459639254399806948499083608419409754711771183269083305097363060085855857417456189839813716468030699181159396384938974849253917901965505312763064905067446233424546596439433569283326104909793993275776094997680412667586799694748687845528508159105666938784941368912417652081106976348326657022992867075633521983150069592280308213058491111288274495978974696252183118254446516777504733737309551034648095294834352212595605980136877245962118753325927755177093201935024091182328488384017767852961787450697423820436530038100850758951353784004509097131161354925904309994638480809731402716388773039790860283405642731400980937097854957199863849521942563229930773163724499825815739558360393943645577490235658946497687641230493759760412652156975115289447968669992361992400691448098495743773334619904435021341182083608384708179478501488704918919948209600310045734907953616179087923455902046655131973882848848895590915152812865203810724791965167145661443968337080513195965808904715952124999452486612624627675899164471645317718615215059567250240952237440683970431337952444518983247293653076443186914477622538276154460285960730308374488450793549346631193518359750402684677635069119986732426746977794722756084762805851638105918413764086384663643311771842834089650562932633408336716091138025769310248024859823200993385341259187807037979624815180237254521423935177220419627750289867196997513385436218192124264261549417726132616588430147691715036846213688767815795028694896670263033479726426446120715848300602628004203727280613416638025418242792332085603675587116620901782709682097956688612146868960271543385352318507560714895972378898474868468631567024389635247119736687976672804727476221929333668286570981540960089687471689498878498406275978314172301404889969379432122432981907866489066793734133641859897327770055632810873916659032821595399852659426487887557048245448766765040732711376395483994972520515134011778210343555294750424335180862916455022792897611586659019291753474833526801606578199357190294234948698021340683082723607395209484877921367458727877998092731388551177904436493324259171020163828806418610917160531471692891845032916170241816338090882013384179007786388480402052498565285017745694042797148915412953340326738763457216607391242596775231267586907128166744577973952673898478285730898752865727498851346997123613927975177731082781049343093684820054185228878291364755259757422462516453903928041528947538473124075587361054625523323809321792101859676894810662916923967041190512635719447594039787301438736394081671829239049734355710902105365100547960724691378700722565806212005307353625407640809613861996861056838300525214118650083771896454222180971965423358699241220661020893273750614441405515377138856904442759428991302487513850597624577823765795154148394536322706173219703622708770031396087425582401189334630426048604194028981134487109513514376578803573078923237968137004403218400646405312561175055901082393850089164990270558782441882770460433872830624845859755003576350731043255651485737389058197287268414343931838134452238670129692625740293808140784431710049847879577474003160019945919213413475177950721682464067367651043799896493178471918602462940047815464267383836740109533545071727796382854444168427408158427263252001197231139951301654080165978266037481913662917707562087647740264678534965486059879190740454936748095459182380610132303697355277603205364405331226550780517582854330105986275022801048176800736294254017069314828407415778681778236308233218003758568666784712971701051775578457984028223157924921918945049628633027311470381541572948416157348922530568551297337913219469563327034871932827792001999271898557449033785190412381066928000341047825037075130845791227082359809852001940037651036554782659315368814653766566785582185699696310285599935824033466864601056332790031077967394092463165937058905974057986098059266464678215485153781678845613896844439903408018208522710387913793630635074496473353757670869997287482562088235885497318204078549483823935574514438481070257721440850066474952136239269649695546795989116361270797081237551524286237727367680469551494913346560135384556429309666347411482893193402535297325355148465053973595023683439134334671259156839538274316851102830700864016091887987789178503538202722597525578949470276152455701525471638190504794122866104212931639321838853585545365670245671081071650572176006077129958996789768265852024169996773144590401009634394524076569503229273490670460655746352705967507795719862797225074812387181511500717948870562598646172299275923969159223402686305098804779742712441936330303710998486298278174430365077947369912203479341990098741579386075481945576475734023369876144975861185863094271069828511068859532071118237861574402337862498482545458932984991503052234813200482544630858990549419169025737136080194504814110771723355882601142705195086432604635780333277540934321456797272430575458376616664480754030588881640508272157306167674885695510227069790368238903430345772251215602741195959018577660999888921574111002334666821509604034101486200401081357919399883541630488186814929073350657784367965107123136584941223281002305611564230493088118278046956187258572214146770807838402326279631266165752628435945421042896970155256315954937479054408875958943028412515506557405349246504463970225867429891891363780861346206384549387963704819452954782216607678027309027167024965720877618602545163773964471495707758207622288321019230075451017259432949884239050232972068881739566397495979726057618498246264591055583946302199480995418376003441275856945688710384015170613324976856634336122819471378207855183912988330741988822475090028483739292358014888959405118518180821706115575839871847957818073628793925373214949274904772865679963933032257246733350843248542451258207873550692077740909669410312287474349235602027210975250329294411774488516729516619852298535418211530109025274500541004347988680737342264550673155443002232990768775661379868734739700348969028480085403181514537774109939090840213770956940461371188916912659118879520803384644230522228544139933783004532799508554757030041309153332812262276046187762605876178893544457837813716615376831693054192396167415109163641617371741928159824280393152342533435239500455458113050752945564523028008843067692412204380431421121656555271797846081014670927311771680871327032534829319641914205128460760656789570081974169242778372035768570400161919077697200046607726446084433283056660827686681625006678872605535824422841427794695957150467482858587178873390573146562186026907631315694922065257695919762728103087711493607283337925282032668030585054022478862959489274182919610333275356357076274636520716542203997716078919926040975718850923709917786541818606885674246541411345556737745572861386486388371074848621015174291372805875633737651756295954066407366220031342249135399300046374502378735773221704586835617385185774873755563406245592715914741161643595908454635577313694126527479998615061239478316339424524588760912489018124977472536500289509618883723191403029255332850358027117542261900663652620301326753597067357927159828854320052670075252168335558039190994562002440185811229305201744425709356663755274930701203050353047175409312503875662919983480118571247407532274494203007416452228578937917790114211085273441686132751893522414089497095047155648918065219124852098441034706151280913646389178877552382407908755976752539586022403567611894291512295611789207986700790529571953125654403369666578730212525339528181187936734688609931453269707764107776424624269397642508546437635140648120457136847887683674078516555066308522237132904002685756536804947881189899003766815168607889079631783127816628183721467592235266889406064936033105169751354032021377790677173499077953133398095590781504976873975416895478476661545284707099284647698874229102108066603891144279614212487758436985511729765654897249552554035162811893690025105804407954203328786829267723964981024184540562303888948128586798861784446648022376233541082749461567002653168770346949020483893364292533737979987368707778629672723328638494076443973456674231283570219305008952269276113662195828279115410723420211311825909210580431547685439649096677940244862830126653721221895094105160182571930240322182770058766092029183155324375365850166914952975072556806443676783150505685626992917169781174595081604575866582588627136778134144521832235627653823880163384471516489889775223275215557909815302463196263100864794183272671121559064018668997532983748104562141103368091258869818570222610414050512815205435754355536518874760550650245687201348099509911038957597486243368839645434409348151206206179336472689330997458389228500891471889839417494889119761583177543061575735979590717271292860643243796717683053298054896731965919101801817670697127258214689513878458953428572350970646958659605216861573433257187003813687419063921855288595026113582496457920713610645179659454393194219397250292047551579641751274224597229778811204386855920269477412244995211610167219840896962799005667981051739073736003663347868411646348232724856740204608539243762518097995851110471347892957168012913848648137791787906870979916106451714861451362882860040224782948729485451426423290407878963474255594007468047830899859271334949704231576630133048396969893633073863736140135442657558622719476457839514786857274871441440742663091234058197516131926939784696033463443609119666696267233354907124006135760392909546960548210381204881395587326152363592935911261983303812510595984975985644109454482985949901697097337461399462270124719993467453721259364767627076186784541211502933990743479812320867818261935719710163254825860799125111608848662931525738088454632114029651428670375790137252788151986552403141856839831899831322406293704267994033409411819370115472736687669825847865169569378060798242992740391576868301212575888226119934580380162598168207599811336588785690451477454046656175304501200177147011043620270823058962097174462201325953600713167628278212037027567922693184818084662410749229851218175232580420476237587393651701007678106150412980440358667156522345100371315043791772105527700342414475994446325231966670735912136136042973534758470273964437720862905687796017723340389422954558162978410898707630093152388268521387813829577904564921186573530258887470323105660397624819563321282436842256810417688225324490399135902308426755669377121792148958482948864698785827517245307185162298331860905384522757969153936197320667790395362992451505520880170233760513047037673718144759206675947081809353121370847764121706893743275315572106756180775196222885052977436768604897540815309712928924233318908679098587297596249665833574788732973914142942520999623897889419872834566422627822308426800988991005472345350551832836630825991193957153944123286776961015179167621328216867109680476611544958923517658480929694856293785317210246105388080812310568983643209081226356815419505502525813092463553084071132918907819192654652627295404305423069133033191718266310561872623549626090143617471961056168932692088815233582579509508934689962802372914401157214765255392779333609646756130471237716996400680172413477485622035590610488598963025378576457317424576461174302413703657755857412042300672237633516578821452718650318634805130525763069894884233590664318359574934609586277805934264065406978570116634989736418288736850452313584815582311652457847251844230497699528654018063320805475107573779022597452886898573831626881192610313531515457624187351760740887003757766771791901767687804148491414565893182016534181538558987094034794792478614600928768465513659319932165876500735038300619712352921355895378675263323407922377916798064472426656613180949576497946018436398964639964938448785941396983196142271984366116842394040589189909660485602738343098879735391116969464692126469858902614477568093078634416549382494680200696143939547051599371122791978529932790723089772707120555308717464882758536926153500858372118243999409547422237770825253629516044223244939429652016281200746075028475224121181721184771881517147274851658042933654470073516278425010893143431402917095507617720107485866639210017422524416651646765777269767448170072099195713425720608229629560241531500044116822055072476190619040815509298125473056577430824763813186889267317344571523595675203178728428801439365462231533029327676152405117752830156103322172053792923577668956679247191617227739474027651119864352620372088554956885563494904287369329073208103490570713579298810305098475442767611144790752659024074999148883233503576387610744740187343551263265757454273620731480008911433353335564602681173842110143992793612956029407584222577540409675249735030776634759906440525905179576192097957391751212517053887771325526371344257585406711321541391176638222990335694654109518787463120406518168569606382787850009375630165793947963951729452007257644133662315455262481059779944875234854932452536059888736843848348451574809478400475084146038297578497898762120359950836498954440200475207851158693503037252293935299064179692195857844655398849733090230790685365525731893063711148654784470684475462400899911924349417046217794593984783750014610932030015667142848613141353991957619870049375518305403404884398273265691569295848560721100770627391961417168561564247794989892377779488576802569178995358587976242197442066340500340202667169798880504350366491538610703707010230274365020340708875237332089866447924447575839765458689121462945128416090294533749307815625632953723840178234394796056209400320659939702962919641264015783144330366663003309089528068276341460767812147671441394709463280957336589779037931646931701995052081177110334915968386563998059966236066055585031486264021590785960339831477170272358940127146633639182580597848298891679510200561849104796405949927682452067147608032766104421174143457508504110562264726089975834594180001428258250203979620854068314585690141300772628288452576335718085591214637088038614348320533645297435427795471018845053035091959047161183427052910950096379980063332883366801938963419096252547553949807916759340387440921342982223911450974781872448566964076975700935481518078945663381032940187204687364985323305382581476779791187094193638397031255141017586787706810523378423831645774382136423280735711590065150572909948790729123067254110202985235499968446023148850330703770186755558154112416109785366266824711203138123654899683543668718220881001844618212309165771458856726394514244464420302871383078772435273775246586109885744582867315115771748067894207750604138615835554950462301512535201027790076273823380105748356077388863497867094265668690534494817178943907008439475927630465796905808224106593340056050933195917162713244762076980030681145928292573072057536461170357331573496564567321482868921115465517746072301026312319412822064270299396141387580032255699063229075941547177201289071999845615533214309457039528817036972654512519907332046429400470097754683175962538242162312797191115652238864651378712208940115183620561172274529814766453753389634494049480795645813403791931875090400588143402607021450577098791179522308059198430524655118628564729234056590691784026648129720051834182145856860697357463489002876392790052959478288329392285167405642340255851162897183126589122266213696747655265365675203431158679542248817137162693467612345800064479807191897017962867354847926470200480905099564354342740617867063421253688227121069668007719502412211591257576286768214553677622898447177740837483528895567883252092086630236652443948236276277545669582394668381752291821041480595845154553904574208707144464637808964589420984649956860644487072635872814341544752959038552913562076037325254884346307314994179438239985304553166952490219995636264942704733637007692849787901202135561418289912460644277096964003488121738564877306657567079711797464502281529494394695295650441261376504064701304705400698392179839371403935387941109062783441068703264294976977062533469350965553965011232726282217306032867675398136509923708755530961717318171852777237987714622810355946534203887373724145570318124954340973432226005632417163566234798999209799811984743094743817537372706912820808719697209811657644065902682470866950348628647220967974326268823381228472347250813877925747999014122221944241447591574353225794425828291007247774381529548583806031284841100094212523046090739102261900123775117546521299860687931423116354308305445534681830822075142777820174465420460293753938916068711509761451911981368880221689440488643066252435936865058480356419146905831177056703864799658389720806032254187911322497542103926614643606250984246364171446067563306500904016457663209059039330428697714743406201959438525073142995601562924721491310098613798363649079666117630782964512168437861445573400860086579922159160029849209758951228366317250536115627733790139084442558155169904655045674504472700894163014974698919735051111743090962988947211528740492792424505393555211666322112507473834240083299576527273044986978664005381813281422833434414111403139065392930193680190480498732521378282858813847878565260293673346060504025815214961768576950322141099805279006249298892658620864060575821377536245691755101490254045776947109645786173785766594208895593097581273722730824898000224319545545878466491561209266733647311643966196964294808882903368105144021543741830892953176709006649254218660180041478985827968881059588374496248325903962800619444912997938222250008629452769981936992624334796619023749762727055662296884688607683216801045700495049481280163542996909294765211615887765000040716383928613280606781193761736030746515429977455622705553683855131648931362656567884753300856023915034788113939852116342730942367514599243018736277238293160337415860957586335633973361495883478224737948221294539291353887398018384558129198352517240485810161607294060807709959961814197192763153138436364491558574345003253999410750569330897504903485802013301020206019941470553889689924228887501529437454513837015030909103074439192652024121892092498705648171625163780304256014169320271504709854184240900521061165080166227186770769222840857064647618398607003225486455386402834591322720989757868803601342807576681836600162142516455783416267834046707824964617669188387598177296714365124189315971261197645808756783832434691593550489368280372286439002898681896568570280217052421611442664878916437947484891420684608348314585432657700481654672569394291782379834296167127864732064764342244959386535433370060889920344023119824946524355175543445971836368656000986476691974891479916476308153080735273406421143318569752253746759460781205070028769085136499740484888259795314365285385374803381254156895000864670306850491925650393528686475492291148754627944203239401126570685110970543858795729999360959934384227952705984100863613269223973368199628503582498020664428112369944009982903228981477142168294073544690373431057455644944533098225463832843485162525367516192025082123111853433026181065068961959159873853076880854290432494216784743091023565746686753585093468942508257223946561674498552871635079039056829989832682348599106104707015654247562948132909567435194449506543709633624443958046092445106538257875565555871130093773471868316618526903104744961533951247660473576195610746783630827905968423217933433723390834632038036602897015649896531895117670125379889557574153688025946864470082186285914741413662409912413216687725429708493577009586399068955446744641484013668895237324696809480367123037268877832996438000642041176474847203232335823686343008794213082015137413618861286502609992378401310043999014055211461507426425026961067340545764609316054017881046584716650356576760801606511391696691519286931102087074200047112517680877591664679604808429221731848053934903262616987384934741266052815321718844564575121488775789062269451622665633292703059494477281302268031322665811551795439073608697857893824017801290496558345461492102369196474025617014067130175152684819155013643920553021503661381800210152055474809679589450826492960420647462177252828744536464413049692863641973742293102548809710082728649447823804692995348790997658640618208004895484671828718491080980855864577800660298744642133486484330562368279686454130548622265747924179280685059019108256868950930151846791248363021451206359567892934282088639063492073537145381089612505156271515993847484550001952569721893204745661259570598115888655465841100174483619532536146236284209735436323916867361212009605441732004990793529378594979737358513000972286490778147769185170300859962449318713065179868315696481581502074033958763471568291513995414877647443884004602531390481173592532123477431415343237272774885916974748913064753175200042526020226807570203505562256797197617318860095571138364516296343672794342306012724356054320716581369331892847590647065754022609315765238012055196323431804607108249124064017813820420901988893985432770172808200665143012013989481645582823415786044471160543766965112882314216929549868611903108178830333189294741694968419159108876518092004010113338004930258995017722300559125155991489026161937249122236319378861923758661187667384485031767672367153022184071961148613322978701596089109586894462481308452614474436055637358869684416069277434373415590412514481510175427049380651056775981213000443729141067695573549114007264308916570120113159105153284604888100806911197146934284405154501975440221986631305698135149274310266433509140931909449729519072535768423809285842200836091783080994890927826916215772827594445889074666356492039836510166190250055542710014877748170981817285652821741957944278595951815733483138520614736224350902443563476351656199743987997927786700766381256428168188295723672224042114700996584866874107371540384696215189924192405094588446546963709231342626190595878675641586811561271780039074113326697026873040499430251447457513750734973811458777825696758596525805670056513110361208488305288105186294246356292999593371490093223614417401401073559211821813794589485068974855274152247324796199576569441724643943844406902457429976279459025532851547831539133665636102310055404615001817431933148432823542137884616603145109455107361488124674810459152949553777559492236348987218891416369045886102618822762366788357140824601740045521615424565584583100481697587730405657244547568890364846197461349539849877049905281057668161904347566900360866362101171519514571993186634783375886112787717711627408713559571962619539343206323508927934229418341520734212170813388722238830840699264249424272767594240243436715555214186344492661208595975433634924976784496491708366746191282802713457137494972559130843889398666210738281455220919052038372486150930644534731124001278339879254626289793933933311030729949905874598319742547344203788074076854256353003163261826222651539974466624471946600123583546966045515770123084741869690313290266645634581324940526357741597328419180417208009369066636819854382881571833776114770645044317739345848968178728163462031217725655955646176381771038694961376162447625168951284478597832208087270230589180109267263648597297919313261434553365206571765627198277449085660276381621382863882368311094419497725905803873021243961793705739414733575060704097647680130657287187781459685464410630365238572583148411499187107535384934112530929215113357132408729993501470820829616691574435935960430545629038356342921787104442510474385259516818784609839982655910381111242200480664870390425346698313332349262978596759586381961411077429746670993952963759790131507584827640089345930118086194349584306038936768946564268013580060070690639444632979857606564499156877612469522569752196064242886260945940868780269374196559717905564528201626578008568499164171137397553120002455653615047557745147695737919771314874800774369008399290206657606010999128073312142131001566179974715976965886860269207159614141690988982973481679389579836371576482949726310064300247973053065501916815590559911229414050716710006405186420026924563044842218091413053450620940242824728283383911255831308243514571661874144498392170392489663756228761835646087318634487006373925300658183346461407176874319392081425688520005836161011765867433867107430497696296529034945660151418193524648092048753499327825116113679728723259342103513500119471822920966380958669458540995678921069095694978595410314418525432926897961394268911998762963816590854746935282770554990660739074740729368234743280703836884882686536137953411872819848510203645788769469712731805216669256609613620518830027752977348341760965772406223657203343271635142733622756392239967359954142461687710333423489454894525178128646818125438751201020391807606975250645085680280264002219494604275713359680900161206654991192579731858193332048144690837452317460379946562447585966505016663201711521885286024162592160417871104450215290524290902886629751648255405198640399102728294168536380964049128525666802452196883926058819660459602973456594581533228647525160007821014933948983627353022412155557024534640273992525363305223132754995467438729475560984689967539749787148737383454520940276553190749077453813181157639241377381348391868818568604473958075157061764491059157902453196223997245529871356723568511993850962067696531184093896236429190680182820538255731764441542336312002852864503669569819453964277242719918062277244626937947187318496112025796874298872013145551990042290024268279480867761122847698633751467895667300276835183630549559423419977068833455373348813919922065956620761082671833443695621117044868716754856742301254951898741557755389993025360837949854690325776691786421927134840796639604642787411541735841176585585280759883520433748258563087457201967289158185831241946818191234605443264731404778062496800018169214447696952606710853637974788097238703479935065515172780592254254899091955686715797405469868923406307955008999508355128935582175560194494047143712235542864780780849078537288201515822434745228286929634069539860078755571082696981156033412248254301251700376847464145603085451810220085142515892675007909783541381640310730014746425672079670982726597192966141168791616802591118710634420961245267957887276860143268397563397468451165633629742567532193875666873273568271473287888012690892949297747680971585292063143121315991630852330822076118181406471894196465466623854236660681942558440734201310097684816752880128457652480062630273235089367905473952435631709792588714621915140576364878717793566776791536697719966850653674387569569848706462313815973126553634018931753158600188625498308084391439575430881303662416476800797088459263546044176969891091497694099680147085038038563520121983561903385132101933089307816249095179364844337221623038163694813964679803243223007586409253103907530277820000250074303633119714835902987240123126897043559844478446839559850532218102219247899972509809712169840807666292622221679066780998067483345019917543284646877316519670434680860146299192330773455814532197291819482915617567700793807486521786631834469861059381076908303420579728870681964537432499349499304070858479054965515986692300670291867157080868675417459673475305914931970297054300646563511049170642599947789366741330881747644696719219570824842408620082498045459845858759782088791630797772535353235160776966725587975357824875165505302931680570638618164742867794441001715221541438409985280719216963925252911542334510241313956335145613842148026412612579456574622951312250739650247637330252641674629987592532332862808587611577483690730443272224064835655157240507955100695319813705392546205067040525341272332738691001980956733297082999438995826513211185371817443083137619713002590912948189490006453571196948782199260556087040097068776602449755324932898754694542521936314344106035021871028608348142006511097250841860776797603521297165050777385138552836175375493682382307792592686489182492600875160467695212330470175625468736448570393300927350471984263644408311605403667107668916232103008695352095378300095355805926185140735440450185525122130647597993489283868829868857583607833604807257663371168822801664608061610013931743253946513265910000868984287523501059704586548548114153994352157110608181280814783508967052564479246719476978180449619417817058370992874093511605626763453922877738865895189233778292215394920634391849095861032752484964688491641743630801484918002172710213129999861718319362324123290799650028297380920642797063849357323829943171701461156929345011369099916222067847255337073775865777729746237835383364610355811882703031677038989357208442121971986350050858522604418975220906770976984943414025144530723731125279434601105738413938917770696569037205054175149881035763375201589834013981968019648562216170202282533638979180528282538848683322031456571373805426937671353929368034834038503300503442978581441179480159113090110199211623805412377194781488441184974512164339558423304481002865317391125242644597089547946884697730785741576749278241771784624301190746687009956151202770233000642451721234042579042282686785203595560048684932375624837795883801521121467364384903491748919170158296478476823485485670149133881379377717575860360810338837507522230583971396441877130377708698918309618571695109146006215397008267651288003412719564348799357859581431477791069148861225440381166262609759547273274988645662201742030937296648568617529782773647928847200200282425142749242335769671352519946057576894505103485768640891163459518889657209800801890387763187977373972918132659998549736577370488109610117750454506112185097118372533371327884115367449526426675720298920159158768420919652015023307048616255504663849579128917864280717349435116844722007992425954663670544334548933391483714446696785375165603051899498904615299531746256933204813960908197405121842662789893756454404991008058982236601475821555436530653964143317597371481571503914851759166182921955755391140656780789861122086990866086185516728782993350351769522203859374585206463844490741157579846142440411140431364750231174894538519228493420084638231782835576393990982232040838449232809392219120090085971129138743439134824317401882540502137606712822850905187816322667082544078177615056758671240237808522248186634449348346363858140160128718093972618183591156967273941742818569676532470824309621055076148533434591947027960977658010010225430094147081625544878328449184945775326788492270854480542326960627602624249627859248969091328135581370718631968411890916611500556161995694234338915549409536523391543433809631267962254814380513204174835307967951915006036502633759483483971375964207218513169096143005523163339785012304219709598031148536362219770890822186341012103198349796054616716012037544327964942521791172837122462870703142546883641426895187329502276942862266822824840941107197335761881810484733250348594180176961929546785624179769487960299772765644314125767833160143107034938316446549616389864538201932978991147645304594956357643271672468495959430201476628354069510098853532827864663091002734176880540829372578051074975834297395738179632796434268735217762328353651389583538326307613800774394794471235627025197854254756281890589750302879380724664514573204462474828408318072875762221679834399933825397078441336550436676951829097571031203169672332901009227205013881524736866085265748839458346717060472099913374874378937349453107332447409014164930762359848205232681200522611171044945136256258573394978687924604140825808245063350445873994253987093699167987658380532126147151614303137588955700030794590061088178840407614441105918864987648696619244241946708005443290523075066212437855572784102174282736724192894724961989455252889016797063463607752217800018622820163758385206927964802160581385010123234596027696641336009553218283469116386662688151470002266844634344511961645519698777989104798339188592953132877104890754286724638818904530965752646183949633189799081138217714086449887416986882395118005803648357188866582138221692082738944726560968897029972940631793257124674649276011311002989617045539498763292270286697184869273120339693520239449727690173114616597500820039008288557357195969188236222934777060993737337463141625205850999865513810610332214629198441870757132082203822312330397099581155886656757649369150251066555299810729630546872759838268297817433860347220652106600539236378919247993903333745776430019757442948213074248455231895636808857107866301406060566717697464864544222867855674394823388074775005741265157155290270145952757059742424720762888623412686557692811044445703952234485583925829007586956721178932156406185890133900048690506461205234884030636016031345999106082679608418831181797998588935279795401370354445354885300337637231486490049380516581236838012161273386404132994762080754242891940441043668653034014584655705417945121080054286123392792824553534399333164303429629490233103421822752251945464026165775496905706262098808743518247527102215389090939008555928947387965209046357883812886938582744595942212126863608515904184468284944375285524806783775966403622618209276394545752194783514711092660906222865790074827691199038464708897029781835830304675731619950261033135876152504262541147442004218493654479888522857778622506868774371675563855730169169651330083884685505777968489613101167423639343061263786332526280211518888951284787162150382892582997134695543810551782855043139813622759390798024120849525119599577060459336981577026124778524208422516256878228715799673173927696908488503491584001954627957997171669164738494023028245248027553968397129306179376008549238438901450233850066961588465827883392914458471220244690157963947235785777255265952684389990676187566986344747816496420998013835183857139401681287174950083561053562359794325249407342446601570966551713064514488006842690545499674431585848725910369979362663005973467839824581511485148408466146278381715123865241005322171959720608772443399193916744286138205040654531989167388612928931887718255257011471394975367424967905646754823023881022294609811566365329272510786959021027420400117522434790355351222031104635915970880385061841374657659351421647441518710958455986188618387971352715062753171020418076521804854384960892240632328158010252694335749451993970783248979253236240668192500699960338098926579813247581672977471604988942685122190045335179762378060993399089060936071067365178573625195823712932544494801163530717612696640927771937217374684243398919309389506223185504231595344497459706854331694251826333741770555859619808331906098838933595703714418769475988505661674238228033126047909100966316668802971108605948823998534685664992151529780965200167554919213366742584631672348688573933895556721176913133792359343102505579689959486979113137813302018535927286528411653444651761644897958106551452803390097787753459700825971806934063828368916581087356448159615479330566303082449033916860511655368735836291201261332602924276232181874983957855398505793321069360498130559205260174782970086585025922575209352346439012486405577851310501545706927511974722288744281579297115011152838978949094235343862054032378206987907735020682708399293554606554400234047809222271418756200750318277456074979777081046052845432738219937919493435184113152017624632641222237923167255848239225548670706682302780062455766789245864614085949189514062010232665261960850764250524488641802864618556538235825596469602952931630792185991844333665454358519218818765879386627672233631774626705247868852449578318851003705010673756818792672794741273237812810125557510640382890993118776065650381269576282911927727290485338120584710442905631836477230920887424241677666893455806215000163257562807672043735651028130122403173937092943546810853895679090932216810372893407489224742674771041286649640475006704956911613129271094051314345386388303508686854796672678245242928684714402494883918104325794511079387631280345142881053345987868265315429903809691633286181903357869127937873060374064423672820716270238967825753936639948227939715825348306357349383708118955043243649545007992720995579477063344037017212938611705717573919796614341853695482441879566820812268359626479549035885841596325918122202563336304665047355353038894903919675625404872864405190482244945481934432298665976260794661730711553401576209192585660018391268850671160417174183922278363221789775317916290194146503499765567269937913708419103864222401108866083293598005504054969262275681853280827954184780807151962816116755372737753192145156824637691160787127024560120213346637196418662258762293121800646031339202747432902709828552787341166719178729885315428585993845861764868353188316337264227912578141625840180566946454660223217580420075397546420801987150632815442475461160275367362893628476815786136191393483799874649235085523209609244980112085568825627328278738913157821674355850009219691891109320318799646191719590226184565877946136209480914099012194434260926757206559742868209875101377474926484027698301927595733585298493346640665738218802883477700500182338917508580237811941577997192321028136042368175517343966242819303984407581093520686120483467678799752553126517594449487076058086807444550520880705727938766784667222980920761975126986324931597923328048564397078375758970773003738402548835768914519871789393660675451070908743255288441113587350741923238955753498659008963965065847678498471720558933033562552995944234938031914100734075690794661918033338329157896988761707371867783037632074316745105714843998217098029549106524122131595957387890576514585186494403056127099134021547248230505960020628572003320685965707873681714293309954210409157632586851123706347568905178246913912688791972259794846072086700861926620899396597328124316218916736300597026415531887441127935022388784228282729653302049728702255332427290587434666960933101639976339235101066516950568661520316123294400246744234931548753229975679819125427056824282302183387324755501772879745292750770336337592090472422778481298356113828040949936705465258387302390579079328223836279689698349697111070977076062269268163234590637304452393181811656748685713767052873835131697792409555095435517601416128656827796020180269482772686573695050469217085481341608443066127964850206730586975604407617830972708121851748463562857761612670172876963713928911529191757783412193164797446336503679939669395104341996193957155476859320711277768463804039354334075237238718107871271942978606071047888063605308149481586211593091191211226887799084210888347910987329032698743321243802967062153610742730683785426989326524855043043613960534248145354857677683707729727024109381308401294223341354503614315398803916928127463215783966607046727328559868026728160189031835404288968677957558578544589295430175782182079277279434209731004007230543580219100651155931825431318371960906168124219754258239554719117013753223491573584359488479808587185967447947357388815869973967915167301775639560215926129085192451326012075292405851433699880737879711830084782461965090785228078721036564440907476582123134382942367683164146268062528311453208679867170133686289331265105315624764858197101259514745966414916942298273364452340710892425265604368967546232047891294535764934628815902053410150650808355024724170497373175067881635185464683059971154741489189738090722149941548750997437567827221858103759674100739872051796218307338855464591026110353242047503399678536336930139750360033225889259505814662917380657749618203217142363314445268807819571777310728127939600674226198854474854809684846225104773185861678581631222176131282989583618220805612205065344338680553820874067560512175041925259584045153544559999762701617240805974481414666308426900708040712476720287784797316583998492918278817569136524140368605535528594029906031393895240965048728222919852774199497440181973740729246567548770342933535597375373268402036802836466888288611087817497950746823224968269110760298049243061557048084395334299067574708569929423336431479781807582732115264880020582818363219175556808206009955016373619769585570940669524116926878385937391529359197777127151001402937525195038124149259202495412439572093369970559811034809617895064304985848369439595206744945719645854098639886507760236020132246255655970665688481281719815859836770235557383578114829784644731784316856815894309206907794273737541585953403251561738545316476505153248237046264020261341047603800680739863375957005735011015657586199803122562686986412779599870853353823167702297501392718733595816637967997178181811864724769768138835295935008348035411235464965944769995036091169893479750444713949670963327098283842277674115857975140170592418175364784043821660194390488256001534566031586956088394582932947278696342076747172837153243969184005562083950701391868212336944100272365751219922389349142429769912138483982374905965863773758444961061445391560696530502357978732461784735614952414248710859858855258287014725792755294259091643813390112978388931844143810067622212079841973701166357591715645878795888458542318537790914249226854050784024730013870246052085145429172247297716468057843787446169380964991173594714853938057962357013778628886123640685690865049691886600598241838491050058801135796509156224097150974528840518498964907641301043089816593250550358308102930548460551093608331687894846225382727442505071679904518956818139451193662724719880522055017575485513251403950520248996721140151138512273632543345886297872403562260051516759090030197305360757315078832477600647546906067700046382663555210645939827500689202271334832275973702148109233207731978706939191341647934525262252187333681271827595693373478959361580601907113407078123049960328946118700286176452908469113978948188874673162434483782685378920648291889669297987239692267538076890938905369793807544630728425556723888385603145524742441283576417214935807539395300392365458523009732007690557653858893002114087491817454134308943386769774504039236936393210736256939709252197122662712694332221992338670942427977428065150920347706480536212988222420022495880513026716098202135382512277421777389919805605895338536845013719890715522822080115406926127704531234811892454833719940427027921803559970361975769925389198001944979896963299395982177092778731244320608124415522877596500546754208437273267659708467893660523059624043865028897631979598408774145785727489994524084220985295745287274304733042049560406903674372590953601322546079731583956759504312508714518156799339375284152409278235241444027922724010075956561061657901902380133564592654016134405486061312858857512276645443689872067449267850982334518341006755379233005509967601777715786065540093236157998311634133936944537855664390192579124676235786723173058468629561934355093377142809178105200560642092278873902273433644066858420407128562407905837917902164220436517236080761331956990006380186661175483619676199124701153443197372736806326571236055462810259644319979110181812947901591275515145774181820719588523223575657566117963377757987730410129369853509560970648385023009622842199593842117124139240168867432731304918305998757806835888693850929329000946497015253379627476889188465224135755069520886864471467106646521943169432405509723071358562856933297625212106575728149699386997269771405795094235609071645594319790810558598864709200267477395615286007879324987974528289299244634396367874230491830180916039011254928072291449986461642089913307558839466091057844634610677349238078918855309941759064944816559602593792016983740079200926579343044988552597327182409296313682824110762912338146869165227737561286464428368030628989836008726557476903288898362271285627441130959239209704895591616378836299814239693456428204558021419272116429511616401328934844300306218302784512215308518868352084551724615118088207691287061221260062251874125456389361769701710996834738637296635045805894124471287330833290957853208659550728243245545587296781146629190032802870148332809368074686781022780305382005699391715310483307184251559682672824049074656694653249432180469338342690078613459078085585796774607391073396057603378653590526920434443083977768480599143646304662178870712054419232189860982759261347116659274692678622434839512714313985856293933590181330142440329784105819515243719416296788964187451234151624505291724157952695375910298940323426274496260444298853037238219383246916228755135518596273068723784671150010583870803937455061317940927435697322085519163234509206077192604459463529958290944334963729922186774792159156204906596718221118896755159223959955606105367971244175918338163741207131772577808651947648281509949479421621417865607279173740761713589085904216496267888995935463093647634419021425480685546166847052214916904227199513199625818509342510859095596865688402796085265299609988081279143016751400123251582788943074814170604413147668093244138719495321961828405350868985483750763665280151813066258790358340217309198197934056197879456543016084849640230800149523721739362416854255924483308093800658332101767327993777570377799035975395242526212628161873714666033684359273561335186633643900888160843745861298035055203567317989747024637589099107025360984396767755841025261671852732432106121108886783075735807075050936887011064361493882254924937571011943905859877247621525181417747470658260113251163045159769936738107223767493222201468433332591749636543275381975422587405290598443390868211509755536672032565621247757137178419715535759078873432537428805347201276528013860820873684983924099249128542502860828785946108022453577655015455348281575249532085822689452181389120338659032843516732364189388867490526772465199326113727742004244326177393427554937576806061551895770997838867721678047809827448625777928774210005944283933865139488904092967233745640685898206947952535434542538725202523254408424726627099454163685522909815440658685100297918485573347396336410942211339387864726612886104942602994944631701730435186071713633850858045647185149551026061135344050303562649507312964077885209032856480242297755052223716012110160852289066110461843297141020579668987250517600972378540927309764685669527482716230763269691115004985277363315070641154121057165023934535199100987614804374683781516001707310905759911178639852270543853558065253277841099597309500549862112178482231912944671443527917895076509595561617065347624533843971442854901385588216326375367655094511940766682624185797156468351432609026244092837247566360607514481817202646450703424635482357775591230644787283058656685583256680971114401234825758237245537284850110748485570055110866321919362053371499296201657120831648727131472539136834293440020903822441745012608943777132103152595837944161058871090049784799802130737458313683587148250548131855722586444463165235997788493823560259413212008406035866314329655523765121539594196544032307926505063724530010614074656674895933523989833892796906571862869723248235727824733560331046271126457761408974394564745879618444118391965454820238966493813464784946583495188668864045986841834961382221384027246340821524208548547910882198244794125613673622583853600391290661569272268188675467721109897971832493450086022782393221087665796237824499777892019912223089944140609841948340684891696158759138908328921574786044482961316348111626460042168135061470197264110274593964019630903877671553645263280021549430613410819670108572826485080661194250563975894560115575887991453802249515437232510986045661979288280359389917808183147528838522034756507547493584497345553925679995400876300669648480825599968600468583667712158619502171736407923550792112079443114115858741438081532025261462565193400984125021153370877396020297751876218235532371751419242503362656471745466233349284893892305386585951372027353185559237090815306579762220352968081079360665962190978992184647280299852626085983270893160882747316906167541324634982190529358618141714032326547123548052619365958016949920670574169011982792465221850142067185651066827355780403987131435008803601995402053785981625808138705780652698040741605504552459463411734050412211137833821083700732702350426302098645687396549251170389952086952822934981507089197964492072735902486603187532010279450336931268901162802965332453477920401361849963035551237070762343425121198552839598243840334047029285006209796300729912833448803603120231233060403817222338924816347929350848914822426413021464512809693022628194918328767743852340124766186562941499984407917522616357347111324850898528626590540498041237640267619702557935474977872286571099679947039819384724100966508232828091791484951764990484676534020229486975308660799404409016950069461872390080916134146452937523871795625524928062185076789638466117418109890249996313624547195506417882661874922861536594486140209862895941169918725165078131848814712573427378179776487223656560230911091003765140910634898040887606918602165023989107990912214295848241792566330301004324816973939590955131730985895187801383358804385146804683698118475912961187836808162683095977511388767801721162282189683295283200369958042579205745418029734948447771839874323902790484347527563969956997306473115350023970837331689617086107870916380468769638573674587262368663709865953845636307993732362847372447609025535853290167236194731662760488644209240200110593591352151781278587570534008006975597821618166760381188159564009868958753836796910682585113829108160505307468315531103454007829385225902501502444311389058343554390379174553813641215555951381346676385779348214698911709909532447832173079791104594180591266243053376031552278607435006182263399502362308547053945078471542877712022731166291585302320548563927434867055923136282389960107967533310879617306746858529357379495130816994924421672807584475573441294866434430381909272587122572895200146172812190272211106452718773045783055128996772223519858818867373048023236633695595938546821831719747701117282838200637141549195215787857136170045267985096784242097698558452823686398068092945945804705245668565617956338555470967685776004924599905409142537009532869720326012538841423791852151193047212423981765029230308548818610679371458850314503247725903729464410584223109516282811174307303805682192506909649234195980442403428182584754886327814537923632762214864973184590441610789529188271529780128757255197911173607494054520856952916061985696415990270842189204569536033338782945007307146601024370498808056724380056985432434588688999803039441577233193744350672250870461745582488154745443449624975125129309082740274624506631789886352164746171624775340921183994101859009135995692022100982732767419977170843427541815612469279574995612903997125043852938509783068253780657331044239009458035814185739563322096856622604711874974494173591149259458150476516510502442382545601877875318226439104405755855564900911344428454043943481460993947770627434115845357721063613367844904396098382913230114626656676184982597630914759303293043973385497405031025834689996703010774640380297767381314898711139641728032300014257282410977764398035858998304561893334895319111368608053550153557255708863508829987261322426674738494010497771968997937755927110389493598977214351313523556694910046779128813282825866644434359577967178169870931867794758775472576210016441375137358967471374554672212839053039081382026334524390141457159189259523772427999050930560608734809458228879455522191968379858356134869034457126511452978253086119925781493999201583185963319863583529913943981535072329249989100054827329312472129683924703872812462150155857193815245959212270405362448657319188458659310311597051023780237499466526287950887156054678643587314561093332892726411160865896628234711619073910558871729076726506826730307645427300742631811100711157930004030920366851485128776001914861291499126357645819473444213550577798688823693834509981306069162500697665658143621329863855543791722482321592516526939665547713168666765244409623888485182581246386776187263596727336542483472138937312226115553000090772751075350832015721334293930745333042595174592957252402688668017888727058527553099123581860969842688622578318774093817241163819913231986718775056442588421320387642031333735143691763073670227214713645117279985256498699778741481427109534499745240245879121843830676846118904514999890747464481789053939585015953615678804262789683034029970863845145132700824502415628458995508992552928567829572649085242143406328772720444821143206800443293918179539646910130045393627271365041239401874199354837816068388555137111557685277414210967388474549847648345521395456791239028525247386088995221342662625279911660962582608724128285231493270591904530707561433235679942793641635861802897803266512684090013307141953021113517119206830318496011364702512888461963287240047828312555754230048965522549488461302761942268352394762411837990780543424559669911288576068017824130377867433371884437766762912314120218661367258221918525104975163910552474416858957734567397076876037581250865061878740052766715138391214849762657899372206353285858844305911793362936325235274223093248129198745494927219659003631789255910244364700340403217009388413505212939492206663528886046023906469512803968024442162968112939496669713592723354692509952156361109675288817152092018394994975327407344071915937104033593457824748032729181206243308532869746483564932079966660129148537413277966120467875544052094818990157536028660740275968624687920285112376357532069881391487867717662747755163548345956441447754504227682280649245399665356847196228009352049100305140449858516003438694937918000359041851074208874343495243633282667494241218584733681290532694958203718208844271526945472609596921505490105444788744333943514999372113873014244291565581257855039305198095927965326916867149435632613283433328983814216020481209537192771624630292115678492521544092802579644261426872629616111555996679360969769020469243775381268837679182862978892195667358257291163498159422215966271120826946374100715542567738438662191828721696541583390230510907045443738554110230308440403734604482459731327895061836984916509067315884599786897709117878580493556377312893745876167968755678544876960959118489131561429560087836117175139911877147759926962682144857817658185315673458180491685532753766241794650173086570291627122149798589189307150795475501806003425264292096068620518954689015969933260069766412754510780496925399238641044795845478467425417808452432590914871634970785530157843962592186725785057070956957063098353924360610695643210566964447599408486791181586820940872052588234019730367717278517844517456402271869652642206908547808779988443781769314252371580259361285997889562413161312044827328196884747865174564402038945424397995869598195843723467974911953493405120700374025511238699783769274148224995306249965151091474347918878908898537764426398473724783633933786410282984104131018862900237881409783422763037608683082595815596442805888416438138869320526992369732128813580160521142659946116333011017638316426626526561170757793953839276869534699008990141526218687330194824851919735607236354725816545091961237622461113759114827034474484891092837013402983835716325668945636734562212194920774330049041447820354223137684119374479655138678394223442294850104284143679045865197827709222575528668527005906534764293283274994695233867939129186365858966601685753129050057537575374978094730818178417807188153162441874747659205394411545981717276963653748455536213783364994050176056816470695806641409662089465129968852573694448055948221051622944666672843340481024653273548796248446514345181494784101598148558100193185357530069091303577317695608760524901400980175830101661934153123673485245176078965935844946719132163238345441098118529858512087145213230241771776747485326750528048973905533193601442218843510916549731154384213254648928117801429231714145954404555928253003327992470408101899295040355114442295187395345838965013182824104894290319512701550921352018331775025916027065221956151444823011675352199609657768738331080839926974821364017584961496870491350935013604328939423582086722842171553357531400740996609213460431910743664564957464400470345270374463059262096267808262096574277423662047096630198910891027064949718777277636830875472792149961977716978612554251343054966691916889446972204566306745848523820157547488608387076751400175459394799021165310806491993478255350554325027165824074375121955567550855549648518289111355283179689419263287710556559492768456524458147453262810303536107247452533453721438273919820344045072076712648088646222345677884901597638017878408763764130623129227923233356477275117850268916530710151310116003578352556610690539195302624919497971714619832301571838613904655855470563914506905747474570657047683435191076146135581899367271783326592619083180460430395410931536592618291380420705683028422304787830850835220889226084717296488654276475726208213505160614766753255948651497306620022007969142077364664456973137718210127393086938209098405435202748421458679508707930297394921243928307698274066602042882178446871620287269036638258622529045579155255421573112259366203370212099376611810144009369154668864540395424704820746218743002558742953441188854347973367533031816274523315186482475800691988981318515261341926320256853881218552919508841626556253220615334871731418586578601112446544957779448940995208058112832081944022298960946599826819825029392292973601929511183811521787531253310605374011422153572708523625488417444693806573037279678244289652716353052422197496363094839632690663568566382483488898465580007250745810178648344611958543729136120608372201228715562912410380535572602864777383179906163385124024686053288921135017499799975007572890199352854649107119561556600989341353053784674284616929849248492354900496849072797780549948779177614668893370094131785157057987634061238293120122947522664008899991032518888178868868477364049604441819973823651092856130112816228888517698099739774848763266172984130197516267513557466240843673524518250351242792122399138847594819303308501384870338585087142491374776968100019392800042621154726014580230553123322915160126093254144219854910277584159168293146346370680898085447585565854189259737969986091773378811666581234435788991381245483179693676882358837090605224170290126636143105934876173642216386497371229418622335557390176413887700745131306380766784426735426142233241204337194095285817439971260939164944588820177033575931568370259801790322551850540747126454529898800021538480729702768015866881137372165342208726755979981773578215885715110029646946303431331736065612397888706456011598570237327500845604840288646900338396917001998148714665279782124336921765825738533970235963775088624390310279258565424874350646650497425408793243891380873904582973153145927375410413252673073398363418149638700764098459464223619892485655043545388204149755364233092787068668409989335766792404300098019418027798114064074402706562891757467600349935632052210548540851659389232456741927496699186965423925004633455914527911632912689006334166700648303626093399352451071536033095831472483092690740856297953396748933299465454719936195048606630869834355972050173458614117321981796922586740840833711695765092781796159507198367158704495321456397681142891773880525513621538645394344262710688691443237997675503196714092666631645171354768661014855982688470464587043106208292690737280221443394747172632893621136658883590052129460837546254992264922641280619657976448074917784497314650297285645695960892458131081896357890526944489757864188623486201004337512899299820320049689677932027726112247922767598546063141655340891021591473807447475562175280507044684207661079533846579094041909773476370666837149143833741292925060203165400613792567232109614987919191884030751971633299024042598050987761316698217666335296654854231478780543294491663117136940276298017331870074495311474675925332581082390697198911905742954417739742791397361844963778132922730330598941519054831992647985574413521296440026634392765152538851406091790871245244071180486240080820773571597251896118282728524738902969415523397976002464405497534384115998417383954161824638097547535748950647252075785033079546465962806899633780106582039880734772118041542936593525867728175782171921990586171972386287570030639165669766275172175116958530116728636608956462903317008526687108112428484775437189347227489306031268252651983739249927705340802530685546414556319780172999942917164992425227053372302472877397346850400277675656850523655403320861508585094831199334369277558190206264613613411475160922018983992240675094589429473109513382671512257501422172972368161554925901452678725149256275434262386963880053953636641796486663747893862199308289450007488311190917274265251640304776455825887952298362377862443409523934783934893796703881569562368419009270079215706353176436173731433552564337071971220694834685991220657302136525011728909151061525515848889006206875983540515806164407568987091479785378788358877934208391727527485089492502112168816057437368867360325666013842006855382139224767277512844120741727481676808022224686042626091737948203405047633493900240189330862282903333305965221470433737241564437096130247966428754262407308695834991986388107416504704134597147324613159213694945047370304201497146478176044679017039024191146223543418562649365488878102279071815829292582285338113879855461815861641324793673484962685517959069386544339437045854242417631624177870737920193027420799412627505330344459739077971339237795199958923008279038871920331458360562611281745479656992632008917052508554017085976110127433197478599288609917057050447821867217538886857211019733956704633887447095883354711164582568239423746302584229366972151169690849248935183229300733439950796811017508106564078780501555636635037189114141628117955128401166730260505469979729973386008331157863155944227918634611774040339315663337283670754036079213079501553909208398900511869805619078542600127444490791591265713095483758971830024223426336628493643429909163957429785395790872644423151263322848227615861543072795382537422853784359511363330394934981916963409137026508978620770640692761621938448442764049630874504466533386433840427695409543458624084333270339563637515889683151910900041401591848610955469324565204580505685229595119659253001798365931312007850244818556983557850040019980769325441594763197191966839908481816826095745056773415654481363808263890631485021749346753254750294340170294040171408373930964970855374325441778597884915951810260169910383331259853059087980889653179123068047877531776824129531141583121369288765267564287307475273218204019264593444908831678916253947727655935769076422436128844100176171468767501916963632211642404163081321957780677506754591555213024548451291949155990800439573876325465819720305958103928815387823885771588288149990213134319623696118874700473109570263946290193920964712332387119844982746199244409745904053332677591680352759427145579447107049443871075050311497096026055290372183249810676730999248840171807874608867224593941915167158083002973306166371525560902799749503807628978618240187408233469931788843574097554068083954607694798242833774008823946752524998939903986365080495135172218388530724365909186527871472164153740934999790592266546562641879646808090807265725583282967135404573034238058092947902128745455439478008268373058756672795940985313605432236775398673969324523084781129843457756431373907804000386791351331081466442699590171406140309095300328525519766108091344845011729183117687722593681737935062363823976364835440492364295638413806054642385456747702961510508318765808283780587828167714083848789665332481206128180555284106655786002423908884629850834151758951485858050238223396321399042487191924914719025378872771569569535496097181777355080059394276624135432359507066930220952530093870272383889320037493850553785049044358251340164014773831256216907967626789541720476582284946273181600832610024822710953526384875237900177742156772155613158183932487392951532162317288309180828691311268740322024103150507741514945074934532270857274821255774143066452326131153259627495495154935376569192431173719731935643793490608572356424995401797931674646714815514701365056495098253284080271126768021600700338591505772242577518512628402940768786842961028618844711929498748139488290000904745886955164469210638466161968782553140657379893480207408471823690306839677456728270694338614023851681616288050283410119602938267962663712405623150024311251295034992979182021869393783899189983286911025348618231199013945670857898394657058961941652191238031666436723688327813491341004357848408132083468833651731868813609973389266670417783495502988159984953110807290709828479723125712503447187306462549067539500151811613533705766616726263462293303203077741690214593249449525039155489546405549271522532574543194469891232549556767583545271015919129040636380030020937075030143849505685877162783951963311904001843726199431912916704312329864166824957872217952345259251921948768997617818601018084941668746067802029411024694652298153950155731540144138633723497010299937162233222748266564433475492554074648991601549374588645814572212500490944033561985208866942284936934830526612330252453102424947171813214232608324222387682046575118911520175902189800714378240338416171216215704536156472125028136171358855710534001568327296465836981228892888652318323525494717419562685339212696457961103561519081283151218458146711058891156775490667637872209476663579434156168253281469100876568027441422551290742740028749158313386295667453662900401122543549504745312711218679883289749441974210609689006175174896749652722765102110673915885498075564777096296597273791849339086127173873088197808063516764149340763683035397349054033848168820381126732797453511252278258774861417093155087971924252109059967039284757009086314597113989065476146146860676108253729122447648844029052508415645828088179108720763555098437410325144905331017115005259324005875398283210718147763880660835803499789510912233410881849681600967148763525132128984125641230059675045540274643888041503058129662198642254303694705233479954368242776873274432084608165869770177803852775413637561925552478051233195365938751851341735449009508756287500906593912667826258154701335319184827234866920667823145769641271871472408435913823835889105263952320677310363918585233520434547293767763799045788610148533683502524395607281958584766145007094762992614499756260431987067937511449011877257469329827176612591972753891568815481912253146072851924528998382621638701482163009825347406598752211577065012996085208904630752162830874763237308885515806612210114418100728345298308786478929149250706737535361172026832634819116262972308193773703886368350128507745437790556743589695157861748672499009809360178942621211351370900075272456677162146627042504028218275809203187657002907888575579223097952808338315154554328403356855853978671433246822751519747729804214513984012120037682647738115809304042597753208910619455058356448819852542594425326231358605002360262623605062423793043828025046664898459348696827660999555826603218799588567118740753770289941265346166090393869797456284959133817263285200399864826617156499531606572913289802822319234130194510084431980907927881461579481397734967094017763215990117117717435306579599206045736515826526809121942223323258043089926406469346660688785235857496090307819512383690890230505008148975486973190092084260480904643825470817446034843965580387920598085711153863820437054956970037998906722823728729007541883751717910730485852792137713078448891454566737505525780260797437947047799905289436442471894169805203103094015382413476125002687645439845244111599550663636507507078477540122552057579908217681258160877816280756581733687461369500208468388854795895918819056705743748688453908727157513147721822594561535344731950783027555538456037953356198315442805261892217282762801381826318720840417355468121241672680183513597135930302904219243893925470091758707220220772921847232737947505357501520592583982459714510705815748601735927187449994208519531030181315059858098743043882164246792552656240300525373489805230073303065369249486507554542133283257190518196891156253555019953681501380247832761035919981522847269264458206815832637281079759807968247262506762339705894600104162660031864524565996111238076202594630960991505786480756132736949124472659512485190111657893839498937150435088239733095484292045025720974488212182553196015654737104399087033068675725091911302493923131070954139035907576374896201321372155627415590781968051154574407369899704334092926669689941236312015263607299687806870508896453664047603720178756859802209457440393886773771942434800109820828480084736340026036939264720640729385571712866565197356001000456407961042009599627247692791666863944685880074103148484823391329653644883900861083316507172989948367878217073735527784964715260768150751062183968279107264317337041381510744215169349018416573639684737350800250878224903941402543033716021735088099176580680186607346647726866768051279279566618852837101582748636044390112303155724653747715656593951551956526420590741307465657803118427066726665650830844262046605810820455719833662427980816986632103581188212138073615129647973594296283867110825920156269214166990629758636896418502738163358905937782789597237167033461729003810915539721924498330342067157941762504557417974213049034960675003619349424658308096928040008007463713096225414147164574164126209521251335279254615059346303344549596362825434400550519665251457841900785472821770942914012130382693390486859271631532145132532008680835922193790296453777732245726395617599470789400264486356404662100784990745401816043895355170036772358740941998386124375538256890551106954917059919705221056227858912861542390034983761226114805484138959330162481318265426102914244730517590902205090228802330893415668241963475026222389096953733324296820799930657989161949416589162645446254598886329495454605125451804466769491151646957599615175062318965211206863378423285694525150555516440712475131838114602381053158940574076981158720148719398652806375213420799830810488241185843394399312420871504575593109870133688855689709693295985993729407464555134354055658813602132784282526891093541723921451774838254339036056778097102763382793951655432002027437436393930081788068453752109264479091946798771822556688933156295027956087699779090448752120325492740231564993776775960591605844545083943985616022870307592673616489927215023391953221916981933809147158729704876785911707628785736791070972025257975675313944609932084023425875276985006543915902326216484231429694978873512658215294862920218771339049340015868109859322488291283412643097891678129474117889017152129633431301179616772928343087536606419952939624192827483018372294910289298503680524174219674794256082580836464167201699378262420694997026868434214232950414825570456278664389736125648649560457897238344971774149873017447645376893512181649436887443553763341655703517635968717705871645006833049301892953013101621218347581927520009138004710598535343553846899722132340347885281331902987042878603107592912857758881969501247088988250089721819521339680419095142432568076867186676414881581678975508983081741720614104086774762122919742946999430214939417165740392773588572623368342311362647146293604101444011951558477780730436627222996244193304179412322304380462041851962047934549423349653274494490869134474519019780120015524809463191228428294406631043086407733298094453775178600765982236536701544928831997712151246542633087170869427892615317913362439677256972225956062664442468038771325074736729585396362732384647833955329961087071502032975405504513819093292061909075272339373600784452576639623911237852805268623158975002563505389484551159818513992255193453539597986493395012080824488554295970060653425993496909046119416799333511565614389483231292364364348672640798610254271191555742225741827389835574960725863276297976379481647901565678888486745180990953644857483764208332439390653283858438490569850122218558672580839160653041549353575417744219406194059755697572090680150569555119234997735224791438823640501556620238055210046485182613150963722808937738779576748257560078673400532980839623640323132275240163867629225081680668230677871265006009164609248484430287612845781566527309404895383364882685616348977685347048471180351368657360248965255238860861535569436554073621658199096865248665324144813590979230421109626407504576122747992186828051752414185747208224429574086117980474491682665636781162814439069165904717179160376770634156497644415258950732995375711656275079470413444948515632443499952428379527782395454562541952331689131542162093522842528442810859557169597331310591627232558512328107128132435996753026205730017407186364043348133583655759564135827012890402346088566588712506616487332858346256961280543274611864879140838703346183587261260363306522191947741932565736583070761628512897887403851530845928766087116508717145892030708641948587083919650003516297297640040136208527763312123144850923423795256220763611285134456287847406931729427746700260588227923511388147625033680063630426765662459410178345565442155843889602201976019406500162055806904950533206762388207924555124269006417975464459450957071950292055204272469450391178601841925677026475931141934102823165705227638958348698780709831655099193824591377002581346411606137578207022288130518995901919601295814539200969035538488014057468900780458733046573181686754449176829211662395569708419474036318953176655090094381426903512583148268762795589545801801338170808418066279248432232703412939779751506822301168232555582035233617441084122714765250982852804151311127732662532989100586842175078338614646552606957175847790628855357593016694059276418849691575364952798736539247668626948091665266118758488585898533091681318524054825455453905459694133435087519210152557930987846481844871831072422693397830352464456760129325188055674209531123190400288398267334977269245773804351459726650329103918993271092595255941533743639641200156988244255437847821114565099713954781419789560051917044488015031926916881226058723834615630527339589970561077769304056889668011507417426729688115712710670111668229648587075826625310648042199138080099519914139909390680071829632898704127153076823663478943312491398657950275808175629358677678409032100135949782225078747627473250647043465083204905427903227281194565833890905304793608351401847974829302702384154686833812601582769679471740821733317517427239385152497784494489861643561499447710757799776621025376865093563617481674471255479330792352031502888230269100360770478062095783931929164671171460177327745869530410994682665901049118194796591457211220986091468263653842257302515140629818672313930732188182532260186466064228891354758203261744633579209535230660644429032116841663307120979751067662837257674286717805373024792083656139797792404819957125210080928828023565555919337134132777751665774702955068035144185088649573538599631841489379546343927775077690443156257426444767739188678228787977589714352526116529920906554496195911847857627327949509862336902800266898274214762813023206512884480134830694681485523153321342120848233764021404004426730882104018725509923762054645749972531035131215489663530506975141191380661645569090645753615023699473932826346033615091437097116959724750321071957818892437081741973524198137131046910829710268422224706896398765436857729982148705834083277446955963609291789642246672609063684089199125707635183362316100035266614948608689510249623428937980195022946710082268277946027923839442197481575639830941314300148845254879555883636209104570766120411114097067891648499632480956656842036324309562017823244302491644394710321305082156184487156394749955945145876359015031096261778632275806258165948576565698749562895648289771036683645986292718089882423967606384202283382574843722117580288320871125569103119711436615032275909950247664964352173356521004286155453877187427597446483992649881344009335954884763091582738905134666692750830808551530281603551030299911267441189735076433171561149475385093870454698102992542784399390054248554062045621607993453742995778601318264913261733089353108188134777717457945013711035589019555445938871719609180487363626232362302401360285351843164635667551384755737042499394750516285065211108578881587394183839244994582938391188588319257946847858768186155177981168388070154996215502487579597478066050611940439024905846984432509891737358824362530440013588139760816318133929976493605165316282506596100581828099573327434568287260805498180304180737780136252519474954341637693664869413245746277227224386861151971192687955142701225066411907823381587150095214831599949141191799252138928948999499034512287159937246165420555240834642485709092397415301551998951067768460110078141644381763580352720403447300498137703454267898030146381765276300780550040368704286093937474035492224387615602969868349297782759352087842623030615008837580510471328350951419812174188868198247402954159638611864447620290637526042421599432426538768139512924937253078998706426167824221492013712713665881733521974762160906139586974819794971137006684328013124828520048566428491034813364400386689918024997776999397522696153836709997881769297890525916299315874187699146525003406827679767895999499798483087354206467731405168908062065570409370080368946565385945629128239432720148738950870086316498051236617511807501950172166754901837218720790615367569603519471842875113862511620071655488176236474366199956544688221564833079816128438783639524081128797474886576392368362268109017549511269912157965502121675370639825533715849707906293054961755346853448236288509334751469771408163169059157354279524861528543099867522919732464004112930146758621655855322995053148483816296179361384442734792370347920210245360644693621787247774510552337715410687241503168142459558357173547182428899276745157818987060115486824724661129926733929985670859843423364619199567504706880005900230055126744066721568682846705011419784760791955748829326012837058525920720530346379243591126448451571730823103954322086041725559920543798479446809826436527428490230100004941753027293032947834464852335037427616704146343130532454185607627815166395351592636919214696425747428787837520027558192015836175718258310386613338968052677823780312550969448571162947666584867616656880026644124180047852139539249173690767193059273009243472862265001399158743681618459537530940459670142711510753556192342612297771364398161864385013969701721112670922974124021561236800291896465786945564166188693219438078161867544545194822136992179816851537760946504002024637093002026820827182973068016582207380860634976997927606349692945584716471872077376498232219661147620076197619317209042795014529380495780161952106486882950402038908756510747575376280751669408554546619514166611117510476190259445568647946418549200194431023550859879464530256626147402522539958323509034956716930608258127040407550069986185412536950402383604574528386453813049977649877007054528915603585817900814330330899077561590241103275385767005886374660848446070274949245746379140968278545435977982951515783606358060607469119932191001658463820399651027293782928566508296578561986414935763935803054278323137611719461584954261293044884736829402530264504363916248987252565242884239039591774408523292765032502598281508378653435105786693469327530872834249347050529981749795677094978492574238080394992494959871269214975822331803583207460493053391201035681867046800330912640573414500149046214543487518731971330228461905503853474625352109869143126183635343558328215220476791138937782826189026018549307544300170296262408626718393111569475700072099014434846665010573107675686332878151200733088218647698277793663391778264294896150818426720707443148976230508046332036248741911885016425822828228991550007200116854515748624547457117118376352233899472729391842087542487356042957063160440622539870193477743958543981348025654280377099699212385168154997762383237854480985157111305831281997602311959153857141929342632436532663342778558606463546517597123851030294067486622006714862014519917494384155208299867802988319249469119806052499939623158971559522648178438865506430173722453765170032146371036854983232969552030508245248930327252520528248835539997289387364256884329580916118350323840918013477069438659421268379946689714636998577505621896401357700955792857588856518066439957923080060372856557172252846776655719257933313934567172004333453937657106858951344662733148189559966710026203256560175961412937764018308737649430553637384256123292873272370175069413909962219629231253097014536137844740285223265263983853678355596037482698196541803113365539525061775910917414753405455347714618876366657697601358505739730545383990780140292564877727864531697020184586405101459556745973599101765485508208739875663985384196633641411313673963665094450778117876744828855198620232551384015472566076921929493899823315455704564288359273761611718554891983380295719303772530955802625596401264425150670119573187247208535643316374344357299873400235477318930189128333669758086125966943424800664460376022111627972896375743540253198010943373208405980543792361911201995004045273918274807052017655310490560293735440384225221270869905255408671346509168138830041143191936489942836689346527006600669870603994714183496222644512264250653213898764037124176328254475512336547091825862173609481786135887291711687670359282112956838498139946818536922372100660924106013664152503157768806888389662271030451403289846335288355924812544488586091407962881968239867730918847409370665064539101414978187839349497689700295256386498405686089562630332304158233372343480156515707672815723244823822865236750040810670969362797406181747377502479038688956226729647766081353609886305502093349472066991228886023068829308668197533997324719512007726796580170108457611778980599962442112236475333121047020117740421459744624443660716823613779850487204982143375671943120365371366612620556343249220965039775110538801321112132473223134404170280224635696763993401296938867813758938467135554237941326900184392479691729056871755842659331190185976678620440961650463264971217640788222086599927446670930494249651067990052363309047818713474100157999774279118382024949308054053806120110576678846238551090003884646784249883884371266342969715324607796162534945032690461310975224714208458534802434804854521102161237182577976065337566468429520891109470232860970139264317371664504551280690161084367756474343318566455007456747069844211408849706757914446789643008610076894853917467262281652483712113641597691342192174244816841273106823016033704912571197330919171049848395411802323509414437281123664436354176614715090278312328856516866901949817938172589427678903139571369266661957046128440951594042317722660393569740870832977860320248421506389113179621257253325359782466803951082640307201918278437793683366118893246112550694790679195602650920264135570573410969141765003323348792882719970252967442175285417845562565785418173215992686100101865880543828319274599140974705036081159277845216704187783937313117471572781480965709770952268393536892042264530843551805989691807968951663100726235226298774951625610103041966348403079218532072009557620640803664850302884128146295283618302202661504520404867088157878957078325351983730629760581059230668578393945378431628618861189810308065472251660096114832928986252474177982281075203134294620539313221894072796981210862563950195280013537213435197527856689132777103221875763537292515896010518035802028593928735320574281765249890011729526463653812527684031410723983527054385469158697086633160740278837680606393809936739809989352393067489088060603504821876551295098011829801138351132675785792853840440390571824917581180166728978275646896104755676550926693141989359428009079338494998067810866959075147765076286499259809173035056739691095454608230322609071675373609107754272207237653567125205352805794725422797892155521722351698152824934489327698846001263239321613568662435575498744301342094070084169243145599835703739994698423079266739040092538610142378437822817501075531673773856506747559740769963769166345456244833931466582954072983067915688356988943852176717337653749124425815060484181936838264400571645403324051021968623004524933483919867762828517303822513834505540788249848145424696216234708872409780999789995924707747183774989470485684146894886612017825299120497106742971265622014557390839013220700822441544673146278925105468353850295436141631899665605038776010081930035930635077805418204397013355656972043529757277784008549587294875697449232680187174677772989432139349648845699906767426967319637669707909462168708495733607025790854868788087324473011536758891944024488893212880909567644568656939261217763005370218255369116703463513915230202311605025240532204165586240952039320424108881290427129241783665757737368562101135344933618429509589804956276289905681171126292964654192542477288810435849131801326407349853561377131539067072504370612814262254051717094252728079260918002790365546902276975541324839999504645297990811357283384519270483520154661326332279042752004810315688988627757577978727651272770835113363937346218626567333504788765834820706704632225854158744557264642510022676559517554794949777519654137309268297248797288105096618714340238717347503890340242733967666528452015251739772344817960059202722747770414580939884094698445728078803519786260184529239024959709639734523746358036169601291795302551664690737113589262565028353941964721350778442857379188474076464161504274178733016599476543800584423008558427652431354116065311216375552079632049224668682608370447636841227049321752038545510135596785645256115767180376778366351183903270816543164990782400986721266182404743731658530176001160250401606357916938104108011287933244942963767206743176736757961012234893895601817738174025640970899172496179495321303792805473374391048627824981091646564694897448621696016861699527243425514150380483006497615580141548491342772397820464698721680242820731269804601240488203903968537093995775437834976526137688924047189427525195170065273221546112534052347422351318378051572963079690303854877981227117409322294141778666361727416280113409591928688075961550410667338157352591316047391152671915423205504916887298695933451341147904165196451045841465922924965179973903257737307484550553440812975321060834218775336001347017401317385413960376908909076290469165766439574652430249135237641064715466421523504761569799303212276324902039735096187747210765417899002012658543284407860944269316051615208502165197291183324574746634734762902969545446335345105728717866294325847405869064300109174221893266218796457378639867173276641720323560511760361842313384365154711788582849879435778646355920840749463088469656429303014480420517181569482278300574945889706283575664127832434872543910000778181735772291509687526221198481579180400931869709069365160920276454367549463490586145199532980811407653137232906976014450239539584370926586184739720267122696228296709524386540288382010454123148537510795989480143483065542667042145176153917989369435259199878487282975949240920684414913716608247437633353406542435504320021314532118244055451211024585932912669639556628073304785956381772363638762924286084356184377324405424328585471065367555806018587368005501692085815313087367993952241683077293931269422540825635399597681093160243465907494107682750234809546841403853802211210541468098774433757999208372552815328228525322263990026517145721292195112346503017313333462008785572810932468195015102037104231648082720198838177326743394099561951279739817391594216437453566250191144217129740521551562258454349552882947449052614823433322386274607134152879850653900548705797892910085447742700891607022703379290833943209102999628616533013583013249134438231027918835002118401036561217946468478709539384129018157446300827078794040290096325754456287875082537648449430454850654662068757653221186416095050421793892448383171503006521075424298682271672505892686242145567175200474056933739394995114207167284187460771322778440934616099414222214196410293330557415616838410810131451752119177126337859886652835007656157798262811925799318585281924254173747512936872623197307083973326079157300719631891982560107039572462319124008959832880277805037283997768341778792033231746180814553614013546059545700035699960757057490926535358796615773635249324077913974274658884430572327502549991956133777558148247625529597853538795285472427620652389791179424949732908653361874289603109096502208705828785986915377606403174276365984857439927898980798598548172332904472795124592612477677311375926883586432394433824743707281398797960176291721914063925474677561746291630270513849417510118532435601548187451205259395201105193388239645651762640009951325102197096132143730756276136821639187443546951264448671102537917349969418410654667484489285276789015541828858749548758143091585411809384208318496857811488687515184697676666932354617048911415954660784836079117330411521037113651598720455066814161399820857622172441174200615846414867106090681683136767220215872035030281771121491316538443450412049931784712222698043295707401171358875708603002170896277277163769021774861260262461684225416140155577351500877800855293167592962796292062322646059724393085295914353799783631839775753902943707347483607692653004509379737146307554383912039186422196642182202306170514156012878506875414189332490961519534226491346351023923807180713095978028822193493132989303895882936380607154904933889727982509476266366091057745107239655706661935973915364527323279584093462322480995627645156914247228361866346777405707765748141230749488004965561034747532615544771947740962328155596564888862883288652689385599010255472838954860785520258880750506028335037766301380176326697644834722191649444948396292292749181384355290658936527165478903530194140940398905484056627204983446081399950277542471099668125172229039873998673530930717164641455848047872360455302715370062611627194286761205369553813386668343043915222334305942010610423335658692557431389178146638998778847541797045749327402260647828897917508392624434348423243347009325271279268413550791941119001188580943793741761349689370318355410809492649344409281955456228083644740754845826507853966739420328291908918610003537084835895437163107617194069519825779276371808470861042764051582906969783747274761219959366681710580980435070527849854345298987608385630895107211511481199224472286425211233932475597943964305909494077078817589687680224107411419810945520464303696635042350221053930326708996072810369565550305395004438463997879263097846714590258055233409679650898487099580364788358860608841219060405279441289988847021367721866784699434222738083059468807301357719743817844480836569221237049157502879113437164687860813683634783852048783187588724782564992618951144238853848113973907627041663535684009225547456285935244971027317215101437377398565252459628082499192988584018840905590593206811795087593190894997350352345279340334199081912360599024991154148828288609671288013499483640424589293923654572550919059106531864822475604400330563444115925235237530664993678257344109257845836875184890197620917756011255222576766469846538686366698811307946176493850802499146767862548115978878143400308286705826886750173110194252625469207381157146997814953707799974772731007725563455174248621277376492638262897068034589474633347817187534055779093895355343633560587027257630522306510116071910019001085273399752808795152033284989497363479873486285837990918591072568294181674973394041004353870111944680397809940609281914732885411250987817700811198582533144703724717447789876271802947440000420532237783512603618528592529570549156454841257645985817673529254489191196411464612709160275355126975709846828922689443671400963662357203301192881365307074627011120174728014147437294425857500224022347076398716280959540133673012238634705967866712080684938108243067111427914127547633459861754797192193797585049252212500194710295227622888599114384745270899581345250843893428028982607785486776007647848974126877489326193197345881930916831050137030812728012285960246456599776388314081159078551593396612754436498193586986510405394210551032341759245861264545789602105566124814737093283172362035232133821642893138412266248121384089325419881132270199705961191301180343372468295611977742769921426247737946935662862032611358197929419674725894829200230869248367258960144949036964549161877292568305492902565071463875952904291900266030633466542629953517538049659752743903178368673910732847477069939244511773806086970180008632531760151171866949221270864577054349937012378695980887647022806604395028023495492058427925975257609434907585707568143429008115202455468356514808232272546460870553774658876261786700575379786016145470047411394732075117540801206861214890133331219888473615474325496354172388171518104900727753772701350752189916531308102699204912887751116223538126199231168184930753932468223341243590582730521438128271023308515126570371401537522598867003624271078039467114420248883204126165930455121329871287259200335402630359172654668762401019075322718333281911820749192892573863147989255206998336438413294144906448748264547875260978926257516754027082720478638609017132681461005524948082446540482157891026338995056784304565183646878248093810110190788796748971892645800996960223600897648667133227364647254014954169359899579826055721575016439562830088671028873918713189015461185538351421685317567028561944413596184415319926603006241299479485581716418248360076035477106956552305083797844973836103024350552189987853174858325331128850395917980340282972315859983923029282498462671182038978409057029528959853978476231249405755475739531894843069613250011786276814431633322331542630068686632003826056587050946148257095966483721202671243045014274143369439917955161178457006885798760475359216905994650463937559392709091004978857389012893552516627749748293519013537252115925203962155488680982306902250635107670306393185432597981394341135865135080312015602102712358466200984220593506718893928202217645067782398448630667904462667003042902130904429982163745628422426531830135916952966843404879285345947396902765076980644926262592727146054056437266159104029298240047311729634511742661447222172193083470104065385529812575566392589487716355294214132086097910006096210409172962292168350625156664984281053949674551143412975094178355042346648011497985473281773892092978129860269188513645005980993674231459681237425905084513023181126862108500282673357167998341130995628167454458642604948107240782181860821670827768801907741690379602384349779809550968590231255806826835323399851722802597930710396639327342373907483483583457852850085555502151593197388755157853418969708305361068206340721760619378187720442042791728419564574377926298816225886767389673672901643969733213771872754523349881789992046584861845047282162162722747786004665318591414097904193378150908945284710198260040658305652669373819343589061875997605349654695619403063119121098780131027926241058640775974958324262441164313936435717732682643145069039517709438982262126488587734309493371256283333905586780969784389622665677366827750826255619418005464519566575524771325948111585560324068656491367134000466052584693541494815155451212581109214633340977181536878607210867861804528829109271481308174176819514448886841371010828901283767597268991396807858506898148858585263578394445496881674880672196962733447509120614089843004357660587229881781299566440078729624895327203150043703082521700164560417242513717587368829330823421384685588506918311881181284478493066633572468476644568556175883978864877024734837270181067423898151519568317290607250688173276312843412232734605317764144137684881874709739591979424411889739406081415432472106661874792150448723664472720727907655512519100889167578543255286144004625692226252707455401093191896673637570235634946880612530747131276952775764478978139474220622010695169248710135329865622353427328886770927612050924514575791026747357227370433191494265311042632297086954043349764949152902462124906162124207736821040792718178800614401463489247691994795684913910813290557425328421527949539133867419174835754975538503562840123683727242756277797177766632848695925392313251763558118806422550002447823436758481595205638977991505693879009285209062577082930276531813689422200679261607121873333200539719265766696338457605398479239579967545675776547877450928079858533445312740806226989016534442640563389240492335073570242169064643413697575324932430055788651154418114751552726762311570972424003996025529332852999167929380207355882882949854810146676501236948902147791991108766608159094033580113567478016240279858521318680972674762736785621649296486506180550681633532134467325730327591104136373501776271258350947558343901766557404756582358370654652823228635311680753624202201849239515355441150187503890966298361991691965079639771100127880266334248537359032943282806430620251974711694028440959992974390197360585552214011231229759114892311716975414597724462213014815603652129262992735565242961826318600522190636628801258570649302704352431283004478439537213647384644829141136552067168297245290866403823938979188196394378515749500749022310705165681767151596685434196034185575444237251801063343503453964403303642627760926537365179471780151325209397619304574856809111210566533794417994414602101554963433191632506436840114128924390077036788457860473679282295616699146841032084818160876162307674666981348843199540293286144341072634324768145051404009836246631130220623991317973937973982784154334787894453866388770421815777112703864625178734497703215337227969578683908442851580317136032600976550089926604944036822047819945658487559671550379439059051158235561183639320174552798344504132546940845676530836086728795068522029973406558634817102618787193488413257343474890409676329830904055141021003026920524043512493309663852854811413737039285008974668634085096690333306959027391486248975469908820617645708686477173453915590379675723672473794311599241632154813799479590655057122298051646167202009529137083706219107831477650914755125440061821436076215873925397735330192184849436162681290223718567874814050849585681692035138273352063010618547923511118552894176405039113152207656113092189051468194145387934835340118182093635541679232824060562737326168461273405636654992761974747267632064315445353766591313240768567781018283945826729244156790975005841035447044495892650818307917625455806878375654819702442629050262790564574957836511911386817449055911645631734529157867853962993861741472736505912381382894861874273182864296513028608768520283771259495751928233150887933303778003812135842118310411567557874488699466984874250699327422512713635967272615589273414771353428178108760017171593952919440224144807428404846834127216176818861316512495974083734404576245384809982224262311898062189832548697224330777341771348060609148423584497270067076569363088793569028886003527547684644953044583592287203286142030791214601431749267022847079411167126674612417858020278119637771676443817680957032103000465382757737005038461242611181746988472578137239091825869920086584937427418150228401417110435573085846088541134493884892946419863514782318270274183166618258507154159695854233285605030318911805175257205721908023377679987675353221039799088769787851982382595801185092200690793904317290417865819796851854071773530327885648074776476476424408780585393871112326800418653195917535570226135501154440353059874729698569531065210650097993658076946149958274741978735037705284396660845471325889633263478955260003384869580476460563599726894776009511110497424537065432943361021023941536712000267374672256645801390978029175525344745089747140308947028123983644409849627149221796962726898279494176534511830862925160128776882074844647853280632559440233376954199389240937329950470015622373721738206917022278559868949420312365516199771187484177552907220789180182578606036838400397990765752831419025863937902365760844586276571056949988741473610915004572442756679479519650649260849464036568216835140643759255910578087144390201251531215635176465300203239298848930740727239279736965297222383278446358292318858348743222056527952878353494757742957450038454026418813276102122783234450420816640101969115424743537278599322540631680197101062239517170790068636334449432523493627353910347958984154964518517932499469637832525498528932134607856188050741638785993406454820271269562266130556465976500128815451869320757269721494301935528013675590039271302933296578511030145385360041411887922720063219217605084752855247514432913566992851050771296620414545539379113023526424535226935083464977631023414827735420802361433044749797692572086249367155407915060067398086098791499977852914057179983554731408047264250964190273445362413119611367752642707559889239754426636789828013437189979917131512141978493073480320785244219818009683814755950458274505109707247395249936432990767517854721328874133762519948181962007413018044901877491078988673720510155974454051937964197140061125721923857341593718512525013212610450654951774383972714824922937251421985218512073672275097058357304113958086203902690965520473162653035360813471535602212331825356299550870114594037448630201454086270538970602213812696851552224244105407215795183638908943368121684122762016386740497347208821885158976561104438962696801478299799363115596613904455592775156419318427940704463325663962540019743101967080605524029275900472333110102762275145293166448129516319264196560506525697952899291165941498786905152178925669729111968428058474772740025087347717488636351822888714904032428442717220638575990214290246796699326829048440449701323859831799685422397711357585614185978637262157816151799115079534465970343286303393609936458553790876476921038772994299153539444447204572411859082418615855729339957413127253575568908752878531370561337458040009855435495043581097500163333242674911514848999347404656271326305800507768456820072492636078456371535259023623231314202216473374063921620072329539019753668951065423307759310889443363027910530839670116341122013768500621190680955277679105386781112540120305924610446540692424444410373201539976778344382736728855846077300552885496516126762365729012381457715254804655875520017587440056495876063468709232138859829403573374000646262165109142908885199457203290391410539214385819489091067039534554325725278507208938136684779799431406991756591779690731777558867340952043180871523768046732529615678597777932319047729829348719944317544403632446658883136071377791926184085110719620587993885964248328529354956807617437055023317341177339165767898295279826418470564341228533105764011182906723747189644206173724726137327184450292533691324825770747314135965067614993763461867548760554819217307523548920927324662110032124628609149982961764789144109665185977963383945283472118885093734644230784279979713126563120777980895069570361097045615890979867033381853476514292444702906698132147391178514318094937046414493576886040003390858561217617627009516797796205224201206930086864170456628328341264538225456055935077327015098899653308528068693035514418542777020723718553342189611962386683423775882369789477538619245392775824050717161171952139031520644492411874012522371797375751620210301506643991945535242841294659573994940000377595869460121137829088929841802454728633382692195389294258414938724777190619011039877437692869489138878273045480720447318431065921994950015726907423865652230430965934003869313677340772546809066252098221387010301057931846931079408653426995721386613255015043453571093779503197995810754507498377194937233628102695744917014097269062683777638445379303567326822141821310454062838393481988814548453844765253825175376711825739730723179777643135422879391901260224333094379629317609938574968493377182888415635990443902731043090520503180747901717198404077669605364973615839889267150659588725897830213839987411778951674365109826124068019491624147494481540334987935202638890087978610166003205968623910974591541821857522377356924246995135708505109077152380888034790720465344840012823987580154977830229585102481738385803988438555170526966653018743577594563617610161147158339514999688336008043965074188804942873937279183019319547873374105435476020563263065372494011813484690027700054068933960637381126646856177807074341493024033166020131700005395746171521615441534145028774747539145011327452518033105066696725285000898103301349857358752694446045122778617343085029957590948994127359754591572927859113499264383262173327328943112994173728332891701993861778782825230884657911561467300989485188377930137044056980548800827702208567407393036492294598671332274177537534212733533225792972958100003281091763829174559861215253172839590773058273586936143578146394441944489707990963002522924374141754397139993748287428292375262445326180076161958183850326913583165815065846474109828064230088080531403692286520591416883811261662582916051780643954635639121958177822598193275126299624622942100771823040774751805724034678648385567794918489768558744762637932351339602072945006258736026753059512579018557346496030913663668818407907304481726302972764828155984320519483889651724659830272134122527856314991367683199282614371761013945291646467561831204219046104969009088290845137567740371275137094483932633179294121651618987037004649700428214751861942299734219271052842392276474643239312213027824614400711959968887284569873360465663241912684475953570205584583225860229290241732781611422035676934523508203180146415932598144304965630709407713860929959151840589214300657497999649961545370957101545517524974280116013692413476346240504212776753441909211181601930537494685479055492767673967035874123066678220148100199467517330113806028869773789312495540489352128660234750233666250005870330411937182326943421644453285839893136797149201628518588758173808043734270548850033377369991860991067282160657139638216879240838782277213986600075090679914650912585850623735208797520893812054853293614339078710402580927867253762056368819786515614015166995006743132680864301217572786964580985833120609760861738100367053388692325906915605327203054098635292550374651035261931935361482747220940263236548782296824582408335551004153616617804333499511751281980812335982765758387473289522855664872326045319141785356953350680581671112990942441754482595683089086063854604917827963015639830046874972485032232182271420908728759082629387476345952681880571930854262387590481492335355680824754323326401169452104016277940826407311382266377458787879292185034355122759153542201008513319930991005395817190318782249162916307547951397400450717758356073297129879827894049422137367051900379112061531036001834272464178865600144334525154413050994384845066071512066229029232426479393364368606615009337234783491757938529143147640691220716732300928587181540525447320875128348014921464629503184550409782040263229048928684853188521265292952851820105426177691471046083164928262162904040642206264748137834860027813605844551236005256634677246209925458618969038526503637556491291826447562321933951699676810781573102683536643428533315286790681849303610413860973505798109639367670167635714172866575341946707717731701113894901451255499740810553498789998024224940051788828797507035322168654490255085471730595530303803277365468247100429975257513858247869887034552114468341677922702978576165407837322077757729292620711398940643931646593631282614722866108974075750192400215126791581932901728262015590061599090137467196460059217643944447858114003691962660389731043576768630156947379072048957631864297568039147111287220628835752135325676092877457295149833116451050331939325468336047855373112885420796694237396210536701000935522186950558618231823937969074223570899009371324430176283224702999389493461791848243045101770880100542345867909002483667702412641585696722792286781482479357794658871427581109474263756007524682880320628035425483572797806770292318540219366055751840916631068308478196362888027155414368828531227122675653155086734552996863718414946257607978241648944617430004161694540205900169806497408653885949909363320998229279601915145413173232457450213644156721449056146905496536418428273648991845534778293664200766352319539611170206052873320095111096294358707223286662071560781192018563891716766017731677956821709462819747203764460767691200116050771230355998286039601582651623590424127660197140899681921019717898676022512923344260020708382184963056985845954272537985782364885478351382512534107094520041859106009094007203471544679371134821614587549443520190677858908651549638592256120776298016840683275313449987661694104999899589101913253261479957842078673175173798852785307243783652723634191903180331067021336883884427576024206058902482893167356539092473734875959920750656796289879773270911592414697220181621478743617063105552902757147726781807752889876904674923678223130523286114074206039218593770125077718988146424806878401506565940947635147834737017032982497084147417996666883855331742439140462005158557662968823387056607222264550350398959240929847351534848156002032215291041052940581286896237068299554201336292583156253956066942215970714050169195563587176936107722499656510997605895915324693463688813922102828362473358151101790472748844083466372552435934691506257474598471581848201697061361884072024552902274803050112384442590803196198371626595718502667655754427317049301059611114749931710059151884864867754358701732968778663878737694424777049545513108757130832639885073926814767329548187054663318978398011461913228353744541292653519979578643771783751001349525979497921654713031333027179692111276963353761491394442212126524174934529670526006392944591516092441509124592309733885309094536387411606711440982043435955124160333598868652612483704980784228543031808300226600506675428315595556894109589813942859024175420734000866078451464348282444331232992045653271338027529188043863728577540470269782528035017650267762152783344951238443831402752503930018914763112454023010711586823667410491497905882552166517884682497447229086791598438126439860810968029169290561569638698751356500141739435388124628174525860772441140169357963567682711177817019118291374697121633717358079962720879129616872367057713909055056582363578114048274313884413906799289947140535130927589894468763181602194322583903216953131911862516985716266777500524613699174520039615845263090749065554413896936582965588226196111314071037067200076334667364303471680761771500380130957574527769382147694053874967290680096196770116122605036430134933633709317816737779504663186602790528249691602812493672886160613475945637927396896891535841508276966722531546585867571999077137970635272136213500394396491641460971256766630657959493533153882166368903392168200981592287306639522373327784625120726936586177018085328493114802780036821767900113353042810983498177442405322028232207517640209881105396361229990187786442172764346729606723566284784245885457732706268645472445979885427636499200427026545327813020005984705707071164545165322330357387743860594946656020105565313291980454666795481536359114880616086327449752550026001528693669340881621214904566492926290731205048514542806697848174365362869232348155079675249430373075072665738681107525613457781702595398674514849714557372589276323008379928714232221392543424215893368188075368329073899146865570496986490263858097053548659821811215075351158475005927271369385757631630454957370416618944741284726886201217321894831633414562160112952755407028921044692619758081683698937750226354568649532062922381446160185998933643615684912339893347395218330693116693894908738180137122492366461040426071186046743471178781249908684195831774364822403730067531653211579691946403420201862288099155861758782817545554861854990422267873700822746874850003113032983804703718879694486234097642370646113240802720490894957283621980861400475555118264912046579992132583182154065116197467604856801562882750554687259152378866055664374953222750864061533419071307507864158233059405529920440677440870849947916803718814849635084173312551659050483321932972408697903929857871703061402912806844521756308891255133980305394303801016702124061152319464751776762427300525243828967768097284804373812818621268256593267811264514750289945188542286047636775876240009999246535988330353178930276839075851906358748959423151231792195791871700355908095735186994644613540682009449713206697721253964337110917726916159172119904832234298417312167499672323160195646915720049682555730700891739021600440561269898122440072324564392181723185724289273613972483712084559950588338301428087430222783781913799766983565634303498253985726107458881369553284479952842437493001018645725075906417935061175015692203052948083952390836969343535187771569626356675938327381164195456065174851054810573461857584103189015372287079818747275634267996794164817143064835938735000679266609540588862622930925142250547544236597227337914217675516929251806276266229012606246287691660399561921962054870567721624491515244205216441889417158438861335098664596435790095594323148886747811173074031710073057269599894975835914284661357649079008802550318286831426501358521579784089159685065181017291255162938881854532123038698750119382258298641179498852786309086040095147685723308997936758543081522987652855057946708440423588042518736814581280530884350159921068582763185782702982186195295460780802437219652838813937077121609374908730877920148018890977558974709786538183897689284145198108202000980510233409928023299613155697410741334887475756327215462172467865892241738234504406725701927636718655998813227809097639089399990041291655665927447551445784177979646389455139690400782108352857161711291944798920269952297884654851814401784672238548499941239005178854903798131378944111173512957066469676778666345140049946001939858584682449869348167910152650785518832515504100141807465119713621950664996979414184264034146887451965986925174539394820895936735191754527414594681020136936612938136570965826368401994564476894939312887949574051652695608514328935405090308489665529613448032676062694618295948563554198958576302379891444321135954511146584488605361942697098296219799492225233735533518245067419237413849090941672034082454167763106847355919512479015869141856870946303991568265793798428967280000215012229054867502289811750426255900444296067554257155029777068655235899296499894419232061785948258739059033693594034860183891075882281268367461453643915941902617838686043781275332544342152293392858300786681086195914179177203783326580872258370334270828571890304630148079898696102920676604509927815405367680662807107344309147211744459053651321039306152539482789711646356738404308785093993176913524458886566445925825726668454102906849038713987718374890358944242301218940828902967941680623435589320247754752685712619873138240369714491529391295023812814270741993102257754066144916514251931841239224645074702702203870544562877180561846981250428802451683140554585619263568284326155581317849477525726878268910315165072250868762098508022295190621457365008086334506390734954110232248504401842106861353616297774023681990601210780591088819557154406823763663121845667703679362648094259370639479137850448686726114277102114669984685100289866650516140920474281185752470899335429807910920293725908039161717356970012879778848550307370608308220564241054340859675392003354846695712894032476373807272622824303149679618198343067527552288532709379219183926890985603625152322134605839361290387914609792312731381208548354625328578539004595671041076219477430708910090079343997925537218305362524608504110306243413530923966757277510725240932061842442114242981304517993746156212223723753226125156729003759008693080866502394487800294652537651063936783010051468473887728357600857828064951924364254534825944676862491274810009507003785374522849476614463912915624628009176179948386296909656177037981983389669104859992520632715577956546269362040121715007684179074248386910284585996423442495784999160797331634723368027827522351831643594723826294000501669553504973589731959083812081098228839057148310926666783366323164019529802665329499376950053863721985254855181589297429906332821068930364498210796945783088301118249004098405736682202845048977946099470678085171038465196457796196159064433778003340804109102008583819380042414237511152139299017454895629803722860369216238015031074037107522629718663439498340522594982555809419885513623816676982833617057267726087101535768317549402883623107513811458671048358787329990146502723944652556152582781570815052231681017760801205446262862422298430712405550955934114606915465781318945661204633123630110970826204187838400168079453148876218225955571881990510387059662876633193742524986663758617807732981682669481814952202011721947319132940289538444535639357658111851326705428173701333319558558509733136246195584944601549651518694104095278336670800284374797348708021837588927245306817743770296512775618330747889921313047033463970844137483394366453018641752309432116788124474739074613553912258113992641034768004589120150934005067656407436459533363078340266259823041034815974822735216602652493419581984663128183207674615651008938842905705850705022828998644466747165005002437491559919048011982939515013190453129061004816805266900926200268591192471438419252044001636200743510304000658189609984613834689269234807032279018305079741646673525024820406382480850658790576439247846930342150701272082664302254369358135564696421409451107699750642907806943083491490616874797223747394281721988818069169928131959631751030863648085778488018917143493739935975300715889560014001519563505418899106330266619268611252454054425657948819399914339233399534542991269456500704724097399878974027446388174498200596172608382321660712675714180581709621871762112817536296764406903931361951743329803973597628796970027091072845422034376783308334854609306472842055218043259892268225769072063086253459699886107241848112956205138692958746980256972260974192060587249337591161445810253044541928705410964203184469056649090085817148449057656054658729908538043017279319193636537859832492440440694175042217125159238216399068562981730570523415539630553856265370335919900685464497762796747568799159251531902794407990865195465545773528315976071127725283787346930657070523746157087861242026723731721056909316080602233487515679055693980014627592900873694501618798778070826211503621849816607200588562887888555837128882277283549578939397107377660584487139263596627561967071809054108265405549540452873755958922884146999857412346788564277858893935460087772704416809372013429273349475841793567834396529540214073648578108143923297907449501213728912446050132335518180100951354403174854666133105549656446792932828796138357484728353939826070616173178715511728665112791913326238796150976455727776722669544472449558540813965705175988373264062570805212327416503602937490812781965043260431819349332791907667331529751436478450589199884748303458484553921846424547282112062128771632873039860046104590783298379872083792373281520524695465654764940543020856277829727820760153604815982569237737265090815833138515691525390947519321282599380491674366363135491877415423686410815566821781036172899200492794459889421398601527093682742636923637337708204071288113744091895675242584888900772074193778160064999230005725280951456026992765946352162755690266490223527173185124728378850339456134598485792266252203120291618988719078443343119388517076007948308565080918231171803530122973470300043284199110730550994393348530600083785018063903485180434927132596411455298981822245660001208776323864940771567296613167300609732757708527221260438374183191800293579990613414284106775821155750828945420759473831879942006459006489379175114790815261280926254701376861568807452176296024441576528488756694852166532029861179306818371360320491550996202062256793410189416409989190361413890128377719935620446925599445380397364801674102903891086316041839096934078852680180144720052600991763836401930003343203714807364502374669975848711225222037205101004074951507038552781566322075867903258226351928002739476700887970091796609584732034997937257574836760391783080504228613657266117994258391291189461565241884433004498082567710723357000803335927174307969483833717843846242491602075865497849117734481410765823004082513261312685388748433383639769612072599296920637946996105346269632749868033185351165882603584546075248869362290540221690845712133931425284107220037345315665149570069119771678189601890762367184831095645559556740612876061683284907075975760379721377772094457690663411419215521343386507176403251330145575701381890066560819960588953391766603017904711713455147448122283835006680543851616025485986314407005658690746877857818358666681163848709504689709163200584983034740218276600299758257701279759054096493291409260108791372439442328637318143105266851753766732512773745851720955125981168046399590374908414840157954038713123536273997361304685470058675600061351606394225537901562953660064346587819280749253937517204923644635840340912747521901650675655044679843317095137149860055148618415396045427436037828558346660261972654435430086072669912107979899192191268826595555240749322012266526065559889513253290183721869555405175293470318345195389287584659291159656760957336999442068208207158131554487151893627841800371186215906888104876430216175086566298442547829851053935963697454956628326166931275687257690580966190736990606584716371343051017264894816084179092970606311615609458899968154984550421659911385324750566771237955234912400762293083600219578729359567127733375750067962093544898775278398835653178296448817251046651052644805480515927733610496810659797002433195584227306000488736833783101712213746795234639789404475973348477886601898570058570113562096923812505535297523665695819611836578073098503700079638162988488790395767702001054656678526413713833303154267665106501322048865555312951169237930800789510741385820144249043709831621618847289689429109939349280528225786874815576632706216840257723230039993728530443649708545587476349994840365741371342190010021067047140787944666345774241045055935476746289683405437849839228581253814760283483566031876254182791886360329874794228861091968703200133268834033195489468678258636639052516025775339100674903234892873030356073428814946109919979744749458234746837764347191076329534833183278256456392110931622417599340283769552906967313899317115929118448253654885075769996798889458665650230111081132505713176425154537129649462174815181907601514129716630901618925445741516085949420108637368198325801530826131956900050028502048795950825569821428628636769524062700306423875190454757044476245570943615572824624959859767551217559564072056792947271302609946642794852125658896194209613063878243171658926791287525812771527761010460143047640012366700794792266737478331438920901278589432147568154367743347549567526451857473688257635144477821148077175106723050572651186105629189437334611147021412588052671977994982060428845262782329492447034574831088667193491131710965544010416108221707819544782161059797252608121330897448312004069924732758511731007232674779982762260285892934927295514061177284176518737353215536390729931093306114530704534435249275453589061733300154645214292141783421488789381614759919503818163478364697731705238868133119925918088159712888412840619304166835432010010850730309241735469383044575870296635521763906110510034007878054760231803015045739858640693269184325881775550947549214485158031053008211695375120919564449286084788945558723901099607684556046800818239392790810882942395283320486667724587746301618104309109745655021490188116686090809421965000375822149147885345493619324175540642770160722726339028970373031943276817050189931957243185454726381174893565078400416156316589092974508284790298410531624417639079082881043017632357486636112775098032788665411330232348914806400123963805835329788381664730597888169136370295513944995812058451271937221210868327773851139266971886920268174093475239828497656986928660241449559433535165318633438646029400102304409719624996928881440293430742403883951282588688040507801581806754557471816343419453833776318631305425454818527729515061798401380526484628819226988627590422276162531339477217237700405429324786546872610756553835432555042468136935704020839321842260299882196635197237612354638441902627915295804162985311742483753008771284722474622605685860823199134669647829295269349570861827811152176625329008442515752722870792915759793026881355947043229223893744503581982204804850216923129243343534127858105454739168801925128567649290618810002338786682859760609833166992031178420245264629339943897266243724753499785476239285988254425038130631836782882979705775296699550246715376908977202542037752289323411932549939825903685349828010915062196352094865042956765013542507072946246918782244045032499143384975623077197121884613557109799944287372669538871933694375248326857564020295653632483608422570119049815619265362437570629406786054765032578260428483974926738820407760124926526300216275936763903068984272044106084327034779267712204353301705040667330114243341648630275471088936044871363673525366397440299664170493548524547273691266374711929887954316521783763677574733883861320427155775997968269586643399031188755211654252193663833741598191143802324673890654299716469703947386578260941021073825181251158049851367725693431142298352200685294425604214494040886244188963657563001950287487903296681551896640829687601832979496139766103106562213802760626818821943498797490733257191921528881500648183119658841295700181813805819697255509073513093534329139955952689500302253388376804561183344457814217970615025157652172019490118622971158171765784162127564081181105045844286861328203771956062452996362186668843049301390155864938209751792892741159886304722570325557762984356079386496727283582924655047540847671776797010884116372165235277423123540293813200872314654826011388367031871341531045929022465429200801037214054330478959034824509282220431398722200540272290964689743099051293093876095160057724288490191558935825496130668698671623284493591583058610268485419367917599502047788410801295706970907478090649934808806199921583062586027444676995660694397648894169890916607929553798567720814624583333919775082585297146933094615975325908714367128501054917450771007610517798622083798637467180927791490541059088223068648183388056869082064601547439846566438509230419310412693063026072106692894278129008161498396201216443531587191884491919778485259906070864811348561072522579179188701926257450820622265726213422447264340813863215225270854261058880559030794475773276586141066186178593833889306740249988884646264470881565565583171280849004984191875025851658237298695467016771404578903161647623998416370974946852412895008952129589683030418915681064426830479383766298234434752028512585481653713284109219147857908791369135542731123215267464441909298903236729222764569747620526935584763392359416597922591181649964938165459261785803026676085493347177842279133048790976695189264537414022136862462443520934626203827528355481411476198611647716974693884099793483084953929085438037011091395266651361898058764878478919131525843774872020587561155691081099636728679561094977730617251160609072517031449468187343901050635009682478093194709443948339476896702022654276771685333208598768700801736056236178809611789656737858444217237326534311944114558229139939266613124966831699637266442659372315406565150833062803273818895543274304147841530892273017819605532557603021556228860868767307131102970768984248757815915227272539945614925700633253177726990684375496755727541756886324907683008054894240131273531209325422966293027488048542118082416636358059035336424423870879206164818556206467434025075524388832828473717667818253206334095792220153777868657707857107493501190383021125881313548240839796580963782714107052976590059334018685998413469417129506171114843786930832914956318711638509699188742543587171020714230895914115183196293137791110057586701889609807218982360106356255275490404830150885636000066576100298938525580460760400006613053815854626614232879328555652164176039317846408879517681467943410202565189350354041474091111683287152968923785211618901359145374795330715122930972102309659504742182178414169771433005427260305772893816180140420160019660512121965561178373445442279555808910323050962326228097382947076646778029586193453363060199527744874488242792037748429888849637498040275717748938384892677211389598405159683695641922683303885967187704799913022303000957197572882822004339406100003606111583393795447159512318273566314121941653504453166395824207158418144759372030261105018752906007980539066494664811945129115785929036558355079291775849045157124290031509368823402941908544703629896772488261943858243367017236208752229110026466935017634146279271854165721942118158666417817053553244867032443139142402380407171799758406691661229209792000468245300278969796616565224576999112454458958407828714563597392937568485394590279446404666069763268913440205564339755620375085516395504194015691490223184713288263148553384003497719675359157439757676926067722336586307757113679463015134913727147984397920594195910478640775320135835459761192051515118087319276806429572555929846387036546460875709732120718284126663035147657807729541884260831153444446509872046619637696523621018630837641074156902111848103965707671408712494152844945375689830949536707400629174808187923075105978881250910887526865823539008523343808555625327027125180509934236718139849297023651682011654181393732125649341999843205810564589131292953511164670211956837433076673444549282926365976516904734584007871008466524157883157731387890868622696660392981645471972596222506432839470430498728452633336058931655962859017076848338424125709980588333151796934854585187398178441457408858023520774705257781614282656425121693706922662810247106502547225842305077983645213748967901783806289651694211247779929751611740862467196746712394037866033105869197488029508897528645294336428886902220032356248388725686592154619040199356259369926017123004872562157981040961459247447868290562500722608592168091490016409978081933392514597639165616045813868549876047811819109863877893472947044423267005908983468515862145797611501170952270978661610044947960034943078831356900747557508202864721511052188190689409258272045058835243056113774226095023440327030571562094351265971607323136802205817938798319151490159897122350975399330604955686142594874233460984216974808320455879344194200765290747010459669507905269472862134310795193471354994418592793438246642601141847941289505535301191998074014353172537117377294239310288518236934252162676993089552740726521147309321268928016237959781084419676711368473112143742946261593676168920371059104381178529773690131495982560971673531206852274552361124796838076341382006221963911370728172636150466775723274706781902085332583809362838791138065814723665183573896906049661581426838772428752036839679964086365662589467120986782707475826913807755668943105983294593658580623240647069413031343953744666995774554189064701881197371099983013219393194960200850290711588150666661047334420943231045732486513360891788809698159663745434790249417663792352781375476490934333652236284253017937594231833359077104600736549413024599535281469217245407272498883483270129529477970399089795066750349022393351688301614903310422276151682729202403290428553330929908125086046808773809560831290384221532588121666186155737264409070539079625908679486699518036430060006738573921188380295562778639950456042463607635506340541624833704092560579607522422360080631962914416039856448606387309576470798494971878524754765828542626990782872429912015253924502970922071434407482618589561374034553076745099139873330842547547112626149975012868224913740167398300734305414902821752787281661638068716773363713637123140033427097664996133753567266193886299033759810362680598130577293779129935677870920710860073640785456226258336817003421754748864948941295289012115700636808408449230545988387354449735598759150233711458809160378585773204533237748542120906959531859928747061223919269325025840777919682615621430124313519134129267758207637082561644351132663200887666124338879674163365289373744642611773374184303541316475402925667772327371315977024018002342468663394761537839572002800593156921587365841731030195867451918796228941184180322348540312374401217776005240057014915165894999417623354332168216528768676165437684901974572378230141242345456346896664494667710982774275832070336687039375598163661468902742988782951340152707877043720178840837294278242328180234476934501753811227907073326356966250981695661893568933165072075036352409794127396531434861356008699901785021153662064498761302563416280603938547693465085804758762193627366994264187703947524029511309225193974865418797633056726038414737461265385055423539086320318428100577472404828536758260082638586531585062308144931622658923917054093986156767172818485486493559105474651777082106023945250407262530555516191962814087719725192819057023167151875552995009334093305785786029538936604830845331918088559640618365484108113455129890381048731194144567579662503720702601973022267063942864351269513552012679459049572730539780997464557143062559507043552563228729752180607316445489133953660598592195850401130025431666915335133861877550701923798627918932411924816324421435925565285914202356190313661569325941695129927225540481380739722826447617274258232514657982843616524120106649144153909769022224588546430612142367871106620515926280504202287354014736229940769021954062630406370643925134455141414216329110981673699343621542553038573073248674421073106597112615625786140166021713940787044222373494016473652446808274696090488145756535377216117692193730283029657618753693292368570348957995194473562446269361984724935559866101889205777168885719264076298293076794145154971597084023316125547955850277072918022399463868868734663648016172846768632469700151887831364299359098127560517069570626465658104331604402880364450129492371559680206741402423932960460950602987453100009505405532140857400152679524188598787606694686868237753992845036807909925083042656736977265944398326249937517085373587136640878333840075432744929914104909575994619790946738594534888598290088517973091586942589497493536089518342424458204749379766928860076458890304465709728918584229670315354431842994529366058647983729127078994851579634025416357538437988393853694260100802836973409429301800811875422636493726686519129756456680045062934381319300177252616204337985754422888064100136616894244291456404223274055224441065523328355302393428528437107772750956407368052639597180817402211474835692151538939353640992348645190353300582246331548163181249611724486231491431582057476205137763747951336713349113573042770454191629100686014147996611769039131541525565120010374682280215809962937476205237355793050128061316715566769170792689587564935279029355096053238302444380442900877691734122500482812347535864261592063701191892404974178703139846185612211477047276606230205103917823359884073867645594515017872272377783147957704759417131527696991530658566066856453116941628069798330707148208612865840416885550356357101520565748265815351419732314557849621911332220046224019150498778484440288667866496508348928524106775930401873839662979332336252083685651738215207081456624172385213121144632076345216244163392656376775481820335076756112223404911041854256024861126949628312569312035252738975023671964242661248067589994013978692163312774972176881234781072125700551229670770326925852655538919212021470135761538617882641385243031679744685891702125484640169335380306530557830982055166990228018538312641573776029371304542178096873191346949367913196443495001556734153161091746643226215479803979705754159448284698357413210268301735753529744837404575501754411017996469159000753749042635959416736882334766344990924373910565662600833536653328795971512761972751770873790997406786948413723217246939964849593215204630153245130019023455174793385776528627701191979957921481204403231389590981555849156917013361749526915714003668562840603920715959623749386068553299322244098834592179557223107015108200493548070227780629741321073777028510824228130200036448488989964254493993658535928620349361799435904646612928194290461853516411237056083236339597823732881325697391075637565373160807694952171035850430199181690725211639821491326850365322348708696135841002473714715490445640573713889921058740861837983055648999523362047551238297424417293720697854825941590482502876716436032562351517016611654521099083790299962057516647674902073442989966185755253181567166451868253314324296513123503460940875522449196157901129686098735132405372094027837845331795652639294077880098453791508710245095679498400709464903941401470194402710456379479863869458910656170694090782195912642519964493937076176803382587744355605183059081206271307616191881805298646741022825936240679882097685841778530129500384341445457912685909969481071212367026727725440511259869859769975371968970835266811613438357112932210264490617472906245759695200649097434627094372326212841518035480148953791799093381605357995179242315303436649204713354574785137776054447841136803807947691847250921944243187691142920924006749178047535231130183049630647916201487515118901799379469769527343405400513331936138088486887538687329616311387860489892366703127993801560421761673118010260476989022103436197167144676784027595202251311122325703735424213688173994412628747914120464240312720653572079069018054218822094702142493816073587759062952350401290903699822550375414709945583567860179901848351223331555765471626061994524970794754234794151305655232851549956685938118137017735010075514135294046192687851000304296747978138494748272898089971217640326428275925410735419410631307119497802921196351917881397444265789668515974539009166266823520192006203528429914583816784258144062002001737375932304994083662782764744287114681591032272223852075995098812014536866356468116492609574010079031948196365206834549279422758905885603290016900056449119757959890322302474042351823275938338771488893286616817009733374445212015580636098059434549628387165485341599394127596340843209516803833401665571716691701114206249256945663851931975809173535709402431459075672876232019654432523935046855121296704274721819691371358760351154212007710297051253185543316742664892423075754059480815878727510861652819486053771393620386695934432475851866938275884915010885688752912610937159028609365889408011763349824494542702686336648950744718120079219557513265390076239233696795695080159805233506136218943000984248206449242989434309052238056540903549753330566481112404577623899506358289237428197338610314047900064764980854874738292839896982278850729024401390374842085404245081559355384440977721602035473012761740964083926905279430139992698780848048215592505165190713514422496289351054453690785709189738804608652464854745016685889504569507074752905779348220232767305000069253995666487069964726279606042245999257490389734837607969749645846919415922132687644047173627102945136162747096634023273023033090292117002564830910016841619221512080675508242246602717109472760111451173153979556308517332088541549553884545804767276962090081425719916162919817784705039629101541528993917863810088610688203451739577156020050153361726046356103370821661981793218077734621492656070722763549478047580247752386679354292970850148028947132935441912634201701264408384757060363178973352875733546092318100510025924560581759318934791830331146174584660902856689073701254567653394862091186083618098075149154942350921369675630437538026036736491806712699848224079304465201995193441145435026480170808973633397950084674819551284546691459148446342468724634747094348261864480475765421716892011954380472315254543193208774302501045073153679726624207769521372690776718108670381044715043789127046427119321053281178945101513522801138804805748143871104394494491501108574094392344743215160046014016878696706209922551217601616653759544763956571363720836108507357152417766529282919981012166531917495379774533947851908273725925027669310727423438192033078896120207250123968570085493400053787132168234650690147450397989502360213649168707519932020939275431465871637486372828401845862492906227007395264802358720832955571651648145491021058672336221238906679724416400859918610072187812698321564112745333188260491059386871549635516412820247338025277168303672772484012640558185681692896210954810510201696427902564795241583138681323345464488180431664531887912990193971209849716617149313504387540401059106542183878917029827673466750988789954840638623351297751809299328095282165516802657850613140425822778272387185797897102433017780721129156703374430124577041790975797626831982483887645781645686877803904796779884446249475662929322206923179762715337550484355987542743225189800630409675236306716728819566399689858502685271905004198636019070949735481574914982108625899536785258826659747632890507301224937695952879946131436433946229276048719732412081008938548551824248471091793904231753455125362100917028005267913968632956416962037175372094018758960399395502506024956086726472731567430163505134340607437707166375453635018288545702705569934308476832956751015864591627892607255793345157227167014494858877178021676673769848640226103172058816910138705479827767594013005455152833971423993228612405993486829580221231883939082650490738079287941655006493817718781853611082512061221373132971209738149853018643204012446584310980347654974139420700867450146323500159495188738206317148139691972357846297980889486237424806248513310751932157671143858499628137229612501384555384849199471480002530933404260513115043407477018584433715827491642983316457477862512839642722452018035140613674461399861699928308739840694228527302940097181645516888146398926800028090016818054718379172062631560059657310643828409251531203447531462290770378711826760367870265026251478098730352171548335168310160414321590702414290503820605838477219689208937301232157436753714143100564504891549399367965018114568118463147005185524642615471414678190118812236488073351087016070715136652919680013314348074012334547630215552114177568258945254117159299155695931625564340042639171912359169160259481534872094497895894339746948622935605963414423785462479626486969999138419141026959312852709888883439003292317579274860493425503735665037245162496711352026704905389069290737729256792998858384392737603042339794485535813682703421600644097531392298455828416353675242553837957229721720643677411268851033449980167529307870188783232289100963178230161055076269143955826951052018766896278475698532106147395261257245009264123232442343583202235012987479866364133811855592433103388273707310759641015913467974716297085771107415965451262813063698217466552095652838692190239550616906876160126494970325956710859606887724931061915763146906108339139133359020715331935478656217714651801657596354844639236786649605151055712704147932384143186891343104438623040143935879036561137922018436247279634271592146432470323320290994860448294591827690853883533686983490071849630382565876053786702384905025059869249502597274311174865233282041133954788705889158627509612994538660213757254960015592275527268583230640312517008390311657167253941950120476409867176072469061280140113151489497498250971906822306407887784730951834494516581207634613472168317541213831273085682101136642212595382249694904745828207520468568215182252274619205761437278392465416573837103068209553592419709427691645882452160565729267896377126910171467881831858676422272642363087956606353517197738045111002471363316325877516792731964279623047081597411358475109516451430267787505824903432668162742797606458199043275125964758668515310910013357198166110303324799171764761247304902254108840205951930362698996537437207211809292660561061889983156557734148337840882513962520160067022210519084490334597260348410200110203132382007872560674628359749089508082396028333721814900396020131293684520226699580777634049713141486324965223304417119380455646444988063515167962046538410566813795903130740156198373509384913371398016074939224140837410293832720409219552788972033667181299788303765419943282748696131668291304721086374349396432435390198200190544181260310930491220328575705257374085071792167655144963236299855459268529859993072807397659892735163420499241645679479441218757100110608095288397607144463252790825341271374565106305392744398950382097928536897084805415556693711436277753482701356934301280603374848230804041726115503334504080053707278268543910102867447323418328119491494237179637603922968616209266474097198147208615043445243185512532087202758462673277274130347490960144105220823800320596863888889754789649412663503424470628085872686187319647990680480353666736655106743053977200553368848808552691870820816339192401629931562557088509839921427080795276298124436066556043176835085842680516100135670477210834504354224037232118080859515268464460770299030253453035838156839076145591317623485600909255553203255451972639702316863395073265846596518366060878697493252795732217423673568137409693852318628180137014053168838724880354103712651422753871462041977093243831739787033122944480764197260078752956362560000525980120952187379380485063563327168267700763663639397102939100543364673930618178949529600686654907388511534118614799429406534646980232850424344798756273893253561490017042394991629460461308463661656202063733629601763430693833450736886231653772398559998712755906437187166533281248996087146114704795575376293424666023393369142492810152340012399848416427868329424300640404249833944921159647479380779491372142065107618547846544236922833944682867789897753659046674842639270242351429508047260209659667886946585312468520918709345782112148747773008313756142354740842080218831814884740666975454307437513658667727239315148518812606154581107930503684254268279980992136769861958581565742223910286510880470970033909158269949307691233767323659234749308287351633704083573163112745171969904495885690764243830800664840403055911199224059706371384788149116184837593189183480763824676924448118379482457118874940121832368475013462621863366187933030570195486838828082973215344955418542045758731048870280312912754257460424087718882402577602885194845313796738170176019909832662960164880444124172072255776068738635771738822399778813053814265199636104640618308774330586796248834346867889455580837652463707025954958879910801056551377852296805536322929005173834637072460059286889004304929958066861647693077228280912522684170987497005272233918105519258791104372471371255265375880022303317096437803758819649037243590263264865469379472528691184839693142785759709522291906131807125422158733692172436796215445055230197680517128066494309167801615919406999458725126233875223251270282287359241650405839454131444451400800824554830923022698475670117235090840593805012784988931822083944955006346143126202722443431547444481012178165841461361070540018660496302027251189809051141154093061370716313315878051006651827262101206721622490655417592714267934732998194384885908088508229364473389410230849269127496187951390889190490906574087941766118747633939397274208075088867035427664880682703250460926790124407760840694753627273886663535766139728423055171483020129097478125902623096849483193079505808848195922583184936147950494611557350468120847944126659231456063012489989335742671903629080661144148187719497006400946977208394475221547260822474026225264343574627581973859041939115431503786351457575834580772369108784524122370034684486414005847194710041990382510277887527901098598659795661993069369539271502448209189300969643757515631137369984230283659868936327815602372101335948531358525020256932115761030558406370765077834505901352504586669241475556506253088837418070837692202876777198701541981206004998553224400309708395044874260926577394967756202260554312946885597061208738175310749074611431748609953881523237932694283506302114636135367299579190943932117302224768606335644965206534617928085980072644221833071573228075998648638643149766367327249397123870631528281078620998658242179092980548461925486384836676323956635553487372867251163143778602969034812346632887539985985680056270505260255974222940859227146214099842225560251896173091741122885633064272264995310163056754146416873455047296393443875868814500798116807051521948699801282162247354617994472540358387917327455791281804767897357441435313865430121634872720164779632166086946736518893839218122186730092519716703314225092249816056453133074076437498108795045114131427150151337059910159581228703653076642474288525098580379148217716212991601899136259665432988179441731042258366760397900575905566814358669021484556419983158396601565161447837425942498734898866453891276173570389965392754835788157407212333248594776542982031279304842013409690110730993639660004085217485076858537120783940606186957878870432194973508661879814359731918202645969774664789821882978507171315512719847789312961615245422647123098319376589744288779258911523830568715785809619551822543064804738531321690576591163690528749738491131121651828696293178306998892703775764726639039821266386081122254293675227093429530694396759316775976647068068420910884092666569425544256594013850409795060033197788713125022566760415089716945939966605677111150827150601146808592107104150143029741413403738327280324982539217412497165848420701374682271971941105594368704610158314618890979758100118674510117489976386315883165019962125446705701924091866224906068678383977311717840778035890426911161767555540855252842245774186189909036220119029660932742775472837123119175669816373333276948376621469524288644449063045448915076373096811716725313025744125570361077358462585979445091625945076307941409621823469881330264864809425142723161171734082083607451550562878190831048041998282444134105577701751658296431378368878049730174555559684027887780460191626083445837903972582915000949099463653720590477355792409745495046852300742495167432570826438280732311065324360452561087740503873389517896804630366883602646878880511132092172259631718498745751325714728795681786618638640562526792996757301331404921725024094575855169594829750963235015095488430532464876991269249506943577335543792597600467912429823256668584138025735683434718168361793794990672084369469679565261603960481312715841157755741187059083522744748823517990876089946991155463160924187031610947984044927596624250662637398158484578511335329070019560818202974854251743586815498977005001570311836687650077803605839459410620320372331768403232141048914641895528838238461488621949363906781462630873547066603336168256376178306366199040515161572203324706068390497814340385459905623094750394415903487651227985912669230025164957036869513790061415925335568704344223226203699230026634744570221514286139829703908465202039237370760583946020426811886648011052304938029834949890105790496973997633448758626630345791817544015106794402377853735469164211953144207743817811446454917010732783873358088277555097576743360702537084218628276501458728931829115332757181371773498979018617669442417625421885256231130575368857578196357869811422232497472337040570868638581908508889390849639087856109983741934642221672985713376902614989704811986826426452440353028964537257708579987349651562280829365384677564379878186886351897041262135629760059495263169817161708002470624241163818627306234214792495814189933014506020804971071991277850020047870519096420178697727588006518711324599274374058152409652151927320210757930417334151769890113745651986736333708058020172448646211300790482791539172419360475600525988697952320907470168746333696932930429146222917954898797990154062825708343342098384525248525359294360298639460677594542346986010950923104467848173894797684511172756738530111306042021791506911020359205745779175767509245257697708929488151745525217758943838788392261385704778097025872665914282594062724941267827224615251831862907495310755162451667353583236425378279037613692499496806659051744468149840699738111006551182502913623921633175237099605929614266653677711245854975531538597996833549367436287596608149496589311631696762481293807965827837235462786468389273232518460591722285826247818840239073481864356543055574670017545131963858999323557150702847901553433084084076979536582579083815072347802500311037171141047624232309046093344272591743035661270414464942097957400315437007709619293782179618041318833792934188222415640828302380331909992159237130969844124503554503721594195848923544979012494165082777718706768582256347286415994111484472187467483444011976165921742965751120170951991887411768823655342217961847358324405335328069825947313499034217819032900660222142392018543155138722155334577404620972536434789421894333753677506765705691266902916333551895374380479096979551991113418622991887271246226343059207439551158595104920929252079411310583085379411010585706201238656485630004257937304832700754627811726116659934921441408607323947749016952363749322356403451943109882720978130248851082155398748851193257929816063504750601047217267885035085817492148563233020885934250182252589564485925350597890667693620725007287349831622316624258285222269150748556089252700057012284629020684824229150851477337206593918381173032546303566001932768837558717494218340450585626344475550729717904822938495411641804995094813410405533828158351342346320216754792774249002644996104889810122204409247360430279634721862471822305347631700148642923893134362149747834937063646424488796694058631085747777490221629367307063842724576834365392865486778781776232493805071266753895165066075519172063130367904356727696809588123393962147591626507140922064002722624903626786281884300513430425148567181816515101463575269330284508347886392789907808244019599665352970188618766086835572367671942278304157177065379191063562871674963221553638924055984888077217230922613593223181933671970806614830763978675777277760699088245235786208250942914515263641373155941243116424424993242708327270655965946316924537372055587450595602451690953453574769741053002422835722708867532455060166647686976467733003970975819394265927509461730077538827729273262850910698476416088225836268610492856809748889916957679926870532768739089597726314366859784751549786425123032394093594891459955187557169713569680007346255633346042510132485121793221022606736143296987884168947638579223385139867050219518227475936449932101863936489291586161440758419263855849730334407871085214967763042732831084742097458960566115530238333385145455536955809763654456983405485913237999895303813738098233349966958872888438999664671564072191685759425714399121179767628270619479422558304704790954520359411040289045402989160176646055495041507262705539240590159569517400163965117415639549008598383025143286252419450390246256202762647145366878776928271163537456065447885175972413161104582734957406578465481756401256888892872562422413330517765798894132024998060646837191396485331051979138362597505004002648140960773146062801604650301938644822488502033224356026590568457199965866228168319264640673811693697619937532870273940376118764118533643120878858964734160693087197836459640973947082577682061379231981168568557958319647540932234864547877805474839958823963989004747502528785236875138430399121724713427345038222523587785846060174535308214797925111112366553177627110170043794577370400119614260500927178633291683409477786593459499131647144444267590640737656300292041761596978062820988008433206810903117877000589665969037318190007619371968889694086569983117031403727239314762892725996031423748536658341599689470198690628653673738693988480314588202293578100736915501123062916921222153701592414462644641391559949881938544854909203093147330862509330830578430368212439281627721403161418894424026420548458253136872203940133960808335896722045156931466160320215237488942361372561819142291321882156415105868105621932279706306360439736842233779567513503139838210135764477218881787769657263246499738985262271956076105645254354747665493796155447629758727796307071707285611405327242926167938615141384239850988520042246476861538401277180534370117090127928847480397235062843187493681767557926124434520606706735464549483409776675583875644295966399520335345413960541800550034705158034797768829181680301403573254058715645508225300899257596040287384007756568441427658723493188603802409608918778403400087045936915732563143415324066390719259945498666422494610633277500976327676069321072707961165159166079565649791549583246445634507206671031340614470928502514057351262733483349715975204168073827657423252749035893171128866002308223944174637684207974225165381449723272423108502762442906253407371430735350021907334292583831705570262460846417999207195657100812220383919146453073027635872664104695776540836955949335089217372851486029066225445085293016071218159081881341987932336580313625998887227857854100649663913711782766073901549171310138345401963610645929802084264509060907585239941838144683235654100182094332432329865289725502137797732125398310697428446540420872635299556846179862791584332122823940056655473237965871796001432398949988027932296923482495171657587405228968585028424281648962425942889892913935623444361315601060706712823123131499571454643776084137990627964455792031263327647695867959638084957466139170044580844505959286050905099517778118160555707369529120080795565163738471178137470370415180657089698806480743559269928067691940424488209466128572632128031456727924254005444650775083712615015683312736371652868489229258526618066522498090633974278455635466373903980231084216663092446923672295050338966879128139960237757371006838731857042338619523633364087649708444893185823255686416604905442256151325346354349832543406986289638500407502515073752545887227000350685717973906564530428375046342668831672832673500012626211056066493128132059385321017389476827559220139154974406187201244059172066112210212761625413448947054704246632924181018969384145686596734070565395901457789499710762515807680188143543560743692971371898562873138561997648576296862812696367056360678180964311199018640314243286102402924535975123931809663983690134829660176250522287917447321916844937715006494221188030913435306556252511250218766806860075092387602067489286616211537967612900513611342599791353015389097414100781592714647758044509564570199612318762105440511869138558688483184795972736538838820029672149957034010983780725369195270913504937114398769337116030110963201210358383756405469205187646377597445267338032193664656575696485793230835286061837626725854972268007146181375961673049005624601013316465832504687591737270593314716376278731031448721415949078879600324280470101146556936394486608062162515577340840955276105586401744329281833232519473448540329741743762626021088624380188275466502899527290818534795595298273940911672610624847907127678998140399135697403497107493379381893338582974095136344812597248756207489857133247068365341684388035396536090713715572937776236518745568989769629260177908803858714707756103476203383970383061493497057045936836244600124798515897608625911938081125128777676764679614714936024652200704906471154657115224410135808871711841439271029287855183843705826170548857479070009080685913715322437318224429892984759237472793758348489062871281206802226287552865634090349724619191639000980963721204547810729890899579308959241396430404241184252492990093620603090067448331478228765457856321690538474375969092059373444301788470511222131384098262109679350446366757487491898081322859242076319870655131538178183507020963696451901811623853767283767257242047672370630616692551538974602299139143081139518572805005149117044337111356106012112629607573380702423706971327480905832110716398410572231917555937134229348290464114561669561005780170863617066771532269709409195151217657630734256622476087733189261084130768327108743171604729024922065157606714865605838057447205132890040351415887891601225057949031813500394978563984080115367521469815063211337186044783361775977150693093897398945048502920153505383338190221042765155472858706109706454529722215777825588767820893742499694446255327504515781657714399325520995497783385340405775427090919270318549272830391190130333694650449995991857571634814601331160907119918342683928571548708615059108152496254621659029516867569905371376653958152042088498153318038497904327371615626024381510284545650966949032419942326335236479296716205355747806830979585217539050613487476156534249512577679892659530098203135442100223156502940630055326615447915737591127975852017072273753140701061829956178575838167973341657875594112278003015128024213967085508903107998722627067788593592172507534121282044482240272249174904170189917457033343904017070223677117090577981449950194919767547433566906244618974043732475744457732773971733628011988339979054862238671230216044547073994402072854190147576530822102594459492285587127810246289709483792425586636638300679130832287507683775904359565458996406173261366428770637700782803851864244552667946762371054872226096540334316085596546516158940638197857461357928594801844003744505212413105645892305245081463852699701925486102727922923892122082398795434315174276476744915814419143306472066943629765279905534635708538146753859014639668182081040111521193480263987218052509258711967791818704833250488363677385322580254255516034742283771604152956326519308185722547907000631338538340811570583437042297958026102490950914258945100617339840285423031178699118849512762322231227546147298253682334571157363862740409056472784144349937522353167295979220342617709902379703485734289120217755551503061195641034010053966167327517677999511953512830838000511018395324858804210257922826082780647382657748033999581774672935346999528409599749971256754626997719613024003098856708712570181384458042856150908553983554183875599181846002835629378787137182533699744255137532434031737223360727995199205959472879595213910003010034836147145001542575768416723638076546138793512921409500725554603431366729090626673273138253418861837948092984743480059945305624512009238273518453070518886427102977382857548266996976389679874479917678156372806884418102727888176805833072137084006640615611876738880184306493547746054741325178007951273605788117474764379667063503998049429681979303535935917601399106224501020511965983452611534796896064340373081641441953899720993447710798426449365428943360307426501396624531557491082363280330322619437936540786702810996685518852619678119993946676294730808922915329472559627852397000511969037687001017799066054147930088021309854620238816980623292856175570960508573388686502553295105226017304274853453449016758958234514451954924798804550046959590906745161768654034317427696138946956456102055644428002152269817727909468146906667153675963654529272814848276796015747434290935747699665396933417935903450981043109245116962749413903690477875320040160277611931105888424903096758554266092398698569124094411329612098601409889626377293841827923346460856015897893442168882716532402053788930742288918210208261235805615366725876088240190043989834357939086282574832202446858655618577327622084958374610398513504325037601718456454671346656421878483348398867281843048671159518963205401224712704654834274600248030464764724847016094533300650681320856844776548090546632464984054092771822120339612983739743865024491718958456759672715902686145140891383334260602253108732248686035610965033877287815320273259425643689620213539803539428327191015874789615127962247541811917246514499656100432627176255231540540716958302855145950193556305227931632621103397628591255673933690704229748850722429997416002486673806181155009399070764399681939476151469896703540419241985217269606452736479055215963285312982561877186407912294302516756586904568620774983535144918388075740050874639395597410149293824172558959377427391670184776577183202469907960227303721534755591556824413731516058197004981013058058243153816103463644915687916882471694097787706525981304833688387988806735887532008023975076929574560806428756116015246898537728234010854779474719157562731150441334371340101150411052815262348308418959346499726155393064977832564794025015977888655571999487929310031501207442109769442743385579512129749540538809417149514093683714203792836448581344066546482542805701756535600988259479088416082399929974593268469744251342411057027352062838328189498341805775635877346110866622349083001268352607023476681567896139959316068459607189882904899491785598222022190486658896020576480198941458565474040237819954501503474258423628026119211329538019266490178123209085454666611108051929532441842839182327731408856312153356194277532509641847054893307755693937922465865377734939089906085539783392490303279673840038181317375634158699728775275908125198830411387942736545717803231155650715311434796959047208827208949859552934186021731813957265498426753086579824666702302514448606400021623384675411905151210057070094067651658316454394640060241882063146750691811533013959360897712266887314940452508440672876304934233044426148143040431968595185617045382936210485919170983484635083548948589300619153726532835236950548277298962773935230773192476323654491409546183968300966724729845923151048600406643216345495817836167759004222576833175648338564452922136556245101202306760352388064981807179406917981215715382132881873685535340847702717901260441195084366263531863441999529988826140987094974477105345122953906881599359952677231573153120918430685657466166154261580019698678479509138293450036964177113072647084843097446360446399181563580153578933584360586610126152641711128090046631019683784813347643085612682878093454954643331456089803431905426153516046768984947549457416631354110550014693838491899131437403481391602368795801826265368439935087914077210966343261830412654778846302053088695454211894979756000416052854877421779531516439867626581306991411082653851252059052585768631023427020222909573487331576579397137205190740843360198998000106474752736467448113041178479484448063120791896813912117984563236643073968277043455610469067525453830582030172282804202553200633021217032041359462831867534447729627917038735728285257887726080204780435904102838404514650600356100322818061986100865748413420444397008787734828252430850791003945421781786254178935526765799977145807330256698694225338062451816389796778922556801503176530675912025522527789003000076393427470346675740210985724589624812105671131537633237702958916078466683960715214564566613457540187120850451210423703150213975857057364202262799940034025313722729488950710697456096582655223076263302674786382617989714099001105778372921477809826038927263089744357581296083964509444733856891616549268181049842823869095783218116438679021775803542174644356420432133078874348674557273212688864365384882603817948229840838732268561109970929594482603022888327138505990208529612766619041987645161873056708888082694976846123159285457028691833451833866697098257321341625913843909060379194436379910945101467446481925772720943161969511936877203817486251138919483636972092936090763853105984885564206595093404509626854496287305287644117655188747644861188171152738880088495548384842728201043198602852443419388044529046783579782179505675299920363828899573466460263825565978697696501494193697460482502339106557979060125127744070771172755259026994020695718776996078012057339454682540364419972684324003853902654371846472784669958888184903065017766715070703920753967831537617175328724125204608448444381350001265125034199672449325890698354202013831406898780223930973156409724701432643144711723132942224342990295517443735125464462425393086572496958290773721071486677994380151554974238260581654027675272982003839884547984146801614293943067783332752895912828200765943425249857862822453971955343770539072030076910558712280696182066601277607717307258953035714752295152507404788541146502241812230010375152480979752681509187059782472484448586085334359320722940524303801697926083139782839278904730228140212240204321340572751577451710938748262941984285189300173890635418931558171495106795673804756346700369406245960893770968782916467868182245300113594202700694277936221957972790042730983097190895741026060092359819771999259370260441488876353254700557402162377250924536870333477621101236745749062340220765214534474883338339218350105021996902079279963419309774764358542523515561949122198274757720509422717897859544333857234958810377100040920921088308557728820701060407576271361046680059487209064084133874968353771281206287774498608993173152693512716087340050086359323623738238909302313155959923220219500039594025833390580752693706350416420011725145106468974931891779787606232132488339579835917915990014294981526059162585521540719320319775768601909630475279003183304799260435665954680947679797946025821396441596286438934844071141423773468139233675612202844266314633187458021121496478469257954803054422530171642762397202995016960663933178858525776810659794076291578030639022533765696899107282018854832648249897595178234914325774969850914803685552336653689130796158220978725549963858186094480965182957304081369835816227165314874227219589821794650914395417650614729067207258073847646045861886845292554587484684097602384704892227000086759575897167160499149286220703091131226443734081617464348896887090113263390134847430909894122987929706093983895632151602082061436570617843773982248985275698963100488595049835061795776016743344543117182690906799036317552848675771746952407826858563866277760309054160755990487730082573229269590514167468292871217543024538971898799218265309490620182172126427629526513404560037362481065486332749703381127602102143809568642609939375681729515014106615502072979896789527606892470469683770464068837519468000776639284059631423583524239725195332067823990158313718625336422668022539061379291922910643702096764328226677050895578235735757916545079466438375143156814605908896963487235157027157416365295689351486564700956965157188530736140520213730285363878790905929014452418517817958664247004922369691474752240762139408452075878768945351093909226725532221309983987002477217573607555835390888595328724016254944984279477040513380859581290013559897749225326752932297282746448360353120190107327044562944987256364703923265742581591850900830228506935348523188087599437478857833613800409186151019609371993863166047346966972132461167072331481891583945010567199589373957190276052587329881929738801799722244728110593608142810046963031675460054395589122240527852312113477582588405812855969085575300627831571986708730294237143042051460263873571280476020630400423217669623237009782125932051362928045048288324950044031792949229024546389694621961907350376921180003125605965348844158351335191305881007658931172923382663739790625166084702690846806314786838851153040299898616658024107019488565988513315889430087630804028788796970788325200616296122986503530432642883352564071850113467057571552647672114517404887803618219378000282867200507561516992321261400385250383142774171273319327770778493265845566479374956272190039688974275107561728169314976399977041244873191488422117886910413914323976435428885075915202096738218313617448147714332815754640768732848019075498502949357738313587962627329083238656125339392752007524896750325363926155733039450452939534557846262769083599171924685303668264835294954341959342597968361570842669976947370738698751384952532786687352111262982185596790754042812830871816443928995372411832749297546021086955754083338443242062831045139373366499595838234578643524647139510959053066539138495009570260409892132815690754368935158623160381688173208150386366998052539768260842733165907324505700006342962883014703324777271381228739775669128312790058715807651039976122167476196670869946972278081804282655566106031980069743175062714683149192762070648421649668579323445693298660341903295289217376998334091867258586694458082753385084001949809441452561815807265078849227276055918576736709476721694035793181784694496454531388883070577191727343074910911967283989934350328042550725166462256048106425761619359972130072565190223324345098943225444785543921635457470174767518952540747353035542099502156454932523859938944776499058094133362672749037780751363425073031188203154234308475755730968920110840427362631470765287476315281521170804055647492712946941464641231048613816505335676407867451756521279249871599602793196949136010270823707295298188609833681343421961346790278676298467231459627530745291958689858656860483035704575808265515169843041802732875907797294373551635574170288703857756709199400199389708291256682642695140634906628617804800035131554187691501759094453419164497114004756765973610735499244437722199404967707711082636013198631363644200360204928011224248676780990389135500723790710379978171464460851136997923839655172143602636157691143735067824434290795952859638868719950355884910381746354951984660580523690776569988619983373967815136489049365672395897673178494352705050017709533834824547808558697848008144571193585707596067821386589048886940060131554538900313578139874160381334624325777290362373943164633296890136626068721883349181532069514038367474547001805062906668600862551044845064363028874366656255467004300666974592424235678848273394930868933924451509663786533040375291838747840798474337976070722910323027691903517590850863335951659685783801953200027825314877219397475528350864482018638557369440989142461584315896993005942358098157490087683099170658871160636896238051832502821961449371766988384254862579642701939209630909709102368332874128818628166976415871601650835992828981944693244083078329903417007927717865222601226772836331077744649783134532528920869193880098844388776317155667290949310984777221997611832381441106252067740105073746680165844722025657305341284313818249488741995123411035398913357342924019194174972982517209146672656888434626961193299129761401382843270519152389656917097647625491819425728441846968303089167732272887741336724771971361682159894370555452715416454637739761407053434564568959722369767743295060562522065954692926959425058167318605936596157992803070586556812784450774012099900609884912870807697528326356575263410911192857374870156940781180508670719581839440700303371406001369735791164458529043992611909480911692849489385286111778971812351373845149118017035862154719378391858976772475306098491860500534711869045351334900888687503022223115721094845479462311596079834516577685407578722716368011812809036086262288413031037697187754529891631534524064206844867991106848310106222552968688633467041104146607698480793686701947005690977159790699169916589338755786016039035479443077333362803941087363110526915668754096351536348419047110559827024055950010098819099370609817866674804033761396477896071719107616573702794940512765644261460040584576742955425288536567285085295469277960436075584866735900286817739314133931810634242076456566285987717964229470527975981650075360983668239177484605650200752650105811548918270182266959487868010146878483997263341846258190742698469812140652683339500960451818768328900963220646563133140295968165069382830844368458647196123965330968215615045944819737240041857270416055234548121285405450315170265474100960881095665965561383854971911346661988829111827741758165931777364055529860275761292228548655853640659035993147554340613140503121859200964551903782285137683046660932321767898088167731001226517839332991387144036039379973535200145591696018663579869252395372626368460201195059490898693509811334567474591866103168637378955119196068829085765251749280574707676550231732401181157732413796425569328902603657755297064162505209710190864517103695624617987397981908945662067143928437270670356384190500448748487811882131490473930062241886684233317048950091990755214554432016183769602804912575300588850471742031231923595067113909104890868233135838563293526589570184146235496255499975756750296729539825347865133473994813965005420382254588132456079647210945508393183589832615011581212629153540952945086806421019174609758374618163379872769220646111137131831256785847976651257920100888394593727720438938340696673636154620697099832550669532678442050961222149456623244846555674372232959313966762531028809003205125198289274585621575250918780586158033889120331390281227207136610109558268220205585674747552166645343954165186908565402294150458390759419382896855115389345706508863865745357921838037218378657593914130581376632349762903433402477466825146918030601616858853546892857780369161928091043742758834312213013901581242079930021460073852474844249105397588736441902976215814275719625851078418975733817672773328544388625782619573423934110667375453191523691209710725381762457394767378173188528487213782960779491885782009187883512818110722621214857373946936264135753321354445331100556154378004423741766447962637103339375183177548957482626352087769066822722118529879748750994445585661922060204686550383379524182929689838577892804962490242151755702077478806219358445835916137930447869507921075083228257757627062710713031652151131729493636298672098455306570181805628030185392572185449330410546988144397199327742860362952363332802987889154107591616300266707396013235639810854597027833211514382046094245154215183280187874682905772118386957722464900646252241063820401579177869188146525788504693675174776995053688721098147172515616014029355245015036964861323193959514877717541506548214171284929730966374136412653430373036092667424409223729092913367034632829088618533265074722240499654179664287655350733351622034455425669486048358997019659796879804781761722285012055136295394278191467557496101348279744588281514565910704579291473163309298352614610380285617395690799609871013120627980722127349525740970784692602555533992948795947292895208323578984456894342866305255068517742350954152503869304685183593496273389127955221828974373888802359514130676764950620343106464522428099305998536639529604464936219644013942218411490455754839162712481101210430833076768070785980354134477107451176847563195491730409044835017085530578296335447424022215652123714175907643849673094662652596747180788171253887030883454293556304193641547972851993743612333794898522470929738514770295897242790235697713061966428747410528327575290858983455017022616180762338298955188550946430454813475728710235854612563036251154263287760128097213970538646350056301067265141643375119747147760956952348919681326860062049627057261097187319975279565455670276114187525095200198468041508298192122739541087224757713170115492302755645809791398158533623214301654250264477319415187805415140840398270212920506602884309323965401326920725569608461228518841840731381598567531136564311579071168578916636119793688729479756913821543047207189204207211596044079784863899484081599761858791244870762595351111500133198067144881212003419361227032275959451671827327103068659341068864818688455182902565959519827388519707485617397101149313228501974701914641808145561803826768561244740924590773269383951581322871176444613390325783694152650199486009429982607252853524300526172177314185948167112038705054638807133101337344208457696815837257723630525715824324798162857754118418425758647273610511137395786255104802843750880538458545638793278884230372955777608024692420026911093459129895814362651585381921809595543629099035453436832536481291779806564616146619552071869279245937120214430344984793406981290006390527848330994029514461835851049199702362173592222040570789281934534923451018181270122883702221768916822492883662369314962681724866296476476150920947298589865314215001956292216763421356875237152957445272740838551228498869092038048927648202992409221246621531001877884060840386182577692159153475003622093420880938261315599834328855604319821657834473618191553614753807971603648490977049960626667137875422225435124924621211280820580632809953471799413690601609208587021501122639947032640452701590191229978577581884887105250621029708604520985018407519843483426321950526893516848032124650058475357173241733940235839243284196906387907689500908367747278683088392754129577726882837011790812269282324509021514167570103720722999813990770098450790355570556083546544188347312345127969195467950816934443449803432050524656044560964301406900151731661229552842943171600764882442409486950749974976915941425144375028294452358346993103542924597245310324337892742826671028827231188430507713859051345824908124135066735267355502128650207552786612078169792554099161542848105000156184250236049469903927328921292152027799547729016174825372297644831772688984286993537464972517864152784297764563229860394030550024948649610078273912901325974825510890630838535312574308504936876667941825231053007895093996002414755555500453231712275288944885377456835178329951966967535848905521664354990826875641805136552445571553842880963622909419786893055735509664344494060344728143163817666273862822382943474919354740258708825769975600347320032093158147722195033719536692838207752763907920318884095488628739539489761037984392856691588309409061375281568729471652111459474827172735501735675173642357337069133665881203713083344979075632590872675954421559216163983174986334576782596288184683925132943019999987125237461688959709122124773780834183620500815497937108439513181486441585387794247510814199249176861479203375321928011931290367816936441097903660658897992631283219976420727093617082272942510460842527192750053818925941060730791253310788398829483490723272358705583239270737077040836498502522176145608606882031814051084946195775513319151643896028266827430906636190701744888184410554358278105184640442524742925824254378510400043011282094638636458127467569837742334118345939346799147867058586366814709365406251683555291267254790349200082828076673539422544688192987318053767058671839494256383941554677635581522433855574211349250491331361473778624316890033171847703039436541465776204364177650723131148580261561612784571044965186014020556566654354945878551759136464707278411611338510083771047632170371415535150477169391414752409239281109207957742896009413461224239912649514975351387164267838627644067349297217567628727096957379507639479523045415685131815618783659695153475174222490403655499536852810407879687783323019692885574219013918920603644079337471023135284024549926796646294931740846634648006750357441876468673385383951229463081894133182567689301941948939675505847461862937205561469076427298054414992008370145578032602038614751614329858770665375547517436754863565131241170664236406265171603801303119148107743938275370305794006284652512245051264713429490878205677941287942568658838054510371376331340681143998590134031107858966383535597721541390151490691396658782530892240270731334034839426839754132123051183976847237741262256446250712656787144211132419779344615041890591845530121631137638491597578401532440664320536659498676089490912455921716422476314899930387060047402850054752916544679118957470439817115650727150331433006284603384597917516820719161613698032909816953504447098520379281279496337621423845559462681495377002933342269052566023318918701767281392074790451576542268227449740964012885202484443129772140664638729520133440098703067422912032250849527908032644229848937999279305572892829692964169423497928987427763066147836485328554623578703839709877322396813893407682838169737356674878213586255623898797425232817622324067449953510390033317164199536177066379506878068663644461162758314511707183965572560873922901405603964890356132418125928173685596919109861788408788786473954265924770706403609347642255323328736889320092280913536216273923314519470118602141057868290208280473103114828306749911690062550042879619703099479982119930265377097170134602744727656650369488585913192338617418607506319790040131382379927214501675658066169868326567956019178811594752686971350912584455669429416187174840915237612293001037205073130125145169394219810231685607797437500280678513579035799711235266174322800250291831012822808700497640275169102553820264305522411051539977718315934096440046098636888177608604063019718912769671641695229477253865738255099756873750314777258720478738182862044036516974024201024717739916267942141163291349068917582769883259966740999152432381109689711671177963165557998336713567532230116883797812430947363863691383050850339153709586274933212506045394582890440337593613860446855538146720919076704206251031296173562086884622860734123820324961186712262946695616457725011194851884595866598441284341873562349641046183311428689139722919146899134551582538887049346703904466421667984994430356659068178867689386942666905012889100227283250430867172308047821212969516057645904645446633107798276025924901201119098870666282006510994901599437896894065802225636298399832981951543005856006426065278894645954647087986889514014951766610204202246617262239684353589320075116593045527963576875849327386622938535549771096598550275459063900275106698867082375279878069593716980099415554909966094081316460499969099625829561013038425716360064504914083201742380013698621578090741646312022861499191859230808946041664046984452450461059643380217972278003606593853858798665032844659570865730013518605753877476166053781494875166631501212359536196068594093852935129734422384035722692916684681320910990526221496799975129463944699965129317248505243149219921535325933332233355160725078322006187963573061266867252799311536556575569454325250596250481875109803420491580476273826343152766475343746204607436480872634220068347346962038092508905059026172518261513311290154421833679404632588631315951822876049562473069412848227706938615096165412806093206207969453276708233066172466232499576481919402202086883128139734107772774068053557859044401547316344322124643240044230176832402019950306638815246551601066764668290185077456949553063730990038167464322551847109987392664503618298088943575244122230346137027470571993250045483952312906315177486824724618779900048482719668688714289836019009586825513924370279119742471523763667098887529905372463530919237976534803284433499184609596299971525551862987455403927297533931217007752845991986202035824508723685925273891472743853588963810508262936231572486431250293142704937410619315655400347035979262629843528970349362963886995211467140018386956871007166842779945214815529736916907595440453708231946242464770131268921677995057508975951398583313593546599139648547536341550329991659436657827365298679697187369796572106591286511377209356302200557375119769704718402044216142467212180191871947335242065466645125023109352455857387200520527321020462586706093456730845769637115765176695361674745670223971355226619288142976910244462267159706909516967058279769209000025460397378335743706271898580985113836040183944338738951312761841249732413358947259815964843969754361359032212826225376517172492369590802304138981491588941902215712993889504774858571321333212065265617283312157265863589158719808006903930260091822163518895200223324234180671400091380676747666225723625550311574939349871589103883193109090350991647940122157884419116283614074002349748597715193592968861387150773329831749195437392164170916078607016362761524277039249021405666324178038797782280257094436889074448344135519450365682259871798534176450837772711680083001047928010197340375372803741566383484892563117772017418752129378801089104426825495746273121425362361266265772958318233689463587487902765239749818161410745901531841855630735936098261869350581908386598465197586514695925332794662133432390269539969273129174538172025412238769491246992524406965364265881627745832265620710697872830492422420459610031133487221182756505043995659912979530476607491750546912833771903551323633305234414007137748156680921496671371646314782748696204246988107351186070844470288468634823643431805407110343423178885341762066201600600792654298470419980134982507842190988291335658775306970595492348683780353047066528866243228504653719161084819804522986620312709589944645036546033649661024969241287439841545131169426256662051164323082198647432624163446689804578334212007420765349375112540750095078824576170694212007059199399953884566882504964631585166772835284412626915983650265974355123754312104157281457408949274319173612535045496699871921807410831972861475512878490403509886841506191609589767595886222290922639991430996497439464901450560747075953454413365799110639430616212603970965625632812582145275069036880761417554574889603251783329101888392567865170165909886625567471203291444231947689986858027303044712519354938596215384398817608365133546374802371303024390657506662627973316695466114872248840547104523235100484448969439807213643861367556076376340448549831016997242537044777956706539242643796584974935612366908012226900315924539326661866080347141626798055788311112293203102954306154061167153060797057167805974796395775808586808656599385976223204469411810357404537064849108378627086152998813571811462087049198768650777253738815207491831660626528672616259232157329445155958429642658958815957890680214303535667862879541176890208115642215131536094178451680879297251167742978762616477513650660340564415116215317992758795081555511700024853158475027037021962207735757484506848446686248951385525212796485125785677089947562068310806572057916004690013956145386206669729842966518923924560175096929869328362996722498403462171512199666343731731043696956804010534805773445585345588675809193775060618483365432257557829328400495856988391816970603145907732007502870754024543319923262937095089258862180401231398346542297230006946688656795544124559486718693351324590622460027480377475279633375817843469000309677466543613508655004254659494951037363664186282512848158050330024720486649647858051881543814648483600396162752834524730225736805987254793406871034694540474512112386721548364012601181176949745044561561188009181650901868661695686069712830587735993643884439056308389778465969619677279046961526132894648943806526263651160858467678359151202242066578033083680121973454456580861835891099111794435534549236859534224513621737002279087169678508046831518845591599931276312208593916064714924103026897750582851022110012382997819753564278159607487893541410938253110990228010543928397400400573894097355183320709842513384670190390855025862248053063534468483032858081926653702693315007854572033059186656584125041006105183200762090611280188011423974531122523238670767307030608370671932150745870224568828815383350573170326470308765833559429015842107817245378925215928585652861074626463061372118615509730228738010974291826260769038200043776840039382364664455805359355844389366408663905100643705462347382557906097637689656700563462478903556932378633319746142561468866733905922566134077462525242694109995442068948417704476808429444762092222200002108500131086739255521253922070266102090153704407928472216392234519647047734719117354346286195175049790682157555116957170640321989680270911178558706908492178982348827735865081054529826349356479771186189203308077879534338788997984198577244965077947988103429730851645333747012704882377535028604150471754925880977041475126935344811928089121360154673254765682746269537486501880340125877021129519199956550172535140758608839153204359432588230708471802797125891210188079928294453244442288260533994276135247409362184662280157159679847381969010027792544264252360648000236980351769867329939821447566128984862728763934179090473242055821588105222646132457789169721213063065356979596607862914637329346799934764298538584327332818507056531140939306086545983628587804058281491700359404632928314880313833585673585477160190770884104798377221230904171526923615956237151882719110208320867773966164348522653574369153260353561301746305807868661532999252211788015439527765365982045696723714286034667285960408758056339376289517435994819678652462660269769753001891084137459860156460281862428956170283862283785066362880734342728234989124020006111990977227025365750779659005238912388979866198079729698136927323935989479683705337760039897890895757240905196700157027408438774007900861954745052948321095459941996375723403700314682679091837996329138796182717714810610340995680510609092687218238817160743858300224577004079464500806098554878057047579098587212189740981108447792084852506466398458118674036798819784663412083473592789729809407680431927447177723356396336270802655011416795677173360815565812939070672978382987118411185495285675258682716513953291284462405180548892818944633570082481597340775761602057826684979080280538478869739105915007937714729885698667689232350078287286543022514993669245316852277368399535163894131142143270005192591052404181703789611433122878443719830946312659983122229457836174642583578508653663825445227351353821367423732312411137119439342535828164043469955603852186540890701403604820797549271002212985396695224942757440156561873361829636289030695319028812248580627588281408332175793850035333368480496367526373660187263173286040605300141099014653234077268170355490461755810728513762784625369912929872396865660938921658594619154846284226166205411889658452730006029129806891027350753990788049701633879269789789458258070428072238346650209683016787296743862680791890208792522827201286935218248596870969601107355239670108012547780510153692191608615883853354737844330647805714244094628133736516186028943009393429098588992838041522023874260821752028271247037434633006746076494775586319948895715342106168270617783103586748812327645687295951491631847402894500520184449296895565039432248847585385100106978934795247277893350432891721351111327052097773979930954195341933995085749714186752554791270959651343107828928342697315466636346135436943561715625582867917325955871461081040645277842065164884875654154375701088701834510608107945792433847514573420889275523051853235855866304004164450750549002367755471413905547557876776286842373564824641779695826817679673936976693559659231338722690256845470960755071289863300689931076017915359153903521452347801615389769082047544484485771400685826768980482749229894154657043287592405994777970409038101222510564206935802483075774375438499660812270561566421156551072298667201906133319208863645327751896511745917243194602159297137552116813079843997997655702534701189432439348391785457820235533599126659562233122449926744498855474084735987281358619988553842548520373339898696424377098338077788390071976647681624406503812583803869147981918876648695719820419364695407910835334932179062493081784737110947777665104370620456064620846297319495400290984727412159599644948773715641476141250595699256789062524626362669280834321731624873034487247994620217421030576488905274228776953682377420866341201932533227715676484797354841637596697436982627488247013109754292751595905202297500335465780563794128981577634595005425355544568271322646687091645594343175502282289857090306003400703120484929584834586123608349821715079532645582863012211737585033943492069359492282566491653572182618218497828458848980645805732839867121974750815808725974807369741413504278520843482582726709456600724493906503559295260877066501088553311176884555058974540832974511809618346894532855425457615922451414217867519598549309284944497448490802782902819234797201713231143515085396509897386068061823772127005516023038164406076483400304004848634233210286346780156823541755986239637093125438230015658317372716129709933651895673235336645343990341120214330522280045560936438423775516166037113280579830147268099323575596307645297659818508690772567240069801676576628215173462872013201353222415090533079904590612031181620130485836689005154041011247900637966607099785245185131790718896192610772331447221426287684537699159544641288395696207056757633502697415229628210136976223626889436857588357338329372169627791080074651555008308367614564368585011244687852507524591244137971691303123404850829449806185390288013868529657652279065141272640848913075012229388865008457950319011501359779089474655674716148854765556673603328010214844767970693682723778756172434426936106720154217915683279147861993028387066883694552994412682680118069381330467015459240477836155502838014970217362535133314545706562035254015391442316269723897826978101623153802925886964779900591588886914188460228506901769056083290420793801231868943067643556911361682841008002229859923209833529022702104592184668776701623288992201514476839147895831466157497672783734975432793116908965232853122648380387197468057489927853608717831215147423503849196828763189284404799005535356630072019943798114430993138313143183015178261345647819006548177279249763680423565375353034815943449212460301516578623115743202677180459619106158189870405091806538004397246101818389464419602306481987360085567962624011390758393502487609343920090836171689823382484328974816227655093501415091475117042662257165994602322240845464360875534343777010730279380004407067356663336524035773025797050410310589331914043745089418030089804366853824167643311161418427471501423651250325379274891595912782066025127652859744184936367179713072490329407781617312268042059379676600866877772989247559907215478719390733756766301793968662287665156920415629716447990241725239406909390250256329275467314687760260311032829589039149332054544380529674184868022858414239727561630478609118303795530835096262842401360995404984634635427829408958730287517640737735447890472146256209725576472042236825892654047774270766490941917322855560726454916672094516736802964511815280495633533683530890086559103959210772004029812170263793719890303668024789869419453760289289910040883948324285555756952744046388210634591557977964416215503585304917926752745543599799107101874238990778400453968829391853590983088007264665883822044219397679179096533270582792987514588249997519539375169163305167780551853043081905022358128201758405653001887089621638637757408313517742037378510133480527648195477919990200937481315324882404699813937779883669802085656953529452249381603795519107841347774232544076146582254558858166945213045939986037345898311647313767834187880860310330047205860487125504661693913274123281918028111817245028183247186007927477092573484071740089748508683257415542975421713597318259976023584482927685639374741185522856495844565507104880872645879165494224469321743866885919677291612993167398279405694782546072675612274837818568516177874241248317041928490699399114834574417674110102726003106662467104521549594148407051552476325105208415654467752117087177675114374352986026000696994759221263121248146616070071210194938464801821252072353666580430744373097196990003615873412267462967105982298947847279350785133207157759485757866869915491229087408699785174658059993200844057413647691070937603554278434383458208114407366519733015477929841069545504707848101488041222217964688427254411043035895688913414737271230051732675223395493290189473618545229998720052613607527693292499146507062052522198850882975156013110603818668558601966806420718079640136341796103669930402882723960389176692555174006754564760657520415748598192968055600097193168217155475708002060670879133836438223701713739576780522293047592670347100556487033146443614363497687138045449851290604461773243845127703953242883118441334279201974952331363938599580583316191184487739289437892467827674625471948943139052134535818835844860884351704854595445465008853531643694798369203398699419827351458465563435958930093510723123634221389636706944114583294692523649992963917622627528714592226041353863350544095308847042678399694739289959886263123186089850422676800786791341178160526781537132608424884245394069357011288244875971775299356599293117904626907025103258991778595389562617351871379626506803099250851498527268690758383084738207238443750666081028363176614656303150436568884887330310650231443051405454974789302335632813203563884520917663047957436023963421441952169306025003944287008168579057203961407638370495980668826682020217199381032629092232760214284841837705967268144099321618764293388928479763207264293969685289702855237706929840375864600908089137565250897913539689843278399693427765110416860185378971998384315187103797456036343202981734751392321607393540693698844909966908450833625507215355632636295574632477571504673852417272917270969367517454092638894603510177882014194752476139209570684512857691281151763012258200115221802329287879487379668254197253108561988136560432438957119223789721474527961571068329641354043717024604082682319990766337643408262719059496115698857110391658547369799681875511580125717998842629135471162364942805523412343862430881197722458628712789723541789338601200084350053402142622652354241680929319848030945137129768710560578047154427265521341168257237479638005777117946103140322235222635379013444845833233131630602301099794923087388334334673811115854735686343663973393450819758743487578168350052478330898730169069504822362656484740333681774306697635615967313160505158992890593976025085424305265762466462097809074007140669580309986873917902111740977961333579517262834722549141835477280477567916523495560955598907347122365369015297388740195527754734009153978490812572875508181078386209686567547375498691751887446357910616958609332767950873669609126337294135872808351494354168166852899207128512990391993767353845939179995369248161869111060254295408539464600046073063058028253501974424054058186079753485495906322978205026734075507502060599534200518354233814866033894765536466704554271155608573467697991760023053740607154257902665886094915016657884485373571437280032671385308494844574087264044944251959334620425197647487320942287451357855439251791172090149936757633941072347979950865197575241950573477481701182589122128296066799147615763526984083798266409657097344970830303003435069257190010496977206114857160924590690612996295931814504895399014472943848225538388683076373847053282750929854921932590053001080000150860169151755523512209579946756066496815719638253225871190804506526370197998597066867701187418471315836995158356400339613330799579176180886279505957923074151639756140569860770128875348485824397183416629709108474293913637452292988456984538777598756426801880325490041157087345810907311222036578257313585546908741952301651427009764490909855132347940436829400266663576399857433111862289619819675687077619956738685721560316865883051734036699169223995397695568633350704283403390687730948390343018217084953964286903540509821942676263540911451336077038255924664544666363367494744225381465637127167976657585670011939586741494710316604564673778573286203049993769580545316788597215637594441841031250455761926382576105962136052027142269262756057602841749093557021192125499030085665241378116270247099089617229947278731955453830699011187714772140752069302095609911280250752323797077481475652767389198275358211860963864853202332403240287670421215012245320695679735924678173234548118252805672814275166337464749765968649556353413612558237059079287014711815895554946484447842209798951237526864376076959281184149646127100281097986097557875521813826762986241061178469158526720243191423990502513224022200791373304527797176095401500779759372733292522136920994885251832344993341561637573484995020553517774946099472744030496934400903541207858000980717741780137276189299243987868442324622499178260842838389906891291560802341205291573403118067285337633544172784006993657716826628607747933652165707252280543934476702199700629315252866957003857537677290843328720331421185434224941788893623514218632884942179015078258470407558731186341917585565657085835015641575022878727952105806847554420912403270764989647809743575642404121709603187672242781971616791098886682649595304029983232440591720818334158956726068528163364615450487210777168281352455750658647897540315822785550403134291792406257790792502707926791576080992924983409066746040492457766664498758280900184362689086696479780462542692221691384117225375336129222645177528410868575861540138789345101528736796824851261809362423430250479110627366866258556084583631395513684734955916818902003294822433936327357983137430663653956338379570017692269618174627268952991908368823433090328571111487665278143536649607334478672992074993455513691165307468696875368297153468200248021657676479460775328582392686678747950210110269141757231287067075476347327046050418895571729300393562461687250716799944374835736579115003477675650110858963270568232893836448675999986175083541784838854001839127988645786690962267654878050375998732912946881499951945267684546626758247476442682796546670126066502317491006738271966184904625108801705519959097235990882326327920676206249740774420980424796353320598165589352734908540851441093958890829739523019708753806295203662622429501519716218454107564188159052905328848267680155886170912913536426233576035965450686392229615388187636089646046726871241334012145888020679244770612892762661431546926098813982178976286705387556887505620927675696812337252865418126399916974998489370452624157596368689346490607516149272461836949282821758575713794848698860000853235949278035825548738873410932854083387137625646758948055841795258981911511550946422724971673098010551654307427321286414371947569253518244617140922476073628751535792965910979483593857254072166758775096997454023720813685819726306481880327933850838091233447182903981935408202957137235935273031996856023218074633934978857426457889494477069011847298010663020872133605864105229224131019617011723214161695268232910391972556447534029870825834782516993067237940638540098750352834809000833667435249714024704702153884713869890306053663253995834767917757549313116180365905948494796941236414877454511622261189772039369903965372439517630629241207877475762149084937407444278793403357741977142915064051172118532618203731580617181723454813159142261372536816828316004727853386428413581644624804653566457354334061340367798877710680273468099559885914063667878427791504112258348054828113526602269007477653550445607975741571678417483518615254887864793790182931679871200756564349702317536324820199700074476687194417464338572484049400100722067745895323077629808510595608146558250228796254329700078582716023687898481768296154953070781794544701806958632824583689658302982283806084556744859507048671859614750942596739997378633014286878011426358472241424216291021249704679165847703558056485378952005113724085025596213642379143323339730979821205338004149353716443844786957491805001331383579533639147531082276856296111545722887458054871081211038208526366749193008260692646164869533772108809005421020794881510475962504769676049121959880816752389420681379520580574541374355374498386999568760705041396436398580159435577620778181713118651441045042844383508922556819354051459359667760029347050232029713808534252586566018187866566656553916784916033733878135291978154837596583961418414325112174410172927377860895182442782806909568638386382101478977587204664294364286650096364262077306481032958529797163364481360174139295689867440860613628395927290343138005832060249993570748621637861694241961635825534314236355742211394590926596669134690043772807530373669555201102171126656727059249551365758619235295155823472276686452514062389556026567840057099430633457531912082485564021092143931844609164244982573369208142980193028189150442124689321250567176092462574215545146932527549090230683405829954602477354038243532695976426343752440484668320704097754484329794847213144243645457137848794116729826281932605423864339762507206616809659649180803946659541714691329662135246140629433907072114976608472194824161993486448182341472773502862479025644433890900631165835237505188216896915761817608520642767056791494661792498970658449456035248623373934845991593029641109177160005726334470976957197404202378105462174659324740196366371278967984498575380520709615293003526898291606575581499438048499069653508151852338815758398535114464083257989087362197655035984196701008541593737373685206410130813433462909376477136631634701958490560236559985860332934611416689889122853129540477393347190131667766106349198194467325938977697516771105468797776548191521814396517427407685907739647791603073893118418717784328454655649118062855787228243362850246120824755623901019132027347433304146082739959993347424560182441982645478486969458597467452717083586373745530205627087701684587897357107736490510187211675326949643648685135957567020559832204983914412385850895306086756583366827211577175661206289934411833552014957782314439498530930277621209958813451277968495739349976402650305170613787511979541007754773329157436177200543189426341054393666975066923206174810254150379388727740790350484029944579324610118408573636369683670473423540944511354839115868864347693029238620472510239065055296462156305782043656224006102338470464792409793573400649993218848928586552712944582105848706608402109330968779181851278180837922881556583482731719042472453931290944257471402086660280066230839328243708889071037109649726002974869384974163918703107732937870805632936168760760409468767850631356039944310338740240823885589756931964496614921292326361750106796967660364179129042086679180280576620056687710772104270689319906204021490331760106131629907288601058898160812898630395094055182484318914618331848814864022132680828523536328373413336020560128751280844162970377589883096081188328519944622577045435042712526595977929042544165855025761344343157788161907660487997312279291353979443084513922692818801671591991458256166556414209882502534147911354242605032550270285316873121444540867988257132179649200600409700139578339725656167786240675626227857311611492096167643633969698816739814524115161502131957806527303300641142126484569370040827365994692220213341008917045986406874461310025910818304904146906703620047053267948517655766784530580237043610760565424511164630779032675597696636636503256473298322101344059069843016323881707215352957947404759846136351872538171069455860712491529109763933590689328139496018234034343585175016878592012950112906227945694693936136601630906655570136316239102142987023802643970986823242464639964113639173844361122776897122637061067100114339004824842021923958771017884899762130143789898521994888086980496555754685489468913400621722264693149963329929953262017182864742183579866936531006833020831556613439644480759825955158129034615115051197429889521009748618972680243053714907778287533498372062996089982835039190478296772424221866725395112911983058446377929018559092127287726918145721814195017494480559502385806521309556114597156866648426569622690613017391060457742418284940989384431091087291032960996332123042531653811467850828173453893398873713346311348674043053268888186910493514109689271802425020591481243547350997680628128469966516021837091063861160060716918785777735322889392703445079359016770933536007594982356109493814163738952548976657746041253431133452229384468716606002590197181279014043215164116265118613754760285788745807506580339036403343589615365622415519568022847943218047902210833216804186725043092340597244230366187818231858855979363031525920776520811271606343872352588060456116505041633336233651802852951951020904660278240346400058093887074557875210411666758138928902313687863080844143086491943673624292843087200411533019405435152511202947982288159385907188019142854792688607153833233922416589991779331804255450314907867942808074277761017962503834771137032380463327075817686366600219706187336686671671870192789252090125567255351562996712457784144676673687704947263695240741945110070955463053122072615843765930690717769907075754575469746114026291319999294101103192228089570294816083412456983175309233720517594658880992732890787509110964443274181773337658402751516179503354654941499138789099807657265060424444377543078311601040188550889092009521929034791743021676265323459275277116018093288446312064467116598726132528715519208667873159495169161940665995965977476982981724887260235414381933323117653558477776137597101347162728471318306314551621777508039549522820629946821056380213270505835572911906557882121625230283822342983463618755047536880919383995030520374189832380748645256569810187382944835492050425336930241961258236962691975291452071737070670910175036121032444656047942334589291378444450772178065918183359426467522952798832540914761502853825598136611652179024360470255557060673238620065811007578624240695700267851208466293305435075590449136941317021230320561168957514496959816904253748431858064724573560471617659311936376169809236287522407078336946908000946757501994792176579383201413521841239257373384764958726033142385640300923033259858075321375422121066302520231361014183021451951592014020846898545309015894456987156512419696341213032527729112463047790167174519113934514435345267683919859572713649940120300868435348763770479654414252810720160272832261869081778946252528230745477774493072075708076568789145910841031266376271156027086267532002340538388001884464684822224326653843878238828699813739334179550211934654691223897447022532550854265470133835699829351721190321364046920890346250820992042700723702318907064023042219130179752722150001494469314069906034492447342612672106606096723858825420875317907872287272249685864264803279263246836260699086358794366502569710592306737891444814487131902872837370785263712877629938322497246145990732844363567367394080424435263103103783337208693823189225370951721761208681063305392920862671531303621241614042996084658743388256315006891069489957839024798327472320317053339038526895652569444612560190254513505142526046890920011801988801186955834109328195714272568345857548121603942915785983391544022395932394076460414747452316659699815865612824000581710486316173230946377158773708188778175947286593017212120099127076432194604676992740221699117284163440966371671739894455908810524340935208090643477976995446323049631875239480094427138225407521494238549553553231412728598590125197139131060289254714302540368260408664471885461754524769918561101565897106869268819995892066583774028238112195929075331735650854084979980849954102866401053271621603877603005593319562711584425878508961209364388310034900332371270312427202683082101907259722591090313444036425393558162278912367400509684775358136023088995597918785077034248229058357435052628837626242519248148550231751058495416641381268150849780862835482541656687936691773364250514879398124623155176504128342052848583793724514346501098044661917729483746294629160272391682471815497803634725964497621356469007423823517842241274684101295938403128068879316933854964762619697047362660700901014160503642138780733468483578779291880065690071628248887692758864948656710298362202932401304317309696622431580094210575225809145273334839787974953559341916277772783008930627662551635362592669338208181086992124673908327269188034431864823112199502290081817973665058238784106248111493348221700196447383119136607418213049436870608485681389675927534583407895986731521373225416321958936504901175020377486359579027862647201024273385654222318541219086658123044623199561655597489659819725749643185067893454453858510845558743391339414679133866755023888576410006655232740952925212443751336993743447522643402096517481837025370644992016621649281003349292216269491431642525160164453085290682438030371125703619941220015552493055561992421981697118085769823363389771241960999989221880536888591340483400833264034338558553245723459314859026106858061047578041918197332530572052354482618082485597206769382611177089095483539010664921302723714598948471802186697502762446641643023405939635552557300493437141906476644890752290831613723843188307152774853780362691780913010845081506235197278174732006422467318481668358767691504916251689362222560978617742487381528763876146801221002212857446831103596563154293990253156658380783611326863426848111545945534213044370906978566975663128516574714613418583634484698887352016080286546896921900220564444276890864557926615027097373189601363479362051273533029570546632197917468273459599566387910043612771388730080495490639329080390136778871879750969604355903010221586209885025512318232956600701979326067282185297654127160351395522289898345021259844848948063212789557330010079532466375205949453505388911596223946251677796914202168595563699936636644966757319834869652318386741423921474961000965301132218981301524992104867455034498220109575963576721031547067465105409691282525159400405163618493414453677946016395194310255891899301188122124198295850236388838696181637714254081144123788802904113673882521386826352492749154859781028444410489014690970733658442143286054145728301206591437957383869936999241217020484178092102323913021577604309184862356833615023163921174730716541460934426037723122568392433669796435003315239031139561676321374876663193783904699782575709118857440963111337621948604997970516049390189109145718254487034447099834714663905054345088806512957139737584932370306525136263886519544873983122577886085662774990701269060087426154891698302354267289917490079124564026221486789268951958629283513508533118928244483319058071739057415907166289422677863430327970575763588128271180502850849423110903029005884263216499475842905764126295929041397069876354993578858069380574261751345061257194106270937607885162341094851027915406845747240151419194052229434780517855920176382985488064021546632109556590072237521031095305423036958996075898157402261512571537162782447732155358051498375590823498608475217853179700516039063514491274997423908853376496717545211303315381573442929012277152154250551809254492878285978612089864289658129974958235697621872357499893567206959980858962329218756699266464267070409482740075147859126043182835173245490881465194690105634706813437988642238801626320845022377687959699918719070210266132037565432977545670223182698805131119074608668887341563800946902001128193486805676827596425354966894238441111222155953432812971715135867450123329241934974963555250734637559860301199481539201200796268658570432146243648689145110822224941187560353280235845404435612153091682057470991463626990434094647252655669052628225212964897720182330819499813411299090670034145187032119715686789172790516782435813724494166387735988544062236913891727334798813567853738022133302720755280405446833109385168941217113929884038584534311503657574295194455365235541516575929808150191791333454200381591092964160638090920105335451639250501289646556997592174424504713409327562991493003895446521952423940065797696294562245603043330155266860238773003633431540005383141981953603544421754628545096064727127794275775313897443504682314067352972722378669097134807585486534518367965251008648355726232680099279220106735282312611733209045697078017217216806478181532367367336810916896058776167875283119025353844574242170561630581754544563207640347982673167178683199146684431610222439729676804397290248092802426109643619269375883989231453789835625650455920599238225765330752392302396156651075026717220701487285245986696652410021093869328751839843769355102004286908120979778320997073276062591221640350583627920862908214231042639868562495169509722664561714103138995957358328314836253712544811748306517204917039746960729023581139388089769524495167975475866287118454911948805470191738533818134336197585985059145887355915533589329093177644272423014149745539540669034806102405043460447954464120552350274055615699750546018917344871490429126386085730291301244219282127662674122608140984239175113722451821561644038953778322771533306465419521403354372954619985655733096116045426299327378914430601632911847504171779285749778618639338373927714890802204268287222252681443769310407340262861237064893771363831959554568277783988875969248634160574809551969313029382445622820811575363393054817970035247755520885767138712027290647225061547765376462033293974515835099584709420585034083969974348181591643163677434329688762336906581157989926377664530424549763965101874898783305090913154238139356610549769411176744079800502355689820872368960196391462668301316154009395229590979633681329048957018541712589247969581536661947420008714512359958339117003368391565541297418669000618895146930654483522135639232177274203446989683339799753964571476827383801178125968090276712312828524091990722383210726649417892481875510015390526507115224054339181270423159814998164571181582227246349392263522233976515178243422076184691204181113710773158372987382945323552807087393852786644360825533169247055897652469887734083738433098975039711066246483266648286254595000272103381903539549201155917371666508276099162640429530907417011525110974201880489714174763423115351196517935647534157292356396219285155814119187411830625026496734083279020285149142421429061803170029347824674044060596233376500912251873057580791255340853221595141368181411823534311228875048498020932172487582851386611266746108405393304324243397311960013806655155672313746028619456283077235103839030663676685351339215005961043088025738681514161973336558989326855280937221797372556448200719061399354103816715277747146583932360546829142906558078686379628210960364481738663723710286312416315646311272783531715602356153413874041778578362790851622743955039447381924736846853851804513545940125112543907766872756544056368252093780629034456116141966566134826636844931504106854529963788394333721716560072601371430417209331562533117783922260713742941739660026828716443321342425598896432437124833659894043468704529544952664041318560442281625708092537871313467971771553545956708108910470460320075737079215769575449908468895368724793594763925991096302488191302702680583376467178028713791091748379116001371100167063759012344307362521171784489916053342520039823160507310209010732559186763299020768020653449566170655199636042036491328738048629550058214526229073695721778765770336242383270209417082046612155596368770785238217306330197548014443353678037952767621646730203251135045534318312703695532144112389126818168870552288044533223507376774725545083261436608479685627995068936453231133447215597367673626366882819483894578925047060068251348096476929798858488826840865970187598075791533074159403073099554871000894162594054341950856202640012713467760467271794457034966896105312733209483818888509004170680700521383137664029112421294736757114303266091742278835762865038448315036676654449048375189397245983129677631811751345976016139456507058730829449164663732519245918855605780550324616923010160915522895532980944533930442528764059690129678942600856948359235192256287927371906126137292076657000165028695034294795355696431229027334995805751015697040545848893702916251234231212567644560897547354680417675368706359788209389014696187599830404870383349730593055384041071969031692584989563342556398867206470064123433356416141431886864313517623833744236816732051346372161817077858053588735328072993970995025279695842901397186724849481382770026070145747024957216160804047053339793564620653169419320631213745256597060760015676281965125015636885606406485346244709411363608399053921333292941041256139644884523027375729937978382853534744592358900907409010035349802798220003893085346960460194936350233294817012501928773516839874764690443182093085862486163996444709182910665006893691406991196062368354963915934143913524993544883804629930099332532431580039497430209742665574585283485806522204304218957282006957027646279815917612569524139255964668936206763352888107040227211768170059644690361987222192230237821660926406801024538085599185477456563330830152017412550291689040072528289904411378661105090468477789124906632078443807725153014258315544278809522514035452363657671697042078383577544404417585321681847573664930112423285170510183539219338466192949952647120625960746263072658074379723743396613573081445828876255224909284608278483886103478865831903293043017770679962073601300211834292229418534897870626169454927226216032389367341316823496802952271079480642684479866559130890911928992383316347065735951744859810464530016362308550497995951163774440364067570971837802525333926297461853794439913850272588407794042454229039800034133024135297933676348870393155843830767921507800655321572713707252838628811134357903813980578756288464760920040196342852742559916124519360967693305763694292070957794423592492948567527631945615488636910908509123689528299203304352741926160538654106334695607720055802188368130461583223168479468837713221882442898647538167402936431376563485310547579827726935529237264280686975296303988591290274665135671551465291495150215400755386788605118600395375028268529179286304326187930530757747977041581042067086977812298380943316271547189461016354526293347827280907009458531751735146488639694848688903122105341479895434728102839741104510686624775789986967594284305330789634786959220791585928005433313243477149257705704028750926752532943373013947762206288201706899634146722727587268927668090254737345848892856832719523758157319382000094149858131120671168961495615942448515571433491211925760858543870971150846505534398755648894047184820784534057461246418983310651109402809486612880160477244514577150470784093042009603410461319814112284709954384034340050120470210558767014125950978039091037937869779726972695651950395900656552345093945735623027821401466441113185203504636866951010505597943620230627196039659065034047850386659723414248808405731699142513927765998852760624239429484806731652082913302023695570966151641845103692897595489655721949002405435147456376543170493993429337877546109916939052577133832074830440348892738394092511862345313970870231453936442936615568423387873024152284279567077232247246518078319172997349926785009702562404256699791452336705647467238969218632481567250256910163913880649890710224690966202810089151852635744894220872006467311300265237626774408529782513114180266950662965282747378776562811802543826978680520495262157878634970647065633171230659078757578965508670505442997138716107588251961959038078376703628021527693872989368085332393376030224790263523270015766087991578626187580704600530688645083392534206320388131943375606014629525945587336866096039334452575799461330671040207064695473465169883365600671583125369609223015991528277779263117843118933445609476784556692967599613883977727758529555122723715668500907786012248242253963053643498435708543778891098291509116551513742260808042330632384068983612009261193928553571955353617817989176704123502010104700449958920870787196879887322930301221777991308881144243947044320041942456872711899885144318251543429704388078319905557029736313412492364160761010257631455663434491482058593134866963783015371643941304162233944752932706125588068365680732930568053474740189596788619629390711558481687854867179108468916242520126912520210603692730113344399966888846820832812973057561415494070764307381718751476134527085597466624200800906518294034794587316927967813060352009254496701448615250655673574833991518777959218248624801806972146703923842864746846456394113293255636905027495335831491274596260540407757237873896894105897471019277629082217305163646335861349995114106091988102602849247462568304909495493357556411541435892756729955064778191757472312907887969270309209844412703897720344889664986376935489704013121719575438993179964740335292732131600468997859392650406640977884557756631470849019225808099420781120319601034413963628974216449311913006585579965147016639031077530810875213626036044007835677432660187127522617355658415378172811891943472841560570107959922296178350076125062799786071490809040796315890259292933022815334095728088958063089044771121399950087432991251392617636072101602249659138544202596196709142099854203919290221599826657526029199587273662304198823754817420606970160408929872308206316277238859496129231048013494873473853845455302667898437567759420665355161717365510270805386634824124812906682426354800413494560342111622905022854352507042464204686532725348066738260101413805204181363955210404329543047005436616940408363760582914401289071337798193870402176208665768589790070526991358251379935468182518019341312501778795591783785975603104639005788249898459071359967907629313231136997824568452125208365271576733668585872019236739810474394642512888385871924023494708154004566689750176932907649106969524488174536528564640755786945376693414445688046265657479257830579640451001400010026039710986175112472080225935742375660790183279317667807466978672948340268330636703620311188861798070983312492526630653618581886493984643791697603368797089976322526971019908102851992929691673701633673439102205722806366316740160347644393946413490264402606364874389666852723681413608147755216414755530753438026959130696986678449482956669224394657559090441854990172780435246074221744143806684621067224008129109624834475900488526064473777260263379483645404113669789447705376235778486158820219325524383996598743536194562088196291552268143689557520259744051107892775894501858718213369686171480094119536556560580319780296149988670375597069344035592953259933856356846208642387308492682610578457183398662276646695003335089735608591503037327903742326680033843337638026013852943727249057391083843993078094360298402055490667474667518703017971158739124456512065559423551373862620801444162345369751298082891740677648014677827135331012382773083707041225338502329579492509722282409443537863106825281796575279753394591529075231308712963852150982606257498327123005314367552458788786149866419540189719351055827298894775089000303376527670367601889032374521836903925659653624810627566206859617618413224127048982235672248193781078953110431949210381446644282780479310423382137100433351982272503861759962449477659569618112016854555006327901188266148481358140266456993645250345479144908086134677463061427861275465810613031957670844086708430894996833439991509538909151563663059784648513932160865956500335569181925817674211050726875689911055497308491013112268869775143091678749385762759632828984430191980477690880099495135477190955452872168893622289919420234423821525488899893925752285074858869640609013245904631285498409354616881541852124392475773812248765362525894663841412663983651403689976869998012933229744704422430955779296525374851733208177143699815083790262329829274626115052864662177180252665393221729347222141592847058301553120252763051082379254279691086469699535472599804726999583653717718110419131686128982781852835169056593137639290916343123185292210889655865495395989098747658155208296842756048582288145881169356135712298117944073641774424806397772737765641912538011802679571004000328507355506113656347050283324895684507777140324587327962633876104829544756699011101652733917996817647050835927521354937325523679738621048588918396465127351038192798633230296117235594328708861294022219338876908554196191093349119404157182614711190066359344379731146729833320037854582566600481780786901651943140198456736708104782789019870197992937541146461686958979900609962310074184427118109371588382819157231711952864429610633491730779302643890262439866662552657910322963699411157449973016602554124199451272301966310542795036312864755747941970502567735728110755876295861952122662307057772537882201124910286467724925580663472971385647838403665934558383784069146541421173742464498452445807835884043441910835893036886675429149479677657133603810086603662488037007238712745195256088475985347100682073090168842184453258240526861790465941109689509467634716367383796219537623699635263880604859965536343820310877869787216453925916884292170167942079210594419137024307919574064188324399498466176407666383172588724887085482834984593936584771635672029257853237556119548898076861404095331507607482332315752141418011660686889381399270076321121866794672719953133085795719581193379930466072172267958009905033471281918058452266609025910677458069240413256786364518404244151331612865388165426575452274527542843432257183095028141057470638249390323553044954247217277383020947179041914711163461099782876427257685584196105938564319420457392556760543619253872999596094063344498382385021060197406929008193619482363737269399388320807466960906232027675001956324017877988920204270170277707020593163501192237154936269170943966062140215652125112741149092310816288826375088520961157386812360936620989709262342399332890317715643427787893018869472537130991487055023514359182226880627964671811452590386863893395413989022718711088972256020898378582203897929677738191120011479902000916141976283182146643441573258404651409288825777897309221314177647765519251009472132064012951768842451683924546592079804935638121754712339664855618103929899312746888501244831070296760282543750294610763749371594326466207538779500077939156456073163448154471787194300588383694865531738229419990165053511438791882151046347614940724338933313150180487578749762935526227522007292292184506844134806628314180654610330277746326192768037233928571549732124080452402047908294688444529007140073201690671118148801377334075586938336670094340723778563621429935870537735543223093628193451022120394652521650718243874130104653870871657412449089760946509578079891709054276010594629587339623258734089488301056106238406415267198315760678784639953073152597633336743583101742948386159004930949896800281002525162829524961254604929591760887467106396250463079974189133416222471192285045722134625714018176799859898245260938554523648364527284798491129291072070054274043535380936665599123269390100042496006019905474878414491474097607560869852354913701539212631748302167848028516652770478169073601524003511196569380298751287429031840044016265879556292326274444600522619006327825583496899391314845005528157980855622400629637341671015230958951927537574653975748934807935234980567596953970335223111239688680332305661340927831311664074736162805261046591195391331205787353388983613968758966108956330331862878912934698857891223272431719680161150016572420649190169307493798337018083781771221888747475513962071442816144280103187744499985223472945933553515263297596411169145888291121647759351911556885754459648078315643872651613836379131757460800587061131139676736589037055195367018045710922214647606777314907844893006522050721132236992009898311167425107925814946682918578308305113659495852148287965436096749315800495319119217572099122416232265851143691292508363761473199233404001485809714953594202560297695706270087937010941226866324637915871475790011203622420429002014000147901867256299449369207579448224580845187232514260705299939114534482205587726808416534409681671896221166749591971169463165515326269084886194588779756803061473128137751425656618998398361438072049722003556491680933967434450856813553608130271576869897456003089726640804943465917970019801052276775661799434228601883773940448293483859807471478614084164832629382726372957188631880107923852653053814468737980924850772247877919083877258957659117562022506322992801477392454394608964465989227496865342636084933523648534275582902466749526717760063646880073652953372978336321218296457548796627046166625986118148551874892770631262443717880260761611874710842119142878302680230701017167341102006269696957454354147846157005192914670142091966786161460701170060825205488389200990338153405053935209808711230084508662300431244421175861503006329939579622080261117584736873237443471348929916890075136797406292224277525441854543624759628298800076918870678699210920027623548419609293356691774670302696878278400038933858228982058929126724159708666384140180049229593244509594863146395865716784777164693223323019757063416448039708067918313222747854760504149366493445296073214342151535793837084977609300634964794044425461179165060497471195716665901210249365627276741684873162121764308160370715046792046821844074126302116396827844262377233784735344611927416544129380926609904212670377035832243306041205558689867931440542427773323647437848307603987384346345929370157889833478881010694868453670478269575225294171973964844722417992152076866796926439177915926899645362453527307610855236199680661675428671641244905006718974351290086382394944765318637741612471067730865689630558933893506790582860077640722713909316614495221946803943476227505262803775119728233003563327639204852054390860742801117545678245463345861801576635075750733611727084086042526458197879726618776137868055320698566109529277532944632653545798635835723791013055273477654575832576287790466781921616812152194121767947745358024008211668295335432823294806874046048812831939894952909562891354475396792849728160251864084542018877745438700788080946709818832722833556262957864725515819875418739432649591822429475737781686848239580601376984077905220068632045362685661255465112675622404218027430076509709683633381721454169016847857884231217719803991904344483442655042515938447533433750591315770937602128725804934821992327990302205453261935173043120946666974460704415752265678738358018279879254106535168635132174678372795954982028254829542537649997482113642131309315295179570128675045308773152376334786188156030864729035273219772424268206819505792847892615705202987809400260337410656515910452494908781951426748110823579075550342337248678219462698990251662239865010138969452295922853430116988371383415902700840224851017203311918149816450508596662504076794174458346293624557981911290065379004729507056858337179291542751208323712239820431773635224408113906935438939433012866245493381006135791038334724402270883519731332436917048846273982522000802327939020216037933533236186822290481321372011905795408389353378977576024422274379709018118432250818549260791856042842524364064123110345819094235429443978605309747583373710425528564498870906148641474331767819007071007994287861655750294997424382372082160488277194520235341150598212574958276998460324126701299667691692705572966373575420149441556107946550866215229975390880683501699894825516577629733435368886286979325037495612811863402475938479553748257061894742719651837119039767588341548398796691047885842245791792305215047414520043750609124478079611865551077354169943407130367390883133157518482499425066896972666653110770212050475338978549920651583990338924039712808460285206095331721890447201069898004276927351126579199276933577940917758079319938353846906243756313031221475918130875779214447453669673616659681878869888164232316702935140925146956947581902743141282047124971461450482192452311485918134876918941943353116452005443711935188064056142029062335598151876830572274352691498724312167661777388971453718004159106269991158780324480094518225302952497704090489479324697887081085348979015797684178427605882012209552172634832800510395871774029998829870446368090294763005671235272161925518993883957215962967289252188377884811083819856810980784672150331969740048594906331665808440273772511051173710448226600620738143938499583221439536460340611678451006278133356439161933347743403754422685344807172577398195391624861205212745653100209949448282879247725389384622258603535631819713814815617584651797984386517320611834989308777362167297024367091603402101441450083217651944456590329288398197389861770035920789416537708007433818625142679395886589680485821987766850336505417105712262033943071177196625974089229221607572608009007096527214879338149878826132602136063902211667841703529861327376676146412855954195999877510364708164799378715547315714983886962984060047410702492649561534389254076824639218093279333824616734487783472565899473304889508021548029654887493308548439636922573678071278216795445964076996300521671182009097728906068385171593434268202763588052635825996858575043025930931891926202934616631377122007954631746229485439973183903602876633610160976521304150832017994170562768548025914853623468806191463714020992574678331562247810283484196952461552052324524351442937152630143871956728798415480088054256520713500992731442195316720225214641800981987902593737194465255182951211148668362422183761521356638840630240952753885071635299112556651774831915906466395673182296824321305700332187292350162233490193005243160009813253028627187316815880705107475349736214597396270326555870012638049405989948577828179957268786888684648345105578708535002843896600622019319394508257176044363773958791436804825474938934095145296032620647330834889756197100684227131472672222732399843616321082081172120197584871584967519779056867456744229398312130703629747048617897137494633416958610169852726964837620075044487660408531768606666110192034281912866654906261100532397346126180180503929781382688158623805084395116690116159225189928665480430510163609537187492396437507226801096431295901158573615823174108338470902831610038522395271821733642552056543124248844920416363338371927060245966295535212409239816578615478352979760231267733350582617902002381499334094974921730788074569579182195015779356419666239017891772914990205110017894894164691557950427377524685590041249468709272494568143643924312637105695025151581416094774558904689671268377019315895234887716378835381112754570607014976974442312363915759159488891241410622018380054114276088081306795722073459456011155023071482978663644475560944663346363901252737863511626742302131848246936495722058477976815173765194484576262311317382607310873350199571372865056538561216577029243634622408603160579031095607715481982000218799104512951742474913103833197921144136934253624090990972872900623580807348940068411851224371765802581333733043499898040464445065123494629173058280798854278087490911847001385317885295862933820100802462534662846187240889074170074831182310489326914293235704575517794478916056599125203559960047514876802798577956467513621539080432951138637992352805600715615606194942746179414350012669608232679585931806508867029364536177805855836525043275193237833075871426160714303440006554497296061193037701324825267448633323659687434140240904721903124189527768078845258049858365867638356557808231207495933450512384809937430822385148619340498188658806760111105463304636001232938730760558042423696325741246915267505754649272969201128810126344285281923444561590703366420371685172665214259740409907277846303916697603669196681080149296960054811957732441852165105201783109648274619479274699063620820452963792444943705718558366934476488770278580942441980992299351066544634898507017965916817613324435622528017040593046047616424812686596933195237848051055880624243772725947693771732202709736704303660800483432314891654507547458616583775805837430807514908190080072717321110309844278524751598016546712076209878837785385791059072984161775828251035611545539652319285763345608134394246960535265071639067760864244169169155831852219014699740678543131508291777270207695641018138789218669811006856607343348009165172216462748502709232750962362585565307173316658397241441476246199238486934280407858743137797619570256426487441030209830772041821233003459740231467441826320782647490465982873051532036384991781377438162743697807896333117202350716699386630652602219611050761855221694575550538592806669345835379254014102501742671897972930685319159093699331218886647015388055090406345345213867494877398034699192380575801697083470054755736415542700818455294951382465874063224969644398211083234169759403865842615754425055981927026569365501726426519062457180379086397420859085887768990712640557107360502347061329115682762577448981376029642184810417788013607613283762106601089089387878375120472103839084793150821520678127067069047666212921293803706643932212396041725926864888453686890707812042346037447138894339076056425853384853163744268535167313725338117054252671318791637921714275639805581229985870255835868921034922458077889234613144687555333341870355061818970295381402435684620307541111151880861808200384443705817409080406732578388969583032897559838540755977246005247988114234405697257371828251087313339976868401001176016903695953582128273361640626913463928745983008718616503111116554377459494611811879707653065027790302083524758795710528147700972419966324570740510929709457194852559871075159369867619376400128454284767507577652735425511430092861648344545601090308959551012667216168795568350306408418052707859457799968261801864658465416990076858771560312123032314792366037090539584726272860000304894865423101177757221781899512267766843052641380902629575751864183914936379299238333340141172944153889534502601473417452114589697515166810182502729177832750531364734379444042095262337083296871714303847824086109347726462946442500549233505644242983569899238969468606903372598261755431631103568032128745363059084740250847259644803920238360285506060124208438372775915707732740585110370002364351981197540790995973602965849542895229631002330178225587877661000995647800370640384451768142676321620668963723960117396286210102069659610992176755173035137358546027092438742365379150207654482270876774103136091350943441165255702042592137437403018944925707559738983160832082569649598092480194954843320469199494982991050492303578954122516628974213587599652657917515589536705882342482638580950396492499463370295523902045749668683295294564261063153863273392903231982203250182837350599047978971940907072348756207992789132173124507479840066786928133677206976727364890425533483863756566890150012257103048557290308515605686789671329017582915836639960925661697998178285744346847042188154511446057121060267268370173126336931122179826014145402788166552178281344927715557255465546360965085645188578905972299912143427387500685302848766846321828248182224296237081814150372717997457804680927699592881650600528251644631903107187880820772604752698605520818387092168503488230952983772952680009004605801831350522943296663500053353182258031564594695252562649194605536499739916201269541449034550438041567730568206869867841894870614785741978576359362550152216228631829002813563291357742833306218661700956709139467944333856122956585289808699628821592218920262590266039768198751764880420046952466258192654624677674386898476135237038741099218489601896658682112831668050051500272803792562870123435249544610781143462156916453530248732694100607422747765504621644830015860427491941221936384226001723421851128201764190599447269719572026349273008627985066617631719014120806769731475806791841182310154292360225923665062157376094336943167264928240662009119088353608043948788972894122529111145629519161728917534059112364309005398787140858759660925178123586552377593453445243778541349606270326573526379436388580172842574790893996907768807237586008891238482671434650338772828876680415350151621819327059463116726176218082857663704863470619319151845808597085701778045349479698630939364626869368169006873408528303535145478579463738968236369636689712148624189411051605396257730398517172532670524651591366264266373966489000752207794616635100035974062805845335228895183760410656206475403702600470547056732517166639564174958106303298620284411946527145430536152802251536767290292267280023571141988298350341538016644674489074850479765819795562199273082038523138364868922105456560120949771080199312808082288229208222118946597166870591510570176956713104770587919947032509873042388980881910625068692440052851910750535133906387742824098520543496521347675922114519422723117863577812313218996410674112019386257242857886508789144935386659484412267607287461579730415724777025621557334434953251601620222189083349849229344070532739263505076015571591038922106312816236126937728457539471950126681080322968884382195251582697830040801403704848053871479997566224319076811767556108155950796896269317804954954616679191540011633036934026144803853164379972124003159248925278708343595633871353514380808689538417950631134821027745769202489001077448345269201541873124656388493855030393546138226159952819502288912569354098026946206708759560394456981346746804210127587670127973107662663620351674337397395225009114367123352820314217387786151829736421185639460198698135552759485383620970152499334058077528307303437369496467164072613168349466621146853291728610450331027054861210532820228200765022329595133121924608846790941260255658650491992166524519135265078763737532661927033024319462527645551061065349138028672019451326388539073486813437188268565590144511938418667919079766911214119611107860074845965737552704710929682886740945833904475857426932705836382153230571747488472548618976736155037385698937685350628161042318988433261379156749787203030226278386147208411257905459992812911344029286891322506728250241186881826914751604418618289966686684956491613445533941994942220267807274571625642049708240526469110068941203968064840707597192362710709827661228742668561085326001773403065046402803361164360371699649753175866169242789673656412738933063842985855126878079140419334997227915313954652326875650493355566491390544742189798397028257503581182098922704716581304512151468630328914117408475463371952898993081083838503794266562540781313009640403546193483477751322014481255180313078682503079407924634396405891798317338594333115431386884418244054250768978768012604478529856001546999252727284420296111904974385244421703599637752688254377764892037739088246109647185887803631581033824191980304980925139759442565136576895913964583987370107531739925128925393630908380607460246823266539603019087939343755869580925534182432256117042578321951573590530838548379719678042201392363431745079626807453018853690432549622221275790672143484079079223934691192696357340847541799830542501720948942730809713907047400970647266566409768676536865499470482156236255879075902640969090661491517050577861438919102723214698744217928518888897893321926791907763861338989209752487840168206780415634247599691179424307550980276296534910880032576599695809508585165013583049809099516039692847128975453289359105053022285671621280210597897037486094898749572824666154312684250083721514861372088191990215291683371168576060454517736188009108385752548043458464522330736149748195942399476730482469594300250117427216042172239158058656783336386916118026966287343520608819338559103327535155802885904294678584322788742078775177736597923619745244239078968367337373319921737262690420697283187042606949172897554208275117682115073984958209739585687856473369883343993765965529278256836348096271575368312984135818332616461466623580363025785294439441809751230213852859060052042052157012869126960402396200540729285493524107460059475266977336312169387692886779562835232934287034915290059622710273901313100427216804697493486855812907496024286505777842889238705267687293882122398573445910550451330726008068716541989143451664689086233014208708843635383772558494161440738519403051387357009614818771505004046099970360494968957386265224080626713919016436564396262380805911048198817119015033098453298839819436434268180558615412527202287153303143208819369876654006429646261696601421517903536479076863389930451562014092341744223440025494790462482984890581779633717470180383414266484543898926765985107906703591639396255349697100161459002690450595020687372363014384734201334385943931841836128890702516331220781821608922920580056955067279243299054141127180735263930658346528406989094038611453238951490004308032826816532801429061526529975792286493432067843320026905689434132962127630281254887875990864024707893634881869011033786919405680790886798686711302195753915380096935854188720884588741772431695590658379322250205998299771277380151456769867900752734090168243904640397161414359229799495876960141573306216624440427442026982627050658180795874162409498969537243922771641279369909238115884357852066999828472476201913882963201538276958057740961488177672164519350239856438989300302065715691988246249917720166195397168785897706325795466826105394713544630875268554506066395918491224537313832977590956810113376519158943233452804500932205580387701770199538145987341809547084477387191331989714383701052810313297995124191899447490619213826457174972402680296587903433814240251775250298716646658418190889712089026751357447475512285397638766144952337728610117152996905925699274037406915253269342304605516734588256433781940577559283533774551261540560458899169457071479111509524448943829910755535675696000641573252124580155940581644916904548443759144264656994288560083896827482265791260591084090087077538380571736957435332737606655042886696498403986130835210727084981581116415496825088743055170591453055576187111082704201957206058972433175790865575388692325751395509737300941540637945563453045485380162438337730280866217082375692643677745039372126494181721501515299091038102855228337597708115220370743342914028008421882349451874380264592310197127777994693621949735270908574182252376467173205456840174197102417814039504799443714606709846897710652380566879092840822142512323387652060654957976616659526285929872093273833722305664511741442723666288405202450202700811495947944550626335450052875921935461052862633365103443332170880481941044055619072836234682030282506151545276806174599082004199112297399859874740419295347568032097287425179683942545297818360275184520145604831618418487066737102632388400023493168878884671193922659896363823625386436426987263709699254107866293983832035978854084360343393731736285993019012774271455809425036163282561169441172052557664852950109195483586423409635675688843054975585946392005534361078124528162398152884970550404829906128007893565676667868912982198599757683426669726073157354996580351929729419195891385788484490905601104921734682883404488887473732227912678771410723700353899137009746954247122764021013745501358883095418098215470466463417012333374287558932832599032950154951253112235511979112998850972820900295063962284969514147369787714359405700951430619900110154682204109980714893217667737306035763875028747688492465696802183386300150571306687354331880134540447223238170261689090487866530178758672962324622250617224834998683501060564918559162946291423692414689030982308793921737178080123711698203921439148989347254864334547068303701620169754650182962171724918495125048675278691087692335755022895029760120057388633883653401520008363897036522638145833553767138427255275389332693115169509825990933845623898535763668920310737038449618542072778903559231315347587525475512420329817129194847243516992144073798968731551639073260817509253221531576022306810001526461499874707481134683057568673872051785837778967610582988278615351500585611364792624742511367380364168581458115410452695885345521770890005876065683524911806415535536650071692520875095965990745010861492044730842052583719143307907356188850621451360886264106618553226802192288620980325576164502645427090659709155572738539586037815478973218492442454068398188998960272442250357792201512311956906255315434347911926505173640012323040599978728057481081946342352858721448379318320129996914476924280688877559025796834275441068731815574583335615117739468304230388898621651080960228279818585223925239582179196848356113284779508668947193079817906675220853639436053418402952102263053317077270728303993630705126576018486765750667223076427244009810451192526250123711570053992811518961478427814033239638487604895558940378237439465216550303849522637054229731861457213347570509593966521890434534792362348183287939489140755445677999426083331825399904806255775490723394539820296809743992164809111675270085048107188511407834263311365399113532603170724604023989793909548094750299837540545268311316311995371057340829849627736268078282112295202571111725827215860141835089785979075720116345822906402281834719119697486084930059070021864009804713977677165616670381658157784073324812147188743365862903492579417754574585222871980636478834614160780801842426725294535364575493170358983754208047718177841696711302764321120795958389840509399520859526063103176594734436455498399332477480730648976397104487681322817841252534728487507689896180417876026311584778220206809614582652702472814462902591151315759716421229843411527361543068790842756200049343997685587575363663646143779839736078922212344904773489936294899884043557843979610018439883539615745875222330121779074275884536762637608428701509854599117644987337860639037631223929194870398166824536847771602832632401018337772725889129538929903362259814562803798354130834602409432232341093984354579431736327037295123669260022580574090224910290741952513222261311718414837157268847122615455857045537971853454922132542253574737672086300050964254561869441445656224399077265665516124485150322368871675330504069249492134163789799560884649392598473476297941344699521852895351970865817515577246928339883795161245114185141762612461393069770187303769012627292124730512935932465602698292996248060364512287195653248142521303873967656633346809526588346384872277828224572775244321312911326831640029141601242856231415188163775137989436379571009945419728104409052744806797002523496511297352389645418959510726446480700632020793950150253107819750423906763417163970890308862296308155429317260479413419967912400454839555173442368190140578057680358178810639941268035596672461984317014722426838795581510732748708925658590860528150104757207149754173022708227875103730251919240961277261564198503800683028390961633275183782541659864568108895582633823309303001440369269984216320041135328598670539501107071920941850266626678322137274750415566529360763410225745321493193786297916445006089640135630205762990143452186713381787351293407406841340570529437697074026872681857288240539121107900457733551242143765277151499664458217286666312893048455320410637305529636148107788189741036105437666630408665898815936812167717485429998763118195141105210591496399634439539154831172887213243775806942590894896730005426244148632520961540752235075993438287646308351802159694918174618416034366301135897271784719962685836348859713886277252511556798673515955449105437672855858822072564870278881638964735866672418135388207465672565887063941817517942322669665479301939564124286697267515647158449626821474781909637145358008371244988298399589169639893965447200696601342067494859099968431739084734873611948276186854537052160829548555665158759092882789603726125341617947265602753908615910464017210164376506140909749116430689509302505920830341023600348596778811954560812607505296221970801459385171531314150890810704297811117948654921568016059132156970934159558629502193494965885342088260140162687439716341090963436603507173139913724758653708696765387764121630726940430865748156533449388724176797735911516509094013311212087270533791563295509386264402916608593129798727185523063712609919671624219084210892337697668398470240563352883390307434944500213642189167059857322781095934322130788702348054288189774111796521075822691597694321870751499415704593974451974642331892034866031758088681577155915501533247605251315023100300969813360207195051638686999179858639354983471010543108128054046234629947637237015429101822914233148590984196896353128878153384192540737448795080960939575757065118855226827039055516451438138797645280293716660500835726185531325617934143512162360275726793131331785574181567072724063853447657007361389808470761055335173881846198092538545962989591963433335618962466569379214676326241089345727122420841218234473611945801440573765993490343260761687504517613449632206754199514665451233589931436181157000474413613374706301982406784928104422255413037245540595853886704941818038551300316121001561989073691542575815475241418747036289102267514961579790758925987542254848033580331564851004423364185108272746759582604303330247181822776688825535906466689500328437980041802423783105329507130907852535790706933497170636530483834305353320182757042190559663882704963261166553111003614638625818516845411188652147999364475487659602675964134034853620875953633340193025791508527793499769604691945649947389495667407835716527376200771809328902305966731700060697364810201807841859033531785904331178763172495487155263756008672646937769677272938433255344467864779844670132034821786634390368592176560370250817400081640793160259767821947346952140729185816780739012325002442883378089548966539563128847719098623107996513272288640319317567704773084334507686730895031036781651604807920408429919465903652590262095916496311098645581087758526375402586985887491072778219874750936613797196176216629754468844453479105421377160199733739119060688170095280581621449168562064136119151650451166659778745044262692035298891333957864701989264092730718147366599424550144066074488175143528045534806738996836880906055334454502920923482791592413612404790910002651334815010368877436799276388641498580069036387762093574543809823912285483870515826917444421059361828857413477496053618183515052609343054421903859534201043151809993189258587487423968604823114736058667055238382038147034926125167247418625009640918796531758706780659508197488031120315846676356851483128804047836102632706948500663277292328005700673760863231792657254451774850836493880704767800491865479577335015431905307836985363869726518454917999136196859386335003523196782380675138100180642363817449856802884860145744519578023210128641896926174236265228306012553764348248687888225684655748912062577335798716974127492640299307827163616331894184397131363115458903886232102152184209156537482867769720200103332367370521725234543842235742263261037666760212900000220266752734055143770738116761887823200974166642758756034293967664083356645842477779734920092783655816152068179868423947450950408787210562613469651695744042242199513008845680118487201531942210500435344239743521239318140564537194384806506904729897852416694471750380240519149597912196097586617087126344975129431517256135004459569069179900033919367799966424838926286016969303145146151805898526252383666773982843775586153139249522603459249522829937672661045169138759584720022983563029416224403515992181538156797336968507849920430865002610395687164426926256795823034980357118833743132490153178114230909551118852722883828507150493104525730335493839435021104780772934708505013566743379777317687734917222712235702857535142320203310335435588216109631416521191482444676699617812088563032696227181100932212444703940754601078363881185542800102970509465861698195606508262717463013664792398897070902302761551193949815016670623693957095876286433131974383985643651312271367742883878017723049506996433153132692258696299677022951082443150243886772663078435639678841864597700801002960262623370195066834965379516512683393738581203026129176237014146879390145905983071986107380787641307866278070792947067234251028686149773167513063740094962483012474358898289337027397638028123162204688795702969880820797819893486273030983787822024870208161967801936782796098537348490754587879669509567810697369091599608370954146136790652971314492360631872495227135383706718828178298191631363365283120096541982477277995831802110815903967297079898253841609660939172507030105557889687395423226629414492196528507336096520547897356094226850567266984807249244098692084173509031231506267448285234634640317695465117579783202792307094145317512128873651508541114751820070018016990898981994932580657236936591841565057399612897617296299396550287918324683206363462455681902960261614676235459264998668264748404329678720998663933510996679912047888452680751274523355751365293202143765041107107466235028722759975173805975137730198847054704035449731711813377321504686096452223186631494824638203527129947653313933128487763048653098967520105821270739157947065693885568906437832310334786332976686053383693285139928963184114129970122832397076717822462829212791674233818429142928697916938193797767651365493146821027131396310275227296503085154006798436218258157929320094952130443612307960987367432265549234637288508962098121794363569582547724535083818402294785191891314741553133029493793346456218767423282513873929061866219444932597067957366147053295075961293728869544813412754147422163447128186736505191506513399002788098256318141690902985288952500541765377245634651269770405511418332605150230418558166128883631798665791403589738547169634035505839616271913801672369853404576613316238512089697191250473555005106269070839971331678847461566373325648114071758300074556670993468444686364400957958464891731586520529561813005616488186953607225834922281199135184166799338825755199120376950511850281564567906944071589025693552800252378586679437784999828234166119490041059493180223180089715926647202079533562774464730130699347361752590140309018004780492479190593699314787674295466364035080034791547900885210642922983851384336526047349846063687380454850198076761530633236507999923476546451191837721992953037006821940804874014947162159341436219635557181537623601299317082507157365174483109422831825065911787439780296366930912829606063900456143147537770930386143596610717278858146309178356061814282195676880630873923031351368690089843469790844355986340094578160388247685764739564100698693550827798721395943329173057480787519903938197605045247907825197849412851002651177028719260572539196503159225802673899135414017636806725497679840971842621343008141967714124567814477771635800141018930187736861457643007297952870411617763612921192901096388436778057929871571796870710869253511852353222917058239348056846435016976486561688947432688249711299567672061063378807622483601556448489191912562539716445990470676139496904869106292843603949637538643374706015319695833847996107035930755531153082103745249518780513419929532991644305467467940382949952821425818349848866948495895624305131253702800136890267452662842813651788578185159967783144562533268800188314931810194705678738418495107455489728443588376164301426877205011012237525357701055135514956557742761964159656352039054981359376621820527465148328481275122255278699010109053065029399954849536112541443238799137489350762740360579524544274418383336230342386433410222303173463951366282796345397431426637508882898876321722445687383416590228018211352273817026714596315240592106745049939349740672536560440591418950523499200739532828316910316094831730262256002238995082166225376802336907098932306023560158997640583156299035155295196515259162483418664302915056263903961932994641155969695968996270223381924161088869079069273808683567121298026561118863463688897920242295448296691734162202610629110799111574473543471954193727837733019087784618077060632514802754419864245553463610452999967327677302878912749101975845397253697904507825848579832565306713046600028692410490799882857903852060159426035562341465616229446762668812594145600789674713003793178773618898534308567299792423312335922318790482958822756176830166918086401354547698482610204344232149978774166633323302519181756941978312882347580614622935298428586121456587579987193230466994304151500555274261906205419107862266651327525144329343863743035358140250484983791537412728253066669644329644991899895050926740942825070083105645394304771557538572761357874188577542295491935413734677172731032167934134800105706739667908840017630497309644270183743407182147527307700096621911095626088597636474588254139651088170704117808300741044378064648695656433231249072629788953584403006339925333925560437126380003521629100151497545410760442783318922322032989892685460068337395746626417581862800222305069481841946362148905463191971143438099728148851764390452808572098449457472777309470149159027457893117847975019306316768798773722496798592134579006570112431705248765179431719697548386723801207423857327811044624963700235726586294844995371779430078766697146789899018674521793874021503605258105695460511098849908883197988953738471526923131649215530894161514692573305165164044427359493163355415223548621615693758475432887723564956987821273683872488496918962883583201893985435990198418789199572158409273569332750454138271552583441301553004476116592950652663223336760034235186248192507312098927043570963424388822743401748037321845444699009357626147304146608874609635259452642370511344101875829790953511383574569688151794738607542338177776719312214316015137059647483122192420769365294273108042900337568880312495692005145199336816522838416770914965951471942419733685961642257735615217833635113557171614787733862080444467993646601271622439377472314457580495525567255450901192517545412576917648342861844605286568830531279663698246680526314799805045520139113188341831594078336982845120608786586817119016440395836331254479014903880385745751830117722114652710462230756626165104879060517882060738529589195325845051046240946173947445425351678175702653478586339431035602864510180112367261595580946091030482690318335732724943514032595479866447798773446394417463933281380089493192582689519239821926345703533408563939697380515670333020237344321667549453554603862387467648489799373291353771384401921911494722619338516933337725641682131779909155354409134550355560848557601489424242129787071588641298326393369782956344658094691684384275748833614931891887548371001241063989742159755468517220497616264587599315610625713956981163422517772455816643190746718906416159737796324029242597790924482959849255115645390550779600039211343618323956583684289659849822714237503335084781884755188979591163129814042720623240510599611545827337724225944860367113052733554055548226605063279571554677367678484834229358825057369712896395492061192677527507981074726136645057491968563217931751018008992590218053098963424914856693886909261572026623954059805077596108142736033232328786184359967035032854383427812539369675264436515043082635586646807051363755180498525485908709726867020645382340289720096644053958131643767460906517980390819913237912807039930623331319096832948629875364231031531926135441574768019989347129890121288796403956404208559426275090845286367169224873264735501844246040437586135737370472199769840890804030136802592049529233716224181904258403198427447225525404048715385040463183802758858957681223062496836442615290439022703845295801267728737635773075320259258177303604298306537824477521386382624206897180510877771268595800499252493751517495018805311013096025756260824491417877496798943452937734959848681824727018051049035560075384552802709603722124270860141418030308729751903836169206882735200427711147411570168274704736725776392963036837314423248767113973044909340258718773961300674393264394136071333992905715470729708840029187273693242115663687185015008491759353638738445003090972418767708356445963135422087597059455699208643632804045185085132565239612199379307827914152049029410597526293288252416742418727505879379994301344108054511727799157217554907420493554441900606965685100690562743215575618584249901766381872472274034568112765782060776257678677666008542405931280567727257056047425448574422928040064799916768667051214686353965131400185791298064688447043570161668911382978802530741768491284180982874394760512768616404328785667596267388179602611091914221494601605016498865767067831162022758698651800380765273991356459945710980211355294346536929410923807448574279639895994596627822981548849572317889708598163154176714369578867909383611757405658501683140693965782188118293763270744617734910549525120652306548990737063975432105049122289733290695958580607306637415394377526172069811212181339709209511864789648525847999907443178564719402506597048483132678841050196054200503225185299885461935009377391279009386626103098200318143467248815863379661089600477648040767132891749533752324898827451185997020146647373460575539117359481462111268505770231481488823621932503223869904845554109744277321754880466892302520523180050855042894705668508328003632926934641390164361503316197077047256544993266687605855887986670052104932960918600599627613865370216403585945982146988793365780433773000243351837245687270510554939302135320890276162646712502957536795080267659706479025094322568920987751691161376914559759259500168975865312821022641958016222579053460033281071989864361521731803925524258195625830134302373173131182958254023757191849694013325363581356105835364734143701251045161081778364295548092903864706444721299997880623250307891011850032529706819727974916849283072284698779010337510965874996777605099317524072290782030041910694059599628066324800363971032306362681646440682222739424366210237223369518793694652246259244249827345028947444020309802106878488229434023446663202355324621835880812869297031144008106539076182030416474712454457576539581684512005250241927998997089791978024060630424546961639853913845802150951632611017073649235365672068110016752143318965585787670105443783057219985956705121494077811230991939240918871824623259197654858920041861472916740430903919230358888596814306460722787285926848220071857703914094435445912249642463706987401471249082888182186715970212733223806486200371066614911560338833261214002251413018708399548156354272651121974157822612227106680738825425621551954410003671564425840706264894729955777745989605393998762654610687407505942627115220314845834838593341211948832106256023903195736330320943054122722498364869072503903717597644317590614829609694758897228588126686010944929230257195231419547948199246588715811492180208309783018538366729643247419974134892501312585283602124094525609281572048159038018268348988541289287131008386458141125117970947870586969861312711276201973202258833739783689882111109045526775487937351101641591707592606967832966062947252950133804162661988597667565552667118575580017281488640679528776646381958029612437175284095060546978528143090047319623059059833750801707083632895642173627506943786502468163879842221710659966123959864921045053417588860250691945077215133596490040774481650139446680664359604680028866228354778457080521022137624674187061627280964109235493012557295129600928713824531593746244523686515190936128660180358344598729794671890202608090958674810066080766450947191237969531592630634791787053616905840108314892888357443629087693581104364866254631528795896615095711736179985651743592569997795431167714469378764148733906988261704305060186142265558099732193712209784602769324808600064642204938003028489650622180218934008275849596678270048682106199046543804930119782900738280616660376543999752272978027968533482772888803679386680302683703035195725477533964804619833509294178291149109738010686137349733514271085039904039969032194616991666711152960661482279890472852544453013060168227052338317002410201310003358347884504841615605472606067062754821459678940517026921155843595793258751743333213810795684434344962735054871592372676428197688753309235648490892921217883331207962288849681361852773119952497537017400733322576380008693395099798465851121947634111345370928367334711087460732792807765324406337753541472343858783160932606519638876662836193983139537273528127462621984064577114696953703557774093654141254284503865599652621066801314007389823039147518274182204700710091685979508581138562526292225339605980299695676054963972783482397398563986899688069947285708960563333731772300429933382166936395962729080798020749568453110612024029461524729432955882905071671049941593409323171864488598273742934519371157467151298450712092593521271461684906625104405056546143086250462923277293846614123330467368799207067207581989298648667133920606332816030684028936394015327752534175560197531424403468537897407265931319559997594934656537051900190261828749901126829273224211976233318694993877135169843192435128018829338822354100473093434404216067688168332975194756456040913570059296830925198577149249399691959067637314732649562097418896873709301509558620893551682046747323506271009076003955278111520262412656163666205223037990691495334162022190935157658126657385564099348724127451045148374326908043088569604048166486281752611708344543013115518801926414340766140964772544698676537898876723801487514145339480543834072611314141744174907796006461276279710853389925640763416615113979980165596153570624676463343923112194800271090594347200620628261339797557059602392403897121205420537319125977956120030635637834264854032691563570935379945059981594678403099278275620935345282719836853614668191445876313917881350681876064070615353152636366794630846927070823585489255470045960606976520399113868293315327758102262077943608287221088869216584847517298958432584186568724067143422003558628497929830433368960371819619960651914979691504142253526002884392845452598344281651273435655953427646189215128842090467485857427117775702906530216161663134227199856944545238918592383599695216218292753881398962235818488381056969809692708198219906486576412896080934889214548901734359337035160257566738682417688342613496243063240704725060256570530827476840749931169105967863129642763483640488060532067737538635390708523420405930831977265460476184047750328565192192315479047080188635644525022398951795165511192928085192370887265003919236514747040078358318283936322283359247441684020192432915897877821388070115729355587830502930976571482895669729643759567904594056877325921920086236798716966637659566585771092578961850920390450068069409595797366832368507878931775651840175691614682923431565072445253352836425234635463661106131536035268421967779622701353835204221939820268527594864852871193290633177244372257761484374667964343743007292026264802758874685412844621129767606881351957076825336373588740162906929817651574664439285868964727954779793084344714426490768150250114771730487458479567483968417274467791849112741207034768754848259066089280830106133092975385870038177449729617240175880590607461117990670210766797204426343074387798408563184264029538076436859322842843092724007414867624162232200324624848518082172091160991832820207985873338941202058293054041008505243103618388376786092933640801625975418828130869327914750817949736809929492509835292926451696296964408593264139367966310228263947401318468021021776196654995259254962243462798220882551702873749845270627413290851102100901504135370635091268667175095591386462290008528710947002684978468539048671521321156530153621952607569857097841105809030883941645051855181379330518221599984957429839713173896310228556765360598719772487506604843617492608556909133865597972989578542311644447127089917013621721747312544074885395937607911129703383914455991758586567417930475828522757562524453410942082019809759296507174901723407055296526457683399948042111501498300436393004091870964515001905795631747772398451642821648359452628960512556171643103225746144866578440030926825697679678117359250688630064133328428362721446363005241094595889771572448033845221241832889951907418015855674656025940496641986042030195252812629353453759626667783885770639450859863981083654661435425133894602098421384900998317756417117585431139785746138373824760058092344116592427440335321443216079966399633013802255060086287191233412270528338282893155473628292594765683133383024615877089936209335975447604730323281310268259577598597146992848854109071745203326415574934430143638544992525299937512127162448988966500244438099774874198023803280288166037468319734148504304110675496945543781687876544859576746077064376544794696823549178185757690062214973403141379902317860068496609319499624869352338389900531454753781146582011326876733318499454080474903527555526588034769488462496101427286021218332498192669496745458044278004534661641723956809158155294416722346821413167953833868384535725579843541683069869680602183885317073011205422466781833394480808957096961099350546891702363101843291609784773248764643759897008619826272735502491253188913456410964004719879081209920697858206373036162297457065418328932206157269617609923454102952999097056147259928928628285602529841611793791254259166367492003873225610966205429456993022806456728261037292902053858446423287900734315846567683152532516063700416460358006351669808902608065893731554713310015865284827084796084850349101376057144234394183288250877219009726942155554514943183596250091550158195672526404008149672269428042775385131075644215517049660361917810603702220321065169995503608225044793405808195859830212705611116229885860325506346601266501438992792332592475293633277639793721238363807765521622745270227997711996347033961317793651875570683250816138547185805406401720597283301541846810340998447269185507113612699179029591738293228854256974079202100510178121227671310215194825202153412573632917838909513455245744845412028848226688392560677551451268400443295387297660336391636004239108603801736367809564968067753973868765644368568497748599051920982523596979782488684754751902261376530677827521578102388368121705463128062882472812605304304123399542553412281451031230468578007909491667502995557424061762864014594453265809439832175720707973417602881951494667857899020015809932293098676785332451146386735854147224658722140866584817648456552366564818816483425306884566331028017421778512374649613803805968272206738451161321413777302400719756986374524646339292846524462544091058122000462840912349425060036307882088778481494772689553503608029506555419108906281780535512516249933129049809339409777928251532059393117513761816936551349810763996349852387899647825327794914065479276003741736746262942276930002945476062316766129900254698399775238097704878015577318041118200323893916295335012711362464368305548571235861484752596198954104229227542004802969890540476437116492617933627153266102856616055969595535727976819703881898507864284923445522083060794977424235218885776766509589319694516689538584261707425537721492892918690014926807136944644667415565468516170834131196577331898474988964541895015850852994611107839774678707498456272465473130128217371470498553518949069543855781573124312665123623977986306164245963236715905725146328532371639982092017608318645589303379544568469714058612289867561555271202179087975984211112332309592195237186316008762003029948977151767971897757584100041058613550490359146000799671942843117014934457838305622918255838764378768782890352160021875814179541229315955650880242134556651697787733698303449208749843342078052298471208998972031933167729296652988812888386049821451386976134507868524378433357684877368216056416231773526329620739187361143540700804505141229734982397881991730781002081330971114112310829930403656228003874085517340220000731696610613529788144422082619468012887914630170232870138731624064023923091317052539176111809371676692200277512922717470862593702768504255920159529947988170357476731855365930382888231085771712957817301705748322081603723285451991584074231118014477217457668570690096407673429983196288037244506961110838063791401014789459258328824475799340996249504540875259845909573418959954176017331670457365520429018245375647441707290831965205223874854011555279345772195731246565105785343780277727204395357514297249711276849602382755397247445314009452271093736094179259277753507180316063910468278678503972545692878891209617214194429385369617888443530253439909053105052616446388954236391230071187805773592764120268326310558743453020874962939340977151269673670610066683774868973997550042511465005018068418068032150283326407134845129545963427463288895537429077764156038516403525422459300662214877757916670837454961696128811284171241945490266017020903873475594875895234461996189083284522223149623341016369429309136888197259890629438148341986411008382990934732503707585336465074481801524424751497225065448484494074091879997966546811864665442958306810954434310154615309975219605954370252421175761092834149579018207166881108273318994317282883181821468494399777630171830791999214877773952492835489471251960599643781821025190980899716848749931156622796193339177929360094515129927799738803544274394398983242408027092570942469702806151239761612322469893266024205068199438057235033318284559557926044294601045469966004772042162984871612190237750327039902195811013703556196659458388778831012839457221409462074857689325219512366120034421192518274957718942624939734613171615487056716669183746188959308192732377383685283314652043582969818529180112677551736094027386989089889875075145916476892120345734229476108469104777062031198257323440094141147587189982233910416459341819820843741643432715144545283015395608443464531253610856130802727410151969558620435305569045786189386858730029082617813305145103071518319951990015878689483578601621710067022154756454605876218094174249539408778365050479791965997017177553158097522201674705322766739646949914574181050555987518606630821222866727491825568483182300256645035550591635113192019174155637544652343628218858488721176065742192489648801870711346572646169964637176976161288188016709503068841259581910865092725915856437590971432742793954073577049172027477963865222769001572258954882646307545976584009136708386493403662721647421975682176307038474808155592589170077202396993741550416765259686830885862826402073711866222921232072488733120424055503582592738447954122890678958888989146195314143052616738663177950371084265020762892687146269144063927715525330774460956306852549991517169852091539736956455178515380190514175416523750390147079178336801197362216431682110868491263768794405470140991947841520332298611593714114398540938869329655202396828482281268889376701887675122029610109997282071636311980607117580535139266846660822277403660225811385224800955289920970856570765745923514193535701168401354057881370675610408725936949763844244383314489721883669893537789050030912960556060442353739260859623696777514783530606636759553569072093103141210392292266188537957879740311319040498472289732126585008888966911586635938543133798994435049618790461068900012952039098388739686791276590772201591257424272779405076700409838908377649838599381151241014231186212727160323012247147338804574619737632467250065520148533068183654909148883810003240840416462097779903122669809750042097920691550584538659677586616553982300861145906108278560583717169004288890389297035638945040822002878946868741490636537025477770816089131449502162555763657692566465167759297158451714295191749644845419491833538572939880201363651633915330169124264571498119811149707475475220768058184402813801869412086628944034550537785906737374369517492675970293247549720609425800341759502355554650889904912150677859371137405489797711186569941947004922036908472447099469835243252993359842881243634519259105004043164560519356506493786651974310561718371096160511315405106751233238689667598509791491745992091028432437656544513648503540547747725774638396654212699240856697428915776684266661791134236272039161905371492509947726521295396483716670639281246947328589238492102009932618899523181319488804583924491265208527567663196800184164797640271284523626736667630236984376086656995943117042184981440240729136442734831691840023888919085135375425961510403089305447246974850238300139672453076843173677538681749282199719044042836056805930017654413451495873626114198138488308111382465443475628913563900234996198503020779571582297688439189232185466223469641460365308858660942278527887781979785360565776089439718438352088004811167647976333034959405562118754575640396781932749774382469558748981746170996284317411968970849110894049380079626682275278678262594053959761038556054861725586154083019239057914861812120449897576181948691047914467826437077228426952565016420945048417663572604126093090275147302963916711371550037036727649669565723016820385631384569865991005433172687970492146836953183803045245935552372196246879034574400949998782998485847907108706886193495407049248806356133435311260043051411853308749325984119617934298993655244238509314068306095925833944243677805865284275681385390962541995383029786500948198955271309284920599527659420414440310107708661525816258878218380077236083817446930285394839921623124891121871624036899109266604294757485754006756427742629166563708195344987146293754261688099731288838818230867629745852090270424968418615737303009153027303213362498120079280161804163229059420884015656519716835340672802698838518619033784971281437129875880347270017290267284010669935960482178865413733751088415943761563173907642761064007162586881968836429580483891212426030441992182653936307720718786299584522895289791526371422604970175305965274000986005712368900429181780951916761592551997806451330528149128002098610820159139117471234158367926065916814838002374300253736498647084712996497588164335364354735324492833319296575688831843850947547516581098991986917599243325923533699615138883419713449846252224125692579412998874595069319178105176392991752714786634925785655373423658218141664444980652588004323628288903875524504517146942659637767810897000736572343890535548486765653407868872123567937242860246907628934721521992394249823353834779204657137051733058958112726036383330922145729075888713266443778779298541269960706773989227961699253538469974442030299272074790866993958927631522170177162405367207097633224631119159841807411310271110734953258762859797064559630716940859119780232692375147112452494293938132345594366377968480610376989573938904733542753685432536353672602418691548353231165356490311343720328612777643397064786712984070509901081457988165416861100851953024921040691521331618386899663819267627337994090482985923792515408627374216905796747550657768459695995187501469065203222943939184825376976850968927475510296360385236518666316293530547829387271466037140886099035320913024226427090335473759298816745183767790745841495192780659194987546483277793423448784524728714192500571423560831400059611341927393945638610311408966995906340495025410198306317533023541106129006298001029315280619550187409383576333709076906889722802797523646363257074219735512631945373303459663533523029498123366816773102451160231513561463714357299104194502972741698716037980928331832119362900849657977179412581117826437663548223642986912034187157167523565713800663803949159129003281752219508740763446536526389320387933411436113223979371899297305750686704318073419874890615355233155076121364452234564597241604933094030052284332335007321105229949048799011837350903215707533536380005202394295489358452005809303363228820805225949759810586031101489152161642423705166779658206549704974522662300463639914150330869908894875660824164293539959246903870562452651665133747476172093201156436500278144149789296433653847866824617334072161111431991720725730400844647625715713403337973147943012571597023193590422353147504066681041605666224690050469814429638845103528116571772878578045197790999636161099532024905476167371366244176417440028871695244645749720435707805728146883724244444123185468352278036600647460129713380445785454074427480298095168656241769575772025502146022426787179814276604785099350610094088540134724204451767514459451845856737328922406066129162623642607034451157167858415118356715999595252084839034950155277327609344256268196815378517880031586267429831086925474910091515356953629033159117867590243072134311897856010180845194297715422643015522138002754552668321941660942654011254059934774629349767670029673313771138188297533563256217316081239402029190204423940058452093474343400249004514642437904309775766576908067936554963961316826948741369081694488862726727838630604530793952247131630310545151990350102398273482796721174599990673214993104639922866087098688276670379987887200112014055290088140267927661068444558287495533802589284587923740650681552109188314945036987558013025089215141826777474949484721865042155169725458837873470004021189519673073981706491745793086548960497948906272550216793212436666111079887849583858431359653729008742227117309906762224918024214590743546605767818725625387394688624303899178974181377424060232977850723469210643181410137808669640286161962536988151423792424891209447771565626875274844707522394382443142395872583304743068256469480922462298232853319157637484601698050055413902709975553246110732543936384557210629243859541861065334778243500511983426046152243834267594244439825937518078945748753440225623510551671079048620250738859185297305580512502055101179638855369744978459652319745906142850922071326492275413539389934386596590393598725305040635887333967938106480525271780548234276436706802672675963961221221862135320743601670370414387188051607329628877391775705303624431013329051629817974405309161019912927863487581403076643996867539225449539886531534041159393502420317149758961716151658817829180463642632879356736221850723331557486388487123509974988931212641379661977564826422057970551552289259706979357749678706754889468828004623217863394882435702509460691022427638085794501548134032830921593282860425471555110593860423277197326259982647940016838539588133418427889568987488092528248060619056470368225891361019925902716233146958076221536855532405887690467522457432099683208710401827027199162328063390239762083529377145388199023888442415587818567358184814227996647258847840585365528812153765016697565983686670076212918532304080392083488796972122621076835326124561031631871618774155571624556351784469418952388235820901754027706672790236406971274395379480005197589688395510358268119841716433084091261887490669609261132803679299188770738753759752227506536609447106027809268306713743402565070802676242009214674279732685072679557585220439774270944035551035830241387955221282866520391974969786953731380790714232230557027373944108395222385656103892573145465239248814481208902055948690955974600792889912642391407207239644069051573582450221028634623140810837062995905108640321321754191999083627499414260957852582272911661156865255340240231023387405106167755170057053857314725421629842627451423694282277882153551215176917952574330918627890699445222042899001764484027429983602946162541640446889834524681864542952480448832871328850004038431135432668565598297523085122076198191252568786604254249925669965587791364587606548695644695723546578555952592175193161050057793698054391535320224586353764322992849894546289536558537821890508194371408272665905242976819104732237882962443271656320852012147968427742763654555339551000497649538028105008652949019312230708503175695509342245855564170690408033002057104780738300963262067889445540504744595527473578153031536781672344628462265758275285923627677958833982962749526869049508920353393547695231994146117133577222852335536838140226791919108643046634286110437112690701746857540157958367037010652805731176983769167536992699512191813592039722423194271608338151196972908703021087717191197861012842998592344162486796042338659066332616142931048962922161187196482124957897742584353324645795010900580389240853134309530812996975371076233303986314601369939070726079362463751827844108375112960405910790997466270952378368575076353776399314854579649259282461556628369014982875496517040651014718154885867880489483750817054484571873371452842734449159774197072076233129582077185327109564227826084201748652529452067224187953678768020701580925583070146194649297192897376080603122666219665728978065108006222115972972064727148802816902543332843263859404068506349138415125873422822605433082416913985487704602788911356617675793752447199749747215171896492169511080761956469896485379279555241066103188502422364977255059121205787083979410971653514993276099165266281575401156618781118270242104071008167071796722307912557413946496427695020047249161115237195240080904622123630570505759659706983740724968954260320735966890858503515048830505458971316956504386471224578213329900056837670046112374365976946246098349894605448939166589591248503627053118304259388886134979560186216726142687826571389015952697171873488732233528245605088972726214059671468291926516693309286978410523703336993444107907539984447491324320546838845193293894656599495075361732561660020152797931316963294535183778393845420192779347169060869229207217026623966397169305460775867426165029928791895411786363114488716942724818277329904346940627508374793609591883160774726249611420110691691255251407092068145230438212601779539250640432864823003970240782712630834152053189006023503965004837827461548012611967030678622922752241131388178974785836720757365772164171977626159319748324616542686493134110404062293094907642195374240177381380881336660205798847676350323200483178852882630609569318594709873986361481814453963139815725915970237209209377497548914947009886284226590633555696778393432396504708638077369101694367433366991837818385176412626138593865145685662379214947072530753802020204117564586373289875315663489793454976760161884105203517208728955351655986341555115623281819911673492638609408247701728401745209079979531845361896122296848295193309253387296183050974440205085562259862531060738262039624843137277033554374848678147315417858984595080660944429233172021745121460017034402351299584745847267197179544188338914144294840348743417716795366475470379603761870952689236950319161863612442446185943134868840600166766979738299220347066544089544835714145490636201711880853250653657977320695728475800261724481835009956264430098216127428039302756083093456160708691416051575580334417856773749599503834064907699558988494401645127650971816858814191788410531643554970329054376639286397254596205870100265165255876598868242021593345039552255765803420156693803985944078078098236380919040945674397362948427210391478095257512694707343672424108099648835480520889791321824253650221118125690940582498583886043687888572937636991907228024116171191348582430446668737293149920687390590205940071672832963413560099417093292397444387154090652176401405816004436740096543039755965336959520278762453906277341768820180461136450685525555527222148626182653880809545519466168197845735401093914387269796780426780755524703541974086641282846240003204617573739062799718671235568846151779303166739658398898654863838771105993943568765824676786698532267763945590702261195691120873760316953699232674681426749979164267671126168124910889866597202461830837753746472180564290626591501836618546399290886879199533087281298140131123860482015366632949743663545069194101817128818715545024097379960266226265077894298587352719875226308554605605583512790044719680058764104917186447676010642956217473831040079259250780467453698521836954671916437503034498262368906453739539780423174215006037248116168394338842481558653292854709681416758602501716279763453334909764714105153898199982820808797325367418878815708058846998445739004160013620138772510029259871582731302374519772222628110131241811305953460817264227840449579559641351197520051523980343715643333640552871346041247725571015860863696589179408650931944961754650669045113724310018243777217186518568068231748721079673893229807805414035758840204008196126339724216470525390582123093668216486389084570078945744816083132294502478184818109325129885908882470648989596067041317579098139665990219674682196505534764214246595873990514833944645824257131148983076015645801570264689690864340576033927086088702426060181201559595737110161717011353364409811040865793548451836757146974313105337687743439217452756155346218305599525998614953864242230755223185564407131587725960833109845573644348042533889854206593714805510882122189996385800437865032430828415274714097568475592626447321366502650667825140395827037365735332997979323443168591005976785980608775855077614375295636550598659097122234173002900177289510769144661510869267167470715108800012301596639585397711047573129262891123969279098928939986009082662802672691667053113511424664287893736059455768502514031234819401273943477935133244990079434845125037399384772420080204278806072539129392918936222297903894264029073097475669987242080975279059184898108757567902583290522515584260746198182041364928513207364428158319609954246056804482224778671686515279508898524904274905797911023420143616179158950497693667956596089954665612894271256710067653941698338278470327240908222424502234420582880950326132517238930172036342907620269586961858911108889214743020122449916834348657813070202341344702507907782328658147456722830919233317769915331129336807209300096269045678824229038369329707218902261096414736151677061965998819545932342388703394991639472226910348594665742529747072599651206703374714528832938875300731864563238775454802904994453820156291947739170651508527209973723124056443117706528681971588360798299055956639806071163237890587247109535023913209599407802715058425081202462982768632213743377057554747340749434626085046079998798246660172876584347925702409615486124931818113986726185327923679055965494730657166409504489604592856996750229307102610174421432560451391263748441206818206905486488917594197744915371629996606436890093065712884236369601860428463162750361111799370575627499685216608472218180713687741670988214847143557083143848151472207581542529666155069222648741708441262335474117450533972205662893989340583867353591586065381318710835301417206866366930175519168097289297365915617746040408248962232828718523956552357374246623748129317788301130297738774279932853618357679112420051757152281889173938210386379947621206019424015341090299179427679603844890613468160574509113999726939247239295056810788716725922683941968419982546415026374486963193054608969375320037315241882438028944744066256016580790597437093604174010622529347293868859694733696360849939093978130692505169115309243204394667547466246724901005635608425641751658203750640148189663610231569726311170333963655322049346510937888985254427989640883838959027317574382031987696578657034785329995349775083829442720715178461466847977112334143724681013723132802791641238445885905490400312998533087920220901070563698838470511123469034917013495705525389560635346668963478533622801162582012402277737353876645362254684564539481945476799989404386967769218431708192881470517284848147324481897219827319121050668857675531153545810104991124643006187600621163566906670929329565790551245414395769641313089974352893478319708884501896166356435571450113410270085126135685434087551230934860302601084939969652342630833198693940049987448548811120043607011701064983623605506809222662978350736463602104565731580212823205526591219577650393845518528951813905926111456066693871762787485946601007860115918620780343414575823934812313348468127630586293433655837013036609824471365466402464642878546450757106560970418335340227952904085080321814292288131314665715024429313790968274991280093305331555869512187300617169163404773375676472928622987791336265491869104609236384189942848260353937988487034315641871657711937527619157915229120039610427367739241597043000664536352980357715573233679596286956434342840556820953583474607818289690854749492867989219035968007654477364863729423307656137131772693818343010044669538711354584198460336972607212831692381445441256557708056500498054524473021943288124454715363165239782003365315381274181762650570630747897354832595486181222033243650697872115109291682346287925131620573802911641534443394199432289334698843992987957668102425008601487293010387028143755960418460124686998397325071751016762404656361682514242167149065801133264915184344341803379039060589188437426444887742142089904829853051338085684487424026707693306369404248911924448397937652757518969573176803264726206104187516072820329023905683943861430417830731000578540350684221137576060976164636653257572581569083837183276232838994675597225331261226287607688595238723475886363755931824210935336423066974600101930755956168976266606912451634467391736656821037035684119039301678467282455165694396140523700416665582437877826400850348341092259552510617241746359317450151151014883758022505363115298422261868800031893433892996258163108751314422919489019554961101186675560955866239465124019929285815432621094780953984426378302191695408932463667038304132877678252491681411897314651886478667190367446721974664262769099552371447764395253167848765510770939623377928608230550689762834183159728136250376771485795110964419109909858466639568103218135778167865215063402707815715743670867306186869334507444433733782904418053579515529374499260711069696193753768451943341349433347158712288337148094771337848215978550653418694950386173681730514165364198278117584647751214182377077929416640623470721529078547103743552197838396568926816627104731990065212089165087631919044083396231864183360030398770248752872368303006889143277337498558381147887076835274464509567177258727415674424493577586685276426067825787257802766602370405608944517505241816237766467822699263548029772018357848213816559189126982385428851318872313030882289734481046008381786345444827467489909748449669223959815341751873211087950925914285789247446411641667629422856010621014359627828037091721529313944059524378994023374326199758825842427734756430254750553731312978048060061623638565507834881580603655824879123176273759908962528047993149324172663308231080652410069165921477138902488173288800625471693389320486135108289296973521277456758693273378235485464905356710820303493531313431117988872539685401466146810160822798284411816272787828855825762782626898592937534210622565303658313710655089962200362528157453783050413339602225203178334961436228143675036976271438913449295374290098408451943778925436373125353572650099445609100638890734552794663364308684522144621038420533407414289305729563181951129538961996358573333109786703997713904766241398094103562416076583392007222661179432343379813500716848427690513354107171609536348139966219800616670519946401004217298362241615600383030777290952857344632545247669049326831465731986089183923573359277408444628885590868434524682460267726270226127312110695848058255561401266589731791759361626018753174517732328722542808446921715288026918895990287302565421607326416484638068307626101147492977334357131827259513805967914204115510422418365192543453416720116067414712638294042366188817765209075969292411078671893019300185539875978906940082336186148275994436370762383538968553538489147871077169417950431033349968622019475465112990545140075478819096158646023950726778339534811622211139308957624091360747152078063374141370233750670768631224149588537290774229414525730084510988464015821819864972100718945813555508113621769725463389879684751648487695938259156355897957117813001574303469703843442762979249213403733268848596586326571996871578886869548363055136424064523938733232137429362562386425202036640273571914630734145632135995372561831175357774597033769192885989331716012407617014046262327216131790157311061474941147129467963186009752626301133449928340824500273716579414461567723099529882492917692777274341561837100084553777132536797211455284411556195168301707652361708924111733365034581449270758947863132800346348543813951104209995133492517051690416896571800756268221906551726507076604803523772551025301584143894614111707541626881905315958333618383067835862547751350177840720074498862959571554959884986575615917562490296126200581151643819684770936988836095928140236140066920092040514136278155672711696405180654233816976017161567530783721529540470527532752573927085602854781577809905942865399851870696687510446973067633685863658782248963984452097427606858359196312236755191183701374713473379203710346588163202578465313756112531099100810750877818457565865906829723501966730072608324389417681827565906248116998735476796560578607128028422278808555231524563129992157612187461838391604080310853093548816178424649513704458126108030350735020766806784901650770735232234439260667478601390091107635862965438997343389707780931686501444665700906526551515862094243105986414689816543978732686833402560648005572940737307236308503529407958517224192247630762511660839403180870251979300610977745664027123341852168962450436338604053387406553706921031067077676761072286390194757536184630866605621168292637045606316017053329147602856407293536360332086077797242387135674571754131000224809669829935905856857250777971158148282399104157557162803687406362979238493855297136377530420163631464721974471534528111480760537490141004439615771779405027502586034190655389876890613099547605053906461408652963060994959935791094359567710339220310524532449004043470837432507082102761708470665543764012973276520207171060969526733856838105087747642965082842073217869487400356448216594324407737744772983789843660037781734476214648407175767946215028710279252701478563706219143620691967797181151192802367139939526469006871637789851672524741303266036003659137459247286524906847997404053758330152557633014607334824348602695769399467152670622093254228606297321504389961157673683670147416848162872652611821812672951344858546259913876334263288860511756008299754949790671167338950198952230379444523401149661728653378649096541715857833362724853782459024207914891283300718045835184832577559513283570593213879984280709445028403688932522356153659109460195290728869115856766960604601992503562171046024753093932872917930565336482469456068706627824436862203226605916242839783396112748146326504737263658309007939181842350578066951456123938785893266979506773641370170749046784174861081962846630624555593343395612751485530977040414297680194592522655431757014240200729463357109337220335414497247316707792649795441250488086183718982867593867595825307577916647245800852980781692986855862085310796129006963154469569342087876807303968402831674189952125092259353748945340708633753234704686691948716575201781695911395098436055893064919488592230778783955100672278132129384002499459502695437774839235819731322120954599773286214927274935843527510628150228185681020371422127279387350629845771081390917344535261751239000790065648091786678531012837214921445151542082064153726553107632027150693977237269386024317923093463114250668762042394064023209715784176618208677491406587882315797807136968150460167346165191538763621397976736041512502079897793590248768407213842029400913769376640619844724609407243284862286800700326447808286313493979759806120442324027901042134000937703008396257317709298024208454499615183138239511080617139301913419562661262783126550603699938324537516657106516427898000814112443436712257647802658074913590583106540356136634682467636924124426702283650638203142888393612568494573336720902263196222749084549454623454416435232055383383809698943482742815865700625815978308248300699498871157314141447872487043387010918377625285654499261305747306580153693658740610922835865234399231195896553435551629689973426307902623993988771223017032236582513056347313690555641078557600073348825044784035080123665865344109219142963818152533870966439504453034074868938970328703727134482723081732918871574107204162739648838660793658645445197563956995667076584277277448236292563014037072460234606792244621180532234708711585505710769595593847021996006632956525649608797794849417455146831375997565605416446608642213066858196586098301273616403014028971728420402289056400886852418513219392447025952529248049547440672848740028721494652690940747425585160446813530949932574798988391819867370451437452995726249455464809830934496051761021741751622000589276511604723176643939829800016695100530774670925104760942598088312549219677212222000160160478321112465274844706627422161644156348171001847848527256395129973596862440550339911091979570507079126896201934582969823864302026937281264341285881870665314954769361803081337474972753919734293267076469373264541988157204398208148208832053904774444448331231809095235507318107254191386837032973368987024227294282094643342897059498816272778097548568458985386212858963517734329588012417580405409615917604614139921544442425197752863598096192270216782234468774237347460552252612478495889689187120409579505929183355558059016231867990596259597240357193207979221166617600153456766162767037223510909259211980288174425917617323339530546496748794593915306023665455261574829387159028333424153589567422905815580944006362368116095578497278442044077970445838597204092396351360144839475751348685176250462186347362115256207161916270227742733339581188848322921743909187687590804153276772702529014906716902715369145385632430103117724496478945240254232173445755538590039819054861399297463895868820803820958526138603258151785135934691930338264722924320566253365773995700243863592935480341073386873802054457777062895212115210350309305046719972576406013613112113887862306213105616043336548704112862098581185720203603217511244725338687879198173350550343700681738964338513873808046788858723508748690257866229850188040831838188965779619264657468897556156122762493578719709735901177649893141332732736884609932744258934966286817957765170696894914171905361174648683849849713942294144742999693416911253200086866541806496638350035365607867914660226335264831726424503999605119202963372032948170387772730099389308842326294299400782831594113229883844584710640742468483212831423438860116509881482560760743669706187903528344726865753465742417789674971227583506761255988459857191735189346764436257265580737151057716902887117559849135116124778357564385366180192469752905181768678233853477936017777870477827580030689087066216925743672570720414495145337435039690212728735230382043541867315614492779277533769631852068722298236041550119834975631310339981050787317453257986380862880552996413231737521040328363268148063769013045140553890214606471722641289535440949312692813189833777123749539012192228303684586477039022234119805517014868906211974620678178159067553872169862482088331168142482849808071692578169340414061658640026859808420630373397520146608840958353163316871522108433886533213618122664980414715871830104697809192697951826877545943201706959461049494893341730052542421974070443285385364614726553334975513302204804307142498255496129881429926851402092272345015408972337331042306632452220951984910753649495836031942227232952226377809189944145376369223766927256526999730664670973863033851037979860128708991687341192708505807525930459397981376299790247371389299301765069553578586740624498417864374180890355633012001544861510531519471243706935311489415840635461720399416190790693717135965859729578223123702232467714753170940232291002904218584151560148876845372387561581940266366618657254607446273820310915401194463306933763664069768289174737543612473026970742348565162724843569486594463252351412259358543377843804398813952318465662316553185562184505483918362033720353622427955952617086540398732687263062712337706411065752791249884087486021277703521072502712507976525465091418103847116483900253086224366596658386363375235622181036806524451566652165957648520821812104305508090728583218925462905654049862284418865177004993173015365467686088264314148001635784032966831116278589953373057126516812310815497523000162629971556089530020779521986434721165835918882626555950689932367818024215113051980868813618035889807310354030528561804972452072746336648786323900872037063257891541510358281839903953667446907532691994972556667518295410716392395130429354540928911458069227094389231460673926084761629401260560364792121497573412166346514828580345737636865020835662533953016281136883337169256638955501410741597631486110659112550700415885465249123196511705515943219244652584683433603474585833972644535037657541282249009728861682968398699370960971879135232352005252716706037008231675079439328244061067455087277585240526084961190158721627055748099781057059229308706933672216116516019497387682746371160674906700357688170049025616603317608911111879603285982268858233959670755114170831903050280829768995258000732444815441600145873321777447230921056259725419921331907615304438159079911090112287315704300195753136804047155589571002202343449389711391762415750134912442038895487443648248282748434302375122387073225329264877661857496918877311223648016521349764436847100579225140166551455641370076709303892607190560196542709919228685442062279399314355405419473011142731968364000520099642459216856333491355253858719417710062329415839272896761552063437542306478122054171044271563007414558514791579407915076839148292359836370010605792966433802989845312172019852709947259338783514857165009079163055423384908442196989253076033713233542045020467633017856452717676911300309992272842479972991858640185007136672906384772479970161250452311966204814797483217247489388959328487062195545545333730522118137155748445143529537507481513624555824144991585465158094322635306793994181561993622134761401347394292554662045163103013470960721854480708634614759658783608572065875942254490573984787618531653978765376222979536055950084521332506250192610553303907480621348430390930422651857666655857105780477400011217633446494541463180304549107723715196139458332109975606875954176145495100841768580142417618247255464914594065709524242665115228670060439111486513308402235943628381245718605542991863553664786440477546719918497698052696419802749484628557263482268367604262147475976627860534510561976449912184073552831574557760692578560596324495581983388741741964893959565530839423824641770111495446056958992860083753131697473957369443751918810471145486405236378651893857414025357212118557010187019402773182771444488997993372639084506135296219630377524965466132561439744817476930627344910974164593033550893169715786960863218248970406446514614687230963229989283521109088819810924412520798310769199657566045494214845092446369972216811793576081161472853498603400172255081003505989497702013099530829534636483483080859291134704015235719454347751505958949990298366422409049969357664823876416349487887828388817873309836001130282730391055409794086315108079812017311577377403818276613374311499871107464791273090119433696847462922792051220121833075974516415211454433425058712022014611408690844383600654049243093470800754484841162849116779838184101269517787875439155463364821501705334860395066470460605753639659508432723845947428630317264342770943202837560862262457084156870486127272097589553610321161352883590014715029594206080584411452792045068696712184784008651904210858024575358423858242192926382268674870659116067108847448614989523257749953550118951594263351070581000234432802164681481823547794513800019229140120431577247005478198488995010942641855199289545800594453815368078357190667343619607226974417728320088566920200270702506100341050592326769178680431164451430444913504776780427157780481356045857589781540135367309479762660473052588734436742820980562867886935837554745840097848080626645237482733034771478956793418755853016873460304693778591198879397276212989222304874230932890688203263420629894511483204018285398649861747494757269543541628354827335203423474136777964776535264022283820567661583796661753766832144296865850204605366948746466289097617948005218087989884685923449947173026359740961624418221180871565877574119279085126388614855248070128186210730660768777300065607319284166067327798007702790775877518155286281693520105259454834038936580517128926431241105644578252345279130936524861413616427251553525605304142027378601836367834806749055146820357430339116823788113617219007302858972061348960322779224168992855181250212131962791366237384079679786210499899437564383527136062065782952707609886933633517444077921721240346452531574755662059374541347194877013522461570898363002297052862791417510562558638322052386280247517608756576486970679939956974044320949596802843489299826960467484879728639949959931841233326294131369987400539798136473800061728518857687676657615071746325735292930136588874813311844379485355690044671626949052038610407514859102452010125525787432953188444645528157223014922655468642464525959760822786383846587106547427993911600655385628643061323143810680066125829929312361698453165316486069483652180598483330188881056071935606159548326484415346486308813457454522319648903035627024092337222012199615979686806608028326865043877760514365788946072402390877804391170239731056692361288700708630098959331488205131896966810841173510570896378644541283222216150832004391422909057323220109727964923709769684172960051659662778226257683394308926080818779758497249170602001838923928812501285442705447140996683193135404062591267574975207575917045192176147856266991548509883891515414930763854419964300755731682323685579104130102270874728245464753867877601216839241047049568894723309020443261480053720210604234909540878608667773201981172677105521765120720926635403959935402798724338399240704401368808209058242452565453892748026297819370144585736395843042014869846159671700693445440160903545341482127806875145971556498175676961502401506905439641273443279606526139146482870036125139760577841189190552845044130440239443488271219832575239567000735566716164160960304378512272908842301033710314692440962659812966306126125402606771287156417340826489443252727808806111983209785241524010748378638649734180041993409750198619638941615657591649539741806246120752122730772687595297943930926348328191791224046483452561327445897136688919512942686850791679538849250444216808891529915533479537671120886932438874676786208923749552532281298647071600344101685739095260420750919701075768014729469769324229612040025864682525219782211309970662142510648514463159040391111761460559224232006764332716407763066450780352245854623984146225746163751850336410402926772774999473854521557245216687420645626359121278448958609002964833125537786677417262130870353566638586197207015411224005507010208284024033142570172883824134516153102933451251825365646200938993168868106966336071518678034753748941054678802482946885188863878694762643153284288179339435557918144484120673179604345861544229481684235534148497179605005666426907571469002891695388594277926331778640340925152252411670898514389766913203420773109443643887230866561529913908480310477367318876690033820329707856122291641903737131586755103511263064272665277310752539768026030466324018056551846603768046281032332198907071966153096399878127466383761655247852638676125389344931107512681284302488004918522598531484399884623550582373349402554998648948092078739729919317192570839320153012153056226468256451817426676729553706063002520262164036128524059304507570152988072454863340975581593377517118530836754235237767164521991005750956410326798622904422383228646270204889700974810584375623330511505712921164402896632821720491859505445244435255052212835944246400061178808179629956816876199036102218926373504287661460876033220707159162066171572320557061384665857472629576887293484389583565452159472402210814654071225420353641327717683518629703078492972066109650254665368520268914600581258110993365303000711933956960677040248200918706749384148398994181780323643058565544824019636660764466386223568755810826053772486886401600964837432581715362581837266448419142000984934764467697277510280819997900626045171193211525437753100990867897205667500581710878425801153459126684154240704842862368896075397355234683343757358754160105598409813342715496339619723984291543332405151552715445297501571618550216778644526532183231230403215960711686443379069227700941252657295544141527025052624419327181978276432814119484617916473180219271396152983713577035235749992810992068793304182642058426172389007894169771289996359230832187463451206288362896470833037942819416698504993338135651574984777297391682869041742992429522857610093678577439261053518218699872337490630656027130921271007507143978439100512596848682406635721876534447394531472510135649878465692562903186621739163636162241325850662508226473462393719956985707103123607095775676119718647004546776833088888322058866854861160861474795012620904401526302126909984987908709389913852883961089174014867405172622705558433047472283106909352146332361156849964640255493197522564099144198183682259303247971799293189359935862441322041012765880019136237726923927686099647686043220762215304476747762087199446821807026693865458576628442333605820295096802460208664030455844699105602565339058729346788903662441924386817265989639935929273989164562874206296436560481570896983775295168342390380602275462405752742241352132835698951656425140980128990172185885512761475624920157767347366909076751382557894137554172396298225042910778899911919172449143345245377771701144290484015407224356568260305952720962842893957335415307781396857237318783587108616932758081045655795949996703739547349459675316891062526901473863367893105563308143612703924924028376702392699478342878605781228715918705211909148158789763381617767520348994713184137005644838771475072140076102475422061309792632912584199481556087693180502082141195555254799691597347477083455238753662965518737554804674008900574398937242043877919732081651774050357114360732511948023604803467291275740556739459681463158257247803410684043459214103651910012988151490976940594736007208168627165776369511637132627772570755204262114324779289570159213637250779347669210024053925936522339728168920336810753586477154932429140763441190528527043793968516064376343870979923908823384681224124424798845240754683313832083930561248305491875848213935282255004511967260801270907274465782500416301938797571888344275297140497177504580148770200721978269312876130151523060332937162914683849670289618443940745917921808606297587677886817758460794058824870992134597889832924976845152132556681662981400953624047013890864050154955859112695395717776602926718795435744565959025055347009192256366645796523979483394819864524214776602413934482969516044763714264448278350877903413263029104911887924771511163699932047014709013510693562709099876949169146561558555136668806950793994898676323410497536684713271189231015249540948137488797749623891616228039717629931070154780743413348328265833477816666689101029409945248259549586142629245738911623646476101636376450946786053183660266887804382455086097253941821195736995807442958201168980616664482824596705910939316101575503706627605857029099421718382399666270902748105566562659243798874331380508874947214455095751294393250940379392203609363697371323477263067942575555904321935498699520631417495762413932816536030699958396935186009979928984552572373390294849631748124838705163727205573438571970515467922529831109743944303105108394707746247761986938301821152870763409088416928012353274208751446602969081986999240235238772663528196463875228126628820672070734009835637420499388037045935269243558849237790518053525450398676624507551348769616998407101871728460602204942169874332085091914903229634342579170838441459567794729124583402744202124748442814538602757666791339411036680057046568980663616617368103204295714725880446456312071987254551973027374947478939796415180614828604443157035560525058017406729124271603274690743302298214578177668175245624876048050909258496157443403364149423444584706282042529603607887808602665851281586536451290146468188283190566369957741648429866515983290702707721803087443375687965606490816132667647722995312542865414295460750741369766369010651315387450508689018194963218054773148247054217271743396471499251139950327874743503890851472194684269510910533590344304248053583912921221430923651033613576991492437774189190042451332208151300230340567346261813065127757639713413843707155328360866244460079778557574538005535016606178002856180796045648192401935720627901075514736823875082208111569739931995543817870775084108799399297062433836679572667758193893221036670788913770263925637790315395251476453397419992463407706866142355329984596147723124405919933508494533271776064073124580861113429204043591896313497389025563856963229441737132252272945902199872236083823727082160796847807362888078836821281292342865877993365941983500738454824697280273270842602539533888882343142468772496912638615968557224601810160296377846657218901424904343064384088639302521003875968746777793681711384636410254283203620484260784458571382773708516860256161923090448871605276150291412202790584809798869123841178502374561596133807128657296107547278720364971322491800618006876261488784682785074004000254976580162712708256414867927413084718142044053636371584276149369371082392154980435856584991514103304544087202819831366963048848111783023460110666441517788465943482947426794685051794952850920435193202107670378489168354010906105730806385517380687660396269593570013789681200788950871222001316231556069589210167980110883071240837972842927966130920342885415389410189191474289788186066704528548345955400925130514534366177291836458900948694830828998574032845322728374547545578333355460414012137279000290720632623915644483496025816788765196300440392113717112313479549395068329911838988035150703197960446724013008118970193725942231968639251625488600089778709409747174049983323362500209601030346770515501898179918308633377523285692882668482570969672145746156973195339145701489966232818491757704572540124881765946347808844735377412082468671987990163436498472009288132915570720238284741064730760065889697644165591920736606182254627252334477795887206380226057770765663999984312177495886413164710478923504761951087061600268493670168028829117181762471777250319093070280569455499086440797003651374580339344855412600294931319292657566201356006122451534545207961959838697558494231334469054255364466114761121646183408769435660174831909598818656640366984372035156957469109198618778173345125229567242637844175595034634551669286723658459606780218482578940103101506746758056867193122515599916773235822937823814390580645955361512722427249897187415105513366148494165645386657114704188966519160846499164188694656854941689281612434989805561512963884191702770526912905001422391018786964328629653472231554416207140391973148869045280281750308529308736474041714660782431873712425076170088177820831836980570516884315110563733261574964190233054477130080403480620049581082805719501082363056530513004333120232693120352512293425501045254663911658503320665439847725704792539642978323515500565773738390965420035262799149961310297165185871412269588121937535378545046520066939673654720234740108330281899136705219805343993327145167383920371567832696719223522825684880318083438097507268639096643025762808078504615517600344644871135310852811964615057591253734583415295017805966656990190060024771471143141307981452784467798052408541024608585387719776595801941841370410727988277221256544601501919407026636768820681862863194919764292193101373254549102304440100651068070636827779570665839172344825025921603495914543165740971980427035816548466645826105845299111594755141929846567999838403302213726197828591654293392925247304633291192277841371409921971723159121966221414846440722912505283023724691596788555562260917488091644222401796269741425558953087610001928067818213107446411204654172456001965004460929088048318034905569209015520529801650939389785676828780810457281006028209375466966761361279464593914075181458189983045051920391693631303007558078529629423414103202649997980518950029580614452532984435559806060049766651506325739351525266977749910385169530517141459287133783575518208454779246168622364490906154471598723588555575392572960316601583242995196259769125998551427917973711314222032180878886283374395181494288064407989281866586001959017487362467793460169035160655968948418019734876771058860708037482869481652843627829434845264572995592079086615694100989197421706062786461917440421605144156437057571565301344344987341889872505723237096878122655092600287805418168391469152401083283938837410854896627452391880850334984895361412199971662973122345322748499836728870757235252190932664184262872529203699367968468138680028187212851593379731783138707379337508049983460665591346017079477134331671887028943957085776010871645620542919695449822121301622951999884278036167795232081758566013387326568432616096842856190299386232640114596773841265994386224593050580939564360228829962548652725999496050037248162062690355501547482781135813277630891362530836648528787445695640558975698481212359318175846708278276892210651769747152074728405651848481508581396563710030089376441002450662176432271814666432861873515355946098436808507674149893156408827234929205739512881486246250742923790835762905308195891115414136729067255466508352940753475364423699484023192075895933978835269133209938908420979331404006302937800918351155948651990162741358509715613807751793947561385388713032026569569926638233444932284243129549052767119259698077203643902771084619658992795617493399455106634212043730469221918937741658941288905054627446754660213971182050490125911660673851005999632694799763646215415142483736954605884637359984611377024984589420617705842104396908325684734005420646148232361898565620574832802808694441134246278397051520426364275142866530796537884137770950027799324608149538013867715461773406606391935233323830397848141435449244070500835115783227247147274578256623693848899661979676546132904954546756610228089391940705045731079876054417219768453339238077167264922504039029322845024789660301851952447091252560112207640994516207349166869034806318661719654119478062776919095629445947060687752250150389343742067897623933226338676373088636312618495385431681346245697944531086020330996944633441363630084555327618363201145555878778852539308594858992497303372727655823300800385651610554667776169640057111426704687954185196585294662991631007053824911089423622084702753951728992033139489310124378903652428355246507397251717910398881190399065011760507599125420664429270544913835321144163747574460928590860617031464028873080219619283119173411411334541427820585733450800261264916809864476192303080455780613029741627450218346378597758925264934512264401028797414130663213358487256456814751368376095573050681918272072716062621884073255153259351440750401929260621590286378472625548193785469640191438058718535636728906539206795535653613387867303626487287696277428113878529658668778931520458768818066867008677136831667394057190547748817591121119316904833185539643811900343200809390993729656271321128019596153079571330870746445839369004973795232430742452062619080321759309982893680262589084398889150180634039928576088952282591087863276663159599628146361412241258100413991637520928526822214914599100220925067456819444574722354270985335982575190643290034880673523693267261325709934711789729750812653861027518995085486297154726753660359626552269547817593318475860802160844177196204093458093729822843812247228513257504550503707281699768240889266894062658554772008405448831799271434471983175150587804629947602839479373474558248056724481519589379196464529831283473075792642521766554652298297776922162218733621172214873743359462740011911760136746824267486694401286206446869883370648693869120132254133380134893928624401261825418809208359658169382235279707276030735790504654086811081443529350647336769207578179556728813381144870215328458740991470021558824710977924217460243572858638609236889966304485220851466727148454386251689018686963837559715882824294700566272864984511933911458661341750670629768231348508333468180223034268404800124920508365983438222263626864467648145414807608116809962121485764209607647947767204993179508955234256546947536354723894008769329896312017374447541751331165646666508051789205694422600268091605819552499735622473820926272617728799925748251619610714357177555903780016817086745230622524223395076006321816940969842278031198319717500229119393641283763725473456804758951487504444625882173410142264589725028611352149514761149209019108654227961550385347334323783745622402334271010988267370321705750990831859323515544852839421783755919273705159626605661435626976443526201253543732543283383965512419006037884558120193172552156075928962836001698444785287879242740168868962546633595256716759309610208511327445920060645069129796987067814332618028962271138895512794133312965843321779489024419912326206842087543075283489458944379623349027209336728674600127395589629613744331229316787528812939238772605570755609294990783895016414915857199859137411765002664644956937506896473723920675774010904912385410855268034843984722183865559453761855124163722326999413085612915391262417232333115071214883459218181678461986922283769486167596423033648065541084219207161192130450954135484248011346290263935118123896492537932842842448923648337310642883103222204518795970469573045875416452714579774794658000028551359596294478438559700426295794319250653582079568064276336148140557621249813025791973183463965300719643666007440146120970842203411736968472621342528393953642603645086998790842260810191984633283692135938563782267551487506398842010316307469716249973916906823376530929748891442664351414561429621860520191751961975542006514925753578481943532374240995731952553405722576433700578625345253522012111159572181631283145348064993937658206064572843166741695619084334294882088757459614854815596659857385312854194933554804094395251802788524654667006681866304358850104579052060106929737830882786926309435863159072041283137615078285736270612194106533916607929485800142140817199766581965877368200278959407379987364346787018748265140467441841102598905736464468269263049829619882713682381848258426773761362440223883517609254369560050782572615216965574948039908910240321751632594333852992712658941370079307104715398809506400444499722434983914629683800681568337758363009022685927184557075140654154682538461248862073559803553554629412883463060317387434640440784224221899005065885238941824404393320765193464127996347813853231087836642193865703699200774598606469496718742552947537761021437373176349450092865535973208630543210230793106711813918796178716952458672243252128663284092167666773021806094862922217070097989906243611836172738089484579932388481948644495676391247619668129298672395299810029234903761035965941989262495538635042417046319322902320891864969285400912362444639809851995982803166791132400560280706371576766050111991094843015904219701631933834718858420804805362033523324327864431169912407703134208287347509111435583775592553401453280275071478310039500531453953609695364231581413989279689809401209253671761012622200665014858234075994888793521925131516453458178786540851590923384985926960641270469045919985234556406691101248411929890716442288960146636867275400396217277559832200474458579202045909035654772215467889292693090112777026680576554996997301905854679055753541310313480547784175066391720192542507694278848390622478637958678214172226139851402274614831933396401004582968668561631315340308689383147509875397337048995877908367505268466975121394291703672551648051862039761030390785919960741054767335422324251215767151154935326234258132912668064973536788625459283073302500928210415748224626168437089827758366833701693802189973069074182476111081248123265225594847658939619970024042678626381920001355016024725746056165066193349135352654876355656270263711902827661315613999941988861743235989835282132562223400311288235430249380360151643462659904691268152439620152479675829198656753613882082921472647162821211517074310949127684991664877784412417529991899607373201234645371438488418088602300392740884780570812399398985585869363095456828618875536668077019611147221110546655897763566442685227193079709994449267192467190706954582779641635942295159151970451065622591222565617030008512387370246254012343988552599344758693643954122655427681480035893603662646716608604701974420125387784981331215330425531269116069015472189363911246808215382745973293082017479270546924428553129709752956388624485998820421730333350445751829206240296938448843327005542365573379799845156577209496237925002699039240515381767186360418940233526188305632961728188836767220053397019440244345771112659753224782162387550184106745814353656210472907371615221769407831483208207520165576175587325202890999213105409427325542942781447753111208543151994040154746620390937898338444794970605252841120127885158991458974946003964506575526252391036677976478333025915484233650738371595449181124036858582945268626167111755141218803900153842480132717719908761308055545315021154243131706468891360498346107551986985813730016169732544575341012525259710578553115217184429341528464122547819392316084087957868137422386824518864874604227542845171938993589498638805559581397930046152100436145175174128314841212104485392755670719789870856428116552348885488027287635778612652711098730644596448553387004727050160509816279581794218886649318373363258139373646390538621260266990450210293935116611640264664466711427909451576488184847482461846218619973098610310224503397832185374832459659677446769061783326507235986619740378977117328419885699662123983363012265321196358348746160354177329195158835735031362511384531650098632238943582726855809985142740556448525893924400136194247089593738025176538275018565905697343128415613760762733871088642626855513978170047348457363170263035304243459265733304379696044673898850870531307743978335671444832915402541913597599579742635622543307057332847600681234165978440287265712089436904705130393284315872492168360847154337350282961308060850651331303777155958277742099849201432526335505680751396260402030988378144977958182260957879507678218083724222092130340141665082183355397370770893993415146079535804469859348212015200635678896657390965796492901392793590866825369065149083531304051987554999500715547416996839299333133523481564232825887130609664092168711143863380808867838528780711916277312632510831578971625716588541534768338196847969566555902320657666704644065315263264382614661237929551063546477589175726219883861977548393009510010783725732776406118660178483955938077188277358917766678067004586882857353514674152853744843828715296978793835131710659561071532481243031323758132784289885450901699881355219295163414790254437005688896993789671325158260079207005060765074713030862185602861816384429364730571220030257762024400977788910560400322749072005672931519373161779517825661461913305156240334651122923796150461157808685109942223946934516466353723073388101169955963644581266163497221661109239351522057089268600635488157597419525590112169917056687654941999881344124717847215136698664222546386753964863741884745364922141605378096499641272297192047148450864686122252258742314458034143956914048731895221830114678269763148613898444971075735706564518499441919384411744189962018742204389866857268651415213732053161654574431374259529358147547154887974653921903449580946829420513574104836146207748366703090306886214300816129823611386975188752520615116202397783469281572024153498703577967193746295285338032419059274277314693228866408078399486433123693839883530448180988766238532520610774546945275484245637975996502483591519129428598009848067249667293698051151676734568812271758938781523719401884693174773419964518418101684552038479412019594476219285955317204411653888514281199097966704941411374331059387841152381745684331584478696134301117308769726276995477576672343133014745929128250840687243610514087775802066615862397621424251974365911648355258655937595899967115544931662606314997240487469812812192670281751640582343289132045186628343448405115684871779305270643239641414507736596029246006281255748979907114725126680177947883144571234675636485807288146135080277166106707093123066867955931156293911665270726004607414289580545051814785813733681250622649696428857010844350833528523722987441338935136762711799757453932472652700979853775165127346913542619572342305897743459983861524805444170424460807231855060059190906573848112724795713617618544944683242595027949517069480176989202889668356792347863145453242388770748877753415622759251535030387550873206601275195827770316632947937464725669405066518097124076291667784393500046859358840921631795736359360445694614029898977692304814592357282768289202074591699664280539905188825176060110067044884376445102664639598648918647516198536069509644802778840418881514146943771194992879238382488197679245178540227109645975532081163246959284350848201615898488027471889672850278968187210959194820279052150045060234725128753279554217621581348816428888108520518168954306485144100403497077907976201268363318632752334496318714634326488936588527038414688976546440667546015627690744997615909365562923488766544419493165343027647882258318702123815877594755956663909700743927125803523329906703716379393049505911600418446163290495450423189005129931239791145245098106299898188295907277789653673917244461768460146620219902114774970165331635168555921519356986828820210545165787781259989058951069600902669461330342387631618696378766130392467639034625326610518893408130985019677954800010932238640558418676774685850412450302588809448191750476219564302778692711879711114712560077577655917468340879672599206245933185343687965459132443280653008899951313525015112621071642147454359944537618113354922986600756536693537911615009008480335999656681163620730872481464303038062593216124763836711925350360911927133940028335014777994678077072648309257735920623594194966614848344035157870956263713630063236639760520150066475925845107523321447912687558090507836471800354905378586701581636844190413491311078069587294502714698940254447946173479820246797799599846568046701003535418720484226494415527984085214422171327860045112950902714819760318010944665236426627939879585249212046666496308672619322363928033045482812784547686195868892369449833863132562915469594668360076976527006432021905749835524565834598345581557719307445752650720284611279962535299528861527339153445764908167929867341743647601806155711159355624801364356307712814382729417166669293488346237526522947576257150476048076310119527058204240748315321254347846761768485511622901830460579880816849413558110298315054858188844265056790559440529243861131849175764901594669485508935651501914050667975036457652476818962227309679303536750654451826184671444918629586840222411596456445331025943502088748240492074968508529488443137393131923628354887873503683332354024796715864166489618729351967255056245729415047959166749544367513607525991469203935787555353477296125987827174256114812316208753790354627027160129922998778671388238743058115815306483635963587288222562842719784308021034161974891578641655771864507894586183722858858637957148773617040067816031993361170451443786834227851211843060392761572841596235082559669483635221144924507906220687650072370041144649273196243878466258585470310854867798500126708972582343724651790662621017293955492066645548230429023459408971613521318240421888992124922316620032068447564633812090718119717221750127459301447615221583602506664765437146415322433310628331848816715354397790877638342781013497490718717105362350258995131711324367161880610226579891174408969573521961339399626140537996299947167340046572695632358465177329701418987570795075528510537354799047678880813042557498904793799309691043068761742892012195776469729982102252216570786212734466084832054857836095884069143130273054698949903175310558652539592977445656720843011686246217605010134022223695130754818515570956586348023038089335502581580593233760650113775947489038948792967215409326896237697596565381814968055648377418983071715375219498264484539150437540489138811493013921252589389437366474824549675971337742277536540485908363097530125346774354512232593374127924482758141083342923993443341542922770671568370101522273422068746090952097053390417128563244309250275792946063836701299000235952171705356180696636389940703928959103743058912986605022243176993502740043275765087652833233530219651661494620872961225943032806253439342535044740145119510506681269081286123056753423993534705441109738242864896485867373640738374724512705151886899377924243563028857866277957373507118496609350011330530262102164272489705099249311495063597158281712192736597633494030439616110503421628961869812216997988673711379265501734054283537803881501377077583569397072695635764498404907662681934418553763748527964395369357991188158878968677903660569670979925521540419851730183701620470848736951667772501687209981950790818523150467698544525786500518826084688516667380720045562291354952518368427513658699755478195662672654604264737918004373814798265409773061966976829440738865770179725127078947860572296897572348797958920554133869627033543646625514647639445283219117369968154498290457625957369349881369111873341768669374596493021164765417627851602525286320383598234818517837216605417429586672175656199793345784400070774507811685517456375321020686064071022820553516754591405878595606647764365834519020404890629586016580320141435835745743554908903486130618803380578274068606777100760576353698900626212426222929625796774238493939456825776522513777110518628898132424107491134987184547019742402818560410008245019709132504146482005104313951021942847003135642613714594670090909524356886117830148656661417909639972034715800626434333827936550281332673380977270622499224427531510171820465246372216989993489997400332987957610903496620281848883084194363933598544753501191221958071901040059576889960288813107310950323565901000380330498952848305260366587927254177734318139296198973573659839113149697160161093371950924325036199239476826956940069564775024165781926214183098324099175662623723715966852123776980726689323561890810529386737005994753189353861475410717250075203479587005924711092581120026660536816382171078110065815777822854792572344849492877794377600492348364318956873853456289498259471724989687342817973785685993272418980186613116743253139771248409712246629567239586306406221757221976586667942284628360813057079327451067733290681642343172326171903526886788534872471330651372385997371404064966275986828970113766813176932149325100176111489935768276197050226912045194009621823768726161957669720970261119469675511347495630641232508444794051675161678085781048662336330066916928587460621731815759500367683947248445419977249071027770248515604638373795511576318839369563914608165941855532222400918245204719552655331088294077645272233829461174642547803227196928414394760138081042894673860191040644553887846272411815428519993807470734837774328577535979044988157200734221368386982908549177562592503840724380147050331003557470367434121549143986183384474075221604094252548668482240094395327242259568335929118129452100924512247271884289763994188473375126858700662972915615235271421448083842041816921822828627837784489107004657313202583567619638328828133772191404277273908326417354223994495902187256584690773389660838750773115596271738462304771219586007201501999141723803887564734309170995903010786820014188474061642393288746423060717381135225918527488513118426287548187430482420939423568242062981123817767211128530199565840510614730033242323639503067328502505775152131686081410862927539575470791492367783703943842699574238877295999318220450095311493687614068490448182258174953620978632637191220827011007493617756704066808456630516223266591134520079355462255731095263461404536801150075973234710518121582728657367219434371186845273777217085224526595918509185716272240064593060513138043632433278576769758446237617734840905664224754674708057721593088713704912254105287840324016357561371209696266257830549055423494054575212570013063865068668843653472496334164971168626197477923520152072002319074776899724359050209593149269172919473130528329328051841379940368550911952240069972780793289466638694031338261956855582850836421798605509757201425143756482945859029042898522169618711024246015987279572976558991304777464975276517758053201171920285302660789831530217972156984532827465688423217388827709369855648507083717611814445387697606019527904143201048110847879192918716003665357375963032752644262208851279351775852587144135895658642784768746014682296527939707520716572507337711329768305712531751084743254815200312640647975137500899145683805343301945422879996260142023979975741980513690534599265800301583380420153254154589286405132898699842549175947241931226629890994535174243471725114201634584520471528932623005044976904927292758846984872446931432034455349325194963289929678872223384262275627782077164572364510406074742734904080467773143503809240519074951312852483381914257888466340983909230618059754104585516430844871178720582287843478216481486708454852358983345250098703019087974879508684691317033700904987992634834275452477707016035376656648150033284763126942610044631155997075669721243239224470542982359479207215855391276748340955250523756287659978085956299434809512278455105291942915146407033253985850383282600822624717751748851070531235755540426447502032858255871545660274472828926322158349276604001444850457713553830639430915225640550308776748538978803791687530723943694062048465265376565236986869718459333478268057457508098768713976254231117246761719869805806894074103739438914996734482448041002703158454941884875423569885140744087647748416249503046276395953838607593832028595909116211995911982885647482382245895888002997778738489702095021920722889721475750736553068206876723320887964391783795536186256076364685597315393968468477527051601361580436525651523839313440495098186804225335688425779735215613317714462871677197371423882813147953622209070955982381970912154039113348476711215382922781687153206503321197691398860192989565553062555945010797302622787677052421516636587835856969467002991063716827842372550066918650012584226189853699921809819812706387517798333336680251887726639216780649366386776625465354616927850213743393396180291976782127074045760093435176200765147075376438467150881145107299079690510213779703037258993524551426161032152562445306842881502202509210091425000842607518910288879578820597535505962739026724948811669434776729418790014780089216502212476939206953278620269525540546093140191686540445527159124258489981619578158298294735953612190101493372657220789573628309606683859872659540966605411486639592281661699556730205378136591721264629727803985864202713928087387451495977567353660539054788370086231066906259935691844712441628223736095136130032789229354093537464261002770229507845857648503985796197386920050117580973343517976008145141688951559742063064736732130013985277154592101274093633562027483523102593965174335784885072290998974221476923387427499329507909691704856404539739128675288468542661511199357904695414410848086467439542066507056681457100178888718251365584321021751220997455489488447019449836372150990320881898658300922539143466267154977728800961306696239384366198208640438563324932909978684872078240789936816680660666522921158491304059978613405870563336996152232690570360036920262085879194604964457083218807336789314296975563329212550955441095311901026065887088683814894838658020938624536944410570951006069202698616004414748807871662880219771254315047365112660884611415729647207720059768263980857343075920620413969863455146990262509416796006762218341875177499339287582979258854180277156620715790983890347457167526888292553588942700522361235811552493836354253678608500016362363784314720057694501547266501815803888677625557469075966458756528007724602868152837560740987481339603546127915965384254281354520292044240604364161588200331790906637660612860399843806848333234639977614327665438267110680683599613299515101972687127165461011133853537358895935172733993234361314094791927578995189455582488110346871944305352780731016428632825630009775820140248066051009404124612929803902797547988228237466498431243749753279118735874584986174859755174023749084842147053314964733204224692336829115038395348957802431037573992104506060563659342311524609112138776640038471187658834000432860926780639440100154028524777755175185709973525702919501131632752674093144192082114749839305984401837549254330293908811404350659944460633275740231207544754045167337351651800308958574625442171293817319999237402590345619736533758181153478743758087849324413775058982399635263861043375725209353138759981276121494988299035306211492767232724528088767042398969527606562026047985589278469361040208550987964392365145950458818163564577387557173698273984982198572677492680256628663273685858876871969783487897228535912817212322427363055555298074189077550618629467280998297199809784438603423337617883644200158888871825309300338190954483479150060746007219717998932720393387477662181053354717894825211616879019839153116992574241589517343353306758956064080977735384985701476665427774063744474612236884236610568517009251307177227222008702670806244449395412615505987796174922937583891175077634243087180018358675767832640030023818269559907849829921167273511272208705440378776794914839041011062707919896444942931692239815246443067903616424276246158683304716368614307451052794601146554072891344033790073630843194702270422218259675509445550731670861177067434700863896688407695586171263585498148440713667974826551956502837306428876606861489958974106982767207063638707369767287202576907154951992752755776447002639252648442034071158648257228259036474590073181215087654363764815159909709134200169940756931765931947953400997429395980005337433508307675111955243653077679766429018696371248582442827598163050721812974517716722978815918291617935217173980700996687893390173788239224808994929115156957740405692384996269964560153984732065071986297630028032053632828457602496991575519401375853003639066620398333373647069080727706240005942103750027991779220317690342198027445220110992885946438888939837277292086247480021339443137839789266023264947240488259571510167075681603454160060021441524508039125930207524271825477515667680453408847925762259960300855392461965337334633586850056250350647495666763118729655318172124200005486187907161920430820414444636536047009152498688178391163294907828051184379700955655289689949764343582914407470730351891111630135886852462249923460567014811926418745086822481528796417127674088521812566820724332494869161303722002498093140255867123862461266187994582816903290441324937647184450868325707022741624774673060504735391628413532229764003333137129915471704325745152833768366557773309938286585065693247067006259206572589954323463729657081072112956251752403279790450104549613388565030489226464380508578936567044712331249840468739942607973008406240075361976597897560398206772356721162920193836977412356819873819186404102932626315766483929500402624716399497314265040695239780293543540014646061372817657514060556659381680990014859889268987555336587868901247216053421251299865455996831984739635255926611462442038599289242175884744334797616939776582046176591753878405663216647656360846623967298949604406803658319195095360419433254015813110278904056152652342314750831921193504522890767396529366778545385887679251872607234471177397159779174809279353625495618208202095000909401771987723974116395644543885412237455968092458076170488160085639634412125337933381640955647315210134105115674634500135790398568320651173687982697168009953636458682426878144280479156560423087634389987384494687557503555710117671963912526385020404021102726747691973409336940739260587842598226174729648681054527537891632576040944474970778583410461614251878306650071214622997746517948302055419582702237304252589960169771451127221886926702376115194811483146111017044337965176352320654938593951436516990319833454900771451661186209495803654919978839550129978801600358442847964357440274526627694927413315989649154940716353179349349515148419915507698932490050794656534834941791873492972787479349950626924039172292594797709247518648263448929172961528432058717453908907694204925472448137557286200443282786700505893338523951920521821669006844595719401676167429644176909316331880913369038633060157377774619410163357615592484088391045265090266954562095439406442583493945268173731321337764510529480678274291671212239037931969543752397335116099304959470247136272140882774214306557006122436434081622977953583840240496210890546584706283655256939064568692585071739621633776020479539738202745427679615198622183196258089300419431980705610815666086712765178256135314793098407817797798263138869243022666249400593633729111418655209340515754402790298139106541168048042912105185704151945908927040618999638480364985647260482482552145170406913010613996736017608377300681536468805446665081592229214509707831491576628650978601712291459755429174672329171623853450965575105393732332581411099631438101579456319356734656565153645606024544874744309513150939868032399062804483402114036369920531438533683076581208671581274508364342270882558915856037977014877723218485024804331093827056585850823814415025234158717308745662044718929343146167196798913277818811903731119484503334697555891813029503336613968826112014598555909826532365668991188519274428690475647621679012109942451980399443487001608601794700399248328346418261116779777625711915429272375745016926125757507671348533616446492817578445432287918862689102443207223949522258394645759671699721215946994495730332784473932492177029068588258688206392796728363708441945201113871544710252222043567265012952435078497035718705263772440562659293952334110668304647964058663750015184152976207726210498597987291120478260006179444583433269273454718639570818296163468712107139343159600264212651534591472410213731070303790979124470554241416278332348047849554018401772667006389404757354497424264852559484994742417710608440111009067032003292570741775132684170377780923475858035338793149384217814944152311268922463477484521438986043063305638963427566079255337516804439972781132480665300104953540786983103457490814423426279423211562050919067704889540898508311200384255596520353100743819521175146282280187878883292088466547191860119607338877835670369132820781392161275328398306183317502019123498265441694647565594976696493791876571720396069978193787946269238230100520220428238264427410864493636801471242773953869580984918383764722040072659150408121954990637085973922554801951364863673649407200563530064827988726745210200195836858834979301112904745035521710651887134089062345116549782342346502521159270092374410150249107363772847484899949708557600371404305437638742690007065946714319686992836800337057311750186845325817502010885790835986006329864822795555204023524175060184894532801001557354770051093610959062137430310673749859225829787400124996006174590504732016830722217103562687647325188288469240289703613560204022957198493664821471706576621151493141559623544633784248687054088498223613070464682714365555361385996976593592492386439160583145383894858202207993164372279966157825569207013159352799753877280633103011473511708143151258696253589410320698165526287538635488057210807784195662397100792791335271194004528107539509880938572033277876937348892755126539425955416656708169215776210323532023757562031362549426562186018375684872357448273449013772794809574261370194187685305002393361296186967805065847595220550797378427825120001362309775244043975336711801603818698848308224157218406783090930718914051260731903897700846859759935477949542907545727736630915242753842640240463706595488763215821543743755210027639811498128887069027347441522448526533618460843560809922733131461471910053590605307239003395986775981678029001440030740482894720172530126622796241754320123199537700587332244068200323986424387164708237829259814256871878968595030235544249377516506764756444313546944436580995456471507973130192543516113518676673693819766563293590272265867082927919423902779359830226635010393189885115890747221452253213677870839898132689691477052278120834039736689931530804554079129591011988550469407295588510045710918337496790864939638478409420780451796334917730425551962496475456769955905668645311898175447490915649714762999782337238779221850721981463407732091335491275768595730543706550794279469688408035680562470924342203973313994305181869160408032826450639322305493917072756512198202898407322436388845515594210500537738182219505741892033770294928772357565074020308453500549349322000915108967352775057558705108058907076970397848779351254564767210392017681909279538834367668440025803570441711375341657876993405752989656787421225896074983280922797397817825544537490054194126306376133405065901369993396409121014579392128874564515259697461210992742912692504904107583255133712593599006025432945981984630564258690164789686261207000453438120560972020115888118663120753285943182238086314779329341726829569000113902976317049526357008480142347659934539077138463974780838949255791011717814052449803960659292370622053069572188902566815917273032724096914604935941669570506899532603301446386787213731768931495018898563979457183977603307626748423231615065855780612274788257185309657890211983920502253432745654322587360551957719321154293104642433502211062537193058763316847028216836280432773298263105452025045744907140942117741634849795510675123152321285975967771205661064337638299653374656295564022804518659213948608613832469566463651439202636739962452254244428263829923874465034249043272146468959022254731604206065793110322535329409342857281076755499678022455965561197287678509736505504761093180514894822771421121761368942198907396466938153259828188987154688857414271724168935772109960942799947248084834059568884835942439517941352757875203604257518543833384459350429737055123100538489942393666132707212378493511995257977845984817349683394828922213475248445819436744230004246278869963265450713127381309481622488062710215067824949490213911890704796249112045466997104869078945397384177529710188639930142124887929232765737067702647238469489257009616373263719135462473108395417543434254475698610403071432752915670305765476806738983346338312157872369837484885742411787362157896988222254422613404164742064258793445027436626864739818093253038733025889951470731789367257390647645994140328810656240177460682324180128695852997116348883177043384949826125377994053715304204591981596233136827287586873388642038307879973296503996549209144701054364814281568507153214928621124764421145544467268846767935360834752000858386244509559629162169558610126836048494554617562679412664745209521677848890556228899488761250256950047559146958703459922261903547677303163072154758842600785999576682765292698175743235131512892109150925937606799953951224077888845823565069752583982029315138072525199127766106873992444252337093692793826944849281395216270622165510855659985343342469521033505701206102396680937877929301346995926036505881947774268360897017721217392103256688235338036527733508864936568596061333692784395619503632162708733084060587641544622161115506741052589103628021295363111184590772237880122724150043914861720799782880809105116391710665993628627254135678205231581350846206460675637244539754680011120835897142662412375301321634007660674873777222026173383700972372563039258367323248207578889802025690711074298887861521829553160195165042191572942333794310203213299934619292228029939188028078174299854265521414045008397703600678264894676197987013486869643841491025789077855028082521764607923373212817295012742823639858952701624871035777097499923662903213928292595912029399512637458793256430719937126878291405064357141079140249671629287865422891840255763876516450304018889465616436633664623019836717216170539795739409269801044114459145781871073968467832245516329136088396543101279237295020692327591830043871637124894507753233194878792354294981628559490158755038341416507308455526726874399417329122034078327489187845428728787965796012384323505316139514588018569564734562751805641114596290980659441909722102103164632822404388570333164695652751905561713079002362056039711234987807652258173970005239771456368591555982868911319709555514826888898607183622614585312787931542991764088010753004076590828192970660474519869200777917057450192127769504809930231195731896137126602256156291244653937331474641203718909099505242979623712429549921851861167199236712320303390547885805555307158110643082399337684314087681294931837359690772809213412501043714561319626061538223107547003633197527704426539426027753133640418499065334731433777471672365369912128655012784887063315268552598030881835119971018353408025680361576894381890062694747257000352785186785772636863444310837583978321398385336232587720018278565560224636360785707446444736692955139492294268311071867790628005432618085041710533940612899313752778696388229253873380350478978411014183151312158775915402243346858306892604973412662724668768109407912630057364548756583852595621256152534822040366498140794343524720591846581813331065224415904980577274707613634034829486249950385609438406528148523261914878899522256371170557363114213851707218442168986432263158200666949222951055327380216906815034507470168883626552296160632416225209939398140282649466922857174445899865331007700235847731811681071659349218843553870757904650077580367810530320164867529338959487750471812261336828175528168616397804416096433329412724773081016525080541182482138074264800168398880370818436331364993420235533037290382112346814146949902370202614104769273560130705843915968847925190718696326752184664598107640354012777117176874020091338139121558507176827559150518790472234573443666308770062006668372118291052422162710554178117481180938962489351909271819854696474117793895562517960644375548810956652421402853928596194438025154587275776313515927079924527958703347805040753920384307503169416984686466305302719711781983509672713375434434367198479321325020869567065920832104256778954823338456682977347018089595441575722456755828853360095164833788828926125605565059351675833552671307840529381283412154863702839947349865859484487148049723813600499102929759761460147269726396993359453418969759352098091440332845032930443239627671916870670047266816958823222543779660388303130269898334357432885889511336337704389907514870680399121232550193840230125361224074270252928673904769899525150501258391988247540679439496479962702016681419065403557578422136952444184979191845961943525936055586646075597622968440391860746873002876157980128056852994260936136764598422292911849558261910942765445657263996249201442512034578283293424943588898014695379089797678285384478524539135753640079160282504785849595259143865665126639520485899537307244336586615501904545558341084354030277065670587854082153893958806369466941837550124202358119007247119555297195630381953610044460906056126878866536930004972626710213804957122421095396947749470604037191407648417275520463999501970756507169102897649178246710277780800631316339502936181631837241949585648053261910439696388082267747660080705788922505848283672039993569188638988004290943170555357049032204517696894932382143905113967627778962785841161329522821273817082997634565747067714829620342385395355603489067917996235017462374372317035739105670797669736072641180239415888670418914195216424325083719963316002231586299628896689625346288901388270263118055062601895465402778055241246469501346590151630187883123916496683107964966712018618090038107527852129363412230568995026359534726059275228325497154950284560239568704242329120895293508293104059027745691134810520586234503219855417562167222605340309476828094388210848114773476681012258674237972908028920681734951594393100954499807610814247080945129809003345937001823866450756785762112906895628463661842668430847772188243508907873289853084847697108442532893200332014885440549789170200961328841764845966124813867579186646920827886207864753883058313751285604415708164718202893843693757758439400918864789746513794760941706404312708528738797456806032874997902807831704496848330701257473740672110602739316092133681016562546974550222557087892678606521677126384935622973761624282657690921187630537385630086674092592272942928775127196134726368118168015844159894328038456116031472238784790551568808584824258537033898531271698321090105528475610154606052472721976905927434654025205778227374081162425066841905404600820318415164225302314449743773575164382009636337595606864548257830554318559244092031455817789683243957844016258230976017841627054598658143655301254619543289774152226673817402268445798900264332743874273680177716514038805236207432365335041152848108045505515315246006049622711721331960354141338648805125080856661377140231044952677349334540146155920207200880877837182189198102593482100680175106450299837346184766638792618322036620098681518782302205972544247417346217723946479213290233752375644889483678698326054171157230864747498751135678691004534724691708976690795335229123455193222503640878849345514943529912842979699965612090422569608754201794460204629822180892604247484876512640703239273375059585706407796758419397322712117516872413844108116763485426924558711083173859132140770746620670562599208230223697652098538018507454429804860298026073820550336210956470255134169442291407560349417430194060427985945951819230139962122991538808415129417817327234353719508635007065282389823018819435746071604910310548014001367556932356351375563660780523477470129973990075715968254981810065403410009061810983866423393269943370006698540633400200428835639782565597938040314734298964217229992877165025059457606184502481110415517879851798748571336652929018518033900629447486759177638435769590777354348768672287519150682645236812394060657853451812233332490107211484035222879745879380582867626470943125681640559688610639775770870595592722248386134679240275850020343799562272924226171143682722892388392977808542299525528321868892595251977462468763906755723825985500382852291463057625695236785352052880924144481813842285058508751472200914685807852308842841034163674841249575465686139244188528678737760194199969493614601799767180399495178280611972009888081656280298021144551239006267001534619489929997905042920885852639010171719453917270920776679720357844082170699872918145102982146706805801231303240660165314189894518131746448780922549627478315371245376608283746960675633075946536964823939783835867381835286241622241690234211730293343595239474741712892606460725967184632260143708389675187251327160839959200042256535683113626894088285294427297326082640524146103389855263976593197775665494030915186989813801536136096101087579602752028904143271338908626866509909861576538292043459068714765013491010731587990777482920353722863917910925011962269847583401386262784843226804933935911455229657963554086684156807845460740400027799288918242421749902532320376012845372039827891156962890718711534922163125764395087088298624445013747208262358720189557675049621660252934056659060229995060084890165543496034167374486589373615136528277674113100915984998384288640756287150821651995883256550711155532976706326215662567404341724760579182863912399334215912958089714994822551373608471613753747264573623007012961600835232056565226652196495992348353671915894928476932850891353274374499119025209875365059344218316700627634330230791802049820150562825037055952857968687022959909308575054951870484204344790010413393291425783110130527673221844512696945320238902517118185665363494161114423325049018054318872007529981286513460012215505609039856125216091821703213452231900756971499388318556004340170538785485461734310348992634851960513536293148707217787250985647360754557196016916122407367148945576325750123503112170147429111550222403441573746272127316974272344964320378112439907168029774684926856056905160945942763484385070510881764436522069639732722306034825245686050786439392206341538963081056912434750735045046656164830146203365995456763065701974032626675668651167867382754073939359787930040295504289278535672826145669852145341750671986555383530439362657297563922901810519168422825358585253469026021791358039020279461540609630924388686120322352703285327781768498800238302215860115980871001186390776669264419695748426593295401699757967246404207171677857994821016533781959655072221017291114533641530316813944884148264401708786343528537439146692210450106877337974106261079377979631019249444382667914590067449764982224232220125806126883317629975886510327209916312356982918331045273120264503111738483872387679836909155505742336941223807158354553025246425840722820093716090258895770702016992751360261946380043801315084143675458165363681077667823757883139175643557882168406536326826293683138146067836509459076933714624669354899126997600670775821824522025536210965801716932284937162667839427657036132396897478901285101493306552891623291103844422403200616359445613001107535085061451317554250429771922784498783115346219015944996033530080617633862538100054733102610550275658117303067341718591486514162776935430129050138183513927645761757172426526745096349593994182969198684333999738641818041065120334048075525931416310894210488464060844616637393576428614266536803186430572900911310519739387565733248310248919851366924397437113525500746502207055421837117513823297692869141963123016319933988839667098600635718107389467101483817007721231616739774717033288585320249875206901645231788146180307098631739755233687333645949291220410424084143341831758667915347210867647882473470650998809012435789788628694108018716031075351955485073436426948852674338202351177235061953123677571273478019419400662692326373450910869398169722835550647823046066187186896983974509792494307264034532911250013002510740212977270099021937549172922106736304791988028383960825409427600246939613982411275483292221596619080231263040610985570606532539472781923028130331880728685933484047579558942827804348089535881860873385867730862011549830282719642678122188213028634032542729962863976379945219531202265992185934868759322904237898684426939895539520714360313264866976782674125987720854852308962099646910687447016425254962777425263356326336331183595691289810849110227685429561403425019256603389842463351003678264546399809337250662955126838656426988777245183639393673641997600145400723899674736491721774366410199472296062107691991747422085469628509037706976984004261471299784002123000771002765738894699377409075903343759970398967800939867550665663509349009538570074301918411945854924654267120601900106128113164455473820530004936878391346195114329618578968864992739144483122506083269783471065551376234233563157995439809056019855893051000761582851418178345966431950665449893943890019096088538586014473940130855576280233401475621488633128461719169523003542136296029554561221828488327341725368519345771273203399939542116099323808397360653416928012143674212372505274143484634744804660598046799419182967356373866674138782029429648655082029526329371202677276438912344052345198450550414081770669842402313979658274782431132270368567373682906609743270244660193728839064979210413949450048606354326335227173879149897606920957520604996959767409492887424840738506176887119640586283208842047108486394242868762897827077843108193011390773261214041253287574978353069855848224926495897762255922844867592839271930761368650481233597136199345987360646364041089518379800345106235078483911265462861706265114823485916910564724815804500994364785281802420292984441601038844846792015005404081741746403715073555265263487743708928660042683738130770682116183179726381894020946542967255113171681056308177237025593158457271742907686622980592800730637783165784273865554085698679980352725097842579984448437187520207569399569190033446096745654159211180945894138518873923631347144475074150534297198245323201367512198719338340740737892790680079748665824050925236610693885573479276767273856613977234891085857821894285718115597497425103862438097298231737784462412527778310578624277315193603068836940178265891662630117000918284155447395623387053445813339721038846626301108149201447997987449705779988185794737919827967667029508355105814222679242518330563617358901778507890657969814526587881276513021581092903538990440233036028592758589710230809482955731844851711660238392167771135630594277258365514385105633487303305696903401354719060623739634606009200304156620019426180026895373018108667859560600462650674573116862356384732765220093694108535905201979155300789396580566271003299387938299944736861165930821102905809813414649029080846804338928475927213576021940382065814747722889858894652675168532947921851793984517120741586095429580631358342713435296928421347442715418543349569097536147167597766791670729027084812103226548520123999814879650456134122884926687529257118063963237592910943155385550020228331340134520561713921911000823845791007066729868186747040535400962529797766922722944972373343217509083550639969331259893857969924623803006795636690636926504902962403623660059578948440593302646665689935926709175528364166787961177347399033348241035241093288219850613073750558211601152974879001685231557768054719449385615839023273250726332230573926729137755834075564737063231775997421625122663707199961723309103226087427787497102640834130671169400550406765433063245974722890252170460594459993524961632207787151439775056552973647478163216282323926311791624279249212156276672429618840924047748508171872838882778484606799330921384732659040328155272582571295160478326086503378658771006214343746414088915397112930883494978239591051624450455654424764168089730203804831217871393040398848551920552902885601580422861689082928891702188226326302142778302397185649629677529193246654268724868307538290405305428293669932684013438510549311790414337743514611002278261687343912651938572637479212705718718710376762472758170589865713028114976162781722549557714378294259945664409391430118771353387689557636913870675647926372963181290606258412143910973429615186913622449145780218369627041618298560482190743160002402060805298026845258027415799519678331263992589408025419741995607573440836564231710157301526129966112657720680708806257687506735016124305284705432308882390924841678238781185712322908256715289388647003452392121704342607716985590233292232969400770082544383306549437945563454559481756017597736550655215621009296821616826011130002041146847822971469142472581098813323579472716187134502024327906164188773351663188612926031255646671313453074894363034854170394253586664518663168213132067838732387947273492391243732197801414727085593836411713264426177416032201953860143232594911573806705597371462954326188381419670565622754342440444732232616072768577108064849195074039537501689357173688962609539962898797341361512728880874974718256642214181566845450789407510368968195196578802814396291865322158157818796628560056123605572508212027219944668194960677537332686039073772661066655157847526295888847844309226467695312644164284406833971888645595262754743279761508052746669711282022195140103623552338613435262896714740542684729126228851417187335163778008879985483551488395242013732336532531459296391370333429029256290440768460519057994291461586797453824833136951994333012166110376111087105960921793783705062067472448109071052629320863398161532420683783639719302955663638711397917288224962940350273624854218171516743592815049256203826560987801669245259430092056369485016955904533327249878060443766748887235595354658286940251644808446855035608510239691211335719397828744261478311233558531005642395249843150950844935708250269059852790262381619665541706813988997153696976866491639515895084119419464652302260211771256947725826874613484067513190310921157927484512611925745622607323065916828995434846377305467638716183635983706593896749920563502776180492795879738906411144238874822890857583880501943593093999231163883717958987532747153830143034698977548441969234615155858470668835590947270557588789530102507154312122034596544092027805076199537166358995091014545994832825944067937560062771339861985662541786182370917457049342240124225669132819404549692594612425567763574650870840908908093138198844951236059023158991764685605770662926354860573730404488879594194538303036352405172718696320408574829883581150882308082738483929339579583014816225691309261975339733105892667355573212767850085780189001134121574147157349903366755619770793271959181124781351370084885719073765863370847240964924484007630226333887267605563151054703074069411815926907477458163187406976021652513813680838866299237779082163928582894454423386454474870490561397543824085246851442472855755420523468840544742117931930218944224985235971504229852333935541124282180560153050938062760190085634655878960422803522539898801023317140711462701629870456378916320075573048416632020849749953809163451856490354484925553384296686678180650903795053123539638816109350235491952647310650081303645441867742118593197577560112258656786053767966515662517218627651744328452396424762453792005090808771308295063076849675157979782127537750696171514598128141297136097919795167465372803208736241174771388629459059978366987625902680007822436974511792828024701005937611466322700331619128493914134089937582617108473235072047627622345686977735497553344166070445452978350224767320402934939019485018227529911865440649554383804244474284747375651137040751503396605657746078016068535416367300882396214762491682965796595660342634470652776787877649683986244200181748483944589517073362384523861572149576186177812713615305900419198677910253435117127712719533881319365886022041155343736271434360786319807681401910796634360718440880242234293419038427314476307306077003709845452747047917455988644065477281494778866635979834098891746752875491581399487836102236472103920669698255727415691002046541948221214501755169829516495627273211812999170824730736538054928531839411930262944527584236726461435102665321270193966157022709223861350431727853137615458748426222275398278873551708486000952699206276227414995546287524130384887441854554696202097104819944262210461237252283392569858682684433702258748043647534532966042914813603382362302257681719648519007022129896517351673627312018102479171443247020270527238408252892101590077041736292232380971746582676556283663262671553734310013456838485550513987296419759982044207198368394295302597632880004412466611250509669142729569224964522590107822660664064219800526268542932292862763600605462971039138298766989970379175977841787269189143512707223626819580676838513384104274635860785012197670489078639386626297624295805702861820607790734579268711697944919258631234396780830832198429931205362004831292369602586836058840740123553481938433393526285225518848191548287834270580507051240342297591038561468068123324617410116914413618251286752028197330580945131655757693279155955083913181545179179367994995464308657499090515819241739951347687327014535932755284385701442662067544091719689459180509644958537319820556508743871187295417307515469662344003607536732075816064045750162742972703469397376539592953730218645725515377360916244005979163170127252541643185410593440872645702132227333038439904694468578806913252063169382816059046738520375360483210258072226405176814471301056170991336445555401009717788872926026365159347071203867179419925528980516405447678524213361628373639822782038501176790739075710309464431410631215926501039221329270491651129187230523873581937116288132274886436041728340033491186036270475496390353701689141210644761800029712883416561895415583101571475902305424191699583420752779685928901977459811511892711890292545614438692014641524535897905531010593712870096566933904527220228427508947997717673033422688616798168292967664852985206190725897949292393352869259495947470794865490519515213915879318176675340584592985521088310163815955849498446577075038664030945325324406580195304381142209551420219004619484997919375650682303870070946368749921697288968581591529557818885324074092892218550953296907907901680934027312398407550142979095534830891438362957587036717262471122709584831635167162817362716766619255517280797213219150403242603188313872969016957906046078249467306205991238691735592480220489675170501099003557243761772036811939866516972764573864126844828006743265043396417126469273648632142991306484440472254001063896742653951310581393515693353415075803140689271589441222670230780220966092540367562328430660062604188822203597438995926188481178104842018838794906412833896956065030869180675603450699838009002203058057960948480074802657721855980847552428763744648953241082469170681961065564380682338494400310336218165211554906459673863931542934356213917652281945006173981747553194257761341812095427044279771191547380048629198055709492162502560883915369556281017800474985778042388571709532707248214844549943980515284945758490467404627558907645962609210215948301732446571668787688924477001670599702807320389407461382913241369126670777191216984507141165756169665430832497860194335056749024610923238183242439332248755525057062151288213029197636273059613906407333837468124145086097839786060054544377986914175543524750314487016804918579326010139471425871923008748458125985977097770696742408614742133073144795730171887344742064829705343349296910523425647424541416450043015757058385170006892276817019266088705317161669613010006519746967057594083164525198293284149026619674376429920679249143779089005615664207309753215954933111196824069662253669257238503691195902243100478165225784594687714387081206568123310796110025161684160578033531746980791951552803938141002046205883301520572209037438766324721835654038325476791167558591234456990017327728773974981463005547057878033248730346302116405967667704056053584861054914791445894884911436296818580622207429502508570492743607184272672147506866197272029909038756978344104541271845200137663140247176348093811771683418466160011779843492221794025457954439632108141130121454754795431167845704061190589661145018727728474124808993354285313384300851062588562477553300426783928549516375333045096521532635415369889823280281308488835581031332250549235052123246001157064932594097177663569603860627470980562941013847765216846926729823426211678302669657981048797368394337472765194934146668957460374841315346436293119969933778339217113420810262371991712594459101576200635670957179904944768165555696366553424441535655089998202388264494806119032972465593181184377674843566052140948888826269221441827936757629076962796360148711318249138481668723364265811278369211087203723200743940013516608982579957171400676482817151132851769985703794485596229153337566400033118179622258299660052022947293356871600687578807116649149943004509006758749184312813919409474836274328501527354681272452113016220935040082087939530923230084166999619919996499444542185171438707670776009496275409513563004976705682529218298028446095138665192055056020890340877549697006426915556354294533065201497599938349586784255382721059206672618011753805903799098679999728268673174348953188767600909320887120439603796374505429506168348211470137039601839179522246714879200791344488531725242667558886311614499355972016466247150916981047139127518397952418140722489489831414366874665603051359848911554833137727346352349159753902858565567623746014514687688145952876441723764601368543746687851671280319159234666484015151874497386908263936633755702282145559718798446803772133299494357583502996277467371351683483175095369443606477179539092246389772702319578155728534028758641112335465765119199150337954380366282433233428673272408690674811685206941001323065828034259940424502816588001803259041557906237864698590942820563508277419386722446793855654955063092191186751473823121468936392844622513096952210442904006542691849017446116841567866957638360799056314344250380366372974405579868612795558399517453069857812490759406132267139133468085850026245333536198990859869420321945803910424865722405866777186678617586243569033660031905767883965298933470030302361010749347040461811176594794396361809595615562851732343189164080155031177207975175216718827086355010341851527177214433395382963344034549685703384063954934651365400324949257951539349288593686199158591672307955778127352423609216079875639444172097637102995224194858960796259644776951126034086798998779642095482744364870767117156098501019597760306795850641599989608594959066015421835672611132299999892780370123248036687114386964751041250984272325195968184406666615158043448029904344762692128007658781960666713198257222680963065247029268159552536557560345837433709856723383193500530254575473986350787849601941127270668208695291015079812720881281328000192816471581962625720489329461493088896304874041701468522917265914052233952087242075475414511714228797916375886559693851422250414355355951298782808004555863135366105771390480599045803506723902506191003067492470994769508847117554987536013469570298626486270299518489065756540032931003848738399628453739447973147242949443037115225648682935445342859332176276991493072719920133272294324411935124896739905223689064921261194315145286898434249797805135680036263204293891607219957080549600539057679010203100270506568210695793679709272782502195974927302027487814051485863380536007826703469562035733978786721499743203768402000234391160448269402853351069087198889802826548534597881338145652181780874486915785895323599530251601815370273164655447449535371746108815826095829842670716618249111250634868592571718620499120423231361318216238867990134443474903080369545372013705268973987859934134870943832590437536924835099271068134500764774604628353508007684982087183938157588593170016051557249923817065769991819022609455326666972690078494679524538366055133291771654570709167950278169381667332846479135481090858630608767549643120846256943097014479171316056124458770449453954887559760955732576842486195307806868997484283579909695786234511828314815546982525685627647687381409411526288421225420457153633241650950231228763660578752166224541350769456661097174747899901387852452380517233709614884671303721111806756944437766893958360941048093533720297679249137550919588325322441069214405634158869761554122493143810962186147057554343407694996034830992230319248556852134267738993580242171861508780491238080064967883270159207861084104262708190364563075857331981902112942356833822361469163948301565748147567625473679752424130134087510332608401333301137721024947476207667490257293001258527518623414965518926617713627148180946975082069887124751363472010809470547894429567286382962400158734961555052314651415566148699722417113640571341845168337248737638797716218083988057406017071760345358017156249950675999466479559890287892093768674512797742267319602022516297407856102597511075902916990797316490730244867779987794479952286581559613950106757587972270082762259276324234032874123679987283129048033592102367182196826226840477745271551970053834105188996244485785701831329627023626231528898715775885505549871309628308648424439925208478118684340230007310988644470649475603403536795221254775475629103460452265301142495334751038963915109112162108209219324096439060079522984256125253581354589536563615170106606306602038881628863492818783994456414886845833785614896158287400754648697333831645732343720054754101380592367676747375946490669626464093110528171556314343223018481959865923110342544203197813397596870990028116411503039022005949411720917244453088420657531072472648286671556926131120898609098602316151759160236787271562587174364111635456943937587218332382765912440218850203052851169172158055362520001334129084077187405171445040711290618525467332478414202923625669266246472233248227763536519848911300272259780664294991456891488768439733335993990979651422033052113816138289601802759903124434093663828035588267474983907398922775706369903749734752219992002280197962732167964475630985724898395466674841419677652523550849015833139076702935577297733226837541077899576682088695774896908344517458195200171920764011618836285570624215951699951257530468807614119257513109167064302271802509022494041602035851124652002610721384092096549002943496874673054667014501363240286055352647394249588935775827590670674210416634707834291062890957073493359958554244843085056171751607083048338247605337923044812718701164989269116046175938260099244841202532125904625480905041192150594957146553116302248768125315026249663905061113397819281482409469790906804254994516598367902761035509942921065723832144281444144155460181506350702071835369277538307625581998580397365855291462498775684697154643494657914850915400986018676006564835801636113254699405308274981442754353355968773838969224123032336422428428904535294357850593804870512830082721577313594892214748376302238038586361807750790267009472863457938317537681140859516619871449225810958313914425916187182824479100068423950711903988838207133087647586108839814907387686911031083792544042958421925054933426197412618515504054658274980847542232605821452336049372433295219012821038097799347242347313793382081973562724052886857293585378609086561936469244464893475456323818131987201237880552356859946177142267081329707342666950716537046491989359892595346733947148740408535785426496097864170933838260349277390395524466109098536115076860989749035603732996802797253605376547189754832870389698362281739604079245744288575415434314076782431678317730556955607332646085250241989864905696548922988482438433066695818724433259305584001667372721290685440337885565046731699670600078529705263171248450630239917556953751607872619988445424466785218378912001270523947949254716276085648524014365979160214550818303298057934098401753146308464597539815532609375211642328466881077805434439466246108982344158924433003250342340074119939437800851730574735996266845789175620806417803280833240505803297575053279502301010933301965340492170414319207137874055060951310314950949968467556590372699574566457676920146940818092162029781812432598832893885710606136778312137745338311366318128966242700984364022410783501138054260402837909957550463465397224641042764838367287601892338681164939408981302427558242740204570036606916173870903915265871984883379358307876124122814964202889411265276620464094583504310007408429901413128199034434548278114278003500247836150499037261544341225366791959580413123320938957803614885003340926322327231993345540871342248922476216968909365447591921666335488755380716085880581248442102472415082603277126231044139104386803096399805741710545138793617999442914341355048238780979667208311485339179950627092580991776900392039612574774964294668653877316188366894504679550636661899868264814076602184924841584006984307387792129552372789714270729872289254199056603523274334747815439693110661595017739376772410975069324150835255635564972468454128972451288995982141563370532157144042083666893264457447247240804597125434749625872749619895840713877720022170053109508042924670652677727107809559548338693404340473766101652017550657578180391913310180955801170353253812677210624732785304899234378623130219529140214473906210299928670771507394521110343697420442336853607952255862553930979197392745489667588638399792520003096752424242586516650259135919561602504228933334920841188329640571144610981165674676590911744144707419101816974475676884797944096556236391262007115903643941146583529848683831005639679391453557412026684245436511819796778825913381071947718320330005321880304580826117268317642419143607459745579764819236081175744931226406842397226213151430239210842790240999716141472080482134620439463423528817388350274004869664244426723342070222675225620863611358273782605674556320981236670619141582979143418829045320265668792406285797206913415389501707490358458971609415222754748971047785647556605742721850201943876390614440761939792677982576298313868149777434332575896111610348087417017563082591643850301716868735795398542909007425678132435452616790341032518116960801440751031455014023293608389138092259122230997353856332066546124798638186124234509618651639541307456650181508995807349788597724971832687453835660288178850685593459696301530209723783999821443101647246557390728819587081913776295585921215519062610485732192856766871237749451027080467053487875766425557200813726653798113201082738670479484726624747507000842815799773596213755109235600260758530136697951182532139928531268638870378523835603149047196160812187408896884820078081929899020382469883613593689552130868803497315587051174411294032829689165562340513552406036323640082397522966816640561621332295397477616635162471060295063576120552925523737281795348422606817339548430318256329622871778440597221926299053185847092308782381207896896217211452832118193483575507492247112931463681393562789137810430046362699432669104581039663101959174048441372578512741216198979338208173259241447748921336028505722265531194635382295965865534715194348058260965198197538291573033979412303921187152218778158768293144367259572077925013468101018242886612561164568095016823282715636568503412254862346647929662631596849157146772293305062719677519322206792967944996332125360064745221339935169657979151643790644242115398936972898099857003533719707390769196429107516870340225179417041936963022956085588710273633167873299197980958215782247343263029223544119116623186553467879872523217400354052910715630735698159011113942050616780287165053327059840744074004866098588026354854871591824593033090987560261978224061232453171151900434586750690802994150209290225135790841735785447785797247573518387406273905395714931550350704539745691874927553570652096844809726069465303189817373152739368538625077739648739553171902441787307452077140087637422245780312687710207043841122183921277976844701274960731689378426109674193336126835068818388010173079815941610219437729036668152486231677374169696214847914955241048626613615850342945320287550211171477075744181890135514901276570778402044130626257888009081785460266671136114545381588780500138322391368313095456989124316946964827260480457033734064800621983764696343172341200379159499731093452128513360636785707462346003865532104194918030437874426595300390529974765798416684818565007365879879082108217192507993715214935254693444115166758034275958360842800152471610191695685080738579686547208648917155812055980851707138828903382746900852662041085603937000427224998310031372799173724929097747355248527226931224624429700957402948042436247539652427947009881482078835652242439691576769468372901535170176863937823962826690377539923093150456390237466382484602763927238180970925135679860212577224574982218883289013228717608006929820247192404981394349758290290586263972346189324300474720890637158376399858602521893635116468908131997774760307370402123047924490319181478839473146619920770074592092304480785916669863901826964254785154751759077763614970868725101490521775560992958544201326630048978772264082250083429663847623358565244617840183168459619048958157895039492289158198478146292187991984615347298810863070543755605402037244980326781387469786915244363010384248314094123618350763438007089063189477719697596537580719668497057381805585249042900364695090376898905158044732409690297545776900009868360202690451220096349500808399460329726168470978760345609344155526911349434472986218878360441762493521568678164349946332856841324882542678118460194068200572875433289710892627566714963539958419036761316828070244476014563504755802402084508584656557380232313243013327983458957220060121525269882681317151843583363559721405136793722172493130350393299982380627547972391389851373684164659487082376279288936987788550630235513137703831442118341227064754703446077676980133604901625345874415279730247477662679711127775830651001368929688519579157630472740944484997732106188233548627008216892417962659853387885951790725668477829873471487103067786121373955479744862272368220056549171399746653730630332288451525795976938716470134296536880810651829291156576020698508476895547996240610600206321149216382822140435650201073487765422338156379331709412464669659976042981134156078602468269295057629127780684246283361755522410202863246249263298354102552329167886736885244880320051993709956399870752408238532355137664604654636371328093568601205635475278370795943470809500463162336788043724775726152540551335321854396864082801871850847300391308876327377094494632749128326403639426057193463967134306299331269437860136204035837660293294833366762883248448323662606186886609749349460951774578033477684938974449777192980686352968694915458413954236052978922155596217292072337482358104128176829312896175630921921465546636240591327466507546507127237446183823275561957576832655179042131161991557787911089301210719465913754350623665140555663000229587466570066512592007353828239617910887583574705709513192913168595205012315787016173907446560639901622811847832252905340199534840570906429600161903820356099017329332725684562779807866420998124187541230697535721539674973922841189629509735156289119126340953321864575721611182736058118466905941411506073658597900582757039150360573838274335702360673562029133885832719272486855694495364995399284014493470019556597483897929016084302067632386114249583658502002993212879091424228795992027056381248508939067108014878454205222329901128369078618482289643738771864378497206570588432180686429406143595961362121364119051062647505605147676332517341558201004457191727262466342571036276699147944083863097766734384684431799626471489376088888275298438771554596189106091152902516120266459745692012470733674518917120609138200977598464926047799421548688474854959975820379706539305971118336750924162190648004096751670159037561101951966360047048864528495937019812079423310415853733168359154960128135614635188779917497481995708195433307162097955362669347298325672983048386788851386318638859665285944165396878659322647709078591015358060372212541957730360699636875488238363490129281056168218813998882227139717172344354960899098848539919340675075247883529933081339051361029501637122156850778551462145218827418696945901519326824540149026454215526962995291037394106534129083676738239424227135748676805011117825040180797571249467103529557318214142866481392490505513795638767275853751135671252541759255146290414685169482377255788264135073975258743988651801927727920544831261871054645093416210520709541447593651594866123717027951210455585325697575093545378191659017206061033525424112451354354247505102332519212198306132756706300517762653535480567656988831215375202603898092308840902264080008170018261134850337440057834987337214088993212698328009919023109453253908099488974047023280144143421036932099036998346115003465962879649062459832989687210648931310456224648614154714321014089655375768711764640961549738929314708110555698602016022063563031542180652539240449778969757654744187395063949177468740716607401109443693943031157261024584402814172794995052174988619689371747685159221748228939382775002603133936225699343498257216539953914429634417432231785870560468347650684131624629810636075316180871185618773350424435611936660963219783866447699166724271337354780574389154854991695985196548614499000743298075742842921606024996729216423092684197064816453630074516790762752394435726028640340736810844416696140095068622545610274361332121541397099749584972117975394478902579919313189381293156745708762255758629916579058120858791813127816219032007150779290378960949179371255377049458777842091670724740392196143934834470798338934709531139360552992308863816783285029124646926068019835230688449100208260965533106274567473347554373880154165181204382154653457429940669671999650183856883727808938686855209049749051424875543012096520834515087393383561209149534079767840937019321111337502173871259861051414044889357941205867180707630738549685562305046063905642819797151967266428833838091085382234989042719429782772651006655667140134650803918666417276709436999109719593186649573829768831902317078859102885491997697681063349196910069179470107521541641891001231449768368905183816249441694853589935408383309816265591773884374478593628042694891353211000279639501829753003319699430872271171727169097522669769975329092458629352030658177220076471331163795559860478565261554959756258055454864831818412011917561737327660116488461644219098379902641536550699754423303068755898119430609121271242805166483625440525181945405319172794827056272499914373552762006955966840531640780811686013286977060399873686471491372658035036527204455742256226706440159547724367118342516527048403314341276462442170402554371856037778372461380230340133575039574081896605013956896078660000002730962213383942107766102861136227814732877083210230439388256796280188750862001809094117076408685159257442685976096065093516524867171076212873675816994551342416020749817869717093707564657053868029345130348930425714248460366817313953766675653820597357295752295439092031254020151054963629341424119557247818822254408707704846704122994200777944797205084228421528141430344018555588112039440613990371298122843567566165819434204545725688072661919677257646527297924942656289575180979683047359805762483906649552403342382311561689440847370945109341779870677612480535674112786978867282870379359074002553041444831847933108948054240383074216000513903337128918643960329616556589799416847212494558096631114016518223215114960139659053367188198679235665805996633317363573698860891531231606923425257656358614252830797250148980967106327896944202434745980676550752011260976032124188668794610717353579694198072328857697147574638868546922968660164820333652698180060602643948222332742810140490353074401507882953634434075358247321820870270181655941461144949683421170976059396874304644756237120290725372750010659101393271447315806946879899367899564117711979849062765979749227532142829659400368645189052735930532941639284967132974715126919276996388857426823082258221368477518785476362563387123972681335518967446783599927222302308647526559481879056356828820566472117268198489212164030854363506436957793893571983270370565230286768303639521443925161743957101360028758653251288686464401718748596861775322060932405329909647625454283395002234605994421995388519965595020536089568034080185031267240795557409340787858089705312119650904384246603719906995383311807883511977820203739540931271129735042745946127202202470320820785377669789511622085486757748683091481244860657401611775632103267619177653060543272787919976786565980906372407297179219368514549015714542973945373064783617911240079970216586180646854123011958735490479655015005087369361068864075172449820777824762480535749569839486356400631534714912657946212246797761307721912726132711353420251145602097938739984541207243923686953569329434621435244514670697942033121049750134551345903382423951780595787595473761377256969604512688720392315855463004199686901548510198184780072448942269075759910778644922180637189521525626785521396705037292245449686542695829671845711356085629659235937395930469005729343482960596191700838119061873638846949331701354088581931052684198627077942521142090561913630221282921613947670364905918091785511788011402583085651935140445034434997094355807985820324781029964838227708661930826956516328065999221153163148144290286408682915494539518859888144136021884426326742261561436656816914374226170020420150305912086724874921230642065048284308872379130025015366696316802374560395754308008146689349512003661344668344328857917091194793208276062906417621067748900255557930102255799832291013498272238397215750409876568439524183233665681061384050457936997759799176773013747917777813040093307282044246155047296754194505311888125769082781191887364537519557601825532607510230866192999804646167576378459442740870274930997939075269976386972231026286181366602295872946747647523657082392029362698293582846394802346424379167507707929388059690117045055238510468676290881861601741246320841804005650672034475557852468942840528428946595404351348327382625310555583309626902065369394313486890675927479558640235809829726935144988461802732244507027140091094768003253257242304689752173162987683288119023627658587739201457311181685229482399492887277353951018740666939171249538629630531862214845694930825345512337268272139969419224061589375750481889088158156570456255137298159183076855763778335199590052962516080556962826140304453154991253950349648562759386345702258808231585120258616141624278009118340676203765383942059199536840979440655598139730982752411486631442672444895327303504043025493672730587290540540295830935209526351501062453168354430824884166738255307653510458307608085370304215071825992430287962425986216489514835419869694151454369866147108200930390850018825346939519743554162846533809450985520021477976078881315155777840985086155226726769702060693767842695921536401506116111614754974318013482488859840736441110954096931570265527947431030283922900261416759225539953876140984861803596767920860236256623512590366375594655536010090806278028802708027651021433643854835159686421765728558911957082649345358611790260464169781944234094152058388610076017304541364264614229260780370826300522481238873940658324904226835024589464315246073856721343291451388615063315146721283065569161205805266623071579812120836746045077824974216592255027107151002241758913942948867115374494823398614251212173423652908299386896031586619561160609227809146592106738125161942364322344119340672312500097667989831254354558340501623483912063449187085033276672053180418448632188737212342649342182103408879562308641976044697768671698232029139333640834416779833669766433404966332716447321513608107161898735573127467129763357676073513959716734619303336251210453170306312743616069738605772053037770808016829167924037900543237243528503711634892625681921501866629451041736880496184086075501403631863011115345565099559899466181517335441555030268248134882876519621460263001973165643283683068518120698125321403521922588367708464030375989579504520851280713544162723549311476123849292642806354093605987995699384878434019634840068743453222565844306989500396247522694167400851911767233521943440704699397610108396241017418512580807190857457144237488156681257030632526309131519987069412152207800320864133578669271544096205472790436729619228357722091330433084723625773223004041653325793210277622889432208661912082783471788870811825343791212802671106360179719965850989669838703261256691388949911345669874799079978479987888696529054583494072377746784727359997170980502949747577975260031972341895746226152517820452914168906265380944031327905138921717135687443246292390980502032531931257307385538578432714853327438932645046812865969988028027396087217502154495684682600258081929368749508247893491393575163828434119274691559765359318980217354033514150972291264991133735319009938555453684315994547604199558476152366577485411320419944996942891138704378692034273051591656314477228665252090762345851910698004423379631583626723968414983425670374224571889786092350010879269535726724020775838231893654453888362729751078674312008256594732398935461492748511262218117170828558055073956161998272395758021930328380652506353673036366038652720340357311682817417985865261008342675332979261767124338594158904336218488533446565778236016104326428914613980042526083296016598364339734901295839336813677690502700007236308849834458887002225706475078305872910319614789421528112905237433034732813901665344090359257303204958934333235108608722663853651737668924722097089538351076816106013188179660219173649988108791107385884664900801910892901143519270340281339873079575790544961534528570593944119712958831798766795605413619370081254562582810886710197160505613910252073456747123749877202511254932531006962163335376690569422361069300321814953521265541930862596110529767794735159465036175712148004293248148277788912960013386976874995002175261381935897935617939134873672584074524775129242738824581116988522062683634489511835670862310237151374323516203546115139924113960923600466248141813899138961494274394240994260172767250586619285944950933228060956421552118179920288789866268065361759367948698968725576766664408384313237057004004415634693494816786366906852457542932932650326670632748128478385937848761152727145614851941776501655548896482616422394709191650522352026816180847280222004940585012556252363825835360706658058551042864334264457093212913446231595836194965674756926202073185673657625421984529451587449388008274128053695610581008915100492204224349519313446724026436165561502954163083804979065004509664105269293623268108334174712841687755205098174562101730388849179997510637255111060066026090597062095653625905221931878916944295222307664601921309478869240400395229542308620482079092775913520935666096621678624015459713893233945245900266582566641706003047926877673926980720642533889063331516886344216045726631936222500866452110801661946578582562544563374072588746886668487465343976555655092088074393300540539000769883307750011228238006275882112982751541396287015296629468875865192227232181919704344735946920822030571195043574747197214322708483968664797027628648170023784729196559861858944862802437051315459252277776764761808141855433954567993572196144684223674023683031204260330177203817214845547860903288931164867894217235609849163769266963690474896619966323547663644715547613055760904542963492839285797468191439978140931975788102748355641380271547972065353101628642374838844723840539996341565326105599237469640538532287394122183080251326923748406459204145440446827374987140465160490954965823279426319159553489558505849411146981824702050543160593244218776070942329566825197231661078439072130743257167185019168165003870745254345928905776795554049647799774817296779990289448223557864327376028905908218250380187884550496800020701393618278488005493347108551443314028586713319780297680576193965963464461511280604034521160338266645951835722947606056860490259688234561929439583578282810573123576556471311507074244440811880515426819267720791119006783257165845667550767727434819093952657552929103151150511757309972359090765658622519714377152492724025394660408868412891952036365607176364548344902447597742767472150874250121631353497950085611858121485490117493687816126806767581765151393870458123632078249507133976122141135357317137666638556804498070647485779230089654495567353331701099048287776963166230840466583648198928831973044761198894840985341140286225109291532067087736586268082138529433206103945076141614819440200703498259041612654273141717659714739632520690893513092195948376731272482579996530937698934102316514125949053479915981414245379412813712015349264911821736701343018304047945456061200648789965944502073102755468792859587572090397770505679299889514630504797735142664851205673169395771131996917934373047902537664177718675770954437565653644369403015094233763052453876336301224631778062952243970673495079782907680229763758548883322186194194578465752371589636514756644598475976575614915759710517300054550443039619540877097868104069387148813588518929455441230047032829838559650047384358653337413114543757741210073743812140682980695412394733266499269962427504441744320835710843773170785446911233022225296140320479695704331164188625899297423554769867117166955536734193967731274518577249815231202158019870600034682457081931314960267254068707436751032111853732550889112164617904491732778463877684822278482888854763431062939584694751424341840589957802392791360215038658266995014372549080565199963254574179798270199202320160703603024419070137592952978845901847848794143045092718484958341944199750665844419584508455019841933797894124782474917013821438008606197080453023627034472768066644013469707273882851917595043828231696375336033320519506386074421782368455639998567210629425342551014971350462352240610835315601360502389476586787618194376939728839328335187768275533957555078794471965996211815471673595598758741678793458428698956730893319752942896392539255332426218083331744152640398420547365431926215020779009246561248696746548713234501558960039441457091109124459053685471772402913338200825318688676833357941157581285437041313164777236070047019238285371319018002975512977313415479488280899259632799126340995240283674842883862630678878772277108950258131522444064465975618759378661563132545883297108731564835870511800488333433634895160855262905425131590746985010366190121268645197531416751231013910092276988755164196225817097037507136373292253150237205000269126212465905211454540673736337997308611687779104361481042539576007970446124946011793153395815299906872375916667348941001955221941136929043370116942736226157505939860605588266649373320836922432899597678628294407777452857643345922790278669024821711860396047850871822645758238442139992118830424603713988900279573571104240639230168207366333933689894172188486537673661674934817639713375912016820687133063577360745290240765478217672293428832059324703049661304347952357261454482073633100653417899005420686420234023950391883094220156083358178102711836343102552163350888551788630458090975767230678348852804807853697950081731406820824976178847578839992084356743809835443542848547217145339381403126811945071995462570026393231644049645003722160392737563194265535398549780442177721429228960875110243112366879599574447542825095469543597056382505691109430298260241317734033935211174162321792681347024578601825060568301493319481133411750037342082250756489479925491110258619674254367292735009556443321275180008782122150486764857839660807380941531903245224204257283556870907795644173210928282230146261536369659055615107784715635838215956673662496752351538130664495830169512941323570610327695533502440310666089796361198587623791973552337612313632812671862900213695458032325043069578046448142760824283809779536661380905363642015531487191829011665222742869263062344585001163194698669231213900989126826066865471434935765407532332288833699748162346311160890583890305257526193722754753613363140328816066334230105066532069569031701404170137064068620636034901664660861202443061818325895888135305073510897335388884589948790428617506207093267560468765479452323805985572531292161608510476103666781612911700688113929048715411416316311749264038127341955577182867033757955475737613842849456423121898151136201361355022524248175036617514796594316475430170548020519675659998749100390218625013873164823611252903972918994086734472044912286120885172861057897172147835930389892119481706894842820511413415421058798092793985013517976845409755812946394466331684155119883429908741756987749798656294678120695266491796943949824173443778992431846905559597653263317801608745211558430694918993476703451114623615579162629747929535396407415986502077055478060461760794004041191795257232521019709774131663833293843632449173649647246379372612922934088460106009029410665475576269397955849624093978777730655902415484363337682959184894818882116932872958253269827803439777396192316595823548500377793920243948458529293410117889835209810398444827594471254411932466798649953895849464815282259444616976856304793288794209851804443663222213106162598275668067839582804944523319320393319206982052406453495426352538244421294088503642247899678520047783126187384633980023822843742253962653429928155195436802907045108035038698959097066284972950471366107820003840787965413691690592360389640072795067812976986523093220723680409373687055653983081026139409996128910314697650776348402402283641496103264270578127365089191306015004162617450367117378194592026427723682294976391173083855028014469033923959057645727974026381904371685785512963109514079657707474595140622489763949605226688818155982723687753495940159010479937026860133764207441216094653413824097605138427412522249607656213707882953322701804128973763701669817068079063604338652504375357766582788656402610374448722586544636236272155587940983051267197658520589844826464251267399123755132823213486306349349304316561581372546865183075971680415891023199767880708127276468089848422733262603259574697191862710907004748896275461822094383802716952044351156284789426152303133083699517169475671984975880678020234507737546191433148176642579310748659746364252307358150436613863874916097819235817226657328087055493584890075391193217752820281466347684635143863713781092660532766466657349328365953835073479618148229179852277686024948359210215476704306587039789215348727485123681301941379341955214458899477967519708146500267209359366155461567306620941635230916481351975751753992579885681893087428141906636472170919865968953502504730471795083101378137325681871381412871632260592520601317961733766806975082868359739509890458737601963654536801442238516369953766504758948365465967852187981895484385481426953685045723062326721144062117128581852550073430022754918084042055930384502746413906933232683863795342896496481525517504999416162028690084802808968635811439120401379419022858925406694327647224258355216478438653950501433056086127127287995967478013409155779951347772479518773811355512056537012129231310502133824519337978676330020292555254737384458698410203490455732442827184446090576120827616674853434120292815038795193335170437007850947607325109764960290358661399325774224278409454358525854500754502855987998639374101503908202685712763185624563068655405341195683581345704480380508902094034614245315823092207848721215182641882581315530643963219196698069117073728505370274992638672251577107261488156902111389019392953408367101820087041574149181388432426392826880348243765997350458928026126095490298256322911591013954552617427801844392135096065101270968013375184949872409711116244460609769618097236683159571443938514937646382112132985623449760625483500924530873513921102255889201230455692515267593973854701632179730887071071682205160538090139752481116679973179650218338304304484218604745408819318042008307349591833205277106113614834114060567306169216100221276067767222451598913635513827576892850857433332310951331765249229723813879296525311182364834080055469362851182159931488915488101449176705428542725367218285427295292569717744168510344251403441697750106522145990267517641430537995048262216575283204769698243682040347281018027231993151733883896368366008477327362821847346051035809640852406277061086387707512406911850121047854475559583906141442836695781229329515792266408804416695649314314061896338509164306890002009018677920913800646101566498412912282899959978426496948177862005133736576781983540249090102092074976098149929918919234393277731573498598124901938741387688794489208584039934262320356933650472634277403813421772287472907831530185372826380796456062272170952710814629691349392457153358775970472019878782436795318207150501364117405814180676072528865379672500310900977626763640609099423135614989183558659400165830533137533591373068739647759424857283808819614503932781426047043660983935227598019639795026580530607275660322585688661361019902459087578491089106831077799111828306192893205708286954630244648542486932400242578304837316232996929371848098246333159550036875692235248615551193934277589583863800834285634417455378638883986794817089713457022006720944556303646899635994334819138485981612243200051420549765460435458527129889737872992299332638826424537631970931548661250254117268090429969318544108613768033878298760385043980181751006713543923929429290296252009828342943538325846494820518859136461311037758211642573183043478486374784477676059500393408130813061652478285986391576856469748538699235318555852628525533940407711580234249156575461280113293445512605685654513291800221394846778157971438767516213316290409876767290349867150237669766529147878890382647231210285918062877378343402415719363379613388177865563608249911674222288290060864694426528207584902153665414243993153226893167960279244836399197442783236561499793704864323294905051019048843911029832232408289034294704516229130757997880028236736655127736581965519710157475520555237425051095787802787583562509844922627238998907491687429820242203275378536346181303019315573780385895470797662456772919811247164887362682506701650906319419957690469390251530538838315378071518622614644531363543190435956399964205741162232463489856605753362532019887729391222803734970799693125494748972524764797365207194210398046855664293804412511136625171224901129587218565840079650295628955008168518973500267989446907226894364579689508985748401469478580338082435996957792802530651879854890108957432198075128473704999775115629185778160195278129704767087267336739010271073606917689539884797065599027789582757386517526704046133445968183060236373359217277182245670492639446303713482248456078457724609247710293749823241245217154770377551358489396345979527750627414899586446441259178234850112718405509028464045334711702381505621346430853862072430727526323695449625908457895588240902675270468316146065484763693334520027010866201187423024477210131611622904784360557155362248565841034760469122109989533974198720602362871331921988876482872834138173431240734749019571936750331672323416748356924099572712995671614503354538758469359530476100186316174953249642544806527788389068007253792674305849476798111477799190712158575927231154945567113101794333133462504506505988048491915329527938602418228747436433483409371882369537362485120162239596476756551282369609546258501104214215073559848274352705540731670443626825627629535865324057614882295403290067172936406475880556027938077936389017350020706714234771240503839521711890036125076897558263801671654034526572575770014019594182926539582924342223537263511598520087213671445160100417518153970808727142494465918761054248287919458395409244079803864345098314888086801090183431032792640918540105972541269654145698297303703501492854129175669720035548023131241482964403519986482607564184336359097948532680566681896494432211101999050099403928616381286246896785864902789147078661303781961359105685834272641928636553121167007589318942717274747234059050605832542703637830188720634350440166920373545317298672784726577025899851616271598121159766732964302288593070563347595313131533339172579819749645725518530542527268661564116279583755497610431296039886481650678878493397185393732007481845419838334269320703650824367109998284593524185593533337840535760620549659398859555547550548497225026861566576394552656024377703478840031760623613769574284612720470204029744062662752654875044347663314087836810368248549341859826379716591412187560328711204460055289344251337758852488941495201269095417088546512862074654665643823329339554263799318759827578474984088339511362346519782716648900825658456729062803625481969977067953590476265640745575222745824317383158421806125194861074526305816199152584329171098675327924901739308325261199446874664131627722986292140773867069003755176554179031066087790012919126311232216454012048967496020019386130273820420618130463489597803752252485135639851604756074640436521315591881558367571639392427377480662655768716122147542261480251918681422683589941167725933177156244556216771753454702966382286893133717053245399398674703503756072471887560021185601055317773541567451938146655786107965240723354178591288037463646294613955060467028797520636750005005972668151856034272063585324939003124543624875395003122756513295046971708409170840930503797485581571705770434588749000955562841761719431351353425522238145297140526796610864126847252455669930505830476891168487582664034028505552040799377980384449444781578309028577252741038422310165495682475745296682122397734164222387559264870657594721504752286150522719265474928562999487611841022233294174563023874682165603040560905511202582501061523752718752705105014791100217903594070665275291685233099705369308665274553884045132590903471473622361401406451218619524595644913172308991451196309941157791876350924385072858455932798796967411722000241430033452472732308339460074137928012053771736758963164802478090137889748398272144392266140113021168298378215944547930057880098765972772853490686574695566872075456628539438550418363260733600397422927110986865332358979754935446764925639419343674936053201165028983532750027935328589967527653636198621782332417164758224673185149033953248732615906216328351654049288859325556037766833703433500093032910996055423715611163170293159833642755595789094906145026971424751646309717500047307337140902913468411062785936954879685972560557237030475141380508112068534247416645770239472821776801563508145141819085354978870795972940643203873606296559438914170528468172505492296154013025962447124902052422273631931865829087887776132009670447649885044966115035582616009279691712849255372136123432406578286947377956992467383688886495811641706986270731326872663382433037383497482077183265923114377242495953133127658623435311705694222246225842394431321463313236086888884399650052057862728595008976286376283092724457581499394349475960666531976591909653983355096584390953900917756530047655894706342828302490112454553474817254766581368208667019449920101790760647865712743863314513446045252920299012301978778839045271417264602945877458008054367462778139482989327814833075949109239440893184385007662514566398383458664947067791570973680434613369290317214993164463635914807660201241988835301580841685246259035383373546893675681230527525274506904215681738823732057501693893933510914086892246318839905108257466514727110585732240797544485164962403928753558300365002978398940770480919924794318109701692766344764119098011382667393803656470280267299684570528998569150449891792897790480842623355556891940137499945156428817997509133077324924953416718211865218227151649541509549424386521616414049113549572306309543031905494401608498237844876136748025563049770009196867708845287179162610840586579153574296484196891983678049300106633608156168525885740852031376086818063940002333874855780315644490050543960663725082818806492867751250695304991821980407410061589320306652223805454586522674695325334653819993709750939311965427043803546749695915590476119173514177809949555356392767525292957968426140441087995316918330104775346960128381178774550876945711170039342737278367993644818433766328365458768593625284417327411523077051465244040659623436051791608303723130733234508004838030899411421879729420995873814494400423935279451170169992925212905255365463793765186681227430785614713539464821937504670990253002763548998901906821345857308636700539871275497278900280455049301787842299252850346524887400114279119269148204661433993099476622276113071997593062404675809483637835654965895154873407235501248993601694336113267296146018962429385079963164619514610563012188732195311068745343079929113100474858400017780593748099349162786831820769351373606458672886347927772644892735725953237335451191973864362127781917317475833735876871221908516885059494484841670213693346573569994557582177043967166593106561319791809385343874690221542499223537174155344983350890060783910579929599227251232090096519876741115768039617158431721000711853130750461463317249345697558969888292917318710267040610775379801595550605247537582146770681807273684038056972386775455703988728637476347752871202220214891739531352179837856217114273009326743941912808474566774501500362363268205203827497011078259277764277749109867990766080587533457024501953289447990170794454162323656426418685655674608044419810631872557925388870407829755368938281595482934963939780401399386876779950373962702987033784435164295661777333646265944277339162708103500637685275185348081818781201012278658103783628285616644201152157576081447168900536206866971012496693400923101603040142648724250957568242230611153569634762802953626710484084167357858857976707869093127878529117856860444500267067205775606873356415437770267345542766758794729825970083603553898505366459266116510106558450812127208586619546922999908501478000316284159718217218465563108840892441693466952900512705394205077146539585760240423828697887918079047533823483156731398817947561533543404050566896664394877067843790304257223605899386832266209716626558224851506454052108715158744219465434443107791346820678069221776832814094458999866898188273019381757760256881561464864420844023816259539408799993302312162358759010600357299212017374436419867684462490580306105179776065091396219393993415327835665967129971200437122543719540284638009020968529554326106592499095486876699770617546841167388874106321085072985191428972059473531525363851386026164899899562375536586697549599471801468406244237626960383705388248522532959843133641457624564119789522614851093546504477598852588323838542650265383746026007220221237172739866082080106629981255229862274777342302960832530331101807641118648727828457152568146923131475993301357110787404727153442809314533812348885114843755990737530198777595833416321676673762983192365805438524327953133425926861376027770471399466839009877195702549221183882405665161241493944545987421392747213175553867619230400181206160247100768583083009737890266860931585621706355390805130941972471767358015937826189828311164295686390724924684381705107839007489908270967959045647932239144826175778036221252566943763469411986551470740855289728422226463787497503226127141029637802968172926722039751680750372877269691490336647260544955297651124818432995581013678435530813297846003699511566015318617183643171208814384401807343729805636233636169321568563942563897804115016472012195737914318218882721729264275274545915653638931595323344888344510367208203099239216976831207733102240295283413620154831636244970554525002389586595555138994718487829472371271082089355244164489006058011482457914180516490601421341841027363245496506404577194278218922890803305154666352862633746387951594886587958410993899392999665196125730054948982154796632257457044081611061021948494263465068310849626131268220204533823381308892640405732295380701990403886992963760023756585962564825204812217441658166958327505702683278598405128924704875345407991680042648277825402107445116181239227851486235959180974927186043344464850639066609328044927132877169322221460449547194977586419111143038223791042360190596107625056510879031703638635201323411091072758730698554039835381730095559911315330355610233959893869766094238040538736775168946648744304331430774029628221720350221575613000614643964426083171784096282516565540156216412674519845961873351930520017901491883255470664891267760177791771482286244331257280519089742751122721183906581375851692706853376555656821834851202661058759263817488281414065908370994076753019875874818532515291096612948909468322073013278706246134042290528885450935662683235831312314065373565738396463697717297807328815233709588264374388100497041274863235913234803036719172394710338568547238756891144914904583173377621352391504059850728455270937033698670532334630510041167629575459808679519063850578971001500519561390304019807500795858628095861560412661959776431712160878621180048689689947199399501076718912222546691947206542448685222157269137878923540370001652215937106673638807179612602845553741364750852535631830005706768465762195283019794533806052045023614241275582247174389388125990174730211610374986335532305621708738442744326556710930215453217334941097476249662095145309632325003984626519323907240871314347032790467589367181317473023062313192570824772880108785217569118667196875348142985553973154537154494051738554173946673772979164248979791467289185053540939085770978120438874214710727474237779168877383942243011702493270818119372413986493935586105596044113391410536922193425318541302032864923639347262132755548994036282025608965390314151975314622334263771040429555249069354778440687575224702074928602704659021582077469838027731917159033116048053504687164440507554008519306654659322007928846995909320159486649710013139950252216506159326745275777938365895887726788410060075350837926741266733908490507805315696466643137192898040481220940480068788363073398322959463627437577308630633141205005882708898981378613360248733476415072812447163834864978547326315296721754247341763824206279036740887180934338707979564299187972179549992546155109479379746072990541561249141307076452957137437518998187291975396269972425879411146749082226783478512223937078723303635751585672701068077598455587052531451623952920015942039106906162248269807473016838467524320410156150698094254674939312939970555312866651425294415127954990957439397658474824983198454419668790966937090716900823114435082033621058971801408205212150572536333716376672178550972334356076905312784952144597166507032860419982388036772251600097882428800701821303967962464010948689377299195182887975522976787213337968566421941394142855121532912047961039485729683435739346610810631661852059199745911447405002603632178869081014305060322850874675137599584098935772478441035665373024061811445056727777353523226362097246014288560698722479472367692726521904703384234630405982854030891001089327352988289182701662965100216333297562554176898592051484587586198404948189775904175430444322508517633283846135051556526956949026525036894629411517256244932694694152785229575663433873279197900430795549672379762431122349965382366618949043987432435366766372777686196175154059577073794001792762785551056985967639880361308196161033595136633220991591342094076459826992906379104109263830418900852080848929737023721326976557477007902535648751840558310735507253225605715456811852376412611122432519031548760299117896222632016933397435022870594266885158953007859494465772207381046726485503808015438347338112021981811914048857561812421696936941832294716449492109137611046450403933255551555346126931028256066914018072993486421777531122334488666329488399600335416843411534334760016183436523484619785601945919451275096308396836143122404548281266108878843934915185803479595835157390277484438606086690018773393588582377685879054843817705588891495676548636573424435806709772666450587293887110342428173875484925158152434565070340989151438336542917478113707938112891927627047978758895617495023456212479632692242153722631098945008377086712592644672473251738991902914259045727773622756255870615186593409801021303542876574093287338976173916933373827457125511478982766786271200333932969197706120860905789804887556507141424461067522177302207344450044490194321277938350009544714854833809503644051561947313430000093800521062818395150766244724526054992643298385620996326419225683474840105882558303734392987218650240797173877102516248126348543743600869726006347773237937846787922963121638296518320982341612902145327813817257495189158590685956308773539619344453098473316336497953626668720654122031895217884745175670220256183555026016747619737683435337886117143466870912766614336157033565359904708355232038249105799475816293629392805957670086722747798677197454130004846423831282154134982646959028546579873903132464431229888682425547657325541682796327650625394932867508942988876650268992876565933943091707247001981524594423733263719009445043638633087248389599914498789110815326704088103560463644876536046393737519619928477081865281386936685541809783272094519602051425158323564082757503582447455263930959423463984044442230610628479393741902862958260766817150234104841581418306727583454604921058188301234593862250904415914251569946778934989513925844426106687578171357109854633701601409495477538968967498073676079934416002192552922267043185988481111489413945062618070263089614335335308074326091954096730400529259996644359296656087702776278336199915375722750466124131343310159675227793493954987982347720406523638130509419869891234237700716408342905417676998058404439436426985908457315471323302782370317125794902504076721955319139750802213897020413035467775934530411082685807478678741247848080496581827751690197002359476465214759390150802267665803837937207873855394423331706765521067971924096783830124387641383342379542129691497005311274132087084575384438446839911859451080768734351853449453125563381988839221277316575373457959257419952721752972984976564526607421358508100549112292927689992536417922106072015046303345297997171217317833114929801694673579009837685249490052381017964263882521607948126347073179196372913339601353580557929233707936961058356688195216616330337826927402667755995013495523552619011945037575767728787235476139473543516359294818382139654042915470095467602207612481099755116132345992260066689067918249563865536471458593113761238309383143063753972161310979290750011160807044936687128336409271723161206489632956166681723769279159092915095309586430252232132347636663966878743031383190206151123489441863322190119913231499055363861699628304772713695396438413795678224513629739552168413380812090545753836716306548376149610956389331390448847801553267252010605988566584316041436744229103937904825577554591395086247026037244839962642059094376996592316707429340813459021237589838456916821190700744817546865827955083316553911682566493639364796708931221764846255102391830161366023229800904288827424125848228744056093209552253059972921100320574594585810006656923982064892887469711802028092665276313175492375637145326911735766580164620469308770992352253069462379633634950653136020872265755617060040705253151210688013285676262110088927107923089985155666989857343782249156580038497072038740926320848068713165378448915722595233246448118313667411164375291818107731336459008257669433320648989075450272677690074797329259859125485262940260275497339452827628333158892410794566087313103632622533526602257992707119653718301511711794501638032224753786411311017488745872266582022761999673309731078604452071928420789551689708963086155568361028642363248277134848122876762831693012598834877297964506959172331062602279600620840735707662051806074541161327105787988345601375550740964973528328613797651897801265583214774679255723963535578229017064083164943466340378709510380409089509789977883612208668695301338893247351577535227678027390579141517336620392995492426356019911539067109710456000437704684613419081828688779611473685869855691967145256862759994100240472282379028641524395873313967113436168148660024640085985990916063337510671605832648980636550444594427965456099880761384342362533267579409850802388366241340132275869483732164483966115369382854708280676606764316859808270490986575608487495509856687494268953175663000011558953702082764376326568626390020027356792532014484027529590650474424886910503537654093152682151121907372443169149838576174270943429047411303106659810516579623871342102516763623596609654961816331546720203837720093528065976461979289463853946092463456855266990506608501691239180660294403910990093395205594769173915835045363876174546244470803413535187102437206000294406584487817307368052538978111767671990418271980889850672630127413525134311717228022775763580593933757012674104636320021663968167087620372696670100320699750924844263928183059096785072714915628985639606263996348437600808875145653018939273014718987894351176314061957708255847852712667314417866487812052297972858397854682303125846133978633505002111957605863939389349727078445120791519975192919045326152175305453162580972920208751602344212674514487214458827101627613854387183679814639646411869820160997604698954420568697151681122863209886182968615196315107822686639619230643170541448208319231270462603905721838672528904126046518998901117317944819129465899638525834962107059234227784992947619552247492902280983925378854208376442046853776617134957388906155037324980100922565940786852130763749249877342685548793575242018852354581782821625999658634702106489788141144807830442489707734315999844169811794496261310379004315189584528479555977640310575904466555263760637813495802254602993491047409381633450796687259107506890081310330166422342749898133242510423670993344874696116322421674625445365393642977854779548296631981506734058923382627486568613554511598617688007664974306803330603913475558767432077236235793607308461130855316978201496070183697281863125206292654213088961533479025746034771687966466834565875622970928457863587022056796644544918250744075829607197227277767896012056763907275044449169107437280299941441392077315066457316198489782014206914184747967583908163970318696264120826259284110814053387621308641686549556483291985834525575845000497334152924703766388371021571558089758856789876524140156245735633945777226264046227306450559560221861643719542373935060821968454304725389323988881880020479294692591624563021536216292129592741394883326750776860868739362635517611799601181787883610088116424198723458566838244687901782808835525959298683387731469472423379561466660014865671923998666059182827793577324202641571884627146070146621512979771457957986126481104396353644464358878534273031023070502044118852778860069314012425473220599173694172445187361173992759242338690429405499273405940911002108395816451831117538467660121684904128557153211697665821984611304242683339843640074124041737590516220812548677918876442892109584880367489443162441225524991702600053324846094163642236976529347881944151997958222333938241874016416022134543700439634407814520734251975202780507899200760544197352891485410034939455490467269584904141107554069805019891557079472541610908905999333732148682483786648624003343370485718034714381505247449761174601224261320671949217900782106086857472391166823473236488142321705324975987835583686284056070884489214308444973878644010886169477117578614182902976684822820043169148999707941088526448271751882753378704094260401441505479560568676472386768212527731356457467537133228131419739852279351095027481736228057439810888266646277364584023177561911568765331346739482514234257278678354363269784595948647508827699830695209287672558347424217790455249573322122587883322983875129773985311764467487564859120063672743716340430361872189908328907312713614013453429793114529941185060055980753348445605375418696986772897755048178338415388860899914207050366832415209433763866731761160184731158137985955017401923867422098092565708964768344842254015229342467820944575116676198589485494465113651547572814913163040979182105603223918227007994595792118637697838312055841376155352163204685068952647675664979696992012028308523183505978534535092280351784849055024758669846544311317149622549786616384623880279011437488627346975506634502342116645102595047328353800240310044878075769635577676759084351079576752988118132123354691850728088999509103561090582599599855911920953387757252402030795468649347140463192524411231064640399874011731328990212282899452697677433858016850505132604901855068141483599863631777855159239159335119495772604716418096920022120113944524172891818316152489285349215023820066549427286382092533902780637089889201604972449324999589454715176151602795249439036405919018400407576919209362877659675764029486044095745084079612214562707762404569074076510978754475489111529777554922948187810209669581346158770931733023607701800254667238481179214873927118689719242643724286671969865347807773790370798711013514702299753160294989829758710349163875267080601745604721781549884128373035420363649750661064810230504993780568304570463995965764673402397871852222142562841569766168223681795060570540414120837983574504944399470729487022127005065975143541256198808371957875190590229941439584716673016869326152708894651268991540815357525095288383365081637136949782815217042699785333885673679118814070343238696825192327368702770733189841539503964021452955097338845285523907832274967927059525919669202602086595300477727573387620838278963699466748018547352038670691021137920122455970525082833516875607684182399757532922579836537310281827459972658383481437741519634866894288236128210439411271898602334622993107127725737825329193058661702393516090235942828271469350725295548081897695819581485640354926803194474072007851178747372703772670563915157901368104568779967509565404616740958342533925641893205802193666216711697131616003901161696581124046181390384740942972421503885143258908856514089857294154394207867891667765600301717870753047431676878943237529655975669072103189822537960201222949455320806778600669925606447093688700697269389371240535664115839161886991823147967598722357990667617595909944114395653834487889260975526469129428404940213896191257431194963099763332751883221742861547090614110826104601954139342647212380664572307638151028609848066140301325538507242531801635153984863230774092053037348633161148559858442819795832480780258563576523185766466292490490203290578351002017273493344409679765579276835068767615391128412736854826036325210469569878176556994398611203631105376850878306606454331304837770288112036297219889921757394259575928636638751297681435099556897418701213827709756233538254239534897653594919174485275683819725410062895766296347937805978225591143004746614780825884600647927506981881150067645605754051716576057956800893765642776565458439056792560874081219159076699703683822971534106001340544563876636568102012422067065330583213660830906414222776493079110126738944574710328436679602159141891188394624326597805905171807993144851012066757364121390422579520033708895325807917827652573589093422767758952631162171168941594342221589298733874057271597861850468745573877430373819345048997527774287436078851486007952867720773496423908756878401484462426137566053797205260795907243008259561443333067870173845823983574184053966824143903224746377493567534338946488836373876261890936426260603694576556939098671540975728817842339977273124301232090790876587900751285905217008438992070789959584673666142159997665479314626473995971040282006274793973121928122730987876618846501147126819671890766520770265732742887099283859760818913062756022751440874027433919759284788467222864029541634055718223153871566319834150534404839345977884270584528689117560707679884535461382114641630356292818978967709557921477331631867767359820258079075784277705413961546901736936929374330386933114937214304194152967692390427865309183082016641570981601575938099093469113918141021537017544199343477335757188105887425485724135455587737746630354237136000757534166762023315061842420831953718818561185815113766718534493169154719014198023210143872010537525100014044053392076532617049334142531382134327161207645964861069336943178540396295465008595040595767327923904213831907587105108129523572455686275108562032936916590800972351100464908622287349600617213223094617893999456084984313923727208619305187926930515800824483215138211600336910312449029669830020234721957297421180455790912504433004278514014017927136885525239763257923779448761191646761923570312946801744653846908502832264875646888977717600663257931583034350718382108744787693857701067634771571227369562598019408082039593112645906636126734166702494341681938770518671507048645114544429656080155044720209017869758495910960014210695193562896172034769915209758287770844297759786879020921969865158794510508275866399066170195239443449404144877486131639984373142544478237923111464370166899598367490139418449317665788520048895244041729599367481892319703374399644185736137909778063485535933108089887730556630779458266410745019836097382048159492487866245207340292342199990484486698066331426512414909507677444242197090127837577391079796981110328566586659924752537068493157481996961022809180172522649787639841775665270936927603260932358230984963722721232519294706819071937592962734341787852860119876736151906123982724903591396488262773103277380527714100384252613876197484782416757027912682382704545421635400112949066653182531703150953463221454313530783041317440755412447409858400030387153521116549472502113680597731510511101373791448515460352393837386635651482874645465147934782615738752188977017406729863980480318418578763857089487124991868151506572138046070821001596453380859010316250233766069087844433607843779418732070883220652289126281296579482194475169662916600057888817543029045270446040777008317747712986349867873505602616224863729931281807306040420366534477117693594338315776132552357495696031604551107664715820049623914478809788222844625076364079374479385635104064277818708395534561060044292803403956086897378151066005856586039928602997009480286191576369524490391312537392449294290763482551671259012775698192679647182836092458431911175297239804957981292843485226749603196413726401431761970878268669923801239155955349320990928190354101354244674202986940985775880591598364592921483457228287678904091129977650535509353843700954556196580722982265160691407835993544497668278297969265071170519291519088374255317922329456557022101183025401021750890246923459082729359424622028415372829575171348878570986934192281068688567749538987774932062468535427905726759012925968930184004237469378451296105596821588822980424531618148513317662505561764099949686221380438670456256227974847260922987114333460858720874362146394845294858388144154843748811466040279738754793673486615958676169970165000295192383201262871948051794342632009601478582608954060236935815175550174403610123772712125626098722999266189882737245203624527996346105181909026229410039892750371964453452795736591217074029377240163944622125636090741519722885337671459095685846911177672420292086827997189355307246699793536113326133108139464099035418700512272541219101846695205483625235244643051098731330115472563553899073081958882559132340060270781690487632320178096046100485193638638398738102826349649345128612439625451668989470857430761551895805785727607301251408718140779297899539078888945831414068687779517605685061204440224527548621166923716801247774983604698330511581789237958402126020201731541767259669570481626858506715185014004883220610607137555834971682954321519704079641705617405392180964950947657269054979018113213461748730784171621282988832530259276366289555472855348354801723445478942965102249569778425672987500279415293829738757298663640202407808498245559275571839896232136817250339510924269839392920205807446146653689550812595740459323324241725131834990801922585760169311445593491334454600582622322876477570958151497520029220699506251863885457845469608558378182123258781891372162389090712982602966727288401600174432556048153173526774521331250142746166155967176349866877257673856542195646342552610053614114777159120705088996065328448020784452373928614909794799453726434609315587136918709112940788269262384403121428661529593814487236367159590538460970408097782040828933518754472523859193787033016711071223367149709738992653652519999872952730711298486023533034915881754484934402705138084118545589893365067600132254878030525618963930615534238468863879308300114198568500482533717514065174454564508995694092622720570039272244139152627731144930655901035755031540920087652033778386796083519116492146334992983699405754615373190420690090470969622425862784332324818409738900021456195112821068182110936902191193219959183279028145459931050490484245231709522796174058010547127009826325275443400392401599470630513233284480633492290857820285045432163670862262320440066045933886109053532466018941282686712828975693674572325178547540749089829085624133172717442398029185671868307739088783177428341336973082016030221771289715750926332574957777665825526629233869556566112881603492248459293716733143158555539742145253677762754650352512645166360458137338789061017107378554164332972357628489814080917772650927035374156806682589952723454374226562599216204058929994193357528998451242734144677983234795259156045846468999117608291723977573980137784130677986123403590001610156391974770373392425864227405416477419767004625895478466952432135303651911895912705600090929797476067906247744424650868723023063967431454703334639618367770326067485819266534657189954705488408611172697309131387251588966505882375339118034028552693493012677286065071679603604908883435574329054012305158518257529199765115946921765478839331707834201283790477973716135138125880216389053846457850854482561754947022841896896294518583754387787224017281787097346787091559739325317855757878854361460675840785928114551364005304076604826101850732671813051956856580018003929553283635545897295352755573538668600438567680405965339529120513146463231063596099734991637247312207293884883998060545267758314862113318151606710443787997102104989407583976732987270425600821572426901912917387584135983869123764217830983975796864107064700882152694495811716147256975420303274669763873840424211496402734786702499043574851732056848070858750408583143598906835863183536464753138105991472085706955723536304318711419402320385576802607141085629977943008840251366578436250258951532430945665741866517456252489746493932416645753950708612223692124916524052053881415902067756176331189994200776346663845131100055866677193433195604562996716740250511492137465340060954320802358492657525104484507073233130759777479378512863408707084958162924603495026436164208702701621538301914460004008611518578156061524627306157091123365333598247543504362453205179284323240504164501272741175183794897296053008350353686405608195318125341954016742654078612236751754418427811282589213149438670301497920141529943913895610598951732578396552694326968710631678383205498050567486395469525684315544246119214548780948425449737422634483828359200666017296197809458127885456455304449962777762204525132252800007459328545814714096739179903637490264215587170870721999710189292989921082133632615741609564078508840623467406710686713309420407462313290704252359970434536763858553615265835002767103700905923689679615973851143651531682116872291374541218662958984103627268207917412196000447514657570651661459404331836563888339359336779343234136046644994570577432544925695911900759196140225229149343719296216182735151982517147294305058165827535903208350354689175473859580870544358466009900273731865442914351263188543064181865695256118072487768861775168195256961488656026836687838148888267066085624547987991722673169094750332095208143116078341645055396037623833003752777073034583568966257132698061757314226974188030948309514375996678531651909255250980119765971266878463643808757906075489848315666612054981811809076909993680594802676142439377116630640510793579491609862927194208943741990224922643671255866048236031389956675880147789669575878159542054775889572510869441873727722195909160389223742834936108710703240307749729967549360794732045826396933333142603397274084663997242997247333837332169101664800326301677098972371317162251942551881070503871077779561473238382312057491539326925999279672633946920892095938161784290116600338456817135494617291847696983473112891987827560038183521144427168992624713766885832457430948283986099176562038593384730532281535016801001997989683366487465648570093772567623736043866142380243355418759127324297917647230819190683008274261384655521093970233119043583153269130568627800227901663208094120903330412799099444261551380664461301050715285634978147590341093674447088517123864764275172137045165358398158731855247525861098211282192968597918010020196736852660474332147248475610950676897851567881655935095718121045925228466235168551948966922964988895343766887517678936371864443007780334676324228206463039381882317599163128789327644415516051741388381538449796406952322530581422393482923170734339227827096372722869200887336382576174252031689866858152712314230529620771493302202264677565352445076122134636872421749366403667494586946613832033462365657715509635405019092683924561577510209876393930296206978451171272946210095969665428869897939105958997286599725494802852626844430714782349143913712772595407331870946689455317231750207156197990435179112752076151279560848419293310483866786846355469258000252540439702859289047129260178311562755212090875247680775402710442493218113373768699479792867847375077808470441972326705907341923195356667413419163411108558949940291067867228649977342277169239225362451810640139521090821023100587240425776430287004340469110877145975251704847405890242271613737083536569017098594844211970549699210303720017571712955858106527261028873672914396841824928325169117637758550544015048793648015511610892969710912896855688814861231893824586115271427909915029724631215675552556742667135399679310552854811043047959700244104512835457948005415555162554536448164373611141710288476714591652078718808404943133959154617450656516244833971145920568067275117738540374429266727099552868434846882838310147016757095833962052683328281945101829162466493215985952229433723933465011058074073883799248333163966622440659250901982777764272224093590414290314449602937024064940314948719635579513432115460113666232178702688618620866749168863979505685532176095853239993558770910223117461250652137542837401653947019079258465859868090134177407596274371768561662858536812252704495292752299645709591395999667610070400840532309532288700058753802211990958660010204920468862491760545788591173573407921463253452219054950753646563865788305257587921463903715196423766586137603274694743672908825875738115049261274532341729673269422091812989597980303210653353331751451390919388265953715006188380404192073387126132689083609224170071454038857678844179118476435496056236487331676424943938356032739624138105665898266841552615522321486581232387250680453196099786200211194147884008545521206241051421146197773227627864122647020712869125372404890860759754090918592533359982838530124275546013685230436891001257909618015298121479292147851925398113175847089510927232158953835116213160769386528011525714173980172299857748841533151375130268611189465753227669405279861874657840681948456982157538726418697812706754845960820160741197372455726512308502392012120362181311428343452714958881210636717396301807507048256985628770313545076201709751203868714562528637908824319553614724845290488889913094933254253574993887124105963759325935272052963817137907072888985597060505083655366937055296278995888129450892547853350943075530419952719491409268413853873435367592038092614375034003530797041005504401320253306885489346767329518037868929211816110394233950167543574124866473437843464372980157323985690681996212103661754052447567505112706107202043387352970029836737904896471698064062256032556565270584022548788005125393559719531248693620895731010011101407828983863314073139792185112196532200789961940513961368140762014562727552612283037175722770409504900123827722139392878485746486633562186961636188627663452724539195285787275461195875937722858709229970484712356550202367429623664493748748896609187143707384516778228957898226194847632848464623350624812084113474820557572833743514638541892340035216343785344697975399054883542323891926764646642726545997500159160171007611591201875178671845207711474490633605539775312894697549814443431642845027989676061449025386970773763945930913719608835397426317587776882918800229293504106696019637256713363284812070704532703341130712049958157488247491519130019460475391831221429405767222946944459661594845166997020004993373423290014499250879467065833719537474861509783983539039773598276016583316409404164645350912191570992245039690964736352730875657359633471920441135160954032306325671137515086605222135402005630591575896808621256087373935149336414717542245957224834724598845301451266114068535728799704617359291196177327549500251344493513339839434718228832679790546726879305238862060574487919765322894220100200719042263308319359009405160905746789203359195269882572819634437399943575817984275857044388869893585411519866953033643519367877746339042399718656878982671522788975250943462988094011738561616982786720388264891614825986901465231601611710046612257174540555256046579957138222575633297467663447570325085569034466656160188829838284301544066059914832052791383803812839771149491208415061400259288658444042807379254592596672960375305779623932519052278682736533806081066022936130553316331469688875436033539335441746995953511644198355304274985980425940325725716496289089211444345824388032150742031505698337678047916917766618464484034157643275785675380021203122296286662973466387093439308914574002074508573603912905432397682552152747413417030421770246749361360837785685470280931816726037217292107910113633820876803862297051104296384339478545633329285152932534723502643876459707499849600831595825539165025860930350069970624706670708992865245594216522756286566160545361134531294418588727386910593306918408429109331419656341512254618536894593883970789163188176114264484186285063931965925753138212504474340603815695258868719704822995390641232990569667790414086978809257458877100622024319356108277303630995957429003405313920654071157244874733172230242301590576153644641306775704636238123782774419210141462092475753571695200583586858667539959555636121328933222495802558811255372209343420719652751409462241609840299287157439444668429531124441007977571452018498170180040605469276887150904612463402480369611630204510929936994228171398202397287090645504405375935451403104476826664496353086623264425600235522556797482605101618678857106908328815257924124819032063896661573245040455662296332567144324496750096399067633404910482111071125672044596776196907405746085690593465923396395421436621850716519698818091233779653989828419588621183193710719467274473277834428304013941817040672579882675030370642864040939614264609535707349132093844141788189003604724927205240821321232040866963606366412397895751880547599213915640834681964515768045244537639792701991408419404005279416790723980282528359246987937727507990798477882810707157368789532293222602175062288707305201333262661167721144069221580445147151316290357030227012499099270791351251196544588088061774507925039087675313112618408458749431664360427412517769381860643471971242169673575566353222661340798811415668158569713654650826454676938375794834398665428535095503318942386112118603807005287688531211866199798196408009354728680488091829548651277908515994888418907646206603714633326350637111597604321289181362879326830291557307333868560887392434259555579924373445692382297351842706967810088508723406384632142622657707417560856400881441646491601723226636432244792636013834762515955462126405674831968882174438145943547466211048985825928307416878730319694304753611234818521009123017170737479858600660799153698191305955891723331572208071832906194265720523035967294606364994528309244825786509825753465843943029344666683171081209950700473007291783679541550524028696993233277044401316498216202054361328380630429583702490132112246138864090218294928475130458507381676555082079184744495432495060229908581958303983600824640023523439377233565559180474384415978318079181569555674364500590708798281718619309389886030102742881156000639598760063472879748802690303638789633846225233801338894664111055109284252921781919058776385516419298933875916400763011018047869383437789971451924941220446744634734722323169358644640246670139002311403983872172855674556832276980032389534686564705886516270597495739026771458994284353956378841316547907656920447600204214289513724641472943252066869251094530247208173500212255081662291973498688830686190737941210322041964641797129115018408296754444271287702833827815131153791775278596302523445338705263760451905010251842393979317963583880839799717802999191084559243473755144952860426089940310170986089281773066579088189722203382288201693007016417026236583880443680767292252034953976696380841965084196839170045673394258006088918179121562848832506842417713723949016249644444856597542882342089608413291237765835345776506686811906333128378556682915776962738245726654810427125781052362221299755636024274306419483653501013956129467814721093062655978151792200832406712403286994991919691773823025594354570648555064036187188506812641006252262785778112651047081903073559470090872043981905672143452297838448595832521544396472993166425131572673251666336827699041265443659112397251136033484268272886099891294105131886145881376577526607863525013749882817228470599862233581315136925991061558373418317355294687017980842741908593094215910944844451364472100174719649906816329168005099469339899196311042532967155086379823062005709526961424268235225499849452706290065022667335606225223807836089636112021681106769935276683043334553016531141213173459347087908072377126647666568318867245857115581665795311588071463444563961854970728871834853891192909188944761331808581343170437800199810922392525328630225165149799816509660845353507646236687193673523497650438228869844460798698382565205248131433976049534727491117845038094223218614462321202566785795531060158471167565498264799985710124467741540209451745634712211672437884538651934492022889654051619250173074690358626537510138431026915599186650086512539209099427495289493685437547609295002692814196353287871620042059990925605770777986458723130363438449573956435142180259826066487738706124227532182875888147081316164240431417588144174773344946791794667344031209103756983581768060762569060832127403326714100238196809287966232789467686081586874664174169919789691158829114662567888347068237446890448086158061895623724159945292167634024190468104152434468473811289098411355217561458643110406097566188639779916961044816514328188457010343049497235332690352789285633102484163403548138090426504147044755489868309842897483697102338998964885774570413275807368555365736018935233005258601339846543611730222133844826184229698603142163634716208453843982397981885000686265876320392042265742699083519325541500155249343650305751386264235260219642902941886431125983004361123700365727931596555815027970708554589512917483792878405482811100456739246333425270165430584277666492976093479398222627965661687241340451025790459158141915730765401558287933166087382175651295742992386494903446072615657776470378313906217283039942047205587133749542512771012679558507766895000449467852647331416695187110462289668820377233295950298369956925972438257439046810811488331436824859506828565148231211635207461871023618436410279847175557020919560719852108021302180538402948410292612164499000562098647109146940707042629222972109598551087929252480898271432273867959393515887596433243926734002967120302149350871229844429284380781540827367568747135006386630987608817594896405802550685041928375463087229729222208506230710099564621882837389570581012362406039045616883763655993233159700161318069831971585429488792289059094686554972304217065397533571139626621723645210397936539794210735069564939298906481282167676191656549995149051652989113105837238546356331446050946335952114399674832598698254642216214832376409838437305531207019024523746468393988642130131066517525863318729000624844846482580629296941920812563931536472752615056792629007584831374626515464008739618250407572994096301203970451006479698623488525783719956840455131903122367699928195028155479291638558609936534916175438906385897457458882049885784365024256204585937362098209850522538042147962700705390583640959005394351680874129802260903883093797656586619863005096156754107407983456622560190004689646384510693516161551291586735581924930923045959282457152346542989553568012839357648945962223315469137659663154282435719740667657526524551133237454507546390670839111575056909431147890681463041517777234456215610238364848647000336248673922609609017456610922948964319810730121251149154574600664622875205023122866534184829328239195092101006549803365806888480671286383174735176186896969345805568219851673821262300065037573123077295230742938299692583658377346912716158778649208847556961605747894913426879127693885020062181009996172317330489408575666160406156383415033028962899235438077788373737064257553630912311945241466262624770362974363101546994197125125744426058094160113839894459316605468635354469363724610114177470488778218680136733245009843666504205340849476757619194287203625743895793998866960145108107354198776247121586259413781476143615192382106120817816406332127862395013613802442410339254435937000470453084008208612881467576232587204033241778711017918048680623527351842696908556662828324597338064999085034326753809967844288621812292786001902103251078313752837957118072683424485802791431898680032916563750165532437975475456232270944583313568462358416010438076154760614932546764121750486550349887698520279081029944199518393884330240410448489894520244654784852618490047822368776539354034579646477632664321557580041066457371487903315319538717937945136314284433146580696420808088460931898752485094994488484497102403403847829829653406033473115957048675395337358349028336067236200352280800040061673965631974784917146687610615590381584366338577609882186210457996466311802011083533002079989376139814010550197496857995708875360525755404616697048049317607932388176659679796073931733522366071988682523842429498331773469011484644613652015769535059869829553677892152457622411857689051395204700936229064587143993285365535428787984201283836625758970600686377498087381075151635487069876901649864784629393159245461281919551632417017897073163396138861124447242165747979717559713718424430740871733668019851743649615042046745060584252971680445964640633863543286061646181621935899977486573272488632979724159242923096416697879318873698263907585107353327950660694764756843267385244197281032146185246497462404221369616636586990830386631309282906342721389771620407207161411512049193531413535548875801626747016576550078594210789892420107328889290789879482700488785275275538592043264475347994976997948257251269063029043991883816987125578757085249792320276072972096895818363944277167511838850043725349854304936669551795896066723310076037758220646363118684844672832122789571090326773101557127694096587025804997967449161945206397208514699878481526274458491507544809682192784252436558514459296377077660684408355107207533596407885831343030366192398766598467059311696150828987820833947104990305180989125880815982030295009119815286139328566397050398177673701884185817660626203346836353205159688291014062928542737927349482761591548830281638534731289530953337559781655548616603679336309266886284447853555647178515446042142135642324346741071966943768659885978168467798283802039430981072183735115842401322189045079676123147523367813245681978756475359360286492971225359189554538704148285303247841643111589028911051922254927162436617778639303684335846014583133332444755762906196305877330432573622932004117436703789220107825725913148544906660721143015391658535794385899374468416571989257220025276193838126913015714716581383721832612149802468374154326079349512227001676333566466649843704210028029245282531437918928693086213316868161793493205863808588802906147782603861296630264523378550247227119062252435202373222297564202139625926483373022582157525915151164321560429472845441099069256458487884356443803586352385089884568093750346287935214706729956773773600161893829883859024918051479484118415100435197438267681117809321463711456268900213860856425569100858176617242902018427851969398583449646411921788422784445483442656098112426139549876285228749658758339141260970119921396064299420020719396613812907076273220412229366705549125153653725604630840734817206834515254102412134119025708237240091341165084958312073837690073974039637330996267760446866600883800102637562845493029290673689786330290248666239984327555397801445812211584447015362335242285498139771049271875690833188995229525434741795778103631371906821005029542638182467380153355063014590177939741815549654981524032211619957879925498322788335283617244529933229143885389194156976035763956168768871446413211183710201036752406398655969124791002415844246767507642788659220986399190832620670971320188342361460825777900555606456305146428552348324938748208577789090769951281456822847042220992770538711472203014189513147089033846334373967193030157572878156333316287459241387896475614417654490928989548041530312316780769404386589358457570149239770458826041182718014807882163687167981640246903779253015670348567169975527778195386861101720239843035857045695942699465283662956400501851021727342658266947692370290477925046929340666892288716691644088701561412613822589757568164615598581516419041462886310580070011587489680411141780169783714407413451443784499729299467197263281561082559097148448271957626678847095603641332698853124980129462128245393929525206028170324229474088814624011368273664428220165586706358275213476562502371812245276606455966313645821027150213585244263761906996052025717663599306009450819593949241457969977757858967824340522055504429967317670852544155351739482339208783201345688065078571267460643893150727199082005393752295621149879665032337059972708296852094353404976199434063473501664707112712867466607678669492278361496307234755836691948471571277758639633921346251376995941236868139798477600309854518578166156244828542282804782001699009025531259082666490377766395578946926294142042588043045259949765574079890734114883605273819990017608860878970122280592933349205093450073141037437494610458753487953308895720992318706450926383679337861976160042117923153825546084347628557875228388517227306984724984191626726243176775281632465457719867065485672962561845704756650450199670782332826371621479381831240781767618917613798721550589085493238407952403102539455234259305587594242711251336825962156520100751166662973018353084510031564077709571961952623817272668014358489353235373390112597968939517092762392894235906878525253490613698789672101119663124146121931085655619221912871718428808228550250621377823027563179073226211300348401684880870832668371959798407622837958157892882627716391115974800336551210853686946056229778317755289897102506245376071809564611612254868790811452144725950329950276339598978461248900820827557687067891492977442741382410059484736164176962459277472140184179338323501906485061495154444854878971666711103062635554666332966632139671984764516406710400564604669790622050179932687032739987291230973494661775604641164612958446559714933577410733232205462362518653417266369068675941881528015147627335087071056060455809428791452585108237923754802016264291998948823313163382656279069270237848413263553148454169798165846986814727518921269777707865730572293280801446573363100875618318967302550276976755680851483694977776247171250106720893368562463337213587088527328520001876226887074555018236488833887654337827166695308622714650601563854561557559240086039012453297954437668674751969249283697054508844477264317938601349284193951188023600330866339773846748230893023840127789977307199228459569178688119491775621272190567974520747236380198607196069677097605454394715838002530979307453201325641212071398582925237623341984144767775907962861475421429573490473137285640076960266596320239495041205867995681141396603284215695639864032632220721911696993273749135778295308543362081994402330805749572580456656713557969575112418633748061127058162914004224812562775183932075583080773394481784674579333706036673229072301215158718661609550724402779452656031353738090710612969043780166698457068589565781804210089496828619743390342960006956143010800758013846085619427545832266354353746325191050111423539072810461289440783722088167350065805932397045994751460249390349277397129028206597087978147057552866610945967110838067583305845482519486512113870202113093189242881674160613103839950821292253113485664842730116976071684757684067838994223035523931365170775246990959720924667973453172420568200931236543110324484374578139121039325691409555345615107472276751074824676963723208366561125983601349083106914635428376793108895142117177297216437443964527301244902919677733134365775630878354011735736162289883274635717604379541534399854880636542763233868958205218468556827721030682617636094480598383282621971004393041632848322735439697426562497576586646461560701122651460307856136557316672993277161258220085862534226182664978132201652881116430171741615976787654563765932975093053088772964415433999861096171302637055481175504859465519859524755949134021896317529797795930237924662521726331812442244068978466608485194242707807034723889389512222148339180092221582826112032613497518754660830698440716134559304526620084295634769951696107415780565314931784249991044117338172120023642400982194265401666124377372504231158479963511463151413394025018420569359709159302297321685837727694207163475814530562150937639801295253727817849707900999034678565324657270096119864997905394729854759129113325975446598276221777055428044395743516318780763448977802546812383371370465949046473407159459357581109463375072136160031012443251089715400019442666181294879598825581629892187655342444304185064220048715431339264010980640857243672567824350664773866082417838346797450126380623226165560647932954827282098734789510703312809681536581533844212810663761265667454694480150278756060897698431578178427873581697879085540248905853645681450013832377623642840312129537757992969384943489864615999594052098503371255898770688063205829140810902158096424977467857529724429691122617649249452348493082011618412086754601518005293145167360977051942368783566800541075380639290688952703165732585989184734364132635332617946255469754043575930806963920538098372945444417510749989642516346554595959255072856360886549958175991679965085482721840327814423004663984056480165153990764496619033750906494104790949316087063098431457040725139799031268060135022674324801593140771440790971150412124743351257366041836890647856002556001217573489582466161327638151884991514650223280733213950875910799431388867966014720101151153092315548819960181962390911136324432110916432061316806546141335525908158822461503038008765408977146209308695923349169196301364119403660128185593868261836179155423223117032231359182913997767387347217822350901688715657370783511936531667334169096185789828072035637218820821836827440041964281652709160445728389108723313521112814612619088150448056389374758146935869607464830923569605289617119464154976231721331160378542079308694118045608954229757684457219290940036054813152022255573730151449236879705298834756236516633566418154739215491430293975988227714659325041900327392633826600749008798970099015631888073008992274589430720015302812706130486598073608579571656750768609991822925357087022325457442061886982788989919529383584110507968713637848621272605678618615986055904390804170187341648360672505737566940244147363688765025086662175370707087862118285459269188615649741837324331692499477469909353840424077800388882639529052244336052203432169416205910904924164672787045599237406109784425209689893860870480998078934888744042497669392888883190019901222974580042941056663714629149788715235777408529557289125870552548674900440235497063404381789011940056746127849568617184158642050712848821185292811427616452328275776399872161855062680942557000634160474989117111645632435523503443444147734816457731457267481601910106636171388094386415084123944923530327469116332865029958062463462818011860394311568969737075871567252748419787066686079494035758060880238370283550997710201319224951360421975079545190837913546192194855863433723929905661613965332405159245120278536968349773653685007278576060085206125655345559617290001807259439429627187570355037596745421539412808215761611100997466823838368109932416268402999399115090234872785826785769627733660414565596227472135360880907586693725245424646576819129426008219338633957879570362649368397047365940099595145726512078342189325064266051178757725897417868378698633382339463534742586881395922802318883271529426639559828435296218769826285119097372659920121122730093192948259751585002446541071990048290749855759961942942532604145753301149068786891534429163319046130762311744559604926656508977069021847214964759340554560514443095973618200571454658149763578368843593177557979589801594143491378594063161836724233210882608767736550801703510952090858579155746753042498167395773958136230677311060766921425926337104836551390681723170598520784565941701903829173668401006748278172911403739736972648264052685937499182739229000220609544491598373143698443071147398949238204320688946180544199119373712859317083335443074386912537938630213274429975197372633775262294711181497289146683285649346841159844217337059239335595374652903491720224402004314179882348352841896139106719097448672295573169793447368303493286005370543060783215506344791870094699737872830920113899708818866237504288024507070169598148723727384010140110255922976870439228130162697591718282732396239918868044290205013087503094174764853811479386908793891070330329205725286010319308021932235953927009081380851853582705040708052779695965181531618335091144708420342761305422833644159017377659742159307229901922756071396572879294312979252035887774097028020656447322079612908342337141862176407644019135740672794266532642151827426206660527136190791026418963042496819928517850229865493675381729821098200306783530001716813645453392355563057017266907656322043142466560263567526358269810651460668504502493140019341646514644174114060323636272460471292776521967394895780590974126141038271908600218038948924260801868510346780033682251985100682249296046561092337407481854862959006708113087719863185770562326606511082686351968919493786846679080163347736400154595697953668617056168636165901845600556329080949361111770490645939223219286486520543096844094713570165494875716544134420124135172272560098118466930320886048281247344241861314029320194642030491396545742844985483201963231526154184796449630776226239786591475247099239270859350989926852173219768696871699503446843620856308463388856993341188498155496442965332762752481807537264327234561416769368339043147539110735800027154949097204026253080049197154683758254276561292511199637065772309208539012922468192280513289390051184352853474729624968571866782240416847042486868906262608725628019948335797529154859521573301476951430988489610333920045456586851710561227190349983577040748350347955175252169177615050094162148063700101028119266538055461294933029028457934485959804105532343961732638622962741560050005011159152689872318190071950185908828760095321343254488034221354539940071784255470704676754909477226711232301414746248398451877527638024445676010965899631583676778015547543238243882248678442967282292221670006138984150154194082840434396380800960511285045057030309955019290219417335335173620726324918729569116393229458384155482031255691368980447512797471662617367323173413985728964787571044656104839844237677945792879072563891766785430924663084719548938369396464831891312052771727830344497757386365092073787394385925106747640956392493978400212973654818661914065746192741339583140082413816649368818902585740288710351635163328224315964827624392545935793535783871128337362187624005910188869943313351167199953331538453025279306498982010463966454453507221494779124524893918955315758930854835957953158210312760290471041516689737181556889135154414329221700939827061040772533318041968498970445851527018958682736200909909180267950465393291582123940740398744283015570476916620663806951158474550287385176962542049286447934837380094871713359233834990906507144923518231109789628064046189842640523673945829401392672838899439309737943037490660460258932399905761575592881504754525523892313140868168148089107260952617451140736807994621051439637354548953057087360396753347612170702386355066460360615906788570574083620630379091475387373650624060206936936127335764359081492317543906818055708200934585537927727101788244561641553670561063593852755416791947159631256681877074988706756266349222954563450934291985341756346109873131791384226600983077194263761979863624837323710843820776488632295472859850995697863166679230234702781337309094160383815841479596481649910137307264389801208180592170327097622109152158278124266449606844890676977800021392805350554183572342135487797809084818544089511105728354749113406198788002475565469988009876160358938234501953909255061453159827727485890661781123378266205672903095554216657042408974810197334928669402490515463097753462733518129331105576607774547320464781932516910124206776228712133421519179674301554273933242686556230643630063238256580224276473757119068054743403599874529801877953213291977224362060862267691603847688394354881540334414206000406289698420909661427222018393246217943565474058061529977373881408908494860774169796904262275449699051930629152776878414821589587752853292697998161490824820392061480288482241818685613612715613486868885869798668522484520713677184009377305992559398983040922540787875632577062698088272884661012108157617000833724313519405728179066650523301019109456474941412882553564895888736461108070094247930524435723276136442687688220278935302023063886681030823658956846646709975139250871838401995774662790986360588091918932101830993434989580147874219787315786491533572077792945949064353669611680949052363129426663699972332490389279865540500472662156457664750027700237866919701048571937750007456520688900300590259605538171194744256221268386333781825773077734460880131358268649311230013004630775524247599449325766469183724743722831770113765958953016630714140397678776272327117860281273359412678422146234925436357876824124602462793461441377238827393036112829270844806216177465057190376027182249820022422565703280011664296592868780896849519069810208696679782527353900166406591694076793023543483995817895280961543852081767145377618436222797745533483254461048474146478797564247886262598661308812012046395994418824364894581294766191732475768810963325424874241661413976527269894625136372275843398079524694059423137769552582373836647463737772882578549867311497391382653850747553538705574605274338954155428276011407827290727296765041625960760027929902060003985344465376320127735968132580155928500060708161689175180354487904061611507978933696776284798491018540562545485987576026392741376317766712713024107429530837045620924575106518608723941037450294889377889169374859641371887627208553063632459712394139957884024171600662395602698292380475595488056917518368715051449400327100563339860368685929568256683212064020072388462858573682215766827101667022830460190501023586057280383364388187408330530791142958134493161055358331013311610863007399782144095998707263407177476236010266869448356257702385446505109443858790334946198661270104804861971662944564167568907688186228668830385710347211635209098500398367213757449814733199053944324564320235002491069667564318759561980224937779023819469279676791070806095890357442952938809545107321228287464632854270259060026817410844385290462623780430813151111698603653866548692018617147614845093650643256915427422382623764018449707475200903919484321627229016637314547971649757859680215888762223093684047210921806007569391878647058951908506502952960474705140711794787581097858757369801751966024064484332901389294174383813401321472172754762596434410548760570787479831311520303765788525594856287656310872025758541299583914249556874902007298017194549083497644509841562779444850597594672508353435729376369030987485618039874393011978089789998996462647646992603486409910901752414117829481231956693602560607308778053577031833067724524882338118774934950407598741964142810149401050422592163734444715320603986455505904508082384970929300922116427316913303386656101288584880360122079027626781132093519652833073004894939626211935571021403953060956721130713669981084964894724414745130504293763915742090968319630959606408530968576098246748157892277634772513602811948488384630462366951301694281858691143764770336335164036907042231454530436585541023410667212944822575946259503371593976583912957041310414358106446040727993550699329466791703807558798404647611331783433891342150600437044914791529715639950198059221343995683527252332044117349554207386076917532424235811747105851393152696424045603669719583727052820305901715404085972120496135421768780252104691848844334653353103154459674742771984205371310972249023276403740808595371474820275971504267294441661183736990747964852795118909818196963091801328082946719110614741442641107486215578290937174407792343227957811627152744367666522733140290681146563675142276471388817499872335878335901344435369355282992878378360398236200418195530595371023722810089319256172325530598994086877593567754597454754405230018895172049252392611640228273850122507748428964772541600786844560113292825569645476419275756461302954253212595685521790206451189645365004004333913782107091628264845095868191474874176176440958414741473763006057252112486307264072661790694945428648881926697105374591168810966429071963525146442000667622055943315150086806515037868226136161046369707035284689104069784688852521610538936481542421518619478490545735758235666132429909611113071210596058890789455681700738854726274433587063972239147122301909763554368041791600451874331515752016525711022715676896496384795316127731797461631191664649539107472304394998948665327173380151375343903346550680873098208131178116982722857771769824215580490038464320843998008415136671045367858050719875136205869470645201818562682699248403264747499446039016690425022894265255756134368086342522872258089018202449111517478687522415903655800086047401699425794454326415995396470757558224621036141581637519983247395423491794985232856328294337529763553209886390323486954629296506389999865706703082281465046451265346412801887148547962828808439073466043261985322019313424674665627308765003028384101520798150674717488579465015234589139165120702149755597485694876797017571653071069323711880458188614678213436391906740712070342608182504948367028657880702722742586351167960883614114275624007969141197072611270084169446164251182622033522239905172628438928375050021179951915282644750703612890040758602580284488385602551389001857519764979999785202105295943773953745777303262891711735093188660149328493756725051907763486723644517755489833709226292988980817028923049156924238559800962564849181288619924861963732888689531921840574050862254638576436517009113721578038774472451984431255943022685973437374003563443669777382547986893028162429818254128675654010308363016855574813692614252211468730548963223525480627058303102473616743801891708511494002888366028523466993545296093687153050251646674600444315378712179821830134496234548459208783094249227858017299981056928618485761148090743538311260934788118431698737221043630977138938865806148298795710507531550039359725062111736506226385008128481128857784790467827612898617239371908570781449346160379864399570305161643555071833228255814254333427892361441694633529588850750747377708232069975686145716789085450069633349638567873859959949314136330087277197624780903756958471426352441965249171169301838024734135454139103509195890728725289275369454058917196691208716993367165002360019733025505049365218994372499142225785841142084122604315712219294446765761586612764538410625120070649977656332691947781869469796318561859966880047504089522477389457513746259024086293754767748444437511327189391236304858033418266147582290260857064006313456961175736477738965736297235033189140978618439469156246842745673872647754571625791940048091226943600191840414286390115075241972074416450287824993735084860409607241698580253429180375815428780703831642095032437746161124332606903767223672131180721032374200428914545430637247088857271519640088686494079507278756877171591030617499851972564013950566953792631314768268389267984458132889363926566883897598116834085764837465096633874655682912270544210769302855881132623874612080902162022446920872854263255504357302864488049883036128574449828339666465744067528096931422574507135219215758519555527546009097154812720587338073643606920322219404430109861740609908835039017646147867074192232801965904342546582044500367686990790358314291796805140367778178253073360945430729327307258262719574510575909082793123951520191942119694015984702299425445723882262694434685182829813899909754249748666496909836356448190786586304753510557879677765907007908498102552275587968040269848528942742182212372520666035700541963143451044137669053658085595191600881887288112082085809408738808532335106224115949902155181753470648799835730276241494003132029873013264528102807226323524830842157393463442327980595464884068817603869029028984457168135867765360416742852968174237271568092828782392291243980083354730416652124534038959251283201235409196100186767795549352390721111789663590446234401751816255837332639654456158967271500559567345640713466913348129952434030043748733173226655586160165523677844311655910672696726612760974405336082344704584920247789089259527089982131652835103720669628180173394931964808518030002537737632615034463850075709361281739793337441108213570292071966103842258627998691265607192571751616848523546992459553975459883025184932367961184323946724422471691484414967123496294556410563789127945184614573483018336592737974242902458598093266404407808684662320235956636313748841275574189906141685149266540465041734500565507187052889751038379259648718081175090632237294038155918336766855556917435371548778900485155738506515394830181454086354136091030258043765133336942462713346991470966856506154716534398876707798710643563231841435454906459272863102989578370087695620972146166695964728995022773372703911098940202225464181107518934557387757844525406721993722763091818830031273496261284675424839687687780345205594737077277845260669008029449719462680238420424091922441527628416667028808447046628209077715259872633383353993147945273597307536622866764697024506956308016043705707514346672670172719545611770120462763055434296762166699613918319260268887209302032251841613913772041755771182162239469587186619802613701682735387343258956845016887916184250594684053290542434800975586421396959022171859972163209069931063607932997798852512602766740272951173049553858255924899923079355792109742915445090975742334380829708871679655762642694183148891760909396723199396323796406535481638634616141747011385701872467426535413775270651721365923252022055236042100382168929274691016285332577215588765374090438212952830348337603825846932237513837485203028686096512603512955991113677043403021880324550662429540533338830736293223413919075293917733166816534530674150447124022782697866918742342971241186043252249449785117410206944426771556163798263646647701403061522347634047123693249744251129552523938382196279516409448269124460853444212609419201942138574436799258658006789513361297697741001249267250584977797524253615663786212680603584091894709563510954751604490686610178503495524557156044818008573270252842276030469032255982016855782362653449146202380053789009167419891050683709813290640075663126559202879760068383818941042411542457736861858894102066469224893772227396676670789049662388912315088860377532417782584411553150036139408669339747964882236768112891897633051251966009175205316813065161296653022053426818208257988415266886638857587121873874369097158245695974543560550225263520792117327737105589639199856839754710410658877630241478711084215097562092146215127444609456524949776469520885887563702949104517926234181556169681722598260054655633575910374757404074194937086158309035665745957376347410943259422723135510814193310778726128207248639560179876117227278881539795902344836104802804069863321446780151651389713404777590305781493929740917157102258970884200060163540792606536894443219790065031657323261776336750672991547356012262069057976335747086922946632940058763163405604234040061514101564911169950722313100304327985737931518635357738250980604744562474144751396736227238299788187447379544461091631984055294035738478649944137376523965469704101263230911047633650833660791612073105498593574344841994576600902099397132896646538628224186884815244412610794552633400886138910929002804881534756065899706831886718064836412026758807617089392265428260854848225503949296250585069680695573162140931224184353828218941746178483220962480579357535053525522130126386103257487715914526575189510085267527777385866335892162488014536251966950953327461838862290682788105833701401171117492977719255050265793761498057136573956965886589229582458818368437520840067301628069236458444435468016755528833615252220485746265492748843040227685525017357282500506510508175287014703655644210036606651621663275506160852705895687665553976390568995616339599088649164621832502151920292790582460693324699754364331756721059660533059365807059236510433015519986657409455751923203776837618664778288554543884974773348828220804827805345605126268980444833593197796093849031186666551331669396568489568342018237287264974601930896905742457923617410428785727048974133565028599683980498291829534670325077580248932367672567306131653598226838486622798564876047747452213622114986228210481404513768983453796655544232226491257478316632186436471566359143652386594647752325330996753173882770248275828734296673404720165301237896575197373747167014000197683774027927215257345776158773464769298532981210272997228491898944948502015411847444859776006761639469266736141327126569625587039211943823011232054652929765548623375705007485149171199174108595594578081873097254245280929416000907347836802498271589867995701082025000343412808578206364708841988204723050780289927136710491603601187692953872789389898751535398924181534893722641046070739697237102790533969770778774888192546149079490722223690353499146199907818637834298795095786378383405132611671961072172094326169676187245903541806188249519088615739005893167858274811901396583643616974875644751295658879519932951640410244714089358646689781281296189388919702425092097936913357489902028621916982335422397893121452191929112507783618517371696551930468931877863553588601900573693183419360859816728726311602232782750887307837460030823993886305963045394756369880437776352688718234787433718803543298975381795453018016065964434492305459889721613247888354365899140075621601770806785257668602180034427174533620508592133730801714587453107216921031058797710759930344664722489416276488948968714718573338303595450732544467988603813754823379515562460020718355999074705709087186582705080083055445515790962756928961527514010802303694876077550876551738452058306168560737094835662705873771136660430551255824097978013382793891371337773678472936064675745838865436185038676355654394706622504249122600901564108060266159442744891655675388275875919532091054580385153432888969594977936915869534505033820375999082236819070017088543871381224871998057795446545572396036250474588841061573223757120233658838810944685027598700510611142082953350907380925960865642971173076227424087302090032144050850068043138506858629018961454058546559267397649660909446425659056311340741895570993223694693417210593570849210919606796574745562878638418166179970183408029185880825842169662762847853641703786633801026339464158007787692202036522593648830427851839644412530821802162341112597954213547162340848144394296831454508938210825503118088214704527151604733067674577964117483787947485530136881605448360590314979468043758173036070998832115129112909180654902446873196353432907276407516525854538406894527855561287483193615008664721725346425295910968676826699046437528434539819141792369931446598706701522862382178103245810557703018758120961003942587107662591456649785836072236671986468737147868889193353084051287467592912967165963917243310951306802936439982743301395273591565523320080327620378431119790749875637036954424543617186196033142242863943954757207052432191889985380793144999299011680159465951840204712770223330532801186931039893993936873654793836478061281428773070633455064609304676000277759114944726754084255966504452057372278190916271453608582924061703835868049292237185634177536225455546659841943050192107333559890391861788957071961890597653787857910939227132988363829643388507601295490010654506603485935244054045075512320665456444033539879488680493176924188790421939610702839088347037103328030226770076614437050059434768664901947813680882194605365098163807891969240188507436287213544983470186273277919652022589272228420351372104768105872136584500809703229954223277949183214697085916499372674525954785011460985423987864755402190767184804602374554572549159963100749646141032801239499108646045907390943816300390769285749759296933553820922193210275836531898070274582749715931313677201597720128713446135631077476552262927612363384320791816386827098735247393380685226155174396121376850863976276703419419613115495720516716410611556077117891362552418463944499735339785591783594122467019519086503820697062019271593251051771821431220957779325806093091249644183947090961087137745508731685532412582263529418162910687731751160879744440305703386276236591193088919919008715482559284023009876530455111430399081118528482532020559980429136873739444195182752136791741286493752124186720773924155215622398720611011790001975699545158678920815770133196892405575483668931266884864800819512330852879316522264895093498951789975155201570697536190037673404904052145596657581501162199427992042346389473761973138604288085482574800064615283407709631358847012675895380608300620893766766781240269714809801425490604255387610653499556726975513310416201343192239325042699033929853086796002738327863698234958077888083794610115005874038801502779304631689427631230085564554391590897430843658086012621044525817704731661837389164512772099368242543842268066273087854433013458351714571092235816592816757504200530220214124852608747283837079481509180188570727228243785485690238242372606538932123174454584360291199464339084511201583696273595851938415961132338917462327105462500933535483918851051253550746140183092417239105540939096357278668478054676515322819589924672304686515076864429038449274411887344371115657713380278847709261249885055996797483252697852989897699841965171379244515736562042142117621820813421487621704184251028975154212450511153137233549433867646143660536616061299108449655965362072893930510199473653167580078399145412625765999903019624709004281855084265939558482334097066380799594851056587894240024960624284933522336223743873574304658771867035126605501223889986099598616337847800508576930797292309760253687736425241359735122100184135037456958226890287065389985174989198822140873824646132065041518706855158564091164777818002975654880086868955098650725908751174344537693472345869993692637765683759798449131997092996890595665904329990905074741018878855387280603465113158676765374954654313483194973661662581126444385958541070876591965027508577017984053141464675995005815546121501179458287503360637563951625035592925755342260552455213041198362466115062960524652325936036459684395026898057040741359448953957097253969613144799193817820196812143125239343433408216061736935059089426002555627368010458494394217614133598207911162376448186934634436352293426019716068773429427352373935844187496351684253519130277180677725363521098677620450233254312970148271496248763465122504008608097368555636634536013764622811799245733563330733730178927133517903496323927655705350499361859238766858197297137957353661816663454872968143530299223822684629300755608123058629359506499595027686683251631656490638147220604804155215690954806972888057853512855835466922373337995580506036924435252176833036244370357474760650979606670101243192679431487513906144266278585723610361568605154282193580313963319347011118647957607386192223051917148392555770441406695341563876911396572541475699011087978952040658883456611831018353223719909411107761608659501976848857129547833230173595490748512840583781270277960777932892328748829728723200144929295039966175954518451590715524837705660910436424736711216038568413617443304807702703473296699496213807037780502783616351365721740003898512553966461580574258861999018493282854916367366814195088531360089917503267872580457905985304102442819023387076374603793364554750643960170648458556205573390637962239928352102607094456538539451799336088798584291473997695628784824778258603918467252517294118282034495447545818946003972706049480123159765456098758398885598564854256249688188006131056570586662469402780350618037574891351227855537428285938815667528437719814826626739119817469995032464712092735721900682818765541462531580097487167067020956379966394301941548661436920763269487210550810178008518488558421121397109444325553004966769416704399892684045949944119450953457807276259231954882695279788344187850873380626603548280459732371200751270581116463637557719361172310581572033525064154798490110237259385981419422492066598650839821220769450599347089172857162680797378925552151626007119451975442819976914431909138163212662843552597105938153475322503898112467839585763751312373721596221401861279507263057095736552855557073349844644831591061499118103400809035035976196114455842789202547445746037666826481446737462631924914974109214467267203538191255481581819520368068411667122266402797313142444171200379823661247908868347907955980182251140211649657787129943292576626578994524879579208825434468798475509583468769952610384202665312955310758008774887024002234134423248126341593735718988788605291634070915735363695999988313749608461544512981522287626505256696857612439961034310620318147384981794124686699928658910551407139270004027077487944204891767411353361388790762402298021941884236842167144696529429690735415391094915921489037364823631531231831984885336240851374296934894809344847161249180354474768246754133316480861560936961923131653707555973739515396515689642881744050799344392949707954535403726158412032651548999693733790644940164722656095552951420302999145662711414553556660551375250189738502734379310081975931370702690229023887433976447404922710006609891723870799093097410812587612227694322297695963191574112344979643869331402813792425556615152459616002932849111939644537124857910669720696870709638279711056842290509075539587103641214666622298844497264412771361616187310832349613369246799605674231019060873031609974536639458343943467191755987745984587819142811748483924298363844591224283992854830729066822239114252959788496725384856148664509848411584307070231807506207340414320307424324414372244712719724120896900613571206147450301792084329582592112528273406385773332086728515847375930523408223794226987848142204601638323104408003473940478580723555066521937848262255116576459558300455099957548247158007942870373705882911065966174530804871447059853255433493806013913559529165027859490917775874395586085283875267289494828110152959777048576377434466959942246990787347622083097959295457819115398303306237971206958791600634354348247781290298541432093174960054482525025425077115190262346991165301838937476526085043606687798635388062712600138381885812389932669377709139238443093434887552325694298683441350308478720796833067493308389778509748848658932110354569514536727589268184615690185278853286463306231232296329935470901138968235720059787241359242893510010047463031610704767577198761966011986640568529119191413801594392427236207065828463729668331313248165616761788805119740742487493814076072119946609920716053582810677889167978344118122606452527893638523459540636776127301741024189896484850686647550807407333401138115731995044385404156266862163371430369601834543895780329321800296448982555209597841728566222915150952619699420493991754890539067576009058724554660298751441141461482003278234493987174745671419596252981828665594696171025668372739884248655483673552458638667887981861253185400669802651890010572344617656138076853593680551532719479602569376904467196918862461165063639641656809006576743959636726696289800433690716020028801768374560179601621333089174316312332032904570255196643031443677284964875270111732218792527941110138067143133085402765565464072150357883799636000838544070764088350363700963264402969620412234486025205751901915532231481233449023416822546839718220173629097049080763633840876191114044688969234507432966388148947099699952362744575278749563734503417683942514859422633932657820075040343583120095508222392229750446892481639949549509527921465617188927454779778550229575662028510963137454616635498709288965224162673504503834549958216407278808572813757268308230455672586781663322276941580637961695596916373174044466919715807710413476604134231175309937402369533506326392908038645679122557709000225586132582454623842600769021603465751844579205807584474871227940305168662892270498479792558101517591202090824957435598128423211928526997517848464218577208632732496418669599616034243105834949239762821796370491936711906057979467032524649986460123829327207251443144611822465253773495207693721001955870673543986949975630915536771574245305334970360987754333766959599617938128419726311764215347166511293785063675558003452753604616813286519207356733379905499872183105339215598350803541002998571677079350468740474059831623071177604779228247995677739066640534615774357263939935811447552199004615920298331207315695125131315266084471669423201388256672505462377469618465479799964958707917496635189756260783149205107720454341049960230058556530315474640089597227152358595649551918445726438462839387566369569948478759392271945208624560426998391842634791437474243387416994455509971253332308620106245378471365427011552649025040446209596666408764570084711794476546271177774545122154032366888518492961148550370261722677933248421188210353469701289166616237617071696644093571132877389713135389624704549585815463372526167687973045007227364320100422831523145738196781457021367018249054694575938517755804982166967068967920214510990301284235089574706948783134777772199431431504908161529893870424389650644529646434256707559542534196107663149380263348277735789179906302733854581325670248194528187505081813893831238298202953634009824530222347005420772033245368752208465311383483638613662010181415993395405921849001691369096135742705595649665634801026522715722808633153469805612863357456937946879892226425452458024441187847374366942322155493018021772252812513780495295478344797891055201903295546760472584868749259188738483220071822535611127365707839606331430224863236343667977872162932833744354520703717018556556764034327766561115646473732149665720678335263333769022910411249821847214593024592515449403214701498366141215362441727507682402181882309339429780606446372989582835735788244479330389322560904432741471644327636724620835331907159360225440495110553007082614778838697244453658619085116371933411010966999817134967959375770443640777457830700421180941206527328815683412516182673780120402969594031548887522342294238771553978195808873202065726674195813480938286925407036807113141051426580467132117880898603128362312764468193120647910830380141472562405167122097551399318008183477458565659587513131389014146593717555763713472774679864908468244007737269781253993322689544243592282706375490313026345825608136326903559798505386504310257425060877274169658218973340346666270042220274360891113698382681546751574668679476350193684716906946816492206766421612791375521635366647673317819475474957591433015982029868501552314050941801272458818842727266085385683887892515462669337107269735069555782352919656489575449491233601269999198563902101589015756280839561698542507284032691392665423709120246098541340972739291949428625692273706511083230850610268753489133606879447462999627776540490793614225366279893742718493212521215283670786319480541516652568183771333081065181619316352695480939538532174644511245119067324201229453276344970454127559412222118950072050797339315233922737489680019194984498890456602840027055105261951800261429564099050782912085269658468834913641682393852779701799491269698068435495525741846836057292521870872204176560203782489830587429255269246456804441145553150032634825363140240491603969996952676020218792195394097853888291109721920692989807476633497556138644171954531311358438316853889300831430587619697072401020092934419359389255085087459589717351964312288628374168637592210454921177220491434361598614422126797819809627191636858976876041769196182551459590673738137936389468272573646560427481386444129917961609677765014310655141542892884439446016734208242439773240901117477522174606385664267416141038662979934323717521051517514677379115790224615549047679731027510315905789085717788204330162947847922596549865068463073166103855654200636603318639516346815673850578993892627630490661944194933949392866966470246322990856502523895635054685268417412315099723789236067550686488645413750078215709994790933956636394024687511781397123525010122425975364496083342025502758868419391197865124543017119395419647070406674362145648947502826594322809644403897584682346395127223493162140170690473977979651065763913911895279560345375594122530813011942171682399744920258264742402102191462270821409145558211475943990960682422058936654220159205901302963396260982063866661829232713405449035609447328502865389283576899445279073569986640230482095176582471445527712120403007845142551597578717678097398256758097146472686743278085147322414009059694981084858503136668323704935775624492187349538596798068301788450335202501236927848481919484822962318538798443558679568512104925970794818154542806328786699212483214697231274733855781154725151804786400855412732111161644240958009016726395527436929916945874663404955644465562113750192437169469799183517116968331412613579975527158970764468667648159313100023920114327345257047402647117731538475852064933022413934953578355398616055716702590889429305951001421711151724182033265303230133596256705922807426642613359228550407934927472329871380853398245296163323329530051012412652924105873897287378971020950042563487018385441055628515533966386940777364712302735302465755466734357105870088418930806315260261796687120066011281717634018364379556614809514595419479146810442509837006572781594187582250829703591136475099821272940191427614048305312309064791993748240742139866603016173742466829003192136298719020933008853067100289426038159289174200216228731274115031371859635432505945109111394185197675264044924784944011738014746076216622873968277878306816608053003463538086312311076308813446900852896358517728936146320774493774840125950311677493056822545630628019767068653336650233248067835226189635859211667593239026727682713298741347790109192006204027686424716329607150756609383942203771656016539056932209390731581170279133743978549405414302849510666396684540677867507898650682308018077515003732573196773995801512859611616981528408566993495635647686913251953463662276088501637828056908180330086753010026130463860326604105901832625517890500739786848841767162668578567181805129418757118426730430544733540435565107814550866395427445232365388428514365118146604784969604760161964865990567455923518404918928953817062044520102513749127354281345094661292606398291957756016595608737914681628499861473574085483416013171348378370166914748931591686199567784275996170102874778518290457421629873796582439320764832424794722943331546645247961934823341732109564686550034169225676442303762419795363242178960095345829629806016279077431674155279541827187291745898083850237166373866583314835305547339906241441984251107914007521134589980397017008615612794465035831295144309544133726081188288876387831178108553235584219812395626731396717515364251143958004555537573674639525762431272861057857368233279518730440254781481580978463673659665867558536431514434566834316605338114056263021290621761634508760918570628463650051741204982036321563153874166179410815326412537834851013083122812543984564200478695090395458455307942036575636820756493836452502561107016964787719638063416009900317151922608450353005619548393864014837400264623223803816356603008646762324845297731635378976449548301589077754802064569725836750592030548767404310126495462891503993164711961786254447372429346457716968547299953687054458599130062580616248165380968804160686399555087767724151877048859438250712269821664430154035800301561641268624067226022572149769004146928052944498610831211208913530216678389510493397698627025012788363248413879396323092694429094040329232698682178046298190493687654511996201665864590934613780228483667280928281167388673404176697540052061448409532153545291827162410860336546868934960786512488829434665901232042517268633283138169539707116202722212126359571107976376068229579547190687100764919601713592032673506570193513787078810916977565227578912585376665924306760522988569364136523730348771840472400271644775835805913001466838791732965231958646667999996737820979430817633123617981809682668518467868066685037790199647062475044959388046284783580550718633539507945878438548600583283993383197237132669475915089683074553297295667147049661626952188823380353972347006124829380992276233871456341601617729288443542280821811340234326272278630115699808638032738849738333624027188404509985828776055820724931388905428042459159554386749157668104025482509859720413045881345087962578798622350154174926284046682361436537739378566433570187130300182865478615468193634159839137977144556984380828808706399511901144593864341610230530478828318950569716113224472219901263884791377697696023441164231552346761587404313061112905340058210670017329220742213044302421353309006983511915656736146196364593583966988802454004504797366450390340686690359559761376202683629064913096845623467779263497508846513934464000921767069583432186853339605016757100083277671435537190090703306427065005544606020878139801918049004530709917273515710647800532434365584034087340851943219872638741130185981399311664740828457598562318282265400816090362388878557427381371186070544604175914097769616926492587710389467580847540395567417514274184392295765614127657447436672495840946247323048338599242565206165435828495787758290389342187971346682949929413115632927254988531891655870363930574090228745913731215226249559970772553149551269467415988612979806847875623721447023306705981526518066458033857697859276144206907590206067219684010691942916685689336511857507874081506323259557634039273063940280700144320176089594648168376823266566077566942161582784204852991212463510803988779398950851703282405726681267310545035648692229378768235324535015406436163151916266605678602783971842905073754511127690738205272154154531216318176418424642755912894657145176323253873957453544017494548144658525777956126471788831120397407184633092037635728966665646483685701941694592443934177913793870641561597328139018009488316491823086913059374773568100452527841363349200080102865464604724482768319917895360159551149644280218702166082989551192471114842371483730887530217252410824991822651386971646770581300135862386358447981034851147638355853054624134177831533361240309253273200160195504649007327931461932814537650319058120793498148131778386782082132637402102596648189693594160102966616568860433258851438634138283536262549394254569794926840302913269673324845930403599847839879450217634630896961532606908882072942585720018631405030210142558613541608999092091191848330324768318334649144558076190291092045389897479372190348940853107006963242627508692195422720287504972086390958828150827405906668080810182170180383799454979471070546926046058106682982815600207968155185451032259167501762641314740667614262192468255638038526783535354701156815023823870607575147660662606004764579286795044492822700234826314993407331354064672071813410686932666026340639089477301572881574939871791939595923090169283017616080921326826686856435399361467795158682043709690569904908356732685283603630066209154872498139421873282841632926557064436762898619365628461935998974715551550117356510029313299828791249360995753598136789385655967393973496181458033200979547105291787426322549563181203153555256100667663392189697561503433798986779151846441355350420165456413560616336186395207760010421297996563226165625649720655891235534474807513797856619983169897952510616947826056520606899265058568146878190368533899163273755244385442546974851717039560569854386058597082874989464229591500849287442950204905047185984342163756076199184244485760247433015370307621450579520206167830867899532261531934987033105385408993801793533948208696877965214942206016683170044213897464970306181886051325192592699515742137046481720064120196497214045722134412870145574296768459177429189770196947828889605762128181082342549162606342759889277420214955395189699695143633858473176112474172039599115120570716294969890215378561043945228626777045767424391845409047440078057750435436989049792095979569312102392721763413747780560833723543113132800232969115669044399722868662857259127634568181369934371729015966557736875980709557364603986256879612822893789975927903673747270218015871032689589718167992731763931260136957151096495819694349592573756623417965090440988827544631604836414694601450907991297862862272232440347539653306115355616677611480832038388373987155279830986474914386371288996962991879415029055138928190514333315250380513263756106357106334873761543183603939127838684981209429523053046700107065459219170693886649918833974044283193117370689702061214952959992075469938641048700749777232450352855449340804138829599615367000329064196322954746482031808468224715051037848237876244363506933255812458904593925258596634310904424376490246552868436594761480402737740260672611728380577507780531935952758789583060580658148595849912842756520990085930175500246661319681316379553636782887955938834195038566688221883508513352553274305556817061694256172717588539702351342313988834005810832241902673170355506069471535016510384396685711331060354189076273689524318208106666739506596482061510861969479275085980092794215304715057781856732456631859832953070395176544270076586837322542857459505651611005468942054228496837900225942172449825408766475630414160578996601992888579526860093382055592144257244327653626726642113835760622455752416400898363459498545436936774381269584041856904795819380855770638023634398579985884856358153321413475129810010417777623465185317408095564458202419019257096150221941164503581304702135221935069528105368627833470637636032043955512503120692388067631030367779832412698896611343916095109596690011013330052245349950453704232089079396964376335004195523460195370282944365638927181889828146123687070325039310470864751411922430866890906583752612222096163149183049053031731008544348360987815316476905214322213940741768734532920708797372170215809857400404357706556304071942897037772813860843582864104907761810509274784235069030893890806942684292792620584292970231412210889205450190853226461680879385445493240526389198022219850196333678050177166939447606958366989538887700102586454556147039962219100663279888559574199661538185671954221116291497402049123469171102166223417303862439867789048777659249113272283576959256340632229173418884494248832423113499054771000295341940116196297660851976078014368157020987809914498956924174349487227072006796894935110570080214869700073437801970967425526734443714587291828809531027837119565203243914354436874237055904156157549503709002223386957189835642957225122686016511057724403424261773175380825713597184469502889053188943933434096848248738663510535290797431018677844982942764953931452490384394942536485363861977412748972177739943234977334999198410638116188642801163328619499588349921830875892359620934712766332819520224235112855554521366768841913372361747203997790050799535358453845056899408242663505539935191428582344199337188790179057837023765652907611350378882007184727104956079264876509545073759300775811422505616706954662194003250358647966513458170366341106516353927130509945241053924262499909289408987009396463364053215423762522262072115483920589297356835714841410021706018397892002523558735927022297295514464501878493595006035308517804086021328099315215834960269410973995364513412225532867684181726713346113246972662715336421520151317364260980051271523831045671465914736316598573786675888008432610905615673118541422038766148131994394149995222501209664655330156421148383283006775078168834881350166880596055586508817346440019507065357324536868921098811083811753097811555866964280664289672981779634874728504604545119315819747105291516196440061376538849484948310800764592380415028593086038476746120630479695512407464135504849651835933771948831766771362134161977309963809810579337803964573989079265989402526253084909320950531424660889517178821691985857177761827180132923198355639039834574366499122215513606772658428821961991147970240983581136925755602052138774158685906216149304334664127655727433402155555752643006963948486532523156626655810863535813136825415066245724560794722171805027205249111172865797495066959378694138189219282248736943095930165394938550316417610703782945745716731791737431472225715658800528157046464368145404864244381650636829333920886993858370950631865906513200842006977542641839856832252804344320666767856069331371252713619448042581529851941087804665659887844003928321416895513488009572835316903022004506742468290461898912881041012729543116858718833342789580676314310616917875850854218845620347539878790688699493716702112428151698387354291039884620016093202802214000503153982449242112227950256185172662168621125025312255097478400756326620311677387256261450952005360296053030762266357395712583267757644073946776194566748021483382454859585708931377835926336109517125799775352368644783228904285064616815935987659401543185824635349585143279971002687746943847800456968811306605577915741623083470473230858531261368790730191767642872667398577433814449970305347208226201035019943080673373253140574061390133076191482965483390720602876760788973493877203030000874585136454590464751189659714460661789745540395729876719475704593674759927578682900103969397546981410186456916438751338874478991189848457148584247856859739122899324946451522011097051307486834244486017917273814682819527873972081521955946615970975370979729341940019774553838140940124419112270941658983491293078603844501143326634932849406268405949248983577438395477720941858368934982611759707579786385354296032708716281149610801152209495113733087735794314911418512042690564743158843536951419277903672764351402727845206868781295266453303106436062575736464340561140016699432506113508070055768128451884468321129560995334173004360897392937367409383813172831982676967455570291502351454711170745730749400097525538461010601772428593840645042890250579652682880665125190991559413946427139819165379978985764688141495984561468355813143459382653903868354511561122602449626435628835754758447106733172028822527470928408909265322749629262916731146185413755081201954907896937329306620991736040502841538586455089264553201263577004145329796961704591200131940022436371009431715730900679508350059407397475818168415601859592577376507860443000567196747285316141936001286496460167400325296303587034213561441452354560627620439260545360043583631104407062759075691837184751839269171964819849812003117700575974975439243234041764022007116148547534566025137527969547242696441023321116409293120392085637309246750349663868257894245934332026234502578564628282488471301699878537391828904977444472412856994710481650015288319092999453284771727363054905647705086500935989408682541743350724107962389563999309703306201854489055651423415625197585481500900175612398712232994710014829669541286851407739346050531406568337817749250418083540123715200799821163968988030948739372057545967018373294745415274378172724326756304468577305319563156536983217171648097525323410179407344181941083301357193323842790364636379810603581306066052182384783647334948177955455639406763728263836631855010202191174505948098537615396284577500314108754418589964234421616482390792835079572436677847452301490006842652451966062740602360535469748886010140397771183313881826868789131578222320586883922171367069615631286359795823001655039087699236720560215580338246233101962849311875522883103134984338650702837417518079855398812259482931764784678508708499182631602633884765956445387915071445184157495604556375853728504853371559620447731018859626025241376636788356119916329325348278334019051062892172173126387019128953121035019775258967640132286704624867393233498519150205269112237771187935481507286739243324512885846573954364448024370421782545987630447316267455669348195222493874229087328274798843895688456606506479966050174714672394681554191646553899027426938052076535858615393854820680809759113496155903707265363645808012669549784981291339270586376611265450255813763107804737178411066017940300370551415137198648262593552614107812371083896527815912943146345409719068015685924542203936021149104060910813608247235139617243364734933421891448228003173515171416078720284618376703015482702415260996193007301234338803122083957494927665782021583057326371536696949288973481808261723241288012007874812363934399828688806743149216419645352868590904071781101589627681896313297968146770060021569139640431696309019514401637248704167685364902436517515077114923497531505151269131716371893903252052214929305236530930974583448044289839099420210841290107997442564338991877328016263464510384513124029816334294918123809668763645018231942063669084010842727114832044959130129253836386650963841604225057958414692095510253612381204698129963340491501832839032399101022709835114309770525611236496501418324436830590654501850334891806411499579606070327311498898594030210119490105319205969837978002377907458843458615967957010509042100574638443460488885535242909965139420902789482254890692140877452739917323974726457582688834690330660365843482145621905739109708082183466444097042870620988733904391966890643683551194153597759321093667628800952912432401176418622856636178135297236380835849855439699479056657854944896293981286256179412043737950536386900810195896426974062988788427958497149914728865336321691441451050087290340176426469686360119573565964895905193056189323416333701137450925008500348400127200037436071740288811929890846312761499111784396866944276470851789656704962401056766226637414020126030640296997686781616803579432818234106767850980394132628066362828857142216709139120821815040107444865920893317997276572927878201830172547097714186878508853315615417037838849294902387899385957609249222859808193331749694672149027441489402629352417993456753949027473319125924150572540329450239839900930243812093644356582542594720050319841325012802339920942526756524506808179200406539452298759139029390515707051674551137562871404426497130248200610269690752809960120336252364030111979473325678812969722955565879014567124911954804051376518014901723181662736910479732837980706698563989332514616090470427695357248107272404108610227672220724639740769380903914865393591610930735110034969026939190086996936499332388170112058319284168485988292588433951193326614981845467441957746999430649236501328158436133256130315096002302095791125396923358331665885805132807260447627501327685362041957259278735137931882329031496928335256990503128140734588293741233455554083991879969343545018166152525438793669805766503306343339899112950470174565096467724834546746502710257131083184536287608126802095943940389409265687647144417252789474496404418875724481699854282370570657053141431484425925814747510850475258299201422868636569627196824718116826687218993183722916285030635221041016307207031715035137266407234566812469497093682015186713872192348958251133592993333591023043850885880352902146776989176483332283903350621717631622703678353177740966326629089517569431016899032497942625298958720564637424077887395700862587444459233533175430107291475873781449214220040577001636931308136348665225631455653718214256960029613194181022642380009530420884661638366440450284029081608522871192588102536373264679075044227258078514696899476325769529068923050421218311804916894065310278858714486550275302032881843522914605765209209336049801681339085129134688245001349604379118959291653261933381489416565602810177425708113256730691101428646689002628376874122507187719878587320868483749116490231412091579723486496984453480835071640619342579419984150863289091277943623276780522262192173113309603034877280372970711251008226999536964272484229994437236421277812878939432239733089459906569119113787772936328402585565826292782397155514741682315160426643359333542716426095130755858340434242309647486243155839603375389038815476872421105582512048749120224099525561273536321431488215139484480605360162465281448138130058572970209226647034346721839824502759311008325964500796018774935409046023275923876772671658986813298140875233940628655548351783695307758552476233987312111134067634347175368785057938131297227889587919772327957020047171740036522955633040861730088299675637403062458757451060374511955435235276814250429414853873298521037004699671719474156564164445894843939421839317105482521610853133785526701903138228355544458160289830052946051370500755121233347082956505699484148729633353249134035423281902463775367074043580702095304589067056379362713763476787331311349849785127316457862711290688015783612822640475960300310560516116096888728626828486902772932850718676010125524381603397598135121043502804152848936023558935740824867039027129686309826666354731208015651810319420970093237131116238858171883965956779490754766400126404552888679536648493718797261210512520852086226316016984581537251187122431999661647007287834236492641526049543919765848579179549534431496855711251486808438048270818663493028960864881019642870446523562174854424816665864713871564132896646643498440692432429202577542742284368638166246015960668226067647211755603355533062486526371378686769746099507182813381052750358762035944218775678580996536017668218794837146393220696854385989431222584119771303004684348772527406149137221000029464658835617629237051728768710308586208062359489733202910138650014024895077017004053369533786830986501477049413494245384193939858417543907372644940884718841781516765047792933386662861105507840467342822645849684802742479550249948627394518548850694392158675146444595043139069839730665659471499266484785583650634880891084634932473356801416683013760510433231014965206506723826140118851918088691039981243270671771127523617706589649330896328943189323106820033483943800693081141985244322989025533323349885255542065792886707924841559926952732977604820988027642969182614808817681689933484516902941895972368343385075575251892660795405911241409210418965548947414108716184396083745076675010038358430058856315489936622650742844766349317322550582309385701182095333548913866920506854377168375658988425415014275580783937108534951404615689445016318967851994579795831300761232072122350946182536751834693058180002474070656957329713697824044765691774720355865146561757615030445975284430677667993709817132515460976815907070748700048602257108469570091190650775929857749564578272290185064647370788659394281362600976872441891950498498730837152757935298397035911777929534267078478496954654616186854046550804192712311351764732860632305418823133356251300432195808670898165944771626439926324012766983544835583560943906807798773917995517495982442991062322711087912971244971885997371893418345605407516167233547679884692542567859571869568341166135638814048915320374844033848694848457696444570513917951880864265220397223401058233648415546879649868422788088342670982679261360280051817584600550449386974729845366157795877346476820490937525327850146852309342133905519594113571310789783615768562688489376664627019837807718735502725217736146472640418651980938086557633926561410090449445471868560180763380010495655011781449973770679113761099809208442934930811809329523900265540721230557670688780428419347767107070146551608389910366119453016982933349855919925453304882747596464480279902711271667749336309316737182881603877598300409599109541811752027124789508374151814194127514254437738534193095953235138873144390032136662665825950667870653976334168151668971734191166050663543139566065238323082718607927114292123937208426871360327971645301038448803101124790210192235054081822431216357080548301414997466225200340271502730205274134509815745760279365571838943185435536828416366866551604226264266057295691239926682688057598325963903843214094215303424131965257844603646926765775767450434738909573711537727787428402162692363912858739547741419825875314109989874380424689251308069306519675340036427611722806918261570989090823282903748676918563612127638162006519610563166677190287464144210546210184744422281457897907396525141350048612864491403747192329453855179493873161988403382717782934106507031111565279879860707103454523730492383196420276221966243493745459385117403368962335298548482741366981950582772503045775442345371712248852253756019384616204707624476626606759087389804537707630898175081368402896635092309748686129612362754437402805016876038540414140000009882738290322943902060272976892462622134697466615789981567488997227896175424010624057502946345920402489622187644130487254031191377384569584447451285286335715484333219510964841987843570132309919276362114521875265387793902220716842641914169990941608096987912204114334493438495050930618643537387819108837399089982909799077780793414694944951286697402125553517427129388682948896567613284790084403933754436378435036643093693889915474970012258068023447240247262148849548149543745713370336203409739464656104118394582804527023024326157910518033473582957546150378952660670429237814337111172065482737482786315438579594570299341830435134792139550633727402709479793951137736110107393415936614600846610011233736489770355338801426627913183982726179037124889382827542129535925124834361837761113659477401388056155965899527376196125868776162817428831815988068183953452850981870125946796342089618484663641393936498834714425477671343189068782496083018675065506105946041158537928434964707823930655619258088453563278352912968452214880964154503162204135123039859340673415449470461472872152319229037010632763600602508769022892666490317837866822645689685509355896697477495012380331890693543869392614959269040396541395104764731523932639560272030886843699878216087277224825714172181943386064016304374087006068788689717802292818698595070674665942154789782312872073807085017533897815362538069797593479862227989474248645243165580000595748769114103108846667721201272849870039159626756581842991693499835116907849256487039539030989199759005087607714672622478174242445120055123257316215750543402517919652849248980192035869601188298359208863457825560748865681385284099020617645114779800295325528722058525613212618964928817899758923811488639236959029711059732104739464749012435226043570973411127931122094851863628834378175690244935294623787066067299190160296858930885388414091961156556353404081069564753599946361235990040291570809985360076128686586293599387591059844810147439909923789803927075843546087877760427460282567713649070485989036381187501789666034811715882058482830731646818796897691267869172087064380199388906490942868108076134023700873737987156351165559654513165616607273340929760079171339738800253962823445014274404484323462472185992249220762183956581398268407791823230612951016185597863911106474894759316852237947295181381629780560444656641448479558757369774738029603693115441373462767261720117505691678724231887584317287056938595030344124308025547628606310198954672411094452406318726928016234359408477986241613457111613592149206977517282724795101901662973916481202351599806322337882674968832537508825773661846620144222967744250869390995688521015859076195089490589871500983880094010415351852480949328085896947059641722835967395268643802639348967252965172333350598928389107541921514964074666541019940758114884085265060753206924414181522430248418871656259099581698994617660492893601265328524627479955877003730702437787061866518970685216455248113505377970642357271800652792127220457404753925924544444991573149472959366309398345004529448104275175865453224860482485546448445839867596067775846488150829408471522899845544382665423936941305033771261524359414171479112773681139529621419502153207265681170894173570923277900883997162526322360444913362570388509403060105136191039471340405396654966348600634968042611090708802130996014440743088861654677299736077804879386158953085112097794282383024656687770255445123142235654852773140880863649723537799220743597800589683527009699315090647578737338632613760002477555331668036383468299060840002276066374272435102946496381453662677477276420742739139284544774758962041121148663971472867465298472906070478335752645357817166120270634072067118804675165182362920203372806297738265101628376067441532876140582909011776035110656945419923382192372048860095857638283678084718665202578924364176903938851019993167080096169438820545230404137640428989229674970509157176672085247215113003359131356710310308737910540408308942998106380542043298401606069811017031965714822021928630512545995523930621757296642230748021826648391910129333072011895096256656038263909976287002843562812838650146670620812467796717833370652680416164816209010993138881005098762194998535395786742272068571874035822377723392225515221092688967687409054754645025207595539856473003293210378332697805444377106036406756920530031914907938714355691595662825670657009315986536179145306059429109206406771981302045491025822550623345158203361393241440837253531427398904102691222903494825990250366729997381669279769645510738213227213982900358955674910956599420319534475987090066935983063386745433040914002783685764090722174200784282436592998157350032346899907419866373095546104970358103464073387518106241765217783747832531151866156168047145946045704774308328477396140027067095207799181766355119955178128246140134778867032934762974823619657981469604483257896514966972976501107223978719913834649367446550150094420321633598403871973202235686682184884274643721207615058030679304123999078530036643341749987662841025168622882560082346162562646081473252749284053979827725842903121922258526426664574962492406778622591802894510519151618838547018922963406521598760534148036928475046937225468804873369089791413083932367594164082719074461364926318302328450452049537176493151821358366401562210179186888250064866512080671900297590663019606094416219263675781832543116855222239021733005528438265305958855043166515539491776735699074915099403233309014301466460751327557868764145633199602128557141370766929672768776193871876985660461333126984512887548052333591410839825601444797400948889341172455855031303746418251063009039280221593950991569683665905888992946555112929913663306494468001409118180324128988293220748391628123160117286747037976254858986283430778781632848465284149531560614058895714808005348534387679797408445876148492174515127999299492406740098391228172238478348595129375877604216676680829050042752758331340445630592733174493329072376312350962077406345466772096360009439018658394710827570340306787437994079014804330732958933183978621423411075020278364192737248910219149190163815826200048387763189884009930834934104449674365686768204740063729828779615911278463670442220498647408155279642018362698677690549016596681062082853560999210704320464640673724079747124452501303109165630781871285123472961616987644516471773665257636999625921592043303277082438863812840562123424167434822109320031710340544355858180631083409069604843033996014084479459166242556376762012352871356938219802079562784025235202200129414753289857485815042963761614785658262389625570046533463242589707928450296771848765399224485003700048744604551271756294553497031482570809314294756494328504867212797025745096354863474478558206949609738757196722930062794528481149860979380807660946040743989139070511298775469912263184341241384264434376195159784165538481004005742708792746294459990015633988539658976689733966774205028159195536601139574710930107242542392036792069246766680893613659605215940571725804607142253532428285322280711280419815289688085341155258989544940973447862981015335655551674680394491481368488177305220939056153812084094723766506112733309746363681047823748703035946008202393844991873054815727127534852145348817068138493846713996981351767646555757352455205977224022051278717110773623775775770458637112132511879019304403560521117402868750912074211283015004461595321560681863525921964244308429204223086924533332064554213946858288725972593534240346015100618608957453762030021601080915595896882284206067014071925945206987583198381082749185872369254662423691468776506044531088316955918995860101720708301516111846274790481845980769034190317173324095211339345303983721760862318674270288120849310989909629256336446189808736823982533916691489131267157330503306727984735707519730780790955199747211982212982786913095215938889533891888755822030404025624088319140648057850991259532361373009059779084937922537809576060661220112994897430054321622781190594653009054073230051615941146692196519533276008730951078328647593369886883582524580121307863690853021598673011210286647226932818474758956533948165088147192975339352228158107966098588291470876177526968945912461068613457709075817962006390578607045054669638139904182186300497538414739493568851010229942505623282857673209259197823322914791678593971060867771223201711204113547917315810846507754019433140730769264130172415117077119642524997357413030030406175059923594496863105809689611294055238645209043464116582937799409225506876483382447788820188659709354065778316959961063145433328735587600410541461760379804435704494429945672004960738461706366428820147343154934092757249970879367436495996440584867992787783417230801882480165770071391688843446081053173886308947038456761650556161554605873927510995091010790795865908394525529076158535667533295831635329032335053392116541834596676560350732197389420117702917807510511531264086236085080567723836525815015364419826420360077444388462355860022218666815069236727776056808059137870113252582756039763025859886200624029194653676617505291953360132122541530790264254157795940960097052014668353960194686713162471172053821262683823154819271876764530492021531766329606212139685125812325287309633886835739517698003205542811921235035920894518014390187936577449567191176125284994114429240136968324451760559389216908372245777482113052395471154017832478006849165367349856074834160417655161690018999498857768763566736144101398515007385327019320430905268281036204206975887436131572414718013534150709563340947130445724470712134383199547285371863591912793384734558180045765782964396561682086467103879304319528185317162404173682691680900308607493394699325703273988643625457705117900356008296534075686154981671118192215451834394023134012737593402307015246793679636068929742310022696304091628823220820071395895441240135786999796902910233880329747939257929157917811716395015507137558732265482553226693332282752272414885443674697456577796246926221466154273169321034334603930415353905152549942083156717837932432820475452878584080891034225223716382380483622114473933046819957795716891621043876272349016309127057968967095743716577195703213177263743097646738396274791445822752968446755448257495979273282489660695677103757269704927723593664809397706584325709576918787885208349845984888675445678310285781090257395273137918611518539039590192783666675984404467977360452149580784441472003583507791734886580615139672400716846212012156838729145051085361873589167553687179965144518184598421011928949461396088419627700759059743562092100103090648481219472792393255613720127816546968332280995199025071783235321238004086380520840342286270546661055281669236452813933226678923630168116252806656291041059331753271953833754486656030034707832748147583414369092732201464043870570658120529897483879367453655050089671984110597124717375798089180017547545644070928691144960657457584894398865681699108892122653584387599630407581160623887122416900134522809016515803450575832575980069299173028850678114084208887502480419441850710935102880216407398029446841326889612969074626577407208872033609067596166373265809705097444581869175194766063748602176076364402242523441308604975196878322562461106895467199774681321841678986861562202984867273618368222277214005350262095500672607876914475317463540007968317688546031952690053134950696481283312160241601419976734309815663780229101140990730238021889978368203654852403141828033395963872003515031415547871498676222141642447641580048931494377989036326417197249746505835942108016030739760027535903728478875136365288398358869715645147565115003212524904410637779089352948556434079755243592511725454906233974844591100261724776726084757433399953672937913824166396097590385987474651414527770238080271394570672289161458859122350421282209801647566612409059342202874590072752985752184133470716062012709760608023282448312680966801387616306326479567806674185003372587362917808662725413615256837740742819425266505107247799729858168222873541513883223917893336091208661274087942415406849238165494483140547907104607745489050166582109750531122217163115282471038635666646344709586381311301837059742954685400902717047483864264233755528944687570399845081890732486702182729470115027409468706400402825781482220144610721843778064947948055958152135224339983985503270181746267810978446238411713100051983387206583688968311884958129490394347060317866286590312593116201886933741708396562092410722920464082140187044627420175336861893063686269838658633009421280221885801987031813303681868748418608081727981965361222087211659059816950048646713843235971593734891391792756008677773860482011792774345888733736513577717577064047351143931779271115966404206936413588312651171574583419523141005073026755468532715992884529711548539699211630013407142599962414766015295976342919040477854681263218177223229894236518588822918640614511768815140059847290256666942620448913404683016525729799647568429686465207893031200943905609626831255176205038281171669721014591163691348053182319261674357968359257375202301574815131530186746566804354811591710983180585480007171994978188057745461204212094502483228995617361588293061232153555107331884700027543714652131790832422933090702773505905169896611900438151379164492816908433358300893469171275498414458854151169802175819286360025218662519109404474656940370899594795653499682814123949188233855691877969071674328681607717869354010653175206158442216804589576313172422238413963323710006292094334323531232039356850566348365722836969558210887990126406674099670576726295507875370178773057088695848944320005448915242949121882049711754096488549655554980708025365184325484833578912041501141108347588716835930828602246145864567697259316140390269950752478500499816281752090489308023230108377703012191266154980984035445398484655278495130604744469448695612309792574001821404530449983096959029595952539612535797289780638294311157238724098358931953560502672058314412803882908623430107621285600698716873934558351158692032727314338255594453908911643271083585773263418597437040805501074883504238499287346504908524879434085830105859747295209991899882316273705690119218620009001540039217529666684907962611994403924489752758523416645746779999622360914376189849968412806039646425166996285647942813262192287266342048290979993358369768646118036550417039382476638961545672481348914601461191389197053384621299660579635222994169485613264618755628958358297644704701232423619977498583793069877000229852873353740153183112426860511938725851937301926379707015727770134978089675124934480836517839893302177215422143140321560503053074393289348341589896267922135473335317399832359276300431225027554668769382891425232141342443616494559627406000852797639151552922699070314417077622468285856422438119861936729921012367248830572036220307643718330578091915941400897999038628255125962702303003510265940843912191817061412233496808442413430621114406679274171435927183743564137659194166515891126827339940527973046327418179775074500556984957520506928802805060216824735740316126941138906528791851090612286548083441356394889237950339618476954994902227319689661069567434450241241508728895603868382873381149691248672829866647459931392294828547792628634762239402366489959279342393841997517012466310328791518780125249811633133484783451472687225495392478175739210017226526578545562687942639564304766069961855128804287723553574847514284632753007859983649798700859522864236662390498987100103076269219785144184617381846895599481126922257852079619556129146723537128930869201173061413748408388926469080324115876913751080480084557743851215431102689989682475354730809867337832891213858993186126479850939177787037925038888069406851917098254850793722638760664767139228845482603858345660444747969628883445533323635631061183046240556760823443311924861974461070851596062062702921722327132321736852679635128502583495152907867959541859890755035246403522284586990033026776749365356664567026759016106144464434302068487542386819891380190915376163221758110916098672192253332117236953063881747090968714449729518410014386226552241868895755369920386761806449897029850056248161180424367304485236672575743919993295777423952399457909052484085075862591408437558782425954634084453812379841329138431290546746873013717282644463026247485817197839237996869986504402287907298088066146468913564808343812511895122953160882739934583399519345297181493496379815737734396356958025152620527441867483680131219487641019324597502498260047938689553131963589489773046725351445757778224674404332937703012694809021149388895083355346986681322920347870597066583495984740087759197571425286094569790443763347713725588926329693087631956620063628133931922730782434236010858471980239278690469921793139840615695136872315635749760419159586215632290566291139760235387987450218389294781695809323433293727215973152766913950162526727817519673009249055323196588214202189937949047321636458273883349501241126068227307007758267504212589852992710477079444181298362577001105184857909542903433184535237279475616427912294335663691924472639407265160388278137205162576072224921437688569462352606865000825838802825197474930160950507803397549519431758893430241858102244819808969566791344141740376186727954287433779720629730929505533237325877869873745717605603368880356767684530934499638805827924277965920210677388139851497318314935115143448647574870183073887395250217264384823190839829752165340009451648952692858936782049252567747655875523724831598973776912801810214045391525426585210737166870632254754847203895183519966898491681698881501589844945129434370106271139044291527324798859903126770404871871157889760354135577573641805311633891331341650482388173119822920129505353050090947927797245200671052292443926645330789134699503295043421704230117365195387557611831403292175659406444428854368928454713649084008915298858842954610858284027648706065293669299425389224171712330334958294342609895748357260309209684932284682736054512745710213525158035600805323570511116076241449013132634489404432762293658580136674667329172765385556651457558664867650541053723895402125899174640399339980612701673186802185291255441857888020619452757823048084001310417703874818025344023664562240984119448507196116902342208817477348881617166574863318996594217632208593615198843634232722211640368372010140258805728485734508186560865288969238073073121182478391278420435168780979400044424300883225509978897620698123435709726502772724531767902688512644523923244916730596252245790534994889358714966685279794782388610333063975757096095687884216427908429526377118876281478381113813131556570289016332153338545678158683791816194547489052306088308540912118882666866225532242450086477729165799242647496293793778525102852198129809061640379121938115705242727747561773313878456827033342585413083739222474297656794063929475366118921522217803767139290043297485319012918404180794302819161975790987752004691036395025999504675928489048167570477122937055249053880507026300509893164088370567027766798148140236049485137199933463969248478276047942455284491161327658444533003110973689592078553883726957274761497327869948343319626849624803590162084261908463851046462188572892647777671790159337831563035150140111952352321259674580564339484223638873855258855878992035730212617226768937574469135506361921345588682677549284123535075773721529234591127854164854617560271962182768214368377140726274286984082180710550635623312909577141423963295382474557494763223522223495005304026122768957085733972425870780777966441431345297762766919495718256369434455093120357301689051718684137235814541815986907861006945376096355682863361295771674348971489359061540399577390000982447575136943301577208637185298171455626169689184320801064336654642675545982986312760947877236419696118880417787541873871380229186983388951379400362198447355397896576394037158455654380813785215381427520139474317668354345348329043744294452281359275184812154995715477523882091148107807335912118549645561891454934139373633301350355106919155501674832132576237135798233759623290070755176794167478205124168448268833025289646073910019983726455464499724427777500881470389581821374205751797578427387386114854523778295123678615677268040572088127563870779274315278467352773060934427501055917070464390865984075670121877500027019342873531398670163434844351549100399778835277737279369207234445933476808139393975833303030940024495896324739817196070588329381606720508881755203176288554778645863462869011069594548326743455870806403842624309696706837575248297011798226863208593831739594577704823549416146328839974134823455084476484318214246085250666846845306708647727482521126814790954001946346953665775325549839774519826800405226321363672290343723584621594540008423782990041082679728989167349696467482242544554541760486203021454232441114530326144187108320744576708841278693610672524133527023206686320531446420359817085697139943987705749109165394013260598733482562653443196138907077235347845701108559026734663181679919787534727681663023280064229652195534211315494309725880475384901903919523861119923601760455443492928334151663172391864873010740547104027495265540164647079059286437740488698006428504823105678005120843146797619998199730960614326496799856267726242557409814510605106813686957712829595824126461554756061194939201798158025946842088387972943567884623962417912799456899888662277062876057991780779061303169971415557802820966270825520175105855855476440166280799822688034901307911928642829036069527403379515725150693816333727638426802988036014153019026097157240337798963946950472318812195772007098357600271881434275738551389288094869242976764202520835868958261372236194559374173080817695007167258713968687392307937001795381425433549099980510955728409510746595333679505594434114425216983338582494789347116752103567594483536129961345671585342926092342631902977753496049290269695111036011445954154817927603141011485356293215211052491585264554137021701664794581290727652149755255515128384142119934137084851569144334805377973950068471794843433246915184052828863767699712445988081702178601886152416039373383650756037141968024535283416784122622319334752967822369055071905695676679033732796896755543104957212312918225365359502187443774470252409291777213984731146629307789585395986214547365323378749893636838466630514371782894456384141698104799193691914445286691227831255385287221431136609347273892938064430902046196132545496348561170650125421023912102672329282091540267835180756428764719231198822147370144021146683403757725112924101482087854519682542618915360745403037058661588231745624424405676326829743017841994946657719692342167070515655477203674430283540368305465054328920713995760354589403361093245604944581515763757622802514319109933123862836780887117825999824112310776903446278828003497088475558274258740140414015420031662269220969327321397210595627413657792767442133271548461838480625534903369208065053232656584412850599838066585581581938435799734141952191374092214689145090846476046707413877277200552335076369553856105073738836138355220657943768598183333838476036747439706358528540857406834807880458877379761400286704141502126871174219991926212271423750395717146718647377399542035908588945933034147096818705130874877369058679640536826897032531445867999388964292217648673948846824183384321426552043098112237790867014871641751200785328287141809929079958847926393409735111874341340301812227158785894889453763456221761472725439070416486068955218187036740981748382599025508920366142010689514536007936302975539924365480528860230009442063660346273755188870345920741062747265510921450823859158674396356860843160105562872062706608361678102877331153460913737622860331434937009384027129313544194585527591481799270255667488572527968119200111735772528451312854055344463913886548533084744568370219916390035247880549772066254920964426356629209685954390398514078222805772401065679320061743829681988220134933467202910330375064617125147306393593726995214628282741495152338776987621705856376458245609111868170775141590798868895989293570108969430098863892408950282362875697546985379331591689159252414595120932016799943657904894545737123308115103106269391741635208451029743775711368507514867265988708104533028378853835812368778102277298928752390752571815432326944510412590340595885739128544696183803119234990367901323333088222673390370721948743016000455027973172339740216288748295493594700040966299439245269960455598636387686606749336054506774778389719129680502931579977075836128175672774676744286731131953380475998542591717096916539012453454426635199476677728640996187868627281923642075338783277508464153052049021392438535606175926394597577539315478771405713609846048671836903103807818481064551982326109632503058138163753154198997520543775864093832900761182822566310415104588836671899016077040082774674269457415308024531887055580466941686177575993652771376222269762237867918568095746031916890265882354236256409407897392425183972590915194886185852789301953265163265254642146602118629971006417229566839465909946962912773676274018278167590425947178375154817416664955148109091754419018189629631714436001399099857571991976757300478930637864754563975955756486661254621863117823407180105438685231830029650242707739340232512453374343684755167917728518460229695309152625016194509506697253449534454500619410021805973937314474403647469681812924549149579744734118716018571095530534548662755089858170446758631140690666916803386031254688993579073456744995684540790697698138345120065774892267784863165056677518987204964125498710193221960327590712030900371930766155672138393409913900166603021579714072485862863390484877997794932872295521240730918316277950872558246755140886989813470962609441376388135510370789811498012920155369756657769649543625331360933132991141070676539528049499567929367954168360057664275314762137219246174668782094182215655378189936936531399343274896419407118203639849360346694608550470945791273945868836701131464619843087639563270352804724229283689844933303587327237520774887403842347622002245791424704270223928843548561711027893582343495139985986725977444647017014909369486031654827706603713600997080719200146113517392362205700005726685408503681367825918573810725102740158767157508967609130337570101550316806457064529336596256657328343455355825796388365053127602186478521135701733088776574738281607874319023376334281187883170267696396766993343943390333454310084962998072811816207439398831528769045754629760070374276220368417761011131677737926057366750838005729788207550609276152315905757205146933833752339694518513966136488661689488403575409752021008264190322354900319835618819933375071494599179283397810953062181284027679453463410564263970441676551758047037940791118960550117902290478705027281290488780856431838060232016592400058953864751564982047499036383482143079958608275582681757784552177387675986942381113685064307964344804065426583433527299484669493600427427459170291631481805038473772311306544826174805764316832468105268858513125661120429858809737037902968574610768636616834197956868224278138611888221631325627129112609852101209100626724506044357180615620436958542244193218180066301291264289075448227636750201452554481785011215128042952967755226889047624587130262864732356322273116163843717143522729361361500774599427217084750491225907763454804129556254943361069759637699072067270221571194704410661198547919885796841369779034580833140949841003803321535331936710015443238145920611590562475716989544298713934620976517461418168960959954257105266641268421989722005416607832216475173952638926240211090264564597008085699360169527188442931155553571292798294262197723799106540469256861227123681490165441714150297693409017670482613414505283989380402719719959486178862236083459207007786549642751454141696539232110509892650616122380444104218747252446324427686910765739447847690470199862516199006237363351180052034586051271313088787083811205296940199841410965214433412231764859826315105974245706768216260965032360413383199852501466278470500366908621724380511019210815955994092363728347592075750254314903179304573430947113384064720105370777914885957486760118949536518681092140889597626750074363368966473111771400009412239576221401259732791284887818158040929936874820226247491747655080203782735564035745133577705409280420577381533094334067535073150277755768349986759561933030218017821502196661852033352200731432684733381454247246145427224471528807153030476306692712454506545449668448930261938732228131827011743709319547852686200784973688764445710416371186126893130344234689126010714721373215813438863942234456798213499733355177645999657496727740296736972002252593373424192333001687621906883015892177664697060420954829316479059313118903345350454038982642864022010712272623648410227120754929365442953823045274879593536465241313625389177269334756018908408505706673213722863468024690949588812073779417518259412898098409310231336991878863520341315280615957686257263259899017766721006236966933621926620764782702807065164337827149926807343926745743409465411855411476236862935951643222391962352179437464302213379293503672293411635608020616498915046980496486223794939177354605783903493220422585825767606808269610171934235683854720148765349366381763782334660453121080114006351807228811497481851289587577740092259944307757362658341720048671332721340209122906913965663509654507657441039974797041060207635815997228827360387554612492083651445132226601081462485172387810384212806597424661915363359457868008450306224729925801150919145887292452996011121115509245199168826244939947387603736201894942482140196235854490319512378444766313112604181452406569352818844698150822605195950105058359013717413687292824889901430928065464224225434836943952151804883897292034838639758906423837777134760275177362033972511744885740570317133687703109523315485536290514198402162009874280430128088242217009474461357033117845473922779558834552045792980194895752314527693359124077524735220496729345478969612306664965097489753003127191712014037647622507167158401515737799712862668864075286000152085049133280829460773039442484256897659588717495204390264200678233949010267337567768781706436644917569388198859994641579881532279740858013128543166204396060734075708643848423040458428800237918081698926112624424137437532337080589723887978257098012797143943042374349703384509122732868795243564362858849193606259862887369014893693014591744594944619067308212841065026846290282640311562417397127867316031630932622064389817861139913153746435854007500788162663494355655228742964362399383673642795402674336927728265894366234354792804530085718865226910772009946396307847307331041595243817080156677726242702064227902384992305352003242896996714841697521907675350369820360360535515283608261435887148217733059886122609711809619038566168616134715416524084200213217214104025508544488193503405611342281317644663503129370353028171234472149003373614467323315756991216351727606007538116121329286295134176230883026842320139062257231877634916668788294723213766716481350794591377416124164565313056218432533081478905696319691546389699612398226614973124187475920387570127458596935259066278531692865667872993641206365559555535699178794747799320805048579456535790798998617271804033290900532053514293452994749857514066978912551181942195238735749837590475760756477610470378143053497224335460739917454566409863954762581475843453954616424402723673680982405911695463983913137263161472560859238602006766878524370588387325594457115180995050988727611923130799254026944671814546429678805121290445625520175077764578958876769382242621270176213663526285091644678654324877518611969326200957774519566617218370952214090402624570132257563090045592939567837773453199220790517286972955092204177678487834597905111224828922808103859307801567844414158347621493615186327767693647006201644811419750151120560653794867764996311678197122177931560418985657584019762508183428285152137014019232234667252100480715628306320254726026620256943819470754138531704505100709619506115958321264043676825856700058226567889028598315038781247843237153644675133530305518011188162056979146184092955414025108430252676779747619765450673190603801796203124329863977314839340914934148604373662012222396197333876175435821683633887109550822200075151653465620367241870757661242254676069104546810373430533112221532363288558590996569590208598984001678748040913782550364410264487893468107632143727693344560172700705499491826020365973482134197455297710120771133210874759885796994914578167376722708023799651059233506567116655747276626277794804971720250371015223325445619235622593850732684839455176647349276917994981521964940729537866308180196414249626444091659250884023541147825059415721609025187077088318626046963317155178570442127368629032723208915852256415778013130660014173159007145755904995490506090794814629592784782855312177354543202729059778845072908767318732230339170157829373081753073483969223530792327692253976003859317202400601990436924173969263100986771809621276375858399736088501602052523909907519025465734877945505046537929324467188678445388221736131147432564490204548512175524006951818577587871345099621514346592050280835634378549416678742406226553836478249622348695718685223923889308956942106964178862488074655763548871723235023544499958523065913454677378533510264617083010805568838154601834215765126395595626212277938468178764568779256992557041989042870623535800719413419857730250474265020402613872469160845396674386523358460325303669768612917387292667249852245608766594508129732128667707188259224035890051702614422235911787541348780733806429664690082726223852183001620251678561213017849089850737459896283333246956171912321011432441893730546905136307160500303708513626986811046943249205781143831837302723588190083709550273307845784773625878791843663198647420913324010012865767616416706767238414053077515335836678073893543607638022550112228308558721474879634351265071219484115205974637555682549347297988330659325837716223579806116482663689122064681313973723945178968066447125366684954920105218165000473483902870964074465922941331561665651502476361851877562220763880877359971248765644437494339431438182919018600001826013433577174033764649332470124789444210991379404955591799217839022292423229014722521841239673206209153629100863763620713701533654845914561572671252825815616423048423975529723756491013444275632313280690639586442626045448130057364957166399168275234622456154667051250099449178996159779179278466709597764194019428574617065794081070698200040873842962933461381654061443323079844818441916228444962781006137443298915493279154814975051792772644486869202192752486813803236722397667863166770716056602644227591994373439858178414531528924843364258779194073615978493463235913385327294397372321686255241596776671853254728940115044270588755459078862262235399232871971211913489043666345565063746954447626941044765961367393434670686139642930795592126486614668577276964773520855483204391959662191961170770791804756708666555578225142912462088050790227859495214764378747194764648976735406667506163908265643093000595550677944453361895059439350618301099080723154687246034337557532259230129996290801421853689744949693585420186885714359947852928175322047183660571164069692520787949428103391972873736689137948549816264475788104808550140434494442744174478740044000953468490719015289960690826844270860158506885879223921611680606477397947309420759113163951982646057760212358015735006473025126391042591588558162105027308227619904148710336146090505715176651703639277042968113657876212968983613963567355416878635979188645428747917534657829449692769541123247360527132926196505942483259167586162396197765743955232203561713047573934117393428525405977959328791610613078298841532974416812362446326531582379779375226307976780339099446913785428128426919007628061493390713665546833878445738121466824409058737407878842198682951814712225809380734112339645633093286887394943800450499573576508858583008466972351939268046696596653439183717348908598432348616913051772257903404155396206506092312528481279283320895653351476006217011471106339118501237137917656470924461987723243189525215509881835206674983767761534819466424575375225156255439838629745931115150652967969249720576974184985183333733220528873015709758114750054116602032618309237688077842787166715715199583435608547821510916611033324442620790875450705785131152207887532366635539857290676656972002279268370595010522177541544881595340492031429014653784023747193799485701785165761040125503335973268444308291649163727207824587499981138660063054912917158544986432837335027160144117284302417110415764402293014924602402032412652367993840832314878074360534845026053193947293696796639403033121135033980173825896910007284258108262217057530410032634187697238417176105001943680735489440525015042259664555728394553931310638363107366259950789469747956867252383197059195637164079052444023471858769379820701545212260523074311286775486677814145023788503393421827265883159166625115015061837069451919838363928926674681832237806829919959189159002233005308883568945034466133112692683943863390569936741130086608151730232856496987045549309872183945550089588563216838156506756064514188045951575980680639251367363008407322968501299915651077403423705045146247213785935611874236909055349483187856408333296429393583425553961716115833137882951272911817066052996350259506873439625499151665041211691450507028294478626490907957879516819521252534471988230339203412345871167412171711323784002548298953040289882629254281353597421573710534564759038773417363677742003696731284311947716029249826308312248507758468962835593622899560352046976448464968804410918863175827925891186779549082808148595972485651861003212758611311807626419711254242756704009428691106677823996344595069150487620899561178468927515341341152713610850553276431136868622475455899990144229884772960822416255335247526075140209876837423030893497812174758874854411075377890130646065105827463663642382218538680580770222781656993074519806902388429659312668450660110013756479867528672223511281877370348715990742077776070254311604560761552950539761173862537407653680873892134945997830572264311744772407275529568566108263303060010787270030317040383437481214798712580025634933240987552355526142475948039578008266747092555589888715727630433464306445630346344160150320325284704695814646973417151277226032886295629903421379431777704401304156961964829162973308085871061941364368804481117737089712157573202376699846555580148641386893559439523505367523289881460560954301644488923228986484678952898433825057736516461436457066262480033699912407207415345188550709723118267274376996512422341502156275868136720607828599470526760621224150727617969322801223507453551019227564110883925386861033671446194509385717021146790493962147261685862420781253748198988298894686884909415899107064479378598332496928361519585000182550597032820383248853830644916404477099755547412929904045518193002285725419460945093277134864477406917947317257963626470310254544114012990627937995730704673990745895781774299247956281751357553851748286421263602144565257999432396028598341783272734803844499313483924080279173531557293598650863894377427745939890596759178896850117225701627922270027337676552692970144643147916550829250945576505330773663850445827119804446123526282530747635384759869584171882980596715834206949982343244643373252004895026012666978587972258467921591752049665322539598992207261569593868282837220903587684775892932009776571552301888924178821848631365504367983172708018346984359381572552567878955773034475888647226111107558582072735273164320994768900061073432710465876125580823958914443208081729698958481045677398330296523898693629213741491475250642994818061152730226635682266492062388670123793409520538794681416109551787540608076335228867229472268299898647246367340568478714377857776232697026648638091276371565283860075228337241793125869117671637475719070866922330599659357061270765977827595740960713145580931820289982880912769976299980037800270582826152222063479894090046990900849594452234625409714989138546184718659785114448561538132645753918530586370632263021090429634264399015043179840643261531081200038223978789074028777600727644205934935969087844661978022541429587824386784202318031514456131043058261293405837436926333937278423890611987104847226841041610493779787402672558984815202031425765258138618675048210616016056374382894951454164101329114371727477151616407012565735318074123276384005179708555717608285995608459384874782254616912690411448796737882536305520477359273462886570725010211868432034833933621976977025114590864877489068426614005919175451184582657119894099702061677208055315355970283546785767160990533492434755109837496987540981193905186949236913787364713330410198881974172053760734572435437552796965492861801080631551178763585839373117743099764432494562018847937605808433608720924597960659153372143531898781814245268445362403779801860189822675898692132738807146193734664041843305006433398327842545391026760140647467769740484229132614826040357664356238437783077509962494120774685290394876575798937110554019287013335347307264338773773681806955004643192118252249929655206885679809749317885879679478377420030971912068644913602535095452994736492035702916514204249609776245826095527830221530672788415147920066247413019874207381232223531823637449784730704750741068300037736299324902656977126398317855309004211101262301993929711238728449607800130673334214921256663028564236816236014769834001135307827274948234507124075765203402217659626972866847378303870447896442399183657260486822415169104562919739675496996280712102873920038536406434037764630026869219476107592159458818004807659574390465893133716628743895420452657784063924351293412849478134228120598771836028300402801226179788844061514547109451943525510917657284668485233885855122947408054454128822954106691614087047512072667091094110766280311833656690961241937268452791587717660603868017477825138665907829520508063806307841571563335285085168099243016760991721774004133939826413984757791823398469569138704902170067674704876447536085934553965891259005565203144531589323964707785265969322944492107468503210050581460715488762916683116728498451138383076687361321714888095684192248136280344453000050851725605811217303335451555532270475697121388175326994363786027411231608400832848666483646334860975831554421084866780454591198401196020463391178548915095486374333210115327964629638614520605926769692721570242318197861988783924760504789389876730390182136091974444067203159118923582860224457384360093391543698145900663742169878201067687203677728968709136189498254862209300342628099755745334990251385303979557142962351090977750025159298324334805622220933668766124734301651252635532905231926702877201430268770291282061271660927425025989845966451333343484720097167778220263091727978846108236753315684889044791718471605737088446708302246032611664603404543453562810977324317148221598508882767360980525460577985874798068693981329668461589627184936474776441905250692827891028373566766173010643931521037730842563831362698192684781991743470378826201329418915749583927591717144328736917215584180564273220655140832472166483388619895678320404910794920836816466657287704012240329193068757898417973558806656553625624533612473304573977542899073804933050093444941753227530365077575906707609631729884461071027011010332029687784077656376506980524287276988658136900479426380956279813153011938911225575289954324197405665474032210379131131550109449557556421456084253554830030432311187198392126665329657418762058252290573126938892803032818028514444841653775299239354162142752911158308123417752465158691403798077381382904594540249844394005392805887285704352553523634968748515461868497698559415487960241085480853147972226271831980838674364986328178847922588006786307227700379046640216417500659248423601206546047492950851474219344968948703127282515423908037943966257616583276766337836991837359410289357547279890960443923152937916893368665364457388517858492285077313055135366851405300827581989855982615008324376190115852484069261619070439188339073149324519265927673665847804355553098854728857614457213534651134955043760271428153594775906718912440886393373017891362734297650732166499270207690055108013540741459127971252648904354306560664913390546285026798188078602005158939252909116494164618035890433220734304218549796436281540475532312751638690740636604586290391814206316786907285312052547121422009809037640786521146047840912307476198233297119351356179088383733352130005045916837520599130771782568932408085666389708634694592927968589433881986391359664815747616792538480205094854452068511841432247522563057479302905860240814139726313935376535128030516108924099731491005778389561986703225341542296183802212272291290919644135359688640932671031890761308808160116629273186625712942327323814549523070773599292764736219560981406777342805012919324418142877690895997762573212151581480523142704651819803080476250664065822813736495285864149475905424799997850238832064614531981083985283175668783088417281940726823556378101480990989509551563945954436273085419016813943640663576988227621443514639504560935885785370053998268624790763554076028986617626148108641626169419890370068023309258714868723261532564987539761819717814341965190102019457566731762806228708844650757710305583700682799418481058273307629204612624676305388729725864740988692769811979700227887400508056632328846340069296767664543038834880062044582190232297369621626381984071977823781606829792384870940567238838308358485867834835856349934736233285435780369271353021621620225225320814035608649627410204843095347155097907001771348632245483927283844921848229255858661654346497210773856183496277355089859641685158923067783108981366611875899462968438179786652488341601066664667632811547584093594573950241439560222930606841088413901846973997003209862079573487001487425836166236332511348773044924472848659619373185663720596811951531294981416699502601020539867710438212858026637140907278691027566850818457076461556236080512522965702207113039650755585592783986778385313149832369069946839070657793673614191990116312892750761601348204513248876307514522138538536155282358889996478811856296625348331132762897322648545903816568341493853362332452839378958804402230279831435810800770057225818923533418849437962399666828652531974561290960353619132395104571113746421495978740254742105949736485500229391648579226350113140270240003799383241279112773294855168194484162827991815258268845523851615584740590708633616540831447538618327249071330817841728230984143344808956306494074003338914062964578573357892732666225317130390099519502979002407316659843437869131411413082226815649000394948932117024717791241434742935708335291354184310165668176510917633522512770219646779562587976563284927962333677868470206976151508642971720350560618583996501929858958823651039262346148679793301806303740013614442555307443623141116526243692929799130663224109487136583174259289753196106212279342586415434093708725945789765717288498234464498734651513749348798668630976352440407814105021166818804290385252609603190156243833631318129401178005733768179826097878160836143519459755058260008001140919630267299670842507859292744021580086731456254902533483695247290497053106473523871435936065390993374734246187180221855807988931003985524214535119699090894386150443025543263986976235407276440462682808989568216736749692347193172994578833805574249810234135227708151343858622790136510127358651298528231978764385695400347339766189348304564808549630808239475656017502036650113140795298316063555356804393902953571972848229243944758023654869748068938275501399671229533847123685603682869475218104315712300136673282836969033577417517899629760579222457129333396696623598762507155227849192810029608620112596078830921549535131280793383446321152191733971080306506790806905748073729826778834284487083239130289780003539316852397616774871999687140359999227983870581242714295441334848783441331686629781878939742195838318950688060844866016868324581529922162640640362936631489245637642738287199400761705239317970249601510272149187602165739958362364024317057699632101881579676732080147668532547285209750558345694923487044621300687477948339946186896667115373755669068439473914525185256340247594746233633344150104757398390730192044950581335212421940112729834438389466685778832534621498007887496160319351717357716514825301340165890040707596291100657041817862894908487740131485664049078174800610589632255230328289126913485177259644401245529360468677380721155848217951960898766345490361313523644129785640021773508950964358250873705544959105445492188266413328198279017247124889142671962514601282682624466240702496209317653689605528333768689061111291714653703625069194459204880503543925309165472616100393537083361474761195438774441871248462976601003825228075933802222444210007099178771302304413521904901884878581078291885021543602158064647606476833500133181599474032955630332673758246931784232642474423517105802500967908997694799891605889817134210942877898496942602010437110633219926534869264953653902999217482251497358410460614108480283610298502420714153750633244089684072062171141656767767863947114400023867272817035519620777059660708868555081147919389284995969179398491594439628555559026996432053901812315469439124900316392793974992743684423759695829023221664931841470325435360259726064768495137316981376950494264364816509232042513663571443421706400910081121517304909358307895030342010836688540988985830518406392063450165279491507887918887416843734377773629882844941403296807388269130056204680408300156533954636429290916026086538081689947717276335173205832761321746277685609477287656377678724216054265214631443066371056305046080942863893142844640766729179683053080884304722314115600824772822339400742080434906066185670428519635609234399526737000637908866243225110952673315370126478776846103496995728990262065813948989468253365072660936919922683259137386653922318573131486848044739353609888834916890746686618818109888350851248401366453450897416965106340217708194588526937195599712388362780079563728035578760742500394882779269795985459505354131120068705989052140835280878360653194069203197875342781987508345093730596967288575872149534693243110083268768808349751397701695619124026295876526154330111231181559797310014741973572109722772997186565913819685161396142655337480789035892998022182896996830259260203413376667923214497724829811303339024813043448101011008112317162586760629215617645691739894286303135550109303546165320158302973616251905042868065671179726391823013928746359195905556177423586857742276193274880823200430473722744686534818694332242073527293847209846127503498784637631403362112140796878042641935921200748122447038291968455040096629830346569384984155804817739666190750815486884796223550748335556857671646690454059436213463939729243095656555694480240372159607366331503934139203039245579374964697974860748796246132749576816449548652001572829918064838571323770477907708409784560371228546858818099337280065275897683663013150369388756046944989721096665652232570397062529284881562162262739003667936911041597144985034116675413450576749267817108993154293926201052620024284177850591859111236434909372878142990674772725919771461367407297912932206517896762124496351978857428804203728124742794665339934574623593786165734327693105618480448463235341525534454325938521041560461071542938172692544133775511723245697006032386141101614263865670750756228068582820231747945420864419539066650028219917797546285873114405725554167200069947780278392537739325222508166100104992196330709552826509929816332038342815123523126821871187038891018092087816843121773937842431041784640326896583273254396946013970372030544394324960206373184612010569457072437499658504496970657469470233548426698182356554726565017585236129945855045947950729088778793089305758241473868327479377706630245255804196066773637545012401507536322599292997903705451906939876777990599395033316859016316161751253005610167727956942064755831518088650599850029927852351573226624135751037099929742493367176793620297855239488921484010236661411646647007700130169597121767450579280336666291041380533996742322569673936766536289834327020857525253807884549366702541555356643524320584019721389364530109461373816641589925845950604586095739647431458066009520959048608266217382595946329360456979302682972052517660686880360551260080904411079411711941714393903761795868290062255674344818136652525178548260806662854817367405397708510187540562529467320659730941957105282462855629425982101614612427004390775883808037635203000457504671953294458012801055053554085696081639438317104846959292965665344725274818173442707878668219964663106894614068244235200531269797521217674502649782091078893067130294048119065125503006982317847553042768110762784488439766567171424785292255582604646478461792375856546846510667361199468344434298478381524608942857868306916550966028602760642394674252324813480421397948630859004558791505334119810828595018791288846347799504398006183722396942315547327008354648515676854641280243682221569333297363026758554175880796011334389013671580440040873955045171430468105384754296981526213064818198547942974957814608997263396523592573436705039759385972213351663510685844537071263514246169302049030798167503229910956329476472320115821414953576480661234698747612244137975667677817169295554046153619259060449617646560414120821685915464750803621946592275303845409596694212667459258799642982091894453199808760620510063584842808702764377347520082489535946598582631830790598591631364297219474963855207201323753517069001417329550488567629160222742810741541292381312994335083452140903118375019152000025973721384435539613008810644572545403282948017233611083146306605073428067554817553387415552190630412255883367678725576594605138772887972906702509097995410410994398863685259040763978160780879271212798863764557110221072297839119816708083963260894063907018868470258235224521245435109570774593666126608526530015907471097938670275583977175774876805934461524754709773207024980402330928905284086604741651069947593441661265014306530842976080150906339183603284372301858734784393155311952841690552189354733460268268858749322935285305686855924026026232831764012887022419132228378396843963359893669056580731238112628570603801343903958943237958291323399084590544426260971106079472274016795960514700063715287911126693670751697748024778290810335362535637291992219197477239590462838025164065402359914898371723035173182744347668337235286559428696220150711556317504447121867097884348923962617505562384541534314555295346842047132860877622996696823980254098415572341356052471975498245441697772007120083856870976187247560828041025322263688246680804918170291835585181428429335706370973430328330589412340170681285997293401616026962829702037527341246857552367854224306800960382553620517857802044331254818539626688508702855458838987696228330124402215833474428190026355682538998685478272244532766602918536481751442478024658817453628968424343079987890384414954134638648796995127530511176121120147483020996118610198055094110893716363120820870602118593193115148786803990111196690047433909330305785542246880627842467770072926131605473089608104046071403846170339863891060301593732267796304641742948517737489230480852355058442361881993496990260351916347968611447527711784645676073616601478005090758733125837426133122303183130916536147380771533130835629691484093630246878160619039372108007153914769190277382102878247816108202797672385112941352090228832433942218889438976366752745400464698708119865818082195810343815336348982098466519531392320483282532250328503738100064423487705877276315509360727350612187711168553339808051193933957310184510565970226598562320990245372535931858476666774288843357509929184216029277879261182407242112300963378436388011921164498619786459052332453479425703034567903968502733720944237507058308468204284599438829440033204911708691993934008860879930563524074702867126399581485655693335485937004954364968995457576052545801838826969953604813947158435721513066404316172183276396694654824655640517800155751823056460971806667782353004707733010496406391237191523457257906001860392502700708295855935741572297174426080179138060459748422135914174394707347844411622408588360600776152379908173555830223882856028931787649144815022995133967068310884089030629748159466763824213017237864699024629139794508705261158403822383360856532760314232741225918105062256106995414724309294462052405487677310597080581683897180157607200237976441000414527636808235262203251646334751855748510499393375933416586225961524528285920718098365580081531527313576389837300595289902549447173861059728089590750026931902364143233122912595125762342659811625776151511272524754261413894250243356003062107804637448633195837575649286498089135753718678687629962706228537900631976165408336374111160749717733521686747334714970341668871311901256766412149780253364700343158494512254417469812908903102774149045436510130054796340787777906016397803198986189029981179083811400424637228921993824323349556621362815566197470220589711103351402724641311889186524629570536838445899821985596872722701495727201017089115395159194844524050846863552337704864558619564906527488035513670783423567478598141820511450607915794771911490924072165367031177168899968958883083254378284203664833623830409805230900917157681162885019616824886796995315075801430922200023446426576674471339856061757148988449649744230688905111437018092503995695757904968466709356789819692400403267344605659610931687071556295860449999827120155232644500294844828035599486962470928708987832198576148703717603061313378533116332530370554156379245000719040319643507438003075859707130473731841817317146642021451055049925661439341640916489886597376992511362523455497440498952244107797465429893972752681385031103373648320747551903577446549847938554213674572366982689309057632299356923556501290676007352969014585317700136313590433799696327224841268568315592880424081773871917962644965566601720013382760980197351442886002943853158173549935459956741255034043470259584872363324373134711152613293522015529273792576531621051935888136232060871995387520838903184872143877059652689634465823263306969951562324761066578104348667654731608779665902528957083083127988359244330982052620628566713232512803841421957649424766754926315407314052328820924690204664794195570912670878984488949971333576090176470083160754612545906461366794770526566092346719195401095318890664336239821225115531533187249190572125314610901517824642874980958475447649254919734280735229866626479268448848908821345769147373007295780612342809403642650042460230375102767376186080874428294026540083677867000946209198926968610520853827316583875775312340277044251031295626901528035181155227585241716212098756557121140086757706921687451542677590944683809369636168439423896106376546341722763904548514178924876292382119563851226563651375476274432660034156469099377257969996001177395980360337834988835320576249282323024271794762977463461949688601786855856495134877597865506181365376637025084162576449996046527535518744630930537948650927221906058809595261463782175946528371130944319564169598075480213006746163957994648486767182235767932935892538153586298302736881023969870305940925356553173733653785250085284026618097332590848202596859044321031151788982574425202495673639784764595074796048712409881695697003223817722529286837977437202148005094061537998171097513472602561592381655608244118263862951395352644914043411014872282881006954045211888921642330720504664268343993532502682047659332248907550054877632479256608095125293122557132079083455864594760058033547417419418566344911732174373184652059952253618387142296140784975373100649705802577721052667252231278397952658521628435716114468340236993579880665641571647127056282438735918177342663749928940130324133309660351729293737473991054390444258935342296305867110896161875998128723178562414611312311607265423627180704603892225085084282566979740818948368529572883673748826586977755115390137984742012840810060734945089736501687224294492994303037017412490331481701890024441701671418593886891254777253551908617326350153057384018355025534130701083977075946329057934950786786158056090607740958968280896795490568885737132499040952090752987491843056220937487552721990108537351483307864068727893627174470231432334884879640849594944189815066683958594027767646800574618097079587362947210374851761070209981910980638954206235128124220620234025916104588705989180913545333751661874135174069827056665881007604857330341075850084943044068320330658745144550664617549796642349010553707931854893224510102903836970538670627958627309544595408921845544846148157414252932411126312761456280725115939873764270656615838849681472895755372134114166282885639485675620323033393675051015503161418568192803886221754150725396682302583859631818538140978810994765976801505272703506705833856569431373252081309026171810936172414519234986343509090377024891234506925570668206288410311215002913318555922488027270474568388346887365913628017599161504864529714388356772715589228605304972412312666504219046828410991173796603041369484305891069917844400137269509141216205784988977688693698659939812057604259632115287079086370024337154119604872338642122475955614543167100939876077496162960469508444149443966421626614282399936653663458628334407208487815249000844875676243219084260572162478638115954073788996236233520936469353227073914646389300902074242217720333239860530015174622426358555522279890639207045335320709904743379185086131077690673180073522161661485104396711761869288203098445887661343917008063931863425173094617005590918408055037681259687351021143271575395878299447021028935647939050482218286177308774214843226929590495855868280363422067878723563165008607755856576054807779780622935297487357585188908270404148714100559587087453586639414556607342427444514504432331797401905197103369240280499535893078419437302086415073932302261147912516115025600893341726108095155023912593048780635947727116514837938096477473583779859053744268141089373410701238228501035237246885305943568855715966005773926213071535922106332697210168615968433366205525581592391423937160588148093668357110892298046327652272799824195526443273582218256496795152638085870135155673719370892237076859319103599211319292356647156981341276614433962607932058322863354997744591345287065010822545672032471614669049389505255699343393185203874954956857911343350774018822922992879766392066792834291312567133424689289640921882954768291294997966322567172270779265069550044327240529461464034263949131979164271289696701126131680592359605267287956024167119521339483744236889660639510997376961383778005020603273119576896045726170333565879751896912909729953078112715711885682492748960063611795657923178755828264327964469295075512552810776812859953323131673450519259816599433797713671002772856524550384845573421739480763995275918943641347327327751948892540425374142761854471290689495549055661685006213066451425613924766709001126471049785444731444990753845331663006377210899975643824031676116216808832384794618275980371570400347099969280839827919777427821792208299803367156535238619064379458377695889819498327219035848006236906984908889954982608841320653157142601123388592674295274751958640793631797408558306799740760384955654261476465758311159276607093750617720838516362575523804601195921652309162307217901848597535512251617585967134426011875353769654810953828987600530355633651779913391002776538021337351979924243496382131474069862793509869233665293549151011276846063826794996908661370748613101121150356484002808572248425827921921876348047192061655714291655846573028076185727434447489280734756834996111928720724370394412719793525211194953435621840257399964830576130762914728678031257755072000342792656253675071647294832584758355680160972132570914492357970106541973610119988393845560715886808506895214552109816885181455402151073262732033104202101665169305350629459706018571052948240001095492443210725724853383966832843226215482293172086853368276762997044016253445399162232245751291454858164485948956376685601081281512855331795469977113565162278555356715255702125059782811715317632268504364606168840148759338260816898703589081261821168456936218718165676692147538729035084938472303479748356084133682307199581466889707093765556939173718931761778124958172819769256400835718948909874671787649602672482560026058329361402770735413149811011564266757782546446994324690914135153758894067448879163565688386535918872513741934816447952851178760572119827665477988152619600069922537502214413850846628618639192163637793660328052072769895494407521700629938348517092752872249562734178608742273423474427078134250768669848553959409111183032479738833911344277161853977697913812269074299281091108460100188016522767370533088819656008407878874343724522978133570166390000471766810395376132740255975032495970355652134844611481153919080747360774525033618326241962936188374556556735021175792700517512221729076954114745591304284748154848619613535146020802375893238337820633061410210428797949418700013928858627070526073222907718046295644232844497399482465169435234225181854716607422724178578089666465639355495441164339110575290851428904227204000857365783717793222272738103493730699589407593184586681784043690883939679867994963204574354760685960400674928652637027904438681980103664741144520008732897094524460628045903512434098525191282046799519469194084464803030605462570354781737392680196016858607762745175682249754506964239539675170508933056846292747534301527673939901618637741108976232901456808164417907841179488488271688292327782475331153002646362569873127752770481510131687895374600809214220125825024465311323851499642025343646730130217857141181264810193725577720748464154988402391343789156745629570321764507166145817065079153519066313761667824832938829470365702380873657071602971040073063552328470128760332973480479384055639426543697549959379935644274952271969892752416757797214562601301487868437895887447861458167149873040463994014788648309549194820196220696964144834187305676441105133872151263674666537521402648436011727231923534340660500709085196882347899324912063398810193475197257959589609655888158974002277621333051226747025385644638825832926743119480732736353380165040815077961173710665562053990192193728576338035254699885014992932489756744822558280118340562847044361197655382679782114165435487303241735340057061737417151092536135802940040208835480673359070142821375923491369714845178279294197075710285697599347491494444213365308323382128002012747282633290034935349758653685093476669157921231695708506611476196709965773324244494888947893335315024027747371487440798776773534960218107053814532731960543038489988287659572664037125781789398162293181324526782972018762877353842845893624209980500119432624415163947494751897834626552722596173998629346249598577676686678810880434994318279631761890083993805582867474987515477464689497282844986460959593760065610812393237383135424935186544581434570051706273053059362501334851005505846008517514576683825820069386205822879369265496558325592419269969736622634204627835696186718264205002281141630885982511278619559561579426756374926025684206142736353755921102529704760391710833587688846547938047879655419376761018384501596468734464359788740461924048099867286074677832514570273839708427165271486904183601317437130008695654243511289186346038521940602640963750663330891163951807963793291491002889439622123788865218827901608990189211963100417365171929041429732539726418697078561355258038127634320014404688251504960463767670589917928962317422430656862005109841754241554681931097756498976438443435319945644508214635101193733182461200368122145250145525867361146121712659577704345707006948833234967597736977443245961243246036589397847043882673666443774593017691768680554899691846774904792333227506970432172163394937183925462004362360402092347743960751847766116158541056198597620500566002472807838380965811120526837225539981560733619034206520377283305688361063629149191432902076249771577394166640217080047293065157029494313455442665981750378437474623684431589141526851929187020449049198371982046477064357358147290300494961691035559122363565017546917961952252405137160047010207039714659157851246629076894309305832103164547244228570086500229733581781381741979666389941137645394656799092992450567650457329153100345684823616124853268124215312632239068681589460127571646496413994990534611980261184928586918849920703928099574278568629696415236162095660544326902949800061144786020485923203069673798741323001480178986646968500684912139249558389123655292605638886508664427951709788494480764685795549850663698743514011000418407327243413271773138265552714102309605063397754673405011537719739126898765202365814671798662629016023103404341236974428262433082864561383401672681592934446330760151742849235306297559663813516513633988569286927838855305895047104691269833253835157668126036343517617123134438097537665575837893965425896478574088790178378252995688236288511848594213181452851155919031721047231314534687924684472729010099057496274343813107620816643102616161107239924961309662734983558042619371375325991812980441364769771307259171381904722447836361923811265407336514888216178953460508393351450099930446998491159774516735142990147929050676673004267893689522216498781624471695155142853014525908532607511082451096968685015297508402407177369974836927865079306528427059803121681122539177917631893871470635161427070511082437011235451082047084471041403715354422276880858916191319915686775635652707714849655240538710046633319490997774115820921200168091144808104590948034144701276976625099124810920013997737445309483584320841377879318500713773317266180810965380512634615787587263754190816875949346814411785128651699827193522482382934473764067023611484767367739069665244109681248665962542904911791754258588200985890763853390596960648736786256794526953355552929995312192556106667816062100620282718194624331904913904744944956463793210034803251551577698081603095797905798660710453212829212479217098002284058778354098917504529434694516412456634096491868641895156194058656987366066884368404240771229636956539649610543378850407989725284691022083582656197272086872114709017824921028146737827763731293034724948986135326423135040744724803146288288402668688361132761699093438524817370099420002580793696513703784070072439606552657071449910707227429977298371480102028715062317722954107545720757211010069276651248093909706400698316214030988901815495569978942450409537937771454895986531567689932312586695040606485624995523526776994360848162757859972933766577231042709465650649733257402389075515322173321552544093941697536055220582120622474272527138125714100140587203272371534656895249721377504914032314456303426444561390674324007582330211675229423151343836897165086873902856870825636390063920646394335666516289373497464144376041127504402466187839295257914756536306814692109071098203003231075952366710880684897947075420617209366364753143551832062472115986248912227979299616687794252978786571694954287605002511393790322255747313671994468307210856808680316424474953316146175259284241471641385107721916736981626658084499062643252437672260641930568720682584553325380430488624011534108286383372607578637424922083039983077873563023292804092925466995297727727447147774939652547502369704359221964757463958931186503966794647903653020286644724217250499878629398288697371374067370689459574634200710672734492728661311155673572243850258223742889858287808096894383548592235778241928374089161861344329191647496806304162804775204021423719448689484932502659006636209254606451518495429943476225913711518812282392616678487249592549861035745139646836112131939159742377703242076358258217744964858910924415280086985919967347354505369625229979594771614723352433865183900490588337088953681975952049160932922513845058433881023436167657472479090775486343114380863256651806485504108561291155349943595406882264162811520418107302725359753628980217855542080787962073074236732540203470610246091009878976001164503518190799548729895299155382772671437210408398978934477224977628106401106274316015519358152109993090800825751577131266827432852458126513781617607043218698107939420865095249013517260280810695053189160295780015602378219440194862121331428119793805138750739689492948594624408790181435272361067286897794849463214256654747813882282951325199438886654323288988408124655518502720898947255058925569386542979264224697469966251852671240779544834468924608487178839192156925994650316375383680658734266528106020132205746475412208833187917656203770147334556353768243742656065144038908063728600067880335960115693311629535964725938993289322155767364608741085760799910559302319069489571176845644821980845463048882657558982482480342817807507355757460719730310659804255097122412120643172531498916897874128121747773798272661421881933548426321481616918491766551662928374980180069678161752858001506852978913862825328746050096454611057345619021295689336306778341535699577782356875764244612575704428212741666616007711238379807379075538802905492801858967819688069075624682236486736356214015363422482096005649820743872758083277632769081796762725887750109678795278516242085530136749142492659590094707243435045126974296907278504706531339266137826544956205809532492066203241875575054955799177876276203513096190853524183141117236664710540590072212667413349784997038169301334127961891835268009130638468973289676070430564600604850230193761805681775011596017027519349475543633957647638858317214144187290163761301657943674690850145348136190185042214157896284268871461703182090237389165436037058808093386704059994901519974661369975760777125257858484698918057920246032948454543890186991222346015875858169678328583825671926381293373126754764206346943335655169702184093038785149835169039288810460032947888870131012180117972526814792148574470114084082454060875551341306895445939729278113450847701071233574771681541966921922516487917346080321510852795973406477701574143108179340879016029864255333623225843871689329119560015732872832772461776959544139613770411139330160062679916863600153040278764373638452649713603377362947960981779638955193208140958257190151259311407177507765656065282394506909046257556952383743198729063869723695074575631447799922921038886905974467217060890361506452341627270011275015935677908954783310200600882160049850359823213176287429665381608042927207168165813108777454439487573015905603635642064060609548520695341524299726156247319218543640065877217834836355564738227510207362993992841947212302498558210377834767899164475627037387490467402216831078016397624904256791679635888052067090077793982632692485489840412195652828573496517512397509780314310467221471841003270374206986854132960686188138144840722510064666747093553476117510594670373736871611757650521531660885719384553335816987979439379959573233986819164994556311508931169527516194578033664392632528155227965101538752631409551921313294012284141370221369860609837631792280750827474432791045464071574119962886308599258537135497920771697580998398588992462025570656204361426747581242832810916380584726443883123640732837449244223414783134429354136526872022669486820910747480305208307834395878408151868140702530293036376224569338369665577917597279669431380853803435903649954318847543854366607799460377008197273518720236817293858055774783852852333243446945360740230157732792535908614790666920614074137034462285634172446281560231999510727876833257952286439456078149957181813995570268047282173963878737022046922415571250175704209620758582697668689642071564797625743052518352877238020629333733015364977055471365804469998768903959007773554024882903824069578934914856507555529824842641873340931027776706424540511681223882973969035634888554280933677152807137160300944129076762628556944362122499724991348971315900417903566733265554408290766310313546158163920229173917372686842491357881624126459131995107036806047961553453894521462493846690473664040844784511648465914550347838221382909006184789484264763259384587920712127741091938574569679991075271120250787490230184344230427418188303238871236221422727831681135305669797076358898831706878384750226173693870054157116689636932197569501009122742494125791406102570742250507612471860501007755582062781368081544012852810089093864765289338376761975237495716571279608114170144710770132640557701916643170918318282690054255407946680121422442626155664585347632045710256065918780782331414328113863020025061029617911953455026376824687701599067113152549195831223087660856297874562304852213467363742293914143385300602628735267178215684633057518687412379203697367580548870586876432950427864490926325658146243821685201223342128449641615875891359382593758039544943144587739429413291619667983612796387558190326332291268078060497789826105123943709573353234831101007461105252111395553456897820607904077213984208961700933504839438910034428467859402697964187020501016617997692732760570318692804245560869641263089547575974406657999602615681839964505605321034976364298446662616654389546926679596087476730793443447824215967360844293373466582756151125444628408625060711883482757291063561445106022130207274172644482286618914768714836009344653455635980409895590065840612316352497012240541126594723014398895672685230905221444077039189842418229955044116876800113101357210784392598877160775608556922366567213174031971013463437479588376595474417551087530581221351095753136764463029647385515432316898427272741202956002268990601609720491961908483961961814734672300564670333683538981523610799877206810036282356154954816375777430103613036288757027283137395511048780850440360333926923192376162992536923672347275149389786124951745339445455008604388732488200078539243984568191003708097271111925533317619508548287374148071942959438970084793822087462530690434210106691574697017591284025633500723596244934233251427357072406642771301820020207120056370649781257250021890866904955895565196990276477141705569133397310539065872920168732084781881643139201941980970454474997888445847195769129450526156376916805280588270580357664037311571276983395821315032446760412583254340225784083208040478431428000706018251915656501418968171049719090674721881273187007321487389575567988815544471888687991207464285993307859978065192708661829287064731539970219236907129631413388790449112270760736332523295423784026188861941252652312245913840270976136562449630890689040888192200369207629020298892154796134325678019321989760372123554282698305334125368729126208355928848123609642914810857805259706670372124988689247462774486497449332432504553066070493259953434107676990272840660442828999739132220628528705382422015762759648950147028493152849105290626742394405216682849477888219843773385232251582640975064993405441097672612452802860477401810422822835418704653982701188807231082843276598725512447104558251360746882124289380890964479606259810481641893203299870405939532733899370304465928281880049182509137323031195338808737267551026352028440720700521512900255563039935465318395841767550912823293303617815118916133621521030854253853972994015340567118672671277404532765588694249510457586504323253814682821273186884949509044154468757937987065760953771978508814931224509788267553264817835925970666964703879664696565528282581886680686786291891168032366436685664951452533130042341216289148263432466013100921238645957838563487554251513674262672689873241155199403270782783290517500915848363057036205110333787915660925774923472501066505157518500120080229061914680806240659045504417748727592648918919240371721545622689343415709182348489990262300202779224995624603361350150036373291847332419837264162410633099151151490705646275797868596422149645322397250512552116200489702364683135755534848630921107909262159589515021170348948827464716854117657724528029308672486919380321741801183473721761920666932390236079456411615333431217111308166949659877688866939071932611557443955186194897331884521469199757051484532905226476142613698403819911185924434742254918036839090528481667551607499166828431409503282394301182053949081379766925759392132082231724738162472528985010772831720443984762949101868047615323458343742581918134340015583390863936184895762844394963691239083229339132218817802771544332347049159979640575647849153008810010737480674753168673168761449439666483990589351430348963091313906603588291842942570544898778514154212989263758083729270150475512321120460455479709350096508759490978829804407997359668396693871400945755008727379181204212282639309522939954636174210175900172749597145570987078673145416674145642844930559329208563987118708113984530111995269237328766334193447137466044233056801157170189502079247283289993393457627546710202655963993099741916257893655713951674207452124204395532078994873485884803223164289571596911264350610748276557178713697818063861069256547258688048506629580120805499255517049557653631434351645376100820132493650547308171251369093590236902266955559358844464397857802635330554425851089783523400697432341380350870312032886881016946188841025868614028768056656372260603928416356452837326222790850511338560369387186716518895689824121122948025288507547161240674991346699571141799044223518266948481472207939122473007665539965068080805291682210597289434380413831863247817941463108472488723419143681886221247837813840751312568002100238205893930111147600986562910280744512741915321712353045446308541907284273135684434018088758306954906270586485666179824247488032238889219227477964914904260733306130239993256769270999371733471725587244919660991677282363719997701796045411213982062814985822062983390822668921872503668854616348319094257221409152049268261086255477121006464269861785466923960057133122151891576734731052799646278780341366306064651387914333140457068431158124347314807687112018160925807759160880121998353046493286680155616190677623535575369734129895609443266822491104900331678697009672096650785128524041504126243607628070656343717193167970862326649730649570882819352707270459020690652865124279466686037262059669615997240491308290397409467510261909376710948711252917038514652166738165517261300388356826803353454083292521634053038232134487860274689975325370806593131212811394961720339377339054871950122170144495835990814268409583340066352388639957124302503193419202803903328661275737019055630124064819728421689492819496050200312965422007886113585350042055026568709681753493227065484010708985104298435698093848675974326346917915133180081371045917883128915581968460239577130941343487669153928970191733936026066306103912888828576958494337410598833761128901186320107906623919759878259870766817873400919626409595261608141210443820003535574158803288153423227900969682128067364020186097511803016412486957782276050101961937837018885880795413971406062904776952226394870053922703637178549203273678991866225518314929234551343000365639176408696051183602351944741867214534409902087858545204973699218766345980790307528033911663012999970149528385443393567705592340620194079014295050531074529164599528912609177130688718529760159879344522776245078589801058983660735688257353703346950009517089268716798549373319555224681803965001906538430588965054227799672621341603855750268019113929205251297187602119447696371163756228475431523011075861570152135330994779453736607185120676238819202693253426855735208227763195062182891390505094272174769145862813850702615179686051657350745964397914647477385717933834006791196228934398065556901634656023631858253260178318374737726189478851995659453335080071826353124802350498158356536463803971861139335633440712383992322833615556057620290009818225113260488203060171322638709685094035791891145250952641878291851920436703954968504568465865580120112231616761962233963112363905738034585718030230934478362618047265227159310523312609312711430868158972182661018701561210590997608761586293023475031042047055674004822231945549431509143274634623244690170429488362428699689495693054452887005387480707385021738183085817427670511293673006269069449372905340178644133532033587797089317852060065925362144865451887709225843676439549707793027845163790696309078405455783081840776543501613938103100471263431455271113737164492257861554314827078099858094679930484221410214177980410482229452995554395239966901017799473705767382777496152678713816540232637507900131325130618543487150678554742929251827802057329680457444688628616698359826069242410376631133891266793964379198620373955753261521616067390223901215427743566111968266588844616652965386652001991671646983307734985367253295822758586797672672691210971348797660238575432249228389058774800341602523011984828689985987150186862956483935242809380827565707624932953946449551350206636834275115615810363721197916452864871080368587294296889273449475910666832466636459041495739432077370717916678506314503810553878797499500997898799925635176461745314475708230386154273355815139563290787642840266926881544494237219572520911637154533406154514299402083687859696239295726537351432105999528748472808416191458987456428333988120110996699702589030661419757003211674795249397029487813918407145043716375636234917242482559960258371695261750731229700563828598491176369925815837240487260490880809382140495251709964165964447481000407354033889069911755964600331770176008328356249156042842373604126587301442918886140508877643741434417340563276476927905683114099297002154546604045394750475467886084662463183817171416047366365366017545099279962635167142930431595358214817233200196786277465677049705204029393046713278952870534526532650994478064402245461789174243837038576994906289364688324156721573586877241264188947045461349801271152802464322297867800736737114013179264425680504664639274304931562380233177847575860418978591239674320453346997692926317339082233855010733486180947151124676955268428568151614774207163691540069209118562689216712453660852810592170459368539545973164935827775794258320214313657448874491132357980248622746746638810614592230570164155382962061910950493039154566340690476894232573609587440932552801683588523850046183304036137355051434537545676303428905238868855624967301945456162003790459265316189752972104830743031221828824089564329254583119279658957858088060241864615826227652073735723858945103872241450041971666031470498288598520597869736805032894420737033151875514691157659386847142921365889343159056940311516497478358554691766403369008916055630739793056050292484089790236710242046203225358844146551545167604389935871752856073169165780915316914625936536747864821590276261215233742509634378314507312613208496917878010337773771424369281544378909764911263135317148853590174340517625078301299391828671264058654989315598255614147724964928631052659935753670795089134765008359019772022931606406012214437811322851765287110532149186737320557630389164642771653347232154751809056514152070183814791686226170078023043084068657765019292111050747794923897906315097463241403988485170666353893754933812374146136600410726262797990083449684462111033234026378571311646218158662284694985552379384653279761748583463270268883060746825368457043736704837974975964230950364055538827984927554770362678078892099811446840102084135913579883003824894056165798219435832515815484995522060542712898627199905746145304388473090513472087454638246690545792191956356103215306575246620740956574412916465315741161496852813104651880825765179056731636530964518694066175011264477587194259394434455580643900048732850461638520144269308646065723960846923972868905785459672113946243883306104560395222966904236508511493972530707343719138330295710233346908654771281550633912855404128644374652946277618275668115427657810260006891240567312076255941701377191172211850300199480201994361435801269419678623867798426534120336333300431038527625483863356710040758734277511789666832947192417935538386893243575915952579063088548125799932805520372805614560821466597654056769400428103725279142301989338999248015949139534425166642411791963388997835455613829210038720004487145132581085764594034159972283630678018673309676895921907550925107008921479062308704285094739972885805640421065750262691499688604825482623827333367208795470507082785403916369831354483212669987844085991452699268347244866270494761486562935309985171043308080486098443340850125087810589367001520528967026781943524136319604712465947961779291943007776139104957300152721259884113123781832559665882523080595944979469662486439748241716534913758144314795469318683967387289960621116676775200903515722574896575058364795711887537055950526498029964963015091499076079801824355512456401080122803106935803909460990971425155419121565096973166841646054420076435849393682015885428085831497944832877859679123091364763552521917400451332675388683557679497388108804478539761308265862511291391382693160601744207422581362895538501305030250753055631185025561931469510289973628160983236801979624908699037977711359527932708620991807503448933540129236054341452407378702913297048114198832934203192265810549472586513877046979403532999056897055884673586793353900743116992731206000795519753624470757494942964453105123369981565089657607711544494799950284022208159572467105059465726520323867038441209832223962018296384942533315290013709921152568016932583758384983184584530631811506164520496223615273486482955376334875155931105782086364188369172519983642990346722430568358753703032867643809968477778524840011298270218965280497365697937606172626316079276438191338763770721342907788675905777853381247553427265494298360610739299902430650644362919300265848209683690326251739168970065872872213862912539356582304705951900023914802149192869932654500076870577840642802506786166499910660899717180231945616583441948320141632049030853742893473256503710302589455529585003069579802551119040709299662572618951721226233295416606448879508576187207789807027675946606753771151117193662011393314188247310229453674101118585412225806938967536708023185459972104058912023786467164026644554770234315146829063306340780203576466891583005663463174082677075395618584787752824221853020302892905332290132376550068501941769327268496637249820354470349372541158675904714482761520744472091448055001647105218725562262595575435997280031604907498567515808295463840665717756003200352768846724448644196356199650369314597893493083466416047229043794735155578425808838289965047581432796295721118205127082934919420571187669168969685691533382997438502953572611934128411925123495542207265031819983420570223366875977301955643642693435065715398507826375053686354892378984484774146285916476048525601547207600210644305797556655812800590752472802116873285287703433479644494433738076847234970695667756575829844654975874805921234967519618570935391340454686243802324742130600609261160009508230797953265648963081465884446655766352807133774506145708859391655356432324840722334022710958826331174794761552959531341105963670477979603776284084268806996003519903592910914742993126750451635367865957919675916430361913399931434579954656238310321195928634723708873136602006603452666764334897063121294322292532724751501195103552045854432306399741907413262156666146360312631933069096824392679280531108753287385224388553520859932774732819365209027210991326779597617806986070166903530913991751901180104597400901621159069500872660139835633060841593732721369406030991650012156261311790688219192509017608104643681571432745313757327682232382735942019177297619043463588112029477631849270336952308699589445512715569702908593224489906502721278883378635709315521715163519627767972340057769559604492872300748016304267701168241334239007134779439074495231668406479612941083753597043808282350021762692354005827272452524997531077538297521868986152164136106725598607828712515214271143276338041860903641526070483533674859738114412069266016480391055432724224386986854506370393702079084758098477079982743855758982923761548061435873088517110860845203501885945995311930724966709146066008352338335320475893932562769581811032635754943608714505591994411675500280526359186196558063852095104715477344267760276224304315914102550334161254448324921203573828331954835497860869914740087739764430234978893719080572578103485330719488220536707056691084241241516718869524174648900433758997914929141937344326024681038654714108574920253601347606725966957991023570749783433111202601154412918003607721286345375973872025250768243667889045565410223113178094454958152070851576465714303618576670637127575681685940712851701784383793443900562313233300183879762435426177515287833501908409155952078857824077764436902341992573996020182578938878125323450623058623934688616857997113392307420153597580749234121125442628225487748587708102892329587268272385594191733806310067705439473984064080401369327055463219021553024864913692608160124085128904939478914056639939780469595152086668454029302825744500335423134919728056518585665935690921100442712225410455470117781615062020229831269893578901283041437704840282443635977042658091749776028693061048072406111080854206874893328183139784057057189109369127118226173428362476802677217461674628224682870670596271097277489061155234502773943715240043231535038284911259490359939581646123546696756482086796704420307469429917723702478401862007928521336310231976014302620115632234563749648304611649835195727517360302001882226373715153848058855751973678984242388240998305823337896690989212847963200997072607769152060289937140472278706319331173673753943244844525309233186964084381448474905096052555332772044088502811978977092517702823432388810657897995855380866659507346366450122663024056891098888747612001358656872864768234152134523505822052790203540533337910537190245233371253259683430191356722288757789845078001702625341235910273306562531755906856293988486712529212545328042572001178815869352210159206570722068394135703380821568147381962968626656336268046419331408281651144718102273590900300826532788178347605266700706757458760396652191740234327370899576135834588983055712312805397901670015589643291847406769062449502500052811273083053707807574715251561338561053885146004107668669125831535767974674156633458213300422985287213241178337275764230559139587936583524878288457657722400067188232475332801989876119911055998426684648024423051355744776923694630016089219029401889162634749697688478002332182094313618023118512135363084872960744443761583437322184075804529345034108528088952920327521692304103394232096496836848243953995863043922305043642107700533899880533917915923290865874703613637530160005863673790837105394875335815972191677664293216195986906279978609399056641473307888297718745780122269258311690433724010286674515263966541344419538948221743132300894990433926791381158828540516828922654624431809932785446269554122637739732895516992374377975505673270863411385206094891500010604207151659164727247334750879213236219124443881899319624390264266163977665445238829900008455932829600002633651884781944344477875636528448552965814772207490500807922102466422967992688927873816994638534514042068894010439094328423612514708512779661987402539586458733882024337969038329020819477461754200492973985093218836947101394599287995211437627385261436784816218809719529128686136272457373699769714737011479903261849631992249293870673296182884173936774593536957379038138334888251034706745652564940779371607584186183572620547916176288943757189614296506170519937087592525625405650073442771626432816965139448289604967266565824590315117808842838631428104331716020283057790904849804667455842216164436524721752772049003606200701862006534092533406820599257999235315977036597844918083796354315543685808552795033597644726249297847832479362711248102943372828886268869839579363144408656801453387974972321583802550438349835298734787385318693996467742556401265010603644023990294114249052746684803347020439198491388439630840348350150363093814527183540293536043962077987195814026319807878725002734759746557731831883097327756529342404316006717032927138634560046883132978717222298153409963916812287529145685615109525151009980864470024439684649576349142992267903433216628702360917022587127959482700088456395933474665547123646904350669034876890808622558610293813391336663307773329677570062752842870636357048116076143111262674509510760553173924125744001561306707532004662371401734844412943053863898873181015155497727775140313874407481648869173217654609259584639778548759463097448636071818316671478315180389018327810535909285948454856379386271289746474238820371254771763612586431430140576848768707767891744189574963943847135038247314261570887650378373610745748871257755790755939165963770658613442323418960808691447498988730371479251638705955051084499187026352056747750855599176403890206460600582553523397534151586536587768099641379591438173299360903212070133867748522333603147998710269656814763610493989249882806195754682212626566061355070128771155008072349282167888152985134826208753612583448838423082458553805304150727215350723489894513336794577966072893813217089650502422869613388160882308604522101828289255773840755898312181688299269016145070866921411752213948906691450825608949663570199533208388595043644914682123053414530883548621491407890561129554420293333253961665998676113475967848749001727945524148047234470121160487222200336621065190878600762490050033370150143889286358717750011190064021279342738643335540187518861309797620310490279758643285424443869889223996108108281281248965155383962429049372434070885019210973474565842160344580536900445480023385741922988752457305082511726779211730683060845352568320982731215747356720870412419107139862379358161231502411943499206522259124981347715809175123802409643886477424234094784322497669726122096555574197816766879765551546298449194779516590776856292321496531310724810013926552947679516449119492177013090119920929069722783092989193825605056055823678022639007150947333797052264754581266588162642406886799313818505605599017463512612641886497789242600454155345593992738238197329982222831866238242949138098677289578005609162039518236656340207402987558321992187359084440488740701398518878334745369520918959451703092032952971041406935028524887428445082142719168000856495944811388264166115249648684757780114365113769342626261469021062988086142643360986533395061082713641020703740171107473964494254397079463040836239577777528569948986487711249366457561459803913248750509524651032587672447406498460861644030353630684454409022970968824982442547005694406670368617953424473734811086295719133948385062319768527479196441608561317361544912482531972974181696394922185123550341972891861868571363286098188381101980789960007488253415355853450787649408598737145824228286725263179023700325135316304903427187435368608571092504918676581616806511156486793166429179031447841455536591916529869963803454577548851563080078094815972705767486568985443210669581391283428539703603269411776591177849446890369268329805823111794147074245251697650917428858781386644865441918309974767298746180470902561559165538490220784803397188315205390857605978069344329752646430028937657867106583465269916635087307243761799217115666019703518693394955861883580659133563191198988203628870667615432017195249409501058306553860130755641701267990088537352183446560747132450365988420997765371169805647849379797476973241027536123932735991740640963718067524466861465358553834143808695766117974979541067692222760811325581600988429847537223339486407361709706369718684627292175684762832768851944266237533719540080720998513989518320969091193924081359015862257266660916335817947307924043142566881426932245635018489046042049323488854338687223794686916995491099991850774238806259044735983115605655690495965890787456149831001559933358587254137883095356585998862973017629523715725739157107820404879037193672875985225364510156326047177734529058848517048425053543174708444462903221699215103959585404286663128954974646798384389930908371561409421713360693206679619657653425756842816377134559211149027620309178263937869121457354727303561874173531532750629331417411675771857282342190596121019588153348137412556505152338919514741109849280014774213267833469653116707101495257629952984653042471182383679593229791562439391170505570362620798285873995908375793300962404476980533199819078148146139744796156921032291073518837064995000816022780700185927757689995481876380440204954582200320519108831733705884671973416951787512891754478851538396163276521902378281085751707467689980361934962677679247225613987782121700921690365068856583387521190557117767880051995706008511661587324910889395794052652643564520648216129041087434276505235401639660722815356556196250410762133727415951817905553218829374908682831553786651615623145330102951761594793817447446247915419905514863919723502767330898515519512551299640832446860495970668747469775313665931573812282884761225951205585178098016510709882828081003821167386280237193851983294795085973811164576569482436874424260826531474326490488953944406780181619231838266438869560485082441994198720499179309937057227533225100853467186918519211969130075936062545601982164471508531975650546976562431540314193328601316613569925978990390818177280138040906617881323758452951234493256981190719768705266529484286698322939867567702245898166497104154744571010382547888641661781966426043099686575790337610163378457884736718675613472199975194406399744492582129059544188474908431024147871230952706627363992953522316005200873842212249322669946209959177419613122868108841439752645065416335816537348460979168458637718485075750339500099069186926826807642445497237976429203492597339470190932677159879225567559527488709393019811779069343234855905168421156586542269436357736413306303975954740110976884889701223657156597665130820253477706850567409333963957849941241717924621835911323291335309275501605192719346914330961533642450343663055892904052533001454363704946018517822645368204334872098547290175186899288778119187683346048036753938918021608863310469324432098201189496849034319885528976033196211956454875270938501755420007586645772694787104268576534555405079207003754556529892608751728341088228428939813139352301341906499397919996365796035277193592340289866476408619500265006021884167618627274598002107220526510798260899553441867802788036392089891689557873427584023337694683549909677835097253112380208209051130130141426672200501763669172879948855468923285758627082158820513333666845448190241726603184984458117340017142885235576630018526112447494153366651171360893744289722502923984660689789918459573317915284183226748220125862145703788527095501845144983936087228716246773353806160019035500223865966203215749305290341079179755225696055930236931367095585699581640678248935106643279176860981319579276155193355899463295193034628041879408149208451155446527348289041428852283845136782731936054280599871608194687629260305127719692675976903220202178795311532672674209614381344790613201835380830938810538158372943914634955519342534895330671897852339114520326002581385169599687992834154577891821601500273469906498527180942914163757928506748441721590887890627961137005676104845725239677859408038168940899763188213141085685376779460460992206330829271083691936176413309032455529034473576137850232089109667247611346071246800957653235337974702234416708786280444168347818823667190481605915589340205135191192297106329753437763675404506971584957207361311568597676422334716649767260858379370616888298606387386760688332396115441694062132451002528211821347040292780529559079133128081948694082252566866279933225618758159390728914989828085356193834531993929877459956327887875178798576279293935279634816081931811614429946042388670098699448390812282538172816514045863209264326971092638460885506493084273443837287106001138370156023478030852269345928059726507197691057688150304370163161491017673150161607239989246120817553099989032761772981406156709604669604237806444033680141491883350099872282688608971557043851585254628103455402948073382519490383441893404643844572772922242471175032070519291714835910444916493940659004462368897143390696396010049358510134136885331467191764334280862779543233428183140013041513998002694661291818311577472291678398329256799702352667914827909030742632033177102702518622418261763530808622336208418523544247020503903367915649393328495754914492111234439474609275492683087352244311028427528793967236241954707700968383199823310437997927418193495140419953969509265272797828512990059665319484846762779989932885474811880040718481162048051710148802321647681577251918723148595815736340641119037414944376946395606478414963879465262788870419251942706059152243006254306981321117261421567365369473060152615997138497272475085696635205077030821340306133214514692597001390466447497909786378137506592401328316569046825508715452631004440541622399939102770878702984006924456750773663442475425550595787882555721477830018114194725326156884067689325943534844091193874326274150844614504875116819320598953008218906066573446833666281368316581410903439672661836461789729054703666751060780035671193275252494561074047757155482997064802278292128106140629620726836654497223201101771856092126957704273837808595659250543564579194350601347825180523584025967006174849227741513514472342654315024481042412051973723259094498962331460084647140512989610182489314636912648898748361643939104493501971396069256604678745909673216982517124351535322502411762223395368864830303589360969241341944661430672893867843264624982880318717561996863600777119807568525668270082089558249582820896361873607956142398503783077324232433896052023639478304304741606280998105026830594199380288799325066725411044157958048237896065642750552626767212893764365935148077631051786900240926589406952392517804110721396022627047579820906717690625310505795845602569526695846669768782585621502674673330141292779923563239276654226138213227895009313871605744288757949162612003046092894682362987620092531430938040576558649436180389283910365739196495867899246589850917716044425893374914066584683485139745747597973928010885203801178090187250575238089483990014906547056157891222600187502224382278284847167481376520515795054547323764884722711603066191051349959732732665859327346513771015640571129188040073240153825321658969563822250775715981677208582014958681282050106316240289959521106363771903693832349660720557526424022409569534435464635223037534136588168937273671102505549687102664328950492856645737402274443710566177836359726979954981344999929334265073978525517863344933822163519760265773206968064064348123771447949259821330269337054514060130858345469512141055093571773359571522430729893743594028408440303045658812800912501520427893210328996382788624933554242612259308201093643352916554509465520791252029371694687608304047575458778726674472661412445902024963606003407955057842868517487712044985578162470144605732956308219696808307585836718573847066134992473755584238444293304955088314463406460134249632439930803175412334278726702437418427995338001341607985397723157860670740997018377319837171377450765025894508009810541080548655575828927853250537176373123205225014630686600605932734347820978675550307629980814673960264209196950875105083996260343918866619183331497375222328831063671542123516845295141540934792837050861512757455487484740176825620898694964718029799283916598996015966120975603193719522232152665405201277361433405864573343000702829217437010400800031609159647605937411624635342622036085697636668046542165541596291331019642613612351030465703853325879870243602400717103482680542910735547405755547368710196027950472438417245737861369167338000854246106397112625844680210097069565774536145037288870190672670305551083779103114978552233273933256002757778445860946055293822638232892007833155396349493440022763615873350531111128062347723642435484053960507417731981060916588541024681269829131426703704255547482038624879098679983365437449511874332994223956599886571055598214623400576552281235071032762484657035022083154446462985733621818843985015737779333206705612796441743741073432653130180829172447674456059835371757800717474245287171198142167035266131512143242406289831477052955200070548799013382309408866603315797009573173226034101996854358614331947958608228656403714069355845940437225989114818032717743920232534745572656046340816340548124517442355091344463811978609720830832589195820604385745582168880787031629760494191366946798269213260328119600620852614716431773771275979381159367304515295465164917066564659821942144093141629755867033800496319500997972924839422873303599348834671117434662312759884710474668645670146731204414582694904547395081416426328634522893232745107043610099019232064796097239170072396694611182154018746381675440755888441363571529514228202110002242899242423983901218527411727174525827553478985726929990573991837352214578653375490873103253350769212949392121291395718580802831694298007507166419612802700573590163175549268499143681810900340331548004323962591698305046880488111890014223509585883406602143270658154498468774489264880395381420523618813860825816726833256760536468615228876794748916777187296795857289750531019916027824889169805940194799890680695681598936570199112607273294763068965220871588666412821003493968282030042383725408695216564940369914812608743202575200784800342606846241044647585208632394981564909759709893665690054281470859239709181195692955393177578154391170629722697617514196372749388353821030387001551050338280319244359209013843978134450395884495970212193434569879264971186544618780144384977200514808137858168868387647672692533913200154190986782260924666343187611390246898618634766441462695375699427624172981870259514071004058661399040716580339242878979079672338227678464309427916581039646788667674386193879223835886923630584897939627391352303872117786001143553857473050691121808925635513312468389448052905898095160720280324063846525352240722698175138270454516804725576180458644639118835515132042143817802611451362682877557258124144693667846861406456534343756037017973310618576628435819390160254274991406585530741622112279536082809132594313799470315236396596720514093790501182952099412943742614343020057161061190755012173109913399711419726243534049524926338770864885531191695783691785453227312785983261890969145964568647070689646497402452212113654370275816250421738610110718475155728868547951138244837629217971714357549047826484986070414636923620217000020979057348151870288127957175193397249293356312308849379669325718622784796564574463022406117657130785486679715147106075796026895303479040117322753641341026323001721418899894557525907820377900143660373166198301229664630200001355616960724648853683126460026480130087772762459018798556822418138176786842439011931605265524421987521636563626965412541990793123766148262639415829284834869182450613100890246216090536070424910431946232912698001445166635518025215405389381516767574307057681876128302358532863327933206778348845878982123554694159787933070856830692579181286654407551336957491886910118737308311002188400660825106170046351032291885352236511591783775105173649223824951885519941745505445220376851031051351775035061198253785413263923546981362593236864458529072566976941623587584885080066340061462293034249052520438079128658530115984159603619617963986244207913572254704743639779630336638617566187960670642208088299552740576722774162161862461815792267407899779593873368835502218275713015365488572753468798649507115614146418853636849491466985518900764249034457366357495573323063881912720528518275846397258976898797666392900973482131335449695974410179262540502559485825685725065726582581925620991145782672732238134543277132427277026327327375619917603184561690584750841106615014292455103643737049414224767354723760144615985671986051122328833164454073207458834396373496771796109763188456478290641647230940874228442717676378056104871605517821856486115439505153676699388223449130294948423454193072893728289728499623436641866951990522098160797729328231886607080662467578711731912803749395257310875423042055644924585066029164838898824078722878069463953294761794417796355017908910595324881897813542631383796937249615495459219663384672200750312443582836996232897076880945250535341651154112116967674366663971211738554416226037426759926005837853638585174883936722536899543110914632868765293977520577954345182121111962174048063299920269366028993748352585361348023528550770603128141109116259159606364769914346463855616919507521918127149786938435142675251455884811512671430981744094694084064225994621513113113720392885621815388301143743172337166382854453219241482066890123363917436058019851961326024582588719428118624721510960700846084821185817368959138363586792507346990559861847326592512893473682607079111315247774531028432936547721691014313283954459588117406141845964892626264409346338749388309287751051247217403713658192745070868871201152563522562218920935776027557536901548655544097885015540090981806890552462398255136031609971236171377459994461490761371474615951864597469590819785292735421307418494909290970051037283765432860118392801768434766713932225220882964948173489859547849036496973062288255220819474881656731852568708677463299103746980587178160682172225948074992137179642547659813410474201729244159086563686331143905617516497878992360300216680606997120683673244030512590066382457565581554051295502786193600746594307333001416503033741899380125041321660092644622024661914944245072539268862610757011022541449960624076282480918962031639977288821600354171193757386910280545072965026710204224111066581642972881271849714488606762166410021912707248595603894522299974967138052323225504877072947799793415124081591399818215817267591292594142771891837453422273772093176045426643182715482877732872058853874735920267808423888856455359630862465736026165932408345038150280202946875961907928269692494022771883279192280487549754523789199825401735226211821667758697923693558298981864494606762879753249936209293464767679708843288410718094705104385933798870426599565756721983065070955731499387594924538383539805504623963188890916074123525721310486287470733318519215937378308380317802681322467116406479803190392617387900849988701699263877149170658724766391272919848612943045145830812082177391897104784515519563669797073381613451174519219332762076370261850028027493728707897707057954619362685506847625452430665453647961805092095909312983723768772252342646485546787602983810789199795923865145410413561693252542408115284435376477531249949226017236780060397342596522716889734343906373074609647493713922546799012372631210349494378540104270231641442755848692998461581134580812906174952566330542608220260874240610332114531687193781715681900370931279084886211791863081546562887440692437542828672236059164584876278862035885820373837386987992821520077268943805208662334725831090955698671509794938905348306672319794669611216359324609680169490330584796476515845336775596941638410136802296109767150728681611419661013868848473106657702789699264728694197070527157202102946565454867304196773839998048279451469985049756195747989616358838083957178722470444078247884849523429654276285382945268247129671723203666851328903506396336149238899536119278476548409037628814972022415814120479417887681633496042960642859052784327081387491130733842577125932904958290930893786376695896333593815862590330785225756771815216102242670799890351599278382465215878305649507657980070174717007462199368412589321047831875706570748409584379998379137694974671279989098202854967201839677533019402579224754371130769559843055012792898833189072292747470208177759094681125058740578385204204375185340313588119283954975740787345001488012613876129139583751496305815046666702604522552840789736926022958778523275261721346427076330848367447504169543642970797184655485761301638637901300765048609238336161026018810585416917190661866646853226530690054380706970688195038941059687068007046866610755713334648501470710123705586060374376807095158423928791781153295391869514427430533186684510540231414171563644932639700646130098855339212873122399734699371210648799771255213332305560608538060886612123163388882008310654362220665975284375669369771997663079985244543823488255679795068827911193843232209167327785561523571022622764135861593931269895515942850008989674617802211370079998060507437354505220686204005360325916796355613766881392037840651564907824654950923898000111063885154992571835781433938987483203667933985697150697324944632708654161290429253638746419510503825251906256948382884434215702625365896838146364206087581634650186742715326899876173587882172146235015651391348173726011646393060136446169165861255895172530808462180695699236249884774756606011465744392207713269391021738947328399297384256773162966098906054840952335709718785517368832736211334166722712189603823019872082843129833214085581786466455385977307101386059698669949836594312357641157278172896345191238191527511972219331462810005669750137520683596540271292836281566326212552750451083523668918307983394813078203582591155232373117586826343620270989479093703718057536901486175189837888519713059646510361288544575164747124486564126440973512912059554428012948866911891638189950549623388322597623119629095006530827917129279861357121539192859482204305539248502093856408289287100928198036057589826565067957600966973264344348963295652156031976152758262546697114229424911714738596767818460679486907788759373825788552248402374084898338745952887713764746189742259221350187809640661203603976872425972817807744489193882845929182055829804629408928748177798756712603741905942345798699240740338618934512707439021314897937256170607708978797663718417001332881267379382486886075925593310659995343444139051348540704998351169521013125150228300455950681060427324888332578915091076299126559743018358872969979644031957362877438126404810092816907927910334984549811441920817061131192090063083480356077754275656632980432030013098022594513695318985557516680279686149230488070797162982257994787993016128541858154641824053905470802564644315691374364639365345901883308879333646485087189631385172804996925125646500443475152053024350842440291050276179302519857871101739981402321860948992918566946414472370060480760236782536261381369602090016236850840011484361824247645446248378340778233378657798884288988186098140417928693027682535168713901032402854044916484305085568248070415008289204497038487519377255731015963194735447989325758013080968872649775510526869747965473581995519127295539455558282203095657828751777110085679148777583710714394529544064272695263525380200612476579995646575328061596340885833255266543913987208723068960496787185148850859491407386010599880027922387397070412349501316949988779596769814290738945591169267210261574746728030600416388755935884261965302631206472852647696136953147286388660343432348456413477643595546335598063099949556828752422403821239151476959517753591879291118895359212617223086235427919217826628683093998389985384430300979754954997611441376389569985524591941062499175678304104278529599555491112275188172978583873415255815140380668183985510075748759591547372570456206546673623552611028935271070147615327874215795956200182652928188581524861688042368226242584341504211799639950672514882002967290455401591316659638222675638246145074130661535992605311649750631454878811292331236147651452480814183576232626201755286326195011040946977992044303952160985598645633632633216272439024428296140151021662423080458772891103799004019389203506562846013595248681315624472445181779990054844727009259346970414111210538971483689494636397349123184749704827472386606949377541278494799175587848503309327194036559708484894092000733518527551812879123733572051099208958959892071003190874521960341738589292751238908037334799636474189189268354367089924552960696147304716769159317456232616226736058682963246416767302639329972438852953213564608198676346145087515077346357558713182619436594789436998836136289358350479826859309645358114566363688611937781388291823114809002506040068897847361692410026456836824680643605286458769264001361691670727012708487495217194235719559154691165436720677415913668777668616996363992691959602073964907664656884720605097294724719972716341431020261785514506522790682082967331283625918913396488274584823235084593210489575568864676401350069599376325331209287581900205647698440938435344438880874026189994623327656502798567493239056607268571828617061851720315491883897062482650730969163311614809208248619917172939404184279592758050020426323549155480374988891287929859156456034749579253138767735022372074293911566055737541256642684100607888922891625562297233276970648055708351861539208611666101837280104913273493007625577935902976851474967541026002858219698977584535283311880741481738201049094016385688647413068268982944717296445224638316905354442971703033694952028428999699805719032778206601389763908534487301847752850963966968133733352561620665596914672559702435518105842428756594268577730158721123780758080903199082829921528777897374622865095555302106163677718616848007809631343777217278552246629743996097648348084076476667923934114354542274442778449748358822610663646507324315943637182786833684475939319328673060677400908230342067745510423915286528267641868145932599981700584997007487375242890669183505851423956808083619896003118905710035730365183740860644460025129607414699944909614948145778317093145785319114083554533682577483076242059673853019564770750063705410639038007148046678687380758554582506649951076705601989179341424671910222327009594102705312439145667871852282205602154971105251270763268401112018559138392385399680771418986458555326405906387786006887550807255956536550502862562993268687322541793715420732493594249231621860566433265144350105708854833478685604165741760472385599350146672745450376160384746143530086957566624516631577157356683931377462996167250052841471929699381476309594341221431660797867581253604329760021262097140325550345547192891426560388394293577365067753616544643960404415486540372510638330383040811306917578589249694057969980678541998118885479514296867888767974313951353185644132728782949645675713812463796015162394917984798050070559066325690280722440013500572277352775220658559614320970139189349020944103581643608217638750672693356249535648037569201405158872347482123368989726399452058962330754725627952613187259992538978224351826962560937845688941354731426602206834441555440169319387895443925564850203527869584718945773677795863252801027438959538742253453585957838583646059810874381732546432740782135708436801225117808351358240877190277407083882367151490487051959528331169082547476041484583102902148765127998551439767012859995771870172983466179863724811017312629036552241956761000304013214194654899557781973884399545356981286329380135876891601019686932646805096311389698990668195160601328749973671631673018745120262222491336037769733811766388241780403911489482856390394762227815328486864493268957835006245663425665860963546962445759105775890116614077715715935860472316234303546236175332794864549501098328877841582836881031983241940748037101271777706758517369369164532173764668796200123381354285861237204782793649114089687902406815800561619968603783389661885929048447873807302562619631862546641025473322915380913630087969532063799148010990384623279829009706020095437557584183977001502888783696232364779812305357389224739114975129111092815724588756969821383565941196029964431801972601535053170273678219005373912138201162985563223248246398278204681085822200851886287801881353578668794281510567592783750477068473789405101888458705479644258722937122596721299114128256510017098338386689635943469688735778588925514502765057978780306917511868541667524990010908670011194093254928899165323967191295806297138297410818543640523346842855284660469268557659866545831495496265396242445983232781023067660475526517881249432478287694059016557482400934926205642142068063750702990959716961796694957522588785212906587683847816868871368881629246442912727964833024049950800815120507996659578272368568464603821592919075908527891699391575459389267144118915770290533190692891475454349043668865553960497144257493639547283143464883854367500115358952546815294065985124089599709635508807750747424601065848620910261717687572008601806632765719475325374834485754299273608617831650222954014490484327957548496219939903762381832630833585547797786958331986329138965826340818339450071954301566250203926593524312750478553108257776577659153892413108601222516178018414418117841631197403653143361152067385594353255191528870828610949027416488207694890137927896097465119940813777925581629462684445341777074281515301362739754347280832855805241669322014865096843841535805307991743545481361337785239306114420268805029919944284531015636797871782857948911512046080897008638247716171040953616142480022526088657632655306703195034376977917433453395781440664897449802001001995378482894530862736304886994228588283360296615586679044665588150067906425128333180149347707887292857887887762963852175071028004934700603325772934368246073430963110208423899043874694597986814995795321723943401366587394672750633769620670500051200990972776074147648866096884270160884015851760672506749794368536957500395812076576493411290714349109998431322496068407704510796914577070673344136363410743515625973538219570737140629501467850498617158781402871870488232340253332902032303576606760711327955839293843065327078108931530034023048559444137652081073081598498751915104000911653440678688588866798653147447907805755529866195588185413723709899166468938759432010626086412995209648331316594907901586467779944870575690419631793170459565065181889639658959441412843905993371818540709990171284791605638269555414067874420761337022471887612881037888887535856891917416325933902886121047374698565227703057791823368494239358532750038013961286726618585324219809285671858863566401910340774191189545889989959745584508032473662878519144800218676834694491439755244583556583570942998437902022645270627136354791278426453381926658442428995114215946023535472607482325817646130502862622401558449586276829942667339562364839399774703978122636903346864383307403609996899554100854722368314182716826887536144041217625289299611070591213793757599637372495951520301765929486581341598295678417685807901705620643350641745315556328538355117124020878617738037131186867544915721893628953616478255065460306447628840108591447509494181659759929109519069748337691840874202013379750787571685189636957776291197279465122528084121013242226340186482714600530395965256663564273783062169301168619013243652969820419278613083079113337847320383794576055406733212123141827026524301477678495331545163367422873531472327748151041644327044762010615034108133276474212678034407026078115392084578921586918938495354220514633750357435916851762532852378550429750474339457487944985893070541098480758236220073620609834709263303481832448690008996458552624390562811775219759274572147705462106534932809226362889267677572653810611077362928704447565052603727957534099664967014860319395093499644766145299897842038363196474610128224346942771647991172131216265258969571127217253204542079635686086518398591814375931461711908387038745893471495535106722763636392202532741683416598898903962262435458016085428121401659471211837519220081275738809618732508261372154413265397201942205432320073164190040673846583970982473340726895958930157288417391308083299157614068668536442056288595497571576733105251912900488750235170459167440104711697074869924768298170030641447503654123152002418984626254846238324823324039236229711703521426737036867705585369677974269270497196751624709775738923045189925078416039513060837839051832257551689622753103389585827003482321723177198888937110168209220049269572821157337308482703407472026874650001810322171351525170632305529344510588746666421925469999244197814990643728464014092214219643870676430343147981368328432916547271610097949690200901896649518207839624655269431008307822656098135587367964755380659942406254410104144965291752865589695871485170242650448029039426798739646956044612502086603562307763870055764492381104605599833867498655187174709618032240056009417695377324130172826983254958456645787576079134630492512196433278819096374257056833070676649557874096826086530210312548088692745653617912483753872938220492445650078059240931407496585097286762277839663543520452230763578063876482692048778175152181667547413628365708388407766316730475222114283420563092291323703734699495775661137590958179436428580939696437331184022162772575244548598597351135319550179595005351928113758081376901747568281124163966254646234288557450704717486291180105312317498727838982782207241102772406725495046866728669909636578493321308677884404353202926727753182879235340706253835254679049642527740036961284178093709973497531594460380829920324542975107892136693899117080168881450423563979004808057125306864594102539073695032157518133907848053318077226233676870431009069551834767223985291633155505226104381639217490824776827107922633427501245955652157677873644276285282179501762579324016484408293185302844279276446609842217269578460703806377911249344940645552208244230224975261634188324432539291372381345194216952653490242145600683425867179402572631137485694341005465219617114785583888035778766709197681927226311631391948533742678317339974487745336564608853093154366948725293731949612949462594251886614977224941479182281100996656206203556071709584046337546424981819503402621455787007830066663384539632113038449791605056656853690760373881650007499252234570971897934283364440002009464776739745146292075122837395037623333465043866373908019368061997843345502484196551633024687073158741139773242164195427018822329111005462983178488459368965634139467720713084801846251292441782250814943871314726924636711523199291762355830988613574474821994865657342256590953371948864172732479305688824301227726462701070885321651934433777716863294452146263905281299719203499297215710806245422869724406932302268843724429038306139770597695762292787207194143233018928375354963589495736274326225869597627339151061260605172233862048156209177033288580703170692972534731382532777110210490487114875201992857964024091247543019878034359312580467267206751035979314696939098945709188807822468841867810811432536795177838644215678367465959803802765591947705118074611679766955446255419072506067895169721355072327301586477948753468788845050398170795110872193335525162204260120958752225321760331058426205935850534449046497381085360456948405437160334882747246565702568432815075108716479235757838380852482326604271687723719817781577152277360603432379232485219669639412680081289119223064886071286068903980591573057537502480933803230879041036701443019632638409527755977654634683311970223738486977280649623185562039517061058065464216920872709076739746620457695846267367665812090848984036246762819971551173958036768464987278437755544181610080724424946583089440154788887078149461117445505023103384192759759854798604398026999475767927883764610046541852027496427281335309491520712213584911854498585636618582517807590871805325092888009157472209206517317412734717458821827853179447975980899753912499188578973165069097500397215136182135675303833160475416284422399119332725203505254407901255447867144207290084312840974358368004923781996060978927840052609623253862366627420603352089454622893304438684955019175272160143440772253909955241727783785902684210704985688784680430828529529894565104681367139106819661620329087408208416631794927222403746912727019010668173554822295215803057275561507687912878972378198016688623056647733240627233027139000141056126289163351129641642497878416082582111237209454999244883699098632555754598292935156450419842549045316573137377349687442838497279380355346673127129794047235945587124294661690828939748486000950130471237925520071776553887018194646086408854316639051854301372363383609658508814419125178701954152912123279975833454730143869662126215357648923746562811587393836399640224989831714325063853419159836312745849295076927474206390115703396757679773912447646322594217591996899130446522336753512700100839677539684831421134263953267851252600085296154139558817639444235404867427546463404024557395688608517489688528381206599562891337333258798548858318799601032768881538061206810434439619285358402456619271062297022200426093411046466186993323918961382501939901250893666688414055443922024455069155296882714379350877686260240199211962046171582915919319781472360614379170211837024866488634114867324621620654939629217961387564278833944457876413616398935458636400471605341965259714244001242844537403453306902628710640602558748488666125108128742682587959691483456836867953536597581912684095165045514636030704983656686692729966170103688302212257373788427723124597396133479027985442265054005117175289403209976568751727740643099786926883308247379780837951470363977023945914820436303769851675080278686839379883227632153375614093135351999579477162910947386809487507906091008258767150487439893230180334577335409856453174174379248986347159234777383368637611867723709359709752930753057278271920221744562782824301039934090727041728592182778899993083960211184941510707582772856149859287764638026961609681215917813242202219306087402591277751925040541204437712713205235941317116295837336974533907182234566331798917959151947755015814315375367906980391262382118575060274929961552335774147166881589005551283092134361721527983241726067393877771771267938185036275834168374946497063860940622868278421865097421775141869531470373845907974130927969981710684328577157988762050590401981602593736058730160196547325310754585687651957538899844944870149825056788730615824946756314825772034808218348746956835656229263448354983422164767212046660835916112840941451628806949455331467237673909765324762677476235732107074018389720101729456521207143625480134920497373002250678485452904786104275811539159871916595094029629780549377641690695504279272567594309938944284667520125200318508304833693278968829606347345376269784188933051920098777239344586263978328273166191279160520999718784655436947168833769870990632387910520470635722105922070194085406900926794212699318974521746087129413591746698121372725757403001676150041320589142069075240660204185754245176562111264287529402287530351744593420140532743946097951791677400973487661558462747964680103324040190526593268577887904891188567251983286126996620878307779503634078788581689630386431705594902872317450873852224885076326233898988060727454783704087561826170133802223705944136611153119868927125371306603420153109973299053366037872291533172523368253150538495814294009357180812635851006321468465590728868554035679217978384177084109333383770445995985578221576514628833089688522765975061883647348365531099399300363050373745130051322351902221447820853973380440373265374316953667640246631631878203153335510858828359966737135713434416171478268210946228056933139882682873591196207006128263062091444607536275266462295297435211231644864813555437484557146092785421698693283934437243652292778820288251956762525416029611582827954395651085173696267616682084099546951472799618901557782937503242318569578773324090849600332054118964937663057880142772261435944242282889845259570659269309931878583838895855100282464021724240226540230571490054744433758510190685266581411193721590004093750411759566899735127293307962300192593770851315067199025784985943468113430854971908670406325820137184201424664485729727196615839853327207214419094460835067228367981553292371334791035487713154266746350554850111570322053294181091561908521211036282908239045951613306177304670575881888265178654667754449355058907206634665182723194599270914281272494214150554737124618994494183684811740150130287280294506596869844981057225419232684466223943187936372621346598843966008894533354978195342379963530102519686646223970978452383936521305583638518876891000870533587022102301889117705075247930375642952576726602477795155202079145648369167065181045385028496279921466366410097070778360772615753038865075988574239992667547764586406123486418512511822471755631858932465226994080065054917025814279314403651593194622067242832103164634631007854003039740694472384461160882151413206594864469316664549769938057845755715512629955201692630697380719093173432606105326332721286006911016027175760325860948650361104994947402482048156730421556081068758141739742398377699007264826751455250810733715704017157422445757321959349519840343671148149810009370943352434305923150595413904131889349086811650461682042732003303687036963158361756444516287210943045743001130622906196979461269345898843047217100813071312699114665979629152615197361468828783145684862693266157060740270730220962735123689189089117209916421024844799535419027567598342158665896041817366112000656005126939045460016951320238379035033142893431365230602287578428242606593826477123606707699041537184347555595549467135601818031805036260904915622306869939117407385053062770034167617451971435070295525850287433798977761095624079150976347875627893021536801051597123732418214644025200523523365996013199433757867186411548154941896311841943211442841950094553993801071192375220969014609914235874173790138518777670192920246372739902192708644011737118332080853373616416239053666455148808563064959820869994680807523450213736373130434861989788331015637964873667600681096707960450226029977734488580534024261092138466847817047261186255434052185620849446419779282298031346501346248539631656892130301637395223626638354124708135466608959657019817459949995740080642060168714386662626046746724061464410926777077692579187809369735263053566783744768655174041376797274605192719756842591666505899469832288941031265309371779952743388465885435824827275316191260257845937362983343841439579501881785511772725472017614781177762444596112299844190983447970825096345058673175062610169719998105735727565074531076102924368743686026461958599235366832042159734778358347723337103001598501496838225190241852911159630026689634732723782519193238529167592426188550746482940655481470437658489225258496266574522358008131762605334054776072063979271801074649718260170806825847046793144760934688618114023993343586479244241416769298496205519000197962851665842307777211455300940309436310924519896534491297157174497000023564166659281780475499722350946526827708141027325314897493051643650922171941726600115433353255899753476828927840088086823535732163181587506304695628967449830845238549388340942076533963445331555778976379646086825644208092754757798128436521644816412641774720680048222897231121844694710621273909793002631603009262036450785858075307400136878878489950208874372044528784890767685130642874856935103424664112713562859295921593848968247503054319313809497790040182566591540022210252301913151152905191735170421767719725966404547136206089117153796730844136494491697893512988144735865102847831579931732046107052502254259881603393129206276588309568348881669207529175260330398108884793522897555996494831278264964562741770420751725665329900132132527860065792774406211611838205930035925541166804716082980712019806527997947026427358929376710561200993435480272034809541761442812875059875970097636256478852924103619769952080888519541242303348566308072880726223800439543630327019361384542805103428214881985881291251913350060488954689957633203339783346746933194149989638645971059317162691457464587357390099395539835245094334408752160541727540760750100774214994195736897807919234903047748378599379085468643578401523802635759535582529340949756351548761751670739787419032751509811565352465110785544548419138949602015145190609427694905951027653109441266434578773648845715546628589975406523597820106720339407660674175530737007225590018858493008325363822148446373489687414103838099964851212205800138865297327362893135956372811911239468020799528102800142201002103948365247663818378233336250903396731729865384485726485400534321014161732121805253888411289228247383684130963513777704445772916737010494229629984563502057440805781538641357569162065118267376462157297607848315927372688228035580909734658917570707613593466694806512208988948378783790110728046647086316866626141390391089032928152735339046817960021824886054117690445082512956793778918852279575085144220566511405994067948645108046567020347964689380490403611345199905389639158083688839807369147208213267094524534204205122220877208180821458224199755041271464762312259175835064666509628626611016155045229580618959024796331673380593954812004244979140055916588671515552787639216588231147846011230335275149977679437919816072082281050846144398600658054288511794759451105036316219432753021104532870351245971470703021562730515268979486040192345403315270130087276444095789679751894750371490937429036189415784486731015311582289729921949385634080413836265737515189947398825113127693810818567720101593640678496870904073408808020763651085115305762130610243472904244449559305853370969263844234838475005416316469913791070314459603413543887237210814118265986248765959935850568682703128777503247528731898124374002166311429166915372651023984230018616432426720293016406212598067263597885978071733138656357660465676405650391682038642729867699620736535751852935724176737081087213609383838307220299792303683364581516119886868137127699531660337461999315137945182795706870117815145858466431364100287418474177581662526572920059013297754007556395904387327619421043112732975850762079531474755212414555349716922694236280250877467955987768735673938209678619969306532885068016492543275175417637902688342886974566000571332725097270957042411976867017815188844220857572234322688706241883806448736750588597642432830533897225663257109152494006995726073211863363301379175501024800807399673850912500112403907927817245285017570032177307436232303975183928347332357413188732936040395437007095634250651975470505710790573509265511381768786446762609583287163205690138522499463210731301478052148785400225648620959446269102108411082822805625945625814473393964015265330537749575603680640210866618391019211904634498884900135308182111242245583608452230293363022398343245959627335910131296396940621227534206067886466017787345262232035786563453738358804174545299252009302554721047699103608350493505489759552364712775377364627822005040954523783436982505139107554824294934927947489593758386166667112994826060757888353630439995392646699595020705465271933052225584060646919075445647092384421112562661217073941704549967074599855107952766751385954793736348660209818457120908922332545097212344715456770693804460886133252740533525172791381002416394268571715840211515277058045619420688403430550611383772141282464806499006424730152479480117961561212055561007395597042200177906993738957789951334338211227054827739664890753458581761685990292976417301412217382975815963431225508117173000321515925924199785482972691666588164919023598719881855208325454229102359592975014998722058560007985506015055338784551820127828006482673987312293413116431901492027249516175800383034661806143399660531937985942262799449223124125194255580162441143896914107303503128122337524876000593027632069560832180496883348404689124824796183446768984075111187252259102330640238596693767731541553934544416586504834596555456188575931103672515171434184138786249753045123613042781199995976037869166303741930883478275534492466488412675129101995864809160259124423379167638445412712674001331932400945755733914104445115590270341096431123204186172685476855749381725951186815343271344010363287946607308299496525674206913999263591803584380357010378147327353448276676906626812921954882843940958849764912303744518320562935286415994778868727044685140007542860342641911257190556040692524336907723991624696354143973081250193123475179099431000965013769609789058091515283495362719868166007354125641417741127899680653651359678899055525133733130516976314410605117175559950445005787236080666363303696177564815169380309608092061603275876165253337209113723759511778811304693584067036721522345451993097825066270284791309113240896427905576933533161910792551548409651744925701018728125500094936199949579253761616707165885682798682472784110027686813079650663342911748957060431369216186249421742137298571529992002304542773221322925590491884689107225601906929807656119477127791188189722607142196502636097723553720553732778679489660509792277528018418900148501418736985364478240693445839237470634131480266153783875814734338970306651043399364022797005376919423706723839637719638698507531502291054631009421095004858032284083128011932965306939726489612317431767010755202512994234148277018794924568371415925022301487757368365375130492126481609906727351039033912680006991269124170551608068271437215088889575332611371813914259978883755512644547072114824552079393411368305825451465691610591835863150383628922392956283862462513003293036098013571604712474370347082218473694419910061611309804437080872090558102595075886273070879972366780822688316677369550490393306739827373189158104651717161919762585699141148407655569927709886947608297402060891625724326121784789886433268623148102009536921930165223603684031535768152130848246936400374517169428497764506630764809253763331510145463911529871595247824721289336956174988506664512101821585281293734020025772452768737552006592862257839370268365677609962024036613503700825990093922089190909147772583634100968598089700992843595587525689361760647662529158783481448925862562248850695026063267657490810341228320973748702042038735074254520348289341997905698832891479651242167435212923069618115858023616668133014201440331551875395619476288750967165133572200077616641364148594499900942113025685332215806501503770978762556041266695233769100113538431126044842330925475514138454205894192518428278252748832484171896041322813034618517166458835893538420327472987689706532184669437307368759433519140269609593051625290056958149547142562434005205210132528233127678056392556870203627661644079923864907392918096361420840174485338378941817297933030630644637549836847775758246867668496702894429039557040092709646184083351399406150001285144287023944463433015520591582151111157913491694892324478006567913870353863589137806729789070915840818865699931739177814789474933436637158678623300066574636251467066743111258116919863063278843363957849530681308739173747764794558771025894131250255133289912059351345451666848290243692272516302917256021362870221260735373538334281618895337418482263675517386576639819350415672599289088908627020043544405189162594597352871260602324284651426217533129792931332501773557114272841380577974434382406159300873068029091027043122575436066000674741543573781865797428585341889151907397353554796198111255916075895104005418741266224447852879217257068179950808603745755378238287349816107920587745001072352135719275229971215682442356661005476572558751598825472212149645356152501453382807596606072562385410610678014662894390153038648509254615238731647111553753963719416947343509007650884795462131179850909609270638347462837242649602234325925438603657762880244926348864268690371009123713966881521075723871087034445224605176220360698450950223869808378160566129692241249977120240573904964788560023479113165939461488136009984209889592135197588285087118313468760529481711148883652485993771546848877883543461950181786357424442738131055487198073765245024899252804025113646073251144288815105062809785611665388016798837289595378274193930604080041865704183870576417499669438155835596130405042980469759759288639606768560384800018249774879573348224270746672608886998154992895026489813598759177792159652223570855370297883808923356943352855536657109512745852840581344424622305106547475142155257587633287673156915511529446398626448140103032644300211234074807129183084003492797738006871453922171364639063716396430013810627068459531612368149242891146142021821121941967922650528066864806011953596508921115939203410102394623251632305655071398709764716059100726486328202720479566150266457642153211767454269628481113418513786081946524780299036416646639138489308541383056425656316324756460920885680129386901118105490580758717165095001198462081857134892602780371965279505880297071535205183212123176678314184381833769417621221389656971927868226062393440584781412061688994032080134978785896590095016693367737962654202163317482519272414637837208629075125311705994478592936168144258144598457203941517602984265118169596547511780444455350496068796639745408976794923036962194154174048602986296086119565934473040123326298929941463364308589456928879511438625475160013307435391653919105244227917458400998424133798001068619842480129207918154846224452032749113273888112418928658559632712169873989353972477704156561001308965006271002428872775026154332912921531166953073458314338412943472094653071751052201796928335837046405063687602843409437057347655957787422668233451454628248798555500873951703408651605657615492107765662874435366559641215256029343776242928891745900564390873858245292594205554734639223256131762714270604212165807382186979264901473409737818718391042933539628898124437720535150046957625882365859600947656126291043071262840081825423373200141761996747830749974987321139368626396168551113686188610684807371897501215660824382802658436105892188914414101957116934320461491032303139753773728203833062059029151452146135715371739916114399380943131638147774727635738093440921627009887263324105000597790976577019295298556150986277655907942738492933962494605063165248982253318557467435475648308740557625035610175905609344773598008419353256246292996593192345004520611010576245966649887748386675986701162834108255614084274354049793884392208605299066782011157991461806696168355703029748478575752060583572039893276155155200672596670313417893091584162736818264939577915464782731604807154117852151938239618176508265900062744766276955989200324828039323073966724206673474505899892281445164479934759903129613675093178075352197453417256924397236080772796849438947641427634470078260602615479354172935782118633560860759423632425769034939483528149608297312627699731821367427373342604883748074259233372435189087317365726398073140045248560860042896731274022543147497840934926131952221744803260759124996544138659713162101374787101964785612201961267444850888421199052256926480572101271669213113086261991473285774197499793698057653338432633265506043375616270326385992498237791708074266424940289716371587587582932541547705223871942774456523009374501010315158615470026482746991530605513035411993282906051817659313055539308929664198608971160856165138528216257960879654499966951416030906202031736890892650413449574690753916621150833020606398144476957596645880221266049459801279041956288302878492490209185586693552625098012025276811250524969779034069112360024581245906313771016400101668373152439582959146138310302248144995257051046118759605295790915807807862220003389768295703569753856502800525277920408740931113268034142635191499813000736121060146783216378794977257350443910893697390007799493193596639151632135003811960105521643073148588620367020546539154740503761325405050759062172310046730506606227282882948537254040664607178416620387291943836763277444252497868778093662341155112930330039207177041782872770428288924630600121710836967848452043084841426845585451400475230878717526914581265280175947799356547278599356811853435067125462747313433075402853190501260256945412612538652199102751703883677761638585380095258742191676426814156261752064275224283163213145321466111049705619516369150110686906441105458237234074223226696641397463619519033412358927104315614533071222486764632843914093011611486548345548156451032084511158860277910898064180815385866900693661130102930608999283980822689670760947244826500905199701286292431529931503187903154401035726033214264705436352485314194888096760374743543132968231358578643236489395086395364735451357277045995653772977751013157770006147073841300055734014034091712568676997415099621412424395881593396295466967207058165062735278804934605851672107542812807235641611571132672636440157581467717299738742278914362138650407175723995712388123096578803000189935604929881008933233234236099182108216874421578681401414278403289995489877343691249132551473897407021295264371865570733203268521611578618506633396136421535066306931030526961881932928347872642284139696757838907945747723010870068035154420119747529645393018731300110064228080857733641624279029231669262316595478517502344508333796982117600235383418808695333323547447124507802154996605036009157536555443919917783575190626526502520034544999562505138573083870182973453140070045224845466726268995586894783371786295415766544864287981309671723138485748101043330398243323655282375393086297847121890411589924884910660379405521070603529155208185272148331834231333981539707889300266765549279965175744444715724615501761184162873326418897207058178029319396956336268809260425870364796523435906865560060905810692999248326467372629637262934890042587599914857360792772409333359178559870243424682836334753574443515581867611618006861383165000058108034039944213079233954874853492849894765173885560276343192962686934103571549966514133883345944180560782642095368608481309597044462223701439310288572619755714154675437611302249342242148494945473878205316132164125222306488104708835543859456350826918280424502209112401557383786228455029193521194477358693111216540769644079182051537408349568211422736090348066002664859950870363122723195921730211874778385781359445217671576628018259201500542019031170061606933586814146394368845204459419444027248012355251632887393195284843866496075663001313507592454237909538969393726307222033871309953554104958756043403969087268275670354737483103615834060177415588500447210856739144458454407531878165694554978926327996227583548326773935163335556833830047571880962949363658448297897863367974380560541821053955678855693353860748252066160500658122218970879915354171375057677111315698891448305311783074789164599352452081824267334011054704327721665147366258942610537910313739349152447717160732271379890263677655564885808959594579254407490007766903148018321522277001129283154592470974214591891691221726074099755720182415331939888481820561203553362892381323331536710739635826100336744513441012677599881425832134922197848571409083237181871577621285497442924618350956677075866429255167433737270279087655396354599959340606231975840440195913893061467616209967514481640827318237747494354785827979497175601666547636265970153124416409300700849786766116070309907622374666148796589998117378028021064840210751260849119874477617262917576735685419958575320007586913994438034421955732979353968740240321591911687232401381110038478491798291145983877963059193742450860263893723691113517452322163538346509574216869521881954927547154366195622772835292258919268305171301189360563972669744997235799662150635094613107385105736411125721008305166886894722291778004884487704337171766565493982302462948012497328528217694789902289088303182281862698718949716961336609988479183974412257507724689066440275284859768377550195751660680997293286013228202385086356660362534293935295715133202528563521671773856308504627054358536717025802817315531979740182489566711470718097315576939645626335879155977611063300423495198155830019061126603669310546659016471513546151626377232200019465067400567381835337747125185503020255227522851571461289748301313099677017969823712641883696880308585401719586584309186765547679198409506498034923104159780578066139967003717015431883567917614842069630216799614432853014727747527269111637533366694074993650934935017141901412176505854682800588433633673386558829551715826893915645615616055600376145094837761380019665485123611116991281507085014777058096303351846743675238329414217406185076211028885534069959504317632078166932336683956182102415768759602991834350528478256381330154405218990523358419342234581901794969900202326736432184146023172497095956869792620227088092957108400431436979175747846049659658064624501769319466251926953200108129353745968118505097973269830489731257850381424510733989838857233599205061759478134211300659033914299861946150053929185764935160424160432465016624068541440653901373014235070591379849863743998919854789656559517913459038910010262748557199946424471969575021284777890670986200154551142573188095487301695379353900534031268337048416618624941535401602235908597147955016338834294767840651316425847970365612900617524998315732933464335386433479380196332807420904982127062660544727318071787716388575893827809730337995507940071245491532340594588819394837485464745442601809738824405647307951642427268144222164105206280301121800581995247177583029158923251342741769126269819871714684241449695251750843408578774011335683325558982154931686519897056433167688556396964872938836218065400396155107217821633082849847615870269585774522652760741193935750480315029934920655376155115648290544063051782042974592626801565672356309711364479502068398593632199929808790644127260195605041865555092847133697271694137151821525749256353814733597001888298049506769231527430259405072696545281171473909044987157254014928584510227611999235043854156159173972604500693045359470595753822134552269377133257552376943908206059854165652843484957827676111590395318533908793859031087056158164421116957950593463358390433263680016041022417490867207354514584455039188319370717350808419590311919684237715722887211944790507420813904740259865510749934581112834758574316856546129278079572708809134810334443203630858096425480616137361470367408803620975670238015849242269547645211607356636009798195513132629252940886698098801252457740953698128241945085523741092314908462112971415838835555763069274100941428978887238195602315973419240811755211747319680580567202316616997398828032345872343518625735497047382087553604714247759122441023861913058345332140059880623766481201477409926873557508201028340926414768270441865897723920556544161554709810894291569269314643721912200220743910001960875086355231686942781841983951458658318042824137738217036594924838338265487275715563782709069099640577565615436879036045025826804309562161763415972985101490731572703809082654871199273856941305834976112010679476180546187082813711404200502302225446054568110695702994882831683296626112409131459457488164571152659969582227046744293753767154777073249086298393923862355252535405291955275287435216916700392731179239492998225910972654997572091337382942147959331758141107659636359775524245779218620484108522031955783821858535619630212962632296966925086787072091373460165604804862082217314804720394020068279107873427418410871318151976835879316518941176998713745574203569763138848211888396057791426989031284114569561943649831309789062581394673069593295598669903159873154602631606229264103473957811744983889098472328830491099270861112164871093234114343262069883149515475497742531321426007021505664529984488839126963039457097121933878555847572987699317404538653733601552924221800090675222020000126947097947479327454781478693373786998663772790787656834120361991579087151149785161095074502408412094325700537267157700116914430188096900756636831038068121033545063332482190332213980893555788861595893461836104681084809969559578564609831270401075493435168044839504347272814262764869391523966408972584991806071983786858297069233891636194122104259129181565785532680848736816190946457935146976999135476112081269969384536757981377106479519901597744880243272553388661098247910001246686469570922285561039439745662919601712697068816861623533131725809475405170167278125474138589076275071796151069914203724452105551578226222315272272327293990227863001610077156347699684449584552458880271207045329552511724523080697256668533012056377020351110500787174016305881920039921337723761596351835404929011232985875950365783485937104869348588425897788054042074994282182169775079219926256979570368404368365712128879763780685134124391344141010133531395357734806875721964513038203567415540297670232163674495100803389825494731758014386759912667680174622049895888555615912079120287471342189602727885913188127541955131829064336426842552675968665660512226500303718846181032377942235692751790584710988625583785447378193699567887714737268694734433276567660269948546235489252196973499178640586767553058777717169611653045971324616686115428165066151381195450383356321627473197486123453829878527577992439838129754238843719026365746226387901164893391296367435401017090832641562138165885692126454028250786415696361857226620536935881989246231476219366185046309869782544732767054766041804381973817476487690522627451756535930456265171531817111734513441801870615675371513899253149116900681102025962408517585858339113127237646921566497428136095763584378390110177715280965892725312741251655343979098061426488101648021815748435607933052983443095632686862191870801076636609741343199217627366325923758552763058398338809786410205565402461750576064751335919558147583044699708251860009084521313893692608000130971886784721294044062073298388599073499598784595775012177023720613631529411755307370644510597613653631781992996940213921486283375597567972957816755909898104289048749586196724355083061321308195613759666909074787062481573744966136689016024571183660617441310238005750426598961038129631438681621579990975023498342795561274591981973559292677572832261044920608685147985641431890172260909137089122336525651323859040536565269764703831129282818514902277125040397367474903972379000079629924600223813323933265345533339173966994490136512039764731797062206374493547098131111344299654747140319063710690959588869018342126835432276819110857203308290199816194917235003481589966621825568116382353685304438005753683635312509961338332720712040592629655845722900061755793728982711829230429496545226669981027408580075748283569907097763958064525142257871592608599139606534627016542934612678647164796525329872168236279654976485558016156111869384371607319443706721968233741004322291873213644820456448463802754478590860406831253689376403361549663604178201531416420949798421779758368021415123692611697333675932026796553448723444061686652293435321260092865040237282168731583004341287345813157143502319084320414401540970845930169856093461451366061421652452103529324166716178186490126057768647656142710473076398690863666647939380959420846825779489988782909896231882445384486168917889115830000861882391696136099583133538575912534437332237853288194780954749381081422904350297383830226767341905315804719048314560307051779972402012327662754462152751047304567471112964409786318913533639931357562920771502273678234054559531847265871158455398958945900291981591100023213947431887018731135683803422180578923178696862162364881970263012262291057188216578434407625571388829604026289630106954131914840733444950742463068252062669558543403041992775584189225980877684896682967437451827997626574783021461201660209731772601812044973887295314191479175219952478164188933978273384938349578857346830272279954066447280176816902997393322847458339544315794870822037237876770677045697310010864064314491520862165179257816623703875096841077340453934424343756779871960351693946122578947482536651291439291713894231441242330571713845863171468246278368096250679123251898035006274536426484832617401678730907344992488386190508952866375655726060037305290673730668345717575586189634935520981067938940759281842114759124228703009687391884626903873320937035710568672767812057507678917342147210764270705650206035144600694371728860970430247915596413941567456905952180788585441328495467612511396003796024988356017918736920315607376134809314914748936867757862979846777327534215945734106358752870324220919360195192762952355760862388050003174591353658619806391088913958532062525751005878872774467836815718562477046485922027000784056197683271922928902794023095055098998447405206049397906375076445919604900028723002305627838185247289245257046266944915087279894473289280227761630837984803898764453264433259320748971001243682183340033898894936354282261489845180373853498469328017708863103980362940151061194341475645407510175430235762095731687400125445771401581007855086378799480047737149616956837903115075585802055668271331478793065514013234986680995960720557212119809086955425503124480723690346985202691425574059524997876340308858120976861441785017593306675414445222200491571111840840833684942091768925474749874751357437456052068544235105221355847761260852778779635846403269893354458690793643753414231542261938190599108149015190917057541907420502118497260596221307652933164368229407086069626767314616345719295827704901381330993686822580223100964616456666646626664770167425400752283710651063878360157213755464389935770143103007375670398904389745185935991423338864731837959629457221869822548839545019523151812848381835872079344923198888589322994413309471986275879315221174910154382136147969850706265331969660575983920319326126262975974340300700302475021103269145586859280968267085488897065959070458236311119454207282810983898841278023050291183440095170451911228679086197707170255858560441726798258558236132743208477019808228034291417739685611548492258198793584013460061512421310939851452923748316523245504201699308929958663296897953063868691892778489051963847369064514490174317309630715776263177832036856386241223803721164581203867058423907679815178587089083162824990401283901344675546560432734365666245579872407956711201488084982800969582244926655885935928122119608301108437381410284955378333272026999978382675799788807885156730813868797705729207954878831280041846571235468539724675677529824149151751877989781880559218117579667304026086925013662828121790549022700325066464596957977516941808104773541585783093528688072575377413818116378739098008499475795522991272566474029470599366224014751287800318310224421138282167233914005410516009067947146397610371055852438588152523571928205751523018047218032841400625653754804154673681798167583116213866591121307783952366238102434904941430293162404836006197296231704915249018159698780129810964723340121257708072571652682965490913893886607766441442012505198484375694046968896424163645969399345901316218027356900591609920634046383513215784213896114269985171109216212226587380235285086462764713321712605345051666817354952151135511347786995572542424953246583287625274211996974078704816192608770965099578858826518987729099247160700400170059913181971858503818974963457177037919881323029750986145472984521545986299563767753505016744443423264240120431751954491721303880317025229659755094620949896238161624145341259834950342975097984434218743629057387815759984617722629367580390189641209271029315911785217940425919439718185180015664487357364630692543940948430641452956128254980983824386440373947345108735688860170958016014042370550775905433500091315849230983429822965905900523668161534354212458479036907262690490112339905228504718733612380351623762185511681799442424698085312258747695014402219598083797909274238336208759976317713713519802023346943694637499067273091972302360776646890530189863961208940259605652456104029336422464517323528540900675527980582823669279514746806954947688128001197663438346550828898588226319393806570598817913447611721377816142197250430934637133670410285487927196376060824244253069616485583794365463475811827077979695900975020549927337254885478447904360623730107790687552286218464384817195713541816928718808312094961238675955335779404555580563875214859951380021226775346159269490689777875076117155237814770229623982773128622367812489251436764242885745571810629534445296649156576809520308240094254019517682074709633427208694259193458964185980424357231814480850361302664213795959676072950386492616915699283463209580421540678913209002292205990544241043633179622382251920504140524725583525786836740054685233554086660963767570336825855504742163682159115564095820523266334439815670387122405816474292371352470862505626614473100920154769450381012818852342206425220650780363614183542339890864690441519716815766958996933684135581507697582093405150940370086383610533382609066337143816741571124982486266482668494151916690550242412668094883215084801023063122672483735644384827508238629377121563817760545959169794354486530386144437280159294231785834085574091931443296105307023819566324774676721907059365750647995349995540759505925913866985019783490580704290233437356691727009684085742137159771397231492070248906269934321690468217601707155996044708706237859363100714072791319073810124537212737414154127496253918231671738656945764509349312626162646897684945138207340467356871242525278761521547462269392099732968745940701209036007663768758442651854910528532116676675108259241931974467197167211038523233944819098854586699391822757442114479495651127366757740648985887887509569261752701589853825351224010641598154280344162926180353896332122175897027434755469541602937084001801796410931796987863776938972555915078496402556239002749346571683193731034942962243675881827817954747157277096633240567306983698045638631176472395843848187878128272285127987560589923615761363828048424165475833488127115119374913150461833880380952809111356166039711770915276788539859902528705392942666577053070865459475519247064864436491328604708002217807793297564661638763431682943915904758395439367085201845045333102681113682269303462299632335230307254473094324522243932831633545340826757405550694213901868066032653339923518140139076882652706996330519682388275222033105739650183732482373902439034538383111340463652862614819797493679303540331029696800514238256943540739223496737758613422163562150437955533206858214459951227753002438643973997695615067021326147786680780468022774703273464755635111577235501763579197863967596351560317865528283316772954244243478255980336267227497460962790146714418089053219293409781210554997843079885292495285452631033132352584065325974392354187417992031408996572996833032891551849394883840882138893614190215335105372056474362486858908066304211449304465214756095822313243207578953922370879856720651503085806668183315845868957054786007768906720938146230815220230186174455011077934249584840707916878798841331303644609004800996172052811063159713711141760689331598662577100825436864609347160292725906557003792591469695480235462203348141118079345436145787802664883051580908739655712979290732777357661392962695562538788572809643512074295497082860929866541276849707105075043556616221672392691283491943850371651542510951538533915241092640268655464828887416328576630936282702952168421769136394987356794350042873538608253384124552175654835359300188475325419141168360536247410735907095894510932363101991080033707171317342222264158107771978305642330997080096859163291108442053720642028921917314778084443198257655149119476216317619316519488931666123239801461879014621611421890875082971819000826727727531315671087155754570027165956070723059192625691520189347352894088969569217418921596588079476603965271024440872856263761399197234385328860364013205751110664131871388237135631037057276616222185958936794893214987602172618266646349830926602391489529062201750824096770238265243222964984159777459627805888647941201003863054448733731524314622494928898074647535247252748875563114210399053243923144445232564783312770315645417113785891101793929403676756382344272218555386888458749917798590390835005768892316781099776893101535694207278067503421412739965656866292353539329638126117281900899437836296038067410196330220780935494364048675827077876712421895666826011572771541587671101439512694474880587354252669395658710622579038276714866960121433601741061486408356385229992613840771148015355485573896512156171891525851896971366188349318078199656701991768875054286256811109108428161586571319340754517019557560377487969817068485003123736097470299542176901747531946360354826196288612515713738596417016370915029463037441407728258586512124086412963381686560334763222788112593050866666857050667492687987219901099270511842097091168753494332533139542680150414012848617319268054082591536438429769831124632100503812125791161279319277408291696880240932952413045806524203057326764565512321318855915411114418732626132019865945886749424780995331450561871278447773730237589891434560202097607981805126663652836015799573604115931063311145355203470480368602637683891610349063292348117810406547554173953828920538187632384754859719996648480977263137431962470972800460343197115434368293887769964134744080956778357854339626911820473607639175696725222329401124908879634973639086955987802058969274475668913131406734762991773279925353899976307289014545126846624617517553177670599442449478741013885457680196691101292510626493103740790167085907321376445534296854294308033010839033861181746161691765174609689862992095767217969962917893174009107336360416661775836674335846358818362390249676254705227717919955822729308058999644675800091785635746945831696960420753384414072128775956570408725781712264895592025861101996122955046733083307193880006731665866821159449420928925520715780685955406669238271389942037993247336184371940246972675903220337650002344865717533396018013524031351316781859618080883233897237100140318185427149504372726081707666504044290787950814910655009610265250450893394558957868170929869087784934745796075228152435462204794453886852735031496837979965479960928301251427069139924089057109441950198200932361700924631633952614313941783728262656406462142907708034459610439354226885841641361701340686869939970454319889418890469198729266566691574811886685683952716055009319535005940084319130544801614638147620866198029808729608285019911862581720147164426040410103814929992117862461504257956790383883328150611140115510145108535041048482302523711708814919702937359149742442109004515945860714917682989452525412114973818013731518515802033388734694103189756268442887583375295939798175367478776246575095756173028041292424971675414743536803163228537751666161748246969697589814900118931683164705592842547105476704339963167549020964252502431921510981414549682853375736466879012653337887672984959820416650298615045935368196732682826999306220678087532844951939855185249413824516578447988971152339018031998092333105994677562449368739862606358170002663721515403485250376198888490464390021822767521097635137080645041154227313678809687517514269864935270176054221932809950894751396841260967628275815292804691847057529414292259072403268950931137917590870955306168948852723727816775449069873078789788698724007571443024408644559328518364857546848676002395422323042985294255465378287588546542457550686500481902074655445207166580139995849624725193870918634004994208001445555501800763295007750196974145490082923389378478152790577006885435288096193947191939646096242341809052276416718934514363337508908838511772322154970250365360129405688946427360576597938295063802695020998084539460542674135359226208968867713432150895867245063008003516683162397155952007175818978755428604373103905778571143765398328047646473220566104154305011620943901379396081878267193388712534516711321089451976471289205315518713179193573845799860305256807543595935246634532701870600171569125725515929588939188839510728498276523579456561026105894395554528146625553192944139639373894199436496274658513647924613651526350570174218495294182923273421473651401579170084513452591387826244128158016225329356795396222856785011699752534861894162349790258813242709037273972483829186927555745378885690831210407786294107539377641888869143662138824786802064686611179879463975588219675272830056600839780215588389832358170006736583438362937136677477194650872087643669237251262765784496707472862738154624182724865215018699009461228981839814566945717919114438938175468221269119922814046784928651787952102993808961974830246972088253707427805191132392032058767521196034594064066861636444259268941210349077348239431388348039058324237712234093504833645757622693405842082195741903075791179015046412677403889574325124673057543715466573751667920958805321226561143751466460823921720908647679693430767799157917323450144074917492416702886543283271551410011066371798074288373154626668963058268227373187007428126272805809127345409562796006332499955062882682680313001156667751917070342698141951332760494888508230459965439083810605934534862434049150952028430211371706908799906110047182357282623301504577107770427793938692873366307821132047215525454642959821500535029609394130552908860467198738398538153060627366964888794113030092919547650878659845077266873197252959448702514141683253806713882464645562602506102589100878006479881398581943647486689325361957624159188709820885686003913550440382254896773163496990348131951206574418952824996459825084578753203361893517076478991870957211202226438047902375285658098152468027057823193540911825672679022875180125362778710674695238767126150398145553657921287202281022866335155665060326688839426320262653122702402446467199343412894228007939727312461955211877621905966429840266457399707695355491033063226769055397625443326495038051256273075697724488387481695352792787012312900640900489449238981394955911339889592032224979413421406383017185061042384124391155354910039337254703678511126551408139222798906069371562462927311765574172072430130922582256106231231138983870168568821800035182503105101302130029231240432478932576174758169576485389026927009391578378563692387731477076672260751289420510149860909443278936862031594305588528417984481079552801929270168844445523543182448188788102515306996313295312965700452178546106566085784545194012230109811337543330213114091014432805394928850107126050212829013778570225227096881141869893176012865923743536097870047090080241171719361422748889893958682373852592033898541344945613263490580232517840170442840472423047040726636372627980360838996308791190340919978807590303759741493484677801299987482513422374584620172138230167684019075354896059646715083371096484211923083364344580044748578728595586711821867696596670302928357483338305733347091013850856194819078257345715259249239153185357757715357168426000575244449538730364862882247431124819586025662155295464687192770798097931271626257375625141992759896287542777634015654057579779150967030589073350167314740020763096368391511941504430813073479911867030406176402351256035108986870172707361769821099577202171425453080260794684586910051291583714273466252797062234526044578174066202938912295773293204857453502695351351148281264713258079342702785854570911660755222925543757875836443304487343246374175898023959311955344859972180969151300945632743001483010959728375983959415727010180001980004543685690570191489983144327767767750808354078895071212911468258323239280623044527783530828705133241809266917845474495876040160869706844437856545223469607606859562225462679487480934016188076643876360198561588028482736871808100391984289965476955845868616171104398519672319141595611491997280411114716319305194982866889802680381770800371412397667167676837446196056739557679949833759246690027525368687033628782071687241900972136835454734724637017790120105140068542945702615202572633014226477678839270511143759374177202290292104410376496692994304725926101212997872552476018644054286939792891485057141941719310750115156711359695376217898202118601554647864971597426770370157038642940280037395374639539527084210020152145899875988980629014450849129393477581919157009707387749262128156347192237989460624180423592763669990373224281445374479417494088323496673067605055173597341991576062353349957605739144006720688311239669593168194367916057524469483142455463593132962110815577445948010473484484576903392484132511622586014191091384942257181155698463153680607726980044775084564074455348431421297782179211916541794427526281809980253565284332180672384043355867643690524989825206347094071479404311871513398077505375908452540884050222758238146194707773389090757449446930352724460887625487833284037359721538580384809850136460778715115425592411596703387917231463350134035980244939611557736584069043649927317534472767084798341567123111115480684265988739225271094906063507874952512998947015243642788572251582854822300210343717554856950733559293676922517025574888603859268892827460793091488446512377576991085595107302906035746183539261930841611396293665851558426686572899013701480474803736923154884033328699747547142157052944332961059918409120437691375064769976976049367227759244426838998537249943599378963675101770241938656933765045775388360611380938139397469093127241560523482729778340915611099547848812017870680018778848487135944990673535159562662037545140069670323619495661399498809122606465310518570599666854937366132680196253390226707134530307481336075021974622832522189762274791673771468311010196243422214856142101422413337329912957992724675385941666575843535519947773390321357746738838105695677239098421470987527736050770521152745089039594380886354117582006616111896407468557259945042082568070826574855129501325736847777072068008383269613864321519451517993411948776644338917950703208152112974145067728956674019222321952593822870716203273706234639090035281982467337366125943896844981092297592222358509404793987465661964129216409323278625376083928009845240584424611172120344361852455455520780961409074769287395454507976131612368602715825184140070450574833146483589153987461585661100355830497453224657690568263151164788158397384929051702945245715298389214633862106168696817766775412113647761020420168280178289167400337490638034748838442674994552882626746893736497205736162482534365781333335806007723902250246725078491747727109864434801078291980948607896269095640549250763968353615337711950397651516624869218736380578625124339108750234075438881852710123561747818143527295447098555290927247059974394827836547583939544759337655697226544828109124130629351877020461145240325977971825518664781085028119327671479333763522242202177160609595379178906030563058098719804886725240163771118574568470208509068084350552003280839050385702309817073853844705363750459549315927195992553988653304648314196913486850139473794398003785132210024381416627717510597627752517364237801808678137713524893142692209124419041782055738372353810923772517303514137222757285420322184162013592067120126848957473221053354266787880342653436739091063988534918192609296697019995758149741549565339576785769612113743785782765418967519266664178695154270345349679390528462216682567584728516562824182813029694296076138341909594878168961381057228472640834152460792420620899151658316547694450254787156642574047684609425926183424974579494517720500968766485686670438037216839315733138629502512928695695146455169713220476159683815699256173183664770309677981442291191998997692006623425694568211847362406803401332972640010595437596582704345438662967649389736979690945806764610785324433565604141361684652847299334753554393073641051390330420250947370215561353839730737336206929955012079463386011426419512700964631763176342466682645832757719851216582761523199891311588052741884594410914854655172886380875089241072318014218645227362276832274513522511493635599557188148645444633573695067264021119950977522104065749399046302724400000592008206742208293157527485729140324882522951818700977422338971453857490253139745119700260469826458528915974706379746318946684935293085404585352513589357218705776781579161984199757902327316122189433611030511617416041906790417723073734628105156127526122144610140434553710926853911724860766858071453441505121649507449404170710445732213100694554758163936241663858823483151828778553031292688799754534711604530010627066548344728615189584753660618620060227872896609081816756346281306735114901842867427137020962591279038780592245614881480069798546263252109314802766412332905047795914853690436154394152935350755644318146195066428676538118151648047221771584541205548718188159884607152675535308141622903115214378940117796444697059956502802281901836160148746485500365812422542530563306472456854734191524558079099063222368481733909475280698649752894567816767646440247990173796335346294812063741952084564267139588523570376975636432668227482572744769927709228639683645269535881261937571283607666329548658563423081498586454338723484489957455180013060868296304814497397436075771775609484356269339859909007087495879560319590930329223957904279019237499593757851838201050817325346020976070770527957621665709223818778631647715419560005134662746388129772886018885690255879787784957683427223328675958909132199767181844470462979249653538723389825453161906192555307110416156327376095326147867646699668746665336449853473535617091256294393553049508893805748815848781510292008125109514238836061013673252585068702310294632954114249222626002188257612627164433790652336734600232228317962445328618372974614909711324514989540467640204819582281457240316558535960519505016870756914292980974114446616076360787335816104207350257361735831757902737116373404649095203120529178011701477705408231205488557848687412855060611810636836304519693047362316106361204392057714794016650544187986347749919098499237379205553071295826095867766259246572246334100904369045484700621668609146637263765203494341246793331869057587028334776313073419988122890321516282160351523619102603968685147948995869796582791795759822969530750544028911327170721649012386212407999749971606622370014044401675234667900873624952041263759461911618334370524075316308398283037022044218923178957402316801165372124331112195572300263961616644440227798139673684968926394412900097200790357215137299710759858036185467137934846894532131917501957057163801865936564754454121358470680820288960945689683936143731855166632523112406195062178412528812068435205729460142157080917596640568587770156445575347417959223014886030665076978381232252496498833798899670654181732495200782813698241385804741024044548786380578631567714165632310920829194192859637490393998330906924022112294638714459724969058612206560172015712074209461029363878110454644444024020909040175508545824620065775053092205529718385406634506271594331972286429581553951760172975499387786119059564628985650750170358465414247899795567140252845069849035099016596781057087593459325714986628143145421934719318733221936914650541976335971133895068026004150280431381536951535960759068911061379560669871154946181975990309196967723922540069688093933472507838622786210540763945474212407344035950987411237363227712875948434751195969333162377653380297590426522519084074293601119732289959778776420754413214596068134651103883333133308662192698278431827498262502168349543761533337705293647001419097505245306455895158021626265292642938485509309632451186406172038486816955020591298906147494422769102863991781428731314410159216858735574451072886244516488991996372290194943971564958886668978658651134047304439119213436547472726299305585110775788428689535541899026878600935325880255644561206875386759753533031662563761642116238894194809115921782846178178066649105138285411468943515810437029023264559254589596050714745070494588526335477152891582757151130552518598321287082558210210101071636523249479389306090843626843907366670764246540565994856269850163151234183655311607168490635582269352936374424025985653644615276054361745496316700579717279290865217992502459844645587686566973966370821402489384477479769539455368053061865804013542469919136489119408185987372933517449974031697849229573561112159587384162164339919467373003887194399857894988045016526413235952960169636123666928985338178350518027850909869017012391171517522166523869135693357392623293681332592067208105646912328375978311989936523201108635751628902110262115843227725086718017237208395963301009313882933964488496539419092716494796868192111698046390569838643279606024242093598762365079538482129072279828288285271553163513995964785986254222711227907114197375853543990563867152152087300778899306389934939138383394397854077279575764635830584908260994126827495462506582802247440194155828610578485408770366175055904124910546739699750028181042927077933176472851153886548684449881576713794393039542607701472553932388973569445902347287209383789155736415921460405677833698743187428797682136030362136588145059502797362614722122723765989270876269792925866497320324754233883750338614267610994482872079518140890326875876049848919215206692805042061137980607106324490335932655997966419589126056726765872511643313159593491689495397903477180807930303296207842433030926132359355522659285851611453898382351710366270616471962393351982317552875899834197106088934693215997653631705084204824826917113464133715174221942833750372876586216238175243750008095516664444231307973378001736234383795150951878477968988059472019488732477496851768471677786575220586786059346949440489587259516599115699234583413917974339599166250332177170167901538661261315351615413181108817580072207207031430155337936008608999642637398015700307605955364118789413579015132280652322090168766138921944211796543700180874519517280772205528634278507362747781327911197723672613771089735046425561510911886719205814095637526438403585074474162698068190157560893003372644880947057920001387210269366254333314629114601809153333690489025085169580876342753585526886328557111445902270326477347454250274211816157833380061526828562717897203623455790485530850338653181162994509685539641399491183273860719431270809066522888936837048596080403912200488481222645646465484070315714204868196393245404507215628799734011332218905219710094419052718212483541687613004855030925212566967977380204446478061522475178711272300800477405580032716423999617498971678714537584800039034255315096162393415799790874210476729733556683152822517608640268483031230967394039549290509382492564746031456392037479035477686876183358217599133160021537351066388294523532546799391950703108007127541394561543467946057535441189598503946110657016947839670897699512704110817064812894297099222177909023809765272719801536531845950100760142753181810730359435148884706463582817311424285829656230033972625611910992619980882909827339443102910985917110335843460389147191811256582516418980646424121859702417686002602587134852523768133807249583807804662144825808356693998884942158985435687485557974584445995492938279394286306587933744365282372676559579896337910260673887097217811984869698070937495504071019079668215108850248118893435533213255545617125216196212836932218199941265236364378934885694671213185525441314558121580341095362468174406801550469586375970737890418916574981045327657896289984301526149034991739350810956890464158456296446696418140927728305740833848775357018637399338777527078955819001410438731636927040418539578749616742076484773693250534635169927523692345683894102449583619861168356914936825483311353843878097838115150219692868835192887164496142373458655138244787813780553697537049910302152232974175941396766414721707244611233485576365270661197046159778366807608404050393191821562997297265150435596512793185139326546994950851529993806978582381181515975564098770765412862971023516278766301628351610068608029583881600385566638314335158142933408611551260907864387577538246911562696524134463933598001069858850804538601621785049690828988332833433262377883314663145414452898311679673290358734541401706177254583072175199220735041249210710766967978993557408372349915076572704631085718359427974262552103419317255255885351865192694112889250565795467065541882457891903703911666604886361481165337830423635820834028365544315623731462845571178764794410468960754970346933147668302543505779928371561602527365091196284394648486299604662761697186950978152111732199381496877915011714651600528862974142270888192667610009993472974353136774731819183058591000680091704620997746283237751993803891664214526164113993037919862608850411101052711462825983609292614005537992387166214514243879743980016167897236358778672605128996391086217813000020153074135112342375536170211633377391549986437766944789959944852340589662462416951304139048438901254568170823146809228207798535581252832849220194835382016886414855265568694930776033334497042705658541647965576073726074886097753559345523486875370949969528934615850826994108161926191542113566507685744679820632543572298752231202019268159828571391396487059242255292974215075552598013804544620547850816222528752121754868462251287860664194993123990017148954447058890995618083314722843173295371771255624559817170768292544022107110288055079077186754513471556918779423513944634957637001655779169988430996909142321203651215007819634004805474090324849467101890473638232533108526377928977502954447196975660280764954763584160658695220651957356183274963879863059901774758758977315275386817705052828597182327351389121573438895175750187939096863297571489616471108786786759639581067327911046281437136596783791773210043338384772159307123361479905374726501441656128181332886744344140030692828970635888385197160914495184724289214341267005159837537035829532952239399392657757845370179462566278610462414950771830720441236507455433341282649068638054586420526929997346398376787322062754888060745110705206077072585148937493195404750549538237197856661340339895579774634444166999683483586581379401230981031219577878955044763830919751799767128531410714585813437715390894717048207864371901704741252852194149990675563679263682374552620090729487127124165018559590694816882962604608291245347403691534956146794381502362493306927511584298377565193272957341464058204319648167365044284337080576950103128720837452078209775612524509964542576093657660494767324089481881393033471737601473960817770101701641683956588189844735879982208989433210882699619880348280321469060875900863372985676307961848915162537436845680842985135607651113974138970380462936381896655853689979438386280367705893216955826327455117518811759343565752151971284296298194639889903906892475822800753188921231597338776235226549677852859074088814204837532163755086504921846984830456315678514291175683109544542756473339965898177540359066354835329868660970553144037146782962624679852166533783042739450442608185621995435373385232519885397377832150127606985222966790604823429245918038780215511642489726385599574174589511773021907217694719995155592893320320066979176228681950900905437966981226437627538102433847374392091538544783610307088140000208031801729747140368289458615268133908091879320792413951684864898248622954846786994595740205726913615610468931679568541322484117020121566994604019679168058891786036300148287567787566701015297393868363503483775682522063588198403314077055600462536735590273399629027887744145610029524818997412511692271528577652408882379831264246066361790535685454387485455286141349082962720990416720569041142963419480439356792022301183302655512267185334497805397478832095557676557707425551960608845508529877644863341266858300432538310768412530340323818849100095560753702319108896133897238179080755342118335140268784155686448147947515462251000939707116282771781028031118948116785785873176186305855676037623636736849508124109662816365698612658707929616025616884015099563960802399914426341732739111080072339301701806410436942557007535254620374584604888585683544322849314772297576911429002814007733633187268089634939363156193504628653641756337374612224287941367037065567131271807768772997072613079012573786741583158668993206583248209245334422144436280982563791648630817121990672905313572993863863807358362093426851967563187286244499257760109643096234385607350643638119176568023953808718788562286705760382284551417396629070675263911519164797808057555619983111227836820375542830215134877103138680161781796189723249517953742654248308685590922614534151991986994924817122672318503849883942333433519630401413208820092258566197182760094306985394447804677690846249637715284266104669366800608174202989285736004200828829767990882514487245820226822403994697416176749011656137596892561470346808177563220515053630306401886455607558264014225047646632651090172941918738904557976899222304952523304434034599952331261878319869005641066360536865201997330274054139567175692279207151412152254060637926581483810407926328911130000622131882099778470712969344764257067441948190228995008060242688347715287660180595453444221304499815033189052914264353461120337970403505757704801142969273035600134938355222741002927016381597498718142953044411538248651395386354236066195386629495679842385793971030569773638235854620862531308085462824897762619364367879503611850241688446369751209659706528412591668444507201602666094942981700658432997150645548893130312903244916120086494547376402573750939974729891602759904606093916493957110590067653450784926553259697828635675776710488268882715619481242393962550272644622481051763803080829487525852486825881818268567156056687712002870294726035446161311521840670185474399812062662752439627623128735037368506263079937559765120161790363727365952991754986495693832107024092762364868788398232963402525817807867909667735465257135536644564943238063002441782518343599767862268638460242316754284318793231647701250398499140405304229098853260809153038089985660482273839822184019569529199927193620317182836351002096542015564764258224930900541263669946249461339152927489151578129059615768150680502483319076957293828263594384408048030782650732483822609765328041571653056675667736903266522827495273014041449431407691428397324560924649700909621506891213160441360398614457872096380292924929523811331200308657108393374648642308244624409473364330171011407432207047045889512745800714060141892031965985010190687618423625677595011166126779912431586161180176557458432283985015026992445749839443181678596939249390391293732890545228540166957677043328262130865714195276543108861021021249477099654953005242143317404656771492626381789392685478289192921090539355477771859476903179747899334634501359810200096298443115298542956441176706391947045167495099335930338644940977656116823761497207408121769228210468223262909819816800519880868407683166432913898650769669041186353066988679624211931928725648884731310962499951980889086091161674142245783667625457899827634797691474591413455347733885858536101188084941838060864613386330799638729369290303200060545632652436047700490159257420826879611649897488624888083791509556240233005145099379872027016528757171742644077717223896287472628747004698215549263187225006188372874275465429288441287721470494408579078090809031356958798987383057548159156027430249035091063363426204883398197688526508853649025779727796428212574901171840532650217625361521099036069409897250942990148987814149660260499085236348268640254816763133697493616145884504729541794127691309847238451043249725615758929639193795099869414856568463869603391474350825991526201456871342708800265998538476359904467726607892811878328447482000558264807159138508606472933047006170527947176117243447685962794657636255381115437782831206708012503174281668722772330103250725631317250436543829654819021815892374475108562487866023188523582633436143238236045115278021185532868356819834419342070277015135743191044837140174337335049874879550246868623461138981123654825822577024585133401235362868204256037752086811728146532191569242582605223275054430924506346232357174386417348801792883837348941507598707641335986791523812830052943977937512800609663207873336935145639385463011553617847381875953106458431042365995344974428411229849448320687211900668218324135761907053646109004833746481154785106279054975360475177678682075631429975857293395431578497201252829940636343345871709423256627539937905695401113299119663809546213411165463489320413026390172649581819939485484300482328862133208989541623123102542165655185044212743522301669279766981625019776641202294986937819158918183737901762325874032038420209284148247860613593879284635731634492657049014972121405422844669048308548261160329767106613641467515771133697210245330483612286952479049541987910141453170674474928548888465367095488942580785862764557054025547191174055541854623190447235447019098633003409336259380104678896350013603016634525600350624294446996063900262489514495099797750905834323539546392772718518171891782262676929648675019184027350597676996583798819108329013249619616886050780107310749627838586806952152351531386041923460193662952028588672107540588402224828274963831151383853406698621501838930785011125342457129754607976743090016791717474427591806018710425022324903288028811415137748395464073626845017083014631308279524938775599711855060930159259987008384801209687558691934665250423425372412768212366065405834040894415474773144360016866594804674246596102201503801993759481768870561798964736528871298815448010927130971009779542165528976804764165427607590714691987120690091317680926399082321105124381448341223069850144493416857321284484167072017303484871667009677751385662120782987189924706207935685071262001766479226518077587848200684983227004414106299954073025870692864615208216367360158911361252042389706264371745132233107986689412506519882285047610097954651658991741694688341726202462021159838711697490146265850489126692040782429284948186093806650812030775741775399740398325157459814816644379767452023465411471360562075731781282394073001955193052988821253752614465069475011362801310943357553192133356620530020743859925662801716289500094393396952846935027808922940357831044625012688571602868412870957970508421229306740648780449406329078614193349112265784352412711360228869531556389585755937568820202732182652244906860180816684119758816840529918484541556628495592948417533351049319388430251973740302410758101041461980499971470377518582937852673513358702616366214962543162576370565138663333169423090540073608516751478765136573636217092546496706921854441416492596840306938641439694989775090611814580883862137827990670170737608862543537029049579283317003248633163584333363729865990742598086120338811457056094311509500569473177173604262655912943877722011439692787954911910422450956110367425148482889035870400653155752140539289407944149160788621691978400952943921138734077915966229281591040015254819717349087902076544253882128030066504937461815047602926004992388333473658051638762053669588458326114422350484014379932205041811656939650296275058901561375118049222486864573079172411727274942149373035828212449931510305463574971805327486491377925393539979039158389485084846741445865036621471269977347233721107714337820779905972953845808136831301193889683535321118515292401811667781566944990467304264275964672162049429341137823683635870085764753400364332528508447951936605175526784774580753842446510641729779335242802731911677673351273956234056600967563396063689367591239588609159304554499712265230952459439548976708180568741631650455720710672022256067304405723274087019170308209439031011552617609775782670138294497538522448222244459220465841149304587020471143004087310662758520378111607957182889463564907027059440277049971530793159285412322884709020133791001349100069532908112280276237275003964666722109489072221532266617256864420516521810244588598807859828811947431528770045971521846498447743872458382715604342656795964885763978991356510393301464387316877490234478566837184150530586395521385679922180126212614235308055724551702723121321240068616246880818551569625066126388548152835792737722713755695167790875787211970254623738694239783528617703827098370566596916415171722269025741924983946468985600568313714859575076635483567879452700546854497334757424932876028431317653549100139712511900844335576299507461541570253978041699310784114012620329160287979015228587396753626954852700243693726686970473466680988332267684866205144555116281923970928948553484951181441713655329030941972434753555298933200841710522652262915893647043403485910406743526031905522705566830888339121520274756689018258226612867717552768182480814592452738572941489165971123414437550782705332636344622795986842347927281361759405117813279940603200118256451073107615173296664956941300339440572868939568098538315955875232315124727993307487040339016652032623631946219688726804350215257032016644775007896889745833899214329933515930855342536695766270458979072137346909634485265121482494554308356470513346654128254538189573607821773750833294826987081673225943783862217669482904784228377701021823268895218853373385465559841284254939799126151639882420894007473562823018591192242094466118244383327697082227478649408407001269954632149944803484431726303296688627163393370957276762279575386545700731189691495010203978925285972605604997480643357999930574466925808750429524927855534595600499016497843036456666955414377392601768200665061694348539475576507940776267652744467909118731035432551594719641416177845084206587550815744158892071356839641019811645406720820286317643460426179959770906904026546896920970609646401132821178907778406845677506480993886513396174136296476525670686802554877802936802395559208076627205897000814902083865236924551263752491107569060509293110114679981539800132392572710726472581274910474833785753504401964144122507454558639305493814173417227491345582575458262903906242030017755586994894722424997751741360169939126749444101988053810047840353706885840806780974520187522753904594677082189630881164106590210141514714071993422972537085460837588812825994144064483558547046771801442294939665354672058062315553654047850346444184101620180759769659374755701406217906247381218420502132021806632850049744741202907937650631267303478629176437250882069208289371069645469367497050776869836137804000412221357591143531023430739022433613085823847051326161103363491095103423838888405134796584337994418390800482148937716374940744791389118750710210377326491400228738508425980795502145731941032838485740206029247284527830537586981533558742989196078633085386258380299745485788140249036612109588153221559273993250925760417609891606591753672392771299755171533253361634812481038459804550394780526166685642978575822233787417365111956253521960397429979410752350675525909954572110402562292014671174032046827103476379289168841872118675202987871562909143394962251927155002974577896297463405087388716266673421012324357227314559802530744125556304546490715180333531538421871219265714171078838352809279816218649980503099990446428974077869757801820747441345517099917778683396696129532062409585960373057413022776755326405232497058825362293035121596607780801405294844787241058172517102371957830905185046392924177533094023432994391385177836667431294279479294110625086431443131517230388820320405266781765890808533952609653634302076070170932346780894443120551377743729537331252675443370176765587280610428264041731820295579739092015842438382614892323334592917652523794439330870926440987984260722006197054846248070654136150740923354216298038678226788217535236061731084660720276766413937510721162168211061856255880556935149625498775077174086134432168160483058067715780323850746991374398935484372754925720182183994557432663622853719983076202985483247856697567045270609647225803833458104784242822148602904688809700351006345191320396129055249327361560116073915790378420809772149350241536297638536876325202775615352356490544304267619027097990666747662800990227425802789319516990194553945396383637926727197787266418392813985936015136044087487458797858839833093906867750855289151194758201944826888231320555426888460808204566935537434885194248935683731532304083407221656618537597574692394402015102966128594427130973416530860919755023538202572154424596325854431991654585915865645763070028769343948484406007830611650521633739905010885610227722293784930216957439494286068461502738664256996756698855909301866746239729569136689793169762887332408305028152281691773183140312468501265356499519746582532736201490659399296476496230935733873117213734076643031184023499156047328822382985474826875866621110178018946606793733088698210063928972400676767770623757776540186137970408035844775899378045428718211798167635750333185731962809883095292577209634225168794649921860697691943657245275497160230440149891921816227793986610835238396431771813475427760632562222762810142881374580415904243925310579360984099537600912811380383813808123932343041879886472393718138100964267436186366146012030407367911919558369470547217210081898323678841356198684314861714954832498219337932088446025481251655349020448237985959893947501411880241319049338728509190815574710512479966991812335601284195385862409100954448506770730088906058341040615517459825059148329776513022609171895799711721783565990852621626949121925614320562870164209210196904797040408735247279691734274409619197116543153020983061675806436071293152993416540367822322837634026011229521407537561491673658044757386285945308182158903844575411975282485098520072108303343386849548431848708026356466420242166572759513986743129729022358948911139985003016192094951942841810165789925507278891898880419272175242323281597595635016569504617021020912148338501465187918836364710941246270871566342721368658149672549847324944188166014833145617104849487973400481706375875890537526008351508143443827824542034017969974644718346980036755119557451517694671468202436162469586502025175949182592239618026176008782172976200458082410473962949649602535161620792348555975487349912267641972487858469182312251738511033705658404689661963713489552027493674808441809112544757039697934172811807339764955856836122639205790045971887556135321348746180509580566362725581005950892625999809688016489334540917689067842536948903459032326099999183314159653817796057416470576573377258468266641222083101883219252816166274012428338920790247071863846222577335078513227352706027124586880828959870612063169777176318684197243551332876650446205443266532460224684442455111625713365498601848148809593579863954840261571739397228793563832111313343214581879041984373132611795135491534310991741341124231862104882665411215442399980150950964702696257233049227432622624272794216312392293412178879017033825199325192404624594860921944175597138795740596117334535826933410151466712633411890302193961820292706461117008870241101423958408192148124793740465605008780903798474609315146270718641308104682754506772617152966687688955570470777259437024768340322436771371099164931532687704865401804554058899270796904543739970341831269281731982285489071992464890421915591404750947810397117470027981164255452351326388194273577096386639912379268665412659572336238157622466259467697259371395635935716284505475180457768818666590922521840318923510666357130522063554572317293833405157399040291770822058933679277954276947492718673199006495563669977599991568787466732413834022274951128523948574366238493299705216294749989648484341504632024316048818965822312555654853196694838304111534929794367420096075258317160492254378774671508693262471874711329687385303107978734389092674946411535883327839256683798807955246134185647943475958296265170652551940958014970320024612222909351479671437669892943318520108383495843239905922971609975294838673291480299828126211758168194229154504461648291016176915272933635526061971159728353019534631733383758671273609256599382711962639161424587159308730924621520987816310914157459102796608827655642327669776455168067892084984377853436265390451524763894415242264043538903005804438384102969094796360922177503751204900457692229322763477045068328965083188839157038280060384580765776485584771626260164274614965785530311471758925981728398511668023530909665782764019228654677661006242594469709192359384959288214139994442465855761561382172721102901346141623522946804276612618180637722208032959930770521202159464770475199201720960369496550650738189948588098089039420868840516363943547657814570868744110438829834805770595386383708166629588256793580419304386855254627239496367239722937250564194838404688592002669022114788345309455772602719591563522952695432901124714492653557920293447374391797426761052611876106225421651036082384881910463657569654465139985358469393486377998567329978628112716860677322677531818060380837085697076230109012795873235547200853212656589902851120293519253802893727461125181909325284001014021704435628548193631423905316743617981189407105616490183384089990779881133908601354613174277265933331018385890608022187331881923592424156415182832813128640209599241660221808737949479192664330368363807877254530033338766982893984832350768098688350178868444270858202845518063616484271571633341503893274271311426959290914305112792056543997522830521189182924859258260680419988084930737006437727647670521723047132301885598806353909832748534432335694007522092941909778665399812311157782807483411801009776830286013287099118636729428422958574827084040561129241481380641441383065245380479241508057361976736523313045105922698339003507830204333193019594538560385258549000190010894502099265480930241266385275592425103307397529989707358620936711986944982268338685363447367404285262962235372845638836111572838363099595233474455560922278597731972716034270281189923714594390207294094147656191359430837044281546545030125977322297614163931872351578184010895967840787389038976916822588912111378436966220030420484672981750736927837008335034667581909410807247907744951685535370777807603518301653338622793571274683486897013886932102527795393659196771365185046194465979739130945978272624988666037354825244694207112570121652006224011702725829798072207260080576048117740059830666804492781086141890746613707897328672869003094293089443328013822061144278285779330255765991771632141218829993119277779300226750720044035616079451639863217063473172596430862179677169769937126477519812458162103792197128872020706538261681836703871041354826924445087751039069028659149221215499407200120706036310678333336475576551197319665455188896360761663650232870872046968397903940568178864242546143279003768831487704194088634934412711211648310345847360693825970203442079015861309605251305206749009222153494331824386948650786654815666584572868974776100871595946430939985771467803892208773474373618454592616681984219088922851410742066251656249698214156307374781446396723070159225414818372712800278434677565763197108768747361986962465703937046223117995726763028356757736294138160593972700352407696015809179730858464445770996849552565370379765752291143141932330748882975143368015064596595782225475951636147517484981934142110805935814051995813363217178846337343366356893937140538652334702861735496653429809778904529360501151033361883924344904173085591898046851600670096296402660100420674081773420381161897458383789362634320114932376373947590364967835025155406544262919162746275188810674466435000231462302010365545235119616549191614220732297301069262663878968429562098541756231866883289490102716796908810506605487354883664527901270726172039531234002790014817855021535664363352068079866542409929318597190126867376030302505018145082746007189171785404331843171170221440609781754205206054020040535440226580258286255656677586626704025681565334951849969646385673272936025961531149456378413106482142008314187848902825671131634992671288868257275931877815800036378291702861997619059209610446162965136286063727298386487008559381228475676309195698010068897723112369617237557435008007948506764290454747649831643907338727416765880524050377213684359233756182187141592661843741557934501229783674455713984825279803901586340130814770613961187641895970925652103958572142654247392653198214863477354185166068134018865247694355120852494992109068703598605004758917364087353592991086091689391080163102567100228646977276001729581896290901117189237382318880651107543833725644164474129005690142148313709879909502058995241490376701092362342896084879336475179220967189358502349394439610928043553262485731350493412721726788104196880302523548673217410475278579036839511103326037572078044673135176202233894787548576233090592839986253310815482441637446992194270265250106472070683198266631348943638104352721394681032217571583907448991748344030463928765279040296789649730897790089635375297704146345413466118065657554305190422581768788881408492609338116759223222031214106769910611003787405561484496667242345404981271507144957833334503755079866153775811498550598946798850426101326023691227210653696529248142080659669205327547203023085563394118276147239264382823129548102723223659126120427690073712962161120758371529615966208240679747047189943679063214274751354788280619672929239442782078569737115495752183475532949092531311369480250242796290335509117842051241848226595499305532833213665114481743622200072388278869943704454156304439978501898193227756476233513583558801557196666846110038056809879820697752267030776164172997927729084158946478193318035937040884190012472020123755967204785136623744650429939607867475452775584985063733828688460465289549013184427347996733822937741561035581883746271491855815823851942626827107503570281018519844018461574422476693936311680466992495672152430514972254511659472622385434295600130734198907775964314124347927203444840975309370801091810698047330567754925096484399782495006615280624054538957681119163793515612186740589189028524137406886538352981068066950778104599235813513019429277036984662120317955897242676443019389117895509261359049987266402917313455323449331373222813575315481528607383498541142769813423712822766955548069843134968190938696367280509899134956388839642204773133503455788325338922378335261629806470114728220941017913409985826244626893655810982668897027150960814444499290472172610454254182684530423698732962886519549840329172144596322900158973327684813055508430790990275475169796715555997325830492232752697022284624820549639136624992926299309416311685078004181051994356747566173812463421899799232677467517218072982495075080854647658415288157996370276122869800773586447997226445935002501216519553994294823567623598345075374890433784177897706254482329623486576960770661616310960711247038571711547805494474695387867118458202197057571732316992319720226771662457962911473685588074372771116740920581032805138368003176425603089205078618388883732285113551793540059689828665536342862210010532794025148135785448997300709199297152591631297753601068504870865201432131610134956545111821797316396658624994903901226728318953485848735733814564518932745878888997371201646553999001050482156224579746303056064253465181393498506937069275632826427167731063219820734741171777703999668968182933146464701359109969610623679348200729021505142662668818502880717933334835331644210598375417468413443735967471413739922944516422806046780047734138866059221642625352262497278087638171658629333097835119945625956859519003976636061887978516354706872056112037515235634976252183232544456400374140845569461201556938232505744464879453819512240696884941983366300445466126296911560384872645690406374594379613651843907473413003959535882983469550444797857873038514584122893470041631715787343945356073776108146580982936893917508200754435424548838005725927447780991200410675901921998614384314673924629194532496261331007493547535129532184772049630714422380061189496598961575219693297259865689702657087871863375272050614523283937418294977300875301449606405897296786199527614898914768833694214932489958094231731262665625520539617894610210184641839635696041638165406624216782768506322615988491274716885325306067945705916391241095281707319818186481577159539670210864714753022288477894407844454827311934065640668842564138920693119742937504970621587220421187936955461459024806072423627590663968063795082755085191249000564311725363147927485566169272193093643974017076275744308395102957822981615117963920264425894768272132319598029317858376295956456164756917475500567525054347712244447718851486817966908711594346826406625728582947519066262803980395095976572527325407196389132951978283851400994151449333255567324446975850681316060032358174712568883151491692318074582049275351548960606736977008052360527334732783869674268995625632443559943078895524836758801056762427036512488516692227978536268942314831699671501008033303283146001280930151791220785741653461447550630059095730718200518824338163511087955548149687789469700959974282714469348203440288142448966816584509470535264352906799434698118826638435679634148786768813399463272215595372561048892327505011635983748521984528003154791624901137491311249436988519050251782904448246196160798259341101096769006808230815880678142785132793671625291849438898534429656743496121960384745289683792235388437168237802346161800580625842315688949439470709579027890377337350758008298784478482385398108807184079831488746551768263233624229549951616521180462726651392691122214316978350645790478122766935132469776164365701478680313563969955465529459692105666654784443846367976542353234318066414617111804406141011356546702231957096643722547434300357046489359073188510434577320370004389922302743545734831121044717914902089556237544705525803376157586183572267214317280969006824196161185606516359887928658570822062927773827860026596820689371916408451394412822976975394720512047542025325036912505478535895317093295963838158811947068533028928924734908536212193421647454489194160271933019312133493135944846955979083037931168392695720631421659067843326216874341889141186541784690741150864642489022548424618263197944484441647508121612889947979155758023198365067488008143987292867951716862169243861727540974387989283787093859395203539878688916507870193232604169035712956095999286753705099052357969738611467610480795051832431604319344453036591024178512345704404557098848753951407784066675473093146821563803217654997022986296664277869706618621577367047866588201173757879577673813527928624418730891142811849721805881362156945276053583754202348602395101942522812270063781746945806900824163628867815023874727067979320513669512903964909585823280729552385041173961322849739483711454834466849592484120573339214280359947650966888910608471636288933512037336438817298296025042013743437493638150108430296056914578479091819190807556513485773178091790613491728328433617275740244645153781754915066480061083864656635307216898759544871099412125345649896337209048798434699898859667070679801182149134369860977449511263095938829975181418325159273215059635961356011060400082060866266874283015686780570300322064366068278908073324418094937423497034136000446058571510311221490727820731861603947456800640364608693036793830067771934103440321433938542785636868279775289459441346407788826684613273500034744660465039917104069883188841580460390339870772282224920092426258531849199059713792737745213276381410700143439383291575831376741695658594671296402894407608232446699268872144577917525006973488693589974280964770055469120577445834480568869967752829253576072627760452683251824393170386089291431275360020729289114232817214051992965382576456178462785207956456674715170401137477964777648806140163764189985969310508753231875026539603398535989051030444965260262279804035503544385708380536851939879136612564194091245395143898853408314846529551317474014827144319052258742756638120926002050842092021244805511476935861653476246699927230348657659765429988985409960577701437327086052570651041741805603327304728622605467678937313192591226877680113221935426132587673997806025565285990261705480505693993322441332189617135738667979797168492631732938300263500703374291209238696599101110287302635724056425500026154255562972547746784985200027612883363774456633462237227085350742572128533512215932014292187472621631447550384632955408896349449970090442616934287892539272812498003262415114626503979322221001428827732480935766415571889337700593500216988318984380931619394048008953834354284943728047558694911523267169914052021388284784426510517798957621358028917957505498162447782328162020786380886110535404255598856288013578153554228139656736820276855616655489030843855517593615817312159656638754592876631095476350737039708233950927104767923152282792687801347687727881606497018222158926765384655120118390239858657502596501857849036850192228337450378148750798346214036633898399094644161567336246390075703178914443674354838218453508724246413893789678773905113111492340981325674344288317610516452499483874654188933734531507316124531442232551682106553398554274682606602040833719714979084106875235388228924942407420175910905784960252247735767370625062610973725010974630656410136413394563743613747127018777932354789149535026323744739536989687915981300969856436055470858187911913887277970925345636294221042435949928098570062568436235403188196891531932381304063750890932331431148746840713423299332006721723993169939121395595146435039211994535193545101911286633117955891099474160076691661792591953588245632600372100531246510085919480719732750273672779771843493006467076067729883787319490886816826048230010828149471845002627056931569381840203845754423336167060579986146522283416432331453973484364071803404891638597536701649675623241325935775866876670307890134405061106372640884990314105528791897946144060346665988959093633039299596704639351276973289557191998368765071891447342509648229470713753516075382539422480453876579080521584347702458848699394100033542293469587315713898810788105118194876258742991625501147157115809708493975328392762328429533714828907756903543982553048477096431553792885241126617563267840031914695677685667828822827729404427422345431883978891491355390060253727749850680797588272282604831786407538658226287877689484729085430549208340990710032366948281023067508861187636389168199334149349904465297971987876504077824372824238504139136197750041869385138603807346492407667788321072576099454307239125342333434640078756294804464786932872534632731023089089512182861916992816650088392006873691075502868382848319664765707108616574182956369403899974355882267454400827554297292696187369188191732868739711856654968591690503447922789385819168320477241148784314575976996549643992145459752836743613090092981273640967166147863756612581953963985015995546958399518769187408477823630311683115440180039180488065663255405721840719176412606636386678597705701133296911478941165455594745054289259104317300297673698608051696371951604993303191488398370749374763837697741103574478949722348705567331396359690073210210874628609035863964634567301504628576990544994791269187048279690122235068165523339103961444687791196045230937171169952141731648271848906664575249201015255871338625132677876601827500148780074814656346195964642477535123393109193202779656808351426141230219515780206187223086613430924859961435310547012296837318532246320634735915341157234166185840405920037028004093816757394961391740896442009111755241300734471819081781987599820972291126095357335832028692933354424162383863647504870309839378739567949939796769066767134361693194845172774216517153221531452511392734904546631358648817405511850226437346291444479202370644136423601499345406166267239531367880372073398528131219195727200164891199108487040029284831606147354010211713184866058367285143049430448610489508231503946758543194511004239631634036731387917182427892505225296853810809352885521429384530760810390830898910204046091183964732159110087597727243083322001106188574004040687343166416429961554198189877154256817726867785107397192716025879755033905538623969873748421638003366981231935654299699524535907164962517510124157692952583067573636724680356968774404158061613270979239209549014632586413970935881212855823498863129796959557954808254462358586204574291817596128293863491788450104981051910628366765252195007692537254175478335407098256345907022549080570875309952997972407572712253449394883451247581550801299961166071703658933558492534941331670120849214772453491904076229762388542193357145203440776383938245473317833821073751702827825217589352440204996512040771058787127705540226605707835428686818876628091046924181297793620108717573246792817096380299889647604677808330864127790762961613327504199992938889394698717966108447983461636274751915532857685822657020882225717523709272646747669279430305189545202770513812068511414934038899906573333026551833504516116038708482992621675084813246552705210669274273046907765228649815581847620298563776957140077868647623521658717344373055649038155261649601397061262518212618183259919011487934527455639866715633595306089234782769991682235394428433086589994099343281345028436906856544309817314501231521421291594704365144100717958063130086283809798572535564656700346951710028543751579549371387806054841940795607774455924216368348961634753609509378911513633603003659200446024221425249370285132426061065874828000236359566841372679422458527589312723769397546830970959845251676690440832722895499615005220527847072007370390791079427788885045816190491916460180313235028778362003364364172965493896212536551252327671788644452835668770480814460037587832345229463576549182018010556635273394376201253682263905786381636840699620432717094730766267315187902448029858823696777947029849607036218655592591839629575113521890115190896943641408510436141331535110061088724248159665077662408836342364240679847381421793385941347145919892160682639342009594042646189926358344776399450556908813906207048252797457733174864383871340213396127990263417346338619447499259867553347416654073002736841953553490463792183111972824397566834086763365351810635609372635933907720698890296279603130060051868212325402543699817241864487562861327021092201841736203472062306011118624168182032985623384462472470851356931418565638852703107493157091678761735734596609721378474796844760885150974705533756639552984617025021833414347377819827480127068026845234544079836905797661987796024793531253100377903983330187308182739624725230045088813629635281963361631570760934550539883876335021216738334861818218070383063566172670761513618866900910358505600832967330788920021673029916260169909721172421315342145002994030254812668984766332821854889248186948231823016461489866046629331684025995398734467026161283642284919393984829918279426428547103098324748333431226347587042659830932504961880178305732730770322017299360105601218652228840316588430711463939855350992796118500426348489612928152621691869023278794095055583793213173158803660308859319519606235469022274033547544276086377518697426043591228289958963355317210490490257765810091000203687815571105162744957270945795726299002384195963669256672657788822111671249947458580651581174171351883236201524198397301083111220593421881165607728399768339685820826386476430515277020402591020376660423537295126494021461167615403622521443928832655620795664293939858230690371636095557064989299860493601889496645881204886375727268277579689033643513910527966885052803154500990340129461985619466218556369864061593753834484268298528685425488202651392778775538270815283528995999101732230543540707507268763124015640567453813293098388626279667753924060228535874893276984915242816392212429568940684000600407206148653655465642104667497628378850890459088551898824631941559299664561181654129026140352346066549696858214344631677754976228817716815785316012941431936492126489336330428997553862754298011100058456938812504769321643555835037362069808246830054405243363942446246760537181148194914122143428811170953100980632286740819397891357521705138294822246820576877384666580499121526793977765036938312488225440582499169573915534533487799712760225269866760396294539508567985237581285491130018909151478068256405922996285822612037971363492541362174138526861811283298128263640812520726690095481295515121988811383873955754001104695565518464901687992867798537301138029041755737068127901683606615741290645332997567463769580855870812909795603905781921456335752355548465686189727613017537583098731100336304424535064191098188047557884135203330283980540709974307270281405909947424446457849307703035541271208300055319594591418373676994860782137075225400178844091359297035739226937226537800233307743251497181164762400337982655262578983790629128654873898474340691245036572826991033338734117879111190313468043898751760660302618782025654963752914546083007392588658686464596903838917961076930901875517760120068231602954223354175884819698485166144935853868472162848342276150204376190955555576378095897072832272697576899413299745414042781177574101082670619758044702901613329860809074146747883410931211990970160258881903056380718029828013153256863094993347803887801486300601062425984214483778392024282324694174874061620181154532684891806466479903651765463793906861666971716423344338716366139797676401550744220887840718026138889660551569521831836352436353364602111100302108672052382979665396342096346175171256918005198604530444958784189942376189056145066686103523868204610780824790886122758533210555591072635464544746835036146406612694081920680906698250205152460876384527372909244238405088133740293864703611816468002898788524852435840969544950354572261770671318939646024534620181162692908479061653916150098101696138483079519396161356679594606901382727276558009720076881832946970166868929057986856419161062079084795761163630963711314036196753876701868898181561140178455946210764206385458701581824215296221556032282995910964544096920039786719339522892900044784328585122371382455430714378671339723862200316133840440150499311778287738026003723925016536090738755738936501801660754448934794413856564499811977383146574371662594747024541414901963845684524539795552758568326307373370319636550407661176348528362166056829933413352216121145001397918540467071261002720947864553514090593870446392131710798791677123221385634367097529579687152966042575309407904771753350139282730418562935669582282374461435814228772718759614536282459616758732295342627441192177319847479564616941792372700478733222166956206232376122818075185584062396966432443750679006037357551540115195005289542168505758643562847139682458350324280952630000151015510604599239787236535906336724333357303757151840505897566492058246141864823094788577282384684756981622957643979680644894837222901911339000150868099849515195847623002835931330414234233090114271666874233529406808751477621115818898579729037711176685964395272176201546740034362510347369881783052051423563301044787196017109493188033626538224624673553266642491738957266123670137827788853960695902069606815153623858370108807050090946213300970499739556870794958415554064781125542747834436136896953064736061929261120409347445268367493271324699001693017077081499298912587630967354334212823507517289640850872514920991310357745610663740780741619793253650253651182031793365499949881018049586071144595257576304129969895274272097629671063232570483077649355609451123824023148547162463686995132244681537758907424366976665099823147601475819320097609489578325971819514097552462108954935093596029876889500708479339705915651439937006389836726914621516459837915515553788965833066979973860765804375225372367361741328513700863628322689468272860914132498948563380955624621043638204633641927585169576302046454924104180565575433918987059644475126893973698377048356432095095047059975382156004291675316315282019854787317241385209881484309424323571653074834199802795827633168890616868991386326478450518737540370637904765652234839331693553265765736937988682639496087192184908860909669929941350453912923422851753769939639128730617455514375638106598729960900896782005192966407054302407383233924781742372313067847447060111981642490325239910911110343615698160523403692010065087082575307094898651948418134531971258742099073531816421565960203084472586332212987920751076352208243316115608982580101222143739114226684587411461385599857459829205622116692941097863863911071170969006013206780167522938280510074261099160604099359155936269630332470475043937918201719127432660717508747702658766666245486719575283293174279049703642772201226662210461672898567484279551147490533700646131792507929614965333719171407571148275805175824745587099382079670799859998833993645006060858536782956166207590087441814018646912136082308606332844094472418914269905024943790374109205835194714441742908777922081797657673214643522921709799084837767623608317456825914151869440146731845752289230580061116804646257627909306142075923479638185024342046995312655409497897939935867461641802817356321326507775103859504550736465243583732717871263785698838060679537338178220238043829020498724351521036925580760996434477873776995203425642616285718677940831560979952763273562822026811470370851521047130503793410815731330799411077056542165102906082119861785813156457795370659813360110411719935725267167333002290197391044760183926169562716539015084457507969912819208296245290065859315777985860477550646713121605553365190889682296653005151081238529159685321807577556815511255268818462804553394322484880064852078580193388998158497610723089219403950696721234884309792107147827139610161316874547732473804267141130783385377589914401664315314283170617406789266309394034972428330289640352491047811356791851411425862157062741659058150602006782392812152022393507500553453003411291506526032093572719744200352065934355232691887466521443627950119804136222178136728343774863985711652777664580786357527627248530769939809136259768044933714504328646720949661916335104562422218695830367268598947836712130616670405383474560960125953491222942926890927716973550531725396407508071825656998872738508922673176634333633606829415922205718944661897516218577907948637037952945730785410700978426391084340229555426546596618166525756232059069943073124812350273774208063834676195750798152922314212614977198249581373806772488847944859867511716252611328926302120228869265794571226407127577355545573276969441591258079971902394515262356307419162652270504850080696388553250381275210170844050745952996805669881743337612428050008471996141385393581075577934353565940183547109365089962023772108156950796704671585168268941949923030452318917480603676622605786019274108902672196461979911965003160544887517282794925124406852226177045052371150669607861846163356939364097388563216605896402860469064178934371079983373865272884317194078070421464169947977181569955998048311766749945359492050583103715921017728413993563082682561806065476028706988510839633287392208906420550644683598063211071699676407295746970832606460283376887400130909034993148894464335379429198274886831846013603166917966450619943417709303547418728500160234907514923675747980909477694595999363576037739678782509742065286650506093779921907213801896018121986808081407892410976423429501763412543484671326133785153536242498018511349616961775803956191854658140926194025977877993496605043694411315367733460874165069933481999007663526109743093380989622146942069738616229159258112062974392710431522822677205912503747750333741492131764619903826242079785905648427473068685056535056553073150354001443228289387602826461959399447793143796801185970124827347016861133395595036749423982212705683771869020260328956855107653330955015478880334092876805448318827801862081485105278147049238416302180239408602816090274266093594775805142421015576868157225483776254879850278968988081082453630748787307826437252674461941037770190260460850429152422441543651131943889899135622843260991747831464790421137111195803268381291740215108216799953221648128394320061439960254863024445942149219919994441284020049598464934717664579871199913875762052025358528273617470898901756156594494336393005566207973240608117523016300544370952185629493074576053422894756732888266824337571759907233399973165841452090021055973126077719052264808622599123116165235354340341965913052118819078624888426909895238934997438575649340055293437962828801691694954151073570819152931044490056730753223714916448680692103966851284835635006449455906026023859182941578407271384305384019601596715833085136268112678548907900903788407391198053449343339421929459174921060351361331310039386557984021101320949227553416084158350459056110194627288362437613964301158258496038857808521451730189599159676650660406835422257958988931014138210947530313763619574397889727826263234654668015063434149984290874821027569352735680552898724096874292594220822397660272189518741578915927007092345569901944575232175195744075991487848607507779881145837382251331383718836679221967002906399790413374233819289159622620788445719418251236267590947708107377401174336435708393611396831337292289497067536700201229815810804060277498864166021003442210965374030794895777422469287503686466836693691644398764335242074880122310799860603681216270465786267036216200632465214012051443377842141826748439601946614047955334128091294037165578062782834689993019801925402680003171071267891438622757125438998819262938584012090949284644882301103604969106891457875197298791029698214472263206773790770439849840233334000484279476720957490963618203173830668885365476780495582936771738183108280974735876680393468364106073712587383528496014574823979471844388750494450886258336724633257851677627244571785868604961476753388556108469787900981216737852034568144284242432128215870317706551967493697885827705958901559572088612124891200754808536674207016943308722162368235900472280137301394292740336850978643287610873660754461798675594408001559380314569786070456521756556901591866693331872887618774073340492783867480366857602325905312833077909249809686232739517115167406978810617624892042582536092888770912409757513125402099393045640398026464489538609439686048924211384907360021568179324957533756380067521350227164613183318166566248966462358058439389367383831906568113991110186877764626786679947827962720727910724120172669781122318696460703810269971988887715083134543542069317340672002120847364687705449958610800398980426245802624007198450238642055171366447995940995040953450386537587152547457557375981418044576339785163030917692700753193986542194245350336746631731386134031735674561114911573953244290960651979680684409447916326910809841958537820156509463503486397923530089021817912734140889041381193833931320309988070056339406760059062222195431142308189925638720347061923697851247795897881729265187215422951913409726185255017691979985447432129049075163548191181108132222851077803951127377929504555015366611796550417256224038795965977450485419759224435933742378479022275230120348092662213742935599120081281785923914303594504319137259759509934150609935595137361615090033671684483275341375547142478927510875664321241939796160407857059028187515084871586974228192707787348063381561715349478606678399706023035597907890404604349919427642236398680008310005751287898719279845786726972792440693256453287396286819931857113487517808870269375922548834114235766977642045083759342450651435828008379466145651191266269365798224260856487741679066969753916511600461651483865407118033297727827637621451655587022311355050812500883603734276146782534508366966133957980630876985894106649535474133463235480837021365409154657355020158658516314378789210513505517982824008785925955324933174458643935557426550636805286738864502134571644451322988896295612408703094603329171582224166651821591306296014865668455226886830385299245694810863967903678392732063940525363856568169235317303521389870759945663973189748599821808818542037463061836661731619061624110004458881247959050893572825444287212828742902959818885772990685178196448408725876610781407656428144322122474310208097249598787510421404424003279160989237941862822816533908389107217937591006849470299597616522450332176982673657742379190900051587984424046334407139836449385966319379256641442884269863068561028393410320803093787564110683907596641800497226531997578484223150478567958806301031820727184036404569652644578922563941247654176426398363139464680192379012208874552931947726849077079383627646997446442955913095121745154025804705956553017132188420423801238762821784433381846558353290295471917257067060281645272530403270193073194468464875003371023834874280839103384411224293865740923593688933318479138404028275462131656234282633934310160664974708230133745988093894037539167248654555652177588105119314591277387773387250138362946495278896737214945537377588408797904853143271650463280049072421620223396504633013064896453144615878857028174441760551161122552716101110108674910712947265364249595909339611134168613354977491193361009373503277000830301174313827837459199200010544858968482532925725308707460156664263966101066557254505977946398265618651801478035533715108305094432949330285701767606135346550451256567310573575316861534175917469164886205771339558749170088449918062517264416300506217320788185590408759872711874056235930092962757761340529813379547847054334000727283241147837854433384928482986775348134853074940185019625709664060342860315433567289674149844910712502763342573121287544606967253027803706909759557320867774114818961318177053721232689440266596478683885771812578674656756900590504372429304464836340039396233373502300774251349960372403644164943857388753477473664509618550750744119141558770533734719879299555522148187806996127133861178720431914430123949895009448493179441717048755817048408739224369258249658903100176364319283720499218207394034055943870788502990134944792883724472560173714066815980359940854946308949636969809634005320376798760988080985326203700146577273013810767218226085791639019249184982107967588705092433476350469171449215585601720211444537741021480667768498079303851118601667577512491688365081567881940541648584757571394394285606006766544281811645243984507075142579828318497825364044381108238214204454110707786700280069215856676265385895248177703600278215106165184945916487851125444587594417708424074532718652253036153140158263530730733217576529373914975425082802157422897727825270748978356568993990190429747898715348045757874892103748339460525128307953132809267347565774518013441834866725887154858362132591706144673077255245848522504494837567697042433493757168273072007609134040364972950733806803401230017847687760196439523930766499263334096118381220957109851520871833034783348255404366928973198649983672279088193413564812317357264184029010060884819574159776638688303572184626388924205176174024129716720215577763979082795470270188280278499413760630137010809752247321449706839835974652270119159491006678325608166809425236096249440383107453573462816621211116867816238439123956549179657424435599611355881879047164514998598692284672196553691464937305944868847714928147233338225735170725888614153383808394503432640517325859620287473524112163577991855843662686374689349855167327414018481550700229780536486459706104603338000138594917041298155537197703086188286411358541286907260281367511361709937412768309151443707706481344369541001309131666727313679281865720213871640477505211073594635946661587771210634111521067738603397700700868981059682061041227342677831257608019482139226817659115904513329241856203756349502673554874607296256364022508610073028992797899593581385790302138948543366554331087837515674517829313230914771437900885555563260993517829003760809417750201076426041737933947368932230724693702474555149480568474721837468800648187020388429970335961935158457221630733768833418826560235854487030472529250369131820474031559949855760511909452518168462104120393727340932692043015952037859425048957461160532600789422581068869332443944283192088482959785320427020726217265106947264237161915420730723065262806811731290451188214775944275766541804153714399111123205967417487242104096425136057846848802385872739042774836645474957980711824130968939011723836207143360069612363359351878212905384265471783384092780158756714633595352198853832865228942763831930523600759087310906282338992958325266159197094356632427162010370061676139253427674726684733975407069960166587613169523179607785251283466742231550434488530050768222063283328076390024684365100689386208222327284081444647048900931304950915574643459538833512537997169611356146246140900919429087374023551417278664570828931416231014437059005685905583738473743950546010378498152664054907679545966884738901092041808650097545258962649644908612496827409891498815955543355187466559906643429177367407719479287999530463602279505189382298666550114795977390146307623106113207120029293675656106245473722522488527344521262121970554032174188275966756402125258479153988394208424379465765466915051136467666353070273851250265485673333332510730512184165490436600306903023575862444326040159757107638152937103554384013610869346613931301447309641148053821625066643830113482693942253058591169377113292922616950338726277495539138408760356221701384781176710432735144856473685788946415659634713242242899324866069849354546091164036965473272813535860240770280616448939862736735719867541988046856748478833343452705777437483949591948720771153495667227409001572395746266901668327966354664652991260671337584146428620049354553082597604628667685251920316314369357362264793020441472820795910197207819360789745184023512773633658627783057979379387865596347890874920523526855583701455402842246705301954651875193166644026260701209865570608834485991390954574480492334165341184072323832410255593051113580632266084811830129632870406941052230154611183943715116678074635218454250815099012747823829189393680875764686848195751592281806539846123837054702828732613084565714165129807679883322577061189904398999706701590219313665855968362473210588513184821645285591961440042887192600952889781010554373903330069968184571736053401038503019792148581585208404434030767627134842457711999059458638974523970345740302642855418958764045715273994495748091305983112050626629186000322800044163393881177517153132443501292398395320606464675604794526996509822723319363177394208414361199160185497210356110903789695840508856633492536945900092327107891020405411387064589523624348725039423710693703651018586666865551779142419540384645139136368441841752556879477428134859731021996005038982972522736124131286691713181154758223950062123581972109517744453516124078809410670705930181633184544355357067336721609481634073309154889760633231925369776108490433620666672188543730421281647694793750778404298172019128324731878557942751652375023181817033199910872509692940280016548837668347791887750262062734066553037688230178193455601571379390418459553584226812901911226980749707079860080500975834977647567029640987210988332044555647609297200338815647652841284816191197728826855515340180721867089099758615092957334892353645906528638521177146922208386765925864461092137816624959290550144060693308126295936646536137819056950385533765143354915812366193420024620492706697646053318761696370090453543669442357256532803884437265603406379753038825988870622421233912789513881016418916841315276001066078732814197210188658946060120085038497913643304711570910560903248880295563137492695679792596060768048235254106026867045322526792269474109949282982632451806071293716104346358105158132007520431109322952289086141326480006078607289035232134162670055290687975482684418371831674609697049684144165125367802524591333996798314208885763315296927804153204517387081035043719409616552880115786696394242790988211465964351144801944584269342245531417173155648238134534878742566988484261148797545039578817846652148169276343368400605804136493051895731296054929610350811690131335349984235677447345837605559827890383904173980941597341530737584724728127256207676631610551726375535879523361418816697353570187194002459193714029188568842330092537243622596876609466251050271964948090932851600343667316240307516693456885150876264872547305910289512432368521118260258048567639130239284641067061175347447040595707230085168756576955993017165994003169281256935702116945666373703653840749674847485466932343435290515103173880918027493907702347360027671288188886378441474826908348966591288956782259433246490699385022989062966666545265711893310362406814435975717747199568823988356016238639149466997643332887282318484993739493229057450005352101749174831605987355965775107040535240627998764431654193909847326712239214048233424487483522807161531308704855031168112624346554270692403490446146291999915801866844464637399252252608617785674407392808693983678263288982664451311976663627555153894186704584648377204766920606918011850070639862904815795962495202245179516775589134367388733916660053464488597340546559854786175540130896139145103928999591733589667461473906968270738334125938433639524212461676558789015606850467162199266116735143472328489206879643599549427741818457363151949550939992506627804776576080231908401227989698603945110523257640302353216723759569041155485475200926512664379720545113499353299456191144417786999316566439172664877742616611673787857721505176782492985102339452446882487560380412499622767312676478790225188515488974150967252423875441318392206492956965589922567993602497580642805330309558039869706102383935363191194526261545319917684821745898285359912011435728880789471693117427242890770896960679539488063369354529398898729114483977791398587432253060549967269542331945365140983995462690045918236123869501399661347972574016324317670251926634789237560740805247179477126595236155116008741443829189318557335244134769713572424226954596568680673600488680725330711901660364678154215936165161535318884563085315241374167742178829506910051625440946733386972512073094941956265250834060860570060771751238287646065908605155324088893170373066980024948826939446477503365264534259605790081239886189409101321831003617449517833785156503502604297794081056858788353952222204974650861669496677229194930698936754616991187616391580060853188829708488599263005164026810199797415948367052359695883397873569702470922989939353679299899679168030123601655754008729896473880158150790939261363564061869253589328726119474773023181157554160977319133540346909478173359313564350239972402724807592762896003069224678708158402489991826483868601919175307810298845911231620572831877128567866437156966518939892447519227071877298000992314471333092227343222832097804457405489226472439497979516920006594096688471377993353554369610311576200906087999768288944027084874904721263730400825486703866952493811658766951859613206063094888921976973201511125952598017500990362457262203084010068037024375062839572148954772348437188372863164295232488415902666191749303391130713051096815349740382847173324435999355966602505697755735985529083659241297886500966888644138383507744020138541309995277099799385057552207600811089731668381600791735835636585838637584965425334116347657485221289208093159128309409145465584813356240270614422555642347002583101416023357973704294249047579952478618907913946720408587235973700182668771151519436704485215666008615525786709149116544528857868125769745369400442854953599164548780198104258029358054485084362895853452939477426317389900811173214106245102236402051656038767934269915207270084216306904799370391403244601804197457117671476204583596822282832871389182014127777760201250240651045938740934881923025001990724965609982589990940216315630484604225324505977317351366112846853825810622308987301723922349983726152997510070141134397358114608092680161143850971369372376508602484590470563921224667103817090244527327174875439374599699029431252656687582342032866274535271362108817578538220357504522044134040867368156933497951246001404125302359076301017548771231843750405395550080286055469895492353660383746520597580313809607220587283748765190855910495321106598332053967969494418349049167356641270601411967639693395388185335424741139986255029518242982980425739961530860193737547551197011889042413699044139779618179953237673355140019810669761067436801488863621732196092241945490059395617762317445146748735773244004933074683544629343094456575648943202340926911063440075982162416035876325109423091066303782572062144339656058822416133816108624246780498390360479088266861016150084169016115427127682326895150481529065782042471560268886598267703100161360187771874442159381338500714856436636474127576283870805532532625590452478126606216675246858877816684199530510587153004857491651749965271317613489470876843347783660852029888660227657825804698796966496157015336445063896684551290595855597131476936596394014729619488113607742002477794057907506273694375817635304444687856642824082462762756838551993034116107790820293260362032033299786449343258077880443461658305123904807441857038044267431116896488682503651560020614584826997608296269979495315967499375752570904218284388108966312948738266841668595416570769733371928527045851388811187612499539904479176178463093000004501732854816704334298112450995167523574644432693024161940646294197275127712041943129804733207106538039496044438902396916953312372057159190706249785964304924456012064711844876494561377511134744236938526599958311426015227360631852891607515757069366745080149189758675508421005011294202788823397613708445558903592941724688293046094531799425550167739434905648927461769126938625367087764513213692407628483388152268436717882149071613950096356947250639384539370618134407004098609038187578060140609598531438815670029360797857160180269284013791761014306760488389828444485581666167241570312345402707334712837224201275516573889599064876157913246194229757852959309081904101115695981680918569995971573929628859931973286877093633641875264883318333936794219424632001705004628059724173416962186423222790438822084512773010349738894031581714537551040464720940262372158238298243743229285936704647673461398472855633797695525445273306783434833598225867402357163725059832759124291466141151143789190159856792438809082029337244401078904620292254109567655060057680387946933152296625181822563691320020484625114652156253111380546737555356790917677857849992176350757725719201454316904059378969350547952416010568490881858572600269448814925828570983086016616903115663927022845124776497390152190465612907238694253675283651323140620766646537084380341599633372382380433693771184431422150032627955991266660348781773889419959708839594226884559043227177803755346630888950849704546753957340828870701678556225092901202738923077360893426576597644656987788551544454613276309243531963226423582185047740094294657990967946629365598298035605058427620030507904163827707750364197695948344294972797486199522625342829987562450503833203648459513446081931708609228014946228719297500593194008215383954509867131588858946204180363170448787611839717345540347193489793871107118560617123747644038419527876342200558217213352895702291200123344937294856514081322467923699329235099004787611690165561999293536074998442855242473645230849359746760311145500084061197448832715613013673046390279882751858142975763768986052309064816767489266704423133578074600970403069531776409696974441892820566763713353816451615680913147108081275851701737285379292006949289730193162299264425074683911633478167722414675435283693340326875832033956570609974502215452566439056779961664867224505863021016263737103857929049355281514085957967500480506097697865304817124198079290950289029754498275297105447476098724796284897827851922207161026737208085973696438822871946849846385327268732454647565808066121697802651996731769368068286027388922270325534355827344176839219705356632198255186288585584685375492210380636836875224686765826150791560427650399219111295517330436743745697833559482870740275596583098875672307459051617951118910726597281748897375934807659757005128993812079973652042044741763380309998940152559565005779982859041283109621884377890755496953370340158675731677659102895158144055620907006497445153321210217924359015303374433302573203192947976623245288670514407932971897151029709748411731166699605840489787292617845575438399883353443436911856314503347241840469308656079271336742310798250876874403866892385146311832985310349110980520838721318338527728076584642293573004798319140338662618127307938000997681921144117276325034196146388159068988946306104509658989221903081515569746473675840511851940090371720260226374307991495968416989874695519874191410435231793114825427932759632101301647780734204566349630028175436114980936671159352424332481365199596374554685719297976416684493203856071731109169253877216951481464712674207279344894057841889516240712539452005750496239300609096473036395021562826468174808141883492673491063070310707337924190877898080167490214157809632943575563821761824426446816320135954376622896621442495367256442996353797467003899677406118585956357036753323893853171526554222069276278617659893586498999382489748798594071394383373764454252868356082421194301469784647709246578083098259855801055137417432536573452495313124413801802095121341235190074999808784416410840408025061801993464251443541091465642094302293544148422159171517566165430784427924060286133478550354675733758505019477973671588835199743284363206729804724786321969031344437907346230731203647476433844683375799557026889626278774186160903134700567457709368756105167880817258471345929909726039679566058966902858369788779843324012447387298688354112048752702690537715447959474418282910494214408438754064598518479736465392682820402664797514658347774423397082732635822773214424933532442638952693002260933767847369614647925193726031806448866429227145043684800909938821301639317058959754652277097369284644243759314118013554377445867571977430667664806505927503633554852056100273836124101181854262119673215954489521348659781806234330718705044596017585879965702085712415168994391119932588097708906813699685666135844993076313652038691588007096653388611873529875030185800558673119044435111974886133701746045491721876641923141349362473403262972217896963951960347629659654901757016331101343916266799593478308287570662153795670849381369047143992430584379824284962822282296952801107400702942613511422884647697584411074387182251843932115246403579169159998202728424341097908589262633564671731964202208972396636114576260827658145737834941031096404632251791658629135962162691881906000736494987726816223812227741218183811717568417182642611943004319273460680798471636947655306254340372253819736612419661357002723133181728625225843032651000976961586766049936272737833355105843243381800538619426562348562889481429028557711846364990710573996765532615102544151406011453834663834247802347892961333739453598652677272967036991137227314263391782764074226187103124125468952775583248472118720912155346747171615535024263901038633848649759108099742739084029293311935411619551112561345947093659523175264806761919516951907432012438192787938945222774563562127733770701422913890928052832089329398397675457720161978076742735580533472479773654196000364472200856202261789193877984596792133479389630182884380244681372042937117982147041704559023204059683424952128494562692978594221115674639444141895138107486579534656701319701186466122444671275802853694686294474246712887472195246772007102962796070112043466809479373326025446998090154245937056493334287424082388198363804609816971922168190626263181972487340916960808957936429520575497977897103785447273689603867592149732105449603254165953181559771821655413949686287298512154986189325979575743670494889761046479665072181458530531605631252974484136130970929701692113186838179971262644170109143065175623924292091745009921773578573584301811247540462636420846046221719140644314100077970774574256865748160989475465498478514189503693338824979719585456683502801080620926306640222268848513457598356909995448072726605633243070343670033866114891578140861865411977650211904343358369604097508653883580351519112410891284488478830245691911063755551507816119617522045516759631056843054168076386502382821272991913698978902823211598233924734895580035538741969029642775579494305692220112485494591230222955861916106128174385437623440429424835626425671253777698145647688698657442364531594375482160732379492852689544062592306937633304432089415005132727329370150759323915017906836596090915205528058582441495427806956309068947123345427167206691140686532128568832763396171091925380266870713372262775376177532514284207318891361960602566710621095021611720031134171570130206961825433331902308634285856700310414563639155132234492546248822374499951821957997892161148517575843992099701213245232203501551044479551607687017160189900173255350470616998111138925330345710673241134024373380829437096547608710989409639011378248698906220651189056721738845183645898353560263374355787770306640123406804792006445106693366029193583849723290823537149409111271718535444766523273020368582368402283053372918780703535235199745036757891961066334875152817854362735333568391640444755353250014071615150750857999174829822701857652021503209782829726424195952488779437388495556721117537454873608161776448099777195930293932744139430452035246556283463836260184322129397964133544251751945983401318102111865505374546876348237898008975114132652520859124358424543098637220934351537095394627603299723018565006782292461680486110427771169010100259900802787329075057514551949350317837680172349938143286158597812637071240042460444408926221537351593179276298560912342903279580312646246055631853225419634953200878929381088162706857020937408289787289301418913775204977659813094068896411580105945493079230255357142405692625290496802794638363612228201383212195308776271721341351132072093719441808072232928557871067060759753053458194311871827789304395689681565103676415813905443009687343459532264748699742435348022740707682977300894229421876388926527328477811810393834728234260473317506655862510954450351080944520760617083821533276915293550564903043755554643003457381654738050891224546448262772428965391907446084592612574174509309714951747631325332372385948103454900792970167898894870835725615171736020752542625733665737376409791036562483146708241137376623452370192285183404733051595228535085035133806433194089678208257686265944720731373877901355229243548402085543087351020741491808558925447971876982811456284189812104992176611209789212740290764796528686520791354346250521365358604083396555715237891868515321038469260502195662937699818724890330136242102273763121851608524956156011150600554930272787717626867984074150294367262240044183977364986059273126770549672339750678693277885177835053396354545290694840521734548974651157048066164384696987902694311663126081147633465196336045188819775223222860275535447744084647964135705275612252569608057503366674166888324820015091598319254780160843797479369079785682466386904429592802107673059654835374025496230938933850056341044342815002898828379794957341600559692797396143834174039914928233125451761381625247652151093784222450116538614679595701360364442497726149965889622539932250399548179017158082856715707830536485294844042933996319337123080201804412077596280188186225529487133550079942558133179947164369079061750990893708088397429989122344564207293382918800417167469033531728840550096578282891966646781648765868030834096257943935606000585277313831538563618826957097393312224440618560302386398963543636403220991172098017164509430129859991477068860834337373163608112407160470602259920870832336699904046881449802597833703597182958223194357007148630560180311323582930246083129055413030457179769698709810642433840785059622013583918806099433087885016646178904162681513383917080515587615711120814194660402992960357210866264102584848344811748152436409629693788919905005492126775484715162452043368958495239684243202063846781091762723120389325667130557849810247213462702780096875895970260346593767708666124819555467545280250601858490839962867890007876255808278214153050747432919070722490265880357040731873496771902533622503570678544350497389551115588363027312710212792048671468934452829714187374532342783586162209299839819173671104306469768165143786555777926530407212332505382107268963433192665661441591868778612136950079554081442186661371738238107404650605137753634400033269314578609422699239938593786325195379262739736165506335827498133466324585164949547704709648767116316074936238672992317157294297584419533551433070936108184209705357637474103772569732391634465305841198613987758282240306616752538202609827837591265896113247222263750082034488791973807654047390860964280356684615259911560848897223552587798025447711600627992035745296374784760297768484387326519912924064582488003361069578406209116550395960228136770049752176172754979799022889832295200115033253971704338664995183014523652891838010390563563496657523970915972421174250479053884217653922491551368089366943636111418737556075246993172875925501885649352010588391217926417764685222732992846994649043598742405426207469502290827389691319059093753694977215268545095049586050824051063226893487634659804138193029652030207665191718850983838226275591295862085389572279009732739493288366510857520574974377243379467135205070917026622455821745400401691799744878315534388482887782268369427023638761018892440139329747855237466503451614243420109438836741396833315987203782792325930506082362049171763362386851861193239184283632736017775133219930524599452318208176681065684458460221169462797247263428143250174294629027908315350299506149454735574618288574501830832486812106117463233787712964194634898043333536200855318900978045961752362691784293282459497038972235748247008135297876750976241694579668945328440073783329945858342958167819601134561440768694053301295911985035261142881735441727587332665906465166280050994598300952182280423357770604959835937683895768857460705362337442241347327357652046751243882983290017511496858249988804859244147276165918479634930154872107148452610745855127113148475246889620897805294620368112784632638972524159411006792463387893287611496857791478095358671149940114087114020249872815462485607635973147275405850338815001961488888891291134074855765206591498185759653779451571712561356349907907721591383385464944968708147885207374187606848904311635618270309379182553636358504810586222593745720039176664438132750903658048109706396031276818609376806966509309024310310880160832129878698939523579320536869988532916504432319469726961646666169871496049063617169248355041779740489156199024335992441616692283172000398466643154393182692736301339523822225136959461445244234368430351193498606801678801584403680774621013370273338966505189755486966261656651647774632372559592421822580213828948485161723119887595776600546020071325739692842835995359783311100243040586308244788275484500655318713455614054830415650537850615780089101766202006645542010726797729119168317180475070678627583232506928193362501943640941343610590935163078342078966079454373618802278936738390326816431271816792159667309271254700558241888974705457073205440406329254794025090265609767416660660691598870601371841873198291452997039985913195342817914653368994555197848324540217073552310731994647670365975256196098825161780890592205258870305796520346478366759949754741576070784214649024636382811263701381535169286707020715025443155732084296964718182156551545212136136573637037540561768840366592978723337722994517170512838183479818583027274096166612332402126608240449665229267214976845009531571582370820424811076575230706625497497056448473484277727637814083341997649871586830618805764517164761383840099654574651224849580095286368774841969659595715977506271398533138866442383625025170854598519968356632161582143957518208147679109619051502705172175257969297261804088200283406028586675282224621767019367022897654240821097220424314197223854552988179249844482318613022951301008302612342124274799947461207436757324773876299523302354261285787446839379461336969779766339053805212423994313551387413108037296546104006457530574243183144163024642871287727818535960998636806842900110324077843528364691290718433724953490859000104075764429041257331899131611321513617016560673656977819797560411788547610295626555317731780656462580621596932512108640295078356926503428134037127913148758595331975772498895587394650392387914338606065490868887315352048947397935713758699226725785692747650825476646876686348394573646832505407785172469620324286546793569713194202439368079063136096318439103401330792935483065873416730320095046161205872187018644073805270991930816117684530374566595170484287451699598875454874450931744240056713382975890485725503617979106064347332501005164380531537717478427945665029130004684493764292001121384984502117717235974338592402337145594629411932173730688943386878464051615633618103061483516619818616739341553528071300428235804862106226777157867227506682079887653992524226017593722228414401946238103479289741002354185417012421398870546840676238613285496990718322108432565986073477738664486895563475486919079015966031975454563709720013178544042653241439601436393341019065187237435862724852621586892533932432285222296133525075852773548225998085356282102539637861371923332770554180254808278606858471329152986326361063654466471586117972929166579849204447418936845088945966588096723974138156018994434727292782670301875610818622817113655019352677243815257014337644769310305808206243020870040226358355371990995754400361713663926800764740086436039455553156840883429864834781379419545494496901136259058355925139930574002820045028902232108158731356304498918921880622120472327150605718784945146846732905102595661014866531219898881607436764645215571015246789598588687983880066885079293961604408642201292419858592185786434916587153336861572174677979029985311421652016099036375135563301100181566320384296625415374109092977971949333565661687578262444189244005255500241168232709598111813723041849217433642091551574324437340293817392274375669972209578414848649326874988677975638001322155335827561602853327140360366433332534515951401885476582588589439982599626673670849263829401105822637336731856653933998307214865654019608636851965084796044661536223673779314494044854773511070989050539444428754617596302578434963508253535077944649791698097639189770024537355003143104222225867292194597423804221431941370323695641826951049209153081675090996316719155781804148205359904086502373364554851239457663423219576176743354608979463633057210398903783605698229433869567650558059878095190473977812675670583699417425691061533771189055371715705960883196172171460527319212554172835812023156113258366253151694598402581550344159506013087986848248836601765573320215595242917701963225908687220995644189939830205148780753732046506040013126891798690595401580276824637112550079409203397731696831666965788384618776590704603442290168007872750847250734973086879796458411221103552338648999867390992992512392992179757899558525412201828146098501624438900122855595740511312345513859611388582173521946050300866542783394822998211160644239494969355532342396370390034060022647140779950083764640617421869870352984902108951929009179965972839695480768017753241765672920171455860156312315892543868483562715784846226645121676283206700877022254091043017349703704196054862541755431951056756980097696904172788408035817327983880852796573410859996042812740448507665156278660678031189860278091802246271842677693487544188701150603822204359583100630361198848734023969875516186040574178627714913927977102112424426694434547757706167901990817950637517571562284931774154132247033417161185289233875907182314427753402959894530723220173470347273758878274892281645708074477751304562513283718386089543701100055074429311149204717818755824970897079325427616914313177412627714190073304362702613846249447534286038211023126123769365656588121010427217361368352979189103102474580614930899374012837358800181748435793644435320489188305883085235514213546579925133572913168743264418807471123688507058379448269101094769675354001847058570144153717465045133828074239000216848352458883749888313071542763370449742521148354860333592524341856374403149087189282884071903062852350226436520616565954595696584432036332012816417538522044091738091112297769842715412641506624124287045856347920295137973282083696672891285088373081504992173757330595545883093966259423440362574412541190140603271892449654581633238733609470061710735800878879436076184001514745812193997790017602545116330707869059241917294375401211723068660212885891974383606694346596978121350481615525919642598623915601385070703502582421059374389875434454627678668606473170202306668605275248136951778110093975599429008034299059777173527972650067840641366495078568293907431827259378482005650057572208443090764059433276027707582104942163944655073333624531372724699286149187778725242478314588018775512015160011162675166878175127804638308452761434027924814225543749732721702528856858987680490834728776140251825491334313003006121814867300103476927471054265308862236350518420256392185494965542750927904817270744420893830934472654203390980859077049960493456409255871809924283177410776712023528812109757188708370732308561384698833730770680722506886979494016859163854689352745382900747238897371483912367427386122044732784697087665130735680530134344187988078395181137693576079531521029322874100840006589572931721785862955991211397037313253800367145636372747605164305786819771171303386609900698502371351496158415997769745748541943728817110348358441589587538671866200295602665209988762586515730101374255300701280836337327249028334262908952887983995848572109319468355797430830280947811714743213082013311585901781026314717847958578356760653952115799754050683406084892901256632253203043146519076847510805010866205383976582485336460300811169282159135662664407920383702745386720914363502858517639631068265407628694238454278370239500949277113524456202070199060885949698929992837919823513146568048138016729871716947801462332372467052751843748419447294112079191375305190972845203456482667936770055376020878424581242486123224485593239095857474851961579031893367759618754550823559727552167714698163851257714883598743342578125052226617005901972607561804131289647669872166280336113414719553877055371885850362344130385699038776442140829196832657222970820966788442096295835762579736668921814580381132259005225967772912915415092017138869337882992937894856426147651676966683316673162939031692065620444559538328596145238912664350935146241849110340196608828176754738397630369573156130492194893531503873612244108353492519568324768634328071704173075646114313803888349498549289354086422400951744104796589117778765500876823132766517338473175425308972373735246223326533097057248136617369880204057124984682749007959135730279642837118522066958209160402734814038388087925119608608578360762784138496638422888532925900077852891977837870614867589855368619935107189640321055326449158370316758281946885457804706891626514967286549584830775203746463337316607382775175260933055280270124707690768656273344643303873643663906619530902243975699042298975142110623666147428432603546563267936391787740567492689124272374129439164250876377575603489399881563763147350083266759960364745278510705285206147622312330015448437035120665594030157780353430203499756803763537170250085653348116617984133227925339839059272540626133182264044804847539241847752053621199027781940292491808299476833745544237898142877896448338276094637852292248766822303139209138751852929200332537630435441136992902426789619113001969951388699251855647001278658258172314428435843783088493571342243051240806613810706407673202075997742405986446196109022987915879657907698947275241954756943404608649382724116815100322697890280227990995643891630788471503793698590835365842913185593479167355476527163312802654967428612720418623423054495368590706252876133007030795390496005004183759315272048369784419814853268801446225857056276483552132333293273421406188105677435461306234161640026660889303870699071790828707774471372885113226666963378589479856371257222243375622007156927940984663665863408469175310842870613830706970773869858107629696112542235454319715224012463536904341829513073858872057340825416438960024423350686241845268188507757811009235151213842350008873254462803716839705972075119519261361886893884703693152723160817117757138786213750914855198831773316884716083485940217051757092457481927542079204031102319176332214947109569586698347663933723067723083622196304898909073573747729516917221683743855903200878217701031883659789287977180666325929931538355813716672802226011163338918560655048399002721792441119612727278322125210099484022723274275612659403031985619464193269380548587067838684228254439749958763731115069855017085269326830573684508120819605355664740595383755465383129042264872476300048170865155761468889535600531526526181028234040869753406995589527390193599091447308638591087498770385993378049302759631660276295855469478772362619981698745392410012579706159875614755925395670700045220851896289470614991127066961840708818447773193937042105461561921043138437262572208688508871910929978120226080105823572721194627559449409847011679240191376796925566695437747943253680052732252442630294604209898527751537948296513532000316042376360803739667176703129926650618274151034376331506444286095547733263673336631483294236987508698139241204905848007496180940764567786007445273753681875046421606238775490381607425773874686608201705243479698064872119148713022487052016712711306899089886786274254655887433724304713275872497531402219054544429045739172289548007873839893268865555624426625071195809111532211815004425132442568189166665258280349910827837289043943417076298242636274480973933274879082858118959531962770690359454191944641844632187967380627971860171647540925625037985960093702727996055622545104052863673919833489015868998744558392464414259860921142045048995613951526629228322362690063650061639879157817505582776219170936486117425817406651806300042006599524882964319194014540143016490527549633649562000609343166299005503831273905712308736720640939612100057832771495862278123937481434200696662194531929848983578939040691157274853202545395468343914070233286747248662141303799462284352442452503889373681513667271103598276462456036746345855022408824650854127611550631919900126530740272182130341387288408703341384135143400764769801178727277755887020308995939540698522962012922262432643767929120131709685046454618175424180838101073775790594582989579523218071903223865373724577213110235552232156519437375688013258235141789306584169202041058753482045743104367525782714798520739985436688146372104279911300687926270811785949623962321354058073724236791234361832572461913871839824300889999904319220729886953740586747252024566510649412200011936344397259549716045666814483801274388827883756988815252083085749038307224076354074004600587216974975796291325624371921334960051420809267936117255289037612755883378053650564754140850848906041479802734919117342449057023806352712803311992496816384377171681957533091477522912298535309197695991326426902440752107051174645489897016298522895846598784779843451620686173762988462206064465975658000030125734668496968853240205208155874976403993120504595769814592016125388413391050312709994075141372717795203793062030987533699397938639034609588128525880838652871085813602537924607017192754203666892864097184282833406855466269983800816879679972263951051758103131337129690769480177961460679154274358957709521726091282176181139584339775337301883022765624925580161948724615372699599207503023413604926794000076995894907546634893660862984870684631846295955796687935226748678826521049054703127438626258623821135476318166269550121399683964337271830467983065793127145489898471923342592740096498842421338451079889377107891483442220718500120919392373875553883933640966233931213119550719234688950010596057698145183151018069242097786043173035510080944349657814339808744046203475836624277879115767517299855305199229907345103962751807469959677706874623936638554447126726061835374577148427682614919234692486829220539982674066710835853536131141500759962592186607247256367784239380684436159895434448952357092223346279343184342943238569658584721509095813661746282957255370971439117878185325170328540423990496733482491308661118493956525431796643592722983307088757970909249256481810913606487224403997083223155288201513410368049844496982236846332554069295652865128667131514460459391871376735453917226946197196140410678285510757229712746091743672873973986556977094105400350226884871283995558085311909843826083440997013405655108824675850655003103873279317583232235592592709678702053400255535418796898390954338889256130176777203547483870662130333398789030564477285010158306612967933987221115005272840825273450488612049946772342285993366923749832613682131862286626062965117390352872337606166411740153433971990496106433209705097226314077186866133820414468422504062482876940838328553874012970709496898667120827403049586328836890786692549894782142495638220063771190858933818362165289191594185467035036672359628012873744820577983289428052635512729929221626075893487459537444177933956406366359004162908692125678337331079013120647022756666553564333100092305313846333807808162030042344924540848959483065797776504657958962846061090327771448720547129417855086229808867314550426239315537755133519339924450258946757170417229778489930983227577285004648515977196967911180932267520512208401994499217464741254421206000235440296507891148207275456882716953058168084530192074274162198174608048457275138291806080191495991001025831096562245960140932741221663863984023443046894073146882607289865663654296584948225983192790936441238796014380316111885182145508989201614979457214352934137291614781779913876890196783845762739054178227199561837651626250395038703481818130509778441192943129294988910740735028701881630453374319769931500962262618608304847426209097489756200980856944156098579537940344610729918485570629210591140378180179465841038203401122626376653607521984559231880731507891958930616529080079387952366863902703170658376204563604652996027495504303577751206793677977457730078345051045431745776732001336318069830215117007943813382934542031648620416262576399214121679598168256136877233502217672866760897976475841266838394348624299781272716286649101110241390324250797638983717391531882957772063787595869447127782341457337037556471929448749601605732057492300707667164475590726824162463709592075808227073120472369974893516353086495053478230169372345988318088013982089635280131157079240173438387303099298091721757293443428242711133109186154582481137506160256748867977096833670755307458641224195646118121581970722710938051641788380089830934103485487039615472714474662348747298344967751016341693093623648838730362022450009336358004226658273757496462970189966021046740260050441516054569502875338114874970550703762938658129010319498830448261043139287698692762557358903622108841893843297487730354406635041892333710673755283459911420555320658557381833905957491685357159594138293110018090084456646541407994960885833776082096026374852941516502545293243271089858609430609797415325216899104378160935677142270024664466668086879555039848423509066594034768428610774473586136196118076773896338459778756002522054474062709827888425103329361766466161284044137629355548304374387875717595591061476497024183534634839024133483894929317443301241468828219620386511740270018541017825195850183184425499443160087224359371563725424292664894111711876480875211542690939126047559970513767072738606725812382463331717361998616986272242004347367642869763124639524396809989070702565343950346332504713772471381369254104189493330947925907240156173173402481856702192497926068515392080070617612446716653629565700955066326931664401327040253592697644522231961283494658736132430793083997871714132290619821640842227991066382701476707154608584010498936321375856336071534747340510464169686391032271587357610800078077489404920301324811336305040230585273167105897550759462008948344661895903632372140445242331356824574958494792365226072307209172656224133427062308551519042471848595866741929677376625211416544287813932941305699063713751519247001487800050884026837011065414397452349570479971380839910183554604618336146733540426015199816830181048024797799008920361177386197062157893665771385824944869187527682188200096684721272943069372650508445059081696953273745463258225696058873067413744029497080053191132397432358418182532386373797089879515507926625139959331723776599603763879801636208771144855144014160448301340166195675829451203871069487446824885083092319949995552411861285631935228441789050628015821981731468450207439472062031868511206121681875813829862854739127333345303685286147045808020308135442280578538381071479421311160553688814436702632743318614430817216474078987526112192902955481786480699250329262924670505948418386284547357790451855370922074986484736819642857980349917983547796416744994445875756460160343991143475452937011095309332901720571984628936132523878663004212909145634581406389924580909863597854150545247184940774017666854802155444268322810903398733507861547134332819268841230010228102354897071516275628238580963691866308971577681807896832657415534167956177990872039776917298726516339945867914233737588419550094614432201296430381635852779654944098624421267435485322757524292650133346550487768161410195043178999786316613240408067499013523924198729405619841429162666439503584933580067132489375071479790418764451936033074043677516349664772351961243126329698601179795337336167978215682035580453056064417643891084932787769674751279010894080346854388686987314831654843300811416748508358193459980799363761695867891683176210959822565102341872280226363519616030386736175173525985553394292475073668183406868286074687489952358264774098540037867030652228991582715741824583165437095118838743787330251829357295356738252985594022727503351042203006226836774075365827711071044588608509451818371562733192704440523954146664660030014885051595494624392512069355070054509777164587724247193914839384368754407964679390555835386030656379648145101630838635168082461036699977088904458048003399651531072918000611898182778954091861946143497777342037182508878758220035909709290213263533876366854606031946661422475119860296099370472726637186516611614514881989741115066547320026928025731061103598699307064771635678875260393503763086216131678102546595490434323822891826048120271518598416591972377576966420448690323383865813888588866746492173069620074393269930119367055404636760192015960333710030148017592368943030972335275032786085789392287651509637735437955771511602204574580220412233405898055690926993027539095143303432518391259255810776077415702014440894694752869075995029388335042349267673961088846573996763329044263802238638192911108388544742383285977725032171578414813347748154605199408757596054294323762672702314964809852310642716664966094603194873335400421977553138979946488579778435491347071989673422085972059672350589932703229715897538394584443231942787873815728878693121407249148207423777611305178974206985063878803839690621631026831991606691323919162199826449623356874132241320419275589392699920752274704641967105449677304872240843170320414566640103003738713155837375429256635633363446099172669455028268419640588358690987952187280531208323566391514219697750900366719171243167881190073142444310785807399141772175585515389074922748021915648125812941976450187879993921755762426258069822364925174931842352148076806169408072746149222147208006641347887534463325064042655339842704017391961669255566374889815319548581185151643517226567737789501345058342090873019426702815880510526404511897118529090964982401097877514392009421874154614002536106814095988731791607307372159932209134596986607894701502042155414718267783140872156024724277021361895138769925466243908931234467436253018833567978133943407193091642363985396809596959512012256928742025380270895640720891008050077338022221220117651979808420851445011089137630487893754716952579650834857531987350793662725680836597175117513056322736859223267450102269997094403810050484685773296671579148581437569653920345998869953843813766239809121686962607181550208699944963511083706274932042273813633150317478605394015684792616887318029258453833731298503999873990297133382225280111274308567769112837411181387141226617047678759111256881126062261716534960634943968875623852828545345732869493957346534888112880238048441315811137492630876579074942476751852403373190780669992381440526974823744662832486406292463020200327867007206667068072940537700264531315282279228821482658589069279012809889320218672003981218837216136485865577715616956305686108256234929323245288581557255777853229110407960447332566148132313915477060857253034715434253312204066173689147093685270185871578365348044209707548024241833625151192347451670599767895722600833534492779757772804592319688324437543745167673991821354894403163892795099490548898005369133608035236212145965632044759658013751922857862783313591885938126662619659296805955440173019720001885196124832398075566568731939532145345468188163110290087293669665599694405814721829280996101411937487880333194064483281564010496309688981506076313351607028706364432446184245166616662941565865978893068246331168891474415188297134754572078234104306035361291774511405052595207043883455349588999918038755418200449196694458977684168286240098413199609750138070519960445506578764181304243255881452630728518085437814752094701915783200374935062761150277627504216885489204804746794194618672844914974279685868538838420632499030827088328980740016783975172818204959595285517402679367313962900097438629595122131621595815957592349959074740797588134942300551851398835852658185277120863139548367853401624925849787152114940171279369495432176608645598997879492399099090415023524776245220884134731212023529002347904510756800805775713570559981035574242034268644258344215518215457538930801114157126076938671021603743614562639882607252242756516068958061661374249318338030813668262538497267184106369948118212594970504457454639174611284395912429863692893804277795370753231844507443334527315572642965506233308612925523089298899555321517945555384353691695650169726031738747387817000696191174251134010361478360477772394633888611512504602243382079633376053698492772352005637123252343843136634894781483735461499350324220499513741450474403575421213414299126116744015168556666907391566949142713571638437059885157026070108737542359377032947236017993797373609811206557319945894161663077774660950326479734578507500503629940377893156244585204363475427349724404967924877216808966688627344053080341392831485621733023259699908425632483743773076794869383409731621998483342758707063790094289488036050528688816161785363274289450630422824942986281576222153282456495809552703825854465853863913526970878425317244447705769491454966552390894148739397786708047057923830254796216433319342114183159324983870119581598215569531601468368403840178541207212030694080257589241534707500521787949837707114498275525161893479086242237043857389197143271528742670562259819743875710270132682200235748899091167009338549679393151048263823902216306383017171628812211478142835470874614646092432390835908985656322383364331736669012798602418927835943376079658789245695330838282990471182136615599835311426759298435301458627925311634422273071848841974747219049463767016140450964036125691350488778044693576824336544467008964472073735753706314635580399114708021886264815103177458883195110503665692240343507170056259209007825175262584560427752019509670503638107468946018682699676465546793606142739046587637451782844313260553521718146726852163452862898117393060401272597752011950945817837969241727502688307037146995030477536289472537796442326600305269085154968332592254690822596283287330348608550248900927826386170341031627276284261817729696196672730794262722825165164353256174659468029749371655962762670303897014482821901599863242551926245014565032285956826816024308961494154961790368934516146473588010254680876210004267672693598540614050356991214054444740868062734767204138004537399645047573033859918823765620999513864073099987020067828827816200782725088254011931843045781349473068747983361815783806685298043973383065468178693015563769314997120135104110713575390505354591296249680706534500573160104626665103911294016847736664877227186210695729263522091044652550524673612042018983825742289011739900447000036106782015707685436691696950286847680263533731721931577424163029167914526819087855207566767193904308091557442079462224883564517903430169143026777576074022895691708345787281330359776960958655807018824225831606086897263369588187510672315997108799979890416720878329426072844817938381647320735973396507977155042251658721125917937000818878463395308213247885686125167198129663436970880747491768928466814832017453505833346690178964894229033740126108155914997866198866176428228439230073314458976514146469539106484880252481776491906101091032005861542936925052191234647843034183947574212601507890270141166720356820147168661708320211234754392145810679843662892193059651263928138560975973542186356561631013939640021879105064795082203301404005871478960803925518810971528640335267284970509595410202900542721000231416642882431471328997857660645673798866085460439703707028854205852847872066225400645025136451002423723424153100219708744132412105040044441305175228655491506015782042046401695558168658358022474982514852218722209321638871243756423351912701030294010083691528831546270058987470329658080251888384708428717510740369989690250454053723271749402226169937474489268433891777062358831070439939898982584646929587488093691978013910232511231532447707647500607903792254091219822891761240577403200249612094659367754633759190434438692567573166879469967153516354652894406534027879731401309483539065191669133177302151557232199013915721768402425543622829279756891807948787256524572903031457741936398311351623264003860456910167101266749397321867526537710127891960478050864425578307602492478859430515601636835877785778441569728022566896989576310715774483849069304680035255055300036221489958544863119430312147024101719822946593683121951665149429945842179008355681151395644889111330139540758162800141609048649616830870819277727940641997255119608409026070842923869709545676437274275107083188944699337648122215804573091626898165525355480685522873123889549198119335371939683296342082060049314370282361517240596352865183889863104015846840432341814008879078237158709670878025096421159789034117287548336007723095600903950206764389831638062520993028278921764934119211384588620372973509193524542543945216112394972766778614649414456728578834457860481771809148234452917591156019005453785509442852554803324585722515358297992767951323405873638093019501023863780142970180625476999005313716864127389820651382325266005683238442261792920412545555398343580794099841035667704522089164789367419262327246461020753300005157211686297329818578448671432848867661609863883445733823451250446460156305220645568499114628025809481902920947485188889936794651899210025778578839922273023648620745390435808412041202930208572041159248113137068293422330397217219735217532544747128385292915720170498718011030797205405543544189600062663218074358569717821425918582634957009078285843694721700431200646877996281522180866268129797777636133459050010485618526604908971905704524362455355037704286896803899067130620233390217510199934042865503916168232145713561285428216627096415701152201247154164856754608198764080245036299245829908472770308820268637754407994543378349686819751115598602698390451755990467536927910988604886850808914216703650034816002152242355180006023227387704941686470966176016914124902387703291253380870279465956784499158881339842098839700357970483630168997358121634370549073932286638005866016825613159447103854515375065726114557132998783732311293233080061132561729273018827370660350865003502480096087429576960334076470522066182937431604808044173885785122583141385146111810860011807027574218176529467701296008977670845160892616259208134896601091239446390225367987379679477447160101151675807295397148846510620032067471982883436144807692017497794741898202936784814727006502950973789897732360093149695585277367251159097142208754014078577070903551118296415800219526740453083699454271473861022251507843916964506797877453866839427093354244521229696350468739438181469830973476635033344506219871765541066301017516988308606891242527088951560883457878356394844493598716159076959853419595831312543946178458239151780732563689819385829866998136886833303486030203007999507467767802429333959065815546133668277379016771586945431688448764997598193310055514178476313763796994591512418315979241441941872737391458006061179837458640245235401698883814801290953686024908547188263924536167006156666230396563442049033923452927346359964172956963777720603364420816010371746171652633347951859176795611564798970188279528782167912578965634851500938114780283796694867728087497258649159980420240196720565280868877680817766538812853663982552017279275462986763683513657042661226784647601424421117984864848177483137378130172854329093454845787235272123929126462121105691849172748945906657303964734454591621831527513770048265529275560578141833752536415486350415830072646062163732115429505667828987668163900941396026245826861623242658879971857622946816923741849866620487616345487844228702510817181057927234828847869718358933557832474735652932199216345905377177613288965754215608097803657869483481001468063822059680933647521109958905910630366427343336453031085591601489693528737565896621055609037686719365620548230540983102142833588286662295468629339964003066730686999074957747670804663493106686553366523676564215442814666853381795173523160742921816947785936659368009366161782734760840323413391089847707429612112698622123664819328493398879349544733257645490472691116502653766388296019323812365566772994278565920573297691356641497166840950204694289171748632398619945248290899917373066896153291217516821774984050895601394303133105816523744595623333539874264893862314477253053420534718398824298224328895940499192508858506755357602040329559814327157154428825592704547305993216880610238643664297935422170745555880383858948836516150652653747687684151712797621528932037029777311049785054596740237586857632928546815842370365363398858703471149035016525760520348803805405676282529821276265170453384180600591900357050028150499508383237226832016220860346328827636138602470214625024627820135597365266354143219057576552058939250669052585711779045877549150296325059737239227672515219468504181050024265144506586273449207074400849812130880290009656286484029986810999171215658644263650856229379500271693605992740871771810171880419633409373167615925930052191346276081429357327589739115748694095289822493181580011094089867272573420424618742480821152353416516222748654594036926033790127216416981144923543159889807880873418478293253620291211958233085399055997361491288484946844182292781929179841882563526347629696240587023758974119927478515482167022278756694732158567247893277202701228309085174795347394459047875559866781827003088885084983017090988441341145363814209235863042504362345731871596764771878617692669008049229121817496399656300985855553468687353093335822474936777542156248914576566302800834371957035771961700724132809334259754823593164254687985699158422206530133720715445692399449938191457790324269786269671840397534059735200233965598688172567840115606378417613720324495073930454122417032950846779733158605070498110194876980597380288170659515666127483649810817441424906356834252180475142711214010353811645154767465726554797366767639476978523874224237653586604177869845912084302465960058854364838819153183702928357273399473816594798659396911415818735335771290090670928691378162733274500425153866763232792908620094707981241837550608876837940870454490732151928685213819063410384921846276536118713464405607817097415861878928454375314556458295504633229185743196331097754124773626766578706871224461734429790600080026692050620816134276127600124588060278037203553113345612917419381196954046313259887526849932406991439649074457319683129053325603577219452439260870663830439055284867039097979155800779081896208623101261668919053037226277337240116876597999924385178827757647468711921840544322697130366571277167965899547219243068457028381962800579318346012143078045095585847618763036066877998455746620467489498322822083510855276060656617471010353605986838872022728032356115794155623076792049156852131954413915951287910567244190044374368660490465492027149996655677292842164985177747939553119677431364858537973984542162965523202044332696900432995058795458111518967396166752900868307429104142338196476817954129856471502273148613199558264007580694434651483237691531407832127276209086779024780854162975100689016496861863919884072962044627537917272360166973015990172418827873441208793721059824939109685240077374617522510095522565166200873191522939479340220009634130056688237917354193458222683427253888545800274761739187573717578337453248154909942607647531644450419304502566106887347817613248668088616547688481726479433827357681194706466460671787010303229635679395720350632688568348383296575552895521074761994246777478881405255975630076847487347820491362686406157496707825158063542767444150521518700949922360975884342431640121064941752090847540593308267552504960356760025808591070717829975367628412576737378137777575871985106664347748654523083726368977749453670369783311547588901649901025739104590931527813291802894290676227252701219861295471489411319049923055526790361293056155565662269132853062980935025321980319371468552717613422651358174898248503424741640301994465787746431377569785746791612822365434452209866353809725819696101569323761727962435529369932861823028950144250378411690462273189930562474999255542677796686182043361260523479058442512275277637341680093787005993711749972509012828350955172335894354540700792197766560024967378403283038393749311812480633259185634279542335400879231740626773035937211009193301754474412442409720875635824437713715064776874580588982208512742636043367767784176573918792082395311023029311841666410170276321896775393349060389356687034963089131374775569333460048183137673521013025676307816000489157473829025446739740462991692186703235232706033204888087834533501428202022406618130590272680619921116575073312298355036925610275910856089877931086013848610034870228486877454882483014324508682151154628308601637390430415469298847465366509716412012876346103644983980204663168801123017332912751918067047993644475114746496568533802360091848062023542797194854865846177879908112944476658760817974693103988350952794466933208428541667985209673051861444265806393636085482706386543644114162168967558124151860684949406391078887653606312298864855816077345273107987487432627904868635725323992613934773549310522788391203418385508650430923287748163743092429121770081869876423988469984921312858305485201394514912678949793459259105786824167515661367357191932393190337578977161119142786037777720631652521049815773604529821210520454274591895651478485529588920503631684501835761457497195124331152253226773791263217441204936608468152582635667736555107328327700428190931746041531558004743273274473599872378023052331840086909985413235505688944044539677516186689900247739131456694166229120443711839297625170616144178439006095117844885006270001273561667539120775911212323411679959907020651673444581707240735549495069599213843790606174506314831773480830004948682001585024314953932869006468127144093985840828718419725901232645988554397697158917829381723447269571064419560355089582072514511814987577321745875487490872666360530959128701055427593959858434267486126204697216572768107266233454948751306966342474067358427754265940493839348915813607506232003423733399396526488140042244148092240695427233036698363267978720982179460188803964209237958701190736944987590055528335636923852156228085868403394645703652673693067176022110642512008950998490249644297926700110154402857287178905075049840234145734398990344195900588679414894558257766743296300333014627199213587131654458512896746352785916049140952141305795204288685177996012822268993432515856955683123823978328595444574897200018881142105740861566796505763489055664196648660589308825941405335491024469543054329139135723048854252426715852527539629179716939738598908593038723004557979296322385476740631198303804979906364109559449906795396307146492007278237472309534808072690900833458352911210677849320909216163667386402427337640608702521953544605051276989907655253997555570016242822295223196655753538808736514440122428794424642155800376582890539368574285089721831481223301841865096980236163542695462231602076077687943227688336927346254003954616250760745300813329449131045726602613348738686026389326370071436374792342374373315415987044856974228857747075136389426134973425058971564222403418760121936616808344500656258164791604620116923616739979785713596941160228939659065846932037722662148827189884455376918908684772201912065237600547718453552579773115765775839146961825792144990144543443576379878593868562505068257973200173347380542813588777401411446741186644689592180742860001416255043801652112207363693477528375429257576716148281491046892485070488671483427120810983436479221449481398557651777411022257197209915465689164105323605708309266290122252012551718175489955734265721918178665802228912715189406508616450267527546453534250114661711852748932491082599497203976022674766108363205182428936393052378226790400569005988603344673624708829665702036350659359025085128876147737248610377561572379264933411958548373157251179263666226323360778002591435853238369985538702308964889431930806791376487967772305789044444439755394109612401147664089731737885326886915694224155964755353124914849049528146840294701190049763240376202069774788227750896794424038682360146244403878475144427313424029972026709147563031132392703373394123675221286799939775977604020489339416666722977494424036883904781164946630182645632642523635300875639580063974012112900180070153009266536185850348003172439760119056766703862528129758107308785426183194736325661205167226895999930060104209407300433150060870021622688414337731189437682837075199803618595870113466224594466204557277448087564914071729786763520793504947233502593042579374625691706542091767538696315180997665634679106728094995139130126707001273676789751372321239379094635354699120729552819755362604948104175885552983221720359458075682014427333678101664783884599038954903775161532041422068088228876185145026381892875628192544867722435297665343855313419272299658281052439715717268385999025903992605787483274354458112242316699455108357339198371563815093695525751022918045781907753055121416927439960413561354719176672459947984053101237543482756769213479160640718024236072327649344468179655574401525950895811117684082674893433204472078978934758987075241030347905398232608996580324751225541983693129091247954507442589192845557361219252250312444589279672040585710445699086266983039112986892814735366842328493013622325443881336748934067928242301226474973486627024286963200635308718465912817612981041900763559896856686606141623514134317490340445520356475597121197670497557189523125410151524551000513468749243373369681129969117667494224621904884578760386438476385558752009669803151981367521959799536699000016242372219945275569203221034910288513736938275596083120094309135923792372547423041352482209324404124265537404228556103640723551699339313733124993838219660958014825318441187162469752219159512782284682382834674970489214859272060011423304552584160491764562074688506896994530252189837346957698988762306927978358493419545529275176303094426122560510520794163213386020933666500062926801152271357447518875124572969135012473938607114220254494241523219904034617505572763346620051126242536972954390717020153507691634815577067405567090342790536483577407354748099185692807321471932311396240633861736932616443395307202948512077235559342439167548051726237438508878982029896168268161714786675832969171278442529624421004063844555069839413434147795415352615490534912198894217160360386951441833836109323349096340368308146890272885167393171347432756409671823119867100688193258545375330329747215385212396540648757578473689284317433542714630402332483899828545963012967468678302911863119841016959373935750950083524645258143190033867117056968472589261693512090349996687589250658599872679924812432208988976912738935535891787620533393449746689216324880038043805047312105994220951170052199800891151353167351208621278047922992675934792551984313121498184372690443830682626370762223308488760603908814669057094764530335652604692611728793710858612335519693505814956607554814356115564097956428873270015244459004391635187610806397016813783644091474807687478662870896674360442403258657769058319196506834252088001095671694499407757933156379900490328629992310054431003023035420017370912951364762932469344410477547145335559091722016078364504284122218877006935767883772691706440181088773233649931834665642371604679921460071924910550556387808368724825924492687444239989062638905863015290705595447710800039281663965871250013762340417653492561916351872061628222663684042061336132839877745692223475367209130869740827731942334597717741655643953959496157903584499523473287414031428729927198459416609318708551330976322359080063281999840506742211038521841316368119192356321542191257548571686327701135380354349794766438467290172800971383588589814235262187219196033501329739484402874712775897023427277132196221805221223902189384079996107680620524078962017669634471168861155294467031688939915952544280231573854895930162622097481609134936920091692511183171456046353759254840905372388025790951170797425238668233596442303841568278546279634542100101140370033039833702527460078667943204374065501805858306181403277973117943404293203216307375383207449571886718460745564454621400941393404081981151667541748573740801867163920433056816928978723054680493409477753266507751066757786657060208772754235942030610347731895461592715232282714373566588742075277118765618064543186218203500034881025233269850176558879369883303499923814714034041922393913470129697296959287120100295403753363226252742760706814962634303749879545483900294886613940053964538709032484712605693433578024884798236640531499699207273364230881906246671591979249197358242681809023095963958405636467880008926707087654732677379450508446966365629790095936750215628888698674333805732366919927604299022549851187713246728121672572232306897293170358820938956545550190067731187888205653979217504693632796308158748644894880180913440588973500842277209245314198790888258840814281776101879461346821323834602871015582819023109734708381640568547528955232552591130578582302782454542211433311225914683816794558951360496148115699553357464853378544889017242425247888138546296637187348088919114964332627161331204422229581888083826630675236227599156472642171139797672936208425226360386721193423064066269678618579907856749342149151077034189341670657272810772156217690324474536820371110937682353206251248867589360249322629281742262976215819887584909874822133682465355749696125381207996067707638377792334785092772318557427983603276665180790147288098617591041212499809051158526179690063728978523309703256963406895853557555981674810856538249245427207149105829666590609971190685243013632614293189066995813944355597290039795857216157181272588379350889041594798457952062774812209634486856485422070537026313138992385068477804799378423076867046204879384027034612892734522164406648078044863708952431557230169952165351471686289381371377871999970780938868711373319264063787000543413539774458199168297209426846308023473377349475717345094415820753469035639629229992361948889118642339242021053838422678343710850981530709966406741234067972665055708770086166693180153217323407484220828640653171352509293220686289303313365728441716410859146641879798069731297091414305225228198782830775500162796012156950988720456492720547435356291931816457714709395921010087944282084766827954814228772767930031622938411361654138933473509599841533667370510829262940205627482732054968004244856187334754174477717368701613598471236550164157442494520292680500655158393439333491450180489396587741652519819325765609106567260750112667338384984657237616440960397624419584383150534315905046607892856627300339088578287964246581148250453772231705720632437203326639203381185572839443920110306043384969471083522022694708755706807905802562486889949950979007211326920413237757719396418548283674019543769939135498121637554440138370502834371961680874367725136268231574015314542150000182284101930450944755912853174131242234876262187070391553421948024145195955625233978992873809001132010716127697187688526590274479995531272849186977897666646383842364996639040974951322330325819847081709413834937130487409525295077058498914509604523081015479087910199748103407322535510505706226852607148779575518706324643317956942172333681142113907048716434189060309040848319409246314030665893492200029708307968487820533910740169963947768920918519930775419771665234780517311161614943771526860586447296692126579089154003631825615124424347388694005023489402507141616413787046077549903147177978160410600836894519017312229738337342619751950755342101485964565179049276551234139268149255881655779643470868019723238041826036317641420965916501384138477168448576124697458944680761886050080681452202390447779752955101853850000921065468817221874191970739099018066289182651902715820604329564172264414487050749365111067886961633452710740217943474732393018753309712553034649184615503096158473925711408568524014719391102856003898350095362235045574630967736111545645008381423994797081496913881186275219615932082214851458979302981690470065475206781107895838738762021571019954535842873728861039169192304351131308652168456640805810152374251431648167966264197604512747106783244046886640752215174606656287694438237949333827283611200059255373497203341793566401382169469358297067092843708937802907147097808155857612540723814904591517102846633727551774424031190048965479910158331920318142349141403008403672969522370130036681149189453772988606294591171489376877432495359776553337959615615288085307834759215187165480293859874476182763871870990922958439874035322256128683844540410074788280501715029793829407324981971314651198250281893730699181115788448054452894928958192620437178228307117334717852749677121686426006317457802218570820381818915887982653807899134278754935258565006910750310302216522259161815994606218901278609843178341678473261498521468253301646256878037276075127038697541291716429375020702908386186482944961673869894782745079446080703253334770126235438215449115146235902339706443994672330840038223307669041412987066215511128502147714166230633968163654207040530747855248241008772929962720352438097100332947024626742809755317176580393376890474429079915246241419327821707876342253088695167946517908549935390514717407201395746866085910454788055073612758584172993061561351005328262565553696877940891536231194816077027164501886430011088483736336735547059177377165734565087422717539145384525866829923577212988876234758510604313912000246085940744928692929709014728115572315657826277107688087213051511676122257157266260304897558909174108420991698150884316065249719229356917471258362559505128255002225731582418814620069590139873249198476336410379290497582327096619739101073245138318107847463265436363880836458356549470542905249254007622313729109709362347103116839839846795775126004652609971615308633439889466666570121343310768124078343469829276845223630090771159647904407491246524118984476948524379444474686104633476213949748847105583337246846990627815925897683318297773834126279820180411709286501587318200852589132134388518404880490958088508055976338048911561350265751804443891743712945342521829853214061253589815133006379873895061953659488964418207078213405747907042542799000927973184287990407565186278096360667699540833104318989927055326873426210396945499088176108479295788822466477630192469886319015732520653014366960751063657748320702451423044326316895364198460880166148505785814758893784438057623230873906859451705178515432840764116272544431787975860639795618830625160306168051139382856212176023160786339794941181222242685749860607344248923386167051766622002358198434814484206357453156763353573712841780131508150134660248050111291485407014365516429621257479696115272584262872217612561502833086602701622499859129836837174798430650792719027795168992700473436754590760979068413544196610530274248622560717608155193811051925448348125374037587587466261136358852650455855929298586835012662255864605135199963378688901793324037798066065036076747661004134384382093367678125943736869658299079113199958872586470165400879588620124754281182480712972995800187315548156335298965218026988100533166311812367445326956998116811910924048452053605765251037205608165217216709388788285237076498851661865380732406366413788896464876328637160556423273392548546532710988129829935752963321104641046140846057151169155476443557288573958308964950232367766178673381059494721679589046109244048774751455953566001159269701030267629406489048343135680679534031422418161755758829130072805367626627571459705733464116565939216415157235952993315651090292925390870730249172473675649843377872935123538733771685783418559366614242078002614914828213221098233105815339424050851291758292161177956866249105103773451023541915071582254753138288160725639806648253562756115594211040156363535675180790950692982536429760795398916140841121415884609337423486265228023512658396424127465663900663344366511550551049994816749023534346007938346417524194487517789276457818635262260977647479741342259621568983029055377132526603179659452367959717025388100377134051751062591969021796886236925766481500538448752778016148261608544696172702906965333043060913070031334840969611315771879118867278016317606949691375513340759185278319275325181387643630458010181602182184875951783043594417365718317126715169674372171312556718480265776928729455900474848014216644305702390721640530159793532642541113715712826115710391447820544735487740112418517830771266445933958171441800436792490014621699367357765493471422621287445708822693887451512162927682466209666471029021439136121934771460841430329299127264546173797093138128856070344545314552324623213635729756022920082956525171049981118624616336719261979509885895797700031163479167501547723443202786260808311876056563348812137744999437970769402358626541765614303419335803825329458966772045119474464739290486759087383634313554190493346637877294484568733658388263634318535197319266370564239211873474929806015576650241671056093382237811356216071864122753559327505242794446589702355691129893265513002516853910052539820666713774688609715362604833185096473636153578989356915627058629535307888132266096578287726048371453782803027439774138217957887268446522500441730569400455251475355099334717632442211969693189694749356315202620584924883588373170115952666330871416199282076667900628584741632124100532674417439728832395518398959671891179334232522897465375309990137751875405905999841586819766517175678972229056429968269684008040881036210097844259975088589669691386796701964194715625683173668564317106377145498885131767615856782518076371112351794637901355343759389865901246210551421989039002673711578027310946281645116541972380099164823943652995160795336034125519262767500591357445945004787955432618256912541705238809118431841328728880225669861766380866175103431207865838523275372650413956827173658703857774599811578058548390610999266202802608702350743963798875420204408642002744901502674254415586580635758339693360426933565828079513576437269032285757482677295141923212881649694451890903818952601415786736786725151621095610626190572376397465153352258277652905580773122522399331035253122677125074207132635191727877877850268114745499626154364723846594199949362968300736755043622050143286955183536525991179728689575365662238262543704704427661601648614288307019038856444256671007093970874260329407428928926842653227134955031641344557691916558549938666294293468143086756058887825007043588945762021424472573438438495520501156871857632124381987754380016713562010436349025964800177125451923511430501118896759664411958050656355123517564132056843042282687714193228816588828413343081962153796125099937417034196981189230833545518854756034513124597296376869707865520807135507045272565989974158683634275739375582490863597980709884294807931507175593191316307948268613181767737706521494507672231575264705387195818887101385621309200526972152849979708929485329385091578334331087100682102861815452051140660348655496055144909060077236607900727369125245728662888336305230800822177520524425583237427982308025165122532992975908470274339127992707527589007625059842391033720949404648674767191878660877289292685231362693636805955486424751536357700742661177581178890638082570246436194112586117094254497678089651400468793635104383700160958909894682043797421671589289172708664543468620191443037794106631679157198341741959049822553134621553144880815834316090222966376229270090981575178914195293927206165175903296357962754371391129293325305025649106885432146605665461762107561661776566354108521129675555522664242399997506882510888843090732483343182293251409069874480137982039992294145443667435991397100661678073024603305938200709596584863982875158295604642553284107718517539493544769828019820605044071456371725372914862859111577583149222680037774555130174198736116164919446036082586161158540966528036715751328989346207290672534205729518373766814408360175937087508463575478637818402501001549029417777747979232168958363478899756602366296404167607173580930482285278081089924097340595093939217631226353258296805365571728847487712324012072543706668326783619641816496575714669257821278950212263508082617224199790454747939925739442720495744440706776732244952238873765464202971318885429876543502462988306062632337295444577023569480491208562193148712514877695125507740591421174479793541126155633646057246691429258205214708032280154467250488716441764357372611945161907223074886302253949150020103729137945504349908508194859183046039882289815819959167595331435979571937377449607782822048035023741936490931724734036222812667976230572281302985837687780512329478864121921025608180869781226945569340350167926059261727446836993101655387133094185014897669342408322411644146082898118011263797295793627851135566449098441629688722683702247441169577652143076511004604530656635631037345020141021775100962084230147649453787776237644337090457580742477202149192127756719565802250084938675303238079103392948582391143482017666660426785749141366098077429835298721831650773349972940130625779113422267022888572789795910418142185722373227062229160247579423136468326905809028175340849659634695876424266685896947340092712622014949374928958937526197826390098143074021992840821276773755163131704967687118509209669692437370711491312407561090734749044940049344849394697771702155166118353859074668140458462362606566632831322836482949504602795730493617021823543163325570197693161513380060858338348350875347159361963010859070736108878497342607281070193881552401525769497741027641354145764200727954145908223186673051040861402889985219023568168371591936162828364769683426308268127597629166231805927188314559381741820381461967716933056500843637249312912704550491611257281142191628387644879249883065886389404958542599588729953475630134876607283600514195382356249606176779008630213894858176097284819211015999809729355923065067340380968147543510149775469487952423672909306776509290146976649899226397901337485729200939653517289562478910553345930868096893148343418915710352900795968398394422539724225109333391267116733173616186275718399030703152009805807514318762311031857901737039571925096800231714016609657648377680648020552057570166694224170906967585097490127017434361112527565626587574823153661400426356634600071407978327830764490796667095832612513597155040040736403019470289506288480004703239912963493514753435232132955904206590613838109219384333653523050198526365169819141955470961172962656435220200582967689385239111739657393058866125093807913844160081947988416114568502902452931860397384457629931131688446048495844870317666756299960622499662292846606122287949498307065887983632368653404900792778377887330246369783722323538330817533088949986789885698183456144408075957236176931355127303130656549900158300874912474062137295570383918181305196073109113985703109683532288286900883636205093432462962044213412942895868542036911994450668825904289060911709866241053388794163995224505550674734935571598813798500110020799695189048432579450939503896610748110573385717553415584782232986047305883349173688313951693955029775318307711388140729031369453930574394022000470574889651751465218373686364649541113405406904166253217489752115165792833294423010305435022179598831120663634428356062658167582757231385056733385089747161637828619294705059642095830828092196282267625079116149152098642706687325272720256843675723892668858266338305878839257159829134225333005974242741188504033343745965697359096792830945269850473199773658523214753615627167567792912818169506712310331071758037871781794680764097185569551305484645136171327762478069330794695920725463655727667945695631547249125107331908482724275451554850741854677201894251144655831374188693308796670573814362240349900735027227458448717167133405181553064201757289936756742626350005927833471172984378021008384754016997679925893276990903780045734217820952783245038289284437651745856669380776528216044359425360205405125154957020098067373648479073419427282109804691957985748163640042527500414155920699645752205307037255853377011979630656328057642851519372878169772636387871800877866891572069931064180177654524009758556457484092707443041297089029048740582185064133710286231749341075301499347822202385613057744520881032241131946220612452149316164098371815663948190909095768321324374753287200643807162977605797147744936071560038331882389286874193573895336544720180716915399939787147116628996696655271043919830022033186473980600106989793905417287226859531241913095720992507333269417057060579178847849554118812113510674681904657955983527962885647480218386118401044879332575032890078222032142226325529610537626387875733030104278622479427574228352200961143529145239829336386395107896774345989262841227779270564247934706334868219590308269123069395896112179313686092115022840240919362390557374538694159234457636515461093211071288314876122476314420526333162280884938043785209799743447872179372887574659789099334100626947128481055372847529599665435584273280219104139505262031654618884365164928829116611172813565073887852005267543865021086497669039331879667693057559732140438870443269411039591010639676019861673835639456946853694603769254303538889935352641585531726865996127058383642730372321439267434876480888540703115617789462044267632311942615444103213250104240861592024479034744943669341790228970763978503494001084711844919233680454383028166141008096880082368192913838739574936642005395347778806866142034646545248987958816156983088959769315584755297071489318772613134197231321115852740185062837690526179589831547653891381068205113131192148306368663142101147134465317944831691700935657138002631975331710903411731977461796471728707043006960306232263248632106411013902860288196088376771821177585711144723623646394585367687248003839760106225325379916073344865049805465067001166053202846768483597771460548411610403164767808102253080449858644181582181463644647836054077105763095444096960715525751323875520057350104456066352545710859300178271610487450666986643755345987751110434009933975452363249203237227794166865001657975090131670811166997955997974830538803314055202706521592277772089012561663630426029961504096766090228386511457890697769825777226243078892828967161923352076319357127690211873990745072113973966075137391644609800775431318542263321991611224006268366260107771654874039313575333505702136962272319782130061548385924103681708877445877395229204122698802753565233160113141443546775016733763778775709319957408583809017005961154413686582273308536839495860529944867411249525227794453338768136850679160343103632233114119357232381933238419624235620196816836649168119282731906409602363571789927680745926164577470399427009260039053741139117758007122275295969915874360599300032232258428929001471519304696122351640550902956609532416340981330076808909492002976445787163612687887946982413035437062974395856658400162378333887563569720256678161688496066546094268885957507176887818024307256648895335386634256796352350111800090679386007219009985699345267665178105755809370023027977628750010323948464436796880335736099272492310458815802089690295681393076089693348274569228077613387533417177056305864016524638796162582781502943092221897056656430786721274127609486789725167367094523664444322299747897965817712684286345706070669626723992845720581302968595391800034525549883170669211826541062947249656575315657888481535104318650837517820919274173178313564493654539933322222339702869723536428165136720916018066337604221526501582878712645991368222428065166466186592303267588079311052179260000950839030531928947177228277997049444791908390697326363636435868601371677672717827713923575689745431771014929240021152082458520337019115515179841190850954886830102774771451412375069230025877681464692021615088753892157618176829754771314182960819669829433087941733730838631180753520960573519942421765910372134926862842961945797075521818681230478667563099553512430319151025299604419700093794293291142479953925715348905842678002858591834439783895468701014786120147677614358736995309942077837782008919429280879973140087279618217050564219992224396322772237741386811415623195322404267395072691528515029228297078865220889062154364290988735483901984963299671142018115836402191194275599974881321159086648865036956471605215485934992435768089375714825887891848794974199591542440828496109198224124912175873044366961784505433555566260216731816693240444733359326490665296659481817092215953049056878981418857465241514148431249938837531107590959884815107960665306030845657322276992634486857767482978404310521068823107448351232757946126012759514093260021685079779684824365022599309988756982061792683060321983836071295919781758059324853410294616181881848512461871467928963606313375386508369039117805321266572531736342133159797140596782296993752004260307195537390483501498485001926977505418365418723969245081995462962296070146493385225969162686861385003919519158796764717458668873481630171302566142372091378697159675065494744532715767543420606669456858057334216837589857340051465732497293112516528781182477402971102862253410468142295107435030506371308311927303020788982409179663085022764596474562127878211352859936389879349141925815653373763520529392966512007442749126342435132628648457055342114518622965599228065215744442654500016751916924913339535466969860902802914678349970978298477889071415485274342749832517366296814167474844316179899555640322666955327890425729920229705518334875119309928777814101708777812663539632913663226889669573962731305555193146124550979982663111262870956914262189758002281719119383417555665768093858798126906943309874672018984768980052055870467375391442831793861051296618340281858189899307712053799840982169046501544994427704004605261498029768174425044605657429783651013149231495729484659061107026537629862389035451526853675582578340278902078980139208448345820019603318948803012794923547502279905726677071633423879218353377263732717623660236967639904948426198158351863913937442818575336309563338076644339838484424081981072051722338059738966861596051781736334371858973362834375571398249047534194052706815190252015012328295312193928149030046097343249022359857901395110303691176648428888429633560306867044253217295659713826625368670183671953057615620133905930930864146231398833935389376018232147633702373621993537166426988673463139058016715176024453203290055673058787384949859695571994188073153557098452560156656699132205827302947835011627056239657593810969449115697992808919434756492678596410647722724800418380689054370311192729305847744655013636469824385687667900569365110491798069583382717345513880829578109892128674873715495774780117533079228212251109681813715882764591463299942374326553031644474485572096234196848257929636063896087812481922837045013596913442312964911257637660112084680760582316762527403786901772836956430263074301035840213077172405144028503016174987205062626932058114403674024537641832473109867510731569802900885039466586914563413102051993656714973399569924149797988970379939052578033196430210629448464315550947917845601916358655824739193013075650373306016840078784350535264445678887871157272800052266630190827146681575707613968655313477009476471118271683184010598174341449468131200774196789403579702401428533939463088032825164194748575125769350751910392149837541479026022218744442178545488986676860664988748700812680468165147205990899770048508011372295130532842983863444490000558616775024232739267490635810979451623385087751276788566539439258831478651786037049477975613397845889304111128367447302120846797562741317588540048097008923139129865399560124263494350685148891373361786984932621899934730680998310804114367825845271084903473979096672826053672766995197120102541660803349297319975044021885209366972215507447861516576984088375654313281838802371205414355472491308861741572314619453979868358207967707556222198161208177233119953928993099149433714592537758193077127055166996167821684971515342499664639002738913550412129745688249628328240304864419981000507288447258329424545732187955740495762611276614284762336805392817905188586495990509081772609363428706353822325603305872868541995750984270516213221611530662918840943608807804130687760725829393879355204437701748619922947223319854207607795585279768832525876188574887131429612786244779383534630267844297774182409406382631182613313715209462614311712512622179762246239935686634171996477011570446705149505948837443632343556590646045686744890597208679829323964454596052914007036475629439017474559651178665781831802488353817558864673185359253996174746518514804896706343626322435560124981512829469581344684114263159708255021111966399255704463832646532635136083181445639787190800439483129639182978021101900685367371925694088883892322091074502425085232877769123685098177495298300530742742215405033750688567106669704761269973940709072279710584517418942025772596534643960645252550359531775929745695848024403025912826835334715317113306734061285915636494200926492254352635535851075962518463119067669758875164026458148764225566292853687877150163429872330758704945802587296595564138484403886511521759980962431561608593993637846988918295745620619443375069723622603155013660209713360067806659856907605784223785634949300691702578985890619373219223013682033972399250542151119638412045572662490455980815401700721630995227549388304887813481746164168555096214174086016871105257923537982852488808912074590450754208497452800920915867157662475681917050617121070750417896925456344948982278613336016721883710638865771628132213162384918931376945538189408550781800099806915914861100613056952414402411700388014627306176471251280475551085014005786281739023219762957318168410378222973267824519961925213383061957835124195905291413168196524926502067986385858977394900002551105518709069823928066340990405085393227875203342494929844622745077401774676058114607483053230790582708048753211540249598417475493680904315506659102938923308860885278313254366156729804963682330604242738386395050223681751500101864156059063075121519085842470311011088116912973394061314109889643194510918074125020163116329850811666737892166732972756321469714583428621135877954599217476666078627508993752142808586630090136660894128999706240965142937230013730963926497646657871547150511488653279367601749737736317157453747803441866635180578189250280358224022661390808373578591726520246593048042358356508091584748399599419717467564277940695899038566998981714383764901389991193205182318069472308878599423110814663552228288134777377062882966240498951185350844966184543225977235817738453577776114816042325477503046097841938319624027282595925349756538934582295394076975689641312319768686773141818247400071780390887920229418620408287510704520713962569491311873030431738303841412656673280014226481312828867990844707268174707780704804421420649640372628697226103182218568354486050526425347073575181633455793023282983706026822158305681778397499204728654116937718209767121452986781221330588963657774267754447400796178857807908489690244274317491224589928950169519237843904451854896604793586724410021435240700228004776037311863888717183901004300208425609492605529564563847139825083486827389160182374950068922302629999803841635896902682995008776107565155657759883696070586563341414064560450768981663444245651839375271630219847052951461559084205071286753447952068055658760642087606789248263092826446025712978555202357410652896722622341691987184711817426613200541873969768645095929757659999621250444285372082054303232726569110321272183929636052390354885091320708004201777965669660271060490151598300201520763563346500125103531964225333918038240537821875639166434451421016422503677276941115426563063046746273524283466040282166978034107105138807507458708609201115117268641336372631958202165565499929364422601958033517893543301966817756739503912986781636514182657847880195437155429755707359944590449586482551223111534976256471234457668274364052320503992760792897705251571334550734826682938053040612870172492392257113151798191840591629347396110900289310577173076696022825465007314659962662311470633347456413049709128434910761364713344704747505896706402517942302150973156603750889555092201406437808608738781122572134198789353323099110235395069233828151527188601866056105066014422558074072496357215046121141767409778759101209887412653786797743221324359696760646616014381517239396555231299676164000229676322871329222592573608442790218939650852387494304892318727974084459109760312798660332658859938212839666885483168511505425061497877391332616643269675601540664503018966603576876579390124026523803434170946759864504930587564638678284936855413195326600057135957673215521177353623828544702465921965133839635243111706265031968464821797844841467187191089495252402156444106446881602447250529740582586114855006574076247086540399294075786634125140828248094353308945507697614396237081439899720787461814622195294219751916543031567905973205629920387155122771851851579086570015782210348131952696735617069312316542473445133488018082088876627933381350595139429017899942183359246063800574241591128618117626051444477355535068570996954114320440478483443992473901859244240744841371415880719759907905000279030523530535488026215202124763483814851290584083444799870894098991445180487866671245352358003108677790545680511514616364733990128593232035415451334179387449909628901611802807103149683236976875351467179298706140283134572612391063664388275804384420071284343545318818781461898557317697009547957187291165819301148245264375325216793533500390005957517706679813452454961604910927480705930296749483686314281257333506997453517210329070790676464909656806404248185747337646069085507144096727573639316155630329432212600365717471564322504032592975623249152590021168037873882567677249234295189582845498902344110306795215191626174237691614891617420566676641111395940543661187229865414853902697461721371829439317123803193396645302399397945581597985873526785365138293143186685900795907984755267957047997942843516430976590572516888917838670268433726503535205287867516349060937456541262453422351318302702059815793705900303778181045450780831149532009249219284381951924891752505944930180457120184637563574913885920210831372134216984893335014848203680766840968454450767135740956840665965774266906964348748616929051718032989192526475643909481430599582920162487727118314923463756515781880964203724659221901982530765863768142154340622078046545198794393112780910815194280011953799717343813996180784760992865225299512936368025180725980475297605663738567431958446246850104455785170562521301255831744089042581777370314936091632801463051440871507921422231805376338208534296953791540500018697117277009812229538553020921739432932709119192190601227576827694531917535812709928145153561653834267380987518965285011213507845179587147335108445548315308971952090345778576771678667525743297146744128270303142438076855704234157666859097222055695331090173075646165208959471558816893753123859346081852029362943169035044278649757765469631369579368690899845989773742177018770175439651710890204484640969172884854817798018272529247295866829694068253165482055658081408909134907503426433571670726684152243614389399414425775910617852672731456952603061637437919564589945189459947908193489817808330878517596967465183042752746808354533379402692443193577332039390573617087131049099629853279695524393517627483990386223241964897009461506884595367856731330782403972137586733156476771934520129085811352101102006265575710175177671202958284013686455439586250962697502489461683401401655291035225540903825505790211463961579246193105536565271004866747407663039722256675213054469967098996019814300893088669465925333123777050154594991341442385207367985034643551895933800366911894633556745918223957923734008376068054274190341187365363172416408714064081995854389522542315855801439931229389651847960073711787606112640357997197293606800432088933928068017847023701649712421821514081358913590255561222224316510570464975122146619581758166502232049321737234679481031960653829632887721176798432622014549910219259987744543494643073501202852066688625235690256709406981359443606531005847011598573192293865265378465840018872024030196923236544470394544047015324606486810261501521152132554412206834703736658673902613250020693058565497019170639158891678423938366658498552284108380895981589893921730472451664369110685764806558292440480563880677754346416707105199873282670254837313512382645354489529276758515856056509306966260313885917154024342986518969154476752474058393505816373164745532792294840718843619434325292923750256114047418765916975240670801880790621857423097157759633955645446645887474010321697853314106000400841555888804032158151061172682570592000431676240577224914486480444732091712681643746406475130262846327231767119773515409114047652927119392106573223243511199627301664529602234244177333016710152707253598933179339323550922135119021077610483074738734239463323435374105839082413570231773926285886878263324138583053765387217216960268410060415405330506203874131936844226168099744753713587399505325127997756548257693117371372709508846637276442224697347322564106644723799590660885510974514859186104750005401962002728369558995010636866149088810077906925033522146648458253852203775212308314463915754098496565792437531335538589112137637232499630989754085959430519493429300399610463361916036996019935365530497877752834307697909505073782087654144415167037586347020244368737585525381577127984291094053253329699457328858676463402662865666247564269084298920980141258357356860775970881988127942039997556677758666512130724480877166843864848736218323335640781925179159914657259355086300224178242313954855869720670834172925007087320420830334235861973589600793933046516559988883113280006890374701916478008751346368474292993249892970512948470400253824330627543873105660290915432704912873729476658885781186649388401203297737971272888710014506035074323596986102708189494895439588440739083505980339207772197685631333077325262139635730094459362378516404044654905690076170760301345666619765541177881280946323233572344132333438973258049840974426928059105865463273764474556013895023621646022633121769944991096765621012396078933880935652815224212875292600659297893737326832055211047336627927464653850215501186823995298725808576366933801516289217913097498245153448570226210944264093784630998343467275482556413629630634955263991708915357896346443737804176893227465144722440227722191243988045131953739392465285627518374591467666767444082359805905174953340266296536661499776728861792252361560772814679162036817629880376476772222654163195810252238330364015924287140876726969067724035425890972044413044844037940982475218519871855253168760414363741092393267108836822855400294852292653466676967939368671664743046004840348984263613335965264989883835154933494412171639670080366694233631541777820620197375402050749999050994113689232942121007342094260383552279063232809252902818801478046530612609219721979191032735822456482895692410453935487139722595054357229320835357476670841190161372988742346651597864601649737734367976167390309780442948922896568907205055010966097135165052403156027782092317908476217385121792771789070808361635630993235100028077427221927294676225668704581539848553939171959870111148323997599114390330546791770345807416266778717769987198615018952501452316318739865975126892809082419206672404236860177576784641300467165447131670200728248288271502287661541050350982143286117774040122883497024939438427460933158918063802355669529426003209169796120459683992923668313923015696536572743658038481711564770253372709585470341337167444933334264420712681541191279225117135603270111423719047477753495568805543143441392320551719773634579687763996961412106348655186836778698369814345843151865952254297870595974657133398201181870768911033767174793511573025254586498737377741043364116834903374929730046882560172720086743529353497409730336710122723138037099134674519399325586601073773830742581249000003122705671914338875371477191575504158102341000208124280384851877575163158193675744581887024067324847513211291843638296410525371360341311053839207453552527413891519203653187090921248975204105303165758962748215819421581050594948324351311804443374676946591478548025690072350345554388011487251571023024778808724873255177639235445284872015831920886654395934061580376913100378693809088184423415773072942401924404877172195159938925257858900861160158376281465605730586470844318677872111049985449303828858175824744227576510880015092515866338474161272837225454779692293850650500295529893193935701614793658958602192287742350781693806237144634457764914640264632503783130747840369678059248239463133557847103030228148410693292577188944559864263588163883269577857406370927426899010706478304759574710530078856880589231267286883664126391860825595415131497011531081242602386166024452728885693911759575325219563673065249328937429156678674458780072542813785090374435865300801503865186475473859175013733501414884477114614834147850664955941040140800152451472196576718796204057037488484561222866643915071523853845214909571793242345481060292174078319100704386690481137616557420022268451666073681369764851567563931235563708044832852909468426909117732582990155819921882049717712229796278046268191088368957242962220846574484206637099086396091445187769508117357551622956826267061419906374145352469486039668526495636324004185586261303347361951377145307705580058439914657140627372676995154146047483038813100322792494051178327883585538783493169300688607028162498390909166884575886280488231078320726407411125742641937727618001232232960617104049733331494615064469741925023936737625187333013137819294589402295669214988012587543174690979768713295827468319570041301553256985310232249963215417446435874675713343275499961225101404809265808466274557248520803603432218037238209176051609170460224147752212813567916382086594328385524058678999663205420969948854282955617872156211184198769781459951277787076048659267338589335661733450849475536103309654194914226831972371026786703470053611598215480028545244147165561658854639410029755626202999494091862817483114738034971285551159568800404976282446483052380896493299362550307382601762115338851328191456126929136110688331937891430433632973300882795103799240328647122337276279752847026240429987034877619797431197446920615997985866672724552927317076852057284769509620834745215334375124305720278661904819931105720106766671441690185413914455416097344718919356510499565459011191818267204433127795261446836547237757511983965551704139223955253121477089099475467395943566457458225598621745897984955318789063777993131688351350253144643360279976620033834233071191232299029764355318703659608130231688633893769750715881829740336286567302503257470562432870396681627802032815609485357964338084039479685537966804681161926343473942392924088905729819818734980653313500568803733379749413181731634351716624290601333056064384942187044533149572963956823029168286041681664973329517152313143348485511216908257247775570499424804053470417069751179390325430575952813038905398960523471010726594678318894046820364952251707662581185397402225702161193716409843470123638944154815524239047955491631617192962255073662950191072757630832279175739691493560835967664323435114949300820401944539079793210250714531085625160010176066102323155583274285190039225218435062099959006162756771602598051477820502055969030705559829866328409304265174218125390191567480248961915176924232239732737468985871233167377198248352094153203050086057727191794006311378090532721255187199812619779129563171634268288730200785488625047511280749108443121832139403661502442961934365856096194234832862645281464302895269507268379782541116517147159154384135330495164156456699034490092309237125906536577068610215110623842465176605867700478684497752207326067688503071589426425135929697762419712312398614820754444360530758876576597209061202983757298268682714005699390613675686040782763626845895967293855912693666200405696063112983925128849739299556892628390299278632904284741114164765582288379564038725438419942299187610067086486472278620134020149535386297816673064282902625625773154742033918204959883363755717936493801073106489541676094656569225635665379172748557115212344768249231631300857350935271453765957789171104246485347756103104448165338438908960714550122276069349662800421927575703304367146777784167815046823334542324708404609348439861817334530758674558285701349642463710255454549444269906256241432068187992536047410741754734871119685658060569670618961085729992568145071342927927774852661390996522043252092905585723257684352845791965253646895296245823253928641127037638978208548058618233847554272881739026024712621445579917256691892096853088385433233794345959423233274849071003660016062991961421383350067222526549706880000588268678097933470293911183865999996689398319495946157289279249739041754430062397783596927888612895885324531618168223490379092784701511906075801034412972892296610227662634886467229887943253737593327853027793640827598758178257605968169253113979135349458135019965202658853206375814664378085045959755179829083693799988411810248545253337101484869712426392156482558274899789705678892420078187231698286047844798070803914102841224167585481238519832903293454124181240598730722569173291772464023907141385486058660407810546939921068635632606845074446098132946618589681410273747346477459417804905904049777248810471599548270602478482848247111257114944198085098085778919530323980183168253724193735610646618362402965180805754669211379784602936370313583163296441429473180795038825026327276414782105326961093208684810122765989124969290941112508727093379378854311998122524438333401534184102579369668857491131702237194483060686383815702735859532453745742610627859741580416569352212424814682470338112756332312124627614736536428369361502409418035751828442648288495468009077631246735334882565201784708785079321319132621116242166353737721334686974693604110782103981440976986520823869282742481551709121210292919397096211609587184240698712059645800472491430424808695257211729944086749256129156615198485192376916066609096876939347057831191364643042119857159930392324354359323907653016357414534333670954887258558492674967491813595489099259756720121196788194972528635263772612671121597761837971600125034318337231865675132728370383863655562493696255800348613351793433195296097846726545857279289577961466012205959343631262979712799761204645084988948696815056039757394071855973827727176904733917139168614148001093563486581155426123616042182370222107395727574386743836565902226996029769164875276925150285651703937917737249554178244362324423429402389090179629208602966012316919396379269078350797515754402408761309981383303757260534105138824249708366366171029622344513575682033395799984782000935710753082178531763084261857579996126979834175986541158729659184771676612496382539993612093030025456483199290440690868448612717249726494488846077106799753507015394319248475586767380633683852732156588098112589573384500839377879776114460051458130433959216407827666417725787599750235836745969267556444079964618591515523594607992804834726552224311063286703631563148425243899818371358023248581793555138144507222354194237329574839762785957788150811549965181045585217449617791449863851299187788907161826947621515381695272356883776070538797671065184478480436597695813600778090915011391926291307382593485584686793647153769902053987172344997702857541855806262100395722652972322859924164127691865532774836005152366520509237060527686778339205055813459264208436899955918452506567582879771382706074026662934044118322442199140951722116946612446471513236447719692764312093801345748352606413343075495097633838244182633779505339628457180060624992006084939572197004714052092507661741416194143491787294756611597046090669755971607255404131982235725880440764897067139735452862781547736306360665767913282858424222488265707452493239217502477670546264766694349968105020685576009085302596593953377602323045505504738268035616582609162700284275492112966787164220996289373781978765453227439209209815154523003482830763579359068464770000162298252577082884617995742334309185692773577263693954186073789653785515006708023760277998749089874598321409067390586212339387305052327158718524873717728792360143367549535690892491163996512443396275436572244181785716353547968308043151863742029038214851653908572886888248260957316571266005861100939395836449699410780778656751302763986139187706542558577287344252176371320719750339399439022607800054007467902962991950957981574014273585431695057894326071859750094911321603807398086878578355973061610613344156063085739680711287956315587074113868466570227821793603564894091528902802557605965826847502942830352773555160785225474597839012778071050894364798227332188997950547152479471073273512852257872731962161327144851144712081987770669007911024059447128092076140982945037398323206432836833152448649606640376201255550462277418136401137216288160942668805426013680077209477148435663064162512392953323635769098219040541898277621395584906011318880666411527535078507427572664160176137667360980182922791327096472288188089333772145848558742662817341557168509769071106310667626785517553989677447227751083534909359689528272676251781699809699261774514393063273246484980101192375098501447088281070807279484546083354084799815442049244575805388126267772001922505104372329735070408628485067583859338289663492431868902105813431609154399610295330728605467914464156232021953157566880371321055457673626916995462748011626753708668329971758564196354098924340365080318515291294582192894684796119101131125994371816391640665008422911845245729873711581152786020179618551632062905779505968235159054272030772632905092469116837889760897788520916006001644664299730852416416162279855810645743830636402078332165091902337646087142216068743169413363090125031222448199590547067334789690785772245128565003158559501093858044422747126238042613328985338359190014659347821876777925495043272243679852712543584067862254150289620083719982009597320917925814749460710831324617338204573869046453432900395589914862334793776730680877368311860081042658512194203022729031039309246658348781450132101080711574204478244579639202110758772386158306919942823111156480909551002076411433734708632857935505842085232214916781135368710884209212700782035687322682712489885916892649791776057543533817893662523866446383590269613740324683722617608168710646559169535584408259147215548796722276403710635074792072976508111002788072188989346969685943990873735280317131379193541441471223900652463102659768595375122938184294704684510557391136378662907359133624929454033576911228978960260492826264454968008625333119236095079569041020611551367289544870023424036637538343116622774362178779931770386403735229600730209860201610854463446032413057933480698291619363755715058711792708686426080170164314568944397624327074333975926159058259208396546293729164422601735474031243271565742045031533915142595644342007324339265464345191170875115236912540575459280982062961114135145238871890733121484545475233740310474998482286492578502390673278854342618086684821331767806573132760231208490576638637482520023309811357482074863492612959739801531404084924549764889378339389693221964843243206085976075033755099266292862589504409247825529666413811991398098296494155495443062629847583667337862638788672014888760038407073292242135467856979937810086184583965308592323983068620656344307139941232263078901893081728156699818768478029711082211563271105807461924127755161011007542243473415536377244465192465717728192544011632864436414176299925948241439316941190481338336154414756509431133262178146255399380754326176891868480217318332905081270754232267280234304045990824857548593805989538652421507821758531495495204777872950118753423123161523015555475251443424169623114642910009180588419604593483146924517057840929097528180524837837988034440055676922467962408660231192947950281486859824536836995908890759089579395260332524654299103010013750028832453578346856556411507452897793064077496383198620652642473965863389039972956575854699199917208738902153477374879540684184107189811973277990927444188921015088747796166865918557496929387670798856060874603024379261318689495225456304515579260524852969815127064088110174908422524828411399820003516829519824146789723240023541950493521284782938075204355741226963422349724331617482257835529357895018937037405711764609646420382306464228587094143398853067558861813655675632588504987418867415799175348451569315657108725436488462059880632861096048499353788832287835539515428568323695242052600779076942122332162469270360071457851885896315850498323111908770007252273235385171243326852462215020667292928096715056738826606726538316514985090139911809672028806242650260481357929156304651049402748435890421837288403056880724640418574901547261965324577467440496327774873063486100091347095727782709995826609798070744877679854564133093537978358978083219588935893114449350440558100126996717304248241786105689082937394269294409677473228955021684029721737921080147513353087927100511043399458831764713276850764340455854715203000834480115399769733124826425370132420118626893655157657601633854275057195596836111824037386433071857260460453749990426761899691720234929209471334936653398958440020893419153423225514571988030111612322927098697787117336498807847031107463676924845784603438679600196446120041684867143273516529329892267600381753851550222777986056601041997340964494370505976226630052451237999136134198485138993337651212754376747606507249328118340496489649523725588783132884792441575913647416456903143255840301035925850969403903097105144869820899076143900642022701319530751846144324872691169463473929513047539674800642581372241258901618722716279156263069509610735849068579949248774001565769396896032114779193254605538170620965203999496410624610188150873874993863480460465562104155555051784680613852180597991194131868012402393744334706093041329846932392228336055276404529946227533293583755815332538879518393835744804530624842478246510687397229615606743179824665715217461157514759258944996850608584913995564947839732442551515725339639040663149898036509811460224321584962485549961156600915710463396140350856053143503995181010271931035595493096666628229664721869995775850288372763222956889342187462968737335124841837703178319747590383521356097731237003991869432221204639674358260946784634039023004996175949714420269279268480656769093118514994236364863367929570134886428216917176916830736268692152529143703004587786430338652707851739642356455100574020499691194950276693480137571953310264659415447084181144946179287757567578685941084610239130007891097541059698552747499994784069403709781370468767947213442462690499779675685580354006389388603259350238448766954534201959229017174823084138533225665257320210692076407126140397942808225547267868060057592427491619339353905539988184974507075650360753499533190916747422313157067233647739234479320695807095168772004246447423867033590057512621292963345850307243253133840923103920078795876132012281568548619913811543676643760830564701228815976327826868998613949279468979633231433283641860371003369583738476822871338763760953576215788754769747092016206265594000892869518574633366095914637731908290117847850023135960972172456645578845596360693254739265712157279748449155004556103802924892237171511786457730833387391595424444738403437570537675496141696834738289534777066252529120795581551256370989637709997767926209240128460686581991067176208761262482106865846876698943112611924918876403081998166669284802326519303035589666782895560186713786825854277186952337608155777998171742267161707781131423427435062096425752241532803391296960082437986340476684366551594805785340960350245953692471522214223103886810572820415098369578729811169259126637990060410562057132804234821973384603476609583156857067087825911322723870815289096778837988884139233014307018883218216579375756558623288575945713504108128822190218219324877089493061206927499222501156113360600649414026420068335304407642556779532432780722340066856207825753580149995797099541823973319732365239449138092624924171658068269091781545608445011409397865881462794149838279975364225461980566860956507442790401261384740913252864985943490160901428764695773738320013373398361032442563176488167277325317433338800290619733086503705384318785724380622796989597568304686976614261466636217092082419108565952147693843762972778293421573024372490172229932958631803260052785067659822445389142012845381110110437906511205752738848453715970479601154701984497308757070846746127203555614679079162304767190852792280134668003618414254926451844146137758420509351644172276958877184331470278210606269256345563332024667127002569653824853216602471182991673793840458003395090328916597894749631659385384668753844892324250614062853875667754486954063260760755618976390870381211914177918249722459115039236041931017487448582581712387891837495040281121178463997060530703200935951625437058432868457804089500687719717419003575861303586994738289924029303169119713524105722610293003498620416488482092689274169189750918827889597693373898272152505452906026507276001156414969505567351158233205561588810695485163367127605723970922625954504179637215058680989554363965157126019623119603810283757411330373052760218316234353551259618083689137368848151463609144988797289444209850577068167898514337345458270422243403072101088763895350801049748280408259350837663413921927137909362502869449250272862906299427899112992302874754492043275481958704504963609917038292449088418098988578396170725594144940352543823684215946506793709261264527447908192495534192831021615452194065526587069202693153856421956985809826732864948738435519368626813796960186907044379539274643903808763828229375938640261856672223319696297469088308497787254315065775811436465903942074069568908385175158504592639197082796812514349460858596229511896061888432492690456892887775777151478454002703511893529891947454183112587121634422100027067755799393293948978366067832408722741917334130393661195584473140397564695592957328955123595484816582517531525636964234436821528701599191514491195611085299752684386667237361781151855691131762153872075541100224343651383278808020241581231057603666751508810847634373768700042894072427214308672427288907664450468537059556022784991666585178633552082621767474582875370691313223701565826481736052614510521210262039595009078092142457348831131097916493197343571233725440571769977105860383698613627602987036346057402129349107481778790898073940966429014014784482425369245839643424058450471607202157148943720476450880877326007253851541263123501962312053492153779356979616433881956914184095556288238080085423845278852526347848407963289086583266744772435034876009664109515517404481749719653906694920658366059830915370632693716333843266725275960340373547440961408947394412630916603464106531362504627358248797160898853761119017222481159342690377708050431805221285639098706344083206525674285680178989937485841270432201145177594082563689873833185255284567491143424358738721418388393211156476578517087063892293478798046904736661582783649123076541229803484134415607070624120426181586279821091205484173954438244579456717002960833012633528222874580039277174684513593163572906436043140040422127635888760805520560852340877081303269389237636165633262339953833745147254287654316200817402919393871451908074612890719988983579247200632606057849085863579208891217052218865817356086183204590299786452634037987775331865087628478282856464283639318440160554890419976669664104400189293077894975280198840628888151367044882279882480714665182493270598439572908684496292734070114363940268304817665403962688848897982005920856493708906922616795349440723449180456916731291019145507538340758954176216176728965454013954353114483266950322928253820949530453096652128511908715337257648789527609880341544220395835218927566834916952733588197327787777157664224728551275050727831321780283188571814987102995729901503175205949002327774683991501469655183444553505598357529340436214798803124937155716876962592619638150707136201697102965804058064956063023327982305410389578773076413140005434394402803576046293526337813601825751105457103156723056028631537125772654189639824373532855686394337833815914160496226933434999358685319124874400605812539686111462381445689688296302060283652214828844356570753078821637557022194242594093834705249428291706496294890587281294435050391985597720780405552843356303667700226219319140181780960445796811619663869591376875388652634935679669004178042689449132830729986499230300298311225299724891822619624924939507344384859609952749314359630002625176733621534284020699608913666913051077978308580264077369151500614947892523933021203208261914958226073778693777228907626461727500513182607105323477785751582694860778109326858049115378385220682284303784132341921959952185325055150147866361840268123621907472574141391560649845644042268695336380724249293562323719945642563910226814351754367362954137628644394824497397871497342829763689414329281707709449447517092344712137678681828237139864072445782657973140148491262918000745312360610672825847814445541233636434601028279902054027254463991022059537511762740318272423156617470657733677419557128074315690259681530229054127576821856854069475591468277344711340090495850112570018663977980980250662200413627851851279067535128521351674637836477327621415017099054713187277865247701691978871730418032368656272252074881486067804207909264988652154035337373139329923268854413181682228305567598630077707061785537000402755227392733707873014907978782191851797746432242037006348392982788967817023060117644142751412362520596846961920414166328015354767833243587834242860903307247350398934003707631521987028707905951378126412892158505585186236007549592224462502055323887853853495262986086856241487178649560850607117646803996047356837281638307420781321636384595353183347580179176114761176199888584214459664408356615965991806630303011898146067485490182029537941008581364048569212767068544119075653318477966949975495093245409553771733443012927107956049073574431308226539638416801841660749268644144485580817563798182567942189794513741761651161109295714912447783679826776681974080742416241736003655056476304634207118001059741501359926396771721370633378180908370900013577564151020921936047588277574436861258877332778820565253228179070077604561671482921460333316850337192640129089940013589037538139221283132725925657045426027780192727999010644856958131385183693293957825508179948342805420592602046718295111332542978276496847968724321288935185696055633698162754106245261019715653246124954360976950218591960264688362239098929201987537909473852284945826921741924030003742440489302045880452373002411413680894375155787523364626604618971011592279613261217910201012496343146753190553100289982577201657108163486542637607092783864325677564198397472974065041441662553997962469666065304791055304071930968267088981373321668964048675279317507181404280798094251196537913189479411644449573402779387503989680173314995835348358683541982089542282485190306507011531551172748024792934330622287459386994038781524362622973208298763188392363883041431289798721181079427649074897752476617190663525263465036193107437048104628924624843770072680065778755577815150497880479993450004793053435937409322407031823793475817152483408572876388651639741981825087174583006870830131616177554881913064975634396709820857057873321061087469932594212669847735697489594133886288619340902333237436794890304298599355222486769994070652895175201444993287412384527049472104244198668505156539097624949448412695858345997947171550209231610383766821040851662869294244049989643892319928975807043318122023086486912763868264132641728449587115459235219755728926852916972929294456829909028133411567254425108326880028541052854706053230623421495341231906321372657103036813542127480684776929108605598638400222529964565763616833366097961370638219239311433713178502337761587471412872098674151722302358598124672612492105678385116067133910268162314094379225968183121647421230029105039656111960334170380709894161975599209888967270539835038290190952874410333126458384081401924191584300718297974830285612690184761633896204977360882257045848956147047312323598772469077544709590293458030904575602356040824255558355104043902496652745942727025692933253761220092529296065555536406260551098589595595602030322185414888360239857888838117875263778716190005149167566633683791295787397823912421210964198912796918690292070356790788604992694949458478659794600304057078602109920265401157547123419854049986467942695066608043494970564403677393489164810969277701487868661407063550569207085571580400777870757052119957827570465107594637526055410075581222449646511936390327372967006132766405310631184610095700330078254273417871605310109216934759058812978516046152790267121842632639188259802032392381348379373106452023583867876661330330067567783144955438891741644084445652024571105088273319834094410801726900254263624123933811472221842878187259184531347174083371058714569673777584572621703433129630728815255860214861138479189966293394094498617577979954875878823486307920668910128528044386123780382459929275904703240638980828069761898898266463614531886879087761768364462447552887121106449553704928540129447540036106197522425631194864903995437645532069436554158454854785459227823357799121722849050132058652732069775403258095984937796238114213665654651480794782803221798658944942625011873622123209200059722642256733009044719618013691803140840383821882685316659081242401517850692902150805674954295949332976248979479022568041660293996961098794399783357070320326655753291941542253467383958110130569949838470544522855049184992034817491568024614155275608421909490596582043547843989020422722969336610115545988836861801050115387128893598800178560146967053705992673725336186307429507755788639084026154914057049032812988533019151138531208829940974135868437342870233449139483649672204766624724420569770632657647198793271618840353249333948955410281648918526116832344906484602371336656052713783236014766952497654879459371079743113428918302766333515371102779892647786765081331334842941354102275103323631806256042401542876019310966197138955127963019920431235552166943291639019043873044632954205496358215259696205332435482812485309030549086635945062208668762111373350683032812651803397352920854801377647902874252362573580113718869431487013138908167335048044111553965420418069417953931235524315041949783787915543299233525069091286731607216620040059106942281829832381435444298324885445953307892584890227479760891529437000667192203520934459081282424618369987118181957559576327368979922068998944392967982894838700208846224372662162684022393492369490968948997034931621368562976717005941349828964370564473094044049205609458032550074156829971915654190321582759820531896026892861008734932519484670749301254984556613742907253049364921578618936034782299835635693415225570192202298037297380370882336704306176437110573487395322372538750447255075286646751155958533823792946102679129884944203316521207053104949240408293996823897709317860873868634771230177973891887330285111395929990552084201036841403906498118666494070875043772243235033799859127341418613177504661329043357867724215462371244693871855936277892030199157416872764343820053984927297763390589554812645188554625324976715255076858825565331484862078733979426280396989193161989118120007998473387898230199139658749900420981052815934742165101861067809386096197679003264591201477442213782117006574729052506952151968264098619371397439479660340854552428829101163541427120850687390396781408753468321072354387640521042942564679392083212494216409794725127156000616398673374660856725644832472023271593421297400640998147986722668168342382880884585650410074015592480900794142612147900169415922704850744118659905973814235639031224741800874292318751816857781147446449877344213372697719922732767326085033994245552959531901600176547058897857411174103031452894118841084836530931349033198503694378905858139563856963104866794165457057001889890129931679526693916851778676444649814498382820979591934833981825334477450778034848279685036053468497345286870856643036362552238731384101995633668584726307330949000354691602180680975673648295623264724237143675731546302131700040354358773511087445881661821591389885416590153659881603963467268904857485510266786430838777302175353864848345507600007700897366749693953369022657776227790291783083290791631576460642158300418883231044550907712281542234708476987873006042237617324193224944830016007813353771513112222075376427858300191327105937962602405644717981323301949431181109859639527788100092571527377520247851146408462151338901856298521427912786218181897716548566077918124032268893744223740043233761694923763144272230856946194941293134452117933959154091741619240238480470057461868604952015517615967127201157493231584114841586778893129468990146668531294020841385229906618257912983796048867169457047459373779575975650614567982869988991864536932469297897494383103025862620255282642945865879360460752434748750893697304344209727475550028574614817515452294701752732870423634620399594965259772757603832081789732076428124770495142318259263622830218705325969994257912513925749813093721304654847204138705628653861958583313473694328791425047824637693710551732848100820406975688567530748553498974297882530005442854326506509326164263764043458592102791054758985947404980013012008435919661850942083498654709735005600471850387975307964756556018150310719389482501670344751350889976251442487466422933300979253499292561756633237418357020056369736672162072150753962754975633437729256090365248783263278284091386507232863380409221114308952229336609068763673262889842772600952139570217940606097903910080643993441018460645846058611783750385658797869099391808255778486716890546771993084042609906338829283725882437328963722043088388223600941268129954448434286934344335069677988702378079961974440940753760384855261739096760620230725310742336839749477564900055106569260504329647098765744725469986816194052409115610019104547521003940698173173398779252549242896513225760811867635249707578117096028751842500925485380829895089947075748620450283444815871149299031681899126722006760005918668205015203203037287799155734459358417011699947355471972009108898684545595506077637241191410845771743630410909982634618784196289061185304087267597961045358459236688872716785292155356202582242518635782389651593816380568656326958147432511830675911135194573494128286444349521974754564259635232563405935651661424203361080391367545859786081585835317605136793273565599411524208773055559582176950022566612946387021137445967571166608064727514965689493131867957024491008866878322592593490407746975714743026939026972170634741331133699543789569853465564949516207575160765140035656928263660487398268209591478581108394249497903315667803297618545603294015127248808873115816727121644804361112431166863747299723766536554627223100865849579292382069534503458623162660929152912355144139927615988873633028354225846984130475851812663545096804057896555567657640297744975295611623080026475883974737784056632984164104062614267477770770935792401679469158007119532122078776411103281834819976441761506074703650763455741129001775508323128539043358711683267253955538540480825470144220534584031922632452610011062560607961660775430326758257821543817421523111388364655893936986745815888283748931232023352161919999849061540962490600173439412364575992389324282455161779302888803791950573512690085592123373089130045172107033820518645374948091486202481335718077365485416295080067219286499818103741817550009715482012673107926010904071274647090591593811467475286105803366360623349411396691126182829619971826414695650561914044002569255567073380340712982719899115289758401857484194103194876510474584605406352027038988757090384735195825374924962378518693347244146777332353587934203013758784355037285816494032496114992496504115935213678068825232221163204351545593844890293165061156054375410155861283321389960572250814046777420617210872063961297580266904795285647392960445439441568774793847389896341070648261952405357180139173868615342103892994115609035312433587220022032133027556049927421963665946358632694926269309897930444130551298904180824976413509150438757876384734744878428170687975835434449659078522939726078160147796429938188556431658800686050603551014750874447163006258965558515825982547480963087644467214975440537090771847428056387818351598095714900460872890303841219259114224957683756785121001177163274000417271002066584522257289145172839777449689845678257603972938861628048887505462362324230522881901320362113512163600002966774895596374257212343553245642886297526753197509285966940390626378445280075167323580705804124692265486176802757138837306916626675034398832040725121681257394146942950980114339125530752889277544243360850442970310025645982514983742459576351660230543667566023828244094930298540584558247095881098933864405460644898661939981273027362659156256999280287219597702672844461429859588648378879721786475770798520954444306593156235494033952435586567081711931213952718219661274663321675831291271945973435826032335457488913479425202545172459371130131785991602746470593724465950847987692177241959263423791945162584758432293259045444328265388430706195064908333015163038020563803946245474795272123880682791259560000512229110858062753990978664306921423636535221313525936888552189560018836338453177598645065333556428939316428128827496928380974293544250099246093277235129535204960018691558087856298627377860146914502549816298086121066519954422439332151781014321886948504517797732590316274142382230229861256932958219560015210912520582069715684990904644211519878331530909313505594099148745947662667873176668983202600654785914701726917291771373232335059212856864259194730001063038410910372189283746573508447872383907034508032640225965117176357186551708900134813084531603230120083249446953212728193047755090243413602780684585880664562247590356774621974650605377919614975492850812391781234974556580069235151296685641413412963619224093743972105689213383623783369061467368667692210847699125819843605686237225175772326285418894007019429377302213484990283540627292634421553847543185044126775396584296964525326229770669489588980843879941245699053517157768197852350929553452701125389319898563049930923677290545034636792364331034610436454759106371634716192863738792833080931466841279873871423977857718099276737793866820250813203276163052667813322531635093907456757088606403353604349412474084808597677399108610346589768907461514380099248264066345584783989703433584690487460561864563165082240309829530920484663953245567429328798644118829317358036090722654858739877718500576056768875932486251810666836817528022821229677743107229118204102657895439674146796626218433620574022486983472590844488806923155018532233714784966739075188451800160047489745452515221574997301086938323588863368180752555627543429955800470215019955131317961445547436710814169059529749242678115404262593689156472764698622748014002762509354128831305732565997741532586513114037314997851254158954492570801298753005702572890426158706330965517925671394796387397260701607230952751142982767505211751625014616610313166179009599986156548267624534788853307579331648461695861012293275734381425100109733588108226687224258578167525667999434109455224001230947518945102703758630804256445083274748362681822611131769625845486281613673848035453460168829952849742087505716815482318809143950423132504566663456150051191938804751826655405411982401097824653871022893090680984254396277405071287743852818100440897171130199171350854497613052327450259961646246722923875233375285462565938347301504500030733660317096953172292181512487029404263292234467476168461413575637370958574312601162158049722653383339494514320586223937052181019083654050969264404214055285788974115306001937262751008853873827312084213742895937539451505337801544882708405491503981187202191503908835583649938126640053916816849066988378794185331589368967858821661282133619996414676223957122345232369356654535847779403553114264463266398877458945580950031487500203566902464024940249376308083202655439119804473032140307037418560046851894362026095848064773847202168633172906295737638588753711411986111609065728816948506448054808723063843305549658483061707396949727627744595983402715626746981251297448197104097479219656105697808337888577557536266511793171386817369996896379168292682706054086457498331238493402490251605954671175687012448708426060994820680970587866922756716497847787269415906104912955559127281601095386338190020420154211268201698720749473140369715560139226588552015344952232971973152128920491550759741106904010018617589380429718297366959848072395337460389518263368929844052831169484666745409877490577834287846482052375295859574494786048719251228421359778931546245012751305768524173715123693474002870766416429300980553528131416549871891751220053971669063487052236937780313532022724536863688269845953955538978165746545740111910882111618665988607136811475559924804981365891985424209998724359719950007979723424532754492678385611205637449634053759545422256132763337977239634542744303669925900575681094661657457849825809902713913749204397889099183210467919736003730749100822340162963090446590796077543760611218150155925775617172274322331574013487711688460658881903982046407724307003459660784112759071481615213577651674201731099289635808494757425129918609813594188668741680791076460139892271042070572799900285905094993588866675094238296345706173220136977167669185279429194955743062240247694492389872975545334763693039476735938901762075378392836274085828383972698855574154466077160444262551907999802238719341744056516518359864685918338689954222472857302666614316543226389356453596008000004521081200752275648128286337599581623026247849672376569960911039726233132362658529514740424572478010360046221329251877871164613214054544353227365717846372619276371878159518791632257601436038938761480105668675976563452079639206811890481563150536253808074814197180444888359439425714360675989913352922151741394131911873007979390866837802380560563708453535870633754365898994863318862074428002060651037945261267029600862644512965890393834360359233236976812576737303802035769961512826991804710674717688884491085070783854958550824949205659938688074427063611765339781074107735324715938046753127235628350928001123473921314458537802389184837093578188760724417887364541652064071115108176396373821774111245057498722469571581014112075803971802792896258988880540220366007164099994594499618680620562409322785232115112515149586778510026459821272410675739292744623179571147167107893915851001786126425195588265066672135542805591638941049434118136711726570436307037510535107574640827936690916209548410704605459060474965943854874848885947270503842998855588549097838977113623572387873854206110897348999767462117222579080493045294715283275311664728793918693416817287902730298556621253643859888611425322539939883811964329461451628608922746614540380029305735592411515783314140555138357656884328949716371442605689915159875805645772333474588401734946924178274920222270440214484510578482609244130648437012785181893885090058660147692984027248010914698145965736313065260862541806143212479361345133958082552361028530074553325463580911236614144801943607637798616567304354845239987157685279114602171827304402717109800135663256672086909814950895970996744784319550525294753874500538916721309856672836487733649631808395301581133236956369152745668115983008480276512931407572177975806906409791435707895876278204519269547124895612062194780103278997160491366360146280370700717662758431426203938075705963584118706029568501237995022459063511138786397531806454917674061730396110877689667318134283860270142659375962906732990001316428604225967254024538094238773592567814185819378233055332144557490621661742074184543070104675828273353394262807205838405841498924158021939693175755229062811553375071298945223429695428119371070223915675136474539327167842637612715791212911882406361946435328789624846424054170192332927407497534011615740786589750509827977734417219418946295796780284017187559812551797537580926990078001862950234925128396165956782186414029864083655390593867927715925615720081597015425860094526120285377997592450005422708055291667292477874143968992411167138126229182323229472657796278453270686949117106505945289659583187269124870213317526301699597937465661040581055788959437713402768985760283228102437064702097918674587320123135897695717887552667983332534459286361946286645876041092938280315145145918772550872493035300559693020116010155236706815555981444753396555799789022796814341123697872332436753581979340302602592354945212502091255442644123741612397411807635296357275749896400080179586630500784598018456620369221302031234161554451541788651536042730944947697935926395431868067154749225310503359826772209165957713828275253486639880359507361841542283425748964566770597394095056604370091410803883649551314863947746503036383748702262936413185167614837857168945434724348309140664336105116090772253486989082483433888129269570088375195265789885533536618029100905164912264587066914440580355245110428874792274840089961491915848836829902401347537747049436254659464588731554277290828951986077653146434025588012392082866476835192149168674098433703752222076590483611380686476294717194996527127124229576741209365396566041069688204147300530987853498830154119157612180363543798750762900883182525192933220897446597488142912824401708513447714229579901240941166552965114059717507387123416777606500521936748197538211983114677114513565881541077713894265633546757085474997952249308106350950565065286583456432545736816962935204502292083780019547046624571996280063607922347090412991682878748542062470789930110058613479177758265824684244641704653926885979672701925001937918347892476329136933045133955509423266716559697596972496203030938121367585333768826234082787695334443906610770005525552208357975135034587145683250955706940226574625425136021067320281338942280285838463238342812327358138744644597843413213191191244995083347596010235686724209894405979279559628630610613258667662507714123046665913699464206160525700315808225257645149689896613918650196670845040460479340872425270038959673419458033728972592272452864284754491704252502118650335636559067689974671317526127325037027167913531188725393299779382386713576168853995060192677783363378578530607256209599321261109066066512329459584736428233041257158686905665217996575028701082527142047064154008294288897589380068554277317901508935060526287682516917313690553435762707296156708982843782060018803249573735633735151837092022444654238428651526339600448864045699363043874900446427965062595011301612858943285261922034219475113400307424900795319233846090738861481598879696055221083734321683279326776588746143271349980497922836312136186615491191698615682846295473950221572550524899538994179919236285330978433542011217384925271404934538546430240918108124444182261223861590310659457406878524832296837039561518397580250155007345426227738267202066408925166140132009180298697517278904889578131824021881326883630596975649436274436646819972433436689509794906009085942437853151194995253904879783385862092532002142025446200193676890501015873652172954683449215662433020500966681117626394087967696388199143048467534141215256204838167948679725403738055192297010690522139296819000675422735104086718663061744252473561746390433121182572249812945024897498152133633484561495002219396052744858702867480860170783524250238517768885598833187602695280828494061655971152356805329330751053067668130387070285523355137529412982677177063215414482335595088675128252474848893471527288914659596609441888234114790285832441282269871065630347416279265634955744149201569550349037218121063163356789827608192493944545914455274026005860986112531818770514924485797199482449815753496593584617156751347065376998027092216295785860294205645752031865530493547455898555066043744541509963382134065932418252448556726141437964429980035141339406951693709429736246118751426962391426343395653579265575535534135368518162151431338393110761210356444995526279005003873645510683337656347933563152360831314247931862064348020782563612919528413045115464644979801420538382784143943337533905175186443015526538036974551178063440392306277034290983735894445116052648542147907523584614144861097188665303843438009964724779264185200250195166683429052985143262959765971171061891359125040701203079661224990590752712263677359898971401718884898480308243472809973322266137169025965943378998162779515126090260107680878423397227527151193761731503396597381453153895197257078807314994958506097121553633518875081689821587222808172776222558368648637837889919248851067604171514712269171233269319083932611869663497732008828136548969341926621147588113808537444110234577654338306096325208755023039365505618566748727479883481776759715975904325787324232991942791218406167556799375439707883007622195671760797251765665397290434216207479612573352270664864623604256782204204956686805765756575299816953268674733585327242638053114271175864542853873408165162044528620524093496638286148489775496401082084377496440729980924698964234118987772791198572541851131291508231502350554567669788591552891483067527480924172390853882507559803513265547658403084930891969828443719404965699748959635519074942075490231907727333129036084423740819423205654740960210284354887348250473249448173487635250641465106510569693930876677744868168359612787395658575819320732488597488091322939608634087965804617232624139139161125654763938459251322501770912499532254443508958606505564768720014665197284851061428564135353539615976321703595110564482017767348143621800673320535670165570485458421435183166845944700181493016816454238647016994425633206004398969387859894657811187435685508663648163174381117268079797351345234374673052316223449723308663604292016143623868038610792839208574333008924853290985842095793628588484223509978231779464029526719157569348291164584617720418834525610244625326786333011420212283622155626286340242357081469090892436086171360027167426533345083876004761492079168124032116491198918859266738018423170194297362935828475804445709022361729123832600591047533661325738059672193430016455830434857446497759196576020670652443555743285882108324239548855519702837220561348719819493186365836647155068741288569654954934582226604394997335843122073143609438744599406744327749126557673214930325314248862403559269579155489729317239487788137084719904233657103911907610049556787936077500006684004910894922068005886405274275192729520261794717053352175766192161464085654030200995941471740839911642130040608168087215325108375297622181787667861465839425167874500925002976312561218083736181249389147982180834892114773428954298067095486775033075471319723001949029619759873165886731986197378040559483313247144864290495312067646287290779966974582732875911416459556592883569005857238514045453721449854007581830346370805050375246704176289754426482564469186274292375162168069793529905339210994455432886649509966536103500731761708642219229424326245500598219119661422640532284382124166017796677648251683405533123055000367988237967364012141975729383532393736377418956639139133679169345330828698030063093620702055842314802483203066734363637265997490940173446237937024840998000888593627207245690291789556933877068991647023180637126810353102774104759728656593720600956933769529832443509496821224948972535063024953960005088341565213767201830913523756392235181261354347673425534294679858109227830037593640739584557997648161557195121301806604509653292966970510074945741437269818290006632688716283818454318427156816533490347930720416703945783564022287412983708015311882352765763232295871804148147249913836599034093631074372198703089489801913081836945701610299566179345094812391460479170522243312620274549977942174998136696937920046100506669216171286631595775704687420115035674973073356520516891010574450167553247900864052203483606912933813956202520481667755537813298507608083952331897053822339021691565078919311403105911607637007343506910155080208791881647215132216445161876647896768269572288737628117942817190200492465815729483988236487353506797616977810255964295260306144439715337043536186834677966854826598864562083801529928622612769284939127613769186270819509121481855121042817438239783620174909665724116147479607164291855972573973027208696687727326587794723553736845130355628110422331949296079386926056500479326698853678264738797632348857134055180061458270453751127004103290651559082842982133262954674188233422658975730687319199012213898096854599255304652999034615985671801136012664468822101074492748489845600456985588289201179175741244289007054530301401120965033843163881742628241008268117693571071385206686692203527994725927754052010997551273989386437594839685739456832187377362244924225455841724603074379577346732584490805294549173945676132321084393397675080035133333419382444982132473587740346576338062434722407968661493076479039677996689846973549171260569007592933307884728379207106459049779379000451011700365365574714632655253114410297042402957210567095840112821770870621349560875326099110789925004916492463822470758748979857889090323984433393502231765877041209710079860484796100394615851926057033990034819017260421807966220544852177299476254786165079534566225451159638954497412909485816902072900708545325676527345859615180899843247237782449209440563160258096008103409246131187748645109391530812395403377984037203879535704437701460762541083239032279741314347194178861195147496850729328525083962128618378980782603364953074479338291716451533776707795122265577031942040584710002868471060420506636195801731835746249406471176989482341701068085417350702673253940149812968455841471296271060798567018241126150984583339640293676429312993940539549256243521185526143688056653762174819011185233071326647816631372122222439340025672326664261936086602668893918568280478279973070106428288958564074096627003987895911463495614753090834440148113981253087052096128768381979832140090146776881497580928239416966773093323584493539515047098428033802354119903774160837686926128073838574036935306547075171938600624048566779656194606989025022463415362160338385877482793082455567810268880137194703400166840839865705853515018603799551600050336599108957203863022217323878717455674453625232305358787078258241395942452369064652279709833361361315492034854373161929925785198361405822366548303061239751193163155096559472108157771414515538734186219452861688149167837902136842228734183264680127572165784661022148057156853989003250208480574807508953763498531822425214607899998869614409401128009705153015184426711061610429563265405497807901041579341265347579928123596652817421840062023726313732774241269717073832731737806621652966660265589859617214794333098951520481773237148796863163427493335676676567581520316286886771993025739851107330412758406253879058197008298061480321638981353499455853895646070661617820360577569947736195786451814787970105099041253049412099560964250233534114520381324749741323750879194124836845458558453065423549709018623302509767758001960430520243661410378703309589396311745185733479931519450570355187990362715919714729124586423722844329270420064020836366165943555744768774136702045270428190698273875961884292337833044946087682940310461974178376361557163894132986233761189502191512179549965898871255167665616360614174328218444274907091515242162965551906869763729959074907004790434157631221614689649667829299764501884975917074376148619719230629623111356893259342784120843972332731576988286683501148565752704792642087083044920638435079074219388963752284690496834196989894933613294810290703266593662513205499482952747034873073768743347588753534689651005144769066015248794550473746964856054268275680669915491524443803629447645513210003700981181005558134167379997267096093951798075971017260348407618725128762919261127955488392298609686230294556288668644455096807738659394962178849993736391534688988164652905298053993500852056719359035818728212822527289269980251342010345394878216508834643717998867441731575944262447795675810378829238028143091590701096298810396912593157196009320336544345736960834040178763252824035616184560252283347220561368095365477400756077905168385547619906900303897232263791838485535292746601067694862510509130905324714597064525444884423956514324366778232267620262128377774173415841926592742939727240088574817142627995850416566692934668537130672555656546002387117950510331973547513642831714304442026663514043111183094919993773448717919674487510601677121804109797833945764951151689749936613472841302371745757408402702575033422757552131163282844018440465567092541381705079632122064901834525591926968988147936491394260589354343111865506906750406414609332081264612331659866333953561494754794928452194602667918242966783703090504313156590483470631491716936111947515507489951125099685450353681859735497169041260016924046719235689805893323832706040935351466010927032938223074017189294176451089237866766082906819281317311863516110824044290338628790966851546235203870925910246516213733004606189022995480525546462654775092679351473055917866018262470955139022675779871812197842688735435424668989647494796281049388282910880846238708144098455641178124949817780048415272917022973059336034080568374467037150470654566185804379880903866958963427239058648759267392460108490993168146375593246717620591174627470341421836254684527034729016294698555857424855587385020041952355390122627651180479954560515966469334275365869587708348752480292698688232030510953784357517301603170351659270523122071510484278098181511471498962556956036977571869712671504459637422574302672940025032492651479909140935767639062733997376797769309920974534689867130895573627912793732106999269497085825098669884911013843714598904629459330818568197948707840813262006216908415771319814575358039046928901350139934931575656292725794460155667049092049028799796840577476045802316731015868249847127261265240610469639375743984629761106811028827589374621965306147032318841260171379240657572841813709662592570115965256427548074817657164892665835109212528168945586898359468739449001154694401203028594717105809780921902861029286561507591861014898844612786141423962412096294603050141208310659388952569498058314776384578873428429918662827521799844234756772902371299433702388573567010671005370515528910779226479809424504233812718411476540702418411074409596462185756612712293065676117616958275507243783685346979539256838161837144598995531417460979766806575340941479187015179566934617765009613582414938604814545045238108385249607748401918077235170757614568206030452049106918448114848042162882333771692246508356835124390733170781602778179369433472844412587739847828152577630456223833650957959323898855012318911014491393105260214508069486788199820830964236843960979816692582388253261028275781927190580329991465036743953254706764076262132089017550641489906434719518579087188420068143592417137370921928024222780172143955314093813093200727844552390947322075072406246478901288530849809950242510362101663222962275449805175710028528602123174849983018271378672518776283567083944326810956797062493749884292517910456447522268710518188002574610016102170870283379167770871443184454070347972579770946226526877824099202065919818071049523000826469436797978898277805773657543463149965558694771069309582759709016124441272337503623395553382973418741894176527449324768316910956887410870015437503160941023573493728618224844012913787899339946011903399471169257280852300180590427067722827674331387002767110199142694657424635492071471982124644861965154101875140351592868544849859699493457228042686408945098309382990174671952723045331120901389971433910692412538673728026676917493562704827203832824549917183881090228314562694025909547906051309561924113970930227182417937102797422260572154370151142749067113544164735468657257185808746507633041798621810669569800933169698726555336441545037242981162803458484652452348136573775155983859756657612771463283587541970011860297653620822250154837746200264227859432429388677532542138152668215038253108526124631456793563717688945028931719895076077860580413826078561393909685244757674330179827921954389495608145333557146211712806601708520043255235861774896156627572582835267036615125459508479113919071412988802495012127909504299061061111725825733967711611528726936279943644660818279381943466054786140526216132973975338955299946648265375981009491654265069395554088587760656258002101920380741149429955479902735200450606727848935983182484881034020813280624168921214780812692435663571791932362467539349701152221032094143879958245738180955414612619832065050365988955810259979372743246907663740331525524615366154766379283874220109281209479471547016312268930106522459576206984862038739625615008844243038864917759355785904070766740053702518081171450713108751211082067920489964490544321570998014791457697205304468622085066288997118144179512424013772380583270684798544976235163229873047437133207019045598002080833907418148510723366308613995982910980459723208999292059407953519681276628558451775286981241888463410569443119070458600064529904447573776547365507537099849398025225407887255676062366075892009236612866806802415876318058913698850623933308263491306971408683399038768117177625556428975021996247026997522241985846096636949483658115109969029933776034300552054119314432313801678311643360797981725812722477519401163142717096792271612697356839218253621889194306013623412767963830401425160159744542868677677976983760901939531261240425229460308504853312920682384196308090849083598941425673157647600794644306823284500838592750484427007614863534617641340494536966152277282774779337034997135320710143323622119685961810044750730952277313062605221222700163211748178905982549940968955090313075288364004136550334310067890449309991952311292453409399784577908811386011646193692344733686378372075016617502895330965404410291345906573836139838392777425909883025129430539552004815531848442746868580786187397573514094391683237196696653960651935293544578914063802340846899701233241829050723666085742890111187328388278732335281699265274461336480685414008325272399777532338120734189884584813150970582503720304142579189709808196790079043186525361739496037009790104866612024837329011062908029151271097282154301785206616198790326455726019707562832981348389583888568075693112403709381000898142192875282609584496897017509441140599606919567499948367639645833351947428293965294400794275175107784567366217477711950754711464841372482950540716536287002630573862158956508954446916947626775715300839628402199679097549649907746804703805581088673421874313811328276122929487942297482379247887710515226101868625026717795081610806141949477633543760781045769624324771371918825305186559083021873082553860554353339820960720883420432978657462014280648863383754259687474014209901523817035125849793731203231648908936973297124196579057762976296170823184480272959703598503009713019687142307289172084394023010571395588065071975448770718867142961727472759992428336520494150531579626067500551795615372047598280176028657028000092526805573880148266733975305587609636895553845752536578180319546244821859105555880195400485997991222315320050522636233348837745226734118673665651044189104753841095508706665968706581999785809255543159785424938775510121153082013649592188923984656112475248059104786098383768982609157323078277864142587683060309553505907099400734412179566853553196704243717631413839105214634974958769868763793802662955753749438739406400487665791804275647584971865372862827513918520447150139876592423168862749696273951292860602639968067666972410047989818983526109215832530560277007704474781277915479873085262593047113915197777979026430958131471679796029664731737797027468747971430344372582396525499110320170173387413715452281311253514062439739491194856014450693263889774984876140662141829177954007435411468266281754496730023029582177836780238373414499841628841678191552419612304065972958863242923447999806968620096828120603362436662956898247094468192226136890978486884982941098664279562998649552451376585385415407048325146798703690091556793042630960060539408514268253914527294102217085418477562677145368143525557816319879998960993190406381751103982397756956951330806406426142174339024087531774679581770272166994466563653954213341625217608541471284831929211663155877236245941741878716571000649160942964714739085513898677680375845931412516609539692559399426034647754075289761073316999479950727328585875671195004365115085964732836929226002093566514151784902333336356407265527432340232785062927747452218408848016354878358379583261691427986546499962477138001286680652395626483713905282217915631810317810042016127596581809819083816283402720050831979307395173138885669533461797698269522149314377747898784398300395805744936580620759709207520324926152954346290167246008850188046014701067905484687073215427789526351958085547385428615474224396434207563240727252056541551511973618094055274281324585156592444571079003761952961320986052620103054290007357037897682576972491168000205964469207855594791271802911631541152800770155372863792851996008576397880839255229816704372102818822808454188265866571183007204864717429873201379267605793680718826902151297669841707578524792060527113626404469347022271813555917746494155790771604251430722789331871088521775101858440354313800812836692802013087666537534397642690397145834779901446148646600280389957566741779543066471589415054134480445380961030638692824585412138957060222852950806323648379972510922554542096012376306886526776454355878849313842607544716487172465508761767059523648419582516529416674604111657491909203732609182209271310541532121280342691715502915907441256275036402632795689166018508931649040059568336663645732475344329469780125492342458693800188433161082889071920073140417403954094107322969602415445083338126519579423198782721668839052347298185987558083207297291408467998972522405258424508030834824111362035664955943767079273248710279596919534090376984322172851446503124417478579399336620161885000438466995913715224189981975581797446991650022353701722159517265638014943806843224658185857872449821268883966667801616996340925541508659744890324578467024215546399892992224636142620250770516391283098102242147947603514004973386106233667514606196952893632253241525852527610626108606939379732530061225960861426448119342236275376311106895122507540105004456620710494087407507598052438180360795457578919636470662177972918614511555305698301401269441621439639299445015634206207256702391114806043671440963943180255492784174423413965644375751036394309813228711303488779110656720449677468964487156185827924196575635178833596164761900254615850057120621072853889415687347261541821716916422884037395333796858413957226176193299398045680198506054741845231034168819214366135105506444740585047628446996915496588906553128663337535290678459855028069974416688248989647967273939238003458755056987080552361553544521946767448804633312799876022861669014108822055614060204839930565010432941798246139659495010585254949304862995145811418365257438475299551220775988367913686851359414653212173425632845084706817237546943388881744013356971956454373261010367154900441480933921184542503304806117101530720722311632923085093567771500240521163137877936488531797042626569478687919961154999596717537848764719575501041268168369169521376610294401987266754919726032740476282350915323928599584040137267918896330064563959479325816656559487016395362705263316488793745763397470713881278131652023594112986052493331209455576089435605254758344028431964996097168210461470515762252235950422642675981218689755226954760930667051464616927806644883790239190484153498745685534220938364192756452660315926654586232830037407827023908006859798856146955612068331219773434069842244015423101467617093138829609473865634014066291698501392636422027518427799148524633212510511693999720565806194047455283171809383898794062776467294920238242887115443503104639380097319453509530021123010220562584248488309520347394713115661360588259611609166663721658562032244122303882075702657010066864913664371133395918750730062508376633596956383305130607694034306898691669206469345512669297193400610282376367572589172328849076829470259931010017364356251905710319494513020071854299721182848487935734741505592476979922481099074925697268466497838852112967365569186244857460737517886083580628043512279360400882590219374935983526550440848473002424620788640835162200120082476650807991711776246042801370844604908883513234246171372449075563732710913095342447439613862365440834923626546536227817292928444512882107361723705414153621937144397286963988692424021445418704919594193402179855884158729587308572355393346422549734604226501433328281512207015505372372560441159300966346389355325628877144256925019451608526042975915444265641670532175761824626820694606085254920390796368148707055687077537117942042567723567005214289535125131683049773653111189586827446936120960055122265538896450106296268188027701513429652840594617586740371943833305027713079330474894851899365829444073517902443096057040396106016037312422039996446128485394106082024068359029340251896998641117512907042467958164615238891823611774644939862579269651620995484212656933015010512193901098982289154140540541096742434434913297263859208793264119950129754126833012832236513617049290600135403638539425174546384655782702239855774782093187826014521645278440254431919720729430064964497239534299488486157827556486648250993970613994964621859529608400533854004593429115667083493310300088883279641320877524601330330869079528121844762147833783174719674309683134264580531648881914424826576265750374986393241803097852430303350037074447029982877219160025691636234483836860732869289172396845398848975078933028818601867927108965645757119789183207185966349940907460478433679092012718444832477577546522390716764909795865558384363605053989596702379990935899609091707535245549959449006276272593296817077530425515679601245371819312630667986509798444263348584682037148808747519738903747064331285507732617339701681675998756198386313441802960511039101469022474532296461634637461925057535832557301478243629022197177750940207840979195551549933531038454345652063076782996487952047417513334279087923666946389454278040899844258827944153892900467933830045400152333787452691219955789637212940148346663554980146326864339906270765100863483999184263692943178921847002829915443945477774572566018307642927739246904750127460172244330526956864892439017039495171059245009226961587010164084143310176214757745951734133691737642229570987743249923147415571985727818911898777025542718346980757400329043395256833054867032880716543419279127007976212935113166605343516008830476964990380036336399153208876375887170392967114681085778302692582919719842083084933432144648514739315888976508302304379054878132112870987747486380553438467200569996758310083360249125371967473641732550114019757312087277726080842520559769466822460112229915804465550318654050952880386689156791370592362011947963382787691522076830071702464623646729013483731112180764452090815217777263315787399161245874836971621681240013868972856725239818505026475837362331329269320097489959722745112903312315341570882246657062295748104882752027694475001221265808516560957703366869215906556390678922413751415035914359739111165959248448100873996692646877261087496208455101848525979744539566896410631755276791193564080452546317915659627852504326173728372740807446251347896859959550047517163086498736885601254977694574036411722709398603094052232586900261954406088143991006736547245528725561964946647765625296470404598353768147164472446039068894147764177309481579988904324856558938856833635986583912119372659834564647690535698099105364676909438320933055572698071835664037138445206129980687644010753070906387461300354899524214518120225350848896372885228063278882067410007557167545416490820825070292475391805090309405828414112849583700786289895908043983955018463982386692129097194573787646909758471414795893707922441514232700382155288287191486935247880935751079767369858534024036982525894754908380645547588224047849044889484564450294002647022548600776923766174851635079806406767215338864966324791446983987793851326737448535139737813606757381584718184993480078665710477760607022182619239525427146451857132291543038991095877440370009860551580539198513111669716926508846441682153150514686424844554078884184825120001341601775117713269838161066584191472758907723560097329149357601906943088432691672958124568050306826586813436816817617721246055878720282041013287241482461743894883605276752483011825392286345465878015381286034298419974115981862540489756547596048933973328568120206021467265523618866811955984689909639192678528213110111891220592978893168179718932033227458763075394819844014129211784112332608123553436255808521646899167308074685717680850823594822406831915356283852628189147223851064259735316364206389499313926946575577652634775121273493383891831830973141503435801911628064800009286865565055380288317703505632132084065564991715056181442284086565692298629720228588969540268008644634804452102901926272880075450485149549397776841934822354726300725647316147289697832500118897138986838145835728780303179343229373736927999473854207806155896177701314098860306444856617221812222502444394980892502693193611850526514816948847294588835350146705132553240869520492042931675763103868538921322368082394486175365934148715139669251837677647175000782945066606374617342994063864655560023395925297402498798619517962174871540174508169519077273884501677310566830235357888103950949674711079102888604735177460478173793237052119721901066414425075722742426847277252694135594682262426554447021212280188423636924929213745038765801325686218347083385464697076362715515545157589094600322350763464511881250026677390653304613689518834827254265316834605138733050647559863015609224200097426271325659837714381500685986060249616937645218242230996589281159157075587300315349307416749553800089952832807682270673863397886197504493130636338663812068359927855199173719103841594372915312499529275782397596686929442918707147383549509682383100086780037777929241360569972516111673547363355379241656508256795546138711857701171985847357459253446758170334275708466994044603650722115892750365617119650827699853176440809829567524957253507995863445549492438474019370451132772095941792830421179057901714019622057536392434039056284886590206545527368635692884317200119489568357974300467808142794471238742693155546604475411907415076080694740630570499039805341925335133886452356767302575760102470108950178570794403158394311524310057123193755748219702959137235807696321530099529481270397427913070330455928143793924999617116170533286586576653107309241821500452929929039732659451867134625512681981201156514589100804512601640705749763961526924035379189642987514781854788456487317166079792137812607615326664088530746649010388872272308208983993464679898686947505439670665895012440405536292668138282661766840543933266987718241554416202410662752475657703982679377625420414590330920737628749751975105479212748943431923468597216977740226638511346184244817993537073435843232183133215889351166839541385860793765715813361113127435306387735463284788437629467269903455097354858927438757344581549576350187325688709520196791260477083447795724319360818610542697835604678605119333486404315908332057138693144439381857372074581927122931868786770621505415855223073479634123584946274530181598487819483704375409041402949972104886088274726658589367278555230869986420182997701403868344785971695580154284421640389663983716066206715937355139098139477184808734181611108653365789863690735673532023629770580756762394847754650597505718679176554059204604613997923237541290067061683079360856650533579375448453604967786080880359123347035299442555239231345317846020280520531741224745160915176313674593012459370926995706714542112749228593891047498983745970094658247825516460214143433422696983296981377159331459956120476356676997922766636374020791563449410993164869062500123359218982370045951058782581304560839494026354110944014145497216772269376255643196836482025430435005835715285108237802950798798287230569374066976889302061429748718083433024364284713733346535961813048067576251902444936277413102665915545817824499603431444964007906080367797803564445500349399275287178309332093450440536777667671260647797830538292801135311322979749119496661697635826834072797169154450413552995254022152700888176980733007220005618011782001165355050514855609236499176354773968572590935358823384621466268157844754400106475924415416608834777435898779013509484928396423458139823332859318592368955419512661481420025328150595553212367178281167209553954195536067138675535873919405972619375670780933449721650087769448490492448170381082315283753769557025211518266091073085580932165066926545789539818544436969538303875385761186605458684245970922858074582941644037433603031277410721024730629115659565036225520007492306058140630351434283058687458431698984226606887123267018630559000296514508378543090013556746359401531017741355857977849502627151216950057933290901764468467212420182116136020866699429159121471069688054791247378136361247525909122753570948698761959015279508786767866945225996777384832460686972384471869205897585581227047306820810738932112942009131326690197564266641714531850489944193069430272298860848985376295324777058793278551488468841418482196070921773334583410604919533132324766382518262542127993269710111506863853465331692012999814682631553228852430658753119293062209836365734372099138747672716536766486887633732961497587279190478698841493404399253031624503284778692288864339630902809339274382683996129148874772687982521137299351059731722014591851156724697909670757072146043717654739677499865433087068436455988904447763665021989783136789957616495431082695756526248869611781863717325690528467372650424886813364610062628787745003840972467425032422616234177112317610508394980313271431746134262015744633266154389572960464953470867245709065267058757622796684581017667375044625333199730220888314478714783599566487881030521485610054835957658053401708398178466875532343349642112953455552203419849288764697724852834872722719113910816060888654237673106882689512724546878030730243442747512659704211613658865894558273374988229779272122338708888850088616916554979209352016302951702187468316441937766967124054175929197392910871327579656130176412765777761122614727331000660398071621606232265359945914025744572240860805738325954067703252897320528025237625182856622938017251295008170834868667836675484778850755003426132933962669397827246316063534739274900999281918439946090820569117821100936988697244387706242972734027112569652059732702071308439669681584138237801869163244688828631682005390188238296057352087861097698630037279995768243731032879121436982027637922019584959248180989555219667939875474969837319164915198574347635220444236952775464152643960560372969030631535621163295839427752714151236055449377758710847019515400785156962434387075339722595688317745691702360723734281033793147750003526284703263501286754065455759345072137320787463315777312509144221371817241557179468659774035661745261795793817317106545218603590717935626132785314659323080447643006143301911229372448338533169300581325842128992961008290759728229683894349986525362907154020834215644222650862594364688857471496665947823018490756190651243699462693033983741985765798294105260208141526838149885508565139813294087363402960216875534062866766805501799117312510338061300627626481946522395426475464222007354980494645907237905941887855936377468979499784138758346508564310377132259829912448960816151894477760170534169629192064663500338785832661383257784745683816977006497449965302419875213361062692174722565620003391919306762897704587245729930683589742461442644400909007436647439308475084716841147743672734612149366402639362822328948763643094452060662027243546410786990898142248334088204150671870318033153569679404869603568653061953266928582918236412487705302463662503213736071902153216700818123438663945033186955014563591681009296984011763574155892249637918707475067811559791424075562145340479240406743810174349003321502382960902606676251428233627068881910602944023918881075283822044785341158069385602186102645466638636309870284881166056368978581514820491600235097880773465907398292589614650737753586311184321268726017577266921421025141022652471723759595957675268227058687805723762176510143246413415493022870837068207145805398031785539059347068347352083502773011881348090454162798083129324347149738227613801414908011695017858086850570677251717289361962798976593696492315679202240850340990859539295218056981472932747786127275800793317838982749162709072680216273169606948955634039325285296370919914935729485704412332861559666193861872998895845347096922312359557961750660945549154757798444818697695076744371486503643365250325081992494499256061583721830956125626143514956463295419403033727594890920551493671555529179114273862855284686294448279276789393950370445290210482920471038164786112640737211299256932413048148817194277632934870477075525230176221353857049237704956251503890302853230417817848052675148994519021628435525396619901162967694777862631010811188343548136963728855561513128652131507117105539060017789123427602832652267157954302478431432565885011439196389745502118466576860522515123594065298445448814931765439044776905191983273361480201591370542378911383860947822686617034765038496976318255955807891777342664194674859851584753424124621744386940248005803359328889678784563744492663450381192506300910467104742649972579923322547318450099776599119901731245967893894431643556018568759731370676094400311327440138517430671586653526309247615092885581751589940983798127870778873106055764791197325204896395008555358522681928979996595530110444022550860018902271689390670523807092985586000598292424692403620233184006113649785592940644382036340161210169218890986823972868899084172279293471942879748761092757059506543439251066954279763485436201126271255492995336544399146002546823076028894568200179987666708924606208831727960301704062137130347180376053053952526469973172021245276647077728893289036758582447662989024338428678067223259111743591032091478255746634696400702936358427512547825846662351985952556279823240523076767782460187360738442304224480975898790074183449636519545235037584491663146230122452926016504132263223322008411636979996882704006794243876221285289958820176117322137958590898622812378447187913545978246167350479342533628644948863348262991117107835915129650401179373779333329547964940072469217651874844596405935743076903858002826968362157412943286462050025654727905960026544482700523404245674847513934768178522002786242054475928608196956908295514418383222125035142603579855686549160847073353869265570066314107366293204057855415094060050427329514154215977481911759495842369544681466245207709368270702532681098924714958837746964519905009771186656386919100589641615741634776643468532369228668652813589088526825605797537936832328837007247563831264003530839595907652333753792048063710173933996089746006821941262156479688887022219148417573098336173648735751770424391295189115967282675108991365713402203062817781800876418499175812300038069138191341693801214943681673667945934610547060500495784245811852434237279857205883210366118920851623435892742808898568485433086171586302178858098204867681881587704586238514292957996612936857060367638501261390932898977439475338768234748734785917292446547534688311720195960151313581680780743009046170228395264701798003445523563680077293878230939183108473338002321040916556459289211354100246362257153856905843411477387508557703579721677316931228137328203636247776782036070558938280976182002924554979760973957524864541460888357179617082957752486294690674796435551696788602034361453777483590140843910578332705849568156710492772426216844348485617333304102696654828839407740974801942881353336332138458400288145097461635159419869738380371637399106719745067022723961782409316923615887704848653844536664511463199886508992993821097500499849369458992083471920759980698898629194018617108526784275090906128441202556768319077895350804292198483372979710544567895530318621320001354231699294278676591076038920420581882278291284745571705378852439920645268780676175423630967142906366571008411678864403819707580353272243753517456127956113369143075669704090959604137878179001548028692945245794857889515332216339847513719942229616525864591067384875681687297005049918272083952048110497825020361563740521097426168266571767591908286924438080094114419121869262416778092660875007392814098505639156752323708899202484372021752514701969916152235235208398437680605763820499728134729836949638477242718798513730501759264530138086597136828840326269205883838645261220041605223258586662026206541481465173384147647215136475612170724607013955621602667555011794624944384375771262586763626918503660638585004621125100900681809497208514792092762893565447866488777444191458002903799120604811605340346734352399123868807908546118915322478456398232074901795570480537082497920294708993014727765217190596404836343151030157505866367045929321141706390367279538809926451662475088777658997509951030721067374520219235835681890928282956641277821512203043211293386440392009500479375883993195605595359231434169716904022521518612858338468475826211519935366382479074904881308310725275398634046643401798699182265563789341431435554785603888562376666967693318830421749683774185385015774688113047789091680210529151650807405637690429175977593025058135668252736703705376084779741071381128291170064816409259128609718290480094387108757256965063469631507619871914012813864257790126397109085426531751918037707372369240720481144157090032552896179476417368750142087342194761343704539785436032922819954397804788799302420931537135979172456871029700972328790508794414690025525238806820367624512044027306079534769238832993163269403952694437718300378418153968984818397592075289819602538479236314995921500305988852072400126487072142584041903982044984055560020246534475401415800614755548469850176661867639934070220118443430490922315176106287578191010429152541857822335805872784517797074147033266015389428019491381429757865572089137272094612492741182420189652122679375579439430461625034632942184114749016068011182875423676441714745046320922346751006179148020572638989875720407794558779887042069445938209159957390295047582245108228965351962499653558925119786703495511443939200862327342203907024902027734629370028587823698478388528076342457922285788223620381167411544089388035773167694834504735338413556492236555346883900477855870654563024974501925952479552495511789307167150500568980372842569580511491403774265476202875919607936885809273918553343650798433666700861735525090374340378393391311976675384976931069755198581660314979361674837498824346896117785908866060069615871593729992528824677967371037851678876526484101928101242865072240223654513679361477084483915774119400643689076195546947029437605523165035322753998365086424926265568784699954291971404824669776733652151387218076650488222184552303049178360261850266827540498435947217758394238162533349813907623513187164428120600303100965270654623177051157246556160394715127897324825849825205393545225375031503185364303651670948340279342558059773420406045402476418658133186792230897178473696079543662851665713868932008772805369896723411856755210037552585953156713049880654546289527621895499137362559478567369593893295569175882405455327658422399534607823183566253182756388687024000755574297519121570911739711740550148462800266251834150099645541753627887188233735384128455425431577951965181543540180854595937130531690932528454101491340013457070995524675374750703887373957921909594708119103887027275162526429476517274315529980305445417817556605627958836537242172129964533272367923087263077606225166119511670960047413907379474941754113324084698140577811802673555750713416767138154390342281787370484623378726748338723687939146966964396564931994858016179793040035546314310256800872499040815015046035635941147955506294535391374918138353147151767870028288307480339385203580786014611001806546435333412947458430510722855114941150678834732445217034668954995358659918056270317374642301699844365203562781860205879389403664333732249072900857397413086769083184700720627905859594742062954536819383371502210758138584272814470997061145238298089183030269779764755064697760807636933399493854215309018244479769473656209503679999100051365934440156893259033809531263950195019823367558226447764089561028579817958159487897329668302966324770012490374353507824624885335906459446020652644934836854159587971726432706449366335098002798569669931411164079452078488433823983209401760566714075326869826566677495409760120374648506680966496180184275844788082745315486878067674480023955466174339051512809421704192204750931958547633335852724124918813825230032665334260733688297573944883158373800828205204666919539184481449692932588231440659975190592839522209609636289034020947448091939838493171756052546250726128043430193697731884239204291733396315091869116301249322238764721503683865015162410488316326388776472640086088706884308938605610978929349324010791064964491509496432557411754996698694256917398350054576900545516716343442029472988100006817404051370324705560546219013239902092650728448220859906923498832966614697232767949002095933732354385085342582064370263337310913891195160435735676156359040888162140924577969220376086086501482353249463829432882903792674903081882710838680898460025768371682951507513712985979984030875007815013901783001761999188813138008695277249291997694082461938851211527103697887770517646220445464441907741436396027046681383927399916781377342146881674541746119464748756760174118762410357469757583280704272370072875401607991066737213455086304007841605716715653189369750354023416373232950184095755414345910161157925068454703969740300181561066058265006189626934022878550527116675289913523023713539439771764108287985918260616915563944256755506720958764210680450016185420765129128141427069781685662084846688031499341121804977279222719399313229868493816539981383523416946089863160652324261412169643266612247620614752721890985872615598285028166899280093474433428553314444684563844681773672654499478443777072012017089339485333542918233968638402492771305168048097208757671080450176971385536837339563799682602245495640290107961659723638987457957831146982530471306159173358322446855750345709640565152528594423525435388270902597013860822337593467831025084588919517831374823004521936695693910341291389866306475074227338274580803662583612335215467143209616646310194041456912015963377978944475072324367567011549681945909190121912624340519318456608482114502207854509853857573854978166031396539998597800312759765943435211337754067939628661258049775316433014375240844845091865638968766674934634535463614134827957391342595888403637846582714607829927491216718353768740344878019780167823019818111344177716649533472011537454823069993731941273104237123933726931720312835591223537031399073119175203440805456862458912722884882686354540742852828975214450225441149506555851388259489401301470467589555508779951778386484790800870245735093446707256392618870301526233502014707474611323179387220148168966452194330193185265524555726071341093885210004134100623439267968874144619942323646632455573051455111899743785033140176697436289013753271351706352563970779508818024361052797576186124533730410695172271713793313136147794773714570019201097225873509120657210910377659936074305222719920366088420120815548897792949575813343373880847061427720340728836375744185128856285318685031798254661726214149183639186222014128947492393114186546373653827321536661774575776676502646390934264086230922298801190427573420599169087952739894531753363486967316684028237136726318280522990948858558853132540221713474718903439653421952371103368073654088063541627142200349749468609281750931325640042536164858528210038148213793540263206146776164080149051217162736276102722222478916705275495406297343023790033175877014423364914565307159291148666068845220988573339316335025927561215047393402913822718320538826560778913196917978131199819734471980931389356153488681382193567021054226030040254610824653814799411090881448469007813263625345230686952642814117464831445399554791756643293316789705874705890460227801390401912284586683826562061017414275895671164599410770189712939155831340863706960897027300233341647366448543962070340116361928688860806298540998139036761893171534447195131609777382403501313986625081512615124691853838715465392122018497206527733647668269085483321822266644763977072140099680666140273039736691476346016208264954656785042707525635913045057954023786720334571577065113740026969628235700493001834077706103018952531585833812918491271399021563821049185544688571347834541183877629485931521344931482188992605878020134781596786386625945600081774361029643532347401996808050711345152907933869775450981241305243306990528894342937854131461350760835776386774102335926108014024675874517561592817460842522914172170661546762019485447325626757224632753697782394250778021297293620080262561340505079548666887503102827136221560088124572992487172298139424139285753240574903423469152383522741525857442843146637959344717164062149938014310604828842635563082232474539667794846907858353761480714821489833266434397904584865063662655873592908798640022186107504282190189573850018028102112283193432526312854522173020537462794822131772165260991204707837981428646710792713378816720270191129962884280438919111869596754762357577397664461570151270750148991011400662269087762036318351201539830624113367469404045435979612796476765802398570563290336169924291731905390115199745478043231699483914837905264773356176132226717719192425129217036632900858903320341786228209457779666348413401057722565650161700030309670575295803348563670430156764295900772874126768778018910628615909458058592159159256127238046770654023272887354227855294067253276296927712188340819562598574098497142031481763469319999357705956233765245297966528997151446657953643525797845568917710550790016885724926797375748732470409394977391368244061428337172497571479875191261635861780203856472765305276219167395772037150930822901788393564095255325896034647589931604300836270165207302065288712684036593628923810216756845398310022487725225816670100748812386577052456600676880327171031442728837457150294713966136937690511524830190153583580791337212963962168637158893499168689112562383117414439662470041265138568706010999545978768652841385852454353370455450227935835579080658911168751048826696943271630765890573582744495099010767046592227543965646348483684564214030992277743393896649648845207281010597766842241988940238548619210629046179080685236091949156289171583948539630197969777989863601256017113029199330178831847373085030837088071622206189177248490719737058304531679783483305682511725472400606791561049589928962330325773950950232438393542729108453503612354432070569992203909210753744237761081773611741119217343506102008210358973078666791640687435991056653820682658631320928991152063057447505458788157520406987254800455623501983692656152061980021724056139865702904476393709685231989715380680018702777127690346658972329967779687426175297840836335412203042544246821334293749358969308453888438723426078036102835207229810378773180572083597912342571722852401501685184102721754617875506682602140613608322180224804557590450070706682574627437291151584158798887594670001844635182835678513122481203212542119513049402492971586749159924876922030321640872302109580571336353512968951080388095297245876923172998502089460603389157096102772962546424349569014265233185100301455308305180521515769389070142756586613479450753348863542296844473380557903986095240638401335513556077601221039677159324336654049270711443511368766928256192345069744917729094504455775336291236433773132042717757603868414931554937445581098890877366073239054599359338361996941960934961423618498332132375535994557855349802982057884493645358514973316060304884859470791307537191913527526918520823577264704826015913653601390167840688850852130368367811192773113792572423058700259826172326760955017951820832212343579526104165307323695991873886521957555106763182698552420006995657753489282516616735344436481820185123267985235286926277551255148508227888849769768261584838457428862046420424363324907776178248401336420229991401205330761242051770435588102206297666509673410809998724646828082041498822902950842195954737337164125379147908968727554241459009721464892090991901878553730674887804062470856166026256252752910266220935932993660895129918658522305520802386913183404517440187160888476004939129043085038025746678587922527127924667346305001480522654834753714471297536008539126213033907954983522957582144686647204876277415001606361711456585810361614925916644815646964194652059170971080008214495250154419014878671969030946160019428028982723353192836384820874220563041450943188342542092777073462344226757914546228477898620298594586188250128986065732100619423327711276861092534958354935504722379831422265217349458302749009724814053841838655335938251913846746527270018844632475690954543857364248391285379522927850715890156346915023369071726595428153781604809600959855795918673861780227442880621429650621725634609492745176425437745805599396072430400354510947409545901794909827041492202980186654393456103935574210564662514052957781382433154349702005408602225053185997077497626616688470144527384434305175175764088309073957386430793477565224064964129944079920652231115842705785521438399081579869833293542386985954495408763353164755166808491552073033674073349403297285208737569697274342778037876619648060920049562471417670249436179957295370653837386773088945716350458334778700609173690704030236353324043340508428012863096707186532848531860868898371017815526089483059269898121259051877518957990335136396413266870136316216123680140972338381704075854765340239957063127888359411262762699826423613020149161060097061149026217984789414553614579029283927812764216775255833830278150478046855621828278585750436111920547637386068321845633171976715655615786697642429950412036752990749252972153692373085773307682578963182108996993887983378175159129170856569549402976514761325844396595915225789078923498069199723213292511366547623889506741924077849052742368501030239293836367319580430648580449033529509103969649096914838325156513376972703666209592201581815813358335508904726696192152714887078004211775166514531476576148211324851211247856901337773670399213890180632094228715305960973362708447746070954122484215151642520986463409791425595076478299011986588266726154266615463551983332733184596192910776530222403630685769582600574820659242871231005419255842639883863524706948558187974984056683484558890186407085951711936157753625831647481388392109448012359803050527951913350915677904820512463531791658618093325752082674754423782505447796755808387088003624931016325983881601726263489446852282485219420268599047869864759030190880426262825757783083375089417949353767225202320509519797949957054260861569115328752223062348566842315170125074769272314401396284833858769429813305317689528220542583153213597735767182883633152728570689052127393499051510327285722980317836199859404614384671363289650608859520666992315575535000310070587267637212549162666162961106178036983851847860548202167571237755223296562428697497462152208213555812145693679731987565668415541655986614087683110271596325649002953171927487675519267632303517543566299743079973944524113044974451697841734107775601796032926490429906131538182148328905499426189326145854424804121192068182163117172974532372335298855010332571255463965734840003486702661063429953221571670676216024628277622632970287479886805816123835689810753577192100269825603029909955121938627478258807249698423137775850024113617136575576385438233277161365410693366951451974258836593554962717345588886940991922458961475399456656374977564006621547528627185026247473387816941607468993052713469888775192150971944093648014469907758030673629614798329816351583395533346485126560541064291940264488973527960084466680660932489681146347155512967592638674142929706700101763865647076388393195106614321737419005161684279632675480929763030809036315436307605955349075515971615724247128589264485962310852746710912240185195834562776821241604124143662482101137943350920993849765278944918912045826653038256654972263517573922191550608359163133050144433556042887850391521523270426773267041858584065706488675757543183528506859485990479552983617187987614006479053532283844895356693302329117458094206560073067885349440099652868142405511739833345616534751605582758604247187781279281036488151739447866169433164908129710193759849599771904038281105348999439167452570410887582400025554110610955202698169397127669652411318236295047665159360861595761216095425014838701160668564251934851887146196741391314014545263932158911666950675883463669805213673514891746450758838718500439257588162042015887770303117399264582457332153801688625537007921169856464838986660685116975126534266690921360958921888011264605343781852557741832300083463093749749141286505612157969950660109863514131178891078773830712316006801116208704304294838035499984840857257288808955323469846782213949850887663499092317344202318290710979471472181688881026512203411561104056901551181169454986768097993467514012047205538611523132891925264301733597666889461320039497758089041087911174880794898525537509187816258454187667864309705990246854668851524262510157650244147972767880724746114284979515404735543527596775767287016600057419774329194402825167840336563074676400086815863322389234285427045791502511398171432906529348323633355690884421016615031159943920566632169644397838553646500104564167264869953673268195270240782985737166186569505633493303773201256839109018543753827107864523537723293249646442228817807959156371754115820461097076349266992701550667768044786128346814201436747598038052061495361921244144290381283126254026054572764965992357606591193281614984771425110689278208076236882114673678898287214464132692988511643243898251470714583579731678242973363643814446908600202466230946518256302035245520830492756063775517034665296804222332511085155221685293213010835475904485024805675341521374413142570153584261526833198536464777261563271661542646550380868269758312073593562300906154771480506733566451051152443116071931889746516702173422919464034892920830517092247221514421873316635173394659624339376898249567523758875314367385134093027939094759095043536130927866058802560247073688850245321913085664548964740933861450451276320738545649113400339204435604693320482158281618268233162141529045213955861157582145979693342626900006331324701703967948775132229615909438242044576783885973591365682805781059948602206238514514568648758093405126186176860283141847358341749671179771201130128278833845159114873175970811693991305914085896887906353363773115728641611083442437599439444683886581053074054006817290938968382008468028945418305537820196726315034155189316350944357417187004226329299465314117206485996825136535929509836545437242650457525484948274430753096715439781401403373291136193275790661470258955966944493852088262512275252702520109718557906092006550402087788904734664904576264058057480444253042394433078207533195888899244831427596652318971767954322859082878385155683181286131327136371644110023387429566873688174387110566041632208493417383736486484006834336140050553901288892721607098228006085447022469211630571791629949926340129707053906720445005040003975415271686538641446799072707835892650620284244050516688961628697525460911062930140488415214392831957172297763753489574013726578857802962071521593006710779309822136979903469080479010242164388754218611333760074738678329786459332963194410168911378022328206276071396146737091976255363829409761816097303944966262175478991076009982421254830805730478076484155877516774970733207703105032228009305100537807475409775867865299952946108977134276423044516418181462932453536384143368501060559437799431697074280562540627313824141145136842664112826827658832924970964603855437929564269392933344034354446058059947112929032749072470497257174770572947282755581960919750355805780001598164072935832045238952050137039906821022968374290605177700134845978545632963410862062133868538019672802016362857293711059059643915960692953214228187995208158062869171312007383562477827464094452995613054536853973337819996970372292586120595924121403269205001686621898174688179808070227139242478348220217169223237274402085560258947101332748065798751726695365267150861546681053916926062867293371286428736588374951807360253563892432778999088290487327978747934869593211568828292506209713313880137371219504975069506790525562467213967843079868334080236783404291430143104450174558624742824979503133212877440342466693451022740487423504201522479002224835551664317119962731750613151560030216298454754169839546769188056938088232717070185370723195911152446452693183322033788993650811029993213554577204749825024411418049546834689693681613378447682473189895755960265049995652444652535701461717872189340471060103859891273595785434869121323536504805480502804680380243321484867473569571338067555831801713478412548205558580030620201446285394116549340178960451359282889970388857652511985218054071603527499768848219873775404466046503616127876353237298375937256484340915637909500718228353888739528524043985181429252319459057882787183280373590094311349346699035015011428015577521723188067186262345726403925716480156699124437616115385920881622468506599387042334514205121534481389605074085203821975557578341253493907883958605505412055734555534055148214410819639100570031236564170188810496087474469187176803502662200296845150105053681756849614144129722544967722181199306317087988424469068407218372475935700344396166230111861596633820203499356336729184425175768438613284765590472715165442092334988565525306656051207913115381203636319697672017732435258338026034146616064511700505174012286716208932274219347606769785286622006698433782677769608372668492998711466869897466889038115984385792790884133706495658597589768685606069152221255842280018678407087890508260286055462924481701912588626644448107913939517262458132697614412610167451793632064362356862518017411689815488769837494852595012994377320877392193120728706097663921774111217999213045101409801284770685478812907197258094688765913606065667258625652444777889541755577939357570426980161202909494144423088206112231843908303630103349122414188251387328055001475521228681085962140078779326372464601749081622177824267266856294086502193285564569164024842479921254370825292914685151874369648713742936270644664464033235778140762718746422151664812579211714988378014119398873766298328485131475043220268997566189940114479039363994334834228270800577528954479784932824680069947476121482461654992948312609090792420704642537591116175604271862787829695341163290529890438987721626956252219710213685748864408971059847809983819563106686598858295056987237760792765307133048221469927049237205001179896762797539288522158564242416832935096319480586287108111905264992068452182114593023896717969216761964098717889077566278062651986041405678274054708275251391511528488333758960240923449950734818122625207716547143305735310388452198846139178530015675400065211957930201341668801818635428993141080588848344967578913988962144161326629727783703576702536414258877081635003657942313248677259357683218092304024861685640273167525031345847171218921741467138586463402510982513309012807708651697322379711377627295651984664729013479606953052981386106787230921598374128625786730021805359719376521492568173667248210699738574958140726869730232824813457489102378989831497591687872690760250524629119471637438022752928365009464016396367932999944564729564319838932260537357057899128805529894769909591151678135941908051300664924599150195749140366924698688057096166731938188343307202356873784317578201741879341486943339354763245277532305032056335372291473392791756474679854292194733032676273718911010542744097314511666364523743164686474726699990074501601678075270127866233945073259971674127221553947059234499244661874826662003854054755060963271524187977495201140319621489594569642712278268839483212131157433715555770513555577560452770500927875908444158467616598893963604109436663221511737367785665882820911197010861807764142716073368107907454268218429929348193540550900684285700121213530801585515007601445137541246682580857367489168222271663634836225903522829595914847717948636641856284972083982962676857209250339671812205253268288401883981283559954366081463686042854815752260439652579571615085213757602403668343406232897404153494401620340742403635700216396406446417590334419324101846637093050778374252102561324024273263972719383089063380726379550591489260141459067746694281579183120293821028267003707884244445792625113346243467253979671905457416074507321146606624202454239444394334771538238354778721217332478333676810819444866567611417098783502274005596485560648848353607733087806175081810261925563251207798174395259323355394852521808173571230598800074097682396504294013311822720870834182926776278989813829152393781389988201123000174900249798625949004296987768056077323501336187689608572699329379720171442899557643603114057278177032336247893351542602665085425216507353826048839319896664723042386802140553207297266521521412485506180155225495144353237162819177500397003668929782572501773429115781891800146097436020557346079065342748983898291893559617551297258433238820750673824095946781862268329873749937813264885300501456391238915946028337891801905108624391439643746039787638104201784735563441180618236482443081324011698966228821099204922724831393425999603539930926791616234446185889652809690804565413053725302172102847098582585374130742884605122468364558880364086950534837583787886621493092797506728877142514251332738557111382258796489103527879549255050259444805498111535319531648756347754781605314045655563887873648802794964101012794169469940909299699736255360604723497034993843616420519770823993995064161713062162968898121150708190465090547044676891503284442186641807249800489662102450149644954620085998148862197656951142290013752781854663180650343825258269687187605298104782881940702540154883885420190887567725463993988905704699898827107852402238031757169222312024127984824874117066694855286061745323986761583713580229554036573960844008288878319271464315604551046189268354062959797711048548744022352695415599875662510924023613634080422933842139085412520428600988523848242962834982598067208773794174127873368844495416698041937524709172643792373235747246663403920142041287142302847074438956515286609644772447521828350746319459552998286174607048992968313233768343492908158148059627213989526367715906606820001648657131455056357857824381656011630194201150246249254129862697268028822864810875335818872793423350006570572015589986867756912312127922779720311011708539430472380591482058709127544703571110474979926524792192167188759638771125456145402037553401982033606248839925655479622275751707872963152998610787845614450773110218663611648875127091934967738204548405852657181462368167077499944904393608562361489129158095530232320491784892185881584750466334279866691573643958853808352445613837385443177866047062250377302125041043428187123507182955866143020214207766775490649134456727716329165656452791696321890045751278183267786474818596082831288746550501080226867611510144481006979625546262284436277723184432541767696888527086831078807906571951108084259413848689034431398867427994201342806780457197753121446098642750092195485869627402552906466017747285434776702230117711364496812317457078086362128687936705861804791506126239812855338676709127914455544831725658890653252330558063528560620962388996703746194786615923141684574429428961075141132006197541567428963335360371190193233016101022085047629951299475564981945210184673149106905585019133553612641955097062044793654663480424063523039388851539108490712654632999196501910215066578572074264340017298481634946247522234195797559181910022863955810886692086529128035459179630271161119580954981349262639508504191768417578602332967148468409128149704255844394090493528595361169567556515038531154669056269438114252052245064326073204101673831469405976464186760818646715805334275002536460857071756093287662675989020496376220699963248181546539448234896534691689000157950252117673644290856449058643093076309289448394924405491413344699929221208044059754144324042062914812105223155648465051017606775895236126458544688011644949883274780495168457060940377367715854428456161004321054847523414701247764863022533277903694285869434448402439555056798527909278081267266154966198933200979562659398221261042484463270671328228723012269513544291409687807975397240668454878564261593062619521017512944296206604818726407330424911693590161210220861553114083511106804370671311701894910965933481147018809888677926996707499355939187167664367043449223273917023828405386751051976656560631543493242875513865739407427347418250657854985967375418622687023079117439585775567398403409000363427036803072213430127426428973120989735977975418485487194089373864192197684004651041977147657568365503014359001427116636214301300221799169393944157401870268625188395783037001702632262361030910911878719075596743786455016309505278057345577813451991108434782623175001287533727769687464908673206088947150177506711283282509635052940577763819562510623367731102119595204140409175935543637868302939769198327238251528186257568498737307544532043463038165442962615852446707402865993070618966774339518646406495834783059577752201124587212413595042135295258669600858810138293731556147429289471085749841954797067227370058637522735956850304870048547893403098931601684486119615942220851452917743473313272633888995108484437391999638589602165604099701293769456973939392054125561912794606177753948682148459499650768268120597643178091028905005941702177784346809686231593913624189502094284779083727679755440130084764905889458796935667171842310381014695149432432802370375679782570212589323277254572896685219521523649148655447933418608968246478063939090383760000648690701907288511071877587717229337072827951161879336722714591503146202604922590387701281686101772450412906942418183118892051394653066036064177576812335471134371806034366949274936914493426752097431921497285621465904756599152939155758868586633036040381207998439407863532568402691819597149141528597922445285309038626610876988126851021130722086367602021456032128965807090392124845887178040004891022340904362472492969104693733698242541894233508872397310206726589765676460764778700963231592262678301603685576384641636530007153714558645657771852065980173549435097541520872493444560334216644285082856720015443160866353107543624121231545137232708242290634245411624290563786644971569994864815196763360442391076634434218321875125246572458366979005817874381613501112975925965729352877983039837109594315446617849998708383973985018195125674230285968162417129824997541294477876454303982019506537935724151495467938042205350160618160125325206482970325254915367505333992055842449140791032176173300766697731597585393130200623101854892935956436384556239036023414006246804561085395256059886066098928154265320918700904233324605212723114624219177704507290682250426612528172837205004100463827493991097446259992300537164814101781227072992361315527107354378311675470608754891004469050574046775206989359706667472555260867899561654165510336238583096358501035019938607587494241375380853697950117940140901163854450334180927617776836152205339251558848972139145593400803305809286036310362001445893123063056175616594334571163645191164306011795651692130607536450179010873496980148237998178176846421640415945500552462087663985958077147151450049979400196383249490078866803249612699527242015560621581882781587587802575986240625272262063998897802009949852568745818032386165634153856656471652155990434478972619566142220182471824112702905053382885162461505484599924429269311440997731832300184055021814059153277364948098536057588676264578097413276337196321377883111618072171577391713659226491551454140705859733962857329884926520217334650012014050568627917177918813362716057425824232262664732896889481944727204646212405217025400759452154783405453239626384109410327689653774656333897100826476812850074699163511699239797789361676886249791246797214252552005641632122930140701126380318437664984145359381731110321827678185533680515036511495922647874963628612714449310212623566497463922361020372536814354762150998413617150878131748090960592992342516792129388499212326094482622122691332626565932322299443328692806720305539112260033936136148107758717303156731489134081261296653759428860763822642318811775951933878876576321731765868860596547929335369489609403598676310378850398699245967077796504941906929200559462675332735297071664854781094721606895434124544264070657536593381958097128342357798552006679313427999611645949026559111709582680919957483372132177242713807102446206635798552975250077469793526343595418628962105868956855264838769945197217599139521041623329286030633497332037291846629860386599352905710321681312656518792648991513333913998424232871104007924653529799301463601901904343471843904138726808269817503090974929390917413690793137383473762699795217048242750298419486328069828071267144391855547024160223658008919632717121162441180103478925506281821088388148476668752029443317933848205515148120898294605712107316205342451592943731580183511245098814947091291431996257195258262086964964672759574502117191447507954664986034343070246151319659395096758323441006740958728732664330168321062707002154160896103259410541018590025156332882148195908227791779938649493068047172260330638147122062014526050854676144543755018902363146194845566184402295799494090881411005176132769950298779821839887393730569027106384740560199836112441478493695423431857037321034242611965367071123839176435255517159365332637319930651498505052468171709428348896803351503712432248391922988849003290767365169801374319765709031321890696492560994089567577937899231078595447567672840417580251062855145634515625965899907242998906606707522819905093494368215504747274799154950202791830710459658273182995562424194214356740988267954396238216354191127653394898698786029827112436565249856278652387307782586475368821001690393953442777630329382847339771245196326066848424367509644810076807009975917999282650333363693055421563850950122531519215127677672742016066547757286178071849963605289865133570848579658226859913677655459122544531402058558430519273083844586901503619511230041821746682159641907179022771958887094978034727876844162114923801531961928702542935261006082279907227009188948027246817765658867879778891392670162081621687819234708228796341642674204872253108750258012190990754775468934540201370959573959340019682433146741001190592012928141382589470295385982949409566419859531776878009963747743928055648932632201492806405748388294201293264711993973359258063733600050095973431562384825839643123628475674488177283480116694305583173915455425420694818074640560493671305363340344456117390514892507972884323780698371229624791656561205649359191508851680139102748147693500200381803971710393739458541365723794936883474650456613307308002549731934107443321577578414158012711891688090298898895988765817482979888536873104163411679376460549102860385925581312702488927200456558833086445957104647213275090642700229904773732304833489137001841985443370579629076833901422080363492514974191241475208673110123502234373829699372067230443269882232155421083053923890076838075781402080026591194617732277366708750289514624758552159037105645784213292274688062861118834022760555417985128371396972495077188573021374017346324175239797043171735730936641101272200779378844816786671367640932677834442438118332860460324010616215242162127082947277122412606936113650939727265248605462383842910576565274385525096159569222977654942156774316388931096328560190032245189406539783083963928483631284318833240464837660616517506605756585238782841189898901831033545620600375606422095003555436201496913094218878474083009844718012212341290861045471828428934101166829434508992318492485332466298566418700499677850545721002527083126489990168736526942016146744700285163694105374492835750827875891272267077498451811252550476608995579167971946248356104317026561982582342361643787745300249402050614720233520237049765193410433370444146535895713537866301038672393904145648812075378521727322330422652753517165496310921130894418617435384229407363839306253284869399303290975158476876782902153020974072879885955606535163994584128425050325823860455352172695633598029784078715809776721906930463841738269074372989119831718906943120513135062420021030892554235829157625303162484776129421779744320952877064789970213544108540789494041119306375572755282670535240536376570123632103367892450591176973126043022489741791780353888496086607896434597063291090677613730244935665440617701845516232141109354919476380658479092604609963610986604222366544858853102838782873378938903767048136171100354383213926211103890417383852283497206979009598775675408930976613768140877944358727852351199139210997875131098143879646052573725774678373254388767314416934268270993383104939560838998142874549903626300952407944659694815118190223537595150900179734896131201703789061532037792560382474472662579317047286793304735973741290190506912068670088816186588881490730808087072894681401276560185366202195541648955204318871525666485114989574342891454490960817897952410561159690868037622317154682055737306786424124878732933576858439024110682247620556243667067031746516246507206664716952035433735349566836214550637022152302028916966310648450192904574794750284407382904324760861435456423615317733379445002128732354753519379032056774812535763622246443207780528704048266051985198882966684602388477555893434099144963788413932677090926474771227845741819639239174912730792684392751013246206871228622488742798130404724475513828091889984687688945190693073663567983084897103253656108269965519888779624398752360057232826681873875820414658726636401904909918790388835376806930239213652911529830197469711931092703462952627850200357301791400606638505055936478326754191447307446250154606150462976913409731124707274270067637485554922755339019952787413531344275125909475523488296110229243457651838065481271974197688961021609257073455370466924793794136349432432382650664952759851609522163583637687775282364196081344734934285326562937566906479387972686085584102944024751856321397632771808339238403493579204636113603861628296677810338239776421440771214406275996979068679666408497325744425015936698304395590649591619039369100682789752641356490942021855379034360376970813348307940317843262735852528385243049434946385958278573387212141641471465456874641264373269510650744243885182956978083068423949324989623924223676247289649887514775888195041845203593496312557969978456904989585087313509447895543423092185877966516001222032975396507327801907012161663515146617441369125731610270170173760479047114392218915314293986477348490653576822805803610691467360689503666976168488904436347739296568963811864030351477729518776897160454024461684891094111925366468600213738702616931629274626922758593567825214464692750704607018190924047277037924805501634425762245758821556828828575890763669219092637089663862222936452123334196148021547379766449837880361111784203440915447280122535660524920889943653132061239586348993618468164849246126226098909132823138075174949394618570251536868314912168220703362331971278541698602489874966506812524309524914112074621471431427093370561521048636505386328385492727527656354366523018550892507524109758715827063954410768293986504368789545475993392985760958970019403656268278370875309777212654033164663362410116783905555487918150338221797333983767332831953160898594981172637041916814164607922498972122481526826474791479825142094999593105649033107047615082194235775296430751799349147518442749376114414495785888208436263949415367432896510813312186772733096492884286244905836808617463937088874484143621006843377128484242032577864841840434280091171624216499047855320672560173845247870526246598191888936415790522908044201908219230490583302013203500874669842093425222796656403026353180729226345883561027773701707244564862276691907825534220484379989444855843168615342034245296769245948526623368275064072206926344113829808911316544676475034575660545008716141318613561189998393258074421812113375177740232717235906262110166634912445932926025271502288615122338899223240847437745275936507431925969593878314077509547483008207582811064286553133415463239785392493715644666170145363760154501755985883251918654228496060534813956856969436276781585030154641951197578170636076050788035937422908157311427406092766354225205673443856547988402963438983570361548900247185618129232706521629872467792545965975254504094822755223409425162894112435563010500550610106906591096158916633183269906835496645082285444356958983917055975563860350486601469149772502588753575822848064748086131780971622239996068088015020341689619408784833829119997376591094223510110267998069827987150091130874796653266577642150933734953099060625440937619641682202579974100837544838615678988934132530456070788965847699605566023094305849026385168310075652626128896039362433292332493790260970551398640344436359430155373550239200034337532641541314515142069396114949380579543562756776802523736172137502937462625969866654394965085810511248721851410087527037591945213199833281126403426733510198759275566908224879433981573526544696102329484699023287220390666197580202569657970801820977526492564423998005002343889079713104698157069840138203212751425867970153234507288987011779101329095519283100172371434741531975705729437198153525729156058186743389792209935660604737205604177889899705178083333586518291026199498347405467587328749265281171747053906601604508801038621156548125039306798412314438619936537636875668344048392515556950533208874482068606226884067117283791435035995720406994572084594785788230338590219862513402198663898770931753403343396160062288069837222167859215506888111065052882376347977339812800680541380174106320530267858334798274518186371658327345454940484328248898936835247595295784107998589893624554431599664292863117929123513818363822958310087851615555374715636047603252785792892340553634323838173208557547438091432869397943277714593751752161925478552933609685950258395149533790471167498039842187889405308085802142593262528634955301439584320804224454867408830355435492433931001844029165346422979634387434744249579227359844932437178031842576463737933061560382785454201026475804527875187457974274986902888907900449384971746103304652155582767473815939250068062524301526943005376769990507177660798300412063121973015055688587163625341533132815795822281308047339712790834760186014799679558575670330519617118569503547462083536894571190004971965233756748213038325202787584000697635348633327442764554029936773483686637185292394189350064394530706160839838478773170001809621920978977865993099419500941700986893534586735026957260569205394477403559265726004164227113095836369992575949555584246139291426009051337930784298254300101896309850265271551829775484792389379600274533616027100756804842240549860346289426334050417352130260984396934469006027349563618767399083826433624678418113432302177636110331017511294022572926673905472818628255235354754861057098278957064702592062324106946313270668635873029365736097407956188915690905516316399871364294801924410551057420587776016969151425302974178657663818127055811674077551110153631012938737551650891294246474728834336638170876816728720962071085853709956470233463912030968232463749291124824043018990369081276360263574910013676713024901785113752887211261768481188500834937056707257057789080687963845377684030822700650163546407069357290779749007877884531195551753443584037181978522433849637399197154968990837045908358362707383285506930488137941312186598933952963979514743541651878857626326899710164361191322513753001190735418267333570111648771231280688538388299422305185645463545691446522221213711756858012760803079829921296067927115441384148249423091128422897456849701089254769868518238118008935921501103699176104089133033387562853525889031592980804878477172542895955320151356140846160724597236364030394615838412757811732051367369428355426168886181230508594175562228556204527639933238993261866298925591233679407517080641381063464527428842150819752766422671950811700987004432397975322090496368944445748626817498699901399936461169358551404184370635283097426610687408179344549532999076310203879241733130190079992631523458713853715749893099976801293079658106330299057202278463580577074028681277747820092019613371057162464109448749659983560195758476045165892658708401444423597422261986863487329421423041333807632046603838388104883832379952475915186501041634573288243543809946402928438593914492427722198617852849597313214583409537543856514640077170022342460439669227129208051697547432945260013494872433105955983316858062728388333338586479695608253963898294737027669555326420078581825359740675781913043813117017896454873943664043094019078222928396464193598328578885539098785637076169670955892135309947406714709707964890501155674943612608490178413742766759410047095383663189832964591976729175801342866684429177156562978028791107358542545186489625814853781347767102626620580233794586845498500527224168811195055722685909286372093274409921424913455510739785958495184978183161075129113088230862596776114700788876876303759955413220101193956796678700669417415086061842552946686054575032437497620471530344135361449947979933659504610202603681801621460658759650859113095663549296039245471506019600604551929858233715974395708803242651998297164809684358151886159675928373872181951874072235971597184445777721996500900218439577398750608924143614951613103224650414910656567752699603536051686135160976017909168254280757386622318044356825644534280725092836716856369699344411344415774316288312362688578137417922524279650031307172388094463718417045157047618180487693361012593855717652930754252615085461986019591553040157450301164067423976625394822645862164103956266149436775971110149616396135314490453181266534081798798236691883534337612220691551714896001600570558676611859966160638202779406395443122690077663662715384800809664536528300336916789476387860755685751068899069515075817375499283266968705324791106387092450363464334717730388209632257078465960462373762467599998109391533552261408052971272068394790696376722749179506837056828529130432590501237960343059376968333183250671418490873239345630804107253842550702131421547316925983005608535297854256049489415590139860634611884059768434704996544438895371271598875441994642161404195039773564438933196691886323694275845780315153120213721592347159937329536359280631107607403760419647223617455965191992759640366760893742260676304125385107263050862505851132590869180942144689058347242829700812103025000619008343614176139427359346181472483090532536766422144751101323888604553937485324305860337848647777904446496632779355866483014323793054852933600176083020872240940687289748192073690293968666861221149496465542515393233459202131954483449526527376579613736585388398692465539292177536088359667579237192332181256403292656479812845033788901715424567742893836488659145711956180827553136902775919031432634348523631639541369681156338963270071347417730073959729435950730570988742079591185034034265003406889605192145983121127236904623133381969607526935520757917298446507654234689432129241896192082005346184971131933303124357532857106623009838387027881611367546535833207929737621133929741147277460496578493779699666079204862062272781904848068037913574970720885885264789553375677750703653009449818459860141556846916484007695156275256541108612637195808884602075110511393440767367641127245573066415804589219230043401042907868349218767383097058065354227980484952336934241320840025234461861572268165792652600020774765746038405724587264739658657788527074042525958952244656033225831605332066604143006373526336939799911698845062401025226123605336266511989278342347024594846540203816656995832724881681198479937880609435198726846861667168672379959480033303787145937530892979664610609760042204466117829556699231382733312231836241227332960369608475503646716869084639120496302184757637588084280195816698567736811761558371291829129544987488367526633915163123872572152845187390491805724476054097631050212554831834478188877893084854225339898458745130790424388650698373239577059304653699410243460350466692814137117702399059813263987124580956476197591743699639000929825474745432996116248297903879694230646954458520746286300834864564018040802944446268796545146626147754948463441422779285238420521678833482636384798711537527996606114718817377673356141302359122691970271720087821357511323839127509363798170324511792569642493118640738554828297043589010624329124504126336872230927996842675924399676514629307277090784686459906520358644497675672691777361481793743018592240839753806294367065212474525798072860264455324916900508850261954650625566695921209005968463809972400511273090629770843341149284647843487937528330319231135308421323480261261216995032805048478603276525418285194459707904778513559948067275214576131631016156908711602625047951030930216040804354447186557754762993476272400469620332322918891107797155267312932154690463087797782559605795321285061255582517962730954846875060392640025891411768918280120656509349810945390281240077499839998844495360046931087447175107547112298349798189159336023096935119748028418704970138665031144580032640528096453443387441727978361414591393151277653025359009240393611778223729840850146394260137554959103243655673811372503480211936189734895473170676211149612777578437641436387055685057463961928184626219751579035780883763038612191315087574220043954880717244995431378745227997943922200996636312210778262332193120342486439802600731100602954248124174719010932238481236687234634155740808875881614744991336917809683351306920524188675950383214348292488234312293023021278880886706195096242904167571255235343303455337536832401588750288573946976085792921882886002297649618719291422203835081250253582861878276307422132070958687568643603491757248980968276882789485296363936626813151026573456623289070439119781314332589006861585883253221453034069515730490228726655585913835858704963405460016507637444133398482831360012062604423898393658497765558057021757477939960586036172981429722467165924686224274996679366474460796847739846769569545178715997359337429998989020191490779846504452829149789461187343376533011940461246452889739687339871691161566237780675879554295935312085494415923104234433535770569650845232854906160172075280129202509606528726027943879745114011368184206879268809829074100626865202530608045413125741782537965830219666960663355993172753087437188946416084391781508002490861748810378440730908103286705054704308651434784547201685859972609988837656615517208111569410824069779010708497968500242593115958040703966097750648499015763542803207605259740485922839008432996278198182222685547791856854634828196751861013149688977859520197972738165053053753270147304266926067999457774326690711793975290856055122024199787650972232810277544402679910171608965887117091510417449663948855487560273822599719072934103261773325764729427546696611213151805701914393888425021385128818560680973471682168122346332502508955240278682687989160313851473501091101136444143350886462280860808326916123801865853188553747452384802961696622454314077590440845456765120497642070923776731887431917645374797239849140937390454961687896122666251741497586143761294961041314950204683379395360107162866708309214494015600235899004398110261414711270696304957941696827703950915268465495309792208225326208376357138808412824409231664323235904489796492019626110677695238031296650147038828128393272724669445705139224830316228248850642764523160422483291009644715044182484018031072610951354429371135920040453974084112913904681265755498866005186750160343343468884438181736767446154375815582492431264216016512749809797698324783139194575812314398616308305550976011503092602706773244067183995126030817373505196696282347199757175313651065698918767944831745746986891766319148972901337365561170306997823786751386601149445471776169161718612062628017430723011522135268164884580870982403319569329613891043727344938197818109077143025593419564899584230746961831342341842487856310396232889451821306389246262951033991274644566829316437473679254777586727441684026040305148380365219462437124475737770736489841167825282768584338366628459894694241987523926301805574348943296383422523507064675564128505548438256661702888836695563106924775328375648812874305469925695747087243703088523946852765146447577199363119776274433841921301901261344451315679425839338980792196594053706979662969247841690344340084980267073356835784796744256169912413116176110840284377573630455479182543568856851162476529520894457139608811578774960443834889008066056715645839631253045828029661892690306513495385380388795664485909501141265507005531329901093345091567979745286950493215712931126256022759720838776338602137735967404170427132603207710540993627474011663877603155043769832389448977847492024113501078387598611853475222032702881171779182097974686766353016018410532989122733053396226988717378941795605262546389267790184591841877694988316891679013368101106829242967665591614275402115835837123021071326854925448467978901774525796316616551377932619413724930659963907940073498507215343444109163983535834319109404951281709023854618181158630568868594155697196569672763171121089122811650889387265125722695127065600959029909164067418219066828740422501564903166431210125513887489144215741811138364937157500496563751014045434359707698801482146622372080485979287557046202290552727665396624033411837129936282741325652040866469216038143512473971798993273571076729489919047414352099847094349823206158283701791131085768269675512075341278717582420508064184665780097358429508271152088895656393890523426211030414544646372647831611757481529862007185390625956928275237478462178595538975054234668176728141511185814702786636275306692067267087279415482255948055875015711703630560926706958860452441815840245130430535061743329616339680013818221006564613514344947687566867566133649825805077208421568434400440120449206657628468387613613348783305902465747430871596441124675216702802702689600629663329672391540092422808003813378996032293752480364863520600419577248086274735108813523264538429010083533465161978410734407811867566351003876678768575677552257809473595849401637701874320824030295691810907701493952030129832741422780990804544877958818932608328270505931309227876605547744716657923625067092941341183366148196082428455205312013011156846800153048388133104134495390798591960395516022167436220244313122470113689750638699105549484427581759095098466556021850650686168879147313725136894912108948251110363109581159026820321364095767935518246469780373007483436670955480102556747150960414425895162646168745584339459748760299271190940858074777766637342618341405059840374744876231233561169574380460788487612465578383435677508272382540157352506075969379998598217007894632841627650800567530597998888416178201330547979047046134389787577229044843232010178114897100463488720400869979084669694457576727665190270890811935956243231895178896898333677228031211938046311773302292842657290670984000715980068149401435702534948546748936726829272303320222085438853001919069937911404175173648789473472132471898975855385049083466729685812910358036543317459982085763224430255470880364774485688746819714423351942175142008223906177566851576992785301554774356383090937276272727069607031269955508272858019140555427500481348898544807160685260641381685353860990168101668901656813035786269705692899905264649560560114953352732035156461260750302416064184923736228104367004796448315522883290033535172788202671038561966437982411394773489444205014821836259716807666991186347054341255194102738690971693136992291783363461149443653917356931194957686097071967111684159282400852879207682256264914615225435683398054957395439845618824236031242739756664691314606024283497541361536921200272961589002032631157431893414896348603442364302494711089999939975488838381720749633963430728465634150901835514793570338558388144067944444164341613142210552005783496223425624369872607125740940968029807753598295938334999724900494705216563817566136174002150203547692687568402894340933904229141125717470126063404164211785779932908992012457460288010768402715389741550254504330451699119276770269973578350801106410969489010495577388636419182487317706898218780262906560851411635394906332205853920407515191596646915942130050984402444568476176369663106948234480883561833451610733842545732258686322553702329741708591515120225870434361684550281113779799288831181957180788506471962961523378460452762164579299253705872193737285972166689349032238373958872397210169284005670667749371322244552248055486401829130579502964654997976597908467522757722395799846037118596847871334319810774556847158213057622343302764493051415238891112177015434427349482186192005163628297622810955165290476729644362138919400003560181612100534200258263443499561467878516878620041232706423353546903701125218592899848102270578383775842743996757966189208609590693470138174041313601694839424297843100742048773731697205798052654840875173795299621160982590224473223677242896890061943050701847383954437794827107442614038912484871279895572463077875849404470948608093325763174367275409706109686896232128338834190949987215924304650846157234776956715801656527310402914281407461676257279504797619230831113347811238997627249909498847313683140118634110809149687168901155064157059114068853787951495734051096697355536815657992148933110784300474604753659747131340764366314626654040137712396570588226560330054812221034817322385350614571471493253836920482964074166485644611002796374146321794556796346743496983781836792826688205159676878096158459162905436410067699269952295901244642708422720764984005496606423435925583384298816218596299266778862784827422922044852674727442705494993279054338592934501014005564573312767773145143503826802964669713728825451015720466588250774607819715361111430465099078910371515724009976491437548019587222752524013931257748509097883772344374280648889638440035127642352721479857323921020793502021354421199131698781975654568617532710295864979533784300803142505933904038389027295756276727735748323633909838373126840092050942467203672046759320495979074751768932354762902817399188710656319676279784626419575197244489233299027129661231433073376115739210213208532865789301251693070509507502399065749299889944687798045331791782663215398074048873317135031727363499457831041977315428411041779267763133067579181564293544016693038119957599424149187691311070315658897260339580245316066591622781444123814068516260214892173306205712539399343702024942845196973030334650160089135659704920977238955009676877572683148526426831052091071259033332172464181469757673609001506585848566331160342573903530503016889078021123252466508769191100356014151142940539563947872909497121854058041371330318467617660937959649142909851963808786060387545030079414229359608785243446937291197737552976795867183246187080531195255702433212258704017138515821278903956615308134781948064308528795417888724227842225384770973109265212689250455859889882507412180153804492081454803925662157419332021880839095348807933944451298331569655929331289361785221733513918468028822730323959895096548575225805270508991499181473034184649910585357091172054502939857580347843124396947705050821050538598948692262822473800604335429053007453370540922416179120928998202658706621747093969282809428456588051616460109490309950568222600232097525118531853083395216783315614081228223124367962882655821326034232853240864076547036122540345944068942073720095961957071715742384052279601839412354929891927039215410830598554380514609190973950561723151222157673996472816406491779068176678683956839580183745009631326890865828801668222841468893451192731140067789679562994695980367397461507800100913361297353646791487144836547827584446756783328030426282191834430902884419690615517759445195562608124036172006998284388922562523750088707589729919343426533650933908396842918791932256259503143054999051882480386897022792073594920950714939775697569602372030981011541711318289253065895810678848337842490286735721441474357295417363309305208732701577549275482810153520520355523177285984958514581097026523652651395721755467509127101510115484195468465960262420745127627692802284362491944999509863716394353979384731279086503598244014156043574031513330109091743638121147158613002102008325329975250820384662825016728836290239649317328837634824945998030606597254191611167892047379969252142927518348315684450763530123430140407873592040663310630298985280243970388425820440364754297507344483312100713750406287754168321635262708088831846697999693921904032976915703014698091784608609533030191847021956842687094308116359290725524656956069011088354506097872127018820490016161596871785715709274502195908097021673247056654187582143275129465575433355076760858611960741885167134602795397834092350403801448353939968706553224545847176072850837898167133123692364652276339090097802698504633306530051173619282099146260837936073392759829550853145342826731664702031470045445704381766541267858761914858552084856375105474291364319002965245786512437041910595135302911891467746651758581280109330526240398920616512763049557068679785459596957857195927504745267316051183816115449085969987394143366865391164162814238225951811734729233877399130909622477657508128033190545010270666186652599686451357490472118700777034781146628984361984357942938860667416352533050915675778381607959307243169756011359637072494235740266869043249977022542874016588377898406311463864974502976935688115876294012495554361581153206011071149756109513661488678363677729036527570899656212377234547774700225652339831617307945443238050172788317080618849798422875606115856079437126628810316384201854999297934318013948741999274853208806361141901099860897307140619379740113507583307769859975631336521362703457107457079051395844396793552932537910797030426662144273944226216201832580926932942859668200861453665158594165155274331572022540139357978764692554374033846028109940314503905494067615685354525003548622607344312957629987663361805401751953180934099708775834547399734415721949269809545569072032784252800041298873373859217748837208230043672114581970976706226202670094739402878137535659318547942252431297920286150490097063502507347982025520543294541031719229490100672432627189806686044569184460698700826746021066516884101522755578498433354974991243152115845722484142323140914673665218150455899773438956547603374251907536651902344438585485075887572701661829734066032197384690814945898749893022105090946854792995935874044793733346907242727621128484964694634938920911541125375425926595210767899984613637422357144088384517281986706017800155431175008756472181637971168459037852630249444299771528771175277257949956481250407056107924695065050008193210107516358825613676742684765653021865121300557174969870140410378810757844541711558336538103278776484650417187634379875085748021782997794489037994746490172560741818236144272592354003458166376123416975018764426282505113322461231619819709658800396288088675797645463519219589133018271791852504278853560769320774632048504290191541034469141691218129579057607912362735215336484568608627220787699043928366421596476515841407162016501196196876713113388881459043318670428445615270430251307346197158616303589498755207599435307076925114499556569257559550797145065193639030813184015081485727714395155951386761948247368706452469620878679613470048693102239488320840384380737480398781572737884151634781672690637547474990958539955904949533113676613237628104899329614998512505434663815379214331317334639437711712760246609917130284415142565063477894075551910085650887966854500987983680146899336062695174810118752282602763719089045872139596489298049468221801547776767930925201716187717243826177096708559824758905289174207160170301103749167532310806713523293256820799081093036454355595715147567584913639311802722033932458147583888231214691368562693432287849102319350064060752138686560569263148376603255821913976336332232573773743562803387199726788755241116774054846430509769439475533694512890450856124823867549807865961154375704376460456219111870735667032103554041025105964512380317047966707353447793666671347258489924947375686465092987433350620102102236084199644999442073627721596229861643922795575350510671761456226381185214995614294833171238778401380960957406387044970231530450180153185222052217601701230220921009437127935768823393262943514571579364990777792389459967793194940582491835566185215007908642524765420059729029222135191687843425992501346658350909958978866628554698415492373507193549620462268293493876735983538169127568785946494256020662597532122413104036741946182447035477545422521578193700212205662851279416748905764925768698678384671000103589765229501874347823923416095272597064317092209554534095859748317996197834376136987234393130029609192305224699491079204923422028134987624631510056618778876146338682739869259811229848147981610579578569845333366016427531828240431496172497607871753041161475033475530365128157172903854543214975749662110925533140360167946268147304062316700219946224114073056352229541096090272029308111345164484724189619297831058202925221036952084955337791709026573781320551864534868681425913433186719340254991434039380736206004439904749672569759718478000136526430144534787588772114652909926525684973153542454927982996129628894375968660555101771941639223557089413417332377711378470699553870207042004464783200258966315537945987664895221494547323815997249585989380788884471847721485451996049161831891741626493229582785092651934064680538272557099167765962430991635520872215202743852799591333967532114184968479658934919197958225406719348055410970353348931830800493760388624936841336787860979217602054596359234057747773092433738145376716238619863178359484479484002481706472688872587336692152845464100589533445325463346223860552467329199754527742350321723065196477110505475605023947305470127344795028425350723693048057373003014110876341519963352422702117655703039680786530390837755433876969353311987951466029147268504755201895537592026593445027409168300422250541033004473916410111299856508684576547158515561179472666179092003744650239311553185155709955915904802993502871652851445251697918818777805278457459224895757991611787333887486308330003718541735820336813273326742690782145200269948033027369602821127535782044490956783129153326046048895268275682036704233713931918692692662094196308222125692420174404332062380564548942724822155958680996077454882749748902160961438279100031928601282934808189133821766838381954164511832492502771393677563207689593665477229238420349431354285627800296561743334311201818055104590660380488668574325342488037301927557815527348302202091140632279339587931224099493025943349287259517060022196753538346438348402842073843766126777010363576287610768748609462606667333346036507576681347037620402271456133352314886093514340164607919929698167685406255472402401538031310475584482447962683715058404401837158662206529327792432981300301343471915067646485195894785888094237838649042937798300786393491503238487789309316785557256682565728554626213990544546164537930723845774870793254916592219960073198159908555232692291360886793363820100320980909235067119303072473818684341012435219399101585533078793953770203110092688783347298633568999466515530751475807082947861940486128304193414677095805589866244087196144964954406199549226967082707174752944224218653989615759321302448606941655321523408672786185018144857354405823656059088651461885382425616511691679721310996475801251565165856950413053794357853628571559121776351583061277401294970048866593702676450883595245715164307728054540754735567898396466797309268090479163728485864122795825861081132914603194363262598475702096408762688317890948610534596354024005078957380731887867350575146734801608377157235422466327817327290086137856464166305028705009938001341946160138827935115425590938355668305593842137443673201832501250104299555433931380431278008124930869694758631215588411322907464769998914078847710381300464531142064606995627039845758982861120652672165740227273428516889042216427566727042813162700925929418233979687785393781196203625665628544498859780495423891532129961925284766710391637508677471825020621929825998259474104665303534903032460735995580997356053606954660887455550404547943760648701783404487482974957821307015208029833461586992069341529019255507001582371781706684129234937217658357971096284916663590040877854870430288847137436082996248868801356484466841988640082631470064653080757231724541446704484861170609602322657589754752435413791641378533046603262436664897153273174752790781099616100398941246021799472508720723547637731177097995245625332576283837622135216910020774657467975387808271837888039379263610281392131759348362114359144400591619209882560349976883510895202517394913987693695752997276165183310992470292058365926415172097353384549323214188528010467090656337182854816054067132567023770397941105557174779694984605573714561551964789013244365529266463045906131333645082767862804769570037794688289864326983584722369304609996758963452650187843320350091186754060387985619264479318181051515905431030412553608355135916607220179515280242461689743471076104830445931388229133666715815306502998407059300356317464179694249283554406395452812984839756695052800614103064972567517340839778078409623212130681706553521091917346258760745684077950787765122726636824416054476388447749214787194565320358816997309132392998988646153525746353127269020822925142510933410342434498164114809292214096616655370792205359435563063394807076062241307057698669860411492171926426045249725831705164625725508730091074019640012511802322064664408928000636424444228736280086776188202740601889770749190354126398776077636915307420718540041996917239813599353911957241109387622780625661848593684781419831546675940528721592783464088166775777931003450210805808305153096700856216426182229166278499483731450869665219072790883896845713533257522412425514333826235694401652067730513587410927489443004486859446552610153055713840656065061323843071569641328749761664959663611733805300524287149083537771121397995832485733879899845311842256435855320082367539986503834315587952135433323256100838380026297443840517404089945149565991533029696984512950091801693796683755134064552928655759176705036932061885919051257069246696182732926120903278976736734261942749067383540497799286483314154527631135708990768415005240693224447916395752908164194584197517719062743836512803475927701384913256900150277941873771613980051257800511615527310463297663127733008765363095106294811522538990748516054961528325105508031350277124184835828804244030939061470417375402428259148260513188256721465625393655812824119260642032590653812086243346839876978932987051731366335228713544681781298693200151943781393682402828936180159176283267901410383742382944428267001477014191496784227844454437043730498382702569908925538693679628596084877861138254633785627523080559255669954223695965560762697261080821497637862424791322277319504380098388034628211939285849248707493260767024999921980153018798657400280070139672692343116969431880206801645961219469360446537085818720681226183638081917150599558521848488367473163597755268590039809499008893540099571799181147874980376739615683609802010097810280131496989768614097356205044289940063739947457349363471289276881151685203334055581709333492408200341484512203205804264116236482110990677886076866466574019275850781412341502963548355842405153331118743593292642998470004898868733422604272412013943486029924290986180841712072455690758826800954820224442430565014562274610505224178901572841971932494857710433641138172811326528464725571626451660484382716897931741830022769029968592303988005788235680387503489118048159687035031233974745696148012370957646345869848197788372805557767437244347496275710907823136002968096464683223093496200685052808973523055526660911624787178581653838408236463283601765391803792772806311300461266157298027308604920564130387603855608728010758892489169554945993312699695202838120015380160179192995177206459785494872565323814194713581401788312618545199866811382358838979188797790374540907872480996816815473753987929165878208115901552181402474939674671604162402117289472592972716243474136444493166355599694154203257489181890842042614362977813025273197508731287808963093323384473838345920652706756385019166336243734757923327369106112651621632252158432084124870427099907152485558478432681468788558248882049860621896846081891246260243861422434187654311982998741507123462952096368512186291166060486667205781632660072608767482234102694323377484748323042661453505242431549015267925625005920308221267810843521973596121303683319181995858652363516004558632736675247875661157430000104493702035740071038866375214147595938476743238081525128227712062493438732615395334888498687425658978717755062894026766220927930029784706726822735397447244664831771703332169614079322377012085738803785731352971550185109650947557761118574069101143245658205238102354027256839774678228261938730392542416839961687972609892874177220232242764240246143093112630362183744871488034188383431593820590728304210718229308241389091851508318645840389044524011152858857116901833077443204720542976253391290886879187313482000160710075877118488052699646840918507841524059883573523299007851519809504849215031970044090367279959036557582259430523783887434000809995032474814788170584948725999184976888922954848234970644539569308461148392892390569650887124387255393143060828062100354109337862708386785977031616609424152077582736883770806685435348584106535785554485619256592944613727950086068169532746835192913989560351254805067554156446494555670825629236655078445463460192782615529017797826170069802779364666457727039745799695085784142546323261239702463815551041161049620119072653668923756795846713617994072873423415450441580771120063809045313541024692746516692264205347130668548766007111217004967982629789209117159669542760598116754157767912141873460615988894734412965926573477493685064141489677596868880715969011507997494873083573534191159805303622950673469349756626946327759683431618423514934823802298129482676062263315942146789701562238580990664574362349408173980508911749580896482684229646313690658072706338851118989206955829833313412741964571989156357587812788398900580045168581389230163372630388840775315683714009396859644453293996824987914833201036388323665472952587237979848124254517031671180967499365382184135603381777326846529704096185499593612908750942964143582762523234066983514545020674988396744545741955103310977185423395044606695129413717465809595322953422974006179788966399089949065606667479547323007970196936254595920125361301000290042601969942291551860960435405213265913245647208287956200631953258711501967243314247200462040074239723324693158858638762769007354885944318686915704547014730349845867433998517413674501062557600622862669970039394138787129814154160931920393735129510464856435627360195290493004010509557156580935923602623867818379719696000065455273409853618880052812247889890338002508268952481644045129058675570774026611544589524615537551629257142102380219615956629533884303463064557521124380032310607574663493300338578243474362481153222734723974781833558733557695756900092048382509602771636399886852644180114575909666894754211874002055081118791570812945013035184342460327861157268111729771269891801947397908562058328854946713938937313475580935136442804864547695781406423130343509609600576041559428451641023181514348226762929488373075932851425444527670095004515405853911838674738024455997712672681225503164492398128635220207867980922073513166462490208318236165627261580407612316691324197979517347284857069039804159054004237727369916240946836176813696486775926000660472724903321440476408897704475359541985321768510504097445460011605518250570277425302917829288845200317936296260901894737693278532412190149961915600956362815732832524466246673157783057988151859513037055086470710147497019989918587313857790355063360927845904570709859724276432792138209038640916201952886383462582333686488903426851755144368921083996618874201930608714757171573447221527103770840954047224470261914889565531285154127313214676449682615776120093282344749000336147878011633680277358907272680296589420916309887881489943080122452239951437323868280772749452751522988140848740368625322115828185525134839678853583307388712772210548125475754617378857325272470203167268839000271168701796239975132353373987148446896403299348457558575525069189757189137040436148889529204261956898723178804210382436969019873771577319943062020143416581732389585971733093510509523589020311156998248095707949432286559051735948170379603447241444201546550051400728709695177572670763750737690501993060104773910616374860100499860207297905630616515853940129258299049425427409464972133479140365483512235535482757856870532517047772621635644118516527511197410986233243928546515438835290503049632975987341782245877084222293522976921938105104486201361923983162831186923398122854648029377930074528960212006834006229931021925829201226475235272918304877853117362231844594938290159348929423487358799729604831855775944527522354557777749139924447446954331203898891798701581940690835695570117029409199158129610291153746308482195640969854120074501721854680248858410648589058013037786483956635725740638373416056500332333874619379583111224286810425296300229924018740252284499115301369614675745997883600410344707591218760341448259879801085991323380834180906705690383125431816778048758112968294104200847508774455210924636006615736129462950146102803094997308036519583640494285408020482360995416256220466162722906595897409312873038776849022519167971094998499538744985417362962517357998125897211960481720738241197697335730940001424265783915039620527920396251266733108462608569101512247088007556890019748505342240690587531150517929681758560724899438483295090109019112733556722534330377384576113123044166432689072933132843783907509059758572003127006609105387627420225000318966995356189752885331316318711447173905790577356951893799097846200113178619960753656595117879660250145068107201901908022018741694863681323792279922279126724105486360230304206817483728546471578124105859298585485552491485729591219586560885081115557172827346535103598958734147047411065096222261507973998924965980238291530493720849318329099405285834356412514190312977714230365777781514566161857899644865423936217290992116533180005670142733496234663804248395327945596793444055512932051253600289429174972746343313550583706623113879693021778665045911420440644939937087875816717531263532924387650570570327054752381906116550581878569893121763083528834827597906632452154315249947880651723063313659265128705275210441439428339347539005691506698822698219155180215364095074180513846088979152979865731641850900295970758196608851493647606234229633566158598727219972369197588703110505056908946688377789546458856441902970222991858562288624654071972240726776795777520822492645980293239941975047863697566034158074829074096139658425673243186423534040599911192764338594926735455451404341215498566589942639357599918630791717869861426441866729357697686433106311928100687417507344793228897178068675999740208416389708556233934099598815008672185003386815562171425655126750059349743975963077233700463606300180453719803441340074806727423419979537225747715667691373244870043371254154074221096953729466181106001972146246636636819171458483362126356164766070284309078545406115862369528370334268685996191342983798564068464221575154042260990584639118062160698274360277795924434358706991479250023528812629196301293634045719246205636752676817998000969677402136407756626677473373811860377221599379820875620401125728064238909423050842564499183684280864528203436723320319815081435534112137086974766376060735653675735285030848324772062701253524462302529469788182768234491516892266899226882755378569271637453471927423468622079506404309204179486889118962477417360043302316054272248828141413600312563916722272138138800530304057784157752484726997950981097177877335092441123195784790686136961439468651792424932013166355233746400145226505452998902819517713364813907223512035726110892213128738199350094258297399074621725923864006843971946919429417858946040852668192937910096892204983095865471054576952214428165684229313735247283632672304562792396471060618099308375572559091014462178633688982606807250662821252090014175343030578152237558282411939740850776338996335903149658458353830349970579713635096964080815221257333456087983844725549968417719025169837246426411901356626742667065978488670342467229944739281771239216199032623924080035563425212328129008428580046136838919257281729705110385660348219994029665930504033431962960133969113996055078740897429969654669119561308667062358781939082981372880444602143534339672632613450247493135349243962542166998008409426295702610283170868822156357130380586213019067413383521920593334382637996347021837833283125742298102961779040723927357489903043225899850896129188955819517426907663417028167054963024232514639883076012943142706971595312944652320495488131808307319411599074132359028938173890114038773825656528651132348057267624521957797835863863589568782715510069750906720953885739556952277830590500700731183399618327612655069407237385425173833673252037598454876357583827791587268007126228923202938753640353106052289737081896373041845042750146260007338956272482301892354912182227345899779546002217195904741124870355647594794915967707410642901318153699985541641360035940456485289418598920931256601875174829309250009665058485210079455771549427066317204609920055363840216001663300400508700615859189527117156414596424073349733795524782257241777013214734938870587896679836976970449030859994081653710118712775711032679428101221999513934906596437517510446377006506616878733275345958558413677874163513057647078278085859125069274342891634391168600607747057611610255644200002006170094075027527910483319564217581084150001074753572295460166247987500714079823595561810128260404488044369179053498589106444003117156335983021705624160083767115133457390705900668767608852555623236523569234834698526237155337438844030376932654021314084160457935358151120494294872312487597924692993620167193432630646371272803025411834138297593013528293544238577888685029065622609228156916175148020017184101076741428579685484272715059920039420947845625592328364609942573390983447736581899622968753116951406053682786484218703629815959228669449117461457905219560033895314450946315060639040511631573962537079093484563245396618788684181442450690729192368694545712744878175077879811350935627558664732382090472614112062693308960703395003649568465226624167659037750353223174161782829274190782155145211485268281040141583105426512583828891466118962016861450127232020590133697383460644990703251583688171220958778368632276828998501194586464545585115178698326374868350773213542700850309934477149881234576720478812190723352064075363117814285292024669533311916311977117050338016597064882334562417304805024684678168969076331137944841309691276379010258447215776681668928524270379854820632625989699125377671328941657924260872342953343762617937989498612393202511458898629949993123682243520934552752286149864162588358703802755261083310749651913975010451123227311022354570130677200070008680868807068420590177266909548580346897052916869839903757813718687277173979258328176639611452766855010222595497927436465655635351092392392377902095113961461671057664668651662072087676574038401256886705169130213603936682987278255218522892515690405341373567299201798063816889390078898840585376475188363111038550783605060609991530103190283248209369136851659904070397800381002032289127583825337967439279439845867409698614374694156731973539947075713459681364226974896699308244504230285083098548598879334445731838186217405692252910609189108750451956312025646769484879104967017717044980688410764552147173586623388047216922111685126962241334128551054503667423658982390248241576933146306159566261580624685875533368119300672767412759350388403537171117254906074688226612849421908513794492625015850310913612627412037093575527733936709433803529211973240385437257970071373961231105889510400126887488979338854500967750898168705630110488874392485833748860543433689727859582885347722678986420721205937835595903932984389877908594288059347279173547002658864046483045315132166428256476914461888292344323493295991164993059298841164303620087558084811817919505492381996130021825975543020663755106003790505241273831917121105022206727734131861480394982613964458358583583935743206329338380100228698142279462673780896176855020505439446223318116932864930201716039022721924054994747261010584163431676215957477893137124746406492940511229429760956296244737536043711930077212790881221726222421961542243913551300883782514223078006230415825221494218004212303355711383760603900525919354522526615114314758820417520728481756899206673876475514858908154778504236317956226409049214355722894238334529784788200434251179045985402057641429135287879161921887281763002529283741321942345858945996432749689168119717835333632339247541773911221350097238149663307278803997976625562106427046896928172790009057133327396902452769750073506947561717521091880013985681211511454534988424392217573206485042714754071633933068849680406296535204119835607170944025172877823892456414173215917139802158870787601082049735379983372385228362510203608858554604902226864117816653433557423052897126341479751261892510768694267793624495750521334611527390315137764876139469118208575003379851147648133025667204799134839305830053685497111328735671151233188518591676321847518713870235510152761443248551179692688996564204268223123694410754956730736805352869896139935190182228169338659011729497203593576612045605481476074534363199921651268544276871556248984690520211690185909427216462033364193581430502160424156874280643808624802182891750528960639085475127911366945242328116795729499602161834015502910312071524566352134911451058851757429107023594877768339452901712954600972531853398369987032906960992075720027899395973829739472351265310008163468841444547217007647609187344627970600565555941717144090646658618206281778699574998670507369736213627736464458026648074027142398533045234680153731209021361759477384675035103705568205271991843285465285047685604586642012033425412677491434107354901402797784358605689588359608818696815086824615047247194233862307850662012273420985225379538019228902582000406242063552784797297980025699502788615412690430653118649826867435913861524106263762650817010713914369114232179141678998274611775441098247720553433684784889812103291768311368380235872765909720009201248095865131940723752548306697060361049103115067784421808651592275149217509962324402980747457389499490674650557227840863488235177686453328403860477045631354956388208319526994879217668576400963668405976072139014480417991545194468390478112485016250658054072580808811002545217045456968583727638222372871708934035826629289223867196760398324174505978739696271366887670505395343505188474219054525317349838880778337902126358129225786450014007859572749026197163075096442486656523541325966351086240067668606387768336822483059215157554112611875937527710069099682783132791054451989832283361907071830347416030589373896550378138650252124635224962727912200916769224894316034281363058515682391047985363876608190549079707342992687979160763242254210456905032664988380344461405859720306825965385147043991733080044370054677249254828642586929558078594480757982552646798696624611873871798340666250233061793045757223310343844190844674557215910245790159262338814083954754128839299323108736882335902305830222948784780376570729625439109068062819378998081447004795789303591314676147083882622405323457846474578524854826682493600708806010533549299145379936531803510736112679199118997831587720099200870076922270597303139108335263364481601279160605369708816504603942057728465537638843334854740416589965435749668791837076784979121010870982527827659901859722029592054475108385103289877034967323156269846875841210703396868663223497580112060486610924437652075355320382712453002131954566803317147994849781296333485362655222022015147453636370146102369795912613669840421297133076658984369957920764088366615004903409819854053378001533416233651962260768164752767238207867412460261988346530590066537857838847411889838836851865774365027885075699779751844600300831664432916075910020169928989637240874944899387336707412324026261950032023932565917934143602622705922915568013794416575194533326920108750289990632574719928632597325950095616747391895392904887225325159435624062237037386086225472670271422211403185699227715163467829370855765752975321484506199679820147616034569191606664601825480205540129708657752156301567118086387117365211925393711827135143580789802122558324101690420886666879611604707414833527969407005009790121511109468205039526180657783420433135001320987285346006966745199720668685449749525129556051618486998003668670674501533099525393668150945662484362768345130133021960792967476489802133425380043371653620237784724982451666854417897935632441102878255416995343700322202859191453274085593689668424621929233518566971741000464454070101662019502814577796804067444533653158442277009793847306292808007339804656416773418786080772103450900560818103210576812906974521302534103991095665835983227233776649426370606469423179635937077110593521738092635502993353224454554564301396839001978408741293885546741833331181666120428235858040432710488286011518420767817238825563770517217588804733684748561030835669069973874580736846228247071228675768502485227078998543841990639957884543036470395834016883573555755644530375159574383157436948837331831367225510980051149026123415000520957214477033212303917823834478757922620328099322319961507099378890098836668895392068832015674128871108925049576114250231111198675358715332774454336939243315732357749340066685019990278755269080317958675574458138420735074998967372736710181592095281512655882879710043943993276792688380343323724727711119830232141889163285768703647629052849659275821688263796313158050446867216788378597673577438612333105449381323057175940178008399183282868834477252826519053186075835006931795407686169495647096979347044793714088198129468154891445470786528512235448730121135212228241619667429355555546449062852853503344023136809368021897993378957900364660934162866996835817239582319732165916833437319077923426507327688590428087726355317636837296072539900538396699484183886282296947525859988878238359076636909295761927100127657134062900774296139558927481846380861935595674076286199888510377175658776535407362607979598949362369886031668162712106019250569986477604018324091743327550993279186147214886226635913048389987406504196770442886869573658723984918050739973446470743969630598619556911464426009518892318665285724755708587663966906241836791113683843380575752512610359480810868853244616534760323524355760826657392901027122439834164771710043221255364079330333363275923076030677731031111129662003333387160710407998595743354440083962583360556973920067380839015348001542024300862163383765362906430229112729641320432008900317458499845938609322547522172501258631469604838183945081424115430407142471951311153534729572164715444312475766507659752585832751087465821609584859850775219352461928032184398817300142433544058902039898379222679074082336842569771961085060502646611445026326159400180031684702748391923212650304004374067807427861284703929781970027053094848527959300689634636593969464622403031415795476564794703984228723593066486585910935621298443098937185877765075268533538176723105956033338450524315795308444918364786466386114060994826193342240359529420809180917759521139197564586312371404334671728574982227655235362615895110530849801378460039683291160039768815774852738024453238414230630047501335354913964619109514949611468455875991480530035731731692620952533319281629566286825438214049844524424272325148968678577814420814345321595246808529254967739606313498490895957322212566278997556844617563057448045208021095042918190870459684360897103738819041398058725135440527874869738768960817128069678985503028436758160316732043999449078064627516231316687637296238057191178919953019770675242650415176741079179753962290717950592381414189519796286463775208027414288375586910476932667529948520192383772931340233673187947428851461226661399487428157037483023379889768686474990258069644310736392104978791475841612896742118225015072753421661110706427518407253676898319220876231828740916510766933544458766360005345085535269984993917860138294497198745787336022135551725687195927332028450226915021292993923447077885747051482501273339928967341772877558545653644720848984972766484658558437448142410129518805684883896852310562873062612196697126098668064332701724253267477666329556162186100169750174362590037843858170393788651559027506490827397829005369051417475722675411027970445791207433336625832640915470366417776592896587568632722985598346140302666133037250120458289840992434160941020540731400022526910452068071376319109565866917746717577935121590102670256610876774954435413419660659026200556933568779904342641838605624628537528984191834304148470915181007721940683021073662274137071907451506218249378968129971267824881691381875247193887039203460546403497786727844574140190013542968009566910498950457958871235796982081086694246036411601764163415780288962192174498361509007757188277169017169778095910620540692389399720089246350601625649951517540845788014693823645165094785760263329038473846585933822385167466565480057758634628862742172123679572116259761055574287614089262738149589201484544580774556872411615158812778767625141207216001229017551119775229331281137341946410740266504821768862397890407562435394764444523576250934629088931139641781247370845789261508083204913148862402079600087748744494856582761822804501362636629660739527921663653735004259948913401725437703137491393853566146879020730430206641420646643770640275589811313354611434471944970478792298922091463224679681835365128346527107278979772110021474327168066821494941604880757698113087160781145885716350922759672273688407512875558559176169964754128246771340763968112477173575144512073692110670490912514316753534256923253293054163992321475065901221268417671369335782595720354851203392284519206612503497513481129282089329635846454937113859911953275429885869425454028646659891429398475708326527790961715908868787627753848799387787146806394303328712745887826012637823160195035222267779045949070747854683008975286384721967943899940997789982520402339186836988778109319808577740658992763733853196557775412982979269205454023452807375954518409239934097951275063517971319439866165701110550612923129697977082435635865936228843669181322031626528594571680062756670593140363223255138182732279361014537450315162707684376296597591189074682680269835191000134180164084700878849067301752722111105261156881628997229888973867112133915523546778003547219871309265250872401212100989350300581546807225605068684733948548879956741532852402475213217209584394591620754375429001698931698116249332642115098387443078220006125823123739217233698571442305143223616723032782781025136175505479247482951794529208019568274471583510978010011123917930515927881506198687481369936012341131263002562539689545165057753733201521106134027497019531053954807618549608054583740069686080652202161157175556709489743645078084906606830010340875127810227439629234214720709829686709133851473149885931314981125409167188742285905612204756817573308974929247366807880205411063429409633700292845308183121797505255645841898117314275141909343427586191911117933593906895611348975282021154104660806552078446727640758628687366764205662905005826618530025047144358316405872389421498841532295179106065204868725894141919352705623301809481381474609658352418285096055144990803621505086496509897777600872160019258952996839887427560510801078736393176837083580102202034160244714859255833927291280846790402011989875446211100283316235511237612745254594005237059541916079397699193491433123979217325677420224722873603776371801081994856956788337687025723405158327556160757687504559333132560805935556930942330346776231970024000376162530035448716381585777841145259524316712460533483420659475846211873758135120535660585155515129352769865538563756676297778831164568144357193672087632726502905608970448199901953919700905317940908598587701064125677045049454517965049008673303177184558306429215769402285209496106728512408697523703780363319883056576964068738452393577295229909158865436507605573742854339725480963992811808468465635922704494190455405259398942316491294469983672974799889498254355814106422018144707379971736520294897118045294528103675793121214940050333757672703941043065685666380748558812133768085790134983303226878460168468187100083469862785811785758872246781582249810547406683326016626114657647181335932200603627156677374736625361509795610203817056239624070166359412099434685771994979688356096993615389796151604909042930817103839511916017472078215073726236315388287094016495007390132717222777485017163629224163802096155136381378853587414521793356157055779910824190023450431843512321354660128006485619749629627039492107329265583138824208786316841932256707489817941204176110442321485064621566113549664848631682429638827932755313189379609680251087451265801010906910473746003219023002931613799143829064405247753170093715220219944794588468211513468386550526498169928441761249888709654733591734499788318801916943593121201815846225183559672572846538322875156934188754855067790825778007152724349276652634722978088618567406683067457009458086932627838326406892561283428317832201592740587864612426317498798248889724247220727660560134900346661822735085390125443875865740620516096840379304319958210287822844342386103948162391625845533336490931845349228982017005022633387400674468429904902863991949877592976560481635494137237297121379125328593178847201654994282004681950779537581665176039526281542279461823362344796695595281967262151284637016655475605716275895460370178771797943348418026113481948433170516155317527418369648151651967227558566809149438834550128598359124418885482587148862105398117136908544245020417307628685896032510097917038844810465499274558294793642578568788964636806016063682912233100068404290156201669096241740212265498016067277443258486654852069409026542194354149660682439875875842701294568369250094057622234979758636907225762886297150873562746272069791888719768207485818356665355773299589206110831596895555889483774072607213146292171401789868628669793054745134929150804386843590101827057888076687332366144640330654262426647133797973782809166088799085295357292131970522398906359676304573651731604398370846097925298322649091116668138007820026597496084053633826624627663388614961472702215471348221641107461569450912757718936733675855531602081918595732377867975134190787719407590314142295155975116103091678558841731867403219128867306521033789243047522545986568832956903973135084180732532646488341915111366445146827289658813795974570635507648180733572078116057986771161649305737939416991812686234159261272300128974774216289525173222985678825368487210485763100089896772897105166128618777624038135140180784861008840143655278773655044218317242163309302528777194183201609162092266940788983827121270244010712044570356645662363813978894087615527153059376118956027774179366784554423698780920918585575899000273032785686285553116268243393331513881979174416948244808258128251007263406279093967090537321731496111571120733578739644156758838052741857783364508385925059236492700784019426132333619044698877835099498332639527132214484779413037410315483799736272903682039095910253256285408813759217069165922134553502610272077837633674379993881548868231507036593885359146829422590051489468850948318639524310329090984690682910363656587039127559963580811109050337147022781968942640936608614792003107652487445144088082882604456172832328765583842884578190819979638472050306200349149597908196342818369691030889226471295431590351473659208245856754543292290693146371554755597598119703878658874020460139221886701341010780643105162831440136398039016037694113144372155625774784692698544048734478522473717317185637969446949174125878787191797525882987072509232834848775358593057350151468970800362792883899038718571283420776897305502525111406774881176922152204028848515992479039169500992461645885097359987339861708661919342456513753856021356943170191217992101967207815856360951614183251197500336133703709739904628379577707986057507493047345627495865461967268647568982897154611016766939177552401390012902696910854071689919455759909051438294125267477047363762249484913403508538760305472590539806941026932288394091685892525571624226188356449525058892552824782543495388919018158167993427071987147145945895008392416576124538453184566972411605373515011212185396546409299005775783477903108236529456955384530711104081976579219435793084061032041232747439954339662810584228101064799762511384218428205042337392724860645057414753129659259107849801419974324446182231731695049959702493258062675706712154337366996555111557690977321520526561141256685478908575177986762210428918938717792479546369481153362531461308211478619426989959433792121429885893677366739883140173005888922749748361458122033378918396180453204202222413861610351075730471532269398832800272419355080320102548901233447408912461916629465345271442241809207211224147927572870489310142913144749774313134212950118167412827512588084154039980515688727450586718626687394256417364626579805604861989182709367263052403717195651907602733269637590506133393899569985385716463285805522760152534860725070954714493158756775075626704422219331373209611152894824437526538510787065305254504488365984738385798613072016194255122776018762680320558415210005697658307689911823458304417213104549742165415264902617112936782794115624834165028848568586993717352423330592640752398762540983437813520177370899642094141469693630080567633964260380890256945384790387726662320975372881543539580571869653522632978927373422293319837971789584121136737292815484818094130259167923547204002967341327896775198686944165999614385308401659640797591400136948465939192081770091333004956923270731627081964505854264796666737603386418225195418519086493815055219633448069231160744680995727650655032481652352034508247556231871589950970699977466560082419353717276946266403314660411034455420300040932504415015353507055988710873322804956044175014301323100706503074436586985412825976689593484471291184274073234773368413162174555026812893751415543651929439182915499370215726445137945663287656591908092693719874177100783591808303384030697027870768664943298427145014397982896222619585281783960703061011249160873639676048745713568261156491455496381239494059117027246048297781704908866259567714317944905053082119499033954878408467086264543501543619915099265083628735537086658287458381169233292190023137507989622793807718851150383646013080573247290573114121794660423480177561356586171233156307345119103050701951802657153554772639997612634606568110098631274661123654666823448272579118336387643364303863420238535627747896814556807516639806722177375807319566660600523866532109338986886779036586802219183499109773351110216292365849325211784920922554954541436923592852400763875468916931120921614379943420610776977526737181198961311059617971648144285942525877730376552861147338568370051123734419111926407782841336307491085998439498725577848312998310286529244618097607140656042208256340215647445812310430565185780814437693978616063381121411852446514174907599282644664430302331370780059840602377927918763736111042988269012274116200146026081225354803663664922344252691837541742630271920726542647101442602004358099855513136474451771657152895993446561182146517593939739235446122236611271501807021460903068084011645489300716948452589594738619413330141937920606464625839161077293096627538107342044746167637689967080301570052700122492166558230189857214053888426076281307519512035310388029024962430349912877422295143902432595557651317328767778995094485641476376858944395918071794348691250538192154348776766736891821944519544260713798909504879318953652207968022207763431755329643998318602838247712984924046101343056738360369473442446564799695506490285681700966860241534485892261722551435933586446606739082028293151793531033750073639939465821427861469120961445350694462130772687236662726932703331527378218175237269705175254491328613010601023225285398949190526018772294841352752085790116209191609429107564573089668610021100013848220879201493691616051105773220891942481536733009912638689158736006984093859660367060445250147835261818034939330907784160488830820858687360292619123399250778761065119377654935663015476997390776790976601616847443837347877089105352496086281701096610418717451563399557094833576104105767500179596956066738826246435989039616924650154188198441805591219572206903674063427583912389988340820134567289654394138772996878162027665232764731233647887202595316894992274329630330294243429692042918638494483671487968642894132121165315184586959822492138987708386070695201628900320299381651851021560965237054889886272975556494421266164192559448323779839985869201294198004543372181888688922563872390311974176469115052412131257071020523104278997100615554032458117099019886368245873835313873460206403059427593470302297939883235703186677144481186432279032601650054641259105879129770247007471933516347120779294555788423364548335524837915707124893728870084512782395425793122839098580884702174775544361497025378500118607302269934005222566781204207082445143232497933351912655482466484994221231094240063978035400202722328886836495931183932695813367214359064866101739819213953737472954110996089337364823784826767109075857859044038518470129207456491074733204795633321503539211580479903589270224381340695660649442736007783954120991092061924485289339897994360824265971980686588514111753515218575094060416002973663632158523056187404855027100920932499426566594897071974208013948823717202978194703300402983271562098608394060742279762645790512828885385650044491247076180843522736693441773354997677545344299462803256901157285713615868100041320109643393072904652595366078526763665874804069939939501052969795310567433828579806415143535132537502562922112072441204281749282605467158196515425692708829419298315608918760787823098184112056786971484098960934397286456158858470393811296737699320087736449676352931960950833717858413126165124482955642888329310366824974958091194058829295191892401899863677215498314665690455380809293953910073524831170924184778759428360343292513459146299276285951695493212526534935311119433888365686929365064669251664618065203625202947729755247540577290939225871205132678436562166858129035127879392958895643714409711938124923004207398634712393289779555629007420946848501370702982134934676874676992143555670961126385267393606692980795822862466568458011710774306514895451118019891781086257373042754922172482113691734046251728545797522047710589546045532952073220365549257504288102749635528385326196132472056342595876343809275983003966719514611296326389251006087801224259900312665843093506072197140482616564847718170477922974890097928492066698748171803851478209179974505602688253972411682603897996034796546763338147206090949825883818873216295277662425536063990360700456921038673067512979871127669367741599567578144046333678035073765740304983043042755541476371465015671184095500483225197310548426390126681668077596113046916876905842386476418276532199092082321536499920979151038263067577302116852006201203056652773770077780004449655937957903527796464583440700365199117305009432110385058884733687120717235669127482400674254427274485311486791550844881694565258344291667835079858633925197128437184157223440532384678133835500590488109814920265169412943214592468193923152095734126267311807922361016509739393435415974366621923242425020802503832546059560236063134212072150789374567525564315281974836019646912516671511230991944593761276887290869775882530116734401851190179264026473406065042845002162277971523842963181025052767572818919487465265464113774538612732936497029150163023375639875852746740107749973978112898995286990508612050170371943045257332737816821049369619724435684022821290403898854500266875312590359798255563201627107077166789424052546236993622193262250657866651989979798409544581155972391041602662774202346265071438322730784643336105153963303805603447556396733766004029748880853728161755624338574609741028181711125335453792864955149691984844277010872359611598492406742721144826362279594628035001824260699929050683149998431573618996387478659258040447841253288839834852012897915902940869631317422175445015717017022080634643181817563040082752355468193785747144071724175526335289947185469172236195813662752951162875098737209659237817204084078547861570122532362050307092272100787567882612205686403431725631233730508737250416643744027125760926483753007514558509124948728402694194472933064162982476411582795796748808285826757964122245671905994885030070144703869135342250018050515966904014619848656955404332723514897005539909731675054197840558805896710104145699281437225213742157593150353215053740378163122267175814948024533492762183237444079133259143420457546863962862703035384119624508063412617066084244349311580971436160125202284378076769620828257846240197213602414999500910183898896982962984283767790502559493741343854337226187210528551030046767879058050805921847412751531422344259226001342287730875167827305672843076247080734578741548795870783315832582757581935180180347318279481805112163057089484519327519908209533884426661822722975280997566659649488974552466020428471643186179907162767608042808874522339013524385987931014784905049942734747242695068215812149689534590900692093409813347970618985707762343112205511185048940041042356620745279183421084117760545211898501508430446354419344101252111173353349462590336358648488197063160795021707086371380999471733424793152403914746033889506223882271683005501343562681707600467121221882941853522460841033400225638494163597595654311843803474267044954784954444764940759939399459158353797151934776729726554032832019680717043620920151898374593226842942494111746736655588202695398757478749721231542985434391461939982081974123928707235039342487390345213470022714155749146203749883096028284146593697538175686007868620784416038928186801684054203041603419074148453933312771820999349210149800311193668290029814208298404458324148976200239659832038401570992553726514417214716669294069550432893992834056726628223660354772099099346686146244120605419269922115804206568282076162412343648702699391951257162809473575278489437433103177475228776874570938817758102926865533243449524535939422056348000372666235662793376556152660270122717636407719253478313382289469982386875293422701558928833210611038987550474305565793967377873216918525790584927453356710529539537162391938051565201778747097129712054440997474651414405888412870457147644127106728406914601845196035477661850599201088861145435924717936065152951818615441401164728121598596170683685756006575531525792376039778360943722007741783922461931920516799975596664440169968721796330076785371239550555543689923054018919623222032579129432871278761713376361043738397215218850043508570562862631741011518705889406705127033330948382612650022695251842618879982039055795838788693979631882918111232391201295011881712601873946296957415748132822760656063868761187979651533272713031421234613571596577195602014053209289510857217725552795595446031805273144819172368161379425438398293256151151854240676354933371674115608454704267382574695981741592809059945127729272070645619338766495875773425949683667137652552017787488439373341361887613825630800541903444471851042720369250357512493526777067689001495324524454337021545929400117737934984654482726019368239879179809723914924439728923598586245817716164267733464599325248848226478322931811085560171121398391202173965816392079770370201054363296592487795830168839459979462433160222526590233885907203749847984876232678302790884705655874017106905448002513682317488232490104381338045438025350061892889695084574644618355799434728290726156121019478948560877371878525727492651612099287489769296854324404894427474161057032203321027781329948087511189998873994726193725646700676042255253575648603421056110952696190980710385645262396076919477863385956040952828163485103915633223416204952033005206426904983958526828211633876044183222031724484521736886639071424718302721773008029868368866993936326927424737300232245579327141667446738178603132793481086706904010277970767642526493251687111076956773740671840802304351764951870546830751859479547023630754601678053455048713916977603624456222667711911827289191023256227301825981314453135481623139408539212475553024726269539662673832292542957441735594671331347911957718545308916121450263842323793808232766384532456337138733172620924177405318957602934120658456067184406723560023558746843345943153217003901971152094324365317659559549636505355587511319934098694057244001368551075733203599438058068931635443428227044434888896635775295933381124973129588818371487275711873561838614623807921726763257988687680435861401546300056996525725931260526196383347782128385963455426163504316715844954007393145487428113434605279114281541212773076685743164327586807973608828503195995841007767125636302544938576317846000593541979118108486239037854121420186636716514782368056087272150506353651596754471254334655970199436737479104671565890529879431262382962013444084113180113969953997459298280462285553516687508345565122387390856418483852595136642250089800245751728559608756736536181017587009560257143404716719248028130603409604304181999176879220202536534722566812922991860916672167796394355583285787502064286425374785979937902865173962627507317310497708134098630369772125139149817408702178990454273339639621867959276699320455125289010813108138971213251622765184558643362220400999294467922695924898822953652460052573140781649536138416243250318624193951654812330592634250957387509893234040725851401609196000806391989641936129722031956394470128343305360555233185350198046303808432146217337833496874032034467266207317389554743188914150922191811865888494049619091624713850263181799609206557256490432671935595817109677795368185396248332306607480953645340814654626831602764475048675692713534971900386833906415899384835687472215810716878948663284729379114279277499972938228515620353914656240163162699652366188840095171562369796199327805426013958485470399493797854731722420883513672846979331276427450345606361407792915230166543895905275965122185439646694248729113447418959535038932341026710974991930219917218521782069351390585434127609794922949854876205363629385318969347579483719398737017470674432650816815694252917293964871300417038999434224248247978910904327250474986128478819721588102871953888027033390351961611291661310522184609832701903039935464756590288713269889166751108154994990801365496592924931096462687397458491629726044186135643905728236633957459731722521647936116733961043116107521059315913003091775954126223993108023333522344600901161374484774432818479494285476698294618833117969890446651768074053373928867709108958822067860069050446436378172068290217185830484298332720309020324489774418397518213108601012988451699246642691638829544780711014414238341686396078332237229728124554028206352368920171757125338903061969287195085257865812212730792649252725505374075226296387204633199195430175131975464984896961253428656938740663995507006702304153249914652779415666296473978705429067695889839585257909565985878250928533529982786998442115407976081064856715512355463182087426241966812852193061113165983529661232991088091099400976215292904936241491196850949366298983797022619794655788071391001943843582090453374194315898296204505851211212601798739322984806772603351720305151450368158295320917983487390654648225238378094475171253268647772768183574698016068906662185998891720822628300124815219367851495308244076285298401074250175094223418274922060178280065060063478049459267730881975128556360116356262990284136642198333587986301679841306775943914849064397642687620944373992571237612194698722975731398297288330074453812184550505835558996450076523281295888002200992991966633040735667544680025497043262645414575352550542496290029183671546960438753456965070732017777731582445452931350607979797022226546066542270140314362467672169863326958810790037086284945634894206641133635274550256761938823757915689317699952629640957811011887220033533001577851657932579967564043111781943148903993682297959609315229859574344047243340116320738129844901419501814451000494830115270514173705675232337892491364817955078164828314408323657889452387953613564804974994338435095511543072055941233817301870381423322496744753831720967363382184473843640155691351814946973064960958025575183669433003512830178829681969582981684166536914059207631871883942235299132618715436562435281694210339229051513501173894474740916515716615492576082809135666381538864280472543613337427700134643407290745765915434369863833656947549951646222860343032896478639707091031674596149474620658551098587141978697444710507901707348989205553461738478396150402621855110659248969585656171865059372636222700541566935261828385927038711993917239977331210722262135317089931688385144444584453025691569584480983947745032141415087866027472259040853267334705916335596290173296976631752726657515892621118891748099927373997604349897087657291996448699510758151600483140015336433292382383491394666158816763869705428777008717451692104187301898369928443844336791499053530439287994842146761815975021883523399660853247459241502641342646383297308469966325598467621789754464413495593227431543294102700092126245379005345553546734638426983061220202440535231187662449449489707251343531400788848796873805430698506602930278003927780462360308301880866723630973233351042531013896779202813369603205208404823238339099831408927686052959693244382128373250626487778203024818177087397625713340074362824177660755594334065563047829242121622872456815197543790857081138772269703560328568414785906708856696675224043821552706507169612625158756885916157662196564898782405226205627826888194578247184425143002132729976862914582772934927993013632141713448360923581847984991165528830909826254435928258249477180668668964164478355980434833561183150873939073414555367601523712650463918905408392766961544488546255253607392129151218306736286926240419802928295357887732778064291370076011084260821278149821420385549611893652969290872845327232106324682754530105310069913419996042409534034807560293834948687372989816304918481548078883446141056193351744316894288059709434260927193523109588742927623357768542789063065070438766339226524885816320750276169498230639724903578804505173954070230825980474063010583850684004582102764734808542561788331601902921435201157364278036367092187581478214330582226529320476850459515186043928868808071735000579572394161981052758923472579781439365249902341812000149760349704274188058103844474836338897962939998162024187710868265094865676302382148817936981471036784761263006354757578709486776887748774557306098882695438574310012225325670000213954732234108693747853187860612662855676031697245000028622407229871145632160873976802634869873529605175913687166283471879379710316661765028276953315513698075839762789863151402414655384775230977243153237104356558433318104584077272928680578752862746137363288886375751200592257811981351915545946344104994972942485269140829591846425417329841797028956019635002150192328619922097161212474538677126486222132473506556042372621893268110953102548499522107097294023971407666671051280427612726752047388019710236975986641570437594329312274585222243560230304691859183711000470162296080053379966627490177727345774442487952428979162095175487843998320071081352085448316082901007007251992119604466265905638421041172955889255468203672056665478921352640469591326972440331364793028171416860698969934166351373692940226435821894474912429377141222169673465690499650424875613208109553366302915638265502549293076481332728049093649149953407872622577000538919047206987133868378885805289379310774591696217878343686766626052615306459623613329790070148307992512723588514272503169803116449324205386339665941977120126549077810659331412430003203475811062853714617362883250488393218446709240885782309091412792364055996990864830966803781172543882584696918840670296944109034221745261612598202419427755892518364112618474024457088531808275385636007207806313533129304767637585181537969473286017065762703620744499432906852676634383261328821335852526134262876935184604259515538373565756851932894353782036941377434540793429742200933073256850048848449406809074324345977107751953761923102990363486322017673638814541079640024741028168773903333831697146366953601914211720757842345291211369560190370040762384124504402850969588029681273786287137633257143963736565030639233955975534644752143011636821913749513304184029856405681197670549467217706996007448345353555160296934777997843607299425294976576327402204138050431025041975293365948963674940082213330846229061207539653337151925759903076895646833709980298356161218667847477287221073265304993464628377629368515072645699626736211971423193734398833307522918248125743252894918789544935186900703585961440468820829202669297312941378786235978290713011943846348225723667057035787504030893493944838884957404813212027650126520973240513238457361643744570605078942129108626014300861155390172688428489179902763101218942796997257706054160014835719120822879660767258431444802090211601747435030739877375631114032950637752310612101481726096603678246592674946141983803740511589783951200321413331814870224758433176370355149057564165013782623067724889931684270754694371435552015286781537924953430550486756209474082725063456476767556225157175552643217301924568738501359529897635642578709610959171795891662372584173701679457419006914443728509093023893346002503074865366699511985955169676192770986606252878808930191028280440913680815380723815328233904909628399524429477271295786965975252009178241883036141800434761819760252089647814048715342452401506105568553451273859651237418753760789721685505315194844369246072514960759608035204696231782980850533741755295731837945081544168560918837760067117774652705600087212405747747223044990575876852763561504596578364831238994497373938513091580934206701296412118869795356818639431557713629466786041512875181522833312508909737034488068039579553741767462503048350219356652784063214237019498014989399158387630208705243134536198307671762429253762532298912977460791330041020660184437842239905292357467014155057247594797112162350091278276922660261610229572792661730729275855790227188221984661956316136498738888287978859789342011836312582876579336761404347237835114267501574436457138767513481732088652690457758242166609565880320689960380358754519480883506140108564005997711814329496875264813687531249474168983954196428754626552728905736424339103652120075177999417270463878733275536433133662262523116202435173314887688944292571407683148893380641414958620341054456950330813423466448532663129285997177615073607952028566641942204008269705122749926024814469934902495882940937084053747250477569348915123491807646787574196334578390156140790234003042208973209431823511483362491318811644199129658404757189245767249453239879819077633724882291174168716309199212144973815816345117082157087263632453195798383208827871032299609143966040180855725939885075667026169179489849217331940799441843817991424837536603140529545289166538911715766926716652814525549409458837978724102522034697899994222735334972730364118474846267005042611720889468383779471254364743595520359974438407111160045982454960118180084037970084806325621740673930674953953444194749676513559172578938690825353278534827830886017200633845037153752959354979098363497304375553692767809768162930526503688724428629774717542239061302324684762613360565636698985626701230936861366677189054045553589582670830464640966178774025245559259465564233310416818183577654519214411568217812712955592827189085121131052135268956977912019426783909164846791548509566585915787105216472629921156569524903690046694097577611411642318700170289627367725530913942917699346699806541768757795041199376186619383354331370489667794905489996642808638363524608964743113365105386371801902671600332783105734982259296313062899616016676502665057232014737809274161473738299577355343601859584308903121222506417658569015977921692742543190952692600796077394854025537068941587223463108761886784993068239485547353514726172270270600859024446058518626513716497313059190467237844490780830743922152173898040815526799488079190818240154478739576548533223594718033693425116696063262652937200748015995454785560287469175758413318046427888064656275896659274480828765340948676622991749267016426162986431868491379653842942540220223306362180007400250299971682525102116142650163364845800743433439146108845220840598854446087938466783366194271660413022374010388800414011325761498638866507229393229143173183343526666470429722129323292169768751398990373359959431082966576172254622175645473127332048033765850265742446424613502990856767329025904706146374971933536589676138417827227771126783581691736397921618943098582823419943415573682694659847090779374256397668319673909430536754820279412341032299527546675969874853242035955291247400969380299430458079092980087930203393461166927770191317040507494989699615990886006732366631711665279968821228658097078440709842948991177229300319983124638874429077328991246752209574500221396720172785690483205705528063417083798933762717221181671381557793785450832473843691105199046901689514239411640080944435847641967612691654758665268125531483266749421536696489850577095724377437331437467615665706296266960450650560968504906881209489960776388883773593909841233115375750490202033308977504750751444479029721552328582209105230126748035047681813940523831122186403942250634942932361439192867931918868070143035073969340102591614725088470263594038717662585003612207110334783356329875160860350083519801949818900105122726113348356114697121467752449936163866949773572570793615107026934377238734666547758989574468169466243664633894457709375087601851829256635052772074189018019959794596786879245544523772097301661406845444839802221145007417044914223032713433850110686099830512171245317196409420650642221370774021029923077538641233209728490680767844217652221401943534427174966248056976903718138795603017588429665653988720736096125315574155719503458657678030481020154088558333377839059719041798942019986514340769007681917816687831907704940369743823605826164139658984496831192411362847625214766543884128896270490854824812821330690459391174426935714532991856875036282326037445249599515429515400577092512554113803405609625492992316410130722707368068128299003645346576408224764301767232191873199209030112803867274341948157860887212252647492979238497482336495995621225416023491170964191848935194319677865656443914711272905450087337076659225611996121640002913649380096736224640823832410736437647686439802215669897851013388084214301198188012396743076554513121173076027273163471394409503558675423495144586671388718671131735577211907312763262509580363937175620466367879646381415659286096084259207943208656858198638764975881397740826945258853608815739244030370775730368996439697289905251876725626355727133427625662155584799427089260832160132187690899096867302913202859402846183308109692693388342200808277816504599414193611022152848181014450544908608589809936951347721053406533483127798907855990374574056545578154620270025737708316130084175815195853966389271448306054000948870072692565027566040124887939618464098174965070259782168930001763707608139533541128864417660682968996787823826431456528660843110514132138898476894134817484270069038545166238282873211074093065669458383189954042643672615753841574214963868399193551459367895298491941179504952703856287163896162677876983875055316146882979013199693881388856391881122542796288705352353447050799375526916606292140920127986218569351687529324360394811814206838034713365105175789987173256423689222547285017805337116737316146976358128498934470336777828166542589492191263586930367488030292344314173912407090632857564007171933326927607527145011146914380885081298189821929000782472694510443961671892515716605113415803005979383297474716306280633243989681368946110130262665309697521518422034563435189734771469167103272754898048729565108720971004445646183609315663998682729553242730393086193040621902134204592688965409774382110244674448574870552881090700512950232189631756413174198408642214735000233594389638609882620090895535762783542724848923783570882728389771058690251309471047459097597573981874467922605025895941560821312194379191340999300857676003693709487322214176442380944700371211245442887960020943810547811780557220380976124658277545950438657897398314281247456189682534835311193516861256594623273005264434276646162128344725182721137445849097882756330745792746259887869160027502895908626088614215971090935294325252245348646966576087863476870138253711726253741322050846714124470234529499330867005627546860835259147872206821889551545315590308785060081068855806608832275187711009231855732081668788941072930782191918464166612608487297769251377942689150087111123659887459071954158845196096631777218401896814969305214006078468380904477469847146044601954742692306181088185924637753588190459415356560145022223767780979197640799294324408735071004796941519847415127891374059254040847626771894869362323621247137984234222224201428814008660122399122000004409923937503975744929719589312755809832900635385931190382273635968596455535073733192724404778660043892951586247858752141870410735784180819150868523757233612643199809939773440803506149022643703665669758023013315371116468318668924658285512519851023623995877727249323764104260079111349083019264445446319598346595668276405897320018665854144166960198362410491063216600794874408801469619230590418953328086261074041646631797037759264640684066188600048215743183746927656619407332982167261075005234737167213285498643702700376568368178440867930768427616108233629401887674997574815711759694238481098691882787882345071131912793728668193161907752046091529244954140965726046533729165167810236930945197332512302983241327870628764983153123653315786278070912325531167539374377629587527979199992923314726927155837356557955967810962633093477699431541482290700451077603440900184837374678070465938144794471876090330361794439937060025926157657691671409938069039605927257999083647830474611573127890561379689620901990270687101387843656918053541598238685204679835142633098727915126000057480464201596985387610563160429223102334409636321607967361973851551869965731759911045692542609053951554264656073469411312591726150078275605750154283434180451001043563727194990685386369543718166959680078760973135485539142835551603607931186884859006391266559995447837624826663205354947759950253052667907451125783734813457738832342107874416239956448218766677675336022670911227886548689560976868057350501276632773303042748981033457783857589972433973096023939244793536896286175583989653391883192009774048293935872612177321569912386565881500985258822849387015152284941381979714136208362132837254308748984736377570294631475827156543146363112121763823134961059024521528580170155625044411787098076449560021862703921898462231323530769010127430687149736065333587470128821991992747828403674303561208403987621786445426537891732153800782035737104513325379255730304236307510625097884224212339470850249792685907216443086587493756756216048595321204830121537544845665128872555985574428420547715734549903882103380392313408516800987282109863732397627676459465435043019018221733724804292391690189236707423653435550400956893844415349534283738446301748101979749123763519514870521245959893366803610097739353282614821330384839055070556341783403451733828925344319061029055551520644500179847320789161902327053655562426238519218371015447708439316477431450954268067931031439479881608528900377301934719005857030873983457719543345450974020923950929766314655207859618333019892104440300560837160264359314923377071863081873221211988563457687085524098236533168815496673382906488851460364643378148282772202313328433448390671653467464259339951201084282708919947701203946145662522000501159660369503026559622620014910833412323263648335782475949986500442841611264958535429431449879169633637754193464706274056538826981295647072176238927934247354974966699492721662431486935776033777426607582258699646439591396737210771365091251770280357717698791121094367450627561824211038268580266237897571109436343605107965231316131765604262302958973925903532346098019618460397932250144115151449781783750612786302579968117884708805292208384869360496121555693873918258720238119308623690245364915219829542300124235625274815863279307833530210813874910807255976363848159137909342280672238651512644732351010787377046336383346973378435554287510446227385721455189634212637946682525422315828341407676252795822482748452480531059237688556629428340562931310113071276025657944125441515038358164624004206642935409753664240060563143079897959638347812063171657612546952198366819355345924267115669478437639588649550118024029989821431051873769704089628080687501127657891971341299878353965841382511932778156017236941382816169524619919978744684609889082326996264007152023564422375812342060479558628567344487026976832749013782414409654515859263563218212518583562770603054688953361994483406389587184091637456547912581126405702172314519522534441608910149747342200918583763076342136357462506791309864609884601228903396103880193392878851519580323001475248055234282063761784762777927339577340583070024286248999081617511170797730309426134975400842963017108996631843912378070387935520218573137456685719256010223267062662400451956111326691009692350541394633215320182135121386630784919585416658501532102005804002052615008837494478973398721225705021883156895555979187757409150736090294851403509080106771683597895732562642311572174067793912008081325493012447004145693880627642334601493600099444202774332642252907519031332105710540872356688874580008945101818594944503150505642445207816214449023397807188191248816253211882949098913760849301071917556252397261100321138882113195888127413885709391844402883043386457043738148168221055657226501138937473668079740075432603505615098705965237453896670776117533559106282751584247761207144210600108659243572654463189222743455003437338680700941118862799014220312581530240342395574552605108087029538372904528675716724230347686178810526976419506345329187154650099286863160750729337573469028049634931923709828461492492243468676538406827569755208687375976515225076426671662248469990700732446876007621807633418463180116810679725749319369332918652933140704715902915722292450806593360076580898291809347597662260665216255512594623612226763397664458339974766978694499516608701602054932175964705872588424357189002276759606118246979837169745753620470011639437836758187201453390053508363289982794388265097669740107057374751597874579281829580782011480049958599882311224270920833190813385192192885469579391465620075619592006740262959932847091174413670755657690708859672646444620477220467189807255234038960427487621546888144362908223236918471812720319476718719825854116570016713005228478459515998436502375888527954394486455958495337330408420120303544782381547984918739311671013205558707840998877129856689035776200320692386389785198383208205372116883071148584043352605776157501310605742234972930634487189552858972932003980633113971219441235613702115320687752294796483775609568906625611849312989566694484807507397015936195231610607579216330322684432303046444270042298311039618761688444756360779454189430562531018800454166943758630093057336116074298729756410759123073069596152524833669187440626179980732307242577093723276698370248816578367290803121351532372397845971506845193444422814890840306172588402658851740863393124794753606214965589642882710643367352386357997844389159948043347782311179084390562144789825851985285070223446994282784656310727367968493856982646590070361061458115671749672756183050598141293047494712119743436267397155837919035602369512197442877210551148157621666292087442748067530328667589269402103586604121782232135165068328026339610298710190228962432228259486533746200636314917086198961683858642149362953038565796429210230600562883027429701498598873269502657878565103989851045008641744117927560972133073789865248621859150099594505470129917074787367531409809052482191188011229514262066667146186984726998202029578388506377870962981478622802256280680950216809389457035096778549360393415567949239241798154552494533751986360671496448906948374616734692165315591341988913395266745251490566867738998210595047933714331971170597243558624493270606887334645894207384287466865917866200536775329440140587784728109775680221999009748143796675278412447733431826673992991476365616585995587002775819903250311937804235130958531480316683667457189297041496630885012473651817541156904447812329098844762335494104821550325253579841179098436526841248018305776231142051924712181577263883428056358620628525177791034156430594242448778654437988928866189179684681917747736898455065284887513262403560683753987953501680781880935183871231494761624117105288354577819136317163002516272927742259521959312879773439994817293367829614929066786203401625228364433522427111976493674741829109062363741196124226024885654069564237246420214599947313045871195346219875610371851592126069591972582942760485300993205939894473755801975048697749717842998315022002472730464081303526360839542433222025631450902134913607764084901439419982609162415501612950321350306582989099022029833337635871556147217102444383942719586485991736717540254881051784181633720417542294540047496696240005237477108140866733971169024357260784854664482203416226686944320760762621061337772649409390169948721555040263092781931071848241391513180892722628193731043229194209131380830352173353168186293340346347683036470825709423017242621458450439079828036674271009776672007882982512946803411105628170673374821454015032977465438609357263221301689279122113042579298262970134130214739994724208228850930093945156189338637792167922312915665877141801235997622785643459311790077659145185301506741270518469838840752656691414482006303033003854017749913614844316385306994847019327334661688694067210878779509767615887995778029601285374530677099930541025101965988108739276658777789030603025315419597488069878289770171638047323663471324372937253376069254580116122944537357314929592511777215731478266128377769331334072863767879656845784995982023749164710637008329218115436126555462825071215111001691658844857422256348730479157253363619958098636487367925566124238088518144179155722811358589795788388798975491568409370480656318109037143181687358582401139630422599476133332826558828973953517889248412821996752043056730661459596140637884219617679358128544841980039846075521207686773327319725963808238547713097200804760235154243124327393396675201349090238112085624408471555258694720485534025842683427049407857479518423303170180407681079908961098593088468765886584528759259037982337388451592262266467751319555444051407265389140672198692687534679161077913547471171866282991165268466862291881322837400702186891907888003840281653150395875755875748566456047137710507570643050060181119206441764824726311693603657115388790815316076685860861914402052342551257159781711610162700237680322455853667374838168049194478510718180466132617474903394167218929017132715097919549303196015581186023540062393761476966197562449956008435878819830986304560073506658258440839705522189828389044569590089589601202263652417209529665052169018658795815265306547644198802061612829340048220100675912749610334397610405787091590537608063232580297980218623195055157401340419906146069371618675486578104976613251428817116828522605053299990072440761364649060064583169650339979993134981305261292404949687628372281863864632176367882613618003672604933089681453718274246822681844041766080086552026024674180468874296199285251669899301357069304081348700623421699702592372572083431706797036634396542259094076417152986414044317588776108844097859297053578893633031715977252399804311815875634668599894162605109628198210807866539933710376254408801373798213532529252083244445350480258749554695958358482928640919067762550405924422220113640087125653633277005198204829991589838922975243672418202718334093604673428039490447387848841058370009057038898133379822173270472038923361110125689411975231785883380906420160060011643999352083331932586172337956123842374924557117225598378045322064635602265376725856434395726910477994291732424588231500932612380860384618033318783590361972402832481850212956719980989385181081120771188161195915319711733849117212184609615136633913622433678142593830391273891120076988594734291913603749795665342835029907044376215911812517420656863731066625861987309663403568987291846604975388997611100707817495289011495372962393444440927635981403092848254485566363015738075257349661823785281050404109676381441053658078894606944075800134955224021588026852812495514370028171908846637495079168524425881493094717616760750417510988206733134380853731358833942913234331694442136846024604664880095780093777599315754024461370944487041886744166681912084030975752966126351960133550132320513773873661360998979594146798150271919940222783037151928216332464748194718046720349816288506104909419646805236422112817341143209101566930266172582476194911224483335101749097093014359041068035367880320441842731194590195930691787419998993594021954701475333866613597698191252196518312756985954606953349582472354230029951921257584782416507740393052065770689761170939810171747062111285782196058934933683944242395141072619635194477444215105560655011713681772145038242495779454058775984360554138410262227973742882096289856072001249592850476283597606438827738325589151603554675847210828060720717214864989805111873465574345655669172899763552187870136206566063856303113433290397324941295878955014861721747610493799557572576971620417274577411727607431514927896601906658097649860153552280973238960425620977391779787548423150833698044312434669659795722863109797947043782834736655287683797992250405249700859840084795668480951645652396787121684642912825730257941321612217376489877052222229562204411016464638765987670670159345092304783339788967547836879541350924915678183523315950305733160841880120314028390238107875472032495316519928131819249960686937288257222181503457469351512325416795610957291600167282410790587364892858611854579708829112152560519267484699705284861046156947894712384375581427656512215247673863125135079277222000009290110349453641690421184582022574452724844509620271425921244942637898935213167343359975127088808168076922453073358705715309677478716704137252675127710543839935041969293436413796027478126064746867137203682623800262773424179821130356765338556058684531794933828695407288196508179539227878727995904825495232334948607843707281117536049259129434378597976275415685332757633482840810725792099869936641764079074463162476901957967336555605107852130175333403853351506836675148360141606575555314636216605232074484863084273020186098105880621352872545027103592132283029739930385354312327625834564430277463063616514384292545376882144766552398786395718328769410092176473036941670697553777293898931796089221723599518258396645873635217338921138627515272413526917283027084227219578793145043420515562961944965702888581172143930996262854199822725458228551778988011390710588394546695804244473782355689991121882584356326153219052628136053771131751532142852589628478773821744154850945505362092353109970026909440910378864428701163156529168662060081900791104390784942462567390961112449369908629129560478969978283829872988099434320406847452499878299447880332166778201605540584966415841971615643280843209181549766544855384681716816413832786520062779814115938794507893200834317090382237797441008060597109536672090191444049591536050858742353964766196208147150439884789775139056654155509899995834965666511768003337481444479249321264926552581884127653940125219715607299846706386803008181122742024507061239362532841216587514832782368982726280992494098224357182214936258375239566166333302494624331885788896166822735695425056550332170633239182138351394322179546168316381452223367563212137617227251628062296930044616757127209201293972104307919226106920435400698923948462021065804922403660900134007036750068857701975653002008444383719779721346245247531584409089952458509867205388753559177354068068918356522941102840350028052823845210371305021102498177116517155435363873483602513417803539616724384795977017211135121198326831828806863276547385599214867520993942462065172221347549264527277006871027958481084080004682362996993481747111549231043388685100568803075200772249041875296122102719792568721948031944712152438168333356768973164801835524361752817442417504664965179682047081215255721427641918887945961679134094224464094666215786248922800518538525520087469526027425572312903146983148752894621915334682239516264328856806631501247219010606149189142079459908587255520657105835455328263329032074077667712583381328398766460470494898978625502026792500741194227767198354774096737924301747240159966430182704180628415548176382051883668060215950230734861080143395655426353358802257142939329948407467907074198412832479759440027909685520259067601145838295085026282106748616493758794605288721940146064895572080281399709617616734342900218092755141423300609038189579930400375712588233747131923988430983334777696260705796481697135492262599168960238722314449778022189643834974153608925834132901634174073533351676706735347286997211371868709043960887899109341354347103655960793950709611776691861093504282678256077963478327384185777744453711245188477354172974514790811687747119128847081086744593292082919505909636168907333903760662194065772091326678164445835441635700692209638327799190381769635331433566990893284941231859502531289832473799819006331172308193938859411719943027064324506383005580312952614854197265575395754489553308569558369170477243101135471397275999501008920042425665329011376491251654606791940602493550805300367665436113510968232268429842756571391336659343562682870364747069786734906323957106208366972975923107977843731420695427585886072580053342877332448275658026869387984080181508016562718367217062323094407778895640971230363970328897104086005524333577832703893611578464483246093315614545579595518712962904990611679735760641526395216179838403728239542330011446287436477415673794821063541638098840633035458331131892485686234200404483964446659860348151648160689365784371317064171293302503285162281940900906524945803316556112439464349014983253296695763553831758697213942850425814627429572750860027999898459229017772819851542566172152007056360253330927036992312423836762563511812879118485204249952119619324936613391730730877889360566813753037576402360486772908986667102099318355792259151540969357632114401969973381007835670253796361596923692362402535906944403266086783288539865664992603490138326138992223047198895916781530004093021272306432278033718456779268985692474593445432141286357575683713436198481375360032018373627407245564693398167314227077079108855775820644478194357306300783573292510153550167067333789388594847823776272534282112200298971930346413054741932215843282571411201723906988866095237756847805669250928683537061454686466740144753577407656067238977084974534330727635665458515003039936006215156367361857780145298428764463391111974920008356779330588972714702731510996656050762828352139740403533814887356923734232352879668092824546829759305529607834881157117229388271925866345380124728014330076093941177512895439859907747140689168342843697068438498324715700427661469218967420383556225475673105038202918810627173055359169043009945167895128546688361345895594111173832036142560784135865739592940380604618281551069562777190684730794176556201366468490607795225156115868003919293515662993485322193658571577823049513409913785132867127235040839058393038480424675669125521248736830176953557824535753733105633946583495670696337079084919994961749414400214280566004852815914354830895498147973841085884319540891304889047561420298195947927005708221219117643940245513823303731204549742802693285052943210581981204339003952436291551003992835588737442462145739419772604827724409438622150451068931033288252199558948633338486389649525636491970054796355667990662444599164327678405383129755249994491269407772707903303374606715958928305735887351256952948753792096119329190496348427948926160375942836330730544424045776261946989860560509959826960462889273342599916370127791342526968629128707038330994149686088933694075235956505824166046793234615389514411203609887516762140624229096952771343667369798015901382224495305994574682941295164899492279428208595750497368466381662397062676453984417287588404471173044457269701532689489586067313906737283401149404634869370979530908421424709982541513714398691963778239706603109633809698385570029727427503409113695022968587831010567228225740534907905878235990699315519956891400325849195400405091824283909967777484625053818454957053963825367624487602147481889738921967804226646084865860929436555459373091362806045521598355922271644800191110607001041392917352339056806306920036273935618385735283843145447941792936177524227872295597495679918951183281556210892350016695254771344666215208850487724390523165767888345133702244570792220388850247924937974353880731995623970745167761487341460706289152156205443332610868915088861061155256858645886943031509220965528611461969556365105589025147725131569444422446923597599353430716298071201466284092775123056750993456559376675141666166426425909745551970548992304034416582296349162465617430496338128099239496487936853101865280720327416989906924887782149727518848645878246545564346565438600377983842685537938550991286900936323526263479565203131729159991492931182879399227974632372318332331942405309297354729585106822665446838190782174267680398448133936788630862087582081032405225973821068696627120025612819828944483644549802213363985951530930857525634973852173320384233073506086274996464647077915715986678385328696362916873553207907723096922128198786697479321238040378868768309825624753248276641044624476210013807823696523603786511375811533325053198134947313179708725034749191385097324132547426503037188482630178270169444141611584776084158254367847980184888380977481430502425132191864039205994974223837499341009026511931940290240998342738599713763523098968694649670425356159455509034966507471507987488500450516421631907904176824682933284184813662325049810220783188041292425803571468349630293295420638558734592908669444122602011478163135212373920713163657484790661860741170970055246214096865426937798384619078168413608020104023325427539884601027777186179406264156651215657839258395402857569967718089345633857939860333851402682995580291954483012196201091781176531238677121047756433360869014401295500857480593523750522237570777379877902417713419791934619307450014476780921950821403591962527665104468926947202044048347598808053546751532400964061052677163168790958910894277927987664032978282742687567973304794173636259055741631928162051121059925144211531306768442051385054406937444660876521731637966667681793130419393202578304722040369577798640554242944679243524711366891069518628916128974935789302518760917507456660020033645222226446949850193632403842332497334971566970648500587667347537868521589910060243594483732149442528243763918602811917104533528159791824761796151899147433075247988834442022357075932276903628860526341036784180632075925500704934906142995215900465489564919031300755080839006583287727027664543426095023033204096321390821066087384411294128450869660129358272257097842207343926052811652635637741417313871222760549125731342051446016936220855154612373542118793414831007276738266759765341723108354435615177283119523299147523423647386607425298547442683969737724008254067062819536437873465688091884032095114144811333795596006869707539138736248546124019926308679523549384599252444015867729710234541121846712857916808289467316058013316498335632446831049515125017180383624375123077643717977541157169995463706160876953238787529987317679452117585743341532356232700861824838333688997332073390219561197224036185310316772216936169011714569720337925331308923885444389228361218348143646265065310185506573208537061839415436613829590972789389734804443574668464792414811640492112293298114216631560717459665188749854193894490104491293633903649662666916177514109970133097799268900349086113559946756501039217923591084737903556295010987253628433633990849971137486325423720017152552509828505489261490616429069307866297301494757358193649667846027802805446828126575493762784183752566919083208941513406610348474473258396364275162098989828757166212858226104021669703307297403554395591757498494753213018059864139158807304253018669223710109788022132276372717470154549786294320216348518615628070054479325372022453516788829363883052289853829285351979563142283706907727383390322400499609553100711655741234776898466849796016625879677305948780764701313769975794899524933613566311522670448426998618329385395734346028385221620551305420213832969727020020478848182432393741893065438704959625349896041613215555493526285659392030283666791539896876925543710409807815163837033645582812342798740654044593545351451918108836377872258313862766856183856251058140075013302674289146331320060776410700221283437307125403282353792072940420283979583814138864802696784304801221122519959650896972980884555951848845618714063738052950878854887022225766385795940382069127757648348938942511608697459313272736289676504365819605727848314312232658729297091531217445913168557737469694455735595587368245958118705862871149740781611753848551652539944178845090876148605037950952342982029614462609541715403751767250990885763817838443137913224063600737023761482957135568183979686452440048768629800495008331989638694815401685394440855229313160152400616509095899771949967741963469061089664831473625401141378848664672329933529958830153722130727001605196564688703246114421169458863293616867072253833790247330937905878714951437914617132127013297927798509187031252399164740590494894951949851021791061986111081512522127556944052038939120362045602499895650391671072300849025458931996808941146451189117751445756227535233999412514178226139915586009233032286916190829860742744610086139050922718315467844538344742051958329098461664291328059611484788467699106432956815935760720887282157805473046892178945302192935900550859687979191014787904448236845854872295624607009507312190919417163722221816823157858410874254069471822239515430539979600458342329546541404561812963159305853771011035456854142135595734232809450416661679121555987291362058040047464044241621553371138526289422433269469657646684019843169859321906340667995279826877185917564174428326472302495668575515236238731352590033672421446681328321246640319964487052910124263111689815808706596176457264756346404823273681605775036534148493721827319481805710246545187630617858136428007391722457396221352836670947899909105581484525162872005305725114985825545365581409227302362355857069725351769994099091029561860550174329492711202917257152855638264104438596117442839453336938562722640493698080307693636211841840468084256218821684446539567479523665169771832247944994044299744337804070221189070070831114172420621882154027539933306657856798670306636191309121306665093897503942887234868322909501456932817050787424695931347338830459431900815703910474580429613728475203971937108061413100393097723077257637220675936539454569082097768494184519493823996091038181244113880439193240726443658090821958656938083214769535997494237283221106158860127753871489502782238758755850644981387543845987158158991543024850810327558506192785004198706147957365080288710319298736066474998595401982959286419756812216567715431580306909780142559004877968626159133029971516564773316930461488754270299607271329963535483287882158864267304302593616145865072597080242398276873255389772088451129617668702799818053303553473054601275034801015556663374060852442412752207098036940001939960036250729420271471511183688051052907885456973776366678822705029266078739511781567261291280979944951770352397546306135156921093644177657777775861786669089872660883868181798973000253604228737294560988626632037167181643913717597145919739229556946453265235524958414571254210802455298322523096156844556900262417880386245333518961672490879736898229790107856786823227763226654906293707083472843389612417184969579926377421856282760348205447822738754365177395051645985350705935556856293640640591201491970526964173843587994043418603267226367450406986677044950946435185171355583704305805386309378543157819456027904221738125801148807781012372436643353426816885010918935516790413647724988084267941170260397529051651099597568315953415813355040978018163018575186258444201572240005206114893561079859417117039153712121596507572571077388507678424594213733300908834334207807216704702469442641069659456849522310781998201237332643486343134301519272738483436225227929789806788594189550874262669813243050717076632155326352194197118789112630701331304299649109172402610089319799728801258374462444468765220955148978778755845246689055664085982083041839263599014308664489981063102051364513819190460775979469985347801658058707102806661681848409918764204832853580917971726227254478523825596205526437554071220418952132928404265369983114997526369970103938884348954026179399491404790527360150275789200776166332059541024500019938078989152369095070108497954424731990352327816994322509977952701713987552386270267601007873905560580740090422568249691242323619912655020944042739160292998686872515194806328968827087452328052896561262633641386697754762192361903221047838363388353907260045716237503551341910226045849562216186309106903364140889439418842646784048667796230169450519064718567996422396934708558640802609157396495617704810545950791118598145924246434506868593187341946936139966189470835114235111522641209838232370657569505637593260114388102843724609717113277069185414001340179845785657981120792871422691789546586785742771759217012507066242296403214199781516454523573334364048617764494101672558818046939168985081315638052950344452671762075258591056374271973620646244772257879936552590054383203026249888873894802243508027732242869503586196559885413012872797143242721223210932314272331387726336960179933198001028929072761565963594538472405470119089980908958491406074362577128056779803108409013645980205944784534311067383279789156073360391785809682154604320843638789359632824767316595130748466742188132391620821039769553386804399783042927863570316956388978250985608245755119179336845207967424767539737021249402686890408800560150109069045447745289072195643182458720983872337184385880061220796645406388499320632923305500777325358272279746083170995789034543995324553919180434381363888724677544288786546311125026549569256313651679780538464743508021994291838274521515602627115889484579427926276123135791541563065164553892001956607628345876820452000720051801124492256257101143546029372802828585725582238445520899790809607524326868567599838322278019130276831876709348158644064764372001415412829025361449514000913927408349825677383344934223827996569100985738680318874345097925408138653000151757463443032328112741318762455239290006223186935896879875392936945358412101450994077401161700211465240381985924218233480334138678345708463207526194553724798028053146429901033882027492075426386324453797458878490208402952259602093034947631936704151799499370529883672876299511004316906388344279694565974920167016005877614228905567844923740485042879152385389852005079736368443004546477675318250606724637193848854496781078464594927059948520463809290938929261020869334249189733601458603405174306571960588554063559101798821836880558257599758161675038473930891626403424650513516757587250566340685410294613978493994787256502787131191037348400816349287119971961509815436321605897239209131738063729535367585754819809442568117195051637032497587208226919285437521895959156811123275946983361289674169981316152512696101513715368414931591402575146821157664151668294873770533123643100050951686704449395527107086736795201300752009784840684023236684943743906951156913955396020918097936908922100327867670907334273257724605404643386368991261438076258534943925251297924590115209485406887134297641190298804807850139596138934985770652816668654476860658446151710208114690098985497393276891495947527432983613244632573722723815769651948321558754578291133039749639283223879028012876851178873337125711109510567176407830403887664213071342803305233504666729716382705853414433834663150837968110227441151441926641572342033439791957638364273307417496842681728211308919956538454314333121503440260945056005542248619982156228337517473092285032906952601709520757101589805007846917755593363491587753881056960947375321714662333813361830270022665208788248709072688945099427393242915827012857243190632232650036736469182051824693744857179514613351340587974835199361500015006062903538870002726101255115522614198135889411721369904570153257591581921454921596378374084080380831431797075057653565913486307280424681882597535957568859185106554325553723311405849166257236304102503230798688447733983422747799241818027673316507988136978329560144264488980590807537145674133083243896294316025433544812956970355809063236261927502580995813609617842728169859520703566082169247138009512555853075011729464260628345481852648560368886222865098501021817524595263655556756055889726743588770514713480321477146369188707951050699616720042566260400048915337156865270487791368610955461879863524653471367931218819553951196656083201936609266872071338441568243678834378312113712384504694549903076333949618428482578911612423176112183199511048272344756292882732698838280799018849457268368309304693657488312934765140152096566309930705727024496588068254612448978600161803906481576089810124213704886807883737790542059287675799144824537224909825005273797971020825627866393238846314336121828597146778063330573432143566487298384007216694230530855995501645067582979544526961504208521717614979604292221359741964793833716732314493129117644238322140589267193911559081029732245254753858393385216307322228866917807568323453080728472279778169688453277647420197147120079610662622122934411578940499565983775481657742480065097160487653225870481136611685132768306609988839565214181709663947180984694326867195525980063943277997035058937911132692924202037302012022357133546234876832498810616269710632222626938400268482489622098229564887481208257401315419294891700759923664183057559158105867698890605130408702536793770018440760884122997072525933543569020989811426102460275368984762344959163293679289344697637583216673508114574847740690919496218672191830994592547291388911940406299057243607289039860195729672319401161408381338856709942364724726212563565173786394913302275495897993600227042388170126419855338085228952973514766045372057314739951160024456343028024117921061912970290864687163480166699011124202335004218488273691652885076223123506314885737611891781059673756508389250038329358699513219345472305764829554974558978908997723602566836253300846394452189957993287726976609170037257178664563095732139963190989611520919546714745897236108048140624375044381780021244776165058875881870180177052997137559892767595368267772035643243154631219308869854582381426190924042894900623862491457170216920494476296253324094642341482499311306719021167497945436234455800913791656772209100915977723525888004411104547293580376215588903134146774767151571277072310770636614261081636298895304764326818421049803565016374700128727470321838550080680237211951197795590907111606604496012748665958129677931525224619985231608531837470204295121260827504803912820334971058926625280171608169756840244036961227584875535037792437589846702880479954818887468341206068355579861251683492956679391929928812426084649590468154687083093597194607775705456763552412568694601583816541017697957126788311687635877334289512828617929971250217421303500169398119250735072379440941552228399318146059596223501196501803538384849610925001481157639727130500262745108475652891176823880013517847010281738800905996856074991877584275134909259561086528544395878243201860737481196781581756687424740007845053582331551447911831399209075991035583644180067878771915991570046588089511657423179559798127412144063933914473931832870069106425041072539400459722618487358863056456562205232053788954816025484281009830052857800415239855134207654932972468269225282902824717506260725405414205850850026175235191368334332384372643782457582282597754876623849886565436322414780438391247288016878055821060341753333849906365426515545557138387920802891501588280965384841049520933296156339716219053069196287497762222713334974749590480386714780534796806611738066408191933236202916940382121321331393428559392797492051555633204464824266575656001886074345992383203391921764448654104664923761225734936694136615933160105995487132535323077732270801288704449678154556270413469323883894487228892355272359389079630761904823322108594489537635788488194382663006693618505426270897748343964974101597839544775586174005872323585160790442463891210751414877151259301556046784574642563454357339301866316414166439282023715481538230628931632512219850832417452961226679578925190367610808437260718435774933847629341244457947067271915645677100136171462612960378426448174493193145235348473285148606056581869420468552306143351236730792233916407561562404082950160956721873995407233574790905595329624033378442167103024524787953349423157268980169088010565421574492180199569656140099923904594379890050900875522755716132728507951941653938191935571959326525233838935406183414760329108178785623417465003181429213458493606239160928511802543392857006228317237160033876685286930909252117964811513050543680904949854882956947963424055577839998647979202767872574409006867219104915779291982684711274474676133213480895346615119985879371769088924022701343163083328724313336903556570028077349512681983540565910424839426944464183384000904283377658735970368325777867959125647008494795533236763857602760524846483652990309015567749850659970512261372726120731374830421990629080007212200693349700306800523412320112168782643286997609748061084432514710019259159729799468606211751656936738822645605449252847753742037792733540896856571773590218665930992536938533729215283974986742283176018391157039773393979220022628799842114953136956165629825186896173198183128676186723544713204388441599853678071099960832198905134347929054591479286888696047635306606704390295886206319740117068583091428432798208211121942839208862395536878052014366794831384586857331089096207060647074323122617111168343697110814977117998702534129343974235334814982601478153454218163361397989045921837838734894311596260177585294225413800644565417653842847948129493307121150880652504278302050229268556757477899270413863239662731142784562955242529401256949581379596430164945818225138446409840755785355952640677916267030790843835701533594819997524543962156883654881429111487880049246926564039833419909188816168212238357137140676991429555182679270678200312473248459895333873805416044345643250853846431021208928242823974712818857295351543639034047803264571336739352320011633559199881372603769355836565784365461089990948626375403163715276888736636975430622361184665181817358087487830281779689091558192985269965063701992475034613464187330886177800802346546909242641327295990024363762481617018760121711272698237229858335675191810847922205775549261737357829127703053656262982232761359088098620946764784746693696682953544554511562618523423027541132128454786118898816398736981261330296445822729468114027256575541219799270019548547354986293465239661484626308175911112174516321972969410594051710526215998731621190397902898468655713773300227229703599261663147919692653021675983530118140006967548099165379222868876053226821771282232084396082462098374801151979594499682377744207354041686960957726408601959828893087812365791438158455609184537096454867518143054009895783487791638555118795974236311395765838600183832642554200560249185415710893005833879975701826154047373851633581940002131323222947659744500407941418739770566257880709296637318628189525297798588907530536322435431306818750436399505255663344935587030004752395215191416199076954165729675849697127009380016981115753515915174145518306688789923649152065303945911643814396008708578161280128379306375055475653674902968646771081273821289963528627761396723907542710532987393380773830715234603128792555053897896429734833399821968787080117571807971949382750615168406818467324372059685293070337183018998483488901086537216516285836072610962299766648092995057267406684899813859942361508537089957745827210257974743228236487638978091686176287161914629314118753572900724214307372208564567294259519879667535711586308039053334784359520528254004733131657695098393217811693430853129764089180045018307856813247844253830862827243450713745145909801891611188309871588049577173855457094187624242609356753257480297990057011414257234308077634116773849009826562449690124738614609051321816883808472870584627326501847036662354285826042642782113410339715657930046255837643049240784217661107503423688421543821448486197162075778684786063355197013933954256736878312723112336179390693396312481538382204914607827359172391014088153165069622154692911418307271203527796900319510132851308851611914657813019616296591120647232143311649807421104046048378942286272906151691564248810091213280562988850933695160000413358108320222540580054911207474163815334098361335202050113279625470242961430089910026769390156536100450834615857057543803465093340095038198850988505778115976971046984630708318931707108946523970682820920719804209973398161795071952088506961823261494931809290782171446255559145994376349622679817060079263015404299775448187763178636358987921619166386313891846127763242924912080985137624972512988310158114745281725572067904617165095055108581710832185014756532708274790173795822447991488104841771861443721476522275915168402321795451623344003881330241192868933209787014091843022651899292889955351917546167938308536403828675812341911560745896609135244488710503617998081446889554652895293019443045715243137611846040399693223668530250218765830818849059688003817241742064349932044064598374339848618070355777327152068858555726156722464967713352970744516982397561151444512247536443075076692261756591246893489959929739910386540571018332576055931016489120056843245174681124685627895382915277706657808507449579214602955207528519597320463591395800360811100896044365301162124380090131436847581225370087711298409353797614307783872206267187781506702637873305025358288805266562181222032831096235592485974274026487381533722131328733602985291194850498994320710885475906292778654030614900375945156282514049324193290625553653306372590609325883579626333515240747173009727545272816419562419678372815423200908847722581611119709436017707530782343251865324152390399611750012683364458551849021241866091281808462971357098801059263537385897631427311870865577895297682593433240960223701775016138176930733185991220098815743183919166607092414402976244285137569212454357012394999290277230047164258549985783294327136311287276618739226427208771269734913930123406263543284540716905198249003499449973110755335812607876797790706980772723954071314859113939656282673814960011840169738897777908751673783162147078945644798956772819963298753500058630329954049941149487167795161614133876072378120483769939191275957797848330979373061471665700755425949762790842390546091449905574376466568504883671653435525294448751306686506268106340755155806563653487090348113525453367302777218152576336019327717925569915605378810699888255833705253452761630783902023791471187988355676968424128312113982668783196231900598494717688553499415554693465397257764830353327627987428846083285951616688409127758528396791653234843683533151705404231159298515148790337698588499322743311864029596382781675899158699247248543206274676772585958237108332683925550023760380341173625118815280147967057373247307876285246964363743516078825371138105823286152287698505097484246123384509423847820031676883810770965204207161447008888113021673043394947165012619137660826589459321987840118410909266008130694210445496002526243108853408494585456456731063045626133783106629032391614253055777249653385529351398009184506220367357635871540028092626889216301365839968377798386417671541987315811381913704654572387542987671413210561742905320129973280417582046097727974621268115326469945425237719987182133494756787927984914091581461482041964919438832468638445434522496260691394596414469864037651566996213502131269625498167653203155583499483155404090271638260025620479075429727058955857988391861773059071760355703720486022159934763920578045869763030580267715126788530147957391147774777834294802055821170448552772110592522759562988710229315944237153369838926995406398834559497385895455237552822622027165112346770583032078908814890012192539213618506094096685899478863817223825544333175895867986716621065594277685672828803073685691998256648770301137696551688782354377746496123546606967206789969240768171969334222540894843547121614773277230607120168393209888168689916149510273675076198523726544606003105719088278833259151972750092189207716145685088113437706185086087860437544600286209908773466388776222651070516504700939890371475632722674287886768582495225672612212120631110562744622078611274857934529867703698630695161965606713162657376862044628367563300070734013441946639034375854259348958740586848219691088386422925094306822343569267485597522923077556486881292445876148142616271844896412373070438432016805509979197827767406240140612405887608921522962284073635369264952223285243858148808717100566925604738385636159427256360083690289723310615031061769816450034440877832765341881721508199735110857614822468098432918216820801366097172142919227864958941009440385597348807737211482231884252398804238138940780268353776743614722053338187287568778423744892671477224134237350306004598118966057134434956706993868437812054971305342045669171558079609086312872074867866158245031997095712427451966035112018908983623866856773627718302782977703850524971934644971263739490260520010759402911775936148238395193254432999386545223108205981960409884717317699776735111752786399613073048538659500510882976888897251781129738428776818788644910762780723197964108407539840895578696929877605370331407694862726483917068129628076369729966736149952511637251306561360243226397662829467707286207696992555331492564504478463101669540186528444523630220050865586677665332874455457178160418285156558009329775924044291526922773553809935572156782004363548110305052121856687190751986588054889505798529851405672666445292606854932130523696556217841728858484255976332144231056864629221575012860022273530826337465495785750744922877664102423597420123733239105755029742735397600956946585638895485191624155826608942831700948481011166553006811258151159320549492558304152304673808426575148632347153561580379071848517791495787140300311413455585158254473142041066280653997050272240603557204545949664802982631415396017816780748432670139547427115157780730686744437934818716777184536180149022945011450282268505710803170828850062907121229363375139754274757009781545030598443687545741630962890526634897976917256924242604543138409080241698581423078613872030793331617786029555860835344720648210827614608805985132923377320836923816544660864755891156029228324736196390566374715021180999109011870688677924015844051037361926879694844953534971157920008676231188828737034958159814843788091646604261995005043473048690319876194212795672961425649872209846594771352415013925851669847073902054133973759592942508156621015736722612037301864820969479614652187839312944147954582928112920788441063362219646641827610718663134856432776887120204422397863506774088315632797238883101117865621828987378958287814908246519699545383884097356571546166159033687179272627111616398632947683700253935034747679185347371827022289170656476007113887345538799297011576846172258305223755623744174155752545536050713987655401455800200801947180449345132393468154323427147835954383404210692861840321145165744870870076117024311746019744553960895225719913266845314231083039978956913266447579580242599361855202850179335738908940944517518364461062761128719059190593513995093273530004503064803637444750898033407919405763835841280684776798276897281650567951206748097545987923684704686925189147335308190941957095778742625365427998088652944445027156877103223535397842309529959370818074998288287833491799849672239177703051962179183506210621003983958499911822402040173739878656344375804485369695134081823795717063011152572865212480483668864521887289024339880501974486596952832194664860333891041748730024998693710793200851771413808704759506240631471790285685183990060945572054256493301908437699622045407310156865595365612352331250077498236372780078128594119156060290310158900895685956681313663717513012761523620685293525358533163864457072016977485487101146207000838907407919850443405725257142889218478623179701871088992486433441889050110246123810081864000611065164732513949278462697050914178960030032555223820969267002564866575613439632185213271365251003745090453389257164155881127945641264788659253254971812540488188955714448847468342235636892352562394757378153984293324853387932025178867025708735607818313107384816359092577499562389749271176139778804431715469181134657869705680400239694746892394582046403715756430413146473594588008083521527923039797783044540754125981807077649041783891838965422494455654764808409013214091998221146540006980893568891327681093418401313618448799544030766819904159310715106951853818240499793887670304552638888310474292394104710548810887018151607380232804784252057559872876963276464786942333810365387483463465178920690661404883484634926623239410731611584785397755887403561471354130476226459563299031790070393312736082137220119396298716912266753692848282775293724387454599622685159303457688898101139260745055060271445232551377496067187283010606841074457451218363518983639087024102082356913607851518388736771984178107232577389972708376825647321709381607229768428218485179852440765382628070997678659201857151700341082207996105534195601992491421182184516012600540914047920335744388237254140381400803047084680001549328947130722122389967269972579925521749971164920914851474617413389133467151099984690471730637905542842283342432178913445181391088495449990753982606953730576490110264053633551867613218050629291122840506684425841472097891260103641355899230251083128741677879840368511183210126438819855428091357294004552794728110342460677296455462478278095198386869703828526097577049810908418867667155150564087828863243332357531470962354946214591888371318216056359950130374020000299579819281165621611762738180382810654412892944063817403053763636269298007362233667890338995664457696956359777361218470110799682581986743281398345844344774424495750105991365687819382084680466634971724424132312208126941936510703656310640085882822989438701884801263238314316622914913309039749815129819967025476604784766364847652640735121690128576316300485390363442072307232904521913354197596352805478073766091899021569554950171476115224906111059505861959027707036964946645948165969572812028770249166696665820945583228231685403065970790780950520844474853241180516954124433557687356561842675083508218291168983103182771468766200366836506200572322260888881711594852529382567921843675284954744887087494309985216626625872943647730656106424711415819523865889598077988433207994803765853901303184644740487176259577818293687960994222309784705843304184862069928312210566935038968952434392360683892314510181290322127871858538715357516845127697662600324857854706566233265109984655494401548897246844800648841721476410720514199429107088315964918198415155511136299576326248862452154248608394018256530856124233976990464955860984342881656542426126581752783658268842430304055305550403419872597352204686564965910758955870893078632199506247270990645755803512073033119040571299719750030969157595118644205446817935755637984237811187953334803406056556101408225096323277975618805609360208472573681061789478610951027887224973915410228259810772466707994041795562503714293351235987299424827926253478747680689419344343302214346838244056721848408342553915734914332574154111974349680502053404938184744847251276927183760812858142452018683624852953317488491189918759700371398140822228310617280339842875962231448242069098686261120850809436503040151866299816014306478755632157671173536338769499484953422962002832229306441274087778566343813871762514275620681846254503745835980097426820936466931500307415163954718035380600278638076880750255801247143529958528585956202995524764539181569543335843384368592037217578668598002438517597463656728007313870744058994346476757490914609529157641846753307683325408022781600113278199744999868342289983499438387540871656189852837816443016302138386762310612421366889818761217707715899474299574785754823095639553023569091135434456643374725516539957031191205655191033910318359413913138341552727400210370375102300771460056639331463995534763899699526498071012400010386336111995810654803216103098841169828827917527131421278895406709488084699490871523198005619743140256800278895739036702158498954901621106070762426632940550038735014022378254531508482783743268283255769717104737526389291618798576411282746773061326677360375438271609189374518077529409554196652977018023089888603687004509877821450011088914016720019450727688566128868587404968961661757506560733064417385464825484973825358841955894565870847066917220108220260325219991457352142204241963015991272546170815027057256683026489752230178692314590078059263973492166125445816077895465667298870469261078982717787848447863288279976008446786278947723223668576076020859375399989047084314650899547769768215293019551356640098068593868899613996179549506071364464079436822323896789988985304601506183188963758089821336675181748890421367791891783985493420773305289302965815669678058427015139029808959098977705394834100044637881871436034644453476555379742197383680255262945232231233837547694660073242523128590828154039047089037946082327425006485031028364615182121687984065873486942981153270068560429276250619244101258145734600308129168576488535724034528091803142344285139416146339866254238338122031723505835162730957458414620640858954940127571873722688327352639935188988614824540457269682803207280763110757959938733018212793836632396379045701322308306956656762236037286909433520262140658059168896372914911252165547473035025886047785749439971534650725279652417519508779196843691954740835968443533953607633394870814156643757204927862281766891986717895149298601372183879121047667215009949604089858366309304323689612194632018551044032983708305768143287521156523108150578629976414743317410431863808503643986487785147033615696516231807569434132163762361409720283586324631927955278666329549703403416265953490121157768204462288120935706509634515927344998623002089273919627946739741955814960577843367247154254348518198841971753599673930619953576953558837954161151598420956592306835306411599607051108636171095254118871548017119934613543349314957820608909905342729364404766499070150716533492255234281168498993925887200330060868440560625352728331842302666469460927686074939801327549896373078797538960793108576999077327342721202344636606445475781236840125041942951968319172849125089760510656611367301603673660330676154425397855071489634083181085394697181813006544418664432773279126018960060494154131111402639391266698940610165341804839593810363011713954701510379971280401459064316082196900350605692455681152015079964780600950548894930135582781041611070789075016233566406264085650150431166520458820482353382928680249031465792044141744949117493704811401237744168924057007215138336052889300499384803610576555201900554399050574098128453847480083821320677151242062226372847075026154289811658362286724334042286422016925165550104479701894381253005401457686938742616838174290972570864986880143006661592716153844460717702037159848900731656197286870181001013518547285217355083613268460145676271818017308209418223098906606952739067337203818411310821447078841353998114470760540284396042387241585351270944611634232886412385564774682234284145149105817634141816993145829947698519366502327116627635369914925655357379956812962868278115018591843891325009382139534459964440051588981473566539577285192094534696968859317574430232534875768385315014427174959762149834264643634530867850562950166997365953029261178031948354897689672617922364741610954862027289927920111186799990634903188154175744370772863492058431504836944427705536213039623927663320900033625450017914689250575648633034039660234650465302801274797342548452000822603895841625502540527761912997587086368219136828084678362609180624808954043179398016215452267362430268272493885713226616288915247703798182271489009536936204525740302523421081891401776087987519155837251263632291721065933965953001290678555949689302551540723469066926626227954020470235426350127179635990359192924174575445199088061192402161045937469044201398800553268467159322985050709123018701454627602264704806881063123680210597102729286401636376847212968989689814531807876572238977415037863224269341353249038186334022747993680925152980655855548152365020505913781747631056071994567879194862786786786002884242791677682300226381360326601653796485699328892307948464186500158159610720680787878104381331212001294248511245235613146971812183098173356578478474943036455966308337407131762638555619380716943083876867857092075230834809290570402065592783893457361141344098670791333556962576539333959322184288871085717343302575332900718257714170006215084193159342294792487372612075808496399204050720730612046469375013711122872767089194551125071289619168937805801762855133594183135631270580406435583525241051272477831698484313302642922012808566066867905032755239014600161970537088476488828107045209737993844299566556086439629519822483613806109586192197723563796584908280138259409101361454828309694894038651362247943872761110536108907934247045716230709677856311338640931278372617018376689813314164193828573758820948554605992524523484866589615277468851706902392354698711923967709694518028581284051295857547237343588438484463667409383555485320470016993686123902546798883527746013421004079899768258981954863918746624640746264377524866052896840666398428040175043173065580260917778017206954251299102019367965427029816454362813708763791668404018626650853981168898881415931965178765099467371919460189921480980085094812615076107164100293408062380817357147332745411479065435382766174777113779161844538736738565907419346095112154549072136904598713259302127896452613307187542756449063127884659122066454011052529189807676145589863755403985833395243896465029162748250033742298721259539912981368389077762841972449780519709110966855785219824170308559727986046452175039156249168771767210623762872033515992662221099655566617564658041315335048424740497152599565589841767579320703684467832640084059764764852531417264983746082018344634882887718087405542779306719457494822805629132105198180937569284531932260595224353757814643028756397782262737708371197379108338924030494278806178332993991368738037101349430350815036805874113864771663552322864007891731365558882637067094989275628981679504413880081676763064517130007503301261964895331323054493173985275885416412715927379410756376545287889222985841146221775360754829083054851127694597508199847677640505763430813519444227364873305329809641882603707217112621431967018036274358727183453922919533590645987066106311839022411955535831673943427964428812949954602307941734645435099725420540565094714768166750221983510470245178848802300508372253000730151336238340634336685457686442063056479956373483893267638476413213828808945177107279413821308472925608096113248446649817436039999884716476971272652846639409739689196431400741566546676197802256792718159499393790790425995817425841363837015064398956623922934007382132313747031160980261612838854772097384650448232364144087409695404027181789376451253222769572952814716933709137911400094747598406226464412963847338333868887399463824249438143465094724300839292723342975439584804030174978689899130984809820007083192808018190779868368343950955606298341620081845918391653750171575805633185704168559071719662997945156052365527678195737180396175599079157805412193067340564206197776960115463221052043810471320976721997896845329996162620205799927395676277955571790207901090904600496752431333495849611174236493072039224634354026011992294099209896178166645084442938473469831006946897485479469712550394903396671609421984641371607006583034965742843642321495378570851447575427007647055709314746059583366355196626874869556393695158405766226609168004820947428545792944346260445228775964837845812628880802587334469395174825981416851812365331208525454427419047281315212150806236392241077192429217554332868841509552189355804620069228088985889472223821981396802870450473589934834068347812752405796187345171466841136715537147230710581972853367776645132796740194157026534020495308943621275751032731443741076374556993509676321977319021958676814139996031147818874228237484581221316959509835357716103179100724939135980052126361885964218059898006654933202443716863859048564258196729617915400205406042723165921478466982573430622284189652144834490410388886674848537054443948191460519838605381562638362774397033284778702880777923555582780138751300500015292222956230260030711127589740342753559479983968691728833538379913520352022351704817572303016581174146843414985967190529635975451231854732267490153993747703225177944714760347484801067516996695630935680235084513854602477560455309643652643170449404397160879201898567846808349231303451740392008653672988547167893635089577605046091360365417576183411917548067093413657630112799497668879024011861757241745381586623911541212003069179930102715939966593887288777721933636840721170479420892480466991557404985459276178438449167312958023178744101288738954509519340842039587574008933268411522539279392097166200859087793305274923863146636447817530846280620667645024848517443842659565809563059652336532419567010128412997855743245053455201209711956793035321951075681281822162197493926794735366196827004862038736763412520429841923222069164927192068757876662356856404050967878971598593395294694406407592415497270452961128137015056620771629660485625005845254341785692508315996822398968494058503548471218205965132846690972309919688934153689258562564204187785588235605439433788890871823871851283893797917147138357552573937176148298537755001667087172643355916232818038557180148461447469114794137302854964561945552485152110233911058888731330490881915505231466352888655041373369903422543188930919318728856714833613593744087403625222372152545541757617396072824641354188642556227253360887201379864120502269311468925765161504687115830651793206792219583619782623953310347720458847983588257904616691425517343461053975171676917196998108863355658110290697804038872188545978127097753008798346594105482094458361475792074896194857998062402613683308817428293682234084966011116729608528592429174649311319467019143546318853870887741835453630454070602423491755804587942230445924831771811107177889480377846874884014317614694674153665754140204050636498472054783400482388542046732155085500026401264651347835316504502340335240529946977069329164853313353677135993415607553235136362357163851290181839725546374121944206361709955430074459368661289414020310061378209295975581717524802669068366000256806673113678892083343911694183206060611880166985133678900185094379861265639199271294991992894292480168385105942213082349400797896955665389693616171671159069930744024525904067319389697634943050461373443426232839418204769052096907285550575828161382494174296684417887214551469543055935942353135255248726900764990946440751684902151268578643278138277654661327166139578349869395986615062302323007353328368704811969505043158457247060619418089605838099382043407963578457911913486722719267981427461620071336745022832209184301819869805539029334449411837502844692539258073100436759823908847922646387136051333093869896089873705896594005723860372544941145960640390818437990023293470794395109362386594269760920089053883553641528695510611385393594276348078821773909226973543899414392889531249644568384101626635071169465180567112856798111165313997812606931713945947243943608588072438168324426334838960751217751698242903337095238845685172954092138115442176084610770846410621796934563432760125048071941261100103248141671039939755179422835075710421082359713280249351840550340902802329276450053801203311892831111247769591559461449094263303246185765180791471064879511239061359453509978063985321167243372946207542946355597073276070702129902044090202886395014595833880297540626198230948462283047482327374237163154666773110049160593589138305561892998111544152767273212649792190846128937749339120764700110489298560486416875195032274927959777265057075908887592571793821498018761382658245729760292009341983247342845206356656571947472568162107124113448049539604365288460624397955273127410738109093948765595487611955232766112859714098360759514783674196556503613221204131954564206134699245625784182860456033491818722237463416569564546754554456373828680392906310641710656601483031413277796762454699520212737538007356904214103567231981146835226471481356655792665984345086240127219852334739282250199304740039012852417287425535989761185086183754809792448972810919954757991453393576953209875082280304281082834926026571692446131991803028876164252296734341110358929086118057670108033582546231215706150573083294706146259544447301649713137233958587290716208297570604196530574868820909040134259487978337258067553536104937566224947728668788551691104256416173395564582252081108706977108566020711714755394024632914208690788661811999674046209401179759449392144019549628287463416049604644699775746954197669563402880714421320655193951634800654109215449468302965566251094189565040828623158733892286590224384780531060238537442215442677983679215917599874326020159749258666831920737127953006360875648453409744317635674744437646870118678440354748486627095846602660119208781991591163127951997838044335335375243463948666230311164243949112994302356152218161186788428644926848142940483104011795410934060415874169209093807851547043062691341179130116744451241054449117936725684925744701816034170560552119243904177949807388015765508158969369288284671048887552335481640286055273089978946543961255873949706505287012176178255850536136680960868497776541292926502047850267675279133670636438293670715055399414592332806115503766538971299822056678888750282728217266305047036138857897046353497954830065861373195854322999530986254546381237806209638484765135117435137170876134457583116165633509321499571950935664948915550206151687449356517392231362077367473749163586919459449545311568141072679173597773498502422361023088874506811309793608994279375186138558142361002707822253499039897410776347438353637877780812420637576818869684278216317532038966637731626899047041518671158891801614741367387116741986659800413646771755407514633738861855684684052964875331291880053780981131113534705767903197136382264981615880658593308236008160078702126341558158961464301615218062439761623192492711816025373040095524540907081434181211694231779631604110362321058031556631394810596421236732194670858579927210084874673553646728842251032383472469984273268759902900738444174451162313360059495925627579715970672443901874123878071883636350918349678623042076019191648204537739175774020179460333611363383637869104623578912347154600832143900347085199031067848024919985392593787003351638488864009383226113002736480863012216941372729414444874956552356532437020821771157568996336475636559734010205693057040917415103187267182093572106886774256185463403770940298878298607453932060429195829425623322319058356212018355610986308601439770098823781639834255866378386481918637194553183391559497983565884142722803303954131742256297985205470056968607052356527260225534941020838058123513429424869607947215652836922825705180395796647023404776093316434442080394675248234408272584225619054076553425718449613347055850677375988804228510495923251012331114465321159079457515429562197466495061942707960908427959525592162789209333947450448767118788771109215814558079782399425805793864978477559554645022139618221319006288458486325466696686827801412279847008750470867120809183438722939615023080521938990034999109386447764256687240036636353070424081313167455085205735208609846809777774217151417704267651109045239507397685477766900549362674823271310800159934551771408460927470670883931379763385977432400919344615890409248132989080343014516026118179719117450944505550065990010746808529450900852402290747534499816375956901849790326251644559058973124447858299866497946835872588789175326188464698883830068820633330497719995759646860117555654602836932390756767223255906562369451153905198011097497912601342938903291751944085520831013249678336444857158327076040725594107028648284141595554106722793331687304329515895598386706528353592754621840824059261558969544755253089789482186424770899354869568868837776331175657232944994483435311705388768974520914463157666397289070477085990826923969574484327478704868520533320605444818977520666357755307784308233653262744543209183457564373567213764715921093525936559724986963324913317500356342893286754551262087224929540496462026806272306326862233117718372657319314408736888204618919913110268957773622957730042166858290958306396604129281708172694865329692787734148418356673639648379155965059101410604012255121117961899640629699805839104379977492423984628343778771700316376348028472947680206182595614353683347334253581876315300197679670717196823348660210809012982820279675782868698630973742860539334343226669620624643353781824734445219475315959353808220578655816748731478598068730535024464971503085932505955241161568782755871290731021899247565793929506490051914119665925312543745925215685597612477887402008542629365639726287877963861335792756901963527143733658352000334338472489173324320512681515183544849358695140031643750595929249435138358761904418589804814915936191323879919663543077877064492676156991002591717739233389658698284642576066319681778764076839698084209453710361640060276223820788985553355888565083326734053375371960005271622456056718937670640810817022997789679935346932532791732334020835213507170901769452659394450870136000394935346760139228722610792153759518913907809966240419339514445331193767977637942519102976349490016423072738219651011005300095561864457135976642307292191755630545583539784985673641597474745095394332096860804261577385233699285474237937867539172763448505696320237669934310016858355586065977495192907731938803543683973770980397344488875934734003118064283764503397242087615080113749998580745094327397771081306423119950910720737517229907919918162176457092835665263002873022298630198247474763166561470052032526179354815601634852073724904824726042555172216564695859532573033827965270219019811253231218692792153668391785353352019396696818690227028305101018912154122540407313013611706790034561610705314050293687776307641159339190895197375393532569197629433674811473368780063127409987220305534938061143864789831105289186432662817072790206677586114880711549545759346495796861548591281175670194130302386543412344956744055672682336140098549849527444766054604003877496190773042872970948708209294753100461482642755592649432114730350332956011661332954855305312595499179362661268403601978497094409047035279613302813505377531131620044357069548047897543996101545636155532397144949698132217380258554632440689878476776446130602811143737618747986433371659628606923509657741359256844315583875111081830239357080477351615531521756571367981309710629164348007261853544166677208823837932416986538796949018288228898225570932277473744983854923478473308773861743890999490032437719775792159413555370392728590264125685432490235508368796407834050023502220574107866954734267189574001799489530911058586115236916223433036895067632742534983771910903191579596834692345608391141876278366030069488279283551263224079767555814565238178711029713538054065123428513091383351098805673862115428756913580585044893831731692407849024184868391689742695367059144153867566043055214832332754767009282856116121142221382748686231975032214794880367962825102636203024518416229969143054539935619923681565094223822910218051293146007399818884847386750178804224756864262869410035782183888199767940570866044090848971808238557737656270304608748801347707304765592080008762935647763695650146222912277888667091080592845548362898886313989827242973423745301142600510317784826802847828294520066610848619366678456585670548973202753658848774740926469243214758474221986126525453561819262365289522825329728176976045813187407729201608200310204552469632324407537109634660405672047090589694812695209056353556995338879543042049256748605686956949310854039231328431537879803387036157194712679281983393192389489797480625846019978924553810993450209286652742271324533379705495313779087814468492964691900683760487711650092501906368602313339597542738023267816433958053868178203079757168394392360215966745268337861921582903469713964606265406797620620193789108051851835336920169537158755470883189971841736155966715721180291590865385717775446112921204314601310418807955996512577067658236099058223719706117070973029955404926563597445248491072159044012546196074643904309483063980549702826365173052255358212348752179877188877204536325722737709157295234393960374448434340586747515041671408664772950811527937759645859172540565478869426023864751987758077074302314181638192685004495560395344100411220452322551977528000019277039618183733603038566470071951694239417792351687429879553457748305520358301438742634472432371208709965271416772673203338621269712520924347873985707142574874942490613797707149437529538858904154606505450824438948185077509769446919022738962371930803411470795183149652850479819086619322627203684651385420773107130689862078554609628888763431090072763075221159095407227028179080932305789441988590358374616055714597334651896167505599435466209578016606974067568627995060160469926998747725641308591911826082463860350435639789483903569963604558792387527268900051302269243752868015581579641549406390801200465785315938739118624317315811978346163987643383987169918355251268442403639844108879772431600945718100750841173446504386353251820400159663021656248377637224784120032804190937612001923600825105714310261579240550169141434455277499020896594295492280886031469908127531058948021513898498517694902311127228580686381041195911107726744661243039555135780177027360733419195032225661973718308588576544123505885020576437071788732679542392609180457580603620759853699094270841836090921879658722980351191928194012283350975476310174845157796718842178525659628474533536882138062153087435712303966295755068287329024186185044127970687563240055514782424702345333424301361345026352658031632887477869692977432374845638418955866601565490324260753638951249351116972126013667487224565424215225162923663266920152005398829129911922050374856356462545171288859878437715276781814840223382632983602836218377130528546636232182865503028213464754831920019752470781279012427420188646660649991463938511160619425591293097096455267919523494612925639213115286665376877976368060340050678730822109259602014733098783999857908964770249771135290791810384809944397755891950363172394327272720031733127557421361187389186597230968833516574080247898271248028994677274782211040619145507325798011222063358793277191085604988150223073386510365430386216245378023555148848734645306514653320639085204202972655245158347795061305108764600685044611394849502534658331245275726560714624649605218972841633836932963826836295356279829050188070926782529611426311001986507854729274723169432371268420007917152612700376747220603821929586241738303724454389140174405620548490783197685444991127124039607805740407646666265889515666488376177392721134084470475901719557874161226239679393953786099836924684541905747540599943452713335991016558579892093522340724140709403033951144093794869576574409250420729390666525976118154480550145039227680600691690021334317762589858063582307930683018715841073215982327655828524995674646588103645063050992755640431273549170000224395029410845201368449150405190271391970052994924798748042977373801056300109812235065228811964978751171416985429648691444742645786596001392149562170249420327240512256750323144959832934240416869565324846073045165372572026999899905877631018093155802899176692158020409495593759083705023217082341668630712737946130698631299615829302760722895181254337201620723893458264400329775259056117829369108274663861707349324235327980383484648474664526765456243434688354155996422675131330457997787370567883293398950723161594272954217378262482650004010983577470690294132613981796910688441629887206886724454200536086991188708018927288505987841920124334609830756356740861820537458979297479194571630295110165153403534791303921246630444213140317240316689544113690251322763279334757974851817678985758725938686963450985674992061956650380142380030600822496321564613531867154484693027749690306650530679523487055265635305813352140159484534417805216475081744981340949441607186407638971755226854617276225638660414532226346528568331874431103378937947682290921625512885119156433234575238233833440827660128853038855010258204895276696110978854295358917977137576565702712113748731076604470366617009891474097030462166918668232151743832984205956419232462673673534029743545353304542021550906328329657018165118248545405963262405060181810357935530052188491497164592031105314291009269804319955442941352892372945778697989654704386753590588066573189042438026775981184167652948458650225501058322841445300158247698338838993372735972923139667620729819713697928022445064983225524646940707099637892514172591014655242034904278458651166754114765895271804422455331028651646149255192791377915880657783569591809583775184324347724219844807143627669059252030459704277909422367226869183977284925752891007720479567503275679030555498509861317978552042911476142535364418416522132751122577217204016900025321872522915040532116178206941823215259707687762584357860660846370536793188618143951600908938724061629445487796567786952073815754170103684308645042132815717391869645986201530453823571712744402438066263006822247338884669638208973100074128298166465373329624875429402531757775323134887338300326978041035951431632392070121776180966182158111384650066038161176472485001412744770704474673267109553129064051561733587152810138208086392379763682714580489540480108272742861413401548373352582707165124388601499415648370729440695090200978144773115844385417909934829308576230536485958623452478990670034440631947455232760721923395623754325696097922682296644655690408531316225102037650120711191132030085659124697372227628893909619146161478142713819444663086409897059623434267855739679569307425026223210918498033310674679951681278659997520848905778259628673287360601367961143783605947536703435197684911550679810501194667621049022656319673336097842757913876664981529863020099644683848245002131008052179133414603841708896189833502473457488034045988348485780897220289883847767477448025860714770504555059638646692641682673753612825342105219144547816209468867958738492343875224227455980306637842965726920554497466542822251635906729886928381064399376325475289174336122790606302848684388533417287910193254969852560565223078763121733101083460940868697075865223087233924974917765722935668714359696079053496503734600412441961232238055516793567007941804953079836889728864231144654368871727594726976356160030923150789163939878467813206112341319757239215837558442412439716964604422412949085032249303198576212773595581793029417431377516199319503120383691865403521984015786912377659938251599048317415204821007711395342121046996779453775396498808999045742574005821026480899966378608895626144515612908379851922440533465303830952861190460765208535397773294673743264311241813913835728114547779729944717402713259882276150723942441081555663008151971358090488477682502686635713266965449135138857388274259389803692647051457460463154887554690832725670353820755130293726603441606953233590504588928745657929754829759658316112269904688664723674319846957330633023677532283869791880870417781912757674312358787815991673349622799937632102157039513167735055708113362869973442386326742734951853462247716110085605183445422006093943875140662886555381000984377184980376786785747563553625512051637439941718541192989446623369021482785352646769947925005451027525940955134524662664123528243152098599410384048561225683017965673313701940095217269385348233210371298917242730264881177455884333850884306000315823418130155400065912428772413127755767466273281121714733907251459424179023992081835270123444491747992482867542426615699151253138859322537881746197838611790790923830545008703148108817269936888403213381826503581285552424531091460066720706622905251635901311259044114754791200893716877927427583849403120609475064872809433856474761305570159385100536396616867869243730824392629277881471359413523997167388033294898177659317115715770995881156564282333972430883086114061177931006241972948567077172526363391099807433048666985192817534887595521137355916688204906588092099903704878198642670731029973838854249633076902699682522731914061770598197939625018466838731019529750603296722462353235456690250465532613888590863321589574096489555566702858826588081406271230345975387769581480105950146628231854651954417721444565368274118921659012983747883936575535192029526599163503090038414192127789692307244929670609724145469127236259272792437664102864911996233094053105730079331902248229414220805243473628345874428885181593007498498633122439860055782272686749058006512858217163914654350761679866924032654516706289009013451755019512895195573439345916526097941735291257514608458599642811375330097579979051226939234062137008851428672715510662294858480106044365779213712420443449757173328148032714385398663802045672476933120347503431598271631155718230012385202087807184574220763128804799007387133649185000919078586218486252458534741883204748761950980350132336229825350096015281367639680818344688572576582018585173358891995628778536344223862149227739018897966819755518524714584306023443782690372205377967747933787778996978431846459430849884828263635083601805650380216581277464785746755959458218735702954558603663121010765705878287670655005890217717049612661726801956640946268438097713528680025872693453405504078364798070751377204310094549989679289238682106778260943191508425855200392612083206651967897102769663493907482376219920505005296503200199912722003401342341672881522813616418091093964981894772932098772938759343684496128501806815554128467240300399554507518516875121734710011592798046333269858860322221873415831866483698130846674228371193956343366552813652423373335204189730564949527590062466233863753893309211798735708648047941194311170926886838531698889161419330411941502216823706422348715135258017342535637024861312232833913658278132255261355271141200407180105754925780551314556011956527751807943811662513370149015591781309216901246775840853879243439444666644968968431602753741562986247461143061909823432391820011600994014582196364099278644995473589220572278756805238271298069660367516543849111164010727204846697480605951254758699298953706720642393685370481688222518983590477476396577288722338428553696520203066963146382208268338442130427376441292693931040204164793148776546278339082201145237738152745470876665592005796481242620252107683451902034775843497990814465887242689069331759004834985978369869291552780028086780505748713576710324445061204551701999615078535685795648961723960760179639654096617901127950162341162261045371010966108777793027445137147105170865037964798223089634019865822309538468732205757965593119685102969994874402682230540913258088533038881258100030809450204732460514138847833160054964678470379505621296453243484658695157574210005266244943580087001591939983637327181259492143984257523536953409955546890982553979883522428664958824556071006743015699853974704139140952969882661001702922047838889469363708582253835488997036635970896809337194525950105824438498495134293646642844805783119131946294292147952777799896290248582033499442308347683963069628285845191674658990545576404544791918318664965683006580328260688738900329909332201611165354572534622665306422977302335276276384375797671469911846445599455879402428237384459032064336132179582517905550497092760773200954367931357253698528751642471592865826867218135441878893960212034267854821441672985882663196199399909575894498713693418637660527282389030748426541130687117696122446587736189323149633221027549151134747793781964202549439188154584931393870324675194580385456339729800309527186104605967726736469396872326879162249206097346234926595598346997312331019762395791290094731031468134348672276023856922094370306255562491803139637324543183201674153687458113722531084844171824592936566475491664034477479014404883079526185868544267762393492445481685439342126449305660084145575602686297881161228236935477693339257434220764767337444025843224938436479179825250861854095854882043166206065563370129317041560890982072838892462288159861981507442799893949831507281464723483608782064046200192654049710084770602407699804262387804886691591039891726007070101215121248435736293063173505741653084178579801069811875546128442487376156398917221440992732475700442745408587675095544344723073403336412054709540315449645154641943821146326887642200888075719038658999098380098742992931308584187549969590713827077879350310550764045185087460197145714773478479397410108441172761100357161630056717435841368320400015788432298375373217551876574865548315279746482723987211323837205159833671959982414701105400924250309731001974660663933475622713927415931102017564572350771028951417074809810939701516146707712111744944704690034621316061410459568112356956446903469030778618903693129604301586888585115900511450350616319178324591077234578423163981778382986164407052519886289964293696845204381616314595420370011519812055477292345331220890965569265589090067925621325684799858207808692246557444185202247326901944578550311365674996830675227833319697189900080820644097681047576764676790282778273756037855357286857974782191256004160031369090603630746753628036000324571710476552409140783602647899798816792079394240701221789522124427159387262547996775913169310788304980714318367844669575103938121337692943726443807509749147594831349012476563948107075118247886514618158740056886418522343575254406565030108780168682175080740872132832622795702838281229446540711311555939336078496176196876843953161612632607342683907694905674528514367278878737881031463520228261005829552746143606339540529419923558440871703690389280344944752058950117291671084863145925905094664719032158614130662091141305998782349289148449389551426631274291965199897161927905694522835276835215785549820775563601189858180826485412274234500705663932871148901656919972098459505258282786433148570830956477845994488282416744276382280510547644794608811830437374999615763443960801907867302731644670911802177427142149174560748751576628567831563882844186358255075658678755383614833484202860087556195086730124585142897556144767775439378738233993470328941226178389684784412126420210594496297541841990359663655642646752663291099150704606432129007583126322725320107652836022150739548999114111749282947926804551398808005094760803593865066711262479392437760567609775908662296017615073924312108694322267267156102384033518484099823914227908785661732083467939109882034978402319496484863251824630478871810635032001707269757438271625212129814407882219928307423221193248776851161980527008986175456280069676697005697694103081648115674396357141424936227296698127510132021733656820836422817741605030245428504465413623752137195831501880467516180030667826789340599290511549915209490960809788384265608512820022010612730489323583771389423570997597406011329633134566737446559165565273195492121218144367723324659944761887380429196620927748002698025848315396758108601380483686684490829239287345233255670743802719152257310363033192769727086432506948219318757196650785073152742072158139093487474260763960571363567082598702930808087608321770703766923583339948487957414393818642765859104324871635154580090399191771524820481656788094623934667520120399083299186991564479947626444206108553288826223548987468648130111138608073536947052189208892420583492767192519483529347785295711402816578188849744264772752788072103127352817201526534089475817561752597245867554729154386243080352869580415171968381494504537351722955735120503654341348408645903813635828935942028113936700711021287745658719718466419864365004285689397685805279212559738410096604602861165213422644158063642239982092220920408553985858667044537244082044693752216467400438150921906212704778371989938841334230922597828286836260257485489064317573903131004604271254039412972462020711160297299382948468339501694815487751681568250771177249802154685471421292571467919697594568563380445050252889565759787488768583146449980207589753664488077830471903803551246532905719624704806117839524475422402080358868809460844384473418104895813379327056960891413163592740201390012825154110715294293666916606873668245532240211248347259502816781786733361777256843460940304385002729206645587446179493601320463514234765306923575322485131235159384869412706294557878622673713167376138154881550218143485839916432618032514996127049359724262373564486427834530684803409735753231141421030748993836317812147390856016868153231389861063305846216875952259466763245777179871959968190336625136235262346309379352887418858792483634022368814911450448339023546826329136469081690862223707300574797438951858332675231600373957897533719223146695951692235099163016512829156620371992752783224118722897843910416203652683862555903281328957257104299776692550004507541459200355377533590130049891578850143702128762969601951209389460551276803345003861917489154741750647283338753704849858632870948935953499937574053213203476605381335548155927295465735024500791431368764413750774300365559762984135847295751567730897711031375777886385297933179963367199628767396783892982199173466177691402149424806747546513899689340379416590626788108167978880706752017822741157228313927524197052794390820864203532748415525950848157521548395870700669996614567348709827342163062526366415397745011388882053302402043673330288246793859013759705379630258423479078558235923255948076069413044770847133958381868624396968300148566515897957425187100353577153686877408973172537091354862189050044314511687397129223021146442488347808114789273301331728230700396304450764870178792326695101921326318344788054521302593938562967449971668466260921293861366560320584635083843740994977814574438676065828624840172179872908985376785317216147421071383276139751053192805922304297949173423228591099004861305005645701318228022045747425819897691810466880646033476587619605429179978831087898269086597759362782339936599715610513413717215425600616503891102535057848469010663458855840608946487034991184961704721332120561799852611610304330045947972248322433414723856064581563910117921780944312888738313583877299176777923536073537281678545522125533080037673384992507888372076998361801910663062801588074157965229307093546853270544474446696120503539693281131749609697010375363476293493578430167798311821334770053133496635827897341201124576467557344117741657926321524041731208491015557050725541349790175522034752649968061250320288736315399848267379380311899001169479227268342502058415486916395064212558361077002459084791588606048053572604010739251362694950787903165844751625943307251722572133543402712034443756083861626297995238811541416450330967733110169040194320784107378559896865590927181078135138498821509113616388288163552409966916657213419418443104820707615469260372210111022701857101521163082876555653361246955941394551955487817175687616814593882702936187516419187727368990774009632145786991480743320807522717614759305323530148842694098125724553073702304544775130696288014159800276943260071625137992201905739404185167517686383871433480051430178470649796727443202638737500733880270178407427543090005152951147205728756425668861121657795820827498834614622322787633217032242430162076182626565846561163752918673389894753418284275971115737891670066580552053598836458088226372775923003921961319369422873120075826074945805207683204263320002423082084577978878898024428622514392381464338386420833100765170362725965221086161867745318536962498070745374661924845849680172037492461584635577568744409094999151550140658780840860209067838130559809423345425238152446593046401538234986418203992324982518490249177393780628355468328981576500174715336939178443819000654575764516348205880151800476657311438210966904148539933076471349073035136675022370989648030849228014130857302837524457900258345860048896557698766678944493669880059192757312961559427172566580458145011284575125870068151470607512108740003009123428045246603344125765384293016494474626775782003646256856521939726217139329477874755740982346187212487584655231833746397160372536591434756637974311609930355891206782606162734983917629196528823195985117530325024771151452378716578531390564103573224237776260283543638448581020337528595551890460777038871245343395350089120862745656377574262607000876004856106930249302689055173181945897092236442689882500679584330890056135356615480359060969179441015099314119067385795205140017093041985698747193340777855712332823598247823034552600940623451780579807900533365479660653875595771469713202296393885979190660590122554506177572004597049287008709573186356059324978462678777037521059862675229702953513488114301076638127557271450478658227704030082242698589123607451847432638702180416326311016036277316165333845905921185940198160454714280309692522872893876817549473826019601594875541028553680134150373336438427098899370906892682465368386439847654533817329343127900007460155235795597966423655242617884655343029947399312308483640526001274090411977595842810033987152697658980589491594876690965112934817491378942185238000062629397941740897257604702973118488264240884484062020492671701150045255202509360859978971502471751318442390291667305815227463538900337445586252543206726496578949465070708752139087908267612335183915483322805424456525501182218583612128305351996780055847380236822448848453392230748207246695091162377389757155769103955943550145016755663682317415665308187335165989384995898097706286419042412374364368977130148970711595112326251424343733394910966246281621775955449366070918050329391006467844282523018450480076077109933578912495566449555177044777453919296187802412918652210486887087277043749238469324056228841806264507756739752891965106438036436699800625174502549072114954154308954179220956205750316654212600543258135454125894874460703225383561622666278000667271923816875205970375489228343607356033906924375035997581045354350213017436284839493609179744423181406125406471229305358606716615164463340730817035029961780519540945699973345319905926528281627441538520391762793328175256300034164798856309793714635286764122188599832597554846888025676087113988373284047631610699004247104300966050118966414980485161574166293271820243121201066925988807817662696028564207093620437017514927284017285420054128143665445741921556522321594727683251595908646166288196136008901793987291966749342977094762732107385446811485529277771679613148553170424830274977943724407801636931855778275335615696235340600847816714107065500613746579502240466677140205204660293237735239344346818592883193537239181818532533078125955731227801246867887312978405414323700887370369595371610093342106941538090758944814897988241123131995103128826656904268334357495435945594541789172156945651019222692790063489867855921358125344716102741995464350519353779041263350149990260529047443041346961866063355468727127831935357956725011353365960969051550351757702271700252084773032925904973384328812438275353734972303662913795966338205336796511208157013601032695100191314027829303122538026371749670343308764970261041987837509457297502024003105012053252615111092057342811678014754751500034223774797116300568281960470391785862954803885103221897990732985357975834074854053659581116488191406921575881540630820767976194713100699885157622278670493527476085999980873191578717699532674044666043662817793075023746474373732139566422073192541553773239638113882978492873863729591396754486901024289847750730309678394220058158065836180872614264099310492971831804374299569017021210295004049382118464798188031043754246483466337977328044174232525120834012657062065696283536059134782999340966331743148007126337606146509500808248554057589118597806943765718164174405808533010489190659846882585954861052556107441823710219706809018499351869477390838207333661475588889972998095733724039304548546753193282044133923732668213920231713999109757996759248647941429594817738152222799064780079459582021207342349652990296152391448353425427229787357982017097916051886308402233613386328915586354700330077365816927485955966014294509825985879934106683385202672891415146135950868528093378724437081563147493188771623112813652331201955591588563412477725491402413999279331646103397696805922304009427289754195165604991510422619082605944767316991229473481120793902502985088737112827679473261473677973532691419362885238160891606292809743695554580447013709823068473875828209422407737812743897779100298755412492534715294542574325157006701493839185631959039263563767315514672803373594294130240393447720002766881908307586718556567722610775321084042332966000396395199749994241227014178628237512395411621953723341860722218950945222667348897367071556437280002575374537504661305506976630670786070634095349910358281451097682355389397824561734421485656157792901202936860416782084779786325326820580768343688385659008653060053785860405024177334176574820403755047725148240735643846257537111588005094829278583723520686023376835746465918698962303002283522755556691172232899665012873948406417508119727119701293413914373091870070050125418227417453608942225730365781292619236122222377956089752103347635175768657371741752323274156907894156741657969372836967993237717391362991271785876036286307716849175858018204841640536374605683747862408431818600224323623698037436442499059293350667276461105161793003962235293051415215034034939078022096026995537442807795032148725129274624776205891406535129768059103625169024094921660962694870155069401441953593358023383068196837053032421837993476673085826739565710928620394753648790648561072719949402701251719592666325479094432721800215695952508132028833059777623851151644198884873085774431067590638188223794732015211945114327192763657499424527606688802834237221558301442801209173456037174974646910341535637685037409283400838022839456753174470646591120075551894384055990237629793742244405469570719522955467589247884035888898312367988432908452010258078085256878177002889317178826867208775509075191323929882690000689719912497936008245007336457449904946249280016055490711677117063883408782718397958581279924391912989103897478600899501711681217854061965823288475199327336237660958104801866350942730418577087109217939384359245575139326886786259304028389343812252236920984640861244275985012228222838219050968829356353166494332093570899681567950220256859510515307757368355747094646171688598235181580619625634907697108982606022870793482661080913129160394664219256530565963819021868883521175191671202722971606859306433065148802754036511075776296272120394834699361345309106091097758564643840440857430486662541737965151040545415046037300787265329525281854940784045845858395092114960713339946894196470587992149650065401613260853951747942051549364298688500729072534950106284224509725138289263340160698207281186884944812176924598261657897236842553246992101648033572521288480857070397375543652821533882687010513415725126252042535544411649039571150435479107310265424414027251095606303335470459643968737320157301530695059010935146958669902334266522338811954113372084483656151171722088882829674555307865607177100412847771638307598989537443929982842511112471962517578408834414635602154325097813315234988058044251165183455168737539159023235574142407306589155974798375747067649989319479015285493183684024309034957700283333645971588277861928145702354301113490054829205389053505294876969395704344320042294573689527484939046815115659358566820899863810175941766276544763149510027827218831331455488953261556740987765073997450914786361329696343092500241988551602420308362422106768901018411947172337913080627189559335977648110432627660225150751854134866866986332255730764930294350633423446856233593060891536560960000590637254070312152639735774702754885816028707973592090379628074346832099607304450377997862562111211146459568823081297404964185903077707227618981701150422503358245659763100448656281387236200264771487810025648918478607607536753907893503221939315476782227029367088975272077699853456104863851255349212374570384944481451767017192342620019261869470306657148330862898558747031026413547000515669848145722571934559850344947284656384500378663419553746219903962834832236165073630788741805316332363941394914654690246863283784888443059619701203399294452373855587837901552321718251993668001120446762336623965821133291246485265471120649059610239407798927717275455729994578237673134949904843571914410083831440827046120758579494594817611284546527753192589529516924713285175459126245960388666310414114227479471597612174990991101804114265688986489141228647968473799994052773183354719652001847916391584940468413525647269110691995529000509021624730224634981289991515020238329065089526568997376738463598507174729387589233787243797327242919487077502763336872448502452225322052138323894266639089806127673786272237875923714479629016028281469297215427092860761011133584780244130012304529543523875141228024635414644206210272315977436279440493321896509291302905501533698316770177468424909947288894277746520387317801128866719300620642068509781138806235421609936071137708034528416656043206800981387445207688721989243010367672297479665545296318008128102406842280054774009504003401622193566435172947578761876214321003103839249254787523713710920880075580046013710641223403176967191136209660213504915773870678480133831156923226013549453662384967567040263367204578701297777838648338935642422656196534470781955950647158598515108482473974918544768170938305737549406596268205294864850268035961745445460954302623937183879738340665653478154748184231794765216144114705195295598038058794329128633914996194761761068937069938190056058369321494952247090007710950644712006665032587333197669460440842043382469107182613644708013738014773021100212997885222206195356354069943902828643742723226549853929491586547964884032978534468633641126231073056627021739408761066884104428189599929921247348396541352760436438321518783338951642580292463159614220905911671860266228292354023131555509789425274088527463905851910156405207434280810190647169651483623405136946823836021786037864023437590785618567812531577644400806168520640490066871540472862237711965650177685708679593296180439050938151525633921364235578232644862939943691056396303595896485651722994456252905904536535354509370504074194424760599394101539020680851662971850925246505221314454343504996019085813929463222327742986508903124605070196584532564457823209185192078459020597498651776781186046284777969628202728642398613626746881724537582906130422454140747511289213084347161214265968944938964175148606795922528602248244280603577348370140506336049521748471133510880293872796421097713444425423849131785586731862538369164665833880920096530456558006153178942496024574730073068119345090209025050156967048146766172811880770395808823822511679781192992541274290933775593045784079705873810531236457078686705142665486039323058927503236984301798452367458500762799128349217825373114836453413868613325701527977446970258726525340596273463215342450703442140925300481113513444012215599340821750479060059886822942846473381880263843763982218140950551653040233042511576636388925404862798226835024669899806326476059597771280738458927344044036681871309879164851089122070163892159086719653015055256378831875534696377867991799319949771522527873613896400910267169873981534300910374815588243434890416964263158758897555782048780924091930755719142839178476177462174684865868650023735007512454538170978154260121175861967477362252833693021532945660619243879727681287005171024567438967460943264885335902893558943635462559585817662388995554791750056667264660896052391026038839859823956916917802730676336093032025204462832328552946739949183160581107927404115652729419715292127778073451738183033732534939266115172728155428425242854911445489664727010044542373843678663736772471179043694501937118167316106442641915094565903511569191683714756519997312503969961276226131509478056073529660909354739408213994893353050406229300498524212025797878122215113722395700764068511589472480248613473285900797825388610624860183480300419936709288408049652646327720870680585011621027794417238450291566819316776762881594289374669741401931201072639483306444513279297644093665688012102505298457057306478373024901022957918387910961006757116239470598534020050916352219036605573476220491849647275502797803410100067262964072812697271670409826823737043320078089613545717905516766800992400030213370751753531019020603637027548222058858937720580875497515260820569382332359502323679296421303797885980174195747768643773341364942595107293752609205413871425187304926043013467140643155619795165081115897846721298082452263132104556932534083584098061748897704584113731749288076552636006254927813684734343148818646245942729693576124684698323902620223292083634140014688798680578737095031682378888380233862806270783429656105376888340872407229095939730365972569649576538775848405731629706695845354264492690383381035252192009949073047548940225081308308979593453608232626673793153847682999131160846392361840148769892600435436177166444893285050495985328200606764292806805585493962173698840090876164138023808833244052131732941030286907530295202581742235532166727563058858507415412859323590740874161914258809192405524031288911892492970501787524236856629487260271654755723618246542174169890197975711453711070606222007057344099286103623193596907470326125615507141144689050616321884051156484473581156982070626253808051677011849605068467186499071846841384822110589711734357968443334099594882998089034543471519555227587925896198680017963484962251262615375419625133018077460593451079188659955779742810005135686314085389587460239721589849721988181309878268135561997368767046100513937053207569839304063395136835542910788907570617391611743021941654977420462996762933666640680407929962679968767281537403257331572888446959327984988240623467444938740082520707268913915046637326687913732939753589535701504549017565080429319120451983310445245430348254929507012259206904173960967896383925527809404932762849321561462006592839239870040257902097550661537231360325342771439332956146064656797551451645411963152123559080337620854506944209968721871353387864803948344542023171557194209126454268723769444455505095925238428200271848269952962033435313579005411051509824349883453006595914682848133828724255617583548666222270155259410023404623221840999172122112361473241011792991826743094685413129296369786442320917284954077584938606303062615203664766104108110231580951398518568292176471331350998971364606824299889999643788164462259964723856500626636780944486991981032264000565715640551312739739594223561136539835153531806811136702719672062795376437413923193990408725285370024437749630497343405668201020964310656608686514172090155426879442344544850025669424048675741091808336918493568399228282605660712667354719994534632779506429462595478311353971715513192756028591756167336065979715488638866148013269901518034506630457018424550466837653744743331531149829954466962555800808957939351523552716588378994052383110224741015202693425722466059241685832264503705233481906824386736057937475806907042618503593449346781525847791158791970999303928626334013804473983335697235631387344013060680997896014668330389644889617712631170843810815075896720064278747198209158261377263817806725157271353868346787148486066254660680064494291287319562311949287851283378052619556037802176843425943549179573189850680619765559762494661285379562772536797119613355791817633011402332980711554471663206787624686710087974253238578500543680904870977731891391518970662823092446590730311110822414237543258971138274466738393605251544588236970853723769621229015260265615412551890593415473016048704785467270496653185209325107194193572774053031433776864350377874437341931790396159413887684341305534039455790859886705759238693529295006741887800553463612726136866290813292703170799238376929465942534706105438038081451085461307923598896927266744338344350564656916020859246511911930197937783260442050449310390635011365353928392364697330068820947977888660977795632422671638007618796223825776163186937246146155872836271729521656539827828455665706108936155459160829295843074212910307930533167159313971371110845236258410383532064924707128218827656222616281254335457162533347850495864577992685567328851634386556329180323650083279124235461896647617274169216875425802964621755645293341789930362062674499987612678412044124986829554083781493688444487652174820099424484560611779593691055052719931968623484765434683672301642884183902239323748498722634111694036999991004379777421776828519771086157361675623400935372589786936302931662755208228698215441556066094203336279094023290195868258991667916823601886914870355653924918877945300849396373062387142194817271997909216323725894570551883681261470716065704345345377058417995580513085078165368771431946367987694192649188096264138704244175375165357525402742544889209246828728899870562353870315733006610286065376006117436526245128869747832823006015427797882231558418885279580305957930373896218793222315442757335968373845021574108685939807920322391881009415407618196176925370352187913354589082823387397640510813895865242535204983452862457514318408184072972124059048190724251363637559988346892850451852495403938202399442191686128863343480470889875082925046762820337249791694472740165515973126655102935284941529358295849385955938565249391934977866204407889683518406368958140387693889726119125738766764386084435511294823249775040702841089883441378479273839283640081384914864814559796325334642769149224978514381908772942857289991979572677718705729330835978038628687951278851574029753409603933381188693000721442728210990619165780444718122642483114538503735511244983455759493613039166316049146294460285434231227455904963259914380902286513641433361619519194592492008965046353963430275763116035157763055447720330587389692046683209079028661160916908794296988133980439231817190115491977631931967659008619976741276148367943918624472831425890034966448504248445434740350689895866396187631350751608367089168350494309711255009888461509181703082959956714401859512615690513334892964342041709082803800924164896900544825833724488369883037113954302822855365413081979919660811738647135991280086891588349276721176724051616301109064831784599157083352750789965616406300758389764538607909892558151868392231688962430823217260227419713553088666523913816954753002716294007448343853059019137926905313911656663825762511994026727285193962276035892853531948742953191738841112743281335075189850086293046079077070928148446670902199256112297391242232354666576215911035503545558912506545304986266355104072990855034760111305926013722885940943820012175601988724520126840685137657960335923378825900081061123579884394901830637548454278100796739036286717089696480808769730514139695680466082402186242907338717690263476169362179103863657707601296844792255324179296066816944605428283557301685506389728797185527946081352313532856921269074822540187943948639265910992111445080583150666560908201815291490104225877785784955398053697141161246124449839743855884390028868841387314764757127736813875296414399448602556832440348759515005783709057238056636867454926560182422475250564057147601639432468055538105011572524162804494147942523901803565656084979658599588194697884457593732435261912487241788610569313228234481947286296407880670338699566850817564715151251944540569620335852546171570479681970441366001781545380258836256887200581228531783916552272065852529043838443919719246355979406793807188394588084440978468473478295089428509167340643003687333525381151505252202407910382605849602426842673455909853133471899485139984975035169820599292302486462785325473713451859877028215183064339530424847758287244296731568816494650754732817595158656087000660922097713230692390279394724071749342604844243471116962522182561272498829996297774405264516071581053341461867140078730165080730048185906337093375643872687864058381793157723491205304016211990392417650023125071513216396835588689889289068736509097676536741012022137079428945312491746630459381989888389929454287613012476146561461306467459145415703089903597247129223220249031975971223931642287283480354607797509261393161094058658190973639462422476728124207244827188237937381792023426578483345787507907674050018783802014375064173271125670857683819362907428921753941378963583120060906786257507905373064898708213720662171706224796722558889512973586667994606278750590983740135252618292354510415571997996179370171704910508468384771105104065658215073867053287970290729005791356750474275129193162551247158209599171233322027883954924943430579152213514468926832837329333711105043958130306458471231033116787597138417265428442303327173486473109382567015497316936491341209301762206427875629754715199115895919257635570373046588787892537367997570239784062015224911090731349375911493086615167836401464064211141203774206775778219816638858694119561087526509504934051226655580475043748238990993145456680058773775365786604489516535744757631637211165081316274956909591500426740099127458236932855152218384073477684975103461795259790602246007566847271666806558308728474118359644670186809266019592593891146506809209100891242405197940863205996833203522026003598028532817001416759556902413536218986818847767905760352080477276047173257677684953673895360437764379264069780923797158214795600758411326747012870353755140774689831318596303760236024475664096455437693735824155126431576613714920330943477681662147588044379564302591871182872223057967029958030233975644015783958078255415440242860238427204213804841239181659940342924730589784728638020631675016253999253170060594367176872387149348844050077236364569893695880356875669754079432621786201621460152691294885318229777056108401187935268390347039485266559046447763104611942712003097590737947432405116798136098383200017655847510109431335614204397690715656789041601475800383239890007405140718819510160743328638316408670739911283782777756151988641746309766381747198339637573937163355493636491754647304673057108967195731182523168864999764606262526866000935991993606866071595870270420083530112471675780237402332337705809969738744865851766947259709102715608610198064339240706561662179554595877087441342875631884845071584852418773092917776602578135831624453028723178763391596936416153531097770503650991694769659822363553716423975347408113909247997622876672769523258544329483845274157240998536753796036768529548797624037388857578890545596617899885486186661788662085669489342053712950426669297847042671832195715609975250320856199133489932568141635636837992880086438865913844750414729043719696433124761224413305740569315268633997220351951323409883956245025584195994905211535114766741712764660893014802747321093221809635016932371650532528883719932925979632392094952127609485367488922499843327746976184573221214355754450067951368462380122752655526337052016254138269198090128869651937461730738170715748361680325871440342870344437810904198855466625199319511966495813497893741695531785148881756514187135835151930750861335233191939725168134671286194395440392275431447248315607989760535032391074711870410441243906532145954138968915567679225816973130633815207967205254535075696638771227067458214797789250243323885476885865587924748909169279596046300190727301522640936421510564198048551486272376188810899592934398057170338305050418782202318120219819653170981441896651934842579701078900733378785170067044626939279185492667277286398214524129029919407855084123691202630845250320591496743491611594464247025160200259440594905015936776795605828543748761923508665825386869116062262736288340371623101306744644729973797795108355881745362898474045233848906123633868586312333766225130694054996613461959681986968846275568013671788595850135995286020704112688151556721852248465700970422249746804563989593666853008984097264676551753758824168318520685520224757005019868434800105319337543769206319711420395084494924443292826030445497623361064632515049790139922583659131877070999522653001731335068474236730531623220955055811288641107228371409478700522704647414017735821337835685962939524544121158614413026075650299847610247259621048787333462122553462062461698446428757921268985966996797086333617977338349712002641522310016566766110462896736157449880669867634619040684215272066281882185501479667764617406034472397353353305658511979716096342568648062128663046269022134541903161052866821002469054239483941735001387103571848030958238966966898184247549765212519885167681431766782090011153978923744047660307544942337846111949408186772159836185576047200850789607501873316248998414881988724641122736306993855773827726766828157157177053131256552939581885366317059220295157473516910533985929766407419012291619086624017312878582119999859668231395675118836020507727656345707095792419817129983858842668517144548027353415387230957646009104161054421815877689059244533296094469862888985696847966269761454159881264421038560930934436953021329292797469419901710025002315412840703737203271902341674636865386285033451564785171587636601581334905949684636009715638492642335453194549814434316229782264359665300607176829722802485512543087737719437502832952451805400320702923029996211579006188971899980657660320026320246596921623289503598140209730739685446078917834817734509779341998300643606856188045260333178454468728962322453996378731594441579597920045107603232451283703540427301438824917692498417757206152619086989839506166370586393527076492897345524065841180524610337793875379613255513221085201472344952837702997908623679913231431094624774116112669250927200180124899849951036866547402593303516237053239223906648636614867895628914155779856539145928805462400893587501219843798048870422186177399297250646205806264825606793772321111831006021209620295440339908452185983293600750469848193073432949204697813216899999207293020176956696564901396267007154561136344273916598623664613752677090552321502241963138263133058553534759634570411402011737179566047266529082562299409434776744573599069635759099277467651715545248053941327063843776033451254197537631609994456283803318967391697107397300383361504117720527814634123777296747590050262479141141358550086936444387169406091546679548453246858681412950128025767429288595350547007994123598266536928731461727766657471102085324652299104262768940799011494993434670206659210177024395190455057627090556534246253564643315421136308066521428401284830367748092021864737033388009072445821188733034535280161822963216820729396016293647484812363669823697140699612514665795285066631692826877922960693562990651652156300405550527057304782654781526261072905412982741287831718139045952010058486941308521324891665949437523414457872215186435381646572690407601937876769287420744324021154558691003991801263794609605327346603539601914587668348580328641784102971212760069344611080680427908739819295150392941224152787560767055469106314153298349511948481541599882249047875848234880729168716059680809192792627982431505064906093652773055369280278826485127975485952217620837573187020015025201695143735888389271894884188788221740063855560114880994071126318342590723754793118141983008389000989447695220985060895948177968344913657848598984525217111299278237106160506745969734399530918609361506787231741578741094383082660128114350473548199257095198390239458933600575293573089276164238809767268221633000209796506877516710861535576363498376958296563253035559724563898078528021293073078051560888492772679220144947442503789709276838028583750897514111252329177191946553538354385621113219070071299750997912165026315109934237813449950810523909943548782692715079506659247003138127473647322201146973455613530720753007115033452334933925032902732743913245395915944958858117668567652157399956392827253747596774241500398730569898988345993429046271354792699110348733406466713316271955828580522603825481390516935363113306820094201795934338189823646645517075591547084464946076323424132803496853451246814800588728695174824632163898376138425587213389047758243974690005471903935408802713580987926512262489735591165343927269408258362034794268266713942989711671819910944782281361403479382177218633161891484554767677101243708335986266170336357183901709149219922636598385258317792147219882530118701155944725520912284548471654031323423137213304164329191755165286764041368708683386585781940764684364389096988237224939641777644162656806164345389157078068611565638993440293659927168620241369360231553851304976265302113135858689878508186897921833467935010752417442088452596279764116083753746506798432764508591474909503026502701917992623237123305866353623153266502010555326749331306199081030242519666681664922192562456957797656306387352231738742996108700829924729593211796823325120198826522532929471266637990856543336817396610000661573750868191339891862580455675246052098045952615892949143530799639712432450649633580265940033562027216173673143798631863472221846440082678454254573551115077819545068354590550636767039395189519891403475818804630636764006213863777483097227589842736202279493967408440025003570116277066789618400174509524307332247698188451082766437234143423781333822283468480048224861828456227785517443892580243244293814663412905713834541442091040316205604864168415502197159447287382422042151969606876718041677625311357300513570761456828984018748389951385159943153314684091530606053473730191241330718137106106962018263175092981177181376840620817588821262644627806212477148492573920146289329468155321238264442249263696036226412936090616045007068288491000519271797516291090837836929664472235029094677628672144121848080261292173841407928372276523394599785385524393746589592376490900806038546755425029119395159056207281563650064374261744866235725044943706625531001545926736700593366345747439161113471118353127922858636611311930985092423177486460396825286145223693151791283887162935917316936126590995178037708768120751887464956423153838380993139819380637073581728673674880213503288767997546191575077945765906473243409529645927361292561336087475333740033089617189634581978525787255723365647758006838581613047803547551762147466714826520019716554029202570358471809169813246719153100313132308429880909257613200382794889937014733986903347287897024598409381869599112441842929883525613360066167191440718774863979734623302242198105234956576973918605926033289998580054539722931695688406676270976069983175364126731128186928524190767126936191192723960814379851036842473396853605165689778630736041980138051717155262763289694930404605351642373381423788043466190046411541412698382774280437241475487629353515856398490944967478220838728291206789889787794346228135330155186411698584009086457751980742584365560310279179670778749874906722072966826212377250156944266911121254544043502952050208927250757013526836767365787270124092959615479838436311844472885924618879963974926158545767662174282901980199675115023860714958164936981809231293275973118732808840540682013222105364200496851930776655740983261363957662829774160826117280559179178606861889369564604547363854863195866406750968462963725858503649440568471690322439294735177718790985995087727159232609245061083263120200582315223052309526427392815384744280259851390312875613031749040513529690978527056450616651312648554351488367536453852477736779394464819697496801953351130189723846600066413426492902510520131730203032485813897129131199305815462097696133612871809306571198606249921715010430208607498894390240898152498568116804176610230567979844632081272842721894033144074104562099667743952035746219954925301543956516928873411349454680670774705179449329554860599703558561939086448807567293862769568449802729492542125571040047112596799786643381243461907247156251372749180659302452053310436807387924995595403005061705562209385806454398076744826031638861451239740711640952514706552106515333481429073616317404419307707402793287286278192551860488900389536930771097585614061172960952210253724193747942669001360779860463004187238914651288816296329040332688889332575453724206368262383694703683824826957349072351254952065412314046342140577248263505089143679198471311701910962109078780111046217966764123617558978167183399683953303225004236809811366842460297728945873538690990540707501484608136010552127873107670798938164241598403490717965050010846561797547593851275511102664057212689122067763326501943263066414651978887972536584756238982790391659301805025385667747753966767491536936255142743455114792908774563182921894312217411923845372080113013038372208340377649419379269579280815758691889151938189113290243945932400612585990187981117317524261937841351573072549145249241685717008244939626584325817645053136833344805583756131277170596528197272222875529724844169044838604101725699307605479237519483888229616477426401591748568607700283510284032936831906278662184540574039867225514886865890431691590265142930404637873778011335845189536373095548864545641982849523545187792407356299314698148087011714646007758702460516931980804590853405671987920821066516975681438877842386180077853490404054313950173861193660054018803928486287765925288858393451107455044507194951919935269602999502566142652508854621460701350784035589621149345291257089936936623185601796044106420993652823210467752435562876158483215305285989642415132139997611156358119511028023558324654218995579761626376595242708376997655486421298174779609864407880746737690893274034288535344026696198328313170453299188009174276749742688502185465927510316396079772883439693203742348742482787366101126095625317384862577338460121174249873981136107281996551568054539331615390207640538167178550455549223688547267603554525390788171403510094682959247843669166467029238122620048842629657089437144882210238098053621746400973137577785852480347079614119229351159647742123527980217693311839244526676491343991449554694750092363711691412255005223605748216836311458728725686021463570112958047950341978764056321466550548018821613644270579615396528020341427609222042049954766584428954511142167289096173540125463137066315681985478010358487895311214748665546758385481345796800446499257989223212046663111785057998870809013123931024916548928880010403045001390571443204715469309996506326208796592304580305239745296012006729156000018384665590753928307478353790979583859465206243087728042321111069923145447615653025195301716020587170586685344708617194700591432211717836041322688988715746375834761262322231456333763170360258050707909931530159440003558968937187467673432681224101075244432787838613231082493843988536074062725853810554087570382635816604759314141697555614503629855982265115737817309397879488965837969486043545755080868958373732875112516224757626294271491690870787872392569565521122938447485617501322271288020090791716044941816553266550380869396817039862893262943159015832714379932473796343951006422421902780120474750464405586693792754362114012545774449318860766126963039726075371400749042961253318765668730074718154468468176392139263279131021828830968120204276416276735105629056324408960637541817134878887677277813034348438141456553253198186915454342995813887250400700652031198546044631713506391601690272514722357385041415358961692050456896112986926280223775923336830378068198299275716610591458211328572455555278891702936130051241553388387080550422886289554615075163452580880831612937199361371846147932545092877063127103489731732496951815965579687254598127613034513535330215137429241149057431384702019907329150760642039095443000588177394243716466436225309912223204763525652154800240598400965880493122368279797657651831637039774359881414250316093410976789436530024603399156834729445773051726625774496429900598023440433834133586427462984942294013254916586152180100469415918897758259370989903138328196267653682771795920361458047536459527191691299984160019860145542958698495063510712944545849259529962789653877964939233051495114465832792659108733550311907673908549011755640224709652371947582603634328827356748194704143795242686335180066442184048185687382851480594840196898482626118533653052719907633094552517110902004490032421936717237468357382264715739843740565392939708708315285305496836434771966953318609302458038144256569261435720514923446620565372110134360225343287245403647694558626136481801230674217506099655274946549249225116524616313400103100037153922188804110179139178743220890377560367316796541822415992962539711307331590083714578751927445006436602275659180390386124033266568821237565101731546578760352864938122519142075035648436482383385953133150258492462398649040537558120375176595108428656217760880411947604100879722324225929330263657872797498610337314970478082407201059658365559944723171602266449848151635684385628730236819992544614859551277230635943004853123964721803986536354279486056675291018355393946033576998028729857848470480523263179726047458120569127982927354035025012173432013258889588073757624242513270286099478245753739729286520920838337776100963582418538039456834223627538506466867328242126587859402872663548266744160228189737512976606978481348830529313237382570695240877905196277839647813416276722567143856392400917746671723682510831823898880598065938324181596610245816236592741485102607520646984126637748184375227845618708789571083787279464561045578887350311824027749187037627194951305926202776361339176310040669807553444829458783721697320933687597195358965291332612550071278837894745891443865084943382981508017493732614868123939212013380012128902499765770236408427917046434911316887895383891419810732011944608800141586360762301469794356743398267778603375924362550740254387088547971347007713614769851602735402500908799177768599775855595385030962877811326384545496343923698096560185066186135932889813891005369621130220936786272519633124513640772240699536793270204948896810029089270962650631944187717221106234315680931930908939617078119061265162066371874388068437640895946872775461084329913712403103576598666552002887895579043749507919599067716863471766910894337577399896393412263036663609439186875433828539298509627095070537831183969862404777480504498536016839440916338778672524290176804823083313988753200437311005880289991859850433719861181408189747533654027174994308266209199203910500599372318363066535196044002809047125208249561149841200046415591219612552124840883030863535894720201078441696159670259678720743553952287661713982412786729171197061426676454413379702694846543822087069766640228016008046864877173965166879999285709777114739153485920161879568992970044291507632326592070691336040994842024292132643805624193677243439445491556644417188413358852692295678317930851479784469043584941813744923591916890841440567702785194954388010054853905396943885877227583774674938541540989583400220280370828306703483518051859437238865690809264158398695361847125511425735315001073891799631098924556058220028879432151504732746939849218712011156293299344008703127972799462983837736978778358591973093400912744440863642753717967179701136194668597538117423595106211815049029331971789833182399837971374582002214985086939938451823271958071751654837404731543698880420363649525869929133302803266693056504059712245288626506910280087029421000832806253822546762287122807701774153699905058827843376020623602672889532490289078520425250851726303053432413871163832893676289025959866760801936915778193904079434700286825509142458752137629214105931021987781507602667633446630972363386176029981278011565753067247390114202504101323305820772408820378366906903137965103972189465403581637369106407572125705775018905956199911427415883138768465889499095929430296083155552532435982385537179766717674847544355968678679892964358577990198330593070105995803825736329739153399539026492650410520586903807521837468889450341202489525740844749405344544606898183818102507606066659040877525498673061442110494288968279385447233558586605547146665341247222531377877774832947187519198036677615363339723334406757629742387372382986616580473775816916892165010131472238799307849656553861925630590043684355811875171475138355445587364203168981749925256875462815092096075230989517232885515163100960955904613716268802900196694884787059055720434629126453034728998593738774064481491893970420159844763526176865570514744147374463275012382822559768690396846291377716292133481657089872892898947510893147891410359232649853983022744001165572384785409492079774755195075703207531680149826661198878637444549726361709096023729454498872772639935039621187657620509415519193504729637979782598320786528339085806566726046282054825680745855577815947630247488635856112230445960057496167344765137812390652514664894694022669511214538081437733395088777738264515575984841074144324609880204098567293557675790694404991723569522039602591481799403893789233257880559724394962100568773152807780520776907255090879224106741340149597306932509005673627208178463775131432694436718861120432234874426999626652105955645921440554275983923550871289606959998748965904092748608376576049603520214675133140495947994820768624443237867532411363066724161175296955825172810145446186273948035958362533162637516949758053903344390815081481702276887588447054104932609644308269538592499854796438341440768206267035371837198621543133338561453436678072164140904539848908510679021668820159213329552405188215104150073956260539933098013740910091589399042395582218942231205686250345064823061562514008916216429917438967510385203404791093765939756560105579319466983005886584509791747948304559493849321494547273284196347743090853343135023823196219916360044949436788500743833161539063022346302293681702813777137407439829860987240400178578147766293122914677064896221743819805937424157341126536668255853228347781415555632366832458261327080047823560136397344999584101764432974196117270708572103053354120460516191337782472705513477902752476960192423571424762026988658098959293270271047118406898447743176565598214524475646882195545003661772945806417095800679994001710004138163110914250891971311561679535657397372994874312619793038134028602875162869037920002670096080996036627749980628138743271104962653184347009385283542002796045263156898508858516210519408153895054529677934042620875364043654532369456256724691387853399571563532543574419012640607554656896293024133127154039996593895327373019917290001981899369727232767685393481391899466429135033075843913699967361068979758067714730059006791627910442224779053134249582963434894745854798734225378797694895856961958505419743979818378177289210292315422831915818300275954985093209626612377735392208986130122652047010131219669801536024551254174824898890019430562867515097687415103151431174192254736524377391938635004155563148203855695228646061100187889188140617086182103162886793924373465130547194218256802589742531932344620214817118547858659293310357304016102245424927948035100859892303819206317381341015815830225727412052900687989201956411123619030590563594713521985793722367419624301329562324564742100821703859174578490606827657070687644714325701040073899033269351367783552949267876653674386456045288217966644485714628886212307561404224459851965835310317738560557862613679688049258253678025547295695282253635684442987831493176359098149423285340091904403510924359404184525762451864877326419334522211480044415459253763198532394159041184450134855898882614521848516484962221788788298303911802126316555022356025112876746033440441821216468304861692297522691142328130068048583194940861925707993917262710968128537076574221094496167019947960357136513438314601097352216045311251679167033703438097025565715789778973295529035891521446065578871225194816391834712769636329190866296557572837275186418723581097006334806204139352997530548015981231284064295534268337958642757848956564203612593176405057976687773610984486301479139054969922455826055489316682867880651111247613789381736122217970604024833311213873282527569927172724579391932662572676218155839950064695635470579253425540181944270100838729957673153184881431293588809252113766173369061152442131143573895133839549796141498333344418072104076355889154676785670900364237616448196840308027528042940509495023524238661812591685000607759176633841550273757667101085033954823184418647759394893592766329907125552286899691511466084134010462889334038063964975898607380908073501377881704800558809583587391683754338553996899913318074671475153887160830283864081351598272220186525551803213319942691550823942074251027051320549032637532600957852127836422263097566114218846081169552429056695251359288590241619064430439943833587163015023788943697793344007596724781049404172309398406049687480005357082524567605107557437250956804765580307118315988426859900854390973490096906837438612048063578321897857554525948625784026728869864454117239933428111911822983294574775858541879239164601379330910693901504079814761311392085852162347513673385130357671357181955549741848407698973863278265577742008131773540399757952440839327598584649334240308157984016659699240783580109542728806789486671382248612981040783553177344774725026044334426206253965411503281743640916012417182397923639172001367338615179999546076916870242151279459882235937742836067467961891146634818881658409509073983829859701847651753285740564647320601487712330105943196843143834034951780251889458959981999949406142230497683716036582302789824004675626031821067669279065715415464102883167454280294075181501756888480824340049327741392109768361758524943831862682411846244736721038574740577434893754305328693041929141259517512856816417779839235186004066476249653233535267806375147520992338976139269632622186296408850941117712814069077214035225645489334816908747707335613924562370129059085289076787695496492863197662798886977470271585711957875673546782817493922468422687506445829905828960251981724139361167929345256338812791420253770124995385346553220249776444018954742496265242060529243740697204503121736785045118154195671262947882609665872631933834279354058344810693462751119847040309204703843464832507929823406736332413253235454267613049254945508888040793578433439222005055095446552671912055400738190234555022514228823928588335512731456890792894962409644338633502098542150386365461157226322753216610594404963736882928744798400608339256186051733855373178044540967285466449417708457363060132738602195038549619967145046063413041000784696687226009055606927085910530131498800617792975547235746773660787598832736852951430668188214628075435499752920930074373719126413911878445943954487772056294644150279017887548303440403328246316885016725074585151414960111029963529151222244310928662607373767206981849207622031280643641542668803484174218244919108015933283301338207701348726364860032228237002465886389591338987586876475449091213443426698740039807829254368573878784924141071415300779426202825860957248646823402514265052874603281384758564277942035506521067682534583331162609388689464960268831121148985314820162521081711276032941882145397824519079349864295203944774787084686181636550474266367257468716965751101594020360945780312290367239659069453269583124835698104448401974311009562535797097270571599087958948258785915291002229237609931065179489256907218126030955128952419374013168443707448477632844698510895408160641462506887676490421635410949367899322936460537780428376076885077109195944410688001287983656962053763043356938605039371786046448267044100554331122074636179233265072091433407503204650077187474030272700502706689443438983688852914727061387458957550362886268753108312835473096248410511487884704042344798556484812398998458438491360172740279818206801583141877458399237740446040534615041073862680223757163871375057367121676777368903977778071327036264461036104908096095313086027360277970003142898761627865404330121680823879751860876492496624121606988624238672946330606149331924934966716254656813809123642309148509348095545236832136646514514475800530328890544973473709497007968709171214847978199390595931858038763257371528002542339262703936303595521568370593203287575103324236170087596954087951507589098003142472310492188852172815027823325166353406664912826583685883103281857061396767662851418927141071920377952082164551289142714060822346067280989965939343168420998252584760108654660496337694615490892124468156352969575952796551202034452141576623558139736428358190565127743269384075157734102487970907462527809701347360600884243330861816257766526590773606498327665006350004914923667563663031125286402770034823264533567919684563178138397622901827959716133981087953042715843430587866766095064501424077207127744074984434555062203887035942052561089421402336533417963087950094747399999644836560079653584202702621641425987637029270974737877305954551245252048322004826102155311089496677505210490719938024984836908405377142188280230754456020125912906287184951400068677561760388856584767845505880666541854943037120749126532758972828400245257099710830848949039636589353953019875330094253341048535700129925596678069730741387214240907268177536557059163607131581612521774173867674006989201805068846421706180449723221854512462811435422914323886035380494157846225422153847302075670416690697187366379060928426670217145829149864438379252407051027609515860383685581658012243239875562558664676089568043820623286924416335152397443612594733983605042084560411847004825897992696428146147762921696531324091027767049580367522211626270946063492992778562512954688214641920815445343341913338123116157805199829730304907213104215852393757925944537046855099569330812913788036250201790217748537312295301106756305486116209202436752183795392657669093857521310032248056305485265962969256890698544509284492724400118198774064962467569411862051897202305958845496117739461719030775385235051803331736263233666638337158727609532612966715863483875034260377715264003387299002280318236077802607992698138358848204096908005481706450157005082251600410354254950615789503541978607286073609176328486190826913107392964443190485938307096709791348848864349104792177385215528466752394929885949486697399451165441845368914925985408260325307185205839466345348791465687342328820704322045455896798394339617667085408363469995738769078844799220510449973307410608277947876320370972819147088585780665384419945754397112972472292732532720180241147891975656719571658728132636799831971052211960244906488331599549669819184240771559146148319183795629042792399366464451548421682258028638804035634195938725394924763283717987855909392085353878454788469208166022639114810634704859794008099178149001721700901449941146733990965928613194135562871986378350708353618843659205347092806028312513197071540516278625119024573826236781571109464238746869175876883126180582155471012086572557571455537049028337033530016856156458318745674703252498069995254357443894004230265314852908391004698112622793017207275709185449079732143600397396329938189734567823155654874259796855070245272956854091897708499251664455939426088992064889737009285879204139418792969084707352376934637488692659442807587059610402117210829730160128617835729634592954809442121319937030295605075396712849987497278639416357143701788745021023694815865778569851125857659325164882270657724962509116165553816989950525740161390764825996896607074070996232741514252664891666519012633975212408567577467540919616080086655756382274618557209924354205710661603957335666633860074456727751843267069534458738083844305942605491931705416034261368289434328306935550599889888335846041246628736962612505731620789612513920751945801318402395591891001364577777810526606124322717192239611324967179395193700457323906897975836479173834787935341970247671767306558430252698409376663150718164691315722713622053022072452040564639229044170697409188081249531089926632642917275513732942964723950068505450928216504451266307603903220635574640158099579788252124014143327823726653662100027200510121975560421319146048510683992385079671693906159507259011180601712841625789218375654066427021830003433620116321704352548558114738967170160469300673479668331744043591211676976754736360047418021705364515221006123452943923116308017498782759016367425659431139314358256814926608501268636256249719959517862786419405834025094690881816563334313866225874481405489839505577368170693460977736935173557833618545866681775781023921291476839452680112393434965920671349253316850401649227535042881576380983437012104736992435146277673378682926004261847184115181076659883222339949040761962707867374537529640729547844413718229082035392545518766459710133922738129334102708731056972446509504253675268121620578908458577858191442147136111085868891753461430557247259842746517422407093534786702216545654096800631667798563829923668435267359318123675832705252543568485475394466159946621471279916888703505606718318565075377238893628927671662534243398928479693250687082277369873540043171996206341664369268892460064749049562106671328721109819951426360148093018447005272649498010562436732151903905062082449340271839137037991638311102633735592241240207321007842674810316254996865596625957580861782483735451783745797378232506738676073504756187061664657231723852409048940698808474403122828511990884245895965509054557115375042013006260271946972580321724816118684559677691359110588475179504448534099029675231164888864396589877051330020977153268587890491680047469292356376991407096194742091830709616732273142909792801928078923730971333069708048540050518720466674407761593814060460978448281369801889383314073369567884690174716113976442258321786584861767132866978223990276328775951081826491187073544488407630249022584465168792424920778726276000174568171367023559447722329019694843949635995455426409787716537748077988741160177249188106088251490641488860551103642671775224419577335599679217121501281355643724593279974916583806784222875734095289150747267818145199005692221172147424679563456877669573983579271901708863314802839732345739272525038329395916996860238781811469168133396644151911203172183973545698501105053975006046342808894700697562225667602605263067034464532484094252256426581738101033358338521067161623873383721195082964972526894120044893383927138379476344284374215258010296679573633667935836530700046470737810093290573244625258805475488224903147122438937409987669771826248665209115679804888173854446319128003746375029303619547845079420637224757826272344570755010655105164612796844425321926139545782243015365032165479991908944820462990901679731922859812144248182990821982201887451031850314287694132143078677560306671936113220399236742121976259761574067922328672613865197767652712742824038851774000574621930229166826445305502735894661324212000939778937529582098160049463433899568765275830786478171321471642426244880697263574561122419091227746886636983818970903757551390296467219301454364075549714026078417996372397301206168030683775363202020840855729910966781048624269036373259778944041345005945950228353812026856154167708668196963153558756231566372292501821940362072821649644444150168057132283050161414644726901149377776097576062135135659572341969314908273401645972121263714683639259384322745835215886197687418378416646355978869056679458139927293858988537407412972913281739954273875134507076902930029453518447542913303979286060875271916968129745397547214969444357207566399457521081988979636173470550622153055118895483359607459008001287254400759570303769140315608092606504340230256268276527927193607784478616179356861633754232537486169546300891068221914057892717604841440956677241363830293069239461932450796719403942073083791518444925031940695989102418565354118918833987638807118416821411654429208291821077635509701051960944439816005021738257527228431027992076219862494171985426345126366270149921935173749467685618334763189835489501708903108308610084979557482878341670734771697664534414864121903740272126882336504300191734184154331983470597618048315146677468452979301298351505894877481981518929917875007261396282154559347515409664304911977731974780466320154948753268285236800446024397020111381908981115770229456890408234325178751086377906106646833353942314678710025065978702117426685793848884871824964732716305869403523679302430900183410542414892176237762069906680344278392055132576888198917958453169805636919090614046379825346357918924810399207692398870477836980622140633313055496657598817318308097679159648712931820232201809461974570653691139527063433559736525573558932249936138857344275637120868583968809279664426744008940320465085345833130199909077441520191483411408673559537229569625904574512528877936446163080415021769520278909882687856806076824191703133800105963502038006565834145131913600209883096698564098154947348862811277118146291301165585958531465721086952103456657179536957320835281427799394016447070088961058479537494456456991385070428174018524995923662468063011777664256700134651895048566450336789087259845186516579236535006711934907175871487776051087159671934006481280979055219883999376611165788677831206273136780824964393001990500422932217047952593386841146432956227481729220276699075651989188694809187319241883621934780944917580423216565137068453380126992218231894874659293987744813255478304284428653535987994716189813627510764152151928662113605806998228631977732771664675759909539406948818778629505800085401115529014016219331080447328551086874572595625432687426199785197996775894868268561893012921025582178019229135614278972544401833744911297072540730367584525872467682068964362136561982580013796293836478208380027700639559863234801269863239264310049498382278841269669111552861631442835723439467607559245460099781621358409042631462279464422445030076693929605335189269451643887572327418589406518673397385955696076651902950128802520405172488652791584968521213413654125762977168269595278416779802423298878217254761252359975260559679608106736341311371677660296850773334273757204457859756636346486341001657363919324925547015201356315636095448337710916782152253598213129312423994496417207761342778032448350508546116044130371532901822199152583082402057082597694703165862204516187991932271855967307892874998017127772486571144866461976316244067962266881894085593269201642360877337970533102198980837808200693229766249246412940383695274267862454838303003003346269298950868687153750461571151751658126873090584445593883059356126540953538017424730659346369119844993412236668680187943022469836747805730062468706035740523410345802398548702877077803226430110595663995737011985465304214421619795362045608125680209474112917771769999652910775580808281543046161498309684669383565304471465376062300872782461746988664765597418500812013131866059735395597031246149753792284560301865957025656046551845600871412321371334357823438609661508952929057696700528534780332096258568588806393621202024534825747815239829007909996297392693069163794643704048092126464575526184562911613914175026269215573760923566054896025282647345499424182667082532929173390722345525108601769950347379483332497055525324528133792240430816251355873233208078115824092618400113319663690114155844376732499101394407330962969595604198274778756595961184827465710231954622608530380827904397517569157226930778535229031418291084720995910820656826077846988885321271876609813554584136270376599596763542418937458301413238553155850635152967904155318410646167422652859971448250321887157523447993745728936368795730790489574603064764073637103467250937973423460640955250268443564690323127375440304845860794345700348769996999861647640225827345948985603574463284518446622425700750106780149893619565331582141560872177913428088518409540132527712592053300044626224288928169464550935837459483457339183887079920808523191118229231330801781530389598632963543622022826332695073087353620301969019930341853368859670667832587344125023977569521266307528515487817976517001242319504970243280301464837012298040066112438699192866860088351670444589895817721641551158213167656290532326422614139457991014976550580156446420520757049639753568224452774788311697963716231871600360415379554874633420890286023248815552039543634600914079962976505263596921359294021624721399603959835272360739269564956375067943492792078252673423207874119234486742458406932917879230414074610307639213257779972980355608546252024521839079452697506108127454470206533515187504133359825035188828078311282169620362674606604607880130243948810548939341806957002555272802754246456882213394595440137065785769285850203363648493714067846816751455934923343854093536044460105215495987009595967341366993903814321318131729078918703723634384923901203476441906083276659270392412257187276491949343752735860895537328904564407579540787549192502210406875881367966574841893180965687445407856609435729505056962526299894050253667594668741220540174320794298671098688945378719397214454495145725925007920402020480636546024581830132381617926945106853816857444064716860929672147119449318014009719473803153508090931770412921954762935658799729473182429581168533910300521031153401142486280251508196282225970710388596968978744210770446381249460644003626027038718674232879932807942596664578903176003977582979747167211411144544496935988111500132818541715051259358360659789338993642403648900431132414094502644734500153904605751284804224237933770310901351187474684850052985313535205278916030301081430166613886302689179429423861216607232997019135788740295710007996996232785514135987839681127482851014981492261701316947549626888267425989391404639528155096745043724405785476371168688293060227621437577751437726543185474875200281845731986820224914293140299448027164025747970732277564317276330886068715472126442274410223294522390337091419099246124561977054193750712055613865397823527142107214486937044007479582187041927331723169703969198751568851419169610172324938940913908376355924353326241629864484978342660523231097314565742039326014922858904485581083657041313046590505355048529202372552187184358442069416137185549233449260257747414053941189052036893074492268092895828316168454559649818799935472373597004036568478576241479436242652483438377592159882476722888503028427819411224203568576673775348512867306997661321317066918263815639915894118446544747992467567034484658192727451624726450779547984129264117601731782674906824897507872619644020817071380313798415404266929670205171263957601130711227357276958772557085727709659736616584893434860579482610616635589383980809374578404769533070826321585263007275736260230389897257326044944138410736418964863378663953744501324324764611351398797866307975069026200113887983771177820500727876720795202708049040059969021064393172059792868867367969049989186608477530852416387036802729716927340083012326430703192326280918828591140034859115315957941219668977773262543513229668733065939644874569788286521551142318258506989715646475475458237214418890530808531655643211819623344603929140312108176937375129585655794998451181197453886487314145046818844609708207709262352665007880043590596348679086088122308349535777252095420202166310602330905306558578492848153714107609730419343550714562733139808285997490528588922330231609750314375323064405797474237423357364787273983531136431888594052599189133848069927088309549337157178277665369585807051315953355567949118982840221875179948138305437223404566622915817642506080026795281596905374359894301778163538455403869527304949275594132565234766680318556218932028912670221009214218548174002055316352106840681459040791446827964537752524452325999711360875356366654371927233947011571743649483737801999098828573537343068459339429197527812819873328585493659446593292888360906241660476311640570046990051900222477844178439044010822566280749868164946189553498214380029447788484910065020178531727924408560884143721436584844093863023577298239443113414650774788590084426146407450891107193991437714496738680188124093199193724297962072017311345602392908049851768166912484371940783989500605157403266630700478484086085311449714066891930733802953398125364137644264250133848048834874162359335246256248264424216790318441345810399785450091037064411023923706649675262325568122912639031775451176353929316213269496784469450806806793165515330566809265602098579002453238280499040882337042317492031690318423491788606016497335405150771748943365052885043382934897763717295017445239934064471038553305337131118910370237312662088872280504352458776592681397539654472252383314108561961252987808918649064677955810988032327970940049113048425340482574357191380305231790641353296716046817188413781613434444205738095996834344578128197331379993984125303745604823283710407588864458102553392002396083158668635703285971660549462691928179709498407153775480466368155536173731017864734681940068519292959433150002266642957090027375909205405641570243964492435642441533287786340984176224378869501039829280961567795540263557075720995183843453700759570617830660619372811272342499816596973611740241325333335732647795999183540182653507070202640128630914117048177055393294604257536013236171716398644046071869990970204599109966350494690729665750406438422058702579175734198689593812065233322214310113614825945934725389069516273645558220309296267594703279408215792953363122253326640079909923555657297407937396091363602840394806391674248263730402935946216620647749115974248927391906909125891457851349287134294597720178630272619857242882042520744918433250968646836881790409898731385650139580730528120311489813600805404659907318562793047408194804965103254314216390654278192966520392517874036682249936234076430370038638233251850824643703973728444091421601224523882125987754789092391090535701160966847406712197762819848335504341375060956464627177681133905516047441585064231544110364538670994683544199479988707976723270000621418632856527885428368783612770667085653440237394065897854770270840320712428523233135612700323305157078928448623295505626347643676539671681813784711473204690888170286804600470684760933256502119752219066016499308678387973621393284143231950529998305075182975222927454962492812100977886463013287886173181537649822061652783814217350598923544936677383755390190028780063683393830771460556117442803418776891133434145757188534993666712065515310735939678119380697027976732166561889503022568454957855095987381528716383632691379442488979397944565533082585270867746914052967034006054080046844441709798905542506059806958701168687344436081119274288917932502205161999810396234446563392788519450798402022679639219569704361170215076447088337041955269730246906966682554035815307041810676393867084659968848184563751073789225290795037115813970839080027967149186627323883290103336775240310645696679549982402219007009218360264900978361484948744858511578439758498726536151721351334433662037997519421744007246493028274633818339106133068586838589972722461165571801746931613582332391840562182032260223466917669275150592941560755895690814370611435753072966908222815383072759624572634163804848118589201944738253747248592812603218674878879599021161423123849543919351692178526453766372830456591986469905261737245890871206266206594561081339008491281018477252221300148184131387815916714474274729502699395942585698189516205829147881038816385363059959243597796247269718384569888993114617814039529470602368394053948584207758822654405486736221912101769009933445837828605845400342472428689208528011825725196088256974218455915414850050799955211381014766039578023358037977034321409804425764685691983856551971609303986184403433341848737925314921872622205984527343490287192589433981550645637468774594806276241470806372432311812485098808742847813363798317347813276631624976616399612528729838404647757258439365305316647717350314458319835208887611870322726896511475675853205148258106470583571454397917204749212993926871539304321424306681969739170559059156100309781983311263454849049486974325923665756275203981730533505324563687613154381796517703032653210109925279868520833989423157911324323978994656515126279935584636564506007953449167814893385762239770837081351777754524528230128390424319563799556326624945801953476661609396966916507416902964269249524312762909655432217384869268293201931319178714503462194844175553804028679608694566678847358932301086784281344550350173856234255509886315788653751621538555860033843218560691234627740533830408035781119776199005885199931181852784937829648474635401891448315042893160287554534522516910051276439454513531278241106710896687266101183305581854123310813356355015930695715705024521454301673955647808664428337551288208330308472179340506597268721942173526046592984698322949636847137362078604967650605561211870765578253893327592011562062510359878191230254208313740842768439187553315941735847540372951069166579176810402186664363357036314547551208020538113337078005878055767893297667196341948268275240718576714179236606095934303753590796585801027931561887394223661357370138626579070519128796377238033363163377186515558041879425417418872648226655338957859644289349028439073428824032346347678004798696934844771788354158668323418913786260376335757055097348888822083942494727170935592216320869385316087197007591159503434809546580197222356941242959180016435776569713306141039487717971038348386570590179067804758740126211559111448111252460401919641969299047811561168382905632841987170635056625464811371501061252170140674005293449894897694223501564981839303466934697383053837454440243062971468963132065409587931811343688179030041888138225476610966872638603393195302601290337376565501199325676415068477023187244776309860033946114141083443715751954368471731926201863642010712374177917834122432068694726419526469175243869873718743545862019260550175228155027373160319178990099541053189039085010572844961716037206884878118930073438476146640961130977935644132720921371047239397389585789979930009962456717167548546898140816810833939589539581722712833262125616137280716728305920511273700531762925718675422513398110304831217997219263005204657623917070852846397594454337591342098304284519707836704248974059692818733352287440786458219666348009665752614155273137349905375539458246532570942840232166477719550472811131810457465501237723464762241394982662687044474312379847834809437860223648830283724597955474458034715644158209573807498070457642464371346938201513025035625456440761080622114617722302714841970641724913514824977862841274052568639112327345415187527350860951723366396480480209311831958229108893898250654887366005051263505747560471160590705957528776355516574647235140247020165488810957547290865189649731076138785405243293298777914827159911062726124017778386244718218581554383414357508694935106365962802857710009833188337980685153617367634021028733799306802792324317699893638667701814263339806519183637402162298198781148251455178498584121771887109132308765309748282525098320654838149620029238776923861955156892045092905932728151459677847434085659467634560971402174103383819310866508973290884823873174541005897109589885964464209783233013226297905855876414812503299489964576786155446040048208675147636032863809563460092622391346598136501264642369836094911287441472442856662217349782527199449674248559419705483018222446824127219127840873314731331047011787903848055069990318391942763986530016634706318206216720460770371085190536769636955636050956567387297726869141672760132339440980917342570944879552580176442015823346112874358625658578524929045579391273261420424792040179142607234904087723327720261027471749992869459318767164343336406776379293498393169179365023817881555410000132556269273960600604673676461427692770738209717738597596838883644202428077564160718509555297817589112935338160241496778312180288729587952434028664908240805379616436958835695166216414997974868051800612561965478257638420563349750919747624817548434100717198367425214168207268091997509391548225378502913368252005517760909314354676879635807578764439686001051287614078088287862812925555664269673218491730399627144710809036208473507201396372749679265635573965830368062715971277713206661366462720110612203046071336757627429326712627815298666625310702442756937576123451685784617953770446594701722326341869834736116920884108828051969309674798528381924331892547562069485189665507446676464860669143914244953613474763665987640456996567636102556368661192737190571086550960375095449942257283372718238186151862023184862633056806450849404920096831366737130059824875364388565265306656699812040074321248113461897237503077948192309639830631388072772485996291813418518308905002827526659585281246886638947779605500307414367702716698060060522741030622325421367913931966588661999152695233466603758090288093705439429370684437958455530513214659199961287812479813528619359150846043758631739862392241434744320145688813097278426368373519599083699360551535215363440534419636579937104745214956549909240435825440222910532053462122154486312880473520246021773296197490653843267344900565534283672923355489675444367259943449781640893534655656535538372186914705801035017546471293222749636217822700138429891607854870205651450852498751039902760324901173816547352915154212836256035356885384353075626417052643556368263967779865708727103262554583750659390966139976859408415020658617710407755771059018913960559303680322007460905795963029817514528189219080678320327596019222572017847315155991097801194234549779337043244155633341503981305018562505476574715394408313199469256625268950329748876222058796248565554590924254928600349120365930533623561450357496848808879915687941084757673606566813970086933697437737585497606801877910044272657254738773476881593376021763455805577451812012034777464759531954682517797886415283857395950230799875851529171678517180469845581480580559310842896123738556559237907890829525955317651562085560191884110166222090284193808024103077191585599663042176815689866827612923045537149619786754183049033028245739893354075545488802808898673959483825909600389908408679962714526493089062502736804319070771173780904807916758713560424205006070691224995318411615668204569091937145905610593401259009105737102686950896161496882022563585340978109096917949249802836490509511290312596982399132336770791885787199948713759637784956130547961814139300743748460695525617757498741514507596005395205631616745700976198006409430501726253880570073705165648711127390785057220651613016335010684635674072717347968445802982277158365338848131749343720225681819794816751500997437501906508677585475079149620018796380527431986926146632497180009584946661346142436070866369375813682005710898431460603513214897066508613669126138714411599955596221370281215528914686156873153547984788386990729765998378887155793375669410076347315563946522633534387922887976391645773199443529841596560989557635585117894355868897260416717427668321175933487032587043146491953331690014809147596809648181899538747419208310616551757840950404404502321475455175053683299031651777116193337934986856026058084346328420885851403924799266361404900546431684473575227545307840425009797369828922137294084360361449658232952870502730749740885921041345077774123306100940365661978785317643663579469875155712820705117065144027557591958023598185571826553834729632031951442218916839087693522116615829385781745237748263307274362943698364841673993299888455928355671519303441147694889391747280698072837906614376132064668539869482472326019210844241557750418335478389960769999879097567755527437098843536171400093919276325084295827213187784763776983291462728352356074530028396269840073442781002397550819884270699422256759497476858402186715488426161491618540753446482733397413621499633155692623542151311914478842897792754922637410053627260242740334465066193743228800333796538554771425967208512697389029233351575769415471906384464604601859783532635580054553811031851549532873885267497799734414476952695972187242022213170047819636553389337904970859332689489361883287641457985622608268122870656066101205927232175233333497185741491507146041641487246799937949552260132282643291214983228784443842145946442339312082088496830170708935854203159175830016094258985465204395603358400746029135279430028407226108733904634519667315618416388417164192728729591461997844417694978367727427284575474536465918394796959653643223715858033207600711160285877333595644121466591449071612644459196090530141280007975071113586507663319103019450550802387897542901502975096024922782695221252461769979132820160770596167473602554182489570298422837692663199174516044123725928632135164934152329380788405783530495864493544577328533455131495673562562442404419377291238616215435895646016673801515154914325277822464580117725038071317729153966171760217278345276735250691553254466121691178816702894007992850286418993712714967712205511985504171509368031878425385116416685178928817122231460879964513784900594325774740275048720621227036810976891919931757520369696121961743046679804730991535167336454161211776101793659782293573821359271514843503851923777916966459050479908161920271173660191956763928287138721044018971463442409767406192995406526056140713398979662029563193773886072149764093828636677523661858567628903599204783436008116703598418047268427313581296216909315175513196993774301306438718383332341895286981868998488336154813001343598371249717368682651406688548311772648707879851129355809689961019092807889203690792392415878467455105148808493769530276378795070924671146416037852629285052714287525383149947480048839961416556538527952730980256056629540849875800516053843762391107976930242875248435721113041510497588494775937625337144664228233299945230280471419742077725821182535894595504878808958469142712412645061413361016309180383676589985612118581917395926247712563036534926214170733937055029157156511406992515321948524336917767286988032896577093206831837180792688820005456821308853492914081207069473987212939234656664532692638358583917796412219244508742107730530604120037836759238834541840930366870603050434891000510065057493600528237703677312022959069208641529115129163527943156315278552981015277905761907323924116574589444958861305935981047127586063067777888390483191066691066339157951638621332448782070645826297297518577786885935182728948086425869756146591251133548817095861538427294088509186730974017493072159378532639878147242789290928584266101096660840231323029586192966574478238702799800327845534336289104734519058928319462486154838404523661198242363583146997002611896051252838014654031233073299134253632526103604112277994439062848781538491057219359575827702284166123295677496348823328790558408558846068934886203252944363550422389854890381639693537462966959226800021290092703789159542303435391485892216334976444267275979771554649551834953496846192354853102151771318163532876650249437778434463106407211718466873567710337606441880083484233706803697605950402065197972776791004454841268383791906527986053311398374094111593221719785930739863386221375436658118549989344194591831073250971617533964506660146582247494798978135872347854927427772610663009738341544004918113203860161192884354444586004753828879944193478673981026881563923140429621166522342052430014699621099123862424787092718925735619436556260499501802923658286444571050897643867105781240331179279691016859453832748457856527775356815810362724362527618807069387720134127232513022247296824034988307560891601525045079921077449598220340795067622372128767527987197578717236411894684195054130536268236605602348511375470390087123934905671148510072848204021853028951144752701925025258593374856146378833060016715008746289642268012391091565343934232483658873031963057378761345684061643349330744327681146792822797118228756009225632518844850267510970639754564399045718007590749418698001602819274063709247490577982315229165404290605601361615205876085363134098402762960760893531018150848105347930666997376412677262388177734185711015049556765423521759053655472097015953194646261156934044588934115636885448805174153182346042642996002544759710678759402455714229827554842733325994209549033903342244823584062815678361067823376684999272315862490383761673256526447005718353062417744545028020196806602079544034982134221134701108718986276150969724737322588327140439476384761442545282691635020504184900794732343422039112572340110161811014353011695504815307783596178664900375257540650735346602615152454751346106101324723738701901297370061600368355256609532356503027342136666613639038470074690003050599311692425774362695862674853410493096378014304133328679955560651954266478411962395070723353284023099349413433135162428451132785469005993680040148618429584595318094507405482620571112860090302031583039934525440151530636435998344433036333895009544292978341446991801337611016404570183072601258870214391070807537577511026817020788694908523781578515936936715668725007857730004463466797803192275985563069955964840540997298253444749646893178067707455017433108063760770850691888340656013876293241255460268433232878855488880269357614651545099950859965342295432700356626884854974302119527312570938801879559274112580948103814452694203249937338105709115570414416455403006051641537047426715942511432255567039374295716732999408250165184619801231205129649891092387820934419251983305638572301738921323313400434237830045314206512758933837845150489028431238286673917489237566510445469110030215002630957189750465901012790431922937051028940726741388639722565957529652783825599475254626644268992964396892645378177561021020094266831007056425206121937556768601294712135955918662017345667870337428845206819351846572051612726486144366511028044627685529500546710053970614123565668424319754633635655805286786126405135099756128990372792702196110065451565351597139802869319033106604202749250860014623456885512508872905234971835256291459006186976317380335625433548197200142769854712959609746974535032885189340852910874891991579278724169880160421779130736808327163069021392012010950798950676833971447376439620977602026496428074142845485301480719978334919590396081488321010405668238132851366170926262876439635060589345410638349499761270127651701392797911218928094297613114766014019539482395783338170099720048517353748325677489694931511177729338790527676532325108675820256910401857859982785284181305125585177457288240062358056988856073872136143119951365785494989610434586179327596026672155055233379697438916137710616536901462618348619914801588803431626232965756851210541454713463197528633335620237820614883197149313359717471787463506187270206215408202525617451876297301291663201198841094756327483569921564401155450738508774384156024951982918240399214845962251318162081478104638668928447116756634922665833834843106140786251141570951478142734823233453308779696378546907042122055916827097009662216949716751023671955716638516014379948411013765744474021599396638436722903359509547547901601065053538614137303252294012835190156324291178497070616618748396718180055604564269993120609439940906194447684362774762191630252659073197153178504162606646701588018460203961091638546171773111314771932733554103338483130759412346669049774920499181570964641348254281803706628643423816552081623805996257146514424395608863794503343876929161989697203834144031496433756638923779513289611275008155302136798323609695076445350039311857914179556455512803672209516778754425593753878533198831123985772409276396037124822649910416127547196373941069035387741466206889405688123616438083051491523659331542640523999872593518783371422339370812134289177517884227724061720718880063849637645890514635082089591866400902709031293573024724478036561578030402698963846637710808205015769703953764132458662909948638022343666679338208001771148200394188140385095263377782107884117554124043139192280606130160334701116333672085499345068282911537681010874250691785923760191015859006282030811784105184367691592757505749609527603902344731905302119266250454466269487853745101961677878080741307123476208051768013776825612192672101768113138466731789117497362634757650313920396825576103929075233424773852708906448398944738803130847097507865700184963768351172625444315481575057079546730614124804082238386858004787584223989758996174758908827276990120913921536432904199082275164874905284475880479530309917907600986816097153860096731236818667526407054943379769287884290235212961838014930645042466426722856912932987340441053440177655359158979814249346717073928964967316132690185875951251929054277100456845996884152446154285668360456142252451490860229423857366096059615353559265337550040221031123904510689570946475922013436599359754903348146955493949579372350713443448841803506360567918698941879587424565843436376590700398669931662173654867209310604295563184163620902833088821226028387013887788653881888032432661851219240020248786124238707351634921821702256080246919180637757123357397727913861152970830625993120603085389185558169608156271287009997903337228238496834691493737347226122139833660226847606803705505356795589271126835335050819214292689611603721492083518973471098201702640282794774701091466784027728710418437986880280015250974881789305576118742591966506571657785252554965257400538592258443572417129065792487674597667154332939859034722330844062408166786864051955667704667078944158218611652872428973060578679092644355610971508490368987487350865207711561625326217225556886524321459584348137939234230158559187089605800748308334002461840921108027142136255361816812230046606887747907792649073245801064717529389573134189176773703138165083226121206599545486912763519267781915857103488121484113390698592011226285201881648843096257066915640139234209460639267526908361209079510191535280998822210418764782776295057313125510025308428744038654283732218162983109936983662711252113421461557669983000284351659307053600862967347516704557732040718049650027345000446828546408709554814286271524465845732670106417514412130309598747485397132892808135639183102472158556643996002960121989110360250078302732995362237483551949957110881730751836708019888201899953459610200517499411912594261637103089237641425869185726599216134212332594739135637376130997547275638862783956593877372134544690408250940798738550975548830329726824267544469489062141516558141762132958082507374192091184731696007747339868649275008100636303473432408128580120310196695788793465155367440342008702025265066268247319479042003484553525858423329220522855675620076087413837186864091770801624948282859017937964923374571415049862053160059220922088151291531665906606313222569239806515632233286723917227460574746091262617802159051210429264530435091754185390015148547537183527038247129054710285569434144392751158194244924223288447266297977753227278175090726041679403000686314974384778770253137908167294767688805843203509581390416236800996138157211436599193973355449223878444122647215322405403364423736195472874122538876884987404955813034454508577938065696416377090189049975023780313436857091481266453246288443065851439699393691507614172698818182904632159809533963236998980138816730487916499989271820886945164554916128732463286342208794185587286324850819711766902421311048797484025876059665704742396382975717340896210111953723065339533878928461892803125978880402134609788360491075036981247714690526012331916412175330014188396740181853745066372003916707373844260487886764486107589688402688826509214386761389237463545781679529952933739467693720543595316785361300123552657502298038792027378583750482377389279863219069660867744410345748851501431087456432488894399025986729038868150603980730860947134049704879105595041963163276748569584792084969519286474609038428929143865162270303359204405748459796517812694674955760021059963998709239440729404457192733316354773696067189087709591324199586707865937833658610124233546661776913258889319629040705181039740189124294074394941179145413830161062266110615693034729406401736236163084324962173993664828836166693827467910721700061630958203025884636001392501221099246696204359457149650526904721572428642151064051172992971584296745204194312123647725412336491387449593110069071177926895056842642230736080058719778250755340638275795037757571251344348520538700530270830355773547134316316571557032868676418764382602680152680677041814001967608925433410118934600509410045954301294521270796718623070493964939645643327428355035229701465798386665658945333113899750152689785221766768109810190403934877464511784216694292157224051870004860346331728892573136179719557153701578609158730467642316516692453852588613470291946707524184281070976485946365365051961629576085016641626210176185932692093319182969377248398295199801810913276888035245740649502690514200051546303782885546306405776952945097269923410576294230410730846209778011862677712253749495895908618911379152995399786492767183896089066432798479538568395542855072767038548642826453524257911051394102457817547507900884610859205767102082284230941270347770220796373984844003641046863418773840539196632038798435930744482064207620192780009289146738158347023589892887210221757155868650432112737757032700125332253139254047563014849192546638748730626928555737751342719551758136710812791204895231190685925337868074898181236102050485492754491780387246700051427413599696766808168558880342460474266682772231947329880992887880080151378868324362750567050427079982983546858281774412170263469063264038811469654366113410178128399614426200242744988573030062897504066799961848927507022943812656662197870423616252903230413118200775631800352274634304422766608960375784350856864825912586030846169790179251875432231512789667724027280315917271070879010099812176151172245096474000613274472910266760197071833430526918154255995336961170174299713293235266940919942503605633026988023518037911059322084601040925188479620534519871130225970265826017665672893827919024396403346491488131031008965161364778182021441329765628685807327175804816770178740931467242136021086837085348991975115857199551272122960971058881633898722161028492474516903630922536999825086770777942521005141390878295103099866457543619737541944373624431110570346017357143038661377744900469971192260200865979298073465691667849597049735831008759258456943608408866406971531188122625779070652640421433178438454801890749483685057093361629940941935701458622587100668232454619945606016825881907281564243779288567170134853798536264622751031835050593773270789835483938105471930105764744555232116183705691318460373140555726141448950414934056774684155676534564467734444740839536304403750513479215094828708318594113557161186449746959073283163212024858061481170298805846247408890535581822490613630805449793096989262542374004341865724980636666405216333946573934887222203619809648724579221160859476616228375366202972420550952766238966857793413188001169941940381705654048161822241039776941211288417951581841070484097949909367191306136170630577110757416211025796156105589580207184072340151528345809858695175686528331670567304600298343237625916911861922256702453022525089277184526699020025703001596302140532696878749482857433298843876223086011774572387512952709846675801873943143817986149741818990813716449167578236339473661117342554197977804650927937235599390365456591195183614984374277166595603859309939146783326732882395430464868805686137449670699355299936428471947145495147008016307893208412297080124503810826542878172589584834440585918232486719412671564507516545745166085115124478512168192781377304549086282966371683165031705822155842607259809907629254862646420310421644628058985259995655723852990851648078595306453762853709621536369715577708541392212242076533184473960154615258097130663529229176294704453501982267161985477832972467381902830892654291536644559730426764064118122005793978825838226890326428227873982447030655525847354111855050050086984665502446910936941959419514902465639834418786752065498150766802410982298693503534372843316711464485929250535889236975237678630244167674825482143142697482602980220294807230644904166532502675388126084413196578338845087045071755106640524568646302325948960966729551420836242815912493835124649235090783411281416854261648059431323165675330874460394101414900268554471928593002218627062157223312538021963817259286400838468225915190400561708340116578823956831974064403499050902036924789975435689354826870531060226640660854160798486682876876951531793562917701174620999531799487661799428706838532133518609630808283753133320250951488062498079609206470530290554344464150773996696079118768559199896898745800493668956273901418547380358694688305728189094911835940099354120094493989087927486443369848582702909279736320631727643705748593033548929545611063328986884964701370580709026597879068792705367096210116537299861261021624510557791308765822990799740684247192685233570566554535456705643443195753830634630807015729947717753975233794585149146315496464502162672426524852340174369191186923243675414261465990097095888420863661919250230883381452339467405759792395844049139577520500574621639172295681994421854297719750453370201347898430209996493371783222210049084886822736655501625017637819745717802373618772931853047708932603843202127902800686462181162817993989726202526608476014005012335441844392701498092508751059271115477145583778060687054839615574865715254843181396754684906126067873628155895460811229623117975770139079726470730420183238846660089798565401145693485399368707697758675712162038910889488665207864879301021838604023137549872603952846968944504681928959850874440196563525462030573182122368833679225447363556427992126124040668715799091095103085498917973983252647235786392423774545156220972318236589812249034504209325262035581114026614343035014885040313093185794133874587802569946394532907292985143773682707393127366073921805067800720418696124779601993664667194919200310169730495777744094835840578809359275257480470649001857578104355500252344167429516570392856536291172774556505921612178871994962451896958285147828923609595735310823310547999561682756112330503273546028956839174763946237304072266282346963039725836021681836460197445188609720719935002619719122470051574464623842132831153365410964171863337888605484063673351997324857394630143478077094623335490158315904128990978240835416783186192528761053451084020063020166957969970717018703129488691282426190975876938191857641876675738268191318884054324870237527707065747440062246276231939816631367819762102843301498137449498193897595264371797121532887196296449461474006709427060212747271964521084894386168859086294892841325225646846548263624645873129778765221615676955299319800395322353838814989832903079628739079001298600074693324768845036947842957391857220570829249772053022370532363525680924670920423689484498999542267492695053369731634593361796737659976163603431985566588348276686759126244352313273917349143242989011349219193325652129138462721357401546794128819490519943785041071558268574561952877022685764563141602092523055925198392016339658009714087467789162963228341453009813376885425887388722738691841187473985709554076384852602872564634061002836139787028519902335902890178729409923044005974667852216336447636261485200511738727309568027417512282586446635291301714885825162735149425004771107248509510536568715714559777977324024680626871134683957345988753225658852868594002037794277806350379990203797426208935875732052326780834595295019898575722790632179352389042357048854339270126372138997455942554321817206188766548678683917712199624252989844293239651687639535890990862334542490887734404655005238263771096504308114016526774999320649109716895475202057549554696071082892869569934825889634165332833762672293670027949330984483251503600554033649117820427398393328382056071878675860586884107068422960713765770067390740759619721648912847842596496113032531879351762026276684184260661858299593561373013335503632094515974044367039640887159021932958919318936503447049474336005639721988907548791174433141215557541719138776291695231196809845112526641637805654854495609140313288130498239379865970732947215571333875217338563960235752137365283296232591291639691463467304329444883189130123500828244000253545704321467078488475565648728452102087232002635529968062417220406484811185723929221067436432167252071555377225048280313099750057520788080858023045989414607307556124729572619650786929340562956891662256077689480364822538758175030641764946275815356987508438099005528299786994735279514442728730086436296593101235189646551735759257039356710625940879359553302697996505673623253737434986543349460150993787307812303005695401088668203183767267449847198779912061511603579283475283612002535648679550142870606235695434293330789101060113559630656488580457816379213121558171811428054564700353678327770180206727745233497897067768256765875240031053489501663376614099978573710044386184950768883013340094231398543865877722995719166157565959442906520834252867175025530111589650208103937065568899388649341823185311761484676360139127108818298124258174568064585691729432560790658895546494456041369857109515675675392685267197369042205001039608381280786795228619649885062177819856493963862357438215292701097033145629891387084345393563850570726381787258693157095673873120901403672651961146171931645399388630387438913530993255976728688898894538999979658655121200020362135968104648725092185823536982184933666424531298261847084606956005434803782149564925528583226940081077556784166124967906871858181579671415957753834793327850732621677556538936161999555357894635938179809122150906502024411116274575440629713016628428672871252861434403239797825034718204870102504226940817348119839034299094111956616193064522802569792024611996102476553191265387836973557400765511318966997749389983545463610951073849499049269073949021878860515342305293864195822316835191534330262641412458383384970258354495382766889902705412836590856490866715419652614129814937419083636182243581877156716259575192599130313374661314691314715614280372195312483047543513786773130105243454996682031506440195076306901073518162529807045452200328239316314032835871905967049040835856878691161302480645737852233836464439918506096533423997313723291632093907283661356801542406127715333678589101853590688315516968943860805755937359596372227537168034005438444978612706884336199988547895497926595297489998886367064385205463347637892431433546597918773544561931323129476814916450657432465481913827586575354929948187121830982471842805347849964020611452178634543101557500051988230140797742098171902015275679665864787911927541006157013119596703154849497623582310991899188328675966112191723476921533006038031607760114313903184922301499799808599810238850361122970465586894984613250324180452093103005077918006059877834077345896329193893495323425270231454828653574246656815307039208442994560681141761760361066446709293987650614021234555436640729882498543501038421491569527753862251821386264453034690339613294138867890067313659772760408489365563683743456532763242847223800075594559204558919564248129725255009959694539749703377194652514427048072543869562417591583749883589974982493706994119352093352629892048336765156158481432743735724585395924064252499855078334182309613325809272769416529197774777193100463872633823003336861729025558611804416269171212057652389386870044619039059216429433173159066636281368579373497056886650953215866397545207889268045394558260117985477058406081893652264066081343509063864505832732333528370875035523616496399685296243075792484902027121170779131429813036903281290830041317878830823436816404133227273244638365745813728888434840346138983424747370657787948924400752271036641854364562357760383980968764771193839635766277904250931522757447561763667241225525537290510225438128020970118713005602380518110595457672033629360143425499778406465418889002103680085987960980085433557856424673584044989415178118716361929704808324132477167876535482053129497836119871446771188087531972923302617260202155218082235895554672553690621889775996754356561119742571137068123021026735696385016799648421516488714877400879730733594187853626596071623124126310536770245478568642257728816338831264417211259759308118506990664526917928632987015424834597579540125804784101897819560987973349173503418319861650314710847056188573624545527078855937254632476246343846755291526908551479366735386927381825569434467002045059503108706456151886708625908291222738001949557777400763805009422127349938702255082728044648001829565079817231696316032104628129359587608431621434993813252752869173607600935355070282317615087724976810335359864727569605909751081722940665050573979076253365466805693487997468970242259341423430354699250638520130112888074653686782369031764297940175499821306415397427322053132849898527266449472116050903342027233082164276123702516343388447484167432570978491848188903863455148689780368382503978727812055641127466439633660452429287109079723766501018295046756458509460657593916880834203583315065860032441884726047254605139564000177401737371729748382332512294393179045518865291130717196122778231306196568615751412728809407254211599281183276890520020169965913130331037465166733524524917303684865446870797345791525250717042852168116297712341019492424677466968524251925255465763960775322522363857390609939828879028190688110201264864446410932656108281043366118966408781421665078347107123624010690303324492713686582385919051918614253883712110844868032596724273243084976631384526296556361096719721140750781144628073703712359267961130103395194893036558216566421608439330350346801076249192441848539599166423334153738128299073192282637541437083697666245580795503875234914412026299836305469435703780350930118341649309517058406235172120975586008683855787244521597230387866437295246647595336249437265831264075995108229995374222158891820933312160105985045275275565904032830648783628590285920112795059828420990474053842073184901618265067108650988186717109557247262459652016325094458967548158668595238904032776681847647480176753402908291217677572712789475106292358931205931971743998835007901438090501951320102466970398662135981211791112949942545668200690360913214258550884844948355864358381050804087546756912221798634313823037937793469595174131350484218107997153850406679782598733682981043491693742824313159635255632498155262329476546604645203436238081283753138395391884229998096375490680800741811905856369543423082571204549066261982031042243378002980287676243682937684664697626014825874496805078705172296475377648613966161648955007814838177343890389717039295787797133344350646659167683711326445267844207895551865774743848880229996046692170262504397918129955627893970366135317802388630622275356517089293618079713111623225233102711729657856492332636202866478731568599781009109617970111683603790765979007836003774819181983453444336253719186521810789062113861187669310363331240910258378225359779121269851231994685321810691521001439637404690322331669111592082394360184143393996005054483148986227871989911376803661227623097330542287083971379656321208224973089076253128676931427888334752474878972704477098519092533037391173929568729145757210152067247107215092775817154841463140372704195059780501283584403055499738724110996268583253467668961970745321177715151907507398754640859542175998470061387757310497356586453074918433887799453883346777814505754568170769316941635407716448662048163208417321964119734811691787471782398446159921653949675578698362311787102885189422247038654878868559799870794251154519747162774656726089537537000240175536194448865688345519458148356475940454794719155166454504448722932217390509040641021691985820552472158367579799614411172165499316446432878646333443135062826278271216467753897224554728687214793487895574261346904143356182263357123855125618972800046302651764876070053758834055229000201091852523358724035273745219632949596867403333947495962772458440400894150026320357707567834220755400189319905808613520567496245060403542120733636386029191555296731365624272791850565753571285262373012702668669042165492546010243678610279443124434925653733764129364192887855259882735777171940092188039663386117740996515686872621907502188746142866885350545101017727589543952474405192405328081635335479139816564030358662919912643896547949238849248900679428546288099177783369201251177590970395102274317921290010263170496950749780803314380366602961275789251030133802335195762709530131612040344438942231031831847084436150902154095291362461768246149324010335130485072010826119889674308262391809728480595802960360220978727248878617909152343644408361195216381253654289013366620918644552438432676489395503435473622921450907578385760654269574620977428241156892354604820992694659856379320933263199786974263294107011712418963453184980277762650331208758271186814144547273641626363364694016124537642050232869292162323389102236425357069874630983116546090095049862975169680536870857005132987817703211743180767400704795035929438454612643294586147853663000820504346667409591091124916811288027763672094959442421952447415700198149586259699750865921444453726514252412135712499202830443261468637141471935448041018211994477449319902422780638007508809278556610170642260690463085862290512701384892822723232581307091847413666613779917008649415354817705076394908149651740879717172549940036624994768660646436772644365279823881426299034839245548333158233731354580073986365212378989233620374929615174893459783847314593970982175759588231324635999349875450551668175673392871091459766948906184805445883106447437589291487618665436480024335294131221195866411144468159157136759894921621760087698184707883434202568566385299995990379570472076489520802204161579203640803367584103479789165568493599331833720563882159785598350993752328804132238137825677077390687481107034878226649678416360064442745820562501289028366351126003150926848562723691451094912426473179172823746716466680685525237600018450211662034396393542126563576563369383618613922231052545075323030060755765872000817195814478494264326502476320206571089133224908812785629833717448863602978117131638476067530785131187976137397159148343133546362084271791515942662333281460147699384286131811445800834725068956881147146543299756534086603031086575401547940043137881602141261639005947409347667772671965360745142863020649282132811557088983057156898056400406058974415713798870878366644713819664387337696058828422845723070653262633373660252482101206741374983031451371424385187797214222940634633961645975272857840409222965645654875472678782627217146131390928557556342448216286021773460193261207413541454859408898013925378722825273376373071010991705660665830896752210793922086143468164865256700742465202824755235402234412726576632016424537366459224270857662501492585255522285663320617346316684976213164950154930772923120421251501444568651044689118716588143054414949288563297751451885873852905469514876396341411259423409295469405432927205433081013417925489564541816968009488963330525806420899321828546256889992307324670916542453793431968893590575128951990425425059676944888164198598481902993937091756334443224978978303322758755097309438253472974799316990485415946020212298668747798066437760835931888083317561861176615963116954878413200044313724574342503548676280877078886576340053063854256949550620132701378506922897977054873749495219108380501487639888534529245304825505639191252586914672320081997534012934902246631561435763191679148390674850561625111147967147427183353791462853015997246608837259826081279184590032122986792926867200360561268632057766131866669437140226868193703439613567012848525335208866293438671068374292974955624656005085478298438833237909142324958964531025069367764079878702397687784408444978601863862239806808924481830813622287275133594184584500999824464528676350252389447082484302669631147270653631116812192984709642963863678075355828753606847911964371628752530208428546497030968203006689311391220662511471635929664597022995636098131658850409173098068357281221384102472695977175480369385770377789181075228047489920270116261702889405716962024216603481421054559641666148892495179961876240080239450353925427694064197277329252688093983619405697586505191539613992264659884659938422551661631665515779909112956205998438051795806617189096278442380241592200138353842898408733722615400726653366492430198452163373028942417197418618561010347332216417119870132376852613772100729403519204244127329487429552956081961903054195533627250514564214904582331235567288728677014930744140787923382744571064742533133050425528177326383098918567050412564994521331624830798704084329779552422575152766335422301527269092580437462740460464949481397628121895035401927548519390126913552691460484839434346720194717856387405678860134340652639103985493306997159490103998366750879543514891065596998014677676185221211019806287315081195731192987544297777715738910056415322429707708249342426973505195690197431567132386221118230283312674181634877002220831172071889630613941345215446213936972058400963957274374294057036294026802210712473075315974329192913170939587326839291601493000694249258461078274649358793793611871399230957352993667239970639005400587707064579641473781635772463889289846165131879735361022648635717995060665068371711620664925318505714954847911898464207537825310103513566329035945910675724614333087074762299836869913402510091437657519227649377519590759934852452869546919280524795950994410912455411202739761307198041460467804130794964580258009960989337787619160543953798439564212423087304353524103590406151182648064484118735541196865088459670231822918814166555772980778521776220947724561761484627068349442909967297796470265935420594588827041357993531504278107711668896934433487744897118938174370861224859805205742176556237299404938971960784084806682382152306371684052950929031811355607761852265806081503834399150549515038497031339811480553324142509254531021079303255867667751789647306034508526732885738542007316948147648445641956021031641775032123195870390602945786737362143496453635961636664928621814270622152967194900332962105980013633858481115481189941342100640757014302784124074341969747914719656188162535404949547385772544116714969514512752422292779485241135005859075081521727857043709183211411030929029370819745187509656773638275658640619935493600954470440372593249027706903260794007300735177976611042540469983281742631631808527958727042151050952418787702842977852208992773240998119861592574491341454652071435461559255158406508010963910873265002581800102157926215626767799530627073413011509657679629544994477002388915358908779947558964017856609399186112959441925846027412011429783327291570063288832688165030305086122190646764236342170302113664603366096498368584598026266014739129931364841684593085708570969628623185001992627891907006636353615928502774088580467534394700455097181248395201617299321325104862452874392774055850319519255417272600268748003222182152672721611104079831489886193155412421630637136651973198710445035960453032692985405396376265057614675877822266215623883439050035291929336083899071912494726861086716187465222780304882398312047432048815583791523997433371124650056703214645515452911237414389356501621144630357077967402822997795397842653133787362793761311928068781673128741452552241351827007525450053500301286519631267747413415534556222337683224307709098875401774876062178095695400252831951611350386762126361484515494706219962339590982410478589770653920559743589386483590570334758385271642933561357522516074585239700580149398892859592963404998965596718872135630656656591625950913298227078248606390393217164038294881165215904840857019352363756570782904117508073445629459250466448241184760158531697575967111505930310036924012181684698568446219475209854221997051576467297424122875626360774563240308098927398498261443872756122997146026407174831829131288089955693455124753259398417903170365197670732634345757495232334416390443192755723901542937481469256470285359329809904040773732467244119125860797034033076914462386113305039150820895359117594793343798038718818509846765683486379531005657353489105934090805273553158391275863518977647839999459100574872735229954538621765275987482755055423700255472003091081956738479809257307472691461987118943605572516625315183837557464346620620973391388399743711546612799721918898642805531673506674603794340061251992459481566319207508083011474237469097677111351346386249590953815829685044602733857481207745737378539611653175531793758259217984177081077414022582406652797605946181203115291094713615284596243247433204268191543065952711353251052428664943908653970840507898084309426574266243261378940815043314184208298395620982700651426470480033923193070391591827625944640778654865474330070678023406560901331140635140260138573202881076877661744344084641211244684859478077784138335803614338193266953372578717071542360036258759301260307919817899781771429555492383146844777808542769571548593945800980076356121270409206862342472439689145607110892221103589540731236194286394429564619775936800438863762437801537852245422220310941836921443209324153341826952421801342867366523455754192148100669524443933664714685109704522066752204343078535510108122830440891371595862044253707064704246704708350641157454337878910672826162712333718911599104153280058544690461405816781884436363318806004841084809614572150040519358688385530172397393442138925993670220086796794947229363186007250367206519065625073449090215868363794570148688063698704775835293016056252775606035679833907329261417201487870081919270527150524164342164514586194256678821084174374285087226155790743278780877655218027179780425218206198739642864212303923900181496323272018922689152184301913343299661124129362151640946338021911166600516329063173059098049541678347687964688337465797384129793955114759075874801215282626991482371534025334661801798736052595456651387212608940875790003462690487751050647297155892222957677218346885213060250460586445206999513945611224040723265442100181454124764367923097611179728674859016828580098375876737248624594147455398391503029851826495269025437550962224695748299001204487120734216877069010694410377904530241671276771307629227378260236636937354356894021678727298447498912636698157895952985143929938754156274654713312830077461345136520328392862033667919003686648275291345717534242729392455938004698068823256147191745501713577618566126243518140388146178727908215144863233069788958586127669963618935378860840779789566062055416878225742331422024411677744467117383840381550609849181081017545208567919102727818047959433191982530154920341362136094274862189484526948034614304595261924473664800591502753576504363299115564295555817948057100779385714994057693700299967644803055327801802446631199398167061850665461130695032429670586046110935943231636825887759427529661371217168621613650240867579772365164432960142394700614455529447791732580317796908627710636203146181379718191678361342431835981626647361522451062385395305450234689855900192438788275161329736137703425125212781581647250549956355242873907894319848989044123391732979447053804983171225333864900565245784606276337780938788428954792555820593576803939690720938563621404114342373933252353195147030837942418209307941491544774967218563089771115199889781767712248649966064141302387712432889087432268730845836097570384521340158319903336634036499962166508998963706715313600223102944370548324955016045892184284569334554196022824065164267419713002971852205693799228571200311952994562848846482910942256825881546971931997672675369188673486658374262364517269918427194362944259552573140601529551936551810869123615755126060910377066157666945822113992463717340060200486320873451112255290116821051144127286580933355306663763855271973665149202602794662407836562988992345601750978312249396001438185212392461472033700024255168978603289202167322140322424477989929278597173731084515161511207094072007305865793164246960286944292202855703534405920425820872671894054264844866058887877818365628652243474973115834279164648623461578339396937335311782998860650091402661321854476696422174295457890613089770912526137573090507014394018117727943296125402553658843215626938660034389337591713353271440096414765622183207695647493648310373636792916061331080790885489428196898039611185985033602140705354576604161379578542657685135041196861616583538094729262654073550060593767966182509816548018871996181228140820646641857705519641067134056908627877816131296771279926090315674379585176797592190027544920422286203171976923967987246967258886720630148973219591122188490274064578070462929818160044009461511893948936880702488392193608765672842347740426807898131724764842163724222677778367663012306184891452468422766758806231020143046511750380294323406961796188860873340028253569528016683623687593327235138354339627214991756378853248107952196452995713355403710793569481706262333228648202803086514797504521683302796842636422365989180038317491519290377997822363345557337706592914365761648754564102261408493168983661031715748537032871480857139942054723009081565699253821807441892362957580031551883622857423308275632976266073931783190999517361960711826480732116231032232262565219513323063593427740526143024335409011196094634294043655528671119378382205903744944977765220752962848039340424902002617972428352459984685288651059822627295407724818633932631007630411304222070566165563500512582482391027055385846654721875340725828674046228690792076109721389106179666060685524739459512106451321632645331141882300270049223087734300035660870616972664605028915844702096758604167170860047255938435959187570653914126149056965313699731254282610302028502131883385847706628476608190345466187874779709197115803396134148243607131771656999611934629592779471479339038352713669131217665978451892774123939319970930039173754634814475265658565631128619688915853831070118452348916536533304011852908320847607562576885162384566589761013610761543993815898070758897147868103930117210369950579713453058083172656739192394440460363669997082762508335881590668397038276939320635745916502790619271105318265337369791819714906029603415972731776123104095918397250377205932351186836556745696476703392208631923493305587832610323570702649199509677966064199576260124141585267021071368855673671711113788244710210098921875946281442526480600438090010258254540454425811749806241308477165627786940359668457538175130754818519055874021291706768498801931834682808651050371890909368376359689561124919255401497285124709008681503025339830193314069930742825345023843101152936300044061753691120225530506587026364522392297560458833401732199055141573715940925192943399238082649615876545116790148531868151522488085793131259201226149477835269734044180090098462285382413176924213658675992948320210236705160977856629182692149796061181715179226305328036034309104853519962193738199075561403631945630932059234105325704406616618070074164411135203924394782454943809977285864767652794252746816055722972549112321154919950864474985392881023407823977453521252779895812399737394113438800430115121331855064019971552315716584694808661120203832067073780615561244906496780570628607270879699996870456368791884464151922014095113168003737453196863030264292162202416630916237772656688141839356059809685271322953757211384853946679762257350177882604301364300375893957440384749480654360970146952338517387277126801196675492401180507396863044421169397221285818329362580643521690748927659640188269566708568729370363512599887773465556986327962342418633372739865637053000914284759509425670495641797005385200449792457288666481532866747206602076606743339021651297182948826332134243965199637664865895124574315559040163473130442284850757996588973373902142459710331167985095762087972241574405881786261879584610403690716738376427235118703938023385018673222182073780804315382178558515373116870826128379502015927257474367763917780459965285284565987167012973985984543730903485819629481742228014243488873173223410274847653650905668873727117032838991279106850815039192724678380994468211177477865545567059346179064211717931617491010220384455908297922651216374427034921736085246377721659676543570911678515895986489057835487494499707049941218872676290384293149988572009443664821466763500151287665420191844238450895769758000842452860162803413832278587073713581550369406867912980101915128226484820292456671131962607508193846824163410741870161751789829518909574060987283471563521206388801272533748422758267372194306215810512141617869602837331362138277527803572404937946916801920338957093950328928947886331068260607754952553285540617933747120840913470261951922933722819036839745955146921435821823192774406947067103443683678620075445623189948931491793835051621330861049310178528134308564513862884951860607947405155447979436531449879255977087529775073857710378582229604247102492122283159527513104438475563880222671279172268453769848943940322191445058330679721011187161607163330371715329145862618936102703604197288695639409072737198759875163082580276781480069143453895383219804125029390846422193518348433081277716344978589394791054072181193224535606394142654192599328573094100160377266440795799634721426522081629018806777033990116077455954729774818930052613355818123878044353296490205802501074281606353105496866293268114175652284028800928909285544372206897045870451929056348460346267958496313034902528320394895383516724942630502320166754871645487895317348377347610872610572580182557890032410016545656130521674010638098474778752938119362299785737968142758719702887747988014348892973257719314500787131275348723485833266174495816018054311305158795235012909345283579625350615161481661813219697630177631430869901577455508676581365926819000500448660592467907627881279868051169932533918054883961823648829425218175447726173664109899958935260476661255038394530775044568017653118815734181383958002900519810408322619630454815938433800586128010285655146433698577171004299749997227472046162646058163384750509132071019923354919205036754280808409739645134810811900061984877989401574013496774487802089367880095451197701622481745519127760718327266602043972035004472377924817647078880328145214297340805606316625853036297769103269060298548344315756530271116354083688645530892655351806033547369123608489337220600675164483109379327671220443722886139253233107038223580336378713528834009319373115721270447861631201956289094116982893553650263229990578115941064181685016479051830323067216087519546514241347236162644600313058572959677603936885230652378012799011142136841525106357513773816599988291894036913098011398376220461890696246398864201983654384120538520808963342410408651216526651982418354569405188127682949284173269104383706666889133894322165743346393593613250800271887442904523069575442721777258084928720401520649419247816112269126329951536919644837724377689868320781411132880613160726193173086247160358784333372118091325367167235067706833709808561263977151873170325007609929248541802818522728185389192314391702377848136341293358895244079759079767341658899364606064785704692714854836890061489485210751141162059261726765855377518919981786322957724890100272562545285142998180567266360839268108075540901314613357586491941022188675281408137722832089263701377498383533212730826297592668316691079992903782241971887469808541089426428194058154526618187348983034246674768634767181937483493119805758041223673416235081537391520866580021041913050261062375329754882353782652616650259432353157842893493718549912017202197113718641891144295301969177019444755999849631933785662027321557838235831684009027523755556896254314569621998944732957424215416350503816691696045605329479224652503640605194117738854951625799614825565117634680098381963441991276589723003695059863654388748525508668965223300816822385699663187936045637602476039603967972654777226145669332070536751974362844487109617557754973304518730941345186673888300280690329694145052181712733421732448735705189650115496494412512655844810595891546801991624233508071648456728123749779392287228324015179144614377978778276136161325373083143627309418735107195788740894012641849866806677756027448812849095602317724624737407487766058887757399173388619697323789192071727228477684619685172895110533968431682755125800322533237876993357078384722086875871177940306665274557842946354466411528000216257338781301860975684257752251169541746755154372075644807321837549970977026172871913800687061235162313168616455715860521776949299371386118841908720768351261369571590236815615923737558022391806092346552502614187578236195847200956412454812509453370566992561182927117053082135393177164233014794742840309114314152491358924022944243233917841274115411384976170825411473719298493955984658254323684629319246276126532600374683157540850386455436239014004151054059604318201636124259610089768291007823705668629323558181105345467858435863707453558229832974029499953802011269487573977748620213442278847148828442464382015522925158575538922216529075376945004857262765319788481384856533642736879551564826613784862706253820166899526417192606548337498557062074711548548468652129219840290349341863268728838928198212704909959148962321672623427647741467506531429245919766065241258461360584436070912750043960751385781502676447188348503401098179183186100200623730061249024771275805072625354369902832742343192499545007076968982570440220075080417325864070313904008621630776102963581353100586887152657329745031061464262362984041587637996425398756317110076984802761475915949533384751430410751190167110802117437825597937401366864964048307350935890764875670652974693019739337802371343027370817682107393555835615169525011560021785503108958218521110479882990536329798379373526803163625191512188453574324498565301415574942183404252590955386152615132908287735356557550993401139705601158700918224081946291309701977766086686797785355670645952308789436647978914082591680115510416258405201786379834153275110030492475647588442829290005511849388921354182464062760721048550667648408929446588072443492659452683474989590320518608370908368729083262426017688731116687283359934378352959564827769329782655308331474009747132928552438027420747516907368590950615668161744317140687925133386373885520920684265564457312001814596318852188726461543465215291184558254203927953133618477308236469746015474804340949029135937585278917150803451064296433109610596128518602342886665783345052066184422981628009829881696184744821847331197651539573136083737830556837860558128616337233074623404516801450660216022627698743727465504819294999839447093610237920841134599781646486408129569438560110483397023657945755678463458302481631815954770371593252673606320884236097784626981646943107351961192002938430757382503997623032316303063691875778757657182974725825538374626276123087711785175983569395521297516123615081332820541823015704509699870580955614486900393206318434600079504281393261896854900477122125134308136681429578851849903006817655072096140155891389630439027629384866429432849875838554137182199968924240864165011060945590383365227452011948458049913736037973098161641738529611258748762510135114504290658685918418645099690391553438637344611822271912720840496673812441735990430931038293560163936541180960653129841847607703899186128656398876364392216624523586109159310902379610142767705690317391499512280656255863606730507717028072439551904352798570264508096416826994912113856252757963237361078994222742160000892025359795484236697471353475005884560493991836327511207503857521871539874171810454899914074953182164789038782759246127613702312888268824910663354077755685672669555966158438213437163261366818808747813494560837293559738799151256648056035469237078577084187593399551322818081776038758161737307090698553767905942991462425341063660615358939041567496554742375336337554170657258389994318433486973575905372757791044560531524608851793882518267416626995845241793331851287949179615337375622216901501671252010676493538517794772406693370213976010186788360204436445084162074418736932767064566916247377742582432207995275674257218714567772858534977108304810910817556530640222613821712147028889212111765621576614297282563769916143008175799053346084042236478602594723435913711750130431319643004140280185744372154340801013567647097677750507636969411085170579232654639708711050705196012950369924285491163780587367371069280194569392886949823937049791713606308872631915889301781201322117016094063667429692800075042656283846686839601475509653204229218135392275301246546497474341095297549606895507467650927404077827506925060181144818981525435698470621036716277708633024180116239508597470317499749154357894851876653702817067085460618059571094093425339308678968575110667071456078405785394537258106461675139609026678077109494067957053027903666147199257831526309689178801611727926114677708872416983881903073071868685285764006422417609725257489830686896757168371972188205710823809869224620131538582784557875022135382440174245866209581267495267839926818779056280385636872284010892517847407201202963411016302797512075151606426151572794877943853650044114708407575985937309541510726029309815603645631509233434079578358039265003059174888131247570307299458227623287339650038940639622324200574577189074282893762650793296208422264219645983871227907001790105748956063177726369702724665939030490837564727238262585433077060881617144663943693795488026610611551173571247102907069358261962389568943659747667436221540785586072911637505056296872561978860143732355639145093183654359285542781174352166573107489403351759853959989174502890062887582407121631072437130435191317827463653714616320374269369071386517504067727651958072341409525338816567587368335213759053711458033550285047737424028924214449880672707972019282004602121850439737363894280962156030408667650891986092484598576657686073681192252422072759385850466784726636815033628297214524071081459314454435289957162822601178828481221737109801803582825890220624515077618641030147645000745575952188765380981912524184720513871903211385918149120394799271958138993966625059967547027181114840685551257346582483089006706736113081508021901886106895751475417653511229075002897055821846020586800464247036463140821571600183575091283572094317529422998631526051150018227739002940465386640647537860624516184069885192418302878088061713504323525065703744376862585144956746506156860677356226736459986863397593438824717623406667572583134484355788033774324301671239366533585833792954831392215879754794519734551116861543602300047529648240946267606990758413108880901860946457600914975752854830111982476261862497235736347515215371320444570858777518484253808456406696751967282184418683979506828639784078874932895798251999780686137810344602441909433686077479105581268042159494772298238160512219513775603337152858556501175228610427723002546122201425027545763770637386348140493993494905473687913029346835109547938108354654433124534408933670777181353540711743943542985112250335152552800132077738167518161550333533025079380296456910052046118673306924024067358481510799190405539671938170469812323851418397013629795131754560254741893535861230140201448016151046952798302216567194384062281814238036299349649430115390221793539317504249651898821415746914040122630255977619506320163673520281705000467081354073190913808305957277001417378725791007655071181018593112022988216345458047097240542805440876282284145369105181226861879114057759824500543270836888075627027491050932323911644972846899060407477473154607335372945880349083809017140752029044521443494172090627388078619729606997401602471148703004985456392074245813772808663685557639874004323646606306660063776365677919107866402115289993085255278445187246292024279060816174866602472332060476979150566964302358996141379609351444034905506270100277798203380039099824280736640349627835044825023328484386348847914498505232736742795598601988131789460648094720499700298858778456996810165784271149429480532757086393339540090797765064589412719746401803797994869933291319981021006251398945702160731198976819585131422996372634934656832397052376520690326551837914526298816247492448604984426587530670359000177692764017550030633286942629646629939908229389451026045610770347047349265186192956272275349518800085034815244826045764276661902093503006454459957508941863320113189008022210942576334734502492484958831884093936856289761460364776904246199904771951073150686520249625268618702888513342429135270412932320805722752551759199696310148160378081388443136974579497051461673391124843952051053773414286983058036654811434717902831474271297884110018880806815414227388285445426927757657411617129918330587634704421143919505006325673199638576422716258471747618132135579780201480156637368355379431842614261258726014043376378732446276588878322605131836456257448271091422290607872678249656264490247166341646710852696176187699883552007778476784692035468962374289805453483478694435352462164980317787699144683631545001709281537791990907196867324903229423681034967071998392145067506141007613184940962148296630887590279161194333601678920204836798333417536405350781840380705353869847323077887371017078901329440489961132726606402710308744894495271409571865097708981924220606017596366909334872967564423080577073786958352046162048205494273867983219701039657344539719061010999350731552504000231830833417605538310250247124702979697146459656941763766028771605293839410897833579910599508501565717051255292581707851546434974380940564157135698458979003409399914766133883779450991506447635552040116923228770088461356634299313595127508939289731208031029647758093754611423723430116402533147720801844522210854831381202795946193443230288695316193472667217844300792102168747206676753893081486572265959834731041518774272643849529120495531934417878432123239135544412037259824878831472946697977600767091028792446525109648390592842114665782076511829629144682706310822568475410394354450779675192138808995460270337727570415355882391869102394906243393950559412003890160154277962885980196600157320636942977099403927163384134475925320519586479850700227074541615329792138019865364235690898027080770522875431023544027773616642591840863661953352288083674276969841732030633276712762599669668593775530908238419578354275101719635701379450383776999490930452029494466965567370563101710437960723368236849569576853044084170661052339179968644579738316060587421578054015816943764240403608291358429931561042511958944295908188306042759034545973792692188299412279822427092639695469322292014702468566203139248885464333952399826575043232157317760127673148740881350695808519328165222945012133566671101349303168540020323831728910850035762767001360721735506758687091205911840770219079434255168298176121746355658287442196876807280168657084651255492988716036331075332685206000681571083973673049479410219297863055461621253329368352608438512241472572691648030424752598202276538086170945759581276707819587606061588091368412039973470968054361778489810929373554241667873363033440324416376773906214754725848103840028879761732332498518804027313347995121327390727452377627660231950687984243718359309480603005021993174190120691952573218610485077832614014289766993866845477655729956328458735279414423567393683581359727423679756109139630303848120007865839072569638471520284281266650861617937278336951927237686631375896065623996793302203359386428099824123373702341859354106688405545592903959602118624953774123549295422256836325168251513765143887927291957809791277397733065981592280079259875959576337538392461382338124322314270097717430635648907549311091425997363427029640529563740959551638810003345299661970880788359088179212038372252624179550328850998659850762605842919290300537882564562624266902222588534226989234192828711034539340528682288858532253847196494598931093319592370877756544576725318031839138922525202093760953493222543911479471753065531083057665265531666893735653437175022682702402215719024657142116190976221432335743689000997184469220382882526470327709099641332574362539621869134330886339126018864673230861470315639363245109314743530444497212216200196602528544039150993743714388526373901771796005307781104203580768847631952894420396476905126473711258265860150985939608077746781724658292607153460223188680494730297895573746270664793432430558024596772642296103722873052776156778298725841668681658210436893991120893178240282856237098211796844491148094867464167014405756125509623801180490055534479036595350368328526286598397365960163071950256397664468883683813842823231434645056858103245370586603666110669449638754479210833773922027078101243998755891838324849421028462506055296451124805663455418028456101161861115226455446827672052650228165515851952369174494531928454885701489183775361418772316065609526852540468106373060865524206978933930436575673054934320385230666335600768689300073596744927122546453240588223675189492812421843691087809228781968745372552711070625956730175419722843902265509365670284562927223931154145464675594857868502694730774786677364318324764589086471874853243314704470100992101345197365053450706497332226122918757834041067648528289555704724727450715056534525911269285503724959060492831340346235064261811727654464851626410555015105056595677052984492557102345013480183978191449079240074979017678683368833517431017082219534395278599449265307381601834835349411034830826203547740134852910749154882562452236947430541826782946312773166681825085995655715763891348809203557026380091089361144666119092166068483744864080333344626079936996415137693428123291472451385380575875472915395231435655133601663382941532901161731276015897174344102979401321707638243975791858009723960238441188768223757426660994032516236649078094857667800656020790161360528943945183421533817822703923990400862578154777206554900478356001309276361159326264444977848239417506966306992950834912837136683601880765999967271989985043664825169939236936190502787742154993449056178720977910142586055872555657569864696565471986829125948472671346788726439139874895348079046621104869023420781582970996684300483537685819539736306442740580350874755709179354967183471925546186634038009656329031980315914726020870898413646043603598157255896506108142172299090991509482491868070136101397169025310809699712414099307511628497676947213491718004779540904372740491770896943958554418688948143726468596067919980174858756762662710232426028103837063167313527058466901781902209144327046104299150452735317952737898659502651294819622622872171342802356394143690283622365181865744121381760792302608985386668910222782562200920061276873536496843598899878815740439027415356766995656735129630177713642519878773243206191254792155058778793556652462271628081583738020983390307038333596019235370031557450942126739706323287416317836957186029210669253598298513521296182089671856761680408395220407936765862174314542103733183578649825078826485054103751422311970854954019862242406937541782384022360376264613706956253269141016567859871357948440144160337569635108441853347418699162347159662849480769935343876658907890775290284681892266266446725874942621891459343016715536117085901738216209641179967198793369900480626770210739600388813504009380071703933748659119863131461912663295217250868395573322836055199828055444742583993536525195142155717986856413901243555543342122216880356839887622116801268003781864947414510244256269513691737379400915780870992802931504672455565921432027032932382833101456681529891884062414352027890246714695284825728005011664641389130226556777940802567868458363795362821731744154262550897174214879330736602559881939777857248119744184227277708813031763746751565645407753398660477895322918005972643960313648207814530631494522581920004517332336284811587823302626603232131028597547207520601115552267921786819852781096406808354935973336175795632717335404689868993557504809763542907827297732595261299169022772454158734861392600107669096471654065960805728234383889616445632582673299152959433870808842974013219511427931412696482689134391621970802843153732288222376114115622258169191273079510100816134314545848735019163572410147523688401238327976834910923036348021410863477819843409063880731380944605775621945424740492312169721510495668841139496664172370573672984320032334296975978227748518535816337661529794779446130804265306155835683062418354449039518707012406870047529669657290798855377598493535449481378275236863747629252899437609149661610326863959714182387212308812061182888408573028189953796244136539208125362767083538360463718868550069402343270192668313255345223549434763707268184422796194975183605453938734628917207102417839548975224151114579065853071554421053567734552817839055424341333543692241851680818086007255282574032500484702949644015137305808203898417239824215007182402760620933172207401457816852020662173012929629938954369375387246686817287494525930607144224973941270214945270876988202820386535459091668466668048780917000998408068188515167340400981867445666884970126958987424267539831214101400076373571193261432575501451095905938452093357123280364576852260634693143134643911131912641273169378281820380861563134821219167265868611693330949171095755404984614570769636550371818082005125146907248183167944638754198287143403102704564871048097306047948958164289139715128730426688500791584917255948421887991357764852279573614403921952188624628288440063417125133830566583597088778617484911937006210675138512474644157919233535199195731163475293647450108906697142889091973318307184332368342553560165345631561710963296002904469766509223216125516601679296586418710391388432466273330178023667935418186391520572160589871799992474585840643061320614585445729985327542457479290489400560283417734623225217538677000145785028513017246673439351705276251311363088839557432637678081807636256572568982248134472714172833728100006569622003089743354623961160643015941266257413362667480431978614547762039049895306881880142058850319511824318791900060520753165832680946383522195746043389561537281868695870088452972045814265029143010671725319234312981220587611047324312153989093731781686116870237988113846391409989159777665390934073649956288498246238057541138376614600204136857941371501113793040181567425082833123057928628493978332095574242690335381801841794814618609209139675293643187310726287498091185996966743657793953617153179620952942440584808782153454773732064580033240050581151572188071033643719846634388498187109111241155084137018101595769639936409489411516365495244110976174419295142386900611790651825799903765545873132348121854619925844908067107188757445760291811942585481141868070230091121238850327890111171218252943076885690282853488526239528261888421150208076205737295795332934928094074294952127788057170753521008763699267193706659287801435790854836842847006326915466722160673052147527415079324984972593193154333058976777726015918405245604972012481958529969100409959831221451925641702181417448578861797451127645268170907068274854093163259738895775192348929058130682880066168338250622414890559271769221920705436972700099567037596714291974476722311814629050549673581678961728120608456642783054152497006684901193710121305671644795726648659585396368899840454264761118572015564207906950655167947518320629641682464675702620747646402211776763240910154800440619749800226706373589811728094763973496776807288829905812943862143374441342857967108344990832000952957202518819954481615683988876584668976886264681058740401255282006408993692119496431475122154411497475550439842373295085848825113017089249781397154722485937310257332404420197625857385667723391781689276623976042368899997473688009699679802301242284776148872388142941442237103425728012655791747683258382266899035712661800409491080103833766924244563522401376851544080172397795647328020359191476110117916738878161224528453625106950117662794433056255092610106016903676858298458635198887682251235780405782540858718166786054819046335714578447033488463370016020994111751045676111811756184298696166022209539485655930712616048462630465902704828253767005105664325698152805765741191139081763181045102352752471534441992177376259120354458517973985993799278840242543402167395692238178630390549727237919953734581952998486274681000584494397464396849920189703572837763700804362474371411625501226800245849593885616789676654293808211238293994306150899517673568375445702699410050720484789404074701991556967762784691714266877720093342134127440688173030758767665675533581800889524338313434081838699035046717228269778728264973582079861706932645860934386419233545910497621162563293326564526029514793673999377960349904905209448601133199836113716291990994882941660309397024515074367276237526377777925622232610985932483158773583640635055507249144142779308685062815286918078908819434377241354356713237454758338239324792618325725071009672934261533755663463492162952732170270476415493614319777118580219425685250386190074625831635855435347186362570954513137826083343970525506172468196397684972519490020804904657517687369634306691370671649156926145559689032022965374510477819925982119265168634049045776454175353646577259912442117743748331094026175475996105182889667829476007999013584264054940268641240004583319868784267136495389280276388220062116137540576751655807545181017190470415734528635053922561219044397462918746171436320774066976862917377374634447012494641730019224542133933763005658792751154015209658064053635768278455458082612437412067603759329694642372521660917152429202725313221055233479848536077755178201199235403081342539961658732022287573891754853105317229405989552921096668830252454782485169684781765605310370854930551902067070702445437238059419711814397577003685798697744256909848863498417695859959394060379753303758244659623771111765883954606301153397091988750010759331658292606977774868419806465100027226171303559939948360235026465130086328851838066821669321920198172888309875092645638042545841684208150434297156978285230437010890642609027357613459187869587517270167446581438459203638273701701008938759564189341686552728571415026531252374882586052233235920084543764095132763078636595358592451340036556850019582760405306665725166357460195053001915602313251448294511786916849289121589544996748730017598071158378104057733845105788050278808248833728844921245312851532664381440671664396236899238876213725941934877552745009125143897405950077367392872865591032024630402467623465908587096412036698103580034246530143323979546258616344273523904062236777675095748486620163343107606547963938709582741618338798940814983777445230737436684459184844298753054321071196385512948094846077727186750919813009065567775756108550298233058260939168525759204055019866098691371771557449436779591675939775174045305550757848103167375682236958573929833534779609769823985120691804704481039618723885422758276675573495516422401073831808094484805025356707036849110033356656930770801609896602645582148869200862456040111604138210383372100352619263431470415937419331226214511451353573194051403250383075346042524829312571551451661399248262248685433335074810743238547752443712004698518380688693296271945477437779089925210247334415023290152758307867726388783151734737221782201905166343559373475770140042181405506725598243935931838231649352122851181467916962667444421816998610113959577751409788460577388181761029231488124967286363655046326240940173646499497628347781895937695725117583779607490320276022637404931832537567306096359918486502584068418748577632105411450728988025171379891033574653733572784584720828606942372454588620463863558228925094639165778876150209950503589762064292046801372622805115650298852697003273044106919041101341218838070944139027834159352839074484607414023226474376605318683777496339441042076611104033887584695427289208327246616787746793887305883277693956123671155808918880767428384622847627654438705179802954155721417938257642467269624178865635451310755103878177097633281582298005857871488424320503503793691218187818153506637111602279775277472607262315708248398286474639966490165200036136185733695206187368630782455338462207565354764440865991011748217563205613511573124801314387463061302005798756246891716460428151254929485213385291401168805510544200674956624392272172653400927904998589284097591897473148056870321367807251567755768030741971289401273966984264283738712548653140564404733560539335742043891518065586000333804709188700035176416528312972719142529717445956111269361611776289466293879390357723499799918076438982986805576238231022731300823747857082619386946180934879382201777361094200715202999290395377104145386589294568652812931036517659469874242672818940882289731019026673926284344944942547765366503080955153409754010730682179478203674420055112279962368121576341692740891307110582674211179840808546070158241484849177739305691948710898202071261161809503867287580018657339050212270695992977997629580277076316347218293155935276136259099832009756919256640568541504964634459644029272244418189860679243157873658281475366950468263156219741155999981119556653039140018835599922355189256541147820995952444439858393293787198229752417696410136924313112921334727468421561362821626317070236370396331721286312094852206375510391482937337425427367469836903757426867224940732684810452265157216559935963655743332649369718224818070733578946850550036610327124856798458327153088931635102211037567110646313901979333538282815396769245167939142600886471872426964063965680649874021937215686038142288220408278522881665246123666711019853389869711403938357908418776499276236559250734421993238644698159193765425571104887489430466221139315358947899891916925594317915415421668490709369731655939373347637941299471525614907316390337911481935704904040145327403235580137507086751833749636284610577607557531325399886824520731690746022637660226183542012198684670073152530796389321428856169960002749194308331544094518892993250589516958488723538390349511905941627535875414376052839723862069477128028200255806785517188715098094762081231028899341388574814722525136740875192912672343295937765342713480094333431116220845896436879254922173901041944944067428027638332506326073851128985924161405034678179756359945599493839178164139980198524621117808336562026374902706651444705193519007313001681962119961429730522683949756259188610931377197982262420712960265296719804597867881627104913238579308961643368299219182022022589233430704528452034048078543409012151933674392650934735957619823562849018590256781536910944398037340627691834659090202659002265927351646530557697505160980361639019989726813983473392644052281552577418758883585090544144039470220865977008541242184896226742269259767427494346112328580220725345182441258247465648513118616033350158032161936126032255566700543771754564926866195079371881783613247798747688112410531376246557665593409293131287602429360093925045929080869881506074402138469651073959791668258585449784396448518577031481082294691595660843085950364364977457745527037612875130091205358464631081646434071292182980190723759987516430256304816484867978435253660999447884846180166528427878027172273539336735958998156504637614057266893798499474641647980184761209753719746063576736428252379338930219868825675477360723525492705674046012018155172887818512965785663617160450187615801275691999832277990303127534113532040539666644645448983523597021654612098026118423152932081469507219398053163339439924324436477136281148545183638912574130944626579953189393709990963100563914305548785474654816265341677042316384943111420993470368784273137069235202632292450906643647659939592508397778865066378527752918132447838796859973704261487171379420970656616222930635603629771899253594011686178753672671053551407626367641887205865391063376216891990439492197274142669714565146752564757511869558704639489562673718624968948640283136024191422718342951376359738171819121259289538892185899622626157750533555687286952535132881720600636296319804167171672472189583916671420784120757359890110665620386068324769710044298994489054626754693420278475859777388679820171536142280174990250663734065411714406383868781033614835462381108418471180324859260725385674241492398853619186117114578509404717342685118839175246288183186618935070904852536302134874936265549816156334099774499970160496220135172666588378698552909417296187435401593925356097580250127101576877886597833997248290759516071127284521562495715045396743751727424112059782073737513310716434794033955026758824823767824346010367914845458226509432161160071964116248983008858471421617220591073221653441174432774736731978450963411284821507555218066692968913703379130107043013960429098051637408512022818309932176360015673124719469631127318471000250407753396778490334598944736996032043284825824145838822965288890562787409860942066434426861767813754521721610322994012627414610887407877323304806056420802150609550593342331214434065671583501586649783346425964184980768598330925339317795077269643244526002201347019925909611063453099024261582426039194318465106661347743401821759391182815204144545936307194575047472595947691355587944176693722351122388683337562046292216882084713060363927371273231768923264513066413191403228902031074919105461384199916719093712756822472663191590471801324684257056249083029059711633529723933117616953055490831717057803509602978073425121613204470006943358685184463833901738164595133669369332792292227363070189538291389339013508387837216460498791981511644047042958022123047897959865345911310388241744409619738199591579138956822914811132895496761842444452028555773199947614673734247972883866962205506042007205965886643623500028399424405660705212159130904090831734266014493650864008437730096195873730475234944849896491751762347947905212603494705353661105149564805062449231830544289806155215256449439597239586094811995589311519041583439067219572869683773236138213824008158717353216842109552656594367173290943771514302773814203084972647068060623888180954801997092401369660768281587823912440700749891677081828574571196168327451026438297641798802621109889045864568664205368274967831942737876317711423389722346090577406003930242890313721939438028360304801669939699518570294953139766329558443424918173428042113523216154361846757518826077147950102594792240212697607790052853212130263350050438110055985029896505507373937552557446857856340943887939838470355279401616125947068759676898648400156346719596036496522832866863196772693165125246344224472641925666589849709838862430215817041079754843554290376966480541723336063967937102967010499010670972902527661933313425651804461556885623902571045418450587628675785178158465239390271840329662812448982062559039712362879373639380222161364741105377687174773744283095210406078918158143800147166587374530278876423400434224290589494724761415458217089530099920114518386157375443027843814556102022145387639882425606935890077293736865701298609912380949286830863336254215468085725864235711457863841581873108549687785031267511980374789035490357395462788125642995192804672102315836714655043651310241429588312652527237395031853687308776877641505052287796740940675438265404956602475410858496277982713280395046493407744980382951099417896918656066499472038320717975014822543204086495286550707831353690742757233515142801135257113250368414901384602929115949611299517919526099586278214875820491297330529084136512037048151694306026571466512493442935463725099266557450497564565035384405715904370594778961866496444109016459015332476458364494230303734957493537122465383622296059651859132404524567720682286278943653755069856235510452788461887296808158382144341537624434976705496551870357969765616464122106347194243077682207878978353800027580556780367478540964189113093002949594024450312275860587446891875946580288376176077162915372086545594726334600136356193932475372077802647206638360047543424865149939634422516461183083806203514109775646248506749800705369972284129950662672758196864027585109159061716229210190487946826453283886632797042210806351672983100713030813438273977399577606123355786411626799069815128096285119713108078184748975246345288848252698923416963206048908527993466350593502674232000467286288667386463517959901858714134176601892923112896208268732948603050884654467688313291696160139470575256432280370572752724351180987431985543768784320266192375443045089931709009968356828691049129391228766865512442479754507038448549679537803378044276731907409739463506489652219539934239408466957235602244404300807219372151872801241934355139903495523644706467503167878259645737621242816653107637879330504942281673271764245940697659011978943516397248355582847227270586073565205694989865376887206787174735699630896670212351232812927701086242993986953788511411583043433782768533942240405199313790343699251088844179866287605474134439778396908344567085533115454316923293428498442175977056970927831525503787853428173106335850104719488628151362606420998463396664273507773037830178272163110502271367290007035000146204746604733452595958128675910122746267445514319230025358973211612329716035426686377408221720010553027796591649737586836081601689879143342421648686994294966625496779230900206945883499972091048495347867395922155760230149177865178384062252254544320167027626289755691329413810060317752030228098319308026927638604755002741122833930554369570984747550426635384270655551980376274474847366404289340884798217067887089677133913966608196371496166176799304689378623672826136997744934136905243049308017919947971697768841755015507798553549201039487240435301713167116796249946933886826305897269898426906375694744670496966712832583571245584205973349673283552471150289149273497665725814667452067286148716372485390953137308226133877907120318242455024175676548602491436347807031308919341855900883951719063878558427034271968770242940484806493484421447716561786980012320219716762247434109901781336848609472800338574873338785710693601565029007667103924389619880043990220460848451041533910989574360549079745877051786344141844858284112338508337506133880034446086815228811489717689569812386099475485046618574088782610852531388464217015973333286372327207565841574731117099354164337449390587526336817030160856752272997795971865997866643350860189038831083130049206596258954580691863798037709588225128930247358737247645212026372898494114771593050018382931461200559714754090133808281135214618977635504939383794926370103303404562248340941242956837063024582562832672506895858696899469914800630934235562372206713610474759775348255652859611002660512340552534959355254353767315121322077584738983484389541114651112702519793367872856661301942190728641044423854837914131090924501886125985922218871607879576578332326131310051381870461444399895360381530622979601428727905379731491698180749433528105025317595489657652134123995438227058401409885837891623878919515912272219488504386655198639885971446633243476101127998393682672087973178883901898982811797791334914824691550119578217443091725571531982352525038418483416008450498092262161119000409250048543922810714383880685476196959452744484605520830149457785112145541662818669535855968617948726213875523409093352780433497530173346831158234155080663634261664413654681562439295805877998918106469932212478652991043568094794667825668956586960467610919159218019175103504771935166564652196613623945560053866765260032191640153696301492715835036995451034876800211737094144719323472785492402877786946885568277353237289589915655773569880711002423809551342607004997869707729672275078270893013394511529871284439070873376627227503710257587418251626129932056442176579003789338501800654711409860618590908355233594298214023872035023323246302258492075461879414570343687052810365763640767566997337112615239382772226864068289492721960305591248902424613622562992940969762457245333212885642280426909871909869635034465908977629971305426407218358088935707394441705478924508861349258087359043541137321566109583492451784974203437935948865463162567013288864150290579106022116409086609770308777573038135531253572321756979957591691108791819926758553363746603033015864006782237211044797595477183838222259915078266949643318431170864648004711531741097188818242999126450906230935089525835678423315989661092470398608045589124812963894426309240426068574154631569925841511480653480721644418174870969680379419721805184907574137091154426451755839081543502885777040967942523077969596969427139123696724047867521872330914040637151376182457495918090861163035752174300518886775406858603381705295729505614486519141832247548325371021326007259434478717552406620101596927690549489665212732705948089568686967348467338039409750846408227753009544550319475031073953016178037609705219488000060929341504497573644161462052137386893209620116462076531797673811362273478535726380929392414863312032255135223340862276857671753018048501032234449554646397740117581148755146873646559107147974171084170397365921225373941223449311496434390720153078032707226372143973380217659154081749554230207984168196354119530117489668405095855473824763949770261783560880551742673719021990328724298063333784092766182366988743106368178216337218719791997129885637777501187115613745031213571110785667751457556595213125281499603205956938061064680831790325178424786951481278247596075636194944904152567787498572527387804874061616525827184223747533219193463331592395083345600750769239938222649775338307022110704123528708646590196083452438378367176951963839471826053961514057571082052390344525845647072497603789547540735281423905071780781754475384889669565111558560160095226123600638431679629392630269330556812959618932720471534761796247691304588839974486922340215079081234259261096071976495966044645593942505187204549122991519505236684396766705845955909623753406451214350690364652562799752261871947998196976238236500226263662402936940497117916390119704997672642749984483823361207897418776262476197452630102879276488252316931574193484599642775935196046552133968067789214418960345507902765790426397181031161299706641649243464425027780313127516049475069004528783565304527855011774517756403320706244668417850407991641184533360481942620899122893182689005655515146298597471067922032930482297191655697472917022680328787826437481658120882992704281403548762764650052538692247696383520744845371905718475935674395982015916901105486355740817738027421925284249533306191031121065265482196259531756165249364147138028947983899038354766386946546663518905785188052001035546133130044829054697877822502175290154969272351674089428338503460157560596307109965082812377651754617600255148918503816177264713130945932095713345870273748825177191481713579665997102613610983089845084641542379343808332720563807104799546452465864340835828385378858326582058767704156640035147643994289620762322939610082556307517286949548961637565143528255902664283928979324233776564254326237997697209119587858611648173201052311759909898947517354558204113024042107146082624887364581536201194552623541452847510609784240132633611424297554033402520536365252479062913280344413547810192591838365828540662378894765058700777883133187070180203011349922230522410651143606882315172858845011630574757640963600990998116786692692859164423432368864859509586972808165342219698927321405881654129651197895014608850157808353854323317478038829516926701484419008829345988629761934142022907016884826733542455092578606128743356117161849483212374657401911497711218777615797559890875048408394017852284079342386197233876436428310616693953291820663659747241673313470191197406319609757631698991006886376244760863352584693803616271639987160688876614956928803997322270166877191136323380983319516877970739458490384590676780088738088872975930232779503597099314271724267335643839936319263117900745428301710246477767772143010487098321867716172928669913373602677493616038611597113441283252797172731019863947293992389957030349899999150170114706614944345640806709317889276258050036995624110272377211356191935941011021662255402311333085967321300882815382550301568011103040690281586818837770012960650638273270282497537009418523004873935279767700230201181894842244674126517623082311805100007146690448262907101124266384154429075438466108306977497771747947066240989195898397567766952964052473427357318309763872335801359398691803577907753459584078664331108355358633764246273635445956878087499469981298518606215037908872325048157098413173246834845952201356242197799179381190945577154905409146181449847657762002756372073735699229700366561415202681976926888298087109693472982301148017021168141810800354786275022133808427836139156258336921229881501276356822684180611972572819522340394772831510074880099731127808246043953486182318128992379443630551323932443340267394998882893428173094080251537115946749846339922525745131398085615734215363625023114348138498711269217030340071449981858798042272360098824636497904865547351380136680705333605118518030937868128620349071615193845486942661212200481792301613978853148889091005036451833218639783909361939959871477731622611440869627118885398229113371330853932561844755082646320548888877293344440701268360318260625966645401204098184968404361335341532336428884040047258478108409051751916298856510117371302516177353365647122082896168694958779912650840117146268561034020761408745243685145402413429572870355590884914876735318542546458476372842735780033760919302248667918458901293922750892476450758722300614476905656890756498632636813929811176343688204088552798629834011389500790974832308193565574903833819645899551967248695797161758077451692678621128853901788151963127040771007180776893127029045676267299593978157203038958544396772781207661190991422026411077935940185643301793740261851231902573480086118019670489295193536673429653537354213976859496353906292420976068383771557786426959571759048907909279695289110782980751741077794401585195740121130658308299852355661848848042026220011510944704813934054480783811706426797006361273127471777218064201995876198681992032673699421752774084591064868241021284898698222014278306958137443773292350975171311111783311075135108889731292193544725829404178646657418791467533605000887090408802167577275453818135076621925888163946990615848760609218561682292455718499228471975818377315070273690416411554522967112504317459349353568843480469754727584342054597042371001745424997671368902088569939762430025185218883300911804420947524534721959128360472740017377001009623356926215454944021467437766409107477802965847385674301626170141688861876688987464258587566931026067039523105756710349174576246221605311825184997900183136955662293660998249617020078421014688555718088714011069913417783556677823290220272183564403307479810638219049409149947222648596094489517367931849405922453937517040224829554632397502205715685418495060319487266418903027344091827895129751583250546694906446061808056796841839189121264634672015051838663509265497040880596040547827419149841784418976872499710286688978389624592425488145279277703278491078662955980519250273175207532197455942505487070032863621721944615497909773218899469697086135715047167149470046723052315985546301579779312122260772640992145742085986418736642459070865459139447775157381123109476522816673256861332517132426386442524640944242565841733629618669518081043622582489042183334109122969362892526568397259264409960443159619596939566682720365441795241777874405772042129142625692353085596769817562642928059904260125877251448589598276528844471325786073636963011219878444210731191367884911584513132776829115315942391459345706986976855886623893895973343972687318467358918407047476511853562696291096132042994346148664459387331518186537148126181093151765004876095171543186677692013515408220562681397738859291113917802574112770663824219269620199334061195571753858506750823429312874304058275169011026444945875844271929880808087648077783844119792437472816988449919039847853960014753838338715479942504371734663521332079267577787051325619323984650534925202737167009596867071636298739351979857189668203074814676577880946195151423389482313828481873435214921512550236162041890240598629546930166600537532282179439392355978123399818947053681598821120539285054105788384817339519042355341422506368210034208334704772428744760828132906186739923460550848339224267416193381048353607493150740734577105720466670263411821948958476773529258186483408937314844194453483349236868824222592779623056418220899139243294022451572525390617202665428289662825131682367862496545766455941572749127682799702224842728713426829038019601932570601448283669656794489783262640255596794475744776025558293513143987129377101908194759929845678945899009142927937701335556460659597649099797216585590482979386198098512006976166879113563969858518086989878743559732334630621511781477974609672623921105861940314375006478618821103707703336614400644285615828810107018317730323708941982803784094011615399358237140435471258178524511665977977297325122644722307519155450845904931945829605564506763196363027336991193540934322958919233226992584958990830960150371449396901021139687636185494500170059027931534650909673399585545890230214887688913727212355706976249222338030303383703852158309309734986375395879983038683053218709869742708973304646419184896740494937238999467849125533207153058986645677735153062523863900642920290777803049273394094971297468240478382637766940255120985250422086857743599833160348981724947925342902285540941961101847110341060794836202070969556393367173124130927019212970186288093914537504365341483087582997728193171655751916157286386044560150787765873004626994231154520892713809526900761866966272877388554158364222268027622490317911464974298774482309030047392071694085471102335190529297576818812503292639010506450588941409198324623758372166633464541272085669721092943274205079810361380049447260031100232554800867642952929212550026082641062967199144862325785929119973520845474411164551658626619609122079054158308038789447169130880943271710293143207433305434454488666637732228751350581723106897547570082184395481537348373487324874112712133355995783324156453301229084913941734577343583342230278332773323656746955361088383319718951009014019397778657792498354657592890145540626298545319619440043880628944951040040978255304084565632059429644738315714874495214374308956913811836267548530116090929227183771850885035415431125001353647272077820695808379311211813169633247704731495169009317979224199348263561176052324536841477461324913125854507115746679010150346885075070020061399182037790020490231705844653564190117492917537945274869816074884210433875530225844551644993548220127674361368792935613835517009746538238619740347638616511794675242658411898866705490291541250586687267798295276596304927445783889130789492921957261607274403904201298000484432664916779591350399507349343648139525606749193916333754500719963310402075175833283400186342631112501829209858123062204739714794436468995381288701955868422116741104903899189370607422921450593446745079036605809389724291139096894069763623614746104627335055699635248989882212369864327580305206891791753218936536925342726372176099109493065868967789819822257793511734942579388669101027705855007937223787456131745118634409257781344429262212901460638614062587315129829195116608561310307550871791672285093351328529110608503667288847213115133237810293092351733395607478087165423057060645011043377743093835001768123225215344689800736730145675564757089233289130266033115522499710851364269362068290657657835756051389082397919605855472095503923636360413449964046289500221476933193647750461141442667497409817647910333275433886773822541269236418793919539729191942471116735493843902685769594070532819374438779537516463743026831475526878229100038765932084416378617396670489740299325426190803574896517043334619075226808723293354374640505575427128781428536703184111275531512788839061295174478582321724707085803098704155499717190810475065082739139089472173901731295975436025162870522532542026738779530865327507822883037770021568783450612197402615607085465076330782353169263996651374929639430917712643920564174685288259226829630759397187390433729468204112688779840868416402222999094774068919629124901718099677857081550379672064089302314249303787525314751086458847611625509889517931306215151266850840962480541227223801345085103718986023608787222427584278535722671240358566805599567624975738593121022282783937919391122867762465338460875667498630366085769829295531267932550874425209552359559077178065186821688991970445929611033949645739658910948082122733478224026794254916109311538797498182167886564684377801083691263734327943744654892734028625963230593730440232512114405682486946287219064415940191469764416580348536885371184508357240018669445579894601487866952896298745019254972248863978426887620139024667224958925762006124901897493720524276430890681176267451228101174022279981313729178580508810076833764799208163096986798561441025733598836577708020697541911982018296462731919472677550592564116146743809793569550044738666264343935298838886830987132966570082059194016911545607971206485042989505153773771710834038717386845571805131550435975289680472809735742181338362927486382145929156516912124363336995445612025235705030892340993377830695080258732779465373325274020252788534284753994178033565855848039715798376386306364143511952663000236849860987863328389758467618003519699614284323664246954565023179126553890095286077224351765249346866607383384858558877435204881917471238353136721258035971086457041069163217178448254618045731366412773089271531751561616649187001954284822596853210445308599685010584576815439824202174552143156854611677141343914941185658679282491148962441661137900254817794841157755667668502795219976463923298186811367334493524710151682237644372110147294987567971883012244734615412512502267216750349698718404608976753022254788892020802353764732346907933094318618364396615848446031171693210422698104108369693013234427654347792133808589486528999845719605515666617886206262331927931118357402249273295491662656665086950346505442867123295633538874294078333768756421576426706542813432195480523052946573057947799182970471648039645801226401818111886694137139204032909737601214040021827614926211326755923724155446858027065386367609884797585435767076642885303644134033214244835959048198792294703458760847158421532584341760610776964634201955649049273629150226613214501195666839290101967146374714145937148967814615589786010660883531315941997822086369514582768201357184416529958819904639865247607307366111517404499176071849107922604476615962611539843695964363285695550507080983813237620763237670199912544308065801620348433371585124343845014373175817454678911609272383592562709324748050777632565626215796151215426665910909325822220832138508207984093648453430628076587487516522096336730577944155440772450621319308841241125627274720606152228850122257929344988893863462595419243526389512639023794544312069677915593248090230821112195027703922346326173635390936296748223091712233196176280092130702728311127515737341778987376580774495235140012070674696090656157377712104882608346195439778563451781515037267619414811939863470226571734711502073720240828236842208152190186269567838330697204650000739310884093995162993102050035499734561821364499186835345970009380136205193323110884343344347988722688944154612101546311950296857694558183527244787861416238029468844684976963823013163767365227748601437047703611521355250971173379664672581094794226592628206431971305652753228823272614901307433233266384974395315974393408255020937107384026656526522052825604151144089712840377918141955971338658765574353393669676865388562239172182326152565485687369049292349604400571080842751031046596415084849856129841702745612687901544169316203350082285356477381878485336996978293828387461222798487961887398310892909451820403247847169102729386305612125502679057242098712012097399401537100733150140577409610261373555029711158548660993308902995965944065084559740421389826521434198646477410215304114024883745788634424143514411662572555188342145638039152297853878123464525041441771920406479667420199050347999420213686137841134812923561383798007410591909653794917850541720734943064987604827928841146823285091049954057676066840981747240811742150086247452283489040520222201318420331074247940487361915592521632270961184283253304134818632998226451115036249023293615468340129897543122368867934656845424505688408844025529673287308302483019540462412700680200824479203675677996654321070624414784709112143202159948000179992046836722074664653224119528585482073799317364223091788281936067844403385806122094636569892553501586017704109928621507076696467923287633596292182842493459289261137262286249450190950574293246537208766795004979638481850888923407751048109120209443726668840771019365560558417960417847830990635947288766377891065520848370652303837799979123606447488989181148859317911681546987870665587710853598478238670052183880445566078100272744471764564200141280787562878579537640451825760445238308773343918401999744317443564224101367821662740012064325622445944886737876246385054947216675522360723423375200273919652553005034883476637196329420150884475762813780415734367210783330525721277474675458301822042305185099965388907479149927986361112701400189083348477622323989059076479372129101624628762705610240828843396799291410210638021160873114563895064879962019024819232874433325458330985453885639514651306756143056004725857950697276421545825207533225130292230648066546542542848098418632463265684500817320753344916766975891959910814560934191321014305029835729544664305409947468691342104191309979528259585078032462777416480134791511940291531105564491137532014515234916303482097085399518061174915533044153233559269637693015500588274053769248330107655915632659160449821257645032581756185834818528630766313875209349919039033279548974405009305777294809101524956404352078461095853978350102420648624385269314714311568470160667408821164651213323716800502656498544397467516989524595480700458439461995742881584211389909202491533926092490568498427879892074171919658619991138889641905203704651769375226079773551859593626877148358058835116588855120525197103263205968958062615294335039028079452794359631421268017582751218756438226822381051960219543390816939655024962315858163879891257437191788801682899015170037243164457405303733792271810024921119758672925468713274045816798506566476473220571736486129434603020285466690281527887398380770445070463064986036748427098053692969735911755487144548544034114185446805885846389420984830351025325759090970978711087034019470362569411954944383227333392609530631834102372557832835741555675091795709982559991416484409863914383378134356290991970768874814675774337492250824479198400365902733222985788834412950328248557048835735190327109689164384508500297386831771497035609350912963477745937573279948474324046323606680551596281822883360569909184602259603788817754067729451801462757561929502589089803838535292012228133282081300978635074508028603188115208131286884946776555960359733736449190826876058423412429631764687144762496678603547881103533260012106256513801332118165276400853005453680861790202368015769869840247576565322681033651517284068038139475504051641713693981773173472889668620519064645790039258014026022155898095767175806611852262345439742811818430081553751848116393771196532228549639767268517910418080651234593302837474201978736867777261822927761182651414805784071715911489339510577526332941281481028693226675164326423292661802274210041481749964701595220959645859490208113839856105505707270307552865266123109482319645279284172714431242819677809439093810840696157024844167442288624885610134265621079507244160556205106931935926522905721741074377054996668266751890336027960222437674243395452427000350909104888111054105966821473587843272520291456182067656294495374449746472113804961915771960342321926365399423430995703642221197028008471178982335502627484794600680747653683543692678639010734076007730503196747896351027053135368284491870677336314779276771284791733038940198417679556255815872309386277037869399083091329185404561781857364529403757230465648530956418108228074323609032389123047941721259998394575149049614298178213766084668066799292407131359801613458679661255983508064218257660527238968049568632351307844093276770382943814554661928072568999856757836676459357805476097620495444477573879297031126869448635911382027957825649662688086769051000831977029407267121487804637357002820969713942202249215809082150157958211858376987697301378536490186430013923031232156727968694009751981857872842591210852579055604846102288579702886030578197690453927653555927484948664834158393267996299842823569960242755654657091190698438415426982494879774872489556324140594899286636919178375375317296142965743228914772156333789757078252201446385208855021243605201872647285346763393822217678297871493298671944659570593819593994925481350538133389750356953567805846613794032106316904340643377760063177411659278165389316400263267498184621655236042781326354901468993371466228304537473623278959006507276611784227561709802506074780198605145087378529595846278484872458696673094948598323414666367044257454748196668966064874891777450395814433113674242989444017571554132656692380489016596505960956037208470179617953854921095042086590969155455909265536328543528549724947907842490042277931378644528165226003322616231515422842920376291682026024415164626478458839307659086824582245448062087381509164490831406529038607616071367760235096641453739110391236616328632737753414644603119566401115028733434745387148039745810699553052550289129304009810217662515544359602290078299640877508264006394676872760581117239567263061812088805425503560972208667001650852895160227862165802203861096669627097701715862529149287584611957320453872079553258997248254973519979476015590717406261869896374135157516073781208424989190192674634630368530645213525711814562741052164718786587137043657503595006512055634397299433879002007536428024763110554116958591755958140653845138609802080949937642373315696667398283141375298390233003593888097642897884995170124036535862698642842381689056449571691347705687628962091312216744621088615502808307961215730784963379497972716190022446182033271832000516096994149479955756319633205659979882248750078883847864484089676673707358359631813924554586707917588526730142268501836317116986389724089130141386145934028315334623276928181274190061259066685662907617316470167270573790977860082349697450387738689715065919838735200547690632383770925484398666535736959751127719418455499336397028590239909192747919302766925882465743754279415200777527631220724899041306214368602470606802780540918161288907463256850655352334642608071693542592965779933823271342304707293359860291823519471144646920958685551272215006732330248531865310408287045913144907269480288091195646833745152688688422660638095805968336243527539259723854632497308839724114759956259438057349600575572022065066112034556227365783887284752933758430536821540456298914252216991883822480025286568631799738286955796358442179836740397474311205619191821869070376020306586782664451725644352641580318681952696708831630142031136504086896283267724648936689281727467117883986060031194847861075065503492948417333202426755419830359849010036902627073500236531678288321538391731547398213490274011482589537239465809621578283300363990300626164222017365329740169658807750287287742685798849791421742109046915928008338385096911244962045585484583902995010696291654981423359458118982194601514105054930919375918874553511279955365292488015786553624368167152097811887890251008197208211633267654056213637333939879359508629193908164748809190707316307728344047478577275599725646496856576757344141183270555908350030581479669900946799270351437580128449651672539223877737679456321894042736078516067996370672851032301520546049904161180364132926373755314432330703566131700473789821516375585081919025678687930687165063217800572990563121385217888235533738093590539925180801220696937117480890374425746337314597803863366667711706839875590663488630198428585163478430457198631040873952943775639195082174215162077839869282641820045807048242717222790138704922711876900096049621123724406557375818594063699854847374542880966660091487501629867326386997382771181282015512639443539542545250346325734159712732810387838396177244754405115847163135207372063197252922527733891649144943864687909523801404344969292605416589769984780918364169958156578417102765119250082935872297197978741454716548222818081822188220743353137677521934394746833662732055600186297748743790924996578362760925862489371898430069204757182769343771021537696287591504307355470468523271413766768220357492891518815717226284757444319389291370347736811952970515761778677013545151157988778985655279164035311458840362143535683831210074263377727108130351698959040126775627163374840700096059600693927399107265191298948622064810357399611471394721820535932918725420099310279864120797311395957724950899971938571017279754251532731201967669725996730940521147725636015322292286055561878864841878106714999370750310999502827157647443702663836955999391205212922494123602656035458818037052394931432864159732729958316294906632324598824298209913104442427316773027357186989677678837728542645880835932871438749264700244590054277693205633225574807008687181164475290652339180521107058806357966153152154559428474067228728960331446270237451909494082376724785131160358421672469549457398040765987721085281844883318792829524396022774287885424152199217828252449619645775298275372645460763636806151178824770215219543360270392672881680150588621293793206088627996685332440490878453057574599438034190249691277410265443962948204761145294360150642406630409579850332650891472033120602570431054105215751945867543252844885238730200862362683949410411315173250572507577855912545946084061975337483677050111112701331063958959752857224190253764606564255548745866821359906344891484306861816391278992163727401528908400066919628048962031746921605518105244981131905744299170222357084715627792481928587604497448874550045434604326557314643093191988531749065888020985999464402228549074148475816082932726644497033965348414130794569624442578825304310198325751842477334020195841363797178999852812702148463022596883927468393709531166498352324136300564999076297477494562314027681117689605554955562258645458086886164636283928998065654667777264736213036153888586004590539595106036830109511763526377753008630577264662901522635166522443651123391307614351771327420301812627800719726094172721292659742201069349403598066210223478906739489168881036686802688700824921911809669517386525229274533655903257172682134442695165218271405872345591720457769598504346954315585857484551495705495013567958323263985976123000723819486440516237813072719085520452727240292276657584239658864411250312483181901021119399611716086775956484290509049692696238744166437812099566688147497014130031614825497772917113340452907790721808672411422063784235651362988886041268047930584920390757614803309099421828946360840493694114070309046685659704574534228559171651199631830134437739197616729440277644901720016020559036604514000203521577218901799031613893835540372228253548668070261747821450947213298933191104113788788103374667389989904001986170756739052846991038536440954179568486466336309435711165352332185397223724443508733974900269422772641164677848261736955841327748969452184026018489456058596488752485852277024619663581478094900209086674463063088909644169742735309113760562924815185601149667637172054172289310991050860162233972509262858119900410650990783415433548757509958481846489771940222534981407137712580776514135748150583281190099930376950392674489549120520309616284346293817088517247818273938015601432164783454999437982526936344404397238353238484583660409927415159224191056294664964641498209117604650616591337872237559947825522924809164611807477607016687831323513247357576561741361003240032421029388606016891877128413944639424243265599000426465245027427988433126431772815561330369339727642910702290844276618381062282072610268798315976791600811054781958297212818206541028655845447792934257325344738069293940258124675801543931284429778610640818492780839555952231971878436033570633260778970513049142166545614115537096134878069378766647588135212322628327047047993860910040238279935140049555537761718644200959814571970337287782376199629803696198121665379287896338169337416149969729147837058262348305722395788117903833777209904494772766288057717691694166709681834877448899537288517009423040635215033759116271795604715711830672018378576682066043849596671487964630972171345694256924078175127539604667945886361505768657043378390136987074471728520453251301547832145157704381723076739568629695234771038415896020664616987385968329508492132639617431401340456825602785834997329290269167504211113222634798935201413522613551518006738040409043967164306927392036953951980119830489581864490424256825201190574535821408764728094577132224630880867508854367015647746747165051512415512404268432908958991730256078721210066770131352547583656553037772974442220100334812646419595248974355214849984049847334068243697037541187138287268300854670495403102172175729145377149571251740161184901006666969116305245290096615158226299258878306402499211842515530829216277556560895708175352849062638530254326390928650055582365685704381352218720849999439155809495195261883453496175613640756660864207878324677958573025316827996910296263742148432322418329787700728734487215956594642325729233696327423619166934760315754911228439634629380729773532673192364814298765561605393455620703269834997249403056221335045854856439666542469492941242032884134502886666326016676269738156802495459860764494384539233762156509128216076024819362407870856089664573015935378193784267566535251566248437176666885107253312446215505236434396015402003165142379354646327628401014802098247991220636431106205742385729174477973658847754934918356558430824384587812855082248052404848799301269595548473033204008287223686101363044600807987057361459718403797044483714301072366270677715456287497545122890072315519975026482713787221783247272320968679469030874258848879605849547291828624305682708811711475202162723288236598037574878331711160288741380554812266347229016671222778404850077478483883480709605633959453034694638528563028566882539371014709928801236265248496110027279856694481094577293259408159472600796094463660558813845526211880154876480904248690883029886239110859053422553891947998521155743279644541293471249492144476179758580205199192675878291843521645388408750172176497067118394196730412146841650653006270997805300084342474481100168196545699710360454965581202850251598470387677008709219455609145462666213324786411167648915309003392467740860216237297720194270916491124247807218538733081392513164345194314594818441607737528980168472952272324939334674115127763671480590530836608971467688282122803101386372864596174030543210904765232342088469912261893354798704248635858664907033761821439559018737794243923782661355153660562528384088151939672342156258324460790416743024249962302478674808043873491955016054454464540904114522064250861062565711178697775751257683711695018915573103275932445728893150592021070609684796658810683019684637141331530630790787391533214528174813341225004952414737395222352084532029025023669821727043517456450088823747473134498677168832011778635941001248041631540286900794794811217175602327192553711940933420243490660068131834277382812582970124328289060807784432999752021192898413602819042765392500778496294655278427135505613214988837449606608053213328933311329531204111365126579838100211537851772345040222876349628422479407852193716555488551782492538859644825675356893553136863146644951746166944421643547566981457376370817340326886452480721968702629005962987782406797804121841929743289232677137525210230268087679994181988460460531595531652387512539321827563579809722534775486714357929922105364935365343002329156385985516311910131237285197164894726993103826982825896572138895907379832989283551018708088150459796605464147784889318945918702192038467076818331215140042362999830957567715703672991844244942208103127742967320414762236605758402574365969954112856212113839513544681977622528429184699628620719413269997001657561542157825509398139127855011739609380913844417302205085676796977244965760790560228145777122946455508402758835807175483458289535489033693582142814191281247504062105242349051781881125903565563953329409482138025609186470386311971259382792309277728189393586256073295907617264959037163449747319747848450142744646259564313663972619999823196274600678752823314952260889918433724149085121863284761138443566894670574376638174358761588974558042222570132864248106728426089512696460490015148303240495501784251382019578475322944531710085910024745958632472766005265998850968312928162672683320465805165849914941555281627952064569438078811197783005165088522163607965051090213981427046539342636242073819642047317047392203915288445419326125672241146739733130656194302077673553220893813330166085693239709068212665152102242119723898282388539384069206236063157917583426513359874829271264978312028419736631151161830148361073028139046016713410927597665449247043683305047829620443603809706599308438265772793011223423452498376362217092960323070372762907046468237398391449928916066268981262893628295162342964421815222515484311466893308264345525286427756945220610548661029906281899618606010998631976335585476109485053570367120665699986384078001609087683368284602067440591900102305990732956162394745060116742950507292912398703612693963915388810360366026602892058603141107175690008924356773034942915833207103395696901896664401625059743465714341627689914415507829874882210799021277862084044276013081403986090361791449486558909992994982329713390976098776733995282407264014207574931259630465311281583348043430410422570802219854171167680991216823870317287901731560788911928341902884891414606697259466851201890231613101208659792384212436408675811069598891835841224558116375765276147511668061659397462175277156261591187677716777654661425682556842982857202312243226485971908538802905645368590509076916573013518436245450608054443103299768947811657544317595951533643170466224512662174729688319299187180718304575927436657036910371178859118684537777472455078457207288349852519643204464853322198107950723912098641230961891782214183218187715833125806980722800133517476925774835557881708956622901318104705069986473808617074093734308932165474357414570882942419247519699187082491779539247499519799706170494355529349074892199913088789039043451875909082064222214058601479246526624726665786579054221084863521087749667676330669867258312932869272433916336445558464695219064616533734591371596466982729123326260395246270189146879884618201369432642747936676018185685360020631419242749997494989644937647249399920638791940232825190972224820093363323011352040590124925172253318449635468779382967923329501958130067994984355159675048749259314321458616223409147901635328749160904754757376074427747404402211480489383427193559587489361552936870008630009884973679154734184880127037665030646898093042149942354496590697386006979597948878266049916601483668912659035815382424706114237788507189330620948793972711960152090520420223877569975800190362483016778452327837062393212237118602695591091633112937698823239833886145268810851020515188265869092744296188314975873386941704786212545758499923082996735947787856090785800922419341639162468665838753458855441871516822215760147408626283985035205759325774793673057278680870366001886082117716803886973175976363041522046870681798218534244205751143317144230232285932115395168021078728520495895846246801114634021527037839146398176910114029612630356673673658093079768820909274057635411171765411011946910241571961476963055802228534581821585594602941292047660377424569003526341813453659357052707720789257385262669388313589355937039597180246623661920661528842313179955724280521503594403995073454165807257617001093165478387481623358482473110256367778353724144187330910867684447127041618422876193347776208968426202471820859305384587636357218835106808891543553546842597716232495249231626555137877053720466998665721117655355649806761073830049974470657548488100652659341362618638828798052209833198205385859143315918831123464721087692188356072898324198847059825300482480311591281015874464676233412675174811343406556248330622941512886155183566456490200013395394662416088773271715361038384804222062057284198429108479318968810152343499774428942228325985298210890852230577170946567750468796523266743054759907606686776391628663337166829652093117308246515697470584561338052983727305345022096784604387419781963687902336955159692699461232156419142122046754335202565534998477601622286281024481410227641518010852592090444338340870072530202594852506117503336629139512561331335863619492075921904676948224896592215018185973167448789730070847610603539690954957803219673688827543090964599479283318488030369122220428634051000253109682413789250698840848936114919810219105045130110177991953793880405022977536085410758068320533133587888934413396592120055484463151317597220331901100102917839244674754372006369216750463544656936887463904615662918451874372406078045636390474085902465420533910463603241661485390591302180129273833142952218584279854785261522454013904433030590521426810736629352286835420133927990465763347820560060213413122741887533300671251331795643934258329816419473336733957294195784419388034913089208407558532337989425546235032199796804603659335398517179194254824030756511887992611756294607682579395362138498720780793792780268210719577920420628456149942322063563859352439546211220876760510770837778130950440991582440424331020195530982096229790982354194729881728375134501389126320802895255001995618553244496354543169264165572441063797008447250847854675694162295378678511397071657442691379216616862555027658497316256474674846505141662420228626012531247669758576948755907110356820989525481417093221955508432033057421458893296716031521462273702031426929063464645911612378359416300076430810021959209750312464126135453938450554796804727682762093043703979138690322327985145550622819156863413573520020471553656927029262081137467863909867062288214279964500342278973648055710577708564927486235334700202570186455522284518552457046056292000439019569067543158562865947660747145608611949698484073194740546184529026877792077580102668017261060735142169307405165542751680942015474007450825844585284220294835466612761003466302449696498303372132123996827441269098868105075558834976379667324861646155994904879957555522659474844290852349069780339442494656235242301352592690012121730133891678546486732500302436205695153210412949769935316393215809598888440472645125946510768962843384751608873623527120719347404307638963687559117877633705153502611573097614470329641118639175007705271213318718475641455912174968572240206891471755862931838225577570862272456499577995370100048627466389023601953001054829115129933532752166967262576975357540512966632762923787980683362945193521661783014989019610402192119550810865159149799903191896647382031294711447018887012056807403949768042480761623043488036184647429701606139455215196664962239348621901887434668453296895681836301947373426210397189423180164707593318972448841159162595111258388746520575664873431418956113132064373952510529069200151420484501752732940231485597572242957701083930687713156130917748912708175181663830417467078770268584074224220568509799535890268721435534500891572822207904325730672422415201263542570948406675123455322117252285182443670759313237294800199831542120194744500487454796099583126354239288107145291972555125739537865395010813360402398557420185354850657406014560301642419284396964575716582094477257930735464469672420464273887866391589164410922429383679123627328901142947669898273145258030990704187661693774711130574153574109220545353225065467939697700693173452704836292116772172041419477663058099685761121138341973583846227832817934381804877292862937467947555178052487516540596932989139897810706473409605752444044585791374577015636858318913749807998779499677472813420711144916047829110432498158856015635582527002671188528020372810063443258178645440174736156235707258626813283756912517155436263827159606543488311580813481851048405591721593566451103411071777599681776216780902751895379656121609111255774839028708962535794779780408621457159401986077879854137482738651633907850009696250464143976115870382144039779949081534397642621265504534477079786882939306570682618987295472231944392992295696935597959464181511958026894264240695444278676976892191368366697641677108508611910101183274926479481012176144673218713710729426350647402028222999918339244157708655734391502984989980306747135965246131475734523160633950403917446547259649193816960180674653080520485993549392234255699458535899385004341821415050751037223585698326561445624452995602862330328967564870742762902308653505919913967522229609630400749361201494918672795319610023848963981636074983356412643730003745966433973798513619828204823700675004917187670633682252699733942190398542745505612181849396718576523515718238609857640165095149418493309711226942970012235714870805111049717332849368895584265117250949982358325128049421784529381884849490195618606299331659358071188526413064585680367046373057569892868715198853083924466842805178387457979560446556711101600962224387953863010826811607312249464762624221626513217978219868299252965389109037090266696970933011943202211128174441661928037240454310065238142640004001238995126655565008201806494205951745298035313729901926985259640732575220222764502771848845484346581145093873364758327443692506626868261627060448771234131425383516042629204514084851619572197163138635163593337101836050000994386674772833386594102172482843401800241416797073874223530425618113430574975572987769416395308734640815530001886054417354540491697219591337025571082330909281502501397551782029248027859544325002690721766206600024991545096046496795146056972082292661666904396368725775912839855759402819637552675458972280112271395488828137848820579760412581584713576699199344286401135390047580120151344770672022836304219688473540075727359656241775543035440665540253398039583654801090766910386641698432367728827616406720007176800741618156283244691329827631351132383610224425488980407507171794577909266322195765627540510944022347039614026529566030576730872455755882207176805713116881890746284752987096634740854884256641214579702657022459306294093298323407471701816638109306997595858678430139301431456713688479938172781681227383165888472371508869261792907789913689392065235591992797959133702077052771149757838213617611028641509110906700422614787064383477541165458340229696008379633289622406595306021404735051226741538984323429146200030160879698102431626287593796951378833200043941840433049037837494814181757220119476701974294173807741362605108322502180396368170783918719579992391844207345877155129699311136796263430915904692224525790861266046774563938410137909350088722095039936948634818158777343918291895794508768461272107860797059378470405060374949902478006730238136464378388142070147700264834688707938677303117551106151676980398512560943690468914620191209045172134274518332119737325471710673951926837145932929650037875756356316350511982486338162277691622341985094330828978359978208411383622726622878993111909210113299147439361654782330055436335466201982060875052329666334821485693511585839244602879764966019421503116030054412421737026056973290950861008201557213479946734427584110724936248976150452001385076241827533601257401661929310094887288314925009752522110562764826036988941054783416219039795351268446840796077614574330643542494029628704131857656333616966658769265461916914253975119994012732917230237969712446609791605580099221659875788810217278898933566808863371828902260226569033928585718003527143566276838688632284845858294408325439216622707464074458350244716811635361666065860667068578693155939390288992944514749014969666114290551135253648261228159559517764334270824455618529980796419444348864480636387342976180115657608278284209138144264598789488514517306058539160691054958329118804345719555049659561457733647608327382524970589390015572977404745486331190907117173584955231324174219750347441585851403983360546955068388432901461746384010565912762095765450627916220641946544435810907212983715964427118712047546450778096076277917770631029293562854080529089507437071161138789462373869410287175467595641990065883028617987072533755563175161093352069258595933566923457282649828068331520564719454152943114918183292614505353536715737992771921740192554237566520427558344973932369193612450346659400354956454027750054328493751532193895602139093456148053851929162138102455179100375743194586584648461703251282340532176764587323103003517425253462486477429276299716068646305885384829714631781808401408271570546350077201778470542419389384930739244535349298016474285050057432774713051864286052372684258378628348249583931327061395763332791751511876857704344464974640090775315565895346960045415617076967636256515102514631118749788235592646217048340638826264706107026687927115957190543111819134654663567662107383690071508016116381068051445645095298269350296554757487024082558644926547894477239263452916721435635645334372774530935756105731929716906391470908772413774127479420422456759196716190079503584377492970174066224553402383702174299757923161044590232995779466345633267356728636697214966458287022498658005753895601620529523826372626095640997149941332393927242067621042680589136977542740740860753330948887896115529626607767812041007308937668550702011692194801515738931276788563586427016701548115658076847608610828350562422153906463906318916975051261330714484090146782935472907566427577597937455288633999390097089559721482797414918863285858933830316753686306135354956060987030233388527799275603824109320042172072913365154269236510175234591040961625949872391567750522971011687908695737237957626428754187185798617136312662544515008096416085363491178217122796246659903030058911788086926358550023044264779799127039242267152860174361815290670877804247143893474559496961025912304073461076375047351398647253994610388567938629424042370380406716868336926516659019446647897369966115377801246043424001216070007156660475907912051616165832745511737712389334440211393928414418421257153227526921942558932915345883806498183449262904641024487914908317568639484574635672276539064827904017825364882069877306575052814461363934616444643117087818364441368879692122214543414931987595734412000965256080586432730978609740288464829145177285395308509420797053938000405982996174176360567606818870161377350491043669623319589928829121925253158638272070654270384380660005760905596239777951639742658526375033924976419675366248918330487144833600681848918888170647929035110722104896734794111133932225660114432688919106648212851568911262836212947588829192508376439957110397208546605192806344223928697542492750800296748899159344596789581480997809711719529602890140648550155174425673276915147148448837987433542228749403767469401700242951701610883973551329101007365347204547969260496570697630999294724381858770065071644689382703388923697941820835634361471313561258064963254040678989689691060419566768071348252253349816250264595451955398186643394484060998203939728714603051554108342566374692191312080047451376839979451472483871995250978734374068264894812807376549589634726939260586605593786613927980072447425155585443099541998273135377357772111412267072378242511125027977632476877396481318003974847908002793154960278265275064531303861167770133133995640720780388855353527103211939386435117044773601022394860293835577551626454182355566184571996706236153999489432423515972257900462671021571495892245336945649946902384201720559436247537395194628327270482188867733482651720026212061479151910515386607458916596856095368571867813582000203701250887139732892571705287253392686249108550047002105496154025096439502958853760837507270825401290031616041989573952444278941174508269323491020559451893670890502179202617253529720122396618440508166809131194059695158977598018229981876792026579522413583308985019908929002425653882058171539595848964664435186077893987734297855598434319370707447246365359336818947153672741896356922763796645421568525057129882423724304055432978664130582616359273877743102001354780435765641786583044306755173448903686662151114540936156169504193812410203609077548712767603947591005001882718298392506559459792760061529597542739653090340010163067010666021227743185117703647634005597220366912180365205562890149204127797355040939703294515721674885070174028513811745966056556864053273531070985947690965638290272951474133718390056152089554443718100180388159669278153825566348201176286260726884351252842568178882599461992095095103486047807106010371444833732950395834110871091431380124590367300432404399303664457894613921744248508219672510936108284682063073797808390416259020232476562375704220615699723000312410960097422036240355491287419848053814260839824281930695431292652828587980694261774530798594542637712791281338475929847857695302394862082062988470017724008318560051435113127204792058283484450690498881870996679200089953253219114699522278722946775837779914378218002896447240492977407694742290776476898499957181685268929263779214999017619551070075511296786059007294130804024075799875689228231867505697774043420663264454198930653670477524354919664485943889682569767421582295922434869728818675437736346725820232549140976769009492520339098332432276861838960756404551352693248747398270843984253029304223571918213260172337948304620462811378427961760043849798562682399561453636081231173106531706471088423867624127180784953791421612553280027079428709002050641303921343130002102520017291511015255586667105351824629617834736843162809578975011873268853954799916728730127065032496102293116514792470313230167459972028438376320343549989329452122870168500634791485143582743254510314481818114147911318292550601860367562642820380677950072067904146164031116771227092544495387000679908877566643116838464892626720982759869669713000451071642145579428305952856010388499599030568290019112754703417162477855095505562014008418301446761148657843973146839093341998287042390044417531841608154401334849522164490284670229510243848457886871921551878744461293203431927563584804892462100583891468254327036503332781834846453313994863949321078931934328173483115606982165135179066917811572220251814266776434453140196994223867523393351574446311081993945707594178784472337997016236082422777416782336008756609765816938794946839672057931020425781622974254294817724767225747676563534416158166848289333114959554723421485923386956597692737876578336315430171459744355123861358415306183414475121128535305442467581247986702888520430360096737536300445281002784446658744437907459003100719950583337687153066606639135609436670295317340909390779935264839808347878081949420415507224412732339563902336483171614825738336717504601320834919849117026502987809893563359971870780936443782283875930700610286458516857403095288570435901953906133019083203953981001257171605021664416801384096031004041416685545820927582697421953748569950802763305156406735602512721756002924796792971976065393614861809124949824616038031369204925124755215052432062568682678420078591349049218720933781052586575324262683789919392320277645913040542320176405257305227276313172554815364488507687123598947381866770189412839586356924615860849352380704844515355670143097114072356033090004824760483492131820884612815771416666514495254743204933012617956135920021640451950939103542426877405830049396759524566453763703543379681285384693799101556499262969357554635219765887375393361858998772675865884221073311964532131588573634644364359776855130974189137786871086732471087937582512855224304865720796768932233128966301550649918404866348284492379162326324793929714836419289157712411887794031255915633225932193598393895036704195781294896564235221410135075000249912890986010789479047183026604592464888435913513953677335593360199014031666474294143176874049692108271050888701429792775401681414270536315807404572571595419925374122338009464304798006847527743475178759795163770490826808704944824074390645101656919509359922813282664082496032321609164723555642471615117995074586400255675056247613953625475796467569111314070753184852645875764592180941716515111682391487855731850637401934212656910038013290535689114927351319461783342564281494167818865034099135501375243387204713759439611700379363622178409062044714361785840072163554465316931291751680048527572025016502242694763846900312505946197464181781648574591980605711106270250811946320040778630852281816331803779360191621362045121564405541295744276873338360820954615981815372594533269522694105154519896385360904352052491383940088596201634917096693049670060350138504047442741310541068000370979439539099491929786201219449434885792122545685135409470731489789834423188576601232614344670154423075531276481251413890456888517631748933568599114625734245704645328990461552205924975254431754978355702910099150483230983621338892602812772332267795672806768308328828204691645298357043978732284909581364675988593778486158896518311131325705124861867565598677070774731024508202847689183146773550934262177774008519288694632952144425792749255656101913854997252024542661107080999680517791189483340089239639869845022839811361367058826739645578166067223726395299379643240717622502319497565674490666385280926958340019487555757328832442533673816828380976546014965125517906225805188653709492971380131303550707220882334052854752627525676538045816207010076678976818909438514036101806633488604863201122593974025442279980415330871367161886372496413187731357054547285752554663653974807583280646041247847392218848386629244069832946827768382744275920691493607150994681902972981508089697973646691120646744981033979846971622561820600304448763962398729680351478463999132330039636779757698757307224837054893808641572134830456835131013324103631363724253767216424547298530364128548718376858283936733853042365869050972017832926702494273553238634655136013453591889412830478790926962226570924658320444316872890284743153963544241460244363394888100997854504111828195705442444960368808174856815630965297853662923848697856503137659574019024308387358411325510778605838250750312778708062964312011741493987229407117975510648424696506364570724424716287810383697342788699120236237700747314121032478355308602595755831953876197069639181374475425727572497737426409064036066158932321366372373011980143687160654579197431345498765001543494131549189781247433431993938636405263536705853473579218474288278127823752237057594161053570660301262042584270478118660814527004201448625607006329788378515897083929161263224633704656334295270672522797782135532609828063504422542990660059088478592670292124881401279442573743447390398594665488647048350189210736523418554495427383914650061933413151176399541784683236336066655723865146205580407384135931568019944167922357589257451921692037948737447334065798089347188833965521874085433153721761410496507342955263586573484349193605708024573841251286331755529748802293939310240115498384355265004266525435415987253476638909346147096481270900090417748616395111120701102707250016245602579997072990474897864871758150394260436551803980089493091975502945702446683484127628799984850598404048004416219655639565078824462947746118592721928112019023605344812015805154154344887453677295932767586204811523227412089392035016062650013144937982814867187874298470529431056317780503644736777352261780080017610348302195434208601946145873678240068070074434682997621452482278442501321573074256263131475028801635091470823220469583588588300628516978780057762385306601172368312136653285430363877719737020337058368841547784170626746526046965547655445534519619122716764086666446145931434564226725934571184526585116379346348670848848798241479129720634424670802736688973488538534924598544846334506973347574482438417402758738857941827072001781578813029085358707076011507930350812734012004676219298943007295142383833957056760542667489462948054722836452177552129514667449661818244265695934273689804919393534316132246929904010188175428620842107675462384217794265142683096518170497859853967339302939221584314790218559912781498540407503865997961813696919313503248859526829492890599228288399996380235071538514964626841375076470552001288641790751617663109430872514917601190162366259801482859222881828650952723635897019159379397404739312333814558027681791756396822582509028168886993775404775917700377975473721067982583614840983081418590617446898579432071149715247837113143029119623841449643469005366484480675982883287729520670114944337298684264869007978951443668815582361735383748116891926174760384132523522006424528014922220764085087308102384612815147927084338950281797613423668619317320492035980324595202298762832660053926678414373422573497293592897752993625212975705990972991017379239651957254993854853605161190471631747285075666215022916156740599480769977652791661269952537609741270691385698107388311623793412691206266644697155499698338077463872056699065854063644881844630748290898012023866758309124509970497915160397373677926858569488233468154817092661882935606021864971653974002635334977955859144285762108461363837955016338050945340651823401375229667121029824876601509411291913784114646257185569272063028747991648093339361667729445532398194429330428873382273041166800304721336809204601200975512422885968656118575383016415079238664412874091434182972410192778983633534812300176469963637619134263072193490911426012297327185365680347149863124265371836340684352765149089710895776701610244515138073394715552812167128000870872250041941833052071614477118445766133874699603911262113601498402687450148030998190903741402337646818110365001454570827067211828758061881426521300825558858518775374852787078477494004624076529111128094484910410328911156174105209161687160127898109564453332485735956930542481860370119780585658122358753001579706947707669981019887318875097331819578578332507162795640810362248441534335488887566163757941506724076520448173215031465163939243101518949558427937674125248384593386672475579544786571973050377054776646065358664976599439635893049689086491929200437029817065157288520046296802481305344871165197192881618868348715829728999464960627773618896042496444647108446200694298599178889664566396219829920125199316390305001452121669699320047140169798458655405510612043366209529189054299986740423893837825511680755743969525058618038838549958419435203674549140848433620927903031129977360367147135211729090535660420850306788470014477501455079724222083521493499503651833153638713252821878214409656129432459389846160806973991203689356401214874014076551503219976773176274281644974537988923164180207130703515862564828989446514688322455497872669340166751850149120505272715452584986871054400114705832072854694885067680452095834896355316961007937006916261967307566920139079790732534658476279935818614461750253381332758102853349986473806733055897528980339521931306790098357859140625051599502011341320594518094094064503710962679433565792293679558772447944310720721938858667328156054139515172758457292743542328014940882944166244394049178903850590409667290588239647817951181670673597391484239821165088662313021380611352981581679051581781498621660431167239035298265791453285516716671090516090589657231539067922955813234309724773326572133244275317840034975523970272017143682789245496618717096755861188651717319782199567686472552372200765637985488005038171497604222094779052225215410835248853791429056340624166359048084825304299908012161207856554299256552481770154301431829993618019605641929625313973203244674359784157960347519813747032284606536828124670072936299549478432332432712192168652587694248915740329287135829291977020483071929722730867036998585321625588128438237496740240378391776915085886375948753515508776717973365874863126092080633703300521106839000177261137663480591370044510073675291593812470903507534673762314356922793371722625452878673710547682582992186133883328135380054214579554280921250362792837989908197935900133935369574591729622270638562010962424891758437467830774606004802312504997314907037253284634651213135102065507662629851610543860991172922453021141538912117654054394292872691946282945941585863277943386476915250471999945428562190352757079031035343420162735448947336704273553858017021824503624130964904203670983311474262800213157548528586978003311043437239177903082364725873050235296947161128907250707744110155347550951940819352274634506251946665961804474558611713596644435686274139069945895972545796229110888380888145789438255403401205440104555289551424676618816379017707804855660238237429299499462919403606783573910854589195569432469411907090698099889823159152849379921742838641404286710170259781157173216998755337143107520206646311736628460246267590162191190369833329395906602715678338119505877477859161941943342937424003533298438235859423923430788896364342999442644945270229891863096563104528488815541938872725230778985370213874440987142376317262174695012535907723492170387757774226427571185136756615038488312319664564220417070284567418926781434096570443857434200962749682077137234440440645628476858838383338702534439912164473338644589910704157880029365445479367641824053873628735782401220908862545950622586580171551410095229966770762644508699835026994374353153225969328116773621003846318897819677176015039845206397236939970854726774827731347850285862730659424183947598589608255825690805564734915675612089825353787815850587039649805680111178831520250088755766504682471829861688284162808993525419938680700347304221099875474088357184655018760292775507976363128053286892657969774756274541264246026682810935893743400111469632267273937199664813611652528256546051372024282960410257826048550815174057987370137970680040240003509166870475820483487972819583159192835359538617184848330463971672328650220591645891339515429492342140299295109785045955735669864589584494296765484220282663514737106018305132524847204398835570132553817112164820264294231449342923193165513597600199567872695345080246147395471242881166347380336256980756987031025414999134009023334877540558595455391083262825767299847474296119731867111908889125772943930282084141297166708851897899871019437843821927716069094435935340313548523279287298506942977153311569758211122610775140590550603197364557508961506802347256870548355562330548487426202594487120901065196543476940230617539108698934643714816205754766046001885833018581473018084592190488711375756511121995025256443284321724699812817179965172876414092909273923067179286540027422536664331294303533753864260984240733264408213122632987787352786955291332145187860611364814170810851836138381731492873035730406485661327295693667700225675264801349880412646142743433858540008613073879872328075252654520822880901193666315095796988651413740900902120080993839578436050379138138850656976358427870894847720612432351228284472542372178883686637920047540393440065905340428130024413220857478460357314272786274171559050200849973712246680375195175391047559361319746026241207425764193268083245805868140192937742836802098873071535904905233212114070613914645013987491456077293194276423958123848057331074354936577244991406888534080586227516885915810939048793210996120040071213729255941805704931895528621506654921745152791950812254619232355485195490496938247237924099588351301565247113895661133301265327727899131514964643905047852319742194413710739822272905097222811271485936108242525186543242493007434187570535339616287720138263069073654045581796899297802240059322667068310721949638736235371358794025201542010239546885940473768462179854289173659377698860110021723844299069910130963798277590845957838231658890262955044524078650912399168607569179502279713518402159584767288663153794155482441138440416869490392136384736159292023499485145462340120843995990438374033359608609299661496570035734718785104561788862398875114185440851099935839172528380717092384806946830441917635777284731227605345960261464720297507521667753840058428848305740848428669240883978168777492523352724727599598435891345247342107408992128652668950478736350855940140537392752099161289038276444382268722030122514574342321071623699915236419003007363510368971986868064208381130571259043588120740420511062282148564720857025397895777258208019177762874952445568136751787440914362193124449081031512393613930805332871397272457036624080659168365628420258934165875833041962095617374874652996777565437824643204293008938555212608428039169763537964819647596879826771768825364275676391290830314820397388662086642666230077283953402590178277847453708062935342572389050000032819255298732575105349410247673241356316610587585063588000814550912026030170582713815482618878913210533659347099647588299739166015210787111457664374187808593772901106532207832734998077608125300717164477456898709060277829681432661586860402548899690298217960131005137053199829687615045729948381249377491006586707383961076860759641689941901326639442302938440375380990843192867841485672714774411615332631669924993414523081537973437667958873490902922013112641139087136351530727793933137757127641672083516493151967828997716121790043695113447552224104129756156385391792585840528569726202691328440769268536055504902493274971430164688554295403532221209002436775740515275831858480149832884723303824980060242035139819001403563881917954330563386521821333755231678104403495868184231580303556790405425438778709434552442410563866219822454206790774330706918783272332221701791961339438807867258286195606039207601093999702797088274391777633697622042235736234605308190131804373454469589545326973960659371978980350385057649382530338116164512104819713937479989838515653144019401911619420346936683038986484019991070844534404270719061703431055606280552748353763311256119880922213147775813362687435164512071124605269625514019467363492567410448478425672000044960456234283742971571138323720702710746586477722664142572728445355204405764182096179575983605096082114036416621632457630593840156877218860825456925685430998893849472819886130739137436315143724983330027157151393539981401045322655746862588797969262015119365241304752812732634992012049265629741985573996983267906706772740677946182265746693139500367528041967735983377283499961884113990716761658987533068077051643062279979346196906528997413132405182103291859374664116192979832816426428618813080986401360496963160101820091392142238593668863026954832947292854997073971033012050278228061849844094767996381443631179710247628621975198659066128167106427220833912530049377098779653896086796291532796622406983838689772517687303035136353681646454572534836234019090294945123473456209087273361085559108395018140808840802438566216467955884006530984304625436845173843392367251942427380478556384447383363792124821507540729755065641565764684765869506098040372880631666029162696627680806862405705291443335008230260405274751756206138291684377402473748623190993896023834079683404289712430657866983791705259617114698708334892682576469941394472064613625373643499302295771941276777236470275746791540422448715054124727365318582399263351903588230009090087534853556974787144615359257154102674191457695495833493215646977937513497878294224838202885540367507797601077631661431019557654635575374722925246719693360730628984336593020183690610838952105525080138327639579295548754654272425766511959689485855171694843302981126549622320448527220640733106047798155191202794086619429070409059785062980266151289878855911489801978712631411582084588574465186426773294962994044050716348597225994565892609301309802483919201733742898702453719756252064957622438908589463560320948925974423714252012998516371146549849741413724989055111239617747015214460278282566015651750772996580640167529429775060502230344260775688207446624083204990664533282578136350589562174673233174376528575542262687436503333499794129250013332663052128422540182155689214459802605769007162788430731807994147035539269421169710353850204665314092274102886908128596282751533429212464545906207545259637247465819951190982973163112446035241868722975817119398199783912054617068583564458359126336012502825527056669853514545495060791705189551855257855025080304624227473416325731996263973047968311485182285430423216749788151275379041663603041523621671753348157334698484978132480844201225661250671430794909351438592145972130685337724694027967701985300207294129019236483897537900414159937039050362140426478269470861285853227109502916927964504315153249130360821758842983494065344328510133945524803264428406829542798926052216113042871949631148259918959370619919244691784172246462650491518593888614443060400006569132901404675639572010013676228699719923893810060042552294744097126823604796349174057141928141702850603899251716217496897293885456680623691026618037684748814765875856832760486209677286550526926650713690805213477803714000144238092873364455813413796753887408238822975644195330038294628257923774658702637186150400985985690470921540375821481842244843234991548674602831035152503357441599882544441387653171180892821601137524634369211464671243196010730879172741193808634502567227428086962531159614974383550605407991030030503397276303913325893161815640814055306074292996706770090480606517460910012187411960569778718251751039858300649657894498576718794187812342557527147034755967121045675501619521996316159320477368867279842185988539607361415398773062059433161422926983115173432467612910170947943324579776302421077232895244925064812595253220928614637789509854166993838030907076415461972714127005073955655215456791764543428984163662838723513363086029153937668090398033793949676445606819962183188749620485025951309700044388702310989752257932096179534746203997414335416670153704324524131519846394993866195200217879718522192201559548424286381529773788450809229420189882468233368002488842788981726944999978854144777742541980368112288574448815857346606904633447302358773240619546521134618856802450128779596999953829548176543882308075137457401647792836635981489402237819046114724632156019578039738342842397210981663030361448311155398406906916912488718767737130285205982482665170314244966412139621399308139159634921291275375866976712472644783500980431973738570112138413322830507879990977320456561291307368390080387365076798029038626409770618404806056790490189073916958171668444032435550631962949824810625960282870474989899815009417927944983971996337094736760547513841038731259221679901375453900042936013360543640114527386115997913618830672758090552224735512758189879154173064541335153890022339079827602837532657974256766850571320598067472706004024639520489176326874017837409171453655735330034501576317686651680156989754663262327213536998710776721039547892083319843002535502599517074332632280019189139793194279797353400489229670218000630357189303743495183881893186003382349948353784544380032974941927034873114686057655016112382827462126463663300319763089357464176285506239951899497165505305134132579563600561032343667888920262207172886640497221312600750000499123252897836316907298685716617287830690060960852435820282483624541921542165464687570757052343644848411313973517131285941553349809646164873801079822556204261647877650570969929352497158394588631766864679937617449637027265544838950581164668857755219484287166247271207808555144951864687265076643196867585613829809534794395043514848443273679436485987058470718486176699111905151798685366877793285216699998488020154253052389990254881472045085561256284004854815524810632713387751500260486488335477659263629475509479382688402685888175799714715446179210224999884060320957972055392359192758663444514336750736916283982074808762595475685160708150080572847506763162064705321505509122693875912989629703198366030108745410207284470885988314175270270628220890756184135651120953865111583964768228981198988715535094054225181393491410492098602135246521653718037872554121618289837482508419732282522297556724148309281167911464287115190951873179367279258935928958384215487385288409395546623878694086525748693462129196077391991021158027173992351523380636740940537253924077518383609430017164334893177792570494129536744503638296412645771085608028946548804388259390740239028551516677302711011356983070602589671464367722747451506760211437821412929499798345460748232719454019130639712301210892475969755026999778196049705527969320664472580554191619424838902003600844557302851720899563791784385620919771923832658255717779601825157927480741289345948858800831999990253462980939455920543473680117332528053065596990344198276988493278326482225637966865098756323796263218747600338468273077253843842488236893007337864287228121005775042708086619788239213369519329792362750488633967361613744319893596558158332312190312196296839652543248234982275840211519030416329051183843716692229840446426643666305145118870970916283705334938161915853460702395838812139187022141479362370401298436483319653869350164196832303160397906329978382547640996776194815468471261591713383040825189068716974045653000601732482706993917186882993905635286601586413135843038766979607162743034781941879686084337922559011657011359325754219576501326863110264491436524389561288579898455374973215103496604665901474460534406426175947047845102324881027344875708012224547395687287630820935348959550644630253063095262477921509511408968368005700748165353889446670020471896367405483839802067016269448460700291749409850500066063289862569594601782761433247578222271646894829598140556760051828109147535563764569144016334359879071580966584673695594514796787084099848951360808673386068312082856033887035012248275522629843512140717589743648297178811822123776249909389885770162342764212439032015034872409742870401277668005523677284083581165696119764317071803566784306384791235876051613676441605605674943562341328389177678048198934224829078099075530695782253397685340015485129647225250142605830623395404441468322399797312138173796273009877248905560434919656628543541748305259172195862207749136671586559803189614015109001028231042746335495055822528415713821530476455832562365402304181405476974688262784377014804318270599176771480530015708957883059650270511959669507234201148723301984540845531062423782539423992963974661673539801255149229690750230707566170550371269372579808615552945124526569519673532130977505622657570962230132699966700915537083421534620743419506774977516617230621589537485712593831868547777671889201884185040339653499595217790536506062616899129390260853036906843295555008920135453541547257788473218523683643182328850849291586786184821483420617463643569205532027473011763418274001311807493059340138560773080699013971730755070759356962819399806664509479026529004992593377581887463582992803329324408884267319628253094143051140829966297402898323680027020469899666312759971367698651574589405365763614819425896651579540714994865349040349037739270262621617957564673853150755035180818798088351632441110479863247687719675142321562535494968454942341773821261644791505104784618624917764805974724217158443150447763525742756105604130521147048613366124827638828581376631863758170425879057310378566532955913378661172487909780117047433910174923436492585612581393409115568140563778384131714280995918904412649997086503077404956550141618505581282205166364741722492834728384042984971472618373688223243431449004176820027051606781972680820704734680808674112945594243385770193756856220605133120200217222476614596927279018043454212756961339819911606997466446496019707422233620542613155389866219054311382289566397599666127930261688534431534011555840162517149768710838407083576729392012625157735790489833714664161199338064075717310801082622861609299016526648443881805583265274788013613106449716979995691369203249002755920084322341725157074321281522807175667852662137533510343597610465828314676593630607552077982332501855528974475543172595872343554065979031712963498866256786238746841571868338711674359444414055065690113904881441538274184084809734247342857642145934564473442708654479726161569727771285774424750750919421215358004992379761727524309852191552321858875493830295905193170169606161427753575668554853461794447287729923556885734263698892353879653159839324464696375466545849375115322265785264864599835348998384471644052534223890039276951182277780610637278023781398121018525271539065482240835992455960492863419806402408613074156631027701509714974794065562104976952726680627022408501836437262965782370752102915128610641761314083941348713809354230526623156250342664237565337005026008724777799155949298363198227608620333499859453763917893566436815180084078111506129860598204286521887758682171170533937294310821197632188850525197220204931354241702928380539482625491607677857931333844250757476669395153979603977240773538876436487002288329134381419057856439426224868244329213625269450071762631146498382332702043190862444511914442260901448156332467987328518231975624001019991969543767781476012866064814695127852495001438250641281812651184980319185937930508288200977795395660569166570434483014084148985902607438105316697840230070759602438849056343308641846260362644223938477667159127084108796182576960563360044478670990765777408261452188870669705537776675365596106681953044828673979577921139382780392813776348296428438072540575567134719631287215508124336844755600750650525930996722265566855684238426717977369654017434594907869267871955307360603833840387140682687871913359093756182290124682524282223565489357663336787515095891730775539101220580677516286462116766955261683100393267589570095034870297474176685727599265040568853976651910432393683345980100940615180376106032529533201637158937952570912864390130201733015122608383176195679553130624181594793047739026127328396607558143151804808108039471996081815344164185033572068005525167651737753166621552999848580737640762706632353998483826826473309589817024620226706656995129846914208481075586285799642140431194661997469834819944536816615692601954346340956730637948412151928820538368649006037515317072456056015177982112653357737654915655103610505842043670562457470020404645400309292914143625019692802940095845618058629664820390923326748960015855386615790730120969178756538139390539247381159972608988294609007209916816584215001315512991623395605216633624735057009136367257407247409734817759758989443540105064031902794670604270057798421396439980233618083269355278708847643316441098210686175486436222742420888424126834367899883266308372647445346130445801800222208843347400065500875523299766547294309298383676769566668530948104609191651990548376055697051363609433151210347145846818953255119391633796912004104581939043373816584490401434018484719285567136764193091136577949097166676822192139436363177607540488941600973431538129402386091831986203734073133071440032463785949691874684128863756540063630101993799057159820565674730520070150475101851870203249480662461309540968066779967028106129556766871218642250868997637958900999875735433178441404301378359434000121095821576871630207110087091612418484831143504602336520004468844437874106765078776817862122043368905401140826097287083494835250528046895066584803065210611920254358126727388013832500543685448122464697496350190193373352839371617647409488948210780304151912287529128363077228229271289732641405433289458048359434694829854656396072207475557484022599929499901033707920375920808233167745976151545929576989208368334782191553309713479676598201927397221792390751877708386261701519584734974654466105710297662357740240144620644520354379884268314703993560528383536360084091702576731717439957226218638971501373394858668762330461550000761690733502312272385087992422170506193695103875388767093180277271461548927730769991268773938733177465357742170571094320798186459414943067136523011656454769152332174457869013473383211397427992853266763990221391357056350614650544685119371022021898920217769629280335352419564838585481460801066705599261861137457879514670140771475249572130756701743134669695947434118993540972524548309250118074968392152997385096259781254637946775178841529897791716121560081801184125789469739236141864615122186259048797314402257173087225414229802666741192669440208023843449672920990762670149111144179684806588210113304877298706598360181575931197157807255431188639074125845279261878424566126012326895263586750287158314727376087924131596774064853317388390038245067564929646960107540459414231498974554574335719675888457990731937366898822588683871333788264056981677343243318918871106895025040612129083128482997445582404229313120565731594013163396240550171455342169325452215905537774116045202556830874091875998950740504441917195545836130969558907712628720343341290183749085320759487384744345362368228107360258629278607092652643199536194405967117546957310682454197149885956493110704575985580202407837744345759486895735778269269949049835305440154851715260551598014514960365945740551011393824450041050829653267267976674797294496178575470388447381495664155075008498992594923928118453237070801634057458055758576218017023745269675772286797085048952946048318546598445668046646888388178245560396559738968426306129524380746006244696803110018172610974224627138205082327506698462548416535217841051315779665571060293862509207316272856542395517438486295830113299949235305781906715952214565404864594916099528369506533184402949000412780254161512359168445587588348992791683004586970041011243359397854472689432772342845758859606507847173685386437035221575686185926982448445743455957709801358578795975199845547789039880230939093142961228580385311577405108278088128284111347811676645065675488651870180000821009908589640077120668305110002718018796085463821199964267074380936649166425649850091203106872874325519082889100091276065902483074583062629029420541289111332037522551867735042927699836190397479195265955357042691223911824961074768615662565074529638273310380101914451221570311829792478715228373290613984366042962948128110492277900873628863096842503914117279050854700346984993354445470362121138128063099229465392927335717639354770406771198364278852494783048162209219180481660295195622684891761052184741753397932053015519074368669557548405904953341632887073201705698721761344290737091247504653952229112006790634561830357905182351676456781244801869331565959238501771408238502893676443990543456714381041930205383658159611118746383299999201479213828392111671329175720311000713335823248309322729913923257249289390410496353858880923143763058428724462382771402096557925215323334252046584658148470996390711330611300739074948768058035369422764880336786949358792154186797594482879955894859212290528512941136944553514758508988889863752059093247755322356053266467514466308659955963671939690161730303317875215050630088709795772220786482734216052830486086840608596788344026347556863634697473984998363145064921149600447610822149243722822539063018794991588190468565271203276197030592983715534583971430705185791740973214347929215832623153579272265653599075211386579863674143819951436050600934952034737766137402503594691133560727322261250991076618272549803092051441808266843105765937994423234042190763263058034566249478455404912564139199162119777936883646913375233103650816708329744304093345238815736653864011141554467002544929951298419732601212358894743827054516449217625275614606739944407097314738549727141735853337101435209908975222261786604419483694457548820319463564229790692581681570103061111799019043967920032367013647932790687081219950029084202325993706927343448488338902513557558702109353077474814242260827800022235358591660704825989578589715644881192553496497409169414456586357620699799996880973593105829786745946788983256513570057549971167375184225023355606392602115760625481575087063521978676807390079956398645815621053882347376991865192675102804330433708332951200895038157669653428307549237542856175488454978661375989422725951291155709071869096955543923296204236000549287440482501104156390866308002492947183503541086391313818946777006936511667163840446152927862682544096620044359635531719586819227106527489861225283985329569995645270432734563434172841672327773036629249453262922424800003421875431304451884405704962578502977906691747955637805677714818198672705091768365036818710854761175406242255701120516331811641542471287386536979568110714229072954518458323313515477278843134115443512863911267070471751374468663359711754126572221117979982567136355978655803710736055562800579172827684129360966526531657946504746396409136708269848434165922451622061316492153867329261677153817133916837382709436556805828468228010147302961917713632247484388291328751865685330165859500235170663690771301838246415731508372727808112957099897064812397422677820249840498668714265930498292093380653339119631581761918063914299621236010874323116062676829428993847122053670640399621668075661812401387409235865537858445609008376238040980309136453419065950332815164170566347007668526633238211550318643402142392899693618310758641023760367178609414423897928227492606438726558630925157634187332710898524371235661538585901398469991808020565549202564592695494522894173691528043974224857622784466119189732730432307699568973605997487570451338981814749411714030633592719812357583688469103652195847124340182639467011543440265052923977987934259182658690252928090303613251956590451145325263803286258941159990908592279937650286476648003769215039494068306741711048367214531802723431654376315834190910061158529941107495767229824574053224335752761117499904722704731308178488291911623788185291510242820385422384428302589683327081616147457376532698492117085703829396060542507278640437819669220120837365366734466237064330498064945366383196933145674887112955423301741571025538124380930794726450416007566282402843053677713234571079271150623318085261839302560345515440300265462210593554007393920684438580936349205684314029057379623055657961481495299334949321134349029439863083105905035925634893238247937171031295286832267432713733531673141521454787081928364355400649636810053051967042772023420218520313845933408577427757436454496114956193358648428234313415523102196193781493460103649406652494088831797933223873480470863425869380607820583821979104949666036520601340673567594330398659220725071597497247369754468611843457228899382539613129949351654055929747093731602577148419046522198884185767787434613964920882287302831416695979557828052718765202304874473057410228461788475948362130126590505216219976174022995575778278944649622980278046667265662258808277434446605691630183279684336898112644743200018865548619470987606521999382505029107975559715479024505385210213783428626093947992766712219350121073882243189479790931463885553125157654136487022439865719348078501929530704537183298210958861312488049513151344337357711444733574814094726239023430786459163496889783700298789534882055176323998965524878169035038738701693401227794468372391873595955391741285100718787639867788506606536393656304192627098007758625996713275746502250006524955857313857891118611629272205196340181747733216135231280982314213007664376823170965422745725746187171665419451587959785190887598755979796993692893636056367614885300442762542405031706536098680298816967246820584150544474458466435157144770138371553000688989560220735444251982558748952285699111792829528885969178407060624379899727865125425819401938463004545787027287873726534813009541687116395383536966752776694254876090268273273655073166310467431934961916233820413196490666944315062304245823100106051645387726264642547561169411804304994621762077545770797883767961700121124325624901626396888821222569200674755163293270974671273764708964313522822369742511164363394814338269865916276137928679058870840169640515571238879205729648576827336363164641077321669676817459216471503201766961898003150755390209236754635501540156352271672946903073868196479978094263149997738007009476704155904495014552609437165073911124657234862484293063859724006627013639697807388247888156141378548044799824270267770188937492166243660285016820811947568070289101506523529015284415172794431073902716948981156830890921141988230648959047553319097752835551873627265804155593163889230674862525046164851191945755897237591780425662210653976574921435430189446729883543633755680034244938871807049204243537864136941766474504814137210351492330986588471417372956328727043333479387245463594725468730172287813141192918992349994383558122262044625010858037733510229619509832938137701518414085379170915614004743250758745633147519784224224941351217560348319053896826546877518869402074190370806818209391388698382570747439491255082834215397638153865484608081553319411618420219472518747597561815487607379621668563350556610011906156859176172422351628406548198210235299908306107168163655670798672270953123971300600408429197843399395188752481794077240182467537411909703216053761382076748993688205045137967840841954522215577695186007599355169539645497798855596197537576344739910804381084870117532491546132123734026654995073442935974318881162941595718018180078736215323665595344798582565111473563703315670114105886523273021116040851084842864008781346899002569062899455635948666795819383760085684264000727970944205909123047723007034774084297737035636033617652557836237146484389078935634014395669533351539265127891002978850848118728161014904630556281496453700430816505727195705651683249104509399520527504431614595330709878978876550408681336538499874926533611530924159325543890874204101194524905199811972775836832059870774463368533718596926964758399819054374077371905367377339668678840585237884840912951095956398249681948550235474248171795762375118745811654909368267029695152519181608270263398076712572434646340281949384567664682137269671903771246009193664595476722912559979027247078084922084990367147271024045846797941585125573138378720743708113944078631438187566977403297270259563103044515798369704431460834878801257716982898043925293602378880858992448557349073257688845595579376548129961715456875741073590131957862105390416190138646107575260157000166206819455217009725001897325401542860168773975214736543358279434215501896779448320257568327450533069765999420931404714856552145392698999485229742017206767319618485164552547293492278127590459059276130365546388632104658980222765628942513296526811496578010192651901515905459948245702171570762520923645395877104159260412882724857491953225035540399571091477755951913617515417999369297795222350858686711974316158475131658797745605091915832774254646333563768003908168517114058703095873955065722368346058274370969377743598111530919305632884549009381408121541089479322188968515939010301311070440851944487038664142250624256880604354107334747614525814906599974561563668994296291461563836093247387578420272941070113834840140512328576523555439330031101117577738766123214540299823454907972844593211923115271771930108084343140794031453282555111968556349392685417454003896435553495934108384677309732262220104302172027964879599473984021671982742477386212680228820739969830367467167010228021844235320534790823619072902925279999110770352114307747261087450150662628888654748946384986479458916320165142799447210176722628368236089005901813423583990433816355229545894400700686025248861539551640494144214623027051211836678704999269424713576491868562329151708639449724334572460822444814361379222535744490037095037554871763352739953493205020032557063153438071042478666943517502555386035207468967810179257637840738496884121582758025049875514365569634598325836304176002028823411431934434087699246721596687075080324199918929479391041366518268900069120696112962828178670870263762185465519131651118805224914846840945401509519551446908182742058065241674998379294157483140883594640924166543318143595892756050427653636862284220476371657025654130207462101892818354976170376086667242223035524910626607986103567117995044149364184192910723484854109672108499505511155922927977054065054871720009738665117646557272987105701480813636742269092458913589754977998972079431376329646998793794130445934141331858478002034508406818687165276933479641081253146246506994360843161389397615866843268405494009583928754091470738867540215394418009959206610918110401143763849130114273499629881596958863601926134824772834631417375201268690845769210989993067833378660103773650670996705139269667956627529071250237297268747215507140253325920523681706175786361551004336730885014002988749219550779296994211628129483555391676551924251355239515427891241349288479351781628117092059164261464463873147057388180107911636084450331200412257964195868558447953556104473757921040319348428222049774885042743273860434173517976393077572052267275558077018457943128830226370888104263263975391923133826291904472338854592553365157043885126291058951408015465040553791960163074372950419448612551883092495241094461957245422825332413995467095986234332060892338547359921015315064222393827506478031342446472490255406936940002600222779143256638888976583473412579019518196289674022340166586424289212172275880453021142792382104841332223732537738417180338150280871074528478241618805455364135177769453876995354613314491475304792495881060566720009535755208505985411844213577887122054155541285241371540654871325811625041942280393647100223581876410744995478889896795022413280931927744710599129264881278167219216213950832250630312761086125728947926267867815552857207004456025048965292478930312334464736891633895073010919191690690843214176754160842603436178303174657293631990322075043187599722016213096060447945139569810126275747588293894029592903497389716254518643381527072732564464440078817752437005560669025949206752894389410623044136524513613447709279401826565600579611094890898648118139858947614867328494688704338467040764341193345629187251993246168881388043767339361424136049665323532652205328047309468302664134524703356172489155628050616339165726151923719986321764103359611146363280468778289526538117959114461014374749165744468593951068860417258486132757018238084564444057278264686963048131859974532142272220354552911389497448962933588018622538608382781974230491856030845869830271505564004587164491454418169617736234583011393182552792343051406528928543215430913705759584987989113376957215106477223160526430064717252813522443096635994040927545614931542921884744255967502510673427621239628550160522045219964485995379580941868057769184057298716202631568632880743020619574870522550545302538287666096258970790933909771291597191536826856700914912045955932932729174314044169746628208899945483996605975353768903015592663752107068827169987913790445874612019372635237263711855991976115490709038531594490863059987048237607604960692747208577010690921904467610693697289651653661570253415854189161115984977437574740922781604275599972843658034142512333359005912594326733114435192107373625522262574328694518103799346925191613343334847793440103460921298290166644790054288051169676612700942224200453110981794661121381064915595573101179066290984791326154184191856737901031799250430638096425335986455460586835231925599097657208627495314030908182990660679026566988725744527269071429564640783725385323268984031642922164623771616976585795696426854047690633098570127658291559413163939644446881118855660477433181445728636747757015907439706779826815733107193217593423395013636551103467277885807836128631104216438245310444465738191949977863329432556742732882640432552917248693179150026399901116899926881760991721278654200027302132771284395998224854974440493297137099897023565041880714668933520187158289351572085883653497130770340322021069647853867703354876483984559894142487296645663720110494134472303528954244079156424419775451450568029776804077729723480176813429843926887410354427532515822334750575239636269443895416389767984106158798592715022259614998658363158199022558439585219732831996170251140024661156722646337383970761043014596968278610307482529640534315933806390700919917641397244602207395557278901123786911647255185186122312333913612135148727498543492718476630480968956960747891629504691765127479063503636342064752695551411068564522662032474395081213306565171626755551118192702096773130212089575147576353592816060085122315244210586666426959523598059717351182431017047817047397086254881665902422570937335824908801885055168899570813403603059406286495926798748135497430531835381937335652166646055189337393057264886401016425393981090519504917047967388442028496223400460535750095716384721070700569625417456332456096997165914234941598208773804055491107665942700593536481564721256165809109928566175343371419064063580719732515549540282977368125756950930682849520722681672639678200406862914819407771719228918906628056734614377601350012993618190687768172310243895467962153643296024829640640412574428834727773069362602266455584084460430315809546207332096473573415409340562398609553063359818210233200205838514293188021740693290939179822296878326772211269742025449015768153285342336665328734014354484418718592019218959684719863632316884421782012086254035780159924785216439662313723097010477645473422568729943962217205138452863160130888956940659526264323671359479036924980679809116523864902868234008543598266717256535306549586054892767848026739683330361005935272827846552089054507112241025754338515182983511716879886775926397047883919886774993578143303030495781874291845522141637852310893228515121850632209431486699133248036574972970518080970606375383193791936271696722924350556205987775309283998303645249015011089183696461080776137284627509831647475859923927002750711773311068339641306446645399343279232190096130809720778685875259695490534183093693084966090803128470168369967305620146353008780429998771744460595467439240850569800561363012254355288722963000794893641466797672792972644827107317597684928103112448725721320434888074558731401882369824281776759894039139468309196101802250083225067606073495694039907533120755878185614720104610390695749627267367025462206322312976838298934039561894542510505550395245494467790044143134020506426962145212324787441047977305668238963232041800039306311103523149760613560853139573200917271912932361905977368742247030845719758912947162636480648908055443303569789500323867448192051383681963064523982833430828668655927110831089750193035829982913956437794511958291287806636640859208419797172800098028749290447708464390799237592358921766505449719632307048265901389359228747802564437621169214416192247063085014479268192405420938476547102321462264618412266838362466356439323509080708560776459385781642698392471951920790118903332451467007226477046654330023265962319205936998126368840973306658640371570985833924686797538046177998086522639168611680292652615095214533641770687099742367509657066667833569578825553323293315732081653983556199866610434473817673340553295881554324086333134209064333892070723751505504958571921777189996966907876530024640591340494982504733506001274732704473839809863414597535725768627697132945509108709999922488433586500870977956953692764729351956447481374399319930320036154625714678278213792026770605766123160989663963228374167967996160558097846188825203177818224310719847099138944163026192157354330355275630072670970133316797516886004225017799814942097039619709166483934362411034019337895871600351924222667246017565407004204284842196209744006178664837877999532585765972818450761098909872405063879736305014925774208630893745035558983586569501905784295418802580984542094258557088959178760634829405651010623407813583611275494425798259188890169451864971236649613439111518325760396499158094426954599751484105584442739588688744572294874840187326665931159328723612212698145654281200225476056006497830477204145279410105387555238352109354167895726101706993224491476739148835105964372097770952200162096693202629098206775668091355781909395595273685733137775241839054903959542234016155140089554782360474348005673327832546387776387681567618103412351448625955573305195762404124780409047532899018931264052745681385849743309584607396252326890951802529042460157860010057295611314150350445171695343168688250003566083111381230500534608339899929582416898755718133383657118527306334776905456317773685734653681517563650951824762583042567159025388366318103043662647638563047219428500490307584891563799125171403358808043515834929958627321089064044664977249396141316915225653083596910015561981421557619306742037298283740284326673726873598771676092414473642204392394859665974943314067796289135356049375889470445564350427049724541909789045230271152190616294275382574197905914949430491296216116384596551492119874910783421472428844188253284187000620539367307780529133233872390402607389056318549633096529304482300317355147305835446968468915312981386201369822714737382400494960387082317199290209342826759669868393273631734123035942759193271542277988767076208077848318010092080861501041849017777334547790214977648768117886696703660103773874037808251459206612635481396592032221484759146707247511124049133343589518659150250246067791114708426551614400460077100989461394211902566489800728234035065129721768591240613642903997264052946042336135859154251670293414857104793218237411399439158348341157826658232032452785600539354144540856100517701290136643998889576719586980475509386033695412315452392115738314893756020305361569584325411791482700812386022991735051805075636070285446526792679973912144187420738261339233553436795843211428726292875834789533664123731980461796492604700689791997788480717737424256794013781955012621815188817940798979276147037846442530973588637684184021257559722244361380385298179213184030689028253981063640216799774517247676141473122608480613557247528234778341192869972566824410873635773604673354033766198465824798963932527639472663195108421433226664423448165024761336889070176730837121818324000526188317130139939642020777942821843395602875397573087801669163699676757599765091448421621398350595367698579485036484282754767214085513535759182225765496538969261642676206553685276463934703884457772970308739217395573376224485888776411277927939914386738229481540362836583138749561679797223278753161702663195021079412215839299568269259964481603863513623447002457632398767075806847066075046087454867311464890982289346587666920188642228324063030097518389170787434789064708302222371035192553532723326848382034653455478586965014569082624960530802481551364197955436394090810790836866409266457317249203933715878861170394882682814720870899133383358658831644144767712057726868724684928788902811333278539165738834468795454526581359432073938642667184743956067851809690796287478297427652946019702002160196512059050523037274742069143815189158230570229542518078204256779062051189665003429375579441252350986130829701276067700080043986997695125437884899718839191905302422712602333094290396878736628831283788379912884135470139337141461159749913206100757575117939082394457695496467085625395536492775977503500394400386435054153282031298719312576803492489059397103180991839191224748443329382107931544442660167905760165786946356932844595142974150848701066545865029618511109290365413580906643148798850549239613581484741075717249603577260395461421445005696658373294606344702865777163139410452353295708023637190321296957807296359082151508111939898606962395428227021579976430153443248626740099431909904755540606047384445688616185145334423396092215777418526092529709947545489825277374065013581365057178510066698738065014704577807924354928697125868066807020585239505086955744618898881647295292529903079158410710495951003701717245727429476625499649466867255173190306923103003536375611062956482379505057184363327790968628618987294193347149390776295765381779749306464552183003657712209601336176960159386023468951613545356902984015828877985448112984362869510454796547349219085760411526240630897692214147669440822213525840509806347744608907185491527031871219441994384606400457164098742820590938574274393650938779409839855095349219346836758089992710515129294099053925872969824606271889281829305084213598926560634099629138114994016520198091500884762620190921503785908801001779260194258586295372507891955443017246145938104440426576048448053483228979818193670550196347601787373035029133256625261274797459539335917000298396721571651216506164845762220588773176802381745833204229213839488569589944437639051613602932204362092791267940575662043636153655483710836848107193677254712694284176230900574870847471267285930080621530262124013805079197116667897098664097209757427153448048742082213079596027495127041555296924514403850420571595796214826529210111578845194739641053832305369509751751495459379298854470162866970514635246006828204082483912758250264344429400405776180696249731614370703218416428492133496653783357863223045508884100220294596439021507857459377614366635483524356710843630099111984897248372368383573282682172563633131486263858283038942495588240663765928138749854432785277718087167375973681318700292404790687793408398201302525730556840235601653999154786404430387137527111745700856521019843694752985013447345430978571519500555792853816798753466182786619529755995566654040882109749891197463459939989692843841909804404125456372043435853275098006917013113291083253850159765549463739019939698725403516598519646015687499702771781495996620263673663695079260216870027975990924394347483731953631713558444591948071349651366734874170099676408361076515985826502807087155870127342344247900286626760581174937948096588414738766277178404264166872088933192994457980975654037067876107271839919761627370902623505734554480942749772574751060473328204330415174230467930555788606050452984578073032040802885305649148902652954929467663289446439887271730051919108841028186070117264151879510583548495385088424711994871156259863769657613508094786994534022627449238863817026451745544836145420421145426122989614707212269772331162457308079781594564738136193940311581924949850082495696806213960676834802569707233550713849310420939606720897620397931691915846288498138379170207872919784602084007650968411874907397895213505034721759387657757915675721331806398491427461515584191809489996975383127687664330841609697967016071308715002584702496749167007329121953817418627562810121018102195539492854347383571932881354227272959604231707805127959962477351423555941322042559854351002792047123696433580425233207406652276686280895229377595262487159831422964095207335489938513145679378443853377363149080616735065641980547444426992970909229248184386192732275111195813402057983440195160573247221552840582133579095685375974955850062975933098817223719376064906286184178341762706782522772336856151828378558273669585477494399498340379268283773813952994848840824742450855386504063964702166426426782498398521711851108658185254944821919847564320145390316378593585868721226829606093295423570391780377374588754956758012911032224499889037396162522704592648442517615377014188758310272336356824110540144110506520459967221251477115858388520851216798097409282101733362219139812557480807675930334280166984898680199083894457288360360224238177354062546784767001509173159264807744043753410175976395797195090134425031247150137251010293200302483677339278498238797487959884444012419191036681410118863795376286783165573347626773234698634703617236265081163046157484556984487762471279657792716783796112296912402375267580900168655093131973491809631069559567886041017955860269568281189701119861985014524221180783341735086126899377498587172911645072979685983342854671984264292366997998387755403798593249356166205402636598282399962913778187695546334319916840637083989463523185026973774442381883113819800708419155556138182595757025320907082535239631755236019913442393336392095645454134721087986187922185012180057855504066384985773299224322183362865418156807936563239344724420256762546824655967652624564684709199166559926390205096211547451227393186927447469894479703320141023731859434326817323671418162646129646219289672018730686388194185187606933997487208411996855682586402314960306589896783235336386947223879835121474645770695617675040723902557104635327302129968842602399357336416142205371445521450846262350332487654826648765105575178874910176968667417254950187541501144130298119346086680522172265015440406644480010710071007750336437866426865159835129795042970415708777609156767165962404322930998074998406331477689773984066230160858523717859662223285546405383581958103119886897979302644869064518272799881240035310135973727328338520837887470909786658783599146976379829071911824421100721330074090771431325664590444783725731656095990202811817251615018399468561469005713755141722351739571481641501751615964601611358941922921232629902192068994234167229066907878653375802942954549008797350050283122809512892081196931126152940067999207688432028276837088348209855909585482361772257930504556566166182307775095217184652808925396618844494707973638248000985417393052494734820921339714599792390457080159608965467956757738322306686693131171895979858896266166339212974281272082129447600707121443894522983726530896133096614656541955038576306532963442751629116602333222525984483384047670794022358562199387913341855819740202269697488829245584924237233797278774203095752760206325404210087103895735248127185513230131062158426896888504638606773581653025096210839727225266655191009972179540069494937069146678605452061595394159842266787727525474857713497016189198698539719362998725300120023144428072666780189323759769888933570295812056889044411020339464697617330330428528424721400725544061878478181554026382010052374637846807341751903561291673802335479602880369676460641205326635186209345550050953678244861105531782604322229805301649953848289340695965955356269899532899200445334198008162905954841897020303297590871575846318581158149714038809852911913948046091738892154411859836382759367216025024177176004766779991488747381224868576201310663814150154895027949076031997950104706772456376531124532847835234943702048648401812056062261309326979337194897313608993227450634205191961975859300342874896886113032820171460682848181813477449959384642540072908125720460170885625656329883625374220800087640003758453012553931772265610567364152022507305242582219961984867300793974539155557037763167605785997965735870420581439001224850093483260348672981275101417604421616721639807979480488484067341095318142213522825827834379157631491302093213401653960939370624046121474488547172589653523409823464921736062404621880956356985743567952346805125408937892455459374582443997823598319858207640303496959168128650150979944779955202803867670367365273558821214996762660780513239098287464245622927332734519933801052624100477934078735114879713381024508893253924774117427891109269602872653940697636229418392091288923962023761583005068010417929950858046381650672055046296979304860952782961058027071916704629538418606068422224902722766046250332664208607674729396709652364904268716581194215663090473053260312695708757615999865642161022022442358462227918497272502110095935681765735730455146028473265472875971415367321652514349591072297069698127223875646988302367250477744385813375932410391947577480230001531014761678393603181655627419119706527966662324241671159509938017003826015208649425712308819921475156045381257759553450709364401602295111925120595189159010242681194829365629828258964197657056293889609990847372756827702480500882937074174178177127151687026633794543063081359964367492668119127191036726973119138090463769397842234399062937326721542532495268069334433847754421172377606732102048949065776543359661376003278325577806314387406055744237793610914394424292345886626416781324700493502150351978156200349596059270635152462016821912974918876496479333134941486615361586578556300874161204536387481966429085667763463669108861772507754886680991413182031525161028782046403059853267664640933341247217153411333067458794885642690201219431955326300467362978056612890881228411080156884694634672348850006477101462949346724497810340792332884921011178113157525234483479592947682421422108839832822198271107573446443025482923660663664626669327692413672974243126357361198329328164426694119478855689237273280379087225845912675507525759695885397942100753800670929240882643515530382435023971222064785835555109356618908135712568073192597295463048973193092976963158576465287345857786637236256454408288826841833346154641938571243176410182276947245542111796896821151972624734274457452441029782450625893364756285492204149076625001546001736260895394565042693689228077553020450533625055414230295859600000384888150022013344399198601437665796265827439658149156786457694470967965830801141803914627691585517384863991223337266436670894433304022425477717411999008565828370762582464149360488458734657895881496374760546555352170533001238208877295596339938315389367302360347118683545770232979809874450543551522404601171378924879040535565696455544681815977881259671191820552997685238510365452749459236756731158737089106380720873857570756622063370817248353219589121420958373002860783617035101838230722210127346010320305215808756795494491203350927437750103383073338146054399584773160163785428316362242926528667074143303603102995320705413482999618325657239999165352194141787510403606337953946854575380151236703949949908802968143895595150572757135131310809752917333101929396976780212954077746105093550452982700624968094411157119576295885012913443963993140855482535444219589852465187414801358833959340174856198177741767073757291212661020736192152249309080219135571731513779530109022466787552702311947228325200215987077497608481488772042256607804981470328074309901798996789472707044960952778934149408116921120247465651769071550070599613281780019983270474053676385922445963580023923386214731225038383099598236952496255537892086276792038194065309958417053245610864059970758944522494168730825415562447270232711805909270423067378040871288106703801355827944741696349687399740143207355405634969695351398267334472038634999165599369620964400915053766589154638101525369039622684075388049904194343189111280644474801219355344491496355984092001072565342549122926033038546983409517738478314944763604744809109587567160117012270890698749302162934944679633868643646850179008208097780359936624095615478302571027276205677087347632240090541467500512821979533033236012893587450346507354131502218953827236225284626446674017226097525468772344157273282062474937202741564531792030961869201391456358248681755467176814146924198759346303176887977771226256984657277765432233477618898617918924410373970374008991652268659838979295315027390785465146819691196918688030058670059054869170091580158225920408178967793727603610250290080312120995218887804757338649292268842720271906851590865843765964873393792063625632469517482360026978586387935699544235353152238866193733122714976517494650285571405399957302649053129357792864554536873030990210375849594168143914276360690637826235179945253638753170423790872922349986407114208625600131368966657244284399647583286447056370736329026341412718694111312938753956551059560654657812683282441763779596525367711536758709285531003602207433316165087301070179238280456209921635806758277328851779726198106640639651870437377184837277752818889062361844105359170135300959646899257728227226922029727233988720104281502529761935298876192058554762470132137538142543819513754161823466035240447302889161602689021949748586820675181382184484856982493052242127038186069485973614614001968726603414265778012499012347083489599089966361140727157440045332547840030559275725924075081143688736570770269021173566961724636623458888943449801285294314858604710247506145780446314659090253938008804382654255405251740353311487279771891232639203315356516252979984199548946335864519140067087066517524220631336372290413472139662952102910511203342817762697715213988032653498862051752868036506888771941528059696782723665174922747713449678706342850359953765569889394176484525697782390191037992329070849889688624295432812028216593182664833336929390984104253968159237524835830830532011049942038860743610601337989422020500909640669543674557329309489882071316453907785691191944182749294984618056941120050302310729944483092315553036209559588461669010212449669725221126581359324338475771255121969569203768171065033970102897153619633174425826642050008621548270951805900773512215150546514971603186881402357386526579743217186754347128489595588562301934732165605133692876336232929461282680599702761924979540709377831016049552280748742494993552905084851900558436382760763898803704072225152235674025251431943799268002671918243214000456848006209151345576827069187968476184738111801031157417860794773679238831627217014189930357596235833160084082603248422422563940997440560536526319691262952398405974785098184296725486593348870497955623104719705981097087802171875069875579353557520787669311591249027673873667619563949079606759723335744574752417713453616879493786057119765533348666698147541209248912099904131904455526362857846254372920617326202238578421253891763266561359576210708248024571761489686753592698518572576143721834648308433486064804823987131887709240863365768286860520093794057397642164874318311135416745553574292363703519774069560473128504068637581959084135201784512677876151579027092855571318449853726239185042362421095419228232869700288204577418377054773496496929759352925175339361213160362194669432212475612160896773436217899060483205822781853041988119315910687346602717434006446102531383748277398955544631681130732787926640344650732958377163027123516762468906509494122648236844579901715778292032716352716476289045243866732244205697617739456930629283238130927234917445638997561279101245781605980637540844787635535803886567220338199614218941258343755491639753894564835678879614899333017642124858585135525244057495920401109878104888192550218470154849017087809433990228602800305053574574312151671771543613168754066195618094118622894242640836890548438501116436448885532378925992848409116665458285536320544184500132517446953411946380809940673984298181840300245254527959587491093318654199696755025833081674112147090647983097571143712182146422158857237595406670011672955885648593402164607471540837803908843020395079655571623218484925883317037930434968595381468448231166989427096804028468043859798990732467591230713491071309893291365658360425997839113882510987797008422648553632331262375574100510301804998820953931209753001833567632483197722539555662551284909475498696611325919284825221193974083237962388373811568342234941779317779651091447486571541395924752378094137833065290151376585781472147715841677953928356067481726049923177928070279553100558784331115679089446047384526792629314648757219840977314668170818291677517809871206027821366025383580049930540291476559484413781211444341976072511919533679808750707766642906533043914036201047676523706117313066634377723313028982656708479069316099633937466762490663197021069451646179002410336857816799776417581349037403137619430157608726620008202123973530127619693658303308772853273673147055223916642624780062362387977067084830426519816639668129790585102536693808061647605117103550142861192788432690257762555319198924244294424104142481978620093839412298424199935597735223665097462630182721303694323690660638622686785873454057100556338798091203473768727269555529006248264460471049803553463403318461211829222739869578727523411530184458184391993287657813861164829054295537832262978956572272766758694603348170087096639428143547104658111572596523373499901216617821752039750590578941912956607931551725607025789416242271367051061459426067819986535903623200955372663349328849650757184742297764510442347953014089586763315125458657697841764309813356565372620397988900956891276859345076939968965622129907433450277396650775738890361986583886171537284052420650614144247602805518709454576347634187652724912939938999606760240407041264027503280597196744137867890748223492555889835023273542598738440326006345404504090449293670758693110592809739187349969096461094386696328166485234415820302582724776392592266407450308801549816512231234282588072982051358411822789784025191010219452476590217730002834630459145840831557375770364539823391244754276587516952104827365033396725964426508524683533178014066569276512351144414940313029598485186230506074108146283888767645329881699355990722097580067584767981337975360815276190646257565215742607161061361910708803984436261729531946262628719011243605935918445652509357938265655923845660589076677845775018015423200671946582368275805524626622518877966253409033249435981137545869754049105591918129641596912749528937472687419656055133322932814553245504981078975421547453653663101340901812213205534860427052822685940724741937735687534685263335537094234999309351710731507154766827685805103053831459177216419982612651122562863369079759393160745851239991801235082168526871118228931277578581073771643038056582156711954883032615402334192714843302320345022578917755892184419764567323409738456135346143386890151497252321560963859865991395417606580432526567001761951713071009476963170618576232378653825658481172118126341222766798051010276917663299150900951920684606259873799733325395032759139056519114537147197573273009904995365933454117877434997207987232264457651793311631682841456583352950102937019104310623774460604781799559320644021881341776546549195101283510164701620808588875984729327689616882555077066945121858090694256124801198546165841590279418777858432381379354457572291565241065553974078563667030451393976913295436555288844182642922514442943701174435886595023171320215228549910906233498368107561448480854591904605032160704691859793276755636803915617445334194429473780481733751140910917577658825908440699577434734253982043270280076492599279218800490524921996598320702925022006231961898197390106067054712649550712309196712244557194456648462036250566904115231307847244677114695677012623844969850741879814361346400396587445815131362154369265085075753938555627221561314556879897736650758600241792412684884339560899046126249476389013190875547656113742524541747849520669744914294472556539475343700677711816215085502647165782740575967610821914330188203576240114716339019094282608083603066761276639867466062204339180652389633215122854345364734629708667558423931076279825235674165068035228855565444046656739706621984807089471775437437319187946905139048859197440006360565259963612351674868236363117386011793629479448495175603857716818325199487492966236930094132642396497437733454981490594659950291077527040991467953109672676686183853845689868264765791586519523322745462413406959708869890299799502986617583827697361930311720516626114853647714770629484445655245707423879253990006917439117762027303601873624567636094166256760866088736686900576911369343913904277857089637603040705608128737543892992673613625033054703685835884100240290942035882589835471059664900800171795442101826011461784531455933384538816534233861257622191802307254287751866999205975229512325821560926982821326110752504638851491478266975991163176513328510875025799616873736248860515215715629598458951771590977810705789766894786583374109564774781863692126236185096017396667656166747980318096334969402745889773037707270730645162254676290730362348877925544962997120139979470396775868477844488183820785293285005371687365667466398510537027258438704402856837829794194602347817656728108210647809284139565064527623131061237213444973309328394345819851564178128889707584758053956104170588738454332259929257136670622568350220830975029855706918140672598588093534433995019335052460626384451236919239385175244038043538851989739791478491987595080674647695983361388269845684348622262724351168389275462097569523732377751519819708772569113709135443846676371239742180688745167738289525683062861319778682781203343707157519707238601250808860301181122258329927328808639535432482228554781074846943815648314827587646587700373950894547094055975710822156285352561688700915823639726489050026910900933295690250257591875657987208937493383340065501875494452624884829240828310309440328830738840940212033750894855971601122850061997472429156348992903475682285892652636539909873590175488375593135899670244805756834676994558330657950452410204095513992934648696014907677013873831760655148408318914663377923447782825472434610728136745882761428579993073558980858327007074413178672710673830550770523365381363782856153723415047093652932115148425407818776232005676428660943078429195493092923409945333462321231326410508733300456724902532836972007948603375329758179534839480226552600660825611497107972211659676656675803159667408506002234562548938859119168211205721872326131756335906086221361086492026188087209471782073715571184032061870699734650394102522651460557326575655004295238286801500554605025402599615724550281556200193397893020494007973846539594545673412849798943530647230586601274046044003944260762746550573715465555489935604741509102531273589246717250627869199712157375885752269190157988133103747679198926384182656258295990854899607859168038010121000115778624792600539858640805837552617812865400854334356408930559949351323241794626316407608528570765912060634016121038179516928780010511755625678214830494443635838225235625336874721619384694780303050739909751340282511780910992156729704019652126203497279638954201742912704735858181087288506441585477821749237056400453341862303562020975053865502294319444633937724404685534087403880129462254155167835895494272981194865706103912142641689819514064823462572160078191893907461675367435886210615576295097322596843759965424088808483782715784447343662395724737873609416392635054915974049431723612378509811107692083764390251588667358450067234006671231690049381727807990978177388064863893020982115187052169752402148653562897250168657617140944808157704766800077530870466212119675829702849689989169477642947791756132832043884118442023291938949250871792998773321355114624168948475637213591313100123066850796814853191268063808001511087903130661851376879926187934748943397905705940900752238372593866369587558776934284996513988252298138915361282553185853764270495148247959772462955364169432489057340995049264569376790530844202845726058565825630706667314417941932886312812424614251922372162689140512076195802328632723897686155711401257648276685262327020346736521507199625105858232464240483208380178363101757407366898949740435138616907995868164258356772333622800037760455790641829052833888506430778292753221440290109874851721739367775718912969870327924834872592607359837387550664502778362676270037944610907915368406562366655995924580324961161400348236896873600263924157062041454469150733722349974879099146558427727189636214510175795034529946239412069641920632610200207440439647067354964421235462697924138154273346637582957883746321115935874525718376679177264948740158591165613970740718966535056747296145533566709991151479783345139219435027721621588869142831374523864121132416816494079755876725432988242693199463644769343516784114334673796789466870723397540158243539705621613082508309696538438294840421390127941753188251633407927436083218074915319252639726313563976013911012801545368324987212914239455571820881266930988972941879496499586968265948608384970020796284998097260105929509613874802995524932284615391627483395021206267226388049891667546793536188003246489119678375924408465850619891929084306999349144634655956459737132495498602393615292788215378987357394354488835872563049148137624086887651031537778190582485909098422597478038696258229293766728424823836800761821122126652729625852864137209190691100133673139378278251146118861910698158991085229897701176617546413441831879956166481790435638498648743821857447151257052263693462801979432464060678843158384781436944589250594867303934724476569867073813149741907780777223341846166714909770876311001642803264990722306908555787176601802639862702714686381229026525628260579935922165170957216438015832432109785949503219696986877515976806418062047359939449210173403979637639352107859221914513441480738251777043012583720694676407766314274424305775885604150464012503965374755970689705352795699301186404195565642596915059325446444025060004357471095201323025317521070106350336446727427323276731059581756034134252149352246124614573293415265033521101341198016701243899990087948630763396291047310566864471220296951609289500088905195696510154604001675422391813699895198601274356965102019959944301756415104895604800094835032394235336306207573512668418044909644093178282658891112271473902164912121845819325547598625965752705297394626202419933753431171260892712143478580242695442936715512100477693389930336086443610066344817751789647326335127909333440965776375415229950656410077733850844958491970001883442286787267604544131111067183635121484893320435519987997633188957045094243091727329799327290157960080653169778184480643145474744401991329358206671167722804410117952884934781949696489570272221337254957434962070607619926321275901656376133909461284451278042325008543982161220754828184534247610008689204756080028054591463466675169020684876386677225471593061797880163897784121570790184137055710981924572058559760703013546108201283319593569787280346520957450914730413065392905836065109719665904463609168924364980055572830748585033027354928374969281511918061369242389918211991584964405034088991877304453222974050592925679389717066528772971973678203711056581161687497876392846564555466492000843751416938559954341615785886978593656913006906443995521889953894176314229937674575165364000439184791137328155252718060387496338742925561442207510896867520925052164876722735170429454135288884814869686607579070453531887400325856503155005386403794659004976584623448092208124781884463865042294657016838270594758644017568314246061205909447413644369324755779214817266441572127379678249540486741283771990494547896762351931249344837574180426733638970951467981523643384769136513911101243461044420883955333818000374449765606463773439385910018832610776942143155786473965963275623956816606961101048456469762143145163449320049832824756609850857824615742237882458064332284384696061078171172645524874462991331756290699392943814275508946780073913110006029464579075071854947741852406282793252188834054868664928559204424041701318171345082112304385532694590739893053229847520156923712795290092154018575249755835999744843191204174158092678201584444501138343660367507754722446366882032320984837971418716855627692198719618889399471988088845332830411064275843531473308331595378149207353251418869543797757795951538486309997398045178723419938173434266675976354781901784745444884702067327567189076276367720099023780506221328783855405550407248575063489638092181263356306488398864766706615356899757681251331327101947328588432080279094441302104277441016644841676896841789388841328114250531781933482553314273865429805309634119158466600979002517563161428793046876453323421560857096871718434456217133086377390177288598403800518705416987639702295402998835774245607703574137919545677016471923851692188773207216034111933309493345625151693416763398062479011747789839535699539937270255953712232801268596492537828114786393461201690695494572656754806543426458043309863991284968653994051510415336581825109270623796480847004049264840068290058151848037917550098546595050522587025515071141002002389970791791941711264841652942474529858303711474056953127674809697681663545111182155103293508142944318774286990003855770965358253465272941689469801447836373944452716006450135160880046725525985119917961995692818283891458756443046493086776383914357410821211680005461109187634211955450957300974892769778739904894603768884144167413343147795997310494459490080276288449720950533547905725422312028539909462092204709849670725352404837072417250481664316972221642221761090314760405619610326330594823019607335534552199821569778714505027707791899253752254741867491382379182544777964346855853823424709213772016339690076403487544857794149586966722451297757687008512696354262747418345624411729817020624522060790607436866789198481143118836585450354356986893916194401406951092855426235465270208770869868630325286298538217982275446953029265069764048508177835312354392292975296480189634553156830041623332592612780865775153809355199393615865418780776307763873230801617894982555631409650716502874374441159252376291364387769085029900059462965406700981106459576330626222554836886555077019044503732845768946757409175653992139822618947086936710407875315222864025986475950089461476886372744411049360152270050611506317450283580240527419222990520037375829568830189990617914756725494078242909080400124565604491671559544626035685383725941835909295034148848767671481340457577815391491280055710815874843474266433336005366930477633224941295477584193940963423990450296412592628213775690380844233160078008507982843794760272943233691643232202384817349926750692643138085499149064334934089555291276037378979337761602037511002292457389005197621867336641024018475833590310983476572792862406051902697632352527921244471456426611658776811359035454713415244396304468740613647611207686925589389607012973772069190021903366764473394516624465110390141218812536820850663770753205763348246476474009406099297196769019680677394707063637564638085589079175777103405064644558118659210571859850834080071406101827010166314962350545607307415091328030112598154602458638057032677836689705619960444024004041241899767492294400334518499383708596694647418434062509283895660408803041466895521035074195499674294334998749439141260392777813153373730035844239593350760990791022914889176624039709866517725643475084560813067325612749697439878657035146274770791704286470883534054877856404140185850903587014274761714419480199846158778304796710112985999012359716560193359116823342615093843950813630630765997896404590903768325358174136321381132437954222299078505131293681637945279223001223206501047390743392780692551083598527743224258428087009705764273533893020567359683972726673444622386691711821395373292372765940532495102176929134201836225996550045101321268588917838117045183092368746467912885889037140746732602866947126446114077155690294801226369778865423476326069121659641235316229937231600029829515877049704987099849192172554646324390085509436370576839096747877162410189946608642086085235017630700053752812475452501034604192633508692662579038232830250374244691067087849184428095047604209626083197997039390069540593701827024803597368148401112239810015974128121960674881306575189905454027548013469332600508220486023121596653235367038727974555928134705781453512986827907899765711193559615710912593617296200766524638595055304352267543602971701176953442066758302209685247927477162505041800042210731857239682941300891462597515902761076671768060466339349565201807488775694207799472807681245563653567618216841202483400227428325706057490715735893374277205366457152416631987963115167881569092663758651172097005493230502640664654100635321555066655983396925113161858628463083971436708146304727286215251912901826015776950483910156723862423916409970228797308179218223781137356019347136784873899397198704840752021957103698349988906901631000947693359219929513415163845394703197160081195960752267879822043749178199430776664866438363501950565520776705342992807545284468539959762469295963110122131853119546572616162517833455654355835787926206155036218632398448619682916409548477365264888843233855455007454495079576900255954013114487468988100884350415750834621779552437305386677461995385675457665198748621123242427172663878754951637621903862832201797209505160643566282429107645191234531224853537984042646731479714989778396928787301203685586795712921409566710817258788963956315561985854269008822558846625629021635972656915163588989240972995701658965592341524695542081435773506214901178061237552453158955718302277400544413614800036646225117193165536982993617061901737361495760335079414618571463468408576714981195412322192163712939032553581081041485199261612421217735958484589653892233827943787870018216835488216368040327111866330233266495790173002652449725978527876607858771024491424808835168972825416151092433698170304293066764520279610925693957356826632838038670753333419619582224020186642017993423221376449435055136521668420883820406690258906796373566278127722147533806288933682350821859811973935455621104332251513554108077008563175652320721925078030089496510446266483591012686630704414774186451044479985471632260530619824083837995714251860448220182498652296018895342475376414815608396210441871284467467390002876832722854265161178729240663947533884066656497506319860950274662815853829239609283021017418198717813559402939636612325149407196719008340793244601555495517455416058188526606418058997824744170151252064412799333736589208844037152864106050487053032090084918930753047681437698081924109253806825268428310401631528549587953580127888781418504498224243311569427296578719438532981347711722208841233832035428558388624063434790628331710956598447889106349936166036280737776659886233661651822120033325926735638265427715871446532297582767898638467417713224216969756007998576841277569726329525421746734283940490115420522443175597320628682928252559340530448825913800071438752126677343342015372957245936563549724743507105541698844396377339567818269097700692537884635381685541107386772312815034516869484375587347191478679374756018016269061709116189178964787607367774233442826941655182656175526674127638283675094423899065154230051728375714267820197103494660780540866055766203610877986954180417951661017305300957557867752124702219772368052791053501774593107878772553694057690545596314122662956184122269745709994194456672008371133354186406149469897874478709512996507563403585947079849644264003539402064174555488656180707615158181667110275994475392217991419979597437207795452252778721314779452819855699733999129423928836136162053376593015186684675920792281814161318290482809337364131235099249888764970011759188797058891475747905544943470727104646109182107328384927862529685430684207936195096611153704490648069918111340487753800683257278440391630472130742088590369790998771815935253971627613829423411986061113406681357941406988160982480751026871722772370595166768667264328259153847924733265343129964827590785381323163143966144425499270223807539857696177998204837958008613995842649960275676051847450787762044182808161957921710355131490337927974877530929162975085388953291201692534658590202112026955129807870032838556775415639053722512725118326157854832164167809521224063383819459586633327007547880068867186915847250782055571702688869044186190442188227394052526848206188476630733331635839304358777949554664223924053911993081043083877499546122321198848067438690590833066507969422807794406050137656142471870713210149248056453377232541866998677553164704629185659049642217823457001137724655407721142610492542660433498669467873203463030504342943071451598959886836307254771488905916083439480223834504399854167162187409275054483364625463473502497974687554161410702085876192884186598021769992433808429747343428951154906516274519370911785568065889071766608969242158783253558245915329310843914633914448817110880521411665713880521072448096525285464511492338435412172384391986929277299293898934275609185127616946560262041948717729657068408732705150996303926454726988672409667444226351528796812850897563270778995067700705750892542089950861179434119156536021133705329025626908454952361850150990325522885302042592309067067891193517548482932920940076110326380186437789797577383357226977321345089189016095376773296350282928973742895319804276859608122148411537305203712063176942107465067286364226934369274916216773943139159741019759017845235219910055994337635633515988668731575596646056155247786312310194147117038571591281303436129274332739034503339020568072217913328165338587460932024854602996525809626721639043402130583936066575883642617672891493845272089044503657168615377316107996943390752032661365732662850466074088456248837451285338282142053703453618709408283075565073834138910643026951930839080512692699800956065893959781999351694240054818526239673332432099674791740820560062169351480215916385412588532762691626523685639209460995512210019629036503967550248366683964627561399327350323406449832012944220978989472108519563747986881639453810609733386935538086578160454397663386091728699308191275483998330268507306080562158215340363485435216496061241571120721341159217898141835986501313250620060289971414130094316857731655375125210746035739499008434662275282046121230231338291554337095605949058051382004843638981746513096904179484610990704170862338426561283697213752942543458099333336452987603040229952838414608407311754783136396455810865900303139510376511546001226332168016292693794224972575189589606236321362238397514630283899271414348772384371543985928678316818473299762339073067236977620650719042265575237740354598895321556054621565836984689984181434821823083200012595184771442708468420158009885206605654605252946993749085514501716624442177499782543722548097418186305668519542457902029336266754102350216398327713138660417918453586083502941527107738117835463980777983396916750596502861069230746046951574220353410988778021051889549576517864112659173338634587408133888011769568486888840615810472766960893362393537933123399092012793284172272571730988183479102800482614869659528620501161106439726617789617383919794407948444534822461842393045334399100608511302736293534567827696016068991264491014485225518084101652137611595028855593407462892655915393904961672809893822942402825281141141663275656729216587560981046147931785666970994578712392723661816405850890181333459627629851984119701955961556908542585724104498086503722408752867182106399600125630921366657791123749650679360324175509249996048034493345603732000424341794274666262717303679005985068566469679566487474741933133849682062883779787612293246006897003576456288537184820594898780228983098888794662688264802724128688346756078105746042102552756910078447892962858751222973687228228639270645084522650219638293487957766705448610825406787376022827948440107627730638862776190949838980032020505029750684343372386587857664765876948289526575780523648898653564533631242740339895228093236861238921251648427566191831872420971078767132419668296331963069352010132046783042407334314315118985857428516942210714858154173888715475634180732955934679647348064216870041514930048007912552419129380664647959933816092359795250228117725581663081966956900707265176798884275463768681865812309803692421430047439411098832559610423156146720152428192288993302009409012726606396288858080396641035442643329982088290703961690175434988759233785689212209777535042547461297767436147520910582957115555245460495570641587051881395179936573271874263806217697636860595033287624335702106483080631236950610913192949761916936808727118462316013318813545274458901207454183771051298723169844818229589904955193595714566749075020292921552267879310224910547583560372501935944489199730256656345941557181542976692981813057537407171618156078575008116347102074231238596213842279200654726180905368503740685732932027038454331412344775192181440229207957482689358128476521855864643664121663893914099824336732414679437969436436046189414190325050213442742708146669247716964745867878842887075644180728578627222605597900977813359527257669578846823617685542089676362584582302690692244714015571039668429886985832310748539110247899946994989200188565069505291091341935491739218081384997189084999418016070384929246394740478793674854281387641344773730061239704065616030630790630910756469961217889840993379476794402206143223089441244978783304964029555979164901531128701588127751753498575721747779389581528064741950815846394448753643719963476972055374800423019317522971783509082836167707333195608427497210820463362495260677700967995180420548538910566477995444471352442501326834137444366798088056747921932882689513773529411528143064450159908783961664376029533743852583178073978604701217549652212009291537711995015851669374984381528676166422405868881952613708796795351996304975682149319885357472135498477645791280772635764091827190194079082337827335770283246465853000210963861798271730187868402141810829868201392342634677054866920329286435933038765397063507112045387575047664903361151601916325015424698189123588505876567943552156299237653329551797455059723555303914355849172797471511770534160673107956763626085159547482344042202362267739822055215162606282795759154080597618944447203288413145310548131135140797332979436224524964748424903146630351808800521797640884785337034900329585956021768297312078403018899454474922663411933012733158117306583279723895656312784851212126943508758040060709916937582281908445761912411093054239376396306813992439437294240248230279154791539194889730077545777573120694588164874293300148867815958197659690849958881898814262134059635848209968366102051746818896974988586958699174508256019501284504683360050508383875750092056243378394829717046763968205132420571712453095590596752625428209030522358184046478579825416001354076942011080349959882553044344474182903972833791963135541702689789929579435578354818584243866264582024732588473864904719110016423774650800325694309168336001846040555108679584520806779897168082046491295442899431560049081984894430427002238241899581958085547940783349281362461976691849402674808037448210933698195396818876806870203381626328956252988335566197408425307328077671978239727942973048343692591842204931336714965666435894904392688717211650680892316258962399269815911965534392112411976925268441122358356895459146271575753588047833550581470284868628156828263219607817984411787258516919489143876068817893731097249522174905975644568362051565014792355225808015781493791261986090336294086212421823450645575096797647577366905048885181796729680491284577337940148652878803857423663121540431833362281441349280913021281468010349012535641454539216668404259614222246034793642781540093593005725118775851003200628829797748707737472177368548323427341905753112936135244823627752666213159357259357453092720265007781217802625790052976031879659263005310914095325423687988892431089402202676116290515058963376579814981439622537634225181138757021035572938652427297745646362978815750325156654997754992945559498626160663972380825071599339406668412592730837458886946018000460135603726858685587236481151775976558006082780532611150882839414030924623347039554395473949773482860100003182445124405743694320445822828777263439305091767028883172077863636535270015419863116872660793869095931501920837431036551601200399537831241759372369037032877327313717458024077463010258200915608655486056718923456743174367334252356807296817114517240143015954384463250837801424439318242658163700760062839309676174777219416106212870917561075110315799527920460652374416867865787030045372789439105796579385623585372658802756386555205182565667913507979592294935568898606825524129376177757246796338248070342318415263892040128383952567637210539669376135670743158170509625590756547318607973171641286018248195344181557751655620703575806728807817798445102468931170225437385948794748844350028194359084374049472557642354456347416565139799908412021632681679767319177042356921467897155902982491250770972414545063485375376810174506362268548611377191041250467753531902674956785855275191747706373918464578641870112573886837554640987769990068515606895592562607507729787200084048020290908342166112150216222740977411828223112039754963041207217843575262206412005570558405817289730584597062152509281824877368255863900755942016524393039142265226958559031271508232490973320940983696274644852083522979406325375513503357154495083358469018710169845654223567158711182131544207774257855125236643672664198180922057742597875843134429029873851846914986838009596068155796618624963977754460670319869781718728799667197343167376252005726965998643867344589840912462364610569944993703021841752600876622723838451278735373018913551765306028400218454328711179871981911420783712555728491213746875724884648750028856798117725699510205669808538500632776007448708938334684509650195128207931858445374443687537811900308510696139257672901684585135802773716423323913426449605443968565748896599057801933385152204824592993310749323816721385643869536926481309791177909836712513467142587254166406632070536006932181276233396224328515743213715738939248783000989885600196440557375688099643581729553716066874428986466940793862251077372045980076997239438141610258522768865065453639361641050514483658736290418498882456697514337013456601325816437673109255648859828821067351072584562658700140515874678412795075536894645734823254744275926686951236041448590825816184096371599622985154529502813913373557955838626502253055432722237292611108806356783212626113338818896784831572441096351282417592138962186504607702197142225884086615422034205162738801502634552923017654036221373773535181610581335565677263086956334386946114431287706060952655304280587394932783413558893682621666118583988008746980942694925945689655213354054061763720091007335607404969770030095969080991541832050094055142928345701610035037316774504741877114933969006971781275166048732365075424844700520607029207098670702311907974212839012309662551059032290432438591474751339302054919239762924020780356730987352094989523556276654352229723969693731013770582748001335799922845782437176466525173820095897671876113910377654103668164010647203182923563275741853678685758646650114122534708201675877887974943845289388805695440261571273502323113845465976057095394930073572971311714728877221162699149681833661667218822280325322032467632778276828703985253225361882928585632948956226312685267830344171158654174741489944759404108977908466788469371708191291063925962737761384884538864493498265022632458042155075667228257707054137227073845184603383970083921119354318827667708455298216641647353237506374054340538045337613094828546327859646263608353693504325950727069077676944005389066877619003502070041071755871730468357747732744962570817405830162721270290984077349892508799929332038342811000469344479199674009498119640427966499191067052685861835689336733631352155175108680994524483231279810288487813328127766716593938726891654542511560215068872841562924174637318507138343706667463289299526288412158682537650006703838970344652998989637494973515790327414418781428350885676944728110992148049187584470724811061515755533969818666568492128540671785370968882303963739651376404178920756228062672989561207474611806422464827794604200675204232934500479509825283528677748926642041926034639518298178148523296538312909375051259822475724984079780479558345658304916458849863796174771295543297662005902545625765038889515643238590929128987807235381375798642587372739320197428082518038706488447386347684893920923221939430494214469015210638816720647398859848295937172295219613400594519493049577456562119500126862514673353849407317878170666184946302011193477078658534522457401159919825175489727827394062479312224302624692543467914262778443762704236231249829188096421799809641228010098893041519226123186480066260995592393950101286647512909532644335903350384810027839704617326637666674754810840681727729037591373774379493674322750936921225512977882146613646648309986690526481381128406727954204408282665106270894371902266656602463972680933583464794697300641986949094532949549342444736012657576680593627159494089536274458718781946297317995503745544320047163867533782174678959480344220535597733323495898422782059582752844842732391577278819091200283183577225830926407592141880610840568369173044426137816259625706960893501975472201458273814974969416926589656800966207758404925721368673385301889733604083692044239996729013592504253708583821365619190557625341836842463875930905690964630726383974346779905262232374545695579293063131293901561642148654216567444747094112387349652446748354898379030199819093098631030976801503102975295577244648622529822250137021925332303637504725344207001133320883404915353118878832903010024447157410396828781298387853408700650897549847644296440108225182381010266194411693007533355086824336373572183485650484025595367044716585613086775376469729520691874584959218556682768769521325080673209346545008327517869306884884059712048782315973547042891060798331022489080509350501342884205291509659909326989918735005713587752219424716794431508644408029593630113415368897885145413033619388106104589887644368313314246906334953801139224754441641943907458472650304498407561303780271911756919023592425858968928556566184811140968613594836304118883572504864633203470968663789737045557655227846378357713129416806484049218750562140211490036372401101882493750575247279688682893746216846115664192249687822430018875641429941433112159608623814857629556439601310716850889705529702314245480237645565860566053623516080830158247528963270983807223365560109247274462198327588300888921992035655641134816461660512721747656593058468680485962824149707993555483607851079946156890090136388686036305705759779252643699255530019745950337124328336863656499945605147860949138951247136674804219570892100080230641788615620422418337691564088540593341977809583013708789836600232085945918491699837315234844812056364581163644947119918844244920680150147404293778182057008505180944544266558911498787082659716213687681854959590330041002950853087138117982945957648087276540177032821848109155526053293438618612402965046788418254626156153851939774398142599151969650302259402610210727642794048367833893967830941573783996546649493879633817696622647800103730240091599303940396703489554540262267334457903267226888902882116845381052860684556081820014225319842352061715940359457616046872569873121841766803519414384460531822637213293834410237423605788992987426172731209301333112496978640859848114233655140030546213738916249613024771548955348247149703037646091213170228285427083694434106469143201813346228693483313272153115699571773984230022148804812416571763629098998150879970951568131902953863709263993187992303674241409038192295986467447777787747884061173132879171885129794378298847494038087264490263827813908501150481464056683450786393079826862797172011471012333244677021513335712722383569845090664847002391767598058675876536498678375029799024608403891987261723421590584938346923703832010163622131204539158772947849351194082274344302587659263532797958273352900808375745761481901576517331750098017589865146325787994139850885591443790402661539261246843080421601572399253038543038608742116825216282727076397935116527306726306460806300880739821835685599710500294459860779955586959875014605980146882666044200422043254728311336500743156872500661613583946851635424104329757124621689745684095514650741031838829101135448030070422175824700988708592064913916173822423258136935374291739507165379853744179646879150590392110479555982867657875717646148217443493719723894177711899702308321050235577494896724138010657007429206141517426434777546795655845316544065954165440972410792717754582323595116931175118118799216656086827144970161806088388427643446280951151920664803349850451418411607571834362949849908683264263837125226995480944786083667139692479839219662932497543032598911134814355136055048678120472717333281739074477910726136318085270033150482651641501665467955801375184846071656308181862215264070061982523166676637131881755085957683253789295292651387136925767866844859523585283136087300392226685621036824270071796508609964662321046746708797440215844993971667196958979789486338356823655228216092670546312263509607360117616838904462385045472255815934982303638591394010494574112926964541581180529598671129311067933732316621644481600136833216112536186412850646340059773976223849749514859674404876255521397675276873867312806678091184405018774525213889215607598322126458021437629100479135553606028873584295588637886077923522731947221933405176085960308728990034211624935732760153990667844191987498921868285579281175161191884232053376256694567393141443132552444466665551744305693799120808681755876156517557444373486182842199561368165122436156133392935397506512478526131857732629994577194095574568158730137597209845145963127711414891333863848490109814858062825013120101846564506892588658208423071579835386296084245695662894865940646552790540061192203807418059223117062875240757606008458561602360039012280833782649552196540274726832851100430259430753735112173588906817577038143550701093249826432008504951448141838951136722902281770411272472281657723263621185750589997918214094650819094992983546675200305684523628384280079081692311698091049898209243745438616093374676366996285508743159928892829014417997169318510903041560706496057233303998274894458549719224610345122910570960448353448277271665304194202563476881878393530798140508355150579843055893999389662021149439945704505962474992401857718668565961564992943205849577169780918742990719953280431199721957082280395544815407312382302394337945097775739934598582296176027630159728420883478227263100546333046673304689421161131795965566686655958452926511188721825923326407793030130842793854521487577481020747977891481002107389828165465936669131144908504739750035427849739424463289387855024074996365446656896273238362919164087768755915818025916632489893036583084189759710836204948850561263505157260710840095621035890611303078705880785553838816004060326383146595009797928582875869852430300385607539328538907656472789540195077362529680813124750484787071624224493398549353344856090090983044125529472016015306083448969762214004202721692308969734395589440884501114953241786279007137264209337677319670671369121437233442356802203223000970450097107697071591995112166548526830268763805273322994097780619604646085301837763793247898385837183387406883897341657666399645623622788577407587139693416934300334703359011285225830860503381601753468649688934308936999459627241510253691343055280839042121546334925660699040238950426987045416076231699779854827238242716324092112691917955893111701479679145412439079643474809211828214594899396124134570738938547654451836563442331879470141737740142937586295515064704027602712650627645251649422418592712367442521333848524676384178375691620143730862176996825244784369568824973579961562512024853132236154926322948934315948621529558652341675696051120488441077319560314136865421426383661968549452297282529404889710436445081481989066753253516240770178432914396602274045641997028947919388605355574240462448633258215715144851906098208845938710605265047022847781620456229212049098179503568414151104233611461688354839967185177112303054035828065993075860964788215424854625401362534690004250117097583757556431729734829575273406802406539023989420654167269638071731070534634767145953533575135753976141838684336903025298495291768756186144776325008726597272925282938468659007042716424572216216826580647165009949135369991623413402277822480022588437624436138104670123284047462077934162179168039971725535763365375643929906265397841599122412268051003656264894268101256317013618186953540469121674643884541506455936752007321461137988115641828319679380825824961227183054119980151276618111379584130172883955571541757199478361067497381899266884465097832855272841184233708193676993821997458473625859634485272101517328179140628465100295913030486211457055422971151182253660532112213806946569242018713597169189333220070678805245513221333135028964077629943241335755904495699762618556551689397505549566994114331795682962553077624765556241820486733375752508425155305108135283886267755948352570259444470371837252266014206925436229002589899179348180821093419744950996667822173670500608255672461644990434716357180714401045064230018969661124796781640658424935397581656552200353377080034964649843077379141528640022364650596804364670171525591106157942495193248893483095468972184748843337371731017612302945418215398673633451026207304986664399414887865531884298457097397080337981035289216630329421870237045008774523162755957581627364839620104330719113277886420746770425896122230151618958676134455032716652634673799648516941047765608327153128945269059712417663405462029541306875107242328365309511596305605652766330921839901798759139775118188986397676120877985183686329512442531887349650086199463851848296859086152440882718740401664265481128318628709320805158907264066127608037390526174286030556446332595607605730122103640105968504826632204574007669936930732915226351661845393114154223521421511252162699716051944688429974281343721626616221861682020812233527131558133393276478799229537052852043521905083220359657598752480381762436371962270292075495213215274226980123029193420506979418316610352157709052953419196533288229314200815695722321014336356598337157826709059806339878218984554114125808831016032657052543457187078551143255790975983661622631763290968021302224686154862644583046169400272786963458622032715516618170764558134764876987620906117118014407258003148306237350353412429085157423633722910198258985906149097247751353550708510095373126349564433370633711692067949225264790656333471432898661666003433608404233505601404875647151891067960258767227526429447718494605685513556956418560511375148920345925683673970447092741232000402204548986455844046148405100512622755947287900598196083487926858251939668618972951621965272589870845542881027352116704570475090656251378271858617277512632376995461922610441323339534158049909242044239566791699030572240256964426734021439688206455404985002977330285264740066748067746007024700618447689724498715370769541890890639824258006594550157653801605155098426387730456673595093155937566351569012826033023026095724281924552904751407878298563415423792897823728956554023631886296125705811905745664675798244576462632377545729145324755129858039702958024065035486796393190776079245717197323679446250189414166716461683718138901941992275639212677114318102043037841489421238624142640158400281011080132980815117613726130264482023710190476500914334641809546080196161791518257915141242271267897123289244541756984666896854283041011124185645357451723171729712363046417338428658589853041151569103676964388112935816747546786241607157790639340017938795961591540797407068882070005026377717513302923150975355638352609563023462074277003609608623648938245397895633247125670902838251679080017284619974713900205819874562047131265402543320431873895023987465858199436128694541915050714797056495011499592870105302540351102244928058532629205789057538833421075050600765014446159954044326019891183888212958041963787366148156103749877942778124555991548289905683655247223987729112093258396140588974579930041979427222708532161248267299066564167077475993910960344697767926724943937529877696309401798608373204606355700974742235270052018974627980213071826258476019729196542031974259645894279139387785353922966442670470867812136947772278268087662208457401815630055559552705775338152221363507056421903692983707558359286868926192121960157206556980612950313799660455414128531498970800052732056010999567371763066167849651749198814059906792266435347308615156501929912835305863751666105834074372673369177466192195943871679226845947993216416746166032329355890284639157630790571211774688394858593646095481198380399690832466770917664540164994475056140398430793996965038194703809705253204288571672902565774786438055653586549829698564280740542241667766855898733850795653274894550439710246463219817809795839068492752152229422615789016601965972890056080697288837745226496032927516532359222052912989552945162856494150836961487969615582950497217552531922985237811782494027950716720911222280237075625504148219824275734600781649103925268571675318243652221919797299075098253863332764842069617673225080996994853479868882880976253411555198330228538077588447618962361577594190175468124870724306282555813918453860981934690819915158381258318389320016558290344672053497103155440716940642315136246238789811375126967545200229725221615651874946466406967287412004244100773372680309534160719343485885743617391869421613691978891259112591779232093876916935348103448120244610873701945380073726660695089977830358369647507549881068261095627398971449773462260633092091223059024316628025771348220866537427072651400609570351896693300901476916128323511968885339330603732658039401668973136766700342157539018229191569911513336746711456706509645231122321734810988368094158495654546945014519616820618868626410515581591484235726781290866677904117871594323306307552497355245387833715279822287150301243965130377189043470277340480278911732914023444624361715466343242703314449940503813631319440135703839887878373114746506950133050662516539313382515335663974011302588523821236358980041577739133040014149412303605764150171820709251922691457118155327225133907658215141397154040746833994199095742072806416164854205227777444576674911470975186416709226941786379497814875706899983341855422030735168299789314910003092854187055433187967972401999251909543004615489270587104281153812490750576102146154063362954632168355121190610255083702253740993321383177532726762408982004962467097427054897801179663860199623103179154590086769324453026076227393591354132168727695345030066651986113194032471251389768357837059668266906185413127167469187962280892762073015193803928199606693013819357378079789339435506226088108882697512224872130349106380098920835246072499145918790977553037439810936484346615353064066031575522759902693779328378912033784439742718186827697488077693748900929382316531849097241516468826672786727772909527896937748916773803739626183528654672643519568136022565127858377509849822187866931875388092425266727472721300479877480691373347192531844610265455028823180531842105660286199097157749019076990061124226939312913244835557536856526555308689949259551888935552607391655511996708686435476796559768848179788281223935722744823686705039349078906736178479531952550552683468384214840932048993993922550833745298108784556626972115631164717647352754828374097280732208690698563732719564184691758660193008613836163501990701437886692878488730841938532267046968394147129968884363315062384628233264479583231361762448652914236903042039334223447743045571522241272788555573553578023729388925523453599513000237989027547938363756380538056717991356769560246850024920741704360127988541357390023755585461158285306072339595547388166310004264539852085526081377950245360634348163461314670357939655730741596222408103732657376601980860107459054022317405114736162169081323981475375450198835933056589939813287079243997612578374138746280311696339413244162065841256515255771622319598686231063109454550604443312314837269578480717525715942033103189827872286848582294869848012452980461525948090414655820833434523341481153071040003236206457181453600795526788269436239872802575784992526408239627196849863047291027359273622757409734482045661057775589217267810543099799752638154293560605212226182583380197868131657243138782967548104850284404305066637509288747302108943150194598554205129942084818911857984268378428176464522461592553687350240777208022980400638553384935544419160087420317441039095883140261486552932833746820739252517188608629429397849819677703310112826397639713307343881126725986527315178651516413111535381634755660686131437929788022704151490150806310984216500942397395572170999788466196777800614774161553178861711559559088464595767796523435344869391240738619530294740878308878440352635398888100129776271592982693873977862255613896420700911759410907594311608335380005335312404793872822760177143070943687482743306194918234796086124318545589639419641656507741419245396920698436150388414664294978517131331343924268152357581481803999972217389412195204893267738746263811552803481196482533454101364874388507286488770800530590178392643221072030286955623268805197975598004943201877006513215302791066854722942189158653889262113720331887862709712551249667377035940635936122558521724835137300938070159668470969081299195627174105489501589016966325240635809190061318024249547539979768698973017263595193424272689185940521601415800710680687366605804138962614903509010245483371827092238767256706708211748342147227230467592912812096640158978846425898033663435998368447440894589016595744044451999483401338916644208304244081664095981398933418098594929732742591540838015596067440930504279418791783672606127756175661948457216506568081420822540562230691256592850988635016901586611709234504383173345428640043285998650570965013282208117473522935034896508446499562222008374417924063418096269259402905880505297774748173018861835648553490622648947366719616333447044066159290163796121784797510484111085447434160101386444864057008062062617490467748535637376781150875252873174905471401675108094022242817482380474313469043786077242570727893806648767356501086487680081149016716007579279740382463689079267560750974945031981134578595855984779529690765583541916542108557750001621447248624272732167454653613384967483412932799687788968391430080017962338089953210889362413941181927692130547833134607543322772736409309580874205952525789478282280231269415533297166494827329491763234714743428992480386708724064765567415585428225329749472062802630696766124206089517700694012981342463568079336427258699469499437762574243979005887874844505448478947259390193225188391346277881250429616991555721669802384710918391822644659021403190227248839206373319767372639207290276493545828480817836363413465126111602085271141773052161593329573418146260737152667805063296490348646639440761005489965019771033011997574722899946079361227159536233188535804570692418147378268953772463493538457659892241654927285185381023688107872421837865203998799212260681739846606814785899533018441473084870672528983039115090778463932481659318549903396436614974614086176551510732958731877383788193811937293631106652543645766456502022396545135646247322556431239351695253600794430400458026249283579236716576252076547451450164513108765478863904509328626943329762432091741666874652534286379021133384397225418905602511828600795656285757822570550679361540958231513993515898035554242495302712895155462910866477466130310640633817096558770991062380663479882927403461580201915035298050114247267954048009115587801011884949512400989958650544069554211659934832311159733357310565655740276892926623049639050931865650363826932899904365616008628886995799178069922728602999216726678414730683396766068544826865664828702296212337401667886011598007263405556962688338179482369896864591569317497833406809855404084600720584466427533427996627804098310677759770717685909622249790589033621221211202359807174063856585998015134601089230524097895518585767448670737435788910767603145588034246075695765711794664924573348988802530116923098403362386230343992227221628503285681137125660537386845086644927665143627229741047578777203918509540485401475410055464466063767122052132291127406160891890942570306386952918408832621408928412237882760978870186908355485809551354461269720663885590558187982149525384326800565187268361684601406808449182503143462646892366562333049329441334201927557548442253665271104219099614291955940677959902763796812160509981315114820079197641040160913808437340881740033204697897100144900365931453837671487592486928353918922743334750333103042831413402597522941529742423950291060598856317289107710932752909573524990249143677659421542554740448253285670594587969032694294783943160706752554641806971885405295380680756175610578463501500689636623652179741136111999756295863582071073215552176758369708826266142489753660881547568447241086418929053169244557654663519721738724945148542866451282274920326772269642303151569985982881373354220428154393473172766157200537968195465109591606685231901369310155488362238056682198144572655169193567936698455788849086396766030438695280110683239480601258362139661179473299973797982236486486478563361224771191620392105849267983185635753986708855093076826214808994766688082578278644499137500365288955698019919861518100714236627572997397499884375506209751391295164429013039863556512560773564705622947510120895282012519818687603012843257796381882711093409929711750896429280769268733486891382007203039868497821414068140165148714564447941177222172112541828466687414663679906615460602574724381870360383484697118091110302796282351874190965787888340594463584706467529047561122337612859880620757178566830466780229219270661446832124371313475775407128225229080053117661763225339081330806963528151407763079606013499818644198485576533546903593572617230251988604267247350323082463094722356015650622598988875562592855154755770174670066261065008753987923240317502383037412396272617417881424776403549183594407195505410911966907991917910605607749426347350391402021273773892931759288356788188494278472951847421059911485231778017258635943495487924193727614084794433827502247476299909023459930717352228943632060361831289162232825356996527884411578440731365671851057596204733567996599341956613982979525609696533764958718869376914761670255235733207161693380535125126055272339278139042040086701853727877546321048059869431470496929356015670947863839423420903504666742765774360663124918686905261068119909479381558943397706845824945835987771940598695804114291473525817015761070867393433835115025442074641029719087664152001593669187669732003334114024129325830077491908181644526581238584216520742300800300670620014713455558056201564454505010963618805437641391877427991836631770168772438600935531138165671689216505011986452815495094038728469919507572423668460247994235377389120574310974891129544224512349969246122678868259701910868260162315960991413595966189501666876874587999009345611782382447401773071444270272952216228498969662997039642237029500383899511424732936972897260984095012314491698992282326080965024496250433841336916433530554596632554191784916889197032216025801930143939807604664071298696142813413338604436078715101196026000814892697082862210999019127885084222567289231042733542205223856755605132610928955456826263759583461955230270594392658859179864576856871392325755602685425202031357153792149061353933661812904747344023863702658600527237478306865108311056515810991332491351582774323800296498969207688266252688865061835846542485460860283065931346392157983335068731015824071126858550556930728420680673496592879938039505450406570475033578408824950950191095704376644580459357372463746589882565685618677282028773435244957572001405141365752372360498924199523702522162325896922124281916144154026770652097496242833836796231153532349875232069979354219714017960014983546631678262126273724837361740944569451064327839832835199511424255271399874317159540098534345437497875529882019034637870214798890796860662957301076121387156464791742194274954573687240536011050801328694591307348547478567468922097306768323450683453549630282824965126784429310376500210806596762229468369918630954588172221148195375034845575583882306622082237988688300455608402775180719847138990444691619529579639534314028333171125985286074249180525876389622308691552079699628217490063339552289147925421484074292031709202010898547257394735582453296677458741651313172155595753151396603166759569494303722245212767347516423783369156980061716882456949915673586350905476168169201717258713599714728185571114982867170618506593801725997984524689468718621359986814136283442798473641677029597437516831787430337248159324270925793199701142160947544260849516114114589504852314650062390541402287348200329147748455852658265944574851666297015101969629728987859138233915393022171554363599030903799320436906358728319399527455193044221330232548693812794495950480894357620398284877298468660167892064194540294508091754234817895530493224957214511829371277397382955961847123800744977225588563897500874528055207310137862346917978761220940332581125329776303406739882854637271699865114090011312030897927552734216186340310397891783281203789855017779101624212120668308188195913382901129633491991165552836818448596062993196895867767399048943595523132498557979055638880950700487352734952752068120673977012524298864149548084166990117010736103309324647489746997180978413400352025631876526002566777934766867570935166866688996084995760242424052523184737424120093824077043042900472354962578512187842658332046550556403296131692311800443184556091666045473653067167707098240546082475579159866940441258290558834301821957814900552676135625604296801339632707161630662658376524602483847494971835429584384473685447842271056018872006732409024403579215096531758921776144430257681379552621598695042894145824411848405277352406681193551993428835173635821490378364700914095376675454144774976195483667778956676359663547878579580968397358296418890075052081058359029678029580416033628911459212509099457312213334173239464633244599142603830236028248449375880801108319949492629626812963393056012776594647819501190651430362608502503187554213760872013017800660009132878933672914037998953222950054890282578812689303469896667484710927909954495869470291073244403055192239051691336097874635446856887119951058305090738629429152859153746913666681757921416568929898215950988166412523541763503369371700046512710163815771353644173226727169446154537263402573147797801526651446466254019119662938291712557147932898193165595604168788795633155418144393469595303962156956223624991288638890591117150328517326293332296842579797489146470406681893851953049971844736976048207721454501485135418889594529954602987666653771665270634456261481891885400878466897842751876243693759204962861165767528017244479447392904001597576816043140486857325771532870879639504765573283106353620518580457316667371453281372013320587737327303642337558565085009708126968833753561883810558000426465186801505768565944898928111868253186970361678489306852996471645635005644128305600012160210649899373305022913176282782348284685311752295651409153300926361976387077747762341103489761053869382093137299169240095294552043925139158000807853068742171636095174052605986868693765783983646883269413756783225180666170883218487311447721428942761761125360714498045499125472675783159519579625101804163945335287145535076738441450372192509905944283957956867959525026586449239628327939525471876710113079815960961150040355696551386552480708592064011212205675742205302495712526503056257602008444668369841824978342220085461711264553554586916109796775884816454069853319895982119275429099099268513257594451161773443712842969895267874210074977918786322744568551942763504687102849895889091311170930069302272187970820283735084520523076848853255140066527880918430624549980023578461745061967827991548648242622126053840102222224200939399838187315891257038505348165049747471411990460291587825866231148441493217773728403429406151321230215664364826343420922267730907328358762815517751934591595576440597703948162701431108998157826018771639939995524097476156724978937496141958641669925209396491220457486746773584866953439961704191980002804191276465989896482371859903079110971727580422694242748551199453581029310491708105540436337233679496216257788011329143949030080667681327086045815693357330077012925816941415044997122484797943357316609798843054714115987078074123146304624215563067354181982011340533521967928286213234302479952545190517762389856833232967789894642500777646998773827880925828930311023672356414847001270804463989143035302934601953667663573166807006980697740030266914740965480619233178669943442810521709828881995903202098961648852220001332994352770015680779505693718894343533778607999814500194797997830099229852441813983422780208963814195564199441393880662179307003661573507425185113995573558665144737497313962038073880546286259352378846538336946421073750494796919754917203378545181414226204444707864132354696877108421022862202182098757303075275607773713118233878058498305856320119776206018227470151812271280748746177376017766910190181038534841874557899936681834489413775995723349965094847556185655541668274773816715981570103771256959598264470596616670771029210858202533009978165250215797991345556514769579330881183409317736047717721363299100400308487415690123255421405016053112466011656916473166480142579159661119432534838354973331742465949678972482199401109441069305300437666386575756482263130646051316918594862004811256639353417516252251292066223423142037117837361349652445462565628151406348584402232511381512052755648686558024527216792310338192309833292546300208352786043024386853264576757248698947408802546776605085383546998167079819520247276560672719439388408462910655906166769779504690878296548058071355760232030455880757950156326999484480904286611931961013457642329524473284561706330425683872375460844925236909596080311133198523691549786108712462190184668398866907197321566949668081028521231927946360553623401498401505026299800411855721390210187137735973137597802337150803833829081045142207044916072160784095490967922648098225260151321235711448228485756587333597412078770207080403876979470272086405471495548560920387548518159878424027818862804546095817464223186717526079219115805974234934217016968517858945511157948354389579247262243110604024155680845940921227969895325126073072557647466335995469921981766183455281212971176826853685370268647687606395002749891924077693450739450233660226230849490188653662683165188387958637150181718037657842590904436370003828164181047145506322359199851577675033888120855941665664595938920894039934276112086697882648525076405639303764846654108149661422256680311229522376137155097656756028605819072024924592497722555440503528016677965668683095965373043699326327454546024766164980090854054744812984519602437160953873096150475955398109128918030073534894458573184658513826920767466597452989491742239476424453963079266581171797295051876432155517707881466820123568396196985886015657628984515764645999218919888307850391918254811451880786369849528430538458769052391702037785564259097891976742011937860079934996204057875660012902088287405003630463365205939271688870321344084153385923131270858358199486435330457416724112374917128170349468907025715301617271779715020804758514498635520134255160216393913886873116933681250475595454188266572752139948268085374592307100144288577705559587069667579609755576610640267754890503698166704511956263754877869398884287283351488374969077237647821600256899634697347248982364754899394519540284319415177877104372141027260205797788156146414163643119414984144808477217125076416388998466646947212388927919068881847773511144466695314244909519947455990369662066679896937200108051746929184173550745521841547739806215316712948156334760660665920513027449866972261103179295876975372183908660435637494528365210399990681083090239441385860047721126951726667490862502067182693017024920607349364098624425191835932975747433814939767863708822394603418844433425854995830221959409555445529851879391017225743991752283331922841401309569271265544397148286193408830010399371822548740880746488044415154415905522079673998535288068135115688804443660028161963038072750737958790297642921154931397399639355418826408923827361361630624911194237383960167066495526718512171240986347144010920085919632125283572239100881239153646619161566720879609643888621429679223589272695996763014562527211965204985101577599802359194923088160678824640422165786163851233286662401768522975927470179181981097680649752853972963143467910451317088220422569652786910779179298911843200132653315758569196851321649367898637155421095900621834000451847826272155617129065821808283593963041431663508851498852501105280285276790322236068265219388848787689768132662476191180325159134267889624461002926436304605347652092242814982935923957449194827265592051349825038824118902608753847957592004882293425076133209124195930043662728150104301669633117848788751861978002728649047298466541783533825031157272649434390358149813706571760094932825378654729095847079502970463340207385922484960959744155334834238969705231849494402809107280555576266326461659200100468677421939959129843835989007568285904744430504874952709124492567550387285431510714406285485370525800294585521812398527694528411144041748757960994252965160552105237505050145559500630488359628540126150037776399429608119002833466983803587450634089289372364025358836574024677803455995316756759124319870269846628333677630561615752573935998209943247918602930498183119504958934015906475175065022192906094954052655572575440592904330997969378693672299765067489535572925052724440410090874119435094238200044332389992274535389335979631629368115131299054032671847674403129710154187059533237928451370617329990668903230176920254045414294905112939256715027327409491552697731939939699658701507864100564218477006449517229242538172308206634148961864353274612141298030933759016223927358355192436338770778981035509461719401622157699494209428374849537987555650378076474561756107663044588117153388310579104491322210701594988769414822589477219036670500371033729966501326909632709912138538860037734939149881896955703385726569792582361727433664904646312913765074710683945217196852129689647397336783226097882404831461519980669936391329586592335204341151881404731714185029710211860790979458615895938606240402429974023806527495182665936485103303060384719553092081282416132086286361092039625738987952154987503287773858255841947305547403044081715587432230466468081463619893528746699629944375339237332526086476875235074574529080585200859894890382704175754906455315589510930790124325292344825186229251353257474865164630544507728563102601585351172584660010633123542788610998936653297745675866220337500072047189262956954221219684473606761242762758257625966727930734117524976157976923289192666929529991648119624201089146821726440086392954379160388103261604232398632833905199482509698911339825636343752553770972662771651524570734224382835200148524178282117195909446373733123169327359555143695873904564740524846884965406828701146052861963612515881598017090750292300999862387880348074642884240006376047940580516755557326050454268276251052186773570470329653138723671982409876247876220991302029486755893567592078041549922494489856247167148849573487956301742009873913088426174435893503888549084932068621072606004704050862579894077564795794172832511982818932820080039641244942719635371224045220871399644733531790804583361102681584653532587933379379684077598946950639031248609137220232815670116829674511000285197640396770441291633954016405203106554618593601160492896008062949694253360143236423911064233159519824406112640451108468102087134302737356737387173394799007493227019641264015982221323398086721704469146440269244000933977204964069529785021035423705084339536305946816454186535876150615795266545655404255408248844925302146522315873206701390826755841779645815700370576194427522264475916951883415645118113047201372844114486776121630508976589289681058899573444820019568310213047680197098606788313170931609796509330439470260348147709683512481287895777619213437486852368187608163946243951017928461468349197517938915549917285983544963117166252136920277823913591394688042036142661544586324806898432316226262671254625227216236816089831516050091972624386056148978467604218960299695644557668704758049748581812938891289354533781627027622453382192122029728714635676774246047145921425721420664782181232525868118401480508046130678026174180847073645173141079508778186705674569882972079643502306523467236264481573424391830559952730494339490500700542111059058761509819730604751411049815109482908551494785168047992300370605535202372057764293972447031356509512069224063639916835243596608739551824538041936944367352691125494781771984378278965929966878059632431995059839226095225046780759469554348547590499816451250274876212675493034897992207213542236890993729758721887751681282212129125006460570733945983184005319569805667852605647921555585373098492510864398406949375889815474428541354195901279071387382140962662605206201637498582320397098684258853804481000586208505699588396313086784900406848904409913865286049589555272124003739411796982859167286618283794087204319941195443865895657059106465897927396777944897282311515883801146446043943104948766997624199492392971315552236575988766436486380467828701983629665545742312896733985260930533815942840361609263538099303891175000996354428515879156712268342109742513120874146286094748830028060502638467852628192972498528605862775993368472412853957128549216596188795187876959361745201019590369438822630232437816462115038115260614325248925881751494756556338642099075561181812371626281820321075133949699732442251240974023702482821832117519104961494960378874436668320146495725867809210558711495788993143709842656064643913376339953626646892187648843023050137614882766572198642146811152464660708620522687564165901253002407997120204926144411788385237517740910364108129425401728774956445608019336839743189711802825681087909842341472126494224586570954926187505802359599179473332498668086401202436669150739220596784792559659506820115752930190074058528744125061993786542313876951116971497611810966534862489346641939787783161240422900332664706544756593526189084198631629079230356646265381408930449658626140995170564150335093250500640266693309340266661410890132351404674534867251444920574849833747427257797043610737982356379065365563517855867996020617733693689611595742913126947786340110768625738792750869496186881780108613364080217748424319674285826067437862367676040579320280948502043540724801997503990402953767568647988599391959648373008093573078452542727452250972360122587431959263542610180314163859981709031662702575697318188025658544852972799878406552055406064124986402881276653200054580443418944665767744716641129485906907408609418562918447792797652161790063462644746342655279776963757742982970855797282728473819498772035467754886148445125141526517982115284344527780953359122985441225803206179755713536204300623439052399892120878235667514586359808162500425670165346604521650454933969405202549663131081172162065324971290889070783996965087953987745160410701150257949207826174067428234883391757441326005551500489598974953768670365731370367705631055345866481287137324821780703168644727788752365707864229867093994916280388813302627385636067225269968029935295117735491047290821224043003315349621384228299184425685137953591743251558144993495971328845408666546029461998434231209277992992964617496220971175651037816898245600798541848234467740375383018189126917319489483197261929839622911191326329177358423006674092839091022837587965351847041056554876598547475723397052271725874341186341566304765151690953860292628680721554735272849914031179451071364495210931903859788759430927539489653740102335874699439250812269535839455444005555722970197993764076382606352121584944141242332400625940744331725345758422999995773934522627417433731572641772307259704294732900313285256590171840339163654854447805724833467512590799332423867073260416817886048354573342192316111239330167320470792418183185322463185282216268878449093927479617108513669978269596942892155719167417527514871707007130843640121129929269060390242507413845284905276572500947152580857490835475984870360301914589939669363682338685402628992390205802000200371518777496717772715571515538651139091869809930274254945343014086940954867324404231117523317137772383419660919727650301652683599846677735039770182839616824206427368626993717148712963986165163331788530568592021137580029867414371263953267075575153649652068896081124489990438236413743111886876693442010611641737245876226747822528949784333031197744877299721595761205151488236835341770158238412179221937851692382171025835086881403884979674511853083735332838574264440462638704040060199528208557339890185950835532336617706750186239652951844512928349857734469281805514297393940376744896524657860448358577521665700198441210263688655151456778861994297289177480664844039441929538575115905148787340567962301175068480657971613010748643523140172274058418916623423060255351376911619111841225233748482191287457965372214056687409460965591194177292891118167362706107105798286759311232821338808655883388109262744552455895854496910422585993518831719815199771624281383301350245146424487687292528734642657228991602026059964504575083473263623407250258883964908235964671744414485152551948299124442620565133578015759260910145168423816051589713352410742309037465261242896698852397549354307204946239229275606170582964094038171731396403328640418149495008631692537053939917658329796578463562066198311731062321293747647196112443519992105433264919727491672423667014118237846763562833247407994004036208780231651027916613507577658657054872733559829025899041978338359381154311231555577025734690667979175925531863936810947977528000533622693621382692447791320570289755291888068787289283870449226704332594567244010955996999356708769552632157826394024618841866888892995832004564737647108652765292535664120813847739196221968776610692064395779246598033290905880426564764528480785151740417622156551461244565759069463226687385862083292181505223434315149139521898299190712296016537692325822141236177014757763724314274430426517332585397307651326820066858791691318917086993927563538314116034200896425344680249709440875825341075683894466146068915694019991046024193412638893803517572370720980455844526127545455855016062503297866849273914070169913308156177866794281939196644613252759523755481388254699834672449843389915547908962321413134015082892254983124487056608528805766471168253609334945947979922248781888320909875851579556894502923583207272651752779793783596533205094902420114510855196721503910600080238449198622191817821793915101998022981081096986284773212666063870338802938094006108846658523393962290504328891747721726183225353964923224778287613827141142094700304446638570192521482544640941028419672766139241281649904699596657998499142562607961413721911438731256813925182087776314243023045099832454323851971041927056576084685164025617091932365167151094429339813589358288038393684897370180796782370282236874930242856264911325750160630212014010411492181958322523193898381320809911889929249839792483431961687080449073054935968077662801186094151743207013610393801262253975066328990152193054387657731206801067766752123868448539139328932548545849176268388115023250830273589794711214108754442133683677899600853535237200316687765269899385647247328733704490206564133021412867734839108114395981882183228138997236558171070832659953206452596966548649125662856427249933556776610154847570792705447388357335967659325749847941790594079017100231868661243985994086569458439845022410691997477407878883634696649065204707385290461972238796451776111479920835248558514134921824019511468036761937203950322077402882222679024160782580234650155291349258027726404621048238358675413027578386189148736737082639002661431255047889587901829518470738674710960080541981586928255338860151443073399815060072391452939115501124828892235485293120332955154244936947982592166841482027464422169159762219380029005931737271129944669198196010499509824350822687490903791530167260733840353287672879089033479507702683673641781784388035346809606848382803947521382903292042781930998033716114821920716648774101449080787342093907806799485707932041131903101361942427497669727455483482764184104218649189399162914582765273475258571687767309922557634958102947279939900643334009890015752009109335481646567919804196659548335784174891874312030653142562545069729161590760687803322148157881830550860311136863631580694201141803373763761895551720546052533845249013392117495187287493008591861634663123716739608059083322592279621309990578228321405359204585630591393489613589628571671054663229801019013295265813065476293854013536280917635307043350766043650334084791102263425429135045335329433324354118159180545683867586565773600843192976205726962310705856207815038076675250749443326078224223286045176755762991875813108511821096191814697427088214653388560815133605944254212550957414139071613855598203500199888227253667839563923087940083226900914420787125363282738716510614068475869688014942498471494935998928801654915365198998804042757070371969249229399814359388733434936751024248267877723705211510108155729922491534740761073359672036553127382116586082080104470788597155971840001433797463318677211796513448107429834551436019355521501161141886547830116643039797471436865510102123789511003311725339807658514682596180946231058162666059349323177351838986128002505267046182874053809030930058478758536497180670588558731142261820949142662525608193792525142222590502351988902498729704607928696669668530596829096805567119059651394795424298043369156105935059865643843034593771170203179258889501811679519236335078397843774558978788115230421930284520716326499342449735293195602023755527586640520934140716525919821372234837094928257788052078670221726553850666593418475035084041509169652107546183294920114864505130991201432576714350306236276512421581747701748930472593762503446080472893474900848736977019441456580227432549549063345701730045297940062294947290020809557391865945996712327961474201195288246351289072326279083562160351906242697224260150302056467514410182024446170379986890231339202071931690645554315049359505454063825292165221963687917822948007970700877786924441654664667488106765009177978534231278736272026437755716379505844334789893162525534557655069414259640020619124323729924224872612065244291690823675793300299446205665219525501798087982307462068419604984060088764907340581240462689811231511553397140142987284713166395038423110296905170441331692709413763105659379165876953002504192759999057880938862576986452769085986386149104360126591533631765169878279471102540467840134350495019250332906468612011762129576077699126372981557549920288073653429115398932164353101317277090375256834791428428818546021472697613123675062090885958869196113866613743592048495470435330151906907254569970887731729655275594661842776515861946403341944891342412811985140858882099655763530431293828313643257640356845689470163876766725082506234232188262937658541175339780678320925393616787382242380428695117886185143064377189794910533439590795766744077046183258355693663265673379801565468945572536681542806352921134977217367362466099310025050682109913542237989489448766384740295342213424073978026239106887058397330771776037276307442522184196073538894682894135129148190634577509477793204653360286675032976168952485011467890426717223496668542011571537741567626404643232044259678122166380123646803783102415451843085667842255908433293935326788395424046731120574427001409926644210493115671341465391094161295061162562410966745853292357190222279122605871218671417298561371188836809368183644302147751856322612888307086736104753294928620668381734891941685327381495359418338956445112531459488381141159396982662682533207602197348455234448615770113459029659468188875767249137486856810949314488966012312007054814152623669930938587629591719407640365886811184865361847037029641328666847813777174149272364828937465033533306901642932849251241025875216111179366063391756904215999169149231664316329492502006848173806225676310954739995514617394567819407334462032513870523640840384762046349506709092456043182414667296486763335359373253233467804250005545284700553729279320746687031454135154886342545523178610320271937844242535956342370693553225646942185699052905168806907414080284463644304100258058523645825774224457264492725007338177032571438554362604004997318864449280830020079028896072441047501683177237049319715619006570213803960309537961517995643945449668389636607062666966247946907088863972129083118632426758557182799203190257202362079087571582453479324916403752364157264232878696515012689011134608955026923178263325062976020076895731193086356335390801993301768704244559381051863918040625305916709934811928838487003539225247231542467380691367673100029211875224588807837768886149369152038056205506592689295188717553315570074416761221163541745401760731317693693709158474590263746145165952711898724957749372781061172506773546806922648583509620352448172547830315631968136179358375397472018586098205155592471801083484657961583134477523352247773246337820465733607913966166154184508861524703871435753155405943249891230357202154521532782952745707244242842998425704173523372535867477496807320534492371948491374008943181553722638214850353160122887979028352797506793678909235936082791365440817564770518001238587045208273940299510275168853950775641299908745703490225855206078044736906534665074187929428542078023835663085140096635192271410951882880812606430095920690296993397424995319766335524820393658335000219966838293836570367438317481036114245766998530814396624319606143621108515825961842690408549937585686082492048869384136384616459649185430456696978575959178948039458985785904404002300386507351174127361043032114896655292579067452781430567787930066399846184304865421101917593357715733877866954110884435265081740983642137334323077722189438213668444603151186877546392241365506534966103916192143078055286240066908668575597350409384786128853366986082193847665630218299847725962848848039454148272784359124785517881040153977991166215007291616959492015720754935576060575597323958529079367235609806400487628749999033911313324464642601809443173387852351104328757718439617451032212227609589347388364659034599724740183535624026124966207829506359665644693368351937369566549653047365134971032308378031926847155138461945969974818140726144269793678271246240470856689137281034506214971931017007094362126375655713415129132394571776825933234730674559886660277496592354429758177035218776404150282988240603074347607663198735175072830406561550146178409983633383848981625303351206551837903705527390353258825190423556405012579316581551746072749875191580014808883485828358344370913518308301523635041449204551884733656013839096220216084236406679681079754895478271566671547854233474673204173921629161232740618189618696987077704809178148230708938540377210298333032209128554099523842112944638513649178564843843172907879907495496167311942736119423717116107018491127157313725951034208791783958764590366758767803257751195216187436376360925361769465340943595841544294118428575583295170691046687979879182483098049700840754959489388274253963736103013491367928506478425940184999373890606634071907699825952123509355459643558053132651062879223422480732126746935935614252500602504848155213694086101316073300199457134468869103537483151369414887655080357164067102006665054154183665393660850315508198607488453154382590997131682026136958785712492101586028935199205051062056732594413622199283623374776281915188338400062914680490948662447582447623944522407409178180467896660380380876680933721098882128198363783525964345282424153291785961993673671970621548211522715226017292648059333336629900299509134809846803856117573785736665730172379355762439720304452812176208776245522468782694770439547200730810501042822173691481999853942123040875245838097170055883798094946445840662415764712056144179930912742538821078085256155021306111121949208947151987536214431959107382308819026320380225555770518001696494699903501988603185636501398765850172206560337889172552480773528291336804739578413396861493558774812627724064966144698544428545880524798448869154675182130575149698703006278306482855033061528666861407573907610132636920158732155426578075074091235382350678964262738417756841690624043048404272461635585092209907377325547046185114421550365699525192557828235374495698362146748570094397950187286930200614721615045006350819715161655161584798992830704511314865028885105268580831823178799219736301977116183400409111745046681827855530959146172195421845696981631411860567375606646954909370528489441236700614968853747260436595256716674993614945436064446030886116930243949916781941411888327164629219643782014547178967767372779194004347153677693919865735610837086875633596530223980059869704205244897101881099504752992109731199136973135194918344828619320418314639142011613880787222057603305622098394701198155339131882664534808031371413274218751885115017966422759523939683310039487336134397360357954569464769262963058095864562481669471859426882502542349432254195225886304166639474237962297837142818443808204194273381596103730716639075131349964588451472336456845143800773949783201337495434905332558293818657133599214175068592942299752405047342049040069647198851835059434527332927898676079241338953588687552657000422216182129424840370190176986841035268455614074210734449562771416205006084471127871440084811815885375923934116229224078965399915370999682085293173470945378282401940092091368142631949856289733402740873038028759506816987794373669621279685344573437302686653646330873655084216277063738082888776931781521526331344246077370776514516997670670494120758042122064615005372796520641292983955042033609715743683564051099320406197849270238497800479044067893620191287672686293372831595266504286110007634904520859728822954287374815810720229507284378162761341313428736340707044673476916161540613401922747125189444001702594778605328937367002128345670097199444578225176110686035446640916265540676471393027998791836642789559907947569379620584707607964906840687061209041559106015194380541262006760616642450909168045492499473947230580867946756849085895641136484124828221215712522932520798403161875236344780157100535436105714406544485598552919648366302225844790372056079767914252269898379042335112934509407784988979126974080427846077779051357838495574757937040513695556292891133367825749847046916474925177242223891538769593373395783227424970509988870260768267166757814463549024935098327388363906534192208365568813545045406594530006307793883634620388722497280174584355803402573797518577827018726251877599693659494805023691789785496763345763804558412534228218727557422296440089591696549046543467021474527540022844414191532507441571643974076749340762068960467091274304461850843503636892067753954565833943293637792831664221977039011044024422006147386481404565455761044013949368424841225547626135244707197581054109682108238178241157855086360573501390642126844514449009863286708980773560099003495193814905692216866324563353712631179358527513803659451204610292494474421996567212514078351451027646125348899140493457514864722191234522272398072197232711359616405485808848862881998126343769795913191941564874791301871473682966813157640766637117041930293297790444726910185728826388848077745590181848711754372705271682233595878565202519320116319210884491723024061663965172009403571304547885073596056046501062791398631448610664423180194925931426043075880046579001412338980937820645057435272892564916645454389920163508962153344544351269827406193291821299172645985907475324616646833758058070174623618375466119375670460663446740091155874954181811665462445132422335130233120555433119670559936368376196706358758845089269216749745559518891575414755704641527736685015457952060267821339264229776226306123465744622082558063122396538419265534704106353259238410523197800202233870866521497960772538910950450270185408860094099560293238664782458636072194701636198445032267687760023621784338650443520979521869069611415123394088341388858140680121526750974364965777986825379088149769915386964551144900092024761866864756178000349677405521329863837099281587413233652407910021118793447771811893137614435130338448634499419818466021925320080795720255049270138209993683241386457049599796217596324516400388369832909901287331291153695081604031984018196390221334773085569000563718861607701750641005874098170206218066932953651390057513223252817218307302977155905170438931513587355885192752885911302648854259851763264039220477546883010997864898595399627412493512083536135466219313328815116116011825484389591622705049886266730380951269473196067327564967667389143495372928993953428820497439428686124371036370289967651674310593751489861844872428384230902195696907713794235315467902146167725290411945118413806165538899797230408961556573121357058706915252458137216346464621861231592378875475036314272955016415395659986221411324271538795540106393306146880527135645041537629437649694533047001756519750874915451977146917067210834823826693557641541991478332504160946549561960594235926381435253849430547282643474798878337956786852769544457574249207828875393857915598842838915019603231104535487769109428226434932530213205316845797594789298856096473586256756462730703975355847074298579591120894435893336790587193809542661318643209311890977504615109940257654739295129079212568622706605216330362841461294096439697287846701958329926150918745304304871255812249744838946876861249531150027844322030858037869896450076860715576230531698470438355693917583034368749217950545836709444792369558597257676509921820477384828641967373366666119001319040385238104788446809844824771891914936071063998129871762812392561919617562341310118082710440892887099390579960857946334909509354773479568584739630851203238784269061171086387437471074842688171442449017967619881457674162534621525949820980984588678461736932752770072039631860730095144186197672894234638514363576530690189270069510071907666813559106820112187375738321509698938791788321879349974078831002837909075215823036985345253115982907501242824069404849008481256781175650881100041836523870333626156697312620882055226464872760862579691848374248341619185075312512539083721911130398774775578990616183630722285501507972052812967293489054245109069654095760792627139957240104653357555769825217638939540259760765428208753119273673507096101501232891539721206610561346031258675919909244095778741592881434051044663208218509436071228197777825855653620008135907412396096494800570501066985978862860722903189430330880354508336831042116906355406455245997654392572096805427817544706166301318359548341919907587700677557327443067315591290436196196446200423684483183068219320979416552451393778018223506709913471650432138425393499775230868994883456722706968534640019650139992780208462685486484855893545238488594647473803258460919973566444756152690696630920810759043724457558489006193372675850364426332189468964655041533082345800372739202950521322771530660403992314950524157057643121583063825028675855180244947762763255328011286184647762364959357719408788912460856910578818667192350350101241459580911080037003679386881941796093994131535624903875753415317541037427207466607348435783716199511499803526886203718760361702922443291398880921704779626445225337561338912169877929886717355740467962090255049454821531686859985582821088882185663263609714311098927804547351774682735975183424523295053115997048927487192469888756984197194973779159276363985032514064607317875564841026655785121779553929113056282031130335294461394465582206958459901328371194143178365704358004196243228294080512211991975871877249659307318496732762167360890018393442468516131603663129144566430736397550631903774324642287197041477146805719177434548650188394666656165975036021250837319306845707579461949401313260593561420016311580013424733303556996893050111796782366356981983118755340597353941661200904733703790820860644841029106363159767646811007092173186108694608518975366819560298501505846988640705391675085904219853716288779176499051858910915341992638847866338402795159217846500736599891908174275884101842582215850791374836255766500770450641603920240105855920834544899473671964839726979984730061402176534677559856295390006002476792590061139513014199593089569998062205930167322435166259974919566486589012260408676237217051406762958914556934282967994309118026510217244305000543464769659567867028994146321690891150443986644711669298388806513451467399337816595208155059520167170114948875835147155362205811325122889540979037068923012828965334208735201325906075745069276823283385788327147213576513332996191679036574545077937938458008023332193546326976989691784448032886047149297908050635186410379869867703116408630330356759336816724732817478195680575662643905507803139515229297654391448851626596493769296854379128165244021980695144099050769963466300876107541553737050476915196340961088187641522455762983894547562643500465733160287752685389172587407246435016801011469454976018188987898256843446874662251248782869905273777951264837719720347354838283091054337503279813534405335942696998859899695873564466280748455305672682614133614733341750680066901695848038111147411468343305885846823055228294816248022675583777097713666098577641217884284537105000590875963534363822972446004899656329899192656863515438273088141552994286638933298394783370693097970631275756981144104309344677915071823552898982829097198661584869644753113505815647919740165120656005256117205186137796378856266555095589830324696092210011647900699273262304129023380407045962749023894853143061084517610064579096711436294529365398079424891290135436859179062442378305283575827711895724179493821429161996652817147102680513664083339280439169453213961391359198087007549770405776710505061711941631796246194818991261844090501329648324642508198857350097336552161890040370758067898313643118218494376548180300530305224506785820789921813945865151037161164706872241352991587355592042028539070174780293376714374046566376514914943302104577471373146229802988187623104441225232017829399919344557672217349302434698330615115728295196107523705555220384119864575606385568974074078616469284446787701886410155231334576074194311368045891204296997028962645504667178283061973967327767534765234019655246229476442687126057607927963478587653578949858773785816304240788468146712542848206690056689650431911235354001591885062014529456489783655625435332736822097504344516273678471137175172076413568205731114152115892685161671400498526929748428929262275502087400951675598018914943535702437143886886644990954200681353282290123138913093039526794238115943963946570341796033120565039608203950678074761072200213701587293131729547343015971883191073845385063208881861820436415596287270095275071240246966761258533408971074503881917071802130824821216705351633127753701479556616816082996401922570374801526664566985200113845568538563492537611729501884455644817253601851184538790999360880096627930827580151923840711569443826451001376607640802857833165053566921598208035435890290575835235194750065982206970273562933591456717606545020584611363317350664420611973683545526860412205245575684005659875178423134360836082812746116305176476372402891364804144240105482953284477868554213354106266947004654440225228021340693039546161862867926102117054301677932305919527236517498366604242028864210350627516425811625370515991963131841913498381472292413298069943643284514516345614201119146645741436156129846302043556661463038963542377739114698012714965724913315210456128972359727760848920951214580159081218749919984879074103173067535442008509369341746314966068805892795057756142572742636512513534774156980835996743521924369855250967458711308073766679506024946431589241833196232559275067632019390809717322320240564748570062047425691563984965293749041702814404812455990698849226676614103043205747757309918879878681110444494925201858716858887235492823837349383905263474211818003026152149855966488546760188461477679186844791641312238160113675751297483352119715362131467970572339021393319782740551559006646707414641002058583252387577292860387274992087320430316232091925516448830132655087620950797687477027717379021779182197350501172385985016910542475017520496900678993105097527638970824036820665879349834421992651911105671264804270620574276311588912931321308046383548861733239749181022328220328322255937710292226247097394984163357379253852834238974200234047423919683709794974204736328576581631561932716622522365971379719183980446962797277497657846269838548922095145540613362410272359655064034272679550352209750395372114143143883658373769233156269823252294411843178946427492457111187001390043438187520161700430532425433931317267346850009873383227395461361082702379014448651882823109498063868656677709474225335788880313058450765557118477930100387869520281291119831573919362680977106606757254872462812642571808961545993650432233717599284640893793300883929852079242329904563480959649432325020479370701224682416586749881889150485491660624717471669989548446736692378773497292041890169593401594806252380245107492032349446174742413542779370690677867455935732856623366925269630115845170665330404886918762227727371005239318810316746068048220555054930301910767314560812050041337656652776580694257256552327269240245190454861376722161590244103567243401006732671451689557593290852840743636773421093020630976810873420888315737929673244572694367795981488669575695145430985176646214355418054312364599640437996111599758282770616746033693958198116663591001416789970524005502595104707337083665413908511192006978116008000755768742864221442853425270418666730177600278791013888931585806341644884290286319487242244340147049594595915382202878644087667094132313689484993045305172012072753309888227747019067101952806857911513154113417108763086921802750992319733724387243456065573317256201839844277611660461197832288049933178097468852995313782003688824901029480728854838306567583447919767663559995272798129686934255900203290781238597822770852931993840398259247833862360959423605910266596912598040950000611508758113742102690937622452507634601064954238504912765243475843740482016637186516454815315064783924913050067038010930879601704302432348064112251642826013759527414718729772707534064442832433974447216684850773674659887812260791379805079703775757837839895408408367966954886743017913778867675308422984295044764200212773390849614958250506896091233376223147814814025646958122695718884350522320141613710810000638399603307511917846623528326173029334767182822305788435110006224710614070274174895130041866281995797857217814531797196268120768584487628059604780450427513804411083505084248882766235648700009642247598829147774313145018222815332256316372656123350090985125915241599793771145448712814452501890236127422035235692256960559349387089349920906853686172554858955339556556258504164451371630773243778970566273238033579423075532339061989427425812638006635107081424641859560855672268422877527636108184178643115252217810853555222329374744458510927995809771614513530686171711556604686509314254745658973650161929554775183921322212201770346135440162389397317330925312642411269492562910743661066451840202989845537835227037584569411450641084407489732312915078945611675868205612195513441046354076624216755739293552232435026508605361205000563080341642689904779245360987339395633958251732367477387552385392464903525880992564433752027196113792183702164397320885898692967196757100826787869648242405144445358157697874775879989218626327624635845507705622904137296448197854676131541657884334406649836857717481016598728296585961922069506368504334698976670477980496769349217383228891830614727830152166338836472915958926858267326618885677593246839434403671777098322107938467290783302763056434732713567572784719574945615537494254372530136221874784405744061478616019121707979119640679318244787185444645469085290188305376049469074741081240803528749659826327828109689853925303326111776696445979016387172550164510699969505779502022013119343405587112773124584384973105194264237175630235739724298140762519123771851029451692649803783685313840235697131205728811626410360649250630078637962723452713024982534637518367108399835737212117184288656526794138349808441227734566034249089829843333426123953490580039256393422866506521935247975243979331653334242698384811125837807507200169328880328749130067352865506925715737008319238389414526234368970194948755172654625751138713279873508218543868979358656419415930353392636681496450939224589381980210956044256520348522146394730843945657440555812522883487077547968024339428978939018251040720859237138089143162053625546794158032153722449326093464488058146599887307969077504676587679279018457276862598504675068931669022520218087360173261632448029160800861597107813820288970898510414459932660713989714272288076605868223967507445361630947144856810035719540247992530991971419045435766763686876275494503079116420027795593399835959418051784113555475220220216905068444237011731160094531856316071677449911858009681133203214527086524454281132834358945398256924708435724700121372172237678353371062396951517948595480447330735204222906179825436823037867619195423220240747048051239564289748600274369484204048140806594929782032223164159094384964936474826769986412630128097767263812076984993573673679709135503488538554144221531060157156225164596726124540866063872789037877243126084243606446889557130175729706557122428005878129749219195894747302521670841743226991950462859798555251480544313417850916961976917427809486157663250261391304198663597100931581065063305166144500487576843923817044379297504935058798378707762790345813420440015535219188182135942840506102701029775844870372925502110288586974590548366792432294162642100546583204363609102677107268689412236840860891063270165498563248712152052443263629345594106595541564415612524444072906099660996613213343978313373733262409837136035516433082095124234485874322985492094514330858548848554573060154357177381199895328002352086714848519968936847932923482776831157837821841239495980835916430454478528869296577601490814349091016203827100170316558732282531988560961521426240312068727163768953407823217206635004527673636320449073524589728468644222176641041649180709758600716883892180706480631108648076441836477236420068774821828537330119162249459553387509735278057185887033822428698129581584014631227197397237206678056254173957759263657066200608100827629932783956313199750105678172770461499645574380695141065272906031253657241186463996802299414311937854016546434913890207544163046852344366721099935386323589631467651197750361263684763624093313110948000617479179959930820109991970253096056382599461666987085968266469866376058448627577317418742578616725799277110929275926226984463150478797851749146583084924241712928281947404314845313047442189695928846918889124351364872290573671237201390124572886787234356345033175296455335784230242814339594667589517902685352712983072564219831084155821456930584725422145911962590005305944873167785261429689394013866544025309996658044714213474559654669899371206930163293959219120554899067279064421860440002070254580512739083334958126218888634663441416673221022597341090251754872792630864612161603401729183041525571068533481084311166822989579568306072185593285141371401099513663718697822227219730752211892421911091703426404140329981726491659424290578101537694994699786880134830775881857729329608256048065167776652459460155022977387602862419152448907077953953001426613196861313735721700632146221585753910769275605778294738930944634771874240118639991896130307536926083536498376780472873157482445810340106735030115140414786378067062542975287737965711991120617602476142345013280294958209426640116593517236358159839644896063988304502612808632147379292472775129519779466609017170453216862473363076443425456771079757428275580056777264394373416779639951228090970695993634779681000434827353284245384646516857849776270352659507945217387050490728413380546991176236160091332077771896831946333943694164241806725278852103777219273800765776251153402830782046103389044143164569087762524080364344353675117902254895229234058508961153097923947858152964559822270365086758912481514995836174047872058013336844955624000088951960800783741196882107151669730229512879870272494914100780568503019497782643603538180237805434377145727318465706471058204067746738947652445485846812229105340543289378239677633208223703109915783743467216721584159079534945373396247974161393376243111849755201581280967497716637790305673721069066704077229119386446616924990503786904601320665102565480924138507172660310094575640602689301066766163670163338777988552673815630066880245221053740826861141590918012410495972971404198923156296535501300942083669048724279388193928681355338669303397171207785605944836824179706122196126908939442306448824961735377253895825931143634273814787762464812402305891197672352719579991859105627541739314897988860834969505628851983747277282268067128399836913573200800820400734195989610565414249457187079803461346959535938465993832184219459334061146142361717988939646326105402467433042784373170794458483298564125656365545217811801605677568171494279241784099710874934440347561422574007147536300297555913170415695413690227768960963157241390849352070349108517332282942273963485013012244009348412256171204765728207181289249068209096821364783840544802949484112415554455592114914617858936755402739063238036973437126723795047264049668393556154826960990967870174691852577217295821425359807329578625048160007909452461365291059234602225925988296517733812570976253089033470211143420192844358178253505329451756661141261743088917886068174429496505469816993837065616280185656262888138021475300936605780319585286175576092112187022609161049465652812437825753762995806050722232311434062446470369524520968013607108745658567276188446774742432439329107971288135904851580011593822723528314657162354821404633350719501525997961381838743755353365612555013416147691776148413649736963540009586032938317419013001048723948831810808013022101225442457256173312238364946969910649118090781686147008210558800645698904158304010566093024019209110299826965615646992570835166240121906301811447156714770255525052289971721905732085766905543460403939145337010620193828778324646073935152879424380435477820913361963375167013068260154982205939752538777688519778854841137893717433182185466568114877217849429843821984414264528070033131554571972458767339378781418806705103010055900315928128285662618490255271091525741488185445949464345286549954328810837550753903164632038318370441331623156412767814204261287729032166009293162085718033965775659872341819830629957060945993379859583039779075325727811613602559177424499564156497070991729221832319161288524624922675280481558821271604980464518976962816426364213675693526917118612625416794297135275261110084077375773210757541007200491430014443357749837994744532208468999130867493593397073445372511677316669362373795311127680968471760027437090613246253147898234448527765130569994416860260907549826500264931846205633510419101841210545449989868390906857964563669503789281328611288307837870133785688342464187843203643040525723413089088200676059653284978081418390514684681705848444788845923763670372023971122913541628911004299550608743560677069928628082691197740262002905929462205009438168288882884847308005318075839782350655395670088530520788374781387197854818028471548927086659706493663345473947296451591539450562471327343552055217850813954830114635839523945223828364972736472673698263819282061015116715704046026922160409002070682086667499345285096099804800961068225580110699072959111583048379805105712771112020157097001365104150644198374999433574384824524491057714541734393124417538404859239942691527152220906903147641074255903050775999981444557540205921411376989512664909650737191532195480762920290779734279705254314680379730181459209648951248958941003243581118337790419296913727086190678972665583383178924452852247501996890933794136880276932402049689598027128039553220295439511188336786105453661698363851422625202634045650786253783062089575179160735000735832867890670199798273248615976828915183698405794057496714375020828169157835041643241616751635400940782540153672771133004564385587788804107097993333834611784444924809948598993326705047974902398064872726112264478171948351040081618746209833466428524251780854044485347713650215294138334555771308734709527371921951275452051711396391204649493896861704416022353285698208221402570472431241391705422831842685262703200135152017903379291520035470433273121259016694890845119873945300773413094294503266492580675717804164716393425438778366513020975316892272586628288290683185899925221298772385516813750138859422648590273856909299545143981612994157341297958814361200292496358397747411349247818049126438236536231225572582536393989328879317212285025017044733235731978367968968455539993530938874660760963793132986664647892865536811764437049154241136322806696131910123815762044129165340396700547053567924015719506811589849743985950047499859505739682581676987417428195651678579255042190237056427197842173882617424645375153965034878524512546101436926363159598443269634087298686337503385179433378532873963611778353162630347779426772113203338991722884533676752297817206778273214311328821783540169309539417803455856418403262833134252667198168831331906936710848229840574268235228248110739312758715317277076102167102202068468942980554827650568891380118882894642380369893783329991900713861772065750833656011673090724974749187804447543575842943061867828396981926266398578956832283330897147267427742741067676084892691566732998755773011471954320958241689267650258945705249103903525431221940341874392605415911997733453305112023807899200568242039062913206634706364667943550713796909522840909222241653330628267973028911443009912220277229987139939435703991302281353554080915201147368183145449088783452139623043669695296491104713498895059078135699982248300548156689102292432778961703808457202254740091704415258685484615527044677468423362832876042716080546461855738061102821476839899884104684750906995233620179381212648719079692178893474451146212813075265082549023815416784409723811680105689316756919771806086319618842359559924652000918781281835121285867308753322797492751376158632171918491197390366676749767885529269690559802272662666552331158736223063650787221551490749231906057126204967749496197103731903830847984909817962113318242237709779214627778916997556278438298384431072985651453874326709528457606673594086120084716014576751285242493675541533724235727577547623363403830507297192344483019959280626959091691264965705915964358376711682810115397341304500315128636671305778026744294857695200201090836170126984257359204329302434039441981334401114784200773821478664665428833930624699335487960190017711130709996555252668152646142576816170017624796682026962602761053413878623616177500716739902825378860707971531631128264576067877753985064538499385523683833083736351051240997264250167839766721247176163561174917388574354418637873611732647559325971110856066004248667440776168113112142877716279694537235493694945441911447396461457684773917653290078497767609504939068112762739926487674641554649114977024468764702310520035510934446485617597523012260819925662532778746508768744650608745943226924194216492077474727334550760034475378217967062663488533078631285212909775774868652482042287041984575686015140067798263044738200356666999642839097945113729637564108484981589027804468107460964406516310835021287291076142378711718836463876767993588566079748307558087575244115357264746460033624189825616282331143555009391204141408089370403659227642448976080076403622305831760755448063542899659758564588594920162193464572094089936512744924517253418971267172890781379105463368560708271053071754878309568778999494016111963278704915990473805806188229620629390685172575761599972167355670586468833441595426957607871697496284646832752879665792959346256635265105866775336421091074146439734234432534716448600903808162691995411987028962547630724411019864568787478593014045299354092457898956868703491868493577988618865734503941399059432933074864799335596148944182037370403750487610670355392190664464451046915400708473136692007324236882113300260830813167612669731256037091601076919677760213819517549749478382491176980589063731757359170733416395095322874197917420211565948321033007824241505380666634040081469513381965894820773339585295361779210864312203142613008647545338087986980896188775291106079695383748554105358098194622826453182779717231054112896976518086686064739081173168644641013006843214442109450992162312771800897116821454478997370706710711866239703468427735346497298786117516842780354958258505563918520528936070595488992985942064377477124838030828562657963951727293036362647592497588128384449610037539412013312686488799533477431352973956445086285453079447274052340686074944088271724096130176364055363134337450956138771828416174797850643242450521914326974867745398788292490445673434988146080249978974389471516554452468607987215779397593764593534150566955727754473064476617493875589551457896373428728391796091311950740735421416342413455483069245934723678332352293014111968647560474370519691562487300464147082103020618614705163976409922716270283956351708620970377181262604904247616550064891454288614271696241349682490581893038974660795876773324802905637360475062713929557297605394268827596978992682000483568364042157289407585134497785530054947701731059076934152063774190615164884667094820785146611445373506856104156506569127882898375973176252633272422941349478100985594731818547520311371838943251688705416054981889884243526034382259661811119357712285884819957972038704768654667516824142417181943808716317832464570109940118175256284492599934219437967966281741551038766293528313663451509669387978959986389907120205922907380057222449278458007615118850865303615693538440759786319968898803124167932612201831155084075825722578827769636761218526978873765138291917603329396584968165013700953945902422556844313494642514833823692774569986961309048380258789794664999939385662257603208672527655033947957695368868973934443396531593531944914190837128359336744287894425063953825331894701558419300579088564296452447376724609514446092763709111320191626600735379028320595959320772893225507142528209217186033627161268712421991788438086555112207764154829723833794291189469596577419271849922493581378221494909023441733110621589447035841072749948423446418172902022982492777833525453577856676857889820870197564123254678031146710145357056973938792976706247962516751949997551563801913195417767717696767320247482456517126280635815344300283482389476623124051431597166830947938541344858922433352265318283671345651228476530542669457950613203641691820636102242871879467289088208060973578248842018346336831034076968991489522953636616252703759808190667181123838193451910279502382291606155676411946874827322566438223371231572117578550915837937474207249528142700968952359564043883960657004914314115954212091066730055624432315480490491311545490411894611298717008525222844668314728001078696218308754119590985901188488076069951224834535966887663646405062563840513400023987142483232487971458090157016745201519000569403731579831098989057365971836500104626889687061467151706802704379713709075726488613340910234407675753661026694660069568091723554862960553820365421487507341879701185830765513777683092219694774038390218545038588737090434346791889643091628200030233594770680177515417660354652424424701611269343757617801718848515394532561920764550846408384673380109850028834029421899510310453819989320918988608425092973884285874989843167813847428582932883544156676226229670856726204874342245401648461074435143725594373541578669045120633498927103546995158490896591657691837218419594573040178761549727950770627487156981995061644877495042197200265155694463361545569184061966535933349700250950401802370466898557147855775189575060345835172129642496202251542040818787268597055074082589191659229380263570037906971564536865948968392823641351132976832430447601830130073973758701527911912812856968495046915304123903918431400382712400344416394058826924171801752405180467259642311519888436353798113055253242073119571561796030114742291140015203788186895161397358362202773053174294630640062706056194805825989340522021733631792150750676004234798123655168313322296478002077371585500829289060863942236887093610059561980619205930216645173089170487309782659323361948372912979125078287787866910678213284747017328737861868247802148174484153897498386623838994899806518766771858996098967433828169751566789902060624751566767837933325744361445273011621358623568878961039071318199539213681821984023018350239091157318615511937791817466879174732383381892406212456888109766054780214133915235760256937391256257687314920970717423856275958258074590501001559618980647783887143877508207444004086961773842718760733699637906727835967671546177093432832214653904511399801817664960245588245905615078437888821637589016877951422225920141239676541959358966033602899955772849421705548387348139092589246803980327878582140481867983946507660008243288405810044160228486090381518642037227488029893213333922957683011409462152286600421242537943457555412809628746054246124193860694181402308646868640668912978282094568713760613195819022808144223479295046056539790376215675048801603007079997157399048116375266855297378737370264339233982531669326884335157333627413069197918204056928666840950055174280872139104546281933066689270054398993638003036837446812718355004044036496057799488506030332256539447870959290491719517828235185531649789335115329859608024500696544832989466243121688748128368021720587963481503799276984135254371079628666756386289343619157597103555616954377903438369549492727320971529930901254520116151370533602769102892142229328983757703236533067355818908403009417682124598259510888057418373693297461765687479024781990650336843410993873062351378514479140670298021364361813617230893552132744763372374135150609766720135623943246883727939549896334858159293612877839030672189856731326140952868860508375523524399921667420002082478110995468888553723698984676276916420529511858120432129302977661510820486354350268525712252761797169604475336498678142456253227986361249454629008181243604548086240960328467481428656647498913991843636709977992070146273521720232241177955447658613067099664954047677397682629403582830880497963631592620168732928228383812033487502767438067539348682455694357485903812755938292604389699168481356519281408109789638871386677751756944005150370946666472908970803904143324134641144099427987006001766078881139888430457887667135816181315799979463070238897178775054976668565019777968376911773159997067548211145652419498347736438541762776475662435956482660534672955547097467642908227437778779258363268430685536798898552324956385727792612306543454346679097074372678017487611075580538076889774338231077174171454991661598982224819637196175663619922514818356603074062847515114269718406353616941615278499748655018891871813739896603499022968456410685133598634685068288857347876759410662797143935554815962056770432922303158605450990430407374977107837028317241965171164237136107137276963081160727954939081380760270809522630400351102477388332695204807902074008968917830594104937279510167484528584252468060391127670597506672975240326133124660494565501542430501487321470977115587992076487639476957936971795540895334317510027278848490551334397219657236370029272181428308568906101463275485991577667605619722213733705971725343697688608967180035945586492042632744224519344704851048935635856644895705278703744930802013931862056002178616839874109077152553087156262118915306063195400435123282284950547475872414823177891540660180368027931729315035662286164804510241368049100242320778068710316099670021625842043638622180191224237596744720130187292539502973405708883260351218852514755027669305249331721163877411852599982221906109117848783472097998647140047152901330370591419554675713684370693380431565088800365832438343835577869030995473412227507766199353453358921086480970371133302220601011209187923519535794144166650642088734408884738014500100829355547748409457996416959003809603159497883322476975115023174913170409696326017851118651900931499285909393789129884833837931802393459174658709142003997242012291378265443020791960140888735484992896537381257588527426330593366204329855731614584350815382276034123261902731824164897860268582492149594862296302771962770399041916915492367222182996785167773289937274219930736271937736323430082568135480503139539426077282355416438507550196301646405535985974330918771138125817549993226960683917286697518950349872716324423005880992921495758248198233795979925298767097229271440273501113737508491038269851537830665016614410803717870632234307690895391194600202107472317091335788395029603809909268213679690079507249436048755117989866251392116233630097545960712347134752382207607966011700541788352257293608274182866211465328667478038228781082794407249363494154481701022284367845195437227199822406008357638017221574154795319767466063112818719379079288467823586117236158424843892482813058212425942973981043742500400254417393863254724713774212449516174533385394484174091860609305279120142327054589600508684794367027900303877811214152572082224650923981461491962950108133115021759440866469246344177765889747924491743582297321218999804179074078515828963823182222574612955664580052236896956958905511406746659299177394554871506478556456353574347593537884117237843501664994763340631193544890837483209599443774837906752902205489420106595948269044488371826967316296577738392265910105768819240372837771477322017861867866503774696169886062825371786978313211920738157730465601270862950840499958667594224411595986146146037420858727869044374430439217550634813387802370717854404255044431542382237629732596748562524495381121115207874526079797396759710765473874267231151060252404175132478198952330690269852098491696277984140316750626046932493578404444471796230170412237457650414987622290102226939621643094018125377273459773512631565661364445809775199506395834968255528815411309292968562513708403460769500439487391600986853879720912683849263577914051982552315671643166070924875666506686286100781338789606131230865684058391506261220125010734077098124639165928272030697863652985749056536520096717710628464963476917897493094095161352709149288159254588486122827636501055837205866586643847071533848457334886750036752955253610378184060898440026868102699622088363254039581271584569159708769247726874254733339825939452878394430007104928273977463582438729387949908222576620260976663146728895989831431193001505267955953739493870458670858157603833050172391494532731848030571639598541639297856271784757065831532674758686395569497782900484017768877494830777261523804197154654272848567780555764404217698618322970595689300301213236639563476757897610296290005044535935644421824595220411208769468756407251455666218276197214435213056623337879425789203282644770730699900973336942928454757378973584040249985201384628191562534007545721627079301023502438970381017019729636278509772886619544555511980992772592024613795597954927743028646568321800348775744343896360516079209415356462867204898275127478680758720179925761213746774794428867543569697989306621672013654501579544220468074373631857720841252589524424483764068092268883821671048170105504783660274242145229839874876673402138197945385435323368675178599782434935171278337152262382143603441429711163949182160247649130826596043927946328843779127990598211334264588611278780145975803389853545288075806371087257387554419894748338848414519205943979049565303637356642157964570145892477874439097556561786487806289990597209716984446005688064135162647833663657101282850968734404618855365538000580071054620899492820202910604025235856909184034525063305986030576515237632493479272360368594936475516449761436457426273988778950740536281683839922188596026620717227563592563697839097066969349546180918964077200012365512404086008280978382451435489955994303286557310079958440557169820366572063172093223901495413825923473631871007727452769765126984718501239110746816184116827308260203070235497587163201454238864904741467428947830853927065131670590164539741996508970799725201136818461724258724194495778658426239709160116018158571541302307718376310813066344542476800186755122217304408717626361667606481831031358301663925818097132996773461473412538781438124822378952031140896070186433490773053110126597101532277063140713310707659819886106003248660947657819470709641330620101606859196824597067027469371568239380755310475579147612678146625329513172404075642872520956267505467236313302810521464932949414287288495167321642935412713956575690537951518289246201735359992203175621005001518209374046501169527785700981241417055329738850253383129847015101686216067254606718973418638645451477261556334628651125231712533370744133969247062268592322095994522063408148365638369322229541482782133425191094588193880363147205385343489909743870512241744445664442058538436448082064811297288373481815271351122091767236854753744830965105242319867352538403262572209232436916164735343712578726549209125504888532258904513646471408120843161422440403457177783443688020405517565206204540490431462693438179912142407735663228795256222097546081770552136246338634380962506114112640075414581493986985164545239147400590879118394995935619944383334520289934539921297038838842030173066548784175369993456520104916278352373858359049126340207130031942353926534611646902428167540580128603447717146023876776503570556735137012304080344492050959238255326413008283217418481149808380964977324377634200921509232864283305180013030270340367858232806408398679568026077354959587138237683609596856005938946656632714070273854764167159906494461950307492763818925927623464308712481667344839368079346766259716316125020220196988285046038840835241564274184377016221409206844137525487866623990661423545269672533272778298351287349004226137329856246352350533562151231925400769053277585156749567045352843738496878150614146490125938870780512635922194138709569237445379375281862930676619321230160915547067835477815506492930133025039272617400690056445727203947055469945111150681407998178335355715671147784349774381579683619832664387750797376044517876290640206000840458039891699470134486151063903500934350231037465653908818580852556566867857039796828050485001481361260126425795609873467299463900393683014969434690030556870106302631812115313579690668460962185813054561323574672018852792940347296380613250750945646634242346129900518119147923018984695971252020309429432915886783610959197814588529280905248877163696234434966144088771090528066705315041545846106808224953204833581093564919094776481975199772837911908239535292484669785104818708583026062110471136104682229630986283248699753964172989973095732627818494125160859151269350497873436470808908219379104201909856978977639640889631119832294161033781363758317516535568944898860769084469836471979092578693171590902202231354514414241151707689597053686235570060425192395354405437232033773479922825905995307426252634278079901280204215139784798149073625776920138966044946146149802674322854732376197482980068431467669130946297977427200598386268437307573864868359956041498293627279174188464948090703850688087479644036037710069961268541371794285921059544327915509189823911515618307655669327433750512709395527598891258120528505322443334514226492497441120658621077583718376985141614022663815088632744335744909996942826285216222592792904343120491412716817642202799542695250122887207897628908438415536283812942980415343355632892919974325724531964685994438672392448287710885758971273369525411204477265001783368312406277374846326597601207802257046696234412497216628219358542888933366838667689628635346813280904084233578796518117370573343165106415172379461363176962602189612412992377405055892061438791294957470467898112454863721855907579323937607616850994696569968751708300027631674034392763311482779863887031929326269915928324714413130218030468738351047917067836175582473600055122534904640754886676330137199726271948801261572873371703901789214106562698512229347073995733224950612554017917682501989112566006708943361652893724544148428030320909370060488322156713941798607745437758904867431851271935109379275758614938704223698656986747319017318785654009042764188117154283405406396395954853463839357884930743980745130772188705335679735742606151357878179532503900247800686666260838653902918748071987022186075683484578862419423625223336614212848353318391856370521060057310429253869320290819762318428305361515286515155881487292794576658980418343306422222142814709412797627883615246103646975757273866064217905944734541325028948114900860025793080733690978821107439757771530212128706441981465010104163234802320438913080051392185911118671810998684411961123226553822571661971564044396383269999796507662267184410038418422602048231030288944345724983456012197217890391025283315795847357516128365945122399501889859574924315010550598156808215728579181058976907885104333504660025174731276250648006768021269340547719160592908767755231052994887926134913618783525034769568740053516509996936065372667497351510371619306762439578307004078720952487744511852402976070488121522965056435716014056730906762821091603297605320963262397845144170974934717594365996064980110446928989367426762764063483897023484147498702274537882827709511065955622682369839985858121908675788874400473632861498266547694858893627463973658708283896322576839884196592891608346756947270253022469608985328422808597318030195795825693359787359923777615896636081723337303177729537339884891254917711983598370400863238659661258615622090092212962665061375426204714623545498233783762375008970332811084912334348966768672411823853280655266443446794596990606888380274523739447166742405025904965291851808671801175910473973036301180561972803763167409373735323898282670703740465255363831007241611687781937637733544240043367093107666774529263326537087338042894091834436609016085546929821641589945912899248182293470612969409808241125618551344943067951738159950236150883952470360764278920209847067209243179261684210600720755592405596360706701113448494912693462461032485990263801571392168147818032097724313037986175590083384843864411532521285495523477095659156580156123953747292242929429371026557936177195058841379576049459935837819801845096700616569622264264777629854475981003109269099548772277453959054762119145865947806340660272247008761153167174347853483550627082060043125439864278211483999585741934948717372381231978560142985525096514206776740364913504612504901522880993317201004662438169967059396848335942823108746145998742188957830000654851703499732153177054948289938196246342288941983554925027499458950476578296477757981399829063102208596866656341526127567199414898973320081190100628468310999885514479452467687765860513803641962847325914017501727614851576840950295260934321144717155103697732560619327539638153168551946156451785406757048554679886690692945151410569958196556024331307291740222231943376665307829070279081440072402596436049667843392970108336156647057905544917619232975141226350358410617870109836278857519672537368544411366585249489497444933017420301149931002088944060513357997293729526284875152095426039726796982753351694799929860185798468024670635267586121819506326544140049553926276552769548084646042386104217432315892075506953989142686067837120905854330034118192369683147727433596466270790798802996093886406158766907304658345295099950125386855166225846550127172916468204012456868926404720614643119560824787228379836739813822376937972853146967705133072430362425224488648077303527972507401134303895264834708380725703339780208534065351153011758234808617755750942084505965473395518364902260785295157767448352368856367452013147269874461737054557762263172653947772721891246216120228445490865525955703522444938313499085116946672568621082040359040414711791689095048601193782468716421480134849677071630268007306248374688700967563125515431492381771842583719904330510288689965980111318250868088959876484913407322227140282904160425393876690951849446877595762717303318701224468583901048614768835361677382716685858577983569006412527752788374220935460863197332819120202098714740598416503367297021013053120048662456536782197843819095221652020166056473978654572824395023350004223505871179948848919467883987094269165742368295137491962381181595225182916768719429192694698964789668136670010343904630994480200572533507260897759174716374974393783637762907602401918967718426918573106319465732962254459885706878634768593005763281321321989390076564732271653019289539923550530883258767899105506383895932301742541110458486034939819438078296307604885992014966448807837882170007893508948021868530154002190559537477448697334775332033335522553050087256350236927467501335915931266624021556346686171333796870688906162444739712278120001654685950171731005219635122156941971683629459123394557010699779522811147719236652444257519619040034169012447965086356302240320149104010955291050586848883991550223063376566309307338624554485136550578629803092719846469926910054928312998652906556498951833495339124131391606285293901104736571710975347353609269811181536803612141426435344855657101168165597805650111208084085825189781291895295392304593132431754881868601924421680840068930709025083575629938161627492024462161739953095876042678703721624161474323831790191488798504272398647987636276942196532538565498907572095622116614853035819915937642919515466268959626878259990225792845064252161949469064993154080864909379625835666293826180164596588410133134633641640302960515606939131022325478347311126382810745945218689603275853621992226002775380510398204437262859149524301773350035970170138016690625067300968206536566817446850741842171647528394165325887453955914619615923597478407548430657505730953516562452425820452554209412455668063657354918898587205919900570753956947227732711461710795932835956431512963216209116680037160448137366165659307053730156881295609271493643462734816010253047027922277529769274189243373562154036768841238116622351999878565879556417380549894614778648399379670587327384928661004763910342988598238801879763987334970833768653418853687981401999101865174116670322243217884309291311786054006193222592671776836331359078977936883991330724515565771101839147052359610050349674440008158859472184690258368615930130990346529103612192890187794659414636901038734683839576493525343793208629784832825598415376152137239940791277944817803138603550030050440443407589526621647698340950225215818348329322535414430928466459236025303811634208007911170265313575497948358878371230485665156944627522864760443429973682985497465987490187781816815848303408621254648516126470580573572042803644408862231035245865886641244555162532122304260372166008698299210788889382606640255784925939999305098616177700973339743569686455246235952500003833680027760554174034266641942482317840791461106320269865770939707488719999582816923981163255350731448567516680974342124323730519387073504405047275936840751373774013735231000651201744349199944612579372664062730109637048846882262926456880194670197862322504334157873553694192587467155923348840816410655589533279971944352779775787924335044026219753194736787500518999846888584028666224756947106270808974540282700182037249244716440456205569616608867431223105330976077125700338433693952655804133282530628970803678811008310896868720764344102173683109790391961905241578970322498731907849254028134653990874024543608077937185146412064759163788439134325647625084352959939411507983192768445940593562051389467225010971586662028193164012652078335541299489332488182998232591299113046685518476988267541267691925387238054159466035447417966477454418313293824865177854825210718050062112825325850471728166499525202603094751472476374501847226094704978525515330405576266596653923213839948261772328133325155121645242072366155727178332538937329248531365363046106653825042025197150717985955932933604085083153496421645707566839270377183064824122799708887352555476035956415193656335529390294645992049876325743415062516136318475787092107308956300241887846897787427568170637085446301748296092730621567800299006981155332354567178008059601962962357544937188425081555497049433794617483981928311096546091780344287923781552727799343017023705695806410513845323933146189919162570139227167403728153831013969663066174781149117670186304551711651199593560514057485158790993047564027510348666371661999974650167694089621715525835888963596073580221008251015963321120316143091060877212462790776921902600908822401042565046506433925241861026591906406445702162486225823396225202814327175482281799934442092397447085060878568876808557854166445452126132084768597993111538359251956966831041294590438577682254525030186579178645820003913428379894357240731885620248694310203900833593522335873635962553477325151209345910482695777083941423656559987516048050852147810989476142529263235720613165609482984430773122218079633704337632319946969278995096941248030270680137118516326931936933707305603556044703672075097983747051896402868915827292433716285946252327697958046002180775001823594109697622311457858824409663393985606753326275185474428817771441499245645822412677031708468900699283682811942341680797758537466371269675974308358629450022845007700644205294270229078085536930024835530870608384020836373191723679872389179548371625735826264126126980999905313871225917140892359109808876252800968567126943189447743642764591910199328648766112357253616881458138464577648879241781258050796700165112974284835058413197663611142482993725472905969230225167799759780711274172977345057497968892072683926908061266973823523008273052581628800901712960048254384252838217272928182935459530401408323248610283650151559049371562599837897773836974360982783330566820696600550735962980650733680775022123656469119253144129073629532831719053670060180898024694004516707137264171650903578787842830758741998968543088819152990286822493606724838849889573991573781222750420546205182348232370863857761134741037411405076934573653401905431751147271082852808780795124115368462157436366916736261890740294167767738405967480673357187891686845229319961746188539470279336240894718092646090009041829724010388755292675862214083493005179823064075037861996017516546467248232003561319070608657176219830571599427943205992477997951322590655898908571574208398606019860872923976726841139176051664957707983589882646055248089044032328640978780109207707463527567419784863277212363402051264913130520653425556632651335170878567512952841514439810698238557793721751289879144481951149697211321810822580024829489921216913277932460253611898378862315493937137206114828530496624092011385312936699427178178111904145105693249391033052008673171750720725800390137083071687362214878658420752615482833949654176530514341056619375928505650203498152395036712211316638455594399306286747738367844562782373368442211884693189968115643147836501707935724883300737733288778963878477072414761969739159032342016839703590590409083396488324612029671925651767486323203068691877381572444069935944428517418571697495906902707150071245476227594663480723511951200641517855608182663516078242967075954513744812440568306829177615602253917191889400345660910625742635017653516522899074436281064442349877155174620288259786144338821783036770465179061641815708864935906464774052725531892033835943021435965757011970409316434314721444126050832978529552732204089578670448886265307620310160639671135885581671740589128595013712862280017533365997260762441499981314683323586398339979548586491312601963788649040861331304650990599002295520653573010736123053631127276680789400958028661182969955849724780282934292098631807466607673234603932448367656697382842475470373007563081624215327053047928175806966973271205339436233136024052580490388794911359910797452495202770349426020444349214649251726767281353512147556162015909796941320089858742361813005388276071254682050702334639510219565161274922715043423515254489827562551358967792367497946512192303962204591584688309732957738997891190280108354112857752594553162110384255888932537096333652254351969638325203375545778904213205557939746725844885215513162048411293353149248824895854592216050433773389822632063866992935298769768452860712652552271896812732122366729662714771427052481710674285072995503465729987162171026553628450773997861867350730496091682436347103677221938725860637263003665591838748239703389199894383040151636018444616950500990055822441688583273896866383928818435403958202778378011907673289606173337090505594339535715777309525082494397558637046819732331792231853497109029298079369662025199855406928883278566660959585513213927192284291903623461640842970628814140074377502592039921765434962374943147843511696493639015586686600902266720807003862671722480799444392163689451809897080760175264832720351973963792270884912631314023777299833220464413044882239269622356098008067719700814168234766441220306939841319768521383802478298991543645102574866345396503550487582370684003582653122920861093257430074546699232552068511674954386340139199993273079082931716068111151864703626112054307118375537200695128586940699408240266409185071471766227051135258848622709883697492463536463156862505885648581241743540590471598423524505232331783998053687475771553102861683895965041567447979705626148930311825057092036242362978534301337630872849312881273080917138615455905066023394709295040722065378088405687675843254633394160216748523632790086564824805256089703912436071721094810233075810425055615630292253844833068776414976247751419039392469524582777768595798417424566369539553716398482710681438585989960646056737375090657931775711239528094349680613820035673849900192761463018538162619768301803902106164964104047586241552762279569861605835058357561915928403213089216102217900025844788635491744526043019257792895710376639759942573872573454970483423948727611630535591795397209610641722985263541716605331879171319552819297277075548781221170144862161250730196013004978220563492911745851591286739534906015958190129111477167957876442700583765242839706622856812914084803949375040496102633103583616337841199263751774484668692463114527183673310833838625109953282162471925336391868667395113717461978388920008004675101072324543715017054992568065632090625947961943642818528651483349477242149958916388380517754671841964290402469363839679141529565548071393432460423824837206354278625303152980172902524331200345281808285303013026172713361573359503708459153126915942461123909855682854063257380587090958564585444305407609653496970312632187320075478333020541954948550906226146236236434443122564847837958094888551445567296243883261469084160018489080339885237245876148961484096182238340632125007089543675407957681749840055470751033662494030435517012683624336158076405459611178962724231117758422048135837132739147571924020155544163477141526257706196601135630333267325683550778932138509499830215455643614127482757559574577310642279044935948480027995513539163958330690252797465763674719121774079955678243804591008100533727835831577558861173911921108021387956361741557276128122376280865337042616145329609593176311877824898748127948387155262073131395670305707441535073207772582417900642592874906135388283354889589351412327807528415389673455510451211321323493517047100431079551688693304824522117708992938935368470219685999716431217901986429768287544288364881607163197672929167162590028104309110020156709142350003239997730302269955305582443786440568370252944382851540372562016756779003451716022356498169294612563701633602878753603936924653614048835696634201674601631309346790592511954667553335416295565711171253864489811386051937543014268295621432983610512363040840476359702933750284942008156694508018459795886352167267154972657403925991812328316080307693582980212420114897346898143847518327722531137860078031898937917214598424939684687370870795952877162148690099143046796191583355155889923989267834729507793505049749305333749217487582885261194503785577729811342221261417078417597769233453961895135568460745036993339333877467985465556815896776657565945779563501821939134287826135388262356639758384886823529429656565130455931514939818086269728845785582305911982277024526657926320327324313537225014132320684767565784294101602759688378420150671267443386900753825881627699691967362851739727953737913816644683200744894653548385913772474513747401807884280830369638454356992613862417059253444841302859684752808980525245275372365352609447534016669679502551530482966620341129566640764542638152073663267641038485644806824336497894403065637808783728357954558897427946268909667100639776752466526154167316854552034807433208261245185028181772727079714962665520202520641047040769119181379977652946721289030096895248340099827339874176494197250346740604818146018184437423438986692479886652340871787147268245479670015446992583369653203076432465801673790435097269551677961133012163961151596816713264029573701252822833748383946342595068052205071482633576898274042926346611183342917358432222907201434393978631355328692108296654687760982794426354190985938891563239869321170489837926295045219794939752025071890597773530360882840129394565910766393404101870138442292780898144613974067483931578227944233411634790888278858385870119634168603159616988352031175567948012383662883632714528305599408503263854412098938501822628157015951725213199189778893851538560295775668152395453970239329598288907956354589580824314133119314783559556077928977409925114153939414602239202429828389533284512433421470063454359206471248609306249422409342642846375606717497541359262338437681438052278473342559867483728053551714821674134296296958665917259684863805934178768646041939634147632951611325369693714535823459978989979538738366063326514745264012971918334750086075833246436489747804252973114843963270222481820982145795097008168220885747640475989569845033073607172866774003063690601901386081960917776994136691602267315998118865890219740927084556197141253630540010329570451608427832834986867419659678947280420512420955821151511064816365586868578346020499201906164594934565305650588267546750561418801551734957767570964077972912645798808754004305066492203498421228725776032877502533603756209406923741898731442919921248312242175608544236145352093863360563725054907792296646946676345796950681456536686604285988656092163637108553822177740842282299138381678199023103973998054166282254764791184898070936451368145675223816914836946175467910553225733096476088806700869936454578239232930606260171430066450871020007929243362111725195495916746510811839077620986413582251448438986547277526466728516285205321534000408508074435097269565997223405160156199673753235969541062820383506881511705874911292868827741949671281576201221677726461689529270474592795541085651897072555341842198323665627933437481908696833232876929984820503605893990604320814230222366667836082927548895584092117496698239982319540707827556898373703400545025513762359978079963734228221047135393451469901362884216572166945681727398648522875064259834044276596295162360747810826396526589614973708606818412534048038084634164985917349929154584397429800577154976591773149678398140760691381098032166960997779480791263533127969916131531371720477384596746501094599278574566619253232628548074428490302441412091355633870603450131722918937956042647526926464790396591028430951600995506563888024388871671263121849344810650581755965786288347640707868121884665899197007859410626274191891005656956069006776142554759522301289384235931226402396350882722071550858068328823072470991620285373938949022909214384230999508266230953741397593477131913031178414070130538728920814488184580849549326498954512705093997225276591967551392165691992349643490253632965679311405747329336319394865219458894237963492373263457933730833878680401484378768054185479458148308888719796466720911513851780312704353294665688497827846629932217500468842949564907558797084317742144625617479721707254517547798911786869723217481761458731979075731148080185718900736205682993218320384238858548526643740383413284075575295560962111846388483613685630026477889651983595133609231979475369332478170403345125609893992276559859198935899447920886668461726861721784838243804104426017732884790611411399997447456892859323592723942434276159357748672756859038357254209330785994818411784721171216973888620997250682684594326257654693746087806953594226404528016663771104932287916357999971387820472551887057424225910629098082834538244123333268736987161404358815172627830406020038965116566996081615616255046014637262021202889578580978669926653794763444995860963545209315270788384216461468144138215821973491500562158642584347272173216832117120113408321685161599003647693468120174558558479274404483088350455843357714692229876217224345889735082246068527376488615684340244138107197017598911512993438427798158606937906664306040649439694238663308642106372488386841712584216896885604788734879243294324243031881507786829094441356212376659876311091976084464063715930293687444038888624158186030531997301149366464686523788018868433484957619965744518874369119209003081418922778875755873054369177967516919925395166839407699784425580258987064232709718203866361577353219717943986369194713722943674023803482821359449821545825312164723127038947391692683080864766454102371381621102497501951280996325278592614238903309063561348095083659775622169139095716292885220626418590267217158159920555413472332631927629401312941515465597595660519228887327032701958078154493568699003763817169869206409995775691808072412423011427739379643628710700245303978993035998152842764458464191781736031542617568898705721836325483257612883112724012818877117383933041908407667629565621912242681722078395492888417605269389283185502774087306768000263170022201163592530365903303935746740786386974304313991212068977443083478531991953902342249111219252824739649944740325637780340417305861508123627317419159794284159018050328049784460757696990764789562034784739947959726692456653121891748890374246992287207550451914147127036061324866443407689273620784184175981940031747527051144044140796060418441274514662767158793472673510789988380041258522038505554189372935416070369402812798475284731647891827145657840931163390001633639273583705357490712579965947185651289284814530142028309618756801026466994222093939496285685448819612151836917358810978549724749502663526479909737841435950871515031757201933744422430576225645547367033676031826637410885891400248942550479351202544959533280824397616040474364372245048234396907939098368025122021528595998609910558043706100114921281698535728168884609225220468737212507189927583064215948878471683562925591110994069716572625371653814117047535326380472538732399410305560555469988685139784344063985928266573032249110899996982832438077689235902585042686104601924747130482273642020180097791579011469356608821706497296201513538256719520109662643648358510625194238453656784969779154827637162477934012385783818332057679541569620352533885716535190663359286668960711657865737825118138565528524538268091654187427174153239785343253713229020989871981047752732327519259608517738958560084784018655906866225195293484552832208097715793225687899377488106734635053634668389460681972827106196278767700765865213667599358401947793756384497563391199937669191559460402339828135228090645467397541500576389283311988746420409955362198793476294580896404528141374137436324340863441036889190560727360130900615308362265293105246792912187987283262915720317429636297777160648842190889091623739462698174811067976458654506137393930881757320618634493525623923942727910025606274422825127008611387444400217115545921468114948448208526665072531586747451275313263542453220584914761998903792439202469359988585864355805970019857066868496356945037479097070688067388402984172269279768387064745580481957320442749866908255159517645271766699048253183159753439294250752772581303520801455351204470834118321165669715482952507601801511308411651352744745988946713192434124927847885478380979241022665771684745018769156351479015747472876496915581923119329338944747529574483280888357774825336434769525841469567346534583075825851038983580930442678405650412123649345331691260514800684698751601606897103539231412007302961107322708198105989570377249671106750586481661203070061603875802744776318060667648969162572791160348831799444293020981680249635459854979961157667225959950382365635317191813534194089149299286411507161772893468447437312946087703292377014174543809275200071201045933943823245966326749226646499008105810949653236879376405643567363132455885214446543824364566606226189640083305057207078727028490173717397566909851986383670339074493472437010474339421433715413388546022158461871023252295582343871885486412016145832127226842099920352167549708922810558048170069759498472132027027497420865588412470734806463235516753296684278968540264024690171049065919418662500288136585390795557919225609434458687252769701814871610689668859341839827597874700281863284867376960762378151702314043604306116666525409344685924875251384428316598148455414252357586992814873092709455269865430178538240074478779549848620648582537064197953697868437864000992286685992050378715305084324431223964711059225850368554479619732280857675742564306028343470048603296265887581275141083160811870672862800704651240472482921420054501323605314850387870859320664115217305511929216017978075811993727143309903759177783049969049859080383516496782853286456768656746567109926485878094782514974665639784198093299632659131486678493082173262912434984733791446895103521008034199829810308568459977766340004993395868220777763912567988285476913106378889649952129149797972471207625033526545837498972505730546527765446414262667900652477647991587018802823210238430085247078175312459193427038809246222496816391081486217539376215231464147381615423188734884623183289831317292463757365452412920335455185808830037546051630772085129311831987831060570702447944876171175681551372045895609384824663896376939982465493079825853876654526576598373830230033141734090636008292195306283320144051971133131809080217921468280665175235193788551761514664557548873524471798835097368386477594547658093887134121535384584374108787140600482264423307563914618884630016256630800268899160627893320078369655136398566867080841293720896015052948905015006605191327857480512104988755843412262729406403683459667573737237514777408693101240720806544290359241108145321351915457303856240910146154925205318620473684272102286385086977313675356156887550350825244977063637333401508133734899582520489924034265438408078140440104807985775736728183292604683620159097466502970281353652964630393828875856956665497323921874639159053182176746970832357304932649410670695733597871048903830607693550271431904907797390895114092875297411095025206108695552432484206743070803821914050157984918736025109315583146874479701988343585700565034567435950215860080581278802694732606171114403081457847463790529905108679327649893725885728504232443471834234825255900007331624921183877422575885440951142874195345350078315995445534264427837430723121368082383927971737891312775597218411194245928114211256662856746811652513791303786428797477017462289261890377686314681531190475756103947920763360133350320362810035331228054696814590413270971680872008081207450216743562700441007578887196569180549654671432130692003302463548776065682285006797422528334491292926415326277555099559189419897422137983633869725603128466055392678209587832091360814187499476524524575349892803939118001705881607259643268898261829280397702627683215663462849438618307918128928062672191813100472146787909530051320911848858818865513860385803428789916388613755689448502783818633476607434440895049355602111377461770238694809273249145253401063501085236637485088186228212594507643611287379415170970810067555156614505004767519033685903014884122221051797492067461807491679720903629102627988584112693070836655583083054342668488474700330090614765213724479076969432557109575166539275048061275442565715182070285658574791549483325854650876284952025858318744486188051874871960738029413370835381432559550067986548072117039262135212549612287075574058471442457755272225089382678296820180819662331550155448118126812178619776638287790087378532819596342283268036041489244895763437410595781481977044360848747578186594880749523783391198739891468254590006639845573001985404377137577445286903797433856485909339839029190162350957290027931559407990829972411597848936473560242705020089204291374889974400262235034377977738847460924190209785790337197340808757449496826647958935069691600054670510928406267894659062746574779097039732344117579170135068336212122456444612275984480078430840732171485394755511925558869467245769063936249476911070263483296193160504573381603802954205948858502874597368924129487875777804215611510793370603001103587802153708253400191518871609338499561325549369780705754982299108016043480569923030254992168330411576553850371194633038073979220142671063330140177623563541084367629356696984950925478948520033238149044596214960203430788825445486400029709943329217801630739486820797314534162065159875029785767303034601944950600030394099629574636958413092720625795027647796533988658271590931487043350675475993689009967784185041109293829061603129542550888616588240831057628029742844977953329692112412170310076156500333859538412171382486715756128538693698107951963655323046489598554043809405459849761160902561829049307161995974533862510798712463276926433474804773200019025721803498891053479800574259339276206074298149961337940709458587886020122030754627165853218232688475571138229563205444327226454048584638695690361247676032806169169536111508846224856862810490186799692066027529604470524837978341997331010259713996739306920810226903412973960944785494163200046806099370511542049554521152793246285135180682362254388542952903012416864609619276545008336598716674873576981634763345471709712790407445617349038843170181983551407388047868241460434888839559650031797013076336834041759776873389924327521586211775942881905071218347441374041695427906488833344481358035610091956991051822948403508218076282093616134629427302258274753886919794023460724090320933988013598388247605564403948850357107671588633055056412134582761733818029313048593129632299188578997894007198153357413018768202215991474699776748873734398228922713302755825349687652130059574177754523238112124295849943934577241389798454616655732689833998618972710722124101470705098558344591483968915668401314857137614167634456347145292001630378964496650304584458853843089334455733310990889674284474157684427061842654125951378520961616307211595946024097909055907425041701351920291914638780811249194668922116436129873686226551601697817965256454086004612268810919226056652568689012367365980508428345681284603401981643895929505601260746984318757869141430483747304426865817619280794190155071713904150461435909504511460229932267657292639848251717606087588525800207354184862809471032333470425067783551457054168998821537877347522674767658593622568862928260728598709603789246544903993941908746910771140515331015539365803200458385604203083274283907329021498717123000951965259090857226613671433443578589604384055497602777404723052912917786071450873394921826873622287274194723089277138775542891045951263540027937892619124163649767920723721030267123996847752300489640696262918185629047952129590239154701035350164250134950505506486150026729653398361478633323180509481017527328796198532926745847179911152205589303516653063449651181877061391076463478358430908995711933871281098792849077921301097913243858072023420876886585978469297506333090655234073742790206099142936113166221240174903339735237214833366409087699968081859969506501219676953939031127942626429342231945463755799884447229270825401534064509707213088997831112853049809452071050847826474389997353475449369675918228689587064989650484380013831232380744353781693033887039030171705572526149136026287865568425448084219283623204167169702552929654889520560999867837727949404853836013364538727599672153064941442183435467225279085801519486800392766031307775585998056795485593434674653273227095408237839036621655004415030320972883356160634881185048711394518199266625434387518274096724406853212032021906600006422760222162934131132494910392049797304688940470102602548832584931435942770803668815340529417536469513383605545814118532604175633245726388635105040723569799522457143835101096892993436276453341582914675114567467502706621467911299705900930218342807609691939458663765326782289187577722190020550025433725041842548029404202625020076163611338590012230070852941859193027041139078345562968053874730659586114717590358309483269570824841738019964736120537753472247303119572410772423033293879137521098628686323860409792174825540309584051594490901251391691389825327528004079355448319131680392223774473539085003794438848620261356762276566303162549725270796330316852458459765279091190384514782186972924536908177964501891874641770732543809593377744692652434207279877621294623991920969633332851861068702497552968246201447976432590317528312462876465153302070984344216436276023810933022398723423169404526061261661878649824143598927129724376464801154826909829787016773084122987231990969533914493647301275984096157045040300247099947926725777530708811973183857715303817257392308118072559915952374796894836749213754941219007205508795232234332934369502511776587514579252428058457689070813880571483830418365358597803576608182905241924954628263406379944020056520873856428427817984948288048512449845577560953399676010026319652022520823424089464097060685078685809159999997572432586508685128515113324578293809115852812315746758501458016466992882660391005717767040235633518826033378332513403469288668306474603914221825810901950756424017670348618977932219085092233371018078001009900747225578983004959743665674284478674630146756776771716690229204639457076720857078175273998229412271654622879730394828294809667296252310117298459310423740280213279917506325966519071305759255963441980178876711328331576781686805907396797459814419390221919365804773305770008961189950348043928325167047653715996455275689084463702130309260055518567445744828200081734813820561467116229960357681676070419161073502221180056840393593925943525834366276843818140090635429616824687978494807433982049404463451703473691108827932242033710152642415349632516930183160974185429859093657056813755647351233549235883979920213635230751324178840660609705001330306864761429664980980164277827952916456310865159324801162154304040079463659392147423795553280075919289575819652462585978571352009010769281462501855546184895252381198216311915931255911141310637681909137524795048288274312712671037876931761466688507141144162669590894025608244599987964658113279208159167292029832133625949543288825414128570422478784448358733134325853761979527764389647375818467442050383794552355404512492893816518076574387474577256159294268515211133608017704267483743236970411607243806399891930425469611081899489967874013865698412209227876428286432991736616723602118220424972556168048405088794804391450376532952312586837440633004796212030516864777631552387108484151568029545730367234285644275340812720649514472905244395225529543737213204148475690280557268805661204329555672265321514357414401292831972536563391310670721393868194080090503326707106425096983116423280240987815115658048578665993533574208574346407087720754671644013591427864053387610414188589835992899713635213356229233095739807273627827864338073499531398541045791895522924048411462075035288118777002251894767840070169855946760634543605453748965481295277720702781490227580691531428897943067898926190618855490753897962019564369573192917168496738015786046720762238199204397304057789238966193248112491936974098719711628250329322073763161669903317039316528057796994066263031361635325721837483341086703425810625230623568982677034347802646300402881851740558769864405446314268831503354985946630669960625811351660132624509895477003540905246024015225911620300011162853046887539484051466560440765245363655059823485586655626053335535519537020819839909214976372569234625194875943477988406955447066238665689188296834997287079915988138468388820731572909874676363705814229973904341852246504095163434168120833511476975422523432384106926766651971562369859753999282002449593507013141428536842502607865869270813785196234223389313836574047431749767133019535068536066380671007302366545389982948332282745469044837938516136760741232911850994885936938247298433485782732360932593699145724960803454444554279466001403649533712172462302380666316842162756363180971036857693238450273941902755978880021799590401337565760646868421834837209609344497302652483428858032872995267483151920069563372701408875475473549641441928359280905618648285408256912894584457657047628816649207098529136817836054926174312703827411769952872491681569462633757989356064133654186660394770923997899521624685906034499214047671104450769763466525982032616100392550280760905549542757442167343757451596092167222124101037678758918909313390608599109835704052490879080255412973449602931354346143217844401068891593547857495999146238674202472453548689422529214285104630285086195082718961401393512441842090424065374097889377941398962216170196309460283456289385498566401568835146304761335494591834836729737109584870901274239047530649010083378236951523544457348572359779961375226643855752149664642713954768533057516240288133037454823209291918846093480751768217097371112009375938600505337406121106205740563451583372840713514885304532418265061198608392664378998063782900924263027718786915562666234971215453203447091414861214591899076341748189752150182945631229531624890428332787560997605410337794947698746843422145582616778529983420726003393630217080547090985612903859320638589760644374239391829614685295520591438167540285011822621551311810464582972485138402882830819321597993683531607717179164267979520058338926715107664039324777442805135937284702119684031984564158052826448714573661739844669399658066211976439625290978350282116256264784776832184092810052090143932383517129222887603758731338123338794629250883439458883225825294900835935283765780164311602968148808749865414724418627537991668557315064492265333716566910741746487892155300236431883181893203870243889303039083400901273496315311976157275456846876790728126898230444574680656467896655381383626344145738688378774590257625228460915152954142336930489853816049043007999718524745286561689990749967330140566852836671396371099716789968356977645310029809554123656973743886636014725982911516030872656322413929946720555376960513572256784138651630075156543285177093733640452152648498277024666504722935229236771844138652662690101359074271655341776298421401913030227681119752393785443043505469466066978961734773637939751906179995742485640663022997524787546505948334808934839973478626230714583919766493384053281392127335661313778708894250183308471496610233565491229543788437115426439413429044860715234138234128657303648367107932863675437970942889171132867735945442557782134077991854233737748928135402207097945450770933007330636127676827346405998149401529185800393153535767862028934777870210268972528913678972734311759218146104718255235245552909946662014342699562065818334124092661636536098114528758390282131643509965328665559943798845772230508932915569065359137398611833132771237672510329767912457113808253198672707474145534270262102323826187283117534283877400524454488385938162009008996117372090657319362306885081486220686583792329140825762855595583926185960393615486510628527608850768893071500706700653000070614784276750460939007405556017010301968900801927713745639144088012147268526168033144416001754396425826547877307231387687882435583680381499967285265654290896131122246104370591756127336618935141300484914339833578721314823885596126536945595827645077145613214853016842226798726037069901208023934927741305294155801458773053619684378186541446783815847850052310753268037290878978170709896789948597005373498582548656025603739198844726393813206474217537698937900865694608412982955853778717356673811728676038319005080252683649432776883157630490935167726012529967218470386507667242723680194999924334081815250085083598130303797582968722324776428146813404670938429657437649032759174452547154579570372633477923636836964889749115670950399598064826443646001473221070104919185369108356404750609964620008127929409844027852351821088649830468892140458154504320280694578782774904145398396432177748973642624383676775572777100371911923795481375262552883189283699448164365618616020341266051875299028739879597285332851361543980206968399537986483812628111777832974099129532854684636649259761132593698879988920355312240484246802306692137420267588187178571067682393971105805853815327508044772755007662818453106647077443777355116106771554814451769612286572292725409466022804122498907448387800589354150980612892260090191840678355536274498733081674612340575312431883088106824902536660382990848658062440787754317570028009697597030449357957594290658245514730965669446733022076737332030640287620432035866664342793306047086887073105824731706226817558363832599820414686335838304691018605111661335758844482977001074214463425035659761067013391435545255380205722019948794178752580709647974353982000287304818812579140530744414897948579604323841172296851658980061391346906470382103662478783485514901277960368214911553613990131858044904860710513222463934036904476496003021656005197253299345362895850292473445011349330331129061433827253781444273275300321552559623993560777231201745286382438025295149589522734098622294543967308906284799737390640761962926944910708659769253418927006877096522937605903733931167892913259462880692886239168345563194511818402271700482569718825786266466573856978605048684652887227030744881332340704306552515084861332832440376479216680909861502288358003797319435569866102760495191944704614287444918318754144970869382511426115540548911976088660207206581809509600704478333709015462350805184593833298817758076320953265213695210404118552325625312365931928843647161096941979426993570991047062314100603818257767037705190818408798724736678566801680376238902365147558617260277920302877183308176573024781235408114588812606182985491287285630989337221784640596864243207480121020334568286293521584451643009575084804130245072824706294022797750027238097329938104169462967082009399572783220500630521836521710256529482281141300690848028570503118753748888721853348465281113297633727328092948332301941289217662163832327107809910557536426668132719439417384730177557724727055803341790674713751831169621635230615123447176475218894937324869844957840689256557112414324592722855157352457057721358973465675448201720249308393623373950596987694774401021103664394517961650073076874736288610890779825882210931075339007417070993657472814450373840137962595060968059341115639434310185581946791350988525645945306399669215752995873970946596805406831784969076261929573002657160664750356952388925492013001341453115060526936587948289772308853303029175384073661944420110679405619909746821002363076804392071108221933750394846343525751441575446973012249180355028018186417148221028177465360667244994893107580800271286622813921227005694851667973359908876374273757692354336614680353154840722666645903692898370983753053666559953128466384143948384060024775026266011366985568846499509868261998964046235043404418445701353417430780121037982986443755908785469305980255468975697425458496272221977469339436267016214963022726522514779293213757457071993801840184838243233349585854426483773768462076533815218715074685730514968239643004058459460962711553931854511905242000262875947426784162821579691799124252912633569538742257842960442653991303204877999786197438976412057198526904831792173210102829710159312616700469231562766741538854041358167235312787909976283940323348993306653442615362292928781942603640364426623632319328319752547999447597271374167180945052608174346944362570230297944131598857300920947163550871874584955307514437271419055703994790364545348237536325891600965951828013720863708059254393423627263852245755395423948942397888663958023518409048107208913125898861444203713565679237530364347097437427176862317461160853902904379291236266647051660755861162306087876514763129766818267253595743885971511832731242007190408555931957169418785681231626675507232928203735085746214940864842255727082919565734277900416425705129812555951654375328026339567180245980714852628201811680128941020835197439434536476420645455918779933822794607678121514848014336561779935930890954602074500245357609701638645939625656845452150638292113782292762327178192377204792173626807675294723030997219517920813807887545437372742397631759442014173513731473211374552073212856354363657526898298100194907129322109017150652747808097335172595095231368703330694063824045987711902699643738493756536055494375604722541099313428918130136779826804326103370436778293661292091015151661562450962992959439692273624706367685136954180604923248232552145820577188713286140358670683985791790680627510289049452757585089550938219359178651775402190973536746018175782820082834109967301882555499820773315036280615812530757575728586663502615206262265931574606570500716721855274473761945776881754912405607019738246495228767749081709939702500641481664288507916799310381987927159037253673557206145440619839263321723506119973214075467878477232374574231544829271826316084360012102148807837153983299583316214773940007743556207106462140051689526141247845184479889432758339043713678878617168987346275165415432392523163525600099420311271562283301263218894049833780661081406334076200357400619170081844902907772202734384428567446077806421118525451655145928776634691719877144530092859819654380985055478291649497191956034187472620249121515799974539697623135067670724649474119217154596766106556108386980107610793934929738892063101911114111381668365732255221736172206433649168524633840465047454433601065157083943905398193294939246879386332927667995750584915913530614646002673055953960262924361887279996984428069875352876477393980846465565069975568420309566352373919545124193575285925509362899153760120957601090716173337408931578179336192526685290094724016211178163364822927080047985172032675617539762855628326406667014581034356330130516231371350666221043244392469411988788160534710489301621688576829192503293145574358290084119879780703130871835516470603753372683986147590650982012453532121675500480610634091262975281824642270092900314572840183216748100105460188384110472729360299439856544331940156577681022003519048216835340142828199156385281031815255355384179744958718969800730014755169160667544420387183516803221333827124586461094988383935878760716992984444951661748885461588701292527631438385078227964604749318723385444659910806157956775022518848049220936526536079577973027318097131867319133374831214916147065375948566507097123561330016279664977438386019302696307199894358392012461546178336374345261200158608643833558270888533248533769856922307374684263520610383459716334127268192577170257056360554973477115198878680335894740928448879867036061376645205021743827629385498105448198329447314975793305631786603200947465197010375231851497165999613246545332348356454000168732186776675737777087092745387106289397841575050875498328786118264513262788511133726332682959475292562598673326093264391098629117714894809648061207602538852082869458972703384148138091053772611476713897999533555846335607447507114268083147249450603428720183270838174164959336389053108725184661534794365754480321776585726366213939181842858430215722746265989848374113273192647847356860693654337898595718273755888543865396494339873214386149145640845672710695535245817738017767511175604372160173498645724036309746193135066559376083813055203335750498202510041218438794270621834660169687327579606410782660314336931303988504064911580971576727648268969232787306407738966007450519280005093415451971343098991682930573970900458080402852737266354918007092722605198141471974989409542551763387366399038416092344364163089039483820608476007838216405403611038598146154368611990670566880044786173610371751777694690264914554945228230970855935700480502535900349231712382253623412698647670466325379055722261156188326733840642934642102787130431832762523585487867618782280968487478016035076066739298111591913352646536116152778831256316606352394393215607506730548435009233984128572168275431263729186763154970145556002858351226021319548803200946111899351413703221616210155362749604305722807355406443856518978092904932043745178603311977040528021472076087472497901208517048663543271251607107668527107442319457557379675269307649802861229865651285622230548996769347414023164568975457235951477588773077202901328924546520589307255695961194270781039296888061679710265583924060229799144911557251864586683589232940772858027479174973760921866138233761386034044861770003567456251314708123845583677088305985002239130403637775636160695879380017476302149712832767083687809080990371292312162194584341311898315462013607109117339253814878927410284891900672556885493282436377571875649165548455441498607620326102092957646667127149272371520434404361851296239657812962116460360029421131856035338782384849201569857358583061585451488641072185789956241657260540890559971447363412934094546337498689618084146183878432997588251722345680972900442927016873876952583484218299523835969689710215549451119104577829914519812849966121426431197161154569360377589624390922411963269826829678534877429383750297711421471082507724466988423830487667402190316354712864147377778903509788645520804199925932765653137101745499958755058720659330592898253496131674596539267345853209032821964519736807766444809083577784481270610277517137171430036890708475674791750594960901957499850225989106562139036954049439254587844962976993675276497104872485424649068561665495785042014149486675499820791401001677763796408654689945351429545952127297127307625241529208242298612162058424947657035005430735572780152618447726936682495726221489217480000004783942262970141244313112506125457601586490712553291611361513708628369006599130242136592917061951458356473116490808519345481427010528618118203952307318657245337141605054719486642122065248201209928596196289132299960327035947327799366222691748295114857031613809016692885991356945664690509699822421066615061706751344423610288934910756421816486326520350122013519911320867064420686469990566865161418255729755237525155035227026988220773076629630234954662499418370119080602393051482408252938794212685449978430017654051600977075480169204523792276849358175925750875445268973809659398309895955355992956887822677263849827419433232658467607116240182447824162627509423939174851374208097798137533811256991068825521814118089175767442442305739945683803553511289029625778139976370715569330184375511703834087212716283756379657939709766870676485416703893741307465458566255212545047934843919377888581910100314411553452710236310903986251328802629511945710353539607817807393092742194466013451118520158239952881476535923277144742486654531332109510862205718928879370462690977579567109242419595594049673262967320998573141897165150832619717102282570054936087868781168203919843372952746662547967892396272988463478046722967246546602059185501646726369632920127351987234735334546659015497220130555366212851525235288269259156149486516408873626455903222113963629446933929345598389010203218034139666961853055650632459829960704263443821992251305906281258508555360919299463952776271478557472914310018102484691079943085543940698576333648472731582050218412515322806115565238930136050773889207814036975628649022519392906449076956190869195936322823036000908522367972891271086799945951211307135115189572834834950645051258092312482741040179509199975749675267539578601652671736682831822732929968155453891945734040492883703991493733026271764703371697841161022060511717503866334142072989194711763369095927354274266489962218537118523288385981804765751883210701304619011887698553615253375692006473261935588738049444533862986165475418195185699802071274074641041426946600979638406543824146516067265042785661299120498669438160845464377689450673544891235552351652700724822430293796227904089860976517532562824473309473290345686953148278763705561053902904938687298792541054632616948093974208285459484927634366949102278610218935488666794022153518938051568900843118925364392542857971065501139028794991138550759144294360236040754916717506308898624607890823375210602426000638340252786139509475161442373092993253347207834277250301173435332639130842655340188745307150300319089388759924441070978786661048196233542917031280806020446290089499807351841336908147177322957254092313809326728970899223738570075351862856257405478456857067082318560019735664106250706556663898506900788509105501709318522143852829922786364937109474383184466041201615106273468871543127061449995961250964758674402975377277267081038433043104756257752978327452817765801093746266232562310143992985057426219509213692889281461683585809776406639864336363843612182859573597016444914976070863930891060745640037628426553647023581225254480077848656153009335190574358210443116423873328377508653329000688023399360654334957227519516649423885233862806600997162363600475257808749668504386221437553249274169063926608372210200163867330410400305863763584769062206273294438881730424066216422191602826356753724597079411555888854411833671227264424544118929877650726846790939432871421321365418404831196710193732213250340445953492914131396988066744976842820509881066106992701826858271695773138379331532644396647904931963595566037561783403635959967949918619423255984590141847004233282590407510375776646862888819937801943362425489394482642064705627311266019961073402231966021791141888356536483641344417961200090403564492649932766568199040447208978790190319346782603210943249006969774992719446058680537866087503158072012086416837361919649200666208234292577743004073918244794968966816413919114580670228262815022865258127435659574924770597156988742436392579835706650809199883793522207952133354863558605790300516777549750107422177492629052734872413095857336795870761356302155464486520181187956038876941857684227065729005736038716794402092145975247867402787982877911328443348918557960987364740677178393214064326306894835419326037682639817958943546798020531357885408396804955273695073535909037813533049376142890448386761728003820408786474787007774091880432670373980693128284338816160571026944868541286573838055349808890439221409402197356169152635409618948578151948629232346196505602566022210781407692809955279008368056851305602691553268135161687341521561122927188885709063590825982276334192295108577415658298751474506522349379432404235658250729947330441879877531220506100529719764129342597343146760985305267948720230388991849766802496044744663876008725174258652993442902991583215242218532740155613353330119559165269719368429507092227457609960953178750193627778013927168084589587817514493738407402994494253839811032132884915781466018664133624358391194203533220666808106989726130449145492713403050427081401215823597610261281629063692070402033956600089174154392497798769141309068064498880460947145383641008585074259721030057982017414417511575013454059322120585158559009492615405696497315046920081966969649522942136382662757795731720901243987551016346353431128490539468557109879943333592355348010320697600350748329826351060222658880782973759245729573337174662234097288775094981193230303361057063944336809278553860216250881521392827140641930023158224158955320375387115597548557934497527608143985482412320262044542040216367520867435810712865745868656223226035984848787852667038051414700388210468691942744350512812916996831761471820410165205238399989388816302286513296209080012825637344116131190052452032813465313445154832628399645952211210133229282663744475205683311793235632094742692545884916789961834044092464335843131323647649019446424948209154970344367363375767131879692523987684120100975663891064502348752412336691561105973654744492025592588613866874388869672370699246447753549559436338540873044796806268889491574085683804626216977887747040203024531328503239950672104052309393826589152095814965073911449092170373347831568854790093467237901425252474751406304604319851987137700939211367383726224751696739048336705679762246396374266265527153282208014535548029385939529182749100626083898404191063880233607101286198856323949187878243333852664914914702544213719772742129781322144925149670127787259098205519928124617031395580286564419563115937073907215749994395638076262982208743316855421708907874996883979146004369611737287543362145445232596749850497628928658533678618136126019375545033753896149142159409462528606473204731075069461784996701933200107717011136227320045233411553132017984976117701388241186010276341841931266666293861543864949943968085636521756492073638518660045546692990720224411332603772632564107020341843166869835800060768202760365253583293981133903833907926190384201605307041683856573581093346472517309077326238686435063562347242135753428598209116127974393124187090560628677617553921262772076343921052523731131500350257515250987065682008654783132794806698398543026726104226264806614693538184841593873621840886147584708210430520464651138710688736459604635479568390334729403975509313997731319358542317598250966152954605662514421622242853880006989535105515827956306274784868412828879540678156099896753779708039386341655367287452143501229809031821847655442550470254410051613389851081734091093096328209853035586601471855834591749644254389425388743447681205849381038851256326044530735831846502422086151487501612540061511155561562987292706640305651569861970005687572258257012963541854377793193172272588286735019630846390126784321879972896706200575011152404202279795089897048458308571685086428160866954398628098293998126350618248995434460247081208027600147140140677209947016893235705299724846710501982845789672701491689696073126437238838344850978363405238729219080481357737395178120568360187541141892097669320381414723430879119072418161084594009531494181514399041944480712552745844373675329164493997474436718762005248656665118606933845487357652792243572155102027816940562964980572062166826121114704611527351919946425289601687883944778103019088798847278340970676218662460480658427692840861609802394658167315613623150270506532744934004551738675170020643924044152346789118286595470302216759120066900899651655531073031595964582188667306440284095037985818647481871708970438460603189591383831463208879429810483213315358025578473028325446139067987254309662759249502711028504425377772985695222692725442001036802763976674970208522588862541232260380136125393766829441575290569027494385543878029973795937102567828059050669261373092970296679411564944319797625430409280811312690241317889452736564638721395201456680979015059651186844825105519575667356184150773632704209314890673157221926633955785375451285759899896096548441852357483447037024689790432907516560519131459121239227098199960784405540157211197595676312966752969200203524900460904655033508682322603887593568529611341224946132974204537883424170378167689861171718661331025492198616776212004411010077412880795264688917592223637488647376718106893583834314495222638749377662301498074717702635051728529497497885492156004489573631534318319665738616541216265253980357646776317482536559515128689783057127463077813546494412550561119402281102933083619266645432311602283108913491701527988234038679890222299272590787872271506430307129878545795851268822921066025750863688645342648534974193053648118876979350736649332828306560297393069316779922269559063325153940610341490776344875117967767227767418368957964724076410304775435372535911652509082795965203181093031935417471229786213625564006501116986931965290219894844845716410080323178752484477514664758575555128476859286726952361939871518890352844740139006320578016355568455115403183241740502128463131466256141535219801130233233074113529493943504189303893024594122725617280842266043422342350326207043435176843937680411331379107585128226886950680618362122822949865260720885118392517221587385219631248128430066330828481811650517897351322567087332828554663731308907771787661856787502278743959695985718830994218405694930207810058944708691246644126634773547105280402919032327557519696497627086475993593170285954555397747223156991159483907942357176264833476431346615488592285186257853280639026138588884258381736295567128109671967510329397630019334017522403184177021991317673901966984335019786149216962724859004588838559291504697265029353136947687388218064043327428108769831868199821262851628487982289987494899570506335074196958805454391234916493717086419425550666460552286397552882514900281374663384537226215228595074958833441528826628287304207915235051636405682109665369371611835962969950173575411183670508181003939003899197469987993645840561589824450070593302308369467372920759116326627500006975023602747978542474766275964375471349563216147337417772748938485111533275420680836876761478286580995463296502169285616550488234521752710746829112941925342610235110654815981923791430257758155861047899846872993538607903849933449659865554339976734364525119436001402907630583517471549347323353006349919610442144199863477927528664568114711965517597733052762888183904509798009484883538121174572944474749696273565614735771333591326075945693656156007816765890154396887546067587529214633822698786772486931144035846370177833237244316710918929741141612350377626961288811536465322133060674480603735847855902594129269382103251541051556377349970530357701447820314687980202133991280684807017727479009294419382461353661149248411439412365729146088323476524168295378965712175348769866034943489743393331553381794720584497400122971806451918492145072488602035683895116117837756403573257689489069401361747508895862568562365669254571919098042623209309933062107308484901776156724036970258409318620995764963973643608187962085995298883564937490669788477246744256504670433035130668426295653754453809829577948120363316296285422188454244061023326574890342799273264641035214227428888304070764827523515272567038479539747037365925622939795999871904714201813839192551630040886558554319598277463201334360916419335487052858611864329976940760239531977587672821753942084086292398350938101845398921793745405396837287770966863668098439615638655635046095577576386430651492775408028697150983223403761544851151720994695290474281708782925144247063499821452860740081832463703439355393993283707315897927192808865775279878007712870621772100857390858287635557997398007127972737031783697261871484468020052990740349915976932587085478528479734424374435729100735785501743732441703852778646628194926342654411603255720434089084346799798566987846598970614890524943500075302953429210047032614192080166070841215950318999895159991886972034143342183752665003618369882914945438337142373679948441870023583746509498105650187560895466426600677141152812498013871068368874611347128747425169312243204703610442297987894006893520140044008007412307957673051738780760767792431333020969011245930701748306594328839461577193247373426388002365648065685247657142078135892635656093343633136385142660695360096038311072088374410015261574353151327217167627817983289825642310589521959096125215441249439718573731733476000015442936901584697069894819334060695746457194951660822075099718681965216379393236611764717315449122641492626171190682700844288224958422997432651022459154724159202817970085452655200655572123181635445983649641040605088446679300608900006171666451243754601318215052264554599691910860584845961727416634931481194563686226750177548767232809604067324851457381035744570923937225937174942145049269873702964053860518568527278549072508613942519100763853841446721602488401884879659802211397072770684764306346200375618799823212673378130258104255537378477537042364599286863340302028532426771793230065689523889622928858521940297468098016873053165568679556161078317089531552335442075695426345664622541849408997414126051791066700043685098792965722213784312967989123987054189191618077820379474293298794634826952483308615797752045947453159659037644890931383658686205570231889790639355033593347449835190414462257915908639729115140159114513897119898743439776827868059085046652779036788853536242281401986550393536058747061145984746489667376239260105265025253444210094120920831128519382286855849290982796699210997880167138731373909993978326489129784520588205749405688115800574751186122848658053510037936190840797285309549431645041142210361145024589631313492002686852832359310667273899212860163863009595793885529272261143827915878701570193173395787859535067422591231334433239726153328893611935919566463539807884447195717562111632274271735166758004042114860966794396623536060037262427977739437198183615722555158142362416766665217279006875680098239358015714144670613842978213631684007941939744142796207234588607838241009146449592808666600094496757382015971281722623772081060608208957380825463510962269653500321341226028665875155687933697771375124920792525207048890863801911794306857684214655544716834982252857852471507410208818955850429029331131444540659541254933063643304118492736777607408468364415439110837268241090203130963427324856297030710271190843615522468134685101248752928283032881311629658876408455090545036255834342998384655348459530839479859251390045942951457394259738057345925900708004765606275193028496082483545227502047717645401627135603380441378935606997121060985648362229383694049202615415713497967852091974191904138954188886236244988381682856840591040255567701680797373632582646255453593393334173027105104409599652780779093480811187689202847425479094383414051546914800727716363004273544624108283249228432426797231938156106873628529329818203123039770514833152409285166289401072794133977286072537138510709227936546694511074877953246977369171448297103455749571411763321915010089078578035679760598306731038167097518369233902062788769731402647233720261516300784273534674914211997030336917711262170670030605822128359461623889344973724271696305549258032556262003399651241445188620127326033734025207663631676279858797545751219957861061890483241734982812593989284584525707644350712941401359557577503888963308988104609399882156179434592060125100712650975784819181795109882174741107025653055575189377566948433649150667949895873562831591684769584038421518231517954423345375489142176409724837977666900332301970598899012666088412630478143241732772694405055587874417053947896595528854354055791267007281399862464755053500691734964230596779510498191595133044390668385100407775852774645509534238806293784989931543322216451568173860035561268020054260227602014683471449592900747502476314559112762401102821376123983254390462835467011951461330450444940035487658198243829299000365427655994593484101047212579645649247597227987082169151871362903138706782244605385656023632147205214844218561159286687972777327643095549129770577488080431840977331610743231884339217269369715929915322999615438296035656481813269238030380575732909351893731774910016138237444687458504782751825490693259207434681706470066288381147649603979668592586933009779484100148266722312214745961956587637483005932337219652613487849374538482711081528484416980183598334026809829757400471109449092675762111390159819291639006176705015769418644502376242545159699057733626416054632419221842827897030089417503578408984819890330826264318465045631457206062569572850093394270855622535329528014948084646279869153583094531311225530070859219732917926566489378307881189030443981328820623145946005375039549222752486736084345788865174177612646998068218178155757240916370573923549811516748856141160409878755314490688471378222995465782014094895374962824436863068363551144258181039680230235754963249371659603552478872118200146277602564052205692252494462226122647968158324893716870555591094801535462828057225557570586096293238132087142756361525444569719812525657106235223320033495312566494700951503542490192277913339418945642905589118074937044647714473434734594328882757686703272983707552046156567534851209562273635767915481069065882400749229075636955626051408824415479796038059997685704371304259137829698324411809490846488096021002703012649918227764807821248738201964705293797536116153340087949333781981605001832545765863297639562367231280112392758718045231243884447150006227598961775780740873552216146093004103689670658721547849836064430503042719506324060278737679998950540891016337831404319126835304206986218582531843221735539293375317509499977705280453461513823023006023821950951169394989228409728777751696210138210732565575243543489023742272795269555922421217973481487018948098735934745981105992204205305222044249292410729653657213097032018908477260838252715311283018496864580656525092689973714703954948056972201836984427988589532733947987870008207044991131323739059166846331236828920634379160844797069577818067045016073950465662953760935413994232313278862783954674216032377152177708912747385296580092703300465111693509629903857394870456264139049887414794067478992691302952982366156255042291845474728358606750049328941418868762159110504647969384108705338649486836153168838871226835271096075452338194066989643461328847210475446340053077216417979260914442417143896101653130902803346563376935392609286694597417981875651463896226727426324439130918446542807820097984238201933422202776095028463765613502479993140500523374888357416505600315690181533967029158735239349611298836162473473467568004790452177822964082695571103929262726143916796652108182691644458555791999421391601826628133319903478704377365307172427879074776045408768967534915889890930664397811323426070780742471606559115941273510161489795386951121114382763019530708769694345668629295018490275965742429358171846696407938432475312429298977313950748660861682568217260155942117076989979909020552377118495094334560931755532021978126994678047572964094885800290476709160760548000597562458579759907034848786901359203943221914955971673945871073068719743928153112896559574276953530335700659631294112762545859199508003548581550794421190790504463448234314357896342297041833868412698560976449436526551287103952278973797978892817271960870289680031151055352243610594161249731895636699648591160735003308389846740976034080532650440319032142277215864378996962511514359999022850441358430563563743135708567165726632430030428425567018264741679818368661548779798980849935434926484096385448069582032708430098979893284073966299219422830828353018348190523767416738616972654258226394819450864947790877249627276870998507868823922706307674471547112879515017817073207000723470994741606400141470400247077698233161071006099731948600773958150915720044676228212097250178635683945996253984811830660904053157456578165552220297461218076582710675433785641586462559263615211535005526953195691073893455652901993552942726666387314257586328899439444505925108636754409565590730864955249217438206190745876871330672802202568682364464619689323044161629080277305038645473409809920767240958091494165851120941373795061218954791006483781679243120715740316588159384871489723869840849291927030082824668788654355079640672203189212245807864872737313111226666418573410759850035476782711771761263401011018105327884727960872487999963933592621218933464245296243577270117979899798578942278225043419632327321553391210547538293893253227218576246549390722853842843276849267821225937213639478122567119343456070591311557870290219977382607339721594868705123264880791953849098586070249739585772732682878144385336135471627470555438844545462304409372925220586883495074243168820569672710273034993472155700074669620553110441555447845733465541499579116162079684345962943653569793094954860861228430231510169062135047230609795966698598963308351470158273185071567836823063279107385215975934183814828870563828625985367093266824832603205123425832570406738133650953103403048724213793587431173499843728527459398153245694319672347691073762150431124647634805676287838193177740455101194969912245698556048139171399233296047858303729560957199809577540178398119732353228267748383766305857344256477801614650048611943314824640511864887683031549741038653497754949609209463400886202929000178995504200625347910857860319922725706271383951963103142447741387630407287437098148373405340484021108002310559243941154366475789866183397527571585559113246208660599276853653587647050539855936994466288467885247659421522957321882331583611753204073874692303698912258894990459900475732550915123699162492806268382261098373676126699003573505872327366014451186246167433199662460795823776515602724282057408827266327142128031506508656300880167751848284763492982412121769659373850472379555065850735884688986469090663263200145817602934952076886604987519074308069273142400926846876040879577092744608069955019815798266389082044036710369152472503558524162760385143849763634909694747058515960260059141153862464252337322615823083017192403373874756329705252113917577885158349428592649853559111846345215975621632143735652583215175019100031147091798603070017421097697536731820180181599719373233226416262783759892753591369774678616225237730694983839250833265442955451830038660147854600118259883847438174122270547893023521151687893045068782567757644432098422236536799870453435463803899227422098155882334676746017113340351776742864268580577288235476234360467490358134316410462871063101182720977969477541866524165314624793202932949587628516848187699953228014433867174520538076565982874853752955587345036724538496293081305498010858746207895260285556701902466969888080975657964110514989526928343879705609359265581293113518944547757501923334352132905919760484255758716215156882639420222921552403744439397625657225540242422963976031761246616546294456985348602488691178274585095825020668592066653531053837615921538270058799221844454022994555954469403072916931723898914944488639609461806964034027572629652576178388769955384309793021655490388966694742933629935296557493438085656487795492291198142360534220168642094982563470396814501763178605467948709386525273155783861678117338055551726296557619019957422600814034412518082405236234236686740077921717913259499075462635141659117159819077116302183946473762788449792378664741021224276137310467372144732054582441005001496049806058017015403530114529327481289740801695130417582599811231645097028237036914114464079647802197344222884965735304806663008612147503089140194370499421077748457492690313748838107757426283037544495032049753828386896034748456559838856594563676046820450982549546341971792070362532269436147632311890721953375648007018600913685957399665961159641953992374784415671103667193863651666766626345427297536682713209013141475637511366304522711859141785459516853767645739118486803395955705853284697971970703537754894704911053132525155061938068733173647185589893257591966055815573229079021759129910914243607906736400686476060768480082715627180980683494899366717367241890451192870864529797028032144300004846408477904678970347593932921087453116533808265974617526657065153277714575610330235137796350918608747919793386940009577952001183947390250517525222883262256307647289693806690661421774404620035402396245643357587174069765460368692235777370689210049272945745764765990729967887535378780404574566312986355472051848565272433696946926344816812379183975767397016881171562749116500867971836721875473580205515256902011493164775239077404014631169307254685722056559518035401709352379689198066982337098110563568202745200361487688491897771913208030651975462520730581683354520918733059409867952308285786246295032197747177214324943493393702746139088991821758287286265391200950831192944085074205140905470440728062081555862849203969266509890466180039683725730027389089229238578005279543372235729312714058736462533428648483026271097366134184620288722633983752235318844857102737956700013473124748616221846390119913959703182909197876398386428529153523809326399832476844114040946533954118926599670160262070501355586280274995176186098124729983803017872100513733761144635920712312143073954327167492843215243999479700508827402062259914713646484872176115822853434981193123648935381731163635018861686975263514476353840919462303045138458202867911768052233711915820609990242276049247334087031264245009046931072278371090957587621117436818023082039948302149557511189696948324759581225666190033621600085540541264607818866917847570004133844743405555814105855269297282858533779666911476020352238452866536359405662336214548658465937140092044196543832251177473054782857850897658802756021205468818343767008885736110708314986758702341656106417575238344443048926453528808934402917924903969175133258399839122279912325899963650124709659811574925124007021715833487497559292016526545606330033103901827170732606320005682408738385197646361491448149989756867926158251005563352316535954393129862318666058529994551850231380776888895948115310573546288503142656185570108631237136833567383495465698122558614020057860376855164233475290082570826478825524792065473595542550784615492580976321982937018077320156026686728097066597488983319282281056526764370042397811210986015764294689486034892017294164739100149657652569205285914946800297622197534683174455259522337253491996843075974992545161947040044698503128333510088039683086116175418676951991718625133456451472121856947321963381336129867422981716500117253834453244324989399168521232069895080290248755788105464089235075487833655388664267172738907430129282396110150461640554223475499018245128822742502770252350816442958200683239110132079843799758685345042620816709921362049884789875456817472194430989071772929387079804469716182367859782139114574984707235436648984498611240729492205611579648285373980987196423332374709888581123359726317962666054823903306741730628515853120897163560240405279948855338842596682003968564171434446754680847604359573652814377929005403318237697959783282018849692615570308407267166369528981143811117574318374621486784708956711193744928038186659786978442701052721716896747630952575984907043104801993726889743674366097148357445475152492581553030256129576177834543669790922448914482767657200171736179727500707436159669715274154245064917953410371604584177040128070967167216400347149898800532700531715700939014985002749715548432976684508045347663806348969531053899153906864153468484573301475964714979667053687105062290428381115481166285476990083796996135069767401633611480639839755971143547527151913470399020694252887135162864159408729508839796043429641281706640106210144389036720785289686209851574515142968285732544448380855745829626781951260737431156274096851228051333389100314855145821218840850881129317989764216786195464985339616883408007965570273889965932741162247865107407110563689197963441160520793282041527480681994340284110316687332707405103405134281102752295950384534944570357737049407112328031598507161625144840263479419494013017382324823751185530172113949819570472061361504098035836621482621049847882037647677208092480442891463842181556446289652743191576967719629648526186850673829546449974038805517851583409725262499381662739979050993545786277144729810548922841634915921885216041624463584688032541723795381164379355984088455818944256869081203936797197648927701563909030821857528463125334277213602511036913297783364005683844823751218796164936907998103248790258752825213354814857216159196756945578923877494195849215487574168609318767471967851090440921070211012224677803156254310767638247650830669374399901897766671134678563760548760147337415174774267624864019081532791624247312276058690637162855022864636365334435094124364333714546642392573801834141026446775447970030021068919443965495670290527049134292731613463112776881802276441665307345320426838084199848736580835255080678195874227350797141633447464071082279323103347310509990427982238715844227414238985303872240184900645884567155737370314110808539779721193979647476111918562650809373913691544435919978705310917180289974018925110741708549668446605725040470375505944911138096211742223026575355542640591836254658576890894080126835549847466201962889590303258352446039773762123625363984792399040861292656970331655077185869245961048746814768606584030304568484803512813803045593254603544934151869220440196051107306586846183590283365004360776305009437400828066574075942836267345444784425047221136156004722109131576005052555056165167353493967935115736148035874977783212220505441849275847116596463551290802481779973539113996023291356934378453713498352118207617097376256156569489329260886533952971096638632236306517379703290746206522317443071564933417054979261222636042612254865443176394843149321637620651669847392104860597065294551249007579363172346259746567661918302493253647439875725549352632965813367137686006664032143945110359537347386673019335107705389174784802534688857052206722469599287317683364701949375575854321459364139719667666506735057296578030778151964686919504453424501852289001808939327224441997422627877962677499477845216771525821200232381234309239072650584058944772025958305773461944439619334385850169931085434615528125192552530952790028086728984202285127010426926758445443337127517132038342875550670782045785907014133579210432010588383702746911990058026727304956792839569381984070998603124645042847836647914876371990113714655735646703034128973536702936084299084140516293632537604005494850078671466943370396145659567205715918907131418103657712005274134985869246940611538941275939562052265155120197887587007300565040111735437343906615268567612693224294724150153305963055492223139173129127661432787613831678529470467475973609259795310066235823777766551937954156625694877647298697012884875210360895738622295881428415999652215122706377330565401827798655013048730209116665361703823583325995612620586099216171336150437356254188052718704850075899575195797965430849899304627574221245006862771809012049445266098465981780136171816607681903489324811257394689197432353280402039569467794990430263674123957173766952319973135118470596980577158114235855812645256448789185281037269465538691740305355750076313291797484288320930751107057038215110115249726113273615261049535935927189476465361690303968759809266101729157375513185324195326869605408820620531250497976096855256647031595648319547402039859275392066819518047637409699860780506338140826519495985635889959788462521035775983981336787842298069291699863554044212938537977463625924486089459801657293079450431734320729107685990239303624250387557441892056552727074956550664470197507855823274056487964753527700613108726789128344422115068436408881970857645095412412587764547291283775013408108542831930179313218299260596560133516416121673051743930930283328018042046951410228396280098075920810963581596965777348260754494458132278438811380661995388944065005142333983212412361668112543789649428727471349508418081438834614720239930614929351691188899261305075720389312403810732233217060468597745499792246458900422227523359981108251558069770344411280428519178507017950080921537611428577715260191558937740406403760575389817294185480118258367242816362432751054617681756857051498637403771010698722379825868765479242367769220367647973222231906305633712541969123258611893060833612657491448710873942458926964580823136686623353203993191356212087144426245551072591857022727450492384059892248847609125750669408890335048093172560244346703851009765714858319526027059975263661727966968140022236919270878917760754815825883718622736806915847930709537811825533148079909330261116801560749988809201860384824686011682632071215979615364514406612013895628537995630715421166396706357684577328449167078847529643936415638523513994922075278021819856082510658814802852932678620340649667593433817883115316150955286128146272970709708306319786788359431878972919666907300021186175191286501654447898903685191766005991081050093154778394895804862153863955742251611407251709830895118306029057151479111725388223780993853056222741494615706371103557046067271171815525723619775303212197509033935762307706759785502384759625888519643587354381053799634681073175377200174673832848191059710148527597848548370180365788115157446938732932235256909353128472726480760976928964079227962663519933156170515137865908748735169303559570554782117044767005513208679900163481400930537906222220719348690162444091843585136986761172751717229107571466441292674022347574581081510701840829818853190801973784953310469171328455955446107876196245946917640532788510397139454293933233956761378354729496602289491253714776355688963948457048894205723885301056249697386096154224649457268279996862787463632797238623051908098121749938464640222937297744588060802032145859696522211120036148874195276590901054772979765016760436625210360315191319851687784860516547083744463439099493462846793635758349247630987443531149217254016447419569553607806584634222661661502704656959571002497234350342247533871810535022223353271045122178846131705193595926967691541182396922892406087543905884280009015103054552859854508684884334530026369509640800374709672467575509827906415757444630381408978074219080047258620998469897925285115791286029670981402881598839499419078765343752689831059579856738910624407423744822973328159160184074628766614421567564297992636673650673900416405484201402360352696399680729992373728595016121739955539286243913536110259480700620107300117841762823413841353602336340807654973206282662472852017777016102818110902459182101404451507965462511259822696448045155532936060458137553129273822898143192680374040432080136875565141736587875528838426658479668267761652819244816670134320467471774895687684343139211233061433572860521652528030755437109847887970806471723686162172854814907606737631196487219436141136326219511632990910178037673722835470327497954213420323997124987666623911756871448497865360219261182841686533743870263207850567867383767284434941117496409079819684942257549512617277118307542677149842101126087319930982183746706553965298810287401057728032735800135575374039942437859476075262462370359788793486633698854855572224679282122227031943674892946069866641294783589048657747033049717785944512344034362113874515755153190173862041043859375008211382087885223251482021550473447688972649652086423796763454953075299482411548798139340295341343520040319563924698789628229630432411726459586879167788609865720120759647092801886064969565755596579425383270865498437277665031419129853912420500675777630782924417615272450811500817538735969342501473865803660162770983129803264560681304058241034168702326650857655495133631595304951548679972868064371664621347337742068324844904388773305616301666322176263733802449096622495217081253607699495428584517343711194778047335298711282028414778434417696965957865942289746464550097646291767028983803068896980499304744592851934405828587621796986078553577542965102740893898475070957256488401172364087698631943675894136417505214208892195504146388767780911117713964462386115610462387183725888684224997503715366842510887690308210556173709935241787013056736087085368252213756718494405297665750195981381549864216952686307914375046979884821505314432936107708962641384783598213553046665247754824036894873813952639192198628578357250459708083183471138124250512082719885863852707879404758867345018622986647594638204464560682555470927538754040581975011437467201032608059737089307524112901824553121534050038710900756923885271690031604877669957740976018169499020366491593090420135320787123651065730345552767203791266990433904345007280801815170529961933627204846605325685141829060737814478750674925554093049276535628476120677266546070458414750736289390669811533446235281751765078983950540762585856199338710808157451860300684678381074659068534696132620194055401667955214745241644596773704172672654242737678782753150172629427888396528648836665451152083295675279148701042769849124056347497489608342290902140735436201719510071173809714433418199742206816788311647948112837178604234148106950678842208836368588274362844452287975476233655519415887430987442068310536363175278035935185463239054281266178605075618289181187520809050563597169995832383622841785950031112176853078777795059234304213029579134802922301875102797995070924684001621936169715986012718432143175483038341035631134476865548303697163716120959422505632828242750658874183862439986615936823065207619550692552166474994876242995710353140608816719531298597431085533622648382623072027477949690968767255379869188290866191897446801606518481807253164482922140286289727638171732448035440179498643075564352933627609733610028892665935559544139130192263715800437097765870214941649574969457757270064496207499087258802796595505362124783647427785233229138386618432264121291790349877464038077246995127879281586614528179665733705329649892447806616023330357258986697621306828174634774579429466812510072531034863419351703066207689790231126668516304159497982196281988472096882922000205727145702259939991323209253771369584326834741775987616847338686741685909480752742716102027854746451778246557479714945746436768362934337801834628444390017216626872185810630371082739899299324893030207415038786815053862627158038766669950678747205260331898579506667398221625183112534590338077386987490375362639453607318177346519722764654733960727352478197013575291385751545163076114192095443318340994764352924421116999381615566940724784413096164786887720096713142612705596307940744304558733547904188591721688966803962757283330186770365272380097979202313544216285312294754261192068706154537734019493151191582247051415722437543520835471664450421875515289547682844247898686609724853726646126111001350876387586149454067958572951184765754651133327644387134467053207819884006087181679201373560374876324867043640591370603488409753229384441617414354691660325343016592357382935836839520561020177988159620028875283387100200791106792709576906143986339188732313745555359358266758930526129741222426311772697053502359050826297910546854887610398868586021616828814151234594722232580547776132208625856109013708433522944644156400382037624671459615713678463439345164926115854785089784948965791841696066450959931955864181030473947921809926300573971734093346024889380382013542998417387151488513335403281713130478778494832683174983622579530062138034121332953956087393721961357952334669731731026144438495258461549626614551264873819122696861351291658138252382403093754168311497579982995565664615248470929740723670397439598899008525441443257439387856718452090588233146263747712227601004969006816978375898759363677079478353419270871791159582530407537580284783678087784579467478520420793303780797143742786942025047147988855115603794263448415441123177934493058045113414591926558977472020338674677191465568533033759645984862598909333727627308980219150189437479253696295927928554738573264774793673959716607881699091986152282024741704668818111028634410078052693884612727748056497036432412152689164481250892399494692009443872713657694610916404982653520032510464535188934309695115926584672984305095379545527859943738447310877739810305807281046775802833030015559851895062111395108455496483943337596034412216146586288418173465055454349862357651368583030457869485784061221781684236928757699268817159369417972431113860509765952952734816924898692719415444156156355213214713539789406330297370104537394229412940904266043788640848283699962904823111931929244950679794625293164002478609086303334128369589646675964213500163275624019210347824707130067742665207251335796137874802427641688576842928970916985308287599773218170854664938673379339848428330328877825188145568960439885333030000272008082583243402863350372139508576920145315607086634133056625347662173551853693085860857192613423213791695232293678345407276980463743689241732343494923950258536193101713945484411040074596791643054927558531935509544214950653895181807788373587016908719160442813818238010392839596420560289644752075736376262669292075324408635784900914170332236313882040886489107143585973864076978143033515899320272253537111162140411928046880185558267575836289141340377580700567850711798047165203897815317588536093325942788974946937511687959410140577767083466406081081977072060041288854716888772665997195607818042796861918296907355266044613919380411013148783604250560771815263784027493953585919534977076309732447302148531943662242261097821254444512364217963436658333874163253416117330913681951259940700684866549561588587686100274648419808054094867053122044944104954918913241616850842045806065002222583599990512906138922306397669180265193822172268215925253288918500100930915086019808391490405745824725472586728174322411666346501879319201284073326746174151843854806608449060415642516399380289963353942393868576759947859072960401124098427805442306134235355991872836981575240231889449167932706958512056624165250905943925220099799590887765871948096755508772963061183667688098059487776642633109098863027718774173499574439575944865372807148127265888305346247158739861815856252470050449302654179884960620717378214295657314824410491084231481153406908423792760090211221799886380065357549461788037529396884281055612578455753127963659416652782308540395904526759941850577033484963736947053644311917122671484171456279178443742596270619982006870690285442869859468030580829987610197414281955488864401843860375182779396064924052883251968079054448957449535477739973017669229132249220581994783376530724161155506536228784642833734184286657364821495709504895134094716097911160908303790377005632524141235779089343397150800816059222028881886325485479404578241411928850097220361976959093509821850475328309619562524543447930342583963443947399518540948969288444016254740633941552297967298680716173734275228728473849051542641021248489079387426819766649846388520955752189167391056279483301506837206938950817248467307247524583050592975046155533727867342622676913207222477272497288629010656638437451217000966197018176186389874644245893622726209539604494339728514753599948127362381018571092939163574618532102043906307666238607078101082625426705176886703887601519819135842826146733950357629434919192274106329667151493864474734060964439373267941222802826391939814596526137079803935449603459987014790657245893301272072325684111272071357616364085588144661671248326765326562941683644521821042584802967812199469520099798693785741849956906347344049674942099338382289464083610026812836913651126055572374557059188182423744542183674534503977267638911988648376668052322026493027804579299950696150536112364756034190731169980022667849610392564343930085256338805801040945407589174217903591942702997775166848265759078238633971756327374579598040845636648840267779428945295836076024459593570031666975286365526919936987044114790195559301732028892460787809715010935044776894226709412009422671030670809532302555275368032999372152901533924935505813355233233033168658480937223010643616840503336038196829753308764573088188158385473105941451109746076637145113076490103918301471483384174554871494546151971646023947568644168930616245570156884310035270898308880446364575160548525644898260063058485066473406100193807027843036967096888338609728084724828730176546659108663669571094423145950856565570767150603319217334804598178798758526620621780890897280778672186745787688616437542694424863785339805308099302194821500215734631818593457160076188491391935533820967441561868938393547701314784955212989592119217650336296964352551641643119625417659579070200961704772026589445331848979971939847502209196858984182090792978090303237514476887907224665575092040652739296041058332267912219784354039378663354189122959727559819530762630623276853087584513110069386675034307170854784770233135943941452762868451129422184750662015446359258890661672649539995288450535511939086659529072365913709024371582308001743342058505774437638122600272687651226911230909472509484934595739421886260492538799633908551509611423388821412585047946779116297891813561220911482040181452949803242597007144270434311880284254226085010844333433295755425460774647313800960312746847030959678257632259088408038052842373895188287642024372378425418035782193267293157027660655925052986258028764328017888650926424600314275789155961147617450019643772695140184769644550924042527500490959132093268222796883817953210204176844885135664889329602733878584277221260485795821234709608410014205282732070243233767190370174270530423164674231478018651453540370381660839417193870571928393949600254458711380378863288522602985404119620350370768982441053516079980281523724126219080642546063628499577681281220927991054042799486059813738699304639743105739993588075949364815585587522745048592925234259760710487754894815928585626884072983785813129969175657559634175861398566770224443112121712449480595360596499780579436515002844787175764528664550075991905341970804850849259548282698960109751316713902624509773956070602263356611408562279237224418145241433690795935309735555004416021489166854651154014413848950259975613863693863362784850679401980632410856160040795651433590339173491803838244350716821710672246316874456580256667851801906770095526427425232587198544397536593267130262941477909636470402552805117912958690019401944189902314096840839064223625003954606703554847814141702017041811283478800274215952324346186521474679252626666863998304104981552487889660583683613094502143920982472105403128262395825195995648715166017265056359546919712706379286432447433542721696170992012779956788112184813337159668050125025616328135435476347219606462758697082800591848493753526305356706224701709256290433619137678607657320675023583970963108256740649060238707733914769495664137505540415410295873205565002960399158734571206947176262384293593002619059500657091237964095895097038865574701484177920248141121983537407091256890001379373790811228501384972290622357341737786410682387495983934099746228208326474466095154524210070801685425987363338519120604450329548165291609773338293461088459926452241209309080444637142811414803420366762257615409298725626506325775662639380695075240344335002742022457864012146702425343748257307179192921623877742062194226913480497892940469387056379919892234248330574691550543142112019936705190895886064441689242364903085409140506064487441358992773440768747286628965281074684565596409655913642208056488755304130993908888841002840212809134248003925528953366747221572883924528279780704725104347301658214374153600769397908822785855483539251557953771598992485421281247437920076227850569611967912797033132473845826703433145515736996763214050122948923665988889083079533101571888889387545574873934503322757066047942467834359812980146853321005908868193481006452533106908651462246342199938115978037751800802938970347918946353946706134328647795807303900181027123192507327214203704205516968542709102367770709526975747898740968977217884132338609097489316208832918791105550862753659946031274746108465955142917044277535620777781127243303289359759678923707028829703626244375242510403961417358129676926315474327984069829702125718106001668340046255598324678560550305471797269693673856416501832953569362741917734255533983380861795913223005258955550014856255366917423216822976221027224323190290851165758373125469787724501840389198257658169013688170381170348420930887292352799845419402051133814588086081817347259018507865369164636691608891631882794606392734546324849707824400134000339452081750659561352470329470854892916955569757740264433092752568834985340837449095661206342349894240645462991975035396053930788250683235555703626965458840680685925186457044635583707059136580781997067281428438849251901060328413996877472137008450739290441600278713069737817588832301132640703419602162971320367652908583467994649599882713271923752196865640781855810626791763269737491806771291928165273745069377854050835669910287405013832128182722140885744416125654571631233760193220935064423730664068295979672789246368381983169098275863619822513008753781307491190609792912257417253925302059604847143953472261072541710652597835917228537141349387390060782465039824975463570745039529579848655781337079628744052475390877613760448297546883139190159439401839106316550227931121307555742777734761012576384468217005656110489457840309052049283652832824613351995775613079503861737535837563551146076879828685971235252740109731004815826397485850764031291593672492529319227672867702636028965458799778133004482203547148045082929009881008779816507935994866665585668768742554398423824019170127805567078108751976210977642481325881557349813194490064181795991665028615367305734877962958540139216891043806909788168966322029357380748538590455805977705395824329327346006048292054906627900589202391760006799731483347118227937320746511300205900993399668531819267295117090103180593734892619593099223826234152193486584637593199556332378413207793109414642402247062381628025927052399909746340670466861832127816092652473730404467298431179290260953560058994099918230978301266040708562902275753271870571830750495930975877781686456263379460369200136279153379102190970372659152940399976580899536317820452455874991549648016924934872171667116412942626078739975911154716181634688700661012881990754265274432416377060707371352997631613416403200825754463492685328318085983786132579222837664812018529141870054191801227303855306593900544148280265636702174058368078065903991419585143829391962151167446573588635132256868297669613813537505064557238844781714526693726549423942983774468710304197974048353087623058384574417955705923600597361430194149716990787631708139446735239023687379332243805076191619970291742584773066242419155505280886878170103180154985091957307087549783630128051817387747011469902754643505711916784168672826205796369392922930541999099064159985686295308968660395726811438028599493027648215534691658589950943325877500062218906096987048636883350004268563552729617946749566957761657359131783118475580973938698044329399328363030006865806840162197384150678074268628417138952711926336051894136525913051503515158874724396996274314361188750175142855452551889381691637627734678882936281691902061490954313112600116262052671391483790444188809062957014815743071914407779801047570000633935376833649154749962012664817882868202541459244524907403384847786053444091198593111840418903302624636325500292136976664840530311142906628448337437908382816990447061517913528915164427966406712464346390316060543913160556819562868192054335612939810393955009340644554207602447901911357265976122204071700818146412656060784320653988201110301028610373107315962979094415428937119795112694714813583705257844200844332655287665783449833634996816727117468155294895255975552068891481323839379939266499775188824924215929293582326781822388300116546174283706713161792466746226458830723020937627234566120362756373278210099527372997185392379751686799279820953272878497399787883342900166763491238043269170416346318755810439983483366470352099912658869183933129458928394889893409842711516060396397099640903302275681836201097216607554978335308924548865906229955900468730579001483088484826821972163715774969035162371409380032302750072545866465223261518746696896435886693134377494039007980383812279490837380377903676160683213180189084378830114725214280264655903294665365787822768193475230617269216391820733002902852451963622402743265849049065692669604714875018299691209920469563606693890954093686059644019957316960383900054488074897169513903962626309902873853607673143730638292912548770497021087030016451019566955852938375860865657177407521584891955002740527767151737135480753139320161983616015658345246090299828305883194204805465311157061227626340334921854631742989289630187621999565160965553430415076287652111657319432991226102906200782693094947032360543505685933407569100442649699664451200654985279487547449469270399035548898048874438306861054990326352564652510054624117696848789732798207707036375346120987814541781881836268563998898731843028066903148040224624116014515662573406908857117688925100639556663161099624999471462883524152961603525018745363415072387632413818977332740176205998955252643579955502570239296691550096911718757392720506619479217886994904887297710797601149944611381493109296746350547140226158826431844680812724710226115854912412511647015747548523044257245675729341076288035652436854470701205579638232178810927519240545329682023249449744014557142170046539161821136157232921178305313345426497997267657155509017218752029242161267233625879855510604552889307227289112945048100146485561971373583984444627048932522808512983349876999903260040103004958059760155856281946239045577852040016072482872254419527188786587017277571214642994325747576166799633592488154988441657155968125003748031065996926222918271680865445342531704985531702755238812018720434196774309133837287599605212504594256920545570499907218756460910430188823745975795906246020502445465333551864445400306102512882464843279292324837969389445550101223063084942681892368261309553869194585677540403052373273189180746321053038957067343423196067272286415901839213932219808866050323607619991130770007953470126302372265402811309647359567959333453684779359385323018733384748619590457707876813948188248489529971147621717215804375163161111116053494357811250932258418025272093572491384322231089061150455047323886473368219380305792784188139379611103468722966640761797522431127874458653471413156606939789702087533343012913036893769707591167909828984320708373481964914552710410629761106463034349543861006708471484970968757180909919645351385117261953798821008688757889280570048599408984703032593758157899628145028093630794408913594164325968455314888450098785697312151086220880395742738270576296236750226765847444530681555400017025878802403759964124313376249156722762687955631606121949533092924159669777611399870649791894661900120895263050766940510724700065172241513638747622245228286800530625511832614473395969662159830017356837755145723924330336006529867751382729027635043894659171606823569559486528147210237715079532114452934151999739999815436926866854638850100778967907785786650481003394420956890256057393499739448315944269597367820125009179060986406733953769091212124744354042062331553846246999583002931187560692194282190232412278431652136646651220421514997738730425209652427581379821254993599287184084716323940555307451714757073352178469707933006906314869089843989829464988235483558611652984813751168705109269095974494878821063245234026299447528686843182472507539049238582835246705707471948776618684254867084916505819018376176559111904038010911883528383002025901316036868348444377048580936171374466431786960363057293834379288403199445952473819151404320673690404125515675571443792978524224917645108902312904798820627456380629689963782386734789519280469782245066292754821255080408534931020869248739464165299840805033399698263154438072817625087135965601730009955609775323228412271254181633441922746651439561050130224851723539788309147329913127277400067120718404933458936924878773347305884813478281845071393878025788994834021844761728022856664437592652408165903903188431008040652626118570556015787812148216140847975279990154480366492870712372406398898591677946300205574714495468188990451145926356914513151013200622261322735353276890389152942314285036892433427094542721126584286813798706084673616721918654324738578948806368003802546496598888082912884395203695801959889908825631744713720202485656305266671794619930010832902624958572881072576666428834347797928650881864433643805301978292019560554395308686312705218369463567448175075712195929186076986118726208226525463107365417494313585507213367507186107833968073962157781360306321932772832400084120176747479784245181072484860849861085113891974646927007852612505107793111832043934418994920747424010361243635511082301151401639974950182395102988824482266550294698050398642834324118678589678847867775842555609211413794935389061485652803846168354478753731477704352796128484455357896921687875034269020499882564631033750607550789805072878041325476658507828115986143983521829910193193858061857595721942144824334920819741067868464679336555931837039260498094403882918546471418031648422342766030720315280092345568441030440833971397175697971413906724673657929490022840387974099810651939951418856195212870575795328150132720923012827723688891753354265119547403805776038652393971041598018269279097779841405039854051535820762159496245449890429463296358317774053438692634180850050771728607018050518999095896965218573099354600714111690871764444446798574134034582135043440706475208401064483539750475099225391762477220854631758919833680715315555608341140618131741343287535149173150885488805332305650668027892608139900487846429358037096361634215247790265125791632970560531955790282581355680846527321696930846676903249251218307121256710234776954102381658475356055715278598547192709167024278621397348380540331987077724291460198199366290434348794215611124147839922119366050767390133156215461388104940560081218412802499335951523071601726481341861387597573028984864763107410965095781372160225308601430852279481475619534277917333537785298839956799778434644824165217313501719215742391767405974697383590516327439891505261833451336464792368117732323455570819884349401782649942522731672388652617969961405173279057056893356413689287933814517599216469717838391148902007324305023859707155924453655059022285189747467411480670405094790583966687079536472922887851677249807156626016798211954406719816721061522916313097366797596715680203242278536357649676327107753461318201758856268138496244870710489223990139371272167548213061864349813437620345834756484755577419320876581376022844629442389708133525871402865028400518224153378180222619984890027159530567718941108417836457727564845573344146033530024515785083283348837681665968077436738873593004882676789353515573696895359727454420338961633398852977018854157690661873470157664720505961397163623512076712105847813300880332807035772940517366420421673393150610042714996822796535997438938861521502414119807137082265588341020557950875703336847571057150338650044375896584400110567443062307926541566731820553668340469099829774826682940787059427628777320781361894103788714755914565046723204557574165806611219027594661425278207998501991944433017029581598426999523716191622608242876915309139454668026889678602959284911173594761324516992073794859338854520177580184493962772180441581146631619837273391152928562271204408109373144209738210342651192094462914466252731337396250744477010569432440565054397257734993946295409640047585678788738311135377891447131310663126336821588267227179688177409010038165100936406227225649365221230109449719835315142266200123741883244315082193530253308042464250873808287469689812339014355114560616237105190763687973406559809501680817351089174914225839620795067608167324765253914518604470700295136885197422803994087311770408800297389598082708570742183235214176484570011804702645141877337849905280635067071956662288418843940319913423906983495001359823435941776037811575619619308850334863157258773975115176531284391912690040812393360506705314717814138963207577844023291263175640032398321302407908809362540543228826648752229078746092138238430312850936651300944787084271872259167070787330027161673409687174565929815365545228123758352303296451813839742580816486662663092075990083127796468895647646627883454758773149443978203755472817409742675710940702761679064401677781995523059160935068389459719977020298682026381177669339753521971543948398022177880436707486770463932320100894626627416692361526634060656193904038390565989227887985739859261865915829958045505907033168422443076336189897710609202269878882265373226476562687339711252470951724081974241514899502917755453850827460014869981946806758510444482142143844588622774160742698667011340788325123027427582744698613140236310870292098773865442890577638530756861813005500939617633811331364067963648210597004593845464094551072543150223627534159923581704164632734622486333473578024409281577836513377248656516192486053150969091059387014768721671685278945210314577530304843594624939258587638578675284903380853122477847917463481311888217177881697749780531311673946273541354178162553163454273371326144504573042187628646807825509795042921775018443406927007903013057619066501856613475081981608404928734051307035347231402437145388107677643852528436413715584763775790212663419122941657513920027066443045959371790527430284942995335362602153996335981811591296858874410948965516896030402102282420087296237972591316921902357790934135343911971750163146375474534593900847635649712844284029431126233283543788386176662732933109994828506786437269108705548805067671241091590789574092914769319425498351811628015610111515904842432178779107358651420371860144769266052054304890723363496201674630983908593670685640628023612767493159639312098595785566291037892048357021670130277957083152256370001373046115451741904936562547706847349131234375474516576552498099825122934152985282937647813970999147297094088140312214981250693324056122525124652744198521623141426311854261820136422483631788463894678206729315682961683859715341161271409035182323773101458550767889157622097555296858663632734284011704757503817824204344438868264204641687985740132536153983607154470621098524876251288111766746238654579055607906175987078710201288920870407575415982588909351432121628612013327913025592356811818570895334881155644973949484806682711491964871480886243914235793371162235588076817234274450383705589841182708677554591790980924224130781143818855413726443708509627831393650182467534381183843263157064406370716975514404847280782030242032776996194117239003966714710192244561336890002964777849950576830121470909136908569665468719473808917005524159021909827831553968543714027238543877000022187686336154438762747428190948734019755417009189693839524839066272297006767227847253746579628776087875495466842531620058372199546940190256763642796706542456818094977421361907732215481174827391674622112759476199017481539611514306151213084726250599438381991734245073543552376051440698673147975842098254956054967710549060326918873027440359843772184622285990148465334820912733908505670284351460797841346068244155601597463844167601378849413613322532794051890877122454476522967213338231129864128002596582889389213946236924129102153103752893566296360779401275947430070069341532497683548910269663256910864280329291097255802771659135761832931081080825204824601617068319156831013490136858442245744755623500287974795780575890168279618135203552940635373454329279263295782538917451119319156550230768577828684342429332638115161987813320659993204561264385206821220163978085229262932009149717352276487295866879452054760005110307944312332002218385938088381524361095049561127348892793811434279356675441388788702846272219663846576148198962435765385068789642248322117885838725646160848464457861288115790752935333218088611122207843014383700083712441951070267445205644768724995124463793570134577270925356253468421528565134116493705658482964938235084218240742031503920441863908499379041337353086741642095451340859234015647937279852641462550499359268003200725257066995979871614080703090338198130494424627819771859350297347233879071666488372136822448419080540420684642472160636979944214427783735507684436235792287078417893341041007608881556269072682575738494036992930511248987693894728161173305751040311135873079204751227609400203776317424739021431182785291699784883241771538920406319402222111232406624273032677761790872667469443737545505211045762592457511740513327974457183884677590788155982816936285248408370549232096494228363425091465518335625800758270473955661180271581578806329661385714071972708123413632370999631617486674424093506783042891898162277041787285805259837954966635255512992401648676308543552728553149963076104550282661001328892723919289644639174808496146382862366522598712037852847980742071858267297354600626108782870063337092128197944183594815675896542334006667066114815376959698786597995159827588153144422087892794421234291764535409575624163859357904145510489958342334480503347377334259283221522686956312460509244349064911938446292243346732163284318166127211171333349388610342778592377727443999807034662718741510878655127809583236101079350004787833697011047065152976227311251679782421147557813136462467217232220637215318157823417468341624458950245646194077506624666965988749266199238244860942446113911717423324346802356027342422871364821327497103972475649283817815620519285711702339498615789443692123072276082667432313270600774690812668790489848872515746443889764072870880345035019261477220334064211430845737022732914042272822612670618777264937118074909010536257170351478860518972037297313767162200281118401008463275087235852923383572406706641628974891557407167122751852293288507106254065934256642871444182884021820252620364549834598610048981028180086422788734418937570110543193558631023534704912715557242207725257705619951263417797312976717380757907805263025435072545418608051990101199452598693119935344093494195106058489154882397788225665588455893651118984691042142221620101555293327482763166875809209117748922353369075148995283200772902151637315210329474434019716973979016448898800724656521580689352029621558457122334465664933350139913878659390560483931042302707206175032646084988746353408186921838631083940994397405291551558219798803514445501526426124155946539657222386757245909550370099450993725861116008823177226151187999669259084306985785607286598564806506953887343431046875832353371722475406417922791379382269577287683490166330179029359956416722443100082343597339199954468677541729667875674411734178155557309928186173467975107316310359447133858380929214249806446948714383616151083038098476124858559473883670248553679642346994360939296495824105981367135510896582164450634737558470435216565812264063271609723423364364847261288879334135634247372423865662601568881085299631142702260842525691642394764350428743130064901436706572236281625565877427505301930426263418604457019745893411307514762583750611603608931432473892930769234250748165523468758131982096231360533540816320474586913827040609713581529528772046910339256594992114356163185607830652127502924046284931263770368426874612795123051242545992272181907644396703932589535243846961603338482658337462665926538825286076039669664588538028435400867419271337278370339745288016838213815459687446225188712044833069556662510614424840141094790467465842457425021815162350691062861736431605900590776821068441652892735884057796305286298849538930738740227952744274181744579940661430472817521635286080655186716710870982579208601869082051054973235240353291577419975092382390975724020336078162407706357119850465446311395241547325692719935700707353814223888206913178475944720205257002055745995430802985012207751066044750908242184755365960420957606001782304602624237564061955076005559083155508656296326215906648738911084763604024750749980381900757218094906440486704581170022673090732361240362977234111391566660935729053555986377755175747163517165626005531875222599543507265147084076193694014421360131818258764974916401110661209561551811251399838879150884704049938812717882916151548815044368818020365597558950166953814466031210582099390646342725216249619986821351398380748671606095374059641745650659637476513865929954735298656255269007219810561174528616298873331084827839388079970236284150563950182799929748612851196262399740451636567821747376749902125956914091597026094067733413842916414611799043412753469490737786124660876326586656918281975857766517656825289511029932794611135360203627088676945038953737919801251998944457054045769846576435003977852923966964218976762099208632113710262230820893994937543881372851331924925964223681230434030525852476062175826825880576096581478912470005151192244430614982836081796566766485094917847272281400739885651954610836509371666291339697851991953001844634913189381803919496907107593793617781489712524561747190307757159590681746561295775033272128137842844445915252150160278831877162154822976559312301394516674297636647894028896835497170504012615221071449704339725471907148789678494849137350486426158257403636616897052791566171275248506858868161076423216369514155377647036439142179331969910823383024173323550861731298081533063577059896189442840742612851597623362185851025535098326357777420797308750816537928051465750955150552331567553256643262066496203951271100587459426775072261696866754174011468374586737050565134604977474445173745009485560796769469933958772941831557004543407709256818789572111436768659187738330018791332292288171457378022750016378716759746515187538148728721062985816732172967150847093052787852915699726817239732475148026714813605586893162504964081570122986214727774454530831514529887562460609691065535443218356206693070071118925054963609739950772843552691825695790121195804473789560840245984750714302076647474571546789818071279816713647579823062532910743044142167761520398079840489529987315397209843031596903109879742311043588826317221863427629690255344841705363486373358451705080905965530319483987717589182005875216229858190206648103639579583780727907682479028755560167452009563113445010433706162703472449306919879349874082841160690815673344798441575425349956401011305955506282606703955596677801104350107319261843720064234870852981777795123021657496996519494746049511220878319249884333383772776032541268827562003248795540478218821265362473019532428654940838046019838008500580090134740618929833953022873005019138205941830680028854368607402220466862012818956287686931201080061935102081275693065639540331539697118805289762386260961460277815271244934571602154630428981952016120776259056657556761914242496924560916061534517650350349608062482972965497526555101717328748254826660393374437030323048199877176143457503247285084817146628375483050083960303644727202130834260012507213990217543721156268611434423842783608831021060389513540646901108966094919029895826207516577713971992767500768909852724467245451599138581071125552038203962805100393669062198974786774435790482159477919951246644716233487640975001283546557724038649303633236477494002118630235773085965308636680023690397419945865048388843730739875512735007501727817313875143843571398975865492080076729191082093915614853972909507280379189142909587594603918799418330727026196479956910509897473250703892451898365861221250235511491392568699577725954106601145475062595068141532796216374833842148338155725956867027041951226775409877797400638759702640834504528803310468453548866151719522130932097541067705520258845495083892625983915299442233750594655973596519312632452621501232347823240377922034578937429484109575836559662706426753699518458365832055122586268951126757620788967906618091615645304971064024898472939229331907310025491011718636755779717205576494889486588896130790659996015148089187300449823223055058992566235335418162151530605189202403831009792250777091947386691686466000069754979721897778248784065792588770129743657140284046800251487891229038950497025427503998425303618035384398073613023863597977461617440244723554290221592927811539806088243014231309617241985551140069149695791135273643860009649570449446459299169312203127316364495368344524405395583486836848202266065298762424136603079071243224780596341883227016658806888561306766848115548858527304469974359671015268760944432603563661791284396948018916355479260112621616434133755441224035965866191070011127541666341171613064579678198985645799806601911288706090764284127008188572367518030796126273087791014352735747932795377131246732917896620046934955500987223801172351889231168601142630944742198984614407429511692062844475629374655007887053979427579010457209869415037659191130829786549696263460131569174962970030961449092957478502094613668685520784826524282517571984212303817742630262735585326579540991229669504880684852171348181507661636697309704928773432354187349929197355252289510091950741538774795171938624155788961389600764690628292701900160055560492473091846092673215084650373008187339790136570347739429586117028904804131380305951784372783902154282938783011035405959079106627480758803644194450212923113615438797382824394543146226506780164009022299873374602667812914981942462653393694310090449382251246531809993916726459128083026930800178534324773201153272919431591418470181303275700335317569814176004610923206169966363207453578953728131933334955326763455117070930724609365428059323772688646313282926295228905404610860938292043905046184380362516490361500751432157632564521625532476489952776282775030722449132993566781611625349695654347032756255020927901847673772609148615249477028412651439323436338519760469077007087656079304650151925169681227114520903206763479620084231476586391904521624721675318389536189358656234108922669673148867876944002729633633467274681430311442626946692568315626640509321473640606265327843886316292660482317361947459845484362192207373102033507432963293922879345543347617330715658807677293449665469947339233175093075560033180077802190922413003433331435645297717349371501506968615051717809211642747505497256761741397374449859711459009107312531202440375798690632265937179477690721100438251803974272853004359441630510281635052737828238285805303049167631796692982995942531401076348819539504034035196408662687343346854739088548900513907800756779861238592608124042950261977993761376008843424554035430488148013308856599464703105895827462652512062386797141835037192439627208232182477559150178990815337983845405965337061473071231002794691437536895333072542303802416395407861778250646686601109005423189101434498106514631833385403216317796282617337937734501655536888231172850779418557250871755406831222976040947513542230078486762115140001803146871806568995875991230449489427389175354643429383200592325497375364388651709710155581381788174053972068841867743621001718823457324744201236173010025043298838417307653841291328789167342086116071643729985179016349113029196191158942690347817928869808874567048371084980692264125124926235503709287090872265411499626646535193135985851017084968483570068067151195218161414100723800572918327046464024491476228459128092618981326940883489268672234256025965440686381901495980750143948192272161679015472894525296680757836694731301440465709732121585768214307490420024321743401708751220337259574284372593541503541891200359029229680344826409303635560458254604522999128783000602863550531426135681440979430321245400558532039891946125972685102913823833169144407088526410134984887497362688319875465600579190578040717287138049385949071681918509455855199092675591552565743186174802904291343167732954605660746552827620506024125888377277834073975555287343401413619552276842183784785888777887231927239774080794863670092149659934040930062592243221791756452349459525526503290860300113814775638035072091826151285467858082980503761244388170397544409634529970687922761082994489498202101185778798691544960476014045721307050281942812629083355969845276022783736618766886207666090823453015557123206994364364922657898263030483003923170719680663393609574341071939867170630620250436045464685179328705068888312533789423056929705742137493922084766420424148146013417928966080328629091035817863468182717202228088387266468048580443983922240131035375022227327544465764204753870128004867577779878639452896880837819184505348937382958552979844368545477352564200454368490982602671063653045135043277283304094578984317050282680234980114268620765046652921334929466570303119754073320680639196712802056294693143381026026047327565335604011496774640722341919125920983544305676014837835835150421887728392115764869137213773089338825763191485632872253775673609841800824198034948878728998857194237294132525005057641964699795022622562697896499289515363631782068395133442200218402235164260494922414787425361589962486170903623868859091597338964090578450245172389469852196701710386007641020948890229868571223392224243223226212627132022589021990652706167412332747026792771540209952127134234260368399511932427214606734056979027412944804159855935084556101945042360659436175719384714601391719069765994842206002404489251763062506335908478098208341601249429487737259819314255160194682756127201050845881000959496768207547026679229522177693041412378283616980668186849074957411308913593043842182974973342606134763936398563303992777373881915583368389652719381381900705784502770475126676553074995032466676615876211840638996441384792533043731316783232929897326523222577943119177842666495211952714889612735081069157723939994232479329862102054809509428086013157626594679125715647766303141757321225071083639374104738606523385614015846024022564484139864562630954212183393769473258915938720874584647474986140665635699624655573189687777590246396291885402325190857841694168849031488068812341029540868295616178586194158668771114812393402187534889062560564389725301474902507582232347817823605857156128876715814167531419732066953115846798175807302298483191183689490867591763121516212360277084991254911998753906691413694582430255651393012890846566746244889474968366983700021820148728063656258247081690915467869752544582655359920813494313475861085574613985666772710272700632757883094596324920726536874446944860882326110988387202121313259901392516005665715032089597292375584290789578731466160982099284153536804960837840049849168504028972082667293230111041483795305865728816128093464623811220210591311447538789845265188410809122085678767357018507927386898256396694607962185945817846581997121373982335548193928743147935563245599582474682775266527623368921902851510587087792786780942245984991759344008331197646317722809635763151334830625057013541899533251602740221700151636881401137300816303642771776617650186772891434673753056444044769484411592631425815562952402501873886150668044230410533120939354011709291420272414544091626593237384176782947936336640337507551252921553542820124754719377162195060428727295619735944698477359027585231571208387819405403223783454726541830024896513231679769475446882667731273914898764423683258774686343663888652242820507019994378016704787461064567414862500131876225845578390706132570719590758946434665306218635814588018859992313847815696920620550011598465664863262761312329563970755509604069315121766892977316554079186082001720986669314637513506635209027364181789175793661387298080863760532793572670714477409864033660386504283217295031205126949949315094755957697492649457791940601431859566357855077221317432855473136778697707195643959760438981556237130170111877357943315093090394103708350661967601208279568953305271940825556399541591126369630652010216395478995526109855050666255032405263889611721493913702289616820343129961489444733006502200842274384960371218321304073177229859100018183320325852423467034080920031643858143971476198369851022358940469109781456023654541064506992385933606847403159050616982871749149408776433201048627678319852659637743922228715318670837919607587470062583379035496904096547214813407061052471050896315428945611945714167326793826441552862328829132004587107622996485489189291055399282968752053729900778973940431201210742408637096306120775950969862241204069461133761609473430743219906007580766114733490569987472300464859290989061421666034945600446503129335019559609934145772190907164477165371083115784794558436853336277866668918809518907605473384444469474610702664662301808549245671716579154102385417136724390107606949138257210325036430192523347516370510736595423474458522577364409492358391045819008764688188986137570515577774343433255032416809293538922669108060627479931882960149710113193999555069843218501529365230857152977473813374701677089832700482349287385459837524520124306494130275644050268624530585228637088651474964046384874129089321292848791427354583194491022820396385746403447451478309846168479844373601856998608904859892864817804022936510601931779592718482292908403650743746489458963616698968290090525564219140410546077615609836926370437515348267874573188628669102621834742892189627210954441658285762764905847077549654868306031299105201555631407984154390253225590441822768295258264378670358562425774891540122922880114473257976688412669341531356930064999498361370001756833036855589997887707664001388354847785277457699113110862316803096380488707266885383458400206135955607811704363467088258032204867440069841099516082246894240170792858999100894460173133936351131467540807632280943304784018130921495982914271953960435172745012464910715496876978841350669590044519620387104670881963365480310021239387281429508360148170608439703756673018462309736525587446152665674330556362550268580241422193358026676914563807855032727773280183937504167886518883188106077098571505758657467166354077800615874839499183890856436344498392548718902739652499066329206562147365949002178397816316538430616139239317919090740754295223415836336631340735886602017998002934396588375058310575763203146136645036684381485736271960627024038873843233418173074327147630197963692034095950196596689053477231722694350220538341304884799103014424628732499142942406686674937859079512848750067724273467260438180227722752565769699768815430437996646969694528920409469841994087551623504555561434224067070213788150842713408737092350762202612457752317015634306958387891979196100961117073596863801065703553788843099169548462029632591362958415745283226459528100906064421239761221320849368820431646446100620262744985310834271690979140380809968489764212637904718395086800580677312593805738587616203990570008228060492925039978232771411866835103946297326736688204866973531237035267595462148456578387669306056158225181179189595640458974440975195626905229754075879018242429456454553047562319110933681484042545652572418626857989509914252748567965917033322211745603030341610160448058785193831533445809511618219298294321570726163271113936703405286651411919863314281778628293997926413094922293481916995171142597550371959922949449607577655014287252094356972504992050165738895861399456064982047350986596134493908671922483904871207499105407457022828436176456422411284783699689385338170626220853767951570268142691719549170624954480237574035580750863289628242244639309088506626762868585618462481126560360566712992482678282996569899908612119330245485078277815159704213898297331913357134595101750266104241932652679861755942415536020372704769843778845311823546844366853045876121679895935913025954452598271292175774076722540273822288655518969943224324215474975320133021835006208142234044952291897869649682601453652504789215799658139926589404988637603359702188865336911215379296638065180449420111630788508293252441354220271068762861314908737769196904909048537480329708667156480578736477652404958868807134532534016853776899731070983457462077746410801023817312574237294081122917404527144058851995362561424086019592055162785784531094982696847104769210031809893009228690246227743847209397987119166333717340416367217302873399207476137079371054585581042151342011408713051441546741463941417141373549732140613976751040013708579592004820122396816612758083038711478710005989665256816916503662487102427141685943386918592776841493284535913983396143382928170951518022431326044962562669673301945969664763115758900573274133806191482052442321011874998541075035514480956835633742465283827149603320507322174584095158384946289195339959322840354386233545619210482579148078013615388329810324671268685978104629667228035597212359303524405650595706056194475897316916176786053421605952460142228559471048136713291814189510724292660005107006610650685239439838344319902240773556929992868906972058780796116746745807031972780887677482977129607343640612084498865956992397589106001721475809949936830015618006396591465826270308958841440937043530442124408601029709865853798086675183334374198515824861498309791673281759838372960192332495393313694349436771109636422017092485974509614844515191957763179449990401845877156878303719317227553503477652521674382073734090780197486338336305384785495760428227252156294825091792276505293242564652013304923231606616698653543508439967652910979630873838258253192196628049518010510324287429588261570589347919555662108354682941890372405711103259413288959676264590262964795108117506062433264281009065664704015995568449751116387979489044598940665013432286895012153078878913221890416552627041307574212062063060858238513530409897922083323553605484936638361008050169473374152682619662801638211934755543039999444606573817024339286146299441458903152306067498995838824910850287457170766168867611247409138140241041731019028131822778139114794523728529354766064812200641327860038406272817433913127141583071444326566239459957781926359643828729714264872778641336237432049058974440677465279743349301029026031160970140579103383368983056449472578581537522434732572662263687022057134922192322512205711609534487267541176497485041514034283407138349562644828623117686564900381547640331267951944975440644435366050398760922350403827162542094449953825777862088654675000651050608391857339168434742225518671625412283208793316588163402048761905076452109817794036137406300598512134995621475626486640653716198690465311529930578879278124699424852512694434580666934667098960320381550486207629659712017576651914985459392906402885458617498962334149709426036971605363017414715864674665856885788682570554608914303938004012770801844527572293405371073359358902048426713022285906380825921589238298235806799787340253144816648287405950878632584669325823571678687704649743586212956436832304159129378146137034064417070582746912446715340123403784087861255372596482068668453594321570371899424886388703077646123454693378261312060968642756454567869811331948128800600385658732656275806539540882015846219883808078962878661097191270520955377621419226436088287623616714236994761631315481149756882701895503649891814593025769952424713482215665213065343117251436398310118345652558936711640325340851922260220113271684013897941028148292478916483804351111686844251418904197648096841423815389303333457246337821982189092400165997590055375322662295955430498155400579384919002892722871433347270276848126059454399244677841142061097292947047962392180186223406863435582006702407808888491848703534940624086697923548296343731126551146424529132180388937951550954975589743268544233920551240776129134155118950992444471142802809608900084492075163419937417221208983054053617830505952218909281506618287259976542377510275560419350156025217381474842257636959152550653411352440558377484286026824303962368930017775805991466789831810393107560364647297293885607167956129705391282666651525196485130970120128089001619497036892266981290095766962641791486896939091274163564514886266199049566887793427702548270991914499037710187262220584794505331557032604938520041571882378909351980225948062082954795063688060675530245600146377237071914848435664428383417239748852153799537538659487593710801744032908435787578267292990187889399661894026812886363191366317700569738912788474717050584593355302751996255381089893190835456906238005690170267542317494071000687730933145436244714451587825471515405422064417551866566126467387071416495635328381989740620743681128928377191793362083308047161670879387261104368334461283043912627365277643001194725451042642636358821714147145868179278060169714987943792009496069266196988427101082671122794871805651676453562934457588498414260091497351742749129117453501525434331248803425226742238160602713237491027474942527668901595553051667523329621848685799115095105991903003369092362323109375719002874708611291660894514587355313755479267236757750379610960573625352991007090016343960467488435707116232945434716623658959524630736439534482454181986252176572707183780799504200731480012633965828186226159840777706986698780855539322773742358845306970588880267914316856889898751143523379801039461361751392962005791039317331144628565232078437756178120574817339860037259835382328580769942970001480591494551516697744456225686616436611747698000606577501827189567075688642217044988148518066804267172251068806116515668911517239219328004082594967407766460843520114826467367059336602182536625533682554142107507285740085053941138699039593998359075747887722473921824941322266701353919537059898353523848306962084537436488343921650488208090204322404624040440688265520731338867610817000592241705913014958656687589713483507829486356190827615607317905385075618430430634267564227361995231342815724647258878878110852012967796910933588671884905721022949019892671746355370652184214481628385117053281440984977812685710395615873368148275980647498390836283366507075102402501000731184936374599773832777855311531864556156976175688833281155242169865345225011830440680930316161377239197930875560511184303882456459320876361780140515754138323874664328782606657536572086167334410950677343895202016965528828219401023757597068398909694643761271176222283054635505425103624097014919869108270122893598294616257977401748073233160656362836259186811722138678919333541184094801026189386257313261629785663616517015569764625753029795095689083134330948528672165319330968916923660273325290601718886506706625310497347416926926710464967351922340949369899212154005197864812625444513253201361093467215768983141335357486447493173731447253756617912934377549969207681034243915410494341775291923294455099201490001134944403145767231459348677885539128821622871294288177947099283146539459162492706460992956566372385812930121218512418774170268443745684767777345990705003621643625156379288039768455426230404016551900032233192813888089503289333572886111044105996832262537786638862897041674058101902623449394688432756496712251371722189424664057757523103764795144993264653889213793695068607034795212025192308950676854209013702521620598680806727708298054125746467934626019987420308372426489686204886378753866191046960543984329596618630482313742807972526764418295908517565980697964504800616859981679470963858364638647193301171448674861720579679944756176738584012067453528176740650224679379311079159798299087569229988106730546122767498663090437649019530882398323955264833230398689138730820000293069269312858018773603103462355368300228267068917996161021643443647179409385104134570176367965106355687420719236707081357138261431792041189961186877657823814291939060990943859637390586852426212492661609332279945650361114233596788145434480421244211060893928405753011913335869425264046413046454097492675717791259840604830951776162344009311900233874077665685381258412693763562901189736836867446815978336210179792796118931334103733755434889810428972763011385550745101366319593502486250101944662798989455985866190461918821058787309261407274894305168922901382961812263183108277820389266444146853302308915554398843816721039641187852459488687257751244463627335980512536620076421870652065757202872638973886347123064704114602598981020447124128540231896768092870975951783090286184190559911352707733519421291716124612707503631417116659243621805680635807252346458226989942391290196033561727361179396356179881455886931063503599462416625012096817170743977145691885634526444264947838409433450005481453067603185997382621877350201453034410169344257212477217734644648132091217791283879540911897952647476925904410781320127965896340786151783720615929819614244354148162682057337373461888805390966344218363223894743285418801391073963210244498419770922617095173187561135876218649480461249717386479982794124727894513907522682311388761583541194529503243526546706580138755585526392814769347019970925164830911442337275609766832802490248261124882159340215872378793337600823858890356150941966613337421572911219602056091739400623200557260947131477755917927638857131735686185134695670322860774857140820535605859366093180380238734919993464938964393257358809995555833199493182674712158408619944227644230015546075898873991745610782060698086681410672755239170369771086370333455624996208804873856390265890136081793033746218812254303255531220196052728675887348026964687647209332268869084443438093286241012559410199964425152995164856104716068041775784429227235288526536284636396414606071687941271409743483686947728359372119443008559415384398135599409834925179376620053256800702611389146393478897100889837354978917063902258083175614669126645118401819805264270937267427018742592774485450080391932837714877132841077163982723346071828634905666084409232359087739981071512337611545866439331728175046547600068522426494247736754700933205033783647316802731410894479561041030374738075480730737473865751442141520189469512168262505193547294652304178116301761820054999734989336233587095412118280739366888757036144866812311326135534120246078748988837212335931007828607062158077154879672250091143718004264139026083694816088997957803468886149767785670032156173157815365164815351674199242680696800881975612524262698456392320825377966782433992182875345616584147773655432115187069381172459565223033462655001618502856434492623538463077762534058968211485045924634654642000983139806565444034532116772310082323189721493836647691138270734526348845490107634622590005539908611880822494089334621006292597455217382635551828594476760889940136534585502306393408499009995925231657938360912168379970484322405173468102226285885644461862960326392336954454787630631722917065720061780628399157806428149308770707955835508065122007139160582110561374114291784492917915844737957180642583194259799291724321922869784561507097818234279908328906429834680418619475400942543036601288935819732881530709720139128434228024979861029548029533436807516491217339862924352911398302771351548642153047624832736990541648421742603009566356123591513471534579201936077349282009261513476991688786352705867026384975361838672389562714422036069417473449832649756668953842602226384183592736399201455660346283051250702390002438478880932867692229189348559971323144544569918901279768482327450745490167825230403561052826822278737063858116031010338223480253717348800863408725489822200236167874305586550269152362680370386681598961899923667918649961991866850571426607075843301965432510023866569269622536185646378014439998774791552825258761666994761909211311583207061734501789240586890817297131720138578505113674875350940655187920736300651565979711766440312498276694048654314395596320659027087412208882211892753077962135951441167844769235363943215781248338711861236212824773209083386077592526397878764555977109146735967527632931027114859456073626700373627718377519477270814325283438707861775843981577549865536471258699200350553694571114075150036729094088877758886447486894065159576538026602467089770747296808985806008647890610928604209239644941695623192024475348673757990073394587983460853387560298465565579293041675443699349810683528287815502384823414051953187346703385079629313254118171988361163760697898908053222039148514196055463290038107616607217385129903739787506012416733276922098988656006858992853539125957235754472112865199126877873203363873337238747425138144637580562249229051733412668079186784650615697026502719860867207728827962665216332338891245424532766739180909691579298189203429263049276256569089982768383759156368266149732555042519969040522565329283767071869142960727011510433448349365791774104256880186642820738545043862164374116650004876301287357672670736413173408447182824871069672008022860336779065816888087215445135304837082943153831015800800604788344990902833285276080802234918694026267607510845410276576918392037424554313140174915680651549420228586296692187077513991257007036169924866081632473125904975560426099711662036922131446615613486576894773529797919843033837690761431606455638702955937311677090179487682510164046093843954551508963942627031604489341908405310355598377224099918186902196007217986717353696333091621735636413134777566949873071445091393233860336500816878721406287328025787613818093336682801017271864881882795242466645886501878536592128904964344264318558937162204050632967100165049441866841099255159930415811749257471912504404826404841678410134716322697826953312409776580606003284991981268449816565205848116953563914447314908449536101003652729362217545556877846535424186556112135966925404596019872848772968170539279296305201151700089709667438945648845561604937759859042156255593806052419729505803192557019821288464813510507372550365312618566083618395655876405828243862347146663170095775594415085983871268077802700791458217487260917148592976512640287802710501645676813981878874927852531560999231155089019870062745437746006276934493038953526712183238226263264892228275790692039501490589655704921810224455379688841811849626669041971965609624744344271910201904439891319742400058163681584186790169951198206457318031806609490256250427891784526384294319646561262915665731307283746847506352781645178194649706083777750898689890064173219309416520518882727533693237812134135214312765440645870151457341401747659119393543212143627823102183053448211808460832250039673822898033540526343804724610442477392935019586135480349429707428953601622219075349493285737324101266741235254217035527946686869008916410550001211519147109788390922538959214148987427254852234562936915383249833883498903612377163431336076695884242234201948433775572548483919416843961052608113990658249223673402172439336458398127323947530930723590477168856095682752170253384988806174609756985299248227661370815690050217508632299077181773693260439426424063818870010230674566909219388768294071625565181266965340760204747397713200723928869506599201918744892794064620985448344896466809824718986898298475061863462837812247868594914110779792009031685743953074019165764011764404462756647416679468546553586972199993246659119876132490919392698131166724830567839772503829835926090794131337573554158589564187328092332463932716076930117620652330848861708911519111737011517722945323050125628049494140455351087779939630832686676320198810625436919546930476323773064970578824060978933755187267207577703279567439633662530322215647630864323828832849726211832126973268240573092362577052597052236913908122768126533819655904730421952109889136777945164965952541066829481576895833292464787321390137096650764117419568102721278644042670769423519202701080398605455377257147981070730109801530533034597800233245236623544660118001878562081896587492720599575751655540080491572488196712859024318489804510011081326693027817910047484227223365661130886436174107869422948775014418743058827556405437256077167332793296058629613508970479922369631320539069066548433866358299791056357250640026891606027053665719152408599685098653350654745992678164522194508584304388322413578008465979917439517042100957462171940716160759807950932551797905150708978001364549700118846739221803200491489475417738645823330569086240033608941792719812411269664107700986228670186297995569247536060885421861849545715981453976508685707123705847932504933414167040662205703987341686817190155074429037999506573886588601710944082195947159784901963439360400352531097195900565630764587058396555507375434489975388897084066678773262887026505216012399930484589857844339149862286085493696426992700383105197343106553954412941240328384505847084438970752434652662411928459657348798488602881861530421071208479003655171372863373131394214274593973225266661075657332412787746219273066376482045298867036276722118750094507446437525051605929348000193290779984577342383567700228332286379493177264809262938708668198736605107531159678840771790503566569931738332495086332705100057531738605365664044776369180770492050123820833958144622963290767203935806931247998314390125390762584868350580480725625619512657863710359409906387524933752300026349872111855501149510105531971244699832114289819500908471391661697180023687868879364102518559797345008826078045855497498799524119313071840264961824410521871120116921311183297518458325767196338768458594066697723059318497473328533948617371336006486179928263726792920969726180944935584962979115496780151334333526239972961719689285194793470126099108814675319029489575207455021186896037187226903551977422038646953937816615739150399675603416813217439476623389345880260970808204346471195562594093668222444920486925383903861761541971181965311772656479274883998560780554012439293721825548710342145061185798367920231079378761048927465025753884255875661082606893195253834676382243321310188672803339880213935382785797355383496495457370251763847835911529787429434747136205582462989312597346001561853130673501030236967864767721231880598413029378781069781192927908379026278828794782506586375861436931970138911078117743064642250251258423312618722040217566120049885946269519806874956493054722150708240873820083770395214438536496918454982156736068792949556818029355923397737375930257399418744511762000439354869894347561953238814080834290425553104068200891556860040567329001398500239071727602255667814386633844981489034123253448398391443673078224366627637508215758098489505931015256193539058342342612797357768703569160700579931014119078322941844385738195870938547431493865429426132664457046075844698604363658785491722473752597389765564979902546468129190487527732861055347663187667784761831484209288105450566995569241209233188123442712231475239463706814874507445035921271653309807344558488891365466702015944007073282269742999997407032062746159741555689611416470747846296551730883559106472688884675597255615757907305461305630645590103834458033600932699408362129050120826227415037968032362183810141655528611483387998490157883829412226560299690990415355044268580871349779023788577924795010554399050681209239770873508737169238496653109660085572938857288076658038972027708023191870975369479554017190348589310202736201992977050829485311533842939624171716010927819676355841772075649475085935867713262040039957488680565533411342035383441631372623783999501846880453591573965541380583341522570118752695707986810690394163259194495691553144079245514247129060538510844891543442547167122210993263988764130823407383881498896191850419646574742308415693166100771319650142844937823181101152646705815994793983496455687962439984627336814974068662285788343610818721160575782121629896170231176470467937277508973093443912743244554001230166028531195813369629993011404982528100403956486535150580569715969415390006084725392863190566418221315394951851222712721536134549856594360421064431883888872516899896992780413380096384902272618532730670017161577302429583031347660583669320795943681741299497813746629546950230504217310995583395340072246753630925746465386944733139915308515946668070190679020935216776822958103250705697809110201424761435696708630808799354210921080688378380090266737688347551546284953430894499102468267879330455956535988522459125414010542974373099378344410437668804752258684297015743693968958542544737060508882693561630773257340663579412980554393928230801589538660209037788890973128953858521985531712539093504417412478575013872283358247379058403886512709057796913876438236113892927026958030954294862074685128822111414432857969606687736351891895705490476411939950021732927901801314919190960970839887585068866371304976186795723056849734421519362424174523658502659572155237358833575364217439206209562977410556890432431066163651912028563670801895464396519064956560829648090289374400033114996523882911798148451373221163553622319985526386460015111760884931112389072156124933130292061230399578472535576683646168691613603563995367379276859051293132632142719951687558191874003016330423209184026707740010697893701086733211003776702226464325306964276337007803588716586941431571885590878546079202515379000004375851608755006078656709943597381159000401070373202280635893538581816986711720056727013840719664503721998185752069708808464487157463860450780174246691902414603683570306742145377860969408590615007306059246768495359293550281038626810487310043451717269188697980672795874306944846062837500716590726053413606083460092156671111806291383407176042174770958928841348747008292913133035503636378490940415356014667309165773320679944168567983305839902446031051884755414853346339160055346137326621883470319069218728725594817549803737282240780401423915042894670836660588846550422087424511738820666411503332788141876972631681815467382804829684449541651412021322653108047798633237140829199823891030997295151988847716801553358809214615643594322746566799091180602970826996150073026658640979357141091440920616811984652156496593598380218062000419597907911901012703385516704251901055085622490998343367140364111008216324595169170265182556517937674300987338879966703978335298071607419687257972803191254296397354995020605298010272942984996019208110876061502893202536500871623667628896562701623416122377338402067873485461425303779411757347564113222082368668268143427617726611985392523070599018214280736093945169101039803370696632571148239750818686234087334321286286763459605849233079116117029333226427090421980986893205128024395085706260270958461140842139898409850753167218807169985015695618629036432893649195292339315183570281284716483952883763456808261199012303089886408629179393794923724208446623559228858987915192788153822208648918680324739474692029574631739944375300067667079964776821904724436533357181295263934013546710752097692819241596230699597190506212606316880108990800038571937233237746390555409179909383194067674847765437452647767208163182064556240564829912914432567820390820990026686641090267571314582574420514380385393608328696502590514152678539016830592562609698754415565978863767841689047585538192530691542905520336276158829619339662786024285599677593394833555635924988252215539093695198489885033102421221230662069612292932148837960203530656514052348897567032626489904403409246130205798590725433387526285769181170414696006211069427075373618382305949417737738385019791219495992923212196034003267409924335687455601995169352721785238499595988606635986479101540943810281870931015705722516204196828270553976988624875428739679975492955257840152392215123316585105824365144832636805090938756557148603094640147156924572189073268778030736262304447606945913451250534993705871928124831190407057826970157744891807242677205286624525117780349962227665064945376491022748679597133198216626453099869184137066839498060601124897675729730000702172785744655566780205076778248605283158223828460943117226981272889082996252816123062528080645971851753778435728058155312228423027574056280834133597497889544732758403600532683896999264226111257147039375685532863576774179874603649897205138396185011946574477468833734374927200158170021794245581563971331576716095213834574062346668329953835389430484840521887725186033773146306836506037328752413605603254618126623445769845253096264345295929683135602548602102948958397081640038632641881112913683794233232269753982855478075815213214458744719953082219195663021599680916749966632379448061325958898894189158735149102423569147645670582674037931210873976574066716227622452281607615263762809072587269423756289225394064819548076669143572029642352922866598384178687159332480055280820976422041612307133065112869372381846014578274189262329693184036282467593005124688539657074252943892565872810545895057468386171035385665135420450132387195825276158123705158230859390711476228556693824940649968593658184117228850480874476616321973530380115983341768660305333733586908392394297019732699858268446986443786332005580299091115393775902244861763801271608334306620068037878284723849788974556539774517217531589426878577229003030194769627221111796099894976083540919567894827421884164503477501026882169008788292947366760447446065077072083828225413372148021726775398104980213101085946681826119488160260380172099975228251316135392420770375656217297951071747619926940089945399747693936658214723642150252504784678520738717029467719984820446976133387550483751253580337942666770794246934091214590702302686747869876632781421875729807815393009648610730461229252949263220372779807675930637159612848321493507398739014205970973332023140651394391105645136871982107566940613942555399793147036463000329782108337899725535881071784035406321334250283125805778140998664924034674267943280011473085735962151651041857987831767238505950396617728976787132729470300562678183982812039246395104881571599188401537533845072540405343330946505379400213503844019167170885358242106002465728549324664713182533602883883066166619104083036559856575518670865063725557290628184506398019078254364152649365402830413515465932929434821234659955726496817525633549315791089814636928736297279636010322520534373950366336449367151777445142622169411348913522408418387546671086830456383368872469410012314298604196786628810827393712445746882188124370922377894257907935880854511774233687431456279548383136363120007117171573715507069794333493048760590246575398179808682068284296750089049139052276372678225998551772368641194440062171049756322550237885826181032874027317124483560549547219102908553107617149104464614405806558760558273756300066909525985291646558891625983379170611640408893009889371994797937164362111419623829351993352728747859042950804731012652537264479169706776661728346522438410690886969194334161497321523884089344717038506672836102200275970476096399296798707645329280213885673384977648737178485161330018041720064419406633485032662767939431152280512871589684927952880534374142253534231070344932413323348377165518545057868260285476469906789299859120325737485956405681045937539816422281214378084636027882809459542996966404675714177718391174217361689735309198232746083986356428795143454945568972744511385936408430015257438845956709322381932556716966183623890797173794555327969233059561787780561338067122216079012995787565009637846796769818794108273308430063269326037024949976862528891580169126082797252609417969462790646766654776714071919193235613522904040176541029335064573401779732982585329185420709658731656709787065391970841633337295722541805018396476469864545667933170830498060805966818926495854497023473755749535840876965994985572095611115980857089345320500329638427697774809874283422762210811309727045019043440990973130997207158530916719920116436611482965967189134674641448500115441808968956320176167254612576032149435830273539997312425531973069827166503114051063145156502134737515467770133725437143774726800528352944775135686164017754867985567510253073923704392651384841032439743609777368808436201043791248008158955858052480948495751033078539768263238224019900533615439707786260323372591163632931684552585690163991541860476518320711526883059859637036962193551756979973499384008261027160706482966043562694647021592147072705358974171464616550289832030302735236280982553944713041229187931942843316547058276727075419767663558982620461386711241532114798864559910391387402896792818078730830955540662185336739620061481903264819264040206083260337958478165623618686981307318795859572911739250069136279839488564467554796138505939395562597266801424492109237840938888809166372023477205074877924567399215063446754369055600322606082383246645110201392845256217876331097245586823238042630013889838391420233835177038768615813805026341617912766907990207107816413924093747542781543732939618075185466942878740464197686642578949547881686991258665517673191113412518387588798111523672812762526302950778376395934158045317355074208942715121922234976050400886130276148391350026181021803049426319476619829241938425313844674328402931894464330779452311328263263277727457975489250020802765193336813503258008521555744575936310369765784520599223265701656542409116805654405391141304638980268657658711037604986890412875719153910765095781065499334029150719307139017291751710594254885137568195966932534857073511619587760089055254593913561609329384505403316716414862151334140011052563494648469349441466356984141409987355996166940928887323997063746917032859450923716992354790254618192135839487798442758351038171224534475530429442680043395456045769508204410642442418378525453144425427180373238531328837492049362219950350456496272138332031651136919532848275171359460411254261893512157592273398559916900465994787806596251444760221106220890748950795038381071753760813971695630563416386028159690228616966428367154481957940630834108486653313500217129254692648932258938114013349669276862812080328667055821123328167450285987186947827633523839813849105587871663868243418561924282296324359146531056512571117700917337015330518866413225298195881729141448105642595604040624288774848684368197030079119521328128285998987862173862286495348251346209860684968357060183698178071696496574269848635257286032051595984786349267187826506102345076046636502902240888737815195326554366499082570941934142822825014723596017993092899191826536487589269791421858093446110440832553781776234627138225771538186354158957442962932631608421582500908360205034716553296706703663282453582012140006488233551469366059595099011007598226383383485218556596677399647133490795388686682880924003773256717154087011192089396650194437454462192650111670158248869378473517685384774157635887384884571663369321504956215036679161434562389611992577084998022800091063873454790896285686964096869358322920586652039220348699280387772759187008821525367959406451304745164046813757510457946154688865943441445570122260931505053641686071124530652739302796550343218815918184381720745074027370132200750916026493410171077648124327336833963116359345578445659182076123914676365725577443099370769799291298355017763524762654439419674359119708917907855204624848178578480626715635572253412305862257633788301475046350437375659968868460849318727599622758224858024842052776565640987667019083127194590964146153466228481440844902616826348791718196693070996572338807607981558647285020316160687687776341914032318137657426342771587404525803878002988477633894263091461487724808138761773114001133285655851836148887672799030766916454126834756296342353589670590498696804479432739419020575566085726255378327642820682585868657909397284546807127123968031140573886570356970663222622449560296707503552230290793433539412562297323390479995289922679496467807917620726076684988012069582379741870886228577005364470784426825238851828494308540764302878314655332948355522689437606087925871903870879390498267711863682202650499180769234210710607570483256670167756639834239028024495386044134446941213438655203164874904003169814244373669616182299947778996896763106991413370119078044486179255371263571894429076183284510510464368707242400095081700139301287473234856935663270764717087045073496835255860157131384437338126617141703787195100918114930388862574886799748161322112820410804959349379406124772755982743321895036417614219679396814267285244926493403038356658614120736240060368826999016724060406251849921086901504561011514636292303876854298586371703169478145317133114800465109133191581773096940536217740411542819356399456641369446026295207006302708512782157282051675334490087924851799042446913670275857241848508798418747381157864632944976689195732219615082696652268931141191692263649832602339316903264870242998982003200811184337707207572125043000937564947090437850449677130285790436435529578389109187314255785012411192398008061025313114984528816883514052802224303783384530404513505553415916784720036055084966048284486496039917317276553708786454756061259094874729925032124114294914597645802326249006811896764624498128737112992200492287781850370050007672015555971734956729535925101022419541279937273501071662027049969740779132680472151590133819154089652727281437582279987015574153353814235774398932055471615674173770704521189044571336160763103568655003474957141478179445209019283481963957247075937244106412093472667847088665854512678990796064697903252640695168954794985749991571761101270136269065467692008596969244803568796914514815537631045845322669509442277303844032993579214848453459660771678196486313346045175785859560345880629148203101962193587162696817138977203013326032185058560964881720308641722336354450258196385455475527963202521419902656835648368428341225557554077989348366964848317600682226806619740948380658616287901744581378768280562975844702135328862616914639171308917456316003394106531585992409047553077452932702937247962888921622282768833088534343182376578198981987765748719343986917590891786174640384717914524203814928332846717671047352654615646399646350450393425034697935883549195311495832909743422599246963675821359277626323458892190070615062454751595427189433012977069339276175202828489448015392512660056771506731180145287786180702820105942981810916034342244029560824911487748374529605579051122072450880940234274414514019929738250677550073747649152540339662912178261537042640645325926456056326050688151476273601636856606257020508708901244578672297798111093109509044642824369726962418649077150307153218893852882342985750769479888535193337977777976155241775653221475279820264349030028353905663073126757711700490505261472130881779952461821096632598493842470546145967920808642451214093628232390835826264081787536413631323056316945043216826145940734776573460544080268557378624073003804835197608600406608009838427377841309360810467321007242562876635001520975526222842441625608606184670737614752885411921855453535922661643046433333246942580361816396469954113492227682545663568109595862300359954612222722065718502586578299917415422991306793170078075765467354286969679213237549044224242495173338280041591763047695926428251368571080563312376964143884741064084195648641129789249764415379011225982854318147882817065189446165170148692782371078586219520937940779981899494648194813853230498276126643735300479691009327427229947680357057326756225251638647034971588056861497599428869604474337665427250853075881766950712812251313991169908105549715435550661145777758133724928765708411959329080319087527547284604275853959945894768856256319304955455239624529696017710784435155205098828614393856640252643479946098355616462388007635473097297570158795150886507609015111805792599359865675717232460594242712506109919837845839933050200580907422227377411616699130069125465221906411989487268545876249414429663416448006417466013199004083972310912718807083116394084724672825122968264484162384683005995330086352358992108645725163209732357757876020013388237705750306549721330952295442298577530544519083271937715133053772353781978677536900423936913158193926721583554662096444894892686770757810515645184405045984885093519727086605098879990017492049442195543836760866202474629652888529430212715502172511699710316155039458429091749812857629172806136641053362851985126087250570333693161438714891484745073874829009413998252538373951202384197270754772079158204245394830137312132620821745089286845419926864558373886411728682450216664533383938721917015462524820087866514630852479158994932606845464442140763709156923583768879568992163684432523253446206707465515763933104194220793169784235341189691205165998714054749396222044303244071796415658047176863522244602049979305856312434095360840376645830876242625994024479132656482972920185466633441597083272731620308500637095199000607767924489750400262414731879885735846128283977081687438143023289907866152134780833229479013314999350621755515350756948809574041954311877621692777764011773754226338670604413236045861629081210769924001948788121739431672839956225336214652549396779091690055914408622577548460316822502619016024264224387452744148806250202858104147699808018432352672824251695585654620226624469841229965614073840926520798974525769637249460564813734333370779888012213740418248330244760723745459204290415698696004337921154266200172887629601631839076500748595352875442905084622589922670202624818726073153022722636197058345185697342271255721997165851686242697505900651905052346034833077577106397067556082476300560420156734711968885902008557119038006474105340920339132656436232052854668473704452914630783237569242151193657028837660237073006499560494655411659992424816838963456519645585596743782626125763436962785471333800846210254745959345165036936119817605959435790844959614220840550351079397015414335537327749279625958097961294816472990038056229440895135116276052026379562954719431756439601747891822781557105043065102425644364895429756568326958875617521118097918674891684760927145499491803605076930545028201851009392745572170683841160581421702372063647130468257672583583627322649394027057359277931273429557959902923706774986474016351859282381731332337644212423842379546571362318252691275307249148828335665641309872510930179660254975283038051146920575680915642423523641522968609092537084023471865193999336270101988511032789864969017710074841079659455013862908279035753554403869266455564808219916946153605901001180888502303044851901577613452641272981895667338640125828429029959801757298306272112210373970533097893562138351966008343707152841891608275992295894677235059155704064632480295598528617933904328672784314192079776965717764589962966484087184597938941716006190638153932462580555968770139225053255958136242305953469637876068225865806134780027846628208822104666203038179717126983346987583642456156480321264828442994867240567164776573614983151565303011834677903762174432869146638709958662436150603459680884397927209813411383810322919763580793024447266520618174148541089970039779608785870548408172130239882084113235978471274792070190639531135925260938969561498775685969179962648639342199847426508549158143826143361788412395443113198571438223074155832134110171012302586536065200263185193282707555960341773180916897881581442116004040709225092862653257960965894593753832852260984966705096748498985283492999789217208163647633358363783369550908341883397338660447390566297477458211002048883776911447525746308676741848721863561007315385279833319075077914717934366101337018325112310636423680643974038397212102203804768941503879342353942025081642231611717222762534131407700158112150918471795306546325347687913117265487444084717487957490090271633691768030996820593732287870112204399622785538031245673308521823423129536166652601508788694684428671214940340875316047149974547795611359926678817912651916748591131264904967011647385387665954074553330291125558177754430680184922389335134207159471329550566511191689917411557796600108901296218448379671051787374097612219596514880178181786164060290941638382920615372007563569013640787992732661874697463208728594925798817226884732024789907933972729106637070286332603957003645885737393578284628068944036196133658207011565973134933522632335028665838965499428624917357418371354881504093866222639353451174443796832584837712496382441517162399363220927405890484785885047210407965673923830574552925395166220722540335349219560356709212428473027081238667038491987268009909428319217225728254615773305910067256408771195102194039629005806357290963971436174908926683320953121312047716539282555106347243298041018547033831732310437781566641772524953656737498174273008135782887511367962055229009629458659353960813763356716693310382452370385097922364906548144103570679967828043508213848137669297815489652279180858596230110825405194137834272069202969116347744505884346828139549942297485442593949213742029333514463751109699131768936057247840911599638616469292953372283348670907608699685408979523877967455296396333785055877314270256811606866784094578834481542649058865521946030303657203291038306469720761927541138460554326593649550690733179673404537498269176362603731569882324859363818214698318027118080768540832656157586943527077013294022998725587419588763776193100167961052765895812729042969546816547729803974610113403688071740588594980034057751101010330808565100841709203651146359535885203218725476019707487080833568302535435891476414823812814158566691576456810355982094846289951291723836862512411060220570257357933291749634865151954416828416274928532007786142686553994361464697961556486656836311311120170091609528410579829201114154639839824431765820878738623681395997182510255372845310243985784724283043769413029305875032146023121091137304081811016667169427814277054869144686394208686507299333559653291986825639934826892704689921910768202634586014615674475318582211456429160554075280777632180567506441790429224571260978539077554416216165777268469609959262804189682132144174412109124516294165136255873895250091031280433887028356134596689199425408459045693032863721650108345838586234228626554776657416969988502329404383996445210071847087194607246429926528174541475747522752362781040858797663582060608458789228917511600300050891324215798880991602607174289585416393745538040517058067328130214522609463660829048835240658968219363543983688961442413996131183362397123144676045314693015531931864898447862852649626450031080994532034105934369917494746283698123215243530870020843060136890650290281444642586079184536906798249308977885764318416234482203466205900917997663675774191341511267205353379928551448714897779539192132888210069285143214058142743277477093558249051040608830207148643344281007166188080854641074759242465056599990012438795945769911819441096604978141086040202243393583936160529217879422930114002435037791122180940365601166476870183217383264656841451569138866719796900298670294121015089991215708376015753348027573000575915490362911879704918873763263322095939584238488329563589108137223068753433044900664875962560105056025806303323454086548315956206545839537749434673680558849794321840950764555120920033640529701049066578882720021492288680316644295350972427506592883340591876693826644992762726275445262534095253943749911417381045477155170875308851693232304093544599448509782964730949195534508203732343931250399753276099935122523810328803696778612680713208308858223684759907204919298373206323660561810705647779511660471769342529187690805275561233120387949362351382121775595330181021896320551862744646521654493982208968304141455223977682609002878289009114842842129490492023341150403574837736111632009937908884917968735978372074165046592332342529556889297426525188129867841109080715328374249472462667529462241513899075671509848774355110649102534138415322548455656932587465758230080494282724530660798055404949462172806080875538630466931160190852654913447941344856875496104249606172009920711878640282510850925483325363751265295548845352135224401766284402955208248120022988717786480884346917362761148800226427791552169962483439989923870533402062213634151263021902232854056002549139255485086668350237181603236403986257893967375382016838355298074261575710684391988109092734125150982193671239424290329708100892388313324348947855353137015809955020026631067616001275136158228759320324919661693579233439716237539687469048164722289562071405345466332351487332073740161707575391160028649692893566619111207897919133884945491614932663516840270465497104171971474307719935439329226057437917028998050591330816430547870591802950667166753217157650289964359667949889123256981688327028859874634640618502760152517558696927311828847290353420471940898466158577496154989238787489956968932832836856092383709670357239806509835831881606296656961656729131945717068584527849549928273397892219138945745038734780657212865795132953674381621644030616754207443735325264165905182274354286142259561826904134057055446664629835419850023010661727704049279826146911129359415999705965752107422233979698137671701926317780267838794456187244065998281183064472154313162382654217370847658419483348588889227836333561361598446195609005754155629203671263015540522220706611084541130422827324888233939945964153908310930965617397090565293818237904443536151830052641336758968048711627090720769861043236615054714471705966728107471505979315102970794790442012387312043362975958942311446820829724942859678928667064381808590510886369735530533770166510886261153651456222394934657423297098783366323425386229302739389465241545443919020460123102539384079103658042961480783921708321054174575467367150423590896393843856512182689904793724051337024074029678768409417905989520967025447278389398846355089333851428191647459258024613870691486704065433170257310222388774101070014961965266889578759139487735335144806722078527172367779341839363415964280212647661399808886206072234758417244963539307942145518180573274155386500053828166012070636945927497751294228940261192326153994012540445273867084699775787708358052472998600651431845220327304862105029092363450577431140993452601971369863386694937875690626315328140924309445837932377752573714099587843057516767121047514341754443467965977881943569701742616732257930035126089173587203680934054373107695509792810569079408746661418976624960143630116460831032956301473069500133379137145158104456406099643404935003511471228419941522442283353240484163024554532984754995646802000594751858005035430156331316289584197686698401814867642224309819289468715489406686063444440997234837783118908626900801706347133531937175981120342503817606100909333437296678710372519848434338057279223457879058840293116792041393470848581995654080442746379350651159506170817376248112697178686900270247809938066398390897976775879569136739233643592590042791778068345939684988393175501176357193850719720250529540198850207060003785474839782379510023094720860555105814548947669470388381306207511067620931259814824558457944259059931046345461687582822144942724617254537908400590705815493322884813807696168295829222784211224127750181771186115984328410022656441861072206870735546932517256704014012816415583833074254778436865180596646569349273815933478768803374689231771975582221324927708372514338441828367075887815970474298162540621931968395831870513470853850833341651325082131988017789488696490800613240363836950254824042746638432280345998922748236898316566625106877949431998568026897834260038254647538747970509510543387437098063583473949650782448904320129129008180610114917923810790151810088740008813137304451383275896626700087784258809521645764738940054193980356146118770596112951494588011821971269805272973012119110007501330407589239512722324665114529940038033209426018033970853331961720068284019851907796040420376534484309815558561140995021200678448846986636334599560323428770554630893290740766828188090235875162992427940498738212728183429508620750235238481707704593933128659429823570523400327783988165963748548163244757501139543120033819844749313860496071870681961016652044455756217821385641953241314441687633376675541339176983743235832892916256287397287996535927332396654427503788683380215527565436809576235509516883079946355470535544964145568714815100425510043647157915934568839272854773601698431120212954010535169491593256569902771391410039555491505071516829358010959479411950833609737049469699121200455261546576537038609009933779413428458913887884125411764981851572938405496067180587285221670982034450233756886032348110620704983206081169532781033061771025592637461868246879557452247994125989862771172497102104017701159975621591635789659432530081135126434587858044024092458574435372130426987702803977376870598231189472920958491519847530760271511401538675314745451482220759857311130498306599121125457811590665340101139605462272990580582846332529619517115699746808970689477103662088304191125212822995857574151720908650759284900028464080396415776532263527666572215720317481817416449693981343676980200227818844305111926391817016480628847589473854416740927950420457090912589445812842038040963587108736478026351711093192454126765224257855170030153189557316407090424864151676187680803322983170882806609407536399908498924218098223928933983718795130072548466798822429533988820395371011248967429802045171004514780239239388235032496207950738539847771782471586257137271199757251192573185305059066906059287181572907519242858269807594751696018939207191046280365126340378378440050223049291600457186435772575900886918528436386497213857832208600954108983689364428673356382926651156681521513935270729578346401890500658221343693206816506722618833553981857325109474752911462113406500580021939759873105490717539372358828379705896780014168381633049530747544078139833504468149378806843266190586164840843616447309035687609779441365864030380918166664346899565526653471678800571510404681947050254107354391336474209193881604649091060465224369108520590533858575259487311131535198331645584440408259128861155012794191339377604758130480684865162248222938135958463394338907885172090014829490687917802202273945850197079697464949178058984943998780977284767673836342709035420341870419011555494248660154449518727524553316446966226602749406744547563950137877226710048298127273009517677662715666858080984411918789329760799171656279824097697767840344266915445477205932765050090017888793917815676576132797007826642556864515516923968891092686302491267326239468575299484740096959811517633851181906644588402859512078377839668319894232991295648420053510441044618750197905794655124431576211571890675740880276808008799604371308385514806745788272833050986508500009710065087338588333425878107468214253062725598279939978218404620519187567117511528870911963670783370205422049357223910546696608807553203359530172058977098608309423733228284289798608953047778310239612388960375930530730924250213285726103834638127272302425442895039313973819508698988042116976443059163851439583876541823224598115142624307086960927827117235162258031154234652659237232163349679154871900163726288924818464163981834360879717346556453625258217103018222275795804024413422602819224184862842319447414278288209205587297761322585933078168832015439253858193730131220138656448766590427490447448188298338825707705909956040829975032874667460326883841074051901858018768437781473779448484468479462672868237987262551805549189894679430097820507948074123270872625074724480676721854382053865508370338683973109485803382162790655878810220770234290638948305397613874504057286827541067814938546711846118006271131231849928915607817633078995232830700534289682921828899636983427489023352051792750347306190676696659063884847718713417535772028619043545649114837266163622255457401600434245502365224007623806089232987431878780520022638404525385588535334840866310085436862919686420466737843896802600693188747659465529116134992293406577302545482838185327642210438665752735902682752818518784027030009339598402299980654814144599082254431213187060191626625887691352159996482336520855730285867592683342898930224719912830444417788647300005598834585501006941029061849001723246727265033772820145339029368258623933874775894404668683636922435954780629657085628446578254017861032936343272831039130722211310131316439473808983254287765990666119979108034389349563741996614549328338251744033480012552370015567465784951286990784926026458347342182910595366644029721521575908907166505342649764967912752448222388778768414217653136742616369641712047775145925697323814739583032509527640064996238939475512590681570014557839037077166258662263196906984113056085480169702199669951905662330317976612471643799605404985983578876492657914049542956238361661910333709553853369844175318029208002836986684588123980132151724925648300196922887049771354677839444455278364455356806076977457486878357359615833947882228015210335920044787141247188264148050313679858980526940254575867892087697687072162095060982085479731402061622092791260157166419947113743659618811346472043348064341884783359527618017243555045166323628856764596160634165941984101770319160029265092601782303866603143474098966290728918877420769441329271491976288230792271240737066869455302971072013443337591368719382658686885414905653729741858450098402941397036208284751781646136111469823624949150785030081814410090572512182153457497215653689074060342552753775075937670888341973983425927833329043345520105260490608567399421869891345956948476347439792401073464969901024926305462936605251898054786717798046095745344936446358844481633321293826475876136926417385900313480635192425478617349123944557107824244022778658142386362311672376068863260352191304775100759287454655207022721728881461881354562363740109775832871043053053765734924708484149827274299480565039327427601579237318781034044128079288063518267025414921254104486202981514463894162039428811032087134943973407129030516168382553120604135434388445724580824261507886103398925709536353287623884071472874181227878591826172544197788218127297605729793438250209365735641986736528143427758397789668357675671880330660792463775987829710972106846617750369345730878246842900237802460916579850976346193385423966652818046964949988870739599996052690475683773563447553339985470553509020191909948508792675360674850729871412798847126925136192087961829287675727897295247072361849895161345155290394759971468219694055694367893926548072443568895688192666484595003924684052958851230157852643978544173964531701353262327593025475744619167414253568174616160858162460877015076738192356889447060530793711056023988732726722853824695388257561386507777627476544470422038011215038929515472628587851154343726139821940513682697637880601150397901939154832406985893338601040768736721101856407248998084941742542904288280490919941022887017314937647980870012703924904538053761842138819671544684033435649164384408989671815258448163498708465935901730877436646776971995235869122730274630751955478735004255543570610460812810187119456986075733197247558976512484092878043354445636923089510601658175519770283544953922139421514795823061549069538462126035812727943948581500519050680713865393418928701204017259172224352301286701233065458984385027353038414189087456537686350453727492737021212164549819556450194358065657724259640533169787910206211875012738677719765048905537214422552517371569040268884593563504399153320340989160628471012852540393408756115518491927005340816502824565713756708789403459956982924279454910620274645021240466093127074888705827325835034476238014894031608017344606985976539104511096493578165817799577601439365401775113270403324254196430214192087656866515414360098861466894853356174857231457068379916322314887780139877656946061102396083557420221942842588858340177813573835359923515020833831331851264339096366445672351441523150694505015145233838630207745060321251746859224872019000855004458668377990134656350473177263084458770948319586030220621359939402981681457448797283107792173856600829918601293773839786520644987613481120785697573134814326923796559946447751904879271529059901717185146050109149459803785872210329749198710513444831578030701783275608740528431148182869088334051497798472456200011963632443187938818723221312104766153224368848898719604710337933542502267498371783846276311484868930583993333692446743671053843858780810742007757630059917305220129787591010334674383580891228502390430957408174818728131749035073172792773586786575834002355800849657127632514235859192384187773400242488641951292782418988081056450721025746951411910520558033227820780679594187148915744982578804261278764714111117052879989155044801517141322520249431271529374196903651815398282034934629450104758998667591130412169934806432201157929493073860013582813430176815812816328636952476478514274044812935153871142306201678686162858243600651645828975610876909116606953435575023516485331140711105559388677421329351077329110100016481675740544753556787181261664725056510507268404154310080557375194751764728605433771485694957208251943931657675395563429550261558750530979915918587381864861512216837683226252607847580016437205255495967912235168752325316850769982687578282461078039286159072009019425226280403935334220766843478554606699245468677855821587290403049017059437382324757636928865698323711069362578485765036315341852439193755736133997883858587754671092968125722101516918309222353677369052197116552136281541392432876435080144997586072087376678943018128179400753878592126966099330590201083298687978151882365650495250123182332976933507036623195680069802475241272712549406968575450634249367903059382888517742682007449390270428059293649031035876917082699669016088525056210891364202221859677805732330644982253571822334278712850040194354140986357201452419213710682990549768608845548972356559709355539145814919941833021163577262307401702216561201298626766242072447214962766177178238598062807386454658616769404586488223403922053730623542032305242575369766095384110597281630563302294558721356856117778000733414948186853847973197412368088187153718299462255886844457561276850534616109236873835551421057898318644633930824100760987456170837611983798270604733710079927270370275300849453231150371169403680948233234720524044742258254125519035037282391185320690903330891125652820088501107425273183548221175100576885069797870007622772610216274162470976651586336377175107370359658579298393284839765207547755663401414891995616719846804864554268284564585745067333703348918701388810005829919860126287287463162319992862699272161705428586313261524784548388033749390319218508090174471182902460657900591928168219192071870026597201168904461301179390123677065798093545041242988673264818780684984154495661060662717698254370811090773320729252200946323252105414734099398615397716812942930358100789241228212966943449718172987008455006990428347947798185268850101793634836142765455780759287714006200048097486991068188769001815267402300132188941946115237147160828086428036981778698806678997663778049647264935253602411317174162941010222817729129496364730823420907069422089225817190222987937836117008287708593035271725337474054025750118726925515952167684993749128463387780853380960988268021736717714593458406791369095145614096982210241785256094641882332767146976067126658333012342046247842630636084286563771149253406976263641157116145716419819777191062786562665474673528181335754626247230590158655195057563797315544685543671615161778464833786887355313823068524406675576023487197003576875603809033875578215495221517565482316337723982876348775283343203486929992170820224315959454650272891151931784954872032805768153023827557639012275127992954641740009251586259816388276709304964579961980148077456816915817056648212878168090492360799965109734070258799318585432613712293049914931646545024466678300080443568326880385902771552982289994879018901966218740345005198344929368852017008855215332654224842135707943372742359961684838701178149169833673997322663232493096926997378751563078651306314284737240378163093339751570538603531333308431672279477481351279163547391105550240893837531950479190860991227709672568038525103452482534272440159865871779406970215413648946793308123760561385256373088265237995611453943182794724706764799773104797156441191830026777897447206646070778166995085967928702116830925770830390864977610183823851541963412518230060855814203113474956862407598003558671834299851484217282234128661845982358141871321967247154478424549759793947957219105677061811964234878895784080477819878855077090914114044220072334247340498047146013881232850066438881373698627430478660231225630911100955024435939289569195706569313232634912142194605672689272217762215461501563919473379297934878787077964036378706702882221415103169955888160858164345074574955040108328642098074767316143699664038556045868081466115921746675765511575231453751190278354584388900912571578074059394060905162811488450013048622356908964138040159488437673455912563370673094379101127194198322385770939105131201912014483919852105791912739906465319386500220123964796677435379770686912588782414080763639036460404140308789632478078684436700326923940343174934953003682382170030524467588469667242782063555985823791527865295225556354537665637048935219766340668733030271994831866612308145822381348349042438610607135624853960151455333629618337786812447901955505738577993703340941741581149464037582926205983924617989142771706974783810472199641925573685465112263359651952345113932720756086096167146353839740623601364878609378398571539588693315030867090927674729234476615026873459863909044459098481526277817986188343892748087890244374233675864447195120556385601282449733734603402023217267319027284366586552592617415744744662648709805000741831232988056216126474259448169597794251181085256551405553341668951226516092073230101428917707728971139445342628055761223494563101511371384738404743241283721242531964290344395188734512171553298857111781442778972046492617679707348361919474203374205136107220669581637871272576251981332014341554496363652467336853750632961841091533110771358285231214145107346910009048878807877626556010759079807927061338638549355898367061007589361589998184257265894593543423818739747555577562857833292420770703088462825945501600050031243941368302086409824158524664039568138408999141647067229843568990101642285737784421708222654756087416869285046504567651579555662057901180400353811295244377484336148480979484189787035043058567181374071045662354691065181256655862880144813644406544634581275143001451995958391231450749562959835253402040112195631816950329248952233119582218387762814578911443407941256741767925240388163680126961438859518530385457821448468802923446921281612361369784397190866244794333993210507074469167740596617029434327252222377566246145034363441395048505814893687420321502076026611980193761376609998846734798074897551746026113762157913367356029566495609739653054562956662777620325808575815911658988838220170150953273204625781094682184536967182626139388329882477294277672318866035476400526871148442747419808670948000009724447426795291857801971720738200450990971853745110093961159473928622589695202056124418595141019919616019446302473834355965106997821671594994252703998847356539241159638098861655219567803767878604245123430494303605015225568145444737727658976450962092163350872098541049933161633624075399280193039663547574275089090915980731729592132199504846447792955628421851002107504703035609872397906354494455501507211217608930209576051590700459263403659581418111153269500848643197952179549719030742906456171482198414765055374290676061980649916007147770802260892862357300591895259481450031470893003320031364039095603177769429559717201384516406223789695938117454830332059663486506937048459523448124131715793453555023466049560553894189010109481453253828468945906114106512745998437109094717364563753531948576280281252791113152063300269984593251840950708191426781973031961873391063538335383344242181784375566951439261147109445480040610772210482223152040778102189855570349482307817222378405843177078394218610242112800877213481231674554241065082624094993092870165291437437232017186968199240000349113276960681954085525480597084102704656668299533231275994930055082618958354978646757915106058568158114724532920646803844488762336551784151620952047204760456889577905156778659926417656529766007478345131975764845993002631384771428493680090601113324369991831584683406306270099233969445778028493219037905218941125752697139361010628160137096688643003152351441230995645100964622565196464321957139463634673141391650125993429289058530316808681797557840029145239769967394448517259421653937023495956764410160743353855309659256138871583403610089731610009665584810863910519656300428696341587805027448033995819808012880395541701272677936626257600648451307715296309634617710225803102048287013719617853262818676894606054934803942167700924320547891378088491577879990496560315520885981740033607400034308517837070749179469366340740661889230191425045435531223550149907832099443761761660642259795144562636939297532096337920838994972143240179113496737633440208625424165822026215476975914131204761103306218348539573021769954776160308955086072407679305456258017333759201191537681257953016835002775611854277214751616878899556141730699390037703722770822610563108844944634316678637372873799744285824304756547075309369476991148928748624871859524682318728921875408851437751051376008757390354413687965337921949031658196267199961442876692358077557066534431511730187565334310744804521111441155390704163512355418084651056051405538703011934553342754662123910705264876153980955672745900481419224047642817813727299415882196758383092207973691013925740898428349174111625740484894863393875207864887178948633960639304572254629107274292481340367620546033368795962959257628852686252415165103471150527267993575092935053758939161049627515859268338947302118728762414408506287072801193194467823713612856578947957179507746825316744119744895070277751559154269504176741610087408228863515338252530884905073656630669607160377471146016185372172733978078370842937771751669787542448677500930798718255205589871958977791435122183143097504035208969428886724319309975089257602668852917665717971559905859960255089939061991770453026253652431587420959814536033578536991385887733594758427465542653844397182082704734574028793254150757372901146445105658346198077876501648070556410897548638082939047756836853334698420710912874537437123378767297595793270641298718802361109179840115421102508841910308051964593486921148440135756311178240761731159989154296386293175935513038395727133405769538582647464077537731818564484181622944035254159646732265695387610045753567526132246911483351307425659077199094258466064916087651434096842450634923294436027727874996449022283888666928788451406074460193085173397698607522969717052571735674342025474738679794750115129540454823878396851898802062646442030204041708012008954795831849557436213032379013580483603115912055978681100321801762155560452467542067629847695273956683068363821279133273203758375851344507934757357404421443350304968697129530016565858302763364831317836952810944263533032603272369576867601171888191640339587264933672953977473836474756110227585485285192122937848816851583244267944454599514796755655606939733794892243178495625842480658118369275784424443031266681436225249294921152690039613180917040495453095522913154808510967685741719431334321498406728323564944831798346707633060950720331242715497700980980502976417634386305885318877161481276306796348542209500867683156340409508971376017402309944098928388922897418337358384011485615739686196374666875907699640145723921921721581536309916907119811700750253627144608966643202112755198939862599750258680495300122252944961455984840569701675026915499095216379715895868349642770949951086219899010087513757646202556131919026046189079583053882424313359527743638526771463602921768643646296500071436203872193849941408193815669046497997071884762249183247294006154605747919964825410760082521073497991969550401902166013467733154002502300795864156642057352794274789414472838912236622121322419413761725987811293951173668930547865653476716468537668027318107815356409394824112730338412000163036708772706421453711858993873995077901006178298503950822046837481272281093207416283842681297733206296475975617604297163501284693871659696639328084043121061746261313724588929372872536258604391750837018188519035104268526525849233495222796064691285838145426425408861818769521960820509989231919056257471615168350914119052466351139099811733722797865048048303490422304393383177867598790001039162702338790049852262549761637884555460155291922934328980225874201544697611414107412754937329594108671000133953476999276920223300627587206290188614229746146189256011968838087900746471285140859612407735487327137735592646029520138447274055944131764047975334199894552761627921425670372465371633853808283699814968139310538231344643106789589756929523604057545083872893043599527845718936947073694166528300611600172434581536227213980129314265631476706617139847943824390911348903755986453246974209204979202031662450360535188462438313044238355942825572078016371632886936130236441288645614920780306531229520774010413331507030129543762555182193669903358670369522732514503876537571614182640349878558957987884687361196616814260597572926253579542665188668499440457445884426948339094976933853618465259487824972743344905445828721271300691182786302111047498275654503504334092461615676256860111187245339171369645654881470832920014060856051288415429972080688162974194958160091517146738804242550553177363197464253834580346222053073284394514481254054199047337426651771203537865874397462180962678050076270268956704979930322853506760652480329839675496465584469326874326334989990154125757473165003937069334842977784279391560727475408934924999023484712742390603212859033301217815013918493235905689237772526999166333732752963292755096989543364735688020902645374214029430167964643925105319028851250232579127080046008833636966600111313436377067116898607605639459377343043470388767168608012146856204508682065808946185915699965400400620175227476880388692567530224963985592441965341517057478090716394592519980691926460584504682496355905768455262583655086312749019616932805335754359315659786947050450569956546174586045019686619501821820255695026531203878855918791783209857161664067486469702302440362914357093324838896466219241569214896001089218485766339216828362846832773730082995784199404171497697625514563406102042590391786278128759009770013615667088319917449584894812854183364374537229460720504578353089209929952325639251001290064006919026126482567508908113834485918502053899762447506099589666602338777751403528955864960725929425581398886110204398722620999990808987670722478018747135174631568132070889781321786262294065262814694635020878127288255766696872120150799274295049815886922979048720275203656508788994388168538653289405417057441979891868868828564605246136373056848049002468656919660965837982116807603609531036703626636633166300897984443240245798800175096631269485906529693898601067568469808650328173785845269908673659719198552141522395013555171070511230053935475759144049485942778407423806995950353949880814035760112247849356915158922138757769644865997912284801411217039985142564514503324872891839847301873229231680745554105893047729908396259929279271901533810804193051502802753088131356759436680288799770420415406486176227673678778018035978990135546059797599709174053587753562755886668781040980970596855329495103598543892877713197909146576923487417605284783363906651812957219388360972155832884588851052821355229840622827741603848424257390136053334810341973238688030325083357889303675936870411903325139163227538656109723689066230683803339938573197756013097147021773031186575491293061910694781337996160484359896398224996256423454072833997990585801023138314436698740647189172247917161047598621523378198768352668108887444284749743238485862064981170472110491683933457695149340871454027613924051030757347161683846831887036480353553718893945638137515797297295534694854127478968659101796200870306071808560491838110283712098619409155367233384129645163505127604697161306543452034037012368252104936137273182767060755034424916046935885130211273265455708231861948530683763576731275489508736204602033916644175675223677636639498309230051252976621918932689593814585436455957884351844496779579791242867638563333260232575745494331493841176072078161632344888206826744546354511066628942682781930185330475937546309472864595304999829151272286929532846964584892980620341561101476179211748688674918736366031037236537902193850079235121618692848905039297840963679393546640304300254041806364811332277761286658859381859372558312939388822068927844577373447654529431956519481004538977065368785985847820643030557117128610428108021927235655570162121189201530187843600406534695274987859322179220555274910746872566444898897649862069478629153096322816031309220354759191270800998103821746215608824222325499652927059407830044327339566591626727699447478705760966333193372119673053323283079135595779398450902998949621001545714460910352313196571871762923389843745845064461175366125003475008605809371245329427191290363904412297396921158507748382930505199457462971639722717806452249085984809646850280307816987840742462637510165496288045189320133999145981579911005921527166429989695052013506309263979742109311451867008606187941193028797694611812646522679635671863183084671025680482141254532386922775823118039012253633148909072072890837987518555008280743712794313573205213898947827298132252368194254823449725744374909276279856188192686994647051881324444379752473472689631527388219977480209387784171110033142395934546154287932692860663173022622290232344106156282581587616632512710023074855316307260680960901552706438830304224657953372947512623659345608282567574123462381565995960747887229096880377970869859777091664385789172299472525740220573219815168910326991351750909220057310500057937818982376797063516761993263815924782157381751040151269600521188488546816675689081090384548073204743102227261739042197701644501898733059136712962436324473623657099529210094710954239246307509010083149482586577781331177702948349447095895536155575262590338206801439030666658337033849670023090762170891634596083720708965041153411949503954768404829746723019684935865780385063670691134781988747540589074410809365605043000929633117691283773751726165500018905752270018492946471643247743794838692186794468304158601574590967202921997456155509519183887207157704313602737690937024002040102833843973297683755465792804355748268669488877798338017482164038737077373010234117162546879552299505267685095502057024859754380453312078064897803245213895489591077910260999103907968395647242116281819019022520852829482173702714696736444582805263347975872476249821754776697412788861696275598533298547451495445296936833851890038282695053267952709477153606577609036675648871091262481356346770574728894756668883211958701739151544976842659735049429313132883162171807360146468259561610833871051820414717009652204619135356601331644132346197689254747936305223039183976542952454591810392074660910547057553249892889865941411235235968276891605047622402078121491141318379782213304895129987512792165428588685597801553501229287489655110452817239788146476724303805961110126320100826997527583514756026056945616482236696595652397020458382456302549120495954198746474450371593938803821285143915116700595409210788753377874514964470850890557467002480461630380521255648157252222053894125526017213503816051784117327325611456337277450310781920525343503429300787210165744176272999032717130686711977472101017755917504636592445741500641855035979877578736335726391339203131987364730976668661161221108544634785730768586384517829779496964016635009109246149732116248137640281939201693330676328887504683547411291059630367122553800936709800312378792913436074433583703562463361040090442066599066015101822271050245225138164677024521417349194887131088241812997906747988750509700488588647032855756386496062092910328156686532865949114526035975617106515801242383355395169056431040265340705353518239562701308304353186846377749635592926968721473964089312081809167104618861914953628626942828960874299978083675769416230459369097219196163389021816198454217605582528062915600023719199785801553113901314585619367464323956781037163294829537545781980147135872625036537256383353514971011117833772288163502955850181560496492706783085091012241780769928127349578404266677033631670217175570086571227620003378209790540865176973590293247715761470222928909330023015073371999435111363843856403378012911734095492240542254051503946068012033679798194669478857315615652457175148479412092676973505840940356812460238077082631569755733567073241483158932781498097796086720541215754525968514956130322877194424424132947650734366069134330173640404384058365881861386491421961315387433553272427880459001508256880247532602520162918570992731415468167757449741111925551979455560494598598466885849114441292875877120158688117282437122110881667825780226911624635135263601363216349859933690749944656333331900401075333908165471490488012551221215480887703888172968937943920854507694127527137401697010548012449583091393655672996030624260727957986443805646274193094821129895580474866784991150386525490101261712238054164703101688446385478991538985486088418850463482111005686352746386959897144593365264287699816732131480848285687824888945202570693148726765693917097603604035197923976586772369942878365343303840082693952007865255382564080747507530770416230996162228867443720376019652853071155072281076567163514517118081724357256600089465483657513771045930116900865008516201718978626051736778964112426224973435777263807692597619163918540151247439666827147642397891571244019284443318773663632659044416261282966985499121759941954303384962420019158840059817382602739094323787825506860656463788447110680355088565426256762993177956296653513851562750440008741070965440888644454933871829674869067509943651403538595994499690957625704476122034747837596347004533711304927570336117932479100282556375370717177080164278686594865346190098381555238610935423873133234414353478736065281741923835497872067243498207226678144467031019179098502978570205710983267079306240797062988425855014183099050241580593037527073060097489869395168418053291953147792701722436072413156602115951250718768473879655116911857584713440322277331318113418394754304057027861356654490864677706157277343049852047785625368788089324775724881792440365201415514656193162241549254791542558920546173766884364899579651866246932860815218776649386751544828974020837297364300463575303100043884955101002832286318821251241391574943461196550157944230147997122475469225590864727982596356774665394004315868669440338394259845553390833954529563533159074332716304342634104454946871721087064346606360432010669008721060133732058603716810315310535557846987616106357337797728407310415625860912578033013068164464327064609585903139852363277561649502573383435029825753291105821303363526033826307535226290917289869616988688837228672654956611796847234718450548058977683163056581313899212111862291206879705977966277368754927461327287960499924218803154476018562212768848810190245723665775666296714548401491443404144061338552016767405728749208214675436999167478673053882318274784232146855263984870644253236848424491417830911243370881513565555380051667531979549077154829486670511079365222646518259818331714355454875619038049225065099454888642952331906645567412333334121597113407825496395315480905005350346382546364983681857911360273308404282228053990297512752697575047681977047494860509692217024046356243104714877655622669528006764328529697695962488791076886856025891894408275678332353396555681574743838959794593575801331939571010835343936894415791646556880968938429822680919843018747065293134279212976049260978404000109070497249154356140308360333636546530675191137759140176834681173872275930924800413730064405833432853115250735730529294949909953225235727299364679921311544966781580678293595050556968142019372109617711247163682483954646202568784340800177813819859692682922727152845165756008933269549409716898975426994502899775187494584856624639641200826341492506877491168863936494614918561153502650529534424877517029003738118541714385206571535553310854454842653359986207284722360225214450385811506506794967044913624344877387832938558097893055384261847355041056328626256645884194064549477394393500145372849071039961106811554636631598870909054314272040395129444758535541362608387393681337013327468950644716676140460199895720310880108729217515861450752830207307996959252717558951806391644925033196532051453831764416898855109186512649053926013035064561426642473939281316675217712816057533574495185295490295095816513742027356725578883812907859279093634471133731689875136685495298783183560452431203193249235778238690635863541518872561582894375616920785582809746002553821837256632159993722431101031152669759937603420930864663219728153641280275375076072608715147069939100670263073669888645499110434524124857052417707674028017222931450415675158379501553968775446898855368114885939805264085398542749416890469792362025621017761193039008703917349968445277760479003891030835736573398913056875388659334486287431422034371310932767339090306853985028778555228252466146644057648410752596739626896383648569187258612801883741808160067719357438350514013040123480321684000044103938156743311054942481837974472415668640317514230912272989815706225688585029305175578563569987526328846789050134204050928024825009422588561283400668229595021978210015400290653153243955877533723933286201899192238032316524604388904973246337072511151249162360941383752203276022129687529723707032958234992442533774760145735437293017602176957977214056781806009723324496550344671318661227611988284154960770384663116129531621535770165005905195344171121272373105362914140164002252616122393224048311999693291314340628171725220503362875387930364467324348808887767863753290255916655336482620998584559450385455516973776096940476328984537193476603691646632991967280916308429599503380318785660632246722763210243978347070528656077712743416186983123813171036921012495696043367918277750031780517400694470530776830514149388693282974803865142846931527192978325483892742630967457746646107235893281824992367882772879084575240270174633906922503207057630238181803476397066219456579946464692597291304282023493391402598886764029709825760311974343584458320370117165527379366278027882559354513353046699580154758579831406984788307314581176809329728825402587568790170957620078402305740441554452210085018416924396597206482604935289629009035317251677209481910148139768550723054352657743113899432487793944097333298221029278108233182714895956428246087414614774342767935960402424562612305647670080977974706267697643562655670463350742028925253063154559827469340303257973746270905788314448190668731597876910867108467092492647154913923920297850076005623593335099415970770300881749431676062105723740661495231868827528291462833390153050925785216476408056256903561148419249953720267735230659848196015882777109289581682242168402982443549312568591587636756643954609552243987483005916758535598568308668412566382382728162328658242757545321963869031542404705542395169149680245942527833135647365411858314798440374065961720326539898627711067438864782306593355130153579931004020168252627103752231807949608565895757615203557307796565578531685557279714987744888012536938129965454282994761028338762832113570892952671946898609932130935294637784285638696977013720939353338836950885084245868357301606308311415355045356027809818345003630622586889983377356592993487391942876547147934635905380474085115895754127743727545122961017309090839012301768834732821350226290838097644828333850420260405908291410351409091005988596970693131530651534564605838610905309093620309462524625499857740518219180309117790775991466147838578759337056726624680834337934627399518123043884284009188937278389955044116866151829600194446874972669083526078068924262119352687033851102643713623202023642921626763405731430370251405674405980872375977991127062053389379355231583310203546216598938254251950043771370417985823750040802653721417443692432511360903690412469387581413272237642709093375010112714592752217508362240930391122479770186469641565461780541472910709071150933275409403771536374993355340083314283647249342376173888379523725294273389341317772237009246843746504865491274228117686784810703163782407935215018723125882860559345660345550994414462304498577856752558547257685818449490589176645530971478194121005036734730792180707186179776541850655159976873916586086445460738286040494321851057250659039027413842968095279358774019489561769326613442045348806585957598986500849403064061237703897499007479925220400820650766431495324505625992253928201600541825029773195950344794487813017258019997531531819044797485671064254147441617810928976202730030447057329436683930681328437868874939253128706761187823450702887751628356963272226599160315513795470856413057567809490929017815083611485792787698053909296075055733203306257240441775318646561018982467808313203955743784345614561434070004956717709899908624609418602346771019566831951017060133789826677989443338810535687885768916636732967223330951811491938323885994930397288796865542997661225822759094736144988989115176731995219410119146287568675050024436548954759595011886391467797891276743601697254152926882932246333684953660890135409117676286174337164219648473808237195937845484220459726675008560430463715505982156357782650814481162553712629495104713376584692252759288713711823824712169370703000274409218399593414685685973224483207736708451526339968217005375899698296801194925993543617570913711021616126663598337546736533278156177444484306301244827389292213946793704226395666362979067492055943327670430141734390975408170294633680159421098893294500427993449074922123199028586302440411117877183835117887144979614207924590347318763894043876784183682728935687334223811090681071690856972965956551745403822159059137194554134869581898838281074782544364186701430349080745716873459428258297142532019062128804040375637803080737561090273038135209642822319111064237382436328451314101933965554109746168472189759819251259653818415600405939117382388261261580137311924108638104161400002676491283324582023353168168700004875102566012102111014355008262167507169880349226759636388013751199607540310313053261327962859170000312784870823267565214207444223784666532397511946570946127449344229236244246258518486331698979141049671076194814742322966553396670979987327549112413647288997534467121322830366798584986054658308392569754353556964151181253919794119446654062163897783153148595160055407357642795703627206075812542960348811477762302326161837116484545406615932312257901592295382652315125505873073941096991619904045259168865512418889982466992168385477336360085013526775382776896622363391602921113730025410890278806173803315937075139789408543277622015577803723087816086510640437147075148224739818302420189799823317577845884695831979887090102432781655836613964439631225362750935583349923954411432817065870799380845310672385172071214013792522407773707456988888441400678133663917795651008647872262496522976404051181352883684672068189026475041122000838191826487593330756915925596622428500945065631567398614170235547352852750265827876005231139255527583005868574157189219587632309998511311825642158115989176033850435297284350844069401794318165539410209405758930250474871539530754961890086694038097638972203393551208536458490874474084929006220053733251581618510910650959935360808126046662910610133466651307876299038856421380884570558537038985913200824324462581315442244821791496041388952772008824569999572141125003417394790473082130467810800711083310271800086918166447650925396958148867121952677142094496539368406034808819923690936856907295167477304106047312874261738797628735348355146425614053822656321711216341590255851139620322166013205197735571773608946467167699447090588792468118420243553624231057713964737355649227363985933924299194312639887146170786042622285829483353522607636251158061580128211258872933622717595859637758526099833916954045221823686940921081503688542640716342742363279979451849598152506577955428586240040184188161826015651284860253723643090263067253799681646285504182973575708916165593913885067948968813772256054731265001147334722293194406662376705845697429319284981937253328261114293128348670226961732788324974669103531048197136254753168018812662287717201459273315520496076915891505683710394885905740138457840275933929549866172336609150226687120946927964416990916993397953598584172811988007565624552709691638435612188549283537372599844522874680664366081253921501464390647284978395112372461229218222964873549844277211139803052085067128511896258434846257541007923011290140429637239619936071934705249167013597719388551790238222502685911318909561483974994134162684789301460547553623083071563510735795676694976514558851353543680038385007376895270510346897585562493279756496370208741149605310592741569204734864485797671625152688085953220880645259747232079813038093849621609966908359165895000031694535815808346843674955983017444713398580884206298787414981198306125196184468006141824822065782660063670638141016942632722655759569723920463688296759498565777831638467230007147212677258057255060018886841379804703381823022130096998491426253373388235237784312649349411368513361261089953611541791218167781511886103336814632727825850610361604112689915395840764432211507572691995743891681273595029167093295962881908960286756452541368909824481391639731834038995110195028551951397283486075681553463330629874075498145129818979853930568282455923648795700951816938501080285747758640022747680079949554353134446301080544429445703774573580253434933652333525012942444613785234273650496057563407484059598676154545165568250690939406989330936455045859150892540282370957551566462482608940202467354116718033004602267630132809346302855113396463665142363601331031432970067158630767567477160628820180637508525339415018154846985106532280738465870476631430754560717287100899061640290253300840931611674436772414185846427466763712226487701143763461849496620712846399344738271948979937321226610171504030902060368373320148105799728683953338725126455087568718963288259668496057410583802230497021175019531372708070923314364839330119984138824347517227285205237697502927708262409564330346641766047201785139018903416161722927214306529793062258716216073995326853444837357665027398092406822312854020110904465063537434112329816302046879446705124695616580722732269459756997752984062094423001784819120024879490159340772126471329187488323377994235889941592000508400160789296215756207493260854635580109307770801804321602136764137349865811205379234256132134908985100180643047203141518989784246823914625105908196137882838585184520458614924446070175203394353672766294228626746697761092808496094537755267974686717264983491268744535789613939427581455174523107308983788399260155376323712221854105514133476221849514916672850154269475746380992563656953218308652165502721393862569618157459903225158505397583627300038376589079182973689135683276003114682568787199968611264910745342608430751801192528982448063205433293117512584462464278161940612649064285899660527761590233880793115363199205315005118463109939668215465945648613755591885583085209676693020764136136784388230739754147383542288211789563531517553894565652371670851315371306519844909134452039809271178305291532161528488714975904563007533230398259671928497236896731116539604344744529185607613848100328526616402764233059714747465346797116815374169352460761870813508533081949968126263465726614527466374513054327339564355271731532475895440199978966303794203449356442349939502166092706561622965766503539068404216736432081906533960866649812294150523363434611906486072573628878179301357577429355037447829490730720373816069793720243098994489829427433354289773382998915371796914090382475236919079994197969940508032417472400556590998506108689388136626208545631382648751597849642858934331933957172255730051015974611612381032826616170598231131658471754267479501298634192099785552396637962261873855043095820147097948841968637718023464007847418365582092656139481917430147278040361191196916344023167014053128658769421725937241165581620157407387187573873947631467203663065393640333887565432130898992152186154405472393910713453022305172894792719273601547504319033410290246320668743304914630817123200717684079802802855190603764557451390788407529089691035859312765926015468598404627897054317289467753223486216622408425188641744424117161197628129120968345288372055953417183185093232773225536880311392299365237183061438699583966473455860971298378826049166493454658868822454068805016233185464387416632372305209381723492386970091772231079502118991486122544736256243574582125148902668852275619892998735447260530456906227765286565007906752777507354982050636628624862143571994154680243441777257941808992024510931928766640831098544390847363601371304800656160755977262436821325786918721108579685068686147533023565264004844467480311202602163974992008166255662132332965875450713994959920379841328410814704545546690499359217891902686300706908764653702579142929542936595204490761161566443848953921098618956850784346908058263889598872018084712027650499977929355447361464113792426979330163104423452111232819343675084064494326584763352450475493761484366713461796599964491347977386686962218573803258204115242981240417738046545130430822422878341338088049943394232271448733187368969469702150096164937952670990930348754214254475500960489326099298527604946780570881833045692544404868965081852077507612184690625188318777710986041002993303281894035054592225270074831946491844737959902121764471142760550939538253529931258179487956845573748685169961553005932195718946114010962189039606058425381197346137331192198213541335200319489476035074810103980885715329575831205305537048998719964202288199823988134101496826766335290611170905235684927723955146566532187668444541708501101025468409168696226558560484539188304260924951430903735405468966904069089673163537975767991184773836098080639122271104007239302535527838008299602132655095397526480507311628917628799001454635310916089362486136079457426736060501577243038082770868052842572033888440771101708589816746470812550230830023206821502806630826112044984045590427409338992902150596055740953334319774472389741096477220281756194160210530136903096940067048155870298981466935634302604491378179242911881089848391364522125406023413787085964381090384034009797377405337135143193187950838854938888418242288749784246642533295760963289408437832044738775946811303700562122447316302261185943875655274629181882885520818715061756202046646307848950031675213511905304972551962810318655616430416005026296484920186540749331339284686959805997857091732739952933711640893596375175569704106450154099844934181426180224864282661656211743679934729019396413759416166234314531338064129376447571368291121496321663629607172700890332300713946141658469841909317596068990782144896409013480362020592596597797413433920512966937712425489694685985284294525883574696780589184803212660543921358539069867940822424285913319982546517381838120768993697056246922376333166632431364498773154253587075404778782575245377521015490328102379105173775705466363430728910808254541424133097287811053067650273427376650814731102934506919918495757329445404296963847066380823871810998309177836944465346677215710864252601520691084954918829556364963788929512783106700455318976361955517219840459814525373139099332521624666661539561872699719779820459290394520095147105346240852810641146982603662477013784523818529697329320884339531585249618183619320645719317087281828276999047245021325772210060413363234084594361592604639764360534242312750836643652284636716854380110750838512775425800856243139090746124541249558021222743704575997279404673064952381877353530749372717478584727851852828030700922626182198245869798718485611587875487786457395338576242976065323629192235203895792028237085876936962186077725311750308463341769967389748746696331474030342797694727134487964347241444327012964778638691653530862021554484516862848566535079247895283240196202820474767074969005686128441656873124381383387705536994786662819991750261437885433643794932787843330274299338604564745070416401074457040570033799146399092749318122644919975368939394665340111532666439579909458134889296887806547610286810840497787691128812013949686060337466376793967229923782861376621462901230581891388366841476483707052636978264914748283185505065046020787308796903143564048567222789699546185691467063639084550582061179531683297310865152024390772060263184296576958846052199968548831651164583982399564339760697670136390135045069739363593328355551526146993709087217515164932534033602092087470017720269750533354053582649018353760263763153549720433235467395191961630604295833996315264308238185168485849787496508156068972421088554416714729301916502063174902017077105409405164698238080429206189952823257269798978997078889385597270219966867737257905640023826378553178204192751551054910603359869233857880605160527168475567374492934073038772264100359284897209642871816665976781706356568677715097413995508785603504849809933643203250654311430110032874584038653381422478821360861878987362218021858869575991160340204167030149297770911868739135144765676522443887241595195300288306793663210917027622998961626025502626206787918841974007032844651250070993779449191429203381296513015559444382983373140782188166812515774563143048101969608731755584465980701706904123390189093537469288644218105836269838869871861508830797324628581633210715807462043406672404529905943634291165228131587115403323586383242631474872908518846576210684052193856031664612235552655638215795855219387654013758305880293421904061212671328267200130331144602716254861389950853072388397685579670987232889385597163930881480365874439287620703027807053636798965859706523458628085034106879234870766160959758126126377564734496810339311416554252247301586168845346003260460825046375143734837760910023439214088552458673975739753769516602234706966712957055780056432543610891514759116991963431034815046418569266646976666318536167128046023236504089618414150309110053838680784165568249675024949121144156158926055366301777510249845765799422734237618584338099897915738521879940570596584078210523931457404351266837146922840234792484771802619637155270148274953343841446518374275263321914531123234565820388150759313530581868254500284496015057034571920911738305825110316639218016818205991425186406913282422312952418421228131097370960761164294151310095176523990870016411656549079811066440546522374783090079800829180421785727527323265093535621136862571992832149472622960705986401999867466833823474137449185856062480043682753266827857526528202784451515075585089061699520578299826673075505374218166324884049338709235138847181487235078149649985875609837926667696714198832741577325632421096601269717384098167813892162351381572127933847530723880324467047963293248032984900443877263756111893912684619871644340927955596461909553407525432141507160357869568973022190887628044340437856868368165959836172140103843440353737060207471515585187701069577221120827732510620347647800184309039502069002219011526105030755128184370942117125691237010705754030668963226621114125669924007988148695741359055324920494576395922193475973969564512863395840609245306158446629058481069369337343287071955162738443204294727312719668320322336764827754144681597072478268537058038745197159809213329471000608155336089212692611930920691530492497024308581188404528888442968814653732168779099637864050832732832227419133909861536215317145716690908098192511882686764704826992524955931183195694978516994600780759902414171953409109197154735609366966134305697033872202176121286456364613412144425607164053060632369858054181963540220299927044715913939537174543563542037629616439052767531802824833662475911002039509099383785886415862832888892896706288168791896210714050372509246423411904163291388855695162435754301390142773763396912622900948822575297920657247776101991953677923129453243690525706780162732236246350393195024003991590182995297042659602814068110750973925181100640012494590003013082847327883709474937818920715863947185542877296695291615118967249840768703417050964357187966432197283081217826415772690970835142145206781408807369453623640459902791033452110360758919074215088594109896018617472978686100982937413699669121555067944988018002653524328311961588928236675440860133567166928349861341430901591708310858180400085702357021251256863464115356637008274441266108185389994888344536367495162643546307440259342330861517165376597213704513150545442354001943679584220645300110403894316733085831874880862545671220906396983225445034637686339303402638056554490820769650260796127537399757440910727158189098843528743214942704343100567828298921445964834032587965091359091910937815622094890659042154433160805991765299081729871715578700056514007474297559690190227531974226647739848359261550603203772665233124858973110768895779635281467982389071396230528604594314345572947823442379309378172591542472205680682477284549425587712843518646237704961929807695584246131261038955050728360603594517422957274590183946322848642225309709692065054732072761821831650765813011706280429439984528173056174683240228880872834247875128889226316406661819134956109615468314271283710798775050652820745947356946738633287726564934670042620678555675183200611208873606733923476081922899368368792254580753127005173198828748611837721689402124958710727967332247994734503283030793683959800344447481615555016874511215354500136448853401083342080551914985003435336985432125022413096204601266014469886998654014161654503694200577953993431209957112654108270310572046009581583054049689034891533172744734734941482180948900387491098068108570315962544854417875803796398886119174747798902070153909382831015133494658725514770818614272017404348561969567711979949552122445142405296016500397395039090757917060885867724126323121184336460513920603690447040077492102805473438536255517558309584546387591534504808675981057515867182849668549627938637976863388204935044722761268604676278531809256846686457178928198204108385372408793063662880982136725634131337132079625144683394548645921287326455453862399959434968759676403002188127960419925428113421089445455148217459011430679065052433418059094156803037071747490509608261156090235045474472206349049593012157574489694545153586255936159259280520947048305190640576152714973798971310650084488853037714942033825077078969251174156482957847226598501154340106945369408227392805735661542527228909218126384034776772845626183162340831708472587798479119729216045087799151078359764527906585048024047679159416718385230007231378511704033791010989227123337320003511264498452430555254674027378579021941227016762758210449102497055703976787147253236951164343420742014691855580721885499516493000818804072448427177320607322215865067504173935989021025553563525704198961981787710401573108384677256227757280226902925042632347239523389260483389962226055028237158626245789647345083979018760849223351195162485671695108060915013134646392349781707518497472964955716899661993041276619597447236902213346432650833346598035173646792675822942172054051000131566788220267457329978637284029945565859126580248422728544520567093740651247332126761803684037034502204616051333642062708085302100580807174022887620224264301501183503840094874029664514412451501595574640486252519833308163733312095071496262570769604443426853415792059246553794686594814881711352422323908301675722730053070756250501771452509095300525188786030041760478727201486971206964808237936371372195261638284858319225481949720241564047390544454929320180609527377335264981067864077940968785577291404537911613230799106165347173696973984829567385403545604794770112323714849845218225311394859033513557282254765728013238823779662500695388262981073529539273220928455688409257039170538629526907553071780590449530803655962674508468745022009222865874818108756298959868567104034316100351069840885138127903228114402013393917060402127054039334283704669219792005307774665287968058841214497850245316642667631106526982273881873640872113056511959605803563825202034237905996051440390296946714639797855744438205995990967836769218493142672359274905168479746584595850958519605280256515322348777556986557847527400944987681043924752349424888428576501642944286421634713305153718167817833237321569323873803590641667689165424850829816153493621540365489558409791381696408347083136777630629316163752088668097668819305746057398928793497828093534147385253759660901484598235125331147896418929439453214479247140581063931233644162624084924922232455987610577358768625143279107387204176197954053345571278153707879538170628809521982703808086347412235919621804666977355597839292110353306682746233910017516705758880540819668512525015823570247623075107897168843341315675038286043359050424918639917561167428366111076904120005194902566273373755297852011768304502163865184576932259546605825926697918990977527784454350625159315812634225832986895263495051003490633610441569590214326253679180869794385724599782836888704919910960940277466838007357928298251012903429797988859159828887219480071699839402960912012872748590907202122616811861379541473654390874316267094869378461688348705763831566574131031074025930347931365115514075210979516489046372462436757478648334299667645555521648955711500366163178036158099616303600409153384011202925577243103388013637317144864886484916691288499002308305759845335606031510068512062649153537928211001650520763640951692831887579933370715013961369749460712896199151101004225264864607487950564421564444895167903164747103740263360791507957840566463290504209776587890226748236615142311209123494200339595600785811512775818443586243044608243069952321625972034721029997973796220758526677661223359082720531318083957926108900303169296148372239678663837475549608417110563303178374097617033230608288824593658598175033105096675341230564166047251238790512415622127754474292499931767843829742364760549772615680072183454105517715781717072023766513889288672354342161255340246412883563546500471083894352145921443147078791178358200221857014831027905478744871493233733901475754148392749846846493110500970280789011908633296795872260762463379319916223372056092417678722989597472458057147537888109809843219820785747416844513563296624298203865702528349435340759565176969104714670358921406263642677265640584266028583775283472173829739142624690121880562437696725907183037286528164746772949643672392213759291992486301464436929397308578974844411904280113032610669517906143686317450923681500720235776691523432023570210492502359714676224795602570860848300876711897627403717288819712103004909736893982357377201207023666179215585287089468961453200292450163606113581370743022868877213488560317248737672343601406131779749039469827442593104870991065552245005341906909818263055162959735936236825325797206986867674996058080653324785079656414682508490967416002147159573725752062895333366407973173967850029776623853242398542410395828683106769746483081980952012738697674862039382219739629696115371188470794884475123983291608706675499460825909864407117695926593284935603028630713897839834566542727149752040645044559679043758336852941342044121078894659135036075937801081736552161002845859863497937849862917199425275008711535269861002533443225474155287543520207442742131555372432463226211701559654101101146400146608051181342107355539441902523368313853249986846454270279514154890923340652629256322291373275105771165497282406712615399800776628538372707038279508053900997578148210264378744819281351652495478469260617738836601261011749058666089917952054283635881951939461983142409829671704040218864807727592483912185523016700847738718418023332729245080048215718838980342553436179907251956522639284953478084940744527165739076015102198071320074962156558558863356807916649519925675636142580077123684725757479304576311973885464504413198062508118189168838337603786946061256905066225259009319524864419471196795591766992874332799406477577906708797505101049659621139767854869191869640752658453474365209995296757802683959782724810249372610387551247006221673394955349599895866598440562493676180230388366200665291189950862954983157216220747871405264900289265059920915608446232912709511198883460493647137823705891942715060987684962504007422243275917120111320959138788279639321216013660760085115689876405852117989888831470784320647988349183009713530056735086652566545993284465361702789310814983579405472165624518561452528436824860225527851762619511611036104401276283092414220549629172143384591005671387194570392293019416809742535065990465034556499317026302359671210522436732023845431204103883996068961149292782148989766317686433778433531621963301391269468998958292200947599320923224451482464648005705834473376033264986086393655787982846549711444319101245362873434049595565818848728477108364473460463474168228204491700478516409111384254336885453109783214344992997573292442311002377761808757370983295512653633772761910744728948288556400661804384163293131381779268713707380694458571501035984198260501288420666146729233210521523302610364507238902291415182202759726076814423166408647964841772157246418833528389920894378953208417970216392899690050054553632018566745723341206754559209678681709529649096058184233002707834250850260847025008278289346092495217185185370314310898423776793659376308499583410542932017942323021419037593969521304961551456537040746008784717998946209310337400718098505309550036146776517122045937675292926843051276063739827143578862175727062483668456927912831161413908207014688016298521415725438498767692937604603421263974345878754668014533759152891060201791928108793767097526388822237405934664981764673433137935131449262910414600444046803182167489380285689937117123817605634109946071528784075459604958397355194707784370785915110528398710698054140649515532125326783251009919195620005880395805755513337022342029893654783352572151538645863616573745532607967643704836501986765087912539980234829613760574389075549988592459518274053515379034039333519916415437522343871273885846203554702034898355262291375493158275446312316835075442401613442728857080792601093348098655228691460161695414859650425485015179606935831303362495792093724259857193121925660319487607197482066779552775165233264219742108682365168068998066757634324328723919708582205040003181548001359627450395102286117785982943257797154627180659281127997272278111157376372860159008508649181516100526509345864417457120467533454021272851076030733168965423719889047780743043480350199035106070371798464977518484788218173709531497641480301915792275401993005563719707021513489932272065174223881667362555129445753122540602761389205519477155677908261403731291170059359050097565997393411707086140627735275783574444305665524018913979666114197729173999144913129020988014322631824866444964424084014564865894032833299737378248770303412726836575793733363526542503824468878452306471652712186177036351821779473695726956825476554480162145105855872582712337764715602677015186508480356613462958355014169122015445214606622714400480653131613989809278748118269065737663769982479291266012032842550035631202207148989571670579478934859196725667370830216988016907443310559588476099467944672260169093555707018079294848354158339899226126739210968660474443467375118381219623646171081675995427939910699343784124933714895816421720658958431309640625928560384393111644423439170182672573753163405160875680753045193945527877731756216543597390108499129420265648832454880850498578619370093093495219932423346450142876241547433115872710578850307795377885888325666042907470742262035642358545593149042797529237572596872376023127564295043221927792930535833929494529198761376083409336004509241111641350350142746327924586011291875319009043217143941716688013055486771581406359066560346742205011784023076064586026193059414350213747329350847061501234439624889881551052585237239795638939018401869750136838057193760332010006335489455828231113055229269000072736024097622909349722880284407940587227921225917205158018548347279525226464782973592061140233333276123945296095207669225807634313623792327969616717901496454202126800181861087927265329092328505322722616951717275951059224228425973323618800721267439550700883555873246212662622889857569254779120435144773069141686221798952612222752048006466539869455077722021601169813942896553175089645685300777929246122049435052872670719023919405795391708654815752893087048059595523323358478689515727496739384177072365000620878647374816710255149830914104325851849044237996330984909416698888861981197457137569942236406845653814009923037751473718581756840320914014797648425054074702153066354905010246529907517869185639865055754257946906691575895803842362433704972448546347034156611150487093454826646719639990798663958725246309805366778389376444879719789436952193425156848705116580830285358100691130908784308271098490310657074170968598082466862115395084287959125194888373399086831999629117798891157379359816946130469176274774879349553946898088876914929759694262911248208220408567236821508152516618918359781865089310055656616549297038634224097100942365863686210141773866832166557661122789005151116503679339366830486985180886773757761970196441162383361363866521468992601539131348908922895979888806828915041399243603074110537029159121704999269062866155857228747879575506028697441621725833647156493677613434177646561467188879693297990591820969408392068196138431477638754670033098167036489277539869413742803377854283775578798656000453540302406254327184065057806562619977404589272685477781167124766926652876802090012536584630690157133116236670313237865363716565376663231537748014363840987154037590327394440401017382614114185260281142618095466855545399993153055913046723931167989837681395101563766577424443247170398158053623424026513200854801835286689739075825798009389171002158567238029939407264139598579312409584299226273289642498834715868679072252910245864852170177558501593711464943830822662035517544063084083828644433388564689354432186698565507916968631874766345112684520730141518471164714523661335053416163764093027336184158043716818765736945171832747241340118790300925333452517553978464804230769112382393917374205273981553601538880635451788708505461328175063603615627734435535298622176309361618944385130870946815091278323837556769250256853397123265845248709074308648714258748233514513161179616113906824885122376719277920523175268231093949057985574395179128524319839985234353946870818369530822224892487375564231609906840795695894784874907513257872672031469576125323500101111282573247120340432458473245246807123935677534104949232878596361719513307965365912064203712716259619269730012035111345495369067040310966812421450665341055989725347397629695329707943072872678394455034218727007059329204917792525308026693218560930258003267779185179189207163425470386603432574788755600267653016516704651574388510137814160774560697559020838828616498769389163482044941669022286275159747138212544197856819855418355449921452026369090365049951560060817981584232630055785358080935873621971455378923864741981253618698234821978423453115610432320788561197425360989781491571701299064084987898617453633808700540574130082994677892431316360200533955647778882008538798857602011510916561922572301839029820438203073890590084403178333036376848753991230079095512285549239389167385298858980444742544610538395264085974617572632917027191252148976045281252579197160332676992223494665031753016436420954084011625513864643894366565967363327064850130455954104779221100909149405427239965234057939926286847289544134496716371854784243249249358044720685478856450077218395584405919705593084810485799421098794221815785305707814542823680143186140498391304417783242967249345217906670084033728252893545877886993674017335137325019003211866639368697542863159087251564010934179186897370161562692059222329485439325835510800148269594699729248308714313133537949477683396933197487588418838607788394800525510464484678425088703677000604312064364387268892456966655581284417936247024901467466103954043132439777898137609710400050862386779231094836080093624482347871731006245348518434839321016230604904312079768438207770654937417428698744169258988010635521089448328492452305590075745684756977846703881117671772708982019627507959797146337425974084549631714600278310488411392103751073470921502926939347216983009502975239143153217725386508483448371739173245165168316868128614356866858167129283382421818870681369002565943057517454135308656646288170669531154180564400310997369947987524394772549051442192498667873123244427200392598227363880737693630483368459328975023212731830737068292840238805376738473195720402697225846021471680290537612081928663430271323843943764353183191912117519836850965115485469085070116560133551548982260968241274422917030465139601999393686202900203190721746821861496237622038294036108250779617077918724111423689364555815840138237776665705095710706192582549665286131864714417912967245446475197049844908601314332971575281979171090396050935089996940058904490545337528672861646222108014045629949216828152317577205310073889535532387515240069481798687093921200572972524545248939121875042265279647339991102260254793540032730760006167726897472043087672410129165428853104284734609710688774812255539053669570684350319970424303987491885588936583042623936475235669304515682041212181519148619086433515643275037889445191841573904788571185882432270551818298264614983758787243753182298837224502068498771776945911023829848508584759134832318053680730502734707469537507222212995072189802914163183507328484814800094583903571902985681946343623021943939127498699919862779471426197253041369873574013265878623403298319807064397359681038242432163665253260032760985297898971195356374755986861040905718368260822600416548329987746007804932724332354518143367462754223944753414396907395839306010085405370407739216798310106487776996624692582086890848958557381053662389463431150354390448235325028620750921297531622115713027034578205505930230171489810863519329107200510406287154396456630095802076205566623364257332536215297603606230977820531831270816431270451615903539324779087347584366057494868940943469755460542792516570118509504889784720581716990453405995439630112573057278553632905621659010376480893052228827183073040924462988823181451702188594869516481366020594360028770225481869071255788177098008847062791455639614918399614059891892014554616878867884003034659405063093433922914621303086459485903045875132897744677153614976092732855416474208266676831407980994631315308551937395815395601182314383910296568382691879633449543301506440358479076176411923746524321509740268743277726344972305581846604756572711893532340796212514677228361275366087943682679634739407886235345048026355523691983600615357503468224773637805098615624119703045644523349351905787849839935339649760530381342196878918747171932346078994161508440712000646728062464295283731607669019340288752669135334097309938261550302845667532624721479808286302811394153888400250700027152207915079987076288666369295869521501693447388802886044355178537087500298808693671718099892527223124296728608257674721104038755016644323925234585204393294273058812087790830662199423830166925879916138914495962552062608387517645753635279062269510350255512416332775547147301333347453914330458286867695745805468220943258161126858671456253048072635800028657794954550094617445850879921353782508310287950626359025159180125492774436383739206759420616078840699698026316054918421456042485867311414650102873449494292621680651920319843341900719259842135630773750408401381262918325628869568561171759982046642214320227686157374261320038771354790269193843993275205943667061376842350781083604676377795172347512872201212814374982499165075859875988048528708512497676640424831542654887405207528962014684075963605491157600251796264342214782055824359102511477852548585778237234740321003311760850374129379395861052671923742967525678822573852329661335313304548204983210351557603596022616580405651497108250329182190316827141110383187389039113492794285800826015792718064359115482814630998553831635010389253386615913308757489296569632991737818818645205906584769329930773080104791833494899010674137731435820844350887656591114277280459666734959928385261220979696966352261855152314444229561541932645344955852905757900189006366274409096550981183177799398072342616021425081367960945256712146072736158272989281802502947423267242633206217133839960676871199590550821045160003774727007408133964772855495927374100812288255257230099716970670014183644016931697120965329074617059606373460571211322354507971002080666353501703704105177974950904291506351020552869554052831609552186962997249230003493952981235157289675520690608549453852597215132163029918480240437516126338453332169407159384391538013350977223587776899087263291152443296596024004613672281662928103816458354931863853712921812844461581399004920563262906015365519844849821934327740604686872265680253984515520369701700128116744653964770901475847433322389080616671543564688113789777633030036302953478029202724343397874085679544265549479365756576656834005168984365363375561101691593418249252762596620053248094623340347349081447616146132489062296328551096143938462172563050240208726564902139746997868716738093849054303861101229024055722807813122206634716967424824498910269608871936212578168272283016267686358990220293217747419074524839410802222590795409726874550628333430297989605682573325600735603737791476708133019301133652658070779230387282211931065307802472773063382265997019294266571407216514181332070020566378062520664076193937074102063581704231374017870780640335352701408375721642899634054715636292160686290347724211139850740689786474343652680629421611619745082259480129848045863619737716869684735051957420216128782693480039911659462510656431414314289959772798367331961611865940170854260120423682702004179123037525419420007645546299428536340124789637565819531999174347939631209591607277049379524521185439782407507427744970130560751559842267538299683236029193969313884540600565663838011297468946829206073978649558471176533622355854090256089544832243866788745728603553737694914256003606338497253101410227233219022461318310685657091501588356303063561694687741165491537102218034758078058028145414087881445614152406019074676154864740000275958204342797840792885174988972209093713220811904516424344527667514753301600434536750861977823356186755725539125102882950790967942743296785872065323708271067331459105201737683685102466206826458364404238985709637664443155314934581898453258140081864226418187179925403818826495569815802242672026393625188783896882157917772545489831058777037285950107608247104085266118829680597201162975109728437456819298501482092602191945833140174682263176588448121768692260772751665622615094039357630458272537937736766768820374004396148301301887475381513096236470172908928906130148275107998532045591840143535773774635099172647455042771401703792757063303366479786276496598500877593806476791131878584518739624596808937554291177760903297801513275703230963448025618612674534014094989617897346373043752841940651931726134805507928951355850725160088940373296889871394168388737268132765524741758309665192466448276553697709012841236781775339609966634496027637723475407043065457119456506969163377755924156038348996350502658940221134563775092850763340263603435602356664411572820769073161346445994487116549084709258734269708698752983938627053934249282008812407702450244982567011262206691537102961049068189567694952652798020713909882577449691525298470675477674569751938947628647544882308090979485798757903096682573523025095011286339365063943214547821607299983334307295003143220266084582115770662771735696083936623761986700219327833675799523250024009550270213261235117821742617015132291633347625361143302096317261845377041106558839878626439650677267085654471822929914227528334805183226440122907112994753973574735512927094644930769854575585048103803501444260348833387463486366758276915463901516022808147900879175797842955556291471712939550306350437096376605147917320513189985060111298475713092546939720182556192568813481284634323132279297446411980333067646632827249459583392639229926663878749483487265059673485271023756553437158957595922226128212812850677173359361379227964707274307179412509706843727674322437606237633497418814808810996657724120798526878368476309791613670199468014612463047126804296301473428470998150716811485800995164771072806666104849782797906952874003635638211396495235119393594796061502745198875626846550264476154293685397750546792001260351384603240017361625224406413611201751705573978569964496800315035190676010373883064308074682363056531749066634445253664791876051678223447811602226937691531485103248395995251445903614916386025399059296543035653675614266480012588859630716496629853577247570255083718957017102925574751139058437386182775500988553391110826342259008612681722330367817838494429179390505001111110900359068046373753051502801920172706405031576522813581210632479749834239318433534847761294321171185898731174238097071058635280856532984388760009560306663250810539591264834907831329933218807149660767040518971684482896889554748730995137113012355943834009557225175730871552320103832065095955707763324557610796909766258881320762784881795531164269578395467238456514656004096034003726379294683746056019471938336024354485771615013772250242037008445812422929187490207814251023924919229098948833150810686637519504088816895633858849496615929104296803570335199931149544174919142374584757939612818551728112711941441854582327880512519395476849951997912437349890157581643747234206103642123480179569761687714581502243573625520623780143794144148362677757214287715560131936084304497148090245377462326922290906428620010571881986341012459560617396434092732387432709775099583305780167757483635951779886415219483818202295824821542158258793009865586523393799841334244034822652080972192017052385175479147814000089012438479108820791303359805492332325543074571708905892473550829040478435942194756810480050496345648245749818468915536190391650292228834521070997073491462315278262278621676587239401977805901198906720027994585235249826195011230088974613527933339447315404396633862731799990921764149016882038905763809382969963706733804497189904267173832539535399672297932448327147017382678843358875122188931724549221893723066433025532831012336702420650139171824813618799416589135234108757398351079664714356305005306289103748725107905183100674366090964798501692918982460977889177809434147401918584104652772958833540152686194635235845547510706236657395160760490109243995881886967929406819666597928579998948654889481730129780181678481395764107122756650931225372850862650965187729285222160781398332313128613828155501038097590988950325622164268762017310517212019384550173758411163293738442862196815707186428518487467048841244238746678034792237515152776754212183120263599637463273833766895229481953674341711542985537442522066856733347315492068309254072772382466006308786513319461049230799950084974465459091448856393870416501619629846675871038240183305367493778206499971048823315763894560270678542532897270746432074462627369328173564388989498036891281585958494998176103718526160853313688094122688383332336905891697169934016995540950662694758052299867760404011820105640698578119101334688112129055972090964867296060668001261008876877654810822860582424788817973255306701836900584161411367313075932812019777340079835440343396146849496690933672401928727980302768097612824380785504310166121848319557296238152304974208762764113895035309235663651632052913904195821153713176488936602970346895668286743215177495152572264629811551963792140722489722637689175357686711408078589525621947547681337596800931648663178327941240777314229278333235574740786721123357431399459605439420610729664176074768421178103945487704200033398048123818445537194471701794108485549036011670899322270684030951730611234317908361051600758537512165635090541876736362191271162989141392412769102900103995806238062594743041059603443082813687715686965061729189615600633759952524525437954298198177501769923345744768771072193800650025501806723288775651352208275347607244221022727826951445348554177900555706690536223432619942617741759161044584700666294867953687363266596713465269932545302918771433658809463293955662979897617264154635029588436049653215367837486537797510820923030300546643251759234154706100385717520028613075217775502248800443697592475532684648361350309634417434644876831848398228684752501816693282369975563635045576909859341723019955069617252845938988717568777150682345143258521324879433988246333238577016547972952682466862806541921085963109631789088466389234168072373226645873631965879288419460099200977728195910458766293212041225845121312444874159715089822317758298291832250893980576342145550816250004517644447602917896700523041355314553312267219698243826037374712829696649565472856169915323294537292876204964844301080176488663863934105028379887558112609473329666993875865867489923398705228378871391558561502887827019074921621429548385523103647045943309302255945268378654940086770374621287144710408916188791879590771126279794954520659415284348445557104920685369478064871139348343178199530530161411878968811387227282038482005026515672672449765219733524241636856075817668483195027854795439941308738917148514730684150017545305999593190199201419741144337839836107449182123355236051828397209210979353559582588706468906717959102077814896326507044248278571552900040874315910785686102252745087177472567007591950899045785155507843365327878647944576425513061515279971535978269717695476813087390884182116638939421224313749764907008549650235465750886181240870939877478558167039533846167571022872339237649708971884394268673672985210067526785094542639060032794724710926499124397511750444372675159079144371461398098071614921922486709878820742509743877778864049035091728119318218311077627295531677144619417628557004508898445323089574162963204057143332512022429651973589901067138515106330192044918028104432517339297437103111368103688745826700960346426855870882387354038588115203604497180385223495193749588083072849200083801910797112591879623528612953228437927141274338753037968970200032255105609270849955300905392480170148646912003568055348537078049238961134908257795588621992379480248500410424379664396755081861228473464239528287531252762956435095365331729105529356423667660685445372467669855298495334726375429930533176193870255175885585764067521950414579488378503995963831081222328436699008630710496308932638102972365630531457696429440205370358704541348131670962402989741803386929035159783283478728198838644043510467268185019833980026600211484613342876161998190102454913068087054658914828499854021072049286289921707479631996423800120641221109257496071407134775996595071880845648996303264925908872497907782800713504820860306858201135442869012010183729386241633278499593502577331510073644728647039374884086885633912014497352743050298692220732397555840888045618369764663890042455837233092583512600304425352436405468959795153879301792128617765559280129507429414374853066837201589520536596800431403851374776732066080842294861518738220160748046246808130892824848773349851371421037511013768791820286933281595183083103150964609454368103444570017587022931895068570127461615658782145953277532870227719725393393350128980186562765424100021925805252729428265545480056851739101655073872195892703724830727094176686274618750687780506909158154444705630423225307263501271119243904984386974293073852707721669730993623675857188369091295941908696880615078387231903363180416973290838801475764293054964386091305508205199074800965620249599255604794716478358828460029828125932780351519842319004021261583856919779213079917326401571324808559184981681682505251468721065788226830542531910084030549483889216863117464064416381210028300851883700708838882077120121962398324344514052990844641587129847867184832399639259033933119009675939537140415994828565620591813184567689737749587073643390184482622584431779323844924467377152986812271063359451324180951362806669155567326296820485480308826414553505674374804430697315868474790302473989694421774119242750405790254476308206133322796017628038166368109497831961832823796403426530731266213517076131835499748581294638963032353486323900687044961754798950200655065175353271369344523556799082616974214508016279192349786340019645570006947551924674706985969644217205323377546247211507983590751896155913482774305803467201354931410063613047343035071428926967547808846973407735042483675875429359325586650365456039730921112735609326716572538637011256756326577820579022602461762392121108558193923232886911266967004577351486443496055834358799122800533422669262996866847972894016050372759255146682563727522150866358901150297927959719363274772438841577436788885604364409659434240026035768308574586859257398334777442793660390055273789877679459712600318701374926819210545491011094771051902855160129907547171610831565016584221360871583189930718954685744426302291295961989112413741382174326801689878239740388416574444433981084413266982603700486825118292735432734662546101197232862726312361935239040150767494432325342998787384299634780048677029018493825520916274535151224316812696710780281590600811533728913189529343054668196539247538829290550106500432813466659963985555016724166806054235331129286066487609450998947999968664727146422040522522604545802784731803085566830893183824887617036404257621960067802301919444135749829468112516978083293906624522473529109968192212987822544199794631056692554100479511906202790204073169405094384627556140360719735262108175888662298399718463919529478684962046603217539355645048756724875657417503066995499883196900989923662099016075537498030493421465039601896002365717820156432222074766075621340890877792847819081162741449476918733272669198293895766041434450568227846786885394861862600095198290431842821236943331671030416264671063240687647214303759289367371200578680948080076037465851445030560769435804787874332936713020440505380575019102445383024531983377498933697422480723919223066984295214442424416552105556914947333234624277977751413168155800200143616693276774680606732284626517701075661285270548534347035862563993311985338386271308510354375880064574428268468440108733927396461095436031300508337092295084924323053035406378375923682094281142157252057733504492199351878506430024029282490741512702447197201144690234148452944563797175090921703312124306735388380696709822801142363390302556436142393955348571591460461094186490984713343404372234920048377149750812160531817701006837534205044161521834750382922342289087665621199077106789113057734002752092925535660986630704280358389914596042952039682712887619101234264956222795707557335053650132489175114199089703997826821522328733175689038050348061566741684768380704571422136110166479254156808552416367876921464194887384955960832949119260626478811378020018020086936801383799786205109281625022297944169465181238018392152403568438196046054458781129351216173465604644678960225942445270704953642459661128001859173317321995884283408634679218063944794709357748555469614857733291530550007453598834357380478038565502605330555546793955888079166848559064041397672122199987991964102857588114491231989317260979566999625791403122175732028196262516512182629131692490228840043150736172048293115741178326539389111190983248508999596000956741748841765651595973337014952437582145897061001066929967654225577934055241480286389044895195570468698039370511840710703643809021290852996108045133526237170442253668152695259783091075112071087471247073289533297700644736709070790490401093198516546421415773588596904623795304303240531526491732489757800008463440709591970310360256624914951139804180876900694612773156835818701412735695449546844107935308140030868075443933363157309141981691419170587888180418351171549017002649081885293668408152783324151045367228264461177676802515514686842516368931871000221554672138147277303852580634434167571439797188950185943852768512685470135385394189079338693529163485477102006942609581182799811181466347559781616976494775008486205740624898826033034196702445967856911922811355158731321144894783666269824727524053049472454859872882780050638575473593356217691783019882988769731931688079714216777090093340892533968952166477538099005656425770409321271079518860002042162290956940707973926723499912564325806131552484365484050263601750197405257867775455213785324765215142381858098666916024407718586057008682390502023815692067470013942174539261551607621890049478893312264936291337705572629404014421495828657912272536395209792855040756559353606173019655015969745958445109405387833432593380998194017217881496258791777502578395431440595775092226698088101462400150797536426219465796469161116206672923967401253340134208791371021280387936363185400671685280511199128116183146037590245503572018923502618891391865798898206663859964883161587006404832868041786377940213730111271076180649450154519117989535994563151667516644687840041404895234374239879526763299753034084107175764962946777165536922200259451741078962662824003535748733733691965946619715541015979705871667876985821834840444209775855933504528653996423323618674641292233421736750974776822899098711088979036980625164959877847075728994663040458680013153176411825058972109187094252122165794258772455102601484603332332557759050751392861265599563289884586384445971680002702471747971140018530908273021183522479889110039637634986652005364207996502871052745614944948842756690461749434940452036967610953346539172327644774357621134446986791034584497036953769645402069544218065468145079255170193200309064792483008192472568461430311109951132469040294390113628094394110713209998927570063946127812874604853750405684813300197200177578118985470520703509870956097567171355805345161093898310286356324176847255901984947797556858132130630421962296718129719597688559165690770577497749555015396594596406549949549642943535869844976931064473788923351748217990902848991710535336385867854815067052580566312753735586100678629899025822523205827944518587601583490805992908378141888695180115077340124799213688777140185734644410780234795858858438878426772606558696676106834632743007590878371126806160191383392760961323377628497803584134404635677214913296368118518551018695536190012601451256170904655747017773717202398287142734416779989131282068089769714676279444763459886762639774801310796777110901183914279994314301517624016525631380720673838872615198086517994526545710007065671904901520562803751364937111281182852787233982559789084875752241767849184118747078961162428158833108008090818292607918981625748725126918793139196267513419939987255776045355923183891083810495993405908268691256900777587391106759330415111182080356387069020234849494999713110914883071581534306857605899363849488148002928921058880266951416325166607405431633245558228942894836717906956727037969575185506072810417321782747479733113994939628208497878795253052670837993753800590075680707211911818105238868613028651925628820622886566412137519797100347537219874483778134211233104013178695168263386725987960929498030191013120640534526259603751797217235878322890267857393462126262883973873996662207057599638937064719070214299349813631168131468289396700356119767169559337692152559020261983835550106671074033700197592832691213241378661318547802524939526404792658603924955454205255703841158663378151607625456667331847940466476119749392932956632830363734740679202430615057778157804341822946686841460685552923535970092778277279840546980115614525399002421883957598707669438215673064585479668884615171337484520410328388582542418557385229038752818199462769979992096497111167710228705176929995735007275346907339059366616832245158413783363059303872105482001147851209312683626977819691811014951769742622172467400949831442338872934104806262474709075201221089543956373871633777596036071354585742259678018431518305096251428413533130882605296396545392492952114263292750952381109335246202554107776827970988765719107915321508582172004001428329217246951338449538666408406431867038525187371872086777897351811276227561289340275662339782236968126383285085887199323369066825208595735928975835687891537556566569493287946859571930731556995609953865933793053393531303678741536751267013824345423866872245855302697636669327258299967764148494009183685831387328281897475615729693227650122192578758449737565057784157763747765448366778807111457598056312964671407875782624882639037547819315884204125573487952213009026386074728570114739024154298069754084792235553762473230767123650949833349822232249707442998188657496859457437932085648378227263458111533859996624943655004132755247588931083530631168044931278683688729557013191664976812585373079679350894229220466591267813915008587268929150328731380973477243792623395112169081061274717299620785930784168013320684827640588705049263003577939820059746663632431100456147283082901722630657993186249978361270414545654940400755278838505088187671822535018469685420529180638647391070659795683914803395211941269197129758771812510873113302402571378348829716585742613430436427923305508965205958288126083150135602169502854843368889729561483068941149134544683845049083184377320866149245848405685306519497927349364074394627195199741019951832540006667967297660150966891151174787067426054249917579973787896230436020557277610778052491232336638221211555520106486896736014268585724675246821320832023844531527339816786042442186444286338703385886335951367360119920913393860873497027094698231330105105435029289655359072409772333422329812138311231384973619111634369356827307864041155839760484277011512848347044216447359691405360624429029174989981524975593891242098972028973713380144127401542904066797011042264472093342763499065946229392809385068985276621888061756177874696757614198798609429081657634052263028478234204451621754137273128871844714041788240452585682920179879932913300318400439756105679421368109442380533462174809311391829585896142860239503624777473951744668395482445587065449481368441487079575077783998071959007843969842388840053927296473384197532399627828901374892668131979957300935855531157557146481486080782866306657743885220015618426476921793507443381351175498044442092498152232394839874129120694609269828561353895511929909742437898678905674712083783523320006873279089776398029991786167482646718553588379777108277266864411498180747470708666612152815333143449254756947061628540524498474965691426738632088121492792017665263300839253991563131603227049295776497571575330557833682263303573938197332068445252386227308352816206638688501166364133093513339210357223901265480857711912415568456536748818147389473703118593701262000554571888164262014131903038940155872034388247842986547364369039964863873333895809808572695254113227337293244916049042490306534495524492566280038000447522534179708885088713056828653347746133394165827328732545643791093868532078152422460895372293514500255638886848404961087034237005493217108417519861499829850268564863606425849171072462888631798294804699009455817160727885431218835275810907959368090395709520217555246913901563260874616187663791787930613738178944198727130692363259729691970013404285972556072721699171025086871655632109784161676246549131629217771618934659227407449701378996390314227258562087230053658848136355489320239135854687295586915649564261768406981772288761281337308938001319262238816249919210122297803558941021154983113437372406233792419865857627553631372856463236068434322566798887745131254486761970505173138506160730286846286607490782090566897592258920301255044309680691470343958570244179348387928884904639795837968435502477304444022222990198995812950636356259882929091035586736476536653639231788806831244471811459784565560896742935902703324959553872258232997071291583797960010935336481511872413416206402433328420913987372241854553250333555041571901625589302936455274599394757886318287822288548132204044991559812766669717195265493388746877263132699619582549798092443813687847324854383997156968967590036264844718846440964499764509500617606347368525690362908988445339979038293572087971868101515847991310162871091206868079892178769330978619545879291246020312846386260842215761120394495665546040671364104085617739095052474522261589237541811533795395168985113420124903530205366411960485521037712491884958288258691553638823020364709912454829295439047314726799472931005197933172443578899327302840972317017157065106851096995692732308512740051793754464346452639239941181752277691371719561017800313798474900406490190978204795661632453847235253138197100407844883271801266907063846412269234800565093538698275071422495147230986062020130538840680767146721475103820547602152605735867893560806981148122044217752932440143799158287851103321115347332539720841110808707968526721085714998499206286752888998111041126182778606384097999852378414963119074326671137700373642522894699692085409507401570212530197076237937711215883437497498241933927640268741684839735060971186208385355793615404548486273430236451898495496468956308090148653379301869165799135662515634446869544954451765962421485908654577384525691648393302836085661733782914982201899902690785514122783386436200794050332736025029136100085343615146184903529312737148527300664871919117321730176695333890838221396895023530781901550876038036337112839946801765414272710066323007141911555621190694560510541480485613337549922484258727737774659647786611737186197283003068018941837128603066090406646900573500365866521485879645601125453160723098401266305257490328967678119445323710394036549045585011526374623870305177415264076040535797638876497086959591474479713122821005034020210583451467233734937016843294614845625702927609695771681036305900997660440805211945845385197938372600584344318925110752064349258300487030134679255335655756193310851976957889270300462664691960798905982355708196553988468654637970754239589635776007781702494793942988516949006970280712039060631851798123084768440018858054175222344097338469241584666090285960606119560784624154434217870719912814424862121126165648164583412582518075326374470522978980227252618755344886287403379798257011976998295966398936644101690972026113120545652185682331730943944369758864441042362243965649153094285883280784809491033794070791261168623276554478040312271380192689149336221425081114066406998107361400362028262653397897905301733705594108851937744763534892322237915560126795197224706472182695690011202476781931981158751675301954275350380241703070483952094929272803662057103764098254626811309745667577765265685173792416910486052203076335140299745807390125398532708345039896929433221984050368942171614701229032662659164896980102374746102287017337407052406689238325438492894289364021262580349678369681056049312578686575855681532037647947277997342703762437726358638887723730282570206055694489147517670160459203029475972381802571559102419021909049932477364796681231167729194733041439145312716017955994868898357160219442378264278687414931276390672861553115294801476478905685681381867933779677432352108759059569079336725518665621145937946205874743884624534909403973387109644684968799478324891274089063270278242054148913622041813952537933182217252732064131710752377979138909972432745056793971895608147940312764188523360579116683054316628824723551295446978682380972452816869260800860118787207722168209482433547113952055662138868175216409697474863537799994198271557205435238048926787609543739576372568870142255382337446588578766570641117832221853316643826576874616133720831296832463296037649976917390592089634320266099302779089823980158309970622688605619690097897793079958226675973102908495454136000084149183837730873552650716744446513888572632010547572076440401500234378985415645678989425137283592488279323523813386018891459392069765567054249153108950439361999774687560838646588107989616464448773708610285415790998060304096195828622959064583860363078250889328050820007967538872289419112471056534992855157977498382503027999792698460353971662277390076011761849284692534596776371155576009739143237611882147343635125657623773026376466902165486018275188467644123650340635782812105940178062571018666430192797004777283949078309657488270974127298626596519397371292753065933052321972641226715265568803797097732435430932075888795110051276527854922561904694602689786408242807280638695548331643867476687631431693731348062058647901845196767506259687352844601118513269377792260578546916231832192952874352201457985110048725274162090437956319775123670074594481424870379281977743802371619512775948373498645502802558237646823096460739344407751345737868946507118792453491595685564459694680503248703935089309984727600031450206894094667701421084500989794929426298937571534241319170798207369677121693088002563142795974225248319757898127319157117122688387338247225886064624188492442915734645849290067837380055950081105982678096024347862747085664044421409800021760948854043001560359749372745385320394587913485308507580794123194571821292959462348180329401112636822629286683906402937332258789981939949951141785508265380714632090586533757824028832512603692390759741089840306902134687432137245810211496063499990386854021285400584833737000474021891655607478901021934925576911670449441675165220799613123718241450254883906042672857247101363592466610465395934690860835840128420853969307651322945009192121712661558706007856864269126365438469778994220694115834449451588700484056079598823763831233007163032593617931581478770021680535409471241705845279961507194293856866338897865487739386770881886556135351393861342781327105480551075775310526229098276494190713462718074029857611517074479745764362144478886503878161719978729184188147172619999823343303139962629665490226437157044603774671923155360687120566566408837649865196502650385117976661170892069462067706166360464763014522285463979288658068926338031449618122893779977996326853214739109515854824173947488172184562729018524928689733248848203871059874694680371935048011027836460284935253169612969784322280241143234087473926491773400232776667650294095393533366435770851527034562057444342299869872991799456297641806663497704079803738345095787604947148495638957185135130961091802227778568444159858713144558034150100934793403419368730805013896669941789929818887689023252991259614833358994915994953140821325498327348772462082317624804423360476796709455149444029874674687218808423024483130060313578338859125657501251009150266924967453447329209371161515463060630148041489194977126405613655235492824842278770243700190276498495812365241596515920225743205270516371159882328567982682819886386482357810766846720095269736045084916479795525184058275552944193734639442913515669446700730701864930665996129242422851240094215669170349845266340065740373224649953922308105293115497783352739679030985292277873681057533215202538106341259387714321876944978084314093100699550545337450568473538563258043734125437358072017508287674401793769405166247210343217416391694119495201978129456622775491464712792060424290957373989551104502039287414044156765697835509015624005237793538268394959216664720010119586039974180822784934182813104155181080554526497066800312940873721129637101027395777865469525767408103858033593220887052471943467092592710448527604604350034987830262368282023534544226669420638424019932274007446741209847877990690085148317169380453995247333223405296509788060881947699163410170406452951793287691438916696054446922549854484555665668408900299853398921943048563778065300261402641836956743666882430796245153305815279231764614244795822202331051751396914265662135425876295806935602201360771857747796099468831581685192953561540739281120391492925845846208540846736442509645264088088642637178705004356663212245833427903473171063930035317800244672914564655010830869175396394567895702890651299632233125151572041404743214092120860443841803629519984814461275865807369399779419084923972251529009185700675666900208899030564496761653176744403782453957066377730014472499872009347672237535557017415278467375989243645789469614436932076684875458912435940798784973546837225349656124905334716973116142952507984362101176587693507389579747526316699828941500042017085168633045814705506880251919551924018432755859484746402605454931158777685205529864615500678584390435636288800976227627761585930578082148732801935890383556062988266065236695883903349414929501555717983274804591323016828677994866433877890112657671444327314693675010032226813436559774492227944997814571157696894774125551348920392761259573685646309270373478725480211528504843882245187972240929822586731019343091012758119571481277821673623738556109442004525438712413569058398344226637951466977909827147330464941801972958910470525570777932084726810801547665856871370025180144484887317042036021855077677876039446835349235720566482581211883678583522419372206959123571036571638907984322066545645762961885116225969763054438190101730896058006992350342200066187641589840090432649921242019205204583991286211025085324296465099190800292109929989643734808228350488129218621383569061773527156553159841022604080700879521660674554824293837227832330708970199451879523803840370365208057109912113514400161746563069187913095808345108079601027929589883903505628129159918124882627292655074662197406142451813049484912723406451140188262842658810038084876865488856210822818220526141560004406168744395909945039560799551975238291506296371206541592830864170287780272149538191552362089661754414343240007503667596106531257816981829016157477037502274064364023542461566142018192418427421953799584724569234377138412481543853468337091994274391951631602583865983343657199070342886170359554181339781281108867172054081987607923706293663735451964425521441634735234843030225711526004488475904414207856824158665493802207065194954495342766772461636249260616442958244974260418846602585844354671757713159001525631736850267128625297554855663705491347954088320220533218548403494104751681833195746202728881287293073848486615403393905143135141375100394932724920901108886406032533008473497099452950558676564737087377541874272588757726056071650387602094765619016114666545471289022164506610561894956515690003761964020577823597020853877547029353351406979568794041111610174387946153459714766643869847752980596274204970438087023442761110429158101701416616339816250774669537227736777595328263915573074321564540132688727097477897689307663258611727131433905336569043400245001295723014246969003082920499728061778805014551835179148527584947565497745072823047422045665918416608239904750812501357779272272947369701484039259412972700136343709837784848482129461605453588456343609999556411441072950436032199730751092485352795635220780288362582097484489366118986567339046541948958533497328481503898224453128635060352263229889382104312072123532794936672381010119641810415818123337294903757337911016314857517063655114991565337747800657391238789043853696769761504799186617121245226376683109979307615636125722876634663302277781012484977377644979821398357431279145461862634324378507582965034630811195039549242344631454281949992329198616763586013412850681150372006888348419610478276601580736705642772666462281964180008509114002150896910455565270096496227679955806344086770966940822603530237599208450367040778485121079565224325369039750149403145689392403578144550869141062789717910812040033148915282564583742247009600586282100171373841814059468027223789249660937433592451127969993576045554469034386224909546164533864330384431889261103539461068393279854048389291283312892447025166448382881866475141950219627011055525618785914394614827443029629882387991469732441388544275024534706243617034629915888699316902503335199222580284017780812513161915841205814987868387869007533340827329244283963704170818488754464824776579247591286699400029808908249017865900446204188006239319853862953321576577915556049958175558717012510844355528542657731992808803624979682351332779659348254502524710683072045353564195487015453948335943999206686511394982538411251865510538737720119651581217203861694597980204933272636369043835951833985270853019612128004778363948557869295310817314874017000500761087207661150869142980668012145877206499700934385986110838532179802272233482494813742445837674062826579065231419979967350861843575372552178626520196912927418291974895284680944759636124539175534145177394264172343663113504278478846633752335807516392552172297646098507735897018477498932922742273615699052012543432221330001273279502342670023787490975154505396227881553721870554248497047425321062787599703834316085136060835775504888604858400776370260457579527264655629778121334604301318364516771459453681493729892645624235000025040321441062408195137188833595178285237653596444357947519442058034772833571103132158385089877079527822697728697431341932603586224045114638948296275070696330374656038711745146197897918642377048852856060453194912546940791615195004861707284950227733476764563345213553278157141061432779042135984432422365544283429814979189952925402871310628270314024789143543911172275569904702410924274191331466309060037714921356932018548620654729386243281591700913870702247268181086667950644185951887249936552598383416461454143545370021087339468756126733320181488882502504245637213463956875594691341511973966314130013945952903948616069281138499300592104445209647010549389046025079564264931672944091519762183413057985787263967341075499822750897055967598184998663430727582215413125948027998327271484424283410722670310873438700702812295222989373651615726595870794477487599934610270754207188086515297150859551566934383169158651757193405493803050453949324352405020238963470627191492179077339539174031238464561977774505543752271190273334840986468596426495409741948046043540388688075793958966520081374645995124418457622037232248127527171597195999391363904426438181246689647118494231727232308035920564140758100578789003448555691219660895896558793647536537258324069809670720539365965316084087250877461755724844076867723810475127080994974142251291622925790932663590430910141033068836972397205998220225563761449101506017716573914348536502097390126030386838533271996779427602730323097698485621386771672113159909341851351877462412537604433382318104468638219093409664650521069750141529549299360948430789600645228899817793842698536144030653763741089142277906773183931658557634086595017509619244734193101516196119401368335994417549685826585215146346573205246756766553012885123806270849258862839301837657959283538273689201970591453735151140978763989841838137534083761113688562397794826489070133931534763517115637385257309725374597687727132310126762579444906864269049157644487053219824975551891252543506143170836395308796615744733462607936783591106249551994842517601793188374565945209144375134103612209176237960178905651730057031401626589599747101726663481762129512005862036260958320415925868627666858141496068346586798863754215757039103242021464314644674557976643863146564399858410527010699879242073374805129915216771671831090231946371982615813093393643279427919149551658000453147658191719190214281154065449199095350696690247440635723997707989586765902383925873562276760911179531421652307389559652527067429159508300580522974129591821692074763120569973341150449567004751059833450493468824799077459089751715808799321039332897948882187439508746129995225710750811719108682516515996841759996727987558171157656621201620571298349504722701916616178191176418765540388651137221785564681213201252573679618719218375718330673753516926333432245907157585947783763203388923604553205910412392841180637060595635151815253601501830189136358622151684948175976651364545756835600143183930473204329337168235915381343024432118974250637737666393153845830379693503900084869459359238800008306834362555517655328771734942594054932886136283174190828249960454731039029493483423475476831127124863349078192829774612819937345984161725534231751334908417990959612337205976203383426542751515689674499713295027582389610716175431822627644368116776057203137906059721886775545645817505955047280009247009267813475456768470407224152623052066567588178356880752251143774532678314417308691912720866989122662160804334240645280780316694677759799379172107840252149007164720046733623328439545327225809459616975627681870356174709726193416811860499306553666605301572027864220207727751078398082145852845359546483023939969960564958759112747051452915531591990061346831898740449242341937449821015287303276546394073060219319828386209493573170415066005400007825854644762718503686099301014523640212751477503297538992260697154522155289765016667770831006416758165675287749598650736382906551802890954366749238346660962506377208867402664889733975826085005741503864165326586325802835212598207831144082282524377940980480161268345317866303804086963966730128186117545821707884748963309852082262901386702443916731664524893372853861067329036000379321410726836549318119209118803789356697516129762994449231935511283297955000468162846007204262493913413119258209161792930446158777086437632248952937890473591278524606302118866975030992482791653376835138056057681409473940419305491079804880503943410879189465876680341832973742113235289477288397764649486975590287635033212465583372884590300228149990039638056952183982352324782161696465936260590861885731714110812100293688276228426229485763023584888790436703616281740756565305948957842406536075054515067656096275497469340837273544907612606133851994875010705785519323145713692649292366729270094852665001319608085366436027713087163580106778096637946931146040446421596585100898663274053820035837955569799096656281049226069630503536426049082090404248974830970005967665774678499524835939776246632335703795598081212788675220379849204672626857082347104789531935930277342477282588007180893053039107472978723153977493893757475401086941761050304751963289512700656628303301059983560652087884433425963640189497764172588365840689924301215743668417160326907912158561024775690856935674953283241717221850385392860452072010473086870528649147047035817193501254392128517958274747166914784341565441782581928409845697697145903488710898650081016647873766061205059769984318864857283804723180641692253075846951643159818340926960530859082947899933989967176533592780180023843890314791877602514666639759631085430271223653532183985870769464887343897597084973447552311588108304673786834031670183500428769568659091178893786538818750055488220435004145111384353305407788754369573751937235955204415907369111251145710182836362130668831989145515557764636844200108303006751921282340220219993796535090754524979257494086637121883452415355122163524037205140744161358642195982263683497673883636300946285689775800294898243525329664720207349201495201086706798421645863661275648626844555380638691643551851088060818701496073950818093005855099152136635159246174755717910472472879264157177979291649233833335489468376795505857553720343684681891158694393477591242005797637435086717936306715787248285951328670900801859072632661313801539844210127453076254257659559124821980488025341305300514252252834956355489098829086750582919007464255060508461554292871825555428775930909336070387781454589198092585958550581468092029064928468351263171538379847308573304527599958449119242549868030859465889999092496569037618174801312194527871728214083640568783737537895733953383979927376591172151280623344917181205190655314075281240074087719501336901221843090407709471768804647352765730661257150458612448062267081484840544550211622838012693879115233875362876793376622106495875460631737083563361241071297521221367799078570685327104275073429871450772020587949191402344308333014156305915562949143465956092814628152209226010636577934494211002884536988600850974973884877204447533526194715500112110106442066117425513517231238227316998432609909890962970723837154363553186159662001112084144321567451820374716448182870461316489885704856636141617953189382521475816642524543299338286659126472889394897141625586114503883604780917320429547618766353927021512277596359926417191098758025107975816237395161431129697236178886361275921696851794065799715294906353079914422502068621974731813535898057010750239777892989340755510447459516598345488135548799286392570581079254785669932713073041242326254716886139124787403425731783004887503863830755317176095928547933057023097864907076155212707186787529884354279757057474681787409902580215137902583405625778353362972619891146341061226804160240594523029872006187232999637132301737319035168963501897973650972265507720576194978047145672751650241844394766758800049784996945317904238734984739925927465302618119355848589207642445296957517592636460626058253388767356161888970293468612129879151937607007327888895119033892871106538130585536723350648513995199129200891883950614486174527901234743842493419727494383445709604135632401965322255104905976682954660493843149679857818948419868184181448547305899034480234940383843226329464304123210587125481621412074291635897343171346535594421034160709465189833287704814384831232021522338058911490556585567558165748206337506159715267490952535625841064414580188650651986317786860788609078644246720339726813691814250556712779471043748330900618369653351321829591825733242871372498591694419215196990894125933405238890463433287934939278492763671224560297203466839775232990494372165724487708200635399121576095523563740177069024088692368705480957936471477065786659010111865580704467238992537699509132325382177266858220269394689989058545789129160263718491997390075212293352896716191721815627070009023611359798845122501005760405497272041227467369212209524684266216791097920065312942279889322296349194898035050994775933503107542469638081421159818430269099393696743117057734044829979732850229603834484815643691162661240969997980269769454607093751449413326280006367296369130825754725463292625961072258035377314706401315593417971814338593207686607100944419906621207124786606080248031523578142940298246052992617964870149701969113828228344951738093823821960377227448515342558939161764661309959917466941499226328359599529844196645936361530023040848170045818061653095816198443562908705236587062503277379027532310326875332213834173102561860803764977024711720410161158119274390062601058301047303879833803771738384983654463482489371815960215040622123049772431465502539553798775208202633169953486722392165464625754473957000078325625194965862394204165855051485591598760793600057770378155113211392438277088483622813512407170454491501849328216726605030837920360940024078923798549525582465177465379915077318325777427030664490805114259948091901062447428970748941492422100456148570393151801727151877132941364927722230579603861774223622860774691055288699496970306598944482655988565352342969001519100104220677017817207674297170128435163626891479241361697331102842355366766900438792678954664589063829513714466799647546959867813422083807336293795815692538247946876025329307528914285619211800089535769199075735919394699110920035599076256609347349393672403426971459748875567081659970535229042589019870628685447593033943597966245837981963013871106791974125613250820309034860442115269984253662814138291525467589713596866039348662272406079129280427598695564050532078514018123353883456223339709488728138746335583176400888298660702642064175514004453644132351553887217986598591098768726730589498919044777199970687169696852658172822299857314839957045528570359997481345347560221635790636530256681025913756144611512271380179966926431016221106073386766020397970261872334317070414857906535521074155256563003076429352220819104801216794166338215145529820799186681259954076014829016113431731423692965364919563448347098702446031318627894057459562494860244375919636193732953569607789802962382013562736007520486494605329134579303417391143029479886671623449946939961726050088849455691213374910555071056405168962327141128139498978775676234532791037413114963572664456626199804283646711430701042581727411684949216597454866568163547973940101134688022792040722609839341169799238367920923001977320149201037175363669879714363548185608486241064832285062093229357670068725490989491910593470257080513535516570196476662512508216907172467507705065803385602315618747110080389730845780976626989041455061030289357113250993453066516003987473314871971889173369241708004774494561074010086818423919983840753825019850195755693865462233692608483393686590337987040113970102259634518382569016748280286847623954159932778252844959418362279017272350083507868910251088909923344805401925540951905479391842535236386650459166461629552984694855327896697102396058364599431782681970279393127796868355882320838779147908916555755123344238069640142672613768189439186720705580815943521461310978616470146398099486169741892909643933500576412569889571587947783049527949981241553271371805700986066588375067747382959650672667995859020029014902923811752360336611365893638342761697887867951013533753970620941430285937844145987239714494759184025549769605797366765124169692523243934864794366249494833228120878804374414185397834904066947903574932976495387335663798238371045189566130219482707889600769941993539663895881723855747518836692160353609569984616474800447631841528895431095885621449301908480689545493933455585040705230280869046020808296099722747362598222399614552293325675787458970425878625689502854578386221364117978397683259968204298338523785328575806834871817158247448602045520811771804148438227642655034656996049979394760584689688899086227462933548270094159131214617051432498727716285585233495681467653879159357684026635510085611356542676488872624996174255764911580927641625107399044482840716087400145021653586098845509380998206614227933357328495243103144479122907143915058880670687310068539374545543082680562223948734545275914487428243334469915386136291151526741123116090309510475909852965192590418876988909026454310197129411996599735172588640340801497650629936078584667586563947419950287800155623259329427874175690794978806249888304806133112498400642873174846115658580143247071402867872375026752487898415080277707886167400900429534610944890048922333350508190582312670966193631217379001687206358293557594551355686121459030567442472294313916475429448489083228057683739869031419904449048503165266288773324553905496899128600352821208204049747794744673703077146982130926992366992103779311114608106626896894614464605282701163022890313923932446252045537402035101343581241243514754361549773717276295607037212353317340347934471006483130979134270511815539899210417902547431848218519131042220629711612494788072095755191140532346492561204224617572622009700869591781176555575498902816910975438641600295794808972174264443489661905466095422340786749247900787502894420708441991635881470819183343085484679228823977879701397095958435160602247426796479904538055850978758983353453686629349533490527283744315819639037146140923947526421584473984394672432786506072280776594253763180972553463576023469636398700955931553293041218533598693023323444365876879118337706406900837329500572299881720347600522830376326231008746344568576611040051098866959670381491910262162156902448442489307834941704433999302225108054045199858511236998632384473645462686582407194504662824837727508205687282614943298630650751334737657387692080480856192874610899349353511415193198325883807560498349760045863516565301358105522139822657792420008446061141600302858022750634754323578792269755574354795870120193973912786125337277947832837941775403062756905865869201374784272349495828540136173059574313221591071144272871491534634867263506932570630873745945787719131365171062331080283152442167415423864945924300625126635927967649629700538619823367083050786227429750549600801276312346225085558172420467793023620178686184765062493451564474485538484038650640292954477882499506934734329857938127337345462266462739430328228332972637559518636705463342319882195303811442353744361743634945583794977817214523394017826465818132787186924426093385061619747450618599409759449340270877469212589863845482592370658450004711439676403908963607015115235589088097025948342907419662968266318608684778097311229923884885500499447837255294484353830135987593948679983271780301863282600312208383330793475409153249983905018401385215458203395731043488744657123821790624647800002431842624602651096042934554608388176729242244889022914662639066031677451672984479833315758210681488207087805424590531762557216370431600966219334451519831967990814081508358380926862533405311614263187768123639289996274981258214469774858260756106795500379131722493589611072739799865805307843201722854878689720338182543684592650169548501599621150989348235596216879023292727826297680603377251830113929208427284892326540210911437616572860231983599993316976398843335299512475532151941905071325651497866500946215478103865590476161649061191945561320637114856335144555784191459673547426655099690709839236456806535638570699178369848588882694315776871477949072000619541018886414275650143491731151531096819614614818787039299060102886049408777176322707690885634557433964461916741332706040412050324891057265862142025700532524618007706245460945285887486400702010338057868264023940638491789057447366576734127541538147844567678298663384896974302500087684373169980685602293372866235434175961679268628584714240502205429384978832093708073409447362908133164489548171092769062247203608851001125770103524550117330669111015162345211604650731514317452977184708778991666869151723044061010237329227184362764453880867398345799243108599589364792410814662002067434876132882743962198553499554338581031375361098209032909276363904102926588742077802644855657106593693534567604074176794439827468858155854048331794904353546823632012346785906311389150466192793781113498219568111592069303207572485481955448171390550400357162061338912700244239933541231018288377500128056376520663250170653152386633617064989256604297163287071142339795988500654758960739352518414456964723243721131950866803805285790591711963028900309553948158743228840571427137645651492207132010973073961766156696430574267480766687194616144277255305081594141069069757009530961399142520297613455868295462463776528894901869984531895468976058943507984547346410632473631144447587175664512594170271095147624342600344159484851979127104005461671996856439259085528316663855194669221926331531755926009371796234073165879067402287409792175822191878184246316161099713494809644868142072825404926338986184918892525808276585568349148255444444515239145361003827930447507863872274938522229206930528028271268475741588427792673429309569716092604658592414541262864838022679105739269303575821618377606851124678505050792477901270832578898293752162893032064871990913706077235554467897424156810987941898060992067647409662924549160168807829146607980483025086990800746166618811978673821062869349224358989833774583588400209651304198480161322280484916191254704168428302904549682747921631210985361211943033592237689331074671625508580819066625879687320389973264554492252903323939126346097815464894323863640859076227253138122524532546414150142709851695037213817879187076461833121710040759105168437789008445265319774195739477374378665422981928176527591678642693750520832143888809639093354781494824627156474866940433584563633910639358149071862349815030663952534468318704501880583217616474588143738732362911097606185953362483429328825058046458792991154669810953494458894394554552078096122711856006740659538136222548888222930899717029970523449954074192760972145157137384349886380695717902685578758629747789661612816321007092872530831236127935970195404443696361372879997395266670892069124206303627214742602489161486952990322172896765860166910467668021995878883140564893044302609871355453762788182422979284368879094024727691890238925179445661632207672641329242487190413018417412841615766614432021152824754390348280293982058157708899279271084132654550331636632242833469792735510980643028879521221171782492783060587742259571939521233238924059084458091837119492030114040285990086907506350432031108811257785749035930952428224005951817185336231351720276853172303908269848823047641611775677640264699384568807342675570282137152731810512766632814998742256593586195071143842588147010240046860162629411834134009170696586681926480780508409115322190624054407975416551075289530204968932841949236031240706877752291299572768652088555775608994929684174106888037984682108022473864664921147061759343348367353950289461673909730577434279688487264419678808308031991797523323270478719969803512435631742730185289478757734948368777199512739280655376197490567340566386172065895343711733266568455951853358413636269804366659387296311691708215948508727041425147683314516418492349381544398637260407581789860856966489259159137774663092292940829495770089710092653004010208194077308795146751617760073250395725974655902960352835001790301418388854141583233599438209608134790738911550926446622807475877588148063882594190697082357594904949749263778534772112898720266627628502307841143499915989860158382188155072520574944958869342454166721272298815508150471213356757308025607216128081715302848357284512137332421110456924060488808608780822549138412907515460278644721091169526192603597340278734475076311072318590669997722601439534593537752546401541263416065183741338134301158271044183886701778587834834708945805361491417882356372056087454856123294451544287429195405002107394935587706993747425129694708343744866127448426234647404222738126553531763779108968902641941188470027061922232296887087014511994845625939155559903796686390203542538243005233871939555372272564556586086551076731500616638434606225020389227844930044409479751302507917988643505689301525825280393798992245679045097059070617270444385784252449287022054908206890429742631844432080031136851139936646368674892794312684866054454383439661206197550970507345711048843003859822224612902033290215022260118146930654249411232809089901016885830049635683530055877124467248937888613780831402971345156929647903417833118345586364914467735128834097850571710388235823423621436333714816709935795707415996376776996607001933897091438780930374474814100063070203976674689619514912193473237342768039199419792130756681409486322924677565246733711651524127966128385920823480337417524748104847007329193939806618155846230078986025381108438933887208310240679468299514675127136169305863691246825789672470546198912475457842211285351712373724656506248412003352114655537978532903645289109173688721416222702350494713266961305192904780316451061610767217766280972329787371963542309331363985619173546539690282404905203535374600239559753422852122860042764672100271339249150661418400305971763808306343040963960021815156988230160004827402169831400985189123181878891821064473101141946246356664816088674583422736226054828438578508866297095863317726467020823326214823302776698756881241210153964308259008927546129867057448875937545429572654815551114427419984414848618402412316911508428413360236804952057180932436766043602763585176706409418018032434636217555684833067788405246439464914550527296521484362820925138678923647071105011923603998596861628096083831839699109730838523330140617336455350428682677755045248025112305690716776875601082569094571055824211491378941912177232197036069746400581889301593426121420499940878081446201568412485533760063320974719028182390202229822653842802411279288204846348722384898881850050226331066648608233525410689827292349003312472609450458630125660615109918279318390799349698557840434984793269556618130607598198696535230405009560512555555202375927953454928438151229502583157812086310448870507417624799718544242206260249154047325713434786716047447937770793207272059254494676497722627672047727885923658075315886826792580126960430048519840473997816294724399761470278508591470272559750941295341863715378356012716926546458346538448573957020135738623942963080006123640421343297572304118270578421071488074559596959385250935639129253161349092536294650318225733400233393248105794513578407562237589692826942496619158637085703968630882834110137358007625409289319804846498774240906384015921011536091612510019579886682420098328726880762839228407939166083338424644917400545467648578688451714489007275443886621219627640083805217941463075247470829817803151753011569637767351716120508008330321628011345885929392318143496576416901192920174386716997068165645768509190469635170360928762163443627694134784532806283871621442766839162522373793648396764282618321779185994148754531708435044447879268515989568435129952421063558110655201644291711154403441669564406692073789649183743508381255903731511663455321342662068085579855991261214611962253814671676284659952603718243560508221092436277531734911018162982388734625658088388387907856361706002606135455983115792716661583924733066405772752576006284226088018108703962723523045229661650814479098803280924851019319235123363049789376037517762937297581823110816501270842795095472072119907844382736826692274521582275105845464274419288800275531531717902930086485833261219434850162834197633938814773262859448599748488236232735413213390234972687331962521934369891947090547694435336341471740369654187969974233701292728840504118409827497683587012101049690627302215808062349909533905832791933142970882668777767228183136605704175100487614227833486779418814238718028131210860820763592021039544302826580241522390656273097046731279922235235713319071690841714282085587995170127733632278304673086050239803656471520220710952510695013614997454320970827525364182040222417690758786273962902686720942160807715178963706914276645507895300924778124871644667778652929676620578053025864262488170452119298940407927851723465853501606530558959131135157145355163643715144304459342312558899450738459370200239042449140123087891536838289495853881682424371597882077114003630603594276191739056133817063365948456652418643403770266504983480308199603192960912589583079683136266313997828052980309449573898261351745675792128667451636827672577263115213939436070811173446216403244954491598354028898769239152774803707774372881358199568482603928379216711139707269505797905527141520369801734409858683175994071902845300246619035101026616115443480413703083135906185202188018258408054153023949041292631323115502471691161670594840142433246147199376565152380978773201278053380298743348571364823145629594293842886416910484162734771903193135601862192479106299619909145241866645622982237869743762347031718645653418852006048007488994481484146805733881835196750843724835137947674572063105640111639944498783424306570148205364380682657792796245430054112990184622311952543131988884890222765427574249687549015493232168489654118723619015176656736152373847172258781178334932049005469738511931359103858368790239731328395052306393843827588146851498283404238088125620047791657240640031325050490274643689815924506829756041623185854803019915216648787241742205466304142011845364285050833912899141635160626271611635339958477250221569449005094976111253109486067365723162032705714141465862322069816626902958284236742244107360215520420100675195034390303012324611025249148440207520887859781818005210560893662278859106659351720446486559177144964099526867492804057670199107943095474044382208907153797872159674952822938996266435571494095369038143989132954921926447104235397091693572199896893026032460413374067287188823701998928279461930793446517550810925417939900894842113460507949846948211157513056165489410584952245892478778563293917392082407298637256423381366693482474440156514314265797325875573666315179444657820837518874857526038405417991894451852801705602343473808543542815918519209561191906531654168856109014328694626815953971101399944994782739053542175711006551829407602408892589114431989008982125570081180053517403819007943237438046793109309650820539277692373641203827795759142455445630578522550658151033562076506607265846019024994291594371009669364213899616471051614317893978770789910485941571947308446022094834604749831978085380202578617924483105648367943385288156339349061308030143696866681813679157609403505061370357220540978743473050208054752516286616113215226681906602129080063107014024621436863130183481646856566417660721266648283420970582736391991730621580401089531546033362483006658589884910018502344563173900302533639151178557820066328364435402072406937926328587044373069172107762721819218591368145373102636689102971624619406593000511998728201906748024464920190822570830668139404739688543187705949692797873694646176125943868757994939536478535049346928883083799309469456692061829147034837080403612913384441474271021454792761772311749524250922615668067009603749063684739636993520137265268270688891856001599400952289689333795635690307140091342375031662166972177261931277292554048623479787318233299746219381429501948164196381695160592922796155627709343406859038339744878221320831114596259438413204059303613220816507468906834548679503187916795723953277292127125092997608766000631242501246128973195272795081123036053082554422591697142288984912678877940982311239238631466494077905015265958648609306212671508717689838322274798045757475121787228304269149774899361442982180326514239288648479539190931341792307031433076145107694289372750010601573597106041746047836680601286137729195700288904956096465871474105697053605396770581274720289604425615651284214804643897118856335629204664619308512065919030580716298333412335853497122901171351366666241469511803698293135794969295605206838036658284570727654780230932367072907852258261585516570051649809553996294724756966139495369171938778296350685875645907558227160217477678610532842637780115235675747920104072388849974446851291689446043028220645782778026175942427226968334716746041115652342145667078086941078914584184149977332342909834797206549347291491203832663024407388940471346284986343256720492384801511401637139282225749107603325955007345503947750050692621241636531247254842902668438611827500989439126253829456019740975670317530949716852517229371139711440473450228865813946575851630134084328828186832837133475507913539662001039108134663584897849388441550163056965981458608507366738477138795154394270204736366680302143214301868414228017448308181538837945608018682390762376525942397940290908960519636992359212813657609308690200495236403346789434233367649412873398486429623709093092834038056524859880195479143206931306337400517009646565151811270452435616556790887052356593199116680399440227600188570148115966424220821640677374531723597648593724542915802695131192841029653063620294314201496538601024370839091554337109372040294691918221570952434642864154913783717678692868818166312642262765195852319508693513608774008871829231390190152730953580479061321608399276796365458738786296853449879524338569281021713980864719458431607124789924877908615351864582123851660830836776043134450909199068965021805444609101030402092315638718265823213220845089202696444925980036646635569158967801640827101538914816285060129707891462687507221267117770131898834195983116560798988152006257879058418893250125528706458691050102330929363864283965269491814034997299445201057797556143076178632078386800241988875194132436849255885733149757961553466958879559409942778660407611991727639789520245798614044389837277097775251631199556745757961077719940631003401616591080459915167986460031886421985221224676972313398432180638911196920180955349288965404307146605837109392862393016501834070229538432730237506633043122059960929346144277787211063926852228612096857069402536381513572072640817127416560021421538427552097989937496099599609204930362835871499732751503113140683598558853662854528600316817843092846417788688966350339574026901208052131250746223935838191240860104918174710633297688740137052361822156146677039855167962554418633363069273042736352995760109243949184037748039830371615376481649204532606866671611504469739063211508267253227320617869004981727727485667212829315064237409698246218940223418482294698784851207957382606915102719853289747286393230435258985383806297098795677123461550091211280719160354551414814173017265493550468823756308879432283462808147557013804947427951486158288128838398750400720608947378754183619031862678359175992402892591881862834107802513697128179291068175470934454663091611241632124978208224821681264172120944950711133098037479809280016419404796216619820345541132958369655389945027990519845956897065291595449235889137686485999681442567968526575210134177340900815552708816543838446202171428928386224344186887889784083912455360973159237889293386108386831455802424489180092873248655442598431946449215283114854957382688238176024970642759702785866732279473515213737929611219867101945643141153667311913108857137150657725222867286569495881275853802693744244001935918635162873329855078843350498670619991695177502825924138751565198780940571363789438915693225694452844320214248187410387882402222537298488659120007827245152597893468236248342649876732907283308186156979630614067179595488321367276009899709490933906187798095434299025427990167598387201576924118108479871168292251393928373838190382909377303229348934405566799548801673985002856578984053979762542554107847175850049424846845956447733196319151804481427215768901691979036221983931432265750962027169616750788398335607751568408269479817343543986555337922838523270435411497243556412435297673899878580887111871772056083940744355084455148039230810835134739968878108632197137976225940434870229109760154497852377613833317158409380206951314209784587514229544963903562095003333993545431260630312163246688603353663715002707149827377810305006396644682304758355835162454227216555303275850206781099227469037620042423690748251669439750749043134558501122427546237205972798142887712694705097426524131512515222623177871332217496480897262418350195289020661221142516830796643120509962933518493249072577779883327319013616561233192476657343675510138591066418067649070709332728712061661843579530129410295539133860964527315661546687731934090662522543045196418917097624980660828504188285785840675645465575778385761153643496485444896589247321121160446034688328877034411482091912702129182973331461019450649516599764105894162574883798139078077847954833742276485860137079541497040891983539930016120484521468330264097510910257332388417151423015435785529957728997273768943563191739900012018679182954971988666461359623164887231485137335250714424195860079402845862369342367397845699634255412514380857615883052657713736825145196118372991376635276220183506433858365029667836587844363616168164716151157010942203450431283670730771803370164875875412035046925991906723661020117080832258892477337321273416613234028563092884072379578052592215792036917218707107992581723719485413616287596382261088925949059475153162678861200078644853933455799111555793600214074288668387328586498730511825403097471038220057701700133533520727601841877044618022339408523979597299504454116105947451152164740513418235667419989809732427928913614400080988652339664488251448925923903561105452960891216914309671697820587030183185857528226539832984790425546900210343710075779194792265920922219944555693876429962632284976456127747200204879612717782920673873658140918449099072974457405621476947256807851790974525707743914276424193716982029970708345555900057596045596437789769621383764494079704799801865607324717993081146795393724180526239687184144788494108105353503281540182458786290890482840048227495791938519248261164369058693930136273505039231575818368631485381926007518674286169550475468356730617146556315949682953017211255119741457870923716868673521217712997207298345823874897724297469939299679550399459752576230310060341741254955001473763452627117878469821259480177218671884464252447509164796041226778180858656709175415332577480348345722235514292249398418768268118537742778314345480676889897938062277260317291157473739690483838031609213820402811867994449297272048558938760970671886281666754823424720727839068573967311149073444480547010498686047111545927909611460522869806857095831025175961255815872946353086778165468463938054181850971142020015245754823065313445268175301184280214970835481010466966543025660459058705639096381093374678003361784988511771946928081022781484416687073850897832803759429523885857734885489445189238528757606549371024551419000524973567226441176414215149170446685085376760217503339804299361586107465827334397291389369222293857508044313768449200851587671271698650550840080224650940483008854216380213989592482129441219334603794242926679764929996295714770561046991688702883527222424181852322291598643453634134736919717148299353003294179093745535966497060079025760533111327809123764524427489166297203165461185703217486992178632082773445214968063913586289445896448024469683129617760342421587017471899478785775933670842140898054725387423338600142983716313662910538054125093462894250182231078451234469103747847225056935237647936917326148341462978754860066769683530904233737881048609002088061911817483604741369052787412627493702899691481026762804553817764967699368844751267135810654734277104064627101562980754378347990713669380007178800607582633602922643375739295352855241057861574161299123139466101087372774000642821794736716886919935212357352233688678200269410876213460663245780731861210906572583865479127986053918833155115358625488089321767946988931168854757638112286328168441058026234441850926845113019263258090420390117462101448252775362048534318671310881494903918185370966067823595567950636881022316896543595681599803801125255723175959539433468281072559975068701446390776012523586805831316125604530641671976923630913182659095415531090545537289519930747007655610563169013665718774478569789197989933902402622380588190808096216830751186041458268860429040473962296732571993468343690420404687305566030909370868998055209030731402632735547065971602750559066709103928689854514847455807978934278849135702849730641881850210254632362992793749260394650605947049361916328685704795032633944106251902281260004002015808261280445338454450368274376274295580354382631884641212884278978716226190535944648088333861528323361877727344864680470006406018228571762737952849203366535246795194907364394657768375270992414853304800911406169914129491981640542709656975265153310223465428622567186016225099602092480205273406230731306723919436498934250291428087355032144745516319705199751513138160005933180366579271271869178842046717208069813784347408414592347245671593538209520297542031553343976916190457676281733219942583395823605445788075749272715333290040182383224222336331695036427045597174116882490781372623880919504443233829811196341346866011315364453262088568457145205934857587419360040953486507853597018455194229433537884202621445610642828606072417984868060409123919806135749044103139906590081830183665020616045389550589710920957559921933377472439491474164104832638487491729363365380742166520268441956018440049593164686500963682716868589977350324267487075775137966857568499439260583560994094054752442678590724903163608459015735369902356701962327381971733678307133375942721337775724450246124425699803983684003482768042239438794783490149119094029266117014885032402237223260780177714079038884269951492815577923091468557298063284105707783776501927160391100969804108616307472229957685112816550665071983958881968795812956546440938868441704871095177095210056117682756776815021613499004864091697405716873354603195625758366299823990822595526251466415918082865409158530601975799793742282701511547690210491061946487696060488918274619453559572073062983866916729150919360506717957216480724500041114213687800914282692105188509807907381501548442899526476274540590454079979423195876872040756129737359803637769347093805652273014549680175063084321589595077687015502343358136685092802538309679348516726766427935018251731931079778109283438177031358443665922033879940145514825953242728907607432054049691101122047108016247357641554242359878122992456732383112905091803335488882393050717950364950037523800084716086377400663450373266067961530826078204050188936138772587544789604745208842050268242173321833849425282916573041662967678148924035890987112326470379847958495114137306455981161425977885595445533718743962148762359823220830530984916041539024480291002145028697442219716723122134272902100446187956037979033127952676781274882468025906951939560745967553347873478728928817234333018978792102899337612101957598258036731579262848386698593838102228820940454173606149725224434760813919578382528655228528541018767036191274928454426040249948998697761081904273009770160888264944774174579747832104195935238115906480065138441440476150619167444539991764631098810921094096595290347300266898767740843111596207779803381711414937600217072209982833175892495386326841505394345646670656431568569319231367719431376343111985461650298579958145434634618144513878009308065909212902989268315619742956155240409829272858777688889406543761054656246899274485467865042206071946118900855933161486339221434399814370436865547925015855833107167200045576193680291820218721342768114680850088739115651097625394275834702918896251537153977324889783349198240563180506166414240941573665146769136156519601911557645492802800464835721895684831625338849645722650271389931179296758117604293876545334420421156404679206492794336018850359296271143824645823056049118704234852273768412547426937050037407936246400618793147735265526485263295279329976420049219377991771192273588424979247974120310852511615849457371759789603647712187925537670410631070696034195355771648368166928062509728474624416140795775838180481546469136315536554897428127608938600883122670459418378827317229482855492920814663431539227700624287087221637437407976484286502667610143136901093339403759672973006629799145718929230345226028787013329081199019545363917747429338672769923389055319243849997273650892933004289090088700671856360672442686050359205206228086987608350170164960154113563835439304674786151887708975940012286699853060746409059678406122855914126836779733289971259736921773959517569114327630642987409245253522554209111199929437145863630729079757872545364158636873691635741431048585705041596583259912365150904465813131548919504247467276347683396558532105323254696923269503745882716586750874140437147138565942377363915004836559394751668188880529934366043020225011079495391272689205160730090976703641211461299243987702551670907992162300258349465830896273189010519341571345576714231140453252075794072042597046197156294950448044069343218436261220172897337946332267114430389436710616788926035701613879391989074159080361395145143702776262950025474570177423453315093808004451782796078906067322053887276659165787571466378833074032284123957122535210920775153426019489254330641373128849844654225140213279936198992602341838296066396475165435369721039180997096035327120914119820294438119191332231265153291224927798701741852620389724870389998898900139653473772949778068484144671205257292792534959199298070175164518717713566070862748473363470762191322190949850239389894543885515565167227147653593395957743759553082239489936669232366131550591562899280555464590047510385951853664339648116606130487951423321813836851229827775184009989036563493238673113686995485588072394550267037388488197643840607400229108404769489739541160306795650632496601883038804447892103437440947056479525913583787021752634368311620611945488024526531371154720176517934245376982675511482757593884292427640713064074869584133944905456833867618856464739987559665356518507682469465875484336373055195551215928523248781787626852625589289510755696018712931721255496059023721619474045825755401693060495577202829689998038782284934545979587695192364255593935231184307798205056894777724509463927822209796279247251888710370195073380594481454704342854214332238329040765800086623438082550284210151765262073035554589793352764205785903841237301018689692943318146270448385130579575320718146802004213086979361635759329945177955067688562860748278842820713503140777240628766412320135214606010001626116476726959472995037600583008165025447838175373952317050456277334987186668045476797396407653577201391859055845444345828542277218983554837934600424119167150932276223931561754323401507204007994592886845138830632818335030474941184908803732527682864393460040214972525462385813425198599770878562093934800466894551841719111650886413966438796452539394506794589696338155080090231188768387394387270290564606281019776164654794741602509752957223481787178776466929575724336053898536292769307433204454367774489130715105247202580072524971250517043567343883070723627249491076620407849525956184429204737245942445869500971920719487740168348506681756651713382531225255767907465476509632529471762140477249097210058052194841713466006770484222821301141894226568502408377470196519439478258960462059209584408382003788637377378454675819827375102876547044869490800769847869817676516084039935506950961742388417981323348595222431898737001773724829716955274697789360401582777453463309877398459020388120532787560202372734612918014134257221301921897627417104028768985652292339901801444187207976575124254078797063088269123078543603309436576339368572866009946006088095128018600499351591233230033574963430926417574161905127795228882362945572351680201748016301534991216061171177687275825010713382658458159588801939565645653323169593237861132442828856805628010116252184367361405906575442572945155436272537539924373351306232714165685608031969647228760672908013867945432752666008054495682394595209870593837308699286492339434311757101614423372040709334851559231069816204143875313303059278368727023382575755948985230369473954281795742381012558433323300916517531554678363054896493904176697370667760628532122606452531044567982772098498432548561017754190211986164630649294809977364250875119854366606300279739457822728120286660326353885970815714793877438643976675997553927433376922579511517027445038186689369537391615938009996054263535848215168436569716133535072289329166926680973072714171865128878788727780228010945969062126708025832043660086438343855830128689207795829035392646311443323904075825543571150254542989215863168409815890650385466610224300688636413530200028131652381583496298512508255220560406353152585410560479261366393850595295562411996078420957573118723033635646853777772533354835111500208403104336560863410620599843117493930841488042862205998015746136598546180152381696283199779386103137201756586678251655366300163642718724292469568356233873684236362523610917215744748074353131338455012990021025041576445599322959140026779281489839054888318158426196575943069131777920987174605401277401487955249215039047857598628406526072505640194177484259946422804528622786056334537402240193942527738451835527756477418581223676353614798514657799438750364538416732047286326746203471941136520858147934834283538765211415089097012155998529120314393760229913363108552403742048045493608503729131955508984529650992340154819699838308569923640719469502579744878524662332899982374131743261905210496667539447443839787809617972069814985240148598405649873500047921462015336820905012885411122894035337625379101242148655907752246775319319688988165976272705084046658189399439562593313872727913021822879771475157151634733972998246799109689149905729348279273382690592351277930798778211207380703328477009186109982707887800988987804965997466386070401805398377546738060031160412582606613845050980123352522325375173725496293830847223850301590856971675698613225774535410645729217940217632605518550083509211861779823456291513129437202861599514164763420654112450572332053119317688064781242566149614262587519948351570948631848291023233835461936195260117563135444796451638412178773744853569259734012498693598890423215873833473406589801708376058763255898292772293558762513428545416583567430564237789366189741659659162867403014496399606475413987091411911016918811480386357762316107115866114523752701468848173424437953380488027191837439900917003983684945810478352989924101389610853368827137193610047171293907438153990121909830638209143867421788892227660592051448463932874155271153158537454309105365830548287508586759628080085195802936267393919338492231875750281034778720101243720104886557266076350235778646400659092267019499202051565559370955745597504796094822661703355952285242054555877044938549060004040755593606773429819102166002173457359132386800139613355202341943339640004812218675634097244326176929370624916551973703521561450482729366459334494849293442891963927064229629064590981744322194989135660924027264832215465864754738192058902912547507890403748676413918167345002280954464340185533487159613126631664986037175554208116979407600483258088235428835884100252672685059996693180542930185318647564847919029700831734901838923529947447654479538967681146966070988136041072505614279306409146001916266757043016950327541087118599593430694172856212900739458117004641142192591949543388237728768955909970177362655252662250114804981460985246913402558333089103954430986301893387022816647222587086996619039974103864704974432855479130395194967376842037249781915987006167498377072686829811507943546470931372333809388359488745198732715881605385479072976351632784757791340357899584256765542316137967530541803129874622490462025323626787369547964424028164422600442236845528931303641729497493866814303538367802979021761860435733875151208892340018049022878522620585861846577179341457817738281689604135366756884511349720580603772175192911016703107113959366320155702083624288678014105071128008863870486584480180173163614521217345176950621282491364803840908686383943093621934853477143817144872097751536413901592955085119882502720680700355279417107786018037150492440536893675624857680388010979086058167354360187532107371209653733263248443364167364457855472097844096535213645406803786359238525208175880692145244557865711738516977471186042016718959368001343500768001881413016318851625530717753280589340347881900314448091941333710913856129166238344169607185298753204778827757239947688184064188261223366734705795991994018293386512720615262141755689079211634477060097094206263348375735242368641567453416198422808485904531466640392105333862039444832064960353947613111504143847829349570364570152981035238679739957176071113000623039502150658594499489800464248167139205198787530467028904647300774134992790718330715252576618818599251370142221715021943636069847984075812225327328195198945146581831105146395368518363836979883089476677877238413542989612376617767926974410585685971397146773283794836162153392728270669482360329989117305879289118469301643189847160974558698970065745159978836760208561191127314959655717000237810788446968256581929514602342196860118145664177673460526348597466287572554469391792537219914398553282820035502499414744447213891383332834324492247941070486519766393392883370277331996156870187292104153372421417816602361108446382662076914751926568567615742135219653079525112155126343464951500685765214724012353790775491063331734053130720199489119253489589199704694570053477341630516352582161925499403812515004787760380056870416828378802155531231120788695034148229564660457714517442739965498986603130877794323566456212854279907198373994458138107134697028737868987209326336215447554651799019635856063708388898705358204800214532834813614723888203282506648554932537549745005116236889323807378399909758551750621344790640140073462828645085281496723476133436391681828032660457632319400589922853710476797795679006479602210930535666309241786412783960577348040513206718412025485255612640212862093120869474518233342505765542699613971164359827224750966950512085510416437159599789024199457949397397495376215888392648445567297860739128067848033234486053175812341351309523476747891510334411920553867830145185143727609512474588013730724315722341903930472908463409454785188752302158155519122035327690801243902365505605990740924689527425445801794973260675010837826269345369322115478444783058450914559625729750287357441376000401678893384864366581794975582455878895415422408802690774358153633418200930201648140363374100542987128154094142936360194858386965305971189410255563795778201445266835175911625844378757780323818235517755103335594157855798049704551759044169929422324935844394816108091709652131327504327401338978335264080297435908942805300214102519417801654110160155220956142534467324939874175749915816180385270186611488173893823542400447042234769507847407358366336214876838941730303034924285192042685782749439763425155656358925310161174435208221856618690273168311358729710758303926470723149392557464221979228558863562227698258223846777997806300513053637015172919325593288493180737083529791431450319756228759335786570617929797300930629800197560969887662843609834222710288179991968838214265844369458212345854735967217957488324165523417470076013372739538735858505880037714965454608871630209019788941185211020160637134479226128899184631667337998050264867656751307074763827579187150245964064897331656575190298376770606093906405328618345741841862330574559371600176212591462940366085917406481674421523566632944964931882251286050320582295778830142408103820082757982021019290590220030156276857779372875650798676955531570602063603356923093927560941773937607726231642745087449950942187052215635530891634143746613191233533465118804373100242025726148485031288213094076391921886846895440439460978354362147120202713270319655622437540159447438762257408064816969120372363998637267400376110838524852255993412527517934811274697831994874724609791895859612035387267112865016080453463201107070343386488337626605614087595863068632610880090795796476628768589812491347735502453641509545025543866301420591110467085494266761077775781720525272028115716242877768118283984223209270192750908517650263368213561515109828359632166780387346191791637277216932141944245540251680972797339185306131658298232358975401330942695646503104582182400065185466597691391474806825052722385655422654081187006790844437940702638324136667456711281770883482516744593250630534297777358415915369215064009478856075547203394625358348854745696709490470114969927870632140554651214611704999295442391611002798314726871872089090072096670802428941436518954071715511221708822296797097930307212391279587353552159103118004948320887069153917359648866823104993072295820036325305973881415801120345737581572889252427166436071283849785949665121592268288135230963382693088893316166399632402620645234679669999063818492886041412183648557131950581020445770549998402120314918187395560849378457386269873702590861849496021275617293224239136863065951007233888654774955122971439095074993835230602997274434758352923960554051268816307862547001853027776858913528568325454118045297199986177235392536050229359495169048889688763866995630771596366149440728006410423554376313873506396536789774654028799922562889072728359612266581339363723884126943227226290069098573674518435058036706090963719487251271517039839193028128830418526762111922671843611994151651259851280262005048475898489094948404998772533020579920337876201476667499688225623958332913366997969757200181190831370482861216237345411144509592741857091229642322213781561899963682174517135407366903059943563890200828232971301024651865798299089607640793108278899340902918605903555529073753237759063282879160494863011589193180901665241378915437217462349923956940418243744129867550626556327865493791417018206474062341514963882467894988353167238943915657073861801863979147799397734618602936119779212900346841857417313352383600393967955136214756021111600610178793435370897119608440595884262173105500921027986473918794927853111170131753902375345267411655348688042680649529969483727095574330148230135843013971211102886108147844575656460706391670461724061240674810358073641750068307561789292503664904178337955132062189310526385460085058149660293960875820272403237594095800666091859409170027583303639406733163297371176854571950184851472187153139512926256946587137879284916912333231107794890483176139073618329242007709633161995932073231360216850081937442526704684747370712081861178073696433366102488709572699645664545455847825297930300487257431708344857985473164543997800634970427628819035465131140857078580133498945574610775713222035106884787405199171987208238363763892287948309335208940323625362804937893693978266945428218491138211561685459052525843363454347723467756910619805700937915087793472894939215598637325086875390690463969176422779353687496560031183295245128024764402029208050169526323779242510421529900635988406181450531658934308696942570394926751840402996129915360348752209551721323661434873290391028373152444794919326298851806049742361031855308227790975044152555826334653988768132534731806751378572714071291140051423012765205952409639199995622628440058448202160901049106972206612151257327043939503333695141488617745745945238352924367018409181516972485199592634187593956638461275202246844140531943753155692117064929276265070662965361589853756022397909066098208840340225194995070582817098395695660059848551889014161305379608366055161695196375910130705568149931726172643078085259641563851794966729042937875133151558594614252490024484545921169678007422961144452796948272234854330517575414189692360912223463327243769946568678388592746805448138223640986713024645810668915958611354580709747107569164037642927887120025333282938736204495102368860010424597320578324775897995219073296070406551605059249462127295013870044368830087800197135430382921231098311694867100665233640293497578207499727546118453786478255684688603453611295449902913741989264795511418944865589593787165940042785833770375113213503636020712986125912329429687256352585078066531745537591713288654310842560806164165415622144837665803305767034745551373278108462275519966616449294727692676114789405496880872474952426867106443097421703825782545692659924351387755194307182791417082697882519323879995402316192182906589507155646225388854893663318615156355502976426107964240524129643339547450547844745361988042092080251949429628165402646223773289884277190556515202761899116329818442648959648694292758347534936858683372911134112561975617083170857078635793941302126784289518238902907851340059532172657060839493242408436571088924545273272535259285587711008101221447411677094242734464974825812752493165847148173192347063009251997553660422529501271464746129775590515393465905651776868651601756584976891222363480543804403723876018328619577811303763093030847472242645115298745348529685712116760884779539250510335249454887618696504233685179919775277761119402031656749513303677602112488074043948543412558646473241148666240213039561651301033156634575986685593273421950651219783843520910796665975798733813508375091724012835735961762711885181198438460017367273834036195421184582848914654497082626890150236038022564171646487861346804449640452608615205653315489679096403156438507507760722355657898446770287497809596952216496312701300957111451940557074779565372863536776488823900446669199024649253526786240859800395345757595861233049495556550890904436919711441802638631219375575974160876589981288920014060565538084778179485334234643768337520951289958710403547639204332274027367326313553955407205013937513178469603029767507786518721473008365094397617256421852577347086134329877745702793569459601027310254981956928764303105915486322335978401938386684539540548596687215609968453581161077513211366628302293589159229456103067507503467443946924134762438139143584447643892407847080190927468105601144227700782299323363242702824209086174321574586794883466500799452998047557403509438785341308149704409751909532491302804225913278068427887841300872270356869892455024868398819881077150617696649171945245810503625734946605631667186805567718887672348717888939423533038433612283354528168247085788951566949839351659911934956292912407851781560592973963623061873266603546809057224226364416262780533244290476562306054257369833490561811898109878929909084799484626276611201545564783752844730267932615995611057836270558197810006604502436297629995760008385366265853390723662931956141035697229459976178539655522918655556939271840622005064785315004898966660889139571237682684467329747514405890471757199538640369103538186408882680247542635333787821588847922673778621582266666326195398169393607105687227653649959106375221676414716473514815259332636549534841215513602372617025514857386238522660839288855869080648185804131802537674591502744678488448673213155304219001969279371279222593986275598364090115741927562070726882059781586255498715652010165428771462050895339020449886847660364690657004395264437363771143060290250830010812618562543149217533440810356852805566994676584504439723400558881028188448483863411223064093400946764742483206818246927434953426449166705582457453359109621629400709076711189045827804999193154032387357963216941658889180007668070362739002353014755445907342803314025468863137937103726865527812589243793272088870963379681269784166123118834636900956918529833324058294993306751393563469414166439006556873661739658277062228575475217424316975188491073978243289630746039693193918960895142481731333865596722812484370125494012579822922863004459369567807824157891669984668227891813150273475996200727604426918029099747664902471076947212203910866192872217955154860449581534661906304686492880939632009926624742387870929641854987313427493953983917843450581442806405786719946625797174489781567669962974455775161730593153939700721955816220909974413078051144549648774658785998930486081794522589493331814280177689981988958093514034910140835483193455888325075652044135906149238174550722946591056135878881417330630647929722751049179994637913954210221693299496913892132766673060457315883501889840268384925156354434725401735632052070953711720580860914279122172377647354503687586752922687203617776574751049592445528216537615899428973155119396269017649088899506928998950452064218826527838906938451447992213474941474773313910481798960667887040194190011434325189333902912962228056321261435907691070415673294242932119130355036746998860546569204909406555805818246774948426674093014035715412568136468297238713736386532542312451866322047461607350447697895716202768385187432400197778204920907363021506995147539241590498147871467432922694527601920019978461712769792832088991541566867978622616899046132599543800932444691850716611390224344146189250834058113918379709032549293624987431172939791633049981596781000824556146482094979267054429849209275465941072770716664164371467373574785449473831964941297200159401205977505033318314869712297326937202388025947476757858104578016987752828977430473471729754567152129766108455018289836658135340988015539977158952565946196813099369131336706493953256307614125943980023528466302188727113504385082975259931650101119979996976247809308363443185427038638950466057744217822578831936680631305360624370474552740630971426216139653771331861107099920976225637502380415092248405849354254721391934285624191646193681929424697249581806583761911967947182150008945865054835994210378511214741406912292834730684123631094784885788563671287886856481222745319793988698083855964031789690497926811340686218415086804057666952591590711054596165644574072225940872067206421148126442024487764412997432560713963087499077301257084729066216504787270544590198100583595486583881020711360818952316340564160526261859208461953810976181283583065472937715365458737758325361519716023965598571686150111930848598584460817023208218060109614345646640831131509772108874337361633771304641482286427321895252467589988638482979739151244000592790986295168880667488512066898637214943292710061687518275996965841218241787847069069069298659405672863856624812026515665667423242575709438726033353587639158905903859818094169728901541602473310616956564317620164017105958871380460725934026183109270294806642019999524457382366590341707863519163560619283904809899111200164501678860930997398307231599402637163927034363513591834095785512621715571178142207203927941774971962833922254207372355984839349695030431784510411024157490182419881299418048942416817005058729294104024601201266400745467724505833100104327059501022333849779531731240397180779511727314745596964581006769691741448400049992962549527948697771561730363295997767510307215353189395243682748791693243947013966942961889055092622533594154531742632424833182283651555326280661974082586024560208439687503271085471371622703558897560127919903727279647200012816066878655441045771336840162805875969915885749767453910714573012563539856631850523770124272560918220761754218226014232196534464580742373206764319967911497109407478685538730222391237515254304629867336233625844221860893726578918818950305940912939966643064786981394247760854923071898029206194225541629979869804422850087702211581436775340113456268939096601995783571600169440921322753945900169417857678477392612371383595829143360171337875658367775540967413917412565597461265513313326401980952062867247175138402914159362146447947707177875848449867122904918356816128010215932733364704607932356331272743976948164208780991797871197535152163815974848058970948355473297378812492379145139261512824903010332989765191679447548192880683856580494362986468944188216209422303745261600038093200304520930261375373489365790994706116355745615408848539172770222540778079953885137856651634358382730060766222908464520101096052817485932680209353433440428716194756065856904232446151969719792790994595119006170680833195863717077115474430726151072215222144901468102919174084294598556668163471781147315200345511448038419831293021711349382487485688544814359234645511054525410632143141432321217546253018840524640144578616484877382048891627697997061504793378489620092574240884095133324429091964348599521478350909484402371687346361135684029516137132399070294023598085314520651370641362657169037761334996581146418411534666285671765434067074897633237836006460596532194472108198980720176630354213556864757624068751638607239252321928115265809466135317561180463615916152236172913256580569684389299750798681699812947008158303641558061237399084293951910063161099769270936672850922804467365700338862515026942071725502311573254201543834321357458775153512529375557768385285502604775932983768260396031730329150818965215573463650003175390254316687016450102485068497036155130282440373965772718963532023598392818811879999011888815458678360096396103903231527276873026219796708751791753151392303733128113881775063845447070141989086758045978533443798756740596351476642394273578955711553341329397493020526356721697967097820495831489702233033716615790579650381725283523539439296899511652191303803757369419498025114366560041210778727477985086371373563931221610547902871872818024140637538018015239129786368065423614740388702630747739653687869832945351073346589842442410050780357951605595226944981733170191157749893176674417288234301473269420896620812806696593316112759127238369535324525185396255427292956037961222957389231800918647474633067092305777991724442760667641743824387851960609339219045013087410930579411463513566421922852256718057874367137784097186161781681907410554305199381397680850347555793249946316831479792503688543746345324766198600311610811342909415891424267696137881725326590655104829079217409316609951059006652748942041547304804574839021405848382201295729697642065966094757029683253666416854559700349787108769484956899092881194459781054262195820626258804911232921820762687395291525656686308369508025344060479548554753348923098137962926346279985737138732008135871512105603110092280092935206353756338010323524268523546458163515857469972430858985464645170541316817657880912890216902503373660159441540656947631207587563096959860126131121621812900531158405094846665666277362607274152237351739213980988667885127254290089468170042222411286010060947853663249148045697574911478109295324812822439705716240102698631072937876568409736525981987103308060683398537321028223060200324369738820685470936461062981370023586797284875405267850624141131648733881265474820480067704238301757805000006329692288438112899893315312250395425718652456125777088358923125452024208822764775060491580350150854833084514305314960280090045503095092282633226450667713309399989813150121242375252518919584141039505569158640869133136960071848645311427376616375766423358885871121871669872400792801427625038569447909733864767607292410572402221386538602324019825632172193618965701353330653445570370486720222684636271137971445879425286819393356891508242110970798923257246659415944380536877067354983938617054395542911737822035707917087754455139868094242499596726090409003536322761198032049303250497850645563941868011401108367931855885909460010833329879970172675249178447236060367985886885730031832781523295784140924392721623854726320856576190327503044633111115743646517338625877074266555236543419466856177101186570364465230432922715891241251635776535366866883627193789659462095040991917682116390364597398665647263380924608936583895156097952361454316787866303271026406783883311855275723742295167978837632270726996026708080398299994011911075664184484769751268620695394290255103650044743381742074049864257930691162239565018662915025562705694977404642041871947469420256746254903852307375120328634171491838914607511964321015104194300539680380006201453018176252234257964061236741807814596014703393326185256210475895841887013134847914997646118427462071332846496568965504996401569951550517809817644927104895720449477552966186836845066348789395762025164170061185541162732246413185303370606029974441468624964658630261498694683659461838906883611072583605883188710333090069531746518655829315915144667030923099038928857265497549933295870797326995413306533180672910229829803763648875480574633673730080898331613167156713122704024497763198922459724673891567348748331991896173045087617149330365446215714839734507142706039913425756200483840160413267158476966548528597660174785343082541027735508835485563318430232632262317028859382177220091647414764583918822940777147287746659229212982120708706591066219127956863097606817847460527519021282207864271925971409961997072123291172236425916498444823085066157887559854051614738733850650970277269737302408145920488505545535422112763849081489574343172320935653415136878576538992204373081713635126131610365167941383896760239302079187426039987976388981045065868276476459096355501580296332695009812034649578684952812712319338169516881495047082914435164378478637766538520871374947015752301239333967925299287352140116999731931516438954019405077508187874806950617163623253505760828196408400710887762057371792509320512862430408022160068395547243421376689452498709683022011021876641636720122985100604105934966200403938912624321222206701707321512395838948817664231792019210616716355288244645446705378507174823087687336947565710726407719766282792989525038569607106978815949751676109707567154239716568417291026026857263901943110647957499671891434407679480726415175424587867565891380409929725309078615248195549067456810768240755985784717424402542054793381495763894588971989357249383807052200803875338688796915417890954085698338866663925888786382405063766889988807362478052497888149213607115132387406173870675186079713709811877027515022415601914300135750368315365954586370973412231984792455972659073846644797415187301084678620920153525181122550481551595317996374666023798529304915453195332904054684008688485249572539606978483458265407023748848188603088130178294206886535251767090210287384183010332311647779520777822438936856077563100244002647974006606976483710401359444265783225806299971938682105670063269757307842531740720884065655333628603586393529490740375077323438858617656012183512590898337029229136049060245112384015871967139571517560079173521144925786252112370468945564138831987554555305332706236595250126667933523319770595839318932309183760741101860325068044806183845740212507210936064533624465431297224259865816976568627105870684467993445941984406121785926175599185471176732753924112340581526457644991690117143454901697991662376378201131642969227917372284282461567326061995538867416269379666204868498511873974752400925917051418059624389660866791548426020375658449340706012008406786993400839383541968153394658907827710770077990043046662282742616270692225707872383992706361907541766110706691422604195443703669786810837097027067715551416421625624583088460807149931654347303383897811267120521598820087043624542564387491678463889518930396617417979317329740779778353227981381882168540565382345046006264935695675344220630833628273612372598324107826158598034379277502642669324578150254766587563619327535095802052470787754809330075138869656990878529148122403622195250044874303817978976595271714557023753831196447929848925403544867957710109726784863471383731532023005001451045557107477740133574046094629499067015349059171407064122510737222882840973435158578305897315952311546956017690109468900305225566417584516629093561978157574534752940657634560287430282229842651020087042479249722203464860140818521754128369616783831818788818117966933608430688977730972222597579722692618680968343121454451993059225102950438911222967705915498635254756421519646888721940253389990291255987353566188251604629458407709576216232634533512729801624549311381790688301951600487296722931042491219144995778861515184794854253755471772690998883083826406816753819633649929101446616415097218361419427285893157984320180718754482554688481910016945695599691699622532136957779775140344942582456122975383761030025809343875485893906324525334170624302185118193928147590125762062853283687048989459703758938795504960280333218888407798470163262881771305094633749818284557497842877997210704319611325532898428592288834751212556155014646400970688270619743535645187469678980247993438972465675281947370927762283747931253532174713936904667455453844085901514692875722402297216754202432551114249162155355533116514526930343110044709503383231500571491573256019835032948127481184455623812532318488652641158321848448274660404802801149523221933511549551035450611174569356313633574759721822943065612156409699045587727014588010365357770179005876009319565766607008824975051590387322426418977339570728355557546185698228274664722322843899141961321100399914090997626346464261572697052646857924951663073160170677017117196015180937824664816661088630742108868628786239238852159836993163795634588041756521613911238795188991260982672559328409454520886300143750157405031880253345906580907862585445470058680115107746329779191380643498329700754938905970940321603540856721763420332911133014791215718584300056449518910101679503039766828207936026840821871367268912832668672741597444953777713683276377460111151047924520679574798124538456424497043149928303097189110606135007302583024516739644508237747791609423421091812837200450661596480035193313478626015396861860788845643484455440366200785562664799040918295475133243000777821141623171714115340547766878996121002260638753332558156736742791055853755561049996746721041707283056649612422765859419411475502998699382378434342180048201856401282380773954775277453816718841916133139610170085001913258986368600935919786829188314219156921169204263987391990414253049241018776553378060506185103004070749615279261223667055423423667331994944512613373025049773018101529633108687488010477595583235753823499577393387354367671484295104649427869095541355649087424902632162092346012416412452732177321806215256414242722915036959087110172623182458366636527735845158605842997148383896413879118221560204857856791779774744814366420224746654382531244668061277312170508705617031103441391006438699234430055331259823897280075949202834059020995768252299125485919695713818748167962769087198587307911335781821450199290297944367693214484633021024294587045930541973949135078101378059235097824267735372473601908417721015931912939005151802448295333679535521927622832753755203087152344934343195692926427859465522713403133658815296364331512670423141137848050017760530600555029776420079833426066675423530026120544110276545530328790651756979122277996126058700181266130841232947505669803995137987559566680017179077012374276826296499208041891480818889902115561167275467693328576735249099503491168553204014545640233134757059722166856204552967569243606040884408623699480397487646762237913967254583166017752724741321432910153320126677533849029453875431326704443212784115740989555434494491899364172328066104752185818901695276683242049679125408948354143885396661773571254219727593114004745450342669881866054372664263464193766251386415077269052369224782556019696710814943821641159619095442456863025980654940687698310049829966199165665765670534221138533934047307470421910937119551693851404608749678662414015471063355975972244411968695977255348193001362471882393347251271132265895164765570533217036523598102542458285461414963462818872317916636213035982495065203086139427599222878897831751048296387358293725688884669174433538268247979947639466956559699269919474821115092495934644406098471894321407659748887406741849359967545473144437062522229036879699888746552555072329856536881083965377765626501311243734249737281545245584974060046835498954205867736387941934171661740874001146388265257926772096585867706520462016545817124233010000077329652086990629686761340916340308628523631485237597379829168168037547965406583320934855534742202023504612615048325500267103111087222922193870682873983877230967945125760776952184977146478576944842768098760936826784362978664765578195512252909059141729616136009378070788511344165660652645992833258619837818973297557140138514113490073409759492687435156223278670627075712784618080060786635212085993936549185093496028982673291479640558925243781290229702396136320800770697582637569743650773628958137690133601588208901991341272672427334275264177102496453052415853127428437941809343984719507484165359836384208780492508079015352036985948695885370908653287558534810836903973867470619953279525489160110958530776612859714300195306195887393301249996297113695092807515322831059241073094371612122044819984353613339759519503414555831305960175685310127580688885802010122784986656796612849783216185262810230439030798030363440547578270555385858135052792924334338128069599844362937040125217986330275000295392966226169399313659701230121454886017268523298695300717981303056131583957732205854944306048593240800859572955394721199453333874954001494254650438648504221620285445291654877213400830298299222801284317240623147388000493716887892155499788052134396943678635811941479953032359113433402722775919252239064014497136584185359493042962996000794905430084760525073566220474271239447712691014166064496804361134060117313663090103880308583733443044112382414702144065633958610314448402876443783192996663496542736873698480183331960928622581221395628305761379702262029966301348891850097582688604990231844729221719961020022651496375334503072653184324157464419814435047684024409078009327909461619081825844276356038819803172968710853746525621102460130112285629377161071085248525056197096822314316164751056619384885201539748559025660304597093746736486868479403908421806257082516956814547520866137038686507358705119594659259745022115674799761819451683271999654553043575091263793557990373259126317164148560862930029917200909784059464447118290533678274603139762107484468163549788862009400001781703859012400854596928861043701734814459716332195840828178459543840321851917418677780598214332334643224802220025476913566036399444984219876604382451814328221004312357177079547305077313066380357755866830163424676521430888727567947388716894719028658577250708954773357675697939051235105624068422407811549144091559704670086207769408363320073425056098596571625713050078941202087988483424116814982509301565765483978162564560556016283335671476671181703846077308306280162163539367024841055253860301426721533058181072794511589895792305237672651260977879083422202871152937857919247635690199794338048005660659984734520197335395015869362268009340928019020029491914214879071867706080213216432337154473812387170664348150354997832993860773249195960797968390684436601271490645586256058534861191821429013331970392334816692122572065674045610278944211475882762702055541843156755220373234286755806853147904845839328042058763820672974568806699340765207152054689188129014318949955426542064355982315876869055968310960926859068912705030274388828904125928152306472220921466667389900423615987619145396312268108917270499690146566942128501493368466004609035322051126247435612616019059655705279961220697396283312240874475670579842645881162038933841482671357446123178164515099400615714182208781354538653304212242924575285125742351810340174588032398875513473961288814197590462203614170034285369629883893162291764906912574036784541829026726399371230021412323395831708184375575190177139564326991503069730372343900767766955435461620814744292255775113038066503274837755040824031072860012802465233481629639807850922383579764521994522779825923141265253408458050082489535037885313638912176490344005146000483877061622594548708355643161872554846236346553824792811692937583834613295507224177554264370852820153700871027072528572878843897391841516912425166600346170594535197482206151748578308320694214254522318549840675475031569301940242980885062539598628458237766504000471354819046285024005656017838671560418475715695136114326929300270966696097771158089758644338181123462422960797830638232033779755223783657219005842447648613412331843694207981809666925524877093793220355601966531858315522095895215098534883840349232500188186046314007616975363019317718689894415001229409201483895231371654815101401058533321119316707875742846403574153909352753702408917963446758583758735827631958509935133456560419615455291451678736510758159069010860954002379466147620263630517466784533471655351093291894800360655367024856925821304788539929518678932582939409862821807647453140727732520634704999988799517056354993233111947726120155411311694395180967306134505197575079746300148371251984810327501285445648815074690652513821998558326626095871782921745374611106445601871562198134627748072058994854985248608983510606856811212269717090425297746735202340479115778907056169848824365154336372322665356642397142117505336287491173619953654689398118129082285221867520020299180084156079370261884977051629785893845120442699249117395588777562925054624061360396610232288180812465226923197332341804546463521879399674520017476243008841873447480510587273054848315325560263791269192204533978690776010925780527404257986691203783378237676299836367298156533526220224296813255214909888938551269002649409230912249158044441633575493756876719508012895951758517638805077795823458653857081389381118378724038302613687430448728270792685788631505710125873157969992222636307558113525806373419692957047818525141802492810240112873213916310763382810852757106012254740590798595223385869287496460638374028718781251733154479045781822662366175829573584687419132266035677147016506407900000034290497792895854075413843158966403540770024936228930603128815223456209525745856347904564464016467475254182162431683826758118787922484086794680569704161768159357214090130329575986711894821316010071168448099271001844730766178116508343779902917860069778790073460447858239670692033936527725394794694322926865075601047479733317575126506299030259889306151406560051852859364593204053450812656552317561677320991239522251660997830517635174650190440209237095884841323265037963989391474415417979564823303868147325018019505342473160453132336001363081956040796720164513862320963879360397180049710577452709721774008368115583386640313454024888331535619114639007089368108292862413746271908079975636267461158943218651582642986918415684575603448930546499094996750859828786358746973455331173721278019105268702667472896091006410261581817034909887432328237916708812667015095752061650734772567045294357846497976086885266756968393023664760288637082028242373624235255210885281273711453614607577743080776230575715167885146554132968507174575168089648658330045237230839607911853277751433351326403065825806091270033251495090676181297818182447725851964721115817078123994791293614602431264068739145532354360099447704263709840086033016856841939018670130146177135945215197269343549090895364842523246336708621129313085904125646720248464262156814503011715298544326961224198329633843359411009552360843724685290140630167585553715595924986188140875776667517902950788713857029425432599843306661024148475932232411431399857938142772173842199957064682665477931835678741165953841869433610362718033511391256522206646888488648058393077021028748098230869563699231767417323696802364591318500384478366106046224751296291681415096428520324588693286259214786783402080883730036891916697088825481118898177176641023071222807435283175276636044595970873447828202807770665125102859931205151107826471813213053179321005891150564364090752600126527651030121686054972851598832965096540499497437661162033619310132043344055432087697306220534051492653188667810309670628034027646277430851230745199593152938506243960593666596916477884641485923140559889793923930877581883709473258010922209536632012368448430908713593030489828673905998801521737161975603800790008207496422869536614445752310512047349219246856204433720479890554410263883549686260445978552172384045024067098229400226613123395830436690325456348739825198773322176595502309197259102564207825275443710982021463534182605905559987755895574879168271230885664975452290872190217502569973333292936850126815546863460576174281713207705655355087772119567289185023669085279300693897384876627837559303432560601152859360691804730213962527025883323286943773296196084909281871750916195295920816117526500048615759333092619578031994269969797270411724222716597239589069313586061479234251798250926384854131110722161651713283434330269295127800556238193052649629492427438568183867445210006609539205939916901502463727983486661425639743778531458340179801908343116650771574496832394887046618974218879529471834344585622895535089364186877254899275563399113223145287019060029373852201926269032466711129552393316735383245813399253962672970174980609842263993816471412469074396674029779379301615485692797540813673999918480833369999498036081090485859529578462055756817477889777534530604796347423919259342482983758980230343214454332003306604990669605147395780256580825320263815305855607837425861377550028895364772946333698612555962407652952345669522399550346833916086322795517789171292967266546783183833982088912493041968726290220487673570505947694516055088220135864862467688729332719082364311088943139579144038819384141362979259381715342241830607463407310638138511155137730655146245166630566339848252714678465044776878372252719081202353125039398447009342878063949956403946221924389014364639311011440420597500002638324496155276711056991664259325613774651170682964265740764674292550409744056529993298217817664616283424824961244683090728959357888369032023671114429879102861487552633409355583714967227175704275759447696623909762466557436946559460068192152237519570295128353799612120697525497067713398104870199936042371328023395270497708131947044896636353214331458706876372152049767736742874121698838186989576551052109578751157473443289842010448804300075710016713853678458836708664722483029834878700840627389907003595751140223010138965535349053135969494150218654342319516292539059385290579108041683414714524704367443758905056237984056227796741351457903581044156225673693026269259162945842319306834925819036436974781725754302189459212878324181535725734696042800661173398612645835507645850306529557544001530863423969413688197848878775014484944324527635616269227549584157348882251802878251045256965136731298498019612240169089386566572489198617935561659998617621334960553693323072879144068907555625989982266484426434103192181122990874580555911873373740977827975421449482718299873133335088934257155862067703721535667023803026860478172868758956883595888705072723994532514805666892537604773188247995442511620282889935229299502640875028716413354028592677451641045569957169951033155331638680031271696693641255232822244603000860895427183512010317420964609071953101843607280514708322827951697053781242950848451785557326817470196143907988451919684318479761150735604288834795843281852150709407191917793237152536029556189111522866836040806066101505443727547989587539060897488357951813253919865671176000037137332327721315982690841592706854324218427326166220533030820207034252089362465312438107377206495687938336806099263634794864021900404294762248033712397724714900833156775480753607013126127187658558509742444700141819964173644391402880327125336344639156835371519310370415137606847477843351033726621277886890900192958184097785016635422191799590172096008611689762848176521656250549138526249261312660532295295697539269488394096965085907451329251342432048851280008722731003423750276801049308607667805027819530328193921099325150724826893279106879765338644672414920510172475376622734845711146018831241401234063788821881972740171770245961495239344712521548029534753974112125157571269158746658560176930723698579025761790012035416053609230987641466612754455527451821176484520744147329693984454230981635730634009593742700098117747712884267758230952495050662403241436402642162968011413873762015832346658959290005907156507271404522664459808340049188149608622871205150924077096373227171703866888181420560644054496739127403558077008808812512600621001469958455792847978766271534390413338952181828154751207217458601182384467708868328552408158737024046725181938799166215321769112594223225697894573644617976039057407754180269524914476730184360920137055769408973628161133392693700001883720640566824218386464327228695784493977888678459628763451654405235291976456113001882285013694305987271043199591643577436351194200498535772102694350258390012119818540860206340407196072664129592671452000483505924609818246513763963657548838542070579475308806174931502253591192218341138577574299206944726355197330292852225529828732999661748474928380861872267150229337580349089061779723075475029809021717982749417164494754734747973517953178597357340964582443358605301243467373882485350674594609925924359851332551319079797175150296905685162358877984874089710040237840852697095623318687592066258803451408321484519583067025494690490261703914839145143039157298185806347826623623358644866916160886349695141299906776178119053567568824061835802792447359644801774648171308689125441678072939160249000175075788382126246594814792029301455334698994561336108580101036739046379083674750450484386994098312482274386074514225578408961955806210007793036068158200512192167216268277617204308181385581764996797814536496702155687873475420876655165325531419083675811036998529045116150168096890640110485203020164092448491964319938759535749035904546831471278215252665247695136850126037844389609414477128186329490612363979151195549055326366848148076198752886528040485759120452523557766383934524552127685579209131062774227071833643524339602467310282084325759103029814119560310174392463560224739050769305944711300330763009096140923615499831324714287106485032226093151367452836577257359006341516276429524239312930292730809627041882806782852135962243424532067313026469071991353236681470793235315320066637145032807249259363231441316153350783862168092941356294922652787695042221766503615766406084957444048483258945619923858748241279230708352742638336521643561772242739467923470879965805514766823460052700854236530970131499145017228187351935367708725866756718719446821346350793669998800058622610064806569979895924279443854989282943080857036270142098513389801758635870843003808677230920876643586401278249449619114835801669494892473794147070404037024712298476922084709279254879717343222908685451718575940919277949220125167339492687781436036520272582915160960594041489835704520890572258701272374469663193016707311182509681693535606381774086497568124571315059762510337125370588247733138402945515874392817483511852392028343558533772547401108823160232763458509027398664369855040690091087545678112247742997465784028527070775846280319066917153069033096168201253452770442497436703238715346542913158109865793796974566316234883500309740289912439206884248235592894922811812170718884475795975160650873242158863310152985918164991269878387310719575910347464733878170270507534520024691732046220606136248814968428304815086483283257483167399229249192777546323136176485391162165184387887225815463489598452521502517946980760044151870305801517620504050312186348390015568984697563732774009576223536791260272394113640321458375884181509236675730911932467092950701942916927279681769348351480602488753294973769161195894470038174200979173184401407471752744676831464963043926017949088538796551854641594592066159325749663484588259062553317168462565265674734182561471674961036011178138633701449254325888992975257546874570670625053908487160726139866548758045013487274451854780737226965665996984894453811364899297970162316858617935161100050108252018138926559294049195034397529902392206717487651512791691035804275816254894409330958396791436492608660283760660252469388769312985868497547745923788244802352990787930572562558208005344056379546382392745915208608541446677122614701119275604382635277283782064555431353066798259700492141733059916730235157671336237051737902198662558568546378865644302941868133181523575580995830291282464249770120853392240686143973531081380759247940177089833338746840834237322250925890710796097331328167590123922340370907644584558236127825022620931454866726526203898853294838370058434732513320659304417788687074427527881870800273700145980751918568510787380857722118454811134593246598165811163721859395480929144048143489842556059531190163041639032809764747934418575326252374190104692746440597256787747908644478012771441280027459203888104905735955709308700350515936033105867306293472456139110015471633324115874109253876331226370092881052664467526416570577031530001115954241214448089369503707267483301985220664752471504065298408613155071642833925230467752977766615167196676970858459618371370665260108187276220456693370174665881792899914124238903940676249262849744197585665263166143482697538582553707675059133218440390777396844548313840238715947824983312545226043696121731556950058968089214694297524011467319203614818527955739398972597247578821109564083114801122479865274840925115446192454675069607794216850204371157076883951840224317120380417491450929129743825620661622766421000389442852795470602402901075607053183452165384681143364791563791954487406503588942477550897622940688000968637255111863218057119978665856934778333061365620798226569590816785847307696981600961642922735150592141323679301980285020751791264107626210351800647931580749239913627184807349638834351646727883906061658845072588524322022187156968753965852371389536347594241492112257392241916968048162919926400047777986931369050370605833556398383544767053430564371220035311173318637931476811958066165682200524785121672251266825337757537785916978887176627756702225227749166249186242690421099647963998460175829607313559474080049236190500242049820288839624362121256933896700631860056687703402371334000370879096729572495415845811429792400127820383131150653348819070780714119691105225107551889106439853822151795017879019070940132842719366848589546558848620383790412543226697346159136680509502736757203130071796085359508328118161644526680605292792245640342674918937113956184451673489029807507207610779251577846673252537069454645127051698892702068897572311424709936260070064835552177159987052189166528013963087644598182115382566046870322306506466663203402047534629336516790706316384606179624143374315122471502274192629780166825723468016720404726379139216375026582177835990488170775009469853761925745751914133726872798008952281261243092533744760396739317176386967753253335800206931278683883880382250388786086443910434800145450010452236722154660602518911570409461723439078494784428772030204899000915015934401467290722596147614624573583268912602638387218876021495960523956808222281550929130654098589329588041445527419286953553976873195036328113494220889307303584390339677864352231611632781457290082381924722144076431367836921813375838378733163546404878586636720497052207752336404283299701655528005188338077053860748343705139659939413027907433912872357927308319801000711044572851065077164273830957917448506312492250436629359278057512771997868252257582340694954145903923759491147951384042060034984266331805450311430530294415609378531365415484771888337174320641388101408482608082695870294894797223941429954481905850349124908334746927995058843420474773716356094411712936906750392186833305784106320283807183563654559645470127378706065607587695227274688979345421878769026741802793430996400323855736760832644588677649789490630105738862300827094709488803419719232839815345616085800045890170776958669848148301581684315140068252210042279990903098882416424737555394450959807769348160805392085315574689458413232139426112773059210880031353181059366202011497941560109329802999607732009030525548115313203821070590588876137677254828110158004997556463436089050102063307356458172670204010651291799679166819514473918403381044280103450746150344928744672017064128578554332882187436088677314949814891523044336607541702091366632936842326931049966748106360955241989570242504751644542046619869122896405436367141602300253170815035415395007219270138293176053927417734989500745808850452843753153594216223817450921828105221339604988022287822200842486209889407783247112350118070324441174478998298914479789782916306475106788474822530873094070390608326158854314742068945493178397731746113501885167182355300929733076027638317073300464926510787334433592287448867478225851497848667710568686776873994843688374295020108135772913155539848164906334800428211567094463895565249358453188402443176954556116600859665745430104886486066176526325263084182875660066244300446162598336437969360779824855141701547075151733367706172532286199745761785309742739748674017187900322364646820316407330428245809007860072484150928626001538713290172227221998186787170235772399468831571242889033550097864051396554191125536792530401219877904344522879479588156953463739973877643246788262695188998057156478617313692783473177412700347205161225281124470386051256597779195983101454376717431498389665238710192810552774797119290033410511264024353803192296623350143310931556492625876557687777218217646134415325585112405632275706967902210817733491815019632563019345240707186571632682272485222028488622633903441602842485079588097592240536639265351984705583343837225090598607581750098464211772366404538732947066579333661285085077644667464300499999238104399803120223995243050915545386186209310555324786960994505198151341350470431458307212753479354503941362135629812594502196530260871950365933018387209267796597532862875003046561225452141169343176814798482111779665318885398725917710364846510918482917248669787946327443299420396082452405169055969989946825184286478131330883155956998917912296149951181049232926682062425328196663447556499700629590374558245522016704371029780337958299477757819623476855778229893601074776705601019754184194006643558055293189407540331255452756555659049083163796537187313183432166402342960450879418191721568028066659487757516559941724182416651200229207783909161439865974381748489262267721593199012653594668605241787180122558666634696667509645881905731154517834389537555394688080314247892797299977091703121574877320885838513754264329123967498333871676236872752452729003866188032812015488895417022212280554476073968048418521270672951731045968025319525768331969425415477081696563021193264039559709898503041053772402951901851572905199880869712940391760658878881491181032817173756936451396382457329181397756489256736573308981680683086709394955526155077846591075849633686741451533486738386700170500922677704120076167921610737231853521211181646448012792555919961491255837056894283391048203146872728594243524098614113649721257033268001584659602285220771866217965542186582875446448431674302504105203557765559982281138899357383487107481494812149672624406045763725967961213567649432474078078408517393975235030658279276145543464631659370013835378176843275664786358508522139974714048644807580034598728977123528698315253503147721348659657509802125226503534841037807202023866147861309421809259540632113290662736469447372610006127363410314017220142839703752059917483276275974455613616333856664829747355168669528380418289634985213253593672884400055695125605429076332809075249777495705252407433288537483663267001184699512002485238125036995729755233391571388575843709064234032801112655566374836730441685655827168742892500413538438114666876636577192608416378670048824016184380353284786268754864259289258914440581889257550806523041699487253609545880394405438549959196021438084081760878204928766438033544863367786114120728492132588893588773018716350085829722831611679119497578765172631345049582858551227919202851916483858217973685440070799330992253346523398891087809536023019352279523443292181140245812795852637664367307083557849399788434992848912970021361755008409427096430211470233746106472463800779640006163164375318769382335576360595541013056533807406138573347341002861184140678885341509385165798670086226222689043853340484720524903494470944753828571817202526260448171152991875142921373195673541318581145367606549761537934278955486319979919202474202024515807482908321382624419644826936528140097874817751866782724560858173227626617866867345643231719717480330495979430504333478240113855069656957466858381535132662697523391040943615540300443385194075013064961980242464501873701835127418051953818488631684392999324931155922481455237352752244076485441206972771605821802958073735068217878984505090844107560086910807719165887829916828386539304142683837014363851020657474188653155948471075110389638146362097277001734800205239007546984984465076963994911546387239191918867574744365715513804434303732175258155668565013251128060974712596735788671205648797209208917105739260869859500083609512948364676512008642708205113197410109337503534983668043875491921209755096065109657992559650313905869187921245546780150576516705737321198585737660921708946437232458096173353826920824353015685612511087525063439580867243825194251939213096853672965046987346401892813366304462871530804601200915186801364405733507189023253073161118748348890157124296879170242232626314714255659206165627167710411301025931364303694473565740068601997192456247944501175517868797409796628463968062947437221854194929961911960680494571070830968535017910178473428958375341593383899728178731812316503391810506060298895312911875899427956390308419216254161925918247390476127797492865654706110556726620200510028210343601579775883390408965087768782335465827319166969277315498616480244919330146679268765318276203464486619149167866163064144189094343046660287744729410009160676980662968184181580210040741548653999694670756903691601433700550034980581263455721008780367616682607002218639261772206392536962719659789629882663409319411287058781357392082052512176084180872983360610686510019528253938117196950630915776021828481416167989747729771229127593707145269310251504656216158569045515073954942345513817937487245724726174724803988537636438072979391752101908426482648529079755451790067176206254885525038008260388019574699606300641731059743870673369450517194358699508015073995660359857998553948822135078643195642307148261745356642213037069459841010064297543641205747509210572351201238436292320829244286552610376471210455468279316077677409664458816489642619800622292750332696419284462713639069635552322555514448729339579117749740207887294352145989946933012504933776668196715506720736297945705811326225321219966376612579537116752862926120826448224354627479317078508924359401518575392882061340407284336770298197265494047643567639356834269959381141034675231000826013771057400340273070966323639886531484391544104421871086671067027691135160778780725103910420238000364222426096495010999918568453507029730124968065825537692927772139602529455638445238558545108085776686807726295727670549308225504097882323352325423267971134700417779132714058560332658194781892649484024427478598913096158123377127780496303297586689391192541372743538712862879128030784050791674861073245986990443048662562082382037593188228079047797581961883987972620401376631751286449533879854509939296652543139948728438780709436312576620040864957387389365249994085276420693353226925852498609512311865829486217109217026464284877384722205652029767487335520679056936253873651448211527240899249925628455608065439692802447322631678454504536246907327477481064523262571075636684654706252808521887176457709493337844249904657105119625118769245286086823059215136247284062715889470851294489352616816959162348789391989023716780235206648635193196167096251880983999039699680363130493743155193544586485902425998363637248355343448039538095776033406892269711885600158736192351587225366000177908273376493592170442840016226921001101068722516967788132425317986164493830781308396783982563822728279729403768652451017311024004115466829572526379948398681557742949935147597001252473015565508998301513350292056521881028123476018355105457830528633025324316585630208109029270443798552113742636426616232028526519883613923315982378553818423552158322721645027645239618730499391773285499443769860376574126987512351143831277535136291779291457181319798308955670373254646634483218474595843537230712046186221237008846030451382112159765007981640886805214679175900136260799683531986922477040088637840147769298429998396285752349817476757245901843261340676881089368494885055308127372750728234347145013850866211713921443700268253941624966213172660321408448050277691465482505624376455560355214523779788453638324870185825566459285139091443718394607478556468135892446472739696890105152179583291096676740816193871839795607539441873156934459278180852108569232728140648302092719931114226983047951827223967042970626334625189009554702900398803033059865985382418813887818721461195620753070539056485891161518245889862315631498679373283717147735910435717468950563333098955811889188686784984135474857307887962218633823602147592122905530953102927408853937491356181865325577505817332596859359151090251989784624952655905345901433045856624505352884499350869183177538806191509372340686862317109132928367182562975613143844746349453416527702627021184789574090579637010605949081125187026068739316321188969541291183056660705444343024024252775598896989608520536238098180779194887661993812584638203337563092352252796834843756214614425504855575216373659249790586965307336418742560143910313760872122293686240463215807213630596457560478748831798904545637702244824597206002876146979287868997743325056461657765513984143559920499471528186830455972783395070311938833868468291262777394360202471729057100541212917588567126332969404379958702692880740656810385065814085922996087582026017813530642133449266717124180555420651495322808764045785622120501046444127946355135014232221196561638040733262571860857503216580796997981483506754386037056765064726551537699633034950013497274439147805238964222706065077888471453232555703054788272165171024856356183889992903171857081981551936692578912258824835618981110696707591730717443031436758147971165626889049856358131537935618844272102720891735493335806333308569466722976772609311887651857693576556037939997039793916958314740279685349210537603989879687910407167484107203357502964975775023507667622194595840923621604374332105971249288058233586702536576908082705935176056084587962589897213733984264918998294957943343270699296140018971797569439617689414541189616642639007156893958086943732933780523275183344440442996352073988564580249008546202811830067326872389365142189064194784964050154099599707550083913678179067495137868057095775089141575847210874631633931931104661292591458514506292802907399861379229274081033330060557295742993754996624207339420913425687746413655696655544006249055053143147968718612098362533408767598676567626772951322099850267887181224478654041990255620022349749456602782239015069971679150309271981525733771293649042995745010786727777527425558250168738664062276362038279411354528028346646771017682324152942762778582367456364912065294937200446421403066588394001098721320847199681413563626676031477639514390938101139465122941066683226449128070551245126085001800963733640097331043199028900597815117208492185821799376812051163862242102291476371633552496755998436126860663833529431683296350662916020510588304388274486039606735047200445154901682552773953382450339501798141549276271612747714977261475840218541492757652389324765316910630873690246916609195332598739899611205374930612812667650457622714610116856431165866717381987741153893694728616348823801858646178028177766991586779489768988863986144908261911486977619496181278602943739855938426002952268114012752553427162618167574832235373376799577355047891512869863403727704494940203521257035026282881531890045327890653954774637892659034304966994542365345955994870444184487298131653983141693954685041731489676062255815047470198304404860433826908851838066825399313030585359791088033957740828126235533238610035810847296922371764793910057889346999213422250283794985307385519908412018162003268961386896295393466219563915820690952296677369088884696432374014565594419519316844351073113629057907888458242562094203171590300867850664789558141955144438472756874472001622515764467595522571449680902377636059690469683794748091668586984965394565144102333360792184500450487794013962482331864801714216208125192316352146692003077306782905765541716516421011632815888943371476987735790074074070957184394937253492150922519174105303570499307152818571888010023103854196621352446380838574238577206296246592229427962758374605160110144021100499030409859907753514366652055425991564049305446756615169487712391705100811023305656500099936637038383474994095492021905555532475226265476887973204332615195467194064153113473425126255958280867791848214768769671065430338691261664256041750077342540828962058281877166912780440512787536772231928042521957692430487856702212426632196215977727455391548703654469047621142221340195801557451982873851708362049816589332686657635308888749078007125258062804674727876892639747832273822435080915051702400790844036745575386082467199150003562023811161665652682201169045002579554957932935681532816276758936687677290514016679140649576698002190465516608550540718314128640461722592610478690949085416978455138071547436594490098237599422951171264698002208638359044745865099044807112598851736494905035218111349075294469534033541864449583516365076422201070602567514645013380102826721452148198017388054256217523456712236960070394705647232997649478910316333889455322710245122105622954126742420853661755738567824981916807151515252497838505224975946498031093529000310108128136755287074825967253441928655233330380946620704335000474125961572817937010089871774028497473251211304493921839235124087495992237574433109475129156284284025813728160494045826693540494076714657860795595887483664324265208389340389137268560498928696794754337559685008719400433110304016371998363538032634819088194229040014410941774262625011506544498843467216581799025143659116342539435366079764853093479048463577899918947953523688269033498865896028373531202275024186635215416675585174238385419546273596340703370474057665369352013578356986261146143417147992974301707308147230080314466445700067263064735028897187727733210088371840817806671361761423861955396584673310048664100145149854136895153776599152664032216070479473842963720110970375847450594092792173236437188066306752601557886112001400060270288594214054976020655061525377840321208403393753982886603361780139285115045341254318563312504684763230375055154101910058014469060074472565892549238783516619716789743748394352582708763996981735686653185933471264817283265571814883686726819069341665982174346286940203920102190603774048951178705714771281916546852387881061631177539068834561380438852629579836586399450272395133123327733455447186743224611105636289117583548543582662554582834882715916689939670491367523372542515264517166438839749204300325580242530844251714087439562180569022057927910521724848139629184814464831064290987426895037335249138958605808020695554130791705189778377975366602364546117513753131072339494911078901263361767469358068094663837392363893050252998528731049188572602518324001668087259933353843756808909185316145472113047642544999440918096105856195970711208774353577521408504613915715641280563912765357937751101038535635132303873631504150895790125481054131433644814429414154669194993810496599134618213928888996939748559767578220660827126350469134801374080923830906043174368225400936006292538545028407430996021767328382188384139946364124104009260455095597756694126258802668912669078193024966400969372007002264555671127113116152399356720007253240417898548890985591505710742085341821275907174393706865125104542430249396928075917838812525998322769569895944936616569285807707442373844900059433849153110996270457114878812444173392594804004258859234468324815001787842773149204852867542479104421548061442604149270926681330146546272057779112860987589495068928187055620215754465252064815399877052293753786723239583532196525603573878383659823316093603099173056108358075348310626341561614688531713572736142296321593940544492710049222777230029403881780845227194284475043345391754550978528857920054959635065845289601075000445985149161307898481820346447675978365267077542455965611806522301824949840938593858786265875577348143597271452990929395988292226210442145163990457336323389514117094817813314162282055552262728887784486481007527051653071372793547980932268706096768959904032767373504907681063410871696205350773112133765791297422770108072689718122876062863794406838422683464008258393799323054608555782929896065665996860642931188250153111705559624214793829826539997900283154000186668217637560234542310749304650864414176814358578431987948589546921711768819074797265988611107974215794340679979486113102210503920297489436004496046106044858792687663282087738537451135881234009767535956029193257484040051569798723814469122846885990553140941993094702312409828597364270944649242453533961611205693211286407880801465300033704837673391371113958786147245750421081576779762227001020870404116353154980725204336237124233538640663163712328492107456186948457681053162908257354468284506572362609292261647431234322243955880931612606149518532107522586664090971040807379361912835031215721499994165870775902483664339524654366984462942134338793280118087257038946719036870433383433336119358405412625280422948349663921023717554500000039221522306283272640025906342310252354756460974439160713006978624670076462442461512785074092250268852163002812996971473815105507343052975109818117991353168704357939325410918731924651158347700624989183763477042901604699616355844303586815804388740158645293006346200643807029199864842586477470275935521869031763332800393450277357071562019989363985960682196544752596905176936081460496528001941829966432194168498372662897826917742121601005105894138194079987370823478479692679108891767427083862856000764744337115607959436125722152800870627180827792913585703240766954635431502103865192032369120325807739141599640100483122881843929755536455832017047061454246916817561037677596677770843897610393159334471133367266301580285193339699658256078694844608293669831208551290158517719377182242001958328468925353760440949049434107213272489201601178113007626715215113831761750733444392133017674934699648288834813700707836609801967485250374815886327360689540860155674091720313534848234709003079050220675017728205546685459956632491743670527337107384826913381225053508338912249486438892115662630802098939860001746571844099288702702759692990773076269070174121729451494641067747151492093871365608552250067682621087186031704022186895943084426129268323760890609645504357809794431477658770711001587770853028470678793139149709698787224412347862507356291723959821879044528290157504761354476913807058168830191258694472517568140371830735578355516553913993796206660655755306597940013484493002917972601906659839130306710550416751083070411373286712557953551851409923030158595951303811778077479921436759314533274586060973966570933980139034821675698174045097165221648384807772559253654379349906392306424304920426263052854951273250567115990100781281797585662916092526278521178046067580416068070288024514064965205123249722779756807964383333961398350914249644289636279561051901528996649639789302286975301144167642586618993762322867522807018416877505882890964766641409080406689280758696373532278760048834808502277375091135990871512440164466028046218766298713823924106548745807459809401272800493835942641778068293426000810870087588173906941475134014863864163010651173605674115142713177902930550701788626748430670073086058801492239384072492375906383956264716830872795470528703989274734668878750969629770087984081678309382875938998173842924804003293401620408986186539690869646954356500829862346668654298400170025875551310083956627634437658673935032729557615032359840530753622651342911887556421276966939550019273902299872422331126555115546206022229089915569163964707469454744857048827599250705208092210716368632401948467813239903964404483108456887206524177228800191431230980508806327348792231922594578733600819472313219460062549907993723559652133998334590110348256560964343820201240454499961622381930323019005689669621225887319245828679597227446608038861813407332112412578682798627965842447527214101148535561497670460112852007638534411949920434560814291151399005131031562977232404765999360998603765533168837550137915396603166415238462959455633005519263231691625123218974326296742479417818807259737243109862372640668699939523007605703645243043680058390166818518233657005673171128475829677229305607012520157397894837574934411022772781332308426849057108040441594649016414157584246256025546233112311930593739704723148206394403597828260515961973913708889963169096658619373260413922760631141197209275752651300285522251312686295323501072688447445576451098250784554337139677611959515858198440855203524231892277051907945124977605836038995490485643550653487317840268441496241454006359973915653708545687045149672372829177956569498850717820493652677351716005908718200166576641387123837733252462562355885035006971456775084938148241749380440342066100211632630238568609857514226125156664999676358786711847957528762104504378951684408790551865335328566393498281819953729409325139997126127511023800480670942274507444151947783906048024570705951213329794735271929443239466403537500610610752813211646786705994858630643221947350436059929368734599731840817711882244305648821208230547423904246187979293219166588697634307784809405040480372289301475919350179043922709914604527232886545534140734100996194378845730826481676029047577205738189877635112852279337531753402169394393608301740612788519109498917725724048455952609473670384400414657994161928493716365963111720490167035706906290511272470023440158473048820996910229034210061667611848183517267610028958723719177507459863733683601650875678101395817325506447086939081710028646204684524278706252882747986152241880082650752203191444511465330298502482187493771520425572220896613368450712656848016410107706633853861170105316633066190218641412337919079325232209081961283114461937689121905107983421640892909911102331219211649914751425385566227486464228964406327816854062333030903723483240790362541408254447966066107689663788058509507904624421011971444912816020526419498198130126097579473727815130422867014993940374413588181253693406299695911742689424583159274945641607716810767426180375937178031488142123511635422802017640970754169394015886357120947586079542225338368865178507660045824580796183640735141016118753486184063709709571265497800507169774935860810386288062825781047492195031949944377070066450609977379922684999094825827930945980871775847657852483512550089520589996786214130385556769942914827066236815668064197444313902655738653724755976369398269920434559428302291930999947735215769038074273746102325090244366620726543869733918294890239292566790185322244344292420762887031702375982537333922732022527419406859244783128689012929867389187398201759096583913185931680786487118907885661441258507406384968417662489815066359182367871827975631559154160145482175914708780452328808642864045020611502821135094241362062911301466822023439870449844498359246758235149183456653088403133884789579047719023645287917457426097798765438966758363884388398808838546831535103356610260521510078225441249184041859846415702549756582733340769187067352817032132913064942470904956454395308371625666140726353789495888577047716531822668266094625751330367285536890337787865652010442779907648862957403183610095181357104522362221916948115090048143935088284625962814957615217210344909575352569207591670826505222910438240706838635434603184711325727261281498921632185198409928473497826222540046963304439670638815817154119672977101552230843780675684748524391325591312322911171622913754503322392506585862819519570263631366228575830511267796221152138026942873623766600498103427498379116973061675281673519447519305197695559146991532952218250677592817246588845778639490429148881957767823063888053340262695383590795494747664900174534555195066476599550843275221895453984707768499131004435230984199828666305593351693925980093873802205859978738121740353661434667412117039250478250111685040627022674080360116532819471199653161098465960108071861109115080288463790779590107225941251753250853567489798195554202168866056121636135784812756514627466156277846668699051704219681898622772933676634555029082425307819500391394789178263411250616035886557909169412555386690440192663985771950083810985270138192826365587312928828476922848413235567468128674736766646172972304391388586196492943097767199421562409342460447325977696589995072850999540991082449030590126879734191213089164285365002165991802298120605833793926078056817698199379764565932224034291901921511605195306099638325854750140552210710622947506522343982774302598361522212361537962098686449788871209993086644402442352584221545189475525793435482817730632018230196687024554889429364678232187000251681511300588797707463712464867642580417109648282370737184137272926038886951711878773243255773106934926103568462365726854224031665704888784518666485718951274020823899074295397860883710432378861373620880438762792761773683078036461626292794259623818969985839174076157106664704805955845690213735330821034836111670504947344720543909818919199776483104843238726424248390365624711702189746547165563938213793797165907225156873124226172176674811577371245116866245137436731302841963708522022528661145684729727650139554561236572257505619822246237423965453339884063748497958988851016421066617586206480765700320593377100957789689039453874856367842900093422136754584795690094642724384706560517610404275204207529844954606438843058119894467854921865511313523328761647090168122005411132494139813212502553958588407076175040232823796058010038273065095887259649867990190781248167310551924466381424162710262552273584499273424322602255582269921616457156742854980742284233640729653129979498286189587099343546532014016708897125021925501887828372222563997006679073265329712543747813636314903533237872988729166215360627721313049579559566169683844603802785035988110556510278913145836747966345538104041358311954112456518792624522440916687425204337275050679358553345749366626738992153743612477348669890836369980947910262046974765045240035764476260542314432699845310989946399028579477687471085312735570714994119212334214312762003801284282723336899374478735283993171789722496415216889961009120493954972825436830462478886601801706707220907522548536315871112767778388133253358721897895362558387440795474117292572349612460394123266388052397300527396298577737022060663126385154425781430932358014835828419642504757916487603270125714694989254283284336607330388615429852544460037377376975674258387342472256956276814042270642537285915245382874894467547749659216314466106211691208273856381300696699081145882957888658129178454963357345690889905783550769865485969691234353321047272372745853049720808173993634102821941803204301668115752563654521129029711986100318599345999140162967247046890793279771492946263073122823019598674314699664867709756082423197909949102955822142366379602278057123769939222486959902431633635988346875705432026083610250132609721548130836559133236801285180870461965289201101003165801585950159954698279146402048141623376620307611047990978634921879418768434408771755173322619322838665065275442581846549987409676713492254415599802420457981363392790838840078883570211435301124705335934587924627321995381944554436899013137236284102688330722378529239781974614890976591738955826310167602231834702322287362086797212394082356499541563761853456204334189373833835073972537170495450873557765023268187678270680979501107175905462166392835881481091535949080311881750158985727544283493675473858751771430505952588886695452958761461332639423822270539672572994887905020290363829300753730084644022380138550189787830061511540051218842414101781806412223685137623061274835462147171837650951038483938192264370589613288470737841318328607398679324370988633704617954365910883543068022874036046867010151714521155711245175003928378951632567913150601437332860135001058894778059885672408918810356226969565492188789107913495394203151576344625160667040280844061343014767490641589358356215097565167198886618028234654058905801859443553296084039026385462990653878185391447637516589490803609771818445591846809953790368887925985773509868096405681557547373291044407009431944509633241140038015166532272804853226175545088483049439518978992790134255035535502695038509312418893640961135790669373465527209075485796214879799674649971297335581310712245866493445698514114768079169668399521150171851682788914598256048100055607078033253111408041666830586714369100069158463709919267884867583443959721721335059862221534118731981435447342324279405780112414189585266174448641782952684623559900837721029063984439193517612705475285339615603335908954677957168821536377411951990170125862096324408576128164389225093339622601626547659276501535179793731263751004309219067047333390451609052689075212539416642442910328017175409225432169442034295708728982835034896975191758713202747750660190922047956376259423047149835782690130606080808072365140777583306622711156687649237380569092396531992616557655598298572643647544211177100948801366514857013996158376999186384077189768008323500765419378316338418138054746640231734176010846895201274110709890653563543962438898315290336500635385542351955854745112325418113921261892683209927640316817650105765629832319722808464322054248340809263419860294184106940019211140607852438396705631446763232975498382406900695871842085818587593958399578333338877868639533960039452529305340965798072561315786476808347867698796374274344478246897430416123675645145552907640584311579158894707174939797839695452336389195540636385497923805971990244445603434255630122452985470340942592700446813151348712498669170433709471838317623350522537783456956097911452699575331365659561537329452765157610377970502543888884088149423203310978165660605144881268467888380141834984069867452199382678677264989585935547989217226996020029620111044566729293604520753979556173804421027216955920903883074900035980698651120473557297871723514994637993228246399840142466636285440372362439752164871460294210625651904211088750105963743526139141378406433396579243020013117867594910083364940652861221746144377938554893128886671734945085653057568221862741413122538817966086758387244370103532651732622222949116105562682208908050349729044169354126215795617082566740706885944689178351256852508082011820547946229763407996494347948265955954558599455003047123663690262395537210640033457641951579585305449637727931750695665990326050535209167404169889262937746835210929228175055106203219282770577697700440851846591671377824032148924518340711376183769532394387044127950524872291909394060124459847727906743725674986570052645074849388495663599535796447537624547727097229037530253474909494128397643078767218728460593003836313850245972045797131003458636886254584109520542105412963209416037735626596042176195671462889588704994289040681320999365640323028084921446175991385179322387231924129257239608178910613731568167320570860645643735558739789695337723294910853578984164854212933013571939885635410544020430012194157783535746574231987978317169836656358898194158351600372324086650950844644403480903816537029830667856943153425915863061633403822851719240799598581014822513237492800505988668004868153254178555213021899056503749832267479817147958447686518783871445455777456511671935178888373252037915613632543673744013064406887045142030710800712667671886073922015504521297390911455284889529484982562268592400909261732523879977803734248684499466172051517676581355507819786238200648726086050574356999228501453999864010102470065241068543638527696652680506454559095126683217001728898136723545750531049747503324792269329031153668148780107308023988820711278416236795109494146375761717931536924308350307564236357705252706140675467713530178570067041124189394364201099459212125214281373734031517895787350080115733239863431420660235519257838406135559498928237522937726772169502815750278299051619738747794083476425189136068873552245427178425197943069958214693923259751040916194132800390767322596138148596521285348308557264697032620346580273821883299915218293475247211736336031266449212332187327512350784687601539932960193968270212513311154634813792261573622183062450991963044016008867670036801330523223710939767819197544601933150094118717262393979952461949270097168847554925486549903540865161661655694055650589545839806380775751206562719619223638515185030232279644936419647892550998082567943838126056401601479124229266677110806476656710092656731141711863925740296130588215188125595898782954733397102732361192874977927400755409330504219732790924388188932985746666593656014507409975703121851013627456902328913678291029388197832143498450859830197919342590900590425045609124581421536287331544374232021061802023617973134717246408575358086574688325610547321886017073945970173529955065127191962005174246055568265180077006368773347137848990428086970406134358301710799939960304821559057174373426367901708246892170563852808292719277377540557832556665470783492443287327264449956865713175864904785354037632537626442139827847841237477454718296736725295370776225782499209639037695613132565780088182655413479250222552403746265306299344271808201229325392304681948105456476911057844608749956635555822788326366339480778181657761228509083942449120871213295363644076295210897861858686315453599887846605907276596689520820126783404016668322794700784660703461988589548025950863505676404488414586220373573703312892586940398147282181075664212453344654777861157028707076786810436538923960719944531686226694535866809912871409804068387910368103213695555997741456766882971584620670665332565620968373706875649793690245770162085214583507467028839885029627627120897767801999903012596487369518845026319282569868589691667087922557637582923275635500740631094627244457029022274142310047990049864281107569400607010067171412233813073688119339051915840970998148204662286194231425914863780716767734764993635453640703017407817885744914481885730371600979510173716155063979154391376731443227368503901621210124254711702856739442943730230100889349866423869872988495182476432594575849324545433362788752750682667895493958260324446208731940353402857579513678299522553885177694248985994460786465496150670529957392880068057036555185586033553923818445190834920941104870021788638533264245388942138982024810500761847130642611546525691118388649832677761094314703307886541089418059146242411973066133386663943364666360509717440824656955531682135049873858585141699178625091400961456350724291939860027906089148815417059747377238105561913258182445201053169663010547721082966014538524896407834681378734176916163285411066295231064253190239738666257731925480780932125645190079202323733264164331460491659028528575375470770227527726658244552308631922715951905104405060054138975278657516204796128119164388849148121097185833455625749942283653001582920997740266752621704873374305579111799540167561645908792284392655189879909023784931670929486774481226062106301658704172940613645789844971982488618594666674247801540536620651159987063259189415854237276085403888191275314294886033835348176866601575890639529435092396893805837627205193021005207389463767802449658124382399545364735557289211281257864348085252461331123985070765514430180401130168143879465943651255954240067270886006636004526595818676136320165052511065817334674591793056840735106747931936286053854849020724570108887040102946413609284004917988842419402349454160832241738533064132400229640217340410815604499797929321684337301082807526829497515794324329327722064324031559224467428280252415340108268987510964052325513952896880456517400175370692591836621809641398834943904026717097448164624848252294871090562414800506954982435362010922792368423535291977582973719023051226627286086490546814590705933707690879312262153199711327523702899020483754851032428657043955709364808302435430118251723054206167584172965850816333894046628852803285186522998221999755166163142812149489394425554229579765038784849273238005451185108872192628705251661406022356183452720750365801281432545508539248310017401105431270523714640845258159763437348282801693390288625235007835784900226670164464221832548928381240885359249045297707309382879988624427935017716377390235865845054951062415422432727101697881657262932362639128210094086184836163862567631875063550187203827324372031933466938926104908026774113897111643633311991689407683326541207693154493404809440827170664010495576781924322270109184329519006775384233693786961987261356351703072177157067470120922529862525680714215948878949680634973769003795256998733999779342410171616125903990270133286031562132600291464657402856343760792206848053421163929990740124143085156070966307356393040632500754855139376549934633276119325102234476768268026226853434419656878962949692768431275901066050357114630705295179507034349519306176756096892025301178392450481404496736511413397073112807433209256122394681558641322857834938245121092281654093454744624543237503229745713269858827707961793165900248078279280423036426002802491518343542867415247320635999392629510218368882933056711474943858848921032386156395780670575263818943373029516118780391380406135307817512839271300826635840362426439976876156145876827218285720528513843387775979953592826785494714128474988801508588828372623891677414048781201485811638747115506956335035266638508201375195805690662312492292583704906152951793798307879444794663814298750529156536802407254090815936368287651069719974316617204823506188695343692209255532456768081439224609215656450442913186143188602904257288706514744998987836351520844164150686671222016950771126385388756304787758555642282244127370717000820486230490402063439132684946696896936394021210174946737511565405641657147498630267382986162538182623711606776720436042844012611135138600608417538236615268096294533631350821799433478022261467335826655159955557355259672174053453713461391098557523699113748247810849535326070018471778289774705659649392187449603538295631285087231824390804173080869250956171183677686357139868756084051186154288490635824801439396134221965583994781866072545310743537846671084310139295486437178606424687597603624503228987097017071880343715508407833613089495341177182059414691761253299155724884090165773222042631671036217545341239225075154606434925361496062585311431119024092779155299960984092631835558669736646363308021035304273307193094265987021753143191927466576658765304813402594327551108243308185376315930372025851677347009231549612185525881363235597487775028171251957396254134000180098516775568416206486195277924592210947952052007413768151261991936378669703614765870339204728375743495766365676159762799559244568590207665551137655693978766882706838367453617620575997965341901729067986211158489117064447642241169320351170247173672512498018495976683887353560570874365701064346731556084185236393474530766866069232474884375379548107879141058138854959230615708222459004775874344724075775589789321383636776808854320271405536154447725996223144857126538783498611442499662898726282857205154426194879383859796273300385874507803230016404570553553117957326003790533350255532536737634907420127196098060031664335165633235588501732622230981019181469655019315116298688419786487042952071294516518714405195375373728933604850683397712859737667527391075490900926738465953472656232220586888071656673146535924572693604301766161169313777024763481398085118701452942362328020317769390658218999870900640539323613826867710014597490283668968337960319156908728223485006986085734787055384139519167456821088923410450710657798514286737091133304784761349974460843989906873380846087600901292978192510159719275596688163876785316301851307610578596417002264704900715689152494000261452399690525009987780334039874319186346969680062656552937146564209342143462174256447216039204909188467613165372568382670064226550043350296950346286269944225804188928178217342397054837506098267715635078193555182791691685524777889516517263276363403761734075785626557133147340796244876301092625113713226426307620069882575360308954687814033303512337690096406253076177603086758917049591758020641594968379466787209410851338388527981891180570718465149825539214188092424937702718939850133127493154131054251851161077516025951898908899398599298041910938405105547326511246999950916834018893250098886054772434020501506943148313596578664799974503724290377058911226909120192212898652188474846476338141534120420517816660215216273089667986594494976049883590346199722261598466896224055718356735008530623681396383824204512594280929897600294687126976564983706208676315284776518728016936963804879819633691901397556278617310684330366114138420408380429338876669132826086628093996390218304295135430081317513013811198875014073616911588479072203570790944002807341353026690636716180482876611019204800708868278657555835744098493142748296615739972178651228081930434391141604763397852291835423270049973692181592457474049035572066200946167490017028117665819343327342063252373681345668148379688337953953067689435372717678145736237352175311085404478489950966713159602033444216632992265037489024587820111481208651160426413389680317817434736261871062679280909070804810965491267500649299340251013302036077140280754544784444972381657347179564462976972972722436916297139735418061026365244295432158237351330708100517034641039514002222903069365567600651560133613349605505564403444764500312922517489849813083080988136141786487359265025482960454819573861337246244108705163591652046770866659774751608840863611951844677964802585782110395869109774950544609207700916927508300947237753362693404821121815279834878049613401522664387492333993186296967585568676821769260213698299213306469207590637154383622907511117131383458103328313956891071105279053316288990087388238570505151859431269438911335595252479858641398216646750040541621911792942202573881237838134525265259288629434268221378438549587664240623378234053815285083049621016319075487199093393550874469573364450691273533034857743541397544325816128999350474730336582197682053066767977211785985844564359578831232354807539645738483090525365293855879162395106972175661224603016957465255393043910240846150757719906028831037148936264346329973312725905609359145444367106711544373348542015014724625864109701147798465853081267233022407869201018302596479145485010171763846826651576349415735414604800482751188044762921199757878643818209660608358783746807961415336409420528384872977559997999764145903779771077642113984012015398698673288560280416980687096984741082529151442223849951824038888527380562062398063938749733114537715711294666227285079888530413618309744977568646591965194929145007525673921259823684936220096604658149918477074678716738922294674773178331594582570563221434041935282802076776152086625573299193945305250671817960937790761035469722482530352620461435781958218670950121402936481919756033875399997682828694730614852790012652041612887558017025868822630666794662746735546944274607696681943843740902301918876398675404361949793954495868646740180117398855013798887540280229111934513556888732766568650686121975642748243049309678845157561255175482771370502229236697137943137996055215114885915716925667750359033451677609960859635996250880389363382706314145203668009833041556980940260146835979992332158502926498321019674037526048455452134999300550667030013611268081203504041388593154916576558418384219050065485423313306656585054784741400386519722338005232408008419509727074117452995851452142733740679441579488855795616809969804209542793951021719046809726449792241521683289551319970387736500391053801130456666076091132102223614370904102716463344770267682304580164462386863056172501159260952419472500076013707925052448093258264095189164075854940503440273068251958185389769297947878135293023190326372780157139871447857342966720541926320797490316221806656222346430144025537455200126147738866646259540804079932287176045696978996363236612230303587780149741830486317685088364549616267699942835176708737655054466692069853363581208515307386315673277649419642509334868514060160080813749216249876833408013313392411024299566268049617630808123764850943151289431304834258514025631331898556909588749728879871834304147134041622154062832819398519614879825034369078136397508893424581808969762453196818326003640634726550432581339254155329834748109533651429768102497002645475186036093518059491143338443244595538905614819157293215852769356023848345942943811966137473633620005014414498115509556790499517222732839509541234752534855171925277278132998760116509010128333121816344807252113000606734614597672152221180727012543063440905266888885606007966292084277073313453304571633282535457471265300042373485099741049135590079117486603783106413781779266559607274755699100246685807666195135351529910390909042940224042348435348886303348815514495545518205325604150718030532132552290720444850411858108246034178993069036008014142939327515217510482871760164201417695547947792858234952281535014730628253334035724138804973325094047261502593925667700169386615594258240240284803522958020466226777148869049020413591139193914932810244620022798314106981531732716123226945706786674755600793984033025099563898953780204148155761265254737234416343238420458628164552837622683630539778838991610949101126817005794063219117057178700153912522514355387520516933339774565147730236581282696069199802307471978672710985704466725623527577865514422244684640086646859336005916814918595853516555536890430771077725384032616292547819741610462046475249390058828302975341991889285010013190610603710109080106488039989987075531475329499583942608224475972879751187121256807832263946533735705148300819752858695173574100214793520295277361639741477090760102201487325015008314404615727888543338037744764602768640022102920462700775678347255906836876815515669448385441994816998507743778445190147813695352963095259609819400530432462737848977062747264276661436216176813623662619187663059976377022122661933248263151996554829306294261758183209554606216653494302227270919219574085977298528915845080651015200201740381085812433373195067472929727966773680505412523983481673883156209765652581149774982423657807887974245703811547653041028902333503242770345680043438545295784002949572567713503462234452143102047133155562672718436275674565256206275568616452256530282079221018113422717899414200595592376644873625243894742787205142529814459049474913445466449422854295373127017758964808230634166411676790610901240926592114271505725066928120738413937956011053472000186984228727883099634564456873048382246455871924022444938727784528562072430919080376221071137687717977106761830719634877107131469592776696492359551107929627503074171050179729753358986371016458470582775402382490874148533370937709095542871715680416796489848586152513673463036124740799350328481243622988206783124170748405483501764326650579365300697195008309712938684878345197387536101965409146307676799082338750799126583285699547403111719137976145919246718394402369716363611582834501007270328050733928808971424709515595554986799204498196217302306153693070924998073310739043121209752364370559350279256765768002554870578396232443103164768441134413745322466072688663390647283627827973347353869029690139213674109870090341386786413276968792697079864707597734782114469074718220164276185285807550953103496341249841027386268633459121865216808747486037543364338189435258450878300550411213345459620002315405250071158127565045340700248455515700336081905329781757639017857570708429792106124342601485548329604752884474009741970701737934330234036902348491081174888367618300398727460924685112927619384458822374279216640531033775323564620607951319152239635267886624183001493351680172435575066305793561511077561818354633573680640284893406298127371356920591599273410777769284140590532412533520613763101618822222762267973533033423825598916469049943455316657443824488611970651615672146442266197550263476125060756203814817332567697848550444549703776989783436920853378159682167417287062120979603524069890743764998130617371399406362169494472024383897080725271226971817402441149302768781539251605249650332928774419941355417531134580756529556108026190305139316126361220782229612284511995986425333197390951501654075586358931488120157573101137833922121460365250918508192473423198244869391910480562009239250497018639800430765399751811366136984866148559787183097836973324781613559410332036848129763849597852637294179761726001772134364876914315794873883783668459866651384701799693350336980209215871940304754739303504751736795061000249851065820952680488220294293779067044812104831652065081180141310674369003554103758215239279668139860533735691901332223459069464616449552887562541213623811959071235410021110243576038437907317559846596847378660566993919232051955858787465080968951455914845629902401027708086907694018586563060501333840362855966884251562983270088856288492120424997651427330768166112381809890540318084585464068870994283009775834119426882604513438965791795725499137864659878451490461650462639441139596324918638353056556243930868353128350405103312881175425304476344427198365934039999890466038445136574931941077126075298912228180736449584867379262181653520401547699204264525978709967455503519682154484588470113029814700893797130258731935112960197286546857314826817724972717649037509470849637084849664973923503705742501546239063178606872024849493690156325831200880355990976983995360860048690646096494285079394438466607059531611012461862140965434281613542400986531023804398165581233646770172338032409714306043842662029671836055315461108261667294974246934810608591488151085730483026540245034346167738434796603799446086313431655016335916770335569102375041278775799779673264132555554847793977237594946893986324862975990390591844499990956549490265561738830519983544426337981772215512244880601701623725677839744811088577387083866872572939431506031952909817865683234720170481229714222495547895196937644926636855304892809935233212140600191142126012025018431139475903643534115262495763492811835040718276585815934463546602772827551422396329984123813658169170435913472492130066492662829225934239110266282781991068633047052261301707190554439738373258028149014244775559090623097082028685399132644895416375179342624183372961723001181351601801557688525296478155291688003302723433912475983752331189210726859074099416378914281990226535047323095673155554503732378560404934469920973135411792106647535946940127994671976656497111537736518080798881527014384667371141437214041623216683798643092526148651191309838722873522900812139631762753244946066111927733662081728116460687011870432136630888108088670584798378495589462360536701156443333419380227060700189444039704656532529595014111863850221874922295604077319003064023143861762098220672295612605210038958367387520865504616252525324433253423445748299983936080367604685002895959551346484812674424201515441644754844054612904353751730866799263859139689706287061991062045917784745442518199688040804815696009409301400759482288491616098436943665955706585479133442689655506527111803838222224121276135736737713980317534466672693237059162343329869126823709930553711057655569849972737111584428998978348617599779906821177220956145169614912469402607064640949214902524171776456737149823518740938695981211993776808640480600017247198019689487022962195852515796019202765837309437486342307491598731305693794145960632878255928853366817179654342006039191166448592277415482296296799459556729955132997925357741697877615332687816563014919081361726478049926589940518864678152109366835835681195439457766687217912864302572189023741110030396423329473392217729899094199755830336568778775080240598267840159266965583257635556936667386870817595513906031860548511463911414641830997629759699016814643820100777535737492197994618413203915969127727627215249816380981416806255482815476722122396865568720589708748876326586666015665897728194459057976062329069702269032475590315156980516776282227653030561409433940344961448962742873085614141668579420865876380651036701467072627997854888026409222524024216439954913233115972785600077497948256739892349232342964212700794080003611577079008042121971918353383843293353989928480518544594196308020198875010569744938483562741359963730175039948213822128255440780943318373166510410015313329789091702835859503274986831186140936185852943129962594693376538051776966352139055659466410676778906924967527561085443308486979442299804478370979291802992140098832814842121445585737020339573098944490396809837860659284587970205293337634336651775097753202335172865814454195157904481121652413429912038699018342518139691558397882719399156866556247902036262446897262311219050659161415437848473021844480013559929766238972256028249691758198161375802534087067959422440849633909181051318522559724566472041693218976899225617379876748377962538392433288995907980591715886828414315116974921896867063877833777178089931610390423670860246102681301156612671405464413145530871139247299884936103239840008367652519340138959163355575315605603911385493490552352413413040356021466190237853405050848426379197127499547513459197998492523069280574338286866274889764886506142267351017665054911610214085204041927160637844455881285904546703029285649605772367940199744471160850052939798021262514603505254931845120039939510039359920819625321422014561347662150373441344073059656153137962932556658153464259927496536790173479725937662778760735191647129027847650805538174202357609456565976108767927869194655312708050304297749650762663531503270120317261969392672683289668325959477274067341985138628411498023448023276201701870873703774335489407525980402904213024737094696092571877897020688547770522572339052924722168351443131551748645762070568583291681776453696284845638220967202746341907679781449284385292006873712377638982178395119706631628665788677951575139116514220320202779255738270662378845478510578878023131847662761706321691742101844045234391352915730402325540924873837784320394718699183823321593934161322924546113692853155761838086193722548938029478159943700329458624013195832271241589601291934355130088105197554414131294629915122688198127089815162720924600513602009788419495114448654099922336248820828546429092031074631927955838211264168717279039846247595852871866142328549706632546993067958654749979558204665519214641319288320913467340486588984456390415543446194026647033341166110933372530764219348135837026074230331139536842285212492734565898579811447339527166348896484922867109529020276457626626661657544712905096576063976437986269840941731580164722964714237318009504262345102342854958083743591281073628092547066101494964352983642145769781558980490387378872505409834395980327417198453849472842822832410570670824369466428124780669417826232699567515050543218668772344629293163543911433244056709661836152952264900272792540971600764863103089059191632093064480162301787652763419945343531395539277312666196803137135673242926708888393962281872278375776585156620399057253926925233243445387881241586819804482203407820907569765873787702424749122306089006917491223810321622137554966023818599320607162599806196892739468521905895110949381134457419770146439069427838041020118509582648763168289632286270278543903069797551270095693072142346323806852991920657163306564920617351655930321785186173325275491789685062568278448737947430710325377612814120658786582780226040474996632825684899348676305978204218028733695720604655690118811403452354144665868565650132633333134224699790102978920043817233865349747691686057818617640070605426398224338172976910823159616300495821546552873471089740236230856389826907011826355815308678432671532055318561539767321631754619288352616773275854596906301869381001639910579622692200619225293171278392351090945304307757690383567720205683369272439006204636448115770659068683775108279068797673329950450800089380123726961180162759545622075678631261623436575961882741885876078995747291119956094915909087841347877248295320686997846695519596418764375366837950002057281875334022990204343252738069468839887519846370469360387377482402095723022431876882263570449001513482932977446181368824289077875732544595208577671467711843422611959794437124019998666311027977188694722915834189949767848848271813638004571373009648303362713987155506742807479038813298991316468081259281609506515731411146941953285147458362270377391603670430587872421570575618923961764479284603041963471408774250275829990805411452553282198745340347097870408297736389985115948731812289130965663139244079223318403551312287649943643459607455374685869090097233071420202079810250005712746149061862653943789449166342392299743354520733044475565396580739587066693496622399646079819506395489553991810072567389056760209657250233145967836982870734005530585547784292561078039403711409481089749211875524441700109415326496501255895128708190663961783129755476809409608773662756160240193733743088285375452084632870261072712561457965360064405325752915223302415339121696450482141497384949126394728828264821562805278771789117958156603988959004920536463264301839610924250769641563095571043746518625867991062615297624364321848467542652447203424573061089361416639234306493231811845153368520023587744931900906440804233143176171081262012726679860583958609432695590018564267143890466795838295574121414580469928294416530000532861649893798782072455344439107958874260476074023473558296812205626191821506625713502153524596986118522623961786388391776995106442808790003162438269031771408801981149804096698875326838166898718745150128143248613234668243985486261603773575752138754275740146020191261539113432093468461344351273993285960599744227868738948893284485001984846919998663095424365845713167779290538835608424016402319536057480374204916490303813476279283040437380362855909351795794139952830869506466517464838192240660244814788016064801029169440219052990471927255699821431826074203855277538801198116658214533819046132279075396608495974996224232509448684916342775255802264131854557327330079856462703118479926317061240729578255494772249916130483732979057967573683093711625620228273597708785591207257545319469839623209998206086829545072581372940333052148907073955943936876010022817394192235884669142012701507207593399422575552811045019558595182048907488738712306794805113137298124028906572893525180054660101578801468287317762111607446311663583322084972426340498462023047566810531374551305333440307891298183382956355046377582543786320260586577770533636950778843245888264656481164513662313492808782766924190720562656486428992753115239633850776326163792792739063889009977711466501022758107378236142354011092038275952157533516347068688968335116821055760729076211481781992080651272683891560504898833126511815923270678981299633899951046816744522050003930129641434410948625600901464976168445710121918619192257333089870176821517015499609221488808724733290476325112103164790405765926940826357154340139899316104613326424314206350866707490888152308103703471892036730398564302563290978592459303961326805241916672521272634455760851581419088427679821016465974179381270116148168683801453563648335546309541170529361898141784554002638135552266739219927094577567204656574872017571934449050611252177209843924596758944113171884284360802121440933673762341749139153991650806207666878910624076958431796184349842096805830134265632507462420074357562046812542393673130504088517471338253349447836909612892167238321410641182674167245574224660908326659133681995671453482045834797499707847227874288038449377846991375917250851865242431552260865759091307728066208495040631319351780076552702102038054560743138034472327715633582895474797181241706324481972537356622994863917003724087034201800520239264415478283017950474488590418601008817101588540058036720307175431083060582480303621108876968765863825164020150661461324293346587100857312923322043702172753959408976133161559151221592871156330238312069986321867797570352369782426865439278874493395769168242491728336525326118144413720050963727399546332927542948091921693807315567241071107362981852781675953721550401676151971963564379317334263820015704268970348589451456546623496831862532966016991548372911718040801916333901937109264680072950801699102462243345410845598338803023576034943406742333399603172731800426612810386640459373809370469988336521575323803821053547501447801913819003263904549467069944176897112027081143002911468179426501174864918697893263058232486430859588611216773815988380686378402876156387350204919467400747735654544990149342142545614471014027821852827176152723617427868188645035016824382172219348177474016964836301612977887514562738995087660473122240995888025253934546571442485176258957788545415259910135848762517416830799202592141350207586460827364327451364398395568959897482264870479631672440839005990668976558054122364082204257448135604557662650434278878578086474094778836557851851289473739762200290486639161234758714529754696685788478095354210263883714206440860723013850032540772899395735486130458040995895882979932322181225188057959017259280602911803049116146285449512756735722281938884298735807416525889017262293811017293392709694835535576051698438195086591296972872535288712269968770578945266010601911663231075834484661487988616158122026713650789731662322221811017103995683962708680210058810606009242685503643598195611956907569126310984888279079670275042885806454122144173349853908013222601273617894876149261207864522919120319221139013412207958033898719332620873739589495189703134844087067183674469589060546080010528406891926739640784256663000707259700828017843812866546766714521284934740293353837625399297041128579747297126610867465525755829577052316853249885592115258284161110476381797868214779896815469547730280105565330513282122766839766143983926735610011649611586630460583890138640601637973489955882483817906254604552283695586176366736685602242548267257050324729997535117270985003414046920327031383704909330110582962428853432398313414991140523944490828146859534286327882350533341837342845520727557431111473558394597562091135751641850434382453200506016014316636349785370475166744649445832314796240391825302458806080175114560371177190199795880956424612145779684528931197020839898200658019296291889178534616727090086304184420697954926654668265143228063473242242559492915866819596132503244917269616646612306305223959445205637823066028540949432646950259165941808081192699048974917358403761360105856438695479941638915149642813395375409656313838338802279686342858276874855710305431817158601689205219926415258110627882463093332909125916838414944094172280458579850817503057331341638672067677317021413272682694657928964207973740457765912300725537456438989319149005487337446743329093678433626114957863420928520457455545521003855304006724877611741739725721665326186363791587048755899208555378038188248848606536770703400884342413757220746032368987189197270580519080987208503151232583342657299496930152602073249666070959983057923674668975193813050973241476821621910081911629407139100173462740212286706454170817708426316479451085859117009950901375002323315162013833112383669349658700254947460359511677240560386860049423559602266418561162611230056676070904296600840214305691472367471891886101781829933340120019376150247759389684433992985883537261918279356148445962867651051279417060009602894186447374052141335897009647844288055270332580154638682732337503662442072459647237984701783646779603178796326996667555442811701497819131319250013878250491666880028754037067346368713412260688659537167559191401666116770867152652886890311930902840627098097751294222430167610839177094241622261131083431419450615685370957410821784343678180417714550386103134936813336067972411701016319380611468094143441820739442495890177181306227836377867283816005010074582902077078966554737837242410548733580313160626335673052333002007829258153059592706331419818934124493869942520818900983223105566349309798546452283469081932352842180329804647885389704206329852199827123647425337013514519336498269723013521395939303650466044623562153255583212994949475514456249882652047355582967925296080916968376874502514406542221729365519213469251300596064169411015463499481353319468518421728532087317093831480861985846860426264944660372704217335569088125198103915339029811945261944184510861645412806992862319779705622280408169541896294434750320992652409209748730160126729679439723851170495369370680695559312327018237612272116742041243355780061961990059187897792467272607103288759099068788579558151762420397270002334956384315392913106731460588261850705815902073938713340364407134913392125005442283412675258639737206515949781419537689684518638111291022563408321825041637917135766096429878642818525175026763645472485436350369219506742934021276807553737053566385633736114131852235245770355853241034724981306946150795923842375047713908791139297650303188858025520900274446705406233205397753751976299931162737034899566131301653224160583973437658426175225832892162302509368676115015141357694009207897511565353384194403212773593142487366030917812398440704429379207880476890507325445284361047416373580642435908059116743439466905233499040100706131922055480147554002791936988265894135206137141847199584621823893194393153904687884453769730867400090312531749988284380169033371066935772162305282248824795836141737959871870932727252006460242654734656231701327564369354292305642215996382678731836822234441392883479883826735421051696084441209309894358693647801423327709435877473101489916901619321187594138233917824427598283910594454625848736977475271707627436740862998266998345782190875519915704604327654026256088759860396138937784440560143019851439658637985230273273291626761346262928178791106597725989135599357732177065896683637152466626908859932086491912290205791161312549378720021180204994818969014250353328156985127525661122107268782968575687522294857964483509748638845845286975341292639159488932437613755155707748741938650973904082834017581369716686111522690722128267800626832732879387158816135194068214217574258837003262008286478809801883517967099100452810222098638108852265465352789105775722903917550817094452614720681375142321881156279458837159714681946997398936023972477613826377235418732333833474943021157313051636796849291565837836616913121033424656952591338591215092734741795773477345449804179862580003995362016206495088588450173339961084489465799933823036367618438560753279153245483398717044731476760464617240155886732420222597853138952113400582213945395889102037565872890378825686921243123186235234437061927797405204897923746177029543526940884410103959205383110644659836856540653093151708332062769318771018432243956010130491093858551284921765195244105537133569337157874144472379955328159500176476311004520277102622044677063751793950402847244104068129806923826446217316061044386660947462188547928183866629572097324961902167495412486822833015382263071042563785403310289420806206874328720973459179605101369823661671177370143508778649252117664924634357453914356753651346748843500676316397635090970115907533133636514444837961304484322042192050677263391568079732853360556830632067123745610946047579147832079011181010898595997668456857645339841844196104907990392713369644766773909033674814219005601342342098740768039341830499876927538611070354957298056789058386413545932981422919630147037865865316066619217606251666215293550034896532561152721195595228378364505609382865647290063097327731691850315721767385472284595258596283789226943578908001410692465333542760643867254714841944845324544936408942601424072368768816422981257032674717921218264956078554271934082105981728277342224830475940661686344969049809489789455941266778463694327551709084236593699627499892780716972959741069017638049049305279100690355883627675030867616154133854979206667381632715401242922251023700759077513981484440373306783727147631175739050908058214308484888814648631856364196928136059026535821275537824529135648400028802537839484974916122017068593270314405417584440384544210249993380610774076591588826434962511279184977196090380191496625105411568835273127473345538546252276725752931171255391932085774323337575035394856322288438141156901672583408389696325349766837812786903069551112090975945456749785736169276182812648282213470595638450239034977924489587972460280309152673373675128073050995186454067380634949518924613950155711577543715551178254487869004219129951490876382261562291032801908919316197197885206336757122625465001593903005489024428764148233385869707065792927970547521045199031750313774220234189147488234619482126056637082786765687463694894391418801409029888101569283749405398706271198438359184318698715842591261360492569315349065981681745848189214450338708727514664461722816253230084780783300127604501559749084820312917645333619496345858023202359957676485111257216610778008888051923172194899261115277710802319458706440777198757486274318822518690148411749086549413043163328274187247277654100311029529946601478744725567829152203504526563782736341853245124175416470780216703649326337214251560225370352674801803140523896693630190714236242744768779942577873777838926342111543715428947331217339078734676472784723102669971132927007786526799597051617176468992425589262494541446016686126575323642445907239027009601870110317434008747813604967560246538910506019777491931284555283820811762586371194811736842461708202833190101814922442203084637660874376487719601193518908258012828813150101734239555172697252790603860589330340649358004001306436683351896919991629624600532610918159864548876745978370479457594370359673720650002387827740251008520823218065641403992978163645701533706356299674895747583614849690131858187274876799823517750754116032389289689933290729769215849659160746636352091371381927492372643381259922805538000600601114285048142445064585970536671056902876879259528246788689048048907617769915467470356375409523086396274829382362198776471984746425693615696552159002829182853512676149585260720942397402635269862711267526468538339823031506573193254830913809466587087892679267315300151289461964702467588690114511805386794471860301082249091360946851214301905544108915991098663007932755384136093496963362136398658627055896609718576656088881651396408945852389882711175382716648330407402250197401724263512882554591470419882694414037358410073721706023342165645157094083372196806755994229262350189556821930943697887792095191092889763422942561988000500076969687474465909219199813502960725382312687262597693603174029609805340935058430101048444949634640384626875049404400792183891225626001967522116261063879232999880091437240718076500945682032345605685223915887335061479943647477162951303010083418704284588867183742431726176081590592689784929718040841674106707891396800852914102566653148007958576258578481379920544407535501015632743877995198303654119354740681237232581826251676955611192682049520692176079605811327146406891789481383213208576612439289545180358369129994710450422854376947654736166121365803913123668349053893412771784764599162050987390722987920301378929162527590941040379419125537672295166862950672177163791565619886207707937410552237836606009712290871539136088511734682098709886843810249073073948168072432800859390937916728934374241503348054844559435729761721403060058102154570642086271824464558571789167064430942325095302633837980526997538329207594930209554786679824910994236550010465222789077547358829636168587220891622466193609548171709505035499465307524478791786271458853713814650950648115779500242697583617329560360168414563348031385213406467279851581667421124155888168049805188425024148675611134895952912815283317301582158741381306609695620406915292441533081325286683718089344994622055518524982520744537167788808482829521016876981300161877506174397946404759760587887920429070602354695967859058231182892911974908961106013888085313644732928789367860160122471415915009535089424941576735853510196655102416538908213720423195942211260166821954521379234141301123273127414478274166318973955939675059713554745017587032224423273555178586299469765710523136500933198406706596650126569397137697930193681058010594014044085726879824703218869831957742787769054990921815168775404333096343840306420014072201084292857503865095842232091012284558999664021203451777332060116959976562280269398035658631375268992467312728168163363654724620089965590596661024221042453200340714254355749421572356625239628526136987502387380352104357862578955229095812061116004946535746948418604787737625896842946787425159981387633537541634162100292206233667615314542280610841208838455448440420228288588118607906904543605497778880004490679820713080284395151554979045134316697280167094733604897398828236059234050589230153641968173368378595482159676559870986317771430143916685454623724058448789458809743941757818690937893648947195367011518662908580108351216167038829864883279413317802844621868434140414793672578533512182289735034994140264644248407558943825596303221734385495380305350561056294377817562452797696447375500601845321097686787917789841280075946716741527899859470241902481207199259640659704440883561224037408438014401357065920559844423067464444172401782129381383459659937744113898638831045208122558445193237416132641801179034479641422835675328758229336816587317057168697231012310234484734952926002754798846785171943189546123861255853863222206096481184746027282720441372845320062211569722073923294429647589147589183403861835566617027663351530836094407351341369674466121813204992787310589071356209405022096081197604181184100197164686519250935618671491770413127036809782365181819198489017444232570775456051524973782730270389754022951695658106238197850610714573298856202428029646200270928964320776558687235711712770148880234925678785447762021683704860116928361620143866270538848418541698365447858126643738202993354271536954602593808786710873670674159546735701229742582702642751633826760132420452113743688066834673796158300249725888802445278654375215644431918872406277771876648362525312356650998919868396453031793107172438224481007891913655390187473538298909623004494681986930942554215377894142305118692101571096887663246384849980356738467156080662573009363735334502674638510269283582679405242043128220775557140920079469310931129989328631784456496148693007286866382239874085380031402201915718065103740056540122204356775712575144390821904206478908623789065411153860711173784195437882956452637700316975314637455409447211856703011896593659620524034939389627755974690320669205739879861215736374587710968218403991406531072325002710515875174817657804530674760298516969328981875311499176935609294728969338603625069038828789314130972754186155007327284340771409685858929165841219545284059124071077383291465242113234081915529910425852446904863502660444217147802950181974445021188896868395354952651123262571069129293314659614658311137160600640749975356685915792326554746637281543879080563356846304731389724580716625877948610364544662097665004224513183260004744667423403569192092472825786830342548367456566226813118657483438530469596635611289895922878867767246957494883727932029712833371843769203155848694185254674885286635983596931304024060407288589686629100013548754239694879294740178527324145289668578184856076582487213639980664485339722973629246623271465896133461293424461219453962323598131188518917915811860056569022553124864997832113011896493533563413479813919132323711591884937484091103026838296661175338488510311401699085294672786119582093742398967403506990088504702363360647393068697168771451801965628462393509501266608756420795304275028942124575047104224012890195143799438978296968497328775921209467743853288300869677215481085297083567653587245206157608150808116348373320522048179011019485175673747973338991622847216134982761124685746450959946970822641528742753953838421517370315593529660759275271920604456142533015355543181658086961010875236864194340006380035718808252424495231577362496473676358547242562315184972048046605612013764960986330573784927766999655682796250015425939314647248664072155889341566203305279359396753006400620720743711680324445788379478202638963170385230765532615298017693803263476540904416534293425702904808734864039049400975344924166325107629491049079583709433283379834812144098450757019531644499331724184212492915970770684302088576828624286227852885119209348165719651504997965170163281760704913468981078275690394584355956888631267514192064640647672296959973697091261805431942440887626901873009286681512069312425874619020840158054606936258257059864306446830688711986207822795150980530843077358433630301180153336163244780650102511824179619734993023922107835185859041112213304940046803368768550651903343893719689274982915567441682364917386967172820588589871919707206330565365019992612219990352774650179187166998676960283158660985388598718590252358856350677848428877277981925220777464178654208542887968662307895622676572842026689144193946219477445819595231409404365613316566028752235148234486256282805732982845046168350261958715883930043657622746668169148794487190886095588396476601888238716763298149094786087997003743584680044734021716268340093618264667964585219647753819815693241008351199604664208600071993911362355508463623087820210927239974451689999891750385383632275392819102897368181453233156789163747530552650439716487767540716920488322988060077863625168762785421366404084243168280184016152138168284220850775808758996948338553270523681980850209260911507645152718755642152519984034134073303618970039391218270028867602646399136720780103980078619583200259912505352663054833402986863779125434944660872140786051865519612012455900990053645272592100073139808208256811811037324727925865213479732282980418606257622149627514305854323356443492532412975281275338857068141440923765567905558322843535488073955866578553177541508223177123522032477545003108001600685197406557128373950984723935778376298249711167835108398318064691652449947890528078072254026641318835459480962352856999163111258194431149615917519358552609271081474799980097735230657656283431487939947756671438756546303197819817163940557963128690179788924480187743768093902931100725299466507878338086031738298137892009516872184162715714045612292527656411201857487920783418043372381601504350170895025132125148305061314704903528012835542241664671363189305519244077696485088897760263879069802008966682653710904461664264735405555522033565306454642952221135365812492612312270135089129826293026445390525858397240922267463887195888833528121558817943861904158601490048901139350562642308925358129341263635553241746860191174774514578350149521091989504999244092018275164499718412171372633199116998944215366002256017093267895975695100965087460248576394794248071290686316137636148867706052083414665962144783509733718196421658972931907739727107441729332522933824786333189764344715489569944607298107802773431187599757113058218013542886456796204428243493262724140860778381943961457660216608773356501140834445308700375186746491719211878655910110299252951763970570725729836641627106891096644767406936408743361143032951976910888520002369416922535137349731451669161013301013154143226574431085687898406082821698755746949311109107886972181164286554697847456028651624560258261878621536602373383546374296243840995392499319785245723454533879123893810293100178876538617729474243108275531479869996706072621275530109497912064822146600748525586985190463753506282349383605170398334055149302484811801079636728161218309988287052759818311847140102234729836817464117866689092323497184508156164227128409832770608484895340390367213020730445345635026551932439123909483545084872912578002650155445335308482834382016865098265903373145349947247183991052777616333234010924476070622419972060294894262580903752919262955498143877352242260762056120571062042776825540622391261424347541094953745833652592573054676065637167494752341623567667776627268036645819168358972309286277597546026359900609107823252463773588919134052725340147512602862076890390185908246418642591448584199058356475644320049834427096470453257273378893177083272410290053359891563851410944907380034819473230879204119075305330727781548039179360921589521631493951652488255538478260328735243576256855064065541638474844177599367850360196044132691305751406411736447859593853525273673883612812853507578333053417775906308218230379411047496812112325472376962726385104360079689217062354666490353226386048367465574940279236654265235385842598028572007194601995605416001365636253326504765752032210477024861732544643889747950237412551127360000091983073693123922848548575228314781138825386272576997713967802960879971924153857559788750435545544604003697927001242990111617992911847247073099416051105809706314126078490603743467702948250596989121605373646346167291144456600929756774391234535924439587619226463580040848211943655550294213648769062341035780632223281867723215516384078141444269669818002240487847798359388673535918540406512100775392431087121429562163692605434824576049643266122520781211275683856102316629421790791159275515448397338453787117316440329972239017138966301333395958759862298192162565426895247093451258896702420654157832823072152484625749236551053016819977291356812784695487038373063364509172455338010023145793921975283497341148036651156320513626927820399034268924180822943179678405871518962059084777540687650576893202041051302648220870071060555169873754505956687985392251908420752887303599927355831585477939120363036770898697795467669363173004927277035180819499627492956567202379450252878222958723801478354912876329931496771474238262616170089946643102101167770251843028432044881317978826111721938884339023610690092543309785427190141619446213548166661270113054560982700678256889214811902942607613176176588437010179500231822483483306627569486040548665733652891176068852528980166879575127760624074524828439131576267187473716871747734393218246566163737758964077007014343255001624302789751568000373971013270688572244960236046763844159669509992691031901154238416566274739807200381107763539543288549773351390720764195184388327991670194661106975509138353647515931843577611081675145678435489385713660468771516186790270030910423272319052152153912336734160108920462381253325905786621910424679415911460205228709644355274273748167604215362579087009893649473174523039635717348929185342349430067087777712967870521273789180206265631269280244315492814248496277558017319383988190119407629397633357677037314891927315124034905618236297550051094031865622093631619658426211913661664709835610471628141260984251262984820092426846292526346584644136554699002169671297062578002511140266151643691729956032891999501322615818263093890597550197510772385959149555836517644779254113161636947596613565518434352498577101604218914358720210145937125795587498474804618243886408543999505993719511489853085678551543850366712234755883326937610038198116230160807405173484380222226407940101577157313264482919589460217023249817424016934629830431431897570165530853948946746349734873984298991522101008344292724991359796157838607165823280814436369532708778763457675884680445048607899312067734664500346505664188107195101282719832456925653257515879729888774184526673643706529070035568616255058027293966382154553070989121748470202017289447571420014655630964396687682133663198765305545597749484730348525193868251895966926342351640358300820356449694275930539188828724883567675367002148964198584190335232703480555244491739159011989103267863697639034292625343092187058194047120913588850297241541733350432500332269314990911701562340559967580568016056981360202295217405800646511609910371223542453715702288067759892387693699760074239791631274641173140034801415889404930615393472323899121302044186711928568004749689398469570055433911703382138171539718082812416534049598916615659991694214743055691875944008306446717358868172631361752442938797660204317401207622225390042255969219951020700694954304294803482410240590314311397869273947941874176002869414045641088142345414982422962508057684334686910467149684629515862090564201895907431659923474497393146055784932667781130183061538996256757768654084942672758087372468177450035678529972242545008486573444167728472936977572970346412984930451332034249144591818858372798701485147639849620431527044491334089591961918420552820182244575187786702580487265099133557554240846247125627589869445637017943924323326360128126234226684527392755580745326233046140669606244697004412995060836691551686813792779908106783218035821090489113902524809821205712470233754213222383984571377261982034785202249768792266565546990832438754471535051189608339372216776453574001248428305758171990461111969935910632920215101777787999798176563441277161838225558543032120414132867592266896131998016077034610587917565661208988752788715050494489539586151009185835492880959319111785224790917244557914868269539402933060288748862917697756153657868122579747256483444867460354704172681055385262299562194526041865844809352188240439702612594474310897624520373039552410729325783819766266717119599969322415431958451142313425746160483932454939741799184504186445883500998043697499160138981196889844035852173023986826992994711366874733691733844769574491912328722451896080893778365329417003712040173453241312846821436798027242108976204883808022767149783397258353517597161820527526108823103109689370732434871602187680277194002209833304147377185804480700728742995135576226302679154163237926648060789804132512062290349508453107557017142522045707879087130438053153120783767851805981934612526595206403538997401962852196769236404678122609079344665841512213719498934567075931409228423145479511104891362166686110128709470320217826395973394234116839312209059424894210257263960120855487086758054783168790373314630102509379527345915922101508833367883337464232296949011672874841415380932993424300107411129541808945420846232887061372214278471226303123262136197078023403280848111513389246977326300424068789605919099242702116077216177976190345422430398295913722016124553910821442565526980139978207366084087469825753046605684656792160747011287033507401002890368043989231372494946592738540968351793381843883871993595757360459806150652571460732759337150095277438740462794376969325160626868803005553760856852657392616554657200799712771021604196595465639194405007520261641013307891844141234148338641056890339385666190117268179093999586683757511226947118938346687610434835820502174522732880617163767796700563492620689729665876237391126764721141537113692110116845827409044601885111121519364330837175468037232275402465371204909988095073367486761507622604718962006650020741461731039732188663962287454009779852548346143222786376880573046536021181003666059284145497041410094490893859966403243481278544310998689898474330641197750528161581473558165377314966756156692392438174627557833108307188051920312522689449824884757054885955993111035278870218557082203983926585534735330370899745115620857025056080348646910592965499490700046328161957797882065444755283277741633698592307118225688256784781851205491619968477450941038442513685591008170164691154315090246516624635077787242127269401360323714822438207083052513344375136356804489371712280163152562041825196178468869410370828939221274654827674955036337542764562311647529103700180430946131381512599305095084792427043121759914889502052001356623475234741198140685167224198564425899169071869422562327135426148465267659670067633480206827881124567074091613309746890250684769281883994590112911019845980400512813856600809991710076036675375326774884612963635578767568002279447912715105988598402370283823450977259743973466550062896118688075366047588828173885791839135943282657489102093088750085308595965349306764742305049273248472776024358962458498467809388864819598753739901870943850106433481970003232686029806251050629446505554774607313106283970629283227504194316690944099472776740648300503655246711561146340718530521876569354382022947915530809701641281004949845315510838566340711857880700785515603506886906406892984406451110302407934510195512056959316811077353628349446011473671344233276378086164927950474117172636890633105415271302560299910609596942195671216162664786544579024169807967401954072731888297492305095245427361327548054651621134014434613260247955917686868728401671111411261118730482612663804264153691254081757468890185210689932254962880643789791354755361146819823567820905168234455786061588256350906254219418105799899277902214775949291399274177153794964081184958718633477026366439323226656733728760532613284912845092022556022682444199859405125330906131622891683813849855974972201353294210349574661672967618543708647787239863663543762856209319240792174399900600252519932726617961711029322406348990508364650216988470969463049683734372515912959425148817214593224768802634238196514402370011893095377587953211478465560665861872477343244095689647369065648169285333840247275573068418878033526617188024784959634519305334894710365148482900798871128491659811081328430393720338197216837807516958470396276328659896791032142767914804512589374421855034956727336641749849672592736088628783397931641414961685223689691834606911822387583450425807151570373762570606963619935373345792229440069095975432924826209398146201484527774924725657359919230816863676957013674777423585287313499369758969447595052721644740293977208385835364942331656321317753199743548561440176682392090058363128233675576076206263451102336334419223407957226924275989812643609703910363811573081589623482705644216153265760399337499872485881989680959789836794713714038806257795886810017336727293804364417969524961747367983846150975865865628387013043423770510549203046449258662212304967448388328923129075660089799373054297769243829313722843522579993558988830793518645462382411086742261081585428667966933276783295700733268254501569426593789923440326342111522453812817114075120465537734738228952266229890244005069990063426473514077263153028480197796242553134449402921974559834406312520109520777065442584937075712215099209140518173986353461145268890222975845331815261901587123674783583168710777884938228554895881412356961104024523475383713260303503285973067657570212771317386090514493070690370781435679779246088976309123489363287280648895674291445892563750954719640835435348825499526994005108773857559719634403537014609235536924553495536007543821401238141174519510193633797136807329836143888166507917853199647250392204427525377344393738528260656083181647160660038038612959276672106393763164210139504808499765511175618123583096300236697428476629999204499490342761109788093570863663821981168868055340462706890084244345169515500340392293851767323686055107961635367810061362639044733924867694225950802398475043768031469307721031959654822847636413440293639233001378606499858793372176775780203457124417024054937875659152154712818250790067185522835520737201926344266261466648283626347507250520353719496652039731411534668801319267412981034575410537153236405647729353827601909964106810436725980320396989450500276817998691567987469891000770509981676763642359697566993078521780964995625009775129906382401369909007534804272542091639285407284833760149514596252393563593904851601662276773550328361579565827776053507548485499363036101287811339815234880055020634956915749712519604383433230460529592704050946364751154142648278765366149073630109765352844877326760066109623485980981373935867793953119467300152163013094048780273872590469553821951994978858044456142539790916415639267916313188554563628884353589494468094221744054502610390872702992448553457373447394064488789669527762376263591857708613147448780428511702047378451772466057976602571297446675742130902415733299790098428153645839043459765696629479837583701930387407300785224839171603500872853887187907494686095150506123618358549666562226368877788097896729312638083533388173734291752192063495832461298192655962718309360370072833164222598713146810215426837803098360354639777309342016616054349994187946995744435387381652695959957361649006471828724264280409481353404242985012007995948390364235156787210410165755480849887106070688333138985921023164340406436046655162368331045130019381035167734180518984306617570086518746904193580349247073548648460267949715747476825068297663156196726592605933672682287127459624664603214010663106950724305298743994730375738069238824904017233568049725362809771867111246705357683070929712872601830222895298614888736216580640854988046831193788545790245452738277747831390563371060349864952396982137956103510374689923374908192065030707523820559808947747224447477426449616142242119733910365580320290663884498384673712091678598873985747571012045510071032734758228922071227836728925421453983065124062913955894002492666704690958251220184256096900436588915709305868934894776413121825694419172391764230156964885461629222818789718060966354109103681585612187561939003649015113614372932352971869345223531523032719008853543712584884752867452957429485630853421901808816692087233172376815524330271396279156647007718725649113037628685632828375620545208286445820853209549029147376599403207109749293380142008949721323105133176705099851931023874102417353177560963038511978238801961094663318193579918006336780197300246143047037684224225768113041758531895690536277521900115090028837970527704439105003691170783340911772439461806633401709897396305408229686275239634369026780090393593646323105104784285200600003068887631108492783889635848972201200483176225036295994150728697798299840549674553016896982339470179769846831700793060097984441394690509635656260803497575705377879835793235297553738443745687049853313221754933503320710504561051643632355342607755910105119952990128093081358725364712254105416655603407459926715774468833477899172176918674029137120554823352539500633142987285853995594996876986787296961504620465566891009212342683092764706785016294673387498025362392034449253493641981935894511527744211096912438765606214077403127014134539628814737996282233932874801719626669140752094281901111707431607321473068837216883890482937895745114544745717298871263924635902840059771290591556147945216989843999744908106037540879064610780161983829993715497536871680580326553891186750846747896655873091614721029555745467119091931955490446182544240127279771490408671279918911245602417207354825299752856524001255417393570850958983685262334193111651956259794286256588775695536693759638520608550190225619346022725377379496558180699200773105258840328387854894080597936309418217275072620514094429330064105976394431696553360271239489735487285504593359370766306771855529881954528204642720372098192561420422375485634845128959690860167959440539861155636681786479923098385196187949783057238331823556813554475480053684683684822625559588142140885811245139170171942660977435375651876337893611371184566655542470238572940980846037498433953724305113721252926768077823708080495343121481375451287480302390329225759206149513182518139758994066701088259662360652746694445927377641218198362887896651049862567172368929884149718680597892310212255245463293608556325529419695082418238932773617925216015621385330537744288091694301680639825710909070057444710056428866869144758446812996233469601892828762808531452699892998397203179434695092704932661730180542461519534232926985848892353105545569376384708475147446431360235915084123312144753403796564262135286132846091274749366129129966967516835065704430362948520190429253288938016238844958196064009640907639158289692030049878039517815780784471160680831401555650723364248341586009418902193518212149482203710690035081112045550971859205957473041424020282048913589319170688291703559362656978884677745064363459575855375273345119962538427202745699470069223184486473705446958026391392404040172406936776042082711560046860716897641375093077797914377939660925517447021955209021943377471479666421828816956306605505552906438187256561494622578352297451358333304274799490834391154792197802212463381914931441247699866067348127908754725398752845133059672442143268104739454543167672013749205031359310765468736432029240859448196703688973481031187337402929728841374186889720819929489928489420539992863465969461852180669236902424097971859915292344601243291960742689042125710448658923703730406029809015081121939378094855149720445932479808355569042350907962428909566094819905087711884241263440795384101846398556069931165197568011237232263134937189920235734159257516708711351624484377809923782290527877153056940233257865609850719395568810932314849458048951029305121406867008233090703638444902590492848582114249738592510787969042620623298420506857737900693782553072410363331691854495933551181395124397928415222628224059270519706093912683684863816090671571545905451641573456000294977759827171309532410513997471596473426344616971212614155662548195862079413357868828465683322885394685381292339734188278560641100110987724190372529620258254295399728249467969233037879329171682798175372496418388070783419516065010943170448571865066476733117398993807168457862227511498806433410974702169712809295897435107135243111059068005861979003100178405949768472702365902719622039295405870625364288820792761902944781470651274225673350833656327753752734034636258904008782386102773639597883948015720735384604920374980832403543621832571362206049320852577067800940456519514453081422193856543490253554778430127079846149746913253926920780526149243173170225852934348418830872442359250201192707491642652042317038993118209155275039551141266264275484630444891373171357004785334065895140718462045335385403011900515408533846538442265861423862353900237778939769795779835188610505023468264579329876127083639475122946018213517384757598379440426607564416956372217354714216830674077308935085686613446143193377212744994095107978056739033005650776009578473681521278940993265200246486509145500788188344642004866499667143332895986224686473793644988228141021084840445332570937015929649915374817337750077748123387644788489923454994502909754771522875078922973233008447801249019353797598829470825861697700945119850376281244632484160450810366382998818010747275321333000114004133607180636603790096420573704676982070122045686037775020953024760857138082893456854167416573949674082377059203597310864535623244576270291839581057053084483850781196653971390353502499775705496983141105425328612583176368189923181957640998464029184766563370420059378306821426196183085850861197630383345878282760651043134681135643872890006950731213481316768686216306398079121965361468141906755237231709727026497547812567900604543846923978532481974207354437975518441463002950197728118506730051069576265977744515931260914984692141970461706899719086373744903814346182166322718165057971798524107035428903769844541279120934564361678146727833796944038038162395633054987276563841277862864334184290594661102855124497361314268078134625915950723737763839487356332294132758918611143072529215557661738703738095298773372858148930066468085873176655226213481158428521227547367862298879305403506929776965673453859559140635842220627088913994849355340649420138274612922175285752864931752688061335630846565326236501053631079205093285315445873831073227156880259341823239036241147941632311525411990370559188953287351016532453220802031348970543601608327097831437625987060719262745628751076620257693855390698930599655525923652687078508445081056274802427196687463282700921840503303708984199031722478429249057896111931583351118641383747160041452930744269096295950616566570743118215867932063084763269862773482567592194336217581598041461703039154165182528679240435680649507383330578595543781612810020947498421038693202098510371801552649560379375944387772197687281837288289938023003013631933661676396986215278951975668387482385286938240732911855582402710308172687814080067186095917629542674993894576359002035517598748059546499722329815048331876237477355894985611453828251301712774212498145447643344970656987623841593853154872051911240417852745863495021866774299663688840501463306147566939476481882390999616035638133901409657644024185487388971434420956000287370598527260222277747108846133571288718554368672295134949921055103634337602570552662553313123498172594240197609687260701013971883685767312672021213066073281358142284218864250388617092565037234357279134673019351745507363442118080128430733819695531776436897333298768430374022784288887303051866266351922193528463856582491069218353468322288705272659400517092307263590415123745496277627834090030469831185931100008012310018112321578000939338596972696750253969266709824763710531309953842476096270290840156613925589498245617352503367458994764462977726542564740799157539841437296496741419734941420355770671969841399677337537887036662335723374014719143090755395880071565953042331391540287892857336487852618231596616584211125563476050015122566134373367397473612339484202048337657357738387937507129327367498061393727800114635687345569012398332744356097032487836716609790483860173025369120048660340248481900552723674679791516282090039710246998413335006245711498435987270511346206850301558400464733822269348066077760267926100737570388868588885072938001787895318963366725956541796147354710420985607974859603204530794439309477498657014576319816175916659526741069131848610394435655802885755093410848641914432189770598726034127083459139008127835997173441209111419095147934977423865739544521347727030698055605275253558980620708505737921687980427947844269125603200389256724788001349040177331140937120959849516739330215038963274251560448071374870412060081282442495935639705464520168830057438557452466906577182160411864990731682953694223657257264341697662058197786788280614032064703816396488661795294390966140141180187328364732565654449635840381814841669484917065046771538126127984279534092760603767640482353271888578864308916892022497779386865184324706916506589075227637762781029075019276755533777951709475568544583549180726235017201242451272629283414822740936918132568245749725076310864822913286386552290128768453259525865874437647978857731510207764713635840824345960519804050128094380097976666152103175822774351065046728669613980295241386064494082928927715529555377930694526362798900990531128594089398004094921051618598697343004960411372230644813374765572386012285821780905588914049816987190175349418921671862140997963921480565779476776022770721613637421922811490908779175162185885830600975687290603812142472838163854311945631227593185479604696817105444404869364837356488308547174961712947676767021773249728857393357026594353522840953427066033982917641983324727410054669570711915022716402835132984629942185740452985445589379357256797919359302415755119840119647543614309329718122134853098195888793462872997974156515203241114119609938550804788332607537480558997407231730338897958456485400882018366561955227846109433257872007726961945808809096576536175868181458526132786940064342348688920599203712250301738111467030443074693885406571858363298798482823997064196516290869624861744292391701435768300708488158693920108594514281564658283934562138581891567954109983773936093411131782929800467424891225605226073168969923715331962349863112326947130274670824755976183970182928367023512920406479598244335669869086789037029200420621789301001186652644245803217521897773376617259345508592757114326090884774066969071389212556114485661712815615790581004587453792266834605107990911747750873111394541930219786399711058850881717906751079920274693116327088042030591474543026563606206316990242966958837816192400463214673986826876705708488868278636954231449426561112251260954886445328350308215968356024992061934347233808208274510682141725941472108685609583901949753151684933006397106651089999769464872901254613773453972617735899536847170084348759101068364494566263064490296836872195442889824812169428708045177858522977438547680744291750365085763630782999211753734794396175031951729370915151672687512588593972637615086591276043975694883594038109604792297511829527702908743505208686726569399149958598299414271830791624058953010437147431109605036573332244349141371492407425096201942135436470061242947423614612176275546196933041550278942247527386075161230310287875139392471857155730532124457650493461319902637086503990482682098782908316570205387881980002769532358778744528512397968828522416139508443405925480469154148354571496461061480087788123201260583336462469901027430738932427360054039598184768918883707479478438862543680328583501665939528902134393589091067323517132048998281867545034732980403511317375053716112998189898191488309656335198709150364031839828929358224796851079502557892493443849761840216658420550295662687081424216707284234714512938737260057261515279158183635881852352644789168330080888415832293723193961152142833169456798655037351699481401068979600173119213830295583555254095078641230908628632678991649972671232826025334518638194864532764923488973768203834825525638250055474097361632496247767315858504041939068699979584939689776366102941035910859337580001941017316439120678468393464012105350653438996852871470727206306761949117098656721939696265632107117848048131966524418498631077398670832885547365819850274757547468539851447029841197110431163655589550099463517597198089908156197750234498053748513180727596126197952047191305448697668286185287494699390323098970302982799083258280977312227741514517179267157629893507810438758049606758550397187318315464050255026592392060554152677715197794997757697922944920212300649011829961818727150412095450620653425992601189555377158106197385783494055347329605712548109583822002905874939685789425445745660456275950625710650576556349864992575140359390157095416826492728436055440372736136258442249517654696762840443025834583214722588175012721043523794836052343966240902606533200851975099681204949070494099038105980306815454187705232475724035032357164107755825942332263857441899505184837437226864233321669750094662484571813278148101640075435947805528477846127754748668662224167291664696433559338450646453639246480314641876160562674063946614718838595478387245761593964118514262672265155826352616453719368188432532698418694418854796035616058653949604318136948634663229036434710100126596323008891853660740327535302211499842720768415076250945914526313687443706568925601925207311610339570132939478995919780892858508151480534983684429200447002905506346433987575691286079243233577963565352594463639054818173601720273476836636245758048706118797555309448553299239947218577682977153833191613273283107045917586046097623501787369039556903939568274113005910423189090570469089220764697352512996494404063882608656852959022736238478544325782885922029619096388765186672128747048046314998927084721845862284906186527049086713336254814096388035969994742780636936112957612619961649739360795050215634695389549157956895732857839637032868589195073913766573424171239999061914515186426407463579919302956274256550140336763765295233435564809702451290120036869783826735903992149191753427260052689095272213394570646389050107471904615417306057332791355830087610903106770812124084688930629053975089725451315145903710404486584977397140481415815266674626244559019824873988610637744775511274587862151514194778179900116326594410954600000662799774138252198048399228465428808732679762317060481913681317834512897393836783034131623602260313047900150062915616750308910046091599258714016742883061876642286565191508018457993867674413559337713077347752172322892588074329323527786334949230628212300370932889054148963551225891699123523108051547169016020108298737870603849491107764239507609897744054237134665167731105201176169032635430365097549326252462435513038270749695765145110355088395974059951885164782403852325813614926234690612379603763649464113445008420776647679504277821159288621562573281714775448175950266484031659476411040490006797543456011263254631293636764595224208447488408240028927424255676613796366369102968870868796315901750197558857094065595597748202961476364924990146971698740807799544136873300973791392134665537503298189143451620968663320359463199382692043420756035098491453232872981789449665457389332478956006394675219499318348092829292465742982020413191654318244857542845182656540690209817385068968408215572093959264098864878869492359277524181282361717150521555978119576277704703477652091153465681110556579878786371265304667729885133858931002864310585199276039529592924179453815488763645880402705873842172806746835618422504526465337338440100443298171278550829841416460923704394115677522647921263759431135558089223830088133665193513329397653432345497902771196064198302394487654205391556770174101083769350894322373515121140619826411676276753747538741859669682423855919494964329622987760268975062130733150953980286958560682607012183200728027837548325535729548883132656504071553606557570602076858273190922086934538979570453539252312157893866677539648943599448975340551542151511265679224014237846844762463550847706003633736560756458580317519221977312179120317250994820036320655917577507761135225576949902561483393385069813493538390690857921547210335768062681381064906165442805870361366477859047699394920308135296285984320472666431128504645912770077082179455580835504605031933905894156235721033021171963904485074605176022519815976764379635296172057505589818165323073601649342286562261086933816877152908018493918791657335620604212908470774666553349297170170252801437139094546209479951107575494270102271443957826564116482499670585540931986980994472021689031872413415487669996048643053046536291030720544947116170374269142431379691396106433407954706133363794941158173687931643744722582991609820917667001456257036385255638187521549759758839149126860083429623035529211677381019130998415935000169888860243149131707028461593700620979552421016332235229361864431418276866605146285762035912328863604586232002064303862826776501065972992380015458364507034237380982638775979497306298340931711418577114179745671693907111017507702636726923419967134180559442763730475449898431381396976184373600371880430918919091555957813911128333986758107269409203837633652425002730558933557895124740952232040936915523325061954045937507672728570633028719830460438608708516534396567684058105598465358702485709890875428686648526493512705627907555110534212042352060596482849951301001979019105325169017317716988385240256305706599875480684228831544408434057353239930032020226154554002188044051022240630045497690326961626967822927745923463352299231357671471966488791735542785772304006128588821425983927766049978080946857759047157809356114334876154758634824408250337258780149979369112727954312871024338153824492579907213596381249815353401093718632926320833231336363257527980254889722030327254717049730721515925954761125639707426593460545282499653681727098594783532840104753027793656640846334373976025746159616553728906402026694924165681138966144824092696966809676686520470671679770328071650410000475725890503393186287400856541992551840960032832629055530186327979034759276959125301313107304167574941817668556852376846881286611705627173880139652306278613479564862654233915833006013844141567791659347326795035017134720451454560532450938231213585459063071572859166872031119901046516365768630472403926025555200298389301353667093940868736853182764040326273863015793711208195109216498674172148671622390099233117849733497605495054071969579937465334686787166480448986668154588015657497701618267102006504832810425928699888145060746186605935271674993870912965921181459860488888794790807530727158119989175571507353466108377938703168665011294361852865278522247850440611780784347247257504440739545582974904381964688225348360758315420741973787880936103750765001513029648604056670556665932409663966395790061186565386975214761514329367428868612341601929328513477969597020136185462790148042673513391296294303018638868158753677368763326621886372807768926668045767609180029985933390954364775846066715495664623538957076226119062170997001171980165421431269825412755920445890100566203244443559697677177836045789699539015981215078867367522607823457793538738388732311241867025677129295811663497471663493972424060305957879890002077316077447237733207244033162267162512246991985665700849974113861171623382416531809843261712636584671234217516652135813421286327993684510105875650734094608676819793118309931885092863041645668698988675172899553117040402825313768153985247954796960711446463615841705902483366952322730905062629034138240613329303247344464122708038531174695350359430979520920753223606647178624941135965011322945941762778756852338456045893638491323792198028876752658376589264624635095278261048003115406803682713547961670276928437462756423374232050148884005491366471841402229719499935202454922366048848202363056516172971650076455342242529094789197666790451846866314094341969106310462652942506962292449310742984061292826065100929570444236672158029951986724509086754279685463144045360528362752911279558894270581242163379881185143446326498070685351493121952505133905559309343765762732098700040154488047292240827137967254067057685086680541621864062483079150309113330764241325407831985347778722007058109333363102652468067493477070538270536486588732224625349095600360101219714503322202188974778326342277429560950485225002809839552326026627818956983549627288613322065611938374510247882688746571869097010922389772062546291351471564825782788587606564907306011764858086136163808854789743620137596851333278757489416468979324351707899376127336447950345026088798499324446846082377805587680527150782370389351788239867907682757539210453173373521721059741701940319237979497894563076830127445345928391937390659274290730788202529783349468084767638577854417321298724697308939075942928802445910115908671695547350188896818109224571951317335689721221152284035587026926097978641129490060095171696788877842840604657270103130072527638476506234745902129837474175486826301348125257715258099474137840694987545421406956347231335154866662705000102248677742010883034784535832425272862527612881907423472994576433808264986692526544542892221229099883155253471387027453314165319184996680823846451631440523004762946038885895331043687757345373442512198761548926086397414371653542992664667230177072680361386137960530140644949930476409592929748570324554302173715537403560374015345173403745741929879313388179644040376031995665958494300872454444563917586522129932225786179088335783658425955954944193407727074662817923687761055987748158407158317318821028294004471150272756204874411873852534798061197390634782675682475274103995123818711305159084958179876663372179807565677164104878584360979970236652425141087519288122498316239947435875771866279958622702346691376288854248821580483842252663173848125310182939551376356992639226469770628515836893091705954877862924648662955822826765620278032705360703897077891408758658442891762528456977526683783726703966826364638209831006022659539054851099483828958551974910208047134907828205629399188952486495080216349302003989213322558506383596355661684233826578071870730672038035280919185787624678130131038205825454615799188250934931974656500694852350201747589163490659640680867280843378281184884149332946133265593801505003661733430861212414906670832289631918439516679309833479768092096091373888506261741629539591510730941263599830455218050117986387999676731130630986604663937439813371225812659085840028343566983803409350386221172543721603245588280684915382656337612436581899726504956730528656360936991976246017947937342698871914570831324062285766834108188734912157719279565873995141246728677359570498047993832753763385205228309381236645532626064927460933801920750706160453732933923421714965074468393413450381935780754727058838027092563219254710075680741010578828171719885400991965715756647440615428304720898414776617671970583763966128331409688729708074558603186370540981447541012537598826153102676240624876539072601828304818219090990825553018695416690384677733886200457265261601619851538679877856108936613390605205230336649374204559182490968826730294570933667044880496516205154730141749337321509064919448092892938149838529557545054378903690958144257181894068301601302554065388073565324669721354848915671393310209421286609863230659015831756558386675081384796169991615965370389434238469652101849742213884361991869337114120294965648690586038138402416479954998167264124402092059390648838540845768359346842130790735253544383111480380182011513574840188621782302234627913801797289088994602117548079195067629361297002686616645292713661995960897211584657585284768301683612448768696521057985348719069759663524659202863404556979486517419066689805274041452983134098629342613236678857734442768309681040193920833025683816707466438220099148259626506611082768504892712565154147491975888194055584458108577915491024807396663163043821215187722741756425183218503259080333010434379339630211045294078369067315368576375566206158956314311481188803959009392261862067863159797179216936305607292996644769718559210990655295960125086588972913567116912610679075539280042025809686424967080075762917134220237962153725573006474686997504492693292788635491844883401605940746840362923247967993493454877682238091607341029392875242111337450114178553615895651821878807993752350505841821514538636910891277236825513833895940960206652615888850232203813775448315397643863638954305315233972745623663791819811820323795947186231718967153461807791693698321901882641732203029880390172062984836743555781823978971575380641183807521254307374016619949069056232985167151128366261585413904699617345674264849968884743560073379697511212629583280160901942183218042011341816381284867215409983125131723888133973827305053006386378755562593881168990716168083399259736083075196504118037952446428621559390117900198252911872666225603350523224306866313209765840385065461663462108112008651582982971001692572684197916290427865195233938977364820720313207443105122316225092693595454931212143863824963368521420667548792276405640623251134397591624581669232144132745496943499582997747715128122016086258828059402057744362221059435819739559880635448551958866759316640698384465739266638902922341221680933054825966946341690305425497672493207805235399814799701912406874156733178589079585042901257199356663610104088981052899169983161668380264305492786236606428694216737068603530837741435619088878579412035455832049224347933302823005321179589951916387165210107908393739874898532218647717851929071587208267920371156600794120086619173795482696435552203610865968527822757192326356382355523728942156850812962718396622110214632629803535725702113303299730563927741969320784671371267570793350652499473333368549506948766205317416737326469939823407311538178980950874225991756677890267223276814808336618718553175640993179634114029868831589906989813094208176770649603282616177046627553979937270369275122279948455607981221351582250873419342620583881114435886312304389205126794332002143792500214079683124986099958022198415037827342793501147045743906378417931066849297870049317991834058943912804163879119684504713054525588349394836009137884212024917166072845147620640993510286848415951011662839618892337590858651766716350696468818236731184695476314073588887689665489508234175846949484611198073047030988294698006521190300057208824482318027418096141244336515635466502449757081264705510690584326419344358622635998939804177248638080172282329355060978143081717654419737233692427682171882866474473283290733382183183549136185019874939180193360384372592097539471134257493582070015656128868416578617681431476552463989029824386151924814161613613873059287178598458221820563655381230076673625701141152195838048003298404560608911296077749021536283600341304356904301887490915338012150141065975321956649161361444426066523819206207125841628138883106205479078873912632701675381543173439446268484418492583539591554690113918565707818309281191098802280790922234529582479658561336496127733811070866077740666597018754704253425890335730468813643672207553689027063052503492179052115242132418814286696237093687968509542686914278064794536122975064677174348145101431698738239710326590802039724455564401796986253276704288940375432670219325156203240103438192953934649291688827070841237725986324587929395140510521956935267780219634282185020865539783747201710334763137662729709129473138391321701405381113860862024650232926521905829061088219545547936814825918731396621849082998909532981420336086386470275375249178495156617223832691811403577332720033560508336922786405347235417819646265648764116688148567406280223503636690870245901316049029067492047566390086838055390896733042770175398952159906310893379815360036321175742968132948406073225606206535408182649505538253975551768418874699189136448085400978746851758688585705674551339266295695523153023871721546233113545954406331631387317153270956632008800418175969975370239654388233754576023292069851827664466624312611526960618493609792488851754076051876793129764759897941014554962281139646172804141061650930781737450050733801245587766359908810591898501328818474177712342215550479559322779878922098824718495394708422275928698601966485212886660416442904833389764547774333600707923240988214301670503514524424993526822819508850163465202029970057597556291203163754066657703677909772274967328187243908936533066610415280235793988911291525255468676776223690156190253895043792096040858883995136893786443430758634951054522399158676744203554372051965615202725440251189642481628421423618645804143572585177769982665014925064545835332785488852751647859351179366557027809705465488559647860809311935705874644105889414732118270664583071476513238299694311297598966754396391156456104813127089566412077879426434798988732642129078870774363092691891898388066395876885503974312964873850758257152435493978369360913809464316733163303078092554540743785384246723285618513786910946927101733636346504251095653825834576283685344529350608679934564532094808670861125098902747016960406052028659149202256850172384683134214802431721679380969883739020158384443795127872053853344497657557692049185734417572591670796254739399032003299040320226803343585335830622819638492026407948648778885194718473038557685899235280141645319370466482690055441087812282266798263634680664866826525075412996902108923019307015209869533678645268274665795736540687875996113212875288663441204356783665440766309146083090154810188563575133150134926515597010537327361929420173492779091862986403701503881930775903432977585086672671873193017504330432076709316549434910490166495387693837543280699129366202960854731254382768029426453180461763539684870121269170415509932753384396604170745309813324320107620023110210244730303775402597982954499989041112926537933798235903055751896410937521970353782368964004885329408432436972180955218757378366202747606211395715850724733041700582568305840146083805713326675221175993431434574989606169134264954252568603299904505688455435977317947163796425064422780867264373596771338230970381300423995822069003881736812441308996635432773156480425676903470678290094642672104899325272806980318822183577394673185977962432189644832134905084936224723196113074398023369895303638238487235743440957587694167744399216637927470771794542250602054106700741411762013385286464713040078427362491566504611683406707378247103661034599132298982606782279965128372722818090835412322138068923039189244133225576917639608036748000652141966434125189147859885922437329562579553781021987426986599025659081460064150867420447551498421068540406732565311739052373002733258007184698540586883925429104783326539489206290024605763848617389359487749162809154630650442182205848842324917714089133969502192452948017870162263383597069573188403985230826202926488954917586172829908176976684284587096383508416718492916311972868144471229858737295251046007954921773942230383191525884579974928250759492883541583871761008644759473322233764784133162743830472821454177136253574420294504889831777894216378025629265884187788562405491245587001992651363320385434614619575484694873329094301232995100393848904514050101858749934383721790191850917310165349475295528538377056490658330658693635935475948370186962055221041078087837305983894755003437897586427432056924702916603350472051684120597982926257444996227844674706423992377277601280770254651408587442857254220126081960559762255181110815047647712643947645209864445132854824750029221996570950970996398481972937927594187862255160242326785302237851982588242008881476096544737989638188546989046924516368279285401726242790339039719890864872350738284321504205026979004254995489958359830461449684154572679954903769847738051213377760576703419053105500443605278141209482456678680433307239122943826714996086054077334429041899618499773557136435362118858307618257537158714262914371177017698129796207328312321230185433574423599703676734701200100352980226516598704060521474060732705094453994999871503937590959275397963683490413499953088544877027277229119420277323931829707099359806195228108843648339626889477864687206075927732476012631938098512962594669416755633452076855636596970525036035409756321395096946125481721878080453747000513117078958816650134147516511860439115636747700469976245710777598000921400100047730548781534649915835141058873401098024903550544180434501483998591518951440359755803733891876838604409473062458353120802998911352935838075624321765028492493735856137572975272301594965100868512114255693256744927794399579061662839404497967816207488694358106108145751548300598070978827392537901411188069292757638799585601498452584764551207343124612407341835664836407236301687947234350359177769331051495318733112758510400334104966031145749369892694566997123136351621642082054313426388402146279827201114227839288139503332802561333845839852631180946210643096600583287885957513279096549915239031940439631709041475224392643882241560021546725712364379026664133825024698718923791306072172033703886038103884994201769628793938867586549167151999359774223924541210458438561722400753588598970048208434271779218835080427914036473390544066291055968801715894742634393048491781250707005073737437837274971207596018782990608257479454936159589247829476336298857602171886279803326031578831861085394907566291351029231213180482997059578128508743140618079804483034837130358256774225343914118105153012334036004078213274615912806473718783650862690868650327564926209994038193366149316231837907988631465187034503923928416214941061724200849799193890442760885538486469089218237307835395271728657028943577099871411678976606829193979413491058155687660353964932246319366291943899291348544424208259004688879154867214048400094210103046176510853569689580525321768514831226621741038266409950937794752572964651123438667130245398358209100970466540301133133224653633120113097515826658815563721804019232852047266625873907196173236592224707054860172028131977372869149403260458401108882736105784547640201968219548418917900538931445125970365849066145552182781245608522895699465983502416689379835217176599038086538539306809246453922344152272247738316510841524471479201018688072366141853040475682215302749022653376589022872950251418084995154224637051098980842150769554887605468814620790634869249748459391935698059440955414367427181425638402115391310876746372090275088393801920728642984986241248307981594913468556065569662108211926675056779498303990568920238259546380297400355217489427343987349925608941716877484034381390352513202812225918179781763840528028970892403457999941344935755806892204492867016301754174146060832804858250452793633345919543368017907966934998543558020222768849714604525046487010102994304455080871259864513966556073859911029937581016190621457677040935730580092046290835779287556666753938652132586387048672946319291864772989593606699728485604992011664292428517688990718608956132162964253806792689513576644633969790750524735888396230977028096516987517186746535777067628704247068266203993994108694656786975563793002971723737535401189162595125422112176634381470199606605655549641833838037697406342992501532927769152937513212200206208056396651361110151767674891604437466927736122099656782045127864651876850653201476890103018175951446138952907088033213958955702206519408372790775256822549409221398160279846224649703490973864915130803941239845860958929450455002746979010497812166013255284961754090011502979107005144302663801264248684664294372141988993000724450576384728382295981324850829470991316248265975234626449200988868253552396198663223633506840299875669481206421489330426758302558413132080222184476409014374203465843901040742546562714547264605993296054730615615426043602300577623055264445242696937687581954181485609105656855018452505346951666396674110619875228957123306177964624940799892608953810114984815381792627521417776837751607776727661255898472216849154831004138873035764811588879618739993575635016163808463479593976698014446284633221906226164896877763354266111217397031895365687976418797878195021125045402520666653322146501093222754662112377084730742800380189149678608995588782162356634290343449840977892996131345052685857551589171321985655478720771193924800189813594644917324968805376998014302791664739636798443412193362225920720807404352672068293311470307502261236930098898688602051102973177700986853512972399638084997563470957890603718269729957769575919693387400052650881247963686845846501218124429506945401366535646675373262743300164488700527594518178226734860281748861084821722368761869087599776720021482324702968474929600583201380203310998172015678516574972107371386983816378395110720386136716487358477550502619933367520273528678686898518357697641713093362105810906207123833560738455318445735762502100730258384263973926711798352993311011651771944085167008679876379788887160494467185467346422442041140576743368514267073153147273723039201535039583158261201248721412552561440689611622422424758212971163199754435640423316933923039394869550413469300990435744088839281768422676057580585021913090348995974188980734412161871978122614371918892546451680190930840301197423299047446844655787029369635132856046436117603546441983164020309210334208833582040523025781715630558433447043523749369134220677725936376681121572505728483526459319095613049114078228546894481974264054951887129648390899789007456911486591391371962480059620633984436147196260959620205699245491778502138299560958578913811109835377095030691143127063621420658863674712171384658524178846826071855154765315270470054895697881475897958746873580188478876324676890597817530501496272241562363119540635943926376518263830167306764723132003518141470587540794930606451784231406073674900377307743279462864778349368330673687267483865161443521544020869827574041043290947847280068736615642370209291899893832096851263281190506371917005033118621102279977222702393647438499784422833444661515633617482787023390197835891054532753898390155268484489857415283754490689368445072144723745177113268447980580542314360068178730796250027298752615747496968727193420014230478741649770804375470343200936119858924594967234101050132695104494269351277847394597073723055857953527396915121308835859474877847291266195927651583380716012020067467173174424919028552717741851568943724717172629742741669087752926841133901940951019894928266802054797053185188929624271331254645247325803036670966069022601328026982001768391600178021525187197522626136634083072469660144088314157245330618904326546656755131317020123582834550400220131902933828486085029988202981627151444860447885275559683211394729825334430358909157913828204892583786895126840823669582790875592851909469216989295772382984218309042138899577344919233174966225185779541766843248092714816687960524628970017166106450570072117172627600712499488954452772166683379881961778903017008250463044479538200813986670948945732296736592486886107709863585714550515522341869534191286292656730948823820123980392191416752249407339416925827422112310963181905363448186385413624232858227876575618075379231745722901137785340340539661725551795229953890367127392297089600085593216956793896216642536513184827329639363189319984639546345172344175219604728034984242551551791523439055243469114093858784155169039009741830150751202738488867910386157938211684522238375170752594612159666171469267116107719181182139658664963694176676447906870987020792279116897578320018949299794241758447726459018692937283660900141575727213003024850363065975706330564192389563930117608950983209283742268057493284983318681145097143435272116565778989714078082151802283317707153278208917889584214517596530747314516788367792242888078367595108591633706766092373561863048168682004086495036739650858919435927010298025057432959270096485365058324713694347888896471875971583210616319606950294106535568024058545266208717294425352766838856346885520461546298285718159908319820005843750527080036539923959154700540618444346253393938138965180811445820780758306648516565365524671227628253444896870776391496671299274358916082444311116780380458789626463998758034870235635881179848645284951934961682742053510489444064989693006912215418606512699900967603825784514921610708605703108960122105058954216762568572703998980979203153456205279364923360175055831051632454802101922272755089983823314257132671931125289255685327914918384105995212218458509467182297225439961210420450390102368610183117997305534428122428903811485458022829017653669087184324973555735066468688912107652698978555154193131262475896947433066686728081363281742778980277057319903448389275417516852845917112302367066873079330746566182297173004689675317649570760567534753048375857942197991829218914579150394791600975485692297774551716232340955494747349157920719466727927774585349829321626110199552319209063458438185082616100781554411107829064034041859026877081838618937399666915352105457750403099066309779680123703568986417570077324703947708339436302777481611281828848862377180544826367232692841581784242751361137981385962546649398759089092638974501143704846784400426207126212541928804641216978742554595611607135574279067658173537583637723630605352351514826659446053525189199390099146368392866376003647545229501030869938552740881368099162364142943258859730098864097815534772572805211488396062320336560908666327461369693904539518471136075411892213444311749169571174130523984257743399703915328197813991179539789480014927063652807950942523461961847702509884889104053558775125989645351349539300734743576234808304336241131844244381248691976333559783506968251712364195044808490038868302922928595902678298731428325128027900758451922996528229818429933771141237099446863392588235424281829156104674123970328016227893136204604118886318766584190083188516263911408509498787343065565057184562506886073741930474521248824788916788370197804399855438289747482913187856067531041183009456416612459747572131630255306156312500821533806562146789756890117313920523462730783456684628541787331146208713849189031400755553767322253634671649133788134767497145745760055017439779535492763821717178537110166615311441271528286791322200342713731195032227934404367848363942851040678100725464555176806957557088559920114809580932921644625935389862854833673894591330522650623207512009472035608902562557446047627929328306072223035843750543146866085371980459163361937762265073378811277493921588184048988874488670663565336472473050937584867152448831370313153880624026455385932071129856271491726119870160758867970505269116586960139007270953801932286411455463043901419750578391280922865273157970634467891613053467352762561464574911870325359900847080279544256493640031216868468224141054859392677467624172670249890251992590546198218119768640040679447432271883785723618964541689676016750796980034164149148475679412738446974807491661171623077291503978514808803457399291954012031459841638940589267290558975937238208539625449426223610786668403926940918162709999112062998309578361400531775508271491554119984847521680660709908187795206796635478540086335942216284432510220515230730379720090158119572403546534337431466453090938923667715366235287364503262311271618141864307144794381093591270556122037592132490560557919025491768943219635544062691274533386559617912757675398058507136037484242242913072845295694275777447373089296387770916798818460838674999806051883213971982288057650956198920850103930057078988541292392930622747372540357956721487705972829806603528409042410315969380579322374058589490607409014070432585489429346708612369633834935703971500672760068684475180330153244603969912851878235965478279222785620052975395641846487982158602330159461209449121538894214827325575101125793332381006537250249861837436140050907008884263303472068374134941756468482473115053586182639554100636626088474874950562083387824022879736291309069489053188745095754194073898480905152052115164102148213118029946952353855110195124153545789704511621048982909308134433525899340586172573192152514461129832896066403085554118130287406547261542836185967392161407327451042954308853798220050134928451776300592184664935614619444620442889943433312877711065887000690787148932685832748539021093031417476171340774035131734714199428559318972238576872695517015356422910741439896384721014589996495950809603161204092344129730671237837760191627256880777115505761592203696698530945264860263640596932835310657402493615342815514395145349098301276808382551387146027673194151428435230426212573741887836682388495884260421618700483449767955069515534387289684868519345485368617953401961102373644516803864604354063357949771857780092348848309606074782458497944786187580405575510234403467335628932730741455131723746258761706071334061518599621814796306238168695440746924259912446011830285164251986817159679100057979925076637741195849179359881316931719234500247883112464135326147126891494456626019376532239964482287828633835847968391960918665070110295422029102900033772336173208225366199233195759392286106846668672223879366476579432804380075954206872971584769036548534939450895078436043363848789649797186248325115150816110817585709360243493946825335713583228921105143190480526674961948299394289575881951078241182991449300122032653742375687992834311006047272579224129059228706185161573241845313796319040598511050645158297954934674009942111364894129728097799878234353211534253711815485122461685219910218879284964481428545701161060720652892343524282535293359694057566862217235653315708465865433273959430899468967390537646962812861240289555756223675023360049355404149500253916441927322573887524783081641292320497274688533570878968809579003902921171663016041651760537439006655147350980607131687547613066046871769439924665240585632984420623903713407311498835536132498336186351051736695940081270450820994741022705552909163563210254953212342769166250681964133698747173033085313246411096071718272024581286289919003979894847832750831088740100903783748716659803203196678913165393877187201639003944505928836653442503499600432533035384894458079868857092336718017286713519725778365775177463445163946350543993256229074542216610436903552369988575740870495146322255836435624677378206053223293323695494845316031601192878436507076461380805531330779991771456306588377018428612043432719444537203572645682467067720242128860297753872101725646503152176585915995425215307530106811372377164669172973777513472778808358250759131555934043641390225979432655448354184566195434272533374545418786123923354890003809430466648920528031243378186177360496342205837573912966584120709482939839347998896497344704536933754836268939315722614097842429072917917990628938054795167031248096680440589244539958356020642937099967944573832648728280759465822930770188871569474986717550036774892464259568589380922725538100409776977103243491583029279123950863386117269711097580233994234616670430960388117821349788989683994523610738649683640979459433798345770433622553087425933036829178007760198981346647044717548620092700448023601845170970362879693061825658951735361162892495159761177953039081574791530837950971354821720147961457614814303384159684840783231142333582722765469429442943399147455577446820585316213285157212630769390367067260381618563733076930140006269127094905224755675950800760438645341501991342303352930402771504603016106402676451296899253519340637938576718241349214951637387743654479561126764089715240900107957250023919081309593248245210495617487767626661919712060557459190041981748595896759893455985344152355618713000587602534856104529873547039691751784758951578688149141831211014624962242319669916374889224421622150498013201062704409481704711135658084860881026218081434754208245049644752089731769918920653472250052769470858450234804284651156276226418000885578147657154948800577409756668004786956575152765450384612420862786744002301123274466359356039058490268849487592979338834638684857549350773254175045917753551745772422934409035909162169017577777242814694352602011629710574048138143642856925735039128102549284513354170501626864999833556663415181986631435723212676703022439699117587119974886474632734820326825816970877743292568411286876772818241039610175523767224565181119540544741477223931516649395720986245361283961153264663053720219628299331411721788800532846110341717976013940819627057370647149230770460165665420208218878546866423596812446038689588346231317576056453001028710169481477578397960029483570054340890027623797146745730241737862185919420899905622867978496202029072065568416286322233154050229223542281959477933574462570781505395164189945471454451475959322601073124059619453401139778858000769004915881058896882485458070031327432357985814036547780965695633574514725751891209517808098999650899685367713410436376926870469222404020039027942929216476683889345650140348351503081568685071838113922104960607725964536115283659919563884514273554698939894339318930554686317705814649238785944243881597168556141314652636061162670476724505004456115018643611622706888312415801376349615057194790325584659452061398920514989884703531057951828348186686784967709405847511722920447865917404740145407492732002481132753996263690595910428234471435314066267613747417467044701297725025970682060216223266080227959523265995039989180542502466884614859805918574875450340691982575344562758446332015696855255993692863202654356560134972733796798615451718630487907875719088447399466694309094156331199115270980682088872916988599112542366744287681219102790570043668420634809799455225689652915069681825307106999548452679902187898786661060864523430056916262002408724758664675287053167206507272143195580406058819279237364696595801133959157700714973583357056273301250965600955182719124992458361542016856732665605390667974988242000745401938410918134621381322555238868502504283782878572653632525886025671230844446493779668327754760333131013361170068230861724840828216494971644397372678361538807181042608237192838085808927134417544791985784939513755471716775429844762307595463625131955929729950877506937740924213098790724471898549998292161437502789619754247588823502875314314611430519419072466140092996696821939693520094637421080422105397241066549597922194447912445249664044052889066373240067541629390147674646916523160007871845362168329761718362310293623156989052771701939660511008044889443339089365437208660522291606420018636894939783282377965011411931369679715731640168117538957095453508919317988553605815003426195816983349240382600027223459436092242296358454795734476091525132771436566322792674715459383601231593818805979773880287021557173992335310444767074322460978447526695559933313013852578866621949337586032363296499989383353483108880104729355458787662352111910306218692555482974885178399579600969804850432790848295191988943261642038263520602782764907776511082223919252141696053036706476508567839637155296877010800022008428001628967399790638727785997321229667348325106466361445696103512625805952622790870594634417529797836700770981159526479121171787114208230034086451025196105760204674603552601483232821308256538404975125232124450239373048556059746521860426909229288505640832971621622704667058681710331714406052074278569870909054229557951136391802628696883357738040308741629970732188441617813114845080639892338460158452664155972151730732193437061863889501149623603058928861715090638650133224844805729180158303828576513534817433502261850710043520241870042370151549372646457979758054171259907561705505179109395120805192448089357130378782852374760904575298315544318950802670972040874762354621866546082926953696204268703038375892214138465770698350550480144417593053032768523303045452473419925959451533941265753731600898129515931082304801419404988821256733547016135266770382199809474856395235370030064587504088532037873151808429805662721887362917572286075101694291012378162059874309745516628094723513235851103268972842155836799227729717698076469348201351703372065024119743757005763365095924182181497217002640010235077637279104856954051191440998805202525328972998558354999396793902301075682253415938049873977020772450163822173217556887117094984726904818339387743624720978365059156588625042056085471580094524041738055497598326837645977626610662187126076379157455842330104214979167927428603590370306443513895801660424613827535268929801232767263985546025252085908272318581948375968965372437335424581747644029125142961074613398126534300717474940368303923261628976776081438563960828284165667291595974105326841768814759675495294889409683694214121957414172785113435375040071111873818306583432340481510526846611396819208899037145333648214945809525740017651844580401989007649756629361616301018575473046849374954665946670580970065451164112189993510388933225610538565904520197097237692123571661003680731596283549687226036186441725754129177260388094414952271448393919446698563694895465500518130935024668249609023955620463191767925260491094459245668481368648290812479282135352395978995875707940366586096071530364411504381374360191513425101837715166043765238361478642823183751570734398234469655878850860805637792039629822090913944349254548210849792887355535083621588849376487376082053388872736195237007926979110854241590445777928923801567518259254721524665029577306542777550793016112900287758088529925485475006139689751356718889353731084645492729913420673830378829284722700803657303278781629151499110476525527629228167516024656730709728431905096393411848257474834024340532897441703434615274368358385486177114873281185264882653523359427758437635160494010568300517324103193775446295363554654128682794659650650298927599825938976650580584840749327632612318964275375654360642428915078722094708924719441045417569592907505169356508805022840452348662395660783406295150129431416260561370820862046833567212748325292509113629505302802875622959146845303630830006471275810628210147333169438192729324907416225183688602244623651817529262825667148469455127471334770264753784120107139651900247978244382362269618481772903311297076066328820517031277214012252215301346160831561587306775609299960003096514529936838613022720269236340179394152065565059532052073266032877465781190574686887295776075943998991141398369372266938536500709305673364674077076272045177894809234946892785531740182209326562778418369361737320583920310091644686319403869610261768483986281445513216773739902542926964260150687720555956374179884188735663467615700318914792007746943752843092567677050942440261583409602408349941436196863248943737785374046598755117163131116383440863248451987235855308106029017866542460346935125997830065893741789404338475366577187067895327568659466980420560454075932605478816793129987882096804919535664280612863801308272503301124229433336374077868040690360746609382503351786535522223416490474791996053693537757586257445699316307678530247758826318377424712281040358692599659775196718916464862947175690763022486754053297586616655620358111787865237151475982008886673221015089682637110023420002295027735484457723823652913650719664572271275562207390843391955740341601221464542780236617262438646568724113784943508057133160103944137906378665132956857914974219118124349581151827352725427063452724505787972345000610504145086875998614236278269575794584698471941654540291085271868965584565017585800063436783226221998407587071015646172507927870370040303745122991135014308240329332867430623551464489274034767305156515901914621033392913567934710620326104181344442103227279911057673657113057496870088243087404296488063241611726642548876116168223289493114726769720772441667820843854308918927630609072031835780187002635885919416203985010044041360847700272694282574501162582806581962607197488461672775109797416780441799194416039031635496076260207336327031037780179023572071014735380670226755085345919863354581123421392818721410987905972233941751579043139227649134759031852939470956155348657568684959276606960980974899954868111268317754240098043350726778913527477594736930623949957123119718570542911483121924113607054423394392836961119368603253925750542132627082158687968348956747306934612562123593089088448623625068920802025206938816112669388656763124165695740358036943934651235835981273039376424114211858894757072194777698704494545624438531073532840936374880036058756176373482432595948927244352104735216695730793302960178727198843413148963207925315505094092971431132975590872958431113074953256619008258712318421424496903195509563757421015185787033071965204507822303259993383480115138846299084571754510024583121517260029063771012008569558485249647132386127017032856757650788304719422239125172785023250450589986160255489160454484287024640160115113663762250659153568705656589967596028187523481430721477381805921476794439875460791995888675256388063286025451817362084646323343106678681415660587742002347203163328618850947787787043862935565130615251921311302668880102064689163035607047291969292171615316301002620080017380543409605965692786484161807646264864007764062804422032669377000629153442333860006388426929064646015882196908240001844613266765144864228077758090238530815361611239532216976100328344479622286788629614394619297160897083885384366110252094586048703314562983231931788074640978117706057691848759841154058848344358674661287222107277702204980825379579027036121073304591737109671764510052262056679912723162432998306824087549877993563388954165315483067489733511700444866239952061037625976818927969424521616729695805283741100406332858281901266547596799560264482069195687598785087786644101220768156242426044880000466067467163142655699921493722352761628715999045101343793113433309663841802275812141879286085271395136446819401235351821147572467906163835189452885518869910677190808923118701607190453599935722325180532380363906479774514608498818561168879367569072835701796202972245635905338107610814022603528515029399203842972168581281351175506353221747591433534591706005763573569372742535631503315676910069428398187530041310961156653717997545326094041199825668404101571908495550294264277593148009190624501521163842459916073234534536822164896606463196279997144089170600948236805051078434486324857026250406114573040431658971778280289029533845968833678248010217948676251851105481664808652449896079724452063282121734584539564711356906109636217649064883370019343135452513677952524911530481985076365819765054007368607425212446413187063803914461887330063230611932936815461164508272228997840125293554627616400870436593793845916159374116966840882991475776667670254188472693898381811623478458411445242075183289279664688835342559226763783757473055448568880184835946741231276186928462475495318081463007866769870708961656035958973821501414240761853007779283527180960733115894791084625253381079316981910475405318566653025667591279803412916448428554436789497585805673509114232814974339306457511847629647914729683723614299209148977040825697675222498609946904686155912800789653454975834822288082645496923211296926178144797376786632999268602837863833259953235865531300385718518521711048034287300484508927848088435359011523541108967837420070145604280793685680302687004596660903170304731919793815460931091164489929292130479122817501262119739217232438133592504835015173153414028228816868136227559683597157964996952250408003784737852811540631385698857033105446347829241213419627518703322173765175974863226505927503914595769082343201399565217968556232134938358461288772359802990772417437729273571861416820845435175938994007336731446049337350554585283343428840195634689355772404204130044054822046199465478372493337299842799390056974858976188313518965477735305260157810155103225633686265140550511472288299096295800218654678957714758185021635041059879332589167214404864548316205707333496417430743899232440538122865598868711615777326469965328555086347441735590134252920652160684151974967617549524261460495991531659446343855439422958707202325207326460956484876972144427909555472590989222739510242551280285865691835791733582581555493924233819318750369423481979257698026290524123065731092605320619631974001631262974116854390683807938535470638936452232636491321199288339948138888483567203744019442627792228214840682253437701894634716999550458486444024268851888114618881045687687914162237082400445741763510342175250510761679482334235417713468618487641905172787241086382802458816753534570778082361726899914106762450585166582039926918176644729052320884339366790431641296489568722974055408833747334533859647097435760114461401247735462556993224291268666128782352875910358905475641421758021140956191967812260029382655532468733056618424692691775301404556868592722175078704296654147041939287870288917418610831193459932013727132004097211919458114218288070321604493301767513076119534965145205564677619608840719785287454313356061517839469112081582903257625975890944989582047035074472611033417690943541569018492285453533867302677734160837782741520574549064607547909016711811274548849303102278681252425336474184532996579398512281854735720239762111586857135035849317523029202034504571354283336297266397239715748570347638199633353210993751926080008021665322441042666372966982967630848220762612539871653120282415251476166749687805879376861699734374972853189152335619889880955706222109363341680230729428290402255887796656247585154401929655834337113102653304729082952787626743866281273006760088751407337396214271750603168460334597349797989347051648996284298490098689189248820467294129460320924510222378830947977583459397239132898596747803494938197620719720682810496580264706010327376545427937802854120016232146384224732239278955497104812558042440112449812638758821153282786409275219502737709238543773430735468454699859622902880568327928870618123448350925301424392595092611202048551095241416412414363826881243171759137816818614061405370991511942559528132948527783445270839899360886818454768592147746185067517939880502839366916041652022600024299188585266388767371723506269523861989675293008161707265751275560835312200323113633370489132310391240452325794264485325939691336276433438100700974155441752704487658639364452849242621621444986187363764537596899210704793771376540166799183631579929311906843979629388352148605024449156503510366321112337550947840599934508224243883639978624938006052265074398637498291455822493360614725059136392953188338364494224651325554982484057892995553617899007351682636204326366541123254071649892368126160311584112782176439122111568955335667668072444260164206689995086394717429615578002589234665751053260454422056960467786870726554502837723907388315272503233307499928933817908216916885058517939753361426752977428232176108060391914618629442543761884500698358357230676944566586653930112912603543715050146476420006966977409788730629429252272193230602597462434639305049767466240831192202528663052868386519342023493361191942398847176208928843331213834885959524486583123971864100138331251818627721646794809476166239029335759595712375173229300264524980064645916111287068483410148056339021350690438344316701547749156756592457283835770630364227164572373272576904883330611983849740622323637033146485801195648744086625994743296254483872180157737381297143104547901902702045130919685101657061367861868054514354823638588739787615946256829218171694149351906803342632114648713139667821826187415586398082198119111363813296812552910508394595837103971478058624754514869166427118347776801110848396784040694639900499481218131930353728432880787406796413349393203328360186209035933207055410488523126487602499188600202000725185312981100870824844725705517741079290925218206457450822395297840471474507221762087972229251709310382841250556738766190083230625878302103637461083526590899305121723838009066973702431467585449921384293286837961162731732196236735910101247893931363684090248387534897187939075426595327251882672508907528952569450230933601995197914231061618669168040955655411219892460592548638464330504851545403298884218900903468948898177850610205627417352915465701556582857842128078071356614603313023626241148807399209881467993944534429593300964823498792740536257409208180636631250501053398067054897297394394731788600039720212971059831824024605328842691145748217657771791585504984552191450230431994552296564323329618228678922319349582209029249299479952284097421393389127356555236000221218553590020554942315802698724087199094393725006351662545489235441459249010569460932160975865758306829786986656371499189753001872970211292515397511741746306472910342510367755611155384183653146926395497028570694090419277603434394756508260313093101540815743426966249186711725392571129195137225392560755255363579161070786819731745578496086790439583280872116422741874658790309360771135819859674874601247140036004969131096140554479193872456933571785257171308041974161573323880993452081672683125155312567436819946122527065696704419278790726082876537532085877959246770106678147924240684579439071477960775416438274870010555165495723939269628885445337828498131431185057162226343452536205572104819948244893243217532839767318403468256350380643850715138897585270297321817184238815281348954808239280485915332558283109019249474276033290629915813012791725788319557578336813835894351883088465103162978099950970888768293869874083483879723092285415674568030370422154571393474752686725005677006320585359696466716723420529839883055607020324716414034215889022060176258538337173511753551081037061039800842374187435989542226224169141466931798235492325430355458272154934694449877416238786028492392580385225158063787507184800982197898797603610819839364804330733635297105979949081831596156882135507359562808026277230170349643995039199166685075657766792070477025236912706658488364155621325605599149254752573029292546156614737426016431536867169615169685383128494953636429664166817020572796255781858423378889089899087615497391937690796141374071964875189251677874233617011806772613479184763339844791789356529641486681251876566972320013237920377059837558129227539057149340500725784394230268357577686841660338649159099663780580778868015652572407289604470544630563378764193113643351340114488661370507343889014650370601544805733660333945599565376116754948247358886121776686450468689589492356311708527004512272713656632353778428468525701617550718542748798243756825400484673586971797071266523390532394725842961706892331231069540524825811076819852528056272819553701955770929891330053790809160263640307447041435253325308672612652643704085879365826929481326975871210695326983439155635640366834073128228422125012256492717469702585063343162290944500168180727009341414917292607846066932679128813923364235844434391454235289201155230788465775371448694990159596571718854168059194279746742580451382390564056316894175370531890496155045551544481676936307972538011050615218987106859178344146043545626451459496661704640384200064205994618337882545045634178085408532626047596957910257812159201406031155504398991950805460703251256952251320901804887492319591805176755379040212292019985304513247806291547316506862789214486105524166628790953027807689523399734434980736329180744938636710844112960629361468758460053330340222612568347540577382212505437813543606664255909734721387297551299917797611644546274246575471976613509300238646297640590771711957363407461406506687534743543887053980885637387729745675806102928040996405318658039316076542292854767525978081275053863479900154920632704123650264447838450718762101840342776528507498595916923707384264891339166869010389493794434884178389577966999913519696897530349210443340493564636986287932245194397165856719667522971551105186890279864407745701985025363471464964720819604858248500216399927264197776812571675224282482919378862442971197068585759803280252184723610166665107682239781787855973576090833291854088544821912571727911599009859244206820998251128314545277318754980543908185144100141622940964486533789798791868488380379063852752415736630196108521830498138935105575767506895577774684211712948250796431277890271438069219100159482923802463889648296150942685571356407642704228670040966845387492050672066389940655003844993330007753445000523581435466588382989383478133172539206251214478654027795496814525494443876554245773687187127376677833524603105925242539957177117493565523539533076527323569599703467131102733536174229612420485687543142029268980431483781197732399536912067999156700810308855131279959270790213989506446140075022418220852072502274093533375553979950043121852709073790787572372234028284330850748810577150400926641770287349513567752584610723944455512667153026819315868330654523423232229341019692869456323791943304340593081367680417666270235128324100010736379844068099037973265860653216319962026738270052413150461139531154593517461376092976753232822647812977494739628145115805563149292671337561559155677644173127510180709424055416944938773103270362422450273108570980671437188650026016280804956968257898245401672784948170550074895246274551705780847365319887099558009786100384696381303467607157485990567995050831566631413815955957691881026622136163743921124451909141565366830426049821149553324293044094175306503889322769337439878029951282812527068205656964360266314707172627699831501526318314862722849071556413664131178087334458954441968664427423544410323930889294670218209423013409357609457428361152133582344598096258291126972820122054346754463400224003960277009048470498590881281149993396634421188777746194253063101701869213454853406493285834190552231008844415437578885972953465561754605847430977464249362782422738328353839170711963169581670910480613393487292452059140917781811977688967334194930190552288116559564085308621232689330375207850803709960758084986988073359040826989959879683015511692443481519175485919595651910161035516977372680907938517474776996270175292509557654880010706848516290391573219574687577888535008774099283732240372847970593789465329919771000266134620541113250472630323224277802317498780634736090245356013679780188966694283791219063461098008762056763651560200996961737205505870714675878201326891248740111222115285304184466211715409903980673104001813296404028596909158776839616153743689844633764525781111977537168269431953378012383431525854089446185934629985995377150798270270057435983102227327437330787919827848479193922153629208021473882160834015920669258087498557801423860895535232648316111393046632535609061973856880405598830593542566768047664410762065339524183413711176950974138078249109793786369918529029900063608587055224190576264910456714981855647892498809122578434932637375003881904552111281789678021876877174071178839689996795702483884244755083548023374701675341904678094453427021831572617284602323939065939960010744508051944550758368600671195434485366933092078885808420424505946604350724240195921834778141628572799340317586051513435578363699232393190692020643925969548752103509068248088593342686969039501527007320057788271469572635312515824948405380352447797664614170012213487130545116562404343687802088969477631962433661804123213713411479368088798265492081049118840206210467181304583412932282799371825912948262215252827979908902697138050448116940479155569361255462458058571637920838632833519247661985174215881403233330936257212463093688827936288137746606619911282801177310638268198159166124433532784854077783188665141057128884215440898357770773685437277076164853692946274124380223295038431819548415112456924141222064486111765584970997775328583602843910763707158966941457833380339012352176712138091668573021860892494809603033444991861018803751311377175474936033605765848952599875554490824106676719185487940144752763779327238539112801497608461847742698459813958430015560255720684750477913270445224142981149835842982919078261949453327878512297783277905668441118135448395409564377945941306069591562322091952936115195064169693750585138732997854051837989402617074815549301489999285978778923641056801829782552937783272648751808247025847009824232865155752872691560424233035447851166602295137179732699234526652946613869321387104395752420603362557278520288535032742578883675819727527878832708275437017845559639730531366545433105040991079934243892631475500394996066633001939333765793026372957569245146215747916449637933823970380793907374571834237344015729542554458363768488166865860381205345629674919080334474672624802252244721703431650788333457710767473911524602571072982108979074699768944711224996794068607672530306839855561256493062032476658028008733339603105154391477868833950281647079178960532026206983386884397268376914564172954913152371348654438069192114408949625587678401730425042857481799789797083595154599740522226493688598564684981030699716884587844955681238245516593955777969607757307558799702100539505130914473740727483260031608910276048161010371761104583868115912926242497611854392069844745242766778824796542351325083326976181550353422045991249099560116478827426407023748173821932834459699386298999542074768545454388227882252922933364511026428368976817539173265557433296222601327872710054655989324553098497963678288460354061896587105662174707253174139638055310191425171799587565262867629279011455448665081307744973994153668643928412111258240882741881380821964606206354547637197752293149365123700220613947897724427444828597280363616789014780390932727098492274034771436689071106086668153615309143797134275132660426847027684935493946312370782026696544713945689486661865330954465440819723036438418089841599353728156472514253244223087508356793199363023566439843491826210644306798672639544060625574616449424400111857959434758452198142651883687245708563453576925820632182364755694271140357907623368272777773810372532389819222245669148800433140007969820177974540283136038226233636393053401247082017220775933407116130677974649780148202953280126769867387089192175003810582986262135220344427819804040434250926682141450072948569021773080765127480842091024895930606688856256153930772962095052333724625942759122131632976170179040030428498801527636709356059707304164167931179229578321729887604979335437438937544437919941499034386449106798104415314671746080960139650219729359518840057886060571296083088303157257476857982961017560156151886373365994512853922877531897026658480673133009727009827978962768036490453615832954926968507082524450590222250597193098259726457523299283967689483922776599506853383115275853711844891924236917511444512580501134634662778179092661149234744868937151726093570283615983783998491617816635079187312213073475675571310917020798419632030057291291949146319817478387742045680563739670353030334615388374961364962302665107444314424764768873268441684912957978812721831405097934387275236307805676465003822060774356980928815653594024999712511150445238898826309971472406254641299267881004687093933297588853996932747511816728192380231082349039630078350966904999127811417477632212015143673909352479131866075372092920247991664478504747989143718185658788315557341322771807743794781810921398430969778625857521346548469210679661666356362197313912125858895892081395942915324948662014563602282569418362476758034181921631028824864952226367968412881440623624952278237126290151008313059631689800286595729661680915529615131247614612601891640690133676335586866788103208938422362389359545411133256811544305667723275988121166936217333268165187300547495226077815750683320143663076946728502588152685277916152429729359451641971709472006741679185459591946012538264394620728625954814029949588155284134620140917669542264161886483164826232682753082732424677284949203372804395228633137422027425024455333188696000949152911220786505322629900769617610697694841614918166294126162920152408956327229155117693307880837542485772275135492266316839341913007693748063028118658285725813721148065747722617393371560030503326483897147306660251565377378861290770683097611613042463461637975971546227215005332602532605920373268368337797694650363054520563618151570623932667660797295586129074334391479604765209707050224238141016458960814867398356222920510896367327100478206250439844804627172347772365374708557808810828299647750169035779913251190753142995162322881910909750547931359388670230773889657215751287357728068779117973491113841252319918608004591686843222966673167557512993641828008628744130918240997083247396788771364135085917147234576537976079114523192741466324555804881454840295290827480128017939231009674480045969589164735908780446695111867565366269690787211251192533105646898789192731350084572073446440906630726989737234889829204051313455264987692219935630204046576675300763150744420362215371069402755249183731324925475196745617050849937220867701451950475767931125358157685986708967861611363724394261445476378879610752779903215920852073358260258956999707358379061915992717709098034854358698349719971500120244366730304023355528863457781340161468947457047337744268236907368720818790116576708213743557927161032191613015657911350320993565368132121009850701923867104551636830575675671952803814182378915896248668527233812125426405060202361120243441735327839591586420336441753793867389636974360303035511289513851657078739568195847368067430296572320330302513797658400656716910192135610148641065923841766989116733796831253303942906949359649242778781861185263879519595026340988797111518298582593763773832892341015867916060725044464614787232822406210378685627948281101753005332464417441245314490050568251300232952884835879614701805646887072725525798606590387819425270015351800545964488259874332579005950637067456203079482871668060030839074549262410735470933104059301179584742759306772205444732729646794390816495086885291142511264768320058799940920923871287049292203981772072678658733493384492178275894586218301681733488473276355677261413688159656300162292363043406946630589996880462677131884837068085101015974352647371661006810315284120597573989191553439173104933382741484694963958149981498409610427486682751191643705365790321843720065596118421572189637386658633130120022378950999019621559432590831653830173577261778186457493632375268711441028396598389832940806503915526157805637116393749481859761767830556873902506735421682048867598646577845460292297329167257781066638097207927703745905482074316309642998798190939998179340079899022279362982678239913810570044962059696615132505766550744820435587946935165501426146604473064028996058043260234779435493256396945096870222271750692025665159226118828464869618399898061611142072579479849960812328367231801034113050590739956168563482088185802291628789299194966496529096163734130352607963108364299492752561369215957947947641756323521422832128903998530454011305088229924593633475626589692436091091185399841129747104469261034378956336892213618385994679729376154755690128650635035001990842910038325996562638453724153438530628164114085638439005380204932689657144478077911691231558670128506458884454231063277822916439316515548972432090104071704405981934425447757820697403010778846069546295693780382294947238493959149323207076482555254518922118298546510851786600150067099057026328013815580085017133895410574378426046316023277815085853267308415748502258501038436571003756461084757666110275658698745552086351538206575828376269038974611055138650780386321341039100722708861097187659177550177692868232604174607303577407086902034880380633055084760556227988201116656138676931847948218061016861555019061424210448580137310589408605013258017788460377310270933176369781661135739666159692416919785416986178570419565544336381457212385052342700103319794008556663605149347298990578278358337477397073939123391769318628053508557977339457813921935015612406467584963784992522122700250857496334475668283830257762598748896549475826577617218776595493549976829139216895412323684975903410857397877235771291131308374734538475419320741126406413073832448045120722520614096328294311957193982202518509816846598737187857517518161110983060701594136506760423981895425069099098398063341576044644131266279825980205664735985473463130788092294707551438244904501410276305130538155899537220665550524301394494419581119477981624500808826203007718703375611500456750593041210597589638195845629825271585489000062490889687092009645044381705702084630689236559596920288593250308170441160071338567538256082025759440957503476410552775394174520409519063259672822405727445069495267115166173597713552270027207512869466956615924537132298943528666265227633502632731619455525950895947761765357935526425005079803993664364537146547183294317602072393834647539139080839317325311299804142007561806103408179602841429717736550165457250851507523003991997375782758742388265799391499387017808951839210478020051316298153074314355298414226569438076953932616097344647670938751030465127242542470425283314779353032620246021775384072812559310564260751256660928192502158405130270417635887373172867988996210440280894490890592231129614561912309924774255021390317039303447735126495741574261513109051967467765558362729422595276576614143672382583470442331034297249993340710981643951338017873683842048961349913765235771562092798340671894267275058338272097384829874483524743328748774037309548077481236481764128565018172209726784610408617604884659916901279172032107093689994836394972437964704230269112682898325304579983409727861532646119331902541392967508374655629820043079114067726251049548685565177410808669707258360607318652667600697743488749249308331193109114381928728970679734278843756609085141977914805456804572819644956003679718352835646049725504419955637687094572203387069946435265276871996179032385394229851835655108958278602303994471256516108348303596637154335336705879713601779167014041780675987311185456996856628637575071462806432991308550294284977183579248904036304470755074088861260267198637581169988806321828948266948108156491962898796627439284542519964392218591647692494035558467562775308164611134324784220942018564138564384642884737648065225809610248966030736042018671700916053139972620317235898860087631193932408477634814577124566140497134303410902604028791958546049452836670019635914263402486109242869783925634675241665787565825013492024540237400997680902583144154560741793905464541571142169293838512149131579803642620823272271265669349563968239721256121604714182111036059064340564076862928474281181041806654441215231123356573336690192324820798417514018517797623598758612791390434724779930087276941534379016631704691598577211792079624751856045890927740213738015850290472812891644609065139644735690923625494173381579126896494578436036983026877829874227269759089125289724308637072862632520004481728907708670476380020099014793970443082486922530250527760647952195992517959331838729282198524298591337636628189013639152108295258309535611798758391421249126186102501622170447415200892264861146885500087847668635029175787814043951448893806437777603384637344556434440828740365380036090853654729096729143995577716626607865820498205819593824658014318639502132528014302875246291796588896458547220827825953564756974445852623642925069518232226709832983935462532596660732599993071282719020155321861367178976813784017214393194167490010746302461957904214663911631634970748240254160485199266444965735784528605202515725818414561469385171328965902880787651276943229852940362707549547250193895667916052114056999880772113104492296492406380671507337668310182001778710013513346876399035485400610001042451124956706172573237939518382278600210837287977831350652598092060514878869182979668466670335157216786260867218021460158935064524905283986633499386290993094660146260267482050948705434206443345488270253745292106405078217140880466015553775348487461479340402934254010490277382869653906925169047693589186419172797479618170571397064563731777134838584415849409651196638194553416938664161479598311918177561797853072821259976429368364370776343312069190075509287584193281428542736067167282442286883550942606727374481709165019980099092737387818816136254979234360564393056869779979439612837113847065487977211253998350210084795060824617457278928307155504574663811194865185365424202438897292264814914850155176390184862829633771986797936561665163501393024812527729127080206388009322738120337969489678079676955958694823653299924764755259435972380970145939760982159204547026783477319830283839268409324297057849656292815045782688106706128795706993527382166737282100427549821777418952151910549422454202328218286370412839178733837022479569700056485582422542402102675957176857753853557912878890593506637370178225290293373139789824533958033598582557019412069389659297747447533700620062411618471781388638214155813947168900222805002193533538214083960929281083270305525552305471174025847512384582523526885519066721404267913963360763158443967091809775709834232938633285691726072184493076790555530328673517330027467670709512520859331954028898733585915350874287354606441443176228516629651834943595569867647218455759221591168818973988478736313782560123910501809017828296941829957461954868410242567469798752508522991961549063395259175024819098074394737910698734385007809406459824580567100990685756297396909543463345985329635255371606776171692637124075504922472138203269413907230248259774034047916172659817030935774078543785659587501872076351559418032997771859811410356808524430485994667162615569359892777251796903484164392674448679507636628229758468924566297491460076491009536625923572605791153285847099309670109423260109816494161207974800716832566903974742302980984999677903491909195697207486685920845899443220351939956930553325349362344666640680800463085178768599568363439133422848440553343801059899328099027883677029065391193302038615628670309720742295852001677290516801380083754315523470792219100146894913788733713557140630156089228900132160430902073559113789946485624988187542410087580268261080345840579379393996598417585207789614400358867615943092139813935174187656887898020302338002159706551030826726860016651455208744744483637962508901199520797010437843696079009672841388157489602348376725203589422077424967687216471675381267620038938291812767744890911883908914981226390073276570843044350364259797774134403017913534515128458147759901861103575620242835314476792346787680789711161580472454140667778641182521601815756778252603897693361633149516778411887682157450123236540325858097088698458611924450142158749155880802228762933681481652625626773308915054417740429105626853661977941180897076074056866625602081695090614000278076985743014032217765735886444555825718108910350865903279087520152415504777775587937492658354233945653982367595414674618315239304474901696948950660645097769374503024199851585443106026417178565631183679355027714411245555609725848421015010938164592447527226749979130951824794397362566957187090419266122657069230737807670996123411744080879169743837704489695263195010821720609790511702736787132352235148705536401182545622268759978468479823013863648576146929287916025790025921569226438190809136047034053818842095076671233807340983256396462932763486041603955391327599337614540804501273632147250089069760367092085747028738607947983559823721818839373201910113212326985812664754877535072924344602731459276875479296371549231192331941868467237365431372803340678717583517353954783962808550809121558103309956312538606479925452803167844817637041166552362424656162731881092324187926578007772491037662915575745454796733570650088153923791245929313967418498442101816812136167450088236146776935202707595469154556626384785203043796889102755673034119319613504447975906293179871720401213014456030358916983021883049842088652298078908765586810544924744465088382693642424522593753695923906868467525569187793578394253828937212420276738569050296224357242245024179095472100721718363188336719576977102139148862063777315860565178818443047977060680301645686647293741620734018840760227300531452448266539374549671902319136824755143267215414784776341664669087172561081819951879269808469344137680241204786203598226079363892802151203857892847535594612272467511705626008315605061878429778349187239519303231920482414129781320821904711415187556134810148956979858106316823875262287396704009155235957060212756333668072224393307261408982980343679082054140175323164826437687432800283845894396540152682629807374721133708483979062413422168147915866848945268772062217243356606410141316717948889430219400725393654260101516863693721684529914436975884022104761689226232626877223238591787138683266898359842014492149241943331885340988299645941827710552774742525759767956047806734243916317497601141576161799392800796748322195661481445895418591650575629571543280105226851809253973288662559422237164481800748860275816693619446022871235498827349380126433883073585248170897569727833648677640461083621231443439054432491343263752466129464449679569364212951828351566775626336338181965922417008634881081498300067144532778743290903696491670555262802430330118118704993196670055773208670394130076584068723764033341839757912732593577479610359072272259075064399767003680148067526210715865826101649472179148763770312333228814678039677491508273753231932549291522023672788941648540560480982563389341021217808893991119566522766889892579598906881365943493314797787216094100539418682589137438043485742798383383060606927273134243398680838381570060218537368260273106958170909790744753886699792223984444305552937044576629258626139823474975110788423607451196863675285830305547131798940723871342024142965376385893936902764278061512097446535481642688280807426007098180171500908578371294617422146982797192874050269633890375238226646277964314119125996903957356082648783934228645434885525221805031336266526110925495207230593984702612096562421611401546854041078263870816889688798768240824878678120728805812555281942363731509940346676217072428223988692064478840694130196046784896527576440660345073784226650740879308225984794786093722369675879242574140270755927331366550199767038857577226473118155711609569742486566396394807115673599997172833338912292837746227372955180066477130341840912071222352682495680464159370718693155284754686378202340289679024010465104086537488911454672409818127592800825402369121600430168085113500364830655451355458469440470825429813465411352269687830610438403626486834049735900011087854473116154992505039590674379477605422584034466426099328892989000379959872953375474182136739479842845386460798027688593746054587267816579060929755009615586160145579732155140896433507743587835678459958684208278744340288513693436634719460954062194136680130879737056787859036601962709299012489156368857894352041518003678339429876262023799147715559544494051728208675356251177819985813347310919887088457829014858827867015932925419392275043906393796342722133825884310828630021311692049044484667328657584406864938832478639076275925323324341984500987211166477788541533272053801718176889462558097366881766638477679637381093153916779039902210340756852345399796332002415690698316253610078200292542131840116230895910349793248877102058216192419523746080827119674320951707451133201657030455535059439323390132092367566919530565547000306939440482759230262212446356120961720094242158062634355675968711711892049112468401520537388441084357871007147083289686549766157200961402456270901718216435147412739452222202679509393617353542058244139948648924206805407047333052347275164305888724632308623257464694906404699940007075230122188674010780417034965359544841663609454570582882981435627687225300974111457382615120804347727539901600078690125507263420936163834760482622698736634050048612798806007169830047904914732719795445382380064611658172519571336979963884613329555096252001072607160484095246266813326009711209274659668576469154414771090097200436359893278604533255426117358427539650538076005260265134930430248782484785975345345348646015471357996755474662631247017671839707784824696960781514802513268476176562180881476758589016481220170242354040519440228185608972869354539008140161384449269272468184759073027745093682841553345173079946435692552848127877507324715095007781551332735553393676558436704602540412318989593261063441285954093922923202130992789793254417389438586889690577252844168558153554259722320555133383894082634982541360586042831806168235792705611753289486394164768761675184342010153248563229014852338266446014190615979492491845999423671767322688758239432013268368928785299495038296241079826006465196669994822782852042690845845007397992406724657483203984943783613715864218374972639444341127664069382743079636099821535815472503404006347828475810163242298778150417958118847128967724237248786775014638685058352440174621700101954820141857335704318861428780785199587217092850547501234075811871630398663956025536954414957063947591555496412553938178726371848483385099503344870343791899258151382721662955080654040763767569789860238496314318657560947536937423829888512549173196402922522610126926862805112610327285138563228641056339221953867726179369251755730306483845702997524229855088094193605458112576020030250569481345335718155950036224239398259372537691314451408459818390545856202777906009838185351069920859979959120469470005164323627629293102957868742468913393471783539689391333882948606009696759270897631085476636790356980565234542372167053104490555553447392217020538825826560528230839654575732106294493870984803551543214255170552159409939904460652065371024772099264813303711003609265336419326978111297768063669981044780545896995050238349725306952173496831895465807811736175378618397598566825975846005626445586024930396048318304989006847619025064037900954965470069973565696002669668415259495362907254217808451273506771224852634050421935165931698261089202822399832230666335876155789105553828109155628623849335405793855635852292618166191517203359202922152139525390961903063719755608438160754622526770378249654264175028337259729318231636744978725275102621397354534594613109991403508247533803028203682820828122272311618169468331758453930046000863684686791548707723126810805158410916717636365460383101736014142578780289205060958191902742010518454321766701894893033928486028322423598158624652077574329394239581999773803845377273207770048986023032894065382426125211916942444843522890135642264449130999543153442987628409006315011217797395627202603233963504568532997322405494454900504387564722039364494017489160303077875095293882407524507749770467815063938148235636511148069922155478918002222057984796763731423184787898313143112555374714111738854357817816767486447985525668734329375783566475278445952768851328237131600452096771438517304886104187854089266723939189401419449771148486847631096631784190779814005808167735484789124107630224276347553396274544670741936050567690451203390738979017718694822500898063317090198858699226220309127183049501446163652464127693911243612457004543926420938775938036538624339886595053805233204708654261475163146247191790162655482713701619319231522050259058333796216335606767520884136853610423740192196383291242157797455950460807462696658815290625760050905696392622095480461148387713922680444867289191248397028877251212737861805395675235643315425725604225386289017534095154736231196232163057170860618322384262594657941412655356492794305923499881301739147772636810435409274809603806490353766451189328287232897784734792147225187972563783672322435645945343896570613313078601942107656312059715054661467343755275405415584028896569893353134715581536684126224950317391098175950803614491789021452284734398979350258887817299994511396895061480040373350191783345793735819710078173970112604555635455682768249890675537177435217981482123709848000706604045830233142639133463221091931999074506954644441482930442431182188095995420560494939924399969506181326269615158059158554156572558011076362615253748243722219249295300632061235079288659230269480812648884031743033100235265939881354581306518802972304972298526465145031608701914484953624355063738936500339928879789883051671897779925427346767466905148214118347300216973533492552197750437548612450520029683702929764436024322978508777861106565087540343000516845147934206389549022124877228045423517272324168210136044618493476338028521144827480425196823027356243410269732641848942158987237499696272774307309244232567135508011810770355544418681672841076556058776244147678804958163919512865621228978823068755135191938525873561753265456192520576063166118712270903982142981600204541936013778525099949662848359631917685554907870223278960282659935991545996153193278899648099013691315209354149926140017924878534027158381323017582969769231523691055652526567185618241193548304114618920470761139572312403968914263787576335108079403139739649369487060645611680358780052062708091524698501480285572073876746606790318399024420271101270116535252730795878799980142262386645365366019220242249541527614411180966817389203958140068311989631115646263525625380090025138095964373434525281876190066008205759676554706089345680082426584822623621221376112151194054571559264956885252158578253848902267531627090721039872511640430230173948062418003062283983184438643443001279807003849616814644246281056874592957875838545683813821446314241397984444512062138271190812761861475778336193382787995415952260076347041815633384677725808124836008999476677165153960068181889373315400279330581789260102367365357539497018428478576560685583253549147453132648767983585419761040157242185547876212967601291914250409234919396504028267383638828499272215010554000151896286430737573727618968442645592180140249932860807792393648574616152805881802962739052307460741632879604507315270019398971370030340162229886659071217403011298926483460915546904938544881754222245943507135408192280140364269847270406700448016778468675409627000123606730758780023585522952013015699482830931084808411033643347998625072527779777979531693823389309876082789622563645215748868576096121307678258565678510587215087326947342097144316282877368257356319496289229109533151779396414511299491068036565760880691732189686067543600618988586456211940556641561298918566215069680401724993961526583379884520988460459531327866597661511430799186527629352637907365041627332487160855652784104646308275793682086836351493330114292060799538884221422606584722069688076119228915117944073031468292996114400877062514791972256527854897611678905726925910474949894469239943557527172824187553524250057346796874100474493330684134807329260066251814672792631179756863181665918685180584884723475840696198565149387683120144402855894900387740664624148308769051717862662587901695630885277650472190961641762754815015556033844095097499761032830548414956312443324786366323754995720901412198360421326330155955569809378624271891711629146773638772839803007227251552494655579458557943012569974528041776700762442270588563305552692066836850748406160899418581726463690542030082498155086962308984281829615941551045326526773528914052870448025237795665220789618872808447208571344232277467294755136139776433474605364579590805111659038488236715871316098495770488871723781190965026956516702234099666143025123986014362355743349174615711290988732197716134759089073566626757720248368466694666701976811012219022887439658931142498332439870663699197868659126996318523309822108316754712955449444300995305373232050406896901834447912237886551796686154550455648537328628810982758013151071241491997233512406618363164842880265279668765926339642686191927414972032477667121174148910807493117327700688659693746845337610232845776183210408625944092479233351834319193664841558467707429796523246135274358906801632756588434581280944242542299240014537022437154776469756608669554629361904403400601324472745926047000476174879862332662429366359602579808223567020900559571131578842900212143400910724331811200934314509506755334852267609786583533559129215406554469668764783689765901410031415861131798100086382565222541481179091894399278956628231945587566903102145263004667490630216784960276646239989242309497518028746223966277741855114751638166731199177515404277588983143133649929536666446531464499539464975492690549981836978224229502474263933905563555834815532398386266428633364835741501817164823202072941763812443725161223352057940730459107227062152287374123093983544947286006757756480379838720640517575303236048080719090618173840561144638026940971918431563033056096826600616501388469522852010362124574832402035078668151930420451685753830317782022611055238995289587842968189264962880350154613887225808943629996652621985698735196656830870611557655488532141819410166309991344156928130603554414579773480455716409161065837903621088954168473937488925703997784320690145314221436961073034071482650400074968888618930604887745520042051449365118414141770470327485727888450337535724432050559776687629421354613763530846353713170736224661121193737033475208820903317896090598153466227649948612120949394877640519144770329697839075210115482029790585560126758782542341553750416522766940002305388274401139075711349701455929047072928556646617779237206489470409904836623028221929015319341156664946821376131318726848006168938843872631554794468662751548712431753464793319224522030468231658385560883258753726959991044089346444305417806310241027833266921232004133014907190976402956212113535957028213236674823822295280591301708122226741955445483508042514609154600185177278701410188539476591270534393591326791407899251527725996860409230406844143165329123632569575800162518741904756472700924054912394090533571191573052522818760647074324943012714012728238167446428175571881722953080876531518664539377837249458973536191421851122086664844404966873510758236895655988898536165914979329872645498687720376702176457149225815126044355132707993416348977407783861447003531048467450176194428000947165772093647821403543102049345446782141834492706093423557282489164883771642920334456214501829127813831663087257571485635900447171096190530402908579798281805817085819379355338547300428897810393035005013770816131279820045090018946305558308941060587121227271844729415228314601120311438980812028138621709125242835741451122981754042046072742176887750664645955137313867340309382987940201326364790588170206019441519821857172004020591479534951258529517378383402704886314180137895842975804751020241970868423022570095511020580205145282014671507932252939457974303489016180073785605423042494821546697284394477960036266804445618225790157363475342776415319899438142664556607320315753397733454244611869120598190245177325126834678491036209700445543656707492476080331521220694023221750362377957144561891032203758877774017640573741853687283579792290960793265675867587603580085095856038955039959121969241229629482627232189224615054567884749943176084846440343460510099452620528686914232810825683121800874032071761718789391459758909261294638250267602003029839573432539909561926344462535462578685475501116362858110718034392836960164983849161254079914927881950723616790971202468639453450825945741116420284827861402126124019442816812724145483752636246433022739027952180118915708252986636816634667382974769181356359276707129974183565790499653377357531536689399918764992580033678899391864053539804560320322450159460572574923013309311720469662112918981404937720200466803354087926439131546736565446916275636012754996606212256038233162093286888592499996686540281732992913164284983221364497046111558226266434840702842419015027319964850072723773563985459593814586705330868895600881185094408517646030784175426178319504316229297283014679313208990031920213201412552850035093391485302226095561798089771370760817812835546667780553434948169910626780577926330000594070184544225551223238339902609369280654294568547310156803297018116778977935280802069696288897103225327992008285481153059850791656485688968246168149625342757730845827826785096095805002245641145517240100238850657169335521951851932473525548800712700934853544000952331417318974408859907341742764551244029480236041586868721219672750340574582771937293097499459304543867093292431232084840350587664977914325795618256809499061423230016527532825071773585002469885838304773499878858958090364858375210601395150417636330417628172532465088870945712566647115540369200758480081923513827092992182937123394391483430787181741019402449664152495571216586573729728501949447292131565145667172973038436489723930986393918462084407688501144840057787434676544642030455090787196484509126741323078735106555480666369799943802890842025271023357751125359691036483915893534298090674800182101743940583787573036906382440036285203378009914365650292727839985955215706390491632556686358291457974468367054157205775242429410016439770996638011086228715641913181805150640043112489916760052448636467763264056412586666956091515515258531773545609910917111738557794222897953798652741014130585906866655762295364761641372130530759312074319882011546055983273130057032446390096407359606157850070785493038960939283503200201513412619361987764387935808959453873488679873219877345188685406056504042719582521503523752588808787062307202138748081786776369232839039857048097051995467008727856028495512404589842094623943153912780389684212972577588563214724076987494708580433339452833129883127556135170156137244458836897912265751868446802342208036091233067991271241275556524608608183188249826222983190029394655551550042466863920583300433554225720079837046374753691483596562566228708091900952581987807787199179677163151723527506091681951867806607718391326257482221812495237770716102111573774321942996703305106366261823627137164367537728283750253259345912559088321290857973010899052121623278461900747005121927385763193894810280772460593414211999014421586476260852014693579619817552578205447075727849380063215160956047378910376783910478592440300251461447309565925984592094872081920860585027879522530890818736060635435072459005120027396054956750931612041995156996381600049070271497782761611809445501253712999791089040251538637742973924428592205648964755454803591541241093680993187644241423699232365177029942254718901540646915399831746145263102801145284467780718165287712104414567462599238317438704157127072952352679442596751540063627618493306353517744138841659987067775484636933615745246514110384957059066380286582361681507989169857885875193072313023411018138662712363688827001011245837495353168284551122642463949953861672792365633046031625396328537113613328388757089104800945463178971912124156537554007875160677659284295518578727152731186481921738497369273125602955261211800180472773602766038276285727139717919381720648565127209601710408953823447445718332014980160309407951591206326197827328216559683831900727421552713609645692788003454344059078250933734753830775755662584809733410001261667728253093228357663369337866056463384687683759051975976967612314706537401909068192930063511495163901998099181668760842120994256733834445591663560425085432267383448634878425218674389493418624084694283994634229219726990725068098476053645386998648047044572059643467829111161648539267412056604356727547212071514959361204952073033062186081692194204592844273643733973414168777182083031592114746331446418632098165632085516225039220176751460198016930798438769837171909707895806004457651250975501259980966843649406421876561703574276276939805933690401330088317867105421457003610707505914581620028257820113743599249685513198018934571657649676722362570924443231186831213630130790431742932483551433741809316414283359989391329445057697173102445651187153056041891791306860259353481319010462932935916751150863289828527935065214898669945603582673787210459564802367185748804719787291973167942703720617404205698595683997633201182502860148444601055669538200169078625308026139847062671066055223321148396039544354936883276264228367816536732207258264526539315685121785563764598371836976865315334277184777959844689195378039227734666763772976980053948889334405567529975388988726052620914702260247315370191566213588608546907913939171685827439063617674271807782524936464452561955578439512603642776387921732790760707528734188682421555083693741369526924017845045033549903863807798188589268497342815354296673063285212318962871670511451727027264991855744416462566123945265263628626909343180815009517740441728873948158148149469309843007449540255028157134631727185886822297290766215423330926433002199497491661733278583505911715694881019096628535472383382617099785899099597525662866071585612484945565151486246032252679818601593429633517217460294993817777456281666242963733093809717752398215028328066849190242590224047608459624836909348111480959710317171254244144508657701462914517739626188188005712837814428574719646054649347412997164180438602791169931762572305721194337558994185735287935466547316010243092746156056617887094447487987506370288387763158333002144578989170713427488429095161624017084811908529421023777878931733409296999771653251362366698931500995541120020381345872649683972132333433243059793240848053667645732936114770921027140160987036762512143540557560733534771295871568053148812764375781650946513199529676567956148790166309483620025775057659589454776530395394534266681778427893812666943467186407649069915481438332699263682360006065057043467545298349852410611409430465700884434314069569284070059202434260114743444845589755015290534881255261548473282530892480098022569657474315146462903573037759216354262849504159705556955072107434953871625121269336915283053918066826200669982801839285660440816678458764948352542877868851652637368209126173108830228188716498243556205397965824576263721519997629220519900982364911787735188414521195596568532149380516090736980330587262573178430889097190340667933530170954289179159827085153850202833659871815095300916669913224819071159014911061679084708362637658913419685132830163099212562719503509196401986528977232225383408950491887828449275588078588988292825570830742644682419880417935659423284698469023984676054412011411388917473843867606709274999245397026897612542059009257253740049814072983357640436578829436142247939655559891423556749046635511987695356011691950338440347343784898999352908906645195048195029270783064539717698978701743029307260082381111579113560487233731628968475572373681922601969446882940708880864045518098002174956880702713865907784195474235208554081475808616976961651146368330237312338361994684574278684857740666124361463985155547755319683346649872879682123159915175043216441859485786366939662375300563231169198399739278683573338402060541646062107608724165852158732292858109034737695025258036670003735052603208657200635082199180717800316930244578543311721775962879066774082953827872165185608634673329845199200458418058652395170337072070200621368401552255744649721701182797214000861220652293928708698280999953509599317972886394623671613829594836917327277207287982743111591214769627117544268360704431361670174088039848712220980634403860397915048342055320692427120777372696040480681088567278633177842466230412407418866727389539785273151753192453394003285182762880207390842847685703696679473946354131628345273998585003212971694963726720426258792557557637308367716811913183864845331291523520498498683179606233271756210104369186108975386043079930823014553401335733525767573575087714000195842593325103958906220523452584006838873795375336086210278110322997304454097800448255953371287640652776982913415177044949247555569926037886756205817055678164535048930301268006044594101635622533362917029789829835462218074621071786290331005471836023554432872731525585018447202071416251375352053366135570767245498482636251211732900834015598283875713779466690840495896175859827339303948772298811191422911950464863419818769660891473304508311269580664890445420582472047914394835266387033514097879307752843092988208427916798497505230185960320413555855811358753563441232947022834590449743147620604486553548011416504205469956533404677602366850063184431567550383720518594218435771543101472443246593627286782539270715666457281261616209270916842468838615866377739170005895656350648060783382676914006662837797412067138854983550700730195603213140350113080479315156817677141966699630549058688847858592334085009814395185628062641707248857813735359426220051829952202340846310924150486295971511408163061769129420253525439290833878842786592979930291624433317110619061224932388769062199215219498875987538281138809244304104894838217739782537010817697308961345923272172054501819480494149882349642048930134705501322576816281979134705802116993628008252417924124505035552650513052460459776140228565377468701228149749804005820862018132139072178572220917349911553500006706199376615089599416417024273725898137835219436972161250737536501673175673115044894040321932652471404556545495148444587057362863528989794896865186821371782744815999997812895788445753501797929730998173427404971532023860022820123469636959757299576645291730438604146662913851315286409443689096137360385973576816669257806033242165210675332577873315108454481585407080153832229991671202055779403042472860617118066516295051394098808473949184651732281514359248712082030007756674537477311048083021084982218918000954572710010713792606558637114039393622461693384965821151443631868030670059322189794008077156482458148317743213777946352205814634647840725222547025080106520018494930142730254133224566830623594814868746277097785178840829058064205796219909768755913533447465682739594201180407140321482989186481157087977692617362254675608210893235274054683044609585167331481249980493608478604447029106243224164510288809919423518740934913153892193120272414873785594639828918488947620720358481610737863316219565029729113916236351689089265765358841748759534595755623196535605537261148665514009834398931940909281814370399544856730245986168028954080667917922051925967837361738397946581889227340557261653899764615521783381969779870741243152700469177337205759635185923994363707373766312356315896756537115379095970999007412625455374080668429007961693991590425504257821252423337358655554968136399298023604350680932306622467919182171842773773406639067147051899455866787564053072191833801530522526883363995540616175446206142846703484699983264812932646803438311059170645744501785663198194467009338759006015749418749208823823512752407006588563038661244306410078198923853870695513931810282495427027132873578962431098680669189070248756126925424429453701908547885084391897430896815054879635684585218298449673170389307874065309729343015332906294039376174720134320744410013702156857980115469934744991674190119050878326279160743802127499252718613100637790803220949421798035617948406539129251313404085734773747605064225898497095404618019930670807650462431202394676813240390536721552320510030176519416518655218438458299430503668910327323122404172488264864544288044115307205682865555364777983469595469233363020067696069129323088072456573535192157397763326147741014084821214767698863148703768975881636232151139086051940717727837988958197266343455826431833731804690525728795475254282815879638746894169187978995291392416211698624119845969230638751049576462866849775108134612964460624998706830710838773990547588709606249130664903868986201393653877319568558206104339941111445512905438235435340231020920796971861298676299734142637393243925703337874613053531035432607969645110748363202283519355575542064831795255306268851061817135862684675072185259831071538645849533850947729072463874732879656821146810903780248037452873260856778798821540554256185364460798702374377840200635910013089463127039535108226331782549984153719293221331316540568668083081959161295237300526078740935537037817755078108674015796990526298981073033192097541892974971887859481980088763784527948048687343955098320477746307791853370169285097643361753383220877675730425688865093945476459204067230381746975157371771106751092901214207703011348252500086801076231096204490294956106130377302278970280627049731668342284314905462311800486956020091880360491476775806850371662144362742716188109320259308042688731924847591314446610975042011604381463612471798777432361769018033462718517393392766805878273012429934518110582855640339784139550246318049021292191197162943242322630175679455056887309749782641725208720499354837353369668360372450301051566838186220255981359638989650768308222694793447017954678187075233171938981898297795082114855636627854706751886677281027565002522218597651326600655995193236068031106655693585580917833108562067570038008871127460937479829914250672481406791894564256264735631011745420406033202954474739976604791492587530819146976210247571955676345986749305466228477371368038225875642212595345735722865956372078904972930735584868232654417149009853612640980341906436579485470035830697199124524040304676437958917365953171490417099517704140708529263927294163888528463244130531135819410070255363868186717200496798561305457051337650392274097922806040594260217170200023972969261050342482637340030729474911616336678632479542774699608254562070116589073022944001459663379033512965839074015470281254165638118100913490485815261690283064701003471591810001153334016431215208232552406426846103776744153532757875984923785951190476238404513008603754754307466626979000548192828418823918744546538335386581041306466245487227532321885144092788226797958380267197127458660094626543324100039305751894308458491539431375636922244997028322221862737069990103557348416251991723238998326976451265521775366746815311261281156594852918750814420339998837205594913392277605220472266163728421252426473463772355731439973843642224077215807196998876670559221300125672329912440960821966288297652341540694714333570044508177722828348105586622874325677671141850228447825512779849797607558747463433938020608158797958836798676812995878834395869840288785619453704584217790704722978381007633571686914614685548259444866207166109382386040080070128907512745902139876412241732382308162012017365272663451117558371139381358700381744160570789928356565389039276473157831722133303025826439596823723257416706376100502359511840723466230255668387112947106425999862361014959618798753276233504006062579372916729268039449808460515434065759127945081824065560238916764265048355110441600564823197210307241395973749147098236857074687570677010685015673540054220720643707600114949979586426921118033534704559080306054726039404756931718549744163870678331072128441584548880029627366035352771036276209383007898065306073581670146346619938229924117375606744687982504628278774948126448064248314305436086632481753603535510329865720146975334944300725084904651387168435652761684803380429738525224863812325632074791381159954981325262395441567183250644184386526296455990033369488434406071656589026676175015969393132135774737846149396110538166662935255944440498387850602442191373056464257319636561217014363205458927105197898972129417008527303114697825318458369175691441749114151999044220191736923576412651674546636366226329952206901968357552121247077670952790449947596324251898191706720993732055378048611776636589335215642052937508552037182707253622540006780718427701625068734750582982056078388748844725418457163984432639423014946715854088826519733030781201916806344747144723538948881899660638389250493554057097653435574911000989207121993851784651756163316208257104179650367852873283820842837559163146621921597150974549752466261764911109266265174541753514393405548048946751830660435751995711905877722708562733131254135512354175039049116140070122156544344146777111433939725535131834656112475660879150692362041055974983523602702879544595963169729062539088012385807496141267856421042670497410426616170852402632867822897369687400349855595167464665586382055969172166614360257493768129767030407501965999719201203193070517837524507538826069770700943728505644468814813298085364211164461410389488574001092296581581927396318990765534731402891727713111180317518823671274550808396594242127011724546359999623403807111926764697216676842184934727430296899890179211086658026435584713847284893365650420618804864317285188703068102425679158816129600442897903829286980149699907385921024164508984182068321941046859298344120682090271212755357839719642830927416285005235146901856928185551245668208548686760600995288883530141569996049844071509458502161701969105436960752360164221863473673124407294505960730844244690140584564738719565303749403905934927430326348705422856785069692825423293067989661377671005879164443811555886492965243526975092483337246045694785031725727366358888770463724750856847258876144296469119056662425908782891705380664475780586737662485534316454269661496323611134681589662023611657943531001711327356026391321927997615893672263754784300298070094637146449380473230729258505002097946207794518857729137296800228565358410683573544733622931082119361433004143526726142631063323254835846471783618611313194132180404431067905363576976391090386431921762485603855158120775402994973430346342372985678504909351017322386858003214922713623037711456675383553054723223555424646378923625815416373341159746228885453137449352656458394291841373189464013106053264461169739605730330405549966580870120410848882428636166631116869387190513269981872992560482142052970915902657878190153735484374969014443246347550221441714003690040496473925729800489376508989254567893372580437677724881364406281962382438557575110982536088999815883529328244966431751139111503734028410342782766039281846457925271350673240302473591789233644070396712543750695901632297366890953185298419185376726629557542024193277476149800965649144699889150160222533789246671742245219810259190161332371512126730751242014007895799087128099902782958416404288932396626773798780075715747950932951523187512446837220304216366159119591243505062742225050865597855980609392312020295863262997474794301583806986636607615681382649934408975023296689834385830681955201248572630945794429163002924604932467767501208805084901897842333363866030469178107477039866960606019054922043656051114736937276258619139067099424061457086327194573916092909502886476811253172469910569271677097364891741192948431387013209496272794431379556456486083233595036402205503684684156795330801812229523724719541713816967202002417083570314787237900088936530643470634802737958130419481462209942734763560601506827551571151581218664186636037491843871790474320706839357067243382634234295999929585931966544771666318145539355367176479649968483525567457639412477870628009954340957881472579187208481842843181245123321217151339589886587699831505164494598089339724641243210548144720999114835183984482442343038428523303225165317696736145454305520508738642753211573871289639312276841837873669608243601065265614319768326490307972316051712007734927988238993285405152079025102964697627889519240433665036010008527259237089619453551587072057346267764519172336856440858743260713594233271592830302556406041276985253094294192762988298499995768368780663201613763727494563946570166039036573342237924367987074608258727024979395409322982718694530024784782654279077856097007045613478334905037064744576743747925282406895051553910607016419175140770321876191202310060917488886344342133749675154582397872028370903693918993722488494069949578576858482144216266477423117592136656237578033611266797155948929992168670173880564759888021286740277804213534934269527231693686356711156531490386794206311883505866424686261507326467732223797398596388202328209663313081543158653109019908963564359946953847244651927259911180615189599378176977834532797557913848007753870937152299637636362405353797164422191453101308245913974371849063983630074475976133407483095015008634880513093081060017159607031066819468910492591383633866133692930664961471875290371883731111695041389818429844925002315247894175664661854120743454688926741782981870989264300582397219473735567930017985900079697055583831096295935240613231368786827439788590595967062167420136153621606391854797972529774290950581597548461434703877678473810330449653444206643050816370229282922479053273647992294987645611245791252714632725745859339578746336547592388026892907847335179872236848119764994221287082769169090623300071658211508160622892293701495656315416550881281747806786633636867334593236741478311148105012979892108245094649149831125030807203180561259973221515450085517193593823115054381066814012422587185533008473925336362036740437476089263594006299846087264514036463337307727100247851142789877541777507988370804191870892557974470710663503206410971366073124543776924452221094481855429378045855367104593032964421006338879024393033828194079497194077930304602531729002268722475649764203765802493986249126772513139494097570332691603803026835194606114601523925851030996168743432681925311325707839876335002622832750027616353895446242968669456492054544128917063995989989575720622335044299757186519887238015969638936331901677059165232788712640947449535965381940674212939592008718408486894727311349750088014775006498991295641862129492792626020174870295082029357241205072315162139057949972509449202193584889547986356088613964485643476880282890250835508939773004253460562759313289926530342059839915065933168758759091984299474383345276830711909769256783716747125562770690501044404802856789896978874540764336876381631583397558871066130851148916200793743049636137755302161930309899626450328667526494722126598855653742138189215249754016197162365251100682094160649314969087354399355093760845927523935738196149431184144335872313361232724800653105808980173307784711174866435107562308747762909056424861317525910840274668306519021656693132544457121363459125627871726185721264237972311757480249550258869697478426974851020955804467328934000893558818680317200376134117940587445971563062740232080230413873409215731427792061967075375481536006396635251542626015864091180699159783594536692747322840316825777662159994048862520394650827288152915279419989886306775487944408327863739608369395654073482856465928350069586728779389684697851095884776337459481027133026814880421450845985060181222816830712150059077608266567428474461858568099597393572556635013700717708395281595598746789720205688475728242935765031558527244810983746113711121908898084576358793206689201957348989687500511325865856280002968207685432003037338116502994102099259090831225425129775581154603512048730698786190747166160178460262903502164080329701062388025597669566409510781743734884314922361458416580755153386035713349581346085582965545286520942256342540478420523559579761771965833741269552330861648344143295545933988648679530982446341392860409526999522879898992017060899482173109176124021282466113552458163144256862197811439388448883151829170683192041531523034307857100058509578848406194868279809453540289617399609114377104368713331156550422607706726279365232971537314111094943715433246038340575227356600028780987482397462586204321221624387407835150892562582974543174072090675067439712519916788270746177316810405588713261017501404366613791961678387040569871237011882886761023544101758253630524071911522280887964612806176849335684684489333092325298328860848926801155431103906072839558787253088051592482860764383259462198599222798238907496386768932771255362157913414719707674788891870435211348560490406166116051509461711633331220423967378175450965412384134520700994701822407554328346558448918323728469311842830278682985334221833870955160553774656509788970614145678673304859074145256344954684130608660304861248021350289533675065083914440140882315069146401773339793873686098761847610934415664717174045576634965585237113274126392916889305448978651269790694637213206555593165492636893229414453752990761387970825510703873656538493981209796488541115115372865569862830574595806108963510088643916770463625524017508312533048037117337984815146150568071731318364375700065942947510116617096468811647777427582562825621654557467454677717007606043645663407028557089847793601619493157580709297738645358447870024598848796345103760979291710922243185903428038311456898690145436228306961900303696171463623881765870883005830933638841661207803789205792827235960572020864333445724759279678763552108751004574598621570986718118742155293297420389264346426829018442356412230691375141278882495800498950870307020954830988110814899771284965599932236090018833598331206303824707361155101501905789796942632372837616475731073315123975328916005263968011294515832608753335013803631124256325617691155675906830652093109084593222950186014729734926351967855455700641800364583751178114271116759070968348763402530323782549874630144131787403141301897144210153481306800375093384185086165000270130943520930540665666897029097904096655658261269659055941750216621919887551382885158861754780795183432121643934085091947429855298072595740435937266888873215356743021970256722864877480262569818421578907835375911457202552660195886251124254889702709613148554178560285224375143487543757287797063988786264647276086009975017705103728914059640496948157089247869123990766228737430943992572623580253706344529441936977613381604578710631635866839243026828775332668337052691089209899834223035676746767411318675242474986202833691331744323869750344118405272860135768239321929566958220676002225768054483029153681170658052208053869661720527533190224982344443837076922975511811160050982827013686841371394415403471167102976491321769546978497917376822618767203834067823634425288414411267059675238165739574072704402710930740050592583902427162641560100298021967721755835932062412449631749117880877338904698049968641718032759381387623845525452595435875115300956344041603034085959013333685786067497874712037311458970243774923975176078312240595734372961165664482322509510194882130698787848002130631227857855751755819681741333042075816929310645784792011476394152913876694323887516046763326487823940575919245325442010235904256260654275731752157164146813068443912043689269452761297626023346495074703402852657170138206379445437452186189387869558715341698220781396063309683198738198344209912262524931344111074735738753225335894314700059340816935741847507307787868592037198012720450578567185146527747544042787142691027426411624118596584297529160261063362985092594236247526685924538806814906013995948979106070775430583543396359790460407131110701531185532614535814496235727983516016813163999344040229995793045235490796234266541085141775594858730642442320160848479752503916724023602435601143111370942221909482910906846664134149208876545027975279248200626843087938784316202399316900564146096296457817019345418370556047262743807078273955181791723859535658764242178189177956754875610913526171506899987367923585144024253027127242085713769666576177755774003844258190062928471669211553204100317288721511836211637362478104244907323225258008575561844888208891522611207243352538031728826401267101084968653621258810267782587601709105284630884596250913337781275771125510698466622927816361989243909212002192998360906601579505852334533852586628682857380605958507190656164983965547963258537068254364513592688148033877104141121883154475626241796674597280713405772354515340214467026042035351015041841213177673233765536707688425139354990771415528272232508609399828417977701399397097204862230996207246400573184634891331232413744714514590336900196932998153975137176541258533524498008196767989052079859005655822355165627435174153469132301350787956888954713982367337462006340230202242820055121067469430151291624109602059035262019389531813699733099107803334963235813302335332609935785658573932957656116772654394651658478251856399177970509033117828914646079170438436358968820395103680278645464635916752925528826949507104490759297539094350224206429801151054497944956038584578637277348790902991006886463370274687878668386860907575751423173829115227031948742440850452204785677376343315720280894382601558035504197121524578111314775809342260884491784114367858013288757162304734072391347014152343885679342075982489460604019888697558706986573433341432819683262085421213106072312038784265195597747434690448694639275223059396342361323139062607316390741409698599003857919832806312584968285720743649903385496666693530612005086829764228018654484082445531398273912316637815401557064756610723281050865982798330853489022658292112302383976515279714019856864440984499824498889400352501679621913479058919434399589728121333177878173927131744780734316844657062504031719072261519012631596158780730752597928820048036027322430052630165751790614340825007199092386653041396983324817004531895536169368376916611968347406302227019828323723933703630901824772800117449426457882427062319373659198550806049491201708905846911578359693108063531609870278534322346922201673831908070240544900525772390673453820193546327059257266564961163372748034359622639325872479342831936483198514278123734748734773621974684362237977820728177636550789240396968056263718246106595330945042727025954399232648143437328951135010113641941382006583244435083121347001068655535974347399839109242709293566682659714636925827591382910108117599079446127480653103441662927076105322879189952072913669990872458719331247941755045960301932117722233223860428607337693957426007200298102488489946698540131952306895360304065075731517797081712513240989434311292199689004705354973758945812143464115771480791481425914050271635648793196371539800214034458596146406929929585805487291139967357353504159062750793989030875311957711604685524823132318951975996281062918484771299823973740089593793045457353547769204462188833003613361335047245607536172468310251848584511965503250238896755793439801030803211642269183798166839395930707626896811443968336378983390513804409800872497468360589140012944640232987012527774637126760542980910796682560660465667587551859099878988926614686277808346937843582508775796873517962173434051109625456428861965522660765644504609870209236419825612644947083467891218771778742377140647498505344276982690199962589117097778841896003589515275111298618485424530863510130942129525426660433589274802506399478064235510919629315830032834901159163435856379048862636826134179229112813044911129202321284122742210287763309476424698124897677887996673582667767531165465360441620049895392228521901079776608313218812941322631848669722428455405790619542267986338264600318000344425002399208085853161503095693813330658176374995770913067522772750383558348505494771661411126143280879877278263249509673873854424030274133477761816895921485222839091487147364892164475771610664771106711620737982799065064281254513559797237303604093267505228852746597867624256719565706425183257170172077622733238445035073713715787016385111496749854562707579738703915901112132067871656164400872474226574141904002227914277219024599859230746720111861001632820404583090501673546806352925666250003883582864704808177824405403487916925241174166952628645786577223728271297803070176333837774328593598022704177696566459201489089315886179094930972387109113725586261148322310195492775124530914083577780894421115840902827694896154101607626636484470767657734407976654130879745368202319671132274985560814593811584919964280526016919187561775072373393715107062304240907477179659770027352290176595462773889786261393605646528740657605574686407445439512334695418005001730277314327135197661719651291677073874204968557248385354475153381860030231852603773254363483680150935985220955541390593955893809316956591708652450127969139545129992462259214386709743029988784105115067846635934625954469019913528757485339958795657311125170723126383135695412708960502451374454050902826745903212481205143699412596698107329367611360147155929517024817342446569515377393574352549306228430323669098186672455218489343595532777495122101994016801214355454011189783874858911550960156029900157210701786356495090406700219804287481751093513799738241971929479727858234631335985126931488753449364700635672017371007180059555140062911384281380458939027620938290504220008446357152090390615856311841510698897742601977234430523058703523300136283353463047268935755224226828103221093957550876416720338682702154829815099049513032024403482400545547473948595484773490817055726443905275551320440901074178148015511475439672434569896639610365868598027486971760053852807174900980257410986903570664143462220706203639716839276881332874661602491392405677910062488119209995864887203264325939642403092090673366082720494151114740749753033721641509067002784092056173512495504763983294372762353620108761103460680908161894920628949902988889287472728412491028582605303576388760286706054087895054820895636678439785849913958285204991412501327931266379019609281230578670414184190750563543545236344926735435346545377238303139019661192489716895829454634423134954287075067196902449099791343635709744472704692853875387481094475457891416347501076418396353291622241976192890902142285368339339588658939789462155356953032155260351195400055793011872201016915484029967858400113883376582948860931138531088498181051802789669516137436844979381262797088033187997947083276605880377367841308892138377637250490127338825771219249730062872179688014769451688213477020015439327621852285719844384687386617657658883699664116872648720970019294735042619363843066743462024686708098184127957419025612670299292880554840662126654649281342146364514498316277344986622836091837184933915504780326073418131200583315542914482200447886989332620367797832336354410434352607267680921931901019726618042588902833010766537898342155922224990404135174587171864851830099578216530636209035954780849848472323524978573054616100550189431761072777323449353658556278811136519732025205020519620752397555194165726093218801225181731031818837448213727110350238663282014196537568491495139711115599337325662051775029139767144504171905141644830866320741290842959658895569940512032908894068520835030965124199291755207586382083565152849819701194451192110768034612445186436243447432389176425087803831338559899120920539103067458620550343209595727408449430328171155892244922373235442477115168887044545972634474611256946049858836321537096978940964810462636860241041010765143764929090231314174228745290654923184839525051647659316493849390695996575677188860502021989714020158188051789377551675421557435707048759938380006228975212317646168507435206163921435493332001348747264381707804109210376487598359034947661418124954943985684654832543747329037066579996192413363625963893558585660947198532964203033589065584261893548055187819228526321507320259713233146502038116005616972612376908595156331421126139761935567407322474717192704435080543416290316338394047987957321598918150080737237948455395606203410936060647816352145073720395924572825574972682097989757756833542556102448619019596808606786680837175341119990656740413968949303474640986647210980244461652932070579294619934988032216410030735291283099513340887664234924037569522041547420419404920193727107096414221177763344358114024872981958093006686548865561901504426090406551698111131573748909305827723572743020469301163182876923580480939703583108069638548374229953927665752507037394703335524184513520292885744472919831848964196669389515245146809364384795329770140702702738342623312604825447029729665412676309607304823719609671155088522346367429722495092901161966189625785897535432631421810399021429268020639215424380210092672000167860107119766748189156446031578695576985787132783709458064055834152776138550229977221866622814247342341048944282358120498555713930617670474771511907642191856407478062694490832074288161505822350320262513466646965152507812808956644662717486638087713566363324863266593101552617767185005978494688649138632357419112705324603409562807161033766099314253217702255857699287969968395737358376769789027095618788122087917667978816708476005991113978066400344958350719597148452709680914950196788959371742124879589843767726895043001618095570402811822852105806577975679979350332345074237685362218039362665465064354995123639408468317510909510230375589255354013387675753465312452717906744384295347270800369647282873529394245050073279348103837737100556195127477015048855594123283380439809525904437423900088809361837841639125573481714831218370945410284995286741644722005893403180325877907616666914126232334916543438081354565189430141378776023841457116916875033916590983237383404540153886053122557587757947416619592638015316964883814625175714999037148966494265088095440272492335903152442570826756470956820016753287053522112740847057744022158723437431037260378490335885753138565897288531135102882176623693891966066132700471567643964661864849831993543935993576241201383627580634822332445439621626767398176040107798720663850031645493090940038291540054610938071337491272663518627695756851709822369372117212246730508134274408523081388588125709754292847614720442428377390983691551759876935440586037879603706476000153692124157709062526501691585828138063376119305091002701211960673726497146975035241425858185614624104042309768779509999894333371254378651015711237042843792650529353586272601716658877303763819636043355677103140938704289882326106620822527137786267296627266126162220417223235930967068100800393517429439551340389326731074430468863099433872683150065750922558190051218366739596113826805872990113417046385517751922736352950636454592195916926680475590864540713591702716295010625826532029650821348891728515727078486732433246713604787404705546214130752387721432245194792672418566642064191588842924820297141185568702992746971714576932740887331756255106045778656401249942142320160708556626644723953790600531433980677845921583778687690954428912604097507197662521834212792162016447888680632268386841023796347800756832767751360566785038807202016086557183095756972297186504337024287966085991695659217884258436554735280213554974316350731355264589914244525088609679173549224557921033789432405478629939293505300621261277359826773287520169698187728611771569092594023838598021875106057262301573556891831808113491730233391115593073624522339501168069681962880470845627987751874513502640655703191286003999535314129017693941792795346992388058070490617643985865720984805023351971265606853399202837927703184949682619507058209889972714276339152065688936796262711394094719393024195983219925923541186159481130662169590219018210871107655151432000225361024002930290230785082141671953820539266055730678386838678399667635267627648592768452973994603976660988151011047065015121407752064391215398307510970578670999056508671100543192770554530388856331616269548122677474910069876061390405589655545627622111213966607241107931337517975896918775107961704311015858570749214762294113211422870884998666327207910438477152120628174673511263962743360179461967884075587471821008839440715814011916211106971728042749525071221336125479208654094465059989683050019804256869610200288338018102504065826222130745271784776426143388837763864479812609217458380136472084589990420012543440537527536761630449294085741617507289247168089445274896442410636878240824340166342099996405852722260878900153227934543282378572788859090784420127884574466346101242683036073182196826454272393266321379799253532558663280913460823939778493878620456065973159753805417071557656445656701955099755245058884592856956030396467638399580493678650319472375007028701618682801587525010822298700923520573407273910123551686153032423079095111784341339709661845543340961745753368831477141225026053585825850840579373784352416464086777856950438024203169665663440479765450788253027799327540629276658760434140116051149824995824987872190732533360049516689288429800408548431141775090859426433460575940464053282407667439277148239310020324014128954476730733237397664250658727918996423121026019450507439480197556199378005150596248349294471987516166429209407550949923577306403279396720298975226083777866038797956496023619350913505877649237752670384315851304981506473868568815629850888883568288461289447732848818760051811603347709929110275750146002521513296574499836532216167625322636277513418536359283480993061509578968137535805949434191183395607838656993469498157916453974198756628509838432368757019222799605533146727694293772500666530217409593763933881684997361145326717614534367342725081058394039934564642032519917119864906870696908280344177941533529510531158257000875690535899715306717026005431115835256697992879643382242094857306913851885817216100456444945983112281118067925908108275957231464055728573477674701523062134748179377860272632388886399187341838776875820916344062783251025008652748526753867460899801313131699446060620622037573324953360483907643260434035073923483827399899459966541155811877995902730609059989181581180889415421097920973581667201997853364587307946294288839936436173404629246120213559243016692932085101852700456031888667954730018103952655444794055613578216345847389050013040452188567869082610607320193305004549632821559442113938276607620996806707793757131499469767996047192365918364776422734575338696482556589683015721418239013444942862575734924946941277157266845575008261942563625547165581522065944775060357417420529864167880955820887385666723924845889999781080718325754018670968740397455747263658918830598082418829424813332739020552612197823227373434869125922121407047457394814393529904091050821640531372204094492065203577951010958643806553672674100390848426758621614770576392389544479772527218542041109430773213840597656963511061210852236464499550904748842325576322360133561193114027649450134572726729615654252445109188583154680610896327391729793009509996073633245420019668933036237840055372513847598478441865011639518737685550402773988086841705196511368924343305394631629346256733601367018222360294230740976044878025246958594733366089674310134947404024514552650264815532184111391205139162484564887913225429586966405425463736642773899150654763839101314750469970063784465187637795907725400946099884796913832641770492994762081184189747262627133670987202883970660029684724334622535643071939540440997683519389513307706464929732334944526187977163232057915523339523176539945282327457863394207263207964404209628140261011201354064700562471002857092383383657345886964063803706785450446866703589871360971880028995689432707577979596449346301692896383352947933582961291091468353334145099478606655697177432710328355930112540176613707987402458091180763229038242879796378195325179859524499100471075339591550900322259423370149469802094167457317292677703308950461384997358748594174565307755247995321361868541472694298554193165633365976297764258650091012456538910090333742785079598192043063962846494996921497100608254635371489442247791104952600286996007236229650870283065100525469429632114607165394031346532204722038251100292898779444043556536249309758868440854432856196883043952252211013770312551385692936472586442315808558297937091843185243235670392507713839292804953546616943227521285401065106482853315610915254514663576816586868112181302670695182545519545027773307558351381174750604947449754900988435994813556743393103125014018728007761838935700050738973062392207098406401889193680188392653854246431535668013229770275534454984208496605457847475913838233626016406305183860631210414342059462279271866583464323946426979010053656662555370262412204340564324863118102697630269203664464870148825075152463598558393874200741998126771886110136132592525635826518425363647423615973140902630023365266784685415670949564699469802355384972191762093289359572479406834696850974077332323172498912002302481084097690828833817583398308624386116658799972882965713439488297250336664618620282581823654001408772567909774657054572901178114205124770536002595883457183487136519844503327511729166907611165271805661923763362542000124590926989203961428503838792168136894921435192637352250669457622777154632028016732991082223291134818271579149999564439571500960942193825427041397357345435471704717689516659176817729050800002514743036870758404211763167354962959422778278512233881081515622452385505819954524067359456134812957427834462735211748757669875431165501451876879279306364411012153603044251807229814292772474418354703504007534797467317006219079352617399628280730595902885942089595851435634965449508871391217511973655941948657537528068091480778414513556622360657142256703441675871259433096529180641279276972736836296389139128075852101677374895909626598172806531404872972491719895181290561881310835149262629803370274267277421573954491705514749543973446942766072856753001104834330377057039962143191789203487912210091513166660421485212618471321662033400415452475592523988321543248722293279186323283584315570897561502058344329661705204076239175586225013524438050443044946208013117481200569594496631452165879627329862657363471713707567863163833339142376243639991976375642854657660851232647729571666709861478537436692513748115494680038603291124754600134274288787565145337436707602249633904434865219055099965468938618567148491229750597073280663466949093371693036900656869587837365607472292351654523464242417277268602015316513130384965968558649136527967949963175670193195407547268060655919552868107472460695291762221930104075116518978325079631130006819519136942636056141879809779433725063068945280115324038685361073970492454566526958906055672750974355804852234741710259918284263523322804097008037146546442851879915187248030122195293064760001990932360209958744807389057146923118291898706831582553385235032348299362630895495100064123773047355424529455168517233202307207936658221574155082321695039594557868258554125101389392828854457837956428561915022983406606783249033578791806366388055898502927520001065787224202648015207469509797404409275793767604399525267925861370241041234006493954901899503347895734050741601313679454512575627042163240285237478925046556085193622547077421985711781127364750606823508382809732788354358234883277372046776633869258248118673599750106239512469532736113402062116302172884269272821981043834876817622406066481586222171772569239063753766187146674540084109637907356030480153195460327062988774284821998809096165470796445691482097245749724053795736972299609544349789844406499887133853899222289640052403906621695800387695767588152518941132660656043531856806485092032582486041102264688098190728466304816526647200742890346215756534354883928532444884070496528110584649697244575144241923523183848029896200451377424264111454475830334217689474118161176067764106835258837681294999566633359841825640636091029063950418204738459868080521259333796266013938406575443601590363577335156330059404671815144319809827173312214793454342374315079598663904086109331818494043621996852364541938751199579229450785845769995876753482363489000592174926504418270213693471224990637807365086308231509457628860911252471074092928071387993538552782807299757054140452824751299067962950048197006507469920021973996543453512818107861025116993762886602438875954068250599000311039572865231293699665198647612645826878857282109023073521435291639905363257061547016055997299697771864335200159329495677039403334876370748463097590754639141360300446000008336211005288873821586410874613889726895276135099909492101723128699233907384672037121497051390309335449057921545083799289709577524645282199450355953543847786595638887271102169677832863909798151188908924815470232991684386928307587402734690593784181382078288476334826436017941673690300682621969374611700830175529957765529735587619706346944448446813092238208976846046722996914856335160765278311170621012288265419241128364474357352965829824623556017899299196251402351370516619606193025709617607347877112572270145597105491353505673990963905387720376348777956980854236313785173358769676913910466437298797041212780929618196880986629962276816601436852852926294047407627983318162406764107193015666189776213613479185990137200023150324771082456918937650783078917718974018881780318223386568740478674581341998719042565475594118317063595497901857009223231417719976010559206520248114913399416194309040991068482143718453247475022753739183890248009291700125463135914820498997304338074430653565995273282268572055034515503168960139479010286594735837611585715034874897364056734131668554336053108558604089135472523907462653415715841651363806681305532865799240926593426310691005236940859402625062305646693509653320089816947198355900802016142557725590461696680696801958566362897637910577022936659244126460246788425956062358119771069543807255661216409080541050679745055455620051311954328588488266093968949121583387005820496427348500696249178451074448738885227786215196944737248551546599962154443233976569674465972843782208855934445758846739704186612138723759392955637871801332532961297079511508950547798052915341155201961419643827451345380844534722826308787647795111196562241498416541332119875145183941315320992245679699973914503023055022117512303690179759448236732294612057732737153696223058181268832932636185092112583932009716982686582770264642926236857151775470314616089954359870164773185977183423645923671811445785527847639653179233795672899167410771666887597476884875486887233433814093985717470255406144678369377711913511758514369381237661803907356279092468604786134594106864979021573858725023596298071909989902019181368210803318228165982143647091567066153531435621387267181010647162645543460547966243291884913175903490749799925649163643981928546464948954248899893059370123853362618865040723550381376151655651671800600788306067299735438976526711254628956925643588392614519840214785411938054603937486862735545962901083207424167246730446395924624800032389114658109512638246045050285472705143276296182872337621316456593195330055221225429932908713561453221306755314707824438114066177245433324588157532150940482917217890234215603776851614603311816254561448811403931622474163104091586440803075547623904370330528925960010855810333484504924239756431843594209628852810288426493475573490112761550695599137443800027183249806410118179192727053116756346325986791762014902827524719705747839126591401335538665092610302344500562284290732771842367302356499693955577752864934443039146937175052418674394324220796510807168683511599642427821858354412680081630932214534169753077971385876198451849655063518084970510786614660576170121553177879842961962258261589697797047244473336116994638086255276498296723854671562481106661032323101929262698705667199566050248288485714190384672466092055854726736881264194715592899587244685008971829772618884793211287435476843973222571611677806009783529226139945308004049253505983507660702001166639978078567926292444356223837471554328664809179699135395324630450079770445420080875808062621867151834839293397765198327956425377622519773056688684284497059153702322115024375451978980487388966745986042211804670515874851351113471580587084028746962611352318955920168408979541176247006736920757510929946866978419563593991729252351473724810913527688618439659385523120362918828712169951384475597029491016766521226381836102195153495199039051383706754380601793168685950038149883134506982698014295160170248665598278328334762595159434424256807726494906205866018361986305647483150184480042533323423594881908791437693746878339730766934165876039718056460877874769776438957971377219090363941632452530709884265845654337291798722013387719143896426836601770785675846665364172431786618460000116603092271122123844077920904647725476976629859348953234412863470447362419899715663181405329566955800459562214308460723748056551246221808646439950559680837661483747569184969314076538902975041199805605826435075746430835532859475829248654326714416028876912492640690521380275364549586946319817105905501380436403466643395122587044052138423092106814852088128648730721363915438850287153276934472000089668071747525749907126818525605767914768341911212899766656371254140003992209387825301968000411035302682642896242930630545932744652006649093706880423168219574006120058580110435393611003958759969253970647675556732580032850744759577263206988365800862204424665764458680046142593192350952036663851619140998433526305507908752678017119820856985700697245444741828130946199421094152449053941185942432531465331189243912565493871548793626466906013044861459900485441676390197633739842731971906667135149427930935108338475633587197129900148729610825933891234107060907479934674830124477939831608356958463083121015489363260885465354579513466990797323630111896434577492110305211399681958122880314603126859132171785562763953407412161690655060657461840058638559481584075376828584704696901964676184508745071596298721678697286072350880873810994310071713402014575870076261497814250904819864520390675521023337953191285825787810880480121347679927055421882040296051380368881254245050252472390220782360080630952446612720086853930772407798266767844096228076424305053032216129988017811555532587137634593849124581789880114125659318404743427149927754088778398392480607875410466873190797579773431744740445627642619559287564440959622285370572873082097850299548434407069550628171080090797881065991486700299304155524692828008055182169184578511037870198497808347763693407891341160987996247238908698888337579838119775851023618091121031911303162711097195625222525517206608116589663966382436539680218708234028624624430816711662139539340698544294783042371225164596395317147472210997453182943890333209640691638067738620040958507187530531006887554687902754264770215961780492413201191228364863858144605060540732601421182228659136349736899001654443613304235648313077505228489871519054422708716719158230541032824755714709759168564087447383345069603725796795676595977067430288478351264966193098022518506919653863509535213482581691755665035849407305640568554015094161074842038584061307477697373823739650188516314757247750741628155016037357756585993590342451323436359711892268849500905501566856925397529814101677458139874856026133024111469041206076698412369385431740031457159551697072787818302836296699574931641685302746167404931294550762357834135152620569187457333552639607789486321118369307271795701583807213508736297843758701657699238679186035926896142856257429256361565114361464572710481849821671955364368878058977174878491019501880828300485965508357928427570024428985102106495288875531304730140412432694701025989819252711512583723762329575858803212709205756443595120064491309295312365285406378973629909491361653051434834379890739619285136368885965254730111228977025797712553692465689642555067105914048076457178441200112468733002734787158697941716257719659127994704328454967145395941522868531567128832857327966025205819391815242242359655418315244454915320310066328976764850389984595211490874121161439864774125877110629898418970639062085005499038023954519621148606119761418154471728721832922092789634774599559130637675461564107456287197657031383569853201595710446364131954003488774199125938371016712866005381066731252151188836041923978410713563648081522923944735071959086413203261687589767356479690216520516533157013490046393890494145031017742322467796261117822365347462935288025532160983742610463412717959140338061200796836607022419416333137613114356835436480203287764272412100820016749319836995431733892553151509030553358429912124142747280406590230273060706581242965090238048552834257709530922294162624096263674365807513734686377657278278659826024935692544486762012369346925286332692289725647955606521196710858329226737189867094725235963063791929883987650835143837003254126572101596502365970062586765885941912488497322319275431172746593548623463477380226325752060802186679396320421070805358018668730349126441372312886859125282526580730274490049644340503164506162166546836659005585352558025268824271791506973445785497192200075743767560031223505000601903791065659305543598318774885517982992912698634843411942110805009970542037757732370051643020407159858888670179589430081739777427775965238599477735649508739543314327779827904373085488660644042885060800494689298137560656339483724793447121999984898755763386695409411267921950647089630441620058607513102726735219887280877520999252068448779966360436812462127973817397944530580065010966367495292971599307331677527635870936924303573416304456388674829731771311889313884355706921687652173793803992468102783158417170920202912607294844295401168623052919536558765939869744814026995932029649258307753853980975355229194591802352101573295073221791162937163249173359647932305674378289544165030701489752442950666618331892843484089542548181899217191900679049440602782160690703041784738795542156008353192118184655732226399302586283005452081316481180254291145274653985558333151332735568603150724033352887742937232513548605693403146127486621016439080512510668740815345633088204017185527471476768970403623696065483246231904613769364047832373511406340267907386261531081394159941467397074838233935369102970354280741778356645818595676545495438832239331635531716116445053215165898163721705479431774277556688391838443236256583046067263858608073039961476155760690999850773219697200657147276423612582075956632785924731932711259033092742422331006974055694910273029026880419690358056137946475081894752551682752616680281706981117691584833791356025868647782997586123848357955335114924521780814606660006140711013496398823311008982924467946972037369266013794582036671660587561833110375404844651965556943787108252088858689690416365239654633368326056207099818194760071795008960129088789185197356672764038709387682406441081367922461432628956881059061841277987773342771278717384699965352541134934469977166075542705112623806157884677854477516155105914568759668669449169069284060285651609027491791561974073373848747477788686540056818030766799778421957786871514915989281432946511798187768107252870653708694297475188121088675205093821690803701301040223352294616979557409759400972537459403316645544673173515147149186968213940002482222695574378884474511486813766336807767740264141749899068978745010464126472668011249474291398820846333934738653107308906143858038604713905575268861080502622026892333904971887680872371276659846368422188710616989244318795462783744052117819744316336559343269126564363183727782825298782366792236131030109992513709236767832609276724993956600142810322336888855759770966286038641851467005200559106694190550042700221090257480097484348018093772504729363069890016317484052165667271387482877728288549350899718382747898545240222064586308356899642995570167755898360116354948234819506711136190101154093136959055191720558833853944680347766626495543736009012572181265230382841228597796143294699801470331243597733127288702659805001103944484815699451699935323567872305742516815937472781832472722556866875272220846056836654025553078651123087041113570665153418752230129033251034471056908530951985628012400218911420265541813276827138920740126870927618001852651137459827045720471607075289079520739915457174575383298409878375331615637756636696863768510881409102482760559390104853430628271287451722516542744219645843323280869812998474660794948192852955415495175134822184058007333483796796156747810224115847651461195967568212471068841544223044286479382542990662839375315728657249500131711068739557490489889746627912230998480842613845579633754231846639970015928466891570012088630272793552527795671240033012671729862133584307310721921933572966572444513846055878523573695294931736683265750667012363694379634089001743396824618605340396081087094562696793707037080314790904208925865399143534510088939741284208192536039180372143249424070631624047354503028383638182520347251744112670951077982748577089739822616242907642257794602972893732087022032351386693381989056464676856398850402665080328668539887610700191436402561605021152182852211867179635273563200267940219454722716189405121027794144669222179592800674060437614849814761031655271893467178579295439305368665334282763916711483556485651089914491860003229810841792235298763092404248590567631175980400432341937058127465928727164760379968587713522558639580277220119547379941722631635571852602255795978900878842758027308775728258649402257046668637248659970483846985795193808339518843825845651641571508383455681306469042812880477236030130991916418760775398808135819453759701813070476004356161667832344633961257802468393660170718676755103744143201731113432962906859453961135058945246891540132859405093903739888496248535143680584292013146737480550626675018129259715206902569251208675266218644890976934017616223496672891462075471947647534135147760364802939262876718138708642091487070053701967061936087350253421388728335001293441882695576835842629916606304104322376531958031095929560967512507602957470443753817196047374613725179718839092586206299581165361822500703965907454647414517413951141362538474645079700138694709347847619803742290428500757330997263073204923494875416318801076955180602782516453675394620536895363249299815420274021388823359864827650285808599640857573313049638967271238709017521575279483384830727487322007347405169869739090551255659369330143269383349490698951420365559661201904145760499397066929666080315211128370582150189698855198908760388229641648103276783540473928637035119777756277126765487914270881700185410362723586618232104740736809804798346812547373445075903447278164052995294846834359098853121468593273968628358369144175815586839713416840161463763129215167269377599920548630530976334388413406849718323671840213851320031760471290837179360892320295503603024879773056964631446331194715979628353075182483157848044464182374902672025824525594210756621545913226580223326657025137142448911866208665547249613545113556704461778381263509841320167760271067965644412565839727072653233967525190308754876462843945182105492317014152859609298046682827783599255567623990949478058192581200975771241833976653802531641863203922309753231412359374554753285755548615913481830374057855975550344976838102465838740057239211741590522648706545594088278309806339431877100220781255404488829875853456653878771428018006763776637196558933183566315031611233459409176661789927773774705763991858711817272115288327870450986895962681897247344666099727719067896845796454481959221957201079059020628566247051001781304299978848012112778414800959753216637250554124954911547279455953548260684927089965494178598971068803176958318889830585359682480603457724205292172078115645260198758698794161281481675697851475759947589951700374695572062795287605044440604732090607307335375893437746719006884274316970843821129680077859868685749613347434069473327154221388956713045320579399107736259197266937858381461399264864948120140693403559330138092302557835633849294194923229001363661405107426337735888206445024462272020858899617309912148257329682480808376579260445954814262895250745072776742229201342094183849563601448320170307459233227392184875291158636939970613555744700568388862467074561252251352510606603091553176429572545870971730697367972016923336017317468284859225946423750685711275261207658656449771672195288105174370738380221914215335288591963895346743985228713250524842000010010560948327808461368526160512729714235429932444597083592996107177635635585447485451722731484486560041787567790598753003911370698071126935211752456890744147974160565732247219122329472743310551708589439351496668076658866811961038975656692508881469050340319721569079591286583344260675856168615553285278577459640898945851227473590506670795885013058324139517660396067800665637770142056408647065109212934064207970910195225857745677496747634036855562234489894027590821030544820181706028810315509757809929649880512374781825693961128044869800370967754369499636376907757256543881891382377577720372595388590025509245001524165601260598677039383816059892062544921200032039105867610706512883221031525764120556658109592713433304311612074935861242173533809114841529449798063943461391646999715492989864251444556554021430471373417492763590060207971993982157092344909210226427783690654271126041837771675166514266115745670187979773276615390335082422348999724892793064500837764381322962765437035506960895993812875534994058364859048418154976638529642610026224961455044603492956530492481788630627784614300268459705237276732539992358007601574997171360272443742598439103268732624004463410903803681718072884283427178334064846754470572555901344945918107792260540553288107267364054924734634165257187867624749939545811694331169622400889945294442383134623571461964876588202312731784752788339653916180076365415221874790619090983378651076908659994854452668774514746679865090385427875421550690835150497960814417480755129095247078635716040749947313168928542326565164335590166137315252575805976636042233692641983908865212143574668981403410700757522277910319307976516720402073204519348946324249128478498684163918941000914945305346803998339297867936934325950443378293875696880448432264343706591882444450647061238840847167956823424844533110792573597591912058446807914485207361884932627205803098145698763911892231321654551328130228058321323181570000928281207035253097150776262397775016631140033616358910085433133652882284725135441319945955528296485970662508585390197003115807745822240662364419506803509104775900297448321697579500572866749642406225383832007315463602201275951434175055640915387042612478838234728976662006360229452804967182520841681022913989123237618036214716764038890649378809958451773120600086615094786281760939064002103509303030428979526237064968480244014464324499228032714496822248711342699780710550210007403947956067826063902860001095923677615268043313064963038070210159118465205560940773119192231164698208054613758865352386086878644616916760207638970102848153265943635916638284579816512948916150886064235439404029984771688987146143073855886320129364954165269475564821624412951296755259440053000313292916980366276578465754106074579262097390519499001024768511506009728407417733190282837807430412204998110362388687365529185884979207289217777647695541630250454887843862398240231590122373333129103104610953982583912523428153297494039671327013344232808102855829352575706650777468267604314054969438103183266853160460802624889328496729017933381606230126707345536982455661988577620979300447278262370686679042886041437487563084756043394523906201854720584153639094841178770234104595520264046336606663561540805503652065440793474454236927087734344425406778758845260516446387115926777207801272088021975517220245475204359234106773766875997761504431038376445113207538832184970993498705791145076259480662755232326172188952513061146403696470594093870229717330558200984389673355486431097821611459598763308873689362235568173420628541416783506276189731689311230834229484898946819269110206130110077693561739316724228599431684962782269062716921036093262804368425542776460706140657885754655273802646210524935113636041401961764078325679908499257739753854122334285381103795634755955987979272872557720772557841668240532664297679306002195164303871547757054024337095822162959724204975679291018012820931025723005507054229133401550887473197627325133354882426081288528179029411032266739925793318566979235868560423870631210705478807129684698124744244829568824942943683569833628164430526834690887793301237991400241425582273062062953537722610477473463669268279970259016891460282436130834279740167664109749929336774255118180134543819749522367352942179154365602866190931817781999290223092280438218862846360530947005494682990879633924863806797737691896975453617854030492412634397569565953977800376821621461962021910057634864303701620293351636095140257755230993352574930928272246184718279258578566581148231502463402982183776441134237612800560714492781578554178173569686278415403684186010786623490314112423618380083804039235707478614435366277125811417166348278830579901925861017743189348832629342692508081397575818959758521930811703000001935021325315320778720365222263599920545732249201397853709044267566058533889688971115609331092115272013951076432893435382287649096392380843128490849439418301050506798862042467711123306639586519053433892280308502217347650376115027833629236337311729856290986831723997655831158672978835814693857162132214075738028395571708925857850492659439511533545052474409344627376617351100987894186003658172761955870756685168085019143725633338099862265721292412240503731731584471659245539393497588774209470850439687390829424657315316886694436555737371667245412719907113551656981013682354596771516556203212204108086119466842420355041561923702194059007818248250057195484212802253772043537876203576083656558604595818498419467018346143765052619826966870386823052015871527636111206015660261292296006947601096032372495794424347681094215457077032601847551380916481419514232594633617466665467304776690808721197377579507122392296364797545495390932551787532314341690783843266228980733328326608249357758349711791147559541418749549294050709237355119944267322410370219607415082196937962366670332495292580903093710345378419707867569045088301489475488796717718847240819324221287725955399644184722630484969879290420494918288221767906488247065397694548017152964994257526534050928602372217074003003169011743774306934174852246940713188852784773175825331658548779820929168183785238814737265090371262100612550622786664001060690777738804225280596209859664457438790669100738605364446250730791561145361305705081415139407963041875161473708689770564190903748445978166649034198422646576160296872939249813613368025921617581311955733813731629958532197523409404784282022373461690951906929200591368537180454683204427521409923899209214021310954527045926017039828508733535085040617985633331686252395515209690581354529785929937269314527124261313720022225715673342793445350255061375454636513675947307739533738127377033437479624217869067917439875985329211655930563455839624210528897936623941411452380869548319222258810466096050846666949446398219352591425003161459271293442925986434413886682031034234606659677555495378589387482729164963148410607821056035544791168051500407698460827081773955697358977473062470202215579771415162110359611493834202460802072709329965072987239087745488928857211773244594799087681173635042824371791201762301742606872878220885091104276831042824357776134544043516855208200474223530110997972575157771481917393723920385259645915154801408460051783719398344656659779472187635223485665208294931421695218571393016495171384977740504985607344159026717389143438840188542304574571884122718430334336117786679657849029598448905101771226816380825942826030830581121381386750071201859039740992154599691266443574257934774338404525398357448180681752213901236517460397283580441717984235529428438648887188092645686058351006393137989970770645785083503889208101644310258198664580187133439241280582024998258734118773724684062429524667220082167887264270986646674937422486320398876119666863828729280082276727223402169142834741725246990343456540687894945371070698116799130390365180332762107316830526999256972489987610221258161201796730398704083864717069672143708817779209746170458871823133119567536874838202601118924346970720150896790995677493278374111409669037191821283988309076494510302609568539935941306079129662255568612131152173289619965971457469675939225323602039814503724266370479840863872356550102422426724999981389505123103267594026714176083101862226803823688672622347960094855411589400311809679033211312313970218032995758917304296250246707860241553702590822440861020231391529301332257601174978707427239767292120038058708929993375131175535209004148925814949002727885106039760137653758291489641144642570044312737686932389395039997514607063409345533892317408743024492782639736143680523079759046858120553343714526283274194905733908480081211146948752266271911480984357369663132336792024544992457655972538455353926852108327379588529125289823150413495982932714647166424658005122843874074120763741325847782276454439725452267161992722072099679834725638758684011668804169904797632732786709319224673452494902745459848491158978218235465125945487877742545158901880082948647855325012540932474027998294409946470457740724409940854380722820857446612039658155394542023991936011692714731773278875752063978375949358734315137271071690335399597467658449399566988451867863640688520025362276278448676219843642246645790693030890136571751475565143948690225836233693069623656749290915534009805496702543093673089906202613961023020556635087182579514738574906320509338622940354665471914014786039339966332233499128244276697434994541197026152099341402530242875464322240884261888761132701394678386523271511820430957063570259414746385493256116766105539734188224661939666186172755179378123923820150657988205804736060927848916603439625243166287140410625176066302806413170440753411223386135012513979251135000647850567009716628247514941301983131110493707172686596030168898933819533138374065133796986504327289963647093329929184422739804690612917557936223914248756952341340605777070281858628417792988663547631062279858654073891406279075685243274564220212395197592302181082846835092151643483586065326643595807730395161727099658945810589296657717913165368259623141458898925668054719799474340986858773644139050042414066885681427306614985085968813826032599447300189270017537531602521014828537807266701882326582152552107425059420599630007766287520503686159849345158277596245323753676917859946521852655177846857586789677140714714140688833732594352134677731677792013828909416282626242972314257247768590962129177444435873994449512359429284817641051770659989801838225358674865226323014827116713160670700445700957725063300109992441562086858343273570628044760382588963693658539881562107262470270017722551305828235052511090777114705260334865247701837658519972176902124157052700221581437125879396571724122017127240522314009158421688320298295231411128502472457582607104028162683800203696839206510667898164004495688993563250025732492195725490233317367379195384846166151846666219011673218390358637540533410702194733860387643848622240890840930069314380963278518802139489606507242317712718590546512810249038391956639425887855339623372207295186065565898842268451053062058004239305866063391389562474944621863511786096219054979702152920083856774159517384421429230945095020846381471968144042454454697458439532134870185313801322041516238167377896168580445421627291944375301844557747427831157822889641897160347103650923529653585475371920959671824584063796593130439335108791816270259910968499459473697434581761785122730218283403960314049780992753272225580649075738939436407056393604230903639946006503897537573297961397421820173875368541078059393524088676829116052823880167571592617096409528224036311325171613938881521479489238583499077222802093102215582825383644080228563173151337313301345775615607006058966247397034705645642615189405083307657900620523473854515148647170266600938684906016167756367549724684158854774021286132752993785335379880820495043265965598148417326593912377146412437623061505490422972913697690932611166127136020525114286756262177280923585110304792803102222022125155987167459423693219991371677342171779260973609655468555631754312089817144777610680878634427387772593827826916740941564275755036381756383305046152195643878175333886734309641435291568518178414553418663169623262065198890648934007217430133523677467080257140230781882458669043408854032267870435756608192858634866461009400985892952716892949846223231905380800439272573483797540913296222182872977267615036163223344740189315710484062251668695389518566994442314327138909297111102751794391126141389086882116322682172834428472564771522735405757028013339802774758461809508411157129032263319558292990116793211955060758178094330343977672176716617946672756885477005086822977594793974910727157739882628839260305951816262991406790357063981265528054199169059957930606639673694701608122777468362161827089576344724505434291963916404242492762245885569708191692278544046090060317057844155960082365486298296511080287447429657446581425414594370917006487596717067895243442150234795006800085040630802901554190188271187745890169984338068414674773778340659438951713438988315184102988070621286411154648421292679180159752336304815899640197363699082796457629599804720337545738411770634895280956611784872981478542249539441747266834897225845105571113033036287338582231933066602979450136973212904019563476561833327886356678979708940610892815545634838952328697891942633233764825678162293344063575428667291236151473612691297256345928565062697151430773145269874308089542466403758960600407765438648961836057336923975229053006465805092129299608809532963949610968687561635347315165686860183645134188243693523643452665598559032902292415830903926562943698098720035010137979351010426769438916593762684190595937337991104303036831549214654248446303047150427275501609770623240054494422104733267825946034949031577257567274055906131360479247485318393007837977422388887389966689339536399612929840129432895298050303538064643078009417999154048165037248582781944928861588093662220942200109116580981101995742902942411203389833424738880247321924650547567162019378262258427688975005883900633220341007742861486060440451782999037286261640819365259322534976577369573999593967597348586254004411037247614246159893556314830916364439520014617230552129772413027750475789244312319556123954880865288562258596575110495300202831029316040741018535130608941734611907526940207404333842214601809599338580650159437423531819754913536073003159839233773458325741227405369432024669652886595128731032176009884348288430272544218314637412657665494139666132647262448017751440207949430832194737679140196888568847389001629812096478552824961118562368460778156442778476092305810976941333834712400008238244217420087334467596874357692034094146753464944334530354298374936789800329959812319521148088391544276085474813508547778960374969317538562972756616913074910817302250248833754713416189791294575282919741024980768759868532285612595820320310806073269410376557522464482537457912974644826793473309450827637533446063721477183317227691016522900371589615321302953744591898405613246350013324638503405074438467615231484483407091315677576370519265072429606007503649861819836862419095675286850323380976415569989017115369292393033284854986558629801458686836595106882624144262735198958805512952977130231236741976037808411614161184747134261885558884733414627983782855491114091483628398619888515833560309138141858149801893924758723355080530848907573587235046853081458402956283765007749012204644795515758042547308614776121605642902807923381230890360049068496095271007182402156440121105798929071102318744148701829465650491008495817430394874841741875173474727002269712554564878681611082575084716783547246278856582281089689344262446057545412916190928177151895398901365012904744504944384714538872517418694684587688737454479962575835563339571743489389576071404689658432303838011790961700327592402470538548662171083523564785106608533074345278274460409272371523972350372018039009029383280251841409424214862287609232329529675605624856535306869998133632025627547235660563461467839496151572407380984223375659248022765239534125319271026526138059351539934130097399082153022455695568154994057922226490909289380589933944695205277265647232701058799664738418901383017363212341298222490251766080563399160072902128580258712594755167538714864490580962737021715521780692472029077491371784962914457076063253383326364657851509502153357416436728545943050917059369526375304739282123655311366420467642823666229433977629362400193032328531836196412502061963276291307062503615186051463309190770726676714730044687149948684649827092723641350386791144766644469150023543363590777984945152504305303765398476227709101174812994047757902159515682961658142750050221320511261910547125440508684726032557737779981574560518205314855370596047408742916251159716448187537202628528576781613223329478879216110351720846845922435863647961350110337486756918928188904894894387156710433354151115076532046103755931836132969746316567807510397155817611038878637426713993831679806269635556221894231295346792640451186264850660717993443770119259645248512434527254971156468645168344686624664796758507657456436016424264635399623329188153547236486310512225343472853734165305046230966374479125331005228181564570851319772764519199221172001915637392253393292514780196929426917405684382989950266795875196811604899192619533251631454176868599751922471542847393580013642795434344232175269884366672747045708161730128245515535358847472093073871741586491971661168091283937444609794058648576125523207672109728272754852318392554934171989895426915866365090270325199510698408832843310503602818332615757268842537384028323785110813128307441878247484620828564218697436792948296165356248162703135239140866903913722719181096761355825030854711313530893596980861780809602638001705481241359230577414854259767568495205109121150840425473718882234140654447585884578143126931565594022457611188911919415192391416833890111151740403533311513101766725170188253363270711974497813895324159206433359853265855705901194697684118514328108453309941051440987996333597277674461492410105201821762400323247018704667655527082686280532831512368626836176521150180340624297858773737300552393737927561879988455153415099971407104971286268752482043648967901362857786100869850694702932093746033459816572435718775581092823019061656545306042152204219516221564377081361722248873381174479172237521794467863812285701326797504123853708607937050658384379439463971455503363887155001633515493873698036615261426106310917554987167497165940271077499081553676116651051259431046549058198161801461095625447138663738212923845088424105276185317713369377454351928281853186447759306927147307280336870886257855904662179763448518243735276390836192418013396326057317517544475000421900181208462365671949017833320943575138011650341779585997791485354218548511044002850548145163321746307840908740898875262022565381327485621639955370949846879483185332833594768901010133715648745784635741007065134826533889406519282961443427515699924968847892315836250020069430465051960808027770752380752555783233499853809454116315387239033054839074020792364250904258716830600201874746810226641842907559158298075271509237104560458294766908653151981382721742760182571449610385118176605990291732942071797084393779409110721069228347138118037813282643608414628121547116049304842715676527296434852187508814492134672980049555734930543916355332837078527645914092201670606329558362510649036798242422228611087597980076319367763793415493769577176267308908452421352989326467264163749330029293207891003304812352218403641475050297561392009625883067477192222570032427826965806058400614842895558020367176936462033175906011759305768558519342371989477237361906455740682808850830443680892385406993998929637790069309182159801022870914936218495145928595868190308931682964372386614305469793085861790829603040323273522652867584322379849266859168561452815849832284173519184125507485931721168338366006666830633474243230156126028733310306699057198414209753941319640870904882639832092611972346421463286702589445818806450203531384475137997218759664906023972860157146332331064600462160403449632530790918780440372217433056806768230669129476160031066080033941754844344710866315742110453357603659821034536745969909713158357149320201819633945773009308392888012046288495556018836309483152368533149775676250705956943334162754899968944729391983303805646003211627472191465294736669049517850999881777018430027331464083790808819164664298534823209585458107092097987884813152107523263409403156511400252276156524255936978278660697716350287104166678351575813139574047450763966685607129322310202565603400738196933207370303625710790627365424270784081190195702360798479282483406037767680800815343436602933828579073529040587408094224852564619098701848169121970411969409092915110620658869626467419145241486526576672700347135361917776669709164435596633355068211209975572174730006566944618254622966801063938490242401553962713165999613132254510930869232060997382463311179765334835759928266223101692591349416714893212915260602623622814212631158133564030756660058052306396128146615852879910208747674951288180807832642865984719223802934918783208678699302035553541399265891381408816864976442450191541263544188937029551983618345512914478526527952840668914973132623599579340566858517316560869798838066611937939788141676188485673946743806116921883377337677943673205731786453656122171317349515633005384541155270073177091097070676172535405985535074235756678781525667768493710606207945656877825789867396409993529022075317386934831488945524644322853096188280154749027085238480939448476176529871310890042276128059709816422932434921169841435070364677896271185186162575129352566854876980813550991171563640992691170418457451263536406077684426047499316994109729397144355285023604164391947264534894097275845530891984205192255063979012557369645223026431633988377972948801435944579333951518005581381316241189954805570961981386071945080016568722678745318991535434725602434091442694942521461990272122849204504678891121599972854318187359425207089767573222757305108450165231376757426657498704618971839388038456970226499421725611468305039691183361397132429437077388685533701818852151109065350386174255955316176238330179300614536878553547712057138871568549917495551151434619876328030218892151947698628398080215048861429582719141662825860026222824305508729479062893236033671318809717932977928211784142837538297717336527454096627522858315585986050948741657083852737693514928714334362807291472355936305922159856621260013765987294396584976888473529175466939158623266793104711671757895677021667124794531311436954928812809860472130235830171484230445567686897921368226291782520540158833228210025087165343760462540409983990095849826028755402706833534902266104318571737107907610996911210401409243395365637692218282037355892616338087178268321481715144417217602730903610663924944635865580055050962718070926351319873646117370250450156845000065728567104765866600749768084733484018290223289162741110070529439865312498303797923858105826575440909081357464713128302548416855876517289084974299598563758535761478873922785059831745562833874575913345228819185451454730540928580421615826586878084955175374445354631921028763734584583023069239062878142454963256330867262364099036462322743246566499315508613128513579970203535870737335734113289908617393780274768197921400279765516427335112835811556541402339007462070671843997267577773530207384198331485198303491490461715166893774270183669559030116078710433606250061884462222243800961567223927884887593807160433915844760656286874805277375956752323465215239866146969302218968338472339116986041751559240866891141218659516101221779308548748902318363818533484882499260310345318102587328867098826911236185206955003139876720067646756104587941738481339189833998748612425413508943573533626928270192706566859598917136333074760627280087832952311133426353446692645481327356255933331510760501572449057915445620552008981423093315070591728124420141055391676586510453450472680499123021917170388806031245224938201027564233188952129122544331426440429689371875210437527277146932101208137318110846865062291967175908010125314665764120626984463557325873570588685506726162257285545893943376977058014415868533315340548296903739580363812802758522298558858608597365394528441297880798151928064014914912901355133133735325474115184521660551607773204401640401030761891435232075027767468006002911963440331443291418242712614786279625274181944840470273880696060466589744535121836720339715148058093088525561947102857742950164226040528731881603704446926233416998654404025480042533304504739292921752083288497239105377786329852126212633604281299568936508978319197358298066939688312584616805752407529217998588552098428825590177237979844929133746859990178437714951329951500130626176308514807436317051232215520597977356070985213503423224347728408864107734603782544025403151070771418199477666540274475799903174230640612411118806175924214813596070728047721429846107260617188606628739670248643325196948144469275938761713420852742864642773262744027587299815603499003943106800371036291630333699905364853801761059411857339577192203339244654245211227771966065627461858561862686821013781798121118723016301205302462862370195413420583981569572136063990857398675433775044741087330957657449869714006734660728348859643263863142331253066987767297683531510653561954721566014154143170927456096356977698100256461351340984964130863275531383693590312448397134936896515474346781247086342921570010298820794210771800508944151258501863598677925840436458217460411287838607779621494439106563585445464832550073018198817383058071460272395953488572427831158907788067649248362890286867185270322106468540351765546894226210650798159581003861065475268683702488214327330124094507210095549997646876427056749456930036252736933429513367197390513049734793783142239872365381098568924983846425082035396724463403063542893476521289756819555036754909484022193075642097079883603629184364615581392683028865649466161499937467705685607978353173691763822067635896542921083336957604128762646590221458450503561335460870184584930403506032447358856442829389577844853903046685118793529591338627730868823715207071009813069680155927271133702316690780162241837628618324870142371650437787489290615853479877041393607984064063942105348016819780378696732879071978263810797177961296999321390524207162773969069758614864598226313995534729619721462744241455122349121465519126632079134855095344674893512792656113369349181059139874247980374594950197765639689071514113468430956586338151509731089546052324764034993547938896382831721505034863740005473743044994078419340386464311563575538553091378699551313750442898415852768982227189168294140417640698390321296603005092768578097933791396100516740361161491921877612799539863819433167197524895309200220401898254598791874048718701439461212433501537060080697445013663903287851342508968834440923851622389220950430013555256998698620204632476056296712665515350838946336459929074298454743482538429207513616448778950899791449851563984983682661899876236387679171148837083624488311012583684145119542382355639396956127408924216083731828010239772021913972009555043828763277273682865393287118766363349384106955456883626129222328119234715973182168580086675217048776128760784380509783653533345661828128321425907826733354774096055521678583377852854434984075069366557096250152328155555187856908315365675137657111231408773629930396142660870629992409029783260366097315131276362446227300300146339481615648641982844121801986340946412130195615020127233757950977640465509528983871880426175079249970643153210526551697565936570939896199753428787258458032862314934866477203053074186977110725551039977800892459940078062135427227145940672859491589384485626982982672255529507374905982934444598240508450429089103690609139300330147597368810619065127695578389688068876638482343928378185076298674832020684668611233857761111545016229991750823345146854580472107288614737097865379270349380667541139970463444863385589277297978520266754814529249940182375870608183564121906936342204492263810003833342532685273200723361765928864224686236265447877116695396744295573242660947968160329686684174313650750380886303772786378632152639433586172191055630104077460242376769542454831484742657419435721378808454110695319593523419579460459839274801007658363636126968003317159800768926890061928873182753135467930205199437635075208418608537541492120990198832227125890145168711185332430299802453208267561827132119077801941146805508567402347346555920301564984736176871920213799118325503361044850854620483208073612005865800389084263936795366660002667631834797377718634098341746857628306307126008089014326357086330816990008471322787459356483544801932014619733754332997732564227036992577537748763881769545495229337073919855448785077225334065849935789172223202364649175416325457922502925867233860382697996095743471377285930403827790393109543382292014857182058931801915646223754084408903289530366473148059390119970492697220822434404466628547398687800054019390396720304254943818411768320214121043305453614667881701486971388154383730905998411661595187355847774510860858715371499946962329969303510219466458102779167563966191840134702312159777619880611483909215964146669590284406662113595001372807403649020761971084710814300344877693079654950574096730044128176125832329874072351588013861081557611836505910126353860677910828813628978239936590126991177843334421846637815033883438164070302072397806738109194759649530247091250183127406387411828343501892255963690435353280161774453575080555620699327547902133290677487245070472934056494273796562874575070174030995966447456643768455110297739317239355608645539017212263075849453619895587930721867447294767021551561341354503940172869758329641397210321655791674922364145797081097367924745889533691058514134430554945320394354137368077601455590193959982855040276515193634555449309910236364885534704690937284243880734073720204982563417561860780007108740421493718200800288381010306904678435784845900976706489735372762147042986582686475262820161099614272307018795321374393223666164120502620659276034616458552324530131103066200523932805926812933631328707081767527883906850121754500902557253829262517867699466139990828729147335597838892343289329228810815135180373473006793954918726518779620630677677146205135419714371014261358461561073032385403360873060082200238453825548037429365613693689978953624116612137492315869767132699930375984455871738187996479414149281857117789450452273061931006112423593116976166983523244455377467536383795744872841692605333739985337511640044557870810319584660348101350381123671527776516599402162189166369755526721391235389627879599000203888420668742330886656487298847527752517104828130837125111676144970503076757801897067901012267768283138909305295713304726605927963940857515978584017318864288045985652618436122231230936701935617210916819278487201254999411035722396215592196618187936994201772943187227689606642196951645115701787786453516101295763698609343034777523888482498101948079988745789367000190933791367918078572444796865630469503979401590279201174313953759661453023973685755473290704356977167513359819987977787744572103399979142028988553128913713120748852615406790069221602075242015882061357798813382377856213754927055224864141009260634678510993329268503971524066444643169455307831588585604257109436811984352669665348333212232779478795574611246614354347196141642545191761553013279399936600917461061120527666037687807196030084764752857684639583477596226938325472563441879587072403875400841522087579839608708574241997722755289886927170975983465311961673001865067271335741575575047640884332175765515624921866362221345098329868248188778646003798197133869526719735200469022698515626455523749288506102722299045627178336567035777573332328543452393862211216333603541136639121455243479038464040521185727005010610089970011161732177414824052754859624300930002367703148238977501982848404072701498339672610697168219652711407989589032590767227269861573372174341525488381147794142505957595829912397901832316072412930727243082295157203969348039602933237468292772976606312925454477910596769073594883225342683415353043468784000421803744197672049482045174758828577233870201988634561210738985602654450364870529190833697725979380310102904636778720262771857780733293567893941833271896031208295075154938828436252966556216043677093071534378382526501591684020067691672733146094136318690551157717474006022308131559547632955362604530407306904069993270172568204942894510767621315340940842963373914425060429174820142407824793409051434367930085840853736478670960145851623415283373578404311683313872454046907154243612457366750534472538048837240804386335709637242132998531998211933503024647414714845577534058571837749095553204999499466811602504064793675935812084366723271621958579498680904051142249490158551127968366020697227643443465896473917036250193871647521031209775285931364689212704016730570950353142419424798162630277810805600697948279260994611260092377551800717720376855434819991021912272720245005095352260592277005914628558931446468103121900054105283279845337387047841813024417191891944311150677490730939244664764282431981268998908810944511689176248275849882275256250282779104123215339138233085674219892433279825547060934957091172425501695684097697799715138081920738252204480560043706829949934668970160139889918601642791988485687395682012847173906612224599025407859476234215930131038606323004330178407297159621348187466838585355895285722831283231627508077285548517362465399853882499499613307546679158185056887342296820875890644449249939475827022090260638175209153373074790108200870213682205546805481404059116843118974693141699825457158851738178139456262066354213243926798962969473145937624918420587479978098013689479023005063467910292937890091244537533950083567416813364841352865410044034434743277041113448930092791612986240229082386051726492993214484688919786279619133249836508625257428659751118812936062497850350973537965528209523861442701131275165772233498607380606934345969867373231819230263869662782078636780890938107125414251994023208260514006424700938881601291896483673941507938842934930155410455209907069167325910158658100170139014039467583222947582399970859167161297846522127003464319797374312406417139513326476530870466852885172631854974905243961431741533288016880978953764382661987855558669056691537199114287730442234213044022346555408949215800176826577693415225715493429629312391144794131341421295185598700260120673083349598135428606172903781028413539916790226997600994328641241079048687504619737984352078157450315604876466897524094399332131292854158876995165500300997104081431918681476954059669088667915800419791079626852959794362185932384503455572414851869670408960792879237231030278028490209478941006752882518553230010950289297459924652964897245421212766935859308052558999291944931964701917581318524927068933508641260366402720441546085731383292930999983770510307375764143669116628205278228334268739256772412105802839072708048025926586314315145481504171337128364628090049696790889429310048383511717953839603904127457434706593740290526455504069427386328295038536901747575924331633077609027696776329234672268778611417141215338351589719965874445020005483630038195360625458530202634013310456806496772336217959535421530934504635226873381357263876589533184785897878847488450495912201066319196726616909143854614512790021868380686531633238381269796666273753688996373359164657370849339109132869742752933139703698527566639183374113041944670273895583440211142231198024934582396085873921298493672235713967507029581090528922816161082333423919323674166510749243905689697635622185095070735860080066872515737744263482178759728640788334650741929509598272148219717028799810990293734373620995268845779019435618743268796157696528072689033785103981106029631301057651815222788716789230184362103112772418300826023999120827991520110689999771994543364755779986810991547478623798855710782819715914835276318778791323083116722955584842754740756748510785017086105747659767912365789858914024180749115423783760007947618002854534646520867564088646541999177513900367597359515610311053732923068064309392915452834015813282528386746419552485210020152759920551155188415985208530329315503453049335651640687319354033658541704681286171905123570778000623914063174960385459722513818874949965356667433861773742825942141398060169651583027932728078169729680691841445599641674327698576482086151983839511982330641081360120434370631870319251364771739714912838509772073433950381107964580110387275204886819148244173680963105314740029622533280118329597289801198391255788188977256004626726951931828987853651995357100760392869996239678752255669330978508302392070825594134995557609069052283208025395352683367563489036343324323026984061501999928266038035894545410870861759417509160297836966052126008873964168601624071889691146274861902240932257969185230248874464978960708218288583900857030663302847262334200439981354554063260999228516149460560895970311477870674092576361695642294737030261770777157972827227482321139730166399310877284886945117363412032871339474571020366863543923979334046452771281591992998039331477752373386291410718065032522493085328260522216969330830140143350354134712574651173694855004955468722013737462403934989535329392799806201869255111639063506221291073132815234374262332673422322844438121072390729417470710458889900893196710615983930576665583299291516455068883426930664490549376700585625256495569698374366922444928731374088129971777889763936756557234732120709317760061337584991359874172957138984785708678581863298895631879638308221876852552044054241280435902345906991653432366511924858826772680322261439874234753439189785956664529347607746088127402995308336635395233594847218643299121823520884933959741604132184271446271488229522798954631548940575753074983278667524616007097209697222626442265978252166487584316967606400151006898888973021605006605227485375785625537863398469139854564328186147840584516893394817729083923089053620221133780679614198505972398169962890866107887392220595498570733844556851504593036636100373383003932179209070082070462583264504196913218975621093427933519595368760013644260300855636329769671557315211566781485842500943348001651047769235987100900206948460380265946599111391503626259307786282073764696923945772547428074199358499395444657984369785815179862068600220896025031557299320440097271228534582504893818317391735377982476949022646088351387886150264008214128582268355480418630103919781890983626700098630703877796099492573919026405451356796222838717428639438415521669856476448125922010125663469836232642165634934469925332863034557522369012223558725947305046218941833309311693841157310900946720869069993537579930427152176106434437936263058913145657386654270821753904145524359736676452338145370005014794940748783236575028432445632852659974256444629391500969069247380394221928236658518038731367959196946933382887633767892820993801278775789988369863502262490153232364184413547100587868541986587358386674021954023860095168730319169641528859473583260688016034836752400596249449217365502999580647155755963232284400908226945405121265087197503700260102093136396041354069606223923285200366523489218736824033193804499577652558878557869209803053844970719865172501316486808064927307339586062153679948560035424628001301385892976599474909162314441147801943919278768018781738719756952881031982660565651139491072420738902328289250385983465872748813298774922819785934759450469354783213977997262681237344906676949086859187506259583753984488142338312738922470230463198727257841180014521596226218921499730832641599646948511728009507282021280935571602626473964190586046080350419052361058457234328292537523826296978891355924679966513174087821793318402100314056062662675016020562780367254678321704004044656865657308260865173049528538896345072227011557348342494817173831070499531172222888173642951068685810169720079556363431267775010753395561226018631174406470927923263012229195840277643796457558077949360917825543116769707584200086697741030373661935166258908959697212094108405676758724072471630816772983759986041143105747351809744396100227938109522925972362313424633035062556574507863200742833365236671383940792838650210677433240846732028328771562967873873940113522048895586488354074720417012671367461388868339879156854727508791160878978236938434700951857925900959623656581897793895338551516232745723032008894021092630634880983209906144038877492850823045210576899971824285595026663168389703414056266478726404804356651157589284152171861691484039525317822194716806323475991722809827589997538032384076035105688438487845270374193081462190995317625529579041286735863074747053651323771197208391522429254600229671077134252569705043501609016220783657892297018940023595806472323171520525193668902380809506170287228035206564217255591739956210071402178836619394552706901322787156784126199091105811437446724789776068988674755956920369037104226469618247014771012057219830503183331730796869900890082304770702624291369708206605823729497794323263539681785437004125990380570662497315910553479341077596302205335686683193036780474338084457463493571043204531955027302278012303654549790690264210939168212292830266037095532016612235874656657536714137951213986291206695352135976669780531350177247846436052002903911394790723056070152846788557940084360753637709677102610306372645944054882624562781872928662899550142570098285150354448078584386634615417569449114952447102060976310589359492342154695118819973414570495771090641524533309419999919880155881139749316561090840704396461310158462585227482158323667441820436866082925933523237732151157722000389259807752052768310276035415286475965911475705146279792136838654863686587060820388767964063781058089622131459685065544461747120783810281141653681520966833172469309720658505864851486211912319483405342170918017420873210829859310580769471421428295499013345693782957542949940832899362051495630404021188296585820359846280044888040164198117412231896543840994418167814337104466288508152579476358752573490587117312131402644891872827163546051292238127898473932760749645758437257404422793765553662350108386580756273963176857207737805616448367778666769420482558964529535312976627218159371338362457522273709390122027139775494450113070563572764432820522476026329324086465832717248612030374973558494795866979150573933593535360454417728316744614666276674288022993757055784670869803199903399459775848958188261806306895644659289436414239452116001014381919448515613548928112950637161624152469079762923381007698490968556604094293844436380621523616025477868574025353308118088964009705520650289700427652694608059732509818820196233131038924441982617116565780241494654878418880459735051634472367264814054987506138750072312129035566115733485410621183454730240194348014333360119664696338432695478006721846641925298731200830364574120596471418135650058670804739341910433144216776198756514701126974099139312327519027169858834677391236435774148019375933354043961584472316593238550057256460794456558829117455186140451646037877000178428602564902435713730011532334798994582619144176469751850365465003724264614607145201524814458146361128306272420668446111000327616524033254607521261485866797522553944267750758128283205443818101738884963980545700718385037393502614004958726691380758431877886081129533742196165784189488289345918867179285835082987080845746838334408133731819132902266682683827382221438081314798506121747896088090447698688903513910335108443219214131738876499495661233142629844010162536796952226614379321038920464985250579618955832643472168138448794886777541207484960545703483312350332429693680594164878424225302600536522827651359507693537624001042117409971688432308333571120985692122717633591082341867635887947217532010362198444057177847401797256158661224223406814303989259069216897936892708474277689730303923363885978521984965051933655566705572613153589550341219599297375001497550193562104878843582655281600106906197383532689358970017296071204547130726632339124617969137519304269335964420535809114879241958817544349568027241285553432639516326082779490271852569344064261267224594882374456338414129638391289974965482207921995763264500516881646677254668134622214519184940373183234423606439004448021650145720907172319277779388782056312215703585438110874284594070781846741998347245441051590961079546937401991124812187414950610153918834893308919112187291350816153344403543371479297142351789519558880940466474473412624695359400079738372005303552824922809975402662116148977059913228637048886057114086539676455427797083468554488992788999479810568437140542535575528371344360613031878314455878613773530480575832674264714996072699126302288854014619523539483463053898770921689849226915496584573935374878376490015038337804561769502138289261389885324834567287650925544836917214712419140882623364309057829217760722088631858636324759062307332980528871003459554650259726519161569772858895379686396965523836457248933906167338226389079342179589523122619745773891133886249045346963839191641489675731413444292655085964242036838519899205383142186499704286920509677035648866780326454519772014296737445352049172711131094805792002916514399348414395804737610204916551641361516519275737659695697080955320097745595061726707899383128134152739870162949787745008677802158542567756632665799460192252724167643052062172904135087395487715041331574331841379245179381279569239986168439116734111828455401645007722788260878944608602571497247336360511419538545293071377535384933612286603605259321922212769932226895772975794347763884892644657818725375800800629773928190932754626941546233775781573887731384851174531080017012217121922585011253635398705855259059074795149834378199304469953748998246319094908868684261820341652488498280621750189923315280867611144102726919637233045407533746534179227987137301864937085042904669126987728120472587985645846873770331468602777480142319773644875006787398066977176555243965345484176811908935558693616840779776894917470091786994643906232577249128364392241752264299058305832048236452690203685558062774515946004970772660753495311979016073749935178935397386407042168271239983134664372260681885300007285913261764304713245741345088855627304922894719674526779443270715566814139843828684067666289785565805751216010061252393133304112035912093508685752469804186184346084710423249580381028274672164389610558401376923860150670522620590442939218037949285779476075600731779102063617839766378667073824286766526350427027977725528258140042342087267273871309725061607578922739534306331151254572874288518951008992053901959356800122992517027267950639528878065551956735043943213976051769824750460625098101645205965321701434400003497733640404314201761804186995428937597528044976571720951082861923276028802326914648094913662900455525364304007865045275891654939330077519239508417857698708997994474812240272368739343781036101989454660529616679445115021733423412275676646746472513584933534385008839259105220735152302062407838325649324025070211635919330305309187253002811147368011138068626343064764174766872566676727453766718071249156618045294880953966194305626146630568529517413352599894411781854765795774403335313444165190816249624846006045645597230888224362717409967782580824909900118594021468415244154088933997589706178041972267727382192646992589653554991652315289183625489791916277441411982514040724998071198154821796935616055176328353271582434682630674673905071156553515307590611097068189417011276618681572629692465085952767694633369665371167634719527290589409239251821077683556975156840532324881330979762446789711611559091531147840118682213326971909995336196349545333299277786041299986687827361470291636505946473049745452032514135079439357594614714304442707161280205825165157697313652666204619799477947658201445620150895305653957837684362277739965390371625047576342704663635481540256950001427368585806877768970746279991687345992635152868549397966116204797072745400908814397946457088829013988734719687155330425762633031180664602587996325408071542130354492202935078174018388192799822946761112691816066477288725464446720659130638507964932860357912975718918253638403906711361133917344377162417510729193943228769931548486290160799355631651676340128834543737284248601805788240396816655438745728262492003544103576511369578827210656594335237373301947116646932536949467724812425301389349147615045462938965204817116768111475776461048392074991055900016716285332487042988718473731137835720304146268158694009116212649625960956443681753958957986798805337727563957710063848144366938890402772882792560150029592298878787897158073233475815844089741028910796779601702874035201330416860266239785211954202848220097507591320590465431865954675322212282493446791925992060321146726963429540379255082616939542531531671625812150476389413637200669283041332015207342299596334256422509073213166559516143920468720950039708114478410292587736131699999291980640853428924614818204300538582251377318050531422075753593035210333683755350600274500287423548707083554276353389425864094502570006937388353003131997730965631687657785228217620031436336743517442779180462357655241486473804598774831517351584943846779365758131480358325083431197999649937153608223468870072288669295831206365706186442181760375681462433089250218383029098405564651721578796062640767408366256191956039364507884857939811559891444088631544456896018531786585184132046128761710139610118099260266239633015794945092981864929216116145562906570723472904532301214608347512911924737319582523201569181765872071376256360937335706665004325945366951467790494284281766053840817165903684894774371032353791209709558603949289415125772840967798801175760521402689915594076842480437010742283890202150791682275573698974853948980352685529022748601454193541941887576221037546974684067141727313160769627447630774178345382498585360478110098608223615823861658087619994361890774742120904690397062495687210121551472827196592742603430643968571276061556042897027680659320253155410337570339731064692014759216027639146352364010293851222538254952930950687463300473009801949250051103114070547085009809385727656762301544899922660905711049249673765066292584248426532246517391415483851902573936777098903500530698774781078847455039483632869508795083795074683421826759436310502684725627992143158795973454686579455245890323971129161680159834927669386926655974134065017616786381486199606331268758860923031240895776576192467277660360435974632900760419935737974722890880411449355946172600949436586290132473780610570741615600559384618919082208647693109809508449866092144875044503322347458418471988988175350829128533124351929553989601916403705951637924307893312976617800793643899805343750650532403445592421312800035335518513078887953579194959529090502668398975791659525132157120813017765524292269005290254157868437886106119866003707317233989970173323581129635602320782198662831492359323370210972742903481964885658396617713853764107380284580235188347640123428107650058532809708828767041512527688522432090996345747279545069274731039503693406534081235000166387476455150606776264205236838832856018727808509420274830115828129679641358570439467607101522789954837576055486147041132421049608577213869134907948937361114361820274543614951416404983351090877191064129665806837992433639490416282805803872790799907406901059379838387114500691135441455946072122895939822868406359062570025905350660477745154181984721870856125878890120363403192576016169030079939156876588285451350153129270515075548938807643031242456870839310973243954075283490998500996565392321660801897995794459962295488895838401518572444735345738517215972606979211232570801413510766139849067455304933115995402290249533615986538633879307137629508322200362198380173795409098216081331609581116573701903280225177560328745209091780119748834154421377582517647119442929205511063672899056115858300368138180311127710083389190276873314890114100723669553317656479556699192852484393468849446421944238173023801137232306803556775109458772050594171827570425250176039626122314878788569106343670878629116673093167957920120903254178909881094775932479832049491834661109703398366254569377133779548852994098640759656712868723340330267223202229075555220290885680177202010606127251297134165461516184743455685067007490095163687571831450583642456139827891203848353551304971123149995864428044415657495512407352784513208267047717531386669000511857150440194892846128702529712584932299308925852843681989860517289015933859939510573267277312771862039010399083372020247167374433452094613435936676219958554497717039030274703249438779802399366182953558034914903120566788418261185065800751718636812951098273116066489414720983764736657764958578912881534327733247159453729666076653753682612204388960606876315392151741836052880623190074197202064062997311846803161268999376884153937068125908224924191642877216827548092231201574158021149022403845076829911362548626667279524449822777952814491383703068416968009693298245896827395805632320488998214940355133022570010952771293120698227546772463805073286551488176170945744831835295555387258876777874994779812455537377742801238478810408999037150173141097861332110248167085287008283805615043583351416186366283158503956647641119486407351486165687470928649562792779834595414462296605700023902297762951278934949872289631884961510001838497025650867213966965232003278962753625207044227997045201875269012424449853228908343880542043089788358218942536213736559141187881227505628184936917823431223164924464876933866095608942073275643089689490870157604865167813420479220345313755073372489553258166261937823531158391613398579445889728765480449954962146237952818650472393961639360402581849605276117221546874033968168590436158580628950564188292358877263292165526278727870445080374375182108076330927392857283594875949182634911736031959521050360394942358040930720587480661252296534179641602483507196738266315889835631829302296584176177665166377218225088740549427250722836205588337475635865728263186479508596673737749756024937770935593043794505187145242420758661421263106921763744567158172375045981410741238916174062236256040195186467218110338549864696847840320990239591422919522896681287415459768323625670014142735110106892597817322940735650200914722351362062085065102155535818200851562590536497895343885877824265486512271206930573137002842781456133788307940739318462418954915232854197462616156015073534604457577767583745200081280993465682836644946503590961082095167263396610783757161333958647104557150330546023534304971211983084631981907002364140823025294129849104945911189122137502199928188913199341293741695744920783027593127416369494529856124696797449248110944264366121994852189981814602190815747090705792731339583874812669048066428101573484401016728474295064357519444714416515268610024387979934005438412260466129621705739716586343724107390724611014770363519492079065677069538609988183658349590746063163493890510182870737270191259118757601438013934599343093335745677549508831959802686729075754202191871897174622077934464395817213112340113782031397074220438717818391333689057057612204333975058671700939880985590168967288825720827828886749983231278758366953671803883938280641935542480087747362815968476014866404403905218738622693440217656763562700836882497593889348099939730710314097432943323791007759705048976215383031511476177570065962434255978428623578405746497712337403841768513526693266862686292727117170016062993843640673078876022522839186160410239034417099766915991342457671820565587836983303600241810340976121114261108061204762263907530624210447805828410156577254935051870306662958840407281571162516293515790024019829002980041727669735540644962103516759912938904970978433890250378584907082716247701632661787017129889220793358280950394378612031504269578791668740073469778864222165745541617283836581208889484957058919925521798301807226758687124794012222520509663383711438368232189738842876680139530661726032700097530233713149908295505330575405505791345420414535513352411255356190508430218961926915369466535625204020430016509730042177232776192315107478596691676284931447906307471735655932465421895871931501861732091505031531019473289340647149416467915607131594287754459951938344101465997680435182912192004606574310358679223018294558885621925479886320919850042971560734171860082660329641400747018160274960324851779639991953010930390152591312746449897879502577193832072052730715453137386766776617464758764627108864591972538709223177506836025615756282592713819745331011969196079831924872925919419098183344461471086627040484033698330750035101549751474427228694341859114643202778967316206570926782456237465188180288614551239333698634772704625836089534778681527351382043063037312231817309536554697808366854386216795906685240874555386718417093970000629770727316633450021237765110484429229668647528093968164279099015536979377047178060855985880613821460208197605119754943256971211872545702353838171829812932121841327263602990390072126418780538232764902590024528232782282572729528964160995749459443241684491032171707756854814849231879461658225811690460178091080597963215420436793552157300796636770960946460939681619435074656787333770397104390208260082119507836443544265731334751563615035987109333195922998718572743974471295681226952944765318512147585902679067014723793884105642878656010900469716805865922633682264044888798878436846634183311115645823806513025974913210927623029977715675499072384323090752907804019889070532225354584041502030458310780188217888847146780135474518439894766270948040659430498615658502182561795179083060904108119354684556591002616585127255992457521902893358987306162657355108530475114491550515248993447910171468690088848447407788096890845118714204996148927338847306020455790998283952938496616214950405135686489489120587004694444880013957737191103838244175122374213942233911597985099354803818127668742050003766057913407666707562772519496000728291943860777331068415712518629864641266649134114787057815552503808022481236882968391315203431248413312768114097870003209202962228645589421381860377610900338359989243107380842973829044284059734181395011937185538055130196723418001746129141868739733732296596201735465412050717090242080106722612841282728404997895461824971357324637444457535559221723342188494800852513490122393270729550552077679411283589366331685991219011546564465556941393146786021059686025676259530641895043231768024126026042649441900942715147546994330691905384919423765551064517136810551932683059948163574591650127662374847668711687946580661944037668323142253502585334102353251132950194947736694271519136336853191425044143324895611152592002929479426705894099362592554785357649468251204444429532138909574711781239413896619296405898920709477735366116628097301503028849405254720493814593155570805301860689479180552129208492876717860642130466191364509821963775667186938564516921263577085566766625360975539672877184576957466555336607187054907363308066126492265336134791361248313807072093097676606373615925697564927635026290440231588347267626345146280071782179223713524200155241195919458248671113679294560358543092052581707468350909414461533133134733020125082249700525618626602993938280282874994819772301864241047134656109734740908685492045535549192576770981841046519484308798221972482200943943478150761020492381519184252683153408614478333893353655556084585011703770532391354872495503734574587045579750492667916525606329360131409044206764893425602735075801470336949105739954550053352866678603073280016352373491680224498581287622632028153196923411799862429362005084115699517997500347754169834333255888025542876267124842518984960107643649245283260420966631712432666373335722024086405449079681734982540157894129487092716020716323144257785342749383581162485949578670824010056129244108597844954872778526559951156666596907706997123070947261045116076250917957551457676457250955508360878267461158324193044035343451565675892748098767693803755268141049190817714849641767870599838720427374855242005629588384922278515009133783468792356976504322552398996203314734859741943663764872556538996435148278236186253748990541810081792084657708649789831639465930206398854699967560077772724037784194336114048662313982778521634386881056679323541746046407501803461532455083613595665706267449855809256020772205046575900693214497014866368990560992481550597280480694867324799494725582276559302977404784402960773097242900183167558072578036709304347830201724814657303735621665889752288810234409897426139498255555289034627122194371160741998504415718507123376738651104378816792633454372522216273707202960209644931931400124716668201945072200948908060909563656459703149327402729055714783956180771909748990916211521687128341998615857611303671280691920643276305272343741138437182003958289063066852820602697524958070167184408107220028932313756038004787347229694951558091828224100069234514506053591927976180946542278989439596796735370738722011189731155403350833129313434523197645176911569033202551869537888333506925957500918429731927359439732889515467836071610727529651311277117987141680533249088651580033370351143186197486633119959150769237922238287245093153491086990257242984454081454667379209622455031948675360389828615622497841356701908722598731586809283417618216744022769395505046420090081757290565082391059221859600182172480943612162441971522415468170307090692768115503683586430784275377617377070878902596583033080196678951406657737353826175574787631034112967964058554907213120997198091013115791120085235524251736138348548186639009774871607456636010911361178846668888227617430113914748851905929868050260695321239644103391448770238063365911260674355541949885868841677488154973179708820901656713012370786498200827013975929101776674034153391577954588945386782878050798716961156571680075719602453451103126717054012888584688273196884641243184292185966019338209503704042653307373241861501978585295995950952818235850928918615409289654708387771268724728842735062153604873680158246515330544948525827610298011111488259946936832316105504321360065727000749063254879493259234010106776660885967167466782902644544043329673982365006432663800885732664807901257776648810647760813166502444762674984632625003287447208503840658741717248041629494095620216969316084183401161705837807164769331732607246563965196867233388996785229034627901327730459753122504368081585639387816573713451522330489833220612128960588915176952044484989425528884326959724570269979973409920248381512081824568296168081370231412365922045946202646215732878719065115836311683445050869863420147965401486138306685853612415776763065007510993378568947758685893630679399320188036502292348701912505806081811469681792336671205635982630742522068155432712856570556376984404521336115438550726513287914643083204937750403723625517832343578372349362810572051578485563002296172503376635843571355371010514640778436728963820791957589312517618740410506359871027589616406247845763650951119180227818598459643305659169662625414399107803060868934863392252364752086755137789195762469465764372020097551517687856793774637439509067134087783257809319403458990548405267622315124167528456892846740587865808987148466803313997221047271754589792622234191818394511276353628274172448995818140157364773980445350647650551941547158221172442944683143108630770152876942368264802004270265013120015580621283588261656871340734942533679958890303287677592257423461062166446624150881781706913791160267131690342258221894219247895354632797578332094311679708924605144138876694537726432985115459854628261303812098104730753563760353367504417654290583316604344194732290714250408013174980297449486156752395456142186065223532332654457727816927901857775864344056200534933986206303332518658489924133692269746158713198802361010102437529812543495601032697393594953479643368807074891230508275052322189756123822610040500770708971134753819791287760090032341564983125452509837947955160610699000841955379769006929320327551172873230251953532003374259474364786292958393826724657470780184507810993256452306484049226086729819979685946371969884509106870646045406194341218737618102016223330480577578147698027679630017295530030552653803358926783584894676262510173670795841139040326670949844181098523859407547557215524756022066137562938214266863298640580889611600764879760449232753039668701217694438199812837151501168345588011052034251622282863479576929068374394749956696019198513228945748199197466625314159942669493510004503940765600444456693503651873901095593093276635670293585222759092334405230132794378100530893543599531546179734718879986239415252801600977487658509524741480586562160602589008028043326528867698167300866051218467946236719019711190059564845534094980475269583205468518950905205268237679487487530184068058485599756827290004053945080116833544484441567548698821621050507542857004150397586428700095666406991704826204702266016699615973310045744377001777038369176899891432451981612280574950487377022741728833510160178034309967383545463474094342010866699377565745787142481938760578665435997361046852211692330857644288803173323846295155851870015274541667185622702844903073489675229896945566430040487475150006293413573838427806676121497791908576197758840865994374765053318046801943592380407732356242225674114101404493988852674107853078641291937825517585017905238847460952338200183685879456959870202053808258195161136974854293415024479574368068952640403096637802143887731050996382017660829903614428739723004119038119096333290022863153767359029874751481895929524425047559616811444113497365352978034435286934406141397067729808769990222860186884458525267347817702387463178274903209195695934325991984721217222557003398497927451314389360267096183670454325649337656744376928044379797901906001874971861059041584912144840847643921449034449981260896966922440918443343781081327469999462491845422309237193733039161138498478854121923079301148431358328574559338016513682808800690075763520965390827040248790138135135247703702546646760169076232480818257816689387472136386351230334834051769727144036025846769441545352732472509260648676289680352527608212016691181164024244179425492218099360097955944897815331541079387768905477014272866505104729797778755123475962182567833143389698539740889126769247110575979014756876044918064810213530405947386073071566605148436794918277539581261721416843293714816835384183277631382550097238170265359645884775429467570854935697710307469345059555164816964290607976133173699847043596795738231002450189389980577100922781677527709700409373506315911994400815252445364054511647417860017615437116759556818258857230999009805005052970332160304277756889175224226108466447540965305597162977953246390194197989505520696827462906638098740933899533731372946515626004389335209681374335098582183626337887465476783811853713653394547652406473006729119488470359534466538184560897060639284357151970854840930780458111722150894457261527830130087991697100002628200082588984775820530083013757623001635234375190308766226797366314379444552282762026785096619384749734592737866629668228202422624350888083284855657415434775187237556000101390541083501966127419670158940112783846620386171152728652305127736708117917701650089179591103233710396948525208092060396155386829895713433678638744172602400429924130938288567470743322732199382115276255397595578289148283841862106230256688628715886536204757348484480286877015896792488636300983675663701745531886111662043396478611360079145147336424761254223849396350566559866267503486186181908816397739159480978804095695638845818877836690776816817729853927075882477981910311944519097138096898955175258997791030515591685333014130557216189621983887998794579145612580700466280070670765247706057464177674229678285935875139516948602963414492437452567599315146126739616965477831801635474096310279668465922662798478030324660412009591464470100326736780498739558135811427057658079104435008989740672601008445200932304876093993312542864044997270175548578394189873937424244784640790835157789339003383507136468619849000178108529398253760981829120643577697427199208879965342696961954685091556117629118592858502361209061276478200562155451883649458705644345588645850683039107305439635846558377998362743387626166131187518212041317599316171071868719043274678848814073293909854461978980558005379514720765081979521308280560765118188333712213715821816422077718751342722920585435071935508241568831984428194152078221311506811406983122773373448708022752733164438850158813814453860391620662663353278827142399691450448678456511747334291287253973952088985789970296228414974065367801262317457700620102122662131294731836576918943065292340060729951320748795225163003472266135533814372638083182021881669775632319232629137331126944947610300815287582520018292995568405400856807262868637765093792769458984778700348696376206356615398271153019089396272938763739089589993838710478378624325419285914481146848810766934018872385763801270448506319604459274958580159803889974683173295676772067658512711795288861946463508213040553426903833579597368306593865834830321210241271043463305715513565743156854675830328761193753895401821028577834818050117032297774619312017502602440905407617695011164093187256725689177103780340834642607673959205586294499167000889967325951582715395565318108910108244973501812465441601311076980146036158103848531018669625164079801328088196799156377400554052074076734431459622161188000191018979614477482861995349342824850617068643944100153057326724560308940388469079279923626849208772580013040008706855539478539793457821452354506190467902314408499681300742494127388355706985099115871643887827478431496577187194532100087522990802195673149601704755678547897579073545527031966391025265480964286195160386649884530583354311990599455725982937095439476108360506430360133927454724259835021000575294510955971045374489776134308037684095949187339912361968896572601792052743756280275873085634871497961714830286029520385179293294154092015537841471249002141705911166283738631904693891363918683973178253195893756512034244203756878096388194797977079936778520252875303319402039796044141795966515708181039800383238938968872803268875257349346050908768820262193949253047288110956066646370318766108817017963321140451893510096498282023254336861520003735559580022184450091800715029068068582696220279817653289559692569019563526170628121231419861937507982968012449115617108684797196403128927200131581894754166713002595051560467960376948465216404313976463597916565466602240738055864355361861080997772032244533296054971136405308610961841845760936217768986435319523190752211191121106667523406692856594695777332442687646668972825728357921949975197142529468466870941994247364156050166562644431703410590850101602939361221141070587749099802866986295204591953243425036842154121838862378068222675813827354490170450639716969656423414978028791375983696193645501983632895854195867607054374663238110460364115117888505082397747793914480410422201556845737023989885725117873060538357242017400723461812663623737583604741514659883480859806582714012073891882874890160089605315382063262504020591325925504384533441121473122590675935432556579570736995417217332193216352253621579894542836440341259237437766481170815990240325754771810881759222208844908588968554376171488657920522262877191226011085088303308580328744001650377627813528665559236038589226687983009113498532732897542656212616155385173351930639844078263191159517875358590152560780243384525342422209289781220614975987947133328616771024289340206232740748392231547402823272889000443458367027018814943093238341400676376976364909752688367988038479312076106816868688086920041545709181896831344723070760562500016797447324257611934560500422015155574217117916485719879764777168143463945633671031905731970699814277382330414596217724889320280891159560241996837827107086652547058743702886919913665144746534713555372652508419025551537893600672197163429257205488747597874517169513865618234171007331484746025974491657824179906063005652092737643780193839539433471117070177335053879459436193483128044413826438875814469313587973665073270192736122982817435329975265080812074606923876510828377955717000362147791461483547836642704078287776563125394301864420449572949968924825513764607611573927616226116901259609435957640042868596005083970404409783526484863394461797082992660440459302961314708620868288851357057689656523093320282423758149370114019353569004312515207122453480502921502181560254162408511054988686490232043642225553886561126736701282676963342622354655273691893385115664718091975934045965090619746395826733291138988430709590008907342142053198417917767929284901197804670583054121190677056126952528647738024658585316694689687903137274295101293287898935747209334814745282273663461104099982817685318893645305589854271056170447722419967233745032058334726804098042173719528239213888543241040983493414611442284030769098821400011623116808589565977252958724645505926135530449590891560336423095256703378576122111417436279519835957144366892798675007385950311119619001951206805322159909106583501187563348139796940862782125311348433738083625261298616551489666934986882283732017972907698697734020431939359107738365950395648973999444212980934076444737865995452777726634744285781043732319910457669070900858327637139625573265941231455444899132037735772109295853387303866057822208677383864926713742182746867963208604636164473312670918868155374281240417657817465782605062492053631170121591662601660297596930415218336204746081403532783715080713922860309748461707996506414617458639995165137227337104154179033374007341021976552020737779647597583841770078575136621595080901454061374404028218046585621525151172467034335398508353328336074752268608762311840390155384781348825419084050028923066399438299604613418967238045616690424864457166684990116162344005123685227470323731756595121291969014466988865129922981923518368625641097264930045103963131600529109741133579554397369106080421404841014022024310525922618711664578581428509647943958896712933405300233470711710216974429413723734755175258856379184956274605154717074200205351531883918519597727052456635345198358586229693355181561134707512409809479233351852413368372167122112020017860686546332243667803995886295790949611850681129664876376943333249884046312259121710115554342006102904247714750193035453279842464263462467363424056296765994857292714814181187120642627949043811847659807975899781999471984976076758683052504223078287103852700950543939951763720112803220726734833904521690772125347595401012464124007147236646286214886966771409115459008972337220771560610768419166408990897081563996768959979345681157829114418733164983830507809459160065526199739931569791722673351210027318961682304141292215761039201786692546776587144593466802604564465747163449229950278812722077676762576540025699014226999652718171452627948136745882935088041894239201783420685185214946053740280257941931824689279864144755991255639991049869601085506369580298773647303599262158355091321752840961487005603598312312540639949656265471307964955862685339379609777933067637218698401463701965391758301907174181172048223605314950843374082242504710383900871318913474156961010535999932489921295354528741402823866657536375181478017581003323813821387936960683678620322781174047844539407004203620334855928494617095666562827788685135675442089540378002260088093256571527598301997020704965989066417217416676746807229912784761415740887357462015199765694469965714805002578787497007124237213641984877643743801190225670824658333071818337270777505126998017337496247694057083286770830915521928582184948128289385556175954331114293759320060075063442834325631326632642595677530906118677190976433051526898316348133206184611491187144077111074469766952612588635814057626412326636909673896850909274239495302382650464369366516779108012344018731043373829158263548238391392527632971579811919744725523706188153587458995921524329760365787994931140513639906494453113727095550076219145405872742982149065538218291030307865384702667382529308110271394970323365913624510969125689254363664350082986487862471512731646423543424224834066775993105540586368636043169588039290234107391337894797359701006282812502580840226086664679590785313869567863373226069115953635382504029645772790562592053492254125397470464290427080894319672105286042479415162659419201949539683088464307514999104189292220476793932929079531544852933880099078297805506885417959718491248905678828550966467261363741321732521478704207553864264282270507078038069013088983858294263833261788174258203707424288619273253383362899327312793290218744982773495446632835948282101986587947052920331045906681331749427292357523842505746715157538459901761669242861845994144012655311628494524196719912092599854215650148354907473331644228058506964591946240793162006942315596802672007019969056687578473107956250028747263942438620090478365946657851154229742724059908486405674002643259494077474539591446245203760150092289748818744129927806331216439042601216461528976125981868765844766537070930808754593264840966194650816209835786410671595412752683007877721411323465240149998569299512494073362982681085151044353353284389857420388595323232973152566966601389351356650898492042590768947466566030512381364655440653031381229641119830528066130350989104804530569912634553389823731526430301478459513645201051884884809818837733796741528200192966703778486885459321034991093210795439670295069838942380549702394447340369278395275738169171273278605448676772436795755160518954096015680421056360045144387333903423682855717241053437429987893858295479519203859115263370158537774725239141342429229710822453430060943826013848806968118497714617564320020504966664084617447736972283810634872637100431888232917259366361337577216331108013337324708370161673199942971429682121317417979589269674436607091240434019607388223589064509402411085665276010071039996565556497875496440940482634152932048439404521151146750828869402432763584438052120477951500883713520304778896794719994982779437881793580022155453000105522142339855290088831727137212367219881986393509723986923003018065123344804237501692377921604461713238397289400502886176647696142248100845660366249219874929374353483060969674560298036215870767385415982032170721967789978680865263869645647549962374383008632231392849202573536904207638254376160111669356268904605357063095098122689480920937954163839570494405024330249933057441268047502912595673294128765256405640522713774936811424348931488476276247277472640501123553691695913792686294226128901443471887561246002082381106859094362990950946831122084245526393283221765331342531571211583089919345778198590026383988613460077409703916017341501571405033454572777445823466176794198429921342485187645153078048204128133119570821662359127536977475256920198153908369316337895784286787311600597219992164908606346777338768812163693681071953151797243147201056187621972866925582611332987866010519962832395834624692961374914289425273310932135139907646454266039090448724558054558966940309844444877571509382591823011912590697644196588173985728636921619140082914459483125954370556088971127843783977466815596364885479243876250433746321122464334143336372072924411561751419482229455816444168621566399733959683140965737400064365724898431124696835514504150091575484581599859905402217022447303050824822332954744178289663725853880502184444749487712302712734389793936558204084761390188246756692707129912655233437339633392962744522394008216743411323683991712333383210100652945858946452476182766916049998986885332031430841494564652772103925269445995032215081276784238862140487172447246220123356700724779633128973403574869807371979947667847118547579426679696872227226370334751475988369470231110108897485027370738277858002509719124500190937195143007316558209277415958955332267988665376174526252639449731499639102625763929244034016638475695182803476004083449247848405336664613744064075141461822826298053149808152735825749910574526771388585738403615819038430104684087123518100006090026334806538812126082521554722358794886334265089629606873005148907565797037230957875148722587631934075754698233336812230527037853205128590566067879344836027776375243612913892630814789592085935311220555607982893963902358897606229113033830561168405552938907134937408944617661920999271035194204883143627724338970436427968208674042977143254907833482381614278527335195231415309501969768717785877302789092196217255449048427248070818232958625137222484701341711454629956617628193275344488146025648103204932809802409426745395882840487844219601242694622998921062700525636058844787023531728868609281418426019559671254457610516502484259926161412489634562809444506636560108652919178222954695528634752485178485016408886444990123184920322889223126112020759099100229097944982516199683834427897140681470635777226198503007831589000133329406412906544749396778069085289787512395830169352499433394428744407498313223425839371515506514755872986554396622643104730587252864899682489871180710548106997627613705941967981797200289333619003756475042720109955126295762254739650756298263904635597489346882071401518901848675420193495168432512585708867204484918103681218913729740797874235767272750377628645319225739031870363076207790197502936084956084340902208710800575619181297822529916971486559745437940858177730943215930634309638190138541618788466387272963416044744713867082741133014375181666774121228594014519067645422716781658590107379842074783280024641866596011281444040656522932534582210927420693704280107589700001497013297776969177091592505475685710719253747545008256974472772305659273788209424640330718987093111874392843997035413017134759233372435565607664769668832687577467859059171258217212021657076545216363379924014062263218334473041718615134524277319721103689614289131178602335019951339010566123620243132353215903257778611554922998429802763140278726643121067279170950331116244704520568141131880520367927724532101181346122496863155866378832898013552135928124514781076291641566030320249261338184161718113294571362296128549204686734698297188797962090658608216753388810359433709157113580686369559775946245028155968232172271130077085221416406739065909287016247629399756764476734613871188448625575783706296851921354173944406004706713860462677980474482590214823699688174917653617379574251978727987867148873598852734564467520473914900023385133857804446493611095679638705129137245109283876157550652347174838736784699514083196770589421732708544759016521801005225620043266064924977710576609645628660753266136314539760746130036406850570007495328879635708543940662251229274243828406468471192115657580765544436738756382955877107200246870309656098728593859897009754645830870175203951638378211345818451948728621341425954691125942594254992954836473058804806854741086865146784765892454858871844340894597530621262583581252542753579956188956686140439109816617029176455287218437195835760959788233038576541775202067685727381910487099836277107456650443078038569312618524675768592927318025941724622405033035350139678213232535266077210153628621681953148630331597990341892850814580269665679277787357584451964851956903554518428327614042869379017241751247931869968095780327976810278282807969517452224501682578953614879897086191459483947913706800041181204001097380640312179642886992609557871436900710977441662382087990103980294372486982392925039669179191272247756787009795489759164609506552977338098846766221597097395355074836161240363607771077557520463853856442336064558632978013880500524851456221599825511335011164661212884309313940134068414138675055899557861289178018280294374330188000724129910671756551187079457095939203447864228188726614950551127768750218088311778881033591120817954070913069794804556214180456162278259055923095296004979865406601139654385139344839910883509306243208320141263449283878837568742410191462806467194021590273980995131535262578929261715606236942659581833127688561227002350522642133747309583890491625676716909340223510055981360806072565421325270645033655938026173022246407690163248541793362438334314262272125604387143685558189478734224260723414368862422255105570418283964281999087571614211095930055578933106849034007676988312015166088552339843421342441503572679980433562579226191656897128786302323051820875780052442288156654311134112444629446628823005543550032484345717436385669816344453544455850535070324096518667375195182791121829217764755132540460294169060111587610664443717140392056078493730021909183607279297151155628297097432816927350787122982475184571988546364692745333720553710866500038675544383455229005729516784985541738195527835937097831621826597813454229012306779769256661306673957674687011257044274308412238105024363244205845781541006033090298431454658941622997187440565411171062927612532931081888669487199371769788847681810645057218598746403718083754594010471597004791498729409365205636320707426896714826342361500773276082595286690532354157990874283988370828875724207110131446992378725762406754818464767361177740104571443672178785094874855245325149962655451923732110454519257409304183670013292820969575326447004893973973860876052075010502283941292914931778987721423366836165859765429824308834196542089527101522332774490652331001152301386544185349529945397491034168359287582018639764546409134948507645643538446799944297318511661094831596573887331286463090822172961773248174039265791948373450143480399227844366175494562353600757941132646047791043873065325881648162846823788491633694680628968244525538079144665561035283519007648099832058507464177018139050934363982612542834068402156066612455750184835022822618531892221498651664970480156408218483449754173327591456880043885382895349514485235763260862792230828169435505984541205183809593668435062019090062845740818320831579281212577091866538277382778644974695351879956930388594854475588537147944949729205398689449139469518735317681309272876445650174137259450110546153881457554781895342691831649780780446822788169250440047986906402513228421797359918110920173345317383342570308131476661791694009250975905672732762259895136120568873587826343643101406805914378288449635580654182341584880515654965908426894659115597054833392460017837606459550222000332566410564674113775462890945275157155858877252084848162424464081998026864382742664808869837286559636463214623884673509419960426559886114517668801232534962197138028964720453961922188919914408289839080669899158942956047778347793389995465252006160567127555280171668030045362626200947159632124768134214001407042447309192505263115493179008771764707316845531930171203239567686352249788337026277711181933581153156358839065186670197786194927440496829957203092580913330079906103540462811986219911779993881692960842445958474722397235741435037757707061170748436859737405961191363406110724297547869815557450230174385382845588883375589342523843760866404951142070158681417048182285688300907162507678684615262741080480668282467871711925201455936956776026115137668797096366876454335286944658185817195994452203665969786686291341434670959942504065104236448726172851858009356671988395015696453127443739508479015044728720627848851782881740268489771058975788814935277613954560173829167602268934557073478852741009163819427587716029309599375672407134093099906225779857750579298763797680904264765567371040958256741528481464370975371509042953630698926872477417161590614844618622335750698234910304929454108628583846726233611766496532918789669027501500352827843731693067508008756407168422423076815461600891308903760041185511542782458266316311735404762923112814597553196828548666292912451112935375314003568027547712049128168627895626851256388727109514334780462243999709851516547960026454174594907663215113759442906184790174242267362815419000106204263221489456302932177895104949436992132110083282436566860536684033558999196754865102912918236620165496583219920376854801801077198938779443746735906139043754532737862954137494111484645719836458595186817593808733611530591743338719242426113743222910372581797838274508855853773904626214433505468396121935780098383461211891154766595205585982650153270461413417972454694228583941628793488910232717756670306284663595700488436478140520341451829581717084457335066879471402901781484485726949388213045759870620018432509279377157722257151159999351446327326889649353132337371248914769410073450733913852640919064703388571519476501384937797926398360448157283718581698941026845767034516312702743976898036263989936094389439110722093983043861243110673309894707926490466556861241615772895534477241436361456252381086075272653890430828302460665454968046940585573879314490886730716055225479495970520931012458989502319677296306045003487109432918392620461970495918479906235729272320751628880342665466896636860359904858907173676558828227107858637329226310357163904205663016807410203336709173875527703227142313315659528928573312303624019798833904544378493043788896434609312016529795444046317436290452804928985317102344162215830148099046149545887184253958260149428371035614936423039293172330882711473855325122025770880190962325698673985212617387803557740835355795219100581077509257767244847187148082018120834728282044026248880470245676080011337759388356958181766979696059006089394324202894411174607083012494749888634039524252437600457113006269903347087057080639454874796683521433206213711754151346372449640089339274125536394669552346149735536984619751977130484511216195265824214997504012311756455177790342717681449490493875752084583666752873175317509387736112614116900344253678002012808237339620583508970478694106988774612455311522160449059156285104450603684425809752205936760550155157222553762849033265406939001017806270631647549975634508680696275033029660625284171189667137614931335865382417961221638197336599057959680423254887516662585641330280772870620669044940479116474262994909457434237892881361522390243000283481609411132098146189861044769324895912757313695416659837381820760063032198969113718510898729661093317200546794756233841403916246028970790070167140026665053699427072293745541201231095403286426639827964612452404769288018564486871911510458239520458002344454242502110483800076329945229258556288326625341987337296398759979109858425508269076728576211111423376430874469103046336481271853053089217142146170027676001449669655526545726354582892125993157389043124060074469264614461434437881913239780678174782805730118614154271635920571352540472414437951966612432235847691050732706089766873535094712093783748826611693381755504464594791054751679722969087327373493149479134151096953389517764237090079827971818607431326687060169356158521731932168540320376464673636857374944998014275885509383620107147236129188594739664358191007388699027594989330131194956314994059083630936487081959906388534212452544498675182881191224475802740295797302284083105263033536294151376591338854134125004231088056576821588742189553851842938957568793067295959833160664750466735362782031700081164947629315096448382447024173898569341075611959995235162247669133244091289428357141493345752579212573675122967941931284249644922950072757733158669083723625328759359264799929816854137806137707771840218527889249635712800997391058769115753151441002410670753571400663042766115161979582696684960110295733523613106163899462745200501659736345226762472775759512252297826326807675975762425406696852133337492097804096618993731430141502368097593771816842357880811951630902305871681997711537679501622624570513825850767097427780569564981519086318469778133836660214349263839614751681893095687085100178634087068077894384712073432034723018208733252040607407229094741586007517747257733113024152574370808960375777838040879592134742532210172268244281226009367917449590676101870897691137063693941699273231154203797668400766288286721976802126989501485517172486431110258293432689502436919050177472854392615756394432282719826040389431146517716930354613334737804347874738900528713296857190722832669592144788368322291464510911138156195259752399267134701232048548407792540462413727738659008437730051825819321727044048085581730059527037747195815652051422491334901537805331153982189815274589956132356903020434964060538271469761017948961071394764405628514861485848178973302759691277206621818945318097433329433608392161327286285285748453590671316500925100616670032353003026033620990939998158411559345616367487121351268203185862892446695837514508815176301107786539470753574166136575263411844706276748129063476703094928899201150141390706824620292325140409102669926976736255924967390501993252865761439104335609497114329385232487220007119598263935284356899474204196033750484915451440119451643636463500740700263312721949096606125769580648882221398809317427925101210008668163058908288602316384077769483202867205651964095061555376099145256498726998576985030223358663575496977095130507119107412482408119414728500812023076567055033156932558761060217994362744257300973381402434636629921292160626064321022727177918599209294564654655707408999088111921961348160118414200272110691169981310300545142601347378365810835695906597745747434700060206050806815083580884810838695829014691398959399816859333346298534728062582256132695613189355784636806204521828041582453660718601482920964829765710903939824457554617662066481526805845233475175145496656004111200897426095785664465929054213625908721904488650549744015598673653401898923438148480156783892003720204037783719262357926407229953105587734244401714583672103346428126276117417728867341663871054785849231621753295216380806022297157897207392795612558498724820630434680489520113004211441967254179234262446324874583518510223936571615030511805415790862513302338250440443146342600760195790076666741706709733140776712023794714778018295349868940582954614584473038640929695438824638509121580164171903915256349471144513464310388892132102661413666498555351566189322995154042164157255530837910431874590665349644125387676007827310054167600421090861287990309268095860588053219343860414438045241095467703665791764071127395366806625960860734304321239186434010800294888421463370265388845175485977829360392954291747764449607511352717658416405103110687222568543655516542012838036535507719817641473945214348157885099909810075021213810139710629339376605800886773388938011794999813049531714672859774506442298427436960045172556711789168526698024080920127434742488784423272247975405634211002419278809996649577666238495013676807570125511229152439755457312133791570924203827556290995916856281318945135784891994688513085515129959251632653235122271645780375048464556908529036699159379707883839421563811158211546587378689842446387507719995694657429239221304549291724788353995573831044840437012405839401766901077186814684242692383423719544619470751804165078794126161244995488029249133750079596304182370839412742675587134951167081035079608611068511096816730459576328986180426826365630619458014607353281784891851069247127590203253095242302031274150396740302885605916737929993997223335911485406639652246155081134377322582546108163621367430353092183806162329614790776739216111351336242235402569126222016027079552508591740905000526002225505083205107373679692419343710971383141271755780391134645244248649464782733978119230308647442576105633470396012624013847883843712908679671942902916416272878273949340546268134578664906802274739439427489292646460955917700676004114551576916049226010699819733276406287564579809933075464266502067206524922098294750376422570655039054271914117910097956404294274237339283914075290805056520655962624289653553801487767085475737740164867973048920224561095881165627303549726648772608547919541695557617525201920575244657084844377417792783042870870951531779990667351463323004895580920740472057177985520095882933964636108529763138312114253533662818912087757682341842321559914419329154316902669878821528993885055105101941197576989517614753076890088681768813973344442281293263668613579262557369182486875321727452987402438466796968155301554339871188635693308697392439333990319305687365704770225244357473014390601657270824600802169247420557872854600843290635147273377739299904929711414593852910464099969483770872545989412598994627694365071238934446734799785404443263413475163236638955577950625535493730233569954407079367010778947332109786654314904824655194502327111067477774273239882969533599475797422062780771813248799706302132835231023464463534464993782475333159929134335041588774674207254448821847514837200690052077998158858670560423788270456759665820647338235049026172482446062419386433559978760529163024503874426377428054041069553707161273906393474472409963318230679837250086745992016520079133149682744993332706989121399010718978277725162545679018339313479501520126601594006726140830644662940749528159822110923786141041897393656645146777001174161795723101214490010236794760459921530967747787062175274414975771807492291354055862132583257094970420730398227451410331014008129177326697543978059954522889451261143965680617700830988165964127643481235388221516309251590165551319892542674558711049755404581566610365692331114958734526934619810665181478196789210117236548396925384762048798867532310024672076472628476492721264525308097449284039612274902795425338098443000097521798642418720700341518022427192033563841645875236944573055803010999574433475611074052062113787062008596575686863059204565291049792055573131696976793875319884495883326507322716771420399668656700623002169604834052156189732081842489577714842813384440869081394584695309605297417652083048887644900448220907854023855991960505171220623419735021735256795071414675590372863193214688689132054817980662861039105845475517017629771200987589858379535157026166955741017506625517994230903349780527630627549205781462156609113760782566090506904432041563554840520340176442859745479684295134947888060186036428356290917264243040309757945756701939092621426386605997315186357083550569841721168532089383843624330278230210481568704235842673540992882692717191848200229644742172341997928862961975182493111518018613024913098890225414069875166413491209429660964002113679826846542379052599952450000026691257195790124452185796636708211874911317413849370702049753925207016123097061825071785178327421299271848115655533367770109408155597049393418929677923809839188626896138038427034154071304332984482552692597838926256692713427309173277805802687685682302307962555628005199299654621123077335861441718878389191456704649021889581003256265097623319197183363458586568369681289161276140250233447336074675899015617079606910340531369564974878961176943414455005794861855585467434776454475986294407070293107252476566734089957698110068762353637271025335144066407346652738501079345051589315426587441550290558784304192184189972680795737605938473130183553106371813271824379489628528865696881882122143144046132696227414810438861753112428931265021031545230413377125535679250242675248932331861832541615127222951991183064241287897819081619236313005315539985057554783740288421263570910771346823394532505253412084977687611640332711795882370215473674156867126019456251125082367839735770397229370234757678236756293756600481326795392488600009829039749501570158491627834247622395971813300258608942720478531175072014591793500298566499490549959377393099493720890168042982169076991170071425208093723882302110801041128911802222804826848741897928774517303641327400727820792600495251972323961890047194477391443675796836764121095158807451671058463154104741511784462762151808280120610204576046710839791035870508979997079185925090270024384357262263822133347698550510192489222204427698379651915578744705341675348545848867098430358278190926105932193335683451154424203047286944645746108183181052824313434527706687168644339000787841843216946469603618010234249143562790675002717043319457152714162668465504291283771993698156386535589666578279346274584609094685689463425488526679159017824404995625112581427927562573868689947372032400034734897795247101226065186580991355627537731134129502584792293925215673687105285808617268366761851128611662862727306698193713804183590875164050611655259151621570672152951505712726437005453569882824649317607619822793336484178372237313228630829534478993743988085391568028355469616962949125991407254697000568016984143869986645349887368300124204730017700117849696457338626289128646193297835382021117582692548254891554914444970174803478555802103507799029529802455725707481840897330928705818177690855079382900770806370321848796722733202569972987911329844222696396771660176631422405363544962271100362686285325838206622199623415168376636246834121169069713478785797788594171144167167301131378752062997131529925797060122979951363069603979083841599074632193646490249630860611193138865128038760199761487361930653277546408976798404486783549688191439888913528089640320806407740590594134557312015694553009891184341324346646599256811537443335056466035187123542287828972493550699992864671225767219991726219878935720382134788755060224164432257827366401538342764653988552504943277188568467615573191318197489064316092511777534370327937739916566038186473422747474623721987558876322359066788630874475122070643624091270701537697813244702970227625649411217905291044371692485246151675532394510938547855660120418720759980180211103476806870488584947198246930313560623401179600242730675839875272476906686519277118110750675635901348104229283598922805747395862047782352965910306750625586069558881229778266945463733237722351031483470551846782719022358111935450409718360298352354661616130275598352557288142378823662267265087909174264046772918222979115711011551303327771392253866203226791710808298139738389263714771916520896622323795735366483674553499816966841053120190914388717309284028823377534986043180680577516409476717653021525100430080679849513240534850996732956940605939560862100610141376895869508621515910022505364311842656288301071751599017374362665931188213017151913032541956779413952839540469177958745830312807273989791740545138586055659983043306623970949421993590257189009375853914380103700197119012652314889143778888074758044518005524527375719075669675425240517991652764839373422141813082638236678600762366881577412152466557929907702694702834570867307352849849358832154685459968692912945842019571607484093569783088031137470786064387514620733207401121238314246277250521591372568922673931065066904001517302717119228074720613716669163932418165753156055198644597586009834781837492599432100294651182708689447361399436961037143559366968809773580973981678031589822572666469655095461270349200105268312118163101988242944314260935081957365049799260217723523809959787635423419191859025189516882944499792564861174561522325250172975321514648324506550464057823312210952526102387614547010131990268016216979556252208814857421567109314923453563881559833030537826596763749580071918983897741566851963479735146276212645417138359180514700879700654529609351814519411882417418366565718937550579792189189582705779192800053675154977559583688636277930481951014229535074491670249226324641523998188595578168258239120649956806954843663486204601775317438717744618349914342092100055757589615457794177744345949628420970959046705336140578519836881828114603412463754259595169480293859386350952810998614570717476373387512472026371695292605159873201868511357038451007599084516397376267251408284551509120701654868630918653914375299549762063618926761112395502482031099746010985506121041692956250576925086578194053599546237657080227726017337662805095032337998484181072020996861584522197825793278621977262931191918868353248173854928519908064416354328494666969808889073801416612447794348715363092085559741448373505369088762566082640621945091241197796247700962034475607799617057547293524013229939029128070307639542366087896185276873748901546554851706115376442048658813395390446861246634530175695756669478653758400609206243051592538103538364939421369833213697757336709326737965318849961426126231227491059088945580653458002539393854356721155977269153230016962268505209057466281000699555654353099535411361143294302535511613812296261019428146327899380361527808730117651559513351630745708472583047068569554753691916092465959783707252029272787129720111045817672971446337381446535826958816472335970981874558433474465554609940320996310156002552852846810580147319802871095445597175805208981810387311633326632867480356275653012950299526581898287621277297780606112316340893878231985134715834908828538766595104712322105008972348988831496357006239764724878340891569438712112768015217731790514049405485061487466863753086566716461779981898870580727578498798569841906841201502095004191827369434354863313649295893291018192957964394994174310934808401989456570108671071659754377647804047433397793937205674729081315404323316073111897183672911706959960631188694782165674177353737318111026659753482062199072659782677025510564948251095727968584165750312235264183412479559152171111314588934884356198766021009936488377142689489412128377119348027522237038380600630324785353136655064519682567937681004287596054988518751471831563187886013048424339932782021984580458123688153404845569633957576720439598886337775728439381618320532507281106531485953612986378505791515986389989241635975092990701178711374273703179052154991781691653979935236992763092256542244381212960668892840974990324643868250854401822173440616443165803997364005222732994247299094230322267159064331328804174481355695013422765690928315025136484415151744363467515061967197258773194426833293767694027156668944805318101792397470454435000735521797616657442010503552528014041409446631602755309378716961258918441742721720173834087178040112799377990692630488210829775331744932724206655206898039586510682077875576396059065638343333930035090916027517584270363167774095018259545864349341521194935044583721073565288797643895663173720917285318945742520553850580522059848419445099852135428143693745203257794011384870731497628936777095565875182555858197441169219612636587894850970348201898907165769271700211734204034973838321200603461377491870830451505856321022474206296835924763340030828129398082348783200518350027542630322086403570936611825360227319002715527970672398541164003192765115604437918399247666990583944651097617354976977323641495263776152832455336274528829598507554696761610696058382293086105866020744073369622842601106259955175021628009834455246336505868722235235504268471202884059312174999165121823484803805657010463260974629805210113196779882227690042938062777216890044199725343759741176053049666950442088094134063373015028084649402406348594558222454317332871424830798323159216233238158410644012857640183658587074042296908748968419173718899228500337501209684789708804734733420910293836158531252964135830388164901540252300046857843665489001425649381160327920458571537448848577759989009065864942231559086690415222274821434087066094160486935164390133157988808784319265476722565661191057414810294655489778441494711838777139648567689722332873375652747506405445130150541876316532377480042211067266047008720070432124505479756951776440659605859185824347651173746607367450033273193370382782567459701645079935991329900542690705435247976293620537197371449848199406058181993810354193767317972372421958221837955337089007705652743572835401419047314520631990797131806658705576978728513981883544359384939789759803395080142376678371773607903213606368160814033687359805380114548345360772630079569506224690238855954515019494210764174965066042079160452535300083963431887060364172237607462902220148760920270441067343475062251307413337550267471555926180162520359711330734212363310676447388230967515049675204726587686886201837713994188528450985813427610480648755423410078964583397758144963659116147860914156911888404273334357328042324151724232291283918419405261642353422728201463347380834891694328080286280533567305258861404102292401827427617314373808353665413949983647643539313288075983168274070485547251769896045543918781428564401494309182817009341832305143368865070480289731052663157778967857565591755146976998613730898114393573772700558899697724980596734938348908762311656129689010157513506600700990773547824166410621460877308080881737085666608093415266806177488766279754086952537260353548846101622199192934733919396326252753079693999781550292401256962196590074967699277202893929256093011170611938120819574525345679862495143552538939463013250646475672534806033463523844881170031255425984186398193081234021877915450830574345740325371263514814433030999096667742420027533738042536935381253204102401149404522479866452392458481430725255491307765314427321483801093331421753411525005189191607481613512770831392275080674474347514479070545537348711421722593493352494406316152439545171959643796366570271011163465376215015766397668924442383360499753183411482482343236083426654298716001911003385462876440465914594829169963346890787805689269836381115128429179946764259101687083440862433916956645338453949188310049353550474045946878003238825765285151848313286255670366142636745075838535635757862746631315721866986700509314132739955820892082642577146966468450152059211511745495394023504237405815493377052879658333106899937780018212457935684630143350604075177066793071571322346906455613532933438812294475861295548791565124736454947895318490936021781252847447485415890403025560543673460389932183933723294283960597709810496721824156685774148026716231227673347689424214458025434442446418493981876797957030607377806645759872580765922653899163065591852355587986995960600318322091095346888671861857307219353286965805532961699569323781930102412677381722208507387449283518322749453105520213663102237115041187647787791870000552596326894221642735728652098239098209731848941159497232445453685043776480317645414597873139075140513948916349495957752488392915553375322546437943114523106194578836147218837592992612928708952791929506742421658582623193688694002202576115243573086111198701550474593750446019384041404918159085349589809129142145794760373127722598997440060475726099772128503965800817200912513700590832573717205993180035119513854557575650848974521349281995847644180061176512550734771070181883041499729288437612155467766272042653608416863279802493499851219511911809783691437730086949893961894162043360388162043674936295857316081959076704437362392412653559595693829991240465475760509942664896942386652483916502115915826639869215495906493675887214868071302958324766213604101545429086630066738773330902625942075817472304213333483108103942328468812370927756181422542186622065501094481407811912428732666957817422612808390841209744228744094754233224974516367891831396160092295489263121923659953176099093302000076221938421986653247042041664924114667110447681472482133379117023676233369447029382820176073420388165525085312504077830446892562122217378115178901103139269937310395892394189940273117745432935226335120987017341028846059389694343695591889016855001024988576480277443212056502102319332765269982651553806061698993550159672932684319868984833040184561832518222817876311816654803829998602490185160076994200303958644401769264396037698813810751317437094969419329803780656496973218939962169970345826420050189298415432449896049621021302944940986602651697880550000559926690179803007940453109744676029910525459440127577866421749840383289310774444720593973126947279720056399194956686499003762361962925167746684992452135883446979615889019305203630427415590999177101594634490583789267514933675872258432129193025340205219664100533442689739126019026120619693276467722699383038632745234812982372195672384161399680603543156818655801673294698788872076824616638088728674586371071270638123859665327164987149972460176292734194185627120037959849720187843354828445643041379110694567636791563171639757677424760057626470800055565838635398174510790809436599339461228634800152840523394501165721347724050746620787607944873331434260678473302742768290170786562969932434794717094528327520479428620259659941828468694854544217824603598756125968931911863219444365256891255998532957314870513271314363822535833105232702011952462042843773581801237400695657080617490519024432459554277989884875749523016632730349155746251971169856500768638413576351613314291218678017617123098276986154826109256986861712796517548169710600897122552105668067766733331336901134225844622107777246390846193078869513636706786673560474755926333539625667550940919285993769134438261556272714163099740203841691740029928499347991640673978407064637599195373251944776541683272295727691139669002170737024985734824737992490503690281241548104152337734123429206838755085784253219203057235978015851920058042784168567178629759355663441613643448456755753790611472446088738923312145209126380424363539651449663793113562839231251723704882281619059262278904049346089392589731266915363263565948929432521188571736144602464175114390998727666536925997072023593700792815465606517514000377298537898846352635083808711001793228279656076029597570028966945970155019550320182458741574813855872674454515066430340865327054534606765531165414285481885220735143796101581566264211746351880911878411027877983223566993585451310868991505985862058978368225034727948741996743925420053036563543230768729457796881822276957368237289503911032732777537763445193554349354634356162361099470681038837522928309899498627255092426933116594845538977708706945057799995623975301196299821792668762698485762070908274213949094760272670691952336003968960897471544241087701418470041056035835904597684736751660192455278886274955712503714331709702941513962034275884305309747517993925027566200311586917662042758792289378198186207035393725298432009846465141543121680945221093256278028846954609897628512289772339457602119503105534049133423488342614216355560372128626385542329605181582172499977200216560230944299573419118769846783381032725901212257802903037719274315748257377759079359227477261866104023071902686467898771259740775686472226839610939902334288057093737188258180906272665758604897309943168686851063720385626923439787336326392202165848287090492443205774985237444861059718281362972853833074580311153968554525289744393539133655381990994767111164567774180638748536478301587259510963526340742999550247725771370867867154227539210768799409134481225443699849660378302253191694809282031461635878307833832107792966829824324287969098227703067825275208596036740677174523880976493696847143485294134044749334762821268440736074310960682624317166324220421553895597503205756600290108134574323058748696050117809466060579238587992088893759519097973795307059391842123222885344681250504429679685449455972839026053296484941211923915664512319567323285287545695370121426008534122664442899563635176237745072640413131317446494505237649905635538649451786379174744936451362781911512010581365147001764495151661437263816071250707049183444463204953056235495437822072306125979805536574857205949895164600636277924951902600276521045899712488339664563841491955539590014794512674614438254723325844619447088941934428717792817195917166094932486681313811633463114227631465530224818197072113256351443052357221222656739263578719644231259979539435384652449142819376723892630574410988041119544181758353423518269499933367788400347219948784361210471455572272499466172587416978805474721227292049138004707822402302280960326004413912180674774940406141003615348068021949514752657353344221153233437618009513349597492861668202662235289859835423136949135819184901186972512643514439206553127824083341085390197605219619700502768464876116196967245202254811500459194252347403679584345794949883177131632502105468035251988277546589932446017788694499183506616850171859787699864289847866974957682218574376037163767591508952727377829759456317166061625292362143912143672054668633861814244753440421043846333560208561145588380992012912380363260342437548316849011906658898410955539755428442914439063172662380172582932141986466406964585715845707838248119172551885587406584524111554358077583535343956229245683710548939059830004997235040860860312923985561478601919028246273382629064992528368542330570541603125291489335586466158812591755151755800692971559456996230334551741506537151909779396596889143958979190251321293675173485517893699008297583318667851427782484340011271730478800877794404083450587664928592585069204995314538971331989504220055664295700801506188342957785895251928950373398242069545248277199497603984943157371061325569941455016141655039707658498419234251877812140288329218270623023750642307211513592388896424457271056877602488495597097897806981425846282223208073196014963707007688531663311443237429688505365236494408492651035278304659779369166441635261727338801351370143926083717322123138104078854145364363347150656588548641689096846633667093452944219713535937700668277919812103860236894340942204346042337938892271480081435167375735408117305989191049017860275264588763713879329610960866773511589760939047403715855640877647909995947149446897005588332817625387472989638097281031977485832345147933512333898788483614076017758828933264800559749185448804477129473400716158565918810052850878941603596738069060342765453208777899257554052745441851684195120187129161095428459374161680432984260161022855119901779896098104477248304526978825782037799763423050743094905068532511539324580879097130604289912575350439914910966828538685020836919822273109027149055322304960667845238405614589141260262162887510858481289470926780052848847452610524380430319607210526772323454823656437167977340175330551962778425391347735891841692968025074563693918406507380785852933792235944610771306573641964244577375721219559616779054722018203861908521347904098543395659530421171224753979337670622441257300333766233956896440562138823697760596583244813890805553141541161917047633031809749396980345463159070569672095407704493365467283615292581197798493439523867996505348857448017552662620976844968637129124427904050882901927829780866385958686156639063324239168447614315537949390245135134062940709819117213230687357706316197863428311251167174075974921242061132065864011521348340697920587647564599371867558498161929433991609972285795101994661975913926085983309727627998732481951787027714147198865569093889342691371963810183183890044801058459297449190498160936741983826768693566122586643288132219792099675291397155542842613176549294788581261586583057222100495363782028408049079701138576929291019162382937681090046478975336915072560615819755311736121261653283818886537788153786482883830780645906201314635112086663708062731820933206607901288587021605780653538062632597340455003316732658091102926902070529690199363662730386824145685751608941491904752183910274041576602552600227365619912183700951558497163475468132006831805341736170968848602478598174328843824335133580235383316790429107215555895890849238820486152858815041965165336143427942215741762642638603603082663688291039571143856775001268421958474322101439315289646253959682560068887961868079088755941447731067266813841790209017963776920508394759380780309577560526591661373154436668084815430557508411784846838345743329949302583464886748080456168914580818615801325588262892699327766172620752909600754754178284258253497179979023569357183342267599506734144491982940625462779071312804223827395035419382669993593243812322412648620475284398559425010863386472823408804038250946525691735176525952653400965217246705469219515648491333991066183546192925928927517198492779700269922451476875925641581588602378584182312773071069393576788045047836782207996874098358098657280100309766407161329847656318966034312186562906578082368385013307711650601406982469490117590985925760644999573342780298738100864511785406123691646269085458349291734760195829715876856103277857490666310541325702309226688934378927716723615573757124887301184820027891052895798531375591004875135253992493410229988248083149852440928224395175419915441096426653751341306884431376035481423377769071260874002399939579649667747923525995355063224490636750424063172023463382672090108478362983894635653105969668362896649032246105833132165120782829295528312841141407110216285834617598361576050716671063644963905142384503385907948261425978021794709684555123106457113103065822267831813012977330308689678433934345536233048727488794582310615839010664881183537538969739887336049574117030061870234008087756189668405813177102567493822107304276496195654016568688793080150669478838284401972805108958819644404884501417897017461217149246821877299874821264321689081354994417377311712947621977213569672629523949683187785153081178079950108827219909331977331268775962925794185749990622152876843961602558500024417337993471592869126488382595143234767118099445395955172147144973938765349091945694620154611633465867654294863438004922860168475318376299088002909043809009636394229027321714266851976306849894017600353514104986924065584405183261870675989708574375447084844299120669706058002069945775976928194131087505873265931388239084746348542388670939276337193377404137447161587944234865916865829717647001592120067383245437210555184659507976312471832473769864216711517725901967776232624012399020661405298335270028844150221143154406704307880255607841396148803056558933307936897510269543312722886401086236049473249170903650304061713809650260350050803449454568489666824853749203309067294925866178477180908297025119152510739031859713324141976768158756115191323487684320727591875421072176799676920111762626635901683035627800812906922797496586618629926550377347175077395169981817197453463455977109599259103928682616297754940936665040534875277004481970566007705522045582824871689695004729592967760854523648910828965765597022521882431241735898917927167729498039443691502081155819630373230695949073462175505622759767143517263562118241723371454533024990546924911173592335642224079917242798531528972189427487948542370839909082483534439246397807471191145470401857404842068003217742267203119159353937167958696938480731234324871016631416001382902751848752749015920979964886198799380798889926988230724705031288195044384420520273032587620151922314016141792204918080931995453774202611136019833291547003222393682621752855118195396108892630544438006309143588679849423198375267031855333393735236813521344546829038737686660850728570405927974185427557271418440187441763488572088253838025020640640380581273564332847219331324461670245792673103705530107858028823369337814327416348473070449875207150849188164821877589480894372969086383993716207997578244730825530529151331829204026701617815110853455423298589792007976678250036542899545339657814007678477172851923523292351731400552417278692709051579073791856437433689496966853846354525130352820197386835597110671243426510357301522691192524492452898370285702344872362958364978941389054633670643416468255583756814986738986282763065338103462479281189787023640478212761492717998418701715249646997292493413704180002825040842498486069340819498506048612434898346084870193017213412173331867192182797527325428053883047378869408483435276867366144989740078671345180085752641150865461796403387368312794203409928108554716151747734988042654587424430582361662800096818147330235601217143330497623784882561035048827059878686449957984409774960342144543317727832644259765230650028701756205447687957602996278993071520841305595202740025701375299191684275127024339336697685576914866540665248917400713804822637853103187279187016380800196570814869550759760243264567479278226137605541909051361842607001951271568264193543076538919646431451877248544683263819424444153548465131866572255400021876356851318101360181558529319645707615452786989526055568678129761342303619921499399472710030154532769930414185760904539620084670027126925154850959289383263564307769753817206345369550623099925924069705697977891054323213480613576856449514641874678326993892555845706994692791621347886411365171543972804517393051024596777940198734757910214982788914845068245707255480948504037220837567033611779450752968274298170853312332841496032946099351026616445321560071545210286760892632597107498589348511150292029092489269624868337266150996564837823078565543339077428697346341967355871548344394442554037438820069843680884487488656457030039683030957948215294847332442461952008645375721118991509906545418982058078378377920209458040678460920947594586318595118873529007903950101604920560803119848295829641457467329206876605873609486175635311186751611562087927516257558571925445420534229689682029597408105372781544096760962057436817311364492363643237677798173922693263174348633218585294962561191702311207893636331904729610155404486123158667477317478549856564070450490693863432867693869221148468320004147196991467190615041957107983764736389216797104735722248161060430732550561330328288993406905829470651839280048725152384856977869465271027822030872745385288230681829679957899747564746696955430766598425166541316078853751508713202312058168002330261926243089461300347664447481259669067331060857058063796663033483053391235702835227646853637730924773840039085827289718125260337460173738426170479378079505569183495555174097096341994618718753735130053098665521750940182976801353928350371964925951366024351120605942975853985361989773428964756112798881688008644356958401721904326339280609687120383787263622203670221031824542689117420183388596262676275270533067252123419985183808238623308763056466481687129122030645877060753050015878680405746523272771633145963319801218079656015974403327308056034898842645451472597786222363267445935049386138576955168895318413861166211095214539324331838598514961441389844312507910096179880513554560118823008045388304334653586581217419892120759791746739128733388188249786515554655697743852870514697338575510185184650463210744372440758738486102577837628173606754738555290984763585290277746393529672710502371452326754456492609577818527789321919571335676376932757446277095643767965456197163750636572494645806583696268465993853675757974954372824368080418815654605672767356403533166976294004521911044519012039007019672284796666284571658485104798777381695231447600719254939912143831245577640960432935628024244986048835386166202644366847270219806428278130206462227375212658522922370441285708537108852135444508731500040491972110884292848612116719418017376841889555531493922772756936805298771826930698630107876542716780683209192406451925172838685680134763177894377293164630839969612298477346110624054614634720206986951919135872170627535544463945455761523812350862310171287864986857785254664375066692089544178173216800617225951399944424859072828242204202580923907081475834975495562861720249151181492401615325522904436555139263328680666020495441260222486131982898720233091023356295931555019782629927840281975895612782143713920347664309361234457570859751969843716936525316976136289986304378230508551742454432381348141911012116075160876635069514336339064584801142953750791160551306098224436139431489723771746052652587907645078696279075254104406552142299926195981336092570413893779362439478876072937445210770096003746055346425651773939499220966297822497416425971552847943049991676882818496710759756244325158055078063790840690787250316127163510033929248894661905404093214722212489737908053374002870158751600596712983537726043872163504915932957578726536084265505189094559654254112893281611358501624763144669273490729713542338607485383490836468228227376504775299313727601014623251673817360143196956799880868815083191240189264938501357561091968565396755995146428375305734941534504047985172407010330474762511392743153507515287276608528533035820368107080019731820538737766305624253699280652873655457290748177557556315512976053318577089998954396807951432864727813418706390758051532395750111587069404030903705835906161073993393333279129992692835404085282660036902360993294205503419581530003124676057686868096037576936813910325664138797205771006762337587876573872750458856642037615943278368473709826391384608909135110663616707551600258190716843915571073736985357462181983027773203562577533386799269132967598036703994448629203322615417152189698535325869706480331153545330970200564895049198500871372323705837900690014552084219503838277986411533966497455041431671335626883204574572238041606886014554533197241199808460168507148565459872452120457818344469224827499286613174447152287848680412406514761111700089045791621402589016756900546782571491681732032218928578712017633669720913063444735138852666804883817541843036104607144814389494559300526013460735361003300752086369062355192673302865086851209225316780228880783893932327061255507530991878024808280350786570490268825122937421738294773640401870642346075632305657507047793439757030044860764435673950072493918194281125216696557268709726324757149465567589671201626155916851501065022237046173605693533322720648692964757069672134363265131299865210165442432039649850809147089536815354107595638142338217191083950233838049702667120844063473372068620522261313976061397864669006784605762327836086535222797757767310569474470017095120058745544827871700505606151161243911922890496696210086086107279982552408942927507862850521185107768263351161967827849931174980442200376433978327903674828250541109714350911456249643764434961133735369254660720362307842409762437533066952721674388404297386496590090951359607750857609036442786597516617741836890776710898314741163213155217742443462992556636596544871391589552348638545979870958223949364670513864187014041322881472196074000250436076470973333359003451696823468119151273898786232763640261166392385538120562562671305626781822958987744665074240575790442958950069091828612908958988785725361291196010390505472465365108700674957036149090104933287516609952461334375516995047674930954176176788660667662188625523195699646592129663991267351664531432526859125451091319058972882720819480470699148463804313763664662395081861065922508946323053761716157602605133889558889426309069962476476065982093643483261943359420093932938444204678387795084122156955991610053005231676806898445256779329449030626870586376253870074704266978289311917134777518024488935211032402590124032488517760276380545303175299348286446643759897950849722082444524120801547462627365643581616155940595808716930685331305250268678180395452501096223064788373888988124373427994481102115362363235538597693447622923102237696939667936030859060379395868053575983365488764313288903329495747919310760496459995688781273871826081574856699930545108032727144378188552932409286162390815060873614528237919305476851597217189821967888789393381469456531397109222895423066096042419520578341637932933523769894558876578851924930969913188883992167958619827195811163502941435583414659352501174968446999025175828623116437038260191689705841216152557023971440659267657083055736719292035305866991562157819171314217027284714621863152627478527115338306351536301008357548118967148751670662192654065426106689884401155929950375810884800532042180186033648162228867439346070326357337713621110919849117661737681048632833429521220518860647623235637499336978663266420421972053967017455023561204873896184478549043066554661066998353277750902949828626289344121217051258093319272657523153529767280750097940373122037721742147344611803410543565826602589612296660137484154151371975762284448533032355790135687879335288501914593639633401999467890249709081830766242366424341521127491919757003839156628500181871418887960166739231156725734706749615054418770941573216171592746092994500663349407768653340094007980478442285741197686690729032057706048532946064730859465165007828510454722567405212807297367546111570356526743956604357213754593994178640176167315139201075827641302260273237458454969868645843397798555786014990158256136042032085767559914530757450303550030526198476921043514427873321375606027518280319681202996326235713723527520392221641944060761473239158584738286735307875423949621330499858073218896157338020118906572822575652460973640179541941213607409949865516491234728691269888323648204532394877719414421480546368566049174455260712208884142217588282810702291759243280462439400987319633216016274134167036792508892705961954561385269354809214721953930330922036797620466741690244411100102000880495820703652067774507025183633391533195257827048120544848201632626416499035980692693545841885115992054943379027286137202430318501127350648932396763954342378889536497217549341512946461991971478569727139224969902614285849885449644388136052679951811360038170077314844107337095183161384491562818215475634000172956503746772914212755116195094783286267352982471527783330421839967247766974208763601992505650831229143933613364273019641379517167784031812788732315701990419595927036369827210497068825385769632720115039839885014890954435138163339824451405954647974431206746586326331271269484660674000829607836913587887450503905525554107582961644383666552385903166217959474096260579103436787028074061751167624854399144971837769889172952992313709156078971247686499742975513238634875964121979729509211503705010807476623189634756547308021558701067582837826557127615904675139681263259314404293368804469318725088859016587336589518248976158257935287258956209245807072527693068426563212076136954926453780770160080059211442890883062121341080090022050114868476193788217696711990751434079749016491157460711398564745685511741713831146195646782102003656529832242861667063097854282652788096073552506844194197102637478072463155777850854075788077349670957197407058269332652617176067931950054662833054502998203062275823772128892652642402826963997874110304494956517183779222814055280263715668232824658082853713770085382400723862004471373047793000420583524921372734879798112122024548090365210488443753308191566916225172257740307889317211854904674819901089397054183748720946218575401462694031105707167055414858833472128662542131641975264339638383193201993730211332324645158955158783793901529583365947461330623246478113176652878473832489996442443187729413122080649989236966174013678072448640938484229115264753086426802108826890082257798623025925549416829578581670008538243058266587515307950752735942010576728498445590502881930960751390246686818847401298035172939879892411273605064276469638437231632900396506057240923355711232909238351357295288788184510550793374388675144952802764345370578324592194721799934160737213675826330280535503225805085613867638111977268203705886688190124950479022541425933657296478957999116560397038026553713960666097339433069555525426778189769693710006865233843480610747579579990894759135254597045155314180847632370173822428746858617859078706443577905561465965274268916290628434062955524265822794797339705521436072020638683033771946446632443042569119540726212283267447552117750865917370765014276296820715046382973835402930644481689853430698161545996436502458582666200478209599206512779273724614211897410521727622507680264832292073678947488863677639637155514922762731632056900324951103908227795929602990305645250666497359317067889937451156114069013387955732714520216943593651022348951806632207167661334937250101876855039204771706991306244515673957764772745306838083807250225447363750654840282723986311549235284252049371088380929296131303906863042221926387903225126036127375404124195483788787058166632643576485332413542987036243261560070167492176831231811540114112103927195059837465193461066791747941941600749985158481758872308016546081026310042734471658408166674611852582804700204473146978841401540898450844818160024609997727220472181791477863438636107639057766989227142600703916779272414800980497572283498173341568639290020956946456599609604346184110134454474119670204684081241345046372303016215537846125865264954880715973381749033013262476756149196101534032319187413550248040313280385105320254455925093054051390143312970108215551845892827788167526644128140888940273850819656431424127041661257591003550609832042621369552884646073694586744614901920779170442405197090040344811889451381358233043979489811723642497942605223593502345996090500814332977212073262198069186810521889379350864086481834026605672075440817329158468194699078077343134567201601736844558877117320193299212173162209487526362479357603038196187329954265619155637969178660880188544323026432011395294307834119265596808729514882079782736479343699358024514508263135348648237096365404834269580848050875459506494086199583440182453665278789852196384920713588117397502400702928951254615320559401703584046602242815325707461152787478088326860761459232571703942366595613318761873793805562740468327771944546001051200596649896742924057248278048469671447466660868109915754386291136855487469568693808961995402881417821460567621905321726661765618949012044501206582685928650739217339337103073692549743633556664728568288938719114187926828728960913649591139657594524738433083268711029365145359165054626318981813933330339695965961426149777860568249460142855528292610171959738337285514240115699461165954258630272519083827949403953666167965609076162031938567244894391205564320538886818327053438944834074578196843437397264051523474795712823079321201585470741711617705835838304303538494731820976633689783519589017645992158657099712437313158584792275803602813707591668831252839487217485900217067541807848629378668150889007904179299985126833449264661215564107613370200191967915146529466975568472848614337609983970439971685147874822200369780254244385735169330185990890439120216918165893680124146392730012210758516635804494700513495502422005121667451861486250872025390006759368568257660795336640340423573464645811941432402676752275366834390751738585214632990508891986183415962146087893344346583980630827679578702968807682371573553644152818209817840378796216633632507921294503688030566873546186362628798769824407354725679940830605911570008953603389107509442642198332082601582602509612264106348354888854739320653892787185975004363253750679731041993512084411724982861766471985086973986225975252211482907715396887167178976488698797137000807261401204335724582640036351185553376764407739902500601814583066090174777135820799593374413790634156436645479535748404567017501923298068257311002259542259455013252878530024700239475033228337433947204088173213933851808413856771108572014689253293627082586342765984735156638244154600548152423231764115642713947041130224785186675822140967092064679800899858226926602215109367954817690214447716166083619801585333564573936085510037781546059496651376568313942817285566852970656583850853059763444055486828545674172338901679564490971778926650422568045719022016157133503572442389945720917575135571328472844583071159050037492149195240317241763294266995343548740933789822240786087462215432087593726825653421298693131319934400470839033958588554950153235996743681890923821247120804785358499168203424628214985619528692839025713574596635455798780269366222009817028628448190208804429032313822545896254043229692765730036159497641831473564978098011993891466057560538191145054479555529012079940141343986383577926346501637013067887994263674772545635208484718646832972971198819502777537357873252842992129083663115265025558447974186343063964388231717127624483148852060490864619135205876243701585875235747140281385584284957459822700298851586622270546621702521371755938096834258816647719144839211425809135377018116189728310509080430817062656700011850693812679046039598518416967192241338822509681968141317966059373349800381559859529101121684637070786764718272821762352046366325587275006747147989252456239249732541361638394358002881803086554256862921817989793672212204112112190715595784804990725834873496948074813023057241078678172878212597512363398491627477399452031918838181201635550957758516877911306235945062007384449648549643994024388814320766852641174437700373015409729846287273489362546373252848982339823875208260482836258780922143629241232785855231716542468488964922434182283574442390115678041330347329557894510496831708482568016149882656860878918170240652387969477293014938730599404097998779429430237295603032124919384256565245743149269034455710454908305480292045590339882779977274906536056562301956784916475136139499597835413205299008372003711532141177381348381766472769508515284525683838640969776494619652973913923969529712159255083503652004048180273824290846980267966421890706577670471844118421166513823458398660583479424407160294396157756189696890039351329317205800035822144781521973781460226307800202751968591482117170550869931093352116550727050111214343323349285629402945396762361777530948923756030572184871182358413442757904326664107153260953638157081286799138322165651901323833936669143747715242532262618704786735495272250931231190717175849999723632736253525237288013182056652261632523132553051465694549063987776590773616206409187390367287211986768437688113089650375413731551983842362831764947510264069118091557039970517451316945055833981319776370604149168749256852466930555455448623328577556150880990092960576310950521783599411606752716277620124163141970174147739808066592984680167439164512064751740213385318447184366702007986055842253517399241464949817628075870193755628834101039407761334182827596502289994647492280506627657583499780145861748328255179200346025364442495823049623393122998295329586358505504593866027630562301625425839644640155788636982760526023843463088481784664864799692264776802143485786630594672590394723319842399543619294707475465142125048911780417169885084449735894562725742077076472691565516224408078616940926403777139612202731745251158364025688107418385841736366201708183328164727703662578599449387843083948590290015841906140134900687449789355289080506527358392265175020535115308132212941036250261114547699920667044200190678449483784086150833478244040954453283486381739470861027759773754325730750511748628724261801482742945763228534370174976887470933097157810316200240083150269831910101115492043938794048616710136612010529151555193838060138760276676619846920636220441638610529222705913298368180117159582813774392841502543494577588241988032222017203406511691906378512384751657686201731708830952273363085882033708077510761814704570223476813718210261076687471468844308436142877437530698930853431755867412767185836001312115303667734063700458857251275520223695906463950464296998948216174682666504690904541913756592757503459832830902286171227618215544679309592598643212926889332103009023691475129198489156371355232729680181189390189384915172538968727559149342030124797909463550952117454563652430653146528299153135453578481480348193270422112475554057367190293741605658111028475903152705098139393246778683450175667536255965143443347991347980536296076193196757717895754674569461021889185361376272820837858002297762738158968601286635524320413274320815487821496022527192656561293847154985831616814170498773525096604072870478018989049150729084462551039921259348938645761409380650730314309585054763635653299281820602593428247301031049979645783754099139478443240431864933829799763240243705537757540033069498787116690227318986897728336974824096011605847370098572258018604315629672859205068751424584675782434963727255276482969980612786317734534043589533218939163732793713077597031735921590853816420096911422034633031509038173596214951414978188102461218095567531890420889323041091535939438417932704680514973823861541839413287759138749710288950830952194341998442065958296747083131461659525250188889488889674440845244367280956184307923225709488639326881517094272450676684500955175402341187851549727631668254231841087253942930143407000311192149825611553552982013357846256954904243917090109685984578675639718007632990505548976907250431217449993142941830807286361704547156093705522314824119180197412562801050460727858585442068466283587073233506522562697323273958005918254694552825091751314013001941803605201851458714524759811434466916118867024637395895567378771262392826644277903657906224479858977124739650680906288631011953345112686427286088100537445621591989876421726431794470592931622968825181317090605479979886519080401685838281122766505625077005942812866636892177675944111804189294648935224582709579212227312743473679617908623372974002537379996071195088100761003625462424214392317395892716693759698046405838537770782899644205930056453668961109232994340285830616257996593979846312721524639348287242839220815124817452023140052683758447308482658544346725206720860562510776726043506809934074659804541256699281303851409065293508573277144899660379611939216171777781646546150052438003413739397320865389241260131089115548235678072662637664905797147977297085368259082969526352450309228241441378430272512005057490839187929459857096742760055025600990930622441186488755006927993306147086977002080310543111722223223837343692669947370324808463153411600623356487572713295530930906828524877731505151752198080509026419065447132366647875768649313071275873423559450592648786178125062545638597349876157757676704077797738755968196941573906202564491592621077679186846065938434993082771654416764167385751105208566161485758795836953342433023188896858788131532030439323133175406003540064123359421307954462459011954448002051336886115577621213950654442127481474275138800874565963246986605339963233717896424067261078512920938740730876739395945714167903120386213670708321164559136032089468172997278958022161854325624860713990836085497803047627813176631049498735393908071482353432959825103884998073714474465901582329241185278645583086917673022558885969601259540346763514055307435613651719693801775381135623230725066639380777636456316704348454154151346907485710988919149629973415255339580602942355955994461055422392328021252992568097518553083213124537384360153371884567113195906095133138401193557677138951894312878512177623310168553613416512912842963398202527926410411363172648399135927882117218962605146960045544585131097142662025728619612636849549356669793970762584665255347013439384305726336975464242808510369957543978541878600557370159137739819376232021103962333760556972680896193909016656866688535544322528304562637261363227089582932258647606214271117349359214326914821517280164517713372276981128450769299496899936147064235349463068430562560452474328647411244085984814068083546481960237668395018760180078387825099431535263860643401295225338331378116113698377084725724326323403169547785253340272672881822461845661083633285521688225277310473229819431776479208254834437449172750587420110589550426710698296404026036986226297480728578216638965194394864048181307160954751828205580107107169588199466839764411655657981513780319319412909405766280030867725931649333043712785480396435628734968395242027953068431271642694130719699359346319620808605010264991642035745734184065337149301475108900606725755262825658143861674864468406313559966965062668066331946983714327739513875877773659847348535153132952812114442239284024226759769913022561243005769958969008906085144844783853455919289769426614656749502182661481790237568326146227210978899165663300989268618779428032753773370514410257114177181619908247716862843451309473100109618784950264441622279941907458155401959877918981710058176412936124505405393982155844552757727324971290275695998457898511169786128719686254793925130199727690353548582894344573482050186599542602157716318439434574102231223745350806334168449473831530864593459217868477725383718755066535432229724829706336198933104202632086235971802848852268641478703805465087628524321780604150319881085237820142744500929474678426679172334878802461669696593846268092281048163030215577431811419613391386432893842023561234839570197674035094619273428576313044846157651359474118470126345788090961852451252275529776222184104392704344397057844930623213055210506980120966438206051980076399663579927291926408630319945657851793286093194007666321279975190813165765239558885610318294349086882494920693537021076997494852666418983397805706985149161363444633021124676286517141836933225118198524845797985342101408774867090431605664596224443769596868103265932223455798805095172208024116555537192123426583354072470076549884165872496513713948204094848322440553930397883719738224525133559493003129063300989779990072463272166635547349753828504232810382959752911451239341045106303799747034873211844580261538015254502215051150125441351987697759893423065327921950579418037289391130877978840453931793133388660006164582489203939023899800567375280598721544487037620142251199361458502012340887587366534531751150698831178176864429533392372060003703082256341023156721562312878868139599509858862451851420222624271035449677845426350983730314556721219472715775127767531422557418955420583110679740136579467652789323553848925821672860764770120027643378655332200085309415101294855453585060283464398474128271510632889224735917573561847769351335963126676025021666061305403043671688865654965377072353215242874433467494288366015766967189590832744179810470129371033096005161424494622574026729595416805725221539674434149420222615650592903386152272064882919322198325086021120443919626297740750925821250602385464314379328745786976119609783808085630234996885531259909206717550695733493048573852926153216195845999250752738886109047792313155655916226810602716896031264525512262918795558307222548999350694078403618246883955103124931546407273943816084295489436512942909788139681785571290416142818750850080288049612480397442534009783565542515734346919258467493663200915192151696034707730064880770502049255599817317015165289599534945689467235784564705120673255519401362459066796383975528245457611828943042874651049450859899838955435884285108421871219701098097925812895292413614886393770984123627820757736847647113879252638355685338361433051965229406613409266909965451569026351142362403157680600208927073405682240394347240336066037855694294619369653329247600523914019493292545986940327857498515268517937891734615661477198158487267317363101155037220308859071984142210885817510374637723013324952331688593734516468013825891732478119283880999842395238076627604816350293712410102560662559352547544165898382107044437534502248725479417794333149592151827788265959586962025247997262005391321330168205886516442034882871766827515045041560991760416679141158551268725347454393568829769358465654670721388611683353237541204924955476797748981797235102041649360322517025553598650735404839831799942428762230526677108110317474175560837186021321661199551135925576478279839900127567279310195155863033667443888953914881828390611025622910937631807327850057573019472617949142084068270838395924084076140896417397463741733717726403500974345679686406142412600204983311688754079083643643316359298166790929796497264843659201421370744540567056665419582334087868081785073581213731875560789628492175987688054647894552816927685877940194646471355848059340565130697003439660163860018692415035880932247873991924814745356661528264853618693756387918585181162816437443885160670679461772820415404350926301594296696998539357921722576551197264671649643440944401476892621001686472080426818515398265350736744131956524773961643905749301640406801358153659806870403434092945831631322181442819944232326982812599151205635741240189417461136320079744678339173244453985498968135503691422731090657416556979696153032509167513251356907651538422123126244445797469057659801225573480929288014516696804839593993188999920112520535768807767452338029967084897189322386932361953227729078332492197591200663975869237385491283107436074579278136891788514044680079166289556812064445522087462312718655135121062653340854610037051017014228584330926590638786174133675853372799381676138923030709113725008880588620998794901287068419622615343556691992189616772544776536572666057214139891491724431781551873783177896656051069778454749437547433524483311084625953258639631643685236708835443887592039091429162513925015510441016877801002885657096296394048622505717834476837281270943008011120293701660519327761467386782310613889545435035964886722507723151902616669668151441998911461976874500620840769672077831613567322573785655457023393478437353452471628956597729645507751716942857101558937972562667437410075726368576382286264549918002920189013753659121602588756585207588779521203551385458983310755796911299603965607081501317499027056147991627458487318359169150651183492831453971671574610167084345675309701312480440190399735117536217425513786751716607220595298770750907789957034487813090999290626670080679806031010387191308611436119848711567209946881906957288212789012330126143059810614766203060604006928723561554883047707153043944270524931530976265482703165412258695432870356703797471041170320425631648389113655033506867827431080775893850921048687880404523062036091095325227116085185156313480687206732091672448445568450430708047946827251988874759692550461422091685117014832690404240984597929342543184727535570798669345512801797336279533644420846569093892010884260174895264312170816916311423367838296572857592678709909567989439455825587038553141816409790112461033205250769552023774360768566306096672451804574395790968907443259369094158252450133828537200155578483101087969100102845682621830661604181180582807226564905148477088055420445739296479550763420676367701636177356102635303768746837872798488054491321538816093531840847576731176746160547037618615424507701680970898816884760935730690219274005735321102910611159869150610626432232724550241553061950350379777216744204302605820107087300227849200586977345009018760998507159096151145140637053271946282634854036941619815511119410755385174569820772639640441317518631289641860286236066835056263017439381971553724406638731195853422947724270390931406423115989177996350475066941115851895091263773364085085684037267023195426140778682276757781981371170929515167007400457241974573101725217750710101627745759641152700514887157835532633471492516604032124981190668670444584687273893840425053833659255121166337062191265683477823677391562804530665342785101336526600795203606477329895043970347373252955348638556561580690263777600333603620184000854975101894845096810024875885945882928785604881677548078035790037376819672652463820705618313439195773794174700163136469719094762356041511093214482698171311886113169829572460163332470005106941672673075551484483354917616059269632674742445157543966435708415004114448513529365954320614526863976431220792435519344435448884523257231193161136616437129796509585665511439009484226688036588147890600619507589576267084721793680787508667736535646533988714923761064627108309090168831678087901023927980556418052048183712317592901761882047096694725220771506511373501675939571630724437282748993608522877119272017926124871877113645482778145644182238040518555805798148041797604951296008930412426487004863567664404244222378395845998426913251917238239189691807456369054552414245629859700534973801243497265873898635820564479677839304780880551709617488030288093811182403391905307532091804916459121557290934518201546058191726284517175832235414014081584954999159121216277018562860622907817210888286014977468276555737846255072507189119304570748044076263024941652066160850341940881157158730270329178265914728862511676892102225197479453592386497876779700286623544956446243854329057688609910323106740410742837493987098469057831689050263020958570824342961896119897045593280191636009294367200067704970378845502656842304215071193493875003733016143496266332553033137445041860598088261829504292276759716682665913167687428129836174380022100504403520906854942253762201488429708195890143961067832469635155840416106427329463509377815348810317375605700344424324274998548887054789557224952429114699354150075494082618262337538848762863430486047615904383809906486655441248112717461001928311361617504925921935882821634022614167586977986853388599095121185252421110116413683843781633298404414639266080395479129457615117631192205606994996332028661359557429973622188132539679935216002701205756792225990203386406408858285907555242684957280412328668104750716756645484044033557346014296200381891794024676941090354578115991453176715917755204158629824873006653055828951613310248819933483875839677384340003418165459133948757746572705750840876495194914643984030961075283292504544553190219927859650139018478052342447494626552521897494076738309326839271580543740069977538028901415227539316818634137038565505743772271783548730164925102925247473108725380087336587638615723471023889210598423010071800633272281955101913999422854295038644762127063012870426636408386631519321335885418585852194210299380746560437500779134597385508282311797936321318007880796404397145940821610423790842748159511416038362853011881222797250707412392060927362100315308783069483956411084044248030237036032311461057915561405216751572479421886009237804480776810494884652543408063245985211371831740959864371991330473084217765085598400191390072289222168051845711883227187635762680214758855065387306963855217715315648468279315387908737157613223521905793911425278291643228353352561995182067328896216316760829675727504679900124562787654412125493893040179384665234514447360350165413255714410658819056720754517651402479095978478789338623677558329674059315649942934338743644730493094788298710606844027751704217223255110596073279734747154600298559144833414447781740509785628339205009021942814389809955763625781549897445354243373747024445934203934014216623346761462992075694597416444985623179590769900840148461639577033875069094444932980548578638056183083856290579386976506781222334631920630333743671353262636506720775534025176845057579306338114019018534279044923330881035705632350396171595758230306544868143161371085847458219123275375950088189601439262584573900508160567142678479975599541160961326806928912891735938107236469377214403560065890684095696584827707175727965737196856041900419104648169389899621807303971380561317242507975826908745614595365807534144683228288770722781741537178616596160068194817096827032217603342044127516477864791000412573416369028424347390518706666888497918735716974518535067434318427314592103389436049127898596395977122827774686760409298518907095678201747845697597871162452960541591304077499837897047039315817239690533070837678967591584252011454584609739526391200725454848822337336305670662343424016709201177370123892526160450906287782818898960372478684237424216250150281029408805633281150903434383918829529350344820477496617456711075844758979797709295078864720509731463534090518838661413761378372911162133328172862948213341509313911823643612670008570789503166590041699605071347119770924173936651734847119871599168625975803407538171454901205204604512600821095196025613317476062783219966627477758971887424292052822539809841800549013336493367285495494011881950141811867726417244236538703211015138617615550622666977023238613782648362746423577096655851816843482556925983499240015066705792324920884402729412466246428890679773834461406701038293194564317032102629644295982401434152059220732095117243057322383624841343016735242113759216961341429074659615145648897349244694927212623707626569596989012685292096608786663456929717543625388674140671911968575242342278639394738442022628086003127046315208046235925668935633556938817060709952103255122946441385063420377530552238108689968690870392095010177539182620482032209629062061968277294934338779739440030719904569463670441379636029885982610492729020570898278788344539471312159150749278103249766581893321643522866526372347517282358368493343020295315751219680995854383317166336137210490877914186709318800440115985398624885005656202721521626683273243407214554375355278159583321460437927086049010772408664819860644664802160505868339232067523180613022923717148713707188536046298706886273241460787314334593188943139925132182281080248929095354344664604681831058367897207956883522198212570387494677050892200868733180484626936605081912355536826096880582032595060743321242050434406241644257296753809718543521522394795930395702328845810061980174333153169252214482319973429706334181756194371115916081936585152098200572317504800251131277337620609241875274269436798246503010606951967026926337928483968081600049140363402940151849839095263171492856571189716995082621825592399324231459002300370622250628280561148208733724420389902831926044094713751394821180844119712937937861527511897738229257480038743820853235548896717216560657240187324217162064569150414848754872585403853960728453297641317722535135962372739732958478587598252891444174666432802749764525945903150702546002540552339213873240453612767642239525486004289878023590549657757339004983377851763810009118409571586879828056096372730440800606269496979629498226105585120825253563138724752794215195466390766337521343944375639360471698885740479424049184828076558814293517800886584632434156221899054821395775112655420237446761273013439862253647949994955168177699370832816567689638164013779615551771942089309466947759005653679816985617942705702930313368178747264584999473526039985340866984796462748252114167156035368855203147080445159409825335280977154677074472228272976453339215162797242931737242592102980874897325326453368667666967072377062524026812938560579952431577826093179365847303357373748089192868922690744672018532794611590852566550727386103855424305146652870206352290122555347860480166001487953132317248750393624858912729096238173007759258472479761316025754149640459654790522235062697378782094076348356976300160775052741520360264288468361092463797320843204293827976379169040728279389833677371549854881653935577663382617371923394833260823518043396226963033388059014122554737382733242476685325890089418463849034531248898781937458029776478992888596292502530622057533083166921759647004345174538515371164730000543982395278254292421796142714042309646977417234493081071899918056039341842132951121083366460321400508270877402147615085293932528109451905541397686772842890734892949164322835920032780846896999523524184051790338949201801838611353813325955411465473503569813134648039105032169397821043733446134120200559873535434629591649383918482015056343873817850369430627109547992294060969208866370274018782123669980208154725793986176731287955454400165363130419773950447477666164545529315445690920508343082785374535464744483087401481528463347536811632685794849957165276301963739350659452229364419395691056149764415860720155914120490563916516782534687786534003745018656196032235544569230356072745773960245999166305791557897410064608299213400248387410639154163445768623669347785868188825098722232351149694168760356052268756983247733939501252895427412219317765871576407815735335130368073588529577597115685897888382692613520409379686446063533089900053107375519162832320738013449339562319147295069732787808891694447769471391114072489420561533429070020029997440161051745341703704214586100343880151186771399216025004266512759982821790531924327618056189952042328122193396536353197802531762766269331371080036511902212135152200052877797051339626660122720614247740043396238460021589790284513267080559247545900100057165490876202549706403319475487428699956048670213453599704093802329614265205829617274536124659855989042480919637298988420243080339832729737093184646271170311904850156770120838623511225853574927522791230671543188746897411670726431145759149735119027936972181459704195149995846215691086142765780327605720781455342466697569882180151490863711344790067011243292568261602492194157335018379333371491560963049470802365341550147473988490938323094942739414855392872156744552930414881851516112815057923674629956018661550774927634071124480146559773063733118369543319464459796171282246433274953423225108959203970893752679314211519416536689884302967743589886795206741398903941031390926390877854712138865489058731264297725914353885571545746495810766937976586820798857683864949988818387654706628919425768198487709490235015092387181599631296304123255709217222580264748533474094892467808873031703850976151174194160045054323402481969285354459094911338477224668341390087174117038659859391257375819353285887344485072762718420434271230152832012570061660831939831689680013258794664308355650430967554399646922469989009186246604961470977676990436769019124861394738252900829479590224575800537994418231179188115404641649851225788989436783817273932765500199667541371262617947180737538446103564877497816917074396180497625452805843590894832965441356475330567882181489814153426826455873254726653196798007113884925969553490339167794751374881065300593812837692122633485381721321888262404542396103741042559359033987401009726903525667865409389530460347677139605603976550108630080665670257948050833143706620833529225503018211498362592307027276059770773607307430238411995945018011280265180973009544180129823858656675681832184182511185677011417189895291325734201490565807216317548954679373540593166949283571269153563755693956923587452746864059806088735689333089452358082863111888180248884881249922875164459983119937124252363224897869678021545652652712026066473859079508817158512341912220178250468785551441414424395004526358930163676045280898786536258578224022298825871666482132044096328655871969933704555688793423643419661011109076745163816728013542874271034498224472527071980466343406990558860383642012835553330357395047919296589945462134744694236771551157187058986808814849293738915359057507813241146635066753197087046255312324774940538437555174059453966676391177471321295743200574670671248233118711778395621489291316634254074908369348592111436127289614118317547606908024892988636047065790758403828843219367443701816937595759272054269183055171251953569066046834304452240934288133474401553079051514274847906103503096456480430369429937566336631599336887276842428244008275971525019626210187281167565264511269558417168145214388132099600651423246809077554152995414975912433565390519411259443842902547348515718397688320149910638220764841592642476251025741534694822118490558059192527355071562302513895790293188501952570777523755426900170397713477386581397860978280500073117149695830555142073129224713014040610503752474013598159509177561465578214056360634884184055149555733832786220548907917941208848254627914401715663116885407939969019111928848438219963329772271261959879921880639609197513092102911583463862060723790474294821935796745237269077496122654824218426877915755164564870446350786373077998268547253967650818042070113283048857554735053022681680159914909634050687176243169527993935099059709591496808124697091625832293664013918526103210026138146704159006356530465044110693751274176286786217430655879647165463677826552881650122923617520562892953846345408439332641214521289003624143113480271338824232897582355327821829325389385872384212634076719496983447938539982039560559740811250734170170398313336068997216858039866345926033697162389823564355483886824637875305997974837871733878647940511600404588527520092725800375879877765292604535073691020750307283114602999631049273010732741354017602317810847880164384485180221354348821631650703980102156542284300329834249229962037627859870346500793206266295208992830979668228655183927318589543041728767691166997252942032512161567426688641161337516992754186195009578332857992400076757964222009830319676315529809964788369192072123367716946285809646783640260003088233349334965587648649140475553393312723874528299680074661342467273980118819000656773362314873682508485862430399218500490851933467811773129071031113373501673354576534117905040774183429766217939959199965459304911912070724384320624268182065466841236774418261253066003276614698914689700957324469654678595849233597183010519236175925160092099352447029965667709171687850229292617378264686104100127398604625866115500216873719213455871932778207485908278477990308904554734449242713474132955394102811427929464399064842067942161786471444402875002636504687387529129864276235507710404908029769778692781843735131972642232378260081183899333883182604983662775522833158609324834822880127189785051672443351960973432257913830183910154585860465424690068617494940122090918701064007209832771557727533499413958206909343310244797644722272815706696755131221471248154160638259883590011319153328057791297475097399668655751612513353057671910900398513128540526811427832887210595344553191658253910205516029689373262829963154126538009643366110266138569441812402164148103304079992277882021981368710583329423498382001173703386654873823925508275450067943237791313796921404522828510587153391473655544728959703325843743815536548629780254322824425092977018469244480602626424335534824472513554605581501982219840037622138398120967393465654393643822066757964195617124090398624379197951428137697146359320290010629925162290253650812101700910274101361916306005256879637164965184374180067913416060027788344718539986071572933781060611599615060395090253943006448716361145953511542580774574275509798691149140457564541462203130164003198733231306454521521720265832710191699384979352309387779016441138637429956370687525828922678800507366156649365369276446407206675069467872576235205815350925230415107756222272813830402151240743749786704151351783314310515308032914579936262750545177979233320755238148468078907817150021983185693972324009895791589760877399583191266679905689115160966603089295924615931467699215817910965775152767442788235226472325197213646444055235239558697637574816927936384603712150449561934728305393160567617366720251486630912087426119427711189634439032234181687181139087599278909998907406873492387054656466716159152555194955441258586130722890764605487538577736466193062256014140985244349556096481631742168447519511995847506713448803185718919461917968963653150137631198646321400086331387007003158975590405652730255750961984684300295539182934305328057788128236030358109946229466607368690808860035202464534469849091820013367137730095595841895629274270110686228550290847859790343169290270604288710312175636693484013039111249543924607945536095750799904014903428351750699707232391686688864894228204648767002487263191168974762595094271679072542294532730676248782159560169657153725840788741852877519182228658661070126212568318740711518461218400788775360224578803378847820858024912703171817774394690390282421687191939427069364374308297657588584139032407964368121660869089100761120914973927744902932303475502795638439491081955521942635404348731780960818778249980757483484903438427307100706697902147308767686886793060346495616444782556949724987501128064184603098834275129858545524545107187730287950281695571920334507284908911714328808084274383648122539338340896191771836353838026459096345618234217052765358725979603065388034008367140064869922387043520356236774586958276762942695700149085780364438887607107229686885572714226962795725778463494507032787782636864211139187572304598210843131591686099377675163787454712595617375232727393438314601666018196901006116237788725241475833483693054715882721021084687362060192398319013815860609603789546600973820671056931067539432412956900051459031496676388383758263409375248508250111432290510245622485127619609996637704324191094987193207740156098841051514648418834323664266361787494152254290726243325498591434651817869763924789945536628080027532750905669691887254257704798535415011178454908774392368306645638453410246028989390344876021131615830118347626413374510323630507854409782289973724966663401222485631073459206718524634715589918523880593510405061376715250594813795687191433394611808633456955451737023828024362361053244506453895831354749545453544657274293447037537991724570012072186683742828285898196078634255834015059579217129864513459336223345641487364471837544507898816868627284575161134122019600967450117604373432729029466089502329228094639036743853591770437202633919638685059884018385436316453844209558619162965598663479157925873737931660402694230399886967457006493475441353111281684612464364977984695950908721107673318479130835069013172305395015732495719958332318689196631713967161655866906924819523677523883121153073080485583780615221669871574639333595354436357844927165282405476414827036308002154675263302801190615092916792525040430657564904671569175751452536215415853070903760018208724309492749268182007880975078688264536005566512533586181834674947945461540009296843040533561098216606403473281907441411038546086192739825571965220285141452167521143199624307173620023346870905655241652727549207128734582546875537763902082692737524349512650872812643004915493960708891090777948997022059011505350672062462086607949215941670062689326992446335604061572946395854335223992130047853418668499069864309794460543615842313657671754410752144668119674273676805538732316675296356048083407353351581855333698267992912538721593582303211442755565758218589415710057916662134509467169068201324061646975419711209355788252418880797807020702385654178532753673070278775235892103098525243954168435548882248037643204807457149765515233251566451477837896813463410450887290465550064171273142135132795118264251017176849995637837240902212316368602335272620525501724574278143360162140215286058290042322705203070822710502892918326337951033137579513512911270848673160084203193976492930361045166506557304566392752544854511257145297736905581142984613983647527027391448108872858705977728116789815878799759336974962489123656396029812336752804625897390003236489690847568523317683756228926440368912372212761459515532551004756064252816008052327937633609503741476839277184941141841870010881758504163422099212481391853078010364066189765966688645256148185798405191112503393680771234585743473798054806531460043282481653473283260549681243786456345093431792694181629728278709928251347342009647138956267436861405955166536601899874338483863344386448482595137441378365090400523407755149407247469582087535288423302802159423737003167885961960390600054319443610260183680912856307595054309980626649687600856429775412506070348763361646248103644895303492024368529769832215620419927929290908407616389977599988437799185435326013532523080420583037408212976769663229857785314910477411863939113310627939384013083168523755813967672868269488066614967862802867633467086114203397712623523381146472688361294606997051847735673306394717964169772843336748159930515091625121311515056054094018097539810338328787531224972192631004783834325842378440062549330682330832955503130383901086460610758785839405806675450111537048234542041189797054256784274599007633422881848951509246856499145048088587854860681834435450283182549800519194524842236890996280189478391741176209543760825129855737553256461865357481888829079935083717796767739295522758217102424069677873704422128379608867753096833354376941442513560334469802646661968530912090913371215687392092411080208180032931159113045654359363131947013328096550203554987777850713451653876617163083979936373148264127467460858994043155304795589344165120880328177527526312504128516596820722935676763699929850297782318433672145291680040252138663964383778423055455844384082871951314208946198983305592095455902132395664791175184459517149785139398598740177366030886165154614458350478193258541003563665493062121599050474301973346493277769544613403385849190793247470973805782948117685336993448364609912981916189735641636409748903655522873815177606095723483164260614680386151097556075482392012990856546410535497235618519638223753987914838654612664833066182089924638127641563798863630670892168485015583879382093928554133954415109180005280102467584229451255683768305361455071806374328667626796587673365797908374088707950011971100757549126938283944285090704939182479758728581281348664338143046115399325157911936167920187150980838258736742116652477180041266935533337067772855477879015139415783801873440268600923441830869349569744834455941367140553597813506888028651769857011016226328391280207170145308871609096359077540888461065662451676247531217865621557455370252477120014420794018010563835815885336352197457666695878544240855203183690775516227038963015403644157255791084481496922878448765913428646906850639324595650374397076540492691600342151727761468469468585850814967804745614488843185704228222259038196821564475599709430661208130814085712267956321584805216082279065604885351229889870144602349704317299686444464848411944852224234721750597624328033904378006088267908769554757185323017265196184775056302079424275965410418234402939979124407882149993084992800562787074076748775549320990782399730873997147549426429969688813868034248402228954817151310156439519046283496824503506480622866147886608954963923100958014177282881633131385186165970245696445918205650985235744818034351398417805529626914606068653467658510490980446956050892530515792575580407798302609368106140924748819700431531763604567867772603202557152658611231919958497755960666399391139154200371156105516163729311554078684236879858054482319393838961613662040617187235314313562036751746740582045483052165738865074920003389489974017148302734626368487071874936569020772925929239095039566557427817447963575506929802632031428647706204657640270525851874283139323553908252931039476504037472355057075768614664757952786373287994657484390026354649966256849161336687543120400084237908253977539352112114109541594863422719749226841061899096238381351246504017182261215758730490350992281751031504507337275379364477127531995093481329945710482984463067474085143827992375057319314577987784534154867028118092431894075797590232455089112687754175651177236124897266901383400913118181235443034034703684906982444734073873462210728020936230799549810911015260968497577248912915556223782834972007035307866082305838219405984472036759152531210240741713684489577741099185345205458157761201974666631364275290672466400417710738230708180288496405483860961464591506284278425024770890040980419621837051361568321981799990875556196759238583142820899411831187674242925470190766089510707965798153400188513087591681411984059708995107907261875968806002038737101366047047133370201588330740016380740870089649946914736642668330628352054537111596162450943646753233035579623487890494717885177224966105378377043793460580883063625607155736466062479298007781000204306425696907202010770197361834315341729936544987273371763125180766487357567154660591749308372549992521129293228152718701112505677864648596598112320080384209196608392525633460131097409761596588845959845649457974168395625033083023278310751300098931336450715762696934471574144296973916812347203489929119072578463986452204595490783731895868998162018077076889598270510570852704494551869494090995111675283011575296995945881327081721028068955651559639525412484938832661507273037588140865098389429097871284427981483115728944561101929229025172012000707547694296158287372184634109823371428038563078204351732071485443347491978699635698384023054790268865936460028667739639726978515980293256210566360212427890602371448828991871881412553528928854923313509215433991124635194655393275791759764949937298425907143310397916732426840135540903696824836113925823291082741483875999029609228501253350037136164781476835124954389234872144583038742026233845820463286438565948264781066895588489847683871642270537989286789379088682168659321891445002855388288374757282262608726313393321235363737140206807291638272154415181150202614797043522654051724592483750537959339267335355502007956968769339274103863469468327647025072259764944451511230904489444132922140645401515230332972045880985445341426208755240631666000992675569008133864416770547886508796123596641789104568915693257284514412342606781432016410712354430776095933905658722176980627102297797286479952949924229780757751768073899196733565644734842432542059816500782984482785970708061296228851383659208763544729928588049458795149752741261408274955458328500504377067868196368771725255622283806640840231582770547557847949989987814124040036529795047508635323469604966530993452271057606913251574578581216044770980282319354629274281578358472541046335469439140540498561110081767750730020472948611475043947005417497062346884612692483344902701723722183203459102657333111932663119819411914430606128727757727861815151835192413178037200661656406914886289558033694584838265195367110076242040690452417165991042883325104795847722452912488313157064836674190203697424430109051771429591110549013364602733633801270598398774599409664864204516750329008839955086970181050364186693349679238983902074775431066903745652260329388810653841639261765250072867074602629943053592012964564233955226711140874775400080242270114448555081330294775512108036479329377711780869446522403100797535260655534162346428547378224477558029579037252342002184377424592610715295893201916128521946253077398407361771876909814719509271162349662940451596346353039016596652432953510153646052379590544025636036945153877092209687555270080699328173302587003607090890315238790838447476719495109750489108070666458892159763334600735459378410753512320461890729873465116366168853170219968066065623450212342173263727868630545820178416746611008130138136753573026957843723921239048734683754151017142596176972333973409708981188096222833429252378307884048809143934557427824233900816993322354010269998336167411500783008588635181936013630064807228035704562135100143710050243719745889922305454177565846270230751106743709818056173266067210825343828576841694562795575588704986460679244553039726581815652342871040055914051410638032407582831617695685753500635148019884742365633347860533491160813330773404766810868036067026542966761450216588421312721913581437864675894928173575847662005527509696799538550837048682465597934764234656783662446036331693006550238356836359803089373174062789750768028555954952528701490296192138896882353349711551532253935723982206937695692189644041924280759843258673036323536019779652861542831513314205128930695163194284606636589567007483877921932749563256808522937526605744953516056040514195660467268847670442066001053761803259815164381040182917548951776535765468353958407866167868571743704151820044912931277391910010432176192402313902683419840649320815299917636917297560318631527235710184055630742260201634710951015542727467005355883451689996978405970118368984832451016520715002853735656492165433917797266075825323117511183941814441935182092213518233760425709344084011123091337842744594974155621582451194614529887442889049779124254782684517363899764937416455411743831635179210602958210331964668186403561168935951170221388526859889016669837008304788271288906005483502448101157688809124332992190631263189874273919460218842095343816581565403981949120115672450399216998290243800034904391444465630761605710947261997085114237198263835485164154663154693830311536500681271745860447696789268460449146759015827619919612146121295702931182944253548145409931938283245046999500586018912752597376495316961575175622780675690737289523351098891042209643477099581021161936968273734091310260489472954811604367070854626725589869558138811335738650364157943302732443317844940471611277615991651910642078468539230176603290654318226886666634160302010621876118201565227301900493790080397071630195362546092200819322957383278216038135150206011559607099283001191422273135631591664778877791734541900025559542529941201036962811765580116521881272786204560049909728520582959735022105877876933877375313812979511341440815434365113866241282188452869313098117253683150828629501424963800548836541008579653919703324193308466266233104895661713778871301967400040597837535153901137543461728639729941555385678464707841497744803757030335263193386316117138546192941300918312977079191075750745911285982555667271065951812813363460662482415021891978798850393429169502487293960207545654138235365918307319085827387914404407215870977359254601947531209606482384984694213628471603692289834755160502380776745433975335249902002344275194152842057492782091962050944596061228607064831964773487783027306185899759098045299868036764208902506660860229332598172659656952057164566933371631173183461150327796606107315131473148938697363018094719194818574388955437271903254964382218431870326568662914732525343474938851546285347662935884382510174161007902857659151539880600627492396994594102359861749778402117465518470724110154351774877055380954020905444836511441146842440397799511685913189001558653932150856934409132647098653591222497466440330198705936884423615509054786746970398661999561693759923716386835705671479049341844406808067377171273835160400174648130814294297294288899029750754457154059253801999612735894757204598791406884317360041638649639071112890903498416523243694604431392902912907054208386378563923215541298184929980023905662358391363700570283698183296405585308905339790000380046211619248588013944590608971379409463758393270167325905011894963513420558936127517465229170112743271363358069496308080773894061625231778762873983082166396175537561653506252081361921270677011701464766349261350325473085421659971720877477325702018430467290679614060519867988278520716529498941066675233613900652988863613769543078737274707219957801330168954756828909626147009163218581223163801425448193813201721832080609342428842737854056227063035978753991041362260660116535598510546408061414166500318577029977961707132509992415993319124874278567458513809877451445826788492603530137419792253162505934563776375236812883045065906229056109440835961607462794114728390856608009901174616885261407065832481134765024256629525795352858285897354843679086885108674779097962653443167504444635776363509418930127832183318985276833289852743866413720765882010361309281133276010057526549214855225672531346302781558289505102151548309624961510358202068151313820312430629557284774568674174160402180651358225185764496549159590976169143996663479879181841517892859574620109445278299625746936295540069195097481509422683482959620477909271632517513275165997084498950811372338830294327096562355686000195972025338556425622949268927550283757643876198757921506371575287965332496407226953862398083450150844773551554138046749178515952656330624799500623374221798483993428078183235515896225718478488140689003808451271104876344501949137294970794687842258167733862011503407469152947942925102830339556910683818648150976987347117864874864827106930619272623529637164791800902970653986428304853910467029103770360260111940023399207476356726652854781636486963602403030245166203407281857339350228992202196631369424213058756740599368167107758482635172397776339777226881391464344267826538719340523685106857672146883177472868200493105932220851757425885613775581117536532422789550428568545340617522150306954328247905107169814096468612390429014846598360407884896008801836087872422653408346487673222196609716589724474252615147482046225796681942239525214949046872190855142554594695849776772121127800554651749373173268800257743382680459392166196420211387144045762698481710946494923793632609961226999999259953257151463724087236680083098581496077278000875574356246430300928378945676383416901843056869830919661391052657107413639632511192984497851642251421089064252971728543810571218148521901093063622620611534367657336596929106174020490645917207267885981708245875418630232788939502855019501064216461107291784245274767378422329543148279132066415559073788145352430195939887586605220785562408772532695089810425077674729319735641519138303052545393091246833571494150493630389934573832485788384862321831418934795535724567470120690872383210916266504311757587685367643699991874296313288143568227573142869928781749641115282262122299723099161014235278046266681927183264326114776355858396242700188885644290549397343855223933623952191022088309975597892487390465895527724535921948520993668330738436291872179881613713382247858347169016997740885933606346818575787335761642747918246982586506126066300839826166714209125677107943301983117252542269572362850481153386902125757056044007481180820272102203027847640330960089594499573660995133465964589177673967275730512020607916786239329341058373814737639741974582850825024222504828975108032486550197926601936552839517811154269193046628147048300390176925301873608369373693490900924461379061050425235945034725463264664029538331086869623728670778471676475082596165812244701897649105193272529960623105889064265577618455484728496424439373391030924784197684665862209734894728484563925415412869613597409782392372753216098595611991219006316286484925357889374544711282013918124789044889272791276033532047696761268846875216126110448839582911189771867476620734419770602603339772168087801729033315053204785672650968751512069378977000279077294185082331191705718598826267055231639318757963530604360612945944252174213823371094977942750444891866961836853456604674366254211897628760741732274616589954034480478545567433226202454322266575551180133860031594644287111609762758651335045485861523682268601976636721338096806715446452354350731330860690912319742235616142915443525552326934436311489132006913208740932694209697457285703860363739617055372164569451063648578023146364838847362421985413229813646739884425458610526087048974000797522687935067611280133203827257937301400576174208976892440876804247815976831609758961615614158207948388820842939502548962462408945780129824237958453440220988120449948745366864695656078169902188478493998234032025870959995811489897727154865527779733063214515998327451842534561611811514684153398337481584381298751453974713760460885567672880412646135027205728273581525090990510874780535182637528699756211711489664238978760286605848650248056177942113004767630123204428736221180576232734321525856709821795523016945878114082685528613582348556119052532105865943302842314033442736351151234816881959123190025159644577705659974901163175553892948246449724322347146223265688835476631889361755977809774917024172167116991620768608239559942464820800493447725328364053259025449808022982762545022790828207400688694113152300121634974329479072693923009375228262587128960957887577449951214127462585871680566775884873654243139880540335301605792138373034137281143381611337753917592118041859495116948383712002961547228850528805956338803163405390820137251745211041630340308010894141630774670093664883180146093016724571836832307790168679477286452674175460219014478623907260515438597741319459398127146586545176445939320882806645796054794976399326421546465015318123325445080700253421218581362091978007150217281388059916782209568952603337668756505823832149742844780416580854502929833972539491139950596137788283180718987016111838820271411243528285168318408189982230168099610402381654928504034068177217063925335785745546993477816645894961354992570859048838819934373407286723090739734115825193416053587867498655606438794111422795895764153164495818817202335312281906762699864672925759953748617110805667779109648786356387267450287620915962287980586988324374350732369757573292286012976806023732476733478198664158384933444610115101060022240499598513794640118110186750660922728393620476611588278817608411842219773334326017675689797569044172600257021552437616343433521177336499171167934433955681322768604860184773557587471892190852553571172107887071937373334895579442317583169675376289551835102780533352194666183985947236832344259488039410646203784261310616955036632216377955016374325499401820351403593805426909071643699287201569599541004762594591075344884847978798901739949856766762378100861486338711363438328761411324269551081137221765338933441567575342573342786023865912888251686091480333971175728660249985559978419613982334814086411535756838117239151407236664235068871562928709973858710821561036880843043921828455048026716347353326619346051631181464226984956364151175622914580576171410784175687524451534702479309273472962643633352508029673808123621095928036436564115173850538030871615273272828117112787118310308744732098896401896629774548245689191671700836875736048823833245668395415067060014930124907442181606614866132540426195212346170733834887592633535247561988899734160935392941815884430015931822015961156365621658477283596281380133307532813326919946932553802164543279321260598231816849575506727665300809093393193470387243658794624035743977182589677046604864903460776389556928311220198258510994427653582746942862803518591386042610139635504227591103727155425975442444727621417744307958409080908966660937619348921919019195932322997947842094336215839598708706401437677607892562237080225646449649819723365421603679894348647330382716279943610874110371924873554258228821868481293090339068536599859652168236820371415910441181093675354456809231465276701625928699326192271095895864011426151004685305418656095738577448097319221505338265669877868013056189298023752785401754242118992207560750658454725369620747722270153917534309873940066695967753267957630656186865200440585707361505650978160977205473045803944664612244982801356283964326980119860169762530452170299790812089166273508576197235207109548026644076780120848599165439266022224950426216824328798796581427641475128286743995490017682484110282886198497613731541060287907925003269123618278246121376341016770323666208156046691799851578182655173344665652006279275631282478844130614256378871680159287937575622452101225160692296498821902416034877085314687023290118730588992121625646864527569267225279700534387214907169233656832537062136942709767265905715507863563345057419267910846608200709132452699425490690543583418919464706897357614381731215774192835276313536946319282857682664498622981385886842209577534981691903967656770342053811070830229190296129371904952414093851501820348040115579770714414244400203723822281304532675800680150210080178965821100330576387861652666300981907496452785887073582161826309927607627763520892841556759316443009796181110752705759024368342379015853542007754851843627746813721314022156682133060573188293298804163734751017691108899709571579581218288493255659522204776579401410100805354894692792323240729089846217799487592766277906414916468326802618409030830558270351277601423340228102597265848176962238785528824149039152969119847962847597660831848252784468699506309147098292576869802014277012486946841970833051843924705948722162017803270393992725722548047184752144932654385264358071257424444406851902185318302737702420559861688123506260713027763414822173054888982800943062280941770554489318977414507801202029087328201981286582778362659911583149154636158719556066260762974214410737803182492048950816854547144860086517298494555176048778440049733143673879969568084342095262939667444380179775952939108269149924964553012750645409428554648228202124023640120452860198653783368620367315290537030053554871203690318361411973124849135350064230651994089604126322156709505304106686901711648990413202589988261770181098610776946736446261025623676534278221883033303064168687319546160328563733127575559961978945047094150259338507383339895899833948274053903401992984499788254984126998460124757691949643062697941048982891293108502835291777561918771682009007730661768444074526607781314569475610009594945663742919172438261133651023589997740328308465075927691305139096677740872754326551754950875040855224260091315734667061397045118823858474173771469052089969351728360518828585515349000195586305567917245286371620786889847077220326415378908370784672427186584772991700916541474490428328426287735516577438976065612382381883954222947324123984283329944945244400919313834302707093755595601023543742869040100105534677883483679795002741378011309147068652843877392830302339992748276456470899763869424022222058436943168568000455452263080610706111343107950998717082909014156116487704397199233919099772469915062359689570852262893819132004363548977533198993223385195856556200995671043605740879795118259416209638566335110181138146229411309516772570752715474872816160894173699668588627671226216472914682162004317408969358241880262959858028542794964433700613073446492527778927712627127719549747110160219324263299199041700547911387492606204476369054183694033096240493061461402993697897400672742756162026847006674857989004061834187781496153449624782523776047218679178326600742937766046396573442237137513821124495825608721944063730134215456178074873227423487789401764065135750048422721315964494351652250576824659303838012879227336671612460841674081540841573543272802852059768229147061377129950763447837964069117601898352742822124972702649308367119644844350782753509403029211564493775331273066039162812725014465588232483667972307017884823915323689051664194784962054463130662651503597889997710433347216416218373465512752555626053534203721439965154208773390887775624994390642608755951236408754250199035885340072791282071034610626795147683124162350302733784765989541610960193650245189965949092409494469406257583371298792308514344380418781847571423894818350151703251019970523062789594526244729563856323375979940144583276446209069419550311512073052219898322826999805819278781485299997185948050034499117021500204219729403970185502091119614457290165103889728072307620783884416048690002164103802140765402520607186361316800241854440113275925490483348940724994262073925667808157594339549737226103774752767728051175359654331412545274764652269744111610520573986066754174873660076415476740097894582525037695988324642430015492351073446103737725407355451433596202573112526759767456196320044742914739960187933726113096270368236768581435859330420605928619140326080756905775001109821221314742877786659178874302969640535842210346808119738555864507819920370139418669539085624420862373024447746927036117599474115283521469070392340480513276983460104617963888674038717567880186397992223854780737266459705071766303067175761583452575457899377471868633637008210369177015699649666471280553943252223919542190276396790919739856605644758598909243047130867707487217970788313171181703797561930385637083020794327292082904568934083520375834508621204271386436329072689571528365093726494944174922697154219987032530359250283634915292319774381068875691291327702426266791847222517923427748689421713491353132575070774469930014385926216483406233762426060407691803318955358699793726303129242966418413227989294622629033307610085226091407187670742231501220072773482318916935692786353255192031327079885285313266068338689855889014269235471933599768636700993493083692296894513655045075455057946559600602587899976386595569503287573273630095006072758111854954375137568523684466451423190648341494025885048465243310247790621510376287818204911361093413960527020248659447909736951827587081358209291288139696447665628967350856560096005173227645325050348410760127994422746163521815047693820878617535577357568361823309792680530763858874341503002560263992685039888844181274360177386675001143559508862408128777425840835278152087763853893064803782084848021058504303113071969842950876934087451235966188701957322539039964866131313343691239464385907760319197287114855249040033069826559775150266784150740851427092696444613779057278396742803656283512536928416773518072776389554276348357133942492365100012373708331496706965730383144611113267265218278293143719226984041917024574342064923947315805565641165118967475362016023778212923022512301356199758695593690048537687695705602899640901970008142069883262844172345003593831074058606914037712775288700589780692444664302937597791453009091075497014353706282361532782760551693610747362679886433480615400053096645827082436813434867210776163112257996125915273522569138678136921044474164638037996918409659936748580365843351610726439080989885080248657091541203728789530255097415489247054618226544670239708766635685042754932956568487904691783190787879171094379841737748628573111954252078876661812509533474489117338933141366568359571488370391847109103634560751326074521487386073271555187224121914364585872075587810677440341066422989050264107477717986242394972218226175603085995516014116901192068058091716682572460669525654285515855706477138525192461095358838147020805273388686830933870811719467622307070397946377815493885085614681905670261448439968041764477533717272007434530850469471603113351448375738482514652810599238717352163898069463300628926418988947582426491682890358019828577492028598736856556269747750467310759891769355833551807790838280009347843965843898779394410406720321637040493399251333187873220446311873964642935681794323923523091154316876140784383535868904145577269010384355254620497653342903331797673859938048951150954802473205750243049132425468466073434512540139785416936986669515807613523142451327449209197181827859022683378033307492471355639522372180780483939275336145432809017736703706325859771379996618059883054035091241084966152430413528156334548650767713688560168368574906537106705250879004384980637229997280076234070311066357608958367268677538623386522071188713789680105291022140231502274867953862213840171103545705188634403246388694187421569416403718821259995270965053620813661213744184271146863825754160768828741333746603024297469785518161883776550906449801908822583477155540165132750028450716720542679490085050064733911947628569136339095567940827779628454901891051150579985476268884258620976065480785966854653615692166371902964138936593461671200161604835058397602817840136166413264787760825157579429065071439549557345546324350228008383723469749082880116010980536258319749717828851226020615670439806142491887208367316051799360682878063132843546936318467478382563371359550199221700990265698145625868743297069804819672156211956308019130061254410602442829266232308085070131800481405975808902064258448549985952315405607226927976029718429219023105666224356220209050687456655973107130179226661979250960900166308803007913859989902005133925248983800919319946270238908120083859055351044653371698181816423673910382051026684888906169466299515277312514945029062533008938485461635399453041008876072103669790239857251318619860693865675192108137319389541841847277048253734643507321731069867628872746252707420454065167151241955049204917965185757475813063349670904893366104131975730448171866806369855255965613803333523105931162838080029722043577861601862570197414138792762386691533797913676222527431759200110469487908799562611679324020372570546250397110712514988667922804154628083385732009155763276288019747374214409735580568018613255546663522036153055149068923809473175137533038402404764049566926747801701610906681014182049182670854859653345882428341899874212497300841539330241959076394547475455544876986879383487424590873558522255989167049840241544983968693473796633276179923939765517769263759591906175133514349616715022211521497844327600323502214385182666477790110657488052223780252756345088228114688008214647077318363367747381857233846795096091789126948942046009454401827977881021618124975672973164896556385829791305762727835480094124708379236727312768646593813750109918370216417008401328819507785129239431120038243924854003326076795324304016643321649995773953454252260553250884039634036692955588752839838283972770355367920826552721256391593456271723488542578758892492563646423057438566527977146781615896460492006403278172690219377249186017139525443050874821938799634368064896513476210876072198467041269747252307980011897107613575952940066453125900684739266800808651333775046044183924332094834965970473927152341703031658063443981203408468355151753711075701927579892202903511588093786980490701131554133479781060057188811150231607915297324352690533227864950439148026821440091247003586731926661618359939865848569318829869349875289103510554804265220706934542379491239057757306725602520370142134582322808239638666788669740288091091350234571631522605298356548717920833938933754515613706356352368497149880165938188869171861093535319165419564164865257153893215010100924583786861659680607719847733566178376494169075909545115749464941601531536385833316450745473547279467507368506682401025657320840834766589494208166338172229739841355947296708362989916012555958398781697674660160905285882656368940779926796193881945455050819662075620538183978689482270486073561898172590965560862156988713094967367133599473824131958207383773594559854012323643283168968589882153076219862048886871432138723260623355942581426748338448834343594759833663985225143258399622120493855579262197355631061773173219970838382562568118485099741991689321626002781282856874234733712587361919650257581261130117544381346744910083827266857348627107244391856764804514728240425028446848788062330413252316884387419899642130946517423734173613676924536751280451864073011246373474840911524619430044830305427359248532983561708194591319947010309720999635967455243777062721623063202388515146941642896758881242267537500982042562470070167467760112100105451156529862424588860993264450956514697322185841715148316107970986723886892637028269445626112630298821016362265172053607638058537868868585251473792323688032391256418121829948128721332281551610994284679657054068999941697455746730030714207320406146300945599023126869341849818028083788259737426928578187108922346380797370059574247161988756527260167967850901505480519319883702448851572293316293741192870680461877133231737749246254576948495913763929613844123441243151625181385315799451964350100100791238410456861014232714376207194016624374457513700322468758659820889459111055046879938755565031314265336206310226450589958353883757035643491424108426631826709717598554241488394972959267342946004184950080446823790780411212916321645063875761203626973096550191265371322414193920640390371199115111655328492107719458174600422780278680533557961492368240548644120285239453649236688774039304406553073937276224656356803060606572047756348144469729554332198395949445983932412924874548150642570210535038070076482879518618400332387288283261481421211149417027975949026072465384699817279889043705970540392444088081417149418460896133608060806178588042390190166882475454431056830042503641974093666674294570339340380483398897324922855460220915162352775371681254938704379512770660282405530326072922149990596341326306790048604952560538152045396523703242750428038784142341891009993689792812019264998394459706964794653344955637711140145865996310184959040287617693369093760524389522540844381992863998900492433514447364729864139967183282658741634541943216760349317343711988768374878576432234096097765573229750974997301509592662164535536736821770039130579475979480191128562560505450150356792227717960743353096947474477771619999361627600111208648991061263608123572770036445339143410120751749120045357832908677295873516105450806020956153006935971595740454100382776100483221471267482611704820705128608603506113036800171188580281649394264980972848876233468057316160141397862310015377851488956856533056253018413156435542488003026436506024964419236042902081830772579783531918067430476330565837704808466524065959032297902815486393955815145116655353108824650431549294262287400397531905332443015861414526066227358977351904629924709328854742138865653172104414028287357541045228961705765533095683086333235382490324013270154790903829559335567146598143214408878783598164790760838139689438505013601084738800220825719259368466690156730019153996297717199785163781456847944468970157529726498148529734120047779186694661155210198787548633023694071537184791227600762539800191870862053508255208893954015649248429970832580399854521724583316617874918561746828957179953243428114035317214851173645414059137033866995902434135325547623225016472894921102713653451294576622002169877159935019530091064523662312310466099782957850403698503762188880606613657894989513775817324245496952357117035170401176788548611893448969648100885471402351806554437089639816421380125900275901913396847702781744200073042577649177416090950796752101415733718738880053265404808396466192294740907528374188401153769033720886373382748098879631271052386073961689226841128759611063266892316597730337945402081447079347151226516079572635913828083697159045104744372399227974398974317399263515393534261666435022909391499910526455401709168892971950778636529450458540827168911513782728002651974837768095903014056830233849465768332015645178347508122599912760542093642115596461912559953713549862867920719073762435602185479879216107052163484504104117887254388490934441802772451964111663205709238442080041304361635556459055148207075820444192211087173011955765333505622611493969397170263366901928753899598183639574780139848820141107297253801987794690582223133138859808669488525619749267610660515809213859004525684322215891125365240550857325925238957205287198297920547158794291408773170636444386307465572464165128913606705788829624479192391565381894659984273782032047041949379235673287565669384599329566520176759889892508162188035169823885614897176627721234523466733988190393039074360195549927041155283441142521614411404759160362500574302422971074389300446568040591116082717944356618298081807407597810105287553772116815855887444676031069795666141822103218015552337032081730351316992896589026332115944169029368631737312145456533669395932020329020814057627968653205157350076506157025686506518016808063977850960032657061273406083646824023116007643794656959523530002522161625622191412508389672675540596971350508971945700562933251352922515133587310414746949041041190128947456114344187324224031390189144552836011001160152193731264904915985626411391174850191276614037344674349742224359263227372531249634718855752319102553356162510623995879538809436702444060101727084215451318188837723552182965421351464072677842755608643220887503331478455365578446377296313520209027844074648989513124635657163312238132195389203339573308247918816510292644107154420092185911135221397573463042199898295954924676889988185312329261360061217140713038200568735464550535116937654391206327576476336098453510888658754560665467108933965131640507995654439050699231946371876429449384494595524064026306667119264967437871706443457195077593919175490320198169791241713101980544812974309772440064483398148958596507717990173584752146067229513921929344391568103818947305537416130478425642264485024113004631095565449278799677480903602056453040760208744078507319211507137410214119955897056457998445778572841572636723476107619475404184849312651716080246717495839205662173737720315836463887797472313159406072552738536279588216100116018991156529567664629862062659830379123276527508660731219345251333512059929025070687010340014801912374244689128247296980123432954749666423710758977666691452525827577929819119166525798447621229300472218190757057037971245901584859886432891800463324468187589054787054416745998035920898261603050791605286901082242977062731990820883716615922780651594463463747060846417274806317597711072412168910617625290113870643182117290432561677909745049370431755637270712773941329388687232841399912603552890586376975650517498773231888621589744508210001634001312664669046892138828186818467037516699262149222459106048188456510383104035178867725494040864911952837197817106830749856634703492710584380423720661687698762059744287548386280121509612353283750213704695106744164854752742554054702214016076753580804877879073677815116514542831745283562063950597721755228856022676637304828179224286586351404302804007665460473198213666801358241111280136108661875951057283677507746528629316371492665062483126540251877545791719777004284663442888908836906841974590276030196201954241783899788777256494039245624579457244216805705243314867643745422907869674814603271159690748276941375809167620334140344029432357883464036720043933581117986341208355091588546599576796410631918502895408487756091674952031314601036791829731728114562418160574970359365460046963443173664619043305210606414782410429888987887551947546702811602023155883904461261933081874873850746355936520141124955861832454681054640794234514202308159382011182181179070957983903751126412035601452099341953863293264857186784550227549271620335960575479019770429598863372332046463522234886130482693904287564135761331494539084527117617671385728566944920322440598032797370226754125159134115693387096487149466698347755132602546768166885027149614790748360537776312447930088850847441730498261094453708545786160684607149848400170105023193696895792938227092842729688211628662142191117313570601941291008280659197011010163503860222784767069397111657948422452141920177506891054857002193942256165048793212990285172159335277702977410104541059995408603851221544565537960757365346085793920512706862017191592924096255735488908184912117276749611936366867894220073326208068880040870941120100958691147677083041595658109470220546905346576019519101951631005849749528312563881858105178239781022062425384284922093480462906545641484976519252484316272044470926223602340237201214290100584329397155183995343258677539109524677403403382353030646097983089736227003598351802357501345770446707787697925273866781191353956503357556726905916177767963296390259536249518062981420482761553612254246413650329474373415524791305066955508741689673441295474624560923063263008982903458891927983083752615121095955471999201274510876558842091070553140957180721190926867685201910620506959762107054143303421118259200134935518847375325013476139657584993065651161980436789157492926411208995598283820927654484208279170500648589110017143030440888197312769829723913697531497636075995202345224373675303639853872569795587565840801387515100263764023544076185987691694205959627054425765748434110479684942226101683911885798243118611173352165224329104119327451073297755918827933604752894745695687814421698883148714117612216873954794229532608602823082744919043111473975932682966894627294894719831710282345578870725325465978598055957827544285142399446873727376027468638113989561333563461882115309933408746147381068514749057586323902138611319577562711750761376670676563326293569293754858854279419139420040948661465668532167319823380744713419896669768894691392652165901939790318506896671294174640906399100303405777387670976239620235814181010941310217252105003815716686393294591035366406975724363805361916310565850126752092305557331561290554228408405278055483002552295966775805851919071443077332766653821015134684001908510282489382525693816183672904862145118948266626486979270039191718574395352825835352371870743625726676460107024883177921608360413432818872286204733222868773315426866777570091372972035723899348882455403453326502318872914973018698168946280305019228264753138944726945673462554455794834864501402307951732972566548636742470979758422326554178955124376283322630841765258309196111586195639357815666829866943690422113791149071881859901464310286143096471805398608740766293413741631920738992678292243570645322972707068953277774363247186492371922813581917940752704157660789140561124785697731924760231912804889427839642090645299486293964708208173771084916466424048010684296629400375330361856251726012385157614439695425776692547162250714337457550308799727076140828769534164707667400295475004314621483305545486000487419860404271075317573234340680134866345896792763633664685389501508380796457908573861170502524972018330713873637319997374231285874773569127835150920689216709213010634555981117644706903567352061937628800701492748718660380929786998395401096610138451626167763700357119842203000734579524520629932332273147039247044689496464070045128600732918262455134279561150702389829223742365165276412577053083327285335330101318604163582026331259861799654797826538211929628446961335551421686605432474316505338199503009578608713416129352047494036024385691029243854661766107746257573985132391615676499496244978280465784991475884601464610041019654022461077926560599163460823898812176452084099515505588111051255086885338498661300007591964678380798728382980622129887041081350659107397631613410616267082827134431857929739021991508732276981269407028690813087655872285544781543558203775073915953416807032590297902026380755710883690097047881825651583528529136017192848950346711057228761629814695707360892244814655900125268441013411717477974836042612227152286277485612590340212162762880607851199488469079392501526615810846645637657296872896553931858074612139229339100822645874654476023829102103317394366238076944505704264226993601736539453386860729636885808350264335967606514028185001704667810785678771997985301019993919524118362139832079740340406337694856248506003971607295535141315705246222762696513111638544863486681815925016414069694549292744411778593740698453737563325958684204037442553247852917996998160107161990187494259589169651293086921500199024316372597486251431437047180818439751559611021737140395597492929855295860967022004357399967964452564136449988612864797768565938189079501011578439421783525447888978192962925216591562871340916639269884049267792126697776683998911176295335296011895978727167611808324590183640376753736434192237693591884854401179025744384088599650080912202845185324250297766996991227074728462655602386953208825680650235169726080463048665227619900866383627875642468979036878059913834380069222869786015826565144916919166457319353819155225266326495061498330147936494953284274582644299716736695912575380321563997402964614466155663033481553847514936780872470614246374393771595385974492358909510445411829934123284409062019201150875547966745739876527128945798705069870959548709029616675984745943134450682052165861369494570917917093774373603898845570665948664494885432812886358246951811909742476672758704540232172126890539914535679787096119901654683989034954065440798803930459064755149251771214616103751814115695846225762344089506871542237747757635710064012008487390244077811671450576908634243694355608848447757272727585294850674390383665940160075288463261002525570519275765162767457303147186825019441981592377478034295623987407740214102075908437029000982083648806283034716056494684272570425249084896877796167275123394555137438957865367723565988688892648041975889303852460616532015319889984479502556698904068721311878376772588345891232555684527899760370870445300918280926622848824168022001292239900248975363407552273126691189668396846751952376449186856579176830841142003096184601546081237678613372699027167549218410892611648197947840409088368893163871240210336134741637162120985926510253793951076786194603410301103254892861716470025214091773080467889520067875115500244372868140303618602273026353721328213507779958730013100878602391161921952871199334518100385178114157292177698296083170629389897981305685209013437272740971887006558426738317537100308973436524355287780521495557347792495169121628203578346345572313454422915908526188110811793375054382541612017263397335156748076151973797334600718213767320206656597580635217973108203774316631406094245962081283289459854769496328857245132788176454652767634534723578080448517767498093157236643999571170331298511097708944234213535696643237828108453691810295031427239542342239445616533588232997465329345133957722251188458570486544664802622480558542803291019898498612163538958022062837281566733528065999438906092540385529219514016713969800319662422727887782300974067362817102227913137633679752846683161027125050298043628446265613691117035846436185255872757733469791114513180054464054583241102522366151481205860397077465610914779560677493807217616772013388090845350745691818670960443908782096310444790274123305414667680092854401142158519478355600562571270882256794874460847244561577822418747752422982243822603354063894604080522848968537657994231155122023568611874360576862532238207479381779817996548282219807859723549285770074160393144378720654090883384494987899853898095333243521864678562033483609813876137487444735705670513829933029988617635434550413612039305369892635712582800328859304410988778211877303839898540985221139132866436946996007556812190679630109159428529537715049645429974693527467323062428390152998806498788408371780050369740112883535537813286323645527937082857289368586457120679145807179606078189110236481385494978760272899874070733401429267061745342077007302460795907822754838278760191692196134075027676170289107670233508790372384900231912037389976037088087690231000670528599242906111264783624396494293281338283605311983435259402439377545316637417353228647573495284022044188605350251515443020889092553954469292545411603773304068429117448490059709125217829259524937722421523188284642595675029179388245256820814023150230914329312370770625370789493605435884604113744235235651493190149556508376720148963512521782641113323856436731967705788957631187243525868192026482691795161496811694337787036912618547505282636109754241021842659572809500774363603115981492952254772495473489068495580841613732498377576535626854544143456886121937772839403265181035903768160179791119172483320762571149727506764203813444384307073336021781318680192201683019003692656859903533835938196315481896244721600708814815428821044613400320864168342746582737634354698965080166529511567512234429523269753778990402032409760340541639989384217128590033747409560760477485558736888251661407252486457573605065855290741012782940883053911922961234292484861250073589283273470581352984045536673057630430898967948480261289566790392874881307771388990698036671743562105515533870142991652195059290165130467554727979593485987380271339428143067519399639366723963197283628609135372874566443767464549765848785227684772775689052531780471842114093418203289879096086805693726848280052441916754953638902331258403920079555172867078267511632106218980274712450962244045366481891406608440851393422089441141870861991414911649952540039283314021437498441890261794023833402396500476868093591040044826272371606098354433082049477121327095517671715996927556801682075460904103236610309727055499332467638223804175826624315986546794399094682669544892164899893634917990286458507297179082396149880962766766035587033062809293747995560703341303868787525936886466694639160983927050105673690297808988639082257299282233883941498476070160753682340757496555520589884986186368576243257470828939722225347530591383243109263447741885080683241337482248955697439737932878091694744380910264722524681445851363379855594016880734484433744922468304647669013198311427310626304164922850593481615877398344222614794418600919465635696271941873683304578915485201197223517710139407633229919529124393019256082294221328449568208570622726696767537072972488074280686970203568204594620784148748515183388382594838520649305054784955287312369209264056109668211798643256235281736293973417011375795756724699757309178318471737469806744503300460294434856571269389088709245150721510264561105983834309614449906142159588849715732892321122056226564234205299325171266287023550788047450082604625287271798570379464801505633695137718856573281316356215318984502334334666623146684968549183561670103719428867998160031191407917483819322354581451776943767539149409274344855928572904838042179750820040136731704346928400038579445021773828416091639159787320614570406054062072434111861025112397416644580874616095103539790682050508838555596841181956154348192024191018450897245146425275548171705452185605910978373075262409616954064968003111895882195984486005514357988708869489315270400054225655811512590122081613273934758979890569974220351877578641737140791706835039108467139275061517198615079287617731119864767250022775068136016414251816500718911586698638691299109634958949135010746188591717021851297755008895032956111993067223059050736903536710389700155177985223717107987300539968759982294555471380705383805387475514094401626099169429711922976650884731996552294158890079487349349217383853994029750946826116187488859508971779118541101720292130230728984427574706925447060403353111848017784776042122473237015847788487668861111803835542825592289797152592854394595894252419755680652929683669548385197255264387764407446213082563706188519914777799380059866440897220945928200081882566819952495574067171399207853452901649921064146262641082622863805229315688232082577944836167655541688694540899261849388321153877810974817163664341532480192392801720335679500686468483986769239160185866219414963998408069588912546903218382079335684432347527252452817007551128535238535020247088264931558685805471169515651739657013530272216751979838194382531877809803233780048438308587736954361270823232257472599246669350752237612887427075662954954606472806203926634913651263426525813502702810591045037434946649472540953947641545265961545898987902460960187885609400811388667287038765867688964158350506897821311763985796339984915228376595074965584379222287899135631052924682489326836037250103426431658023966333813853274308466364752117289180761291906651954675229848234156753717267406050271885994410782689443742611471444305366697584564810321337271982733060141146388580777935015387344273678004179041632194607031210499572120556053186462095364937512207454693843743982916877822952302107833207785057898583211036985452720636766262910312658196094007097407440368025173194818113358563389741813210004483884428610324829765462846475975450577764979963994164525186801932542775663313239635710934615547614693201748496876708261561389801357592198685128587282284912305389404628553540183844781992105340188294558597877712132001694773950382495735417902524089286937847657428363709672725954150391689516306173588570638343088237320996807742155243281373198462029077276528320942907728074417136742157483364567754892005570619036586025772288457944582073552629303479240874331910443518239342241506138578221029622501190876984854297642224900073226468364033467296629935573111198692065930201354943366902399907849382887653715246133373563903989292844253214025868060772168248945737860459523203883650323333690387875946417439087153406674734653776021581620226623192039366132911013193278558333588575482974731440759214341333408313089502809524470427910206447138277557458965139063972681753708014494443140098306933760412907821262938885233417338969558294368197674589812336291431750146478721737278246429726773772558186150864500959903791600465241174860924480633589780439902595185816628555721353911626894728245683017772070917634760967352487429695421248116204098611223551268597339166117017609390348165304905791755230115762778381427469661299802387753040063433509344396938307004013038405748168240366734453409494167522594484337559718215863957405307651068547976665411244096409552518506253194081076302420490958861578793474129761230144397752978289815004153383221572050221330532422361872117625532497992448248234080701423306787085534432045657413192062014871829497624311939329585863690712901750822791343994700106428716186979845639643703458165663210710179802999313927046170914384020954253464991841956026013522319908277232593918269930757420601578654889314372019320621772764230368434341086597837071963865167914827687165581158745893799954636299441317042221031782959998754500244043411168340716659795022782572064879164376115730867431813641142045432308134354612964726635325064248380208980902057016759442002903584501525119000944246951305034082580119454868379755642420378619760493996160420783159166949629107177552233167231553562502228827681935518198557572697977536209288961466337957254640902162918695370351295893444837911221004572870661222416255783698305742026951055482451475571994427656870750119846754140624523380346962344067665302483995084722900290847908610200266934621863135344776119006992219114097767788372743371547390861815724332704928752615785262262511679437142241577904633131950142899395545314969998521024882546523465561017018643325407559292807225498454913872296059788554892033718422908519069304062243538865715363393036912731604575485789713378824165086582516370512444262731303091256286900929804869341115209147970939408965152437031816054381895586475732857241288200162241746931808918646722685784101133244138908666467212211841105119199854079652062766758982900279837321630796184096454650133443111492566171601530871647807697506660024578862711356754549535625072628040690859158411762301351823588306717186061075409993257921483330868440254894934183436183852112404639724246901346375728556532950773619577589181506048182242867079565701883623659966321965489274681447985848549808614168606262046954470956747517809232773669171660810974221275258361962717228949810184006458818995509273731817268418993269609745724533214867815128473040904253144805952268199795874182898818710681065244985828099616176754033220594509192340081541796755389617790646170812525195778326056614097353284988499278225774273533902510420917667912299107873772498562117881719004789118791768504735738973043531050544601659717912835159558667928381538073393877881958231170117736229639581976153241253509282509119955272172497294547064625220774450126246906050680698643407700376480594228175970187564120759229876310556501506495670296545020876890639068213762960738472100131427284612495105084934310832460723485834523643623451145466753544855491032361189839484838301975917672471795516935763686253694886080635595533855284513745164506713635397257866397725361372397465886868541507179773145271552086030668183424508249725893817870387631523561380432659869859798049440069976742868336972086583188180845543064521232248025645737250779180423321483831074210406588257828523272629298298767204483339011783671081284885094709967833917991676203710369928485917934796957288309013363986107488459491844877121565267663957253508649204363187157681431900108893776866672023851482773814068256521668152841677463199307405211719540205085673123025913199067220438609533856464212865820443388445025683277202162783529365185464434957591205875216171630002310978898073785889850909260674515705396134142980982981384767325459449505067481410242560490024046185556104002554112430738972632793294859310122000138867448634985370066521348855414188891151373282749356566352323048679583686499316768506535957585153257340408823530447195616011184060773336749092714519249930508246206206450119997646482233748655779755003202038771122999210788866771175074070103561695516222556464247832799515453272363788783192967393140810904763391024147389854855803438686977851708212562334591043808123430800869986800993928255739429856331915123198605621146211725711641989632268087190430339160187964344986709440370939281643775672806658651313404355190077073999841685200980798972005529444914671439428262555926718402860191215619731380114988423345768194348063029239881509063974547923359405763904360275925236726092362656143805780802568714993497580603577582182847113270190154348204161083678352987927341844892648011254656378334931359087863240971033057102099519954546461994749921228165985005079563224419961321257418777920615097708139076961424854567778031702713470512062628338797098160306754646418500457686320702659660994739578181658187926989861377437537632978743483211940718480191236000999698624779358240203717914625431908211527927948136342628659890182073043902747669554869635966204754667398954481142938371940726272244603063370962620891229135667455593083301661898337349511817399527096481624066096338429070795853392855819756953157649897451478587062280002355088909551219097526031803477195529745270019938644614166491262645677550847665281817673786827809380025069314244706030272807776558424666581934423695121836565444508862401186210532799932832776440372507609634284015031210370844231284125539954398015759641940293489244632187228709299683931299577972571968183337966340517375446530426185127939185170073309470056305770911624511917034949557252103744097381463944992005635324521724823602806269303818778790711987638174588424546850695411339892697410133109916579754710946154139682447805887160984479562481472188427569495338408372776405042956653222007437016031037825732947963904632919935741335552004384883326343597371799207588262466980481042996884906001843669625409908478790717151910383597539780542867448547960586193146681167532617763320348414085902300816234397562364251232413159552369681189630981867821040667231352917604452590730972918796017509153832620370054866530483543322412598702494657220182829651416467091536228277633153836539752761315580953458864495658593514801893544140864620307815028518114959138817940285656413286902069090343144304540893189582140993288819375190004136151302647892205444899314009801515174360166373595141037529187814782819224767545440750704705959869469147532175729265871752342660792759132825889439318725556882417981579783375978433826827570685566734135333669543920960175471409128784872988970135048767244844100961088032543561491410629337078031366697152275400945581554931816687440006349022853997070390215880152335545623608485275115809547094981225180766404119764902705769669123294507292721846666969656512790232541163480268526772121188706342375203236235744607471938246778247118687854947588477781531569063322342360839362257802781037851203016490440935478162000495416759611949064324920246040323212134658259071561523002730739369728100828913542801795771110720235927437002882820039034723225442509777286976480393446493416082674464572380597884778818581713566979065929901465902732228315692408221113287006365166485269044276967256398053967938625641640382048474806725494534420334853737567862648890851166089171084175651278284406545750654897063384898510775923659826666403867680521830500253142318549169716419166466579410037473996207654695716700831072832530025914825919129552682949933077701630046451168692462504669619169464157306545170191466554235957241254755510991704548048035682582618093299994279098765441967747715751675778381759807322587524470583578752895237590505173186866747907845573817057723785079121932036182770204870893740972212260441004914714549005063166172394231514741110678472236985577501609363460988755209323229824791953258741071688439714885807735970852062814213718241051305981152337417524923194126428031083736968579469602995674921498946777983015139421694413355522301630708951973617030669367461108281284138562651030048144192778208983476228738129236859073539850138674280074624291263027004475261035734438855259266139036546813858489328656571396177843781694389228660870741228103280950775706184292541168703627684168856070670313574885075552195994355534342380585515872024341454504557393075945864082195278515950762822839462833015856829113336379389260504204708212319261714884075213339722528741509163272397721190696831140767945689729216405315537707864332364397879964510104112691674722200408353558087228005462668126958769772402346108525809845701856380568813736380911565857792433655750187570740576931563334997026851711865659354285004635927840542761562677154556560653072688818828103456546638516794666914958546787448474627034946706097723864193849036824154663065517515556170343356746788499174046565718983887914239108500634152894437669757647165874919401879296922386872164531345276193827849716742763040769704135279659709545068552503670160650768372516264704322701906012267507170100513174456700972385431555501857099977536875011548299474739136056504585688956703002049644034660832326784399517168159190508404993733441346394646193278076633005232598948684796678890005040309859519775233007505525852334932799004431484007987839851658057272468530004214729515645637850329019917082245511994705945994890322812441787991933714007552391831690134468459183680537459550058311020358447362197697691648956429058789906711798183136869812017621464854310914465265526720020235256906501854635277591985081859841066761573794623726891527138217866034165952331554639878641104358614155239931956597646800566967575858683067533342092734310891610495855905448809603796342047869845447428524946710402349376948881366856428201925563592724223042502870582931599222845747632954512472185448491409333403864769576689642803289719226400230348418039738694768537999951538931348511530423742687129765600982314797320947073093815597887243047489410916403634030136417820331306657929808011304006789269303562380370998128750690460376027828048624343487067039488284798818426801098204602377780307410033171728559176629262613780057302394169554447697024803813708908249147149293839348331445394409488032811316359119761949606876998494937178638748431852463823046528131960487834882200962190888957185985077627881265013720550018661441564964896655548631802934126296010533628733761144973901577679839110210377614246059657787773122718056309681848604843095302048009330279044071091650571701736741323274431424037106691604644220176830275981983693104251960229427048143371632599941115187447269800056682837977093906713997868761578267345369212059807069818527980199049328490030022898841460941940368214966061266386987803237247220664278019394037992549350398326275731056810009743472020111116753744756333263717430346487060685439930995193465517437194580390230347310177591894774054152136463788444804648016552921653781198344181782141871067092534782080149055742094619548830088720275677061846166472233206384093311603076946500871542674262183849203588931671367570990119117645442358410192805919007249140562164555701693080457698608765132949467107807115375689344072438816725420650258646092209952289398218216440494550265419883887095594385137350209918967427563213465406439572998971947186165397764395550829339811040278815733215795199595817858931720820453715070173981788576454963825548434850205432909282539380160133871370738352471158980831156707785454476808373642652426951042136677938320227141185968376359136414606926582415659299586053320556088946743381643066747732153715092228772840971398916297133033577552788374468600083869129026258959162715568083193387406471343766123953372508976780045812745569408351346764080747259703033427776833732201838339669751061593571551889069403785661348615006660849083470444545673820959963716301239534678668168311871718480162040150646592862447573148697657227341785081671504993800936356320883660326178976146525542817716388856468642100601297839697215793230932471949297297305508112179328448796022245579556628554843789794274887478335123296148184880128789172728717460654030375248011844677467137573893249183487855578004458472802269233177279142474085570128748051970918874860565517356501027784828914410420469494458374083168066302662031176990319475541746993223098685030446775775944803940631937928022460669312090053905321502296787847445640128504179194186187697834739019127377123405410887663137850306514015921633881280617321018927306204006088758046403911973756793037110316202940657668765254063489176865787717226533355226140205222984613707093101142054321522411130498606559504817867818114767104214899867431846871871883115767066752443315987238981983578730360679564255677684887912980823218817786986822046464969081023174824697083725566045808537079931204025692968782217763040673817642347993831040962537337743022138847902005693270831068836105562359204324313103550410601548507202172283419266266359229871815378529998907182179677840488633830622138435424674405138682626180492210408475802170847241488900357162861017786925757079574199109923925393894953238297025204000021659688128466797756609746692447586930947442624203900670630066405838774329148129579793140132606519759277011210185198518794948351875596708684436531257724911252153492923979911804402708874718916358330795150821569335296053289846050500925467434152505621974545429085813534126654704476959696216309229661692827549526978454165923964448392175703673660088991213693861162513497129274431550471756944592882408374108079061555214338721970487903535316704424318738292596791546553377671195097529784016894322790384181599405303661250089074516477985285952668373334529199509541005045387811964369063899861804825952629006805475717550238396551317891511068260040282595357230408322878519484739963332670615293603677922213616741325969237031061248336959896964825972202366998262666659515666478270006647522019194195471466966633099808705012378006086849483904257810970905480695054488387145428093801965482538910126476521558066948680831516386892316631756822434042414177252344521773333061660842120509511801861507440206068477911668121909334517050857407652017022236023431987502005721401001469812053601820678822829049717002990642240055635062037139757087275491737154224165971773400060571121377593015506594345525094996160880336170725839155117726298442524106475841501328659422938317688917844240553763099388082804857000128592608718302556536939559339464279752695330950964806132622722881925963478696657196400009490833998109066963931337704195610698035755499640399548650688794112265500961441082685993502635884635310390145048927229848539482864030970756398862587063489359614163353085926637752737880874542788730180859116260900169042402676231472579072007901017870184225207711040355508002308380947016822240765632650776828321082986509244804189849459494433092107439196927171477688375587761311508388936416405202483039560172716225612478979414601250058024447276027527546961278997877339643040567978338600195774249162712363609875918587971091168570601400321209472178699954601468260462041721201636097403737356719849974991187082868395894189862393145482280621918386595329508410655364401521396848545578203454816667015931798720916446468577006467500702438382203646740592812821208067745497598804795607941317854405622692370086611772972682005725160449176003311185928404499260935984129574905529072545346299519753158614119027415872650126155555669619239746492845777097078603870711598863983625793984617961110747781384212311575786452760635532416834482846716099288465224952779641929563689445159228099845564539527630421892437171885246999525894220499405111172274643308918355779920112355196523340581351099899160799435329804832940136037122723651308102177879080115347116168449838496964123406133858692457679631365956839303550029548484503693120139459786854173965400438949519904320234064686048841120089531615192740282957363656429404240417570141344782998484656252187413528840115261678482837087580187146862379824565051707261251850059755811356810548051475050640950914952317538680353742170604725375737278382807353872920467646259235106618097933780321428755581877456209298023005106982236054731302912465117884643819673584131840209545421824295328548289550600000758235344992946044245436665148014896892572026879648993852838832655248729679879339471765190497345654014300691109535472040783868709455669756103103458660722748109112858770291009476305924495850909200061165552340764782889465646388366460318866850442648679728228165893949449029978266396650457591444130451397685168193132262505522116803318825219066421545070039195421859712153314275108615700903908679502830429127043290650685956505242882233234813431479998336350343891424657355094519469397711818362208615491519570569856798777916737778610851858393570105247426341406329777739783060403531166363140816717795179173914913912299701344262953918022660584798634966455507801090624222434413325974634748974878516961261241185039059715138850164573566510592392381732480556997220992604822562182212433439753708904703990297773901982463411126294611424491922165329854780746243261377019357783300125933863666103001994056837780780900260878954987476240067972830048323874659418714007008765757347361984182709399459714435791893102446559884593446145139239367511687218585239384504298139884899388915310045809746721460458138355562070308905715251516687113627750792316464484310221766572417851160699762159121622671972434647475154768757574065620550664170009956854955522181796123727239876195566141403616976290135030396194489574684555645440398223712831725267814439165108218926471643562126668838286567395044929134475621912706473803045515445088159431510044625844335724630738945649867106977479195457492111604536791356131901403779147620911697121069874037030141421510738559815949684234625978852551087732419308383016802133078352230056058319255307399317472845680622697638109130878181035929806415685722376750429977316207219938965319170554634777089170881057214715593165944033354798541926902798025568332846166016115480823666085930502057470852390287816818455490833417218575190321331238371347203175686738464985253710325258678718337897551196770795604422734355777007000556753274470143794833278775753555474573917526874973384890476913607889363656139396923657213454965539174115203759981727238016610293554625120903135244396161397799374599347698442949635106829736306309676627949390025688631790399634837861909141690212196202963858806987534126035062500715129080617381210439005312321964520160910781916796037337004362631944252114071069552645517700615683701485415623950375443412080366943858223714197350970278443701042399940510532508914464738745373455083702317062791551003756513663163637781730711208440594792554456749693498587022566031826789918848781597005025129237117567992358016186411828111495353071780485821486629447140763646977395437865214679704390423726957071611362224006811917242818573257324354030458562088196344053792286431984574735462999270796050611480874046988707835918110469044337145153630957361155178571645639732640478052757807811253229641408738514067456125420534391136485276088095909069145102514808685171776509486415414697326830465899965967605789749668982592515398294874493201605668685991509184731452627162623983713056101125164364492617586555091761180152952362459415853428856234226845519703538347111057134479440800993844569372454378651165063926872190319782985390444385722054441139784643737078671197708127848356586525464709007039312104744690891063761774795708472698274595912632632018499645155116190577112693568731440768022079895940333380120408360597829119820482767561949231228967558544629292769286550900761015340337004570302559524703771410523940176717235714701231403929362162879521500859088969540836188373268764422595411562303043031427555898312377473191211775246013525157883113269910371837644423429362179079581137028822979439836432310349481335537264421327611997855671062560598394768049458915215733042328165264052215646543449501266801045862895260104862400798514463137811582017669619213184367297971547794168766318364252207704237279350874634429363473611688451747556286796922376444025543966311265133128679878221306855874214443381942815767885809625501983521364403298580035864697866246159261666846405636346925214832281630704725222207182724445949791163840442778576291494578025707370001608109143999660457316424433786640689405983214440509903140469070006447285510515129009416911157516267851315217120057635120277743396255167622138028673919343535437671423735353381741470391037339338934709073519734287784743298413721732869743109706564959892048786349078786733186350702051226893819013645959059730218125027268588870890437482388998488079158412424502226538995252050205869108949574250787570580842095446217920427902342147098967097103664156788339326114226688218061242706878036107266780751612920542887190731679463816726825059668191828666524643381161021370810231411654721098008939152797803448519465942128296190719724237924311349095237184870345751007647171437705099972911952588336106305303298098253098004130784366852682354914615620943694642561702242377745443150539547350703870659817909487428907674179980230019940060371479653135580340248799100874030502864229016618728377119117402375632813621814414949515391683261905002075498304924347890694380869999464180901807528844225430202062627112983727686008753633599969416603164777283911025938429682510083112442313221594614875041856278983152943970335500216006042964693647383264145563772090754107744719255706585742640366605288056660620109849371503030873572094530100581361476716755417803103231107741309128683595507938473603295613853745178119749706624797845620553543602008865925336303579148084462287255869282858586710762330591964971492360801713721094749428789642424056550261306566472057022642427861881245238790314076866709627673502792319173714532290631968238217819057479893640388886025503358331695587521904926066938322709905881888157576491104906158853659576988258116256254055186774527511494197583045253407954066926057800822829556545306959883772832615820387886229495745055684564782843560948487260507804765720721413793486455752284906668365788809802098197544266622420177589647157300990465650906544223347355158620807055987469051890171591210454572811753507387418640229152448218752244598051723938924379597354793663624705325638007835483700484192831637775044329996727324661098141149794347210022645498717782717374395545993986624657001922149555994538861656882616335852441253954638174839942149080960679425039187516936259941163744016174461168521724124991304836851521480932690593735894158355749260691578588839789051519836088239132104946926265903597883794478166579411662464448663473547927462517459921338163254307423767130381997488310096020529709191830664489583655062043109582561065545419591516509525611372412955339509409155608419378189677666685969853199690389286784424480877775299211987401003210375217809320869739159801567607824411779834897139243868013318299736288673722150884365303328181748763186616832684970511854666443023824367188735280720376381423032238164269203372760461551211179185650724797329396263866308395638375493073098284391338990030957136226919357923788944460995520923903411365898860427765551137304275960722559563759502116470284716655217380826686257645743479908801605375728749021674879785737803999272535347630568528463334375589889134845532080853532798360131031438118177751241304894231458209681445984825013877146074924640177536218676665346343588259539350731935304123384738023361635417321247426883102149886545302180160051077632224859866417798330796521946179844781111222030228108934450537408541956336103267478562022472386057651598756894182573200801476803178386122192223035997791247402870853470548119294840609608917749500132236338407389009537503347928732936768411288616849635166283245413964499071002989215262734812209586109043955022557969816834178924853539352668385016954529137786080242008625083325280741807456307446308653331368020656642835972504988866239039525448164660721626457824923495707617989502780732375495786066027335768194564393638864853311231357445924824877434860810593960144680018506111428642242170748962240191611246986685793780730590103888951839699900644739167722916728021325507233884282607023323532520717736259995509997021657135641515695314627416782593650842158285908638363382246726438106022474078197064424256241884715761135735197299281226864427089122552604166326654458049955193845001507999292826473645720255692849974465352169001825385144089742396775425006478284371659780643832670070476663754669822317058125435660977463638577670894761186190684187271155090270575120873509877533153021273029423246168512289647979116386340480410592271022910381047447744953608753447115316352941248069690473244643649634530937307091839733831385186842321819430780251101911966591217988393614090049364143804263529546073948473866195751027616684868285284949290452638121346507878822291107941055255851574304273412314481393029185095560543880805706170939961222365327907459996797068860334716139571889198452088759461166193148345950703150623415553909700273466930605410618444804659287268730370085819438507169777357775503761446045883826212281301712885547295257045487923581874539780312303161828924937201396841249103168093620898195830037344999613163453662483002804660366987870370089326804596461340216541822188730535888522554417077953487314468175095574380551059559644665342227108663853382504407040969897024138547070505647687473847455224909129946499454548335293721105961531556053361893170693317783031750323755398537333152256996322279618454162389202354779623341623145568236062951833714356186768291091538540150316873659400829282861302975242760642304825194825818189099393093335004906124916451319161508098012474997077183848866519818964918646266653656610535623265544062728326381953068263474571055770633988448333929324642823234200705637511717052133116434401597478855305959266873678250092050261547678238519834231020177452675854008671228021825771733226961292677329849014101922029365448737659680878397323567391030268377457426771501369416107588554055535582154797963998552139866196218456810362632813948585530636033299330896260071431919082553360885907782507222265026605555143747331300978039406089733288629821999798855010137823481532973186246323115998510635310491632491046888814642036059146296436260909490637740165950156472620485608226349321374370470845779046437671226316147250538795931617853625824074745403395408477677779395436942351121678209248171450876157505641027568641553016774254983675405228192638894755383712667808238490094122957554026503428011188814971709518292592428246431884194537214822217301855724894658354208387972570450011280309632479814416152788338642796257457842795708403380461738598458083735665817450790155143170823014454169286359132064329682447289775325864683958598192214794894656731510890912530986518250280171135622206965202871483790172097684119982066773221739961540688572657510897737758492251284718828533230061432728040678256046118414250069832470920819869577878167673782692606917599738243189039288102389387259119661679094275707154639051493651867542290346701783995390283557275415432478241113308403972486640238869849270591225384699852360270285489056179758099131174976571328474625102261456233783472705158397504472284448339897248665441617409360396942861873225529300917711749352304152451496464851387617011974994945163182032388226391599257919865696537154531297803776217028710365721382064471371122823955971807749052027329960966947527423396304143437091808821257788059479227452232334199844196495960499418603211220677460432649990637649030890603154792006080030333451854847238798262007821831918732355389798677923034841019723896585705560424787932799999180056218588714214300254001690415312924514485508525160850325069496938176184760764567543906341935351573299130287611409035482569215940560085997790561159838211519270073984949870367115984355010390327969250743600856451434457536586675588413213600703667965905871487972084228855946101413391222994904795504894085692185173982830235748158440044863917427250077823865330185134051001907347792756737659475949105664443760077671888127280476110892749036892850112015472494966763390185128044323521151514054425542851767016320839827679887712908591942130610169627676035422869741076967004646326117681986138451786569286742698173363080510700021181438811748768731873217284541970265186990636024105769868194561592695360415985648059097863021893137630405635656739682881018141314793837700706398463552625926144385450868751223203288695801659156021464497575070701919802287412237440259728892124592062199320406847708035641242436008328576542897506239290774901158651682569988951627278607943290140161596776073458636200020257974439544539614408770587693605234660486639557866607947887132524701651242855871682835469175923160224444934297437019791742512664245417585998144314915797662209762027999803885320718038308254381950248610991026317356689991268950898786681953004436894591561393121778416905020374393821632515105646892854662050689994306901537100332099465414517537497688432032682942523338752093703933230194828522784880890210136905626974679542587363778972543905820425657490314430253310295705460153037295138202432396346468288614062527925941607840974792258211685601261875704540234864987247650315198277288596709564450125358697779561758365921316544717764886956907677051927587185802208035877396395926878584759292395707788929102542083140633270945002391091505878667902973365622256325484067455611043962146311241220525846509695745117310396678738184538607156659540449050287729424454454317556969876039766809877625843691203282828379817797709997880189156050001809640115880690710366845335444275103562758086038449526163845202429100733915362467683033758727851498884055765192711912582777193570305968007191993877329308581802531040002296812475460699066209032916317702563563678555519179870554060035765927323667732523175015999872307467014077832662819750792594427593867333612557749198997503393033956497606867966840189500455799602433679886437067034724273658806162844357284850071043569788412032089966566376291011379032542214952496351955777791160262075982732555966894434573442081463997156827353688111912351908628510754635471703721940934219366720515560045048026052327763899853478788026952666647445044469030606088774813291171117664358827382118620436572030870919416875025522171746246513218665564351949491279779273609021992415769526431237351490460349982446217711589795905471201450290946705257236850468774675013331234629782539754674183859122550414693852553584445508924519181037999838970306477583137144153660262928347003973356422680892116029881277594177126815735699338965167752350712122242979249533658471311827962683530810625798978931949222153236135255461233251950054683483531010579137594246381005492901571207180377236540893593105615908330407358191435056045334007205714446686482714183639573744080945137645624151412955621751762642291045484410438033156216037233736993890457599751768369711418603824510603626752023779559464743884277452570417845183051969955255316612838014315392333934464656746503089204420072365247510607521929869544499521584356727264953183587418957675595503127413166508130868753846668356480864208756530979121147069474384916876707741154663309449491804363993426497987988024764331526324505855106897361613127272016118856568113973824323114709390404260700904779164437561312570395349784912278562839813397123929122313245453225479451217900261035239934734435079795615290685963998463210191532388045021390398367057678390843700126202649631740380718313065677733845203700463546571352794466733625918365620100814129347608111804962959244966093160787471898278672587849457052333105504726084467508401482218354973287519455618038631614300029876070125705058412890160256213005870019560419064829799997099231574997243836752335674954141220994647423692322997803095241870066766179470111293051515565147811092462132897872626449329683214465850865477743731386090233757066092164059081114387680147927089500440880268043981558842085968568142153461420202542506818844501019201918447457798368962314639190520361376801452472428345144446287158827569806309523859734013091334816086051008731845878870901187476166092895304027267118459845705401603261429485080410704894544153637170282709676692754713352562763498097987044973333701971499527610300954433183772653891717600843357587651611426485613813702444530260351954381820888710976068132648281366954197257868493344612822543443865617831953054561553772086990825879381842207765617711539876290780782705346133446374127361846636334406884941039273155153548172863720329578121123350787886344223583152577248398457193196757013977527817344408470463050707189981008108183837114823306597810888770127772701361153930001296021232208423397810662652651291949534715283333017912746507279138597677127115079865811732783757978565621745004961967193687812644959360192382325056429744483359910990488257326398526322530783367732680394281533495050375604940479887895186292125781327206789983810516942281463939967117092322779949146808649640645765049947766394936526774983109509237876156569352042441215795986825502160182032147701645532012452776329653518245694605575907237795734049322404609213064967206759653215648166148342174759604831604229227086363322475479684748462825763483683722523883822146869264506814223344539998856956640106676390549278949687716791330554518472687271232641112514677731480208477522539995067168296166674125344970647433041017179236146798677373921749341693750270608365761480550334051587029665734163186211026175022625581323809779311327190526675696907316767297863681677294809795394021585899129260826853222085744967811404204154575554080233230903577911221345405845900926592695872263978007728646598512719683183439855277473853538803293315518159684177486335208836434743079072592783119430838033133001352334025418198633625097360297127110463355327415391299434992996272187938645099243529079482660740124427916045775033893140611414310002150250954646148329759189056304066766960404018237681431826383246785755874285391231385554376419114266704156048505451109047517473674641174103864150083761811944272209736371289295210752459742306016641705935051397897301959215453024436101233168912281378118687514467788300659166857003633268660981732889458510334630651467102978660998428293503396935714859106434141784389506683024760019840762705094627624386835284285015483252710113974098493697608689126199209292785550923122788693061333033394878696310571477508666598163476886551474751554252465988772456945874823883025137817257049296879832816816723668932777127374997143817104045848673433311781648319193208128128094917237465676087609097825595104898632265466208851665719622028425726116570763224990879754357429286069768383538934088578762398107689352788529389000434728758396121650256927311274304575433047659169486912991142614580822773346435609769768524492338305655791334718085903254646497817840728029287750484539949838273869921464138831755743304345005644778434417027530894857863103809856940117435692452077533695353514470657015213749582380101452759344840948659481091886271516376803429167065005985838582585207141834907338729608670146828347621765066876520046243566373148219690636055793482154238639381808579189449629015645152914724164694471084390811903436526070371598293624128473605551319828216964355039442286027408651336584656727693194323737278863346707126902579315562710211326339489289553056480865835769480707176690930358998481318102403448429031649292551764135705375561568307558648637697307556502643945536297394392391740380796634367720486769788105583315380271898624567854115431390131783026725505313031566933916458579036664667847056401567134168403097420500767839058083269669260812147437134600196639636824178644441520796292848947902370836748469176738084692014546160818024828428621708776774216907216761301073505563500289116843884000249875063535354255413429243641465706039918031531564168100983587392107101005927585345543376843739697758389269302323021662876597724551060924763332626860614178569041565018340484972782830471469161481124188957965328393631285210424120143147044118299847844581169627360220451254243356325307369478207735005081154451200509654024398277380822476697241433527480279898325496825703511027737100283744900719785716628085408134084213537238956198378579757438607024120752154730494959863794874977745330276586009738391926224917642470978239494659141822941078858321541739046861588650433035906282401237022817641750394927486333575970932563027843802449365302648118232403422379609209147067290185771649498148579990227192689738361508334718009682854046835809644906925387942390027791778122237696165009594835820317724866459257566804965804047912810839193166288443353262961710340888406751831467698648349110922402212421010865078636516677253590265884336056022065160401635885787193864454657798017536812705654685826669026140681085052232402153439836708002030967551690222258537222473873981369556891834753475273594609744561734110015854252604797143152202679416346838510204487840377711370013607492916783201860716972532794103317255311475982952809511386007209349592683043384281854180968650430336748926904953043591774105160701850147597921294971760841587969924760921116777128728086287804293938521512966844869510355097269061234350028465413248678921845154917167313911557626739742174483322861850122236601353111104038412571756515327025965552269344337682132498991650765538818434270184674378313853120786298098281842177350734702951625275572333040195482750787556861104907735496380438411414918277589279354631835377956395117415246044477975035443658821997247487811890906909923269006014268648501728871276045552761186515869015602500855063172490077182926595543624812556027660494966773420025052500421635474827931719767048232036417107433434418121025985305455705637017110996507149411997677571869781689874792185315208349347689148852432899314266551496487717428238894175225989768582370308573975032666371858616824099800871590822843232181486905252804883497382904882479567914946026633159966117911078592553492808131077750253999487428332672484799497832596535452352457973821699100268178741976434284166092145642166231907980727338772351303522237249399846380741001716823989509804953558778248493764443192680548247714918995394530868046986504041548391823494467848123543699455514042868744827443364803565224779781995952820130284639935184966603477244383250959179437007113581934487616320267962146358646691841416062167852832715727713800185776319514378917930567231573546976013824778443044478011864879833745404729782344119011773588715005747733010794068542876232124585781949852215275356209740401225136804073400277816370233813302525649904197160970500362574530022175388573597199849549958182933009836670965173978443824611766550841568366509267431212749285093732052912863466836822039289121333320450827148538723671016137688193287145979422445638582820713840857011846417408479893820020689706732106531459172199869028122635224366149562273840393136656302433117402871697448431555295262522203755009017979669325974494380613770786258254265431734123051519794450742960114871272045396510410797007087736640410002850371980427853941229708637998982489499730293538701197681047225983426139016447326577591200620766894779655981819327966251770532951986560578736596473277470471817142187893580360641344249087746630819994924345790951022571076817523507718476159380483054109161983129086106326508812587491869291385349030374625466725392582217415149184693179268506154028842837937892690591499211067312027356739899314644178382527710681287149085097264827709031027460416495486044094354673485416082222675147844184513718509676420427076792987356284762493172310100747282855078404097864164996444247439074462586957654043324378026999649147999591200472710797201217208267725238500919450293283675608428915708979094582501748994454981122676591590659586352308405022797936815235191083783063200648905528951274442372155084132598400048658228779773899824048499660225498851945641825250557721915474040408429816588002878426957073866297047979717267710057282960179157058607295572300456137125334735986179028780945303838846210034269363963026995863913273368955927906163620778794246861741694990824063839428614634672457704504078028895351536083572356469152896593714388565415955502256899727751994231779974645755600791652299706316809220191779081227656785266467612948361516712125114231361006955248017998398467324136553735852962919620784933797795768336850503645200082511041359108118658794979058148532065269264617614024652685142691637734590043655333447165521016110728987999379948983080719766301360876648004064594616024673189300861792021476458616820957588414503247495106987659455326832350426841061957088609594678959856099814441504350465614946460063715091263626857525920595358354795827424390418080512083520887809934136473145371228478616040887103024180784747301155683334843336042374611636491252287482131749891282685480992514835370723131033311146662979273394177176722030742579169236662724699202178819463673069773237947438945548545116691493816070540418579226445829800639847811578464673476358975183066755596225567978908369380961834377820819686826852803248382498798761130989128400177274668002188014693888832065553276573255568617366506813476527563983026343028112775976200253907570809330676392784676306295889658891229494678092501624007708591470022227095535791866585388153207230566584938625319317920955801433908836560382709053439577745852985863497212684608713434207761259208162309280870963185889832335028138411602166688145542842533084220332676521238965946303774580003085283490313999562184638429876340301695082962967342619247132002524709065580425303275011633951685766277606363354813096649892867751886986604600335079138161965755689203859464286832952790198942560080329146457192598543737172499913906358023468048108279234814972250069867308752228425390510454758347136207034976687743658235711506922744082323702332653434663067804889684752230922977259537172510268607447119733028125935217686852559752982090745911345987272352101550128875863766559776997478613055253713136218443802499904022522819496613428959985885038324627447279111789420353638846548790809048860943308564371111487518327530735367133567009518339864077693939776650045070262682488088115390870065252826889617943374982504603310911299576450057899583590983554942208593388119668863164117251650024567240270660875077188240694263009290450033950752398415473175594393465798077110577553063103408347704546445097734053510936307451590443840337107044801309200837497351640346949546225469863335620483816578774624538261906100079889852241124084484020742202250005109048745896591355187444771410943139419537215332101916355731119303781277588592703455407327827710807892686849583472420012819639758855139546929045202642921659172770453002941685070681009853805598956820567215244403985949577832797551336130819728058519693867027078076160533555763045538507028343615226080867089688456769278909815853517951817623099446673819102187386895057150398062097025131562692036592778145208914520530508685777569024251375033088897164318990574072882278762795366229292847859736784123410453714479068674270378634493756855055213550104685478157087217281012041226919144360911834544802961415811034614951780281531731357112619980276308535468805944921874504054569789288896011035610024029426085404051772950464072213438624541290152653771229338381525965768277039222583016207280540976229676085169078001056323143858589586441001797422659766790105864617151105331876851878336926766569547622170337976989700407540870390154357530454732143769805523631002091717088240277836588753648859042282392110216924441352836292736798626146341330732560459124992896497888297049804513360306934596866422185141931219050856679335532203167129698526336236935668921069773567772920190422846423217849305006428562283618101361067909416136433086085728193038509699656793625347206973987358067262753529003327890064734036034258656511923249927362562166264299502330766950028288978612564350383232887522564562244403383302888153485983510657098163318659414239085701097826045480130152804102671030388902321389072013079188979634106271473992981040945135996040246038059604804750344246978011371106040947117188465710546988760741347085712781309057335508901094456720089335550586665607644375825755642368368534681207868137961498552950288465721494733918906685167271973758169908040669445207854360867250660960409006141665282490488451572076766219214501650650402417379123906374283744178746502251379052108468144180843595040487280151049671657357756954164771146666235475223006694910998860687325563906260287565785812117352585360861825766243691386743332105764917144759742127890546379833796471176799284408011834327051587208921692076930388151397736060651742060410779259998696802930583509787215042770221109734826795555561939002130182893600491671534574635405793250040472723117429573497073795271169737552845143779834864827914820407375416807035570086259697121315817598943527740247259770391136847715673395688235239742637535165901780417177670285315130701403677760616402889072114129696322256448492637845103646710394970348915427750615009661725833177617175183818593756533688674673732932887569280269902173573096098081965317984779724762325746169994819401618921810451990223287421256064213112408011238348856798773165998641965715389585026269248296217864417584055997519641342462678370875786359567719120859939772435192311973337618534127813312040509648466626667725435558987756927035077833653549907807821929280818874141129987222030736578113755644427067295589983299907300435934767694738681726074664310242428933214387467914153780457343781157643277055129817227477103655567670058845836131949847583613857466524765231013674028112639102375555941156342895756440102771478418503302016200096419849510402672654377261406473457454881635122024141917870819626190639082056925507690797979851735821604689752195681255089625371300400422438431587691249432067755750667622355642500353928296125014237949388181866008389201432605920968669260322889872919624813231112642351755027498446381418948613533731808162592824460947405250165718033692627474792379470805932555388146985449494357934952051360775718334157068833877758037801274557416538091916683986946125491962194582407017468403503207847272940845053514540020226223776905980067549415804004619400923961256732071714560600021064196805280484192321098358308101877016785270307637803060760935295713571952425590239256384542543747045464631343856344327524120523870138072219782546595276437087488988937776865288896427770810329646447946172216613236918172191145107367436421994454103336900510248216465873563125577643608107098652244334224128561091028090281548354001595234872748490272211766468372466274438911841667561492570452920238619559774126053800329856907960708125065091639452028360461750305695836379144059485725278256133802355815341123877519736521210262468486182614989563999713632078909605222891830649500377933147371411722097482389925295268529419633382666102300973043237022657543315477132431437899700063425315709934312000121641372995959658218835503018404806676482661508378515629781433252857932783789955782555282631362227067577708026358841732515357062611918833980065388179634915477846326994433003570586308572492891952010379189724817505751909486755189420165932989538489798716118814209005910889436522358303931628450771082251616990847207438617935999360900552250843522419836585153790243819981184777686131087344479065106358092970639913603504945417151970637303552688038390519093327029477242568551762153019478997299341302862460538584134023230716681414819853041993731224253384919647199606621359022740535256386355592319958777648903304478045488252626054282974815829607885075992619714454106892813255629366897580322800722538682989814228725140879987941122666220546324414733177093807393945525291506227964411385552985373551045050708426659190735046384672613709070479511543061783665316222509724519977884077974742491131519530997983455046028442653681828578897547581299967333222195560065232298135915261117720294480461863259911526341869540387524660873476072058072442822688971667733409086202975844916923400214340487446947659165520677882006161166292330781174036433248406673530387599143183874567093458473559589395450347753197629624684339904335878521676318234677617930877338719168163172636543970441186010868130068349360530881819381278441545711704700326217040441048519568335860788252902064434534396123809599465686148291666388947548836594402070058400977202388337230236525687031321114112640394507804984476089122441811446283107929295994002571261709782815516018829940170276646133104335439255003409463049722252665985970171916871102500703290807973737915819758085884803822956426955157460407003418007808373205687388836210020214830200181272692479106411252147190343063612258105622265057462775305636395480994307837045005965542995696905391689330626058439591463842093354074238878885522755735115062597554308197055842822298545823914042165923001548131597647028279708778042054695308142473527118208542465903333547839986259529729423911986131311421359968111321863245892749305368519534767976574042487148771303362321732472951688260649710389412089468652550783745207108851528637770035308864970273030369385847445019910199512071276258756932391015664359111097179825522613844094151351601559648384023942231632846516833442289964475031589862432007399460923357952490546456116359862811847364296945545134471140219440956104481469939413467566838681096601274352110547974196562959712841007482651830484189539057201546821361673626004378281771420053967708734584499941699830237724095820261017139886792770801329530585348194911067143606884697426644180938982781274652567598513918209858704249133576992012139273884925385803764529716790204943752261307071455341177611740923056350604909355964762663674844270450722814268281823926951173929382080119456086636511155462488156808633696580245062875976909758825654429243660371358857901433999610786389241074422689493448825653791628575036668420697922635772641017755124979964608710986196480556549066021766441337434585654909887534169928020799222862541322909371003655866730992630256792742603117800049522402276038283815788370076775920070112649050214193508320830335546565235498752743167842884164137440001699689125581842071705246224107135242754352388988579308724483084363908118094596124618539803573136205916429675074225702366685689498910272033037381680902478094955302512196700346516335588546388043771008949157568959303759886479079069159972822055505739037654031119407132415792725717786027762494311606962874706764422428362441833883981929995812975808676056566743295860527108651934598902026134111670772983829056742473391501078294638296537901422552134082151391905493091665556700765976517328649149533323767486924664392935347663180762196978424268195721704236241421696538490217716570418046091911413052396229442745503529768758228127923456997856972693037025304961737489040673233216236247901800524041112056531282468964879040839037828544465328312781444672997488214042819189033437651827601766255087107409770966124986916512152817353533639077538904589996110265428464159656019172443946461956449849534833743398519852465617116940850216802776621628481589838705644648129847519509405394779719240199158185055218654801525704596584612038553744788852816008529551036918333857758874132193516542001733356306162651173810652794221241532912743444904085410178912327907683807469574876254466588386251510490774367991491896028756229325285069518597855530494393559838313531873605879426768796490966837811315365415685615012986643136933460851402745104474501658215027179796185414324159048386059716067500528686336684344905510819519943895280516064662568284539340462363499791499448548881272437127031887567446363588914525818354108020149953085379315651979561267466624608472202020312122616746375096175176423999721568895496901831044371583102021751639603346628691770496090803639201832028971081678651236218697940013466660967744062965883720871890319753889226652597877478192621972582675441137358645635505155403294706138187630050589258910934810580910131909152836932345737809128552202279019104401994244951421139430809429465120699611740995668560074647065316429208025400186098313757655785629772078847384230356249968861426105645474931246823191027989762888343864614045828855131716362337204888732111193856925775983972577418187642283705802931562468384822313294533514037650358041141535083501678355287640360372120833360043105790317706905125326205374378812452106624101641892216834131124226148504521450032061213114424393155223024913049859220621648336511334564202369077440599991580578382955188091119614974734896943842089053882087495411595768449006604984314858544881840335401607863416858734643265550747077288074957878752145427156483017140530445405835517752299870050223538826561453128261828273220951657424965467450565594091432178377220769506819045121143998849064876131194753549237248254590067919406303337677748241826565034205881421588684176560048666293406368075754036031920467598046655243161086266699979580963360527527666638042663157861696748627866986814239949044818692439035009075341511254849922315654350086874521964388536512407785710428273139133693790580281690854140929972160590149797683922878993323043649275658930268994068812461320576289353570364599113684019854895718721165987174196990681585359270871713427251193878182216770368630888225839897009283213141770110928999759865288660252826458186704019102238892202357457295180138689181218788065073347788816477089011603850527946109003144296539451465528396261216976714244742905967518478875942064068625480146618628267245385911570285859787488196151148469353471033348217059861072785278119411727291981002865167132398103968183002726129928975169904987684399631159071375741102262597292695345962608353430303283044439903619721503457223324481078208504158908772937808488769642520093939069589554140730668300043409067986359934738535806991283499396257858808547965445888222764648276471979208458340109767549171600857050713566369631289129442826159235905036556413026724392466019903312646095076515171056706400545999771323318231648946780274998375332143365685550383886428681032489541786123281558143849182418064736845926125353191037010916483927502877510172298227610392093600154978835518399991858774398168926736348574213067545378184261738469351219568944707789484474329673401742791619263620105847701181289129296639158034599791983435341480999101641890503899126012971532515796666814403537669948993530115187374590822900426295659066153199868462445088665859665847721647768102724608668513604944112042857842278104138303727639593568809182773446890063350462391362211956318040726485118660500771340100109964668141627651782401305197827414848611395466615360718926680450058144037614803277807998642960944009576603053520337433892617764559751481103692218418595585338525591077029011486594648384004068381847869655423279044284868383959928826851071549795154239515888552977754248453096305871346897162792966627565828123437603506048743074224773117937536939334429656840521490467692905899119983589965696418366334822352295522024859256851508326760137942573322301634753393807397736154010368924051582027959222736045877121721587446998455359084094965749213494540808661195188844069358438026105106498031270483933232609382472972114305315110937135652149153092435489854278183581943773697503960926984145401070458458685282579275100716491111029560145108527958675346789019928768175221771307799378898169572740491327582872120637447510983655774290853686554986738033715300225930199575128449977102555324688214790154365530167972587708383911827286156043895240573342547637902300743231727502992971972909330513144520270401812695577315448040813769572890807414780335983895640964377032417122561360592928177771053805735933714080625595851810426807629769671193937160607085163014795883159967506193312320224130281645859298387508741929827697415001616472064715484938424264104708209714128077470613942720852226411179512823013073083820593788758352397638182433504515224535977857060666163753502597533565930257302694556185419630850508108067791631846221591423995359577631828786358918083323595198967355097123707076870151742181818874595733371917172738053615380928038493694885774855488424076801067554955704291802826796707171531103313734375830854549916736352021445770079816252154149892143318679612697927678255184041278950545330029683100887857082355982929478334327432287866656308548872788586402304998868849753878967952181700474733118216239131249234516427279713996785980908356076127901307663601134460433301958343010505418470002186691516848169979795024853944839476112780326296312181796943856047151796045628402173219223705014658200930791422413450417459426763358767989655306041783697969317376606064698243794267578834721972239292674604502122965824036127200482147644784647002358220102934584698189379679965327919853797360337908121479121675088270757386186853888965687497391050528467910141367583119038884054051794620962618110242599182269499778357072458165269248095959081212816479008101069244069987726317956721447409626193448970725004685840428111470238856845371909705365165812439837740881571340606571725720911046012745289300030518434026009064826334441393044850065124569899411410020033819121772971249827478836521390148276148956873161968383068085815011178002611872189614220785641209718806978753971335430463887170883219083515521598092256757563588027227093966732260668065854225460746206705702622332526024063279623589046017662392501585475335601497217404909918715725401568694676863221740790758494350564864771700956428062544417406229393918519136626858095627804542883584175510293676005774352629393658287552079732634301323471253560546850103880617777800695053045854725816418623030695696955288669988722640882240292286346337642088433198424855722106819526615399349531677509691335029401055042209607932973215188092439340180990339745364392901345499260994587890746914426369798625530278921187145303995797819054132222515614215562881385738926748175881642644699150071332668218975482917746881314136259993040196671547274344812963601477495690237516206615199601627159023366361004515997790880074379382674779194245802415122062382952779546259023198929168521826432915795705835368304592137817902283921905265661804222187724999372583312283177678120598429155330398363175475258767200971274899695750298219972669950009018336452574433979935298509920182214246344476799372060759792398121160077974377446557374946114758564565889651732321511320702332605178357269734923497786398851350000910329644821286603917180473529726945288625510942736787355048380822751932999294132941097796775383603251143948202353423282726230011290722456431437216969262677777716164916928875179652357743171163839230132517656427011462543342427230508544003444798679020321749521992386356511663182161615298408621353200259290090755508035596337307092195300022152686025112874718955932771620081899782795232524138055044058930325405434572717235686755912332009490159363923946507231403692658773731548486237118577036318326072689286544633272289720258436676300764626923574245324658088124895379581475667008099354281632636587508396997685385284165264295383703741932259562129864637390242073555085571046788169723666184574339082836652641588802067719232239876099561545969236992333837287452095801789976350270091810827175073618831854979969285640759445020964963800382598591446631567366530337723076848286808889160558037313300883104551213398089829217685622009709804394089062551418351657435106526456277086666008099057140244660120827290732996907145580920409290645535354934890673735282899527662130459449824248384634014396780535815470228962133857835674715310222791555627409771626244793023558363163839197727077835099936382466632245982974258029952253830870479246626426027899522792017821329280384711560237273070967087498525672111101706672432421997013940851190495255196122777007825425924702391048454004516927125202818454068359548274726827126481197433779878800432849769553031061839726422136469012917695382523368007246589095441345006917787281128137643500098601498582053330297106375813551420334653217315903850543043186016393877912262104922859851054981669688572984777719877570050445572689289297479926746358785738267358265512243851116276052906732496350526075621944584052190334650179598643394582586770767057006001385593245941047587975352606670899114525982674445698302686743163908736668585827009006174490185591035776848833729966954109977182690056200358805036679997344929886329277412418551687503392703207451670337492553820224867442843568679059572914491178639889268623135875838822641716274111385308272815084160236375176625350574536279424561966377759454734964114155532816830382692000503130910407910193016308186226543682204867771024973348304356139552764302780151132882806405391298367292408487984964265310609866409613082325680941004294719230941165297801884996353910931805599456904953401352316412416878287519856229261093805394880894416252389159617841621664227493907454448313120325677331507156785029784770161412424108338811700926113049002035769449794650335887915894099084153414802278658348558364023523953622563663562356976390636486201156313433342137617567638053725625850108127526888501221199283351392035211980974749032042694340960345402185826268818034239684614742574415659340216031593380712315339433132761998205898083485449597128994706289457495874956057194457147047577535278912096607186735020267164053471016903942894849322645606032986597214231153654268629477320281119847734402472634144202242912670321254302803262704993297524879345260427885336696840904238061144109555762594259372962339219954198168526899588844860196773325191873970901819224469683036437057814467415628434168805039489745819326517032055733345316728585363462972896255452823446136041462480638695210128889529814956815121934912923415616232993490596376836918448859890091875561934458400650028294100175735528504708605624429157996531233369322021255276088818320804878848501032645149895272058096906179624472497369732693660320627830514325185671580937061155935414125009698888685442919110416097235125255725984087547478100660056236929989256325150011351536288578231964055760215145002115436327362036450351147347880872157236604209237490236369382419800784152741373724059888097778195957044584971998230388633490450414474574382133726711386960102922431776140895597334692621019285947855414140090038899950882640227516772603653275684498671888040605720468972116164854158837855184770948609576485114404542841081575243265174820641606898500189036967593705439435338679608174073229726835151252370006860672574814676111506013772993069165126221908388983489225042583387509484797901128338760468687718546347119826291226297125051580777955165842602748095874335836003012795575293407184978617678299890606402379653492037720283031843746525291543532025880895296785452567857158157921869717916687123287988683363608731694800776599740881349094500314672208794137276621349419617775105750799113518644587412818073927214113603502436476903902683416221569534154948517402869494982247305564512372622300815818062031594666120761632632091159333062318752061707766910007936680819940545038533997192098457626801570583263283983485748609927436443817305750096117372590032632001949592200838303619890772539217103139475737472771808627533627075260860664121684778742569214446785224057726404863766646430200271314622569532110905196749700419071716424910855657632831365973219337487808999257801864835270721650944501116884686739718681650204197983917794414310627757941385920649079357956379765085403041521847163614393023619775904801195861141211241317525112818713628098641372081469904330535036682234295198596437830213186726491107112312795649521950035635831638950527066257999122773826829379399973888628321782804743870580671289140942758518432706214165471444936124256220225237760101985472255609141499217392880462501341221529661851460621995164257395719113740989425622289917369097917607517020179673661925767336087834944362135445138473658672397527163633332835611705217621186758989658944207475034650251066474626041247229395571909267929312378331901790183941360611579453734904360356679609028282276793667072142526623003762441513265238740563562302434385878917831946321963402177676389832424979959612683146489272801245813610523647669769144830810110062513682187036309913463089314751471409265272642817507586422948049433407215158055144559867876734031098193186770458956268000730134383708828725189526253037126748296404503963973452201069310909654597261446197148075085119866997265266917980641565910600190576240701538878796905283705992903148494110103861613643775187967726513449162529914574182478556646815742102216283393437731197826854468074954272137433190079341927189021165066183031949994597728417511190220159798033694167518144951292509317669033700231658910533393636891870891241649749825111480408826445507933870157539858776481336310255459562769783550117805243952097967645342199403113214635800890808998134683683072979176597165572988309971738903305999764561506582014104254841529605750032737872633628568795413009362537439292554309154224618762592566274766554134855084384720534094970251012596832884984234599479896788858692232720133245817373876497559319274354744789795410503427297933119478400124933586532225268838136881400029246045308868269081919320526958726844647583426476314527346221192741594043470734185201821552506969676904695416651891377518274171798710740314520852139077040256333768875336055461148406868402561266776623387036305935094596782262705250763863001079350678623106976501079386461757014506218456069992425542055240654564705069932390788510680706201324746385042885554684048580225531651363397295898750401496605909333645782550731647729024466839018247295457477778698998712512895184409827711752934082050924180367745440088514945475357342631114650692455768497663482645680836976810228595158738619513444580909793536993286963360453749326640696287752374782981802349776293254577233532353092223082842101424493913667793855153465341279508796640188875379011598550824486202383463707245128043569192499577436104749853140502151479952206019441714476987447841535598990960487223280364980838149401723211987944884276926825182849105815711904893054830911621626368138666473498329215685458422785405175859810863242178181432800603551411121055723704379158722531451407251170459032797635589007762347070108443577285302465868858199301405472583725544992743536087180033120814209017906902653896928023332882943580812908459396281818413240126075343665119177992946725049923666254704406054561520331244210518384947581957145860916878441478318173661203749100819738899909152333176349506695647738159306766172110064826883233129363437477387711079888977657383827602949423752272171288090912836519744037884017954825117424349570316419258328799985011668264673322808325433096824884921589432783115217359516401585960767174445279784434478017471050092447483964001647429683974280371439888072733088654791973768142673444846386812434916791257067140049458455987462125127429354987397927298099163235150095812162694757594163815519763498919592356337811171160372528595527876619347343082997247125198649070285218777195308756532955944936909760657063292560511380876132494418093026546714283433655313424992534356253608906111109427842608630822550496390779180277249615663026183461483111467066310763941840404827760694983908336963508077981140218285377260882055230510340896253667298464363690984464843856388526343735532425923041492560236462229441339732309219857818665208715039660704122258725798981187754849244371826039851458831465503001331661767938523760170711139022241826639302480146492040594857535545672557217724405774163367194066863216154062894100488566285954891215772150557472416679186118620312621895752779013744097350246170625931709426413562550164543849167872827547100255721122499130332377348848944003506788418891160360163323330528218479766920041174061173360482066436020971900246331179176605869999717130013954138850657594401424598463919802585410154418892135067076642143502007624184804265124575981219919603799263150690211527770839210054049743285204892724341182112804100057427463618569992733236138477084429432364201367028002595899441545979157847157784563474345737077500659865186068891170637685916601432789049961007211275586006986119945475271639372735514731272402644125570914573902402150766081538163041892073379239218173579445215705882421631583783288904162054729972031287351010515370987726243439550421984394957321506188093367949631645242722259944517589764663863251003492304102994212327102522756399511850952023842864113565948296686140482186559066817840867522383522628097468648835862006345316222528926188474395016016239033445856451384151003886639593646021537136423473624608256231025545843958505460047518004321728402179441571959979665875880255142751679020867773441137241587813763056514349476888148904210608113430763943971449408151667767155587328917577472879620740396087660073041918779577929209521628086635490999871952428860184813228374989179955260374640235024767375571615391683302381696658577297294582175236785547141716545856501128489391912190387126430221852438669611140880205907086022746803294598261890364626096799365964390796468064437169431783240417894284973141808939927365945618946804356852072863398553848421654609375817697405454958025720617535231533375885232178870706582119375880992894432977151141847474226625672647560080139876970531822890059142515750733427774815444138325455799626243376136871010512515359878007059696672308564272357932894777396064191366827483943867441004119264879833599916097339511452736998656136059404135657873873262179433958035627532681091132034634394894701498018079752082501303068303717344373321131114535276914986567266570349757154694287409265998630692725536585705871514582143509938925622140934386362448954568513352177625698501907092801305115561580595821041993135279129332854295284505686207908293705433912541730868783148843467078320782429655519608380088490499885558655251950303877747365939325773848629508828708995127101048120197741687553188140059186678180016054828506759716462484956291931721686647074226656614001785042909947192484477293169043361044584030512087326398932074883888283176152754593193122022237745414285006313312420784902670362108953486141914545373371106314137550565992526762578818489068111433620286421693847809750521525222616423242373518546352405122701529707765403780240874081256009896510885900880087407141055675529185727258162290939425919441739236528527836167210148251970911135320574266321306363753663391102345424508786283966460398785457499733922260895225458586408718197469389950517054064226938091961761463766905708303796737591456075642254635303010439172888018453992003444107954073109490726957004807740173321428871469346058971775784886264608335558080323806996764391812997353998032787515096364660416921774589125002045948936471255706529242983091709720752396560249042806852828544643379007112839201670316784696121177556834112762663486744444565631646792067476614284368819730795407508317369927687312581815317341382663332104946222658345202376094084378185381709466968951051072918080581309276688395183843947264669359629197867245349244033238749696667472887479313455456664737575106599349423975246219464684918953731855696566931276109635730723082466536138482783679760630626789171519964693311774798625504719036322144007050557228586285998619966240536897570330761832510705800314496043379781064803279184109512199629973587571717232202522726253944076603206822971450137778823221410470292196172242421053498848203487196381058546381088184897271878787567875646742657096425160540420957203865936442483751127892036199333198109114837525900301344985710724367732612010143830905215787177200973707855286615281156371889297261747930686562838969600821910953757492882238216974730554281938489253580181043129759803880712273808142890019457966038356806545422154422571865575848699386902562207724218459328792169683798582096846116514491532898752618502493853878431503580013909992441647692297827719758623195068139304123087064530155435344187453062924629697768827423078384428505001071918979668502204328341193171066301081591590890272762911819537554295976217624783644732804817631297645163954768497140508496604563524099617141544882775298133669582278620956420434686890413138824342160227317583201504492880992766963464455024187437935181230600937683634861074965622768534914558915018679316559700549580078562167582551581989090072635328238716365004710562590340844513227199304694112384473745558931518371544002178902947509194108965459064398412458740069746534235054693695860768494873304891524938685662402685861809327693673351076976888494950149200359171950537388527742572903754125411944918149051791005005007564604392238717314122102478692166659338017185491377783136032199578781852446747052976808255455845042235496487640362019298797204888705583660630981905526716957247014190731014518775201767669269589122341679669495323769480341045933871919285505011476240829497817784182201164331425460298942644134800302110147538685811628419154222067224076029210868149109438025756547593455985278111824627112278168852474105387240284815673497940757551667598162491589635198240102569959852298163751229657910623579229835988779114207239272482672710663760415759720626821484602941747074477777041169940105781843592078951795726041227921701942654045089844678823347296562047731116566087092834777272947230237971173568988283992243750970000740788654982797537458823222285638109375346936415331972799779121896130707460741906255481997701687102106178376927924303656165052088026854498438990609213000200704671272334026610725362616673209225165329788205016303125191228169408111613033511241940258098238439469585756584843332880784061801083125042768898211122885422906165809761221611823380339751166139182497438145444478392085452626282406881229021681500533740417705011150842308323801971258933560575135372683076951631505981944464515686891222140381864131826986744490862123305625950668605122494144809186710098268314201669871334658931917959884462850445413452193310950165278206887762601506879377533282473743254089069054573821461998116698345332168554318620374650773895937540984725083528623771041367083583450048051694380612650005325228251409194332987691633000625647541879683625687065605316730450043913024391035623526834778881132628785451671825040736116316787299170034340477687511192471288691852491374176996527332070523912369094234188696178801607485241876708126743888237526630984028160942327460571390908854327124110852919031925698088437459946468470436839455772858176920268059047058235416750960478260358190538055371504127035855723766451623071599516373831715736636211786450333320014434686601302389900614512506809033809456623984236365775397720236061017852353008597020619462488001410402586456231462117799209571563652121824312538597805097117332964851645178673432887424472388317291236531127107764637004014486776359629266317276712890012457394408328439442316731920256327200687594111277728317164649546413254768012061092206361719678561122297515943066133954189798966941677450589657713796214215194411498369010251411127879579834232945668717896226195604569633722566611902150605231157131620201687758116489656519144479437039631665853170453184388734532861053670272892287073438530809831623158311638378009163242787768187195127691816173904497255860302918530601363693790651414729984379935209532090925882815193392747071939244567606250097835759579244614762082195994057928625916831863714563936116371222296888839881084823192791685315648084434486965210161655344437122918823751897524541234917461414796156421465915710668992039514730318994328204036442177606935758037589886210959677729734308150453155067966601561700210722168907636896752442023207295143843381983685926987454015010650863812616514238724452715014563115709913142235906822046307546497608559972978942369065093094207680115160761058090965289705419720526820072727382407054313740949470085685575556062128000244464807426488491478618808260968623160530126503950761308192548558454595912440359005781991342819126553299047300100803218488997943392347764375087404947522928245404028060371329930326169048222592323019350346883737014622043605120630898237132378951455879402869678903528808400746771358667614615888673254383071857781745477617662232833012680427387969775048534201963586462725000452916433483367535986028706872039684814470410544475220225119418593337022914400802157399778432672186099003624113849873796427397906399847418988135150536187527490020765535898692094159178318193227394703766152719849738684326084900199139195946276903203647267825685050466224129587608887093866137157222064526379535266511754561741572100373958686182326034330483653650241610357886107372980828852297846693918962805911606124761275494116961414878709101625835411724754090232603635437694777193392387319839783784755975753709624058248359071179706214760999161429141089192268849656316887348784919395966475657027373552485696596535401209050082694106517880238990636225796197841072710689280145944640286235755222350159428454464941346102996095752992859609875043849110000252601183377655383997351305497182265716970597495819299917327060031498293717854725343407759278304812605134595638147179499799860467649334278009195051118621148752219568459345273542382314051373136082059540617012516325420111505510323563791178763367283249089188050428492075901539221224982606998461364013559706978219433394434152884454025177114363792054712864832437576953207948994473303323263647714894742284740274072710859827020194708964817804600923303520317876362292935482741683429864446786475442097180207052163622994611922970915909778489361518967665047961430757386370319349519867458888085063049401960020139702600755143504472885013314082183671611296376381524029616253785344589621427800001641382130677374335816282213952767925487379889063455806899540228843111674453671773679740858246837986068021589424585697220412903326120089049508103683108774997350106288312830012848775375688934657136360016524293877364527912114696771520733614725683018388798068200014203621793415495354792541899741943265843024024905234654603768936334560410589060885044648355438152606104688032809392263541445585727094538761708792027703836541093178641176403147795780496587017288649899632376489446890595413308877685903813300385718850942647275482539010616926979701791521088574599213145178894733687091503073391785202564443345515574272898115647291778295815751473857665143564386651394086367321056350666719087057805477796281055170263475644269321178086478354440158649949688513327063917756386341521152533512711665062588842790204711854116293211099970735549747025883769097205629084743546818397356964110620338954907156252984343589918147012831714267003772504047814411158563103427948807912648078213280467389174898017185706576695637195898297958406472812962128301880659982515931006585499651192919747741537750235219158352681288726599093758818649264978192997961797878308659920563069060365830963446399782656037092345379633405572123974674132409567409309175568636368392119481338096344393301689017952289885889819562003945162992504872287260326581092011033749316294012395343772054666230911591717329329926750101252916924107702656714276985459894488187769271243618024321769851773073680197908674116769978781500847838434228158385668305428640563646032458607652690128784850098331171017655497276741231635984841129937967264855968055258398024147790757602906701175507777566683351098673245311914912513576675820605761289250673699754619750148981889457738613412576190879749755544615591413526257873783783027958766867687915745136605169655824046265742259598064392634743910964847790104364074238310324181764408557182958742109280612382846077450888924861780449794572204829098224706748605101874922894360297245118383212415812307582962002404187637255669553862751857356579424150656548437415143340386643985104518884425869773627056022134636392945833398212073655943553986072900487749024262192059507775650950810514375680947290341349959591542177845956025654244489380772859515679715693208700900431439980770040069604884837747706301297172726484229554771195442831142296924990853581257485266709947822638807417312618977537655194474433697426204669684922793297396133870540404127099631194837188793410807688173462730094994058270982738563762445285674357873700322904899698234307777232599051806605140637765921340439393962238238375233531887710747670916057536601149887575875446788249748304879829630476131675273755109323240125257778789357503803274614247403879510770989040325076958795192802775898514947085995789750619443627467099135931162764663167806201105906235515162653951083147012046005435441631407341979157794712218487251543087728463461693866269537985019642610303160280233060761955822099439857255906477365534070538133052625450571311055056943221012316251550574907422844340586810888709352662878590894298267765710638387534323667240637289914289352476955224927796321568440410025517609902949630048088896186900048587692861329035426502349247184847901143774999566929378650978234169662588307335884378253509870461859724363250249034690817619474286933577129939414014547438689503311408003053179185663232095671604111141541151925678892560077911357516164374321934133793544225378424593438032433229090570550682355501249857019655767495190013284906294145344463117687137263118699880676672123137362259635309783885840747176477517634894678459111049097803374841290234733469994938119283160281061412558511554466008600170426306437134705245743505506053164783613026279428725620087331811016712142200312252709711878181415841692943804270024928254618038949483932442519913220494975816810846416210674594104642309058993770880437706374059860818634373577291115748725200496504095281922400494393137055761497654257636216780812470865925109494032845936495567275468610888000625487182516006227449383209271354072098460468285186856678046649761040887963874813358994456364739332482266377550690926705474978034786874064427965477765420673246154575635229987487672208486295398008632890215902192372038255532802044542104743561346338112268091215557324468167402976887699927530165955408049259711225243121011824022027138697255282776707019207581283997338044622908227434163294192957241575318790278749508924745636651193764114525857839712376752101834397994766038072141393781588062712422187122266242353504144273620031870246664171285791190360609982601294431703159688544786341287026531471492928413309733396803413368227390565324140535156101927393200578971670181717306335303940977718902488442904985064379721611664345073016062093923167435784531108888956162714521118266575660372089499269334366684876791618451691135464478302932151003278289929694354653071105758975402226617009684661602366411232796163822602627660606164398440264381724383286086379122240415176933644173213770987043653691956483527958603770586208776006688425875193108712437792696499787328674101797884063734138943633546137297152154828158348263286117444445961092600853956004581858828003670460486397281663914343457587628346348838106915417123551762195583491025118665529659560171086475899998720788196427832734793957667983514505717131118363768998015989805632781767528861943549631803787293343794127646209033916008246385625275138949543923152659038261681999027568235185182665988168455725694226546212668011170639841719088181328593943178923816470367847475801361301416551671816029541900288659309082730278927750986815811445711677705534376988046344888742580704347766727399729978209985801139985685244744807601317306164044452505027365319915459751722075236780930588698965861002350736195427780642148544126558329323968890397523202129846549462121824072025326457757982718989871265316212152271546927696848895483447289333339363691023917197359013415006258890908485682084605372442064397412877881279816939879510854829264030894370045300616532704013696491692932618123129530434243301527032272145411092322106275558491213783892739750657495357543187288485844899876673317303487187807827687774062958685051080508155114009765055253127470850279988459528332063875536618923351955111900708925136736544787792293938138247536849187566694346501432344060892683826632803875590931471868741891317754607012098659350019094915401746334986471211856432113600419466318107896253777448993501959372554585124505946381341732289991318096007384959744064459643048893128612300197436406895022701252300551717747813779474595260123633591630590750245327091863338218756260123001659294129678374958831701959551809038266863051376010901543909612034652636047019715010630260088167733798919019199777324475672596157425348744297066236694861167480708502420481119482195706784859156962677611990315911837020493851278168468704992823288573155455099031212462651424673154704966304649583605167343637357641855091657635541542877854118044089468403346939772476829936736202083111072072245276706813284910051326860020695083747394715865762494217925456538390921898323885608676341611268623194514044340023159572799597409526726595685299483012224551903840672897128091795012777861664384982436178215529263457231341456774190008817115936964656114898646644865093706455332972328153544418330135944232909738703185928542974713908160291915963593348738333270241566554595589904345972314677277957350114496662029871402108022687676831466635697208908410500519957682162518841200372612226766131123290234065751644050017846926557000102757010676299403168584963286386783645837932806769883731844988359876176837597137150165844754329901021350784527286195758501308635028364294243802464379724400774764131152413764588958656337768235755474831657335898795759377508591066267002495961631734756373178636525683624902890116440678877534378308834488198669379332900810250047851844744248736559792281184598500017377062855795516773579356711407522633780041844720087134208025046640389090799391022145254601404994418392844077559372653174348097240622196698855145574306732497249055655409483404619572185400455111080805821302839232069395379665070480213814225360087634065104489367543994359047573071167922988908861758461654095714990515288386146388669212802254309787479195952347796057355313642999294290161141889438703353176808686979223175201606650478743888114716912843343577600850517141277064324655006250413351731173210026697521181879167651008488643073219801411617813087543919171161448042318642976729433022061632112955972360027577851589533222264198940644174503596437650432989156259443503795444956471873013919342199020013021265350915666315238103904235189278230397454962614932046210605398590070762850577571966975543956603717115102940100971132450590736543744255997106347624333245154175112581986064901644694932356035362910504650967111517867946470101015534123615045241772429683121175571733010430899484617185416834972855665496415592688312153344659319307461681307969910837017179737815630102215461006502615641960594172575162813869510190673061128026486747279909931631709850396536830807069133353849462803706490892711254956555456780797714226943534425760831723385224653425466748552569791694056227629586301438437797599568108696226277213450808238603679379329049562819338621056061857538414847076538092704299253898580272904866115418076082347922179940472904062347801837311264212190064470173439904458484114638931984754999566528408793289364473437418119862798252262694476219447839912661608347520971521695453568313757958401935569990450807531708969051827501598818658839900672657618256351055818203547883275316998416523943016187532984995983625275669584937531065504636175944699979650816745046069554598812706002899289478487874855169027069731563095924345576113284732795611405679930741720967726468190907537019660281625866974514872570025501662652315708390682879325758997819478819075315355917918982863696193392931483470560902273364861389999462209669939822121194144561043138401579632272208267789321541476713996627439369328562635671800953539517440697961984311688475848065972503260327870540916122005034941690982214113945565195953304903830853939210864695868513212922574023045931825985195385887602072677451002197960457337108898982714539032572464422368132790462279922114641849274731154025081897235997617215393404391848420599109173875351336803345731505135812819309331318011759477656876433031191430883753708156572156581566768127797345545158145953578677644597056356481414817605800086213640442392200853854796645643024720844859116490661465885650544210919975241701826023700287609187061263832430760635903830735104021782923976753582773788190546619182240237537171689986711704873193981799166622777802353952828902508576609881430706802236736969357965456406674969268151497305170866683597131313764469875513312800892358908875172873288934547957670486589727267770114452598416839411799890116396689442675410646299851035101685719325946267511466388110011723035466342397587321309913874386883640849384318786457642618327093999670527774215009167676365206617701591393469864239543038833778263702250968173380047765216421810066754115539759040966523347637477043875295362694378768436194009623738726757738381549092119104189660229762644663945802871133504614846111519662251392290602827826605964940354180272062951469250513033968585764211007325214289553765795531015037472513797530154803678246461940759085077800550726301966657220293698636705045823046531146169254755135628683042331097900343235650367545341760666062204249867889119655606757190240746736100878816128230044819696315615480396958952429872677536116475387107332511438347561345841897319232468990289683980126541037581668664350794605176737305049528629900548162351634741258899677177108110842730501677627791457791755988568043767476224656318967112527384753741573463104429911900617922672968829839611402633933075535221333592604124556764756943021982900066201547383584660827612945919706532307841086798615512112469937883322168647510521519312124106385159113323857800716810530960337200114433198862146579493160886148585445993442377580288387463543657893385565711909187070794493084942891061841141863439616749707167832145010011100511295642691089805349322767430199305473109039743312581475778988194152147695782343336235785476419789595173770513711855237961900122056636510108636188232615061630045713242689568630495565255305897813231156442366111471914503972139309578364662102559842389469493219088367585467372609685892815420917647513464330399522703222056138620814850245574383810624373963443010050208773533825813247890220178548776295866465764012245826750469176547158305553116819329001762313347270040562601802196522603688066457602788983282555139277950681571815065652471761351748876417749778575728956215500150958117210192047808047868020156204505562717249052156643526916579493115273925392360941109295169971266650482776259173858756027096982876684295287870239283056058978557748283467635002828845164363758553186146770769290117220877296648444968410215325577027283739670014148527191163434177918300667196203657173577590873328980382854190255813992535245745739896834620122433115983145287357389953922427251060497144035921576605253199935366397062415359169390250719584561000411225625227486529084934589497744422983727725818695566249480604978473437953404005817076979975435245931064091301321301983398343312178243431006406109983346039110053417014561560222623006998445407674912152990104221282618097874398139256738307468987552662945332611782318455009531186074598772589458149270858003113751782941463332684682017659437409440050529370477699116974306704578530613418119283391207994175366963139644958354061117458474248586227856566835422513272821991771136213413988462617477766085643706157996127615783675568470275737034804061233979064214554648251103744173957206744027843742809043242800530833769390587560123186989272257633129949875694134094735649835880202056747396929061672420115791733980731488294966077275233569284757095722107098304069748693316504161694898194852811953919176283641436383284022938916965722783549800131216572382401194016411150189604448081428928943542571469694439232018036018409541977874272295939860095672196612722997930790964967611787376724356077196805504729540658736484527261871137514573617713934518379282089940178474352702908387810124803582186644824648465974984909017240981878334562641905063527299234335783171260968231096574477946067104103721982077233234343898821311600063147189036148397819763799324322456716851534005840402525735333989189560855255090041980296132550787285176635303088829923323117105651594074573083574940595556183760702473893686245604158389278637118115285772227124439612063123022573450038317562632421356265651964227539444690838254281412019616750667092392179393018107371101246771088744298772695257128777892918368476205390018145501607222701246304094258797926960639107725881853194546362158080152922897527538882406460926140885211396098619413095540688914179115777343232017197355466503447173743095926216326472085287802786296781283080085211864939413666261279338746129164378599349411583335104996349836834713464694271989847817901762593151816408376536057660926685518671947501751785472085792168704285602889713242237412570246007208080083591537352467421893267573461708777915832791865716976139904231197813932308751860081119693626011652592176320006136615670791235177882451874755401836103818369365943394505695694120066534285975223949704210517079689171595880904392982269986099808403909916176976580604713900255499448454944377241550399187182201620882110911341581505847742500119193530748544711428691341363702787911561065745939863510781829867766452034195409429180133768477526947459808626426730280414442665663400758066004245053286551478933438602245931262377883421361141483801980856527657880991480909694062182324538494860369606030292153659536835021766835877217068870324256920429210320397768143955911128115714041948342064847158211470730564965051560298389732384172996600163387040811095303611490754192131889255346404413513263509097394545533764430932068933570517523080582505086347469375773057032695714098141502468522545759827253452892861126905520945491849984133468843225578718349100790274792470893241795065452299562293856146753764520124596186598077665458941810423664493123000125141342146357377782414834903351695741224216413686528722238188047511667003989299767241296564105233516899976052790852350740274307258923668858440802699903097982367346420358648629963020748808883853458404769785823301154761733992064172635175747786522806280011932450967416704006126641197763564998244036337161789494870860427951266126276681565077875463835010786619228820135982698318308353049118131657620442502475720550162314076515925626549366673652050761591097682831497845362012203355692416359777825977530837364674158493794068559673821803244748418507871463096940814028448826168291606717680630970769964871252206851520265090495613476143697342661800534478390222678061562325122234533036410462553305511410356972709614909561236302091783223984235875810108743887139295568613588696359473368991406377921442566426143646890896380930930027633739690953584874344646493356424832855660837152391169114672001827347318864362542140289780602891964562397586493235483487124210636010358416576972748170086869212730344930689320537085608096992122657748957079429608881535488799567528700448546159558139143134118211702566279833126704451963807590286206421417007247257264623669735230849693747378403156304793313651510344511487027705407230508144866426956017099928411116328495408988108445266904183378128108845305277117245568372983949373460322145710559338406472577834642045302074815092867373789766239703004730711551538821322018385526953528918466136642697516255141031354645702215931100260882636796350685681302335067492561287019391542619541279106316800842008949311704604791660179613218661311659320350654102792747281867504266942171496636384040902590130997970491384293502316694110757530177445200887962645649188767350575467249766615426134009394028759531270862387206591786476231916436180549404150860696924291973378645617201654528879371613689788967764686412298744537851270157261384574610283018721686976447891032519994118280733333327143753008875737869985330159435680375354073849769789007849892606554116734205927677229902997550217134331721172001708732655852074483835991693127728215787166684422821842244632510784244510663478457058097470300650031190373006659372891945417051496289339158912641630302121250534197470681130498158342473130393590512880936257624560447170989957460032743596261455151867761209621510954287102277993452812691214960022383642189564871430170099479512358648685605061337568014519718515392101725893934209139306223403362946771225526883229083981397692278981255608676672190033029076963076510417009540359134253118386235282142652816812891197223471176864666864448307621381375474478088761033104836568681827368771708660007711805817039280673459801750734952284826189654977584913456908228799019838378462484267162644235194829900735363573519806588173215601788058991925082853067269842197972359322074742483402542918376843937218346623783411964523814394447571627137484867884480941615808076134153393312367787861577464757928543742580621347543940902225730476936284228443528344917877454100943000969665616230556307115602121046458032886108328355901492827741839467938961067236676827034178803028051242605678275070493445622935863688244139802321519216139949892036317864237121713857153083134959083275516943323629867155945602983801298131964256670059717813049438935378218813172794940278610832954949018117789793000105519980683273864191459100437716811461810395860630187845222144449971569710208709845218589886619440435767361407393929779539193562783209391548653342083501695432014050440518564129215913613909331621271111517787442846071925842301211559419305544014021743891200013365432269313049004420387263548109338306227304165741540805145130202399700652286597655596510385345349148332284852106845608877021889008550991704329527475985942712617470793869488624889715502277038019905163527015428951767108520372429457235556423238080583608260003963391224958256112003241966545208918650006682304176954838867267353394564783063615563261439895970138345491343746807526355769690044347654072387336747246798764359736154349627290610188558024406561498761230025649729631307644972017502845348689286161144820625330349964339405916344786600814959471058946453524727893706472694198779180917927123260775624765238876098968876468586791384393528719753883505388692357653782286400356470313660935625585661420715510101176560540575614702322204146804314342173892648132393955171753260933550735558680851979719968675191110229677075086596224836897045929664474546713231809008241088513274342639503027424909110491458986831617276433443092823864672266352555423910529092613406055969055515945079063994884879650001702509663042741885554867599018734935645569012983081858361113574023974084994989957558517177711206945262485364096437447919629899745980241278301057514063105736488082351770460825447601010143522773108723015936700144878164052796739719648460349391876368487102973871350816323236148901444408417668810731247059705399500537021316554068965111127678932733972652841139267757714623338190643579702637126861390607753372930245962899410304931366184610290099681110340220957679223353681907486861383500709837289887515597251607976607018231939458376088094726602028525767909310579205836345386335864067624847471030450927827713900018753091617126776098004714069464908096847595681432770211500959821632988845313802290481929233661274914712047765622889138199632561212191682639549476487324098917924398472788191291112351179337507123487695384742717536459235614047910254488968517337644888122955147579581922750988523849001906651094148374885541662802976707423291454739078486107401978711682361200622588894810337474541738121414496761124062948092764697323537276874928450616692511029986818372581751242569793832160400559838130505797451292798360078728061908472512112763492643284799281592957875266755780439438110288626691920983014934640664723112533565176517388070477621642600952539585156854546428278463323594640712903220650987219740433909867282804344177222659102096700478791470638278670636683925741712923854091746264758559117688046110705786899077299455403751137119126741506023646344003062268876118015980453655144951361411890466623824159620649418787670416442491865657636545083146941785497206219888561052664556173207951480666010926965172509367479209543242150684266132582127076196564750628710083767463200005236983186334259463108540662893662867473054492999084138066630676538970509355955106299460996642263930073639253681103606172455867167743974698926724492675924144155231457116478854596121640497443609530133228807394461352618432606417568007691923646902468732796090560714317599760664272708866728257835584002607819491488022360489950371081364379322567118328576680015493784149479755923313030385291714666684686764537519020039547965190669538194258462787169281884533840690002706707417702285463998526056028921587240997933739947396461121962861581655642682688983273599042210799420265567278998995075987730707964383420793242317859916083923758872818856932099080976589549870245729492569693781903398200888687163582104677216342540970674486042687630674815762977132402561739023006196691889101341419190514113515310488276767668970442362748442460475935727069058796838669282813242348494190769299111981164696014433142554450031794510933932594698541224402001635873026059184355982990787222595454853858353085133589340459991621406578005615765914523503598519914793944091118021095849418913440475183268259304788067162882907891163759947597063749499953385915886285956722941612633265555544536799255154868691345536988497580404594129223793346655079912248089486177957574221426781430510319229515859220111114511458038392456259566890278252839227984808119291373409268592695744715396938533584517540529153114168488323539705495229818168567969117103451820743970007355935022493483709390915536419864568206137354788711964162786895917667541506789871902516173371008841382743684002674430239948720948189052022358369448825960710769894484802432866339469692492812209965385823210902389688236504212396559755856401659437209521820329782091725516623877081245939902964305420700266176298251013651136700961278240097235880050269608027155101797104963579556389785101575882575854937053934058439636108864609255130702528932808270401128698551370547520547536817396169877978983004972557207300345099957365381104071119168266416122584974263416902910267048766756830367280705962934492869986852687556626214108404551351017086115226860400039364445803845534311333715239054905171124921145011438759089222839144277823179075662736471877880812949755997702207316783782878349172036425297427690567265582900751348930779676796437345537648242095116839745660629849941793351884754354660065954000336146302707195401078220898870497831163542989096601076273454419664416834964487190945811761233498720993591498485480934718390546919541932625858789623115245242745888204413215627264465514103297881887296758710118265103034289152211260760120204621742304472474927737403200557458979945380435564985981455186345637358011101319672134272045429263228786073650619511513273961068569802775059917817001516500870133750362791186788071284359024943978764781833736189701531722976705367275489303820353640932279652714744522714343284438359604315257622645169604745387769480662377952397403589666891066934990703134105530480814720445016580194638212125722322598582108155838331391256763467690495945340642686846675777590991553903974330809242982997343535011503991853389778376368146024125162620403850866148376708157421932408340280547743761356257169743704243153324094364902816628172882808953541015517544833266946949073271234962531815035015884846049550223029553376970363019887817733900761213635465968679171758104737362131746745373077050321744674656843889208409862266998998699885456647632780441561220917058348237667372306568620402347801767790573990513423746845668142230852271509694691060242606917964804668373102551369102541618995549465668091658707857408763518538887154641548806002306775531944369907040252798368295806950866111586755239611798746367872990361846175656851834464975945725774632415355521354312900332974034763518865248384378639360415080965964654811461759175369591176530782362141580771927611366425603572228032284094917178559240895056849889664372662130899511661058302845496769257958077996661206205469986712919634644005130787263271028557534033315400488889972331823762044042297659565064323480072698851896023018016213153940341073510173210311684821164960092246720778682157979719240125788576271979427657283090154101880577372328948414129955205918272420923765893880796127983742649247266592016228111753789122559584924614761888357204462146605385215086221591935284544080200523926009952026632227533641431134792815971948300544698477072886922386344913589941020213961453061383967910791736092043759357977740108881016580432969240941173488611140063311727075025216846067235915370647960590324948046280117891758904420927034524090577024985949045770092769797700272725386929860222230034475375189100330594102087048447884038645181579577329994865284821338117008155522021950428729809539220522704332354570800922492933428461805156818625836597816969368703890956203457857916626285175805708974282241643692958506757703277009836025397648149252360725553846501663265223173823634416911236471014769656949976868288940301557693716105816364690291185124971624226128620154759549268393112808824835722905747645488492553460544230587988072748397007994748258788548398881060173739158352759780919573830194531770979474284504831961092965475295394895919755102457629316643808574575967579781868415691467038909968853159880122960122353497935131843785547608597235056524427095360075176936697937863654581459659252281143352041086529884678465518474708703176193666182712077479867515116893611043857124343087715011476775195883844105135538627825914403796549315260272754239394687736871708714801957004144339327186763926163723117321408317299829158100280293203986218748592216103845182878008393521536587372950152203550425302026153280305808636921130949789166024495725902684719673986382111330597175704020987021555531239954348267700444630290014256338695482563024209141710588772441587489107688130438307810826194627466004156048328969790732358514800127448137947484082147812385682468594083164339170635914119768026801280889194444658583764797377880619922883863748272875321086977393502982769196234531591502250730149703122604277562740326924902272488218058322676490572484934678668896062528331345842382249490576239881950496129291983168313395645829913243410005070276090269444493940340593009974006553685572195370538226881799850240430648124618869462738569720507414567104780273885559948771177029168189760149398235306832412542429980613256341532016037516999944346302513096137213219811439476437362826409419197166098817113699482358278130249171690044381553291561703268801971912514314765631166189901404135399467885383949598244079118662392482130926213557659714713762567675771537667092879947287737456986590482352643315653313260521582578511093449832633344995483409370270500234005081745522901209353401027808620547317023556809354490279737554433841860055649702285207909228300864319075280898862732287150046210002409839586128804887263576516081651591926683748436999273622186089601077786929255888339663801398203753949251252813557965955561689221509538039631437475396194127407863785766217439024995250292535970093069218349029648566669021370841245363926623780088645161285740237897729406511801746535032345143838593862059326569037818714697971119710931977496128878066647306629391887049466697607198341730431565853399582587016055451527061579384224677882718581741929972552299675360253236670485293066397661343819225165761806240719655821395551035498968709325771949768326451709206335021169269611945325979206603269375466546679558717560358441003395785091126879169739189083142980515866959644240196087050798842431138735427252133683558764442702256645247000926967036570386469644827849417256112954966944752866068186927863295827465361643966672257425159071052664281836682499475369132101690804611755474683594181170609489449011702320635681768938574164495256264272084395816486422300465633914164142948730217985981426164502598335758755121676087760023724215077674167494294762413830883318986591425623554162644233613163671442996324816799164681430739766838602007561619558250544167977511627274473864350450571739962313304937048345426195631515857361902335911589651693850810452560418864762487123297412055145290271802150926856343184806472774168677705370724881724199439559353616443957017688194489220154256057067174302509106948584106169643331757717596757863591371933085387719984715022453771545189236512390743430146995959277990869549336641132582320670342825491185753765505059203271006148517930824835480082483041316711109278142919515615064174980463080193210362813746787662881315411649259554310149521373233017859691843146646283868773291498518340405440202695825909945238442818646089648371745929802975470662253993090064212395635508029126298062597075722583937256033550371621748549978530630194879026644963180440352910220858408888539014419310169772242823015862525052877235400966071064845527332380912059183078235857529053061305270035792048674426500300988147496868798119923581021610562568033585452258277971647194198998531057536267799610089461684272026646457491820974805836611007371468659384704683635542617091318237682512786299550288549675976824462468636128565063374764258042526356505400515151587033756246074086824020853332827286067998905303566693820390915003623333434222889969560430192864668635318093937491567290583710991812956759324543444993934757111001856405989581077884478440704831810980722315008633092907006088062532688613564984130936659871836436058086017356338811796951103340493583013544851022522683484296635377261998175715938964167375103142811067352952967486300112124353925796902737065855949816762413374486753478587119787663730614851305425627471492983331785814414254556150920641278656780715424114844337025200554932820709507564328301215565006790238202933093355011891376853688203088345636768445338183372481136813246462284003945647879320631069949829301745467022986565955467411194229747210088916683003121658522748838374517899107949789774153460511408096874594085605361442781671100459442084184965343755934733182913223980517550285010708092633664112261020309070692470940581582344265058801036968430047375240317527079051945786210501946458618774531371088426575211744315790162443111802334150783635903117091878367851488749998966168461278452279891984040101957109847866471006685123176009433455289063497323900699637764213630943144130755894379523755225575327414289170382008231238611262400500641786363970011549866704501101861724758343136016702610249624451713244981522913564689043293659818793134407113211289092246073922132883379483035620896877285286660119035946812713214301489117794893366795035665540679893435013875453401113327537423382854596348871477801952246832893814846262169013281097167074689386086322288159176376093893045163534532041961014658779707996200941748511095617884528254466410876358741755860447159053045846545993755686837101527759036761935650139303910177467437155031786974795832254128633002215123396543607875931038457663340059169929265089144701231403935642433570665936150566012574636361739224394766075911002369065283151043339158417195352330819564441960177107488067943016812399614031624976884568507486970170738299977025142066756574788610462049371293432298634731889432184318138037489104712808393110702838824246973744131871437336629741833200191819229042428215871952387295676337682857777915964790158714020789101843472997961639778222961100232467134008691929147344333884898275637508708584190051431528232703995723603707818384525673608586537352804281920923205876376207254801333898759137308881048884885618050796132878075894569597297471742005762133674032181844228756517612489516075545856416387456591014697575735075313083530522536111463573305666457887832492923983805826099917341138409856595739845793911432333638785740676718388075002195112809127916901947223064613626142951738150711726409006533788152441014711314761025877195945780315551021283035127938321882501502352456100461858712338254059685715069810924178965454833402538566148371570298696352312275031240326645156210165347080632280624865293984761294579216291612068863435363638800850943279540870232078254048443230746879035259245648370448118466534261285701644967071828047302022762377222040298207002006605891661068098910813766747385331799887883500818016213979142247764793023015779705149221560385216215440244192490767182028897494039317786824103877002976369484137065209871608041141400625322239925957852198282125940105918424940155425712764432724909155655992526315240952995199748284579406815517569349351091672853880423020646666739443556415908236513766870524913659311055754627237789335586569130800732777293687057790625101328243259583161515578457268310439831446532649657841881381707722507339465363142656519131022131047088378730035645262739065428528156543391601843290475772840350540914477648435173322330044039314003216419003551769406457292613187158989279223625797276850966739610329602303448758422329862274871462041677099703328940460851687762654516343614860477404709705789867270412012133403335886957315500293338910243113964837880040237385364108204328063243694405797074242298176602463614362626152139998482286370237678147090436208330828074534619298973238257801170558024017127449488119712569853870164044660541878514991289680242494604296818068744619916770001845046268692850953117210662701240493448712410323307405541554361551338633585810146968309039200894545826845981123399172605737983062040154844219561790230758639711888447232921549182774267194650345147099355647120603307090091282372691555434403862762104820809259156052601987445398455542681303138515695850619794291965198953841129094748733930098087245506248214887461995397406832974363253441120609487226286122669921084850771554183913023580294465516250160811693078205489712804153667065441585450556938675510966501371830612071838904876237181074690952327599154424137854417258657376971650052067902019121359196251575076230662537135795389455401498934636005183533213038759072678269608330120417926483063059840305019677438842929042791657412571902031152521517047665914097013672088988990150242567192949367565618727861599748996596200811964004059610705349696074328901848629605157139098214511023438435114357836842295635323810094965198420456891018673331334997922157272441683324556391323044017535871321609339288916572725657265527274569291439191614401146334725892014438722526695839809792244762262738247058268306097023895600823745005489348907915545519869036116667716046090720808503026353117874541552204366059525411570311200731384252511331463429123141902193171363393131953113663540277190076726865978221201299135210016990422162693459126551468315557071518492657987550534973962932867916223585697200545064078583049953602322095173766417355794550521409263431696271554976044948234611518674953919940624036140035046226383200329107686410948075024432525810224557690239222023498557614603941685994964311107847238695361321222380606671252718187276140095440367340066641463988211985752739585603269800096151434708852595881033317588955403473654780216158782774736019914571238092149309804876409013394875682477354971387730468494795134955183837516241865394279264279624895032946687446975266007269281643922267427341517654797309703704343332893206401948026373302504857612286917649523521049878552860194133725078924230073541295609833096336256681370206246685186743736494028624690910512445073993205950322870471218645326304620677699642133497115727775092770701774694343133509782314751606072811358086234025591027907960728352682672847140119372632284907017655827157934190261435161644120606702143607951601740613266802463706304047856195938948814142874822504895416593623378251140451265963781689743584290700224069435615721530265448324688820278340227410781590161256509311325577433879362315849091151157011695608230268244573060676090175329622972746213604482677064701228430793115498495483970942730160222776094843646297043167383602145388998948313314242604703230063414881094088307280254882886722945134707985341899803246216194610793457871899481452892852019719374301853864203404081561206075831408964873864359922015337691080024783496850147292113706658848727944759762757937023169647345210414177376875369394944469297918252041424312331523980594421862256764364856699288158436894032988268088291907870726989334474777362689598720300727616937834244835764382020023460513821521342754253435248460713416414979037214120935507682172500429551547551172755107448196197947834571337437751558190365337501324413260680348294835217030534609565935194119988121002804717344501855755418180026583683663445367017267253104534894832082718192404419708340854710719019409801375638445688362518376716867202137868260005039202944256406589201205369128763802856411067335790202269586846067439697382277753943474753704215562179128593291017816596467226053131285183072138202620928486027928749720077717334619896350028338111107971874110858258359632099368618622610957457545791402974731909801607773601281635142320795845744878638223575475559489549350539813881116709605759791625202458711660907230795160313755521893273344503487419919462504359224207224767379669882659044198148566814540062453532271246245387862640502192198233204363234416823178249346288549397617138306128830684775906381267409076567895881863847565904947151269459693845720587684740346301875945369827852703736030101233500390965491109167753546317238310510985934369024959844775775967930813122500772002732738095204173756233706625276157121171002463778876828488844989518918487084939809035357208711825996038361258333088226758722696499150259692806988403213687579542494766243098343451239517615087032008819082221671540414358142943193243348875903472158749848122197127334349920650468846466934495266248731034052662861257469330090907667161463148056705060046843091783886080630058847246051048886388403572539696548122788682641334547570885350307524725781995108440625690891974732287479442602655721834620167885116878328514856536434811626671896259554863750821742793087934266703141522331071703819621821560301491085425097199565404429337140258484422588208713967258076144521153162313636515117876574352474675373425685003945930724736794213431682993627633192829375769140316672224446705472578311668746746318067811955791872961329319955556361079901665538355301720954285717943067920673174410609382356724580516306718005129196802538122472415970759693959862928284155136501592697106291337591561066261103244942333037465227720837180949128733390835249942626084656780570623830473103938550480607196514223375094720782724261532077155275256542671883780131539657114389739634182117424472997020785965781450889421924590709157293329617842018791526923553186474625978256871330027208552274794674477991633406546411414128764152201800333863283450616714389439595114075353319338962002814150167204134944237704743897395786593435401072191848605982913085908166811125128428852461841211168504926615992214919286383383055398359428682170235953065414351996646948305752862416567556408688962990531817241562864181789320047070604516494986343371302489033021668800086962227405332008486192556285493288607616028051341361374963693729999755667808753123150338255069087921788667952793167627258456254319064451499718758834835470786574669649096085471866793780656227215486664672936096303385615183102997004086524779944114008224592756279041131263716079374425867986470789007639826933618534185325556317400473615130722937244838656706368090874512757216324544035027820082268976815615405933625524072267330246900338634528820903573332103225490241373312548564355880867620042370535453414793777874742851007240070073884031604148073557661778924199123542112213431585144487875852867742329236846181110693165155142255339750530085756663633674245244265046273898079352645955627093084124779900885875013721552747242520633596409350966270905071906183921662881576713916787025120220398833289962018809254663343451632368807026774180394542785533844032858862505185800427640843636475620479041402045050481808456746312177856905868842714695663168322063426206998985253733575177928275505148222781988303530806383177768714955127863685786961123218259610660871314926205344538080342213295081041014100327399402498224066546627271386836927643547746568810074335490992187201803710785543812535086760477247351699554713902318813535443129777518387562782748890523277031460999036475861478109271778812275848494126844605057285327273585243663580977285364753824554784095835374354706968716638777737788489786091445842103798292015673683390316551519277920468815575067734567914068722713222377670516461021445431979278923270635229449539328509368576480539081574613408572304356202244122136486206976610446918822860627019950857832564590801109339978534701405817924501633910998511832172903306759957904185803877401344375757166291502010430231215433840908593751443297751931138246478120194030368888059097218321005397708027659130707874610865223853354150855502833781590928225553085897079473841774127524619443201459157099635257247973312777369521515588322418376803065867209968302482140695284605479966559254747004619001718558768284819977469705428786028870690200443450158330622114649484284179112786391321618248741588957717249294854577508846757243054686551168116206472227959400243730448122917280667972493537213770714708950683107262504232762095615652971095880484463172455466311566489688168351351329151987772891171222906389599345693727780325576668776259875235143844060693231100976777554947984046191212596113365762890589403711298463001721627924541551434915877111557032620679155034546595480437618917214141286014680962238429253814351535220949458856767413653194978735116467663781818790423093154802442370499798743729213863860225647861216248502791583275371373411185319497416937914219205123418731995701590517003700149252076192156278006471100369493006730385808604466491231643906221664602099829441321697672250803823722691234744157233199055838647138321879203304821472329349288911314421159647727703566834036739321850633637571277038110593825344470480190033576545802798449132814387825129881769785908219780305682392185459501909740569536459607005459812815703847290520367415472025403090455800379062066226065976999641252123249401795529922103185114635790518836333001217753200120216369980819189684509002413954051508510427005759110120664132481233492892972613422817497269215100177068316653011843603174307290134077715292556995517467497568048682022334647713964900679808989077819788409280936159522419208920120261473759089774072246761010771697749456258419159173694601203911214192025199031222577317557413010290897389981318633120337361635906441387377639042923165641879619745552983273815522507549346098046814059560299509703258822432577790545353027221438213862801580553522822049251447536173615732395299202996602432269190346083315677818538119801743787988837833660720276838181951382926840725095609559053245782597895945725938789538352699725528654025793922136902811339448606369389522533748195054340418310649242355281184971080019020945922099652041964695401105676888678638125140182512095312498131095508503930333739364776423505490945786715776503293315403010432164644194600642183285772295562480966759936957870277420119117166507220898849705905203150591552829693080084409309130461332297134926392711382343036647093380531507732938493247217332764028554741188255141376130514309800492640812600561974869448707187265934301472873482500693003587518493153082845539019828147540208771100558279430870904242636604522098256517643767472150895932155193852309799339822278616527254734392733770244991524516397899244291224475464923483019827578693783093726473020887162349585636731493612700575666636699796681940342722186203959770671198956863162198306056488012626952194493883554270876579447613465441122456776492788932342837757928408966956487022996530745499031348578305210755143290651798294837400022679926692280540553329902858610649356764859651715861098453937686279146980700127606704652884094654884951893213494253402088768142960499631437649488371548213429039320535812188595503848838720153212760845250968029340447861336109824672976180117508605171429073746392818072703436922324404797030015253231154247371195452065678847101178351519672228041254679283836631943751907179743804332079519536050747603729274291741993507291416920243092640526438705932238088189447990075965553666908445362172536917840536874752309114776977133668916777129605377433414326924751120513512612597586821530027911633025360067402747026992855244245607192070663183792423348587398913930469509391293944549357172758585161977602346989303704501291634610556324432787811846044739193863826666901171057282042832046407242778380670696087098247358628673166072629932742609791317660922859587899953672504830556292628911673102181225735558280161432367158148420787790069574863783471498479885623028011569081788795301201104918627166231660611801693328308662708169956243222628152439679894802443566554707080658287383002548504760945732713111692809105242659112196854669435007194256145253836023170105318225009556363850116103634360025907515828171081997260449211070598786023449519721020473931820894738467355994178268739033808119226502571531753285166250724782551707682218628445626347136393390530959020550391257801771067301788000791437115148065345564946156129130203898431995199834700387689202216875455327641536614591557552297496942080981608859818951266255045877264915231887736779817859270664220981024481273946458335860633864107428109347414638966560813393541987625814757217038216249755719595030309908505398080837594812944429416871049652095752916034591495914419957143917509154067003109855726273057294485584597655583906415393753440305374125195441079387509197963481251439833774881481426737356262285014405052328530168229460132550451576702023806689596560649662431372001298121469237210999101457660178095050992163438695857672828531500914086226810897985561478159892889928272491915341126605656430613300588726707587450335874220349188434016891582196608052450087248385790686737939158506374798230558362327630484584732868117277838463924792536795467007662036890354908353357866757134779626924693647271914086334058411785755592688849591405190339696396682568384328603617641551477125208582311133623249514419047076518608142074856735758327763012741546234361715216712580693151352825705821927530253447873501762511076260269846383374060980849589523588485133512161720670905452815614312728877331463125729358379852004390405404472018319660355807685550102067422879100136320336988106550435760996260884465409668123306627013530683406046985873341718242781997916169002857168600013861561254842801304974205781707033236655790359109344920897297859924195905126508013615677213991761735628684755845236998505124447257632168974447036226872754351614541202193380305638978873532767699993569997896407000785668213223488709844482623657771863973264683493947478265423667227864277899747580947114405081021314908373910277513558322370029032250079623836420841557829213689913391106135865657467460879859777248961232443190667582320216402803888091396374600877767589094357958053423039659530900111889581062127480959867954386457385477651124677447764842150275400457801104318891998900262593887024910351815011398552370663207070842392442193557932692938151593270246970692444956926478995083836146780351907245795464381779952482213783871259024133655755637385082819071534281959463195693500235789881856500118943279928828297045006922242176440935416938207548551188400846374544722382910673480905913201155635560531095521417813076839259324916154437453594456268265664572717425236564480735253148642232947226152384409581243731922979753617561618981487340612870396126678953909704238266844616528914564317859250489233648060908510692335552414816254351078798312539339274127791734570974538530900802538793572106868316534073652731480078003371547325814753813361614785541103275581092095680574475566660201306883621071900113070597929849307408412681269373739220321552807917002608132404873433129647047674663462989328062114651674781997567278326935411426689915640842687818690977888725610218976521486473555864645246564500952857598662344504512966131471463867145879344915568744125985166717915873146983555931599790463402280162472451105650819680102948043204042019769339431917108135612637391826833142697317430798713995284453079644730755777578733964433512443362525778129909918311009450592995075535694589444722937505909432175243998296503071322512534844724898685228234374740833578067438330129407775793355019032125672848340845717283433536367984875161185711860130514956503159318855773476945665985041980361700334400642740852698970723444637407990379051999141284005164636114333913366660451164223820919368603953214312086619156937257844263676825395887397930419843201384720384244329855092097618669535405920408486341405882991647876265183179688044775352869826982592040361506029703685116271889652710825373192215108580043897949233892069851501868155461083150124019407801369279479432089938031029363695277063270544830518293669039946661654485826748073003815037230617332293854998394379719328766920595855974942442290030022547001312639246555137748249426348835817477284858171698239251311069607122739598265810891503643114381236708212741595154984866646265473855509552945215140555354368667269466535230990345696759124596370204382242021359255540480295177700541794871677470931781856445408755971925598914378502308206461257199854732194203789827828489809096583287058424570902189327114237335654131691806356370543317989428557768342646348226929004175112303625350996493465241623150285284863467857223248120372530813704027204222665992736618110190570955565447794345152274969621018513652079966107329787072091208782424020309580565404545984225717576682170791263256115825520231407646320421107665030722410676407942766979030323057150752706244870613273462087150305448072261448320314409883044032274659850942767588462106263883959614888368604222937983849312932418664684988274904958553263787659713483419907557545031984899822030457152452959618421718900762032503346990323547283544736661356337771198346744962129654243804020195564426718283945629420515064268826470213623567100579671905680215001388961980546896331207250041748801803530996356426319216796512470956596532200816145915451274438678564071223974329868199334750789569937899039259933962993397448127539595330208444322961181706371039227543530651272177282866255354070236928134688905678981187417551688820139341676040566904460051952947204074188098387529905937400312748148242928134454606670929055431670037694873049333305616477807538289395307825696950709630505093192171106701499199483869437612298040682347242403855742159875485816388035389412416672515094316122961561225612456861781807967184701080724046569709009626820075682949823400396282089399333271685220632247264602844356657074923058461991426623608748170135790208754129516342971685044395187322129164458080712231565024714047842536143434405356086891215192045462146845945007385784653273743774610806328302954379277235785300556559094906762488474429898120479373216795402197909572449260712464779067573879961360965103658125268372822720399803656819403971663504330138035385248674389875131981772381015584359184570664710679784648585639528603358383748371036436521452970108009506673526228030815953020442684948562795916990789339302503624977553704606216653495457749481166358462033978425069510213622499634863735202086486110222869879541278256773819518816446851959237919495527907893458576937484176671681441725247520850713327731623346275423792903554323643195714745200742724254932000459755572813641596455885808577214474585346830730978093682868528902234452166136020019773121476799550185241241864515852870929470785981759646995171110444282204311113875375464291655873237857548718089723911006139209241654503457287354000427690162539566872391608799369359114878829054709229107940846522081479945702331777603198023363753199989594770913438068218834663086337063595461057229768845968391998953741619057967219137097623526494682303922831747055878374542948079632452867043627265489199083061296051506880693240637828669110040424860747094924371959535324157201928615978327292666360027376825564965186427265611086852432179970377898690085458511451952433308335631736698931921615197446623228578628372240702841393590054885172683308571831862569043584897399450539396417627312515721829753659505068742436805264431181140134958351650723436755651749353391071116084927727575232437012781692898194459606090730462466562489461390706156271276867760126954741544659066616310652803802284957424823877655914325560293000765396479771492928432317589244788687483792370835694302753563156096237460466892604422718728966285659259260673504205615955707614793118696357001550788921933583713869412937049004038279573729327359701286613081147253584904204245411355205890530557888944209788114989535819327800206531922653236587776730042367561109533427188371100196196295681568655170903302643084537685618862159627281016933847842975383019717257360886040619739891336003790091776056851666544715843175696646718084904341161364165679627823640686913993912469394207569861370776341179387428344635014878921502655959674985671439351333616587314990176635065299595480457335274647331392984068944508893952569100635679294053000181255333376250628421411216108070429414897174037119896876239305465104353778711314359330033221836928130095863754549450922135106049328422693947992258786222005640181603351285042176367038646569817122725070614903684124349682252661018678941723699588070258288320951192458879196129394862405290718154973031446509723848240445440183561566672425971847518355948479365854095005014628865348258270208577076321948992095775234214201853295398790715755194171824524035907105813978520166581185824797863040581453458835640396258868570283117554745587866249512816245693325134070932943730599498079458713049797908703820874372487052545703805436122992368318664908411663579212881921024526421796596688089487165229782471671659660558100607680943806901425438862633372922771494003307150560890302461144984720710777583910560362081125522377431780256793761182541135522513234635548972444760100337253156994069541994547151047015603096176161109469416779921793041247613686804600304230834991076281209083113432488890205773693551674268960147130722588523741761968692790458920978519903928354109044625196551062352676359257583165660109835053868348730416554321153236829063673308152241115289853901200635624869263491952264487873452756067100298338918693076923865010460755917435634208686829694280942849630371968718292259673697871672419873530479964496523849438405139349975388177365918195658050792775058513624678005302069749616295678226546375463206844267103435932425441397209574804782777022648914024012394895232346441340169690171714018442230597742577057973231449464979902211559354257383456375877764795536995479169044407031597452304022681187108215038478825346116261825352172355020863643303066195815041202639961563009416252009563584450755523426145550064674969504121297853664414272092390269321827695250116572915328939339663889800423650134353970212480076821887618975490715722415022381712278912312650090398794285157867926128342914476610866345431470181400043905230564100956258197875880802927931981798874636214823850201748277586915103181476014639414853938094127367532000493194323663672987242666004393764813778588435597431775865228481331467036351492848607388197681516503339824397649665136751458800770783650621663168013945914167455098098220761691941875354063003681033275472938926898615045699146159425362398459706770306039510627301557149168021856527505567225061690617520657643292227355095386458272877449468900485157852857680112606893333839653478526268457158819912708106669126930086978820963154668805652621858578842703090835092291555835155464578625315818311080247798243862973388414578321945012314087034275479061930955679026721040513792154175549532690417594556396377208008637554067259187710236939810034352393888224703750634339888332222351902123294814756023664134303470836600860433886890996213165202395877553209144636579795339744891141866206978567212554473290822113337735321395259546632111504934848523504200168089673031619814670217787434747881329842362754696302620381599269869921079263279495580341352038716426955867938013773534279976796960489064437715385917665692355775659350291586834464747513856800010853354225735355182679312115186391415917709308822066188237505839935111603575260570116443402430015547511915378615813470093224552882565276214066234652694026260662599283197749797721460148767564295134435152036306325009851091711675862009135162327153735849056583428351931112698937658532224743632364507814835470355220914408311366154329890008203060084542601996592334220187264312743107862059263321504390396625443360035280919274196703067762803573467668535356785574689081669514413412084105549154843066989115896413779980027782371478082235682257969516014198896581630799127591155582436419840791581451271691767071228762258581198786935389592276785549784011031210076364772726988900945196037557213025061200360638446987852558184113469646285222374712813087713579079498414022355226882518936584157625238198027701384521314317041254069553140778081455552619190595866923389348132018587910887689971872128793358095776055081804553671522466755438490958632764443321995256260914036804102322550399243512805169631221280003510604679772781045318814369066851216852954572039661402417168077245407830174932325170281461917507387239283739432038570479581191972572101465205839543096005872847110622364948016487531597337306652319897399474732211151971540126112340937051916713470618030061426492140910826717907306307422222491138446011195338302033563278393377616640227184659213796341479666660022830986482571397418223222589391134804250899314159796797974586163798413285672530064312623360012547904277376476507326813645549096012935027573466547989855756410264192810339539818230196268104237768257190473038015380119055653923405992688198019549763737122728072458516863282015417201749990058770515734731870200832311809229087613097809346010037727315399384692317643140906163658323575993989672543124311591268284477557808009904380741575317207771061991528458072575825730867653526056140153352146417350788478143423814693307304111597723307569833247452840585539735551954131813657759788154683088300399616532623155226813411057329943812759192120462787399113199674961164089020343833072566433700317951484177705495821556660603347630991003389985260345164513748247862528683229196710603153899638650669006412552596657012708294924652359603150340906740541934600458875136178677004260360101514443807177161943600088371924266042489962868278849028089510332579782423614811652951925969446085995583278738358552104740915301082960025377615519691340217492289417843958479443416027576929435479229318505033176873100940886070937544053602737693143317987763362806685261933465933668769961561536163286135926787322908087804475196821492810988042027922085253902680826904772804691074311724483392195338567209572551879593577337462784920833873101452025717317227712207723167382500189670006291939030150808938506623372572732558319154907423425702764829059198113779213674552940181464220775762907698856143315486331861787382264972758194101602662479742507690680419426069517361349912417860958710684558195473186028142922102311230275549927221470024412792177825468277221614580826128754068333519217458022000866934705799593471517832600444857482242865083847407277004674328713978303859015555461214601733841440167699480177721296683142352836407577837896007104258729935075454374135891868624748725621265598246988424820780256693542838944403258891546787126594356082908530550069679178817527763820146320784240384315521638484006304763907029294598880459895202523673057484448286461448654400822121164375213712524294104190180591524481565007924790938316877428476602326920402943007416480529229887045617373038235886037754507327699661074336218509122655178940594749345474725144405362269253827884042731427755099170069985408698885540213289762061231439904925035459690193755869879093673384126057285603049542038383535765236767980383090986117885330315360628065332765643286376561727002556061680918287422926969580610657509978776417905851281855476671073534679489301795350279851448229582448357952687561590379696234753410134977246978539497905783361938484612489230586509710796892031415467828573245970204622671525298883224898196585159243806151521135026163494105441774441202096799840332682951627373350943872973361942517821216723630905267971876960800663101839570902422828425498906466454377020111431770245636885942305988322381388261330681624364237235928402920581164055377710506151689746992381668865251159310865097337730804499917443140898873850334337828394593708743069396918502421341854938124196802473304562676027085297292156043237784990887182180341161050932538353666696377723668845528712542410636762993514445850452625799495049964343383297787934227662691033792662307925506140076160918470914544256328033001875114517514920860290562935050554450670225673604298017146088832727584170032664759784569284787359199514968629401441881238540982753102960709941013730840228509818862026114252409109544511329950380387567811761780461523691821728092781515133306527226525393384907696938288884215887973275536957500519124644258085443629758344512181925579371782082097908653923117675747477223027425213548783270199768039731770878541878424913905082088967280022555231067703684194003443492547471979549218554180230007865702766490803086613819922289151269617014964264755946370545350632448071073759594369593579726917580301031214528941693643608360272106608987750833509590161549860507042188730210954353882123788127791172492454271959455173972891270886915365745145064220372737906707667349516807684031585262324020245443073076769397705640032946695156633263266466395048756853562825629955744747798535363476274251764921571794969115924329846225074824115936609474727641917667148072011490757480655016398193407671073729587392120506039545897415605488562533148298945884680490233824580653072853344013601723217802530467138519070920492787357015797585110357276575120830393575383337203413892042622173300300211170373914195973899431537368360930865672006825239688803134044986463399748435097832808076833532666115950353458340281940138988554904967893083830902476221928539949387816415919548494213907299701159866369081314864690473770245474132634025031602142287982977251045752161176985065241605503543491918919036704799233247799654711332069173205577233627492615791236205910830683656552495278208957529336695880762145217771372572901577175076068346405831827246211968347385560230396277452067319012906723845964303187934484589726588259623662329592088488692791952167819909378551440004131448133531154953756878883151876411736518834815800481211034974711660675893516241108326577195033717072621575340421276794554391503553762045451104743672362771236615294710909685514889932164565880838932073421860320298476868006331448982294479101553943909553480643314015205918721535273530412171309002108540525057542285900041852916557720601560682075208005242632504669443166351982419799370087303914801518368800802906188953900228184323128021112578503108278788186528500532062644733123615552852316727824221020394592431460248967007753701132176438833239584634627117540396998284967841171323237211499508449664782788602590818179014480757257884400042928405540349483802793894237693103857380321384740219711228659865810455658148173720402103256000451495139863998984037869616197450285021969946960665005372837770044356640602689555099923900020685662599919782563921544803207746678897650813805050251070403224811672410762007057240854665126738639423011054435735714711975846181996851210342973723135847223589406443487872969193707850207107697457624708302727418976511321884470019820246467658471758923313836952812656009901413397702777940438389429438008408782959066719606178538098815998120120427149332125575495210019770683449646113034326815988785720554339525236293741342593492055591134945330971777095158412225023527878836087301152098409608430755687521223348504260471741774709411090713701778704790379910833852925616901426155856276964560013689812408462536660866033586730480419749533711129035791503734419717845279967149842384509012019371232726352911933335849425973704638100547842884023539865923487507010533919497796440363242159782530374630718437203747187134268032865147711881332351251751377252955713310369355912872529402925833172943486591413539649370740525808046780623860926171508725006670723845229345258158450276871475527896290219576039639081421033158134719769515301928133432610182662071507513318829136864916045287159683525004679669373155756206668096721230089552362750570653567124804585864364204380173940215005336481723452106017102872884518272359881982703596956131806310534308375496738286061035850175761128156507178337662754694015504275569392092408335986738068457940186503100800330623706339301377582625200478529755192714731089341344719279292025269745634303168911116908101134123817813194009090144322526772664309463486508396786472995148701394475848101647201630309289082796783588938021496336967574107046595862763869477424691990219586823360145190305128305663862183031034004349497844268982293564171991743778538940686610747013016609464633206618188190820684227122723700322155194906222321543746510928463464921532137059040913735479232486418419070484217599107765852539313031030315494738514071963721302002976828099634286355177521192876672447742806970171103431972041004953687029999035005549473968647713501939883100126539627462192101543067661663536916530879691617518422546388197405352432603937396638869387847200607175520899822461768492423888330729896266395242977329507392625474327804192534379729783931632302460061706389892838249654638088249039456997765828023878220660641998617647394153832288354225669609728992256547571335048137565429633391744442581549992410150555166569346426704103670941903526484234576674880519706152795680685849594670632006237358808975232777563951371347781355303052187116693700073197038003390588755563185537836957145015897155451971279666269736772270869028368586902924096169734712817788194894334266281301244540325341113794798538184351715746401216187165128492038582528407881783600656612300614256602081394336733979348351068825838628291842824693695673422844463224216399802150208558039087256461086517058629720803014749022993404147608541172515484789521549737979731618080579437125275910237049250565599087060139424085885157847567979313142568121170668890999144933720387586459510608326229941336077840526319364319146525214014364316634604391487414527759278781042434358680596846773604187063493658563723222913173103205998812217180553290663207639575289598398805919128195803333259554361943228181314926944754210303769013314913724424420191354844927157177928662058576061781335886966814215083443769521589606968076123078540695189499640973063396445023707541610248867986279910292240885762616414086475097101400602456334531925966631887070804958658993146746922057245885947709673117771836104401221125593400554071876267548557425758758333561442321482772697124743585614267264760584897282204184127019410415775241764106908249509205027855564797915387668164070742604891920848174645127439424464518993170680151346427188643669581190269082744821337420361621803799104555162288340396959670778171694066975742564824897014496434545018598798076948310753605431513305372928199580601047436573472804410452926608334584096949603026634806276512501144813465812856781563106128038257298781180950323437073843865501355832912252920428390517571114083392426534981851711630818442913234446762842859914666501802617959026543195294634592985947649711307153216352066794196014811832630606583398537480107720236959755478908062465950172264528336737525620430806672449502336204452282766001614718252291858659278068143472990373363576079831514902119959228117856207135156210986579136757813448891516673132304739228485011377305008629269903330774438004637120908994074490361676897140101901533862288377596489516496935302272598979042019343503913694181728225049862953147994091878147361983106514817519561752409194953038595820143623285276067500882895091042867974207973369678280821108743706951998279669403405981839192210171312872876065542632209475714630969482448265056106273615229951350520027047524684216038403185962696325690030953837626215527675229357048136380318611354053225645215382308313432777865254916167750207293999339186506121888113281907780371525454821164107461394637223346527894377757607313639659993906976867094552849632766701846956743130285155745872094120652483723087254631520342355283395929418378572772205037845534717936278030299990547035538682112501834813316828587808404250827487427989228170771817956004291004850999427049210696732816991444198880652181769428848340333019607532051650348846787204769797591943346027303166686548049588981466569937754347108170854657429160811355548153997879870377033651816283526902494033632327732781675288509335612918684526882046998642971204585486712661177337873600852354431799411360779973774152501543407336361768767207893049761226795202707225059511327552267479786027768381227304295652148920994437168621586094915728204475845453644476291596481979935376853639668994387139482218948050353825670822744497299916510953676237331772118304565566358360417891386517555557694225208937111755898603171688694924122894377228219223823908342335674684021623412783522560463465365782774039236185674052033357244234040505596659217877450896753522131211636728553845483573430799558238212819664446357346129607781057544340365087306159013354205624604213875867692266486818309072214296540310703712756152140055508719091329699862354181325199721767237287353978271599801924075207188017548534685523446183898484280696599415694463631833742330770981613931300595939900771905383696972431087722356064121521475205709125661510122455196240034459279197957421827883463831096099404637394242405529941206690309876101661775681296919902496997732652672768608354163570655386853339846812802689512435502157550452762037819640581036663145561496040552319684063427643755891570112276103225232871510549803766298636032816166967660339506126937703144016509753648152823895472269276940616980503399503713420660168928980581425992457763604592842569878140488039188385424676757544080447963504977726065187358106260905647296350209664768656257777216225298509533033022548316473504180118556736837309283076783732062484446019560667491190752966124180574617511253804142098126753576007603163147176573245413899264568194625413188068995159876119321186343237371159541341280944951600052584786832578141700111981604545236687811667015716004402126511529366308551021284586113412390309958445412843008450247870347086113124009571086352433330745682891061254664185337700317393536951626946081191361433163222196267607729591702856875882162681915751614317788494287612483263980871686668700404993262360814874840701304689398461132334066295169521590707329639916698623964776970190479467600944171388815985859704493176091376504315831174341553565326583732174746786205948816620244202284066552263711186074883930696745691732382119486876967787920481509055687954375371914699250466916828969815697196003527143847601802420425168692474003075819559002332048831332621915252024894064612212568616129068969143233135587947433828050725954606920229057620173571323771860769738604074084720584069930340955822906183440222737259509904756863896832579569782362662442294062727544808671023575308944789568621547672826901980316130584761385060572358817170767597309093386419011084679564602001607514059102153140476810286953808105270507643126838383269775174051116968910595803095227105806907813998483001525010332073357841694403741267558176660670462501488443309014788596376270696473295250618532188133528795623331335496880143731192458879880253016388819059460730930034559466312777602077768092993143645196201640063730884217131314250810743321141693305930225439861734355476460657660268611739947206736441600960914379439327947672212587577782421458393689951880955525077046326435792809113679578712420572020192522172566080424440823224966274862416581491770331633967249991835578430514105600126734442760591890138864226069539456735441717699972409823664559552589075138672854439134124771783054753465588053419340296455135289629328702301819111281428513045919644035280721024686440075193405524209414645181704281724242042948921862579490735831020957929123795191022907040318228984547745434254098077433479381538527965881558941089346156813533031504740068358280024714734085416389360662793898607180583983277045413280450622830220844453490666196227437443905364984411059845062708635282495255918938143349575349176562415651612725284435014496415184394624805570209946433744501058460928366284307877779522449215267096904626705743742753728136473371560852129000865862462983110200059274142425380045207032491666908423782682159690929591321251418451008254186389342743446019022638686894155648879563035964722552423731712195226994437844653239648978863237046356813459190901370937130112408637729409096163805998461256169076611163647027239678329650813308373747742494124673681904019890226622591941042583535744210009610073877435454391243636124115996257029597497617336718186817103402347890195586312603032562631814435387239987649438691337243048141676115080499101461118564948760377382491507740674076010108493063410543346382465988812627047843632860909218735883852269485153742868490979417893097591504200045201845769139285936362045906721674268906389430646146580380271316628294326094820082687829386345136010669992685122576202917104409823959185119405470146135303124829032622157571124760414399498903520357872347527164659793375142073731768309190239040092198739637103642898177419395170625690667469337956800983778245801133626695016081834469735381219144255007041784782221016047427167378857053883269796489547772096891194821624188181133327804811433896647514523104291495971344135553263216616206185615084009300905816485878364751353190066788011064606582076735667213075563335559399867028768165598060723611896082990277898063619770657573480576844580674295978532947339647112464205706343706637897608719506885967619653537614606912751899739504442199468691821700081168200079174427730703917203625951835863412050793623415322905537112910903193712849307790263240283356037903696235893630364009619472708649483923780615804662400815967052756749620040903060007762629019676544539249150219018217554566267436855124648413184430254987918871839353683520738895334947202418644449659949112210025441349391824979663163633336696753523424977253350438283752393273407353850579891978507100340217880658260270921724116549127040109264839618316572861685801663859210235770168615546547338998186580034602358299793168128161486227255351788400581172814767153674785909911710820974023593640530206199557061628163651478189236858825645762983153057612441257502708081739869567552834450163034388361665988067373422063360684703747899699034749809256818614083315642551648534832108211579374303655343462293673366402297693183927756493119998461088175311715069478165358580417247377096512190417075303528347513405961273707384151142219868212215333107844211935962321447057755321154773097581392417701401222531659432431041724025912415221851528456384555616614456354627180145211613537634449498550778269160833371923354162941928676200421730740729284467917445887565617687809990402966427154758344681346153144660024482425543303270826055392400480799134257615338998217998424140953263629535150259070523715517177925120022600674760856441549216576820949199059287467444038644097900094534640525572106873683937072339879883345979712797883107408212838151009194326003170630539687108359761928382584174603019565215941980767862688683407868347339595542256073422899847233150261518556715415441692642861765427665479310825330847658101412313595550910151779199586143507231565843900734591990251815922067810794436812422071436478491020671064710580686044803545844131094695327258001310165763104183237610731374294797735349734533333279919259367350648716955491147182651660577316199590875110045934272102324761293973389854208270576191294448631395594958789372863105651001320114167493083753829827889984798767443268379817756925086323957337753684632427409569948339780989638533265518291061462826219688398491969524716304010884631226844393205801913934001415137351213504096642640683262177892876690492729660297946215591375982940005571425836679683187191341798721959048339633948082862868308781403201942395529686309363732803248868430757890215693308379241585506918247474816397727243056961911096405501884558812304991257459673483681953868798114871368501763629653874771132762454947081018630275596204840757542572124395797771094268715704179022202014834026797817498222277889928466815530201617449827275122548302268004090952702910648896406651731733086149412134940110820698818523940494569154737350103382959884706989972043545353451204802527344049352277939628950492724663976785561262570767444613546694737915175152730984346405132129213527434832807513908833024094623525708825338854672591929317255364471262705701877190293073334326263816289453516325432939513038582028876381196097854791089866266707610723619010473319262924880172620731890009779565403463991790409764124276933795876116354595376161776948481530943261743173243524067544529578613690568189390790278426969338411477882389255373287458515858556702001031676733925843318246708576644183133590494713587687680707252103595866162832977547561899057538008861484343651003867343343894014217120256039653583471403416790443563684179433001616027746840133949466779770164524972020968044734539331235975215831802851933306541342350019245250782219832648905099338361495799676932916631183054697466005136976163314526535601242773396871681087559136218843892761964018600320464411641926338228172931566217108693099251273647849239087373254962064949707020181033795384796201217991131561785730831781830118405800776475471158788595670784817432879762095993573690325065856925817595146748836707850581947600818541522854594283272299165956934561972474590594673888170902082743667884291855332647836572500772922149637379485909049326598005764621182264626348161786122884974166434674372776080510451012645009765590028268438220680472282159146419144048397421987242823194218084267045843820341769487753949427121838197648378119766655615925933582443486993477695707863910984600851763489933743023823772926161717452945956563853047752694162048270490975438265716460549476114723906491143438753377047173902851563096212579920790272044709471677422657435860485667481209605584838360621737858164213389042498538505192524995083399609276495497720772540173452910639428938169599882266068677172593012898906570231683680516848823341952779133051578904260651590187833327556269053508929683104684481376548009985774223975921125454600051489991489568037943781037745558673255383108022810581068088661064338069030378647926318444355844706013989919146935644088807739885510168648472725795742157819169116148985957688108846541996007842723584474791633655431157918070612266898239950579868100153986028254613526450905276978970734675214603967367650150027390643239330621722335166754244606904340265930080641245840271047145001261805499039071475844481597603362488993531228070626281207518175642281209716805661262249437096762016000011702927435647266665088953032335522131654299881284024974057871858865230147928158102131585336264411904240132731617814600901978026938854336985370534105194124701935737751921717480218573234146375438834711125997279695163522282833382819017224632132923746518760214692451312045936894447247297802680120669224859376536547320393682061755580197720081352993883258887550250583981628928740898572049339289202971753434256135026926876416307973847113697994995966835625394388186973307767160140894527914233779143159940972518855310375721219494452792813764057703738364334302258092096740265212703888556924674458369471832540977284234671391031101800285718129406733538573852177004689652966040404985942021967989891897965703346491669911245892849835360441375842079044984220508454308547103654454650059628639803725584798593423866091939416008384305313711432443245971680038019805010302224386104318762347174467616639392653915833545291616593915730502526845550050880864153893410408649845477326218808303981312678063364867722764202045544620397641654328853348420658329853374356497924802481281663660912372937013946179147148223015657769943278366849010286004598792801769306100544755400129933149048278568762381900519663708595226469250559451930903131929939816711838594720298661547545256261455236181811137658138125650896064666718003251954047324062109499135885749939084667434831227326779433231601035548991267477910966320104617014094760330558234825423816674354987061691360527764580956994923271639930333916178519565065944206027751946545642209468194379695802645834470725848978965923591082418761745357975675893183021456930367063049791800698216129432370997536181428128895917842786290059892753207929353229860498372549086298654431614954759416823007512549728430589318651341524479449199706763546188116750625238448441648777201684585508564191118477467307306966177932419929208352853783530038523997076314215253386635457892522041262988401692968815281365137041424474730736509228688071367122423089051536001230574622340551267377838028148346425610829370431948309760229256865105359963968335372994811922599598949167842091839820199704327511127343903453408086178941403711960061181019029290919606848867132110262030113367833194902091761315936593922704990098542409516864965979388304549057335750920304838979969058065593073420211773130904665964675722328084997830904222930146271988597254441872260603134863914817493208420248280320669057751072573923295936579013281175172945996161756559888797867965343351705705368006804620762962185827898467680264768504447217636296628576350958744421541357687448696715292039167972616249638905546028184600247116784197632991266439309614778074906325895908689313023974305988344228870243798222222063267329164076942158969862144528218436836600318356945254857932534207412843708968555446255130355224241363861928744662777641620289885459659779089561663697216129335886848293597833107954957359603827765287192525189815009901110807412529355728561868973989410535094901416740599500941368660275439566058412072208448948118070927845826058952815285063061989267862947087004023705316003416459954815324137078745784132765986964539956144657818236602465782361688247424461734460099945111036579973881751488145591551645719006151400892470607080258340842376491169470762975979108772315311183890978461690889828315756782052047803099186694845206698651762717852152244375430858727438890844436998094300639578285385662190250959482193462256403842995062555955509113512952004145283965403199665279199921728429108269989553972361673521251676769575044321446452343118181982209355537283216401818050043220569739235126426137878881119121462624087718924668764978566920454732685180858556863749227039917309063760237185350695642391863950946494872868366719115347475048450156587009365060056485446149993106391940366876903767601999182169848350751844119122062926967841912978107110507999175320840353991971412776300362197337650483357918919710256084414810994853208025201243418269400097853783802789520131556298295962584634396391572286939877469686309098129562743342863451813214808488625806171761459542849022129101411042560119643215535611083816949144038554206112190091922097522384762958819193850030707343894600200854617691471859364823373926051751654787732162851444915324384682981560984206086987536479288963756785157827520481758347856703351354210214184302015278455200343520849577220392146747031702789668047183137940484222805777582369347516682101377269668158978072826860056019751496305900480376782842310709716638860965879957489411438761249116699240138501436580984921018054424057200845712230963084302123111209877389368599493651489887000957371857872307332098391413117941252152971750652937492637369305175025151030561598873748912952704580816843239614701206983364803057619475124773217988490758307667174708100626814177642057847428187064701176531238967590948950809641455902819993807697146491992837261604645932949375168902481038606781303164660616592789117403456786982037630171636061685065914421064326753310252501162633129716865124870330834201345829331553994231029098971349827332107837097557415668014108080466207197207132746839761301730934381582031948119154676968290955920594626475928169424089220443922233884333095481500471968289006586857060231264140113496625152603057229876779651303314189747663481739082863994351285259804649322477012528101942120272244228206258094882071152277725571597726496783339332776207193580833206999413611844750391291580509549744722183222785566594455344180240477381918744393339450172379938459942890504043682273263854037897356214830626718116592551499265703762784390058230631835128287903457922356097913146462111605715370923527542649688461055424995606102902918529374164322334325090697297866540357470103878856409657725912711106784459311216135574422062174790157210438126305337955609346635195823815808945602757512271218485023655168497257844526883048188559792180766905869103900138181208178138498271081224609402560631969279453472631508868821144664867346542556992068595235103572297300744227223921080033822058727244441525964097223001592241613258397518931287534858910965626128571668196220351876740937333701463389181825844349560419610602571278465568476760506183646122934025354590553088866053125486219791557445501412443472778556146445321638429891188150373253481924495096130870790553367622718255556006854907118348318878632971377641089327597393900635158359263750384123562122669215574630872583538745775239161108083031910106593758571849721174119816537181996218918554165410477468190220575229120148361191005416292551334378268393964839805662326601672813368210230270456857903484920712790200839958584587130097453797964173134656518006860512204529166941649864842745442115747909851048075657222864560936993307787088727415032866201493015466974527024859766553340922219321218839837469373143203066145791999278331114534763026434791266491425850184153700330392013034713271042855341459490224028944114816923970929884857257358422027569606948251652999923948928069755368965695953370510961349359121201467766446141420226312538159625677642073297698042632314270157314762377434466005245666754269504203214581262568157348653415239359100007243262647694181271335310332195661397338244712827919035434479615121549664880791039887773659212022746389545613678785495574378167063281344623403583154232967481283087472610735631663475308837504551619459466116357552096769724323500068372439161224116251366630931165964088882314465486894519487247692843719176857233868661513151098678619115665623431298264709439036805823598972185550245626465994178875632458727683674044282516537306848084168949826837466331060657415098923436523635195457165676127056093899576321383773329586284992325078499277424737457476423647268206077990966218186983342911380371455277304421386326510364692362159534599392423175897116614842527868764285765555764738639189577275309650011339803429354320994653828281343223784227132486909909119163774398223491100212709491987718442143807589281852167881015389533584197395373131349966304677790491263361003278931853275964623491101981895633073440453020699879628423265189310085979862809159550563820959096987919153960538153461926152784577123627779090179419442026045945126298401917179152747414152895197772473981660211791738775770161863118116238677953324651132152851071465400293918397786114894173005970023535260133120377263866930475365959603645559789161366817814775942726162761856710600238164256786535322044801383756812604344664295942310375754549453182321628188007523283189190378133981052026177355808925683973809612533394280920411332249841074564888020480927266395749375016905262465284723772461734527905956349710630930433413759109670719616984592430024553547985361826140855483125433534313436350422001726922884980723242862892731793832615347827259782853988899461170562787659795717449260661423837586750169955348844862444008231506463406826844917402891157862822214861148535130091596056987231190148533080524397090788377814680971002450145261204642185387106803099664982569178290746389648295145749305075468819835307677849413575741260317792645710584854703649772797453475208175520368099895143201237137375738357904637883436173198581130696292061792189221781225932259982545662630705927527442213710538125351699969808530019211918422538091720323174131639980384086631854443109048544682963196409220272250023434185195757717366497954193574752963646307792660575361660675771650459051595597249224488554785627032364142933152361439124329115764905816580181073767366435719456393590880330268680102359662074125882751500680078698910259119296572054194860028873358680911920102175223443555514881076536851351871042903701817967094573951268464387142053167062584364273770261302134371645804515741671151067040032318490584907130112493039863633145935543564832656682650716145556251098734170940138851893924927702914169124985858761150744032348268287731165311777196740421691168991244702329787807172054496625592511748875673770221971555646246344763912466348802075828860292761807755329349337157500046074891587968748492344400162388044303599294381224172542708152275500412454213266533253249994572587515287764904697320386409621939119543047362805362327980223996852668458257510034545677587003389312145778092538005977367441864384584685981308902040368196650627987902884302103721643697145461685792184969981788373587617028474247108851326422435699348187993278269620732297025249323638124224573951466752997694160196831702911546316461093116941045304179814682092801518150339821254784942666600172987100166414578456849754960459477428786019665904532347941383402143043113031624574346311540496984834148318769110230892442750521407970896053416700756259127872464580665259425419250047163629953622359648570590080219825129937468635724287964609713681288538662215002736692252682112600714004681741540117673077849695328068002873645803808464930173227797335988997446135500788651330688963997801896741078914475860291268953434326744442525463021608384204539949961008476786917815301438137709936413847049521529424526181347387808715897995701563986109905733734773977566490280385413571529434486524514883978110405031213798896490361589822817253845610761563054091796166255520771367918093145893159458386209616244661304358116035907536612679871947227143235365312787769796611025963795979373839187561340547791320079580191282336909100008115183594502093111781589726005397904733094174006280913606183832860416260847138852095793273788897647667050547443561366252024176870223732130212981999375296218332668467451748842133357760641816651651365956323585677008294696520334765125734217882515222325863411198484453777182183623662666118066135568953512668164013397936822478740331481814636987385308149162420464559398382444290076323279928661860963543978756490884244420017868565279634039775131371920925551426884390916762113287393579536108984922866184336137449142893252162139899536370498082371586229122415188723577417618906862721680559419658994947230637017672661135590738968136888169535700211167183807761977409138845240254853238906179132751732370267424422305307187891751446061583107339631451100616158354436017417992657062556661668276341154142929851242936545442398523222893079859443535073772250663726869232893695213609313911560333041809883284684815687844913316443571482041273216765950873720624311181784680124679052810706622226113754660457565133766082185432789057443200195899706792531349918346297840554226499346462367653453421660712490034438623205177349121408832545248394459927353968917747214052771226710328475741305460539853833193601572546742290889524295011608417946352714938796963771909743146797750511474019998120848931226067480718680295480814232449281505565795625724833588167166615531145509449943662329227978791395884098370077685134512630498432948277133716127293376114787178413197006378692813613926458902877869389436455543752710111805137810253089025961722277294487401217406748333942581678145462736429894098928774936970574049406569255065947495462364051199453271453836567919573744861914709509082765918950027250860091507860042097774886754841359499059685074461974224082881785606068016363314092348798219010932825353238225584889035702558454062498666339001704051464163184081517620964494536345407672983015055399018890941898066658229162029395634533796984160738184017051868667387887513670398428742725299393256125802698590099496141181918759005020059214648788765682138834740058595822981888299697695585734207998377351129059472260324462963421554072663397349162334233916683790842649503947541017110897302542767322011064182913042252321974195377680602058140647568386026852363450875082874152304161546619947820252407353616686617227737280012842828944339221798464987040193288000216151047201770521556135910892756738134641693026716688051724007408129022652536478143287100282841502915632538452999539419968736190310134879060734061613051655647997653392939978367007421224458341929028036915965385770818572103247512566999567134650680662681820205355647254317828318029675330177911363287658808496164547210435439340673111080061334677615956439330971658511237667320056612933864702195724968355932243370704822755790725664564328982353992993105495246997468000684853910619956340074402821308366670031042494891688563078657230062567897685460706941298691435730247652831213501170694930668010168745247765519517992965617039486272234764233550502553490781463666114957840058146392182164731418192594811670584154464899314017301929703927641728577978198122814997468206324277752114072472612309583943287487764470428097630147484564817756447160143151517722008943553645769770438828365491442288324615760589122215594478116051336569171960013245932113365152882323454151684265858064334358108020117388552552502148989538445825408834556056534595868584492635080282207669545945564702338996582341702266142769960182585550382328545921951625962947245900505582084758345298461981558201680482644862826315333635069600981858451779265885366451147424851649657657547376454835958684925387503216850556186622634037176411942595770838024352213468807280205108881687690867699172604337693825546247264405939135405321862213017041118465864630438234270379079600137890830715417157954574400421807216819560762565173504893729137655399504209976876730135593144438316336730768811794308275647729571539164620955655051876971874280953436084542089656133383229281757148571023156888368773325330761546788383636484851599072065249362794697515790720800242349592231617131909487451689425363154122063063687432078767297598091949603559929252100936258848662325201070085946159837489359089598545870250630434969243323493291140702691340567573825057368370411775715671188129998055761170249336661810317760147961737059690928558647421876490364041285032396164235988504256577045198739208326858777391756050695166686229183174442471594508198794146592069297920924242845623435964835686447939880964295199236286342702948399646601027523787268693921425357478438724581163083366843602633596723117669736789274931754225428074058310345715915798566230335158607168520075726053720547727310805782297281253314398131656449739918349974734110525051328695656464438983476684216703434042212825953482049279899177153328686418307835554438752378411889253415844877603092687534492397575924578360973480035774352139556550911933227843517622294645879811137314594267785913344989764877434062858402392830058607591771999882710024171084507153932748860538138433350206690412056549770855549050974100197310152145296098478410007528195906987096440402102576761148050600348098756799791089780037008684321229454396265386534721842775931914222699415036938451363756613218956933570336466054160391018195205754248778813454177283273301256267097612285904395366380123150763814104337416566966265057009335433685663424095610257384904392017791839817012988776162219000812599616372538509164153733945335409726740871622327553522765119476654718954506700962858665062575759607103648039714898102375943306070221092736954740920263092020622878277197962398687582502750746266599982308858101701145949105374990515407370187311908492546866151171299121845662155044740872154233639807149415398294268110948187311989971309498479597385368988710483979935294307627299937696078003801157930815299190869613641952016857339691618022676717729558806547411905941862548749405678425753242214471714936317637297096462978547946207837913928254837683749869264962771516220954197175320651969873090036823057990238283437778522296173878883296606834386385804342873840299687841509794642742222423457275396216161316068435213973082735800697740637056363628549986742243065414540115226750223437173124869263209603454036997340595110441881142628416833225485824145005149573537388589150320851958676203838197814743288493837601796743128986697212324602121963971651984897450447452580471316177848931616621423129076251976798080462588876362076080697806389848376471509184161340110675656257169331797210715626468729239605168037458206176868122145452704031073980771063081064481350502200970794811935177635231902531107877154400947679620863272420484982547344120087769365592793262188157015711319515596699365253790833746369395287356681288892465407291761571993074027149557481175020381235840010773195975982706539478001557638616691611663930400118573185678902647702466150166254834593305579635700931132535133776506049187968586095776533036796715367245514730850501555223864573013214471183493379634674421324961043552033414541962705215745251707074167616305674402094457910029511861958696393077349835978250555770218914558545572408865393366402248159113098136803020419719420567391487174114183816137868463879083735304725494919444465683456067433732865163343292509375671986494389494608299935693898939931413314090405724243911373593615008758441340367406680492488778262992395398787013504419740178250352476918780320741777948627987192005704835656225036137938922784056370811001652325823684373742067497702176850824014107705273268019859489268387836060460567245660878674225280125717428695618872356103959229299021055832473046007458084933047814253691423932732253989460492705973986766392840246339551592060539353678659247187828517001966024627061230996609621074032690111798269865527907697287566153385440877759507330813208437096911515473357346008317317431924204449665831755184702923429726040707042407656867353577709622589907232855929588957899000746544508428618011405492574267074756388427115320042176428083532727682717239795471877664583030815758707461807842441574780613100312668640343684432753503080128051202293653795594773300224898860509881142555493052844607531667385648543732841782032605945941273689565355165128269199029332788085268571096557824224374124705981703257688404766852117153492178491894088635457513082215106295617799271931929952091568510643772423577355179037797666820738388801358646002712698026819371793273128127298335972721662809624257558657427890523673610941650931744262383968898251956382833821556173604344028955894697075187695627083327003066193336151610739818890020447715393225188432730336965681246832955659995159528453567898708717263625069866636938225924314150577906187203113469902225019321931056310618996557916443844945006682148081796262580669265948134702384248126401606759515315721596939550105489933354719122033935675077507048615945392952397115499993449005305330836278333779072248502009362351268412532498858858610057922646025402960023179349334363648792446038095945481148024466341821224397376325722620549535640038395159954877030049274775253346281068739986037038545858692066202300498483754578382039957565987993520008879214462561858442913819250450623700869812380811651489442916820387153840515011317367725705983993378607008036697336399002906815488347236437437369880133990744902719464454616145222020540896293139943328172239016929939547349698866979262623739653745778821168594119663527734039463731664148733899893785598386409473766856533484079683331344689806685844086616946388024595548422345154065832799464295300203878117019067315039184169569051462466640389891617016836516177237871914790480323059423841105324047050048254000522272622793578592742318008573977060202323525580127594027766226160538467949531581941313094080815999525604733697691856702086901044968857390759559740771054743238706878079230414450556576647965744498283334168925351387786395127318326819083430450036574168739958883787355519363927299026835523813512745724498577353526597644551766439141199011639350554510220326047178021341574228600395515295434864666444601102074207046065353948849432055031054041913852063729607220078513579303949651729239407821370329839167347846084446321735268104169009193228849230851297302892459877507724890666856714081468423363249620451734803903616563050445128097024323464599043588550042071570957230321192099812727548767255174041713633855780610122884720629276272839338160699900936364985835222750225431865805756764583344178817862708278137242635423358480125214493192628432300088465564528469655255217884441195036650048429902368564957826772282998432461543291555226708467561212233141564232645259719318484746394282795132894642789567514626126211815995471493757581394129299589032356003418736526116977988807356941893190970155431880139411897320085110373505536959479474816538342417317952509667652708727314297940820182256940353330937069181061726780871610073595277555986060396823541045192622369780631140233505063532756712943341448690573797605455982740142625576958942690483620592196753512396347990480181236493414299879957478514188533795527468613600071178725477534270124801804994416458760400096419526595475043195640466793403309351940490870631456369139937484048154744590771102282110499246796303037622113667609296738185748923762657136087337834024821902011609379478915113091266928838593020982496737761090070787768659965225517880992393780854239274221163021813798008273871705696496765233520683214036807556238356648696452209840972405873145311637416014189157016118087463792535967292044277067103687965094067717995083301056209445695316852286572858255379516641696035604935337616459301486161924278793698107335349673800549537885562594875871392664053729292992172314588327067722699388845016371595951164617261788624806419304697219541963669186306491052607486034479394787189827951633993633835040542263188902403145585199194966464886352447381103167080749327775368470733076868029600780485634978139252884807116308714940894897664450684132968133118167243505887176358473627068507871094908664184366388102800873665737358881786855942033687960265880759546440172081483401671913873007375892458774284082694788516534906397292440452334200407388638861819242517570630138983033317376551715679271887601415936330580617629817397531618091632131268118859465392406051258437589032743658786576016078416102002199444104727322158033826018302181954067714400359595727786096624023353113013596144964927844150230317210124707295589241158340604853871005200819889221396792749054363716482261906666074282395872769024376353136686085125878592646484271046630348598773092118856708980343202699701499127944999507048566682208514646688282863997056061216538832408131803487352828542112136234166981711271041083370174207708412112658642284672076890150662903149475904521056250989875568227420045380342163465667758400713328859084930486138558793088257447977162259438069330712617758525600574459946319522184760287925263128382886024029131945396710074482473966435590408657679668044553124205243259750933879411696947512834510952753703516282021699760255531187190429785852028075323747709833249819398110542918989630311339786395745163301756701330576115426911608731447245695918925980814324116692662964317250883931849769407415920138060842880319697830688455847016380660822403074245790736767497110566007172453522471262798219866724313701167647525159753942138435140415250946438197096583011437965043624530132130268999235107852788352122364406361747103416465154157605025535198358958866550877474613303866032996096965276921683121375572458631501451831507625885937366210823931777291941495823217268049237074663293875615952346636251083760157231868135005895469211943594265108957135837932876322699700509435593895229804468316594736855362907826412397755690943417172211605378549567270474880262770796502820784372088425965293494811135191609948192343040551557951348954152123753637728349196839833497557653376624436555539240201195482243594928108781028272148739268266259019564921029981298686961393879807426781943803888774310066916224323799028916877756575299941040587498986916012912586627147347289393905809647485875722435963823879330738565893181565338010022192411969093870225090965188710239652997909883674590566681159782982848036485043787233902126950208255471164421110552863186953695464617168843465876444661779234897667247854436049598386395831431497554825382278478013489442131793718600769891204826554181813781992565070878461940066976094156512070364420722934820727023508824664302259900412355639842746741668698291764662981456839642338243250288007190667766816376949746679565318964185741225684219726926188129696637926771797108047272291839763590060708139635244788503081280120903830027712865186042467376350483378808007120518034744550936971104838970003459484964284225570805077447761027220799314200156173566853585451264592795313233077019995459771342155827312537303993342623279824313515278662933683692848911266532188726483241065087169677459530379250299207973931729333127437630922380341127269379726369172443649292857791915559952017926108256983792875754387254967629777820444809384016939570200049861160113402204764654283185312974003219250801159308378069795246119601669428173136828679454333562621289099229961609373580759300908220563617548832761538528484121965477402803688572198286960924869546659790931717893630900124029429435523105362780495949051029358841302000300246149163289511542986606883830420865949429431759378528471325179190618581256509689112246985384592058397995416000324582124579119616163408495571236272703251450573115070234588021706079143788293437852724015728948623555133549295453094980310719490380136256167738067703081602265983257619538612208153130516281565333062943566894125522128671357477350971965417210306661293532880851441510123923908065354974895063346525049547777446769450243556803133391714120694730438843862611277990388992584415459751315827980871793955153125242858841327810003276227700317078272827444975436046060246938418890184878865145324457132234528098004118473885318909358727490537003543841992322556875252682721552308753588464643872810424598634754149217840064441021316400989388498030091337515197831215299254236111560397072615208810580085678018081453070782659040960600599632334562408867798179197518748044056480042613896286015230561669600582757555336360409833493631387279723817331258042369325925757836378279305719780359872781878873783663283195494281229134092740022965905171802071478321645271719301040684010207206759050091420718308101552540753743414172977050772924269941247903994498165869997317298341534377547419539175451066375615816854320766889086735608494075341413462986346138550516078620635984482261890314369027997539575050155122270549016635786243778228968668589463749966190191320969974043952829393808108300543756560960870274462417419190923629509857323253682459962680604147925505019021136252286227523247081892781634056987247726908862707301629541917200226109969438768602080778110787605522710043085905138794368315050712602780815056853001615945115716190807542528420561499505305023687627447375742260863355789554192164841279495764320073887065667674104274788408517624482575831382886629067179860272467414043630352633215594505729488469081251935731710827514425460880305035973952361702664848143177612952987567526737462039371315788257298948590029947913073532950402800958188572945086226097357636516080036022445447932303921618464426815057995250849934281130234519225864012198806827075425455884850990190060976702676609796481675737770673411011693594833052238533334611241187301327683682710452550237302269607604159443819676691644457073634412531504833810080159628905410843622767069966050316263076168157055643886421887904486388875969985600645428428119662001488736053184635467073270122974481101218693540205085550210332751544988358004327560655859476770265984426786881800211734394120221339339090849169348992086761546056443854480156262978225744225903720012838241978944486853709646843118679812043159144301447906664281220886916816863079356040286876666111751792422465074866233522491367499852767703819247899703284929190855256794711110263258110666062633296500819171026327218393352797881398175657641816187938904621230310613103691789925866372416403095585409445607334141473923560231854083316761040661913035863489197198493442262438515166208787419358894763899425781774834308997202527670904668817014802684846689203385059100601339369286991399868391178773205772147244611845347061860345345286467605676250420141231442451654208521117498678707469737908448226123581665599750436127808763659424715840018697844173402428288708316163594885128516928870914210950847171076727978532852370795044063491428839953844548592509361380264725266167050827843111202673852540074986251128430273101945373465428708770022642282189488574534262383959360723969099157148010271285433932087601052950484097213298026147109688030011069857792214615199334488464729907394126633499447003392709907693059848607635709001318012930699671838953760669504048398977560250179113448108658614148396155510636378157494279911758920230462823181837707336419017485517310833308293144198166494722059613291597268851343058839319587195068547516647975903587972212396213985189300438653544679779425149780390191603268363031189780419187828516800414744602108269136679607037522887831079993960915837651967296866886602439096962268799026987490872468601809402829904044786385588459203805200952543387309991954090215681467422048626362698792963946980739514108613501069783696962938649112497048655387576060832309925399790564898025823163193035241238916588029934733863094675043136729453571855539034621627903454569949170688067796519318684449386320519152532430533032473099583972517097359894501844946433162918645478028086344744180020535286857193206147113203148531361923979970524348816801233477939935497991354411523151298727137069385204295376451386496776461558404583126531268944215508011615829179004777083344076832838899407748812661419689250905241645094392371342082377103758018201642245402223810018409265229871427276087156082006379635761628276383246622241937955749754350196204398554770514730508601168890973071529353271603131510891362444821352989842395928673735385500239358012288540727731035171180309182204709901444918068841685458294864934862808132234809896168093479447086679497052456458593568059543679725169443160386975583809017972451578284342057759309832029924952161048776928945444587108280878362889327998797207437796148112429735817478254496228496039362696085497915027148877978810975242168463091960123580359774946641599886803667191580457889828873782463485951930198185419807699727082846922954311094495005497397454848237699117229186719439060382195781735802519304508552490867696641167400182717484660853183124184403549075909366565288819802049577481341358552045467382535948686404450773927947094501469981903371895732287638856946059033756001443222922147655923463062722244556815118787732406296069108140022257343690085011265848957046978605903154641789030242693947137043042781122775401539155759593613992071873441520924896707046455943981359739208539357881213754922610066766849713222092048676857475045634496290090587211259212412098613230635922469512431442853290490188263873731344939299477772506289025235053065343911161154879096683062537514082899312317620631661184122518461507289354466959710456267917461916508413477154276529303685585485372644450972640878721668242263227604435808663345290872418415192535645542407992582590085384392597333415218896501150499494506143792976677425366135144684933892950950460938211916740783624076123273451035154492902220527803966176877669128008493238997205668627162632580808645635385144434424482626173986547458609183906743058822354366988802668903532966921832900950212359927018881501217050390636316957792652558389066417325871353664986521263917890684113251559738669436999609102830679789294559697654733536901267407616908998505509165110083739532132472724967371346350546448401648003511318254074573321638416996404518208672771577994264450391084528571133092283443968285732649308980472018262984707982358433815062608930888877547191810926547098967579155492838963368051796595726058707592493935353882275545951543959502134344418277918324798175210334904831454953828353607756015570594369933977756504601094808817298454074541927141021913175555581083197181999313517932510996118132958135040740363545452903797308183470041684489558046593142635055050620231798137205774482571046731419790477191996201074409729084179030760505869448580285020302217602801351216629188217182771264092267058306272658636177271076241468227431754083359726201203979932974566719913727653892865937501023412478177841423128739643252654290902128227736002501755683711272310759209467798440794941664360816267623146231968558632575873545654120886311781696571592275507929546155794039714329695509960259068478206916179785952928700469734121289309240485530055288788940620427305824628399912289781782681967261056821132310080863381229785175051399713069957550231323183090972292009210494980407851002514482818008078564743002020987143393331778948012674165173707525925902403838040692917042119799562755965504174053691637012940216918449649517188206065230800286330813577217406033430383237103660203419082557276409518144357307506348093390405516183877418586958439716027759253652164547420828012957150472510396964653735143207104265241072202031084759635951023646129631496940129332691183776469988065379002647076524916818191758525368198827295044911555316992968006544222815882331191213268295775916200209261782937922669339775018879572088438205487990468018415475021910679599946393783539866586021189824593513756038707696966655840304000942927724059083034683985840226815386814816116707688866556821084650274222464813979274457378696419174030447764740851588965558967511520130535950662848648782984375386128405100648636049017614718409469838534830346514979892628042468832004593868462402192544457854213887367004360781356617247184397093057746900561672500520573538211169928679654006548746220174172744590511380372154364042040896632459344217152952496372312107849507292081148722650039525075288959862000334428133044058422246725373333523822613221975205338433460596854838505981620051473229601736837442114742049022460006295294222581708141799727470172877720418038410864279795882849254698546319211128525178930055175223466063862652300641024422775177551083321428958567211905367081155443562658573900517576464739690695708126446871661438755560501610398964581055677188194867902854292589901428513208573822034827840411559220747019540287811163915509558738012332733988257962898585887266794102368992243454351309515052298008213970856708647046683830220668587906279618257826863433283906587925697680193612980782228424302627270350901960934715888868298811745486243621654081288807974081562061003392285796187694844453953857724592091909789126543669919390743780217631491038959917566482996301268210542368509550869166390802127302677886558886918829385440617561568937718527347455348701655249588083902957379463677947118730060378843681825394683899285187065514887922645219725026065473434209246014112505781711019514411443345525364129325754785649939854617972730699987132668726265215926646444583010390587834580593522094013694356467660447163026670339986651251210801393731176785264804997342362797713509466841435199111345257591680311396925364088910778593424260468698276271623198067338084938085877155035590137999932252038563911316472318966522426933269475706751695391605182238224802220827550156033236922765808547433415400857943736458769231445041058612777079421672725016740411789714118288531694587600111672293382071468694141754433238095676795122033527791380529693879814745295878228149289427453074201810407068867060342664859561728192062415332217422634714457241595587608189663457047110817145338513698785104008118112804436949613598842614917079809574521644637799792567631340170166494086180742734534296684756173682585292235348431919450988739399996498166766883928594059849580130492030327496726736825007918881783800913841266968134416360294640593081536463677412024085543218004727834530443280934391718023129124921587264353977225985055866406966593969129482191497353020991526867904060993592619420143836846753132922806399481477792238995054565452810111913052140196063349014444087331963691111371194535577185543404781083284730781693420738609720628272632760780761778333013241272148024082508138186890064220613484510989305724657879939225549519606596982208112094661320195349086475729280253612439683877808861458297568994749506649674881747608270479349726414502219469585162190403656917775552394489220542503365052550115084462468725781359938520668546787936774468004048197304062408274746433829137827268301752317730608456848021447943625519608149975167364908670789689931343956758786368271126732132267890470148128070318010396243147004589720376680695599863460094020846143572818839767798505363006169974691907770358997704667741691477327664496491161279049894667641834636965539489591095206320448691026776287972992067085915267541519456189122062171450939697274339894952204037462912441051935098979966491120937595810471117455893612565344652725040574006171636693510451054377879520328709217313156526580495305682293614832556233956786543727603836941639075722709616249958936088458131815197799501116474606743748497260450879978156359182469248433373367365662057401464751064442548558425921509993196894913257846703854921092686492028466243398474830304710943884504850712380498878697979398514167601450575573492692366418255426518925376955974580793553455192204249912085286223457038090604337634114121158479100798745558393275103391882218874715705437463469216736673650591089036281753599076649987601672662830509548109017877902632129402112843012727375571484199922786846760931419973736395637580868275150771128016543573449620066337173785128442107177497715953058793143496695432943407204439890048246936026933247565542735767959122112419964216735206088062360585541551743578028921557869329021579505982277991449116715391344851681204692808140751810215629603373313016043539515653929643597444736752143241969892900219685954796731858374928649484840402372810648548578411991079409180365351865635824911728205494692994069922514867899754607915647424921811998695487018655689323752246748471899155859575513181528335281474013697163146350031861729813735627492161982586057204032262434803339176371879312207697678649186437212164870258044527452194059461128729237255320955091795632893051770530779957859553728656524689681398766669347624604703634367035290663296571476876772045956153401161097990128221681533461084051329921484687629662372594831484029068618490892695882252727087963333268067870774600124083033827019598580246402612772562826388270791638343924125893636741710909263248458204651638101870869655588959624705823511866487878477939752877417297475031617737282063354975149100256617826948613325161100873890443042981795569835866788295759643064638674636122411979914809395983577112674376642842213540827294432992276482914641644480727431257298839142372814251795445675895327057062531432332398614270749626732950645730661476702874729366362940948831880345985588354424484871242389891037836061147842322267096378580005307247319575395098790494098849212272804806213120134811050626902423927896684483293773645159189378023417449304830346596681089033862334092997336604973544615172631376458163509818745587246820818557604636318170569595690873090003840339124183612952470802356302674176804161340778812012488330043373550161454382975368104349642592051875221159108521695833285208751518584859423995288627988726070725143294264174957084865563175843859608788046052009707342207043688215244375396469981395922428679584089281056510144554775813307426884514875279986207064547025660617184683266909966603329335937084312796409556225851008239381727674105423692128057043694342122864261141740517706788426833314351971412384012595465995083790509597283866504273281861005708467958320198697929685264451242451074936395006322388061635236275156341721421162356516373384788234889367222618464621994022482922276458365609936073881883921530221169569387907259025764749443937921502605538923465968778931852532984411715781854307489274723845383519132547215831936727009977994666703437031206629398233774936934052398164024756728592231270096339851971313512690883543404090009900424534441226956404625752558486444998352172827664611729205085047891565551283434232646547142721690567774475560078614454280330887451351867893656496411192427903521954900307265724449913299266778412767134357020021512594071269206126301140021217283517516477167671170704798978700745444855561407658994439367647653212929337862172718249954327844656510237025437710929154864866835760201583983786277333394843974641867507414419607762404305193882986710748755937787821264111099526924925170024336219114271741477630872195925481789848955211172775868375665584155064762545336746247561070093343472132193032467352603319708793315304907041100514076073365870534055191126070414051502979707266555562354269833034850120376452987316020285653014697665018942204981910529847349136535076754424343218688608820546057846015984423482045523227060659096540753515517243352834132550918038725783060341822933811525720576578132238514880859659257402930999913217937709890568272922864686387881951439937550867256372561162911347768462944384954998522481393825466118022439771555739736004534298698280578392063365753819774877080535536320962227626675815829584975356051525870968195111734003308159587407844939626469767984013653441335814763169415677939357050990157814687046460567116502607548312428028001976224084142325105376039910169566844264131826623693643244812288212050874287874951130686913144363127452549405382829854059738469796086036926560344118848919067494853971818087153487873915477337603177115576785442241686014219676248198087739341437556409539892722553258480768387601903859168900831166314412665580970212100716102538718924338224481432131613653941125738356309294831240710033034419051237882455220780319025343786107019768923754049664677056738270489394985087940187285373638606421517204170343050558676781161346291376114551368010744731839686346972197207468337965696066256124836454624670327919791681271856711691532970555681567132007733425890872082155628756592280873196069534580824988824615470426681688799148092963890988222060343981356758115979047408140900879033091731816795917562572017142364358215971406071161526631235252376807800406605685130591228511641293920738357196909762645881591865807051707697773709011673021487575473755337008489017643646293888695646520806176649590332505444665113968510097869767263981237815429860991896667469752090562898171686215803811606508162111231191386182292844237537875385603427366923865090999848872110877007558544781745546439916188183332684704594693958913038291706233310297046060950766202695957664997226807912132777268015024813275984817540530003931273119852864600633838163765371840856327823978609209377690915507880900416567860174103570153145091047362480176123069785010208317351038481962397192804025355604055350062071504529282867575414611165764563018473998139068495216772430305216672010591495134366513850530332246130606615125668793641052191893427700769789939793512619416145893753960583567904501571890638794945227455823660657627354530637695903576097110513495707995298637575062758185140194680896238655667098588751019948895660569015085037775194867735421519415885625719637268654109779261195025592315812977787611851201630604337898013968975705066789277785518921988792502710994232511435737183403144600737063580025145038092354719033416723888565801373629303348841796482694106077132286436546686816771719187620879666489233969868553422504638715721661625658947744695468268129698756901433597056978981667892567011469921178063447087050127770871925200100642554836745534408222883658178798752401489856934921854512678480524620286763597530297834883136922026614967886273324077441650180301720119737319807653201534431522563191943015937392201895818614520936104178969425031257949006931256778289456703444425670365348820550204161736270382414425941807319364710837491148489495684522899937599664712622526525992540650381434959962344208170009092662647771454554681535317747867140497156433180836206530494607663451220844184364096264535144879767825493570969866744087206747312610233715392974097612897083684454009901550057171663931668892567749989373034142093740039543671406696631819815333819907261289297241204186109028331044366009499258069956356833255672381356297255895857344826133176702145837919188237693360255698080995206044257117245557978696063747152407368862037797385486104624325746471710718207149013917495672973894006049745106149247775802167840184032259754489504506562845493255679507219759343571642015664611388486874675784706486125093321837076717072555419101054177779446063350973899095986656263387013469756099971516865400271739639875947742161374164332789995938144048451175273952782020452067447850708716746632129447884427924745886441471453141611191300448364812704471564794458007548257310063407229553892695492046029225657620945443826986096770146964768248276159308242309055259581813470784868767634887110412947937750784307299812900699891537137053601489974717293882766928334573261059786852378656740822166498986762212422975470367954053789438582508284520815250648682885857954500322935456915667763739907909239003704856924149872898926116677667974092337539455892403204263261549801923353192310576477528281518202562707884353915853215307802650239613825335405288895946540135197370110201848036363949154986879228674738568453664528919994260145181536828404706205434419387000269593656835760936182888326276713733074379685692531008215350044543592616798965253779541020723130550478776041725026432553107215618850440132184509097986511155380318115308784240512484341774736746095430720565291688025590516514958694280154264592075543429418535962559982330313149649946440841057718556702660063329632443088188050694868302871546659996994547257127637170709727845535422241177721659359975100091896908901604604727997147817547267638343214993499165279348209918168164506015356409815638348279087366519684458879218316105242097477861130999680377115840662360143762594155510407582482497621183025007926735861821400922962712678358887760186151254578191932371709979983568039121553942349277561645478156683317843613180698868120377171795328218561648153638013186615112039498919195482524824760859357008057455845600061814114077895429206395650933422597044198807211443959178327792487540285097596536736210369609981756358976639590431321248731179087929743539638386309269949576423894182159460650626831739188890154232363179626929839031172975820367313622403199829619229329867993080829694500764291936275035010278014589709296831450790139071883325655339075811884667552142997738793714888596771410436648782041761017456861661942894254572672093252374276791345216143431706529284917794974065851365297936303066565472228788544070618513350068208421546023666034073978645817936979966121021023579691170285548906750117185195749726440391394038421295905142641628063662238319531259740227561710778274018352217793934802583146054296111498775263597565419284638686513899564168564674751259728474881772260942640856263577211200975380638364141230986531428012403207577841415475782714609919731165538959222785658193710161195115424636698559311157327539058939948872953870535440744045204704203217376767615258887805662106550472163859167986560435588788581474338514252336490787890286157992163166775472307626196717377962362642515636770791213489419901770040998333573440586964171265470067399033485433527902722103361848774229262457174935282353067576986115902828632112170414879163967387820279003062097123094392919868798601743655135074604908471340826770670451932921072963243369074128885056282084895702247134265113573461913896483936792301758085727740283272456480167236119572403600797639409626973118400065083077762122472402745707641380083706883705582193864883216912271684469006891115430782218709894910782245557794322866373545473882272597021579394143438660655166557232366717517162414665704176618785538747993397939695522980982202862050192504233052743599624588962546142579549862530330161627244824477076612220688880753220450726651718917575628161882621080016477368362703134750092384431457683165290339392644044911435694982852957175719329783575901267535031428772255019049343900960871483852607208926671639123312182013558472572434860388848616072456668250461791535686614371241380650768026431066623950921683940396201163900494768956095981981619973297209128543678549931102407473150003155313772675443821805870191352394837994450097562815625812575417071074370416031835047477648098159267696876676555879680605310110981496767544151589114673944166542032622968391228964685819501138660421604907340224098735802102985083771574937343616743570975756184873317894892964699538378091137639617588497204192360757527063000947107967312040444379231460736895399534723945694861376371230294674572817063700315271778151754072745315325693099693757393897579809936000554638239675587712594622648879404878687802651099774126486348142918205600907921224204216790057675000735268772288965902880808108024870694796519893837334573217959145108070801342151860505879002546291990722836353871273551658535023313399873291616604595808212737331782343007189207915489698742372094735631360917633821691437643141471114753803958600678089426188088985311503460914138288991144353569241832121835532126949588575067701632904870227887909232663146853851388460678377599363310894632214913436812361830346658029970712414600001329204294039005579142496288060670760141493471764599571438170428092223022146499155719369517294675910199751898028660071060554897856422796120347731759103202682542253065027136797513859501527399180226875812932709264217641741092265811495498886892554254611955489087515660333459803158696746822007579796929033104154103358652884308157883353559036107509620815329377193930672062094340016262752909692045184878267600973848602821546291782218306816365360622609121213832209054352537237578561232254122779705801614124974931655300575967896055422226643123474455323241777901558642058425736589880935049376231702668150041958671407390943680268406080399362855001691820140376916428012715600530388483242562035765737758027905419220753213063444085743776806677961563343044069789677831798320904276862343243917074617055167479021536826715301992248637607902106051152946598903866520997404777311921465474180951304571423398913141769785396928477157002130294962840025733555742565994183676213846516879704088829789651897065814814202012712571618716289495503981331090640849942214446445965954494993045971379098362483336216147469883700057279539397536545041659111136251180493179043131248269169062035871645872180480879065853068420948101005459983300187643305952311636890231889743909481541775296002588686438242807736482163292016847036401502223555202535877760310304874461518865244212551588774099207792728462046632384727759450618465347900258576983692321244336694564788560082665870388086340895445731639742657874115447464657525174355424495916269578913175009085176600442809142403989194728667782093798661404687484255528479513689735656064568973254672617644303189376204884727043249381822363770517962724926881813070303423976657527295246327255278888724846911415029464611264004791269629872241292772647840811719634737858618229448362943024120655823784844166425871436207220469561925473563144639720247882317425682035130198711426288170899646522881929537833195555976381568295187951890920391429424058670324919181772633207916493721130880429889288068787155683188350330990218704905093497785689229009914808926219830744745132236728437746150816013025913943874074086562527534758393123338143002839662167026419405222339233748406499953671803621263320850849553893972581327191755121998273021632177169383697766118949986001376213575036509899080323262333000029411939570704607024389878133201290176057167023218781826582591622797034225142566001648008493526672828847915184474648764281344490585878416527359275434649183904205192001113692692043997246086742566048467781002801579834030538326207415938388476023012922300007395370884221504400216663130988703951703835264181734651486586263539228476006657869981743095453504166518578966804975079779347572266563325461150311256813597829105626879562644482788871721484421875073544056576550012393218898420047499172899271005955060161973709772510628500141968887784489259154341425221811231838997485422357797657264853509491116108757365085705416068160171840721631028636548071396595479442326664666658667167027414739921777003417629566840899773178987877283902046949907698535516579335069715369693690507954203031158888502066134247062230979086758783167016400244350588002606238949066121733745837754311459820688082007522911974689206252631673465714896705426056946691826031579571167971921024787493858097139214223934502616185539374315515217062293194933120590420041626607564878842216302950819354531497917325542386133412125552551242443047599983072699115498472108172499417369870479736088745215629969050340337987660294515940857970828210703499943907481096153877003909698946865601000205074188010224530311310374743998916364415735220316674242472672127640697769187135323606706311880447232958889173883953502273804268918125567076186713986117077187249302613828188239625171721372295517226236989657659159893673521043601511979886745883338408775267162399355304520754143569217139305476958904534065673237334698898005148340733887427323430212054550711107633354781306804976114588278328653736516472072750261912295253382925980268183717420000672363606525067313354266687459612349386531233545705104813640017818583165396826721809699808898674770329691712142654778582454366494423146631616232653583042676047902663789998763121581956752327973426199410315359631575701491394953223099249939756867941572758416976418676455002276775667756192025527008213416526247984774322953657591085604754145662919491532106602196251612972713234776209132341666040819130689267485812124482616161998210563756925428524314615057604597086936858999142321962163835049570183208408688564279349670815573859270248033909136679752900849663485345103560822261245354315687455394768479169326616174270738310775244213076719683003020134576221962007682177755365940362169035816568829114488176934126957215220284458325776861934513826655869808663424330292384079570057576914594062250554611233203804890975271673053152504043181986401110573197401339241139334917514131729202476338575815775657853717111363023607253576951836312505016524357723834234564407607856934966017389392209478252989801248626399293607029930263006206767463365864248340084169824339610130416415636423707402341919247361232194188926956284307565729820102803888262907531362350917355058156450131134282100987743133095117401184359236466433859833244957872033264677749430005596494273843209469433690163447512067269112543756844221612225792050054630561277517147492325612605477453952196242997322889621150297450970433387296308366158584874257964331887872423190934356615204185626842187225164028038521728350540458656346556225608122518160370250561110538475906121057747278060777274714905162701593253273163094409806011525512714566279550291696933833455905745072980243574621080608412732808327177030785832500301510239229568934185936365925244072941337379937140448585048322795785548453967028190166446745590771524919792152104427424741168052823700203380229775263491607765199164882261236166455737421812927236511186935129765860392565282152620689429918915658813820877096392447334366943638863838078883539011641010616234944362897759473257830727687907309462298925254738162782170595459779324302944350435669936926767789042045003394397080313194734535546949331115493307840677505081774394832586663210692948322896974040539124665894640253953944298202565357532128146236543364131456822507877684853501254615617589230836345784181406464341311730216825530383419543693195037157155731560984639059358854712189158787251992049059394295266816894890955636643354239135806144291973917396706525300425630036130818685855480852873111265977128197629500869271727439836959043202063874216833201567332637272205050349812708948358453793349368874127195572982773095391095349661532963450924138300026882064368320393248651435773853351307542407750442092783195294027977471483532251828761699726081227565328027135278912999643309061655198566025148800862668709612120268873051189685763276770126017084506852962027838411029279259781072796543250507221429816189207628611977294848745651791742006904886259477643058108557578893393721278984500894853570682877752862949041387968990173535033351935370336415561444196775873461600369131150004251212805230790802670636710026022587450440056702712225616710889106600353964956885861974230995901764474159824393196919310217382434885616343384961960133496105224275745365601089005114507922458196758296706573008534858256823538863140753468310384648162709767445601164522334090625008077121783309248035757563774227815147443785173281762663021998092778486014824426846015171622960699171217679579426972613170999905433338985724165195417593953597071799337841331031805414839193185149206986849941213385832025605251194781525496407548773676889030511271310414818431390463525743278512294803586034409350985044872824373368193705685691308586782571739207181454060322798587697233830581288890660913763715564636838190388448337532865557064371375331641500338240206591929741720968132128880835588812224855935217040527694521472497446240048102642882219228350337914569856081358462450648220145503075025164522841621031458761386842398065895066964141706382887011732014245173912960854608743024986891825549048272092925125046153426481706191045889016923828790491713044845396160178254758575816594307662620740752400000395814954606443879285322999189322311682572327086945647378477418999780286392096095729151425837514109196029407266615322634253791519009393839272701551336725047328528937368685478871594756073940143745620874648906447734341159249297803234328105398556742067033733309860306521181157216604397179832022077887799221586092216191887103584876795357958915747380850773158419037151772213855548466528678119169643022602035694122732350457219846328300342775533382709727099458257423621104601491697981047221066432767503852085612106390917356819660416116027530528331766993695654293463012941643303530758824474995216857169678448136375260193528493605059975104687640172041984030909962800200956521661602339428991933341458348467010462794462498329167056991239238686943825011869719532980703814283919425623680223558881316985644970728874836813035056742194868378598312461110250823152823252212596586751185717793353360660156960079659313952143073957711397288616429409129336939278957093668466108183250662135012487699725294246834302953328802152032845437081378298161061998227460072249787136459082520886177895036196519840801631990551601210193856885423533120870484787946156247779348523740905350912785053249658340949741140881835114997638830284672844961458367379542862481785894602051446853023404512205519939857357593067020377527501521763463048510090936588193745146879184271594049186192469438541834539190849160374865345892531741725602771622376741249839549086341495874279923863132795353327671567502341526511266326299951755355031857236907502448478215103628307919215015264185430352218082800510669226432977581755488750601712034342375268139802276825088884397832844400626347538664450512671836726157952342458519055839607980008436837774186708679435752064180360894678858487751439581763981540331642379575958844001540354376838103166114009512889352412617690088809659753740503702107699836329575545842762144905106120756535251894459858693753843903648053294140137467100925858411085948464461608292841896457798105241563345574931188542897502093099433499233590554073423740229022694994467937772009200566230312280668509602453415329783105996784251574460535776809611888073447083629903779459183702177712910167960080310289417451955332092085486250998215273061011639696683962457818940198814866845567646685973447829968583846263999212673175503524095819028701098387048062378829841383323297936611068630596271934085385155173341373374267189859029772351905233319080152782860473615692075225860525582052611179221384569865196077255124117598424243787690330357674323770333481915735623944517224631574148550717186190954990616599977332584725146949873021881349901448643046461932122017422536159799906781849936567582952340944340756556864967087262658314565963512739437935809319433832371632909544150663224432452592832179451398654444161663463149675255463371238587261859412431530246142398894274535856401871307280836319898076377735413349987498948259529374065376641875776285094040187492901118843676455421928575206305806276855340013601497891819948369256195491062974094975345431924809432079567499778229471437069058398018676450698894029927930894375552161351626471240628572208664201391232345371171223998170594062794270998139850818803610713843730699529874511286543608363244676653477393119209549183688239467158388550253001482392084720899516698653116234910084343393005557432856562098822567510194191450311356894172232321086056417768524023806270834056094088489980092504410689417444212267131985488928070228476027589811137986719447810050758256379176301988629410380909384757434973019332571637707940168288595272527575406981708749838600667039987745567756192793955279509444378167284313916298468600100754666846566205993904203778291995917039506328042217797839232941449329010867665384761648179969346074876835622786254133283251585409641889188805926998777380793483393252290048440198283291777004999804294277383593557141645539533364477049761586384481758319758941776895458378916887922667832114164626167505556841409460135378653159641068927885771189994212084159286649954526291616597110182162095219344794442105630175264453813028074900605087681876429269806814217706567443422402218118256289844384392444251651214893115382024054229273016077483786658123458871937244192438576842318837713062395942878447239247134996071793147470952758319879002145477339326158006819446632930343848492869085944808802726508561342569960979104442620099773618919282795211064927685041526212786498993550532424005602663609121722479656468105219437682346224034995619173368028241417228589905982844599637494612368175272933457815690170309345153298638651215334803544914426085035727191484976364286155088558154902046398855063495904722523662896414858430172488099824478106697095000334015762690956019240802744482879628468779881590798052241496072148181015024122820988741225951395899221669822489261063973383600806292050294386596177953324074490494317441206566930755670837549232457083510487408923919346170357460376138295097305591071734101615940064843626549875137813854483815781120907901927651324738068574716359377805588391819845664282343761955957004787143780021701981046706294695931103388665422061071318050717599845076742072232388396073840269985913440177318028648721545313351436710296977595057198931272492941086216880301241546975119744535816474978657141677983777847504584252714990059043374425785193897057018868742940678252873959392747958350108331035818706250517890439768802334915142908440865345227710262076913745250439692410320320462895422687304375685174937111737930093718919876719409649017434793359950067313559606608198725420842081515107010169512413680530088699339969164505078425481835977631853998835346435808645861621039616093327933855884999360280592223659240676378383481236426865537377106311349529767344750108827335202060855823963014511686909786508062011765714889229076332102490060742437386815030479820561885279037025995601880832105785461515520139554461672357222657747177884504578744854609201048893976347204058775426991686006838858223644937553558387731310809194728887298011458748695710817062953147309161997769125654220048542598414180920678744916503238312521585248497347584405389013855071650727684816188347840871135683631959830050358314223616971858419265318346695747008189064064953354499022544715563105312800772173721899418378775759978316456841587446570235879003003200776942968412242757135212457209123575938044785616292116377814800758212399607715409655580116060397300098077624303429427355795363511979358540728217067290420505889182416424425544268257090741263206883204277065421123649835331167967376892778150734024787346293930889323552723441829376660936659270375507622518647790020458256343791183099992452003687693107981082845134005196105826270150928669509996184293629271199443005276004247364007376216128247083577724518987601764494043817802700402318775919125142104138711015215277703772535468039257852667311444249181169959228584033201292738531873430980575442851292781918686084083369860811997950214758850031939189174623045616938224638201109505960690305865619669045476248911019476514532140463273139361041912762803939399992377591046294436637716939944090205159257031231405448362386937187905665312085782724354651682599861072710796884555086068720713033215989049457903735037292177022346068311698801651384971029787501021688618931223966157853622368888939734495528836564029266699776999855257970875140111766427583994301797560322479905873080167969146926421612013963833290535054304045487321781937145271603640049049021620210188879765104195341514696970674562158212170202998870531082716960733672421774170171274177031133524039648656435389061254375543790953712442319119864721640938509300444868128632287236002402407742235899443377757851898702357094425590803100568565178553267266176973597969899946958145055078211485568525652973963030305602610091250730305916218878835151969208305211511969175370844782156654830471505197444528076632320476864707946370787888354394423884376220383338900393182511673408925604978990712320571661571891538114124524114588154859183251935355481075486100245326002498533749382973845813752322431350261947095124638943378280074414750136156752268991752346274020925414912196048536294872789710037367968481823831888815056402230482563721883995198422758417919019050421219228016948604799905694474258877475556115374146406766459607372595881265251173707543761073736446475466466783655231039205927065039891483591754842091499302950131196040920222730786738060492595175935639535615667468937835668429737318257908007543759745463209770502363137017673395279035452286413317492598435089467633159478498480472306984246220567228517594454566199394494103732222909269022776707406300825246338306173366897392476621983365087253772673389673151546826201761680854526485352644610249336597602709258524239760210647530755681236061348020106938665297616799000643767149272785410928340893731422650147558845033675181473918085938893306395039847845366731737730787364151963288124855929861036175357709871177343232560345036055781840032628884552392241908623501426438233598672714707962946664686928569816389863344979173470667533628373269063116410561032214644177308845284739717991665554494377522244284871045520249524501950564850533135475759591532064153408270235555988087420885703755915440034633123273710780334778724960012664257293010875235289136376045632586875665755076045960353500197322957518919321068777551497113152901107118357132008245590889210246843764524152646738460190786747014389290988853757971119941144119222855385896807766014786736885787519833601662375213977693793369468518266229400289814716015513558382892540998486268928646587756291184686125720356417720742640285856458329843981218888040495275089627480354337410708405751890741140336542965211212329244760603045943580203869960642487837181007350194367981344067071938934784755903343414493609152909096259042915404142487672552490627060771005345589656086594693251646186380661443665567309005925203353927957532131420352633832492278447297705305293484799498846758919706834285646714871616199849660898633856102050944689673853373921037744158285341163243095881640054882457017677824616443039493538119292998456281975960389846883426821740941316077184541709601773424283301387844580867330738881560124892040469744639025200544915639142397047652957717495973660829751329971039110713248683565289407531904946545308959013548671803106434670264408366405899450811360197741751256200074769871957791315870457998630585977511431601545069001934333303634610547293023117050936736600954849099205781243301511784223148824338926884365045879684766261502912114457132716808101690143075219039549584319302439678393788416238153147408210512928366434952031010164858014203785545793737682420855447057560944493074090011495036712481065184329265716682954562254461942956271132205415770245229091974922230511765247931446243015838277343073689435200820668333065769826269132149369437170531584072080616714349185180017510940623453961510896976068271145479369436041052798103133589141735293007498245800802931920447951189995354961339786363048812750562096686322127221299244094658174671787111765651877028811346541866764023491382067945070673998686677861013250051773409717533106484712888639144129570962619192513152659541645092509036315807939348743697519947717598847805638472850382866607994435274622234864053194625908009925250880377357487250179245440342101988293997657630879014566890457373562627373605790000788867224142833236732070002711634040660913494568110136379547905269419435275610469493116028055705566153360136031300922528165096673987727739623320112840179065263813084493661942686949387193106960832900678374803364893770333177003343776432673617228054734001150141425845425151450785991164649673652261206079379611929291814144196249080836837423902755231747127767386532484782472219693339058810258661889786221788401120159518443739696565528932916944548319192496431620682773689873507216393712413860984836494095221931564659270838050328344147479349111837112218418019939202013973240586943269163734980954060709466207291868618444119708887166573323890472138080691166970543987186749991678247723869190370891310831452639148580386030913981569470714240808693207639290113520690970853185387255400014043471368128115614447070288883190087270328858630270404340825836099860394916234129089497293363545502022456551790337909173097765558965022329187037716820244996772061104687486304014270899776407000283869431412591813832452768658046454452603086306582258352037835758253047026961029543723861990921067811309658277560689643477161083252262151113316377595248159017564900482917787326914039146699391945690821271612887431275560999381016803216185803796859298555790821209772538236379187098320775259732648516651206624449651310565500594038421424125692020960364084628186628117830186419561573493832999566746744139511284754036278115425120826307511245537820769697859551609374078269479090288079704462000881175626256443942817674440625290898909403300047154998060300704661585538055598383008413788157999900079217278048323627906710563377710884697341759721365023325512228179929114341621529948918054145899027538096518347612021501811211241913258099242190480963837617449575090896722636440278322267050639920112134478816861882050929045271977728970697417452097242504902612452319046690278413968550562632117207506311059810621222622388172766706113274731845621215529425336828854493402126466581915352063794048837528048600965024842982930304304141348582769404123557652247966273903598619547419477715096244612281300889460899852249268197191470971188905669690134746391175215991705092569431974619339429527813778208613426412673087105280600440414990049174888529270060263023780907483088281237322593976274550593615579061362311022324415234967024116492520134192879689823174012724599360180927892561312868094406516413190983317152255883916977762221727021005548282422831277817594630192056686578927881712618877051430367511556809285829747973305799891865989337759225753109693913471649439349559148752198726138485025214675691688866002805641032618629759333943385908642486107655339265502726636023387238033013463313953421574553231546330770024159886040035761582650134673853487002426730292169296583805454733726256324171022521122400166519953818583346012374118396475456985114989989196794264836137907496367943011274068690039078795463957022872801487705667334833935030510827957377737747356957431878444653246147809529406139355341077695526146166024041365554709162771887053173678728899353269413884270983591005385951671569925318800168381771709984929721654211307367462354668367580100835563489071832293353945337824211163158119035637085446971225057315365336109475577140685171812458920167759950369422874107057155628798898093043953857276935550283627572994317922851969317665045653983557693714037690332032724475731009012106834073468762662612667431644954541147139241150292444483506593882006358288826682468965642968036396321886902264778871111383529891680263889505961153347111812289036623642803144787663153367316615897049259853809863602805369793428501898607005586941132426769803538260660242082941301693261586690734015102998216038057941093970161582453577559230501099453981218152598324032560147043243468118621199192788248157535480996824629087061991128376889284558413730834617200996934550305174792390579495840183488910704078030567574397969386914757114240269404017148763913297428107983666792444826025054854083762971659442378774905367925461368137330354617341271478434369167393129070333504422958792488687689743461867079510658323719248526473523159549932419170118650101062719885117042400697324866502938983005208338923905104736456448408578644069435687732843344011579834162817295141534860779625519116534506185251929306303170866207112264418037617407037896803915873515788074246682593689395537760570267753408108523087641703777595453466990437541582029144551086385006091769230212455417406718996106603424852483695171868553127601684891793108310905184805571053954153494811642741393674856728591751588303227314041497251468505951266033731009604926869482129538142584722869010679388724992044520843464424981566168515862883173787182592828590270206644760722965447245478146437644925236671375911204983754386191853515006137036903840882349199496220673356758504593954817558093433203648977588831869639626625275806943156883819146926967706209704791588857463361703970479435072031909800613014192893039081834875487354439524781054820538348146306393430007931330191985820595677057827043334987539124712016955229586787808361880245553198053973089772751315297820891239308695971877538963446083619580374325562974122553442362228413693509180805082945397175666729618901262319994386595166593531149028552764548413473953891440034708166854892961966011355168314844496128491809419243004891562163094514953952768563548610824365544604793434453701480095663038404900930853167069715180605444313615870658756102747551792092731354909092479178553290391567377581542210625497818521369892042918652237456145783563101535161740443634561512095724142129325729620125682031242260719492381364359092313057185433292786012786539730707343040986403503627308244820999342319107507904780290857437600946356851872429991102775839426100928036885460332104772342487205644946803065492191486559748390292066651257273327958609993514425328106646602292154826768739225781078486113655766387920490211900378811625193543210764877716306946078255430775857164599792426947601452257510067610536478598189782158317372176688954707832318446592693312071292703771983160275223299866503152025630840683634675739668119807928528208956094014355536747919541628981638899927099078247471396952911000286010073388079471498699567563834925242549395527771741069348088445540432380173383505468011361606042125838054851653742337205227361911208722812104939332944111440008774939178898131476141248141946928784750811110337840149432012409625156365627158853759577987289736882826461294697602565836600681763855961408644933250691709064926943126623147036689557190226171545967067128685400627820146206334928518255361495128352253721257476786543246225324025385683670998829510745040892124740414252891412171064252067275356829821009228318718230344481126117892096145102589162027798809630895344828687992646847284400147672013110463872426206224162099965229969505407773995385968317276849177185620579057599752050936363061580386658420950041407195086315068052228670857670401365601105837379501100325726274309274178610354220708678248218583126294342839279496130829599764083432935972472206614028051778952835885504494513200673099004481093951742263334773998090382153516672956089880196448595230945822583663895366234174394436639642113309684981684671321718060656571235078220102325703210930734534113426260570210934244357419388637492243700569877376035015926136313398756701915772052041946263147414847511856190315573939386992675599865246264167222132399920703222749536192669285942433321763302764065708713721235243178910642067109392165369383928119931341455119747154924191817756849537174620316267256446218280974338175037057906940408850138835221818932399908532229662650227017474868021906528309062237034310735425314032753107756251408823157812023188324407170549545987115299058661384521916315253560613824569649157970826139218842654131797636084082906972314615758703473789498846954260264719112313277635860585176853759287421486575413842683904910810829874108147924330686680122597201255252102257851771168480747826963140434294857677019643125999591270741929082555152522832824437726049034424622188292757860035385265148504339144828450235245896666833745963686328491990032840854083946372942715676011274085856035685561663208840125388145205019193001456476754162890729690700893674992815470898843921340100607019586703682163573265392633986357390391682253184946067374875054141499353052636949832313711706652455156678110322088449625141320729201123227089105128145844803975949106894594335001458284940278952744235515038850515009195067095036812953198484736691820679939381421428488916620931251762863938146836201162037607236301972811467999281296220593818124673621767169545680863656249806429915619042824819135742780346775918405684060687736492377079302406707392006427105629041767772882073077685466507126836821226301466111789738690252299337113065683763631994545173064309157140297764927035752375850829599664248182328761764718553932834517784965178160748137865826877605031634591532753757128669050711003447678714405003192992215546646334723954072060199013242509732504387304865185754715917810188645715685547181551022378258758584177353905757651937868347674915386412460508316370240164574231783752197799921581588794653501993502598446773730929313826524896636839760237912112488764719591635903210598925444275273635588100542703752859620563520369248419291971383880864022712972875464756547471113656527749583825472901400394811007370270460655177201998154469248400768047420752782765508037332187986839540232808717721375164316245565138130471870941757691362740744115840092310113899260207302054175365447962895830675860609265757862787974477008902360633695113322311485873710454649076901658287938944250709360593313034852071891273140193829419845602651022392142260775859350892111305771840283919973430215114254212762996450892647791140339010954117992142177847529386465397204482390676119397203972138191856671828648211126064986195967085413078206146527413812890069813571730164894226244332072556638097757700260125810295202852293832347675305845841047497234540521027070305774126988693867573951789413455065118759588929434350252233541401974679238190572496336993544640900699073485279019833925848472732714281426906918152355872011575811779388860822937303145667868451333764007743292747062793809188555084987158272647125102522303124204046084025411320113598900893209693593189067319759276155852154067445317300910003757457082807410108139929539220014230017345434529232429600335245585398388140845925649364917315808688111949057455177818663658188589919184286399260585058801832496560106537817426395774057867014098970346434135914896242590111167717704627328497838950304092782921588336783331584143516468939013307417985922523401729576445877638467251178455426244475391694180461868780106557135445358103595452161344771331718126669649487667283064275128292208525075047065592647083953858177089463570753747377776147900001023034903711363284023383849200270218411617147005191634100023763098450993715011174712882011111852611705800899348339245305784432638859012672062621113743398339358118000263835651368982646693508077736329918924682612014447332008938762984494149340390767608898583872583295777154186719346762900976333811884426010083683310042762474695291728766229849457884244281813672997039943475726650419120178684822106486163381857431207240304155376981429370695336459163109854142226963636642695144139586868828370351927393952192109774802106161229175578188881354487681550471923796601652843248076826264293404071184458076329072163697244116917830099502772199941955794548723830720444208854511860234335599892126558083963113952490820188204172139338544925705948329234378842292033414818746624804206151512151095708476646252788217185563962567490452892363424273049035798340040193940823027954349470499464842719233896986375647730848636597665647025694798895644656646903856149961254673795629435867888145990976228008691761259848285215982900477826697771303875148575540687782341445342748982184800464284454720735415661118119482135795489771227058123949667225438734295659701018825359335883316140872826026834787948318867907871329729727753074453937532502336934184452676514605946776539522665949167772731188109232965584255674325150612974283282892722479865369609723611395813388246952273286492157961130583342918987725011590483996398508982483274522379944712244989761381974521776556039932602746617393864480383235000896593322328825855226347400866388513122744714411102017058550894101154736188432920397377954964901861595777256476776716197522860925552377200912537112913758512329497205382802381102365288966064710172142835552179238137775788349151810503425041085625353358868657844731404149799510243290572266863590560639894138642789090780351825296189310763531226900407687311569796709179702806086113777390535293337242471899324590151534598547499593448137720237824921874757827684757526398261583900258666740550901631852394972600293932553200569689356300174314951428940440017884913783563010962162462497786498219181199099614468464278445736011941062008659058893215802144718591836028320008352943210879931568132217551753492130802873748150552406924368809838209335785837373940256794276326806486298264041124045411050564528472545119007589996605946271269721257406011288121248678114703227768820375449112804080937045698342096762899070915301252166819986309813064257779109106382874986174944267861981232550194585452966000109259740633864628863062688027584376426952584339925447091333333161017177642485377444765822488756831271778685224183389412828913770334551981214319570523835291848008317658743038079731000662570801649154767206746059250193622220913747413473554127463249749327196164960318478461182444926366303618919458064083138924003273293585005857365094385969547959683263365497030947785322478546690269262523882411636112400885865388698349570275835070304245842401070363039751861202969827645168558712130352759732569253481206616108973633745021934399351739959976524201779076588540961225564293413379764215194784293440571791670689271387964444705481243116445610907276621806836063578969276430454480815502655814683851505070804043759828946008158587078121585084345512161220638803814224576556465840185889609603639356485798317503918439732221471402896012176693209135063895439259173467119647968736407269132527490050206686450637057478292522991155580764354176410245939062379360437221226977014977196892287915944725286233060242819244954842596999339576658522076746506861270786711403332544495344829821158271595326661908918005150701281834327172006869008752542319690683959287747627509552665387202485092880512082129085509501289883051695043114092246227677670913573261895453624816973674676936243810562654474475036696359990905045599289261862486960222054634294867514556554350667398999767779790451903396635830185498261210865419322417935615903881875503751824162316952345369170080902914749697656667576180345495909377249254672539165025895129164646592484145766250813686567302603637811697312100231799929635233588110667606504361931087637433218589851116944939368161056734288881329604532680007442425094664577195409777471791613002998291328102645859735550895526708693074777953839323412713483360240273069030327431624241773431954029446066220654181829793202607985024024530205207907646520154177693074355287858518351654506669978295602597405207364120229471450786478775550467968962933663675671308142342759972057268706851245609082720731341833941804482405584003344196185853139551559766689980570116990866389839798590298077122891809201082592156124055697452805442000960786100458992603131734161414516481326886191280122147376832891579654340064898783066896428788042361048621165920358122665096707960359610913277947962922775185054130300941134688877142674364732608135297724762645442328085254960122292126497911655500478318338562123019745156442044776144558421519723197274945807672415064848096324794199949880704939083315329419273875028556125545738544615278865640737997978036822479179326695181096143348375365742208831055244295353456620633700896508935494820916591605186977106016235994063471508294140610959549170637159646699527433676483525285588186664958872755070182786636487820707151567371821049757561286401289179588194534103586977735296642439643746186359787727585651391099225526461448911715538719992483041690979201276016484569225236357518137844857117887466874109311929409847877818730628213153066231846053533446453514548062347774924670086165849278796363406336937214446538707754887881598728490237269430318040107664612682098362567115635994060709685406071991909235045195593007493961022806190188805914196836817989196766531108448628775520063473212983644936490141420959813333494136994200099523964904715953051018582407129779611284546978376518470462613178030465242996226722680247930452156480700962398427336626130744713144923565491539907281949260835462821434935425891561406081618249083008288585051099057648358597847321807731236653696098170100652326473262146680976447638139178087791202461520400720011007114772943070725451941138871342859676253511271801856535184888400855684842818604890139811809484687426131312003004721704441148487461102643265910682970871703216323077234778165074274832204563851125335730726260381710900629045264211310459327386871714726368756122846533644475138205225739530992453979603762518821107550885308949763153225992181141486822664364913901683683521981196958962562458530984227923840488659242279992874896769646118435131132783315399665551026320947656078893144369009905075755921388634947944777350121578805345953901849878434076458727754545733971800368728644291868814529639453962117104258095494750237498440298613437419810496456072645760389334424076700010384652287716855038695531029996074495259540484863105217543576492302583910810760721293827217349432855375474471299470913840144922383373103210162858509519180292997114827369972296428729617096692441941716440538103269418902886559062113460304973237376410270777332139566255536105467333665811978960697372271264975271540188955075705363260302900874572508265570641544862230806001945001962206778776332690486497650881892697670455424443549032824030888180916415326158840555151091728817377926009017020637290675785514403361907712411320105962656218097146230471240003305167978980791010592944970292883149299413487742586655346418330890612323258628999137851865904476199168265707539388734794837209082720580453500934006499342909716520193794027959241987526052667500274237533698588434784755243408251022656020096920919926326436313484871957308196929862974475839190153162987948392952065341308505283974432382826160025342605523668453716254661920171347845757001699941781605518719620862771996089939266343845530411719957163469645773484320648418030596154493474472427421652995382394377360104304325408802298151494381945597590199684334208450334026365667010248926394456042413268208872222069137003503360622877958231058165747008681745284992301005334025559171660980290859938999761607789541761451355772930561146603396902436939867441826329961506574852331936126644715494862891658652314631299540636247272372268837124324554573095999632227406935275947079362633869965840089313066989990991286477827997557149191564448409148556403054772675912504363904688528415562378441530742291116887236780144532615785371567214457882509846276000368888114029782070161093774056199515457995655754543350691202879401488634861621245588322701886262551547373899893142885367236909342609291964318810429370836618232566828253716118603082674884664150247125359382409975596776965705102798881238897641520207686715992842987787299863669119108384419078645697466273267538847250019535247899275113382356296488020088254554667770797231825046187993425006864056080158806277953889301130025763982749778901428624346394015165225471069509456795967609147755198051099204579133939355031896106028373641472566924627537346838103378243460578752380520547776219031711873525811356772877057390605931160245760777994405438677833198570262343816025800743244802255923639277080191006262479540870843243219281133019280180233282800376457459834202512162416830017217177262304073538698280065216161259897859187256081838295500534555864480217453739750063390318580165708612284303846620677946033930986811295511422509373269145014942887605842049368047967826223687423241774631466054761377996302906770152954552799287626959288991620445372551930046114308278767332922750312171097904860227425344910409747607249456599405006926128464291744994295625181949783552914226396787690339469269095747436078668199645574105938002407518760446952095172025602867446625741475510543011661502124178813173988500116303986587061980413117200383050857363239922776012029579476141061224952711843538998755372883881072487868288322107400738994205066559077067813166645473125282593042742230082009218202554791840084291939684979515751055725696907086702215380132956998540007407012649585016369995582963851561370262597820142625896533308253084082551720767812937281300094074057582553800171491441248158083488510389920171144559841719081499329088020760633894075147718878214476394908079894118737788421657374045855845791697687887670432957641110850174835644225410375743909427334904870122348181833617897253079666879401618640320147869953624606418678189951402037889615269894916602461156122763072629833944684615183512417430895827282151217114153140085916920207145214071267125393493384645529776100622661843055732861645196833497562939624649589840373751594949883544275837550079300989808963694858759921887535175482069736158552648849078138858896110615377974903048845226697011921561054265914824699627824888988734331930134014928299374055261903311704148591611220951797963824243427961212131971503345550291257241687514931264105028302243403625955596748539304788909705104323400672532468988704794224086997900585282295766355939234985973992576956502923808697468090686415108998568048312448310465680331792417680685815902945492796897059975431161888184121868852823247655522724917810031887377946351333045929608636884327247099966123611556109967443957574583637616937715309661817763511346335919986470504980120132047541531711431575094508765867196732205873359019707177611964378768252160318912541507938252922957831693894314067639581570876130249737110731484592917205178697200321392003900471321479198159974554398801697146880197521671321907445084421686123114714872551919049623705687627894604108264321888941469424263102097104160870881476704310969887812672740302024564785518856946204685461001207029768301163529310524923252643083085599431546316751843069213804217009443579652219959964601199851091788523636634097863418863961301994880839681296652047806946867915701246476154571535088870489035378714891538676459320004687655510495254100436818213073347047182575121204221547974984483567308554913083276716760215227281128867572010124730204803914318332233225577729635143892675960735596976590671373622017234452151071008212477976867323445031546762813738281459065365605830167984212896113044929678007588954783263684965938757053878174424049795941632036560650040822996220908887724676599217694451109414451471542184595400761604683403805869686814572378225023444360615551734733038694448688676402087196035725002195153395261755835438776360812382228074832661200422959194719849548295103748066478025949676735886188533779814571849573194653106402382476678052567962504229089986735219577576445615451177101996702538688793072682004856156732207959154982263173494906222975019066503231971697689840323744771387737519596159836126921528800448755734599419587138308473393511193740786930936827479865008092034623741593403657319057342871082107846243626732587299608088984840810151818221819833593116650792810451213753835428946690373330683161781004294946674602552959288993441323372492174212240814258384959369990616385920372666605013997378313049875659621220366570612818976635741252606219648239101155218009472843295193163968910548486840839754991364152041320824071876682430675284304869930828750377064718581046351798846967877511633297155112616359401928568872902755222481303982258512799057797185360112370698413281284492146610720512754292518671515886561206713218277839941163997536084397901296040499795786553881895538656941380582358478516884658271460348457562140613435716891828628996767905646982051778772425872498955251984692769962864103737640781775330248419418853503904998523319534189282470123675644826453073839767819677412740344149571318071628203022993232970097992634339044066438860398207245626559859695578390423106628712937150647440593691448660915396220565676842028040901326761611046355329834740098996964206228833846891037659850586911950435162857272567902372050268630162453195157055484040539425466829948849134386418663680995515168907054607626882071300024497155731386317169020856785801504598012149549725517676164281426597773149831822342452833944837009908687776530607516692141906852760500085880567936899135035990209240738615315614304400088213355578471666583677125717645387016502742026123312169831468533127261727697224356208993748839702078983907553094004537846844642481410867612011058649157877494256392715524526237438089546320456206350391172724346700888414879652364745929423787592286213258150235046114969364511465503648075934146782304539612126377095152420940233564968331729639350240190718830626467176219529962828988506440449092383630296944454651931736002609324011301208084149881761507779211684354317842892165123419771522458343101986168497959454416402123013785067809027525843639122935664216908473417954697874223224263317158590956363738707239859003509281497623463154929595903849691687868872124330144387767609973577759164200904389956205389943294421182115508374468959778519258272648192164606529280438667394025486342418702098146291572920583166088669259738061928613325904740010636734140001383372963150633196278670936393048316571347161134564773536595652463174421823489066893711348404436848577306250814026294009597459301898249916111411639531598906141126155517270663005227297120195312899770561525286656765148928787501644588969835720567775122083403673913555934903638437483559149042380418765785541602869866504097305187910051363036989396773126964745979369736589240444225390143595337129661848694682082286092136714378414514032549244867913294362263158577799677276677306154542116236330335191167614451018323864061184270018773767228954888628581851259300630753373318122608173786707505347432169620363120926565536190868107614079341218435213317831170005285347351524197188763056925800764913980554485224662793003731417618943910199432618454470318127310240214261775677927626142717918090080480105594491048136329156777040835782727575441925838142000166329143100889954886864216306010406554895523929212110289695669271224247481975959676378161169119249462750038689675322655371236236269712974376714271177591657592034801931753129011466010187507825591909366480512170464849579078757563281958983306164034696163593048892571380894512125628194798550578517554112376185558181676498600240262464974184531077682360011387814447473893555944893822340377683193696085736497483446742375654485434842583216642765842932659953377637988445616867719973266197754743165625924988371875320440127002018548317929034941149079098495802044451878753742738933729396672412468460928753646384681167690578417235527500003801523814578742638002388833513080579070138528874223133927356054093603847439673748494768962165868818043669036286493278323089062061388190608169937316841793752192964593336727427009236319199339821890488112276072931886813145369282326894783325843948091096925488787042560236720824948798448527856628270875612110381561710681930112425963006598357114839231042438064331040887220917976571199692829460201913585819481524791435278504216640320725973572143937426411098922908752016966178445377763594984916654706050359688457626661673578776782753354043470569011622345187696706662934380520716316550186326009556274740813435767835594732003618072531203093122288838606568148198938733582327409143656997407687149750699194248103610299242737965169458966474249934083545958735458928986637818073265923689653008927545312149621143755054276574063211235084061804939199223848833313444564454490795117042878164293305809062720312330634027875478936435520982932105141916591682813764104642328219856777808928341167756028965797380987682521670581364771304292000491267198594629351539587219868268756996650865140081758340519057218054085029742713524888960600029768632563894082004516075432671827820008566674491912541231991405167052243980612168385566936328913836865758826386695791658524858184657085410837613630341590274944953528483343609042669212130875605570059194403154081481067795786757707078692457773502243520691514786348954740240645071944460213697712417518486738969720567399268308754350739586103437759750427173473966567598497911186121333126090313753355533191800053012437892770444735412998157120023951198399004884839105345535773985224681620843281661837187158039601457117330018086199228162672525213746316982099706231145092954832552956704642037568365098528486047628551690242773535941864636243751881869656240178450635892481099052301545189263368274098948410315481494706173930705346091013678038925251984966180262629198038477109790245968850035523485948991649747257825231434064478837855435199164980211533639544354058147089504716950271687278071714825593746684961725745990405007579273431362846119835239595487330780161973122672930278330340437177000296782481038491427639979205447308629876744201987579981573135666022863992814886655168513289197510626166874292233208685580069304688455766567780289949926661008681811461988132846172223330813209349767852876911501236207094339507942548863377134505087288779368826631876864000538870085323962184246437180988471032686894185789576785131951919098984268272721326512307124273014330702337684481260600876134635706240979673569480039493670799409376239036754373164311747576770278579780587928959376857987812225590440892608763900764011321568067654361499254135112209716482904822625569291527515141136751450638964641155529508172058471314069722653210606765642315778292277520112837384882050918176381328803962795783253019246678987942812205972814870947369797911336546971943298314871238022302448741260043040336401062578796433389593270804743196055377495889592849679331980401496834901411538509352481482070138314164289889107876893213727169902585175207420083683916691263310902322062451272574877681063192159333571481138351708572608184701764317405325575858315203433051179538086167661997520213863393016648898633423962956623120914363848705034246980764316480799263514974335388420821318165643062481506131582215901231821137287812165213593603571375452505769325674329965296329732094853952094852702760929681895781837233894075681897120468654272313194573912459247235378727648957650741099936953157029594019558123162594310079773299678075412395049098830786432315747284390923707023434217956516525319315044122004515769756238814000877386480703122867641996371327626393461340786463054070757631062994759725312048271751893500835478329497397922853435761770715491575428146583829648612446282236489421530778741356472198149015496413101340817033431639907415265512400576835787522736996188631088591109075382353297758649872419303272067086708184070780376305499426679460466626086848927649547684652104343350654138139429652038504838566172930344469110288968325206607878489969537952226481335404682856849259460013659933185285506357233076211369231150523936213467632012084260863782406921040061364452783610253228448525201121541764750161482447716480743439981628185659369313609110148352179711617946084774703569824285875565434363677761661820373460955494294111335545112645131192486413398827495111824185371522420779140894073336330105528751610032364642644742460637146658307142262056520548288215556205748016620409052996016976568640058209078019302305382489846485883833546583311520261831177072872781920865053502821543747511486792283298607465672299677151435222550437564253115851814562995436369902671532006571260195198984908600863257818752876566204231818331876576387923889260192685959355831600874408122661660388766372573653095033713200867784432966199191167360974960261910787766424825717193519151923169957838876926139940192649004361074069642455853491843397319386920813175110820278097513937438967768721635602304553983994744721343580482154359962658042035641175724570410237718031446306080373656396656417010451288628315686725194328890896182565534011721616088809435320789736890761771861643211894785409481761204180110688644253100334776672429884269683817916953805698324677579122335576544201082927406031229320900613711909383243446342625535135664498438486683902667383076465166835475585985107481009025769141201851393294403989944743724735978120364544202399698090860137719386128324733310459530737179321738070573319678605421991219076209582855854000927777829081592607524618666154114918886309366023464799413151001813311642944662182933549067019871404030255144608451884530720286304741602806789785530690417627913027250197838812737304138037437082797500518690531467058151040433675982770865166376408658579981426506409154449469827283053191999091323101830265911953528246248212422324843247506879225218748641392872546840911460082374940772984054163239401735838980511412509554684432235715805444791753681138792231986377667960647364906285572282594431470686311667049466298940028750784747400718973697443782647040632060124297647552990105870493480613575132816477834240780855021159649317979882678413324828813611678585434234198367564118427754921836301269931594448368558851160720975313293970378295886674495715763434829079442895073504533525887736079801574224171086067588301873815026298052453306695187361502523024547525969114105099768868717329416773040587826443074015879747269335771069061752705390636281799698452902868866747884861811524370292419016900863406498311135539240900150151598701606174711365790450228720641278060482906227604113449321183838160672931594199623705661554199414563293978889745108476886216516546163223716694837687131487242680651341039271811021778620313653853852402944986299187354793842085147023880063324714048288148625450680722602717721871496298350760487476288025017999611156937559793140750948622040068483305896893102722325261421772966476482142616799146873340271075086496059136275021293851299870891585754204761600286218598746598598803073690978295734698847076113737189833823292677510935133364294092112565893618898469083853941798808402758941311839090403148700799276092106336761088018567880091486100635172564030812561965640954867987775346151620115478571457267172283311813503966696291580155164124736617195959627402607884705987016930423661666516488088129711567803892417445234603791966931068384242946467005081165626081626235451536862709281996865915383617037812919082367416034474289730234714926875072414623327010670175670974605392191249942023228927551866764892536270127282582701155924253529300627684312247582097602889348419714820243486145195916352445640381858660301446010700038020975905467269626073576105084018909884694644134605099908856455751448447018496059819738099000355603494277620672552639557359434687180048582898896978628341889784987840207913711531455510185547821578307508407284684673401184041900864546736112405596460350022773533330481767252517538957064112799861012820180341159105511877429703019439861295933960126500435273734700162347757905635024779892679031447546885877824583781980970830260221333966112290658695659327993718081476721290252029244308220841290430493735797179609855219637033617637498981537111749081358520848573093333774788147453871882788074755051054895054526184892075657785054210270192185482917877833257571102672474608440937138078249665622959194732239144881446090961708682177230186009675608472218593449204639229986036985381910806854733041504753958718064445453332908631916917498794181083696963085091917258741955666376947745219497900492740062508252191394821116144292691928980468757666117553627634489454207065041721032195893868456980172520452514680645570949223798926294302422867642570964906196991824047237617688015871749047557947648343122136174931763750592045655650735378987292392811073348365952544008804811928038980435759687399942948698836451808253653196676791464256272841141100779846723702193325762939795142317383829744517554004544726864833939484622066274655658574310275095345499340524519521605914461987625762117091130871211241193058177457817796559591475845340187516952474044762302677899558263350296107755966483573692443676463975735415251422415064821112684407443805020481570642020630584047363488271830198817613473903969224194199442438584719806376351158110543523547567877907974505157826164573758127615876531635640443654672538851378290029899641058505790451390773646052297337612155891867340484706702099026688852634708471881100418293959465361171246215730722616870895915341404886301059879329342182172351425053776868931538356766167351839959132091690202150547731200236145960328212684504200660467700756623690563428745531229986368416404828999042313718086279092579506704430612817100055386174293148793347997804506766025853106847656162325198296105616474085323456941194784235109613896307985077972220837000164615154338386853250267314741654815166834065581712825196538902208015870354666647097447945080088554270381941877671463254509798213357702714551344914069265418763616860938500242945155794197873580367775789532944106009456234559728894496878787704271313807786444036809108420756865292440825694279745579557872204799874371093083596913480246737666396579232332484356682341262398410177716200395052105261823975617966147241262619755523159771899149563837248922356523761350542990003889810543840814419757472915106194926424775549494092232698801832458139376180930447873959344930928169067233197882036617185419070528334144349213903498585775402424324437702758802762241128172820577392599658990574580271298051283941337701641373657665206358723115098079634318044832899860164167121597747384776573919041020476802772159252661632312396236837284492328629725103422047404845214976383841394255005590998816670096022470446132428308731541891452554267630910031090193850745727302155098826942007816384124943058716683722675725021285960943237865381401243844714498405826255227968361908393678654270813598542564408946807367541874655626418081034690721570351986125556223441496351629888526338825683645144075753741617192038515462294173692239209800525362517744609618063919732958375126822892941636853674469432064404831406566472272534802323057905127172548898113246209814148887561174685662603336316555351395475815958684430313737507680011791965639331715673415993138972724333375920789413086283531030983850326388502407403341300643316206724921876824393660807767087942916993546946013297811687345839378316502514205904297909749815331288750374269100440302186993245774482019728656752150901742232896667779892239707742832502655629208663029230048759281538845839807669588753000604180558632399653660450562383054193328099263800845837913205790069730695668302760673343066712639846553776465113054995714468118105559570673339134037173000535595035805302686091813171586969198347719117698392946175418327088422950519648838839403547717767662822662990150311389548740994964598410725173145054620460641659967509566788473638980973121395709799234586756310907489423523677316935335473377386273222044400849955850872886995293801573853155430633812285535923343167784455805672352434800002505951082324758896304572025785397654317782480575138108239943094052235607909456531708478577635537283021858106093347384968467712102209396646494737594280127905800712460200401039794596706985152560791030704319079888396581247637312564222938047216493014113922463009054103396751251457292812653671220036067376532673089207189266638753607159456090123782247514801648315288244166091424195529185780165379041230779184987205537620373477925353048901154130942226783482983014704827849386727871593957972642278280349464647492370854876095249834098047450388710314743249877081519031814555632464007051989833895180648702404278209017813308224420540974028033019461297574623390540419515272425762859629524233319971733185114218377040177616660734495727380375933801342797922434478088257149717614159347260486949510220132254574099940066124737663667410411667804417375280124203795150835206825482076575486961828382813579033444339008274440862422725554579789787868932626782404707096127787131816266106434860991456651009513369394863149777903265425437594565758933163846479510480344174606486844077502413915978990257944458749930615769197869817446637170211098440373943875647112063199350512379885879912341292089609964569065622442303742384547811590895129389731464215966923266417817777416533295400065083049241871016492397492778918239669822600626677994887897034907107404770618128609970707938569916808414942617168947832415257615118890027471302662873513034634722169353835239103684961861150454322551106343114049590313843614313851166589975982658379580663967960745099095336757935103637199807915695472836596733037896109649462270158960983364998419416206943829800591960748231500328029462593022483561202213525878664505801108494435143480626396550777836069914484642741383043412995216042831057602762789896356604949844357233200029630211615264929390885584923147051034023031767025742023986693429503272921075430421379810597041409103374525188892230245464451271858872215097165215130246670371779746134821008159977231467940785191713824053640521764429557591199462038326510202302272864003833936482549699987296182937196408207939029002772471629118387096670844615013754955234951995503261036901461347545891481462078231692260171182009301490267462089268542928772392270623153600471526806525418523353645537857718399966586653796567118397629050242096154882970000681323991149405459765812032975608639678188601921692853592217834012605013581990617024701094143189941887888460758872204929461684887164791988652324435820368505574966803037737280909606827041777907176348763141269687784845161241717981943411557999853393910776957584019275636979324276104927561094006215520490916981495963076949625586331938631150218770878001583522452458472029146414573854391268849967501969834824983904855327911470112301186557352234011860406615249742928476254843318865270802147747792280465580074082085149742850167266398971126737058165851368455821835648741710076873399789272839987410103343338890647601741527641567155343286183737271521176860238197729655672518755907222534293603352260264587948583604402765612537621763946842898500445395835211738645235918256909478817678334062570892695246960912903333539850428437986711441771736445825542998856362033421537046116911022486008432041319938124930428283977440150766718146608479714833353092559591369051592663983022090527349487209222290384384890533241931300590978198193535616875274771095819048375202407795793603425806289376526566066442318869175475351944537255846906447193500868141860918573342301936397861139412685495400943702612511095702969768389439162501601768716014138431584762375023818363092757518825442037642429034852445846369764164475986263188748837124178659704643302151638078536632375205127955439266313971706938951314030264183286928618870120033083612802137719175681051197072163606654649050627051738735896609516004158621449393881587444186239074136857246341093372120755777594497805317721770573366354298293972316592385951100088806026570724457917093109373296181131235008042045296293690292542357373557011762525852924687790710079843583066739513540699898337527051596070182804451421890021368184785209243291267963237104021323646389580514945638675823292930554190874428258098693433366411892718643626348112256154043951073904261736956778170838756543570968277871412826843820185724859581856567505652494602556815310378356931229795781692013529408259459613686097910391271355333608095910799289843167464927023060292131463634831495590950237567483136993035481476150166067529497976130150797043349834693852292628943547962673641527853555292737724024083924124559497731981148821683836652089363164544801798531052815675774425156642624906487899853072561454901962293324611995107351982039414798877687468030190490254550777802073233880797782352648688775527200925308667628908057722375142462520112206633030474704838747383741484668180129301491044936600007952923509294935817170214253042753903963821794080238261857232992961390007712205808261764138358361764882536516067698370256202461386572149575651890527956339371788188050807394400884163125710524739175056355384882218579503843368142249116621393514453226480884925167842056426267759358779790665718153143949698524273267882424488045426323642287735132035743065093619604000005908824249023721468280149081252118328379152587830846426952161526310019193573609729772996074757586040019864680611073621772321778913941870127290505790262827161968984036196615041076164667444103264500024389593693896453609199573061781878063454257245061029669200432753615141795724321756751159567186013348045977697884489740897945205435988966545395066574525397769703355765716394227517947125486489799649227051532784846714127889876113868121481555554235930613674428438006779423873707934970263106890735890189556045006759575555463800203837874349823477759417238662139027159615891619402999266260378885946971817827190524574692652350791812859174912878937338282382700076425984175668921619222970326930732436056232733346864288944628404477108984038165997297172201237635215491845979174208031051434047745702387574464098674855242597571159379377318831945400644170560817802750808297854741143215478391144249854772947072864345220454736484742001997940515830250706177461645604323908054671187513345826906467155405057708469966586921400755242575761430906584545427434442972283462415976461075852928792089239893774806377025771518361747737882939016462095396945884490544457825515045199331951578318346969355931116625913617451724536419493591756315677589235878522458117189686089441908239022322720801066026558658107586042204339308326050335052009983643833712120709702130874726042255812459813216388758193335645505394786622604297853447339597770432851944126648075945337371365526580930107705156423371456923284266361589973691946179178313619617812798253964070598946087251655294721408649893829905155942861114023541471869604202512292433270180521549782893718315542956403221511393646514483689793610705001919787042033213004836805008442444562532582707916564406447011940762662619528650045078957184022272611483409715064086850924794880156777687406864706898865409245312153786791229282732560273531297784575015187579180005100247564492845550772503929602298873224226889328559507007660498112462945194762315814760368733350128058531468604374962379204722816993870901654847136640587331463806920455054322614265015034606890574996846269293031989746648419797361284638328183487578309604462118785010895777177478487023425743889219459147604099611860935491668360643869327159379660813217108493948990910818822435052300035503884623013342858054615387648652123812199352336750150020822403143596996928421444217096542563829993965750018033896562027022072575027695215629152640573730521268173810752261111843703733056016120433452045531110171122486008377526336645005534634430555752779307165276862883914963528070435318250409557905359235469752231365298582648930978807560879810954061510916321604939275207820975378652070374060394534743023668257598669956583014308061937978935594477205280537246396025063037728521636446921524210387279902482894627367053669088310711149527313112108281615451279786564208283834024087787245010550324835517562398658709882245909853600487091170159479100430164457868353235621750098605929853871898744669673190775241331287771534323809312381420365081856313252554712739250856002633782329080586700205591379674040186690457622900319749800179059310058534024088648343999389291962881409178445700939097167653257438499665289495046780352519908406015331128900701401706497495547605455541582768380961268043140348719404379841422076000226861022850018024041540924759345151252081817128729247437952905625909616205709612644821069591556530762670359750591274366770968526015767489439522641592796316256914014824957421519885637607034064051047229618353816649024651307045362781928495077734767948136027937170067322063782700532635030238765967633342243635808398827987752906846417527992764730992000758429117232200740986143627033662667663424611598363933558470708688184154818166718800171786762195493520666965376569280566787609763792498692959903812925278217045412630381003468395310361187569649016556141628654618038138712302989148406146629319717396878390961003538678989019667797382104535670707095594561015727599953107716098964734234649429448426919855011096303807917842849551636145618986974643346390930622559077510353907893049653591732079079192025804338693909118519966206122144490879450847923703585635843536162433728655071116176839323717373440938364534329046300261025373242915097279001433958053440043973696813861225018763830023780876220773812129351491640913286832370787451877678660453543850481498141521626032687029434684761926169796632706774669964206641318338161236675534075403579149457553105420472726957000084921636760045421685804656013677015602182417072366169605579984313668673769874965695776773218235848144735023803736626549260021059193855122268327257882806791412738918356033707752305304453966783731660602922958650659582199536780525391334661810078560152649338834907591394201282269960640847500178857225928922355702489292780462577503261186262187355573559074428238222310507243411051302600764492597368321787520319737600382183512928068474781480892136068308654749059275246716952735956154758998048575045821736775180392753197325488055498880662895100125822684042413396759309102841763502200171753846186893549297585397803942272807109416261824207806320672353689303341879863501321224067117128994550314233407114353058631592196711585522526301701813948471755800642722819404596088890804557420206862750928522405311638047127484174359474276049937913183259741667069778074598582827980805222414110762273245547374313360921320944021290533369790045665353747590003293325911857619992670476274179785449899562730441616131453558135177348085476386246203992014766896126517811182192389674834643239928766410551845537402936858023448620174705921100574963599025508724844299562305758617493293741260724375664977975861301982685041200401299670909996047384428167132103987446945879570170669314479309312242565833686462940246474498687857345752292112328780993919282755558414964957447313009420540067456138104999361030213777406877241550908009950855713508871161658082158218292017257422622873074587466539304926324831751177433601391675098796874681387570050514715623374116122824714623674792355693489106142825415332445097878019123361210945043780135316123057608122838811580283449582032269706103832061821796043437910524568160583286861214253717759774060238773972011152363964604447067225334185641825880763006395861924070583551459287629097545414755887996986031817966023403492260676958443426716879753793227618180160823388444425620510789991339328016463219109960343038897759577101860675586369746524403254936728619757190656548759296543794257276873330359386178008098935155868662217399958890247891689463357364686771462248384941936416038435606014471708959011071072476910100956033551605332442710955706085110509489636368730969312284726612089607504665112924926044176442616998561123501077908357044095802783697160476884546534761015476419574443111828918334682418612337497634778366176482161771666922202431485944542221122032749856317971020970609129385831638330443213500047865472605761469697617782833815209108606277942858960674981381317850624261020403589858489894305816705580236952086113407444264715789835431836156817650838696785911072625912364581558576554749510504694258117437412134202021973764455637561158518088566932736568410087181388069625394651019344331854557871927895204838701343011410242052686806255250320979695466228493793468415483733252526248874650476494229317774665215530595350232149333367084196843908435197395034503326513375991338965333452222860884494288808909049178718816827993049269313758987408608551865821381051457610231131011028907534853141876480635159404398317598125779473630153573801371591617862810922236475758636495586098922892936937676452760134416914157198955767316811126517281430574453275384804272482806192209968610110921278581972290356884910245511492975765057243905282045489270537896120644008530020246326909654196272777824025036248516510142359279365878282028710850206598275248336540815198041755560164509376057404943802825815556622514869948024447513977268409890973546372477771200553030625527740650685292803654339119144461553376356414878406405794637161162756076339761610762211946810840631104170476158477306204300481151056699741095540570478396696085341265389250004584499345569990683446177171291511616616062381854504963254147611673506415949480752956646426744695844990502526128848132913536936664961055399321863384763462316953734100082670070310704118279675962905039759330592153265654589567235849846824506630991784072740922696615250317409614917209511484315253275385897564693345805096378758889333689297018172408826258634394974914293411420279245003440916862164700057393513042181558252120921358068717675425038912656082109381153805959089078928643059498066047219477722038758499057625697298934783057651740914749697940969909015504652743638760417094081620869676325736650713762715659528537419986026249547531421119322746720305460723740877657319145129842987654860345683531156963064881616370116656711961474841897463842245095143665970073073815394538726557751691373404617709171884561690198459755029910692678396271558471972821474290108697820231552550184735367988326517743790659423776330583439657854480864603978957005352337112229329795130677241106472373108817564152697527927780378650649663146273112781118874127819006332148640832379546377064983483663843775143427591480427618824972916555223550912123266713830281154385404910971021698962626918320095233900173714044298050414241539369481615771106976257379859678407384348509171175258053594001917962574755373154203339695624228346279380980595333291529869397071054057975261352982264207228196472974687842243959659946337702519916123067120181793861984824685993040924917706336103959362581604140320520692010943942235017653270306283451351390895432520581316921655454446955721300957532179509841755947981139791588839397628001887218422991713486235492697889207105673122396822037707311239725842300873696085812760550291240244576875815033188320628596566144802873248730425228961000238248079012157416902206822213040621684630340360847448104911113002105108411213713793423472366042479454632525894921715723002748022953359266513616513589777274461209986008697496282522046381225319797843154054446230590094548656983472723556906774630699859009365838829859476549626570807540302585584349039304165516410972401651165284961024447594864006311281306399966307613840143160525340066865874443174162729559727439730751551548168085428906683812209437641798404937206307476444084669428882005177413317812876262480252402127901785702236176777742573651294471215843627016470177784877546924490623776562744004683138609296273874175416272848102006484532175200555737491861808524633539874479922266449083676883803688430967189359810832933759723425440502772358205472459402342390653832703220469349183844165385889297585292459975202094462037080213786128297612071726246006631934655278760972263700860922265802490727659731052129646148864940737399974478290009864716934226734589046997996143162129701332948930655187419818597552576106087020269938066079856790488465155887477560806662937375358971463868184647919167549817159857377500654265000492189784943673958644358168403415530223928367888298763924945375830185318630419254033832042920097108337636161881093058738387778167972910891271629788421051283456757535518352696888771538522340929116269986519130362120598087998333261966179588771962609231117154330972616096130275088925536904829751215573726879720253514260884234484171144233630383314728354291271411785356737742746079425723568415429187775129583857889570693342572289394528125983550825806389225165933683747803816164604357364541177290533741587770068054013723388355492032107630099725895111615264726758962093305444698744615662988991846060208059153742588731875890538064113619666089615357660459785474505566185773602366361294832470179116750578964558616345235720617509316296749399518942982159498089298813642398736122446501340796660742349700557821721694481936586583706899250646011361970240490810970278593210877762212052310115228140868199269032403842964773517483184762214423116038436449532042197480552311994574934968140166716600032215529578041447568205689032765958225226508816468544972772515605964505145308684200006415389313642796734094157197591914911331216935246523358791145899209257530505568594997399604598536354957919674889887450618193248088447357482761145434131773101876999949068366737476506062326193062930995503629718354984357778433816073740031065032331670892952172283748972565527591791343808261755268130185873941539314820867561220656672615007100086885880826989145004250419263652359418998077774114098661278613013338016818923264770080602848645626936976364798823314567013139800076601000576159536499174206754836348055544429398857601672406022738715200434987309957543306480680226516263721264933787968045763629203670043748813249126121543710925348955819806591819670478152699188115949094443268667485291556321965057498454211547585795154689045500776081613740222424989835440975818657285231495002564535553478291720255577228023241943319093802620051277974146738089230198723893487372388581912545018860701332550468703026150739697025555835947681833190893902984806904201951169515135518240575141217924387173970781295891568464480892957136952583799559847117465977530350715665803971925927752000786075930129012932115624601450366446366765184954903942918031334839028047948286228211112256770203392920510188055231968771509828882985923656357249959642540856445178051562419063318085828298680768928153123069050252715109658390043992837157638047260971824186197479510030168157671270693298417516431563379185217790936126658836633046500129472848710705143770000733828233345400065753807515537340994709230289364586693336134618436158477543302670675626832904466308176199303499648921773166039516519518379275101492996636576296346134795465803300289267438965714325380895459624719381949866040366846214443630250249620899373171646653505934684625670009954762575855179980273752264652998329994267403044264709982041693869835010819429757898078788782857931796399550085943200717594158216328267238957509098005449542313267727068661292846028216179662165304253272968063621240057004919425906701635060794468164862105015309191253881060055238689531636572963100050208931207571424001367033051170555880698237774113618907829509343859975994790705198667732063567587082828654963677021143787547489552397564677197065116022866048717602043769260211053544961577101433799267229764883954803109756040092130608906300753339599278484250623631685250052912830966790617054230301334647582072951499313509992842250737874304620459256967491313254640588368629772012467105205477070335981217890136633095232105938906067835151834459830788775231529838997415528441899393426753989464460942127572943354115671581470524199101797335316018954310175084608776569463440499673641944871469463258576859044325413371566656079417662543950607221320106467190305632440089919215224008352597375092448501274434797701495923491119141024885227280789376292717035236189289645278711668238857879238624379212560392514694165420947374932386103292866803819651120669527271542878170500344715951743275600574601016749180063052412957355989165160574177243958169881101708134224909564957366555173481069895847995853411088724965699786803846189229459728609690550132222233246692363256066998424014024518616233703674858759166229993094672245316665406034843850911347825927077325011565283685071724629090459559125137931515990198909985638823592692035799484999305941253524261733352950579815491914255650156254105415342357020844006153374592263788384544185599348568287422257750645721383970293486818696949208668698671192480321803897633590707472409943455470931872926684324083718007036162417116314915514588935869722361531732029698113630240290527052500662679592142525987122630499767414973524414474778421675687284193024319870754242757158359421189317347615265034486732043301626969094316201726517160626277333076095859606990383876075436996527155191539723475262886312615372797701654923278604467659781192661826809233832205390081205208501859135447771413617844092602090711061014354066917319648184792748276731700062295903596129576366746160385725188215604714489646420351922705187369383569568633983758822408643328240671430022781396330438211737571950860282773151855031709183833537839115856070959509807684691410979565604215064213519722234646563503007462270524529040705656995041757594882430182953067769803452850229351383341994496628680324164669896974932528701351209829032599464842773699216907869459164865419752012559784409655960166750196984054080919825336297942867104161793370694872934002867437623813837103275473939784128834109791318213771001761106891054222589214940062783046910673545876240085045914117531321649993887802363632953778070967910743311469399421225437081712311306408916134540377523314580792353004162372345143088451266081704618189529409640420153584066313281319999099601848672536337115316286040073306640308191978642583941485808947621200891443447169844417022314773661057059505432946197452388647829962791713047628773848680936945636244130193723973361834928191390935030190198276434780475565449068337413446692313445426270720651664239928261998466536945136218663725473127614391829393781815823823134518481230681501934106829619533680713117946145919157733449453232061942412781133207435458822737619336013132851638583199007549934963433852544473477794239176401968075803001214302307726496813900403677436919649685652408963930265112181798569297014620694981083943749745622835235526044031441799724487054635746521232006085680273588027398724498022921162398724538526151844230289026688252286588759349378140669704691166435178613827473468151031149804334088724661741699432930679176055294960749236385422453332051851642873754266823863167148111816737474443558554149269272648779031271113955874315027130523997055323681144753586759779722946044905951474912784966588623898304089325039938701866142782679893605451006524045629154662205609973749683051476038223267656988836279692680394036510705249451957684492662916974427407435590149711564408128705027792723553227560723432770283178845688711376304171067054895445863032767744968728651791723066484678606274975060032629457400994813744277898741635534027205235691960641243230152175782668687808106086038016548085844036693732821205294998172449819680627722399791143815806918938965719231563357077387806839043294152829937011701952668253784569211743575480074744363727854555048402415991521991978480812999635938463655234926504358479787912188168461906782446502717593681511102770742233959840138323908864681259721895643546473119050464148819710965906636482670278821052867128044657244269934850663389535032149025002684222079807507282004656101467874163157223377887875826412541637047247166670671380662479052693400566399887407464840224394520209182404989226128825865695002290274685339674982225589637773234930228988403646958392941555354266300513017593108079852164868986360530253176127496426184371188208816256267515555985886190505931268949962084809134190368699504619782581427383339056695036390908949993665575145353387520606603428798010423331751016145996934593616652895274113555829724272588191184264388961153941492577325767097382606298888739542938238235499013732296339684436674677617157434446663760370760438365088948159194735544169013738935952469548212541721706524400316725156754908500636201853524899705428911041971899340001521096735264265237209943780107047216065636420226049982844982015718829613952233183518644086727365183529868372919868957769705042465167530982371272367287528475192017339768762903982701819316002834076384810743615232271874655097519159442815457942539820322388409198418815068539591845190591677328871268373446098695197908348310555452182091415562268438425054378250800717135646384990124970744028320821460509583935341228176433833302483245114497242441632707817663653501332959117731081269565679619476125242544867417461238861873437879995602471676264386680326147303037338640040969161021949315312426027558994546821902577875137386611169017912126547355004288638318753798320685642469619375117575304531000802588416989462678372023777404430319594337426931996218967335402047761202694153601975520756732070337204701766598050332679011931641544223380242203353104636486018598888291247744320394542304663620982843028081548610990858480348662840716065554335697517855855099294346741578039636527002571184434488731233491741137252467814532787814251200481298823691199115843168545257218122853617756651391046239559875678342470685561265994126078269492824692519877430780949682055181749086538020446405447046345379625554011424837468951910324384362764281673298952010969767147076522905979158814402512055992341232563596291497078523011150011604142406285059206660914803883288499202835696769849677570754301130986860447914740028990052592132806761601921688162058216616140539413529925469685277647309805453462352304986115584248136761477931568012321333164490840005214736543011001310036893935049036721169801618503246329456721373316060721191160058545065032284692416223525179018994806083522264190053853543470259702641702550649158644901678327404952162965092982889052735068462080353884894281660420683127697546323823722490681095049893061629340065904190652847596580745075762038506948370731349010815230414539552760231261228711587987842840051658039706502425270566301320250923451202984413672035275113391959220062688191477700248892597668939727030033606563307903762810871628637534338370094287807189151136669209561974395813127431095720470032740383554428612591471185995126920991063992436647912834273286061574457879581462781206978138439021288469403167834130867588314627754966068175259003257208174662096590845061534852055842691159733065236289423744586073256721852959561944625353863585062173473871200860729382484311868536770962738400415956605570434333140685982144862995440365460415539031162235726469061688130008906471109038091575088527354802656747314691761637721850899959350435003763645219996550572060218892172063226907457302077306291584098344767383995296459378574198137202769771371976977734712197098983537225699757705439188945131264134552457176452398969833402283876702783106606272400776800583460665553078293739544505923675435787040362574563165962530411824109628852283933291381597794166147248775858354165940130422480593706138508322199077205532640576593557339703109252391335700635836266739800219786079364431012659016470048479536876624186508454088624902397044479257534853542922804714901835968417771706878716642381025404882912461598472827616635961944709297869678696075273160050470161644133703365034606502893219064599175119975705116972359155405186277056376576192652851030678284010191043494044105338527753608622038109631046019582103072586346820657651145333690694806444260725847493044066574754970099232650063516936237837505707874686476047893256816021915459609555140376279750036986092365334484677695295038671715208902927956733119023132031537011507291299052144713952342862714720950745945719878745903736914560451663456998111013263300944445495710825931124113105521610671277996452782718888353137335641949107220502386058951148179218476297971684603681572072350657667669823198282884461223642914010736632096430095208517043457970461222817251933792191900026329342356285353208455235421276084722891620788974777531460072788002618518771381912529509504324916261164083423214814305061134320872062619021579467466818006594837512058879529897710075975833253318810901477610875692694263824004237791015570515095519112146391092213392062526698272399181670823110668023201329699017942305560190678843699697580739222014902997203964156132043787054719906930886706994358931787503213689066328917665866804759659310913030572260469937606226552140721334929596953875949659632967855097327170044919879270990489470281233493902767886911480328877841774521891845346508071692405921878694635393428479281455657978111410813241505073581933644462327799102384092621296972572253217001210457763036154848880008371847775819222040684170219516284944398545932122348858352726877812935896990603756944067259533628755991195067404132492887729316136521108673605302762581754688816234048453059674389744753746328547423330697870300024834736605153101376627030108028894138755080480768196237963265627496334581264293604662280386956273317195446971406014937629768401924505025960245434440218678560238364641547546317604460562764876017044264480871036944647578970784349074468495001927425372751031097007004512224409799431719550234720810030168567287648694190413240655623922868754608145413342942266521705118486778622773775615911146021278953032297339649080356244230459214895565628567060074234175524777536407193648325945335166243522034549089620961725412536577666788871087571363166901151157669996750271238233522980755027400793338745445638178761226570823815728983492555395949274611198648894474547939271549880136887635661019321906772347063256793606847183388123560671362113959936834397560906022270937002745189991675174603151331735390741452127414730596556995879552125933613139962783113525458176559832701752388533000413457384405175924214339199222150184294326889107443380060760605895173555179201339060149841896409062665303198392428844878576474368385952483255088096256047520668102622367226700112606529480655034843423843730286162577693575784847985256303918749761296437745820434801325417032899825782194224699911967080564675775571121399026121837241560102671482944662186960862322846195726919229759537445857473459141170756289311610430992112578504012306965230033556368098063687605270858084366836828971508312576017899477228447356535918807109790025056103543092053154034070640938844794055680182174554123810214493830619797488744015635817240237412817476715150651201985336776849364899038738074188786022125408465378380545672260478417875465189080543911435757489492199912320166074959087545864475547743878200221272769603595944185273294807451354967285685574991683329077701506901089155327629823994037553652454716124705598213406880337999112076258717749171659531439338006526365989330566802641396012774483905385259805137916912322689276295127328216520051626083473167855081209118814811657187489893525322808632271881443626346355383362106637608483868172666869799375696758654923565834267704219570082453249187825987675301728238150484940787245721083647797435274496244415672587543509228682796847241002027648356247770766729455501938875722772153208376015382098230994901990993607683480403560620386141381984817771135956648120240684486520241364744290696230273798212790868013998636099634619197152041815233389976466578159481286637065143727837228179586949323813519673866908364892498116663633298637172659728515756671908802625309296154852840612033985309692616710999276604340223434319790181591997280127858252749247010060558081452286911850255014265720548723228351317591094097596132062786083091821318905078666129324180550998132257904347920535590792625842080514937889054852791186112895541088872831774569611932847515858789357068206117424997369641226905811461308998517442286559152423868316437565874973395938668109683113432797788685086893224660812267342473116183139598433958657566847387813154482330932767536981214955559335480394204112975634045279467874004151392006415998658843921572058088092419797643073278912678362906302438060566649140695191872602901357585537886196643027250633527129226898209725476767991566417692497969760109984156428103285887095440211547259496163465625521483157843570086081280061529935548816786487703207943700451934176108840088560806005104662108753659558319501163598041593035769751997731146091280385502846364983985466551674531297069167015413189927701420740933677315100341689441869321171486919482531756040149432093608491810124202507673623109669175762362765644583555423788546474325715824951342557452792395777377124715837245064558511454757531519676250074188922879111040064775226810396101628290456477113584886495340443035754491357286802433803282090475831821902520414680235694090968630822299235646599809318283448704488294037654684929097242742192732776006283636813279044808717883740366669455908464040934754768736044973374842080001967664003275898420354840648355426551159809296951978473121029348045912615588131670277452094833335475917509997306329341234570751084906196727489713782552312485635920761424051606660762906015632656407734037821747619888564924231868685307255404641023825757442686798853833095596915221718730924968178222736624431216985713110209348638474053750918091546598716744482888357525922033555154096291861538649626965301221284939035598478460018062167017939764924104874619938117425088407273015916946842966582544285709259417238390627529260040092755977119704114836027001601683224825348917895768725768894585218455451820457250635305075939709554845880345932365610859021359586216652729675837055005095110858121762442048769067691706690401902998604011388612712973263905489333704326909817276452138535654613531312179256146863864262725409891097055360414244837193855341816697875417952632638210404870978529796131720081510426682292963196356107021073978801524350060344630955952044394181232670149087552958439456637003366263916822155939187922242454560680991340962512836668149356866191670325981671881612772925636355133255721463941262175817414027727822772561878099050668282416407617431323522841011532199766530427642850043234298714531666465938026029881775741994082831386707480849576647794632973184590463836649719113483610780219557114734021391267374028000648500577804689683208269683559920118645351237046990639955985725551270058676596486058534544352102436958185740943678365792017847382165395642628543755276057798530086185580164329470656568905892653108151338376235237926167562633218588936510040668032187962999439135943072775532896440772869660302779357154828011166988566658987782997204714912277572220531853698452588242643471335466602844693792245437082615266088165283281143055575756800262282774585206904796843634486861532429009588885233773697463801530317546172236951194988501927431316321440771760244568136262432229745864973053277129933033938355441407903558077665492543994192496832647641016382264284684928472630484388055193746162518045306341593532696209777490515642901840811750009910565373982958409609003767418752620620454033368552841559953750710461534923081925620157721320365696251172749232169565574867835857287725393889713078280000105357643860080180249363667986294531576810030638861218530273428168252097517374044224460691770379638348762134288579129253912788768298227736266901958093281798219787875436393167595194050968959008098542173648297304919306929991962952499178844538754854967561104245970794353087484720504819786165693880597211305962018939334538269749322402825791662339728461531664956994450881028000629012641363002950127691122867013092386619517458910688912677492749938091774186567885338146053139093404197102953814324491294537413083816441884910738100518949876513528612155262076006397783849100546513652474642949227289419290617111002350513032659712668981805721015070356259224414911562098168368559259793664792125455861592516451166698267539665049011826434598675237970057605934696060197671753133668546410840624804326307392024180298077100713822136754127999724615093467414919285554813767611832637711074221430118230807696477820341310778400351086014789570968734274900545853753077923767960435773119911683667745038691513256729618046032469660692561273733127742731138236028980268370538476309204526813100830529015257808065790872303208741579720164960214602585270104194309570085181915897067831210779720018734484585685637864287250655457498623071414800008960422806958135494001115798061718192634637593637347973246184971468841489408548854071106435043818651594882739062873006375389359679137863202975456269654661967121316228173243078918531943850178338686382724860392312805552720270220681024678899046370720683712888725481843172433526070605545631855047361304194219895836765131788659529673147601234533604538296618036591645958491860656883737924485971595404199433096058712251936114903737903041478943984966775961752198848204114306595890822801514660307922356500372123450197519698772030751757387225802359579642169172523500678348125900982474374285579940880491733890622484863725211687575438646096717648151516777470327053039861307714192558895531659008640440271011735228359931830127001094492015471266213568685759763355687844013654043289001438450290885273299567391021874833287521487226891866385246284218027154661122658890037527437043289203519625630980135435361242212742365718598611293379205296293149036350061222050008678788676840714175226865988597459494928733496876862509881227333281826168709589805981837638851782179204546779989191929733650220443364116764690325388161759709388304869462329496126458453867389718184214368437984737320093958956495665511607950561049039162363074856125821669978933700840089132735973304248323321432147063780283127590909888622492437398024296109775590631743002792360959771074377799284281585739044907956299192291293124059973465998683714995513592200122643764456993954862342407126726658381191369256267055932247919097788263936156938833438715539835951386110853937584625024967788984336917883349334975366072418791460777141877145827054914653176016502090039799497050708686008097236177018096246125681478475963213184894767826434893761629171253165240629309425707964533094267622254525825857208549704030018141495360875522701137111852880253131787393974720276150896398967349907252344560494250593022261098360381151483335473425448143892845280253283296588162316133033107094393154643374035796784110927209871507805809610817171954147702149035763083491100217435066311623944567003986389057354564771434867209290402390254345489977004389624108961823645629451529974118681413734726604050973301334397090251195434727806886875967959952562684040816750838447682237515420553236272987886731235940974524015518099652364187012037180111233734408259338995324713219787080408870361110626730026939389152839920338312379129633492198774812801248867080902800200969179963679247714798370032549637527286305980958175716403654852708417268662782143574855770030805276552175820300561766830235017856281592548938016891882855874271966720436549250306353756362565693855645618832584438059894911267357365931329530573517839694505917902667620500948843422280708039322369738832265344580759134184390469271908357166075938193867474500400744094145404576883632789920829540569914593873476745758693379945816806050753149759293414611030510080732009452365399549274571822186814129505109483253344626219543849170917890303010445577636710379057873499423173315025702439450453714777198243054559603008863294138919764853534427256036662453221702135006586067897442603445538211526575390189489559239982732629454324203127610476566276088792110721931509423953557141209824489314181337610192574669941904207711645556787189945920224348425810006493301421875151790569255611503856427189895252559177264843304968267536121953833981144566440767997499067767182476602941703814349641948154700504916769607237388372138427502410846961429931956652239370007465258365099176382146166258919672218785173234863591666773867172477360022650401840885747284598943148905696962134117998171115570815957190186568600168772319169237212116857782701449420439449207543525040068737908007231225518828216057882390809397840564026634223698297605319098119877638981624527959984255659808299683876410730126792063064252101885024576857881021323364142775316900578964675120116344568430709395100866679910345743133459009209269491510886727005764059452263083523542870349742380667959463377401649116570954284830155988586669604152156233448506324347210847995880396836562748819445199659249621813842812978146587932820275386069453283229750889930532447081674119052687302316268216231642327935280277998812703190650613501790782254332699315145399303850697063514323814043545196017365563008287803640602484372053165161891341602424988577345585931170158288574731847020553320002033562917827398779806127905182877987536634722444473491951978817472612240497535136636383419647813911461035098386548774792150912522863877271748101570365554817478382421310428009090223053537457259149298873368885028744771769887511753075324750512898585962593744125763282716326439890212086949870119605476991030111360033554180992992256467855330467424781909371420080234136225272825990439686662790530339925719428546301572795301091204103583107741980061486414963460301714200221042613985316516840838309203075307290139269307691675859688210175382268386300511918318285581694417658048815253338320546690764275835062995882717705413158728763189406574962467928086253900082548532611072687812343591775005562671411157973420263658799770621201683720520422660224804131452346679607740644302484134354185406638189108075139472551446739795565242092405170523089080314275849745310022508457874947325759776237216802683930443955000901030620380516721890856040900845775843801241721963874263005342894698888268204353300303615193051190558606422341172994723252924050024292774742191110129354418319994460891582424880904729237905036884910827387931446446551287331017492908386198285788052822900447274125363806092260096933365772795210173312976450321389005290781112194845044876611808182701488736413831331717537746024041195086735698609671591492671807485907641788716267321654245506380391024625782849837507478411819658823414856027668361841855108649655082322552044616709709683884443633141986231874077003882735744224079873597836521890202260697512515651378649517735811239525379047717547484449095745952784273268736466869807194473892844510141547485000258748309286865856972296220209819547654324015448498143590432010708717436868682381424031658806194357229910517022169286472686020583993972124676725332529875453400429587059852628785516179415924828244604874928378943792658634667814433118024500201637299280331763772081922874932579776353666519093734256916843319143911845301224802031228900940377541783441123279045379830666309828637451366641935848241988801581925642171889310552770273474918240192863453878953923104172775235844544749574829262926666902880655276692044419478477200330039007389668583067821764708709927790026677039598705631171718322306328341813446240524357581667557069974698385638696153991734936925376930470157690654356102315046341454361518343629475590682216280074841222571603954295580376122443016545581426493630591570255083352599941440189261769920222074841681668300735972117383797393407954689486534124785880017524810645078892685146767818264908100286084501241072725643878628590438993630114873806285077177933715267405776602523772676532317079096311726283307629868319512336762499289934446157991531387352125282561192253552476085240955091960239245003632017830575954815777883265798279389430731262065156655109911892780583332902396131159542386604000346910308859204972553642938668462108857132898269736602400453329891544119752689485925765384300536671793199378834326773040195578532124648598994476026045173559225989546946379329529772418408253955873981661495148161943078048541114606975208908840922651113295162540716562433833237765678228789526422738434751623457069696480648937758068035823736432312149164129878732886151496127375331985724955563117658130287721486735420362358214737296331887200023357449246635910196285391707411559405520880427955960263622406489295436862460235087896357506496625542746912217320797942071295078842799503091169995443330960286959880090752252435093819322331722724801617878200193397147725912107030401423202804684144720799496782962242943429547507675048547830017713730034951688586426125896464568112002560625106604394707320817946681231608125626287841574767606588161925143789613361043012438860296347827711213368036134718958237934683261949929989841225414525974244120451434439521160527402391228912825853554869749307654871048037808359077997333292729339223133557590644945698295956021329678881969654355438889153713934019132865700519540781427879214640986122478083897247272192389899516270092030136213656895292319174448682415450375204177218779767754774261318215204367748600304469426084147417935643200711452907821204867118421173797406814276415091705511247441393816286356529320034045914007661915019568396586870480563036565075966504616801705389130340752637822300372046541554997342022020798144576101890720807363538706716311390749716557646710159312943786274791820560641524329365152078769155510616117080276858259848492779659265707515614505060835978821156062621594764242362799996126843267210654865504422071563946540869080148400428728530942014910006759843002107976700020863580192587530691513866486472106309791166355724656867953926447344140167348500133964470912764119318020253247766665596853414394386199262189637984966872355890643551506632707722698075612370628704713874757857054938582843318501449937864268203499189590769185395098253232329023258705904224655751915892583719729828730293322995550151013585412821761768477887995081875995441538099790243087100242388568792111352927478612965498730359073444073484906099120834743246382464375515586845657912985513221553098155745698534842591262192506937560707111666407506107484715328491115624876327482202935711646815223910352172639719111324716647432365221812379451546413440172399591062691745844324336191942556298017451311760463170118876869080082701123830041017024205102254658645185993024925102052598737167171206418279624639873442918856252780527760915899475578882211790842535394292494743032020144231231635912392301041267915937129966928944949583683732270024926012878418760156735397392762185253819818536694035027834198188422177639321515810991053154640986419129275023324107686207946399675500181221941884678000868004906407405185716757956776906793447695617697766692884152257496101334230218485789172943061177360112347659602341615854928175654487718655391612720849564823590109325249486994465255931879114637283706046302816930226036815852989873175775025809344994431343649964890357594810148563738023824104300994005622794433741613667601103468505466776426495605038697260991301530951195314760529193652839339588091181529120569759986583082999921705427019197644293368290004496278180493768382393005218795150492873190936892996210650566260683739867901026189129232820384598855665267863587677164140933545732004163435756129822882237226076596103998216229060409827021498694477139464637186525331895694084838099799307131817323521065806641605852876267633494501174671864901518364186642024276186069879750719702663678716235765167960566681154290448024013646106886572912389787622555276216932918488438831519821477999286782361502058360664672679838124416915580075399785478725688146371283296356738298811263883562018801481218605047518154553004026902130211153503700001292493756171752474742756197644430280764901501866158460464744519041778854493643812092658692392841920052122211969791217165164245828586767364560392184581577801703433203357201175334370805563759782586591626697251492595392008526846697391252832892927033475405595969594588015842842679538772714167843641008259373108390017724884712354389136766932819916692493811909501450016252479294721989394910935097200484671873480080596195636117688731868763742384818355501944898842506928026022572432115846723976495341386516125683019126450547708490939728936019411842478178002132019419987724772187999951099364541062496976377139679836991514853835247764868615087209347292492951770457252404385700898216607671108727550586139668492910264337771100491457676140252547697551240365815165958023353997069099258029098888299501297289594978610436277168496437640175230102449727279550567546264974388042850721415616155347233340029896426884194041119842618071229685296565565046888145023413455460411006330205362315044184229410266618084953922415559591845217506530315842166905753940396161392708059592494540346691645497521896248817799386396775455478423040789329418302559517651666606020185099669073446776360760748103099050598220245121653569452186248537263381841943424239376535325905573971119574659509947639343536820577133518113981005016881960642926216307337697149527209288363130886782695335631729551371238902175529760174597086479293847003931445165498506006831862836743215657864969242514927852480926859186410099083127837514361961303493412768231175240315530707381733529050829377467556736049245706654575573681299800390458264262173153469253363613391592456801613952703022980419656605089875102196831156856368492946057809917720507958739474665717383449623290447498917444131541521679574962632133791171769651542454719765588779927684085175701968843325574604433091584534945562933883582074853289963258281488724969446771749353072553261126533894021447346181748992017656504852399648701781054225347178532470575869558541577391839429896743751983120056801509667747695445448240693152190694235927204093950288110644027834682127675377448722324663915507401551235223781218772717646529161257938055134102185908811957633373499403339759183365489420767551264909821928288614582756981249057424555897239071450471394484563744193832061755248109479926181157963798737175213045729773987710286235756544753121084765869124705335108644622697688536313755345547133125175129263885246128734545569148828143323225549477065443237877721677190088965236706842446460028627675832312257626975178593872566347609511504281671452573529646459003969754984617313804209531133398269487722711877362320686359114256937992640973318008991532382898257925341262479957193197355336890023011893693434742349284012920484534646221682157761991832152085556309585421558347812280892465626235849475040510734712108203107319886207905050146427827672253814259266265483605765080007219974010807294141183074504086055876283066036800893125820984969671322531359538788720152077490932172586292477698339830748710367396008925469867552166352267194160695234412175845325321220672653967228867167250311304348128356706491837992232189137863139180371748552987820577306702344020908146222765293996580183557232346172117466954936127187728406838201785893119703078952027817766415598454036907101948085315782885041975564602400237638090061236868426362824898870599817744805420822310076666359148446928863181647628996641849689273228194717607166862237837412706777707065164242946762163357586575178750329328347657530123201481265904760622771241484561001933510235913514302235730816492050881572444615134126712015451277881421041172093874230485440068849108457852231911204338492620000773590293507014210019524348596407295766771716152554532355131546494771823859765889135718998860865023931481070887137194619990385636472453851494665150034319900612744837686378312463235888790702599151276935882058282999565762828559026526225007096661811746777893319444524097860963541791612702635549609284036991827222538877315622436482932209844075315635936219018350549564684668451900387738287343192727128574069153849395186675531347659696935829392840315315534624204403814718187980823632749121998059483723050216433708673718399360156528076392008153406235980862218676525050283454125102108650060259865355072474949740920045805224205806717858438309441647209177227816668011143790661969106776296946912785362263679951174859801553372403648391035332959794284468396469811557942305459187810018848884692904629796971306633807387934635594296160517059470385174353052526670274593320816193385329198111562260986809644658231396926413415975116361399880032236458916316510472060348690785140751655887860513402376885451720653749002081267614692254249965481299025448237687598490889544386206858196967443746770795768641549801381705896802938284955126575487333007872149470545407537491344890759763698263509627141403676053926588942718966043352278883185614067867215327051754772171177829178785221251162723280175898857920174282585931231827789773975548525416170400978505149284455487970808821569078138617380007623387764818633989151928780954947456489964404553078471244841303465323441871160290481218040218789752303947442738266743185689718560634788564602269212138689999622084851541034879047787441688339078550947589357882732251657757423076712999243139154723961359678782787924097319711696523741090909515091879422680466990623233573364839249407843922586483343905084327815563102858420008898445587251700633287237834969936822779801887531106349365129670425906829930658176865541746348165912958346313276468803415051745488522839648128047486311978132867076768420243228201755717599677138716703501922502016879065824627068081442248891263182596150086479271782175382387212384715192856851160910185274766960338397424573332806505222106468730087547135112115226800315780263771655007948418697478726543104159963154476115657084223431334861996793351866408109787379930752099569053014968131342611784724464285378283581862979676180637707750005891520436441967588324026859391235713944404655967637879813150609038756834636558492955786502728140179593468278793279920433230097608383175100797889365128496587391273216516146451231499081278043672955871123311437320635471404746861256612489545794290914137069316522991479711377406170927130751489426160810181004499621728728802143840647218604503289261515871025998625935121866739997995308920307516289031087230729382649469939884072808505592177996970621222081482229078790470099834635041644022378781772073805626650364291759920947839405004072313673402718100002635454999544625848420429215417893511575470349017975529441342177061302148077889666702473383680538485586387777360188691653399992628164375317014657697021775520159644460547592026506571619013597829370624720340961516581333149208587480344934573651254022182033460831217110245527665360232376883391297349324961903202822360493390958854730891367380941309554199016459043848619765350632272997483410113122909668082334487768285835680825901651011080780391065393263455010020209259548399366479969904209700573443633278340252731424628729959062684798354601043999821045484254981615435788533660809309540827855307701741273994544353010357034521919532327457098091766330859737020708515309213200559469682891425935190863645130113246322174013301258525477550404761853248982829680296811802189466763551123006438968345742418223541456175713431167974525478027887398302941612705843736909043399247457233382319455815605437993560016840780067281009973252300067626352632951901374139230818011949087002743391179284372070224828533340822218075771394734040240452304805242583957385621656346652301075912201689601519956673086275377231099986093373367261551044636452213132551289548113067284334947511444391707540069399645983154117278742678004663987614061267076558290975904803135404248779344192359662629902900377282123879999843869429364045899927113429861180486447274986152701456338640862660924524650437172898794718117626640081960406362362548681683184598482201390907972914110817645476624088068527672903988672664135274098150545276537909830762812121237152411674826700140628383128252276979891538377713730608904402949755004978422581595504514710659862488415409979844701674465249640876870953553703248473702659655007623560292872612337582455252457013159892510532325822000172621600622305712248724907588531966948123536208269202002819962624352043731194306016921027678228205655563609743495395291877328207369098477674465414634420673579075805843765989744512135228108709601170508768797016895869378074738225724720929584628394323906792630967499970297479853082932800141611322738741126551136736299524677494081912508031425982899874063000755819676920019353205449648154416025378865206219738596511227534713401035544371056234212217771287648658556790268175224269372456487202817856870957140259473375372736039841293525982019584222892485598314831153624543786692964190539880461375857875387100557215980883919753198604614614060902327224363102859312189907687616843132374039850240929285016353091562991850812168002210567689799040159051156349465396713617009818051991861885253975039678224780486908066049715522729183531237250860453588454627859795232364097790404550807101018110639669846766353773657008121643023886522205128292270708736134478518878358523110681967862855999194892707053100275911468514783103581488952726583101491258772280549539149473934965959115877010765212663438479546254284531725990422335576586199194175443169947970652274365635567265611130191431417313286937359336713250845115091292165960824640806183127153802729824000092390661515198419372701172817098860340485263820072580662401759354897817690630304017121230602268801864566724633374733540621177643832801865666715391438046264775330182432355176952795172389992851382720273502539560145669454737041718357636836973526429524113884933375683958042964112791817625261900133411006554514130629241258884722179346056013263487672197921037089955366279364669963237086861083010132217068367351822058323495724250987173666607603514705612565865225302265254698341490973982851058224557555750199950546383543814792725536708862832618109230297623539813723889207991435819867017930699827457508577713811737957875185938272538272961841625676120757437977204992515744533462805119333737753591129554299162208762231162056572426432806248645208687658967488006313757447230786852691104554848554251871791913494366060616552473379823050143228670026657227284242643391076431068871354411535784934608216145911090533875154279549059587526388256373481512810743739245337420661634565430260959474080844338089234027128586978382580556236997963078280718752780493611671621099592862216496053134041273461944936614924949679718008895203103230466489615125248967438370944167151319280265253146255409210871919830335857162599641695155400154533960428303251582151213653615247396665384759202234409854055549035889462629875631579814346248927816280671449613069320799970201571813280286789454280956216507850324911231010691080770589208611995936640075954869416388673186423590730672150616158451558191778359849305771030518165050510868143800314036526914268712955773667386190942250907827814759961531993442035894460768240600727151009070189418694991739461062119791589746378552110886173073182114585035086816385860133282837073303140326125990922580345124378005514459749317964811589736470426309401157322185692269614891625993020386486277664165500147434983781548911540396478487558053067932080562856118084937893480046434778988064381963551738638060403384397457091576550399073915214197386896110328932513382102220587475587109593612079672892254118836085316182305830394027724084903910404359894595416177150200227325220108948952380277771042537719184574923018057405910743109890154949647193684794826414945603438606884226725160084642705564098156276064168101432794473289215945838581824311519667686364674550083179141659173685083245650295631072371648532058336344708120792789142986626461338973305889609512143042701950999942205254586040926118612603462631423809517509521773376465911567610241315528970134805254966799244033732425759240423534117774111673925196066269249457102694129871894865629990188137976186901672370123521258112476104185210078386392936193201590864022311194910213324958107572672328998006989709214033481863848257156969423581926974401199972707490890759681145607680700032743388290850743520101128536222002528863407274009117039773379801767185824935401867874289459536581520121064622431505482405724089097161333066593395955793481131504983718875421543207975956949430634141119944124936709519234372944598904376437658314235434405994030271393222805301449228559209160858629745253166176681830468410454043383417523670545330686451446787892907055558276286212948584012378160691015947940661341144521550819639759989368758806289543606268099348248628265860500852542631892298904395883097418020437507639189526775916860530750318430353668216429310053310249885827945296494176106987604521296497519609372611365238266620746252524977880941282741223891256570642924483910465340235252625555174822980238747854952831368032719995853779486888906824848420657114988300530002162599133288657999440810490686328315438574727422382664207564297804903110457538688365930149490436225375539637763974060012152368874194400084056970495696188801736277657538432931549595622683229137864663749882235963977060779034820804555954001592924229676910527234379714334497243452778405260616651998652812468902498924536163403158496992149063496555001310610597997064578988772901448886219579142267971966349325224070732042088269477885784102268588619519122831561476260220525869640583512806955529520789130736786589730159888364710794771765195578663036600224805037903983513709986314645088639253924790350701738714393160436398571950189128103925432859310171708145738386539054153744991941427005446653945790744127700556214164020502946828127411967125784788423828589680463637841148874241013719660974575446442811194888828335136448599522327486614140813237872032723973190488872026913751014462410145490069067084349112259590322405348405467282785538960450458733101788116987324455298229977069279890140462362871528122625957739789787451366758385662113459116473828389982110018741496639589865780437647033184072624410693630014340402736093346799069286705396130987035124789847432989776955725585166319325251941066018728260418865063056438985813133084758179817302677289094273826056210221697277744707111187001095380244141830178185827300455626452542959641387417658228397248571234883500734444966037129133126579246326011172959209951274349008447867707614228497346851523867036032287328296480210502278204885747873073903652405683243653234846943995819809919709309452750559374388990837027772334821561539721952398176820328570617440433395059707468743345231325984479704935343674357377515364138673963297529554790621105318896677440068508959499416064762947496320631817489834628548724607333165031296052419267427240344404967394566397937621353445566513127552083258750918591212672097349730439429722537144284847501200979625499349901137185241662518812073278821073730629785706291321767019011476038861319938694314723431688801945401320131306830058667692074928752987231394958308170723719969310706512678740332834857676800358717233734367437371753548736571105701396007517745224226200179991931612711615364167903129907714091302180696379111766381707254499186541106488482659628089251663296511983722181463995862155042011953490497101307556091397978038208661260405035930729175603609850400030220345105083892453853141918929980967828836252157839419113378427284132943015114070115543148725542496932856778310356011694026674339979238734880134539996323412895698206780453872484651097317428082991061479964077445301606998432292252289706722262037450675888798000992779690953554857310026352273611139260853073687119458280792148627186597552369571657819409781086509250193757499250473239585836928398543151122103549355471717496492359900749312536872630629947883892400338593909958337521754907775357185278793115287514192734331926228758528933858529333073411973943686080515028092666189661358270068469643225902621293759223978024320780706872835543950804805535944051959761640418154461540553227126981037039274618001925974214601488194906678273449440888943848900590865880059441062261622729790108834560184273625734313694319177626046576850521514897407032408778937324133828027469565349942783536887953801546159920770510847332329557657680057101406126778886263228344596327726115426762546872811758091349435094609022052149737659296969752843035860624998536263189547787879376152192404276120181778433893395111459036889566394170982367050660925557246768293514018667258758852280040265554201319043388489753146474978637046372851733259951297035943229052398051738939559138520052287192079913729235656026774114032282641645674854660108257249417108361149667118292243576452087202267708536241783833321012351095457468490179475630572594682322890202145330999301685866436862115312302627703589508345849204093737157678107168578856276850973019078194413610809742338801948702557897360713518763718137504657383694535622164215366527734183576516247930211771118302125422208175500184364086831769344835611617995632400305864329387154042231351957989253521440333375829837940642845335828661411647547770318919633392289681412886797183565609207457278553558717363794200061751161627351750176776637293744010730102023911422745320049996248149242911608329468279560056207547553620271077382230161494434861149725771138175420578133174969626838363676573154417463673749126942048592236602414527482074989814762375285286766424513804992981578851427176164601576333828895983523840711687595475954216345044562713957928774878095671836007536628073677545117191863437069791543302334113722496524577676818558995007456348934947110085320592471309252446691379820663186616599602489906422478400986106499763279974001556750782601781768310366576719962186137630542507500396645827520842229403842364235078567098289842953412292505550269802190492318490820972305592254035835605926956879983644163959805831190060495524141082166095759495843479294438738383072620872160222413441272600838633467542201352635145565458944781097988041745529070602044111482671838450391057116424453209737138087395949345525463044374135191831751027387069670676454659721253616155059656486792999116065588586685787926544216616325542890578404172379086528221314748311384497190655471273027803022946383215107929346823029956581350658033387150317394160918369916387454093665486795549156463547157799245639290004167061633287604396234665227892434505491942009462861377255465328135887054015515827890123125938360245000279251373356007931679837895346507995261879474937932606334728945020653004646836524711580496930763424867572743018658235574284289891032656916870802352391346978634618915061472053155815575900890165585227072794331021294988997169705931368814537906147813739672838490388452118156607815506739665975582355866346599180028170097086573002830995354904087405286509648397402130955519000295954614512685301461929166149571567268377960834489647750010567791734655355758948523454414622267672617689418200815793927498963848892061921017351986094400878715650276195600324510024915734108947946629655913271359746154520259613348483635428748972220694186897045451595578959852047698442570275251565958847233459056817948773432607792904832987417090074208981649314245921274908185956236633021145974850737011933373052355579612731356826081432298660145316669091267265695865740125189865972630347134625303113906191784105564737359181511652485862958338325165165352422136682095268351157915664051042974346914902994226879533802349034461146802756419825229338186081746662207009786382229635070105156030357200032196688484809105803296823789995791752390138670408864675101448562952351910475767886829513601215431860370533754372272968076742490164026964968007324405014066491035056013989797081026703279344963631791383189449410330915808858258642300689047794763771027083245777348381447102246178445095227726650949967556051935227096861300179092927189584194985820787906567114903001404348963288864682760400151687788803758166618704431311113431105681015990515419069878123818603184536080118196570898217975932918363728751889204751220179491243929948434129962793937370723903311115779169574577179210896241312868978728439776763742242639432727478722051824609826076981009127639448090330172400038308500788749879917152426473161912502260387934016778680058312556766900327467665623837812808285032478989854059681137117583313834137758445725589503902563556422316338083987743561709796745243065888439387264877730725061993494164882078278008272225928887037451431786246374076185001057742825425052720276179639507469675225642422709303163640793734058968944372091367414019419637243773623018629157432893414216130881340807480433680572030331791285251003973935428402141385633608311983755933063814307795523195391675002289816198521338722067846900814143054975242599079345237875710315679423076132963701893769381837743960987765306292756248609634144393194473647148327736288688889385666826587942390595336170754725359766116508044239429212686190613342365445425640887346785182080627806146445860069006603558425378989809220843850099411184584979852419022639284520188973020533597912237737660125398832361873282992587509767813086829178734529872348528153017703653817888731894878406826802792079420078490141351201283447272304022262870979240750217338500657818237728612605601147241430859947127569660526381290121792502552299038581228320129699310347321538012404453490410852419582855787214273861637059058352686900135164402100839090260954322406029722422630848271712152991873387200806500964138644252845763979480213963484507220159685436171650961870727712877312847253431977226462422677369414780961544174227867977315275896209682796623807002251537350548430049797634253177150747234609005772394907203798880272153908123424323778898736144100705845223587431118521167224989841713093838549942233575664694706223352890947810001391471976638141104672926304105298255567346066135387183038605564715104081199094254095846820099315261368685345047338343913254781661835343152485258953501990125199614518686133957986775516941920374666458457704061408615073626084806559072226578623175469319018580371294627080001029485091005684227262366704840674610314410230234462504184992761616009164366480259665655000707615596058792903326211989891271613055400265295313002761506903988097036279087393261593784998992387153004409127307596492361673703119894892638158038530840351297662935897563630545203292136436505598707656090659830283923217159978558346700665596502710245394588258582325308259596753274906442364563949584113070125704821528390147103160774345283379187635147464711831760746824855977473996340157919347081906449406967901809277705767898789539256728971271674110997123157238860274176269308614968417816718311425957166942100515685142928339087811273614442909925296553032813354014053353653127595393181736378431548740349756491921330118485802417552212895420804508935278343078895542420280970590281103319410439450780711190218636721462290455307886363804215141647395375599593125649822896049606447660984464975620473562048930384702292271392854609104883864294382195962036478711773766407906404039632924653908517030673237903398578845914150036508186080714821365764342850721000108171087184040188760862161926390138729657408656014856235552107935183903201396719829917042601634471376443510157982967076756397436525487891777401725064529227049337916194947486980796153287347091240930172903125497175692398194474248634773068976684210841435502617121497113407772087276163259417710164394256296539268094149168081798620359909877744795213267688247580246533085821993139362747652257400244300972416384209050041427650347591550691840440214054612914598306197416638914223188058549828598308606147145832864803602187354270483304280052278729576485717547947310824683112262875185135617584677831191303547972647511012999433407937857647597421933412660519385820614288737236539855954642209191402937715559937017888490948896532173769923140809980581388315223132109294060609999879222123952247688628820097704254211951380844677586652865992008490721773844475249495418595519151791866040348938154479804274910346143702054429132788119084560517789881592838833955289084142404220964152677694318553943928316794637268973436081462716240731469684743094567853216347171220717756216190470997613751128687387787220668723180306653287026833559913438368952011863294263704185662918541768180152272749597108863830666954437996311269562717187431723900885161691866852872160965913801184441113394600329065463134399815394022687047903183147868658142148140997600873933298583841327978787276697867806692937402778145249894414999965188230122998036205366685594972925628996461091543854721497334280014560322261839633989861056296108472717909627828152472135703231815848115263947285467645167678520431082344065157646820984376748484755235739281753594361042735359264076205656845544280490018028816455322472122533948443192943536065971802903753035034101030103695325771481926875352656883376561390598017624316125898400858520654764851346755128965752931817876825138338437339331759925438889962359812382138767520543823401505899079759691489461392593615292414397716513227634508286354199879562384869194965451198396488431290556807854598896098225642407336279166960684018618856343585341752264218492210881028437787646334733790899331602794838505699794754450916366521098263261749165691618031387712771000576865278605790343515881870874034672820363633519921425198958032947670404621249372975752102083546798566803366154015722248497002386540789830718994145791162170360568274700107470517572742250068757333963125708385128355149693097203927684186935208836000257448489689843112586239093832018702368038469412250315170546496542547535735408260093438621754619681529650755188467525137466528407331169413132637298265661244713105171483568520621220075340766615452666946824115020382901741423028858857955317316603602955000249242822317586285611216548963280526140245593436044863387750375208889673575187905750893348487948373626264610799872173573126442450921145394507407344059373896015569138125082133258529979405923337189341010537771251860523047018803622297068493649355055267518716607081277692992463926702126188208637737601273993305729595473423701543985040043954493235391824043588011835822020562714840791274157354078748547652117420666453024586854919471746919199621683840217993943220238381856005081117078499618597330975023763514320643804151093308866125936089112807437305587129571630116086743651001802637127897664477542733014824793723556794675350418105440441215987528364663257840442857829996159989454060716381219957866355940262854467338340661966677513494176604133935404611169717162984947082082202622431802978963956627854325988063423035141477665721423309500570643366859092460537814153199365858087062209583563447519228034971570452797191402042773855983747977743168913801742354857184694904272489613604834841505432134221507555849428784503481643829211801592124033864845561681999261405524229436065733330746000067866890169321126122463618976479314968023714083744042139762790330783185833826339619310018927649604218727073696570377203625542314053455569354463619911382116787043298775276656518529454277544195422379611824930678694516757326756807387323964797242241441341614674047409407153809342453145918386874291742508256989790070094513537297883183446662248052251833929274768867900903396664070835186742900157859720554646651567361854391933789070604116369785333184203491940147029789412352357515741694387911771991637703875090813246450491525477939351850681822653250019399599959564141071948071916056424531025254974616645192305274866726264941915176164354786477260691313468280031656708455558600919716734481670052667500237520155302969831156835320939923910400516880692487427646341495482314281938102545790215641318072409957448947470258421499449783924733589607649071091697550312648885452291990372497745501617716403121767163948656036418647478744455961600074379440125495413873796114664292433901189697050078579588863953879457177300461669191939513279877606226807693670343777426027150633551494204142992594093725971215455578211355489923504240353481356553358506332471850551670422408646859868260058899113426002436556421548798543927645955314183016384827937088480591854817073568086219000693810570693726790469122719127062547679302437354357558309757031693727549322572846090600764435040588624343647012680527684470650366749966583000270220479635939670022878279932307104195088452808174027723984439944527385913969933741838408537661373568198129555480995878169272385803209479859950428914767011188563139898466611749207134167114250373102182271379755815036886462962959171455483766795094274976366541954382083700883438347811540356539399038767883894993411596604677398401340848777868309469971951791289334616889394365714189864186762538089576014730463416609624361813757910378293912452459206931730932999439836405798808254418836026320086883914335443020549567345939003981211198645814156776770055864909499212975518459068042685098760166693811544970851738208806802746230572251107984751573400560077146611729949614151069299903427268208105052675060854458150928647536258633824008415896643277254439162391587731274413976725142595476738053867366587497483617470154310604793361973446913108733393560053349012831607201050985125502479839173437620564672920523816436955512995084364407878051794888152399150846460659695972883455271794448575506619235753762236799565230171216973427480919644334197835649743473281746135506379817927615616258030168687290364149043101287742155072023101100978965346845904513926173944670860344481325783564002979964154086526701861587570523684827353953863541219404724823764764636016050287545702038154370233984518496219564903992876162568544306061361366497620668004598339263900827992937649603889643187084143620003177978752159554001393219537767896788288452713195470412937247031562167743446808219068065699660132750281024416907082498681821433545834204336765578400673247529811126423887465734326553963393566040285575363468621316125017028783808638186575249947493286056505186889778229361596935776216329803100044388717033244991428222704159477370916912599818376657739894650217480948072660216748375268528762605685483081504757312349331603818371634405228784592623760796909568545663664601284120525184561381162879896156706417247887241599864966946189939978930185634227275357974855355938116029030351784875008446901447548639735458107443603669981430547295402098122598541754838804568017527295000091003871044126928888500558309997419811155138801381479744576488941214707595946787147249136108613106058511198084349410482214824502776800442657021942719061582205079344123795270480663887931435385734412308171886257886018919668303548660902961717763062191280402145261959098104726077780736617878558996253837835154172118246659753942616234085032500112537230131451061405930861570313287744030174971987381539764222288660019441207996927347582488302082174894758529283046218408203482143679478731349820126418449884284075808823676062245676775247991935230162113781420281419285411560286253709177413437541360030003427969877698105227981078558802964548761876483260566699396868806839095071246845194205007407742519856060641033163871594500281737321238422099697814138736557464715079420540728143051117543930508302627517075567696154983687307788612154033909270119273999404010484972999511035233111387482485965256937209532502760042345349882841244307867776834201577416800506797258989276759627086014573894274122267566042998587767881161179622067124349162386319883765103735092366425952742824634926587412309995614217201298515737434423035157859187849991143416089866325269117518422318612084578224786872763067939775931932781167568897515883884609346554741992497046952710463476212043974841969837764388874775551637905220297017988839671030240217277029063734148099642323009401350623258220906505911279770653944466253777839944528306816569582433391588637177110309768573478254777044394988062717125366642329330212660839191839658234122360799956148473536616612290488227014465812968702907260189395017416532102900226905491859559312426577631499585933013989526947991470124576577151513101907620753146485264724315553209221036731989757455324747931747408100721051627595451182609024334837909815373842523036282620847442283254368310904345950412941670135551346052045620208869900398458663650364920386333044215755978223014362999110590054811328560112039427323291503737256221274399447563434354223452165783705918041071919442040863376145259876703827721331895800321316194178917931015540070376137334557977508664316474555307851533814179296286417536384255319892056889129769251129912437813928970733807728391545378897466215702004547510232285757150263555121380249926652858264111645001110309476504532460581834616191743701828860193937153321672218158067364521851002127840844886291233242963464954455993431073624382596651557933517605594726356325128990077661277843795167302222577551914429307392913709782930112929410777059853123079696490840200796468693151014343036288203418381527830755872430919245371418910177230667777947267659265887296920804747742016187787825375890117011251343569234722041728594954755811965117939221971472236103971706310251173428563342876571617640845489806116393952251762102043659223885921270991352411250424234642031692664091589904347245176679077732816545969883096634326827856369742371680665120448514473790046125993689188568811448820735991504541499472962984019505990506236265473818158883745830387302260642315119410615261339098251300202192814676532108569705447046593632169514564616696677820442635378920975920164834790060050796774332600202315376355752496639115291615042644410695639492026511259879046785278885105242847064349769280488250594829442208390402824416507054291704168957168880064970317232002700006837207909597293071604138113553238676399698714383629558684657319678807258170777695477484954792177056623198772015085280093837351002874814986818636065753423028922154537803833241890946635569790580141076978602772950072786894023772417485692886964685672910347234079042919231753010052782253670892829622816633356906652678000975368677532217654693694386672221146996513443696674010936841569723571057611088912828598061666847133709099901221301168716308119864079947719515493843885595010881095606158980824783697603151356839161092550619044567507458742138062593826157748248967689263317308863929218605944403765899618747146987286702391697143630736863652396791743456045432547404925441643209038120685567766617854724903882031225551622450005596746785729780768793356268414735480555130627676034984761179003432320468044593035433604531230320950428908667533830255817645191894320502647706933431293388009845485176877766272315692625978548639653893552897840821623115026985200047783882873259631078781165998862072217170651219930477518609290769642142536486408013709514654315796633845528396418625409472531446059290416126340161850014563386090697740148133076071263377661711519291192783965427434315688698482571602516100017514417707534587829012905965790708447635981238634460914006207729655209007323531893976314647454114498187536526918011620619175057191592396208331369425856430460918113355579386508741569918271440812663251896286925463480426699228734842390960580450329546640396650403684575454959342880983614758416634558848318288792802676421066345363823053000301718454204345580514546911219422979457213061291672095202755531026839612331217015552359263457807081951161772852896283259937000531525514150842274658995461484390745209950143349636429122638085228649242701917508227169805796798909955325814086204158577578491967456945871596201897128041863109725176606277286790201549193540308389566890412430670324912670946705859012332803426673737767976283762228510207199161807930406197324846974316523735599414588925370227747724284725153864190422988783216270638174047876147583707613436579446359540157493294185342126721912036337163598064417228190696193833338830395538278269712197484920132114331099255035460589124136286335354237429459864127292522040576012658847983515305537974985708960612664905054709493265575781578696771078091667214799029685261302633017806474465869632768634714412526198318587503018249563173248435827730537443426926442523930155305138080185175890054656936613897139676524817869631081545503737535305169276006467322681913381455501070890432161914262654794151764626943313612584008608291102749491608002904010773356791413212991860301003222780818804234400710753267589174966111868241558000947344671940100012129861025820709260274486031618011603626411651429076774513116935784596091904860572610257109618031160048842687469055148475044818218633688997898990216763659409295450735479222495160455297079429633648172969072778264893676556760638098368743701763468718205821534423257790377987456088705064915074709627686718718357944386774201994025859234425783956492676415985902128089829449609298591512777571834830338350224164925523375885882141649075292675212040204994281880455304031845747616571236117562699533822648653045268980442145713989544398723906502853725768105531225859227857458116198098626824998914838768817099719433562404763364546209385392335989835730479718197765154753354654647094450584700687976709150097154448569794520310736749934864674908914658216643845748997430174906334091005371626363980667513265337365306362355139777843366066349614330380955937900767424192557290588198237358839694615187426997672458792309448056949635428234381985119371734165774985876161645684123577769861780353474939672996655379376434785822670303874970336017076718917425159823348435719490452939349104841910940393310252496866194039441217579948819705836447602117370291669924442901658831545242850232600765398292093101642541136969458035263867289010519248744807522200481403771052473457259082136175354661050398317365541656734169198639383213260558192368779620059748539322230871237608404903557437844840099376548634873862966956568598301003189095053549792480724121884799375287554205309069343770717299682217855815917963026740310772661545044696836359195379267874342735866286954643891990244640671537037534923739014161874271819105133100785410220564604592075188604332009287086291711669800414440682154065036017902788524371250027615935670980897096306652205002533255443376246761786676626680753142059479601993910856545017985138278071243303713256150204172275541230650889481484713695143957105093355615569825048932770427837462375025305281289502823832168657995744829135315582102105226767384660902808655674672385807905655165739243320391357169052434756893376218957150927503569750585487014478779850245917793598173005052785109340181181725275551825552142066668171432740849932960355809297548358834427371566906656938455408666117376196528815260382318088173603589226767745041285995466498636359341047232687537137973611072235647890876736343932497184074690964485665704782583080707847247925556063006224119888543059111320383586752845640481002964039708372569598358277603931424780946621759305884071196690126568660857413240411094011085327146214596831346811599878494145821752682442891364159316436723528011429860740040483167274093786682867662001469037912942959985161060656300726740766569299039043353732484222573292240579500750351281281863311471266132584399138054564369677929307850945771023901389166206082217310008253481299541789694904267887467131932720272252437706698777538811701808689774148050589701774330167610324815052606734066051823077995590747457643392732134734948623981419903620699366858918102676397424604312810750572440684910472729237081229590765004184823664869438089678067105497973503845912291781826525962829651261569716488846860478871484018650219413917180779020991039642879995326016547179533856725459948978812438059724992025296096989012034125986801694277806520819986600881452627133023025499815026113066023727463218093265168958262008416361222827468720853516197838853595663877233433259758069530624085222292124758601924428488089491377238135503150631689604725776941924513989504661532303350287653367167435257304809225235481932972059160679110820547082852483348204041108857729491564000169124879283526884922674613665405338988061701180365637181704753134497568632790521114028855482647894976572268318035276308858979732520427488215944800905564808684174186844414698912127211266776640744509657961964415578845681937515381065192091024628394617828946422099655096981118135836630627649387427702511767779281976854861687277972282415411240895564522754224466558759111596971523794652420446943722006663927497502614586079873992444068543417799367103312854769357645089250110613719463158861435419172120426495719012115959682077928746473511328031788562982151091875912362649041228091453751314422983255144948732976545019893721747547050266997719733947867391377046422801553672462374173931597322186998462340832370289160606382158328356064039406958770599986173938237102748694563359049484245188886815268898247823687825446151291411949260341839845843029371566414870918138121857490030608759630660602555646853358807862648416755032176670885295843638346343378783780082557268567689680154020128300214484879237584604850301169635188096217395879644603327323492635733050819340111552292101023491165095329486135456138397679898296267263676761201386428279831572983264185968817244601176238453844915908677522555086001070155002944367271715528436458161599896559095666584638611416675635895680401831317018993492813494376595077626889075656261508741806086123915832788759106773281549931884387231316084923136493842255640710779872231872038970427852049946647361348689411784113729964008720578340857009925562659070126858107699863981161659142613860272210975775718822513812925116640031150408445146262076278475197592586891424245399547673581193073557130466028550984357214204325154719422610913134989294411786451754187661165907618335765668677880242618962591609710830236583280897816367871448473648782470032738530099039959921865147763785799675514929555525945478513191866087722581560943205056468498549625513377580219033376482922935599478261824567211144792264205572832465453621721546358885714514051821333649135368069923848620090910540514671282401172354506133673374359870267224372302555214281365825758572506372327850620683532646678502879077779934827029589921606073327723773271512509709581137448688348424338652397703256314747375308229343534750687009229121594986974266497520248139219124816463471905154448841325685462837063522327757720251594881464159482291274386561441836218150419451860781855468673954013380453485089337918071109927754116451378905212536937229238742755085810444937903144580524677959387113564313572939679431436065444114642648357908175999312445019276759109016534734359749787317432685302051824625345309880038333542475612943118800645151110230843073617237970451262508835448468952709722462761801506440668668632228536555263560788484001521611614155584656099290205480139096036030581266057881065642854729761776591005393908440366471407081710980660164653465360698585214579396421457700360521527920517655099495924184654467755139375706794549384849112087488636714974315835141076347443983324641106208786578827328300265591328006399095675458148027274281573531168789947683513808344320667903325351470507967942665125099221779148177740728622648389672903633969470592444077545326543393535594146100935539050549211394029221212181083276028662836561476945268257537595955473524818733581699516002789601389535418064667351509781569682034593347221994212719938139420341504708810187733584882868436410981685683275174843606196122972948533661261798581076081224989260227268526692059018620853937318296362121447870961041155288475160271250751521960539230570055947067444577953309315559173176682839780522122050573113244832775651333941230895865156581328831256198834448263817740503172514537982599947770541321171547946827775950984830627961645893766626864624368728417565171127390978191342996541060166641055199867293698711260838944784192277769860389959163419176486430295618358687715886604618826645602899307350627397863549392919050731783875650326978442160007086708577784266257886809501926146803741150671795567908136982311089475073955702058037333907588518852968545220898512011019643612720949734947150427939517935929586546073429996565712386138256063558689403853788815973167940466421355288065910871289921469289231236953533181499149627774308325917132993916344161459619814816852539487149337764724536594595367357505453615681491742056573537349369201293636573907691508616922107023957693947193663442951059945163973964002846337642938056802464588058237298523049595386598426963944425608820201957627031606831400984955687785733579862147991701602164527334046356338203342037868535195940655605168145237499207741690095833988779988726455025025434806053283700010363526551267823500324003755662376526796625208806607563795679211471733104016355683361691957607731080763585423113240527692186687955060609059944648791404554049331269433204216061428775100825913987909347766412824270374475588616179796201188680563145995187327464647981046324344080160277915030101094044300716178365053699176590468980185014105264548911537338200204119379599308230982081408376119515389197921551495844305504158577803652217283914484438789884686684807307503387635663510631857882532815806989811904754892146302347960768860751218526256421671645914545987859700297058043277548600992658872963259278580093258256726208659931252767922517092554416858957012501522406168218222707508016951032960409547787715296548934641907732539375538434696271190308289985471889440202251764133184978251789738123843252363749087308407454946812068372558724382037607242182749219196032807042434906856266696737659460455364042680289131047466786903169918620766447555004418210203014545814511202863128780881207185877457165845714031793676192433774213708855210469812046484362932576589557931104504617584689918314723073516363514465096850906881967411204995870437961360689635443989240781542584037926970963195437446801216174861532147042680561833423832471353273848022296943805192537363064926098340372919123336954466061113343363124957969047651793469930336494933963112002627026925098644529264785556349380254231415029706911364293962092922287446696210744030582636368313560846302651167600170237108937022970758873309442272279118670783172267547844904188926252908020286217778623762756949929848357681094542621641153708424112617366633385197243078212402561361234900945824763396941278418949076756970040967501650525389497968443066449852300142851266342731507405927715038651192500499885605128085869498599875895347013623864186991602717510981089538783374093390105258063339683048658974688650956692251984311180842055449805992200797184972884560322809554571380594080475032954360440645928124794803080563027408360968104905558449849442592553070363716203589255497230011712390927481436403713429428984918461300341538634861554551604635906173677037592064593717133016600154773214893566256893833130039787310420612688049707958463340758551789522801778979387671012061482509241708778015921865829252024144112831271922586837869141535930631108939877993030541995453779340107070407774266801409889145407931895251495800505669280980070970970715694665726709023817080638697986343456255478838593539280169937115942914035103525556949560244531904142755128882317382419053054797039935183230797892466685327420998199400725638001108716407940528048146265651678948398822466380633884057163365088334815270284333719844441467322515079127404860776371817065965473181301700815093635090382323668520589914679399891363083371235318350918174701971115782757000816334435616622424091328368641485345544118584211555915077879898260127826365641035491141882416736180933138305516144547839385615049474889936265015932796541453289774778796522084317731313751633773125800724820623442969071712268896667097313301169039629745399493518937549093063380839518548993312248049218924998873353210050645507603761155476728510943314445509177192315042855874957718250936738835507594285962796193377076292844378686128764245785934353551773137047301571122245876018932047258878882264218172378945634201777043511684037691210420540898075282639639696677265001598128448086881285358309772186989411111884955551234703348006092657068757898597436443543658702198737126123854769257850629324092977537198452476213380800699317479840643632935324753507713498702016424159958024253443183787500785004154488010654940350997901715591574990817379288928908094232815817232441100557970753045864767087575267873769422190875262889856232777637743343953088307299654706883429173047112842164529988116881633792479020081142276249621016569084779319626274380939959542203381823655197405852409494619250998468530664055529634954604914710474062065145391816545762821968543858337200558579955285208968530690102475445951413036754634543030705386738098312848289094325222559639831274502008744554771884974706354179604656654160268454787956738636874781559913303911072902477558902236128079640758625190081903233066868934002417700121927183833977801555192535991570177775037327423924831716531963445858286804888946239919595782241860357636086400361084143662224187906037260105511845751696550991530272506201241955146114780954845430118980116197611597676964439523473517480408413575437635294924262402639577137358255532577952819097482405735629401836099142308072214526935481045251878622363481943938069272003470153871627681950371530460526619501075009965172608148917615644530832358373155571308451576899559952943628224885579400060248734122033733465713923727397754321246358463679831014057842403812218221664939044184847887325966013114666513073073389768748509681209767602808188409872667515492624801487426163124617945992945125396290321824300693982152475585865417225260971471768376820316649163808612546407352953649485126469436300886933443097349793214194782313976715747458881214336274732884526211643270376350673545935947833678585232785662244254074658219983474190101586183815864882533501540456263349025190691232767400827926395373821648035111134855768042061581057567743597780333213427656285204062095024245053306486421007443078554356252719692271152252215827176402567169786834353756717399690535215256030354238141622681970275136733724563107991890484770898694257986734203041387607883299876798117339818473275961497794627116445829558218507398895433839519472260037426260274231623703839625782114669543950399839288752940643581147084484091301436335594531999493992306251045828892385695907871023013694331070223926019452758035691042909690122320262844710937648521012722346014782970995730335872300069053067394687697607892637616375976131986364420184412775304078287063036907021559492737957809761171395171155066616001853541582168786968307052014446644278292851686610780376973845271220691705817030147080894930869314549126173428375625592557772734092627996449009397936600044929146698814912738609275621965721029626322998675229960009069752764115477926230117373820742001476136676873785151751808385492678204498422293286962257869581793129402765960351150512518217262148158655283429615556793646479271428639530091624768585947970100804211030849140665616829450143064820633901937489325013471799237532187481034144316119080985135477140978236804003643038210968535240587258413755061554634550270520403853532127261801778561146444517246942782427815929404497496693121151703688127204454345143630002845584484863245876420414263099951946110939442313925736388720717557389094526937657528812818847649849661012452589430793716952255643482840222193631635861028538425415086623703963014375995154314333726767384438890423721781109931745535493805346060273356197220565884265775791504252162359456358619073065989875066346706561410783059119794142264705742819019654169929298630540571524121453724272912326888089420711986103246818899771896772876681996142763041719628314712948343319329667276491702438444304911968262008424142937472949687857477645000584572095006567975755005179806016433493968169704942973822160023723408844078777635860135406729770595070487811293722696305506832690403848811850855454642297491060758311733680168162719700847086975244995943952504612343428224024225332276903033247023532873657260529750052019996269977047858900317208278921976434039408754709199213676481725436409026460601021859380999385779126252010679041345821451948531177621718452885859802455327689785886987682390571045236078361760919668671625773791710625854502017963797067718352221900004198973073949974070191778998851340942115832241206593914264445098732932714172871135804630971060931231676618628192238854099697586240828912344925242849198494819474723889777917323744334962798401257509621888567379944730376631144817958734366429435707434728640513634402714964667198775611533548973876371852554348988142674926163253578406666015246109713131612129330495099916265920811760564428764534057049128861121445048449675972561423856465995545953052414454841224462922021093198853926323230128476484784962557658857709781985592901001873439216216893221828980835569405969477641338384355325078185259394093736310934725704265195778250641949668989383686686152303814980956073462902134568941356083636580106232446522157143594636270630763439060310012054668855351866333766041195157419804997631831905098343783216350097524244703510186828588945354739974026414316523041495513253750920067497273035222283161193189712116429946512251935701640880850189139320637995996186739063068107730292725236555282673282542184855221817046008543491921231649326953892872686045359528418199410540650662633972322527237816808059895412637748451692220467442848288630593859855850814510957601571369327428932216578084743883460322436573480539630335065597927871225561816612512945712524532773985910612438305490822688451390567612030921937644100752692500642919092267415899327100883917459526840178031522188144855136189974277634611046634895196569178610295833513355652206051448859940288686949625120604156648082932081470826245103322901383503504002473121073369828352151832629471847413875706821043647876910135909905512434020827043868961267514098437176076595073683568720702412723902957331676072126965022670645048434563022499397149648275393445100720580122709381033915443082731809932168572496869938277419615985600382569573568822585126511724079865526335179345361598445801745483732796563204869447923421954724545327431232879074608627224841704042479366378232620228324199539356898574296147977924708329171597171457633667490309941131145094883045796068593286574115049387516884887566484425055599369780361737463557379941740803433497233820760236673903200481111589183369806530667597973015151501352837671492053229862391184949907478003880262502976443504469496504326523352862399157804058816695603591588211470121299905062173081121267997619993816342354813398402184026696882148670729803226618911636370196367932255898098081602250466771842621515804246006899213837653129990040467642011429949773693458894564264265346143980771822866984142008447422223581331637948297000244018266947584418441285556209532594475252925978066244308373109727637363515322870322634537236763030757639998892189127743658394905859853890929777917851605248145823125718983294328784342566501151071090260981906264691868448114058491498049774340251252952927851480720303702702159568674395334322256415613638493443769775297059106439421876542911216794273062310351259728932231566196072197235661993393431424002982471142519596008259364571639346577232480396744337302528689021944777520443068988233917346775289541087460550907807296860384947207115818411906673551322211775566187810704693011269560127795200679472046682841953354418677695344273086366239927999350529017877235800486051267422936228500263616159182426807864339546495373387220221839686807161389905579516466087763088822238001161984170460615927588929998819566060279890352674896884909508085658626915850120423974751568140476335519251556049029290643420483656476463627746588325993032960443660257579278138553894105510838711532847120932114665623459286817858407758872161976266165158507756975393509023699010624431115265396313806252764734616409020607174618090714732184926108057612279137942770551996883232347477024456416299026285114052663423225000333510352578008441204277660223879939425344149082427767242967341647762084418849695722315814207775331664640936227879137049472512417076139173471073127893762357435926926354508776481176740243370891662285447277017078463830087027202099598018844918045552251931705272318171332584201630593108750605013778414884689662908012923091317696916743701720868734089730477985283612508211410033942818491527465938164352693172787470845919268479917828226572627590928642480602671724176440455694929875406582959118773324654509149179934359622944230507624813406848982069489837972869078881260371709460651682023010761712291092895678142121066277967139949714931719924325121298124485146838988784320725837202702074219422726003531644611903595654772694293523930719340986345736769145154955001206932755370267636302117117808747403859469033286238084439227162295711305764113799666091266836835262740834277482972108229172006436075213252112782497341182792090080392583632913829773605476339341862872309399089719775339275963494051276448211022655315235133956221307621181727994380528065943397482289010808066976930490952141291318876693887649948539124813129615689321151532791878788643885944688869861817566050087378785424988202171222050317533202910027968153535782257142658242411241967581647342338406346938302832471467548806144024787868820358764483691142716421694366609523637747254897431165836554970128036573902096200760857584242599820691028719473557515169339053561387410950897688751250971249126093861551145043584443231701034656980971026465309930503946356616386896297450763071732403052578533526820599873148047272861076358076092499736911980712675965641875566526511454714714511319679011310908217614179069691731187965623200978333671459525316219105553182402976945729185811496700249133776175262501660919322255345807351075409105764167671218435538292249004196536919300054966007054439899766892784720440195557372403114074514898426937653477898386243370814833494842785226009844397677149654473021394359009157446913468026670707790351554642590644399046359794903805322719235287537362874917298156390643719545461374207039300710564032993351013608565477498871316125774701808741467402883199010827070176975785992131076158852351461979630751897861588758380244082633111524234369695618954580477970056399585530677411504913574645413290331616403824534931220918038965227985496003030848972163466988425802086156919057333142907980594864760509350151566918766059920928442801755098756392255466909823637430072699229623670442460544496498226533814759140331030402957085752224899058844500967617775811902829700719695333523267382949523197878262992876216537057049767487946943341823613841982938473015894694915698906383888713883235301007823347975208012508493061823203323554110224917588149157923856642493045767056881919534114032206537326225345040782045741448026133889869105598176133583359588880061260957212352544949324976775533076572143391910266767731247843390608579024315889414323127144406923311067476206478205335027662120156040044660739000785897900502393281472763655917563811045398206339894471773261303465577101256651166676738114848472236313442658121260363275376949187255478241967231631925721206307778985812066973667346752253900520346238809523670993383629348175953853902198148051633169543772726537790233717687557754800266696415955475373549506226772021077538894731926174055471293886016115634826892320886713822457942380226046897995506269533664493351089998303516111946017300454560506245880906120300600351643695898547852911031116112023629171871619367791971770399367351380846937367931242535510832741467240148761909110522226135204926268980580079128271199120154705452387548680149561086826152761370044781858374180672638583045757408741914088673915382050152240369278155944039365861161786073936621103470893091988113788801071079561320527387853400168138431225204804199733095804963818809359369600222726697113137175678868198400555784519364243320635611333010799189918560385511125605824741514855308918106507226985630177736479707831487729406311754871719977448062675562430027153840652381706629476513264623517211877508424945403240459117351309312992252087183009321491217041617567702220565979185366150958249945261573126667179008482471099103108576433370569359455805201911966154528295458125275359527312500767280044202132427507951063997149414013696719886278218790467512622419698141353372574523711349062988789668876534721752988222697840578688109401667256872890570928833958904383927828028198887038427734363108454880979150692174408213338779316892928677280689483943598820662660063437997749190117877532826305388805476249357801790943056162636530222539502646329980623911023555533429595018331373922490883030021488392616049561990560523848066482428133744876517397512960263120404821984926815716348956330199275087038780547244494341613130674115947206176198366551175844083434735744837165950924301679998784600302202758476663218151638138181098253812741593880045531141153846387697150674537184153214138608179401085686858213138899949831120226280699275191862293716825598621533351238013682684582726714231137914478304054007271869640342429447403841006627960637632233546786509516713212447167637228749643511557569397204603363350886469079129872123177665017536530573453969865948627513274164362400300524952664231304474689556584661883487745246858984507414971387421607269478398244143038608971262799195098876809809959990463166532516817714947701568151914690937328541111273777975444662374004244201199004916628662740855959898836591888540541773866617635361627063450986288276286994216557643671717804217500716600006948954008512949577705582754021538148540754688263354770983398042826555955868447902142235524902113091496683276456078604528847790263516198697233747554229942325856561477023803672032863739682138766498864393554914533136176301481807869578845877126400845389366896546966298618706535906449681493835487747063265226329228323032818751925329733911963860634167180077113977617605900486022946501752890019446486875633764291557280251694458281202978615307185085315891944542174131812159220268018007063711302725314506010396898077148820501327092759357278861953128070889097187230932648883747837665159008191478946287490151834354077760490582128095952260999944079492061495045180254322427787520484202889840892682028249374164418064833182514117791003045234798117261347954832025536750809087104468614082750372583824997412055385260518496611991184628852582540873160209919832643660325160955575010230910276802492758280350934408556667387507606462925773702519566699486211210850581234885598524640660975854436685278122718868698975312895936921173148917722540688093426994792705560024756509228043414999914656750564007098797943479976750947839137210558779615523592752599404077416799477997392538771796755651775216353565752792137439026686812522743162130566631617573193093849479356488384454320790518355737597998947299969952921873718458833956262998382895489235187150665931016865251144049240242397735453597327260617521870667039073073021916732937349524252825515355261068086079438757062379014083760883743122975971618749142731865588241341838006038009417465899627610419424235252660485984603148675564352205447199535420399465994959913451082583849864508116814765710551181253982025828098605590752940965272088944925510185899250589847010334938881447858944388803990984715362724507459902234898867819643193308480621997647894297154520046391003455664574194236834251408485107110805480486014028543528964734339579561389128007481220852278854636342979617975431551390995964283271060514716358903496598003466042705695761042969115219003058263499522724250342604975397817166854370526882095879009643534771491310638288736117410740658808750938706499028675307379063479970478007389144005271661929457371344589182299087200863602189825316086892923513585178871624196328977610886952580636091828257978171113525987614939498246454179927315865402247797893562798003202572593912159390792480629534031278184937767290921243545779361546475301689138079373612070223927530955087152341163015331111536803947654810088489877512114640182681803210028175668265645997393548319972152898236866781487990689080308746268621910233234514759323767949645059541746162678283791152454906376410074503576040129223698621872870361061058039548546762499641429710125728650162092177492479726260728732551551813621981624638283131721424850570184472617865206272229954528492347690483093157276447444277752525115764840054853973539155100117811912832082596184266099404455054931616466769927531564301868249121164417384410190127778454926838643196020728593666585596116884561045640100749048520308755025225848909192912864446617131131714636834751149781099213772230319485030081217405638291720362378011864596299921135705700532479100598457064308124590513190702708416772469924531569546560949961557128657004401405599151804402496754217758247276103021949212178258491874991824830395847553337456520970698830775217001937027558935608969501161531827608229923005355294948535007594689376324829894326095757332185895182214370037929554269205197794497827735681406475107184747445666090633985130346268019521309676016136784389645925704130708417206547179734770953363755906391187991341040626382293153736887752884460202776328296406989462741146511218213017146971303781498946786407102062251603553087402867461735941577373606293345855613033159137718790888401142585112894247602326799781987419035908630253619247723598667391088412416155609251797310964275331531498316252320620800721775630726605931753686218020099882959804352530853015987682146992818082564197548648523857105967033125107679799567565186561562660377710816542366457408362305772316225496563817331645715388422572786739159656914692345903230650913769485175683548582011580137476826219339292116278364442118737197845368501149006960706996701372303088026982205185656092054920889109797237463109952409594804691915011532486600817061228633303310266841716476034729898284721251360432193698121340901465533815235114070614912266940308683502902242462163672266443076745747166948014605032607402094866726764431695306010133741351527787260370054240360662807278544755803471176647346342460619686856033114118827112103083896473912533636492670468467702209443905708287746175193225590244941689882887994859219988494976523322868089656320294207910773233118767868958961192285479004449085141895064267566078638986744854170199500937301473699815590358838805647839846451763690356068144844530279501840357171082494647592408612007785775204043908514887318265758347751682292397377508221077047557867206251849260995205940212313627912650252197366168629967351036418329153631049918041594379524551089661876043139874101081437975812190052640814264960299242462960431609939798099962843038103173099006432961655988795395251256925748557406425266254866493085350682205453759672886065533286039710448312732949432291880458916641762546789603802439924160025286438474136761844959831464853950011257939550299359589865656288541515397148679353468716898122034338761319464558721964232231738928963693165196656077555723713131491104581433879588948489538493834002430163904836199163911351374520681964866102096056560260019952859000107815643126921119010889336049214232516686085413028144131351568127362231448784564123149537851773117552524572369615628869987494739868153517369807033338575859574670275621151631174784569730387140916910779102423216185041891808131233036922285072092441360392122231314920824305924318430113749645929731983912638362800579729147150874978288586094359789977444570902209697930481030440211983983924100227640766099780177572158413681892880369449867549718201787842551790783813121494295872712689736436684575050795123543454147080919799388175636762566559628418474872123666192753561523464597860609226874213364581825467515517692076435587833307969550398792204225561625674880053136932748116466279874913621835317501687830686600859374805553935728885830575824142751102425640540534991336877932744164565739874166526718230120106290663492053867567565773592557107687551122293154421064854646001830365144507503988060792741271897912726025487795046958859126935005136503300063768920448754579769506604038521536339902211498764315461484054147910454548800826082796665732202877113797202402806055466536936417711043527073895235390704248357987635658974835001017371187405198355710636732154739260462361285109141317270167271275561081692711678849659764979484330322427832787547453617864997000717395868892706783996987772068618633706946288917201087713859964872932140424124404447277347176872202472575294375997647891046179052106462121350853858714679537878271235388762722415481867714927645058058126505408370465256106234659853435688895106245707916216352780654450242465821670315228864176652036389985380440450109340918594865913086716738507440666335205497216065987444869167138717062423570309051627996540773511124406855002982345579762826915238468617852379116967270286808127897625248902511652066629051126772786752672063210285580226038063816766854477846688357549109976353874616809093640952497037983054270486274315262520967900488805805477976876915684827789185958107086392811160254288131164856735157210717358923060273897927929986802653622070676676385993505927648280313930603143061403849483930426890553727431132325546528491923299002246262568849408198320527482323448474689961042392926981496429231069427877652008807171787993637520396028478166868084764390030436193754781940080270530790375836914560424035521359904256369985530770822068639319128234861730207213159337849354525358358725508161521025587776856200792796559576680615947142895468142538828335453386452742178133507295948295991649409225760982145682894184727571563346910954298426746067194240739218192629120479011500341247634935769581327690295489073255308246435672127731543194016431985338613170537204532680430181606748666942733315549600341694561390110363033748093002218798761478757146200816621913917688557813691216275268906097056063639725153577957670078171164049205879024346842018899681219601583966404495869688179330770960390906815485360685745106103222669567826875719749391257979473056325812316023116668125845535677549206538954363950510148629020174814563405759406836366591077766475455324556710382124711277117108257721934593758953841921234009567107877703514851379257146650347185765955341557170681473703135903474400419036705782899345291381430707811888770144770708044870528820720593123804074627296561826794522481513563305905354359124205916520716438227250837390711739140964239293897085916120872255274006323738867202832119680774852932110205368069878637137779640254363936762646395068664451876252967743602225056506117049836413628614195611334896493747399098209800185660727518284661501005498674089869077709602800091966253773900215168712356424748547090233707325187431430205133627944380241366920999667723318664326021144542156105000702855098110554910130196631898384627468819444278820935875610247628836248475597706400894375175739506249415913129107779469325712489297432040822936946128966297899407207643378707496045014860504768101745115259472710591815414223630947240158064819319557219656802399679807471379015444731791556165124090141619224148701379407401295209294952231060768040664865056217620190441217822641567052528048002965492448664512415046407057830785934077110422695746366063555186315119715552635962869021663558041746549005034607313687004701656426040996690459785549601149049833454333124541861494408433969413953480612541647399327049630684160281718128826153522759570677888557302918665029066798574595370073278102712729557026411440821136935103891321984524624665506951253214353933139325553444003570148118361152607658594467187715807347893278111745228467308718979370641701574292504132355658827715911586830197959068263986022875105080719496539705597955560084773211986375232869161304003862385941784759022744059323762749564624509747318532313424283880358410235762953593531177731869917334792999776695685740715702444684062290823373658194471723624466134689073120308363961024636733629859166938746301009530604331438206547119808274337159337901892099831747298242376541622671891425651707018945897346472042638045653047758564739454543450379200655212256451010947364826127791448026936722862729686513442028079527331290587909275148744568749748776912813156952303148151117377250993145428850155501517432321611178836395165221073284640217171992853867317519843813949516808357460829337348960082248139893170751141640849560541912118715856833300996378830417056846556486305260670507348219280925482023368042981206983944015831853966444333494144612200431920842561537482324057913342436306359866273888913210278743465205912501319565887202058121494995223506368963523512520653107776605022972033130882748072335636268586565407164571918829752578783513847194945974175593222457373290998050326460170751674851229962872165008526256284162642865182280533909519547432833742550788876947763737162679326966613715065341771044884033189028475073110983503122355036639270503657415157688589606440809931211305636561019302399320712525330681043233862210931591921455042214842756892254019272488746205051368173824237239939465129650466793911756328392982589102667433496110537914557128719516322519381039309475106864069584117246175076961152538134977858584510969126124006071958294370381952437477053346625753799012206113929898782927837681193651015896910547200686803455424546723868499639973219986906467289277166064090286022881800675407485549741181860492874570387572016172732689427191926863602217144690957061554429154082607262471558983920209716853481263638462418697703802716116032716321987748454282291864029997788590831848015905573811557080722448658704574127670983802615479017194371897038179978939826873492750587287953578175160670849804629664184762373465261158102530385239649618961139053008439904471387350592544978476651909587035587037815597692111691803192467231404660117201754611669619052699702727816646553209610328765858209406431246426459655481247779172090745957113294634698284639020258926312110954934088816118059363841284893913879691987553434022950596217613694672191063597636882510409474333168984859205628300517485576897634900560384193427401619016576183715922881400899656571952562780195014237187920774435377610730381097605106683977997291335569478397508338869226593378519046021069469149953412678452239584846474521650404561242826165609879307533818792238959701176032135397327130170605387649519907494989717744411546397282532247852202103228588573344500925377435064150945839614692869961104532336032381695859343732373892553284277409131715980133663757885367364647295759794935374213130308062882647582540917642226999292515503132653387871778098161923923996099789922953593048841921823637684882116318661837551103153771336823173343734343331469584378870722309375414602804601699671104326193525116914037534149514059141098632909757158697317212263700931577751977869743551412939609058125542705105490108922992035869662199283477937152334924195854656807355461619466370926295952201593618306406257949641625807523686395572203023486305102998999029910965421036490009417245656639277922176239268153907391031361289293036230346520929636972581735788131502669559805016473900518145316753999937969498541158058961788347331605156314693756092020106009356930602097230732920177001893766233976787859197302997055983163754777703465095933440831859366667975898413560872855398777424066985217701640612709954006792547632959828556513629604540201988382586084881884327616672612248599747201530141021619939949212300244543794815705732569992502526675471940252944635479537954404226352896443942844576103240431938095272091491585129237469427438926046168316747386832984542954283069244126213059814436170085303331516987445441132997812293739151884542342837802798951813483545559622995943744045755042233318666622032991070307344577865184065848588697567630473590903426530100033896911194382241028412985428913012199800585361615392459689793598597198604200387631682126918219450584923346974090498288244974018693303567726043678976651817795699021678765068492391813552009492718308113355423772834826615949201468852456399125134664463168940878753111238477835925715019040271783274114629403326327986804521924363569066240653104729783414466761811725818823824366419276427908488591591480097145548961652057007122913462305967481235227549679674054457051385801611589333950667881743688995536064477030809219569312196834943348979933669226984592588417166204034992642341786566300847880806243496005465133982681332164676818894424168515374703296304445743121494529379631850644961751265660562973306175114452179479986336721754118878563257934418180392709285985879220988926654309566446913022884017298679419371890624332775408130687571626365623866536374940569430936316270931186736343596080902087039871262843385907427357882343434598783393718829136571740429567524812529239438264911356145526690548204696808713711520355682031747614012624593427579972066640506457373253183372699887830446394419914314276290707379295499124524250319471428445990662813530657531061061457069944165176064080270966272311763866506724549081590100791891774658397576260315733085434255375875163734845408777228704476439602456002774334813411287698056099392128488212103360825369969140768662274046636783552236480535244487025431114414820715591190268782188199458843674750342631038029498091156599569655701573898865073936195249503364982949099342245076744886618164564394956024988723087972247827599519459075163369678823028049237291158776015692056826873383387983677775015884092321686631856829233962512355635949200476211062065852154617352083270647313970593298626429894248493127612167826291476214322375417873484366886281138716233781683509607947218464210388413267922016909927345511420990116747414847418021632945701072163818587735865701339467677374963258366570067140912577941730318740693726561842651849864178708708368271131122824333628665042360615229653686309517882757459421249230501086886736723081211366482800792570728156804452250624940882385668473217007795129760271695682343193963915672947572196410199916475686613735669414489679457680429437473217419023945020630305765957709584329875378077975223129536685768515895788974750055924431186181370771150225553536249948198670305163797306632158741381397728229939862541953040834327534457339299030655758575404525274346463747485527857784494487453831242614336165023334818027998445577150648548051359031960827302472834905981457416573112607484771516305549110427817158036014298311914644294432918536632931520926116588848173943482875603954509868135820588370685275396383141934090046378939073689121979580638948913611521540562400253675999381780162177484018434190254052692613935467127582024195808249988660069405375607799767199113813709477527816419711381107753301451875197129116997750335294898431944568547414126197150518731205997472943967639138707689515152993931620125094915700365507528027800042944276881403673552824964855537478971220763186061904538822219110143552288514481920491716092394423564271907714938105570825750681650535695013976342588734977784631988312225646596050352240244379774234585352656864947299283860062252891713266306005054421127359499565173259025476872145954011243458041940457782487222541281451850043873963110908723791345363120721629878121889892331318491777902387047442159761268820611814072185248014017279364266664992604256917841184392590164322473394058416031071528814316748060592779278916908484546352892950232537030327811975939969225260664497782113553784322259303306957820417061812043315394041437793509671015772704640057314037105420099698879570459968090538260713598644791380140696750688758398496533382562752955061707246698457406856250093896938264213356565059561628868035706238952397716443814226108509292149639582697162076196416572586348195960318655647274149650687434762402565162568426004133973777227738291188002966145978194086588221853757649713929804668367015685757505478055023227921208406146285153736689087416234386205083306356198863011756005720438998845367156680480029652171728412089073920903600392965863808551444840624134848286171539247610300683510977170452358920290991136455278708717319363180410321334534750750244606666384674797502258121202187233810031273164150224562332903852978094675437770751842410420161088681910327748160062511359185303633086249537595901180309938652724967501166529386875789171969425291051868043381994690048067988136117185859648416653684757584155431423300214429986658368617772623295684895520331401245339745771170135292541806215823946809724558755032270775428610113874760398160558942196825341414143742437318954115835719367433640916502971764210429754879013347499678013735485944263765893035771761485097257819305188297786609009832678782362748737494466744167614490242134489043338217970230438169010584568174932331505432498879275546907401704516871907825555512849277211656563469103419269171024253502851807778061795184251104190769625139201506003432467023959427805907930967557658032682272490533457513613218617899463270586073183412894840372874129648220845887517358729007677280871495483393448073221557410537918970795407021487642987120108131922595997934404329440950647221508491672269825900942506428123173015865484442406362271163219050088002378514878785047377006495305396338334852052817607151179182762111338298420464095385038163054312012446157940692511583715807566598253178830514781522836013375268821408949319596087763176735280451192561434608977997204553890525422160514609416879189783871743327714026223802876506757440188616838266878130120560181594009177698181412794204599572169423467950865582436819758560184570140316690523752259322765972488577634664762517410300465848865771860854760589583187035654821244555055073764418698354034008606261295058293712564544775728553083810906304537015792146935104787439863473668195712587755797753305078041009082928872710399154629445690338849084258785237251222663931077473565563129964599339468508692489858422890953132564629911619355225572037753828250369598178078035196461404617178807796447976047641765925481408783571555917969966952948474493026072091076664823737712368625961493426094282894595075669807802214918503515922072102483818216974269475497456707273948683077176088152433829064535492821461626171760775806837656837236547468608248566512258408181428107899082731981432630225145223072744581298319851970362619582857851355276756568332159534862518314186371765810060024314242166503374719669836767806902347326279878299768129347867634952152673930159546150830272257098398387706910114498675545249989534439003521157042269470815249938954696287258854738403735692388440056533470955383500102070300297163135827096697116934520565160057341565346993240220063366900222235276030889671749401590900240762092961626572190579767214468681166284863392188854934044130870831043477323153803995444721275081509237013848258845927746211379666055039784970868890105279328167932279326705491233686373979682681496991912860059368003344730531163318233175959532429830243735041876557312998455929216194280108761067041073451494663996069065347241078151072432135101546394589436862288271901617360731938873657125337320506453029881542802805826504915541316730478108046859374006796033915484738354877431040410974529407125361534462564484871360953534504159708225358637470662043406607334475735008853267494704962446934253515332986897430713173749608459276698208545326147213339268296071240011657423542129477562448002802832552097992946577575943498385539701328193903097196014384540199577751211754336099825140299440092983267602108965681715923288450497812711834993194313111014868763326461401797724198143535545109605509069658802568831760854584546928201294896577643174391436411174908086329107359893396412992864334445743588562935726789653612495811728497140722304568128939559805533104937722874335421484214928659505807555079198364614040322763250755888585146770123430864809388690297588442476709211192699884106371846348119631367526176152030096777570284807130692102679175203444342442057413465345994050740641852417191668730444029972901135651302471049888906665531196806486129181312152743292955711219546080911613598908318774758349624570178626012277949297413036106143100326801851774453110822112438551362465490383761070103589473114408588754459319308268442073082684506163942737678771867144546914891976849580391122062371329211454350378955025140620596615663436621629310378442974146103279519028771693069530307597380143030547717799172329467789806348614766985691929174589656139989536638636900111956978222758727907418639709138982580853661872990879543835311493334202557309926392164340734565489537009866349093003033438730587740545309467249004310604522459405056748843120259111105741205688387367606017514336473295587418589930372356265434060467119027136877440147997577342198793822989900545101683307904726390570780524486483026735761684635898267249090614590738725085139550336639559751096620661438860223252727521802344881576600747861182929531971586928615074323749790990690812338688101449387206530550170653872383056487398588409749129133664070970175576161008746750789361542041355727481380029189417706978842857912958071141646975823816359638933613526746439452277207229810584836726986238172671017646295836149455319757049003747328103192394754253641512375793537048608853803211220154868672226759263764184160537115890523788782274634136948199388181452005304997734043778357434869025426348771771162039049465803383533323597691138207112480354774030768186777943143880839729610393957962783286639038725881514622409271595900299139859886375739110609589512006826730056910787661060457275001158468906859893066210823976032758001485315365992104426257148921700992799820895145186761951950485751735566986004986051394681939193414401103157943946418425973211003462048760974756252450250646702349633373951017721669642491981464230136595152534274090173109025856593638505195789350086736608869169584441956656467235529843386887535435139040588970793970808934641436324966494989314960662728050353986595080076415903652573543045538348155006998152947512707504333143287926754830734256098614518764235069642668740793008911888551711483147353939517525239807000742638859929641080622187515780284373331994219559504074042544340300461300488969507293289848497712741668907811331343918959264348489729078796788211645261385913722718883812208393642242124174030710378131228171859879792087560703495537100900225969213733636128766062498494040613949020576028305497584319767217429843665280001108481380785301590242575468729568498430203606014498124883630230241796014953428139593072802660253098983291906597900734167486303318056796567411534690618748044748766088402635095484742235151981359407192913091380913616712066879068188559330165989419522554786417827712701889554131823920261134633837526541229244140576799461480580222744056157692493392808452204791160443240165577903051292655179386560177310197012889789026125341237917701699461944778741991867114843407300642650727664736622442700701773428990501508936428224966697092069161743032909933062135900649024776292806116360068134628997724566965601483588547704814062331394994114973017777069843305202622171884575405348906554844364801408661704613392941307885486730103297572864609827498296558476284146964583197643755781417930231212501467690211518223958503931061869627624471797661262355230686312883288216110002439188323766231218005694881764611888009133261343146547258725928107178548703305845690890267803861081565981006996733344598675398213742033181256160158717078044410319038536536695791356497462585077418442260479572406775793419487128333233705622990758805301628102868470694020780077685064396704667022930447214682051485204646318014561772343747926540736261319347556759236122942682963742943982221638975368360246066789402008129927630482026331392095954854996144695769373294661053126031984863643565920644371306280174611057969769129207509411742418094178590132424976134818973479209598116524150074514537336022736610004369499737360971468362195886409447457079488000251372656869889120824080140233464128553116780905177821319466774068401782794821093602407114979751989099691475742229358367427538029450150863182666689038722176649605131113363550413884709086873595474197946171656034194210600389680848398049569943561557825884228788654042341339322125980514697710699620893050372586575037123227984458685923166350949686885651204168368263709295645158364554128771456575990763169086063746667492227970135340659931207651832830956081016594985349024172119610086495885539182540175221038690213793002570357400112051529902584546651027351712314929130195220267098229577281611765143315071980573114981753470635257357405805751289934004131199774566686358109296021758612688908120808474162047437755008514054526428964964127534223723020966642409932109584702438541457244496716659551777380405182188731237262380747485860206809742454690791658601656700030153030231912836011679461233027973266830965484982779196138491796008579508453379985833916007137982358581183596524212226897749592039005711261801992474382874328110884858382941297676544544161907054976959444427691459012418711956469909179861897916014119533823388194176775831147354253678809465130589891390872408864591375982265782348179506133478845983351090290356854273126628726125819640754405398326502809363061386088599239685640930168789173757273918991861173847491878606399062413104214409873299881377778904445983316698811504604630982258060071228582881046421314083161862822117709547782950873868051129337828068871264276541009028224813119893554573257930147291147326652304524491029488192019514424548038931234695356031857064563189369417278783282619020014178532767260281039747923661952357661842717904067771809990510402571574763992604119220076094488957646996387386436702502746801030360173684214805898116363763615153789962344589591926731752884357926861815360300361278322911287816680819441103178591878268263625440844012039713129315170489507704141451832739755430800642345637532191642328404233741332516510268191874272085310207934130976556869833404989510248655979655752166957073445311719533552525784340782533890371820034726623390510513196014018833696026433204882508763848180302052724230408893307629933628820060661934064899866805724412884025909172185755195354205416383612256519078190969322097570088668066665652115302584235252702972707424331122698064560044868054004545081736182125051811166283583051874590982614578233740300206165313861648352699661785001663215042155767712410395942823205957437892641505840877070189059299376489473548597323123119139048938191845387354650424014801457337329523384605376240278453555513901637167108632353476839298516492314594013488900262722116024313367372258140219665440189809117206770614242149048176155631023327668433688276773987684332294022484837750358609458607310486680547861456527498989273560633421803246634836926513820821796959271356191038895175727341356212971278539437720496469061720569535685097945267831664936373108549644825615406849463583417607946454299633038829689644230349024887127539001171643041005883627779123445582421085514159818424142901468872818627856832561976685216773121278964641137625136314718753614800913881104955144385167263824187822583015208097065983551440965550493701394585927029772742683129565770596870932558543985724996671146508234174807453641653559894138425373818491224998569404228414165538044339136987840592057557409744534388176841224697110862745254312330240797882787602075010457545187865004952847467711153691916271499998707405576232476184466282683139701638472126700765365536340206893232695065724753690812018862797361419637431690298450155864197584578345929518230096457651704217393618262425870099122860111564313860138615504620204362937304848393387180693691860333618903457799167410304412255597366553730057292425452293092403600818821372700564014098738431007386583808681615225229702932431763110695523440584461070269544172700343282167285580444297686207091325772426698809596176712626497882175779275173039634533341296544651351527306534603548197440370623511415316297208027986401726688696055709228989892189535966275761537987594254538237902154348878187203692878202951101673680471424056856698158947162591317114972696688875599456898711060191091684752879692990630625126796310574728645172126091570316312857956326542260316545668431105004801061744338718105684593040246336762870072001522967589067626462306341022455070036097987620826971143647564761938291602801756982906575087729021637859424863224788230183802373621068752023454204768127664959518398533457443603660926044637972004401520889554503290977573831357407854983398918402087774968518984868128088592193498833483050676659601679545063138432181358902528212573726426700917668677722665021983947824792518096266686629985338505849231581918452919351984987857337395230610856685322669938682484028532009517885439819754126587002125772400715327567805780143115268037225498690572640021794422556366531070464712413967672985172366606276024355583790547017573673562091357678389566501850369282088793072891417033217618262193420849577145136010524130735528023859576676470893969122346553799189082539354988708429845973406424383973879951302344929960858330791010352993918715274711828217894326485940609714703382335198212534823893179049796745465560936971109142514222660366922445928228513086800130166140853731754568702107622361671054383801834383890438490161968977921057759011899595489104102697472858599518173646434842940681043283220947506571150328854093806122777822031899103474157014318628031510792793903936496234876864585675795858152472220076783992938136214006714399584744817664111985743357678749520363256481227480234923934103321291101128444234973290288530862451404059108300915888662680931599798976872050405838723123173255139491314521441490199980452760439270230791564734692076854824468173912318993329704753412588943995994192094807708529713104490303795439139264846058179207855961872650016748804948729534208453917921604029935581401075362741568214394788725386690485095793119158335408693684692777535075110079319510700709433514608206352080454706064992789969957605716194719732761405990338083131618353039792323538791601206183915462350270757362853781835810494151868579939694614242195708213989307252148774653430057839543112644998637211876603020156873105213887630347767553023547090818836863552127466429320831793098323898395758213167166350389033719748182944860268604479326421532476766887733947408317639884696728812168223479099053339057069821305940162252016464807884996132617534637787028020199916010706594937975397994457667840808628802025894473013243571563606993794853361125323575019593914113788943472049655569971755154746226116117657117339376899933508188421765938253271529030075078174498277623667828127787238625455925592727515947145432484937437922184509834119461806154598644504000485468009206179630785185623401776053472629087455027799076486415790777127397889177951784189934314381558426753132662405847229238350242904059928401982681080138545044834513439413874008600427786346475190299575712227940515260919392696573328537821262472202497508074441862181646204976571816714639826931191772988525424200621246967515244190545079141663101876867774118805059027617835263558939142441552273525617186152884949085164496590265491783944229280857965965666235066949714614585990367543041399361627385908082640390861769825627287797352908833109027590701086385357513305799973936462425837435592796493113924671771073310650802684781013189566388060879462249273911423975574551684116604040506852633239783812927662606681579280029904221446503309907104854624366540705757429312153887205876801926542626471710666257993722448663989617707537503255573530072932840443500316929168699607780098586099779768121569028770142039997886431970273596611902795547173732761966431408555685283427076968992867048471112084708152580610246559151153717326429751691105951715249386688042391450100973016674778891131290724305665015536431387494257964036078751777508818910402827096593922408251137379011314868445665581122123481262281941261200598456475371761363440675858556925896637243099818179169998266577071612864582389337585093280556685126962723259295410058007211985034789625109976783578114497076217680843997619480565036929048077066974826748053040230004745320139606970980148618545164121182741031925066376018197218016751241791235280783368226837848549116396351985646247274572644852828552057082651296413910857298830424862324347450264348204019925692732348548145775739333951798544683541489732492748714902695934223537921413026944208391281623142281478216326808260649871948384744046439854408700823415992198942735236120291503834753734413558795011894863430336492895049759606458181157492141778870930089712494922997292462453244693061972596122588349488348759634381473111572739677369977859624834331289045834348323151059283075273948296701489703779721685348072272742279692219862732016863810186171587171431719396223592056245007671649537449685994803629454520840081432695186086819153481832871292316599897127775106065662645065749206902510603321719190931802400151178397697617045535989255872023159650571994611480996783332449355400048927621951467471748263872417564932613155024857477794015924757532447997859321801657905791880051144277080355597359110581486567955571531684110053758103304879808008746898870279698569456285213053560893223804960255831092917655034913718505160405075357213277221581960167985386710497974604177386596616168689297471592776003359010251624570886785786398518940189143807399138402330489732562248265319421056984276422457235175851610825154359655317756478559331688685893211862310892706970930865213022212035713209026180213938483660677815330788333995521118998794146602038109847204536487376908440959217926208691251594792435236652639514740322898310491688752970741001390322757158884681540804470970261015848882242222559818854118296950206117747120600284952189246152229342994841097127398126927671125939938084376331387142558256913245955723272157036696971496476830554034261974165052096007941500122573084046785767106841257101601228764503772149916154703541004923431599480020124503077211705547182223288202615968794302826212143526834021433290953248501050585956629928238531997065042681671014910699904797544113439651941685561761502759169293016614063543483198179788107222621325987664562408355076456451729910480786132549750522916299902069508922933828351084469918351027422733893576168316726039685744926034219974524199228712721661527173398989479091691963175849515986364241984144235287237073920397984515613272116783413796140130463549804394861710180890304928461122759993518064705417678158824518712666719797734752978182190406953588389453693983080958435978942716724521745276874758736732596307132470591617529090482618296186380560326397947115716357144347309964499789988766390195000795278541658564019574291755159371841159753609716981349606581740736707128133282993975087508662031362160452182606806949371677947737445695878449473029708141926170624944923310122074691029978847129849897273683862919419779470267910962368228792766205669698425081592536276459650680475686994006038023640406489838854306681257649517973000431511841463576905391160850319362669393358942203645701551093012048956676823937159776644722128310147176440067224917790523259050386263225966793747420554154786497110428207640263702515690185443178418460712300217279085886280510079792456236729240656092204885119972960878528027615737099558488169495196387881645741368326100028970027333548707766382166077514490021498253655863809969859562876786383561201630067405314051195950600920326747815467546644886305701398935848998684943101171774299964250249014376358373941288647145462047092669009892334702290566539493848924638928672196192565404130937739504686447162167033284765309144911407368114978923471157072282090725781186769559170910110504217636852113049678005543343649379313414546327802183568275015056144505400772631131884480462427114907158396660677419350069990220231945750385555041492313204594421279289364621194798881560277600711788648478326890480925650074602501549844912631121743504927610659473485825415786831433775651493865680065146972035446667298509527623586940173704826816676910875077581552260815477216004118850542151625814551244482682094134612602305202699620874077376337507109358570098608028683586622730255360645664948316124047844726675167585630350999565693359808162678797026054933012309465967348168849674736852909596716055564902983614110745074432620111345710104738318197511848290811657963745997399962030620903471495936002157890686577464567992706723033234819095531391001566166358717921777207350398502447875542995504918880970078885904652761624012565795248884310696098447516744863573146263182791877043027073660036629150970772282445850420230714241579319791303543709680482960502093589421742952063188309464507135310178204128077976254588223504239892601319607518636598260304346739844951329728949503154280362163963358242950788958315910611903428857035582531379728963818115625074008058519990013874329859513034631345195224711868972294593438148187346357619773306908499788111474048264997818040977362593784070126853609308033782418487617739794908202086423379098649622143643700076839012050569349027347499167384189785818005832571819188720305490311338371989727182683319509927257663209929207029175428187882807620421120085524723394092818004770616939660633908575925021833428868791632261630314888892898746478633757034406923298198996379331445559469778818997760178777820376890685614064627138619106088920318261422953583684916928438081255026539640229675784521094069948306912144303073682661402293052810898871923009018635450264351101886965162930117620175701623043736214158051042997524276782879604502592109374813554162940252252121063604520468897103054219092700579944815957938328998723940104110236780426364839242160049155131647688056009879346794426118024626918100829801598718800562325137363420969637052388541749851724218539529849680148798121543943183523726972909392823151352543065960885571358133148471493952134055731481131995254461005252581618589276349490340628222303519377471847043236191896074287692066729992383035407583201405167392685646935123390648853394689332049519664914435007758383507457447222390030317791579921773144008436599849637311106945826006671474008138044856367564974032284310015364210783554631715771663760195757575680120207834553648572181237109553467367879781210104906109729041344111708514845744141808648554080279747604567543330863769150686485972833988059845900857040782126174333684310964814676722838934831998066903915082261574786038220699919910958314515137393456196929307471879235886691081626942650564879135229772098533663384334391988554802047796086913250126044913530482011184502155774108260768747230894710211180550167982082402318987097840280066690672745776138426666236102512282958375057218819649645533123338511043470781454796703157091251095335097850160810011529950531048358674925216985661359837921295110648515711133300771759388775291610026134857632695842303052913004798534405244276297582714088763902972523511406858224271624595685318453543863339507441604517548965691451280580151607350924919908957390339905291165442590603822002522725193240277298780757793336967341142731382781387975922777744615852240297114256265410579669069112005218376511715943419577300008118034698038850054313079646575478726765642123480243897188343442921876910033002396835193472090782809875733868786267880956676055513072056578073093612223143983977903629342115551350264317975911390642300640010516828351462683351066838906597209466973497413709508575042411008396311477862314131570095481409528730330162762667250815805134297928177959093349627478349594270932132082478933393990645090974899678182662082945310501766864398710960418133851947780001121185733873052665079333153841545416992144741417820282097051129040659434444288093195336730770210851277619165228332475154970687145341784403276208090288530883426859905111459350991294041220214858670769271321467130833552507962136668169220804275062509166191741273276275516868749406212694925714934972080700282106844271958148220626330378340186148587885546703657732084853288958075650748512866956375430157093912409215324171872329244301868332553919636567019668071155143085564023121693914141960269862783584608829236459503804540155421112517749548008770232339904554804144790201807101366456505462700289689773050886960779600289307199450401978555243088305530370445974777315769220876131215138988279857721794611022037394058564927912411407547859705464217069462181561755832856306163731979053565162875828141955223706794572606444575665932824187575959931170682149221608147763693880333451727963865889758036150968878846564481023393464089699058786760269850793103025557891904715994976465881491576006011373127118279249263376760876353604749850787630258596267770905314606590866862557301201842415073953337726610120170838461845403863752251694523096562096164496834896321478805371125652758068828069593743269802727955842666077559187551060384094433835106578845993328150333543905902274505133897879517306727043649007224957533877395346075666938790378688090983424565538842971810945190378716236908023103559602778581433287177144717461055766268970628434130755561570896506901319653788411728221993357469135450391766363019592952385960803816262235825296479046760140301880164446915806051083554072868048154396564220593651287106889335471256663245056213795832050600761736039044585577577316556152155735935498426499431929155013714303274480379042890394013718096299291094200095878051915205069731990815289947395064965427211601521790106915968995228928779189059442318641742959468407482326766524603716818267536788342326851782362222060954985410903878166845196061137731071100367912408496272028622978120933532300194873971422923426878224754576615200181232994147836464931380437739249548870525577837250461361969649541611754863153868184515996851290815983243400147534181937201173184407808953234818633360541797630503764676951487242751229577938039167140625913312457170386409892353490493653232745113248681886542658248925136884539278514078362515103852099077204055066154236335745116447478764328524182156006922777217312574284158433378217797735312790889219843809990280058980708277024257869448391105533508359261664964379530197730138769606350115078114512900271958466270498704660560378641815388304144335456887199662208500824692639793971346831546904976056362715045594912645760753750447124652227254817490076850731570788859307352768964009062949314403023767392770875885469665390447261439000486366382269843440724867389441414171528004567765776007780849787097427693201682981782806002421470901812658989620074139982139675349182868428015049545981603752592818203991122262950364357832897426657923909940557014807760561959344249816927522886771557735055834287923941215637921479860199032016665339339373526121837956100688738512676964923273056988160045709667656669366882708169121594650531052209775269344442109683125792230994959873092416820155488432863560538322987201163942360181891243483167577941257284080378118040440465668431621985952089018584393303721101819115411727592188610836059353069541449999661850777777019846860365210630002226006151953580882300238961568828929735951462655951940284713945247958494455081957662573251746377169803741537921737808297353113508814186040105960763442170283371417883259049976737657359378542456176087357344748053195264996391045327213811446371878367473361434418341084327032628037741396276740240577458514266564006529172994938007349845363264532529230434889601345548259521694333845484972914753840348041904280728395251447322547358619656356277398509980781723596726117313063030962050407647034464868878015669312478209920252508444408711859478896295997572592687959686520250459710762356896529245921349566692139448558327113033842380370252250666135399422903553988232421178998792043213042725550603927272851147438672770499702176501434453965702301399807402620261254687503744230817340776798955708512263774798824444291323822492814593548192223174290366798155764453484200655070459116513177390784122997221720913334092716213392467140189620775595387257094702461719019105761820556412048207115723717236816237656972751014817530249779364447759692418823354912339293188974146116022666426881036132832073262904615111478758458261440424952265589827077323095695668105724039591533757379445430783048095209610771488438592475674173665349223613072281664044048070426462414871229942084464797276835956569257374007436736240717605189073589193097894474858112594084974447712108524692865231196627151462153287075036912610402350659419569990046256735867933123753362547849677108978490120037661413351031302164439849094138050510919142568546228481337262140744429241852796154194405011858294901107989915013815796078721078318332366008096309627399882407057678208450377545733788684355897400544036428832205430185339137097280234583633182045416408809712814761349408712342191242103871609562422700873878800157192147820414731372747571322049815721900185489615610689803400802735156730082503659344099054444140336208605311746811706435635265926892290373266063855450050980476346123148405394474312200303935558318353247944889085890320738807702754468278443063247538018411713042290818745072760268516354410565316022346347470385051132087662297213551204950728629974561493265711368992093265816374151402847029057235428578808000603726761112279973098652103977545659259086617696620611094977925352483944783381414602661886967199976873045956185503921893410714437810667012603097076007755130256482129796386955736181570271092237661467654538219368894599779616098420324935824114408092826912289880018224593697057938935823868255441455298698140594892963833275695783130132647995145569476161612003554893326644357840881396291644889677448238637331771494564471097665292771002005358093649579725649024590788160433552421466920426141230969808873871888425276727572817110227721279683079848553873120775670206665594471217570180453015513420925464182962777299327246282914172903401305276717891160572443069056424932311292815281048516927755022227000099099807411119659451858549659120879596701592414960243388756079474739439945858347709019493149201310693434258616259111722811719653280450901838684295635711381294216429004995424012999788082772613200747956642247060200859180705340702083047967091308213046063866211574026423223772285815242729775754387516682990617672634185319574270325881950520317890491821070243698596769306367662780859714951296749178726782243610703767177274575958455521839259917906894492083466674453910210084544382264030642141422811020629703603581887593303231268025497443235310344988883754165833020822574026173388705686126106691687759917741930203370060615608804139671696931650638518241216233312951690166378261081821515007399365173363633261076773403866672880105487272567208465942776669754933975498420963340577101661530123061220369108091583317313826111943831028609944204783243175049498863795784367643847574582684469924818061688521029293264626472463101259015980444753439201317938466493353796403559472579263491007387686452733896933316140348399117663145430696517892855340143288147113005301410756383337121173386075243116549078965382548437422211769336641463492416808360632568804730411956076495840617386599093226804012487691545772391472101897620961764208378658987099455889822238451793237575828193102656923945525023283595681441291869036087572679335962941340095501041698803668020808631536425136100949723683180201622849030736114563179187367940016484440235668385899803259460636000316031628705720082452045520150771037947493407333029010631260332497087802853734770107869883367369996565866430531101988872900554957964150863283826472675498876855509128933407558362164306863091350688402419313970177917076446085218836489469475530928517813435001718320095807869114164362186637244500185808913951795119835176759760143365437220401178758069495836107585361278956151249124250470277138609681632585409268465161809404670646431910783692770168386028969925771800030627015845089890551911923657308948067777671759730586019422232311504953075474534383688159998905317102752795802027912621982038621039798359758498884266630225758385889529663170776467827283824985644886581772420157678467293445696794354198181975475526603766236828659388070823772285545193059258147668649476195736562597226927967442894781040795071706171980006764349033064896165392507866238344428107179727136045827101726833941955546986022545109595289706636009928753230245691639851087391094590387048780372508564477577163880646789236668884008993040893736960703241108102836633683433075575111542029732837102600232775264224654815856165662708035550219272640914503012810968515386554775771427466107869309166302166537365130501161790063737697431096176810388901967376396060877970376704122876864474263797756879806883996084665799131218142508246776908375252759491172635810183431265768822496019983948863542079607599460072426909029857019919034384638042805986278716407075474649907681281230857778984308792416423334521944089524786152021906826018865817700515372141694106764767720520714271818480986301199413926720945726770572948873435787075055657825899292567893698801342107039331852479535683249869043313952554497568451114199199519298810290138344984817114136974110769323322846143144738522236161494588073526931504841445112808323257871385610471074935751536589236555003772489852795557406123646642117759510931495044474812063500090409040540285199841777210629808799951444141502918047274094064500795775375581963829650139278374371271385718219425199016051955342307196572916016617122549683063671777758621386944075896076032957684980400528361989340576103469361889125566182044610439619454601386443321000677763077372565278587397918929297680495077103189952469985523334753786432688908161507389248274368706620125974490599644239892128587288473581030006657490864899259209300273431388812104632018655475201545640160107442858136670302774543064148180129381357668503027818098328197324190751763708410771892646166315060299102479585330142199649091514832181206995663413136796359281826057235257251297174329157011494372430301433576926497620642041600357985424359464725598445741129622101209529151207333253976883265183923732541484452933891713513122157921189030995031429656597028008861132709576531960269299250785954812442809315026562490725009801892419977768079993931627168837283346869635980914936948389589841069673939774028333915755518226320451731488596965936460293905254377686954295708978784418949633806072367362913346565662990671277826240042289310152347350408493195203954810393287514395076811587072173655104613186272258374497449167419689876042757502651012940266683329387812845383748209476879026845708831614579431847112439541737901953997716632327288023256106114994454775964214810127843723018433990032819383489920837286441500584324202605618962504466033478370039591379992756797679652788817003338134765280832238030337894503347717907545250903434162223494354123427333087175024334495685487922730736047295484458311654161885881441879466706557531752832859352487384895022275632072922006089014832717705551933117764972624988286221950815268544690753564092739368706544912399417164647827150645298324443942905834712897240962862676289059887319485055745841259685621253680107329578344661449181695755974701754706457936432591663726581883929877437365902566842436638630693662573800259517324413760847985715928170863600266845609015437506512948159043759362757100635020902783920590216700921132757820777087132814867992963235765770063844242344094345763486439475620928805177820356821407153300597918774979268488517889369383614545406410066781659252792597881704535544391365070386294005249222908134749711034817934314546855526346773334802253924643921526498563029602106898590762501446747777563023472585279851977480394928912366980511995180473606648386090770843248419837873918270604108647303276915650043824699070969908995805159310536752380351304355820494793099908819222194325631629658857043876471964084740078017409361389140288525831873723529025503868537724145496108519660273334589632954022583319313787511737855586290119449497793941164968606391134374665266300176782185184581821470809041997622301763041783619261535392089479356987520627598012704600367129885014660989990067293783725739884924653542412701291077619348806605427517597526455124284697776205489375150584903740226131862766023613706202913054749344403127455052714814125304525394426118623169228293554486955927309524025446024261613116803520007206971215731940882700781933972108976007181018537939855171810407852817873003201197865643617940213996172747175056382500042884964793752377235463195991467852263100459366275651974040698903790089055162320880411881927345042605727463155708310295555458113351899055482062941216737193913210317164128474751782332203579343391283837989602442097322507109185393764479877654839984661165339973264445118306661354836524968556241583347556204269335354098366492196339580066898004466500174136382752084442282848640817005612179753472988541772526915080448421941542285776227156852386449786124077297530033363279853867543196725322262395889505922452954460897810080135846735047683438502386638040308637314728104956651503567718522632894417375537638767601890402824471700123361581775850829892062207200771424652132004626344779163714062389633783074180720899703501986158698350080184468621015576094639584267057253973703448008518701112733897550039664294882344424565475989988650735054715987896052595874886522270370902565943182392438244900763402021369545811496273981991391056716498713308017304129827537177904763317793687646090948627644322113207178226847570368010296780739970708857412808686911641912970269853828725851445384262818961941073647090420864784804376453242565725237092524262780343734798712322843360513093974346141511801643933215156647880077735365215332447515669927686991452793585348366456416992108044699297462007234594561259593439250056728782455126154307882025585192146085343673920237990055145647709116357796955357229638659306788834013005710152132717061524048342908819478231739463912739814652787652430361254900472542203353073908397154134230615753591968226579187510305738661123472233540751330487401493180639866285435303413314999273986679142323912194984230824670633235890892153818606789319353020603876679688904598794057740259187211210726021561121251659320261532724044514883391216704550100804222082979714686654827681132904072586931326477916592078503986774917041766285276827875119949755713642417397932280122461684246727536220438309753310769255153490008684519765751345886677100562586843434438137201494279467531078761495099631683294377793604640488945284608191032587512597460489966232623789998629139213814408140300959760886963569451599333624516265231802655430754428805372257446071212504089265833101241234122951891447945943878778630854838875146752038857011440223902015809797386835936452758216346990713215603508714623698857780490263023206391178726809651129796812519659567059177203206792054479945270146169059176585784064444054453374914766608255517438272844143027781152852371352326131553543858952197689823461110136836668581557908011690469043577759623177188618808204863226274320615878694126958356009780906380288681773094178615380896989343473902240987599780746342924284945186251875451818129393588604585628926944166618959420706617665269407743510565601540745069727761117807853597769550383450701229409886383336410161176410003977362452719881432069277373427745192358484184037178772356093303444239710132473550564229117971553597961090548626602037373336575498261808424082898568445812553890407864488827586577605115096666282106765107585384798364662507159577149301099141103670010232706540535550900241832341383139086496953049412128437390065189673136312764698609089838744162965803894400683505612191695810652520499462663940560411455469648479500203831254649384176204985831763984838731680767344849740020732488922386488675464276822261597390777303740417852367766512450884620130291308258589799386246100917006352007945525369334260831139355504550936461743926158289320378698530490743461628334747468391712310053393300772977410321604883762253635787709797542332724847337956467475947294178332244965441377529751225727392329692183116988903208825890881601764629850460550076254681893654202020192144163440691455187125093394594940498345204955356121247008089462898472841256624095605671921711587897716506367427907836454942946217480793535881076362937534699121018777794212756392902133248564400896009768139175302856740805670429810649734978443071209728898092841816442078162502801352201699325410150046635311524013760116236856582537465181411681880759877218115122960341960865189048490469736098427746257462003186068413425347271221397631983957856577708847550155418506466280624642000540541389621985219770032182698022560823933367951542881158206549082062417835432761272805292323831462275589125124626546083144304055710606189513925666260475160520491445571112663190621319440081238593392222992338716569656731099585416941976950802130603852486198868238758892741836819784657619475062537295159121149602945126701347456538226121468893803339962580780031596147332738241871882370893611788448789095505511337238088329265034014289614740302407907920581933039058774202242308054458019037612605670924650818328590478188174179394031691762852203002984213382679339655723860133606460792170562215764226255204028986569072457148465381336074056055771993214346821595783084422495795250721310735713779923866042581235334499090084664672392476906668035812779192653770165422167116093965903837192883384534179814490449603622275301989697618919783211448748964535155624383620880709298269301175905078975201590983302213187188344576077030210866501491707370870665743778201303847926400645505679422405502445350301084115167065623560051348203263714202464423734712118318608101353211155193714159926029516666815396476865204776902494223890510522145584281241319558004479270256876279529545865252084451907544476954309552773694285770416218468984786061239459384958401251660948737884564839171062119674751368530461608580327452367285205571699322793292620549751428431729878641605119320998832388714591711125247788265384193273685123107724644958581377779774807576124285567278039160247680385480812681489094189313176511434235866677474464890861072149830951449681542359685848740850875717361099893270457663995247339716138789923792167340427303539223758239649398608050714909602660883244238693396411169713998072900380972291295551238951928621886418152591938925813288791693464829988422437237748932182787802496974782080440481811697226067075776581080659611221177045840758074510139796831502332063906237540404886727973946001695639365047769542864055350884326911160344514694163995290670038510992287909800552692298034941965657093881176436226429944306563336078347634722143858222049704905775571968197616664101333807832830337471294061171114594181506365630282742137466287740923129463353443875217448159989703675273156512148045154639678903917102956282337189003626906826464549963275831807737762652372871324347381356235002984843234864234919147549481757180272780639271970247747665808955540357561642523150666697178061463379528872942916108964463339024203881893259703759194708796436507518287410283249886655705122184674593889849874260025083768208174645795518508619012865827693866613154743211840077562024890713250405564880013350947378908768681604418017940241329242889886413961823905197612425499458602761125741130709622865455805779897827045382060810323125758690743206041033789772765307235003735711091655247242925477787084708934507837415248356683016931855867509289626397687665155389313174823712433310173604963721434565373866743599493271163261553801620720321237941733487225721427398101217303601552109568772792485649177797205080195296726681812415687711453732805679732938100988560008719827194204385262340855620811912088461922336683713650991696313042651401988393454263609144028798493411806649106935124920657593267453460580189436432991496911932613946245545070201818736569892159759083976840606999436935602416331831147133000418983018741554873696602663074035596662054629220603771066951546607855697591779672102428800750018241913528406966637403783134808908462150006805243563589830672609494181144891090373680659021155623978422768170488673760483924767357463768843101477698901668413117795504686879465066320500729706489397059843205718275098316172364173003185279730339283800313590633896818741293024194734121908764196968081095308647073729183696767939276908950836782982039672989143861050011077729436671825980689877468666216276082550039339360392164708741480867354069599060475433170895040232975490732162782605551594166636022157420300545379501065580924226055411724956803112520781646740367169099822374953352195199374162217716766608549027660073560764662049461452061393432983362390604859109006454727402762550855415136529649746773531513039053662631544189856949744761160471004287009821366708267744621083069129456269751363735888583147587177644168758835942461904209230764662648502801284884648062164689506509614842828442177166701890722724526766153271648980336366670848607098257825362157853471558707113634727179739157018097133314969095387869123241827158523899475302803033034487692407270382552714353213475724992502956010092304461147573827337897885787892577862981797491774527215777502813242382271833347278394862714898498258533943091871688756083673807720107294233389030021025475055438070112240328945447958231155462527352088199348883205624910652536277670409318121814334434005131567186238576380254837579895195618872307445202449582579598053505907562401791968277293197130028151073508804814031797888444573250100888240398191175977425020497274179547327189641893104895979381108748373118805008967371248146953630130175296552282670084073187584506862424486724888799033880848190108806840535015866927971140352594575501877943796773474053298879958160276178686936654727655816810320477224600602143274269390242685896789412824924727076729576324062196279455242112227048967267555141398772223891552759841846246034952360506085005981624684160350869194840337991459314294290369634531746025773606724605332989041931731930489749748827374487926050501782919525564317384891789574378914475125514559290883758615298051403647889677582555224256418702227187874977065935824431557727830357976457839335247499701190984473850818840051069610671482987639872903861653043136952133935404302079458627531107941168848288814115220291893639370399018777237746790756901018112777012841491755857356242386032814851711832270735623804763931920922518556052320528932334168052059080522858201846569226423657819739605812541969800760488119669902546310166880393757495436915640496803561801145561499173438158125446647376947805749552136152263920218320212075095054563128599753311304164635975686852861283570895013940646189923037059150701173496344363585773475260399189440619505715589834060169221927447032070277640148614154688551689803460414641712655047299481372799449486010623411329711605310182907331277377059275652046939949229003355086089602648201265406340522536487023996365627855172428792348474893053207121919653924420786058587651613900069624714105894159702067157713673557058990916581915883040166471056795889504437831880719730978342727889137459528184657013802243172590169013601562755178830139467722470692163194283917443342643023889723473812423108387356814463378951008248626971829271740549291962561528529782147883626678397590840180146464381137006117707818797315285946997304715070759207841509481509126937912565500751310674524080227509556238628437180717175355901262376229793845287603603381561031182786305786567317142550834285792685096771080090795179505288104067760220559592426875244754342311455364823334982215891019296323247592910012221424523193816106563155272589838612436816251265146192804193106745117718262603496914706550279511183201646244497072030716959219808495733552063880117440254349381052916381151340318871116546301974682085170257087475454905517486872973428789440800832897737481918554735064805882425883264725101280876834840395878680898296773994490396882137423949894508674728605380659147158789925510741860277526879119355819170933523019792502181537248905019956107998144205049317119182901965678880218331997639656577126889845583582314523059043990919967510515681156442251634197537343371805364606163214013010960310058775383514953640732276901006286033458754802373314765959772205233465212328009227015201561464391594548368211058385107681329109283745729991256320367020811956573544179433626194407839297673700117529865272151643770021158834948270625617327416602184233279073454359064186421583649336079471197186513086954978082031328668244132770428686681418664299416947971447674721057922948051440068473955655318621851723825525959468805943037217129120547672903327167673231699907537038554489330740586861957156326825061964482628916475086462272632820632643397054116863684722077601029146792721868857269140975290440018174532351916654339017710861590322655041553686360090454098532192006292558211254488693631939448277810066676297770498750764204925149028257920487062236152634588671549860519245882928704009977520737509552339793245099654324936915252834000185634844383663828959402252112705803181182966525285953188262357643025896455503389772869994900658149093827210021473414652085006649038497153657886386246338532705006435895430626095969489277260312886040184426211708051060821168193161582205307543096086395647690066843076042503804511978848950473418787443035403619737810090312204847298046949061564732329703129657471762134352426620783563116310903935112549616370301831720996462808109240568180545229849857415677313557128290338262280799243999054448499039295932590579601057041438351888617098393765438079951524547237383702429430367329444635337036312898051338701858963654285250033202948503929698040017118918547668990689740503832233304264020210583898124323638788425557917743048402614605037055781919854167306542668228675768608354849653149882585893199758036005070162773941948809141282206979902960270768453473728190857049022332755271332979205972790053732945633854914080216272471538779687672660201278862076890732661743449018655707795536989054245290751313327245297471950189511311259873515261453657331459874740607769057936340038945069281325980238763917958166015972215716512779884893146527978810624438740085541658098995475008307590093064641740433437638502461783433010123378505299280707725255037696295603380783064614121621365425152742666005201478287196688239013280883367164962934209833214422793354225648539242697170166081264178357487540855393177747388801450792737811319518101399751519086517519198688115485180326594210639585726454438165868127818395385487983107666851560909879930879093206885919922779302277396591965388604020012016503147110478013274913429461477445871799560765191241769837666139857871582051856078031791577149293331024085371187242536512182233454047893984767754953182679169112480931981050472822774628977147131045207205687754971300474587670536222370964611583289519029593919653688384174171694637915234744154438368446609765621284079880769086873089905263209766579633278400973938770293467440546498199633596677094531689518129160114153132880306892416527830418074949102669054850422519249833028350563612390751942589338115188541936737466183949823402430127107636960179580417269710908834468110855274464597905970053668749543606388976427502168875140912767915570226314416612686931468352261434326658587891268307073992113242221501226943208511109292924985588070768788188874600249260768029212863372676862939979084597494890222541738836782203027358866262449734225195992082127749897910753328165929473986420360244607980930484991325870971148949381097955551465407246255193726446244525675931418242191867444171617033846272599460367021223497620074746335027270350499241446408511937732111324063371278675147106456464987787536491933153559488619855290536921920225840449047196897100993840759687546003594203303069916081457994099337156675764411310507058887221304129948237414048326621439029767342376083763127448134204846715198757897117306926822486580215684028473384842089552649789275748326181386820397344878384268677881522763958196788429939869736230545167122166139768701893371679409985630741948647325156830491301627880936027949772454823023563260424104112175944848420812616866273075349701916349113792524213481459413821906146427416276484026929180606722412106666262240921308462527225880588451961305917284997032736503708898623188262760904794720718501914721183786612172376492965824051104524800259241467975606054435849286862670986197330959746880896995680265748799419066658938909991481014918791630266988650026604977322616187163883385687964559007630651497731617818145510006435274553023126061969331079466740960820357425979646610824360175499789239259778762814337997158417191451476230448909263619314912031883608061366966111928591980662531974446275625988164601382019425715763966776804917059269992366644530729235920997274317732828343853538633471556534835381795951146213612425294713097185614432770977949194728530397841889844188258135401119073262534859432924147386545504576386479449997447975535267135199340882871964674253890975360994038568612268777633235728911290920853094218887228442639677432617448359497492234973090964627764084754178546789832500163894116310922967062908672692774241923691427125080784836090017648568237350782303776511297383507837468430397606946605934489057202050465056404878842989726586023837250254157517370274449414716116111359743526884118053018500118142156650559719170558351823446968678783270303386405621635330276289990192992176572539205063192374970915514685676161848758181191335953125576835262930985345741168898329117547955419860411567292457938276518180002369735303551149002736243735106470075091064784598792227221856034675648169266106988846712723446036233123843945412101887741691124610070036589346436631415581853114531350677937365796447062258585847724888234563081563730212650952437816720022949107721548222153125696957234214926433415290508250764867610352104378954442445071728941605245139937915640259366178483332483937631985652067852495519494750523624664260002771303093758288050632837974643160647172921670323708967261671443855730560044962388090466324970296824635795970997482780842972949347260943278309113119355749999341556646874392163520718540798000603790231552117901122182938915068658056837552852471471881930264638853244041667659201297969477775700838210494221221874065440894314007474013168915225327820445621549251304553644949643568315751626320490129069485739993551989781865000914354105161981155366432058179235447285369612244629268687037790445808742114202785167480216826421277007647749575515679062659026449031685265166544612152750448594783677234976232170038454357126052966666208469326276023581270061196238006681553665709486380878861871142644131855771980076987131416887806071706888092549687885577337854094274953197092473623951379203758426550276610866191405886583807487033279809643950158163568999436527830387603801831137600830733715380466702578476680361304347719345874046320913019163698248696961045578820480483962925980015600967548812221818563369585265830064889724973938237224894362652643757692026921997991692218312542022409609375123897333544679117081271248988287705467223599148967835523252395423180334949237513645301218314917445567621728549254077825450526730236565645028866746912677759314672129155617175597475653112213683638703197630576788146585813446671085782739131362896367048062542347549853564725275042447598816624302041984222975181078155126072924041906921274353653878152070463508157993781671978058962113197094979000072815196754078621952182231483346825128949670288064462192298805511426803793642601563566961770451910071019874555807145817213582552023259795057600209422204590261531776456394936368172700624035341901530874691216120430548841221453913405739298213184913830516443721608488932650550352254504330421669384480499393664572667113358171794274667402639158206082338082211703881963368369776185698996035763042631428300992386954535907776275930814590270097084168765350403705678522305379668356004190814503724852625258317229690742575902732224541487815928705836161444160900115719542629536151590204108592690717400878678637792314094825266479605160185243540198392897002373583576521176154470077850015718214718448446074745058840148554505811577890477842715430622967393192350036051458461248721567984240585160514078494614672083678871978530990179103672404154108241406608527400699616596549458341923911348688787456863057359568577050576715834813362881725379014442557174542563991623561721028922543420310435138233056662632180105665802419125038554375000649823757524696706905210883376288474924327586122600071140220945957184769399908538889110113894838077745382805311191293211564977411635792469064703875988122720909255996996834050603124610566748919217982978011674994580886827563359702871327921445410512738990006328676779057208075691316771542733807710476975179846177564761905371410043095887647924404670491080232482666036842391873256769190797414016884690733957433998734379197704569657268212901604125873307920632659955462552617299489245544626444962116877108438434670876195392466222511684685510559710145355217142901130136624106495403219497868785753901194028173691429131499429206043302143556117089457077708681138664098927178867508408357928633560224784976941989670510975235865143844891550805988402091710597957399971052448774377081006693933688607865970610198594670706292526708887273447472067834912930053566848758615756230674326804928536090876510888076582588354551311031817620822097583856940682754699174939538110754557269335508243556876654289462529018862584780655744844868764792019329221168645489493452169744435256811548741073062995367652648858563203356362146437219583367102918015880866475598246528588577892878552964685310379176917510309761273177646384998786117232680953109425600492685787346270148038238463375301250004724779748504160756194717810339499007413308039729949453887559646442556759188193871135847471711023567474799989295574098319659387727555941494310273936309315971272087377371169597062776678638950077076860145643640627860543890730050755778657160548610810640235257519023486092616719374841651048129180028035898264475521276609380806876317568731648262012027081528074903453955800895994444155689833680917664809688937756445127460236152345894679032713085095987976490717445948927289469403341957621874626324262541388562138493106790735781771433018356373723885350094822943723254710415526909222388058619539614733225298233219124801527145602758971388509099499533660849302492205362752704943845886689622154610081060572206482570059999260228075073035903428538779215337296120129607178496451494613126658893571259796625331236632187678381721556364003510022618211261798728088998130945630964418396477950666697481151436545976307259337273322232684203680850051120582919201406343300753906073315609815099151237254951746884005888575121473978233701694022036841467951955288790261601089522572802041509516135747747824142070995459928089828677483221295161423939439625535484621107776697392001151999516164884207931772424962760672203308667272355057467172170413033868371943987564471479082514577777188556970732866256129470238644881492414667060862738520386583625939476870459333168000955059256917646675627343253967090188742885226371425141817044484431334497411507630364078881899480073717443663595021289967013859721286182150943538884304445460919651203358769996006490239968760867195189634659519664625280946037892061771199957020407767536633359299153182652218118585953661996862843098164073350744940297759535144970856903545473709879766582108101640105916585169262137187119649756321755519567007204921039254991141773435183636638563805219681261849991192232072841421030033681720915010570971073812743008144576113220836362264552657085509805513686818346364086102775461649580144093573365867408574163556622172508286465416459574172410606565300074259635532635244451460904672055383716953381883013202901941083973001645390391324533735684126641455922508591953793921032845982480377886621975592437576671604978400362502314530415945243653799046223339913871273637848461629680383816572486439255973400166216512937524203997021485491309772176703187616617234575427598803933346595513033876234825575126857247508677015903011178044670053086488158883522652049349126212645973151074647441579844030243546988921977110592170748961082411962218172029581417331254646570077012651523953870950472320322338617019650369601856496512758462075614736342965580209525232454511824823684668826143735451593569690543865486007107764209226724533264557727059234742798958591251992554218623132270793935620233635123715322093114670595840500578447930172553366099945704375030472646213224524295446683455182673980347047001367218113413398802668882407589659801015244195555781254913376748601548512425251157344011777346019140061434686567126582103683337614527366690396999284002359868160318349691364256974696281287263118173364669629006007664184552177755360816810127467089439537563186132539584531605226773882505935981706360996800557880981603941984494761352465651002300938818712682071471180069611079875283437888280295730166829287308395300252573191233144153765182166994660679509933558759535463366761724179092520594952681162202109896527771214283409939539013890907432365711065390348886322676195288772429720598315627287727714711592137811976994567118024577026094391982168134195749495313841916693826798621628116077730497950898051146708672461809769184832442935384432793376136288446938316353470849999503616855385311119199819772851719323456833778578754705116950321897043264220267287150768961477819403523094855855291597841132774456371677619278057975721201322833513361211215479118922588023973426045083144274715653186403867048722065149556395884973642948061789486187887172007369370751492812540715147656810103170019959732483856514991734545746269418636738479031541432097584445551032559476868479018642017247955049824087044857674682104546648638722649618142403273424324218120377852201237613540128488359233912587003444969146508222971679337353971254951005734839441873996921890703195740672474174361316648666656153570301950672020451415436337696676759695450877723818479348540952463190970039176665588955401913234841339580826965736337286385531791333462820802122700935520094122160484048089029596337943175730010447423544681210243116951400508106797955162988972129675833920251730488704467784409723105386083876082639838026236843094223412476129696863341432406843339181352492432158882488511193427170005321956316409132595663995364589996036855186487160044585637849040592955810403243370939024818766319125863722356532243454978305121481354866472965815957817057452255938715907985155764240282965249259287382189760475590504157548179505500490386536879354947326549719546312426622899472961119185789038649299788900805220736761348697864754716381413389746324173930119474824626800373912639763494357437804639440882442626495519506719075542753927382853730038169320215610899622524433230524124377457394500609026686314341311630290404441639360372490017978610425178712291276885438275152113155384945409504581796153415883509185621879719696146934475155745902419125834620128702938721356086482069954585288517589427047817028846760279658868588167658908358768796668295521260873044135017745122703309268169325573984042092148491504080376971538506394604345732374589659202750852929078236231356783933164117820462611702403033851284022588206142416721976918145250365723632881220734690750111009048361769632943121114664776294477741672094085404982537190038470812335487755774007167528751663317061497975158485595941975138650817898833474616025222769221684326002763721235484894400550758324402074256619409396893830436570819321603625213815169589347645576330445968174694696475993670097239485416712463112797942472103101172415230642314986993401214080696087798139587151510048740187675841040808203006526808853428634150894949859700426027927955863907863945675831258369238393849219461804543129655703655443573360490173609278840730555232797512813741034342467906338762186435744214790401941780485025242494740076952532857457016570992256224300572242705163066266347945930774834879753821397110505231902206880477888228325648300524377232322681115588102621230011234213462978061009702084211576361431993999138768760715930235396058760255686342308641813889941907667369781804148436822792086536718210033220663819742670145657104607497479580750047324355944235287744663942618295999838469257536025971367465028001502509219241847364984632732898368957104333626127409592941024782730802280574191254117040346597705802036516942796550877056972882504535637996001599719018340125654286223316020229973746252544097792084137196170778901626851038305385461981835162289157563539201275344770777031641247991817106754897723055017181612206305046908329575290095933143042700210574945754137795475827922126525276518693674650488870405026862061828312020853063017171301951296000521958347254935081881829691420634628234301380194337379870970729829118797908788624597014033524675688416345176723170512078405504533858412745515157750056391043966639851237531739525963110526053939089368777463000976514597922316324626560419858890392022341308636508831035672189669677214409576298471081306669589789013271326911985741300836325732113929157889900304150955917422598065423108228043991852415928516443522081512661662968414794347347804616403388223584097577717352165857734406635451564743638717217778488825130419512969884269661963123803995980022901696190375590915791211533192121551994856847678267041194964995639033781923353610711545153307402003937805197578283947399616442550308603696118632023929264322217054114834845290081976716925713953842307111483991201764888307517429103851497001987606113932728949901562268263671129480090183439567951667117658505099396885652092714448928652327293487959386935396351379088449027862563150422710798351816687923087817048752859689020821062847926620952358980719427485068833992050994263298668112095202409202950458303534323043360592942161678521700621731332327253861014214626294697612352071572758331502305351101853345421138625582157907271953971438288206937703798415074109293481100167145933935706603959022936507782895552730906635910445693307656216795865591000263772183984055739631370109219333661465743271725922590429008761877749155187861015169696004447468606259799812039607395713716615996358388879563744206736883888258376827749809676107699306897961714041578574395364417965456776881107033093291873174018503452734845237307789323231981845065487738661287584597905738074564545876577429665556376064784361155051403736727403435983119891506802462337947474287538290006586857248132630608029664216860359268811585718751005165385780016123034285628027134093272510315347890276819869583881716366920166610269129189379825937317414978503006264246815695920948271968041766604553652152997022065089378981184279929842600075802414442307091548752237213802803004929440478478658821728773099626163948362920524895554055027686439971547786761137640381336779243652841799275503410341420365513673784036072035785448572394441412768215406823682835496889039386714046992342407884866695292765980442559478078308225632999064383098119172222727250338982621398292384736810232984103561962623699053895010453684097566174475683972680554531525218797388175034734641648694667954179045700593413739219648739797018214783321299443134189175903525827440579808899960303468377875892950166121396854334955605954589400626912030963484410288272193368935502037017964472632431847692807602237879334281618519969273307999362561012702301321764133321881332415195570682442949789912644592389371546733665486462414539997083632868099760026106735698076720923361341912512763987203429096250204567580030481093657635670563603935516794676918356463800835829962043536416814433223761458832213245978971348216406591729633303876691090426487265979025866751244127907990610027186048528655641984969428485135619280238067201822323181669801513434818236629373881322814932383136050044326916703698272920839112879374543440414631300129452916863445885420922128515572191254763484600347492593514886691947656440559648959161391198396033387767604187480871515503531287473126631319944637436554825208635446546508063781799462487872981632744154116991622107697453855580424380898341644187748038684003061004817012710733254939459158801963441409544684713455152003982121255983098639324586636073189130300162314218051942489362397387110416000995959278686107942957362360710901539447559485552249311512714193520396316562784275251194701692238339868895226064139183086637829695318538300333790529717650444344480375323968210017462071088168074592970094434838376782463979597957613937683197047763144374837778829970728505015796348562249275296812232535077718334170089501939624031588632349703281205531352183672960443606726340466193171808212604456360221580321331256890061112646048627745013257488080459831608865020613960956647449480874771571853767733168636513675305505289224595746644132427013806790633045614840447200382077163820436524607920040272644636663483379863712468904767309265488313568361527278677947259442066291218210496727459255450395125331747958973213278331702521636520636451135351833651295813689442018295831077029940171165901536082281790425595302850384162399772254592293866425270559411862678508157251082006952246168321326438992464221585630976721535633590876415223018292936404525467848449376402902812187280576248527010220377501421753700637335536698900641280529830978437023511704492264275292708102615275817323360111212615476768103041883389298562833147337962740027647407852468618228423768032766079163315799956448391636717813113753757702379866234633917103644481556818664288453712776030022504323450460658624702934133136613026120778197104543613303358626031402815308405225830432760424509042989798167138823460871992409059143927704457913000970073662521630065271898903890774164817132663557393358116585426500178632852049540217044563016585370451654044796498069465714952117036755425451786626599533132579472275528753416563518508968831328612252661376041214214008662732637019398471299314677752819716380890245782619691385967067172643504640131220899725521411349098692171574993061063241363539950953209127953657525747454342567131568879626606333814896473420201700611946263563628034914157234935039283435058735714460177622976824198317858463972884719632528542421885316239025191804900267174546852168707322102057068646581315225244908388924253628442543779969742718031725837511232353234866818426887140439175776117678079806471693897162722396338504528581517145216918155528010262057096282378581534367991190190485924634410684413504423533326987154720063657627382611630535992230132598508882077432275646996589379994579407304923568341917864349745816524920132683053395676559540462117776962868834556960117150218937455900312811676386505809717644281584168949452948722912888804598464153076096756810504607967956538021377559661525744306789835621709226317479119933824045024733828126041517665575573712282147953999032774434208900074313636122104490026338636626108636978660261879574113484553578257651404427363459234635317264631421909841647673868245591518681434017017113971068107651432115303948391779418807197331559369970483374962257226139040767167437493351524574272827984331909579942158755778472916708619542011984952824318438659325245305948532812963928121613854152981348090920045690743011533389763975699323946880096058043340230222675059548505426638250695932532845567694945629890816504482714356088980500842654173593412611975069277676565836804161304644684674007696247015695616241905071727060228002549829185802391463181773068628137231003618317881423787058762264314793072575835812046722284541158334847494916010105344364474738256910280423974835777006295176988958377636863047293972661621428035152612378523500072687744284156258650983160128636456709339567491879225354332143775480076916222258129038386175542887410324054628906637513553466044454808684752917640376528974214519730029453876156954921265420841629979016816941291196679729279225623897280292683158998170724556972990649775588620329883774052791303678893895791780977547711530656866766259672747983591772423708375854909579941327786489426575253493810053352598825662426951472562984940630820638168323406454587000224697697253367471819123202371146184908531898668418061928344862642085167425900503445998642814217369620437300666260324178295335599057393344784596006576367923161061957436236220766096387875604977327742236920459093843681318435546816565004138109793753478428220230063454244900668569654196498696855088927920094550009831262764540294679399458186588782490354652352286589969059101517730854892293248004790747299857688761057067539994264381910951974554124343538178797233304137123705963874786863434040710103439158465726561124885367523472614967741464337929698255164940235454138515775295994294844354766931071398013926157522252661909037844113715690180931469475754291602358950473801394923211457104703348968780983177794202580250884036755473109572949374246146320316432313866683672852003182673117979332573720457179397794382132099552121687772359220847698988129559479718543087976573305341799620459443969208767911043246560519315462149527831692637107175522124739052322648291549300254800078237742759603526363124166048887470288460542680997403652301336125762866969426782596208790683636843748743452607866717269588425977384099260142174350187950226735700593659402923043157181244917105293430422844537125670368719275632271467127105141268071361038810465007726098690504212859688119154245641379871792460060782935412940922599843305981816112364347439046670267923783172927440968407531896344767581447932516054323112057414044622344811767437540692064618939410451621069383654964027662352188628657816292718962348310327320037818179702144893184414280025791353390599685215528133311209679828189697021167872170182672046240540105282841960398165878890829855538666131520212647255080897695689114794150158427171813276144565828644012372126382161220134724368834891494709210422413487456670067514758404264768502969495370329903584630071227257698146486608970108119493095171180217397663330454340374009776267670321266118076840708185326583772432846285627158846792756965420152403430584738624301512660283256857237347285629028940582344656553594137887082038003038852962362056586919612090034330559766762306693164220869310817780464490730353660542482175901429177187535116830243179663405294534717193764443710543835667521928182126418795984243348723063253814566006834659347596128057805878437306728318426016304739869552819973687040789984870838822557150745306369539703287506813945762534014728350947048877238847694674262098018266752526961537154618140942557167778466132173203898438897696414715251555834882051691422004191553004799567323402865453809930869537876569905073208595737750734377583887700537442821622816873158411016996515427581804397031315349066421787108297225910740266643439665704872371250009624674359880377453255461916553094210842553146605892496017775577802171607112884755399346361153710271528828541582917658516975373455308638248664822953076864798920682746666850977092622419913720603174625171331082117359242902606975412008687958504945313725096417000692644269962623342747130198770331949738693186206320109253674530720229300617183208884547152346797217607981372265403429791866878378785311202413677151914283646732732660784180947079885444779317964367508011636318896609716773210900390003689980267862574661833549236737585914398543099939789409275716376455122393449892614621214727388941720249231203724338384096779069806151731252869317080975620374302061637720094437899205131068466037374557140435858783500392113344090889536493290444696998029022290496515525761704555178040126348611353397333124546618307994124350196091536402992554626018735054382607518543058714996047718574216859759620613955170796489435921869180742207712721304200661023689554404011933251110188981959873369239677186354940376525026870637987875035439703039660982222416215987959256519473198070303516963662581592552220838019480751738316131817027005721378038831135424555236605878560948735798904244816742450661959060377481048639280867662036916456401953960000889131274671919122940463495557894009932609280590474274848702172453669513859577914178879073796564722979472924441479809621980658198892101044608257872768234872771913070905028075037776147499223223049776055521314842400692666340620327834583177949889356268204595305099421205431624733799362888907389851867548630679701775841783621759779655768655215019679735349410391028816756378734970885687491993606439844242138870334408337505365300175147756136284312232811895298541604462538885201739014775056146246832806202447742448861864738671911797550265261194573197706524470753303756556592270045502424999550593461390711401211585076094167131750337654880916467104136986925615263600445945117548981508909583444926274204280227277870230483100598348572167189231998776605342040128866955740606848083846376803740218522165956393995840594260367728378089433759907211298141086443118871776835369824199642229966243638677311578810475020021257244800896050350523400256278118296480361687963579822620408148543795282951289613604180901065743015173175801661744459900491957010079444340687364948849346694016827559050532087856744598002004336129709133497809128867082116033395399949901999648757999698120113069576036741650436055964720356677330863575632071298929552775590734300410288335322928447894239075772305533379405293599701245456855090200294771001873222738211839946837986768080284107484465909765192311100774129528003527408580676295698244011535329947823109827132238295194774920667072780778938897150378289390756583788132382253313470000785191262660853676368606620285998401260933497002581746122586954088641001908423645376057919623936872177704166588874463246660681576212941206923079297501047509837548947002946828064211836429808122590405235811485683245388153537163318948696654785820815839030706643718855393697918114427346769914576249046009874594237086654785140426582034054600275466970433894503208222007393803555353661225000270393464809132567810475953027261267178229323936871620778813812586358432963151397314506810879522687109655935444189806557212142552048673817494517158922910168541266415296958284074251964117786444935857152012884298594144342017778539430054684122570381440717632747359534451446888294823790405694630471801551781736579329246712287082327107269056101936194895460829528158328759094478120704519673214747188712217822818395666902242459994181393812995183316081052973377689406913932689581758737265184219268441919682800585226698599601953956611604546576859708155522799739817860875693928083842440450684491777464977438414499519688488567747712426007523417114489687446562245670945436846624410257084958824895102435117901338487119239383778367879133948790432558964972810994775694030108896350057954335333737820845908344655201304263286294116625023025152320602214165292009728678483147745752336766096429315247506983055339852702691101452320755619365486937375052266464384516896031836024412840722342710153221122375430475417365499225882165084259354376696078145877692119788823086580443575929844178037148562275602180887790228934774049821074101201403037988403958332247635033391943240164328542597069362553387531009438927299218272154822117453061796569680122898075262720925672589202770791463510264143952202991443670778377483985716018986163425022702013976844765705215513891214735592572636752828435538362484278522944260807623993102059770439104737278020018858412043601355353909413601071260926857385090895203837847927798369602577171645236186720564683462669740280955676762545981223930550837305456390028922665787808081070836872689298388070644693235018543297693035321255324994519324112873891500530247603795630296331588494635288261357865490648586854422853666271594260005431476611324129463618807761803100609433621736301963377546894918797549588380507995915203156817272476152702888514741767190914361967942188007969867914264028484867691609877527218609689556998123818613973991577474991634957969921141186689619846123234778137351763590208594261447551794607480121393836440813489900193392878755441167306785959851108696217702554436985757814790129930213758647635262486945712040735826107453707822940447926153161426829346514843644900566622947345726230907947783752859055617048583303452943158376269948612223285587492353226206530914667178183186775210500963285771879147174889604722924968648438159559377301434975670701691307128254210569132026876116597238389346928393957029248164019235816429231334173728553973828145260245741091118822241658762718765249753446734604043330837435687914873833949703536248750992592206747971649956510403411724905961558477155700075277739525870909575342159382317119992352077260013021377671275013879747836732049964776879699138122041748702034233997262872879177317809940955524837407872118712416782665325599938845935229130449424139848245783418148229096434935059756794373752582082956866968842917657898143933517966557658663364900979832172708852777647769829309500651493118326056586613612685542427783362218505918701162703227813411305010186005050091660687136220989583299265321204173476157179334740351393972056408080723146362206502809704527044838199729755492080835118834447948979413279778945641930418037311762875221517172034420579730851896062738947429101168715106497246959114548610965847144865304630857950503262668248799887545932065565020975661465688293602899860322495624263657802044249537223140441398665079065806850857809996957462926351594239072446700676818431637135695993045069312752178890162847389412627331618696233410848930441986794871698806832433337898766991432281686225560999913145739415159547796245407690250942470065269880250375623470990157373650010197773197494881806179437405108165889914513465458626292512468317525645441297886420477630903426983326491793335340021937716643990227668693163484107018467855302349420747562617657652386448305130801934329735775181014726987982832508417234248722606472985639526897020309506936096144414074293495313791246474419209853151251334141620880592341185699034449249529336558497333472405691038222880675632125504361858787844317262422321535215905059792282707671110248078438995681298298074132083535825325848779845273878053189331458121502833607301627683757788158755247723985195099385971307548202661119588200068215756497843066313674168279889984439886512129694363230156180305373681280169380468606315469934946833109691964907248876355863699433744717558491376250719994680728926416063783888684180438066810390245120500622759886509166303434776585561937999359434435027934918741468631811284963354666182923184516704219006788525825848357392258400501071306684264333918922036207109112815110003296094284771590847400396263093034628016827057608666678979240623259786097510975618478425422526734409742852017847282440527950843733764115110693274557382933895412742444707449969069007180145283261151753661176908833634434910202455013650932682985899076965130458659954625809057807125816656987553276529498031118321847305764179011951857094764756991661961511844618316205107328841275859509363949106162390369070614052918094881941378143546862146444189809657833301441274651810659351038721367635109030601020222069666904952454094136079659908730044464558346423510487060627742733213275982192940460280336415876027402920770923785448526727981945247131640972505708470851494464272932047229641733671020566927053062348161936728659524711423183981507740480439076865836366443932647589975276750166307856627829354536316573671260332314140244680498798254631114708560759797319703576717089585449381411407227993605620538604626114694621315892020278333116381879190351687989088636184129617186583002222316753717880045082327254861179866750858175417207346404134463466893675791319851796706830550409776470082151736706734027292881723552844295905564640218518437214655756202290626743955131469664794863556143115588249741120289231849980524721356573679541995847909228859646825260949270516603860458681461024608315925059163750474785351087072463714016084824251844728561582934556451275228783128866456789905418329406765686550465486052120784204311456770550916882269839579208006542213010095290041388801666536764627305538563233408488483415130008606327991818263671868335792208992788164195166771849738860254479253886935117106672037454016954757536386039281328510058953404566059408173591325054576508911355869668526915997964172144458774322787818418861129858184338760641574164981350309992832708036417335610221239647923894358068553912281897944771164484225354241442265407539711464686533894427111217778270357502801817927881611607567183225735204872881193199788708487161658977068708519896736365699560841125377992806750200571663225435190546873653785406077791866413808145697012996767276714471502268047230342677426907978581552709018372076553690153960282575862534345809871577905475596317394840547335307664282432848672982580852109103158600872542677450048301404118283474660735815456275991703259906964277633860535984659260768513318179239457653621777698548919664843126876260719743066198835472536164477304939028009625162603967587153158843906347476613278579146683308087673176718593684273829890198141014046940059324187647716633072975257046995395111493813971476180848217578637797665709924898847072225588418986217456494723077882076315615653115218979243940929848876547074644566855704495836066562239208087635317908334158098536424667210197105045238852221398813161424731295515509464045192058070394331304727359887852496480914161028994622114544292027057480086979768144930160417568262719760065444387136993106673586127568208859731808492410608139549437571885775778547977436336844880213462643554911233672596926213645871603411632263273490339101237198272637645985825015885314914891291609130761722295643626447433671336158415861664497800915904347019045451552525544076295383275747623251305445925904736270915821984794644048451911550740539734244243984216988632886645974065738709406346537667929547242213808693409897929770690338795548198427758923131443561314563636229256445822088926932539542450476679299107843478225847705010810479128473261495027296329425252417572269268312999895518648767902340744012192461507372650323268777752457915841840740734421083860849623090782392246737392650905548793456387685136314844900392265077414353413009685846136226695764556421769806670721619862140647900965821104586909926869395036164804240538785087246617869885576724381534499206626660765897031366910141236753677667932861821330366697836278669696802088871762798656592945965457619364866462434417686843259445257929230233869270189392041167897669079303735721990863935347675256855053617279845771379124227990721131193907804278888705269395164874505257838826605207925376792806848449101936708447061293298196183303128876222569264448467654379500956700497031019035580789263251795989636997636160634844266140287075663881656133664993046495896082799991906320460376437822115162477673682511004221849411666088676455921653247533295800307152751999799805204308819310528146439304738855986352729947106720565639243082942748368342071001808370126664649442120127377007071717902117943508358072908168794685739737646973274161559904018063829252393392567906850459082911657633370034345020929924408491736453192564414994848217245553816308968362944396045439126391402641253652594326004451401557176754341271358014184006826882685797839175521656950319232976109149081944562842061811143300154927710366077636108365643798804249571409077265493594287371030786882082488078697840997139499782835008442184381458921002536785879499898343911022387790315835404076517079591544832500695514469424117429707905337081594779859455922147766077683901123767717207985794236086671545272307479794538592179397809807177342806556200254129481495105672633232830016213722841927720861071161983742823084607314381577396860840478877734422775801116211674687453358461045228827985607978820882765381070078403498175674621595143292039276718458384596096473905848302621072033993526912794891419851382218211732504156678177389768154135381801579020338802968267672870004335421701666468640348939449391429166951530915495807394758866938382430924995557294211974014932214161491742279869724630529441776825639837296563968634223934058749090908812097132452284137938506500643349074070037462182096767782562391912836067019845111904879099819987234613942402487261952687064664536988198563387409477394793129740736897868220392529208608245060427680214171056393067279434376036508842603121068296007830931273854250272657484118125996318116197231277528799002180818060222757074196343264097758601844991732843523863209504976775769736478994747548640324369117426386564582574219466153161039351895445324314701895670356733475103836172235481079831480271636264236313808720025047364057160926128117234444315434038378848058065947522134758691255004160391834942731669219651880493870135322590695006859930289630954257347213739847914663062163715330554758491727176716368437562966386369948685034751676485394333897179271867081832616657222126983543398071363937010196705706779341159780838675497104636821093692537866598161679609854564467255134572486527691023590487497144761005666248095473458483676941161615799405370702244737796329336062589244765557167778789198853042014891211712998944875227838495633847396110073877626708797250908733911284663220904440879515750866058473433968316293145481434438762399184070238015965865311115159857462765474275184729176963294916000673069948145637252934679068961102154271461568731286037391148236269987201751483697299440704028781367963137259925175769062236090399856500178633926416955014630766783565303069748105483026069232813703182799720435255803073400504004456290027736294961155136439660216731900836425022748606327466053802258614549424982339059121848025446684218782117713577916263159124836694985174488145703770022625628875208236087868960151716663400764942816440286301478312458189443233376227906363781036452661202517713426486636878076983310595140367660144278527806670387618487417148920783271552477030729368375003654470650527264886150973401364600789935184750929035303281864791884586353325515970524856721335189791546268261505022323152476214680533699159064543685509032732295530104702094012365137903323366363129757287202775024732062341535965481300853644436668320995133122161069210612071511992651021568438175054716093766517494265866810852737208005679329133822029692264035820451141878492864350169508324237110861646751418839095638300680285738527135567606431862772763676436597913136141161191640767616568598959739623817443223985348231841018191262039823144364430158475591440617403346313624851782192218366059667343448269786051257643235394569455237357608833587404870010259652752230913425254705051074898329707155750872378717027980604483641379830976543022584995751708513234563145298328800494189314444812456998787763901432497312721495713640067056087792505226844209889400135012647834313886718908976047513690818359094675574181961387320986221938002884529490033993588726335755712416790988519111176590304205341256336663803522250249246892749816132211790158948540814976795512211047895091210207738196979167458307396052953313383430643220745413885874618775105394946283193788218413994376479806229244604071764563668429914045266849045697242174844233531146265908007995080254965508404143675243896419007331541492584919554466197095622502932383136040552644551820587822878290174703677223708400484276353186311419789087716704251869205630932077685884653070178117700048609347975745940292010966759772024943383598032140060065165876350950917601380097272061712561052918071787771284474887957719924035046164984923739145222537883326334520621741452302067506426785109868659335741808928532640666528012391277763983951210742221874399430734045877748212851731722002768411133321791618773959208255424819036798502129622549721714264326977357711362744581039015919811640658464237847965646751388296846374360000069360605057180868476611854238700152097802755084967366221383671800700488716966146619126808770050592741511175278015767347161544808661072537198755066716885604406722407759725577851439056984348809035616741565951754194982492058514865010727463385150891605546465556008354109598827196349901984529460437178830643579007479629855493590037832971671098129567346022016885882230257661407135795327467598597094365654153177731448611208632964221971073295932781577604893910469430106217059086589071462868967235450430536476138203249616047026232456586530145802075180005632227986734625509829860687068880855273306515801303344033753682417662711779839255411093993061448983874474302482828120527909983131310007090717719426288697096253499550667702047879167448496589172340523160824980577037258211591795001814655259803060444750921314710581602702573293586103607789743043491427986895666620782672545873355286225240219421703873570093180606596933082934350249586867625498311763807882591186141530723116085862478966540123778830788663032252534078477483609489563844424625608206676617726695197838623629250157195499802645574523418263092811313229546545459104145353082674717007593439520415013897162355024841406696505379888605999270413176005314281526704703599541162094056766469800003622766288497612055374614595768051281352512123368702165687034931488999216397475043089132258777795596157018826723827650861003545196070812761189847788884920205065031537729507276127186576826290373390640352573226718148235046109754374131014048020727289427456362391314894968549225195942772779307891311023454442230840611886118089206801185293345291521465025567189612027384895621719176200742942402837289135477074855175389971835064356029047394693728101260286301475382548695607639506957953252726981300413765473586774722824838209491251313549585196088242932830269277661285308810431013595056231372236658743225758653739766886322938999758945485357929251556378448556018428552224943541302462575742780764301625012807518446203960064979425464108130930697084657508370216292035122988660278537804124143360700571560731713017892381077645724850621715086351349930354498338884702785944722131265738897209007807640853678680803346290426459932500038187901086050957880936099576661478511327146107851227746435162927050312427378672783638025786664087735747022959243655930282633561395029100231848344028463069274595807024826974813166290643930052551309577444000457585595239319864362872268837821821785213052365211763657970775178821800247963069421383396035721788263795027115851794678469527471103049451723261321720139273069980181408810414859917877045465924202382504688050710121407658719967327726626100150643694525301721754479087723688316586154375786532384651682282551848363467996206341056837903091512342747401661304206715718983051587889808609131444519193468972813552243677859832493260196101871324959483337844219462540291797250202953557659160004625524685486294017265669425588287728780919104619071052986659761499585435651443994334400379810679769963570592569925923532086196089453516762297998654325015710777071169003133383119981931699680545883121104865900570207576249515455822820253824957556788351078450573342758625884132704310116018167284912847170625201832731983437335605954818719583403053139829509914143858681421340688236179661507484098522258643401541770577103747895888485862659216556334119260634058443227733032605071147241703051811033028775321249847646869675866462596083248890103327441352978759196858948719126505195520611268687756254590610373579116371072290156822874977371041280063790063220255452487687170907429561324924913577871043007207088727590386782359551399973672537976032892528887795007608263941722935258196369107276007229195507410520408555160231364501441502458154218272170155508205652978249340807709762912094133454979000714266099242615841774622532341140176732495124958837123424870629524267565102643756030669741509046189842980354710931212367850344826400244690716409247976607336452330159680590381440132742468336237266738268449586922526699740318769217024636819913280062438751206018361889240134440975644011792883328296595725376776604065492052346788227780464777634758718702720222003910454808754203919961223886684152139224164398696999375465567586588284101948980283583178256094914860288234560531855491846864821793373952599167674996278159312941428746186103926713933201413610844080411174607213124189883667618495605818399969220145520130468084982109551815460912803785169270379316254637494273586028507460604771920512328132907089041200731335298712231007248034739794036823088729700775597501060847562638058049589315293328786359041284027967119560964462745476018220505139246870206073055040412455213629270309971195924719290734118640955283390740938307535216300072392191284260465819369559166265391799259170982181708029350945546860981269456215285166041064107869426216791035406139410512743076967521520128939553432253998924365885781355888974349169837892914833871927434302468572696677844217109009509411757058035526184912111709983216368012270494327484656690862569152723628899939618458641467199141193791776940830848816291282414916377253869629927936526674516226014077730674357481240206720768865417276368880694832421850756222355334296465286006407992722649762577398291920821385482632755357441157450318967379789299482847997712211456419249800217846949402819175638551705003931173583639321689432457912977258934502472901907878283496973190761984662696011553316174205679389963148522018980201492863507827987602300433787733043865751661290672020247203654458241493820303777760000670426589137460619969448610335615530937897628113853810501550533058170163313030219516873344656192414469892444402703203668170394544110848936960142401860276132661353913742631418665787817021233815840629652495585726907554785234801950103628036595511046575351999807960608800466096664483636401003472176369299566495345475128718020184377142841494077287319630444316135109965904037406237688423156305286740300315121073095171918726417803875767717515003312711375768626864976731615095993835492761421726461097406285602998442989078520618726527885166116053085794188142173226587763624410459665562781816688500115306838877344184333698686374553448618626874825543223187446184035460656470954313401470992273052250304694754654534769631169459329519481891712837149054473112303197381327840542424250670532220059039534687878221033009191341712213081789731300935621971118673879107821732671954836442176915434951690105087389855521135847176561471869660836325410282791632729736597447231657634239523911344043017087159045719038914967886829601123042096014003125034025240735590278558581839991898436898773205892681748621195250545252029962539636711676051375139557571552366891012409572328155230023835578370312882004605432791049655516577489827373262602929623149495293177014087102126913886380745349601072060080193998990307530418284284023947411007380500814410566370765208590468023784865043632476370983585753731232108085416888457788257555809720933825065275379132333919255329128981426422468942261790150770425085948574807325138572607659200786114127133068411482846094250809319298373751242445726306690052940467112921264133381870578513913200887593435249579017592922499682519226902493791988954203906017360836708814148262071982725690837797266457733642957973622548032221894482123136244128755899369833882142321699638582569555801450751998628125030849115229764016761202890770575159913491207100141408127623830883627943563753275908335245948246850416001095434992714992265496068682235399873412697855502569779550373486369067807173454070031983661768592053169610425319345363046385987854872651766758825442608720400911318246319061891392145263016523708363229684249310648978304794839487557025922460942244908361025743942528292806682810377339925177682542194173505479359945927780052355594594790467656340030381012215491120878247166587745549756846542532419963227479680900930023507409308812273279090233441481748307516169720470052757105424238508973788418422711162493397820828044523740412486661835488780784080307927307199704444679770396219514589898771005738538401206706589898982126913436990275558741478726850369764011653967761887052282405039684947203097272993620511248843049240572936155919512086055904370765729240758862379761676633665913540144777377677433651765744723272149153438422948481263373416367397742703493225728821243561234383249266954540914833300968855338775123073236068159835188111018946639312751433522827232146890053370708218046325045142866130094931844146772830164412359793848700266369490716174445917005512642324953739758120591114815435113142569152865058932767710381151244123526738149581036994599213508151705326866903463841686711310430287971353887078278200092094274212747952918624776825586858558941065026535373461704845203774146003369972421389988444418617331175617671449594286315134665936190836153187622182783847499706365648812845090992316681618575595382643381425940568571365064149239322064418872515048901967305276245425799743175745221722780203042540553758182571979863057485281989792936370785311391949204877014117133278257461913836013483628607478511423165519759619393108909138297690812473770177247409154077992404267529813337472319634670167572995369300525801032190014418013184481199824504509015740916353358488495565737354377466247855614824794154185593128775926314522686924315799835284234586922759222952777133068397467743467553940857287602946415415440308815043341092662652978144971301061303842566744164569573422176048926645405483680510151265997221287314800856646731228315417416693226128008666744087106436294509965104438335327716739538271699873943499381777205275686593168279247243731697500981047016167481673033350902290586279933470286019263682030348886663656122212975280103752580956001410718561954033514523185762803040817838319420596021950820964826784677999839886008888538247809036944446529714277965274659165458822452793394644363430844779196521300521989297233414458551799472248394807018361933573440029123437236703198051125088929747946420481759616414757417749168904411417891125641890494979707523946222757223196750456556015566254791619808180504952553009218718918597413963812318555374675829588341671672196112604355747248843571900245484640085173497440306720220888421001264980461934164620227718476432747121537998044651484003469341837100200247944231996438702061073542223193195684680009237634575616506995652904501456686031334932746483484166626461502614678991821101541683561475454104470486033025591545467487260948414900771113334472982085292612513202768869852464406185209456963760929815836063875587584457559108532370021619688598058535098778310367678144757917223209968945514924787919270114459898779311194693783261193071122140015487427556927736884178201408260511513436659216290961120917954399993985790340740071285036198268793946212256088530243291416423874209526927661597250010310443235195174513298134927507159457967918027284811957069208847467232987069359360907914179449264178802430569252125162255332446889127429590551895376188043552473583877157657126997028219589997345789183738491431998073062123852488390117298150597966288111709034393582000889532897175551416652053398112864645997070155677670432774415645854384034691576950752048828584596761048112928758821025695703720444419081288967121192677779443259425027581537550815294131899429729937279052095428671903295579909058545046211947933164059736493010003179690575418983866300732472812150200948294562276274935820824106160781774249103754449266798422191530705291692604686670173189831215049949163961178195268427489298350568859931277080651470620470144924171577571044521954734575241727013830654987247548617627509635127279982408329753045674544540102457365210938422768719481810736273171226540642107792428877012064566343676540429071616568961824755301377528019162976046327209568974976129584415914040452334428636482373105823945499809176800925070707631588335016801789589638263331766794699563447211536649161512636268373442905239511039372519445330402323734992188810653304842318932758363760239587609108154903899506817919163390759500509358256292017680288906638638601324932049106495220153848286601647756966078357800552225627808556633995787560474954841483187433627719351711476414218282447169068679169928564494808764532475349536822663765304830522728787126630507435927740966309897315584084848113401804034050196720885135829163391955067144256148344181390065837321111836412212796488665101697824633848265085556166835217610707972827185475836314273934893679838169037797879750344484149545014250383316750534289162977821005190243404316969798955711798638691832006562189399900692998778547083030724551056150190626002139170885992062738536630434689197251469984531518459346338046520975437492279975257379752646916271214565718502684764400097513408643798717540126877670213574101511873659668138356186174295430599053635408351207141158209152977590672550690085173883482074749125020464253206684300333902984076993726434036471263553332221108977862543300719536756338825963261576462543489290738260274024762929947627928088835034117738045062559931060592639336693579783284241398464367247033039526696904784003822089734210211231710594401849387253329540135885409607999215159914152249820280491716333908775621302013212353853670549646854383461822144474162793317667595125008357102716815060197810380190325548663459002282815578466066266509957906094468730833847507568534689729971227807988426265864900168422561377598997263278163096737363256066600960678360212953682412281683014754696258229276915821214920897155741756799746049549530805660519908083740242662055368264811645381355003062746591674424859387718222308338016478541255947171276528487501574771924838297707628986705616328765912837916590916055683149562951997331394489343205460655103734386979592657499142538373669723018203548314328045259954456000461151918399254327549815066267839336970837695218697013445822804858586960550669594597950246247317493836144535111957932107626667151713380684820676992481335148061251986417524967940035987450318332839666429958010941659351891778505714386039777969110932521041078184972293067390355515150363026168566033956765051016117288861234787011717341427066524246251560647435618231383170224514361533606789956123871104528072280850415283595830209297971856885590612948237839217671930733535433525432164502156664026482156136948777044206954433122348565419127029052698569054421836172115167633446139389188635882257337162126333968754764968552407414294754800432010789219560474190308851159167376387633862545372914497780589867548648907515894027895248895709466392736991399952116254518100022812555948743806310909407156459356764799869402801925095142302192323197013874009804859518643585179456012536174558360407014791384824562200765566417744490783739123831420529285035528285737149748414613938508538860374912325689773682200258300593166147422280054170248655267959370128255101401720895488918136847755469801644682200616587741542673783583259927167828487301959170813140163773747300470950729815574336267830543361416181889522497942100079508568604116909772301001599758455560740862541264963164263023640857112151378608523775809131278514464782236224702698605019463279506061859343577520788913629759770606928729564130657805722442982597591261993963191834531407740511412892084952247564998735511586183115227015319985183222674497571137124497746343489511371423110287155597441741435991522912082717309280932634667191901425087879039958973880972226747467673696537556807481016867438462968457754322661131254854208947008265009165021193181460928196961103320689573024044268640443314254051476976205451321292882880497918814176616624178372663439380285765754795271681609043128727166216579665923116837494370759336083528903248408666718687897149176820076679265568685869625539073611956374829509455899302873764576058274176039147751864107363186089871487650487526797946323294794117678033711626615523447979441701465324024694091127106171421131575502015918977536948976401390900655109286798243216756792319385730301385851420681857771120584473660682316000167651934359901791493712487931313016762320045414989157100638611383213150518367984464873732666977910136266073064791015181769117491837470051147377932889758127038125997825748340392958330491282005926688792447796484235092638009240482302586483707153295775901400628615700192648560328790991274300919362907942275016135780215783193266018711180613071601117641347118433382488351633489748066035708942891275607893669465434224189446113217885638277260316664279503407624887606693672395969818579317961360051327819728786621357928112101485308802011228150750378632276815953545062093234263968147249137930708857807291441966500159974362101363549655567755878520790202547235027030113947605107675536940437905147494780405799511647362570426395614931663313734368378300488926933076629879001657463363339792471779195224826806616882315848134559759260405142586540599142301297913212548661257173881640561529814467559487199814975076653666252185678639175217259046949920872259586637068757140413864323534011514740011612595586286856293430542553850406330325853292582435632889928988059941491737513396903213257717088707944063944489595083987845766729103982865029832930536184971175784183184344847760525891656809344404662234709352411023867572135283829393491776771340364840127683001390662748053964046701426507320785507880048844760288929151368698259853811462438486292158268089173279862473670485046819619310562947672477335092087090347800852202333291683493906450994515696093337961084570128414920676006924872908295499416188421715513170970769261073971757658664862217586636099697611133895147887375633314944867799698606807281080214568712617665139903360444217094031452775215088109170879984002467768652060907484086387193513114910883796341804699356610258000041555748208605830088276432280415726332608906480704911645393285283275577294079715645736851934032920487060528460010103335688060325728157400169136129587942550805224044495565948079484172670582163746780463080406573743622651567934862657483895754887079880318004569452666590783417068676662148869151661668491349555229950040559192090893367743589276163736594790501071546953005774576997324301452879145523843428744829374154857536861891454554993288033538733829712617804021926083347063351728737569509307365504289184797791593876366669289264770966495780936716607146620737149851296581138044720477746174079271399616131150458906205748596169744560616144667220434873211066492310859533084452768791811875376058207087742253018786746879987378070834330560187867507660886285486655105248959837803657829226642379789377661708023515265503809641495311613108961721933002289231668224757567383575495771104124457408699738571380560118320285828789855099807563024591211108615773676334905449137848293427820428497499904450268581184188461063839851961382773913373675381543632678352989954466168625919521506026740151754465752879220923618112164953019315170254379295975137981080499749887594808101947167720904444737947214722827263169386803507916059778256660820719649993430282549914076699850427564856999539634065805750462880265107243073925862976144527442705297831020513461386253961998757467674335965498855185693397651853105307701754603248225594965584050686406051374656650464557529442096103216283362099537679156218127500328314109144062266477016250932696126588222835443343449073525217063878802301654432039947884670023754846710768956638043311661795171243308846512767605235807739541452346875551546258160923004658418923545113881693050546042982700588669037642420883585440990582041091910809617099880930934912542169228654325226432587581182226556368687647644554742760519854065281974849999737788151221725077856729933630046264244101670632425244189222708015909037782182573329543984580400198427429663891455827719806812758038961842895838768289183262120848549676826434869514459852759652708782262813396687910547520161445667481523830295479821816383350853265210865543624619030557381383024763867651278034745187172894934538871466781659449574590916450009164039098114897229760042249871719367758920111836590623756029730981160116951718826944188520788577329162403914693287817506687254094792271928644936149770217580621767775595973927116968079270219402712615350191187966933946908583454907568717522685104898971202298947060589800409093799715882959436308394737786513890060558405693506826720148578996105457671448405237609284537312557488692682976726253798396784170516908814830104719106334284626707064671833645278125107517592713730321093745160632224371117770446962272953290178312517562601597430557130122642202479318845786912684256832248788174907563299749802822243899074420904026654706048818496102406930266714742665575823553183971408233691280426742502458138231289816832516902771061144726106269812736144499337183597680688337200682895952574582944983380138837688220914435195636209807461408240543725058493479155895034119070055145875926520686255557738320064897536380603422161615713289746222213592259472158188334211283987497186779337431703876957687292086538176314243701561446735171974660419828569226907644845019257111142682981001082473525845874197608231021786543954196843155295503633703125370855859063949472277920659816194513921489410096102311510698486997962650217914614120841135580879681082038756641208676658401549835032231761574922206989053949596085538327063973684858166096213063285322208852228475286207898496305496822612853230662916610716959435083903231600360884777144401294853776100716197829770264397722383626933276803544247194443905380269247436006668617331342536561536913098277281838209070130174018258272251749262481130334476610620015211500288425059166106554982932232753246303086463526372612491776703672167557082223999128687752564036152505741882419739027110897108594002836304561466069364258501781306148923007520354429577910265731536391443945192381274942260438677580670296382445361193737172503833334083230267706643450363115809279991365450947015082137181116209892994056705372556778298635826218969945274857172692492340924560047534017929292543816256663791397911085300404660922767670965941443189754416308434825108966387246256883906520810335066078567505943566127536319116037743098160849231948606395051157348252685828370747206522566521811460487557319878270087071914270957566625793508977068196894279490185047847442557783401582857927393759931395962284549862801779717452535129286233809234593132559581556077201042520269724868037872120251708934609818021166364739145946746458313835482284494705734247705947791613797539987180651345990387972899410696771293703356949081568295835973126196245727507389746601425695445984823923932710905266511412473174747265471421499798735576055956863876067380323666492586592362131291717963086378198302725538886134718775178445937503716707905137225114066961312396785923649749579357823072884110417725192043993206971162420126755040380108917948923124221026997863832869109561635792423501864436561044732300654034293105125285439565001774110464762071100389961496699438280673914605318901233350335565012732820421491309432823674030356335785136375959626142799002725102918234262138288267647360652647475487883251472921781570161784324311317372182639934787104318040701115696469901584656868607398479598962805135468324899542431690228285018927074401338295211034282137384759194633681439421597212295284023682705235072652090542702335607129034061278874264805489781764295770684853580141239598966084743541314476926389295780580586399784732554563231505884924194484768399423448287079090229695214110841449817706071726032601175163931526986657136748002927044800118997380780381349855777249371342943636679675609006729371136748142584511048325272768628438871136169979389247841764885171994337735396931825408720750633469368306184296820736902281094406599749371466482436634975859244133658961869551208465495920346889075616291800842830752185109615987176372609889061209847590545503620942533928204546376270197577623414956010117235620493194096605255493917486940459525751497209054682818463652288202983706247548945682230514868098542686626378506219045644914099603467077994633297950094845206385775188522270422543332121872774239358768587139065406431480496614150818618565844289448155135592706515187641613673759107370155661802554802056630361153675980788753034441983465832627603771395469253228490617622065624317650177782539689747696103334837213993694897838341164884811854827087797665210493218573662558744617518805636586253676511738462064402486745928685865619786677042408863396123146524716891929190144995369283908806121495253613828496873175495442304151811950402069832285506689320429471637627241177265834925951036269139406164191906112772034641326756306398783392859496317482484232211281607103964479013379885247556357770311010970031168321437872271669770565690295794469330723569026623797134697535544893033427535015985324619239169794619227134480738635327650421993739065101092291732778112531296702362775206735805158011947584830398329401051387227674672018142340445063155982398882928427354229707274521471156223836089276742975482436271730587749132925227350547614435951768655586869970206516918494877677630211037445060681353195964883251824214543102604957273891471786721926889817427893843432402223052715075237459068943210537937824635504776408888992905161982114908647370581094046091105708731772225733102421894784818624585437234198716405953026189718871098333046437587310834316001592504188486319734370771972430416148357634989002736045539683602436846732551715582885850477283909886286810270462816527657245084114610586588201252966596905060800773382070596802440739251334017305115058839385322466544530557306771129032710194112964049251798509026330879910843587615171834215264603910264353338624088060970444628424184374450666351518310354524822305164755288264101889125829223573231665497108445003704370835022545387047913489217526116782076852653798929252629644275491707415547396489266421640603466734419746720542331431350990738129589394342863216049110034841146743195300086938170704248811601073656744109442752777304615105192731258054493473788131637496373386076417382599196056410083744263767076090578309280539760426790982441941990050964939574502497692861631450868734528593770174128031817009917933157289831922543035076413417658407257451380171426133202025696019344911024430498465760061680888609043239280396776328329605257334661704066595050554280535048640407548346445159801086811208312980610382235568091437456529250357633713616488235003755444700699762339980181791765748119405813436145363996755230917494737887479128262182136937094424898486081440051731860870566575019029957977292457508963974339958524258790577619858792682202627049851737832199830307844200110553847008053562726995307853753573018562323943226228354472567584345464112141098980067735370710678474108999380509857004299494444764412575459033394390183377876084826639131897523290653232048840020093993672718267298035496397252863597720730815495161711348187274681792383851283712676501972403228127922749882365092700760446359914006633401013603704716512574202421049084996248618715001283273449991800623408871798984652787544567224766789519610627958792912954148201705542930748719424581554899108687803582345976688887601524101856821404687931693116400258097452018906296062295238579615534541958698228092650634283297567244857853380220127511903423526807011355088851725486830122773948140963159495525084924322069973578516207237026186464307845293258233756558352386988124242877016396160809187503875590613695745213951002193848446060233994477270199047038264893294551118873581469687607836774836811300150979448204362303671406954366129489773738295559085458990062554062351812075215536152187973404125448774883349810412557599113381545598224679802180879455791605868537208184137546943242601673029193606538996767533148181069072078395664571562702241192772048096430321191168431755088328404118639294289613895582922850439332878860310427181760568445125948225786546653629548226852997928302703771638588061412548028966947416040379514287972872282485037630958750216431446627840727192843613723237918198569442820550062051502616312615826244902262170307765113210939624156906892681429056905168631389733533211415324760817954298911715541268712870621341061922689843104957657916786302404073350387069320204219624536771634484767832522227571246262411026186729144239249748232983245561636334181875190099855113257406932015954366207215177208829374017515310023509209952278738367335611336767241744805780805294622595282733046445227813284030673477311285713687362518610859695944026497347161041704167177923137799000214270018490891762825960377996929457160302616306784667408139331848676959948976946320633341571940005153428715712338405124325700159219628626809847069221776312624404810877631769519203755517131954073977784669520919968236613290106512112886480145270495391784723989765263401597228868532885858827463961054924582526307093429233701023674482103154890540576045958138151976748128541603993701183298040353498886789704631117736723707302737306725198531611104245669822915388849054235326430720266048781014740110299174099081286565465761667274121908407944395910599084754610968643552005869223640404427560484752621291649361436380905406363847992760758177426225456566080020098087558694953770077197483821138729454473909322802716601158300090922490188990533683775696907591986050669781412504188728292818929162560596554129366884766953838586494173140707349728247863390824788716089809949448466818636430432980101292309008973203233917925522300302436063032116964299684144838131002857920120192128269058875251255585638245710211059376516593919031344208230628677364817303892480662012515085332309211744443218663484011674305870879462658740956851266632263472822898232758626158008770913323563903078447336954486023868041786255326771014074957451633830294839016398864247697797514296642496963079898512078317516982008435692978497085935991216985034476801037617663487314767402406676365237947529275161756937166110394019236190218590519048609127754020850996657334822227193182416117147874509628588813114886302505684983354433268699280380503217793842940548518814466686559937764253714407646722841302912240317244131479358381749385377883139921697914447442884673753288577960100711139504476155549312289232262075375461681868598013162104818358576739027732149694394406038881777894747444472991269466462176674762183642357382268835901147273083173386718852325655348751619639588613741377970508230722654539606363697892750579491825583758298622148575186939154379225182839449774784367888575096578391786549304845517731654366872414857770320675408498621251393180731717579652907541463581436840090032344875155553172136156758290029299773748305288555458794701867238028774652996931228586281039021154288426627875839458441397653874142952122240121850509247242343274973369262023554057668613014969044863407647406047175124395562550361905398616649621916086004587521479892420249867690994077866378800006525238451080254573154284882429292278777789541105041958747162732153955980506057671017629388956231557214924209957385923818527547189246823737519767568876368226993806876310015813278788411303360400269494893098028153676427585486271427018406570218230488387170148675288143384285423224718473508269975592002418921041222628989292716766265047237844493189118481107286413056029653822181577559279655908410941643360610125600188534176046545462376468966365127315235922315477228293926449830389282541720807677110839164090393112075723406164806901100735641343750521021081310357013658371272983425993165825350657558734637172700353632893688860818071142954904709895267703003977011076811482085697401863813783244420674178938379893476670465665060057551548750631890345994427457612437150689314996096812792206342738390683420180167151287736846123969203956962464807830868737335627038763674588636475706554653477517838246096212199823916089885704665237035761456377474997724191361810442385746139219663986735877137222109494249679055013164307792079600504961909743408095576724550518725901442740113364344489984940356146979991618668259946833676569748942416069544086700071622380673173218853718708858673596711793102639857537215940312518926555934317031047663052687116250112047914617253856435594902075778108681127675289972669563608388294888886898763397409135247859859292449431378654809587824605483705353041674229702289781864532995445440202483934760430926788212919517790668256627013076751733281985130178250554080420570788076931319398454560315835625896134933824892974524749492492743918834011106721829029292002455078122899792226716205999904700312707101748544193803380442871379346520882971940166707701904278920400281353123998740265296822587109218566960104124777802557621571124341102762898142139789140551112303455194318673410557921381805839453275612599977234857531909676681474873240820509844002487853146561930679189813446348353183230148400877143562602917082679331762288047223413538114348287657597232301141444917783713576190406118355011815431523400503852152599214663498820529123408128676469220411226679114713066804600100804952188308358073321369300453346873549470395037451629213240311363779034532515373330029973839176352374637803791700882478409535760438341819922982949778086277165671121156928541431144524531585432767088356184572027063363305680451865111013299808739751020447941743751932988023447393306649506749103957978053673983519148495775574538880955015404605257946835137147092678096073847451774537687825207022941050630307314313413647353635439034662275105802796076976504412392771087492283335698361428098367070586161654908461990374452904423996555589765762325523163909326707060654765274636417680923174661077708097050362786595239569721202638797936480640098786787539223307290346725844694318208239167877680057302782781533716233594185730357356128812244000552653503933003743730443564654422486423880710886742793914296920203672456468718378821889997734260331395567257739267902741746063318839904752833520507447821582055983978482156850054086125235761587032925908969283555026368605400678117795310595082745385136408358914494769280118704212904648243631760702487823520962064904265988711637998983048482268405702729248678528505182485688541797287775176384966892847993152665175713074955483886413027416939157772718374616253991196251626918687159436690671041879298747626069844392841702704086503013018094826470606789222161371187521001495271937447699867186600309057589803427880917745216599686066519159514645831967315713433400208669711011934930886356394078961774948974495391582008017823977184817094845880330518722850911871485444066680453321335647767163407589764429860749718550666562368898113416482764811142471070120177295936244246344594851401837286781464817627763746653088207534032012880931461315246373481416019233285645384011557276183296928997435981924560270485378875698126319172835802391159151521055870922960202359038241356897408369082216948279821076147352785238904724960181096117279712062136367383855633771053153291310839702474280802375274824116779918793739022382992057049873200705522168912655562005176558753498190797331274773849371737148864556715273604600666353104166456561858468973577172489292227742701842080583484160190838873756083735030291358304794073549663309155759148320335973831942081371788274777993974874358559638395147669437510322104009601876381405091949114530946691772243540329938249505152234543005635294560645444768319230157332225115365582415619592927865073058221113808638571989258465372664509429012028803022953388700117538666458435678799201694375723522578095360662628349085570421804156012240196639094366711805842234192287485669114500760556285825419845965413064851225038091617995904691913049355937374503563356499878685549292868150771899398296798677140941363633585282404213627816127584558617456570889976223918432176657654728168431562157249499505053245548160914168789423646660170454270443468973673297755498900948453848439986907377372365570252415815850391142737657567801333810867191610929428823217445327133787567081009732884132651577552030502489298617327147049220648891309213418420108652893411850360102186291913087701920420917997652200235251061211523109115603513464920830391019660300486061276649017745458333438061408962092452583864256998979666233932148875353595944714924235006744866364552795988926432265445690668283117932191890424999827572609197488308067566440158146969418530123689364172900351288590024510620616422114688182716779023011646396674053663263821918584786065308876939660807946845373573700687703506441455275022526902794912688822220434521433348364542171881937801266311287683298668919592669529620417451766868740587181333629694714106524850132958862883444380764148259973967563920190599212114878260149646153988834920598898682796275474892198414891908148911620332849861516284244735202898424613388356421298159341742054587383237672098010423700543465313031544941787050378100594458866726975448675849077937042951906827508443613264584745174144593731732715089052392762575124208055902235872830560402038906466101321853818986485745988212309685875940325103158841488482424786564826844131339874096533786960791048780698107586442643476364457102835172959885750253092532603083919739334167964465762610190385599321151203545385424239813759776295038276238695732702549124446655286330934922396733132602115894733664492158168102298245149420344235450872621675077581642269279646972287943607991984432622277948684723235144380233062931372302636821898486339766807719119551646096494902333054657057007318082998744312957366709269223794151686044421054117702815667409918070735179003850381899162497503833011580349582105088260253391372376604768532380011960235362716889351654409894562416119984426466195800313629595763482125232651669251411717899078444053522498008649092492235656188894908119980403658875157205935412887995892429857483410728327907035462236842545140124587355614003880894386911276734913285524127255517152687570858449220600000167987961073361211902732176646913987625218457835307482833023821839934933538924072343719305555896871482750329379283462135103188094031031779583707960785610281513729879714150052280876093946213144457233256301627026776974766334205470667361512837182906253085397900186273288995430067099673347782005718243170846683741672708729069527477084286416907911733235556993093837311439809497153932503624349206849355910270040687579781737501229062675858701756552452845205018113755924320613096671729618366015633402039715358045476026595234493951610220868679867924205555285025429535810540125802424643867134503590145474516199605215703598013542328449530299904957535316191441434414501261306366370706719706218464322401857602296481069363853919832773672180485571185173551969587276291361361617557019118608357713466257133307087381842603862577975479365229091580653272616536251648573827133211439221298612955044128149278891645677537170288380192147691203979867417851659508318855402405558309522794720805629492803745968510800627765946820942176501490339123986350875784292676185801738700716345347039154901739082597195679433975539689839205744690218705943223528179676670043187031328326687907636911101746050295443131805682707090599488161895399629926340560012693484809144872901581649529280435044165615011406483307362677570923309442122238381769675872987806958439177343634213611259458847164858804479808445105414027646812531834953216085558707137741855761988699531729633524269741297040024940524741299358184909472319670106980892654183447356445482720144994006233511953269026648819087577734445441228281718168522297327151622059584347471366987430943543011786949881885975880414249718058943259592775880384252150302215541160160386146267694055101353155361648108991275744842278037763730991027473431424872135553523064329025899565442609397715731186640131756150444912937568475798864501062274151574656382058551127326710461144206633234191443606019075204429928468663351962786598669829343860491682584180114545633436328167958335451158218512840062680345856871707230347399050600385571829163482576438804712982760177110578776593242917898022946522987719389969381086365624288869347548181361032600878247227765165079262613291911796926466581249714256072384812334728302586657461934451685987292818017408670545948700872589920537055940163189034520067342817286948318410925123741427522368420615692064011112020058000472294320649916449451348778914848880671070245147427883146033630088448521521969197663971105195993903778722718329717554675643337936060040309078420348529064634485792630718641663805949880311393201184636256577345099818769880025253721027022841203807815838417673088744887153211664137700695545560880488088426606310880963174304912221450708782710900325784155393515439276282781991896876135047356119639047921673380613295982344840394764595309937871639928687761499267935755142389806172155049529913170032320443869137599993013401872964446209546512292731812807436493677844383914180114672638998507943822096497639951917183442601384382507960020679646983262050616707705576406940615507717628476549253138886460848834686551662292334710543041955567337505725746806209903747549966940664097327112841347680726071990375762610125271842916308935524398998836835118813412211616969096948221951863718317090506684073565310863291508493755629806544494863881665532214966293754907400250572635584190203961089456231570430981004311444318818176590904185332985589529035371801816001510864020526690442153969823877341433939510965480407208100220243553269090277340140704915821673881611553932970798219313460432196126251890772908900625552365675047206151278684412163260717996952163487818647305055377022504919030889917438383580934956676049658750877165483598095547918604914726786417974089104148456734409458006856299519378812360009413609648107013130625190771026581100987826776603880281076630465717817345651308875584382747817252217421856879085114774871191861031964490292827008763099366840015593346745057961628805018770436140332438986142197499027416801576848315288203481478465887959807956765803038735257661853955871936578972647523712255428301848121299430000577046787945298244859438855028860821772185945855101882782355761841623803671590723660652626097491407745181006866996613375914761390576347846025163932466987205763333052534929745519686597758642416944484754160297646359990159114727532354733968061446564549849170187547052572706562092633058177095006796674327783935049547985909231927187979756794651293788074122090012609514203094918973753435850128519791349835821708820132417603282633738257327315019076198706215126528962337937677673709367772537863654250836908961788077300074811069210800776343402271536522794729864334017138163021873604232342046217632379480121729099074609723073271205347427028333630865465375033875078563224316389446387812246092475261328685167519929276453358632765106365274450241072224713197310654810642729845735240106149260547123633996674239100212189289719419900113387131806113756267446340912677771524131862858389658269689648582695320327945111032991215417702804683286358244727207174352960658272842546766249008664368311027491843423458527571696096691878119512917328685500128747907754536782053307010073808261973901368843614192706362999708231160020040475685387516003206798038021215535424293393693624187097918533228403469910111573140026755819008068687061277742178817282568101829133010618246556323191236878837718608042858817556874663553772914069902732865595128094060682546248960005659391941145592805843055992422052894502592109283214978128088698352926595366698347424521955557987406113567099895240224950438349484019007103468430087074276040716485977137232349244475447324751138593786536677439028025683075595617494742684957420253263951566954974009663708721572452708386788421008670851854619136188140996467145349025686128933914897255050727415450502392602093363445247174329075034769825577748534374597478490321655166375534928089931641304395949801225898791039210523938203363304860807382857366342311468912334884233588407090888074383800346517619103495181561084931475149207272143513098787135349934129399167241453016189504099256486611990876198809784185212521818345791473296317675882154856058493021046808472900536225996961646093460830913814930326413373880922431319268279904211174725911557417578783455761075597912583286041876161596718607430204192216183837806436968948830598954872096383442819594672828286507077741055937150631494379927544765913467782099905666883907702357699535310217752990881855957074249048828366161119750091596992084414768117646616700299984291955264968926468289311218949060187345230922317318637054842258945494039429904793801252798356238845038395674895726780126817755156430668520133502467811575612509080524871318294460291942278467917281441380783923482365579404243397991425207910534541595064104365383126135021422704409612839885121071586021762653447963967102436762372192884847245758619512673484976973816394805688272424096423230206490926108591787422440212646240823224272446601986245262414988966251669242062728612509934170770276884381095524417519778334427544191257395659718330064386435165330448157259555365012344607633861813510168257832220236766383839316597040785759764704922873619194167081633016768811790239357806117688531596833046167378568420083900588078629429574484254302538979858969365345905692302000611548102714202275040238005195374121028076569887150105104806433920975259829326946263509234003082540934932988535526257745379319313372062768118664665878223184952669647130605387595724525237834009941453776000262494793120184563255452229584394944815074833579141210082659733166982140462311487584082216784453200981859028351577637944166008059126725988386430831840031771882984060368753369824987404150107666114788638090171263025857782109557894508470344638263980782687837231796273171160510659094685171613269551315258169708760476055628816561117737095739984909494257032081302222246030573155277781779615152476999431012020108093219091550105833352873655689599686984228867475335348110495733756435439508403471805405036245504807075250739003308664104456240200083288841361495765775095339125889319542741808336720812747660013570958817430619150900576732185433206185059621403753898593164821781756850488065563846162935844674523523166754446793837018585772699885180961476615420079525226870010963821459077940373394499179997249237479556015605274587475985605850800668879059089784030509450116952621433660448756660949731431723882508023557458479055744282078782939426569812186915770879964920799325321007107886320833515771932286389687882659141405506525006703513047741236860473111076155415842324843283468069026331200824796355104696505024716751626144753943300849560814323705174823920127659246292192218174750917812989594708049002051432944516941528811966395624633290523568978535510415978218226549451796742574503408820432661369749650571349374225991067830255635262982142082862848466889999366623313945100943582626253751995190859716892492889223171451238618641832015856511859159932039184963487219402028359443260418394798911688141337466756671920947897659637718123299680161136751460108249846170883367787570780814235509950918969151859011236656543985982762279812652858409427549505016189699398565791975484873280571566659352738901017456639475458681596740120627675477646151233207150249934789702964891288938840337042980312705841012605004785207769953039380878592493841714104074102185770979248242121977755489304302190915124278369563000489580845020675446225415528550797243252790991940208972006854948479204918936403944418424709497532560270996236610551474412130822465251911563155745072468901537705249250326421592785209155015827463201337950220810912347441474415949753855317389136193642588921514437038239216708597667426313884491690508705011273163840574825313424079558497720035394602635140785331038397784052413896684609672818051899986357162055322932813007751788492536435344455177094042607883653204090625248664217272456181137446143354540446767176734217665307610728150357351923205844200294367058963440225096466915747440802398667462672336863682558359117013854995962749875838089353753727277531071233606389540552986379122296575338738199522396089013046180432542634290413026946844041075836030489398215521534537020790683613417088177103343154729027268048753378434295396007315204172718601799226875755930228310637880535479557857675686263488371347529570199680558604134148433701699407360085743727700301943900687580329047183942758342153630228557800564915490930186216976098477492591762392782026115812439650379836072205800390752255370730509761510628287514965872055663929606969482120132488422409467762186669349983314091791876140684944087767776309884135241627446478945368087388669833576483226321267390565103913331564317539739709067485153598095799240361095515828707085657654231712637530361664965920222173946839950896339811392654861951194956711551199663100628473544715787211945869611317791141579556716453649524695974000521543052627549213016993692190472678604391477715245977973787554288281431897174801426170504474195708536145299094914574058821325712431147053478172935390537532530363929096229633063029377945789931296825322369153547798921010429011490062750163479116503573827194621863434018476395523668943065983759553335140357174424974702802926520050763768279879306158026243281044637255603939226670494492582790671200223741065852616476963179148556734279610388837642305235667924366044481782833958785020060175270981207405862067384626843077640111427411227938986742259346122547544440909629205570812385817240060595837693642440347980610938939296391830422702734945056651608239074798981050055793400984660324501862637399019397048960420172686997260403967086624196541508572336524671022861123461808784813741194703185965493163142193639935843035697847487744915539980324640765374570798877310785916102472082517033309469044756465587289966704261480384392618029732209511018861948306961881009501918357910069566331639782837224102187941681629755039996581510652663035911623904583107889182746794108337215595785291373314676768890133364601046946685088836076436421435942747049093525363153458817655225232833821896870024532173554670773665562775798083925328350947618147842726418646806780023446495455221804383143582591450423789547922687921604657802388754457387300600636252504765488456745686704193889904749965497754899886366996832924094170134433207522348113772597551475060546851909763858037410507572071503139565385691332267889606414011918136289169413886979526782326140309015330887503041507595856079450748720040228104892748958548428829204042574746279983859093231389756537615153731740598237118682657280232489382320896002043776903706098855927873585953350666366999817998088170022299814159133525295296482751766918438730541631973817308813678464996344429887233721341125937474860505191198799046769522857133057742091595976437118139811952124325793722724016251735429816743825301288285182424424870617098014928420188342387834983195671100527973128931156261040475317546147569708255567010378178409574917464575908788398758456214838376763177087251067647968294435770510184924010059999568567041736443992575145938985739440004163621239641417448895580075676438582799822940085633397869742489072531436349650788834276020766738744848972719504973161943796765321615843483693304993160057842977551537918472141625286886804193716072500633772732585251668613777595517832890818332319847416031621024221795449748320052568984940913343394636672946386919513286523134888454051349902051263164454213700913267889185210116705015001741396642642376710756447390832476665244194119888049292986948808449627550464875491638195363255313770156773448659556554536497161609805138052214518076219545419886432683020368805625607008759179657889095785118453378728292696301230282639331734978368346670489753861206393868521056651655436750784455437417132736322203426917932146782982557524602324113110086074793030685008469647676468000455878000858966097518799762663327786838185183210498545485747939996587421593799768942586472126414471476215817744678936737046898045503928631476328773479232383307241212821153270962293872129703235597342189332242356066145168159478024949729651020473569456213967166737973262474222476325134527947168125978206658533312222501874854407213866602877666733524927584176888043396136030533234009568374117941160082318026218232100258337293834631810971722279083354842161217569414857185130501812179484452620977277466366774155822624974887271216427127531347185487999885459456340859718891461450114109384759163005417635464179542731328328214777833497554577098067107112520943289378912059612609781331530848755776951629746778298892811381831730743343424170039711025461772436783779482402202056970780107214282558988530215947376729393906241820969300390116286477136624517362409723858769325557517076806701207813323642514930679102862960997114195893924102444132972117413721645394157405909014167134259646853192643132766851979365816510843036020057459235974717980406973222234505440315419730938615516543330578798705780395551639240849254193357470799042512606078905979431051557075165248066886187980100179971654998450290213099456087822289220515473505794349277804236440982067138514604684115847295833531947397847779549996625337532856188085610016087113734057620706078823919284739298612319750720375031847233411842544674832259177052072899694604015147883789925351001042823069387984985719545082052295126823026023571733309644480142519401173580875869101425159456121532569596241237351714941489016034799403920590056374185860471361787845653766611263490886377098850386466253612887138394921172281650491227584236468706081993807378438488990385348917188884566936275470366320046195749639717059442749973201199225217518647273086934564953090162603858414439910110674430581308401522071312782646367506785200009687420245077426968787208619086332609366745205696783459469581992951461116580405105487750415863595531018483050252365077116754243379648260535945204938981855448023728412029737736306645430294054027611253447045594683047762575608452047233691370649765544810271554361967680791313048763803350777589022775494527465472155203413618176462675215833266974811412561156923644541515907081170742968647313437031265219321009407263653716168893536795968217084580507820091857578524540567364515906522612224674903800965187799837323324244860951701597109689004991102540018273796776853086876787048547368340822654037162864026070463341793504574127454576413042538568720090455850202710770521927344096658108091476974175724506830292284294649622750757562490247382231970007636707846948455038466013987892778843234505668283974460409297364554755455374944175697223883435355696099059294075282739073899774064137118273888528992982128962664556452776990657542482871326957659799765416395016404459646036895261145493424921119918685449809809885619315024219283528333524847444344870802466508972017927010769992460347419140147625009568611630128398958144698043328330849989809855611526730217750336792792693417442857995712048695264324056761725579394567515028378308744421313360854505758782386046259514952430858622271042859590633658794482490413491652311364302852169883744373160981266597004810513587937340323126653679480426747655153716692051486682844846324685286611474699671321338476208093719381249441990772179971082778977289630539808259660023710595787881142966713891869492787875113044378284203190656130190861195990937960004763943036864271890778261949327619400175669134459125697240326890486927448124705726032017088828263993418369178581083099702050341255169470353441435334268772443026999231881369006446236788420464777737136373958910700955248607301301875640874023906880049072418184897346801426438753507925323461593202968728998942188982374663260466342165703825129534940500493676449249499289210965041030143921125298036031169691257083943217571459011599758072950895265148276016226091230403883268849976231508624993723832652138788890518615448725311352853893394912252317176562885963310105475002807565511724586358031738753669748217158163996582304890231097221792647661125102872740445967504611502378151664511204339370852951156844366587202518854578979341421048697175617153133980907942520315565508172685038720905599422881879768704228148887136278065453229032002163262065286063036780836287800798180200135908172186175803223961587918282710385901596166004043781180785617670583121830770747262753222856333336170439555460914533399699807726285059456456998016844072534299488531537946659375863211161596119015940229467685426675536426870368760526559260361144279145792481641780202799653410373560842239404398156984745040420676863550756931788668764212409710313587602219258434046794708277675413501694130396246630556138079074074571942314478462151828309569371676985254926270052217738228886656143082126594179356382333472012816765421691849579395694081794532709927323018116614492275993268683510072339683472185997052449762662404533645392910256368035692989076494688701214847794484639156992070777819371289570801529770861235600733140457782923974109508642521023272439055493344828677664027847335539665321441908100427092695167162544103336478194873660440862539244720266556525391682457771843716967897709067275028990187603941307316859973759783262087787349677481198308397062931219240217006242769222044654809989883749327060073744235964057376553220162224402556782337898768069395214819948919102296758958844977925159957133805890139419935749974316400024342536849286668484751426160667805886298963796599110857054686695041349438443817692755579388275484345901636317128355793498048384082064915006867996829307629140719016090559691859710971042411703184458132691670073964042479325925237905253665565764570024332299147525101182746477494240058250177020692893693122094743450608777260413533011165023792665285203711180799665751284178323807796488916608028692343111380566724909149292255957764098212952543803745751944357301228435437462756289683233169755085147448439449231324459276773279989621314498736055729603126702379939405477843323525908412433362850550850231499771634427812249749642392032761704069676693356010079489097729543883532244367819495349401237852936116619161284177281827092800949825644502898858141530942897756718401634850206639039837320008915582271406453793257053775535604764172208170029771059454078747060570711733605501032350982279730341479488161267923484230256333895143885090745581843559634577822663001545874534489606992891952956220875204725038600494425135059637475639675936743278933878553801011352602093579266137611751326112161425067921509324138447642543515104599318196830859324809272574590306301563406382076274030722227349444235970123356659105848109683207571714028547089899096636831708987160951365148146425512883742891901323461622140869904649932491365264890178405095487233161996285184668882785549316214709225699709348946535539460017750500173461331334392497964623696598805009781494435064256852126348197378991311163894682001695289354794995846799666491141883764472947414177686319915559709255251864210046442538059549325757553661846828427600948778087892566251042657876244306110056216517343505477436352540770308864761047871932893847816322784533226829721959740167768794319036010888102535986768807324828200753854067339047513766261263087640268578355499411756353988705034825542715333822621704347590223923640236722172118047902181431443313665701709089972976315423129574951310404199027736125548771114300449972675001944699594793541460369696984977221115864061875512883001446241499303356019537678930027535424243401109923747723604201385140972534741365210761972091778625336137021507903180745540991246673763725781526912656877402333891947933674563156829187547565618923076707400379539400797010632669802585642712402743094232434139023807498525920432709704416553274581252604365273985919363897958111460147342325728958084299753800384355988424323774650997034636659509504891569116378211970847303465538374343654172535346050686399676349568538799084843376881813146292491869668286809676680464932605618445213561080570886059657596047377573769267019832647267130031604659761063901807238783376956661431477718351148978295166415090737927240930058199960401854225233185075946201262969106350383766130528223694658389621102039458294295510058704633955619674030613333734964261588760446706678988434449434034513793434054435723371206512349308098698166574526185497706109470208367667068811447467412940827109477136534991131917845213860847929305231166911952936868888235383262811524329893517475530163923218895298266580795902334685586058307813646201251443089212131768480970517221600364997202399403490891919824933685012751104253000270511307459637824213766937463708811953204479118907635702417019631219192420795050985081713629979071962345590865956010036855668698572323814825236125766398787718162454906971736655877830546026372408144999465668577848120628602378558265422600433573751414372367020945396386719273410131286632192124664896678608664172985885218573215542301744736905335994570887369213393261925253845499453981650864680487725639139971497385238298284600672357015223541062707962966980145110935224497921883965160607741415928998411270536106698362346321465089027128315855635676698794591802924024986203865389204894556434658711301088524712069073161842947342895889597596082537705656648065148679280057968686964891956242166832964307629472025176549154602654926457146909165515641989981918314396554890376361441649372880758617786433551968548399627259821618472019382460492140884806056134275691749601911553469346184044904083959092140854517669354418760726860400511456401073171330099855985939252465506110686992612157121950546191876129786170352907658470172514395643816661960382816162772791114502515821681075700757045815574492903116923491578123977581801149306816969953198585503534161957677161326415433972193318065567048285669463243593259524327768569465946218314757637852595758457309082352879081218000640096779892325254260072481763105209495259374112637523919888644623016065986896791718994598517687164291190004127286189045123734666335892919745109513126356891452441470283788451274113700195977613045196596510199003299037623146647605553541906345922907528845636132832896888344400174054596165314715685807439987258473411740234277377148584997769625740737401323674012093527236389024068731091030754389435483020390931780446338461151140855757178282308044462395463361376951231354046609055585803992454042396544902600995239904819119005733001343505565880386895962634430865649556073911780140484642772868341274984007755769629487268283764623589132130210099497285420475234004398164710839572277694238118800133547427751299419455095316955674233365015790152794634807039375964149224311299456032309157402247928353537783884039942842267410260610004486525875134536208936215378783080606921276852822493912713195588272559479368421815244566519918756562411622914552101221888936646280131331063789925726169688007536824112316835140327035700640521214957494146941797071493021549192346642439557358776780667148752076084473715216882262690527853658415111397027696443262734441028985942104176801266964995647624246958861035314431603281390288210711261585412221727611270592808475213198158823005805088554584068658265739659774694110315066518758690457561137049185326235274332712578099710682354306084517450005493607516058783697773663998496670577413914280520309268161527607018575889594860394031825035083394134806389325180611131213115352821998720027823530505828382852349797666211089239621146601587091054760511617187337746258391209550339443964600264160391068101701647173881087624018866778192518550288943301206643935114096869013393246340597164253336347794762200482018684953955320174634547101743468431756067328236579717711289668203210608178243247009264029874178195633731103592160020826851450192798564068048518147476111176892379171946680484715171061783344328702919890819600330040370574822488874862753407729309299715708765294204593145402295537942149706905906628839884599523461229172214732087600515209025525985354971409183804178989376289799315456645772325311414709488749770619838392496048798435726276899640452716921303707953297572276449327591082211023379188537493568244573874305780384835636610942963397559514219419207710161750906194583670522687156856221469328005435192382172663021605274851359976992962698948645026169614099439972904615037753218735477527274797290865912601955210474130805217566239149720569549219641859204405956098509447199979174437176738683238391549344195696890077006013144296108185666599624247038049967461784144622566405826447652677474358048929606613608380856996031742903833557753589020101555393622714880518171047046677917758031928995281708670503040109352547162264440053886431357491700041164547040892581757222073191310692371418351125800846108395473564206961401245172153841495940182986760256445904052402923271062223063353999302117160735938466924857875620589920103010430362861666661830867125846053049431102716545913807603725646370696851991638716754270051653442186416830039500200673114213638484513239957846275743526084071811306059588823943341355148513569357276784522159869692263697973606700336479118980007203453409348936034705262443297695470681481383733704953472414777008498815490508234296074667252415145091450785100225586802328508630740011928543178422066323927307607290982256812352816380588811715038910513611448509227115885655909855376887268673357604475997044156857409736053098728207122569291818737111294834690161522821115243936015238810600782558859405669594248698993743926792917225884397202278739786246622009009498784867797196221055710847075261877166750073873856388669036389359570411126763740941886557219568566180228278735224180968393638171277608489266968259375249001604143219960501590933211887903775569944742284397109780387377998347656939823355172515161378313687951070344221278910414779753123565550947171306369520997910668361367529005996272806152763561420381820570864241990405584991056778210250999973802799063281877427287116368156980049888032716770685864294929511683305772894733021955344519348103101370123241559681588247157811836729973115247855547099882248213283539549188319758128036962511061357520944815913935530110905010564575973755770352911530950327244633942223621227431243254501927738408398551007515869686786602509545823325150083218768812639054402375009650141222905841872689759869289488845018311817406334860503952518768494878390343726458619548840359056990334083261020457232923964263284714154585214678563557918485986942590505615301406731080760423607314405726718520085231947646408904604347877952165054621086310703155406120858382116725654366947339132963246040918701718828905276907797809740099625903739194871924555381534686795787315323367561835596217888603704757945076303218688448212935410196223838137846016128940911751852419449252146720959939606329339185653348532987123360763043285951941287727788198875932240646029666743297881581974276122130113590586943020578619805248399459253089921093216558103676664675023731738601443651883129399746025102452149148030778720923166983006363061971499576940467508805443502218185106903051343899320784052252715583393348425062170107922870733626331141485433312082867135859652199842294577029807866244104756849247926903621612371635187253456743327044338675230858466566485312704533348874809828960711432594656683969184484211144235214822254521903354543802110637919483248533221595309320156076773989950529817324742585321923020424738504584617665713381864884323120241928388132613258515700451640902400289287377090082093680372443511275857716041963177247818954363752403881985944045561664145862948392910207944502729198747334163987752549528304517120809465669196862575737030386318300498699908319154373397001677292915828242140050461875048160490969081584487846925062920944925504348553657689688725471661487054651157006752100372909020712907557404894880345433856100941478050175013932168807019749633467799354070567747730176153711830132651958258872641693994919059155473288220175657124522552235472701356281886086553393533617548764430323296894154964319935514231070982106642105356957407773766817867895318395816171828948153835058155758786438702090010140692811015490736415175876139595654075261282143780077643650264282068010569004519159528795755545204704390611809708953433485186855491917619875068447859546635455923318111713547320585299798067746130451555187400650798608940440320972495619583376834654179320930783759138536225802005436016105472851443327129305651586511834657616759254320908617834073768550209984133628858557816764800666565552008500328094681354648342854178600829430350288379335221748716831776044474343795452277128225701479105564406740257888998407575929033867949775987170891538212294650036309843083150485286298532366530284311773643578595619273184503447268079066756104455880282490126076959764106793135887049683035868851832568738774809510236088188662398960388859076682006969916794117681596142908644040173916126667168552646401905929390149036072241819600798377929509768135102801593576002456120780930459001590925626000646501209376443026318554986259737111706347734574492889900019415142749337189152129138435544424127947323466059676368452437033083985353504057321341370677459349618879266766628055943475214997992992712694626580480603616880034927013141237730586647960835341488177073525580551614477640133356603519935929629856963047954528981089281143021156795456074014041434064649454473326505852161380995780512340971026889939439153757350994797903079741331465038263663930078256735141586664283942470730412465480652012549986040318844039637588961657887268575081485262846532364769684545539751486473924305834123572628891928500908236100900393008069605111428022756158165108587808676312404359192908886349079581086413542967900457615506353075243063163646575151099358255018284639373890939752193956015417167264962073808076090293717154262708596793261300496053137258363249902389602336106652524393429757935970202138220527334162684771824011832308912503736393533468147363195226864674259241118110430151147534935335901310444954622948198547811055403363432133407096059575366678411386411474694113498739396140174975934433090422510174615933574042235113796054685662409986330864585168898526122997041026639647160732961311059637715643440650886887816499459184244158012681355780367636273777079545862877224917406993557668489532402142654618361707532851757365487397020625285093257130491742415364284748800100829840186819557774338357033865033643280288725919304673979911827259386291291179689993779921076402077047402767981567977992697563704515392257480004004019879204300946284728219394932373413295366247095290434222050812731640032772412652489948670949781248044564258943944247873534842320016881220672764227183771073502713384731986401623823450587413842895855256781975958821917255318764736788265381479345534110022172944163947500544248576021009338002427890236688323403897435248175673265257065904782824148508084552328671107094094267920478778774817447991215835506609298538325334730900311931942785423106738599799052935160708245322142681359103114945796031910483320974849876480233981357856605560424260695261058407015166032458220631070451742131314192280760657603900466257849354385215097736501370827426329489195361587610052045393719845114265299360832664224550420043788303935461259450140835734995245729467062902767077021747819403603993168479737861374756366354386484996461954969690620022730358175580930968612353568180068173382159158328215117742764170474584313094959825032510266442108482497365784009389139931144128980647245499725835388162965611350081752973685462357062104890506306731128695905621976458314369421190329400269700680178118047598353463553967272244543505405950873650210649112236098265801252946851851105869780149336940778756895702658513230615490628073362454074729644500528542752628230480370566946857373788018603126002983500148171891940521217178749803586097226229357576991899358511498465542802609691188052530282027889692452399000716506871202985227992479248250586379573786307268062145978723348848836833698884298052678320415657839887688236483464457476462908759300364884145029310929166230269793755098363681373020492682368460191834263207131088037042970313223441491746123275377990850632999618774399026038246962867658219849223686615882146865948550788437535527904102201078746926350667218118542633401755506237831210491917025245390170549055682547750912999421795460722090519332022000331345022303395400774881435358768156885842793258368608441103177396246235943257002986103564562990718330823199963929164329709776218938902458549828560068180559863095962277138173546580765197323797283264576832236752357597936706903162317245000180261529844113814631951552719437394964679760623236827702172422335741400710988669247188256480259203336011125993022861349781487473859852509028209159676879154347260774441821012391181339857428086815210366422541183045213120684557582542752146258980318126292876764619547195219002942243762764705953768964256724314508065322371934688579259619454415155128898128316690149720562707599202519449949903288213152815369801083303225708250775510601576908045804619102230326046690809695455073073029311851695440074739547541228987387184966586811709347870648248297883157311569516147646780602346565527511637977554543755032860211323153012964271901319660139648704542799566759268270259532332391076065715475800802584171458672141121330610150756301988289982864177547770242798759374234995239907113387934596680843956965984756090265174111279890565635232268511195875067902336489257710500148168312403985571390751617697917665326608830350173965747826061166973502491728315272974756102834999841835170883672548379986686966704684413703545637390135278810334748019373459982449889358182993143605966255369563232126096807765097308883611707784582270904938237789535240567354737908322016501377581410347407813442500676914367397217561258388129544252524283604294564824769801753203623931742773785504683898505844662941121767324144548310063889692472036532618288277768300071063393677800686169719907096820367098716263285137254438379134221102397173670740134837730964825106222247147753728605042122521022196059829214465835266071057649066662119903856427743960030614612542770557615150179013270319952168656182171320265856659782490550518035198009835273718216346357948559537926516763082173767085696904600114041172974198714564605030838796388904754776833597423675008380552920339669350264353566770089964758904159055436807045007372752586726850963699318633721029921249086462258224104847433652459531544189665789584355385559201527786582620786385668707630259116639732364331955577871657231858209970124815796732513430243961044808277064717831420370728774323789733410750429603703310125099551119529401842966512410335716038388651139546810884247690079014320828518602756604484372910425943303692140602687674427276667240783571984841842763582125630291004828953914265515371924083784467009680449200108625453279248840112986947508267108615775869729261504799505282939495320282615724981166924000566301928854024334636619522996618009734812261559683553440469900323690990810102982093142326619983204601552538724000066709887357067677261710087378288308454697871015626232260122987171764184123271166472150627925366228605809096115207674886293790882815787816613644488514065903459399980376216992470941120041918648198600953380615669578609616447584774774285056205915125373016205044909693691643484508587362268987585994138458452810414717920598652845657765921442895140497435019925932159304789182554288818705847053370872927513429184513659921935793032625597074597088034952541670732458712579663649655879102332426606241751403482014718948962821304635633887269611257746251793179771358201220545362851432085509273228025255422687171106063000078579474782091420071630389269998769498528346087968668317293292586414622979001204237334417322018912468703268054502742859828233572574551775994636437786831950136478671878118678383042374707023125993725614709606849198744920340972026683128973092696279686190381730062854080944104967193977837896879887440548262892693030812830230527085928599283848616323761734444412624334860533841799079363234875641019673235865089692498945900010971182697370187113387043119426985763454131180108250559912216667251573103776171032280636367111334795237558814274496167379256300725583261035016854291767926803728413473167737931354298694842202823483135684486126118700134401394128576497475177337724829439166443022898436109504098909484658619777479841344827871285686069752172339924119122806173735113710914414582663252570114369956847599120143133387944385476602016679671127543205768037561585166278279543902928818580118908525754917942934286764656345661226276430712253222263894776188761246861749439935324604914645074625437341497974480126416645113808647492233618492751846567920329900945827111736056518003049878202016923091183759436051077331556195932451093593922849622620412441953521869229853007360923091493574133545613491321803754803709510735853173973184530786365169811679704224383026342008871102564127749083496112183134550066651829278863162476266974055762103739508521253514106330665264613031857494873344697926192095100430356626298724095276243348902107754359174701075918949322269940740370746957921349491752772228936549202548086454718038151610188933680264280942150752907340908893187783481300441525268254840957193545753608539631999063474946823142514791319878882368234695264415773809738318727279350332613661580753528457962635902996360291894032345707820056783444823404571072644075882759111349809003509109796683416945617777321249086081635181261836035130039993335027724148985554182238376157083398291592652414088700931486532126358626205476365933737360481029592451277774172740949477838727601531586681078614061567890271717108779293466558139517568341574840954714379689282370356070828123224031636251748988944612228852237201769100584353198287158075280329124361318293599086185824592862976041511324191876138028886955430262339833669231481693875325619986826961411978545394832645899917997188162259690929029811123826259597726396449209600622293612814023982877759121105808067283801281593971299520430332747478264616006943189832271125087978017774411882392822056430002631999683974171724460331634122829188619057981678622615908103323052237006645558329388707805436818585694813109859062858475479959380459360656511227851445879415403322481032525449777390628745101962785484649931710373837025232969234935412964218694847025851748649745917788365825591688464315221755074317505066659206590271112527008632713269857286035480029427729641352574905132900802833281438102858818127610989199415080586520809393857242028610671211776527045132790156056042395696949887203677427738204516320167854812627215108755378214386872444139652687641181580292284934645051135047272419121200763624244115610397557820043763915741558590271737303712428976435010548007480274563515813517092400993051219560281054707995203578414891930386069753888110995712414703676918840579950699171380862574485315045581711077712680486568168325326410628889680194947329071791694731480790765666213666624170997633623049413477564084879348207570053894123484654978686873361367529713839375796391019373128206857259324828922150799387848682205693038980636121914384544732422868613711448324509562618935668121732946572112035816411603153008440809792072348071529895920299509367320039882106303487384917576838110367234232497962290727713486839129668005586318030704028689633916780185754708970312415557650554754062553769068394735060845220185864863021062488035867322043667321656415868267285331975316886150542783812180430619060423189386439156298161192250098247048218290904721556519677960306709605174047775469187981312961984796471875571061384910510359131173030897249253568245155192937411312382703686747344098191515166398294585062719398076541274925461216667454682246106567246887892393504661540657189666536420851003667928267799377714450180846082459930956574916483726053111993589028647477245908948385417807932501077492998999844711080308424893718905927228589763947107508824854008414648252102728788291496732067221740842868835403592105190957159107625637613816435838717320271016694620314274667600799399518168816175326598446205633521934482555211243977850670678422138434479474609665224355365823337125632049676067644615929049171480100487202536361539648701122576858379769017351500967177206151486780025428099586709917664377448182263029196381927703702757447455115987539669519174024491556414148208128963732378022327177883420357202319001386165976101716830899931350360367775818059779760421953955325637742407255875131067335615609187066599436290798337262951600909895724631892466347713536389750854423884260185510202525644845248113481757113651561703882700752678892147189191266333530380819047339771642078735620271519311726462900270516994056208203669706629295671294824919338040687258693746331827995929437923752455512533422238825446708966342327664093460546234629836858149441285360127853140573965389432188948982266969521472046220774284452526189690049711801310447867382078825739567792965841989417617865808920415729719075570706665877325072032711451578387566119162970055948249226185612925241603360375144478151678543998726746348331187672078605969421662329188410749794152801253093130253092863650568234917652782368593806104548822756597457827792574283142576482962578044463493703836194140669821593438791725373439385643630758514411714672349280165137672433339349903266643383739567073187877742352362002977501951346530158881121385686048340717091813749569470166167943359348128010268343834501525752900288405172247363048047433224473098127200206234914579296670033059185740170308805469460098854697593638501254715512656404680725956236617305864501691259724419330887912456515174947249236819098066915970926289818627171395916561755068119403249049520884791979731605657373257247898131929112026622278827018957049800496701686390929724599700695918265370491470538383778158767611424098028001983636689874376263472724797124718279568101417946246598262033984540501003552092284471474752484833659875606455924247985343458064624881859647989604229497737841956004674774985714538319438048146943409178019832851201772289537894999646300624783494700632590940085695733686751791823711054867663881138204600024057594382204363173981942073897026437543184226165788774520645180177473135340952930059795300347377232414987618085977711941107763328995867296743384100775319719729555233980284581739827908104843302187745661463236110793834158413627944930765069398015670994738684451150108281787238875929266398222313151756531801466572599507646517067558998488130046627340936794539838332107664212218181490774954640762601595673217469580548644039972683721304483989307504462338694533721107360842677871065690991869053910931064211484685552346728489425766969197222681355137692972053037277182850569248873702420211859777998264470088563210167355832791572654359730482531040361027013158002615596459982558507220507123802117417332950849806573756320509207925179623661009889233605074958946907164471662913968704844582640804447623821563680539132544961365531950329684226997970854836648506796122566022305685742843980231691749869760910030669978375547230653407302900950466192407985806127084262174336934128722055484716834249525555202819532616986166338144968441413841848217039892244922162367356176530388812257537725328653671840189591125216344622622897597756024913857200676760493819654056695651344754462527740809183670321433349879843081775978443554087831583424023480312020462832743025359969219499962872060104881094932890132555048600173265206193567554243065249069242080943063176898629677478243318239180588122098687164637697932539710386023555981663364531723162253169076444209694848856572212156964051503745368547680600126770552718861651063757340157030697312453232658620270534135694849244905125881174951825207900054427823542014771269188149976956513812409469444841806045031569691959339923946453107108812939594325270041409494625880219023148054803066909721634973422150754775377456140083805468927640502651049193111939754687677226861473806654681857001563910528450691496189607207718235805221585935195395990619356434414384300717476591319934983339389074787185830107948539059937268760398012510452217661295883294007951809191348952789305642677414336002543291829039082813709191914468214798073904025756061955650831611130729318293420014141956553347534162830980015180810426756298610946836484319128948567539843339541685328069332975664041959457605136898669180859365190497344545251868492282865134161430889011304812828124117337196510679760014315239811125216313715040574084050376070058930481509206129021856691706025916450850317871608498170416580591370571132560050947731574140808948265731970224801097975377966141332052271302436123582802323368638634275576034842740646998334414514943009300124016875306865806906030871988273204697648356209564796853284886061441100687070496333440094420521366154607548380483339173220242010963415599384697973048874921624630273534507252189019643144484435330078003427475010766827112138270024192368127774008783919658318210913524232409385241113295097262464520725785016112419123197907528348490189589786766286402807023488133630265720954762758695901621493652837777275663321993771115834286501892218967838453225049008008149540300965518593680606130823353841005902372735704235856082634502055443606490295234521199089478171564548749865153337055907012727131765803925226671187072071639490607063908340492590768160925959577120598034794689753591299460294976980490426334231343419435299186233509703225035614866333383014057385713320729855246309390734660243334974231387187359526670728752822605660468434789501542018773325876439248761148743012020560407071235732602066263955333114801009291473461290597202492163210544471974279193651531939472205940705359437539343163708760783731837387782889498232445551734484043451159848127240795391960794885151257648311070800862011317903004653626075549574827945504298291927565600129209992007967997816879838907913478849840642709286937609386649297997735529892762327749612378437227154288777306387616626303587236567712119860528599762596810137748202483159877132430140303147325422207892630872472488246235297923584985169299263666464484892740711103148844873198528403904374185156011665569347064485068157591441471505232839095985332413171624758700215822256996208065961682238682087748889756472737129431558824251092067167602775895525620180267052010582122218276049253999570398211791068879594496327965124087693993214197476365056051400381149984852322636468578463113993911744367940295173192965381286570949647589024380916347350408785708585615032273395047423937855894848002488218674510965621862292894512631780683776525220199184922834148725507757219058257800711694495666132697372556394323678447533000964885675062974129649949434635123204809182365758259093314318150544309181541189391963338228612512597460585533393105535418579726451166752014666746874948719074024382889113467815936481691643572273792304977659807919582012566738749529913418198159573079113578903169363975344934424454853593364582047232218622315600340876344846367712653044897724361432348397007102756893006456790180673679517490575163755770703771734179246784758603940417243055963366834326932544186306068773197737625810453647004814736155689829189824921331134368873081604442955421153483968156664147461941166622263276594255611525978508812640344552558020465110875230647567252496013721569252042965241615005763845612338286590730936620959577470922307960159745025046855200524533036879413630594583775737064839266899604523052229683837568092164450514928737013082916286041389661993606503168141596517432719345848109988156872445548309996107040649205442386426343193837634253745777923042072481223160582555671573046964622120587394562507798635062210443103982742628377589677195247609872450922715112866411527497533471317589630111570536108568968404049728159744535054134753667154908246426055669071364029588006080203023536385281531113296302181758093860337032103704051890503011139833420131228344387857521170755588656442357697669959955308111868652090570387206094559150752675133530569295600659051596757608223652616562873884650972527488992448214474482462805500814530327330440466525785408930962198672180756221185615365562126599470652560603990505552345049854848359430192044774797700414730098031452234174144508829254857437680824562823288209673763790960986852785539461062844734865841634406596254220935824239513632560359624843214524307757771511177653875325296197389194023052762039653927723969698723128379273421576640263628842155625262380784412945256561934371220299243889448527529231950469816363107262202059313741732235323195250910464906215356609798221721382448803963520323070460919364659747555467587385625579534945377082883297758592141037789642767023100526388430669919900810368303416885771142621181235379035781135345477075621135692535703039214770352152944796021939521469286637865099752446383778215213296872875737139683406487148551324806233705798662048156828847216418838992386939253631236955786076224084801639327271795038033224199786773600490812929772044871919044524514740880284632798888875482439046051303534920488414647410239898779398162714557297677037408382284742350954587340061265042098776362634977989067561684368324176134939721360490612917960148987849336775503109707689443270780858508553677694538693868712927578732864471061277447590522486538796410152288160430890590996452085848729291870959140764493146030373471293864048505614919367973034309877839777151854483228394550323655483407742644388782820604708023349081881411360793923916287211771073300547591917962376095434617343052092602186238384998159172565924102625343367840694761743929079023432277144285462549532244641422286991845701121947559637784562705476673028089519505526939107054657034271855319839168329788795113710130964785142473140727850944437039781927438171570415467748630447457137866650817874839307290730041322085925361765612671186168275619043130253023028906994254223225847412171241034586191653778871935909286427956012037565129858627449680383815940122900814372455730267195180798522949512254854394260899194027043439459919078362390539156811025853767341590917316635589582176084704779804290478576738951724567157943212499632250682565377971909557846727266406861750287332733355140625008877574269810564313464680522358674313219078107752258395670876965458656482121844481230663568866623956509349416771282905117379554650090543075500424965887353317993740801194450847510913809151133623203965735416886319098529369316805308797971930273256442062681168543318362898956477625282197498332330753679114281243326464447018458743252615827004899301142383662477524063347506152228617696769593058193661604411207515127447227680189110356230594989438553542941059362215485376856798115959118765993612320595923006822719447322841751055283621055753533937229950200147025166858916728514392895336369580027310656874860032696847042577057632046667734997259548874433763316309548815855912571203079039903299265731928530438197982532959809033624492297481440992999315131868903621514373184101067642996814770817085962789248988617833920067096293227994008978306777141052038483564327342857583848669063660765040449379296082451259416217317743114814364073341562587539650176953996573884781563056547164202305817323530560697303342742592010080240360823668069885558653054646421500273782073260548863733884218388341297842807982398837916450695876845902436930288683536607890742622682676482731119414370381707988009219927429290457691184800273877930913579309268487563351986356528607485203611935315198630074452104738896439623926967400143307951258661598137353788627723392209657000617075054811713591524521644964700538147951629292830098088636206267569560119740513379471888522548719446899983947531407956100522219901172423012907319772951647231200527073684809878617077261645560578881733012269469751288864600858989560834670084362366388331826434623546762141828086921697277067159503256113156557400146774696485845858127073798961763629813940535113256700201924259356521810347274254848403293516941427846372547116352490015078625999527565293827329372400121099393153862986558959431987860531844624825886165566697841381022686162272647655480694658571220037714673586468497431326073163784293469426028958302180707747431832566967166216387183852341992845033603365533923610104732389263763656577178166932584079794423052564988043246553413141233597373078527710851591232480320453517185572892067281067256383065594129809930506118336310031731164578268750414790714434752204950401090156516700697999082441033147842104092624323614186305458016860744609398958710515668104610200588605698158687815159071250135122312518610193542341912215737127605340275363483465868162036349714887212014042721966763490088881678677210684225393561167164988895174455810915957181285948981010698780051098042796956377794037463155641605105998320050890800274238276961106955663712633246961305259124159316163524370464385287869972632356619194386353128827412113585500802173548941779296470277976354670995891160954980806300928662324117088565525809919864210552803077266203791587554084502891541564805199922101167705316134837775815122491962677600932777384180118747629111290920202902636668110993249183796052410825899615051836626701326043710804416495902337022357518520800027511515557365505398101509250415326867967177566967978230931243370173472019796329191270952729131609029011130836037153620420338444151775425530283788971951165224619213959212235402509071217614128022467451758903571908573075490175011577864856574073031250390184657929879855301143639920150865456889624380497582519576770645622500580071617689429809654637442850707935822637443951334829851745654577853725751083143754644108586231198305543487160458527734254896032249379829538349612819693227998082328649913807819746015559306813840135291255700101807540735363024839422339789989947336675060389608213198203656303441368731810418004186309030972779826502839660579291226528853489227086666484112603198182092125733479272643581565340144627007591186405002644161761945191230606671384256990219790083560806983464802639158182072855579821598357069616503324826204060326729235186367673206030958197435941155390988934552349860798803608646329593254089060295161206660634186291407700451090198628173243249113937635158296917661308541653715541745517268893792661263763004909770662509987106933864028259078672634444794949689686963791502982236047079778071984181526151615433831153923738252810220475161350958433350398587531311124461044490385108402909058727251562173226056618716709495968961837776911532988097585122002113992457906593880980700592866766053545338540097657124195639209392923043305665563235526080996914198189186455714841010714923990346899645954160526569018987837331010241013679664640107661459506002883926063314920881757583060461361114604281758696318053824810037803072676348368713346221062499843693193050735387626968320738136707925027607133459906801093532246785610587943907227097745364473229057689689675122637732893234372359322156170229679911719494012150395709151978725714476688113058565731367939771091526033965561836373011660944416223510820100112595981917861571788150894443119951186336407911809752489340612463168337767565009528621861136033994994550260626202327544618713754009799590329581571832362778211584326307219022666465383195364134023255556530372833308306168657374402999025694817199178047669880420190957141427754527445618564268223912948199563789841695538812354920791396809046245376219361388649332945227987061148960713342242429402739100504382007554136024252997120818072901972825467407261906661874037024112161006629360304744399051719339983451339960798763441110723930552619051670305003788525391987260844782867027393663101664247264002736452284340811271553735048221843254936848909172555028863307223200588566441247119384207905324235825187299635363366630069376030108857154811457573120593999759146665558139341166073207672108104412847782744309322237925160209265979337655352739521981307511146080334699992822558306890073853934764473718562241882393100008370592164706491678471295686069344553003738158306130021410579945012673891661001932177692904701356624202773921409469382741712938793864669960853551685086196888797342943214053241545036216425052139430886237438743964141794933653702844541257700483897678858874919811002607028867488935602619595296301405801055351848020470555302050743047291222563500765318622582213410201452715950746565029591329158639500076662924322082604212015204414344027959685672473561729852268446099172756264631444551541051459702534742169876331707660477243926585696481070008349926855758748336560259167308224021470252514424886812490977414382223856248659087181852639339333919832071302024079777691851251328527678022448025578347652945936067485187434144165940603649330626734092672099034784928803787225008803361988529056979800722798549814395618254121574280049065255096783173856478549353358414137933994757245785449580856879696203033263498197424059725204321152098470937508860799751981302053416300240616133227378754068159526211822803920649143708020551376305574885278625919526090185384934397196599036982268777175602878548411211746820642032800562090743855836864720847800796283079306910257201826029014388102475185015311716440679396431374898124910745470196467012875839797640881389808493346220622888852856188096977565476643244527418251133181380043611932328806295188802946895307286852955483568781289166531468014145517564009769694396908585596119496133010438306922202799924716115526509882812482393937282321683819073802238835428850126641554440810067738671183774995055603159828767703059491362350799973632127845855132983667089043241772168600722672631434143060249968798625988302115343053353100045187771692662575836058986777526637286324629691398930511544302401897817249368489349250826870024221845069906833749110587371461176255806479936687485164723438715799847601045675833441067582021025001160985699743875716663898723873633747241842103774092580740948621245098263244435514200031871727072491418719022760120761380011275628453778177503664054395722961446826402624822967557398493682037038990545145426240478962402761287158709105820165098069660198675914035098486008689640302105558378428466043984737383086939934068773729866825605856644670380049279486041077413608591962585790954608480740329865536265192927345375162026639872884930615468048942952706772180360070752155011489100833350369326604811015137972217935253882191853354798060266392795836416832275693633117096418448986066726255711554736731763867517096697565995439898239439420480180861428211348070881199434431891374036270745160672933483058302066146201302488101328573099176216289725860366941552002356072745858442424448606658288914235291043578176809568056701159478657673036742211607141558070848841841325656101854352434280201121094524129452911753775813129980801613457170440254527524990842105337596245044606000989150074135022203453456041359316271112473056111472540841495528652456080477392066824547736611554398300729178863092395199687403629568291761277026352087402363149242091764422521748570186156534109549620112266113878147607577791330332135493527756897506535645846779590404871336466309253805480060842385208207217445311899746720229949417170180167709698375522907602390251488785155784836567583531255403849986883156945368969825711678238137175020012122203406543320359893859465470415989966157791095775357987621282599190638927336220075189929182224289782264178024885213717693359797673171197941423659592646031542210503407162175455423423064974251549562768729434223894030273837527095904117089234983616858154659898767738871803770726379172503842943477409491507425414812028535204323497075776446100015417735568561616621995133927260600528068946363503992462687847971096733592396021823248329866895962178460150993361510618662904513692125364744823059038917305764555408567716410311370471693318269311285946592315612299857278915454903567265202358438497998835607760727546821951367861809534784118990765919530834269558520966219002392359710210282728501410677815990311136094231876000599107416724696837229892117012739455532190316200711395571784735293860920175128345852922364873733603110040049088205156935536502640206829112879272880562642895421406056893414264490279874613828074103953002263797401442157495136867307107265914471292684673892788367786096683327679905370768376497871018512194826769262718966408734176206561653092231299351596203158009982602648029843087359116573540560904953913758940336729620066605529381062302077271350683431911978344177920430647773971976051030049722529650335402460099180904150225338160762739856213434887830212866935887916797253043972791851174277583753310749095831213502402215194826430229749313677321207649583876281303173360185553076661211207624431445091526359703547864322147362539824781277081135686234648192020326310368533172028290964452759906893582963724938989380470115932452349629003192679613018772062954347599959489517283724619844214613460043488574243332707089565746521018949909426842045853722325458390058569815018616724882261141433050301229577264657304443145377274577538593794722354388872609363536481703041355810042932711267419393340794053155597524973454700453758512241349102474405377338832044833943326301554132285722141352429317242554722511540461633218034315573432719691125265758881184725300771573927527651403583595387271790111681556522626142952173564590051965429242895197822757489313936708617088997072170496420612804513411345851775339561976177590777813933792722978647893813616032611197114684455760569231898933149148426669184044668310144474475492240293409537038534687980187556225188573443619660510930592196107163962875862938697668015268871599540223523443253689543260334628698596307656406719192644670967715355640531188814958088485650971004765005336969944397687977225790487434133123505503616270865862587407923534454063582075618165819484199179401954879657198096838702618246177291233897469095464897462492113353877528325524788833403970492557875085461452666242083934102915573786437579397473075967773912881975885429736574962590550933090887485246343746031027138145755694370811166120320053215510051909425773252567073180255586784871309867585679549007019486945020693921100882702963265988913238761908653462092190423992647179568222900686699602274094439282251576514362951360350801301400930591065855899684342715682021816283030614397114903588505121287693379502039656095582154670062499965511023287325264985208283541998962665172668408326778249019052577862005078654185226551297220394019344538215460379509609997501153073002889203436116823728933500837849425383485086460294021828510375812752993154989507392591275839142265097616958832512535358202713234613363964381550594152227512647765189283929317370030979994719490948904356716381678063615106157177648818797088466681560410387966423218434335211084106457144905753197054488436578853547893649101157039217112026182922138439946759030933620120784480936111660777761666346906106642384413856626216951039519010757678962612706377199624219642886770298029890858163134761278367424616953071771952439674184910662001099748189124903611506007795550237119364904366746643479763322004984649569338082261587545901935815881480383175118115569141506156938176960981014821536175141668349525905105147233911403858901138474021629781703042551041978425859860837989871073259854495884401678284807235990139511050874042219511357707705134241310232301896975933873814039928254403235204098812213960928107478794199305946814669411194766546992918454363918591270382701234062060331786354966391403489654106244460269039966426869990858003783759454156805856879100051543565822542927315017142769240129008744812075939083966858005032644034527359180477806150405050817652262908800065244114573658386886415865000067644581116678424849417247992140747640253263855990828238560076242377643273977249106354208508182676499383001231838342195552413559165064474367113612546323830993678917811054779074381602279408201456531897667097704239671880275678764414454739189124738095179344622130526108420869205441140472785342482782668667271894993029091799002277626671280816307821654984925263148336957969795373744717032291072894904116429232949549418366902427881334759833173588343494956144499517608354562215178722029133551087275322410168357174155911315630138926907889456279805669297347420081499429751356899161562490610417956838019112198697185981230271100268851445226931086988384405574294308597587967763046958042207996847158858212865830669914723488322792586155976578560569032166049566154066763445800359381941858604803616879931643501572002466052261284386178423169033159420240463398797829368926844133388116983232707439134458795499532523083936706706328769308626388859128054850652904543558072650112919622012921528210812945339799790742046047973103518841400243648716880835985011218604395227546218071336067191000529297830461360057057554685639920507674063918197220488303796026433040885382949246228043998811513365263755547945372197261093868985835026155085102954275694993009515839351553568966809753422042495108303974602669688826091245336995920898745582753284669860761732552796561246961883497795997272174506357926910313655090779218558415025012529543594558875864950795549209974590262217923323267134378382640101465168719565411691473334709577189390687018979103633241083878858912272394904590842211057357695526602997631236962939097448292325681961467329582458237061132016415640279743630184953078221330840854611959588165169803196565701970408776308708737307247132777183544760002748694897565649126010796262813942078165418784136345381711971138012342445429799476666874194746956325478135758336525651269511765694451273623719902518427342748004766093496674070221583745188095146655239438036989745289055454244214194356372188020747906347121129670659141257068021054169020914763978666391467213481324975258426588044939682406725178340673615821828230900964122565505385343678160206459280017795420395708746655807623921170754509814025601318371298876469332081688719867508097671940040621723017992877583698740824024398801405978229058635366152679321318447390752613538015607166337590132803025103429319862735219616190447095664076254451182579403244251769648625050331654185778081454304009539561692241896436458795594793569490856046934129526990151950674423911895036692760562015626212466622529264647989827015566792493677009975506634211999946816815310522022219064875760364797634074443697527436202172080064806592073307277164241630481587306868661398157150075304456828381835878586484253199724561100209625276821111487247069494259691652599862312506000807300225709147271692893689882720049114476680081721354926940791173403083668644433428551965612812614271049340664136900058737756229101918360016408932583002638244766997524928144225241586326354016755632372643012737509328579162785101503330691124199328429095680719239374901842183582175560378371711181321658425370231559532915393338928447272058492729892652980431993788225475624034171487359020400785547063706608445145223053488844920245354773438350313458642602393075183477085388454607834717571559567717674838306421137396894742787333459503216598388789119432072618854907112149013595248619715285591897006483100334199313925952744074541302316321714399920051447712783532667322838634560587939372381289139763451086153427904336772738636925197967447701753585182124905751897325688716264197712288467351853050521516697549996556991380964331703744626044313058868602426060402537285099238471611719435366101451620096864164006001196184870911843571580220954894172131223175318872014391643891022240679258844864134643824395991750822063542156002671492395076551150916930232821790946998854969745475438223661226359865093375750791535855167392342778941776929646909356628362904005734030668990363463318969653047118654736843605118433500637658570729683259246043833837049336029823933860749732311440875011060139051886540473695076154052146980123705697710977833994909899997420572591852701857606798060448216431717041736695486675129497883931957906259555499856262661196052317535166761043923666318761139707962805300757605330460226823980343703728179601442110094604003285823437973992386874929469389147896226165067684645373418202091967931883911278166437817123637585553783838186390230284581183490579214600580699551964792250877537015834391436338776499360474565427407153836060894379014240107222785514291709982376108254097117552823253189208284267781996342717823325862837262357032901957717332938539336910005745645244076387809634411517695061432359219881889786534116090934196891485286183630686223143696504935773766807248007304537867417581277433217108204473134418690233082661843143974368553919400645202304166089042959967745408608321926950366639895278607833671500063391812525875628683673369400194557525183471773380470619398371022332897785923742706136737016905424727884436558307718553524703286135653966385381363074779987169878982611531897978216410158309307978601613364330954260092534827184236788410486523284086582147416019026378336611971154973646832604212420206387322239619931426260943681677075311423490730410649306550882451510895781767186157150498924364802471879451353700648226993914094160771730457381478696216589282106388676129316096316081175784839431672899265248174075319451272745146455432118290711902178830868558456829282949528615700119914982191120760936336383196053062746117805035567604643522656559305927813190798980395883263291332089997926802999627056568509329695035288632142175433175278285852611191654588825122153536660905886301528928430994212380456038012576937611336365376043317360933546220398370400015802720864482275786805258416130361260805846297075588976557977077118272234010043531355395980754694760673716950919854163375610054448125327191293398903511171273346478813557204739902363620102470517312792528513714089786876638805299978585441819844574049082949398831822382849047399236863484561940591075074549443132456707261536316950148485237050360508221485829019878155310409855530529574835444177846482645293178723503509800829271475545840515256834285465310865834868414460187188146734261313238907351784609133613160992459704886372498932103721263962670654020595880764471901769312440034394381236632111252721058543027145115576423602212692429356693848416375541053580318902956102232530860055233896847245062196879108970560917883620482514102876186490605120069369985590785173934832422269598950722537484977892040804712609092944303955221222336093251625008007141792735832761149380126330883346754386001623585796832713417257432921660981165932962546469426843322649324164911752184562399302057371501676304104288572822088429164897485929877341120996484148401565690601926536011656988734589912152087478674179545105042900140645598688929439669799168683300609367174586333244155417979402037145372727426657211369506231359865664417753286743752753316845865674062480499793649545194386704453465616093123097109451090077815619800612648223747398012862505760839390689624981636178735313284177505130024283973707247918119330931131549240317921860650374918518790141901325892585054815906670162913851917104569681148962451498562570718801160850220614315673477929902144821975241458835138376404721000598652450481049410683202415377447711580179944586733472589608770128759713949539083972574504689590659794993154922256475362704744799705046450276005237685293127143812014067814038181334916950144890089396482257050479809697234136896933355247304486891557069631993691756640296144073040577782871800515073065367121624084703122605995579365101088689296031057588043721500122935804866230856581550292387002731339727643990812309597971599812620922011906644697215325656327425428851347493067856352543620627804176546413635085864024688397210827857660237502906833922426884891496998515823383230807189935787350124235912750589451658420404288103424602209196396870115986613730957155752223515300310073875139843871830536058367709502677560949303576733310574269767625241480478574782653319019505515090186741264156202440822710373183688743080183300513041656945449964233708884557454915178743202290464399304145935563585622822448836223780326259326434499241651211027232646369611912953468798891071397964003617640414222847126869305311776986147043352691542553244320757219049962428578765404463761052445106730873240376922578121592959998386833488419027362330592962355155914817868501543235447693473058866453804766426857826317589620666372301312507484053590759265381397101304000573512867586275451567119185141153482558545068007910114623526055774762951199226541116765324922368229185930474907945981434175841751948104713571320944406065844748343130132892074602202833175359596293946509545674716494710686910058362557972830508998053647698271367600610718816804418592006044820716829772047980901715640660219882505911282120184944330243393799174909464315933128976678769991843195443986481422598130949823021198073026345812378804304474220836994900678205632644537033933979730333964247418425318708325458258367092434167523925840914774401717928077033165155977938816711868686575844269792592835891511676080846135730726431324193475206954893864785505818457794632330541032830727007768689269065089762070843162539208453083423613230759428181326966055246033479907144476937355309671856251341812340365651654347727532744366107403574930631766550166029999094443082127396171083713868755807987279187438658604853416300268926683068244393826531190236534871384251823494286389257194142911759458209916007308592767055968403267641757854163913197067287381182441221644718588327341372848595140080766824139186305855313201967675050369520837010281718785511802921142619551248010165456095532968673062990894129826855784270401610439508275691439786409592763723973102189255441478096037641455239732761737575565135781418199449768511751277138410691447745441621280509680099964399917589654271592592948167466849148729858674578646803141670994273989682402975473813094421864424382689947853456048019371010866131690691136910316219202595143409083111767668729945933609177105952649083347310266524081759901645871838907491455737917810700775695273773248285693057512214212523521404750228951572009094238541349558450214253610097922067105915857656432981212577164062945225275311423046918228119110779098086781001521138889363326034367702379822695620224072721947188403982913326200420669174657215582251457667997352664558231651408449589504795190889632193279841495524424390370024362027340641354109995299197967706258706013330066547408624416289590309477950216721896812616133653603327282576290406418433408320131988743139000493846687898034819327768706429231096033547999761709241837755689273689365119598670914799522254309453808275625107912915781705239099722982559005690642444759018482930833702701734253184449376536573981247050443057788798462302169633426047324767703229659392738997497202557075393650322481745476990110531965810953715575387040524798036053064564457122552949598028749054686691575944195883266975862860815604851383179544847703264822046184538666533748481490479316656500022234814041099995913943360253820919428434882848784481879131207640163388265254656683636223377216552466497474529757788470733588373756476199537225760220076334667208316906596315444308309263878865021314064024501583977831776463676945102011719838059775905814044340525324366051521942616461127845726481952213716989592688649831309786065972364661283320373234659180861373336963530698853344785447250293839397710842390073418058630588144005624618670233342592716726401705086567113237534359528011435410559933333322012527277442542627173654781106977926604441157465561908225923047254858798954546025581156690692067428029537882150771404428969530159102867024099680866245312276553257551780603042093943618900336689179168386663103708400597186217041224558292517173754184384957983644536731746786093670861207572004310431224536650111979788172827885657304567849714825602088744901684906689122459042571497384102191286366310761187527971079462906798555086104027690412853178038922255055161577951944335218543014329889987799912735671734002152661186231321995959510697250959466583581667834689219533598760213121401468375485946728030586369229871988081468730181387149013540594689921738387968682462886921972661255418366832957184071417451885639106551912866629246635905781263256136151177416402358175426472013056614998759754876530056662840114711723973725554679626549729619536228210851264627606550101927363100574915159376111699108652417803719037699490616051188267782397131126515098074167052726494907215298361675796187937481546564967715387748704180800861611302275781804011262824358811756436638566942835852137396780879394462604432134210204320185324535371590936731132568845938515168240508667954164245224170491322339753057712201038681111324076077078089749805551484614091012404438834155891848527841644583568992689733853057947223649150139439752723499105903151486826490625634036247535319859008739389906214637306479973526359751158752559220761368410799138530847783994492121387767973515699010401277646573213821175595383631559908573536145908272258906516785238108762290192877164517788871063808987718836670312192120161331724960292409204221976107050584994748198552684359053731037294170527014748046033097822937011802246216799672939563356291758592455258549738805570544346111867776738943816426337078181283617169604931044664957899816177661951193768988846658665717944934097646306251937373036946840096928892235291734094408454055376134151252247345413514519563766275883057205082031277780628446839613909283213816942658014746547087811038450151879036660643057703747912419416915915611411576326604957343549266768064371509091538326268136933579076006245011354071542979292705144223022448073207568819666060055486510249208274575537616384061371711363828457710613477559286836370811229026798167047169182112772788380166113033600902722511096246092914397528199112894170709596524520519250654167389159567377772811220356984022131079816714014782187056068676099656719145193255885978953226556497777451748026499231203165832131425947475166078283285967143637396894078326501853998591057494000872165054296792225137368677609134038879081023636244549538957212538493244472102763986245256047710195325507949519786009520757005336035942529193870758317647376895481700590299246298030461226828688178083868557584222813107800078029924587521206437893442620581736131884717184828171334844773997176384660506158460910472622283198587363440915892699995298505560289393580305789213955886345246428193591079759340832562924523424505650239563427344067517604011392585924693641062648188836053706053814561474123665910290727695880105450400853398694641442948718119893110154770405999147180714201441460291664399466271092150021694396023767028098726411052329513530917216611267651448999227431139453559252989707762156368346128084164151855246206469041136885476983742195280948983618301923007752585385259423114852014268509108325740388502050029723212159705140185235144676481672012800458549994094335917293691707959396947402444127155830675005077124764405227529670594387342804907116076575385916062896834093051453945904817830928713546666692605005463147751761739808970469365170450431060324737170542833371452493492093894195677026198839402512441955176915567242705466429855772442133405546206092585192703644050404833195665631176556512423725118581213971545464617569522122340734145870701645026728672446058761842856003115137942418056626012134158016828752539537582377409430776016063332857364807171864279142866082862568129146804023115277030086188583618692428397010388672457564853579404045103493062316389066167226227330740512952303147468932993418966327850210193237470234633117429793792346791417839446995315603881943526693484365928487523952719392005638195059261315275746905716526960516319560777514556652249712211016535266224508897687303924816389270184378128311812541788001355553995091974490015684995573072946072528176155605905960114557902853807675815478866458842385184575941134891087699447623463463662286852319186820309372093166819654954600740218329249761287849732109414900391919738280770322173039848319594553725178819775460690912002406940000259087151128285163379516583487393084617963697378146474774215615008281393663000486204984807238633814312707537072702838322109797356706125203147018770084920893718042384162933432866566468038487477535805347718662792582537576047621526409843247582065297628670297581543339834746606689214058102860398957099960180009509338746208946452082062409606123927493672206560133406922477679452105045009216769235024692395265946980926822656431418011452398754342891906314061509743722644876219852778903372181117753251877634304376821154179252761008955871803384856866611546866226394599957930145128506718785725435958130990138419644021887710040158022429635906763604063875697705014292826702584358097426865465572079632508980958844485418104708481328534558161600032116091810736838489936983872356144175919949219620209904493884133554433711583844985255867579708809117565909673887515009097594517520825556752545433808098559360073024754364985196658957853850373327163701550832890801354143582253357160916265019803681606343948685650342832425876455212148491915517753821479053743993103799168209979261758884213024005085884959195850397728490651725726109625824883725748778648703348562484085285093942806938126237436607060881869567692882323086164762570691427091903061219007949304791150290919106507992707487867039289637973015664582289901714194637239700566174069293680085063607144445191102316331332303989064979673974563455486964392590881300190360185483183976928633933940509470491958168402166521324753070504573480940126189518071690218873958950723414939977504738264032315025706937542215912878803934467926264413485275010900668016703559608463697260216532851932733026245065426218013337069411302497759110466243062389552946761543658789030942984682407896011684821719892730048888890088512553899124875328066380043733846278547346701693534416525412140060414748339343809794647566645096104534113127168278117886356256228990015453679872421263861830246383370838922746620201384930634034724213944372231887823483856648277652777815457255293789664876693800782581426215004901795118420587735408062668757864234795608589653325877633255139686324630712799616493633445341829300926046167221345007580335424372472717368940568953106634993729988952317136749749754797797206141570833797772892775385216449881641618129931387979901993085087056476040831636849702458108541671499849623846167280223323271306552605574436344010851855030073588191099918971001351021699640398455347633515202207222921411684293748400655874340810797772222514498491029645073575550721209427601182384836295254020711658055018449567409071153800496413090189610663116932587077806358956362432410873058588756035004814723224855613328098438857852530630262833527945899436319353402712047223343164455680505348653513057142562949305379301718497899964015642813160145951770868323620584972333024431827375382255009247988768300214123535327916871193601682413745289840240146912954600381401102485237606461071979892956019233151708972936901775446759365311517489701024538381497040177113377004375386419735154182502973787450796403853194199115566057531345109190670043703650661213055499113629653167939053055175139345376938186322383508527963638122886178782591575872448100560216298146177243189083234618344256105128358236286784499116193662974802582157975992127413339449302772803349130553289912818080791440361667447885398342274213376417417202072107923459260233403508419813672484904200236219284216238273840368472226447069335410899563422122672334297120277275166736069078436257246531936695951545401091926868246223609448895288220798072361242591470891000056282536785220956839202385936674707195177028937644395650253735023382387164667545300420567274044246400582495927297301156655799877448444826847753097864652663804354361807506507966621452353316925798338751020407883716400112189487862264271514828995906624629694497844767741631879898451766045233538374620618091957331231136215954068131505803604651851640377895937695391818758656784315033484187324426983128070890340238491590087385621614363203792208921746572690414028025936312194794080932832092198193966001396124608803364658629536074771664288483682820065150804629018625159880240459256639805804606330704806178449973867601469602818521430665562520524069364147945280287176046059789752649484391459000445577588886473692502399720075929027295876181791986361094914999213656611990776656500587281907582124659906043699057594715225565484697952865954860719234690374462856914637482392760224648683827667697934372918641908866050929727834325018836965429705353652872269033195854197867114080089832355359020181080695685652783419718132784891526840510658630752864673441828056401414442049024959885748591848538675468113247723685905556953320641289620677521917497076108908651504972832539028056097826551889941054150810260980068569458339390613342589774269550205104808612567515818717080980812795256961647307820471186565253734633621424745047891753965181091062132213448524757746553444040621873216810729706752083278745478396456167884393703481573918201747979625262496050844882648696762878290375942053892832163824694089770919618636142467829302523965068647789122185027350942972366682679105149490496908254615162632619774563762777375083611018609542214520674666560831364212475556378357255129556451987495679309144986202159778809197480420277882971027562339469271106844137267910687517261178012719889456917314740950554028693350692322507599806296844948023929809726062639646970618225830653613692634028416254528207216528251903486578183430178234537012390821460510851335850405385912369820384823108886718995662730039425125651783268391455440481987129417103675933768779320231900424649241337821017107910803846992080141061492749992014451330343486368136492058682828032425297917394072781285954804808257479706132274516963410123504936829077031976818496746213973237135285920694986784249350918644663725987150998979270244040395452064772309383668229610115170051645024917978407679893915183989272924122654327903044407806682640405501480219339936666991671757151232474520461516868066035859072606960832777795502231598136005267525152607903678806957636121514484738508061201895567804213137099355330048644061715798298594878172548353286971419630655277249494969289644682097459941843556148999403444520378583887560724204096694190418693932748140498536122931358319844173851512230018335674059059528844867160196439981772610029972630420447164516099662289653271610069255592970341339178797109283128243667954513899886000765340987785057279541715532655133955064379272697526365923869064558150394514822718001807299653349510422242546085802926480157107011207044890520715324633767692653461868085518045245376702928410909335353479641638075495166528589540232018836883629560142949819805194093736994145574961952201888809318039133198138953939752531003075335104329844435024083865646212650792364774315205488990499818937717879274697743604820836810421823758985302361611025847915566325052924165998848591357417739731292771558390953084899002289549582175279156276150548389917357541768821334931273032162680137875082584265969594431762145606417009500516512600982687584040220868481402504224483925767528523670383934448999829051822278973557253081253603621950737289301128448263499246153887554934078591169729927782246930585727360679645926765746000778035901419307961487680510824953346964574876820054936261112542689901137278230575288255449039145622747021763969541091292594789812969715053068880887665689965790558612233793577392690063842042037989590007192690130487160150987920278061284804030273830701979276168688104967156129778261184988171266285093079759640448067255945823588032755112835244574710166243305152428234394356050358947178129218707288278541188141177820174809632942457146830198008405303504814844585447891536695208032301797687283272709788509705828236970697378635111812919012704447204787151301789466576076793855376065533608399897132678976040176132786415334977258883349745540397694535093333912020887309908843995556651751610517799284912790002097410723861011396065829203171692584713053617530720852799286003257149940318643151430603795227959545958344495325205611154525090753375429688088639392864455936558019647123265156877592040161965047153828855281268615106051409117514878092452842267160960461445995186382923650605557434917894863832446998765573882241968397761922059672381269967714710044566006195268986536373262777197502273928471168828094087813194273325665511596031036360020242132578501670644693995069186763238924251633251113620531535675180495791992899481244836435589845811589954267875961728840838301412615034516285266723057834797660887257077369159482927309027179911904103280179083551190023137804716258247693616607132299199312909543643703872100950558048291130532980571782631737105725176113214126424832309937864858773094252980995610209860856548047288124196057111818773854963046667248521927668515406955568387420290241668713834482080669741827597256321011466459591321836658150894333750287326768014458196387069222323522032332586429004827401307106951036200808949347904270170892031931252330869227494918900688661014336764271916096166094475809959718652719294060591451710034208876916077088151368095839527100353955162433069388652352734000957545629136543774644350351556164756741279361450858017495063419326135656869400346933376849394952366474726217117005048662809816443516145460212634805932547056537999543518040775184112582334389144114842480861557378500316377506072561270896646066313038543209046707130873531283456985822905630362387019093701405874062125033691867264345580458494098143377084154403109547179928408921545772940955479227046766636264566139283364941580932731840425452198932108758362491560560022095128982899367022242588856272091530001389067981815129450436908029485653248347702824261657729095543440124185484439838579267058163807538941354174199460904645498847656440190745197575066495430049513679755102752934504074207182492548355731898699144356760125840426090172892101750750615164478843583025875741556081094994435873914976687109149880212341382874313585136127934437908819450913144914993943346292600011802895929492289564164501085847101002566073871239204074491228732791961328332854650704074078385903404282075978765957603765984573437676203695197409476916964545997725811508884828414101409825458331328908316490743258722323908715443201005510073560532567733265976140890278275660070126526486905403245353081743586380067674868341587999067582670917943409344918107222332651124638297131768740997179903244858246667054797670936179739725265911186098829784063054485863329369444292468487207722514483890176852723275770460626525709221453040638993017132881968102006548088475189780521745342209221900792363174856876315754796161104785529562617067096185685305502266416568798150296598438390801944957716168683362725608358729314015773843250790339084716414966337669091286157401607709411116788810645225322890742300531631150077933772679095503702802069091610986729794400555044052336267550404303112515285030956123802160867898901835771234298211814666413692173807607975374340719975449484700247947575719910259742382436808183540943738197351608495269232707728718212990580195762147418185643963859377047455647466024062024211531819000662541261262685552343130724012966583588268903140706123721674730981802298909714066385792444274510189434830968986193142750448124165725796924613405659604230602175463437836208472942048862587410330822712937478414557765154177185845722339802899511194683817321538614072258137037712314926049156692061909388256662132798926330912483255903791732452517042930592643399549340811573413150954458670259923192948433648800630987761140264452894847478317047514336082768339790528401282717639013803403745115531089545087803116170354670953604370098104834046394844592841841595331860210319695569296629252461286425740020090910285673068236995041176717162886906749832293675308735576559893972999732562146975463989011173227954645838023674699210977276827156880494140155867870244501800383449792995433102142229625673477511897018225738400809327338957182332215506471117077624182979490611135204919882039335801637310716230469336787066856854392253013944842636104624599483188888872353251738644253336276916915628581443717922812966138677874900027552935856295888518274959041707964825583068659165896556193336700842362486626737282449632385942044703768680892015229496884724765212115441023691025015860702225868756649267517291324336050219708247817317710883581138649728565886590927185478095551609755886760150798468520482061921972086437480288390139725222889193692720013878622521728924106640398085261820953865865795272079979470740023932929548945454581214568685053741987671934320222115745646841703648393187230578120189709551235365158995340992393249146979031340447365264592694786331639753798733827968700474715683480704758502762827793366478440353757725835579407625509018649320754348703081586273340382067126755683746167819054765061582910900833159130924696986176095468115108495933630274153103223842139915201916413288721356133657286095697661730537181662182281510944062192732827018844994203256185779481676642703681894529215737404726774169901028664173687780331660874693985579451602915275329762701614893121068858586891203145094465779717930987579820594390634078449365936205350684674283920821390404107562262329203434005772115921661606366808766433622982909056519985627065893675420284583705405680128826499715095954936463910788201994271519495016660078675280452095099876836953726733731288442473926956728722288623718010953581567873934738518937470149480269291913013177306942121590895884946192216794741136353539604147283461065364721426483283640508643136112030848029101773516509138950185236883962118801326228136827908150476863632339606821849012637984264136202493699034558133355618696368576608705265072270362667497067107724481864766217871092841054381327193329484316684537067291988792661717286783904968799144454937558297883230681120047785970282457043504644553297651603254884423004593009695838999073100992711459647566275605835536808449419064686971402524573913423164922238116266848564256123632192022504116303865646356918300441162448188857308438146969223675018869533591104711864803971307674223481073735499677506880064675923808706991546395421258362366446197187532170326892612239823752458067123952682892526694957552885724780030480579314694692018229736291951207451826184890942368870425808680283677135616915033653309308554240171321498500826434555583856912587460866947752428637768990359123727283103479032174674163072366639128113465489362504945739483217803899945311636560764095225939622118236138112450916522251018409873475345437907749760354865866512681972745341746034828578810395044594563669140145633666526785687376091622570610556262343598804413058572619670387143117752711121666078089137348205192397906340835984154768831659350935347212929507161628929271608092729384973986757752728214550590141626612150547179163972704807193348102919030700918431036934214470377524041654597443706382448714021824548156521963794321743974444050869391633417397348641421085461466276192430633039567980482208453435222379734296372537668400674858529424163888259404685807958601403504810164559409899545113310621453527104447940937593227823762612282347987771270960810473136171337426270104122027433624191518472607422357619184668836752022680720592008792402519422296382444662686065910091704924483666334639823059226076570091529141696850461362473041720949427384954677028021640093805476513312057707609688098047160170367739809498398595881416902835900446180663706953731470151576519440494871814925883314860416214110574041643964554011310374638053306310696251058601257905663575353826834842503682234939260487055854455342027151851948989952953660455111670011754612722948506449054167981492542582756713244156138623710626102052242747938806612637819632793840909017532421567423180761116287128292511067310057626684921009467721851293438307932479162521536221373707922070040149865145220526483335643656919222673551914541007793460107173093755260651372156437389643450540778846813819893587051835175258138625092884149484061751199216202830829412490269185135976438421290979939752663955946190619222199619699615440216888528734426694691344010952745900102802123832534353674517215791210751179983139151432923133583133433928138160374866987419289330208612248783746731631269199272189621210904885531843587972501420145408699276510413001135255280560693060879336325798531996479237991263364389382948146739054661785969328790076940826423819521801480872451947729562240384447248259110662876291939921147324672089798270432849732911725376171165028854279346627513763021604682988617794826353145363692367209295696310588236020230809781493350616955741254782876267091185565439572492715303852470754900062737247207391780469226345193617991804253388425583291382724889559834845989908685711001255598818442542128902165790413527720721703388236537714022334615018410983136937932678477165230164171795738123605309423870842515386650385763218260678693435070108638928690229589296685298349536601903320554436247703232249432075108161927599801322325975712996793755098443079199275900657761049813240793513876461713086229608199674354629986252741736963143212118892385534874913743893317193593668606782717121858869903827349569212412446086002016822492027342783577090131933100619007899879923757712736369924352704832729087271568642184134997295674178688982220278841187304620064720324928817030879500382046435407172469270132839893087664251751382641466619828424795569126538609392597287910146649070798204038655223458847753101915675361282377562161920437696975504707566864711005794068815789695663725517132123986266373879183215837504159235046782070828139661215192389882444216880227199163011289611892056654436376368395147922519156705650004210540956881145529628650171573807632135634459685956145594624013363324281582440372730521973485085321607170168965213034965562121289527176505812302832246693619523233022438355795414895016947663579993355005400836527678820026616277731737159825663112308104945811942486593850600480508384777245427148125003739258833275633530758106684727261733359978835492611952545392384978586455798814009335955454234818099131010912499374828360202008660958809035690688279218791924912270117780438796826731964565052950186685795931210028022155646790688900575916150517467676594300248428031025954396332216494323691609598130909319450329770401683239374007039682877771241128487324015446166143275137334636154824522490185254411238796823153563477273735197193911091908956966863763988415095135387735171995724148707741440244904433390494880465852158958983609778883064680591649819797057041143304262537414163466912346992577742159702885529619171228594282940490311144843560719844211010801023010891377173575426183785313998260394613516986009413446050230115972989408258892915751317063973731566768258731094411300644604784390593194228881559206164905012848174887181301101749228564744875542498794425736519056051601073451302533686414154705016609846124987606996605105466311576569831011677251906870892537642948342682780157989146388695489564659697679055805040452156597719871016313029970984115335075343453929643935734215440462110808250433754856029067056350201586015703049397358022496769541662415055602848995315704838217793770963924532641957240599516826408197069271862904057507909401106044385980171319899829272814873697369938345079960276736192991673610516505894407440165124957626014932014452736747526168853343210264783577646179685304858114645422042078176002485664373349618819859284899768657052203263131247912061579294790933362046715357383684202249384482718949897911211295750999118894204569392311952337255799961035840523352580015382650849888541466135063121608308263839709374563959078793452030012039628243493279545928083878806719397988996590600653341000964058653888967800205993715917610092358420682403438563951572385664244347740970889936736206436373709078728409795920622938574233578349402385395174542415690480089271655008584460341159050187638635404632626714281017956806246053342062487173285761101455793187201801060396679200814304400516295475718516890620346811144275182647094731200763869677535946654673408497631273111341148381715842295781339860577867138665427370276707090791576473554262747966450207664715511398730711357779077702146717415683086657297855673176207172036790191018174927926784008120174539711239046937608312913165717553203230545402394669282537003225414365229093680237760954579416572788496683973848647958088644740974233157220406245743153416284352331367866495102357322485456528880580105782245439817622363507038931032587788832903673092948088465593154511077444670027808281684225490961668237935373962758579324971432241852595361692858352962045871875348493669344188389302900847254151332076995242774749394336453352452322414964486354851885934647816113348378280947877549624563888437139347304570135800723497653048336599156180151696752886802542437859799088956977195818162377456996522961139502116567202850333218154041542479991557435703139152784930176909347201315586050355291243520786252772492201882202706341080545937040243828238204450493929387106455395352350115374954329112763403292276121195124052020008960445912833968134088801076530961749305446121125078504116082140168839932508188153565057034499117004425455780920145571137531345848982331373636532205314617712495545877936204258242525085744856864002274841031841496128818227075224546097717004176207977017633472111023115972587357039626971086458355529912842149920322388604214906312410766204711167551512026124645147247678912599619123866367773202976555446621518529126756938943704618941956318296356288439967444405894031917994559569779348776336255490588094054724678627940539474112445499258341816824714040818305211833137015508956754001378060382883891564895453480205763144206484345173659432344899230161106196998324702474302545961632830757456024730855063865947158825643574171940665864431198353855486524976251083101770338246930564040177696390846831002840247800966361016077286729546579740344963078680953202771084762958824969832555965466612614883850205027499862398042858992815275048326793418004737135447216298856060491858758324571732119702648901208497142457080934450544476455049159210345405640828490098506332805922150846602677822754837922745381387873919858177069614293524893778589885174417396385413416918168446219199675220346694548014519463319409742024552718536154850654763065792029744722828657393766107927095757078338908680482359565979829395924263694871526700986374102279912682441664531347572477968074817921611904886380585284325527848618147950971762731170996869858926355555541992704710867574919080002665504885370825074241143022495316484783257074669405945512228894851790576596243064166413695081574011345592607609004707520819444917968699848253889886261337813454724489242951336864816456588822433005508156466273075426469378507738396566043367097706871515972562999336567256358894427601784295824496039903802873978626538654238969490641431737802625583222947744731825841724149751608021875545103502588295837542811927697819853441314758877214771158731926152216015508297683440697080055667565129073845733043731005762542901669919564812822293240800841560713992770307925591821539095529645847990668810084564323827903353776103383666588185843911851042368917932254697072731246784077130262229518421996419587761562597214814130624943854590270174385024408778892906763839117720260610712071091427922684260226803438660078895207421056207469111128466869368880381218306735508042272104146740599135007537253471377502208499848705794373613574707859059585917356088507990314603281638203760269916797574828214784440779251356056894930020434620617820586061057936644695526016284156347659709909440298722497630162496836858358526138556928736964548865742059689126650396191073596293831366857161718739025440520968047415516644360411168227582172230107639070522388176612130135913964212840647590229108527789324439786802162226064405641683601269880852963675686673273509388233055309118909290573519767394221978289253982088881385874850051414536805804475989481660925845489578891307043282961589366102873670640654465447553539433975616838826862796607413694719536989266584576836675104806730788350695538148511602482628088504488726509600256222453465562922995786880397959460336822543206157349383717475842992990830902960560097294681187000996527264192222907467401920072873842407802160543896273393282807545052926065197039416417771754754518684196333106472616979549968103255111126708860506557896010855145582002627627266780315604921699377188073912987354114139377454004476202764308684711898286228088531572688039440257992506224179217037771361339964545541817022180572982139070434341387349730746066806672225414078688210129594145316912161332673774048108036222739226629487964434696404945896214832565319945153842864720279724703425487721207200585392493530797037963145534031974093313162111272867928978387972459500323289325920170456289610680022443629588302027807839452885945989310548701291408538002938953000419002179516936606498734258920192155893903044417575877908752571677286512088962096944787211106560892141399925276539328831696611261013136729069503866069465196281765821528880017714516164489624595004745151927163260166749153153734277655354632415339525080625110145125471502767761188072213873131028912930922229142983488827832821953171671013428956337798880282344981026425453992212349087218344018203941064420522368500483050802619257796176315637152807236079642275776678352383120336652359451640717717193694832260990068305854238044199949628585276314439303977714377718369720722236604494386898116803171780554422222042566524586555957025528758731690807746407340486200413218864421924115152715327930824177834863867151854323414162160871678823229601466596022288504240689683573435167601933322805374476798755204298100789677326352529967761738099914223561552299210576477184305126036770048566338417473714746081078128781624987648565897995978565690216419052379962396364091579098491747630877546300602729705530789336350392917916595893642494028376259508032342339724327154927451156531889104561709721626079591093885129586021962041629697828800331240981513575038149589394502822721979111435936280664816172805410679426930081556849234894930102844320370528453928307702762345326066781749582810973101366550125343803970208564502722818727348948508056354335553665999198870316720689438081563218234400942834456150028645292461284171915825293941105648256654820039045142089676155627135515935701688230153200176283526873539451796866640324696010088868563442958110653973116740863465568623258455905461179038189640411795589060366007543458324824912146085863297191110714486595866709732243125983557873221237123985917089372643685816640265626963887193018550421326927839819417893374482162789930073165550042765984677690137812641537231987045098635048972842314485430466467907283466980359396607483396271570315410932880786180640744764776481117027583052377741955002368567381767388726033266887073945711699336298692496710238431905188508160568369665054886809347005885590686940834020815218101821096733757692829311137061351768342561763572234049546077157965862088736575610286842365227405349375435924165024406819229354081434356773198771564413901036848198713071835240883451164719962508542353127317384053915919699856760096835556345949590273086198258314008484549452292361120482578528670287043181104565185877879625457134416637146754655881292648306261189659486234082517373380889880994041668469495940435442003081281575983956281592973551409006797890873492630126844793830871828256463212739083443965257682633438069127142408945557599734107476226733458028992523880832860061521765623305753741598752626790337006646042064756701475994643332217970796314503756193840588674155190986256695581314080517394868450452644585869706963885489796208773189500001667896690948306388681196207701622130837260318331788625655509885897966749442122660806184683715838306627986258023464525579745829260915612967116147101177337422486150874673577578384955964087947050544202816708387723768150325028220799058036402428226401069594278108847297249849203193415765042244803925536867164233149006219259041845883390727420153974558486298807913134956205454170199410882294507572298121913302944763802788938158221721061109590651684242343175212626545448203664701057919892741782627803051261720249394036149532276073729227184488609366246531866545091117508920232499942421115006704258589576205879134308129872813333111694670677746582805908000517836989061272752095550437528053332621115041559993211815110812058601065167626604263692970839483800880115009633531684751037380851232690951522551537971670111501879636494688658892388399686894985702118107150101824708616874158664391456283675566985911748170324442087163040643118166107932767085326617513737742184538093864910015431532909255641399703885584936123869422869017550412091011771305463976005851409828357667028919557045936423510168174987383511524707060401997228617122417033743418138135118661067082810661598462381194221190946065733009881389902125443495460577116007853104794436665142030302257778559523575997103545585007787794946694004707751794739244290799866874500138709836740292173383030130929355775581914463380179435886521769211476410918770260501141778557092455802974746172902757120135323864005778837386615157880079167083735668306062601062524031101246318587008334723991360028765889821474660516387750444948314356776536600278716859969228533136227755905863456737478250279237785069266112008412714547754965455207073608537879402855283757684248257079247709009949318832287390869358686892843605856656991508602477976624270623228126534232884513386877582804037567622695559313632062872794993180792243537229660606954804792943749224893172910112202549706655948801502615215791073448943358552847147556256247554759936743655752552634159799773262557239681991457787176880577276470245767765828970643309900473788533497626554579108494095909628355690546775523971891308885751478804621168630263683443368655883689458779498057598981690560673513615049784233127017782088058531952903696707003781296177358422569351880546570394696424395146931138284399949467890208596382784763840324579561873337075017422834554285848398524289465315898716103861786535916232493632379564771368780634577942112200094679297545179320701685351792585048591258390820857353911896932305362801483546247166752442443535429878194216511085760443808410808842259397642265944960706531373893143703684692383679182193792543454205107068097787216269125354145375120308118207645150961732040992841460510556780532281580232416298622655507624220582919836320378258343084048039879757793874244327018770817068266512827520470919080477993661490706558841253296525779769202923355583071684572168655283792676620226672429655918672565641101974856166931150435790093239232795701578905117110561376718002123590290057044524422218167653043703157039253557582284459372527747735394469372700701456872362616863895530375081608628712818555097301619460854582363038464093124552525857898099721712471479176416250274726886548409666970395768938262993871168377096089079494255550936418797277843387428541306929640457086944900852006650351889701204616034201730785707272953361998545267839202242038363243106931693852715792355213430269896881665570050760371586782153290034227563674696395067175774146301607897202473088243413571133128444765442044837194028270558829636532982991680111718969055378166735006028942811440175455330549074626752124164876261485401042551443854739299405953521022057647014932042767550130328743043707700976095628019244344097626515374486397944407245312057957288424681973156298242684235990376366159214290711634557977257707670805442859248589870619662193012830765357903242080806922805899962071705750322899737343779901585415120199645132662870627275357325507286594021866153008921207540110749545614689790044377603513770975089828725566082261072203011495439624032459928646484552454287806109020667662159406141278790363899440567601095388746291483160979274419743245321001777047320429968778686317791702013741675908440668086399356268249521449713590020373099293867661541426937856782383617465446802196591520052016105431070382261489509475748888320793132398468911287572899111441940946631727482328402051366470483195362281394824069457322070167589538225701640179721897692818423091767249805612165156889649306309551903377891330257125318755256779806999736951526213062957510796857046415306083836984283977819392434124418859336106572410274082932943586062796115731630774316812779037670640051898553766846187665702275242138968617231501960398173448430965370373586386012441008964640878619081601572977598001632034067941125546241180047494372141003303312203706256352081067033279992394937690017466662214000090859569232166007113851378680867891177597661679852047215486606371599878585368491243778789543789336478740498199525815695770837921835858830285305653860434929929179130769508685521371571295448894180772115415750457241701821596209626658348850699896129343964541461746908927332911452068837306875883617449276736381591477833098529387680518432378398763541639293452876365665367894728231860856521222018381259569934770296484100274697018211592472292229024173405116079035136865785161459572246033445186685878480549253701345497166960046296991574978505090599002894282532535755453327857485473830346307665953954037315079453633399568394229179860935990373663780012102940082511662779775475642781994099024750902860255568587288242785393843208326212981776830561260479606370570136814838773415490342992689877526254302155541800650819341108467891267319373952799001387633773654412861417839805540453209529713598922336079605651743730932093490769045986346165492182604076558477565984563979011074750459817155104987623994273021724511364141992121869525834466871700841704777217464060821668462249028845414593610642891021560429957682407332367830221393843428497577769205432252874564426843559587860847339598562966881242707834132581857544206941054291360598105765401277464709033863028266155818406889006781924718338317633518296459936315379730796408543894361451315504758184670832726417851318291089144694881330141051728981726127802447498905138548399287127903235734011720459500379885991666230235306751115307558137996603593803324034262152663294520890706051207529509594685035832296542101374189808875437501838037982573024221059067953120218400025131362296375788895687485254730872203901469104323625422582810420852969874979008842012361186276592854012752295302409051989226080463386816226044353725169842450698078843242188253913123218726553398025444465913925245268638346539574556697262364663971752875324710594932118821304204614349661936878249545184152956388829476143736998403533591258718043937312973280039498810218409463481585821143780451574550689940532086224017031616839637190912376767047492422370189642514270357868055067985382336285948592349707456472778865628756418708429753537089418951864066079748711903205166229328299803380164639255998619100791546358735358402633344497363329010727849282435161788353375883219391861417114144856196971679058082423611663821135321155931662204005604941465160723004140044692790436040697122470165245766858378662872888319485854138164859091962550222500878682364144790156762067994587325989698788947520333003530824798342853605075212722685496729366093376267694385437004169048456347235332544006758153896572444649622500227903794494592371649329631112909166390256442968701573963597702597367730302244703960571148945443445080246962902093241358885029497152975784215944959706862370532138091225527194051067370692370708678194278142695110077594290467258293134550142527045253834676407838516266811475621400187504857254260649696228571765036423989200457681974183508494450592118487401481836265345749429182946376998492225638073046217270016995534087975004470482702082809736850847240056652867501833430927320705767714872115657722260564724712630768610686763155778840114120754670030995876382152647444871826334668963825363621789751389268990313380100645888671322759069072644742258709432793724673659705545725814508977968040372137776897416976365215468043737778052913686916802990676848921100494257542114066141936407666793804623676619938274761442833795834092548981315913222562764713356634441949273443873806719501592946343231306252375758329888006323626848801472086004934283882716204217449183313648471290797152823850994686514381093270256928006719122575214812495185835486778572675290806295227729241367327904918589559391123584585386795300935739928319130017651680003139646628914710509566034135880124712675104185838928760270060633690706414075704912884294300775422630964889064189257947820669092988821967591489451066217010377377769668266837978324413320053972138839233684944619831391132329011764093911678808089762707676539815374190708111269638566329782357076806713583724560878777325521580810321777829895850805750106795167443068689334235174977589464966024468953590128787681549822777040515982849824307345951081204141335885374500422374153581903053582926881065130417344681473605352239505647882077255329377194103307797931076046330489089720964533216246716450871229059767321244079245427510808446585495527026832202670622768219314214470574429608671090789625533650507904459289473473969761927476938855130219111819915449181416771968414745591532284146506738184231195459584562278259812267303836718986852621070391541588709295491699561366845560645820630851229929622975736665602564018252022252463271185706270751287443982453966070252128432553723818767819642006897640970667259934582238492913524775081026442549828348849599786442884197075186514871256711601846950761672581039333916443916199970468777293634478634259989018630066156018800622570140524899979187338518412209990992573741215039186869501041681331463714595734850570008005358283227562523840229355531181337680059249452633278940185726848863417576279769732997351965367794600479433217807610722756984336373024461342436509139553988163343154441427791351345136434467997636534066833227269844895125821767734244775251837620207106210430616310616294360822965077428249042861616907087572749844346203008485768884591638035756392398385598338066196740887937533506979604066251300029579747449594095114375395355018187851256987092582603411951480299137122307746881052306842107082683318105351101583398341463010346777229340690334054021703346526304116726169602789035106274150609344417679686916045544365755462404602489475165978744340174667353665873108178358419199911038952149867276156017331825524641043195240386891663747055245485423941293982918310445221062598432320651812887895174047684078556230865370301531102112933179531360645379519263292356848267335840358523789068785897346710744430505898903307424357710525520333045594395542356447204113175062214983083170200738710504275665334817015570361418051730816415437755718203155280858232555090259933677401348384941291249866519095276576217030480527931242591188101150603294560035548784923422501555265862642073201247354738527025792862972383198396312097045481052742636300806686182025878698081803260832784032584093980314844746517505846677269503953519710933600083160663113053889276458662841304838067019650965749369619648846526359789266339181239982749273493175580005509057578842605024415828034796489926727329130509642907693152214065302551270912351240847260137290233127935281286643594973318852238556286340023599292999626494667815663776544657792785005586369530209937950975424233827639051495659716213808899709972281484640180114557162356187697149871283117819308659882028064754909909285897454722291055221701874851096140216366764277861236688063174407933452126472512591710520839798432493861318818722142344526767364637980394244796520023838065897940261065529352263727642742480719823104604733991828231379375671635056670151851018589779143812153480042953831966656057570109634097342472284277813606029058746982378293149267748596918998083833828709013977250972160275036357033059345437821474597136421546328423668887649262225619307059509691722182576460183440404634497484841043359038844312989928059121478137495865887231264596030493505440925390679395493097496181956401584480034966807244225095314887207449946236963808024443120256472467098692012675970461073935702032576000391210176997218565354474167525589794314537757764660850768063055768527848898498880896641690432937742772671803935888929307159268587887396593641019501903248757523774180090254806053626578324072902581519331244580319737058834060225352925392357272049622555256268988646124781979381845089667923680986803285425298948410277967457130446981008230561186210575897619777443389515404299782929171939364538825797387671056453928329676486585729147683953784580337166471607693034489877597953393880075297658199654250908399896854301894414428612447031739635016554437557307965847389705857423200340323657433526068559195355532841681901703503948916332231789206887857604158317558767702558808049217262920831082088358329156873946386693494880968145655675607908748839734779453948710037107827205999027481265084579298288826232923873725911854497261146295374290793367872534146749654594075043718107189395223030519834159477108677810736932809992791740704469435530613468118680707582850015686566872039134461900718848143018900434592780810385427221854476752096043692354423036425160568388384541836390186235173054488564554704509903498175634933228344516700966616388690106972805088940996231022751695762181459916239216484677621513710191930784863510606569529293923558412809907274264751746187030078411099155149988236456438671389950699134690520418327653805607206407234769153146153696242891595444771363401707294620427127087987317989688988537151769512148037783242857739461185245278133583087064393758587153306447748134451185493118672495265047176920032595954631640495524040507952582901384378996214537973386823493508083131450998732636637418429153586857226943687887685394028926680310760759120167790520327184318257482437775807758877916911183762867501073115788703344621247343123054212054589954783470029201031494529559664220052596935419553247344062299252763376076519395130544386047681374504315519805295491477556548083887810874726188676456088815035512745044390018877736159441971011575279672096400081250622325010664200475611512471208334514876601810252151404479398466437372489645772599310845351487227748450393964293391334626772995272306775725771588422358010872334332168169337124234618023260327584052286796593140064593944261415258676430089228252823568366947552779530915271601801468920283280808763007267012958433488900886862938757859586431326793746965782860496758809583583780383979292990177621228309893871693173729500726842421588827843875340348974200441223382062706132992515634012429228775901978453439862836912223121332676600941487966202520592188970312024122988703285897601182130028102642153406166466803365113765264541640499532269334083304473177225248306192848888270361689921435505388557058582781135793493506739548707548430526624823988961992220695655459700802915658585543470784092522145325472831099573265411116975024737616067654266198038594607373957895068704520595989066471643712016615763744816043043614356031697648842640046434451223459650802559511137849555285275827768186476719087725029687254211663608877730303265473556166592224812465270276248856652059467087744617526242586661255581928407985562529824265656225590062934718857587825407530497010678442719799445786554681668246661895159450117177597385350217439156261120494171911502146354778090517120267069079007601227936098247867615199342447794730575932531605982759475639379323951387490150475730925781793964272249702214747720468353184561346765251843934451961870034767788625342698199912216481595934972410518900775426018255865461038346889143961670050217732845398011707370984473593087059231669417144969297102727110941799094310862263322456905067327714354311044479172627548402464566019519778714549782676728357944307528520773257855163398332977712027631493501750657663596573083427258960531392369441400493505818397209471078196186707580577739903390766928661111775460009943444930708808708234787234809338111917130408410985408013364072448670858390495288680776948822654185289332349641744736228492550032191122511365194664736842208045728589117079873236490620825913939370723691718909069292400996355134663378672001373825229530805890148111686698980063004870329736868252644543962474577543898909791557935120581059100699196549119667743504559737460798444337727329165329022579626063836682834371146323893661978904489720615917557833903707324553319652302145961201933549660892346545555380431170254986773380739534534034389313169472347154765108280291552174741415929634511640262722774282711746616210120474313069290901845376072776608338724650505266578008767547219012414291302331421711424428824349488062567066251156674526451247228602398035140947210757968415518604522374809938645353503233569162413175794658815653911999146814414918903353085227979958977121714448561169152933337434004340762618788819636607105218473026501620392452846499233532650181592988327265887680599103574394444092288682116108461239321419864072449370581412293873089775429327930124822238537639219847004899207410630059815123728092255303550571399975648951085887885133795396674692845055594378761163276411586998171056155501394208441592847023121831707947401262258274798999099704476773517148586824111877793514397704277034082705581995358213516635668999925055795296345587357601075975653530442885790800892380393696132659535317186574499572388657626052219352574077761368823127699356959129237866898019252190732243334340553151271398474129297444931278340178238707720918865059924571666994542072007348276836533993462083665784821905438719327237272304401946818469397684181400170117391969676511904499065395039901129629699260397715091171544414742888998268170767537366292621130687702572158267090693465834594989899724861800645111187874065816887126730310949655297116250960202837030189591408442437002173720770557128058071550645056278695133146398732914019952344433655959669251913868118466150048141357492344736412139677486049398614774455396097671712424764093392703914015201935293806602500311698168177456192826188747533215645412245935651480188312518380845637215493509034512904721849115104373848728902450762173526472923549245211216882537279170460967599701336323152959293282208858182865922869380186904617940263368443450525403598883101585734483815835434443702325884687997307103023746811899242024356399299700710815627407394622180958085993085756934325901466860477489397740366407817620139432779008341765950107097812523379742480932316195793187636373767294266923528089423807983581104268583765510558141835271195584105221533562258075581622187201254144406736730630164818088934896077810101194322670176478497335598923055845580178262842801825987469147604027854864468522172391979513003555669069343171514100705345989635069637385095596755662949413331959203094292607574676142799389999205735324744938732231843412997747747338039457298987327643825888493026636974656499582418858834266163051029303641797914506008110391188137065242954299745419801825352300042450516780797908726502671869603422142442609673068628314290417443197776983377420931658672034457591147836679412159177529309723759212654105295003690480358268150949779630757605744296420306500285733310652473763585090156927094617084791931181904766689950262787951405429779864554467338647259891423624598292167630292201961962762969427768501915695348854460370285920536825343784207447014399182849257206596903270317216987529346014595066935381499159776824459574012568977663097388249945851209233614418760164267208075971593583292824934290992457139143862478474367072673200807469059066670216760724018094770925935108997463828682829976053510794805771344182573025255472110600520066637451506531421729014807929373884260819766947910971756019376954051588173785371009107608844831692259502640026316223049235700223412437528356867950117105037511855889771097982898794822085539424083600392742227527045491747324288379847004817982054401097506405493873649263902864014995951438779275023199512677979175301991259500687195455837922542829691279245901055416960942871737288172052846803592163566869766639242000491116519346401389908052936800253740102217335804402770989238705971387308585641341241851851834684174830419152761409669238078437636250960731579506950982722059878170130572903718684976929518918440783674770725517313392353357058346284204893138166180160596842711508995297596089948865996946120614229207616899248304711321385549211546994257085928380767576187150368253116437343860561642358783246996930427880499522066245241797133431825180002614992707844460595783372297242824538215415595751193418382016120181246969389604451255214517858173314818066877110044273367343039040120218489918409709865576412491442940940295606108258538560959765823105632616999485624533196616577942364717874389302968645388807394688033205717311500738844910054130568364754628109144581037746391191391770953591369630938794000849678844257300864173150903633719833565116038272651350682711258731483059056924441700113330656506784973142324710896242234312901933883493763297251988391858565932610577221721567334342738908399650305769208383076569577615050621002235230427997886640891995693684321290105607868542617554770216955885423534301078086410235693777530837818597911794561450558761373824882413272350894952526997922410601553872218665639929647257363784321019218246021118599269442910601842427012187647625397609967102081746774333561876190725824130723667016198680091864690565221199862258051189030570274462508945216271374891926490096016064343142586030079141239268445802127680905480676332815691607320420095457795470398473487019304252398998742565583839599827162985269629965788137020995303230421136353013762155356185245942909937110569732925677591829040133868321410988767005183702464439781450354253657782187647029516531379229157901914483964543475807673602757697737050941045665884332874025601448853269817358315753203631742807854781684196691564521261226305189631245434057145678036439452452151349943190260418519157887265532455734088522026954172355337242868121050474521646358643976858992617633072524547429974471138674054969347857629816697183591978645810502708790224158592654615076622203563510527848226749013594036833534303123066698392346471186706454088184941614602656635064986586613096568093222913246708610967412345518005676488326803037917882199242597272437929248193825708984580125753938258749482147389308102211868189983793859530275569325261008867800641081268718348633567876516605131999689679395028874734880510857886712490954484524118384907859459190141291495830930483685180483782559859277040391112662674415320829536831844027023751152616247606457773661628458561833777805436230960192393346869914803443092542324624870266652826906393246468370704726129669100175020910087859465794052910423797645563847160603819036247238633912177159391167637547815737112048568675180071400849215096554089512074060649680998019268425264092854496458302034895531381058612947713618860115522386321443418786980963749706916291947218778510814036866751202367529199263906269699886522973094041518804340084559851790359511657109033127185325914273955863953427782857977760425763528281135850255245184876299252689919971826055051224195521143003702916523810142187568955580737943463946304404957849816168389704854191700229284051246303619908343161705094497389809799093602835892258486400274439671726174306041887843729929188917582068338064249357078992970936221568414342656320939611665223977476346664807007208931618627077821695895700710784765463119517332174960818290066574650019681956661597820904352310276853514410004483109223918053768505907668425557497762556920394281946051858880988542190667020418871570444856140109307798387140012443221885495291526712363040172221298919432412048455450796472889121509773273188019767046523158434822905712036462492068129113287705222409978168844729812355724361765723656495496626190203868220995070654577885274232046533466985506899599924916232626189564212585488984492986895952298336519825535716237217004457304089840904400038354285223230470606513915237384122381292845809570764522252752157472788864146785491482861332112785746996635705340652172639568019767385066255357229113613552652791406498266974171777928350097745434995614813790168462145663636600806559582377475372173685112564752587853319712833980455263650699466480955468482213398250194597352895459814028546159094159862626143906779921568593912875777887011703813586198881842498139823681123171037364418809875701924866985613694963276616747169932660515771269398711554292358548826074399261028395108471458392055644745334274503852841833854518144792969185684204226692239702762641364010080333964943968631719664452440214077883377203405719577487556064083032283326847868083240730120596391487653096389457953800544942837114233954522973298291751444709280173735016026060534963721325218504305047564319081824442136438103422324605918963267661000259239071577753478859171978505326622288159198593798516342676704489830374420985831822841511975639278892759116863350118781300983302037870409192951671081479238938217545645212087670224899570946973001341054161479101390817031362500776034871346715100299501210575327853445655561879167895114029531202284205419781705674000178382907732377041474894889960025554581163555949658704966736194046937910732421852036734877421664314404617092967776813875411498877928348561527716910133252653109868706563406840417083402565762020486035483276816115784523638647488983021489291386024584184630653834553773602343604718884740274495843461739538033172724712871926717894407034045736136320454677870363010752198778463035486562513829024604795266132522435956851191286171006950732951468253710970709049664713992983204488036925066191454610152715105649240186220179964251384489744962165191551768618200087292839749476955652271329207337453587579368638747514599957034226281164858128707754004388931906066143395659814316137887426457316654642591628309846839653192556490371123702540823244490655936673371872150338720006146400226780167692876670049210879027614578064721932094819841989235908102450478277414040187356752716562549562221165102440759892711681050955495752858201678730175450736854193507928049249336222204740838331011092461632275350543514065674658529026862895939825409186626000365616537136227383454916759650906980105837027045274181674750998211930384981611028009311789933815763302131276413513624151351943021045287237062416032927979395541240063452912820270017461687636209618441789539059172902288269904737583287013400734444589013587269871228992469444004587895771637489392372018057278664839025973800881291324130868341748757596302994251802863951233710690588480437061180001734885638570521159620221954856942076314814351391261191250581575998968340777468776479067951835898831578989432446290112607846342111841511354415481379412643253000005529679576274858668074495442287230703234398968867615889866902697430373727244097753168919951025399103897507282275415467872838956917436292280454112038317226363842185699951035593127958799964258084858747108731339368862924991114499811422853144684569683510592099941377803426973667798777518387722114172364376008771130312366229329990457527175534585368101358483616952494213709850463511778671929049748454567134750055358122419662653442730584884714816069046842560844542312828118166997101324376827001665337804972323031086114927798699627634131334816518470524576257605405528738187950627232918835650327903830871353146869445354515184781331605583955981154168928996681900619318454108086253670313613105534243944151132485923876854499418005435878623679659075990707507666833040947952452717953501650661406302147093405096465701768974294035279067956733097215687747900174562155793470613505802830821083544962101213033573378067883485351775765300350405592260503884583772563197636057735407871336073044643495738677188924330974751994496099291447689579913643927119812306098522650984699542854203857572792953414700722587534413292672976838115404920360289864977203986451834946828786186470564107599882605988631108126777203331208487136392513428656331993868934924746129599413736541253248352418858379023842169055416878353386625878993612255595606040067885496379883624505059248444100458206866447283532523374401631109511980182350314792286356546946316568448692461145288268469977659138395434311915276546294086588740401879175977774581106805122561869681885262126196207702237548129167575356238536488281827990982586204328168971364624814289881326804422611051387832299603413079801719271110462348981736924025800745090120123548775176624104443314398819053161201289046520065378507109009565706131045269426285120882859776087310430414900513028541047561162248446355153151756420241828922802799106069834284795156190618643565831610510311513035200116948426182629458545745926913356687099989716579127521353088651931544589201891100608154617028348862584199390069631507314863194166187062020322445142895791751881071494456499646035664759547092888707379074308271583650367651082463522924180338156920197559382189119634389534299040310740195064645428316899882802753074318171874480950211416788900251270736086772863724668183927758419058937630287852575669187192671252463006091246737257357550908685352744459419855186968653803373805181713725831858870710184629259595874624322569977380998047297188331578862592186156393578402560743651344869067563315018546554600412309793923872393800726939324181471299325720966307532672838569937290142221414362163836478509619947112529500589836875681243828095733750794584442501560733535185632628740801757783758346865923359636260270912644277423782809411781691981114782527506645726044331599882453467707238676439818538580396015237659555442935220791563338789545249424245582494924520880946538436676527369746651237646201287883615589996587802230076463312945184511586539029746775356528306857394713103606744170074899465338393482456704934934989294422783419694417910868595864333019142787086851553656781469787753902810906938434603611265740939534004884437673017968830977482356587536064773253435088125320216881926911576388856987031519144190520157733972739383852826596335870286553557896085293759845459276371176020699779997765121453785522837876521550875991406433862446491872580713884394193867247521255120579218856273218427856409999434478141049518904759159404470188469987316055818974127115189640657570286251340623143777641871811863490956098679715834765141401589170476674426551412461867995382081927453076393251363915151778043089443243323092964383871216581368223563426002562964000779664587164365561278064837416337011610524482239354545230977741691171790808594789790136391933412401710464720208109774490533218080492912403843134165105060987370829699184101906666217643505021949159576611764378242322278648712803518019112383528528766928501831541547835834314126449587674451156911265997394548989494100455831166724787563068428931362404966978106250711027961975834915740818415601796456294714537151427704541384620032681787844822238577410985061695293523872560611391273968573176880025477884922243093737504858957780675500019501993079472811183661206391483777786771038924305748839188124406530502496679973153066773429199797553835890533467898992260986000229886242875744540379516045713312239522436433362129325276209676920465120947715460674534930446787044977667251655198886452858833998488007454034945005564423274046801121509951373258439389442193162358256296936335193111887434182009836005217502062943128351556492481570929234263773742293347924796062234520862499953229040163432364213161719770464277665490573649728947107268588711886899482794732410536925771265778205887067876483821786372416875084664919248763340998463424968580549294164299121082471356382330874191663004966796640671829175703012068688945505473728193338116167770275158841830005862533840272808859650707063596230999325497324602781753477216205417851629280584981103205900068956008352945658369571632808534543872888016633325600057584288866198315742221348504798639136525268567568976418459801942591323440088732926523960544867075144810007123164340441288478010902345095787572236202945402220444384180142766645714282596463728868732791791523008082078642644082989671776432610833859087339333733313722563696876717146704290583804936901800091211167029018006977283936160508769794072571784784544534473037066019255519948392195830795599516760089694464474218572856628503877592911233631842125935671609406010750984466813212317072531212450910113125559053995454001291999781357376650795321743049145611276851253130336740898386767556712449147156355926246318436657551854786051865540790717714726314269868763889664241725775507932387180417586643503992695815310227293576960042098816829340548367017077865636653573736278225968795095672150311920817975852189353612962095671771199171634937052499280496285969868474955170368778821524997565464704316378417436887074324003196407920646986336471250478868964181904395268082031735713263180703529461465217628677483336497845278174177932603050701423325974563730731779083518406855389770837632110409675059264613417847102709029312225670675449239590227459023644595113397593878918133005068596007968897499724414403748722363792215146530880083510405660523262580928134203857562612476182794625352211246657160821728581419581039557560532213065608236627697580128689548140916552842961155606818502085177223989816548248894420665969418296897717687499730510489814364792495571372285723828613390279249840102181479678300771354329097896003843320093402648671253588186381916344074286525293140523359782824822863054013233301152959958511994512655463959134523040587404800864923976684997645445795142462705627928101805485571877296856631773071025487745976645266090601774766575370355917090908456068010550613606088916033455670495325295288306102562384720346788847328026926367750208618865196015341166922098752699712690569735700787041920381604730952509488582249182513843828985115777611042311195048413857433383359939690802407127790792481458919942392388423152779352344304288377110090908703193298287632265926332891254021625138307074107671299803315958289396275807580199266324771015248253531545119103612759846064846522364984504989018170028352590122942857246236309016485865174734040100449195494912299120776864480965401586230411543764114598477958039596082568756676650713129209231842475327706446051505641834587390614222732151357684818036828563709137885357068036766615797776364428102796089841964581210504003886450797054282638194481567345057921093017712627607881891345170110377263478753981861783333812090722499549225416104124311340170188010007223809487210013146339643643183516125468743204285751148835755666919818132798816826662260508418667957119111131004789477280789066223314324986081848460111080979155118059283632396936742104678504523147918963370485484351105443545035672907546252100590877599112988832942950879145080710230915948589118787309837784198610529818079087112427113629822292774391827467129578966161838746609853117719109803163830271749947700325892636035660290092117211951046823096305393432279070485591543014894977660625867375185580614110642305958573902844992568293650295586395267837169152332826256914055077023618880902141772226716441543078758640042010612246453497417762874871447652997050288838496209429001613205790259254034928110533478520174142867549306220739711332340832582433011286151676924649066185753612417238250796413489357129061656363764606215212870481746858100001750872445793814213262763057064872113453050648706417618277064524733021641826725214737764190726650952905804751422866091088400638535774499708540396684747021762456507817279329727921131320001508729088166744336421191784629142848316673301777185184482516890968872426476710341254523232010932672081629990363894226281914451805779318863505448730976243039493269955635958604500084375837792076252072656616972516283488407154151296050137139191312211598789961703922397481769894403317553704322819909073442861778484751535330543538115088081960351254247165031640197977266694317509982456873733404816560734146178951730854233614917913180734189962521862205688582718195235615116173694314657810302631094807205295835834297652080886758820989981120861557428526828079473668932645339679223558698527827090403057708387279552973237457864205863506329348877603223453417566112354619073012107599297814295683352928686381013015883101847966454595429202187077782135846978365645147154604761133946589382263763983453852815160557464496750167572231891982920479869259325377228613489279930615031639540674267674887401483669262778274508813384275289239832218039040660437913001259759285916777097399312327920443923092959663888897430647282028222518615315848032476610964589625565190190330227083988824763902707526868396129587491411584686061197282724948205895441903793115836839697880672181159119665321567607027975034272790674425361757275405038289692648766963806631421532396751237891844075074590903584004208033839779710517301193666222905784181159556866904135327553456529171571545903063159224148653189586392421564679084208322592929122360494978450605964857634428052760386992314336266983765260917046646593234086792047286828121761383036580730308251118946585962413371519234974557441476717843198448769539693028945095585734366030974014929738325798246512153229557564419772957657866072880135172645434680427200123674485922397986385566014074522417366120218214879815495327498092724180996364686022502111534975997701807039656804161810029846116015074603146602824737079522924840224744106938357583844596772664572332159956588856122705997919963083496561601679690806395732391825700554514414074293439687421536818402448224913893243890698934939767571061623044091240637850952173626183252869878884518137224264100111742749216483644680886464298008471094258601937845436999936812152833031485880464424939340799091121817386210410293939992643647803672485979936537549284556262643707670894861903451829647235891678793537877039426738516897235184533445433306037127915647500674973752044223567406231919887545252572480288327147063614369647471846680087483325088934267934617600371791427965664888762934264902664351137601891818621073975444089014016453060737569303215188926126702771371925909555419182363473173096414597376388919691214846016888964775857824406895131868937041484604963298938674094345854595050603421935050505684618480132907166598773992069873351610775899333970434663500386658907257859347356023654757408812347002083691960595188696879215322469063382634740332381798606453463712473364991519919032163793446289661938380434524156393810264947409209576370546753118059568577486900778525343754226315049684501324627849976966323355296238713866400443623829306875161089912900302732759209448983525321845065049644844953792816085025472296092977072226536016556307775426453031029670611584818666704384871492925600063075856701066505239396884803847713431441991680111042777209527145213076152642885403536785073619263736463907900605372954896626079612298999687557966095833273236752480038435839696101878285682851396410848745495348666973406094869038687118128062689547358401437028693243181751471892380433327075906217398521850254313389968950527585248320067458486568515765949545311481753596123107438989828127423457037583882944893672664343701843438568426756275211177725827511034559557220092903130961135311147608807692690309424151394654459615427279504595844234640807274631971049935749788997769118854241860551998785488135958082411486321751077171166595367342562252984713406664754553919692696220824328932705979367051591131406178293136569933583038483978796837262008442199209328532775272614060743531983425843654143575086675935149019225960659694177497137748746622679499054542205811642259309530751667318662159116143707853989479716847565491594071335072743761519276792288770938319774032266200901409717790355611618496791107770227365251926858145095228805687461903998988489963248389323167591506328399739591200573483244153967350633889467053705170857735250516205734198181842458414909738256254705153872605321876717172011134492856873073272867572434909067292415185404943385283954334421729462512585363874029693659173690802700088921153327044793969735250016485866179384403605726844280393634106681769199369070039128019031617873554501600435648733771283281746304881147652268986243247865729132824636204541740492069908216681236501298419807246814269303908526741241676813683291757726251331612747018940316497103419981761686331041696171659030407772570733653404925774014811549114906292754115639763648879407663294312630962110233205680460399168841386304646158329839876195796712483847750760626692150755895196142256956881316006723303401078506190570360854065392502505388785804286160100484089605490805066837539310071188476238571644698357794564928011624170947214987618865262700201576350664786753491252821642884232287917072016174082302356886949075399956279020758954859599021469968200136961754547133855698332259230625090859047606933983532141055298237993842183364314296122675290367449563735747535720422813428748936385263223963177899578468401900680389646825675115649926765817995777626847223298553310569450969583709108082515862898997765437879721970868045687064327436226349533007051867799066879908824069003637623715997864828056032336999509603441303027341278442217707134181726294601538043227915428948486502874164126575990779715144092177213980344164601854537473153254227008737360086738718598411231279270609574431065337983600434414718974728802076106870810583308082218568440250658568339379698017657878530992892255318437036303606160523068210895918145170719391939665902085939249517553571052751509122321881584090529925953171241413178955742727335909338331154249487130190103822696930455941440431427016721336634167057299572786982346235093343026523826817192620122855265148412929534884079965930934855452465855848793514037984028053253834957664523949185104712155754353674533410062847251544407115287541272608929223663821306985037513346618134207973349912658157440777344213872540470159395942099429031422728885133855421931130237344401181469540493872597736015985315426065428728752217146863108535920626963251073713327385783663692023143957665852538987278903472016237758650703982357965832415585056092689399779832989961513919133989743495351238231678282074535822939754514899381364713947242415456635532299729833881022899819641429611384312076292640160267149305328015936394977462487429731383230989992479627904492806001617177278347621703094950803772240279883721171521612081930369473312768275804915009178340811944124563401239558879151861386659717188124769094571001628663785150088878651408775595004317587254863903477957162860842226787281703898491469670440660272591243820128311408403600125138967980463779873473707533818367096301875776099920677748541616294250685752149844489435887114808869924621515318616698356287960351706213587723926208567373718270394054160975340922906658901617932431281547967019596340645322233034251601474853229298513668317743384097093039946527322120160038120225661066319592703980559738638673530212832214601431709395011357327255063513231146435150892760760184485715425897456217200319239005999544977005089815995243470880995856115742144005798769372280282853639323952102066624354036264044839894917944615662751470713431788903874756780339670588214175122049096404433563530458667134149307365616746555098427521725088017615479291840497285031793629212959491375872207560879913073006005587786997708198654280438442046204190825570445007196016684537167762275460384228079913266050151987787865212604102450033423854237924900239631089578059809507499202638417379355213447532330208473544992258203601095318343962030298427831237319754487912291206982824132319835810435454106524206278088443974057024083181974700383299135746922401285927326803058625135539328522085545820016444702937816443664828533596066792927982775726945565768447136897695466117463516382750558695489119194704369084050661335210252865571250190524855186283399065559226223578482757525448111064895737565620201043279141699444428114881214028282425638363082510463145818852996714363352761048275062991076037260299528643282906554030566404777969500790195644628471292932240357940014075175777076746355225778642634948886677683878097428335441886169375292035047740173960675942761548104505140601053324056217328013756820163509112929876359171445501208961201168064213760415960455847792863518593202002074716376489842188016136309677235515391210151969673068044165710371138745344892710316304648379076505006811581218551522729135316371443918125147112314908193375982935231232281260125068874697269343006200605201833291580870534980452941180022609472009071358242391139739968946074635872611362860198741584035266610262898365387770789526378646301754850034134850356364156809134377546896609044839654764339905771969238067802486424939038236577508288699203263879086852910544091085716487642088407155646337292734532503148954232223764588382660838075262093157810048656744584535056930145548239730984155590266941712939662789872483667556551737630703691028659702761485856279721795692123921178974808418470037006439251338230430798230354475285103593879407102434053220763188289432997968033898819617819974374280939432961307379408132933471992158427527642968815258187504809066377639402291063070270720169377444412730216916426906674913871101425573605499412988687899836005788017148024800130284987795883559181912334731008995846805554414225244541629603541344377473168137820090385364124896873571968799267094068720301641548043426975561347673456187052211627394811012332475346428602100644784501262478657279314229074482329750987487449549399017964790053454393610543770498574388032682665222412100214087844423770426400601687958651378532698167115538319478981129810560366523497816221492805449775805319451437897456380635750999024649279835170823193000528221862686852168379668870825788890648292759305192141519857199586703711967961530204769046244848406671586658613901998101636715906816413494563038475910984541265773089154264999412118278813672460510056877665268628845128246696329005063598105746925225761371492120350625980318261634635579310011904934869544833454336339942631856466636678866099002709636220260720700968720783063205764701427885361964300398921005903153215072866791552206051075077931159029859863814793132529411135145257731523399621000653983424233184500232708330153842942336001621376584415257875824741498460214625018234848682285165275819523351194656683923824241750838494168137531981553000862069324469427356523483090581455050176298983809857733879217677602334012662843149910089705698520643992026048187977698789780493306555917397149934651361361857592242536790642647021394636035185744639104574166924549215867741249159141852137059676850178711123952117807428608931560153391625259958355683301115767949181403158434615874773014881222401955861361148542559502495058159264933897485111095682319160545145041937396139934170856415546507235888709883207559504464011124470233160735686471262446754807230825622440241769140257083413893772800016610151472742784521248385315632990266983576852270669033370192945459408182159841827115766759954431291375197328238889951865562124975606004419527961300994617478546809488485406380482791312651082848839347922319701285374649600111970896300197247989143694818063727372508816216961043861561878860823513866978538029276636798495720401654268926646700716306822835291326147801201592502801591427946513706043828964566634474254565644153357274711719821383371507511238468939366717347254186321665684710665899062354873697443663317381177666877575668606828127141131821270568786023931753309798673438866500388102380795101122387267258599601287407943932459506505021476791629556463019714043334089952825529466143654577259134802862663796437138321682908808416533786203008327302682421677410079902609815709046448089497402036923234371648304638306012815015050113417193301980087088391514625624770830574087677681359576533344249174390009175687209537124133485921992290577382163230698542093830771756509055556964657607834543578067613410372085243471812857111425164322205193979738925833725379916223101709499716678150764709445632697095739722569580201986926815422490986826763742362188048405189379679904023393023463546878821645846607374312701768350371108868799541057571704925265627962014409741470819368528104700604776731614427353627315090931268509138340779545555421006685108119877746599562828099258475286545686625155608691881811976422993109347086481405236011377259422293016110832612965666430155336775808900874732258308673914954048593760171365678845183764656355792546368658794304903207715986318728537104154481830189749107547296597649452956309067479697910744738760233243533103655223399673216315983484138384726043492305571721583284415558665472178258430900243234601486349413117153049979562195809933417462396660412989459214784403117244426531311980183296899006436269974062545001197006501952471372788364880364133868711993128018851275178438687439900212299305084705882045323116108848797979701926411201772859818249969040242487646169762398936630239830142343691179574678182247450111514724388394655771975796325328980075941114004024380094077395786407597930932425474077664979111749507283538776529803571229187492486429305096389829145342580618065423131452806277819679291512894705955315667397174388140958327178498156999109247292091910355176679314440176355662754692875846431210267353600564431480735825835972517214936052848820414648393470536285908913140703129839861934181466730105989871948149476331653342355111732944399161338115484344464228481493897787580140778790031405203200618320033540047415395723996348431081628370694914841798022007999493772306978030659941121667217499272441401850510793115554392334835237392110590155116225981050725985774701983491839488173182202362318784319488417702840549560702040165599759810203897260809310133744214047486587284770169322078941006312981387871578083054367704483564848122122096231116166545695517469539242697450900247102384804165647060371349650233878806450370318841042542290703223264651106418888743255760935981412267119080693163722023781424239245359218214814269833761218978833129447733266850697987711430174684703405921751535898293817430573689082354069874410016772306704768053162232251911887675758295191739321832801021773131080393057534785904529697617906961789802403453842502525291970256568969226526056886824912403867595168204411594286259738668159551495896939485071983587186642106687788947653182862953513728524756258052497424838412063666511681879186133164311166562329420193286241777807025090089725231112706707567938571177784075123050092955343229843881447666768457263730665673025167693640911874739596698986591687290251667475308424593761884472646333026751634196888246571654410038688875681546949384450386563930842305990588782147072485946940992355221351392544447901992768640708515383185152686947670058812218093290640915061351704045211234366844866444326331710397471021859367168670664754768240993004592806240845320695170873713697940994327775246737748326523472253779997619980438038256435429229899641557969616835988342514059911134011184663682062554008426621844796038548942625759540365144861805442804185717288140108874754871220535076540099331828108156114854860029437175262206564661286066405208118468644529305495220234875384031602090626538969816216125681002785203942382590841090430052033930091058401654378960248985548099789525109946455478972851470189691891835893714630810005274779246895005580749750930075815586669070286047833875762102651084026169471241164901067566559887355427279106469766876618585046178132387947487465446535935148550508289164268842289916034340583855552783261734315418424061230702105102413571967898420002140143405405763997275198364141944909672869476429014777444241013240997133747627321226449876044954421906281362743247648541342117654267182895708403825555363369043540584532947169776759468960128329464429069537733776337473312874266978363861101968112960659555924808490931051701411043764357273594268917603602904029227678774890079269443753028054685730193049108445011254221333745427059989679776826017574581919541670730619857496037251049603873290495759937138133988609565041286703519140252543956903660555137296161683527936896597308469655829120678210233112456522790155461991695001148807720444429094302439438096551490414004181726982670437339627236073362882508807177807059296254787064858702912332625355018120843676642211595015535265551691764625904362592034673253353747751060922190443048262408417516889156033518376024897029984709120233625933762711034718641743487494253476709049738858112955125051205019646186668589487667674324063858527004840885767682240225856866297722362414529740299509905195882951862513482417315350576310614418212857684075608217698754876438941330480418274065009132810814542628109002217159810815026251282818344423052674681759260799212521012137319350649067890525124453173425881002715873806751065726101007155689783442674872183143051242733062226014490490473008695311183941167721237562052393878017706036952774366738256193329953654085319674208242549664965524571534496082594649415833272094867564935730707900041214126978063341174172480221513707547557435056316477672003822636164514538679297349101516492195693636447013087608973823306342434796309728020269529573343135665166038615938056854274606824960720946497394549703154105285969609644332980201209770739855326689626419121349601566553909241247143033833854170754052135767858171989606260735360871928069770681243896041792508659680531642076640663237164031447449358902343611402643106705986864255683329375063074900739966255469210133817226649599555700682670703747772369111517820084027603465588822226848668099144695761331320886044032499484503314803415236941841852036996418703409344032081699425447780450693849212146222986066480062193491129031525621630853425939059799963738181292859970102441239446758358865025477018004367056778174546488695780909965053642631360984306843696600966651892101059127255187753436594355460380280528336215094228210911128934832229497436954601584183525631072299004334849244797218170039703200074699438291863776932402921236523922751994048529150877185410301053097104267842926279035814308867538737083435073007263267129789298768805663067038878277158712590263776238871594415701716167842176180449389258932229279446837176617868799787675570064078799984875379799642913949415080694805838631683327597445349956031244156727016255293345531855783517586588245701792835112882628924882001446786372115564470368513526275837738977694460895795571256374809250465974023723412718452259109755647337016282470375966988949088893807139672768600033220666851037695799164701451583006635846261395009610879046230717276028084897424874542552687840091725870690018295906506887510298017981337364393164946215034846508740297167231921574368783105439950814971029677478857270667127156421069400840631813855313574762059861182554747791807975099980759191648372613165402180831872732279836385839523525657143818089579934363873470094305853324695578887154783761844363251821269655751646188704092477867888286520056677018935548634577246088526993217720793923475781228142194403769434778053712402820888511146815845389368167986525179215124506985874737625429632640132692017294533562648224379071011913795055099250045048196354210239312069678717869406972258999766997882560442540308865569056309432606595772776414647693104662498557335550630299466399501608160922293545814143443108778713556996530388493654835540136568294786264274253319434434571652869333509995880961786622739811561461789398297444021932329968706231192797667690626868287855018645165883207738278176694552836240566186876892225157703195210918024272575607591965352414915620350441084272983905004188727650331899290985243949782159724343874890847538104584510505286175905947646555802024579209691870785450345244650514889031663020220419765778790129741488901308942692963329754167335402242748677566395034451704626181066252700481821563225344900357127341732165730679588283561590657691261199325026680169289602822345453242149614841147464486804886078527857341366518528313872090743160720902004511570711026293144567079161003018842691365191575612359235220155519092600130571503520111317114826942769474786947862546476028885282393097919486399433829108814014460715534946682670606800390501242859782576662699419088453291288975431125129729240800507824560316189902276268472860786559053674666487558992764041666630170857820041744583958495628632684046366947149068399119584589249923756794405128075316074027005494741269912863903509419048334112669539325434330742435678003934738963866287278840482293544057619437619830700322513255338240958022536561442300062872904816037776016951093554956142942799879309799373115707314259750075893492865307613331263095312222614145935672458633966607292712124766547289398330570860833785501623461302417364888358654837908896917057655941916691600187200340825256403539651760526705657238834705523923034902558230970233616300617387987513378372193056495633764767086171392188347471071724766044516759786553986456124746271193599711140975623852352052299562544108666423077413364381633931452072853875044548365633150989394166344258515034826366907790298523086242641337985943455238004897112889569529257249132879324413935394766608914859404007438603659455187655946772936076852345135014525181394722188850371210809741972184252734698471423612389251476299918945095127480963360722185597150114878231063614568150639419076806791410189263394837634433810540448573993992878233531310536827934157572136382733767407130198794256855413904984215705304617965396320994395408225492449959043040503311608677019366514538779724802849144591789766469996981169441530805457851617396090445328920640762700967190499983012850254813463917705161811542906737685202613890792079905293477277760072086063506935672688881548945184452080915243859084218464897842036883929112284358564220340202333727709792023604013290136462952232729991007879123085152420004259519699955966736198652869729126455813289823198927561335792350591813291136198252149409284297710825360376180151585718525472678737788903005017868289565056122442196182516127299432275735792723535941712638777337243376802872715557560502036143324884804490710672513236455635184055918598162578369235831842366374176850894805944835982749150984055547099971573038075636921606395617904317963729623085059436190669496841312663557097723882409108583573491203121471898037651422631324044053703432550129194039653013755945175413202408408201981581354589190133607217307530620563743970900470483339503065072757005950933452502289402476786045353518887833353931160323823794693865218677606109047988803986734716792634576743509001953198894743334324521325964719560610059700349918230729866464099524545716582276479634780395761936327730709344582745890412629827155944451833701383706439904602484703911513737406630024210602115292667483470112447092183925472587656362659387561989360880116559809823015236304697673616707581585881211443650598336886700267736189987954130983677121647532223010853339512395115348698609473508054696782453650102712718449392054715511113154424509180279871316369635159268947320458887265009274064153643882578648792793593809769264922226466535026197455806660619755486534419535764413995742393423416194247468422948805352181920642116695602513934888304222689812266506464770324602687083189764173554550868033726084987480481416176879461066969319184594605348081458398694987716663121211201225545700395826732921221932421849342510355776181251601760451792092937090301454337905586180244165223861501586289211471567862148479366566314592218819708133349422505562271008685468762599378762606911211458715946471756004967123190240816478022479338146223594010083579718756156435846837351763640655020299166237074497962855366984705640056416459409670829573979406203422207309665228964349205102184373273908387977683241194689621884359823952728464265867039688989109118190890410468898218189409746983893791980479780848248949540798508570327926040850495575177505874950166780968441886058672861132343473752179500317339104388582958035247570974655141515457947796014270985638080632387714285136730547200506526315879157637045428011687972020343372654096348302207013183598287188477290417305812193467854706679190463066419711672961680420667646351432097669186518099576010993350477782363135649463103591248545057687188531798094451944243828362981520836767753946880278027346916280347239918458869052835778586490010669702468564874831958457155218576890310131641560489693673319210105292084127160618460312044475597573871593108112802138984672250227107613647338344349646773572533612691704774716895304031921836537535467603906274968034909223278235099855244843282188430421526052185304044075109098753746583103650129861379150648774713374480081810773253665063774778419260005450683879792841280709057013430319795202783264721356952562690839335717211047267061761712078854034993111871796378217248599103966009250218528221653823044114693113631544528910185175553380388727346878573563958441638599171702942332229726552388284229192345353530119730784875757308106720078999280056761120667570947569801732163896643091256600617872661988940916188152909881809771784927016796813946237801937045261158412493168024939517605812709228713036886638353653707173674479949148090718200511901193422160019734634469091961658849122336511140781199000984267601526686358197842594213081393734285520096158001102830818785140935428884360532987325592581381641698342271847661277484376610534538859045505832737190235582087939076729661286131387545754329805917386029000862686439123041744366709046561526992576950477285201250567973059245898691984862039702111690857704905708811636456638869458329510820226959347229871282018838180028670587455977600291652797158423649607281388932120667085659328024015278411907979780980554754780248079620638280674471819195372955025764505633758037226372574205708382765413764389520371946022209045933339998615949941967144373961290632187603170893342548180696551608523718906935366301101714126225793923275732559274116848750449543764527110749574547428708829115102268275400935016671883396523979392501367802968598764297580458878239986199163252380281339207390141257178926016014000755511897426326689552403755206297318530459431451419687489445746256361694536052409179686323240240592785811184913734288306908488710112318027223912101491574760268196233540800914551305583576300658781034491035371574277984597196878755169738193839555898239270199988367507906969720408881630337419576766453232332586971359161055890721135310417642305437453633180490287172550778734323305893835577539521245970017133130607288668920241630422031978021709780268240899585148960716134099936934774564869908848985604930950601892711263468188905345215657217858587186235461133014355207536844392649370811162465034396013917286733216889341808470835150184639317598420840501399855688336677554094796925363735452936843619950036867305770491828460829650078287891820078583921892070787297203780970668351043902935413891548315632510299942273419518983033808024298176774971738330356318165498736390215183666959271107427018010061568492950057373367631600439926010784855350641070936805001826800095928918749026432102800326270807975779757207263143412373321321063319038392061897344743889597615741477327165031167588296773067366302673505001714524329230749144152833517367539279304669425532175876619321287721241086266304703494364695905622003395913410396967659423150418515071476579582774001182012504221840419832971021426620818914016235421203226318947255640140470727965620265744744349923227344138490605808493119441804996621826089212390199076095764089182194268068316601314062190246363667783538233914387918388597024668183875346619727336728528070393391077657973130398618243161180424288926782883253857205695030663438734244019015117856366623907822373277206007052581377233286527346674525239856175422055584233149031771831612687602689787196735880437993587089162665610043804291188319087128631875882584976943565206893572441906036867932334902876527518178780243206591780129476273151686127446706193195750069211681418888000804439593688529735342226713738129778650499796099001725478703425928182747340583736123423192045316881110575326885674100307821094712770964664541755664699548925688872158088377760911608868616268968546764895451988228296536953738357265617204337174640377036887776511584111178292382745488419349027672473763286019575212326188418267832562335035530338580551802029876842613338679661839534966729321778402574241480508225261575542333266067794283908489080525620695611789117852273292179886219526756980464319801749824012999134088368298415990804571940492804548549695100563183401130197442396908794786905628267556251673346742668106105929451165950272420987023796168948010275740051541773778913151195236581162193640488757872154395960802358040242001010367085340472287982035496184955573611555176961222375398059646124889702692314517773058351821439477904745615441459978835191791079456665363087849822358740533399099120749013551945393786580029666519497002410249549452260140065763906526938149932641790511574772488673247646204436444511088118286780331024225984545135604245640276440102411545160017174224525063044876992257376093714307483659673805280548189004572689584690974654543137349672318594221191305837361690223874426819025995273270754722101194484689266901261650435822319880873924583586530984786247253737933514522514470457964659944803793525865634723020730682089985067400822829606717789220622086095770814264578081322886955049143023758974174381709629211341617251562217050693580372611814932668440799299246480015838513564744152154135348244726682744208148643067472053961668281965141587068179211397272888113480058370415933971758542652135960599829891892135370468733147490368882901214958031127120297183363751595463629096325593994359560771067898926684947576498785301040061427257824306438773271920486765704928081055047000912204550855616789455579031172355791721589571492035252941188074299624467160738296587235004266067172217271783948211135631658563286628587384460717414926787220048254241322383097551807457012948178300237147368524588014489484505337692361534356254991993789398677190627686117363448942748198589066087136586891582331106540723617039244148536283356215146701822531357357449762360612506557944516667506302411472215319912613855836723829978727356075664028496250639448900015256089935771020955536289572410192055358792463816927054982588445108118129675793462150783742821428283194754491489288062297070797549530147344260094595726336353368929331203631635032332387030703856993503406178744203778778008459124523019801204910764711900345933122462194092944777388809499712819751203188528962854746234344632048164575943897880638592031718089081213460048867062276305068587265449156583529887256037371216772882396962168171010193097874641742800388664231342562864267587274614523484289472485227072509801119194632828168324223353392534997640086733897754529095116334053788112239910294509276059303141584123047147407702738572246854009701037037772111583970269132272649653012744120772084941827234746389391012699417176582958455161269386021026836521348388716833147966258110711683819659456296782626009980306672692574990926908299790633623852437149407794293078028516854354363913351500934141054731554880882883446863698259490887314038095084803038927080516256548393200904905624806790172504591905207836815713611667364111794329722906380616047022204755586449988245470022407777522733106462500878988525690373897166491576006008911359454242628595541592367937398480659023922035061595219295738761561165125339291000260641428500297197190749770977162054746326689925424170737718582468289846175001867158818023170478891357846546884202836213574828208630951210196479296843439618131050242038397129949499191673852322252144286228059510170928379046687194700010340047514140182452013187077657165105395536753797803357136745362451525384355368278767076764934015694362257339444828738980332414104548527507379186058129596335256513647122610847460926347551068407257485637567557118225357473941446162178113353553581450691912696505517922872354729293319909360379634525423463469642959424791977630787203860404633082445314492599759410899509259324979799541719078480395507329595998199211899195957867852397752233989851006785907164998916486433128971934556328181871795584392040368211161503542380053934180559980911501290399863254837327501231754801659856216965482551813192411400814237018246513348918720499695030960301358188879134457395328675261123290158968563084185006637160776038441528727484387145588569954641601462673378649360714077499930508258405762450642409899842215936990652290069481006103474606865212468239460982635672180705248303202700840817084540354426128084071030637535070512291934031366381495188434542872525734103973865986826499984593088288600885220764493634700579945458542914984350989204038850251539683310003298774736257684970092249507097543806031410836959626243597890814837522886705683304032504313527130967047136118478443131856485923220248252006160271710608826203212999511986423610031913758805338391758600078627002478112786615885554853341873323720743421564648287639127531258402593892347688499575799627580694784275490927788601667707684656775217468286805565503918418469895191756235738502960607751368090505776461248284706571868192885469215053225694328098148420960120399560410087365384232621583588762923199673554549724349459054528940360534034365451125823316192117498521630644888131013248300708942419212423224721395032193730951012703343625437680540006113094498716931047757593658487384409660418957628104053380437626405489139257929085626953412781793977154379009293775559494922928326995728458293156488341838344106886908014025211767487960205204717851457246098790988838884416219026095674674851489021756871396236562003392254836010280003362584739425254342322233790859235282617484499063467312595538221610678446095624133561748153799375546048462434206980167386026215050071362855600000881035650607776974417508046065633173867158718723826312873999136720426852229835159738853448402703330818953967520383497287200747492717734438519195437958371974814205861930326929549697480218685632862388927868747433206212905548217992590120263419911482141146446202363377524316289517374726945470249139100226197133676344813383739683231580015197406625179253187552142320543501745771905464938121517467432638665403243923560175379434594554054193637344849018423396337837339963329308865384128974919216290181947572782208571648867136548310356035110108390184384385973037966355191258368908904854279560800524165936630446213569547505454882921217153559753458911133005690083011361449257288621092508368242082812861441078052694874536859630054675158865984899582128350281775320216921842720729933654981699429347056413963270385301195090280958579131545092987542626910649604079482587987327256351486160503226537826057987629291508481299289024636774756997546939300152054143976817333602353568431380075310038777919964571889706787612669614962470785507881165098989362127969698970575899662119919160028834755717383257977350707776778749176619447050968475633072298744226938162701110967035706534957179356963283016511621304260697408674768511272910972031632845978935858775917119147689225245968723621389924163116553226273937975007842375198602156424339810190212628726302686369849854854690666322537404177637124528379782073092552624747059953315129840586472304395356657039395181079563049484221904090375047621207892986026331342657745803752078629830363382711082822589748165708990750769432770886790877157735621329595763897801874192286084461713398344255396727136724652933853062408955997549356916053067219464886732863247862034464747571089398982930506392673501280238481172917980624263291740690019725802308536211458887171217608878474597628126221126992590522909897383710597099381522424048493206891604990494734329691283962677096724178965608791433444458273892445114993090210894759520655447218914342417727949687805267465987705979121334379032731888057200101252454224898976527561593690828447755816301670948604059726157553893132968233534980187276627958293005419184172068891479183053604923195132009703128118966650644180875100049975349549310906556119399088917711175923400331629856248521258382700353739041734223652661803851390802180071505410161872073280932299213989080135664934879707838556509748362550056594385880905629263419481661790366013735936563302897011840652080951255409482743329861247542197819913972939468794821249535019443754101566810901410202919189036041385153690021362221948104619702812097360016073949284680063519253043034016280811509033249575874314599862807203196591097853561297810864457738168487448385441322989805357463013649875064174859992700347225512904959929867563494404365158300388727861946903659160477886890580562663035597305321228368591304174798869542697519882284179092127805472285406255058947438386765121064258327278981572323425035291261969904829347611707570858092271433797286979420801431174504709999845167001305810513013778271868480066320037613684381746324454359493457798761290088571379010855678044570329812699391828515000665078988016888538554968425403226553477848680539516875673828768435093064230528668386862470531793244430542514972253021302492062449834453737306373629068809972845328724960305866820603016004408066420606488863236293404976709358403309015938201068292931269665158330567959027551127165657696114425961886961364434655856018509608491616481865674221596681092860862163536877165233586503077160223469402991579379933691339668510633797704780234456439112066119820592234423138018427688068321295579707002920859560805919902717773925477664350485196298763108863817657315028812753541050523451967202324920903930101017648710350048324059738627261550610313280193498080351577623991899069813508803846837851020006766396604593087232585931276487552345721936175881026393486802982791770585840992269016058857043583854608576780554520311905706168299751171186429145813027641779993386926975536502738638199958488473772279791106053247236090229533842832653355487751981516154954399991191246609888069694020181214158861070489921879881826621308484539825835715695804661793736859884203679200048664567522245177321595238292670105544055490709245150075615297246393935360832781152262362625642613431198077577999699509601056776455182377757627947837255497818534349432092987777497497047509842751775469442988475888326329071628996480632377640973563853805092204122857163796737529252263010637811611391329728661545075720141887521357587657953932175818158104622180453995036198131238893053253871882475337162942481893948551977061521475569317716503141355867179779817820907102980202777643173708405194285500222397035343852774156982081507901574671167436494943871214128189618423421471580901640072980683742102334897941137058554358957398948648775454315817040257275856995601992825157630825303723431998347132025436448572718566094484604145212568338515880038733470300529573679325254610997897600632721537363613227027798555182883419719418208239290300395933704355888579743290928804805297087342764437886589078029978572049091456504668939002334200647618673669893193731040905662213381948733562273939830556419476583792690654852976916832061699497826019642118549730475264877364783012547724727353128516708933466738077893466175131166607518620473992031731675796127413136807016955253434005207031766163380007266482349790353953223614251018835127899812488833648468638558164124225194857903688956993461314595864147390629211048290336702202037094103683033043172427861083150509525118917101041759028867830243665246373061738142397570068672321093450259215518428438451675593475910126289560763988035544199139661235721270387730963191721591696713306721591370312942342018035012979787160919422602568576370663182603691145808015488568516661054731438463072184875533080310275506556032637556339406195459967037011099608366188076570710981616573573088051980500987516080509704231461658025407628732554831105171607780733182929401875016336231950297736698253209696865735043408010205314158768056601642600112966489269036018409735488154776560984483698836115583330985454449973490412795829715684776134895145759741687313297050280967648939844375533215459757567853938981248828951037346783633201409690195611426620876396007899295868806565980825661819389175928910102827074898931774675928768857383285251181575079080469126837049452262591968520065967871639458022385570118658345073509378786448030940371537985476745594212107218537159002947041617510981828668535573409205382275107831657138139036169622874333144809418930689747364956377698022097946210685495989257698287983080593700025412878987600115647121387636052322211375566093167201637568348911406797108952840439938991709793312984456813732349825019606736163876424410760253773229230614397940714725901603876468567686857125504309932534995243614455492848179679077657610917385410552743588336791972303342618670356259253951405170786201978383162988672256942076812828999093605563244687110778376463237478081285489162395121108704891433185701662884639371494193397078723513431963367787167939847603915426887444988061858266182562555024008001062022190432444990137835322841653630858194616362382805178538102274140551702422586417131892050907281612869492461890611800004595756893728558162351814519619981882311866387145048304267994946746876836230119400065779436200267842295975117292645962003937303225492243306943440580643788859184314339214957687141720079003735533947389707348765789054888248661382415516511548478236815261393248362047473936810942896596824886922885883463218571023004636092809073655214547440361925771445493004378785987910666306593911432768467648155551277474387724832593608886321778643139941537481500180328730202669137083105144725268383158850406238953768085613558447359512268920506867962973360282384210884338080247519934730093739371446209957805890754750844333965437644913888368001152886079180179780234259423589885573858934353711930909556659176298257846800907816972375108557369562896951334425948023044189004614198779843973066080768861172010410430121038719628932064597161511618070528811502431712600437866592263249987008632470882652992332490882620958223820955138281871318346166080864846451146766630911737399941236961075371298309372069166456236836762940060670215347866979875804018124372894289668975398403745019157453799589145472205474460487060498137684842974977813062257893388152026924836181691556604713171074354976835747218833004713525152535642398940939647193864937459197793277711107965597480999138096388366583955036815210671373883294028153994068120928144566533298768728410966631628438982954013824493241080414024923543697027155622838482987468014185819471717297379235528404694715306666006190001756643072592801290321502232280321440394062555079898107252590329373767335219261502148123260748949139481034739142082722264602421981604703646125429388693407979300693258393241445675139816187184385972652540274947663114450321115635872048141221823575993263993699742487137084984899439785238200621936427976001775748868721985692935872159249932914066532552718661087508521868601678987604341458160961816691671500277706301084931247971246002303017586446243550626470946994995815681023558531693845443473720173322417501867193372224836695171625458726973294999225522543725106629674698345945627506912332579216323056392312012532097380507719539979594625486408379636056047745804261694794418065181395496572955812306221589260182731252467302099326060763202951082235431828831197432659178834968801740447082196651797042593563283055109349271428262051203032517809296578461879951171215382056463420725783422934247899211038435671333773136875054000378181548637204377467038730537160401917728292656557450009064989573347168577674885723453607514917259231566134781164449906727649928978135704190177186774595664272312443829411413813158716620183512899096725486219515226695121882259023573861081287804025393371208192468175504401836881045562317934549936880778290082548283414889089116592961233491030285462894127473130179762234810041985794689502058474419796681045535330415961656577272962587683945484070552400891223479342128213521471263566213492896327247928614135853280427855069871149401971446809180162506236421265427363752625461042813720148342867130664944343007470699952316723221856311488909914403949894943446761107552845535134714757557579240292518685983974566763347542459927735616088693981124053619818115782624594957445057546844488236934131390479997691941154641932476739586852919731625323845741457647222717306348654083105466903690646973343263682672199019421719038069138141821668813945736157694425268638083712783551724318028756606124491835188710632670842713781813893002309450293357818109495411119116268419904189413935827114094739150488522322487908496137120867713838039493873133243813212739458453569085763015005726379472523802074723398342820442867019913983744180887974913176091977493266601996613783266531122155204112338307381687778514846918952146658166141188599869344244183180761577130726642203838859495591113868175179188840988524506587177869041749857645081283374393835321716134006367373053674338422166494869213631957877715264172652824916848029035745297863646577831970636399934513077940532277515674619273910905109619163369950724022850077002013874410021352941449303198123754993695379526237713392969859020963396975525212281156046575495923814672284537007412632823247621543249021200830348798302204307781377239956816085825919861279910880004853923604089695357337977572686962585023344526159784447037489836194026233486221969121782918816998176753327480630914185474213293842868470951889118550210640149780857773184004146979389056758853648946953655423972477343129454843058504587668703138479776548135969398431682796592525543795531809215141801845625787286935493611298884958363160421004835522910445789258498198998201351216965061801069768545068296963906019345302753663234577620446468973301881884078678995241876298180753764302397434393663803265639054278322804232386508132327229729722196838844016937544224309117409212534949425938619612582901180439533390726045018751287799413257453605569693764861022416893655394939567214464160139464212513877385998145998793903508552323172166942719744538758204956896252705671994180281249895899627232572268440967720621951617329365492217232695791197782287030607110406362009208412148975667976061614020509119113022161247491526942360029627569630297127573595442162605947856977337811265729354331531786313274183890597453136869590558572099816164654307007439470932073757125186859259281403055148454949470548845496973207405247712799594104719417779886439392076782102033087157392540826366246383863200941823055206529933172507696849717035507114903297573158409336917145563325880088554651426345673264642153982864660193098279208295195816020267139747224388879149473189085614480984898606089747508281779682617861322819265429684291941008877108802392613183079465779287953754606202136294832878439069478402435278573341032826915781828507754564861828866033499479356439549804649867110281655787917058465785355217561497202413911709421789226983324490852921641610311582572766186178402981077336192050963648874181619950571929661199757180499888200694714321238396412534612833750956926671371695959411786572817886311580294568950457662487735065939573582627223507598584108412435579544119974139181163687968233813305790429419858404436503066872737428491307093188679373045527633610339897232022917837704177818188465986006356715291849375065829951709361580078842980621572227094774052810980389420105822702967085313535704683363573989124841650430640564737325342003144721294144111154142636749721224240303083433164383392111614417154849741333421279404849717178940212683205515628516660364301119096988648507761902084600267472936849804525087717392294466951529571909557584214957425613166110990674299708064453482808951925550346536724165058575214804422460008631632351051781680257359631615787618750880671192273047669848022189120445412065700893726945124759627769203586654295542663623343328525627658643633373386522151271462184093711627897550310745515245663151597048711054627954739955629029977450785173789865795026251337192319335152398332987582811935125140093388664553638811061835767133501421485848866550796628281930745972914444648177956383670369050110360812147854487548031489512859760231938721082883012220028770806545142349011234500734110610042321511850614193944440038294058428626365454708832482804517293132331056781167581150232817547201085320162718560983177757999330932470315230337977916519894872926341806998055120155240967809492180598422739002549193929946592344087799017694424189271429173256987629622348103304739023986079728934552280277365367667473770955205681560269004365856916082486752564467880984277030180604807971070962402155386556486572824963223398482249905261968732099484238594412285906562145475374284554438255440461254382419048222503273078250110310389311950702052503256642765939471059093189370860479649564531589195177869580549668087789349386774734486198034912148482793425397992109564164666762502753559133095680339230595418086013010329552688066460216373190937012678160054214262291144055213811327670649932067395390293203001004699956289308489293950773732405273171260792652729303813546746617607350847870321773388740923915928363420961624729512852344249502487891791260327800047819033585039989001286772889339965055259155728935255083336667294503047212458953737674231783114161398162292312501891607278392384251570564974300527698064905355100012346447647419321419594693834648992373888540602166922183376873201242571153040326419311485126178702864007952361112666105261632181610966840326774861809025990597181208656018746709600184359198708721264707971863919766999970842636282290524293116781237375294157349585625522510786256015551660305519994428427907570062295351746913937252123934882223441426133333382603628499359801342027757264657169459387811823616389589254148171897125687284901813080326625860942776566969796544098354152607873282242355433126875634929551777180642382690874484846032474888872792147571313180782472997554889925695316428699034584419226634225843864242885916109674385218837616691823144639162034326501282179153428732704740984108897957922137945829424894958441509692177188193259972426273830788998495849177779073291255970319441444931884418245876761531764049364469747465497537612818797177595308630813967382181286996011000383850039671798442973434500845304441130888656866864099644491170705486761963442517175125873581002197429544086044384344783046505560347519521774631869268603612076911850241686637197826917755772334810466692504614945042266290871064728330052542548612371941300873037646808436075274025357238841730407810077298060517491451860738203355521307573609770300113210110621785446736836829968248684463246519722920077741277882322273339800032700892716392050057877960759825698110058573866302412254611656937337114094462759705475147365463733730512938039526088397570670378029286885327256579447617296165623658097174764750771629729734192685505248343609592790083022007223136002680379229570982686030597995914797188510838067209920982356768116687151548591255335075315398519607627114861565373909673242594117612908229275124862259628267618716978718488149775703169380964626746423287752307481255203011453869483709648522713944132794412307898812411399796895500447539642446994548589749116248473671032503011854242381927722955297349448608548724525628453145306507695545591462733944379162159159357085304456962257634160506559695584562476095006434082235028393958364949390966534796499859746605013589698057223582111620585338485092487667105969293433172949967948304744908984865963623316734319016924478295144641658498435213313692435205904712515424898041489090052592373294779977456031167688693330978755420833065769704135648118324373839188062552520107145542820697354455831402062729359046333904549003566774499548083503067315807138744087160211198509426728870308158965825163421200280701636081041126952801853217494885722253635470636641994564657690520873302083106459631733232393261570405100280883440688526979505196817231431359056876124755824662501314484552092133582847313466443438619011128680534829890517753187168360507682998692278718418571444746477191669323957939343024999958404158324790814923643177354106144357531608362492750591110358756976808053837290961551795946126416459659775613139281042119277968618050717501246181596227888898286807504082336219969778911971972204697556990457470486159304784348413556412860956689750784192459035455975650901943827186101871012837684149875943465610827595772072532836763511678708159082471367134631586162443851688327467701867677068329015734018449646173825139494013657868726017367495381902233539272507839380026989988507163669790038221741945016846676422602882862875935971869801723335695035835027270322668902024116125142843908157265667830360894426595093353602605358865242064434817440999398319348054487629033732794463784660227740358239884308186890537455417556042722987848873649612476416736423525224587637694316853462461246219179539836234559482531206590341120677314591593250045017382429527013279882535019267947948627007498259109810219958378817500364150696631091211125422841851115311255105965566160987772255619826839732219819171953150334588853687037273198138340098641296822712964644314913149278395089463999840246630407422792298418870045741673711635214691031324621309581627679654987630564588084210639462982058295289744742501647492520866931789924841146734862907855171726758221144141022224213575175882343325335598258605912558420646599123819166960889563028935896277479481802851288754558346159465924349263407961502229968328711904310389729729391051970006783024440560846385122114073918493387235302540269261601342682572599318020446214269124928954342890495893972282398488089158759085265906064554536800514383733729048333914336025606193795757419230435568181136311251251977147178609485343323463319492522276036234639741259525712752689600225192305878175936642715946048576399631118432377046545916408463367657961477849359014067639979331998269242467066556697889143087997561926514030963794954258777616768278236726513926882380832472103950147685270430531718671491109027362099365136320153242418100691687231003486191095954543791907939522967099585312275965351607597247002165077488404839273097695448683333560079195930685852756450156771653089697163204192457367997145020286280861365529793654057223672341856530721432625472483259080630024027989812044075942382170993812235577568335631974013657852168258605102572486588480315653978923780758037516733287089573754155982696293928168455836122846913790478670550641035658058655238188030780673794237967651753374190351838415658018748565083901753720840508448954592425422181651895223180686600636687242451528936844622351358145505910642722378463419750600569238091519688951966737813775162367980634983265740398888518725870550139184539301314594154288781184152899561166275413471112921444448450205157396795946501315409797177334465889846534196396255370954194256007935166818882734719226637296179474959665571827613419625352060775911931665743796475221582706217196730340925876113885068020702888832958517152460827231565183712201901321517689633713613039152944900635103637936202443260710740717278170106821801041392713872432488519305085521976603205266387217209488745142840624221752624887693846635364787631040323048535385907642509922175326567292563363724215937332579510767583140483642786549902090645674012167591692806546636035541883143805143135872630977302814630150785532044232493131085172988977524924649256913158458766150253748825008455583536717483552631228835440769764336808099918454803012414130965338872894007381130200766413294651634377901979943639016239686050448468917008485946683193955276091334360998723747436645461579597623172607945430633462986479611085246560036658997763126527558759793566201284533881267029473968479823007875100506253824729137834913987815340826786080989949438131526073883979913770248239638705350532614691551826603495690238280228758146384106338805476267497029685249888305920076087158150131217823498978309789054396342618948418585826953996861405512014650845981918705225769017298435740122901398961842009162215831498083264702492378605293441340673979228233768633281812916367209310557230244687960304245366781837048967126288633565096222922227414868296628802834903279260103079833626635432579268561760956114058527571212078804374298304785259798548073348707191664026463865850940239799543826501777651355915738320745021922630985038304489121928251269394557108415316366320770509905911097363682001494233790581390717299514957218384510548835418691809110362059050052002764635084348919273440996732451925447242868923855829408217428785146240729615964207772966424106007817203205338508345906007288403313426137651885722979571640986867496382435783275132632597888467897685145069578235162295100283855885044597462429642724466518991122171349337169272330383365332660721190396139850359590777630332499492419629598063024849606220400626464234229417525142171052113348810858947696250711587557836867223922861776687250232229354396656052529188737768757662023896856632603998831907580281905384528909488999158376529462669775819347190532944048791551760170689146556096800937053196582622479163110963047167458492645601104744654977561106266350971132819394616182830874934343486985158580840628213814657672495101106911391617779679239774296831012735987208442744752826913889961797246743271650024159792204971762636532048771643729609685912056451700015786209343122620709328900177496122953777314258931267184556150679576621378348297905796891410161813721523858953933542631428659200505101052018699063144635357730142617948096179964483121121169923763562763697611106498668127182230984053275035259918578656269914122428891557005998205288962022624543087570296377369402117608471331715968644672674503696676141219806351808880213188291755654368085395991117060862805923428373308153841024972300994766129753244394668589968966579646335903910443106666741657234670507824657851211277300241061974464885254909214213709636275105098848055084553179914562685415670738535702855987715356759390812977232933266335116719804878282967578699764289892490923269902706353071300311776572528613473143972218322471869699530161767515584466718554939497627322771175997262045300208754452779119014749788896782219680992611327790139345482173115828179676412938037445184101113913120898991657179652184434279525058178563124583348088225263112987197681960955015609365309527490076073650265843581089588660844844253165921469979625516791315187130394661056623209856601914366645489012247223171942922374713169456587692345483528497060279098190504157913493948105735683017295108400822784037852380898780841413999376915576926158360343178017742528041273002147707695015680410617885032800880511152763894135050732701159402432804028367256243777681522380306228617237485821449347430584347045464904943882895373837746902076335302113136587568810643976587970337314079402035254490970236213837859329698281234115211519925833972007614849720515939198907327734646262763070120583014527483423692001017064961250670526345155149722491044075695599160107310542263844030884191182235509819491906833212471031596854033782845931362025612866484771251444290300155531171344936969038657819949223256987286689779454683333156860526018354327251828454833119024900541224263661117086630311550346141582074643013267760707295188290945299560757621764462317262107830778026806835130146852442121724215764020185278042039537322997744105905444832771127010456318421924489117138402088423535612584620799980920098314258189765261936018580167132520073808534720841257528636349350059116216591662063681471103593212292871598994698708321747055471447654282279719665664466766437801618346225824849920110005677110292922032738117811219275354534649158396757154212698413441467008267175246846650075270039957964422607959282633031389975506385747597281074331429050169270251265292283480671726045146434946780557040153412815371335595725337726697205606117422791582746019788167370693272182025420948731127840384075327766003998433428325365161729314715757154285792183183728004586988986438871977873136779860572683184808979061312276098599621197022092263330955657938701099682665410802539569651927489351117754051889599320692403851158032859994300474507200678353546779560334488923964531955246617611968985871192227829989666368495376720943448772769829836400420270941105899736516780172597548938971471610869940184359148382648349245856152652421598349710407435830811580453380829634016783248427566076842473186575355679576273159947011027517723636274762077620784077225447745555106077107342335305861159744545453892795165442172207382494069547561909400181240124250229600496950769445339403836531061415606132929793726228887349962896280309277483565512821591744650615012839975604147622075211773384275507444946292340476161450281489465421000157889072976709252529408655649987042222256416643873641314949673792315492560845959649962375903550733315769828429011610270227352840652646042967992957609918710571928914902774749049775285913449767390632435265846257900630101077684189631141105997297596857585352273585030327554206005691223873815488879297737200860848515693497517254065143974966553848325562088941724787374751203793386161238990080429287434076020154918454866059902746776360664880835894369842115427803073222755602080025886133344810721966924703414778894085575595825636822033947495489835802739432563182449015039983167830512212642603390712471103934321238569404730948228450984837249230640199523874264600147557936631017568497733806612359843233331942746929280932608767323168695807576523820185794000102242453015382236433319676287810644888884028706043677961817759608301888714259472832391920044852469533326172911348742093814461328612599048262607740052576196498068912011047520342514233665856104706477959667265225033331129013376479764738434381578932300304192452009700907310264335950423538303923139378517029692753526653358566217305105983483821419417196768117727743513025605634914247634727442353466949599156909660103348777197954426483684591848553608559263143263082404480509191482899797540123689206453558050487894272899533943618275714625376582480659630947048611851577210401536341206605527834022761859913371048636156263688017782104470003826001072821193328348328050949897084702548380248354200383967356236878530097710252496617399302256237078594099112795823425909024386989395353712944218086193023327981376503733789225182035001350035008740508741411861155578372774629308788603752507462405194281192592131571035310272927760588751881015676232267858434250095583683813026981848437079379604638053028609706678377253741156517366003472732141970822631863658021717994048986942297512413470203067636088319390144053712249105981331479399267109575797989427936671803311810080025582420603445895365333650111687809536783385379626724986311319553367859772042333387842335699480157240673982284331069695145449342785288980364975378229238903037565093867003743265350870802060730368801535971607855602017260111568972922385955065823685882818993424850850622415152387591825537164631422150475815112855733334664960403653101453793465549579383509145819362827040112803946702038743552910885931843588301641085890921711669970329237474758368615847293258944859222879187984463128407650016373029170021058039981212707743645396169379499985525398976367871658976221797573720800757694098554707632841932494854303859150665476198370327505410769302122348999388574610965140649898283522461998498670896929845987156191351373064412298754470238275001656743201599506905164410830217882933228799898197256295874840370429748478865960814349354471053224109636360286560181611338704824412646887503936083274028410428274787626126916099898669156519380439066619006670813227949875163232299566603268617830254950630555950511452357042843947618036489635352147194708693895534439369721136022738658443584252639312329624875081699882311780938867719877176889292122414001957200899474572320529798268885936828129415862064151533133015323084945104600480897971326839517459018041617778890490420657804280179793446746028210735431718488254235913269653966107867027575656303624113722215030636661334816839638525351795060805156875793457070419667804005031984830970894406686509537329627910847025365095408937496531962926187220828530104528148494342004541929125668951303319741740220642245349251774831985168947213822777346184954996620270499150294837660048456042252521392633045853550773400994464995140920291101743385558323365553293604864201484484491279960155928809895998408751614942762660828536025452169614156099864541064443855152149140380910541563163960659155821941579201218348527683525361693230443699818303750009474308963876264188125352284100049079164992904131165252269914154651870646415717084587345919250925761347175187903442187820313601912946616346200937145594477389301284559423853287574164557569062000933086977318641376392381810883262777942208108279243597330663510679749650423049375534723854995207161630915040669528864236249936898375700991638714789171756445531025725541862911914038706405640707839599086739231612387698016656652319614654891272397271810756963097568072476966085231634098384758937281848738517997742114188791169384917764488909718597735081745138005639338396400785106248895063408461884233041564544294916823959591801655088953871218453550483389947625039307364960259119727960792869479451579692748180936130292916619054728738170248594225196853774089852497164347426162789722203414855699559319422015003654391306879291699307500019382398102347521706028780729968427348567401435243925245377695722210897537255982313978763468282181103130433821408838769877292038240939594490947385872671501138882061952697556583836127470014843083541058318907498360671510082099708320815607284671074754978278920788365813054124134897855168723852847587302832308382759658954036645419091766416962684518829643623113220994876049771449820035401627455759721398398465944481158715765689598743361081927488753813173679448844774370458080448500202590486179704054746727889441623557479866250548811059274586094483366066308377987276998276070556051687251058158117747445997802344423081100803568691682823203367787858977141725427012985726446411906594412408399646892930825038760102080605083932833401622289165420438993502109881389242512995084317950109734097597808073933763619028665361922936570377022500758682743672599737579336787562829613991510134179896068304966834517090398162018616165522189457899899242724055835266755560790848155835152025919140590253212564242544860154330519987655357555072168124305391562923674319976015519739870275692096892665090365309099863922241041472730181988968753307563772549748784696514889709994520963385361814491683304148824806567605187939460851815030673752620753330384581787548037225381011405124026150874444676743279542106613280730025726099810069645762801172498722926338983949858882102271047672778416963205138712669476334971715838527749428618101666312804017824671558093248026672633494852686124059895891740157021998155506943189999692157680338273369206556587956061084828828716061358344728348013283996406741158190648999927727581801869728563534379352338775949240573108391483760873014787402069081796035690269262165722554242332843336278287801784052199345839778959937802456260322463711077302177519953571583459474192841832062289710749208865950374911910227139809663848009615308254312589245752730998836217478928355182784654540894146935528991142087372344177084815690381677323925999736067530023257027071842428490838240255313623688189923816135209200614826057317935269022251250189173834569009140102402574867490377362920841465634116410502379491574820446332579634110697926253355255184705844650160565698193334193285665843273526866700210613910388768200325471682590469641265054437196585839789382737716653154408919775829188569796397610012980122607281802325648176021895414391821399986906629362287578579360625056145265739280686285964647058921423493093036577070401718702348995004601942596612447976002099295453927693783294456271675783468578604530742403226502561487149462936452427236130428924702134735415672744499993672485678360284114468734050885416052999342829858192393333249043411208321837434098760061073433348369259779383877909347430645909681988303427967172639192064841734014233364124850197821341157755781627003766894261419404257650467926717688985982664783488896395519462706862151665002151039681140097843872055488572944367306596730079167521694227663827250607251463784292783023596771922268155251435003309717362177221792958626968497572961283413251338188619973614634389579720420661749147336503193014380098303753815680207342966751143490014286592344873503332455255546204498383208594371539526194115444805253806909278802732012383704209454074159073188359791245264468752586598114870343458872656077042094596385587341876183178413864593334754507729838056193952560193122782405274181997505029143468893013360328213952176819224064263996793587892939933871811071728018156099364650259129217792373161783954306094110121823783268162503130792090251736217373773534839294140539406798994117886918427655539254045159346096872446102382015153162906296415267441751229306173562693118352457316906704719108541394845553450914128941081031678667840586023335547082175738657861306755759230354133570899195071633999356235405250388841447228590670220219186780590095373079454288127451405512429867573723219033289084757022887823092756518250738305718803148137437571494188545754692666505754867936278541836069573783016772818093932244804695224752668699123999971620776289958575092308117124757441680234441002425377763782654370186272295344042607169207687936464628987674122820037750535018349041586389701949657359949761537199748273553940127609860475298299081108009881059381335666332915061037896956679643030662200343002795157088126241695865427143516816487204221587119091155085084537756786851193453179916974678434239162751462979050411172254941892091895025133390222007062154358505784491428293550288409115080127969798373318106689285008543064018595487573480260912585467021475457291477608037707566029506415658430870253859839470101801934523307966107644341108583140221416283026593687779387756144842637933242212770201481212783616893104660356153016652098113423521269147971717605531044810178677230547942702607612207297050118698666081708755132054312616406040859582512665675405587156936359415590103537166025943512203393740366496346969993055758866513696314434171878208178266448129326500123719151949665057819344721192246131595028269800669162371989912489138471887300296140762537926250023534242910891012502862272662174516929142091912772083737525837868739261876649117488418590764566519884361110985090584120230522182746130125557501957560319026014765717763305848362017790133234197252755494341471586149607186965467648667943215958531100544704842323345312561414670273365347642636702900560435410579991246125219684231796855427062458457470891739494344610156688857376183322971369345275994187662374234657259507767487541260150770246864884782750672740116283044035481644854638733624716342017650989187762941539642746370214441108886329707998756200966120673260094724001049684015029494027852364215530457624169227049962216905743069103968364358935095194869811947661320962603453764256157143337029410720065457762343690113100476311870880513659921685856108093567427831955080132446610726530911460236597004996882367381947925418052232355484647272208431479501309927319715673627354289949996282109188300966086498617061068182972454129524854716504695028722331402503986454188337950006469136160370852598630052743710500895708082179518534370212523568354772958695595398654700661069309036230717041203456672263179790244948609253738258561110445436812882970664707047137011077201584576859200889259629211055957334831549578590880993161849727812184772122813614614890765865201482678516373127104224472219355777405972455964792309603208045472269851614059701422763641720481177817296361780988453264359205455355227298087560683779325785405947940793079704984683010614014022109765588595774016926945666645467953312304378540267299898408607452922862641182234766009818024112869021350550951752280551257306840246220564886197064745180181913478138840518733411159717399448372147252735229630514360291816434164355237878300448553404352951491356360359491143271245631155203434573706772222768851260253082757239726031586564096765114868572107000143293560852092118718724554712124551572130589639455501265255086805760494853260266656973784501744950590210527882199507658066305803133275359330620609516708155981375435711616710650919570639709159015167649536086074014700323191443047945034450413496054570678597528750196134189259958193429560335590506167105512540737387882836194064103264464367927423103719657851289398654104276127226471084605229368348740817526059019622910978553013706150765973379493244232732285404971988290546963018427385287821721761634249272546079546809911355770935660239760443476531804558762281006000289542106089058816615846965132597761302031302309595145706070287440995599905487159334036171275417562185067686301054620435961625881877152647734864649923952892237359009517879509726489549488521718752844742904044776359252359915966005656852946002881468612883077534933418886907958014415513837094993783518540309045482686509006475352122696811532244926824161064329174571418622380459334906809865611579590802478772727081565283414507164832732000147838877990377075200856445198889840390768865855440101377445440011631525102134203204878029068415166749643273937258655563449534647724977434902137872341838609525281085533964011304611455397537332591919686440845685353091688781068625163971686478295257678155141857931486897617847141071292006142849548665303794283845396128173007730005996446441375234889699225586055829473820281595416789118385632658350797652287146487384843467151851506679384210441044269182406431151271482537914775196837124272988628660777830415222132678954245860485299490909786814388438674341528486691558173158150538878674653976939355725147034082027082342171643221553942723025216741447266427276116658439128434095734477391907344962531680312362426029564495312682016111804400941678317520011901994309061337884504547551823219143564396467019198658560876171264947157776724941308338006535517226158206929252503534288513293728376655583687985903866066919119809782065965612068197948423675277228614814637369610848081147220591622460550575923005144696698619851619940748097866552970094961850416152366423174909133784078892825178197554295809484665266338564053858877329654551299979492152561305599067990962883793167785825222919717864112840740472960874428342345787162143940845746777433566362074761746077022978702632533238128481338143146328140254696273293136899298169010784453794094466454429236179836268692322777682279147438713176783110803609513395084772016816211933491497354564292870488790386505266013300885756317418546583254428434686324255910990663498045231485343526447830560452009769431460008030927061473586055296544857873997182725524731150134352267375274750173145555888362807001797922185811958226589986972773136833989072631299174125596241827206102426359154534862178955091999411059659839932540018448670467336905404062707570028504268071188528116193733039416046495967773200574815891152889933021946163120281926165357498407239161858175079239969310885268464497549196913987579530348635627705190072992057557706220917074437143053993188196818676932910326455850561501196269409223942062659075480552575817802947080899622040604690902539018504072997006465707808197473485308297680677329888131085461630961319816102503271710049240687579995708479056661734464440149893666939515823835056720240855429450703488507767713814815069079333163534747422057449343271230108281778875399786647282471809266665535254747789682507221018710126167770796701984757757366944855519691736589252850293961777130713686983719049738218697573033542968888723048137619596239566658465694919945233293049429334884799539665123105732803612945316608941029738840333773109473417088888661052150989438556703443725401229275633846994836931522352612149824923739028374058081337707149033326334006194549054920254651846888451018857207129819879999859224962986088302294909377408625670021205714213652148446475602787254057030580018517127270499099291150624702584916732934266298328225241378338782166326361693184445994174677982417354201879888350387660299520455885814687915513704878327757408578269303892126058733671279260993789885214643380495446110716396000044003616691923585156504881205599066440989238818301977300101685461284984953033750689260625313305211131617624613959668304993871247410228943367538242249564441185710105141317340355612211203860543915175310878429444421469314023052698916900143525468720692199471965312806180862907721435367607422672729738082142955006612032283520900921865546845398439692251484228069961560263999049326935248166972024908577367548535668220818380262701235117990551210961420468970300344235292602827498243403986343326886783936301412157502424019819313380883160525162440979661476260978865163511361949829844754448108194046987882946459624670987994404064364901284619827784356150030199492742347677836319963396899600514759078534746981532534581725501772569081420821790132113732243064817692193914236348336988737609740100305157026866555697579414282888749714476436538385284402631456171019441472684937142135809838440362206907973486468873581102816975072402200228386581080092540359771218138870062243263746720510165452494864828185160572962032501278163907206287306844406014942247320054803603835330370995331649388456144871022395576860545139806514426938160184104983036994206859994352212363371865800130217065767243982264115495062141877934688861847644272892781382300387973526257437978364220143349263907082883201437570853512267721209904415505215101452285952054587544893131078008522878317418588437950026062917575047395600537645663109300152403765549337754089063745023742322967608290665450146948386653265562694803728900230866545755199713151102562231640905069142704746163866398716795088913679811881793131154418169515949252558104050063499132395679407607871735859520715184507709262333795922726130463912671664475251464516050004973413108919235205792744255949710884087379677838223766670313728805362533044056951340725573279932870346352962012565252539531642857377269972435095083099948260510542684080807309299391508575696745383246035875840301127876063029530497705271564024438074226922987834970144179862741062455375537043199682004819596359877323349015822449544631555224555712491837301008229193044900834622165156541765912663848695476994136705503013344187220577401883163888832115295124802210269554426021975784946738177635358567237508476232494957668768559307351451748060632704337397059084794607532364713093647175335945006298370016959690938958737160986680927638402481938436879374933037658632857895801257323882609149639099408006243013794906359532601877412459172323781922036069996459301523224553739533937961676968348261336356082202090815552495194491850274420141656140115772060670559909202201579306356712434055098391858077303431820698270048960345352346185333898176657580504501948369875296645567964588140606915233069535032054201780405939066075575789821919989595170561578306610766101935722887927149864003215848162529065916847565221623353396846933063760289743545920604606450043867706494322738783576544551900592676251827613747850488640138999263340544841891736250090687807169343743875654248568367533094653215626917534197198420815098220419816954160440163354565076104587112283582841442140800780869893182740944065420083791000714840837029226736749698755924133001320969078164835591747460988101403942135704405437268314438423886196471192354666981064353784608363138303209318033963486028561513253421630848933379161820192698474258938307552139049475854071522619858433287743366237803534257412803042117362589071965757301303161425577867338773272980480051856217068509289107888435475510927059794180407914947788114649820855139897253159048421373208839493567915523463156942890875157085654787197252200606558359177649186551871408976037476912910841559059403871736080711040459801054069861471215792166136880632903700714138649860424153462860160352367828719121737332889624501885004171230514177452997262618477412714495443186432198075685278765160021322602226559637481806664470313585133090069878342439107492226301870286984245618347898850652289986884778984057501095190802334977423631655779217733493042568901762333997635825614046189426962222866403731250271252110567287458559284013978123971428343743779888134442571169661750455240591500134184817000111789793920959058358891105678952532150085473102404321774568429877355009158633252076606308442500664137514841769355752792337384987621416550072294498865156527050655595087408808393720601194512552008939820523466595895242094524047478730079720963505403341046860816062155613438432340653467245538888382851204909039089354629860664076261678959522875387312528834590332202946617294591620250827879991551117205452348092213991006795308433498740360863728127702884261590190125882667067949419603832623341422319600123229751131368140560507269721863312271755669226125153194538098111304416884089118875451416249581075969379723844978497826391095751631947939699657739956857749319115029663573140967247352297682404519967782935867955735192197024408253631532949230962751413946900646611431032614912314437817930479140760788770409566810303125130334952218444668889560423259450591938940949924031361477662280957456392101403945557053917801234764803583979359248451195892104871907194307490995618130923911045194085815164210965289485658400736812970463504885615708188622710867035537969877144256049061077627433152136408355746639903647929248371895887660298809216233530526987769707562989713096923011072616493299471903710840604311120819364474598109514048256176445713467471756374019937596318563531311782680385354016772851691743463851184218485127476116280182144556335753251988294736348586010087434234955449713636516889700073232291144441123899552200923238852523325989938793442928032199350129843396195224480310830938927080995688619292871371340895435978132953337135447091816763390881269937109614801195486011021073769001932430641318018202202155111263193804288149122904545460725505541605351396536094115398570671291288008715194611996677542758377900452631473140475168245667013345032971506451195261045093164244154778279344274585575835300318459193671166437803953179892960111934953960195309176456933627474949646137978989377808517423936421272999058372229235393752685462817502601544631204176669895869593793784553756292737315911661871315089873039411147644252215581331699168141263140854812304448214037137770748366981038252778477517818112990159219791540691424123944453198637553689356001866628830200630216758739063266888691825891395748054555162639305672112326016979396674444914579997641028206598038759750097380199071555184518296968578448485819655126515622859847589047716448458775513290792735237980554929161956667537818087915205499260941377294942179255663801075309905647001625758916974437668926819108154206393441315844229184619083512275582353006759920347571500170585964331669827489026692406855320952169961437141042540958892646202997123459160217485178992223699664233086649656614083902436246283304531371199292453553650945021498375572063286765801796991407985806077810120538464497120943258142727252035592911212738078519889006954064696063365439542128488703902116110217372248253523575941627579121204634602962241504923109702114549001426143911900499439669050412003989749337829786685569804140607515787463915046743817324910163088783058268836246445460734160878890658389379108311263100771522310390818335988672961837478923745097375530154522651827897503451673992116155863867382175652751387621751718129203649458394547613989664238875821875031509063597108047253571623235938243551983687209594623083805880912297050399885221341113530008525991938898920181146484572577543002092001473494609320746758365904349581561306062022962821150892971475183827118721724968475043285353502491493759270948962917798447316730256577115178818971153762380918426183373385765260641869557601206317015122669792391644817827148311330472546431179418500730170897710426316216762299654129025992982324596700735244504180460092305748166430610624546773058719756344614564146932710313437587474970897788877361885884718913744551262183629281041378107400244322493501561300578582954278054120473346091985466984147047298077843252348536541660034268886132962649452852267248138186768733686542156270855556272666594529652559281245690439480167092510915389566896954500535409527897331427842139948082340270207955739886800129171594655257191427793865277740652711860171457965193646326449953850574191410891455461814708213219424539112861121340547330285389131575236529989754314693064612655938553235325849388760155574920657050069091603104466134547446212895571886639996408961510210671044327022709891798033777560029828179129684520416057282823278998551873956289061392825028160788034214263667546268078262807752545919440735150590975220985177355614873449485642913749998174640819095160806924443715918846799890052576927869194577303686306715482514834886061989537037597313433725422290585174576957609664264207427847128370696363669756152294556368452050889858185775273268620176162143940265710914979017344278863580075006689519169183682760160317815694509447735240104789317651238317299584614332996154689750961981865048844468789363315719052826970771720057801638600217943005609144269893096634993873685399407967471360442768635651660332026570384679800854400440264976159914875482927578946272742726901499685888620312880642306635465452897563918337582954804375053030355635358422575629004271728496089438796921991560551103765325042645899026635093425934853685312047017490022654815999955440059906050150584749031814008374868633718086001922700643867470540964762046847227424771239010383366474635351860175261700931897672498366242652479495270203192422421646824351814668075178722430458348289532362304832737771944191193715185813815675208971314763007114901400413574851974705032883465001283292337279977060179770209368770820076721279248012181288999231213784681394446384867331676343853495161285587638902521087429407389181576088425997218359285055896983741915152495754445050902559727572967299417942266684709666865458083763767307817707934378464984364554242751723795060891940281885176485457820690293883313598032386349090316543644732806666194799191754833044583879779653794819526431301425167048734412222264110390285793990231000354077373744949889029830627439542664878040735257169303059301522575709847225371861468313017160251134845599239891701621180387838152815696665497330599640679351778915077941535855201102012464955365526818839267361409783356389987434291234159828278411445035088864443721399174132234418141882968751252932025621744976264517842980486312684630896455878853591152023512400603789220711066012149435992740950513602993459738640997466156796544016898369884151723940160187129098607874813856131826896362432686781566452794631586977500546335398548274556253644175368782708902432602163660274699218892288714149867808535572279382120386786217416207149774895670503205458141199882229172875186709686545989037813113187296667129459693147664374778468001386429133629495013739407359778493164829397856104206436750238167346921124440711614215942252897360594583142636667880583651617836229332066421062172999343452349542076140410526189999971317347330971308706961703156952551784338605646177955000228643908588051506422650719376606451447320739823017471744048503182504626443650358823041266509310867836841672925258347735038030091249358343653411887894237193884065695675835391828866511347088470970047361058545193602832211984303277123637453248908339668263461736342051637991982116113740349815977672675961442298890956510219500839995881565804381025253058782147601050129912899896500382790596298930531631992506072633935614704388080511423668230439014251910366884153430925717556590732070212552265648576965168091520769689280955850492224145729295510106918645882075671074806914952637688546885573258092321926080032646345326619406788409800373022945002549267737351439466296950825472203977789245940853603848656569947580796642699994164617015839305748480116404145909143815176147529023166279497133815489412144718559782802716885265821202523636896115133559278718867518237975549066277886555077429861448820170737088512080870216133295853017173948454369472147620657783007393219257641497128213524939820512376122183819325177481314470346218916210013148988297330732028782043911078850025971011110618019836656249709146183282780340120771213433923535649795406535224391549414476697622013949455551263855870803001388111761483691249919775132927879539740515738162092866324107427146472573770530735522000805814674623081889759803759006187944215884045492200570225708627434955039048546590152852026477760611474648286775965667030990719488104364983780106031716612479155931526997432502960302561272985090239294237303897516539891412912588868049229454589607012268032280806793159555265606550790145093785066737390391976677428825873826074218941090680199548332118908939988168484574345916953614419005166369021473520415353253384884980425957651329111307376996249531658560360997175424710202906034545377036848539235117689238746142063015775002541539897284675317879221947728784920356204023585577082188732417030716787668508091728197799898346549668299670458562996892088203214317854830025564561176675863149516007297888080010208270490465333382827346871457960112930037021678651312001144513941926302397830047112333957380852519109606320646309240630703138657742752987077404432349787984202635418378494621699118498389010555363670215699602988494293468878230867381920304324932711584746370213654224745337584071851959211638857454190867896180825764922674070902722201920119871116834760405305690601010266428831657466295173337195103442760242747094021368390146681965088835034715163036074114508543072144103175148135899229346004425900899907859427783620573110296123569513132632244352419432132936392541782906214698485876677089206419702516581597550402974459036827661251946200863914751975531923723080245386054503657049116573907873347927614794540713914034599778120408081411001440446700377949029902012368119255162946213179805987206346052821461336572319767972603852468605997704716652779849239931429425217921328619883202449371775421990320409316012047732606712736091062751423436446976419254273354133975442679046714446973527273496070607537947242091499756549134660780473465278274103135143837104959612075978991236392892267595924782130807445912652987430925498708027665155904559334328065625231016564523546521380811089287951447349657886792004931826987122747168669795893333358909259093021767347711538717713382734535659357211886868568441678708107455234754377513132057666937884090264536562162012697614597006946799703828521509499962344944130451667998433179738847002266726224306590830147294548385692549593122283118873426099680672450769480744086394256592576316720826658293396594491529773721681603413466352264447337715575193513131519858265757615038084150838153540814750630307090583686535859147522400347308470902511850247669172324351339936197717095057314637718662120556531869005026063281287897225193524289051074167603004711276489213816046350730453051295916800271287243218074251855926527342936129696369356156208185923525610727437116241450898238491665558976678583687850469829507957396243062532691822482788021535005848668383009529469450253717590893046133880743561429390631678164238360988130925500062299409313707748090686556111160140603950968366041099174937205886746254104630660545324589041350427843948074527239437730089109345224560054128824735576536192787388437840514989295086732840968049844342140508463480508950288517976532954885326957307741847976603105835219076418970282605464205801366022720166809563544255532557415348684514396447019161163430850582651078317673932129429131673763104878133452874010143557653657787179503739292237531090713390934595216894125258610375390095590207705210140351659086694049908051020527929895281427992338661460131826232262102146735668578561324075435777631360935641135382548912521756578638847754400081722124828193201659936649959998518797119277759670220099666951075008203966126695249532128924539013646945747853079650648852332341874169337925411878797100235920931364066129315065092725338259749288171126444149435052776828055691509594375680326695055717661318578193294225644436541249934993917111790924944393263347242062676263972359994728297549414420297109900711512744725517697448953689364577805186030016884451205529862687890317606887365140998603258625514019040636059562868546871363078561193881237252238057223945106188687295342573523940913940312711231028195318177686802135514172193468442120179635198993295638489012219432387823921018586863668981295798484466677709533731675910633751856923370734462042759142479162379235047332717311966194111235994842354238914380368572217223643592544525133713961072355875336816524352742753914719204050349489839534646520060407032475815957603318169241201050191808137526642867848446379528615126426703465767655983306404528296657245925468522681519920658045866457364198663654946812336203592303618991165119002414019825314387616248453244535890431787068269566704711959367320896928101262224716423944241423740592622808364259298547508108204251497733504170145636855707864083984088976210018660002587644069560375233732699287617146846881378892976990636069794242362041152411004655042925983166810242997757789531158455251685722938232176278551205371768782897340598561952665955016864274903656079581662309198481312659485538161187718287766376172578372279137795556979920189290888631712593938348294982144897154256447884727427910535367820913969723695984770729236296454232515160556432525569230186321153085175124166788816424301218185710857767444950891532706231781425645998143183334410897578270244898331142548822701340365318636034100576338371558017363391592319819547233584596851421951791731135205825504639933293506199908357119567186326278086774603709081922184347255981553040514144096360952044704232327750872114947834509548553701339011345714443362932872018038531818659948069411170257197370690614379968399085883805770620812457789120430619200535153852523624275776660373482176885835701822327163775777936811421539509446450036486142859625331648611762455478196785402961451349221977087517890709553723781018411168487019086606412784261678391928395926736479887494966918962327098451635010568879088588068295918394718187525175796661489115774344202126208167359555282385030066356746264200287748339988191194086566885133404470197768018481280521638246567977773889186668032565332672029885246187071849330757618075975424844277870549865651794625089606941866337611278665249834065750226735359112373421885224262121971556875555407946568880338855326424174069141113057981815796587975215309688307745741899180680775774008140678917089318123073635889146269405888471840756702528846373551630366516189377932791142644656387667695903500077897903010121357825765556519192983147308832877919658624233043687523432027543242760572333542759412968833899727011004135000502106915939328237533944890797679204309137607043164851046715134345006183315178292584916583976724512873195343070305078187216638617358904765835718369747706367913993846127179601878259818306072530395668980629829103433070843561197668918809201700931999191610430325360629102472981612167216964805323857653314987646812484152690871125465263732325553509080498928047872718186593426101044497228152918894710445018513241335687075716913439395158234923712332211267042368935008548434745874623627035833797974825274442813707643443663901844495100978060917028848136266161413661186165669407023037373635813402129354446938403752205655800283340758752711535363200512150820202174897192700922523155589096620464655608922816539030860692315426022657862436526353167023781743137891875198748995217186385158049155422532202278155720847561588019503714458320981913738445504388619579187826208996382924781761460170518358283614150995505356359915231932888135365048848948017009811271675537740875411205149673228097992879571257380468697870132274529718350361505071203051803032058620922964913469880853369423358987654278234637825625283632637623180950969798040752917444386226397106362749110757546803551301707480840054646048721528278869595379017798040139479279082464221740234875021012728714720984567674063825516040544491845008090493164570575882031744143715369857517134993245119083015582864843512662230639422055615275589392075751443730848115413525688888729373310952525901507536400717462094346323155697593826938606214835388909772616008149259931516865577891449776878608568049130099120426480198073074661144552687443868661903844214773707546954519431583739284259605720692284621165517944822991315837051011811315365537334801370833445787913444075644117888157106422877568243129589511535870720334479008420049355028231862738175761164188401113927001832707856890928284253972538752944876196712022068583015438173133381191193306506445655717874412265462524783224007316517609636102253007779278903323501928891506437086068785297630394907615093422965753065889949694975472252036588971949618857982000969889278603890407470747697844748204934632404013940370528014844496235817896517233074618084372965220538570254095775720386742733634617419288734849024865964353144998559168443249332345579420145798502571183766099492317262913734702042633795025463054146264681679808578912735782753869103278115542201141590038776730217961719679634893392904329819843104641865918976803900157667503912635447911956822735241833414366984956181721279421457289649795171173955305093758997546338026014939584347691402114146302719858252111436177856266938137516623037004891695075005863058228266187529549061950306935772158785798040867089125528650978809420228395112716010244097099625610674907076191811906322166851888939950268812608492330051805835489534783888429747739489833189644318795620463251150004762085074511464293165047912293671266305498496296232545296297931344138909515489042552385376909557347915121611208201964658431841138179349916564160071864541421100557531316860729950735959435896464988566094578200579507348195638586614179937764789225365522806070005190272870285755328128840617826389243515077051083926735919949762739574213757572290682172060759364250206476559624070798177254729632724656016846032800013870491912055285083067376278305393770619189903047342747812587300557771163109048840965566366799004226901374187717752213083801165763562934383803960993161185014297875602658143134227098052787834772191536987704273818308179114229589657916831563565659041685699493013492797696120241917139946726898905381016285718134570093300408167030872906283428860988837520835250264201004209941719895865590441834153843001454101382325527539789027149655462907000870658926609635553792802976849396362007474880087542813452675055417069292387739899197490025397965575447927686596052363257507120619373339406130331920163303796577093436833164886162216096359977156801380036057698289068185510238122021840660061625926268283140362969155747738616823227145240570135554668686839081412723754041271651860095253003857286344364445612600025145162048382111270559416692773922443971187814525387591604626347643426526768036358714009339762635383665444159749350912667362523815876808399326494150076148794249800414061688984356949971280200711256047206613817162775939489469145695266870979424513726777190669541032623037002756547311716882553731149819853848656282421986193822474689957569076505042825591590524655260735466561193329907048305758443922161590693362717929258839954725818987818201866909832396076756737292645681521931208408809894930088740326103080531858532964571844892450474420739182954650179752504107877917586184489028605444680482238444490212700810709538157554981302935285007006238684584840671392678583554986566058753068723080494435563439709475097187994456180969018516032114813501955287376836134118693878788534404521462964904912473867899877781347544089242108493486142149198933838465957130758611646943136078028570146089456199173488418193373687889197907611816499661227045270570789591158045713471583629150875538453421045643277988727067679148048404643710851649499026287903935264061698886856721136459308299274340665549181978192770161148801813656321212393546844171458059037021922211571266804519313743505726132814464133097529268401094701619474501278033538766699978210910347240084193196115301593006911990971820458596859589531002859299547389024119212997223105159868148458959135764464225814732616356335235187941104720278345154716710197784549425618642906017676550474103279891686048833650924332732804564216808561687783498755899524613823272769847341040806684065031898078547746785380183387370840427470170328759628831422090373207558596953009169149686360137473879291753867639220649450828575183045813265742810550589464401632963704499951254517423987979106606506537227116926572823245906039245374360838472042012716358301727679773771911326721504788929154765204998798221997967783714293572239898241493784533899478640939140181959802439996244562742865324457049873216670138428850686149705799884842193492842190352565794131227551380710536531410236347105519412932011672663167711509060122990399787607299872863909235702796503157747039610750599574673450414810763081309192168481093308439609104481173249217919591189769742710179392137647268819037244904327314886850153036675461260336660381473422752509462537364446712987878985675335274284156172488159894512040848542198774858059972905993572836997142941812119341944398128082389088392387261661006527183392335816637101948362713968329598678945153593735377759292517358070105882638584681104364335952146123674811423167460675980904791490981815349040569723936016784011188802541913408925960416385779988123454373467846645940220954780798981395841978649727259166507413211292743511350707709465609375985191747157648194647625737520842327975811506849114775150195032408579869135327795754620436320627211674000426215940783715458169593613514814417097838636679856454474161271175789852346176963103399700305040854703450583994363791686883989333466755535688801440839445660277188828406823855655105938854552157066583078886494362979611078805710516151084549558332441618924162265715612428367549532974251161294935128352264434566993987990097503257675590650568733226094841843120061684041649614436777261250197421994302311348301579772231736292258029690312950920014403727371718871498170506756657957282302419456824837130316631946839668130888270632778125829363293679004789388706940665049144022589222600131212127537057257229313337570130875952439150613504159073837734322162855207982478532337836924411991124237716444361448517267892461913926540883071926991722764890687421947929616860845239018488540880825595176148169430131603163485869748562695621810663243619327881721681197635933188201080809097488783839997235140041271213570850075813823597659164390929142054605639648128148067696929690692853240799159290764723248222164843306957219958264630903195525887477388655479832772751655910031166651558214700203882526103973205588746224478375930074189060705873330275368486232681616323929192699649118085010204555229790772950270063290832948622341531825423478115826826407893104367547845363782919583291296539925707108188459933655101658016272194192727940139513261702000684860082553700782848335591600117752957350449920901192866717605212710002335639787209665596579991089549986489533019440453990537484738485150446115508498091926977798668651016135830941924926841836849649124349899719033963058414264771126022736749108842178019567510953037913841156346784357637874267441650919300141985088255511539353188248275609127841328081017923858999719704147726311414251746911187800643452062951332881653757409604217344311865372056562390241658499766206771470217261525881861934522271004297117722188548223220750005915919571624373989786125571233818030268459049589617063087103404640046971690752624909142467051586187907371639555537767669510783309190164991150291915699267531704941449487524610466650116548323008630907942859452414033398263279997998411890031591970429688365536980060551703551163318761162396267031162276225490743846866291466945883485559771406319965837078871893755281736527414401012887044282390916111537658457113526787160246032134229761059786692548782368468836195355291350522254368183867423666648204231516894762191204477606552915993416580946946583732532182158524438498620174913960465495408986988399425369868660144215204490924237632307386357133849946297263012795873620536440113173626406790366400532098532222125443477345487581506352053779125791809897867579509019768380274517791906202005331514272392403443558052066564218848735192201125000630562798477840050842560596257864603520690185959862077883196383038291610648492341669021572340536005877721886135343552067765069684087015225267793359094120321149412324585085956201008197625775827611704755747110683769487310656134442661738259475153397564597738669648820837797104253475552826505184354790342871247064495183025232801799808321373628804489750365991235032722490130945134753582690473831613466117734043084628880899042775201817251987957420003498980279597547607150315420918061565652755658875610787867100091555037946508174489961792016572275853879757084123973582955345169096319130070840575277787811797336823881838407736014203751593053608320613530461104565639919713691583504087099615523274389836214495988187759194789288609018825299742150741412940025616797907031501013282901045288722334235821135813721208959224074045025949756338946247875256452496878066016866926857436388615643973175300321952014411190965292635683292715501610282742630832085225334464945573042544158439524495607138259898599820237483741797273060830085278151281588924132236987711903941229493137059816196883208614447219974588275301209199678952121812783783937351578502009259519984046638241342437207446949482554722111796310821251476744105015763144292749760075979154303960330885832090845044195758824579431574629702263941096599953047191755787116473935343887594169099632091084508824355040339537762992769969881886186922344093872674242593129872200355893715193751724247654524149079902655454409678478053190180030920606180762371432223839224705981851193160455166270024264690844438720831549314342556567094332400377723055317794951961373723314593712565006816312759052755025846296940949342524049749302098912751926337390206547788983969664308456865465342527260184343670900701135109571948157352944618344482672507672319134663175254256801309707188692411618105940474855556172891135221374771710736570427611880065697873514862731354632828447524161180053658801610390190951873126106944717991217693766183858877360119954194111716697768588800197186606974264564573123422372163697251438441045919695203488001505165946253208926889954830955689553274193075765051305755207260623460061819262604300369722586107444381341664945770128680858963714519373382975814347075966095861236551396539562779393030454298408158741074315732113485348228051610516603035079043978585898099090710666160774937613415137625559258045279931881024527208989516009847199912427706227054684002586601883016385987428579689110028224435885906880404983841037721257844848800250956470794384407090442655347736306054028831796322147126212442613243509330089487737912408667053237702299879558320254733702467874757909165174552882803584243217601694965375785896968664232490082433311336179242956447845351455728866254360509850975273891557042003632271629877478216342131202278988839518352054224516584142717984291837563968651281964396874983730477540118453326653440576585410013714107100228314126878132525746039703575637725777701431281213592925465968818627213670703703617447254734813003387530960451676413377943114151569798123546520157781915738644431417377051988884688598120511178960344530344167712376105267643212289126991827740034750866149200865793041210271358258513576761016130996937612689055431898057259312622705755846137523756803654812418959662723542558388652549378692627669153310526666524632149163649844832986288566340039097136827702262288850106547555833543222872979837761423855929529278176219988507192794680313780207798851562651325092420512701170958238159113063491524214367667217702815298864549181288252775703947305354886276481811606227024175047597519373343894265416193629013450637231263311529245871329798821484813130074381695394870157494372299680506544980924791529876523034730779602379927709451324185479491945828827963981284330131988599196743448635921174685211512486700408364251940961110183713286508909220783408625405048283850972733712542894765617927386516070925994727220441430041179558139409617039003669970988288651287378746137413359914036600505435018270235655354423835029957922652667843076234489101793932963728311449343479373241560974171867085354544161423574719709498100834186536189356852197559732525360124415663326256834879032409269656085617058131870264043990978644466774113105358850490788083413578441207810858602666824232936922876640316142331671056173620894849591574751501146402641361522405325566567894217982403139744248479398168562463542444276454536171083550490948595406228910971278680656175399989483362705652241239401690627897973772401265768304000367073147021712540320494329905302913104871418862321427062852458086651524834498136581893976676368297309645736454930137337447296630718488528953766872318346930653882748178038915715333964800391767013334602661390455520302002466410794102158358820663400649952773577830981120079983220222015905939627357142054565953644862742306935735288889346755929482214095005989557179358675538692952587981481547897169276669940065295334288909524856007857667989914070028308909388082627880541116644121893850273848650291522441189292205020702888426350644426877899088543593353609378266347518838062538955037842013817901032912593920539101734335300215109113986449958258934204886734420628370761677260036075123136579618326266533057178635558590521652800715422986697330444714103698816674649229685239003275307045305161688883364444927037415774400624129080115423206083585077456047902382133828997063420046498499224874911632834536111760124216712995927375202843838016793897048146463522841670115177342599067112425657984367762717607646560890428274177752926066416397483259941886718511886026111572177915384403113967697781654637548910347601358649767587843148634998552245633724617624512344483211876381477532581903598935965856009186705758677837793874071796105634336862647756766147954855697219614413875053049473304729003004416703209757784948445098543601945575524146115412265563505293945158154739261341897833775958796076156804657818836619098111888788779585733050439051901525086248972774763716750922155322761786771497612613469858494363505652201800251297693093454436147866414292958885483255088497049904715171452831330776085295172287904582132101237653147583342483915820429769592275818558084028062901453826486170264957001989052061572176558938195922918963341652076112334491752823397910297025405347003211409627452521523093096070709207745948453370668313651799318348302527678372066330875876941730167111859790349882405257929667876262753887062561089094481007849719926545106271885547616498269763175014444614681184692428674514846703606913739038346257154959695107550030547534639476858566799988035617494128708523500760100213662494684918406325173400666146378440077216683511333067392739128317777233620510966877634141363986147558642711925996196358732097298967598125017519966753340642438074883557704625917179874177889293375848662658754836986977378495863665396608277480007956520185754089866252469567264915367645720878005727173893807985349989737480171712083068054530163303022921773332144044796966836831478116202910809134978958730265284535547991283483961797223625828148536353337996332941362978893883560077087351377764024368386206117965834768087622583333769675849344468821933675654476599010634298453363082505401957964514711530638915037650769647822136974208325497760345831407606703580244202646170732182357175317296156556026787386977266497567610776471713507963717760918927179000153298036672971120535714349402105034660460323604090985340769076844690400995489985772067189990470058603924559037767635269925290479224273049635398928574507517673239232028475909620402838035310805736061121531556674813371135123397189067488424279303136300847977011795121411151515764116886578458799461070677793173872155787588801402938224129625030257818826891216638534711947541975405991478358169294146092941969748170724781391823380783263609608448854820137217522433802176728183830453474127774254651256353138961466338772923680318547869254164343646329600886837662110648519852766928683307532597392734085699617605834159090536930021705904491996314426087020173371416176778372386759686002939272464195003391717589459804282993381071136288863378241008331906261529743597123862731701595779378862900287500003792848738903564513598509843160657636237917167292894539978972897745763406941879279572767293865948472644607000323703716082772577366155612227145239280014933751251500291753823317200605370100957065299613062064534229602945276203343190950919198366118642522619391528383301172359426602981519694513114637415093729072663538118170966865267600792683301890506274555531501454562247024130263087650799485209012038423775999018076062825021255215558467779491848169466001150931870664034841761980178757905431959275053635238319540366407998341788148606179009823741817128653848481852823054115787335582047570609080962324792307152733216984575191566665604127221031213450308086051115776045710057864956685123337230366832313657514417056731781375644426451279565166001211351457710276913692888386054322905005013370945744087185780401161367472394907330879407908223271957627448718804823555458014396027126530394233110256508903963794953857588027784533953929451365208021426877619438019334780487545141542234491847318133479843025425416469371345087882863354539140432957719134898891413980757570905033556668418644678028122873573016998241583752002742422267650381246226939049628056004154672897440751988945076130571740170319380801628552831120377519755108708297490832867672826448149859954433352652278725715337006094318378208295901173553609272637857739867402816616538253757099014392613783219653272558465417568203827300924164796140601210254450180061007267753965686816855935301436510031779184685396183461123494139549098852706196230053290584805014525854552823515370894787034883814443496366191627554545624726024912904517396801122404157044860315303068354241593760605048362375632235088099443150746663589953385333665417991040323252341904972882091663871709148219181851153075367067822153540109514102072841259063148433947864923285983849945979737759064840126046927229839748144119651874197417206832069439738605041278540741498451764380527370888798743063862410682202265063526250253207293176120590329240576581442917809441822911827386404167707931685115499776695057857529304011205525563589449921298114555715738990871548935040431241145444093323528551129707357437483312106542238192104375319211967004440356601061789088487278580910136550870466525876668980517273164553457318192057267383144830232090082730826312973358397845895034878362691765166454561999642310569877165502003898169552431644498956912732689698231984919974705168220199115656456123227264657565446821697885450548816346111266721246784103210086469271404624580745259256128200536876195829993334487141558441388918072907912596633345296657797899748564727469612948181525125799768759421570032737546183531699785598245115934252090465378232238499841212579006159941540004179807445900526378322830027724200923108854863999644474501161737837905107702135980819381442371083685514696070855225347883888368755104829913802526637015399061336464567149682051350230205349887011984779111383318289932645974281800514703365694400129864882197565945294881669646501374111962617691572202168593697147114694110496771847782746889729810655747562497112794205254388723942756383788566965140920413627867523665194166653111936482289480819360166355081769911729550779257160078766835030489883155667543247112510924659642061025575032674282131266154062331800624671596362474654677267750214488381146029143536637419282086978245401670660326225859107051281100051099255574171164272292612474141706935646310760344601004130647702451240754837403368332143310090789039693315581810845018635718128649749906398732667614070739032727743701876287423847404075759550677277634605501426336065679656094397610797326775743461454881344765802491773293575211905789061449242498373636233799335836810852377730064207351697557104698511327768018110037286646449384107881627307271912344868749663424688254079970942702976611588139386496295989749642225000698879473478478205637105258831418796395853124390811173803794024180687525244142590344291549479042520696693208223789835049766354054167091502465202318452054275461874413577589212147359718741878168148408858185892867193624994621709469377486021453368648607555596171295959631508582192567956145702470417983493035597625546022928245104437611870306488721622548579598542297546613867538766498784853779308107250777850951537823224281347367345885764808077084253961055735866895823307081975009127126819053742462563751454497486699519783092109179547698598304526196549244707897864926656796488575436649695345786406580834315503194321213899711640411946910455194751430986595294384219949684408198521641878864148050885678405615048636431805731844212807214476890169030905800801110553108267431546197286814723265702932357044895188589928035205145398605887159410235527295868902998938752229811335589944964522643616001572277130433664490292530433490505061203402623667583533456696506633358856534114996010449708069557054220828019432014095448183942409556407981067717345650765070193244768989292855722512385757225329569184488605392691439940798886248362061141563404517482808379102372257036858816704935931815799109589878482541045697604365753707460358750034790236328282568925969073577118221277372558284941449175547001027776882603745995145226262713275509452634114509393389281316967310718045735846815619044377861242160344219201603543039503434557350708652431249025314613368328766537852358521506634163447752199810959562681452783989148359760253896825451330957718716100193645655714051778290056837547875901691578141086234423704179437528674775017971600034264240436955706323675316980093743001494160980702564782458587469240858103853748970330397000887452498190751243569593643439665217183498239388273897448005768673930558421770045024709309641547081011621967808839543927701926440894411160778678566505346401889980050826126298605249249607868680038735840711721857630853912841850560744171539721690610628837701047437309377287326675543897944113735921243988259325799286232480808119092307557802025212472155241299729848140777855124198329635746826314458192513552412754082492390569848972366576306260647580030503915292618115778407209868113388880691437706148137611335082765805984280863889597321758308707378544450245744515803873315294883891970092397033631386127279492862738525069042076820875011360409280806503579935465070348116003753864270222689502645697822197853028864277389492506815300087393685677127165204037572111192696125935416501269778350059597464835372854044349585779971438838984632859209321467151788467051018173692212268132487355428749999449201573000823650079382553317783063258979642156562977649327618616650806910893693011690699550179467559235884425190952572673958646800154666314198169109435987803109225689729211687258728610080989196921311579735868340810534149040123282923498069799498519200861300884653413182189162659086426494917914516475357874212136425631221202578388038935573774151614768244271225841099698672444756410441770010624439776246125288730239993616674057838687999204300943355744530790133363672580548112115376937748669352396653019819185148535693705935965535367904377986076888409102496488870054976183275852950694653732368688206194596926393839364187593661269624005605242124298186674352257203121132026410614798064943679460052703282060987313944669224842801143790388111794136015973375574033067656390926016830657541957316330753051405844703627065967548127756603224599723231779711442539818945660070968711258296899782076858320127962459081087675015538023747268754316138913604558411246762391070704935529853165509893145553089905470592382355844679731568879695968760034104606763946505938251551134904486978981418309900262610270962965429135108017407230457676683127678187509665105333430124867885989085106638510087754977702046322352513123492234705422829984745764938155705829873720723808288462236204784263738155118620955015651871082308090887364567134931646714901916905190266196776269155821799776616998235338587428579494400637900859153129644929226701079001686450613076147131330348750610255843535892038988578630048014092191649870437572325375064183734095445248035766918849731550446447910359163733998239510192214055919466974016439495090890371066873331784377452718647110501091765237601840261159465294103322310397783488494817669885556074764530010892112007716609449543802914028173299082331069554415467968663451133798655968715337504331710701664494169078159000038498711748841642063138994760839304429087400468011332594800398164783456886288926420000341040062286667729630920172130241216422479690500982898231517433357850127619426042944466315331742247554271749589989666187075405282792374885376952238549951876989983712166687209754150377332023545478813247009118313012642362997008102180869239273334913288251371537229800080409685432080003705845934105783989961415360875856989039539343034499648872419527018278049102216406491826398403132059973349791750132950038883134112182458660090086392399491343463275713214471832387942002136402653973969215151639362598688063085563303428623906004041612016602706880550341420159294364079639440165947189711534847013312811492675854879156218927954803937251230968557674754627488003740882959648719393219853857504855062705782112571621746682341284326185301326721437903103796597428651336316234778652904820780677174052427914808151424252382423362955407430007583667564181996361181635022510420515834701666926390090320600781335798079608085610405005386105054238676300875516855658853124816821665350783558693594829344816131554115628648225663065267898194353010585489502952420382706022572107841311656881775185035773052518948309236645114013405418032212777735649859359988468441981460609596727644816688882884052501818736345533740408468262692501062794513615494314118600247538462627104554798515807901414496899731704227498239690451228436252777909344059530469200214979162980703243812024345715610213544167614889904651588735756110361121441165800823134313277144907000049162750592128836819126802399832842566245187911044091711337271255370408633944066493323827838265904700388912254484650899618960672584756672230452516485782003674883323282074014797267271811820407215123308228682605600062884780427764560335498452141476859216907001779526609249754914486699709297485326733112299515209629557531061124546610938160250248472334694804583567228886696233031046218758174380963890166231576669136793895463058183847817197406498939282720188414067997483080013729763916668608078777547492591126427639972691082812023622240265068782597097340035134819319514497361848274191931010952396707898708913686317810896733580750353253931817994210127313309494578570294370885452726628793885498395678326494026830808093932664729112547841200896799753597562750752452206165799704684556840537869208987119011307447111287111306841446466097635777209687661086553962065377171753018044935462662877906277075284642720120545353761087147259551503748383242464902149935322924009006677737946164813559658417684979891320645140106221705618718363615282768773342303630431526553321636228972063965757904908269507784201712894736771430814592020861126682798235559784147278335196992016576462626869666218722137606501228529483232220050307358711956989127601327593887479040168198092590808349531085148736269911114216612874736319137027750991733144918202271240376471318685791651785037527132009318022090961937704108208184174954911597584787564164198870701949385776278817750655861764420864487487348962634497743519014884785476128415453257097210310990881313830540603325942851745186264637621491331344338884701255099653719767083821114135550322156397370936216627785875985087624495207102674762254994126566783728793485168580983957972989486212710679099361489289404897849098940448423081859310359800038704315435365734750499227057613176579611742163976696556687481743491590450110370409049918781298408245175405609051730927887028837781373485857211412817893053272774728068379469834568597182764806715717441857977979196661847056941507997492739731942775101290754652545841592755442097795970306789913575434150524469244161380492201745754344534711619290122175749128624022753763436266898076777523265544952004110389376371145175134643713765193117447556364511601480597292566737973674335353645722115295073512534677154876055108466266731346204857802691905654852015990517756608914282860063445301904247535201533917762947512598327579897809940400026757074294977165574332894158932568587167817661915877375038942796574055722408666309182417171430282999213793257720269424777431919143366686596462852051874110869892073872235411550284567538878495683179127953309825754413259437266888403321949391447360241174158792662263651249255910060270602775805464916022569143676381301972910418067717541011463553658952055718005180683494847851190165018871827692918000197724031387052919313094037189776114762391785707596165067923597337585242174052819198279501613123385628572576406598827274980562331472747416088847297103213059335122893007279776171679483418307735443268531268741841588768293260137674800055986639857970073565257707633837136224887555841406024734930100642409688426949483725819944059195568161502696383470844615707739654776306677450251451803351626345798267771353965673291023774144619675606922377442100000569580807928041837576238189291798303953195091139648134597624379428177442875523950272325739790494429443762310073448870904801408338995616861139170327188535396069536707499204854664620726583897087891635886935774251773842951100035179495688258638845525547396207702133774341447838251749520457227766720323743787402296943477809166819222812844036810915216196781275197613824992689631581939074959829306817869304912469269353951318093610705747488898669675393212943474295581615791627206236483664078815331745146758616074554758861761263052401142011243695909098206942788100740828264010469348652163259851130534788372373212820325942987991605585528397645367316950590335216186772917513603856220173957576366048993518834038740021892726348068333204914628985991381979667061032313164667478705930825111592510416607341525521523545398969338533992722477047651252907491880965731223752199275749554993143039107654821617458410523701829204007890808729867102211485266460773805041908509629342149867853352240458946137984724889889334168625310065623443771368428635695344471947277696794360029608771019700830534525518731775867341108427924630678862561042385229488018046256357722246014245317892544590963698797936941684172235748708504314632848875300821859651298056055172256637785785024232395694810793831455706280149543991152207860240948928395417366123769969112408461005290942369820832275747543087831001268953640199467448995489516979675655484501982583282883851553952041938703728950801434719762244787674689255116879665159023428909879022749701593535212273945004812527653843462220192036989797544058746299352020630883959890267113739360090579260634806058672893361672620586039691654228401026048018170209386108868585883027843389639694931567711278255330704564191505050330256773388380405815424260135822821435400008103693483424240218030372916690423954004752633246915487288916205068798689603017484463461571242181102249129193985502817354935322996448527709123584782262190083772347749489014332606405508947684445355751602124119024560601961547343777524493263266817025753271019379920631298338101463825062566143976746209606566466006049501105776888436686599224360743822964681473407366188083609348007676574988302322677546441629909534317520945845089703785667560582677759333230737822554798911759283682606317695486671578511384540000109306380883255458591471499116948203640185078618876070479414573845509451971287855572662892997071354869966444257533232531008245823771895985073649258788267681802839485307656528176572916219713934114686472862986385439832345296635865557996694577832967879251878727219992561133960101537062823556837476563612847159638986685858719711944181138806600123604156467156724316592146006549549973147895875518758192084145824823917939799540627411698958064360413261762228945566557151494522426259999626495439286159949749535069244337790331884178766437910087068698042819220813721168450128482251855689196093071148249400572956342996402217136073515649295200437709890773522733169945801750460077053027530589160601440938885438714246519027599010855831669694887808428406180068488106191700838971613879387933679912923403809088313985534121517236423975396373626889160103214523591231170942202465238171111345459085815328925261013164348388519302215211658433192831758106435277157112860452381495272955903556374012243217446394845442449951659296013710434958190763788248254762116530066799256550133820066958429924408910915278448826360125030274617343886302185983908989915043730213129169335032971207031992162828078948160683829742897097268628435731485481631235756917188149711210132363115203586667564061389965652035127388815784819969279920981392062325055113240966009304426882525735200234704021001629922939799778209506858755083486643020074525440797600552461037172403637330648533811619129408368186534086889403350938096559443413753918053547710948192153088909215657803241775806167982019225711685446711527627269129873202845530478695735950880012600033917006357159059403990802450524328408155033848673778636928732036923154194927299283751375738179518197343566792539880558552471257011770725561094756596672111914846471521019401977163810486818100708069000269915389087196927341015912131393344897103838159081177265825029776125841489627290456616076898767776604306255106643958848335557795045035596530335673513736543324406405695189559177344183771567981606669129748246835914965624611713306531462760201515928704941313568548988314944257084725054240764255068468240502766189293567758448334317579242992476935849825444236563179477955003887837863162354352474339090457246688315525449098850057150771474545422791478624755748286384250003846239257860532047252714809507326591052258925022059116924873438895538267542759406017212820529961243013153865879429510349166717275827834895533746889519105159723331697356407777492657455636933928310100439102989378998276558298771843816644475851802103480814103609744949868002271857119015031090022125198911344876797782718498357466314207189215714355820832770045286951044249084988832525668309194352326468245148138058992179791095234786652592949070204027620019386867447024809452787861791692669518350023409428148314671206760036684685489129047182708058748574274579187087888290704358219594923751343545732429728254717727291614474301613283651804543433298015292833939541675157548993920167490398105265648716987914646436322009003496932696542184526178318737866401634094420197864937148566542367738151577130112660339656187303874253750386435405255954185854218434942638641162578001284265410040928020326455418374982732224545850311478922110487147563806987881726097664288609075704938017647115162378652745322644248883741644696690621224594713036694749076558532578734666296899315363855788829503214602508274161117496427131523747844059963099666050706760422067400416255794631427936001695222013293440265457542752598032155112065083764051382553157343983394960019357034679275969862191642190839005892212849386385756127728950282818057269603448658953188520892842953727449172736274766493997431537895776988977829271021240685117065714550718980740585829031530246162205763852404553318197729463859145284859530824160396512747052823934908347778160033975728211121976267027020844060691102198409493421606067331239944962960049039038112410310312611877029123566020283641664190768822723025932480337486874863196882138691232386538366459412078687323514414836365358527528006753108311401518259835639531718295474593889898026066450349133774908678182846944235261930355475114001606701038703136887998940548285757260960280612199354816360365666101876916465984692762099874326512316435113972713297923043660458012372854316059681923750082973549307665963013765740673452721902177487612730640431650783050473704192201740243325601524796409990981087836008868979525933368318738816629822472331693015880140590129489393390339620990064739780713572368235100157672670594958538219222275164027983074352232304847575992461250260119737437655531935963425220722217571686066648422616554294775137644517264837056982905376472086357440666345555494695284701823261177341807403597106435824075184296633789034068452358939707173273592162262381656742707507500663926247615089582494489730548132696982678164618745883157130585182643659750730406081608920765348157304486551767360405677338036480698463825203663243171915416728006926771760618222955929690445185286898682259005455218279110551740942529982937789597752773751495024195007173277970216499740150057773033212055030128406883347341256993828161895438673722563730813442302024659383626273998074063667903562950278480058312525056210225028275183056382890468714057790782552015415056037122394334487258098738538192866943171226917121111711225716109580792331543415800809137156835975724516445763472101331402954912339872302062398685287991286336823630633593639264449089968742281138031538506009856626082295363662252309644767064720214937757733662742645799714724460505921552212903247367064696670585510439386428093796948443652596396666863452888202557976167843402991476385566139193296128187246559234103638713758983909271792338235421923735233536102617729019918367564768776978472031349747033808790647327464391648621614905262051833446609854720371898330371852979088439713511688696807022049958387845778925510233459848878323456226452830466390356357338463202925685201977459828954601757104951691506010963933146901481583950045198776830193780257028333039311158734967215742296799168416545765507821813904081640369757492286039656300786173418707884736630735712650085256792153028381321309094541692850487658914995041958416885886160020241816528362718322393496371609756555971732751291191235536530024805565718363639387499401203146344656077908246466815971020380528519405539064232137216446818671957717631889135937978361652837575482129411594135222509305488589560670478590842627800410015885538500554258331217628541260425765903718136363776182562170570917342713684114482742886745796097283626943520294273118318687393408913978580391701984873773773933506739998905169816636606711331304899314794095255713612323038677909085163194682700084792864502667965767410844990736754240209138340487962808907058693305670395854198715895900177489651364412520447744631865123760775199802565919018611474763944992631267325487806946664280775980781404314408501752191829155760806248269341300329190754696664299216796108228572172196515238213185983461715090107615712538949461658239022713942190429903365800972786330583293056211355487365874498033026006007167405925337888849030720808742518295454777386632000108033579414105681210476126109926140165956636572865767368522412212311539943930316085071439387116458124344131010315619450414413365356112646029048066848967146167167118504960322984392405232411458690127714667332824547330584814500240854539092006227423374799198904989003056043888465374364354247105431014381084341225643934601130304808866017966291247483508315650579465707212636848813080329858212118376298818425449361688520622830400777722636818473152651682150388855930720393454791652350640815895311476365989727713671026942433693991059558570495345907476243536295064350715812430672217570578412166950461022331758496744459678654919473400406944133015752397860662978986825052046996840229426701104122918242289516321946002615831078685749341494247218894075388549384991795444743392868177429376704899533495876191131398959906678969069620531043702469271616311967393395642528729649034433313526196435196667619766786508353655112915938909808542758699096183645525362550037245030959765181938842591225039158115413756618639356603651103389359783886190083268785386675654837491997582375854275449206538270709789206919832444302109691899401422954915241890304274513096879208178382528106854552937715759877903199161699231259476055567703817088348271429663868542305939971636995334502096862981652053056210012196090321753265460619688968272719123420240880158501851668105260405358673197296554220093361690192035063528361955258499084564722124733849373245778349797529378802477753527395221793030639284497970618290417525866248085310622604962082995929039781541502283085370990134338108776659854625372049726732178037478033500560666017402417174089845045754271886534995631461131989238240423644824937252498753515745540249540898128934438634938214925780669960921591722990470840444764437410779822997886372640580200953989039573498275373305145192189013588860436623066264143632947370974697324194097621007622517701454385919392281790050830865962814742855487722579831808081740878715134420335818646808335086411714873290050848674466564922980550810508850303119349598428624885805966881139332855548229204795758513157950621640477045388349862527925834381411713142268146562702674350750652836538400256500982286643524864401855929134250721443085681233363225404404810207249386136867746423187069593059136570734737765909580673139333898025077494516289002155151963224441921074547976042332611310545209002480399802870228403503674838113475823410604501031806818765627711109182912331352127614034351496242407438875757177045393106262411683068424574134595381752044470227202252300502926205823309786737721756170476723881101233781311343630073474311478851673885049086643950624862786907236120745768431668572049370882089083062499362489808012885921942716241906437756965250910962695538592433057091152786670886383726811344899941565113037808272484747253770134497065024292255224400158288921139496244736486069080829656235799383305425869628856356363132529039231846916846475276094122396146480008591860704088743112639526359072137685376263993715258413049220636899396015631671518802710344037444624459841156721062367613300811828202186710778182690702113729578428275542235620599313346986384578649194690351792121988423388471664851206986953607378207723536367834652212375984742163504241191659668539677263831017993796558962143465471858135904029875605900283286525525447842224501897218493801864994375637878773642908495983701520549029041625339240082300079089323952783693919099769916294196823754869482658213109332973695622532975915706795140608469952116057245231299901433175566750333410410491747797061135191418531295426963898198925493174571879772514521184868354820025468460885927223060361225170996130565599571524409059639175206047222379539788065351230417257974472938924203340700053249044250047660281020152013936548512754072658055572688347220706786837469968872376192218535015744451730798318591404489863804803031707931127366763759585591313248183312900207591643071814790564021133495272239578904973005865938442636664136407891969453668862543527615303438225135903838703026347496228273776384492173464075847711387286478368631264807259435410758379994827873354026151200888890472405456071772112342759314018833633136441897202643211745145480275895279564371008661372065791111401304826499335480447087641384814995688502225195088963111973694512008208353560728388371789258116772336600169442928321498323045409909511544484212196749267394006892302998910414831960173250427165490532092944940834353699607234048902617272567880226704228314879316053905209476327190787196832605399543304524425930981989692264799709564277852678863750262163388369229983461376403784432875216895195853385264233351286938604624889854430696102704481523286174549526961073162264803527173515491099557652745577588113257678778212506504868018439233879474403777368786621012759373247174447059707184342400747200705382456141335847329191231617312089158003989043396162599633889454088034609109335145677222507772237068064786640732602573703205822444128081348276221841426355045667788006471446064319251165224571400507476990147227092181155953481433140916058296685995852021601380135018087877496272160497669519033299387168179970224988332236855169804276451393013738830439232966782345508565269951906233358918715031292593578862931095353914735887129738075771987991389896659662745735412656670521324028102676786118727356189901024334349065978680396849054590907911002898060334347015638719946016082261384331875081155872548052879749550495335231032752974342914578185825628737817645931166522694674563685037668887138807479391779427070184498731611733412903258130196847302101922797813186097202242280561402169330098177443306051399985649442706182614523530665954396323753380221258197909248145600605153595758589928727664186862204767434997612296146192473677634225086199558222751712053084951587135923762997818248683566447549758349147419913716417325338713519508397132777896700228513439581247184754604639882880145249422051178016863415297665421881986990541634085830633660117105110622010449278140189035285059533389149323162174682676132294842243762409316522134740082777194898902544191565937335739446399316042332443903124203896381453523734697025863367617303953648370791659128181340878146612519696985912561626950627286673968912310063811344450310203128193420818694394298551786425271825128172218746643569593519339110894750097469970487127975486306894020128064599253816936423047953566049793227120577391706076460940735291479041501334670222026038562424546735618709059137482722775990558781228757522477425932902700309911389152098434784075226939581413333182947680166827785360855072511545494197555272218646340603097962757751695770912151482691959057163285111480183580283241212203367017452320815044797100762941175944093445996350109487444977991732845353958966658089014042714728008410897229198216557293494608059945266949470447959912004833696361518208964786706844344222647590116418649372512810917354424464808748830516553794896906230302553592111102296290088884894387660814209369474692378339997921381767185902826972249606437230991350204004324097825831660691198548141616785008822582296289924627933287971308181384916516500030557696965621889921893073652554009913855186012830904097794849874838859593376953860354551084714423878622899326748055225796558644101311182965543123507529741355673260302788339823757361857591242241248522306285375312425037265879637999920618169127827332498024473290256082015610781256902065919957868359376116022348541272721412668366702699739301982571558631168656629890019603692280625155392277173690490473501926134403126744579182022363746828026162271386552500750804912350564719778074803603926585944678949354103829747807168373857779986296413000935382271059628400598446822873930548189483803730209470945223649038103442652610515112431751016674499664166304865095856703479064844475603572740464921577195547652895506979258916224318368272639114446672906780554167767248933598887741467669190700749601885584878358175979150703657857355438751068973716556782658959774009658211615620481949548236576158070582300787904624790944271365358393056241458873996642962668791305276482898821325499845666472443033837366985325080020659769416438796237286187373825258139966451464737583275327551318515338925047263396837148957383532612332778598215868346967598008283611419291507800830608204476613425059893925088840670015079010488966403268350591987549519542939676341658107768044114956179277830809012159690482136691466968136374276005344839009031011371662628246773760933910544709593320846668946456112412561493299864028093070043703377762696167261136377586274925336551543688366074941696087808767970435010213973028705631506240077970032512163179466260413620648509003007413487433318831004171142550663886067965327204627525611021147898220886828372297833990018561029962838816199844600076273617079755567240322547029045806586444023840332103312265530318965471960912941480180948979874100638406298618945416833727819526634074285541566067034713375737644402298759941939084423629919724000461762842947171823976563690576549971817625979201859231387533443092082094552287034228446298170045370675080778840593343079458911567797758284974119050797241808915001861061903306776057631985633732353777233631707038779683209970828654997733044312549908494146822578103310376238768692517771078799978029237535674592041713568244680565152835158892878067672318514269288583523658401987876835282110243571299410015864865610206191041185456861492448336198587870713801071601462714075929638899037599886655427482550545363690901861561936242837135543942663528772882748780397063654166407979074480676226020684358090913539852994846142272635818456611988317193768230867149454359419123174457561104390924179442117280109039691261780740737375858927969127638801592923987809500764890426155494866892086545365708713357509453049861924444953738601921609426412291666938250514107787667305724647669999677640492741136787262004027769476869097337078514217205900633573981808164524862073575539882783109121644783691939255553398151496547982773702167551281420360850480148773093822886885527709478229625118718331488837127351830549151435968620152206534395275928867350097891786262865818636500480080288798530996730244369128623642289683439339077080243833601244227083175453504957323941566054396830755177846484903449678970990147243531231841619918441623775229072940471408959694626315451477497471115233427515202457622960416671398857612203037621112998710710574800764463372828603680942317913039832041235608125594004217220959408458365341444780109358893646085836092364438029216917105926649826100235090705714417135310336505955470836453770070654329487086479346458038208316252320408141265830871628678948712859718227353418402337982914494779998692821958501243993742519561091513861127708600197179507183313377956023091909333977565537283748265233227096663523008600747706363578016027337756678254228193086419818833069259884641475319547771845216330176253343084890145132315528366281585617993992808656003324875094760412361790846864532210868295401814234234668170779934198214658480594641753636152449327905828431046801801081903697960168879613339197378334890367809303415359827505035461521937705458916375926405427118306447606648447914030031367200268454753045734648711345887696020603539163861004377595617693638860688270337839886722265353633853572798686567172054996047264975066825347012275738238275521898347236027551602026939922901249754688284836856526369838416776419483549179792052205108260865254633537764946210829677070018760881475080564313713197943080868198646320975066213822161076299845853027883623060713949987955501016799811738747539318807031284245983466823390960548564481264947129913821363217086740544382782063907138873734280590347346550112458463363404045540034172981861539311120948447262034952303528194471470657636872586129691540342763118573367441018339197407490484713912588625599809566366488716413090296090881001808747956726415737434931758749935164949496705007816231586622563916050849738822122579895647137193282392274707933891836544601087371196484719861445727087296733927519714459893383454020814412952322161466032243658784678739317716641539347542433308211056827383050172426371612359977636581798741606140190830911973396771465856183580778251346274725643830494636457980310718068268968231327019716595226835534134392840330073248037298364906201559792044860356749932148525447868791250330704826354278659299448300328904373875279094186553440969203546793920590413300541952858902785021760602928226999651951072349396864468041879917131825495198065203453041821339497333054876470400801057461923435288341027112370939631756740852230943428552553301702465580659074851495725283669269816964464059887069639336044768830087455145283412849566998479018345168857345188825518557267650834662532146443549417927457842528802140940842675540308796206120266684618504270871671038709624478005984589963091494906636295768985000269811530158877674882695406484060282857230031494771613252956861948486411661296993629236456309694790632764150979365564571363135959711672905901138180618475736785522489481023211582460473840034389598087472896620804316362560694308729316236116132445059691671426569759995531759187669296365269826577799245900155407922083881538223507650013501040585065966117902095325112207982641311212559783946476118907690744194104851333506621354846803568282498857916378801095206693898891020905909047335565366415448336275844628673612670385698664820068140392370208848760953318274123853189094960189286924194445458111398922858635381762779067263477145708677040762827368013435353784660541627389708330802031932586164777325254889097133737325855333706677649835780814704251164450710293377006856489411398389153538249313420989312883158517881265789074105050730998636199641820250662252029594751463402888260278508534663102923069228403022549872193046623669380683545074334547352800832976495175479022774430895883861009205808934576181597561741994749781428553109363012797598444594041581692495782568465208385946760588887031955511366245040931506366880757673636498740263239834559999480281392339313569824111648995495124577933484676710499175044607541480332776670096320835349024063825657343457702824201344396392848109541656469678775480571272926079396047344634170169428626517843696727278740266202287501558491750960041590706319959621364413224675750335851092922527674905672970862545546427778532923239375816662530619780413489063963148513002648307815993672721575694049942921986218585460339496354365777991305066179740356388540600097940344697144180180196666462325035360530253444147741866671405063682745175900291965935687869140697093939133165495454489360486757671904777592753181778664070887988217275650011043711876065792386149536594280438861067659721771138566355984604802125181403920193384141749105242399223365493732129718092034854748299657446731905032235521847762624238201417119683979075556493205710547556981753883400228227995809802064517170185900350607591540750413037700862296424755301923631909837929199638067540941725811213302192758782604104994365973123560767769999540260456974215461145134747766105889926447439786945496476628873083396576574366674709920600369348701873400931809171874489659945402746727722802561916632239857003737206284627417982185415583589688847079442002378482927284714173812564968582470103459956928115290616495083756336655141668500390611390735485899603757739362130266503649315384116340281565518338560548109053015239931508293073514723638197920886685449430069480876332103218312337698688434242497183617491690658854461231872919906510975469383361941300466218700410618436531056036210112497234714650358140245232415582801189740142905073140959806852115718387273442492549397797378271239809201948735640992178926349721363809689160555757025441595346613479111442788571553899066609663011636461739921681103392181731206590155880314368564611965065287014230766442781533572103842189209513114949546781170892867549507519024157038504567827030077982357410822317946575477400504012482803350408498735651994973305847469126890290728201310111702720006007554355628548466810708900767891412502132472559972439273187280805231866252680165480751642253680537582455179238205904588668085134880879603035057033817167644798026622389876932450176816347061832947431870026000064935621550614888997980356705176488930330703546088590942481140062479201024600878528121231062191545758010944607834529055394094695682367802764790773589372442910886803949244956362256430054082276275419949056538481782276047952486299727101767441781542267395901192872412340496243108953548892308503311181367837452958718731273433029309497385999088029063463355697222685825122232365968988254692215940752420169230986463024616233381047472339185560652071257272817758739524397491058817186323618121169441249389592047302442244324735183421362705877996139627060461170643195215939619591612666412432881541650470529652870851894169469508142297834452464699708581404141702041727729875431960720898708240096342255850256534820542117909783407513527595317595156235768895071799769091694207773275087634882214242779243934515098605290447363990978484617497512121253498200573657738291641090077663476751224087123165486292045354762127057271841006961955283070226154153740097375813666603847450519153406216405568696899974269954508847383713851196881571541257241724329910898644237099837426623471566092627519681579384448051594471726555473311329921242014144749503441482571457689598599267825302575553161285983934382470476436908602568586437486497842970815863575699008411948206357934298257426241320837687425202072297387209310825869121384235938658691755930500654997239263787162908281071180889197604403948292799720196746662637094922167709079186181257437661987639866233599593788084486260701267422069372944585415312207618462247569150850625473436322081201227012235129152840488575134906795158283876650180858848618246795294620474715253093339261257213806657147625531837121608883673016528880305811586987682750006198726417478156656362815817990973213460611401403978301211524820533006835476296309113288925800691780276655648482157458786308254993292994356742787435202665299752147987629938421802262922700341612714394213275702045438271786554489636851643444748065376873612619615725979971205733955589798818538120620331063343460648986947695026873802487216933246557345874857480955908843515172883363193164036862496070915490868425229975460218360195306598948921954777357349697988962944852390040199306708504619227124004873533952497833498340366847748322328370811333802161316023387394080679271442101111133644688034776498348003911137539477508699312723030625120206670559689913741555877563960531452862250750710134853365420227477638230852836896315286560464778493860717282120044595104559048487144190644986877809604236783614264605449798658824601268272822720334437244755886583921246660957760163978759425850338054646558838283830583143539825180239657814329747222123625900772153427891296411740917655074370730811419599523547078460840617393526875506327108606502677347007446055637571187847769025955977792787139742948271637868930161560200561444739949007700649465937114695771783384222526766566143008675347450960245986837534840383858985830385935088963213987265012488541844709857107408064334705042223735953227344430938619530204604238036501170692101726074591853808018867568796802002693816857628149774198020586592535205317665165851377528472828888335634147027369919000287620618909776935390738065625615369164048200304762474100288855880185385644058637649331698638029712481392643199201776098986115984525698669381509506428789459597763427485286198467454721155659629152933699761281322148464098586047148371850244608969829451792471239411527771645759134696904374833805743148171174088510674640052909407343142889038696289331521438478340884624121759528883013027978713171416156292176058938875741054857286969275768415799700630152487676580442725645961265393622176531857343590438345146262221640594755064611657295769529670992712997149597288984239502527808116829870752305044755395778536686097625745480199667314550795964891640549720573734016453980456928962475297455804767705929019848386370696823129080150731618383158702946325594062812374755578883443634828430052019648370821661864668016253501470831946637230152189878024487855745783790460001381111241650449115625390397012115565069200500173326693564939733752788192889136073705456963012199234003404710023271384187611394025262129162268829313278199089224776027994117198133867732674336610127452856605798136053591156883926123164554104225295671442209358928222569694355635383949488708696015489436524069766119535399746430619943252722271274447101719602029813283008651135317972675041383960287869197161425772108577429407999849919891991133245848368641799710883867800336529861749183238835224572519830015793656381308179248023165623174005303596771147427016606390704082130183059561763355661423613924016092854816113224148997738572119507655421854055195452014267833221254203487293207449830377926575177488232767124286154155615333800378506116331516805304063100502125123547331252421125889525039411903286369778805097197103369384227505864778849546255069771894402010825194485018404288321949065627218434686775058022877661690966326360606650313754065668922890803079408139489168777472645270680907582523207428840068893159878469511072549262890905187254014417568098550706700813484394671700988666765959985743884054512688911622052353493823757442142703412836408843655925406369806839252935174275965207235857253599220898376979393126686883699734797772739784212453149061339807508418404996453873578285519171611806013975977390616863823169262484724508511453933804737011669017030705168311690562813373316568919380817885271289728988926748676697380854461952700767408901729686479231687564316060196240057825724653108954260843358662392016568840628947929745137306145701907024072452975658624687973141916465779935220280029558245860448002256511639359817981799047163866398891286291511687851229329271652934373801392312267998225948448872418599188767197316559076162494224096685950867873105369069197799795126314866964733751330844143526921889986538755648388391544776108138165766161909059783201235968916922187275338609277361710918882318116904953649996149314051065729911341233573840757750871348419886534890736949942997018469495968687811008634294266163212183800761609719817684031705164886820149913212237794252864837641001201275695520066255944222968011828503953424776746795014534947852799573611863174214642506013285906734910180619182933978148327883425494979212739264561103056110765334781311119029422678090101301053381697026536085214775270228143659848268610633766099623841573949002724904961331653885472788129593051800009965482364086772022880376958221701851973636032749712930312152597036720404070500114639805519075166213217958660432667929817268953965576830022024046476773493947810616592515044677630449056973993600645752007183230954787531686784179772222730997880000344618571463588266009163628476523391827387111060512723785660439026931637886623050800975985492266146608978887811896389614775473858537130447936679598077050505778611520641733742720507336423935510861917303747526413127411607782789814025839106068711028569790563504896815284528658701610323352254202215277745435449411577814035344530668735597282530709508261607332133092371812183976729406580577076563350432329458431392051353621654317007078887898426994003995886261104819662107798865520369115788717768281947736469953744402745199579514658890164352402873443656440378464610599644965328208601344935041752374187900577757314543553413503325499768081523908683490144429658169840086453189650728033918669046976057707673327580955812026516772224386129015408614478224579092998032047790806963509674000594711292140372266022964939014193867696350694147658205125206711895779583327726156742030649269298682456396054909769905270630840222818550688421336567690297399226134377767635920667507943200062730259715907805604549459048990621165248403659633626564786421790546476986777105398274762821884326267243325468854706547002366032381190725427968238074809410053917425979666791865223419113632101779056053535503861334791335981563810951860613259098481930951927901484978772743998563406348274943966938327510319416508153701825677712691373172338329561243594981302046557025128865967015100260675789154648337719364588066658377383279769642300935341958830037454262544513759697839470090213944460304699928803163248478105148696532160979013315605342793552248982270554653013116669045074545494193474677852243831559806394670378950345436938439413263226870627059493105037666794073229486524085592827543864143523911364732779443491057242240380259724255791170015127265982866520220000676456109231580442107488115297921430387475114327188754923721678425426740517140927906199786883669835878536324255625027279147521875599655690703553525144172788007478698580725837451760523745772961793430785236585259738569685999730932877951087217132813432339480159003997629889411693287358433487060164655428620904599073526502350358891115121284092382649823465357045383358007051852486769334687473826621838105184905457480020032274418329638459177137568110029044356589530707032125198731078196016276152262916873836221320042819958148777874103922890849604493400406114232558271806781224521010929596025526234186003119232430570190608859219520386215647660133308240521066472305510783908373049074672446744999857411920933036033635090502800327590337157722733163179934045186735118325680102612266669442641413824701192818631703916638851974756310096853422808223615489890536080222155102626924001830291331457670287448601869546773597770893782474451820265041214808988515062636425405211679129993899131460403783670966565960961873630155809598925223769415201848387579242391913209337615020591323542475489711379760788510925713593501772645503442440680689711597928580485484301271040343125561434384661132835982395146132903789812122556573093075939672586738121560684183076723122757218046296348443901324293102080601011229075511421587927197457184738081216328774782587450232605269422709295736041828044726933911937207945630957610616412484289438861491519898056259468063888943522205932214405595103248745824920088823880223330949599664137957105033452332473137432942312115259791163269391143975246453286571707006507101357545125089419463810903298160395862796442884924726934086242545579442275485684262618016486613168351841320455897821437685112520538604794827270750517893549264194740509522615974048727668502527362114546559524691752746201940462142206441577351583679536403905202356793974863663948638059168288485840982781538644541864832937609351535777858286038318115934958483311746704308960938456853681465211126989867219503084927105483719130476684571848583732917432073853397672668357585643092229443917985035553683460201077981125181061951426331985203565461711688043024377917291395335538412525938184281387175085629309244810101157630783131846788286094650468053556935376092613435065106842092824864347890096153798686453227958525495175495307328958264515314088033401714022724606043836184040510182727629845319148552904031539591480372203169088922030014861059644338752357862653295376745867607482112403061831414019678447516312624040114033526367678370838230309354690855513025392500456876802174191530358539470418385716412830495180236637725382933555200701579455383127905774190716575974550902126531972466576307508154180636042869860049670985976172930810215984046674424259054630087950197423326085015779207339953582724046625935920236990155708334606878258816387382035542448638026021605180145750790162298904122131921020533964833279356442423800927789256203576987061225420049242520409415642852612608644549191220909211650884448187247654412605447640798159006142883740304607764222709993893426032533034243783230824842129517565850124068229144460336094747964464946475973033757935818189222812937951538555817011733898336715427090839311592073614315982783780806408737808763772781735914894411074693090991452653902418976805312300954315568895822496914653067555775393927360595087962724747515200685246741447857484077167796483039199351640841244609833775592613060606566409143128047504904718342423249786805322566190220977727202864489238677661190972136507893000962098222689859976395140563825215419033340171019196672571925028489616872463755616624941759198129227772279010524479419919635214941624214868737622442185174137885311406865497323352661978915163152029582051401878531933881752046036115044900326913313137376496304460070839082971810556796560186205311851200242810401558946594985048273702761951533031597417570661192053308243515975530862967190173660888303360681580576203680670220468919937000791191810180390274666346412574027720008510397747942825174338131336031459555369078182378605261594072406203376015689350001645133390175617186661856652427413096056651561688643206357165287985685017159836919829193799304818911957112770411835450435800898869633917062965255670257524707936585168296984544688738045479826353434296398758724424910762291762530872556841874779609738110881114314907865499096688864141139847607501096528701352557354914771330317838972136477686362488773662808952741790082684213662377482037918029975105358742627972266546088419954270863120299347073393400558939621421681057570525929792078751088947502754053537000158855936546940098451888173506614363445533660933763760991600174873180410988530735227309674631013606126529662181880433229792716771362594703521491401904619456240474605513817981056131910971778415969898439692428201550484930842792950967694775278061572636183672187617576411056610231445831172100899127983236590739342883106740531049299659767884765314966213894183999979529159090748626389847780553435373437305173330674527180362305013367487563158389956829737373048227834224699524411722725789442957594453011829903999599254598474509332813746913324307643412843715624505759413536647839536480828706322428063797769585832443387770467555845959679455820671932266677541835166184643483234439216833661208088363798488460700745634356837172086802281949129158141622141335811902576231911309152450939811046396950649475649101150901820900596807211198661466995287098722241856748856053565980616097747582600640746680302224326398019830418303115155497944554684767888865249223439606980844902807694815545227511360468222418223493693516016917802057932658011242791616501431255718135766774809945003489109769306250601961315739828345956685127477521221979568487070187119420297713510155521332633997002929609682759265120303713587954156335299966068699547417125823369213939365111332258330449881983837230407897105973353514795767120999405544583599564822488696196413756424880021314494211686115580306625738547400282660387818398030649464501067220640004104731078991525158482042221605765151328211650478061305092925121979821979651099277408696334531462982868432659568645069265809483881648055687671232112558294823137602625454577786641350909513710771403493011828761270708760073697217640426166105363992880929339207432122920660152779240548832395816702547206400082457361611725542938917906423300546442847178375956451601841276259854953600096144413608234898233560340320510624087336275604285486164693789521893200638857528577869409494259509214612696966785939142287435517583879426318236441113331251619968766135267826722373354444859312287558605767679321316490377279125967086466252129362142501397957074464055950171123548217072864261158975954109413844518431033409512742091305652533096096661807299214098059547928666513104882428737815528884470063409727779536755804988268786248087673353103056504851287942437786753261024004229923136522885769129017042900131989769847816118003529070368132796213665928629049003754538886920010465750798755083401770116497854997764182236472266493361348621262847583518822704161050877392959680288350740926953584514778914818654051670123944837632517294563829843736849130403302021431054900858106679121818196910877214396263361827670044337157418001350725681538948645375840948962983981339227058040475155684701665616697240468738530483871088718595792781318832729398350722608624531314142898162820539260879362517363675865297078766155234161000482753381490950125068457746273329771187097507193031010107095829659890736417532335651877935398682291569414359978711713348507524687725624531586963415035424272909340152820830935048661894379977689697860894020006687562062791684013551273900085816410333825788772772209283088878618851580880317366960139145357510750197845473434568687326821615416209383916255976708576176787205336982582755865664967432295610886877338170114423718084394135336320469354637242469565172420784962945459291543052145174977373219290578169819162224368288583570440765177228537352417061007671625390120213633976287980152093560229904661565829151538921799142521406586271110058647383103084235848442437437878226163373887062150362848732472677918912307573519824645610782057847985647251520298896937793513817673370000043489116572225143801974885894743843692394782358651395338366439495829441810171800423114966103297411421472673459918282180055554215524414000901818660900511699191488910843298681371234013777990954370466022149032874436808032728004321336690257899098789007655892217844877899389763509774283521591637675541682376752803248536313004717736131587088395959444658277273304000592040838423247666022334017475019209189571006807373389815643266915740977532800452244588819555685411682248116768336722394663687281443160722067129710001507247428878856563153342702953650812769201404688145049944297141309304132680081129679854913824331703356261027253841959717863346197052658939908560096288634633419059606496051333135890295220870716710885602352146227399318851664300668759940388778838359266064479841466314220989074034852377748838690765817060092288466111913754011139301357946946244492046840445138784864220733587681969074932864127386555845705083100170006906784405944357732847124021038637816226163468253346713168297860464977134910233069138821974825517763765621374098557963594961165188513850986208336262659709385054952818040227400441096510505369910887734168444389801332065229350861206554569288586931280141608684558898217849696654309390612778137624850660730304093188514089355001945285347129157729408616635190266169637982745010675402233721579626987056623783055469713074637967615686198223892628018901276551261944708765189698950296088485135032278785361279505812161411842917416558027991227368097548686071254615970933965310588784263331580842654414021229350734000854310938105904377626805832879213657459716861686702455960279159289437128009320437475256963351022303797310662728484924193136250925083022976259495688650536518575445220124379194776978706098991274138475472085575787869654443750809708730819255964103249034781136266148065562165637026771224326896097147656616463789292914491155324854463158214246676980970485608862684737077196821211402134613688387702704683313299416207431465705148218879615043433164223884295073211125024746737926414683566738666549650578813718952685749398443995208649463861593737363250547814488583956794768021909774081992036261255601929552785727733548336139858155047045214802251347384338746799830348567629946656025930949048146264476219216955162653433483040217862563865036186911393719088747410909104156029945354423637695957518212490234018749229010015576345481397315813979798681585180345621580223926230391135501449417989645880293542199303291309554839029194089414615825929712934306244815828582739814929501589155214751399184087392376830688659769357401280771568981524387526644865109325801087330628040546230380262966716391612279213317517909045071070894348546984552434318935447250729842488936843626490086038447640339629392786087651241027493567772371267889584628043271912927072347743975651276038021254404197983719338818767749913564474097531309001133167766609379406973021547172056568478109037710636047554391865827861827355142734159308288362439775353753229928747272525536887860432887174603978388365511045935805776780668268833975960288376627264313966220621181475450508454203588971145772885729036164725150126867905356508431630648658024392971909876131182431385434821616276140160119562703207380795147690810701204500331580473578402455885400163217008740852525232356097284393130532006365891355824501946992034506467890955338294608224615846814563499126366391244030850240708593439468437915811706695800565715079336717198563443224842871614441330490829688171791627654066625535194724433916225004065182572633838735091221135199609670086604532277343899057633377588205486516804014163644990720681037288661808116879557560114414568628958479749029357958978097586837001045126241301989541211630159855451895049211035248753150370740695733542739792385747083283717137948857242163848709293516579133034217687572338572076919718797294240665775400627076737660879847406518787805578824888836640248058895212643180172104296747734709722222466101738142876083130264216917012384065036949886604370852154774742667139460952358536880072485818036681617155744429918616924715118177590651717870369350940043195894791713844178252068927720162172384031642705623812540567189928082672307284318745690320145357558084538814690215480199654496241756556165485842639439230807659468044609900879494908007701565586189846011645526438087648042007275637847308779514366890499578048180037873408673012534546249390185020655723138483419193296278231604521000310260182645347515570569851107442446777702368411622377155475194471657838049036135559316562954733787579798086702645865271997089259221777695290433209163402091739410470129541161797274195041441569839532277336454521371755675412302905409061448387087810476291575316890280302022025113351262072040177611687085690073133385137091426196870460055190470200545504276015661566720096807115682457754793639239156822963107428222275056736412795674667493591734107084558688530484550511821005532155140327282346509285944144171453835503304390262450395125530212934348173276682963502226774471515143861337670720377629671686783818865744455645111382948762907188849282601334079368748282201796351611535433584635963542044949270167576954776310829457954621483298908608165942899924976452369476711471087735614046341286834316542243774564823209959197926113800648727347046244677578800863478720903754788584666883640792748476550640333074178107420441391018181700068203810308019760929766709592432421956411347847211805097915074684195448124515126562142564425657443933856683202545611829462376885624107132488937892039608996776109842127500278031620763584402590628094580188451731241282937639575725322090853752834369411307114548657117679858809992123045772547698972156985665057377857474845714718086969148051915775442808698158968734390003568618338347603996066051140711065345087186307167237681826284965608857427538844969990748996914783028322116791952034250657899462146597748791139982359880333680292449699903772399477555675513602276979568583185923801938342913662534897009883184999147263399378188023617702496327006925339848634990362298465161600944480901701582688635402136531783220842653133695669314896968009537076546964615003432165239706383541162136863985496660730290810931351039636151783229890732552199827396751459709331967508161268311874778805978157278704660759312997938741081403577449574103794912165087988856304035844014066286457881452788872942576117424607011810547369824017814169593554314756189053239500223791530851047701696629726589660262355447020221546125798281203615514521817717942894489346917902968235236023396006907636594555608028706822393731036645238513381865339562318671106733332423888881877537608830109486976581809069988777191891126346931263859139728491141667474969065584700846770446219520103865683377049208462673632900085877173343730170953140716025851464002859687853676395195048872623685152647762592888516804969029127755964870250643689853629952743480578477005983721327430726774035887309373427369025581318638599414216643683492245212498255593518806863334162337462437806326729846714715747227633061498357245224535145437641368894320379131195619974358323020205177238751874073298813335249930258865725394386424686614486732246714153997464063571645662873449110681128174689244446795623982886347721037574883492972310652838828326968129929483114663313985066357003609225603057291711978271251628897068848509344681282472908837970109734676748332656032928204279760184510921599843837103419556875665523931995255686025464100577380552651692789153577725375118040472463504341474097591089942696925776577243385013463173999571912566162040544688244022170645465161005547317765427117680223910557588288034585606839443580047885486759024137910095136846568573400551156647653937786374785613164508102523208287540499180040512096465325140419887256308872196061482315011660085586302231076622401021620873341349886444015365833776384180025016329217384478397639269455734951765311888417394047499244180512521155014613799436290429342161719494601187859996122105708789702230920536697849085305547133296604341738514751945960465231846180018285602850472176282864280067007736013309682103148165219541034906719169280142630990095306313349945189889130506593766032401414454792484612600142247409322428365246811085999790544190065650575413347710663800945269294244003945726309780097550690256480882958217401323270607221202651281427613738356673114275628726246465560920893487878270236009875064730089452696697886708096199431895149835582844792094626111004212851034000288813107235364824968428213396082411069259195072932392946174250262349329984938579466398241000707625401679161635307822260189177306503355473338099090823333730831760921024835533532977716390538236308583954780506714839484683193351457042060392963955612088125958787957991497917150842513587357952110875168603159120853535501223322918643165004905393212651583639638909279436815849808010758564596722494884254057724444965185121063020211399819789234331101384304189744787261549318441986643645420418009024687130380936155046210280083767753644603505024970338083078067424399205573666189204263053569936602873537226861270741106844430719206694946345192015240301893196776929371393720599391265537122715621268273627189467711682983131570746352346983609109326876967461748136826376101732972993442200441370029947767693248912078820634345656517155449866592383391713833823111377750673090400200831203768471060950100937058626899911364503963571141182660945449528964538109995451392977636707145396936742827009588546399126556729181680011375939097585358470344228607417985681976781227774160547191044063223729032945532765352735749537505300353886905205208366975847359331240709008134548013178242620510371685202907098539956801590273019583249521092257053177718905750311153512175480481375175942643787368243681725797239913043913879526375478794238066809480769119629568307952331920167089458126557673708002201805430251394998687850848815798165367439462112759090064056072980953622951091410135124383862279937185192232744868158816009719788705038725592962573965332695713177530366539066684962403830593584365431254519038906384538628971663955324621723262366934245475921461850821334242048657130323121646755676509166427486167144970108933507917344259834541763665625126354928777498166087904403081082350167421400271053594467852190610332055764162626105669062564223102142774448458949627485213861587801514186335074781669274470502129650407322767871895644773434510421850703527979792449736535326184553597010690299630123077089101133169282012826512252969889940343035993156827427828796883107516812390741480491269451808009302087285308580707073868410146461915139187452174587587348828798486942862545419835888849514618180390730796823764713866374470170878332055390343380737193089878072907520047161203112471037129364881651137727430817623485705646220089921663158347375102355340335902332008794588019391766515752966596297440989490319612168840414496089718839974634222210369537244113320193465772982942061007926488847537495957141010538719416609528288613664154893807631358932040102419064620824691523613027181499127624379086354943244710982636317642110794049712317114323931625877564839080330277029195411703834935816090420467601193586396316860781818727048475901601324928799534309673095546066432749450561330274941371265551974763868254706337248769972058504899489011040465772189564915030156911074042365371958676936358579365204048366358067793010068791665736301038162319471760253719390168974067380451666258321090082143892870762568910523091143981207186985484665024785449022424643252356975559954515882366690808433527862551130516873043205422388719088760727400102823381739654505433622298401116551095156335990455937918952504219822902605005525068572940571094597983803606570288924381797242614587779751543644429937719756898971033782057992365815279203609128226906336913512311344666719453214520577199719370906531574183122090127510379777121284968211589889126176247808071853746471697351751054288964244521026296251049363846143680910853546514428646582444728206225867252124261427730438119028222216083902573634817929239700709451685003526501889211574820040505118472029834678927839616082166590671922892552049812649147731648716502369759566130520380484976672544482366402336242804277006211289200914158481291425153835661487322400714421629540802780722087198160187176735741884859119778766470622626479472775366291993454946791474022045109530349962421704840143609840996603063373337486466968520520192455076108132658274390065533891831194639565721396046214005000992532069721338129352678161235612841913256503885650165520672481539184601519623282009089275648653130859561028259517243121778737015472089281509082528702245681641991778310090104326355980488685845602154837811589638128169189696990788724461984830655118021064908452414391534148247954661982074068918238907130780111321693179589280121952336626400596333645493585716591508986134042459888296449896375538052462533683610052604201497836154687113082642433439492307383580989725900773452914878522472421686727523308697607191011823080112458770346146487153387254469395167223208516935704759073539362637537476462507622528045610008909521503752727945787562667050754006385802478104884310839931327317354736099160891230662333508724741917356868098406758283715531055594119770448344730959059468695709638538035689327374013967470771187783830359712165942670629620555008380830097162487957915058133995495481335676557883438867351304470177946298226613026724078506035526217410730697909530278662502662221017962458967976843192961635251967247542872687984512827709053725131843856498301092571333146574007416346618422583637964287817656432436527069382231877933204279706595960558711981433636247416423549912405747722133936108306367767162696858895732003461902304024874156201109236444782959864519075952295611438773519176838699327528695609864149112292606076097518570560911141712036204722576430140436223316820809886844826583009374298559785139527576342168872071207580275163430161308421420719458533655902478043025788039631078303952243885993445023259695696841162061356540555091014662755855781232926119394288311522454154763826396210142787812476758308479636066660111038613785971523051714221060330199281249224234056870540346721985562691644365968701527831845542628334998978409595007626125532082718404683003711593934865200509216758838131583697376035080908904326714015114812775651439461924971047623822680971202124042349451505504850976170970273992035349238300854300518320274454673250086037686714189014187546156170239202443061989427275535325126390942681790944007969011593141896441054040248996479699062799207593229746103674419777817196397604471288849950663074792941185746123938363668146661249930029938411778250665316051736120934400324435529197359905529195506132740140202441520427660316449176363264572914559115388829350912177157959331596869121874008091232923938677814226126984085537459750988842797430162099965516979743843871656550487657861114390239969012650874410423218446784382062385723482429976048046840619976626320860030051806814068894656395199713546843317732404122411799062888118199529753563218087224055376908470422278779908782737168106005684051518341546327822347228237568568961492771368347503523969346320545879578140256667073671781128888137915390528395123200776063548161226487497348590876699501203658993432342415029799246448566159264871211444425245487352697183064387219355105939372490484160768077379069800837329716362994055316495186237006464491114838937790826465072726719697822302259109300259005608656022512463321845245229027376441634930679177083124068230404481074105548947162523637963545870118127450094672637277613580067368024566353565757970452728562801167769892696828481934474117080880498485458330546213708136336888055864838796345321630654935610346052081366578994512367484788202234004358363552272665329644780764613269078406948201674879071424092387555711477771944007582086370311138146064150742973292525452943516659138650111460662329542110897422035396005693668084251060672939225332247697377808190216527482888154287625358207471016186123376100289213224525938115683844627337304051729486966765989803197342997907021562431694258343024933149099653806982234421707834357010184820021034063358376243282925446798601813967232558171764182337358780619904644823057803688723015344016578274585335018529315728997716138552845066115348568186926602474222394539416605185046405718224694683396395152577472388602886489946233225037251964511470110521879174435808260273514634354055414175877789488668619968325493541942390183536061795140781319241138150390791743097631193565978075810132889415765609811473345752213659235125523006277103223948706965298930229435583518706946445687588724480030292909560956605822725368970570208625068013464103355199262599030136323135847325902905381178614355551020125926303917863481564304281697584403183053454630241485550407406370901902407728796739381715857253255111219460034983690622196685709343339630842287984293270854153491336674031881925203856577237757787924106270431059394079128344012380157495593906525926404213126962602095430160608422946803130645052731356255263803738816426547301551118059684801092230065625935537868965067424728032332852198322767827179438520364955402492550636320610739797191487006856621933941937532434519584965624650363680600091380913840760778477301693616659587205952386150532641437462579153762717570365240737099266495482394798443582268219246216529591882900008318019993658851271105326661374213915658020012187604030164084580970735648083522525262682022587634795043049321273030097628191253839208132401397900120263975321622565658095329130359202364463686185648392344201988157521578340388048329958691271339640842604527255260189640675563103068294257381736810634008155310700311176898256283604470736506070785550457091229783819781107489519017287897727516289329699160577935514505804410345119096072912652056083070775870167117756249846574025134454688338267120141552153215147948485686087858946227203935822947425095842301279285314419245945489351962284104361810269981394243237177771515931866614410894619363665643799771145738113920970752844503732486679909665219202414588898721340314739505793794930920549890520573125257252048229125608105014524304076081510202386569393450365643533009512375487079980469110420696210641462708755807098350294585498599141609176646775996294180770631957707241238912437435603182200442248218852326070762736812856789552016606592305127841383730612633706426886625000868885948062975321802474728058313549708444350043014313415007225087604132939714967640363761868325483570366796075042034297469083919471007514040697974129548319008206535933875508193254612287060867508750939402787705089543466843153193608093188076047557304533254050587102501960416077487330240714161881313028664976861047002771461040442227790220489526911115660921741812845391343263950419804859072982024827707538865670118248413228441127038234105855359356300985105494688252446062650841740948192336526156547684291676410353914255344356157352058065292099282232546983580852473982132969911601253337078844741645357797858767175775055890123344095168788879207001268951825373896800718930611502712339939492494034096035433130377340158853788808342999984717413582728264011361046718027484442105405730846585872723678829296780309157840165370692051224512467008774815232149659002546643919120801333113869023788095623274934123776241132400842967859001005667162657080225072464546229217379183115347788488200404862892889405303567336380690360301248741950048954271257782192873947565077474195457199032587389101802594724524246721511672203263286687877817309122831004295343887867656240827548988557792758879442083946918154535260708338702089092437673093639793023726521416058568370468618666036700272095026485523996888290502552918448350200740028350021197809031789780925450590661294984930341651126875855399043629696697589491876239445724648815689414858236463169984789820430998820335301376754499879804664273460496008438337785414180341050854049886169293491813446575135919908644730946987361823690001550658881911607979993478776237504305719932945795640343844337703894190817385209459343682262487116240873544658737064749151167640322854458738124263070383072630104884258370656526522041604661395650180792140149844539048041688449101649108396701288363877449095376784182409953792403715372913219899366910179275450055152043730877369029003125753712404210158613357290800189241320555561731646509261228792691706999336270294307695173434322004478180633300110095561969024394715912560123541392109926833813954066194901745579063072550510608947232836221020157174631402739318397509932792937915122866582750993171386508866979001077936696706342889310759597411587239334974427313082364970346389100858267752038724670742205847364395668256570429260404539845901883958696748374946325450582324358586800302492959126635258172910307110508067837864258742514502233410520883208458831049756142186671547796056274371460889792014461115640589603544565591726333403698507052563601552540674527927166175156635726483035116401617192523935199216734922238721894106179745644203972297755354478008591300866291938547414819140045190076835110812994955878590705425006100791375302042577510790841484197013101381519268481220587633167038112636367942726471759129543247303454374554371212433650042351767029965060360974251430627856360364589389477275791451323194451439229818360585747117834048434329339739378448704406311320697081197485640226088052495070107678123028197026340024848409197145838560738631063715316403564038662729368214990818213532512898365667705184285087038372882181282673725268296599224757591185912962730147768696218299351050501114179868362620434983853839175478716981934560313236993640810169914547089266067621531806992145682965075503228711201151651530639232898622943016642820614611684493902161856767290447040449731932278433147037609982949228797015372171153522352899983354006486797075251591071255862873859322784858875725166757908453759709092723810851272459055784065006399745240656068694080101594405882140006494374158890406513574353703891133711763443113967450403704612591627456531091008850540747899552007512114150310124370630058838691535136255172621547305931353565371980013727632951542407300875769184411753746337276163500904537121646950753074673082593115149292357655074739096506716377376025779301828477459479135763842696884045415039160959286893973366399958345530371647248993306534571544785415609301915460638538455248120984166645531427846371606022942232013809773517658545773110495522905082311383542345368842038890294970324344393679191759246665738660908996334463462892721874558666118727960098972665955949198373618210067506581991688221447948747296674652777276935082127439038534943789489593220326628630609308755600635570172825972261773218757750367381353341843152917102609742148819276763826481487286030058840661613685959743374660704016830359322498375237529834514216778782389017499449157505043707164844575082645241652466087568402219725116281430120702049153265909067763548303766249657553520892438337150007791877271353864178334681446424676128518043749768324894282431179078166155799187960573451908023097655753110703316537652409114419483932284651282116477860498164608305038347035920399687464219441248275454899866232856188485591136551234071374684595467214427903047318321182940656848085939932885065395668720006219850960627823048000146568597123061344112093030998085999748372575547224110378910550105864564782920103960162814169409517727962236733939075701522547129386174236843576532132169046858592015625625631523191603230444353153208717053460406023173116587168538126860274165912742543303940528761911728700680199762074595051495896427239600491234218054527282649206149855368118767642256347310628912257730474305996725887031734155553190596369158540975209794074721366487414017912909653895476322159656834876675045555026427919456449046529759421202123882546103439315228775513426874200225935972315781140919331228932752686436144712858042511092969841939123639566958267387402503907020045754890174674825143852909638293251270912866800484122385424481978656099693130628955958732823860044539587410225750467225830708726668912285842007049941902722854983533279247354571473137720855215318806047849019253086053258503343059524072952894945837560338531191132807224919946388261195860916707169020655851711641104807241821302629549217197756143939974030162717040892952119508988169389927892742498862001582192790441689585318523760814401695555706095987791727326914760160943316141940805812242147631378613427773366758517480972647884283048554546897598721733293352605472338143050230920587048982131009102877653136481225492630498951042752355101036751299556674888751556509022484759637682655170738986761836986618921997534388524537577652482155863905698886959921028021500080934719958367657208080138565178016488517974515185443600294264099042855452158911566404599439480609056810938166308065797387470652933632120823951087127523047094282386955097770818658103206674315140023099424052300106497916191203827628134268467205698009691384954363029519293444988815842233204214738413230584296118713565750831342136380944213749240787298754100099197765312966416884964691476497726137467401036670079854477596254614750295679535811677921523923842406617805710141883315392085431721766114057264628628245994682938923396630629038365271318465717608873018122863253973352707303080213302098478903780878521242180194234705124993320252608135906255219860584552536969970432386643165751792743112717268643590150070490765811289260100579261868374290613271102259236369599951579389379779557094203489887084945885428575035725967470306614884275139352973626088416315685535129260425864327726157350453795374932369453185783135840330987232783335636258587306936665043553344493951847957505120253550659920255440835620436510866119684945407579434433216751004365658199286142930281294116174811318286947848838267409709139604306636393651765895614888787834676298400570874372596548328877555695993801185786996106261782001338263949575703180965656705900407395621226252243268220396796162927302012910759162320436760447570296057866844538633280056317584728364727799491629184600539319094593527996080556634149476795418376379917916564405540113089851655549352220164874063390468593024347838129680966385187918548020368776127983920783694207935802654124654190843180551827297922582575845958570787514798030687004081903809520993759351816541139019668741512256930158081952722166137823422851712632967576869749420268024046865276071193666061071699745511457912167714762697017940754354572349432019861830296371112710099764183043931634682397208766149646994420055571985949552866619662447474828056249483172963287909835874942528508867708730831961173224705251824105368998526985797083081551056248924091193191210267806779861326472760375881215746463432156006895154805220558056412241123276563680534937190846739316509869589239786717654321600700039105893949997928321926486754690750932463864615741686414321490668262255198376943438477581411949894469087546579119216002022509200554434541234718350597301753582158918444659153880398594074018642719247292768937749882797100588551906432656948349461780473465139760443870859217655557121515794986927522245324857610191138516501470850037617512670625177012350003483884055887835114765347645010138029095049379402811706691681183153269145696963195610450666752973376587216931533935090486007164451829607191557300416756737010926050173692531883810052475070475784373256985539359006872210036118525193227124406196977956331211509637874199861823810180108353285574657253239262052759365637066672575577745877972638402977627166477690032950090642383461882808611880078169976389072243669277298261605232103835898289365295092679827509815786128715448462719554288557581193324025768188899298166866945231459089654094203371877991322446862261038693273659511524059238569098712844891150513663006171547576573100529517233023639394241646652265743712362857503723890476579293754867262510653945569221727201156719617872435683700427461425079519797467831095806106384843927780594295356001629249150636062263465055210017861581584619066375982575699716852863439032020977708507613853277579710113757316981259131299446485703277624583763032480067356010308535307820021144849620223447238861144939243873046275464822468879277064311573908219404508644503180536988865536886592423358095434510339702043749206024888760195338417480282412863591485873975698894960275067661654018562111769256387198555925078419710098974601195488736488752326803024546350245478184426242516913976326506525461642989830441654486706963840838562830427366244298799877523647022046160443802416746297149232152623287057371270202648939892158942550109064157252251270590340059514876809449577933295560356048039208045349318705826821045087182293800859142400560415794717432396858665209293234490567157569351851171870877108893782831071286082178822861325358360743026356915139670758578674352868819259575746190530972680366348265759074367200476544204259625735542054301399454205933811578054456714262832140933241517492851509526472910475148888269333218753401046889219852291436589069607956853549282213683926694005717466838547682982170157742849979714675449023542455137751196496665796120490251474350886296714679186273333991297119627143820974915118505137012379620225800003165631309946466665738872341789684302033476865187797706540619004920269372288924161244753851745702513674319390366143386949613672050156134829042140764233228661531597741883053221003506810525044473299845646598265084728527684203470926653463430149143738961781782989508561177866928400125171877086105282390308052109794730534238121368351533622995973013705548250377253286846418468932995576393956297372093185559167350718781252708347633333724302767085972622344383718658875461208609404880823104037162745070428308539648174583713530079606393812049282129915461867032811952096192146515675185423183926255730709363551389693267296344462955264142286129542484285888238622261489162631368233631208686332523112310294050693778110253512820703077368917124416082869653255297618916061323890121648499576505011407732039482025427724536693091717846012975665784583753275941868926815571328343147812420041575835277743417378837222772283799851804244556262229471619173742878025146678102701767188234949167849750707264686359052405964820947179169215207352180945611622809970616260025529184150604889923334267020015022115815983667723849180484023433534525639231515190596939701188647711396432141463588717576956014645053399609048476022491310635289762169160058066686278609998227472334121615831262160306387505819364657305474259240447712654309213352899358593347557384210854603123964159768570083692786593918864251850446894435499946904914742129993203729692606935804689914620980938752228101670525186164431666423423564246121809365765920319971214762631238423010854383932441737727195578820915020497842074526690100970440567410660457328935856456851540307972735321249484500250525221082037325158424886794176700226857912617133483568264820959783562602200331521725947673738292192440090829027731646875231159408656300951391433768970139308697169238465049460315518221406425552681089851201869521117343269535967314885713997759096358994267523890874158703650962374788196149715354318697275535747544558756895586181555645372367971770308505219370363238695244683478729951155092804573844071290525329915307413662524753329609263125832487879306758962043867676620647393632638100193678781685928600313721616288503038398096922006696342004029877950101059646488813815584163570516285839898761164885307672617840178324596920770726902029301862981953828553611916648894902970458567429532210926594526888833501556356187799927432879771162979757718238260175563069075478884741532321986671989745801544705497179271796597286145868246193557591672106660894923072766810963943402838717788554814262368887255009767033706340819269093561783837322392170012836415481991227629956181628907679138831235508255814185026915813134000632063252084721196792199243662671750069746025412038898910739816255033906777629973992326651257103382333274800123938457434029358829159462922320323476279947816847832782662166350255373368688791871521133620038737523558398479453327629615134669009881947939976907995587243761168038485769494796926951155130463636949933979770833060965280008689426586473372615687382594311879303939528833879645675902682101938548568655009816362789223369829399519014086871967222413528791458010171062039094163271899655094406676770716326341844739487060651839851660251503016151994011098961912726395999695952911279886434115691933869607162636483907978355126357467659045831666270893619479923108687729928481831876727353683351978537345285741400805718456502862089014718981125218451158297589701040711742925243342652179338071646214086795583457387856325877464743214632915664843830126235094512775410910512945991879139652330243520846486586792958058145284540505326708961586734624317155512475712288056688144497240213098958778595351900807634585379055908713402985145993399652744089550202066147494546954907189038516255205111076222615080348190788181629087180411205897401963448437068007957074960561118522191036014873638878791222858781060433171756612857191153538211113937428183858855775067798832849277582433601499096751590131005356045581200191459177352681084268573359511619312915976335097102984889290582160324156873121270993859321748484021151808015139285438024220115311117601206169921887396844814172770263127146480947904376788280419637599411259216402409901343007345144967375496043581700499089155230296245099777452566340771478178837690711215297794890381059637447563473353524254163499641188173063528123007530978836398277411851733419693817442521627898362312153826562601013738886743704649678353727283019171624207305644025331048733528718548808011689355139257549228433995462515709344304708044370348679584952668543760851528024561415058583664835354919858184415432506254021858421964514619220124150904289644830392865712478972478023442728212894356266337756986755569989408081777647022529992945151418755139232700848413008365974049585404518597939339513083765566912660959933695768879541753457439589183948211345496725564539213151321569747767722047187511129795066260554530279438760001551181207982596676209388174347183775089912506775899809453334885115685065655438082742705949604522569005403696940058535143380998926200696123720830362343764974928619890831436064208497672001014658681010328413096820110886674546934162606697506968880675107309409340073458339560676436775620829989136824239713070576154465001720517483097012923735761713857600513331819909994397187131642291905637287862752957585061161016407607910302280771830640312770163317456321498303462892877897756755698408725075533167104922541853779167529732828029781226371425915408288778999402524822641165277482090801094030858308373800960288980518782619917073060016288096170881084978444862465510545211262274710972569302465222454945039722671915681334352380062479430171002350385333978232287065005002234116893312771628217500494171905535244126980890346963061700152141962123267353543579380745803997316482640190004820598139906736148731212085990359924695425486516616677293255792366518075155352792156651166896167092502285697900905320466634257687104596401078081273960346275689790472507526778031891548498953661213250486567933400497014722169273548885162208912013759671443096696042977233791690182908609411633171812784530162893525263510234845045796235648587421349259618917330814561812626978844595786278410234697333564323039424290969930532911052387733987962252816630243425623815495972466339607143473160837615798145825490259804834013081994973550713253459455610302247804132448500880910400869834756857218089612750242327500398691206623548264656331355850519822632047974186105898758221465775397320625277307208071854359715564271165683586995675581641714707644786413483541549312112860805850374352046131360776483333933893196086285218389190284375449718182460631567158074875064906350799947294565337513173179250187420243137787165511532780218691395751905535287861034173840843795540999882979871360929863448506812691841619191978298993567040889760329792172290008715061581516654272608776528079195404967521064585317958982132786000794465063585792889214034914279043772620666571296138766138246106697112796687856062071792706014695536185644586467055817105478132211795967853780050890791931482254982766888928754347086533032422447561049241300758711360679489633188952152500556317413686958497462481321478835195437593429536180969450578943607255956992914432422860128547763412558858520728173979091747644376158246057780187545579015601798265792890476597840347061007404415204459075141323216956345304139547779972545932018478903896047605433683401936183772120585111247615217098777896652617517872635725972790698296097228747295087028082591345167877053635183187949516528870553095343998562843265028680504977521536883896136763725120107114091694109009938629840517008588398711789887692360275747540695587956822483819061179843770199798395102657041893529852549204896835449058466549053010025852176969896174905646491147055560779477874205596558496160523467864414022537872480739601272885580916069754210588720517573541883205909251085697891689247273312113070074499582249349126742544834651143929732461804205511530955051361583633185291532590276069503547853956605528503239508298689164029464729964978061362501380064038906515986629817866563329803268573320364958514421555964119107237507088679611258145248041254152274646568090898141489721397908342114045148088559238087106399815431235108893841888730951559341543645538028936054531679486777562313896272096770322013178405951429778720717873779929601767190262550244839567512733466302820791617515681205087964257832875952268511388584464187354871199219108650875549039351356104443639970752304841895740287220449647492000387475209472232217266181767986396825843856922237508277767121200621645673524612655217961218893971463289215021428627417219121678405444700895083045338598456152479010957244527240365955200656563863672783194338157825840980524483012172666646971819599541874387242120517656477131842284808487212083130243224608349158031169983459469585003618129477011080441508342780947729791211949788282110462196763552192616677003219584329079635521535628704225134368315431296086648254685758120280549432297401425013013592451351478149812228140983973567409784216380545331227141185801941860432738047289125429450069676284608289114934217228248295021838407588176273392656802156381545959649535152578213733433476924953950577912383463999229915149186000436423752508049262023565280791068890506830636196010760803163686886705323078568347900323922481310261633474676124764720682276291640684915668856546225917508170168443881339545689008317408744254527069602085977463859238854322700540014722224606379735634910751394334304167208387006289046976104824997671212847984613741443484754164053748483528341169805950358013872348663582426104626118023215491545959530223946057372108370463221356695323412807694641362411766711085095763581150352351378788387710678249720882615700121161015542643742700285634742145773301540635485292758706751255583713407205543550427523525757255517140126875868533400623857496370520951556567794796077824529588506831185594110346698271779052312803129272491214259924296683328415486466445686469867927664693766395127120522272443350581974350116582662120650038671047746332001711859257323732950376583225735227612231555257014089808906619601254285215632523032185722072713107204925914101385240041744220211815994070002735325305669723421069590748984210904399116704568570638811309289921730998127932589300013069877490413023511716781252534472225685480146121653363741254440832272073338377509904981782391021987891057890483716559311965328120863293123128123246421263141442238345471485954190567001922803836712713308235124818328539002521883632242461876809217960999480030623796129806702602685814680738058751780851225050484602842395377843018853077361318819227544442043555108409701000067696125988788842666436126289166095339082547602419984886319735337303767379346424354677236908980873495882475022886038145088238224325576135230856383606457507229951688374459770452593604361882510842666678212991064093544312491190036110423207732759622752370491516962897755602788444802650204778154801387297327617804143366055760140415073727142147558754959313594056431542004070486810044033403410780427905494849709165436491260062730239211837862999665142511033687013180804922178015747843966144516244316137343794014578251232394959494906991284963605576861283633636473004328718580057016319886842870532132731540409702355276195689828158538957284508160357287157349088565654542715912888230537008878371959348091976881354207263471594583070946813948604423568565352484166978925192200675381472145397332247436517528254909014934487058169418750020632151519472440836920469428962372342716149830873974568034003876673210137872706143237164930600092581915247441857789170598920142858108507390257880238434136730154331781629167690810006382604036694208188361022674172074237450148612104136369214541322359278088144782002810141415225482994559946339408357778022482923654034546909832491161201433708384253999096512949522520743222162240478236114852986207183627527259720507890318901987570413408804107917297796257368453277212585125197667866975001980179779737250352371159850170250619682290853403302829838048584917875930557493480614494717596413139308142968194830367431426700545131124644416577031615370374285091254710997423469060999228169194184655194880303323113563365285600478048707895657561407508502587790900731707300155358703969043883589658772292605130156438534275913004450150895842763763558438323693283754914938280133619338953011625959295588416658911953040158890411109882328495253793648482665573780901149079965065981572006821788166310523198159208588432222250532883832718589198021947668399293858735644904923414548667059875574364271083403896990724213426915995642326050306457833066460111876227682244641576210724593158064333712241644782849448523799923812570195310503998832715450606382397638101582442982053503967158107693562990452417565677856726189261355903359997010582915959573389987074514052545579281841714504587486912401568609723528389091738630890126396075609268220759052085340358217109562282545310032346936752505048759163062104612054376636823111042315791859995253909247165352419461304423300364887165489167207369846638130809063979042412214820553596512321429886058839850931630349947541677462691081746607986563959721328471584543479261192259211640294469031549281263062743760892838834632870471654090556903823348676380336043480084348954342079815286839849290283177551892278715883815972946528272813800087992464492974359105258248905250519208616917017639038783500640336144125533009047077529446178096896770193956571184627427130367336698396553426579676883854108273104789745365186949204908564288922997641761426848249496242678759176330391167274604864994093591876020394969897215924564040048380464919537418809784109395083228732736554598660919426185526666624566186361180951827478960187617355904732167296507587284361929924430788251736217258664487733788521628838199822878813909886346766968898597745067907486602887718867114068756266478287324690005871854781591480311697367110392433163556054480184211196600446228022443378561294968535564890854837676827153366194746869241511734223533217712533502131119978694441520643547523032939249802713785133115703196884386228755778381689059083089705435056217488962533392698237661900976732064475150648290159758480814942088647702594724174784747841073392286429886276634225716480841687339136291130110010839502896762268571979150490968387991570087602669897721115379037254793047169137673776966081618893556784629874896054686090183882345701156090073315780655270645880583123927401801598245473382978425002678318879393756878024601124174090155890669915188108687231889382800392934964608875586832539441201899744713364428417036958590855709779088653132177646105732674836532126613921491674698651998980265168384177191824104474508222530436608546867812392444196264927655078492040060213488084623654740629892653777620609070033423295920723845382726087187048417634853496303628283576719213539757031440748408324991171033915402773124459675338174976197283584066622243426533536897125144036803350702210250146077287887020911548964178132356808105436447548286215650859445669506127722935759113416797743953626408998753914097166120996388999622623079676256470616340204529064657672017664749116306637784335224417271989278873738646111232882942601007163903693626234491914768824363714957120508271189884870640971900379475157133121021151411243532024820459079836589162860077716572457014474035658455954702917120037015737873244998209534214526424789491043948198898438790887989439862561643761931776513027652419036900188332607450164970871003894752648733404017013181296060679556860626738852920095392740428042726360636986934505266483784076151739076700797324898082563200202309164747128124384416399246530226902607076828626913297028346341565264589846614903199940599293833642782535583206702087270760290412530003005356681391983098454825312530378120783005727286369516522862749132854176476689873232674856852632621738302258712663455398371555995234216303793371400161835597052656781702141782849037527109844677634100907285753911324612351798111330772371773183343291767237461643228074847627523687171168891425279099470419974056043637226658958355710724180628461013414387836704181636826034933627021109522071525986019580865879934295753884371670919757854028412176626747235251490726225830317443134065882515216869105096145651916339763022233854627891914970137490771856508227251686940654679255197827413574966619672796271570821443642759750233469257652149452367901610607376835208049431061440167690980314647830903698667981396561256747233459597866515058374991046574989955499697504167948654755881041916854744243411465602246492199031532412324064146315389364835919119606651001500210608881273010436603225483335203254602950446979500521466833615466676943518580224835314939022151672337985207751456376666550648193984614296844047910260235550091546207232791259445347611004345936642955733203869437884644150946425217817448483899420925688933723721666285451147625183943314726498312781900536733051422410111394539548649084873652869532169818174508861854071527244442557137519704359501111149903745753866009346886412178638268554833943500184323480561999235149040188248170980391716224987301427326249336851585777182920967127463145394544791684349163856769967069724717062426640220123804697302658374337791777934341880687318192059592438015373662099929347639856398674342050404138970935547750189263484426113471608294495852450325829698350687771877340237935679444320931551492382919064615348220493013571331129911208873354599375012173200100830933845684232460171428772778947356317988978858122120863570194690428519017216566073301242856225015844923216499108893844250706213200375593241426535624466538470844340905589290249650021322799304507991454192255797063094398214385035404690975865624108100802406873401811358224674722579771006876674876171279835145721254086535646504079867421765199246157436922425264422422947781491518756407462738951155428962629652016653354348886528141115861886998894985015915840359181044004456215251138789709140121498680331983790731308377781956105170900551854212748778283409041033574013842406431616286937764494244656955970169219258976870838239648649140289308652212349546973159996674966779007484140297758616308088480896998416045135329979310701403335420819055345847183095250236974241299814742000853963364888709617738582080413302884754652279555412906134202128165068492829618860923221400121012829309515065122000269248780105131289699489261960931025551828521076133590426122413355704752628508722838739710628190113674679533460504673710641706489869084902232989180852751937563652774485142361377121035903852343574218167055305990499671148564847915767330612915239438105320776676956969813206180176506894102016276570618637748764809116131021337560676450075258378920505624335545471688977722135525376275217673176122272645515546938900901529446008107219365574970519354491127928785648870982027646296828070812572056466324143332093146193697285845462651831716671534738652306005521022992257212960197350693118639910262008378217760786069444657720462215122028593776276716347203178364212294520063101309251864057850236855801212400274886269841592443347930405037796638661021871007855416283524199039447258480529916360912027107664311742546469512588251586572526054840320792366556130308003819717881288008858931317414553237387558957616967871967611578716110179719973271738262691584915510037333022045837107377815778562326023406974582198179906321037990609464000834956047218662355767483238100457470437792575348876033524508505435076185048785046310227472897433353561518340704098766770354048874629106980861009987045853852730775043489055264021562591965840356191438543501084433115269636197911767707201819700573923575127858061948521452532730110530158709339413500889573437686029571028468177075965054328086248337435833484698798466017143763653295298080276957887121697892197995395108337995233865614892270823926534147909006179279448387782815079998456795346796575119671771626623576612784353828617520254835845904540694157198974171186844187443222218509150790473351330190578350900298032705882472751139750855349602484359636476272604446040544884941966206647730657738263724286287741859208697222479650659154013120145715910139896357282656086871368179066598040379093335038783311361356842751555204668694047434612076685591147947567781779567459569569235843284620236802005375353913405877383937101558059949526381650985517696583298900366542238503403236098872385767053966234839493260086695516100746805384870022656010378095954687106525970947971869436773358180959103265316500586770927413731317561365675016452359940566706683626334229804151766405179431807143397897478076970645579403592204347736937696830657594591863435780237557418658603758349961012061439736189691819918651959395080323861101732557700804209682432582437340170982545025224177345792103914115426936899260499167871794687398972564838510566015155893562205958575939311068320074552744660678151448899949825351893581254785777589660968862857027753759895618714602307917521760457826315678583907317554135699848974481854970751794148165814694731492943192178502592060579703830302418229215764086685597370623080523955351302078884202349491732636799215323560375269568202406513817897176102985001392951882466049209663430657314676021180765557340092559760875906307996652150256610039634978314184894909991461175408036985707473614105007371933959452434487496446739736062945387692857301168795154406964121825132485455518836517568248412907254768887544497307341510246860838481870068500634387121477950360822264773229860502666835344893306475573023466611105444354795858797127891917969257949349550100266123941832770104239954689712819646437638865247992956981589455037776380005197747292144733682364843133653345207053934815299023699386967107204967048482203668984803700227741120927066236163384556949187088808875325597293339245548937426847257366726614960869162514612220435215536692707481975878156224931925068219619823297616858313534179790756104913093858471467393368335058620756843650806544205810774940702495978555583243442751831918202658451862274334235672122485925843882488930256683558989138074226821699893195956899614481180713219437570838176277305918083173079468916696935785148930254316026605227235910029986043349408555061649982157922705473299292827668419314480148486979212068495689937954820356993651316470108873206586557582392393494564898042970737331115697013691683038025007956675362097063483938626415703965701076965365200851327666484896536989151555046612641423615295026996262691055063230156015937509935657250820303877073790717642636035872180726943603016497493905295890836585418591787373475367637307459419405700405793806197080386138134114306352021162720195579432566371961917088206554990208908328250667472964988690308507748802311414172609764826552924835901866122150938119441728239206214237040830769768111813412464676993633337557014206011240597345002676405573327405659937836849918421063973075003375664129290990298482439511808529660792711989781857880820521921404684958165892357470457489146581641829804247079463951403390056742624469680876201397977830418092478916380189543130324692521732394309902988245875393095187952921652388429587667127945171295266282601403077381528270470465023991228712090838980690054392480263056109024841460536363456216001999026043637497250766885665562588781187644034902259363234265060960254023594566920898067427962234722351650234887626767546521776350660333733856881382184588326343965941572925791789377730715621439861978038451091686018216855369755211090923620149241432121254856839712161557011255856618153978673052364621540157008605502378235088074618668597791190013448319415401610382209937071762262082444183037065242229679528008662605360073890554467883826239327854889030767922363052130266846954207173279819832009359505107190864203891965216273029509982007903377170846777796001711952475710139594664130171532529043279322875257403114658170881732603362972945696775828434669955772128435920220564743852533120914133955608418662625971484893881532478660187158756251037385915529304340420448513586197637915867722991338276072409511458800025909223033858845666708981194491111445099549003129556963234652444837418338332370112724682110443885328553995428746595276473338953776450492623001486735130883415016151776477026985938201595400693631683168285346169082586553796172211478565164924338002440889848488504965351887929337639615421394307887064620057987987268859807354866360943866619763636487977339152773882356455857577452933346231794601670558436513762793603664193860017039026517230116270513687038158540921794224144599036079036650628039012084101411485521832706489973693451024661008963841641237072102821472364589791296263492148402637782805415259632078532923507753525012289597596262159359608287028259865119499227937157826586233020567730745609094230822982819137641731989272003706314173575606604095653917764907359554188551100301027489019750065675619679623059015043114451854536453358964569994456939826501776128222428549300370091588524907180176326862307226676313851145642114733241198194556023014393766376618767192933947442836296149333768177753289561592395871405272919126102085572522915403554992761834081326161471941940029026295694229332247441598590861807181331431579605571736165913296600684428827611825840483185416188114445248156992587714610786430496845658395195281209585884134705415325082441237525943176450939964502105148383837628223323897062335576514588571465779067679983612621773940850845863982540603324494935050063849840474223019749904731521833995920837706123378690600095947749025868932824365205352551415103748652088187481265121309892432887036063996641856257886785596250146139934079831618504007242302455050308387463481774644132267801160715133925496927048962396720450997185637472836759984910247941178263625893522550838759350305795050897745466540390146934423099550146546483477334321165661907767670271994791293379739678841005522405097032763982429179711016892822988630097103151971293963783962245769878355994618995699195426007930861573915283168025754688653676314328384719198092499336966234948177773723792926782171962569309116777035297515626638495898391613238835554195722469885333457801981513121247276848859281320702005171787041183403101528491849915657217087239111457773090198294251900392561818793647184185816463933059599586747263873330276156863761589375874396849291270143313707780382062546636853612173591527681673905610821064243827040520955067174519752531596703750235946938390333067939850753954158035498224847333314652342750581507416034209322610235307512422355986086081280919769917151545548450229065254890000785353648168039280365234325492824341719573046477197215040125751261067226213941393363875551813319295598047032620923722891820019763015761405060162669927933997849485378085578574863876273399815172697215701945569960273619693707073345475800368237185470310599846810613595633694113032874219975925735458730173896661567289295647353230434306087016160891631838570352304043601687964452517255125245148050723978637533223029598813316937729747100687449080983542207697655121447843427311376799788956142284222001152144365105448839483163508168502900348665103218471686232400251138784538105927906705259317256613193608489613503763650737463419392051403002053515065136537622245265544029448731248064037822664099490074894500740790974332482717704329647824176847089845401199489582612170794591908873816158237486394358533757126325280398577150981095451132116996662953015285972373598038342272541276422703165956254794017698299683614495729555956710600108472475556761469611177815887591595162244046685289160056235038432803217061186842814050588647678109655918073136977009285512219711770230320461707804504506840095851298381030218165272748724555808637850958599241572294208784737990931001595353333420167357971073266265492904334749734399690590808971771821936323366147035010110799574208994005444404340648094357233244529706152018837138877211620270848073062713974771429803748307159176080170893168806227729970601922753553184320098637097920828131665521093754116548731907529508142674417654313594657113852618000200810058613935071214135640980383538616663550677057699210735538455518912206256035480959033569449520363296614949050978110467689348932002042022900991431605260278483524232032325534926620269436589909847123895644910105316315651003657332290468841435773348730287461226909336322780739162334391191763481444186383099253930891565133060077422377287427273864961672054950644400253265495124320688781993490600129577646964310761221352416391273860995834800967585590239626131574887533169712888709216436311998727178938418135080354334440414406875485951859157514345686007562000018201780897876950881271402676620850274652647887670247117219657906395804617433213432568203851330597875038856344876429192230401130909937485649644309769276793249837019519803970635025905004437478117845001643667051423047800651458283661495287167970727617597464768067851243325613847712133482418068327098557656329018650032836056595710386396617960369325265725883525535307250557869667127934651081304683991518633553758083447843686739993529758646610230599422772752526980934875483883038840206599811021558563176498490063372125066507940215361510091683254964876588685599681338823146994910711201934226523115468640199927346512697716896684791360665331136151441779263949796540607997411037920011126823760210968169847711090066905991556183504489103226187741197479374231526150999942709536049988332299137880031178942008901273600747672087966755650451541251884729896679965879011199818937768771230118635385034279743344534284401034907363638814806083088847799308057614314846382124370052379276780284225897033027293308301741720675338926497375000060631490887258521272402052000494631591151518735879326644319742752074138970839318662490353045932911723049952668863722678826897471071985637111894485602814691278715120889825291866927681300629655202929750369153622598592079379600089648832746394340878817907986877866605963257394285220120803847377079357017490932539849763144245938933770973077441087258295489440124131814460087071433098849120958825183222947112293564002331522732740612075396361705201909248507123023976899050916533386210295616512494201722190107589994800050836540063392811104804203125015476892262333934294192508113661702251823059453085104242652592935640438015215824973189821153114132375805755326676851507556651765705135924213107495299198993398372569636123882281775612092602317038082689711684934343924612961329895231777453986225078193106251784814054870818540244881978765395842558722853618133428768844838833270960459350159725734230252956412530621683963112354057676913563018323278220015549106964205372862782483107919715007266834881031723356210659298597648398961870599598383205150107062048589667334446711386892832940448812106329373697182397702207834525237762235682283263268924770230987109762477034242493946533600728774696417998126236410012474445495912991092147122091246251243256364556991153187163990198730960209571596082693930593646263287681459660498724063229427288923161334294149161412181092045875247176130292564897059069012328834029085436273899453229870210149890339524425152044205754168310427600263413695375468295959454969588418320151021399163854959036617962164058107749734305359547312569140005969005653945581858402903254614014397086749132974851928414806209302123782311204306623446619251373325615213500019913447875767476706053116940669949152333666766403198515742256419466595185507058185154916028861099118800885505207171590142445142550811268136188143370811881703249565716060811927236360739669535936199516808104109827423690429694951224654089085710403543171809403289595974126997515861401323231478852179152750372304845999472142656725387530196354896615174732018659065082344557216614845385477716491572308639020075622857059705044909647660597226565593353615336588894066813575628837080086007448179654915095320365660834504722594549394111222617973676567942195311547429514250746101453686108173577049350613554452767864276633040579291490404104742686037232551480255628581633393068510493464287215282689851284074119874513548220612171237185236237281685343107235150518552473969497516171175371896110331350692628792356937007381960147538794902107029415332191630289139895527497848772803233735974249818742747338147662245956816308997888870007503637943169094495326102122324587914459912382377235565667724308379047010716848285924664463648533566093237208311646005501846664317037088709325792695117190190509574314441097776822365708717829857379556197107983176119995240005754188586035761169338908032683972237997760912828195337796592990902820588764899481008348763951973334439501439215057746654616704076068890738479834393097598620070543085602807866156173972499739311764904127258737748209692690569915406558904157397790542782649050010224074075325067651000701823870479230093781741840768879100107382866193967475195793147827012711471570391362682847296663245157929591012822471273077387107140466710675755953636212460374276157376622159955219448989103570954449949260786747321331644686773941703320053924140837746138385059521972663127501110186328326707252272205101982694792433601548962488914743155527861417447131847760187147531965371880496550997206615146491082669165566855793673391297089024689498642224418219865072845896020193958831243576585588679498696255576188239383711106780762073632161095904712556002363858609360659588726592659065797959478864745510411113174544647388126255347494262194998974625293819320868156502094572506171409572568421834457368986869173857848269761586668825210468500093939969893631748831767106882778138812227093628476742043923454324688728199691333092617716367426651851440514961592084649639829248386500614316073128483421141532233219233570400572871413054831600387069093553911616288199082793477030809352181849018701308787684635852943677115540889804038432314176808686399586938951666611199061798732463812511535266817595035025855045112706692621239953754528852151823520454047702649537263826703321799401251820937296985519455346062311598404609520777259990458704590084405359901263063160653635150327308624270548927752645358550541143619062960723320634884836492117366056584648790529580644227278288283607089655117248412293307610384985934142233659535986355327538436940547675853626799670089786326135150516577043894426551693828334021859018086772562136371963575042602052095375056695820625252038800446707764232659183616420818072383021234424786091465460549986361494624081647016077004414089965541588866758924178710439526396441595610000321434448022240415261408554294083927019993878826827147398892885726089746279728200791361033296523692125048024074858567081549173652630327692622255237560415915981547490455389374671882456187884861177023104517415985311112196460418641054980449466827074548857445042525927417814832037099037318206320418050171916562124171006696874520590348870074149863079821515518780926624265614129062292874786063548703867873544664067712442911188376910682611435626895115626181727880989555172135102421849328454366585356643965550671785295746091858319914807128399165713267138268064426274122961136399596470314887720612991169272976606589505927034233458070200027088232402781944054451916419430240720343988295194570096917874435027856218773527069455739244062894835813519682395311252921247436260813301926022337101805493270370766612336256855476700589105376073163882183979327648855774046671125193237472457403218241834240795691496294181773472829118852216729345622764499568132060500452209978563281142675928589475553456892660311221122960007008446954664156612881037704332089210954317368502266820539005751410014225155823934910752214898506049890727669962316184879068342203846267329003218981625469969143325420280524517176545415494546421532342574818297707690089968251005653553827272033112582095100608471548014991609392396018924564772099676433464231218583877297928988590445438476159489570272755521233810618960594908454319887342849646814985626308295825835061782461222061497992815713651543455969780836293840570020325722749483344368315501805222771826232637293384706062486297536408001870409434835629547936356908551344092870885914112190653364869262491886804382080711852273625927598230738904675809917635020105684843154233234056060740567863108196346748296103796035186242062996204892063377443656133675104747172776219200841866518132157825429708155323839891849924838571991818222261984027404952483988270535708766704114878734764412727976254589403262939895621385169580283966298967955363855444212501728221182712122752801111464614910573583256097889444244538343785699077469843421269804697818301668876683157690457251574195663261411860424135386163924055456456001908280990474227684102416495103103911381483287322904511084273687673133075855662636305206425036575331196766113008721814614542103428373942575817144771728375261617810567151650461076076659454933876161786800754764185378906198341287155168574412531805295501302391978653123988652767233718633927613837602133233320000225639720655020299808335851080461082673926293316783401364752175003489971548996248638433490755715511168033141003448022234226121323303489627983075685136830571526582753445517646469682458218820001165725983448672856188439530532293590636947326711339503013093277890861945666913446451042744615754123963583376179814446359060081507330323577162146261089049960739200337063061395590967452947622868627763823619009694735138785756514339858595240200822088799219298015871174424001102771662555912226709309707820131413572952765937381052241266426632895619693793140893458641321801387659652726114127107737588048785454729715884672261431273880184828759051683811557018943302468310931785982000334620006314010656939486292516432543866904533934712676545059438174078942886416287861939957401409643192859990998993735340341356777511433147515945759315459768522137290512520736696636232020666951433760200679975617517611012619301304472790153345692354869015970945826053393906990488659195870565588811830598790754728615293283557928315936157406224046721080676836002554036582926495459537505045605907158483258805638401744081355286288666154819687655292744682544049769954576053628458916110463191527712996866271707168013170149090372479111282524395684826953932308865519601360980879775029802340566200821745183081470875432717534970247740009142683651567221157580289213829894331000845706171335911506524092778439123610763937686880923368527830364725707650285535367181818642560587507187886063102973743500922659492976982032884020627835738775573357331071159145944052641715937605332217402809755853103074018442503552763791801154188584873895592664013820784926824243586760851264537242559156993750506586866341474791635420836693139043438131664697301797735213854513845456365845978180158886529442363584791157069702020653525858559343534169899069452245407247285263615333778966301359795077307929175654495588244033404073517216838566107993150547041861437862611367760206313443153389024358910982551800736965638568007400895332724121563719185986369288895606260479365257247632443303923315768260160997420582188353260293975428250402328295352722115699960581500422972278534915901227242706323948538841803078241173599706514070144489429008250476925445615004442465425954509433318513011547651296608621023985287196379788717893644711297299468298006577795914307763304161843530628918101761589914942406697064859150362679938461509669868730145293066035300529422733821062070539525844541424344200475835213617685009182241821146139635777506231489728768094729293850447288608973237671484712826146218440219115781773962806500609706805701729160180318421176266208287243951127708043522998091727461377246501253841440915151270730263047406402102863761406543854810322402679403936580224966248050308477592213978448388256475802201617197507248442659135354866787488059473852881960103047907370668144830048650689272920842733453431392519874208967240823068369791929494348797153866030211319898854123177385636177020618312262563376039580443525249492444056547565595978981936986735801816140497206123465510621322236478267080835286589610042250629741668801777130764742569763860972733792562021007467973373894600627320332469459716887895059986173827153144754799789519508677382039477151076332677538185525521400585344788895708729519762657260966822462882319820907819880706971943166679949491366140785558057189667128181145050118309216409448358159281422085406456586159055462201048058462515151452104737761291304761794905604546966037716257557505496123383261876109956168653092831567864767809647198190875492875734245403802415435566444755959811085058685572322948820668145957854294414381694069157852160783218559028726493883251480323819573404555529146632174745954225339997272798982127296380113145813019941539867571177174219194259608863579934670908840631113596556908657737301222895385134687949625846803276078721208663215196879585767242555405587038221772187980702990544726719802829284901853007674052574793714631437871082798490820511944099129581302801205552714383540496553189334505035210778948032698795593297959550207342203965060521949985313316198750661339416368886493476467778796460788084126770978659904824278662545186262982786070504212051398495108311310081639342954918795327214185281375289520690938641217753770269754831077119938613495689507853672031024105107397884457513160523460636541306431202971170173941300739438962707597654413597633981665830376550393110030425451149324966928122961163386488074695356447474687083227204632288649255201882163137806918448048957484534714248987081279572880119767327629335148707312322553306455444148297752285393738357050279339141043269109153881975104277871320883225078123629162521415991920030337130702560319263570354145852158784085423426327149916071411534441925497295912310838842880202839948255368682185671689086092462533700469152310220972769668243006869306099322300702425040784166514671986904169330907803645031215056787034226448647305542302335242222001539546749110686002999145148830281784515557909492571727939549452774508226976621216555952725398370660444398893812807364406808926773599543128913200531082700483571046202002233293331020417001612657969804149165769752348343597352625336743741394900830657319998462042908291794147038302291015839503672745006123547510654412305765571312743518342724005148081785395902483897845246609847881243920935858727778174542320061287173535249730736306370434399677211583715208960878397379774969377359685130281861906409989931732826886264100820905855015101378423212154104341765227234004426944006938387854618266452064234295911032392794036261248817096353934956693505965458888407107233477559696096830148976305097447364545177351101967791309909723012478505771976287569822646215817242940811344489136584191513017318996289882452319329257454252346885813566214956169376471907096964396648355599132075867600423121390733414229152427085915294001178268879536496805575876914689784607613968200515636007537034571334712664804421197053642730314730248484821017774129110030173359039597506423102181912171019334466421827176989423680782532082996333956751454879912448038822829219771234993816556846607974779014407182470787565869009713743460943425557045215120752193642559689546203877144827929682870773047765545255243428451404758892799301191021699352466575404750047666180637560944653858173837939223204405565326887499675867916616006873038859494224579774600183355355212373812437130456284825091816982641737218492050051142504332127169681257410039223976689524469490191431875419684416754075842454965397746077784429464680660969655140138585516209350858685228245521337709593762634152346930345999174614301703068248389986999718682058466053771521524958982418939018880331138018604895627211989582516331851423952923011975612175244196697800180487251337442338129430199696320527158314302885433723217554095496672185227167825695720511287988170781842373356892063382517710977999162275193251515276358897648565347191222052927582304902605563198611169565577736096214259291766860621193924395027379867235074761986331994279395780421797923372151953840896159638411848080623741849387464470369012137710294647867116381503453690956627620973360949788626118047949858644038593062924522179730493414799789512283022466915150695986612548603919064669601362624677226772341695498450361078424585850118729692515031978450054951523157336312977398871271649931085614789595033279575091943140540805721009598178554415396402689265909612542540950249162056650784899440436811620519069702609050685830356599827860761440964465716216626869872164442359870247819079186000092677692125443375198294632124693713085469747784475996937595654616717714022191971938721886990236094009684265115076751181492004118645929940669719216842418131885749289955715115915859002429404873702395365415429156097551907320732676431983106846444239274422242186850078812748394797004797867937495630755180498421471012654731170827158040365802681002718174756640772962736072123197464655566749226159772956772397755439501094070612802160071985958243806932346570594406923647225149851407047575191684488023141613242006926307957327549861382073671440934566428536783322089206228559767026703318780509672730734217764569918022651977590003337295716250717289345526601468568266278385857192957350260789878934851793960252444067298906040861505562804004714586175533326580671185456187296287458289583886676391421799058918707726999318678487105756889340857955740531358365611251288968302763519425699126175071609947299336930478200692275746541326701894634540910395147374412632817223532230410396727965742672584429667902888041461457827594087909754312555750405265334447088122643794162572912565752814983209489677767544248491222429688717208469813727768678900022225377331825927573088833776800457300006519538664120731030541511136391975197071012319627274457459709115921307742990157760155329674426445571973865409478666645446456797686337200995587917425496648951973285249528944940607803193706207569110667187215916336219134975082911375719354691313359529215323850488872003963773402426187189288990571075785390204606601655583667905176780296190252392309227305751899001522575854835539067817132011993534251432077305413120642474498565091505454462394154182631241462369715944132644889893190358098695977494955862396293149915552359262152308289565341724820367325433801814735238055010830217255988596526717059279201945217101134778129727423650728022020006792908733692257269719121402644576462390233020618430296393746684081917495602758289948196259987141473887988893738785139216586845716139906544196278833624432714644268432697461990032191571898087798345272393589093393094717158886200643854895661554959676210140656389559823180294004637458474698976548878331868969468834407556410521785281351419675183190588037613048719159657828873262315485443674567081369430368814240524565734629240134137222194543855720130321205733135973180515849196788019217589624863311742866383787367802829705715031523043654867854357784110788597520960068660478620414761913183196621941659972018451820682402908582457322602848817911314591060071411857600163789464527328180280980532587207227023356727603401685059992873755815535195839293114673215659250181264529711152535948222737321304511219715269790572449036007481686017788019498007834700362465530024667685620441066845351305382568517877398631220963201303937047616986327096720080501563574654060935009818595610476873305833094313611889996357657470561988678833233843169480570192601703641072300431495409914964897484450615475232516222777318486288454562825501359536087623589784947910624289414091499880814651481083871085552867267892848299567565554272285085389416273933590603169039910558737378610051442880679288595796318954098080715695875033178864783706191726607144327813361366807586809680503257775363243276907259564867115684873713837842462189527367877412177302603832166044121085003529587829381114398228900716580309962438161965395226031345120225294775923944877019345149363532331210027642244105547005036919055218437310682044329799416455794319206712348966077896095969222880797670700322635843821054991453339243203467159640773283858685277400013059978717025796418918189751285501732732305842682781623686989630879656176915206711844844208849905059020597146125778832936112143435573654606438405167562480565877037633243234221265933076574702701389909417912888674524347259823505516980806179483924009426353535370128937130123551691717962930755477006471931941183562972018791470110328710448619157349199007083981457210912823365489090993152188843612448872312759447245181231710327905350843180928678583514322426063878656174494188549167807801916582527287358950484808299771836409052243010685760434659985740958682029437827411351562755224090739459658316757136145252902553025504697708441336788143146709672827317866192152180992513420607512313997550274287091752304081748105391954607231124968519137766118515790042810678363549869238108302366998285006952242868523169016221955872417194037913707273842021192644119377811717803383957255531864099075649586356990338710749392965929799083613549740678366774807715137551471491693088427017310426050235538098983586981224823078444975424847943441342454254520924937792709896212819826943555842493611178260572094439690500776259142944582096202888639643376533601819252863771779449759442533203306064175378034925259509000755813816946340251286898581695207808552613650488709606396897130723965310754724645718370034739817236224017775141365137283807537231629424431431112134626497987627255441650709179133939797075198625401726200432232108308070554594794446099332724892797933026263883865645504368360792173518326443305293339459584866112240659629900268570559547503628311937783689544560737700613595829124426636456880730570537316563475088495345235506794833737230423338578179800188294637418888544827688929431895825337139575888058425690089562058258789332212260305419792998277546405583807351688672625224465709282744026700142077814972026533600903109719312216862787944606677624771277934809515741141293825954176224853556481155423811499120720582516562326838842234255554451543789370900634138837303342911791875433310162028948580338413485763683284170454740759812802083177891619626921175930517588901987511098993005774856172273123558017637657641378081479689937304304781205750823627805688779926279205898782346454099770714633244235580826970339713577871589946733038472343058325261267231066868290677027765121309897454395451380372648205496016547674976527428021071782681172448676262353476845026783156544524931604446091860505506629658633804183968616260687891480864186575926056319062851099975956085483890986069888323323082747820526007961153879529346804178156102869614474675916514365631712173100617169611876482851274370234546771228843537769437094954469262916524861679195122331549047517602604489359978770406607958191663103667785947246164471504012175060902716801438210720606705890994507146651687359231450796851288129872270102491098193136218957237347899215430089611176410113472319394699959814980530196283469251002795689169891584532304819888839818947338830121771573448986140298730142761093370890251203558155745967177115344713713239124557297689062405718313098304227386300751704643797195604221090711829487463217087664004479941204781855806316764366801951839036179492730831907893635479000485074740370280559515344643518824344802551925847007993322005241600911172908402434157940783947956082176317998295653524913350236803173638408958932989009002369212856790932722928429231915273622662512637422672782453808909924564732174036922313563704581752425119787378357488767012707031652441497871864112355801592840572762631556554502455887842438141147050788302173114714410412167316142634738411289370027520322678243113059153520513785652426620657412540742584412677797569219398792974804497287432362688386723860471939519575146696489750199403672108957731244073861925898313052411329281091075168857525424297152643234353878596972935963539892352011371637700046287058084850460486727915247234029023276038897541884115559903572933953228584300396696358240068674022847193327330482505899318840739057513959818810090107449105774870816767815085149422313188172103337636793706060829956118894053702207618833477487698528310796989861743498721234858011625946323703221196999544924032717318466579638654976341224502688032279938928478029145884110049881172389646487899779259727475790564824442940528844005318234918767397144270627210208165239582862617727329035031593841954417204536416135375363056980703498476841477127976267146168764201780195089023171477950614947559823226001906095835229340328538993669257139436940522279105061032127413777287697080719770415458495461189524113041890892886876052089432202330917984443962976233423175522814540154517739590404030040194760675384982245514440170664149785532319168636398117090751378666956801725818804563978750336088001144714119563293275634849763876805953177433023033171011060513760256496226185202752371470829420633021068659095685804328422806048876186286594798045576475108436012968826780528745773219662657459109251589785451451939433227075854793233339150223082904295211371101993952658953137320469603937443050211400013762678827257620215757977468110263136235625600304661547950253702912880878237345977854336829248342721671988099578032830007040547136093630902251431859235057323857061232659887260554975921587224923666863051105237937631313620042836592162739198757967256503167271669069453894270951528289704580836310845513910188114862449562659750254440094720729032259097144611551691075857442224334276315360480243079179180158459824929427850777452174480299959127125160969120131799150549405241102644367023887206352375480840431145826578282820998660964569864386720534514918176217053148409705496620018241023875194555561849142510116534762911839305677935964773122234906829829658827894108875085889220958938190018025790326767189920633026369949634207512138633284175416326493273215145315371937247854649603174497363781236401115135146827173650452317187221103299346938439377275510399895254131677905687393855231136830959484327882650563996784464795374186164080270530948345964635211143527116902136731497533351476760223524519166647935176685499847365529453578247220422807694523522720745775926996600547312856547056235853145011624916599705434605815637133480185000152335447146825211908244669211383512008839636478876665146671855743028301723932177181110404413267014578784859537418990800143398524769100100613572854337435258967544959674922864829664249456713417481447498235611821171661063258451623066910572740904817575853650425362714818907618275169696640680433188187662658037462276886224108713574621458132620842483917194994906485459347873978798827214803380409411237054700756555594258507593038203859260280577965515467392151153000731544483176166691719544185511015710143625408060970555344342860215806844775186288347335637487914142681611149158728106083078762062235799177911166746710081557964949948087077035937843964449791703098184712836499776435226218693201024762980403723401139472455215189658836842793372481994667638959738169422793084089707317994210999596132590705446293659117543857985531945420800851892365401593560464999693021543290052689389992239387639488375668176954297517922898897186178008256067861481402718723654730679522740252169635492047802396092217371750229507034940985850102834243867831240777109838551950676510224171466577971838066477869461498265636993985435822826562827633271707276643449787683981037796179436423282424323737584185179625729628336129021432028518158057250510709424608794087795481130342612875961404048801562860540314851815852975268611520142073876777453184382180298245594973529271163947091960892514725695389828961600462984897361574847692941128805634987141566132435779876962752021554595092603142373106624113827509759717993830283828112384858593498310032967766555742168993955511032898264764611735798517890689067945151615715521947981907155168469902096926034133692534318919266709730527710382684016100666800534440596574706938814321158376223024573965196001023882660551981930372136802475685129027351898949771848546439941808002580985520873817232934639513646544392500779084797412885553134329440638043326184092853046802606649846730709804946509474138539515850021365105034728752946742975544136276894351433963967461309412786273409062535009641307506235217120136560533558157283809600499776804564464941809944690792333029025112586616472072013286073053679636178040614217438443948098329843161320746773725609541158098759925170294550994900192162956408204700010280476774857660747717303443710349793107778555343545811504995977837716141094990293849260852769621044623072720853371015225440234617635765232376811678294707525516483928815604446815857509432813898974525642166166569536161062412192783068263582224610491694502214580637430913218769044647676350910759904279457947114195554110593079454496488181162894760766261261956491348921001051696568957315780601457292231967221498893611028300815763373982742236923047629858778685613640469522196483933100904076367276900937924094628159990111281590731304227865681883945107640714994697778423799281597761068262426040298336466964763091683293099789554426609176775164751963720124669342142547371973719757361608268666496573943465949015094633725447752691287995981378539625659840668086235631246042531543087690956344380182302862260722329777786529056236883069502071716595633010632227472551927902375203212209542896843253255414753201000147634347776870522363781807356194459943072077032377611632954229654009207940268216851242792298726312857026352975103220527946709745648273437907603264480198564612756968449015233637294827894820266789884964726066356476599624970225073411540082135919331428987591029364861024394042789521050617848534368711189178256733254630182169931823272811800454529459939206297914330247235552625412069030142219973792681134824436301723476867402280994478150114671343418845254688268405877902183698637328547283090194605643302452041834456750492398926211761590201976057506205592093638852732604100703123463008386732529994797246058094531580752169194587648130040179300123976513864686540427793747125077163222630808441000024366639793169318645865438899958282090547382386154749423962426322219324248086270253125743650477710219390103626063606227111738599524670891813072669172223006648978072115971539870639752298939166799735896649924915270223817325559834154590407517480080166788892258685837018653145929385974910254002426606870243853165318208168299179619621816373370288081486985956496939050117195573979046055170017606613641646823913415889849703469314150978940249265024998059917915763036267896995313469739863338282001062171782696936069176908165781688822917109637332687623160680573544293901238359038228620681182842676612527204315466688680780404980663499060826162259675086025138011569084072334095070633839550989418935377028819963227722919077362547982819870053109222104593574953406239472364663570517630015721843020377757577991644071549253724046201632197215496756644720997331239552708972430664109969848027933300263767077292482608341575710370273931785886351268683609474337281721246014695287165382919563546795060662846791822608416009810407108428906292912196386974660358991845749479177053843754699446196225553423149989166504458936017305405926521959531659502049986125702042823360769369455903347456803669335130146710648616825215513336380494318996965148763818585630092807438203207464910367980783936440296996598405293410509684859577280442450625654544216404590250787497716627419933661117341227432462416568207241355732682249162200779923017277716948230672410874056535806171675018298835974539892488145526186559734390436495223427502786284100489445404714684798247343457699061576716443470719855852768397736908149204029167861816772004228984141830672202573322881144223757841928045753159240219202200354465547056673331280808068751077543585350013082138150060154030545129551615835381064618911257226623819152849707471200249103839740545095854965050124026368416542761081628791733376387191148839012699224730273759090045385136308845371702298877963658376522215221985572164241850095117451490691002038820372477844792693060296695133341658803608221904859623304352450490268602451736369693190353040871692655886524406026290998527870370128062074169354598001834175484075484223866462205241059576411766602598882781052979293829887327759611139783728641131083734529672720568915588954746739119867076814454781665690842466392005639920027591864716409685761426466538758789061327665886754229745518645253763999798920637898127223247366663751677618362725718662168642138527234197395891328818304597900378028321214714669415806088312295233145046634380666964946997860685781096568569406377371012203787840462679008134850038912377047422879681189584472467866949027591366177578809398121862707532696666714213826110768141311104880838949168422432258895939376865355257428394719140472705013564603798427599264748975936454925078932817158286787193624751881733781961286127575678294839625971572662298034469233861308276459824515967141493188827294969106640258288424984419559801557824222395563798156626030494464365509770870308927941808235846091025469520314038938340466786478651158678491244465029985731028104218439826206815438898852613975006122545687566346766240521883227698274391030790657574750071759355610558873363576537262045631657393427165557292850823004920433760882259303044656760560020142035126565124253211683823777629774628497868010760932678722767403137843938062737001141697333993070506593523132803511065287354133089149402857776996578776785503655219617658250477746430174870689684950001844059752836896506864670075714499940013923315831159368813193025520316076495072593778618968054469271695091917153300747461147710946325788692494033917979979580947047018981468022175221820108577386239507828570765261643868671756905578901761799311559638473362597034368857753397473821123187948153442341769658617157046852907885721246444640332216590199575966441547509388876042585610280623379240524008303664929100074869359027159189593337967037194542154275430649153279121653489290577233168441806113339766605681859254532184558371859987086004943650060949523097444837431550380784119771575213631183828615450971483357544794215253925785083676828541471167743765047397119039891891329319000047416866981187933263199719742301968453680291633629860597906520227474738251909275464970272092610265589507348687800270052050991989693014648017532169688241614868799911341037703737892836716383894252700651458377452384887348631820626469605778688816842787800056411502874506477101680382370193588140776489806838044328445015091224395141527520623949238141291022267407209590082084900469055435157166985837276473345281931960209806243685461165562795004944845975850964424556431940499110663837156631409911953577226494179007298868196091931491127497188929270632552964755956315818746196725266671674633966951797242503396091465004107257256199713525162997273660538423987885307790091710426036254455808001708256325022910199176654816828865344828724825992451907650024009814310794710627660507628147805245276950123744320295779137878507562566940043694494603399266466791904106932780959360607404877594403834715897991637139539276948430368683150797324554897792414217569148301704294984726587968390752847325774168797326526235636712233800440135721035885208104562651737648147083266230190830261380729132248720974238918240411278116318378694684301218211380028110786610421295179109912172447185840796340755404236476203462586505315916620383776746968787432343264013797068750028581791101177281624329934327865866814925553228230585029528681686333962397492892803954668108759835636635152332646049740089870955089452610534480567785285653859350541843301130676049290024724845195575299197696423206370196085551343450295902909056892877489471591317014720711593468100990333065720609654750772752547389883047887205539837861562746071338279919597130298443291756561152974602661436679006743984323205427709732344355422327787424861901720905058692042771538760449846738997217271737167699917397954669323564223508992146226483396568645369021024282232907024455984944274044606112634762059329941449759391524898761275552878347613052982863717595543594043912209773903763115858940264979539744657272903775709922444954552024818865539459852136522091542038936411221031390952406933035741620762193256908770773632778781764986423997403270789384426144842965069343224287853699183420812683828465246958809487033390369280946491679591307514245298059956377134310979821549035667238684834329851867532259436634607114593567507675572923955045209930714878271155204245231595359906462069400898276709866236280770012226328065582757726546610548832085461500253008874605031650957695825514094127444478903378389036202351915764414038715781269420220297367295504642254119896794174631100240554696758218625933385442020729631470882419122360770187483185339060347089986241918344027029599897006035092563506426530111159749045508623790225692839973758853582716937039193414633654791225899547302779469524643614599582261047619117785151735335656109981554054828411435593549194935907455587779990708349258999358782807296915037445898932912729733827442660745465946637157123698648260147386865650783676141890397427876916314616754753885700155916666965331999418266426531104244351965361642493469848573426581031378696008293767215227044446445809430519800362155696727373847210966626444719762651049528580736864935818930159764653877371651520005919457258719624490797348287474932295418072804705412129140062161051913015982872183089568809383816187113016306734386977553338179296481472720997361071783957944352986449290017506454867632678699038327061297896684863337407833225952738862662778441353442134981289300207509887786879686822160018670133030801795890803796748718276182032816950940646672642675811894831632411836720412283576858128217377315136021734868230608016350479074940619239757468891566789798201227062817535005524604806435638818776806608318176778378657413294599015078066640919522724171040716863176129693129493805662983683741406973086740498842896400592086050603075846848093290823103927493148250349383092463699114047102796684790514173574476005988527435099440501234694856262982063664593703525945866415973800183338867093485656097096274469193312682684362060495521652224057420881861494690479599248952628754542549375964828854965640788676044784138728321483038216869181589994566975260293528721501184093667205791579361141041666192135964858949854674538275275716234631113494063163093940453268251319972649971182009034606145443120253129504260994836378603660980991443340605447987603075858022665076344097826808109250041844249246413022385446101120936099113797787074613367221266121070631777036052091889943895753367383680257938802050426829154732561139055101880160317424172681437459098898821297428859978138827052689404371834713923540268215964415762363707611586807704245936916161537058016133156444951942224876151334936667641047721030219625728094403699328054678556297060428294246381789362382665379585312724562971417955465367604911397513508878768261697572900117391647126483950459264714490531241451692988119146627052583316160895112778545473683346171115946781660049336941518337959779796549382353176084987712909572534022736986377469107859710876289977826051129605154032319826034748339394476277020648858676615596485533093029049942007695318756054147837517446951099967098994067734192289893177493814866934842777441722706522290949205562041980518211910991579451390938513336810553427152845294717855641770120670608154337095507857998057237705470006545818545805178080938716608284249688128495288705676921797761705415572228284729048100682255615756300913628024844475703229088265798147731150844175713913105576992902328312071999281685033581055453098178721103328972374453210598956640317893909212936966275996896584491309218375302502799533213674778935786774360305083139386943743446671026862922773711504042331165158358454289803438112937635994021361685339797131378737593277338066706689034391470211158623104499085232763258917791891686810845041061136090363610158878093980086714480117428184840166882408084365804421002809602433820489207395167834961657230425057992297711371371962742852489639219818209808712156690128358542938969692821832048856518792174710802089448134564197582209523368420206878812482393636199435711487801643659436298148446166717925976217064737075816811060548643769977744559817226865553568445088899031533152161192994542241588070851432459136711848052807366288276459618824706085907059138997902604967245407529743062274539719787537044086268213111888763478184243569339576095039647434561695528451675435783453258334502816053156885747709398514592054666656210885001630651641729599921302844622436512866669864779746592674802009203654129798972806871991251652328958895028477193193757171070244897880991799627666186647597948897827248437236546464185755899425910815779879922101895578465120488126127060410173764854949813479119774652016104386939745351754353791200038997293559659870860214713558752168300045812348624124506566904910892476445420826749983148203507204679820075605730329109208350262325625608634521774463688267299449065266814180767871970625991565743442763578433220963466494637758181580096210251541956971152920548994800395138014836419208359821841950536111966786076994048190761376094961634260243510217049365457655221723017117276251055893737524104601594625859501153099272432423764237569718823904575259228543821720766238670088841512046169349637649527799916969735437377310542476983651163816783551701815539379852552353988167925963605547867717845300152713391845667204329485840771876940633746332909337018331385359416186542168055589846538280289169656478933908456518263917633300205852932540936605229512087586561239553634956470549446087319190930759816681989774627927922986771740874999131214593726502640432311016387156815531241244876532957048107406852122213447178040847798815480050101451960296921243065702875888806016543033809560735862480464849442535400892329926431668130419212470678395634026591180914884431128699045747931358426174091410661576493252596400984126614656535235154689969229776099545077055999702235268110299990467957421576415763726815769915172464979196021051216067493060662842579384740475884764937637590009948582474921149992896334286287777717612065609831198054957292152584561542177862859583939493943011114136610274624965607606060579017417197481841839116078311018712958712460492944368112653301375833186734215686193087866382885018884125943275710550414994295674526255958554129175832385137208676834918632839428638928779765263658410657907216381338121558847525077702378355341639383544026400114881286659394834576932633909398938186092927494054082203242367679505953079965682420854045441261021501444190663022837883969615214046382072903310207985012729689038612828473944914691387727811686292194484636269377736440674255729830064021727220193344780530918803798167030829508742280079723721927367520519787186721452194260878643978463201346900695542108373303327517846766590124048560990421168355776454901392960191096235250813975086255759700709177909424065806410120907860675429053530687178492606354272627978142252116387564302216050984395780908851808116585257328343877164634216552143428486790202846886180756707391624110118684567063056113650092228481622271189383205167547899557863587894792474655745874213926478117122958119304334548991151922366258535416795068397943956902566300500576744411797565616832726784659757146883797002453329738509114199135972620980551598707264865091036650938517636814026028546564816491869579034627452281107141576946843240262728816962367377619439757649910504923814261138083500848993179095192268701581660915091661212177173079310153224446511377159402257504707133361474712949632006367345422803026529984081360348261486157621905644399436198251476982607807027607841354041231517582894894293786734265050441602940840119061112380460139999064660005213725282042338907962578019408596763294079905591465586039458118132907869808742523591113677346762164373636765624293813483529630775714959955084484893487870480982347514136124433934913290444673228428907549513118289511109460901754320296707447020656498670431468133944764868383671969954795546948071882972101851312079494896936849143759820138172333237526102355696821239216776103522448786121367680437137542417759739532446630808846826480305254434301911360681018167891320842294593347654889962913018193775389098376239992690214496053719315229412785586415430454476911765603605897306764858534295306770805661059471369661831795375948745578047653876444223846616093438280938274611130450066160165729024254076970598850938177111929838796129913676289178344961973557797372411468844219962076025100775761398726471903333232727038363573285815534239008528868470482591575612774971793507689582765247380338446531318561299119611642844409062287915206256363546628675767332651860689213419881998537318577930642371592490890272162660898393763394354841247705370382235154937421893065302047510308211517420810375834776026469657503768063366157147549811164594030788687461373474627042882493188945315555038169228938209382402269954971782076231638393112529674505692135405002794970834867794341056024300904289580992598527004731936623001837865283079375470980355928699285097994625873850843402545079114056418136487491848306198942460495585316139211070711579677544725616365165697006194925200741763875596559563630378229303898980600626895581433611660107532800757562351265028355676813902207427728268441027921107574615050725872141756795544295949458184590180707397924880386442986213118651648180637909797816624923884852122435608138125638345267683738171199282769704463489750988217869825574715132213864024058800002543840846366157354150977916956957637754079350324481968526486211336994609360467872497290834554787366615526103899807352447691045173149452210278031307059375557548406596131258747709582182989745967753369693511049928021342323799379777914988143130467246816020068621730607934425983426203435955967516599228607844311650641406631572391187725331917129756217758948102220908040781962600344218368573141693640186683912567848438661337603893215738477272191252467656343826722039276624817535386597557239238441649017377289689540939819913380888748826591312742124002986610977870642238561047517796536251735081449121172452610906475523499046373588492193609578836428289285119552639889607763040982465030871377899330053824718937594172848710692930307469552210377881732439485741263943043623779695081393916179614790162677394474330067263321089629163379479480922488344900405990018184459403155534343588472219853310919509997595129351943565991693625680955744521217349567418280384581621288779301165149627524851751322321776888408685233751314638590987404493796322653895592247243180297975713940117307536486076889652015806170208581130966067677160162948199232030819280200368125626651371790360138253216615456944600028474684595495764325492621990778412876797735678320286378007165638510568420078741017979188262593430979526675465838208995022231450046014466395380297651195880108698569027276885367722794542437403627796975707839394780278025370391100553813193921709139421190959504039445037098522372164452744580400775333580063545737004182571216564492837952629169430725895568903072628808198698149043516453451990057550271577194199500200601057982419182626124061307008262438905391706999634358982810202554063180641221542187357520628424392174205025368532722636005109944578120634479171255858861796779696313534293212611653433305519002680171942358880455431891972541160009484569446719958332516258343016396024080481275615918203687148745354878601525628057107586231604126035419264926503850885858633722317424892248924038673807050034577250981755550849630794633424765029263612411893047826588876714437958577062181463704684957634562558507213881917666801114846098512677133304365915683455733042451473897263765167308052168540214753446005122981854865790474956438922794528048060802650954650172897344195768197470321960784193014750234937621332887658670949052405459497049646145417830021400363353871832210395604874475717287472376627139888667886993505033261971805134580460130000360963976323418241484526310385517782805865316994353580683644631806252102306046593816737434021521751754136115881878756047788597800746342345365085533643716419095331836351583222298054651097531851205120225784024462405167921183619154570541016112870992673412944179807605887662291136347184659644555705909577413030981797637174378732705684949425574124812906594719265366214246515992225494497285670285144769485335134150427394977792726281253065570545641023694766642798460036275425415788875609534669819209319295370940731994405686945280935497862984319410932197345301079104444710187947573424078401243615787075633792834611797256410100863789249398750733158368161593345061368077288331394037115300502742978809105562450842726129619361174445220954743843495968558398013379288753583222575579459318792471967325910545938466624170780978430234010484638706019972255640383896236751019016202558203338374457915722609506703776193708991651264792538255383252770709085224534889102445852110351116371153941391600364275683444613993069991467688977338985153626356259961923265497579909015648382306736877787407961987202682206918079602906115218095510943278540243288716410885557064097318071690645101384206515224965847201808635922101103917750863036456739805158438410781620394085283717648357811935780403676219721894243519771417619647521886589515029479740793811018156980605467370479899241130576342376263087600663298952697104815007357919289620343106247522107536667144207537289752443357689508116541340438415567133455979415219097625631966335394411330086733010629160274285270437292167067798981749308924958596638785831418021026944027899899418792631332620360069215078357647103314501005624930565286668452720129205551438904894311990066162216693951289712907776607824387429936793232575649960254450183935060482882465796110554024272504523036142428687687761110342992532294886025630956447730807207214452100126017988417133329724174573378610166341461868497520607234939951854010248801154227724255804668974746282883326225995808478386821259533157094190692603815106361047665076094426732234672755978507746019743213962023814915879280940350124632635651589554415934310630429232515132028652438170772148472635387082932101936997307865354112752753042147248719910208038002204058669079587046523367334469483032661532711166208634838225791860878656668709494977714231567445006719524024459439196156474768023314449846856569507274465439956101427035081045567284429491863913510877659537898265660095043610097958030799105225402935803359456985058968560769172690177283359500942974516146571305911404394660182085336946396560790843219980322589684706160093922646908196896870096568429841711934086588910207462281090592867790849925343229380342654838666639356193581143827875642813023055788503717227599225271605124056346963694637873033804408405851368108311314536038249490224761413375120028211720297813538554675937176409203284751749759914057236177956787144113044504984850246025191121591954502061991880696201170891637907158831634001407898456716077843705091419311188576872736815567002840669468318243225092755428432081872486085737051447019568085666976742715033736241307579583387568126617417369265393742584921616034069453136901894365132143529935119060374633449550361713490121195543819405875473906764837845572300335663077487262773175588955683002645783802959368963729999661703862528797790429920557001773660365482061710445927058137219736576766166955828958759531559911712723305998809037979015585140695837822829254607484230675632646724871588231017361740403150935543903834461615916886412298924296485189591977724707114528301326042817084346467234881955894560509585156924924459910324080547064383767929877505684691106935067273456735202718344231326726213505637098398407837017650669374266461861155315838215757352799634008766504079918176760562953048267775571914791143718331422528884742157080712371352226113635602659017770564336961664284472784094276014629651059126049422899584634800293925120511192209533456380598451569622814554370834418747502943935274217843240687231381465073741469635815570472787116335509657926794099059219866545656802746334954596092664726767420629497849331280810058584943446265716837640655894857139481467046128864572389441075738281793009076213187672105563054563812266384250456538583990933612984207548923328092899966310035474937425865379702406816387609382479521760005344783684308072049237357571740789641083878986415465717535159903953828695165355393972788964983860280454514621921483630107432241491308909626663213986359950233377467301067296709260141855128347820728043736976334404120094301179074176526543074481374770863276197248060898249484362188160308794386596783374976373876850485268417085072928757534608403119626034451323651089508928420321351396923235256253492354278258659197233167873100351955231671717502414590542724285652726782068056765843652368614811198968824346209400794604190998786996458652340664681342572671436205153706261227821172481001433368442134962110891875167915704719321642141110893474101916471907955292837140246014895417519744887831896886937074245407374062210609779123298818721293568947147681092589249379451964948843322508004925474039865329738188938607771483017745067830347764687323466190683714038500002555940145573212496195861129274351189450136988437183068923684361117788381943761485765762118966304731764635077724993364462323506934948200374556612577364866355631989581537719983076936657942640887585732548434313569459105614732171528337164900193995644960504384378010281907602188345792659823137180090695842165500519374911185046947848500981682754998041082278075496741652380732661486455180272189094420035153073577881357740615139201381231133046277473301145061794865114357866637262537883099420400191013353433793895708852298994464376510415920157723864174266990579426188042597432818686170997951470919881259268700145620966227594081419747548689123710703726157776350832200378004444072036661739046175410254759810438233493963614485337160058773896781039382514639365172587798349694358953948608939542112246908577715237813546704546372602851419002094200285198300806347049929338281243042852798344004436854588903400881035050911108557710502450892387987658891182163923047890775850899986392343653355031623573872869693883370273349660213388416727336007472158950176973719835923020501465980886720940644110894338169612649846195451144530216390196151215665887340944586606473484780860303866087994390276378784589591487653633197765434536806779208385456557733877819450333256925853768744310786753624512733609039102327768141916141715740701584110253661625414947972194980314987247309290076092022965391949458716793845030246881961936762844969205829862325036491393365719401975952788125085306157959591765825482238698305339719628401279106465569521810368223064073991679269640932805934487787491880154422505144878006197977452835295408353024507383845520310671057726358974739032745346408047501046929624345760754474087729476191765732938343834569230793306199378712632462768014379615935821566591784808694533412000939933175846539667761299525013163277170490722367981600372196163532726582785013739837240180156463815495577068838448456392762263751080587766034617264273538596191202318848039147702360138157696848889220495927387084484311414522240482749327222733322135876645590127937888220827265223509138253772392549714593639893304411147051709978526295486232276151447998378121686095088987556777741789339593302100586308872166608956150151783913839529123889840834178644567680921164190929851139386784342081359993639162954992044597830103856287842584771771893412271685677256963105421620091785844703492083665007836885690732131754001742675885310159174133407054080127118893729639399128242519480806219491473409198527829517400000908768523846820898077131001318040383152605514663735264510801055061040551465903970012586885765648050293506757796688078206611771345462239816740428950270840055926184577612844981013122730494151820116947741708066121957068640659652713365569839482528640208507866125731994161928084154228573825128536752922788543653302109304214829937361177568495118189782444132788352872485567646781304830489302503294318020201596616551598962446891302047293491278125339028713268405213513845710025850210733523449605337831023249010639927170218036970002506872972163082472582547085916960337304678602308999165352580120870526378585977144406813800848597750114462049164457921833631580772193472192338548829408123600179298087357053478774074581051819651404604584863782241904230508083913709720730874128303620318497105428557900173526202174973714421441884251802361543267035862083260844872604866371711345973317661939742247865628203356339657252322785557362788899050154427632783405622166564415014461122769758330406796469585597682168531666935922622017865729832978358875046578282118128953135604412597915055481332077864678738176395030643426848995473233698747584892547695819720400351618947801718725876233570799579649643511081860906223529835330960048439951000024252047057757063767086176137356181444413292342181090081354171173042633079273422880005847713182801595009064695513209154672108111119650659372283336787925369482058473639957079811607222689275893956511968830460221113455570364903556586004184055000019735427485943728057249408372128807427598182584882632109311043157900153709937039361226210312689636083597388259387766663309848639189909834091772843803456680111473476457987715127926260384132291041586259972878858199697037640835512608018083258693770660537860958780842838914266099503195701049549128696032883198501006529099240784492429522932177062422395172986113604935864124192494148388326712471779733761634534067021095533743834533470282259904814628089768049567981522634131146502623425168201385082107852292043054149894459620904360804764449965187306776451491546372334061564971613391685421178691284719229678620541834895578476635372479097562007779703979527202952283724723531848027150463540885051567211003530767536016485133541240029603704698541396723133149349800831936327653137544289191527478056156657761124332963376584671303357806411897137178865325781779078602559612415813862183056473796185254030637957546933096194165124553962289124252938709498716655376309690764777388059276872221230787683746531227880212289694150125133985146894281415030194379855848396166206546476359866613465966803493009959882985232223505395847748924634481349375437549080862645484153026826929674219506259980921850895333255221809047499637882338683644650122745790788766266584498628207279975321426631964916023505226830896588070042867505193329111733920498497921906626368979743290886565334017663770679865854854962765565312106241477928291880601872678318788912119616760364068195977840118023529617185563412021068066346029560143985856044702035012190829426835939114574613817681614233732913305958989727486883903404783443027205502948778640216194156651804529224103018851891101562897896927085670238499840398029021744477274231260205706921979667694935977803366133667091642137777235957780269322175447637340623662574125494137975331173997036140069758595454235649002400102057389833802798490183798033337856410474339135100440280893636124062289584031791457125654724612596995899602818997135703183557148128588613108993271581455608166935166072840170520573827597159374912869880926267295813638693126353375734518454114329995571122173572012570490794016322627838352478255120082662016320270578022255829171286516927441756520941634907182377397820087272615774333123779059953877615069514712579298226610959655915478901546283340372421977489016991881265710080141307274695578376201470411778654979918075649240965344445935512029802269604635884990033881965016199433654032029599807002312283178241452695293565000480300622691775325796052936871642984318739353396865780639699087156603452379245151096422227141850904574700054179942641399395800869712740940459218286728481061316654839197467571964752650977447052041934409890461574192824789071270783359196373809340135349026210702874263496930584192574756587046205081535755136567173300922309347993011621494234769898458847352621355789911506971614806091280293215498885187306469542355337064876035450301056858391407556974048924075447111179523795407168656280854716297804159980855536738580730730129946165171496381962303463257662098822176866378990772617412264286751565606969135601385210595321858607532292397660722247786348281711817839292266040313062768934007789448366098636138218885691064058191819207639899605703925141572575174063928996705343547338483230011177911627572653186028252649955035605101552500599824464065224727003019892607444836449001881857004045075189639939875706217715185914622525828449438379786749145116157813523259135274485246476857944189262481252511036655480801268504367501422144405030427940155573372431129966349405479788300514059925809784310642098532582913049655265157551875033132478898795169756753117746597240660208884859680969648165495769299701926011939044975673516051273106938555203160164969955558286036958521880073960112545068712144759497160713200113193587164561884032403096264515629607958400599154295252196605748754966924698532940821033386265430492541339947542197792137052749900020319735528912071721270214000553046283392856680577430026755239293760519200090900889438000130427445634931697083281462515228720372391827133364534266942567561673615874430882677063777670307248152806412605845166171797995394985991654696891050689123247381003393802297064251331144217692765431596003597516702775286939050735325096013661819048350741981971536390250960354643647578364367870272681088377780333403829643952592903902724801441605445515101195617277667923271943804071882746008189568450413088607176529300981006685167540227868857849748059803625898679958339922861509439360037853276647686566179176168422999421012205973148896920301921383235508293149111665835415412626004540213700461841818889613360870589474266239192125668339247700440840251804329467518578152204650158606896912051929007693744525017898975519144481679695313921751361619481920858919244566849645786900874315482316563578540989603595986317757342648670427905102581509434356732767173556418354166797816658344970609723730255472402220783742732456637588884587152260543060424125200022845509072798196721256218392269357253647172610328205315264202755579284282131878123175930946921175304383524830230259263922472153802552925794577414693363799080927905301499437523632859072285437567044185258113692364235380283658024585519314830516854500146692776897433289880845450788237411726244431641153827403520007879308004007234626993888545945510841588128698023051930825334252667003276798857352553033649759739037207557528526029145700607521257066524338028084388736177150939099098951419872561589776380230598540633559263070213379960153284214480436884400677610237092613520885924665399831124714361737191445078970204869782094555353631523788211031535032162405549273322431334184432872280059599933156228340356569583591183291071146084651730137361163636818044273458588549240998851925063710845230797602726911911883251098544278354138909548608573470678341981791198924103087991654068689213275972343138982745909015395793957942570268134286804727822107057404868364550105747148516149509857341341071564905220653208307108074847144819706807030605674275391988407301581807129261445852073361065977909396246675663754358061851479971364508561329772029967070047732158224576289705114759511024575589256969855047824104837038934712918538348941041956901095033389614675506121393534120386046254731435263904661375188963746872714449710061854214836919507804311023594485577720342796212069363700519576944074296283721748410221837879860748318502146943621000060109096712862849980565346544102301092169218648785989142587981813159454625586813054547039354449050957981043013766391856956206990003523366483815708289614228105466188506187652220523303224348173118280970700612140217215489383559307751335551080328734029227126862479734665815459742121703264978039834416674340206391454369692435535509692872740816984359397718375105254146631499257361905782376398393796695426488735221593423420519363964903073099517330321289203454973994852757799286083289543313600544782955470965614705020562218920527728154805536035714359912635769552686218263162997752876167684740102342513213002914933715913255267494154454724075252847362345567016648077971601819649584098811870839219092306072287825305960741345059036989202780561137941139581770578588209532086001971601279877961309862098555842702507047531751144045297828162466252773788548042656541497676703762157385987017590488471818242662616523200624719254601894019778766762544607307657177709157542375283774005442129880816015481009228915654955636739187990752618672643349629656650158644299036931682546141682891479815938636022905091963102122431791156352588689500368236737595277612374949967051014866542133199952429686337651588098648480446265372666080653005175945446926355964879163599054116534962745344456998401563208275124370217635972313484061760797975789495359136465846809598996072189388069245887932406560754046356794858041476757433530179634077276836615474511754150917892260343186494993770264624731386518621582337607899776740135992431666646035546740784918411076559334596843871964334515799750148951403184499223211536294722466912865878653133582293898978639479346594037756232067735391584821691406697297364228980421539480010400235439271778363925328236973924552049179547837377311887293113197399210507518786849971420166797013640584232985134337164527481932599347168253299988023981461493793732090793274454341869392517475540589149777137939677691466328300890933533808960835353831159619955652071970788792336152436790550186290076972017116607527143232952781847603995231162801957043178461674870338285063405157158727951888894778494344786735381201819666540558279596585248212338628214866349416251704514596771144104637497842603503218571333114094362062865477474950116230675856454990123102683310028786611342202415265875761735075575073556100173222431662578973889248374171449404520044720252056350347757745423945843830438619056391142637481307035753914316827474838523854390145882659874874792488610995806167898967196848530097814406605168694127198479541750263676487997907299266656786745381774508566416958234033081206956176393497503944351408857617041462477187833857435006802897882170273636727821434890734298401070089766198845748042248969235075235531939389588130891566360845663514501494264694709795348117642954139703234232605096223179801457859044429262218278949138966066859168771816596162638433121846609035033997170434776249575690949277003680551926681146400051903948615271800699549837243370348840008481901286792813725171837090776872217739212216143287041056393491392942063282438074146754521133860347918814964735872977939625655163986902751063199202711014693143912189191376694751315670318739819750345534066544376771266742055166210455362234911776674661539184447765503094987910701493748763906432629298902470918467658773080694627284049254944705949141286108137676169217088701917890973018165798948507324881028382529356671590309442088299013058472949498282346923327274832771204873984831280465733879313623271763421106414554283017413651549449410711820767225771549823044222271558510780026462414578234642839778651774533224306347342380853831299731443459535305165582275285677748649689116510278209913095808461363164783627674952175192455285097203787078950487921954411438806302722823624032081790785937382062522786944164181641477156109848843973773896982067946311744361016382180663986870488627656052019276817447355171447494111057452031263409983271121396095831248172197975562678666442292489415864125063415381093539144176530932033670120999282035839182422730922704649935130332989436536976306678845450616708355360255552550719380092910741877496714845641155762960986742572884999774227242265510849997214081776175897896763578526341678201119672095759368931210017524987572506573464830199646163486347485681275377829119654868632990430196000094451714964983970015884457257325375023550830328696085219249708009415098865429702064140918030944503349185876975025471474809792773637942893904678596134471633393363015382904975797367192547359816392721876949286641091416258785019760644615319364600361774888462381933381364161679442187821748865272029305139644048461690304589072867970510239507260691543540025855559578351942817324976516579650171149075545754764441761256844662366823600942597925558636203409990789939897948879866795542774476839160449523119668234588760427749764892737159485722988612436250548960799019634757956929389410881123851936449583612555629725942499248512723893149254079093128051739301008475816268005953091527099969371583569811569522989693312989136239261927259738051138897041123842687181291842546278022456705414439840733963489927817461241635946118454609686185281185540102841798473413798543134152426515963446420986221231207531273253510226661895479793627510465088390021960737922038844797252641925514907931209518426311506382295706014120239183078298156359474307917045390539541829492763279963359230274812746660505442354353519196114269524732015242321797841209477796155895203203284923770267949004864135316120669784056722523080291727119477804898310948297138431495789065707954196549713536465711122247164697663513882357133383272963840434961250323179462831734121600056904020576319803072451788520765376457906734376864689725561241772869198609785975301386784063935834109994368782439673913367940020482006580592957612443190256199334248208291720700069816986386656672258702817947304668000397611359888996312866327190403218014415165088805858266121245310331831824820333746768235782393868842334563725758974115132306754454442255108675479911342622864179477384473703290429288847253529386034840372669325837712500837682812496140181174585049777094074094795825424373130036336629259242013156088945767196659904628045332275869730880090878700484755049978847522183576770668609334150209029084381210712411976733198578815447679201443470801851699003760072698518629047194967801562381414837699719150788604124862108113565486605401451900389050933580369130278457261538513789644761828687139205000943505177617362750418755114958981495277953882272910174023267933239676312210540280084620713526019066211992166165433475187252933995206028287763589581293783851533962132896768195388886034524307348163697543606530176041387271450814372946973370207901281263766675473191313038449609569330603637247779483723624584440268275951078087326384648124894415332097821071032866001911085963263476294156726993372757243151039447787156760624026271197128298808870247856087199373205969229458437486082848521984040014440584215730828977704070832702353284486380722314736310804178142544863032342932146249819832908916457429327479987672389926729815708154938331228430220100368094193314662531314555384941300812458111578438459183200561189239879693722645862995581563924659766313571137798003825722875513829468244707979020543759424123805926542716056017825232903551307655624991690689956301392610482232124898439795057763123768459946440168195098476687437050276504410866312129096099346941906638852238021177823640103799174469067913364420784594278006016098495909038270531193430809569841255001512607409714010893403078328203032973516412392890320346823158640581044286645775047849044445544797819422870044400548530087134138921335253713502951963407274929230814660867863891984514583882130596388745303529186712112422911592718841063220872938660915192259051420714097869537853999786483486494378036083097290849830864838232535289261811998761191352618774234386353715641335325554899659928779673754882083936337532405153926632805022534369841869336655574440469945459712893444915590078886426408756228704226666804127212751293501713628925256632703428873587330677668421017237093183785153162767179997671623714373303886159114281719896955459467135578906828963203800974617255775246965378901079784355124265062683610720695394788767049491161772141883851690551401900788106937931404806009347334333427672322148055250006157653234919401050659812967905495609467850381667358108599629377856047817302838068968546898288712086953781359090695737335411891584935793105266322442834598292624757605471840575296339896677311148683075575974007802516391550728313624298887870044580296313440708192807321723527251586175500553334126001069167515565061547886034244032895492041273371349189416486728759158736727251921905574935660400336182850092280853855723842922247790601323214180593965603128998861816017782308215227185256261307682555289839579991575776478195150532690900993368366020646902216921220678739249696312639478836156604352913101832277145583637056009628603674907522783328905048483881068649676061644405053529490698769471758424361950679435282852932506576328492586726764712378282703734280265851725518045068882886515651289002471541213590724409794947196922300004997004431544703767104674652388305208045910072804536262689825881588282793572418483682342977643464699482003934302064513188089257027903989611980004633847531203146782561303807815805031641679258087306925553732474407847545947445960334009223135559380588245948496432791610103481221436908573691288133753202094474653352114512523464597306911879653119098747640312770709410488492270937192185587611821765220787376117696381210706795684302141645339462862668920185852518139229039817676982912554796243510504041356833898030368342033868281542100663994590324927065724906040751013997555603781246003116169992183912108483284211480490869049076589820782287068623807836781941925940531406831379005076822411002353875569985117334813953793340583519658369086833191242244741535569007314636141547687635617339714147908136501442958215635591130707705225865696108418554335098214004959669756951290217395149746932338558538173946234767642998011364792839809957171812078949424579836826417486943313390719435840251164115550960913548290752769179413232863007421972088425914532390627565950501031566883668851407428020420017460442817775600234707992648611534702128848081651128887828183010720066675616866556626543731967512768778490499843869762066032109375710078439011266358742975205325049909016520373848335135633214006676475440760516010181621629669917054244103922581204769815795400454726261286450813210338816515960753953097505992240534613503543641253335948670793254782543841352208059513709777335783499897173818946445151436747715677135400798008352796526860430651708337562356024268811332881277223053424083179423806665571514533005617658790136570487798093719113708250816995421210971996693735023453967608361736297488073967941714605906625840107468378379884286938433013940248128345611449750902934534209126803677435950530807850754765736847441593396933435332267868492822841027229617879863674083939945107987260885587931012405475218913640189403134993858425515498945838230140776764823007439468534721809220455241935238469992163184562921462278835825626996135150951294966690858988671515523549235675160409385803830048347525112016873026031253282555797558310868022673843503026976073393958666113622507508437967731140720110284341364290038541972320792161398616818157997648635073746908518127427030282330958708348855301920429593639903880868687141724144886650275342336775909065961815414210219127599705752532965933905345431476423932367778290907055335842038855964056184348988223858033451561295351574225752347216122093558570224869776076488190331133582222299801061740936610179352768923313875720779849089608876594659616828215207794125871094333836426797685634510875160361198283940793805168011014225198549436790727144749538564623509936298449822661395206370825223992386100196320599956065834224738515522184715254193316386528712150072594233174618452802366393614445364626195593710061649255557258861098679365358070852675406070973875281212088640377920585450421923169909048221543127411111658390697001296735435219237654561330319183878788360687565942128708995052606219568853645516561037661103786093281517157541457172051303931654861558917549945401991568484681044638565149387750279654417285968301161964094168432563408209622359940297008664356522582731067433515879954373793270919020225395878971857894365387883106284378999124059322010699766024775330258157997984355795821841539277675766035816823231569611131774024320407110091230488953304465008262750872962688698354527237930085152268808650684479455334923355125763248545010884360478131422457218579500350021113451693973525593454372283299914626751759191563656826103397156673034578811244661938692859280575399442455465766841745827814198327459511575780612707702032128904910322585767659379266901998521177064733585883893482647005860983645955203293516224533020548616474346168036845974022017592368071244992211811823558142862532562160818960819103213121257172435986037779975010549788804145281158161137846371906663027870092824199620477867205443755938713005644939249245364565518206909924365228267202662451942648900390153540665040488937173523806010715657935221979347475200730501360682012885038383718674300412355066589753030676558356090300317310643449166168426805439347599051628179662480898835874090552356133981190373900952899437427106944201761129587013722820673353529519702900164881800138078319693285683063477840266539438466266569587167687150109317134522183783520588095067003934097408973356315162472530219717299408351038546666918789798432846684301453369163852176674712374613108186042244282125432845328150150048756921500031417824807567952276048744654172222814497687399886321388229868912994248500371239024897720756016890078471156669631649566925587599691746946505806944838860971666153138858051158540305164452435680847263339663440653726053028387790315537026092867039746967246265654419400665448072575712602186971657310200292140798323953750883495548792435257073266084440554261335238716837365467523524019948043595191180263142412727379646290377213753301482562893196991942655669955102283790665102085783462748183185568415228757150614081453975940867888573318264062801136882313874524688390249074408271710298129373901460661471343801857869995097799033714846349679111786264089719689666586706228921990452702999120939219920431188943542980748864656752452867909084023036571792046262734306388240471653750494405912920884964180602603901400323545900550296417598498097303938035680895165809807465489111997731132475219531289168882734138794146286122390205843173332964199141951489427671765065435125532084770547025550175545988547012973217587016357403482424857539179357655606692341314350098942038801835992821825272430150106693152683546462592052448550586073221299143895801292101510632962926933275198506536191389241469066486511334860477424931310552703849060040568500236325751543875272483939909188445417089075160702972354561980161874193189232657272812241321950656813911873915756978216442004871440850116865127038344138914696546076973755074958603192572060934626096766608720877431187782842474525020452073877637380709155833677714392401583257589505248390141084320387991827227281727672481427121541914177372084969646810175499669103959522341502522427972713008563093603168980014076575835116720801574966956673467250175602423066767241635614370042125045577568603501443836716239407277144579158230071050913794234639007253296483811244375277258670783480729772436809492294191594517827242538617058639437191070658509553082136555003852769543478272955135225972417017194096433116289577378318875297152917432341027965558097513446849765685205199042701793970785964033064548933145615126256647463415135403083881305001335403399144175973302985745150116310404532406809142427526374693766716026981462131214805482459052978665586403349938702322015833067544490977589874683189707608794585587134693871378122813174833278462098330185308328599184145584542976342734576257512820745028413802595616952294196348708640152797710945569035854369615568182064679452911752757824875384739030123037700865717339211460183113718526874118421271832146917903039092424632676315123170979972530611976521365432198825712273254939076030734425912414663950921518919678067859819580708312047774599550532641109650506234380472785958054175054919822272454592753582957207663324575726820692557920678144087664773692172788229388702640766421665970444904788482117368136694026990152185545687135182298809979558686385412849056812779289962266769353349810282826153410967285448389535005363979242023544199647111939626870453727912599398333141040700192536632905930919010292737196761935233710735279209197578792798927091811297617005848255716455839345743440902419332286349483690134156509149106184218298135001651100868033847455920329705486565965431770649546729282502915914768259372968883524967695366850762067664780038893379544741339910802058327994600460833262012926178359375452784919803366001120398375074498220487796116666375618130603610914580713497972705448134980028512347536709373909838999045310914556598163322891546576898552347755098589237298822599212452290655379560116599405861916390346051283840480175902470850244171954371121892203111748166718861979409557768181664360584997949664184282407530976419166457312659691038741048842050459440086512526621375834421243138587130506030845383886015629465596696634310552063173674354630462502369030290810227393507292883793196023958464754884217713191153043584589364738053238698901035531582431714160129347441585942153767255459177969450695613503305151563889541384297080297676954763285931805695315852133392358700827059624231475652259286191448289052267486024959342181970993288082282433603286534619667199783166649581236707706025501031366577774005457562618299264203971239146131612317880475535332629283294249597902307688896222136715493441324925477280862855568915981308667351699084628089494937612656783914260806523996425015589165049319688905779110535834486698681931673589622676431337469393058031632548678479323610427002513804224853823636990152003711619072644588275889663955187888197338689712227226295379810817958515280207339801006223357677235035562010145767357109548410316235122406691993597043441484612991103166238556393986836292761802350608811754696781860873458436476393974752063911645016702675890839863016251124769654633077607398327958817482963334916981504008898607034053797388648434873273892417880318847532222580412253549145473457274408743548108126163558965437301481830479093517256722691721499823162814496363663418664894054136662806830557459994173593029219701189545581880058351926597347552242083658956800559110801925277821833704286032868465950493056815592800705292529147124682257919237268745429735967046460220608090434125353629447797828302492138184360104401018702583426886825546231166594930405550578605333788245756718981627077496838237380522405380258816487246254711437576429780522428831239025341170113815305454485810912285663453734580552011029105126204756253592906305065406106307165291022511454307878696489451108685993798647296061857183762413401906678099468772292293438175096844452637245493237224383968557382217653512318771218860888548800286651087591794084222597458143351785791750857498396864372594343641378507133163003556514321945478460670072849632445556507848073345120824195113804036026719972684102696146993485424091766050298982896260357311323133012699154008109956860566825129874356841367813562688987208612445532224366480451696428100476013198403519884753731447253829179939896784075452694270190488212788066915189291783250612464907353101841852824904542138671735897306613840088131249299294256833752495597558246908245914615147024167359727656214968022983999288694348313788648380246050299963740059359639762919763471760888066603511627146702886047137317277103594904927961894734646966960691157135763981945912739277276711946630941303503484303204442533943560752928558116382095222797750759108350642441736431792564168721705554837748125332224044487584634005974539938339260068015681693174901455679603180122347028120979236115126643069844066545569040487548824580063063036697081170644527406161642583610656385016663328353945938620211633933241296758012657267561496525817996894439484108604701992021053203470558751693634017154483811057570695179287509972797862652976096782864768883759125024860854045914825993734117718168847428222774746517375874429499932523499315009360283123414901212990704282020917499253843097765255027742295369359108822197260752636470040154803549142390302656373686525748286275835352509381639029780770326570991828121531551236132311424825589763257499478682368607736441627860190933390223045648472808960769077367364675026171446324925934319186342773618487665685377605314548106522416666085921283248916764206178130321656608869817583801511286209049417280231464206524542904803937948613090503939589040010701077993900144712482482316868203780258375826825463018339576206836265862147235744303997067633836623420891536344320768080592927760585703332253719760991982739459399584888442891671793049012389992500844917820368343471563152882496788995805194411022628136124230016916562305362451275328259016372658698964057208324728935639510111381870632293878758481068472648746967990716534945669858998560483543292121131150771502064144955043219997765470223074202685528172382009368618756954103547959418552044431621326712365963087220021956470383642911883287845559624450537571752260600955917827010290867417712445603216411138433317701709758059892003447571671136170169668298619147102832440985663324913240671359991557995187626027460884269170708627440228630030443709476514589837661832854204259038450982614223956450244635260011922964828767648064384543516483718833900606276323907121877177712805286999917767300783760606915249636631423737361822308143075774954391977717600166867952898922546079912166188171253417956994907389346432420371328639630993300928659939354000593995751076032351520559432138667064075126831529754012919198617005487789083660483809963909738606023128135623822415564181177329861005345382247336616405209664909093939170495957599826454503676317661356619667466125697559780963579634383338102376584634573325040438248711043413084086515650019688435890091869524182853874787929099441312848981830975755296450805577860540107352628887338100826350151015646152729651604341112621279616063890232585721041311793912802465230607809506205828536454210681695006966914287992456110275159274156611734245847661464484462694781491561620885757728280527362714770216133583274197160412350309104503116242171572124779238201859393736374517797778712681575046762716257533748377971271255538403665111092688033421826690304565463126517776106253972529752157883086778093480102339538099534453856766732005956158674744502162279401273220155760903408394479756328478474786447032912994001605912964066491937065722201580623364570173413895773803660869985778277823643256862586109601911743149203968316913976066111888774749403143624069862050687538538145909685619317984521676006263836066416141327007912206490308393848234989426253091630683950099614708736228461278373132110959094925943003010905432613937637058589383278869414574660348438159001533431052096172681855640521716080208679202470175013526076850164366315248030723211989598317363956456182896127276809970046765086511498875931472567095203531790230981668547730439868366961048121819040091593267881048491722304824916476459343687594985981791639939781954932080586469173546811756409236372636384999872560807433314484566871896125675178744970302791654966964636849733310280015652245278553708342896809771653965875704054707287508023818874135790194727313666473541524676936457661860403720497332713452059661605356950259781156041643936941186359379781510345151945181938563424592756492982467949478025378535020569171514386869532772908733072143291250113895630478627952420063976635082090596152954485580766892780131295216932182938240903628846146222110998306682207453597518304045156460117681349931147979290308913390381414475771429393066267532747855507227469503086411240354331674476008346183549877628307170251324481375913881633415111111350477643980219158253721231519384334042277048362481017903659192850621700347822304215887281129410827768752357307136079401005274597053195667393411835938028778149696531567250819161894001923844965394533508490264400253520282809847813311665983097399754409723521325988327811099085290020355044406659089887755270537387644380440734637526557768131500854687028919532591277491529399331443848817420850888657206072532500219816188889468565337371512623380277423244803058250052909024402584704383346741882093108815779360643658556093429446038553133840773173314498496460224081765827235729223094681227544302270598835562406849268380710975970553404637015449015922780175155670290802341340315434713594075875225512793699982805733010303276413995756474075953235742532155735225980045579386318727431822863188043435540393924255301484213754829641813377941179869823325717586599073839639796267304382741666684787325890416347947227408540241783711340584881884957204402277560954215226054044731876949589239783531518688399075697086492089951595869182368403810876015906382532155387180216556033016237351591898725394619301238492174660759459611004070828102093816230780651902920462067373337236810126023634676738604441304297526587904303658503299075266727807045124809078420553452623852528320085899754633519737635394727978717088862426320244248141124121023656209307979417975450033795320662133486915709883526418144224623089046040133085461447357078699189056005081217196773663446158734079623150407205058513653320679328378861027665874656882670445965372611875380682774328720841310293574772390544456553512516414038076289007775977956985598245620103299466440035981539462784539214754232098069109351984565379714683963182721051749199029175063475184287122838371577723393122225857396745833373917705224432715014553629985586739223377382203864656016865235741787754576864687754909347892963048157514513281331162225455745274568291625232650512586561750928789768335419697437101149495917000444006085593158813427538186313248923509574854541398220045214522749274352743142835672949944922947586058201169690622057845087585246250840508106379086464278742107809873192675096401731730938767579534488716699567987109645971218390344366870259374761651792462815018837101022557581132265634358457399029738058340370118006637437849689015563261414539140000017371150197470336777433201533682623145805597722736097727959745949419372193092116754546839395484406202549560213231508128557805130304346796298419328783079842051354523954140416884321570451417087567330773180634441341130919967160899779543017192016545799594791274767307359204109395013605642848376372507105112188351450617582644038588759028967341438875515026585827912689643883482748607047094921032874984299714304876305371127316998954849086636249095446120090887350600636480230574499504249028310449547427160415687673577870325357539431435176627599727615949342673293796245679074110740734293780143682232306085023801631524739336437063654923212546270056179721770491744767158785392886505797317859670511375715877987758043660214768123235978478937620872771762956485026635466868630070463543738323990318523106967615043919584054937145174215514927588642791492178057008832248568283124827095903269112395747837417755336455368004381123696429335550952219089828638299624378942168667003863022392241742223546902955988446832525327014067037541151798129245891481200433043249847425446759916234829758890409220521789625548413637215393919086963859003075801575649337758344809040665592182498699638800240219954242174624951489445664979123378728765134694312621614091529312014461107164112038232722735527707800360187152288606191577057311305172622318845292899193138583316402765512152132565396673215996538722066552523777030745209734254405750129265829989269616662574239927297606398554986646678087077207635497997440479087474496555320686323643266417228455009908643525994661102328070286534375820305637271801809266393576488289010034021879282510317560419732239227000117158437654554423795313589134027654756391290648545479225332521831611952477897285187790604697149355751192539649843422252205292249511778216676645837452556563747024899619522015460417693702861876894503783212003933614040460170791781106568514417768545323949426782507911167246295881952146874724237004751268598176335515625223749127173246133771228490970816636500205006833731945092841838026210695361693022252974440767669739950111746167291632217717157868526750795994689390609570903948252558717400050013868672522871699085570834913866802075367952407191435548467737276224247581711386479428148036924518808477466080390880181322603860423611408011911301848149351436000899631777683186374503043412818663978710582212590544786330435351723772452167682624403984554596311751012052263267719225396093262418918626562534516812800216320683176313458488474120655582894122903632290871177060390231014817284443237073756655432309976639091415503840186531267045354993862885844946368695914949299372570221334870671783313180526722616440616652490858107978400159648720011842887858491689158182829515141376686981690689553871867069021299936754745575092324953124613677102775702381836321383670687451644328261119817689435040612407132020372537406837580045961715077833820046813753404494067655125679552952293844130840617602459462345770461579279117505215062156482480706564986279963264825850916019333981258160854254457129196865566162776481238500314453312711103413922288088346096311207656486637924292999577137256199525557224977332804138722673525863675849906465181989196583526577402366543194831507571781635548428473446743986936100914490065721416428788435816730253144014394660637605047640521202361885985915515330568226615406677752497350621070844010887134228941805760081848994369145351859066620137904408553185589981442621412268855035464395705264123355660236994500042682065183268860994125798233941252246659855057578327809939295098137870910814818966690567942985227272274615631004322120625859208038465727387276913716717989529758216600706903016722535406550003994850581758007982874645271665653717153329756238845754371916187142782875143387930508292507889976143105901704709910977142932006609293570437746484251144647660775986676327932034293085764594951648100838099910758229361841353342108910399770213988463375280100619577720403288535733265639979843096271780067179654667526566312449394716410639807331482260159318341840306715194186267110354270709224214332267491281628426681273935990154885922310223688678416075689572231708071864901669863039638488794893244779007786018555512496606675814425059245319405103297680580535622231461675179017553644570302320785388387675827038740456566932891330518830973299565502352561862673347164464227030133935210841008915022083218137159548307204983846740208829724408994033908572457195140875460379803975143257637921693374069437869618344779363001132702061024287451156889279095337308506432988427989237468721797641330893277314378049825776288876553599442915503871120391954025510328478081195503906544779445710897178817586714136898751124196636553239064216465705981973293045180197026345051799541499764202932739989350085536779497409354131746327476811123848750525499620472150898621787163544893973577069279706369452945060848296660876968238760976922956815087825037166323395519579248267935118995102878196966302940543350323568349110707034946578114189188400520828939027113739068948465510541471000974990048882961028426302802014309249508824799514689761290731620458674421294425077363961468861863295512907203546754528975634125327281872784615909012253049424299481790897753609181470401983859811457409992997172031923111409831011705057434859044396386593637434316439359435651666820543066846029209573096544175660192481207611034788801153904817427214696670772207694871328205677438420263153930171384999043356561893031790918921129547129938062750447022809330575024873836053495357275372050867840431671701791957456386095406301567344199081426022808145863114069357856741677113906389466181482391976996985092306915903988987669366391757942135898475902443064939101163198038380327912140138067989689141512596275094657541027517215818602018876032051199867249278006157438096709602204529726176557417594006210271843714638192560220203896923455155576988377633627836089897860267549754486156121495277196160248762093416984276670346218704252844416230792450623935787373297940872156231333423416278081188444945220715386699371998436662609429227281862391517760100784616808704149534576925531115257547269027037872933590547019404766980445687737881167656765630338031300518200264739658968271980043948887420004623455128694908326738807805836489048234599088197519966121396483729306368850028887515070561963489396214491253480256314311126492636853025307436827290793970393929740865534952694896743023582081697931439728327303113205119505238500638149454073445933582653085028344528958312284847562687763273269756052468150933602543513014724420164181707290772430130861386364667694746210574178182102365508215871840639724689943516591123533032069621082328200707678937439702871291025854328848491639560704779943500157197680856339835162750321733136866461074471810879814171835001387374139187926042692730064331637687838481237564159660611003249356554255699923534897765794889618660843770794238888397284744774303306257111475462617474391588502563619723051497993931778459390977627134257849285207287408521210629368171094661671900842520797907185720484800267073959950897893869029700474754798064022160702528976681064491659250101891662319475676773969074945061980781502435867994887742319680078884017297698790734193904901527637054052027579458568828829895601029977269843193291305114571037265339952597480795444308444101070170503384702682444932515600170183507223270715215493371593400446150336454736379070511206350692287883389509750398598154115355545962478606153902052282791569230353237854793174779715116289803469370733480748884861457576708351399400268068746939932583072416950584417551503226060857424828087053030553877365527291503717425189912876676095897349456960888841115246173060503108938116594784098033714090558763840875144264119043374467442186423634745004731765826120442176419996602650519130460935336961514713622108266882152598805591838667442073133315207362472939527768649130276001636020217349718477437406451798555578303344023511870765721001205774151080883146511507583294273603349880329096838371192166363980782137328641379422942381756409534983186246149892972059550894632234798819026487586489871451010963659976168753524409410636276358800486499374114604385865644198727342929947581057428005156796480976868621312002059261007980375430420167122763473418871230270760240111945315366106409492041766683300334767342488017057748958206904472655691939773672945118308787441183087931761423069707570521078344521030874482619438047191963848425067757545489889832172739504407798671676152815880684013753739972084729658322034868340162826912706106724594925894874377389796290202029802268534800819112485084656655652662436748560871071343865046016252086868481813167788214998282770686574935310461221608597376563504657906438118708571281907571373827135012869264274106174005012258571371887481167741214251850927964636988885684015713104091901599658999160246080165458070719038446614699548006228584966664256853275062455411083134064267658289447940515549559319700636376216792882784293253848456770459916629178563626202052770454165749042252450773905297530510559408133857006940119980353109664022919379020697265085283195466256433228599150818544624792376560813007648299865460117169594555847819456205396429757127097733415745694028703493457969243189460212045113803830915671360114621822795295036927114353584463744330433097711118283728964705412110263100361906015316687430256222678661837898526046701951822448707664612258485761830953459538758923000391807019384087480221703009927149457174134284840971929208356894114908728115388046578420003777763005164507114238858810325827107087748066722528348548263441762733258315245039501123686812917959941817532144602007218951424271127552360626184629671250215795478177321146453659505508977087947042255361035337846869775671727057607820133172387154959070700071779194164602982209856084150112862394411025427191639242263258829785839051877012953818878558986267089686804489913061499793969452256112879015642954973524744720665801515954894534890756032957139297566527046087158046099186572908887057521916940723127835671031610389976434100326258765714795996881306021112597194731029539430709791471964654729648591769506684485387828202066852012563379481173593667477203457315471360743930381032941087153983512531922494329121520452660100334445893260039862367544770022640166026405982842022377000869469091831567262725083277616405840532754308813137731776510768634617014738218723082453843852666125925676842545191318162871644196564155939499504433730834437023456371359515050710725517327105642875373455835673189316245623815848323762253449975810945960022266239687178423403238958676161822632120847947052429747360588755069781293164682075742662949871997524216616192065040434770178569556756896498894409199859951426393884853571260282843464755493123829460234075758412888439968558320738463636948480066750480446154871790578689714420794592553422385099345263670594775813603928623416006125507261998336763763957409572519455006363965310153225498351243577419907462992424335861527631713579128785083243766309253966147971376385250015607720291515150316168619333995740250808517977664547593704758724505109758972920392747997071210775330513324085493804636533481195477190758244457439483222617633117032493959637606795913805762027632043316331981273939055438167960192763614756821599847025648835844944711047103484809266603294149479173699624855230459866201690197191414058070614905815249374775136302647436701429019743616338687295212900213145717206320254275730847449001143012309360432025649904776741444859819513413308831449311410857769613317580452056885465172213821923196004469974601029592757492644391290817069722923735068091134837917499639316805405294866309759731964113548309444866825093840262286809239906449721856509398026995337371931151667461406716144070613867103526257075248461867967810638545982727469930465078065001152684982591752069777089023209160298253111335547114634776506531988009719013350597903709315705065781078761257538798835730783128635861989548062210549262064535796034551041993939476843433360142832078446562942658930326678249893371591012511655204350653194266290925500167796172555685354240165187868497767514136726748207812220149674265702248486233576960957451247791690447067954330616098764412174134129257735695091827149270550050017076502052768437283703227695820023146942252128807653130460983128448719146313899389518812015891699457221874019369339325677018272303758312430408760009423985082590982373300577140680418611833258309213600243509016832439065606382238330606593125970466610114594997362795242301431768532542924129133822584472158498474556432037772540175967605949019347965949734314446095173786888884103865846099386007460261801112926630069122975600935409844552022086536572049839227460789399382067874623913003070006866552827021742381380350883090208697408287726792210268839055774536673398693264821101552335482683697942195407695767794506629897144956338723121806068568943965456722525361205591861989194869413421035967281405999602993647969865012573132961822342469197432169716164472163152853898063295237038113384814172338356772396544731543956364055692467656392144699211419528767773732851567551666995083042863234203785759657547568649439296588239596368437267898558822462041760615901942347351896925281557769650694007381235534891203670357078993144001228774780819445584530054571212195564961426721770331096410301974233643905219982273699501179809476613404958716473293492816102332985178576604840304862011314566324890893638368936280088688267330310081304455316222226189100780739298411656265125822219415086565299496638940191214115424157605857394963297436236928266914118384765796818286596793573016612775942973422565845908012691832681003892661646316088621363601442690954666299460614324759730927986101420284546899473428258623042236973641885851885812972707282623470845759972711709544719610971191186850306392193345873240765533140899090280607789605242320165186600081753450931516100245199126842500715754767104282061651543767268261361984394683409653099400039827193870118475756946714215424478205199592820404247077624411330569111005864935902543920552889524797805429139549574260596101203633644151748322064102580476112771163953719881600399288338598687680443033768769794812109947301417997147855533695755276373780131735057651718528493370534557900851705952060746841566277826627150384109591658278809856016604628559279213563331372036979005434357379813865326683377919229300814004768326919292461698979161876147185493912280235679424788708270418302627688216670129628961181876123707495246678532112801178809716029050750640631533015003713327769658382363707065043646826177847286091366610181215792657411172288694147743787090974733893230237185049053338687990580360069463585071365204065115293547656144793754915435267686067174159012372035271932315919893342724059941275693110621965016125629501596071949888747754919351999779680874418847668090445011118410351849659007759730004892748935036143916823897797945193139976258630003532886438366136142903189434069804698587629855666582612648407795448728514180080473485057044584531173451956093533936240729741061200718354310595316995499256485361087396914214996959609890548675989472619939808106842568110477453163115140908437471449454805167332243624138616041005389020156941482261491660705999051132462771738852375084722476257615569446951140722841269440536299804864714321654835843442908637618222184302776886468347955569095886213049452273938535904778684405460740627988867596423603752283807690660056652900231347917960419056845407635503060297533346874166280080955986725555246875591181604178795178582508777628887308229000171133526369638195168698996176162710125430003024950312454759289096268939414878717361653383522459448941233593573146901056170572183679078587701303869844995919209819298343859951956118837312243083225921032066262235468817837470391151736109196793223482651666206902242872630226277646848235452822782316379622208463711112718911732359771761506113947610982420326889175887315153074886700410470353790568627752681689049760634771005785308890809730901382331480839037481066873576523892240219493472880680054911017413679730855625094052576069780309843643100705102564248217928188855254025103990033988539009933553261940714438583074228541335934505746423050327651707256275915049544723793490667642517008853028400557693918014056987584629359745614284774518174703091619843036803944095945242725659879660720455829678582821008526318030443514644414446362911222742187959784639476697397658761241294075817006795383856506533379083100326077562912513042166551966466822620321148472131918318619020668269996016326564711223532064540271703134848723410141548647159546576446909402791736878283051046840998408430090062296705456950853223997917273806174695625096096748006401071815502256945174164851012340493659529311315837189237396032660563822410678617563236158042762745107423905268027302981613134517081216401992689225214874823851683674087833524940153402178625043366400982085923169752214888466015901522549896427146655447165181429711544910117619384211317283533215206238954025221396116176339852291485596895881649863789935267859869799600676688345827991769758705935698663425632735951781361890114131335512964345422794542369444007643428438352630526606759647422506091498847813617589021812104004707763929137668625194874755890616874886216579212122231677999758648830757821721104846843776149519167394105135299026276907638805544530435437580086557495540726681190849986489154754889002648855374174316230548452265473734564243728388428986123251474719946184170743688582131994256778011274864633409058208831417494376857604618688117942190778635164137594178986579637945994985679653064766814606229671794403024070399803451038690823573373118825350700360321114909483076922264210807354635695205780502737302152886889385315851940580355501371121272866672789721547368884747187755840819120432778018542326260367149869841836277860739533519662049529689780074519085230414318236499201134125959607949630132347782057838897932601782080396823408582145988510692305528688336740361029526298943440132223351519592325992320850556879126475283791324703404355207846241513431267394485416787915933694061207378455791781443984886730702335242872207052527282956307023971073704275853255724469064972476403294286993265524768282463341649906087328767672231132962061944410522069377554824252805284173865980280152447580844386441429869588444225523455757157178523793595646457236889543463115994890710657030527944903495468428975219887016383413049380820255414695898131147104243778840930747412867864552856700091497671874345923304287450768677717732715096091565777605018306259918169552883335850887553277808925455113724569915513402943457448917425962984268427216477090165711539180101401213806445865839697987099374644606312462027268815485670228484446092801196224572006650025733303742440346367839987355839921438718387408039054624171486863914030341719258506404856043017124364773952636995518848027564509997137543011799751873420033918071245373828543894183827812580473870485437382179773664283679857568965944629665772935291808954296442168712774421611223983051935703345997409841123410790687785663120264230020738619590618666412343491494721548885051574883884920028063424801502461903376824552312461907172329703110387534945858114009888206906014175309584994524389057797436596256192957258914780596984431397003224727443913592878351731972977479706046970136355624373501419372760031123192053707759094349505472473833504050480616741816084055757163127343998980109982588218898847850925437188675148480960057594519567231783119866596601409267102547865631914253439336146530453770432643228614204370949243083009592541913987997631010425066660768401060115065094997901766446093649740488446548705217095345440735250790662610287679208096442417563371314524207202012431645686801122942845639945031191163944415948995321968988113398327116753206329799026688057809893488413517030093706436284791141600142156260889834218959764741650944979010584235715996627374538443076056491770942013225358957524857614354436470704885119785478485522471719206227715760511931791869054449467408348507169589509138399392496373729447426194237684445010215978643110002817729457931693356189310211244414866567049550278070089208977590879857518248898340363853517628796806330912230264219214747090911265904438063393125345073445850780002849208854321573832312792399886517205139739105959694261836734171579416842867725667057019441409783563684290144317883791527962379488217683676716908575444090778032738385352025223108472126022262970881871850789246534175967730545928183936061326148710521971991014359297160662164132302127261162076803792796238138395279430818410392713321200993491325639405699944703095466748298275967300768688000443815186917860733943133033917196164119324510768970198593373037925258685077615551132232869677327187692623142065017874010166915389181072554131184398577725939357490950200151771924345788166074716344914468755440220561119412112651051369944367259382420600716571387502630955406546320806738751902980342032370814879801199231571717397486441878504290478700099623040040487932527251650034960880012383087558932740782789972870243089565894453688268468919697266093902861340803183673564878620024041994628713278180075825148186317058566030399114761477895526867215346898834808314743074402293193874813679853297771485516981295769739129708609983013485811627017360167078065306557890882586214750630600425170583052381687137192073000651668681766869897745014478948727466374335646274989576011832615255379958342466064996038979917348638963557558271697235540471995147295353812319185575390135713891999631659940577411154678155228843831264992334570276557903832303482483367282864068037789489538527541399914404171294886471333004951922250470777071169237460399296939347135346013055805128722674719544955692819524877093448819528199948748904932936647964711190379938559779714661053948314913133489922267765390458549432448904767391084601623225215799511527233618927479451118358332361629496453895516636587990766599803975492494439738154945401048053368259316070402679653712746903726028322217541598749747897924401112951715418809011000181494299173938944814417141374560988739626509563344864524226197819867311734064420706761257677631007208930294792793584867129757910154725788059334620045537236394650138222361604037176209782907413177882180655831772046276232639411444784758846244774625248813809718156277347711466614846754045223036102426538246396722981549548584706937063677818542639682841074956112668798046955002704356431003112375142368388050616899352574932586240934932630523566606745072498331405823511305012629645893176340451852558708751806034506327564684059538926873239301080714349717852756262808386197949909544598812685161043683678063370641596465934332825032499901700670729228721734049373353372963269262294052751843966689736555634186763450182238495400837298339568406326287517281230519042942879779329799649983070036887844296933101516607029451587342304645517273276814326020859801072289509450100023507057249527438837767550046976391238048993862681277849319647062331449777929344437158771813112798225832307921329915471068973729858898861616638346833654220060666771048552542368787987036694684392542670848526709805755894792986456103932470212250194024099750919907276215406581818891696978472895411495987398836365460875256476356814406938392637177505153672676784079417961644583116677078733720952631481605610894920692005494901697437158458399164816045421455390946427092076977424338791546310874664594564544325090948199817446652657390447882010827568866053713744798886521616633310806942550442398136404437761939093090096138966893002533748245757853485154390495415817925998992771887098343594067868493435116130443398798270550497140092861339160855464805104283670596404452645858406879600501091411960442691728824235542798639011954339008636062645099948772642433996146296423124876739996493615738054335203279422276128159462638768576947218204587327554260122396432385449394915514648027429836331909107210649056221561029567102926454826493522742205216331485073604007694765203106145710537525989115562627987811347743460339769288133166833130881626590955921817346612696396069367841284030108664788443867011518133373528030961816709889486228439844179258358967199101217668030137247996820952390320156855441253980571109559903774180521172607964228216103397840433315038696930193134999671929125651351147079259235954217657232080469557742650470507125251024789014598709488179846329702037357089589097313879705073759424443112984366147464378319819590224411942235996504999379159428890688700661410999400884674007307175664891412601147085161732734368600549274875643497014973974018333154763207227109738203700983802955935203147714029498143454442336138963499610835563374964345870922282574719782031954411374015799606379267413701079612814044423184503794874423369330636238161283655439934163401210722998278071400014908115507100195147472506133807258793424782601396455488691641883962664781877350616603686979193831458261832186440538167520509154373401362774900105158047185138945689827365016857311405908868814077766071329113313554019479569224505295374046687241491037925060191215928868295123379986880500492098326432700171866364214948773967183223746799293206514313080617500355251326411365929455063155910627829036839591135730387112075991751937135019486045897642834901622064704510434385080414742236658839641542306543011718626956819550521344105095928997494970770295114509138887948168530973988179069295775743863845226488774070336102857082032013665249882534677715035862759854289923957220756327197693073953081537963817500179707967412703363425689434150089551662118230769937439174275935882396596136515172043930923024824915796674625834214792394519875725801085774146924255910631507201974713338109513770795424194672560407886907522387646395933634496356086876352415223936799967714514001615744316741777393560263203280154973879079617046167530095800978976159229518019231938829529298790168794256491410924850307910626589626961295268088750045398420728971552980072475868843718611194530711848438801002188023344019316712437675352065475831924295759284225890510890024066232345984221187610903938552307648440585472948040887957857791301440316809524749983153575000975531560675917294702237917641699204533295909744609146699267816973417859397080119168366682276764575266758811619957345606348627774186554191903812865009016780421196255887195887249519251670260725744305511823929718596554956864413906539360884337339004574967368352456263099994935895149050641971005887971795724918124427509764787597902926392560133829677383025391951361157585746685351830647990147058077224146477231007009817081163721638892373380533989021532188917017988829414797386764038361876440857703063445196719358533771793227359853018154586713053208842778877912844574783752280900479540692161243425847498616643373234778010652197775257721839844881783568132167514091751997095128520532360472205781816732200783687947266894363978983279757902667076547294758532685446519098205691982869905664454187810297528263101082033018968600767893830929610232478559439552056733340628444727259480190412292492044631495694138749748166966147184069167292090409146088809803375083171727211165678007771727579852889293131839905342596159654672005890235154544156960511549143919047346237308100350191409962658670016555288892798055770608415511101697978572733955112430177794298727889057429271570497995073743424203707226875025743336194623736228078495178558162148165547009289271810283165725434662912618454091591837593633451182557539530494796300405868748300722808694419941431406205199872631833675802671487373431342670444149875110935548393464657458410549207664273747516341615603359428507331789987281742750866895301584162971377165099573019688329228170392276869954308479128027773991139898064188270841456907763134341908272889270336827683762631417681100756302095459137288643943341732807138382086574510036721400235875891622641541550749523891707364182908543848361588979000482170997575255269941526922370548240023609689939984698700231904458231905825320432697733195326827348002723558158936672728782297935521804128328633908316079474617801823436199107593619976449225096740710332362873004843683659596954450775290416296867308815681829462326521739038388698339705999698570014642754650164900750634034602993670567133045658428046498967784833138961110476594665118843002327812662640242742540110400442217763699421554922169684366585787583967989861632718632949497519923556824658852684584226790169505297539030587153539389468144054879729318830420714358180775694421592591016616943013512241011708092211912822011088809003142345986600946083428647895377887013562240321192785774735185955465659996967087242641706100303582496742589972185185135309837409219286144229415151871811690039770425229870323093462649002102458382075228219891703921763874502075136166731133823622698946795967970818125185382314076901540901483763876822893801848420251181002859124846350713579597314465807732549084970339491550155990053897633088047860873788320001217894208947633525998046263182882771937813202283793439015279032842282340004441701967546225592659727954172438872110496131444489432780351806863908897597433202235855463014187487179453948193755208552928283946856368394690170458160472590061556420488858723969407884189398821169319791714631190015823158684900558734528428906380390611833264386435953223442771523347544277233042987743798305207342428521938676005374415982473532447916670861509325270023308423533546573472556892541043598243023269568692750286631795640860022298234313998874320154064186964524705879232947357237159870114094335345265842012006322415948177965208397535935775502357910521505292768996713219151183137995757719711595266830377426562480121925390612048185997640551724778318945978219867055313444720388899030955338558912400735806909906521133433394554858688850313265550918140085687054051532652034834334090437474326567684851855069056031438319341571632302417497312520138154295873331274718780979331548489866945614851279701839736553104626067603367703560050369064536972904120342217106409249429730199545627881328050036831699016428136900281312003141251599813587752082321845282918546703592505895850228108390044607749401658690989754104919131151415461211847803720765974772894226620069807812315346970356655787386705562241042288033570279909139901619274331345102256866976125183785646261500606715637514132789148038918112109355785703439394003930315336281815736899341775853782349775828327856186420019636616732432809193707310164787126180587359784018978238587992136782640228605662139749089468975709797377063452732146984649555398356994562331187718440551419873343217961278524840639050050097088964725778039684864140875398820842386749357356664588561890730913528887786386512609305326003601877097377439541997425200802504403044501637982659068898972073029799494907135022774439428371972194271476562067632993880962427154779653337167751427323621640590865404154172967158314999090176282282051354704570383999211115913271496813022160849092163397979839942880588261527361658563668983973975286976466543992725277253068392858321965885297304633759098814477944183803429981366683597683994170832715726503048418475066497154326137880291947146786050053330291188101700637681041646485933013752532353317871905780900583721457432010078326016920018858947747500630546663209355628060684845534571916073192356933952344719925175185603870480042822406410690817187868375027332475954553388261071272192146657415514586179859123589610390428823046237930248089289855948709265175506348373649557369082118368273824353613823251362604142477204964851576336965709860803498469585049421946581629619435237713305269310610088916129209223540769908517497668545897603262820958966467206416794583879672078410996381272886875711589367807018068152663837475376806123230512871005482456592890647521792007349081703489546050505426075869848197289299961605849741214462562886926670534341135786241207022256080689375729726829965734437827119466002205620280872711422305268700100492465217343240625909569258964260964836000507656663350317403202871000469126899925299209699894951628804702222322905645991500165240047111856273326478329461724860189378899242036418560956942519292723975465136018979059521454182329979527951966311131146347577399543542501181807058504131183584101555367720353697123677690127833995274210845544675694068102611959052531193260924618997819116940829858255315030139305202387805364331299056359873890331389081989526041579364674790070886701882324435187953782571707033096141080449096211988564908896750957135046010550018128858553279369463746430184413565542487179106846313538839407605936910110340445799496460911203887532432268982128876573977972924399365092222257919132946711752429245278666504150941140821083569044945008910022150285434861695203564986735285514259855248565416499287345118173497430760516373117740670092610015785391602457466774429382018762851101837322801557144989079481830585135873130794795350698733731677090164066136675760119982879880114686702501395888630497324692431767278023163625570401487885640769798245645461172384241995964840082298635355486769973878270707963603559263055848031950490640768372403004530493878150440534113515094668625083929740730320444538105261967961432222706172840896623135934851506126758177508361631499518494238780344890478404786323958339864004994083473363679620960847895396778672222522901597006764247168401551102014926539315917004182489895363052010871960439013517794399278175308391132564790627855174023661426717845826038759353255087558610652844985235284477411839366408557366024841526352237204191012299813314596457304923153887260163034710210015553622276171014153130050309682803274386968600061315693067478037172788955697249223772144927251700773821244750851916231387805315492730782440752199437500810243699914560753739123008233893650692559739633656115532823391432435715756526135752562839604511953426210742245804759583106101167405531602195533032256495431818139401534287116189736154588042217702436344609686387436685285442061489279179346507028080541408382733779931924631108212630272865472035213228145161189772870507659658291119465732028157599705212738817618664254868862507283448117975584306768096371326384856793827437083805768123268580809510333437552484450630455979621810483143591003672927014328543266174961001550189837581627087000289325397063905214892889144540776960946455735042068118731157447428081663714867133952866355482538620880972593056402695875058918363693735155276089357894324148712348967501718093973396541164593955469942599072983705664032929243222879093651123282570112446020967461022841108621556177319008523607087308446581230958009236178080487353161019865130345058363243202721849943032468258108441409494403201016403071766587793180574297350303033501531274974105409349951911903214598131902468214106163448014189175157478464281557808467330787403144386815751712414393233080733196320320208130585034749717034325532010836769181599403918542235904066371776065241964785417126296060927097479699138924924518736318089728278070059615262682050021380442873789429814231825100320565230882484574866151159675767955793530648094727288676538961976891437428747104357070797507666819169834136958213112494338473339250699620016438865076010285400154010284084413171713660038266383157644879723934804576863862540438520244929878096874074661728625233329789966432874768022954673991065753793809487786486399840634139786022221846612535731683272014479081087694635871783178968398965653048676790659872178918109608535081151432039501907293197282399142021571374529535320726746172312227112159727256243096065117528229425130791916891868993234813553616339690173412008922254321657885084990920688626337851887990723927729703221362462266392304275050377309979340074460758482717312621394690236690809000765505061776685681865194498830752104598927187969026381119861071018897370309372615961138335565571106264934170896082046257514484406400098473920420172308988918627652399393887362368748070571297764858684788463835520037007571745183587811491721547483517845368105382589312362156685336601459509722254165790743456782382366768525332314321796078606500505063136748736598207024222792639684200301075695347192417526203208542180492353847716754931594164267526863756058616701989945991820274362252375797290761091155889664198173105730589057488864771116392618579376993229286107183974614278743154685233333282352365696497460821335733827187766182691498497521084232987144947828340728636830710547139882896264956689247321065402299637762830490010294458848864451053107761715982745544431692488728891396129357371589047363153076332131538954853189667036385931093070796793204401578169624070309611962375047740061786026878163246399639014947443624277201256018419086813109327687244289676688266530725560640007553939632152822557713987011168425719030756393063799689192904545329575210290029937430833430565805931294683207401776387481926137171881624112167386757301975770206126066562960545761243945381666995796904838160696882624127961427080168962433302228422513324429241269150363516637604202105372129442568121222460769325197352326037004646660933639678989099255430585777701027137108922039114765074652404229890113634673168536699738483423796095773472640388628547599122572910963276719623104565875024105916745236840507429280765031836129901071371317827370904275436657171060977309345553344273192723943604311825979878959633412199975990738497991396786995675336865914764145126743922600036265402292943347015181398614153648527816580821072436616444787522614449594594521692037494104285820795290447365867224762570421995458656895908965634379339917540555067426979372991375996444622976570751534342758270649823828319263488132599833079159593419276896892146027951545302552829013792739991063446982601127558548719962379534418328013902787111381436823875262971621319083861066347073829613468265451776599705031053906966439217983890064653925482414915095710152240697681439089365667966323949378761203266246860066969861139249612974210260961340690790120735858070166344183950914397314778219075532154248980876075914525335687302905496810741408898709191235674810794411704296518705172487836032945781258889435208416185026417351166575629146014843149087397287633829612432963396806994564652509432819480449925550641131728799713704798110197070681378535274425902042334940587652244907716709433269001495809174356315429181096065368963433074682520647884174305144860680214176064034961379151999017905783910166862062812484514771650971433030092215438164928178574965857433584455595726051327879962139358544360254075453683160427448174831844586861139601115405106297999798666593994206386648631161231500915588341899076810087294433256812899368428865812696484464954761139522000503964920768740372299689996411300546094365255840599806955773956813544461169970937506246014383053209539226436085039214613278334185237219137926619370896775411238861854809510498032593540516825084377332157533512264966865743538747527922544375573360010075012761279600705732944361144547875149371990595062282180350188448670274908443823768851808239173333933713548741143988881288236915412793034940729625770880152336384119901905782118903897349380596021939514189156684416361252476991825253643200850881544545816966600472360190306855651509690723001358590720587758285080074754965278843964022457652659222112816436696676111033515926219399455440300547289164765573625308834847867542698709307502149846926359388536793716019462899173614444084936755572988844197641512684383792945504982859564788216217096957946046197781116800110670733044163765409391877583456041276536321890115870752614052106864648817097915735913641856684799396545212720114190673854735547360124792483978944342665639287331519552240478504914127620283517543740344512888152973287085836220185597338875618134448250413856160279745222794731806093495813575130863083479324394424113241869006823813537066200529135123278295121864822020040340107004396257437424427308195608278536391922238440542118178212540590865820329571500949231370362657387886176956039346231973317046882378796671808854471025780349342372896796558287283568680824150893977434792381262525613184649491288301851196737752764090462521293810668031147140163377396473557232229079431932386386581116418300523255957480073494584955046355800802316526844000301016154969203013590690177438015869947737519999223057891981500856329217233498197186199198324254404019676812405126544683579075646893186668889453020484452083357400226974518868809420264003942606353653920526805693273044783851703297646788324076368154496398335792556137215805167014558116929310497972926027572591222962272733963751955816126355684075598830417478050594142531908553509853748042927107110443106368611834895535786950586422714903360196608973672264524297439310582903987687666368305745820273857542674230041611179033624606334365495987002284465845409761279796953534581972785649493180824109599097002359127389202471531305470786530771711337291814173043125809877312685246122646204425083305575579532423503950581396631299606947231519916309370582952113367225466995135384924273360737255111043050383924302101821545616107509104527446854163953629268695660819355006143594330589761549434854539531318496721580833960504522286297730453372497304161515549347762602189933561639393949430613377141858329933710614690250234657579864847114565189901967120693998564949372100928921269702918745244473947371548301578332501826741215466086256669803111671206479175873613489188340673436633958201430744123876908327010920229909982705643263349802643557154772101557914137538624886474917404042743241396046847274567671589881426543449382689385310075133857444789965448227545449467834208970478708655440341277969278542783896582821332668179993592233371070919104223054665848188378575350794930352618949377278043237468209917923442668659820732038445339345870150183513393559675992620040813810280024240910092171973963680765411182834154916036463097176395672981695589213918056366753813171898994456583439555620514174648476895436653454380174957975405264811045937794512683286259772351029360194216327041697205619488852359146654503783012329073474075762215153498880703563329602306597516078469392198232460186481047923438313050924497706223291155790020239165064162319378403171562293171118957660686270870967889366439464780821953660781911787251966307201744395263079729299550485938920952459074396093334964538046315337621045315775155667733698499952303533213534715461097150630967724645266514857589145790569259285231722180608644095807117018499029014591186776035777649231481075985928140553905303863831211551412762485612620637535187651727781373756272666861028409092839600068783847586050576158891068655121097499245390211752658742219407122954314169394098133134387524774352289101062974428530486243418328900371531637816012238941812559600916606583572467857800706799079840466011336604391666430184415853770021191520623241817769262258956514745495875697527177093633991511995427789565418797442060904123396115269255538933299559582220565996195181587074951841541471999834189064735703215240715406709400034074950335251645112213111014743021422294839174107383986683242073443633885271953310630297895745627426245569358930655096990294494335709359234837387197884765569926909169944172532857688771493031264799828856730507637337687603594728177802152630244669271643567958010750592561909015543521443942908694254710515305265329522137057602491123379958004522948573051169354227522693464762819113847057692548596522525481554795159246607284412453369555976753690267652264119908364914027986983156674277843080364372076633731346762272246502703405009678928509043182768903231863339874036706125044178493751170063593146591801234516468017751377809905029575884061394734599155559404220119831445892192607562888634536888273222281142611877939341963618628286022486134148206364800310592596668596623050417976338659748170069830102631369688365323355311908156436268124623596869039295891465831573387267743208240422809293232662400544787985340474118435438740527603745052884572409391935996195887443968478881418421601433199981639268066280945311508698222997475248769227436599187957090921286879117989026773157044797127938773187312223571232478627986722192731528435727633043464358259603705677877862776533729215144510376071594117565973525386075112719769871994725657891791123268690706537808103802255943824409126315007559325364994038164624175315264783928387181875145929806098985444837450806479962029458393171443539382187624986837064883816678647588271360563784034842629225286433179258223082419279459116253355334997009931429375034605387661646321396856059510057980449918162520173120153325167155427479121736968731461671892113689278401648360917555963475989071914700197946952188659147788179683457966854871331888018741700137844883889091325316914987248223037442532000552941674853707895008354969826249937012521575081800518559336297084214475255718388441537492839556615571070725995569729031880882707887091485402940004034898643743467781907882438551423275854260334003399866557544428111023369896065979319367411156108234368705302080294329497005698013329533902880912281047794031347477065268837224060577675415131137527309677610959628464768787285691320454285704417666602103140796692793188697556111383183829256186781173732885207118824676332064359759003204701334755732856182386490951262684905818647762053542490980339286859645131697598809198564915208827993599580531070173527888689036728286249877909753068762382716377037302422460488059707110426763079199348311707077703877740653746661503387837625000190024147872783013642179624566058336466599694745318002231401075819516009232218117798611137077261039299949821651024771609264765100717566877061726588190852402430301964596664919563901913519110779811255466972375864246590415031052694911961567367663123246428572599053724028556594032385551565101733898851978353588422672603700430566819223992421975160568964522477054434004989723682885925667513064190192296424789523212612004157502801693249316059939231751142370050266885746413377738691234963609161648343554487038296903149941260106633397615783972107944604207362622135728131358839526439629333978759021317181418749551299940456445817235812835998306157015228171148367582522766912869626764437436097861622267506203500788368898274235839260758820079111664200284194194344074606515674463810559356519554602810953595721816289541993444741460506922612740461686943494003221685032689753660126040601240761951599488880779894309971467584644954566732373635893464727376766920881318582580195726874536256454474669329576827535302583940857886252973472723009939593022582012778188962514180043909596657040488118486888679064302320949010468316048179963344931803405969928074457652823763254248150449813667460837937523827463670382176642320117314051828885259927645591884084273708303943290911816759221529602684126436831090120729818995571479313222647707042840891541452097818403742654994273131209344511431633810215128762133453637774907690289458244271059901361811074031144233755900089078996132989163024346478000229823495208915946454430870920831419851777233549383143898935735487491675005933180193217660621165534178621916232815804716862195742941242013308499600760752502980953596770936949263215871720973498046773503627225977863409734600657843730215947336952655767105605747383768448188701156673577680304517084767182277838776845141644964456925479022580216588933054547237136211087118155344024507293643343777881584468996104719704709517438683814418545999943213347892450658450958394052761370004418374315131198366905311652574015587635245568776559695182498382739584708821099737843581090844494349400425673222653745636126548347682729307672728381478425632328814697073511328132380573098712732020170771003901708807643880088535326364339089543531917357891304381146135681974696702436871979789182643175888836859763144876211556778375018307734885793644322133273409508272602487260035509064631777524371140482254377625079162808057740889560791405718246777864535531034846697850635406414745655438916063000990271651800482523666120815645827318488180848247034265997572071843257335802406461520124804801894913416492720081622241679314945934234187049297564803098344754759161978894493305466618504798010566284165876213864125175842914906107664141121407469162338286180579129053609355183471156228050926981983446444546591900914678040760385611733728005047404649213336792845703391262786995045371047672653219438090993177366543930896114272037489925196567877386950374180760973435627727087336657381997980585197732801611616156251874692334626052448114181035749254744635144369651938485799759236236153080326328050986446501181346725063280868552100568353812451063204396578914013451820078701651107203494520553481915456297527061037037011325299270226763952451130784291205663413088048533654027464760180014425169398773536552321424615160183429336092715266259652164302679260789871207387635094787130815160839549675298440447222074977554524716257590085721458850340449225246050961430857044071263990092633681764966423214903944305543757082804279556676231530117809681780607768047734018094110368922512380325658800215160937559203533224652461622310167244298257763187601349595251587941776841443901367758195349901147999665218760282539416905421327818132075251534081706355138861492404544344848428525638242485390469257058900875230195509568672973330082001601709551618815444747009919360432658329866388017613212458090492814236708007492674180696964429200918595963463809156498343833979845515343149579345748842726517562168872630214298915590740045250068221363695784977942111257312723853794470083294406282400016893065761942238168336001575459303532387855496838686663725862615656698014801252176906569505329488257496660137971439438179208697768627090339731855103171382674127874422319247851556195120597976374693769313846195438805642207037569860383777449095897527162280898287651605734968062703730926717770804177834059082397114142109351789691935569521458719829324702521276140072661150167892112992225069720515215675478499477022871689050744226895979871573613681620312218999193884686434659061028131713443888556965102957133567428893881509502520805763963184650990671252041428919294548935955498751652747694904943222831161386120057451822712831127820526009220732195509226932874752273111861325259196250440426900109720211404754182533910594763806747519753977330884301650232756160277368343159500562951472504236993991740256245662373088262746362651450165507904606391746287586351141345925699292784804543512869699826110867097843173613807937206010449427662132035573193243932723350906557013332762644240294993676683243874865452484983334886467301828146629848760427020074726392557653731387101081564795595407205393111395587576630860630330717264795473525222547246356518233070578339369504299193374437323372181930650933841377070140274795873863192402498011245923100032422746236509416877326782041760841728169417985256950174582023210175648730724807320385909668588468412465586373704313622430821971703635251668421514469274738378289409310402250758793785090093656719205202936255808102833546262272848096943319364235785129555263156563117545609635678509041489934835096996452795635545447393289512310727472316956747859168825537316465936315619532974585672505313207166430732463898319015117484296942335666568605171700402628255478132552645901072588683223717455772996976622694830892895327199097104450003184932603641734054245458589947402045086804620056996709233190811059995965668834730379124361483432006950321966724233818088257156137839982200642934085126742191844281271421772273796781382505605774196888913902244683921505195665226046929626159813788461567559894595444635141637326853974459976364615046938942418342803272547655217356918858755567942242886934593068923118368016851946947599204077630046581704498236776401163577820164268133510340092468317381179758650846171645822824850451467887558335484288018469754915330174321550049965601365371168299624330112683814652735728383099006147745107308857502983575555585368323780580128640298141069951064298181174139998881087792829552817971402472617453137970843666522155064172785515958314069690403896470320053077374428841683844399366079805606981119180092707594622255839923126746188010388644744662553406087122619335433140402533528628359126425967961116738988287961500377223890355924808732107401517176812106782056811774747041205020758191067224333861224347192028965722342769585932208010574170168147493642622156924046389677846854491520913719365801840375340796790476733460083732489810801092140581339883347674802760623198606939754743305019267400568574571761506323116689667633162573603362771193923580039782125517824582445393577790128214290954234266650994217802145858558663531928461644615483162161062722989414339828232253284049228294696494844551308312029962432806225724606219879472410448394639496419161141249727618362054557317041421227759375582619107688443778508973537056982434502392148753321361371830698079487351773797454442760129841754941008482333363447597030464133777134078881903450060126455856869517308955233437036278643198375008888787683351702254736887826239592608155302975753062936232088875359162984419294722798428585604274964192678617226264969408631271469975223604478101805212871848080794727847951217578623520400124188948939020970907550799775780345106394215907144034004969478447771224137994341536650091473629817850728051824610424652191433571110980899412261397938285292857430283203404129171359556950237237893008172250012200120714522956371221626730769691604333689511865893059469334520550884011883616208482798089562455436596255336402513094589856345070440271772201235643401505941841470276849502964280940476343771491164060258905078681192320154384294237838306036570109766010913648263031667044272784552813227533897757847921682337067182776928362886110877289223070545829634791750649269172880273610538953803347216632775777749406519802491023700156414339945594749108304213373123734313859354126746540693683189550037802788171159014312125547992372164002863935825648194782284650577272267881238323197713514173962643541108317662988044650192057559086798046270537713691332042398045477203620867516691442575854128272135855114926109554524987865715617981607777049701482634781112729130539722384784013978006063080580287992364912158990973161327767956487003402186004238455958785088103189569790727069361027553920940936908429663522139557453269412440679891020718997862928550907116867190831860396688090322216463616416908554716419641628539050334010135676703095475957287923928193371778376140594750239403362791761482592364496348376401003840062170900814027840568391397468227084794226491479473672164313882420549657668340963351635617928819890896862990338200606269602027683917658474904172463808843405402222021729795583774725362916929154879713676524741704838376227761369365331695342636566076587926432353710149476023269933681607050914128425471572765460132859011661890826841950141738504013551469091168276002280812231831793888336114969189642641879823703242615460029134995642575736116905681950056343666402086515519962999681364994454408521580265826419737766989742916731360654502043040662165165823986497498188100580749411147320370614939192213771071596204649024076571550087458837034248809515971498704726428222479050892683180646905258468828313674747772405611900549180763809584003942783348550518624158785051772014942494451206793249565017440611310487558034508632229239618195355996154330655468494270917704773051319892524152712564533049662785277333189818663348050731734575305129920047546986409024151681437657222334020071714086624422801592949191265412731753469342222175004017349287805402045222302422175433583563352309328931273836736392308864504797303603496185128812933626597100730709165278668539134007473364340491382514610937994891807992063324488174367658097433467914129716838901177032622686806741051615637693573324371144557158240154225360179630581999351645913363945106172413106198165646976039862488230125217840388479841552133376132936346499559771143807616560833171639909373080703754953947197227628900564429691300627212405179389028489210556632661297742109755947870022568793861427939445679239485843892107960932750398629376739588816341712722844794952488753396877482044631774278284996508589212556257344952770900189769072078020882444745300058710114940976571674682509270138856875919432141502041115093489327181683804668365103835461181236249680787322705332706716473566207153307665030713560226299046977497799426611769354762293385844799018892573137685017523174373106507048412847011840213473166199521653975437272702683756025396538773129364712351778880577599136329827246372829674467313893142016955868422193478658836173284115322329601128648770420172585854624268492823930917780847953508446662069067966458197901005472591168948128310690628012105430706611892694125010975280132216778161804264075526402733974387596797729686268196104797992892680656774652613827006908083522039253315496005432799781704502880525044915469139238635229705784011918485771247746501026811379949513742192334448845401347018987012288839438651084460786930367617257094519482194276002473364556050993109148290084496974974938791020124534320933840399140656943549754588446671835369681658633831337539558095554578676819451186040075799042397785152119808515601181981521185807494278436905869347161240167939041255703832003974131575984688347861866702891652108966446827830097422818926582356064673148035633589113336205315111699127944709114408660599296369141077592781988588075751942954358929092000718352840404970726668798497220997472645062336595254434631116547095952208899692311179651401562662868659227243239953502502688409018783147504181461945987305677625045521495021861155763634767784903618021211199877954390906887834902463655950671654587693990563481773705318163727818057273121911323034831662470909926759479545621875943057057005251870575057765852852447998643979398074725955220232889214324194975222477000946304955298679433984885281958877575536358757658382128202427499848854555485225076702279505187989246970604106970887265488288178691216636525984153099960876760871849450654523059221956383482635875051556729667785309872157318265850568795015852391645923584822373253135629767278226853870106607539109779092878408249181030182570430492932519311214241454993710059932450264520241332993040364506823772309254629627998209413949540849144491206308417635965584509060009728717876441137406640068012178472910692427596971222740878833357473411062625986873318545772236104081215736298677258962271893892408322589804502532034989176247175860344941105823840487976593788417773658748517712819091543732798385015119352378438989211182781051138255117076600130797860590712188199923377662288081179300530242393378799999502820699958549231408807171507179575171632358670207309506243392417219261852459983636834117198101185179283322810378978876749721965711597713576301200136269975723040873227263430317395802352256296345220354695842706427002004399976235208224790414163991993022282491272622664825396845001336423971676440113271612903893159768072994354086960579932876045283402805693130237677387166552026373580822259147675590112537407738936735673989217619990767797921616801920584347545062345622279458394553809309504789592731717925674708501436076196036382474444110189998211371776360285086266440156569731115325458500797791013506785176000313391456413875907313330286736560865074262866423928447749904763388488405381351392326617630315678930135418874467231828535701869250603843081302128861299130967654029253013788902577625958355454001108325727692476834022430714684675138288812274603336394439020186946065104861213844552602968525358088570951246389056914156307786913536887357641612533513151038539630005545500948721475226689249068098756758420664208616049635312344684699733987966365146868713678557575031913900116209257986856323094582420979316724056636511600269507485305568397676196771168194492980258279384999637848426330875169294783571928925941022998336115225095155741952167667449298437484865329997853265687838562600601864005950742264461583091766586105875321531882032038405869314635643551974760303768847427985523821730810917471080846354968563000007566997454372292751320769431276854146024226466069519943443026943864476218603309278581467918557237339130565913138390621709894758136477553867365254520133162787477290384708589100777897215327082523022484805402100497632125971257750320301793885720273623198629726379136361381251439207067183216198038352697290940896974824250931428166005747452009721182774500988692190714116987820690761297747167289352222626631501447003804254969621728458645429312504262781310489197931390425650756149221573119876634848930893899050388921048643349748019825057134100873578585382573469755885782357578301718719460839491246845289174097755438136757100522556932701578086575089199935270512313981187446030417916157087671086322018873515848707639130027950898113408545095769464886618864987750605202380356118031099660543231016108240363601928072173227446911700969640188675492718870865931875828457802504236001127780300027875540901836174517951809848911154698260829909756765057146651501848046867863215026281534964203617729131234107697986318342893872652316108246037143736378650398873188963311039003155621966075651051669190559018446754442268601029459333481172944611091038284042764927570501947703715966922761397465179207483934634073639233152902733811418281896386449485140472079436890614019117968198520403641067699801108164661491811606765778342242728569674677987813327477710292414929657129420559492545846049019091769080035872187977934677405873613868797531817143822586888618145337529128980829430399040639204130553287080028191398696864418690929685509551951619338072274120415666756523482876964560410687378323754692795462937249380343581882162106476147100860011544241498530488425306761081638474265998434293449601248018558859553961157089561064724181684135038243377024497985391594591603690419990935951984667587607164743488932072313193482773539062791238478405236250500538658043381773577602529886520503971892421495386470260426255795185077715897437143170942577763430962214995899642759226494835088988143680775910325969999563392174738118348350165534354955022661870937818760089377766506755088770920865646158665298184390941530182738984427766758273623009854137367333741702233013638403406058033653719795474358313713036696597462913031673165100787481409801980021904883091373803282178228660815559394216878304642615911472198865700566595108267549432186229229028945801890644475799330174610788109174487918987057765409331742936886972035889334190245749653448331609450338979623224634552656487220612983940147451162050595690350710399348785700544264822001016543179295627498249293238869564498536718050969028893040906164355815378514413281082977147299084223272579998398850771862688495892663426252110473759077567361300766737061497781267793617646065771433974441789840789194027030257617543574275384464846875451814421742642289904104830611768825796951315027620688666797296738312368219345056807289792834355179074953742501235833784124805112348597952015599558859273718641333862490931251817367590916175028912156099347633879088356297122886447370635483647692812076301215751102049191467931364519814912788128789085446564749065757670512637685565521353854782412083082749865594224816471851872709386475171306581687560832822012490045830903351503960602525758284385414230882177298111735103694218377879792740307421663942048484693015961159059270864260000828380860386492001017548090152230018403930348188580402385203293354714264401209989731217604938135379915281749284885085919424412017462892457098490728186172940480272855720010715032543785557963086260462852556784738370564731210512489248416085648665335841890054202489170189811208685306176036222648495026395758104864176048457598884099653641509338114734746422557003472444161208003527166156517979742515863743070304116171823045734961684697645166170904441822996897082716767686656677243803218004401870982757050511394217406188954914727099961123646688763458569787476518681069114949886769381957946805192375094097915795693857895571329518843156000223046607897181064495308146831480809418307763466500922435987678414124576642018484743241880172731549046164270600774614783429898705881778209708548200055137114260244330649479814525185359332632280457487216841216062598842985690190911998761162904370614210747964407426953231827654273948269324055295215515862036429247041299801591645183722661885735730900453103544669569598340823776322504472374386120896704929232195457039024380125529496037422138296786745858643208655865291034289648030188457876793761931621814111805209329367977850001964657615161275774356151842258812193392194594066355478917302072762089832178634069225275971104328819595593568217993942751787376959260601496956957063838056080893736791370317118616260774158301176629398183667530127763720657764777931547105788883873000535224033540338088464172161462150302992116641071509690473305818691170733499031521962210394467447354643470568017004758377015675209612679710799729964908567552196274195113055706933421678140913783792157858619108740567697765026241730936525719127431520982958981243169795447839128961466603034856071233360327100870337107902947849002358684755488876649536544535030752240481389295741937730172437923070202298400303004352241835573549829436754532376531851393716459541323003495896536610366960902977051046238683463485965413778778915440213334309986078860519532566430104041403460052704539008572338053293716013176229104592397900942606724154232361217261912629962055532423295709515143299095276004226698605308803801393952652614303043565772343902904489389359579530108416600314795401909177689555349505557528970852200565649298152890831829441517264383222520271681343417014596540281777385407980598206153017550905374853562353969132712036566007852095100868136089333715090172861831406798074336560989776322241392131408599420012637109318456571564804906146950615413161875446932445817352535315912396378554453673063264721846701960073317030498039412765444063535529318931763355065865875445583982999401086276382938309142140215202943757889118913536447995029416311075724155369385350099298505349294378229153809155882303147251295655503922569484962029678205923310897759779491719754129083320307358223903515469242930846380474720249751630692900432280499530354285500774681058801803579855768875124080801898030511415308883553993034468122727070130270632400960010803010749396317027201620557922378406748951080760510861389996243214292710359526883661929354997316935063660696456146696468853705247471633625628918783041400808565696760680184779332881482037278797457586274711691613338897079769983897735768830834246766610155788925670437010980332257554756143050247604592505746455313951520250501577132562833032803989128762365435062559892224040556348055838549618437159191441538574095023371973414733822475730277051377321721240831492724735792317226193753859545489305861921877808696603786410735929340356723887074484236412721946664685758750721950294238017071756381987295015876188956365500640248434705747124178108622995526895731423553678041019848457786600743086871237758303737085453410133072948188216729753174121118312091415008559857494850604818168421338007213294780563032415115382400954430010638426334861143893718846925587202285209262374155483477773138593239999196414618176639027908808022064589280003792647006084803712264940502005246609359429536740156362477483765863104936655762968012874628419041208645912952821633673170036267668339302411335115024819462276079541088044082862214212316457813685944555397161531989346784494939704711604608439786823455473912584028217743960169176703381249893827988255994404860830880534131719559441533805588707850533456230762075662935843450362245928545964669109600194398364689580375319907974226675794197881878579583544234865935493418724061683991350219426944225579629846134823436172103626438123245226027332852813078083438404914349618370129475438512843790562087634505879600110740755455673582474818819932397927361617614081444583154511381892745397924042599185396951024966370462799568653881533813064524975650661886058065308947491563495397379988660494053850446209502273786659946421696374624525003174715961374730205699993112349177218057420850515775828816150080603819152054426327654612938089415679819301808962920117426844484492646550981675946236125570963686775186104090749033121227511180303522626238562381152831758146513669647404573301723257129521108849189431796736304776335434946830961668201928095775703591969355551587911439904188637628638006185989505226885709823850289339333475461512332522438079976109005248319329684412056863236310541961113296230829500078849883206829415070074183982323880790709013618757114869519818913346498737273258700951406672046898402863134827484287944632649297935278857560482631179005181568056097420039334146152112352129540016644213291194719485978533597741129031459524185943861726913349348401169254262551696299729289464860162295393236887117177559860025375042808042106027444523895810319409354015511624602940676595330225228393940020669589983114076017613206238148794503301132226788007993413546867208344194551177960423221532288112846277430453298618598613927016935437109775484374450906310702994368297927734869596392081664931454266970179438576668634414502594255859997384125963814484152578844692388609297206827488838228870136833696305816038283246899530936464198875599646859897643299338902273594403583353116689791735850620840463925779018719084616576030657499637858285127047850811998409552287307307227265331679667884896938446926687698973053131258373888225764247101385827665718035073373186186309979489527016040269284097982483809101836356735356433840439102400313373531680106189840023162595391832520260665428369577315253857632379159241427926473168642050117001338364777971216740234959556276535956371579690528347348785975438618115534503196516365116532746459795695170348904595580385375321775632143189517585306285161760102277055107071573917704968566332387113758859053713571066188552237687082301197746758606388297696740352557772854776112254188237254548646641858842830255422025821593436762143198398920384550006656505346132840718815926938206035848392090538473858729241210261736728518453711462770295639936156764463866678200044963119848674127542352249812943727802861450307169966207646867116709523844082454083734706766843125895665860189748852472337325744363850776050941191929760168028955368386362061206877289731876751083770697362349075196340826794735951834985176058092226432388307111330162031962762042861105133295023307695390764363226251915367351292575676584042488306393141117047674647159606207876668576664911524216324344783268940653272683909336029764471835793908580377465578571307310083450630682047334388297942727923094538070276210481636479084374008912564783591448579186515938130505023759134154378873191991137946179760333539822188051283208632437575421102818541622989004311526685504019593711489995159846471629974497053135641992320033556204877883745182137703396051624056571022643885505472888258503281168821772515452447680285815831460278206374949650792197916874311375681586328143067600243348625025422905560911885166038735190235029855143542736971734665082143282725621046208600591769901268251634750687245568598033986513877782983459960396244526662994918271738165442756775253142599615427993399008529452948888805775344424910638191898403649103796106380716132316395447659322996315760392046021931994341508430793364215357932969243436112568463735238666136444957170818674751837530315885420164562863463980918404877694887366708505365963179051254729371138613323205099979267980869301520462086972042908714353259815052340747852148246880548131373469315789416844208209668674021133752185157615939793991843676748337145110651044842832772035166681646662580741397295590416210325410548329796978280647190660157715034465408078408766964764291819704905725500821447654287076608467381098517231804921575588469251931195645658223501918250499036116476673620801520906206561315822462273553006327403308508255387354542262022248640093521786411470995628787425877431978806654575770209782661659102770554661030377126273294485717984917755670521158317313510794688444800445918904222433998595959828826612442991194596767138990023158547093142119078243422697811103936105755504643712217711553212766606972570955734383572418508694007138880772869372402576554469171540413101381950255545931236809183765694191323016491079760287864916990124567511537667416271235674284977955412716307632548345537923254354078316558311174991661284026320201602814946831715461018929578011266240116097384378694666723526468665063459529510639693847151443427102764376741729069558789037430536941446034095287724702236956777984617289121883654066097849507725734226341331657203213340766375933638550852551721203922177341027432470356902546282381051567037663633030038298494102904934646792002798970257138636429587029602613527079341809290034068600816657881387883273187328542388722715516006643941746094216551667400115861945687216063205464092282610228969074793284844774877272365877961564794206582697658403232623085375155852552998140176035096536738161825748097347039574344086748365348240714892254692968734625689175287107236914329637487794401096783082624379628277643279040673771465548009432762701236509789004349683534356617022943012016472114182294659226491507824441243114436277496852118332590213407280051320347601115491676107756844837443699972093612301287727363972038660864265766868412176916853623853892416509378652784357741002373056404519565534363844182383344485286770709982642261617336087799302453943559322841043722243128710232968507433336582241728428939382702005559326758059639324929608454001784098044718403219237907444469642819790363472816566946137029724143174356429323396379769767867236657750385406911230325798642159053058320274999211848089878964251048841962867538013196956006305888621246385200330079793082487459412548491773514345884235213493333562303681548881893283834754318937760220624145279695785819132108158012070465008132458574334557579702495252374008365656125394284581306782523026538025636212847443309873400331684767337140888421777413188096654692305043723622713370764925310573913204428582837714839608153621340269103981978156877324303026401083332226508476781907512430706707151490203557595971869473846879780554667546963809896507949955925694723263168895198861315598247588131799713769427464914196580284065775713839577411974407792253323112458628375772366185543336641210305787378252450104158846057176852170587465646040743632500524392412273858974540224344391378221386439188923684520740055439845868556447174636083164910471500762622542710616503609536763602428715352663366003831734044400758379061729928084986039921862210574669638189303096489943242706945774992226013968446085563429573260891824711752673416336142474005775133854169420351118439316079709738660450944541226256604128937828226975200663572522671660291080950644793919390584733733447310038835412499522004078564639555871299188699145266867212798404588657564834521922813587957777451888034296910275783023729773203082513722988568925660447452985441604741476470697388612966690600803422795289892262485199130860564885289092844644572722307293118710033206624858537873219616011503728633020533752101147731358007597004083862009480753628676982594497280064930553141856521630635688189774225279144977027897210644698485823555121945676615554422649712447104961906962011352215395169939921782468708470858439768034620570484542095556429197467079155830734970420731473928597680460180764836912756556495894723177854631779993269320168249477417812214011553105897770654003868017907842366784792654529321994074178882577275119963737373389196079168076976002214942663128933942327928738721123690333804532859229666190755141606323876994432770019677695873236988212095469746067290418388423755455588977735601210677875828849710726289871296582354053242487366452408595595150948100502866359417500461314068727895728617337633997919489789367450284437178613388746989753072381379017087106732266333829253992167386833242873660788373022396501064013317962247851403662429079096189862552129357484767477801961381036750433356335999596667644327896613341891753520898001671184683974822575090428765287259440633599384826827971593972955090172957880810995710068392764658503011856939853717298793513002247743101959193761530220455921478228861307427599859082191899179141331799135136735574017954365878658756418126460458240470967291461787416489335516537779805916572315292798307156059086783675895004046976374043131159042913841749286469673269415162199269783313458628565385887222535707464741250039831387735472137798030023887109456091077769321509856022030557039814226811693389599024447701359943908207123955694745940457758476986367182276114887791686679347362407938717044899170469317518036830817154056299620725771682395833065352538587305760336305839256768777232945680411009201198031549250065102857179429189070744379524251731329025967882040067776410384126734407611822090184537228643441937242774178253590491441635321175602919413391367859969957959109778366249119351450225090520680851720349065634212479786453702919249366787867284709928875986277085107830836737160685367461667753905641993041044254717730925313509950200825270512145362301228276276272410767130449796029552935956792033117416773712943601514123621118353419668427237049085226392640674931749988559885169982764419807148654720791710854261303607280530835996789728739347380278517595799238336367572313369966601047536816623773144733254166127882740351049748305206950040713940168043256278862409057925139351500064393732887136968872793535598607681355450137598884440654123113557018744952915575207686397542932689826186402766902016443039141580756196581704585356988831252281905399344103010606632231337241372698934144692490270549447951029352168090641319734660623462753611613286695640019197247525195079321406158231907089405694066683863727953557632644230346341798697424556358337472689058447377436478452241084584886189553415182559862381275000938099867981626016163275058523102746932035076479454583840314934759666637282975719757251301899968604806578792760129867463337945355678764835798260221465276614680218302457647939283512192887378382000035205392324047590816712889904102310637574950906771184174730329289001799967353989005895154395701831320533998563593091922082629997114345779563778448594877252829228064925183894006950011932432398817506583739332370483318080144572765742783701624757571759740764774701538724211766544709409969083057432028014698595938915769760128914830788425825470596874307853731086550776572214662205337793972197324950758636010552263476944700805818238084007290378689420868380441255568293753025813266020190366475967032030820253291433222754394781561535280650283053817202098539912250232598369150426065094166657160120792363722987106622374883229481747775739680056509548888986488517679801802892578947067012764697345349849045620231782278628420632207439009692079247957822790478710265906733990895230819114889229093723495564785847426574896195738854825606449467662165973303504311796331921708411374191284475705148876308358932076369783379658547195161738199220763256618565656836375502537169626742018366310174627547036598296488009878368873275453951430941601437308026537575010706551748382921853359961418774902625523915491233525145254056906623852948940772236328732675696312018612998709860748500360195427272756704765382303235801410658660601297754577324740086382666834282047287157384547438256585727029824015344876470135215571421486703942317198152281296221897928278780079666251532282447463673144228568828844527891329422271784434744021050945232429447055483537631848214427928316716775733408766421019123365207357395809549820003031723182703401128492223006169931164955162076567475344107227536737268526490100251240824455205072169840294994498649957065296586403227771126668252102237373956532521585466455848806484955305812099655270793400201827994143495890661674970779457474569609325418143937237769972584671587678727326445213327350901251467501498957616240309387369322838749283162289237362944027853205331429287647433169075900236071147853039252289709576138556149698237591479475635073710926301324997997396517010460185705516746491699506355881807332904131017671956180145376853867386827998216771222533971743221562315098528783948588511364428064318716547693251671044423355260917127970766950229260803028567920267194699673429394797517215785717504829026160365071212565069204691726016253737736966340472124322482169485487084697499277757431128641717974961352297598486773360694294141995064436155810712843818821762250266343832800996315062452189186981492369080621298379457686656196606128934210210044307125989393282490940151488749418053370128380001950789759205271651654436795456625982784711417856144108968242720271966189213576906537928304059652858702515102201323546087093531256048702303339638395751449180506854580958893521272194739108487186723265544571111856421522963463769843199696263759038161142112609929454425114122470050557427811529113455823961104098499684631362967452415583118353349217274360458013591591689645773415017905166710061411712522684925335344966441055284780161096627436719336370241434283503148217368098705311090768861737228838084673042662629592658248849511549850798636793714264660895794683261997954701222922989080696896175020034064817014601538069344760449669436776155143103794186419589365170985774570389807735522419619261674168636509395835389737141669348437170723634055724557053891104802560741223511049408039308736702074028440811361036602222504645163819671530146326334935363711894181511632342090707671003634777331647284735205509331691205039329131988795640211243637511108743493767073222612322244808695237771365902537011096776009515393636434066565730632809834828177098050384701710236810906594323241065383029512683676805737629004724519176691242387125993714297866370253909793129581586534716769948468446956971420817013554422678236338321295759642955457951123247805478337898517687119196126385586273368855000381084214066710958303858340516857939182368449159586802655987175746549074760112064632752936949716983171780069182116886552487918710141713387548745266796140077767495178340216058393315377939068112337798445726217838503524768820682697143536496503750165002943674494406921015975579442887037837405403358457802059429871517605471946767674187324778602099849456227435868855054579051200669356914564483736920679631163173187181209954479382573128423638049445354055058748506835444381213506041690213875214761685201155542739258941536830859094395228178939459544346887731571298839632780493581766359921443190184935633981706288653150666385342118027929945943578096592952054743720678775951206788541710394143153240965182932695729343724746750646811283764208593939347697673725303227926316196518745492053350573942753981531477925345121534797564596010605959223498398584315687863657085223964070750862235042684517449737489562940571146489745062390459407508035397030441627283200303366410521696435556447774026387087972980250331001150677202143300702275943467681535668316364431780277601573710475111089843961295481397908418468143506677871027318050289340236171987979004648812820642683314902394928006596014147393533601446767617790242145704620761280981683165293046125228963841281602371004864382231046265574050187643081208459065001440661604345049165904787403992157692143536139196454026395875951691095896283741183896919710851883042716565345429012491790189902993776657124064545155501543028585604483696441771297410011541010996770787247714852689493652329440255575013358186484995315527049651810231102546800385678556539951878912163531091624921309014773622225688353721845447371389947402842303117839640549851504276278524108599094682009176452519930647192756719590597596360098132904978969264255646230199662892940762238929796797253811611832758308729428650978861405002437545833814480515068227337710425877681307600545152858761262740302930264020995088443562348716158009669473017339773397451291697464051762401759547820896346414095891030328162319893899903386074322474703514082247038016341280040370466385396636123742934054970806438691111344514566747789894729076541918918556158507296039239440830255985286176234769683821160937050984341135932075117074052006500861943636114526212737624403521943923695825246457076214025656067267937081036054544764806713514851739408757638745556590943342017255187610992166971884157354010351329431766916492439837284300454202374469615409975107440774365134516969473912439831713325706645833975602388914917941276157167299619689692885432576582379616672992754670444296257778262648494905652427074371065586810480731254592466229670905710728410333737859133585072383410854120143866144743945523101184628292557377617878426421505328579685301601236351388406439918327840224001924606306166823346086869046735320326412739331666356522036744343505586917709271430175266539902889112681955522084017324334665392128512265826754006012543711815480493932530839906978422445333594658606307162840401665979324370991362086591803784291467620770807004366952011180118107828788000098343835666132538696417803169364523252573896801009816841002018913393521587594689743528933884457548046299295024460604965531309608174272282253408763240714434995819820077591027639235746121596203978924378840200817132681365949180763336667011343032261015434899911223681304641351514145372753188022718381121579508292810591878743955383273857613543397984849360363580568394531754328016409889912081678354064801718689210337100398184736873272566397717738391025570494228511246105634763459831890815433427629543417560937129587675305049479809091783533410853087009610167977087368120105689905681746725541767687527532133085296204873271115237941932917119454245675249160105735111350947767429891729419292157110782865314815658967973146611954070735234534327162704894539146653434540171260026769552155901685614476770632362594539410377968590399037076405622742692472424692996280092386029005356308731021229311814682006141789274012059659240321113467953768958307789162488342212469994516403299689452302240846096416037108752553003989170804347795320073952159943269486507075587601978400298560073743589497875768790402267764532389740460818296094361480976717892437273423135636122066132080596121111335642604600489833447712751444749481990816828985291505327983253432368676868423341922307597145794728143205171300934033018654382610372994850877927605573844467644479582432267438794939807672203932779192244293279348327400962835602274293201053852736708927743155669480001795944177941882050395182075415290197027767441976211309687956397567836558925066793867732648163249996394659392313852171614568632129865966346027480394329384869207861891463955207899396214747379845186976687729384553648375104249562587278212527574841244470007262807312078291495687790032303192395684240743299636043182059042075913539969865378599184484315594414079259145782723643987896588153092042275873887926928950463325559347335501031180215512278568596050928948820489242335673786813368332857207974799538237529304952427704192531988103742668208906262978779321855739438469894062200771265419407192875743125785469741143339458713345227831709889952847030523956527889222591603454842096912337368881338227138159058453390865320353659001333856214165848979644875553314798773405097748731821529224869115287231738546882265045400447923243410025184858198701609826760924426698087359237467693367886306644952497279283990013467382993149265120449549389078304161417340744896714643482405236166844306426714167116458844118738969771228011953903489418420905328719991357918282976479424128147848871745381177234319276200561475901328062000099816460047984926612508565761387147299991918821380528522504115530048607939004730994476002634045843885933774973876992370906696582703787605723238142301457881844829844298582103715822605018091558587125865134290263407100434168468973865372019046550968726287887916694255706292374402649718102032183030946949379586558699069453947263507768211749435679458109497906817346005090418200934456331569417049808743423722304002456288680175316903495694937048852836908761205683739499134263005815185162391999150265640041613598618647739552399672117604324456402904487249819917885765924407254634695025748289617331496230389557937731662447039671290932958805739208064314397318377741348019099636712565694988347007552502920861973071201678250553517296038194496326263617748778825432448071652568442764040079269080187265911872180323859063414600058523345174473661960061220152860210625834133043085499105005770467980806590221384589166712675049209581805480190244205261844759161315798035263787506178624184646610963248599437246031136867740913271924016114748411740955980310968904213127976631904534817536730877883323319229714821346539635983095181750461252914909774116316387375058279761769505219191522441932683297034922336773972447543268532631010031433697097873116493818389580385407805267882575310046601776552579048015303757288629819026142331942560590649025674334562267444392065697539997041567519168352746217298931690375686294275721462877017375955249809016068507328921567745379357782700289806523351203924557216378414113777888025531088897498869932307194779820990649577125333240457261377484479826975168008020647916287093119055233141053390869414906897831088943860399082999340179344923400223320128750203236056382724806622474661580561904239023384013058425115074382504310258268942536373952135562557327865974693788246597450954856691811966961803071858101048806894172673268506439212577595998994459245426191730133537284042773284325633585342018161937814919864287767280119580748022588895982765222637151964091161257830957445275249154820763543620017062662218095215615477163578011506257353681239978525681245401828212335637283387234211906192053818412932660229325448399569480699781020957596876947326210626194028344093514698203979220848238803054239184001734067206860855422462770879815997185212550571665738541196306392720044050216717841298941986645543710734646758064848652003038722181864838949192783684608028799303801827548327727957450174798091091797207887122376485751063436653687755732763509480265406691292278337755201359065275685347698316319214937136963046415152213891491130842816011696576570955551060845650998499112395498978910574683426812234872409446165746661092066953157623905501209802631280236376172703679730956069162138222122943166060177366140025055725430521005880794810239589225851881951492760300616231384599395104492868055302909345219613743343489027146390232901153267405964023197924383469596865834223225677471594096195913919017650135550838924440706343897654665778826608787041701187724240344656960079821902210830068999230819537899644193146203838482593471895254965140574764827074787544553951134973788234338291428160623569701310960030365908057664170081546439033886519695501124139825491818875371324677555456234298302354839253173631272110106974408944101624518798248210341713886011914061838260203569797994731484178572614614770833873364208694371472339383267399822710217186289428312301093137389616166835726252127726575064114816786403411356191868709725337854722353857111051713260535770405283903229407563676270418792064072606775880423642103079221314759037317808211790791347447659200770309872775769101763271022428304473344384764881189690061063113999621662210600788958850384597899461114876265424238971885084249170926541636189734770769814830654034625475060533647098039230002898054661404934735403644413601496476072919799500827596741534560699869355184328594004990523072202229757162921113628884569477298429160665601394378013610690639455513169695872256221995744542984681276686650002659207225090925335571148117760891795415680538849150735942818351227731566872412188909819718186090718979358528077799905978805297394833317522764906502048920246212520623524012511525293915153713378087989031457839939667780787198415789371370926829400395627087312921276131983778518933524885262179786507940094526761098863521612556614795915864011097412234878846513049008730446932113035312420973251596633099080199553098596020418760016409199542905516924232621318614183511171681583236719050913747510429023740089469621873164974838225448794062707098721979013575222953617985911855382371015393626357706572699216216008596151412687439633281387658003012444067203899722248237468101751727082484079448059849054291218688326119713000442653745889300729452139645933862791315260999686601641831912650236577770709095379082214940036737049225104697398474239277076365872681291873748799436275741616712551880705085679929273334823207130132948896352002500274345236152116360675173474599351526304542903761981582768268656590726590141502128948671548569643430565778499596399477508726783020997354760691504720202542340308747908779920471849268080323636930722889769755669477982156831723157389863283045321498680896920110904695357743461470579693930924074974692710887820418013376001577752623570333752220690628370336380322376292756443894330708614076457423932604436059310698410436651194647579095175034645532044805316898025726893654065274461181809144962867650929909642533515235355598338091854571945402235484406563404893980375508354110468096529482206927108227009907454587681724393110674109141849510863537257765367839683137580316060007395642848483544449819656497666313294109047025566891634332489241441456428535838478177227682751036404093517604208263394922070150734853245296990085023507557155479728416348744744238015882538066930323714915348264776696737661750178740765003825906784819803023288243772120674337007971390573241233149803863733697019529096737364550511349246566907107859983260177332143114510962650061379327462853510051959418158990063316928471173475041034919820969910393759781014216476425151371658678584821998729606221546959133248266260977565975350614771298356854319569736319293792837234619696485415519994716840827704471436245083101698466217025729097770728414735824632789613657553297103389428861499803693373593735031009542997551109264496914022373714682083656829475785715163194676529483228686971836584844979354624606365517984495374887599794881283106309285503552299252680857866185211810055366813284571890012330162515496751549050001452816857737234251869107591575368925896853515613984503854502212215610699014199078186560042952713361687628258101728436332062202524794309954930898691748720446278311915262773431251497035336886555378573837848144775382755001865685728611902309785086499019654356842053337958356092135335295469822717264420101779227475234338587315836804410039852963692945504656172930802206160003573122237065203057653474197970368582206778122589353570263777277568814976988700028675496791961120693181176523037685965760548301992423575749485128983696365068313528977201350368005891393509058311661836250161943137093932609469665009069607674642942595090312824991928226516383094343210720143475966666847066902110476260296466567015958505944761632771756031890251385897581796441002726361956134326515221552889051303323447759642243323287910885554569662934157877128313230587422766576431201689642967527856947471555653362133600402117196351105992982906710812417504451438513606807883312608134427062965714532389835867711902196664063471258724551377856036186574766828320707079836711357790114078690940234219838707747015562804846697708325770552129969015229595003771822140127870378657626955556285015700962770888110507257651742206033993098682948811459647470690499309813213130178007977846881274400433898779935558467855388588853723730929155688400234997038152437848826068130874264661900424900840123742447544443768847774528076221628035324962573665136796648214590792026932688170827892209997207905770822532022780309643369724062779341874950857744625032235545358692036898566124762242407421006490674753483652865122818777418466764018246046040723750760825799017575697760256908918602394024941306011313808300919074450829574789690436697160349705078860193908354128341921965782797999861900628348031586930704073126383836063880982478463735573286184012912135390386822343376116477136701541924851660203434964677817302844840254631849679345853876079178345905834467559715332620652348288766655304507396059686730954124265022493760970582974876532611706868210769780431085879367156988401776383197232153528152457112028385879784198184553531760192104262772640191624700681504280717504146435037012656687264538054653553193135919582212535707625434329368775936065373805949423586914378585467955673556596692599176134241102585717454903408523321470568736606411011297279591381814703204889472102261069862866728644365707636793326966276455780720789982976185845390716860014152948313467556114901042656050647489680569234865212315592485027412725223943062238341944578326657776167127420712793097502152802872130364220784943962150749839296453875041274131286805152548512702317350310552736381362788705172409904000956688520166845117623935147610667456550836896231683495627673910991005900276971487616233193358881308525007517054617721290708856154293526509066758858786721549679575150668991943435826870368112057289733175687024175434142488226219219314085705302253846730071885554964452936365204391658863783249552700734707026344364354764367459349578081026026744684540774041675546466686809043437344944419265406219331950520501127523521267950862202661555611491526982523602711513199122869230751950019842811795558356156752992606617868443174437386275169902602591361060413448206566349554131682255305575283539257724460483051249669522929066998464466224782427077294138221052258013605507967660676598288597337112356070869721136165652539141459802358924593316788982116161309774826811341808592901397860123871933973920086440707569879021501602550358540719653277308882282417422054039836536342940953833126605871634167422762941591511819649449369993003932116364797378703671605504201589639250299782646450664500551555545362402611376085771083713499982428178921799438143370334858511491478621936252604098023855544083844491835498864934639205889897860532337695174859766663196157192320520593290651879867080800847415552587506629077103053848818490422987799523648004478754697833508080132373226933310144048768769105155903596508079727354981182809513349054455147231698945902956391754220261301050981741778404856119719019403990050230847663936990036336138807890981962565406687931398506340688834225579076193374267711663762488643725226658220762372657368899767574333536645509616345350215257334080235023584298010390495515777596460644233350775185451012032021204631142741558813651557254711575796290395212854608598045029933220140834308516612725635349622285475989997038937868694580643666307919978348756581294705284933014408768694169619382590075437388365766421839199769333715274972760835681967825252398363362941210133310580357003512705858518844691844005344898415830060914634181998019335408278216005644930636962651086560782221034326023462424971389812020484251052169835884426334461796551913247887860889109765874371068794858389161340004414491013773271310057279308001907208746895687539061168036188794132904948489767875177588254786284175330863372088735806709662115555596104384547496628894078892483487325532209850193187138104666228998949047588290990963026694520248425986358202750895194381321698956226799495035206949513905437512435135642101784687379409984887203135136027425778177783298741101644945350538875719000816641846171258417999162316357349159013786053999003964407370217542948167959056775581000917155765930274242350940541963208553910734100248181748709543121311720094476544656639921506130369737286312789626430046466736665034497772538665307406297384407711877678268945935484123585261373700857538695059182718216449722848558294937081069221388465457903089693614292150151535243734569745050997533709333984309265460955390143557933351334130248300691268653743795670880607720300226917025137786400390406230885419450080381793425843228393419721866139537708403533843096049831619847693470656321005975615276494408775119815273780809312667203173537515570673659142212274591241227767020836607028600778466295331563586716783772559148564435344448107818993785617384933890863585615427784832685797046788039270165507850906526957463521183471162845713722997403443991827662182122551054063917103563633050471525863462141969767217385375790309504678622928295770059097547574423953924867339672280502704232798603345804851281911004674852389738099982190962306200317640961143046706467318657973451676856233010199733710032851657764715329817169915483178034921709210385009681340701438187617882373760199022116911103763881571453465353418642790601517473423299332417739564623525846252808819126215738584175304098740919943061512095843245660591148259384664553326767164489493096686557980598029495215255033918192990080741249025739562698527983932552664041897116653946003904752501639845842708128753674949422990647093605925948366739455839817495826508998338685934133622581043894998858179377657350389731016776450098782957303964083568695833211484419133835081497642659196763784298898804741331848751273641531014673369850041369049201597886599869206716021598167212483525197718218325768033875841039820871258956526632711860064691475456270074545113214021977616774261953994258712287619554561908569044053031038700564457883505682058923783286893510095439873660689273375539523463328686275574257448616272132600271505214439925251373036423319880790689556070950613405058700178931441919849907370812700746081140670921694361284261225939749801695372353874820136928844986170452243106275345570960352544336695156717059874531901322094683679563549926945972215283400625759906778362783065329871804455435285012006190313590104509318700453196792765452649859097349413509238821511703984265852912479313332910503203623017813916251757852801451539829028497693321337271553975431794373972558403146832101318883163721088647873638448048914462144787433513699837610932332281746015845996644855294977475575297642720132117523957880575215289519776902758465459500535993258142100590112361289666504938927073457862089191480042072055491588486077584394261422161425075209822737632780207006177521647109871646989597046918750926599711288270076503372798243398905575277123035610910232437252142899692210817730379564725937609243639320531001803613473037902305531645564952881718696638854300675176525392619627375358085844624092198771262197889612504429218520084621452406006861980133029885213300158843272697498857645439778292852919510081829404887574948352455877332113767065758619495709653501741118573755619586116235059749480730490994005433216209173166959315514811941128277809883370972596994563097481273111206150594090057630786257559247348112695255820377898242125930397407082719765532798252433467956602934614180308987632686466476637054235035873006274377197248323610989352420039052531611459227800648664197600343822343862507420746049822913511003446680467081392323890395695473298689408352775153653740573833272224461326484674455152881004343938893798428202881794795389097317908544793029313797904884824809314454512297334161647555658824499232978411935209698549222322818479490919750480704461696679311834473119197716940947350431514756247778118760873111937147342749087696909996348045301817416132031946691093215290349469667541212040191456391099652593144398547903917991763896117778944268541328239973998895806477644166448574103712476469691112348213830800732756448883438048871416844740131043673025972306276811543445159946654288169206811630054101113225659877053763182781341618923092754319790459284328514731321508967276571716704030617310991789179450622370117139473415454061137043814433285880887543376685412572668745301877412419148210129299374714625692719614064521101585079435265524843500096025944347471535427350453232399912346287502961571203700186603985583827812746985058599078678564536910456735217269433396714645201275952276075724191281671631375272777005257488198149378228246013888761578636536072237747347644870050249190481856455780396771791431258449478019367943339012765606750512754466996129302275703450752662659940206813177203983151995910493481584679433850603668138742990872906857074841897580013601224825838273732229628161261086839581697306094377909829961765390195115073517281489242004093086884603045462020554400613705240740901598973991631682142359393834958411864855288067755995202468559857628259688887897354607125558199909656601196294383355744802278637723342878178517993959370614304941102597562154527632237414215858942096060214383435218825379834767225442213345341830634081275229555612546452339377608386928890541276542405364944998458261823572102106603394476268925054070936758351812806846681589376807051563925674253208148044033792190011623203991408471754096765667230801907722336483602303813160466655390511120014220923204775533679992160286236961480109269428190142273993234866062630493241651007310431987764300597109741852194701388129166789803545889031053894020374147772873184511150549978550618201605181290951235727750214679706846288005038720372700748565049942975898031280498777538385855088806038645703759319483853901022796668159731807387834144202175045595379058888607586846111460480968098262140080359827524514547040793615468239478236365866681576562556629970944289718816749694417079016905346972545597082686295774936019109736181679562523361651605617977949010836383864916181644925415692267033994427841546738114103171962311771456534410621609126967801299273630008100030758920314565529644335540239591009713843361521965049009619320658659901444288986024701717195260324310812764588341166872752142080239896790330516991486631934841029796759434100258674908678665028190659300522099806018567732152121047296561313708756295773509255650981628641312337557214264843303614388670462938734590530458728754807743582852111889034728387241569370824306385830343251365430862662609304290153853263406817562042074661989915106012438834931160695495985358851457296330380572802381773670305716686334875727680814750057027971669707548836525933014069073973116150220961345182303709391189816178913724523985408436704984539280618713522166493155740334623136903295478965504889651473041063837432207192645212259938740601935960031119865931954329062086668378189591340961552243677828682998365567017048877818624185322760521728664863739519233884527680197178429088505827037220655312741230710166292507444917787348904118527132473137214112227941833233969173072702809256313153464866429339220274972154676825823020790804712621008591462019745673150098921878912836381149901053472942579589618480748593185005202851870251119244079476617266929596371630322436785400396197940099036297958643364532943905398335775581832450786671971079576787360568535470605267984361783878523451909641531355693439681498135351534937173461961234014220988181906928934660818946903480632797609220763836524993337778074963519771682972231629293544049801070383577352587458931383660923028830603376345373676251752839531417778682050841656794595639521786198428323727397855005025928188053195305764389566901079038153488953263074398135856112201101980046956465798197452461268658756947752621957040186785532806100408012354979203815495959547307845803332957344135380622978163563334810433432190779581913755296020621681676979483208809929084966087751480807246516270804526271407621828383221993789528937546603085601612040560469290390269908781765323223510414578506196044833518899665641612099393513580129502411512912798515407646957515756377306185121240077753699974440517605698256130758976795031232930741358627129498385295609597884977933910188333229641117195538197367004635108869782966761548603790551600877589383946373323237014863863664019710339091831712027943726056227088007004422217709645774211357626265303109288411436263573329014284925491487603335156654528861930262119089086627400016887417670413872571099833536933936543696218861368883912704728610588015681739848506318291573729207370052693628478147789417330660601273624025113078597491359474803297358833651128851943573609420850356402889148958051889648554938019687866985756685334367472126218615102749256020082246940580473038626640730897131834264853272518441592854536021535622481439897154909730084894918914369830156209677566150524138277402912350262262392051241778231945709983304212612042143386472200920039965368412588529973707175472634486468218251636643115330958867525738357799672468760345023713488167404846628485375646240618984900771563650994511677632698017121187017584052769145203855238133250041087674905849481015489746868938782978751215905198023442764720961525206510163934717628124492442390983704306184576222948398993769852018830425859621908650267901022778791257090565597880982655733569403560641128932658749001597433272228278971353019352142212071390848661480694221143254773339746403505937970411089630738100582580549489228025536733402152963263137351777199415945633848775792709091504631002161534280548837108965149811311597645291754235755835187368048313954335718060804787677687360836304112352354928903364620663809880236713242001489281862782309878766210606146911665965752532016988149308224152815138413586069279282595828285149314932304108573513972486528957694955183401902910149620165178337488249153692627943787036119499877042203647149413958430936871657264359099890123166088843417118486721013860365245331835526440335944212090868143640560446950359253243787310009425637686700177691840030956880977353971801399520409866675262262946118351049859088788985867274940495523241618026524538606796021088892130097636926255324437860245213325215266717667710717293094207880204338439009718426924790972805391558556156465405170306071299344371557922635945583079781365037598134670552539635631370599135720712024999117508250745524180569151336791326071456077642740522899838673107639163818289275335773413222902091074320935692399578547127651643395124837315494393217266765132120277726552175245031967177408492327634493842458024026172600829674424613114235035465199974335530400260036755985502402601802891023861811745700493183649650361300497617498137993819369842941584686535701760292594841917788332912522420888211510051418631831596135905097306090981620335603266746912512539016320687321307692422121287912049302389423743724847526436133386471326101942059052262529809054570706355849268943189136285050313716937437417520508172206247471789777726281672965074362783420869355142341370969549567145261680708307147179576740397050173620811744003583526036380101467703896900030219085003693377254941239418992649542720343538145516212738674062504267165156302471228755491763599446872415222669406785507032163135098177067344287936041847957029983165466202315705581160387531447193415610208272234284412543145721507261576313941703708525671803334725314296179962576523104096782387727557838652936028145901089945639465455856736748661378651935940139321496225450490117197180142725347710156766901996681943013552948353256968300295004296533724644277404328662152499406937207843986460787429128883746139622691646061780070808997321658321585529728416139506476359920126841668837609913487794091430334561432690516500252552367805513883318158160433064402291517309066094456039826899933283229801317218147304991441310988676032266508079584508670130287620238227442871292780733599953991484500404106710626311609947696082487378311116704137288738162834517807228065699045888305573836943300128449043587042060205762434785487537981628053409913456378948912101588600868687317211050281463844069776203944552400788895786632540076620031533747073844514620720853232763026258485609624237967295017255049513331587839764474286032954509949832842958240355090796995650100593315447395690953327137057664955652022632361676245337348274262203803258824402986856840292427132571684104461843772924676266553474191290439230811381298806794449258839875424771416202459746002763183206289006423087401050900683956531659967130892786477442679540017126859662815392604177436117138954732819601740009254824746224309297837034544411206265055004063737891079880377523555209419492001015694844863906039456680112351743883236633045964960923919252256384259506910094246968596305157510530280203413008917931132788258338753118060501887942109378045279231895607754712354721762301490490085322591806305427017251893198819777834582707167844289519204995647803356671232046290488402392862558091696206894221155054178441478370870829697522904154283630754722324089013436598270016968041388993424506348047092812334996094543203460245837581974688062104583469752891222846969769885898501176091922350962238915575383493889288104201290649908899090777122671306955850891351584669944792982254718732885971961127587135577383871730211108247205883467805058554837105193072426729203829145705793218827627357026601588439757546391063734067470421510590393430501128272323643024300215975312805436182578910287690743793746892970818707656387611966504916028762374585492716882957387763338981787354902128589502577876267277716877213961897721478999214874106550853262917165619568442250738565363663534413770161962391880417880303095984510310110099635803822575083685399603507762659096204377177166692804802805436106237445217720480231158013465341517962911563175340706983717691219779233153881109337421219282429898581511328820750088277712737343571696728226041301202611271717725096317610602663041681576958494004736174682425818792021502696238424604718818040990732356826421162718440153376458429786170100831429944700609579109136877680202909146144989081710412508805453843049047967531578018695635949031794276486500047243625421759108666092013382366123876371981862558642602676545231384103584401348235748220111132007646230589277333758980562221178883396539629802177577311219539963836474623964167476557862145311249989369808798207367730226974589800707457492410775099872200335568299716988343623567161886603686384762213799608172010274618363574950715166309727347271294300528424529250160670570322765386109316810920973958667760817184993064739782086530218471044791546342389574621199150771736606171664788513999393698767058371677420190569769466250345015497489530742316519627938695809186663635657702136299989740835655137663322656336490363700687134560835591984903257614578831115626523489227447712946422009570931170959102039726767508565258868644229314675353226301559894058236158074172120324689363047831485971122663773741458174076549038212286549478203446534685572963810403730433269925931386406334684820544447423613977784438452741417346271642456393065338277115327901993885206211012734009380087032012787893350088515989040825318787797946005391613378936236698265764273488440400071116610518649993943134264359055126509365708374917790859380883286283959820451790402044438623217618875373163833836940582645722177885269234073098189282175433866801417801593654188919308548171744024646712068681846463650467346939813822502750945956844979923265769150026625140621979924334509672195296892388987886612718456044347207751339849074017546939953405849685800157821136708608911772123250597789067012819360087566746005569437767834097980968943875671260499643203226557455688575319966072732987639345814394453974201098622983694723623402498565297665853820027680740021534346433386966455488114900779363066856103237586386594911866195049126552514885757544098509050222373886108857178602590715322729293630477549506051774965476878774159634527149686203924448782265310307933507013792213451940795105368278716863655698151823861902076510448536214674780245709927181019224094215033484380658156814200604682003538871358091791515409170613270565514521170326201387747215335235921245339043310544971080469118025997318807655510887519783260262896595984768635033454721618418933089730581291595806342615804130128004299609264432029296704263869747609599198342002902851468561564590075135034864441168043898541024012389154254068102231613541692309824033817778256341432255765998179226066245875398915852930502197531129453936092678666807017833319998108238986412399889660090142350664099534009435113172923562665659236157004840041472770205509483198428832358724062006935500698632712146581197751505481124796850449851794740481865445567330028241594219766858545070927847444103881592896435047246241088677983105288753999040388180547622824505343352563986702983465412784906249957555750159354410296141149429302889552009448478788001504090718168139314238416714508271625607275706560195072222375733869373474891986731361781327107421266890018900336215005081695410889579107026491040151412328341379510299801983230399785822169859969664743063504574871722393215337452994797883835290941012114232273053550151991354728809926698069825974889027805088497748381074006936098816998927094895362564836537140146124967572202964026874872110639940026584655583051421877212039904025321061045119603924384044836877941559657508608659542184391564279223332751692462878571425814467553596853059790341928818994962451248203386306977679400707609601755057824879237084067755845893642798672449761061535476147291000237372005022451351292029785085503834999684072536548532822840531755730007491095331035799014596539983787652015033197253062164399325699455558943049150103218203216611488388615920392397340938399092813006336698590008975471009790225134509358298155504193459190397211433611407107562151725096622935439570308300800906209057100121789714027105494306075220370730417001488717188545283264072608894616046245196162442605689307619249289846903362419562179578156632024243918858742530223529326265832324833663822022006970821354975477054749567323289551435409684487789652905090093618421670840798069344384110723531006495494949429604678511424470734242422416881106590753626289831146130959449475213338007791783382246329357022394161780861777316108709258453770123892154036256807804729264617905774275617620009435728077286412701416688151865465051000078628981871213542087909015379211332558194418468090719322140270731101324107558036925946128324450210275584426545182313002381603995856686078230061231779099115882943355165687311475123557718395650217817948685162979758385533911655555858432648617236801916899108651021117367873672506771676266901888695810379363889934683559358091326663618166742861036020242699973036391054073681675203444945256508520808238951240248577318236174519109589841894875519555587382746137673496079542452086209803236115937571046851689627673521929022220849051275353628836919510899924381746951863495861635076458421584413823637657882198612190407138410989484943289911695047192253969302759975964854859187270186062871786652457954213257196178996669372412137505162535016239562470267666579182210301447300762103535819089566562472038312822635952949131954560848952944491342412264028051798462326601051943126746573606953033224916582285494858808617214131350523910684715264656904324002746368108874688190667119207303536654909037018831126812475972388971751917983342936553793582280694198910184566120693407468513473884864722383270622042480322862454560018662725129845227415714309784036347808126100820685597383316934225051091982955182763942849197574479133726401636649766828961964751421626295919780642622106229410392372763228206951479230291474646619936736603739666630069042927883148621361175159251053427481202675982837644543701937827338649387482362480460597928425761059534056419424025427107065896213629973582012524103301119022522910239804002085435055922392639769338727006539243767858911777162311298569492470204275054908025631498089106784273968908847348540387791257138453776359420710154436564097776618282497061663541008098015588072205181099040699743096123758097924204859549921986912693291772126016512926529302327507288556538454677300692894003187863340021119938687685833191830988538278070733220813031498232842859453930470031601702790594313096824814122264273320068840775573881298476978581335653125387824462304907951967806248630828130440886695032797792980552293665326368353460362973714208744266803688839392833871806605623604057187809570853568994491046809919991941979691603841390292699100701851928379404328978735531470445141505733572209195132344992083095526249898776578491503870510197179754541556470209277894818837805927857196755709568739618492847467757276155421964292121627363310952051959756659548252223530430823050919810150713332582945191034131385190200594127591763070818248080452258143335184257647134768435269169721053157123588464595024700486672900192685512162178764583545218407273515337456886814399965568230130272070886532731504632120852755393850733617132355730965645787684773433647735412493106686032514001114740021992189081913797146069911798629418501325223355163684026948767743885526642134974994851688818498460337070491308868733259713716046504984493559540473496077214710874248447711114872763490529618997011558495260286906907181791690465446541328101422671770999041929643119252595353315252525808962271976656497477277220694513587245186133972857194882411524347295804997806745595355055754498088311576975270310413978730668139542036179118870774961751767735768598555501154062318797955452394813400202650642527451298482147229255681913986237609380871091013922512675481324789032618683371260624181267353014950037843200013671604684795868551605125291528556287222550925302408396116176179186452250458855341700269382261051342919816507123738766190299157047636462472457566776328141919345470515589676470228287721003170443665870184044042672148946280313047905471663925226579825737726004180627119977044123137084717610261911665572740177255762165968986714289961092636824121973454271687430099447855852104151097372838647317242384271148401181821722880455425122936450099976242878110644981854461005950684082073733675098336318541613658852238687143814779029783367413446681379972986913915312807234254454682355108779356910034279634993096589556205110232184833264570344947724547569216413321471130467567899100279300083410228704854407890870034424809411955022776389359569780106502661253083436844944489910418106387794852492309190926119593949765722651233265620327130622461252823854541548871829524873065530591521424663113338349676140439004370278766301889574851940703275532299951103396950854441400406397772482707826238624834574140517255419378116168148477262329888056196630904211061208507023071788728435175125371502176937690534924642900458463399476103427390955127350423378900873769918816599524044761354012579131355250812907639726862159068519628202802005348391587635094005288454070490812921311616699289698979629297694770743821063894203319929910776242797662186281668513495239574073373420848261818061220886191186309362398005468371498141523150677767537394472628114763744325800679920041041814609858700748972280324464841942453025215634909977153267098572631545577685411921588714121142879242685148851239676343430888890658687369713740498526838383015674786597337906844609744225081649420822162341571057785287337206562303361467181518899033610985746642766952294053805216253996859104847643904046643727646885222156158517283447106817798105581135836482222428042039740374548408319866062800180886317598716749700137996921866726438731071780602559415041932616543623513209492205379380009832923888556719344786997435496733794959698219441650340671616424273512305897550795254803985973225823548015965187862992211169830409556863715594260635094451891494417084742511950746976519634768942520515137155826716985390365969645121147431458159732466462968955264655022542948053455397612837225883333447519730188612962354482418122837605391885963513707485187697570051196385459552392263962700674895805403137004337521228258229966429822506980934835845838810307984336704355982351509442460683518453062714084436746694077833172189831822812083170817763907057068051252098055817788777488057218754515587931884365214736058346113566340804771007167364205628535867682337713018463777288547616428519600462148463360798951713171880053738541291775537404437348827805511923486015136416666386956698009159576288567969720729338822564690588928744126319988804710682044566595803969025812057580225143175994165012470046176121437040347956415636684397760817977387693699601951280179455783189665636776474923546747413593335172791143042461926341903324097798626511427026785150252593685481440109763007402896746908102318706384628808926365063351751240446891482063299419449219184911779889128454395400701243381129714847887972445733929079882820702469384211179499326157061048869581622846433084879185042580196930105914177104478956276521563189358450697077763533637667588928517876000802416819341991680019727784394164347905275808194323639267071147879615245758811198794587323235788222891808528774153550006577719363717594509196603293641140426995914849339232102032817361481731450583005190501325913658732072103682662267055592036961263960150540603627332522597547225758424432431228972500715519884027781624445656942744073600880567662475083036901686624805017353473798215309244037962150849742960823322766071671881461698849167386487561433547914902618449195098490519766114974054681880783789731055147350339052475256381400167340378698302699847293321768453654142190744932360315718401133686964550375478068166909979590867503631690263290990488040383567077240705181578653649046738762873335928354332716994317263213540881105520297794589620225467643490985931939489736584071319752085104008945983578177194380906433557947356154374501490815909006009455139027728205708427335740008906680497964502714967196991692895665314809242828138594893487937708375548919670269219857910084129804772586860380703505486792802379356353949544911567440830556489222453132755640468942529059597201398577309054011913894235690382301285865943694281672256768794741297695364839107932287598015466388328923462137252439476885946643798711910001751703092328749962533421809986459474355377606665441866919145227365006873287977177947748785575273712385903746701589794078774282364588335564341486788623443034335980209330991983914228242377165110238662311556362384462992090225111649499998934613147264308578583384240860127350605861991256464815653415705442039096238789029540562342956111216461751504028196923694618981102339460787586918772337941449336185289301270168219537159982296826523606573237077262608979228773204570835518555107462213491836285343640359403747456311292942306579570264886545478302555521032813491100776516158605728349970112034111025938327344105643447682954165858959975743944220996337702427806755374933430170312857258595957990009142802597516111912550034195323674583265810438203392545203456072953937599476345785408591281892695070057804909113140720575292604575787598664337646289264529175826378466993410765358018233519579909666168946947885002278282346305578887226359156548680052874403038863048416093539636820216161378270666793710649709971772653692182966250704479400732348322142067341609917714921269234550747133271367724875587485420537934254386274546657883689570971415704770621285715746499439213562478492951482803716843270553912237888914867079530773900163343332183567867015589827871652914459605923073463822478716768446415611215676070311377655378222805593328519924034209325904603497068685933747452294731414754540856931362131824064674921458918066668631452096958846353272410543788747186945149631295092313115585366372384547107710192575738490024349858731277982605937208597588373279684841578541798217564738630848070535126991048465304327737499957817319014446835492347527917434033242798315540588277985029171965779139062001227852509087919724350423828588526135603233899281504674270524067134025522486473758317768404340087353908099998671697328087925784564227219654373832168300730648054935702826314570981264871667450409178904359840206200225387818703479530685099276923076900194521981454668685875648494439862172917823183154179168156766788826005847371512450922170643843447109808658620699819053582136929089229631121400608087362183190545375148081458210678913177839566908388459322555252106623277410787972072434595542505659739066305266213565866190079942639427129095056948937049369206540570001843047077791958785625508251812617048996481110512328004296285693319193654192054022641470057471791857790467042348136997741333361200328373995861346077811471393986838111113632840855647013053613468064237384567574573125600643390155828056895393332861678077516970262896158205650742888310478654503085071456078393184349749792463778074414798783129796978529793115494258239642625472268562843145616844132972571948417206046287954850054228440632403469439370156938707096911689786937969104936590255561984477258074663571210266236861094454428255421853924643829942141171988994952945639140649642484393722267120460082995746543320132401108205357122199765816362385349187441854846290491217000223923717034347575360316884868092153884525523577407206660125605013677610351854605336520638457430721155430841943415070784768793134968694441959571782046504916468524752947647706877810927315410054789880294270040127005480018488993969745143201464900393148166128967911821033784563320762109472886507888562061084355703206217543287608563254715980209604653018152295734671735775555999621113751763540201773611903062710111791020534215262656985416292853206286681886690625204779236375934099768049225112582021949160641605075862601916268775965019262122376457302987309811936995545386129667008687601448215536794442091499898034457085050926819070904089981274742349011823179056195125346127703121540315897942049946319210405676169025584832914633286425622031661697689216489733200241308738535303796384786183658046215661496353570203760084539092749320899102763076408101578835398629098012671486853681275822950405462621112200825507978341462922395947430905003531643361302474971166337827459969417865606183893372618055142761090174323750909255985002847346217892200077609674953632213169277716589519849673434359847535123700111819866653914744022356376293727435176593589901911838008513024065529012921732735279677493969372477866122202004770382452477047180517522816113300153995685675115286652593808371834975957802306940803639109019477793368808956885933332588747816771964323342452087315668765402505574832533701383100078900698462021868554739822186627777409722618938547698716911271119481912757161368365640019448279161981106156312237380379015776824363913421480165364080532739951452145839636829660664672571308749353633037337484519341388239223807890453164765402400512839811239168523078003655501225892556051755627397369159945946477230287649001620597984906175864236082313455261179020084115011476061630513825481397180927665321568611533921610978456528540150625404656333367719747937695375622561791826660334225160933276264223973055293238564924297518902817542507822772061948648652186345635493612150030035344407528037427486844633997838599505042589108356431690262178026320436800819202704828147762398640977021228278406900823636203063130631348350221292985158693483780637186364414304726491086380130346404823041176121525487165993985448654765907465536713438665997561225069917585094313177787931324883514336154182579150329820503185700022353320310926292002889529702372452214058412597992420372690053014691543957721040312387294729404668765155969739049852973153860216899041625621843657291055515678877878874521972708597787688606391246481032140111759831049241187414032335736747082867641799396742652031020274086424170500969621499581294836090049323518060694204087930902100970701542366930348352656296688884384010016545235731337527728121851154470830115441294374951080735914275187250888224467157331015814258689358856314467598263642685804983636364281821098536413151952252858692694258949686390368608654753972737790907508288622737722366784771756855422131038226976922485819517365298678020070161028433074659084730790255845701592376733345678496846880875320821499953089840258085643050792540012979943584900347501915120346038412626667450549446887644562789671171634441213093828043351961690603537200253680299273118549248928259835275668098682793869576987432782292524951333295678905735852079113596337402030840385011091573257767176336515707194427745845761960170759621348198196254562580169304091244633768381180981317787026049035165105848928163098286745166804765630734077097386325336563317191648264320122875813780341877855266018275472851252357628966637033347786007715795328732080004529842690283078949007730200880886347425469317893897345359530888044540145180606784644864972791334210902237979419594336204751055595058867719784836003620749938528739554105055939137995633794428314388243558132718837156077528760925814517737268406653883703878225322186941120944574054723217395893986515566338756537529338365889769540862474679285568265719161328378285414983122552883196831162800447149236596408123644132045944322736729673737143251725365487079767652804130259231476077456278671345565438949034258697332008897317761066096875901981390730751459665177644009608466712875454055143776753482606676022943156181717930547842094984518855972827408798561306053220074220021116688726490401771690203888659793604414476591452068053423734657446879523402066405920292071974543023672775924352204240815346130645326732791687295875770298116054754382506467631521190304223036312474627883059149865247705744781374501678800249203664954662825335928456748264090756926910978982533024408332208643311432709852113382978553427485267746589502517169030735770770416207141010068444674294481304109371985922302787223185603796454703382800798373907862052439596451907219426172444539769712042069379967865864659017551441172755682766759708155490924105870800254995865195862109351153349565214034528048200105432579266758273907086911354211047467792519888817289916940478163494607752281209983220914651012713253790600759748142309773628053549085785978232380915233779689743430576701211249767517325434667681312865022345654293366927500662828122974649119592779424418769572736221784915313421900765184594498960450173925097424092375435936834942324231239781574523910463528056152171740194912038851313386490565258880750044458563417866990003090729327209667752085828626172830727182585578045381792217716726689433107278746056358379025360036941724580568200791585105278766627106401327852369139924276361444383606910050653700492748452971795834002101127052486293963749145346997667828745840464133900718439270048198607764792568113030398809398666881983561387828240757606056421738584295538325398048871478334608842235479248275995232712750650140149766297041674916698970454491413125844041770215501919809615194396313200996450294667359932113894113949690581148279517899547075520385740358010769502402814307803324677788435545359598768311286493262003503793439352940068305240364396454332206319177987126652478204192139969927533751628618312403883552315399295938762411025927457953087427160711421080219212055800373951940025790653079299094281575803227795406322814602672230901536665929037697031640860521696822539924786939515060982475814548967923138811558764438153429438028699405082348633298242459915991737484270656669887505950023582831199806802860414420584951677190044556463821522468266083845161360131152581433264377040299983711876958535994838704888018883186017632072221788709217398602135638838763084506733452430633662224219272346756401196021756916107124684993622853872363195565223248528066140657167541509783684971552082688995134185753860166768166046374716777253102119227659057587900962948770043143660236915525458517570513001015192701827865741619780401570904591223075893413049293326971399488514583551771642706263331538063841386009207652831619891817500474085428338944643740546781316665836474491575373297989378964582643698460210961244960288540657164845245918700638062678849543964812958337758067175495496217271955037059495088987127038821501944194025811340430626512188840299176412419638495052038747523693199306275792590209760150264074961048384263871291764214654465345513808171208464721333589301618475236260024416318841369659998591373600999156751992515540085058017166407504455301373213614432450589806810721280183428760658797125923787261786739612913235796111680709665337927408776763563434848272434969502377051059666768227226118672623621223169128401283378672139530504093141712331400106672292253830597518399111516842324388488774641079143325604609680797813867486658590380639204151488503466899887769424478158296133613009692283178738903942962309857528645405695379481386315835815058021338580526336117986427782970144394297235621667669614086545363324874122518960757675698133832752927863432299524560485497848515785443646989424695820105549021648841229767422860929112624897346357428586351269584980969016338954737995772793108832228275408574246242889757415609415624346922213967043297068105523433430915684240690298533076946404645107207730309500198408922350204554209466140879078893897585345198852020585382322222404875082500554182413810611004087394790087339850208736657575483325751580076420793281159030019287521583989806593719497673078506053111096433770594212161112925596567438246815125632874428859821953611145390893547071001651557885497173279661930803067025942976555174475702853801616360308295871401815522476583764234800363027252501181780296339248916508541401184737680610851930441329080099822928974212691005812296615338554296584786031480318523510928671628547411320057149372014992328235660999098455515661336172277498455642716919511530241384775942202885043182073493518017168446249502624638638715049123872387856045843884388241150105741041955719392269107776505672038499930287650780524557346516852721670046932890250414260959276734309491851853713314034515026434420828500194788888085269636711033535138426365729740044890086489312618372133545404491182103086710483260340138224960378648298803428749866988863836933396059170222335396897174181544063787871882392435615228211177988842190720127660576855548467686057955819920769859618778541244794571926692000676931158750866295911389161600894724569956671464558178933467724190925043067393141289429114645759840265659138710205576842653309787481907193765074681642449727108819961511646228596382307708989921225606524728666979679448747058694945364509429564556471277447044289785496650048111379663562650821700209987885507244390551795751516609638146595037733910299285609049145358720456003115937670950064998866117380181226866428952567254272156794833554490097910019967667895642642748026626105907413705328014925318505516794412633408592133737924993246745210094954195638042135770995640019677186073094089136680649395973799395195872649013747355759719865158146386538209807954050428111478160593152477721850282952645866186349306574279011828555934870214080116458886631229971795843574206195885053260966591137674065035256011346316649155125723002028025567179164967446840721646884170380408270285153745295402178356351488218615245805834790183169259750593836421628673930835430480200097973337526356084506375034614267500164397793737693872230640391841642572642634457957200253328943833213697704805521078439285692814027862738375342086018508240525480897514468755916857848673021681480366431327051494247462345351439156293069556082987605166248663899067385512553005171286392847354332722957656528830172077274098816575925388084442265740331457153271241444761507063752816373301900395805216115609913619683081336074450410345015021362830812133406554491027150777598493031223342989445539823791039626425985455827799299299925222083674723134316186446440081166323362238474252158658823119314794146182608769182053514345321076548409133581439625655920672836505331439154600086059047323419067167484220861966530699113172592040043056727870996943443689491570987752950809810978920309956456450451613974252279353149270424647287751109665961944911442457778732308966131336252252826513398249107789469635665479399489365752607252127540055198696854719787748012426215246296298188812972229986149995214533575426074938094370257877741718128074752091802407157687076478672411840288056567551581941392655136575255760674670831839135629614447519670071869276460532300865306977066171461745618184454855373828313715416607336298782691245697634432302943425438265779389975168616370090830683753109472072687353784340400431265247826955238939168044108893850648269568708266149377094138744585637878892105152531373549280881591251583019652985002485311840082359093674355407338053019808810078052668093322624098203868794446749141817113753309951822744095648100848158679228449458122160433932601861733513958272418026695363369434012802391309121403478859260029557558647309922296673563841940373331531975145408680958036076217171456117433400242371764577273342939695032893123152768276283435866958110662164894386514547165373693755218100316258885441963861861953477239134041450874276932842274901447752285287344862421441625805749906745147849668453781894043153563061322500915070908818950054324208821398557097755050785687178490347505723594822802928920471036889558022699127519691359794619725354239117233646485889851492982026571907100701889665692142458979795486049117769443691635082603333215278070021106226938755505777253669472417667397798344951398694243916208178510383206773610844026610541614569286920992716189469680738052991426734706469182059267981403826458940500468883175979262606593078146975271055713890681191300481888624085566442413879804579219060377580269707315710067374201962590080381031612244451256348202337586232594435050394838377022581269064996736641091250855253825784436296073609822595671734603677634731951745867846125059022815843780548340354198573121592518307566148975701196600818446764435855395293880659408933372463900699888674263132153795537244315145297168544122484604358381097096137586412617456870876257363243948180325081892808050249624037705666302321940326893849047223213091310379150612061863815340274959371369947620637910411490159283691081509879503525043700579669719221289370030630314650483898504344964276219308652583150736347094915326517243615551167720836481816044367222528761356717205265136171432564057150533135350845111329967293120848029852956369726004037587937794727033581173589909201772774233949787913674712826384557689497779189346047913838406179344751654335501804179490635955412286108834175260497086101447384736501790922037011987129223488377489660074925611013811226695942625478104754916412813648844663372042980396678425840382651570956106424757745828369013668340014543786222347811432959569190970526302815690441967910947136834522605673200302716216029272520636664260063384485404569869570442838142219412362139809039167558299709035002260625255661163923904723183866968085286015697466632607859037716923109589842582769933940228158980231644156217129145860347773951829832216337278085321690445265677238890994405189811244914864547561552505175878495766527186328020960351016473778258360211631861910541239113368442270298949214509755166766310686352063805820951157599340392107309398725829228658043846354847619618799920573370597958726118982694322264669205207829363789343630593454205985184568140832231465226840641835562340322537168318856300840367757720625648175875978060452033190106063771096744502135436466102310366192068641327391151984394617512800226010048469414259176902777354106151650593206920431813187093130860182537104135417603567411682415372659471964668267932769868058650780464235685567506630140885445093038886045698106402147082282027846121144864045074674005191323187824191489139637491347083647726156283494551028426410692048865087686193847852829146147455534514419095388363005156847456101922224681743068671833810983588853171204056652553165933899049246894832095966790715268042214901135936873727658952107647059218314301959983374265980341190099896336819336330526468905018544622597017947828135171988558524175931764606798724802560282811470426657466716422528333814438712156772327332934909720162131675218631708742369136983157874655227698031056814486689609474593742947781623185862550340769066939795094276690890319324021187839232198346808519160101101254325021532469417546526453988378915451825144564327606742049642698280603555653422566368566064939171133624735136937596047089610425535968524580952365064183778256147429794903497244538237295990393074146263069911028045712949653478566462347930758233671024471561798878934449502793712839975837785332850348748723428735714276671247822680121406517699089127990289915447342206935570038727281453338499496846542596180233479622740160993528742990634791665737089639774630445658529569693569128862748545259585414400949101515321693697795083202946255762783131086740340147548597850516734168641394711239374455120844832123300516644894260564099387935947689279868643445203117968908914654536614064962939918223579684387015617016410030552862021131279938462400541610641179392570373140662195665227777390332259624204622152902046773490729083026796474461909937852476515152845846615869097016553369671230112469702793412074289901546045509227795124090129632632678314706902520105118290864047353554899745458794961972096358436469923070710306618862273647359559956942577844134559082817676370837007877704847509185877232086459999948423271539061163332461619770868634628959062113805152033530934741997120323932148151292976627704495915338476991602144487562356711725543882698886141864819923203050585759495038866539954866978771023559525910698554977240124010071121619716956510898490245852624745609091750517256968891632106119590677860754327542416522863514325357552062298407409609810143051133726804711654760182574530549616375757206808581216460449985358360346787461512522749647421496283614944697332788097738510926531951215700592465494346879762744514079305569734810545486033877955245744671345135256717207549539796843135780279615002920950606605779788998707033097284958988311848240916612463240432405647972571204713049040962523829160567442720909170705735022224850315603220602027687320929312673115402431479414857944631527102512546067902060594123939952675599693526309825589089335072069986001899842425253923035154354985305139635650338727543155828163049624882199425577811660557272051696431364252369482259216502522063741787214691797630011185634824983156615545164820884945571456422598684916202953257882954860344452321837760855604557400296322078868573834559014309027203553907675401727294698929805620995800467180822772563728001941524839996229696410474142657731176265310716242249670846099992379149537803700831782681736041634176648391914157972630888287181442727001815907878083895073905843273662739645981465286338960108605839738813537497174105861847919600362032452288659766991131501232351738024258828868311590956875206742755606507726561200115009060717039332055751252068990384438936743597889816536560555530738121997149270913372604650198924858874695711882332013985281045480185023328560815631845685643405927003929460354626995214116503734670600655510946303409841297563031474575031564500553568220824902803396973623697001334300174018873051457475505963912261866109027985115658705132342492881799238929706306801634904791865449116892376026829109622641179683537853277154979328215784021449835673600615594887974578727566567171539467318215747043503395215145242463217943609896530220015376543979027743216341920131836720080279636550695808054314497113065477954975402673523154146614260959496261310977073270841727082014147802632905041787486696513834869609898218684639884998550102694105214991632169579919770350042803023429940722850583432754204915228500986218883887379762697493006010870123320014432757683064576147637071062640476134642459546486009859080014478040469472210672416046534950568883258185903682269023663900422002537607680954971343178964241974003123861209444214051055792323469283740045777524338356461105396694963692234661896266485074253616480511348807735414602146034269887499584865940318538510441116022143777538648330352988042971386372145561964940581522325766248362607487090603811393455343290855418535084138497582608216245271569521617763100452838843876451428407041460251022423617100558223546213959885740619845424082953015351677109494370077453154896090709312670777143676744159513939867944933765240552104580673906238010070170324663178207653295487933207494121831601912640196400405305249777522503227946201129840223871528097736678966271319973555563069200042161549240011528486779732732324286639414426193158044299488500582300545030665685911119763179227011695667123855201773716171746350901469101044722694425318620658849237201154028907201686761249436849419880512969795606389326281914949602619708565238947423267125466566582963982431399997766834222540322681614161224997000471947790270326072019574827420209856911102608135039113436572754782946049500035604095590120448858317669426569432100921547187598553891650441474547548412786578107463248729889387418295751967822955549677597822374155167654186635734625961570153543117887950941890836300664130046818734087715059777577375014629592300984846343593105656473923955580721970949727963122527947844485902662017526205206687005213748144432174578695329065249782337127752860255609768357274260030804255849866143150061531048580921602265192821985982807409026509077984314681527319423849137146722630006746452680990219822198018246984292601264264208747315729710337616194963092347617872102443243728692809756107341162133304363733580502076213235605235306173605754495565417256653810399514557543370855076031179438289221398637299573056605780178168783576351487813538552140840442462926265342423271463895859698011024362756845061425770273478390312330468286163313002471996275198355892101946355351728121985113233900973226671889264461237377209899402542031297529902030112071364671034831426481524287892854602159463455237928084783146533758323318229005294073531218353379660802240564158271465697396116384915061999345433779444601027265045436049059278618755578718059503901438614970580281903836331800892528477197676842515344716717092080840115138783794516071882429191928018603908080193699888133219925941234839194597327206554024782103658596065433502213171998215818694095139525829258595250907990330380202802263255331243865607247766840996130548314444609700286155140962104210860329870151606875583610612104495981181344480391434740573650792110522977527782172711779408671976210642726216665423149460670210426479551843747320794249918426467421534671638120834845307526786844633420574236675237091890969016664752912241776997984379286714036513182843821839404865942285964678971434437682222704958058389491027050862582188548654474145869469590279709742445552996880686544370445294514771740857029133530575708392449684320490403964666077305881508660970279258346090476929265003538449621259322826827528338413900097154152949017730844366849721055337413916097924617050903742113118655556882421970341262894535610785560253548632794783989861151955251495243316526099103882558926664462051436908656829696175078876660698178716494615609407744381324160024394380592286691136709827123296396902755031509919708183819213555327761981153083663810073982678017057288011349740664455028188826234342997710826667006038320158922239607183252474784889422536301897469460655035530287514613896124189401281433234732899383110311625915682924692585589338036575940891824895111482160072830556127103563286513785330834455132418982601015947301906381823386965248767402823113545430950998631286837105570324358917869133809592748306382359530495060393256391297288602423067016190158217300867132387624877862169881065546167533386854780391414637131328187746243651503072698755024378625289561462635529903035943471298109706790304917232397065516657978234992903612637665607347288903051618440365128035189728663575418358962537008334087587807465067561612010057106767463949885135834571932115418752579242565129065402525112195393647630455737671164755188295741610901767154823399003205511355978343006988670126435478412552833862228799609625789769456637447761369932759422205534299004778200229342358013516812243704622473486942123193983382267299029084890930344627659767104929928846576184223809085604673073989126165468340959762223070355261686607967987852953390913127478590213985976555540015203048026751833947172670611951298688057507068900130641373046578192247812155575419369500390549394260839198126526846692686024781744956922419247455072852646864413838044604812487097049261297527561085219541790549218945691707947703235530537947169575583963474065004571043123289022840098595732169814456445252198111486060807913500540478076938589031467475836620882938993276425547453217809132684879727946561565089585237888769099152466799549165160031727569711281455895534904168397486400970187178334160934915486660010002791661755034504874587175539766147464302460235085333746661239938903319600235411550723535109719247574035977831634564505758827534012178507764046103211526373163575722953520698160507511338913595193156488746530022380026188870697451967209607650016310553644891339363131038758215533755628675774310856295363213536148576424742902298284477174613929708742242244294426444033339705217995746303777973062941441156879090535508784629417235827195153758536243293926928600976249187574196083472807553431596853109547595108696397581010394379654632857018633218477675272336207664955524911181354774180014697811028333977459878417989482357376731231609107073435964662130259112072463904879876013581731585327174091983650932221623787701949852773751983502346396359869070010828216787934832305141639645973927990710712820531301431960299850081061602588057648269969096616696493213887267979440835799940370123511163525403891326209416476088260137324587129011907061154869222936825018824816827319229354159917556702076807314898679135806151430106599095674597369824926972138818662397507809233539804608856379591583807864016329161197695981706599918386884841511700391500861580708342197553133257058390088473151710661898248008252037965694457894128884453955247190391228237234445810358567959973299945050107189258269505662509317777353986057636938411098300607293477972064358211147170681146768984537796233244011797272023812395094286447327686420840524817974669660911472586891586154763413223271580880630372833527664299656018713235702673892040613071846858801667281640659364889898384632952115658623966133556460673920015217382441985362199894732677297863219662897402936883880185060186756729549897381981110394816215770658661145162699143552120569302789206894301138263348824875848531875998076964810187412223295918475061707927751005294174604817592107277250621260960249049280246109394994228639699882539863644064545550762746793001522883261413207473272057640886469958853229259207040176448486644149346157495194291785985261185565138076256279840696150881812263097136971134290346187429098381136908445791993399410283369990909529557457786970203699801482257265072589642941922283599285279386979233961705484926624507129984921116297998304055098530897210796647094003968487938252925317107089487877516718541562104763646530472775323556320044363833741155812228880997691090038855918757524945736778074516866900477913857607547874490731759978905809700661667399505576243377196156028906798988390652235958488790947824882342491865471995952623598683653843593480448991790133026984812054225633472240490472102277200179249054652211923540493067377232232098987024206732849997490537951186238717882596918048718663522429871972786193567107576338899679284191246537722631850201137547385294644534592139784960781898491059440828358168075888421229348222983121805074605274718810418887440521567162907419232036127691268405037370518626303220722929465117001141780530055726589389202898293146288603724490266102544192945210228772001703383317853020975729250890996584571935078089173726885313007517937037853992328459515026721163107921236204346579044928760898468405198876891463086488494028737561726192456829821063953434147167724913286329089861683069369341818433714213863008845783636916200519895807381599527227693115432837784841633898599402480228918581094162353950605416703529101682428147559462883856933885779566764214503970873433876442815341347769533020195535341098228368683243637119719086586339470881434472194520873984081712351382967321187536891473198503446040952300974964534873395117087702399723310207188034090430160353342802094303996259664111960517453203652503097715904440881570704218798411699424717121936937648065660099218027396987020288058353701733962652104913313969426452671203687339316370185460437431867001149264894479560392509997150816731411987209327511182612075964365807416755111365544556221204419520400254846499811055695947148495274123906788449434675856155334151942937410064399282804583335552565390527448527580766904362557275126486654354913707864447927341731184932497650494657539853171367764111793917443020889831175203146471318687377956192875240221856205749431482381680359771608902779423246201330723428623746955442556778769414444039266411729849677491485470170327677006377560734069064726604506582559136903704389127792296591744413019171577605524473366690220517030017186428632258684763941248102719131016840502660817998174477807442570317799949248507763099536757764754552282060395902813444529020551765394811495346550141237667479563334813737022957705780009152722841597576298543418631509085713236450764459151852843679886523872422422512823941967322308611311765312777223316668087706816741207956372704498036538229657152368256457444793469978188355686891267318665629398019191570054464157003246390628911820843804378605549323825584059143856360439131746322683124681451406414442699063177013540014269701534564636567771231292337460337269197867405293964634546635462157193470123786533106811870242378085616478520958683300420081320682603787653905662086195563878156800393821894418709403448958969105566599829332651496799628342815323055224299265940432836192893608313528103124207634078333681724173491290049189079490132114465760133781174133437473939612634162064851203061879333109413410178935809322841000527025101066304710242712485160211222188456387432002093895784390711309693476003175458305018029212287586476412491648930540791687858501147995919792133115579884511783126374804043065759514814102110052182760136536445812932927459399510572641129453635603721051394660238929372950631950798740517500824807207448822604925899846476793403734543826785602110793357393674434994853074490977342061928427050164567177059654347199700094932442114628534472362243426258948154983960355761224500855527561216295815611285298727911575410254498554444296388371259085898214066383483477615526357719932711863174744860966930759447731714331733102955118289884157570667774050604745782893076732596092219383601884568623248540507638113208398726290580406983191012580069156957297356485730776520135059632069383513385489603919370784725372302795298788932164783544726898705246859914023219999822947888431564818182544443308975785397056126952798664753293241612636825782568555088465223656107922989944748633919586217415518059692443481316935919316110397719018009138564799170777401162519209238240953601877811721954142747475191001020641562351204949556301013195387487400123802647348472383819045491312687745536256705757869466705291093812112746081356241650906506107649607201785886716965058086922843149703402842796457708434621309997554975727193898378281234234072505274437164598585162924552865498752544811528537854091627562370726529437263517084607270139945406918791610390525059510222550322481205337588997224016393656169585041767995902818214693230708465728154388607943525322924200677591682447864256901050322721878213443677257074479964004503998067822110909902330586721063198468711274890133067353654006272623913146726765607845873214487282777355911913134235820881625518966074322129007512031723179812886247073949478945407185774648704925018573725128929586379845104260185094458641134955769646436871391943588384081299304107554038629130680385302784947280681830124012630704671755637864872805680769010322685955156934751129908595973759584155788121828028551328763440314902858356153715821746405051574496230134211048801665250171272692806097213292527143272775918452550582319860069253232150056830229013361753795930561873018803838999572194664933030487227689395022270871711303692928691676381803254845033725000347137905168506074858489006081019118550092857448361323363446267873600947729499148326067178245914045752362233158253688839888964499123315792646788367431885971578094087745273620115610927106649220546177993890348355804686977319125247295944705651663225795434406805253468131867693658867562375198823453290062818856076217505108825065276960441668190648977855562595511133783112937446034434646056242380639893656581774441649868406297302197897998311566381993221851731186120556394513795959789027765134310372772338724165151413143841360331778637043435801723682294482013197575133814961486640461886784874120408196071140324224976674978330907259616093103596315405521587556001108593259537236980113646532737859271441373830878249740325876934560420068079554418360421387737122721672773511916960634554221643048633221355814470530146057215263194575543518753490825970743926305809663451321226737164796245449080333109850229008922004743328640646926178279437321666144843170277442678082573161302041629583689874935749968985870643775244993420838283171131963731350937319019030736170010268614637098461738399098425584784847410820667124675300821847416492659873423660969854527181863982869968840236131718854973301028975392782979419930526011260895304115408897817104831164121587719736151600043602708910245112383042094710199293409389994310104262037129776261261906270548435860743197044967946607541719478727283613228131644120367828141946727796421999670641516795735305755839783149030967667039940903177963283347054691215437128973651384090696338088138099113679511140329104043122667172639428256665823604693439014085841959844130337036977356500138140508625925622313809222246116065309825240390957110481258798182189555925598040190573041523659094641245951900023495949476080287198924479731870669953143542379741575723431278869290542768507490146824657912242769874735667918233676513897847682317907433787898327938518910662232806779236015363128139934333281459862393620937494578618966544019574485436567416919163721100308647028671920241065460219170094761351702489080726033772563283289355015583581426392537086996346002322596301893779009861095156344440651687479533315033952284291182387075506603561984918984969208779830648433165009198666198315091428726553551916290213787544663394817070791753391035741645034226441841911172551119788448122739093363433836142393252391674926459222312129506560346311598401205598830166744658551707862735054507950341949519919335715418542820224745783364843227959434677280308624384600067108969171429530497972441284619664171057636181546696721037310643881704615178216077898152845485204802247914085624108332864055145865628496719440228060754220236945663804117658783443859151343284182428368756577366454413070889779692614476708293694051175253934300579659636534256108256458195199248693112440338586277113103602336185401577229305701263440746865165354001517923027314200737578359353271782201122283137593920828409350045507707892696626970138745682578410374921003416927790690827104625999556385823931822436277019976541857564394221554587152922774899090298525295071004440619034944293902569733743333110678822828714814437170906597997104284481364965107554307122025877293946774278165780710863426384755815943730837147899566672378255755208763657667193226558041059678010335087680269820130767769326249522181772881707012445631182469046177657356977156700508595695199668169835482505746847920502760060454870763193695810762216475695132421006711401451163153079711587905146539895440391387178089509763477047383228293861722877804259703045911545644433663183218655274197796881328076718854397443005234257278792113586871347901175722130979704406421586265834679817274026401302522865618952987659783907911951108257139600485612364942199954642389483132303225515044378341042473159667673195443292943932628996496397674283705340528606021578297822573764872340126737407512961725952083768475947831303714785885350737763547949875519231375276197474860335524092544058453704774583126928325883351200183792356909992369272953834034897980822857183482269563263838993625002184479486991407085600685645852688277018716302198726227264091955440165600981801957150221693914478528343951055814668641948364367404213228207072859699570048815739960772930861424939989740721149881672728061866145725263461374771801377949778897854175275420919374667951590995650290845922212390498140223890521524575573547628192130956211037367279790868318612197128213230478481293367857678160953419859495478553402257754118456694446641219139206046458126822495609002360601577414917187770768377992202116915496518961546115388224091721654774532161276273731620950766656342672945297407715571909992764910661136582480037570691344073526173929784298882592736454546260204236707865470227108311050328395203556325284109940731565523601111042697816520457257420588422838443850447191363331849148826893403585699801854756533412334977541084272196465978788877897383308867962361527712063461491237910442488961947303412951839909333104882265343133309841754626469919459912431469688284433719444884819830718278249117083492224246837864599252806190900024265544359879912949021068680158275328852663000920531941222872743845174808379841464791788514183132146166714511742549560926999428692026487730581844560666166374034303479900742533922872640732838913269572234789520775135267737893152992344029312631529006217145362332519521753676109150048353132955297291461001669744641343871488412743967192745232901840732425576757258174843289818689170883671102429848634710130813986731054215180119515896616700927336751807445705694084052528115226103103678370073554513573054234404631392922922027931423277220859214379737184932439751612762168434390085609105620710421418730797680491407043891062209660626246885680822490926283037744205064457530409914980503910042032012706807938243626471630630584617714757587948135633738456629264284410875374052366518039841773637719782495424677979865533669951431883933682553758530156844262765840022783202356367270264979520028955016980930908509988400866927036730800560107696352623688312713666108941176030346863161898878847210961262223384902510363650837184334261679460542541189230254313437520720696845539941197085716061731401717858166022355399734064663081521337519901752438687137574435344595663086101660329648787485278587347458079943836113097989067752188951821360770281776928565542363617186617402350973017406296932826105216505912423781206242371415292640397411947027160714518126850893025782789247398059959501975828646584845898698665075147024237632700399858159839576842723739358569841416027291044614590319057768026930939605366590791223517723258374694790855814295198077744673180866092401240987223309889441770014263054657576307137357814388643166497336116110002932436982419528949843696390317389236558167840572502483158311365962164517965816104569305691451869856771108648535732197029972732054920215142652553898034037952929179305973596387032497874239899923376989323008473513549681174683236566151672496349551065138327457395406893711960661408662086641702770562394144204941240480696843969097667777716797297942842515973968077026827487694901782215572828220115655032857208463951316790307607179401932373228734015470121215088747237853606436061161636112642571755874148545179365498408317442247721207661218742928165205915944257564585132432141379100739484730293677630336591073133322696411251276723102943920245827717802649837172647410274508986129452098923652462399219189292774804625147731615135857358073996366557488384011897353400525695599317398425214122308031847596019088762305956132212676757991625114198039562037546137797987035613115820739464110423820800958538537533980518964570871968300293745155774342514630922200797642166821267292392760107285480111018406527706700459067587467066722483459557946767817524249290460142943144404781398808472856948398608053344676307544994841023198439677634416861361289136402721907378251257793832334298558579541358909700789472337011121745647781678076230856058707650305639620260036020429363828757811677762617564187663903418012223512444442128794339135307703654161221549621573998915059766564935814186500118966439256338673236828733409645172365078582647732597090360510492243961464675527330642531699587204500411846267046950709763449383444911970084152355350019805065140744242484246691977626484759695695028862184647480954800599570427898401169905261368735088291037158986322396435170521846444528893192230186855282015053390629630994312984386260291761208641800565121097362026352580406114275448673971135360046431255475183215286076668750382485510071966111024973106786121923038168357184729436157803318745702652184207935955790036702885641288442297596338006743315615223776830881688951072949195849783295765301390873756511009907631699840625534244417736196831791693530832176135989664937419306675156352000278291196216315439653268531982815032355809463079354931796083129028142647555888436981854107436951792291357274893386003749122628830485996138324211124809843404155060386395880196554147869025052569420243360606330265662525897903353837459905876428438599060639691405062330618805058249000135242197746728819981511863797591940452685316286961008692801975900542234790114996282883915316414994689051320549619626820259621844937486369690957095469881594198762556042290130101475669844098181414770636556727639877450162532934350537370516168811834357670944979937316683275602735472026265615069384751411426755213218096515193006054414710774733135586895792464987602434140077303484443328513787354209324967231143700160046605646182211491558049497658801006515882489473545723582812552112477831086694453485902960507714126270539303860379007758295140817368150814186133836192739771074851408833727840700714107234485471774431697764833252862925262809720156629821202072897303178150433243576092485305044616956471941149241167482475855201240971529113174382555883749738192237274335552613031760339313254506595762131062956002547636541755578932204562682434656472855361977735122049125419204710109772575501904285856987986401372069486948489817424674343675263986044761977934401795806927024338843967657644481608775162873801345607261934742416350899232647830116600798623241369601544369946293126560754823926852536430830998381252628487219068575999526371272425911922887007923396777649930586552618378175339306488151225853655193565253428400637224237536950770788548988939966919525084969588583473942684585412797956853270186198576967398882821404600201580639353805719535994075104103276967772632451195855148928400132870507812418456260879207534270042616364046677989865739440319963198566930064460681574470564946161466881442459213808509782937219132028408219366092080160308373467348296888772049686332440203183269541834661923752329794953159750461594911889011614326894111463032910040178655560979516421975090007692529701218467496609096451839636537301272738335264490449984076169518087451871548786256105520826013084913966806015468466247504141884078079714892549157928148441164108991332763988544458089065324741904791611204828511399925030405153854723640864005813260562708938604016224800753577974524228375243090107716549435574444621694438782703136483832268748862123739225709226928573448798634907087350320695012586502894439973207883464939563630387306213488282132044181009763932762711963068428810962223800993724771949087130135957933445510925486808910596009034838908548063306125374929042259721619944941823843839079673065193208284525391922479402619990098322189027755624782589442441668756400530550889206908560774813116766475206665526318408785089480784623987081485039995370921592583551618525854539904328081465078673171608528102637208167121461897074726294568752083293524605278121215613934497662200609923650212528956058267668445759437171096442859791018594039581760132663631711695301962086788381336395804052462715569453072518920042836328240591204647112600463812075285332993046607900737702155688025839313932335491403150445804743159927323654330573407340489014407685329336686660688093104390727362474290909772549172974517426930079573447309083908151727675197504468243506514500552457312314702254597743813848574668648492517062002457325125870942165432214171792739325604014838017652329920514584328810118164468414742510888003119998212480893572906027837249028243383780628067399555396915206442314224225611745588717106242227796870361758477079493911351516455182720496349277253665016694341815703766477853321199880455966082424486263619003744451870091853940569913464530508229076409203127779472120180960913544784089245827089459745237092788518622261265192382509782436720735840826105896494196116391552615717936380405541355900308296878893571901573906164560260276146536386794153695911403767267433489847864717957224208526650671190394757580791623111040324180887625736225909049031327571027712286742169939228802465152167098478080280503795888559857543701684153999165002456719979755727181336699692518327453679814648720491498803308226659557626714051526935304582842811077759203029072627676915384453782291843246231476366433696059673053957660654400728055981574004516574036586203618949512550475444043948306399496267995603523145517725676929319817684985077767988998618943056697496626390274608007009624355197935609768328789936814101130708408287415995895323413507203657308544257685343169201455517691425509406946613432642386861818588326468974507309281110070919581968828498209368399344351276298969204806919920219677873975493083687777777571706109252624472187061525106511401579301885024537566039089690398847627611117164017822513085975902354591179891937081141613754827754934195306149752454438267225724304639530254729981635973680644804360536976246606658642026662678606979320972519820819865425100139664351694372515337392583729060014653270437230802912873154586653920170912580163825869905369685700550187674519903944386526749469763273989242477086988387737730136821133706087309770867448925899799344009701388865664410722968630853239415162978697634527176182190732238119597100350174778957430843647551029680401415412141093002665044097595492679228187223697216299188765127812498132715371427189102688303825348638382310187281693908273624408436578118544917052904173619662019408557001264773848717369164744794880865494678143549541556303475819678028733799591174030964562424542595111885058915043690963079078079414348319183617310450183942314172643300327161178158299643933989157364068763203045773387443075740787161875354193588136297134216976896496614502540524231230693672811814778131514581893269050101208678111890030936473676927046524449571101289662765036238272772295236553155290256573133452202002515493299790795454470638189598557046225825340029095925183537333693817223429573161415136242629935828616166059225185385062868422766794862447762636804454377582970963872788554969877146726411940090729859204332772787480348666939566234407406093730185693117802459046994308151328776189481464403816437218327130527059480999192853873454389618990944145207386476324529266405884766664358923673595340628716010875436328006267696591109437362757570710779218879301727139636481410013841249543409572177123778314682425119933979564326491375255455427564381621500552141300212074099952894296685176313845976637224523255054209705529337240535349725178245942287970918778862929470895084848528077738144785064009916687831204986060233415600672998937320116144806513186845943475323671387253380060212249371882857886377049262099490872792522641106003931521399449023550602806479678200902956685885021667520921790602554265737294324227984554529811822232483445373535732079979822019807509886866214392162441254799911964392442110104268386980412734580900368701285959289566514616057481212206196501641010066049179813381550343098794375699106045975844445528846456270380266016754208392325645092849802928302020737542655997838869548239750995602306679087345120334416095738583637316554278629843602429230907481137279358982722293393462226912570515408654138082302551525283395357309145341059726082422514580910145573258771153950878316750597595653593818932685146913917663874175091192890359920387997794097149911325323648457054574353224392997246148924397400374891340184263445680506490054074764160897548753936938053752283577418656506864222962570487178707625741520581697759116088279569137991135487014225706768219895489867643208162113396654226823807096147358544031410211144402750607822098770631726267021287525069013377887997904501764568937244293968643925969855837017921672549710232608318418733161302423460606186121810017992044497450979676356122121580287113295379121076112764646919043142287552094715231440125971742214671365218747381260505603231561682849409439629687265337922924782381811207896216217663328399796040229936688236890606122146565527704914032069098661214806129273560141903428245303456692096329321671043301185713888090199399416342928645595530909312180005789719303843398695430630649755474563517502287384441330245920095298240950459597688709270344915612672069631870146035248272153271008668383409688894902382786970721817496058818059243007250015758990294882260188476599477040403914382246404370329486530697607700588155652816997505166394475146576010083642313494131122639695794690538376183557268378292725144985840155308616279635146119200835895142985570115517876139621382781435333837875886100903335383298085256784441151277048293339905683599844634369593068527885941534768599377259889440492687793499980591574476080021230052835483998410771196222857278274606375137276427025284633597426065962650683557419499067972392199911619484976035963889414204964554178184024466826359606394464380828308029000427006697707504515057818859577270977400468191381726453673494843675435872989476939104456721633702635951381900859937120862496146614673627636386494315136317809301773536363389785359378849227661398338751669869327082088373851050295907243885483765767873075834673955156083721506365189579855309712348571433313540501809234685741486550028029637370017262538134930020586954856473313185943403952400408575235205575122291592126511117586061416364049568928591233376033296274537655368749595089610829491188181385891973056312590525141256732933619048103721318541967830213615665251061811025064703175137774605415917149957942504690473305624015963397707310366384475136851393870138493489214276356254310750052428380220027343893508259709595357967862015415848850788444883925078322522977071880346605707890084036754373721048791542727206867266799547965818086952874367157250187230068221981910936383199860488151503824789591904073133011051523671277028685138105918114342529914136002342064974839526049566255569297916653027598834273557350947526009301237176356917009378055709324919115037654976318656375585094545810079962703482941978996628890857816618549058226756715024263427063546345468642335877545605125842384627141678079383541289885592978489196263762319812122469263258003284852944552819732259453953376598371306094772288224278617635025176467979419361956679803516980000274786278771364314749190296359821086494654293601544366857180781742891026009001144260241510434132440868231084272387223175167477823252272717059741719440403527502812408979009678299863792271932727032602606729022125460640361216929861731333836249345596544135194231278152953145861583480764596463722884174163898283632224135310131156141057695138577660034978549020269916238532112597258313487976824179863160285161867279234021320793583937459000821161311445202370851749871623353189833748044903842176022179425336806617086954198111583147883972996229976313916343512978811244712850797972736462065595349460648836795071461957066552555535050443498887422270102574926776968630797715997357349492138620865495619861585100568135626916827616147442845641353422426266872345990688437805141676122496327484830920445782188224143877089160561996541090786060439773403404623943141242264953496113161660875791228207730151428524935032142578831890667482663854756180770974063348989370833839458683393759559115047277378120113978538501373069956382644697643668330318548697881587083930127385799448103425352472797580085490734628210036207504139016076546273958108387022136185636112552912924000918588236825705295093310257847427459957647683948752590600664485256773728408399115529822879770955935774844832842862273641958243680559473527257331342580959351062900993608951184325657684819043805442800728993106199226980315222413208712667210278718866341612195802466321566018694034776582862592322158807091669871416000222673099565943706694059537445364473292798482165786058391658277142319797945251325237808533741532556032188029555776961797947562733911517184572474837091136361143246032653506384785081112701563618212477042796999382660102523474337105310877532598980351692715205567123120016266180644165049556612789009705851062542268304160054555546944701755200363713595233315860378562405315354934420547520007151926513694553458093793003794635206337586934853297693178945559260946537570038474694630600356248694983841514889304512662124627499995227412764791150083615447500961968383458959733565989547657629659308433227729959413212643043469414512213865724452148141353569055813863016998627484504200207052189916307681676091860472682255633800755059719401211285282303739910520444413781097292301622764241300104725331037261508567904826715734994342646895647084472247169148934136691273041021954473506977655998617519722033862810511258921238453974714279350534877686700290866182989662763737278265854803290493487909901315511707802248460307360625284372121414900247239573710614342853501836317393977436630345824407037416423258822880259575202208975438300173378715136678119946465885913989958910244227257421638096705231306267213800510620017992886586509552909803727586380863972800065294031438317440184997689832331141800617529658618571418645669879012730880492862730495067730724257778173762445499664181666345593422790007741390305136468779194864272722467822645840162505462449044998533341823358342239193103848279959866115299857205333340297610609947405591891084601674238743337580425464585217578517716257405523927291441278646953168160738026269638219259145365231186558975788333915483049687105968495169496189016814846909418910197171846222472669126893644070674125852932544218241093639355164816395668508711012053007416327646412045588644949373358112046438091188462144466684886746287640361512203658085912629086573387961446710914331688168301821277712994697786017153032342829595114185816840335781276774974572387699219697386770738329299385909838856969076434748228351996177209684124342662435014545743663363085692413925941474584038503011146994472748537401687531874138074193257228376062091146864255682970451353678309857767465325123794417416563378146345238365215308683016852135587437748006090405053622729061040860815776473707392028401852351653457585623360881995897077593475899283847809894086788634426979200203975544413791031010877295105805306533796562840588092600432527162759826798588737732114789120091876973177075588136645293081202977618258832600387778845621598839219914914969707113559548017717458365859986377740856688429715745052996471281510753368704926596593996775406942731071321852117796549701640854647878222802462636218840232635898328009629418470124304421041647873201475045615365595495741767263408637246364914930250757726155485618564780389549307423979919363468545132537730941138765608037262740737646867003543791503288398882291771292908512754734224052572621859742306468720017940600348999360540507280869037365540495943867881313567229041941114897238101533385238734912222019394309171192152359507475454062422133948155303494761047247268314694658637651988241895663270288737650799096442580411053934854446052070180713853529191678904636838294683824919856096356647784606883552774982345362507028235363024747692560643587477454604484404011310410985626141433356319683378726090147997630518814168312881852144968417292479250870369044024276572984972088186329147287314439228580932234503361537041153409234789804096947070421030703512578521618452823594322421313477435946429729837658499757256109410507902606716661946886907735096016326215829690690004436747108510759506281131972568462495839150199682396888450079638623791931388844120800149714218111436836729929619993134108076717427297415363766537723729459812986910553024108040897327362747387230220250244859045378947483157549217146004920307212269920454094450189168427262938509898383236754734209304988896178130318404032470183414855837387069780501172318224096714913309482269027051676574854187673521928933306089119721865233803138042645557827667123303765546851670986347795868548095488144316842124594641483761649810226175248253592771575952961373534431947466273658925589108114093582769242930016711112699872556413037403875387725580459760543439794667826469108754703446092078938828806705592411257156119345992676108529362053123143550880453726632259727800428995556882248884562720346666974954599014882439830974858879975856579343738483079488608012395919137266643041169185384555897919876793843943844584011711013479363496604269815883819263295845050793578995267992604954054802598749004282313353536595485479563260772184891911962464718197365592764382421063442260838582989970106842410682039945287045058493907558381481020817672580649530777938125401942827665823401171711515195407177011664925764820709963018336526942788689255940756852350783462082584859652997835501139652458107374128315426598158424561389431529964984464878314232795688955008975261414507413499078031259505769126954599762182635885821527462270671183084379910523977828899618736047532383571418551506615011189632697739793188207980465319595376417696206921858793783048818777864113446245328858442768775924810398185526023439796709133742408727455605877067063370860181329116711764430663506727781525761871662069775424184688655140655627530032131903367480750078685887594336792464713954355110807487904598132848825568059759296285726963909409446775434694919966619028205083624956572035859574032658708019306925096733529195986033502102216191483309097099956902420075867341002699236533838776324633718491203504204323351218793924723231790684660820828181367287265714439508482605055996107504493056448647852379191808228773578626840061239903164326225185690185944383365295053857058110697250464958724099560238984411077028461944982678207333315398514009302544048822342330744602041848493359273565596899000355719092447752905551923926741516889299508235535697137344420685578834387331755307443511099124991525151435378203729546186672882059632528153886885294653446789090887838992651364815321751783493326792104552926516687714242379800216400966495585168847095062069486185790177851772282195676290258310690476134661540707652475726886019784881690087098834941864336972738983574395864386957641785716566824301802906009871345775567415608025936344397077225726322869340762676609919317980241604434759252962656740923711476234620472055353184497518361523746595386046306750342288319244055809125952232154587793715946158478471640201992238155077208616651345247792876628236559976138726857366169389268620709701193709931093830403086180303699092055244747859775455356594130217150840076666273103552666251831782242829372360618767416541608220052345739964774427803831696171563685274765946634264646794824046109193240581665972227742471076798139169171834509901895848815534931169370981070096163208314721537059969530866425000191217001278178183722147293393447412502347115955468650959788367931891425274639499551929973082145611847883575791052848391991528037061879770844659917193205468471564639363066135147585507374034224289986030046082661646252385606713042427930613463321532999083023835510785724600727228904369555834520374995842219024975549103667817308484494945969061672233078974210369370121131547184884311416926773131099224147887291002489850917883563870488063662437507501669548597413991695196628243184195490371448076921179387022705814216322626452923817685100082850685525665010277298880796716501109190109295680303821554309297363806002151375185931610523640179462158353740078835446412301869477591880083427588528927455728876781939946999075273588396952580097898329582413231306603177410907180777314623114798718559309271397046206994370706418601748755973403014873191277496013273731738211027110985895832282917539014739916935214068665081176601519299274795175034745896058803543957874776589449662776500900069234265965668827395736311585601518519622651228569252903293098507575668112983866669288236750292867168279713026177080566603271876774703882757028796215482823382254518796043449027250220989101839054028334241926127209036581894840970213713465492336356401843064801309693888252115107966061880367716160733116390442278991819739625388110744696219940659359748337336614875429090943757615935866188492166875265562875781458539290816080210060801177392138456984793736655461414686405448574158698702348902230745688921332198866107927930195982787698869593867148485925810394882436197193660204135279228667281440215803363177305509419237752048813413465101662860202894175710480949305686309886961477727337439519108086383992751319003196662557697972046405931961203463808475689330031434432050561234759622732301196073141553290366542309871662473430961005168792676902366327407315791708217875291014134102545802454145930619766298408352474601259676009288452693958186742999347518937877836873232642577290584902349630611589967888361318745447796210360929294620444891257541721266165842346126215590757891906357647983871905566541830070644570079161825628513297418038468734831471795995789250969990989474091019894250647100374747867888299175799385432058565438571303256515315070361222668316494319710766472162688640282355611566312278042117395552147347818046061746115319973504919912970787659430100202543662013119211680502519402552133118416227244196274824329412035883246142823268750394732496817060674282120713701288542307635245534190578020749453531350542171428954449774113815427940810026341458766928534599937433045202554231096876163720872449939125444595746809665741419362051410502500642443837242099394826945929885908552188177221453757650986256309702190322871950530338150307909843713393547391573444844641629524303630126937537189336121118852476165727195904807669109640086494527415216982102981359001733620620824026896484161559066605981800521624172241045177185003188197882268782530133004485274595106714207662528966802845284962920294631580130710911707580739276998559041179882709816866270810470670579997193003957576943783472383780340266807760601936974994598074962029432003894878071206935157873963619947611722602536795185078655685601855069585377761815549323508573376765731162027933414905419054420343171679286299593837712943538508828059272465328109141290668203272363424683972911596831268749706112770536594639344657959290644836789932695566483464640698708554136498772565402733089710415712225710005910749097635695410827660148632712534220254393832670217404873444102544684212194077782608776449357892615587903810149675933345982108984183603954242844410684819256422198361829050400071934881665527031374370583077803253155415469639598246741565789010348930106386062362319236024527307515235150729940323770901617948458255882437128714744961688576421425384141199430203721910528044179885109684417636014841818757023976416117075356634552723388129703858484522817477715869615928992473819338497543896586487628821744440085812024944426340564243677031007993109117118276255008154064188061251414187795988657111156434043411983726085205141633516846424808748631494800991032774139099953803962642750420358250178751644763191259577507728853164338358845156855101827451651894646027740804354715623303041408475039091305777561730109072664973944280147746574549690861195300601327139486563306744240056070893015886056282435243527417954031573759124411709390998369728694232044186525846917573201349669977142052668249405571051621880340196194093510655988928415021276749609851031462718436091468048942192724626433815146653206297863207211891178368691470914068962820484582369114677122974547111879217195239510480969124396925882846914335434902942824329463309792731786573629333707389283252091287910150377778795389362773628347403075979589978779750852046097701484635685146114449960638451653646532266050769796190957250834346859582399904770332003829441213591345355247029013366810774650975965451649181012643609911798841959397778271782132106397043636239389185506461280468471428047449062346118357465107464229713520746494852325839948533227636307296166825951644083004083589472982522733339217826198046389214397983237780522613901146072924743113903236942456590970520203999448837165939923005114735889331698871159383688597070343459941361141524860075379421928030740368464753515909560265292847408175618174707940628179475481947889513902372592025051689003185982326637555252595140957545507456484844734283374691728385987372034012724920443301861508876956448763646511573920843546536235230888567083341674056052239252856629462343059341314014682737258580041922242247179620032047891346099039111764146232077203046609591126693748611936676850523276075821822236343377183558568252400616764804986954048567044201592684721668373468266195329762462175513298119183582165012353765145156397910112908628490555369265715606122045557370039321859659496702907564664092369395331029021234268752804506267595419108391254691759253720034786595413105244156638604301977927150703282071700907840330602637778346471666512844592185767704800954586352825113738889691157441172792343121347158016522936242068539263674253088276579400964530803835821579021182461906116061565768866767975420725205119934964734942532855244799717867454959620535143189646515215002605919706968262996854202860792966645196180385524583199302880828061773716572616915918063838802233463780954215956645717658229805163086601488415319963645550909117559840838299677673970019979899101196977483222758393863271996539906394842130304768509511626342552920063552991974872172761259288230760070897561530688846897093823850392304010098746822607132891685005146352669164475060330657833306960102569884558527141864045007667388879592744127128533038574030217249504810654121338152336895787904324155083907224392690579866357240797921568349381864416848579354264959900304986196231297230853014952577311516631474372109207576644983596980232201216647352705756289838093920403520726119182878496238230460091887773724343202663224076851782079923493893990386938458792959460435620291992070764238873328689102197933430136442573475043506321997044079147179867744162094791375995699873038707590952758095578069318878414724078653049880640880312731388553255480111300455025904603685258742179319925736220923230857841948688298262212160007886891444355520406772618791800031883517539760793704254554363458792201965317416732116850354385900056710072410595714764279102872784710053255491660624909644994928944822791332398722062635397155774595056078325046075395485001902165393666682836239844465729836217415544725577953842442876457176538676158868773864744980760754538436743846224488031403449681064604442682910423547508664119227723183935952805745880961468766697910245440540696220172739400021313438827633313579270060513458382045180711751908120567480501474368042461488873115254823146409245152306503389134580592126141995879495252252633224820416861250569679884875631793290183980275617235858679607212943770420268211200963385221537106300366683459836042711624136175682050276550144192648614796795998600449577360686936127508554680339113237126177643938488715556736708911895580872851756172437133221109412805924743594758592322563628165026016089576845170506190420387973281119798224462189015836732446101271697381649392819051217469488308000873829732390931534855207554005471670945052767048281080761949223747990525571178991146599361174586063642861906344155795142325168609650932297052653947382052833812866500845102097287111047278024366739461103268815599072161290681378446240024847423470904278445354476535135541893720922536213451799818051811824523624790494437432871196961055185237964768894910332687227809933197252495990578906760498834012449643958358805821206416812373591392016439436852387204702491422744952723768382376751977105591247536591808159059761321807237243447346834240392648746158208673592971668035065510196537303326320208936411301260277064730576404121113491972775989693113776347860583048820313085591929674515837166977319722780137352787012799631247985405984779409471911528389464631277610482092243212774100849206405828121894708664586985671784801006039775055682110879380098815029041016835067474226148860513365451966549283917367707941731370600930874620694517632393133281320112651009399803823110991001522836699216915052056020364857754998893480669710376020531020219674334888440727022045754939383579969826373226915495440692015653822498467356624198986701926516754953708483237382460894058523723485062003124965357747762314695662928525256672089547850268657109288483930404333978185551158646791249967312358790187421158003069365805121628623505061665082903329863934543964678367575323417957049358143095109605165705512738575721078003680664151124004381325138610465676879567693009782277182264102561786773934265950527544537555715992819983743035367279884768246183527207479618071998768025344324282302318259672148954594185677581145591181282084443884415979135060570246330007121445808765616908218665046992139032654615229545021813491091733210566433382423965739942813144882066164139999929297462495927110800298406705942717789958655814014877809431046603610519295240360706816169333605928753726106037742351536072127299920677413160702765734566450765463279084155669061026327148832678606887276599740620222001607871712585594154525618283414827623859906021620663802627315242078420633877947266768789246788369680332969186420828585971601702558235540258160751933999388320067134403060957375423449894443531428354164861282591025293318281504395678129322396363227304653998607986682811487779774988272095274004694944281403600544644109978613941019730611870285640898955239993738255997560178634026502490523119255060496847571184810255409838735932979194157746003276469107090402550218264001295009716049964458073709081634377539972810999753892844695209606659276808270137633206230438486138009165166412330361285980117963930775738006015017259015306613381373859123990628494345924881818899821555075716392250710323065222204302023293798187322561976389655092495046403151873698892234509370106480535109286983336927994604934762539794172012272396590616200562238600135527577467536625966781681585725715871975136256175557038133737434312900816374135512740471775819578796711831744987593709900852694961054383836656926539483951630221409865725967246409603056509819172728462165867578107234932706488180052499490888499833661593027624339781524972709339345687142245908740984513244495821263314375986066045928996880720362388027664821247798062956913484841040338548672009342536261521901938999080512600401927626545696928898586323119898267977424782742822465564523108333481174000677851215926469853286996786069500769871405624994085919332144162821239568397750868395254603270986462907405484196065977100921571272511407703243028952151650407941323502440047356759847503701076973037725675211121877796842167202514782291585080905273093824907179882333979656990966085368531357334957007901161428876609904057823645719471001047884428226942852397715420557019142309145098689310930601164425871179045868357289251668235927713480951585096875690220520337448670246735386835755092898726074790263503166815172914306569711349805848310269558548392485006758099260442630571885382573317509192501646022345816087943619138345335546379758205923299879024721080434182721855656008499445741451872217281152016955893428450591190975424937042579458834260948035947460055978945024495633931493974732743083051126735998354017744006888655315261949685835444265549921040957662908241577775954926043093396195526834627777098515625297744214450623441615563888061001699714621698849195230465916158458491821652774927967897634498332382547766084263717329570170732289679636046465560835086758981993935913887217776987543508435186973413913163557380430279116303861761160345862910511514289471625558734182121745108142309388115652020897787104645702791279126511459070215400074958840331683109999845630688037845559418853365614762391349811485998453976947154072588157069844280713998440862956206618206219279265948082669799396685216619982571764827357694788749811246008120618262158600510161414093433350404435390643764412420808685945675863637245736608822808035713650020100919513263397691371408015410480782709043824971680348806756951076699820866139572424024335586249624986720795579069081669518521987809995713326800084202546063668253008831917392264851658247777908219926145388442399319096090329484547097882679655328271645722933428624584927864829590392363574070351626961076768315805587630408678791115659056173763429107295873407404073959432597726935241853527645716994006803028529326519390501655915114321535968261582295997513170857472318091683694864731910831285091007254950341822769320441239230085796836803236932924204997519271734190966272519167582434066457567636907161035291924277698958707893035973816030839878353022189837237403154797990864754683556577568903761102360414120870554491117442420740702492790414180543035184673789532010744905506931345404962132604589805068217118086186135920033423200068637085757468794562657015841352227696329181591124785902811526907258746748494906155630460636665150023383840687082232032346757992116826693336821333882373848208276120457536279958156106405526061153136434737809871890789981547952078702943653265187531473671469351213084503257083162790284277361179462935961784832665525975457997580440427048465130834674995772647444140468050584530733106724463508113423506737235284295755874390960358506688330367249556392952669986533218221507104909053500566670211039699544322503710887804027946032737489913032485937704827771278841381754734984321136474359253489791107158126873463659897718432166645338641377072695418036317748285250260395264686743503102221567616507814463046546924094375708153102888444142244279693701677108818543528518775920631116620400440237650582428836573751428915567641142137559639021228352558700310345028554751247293902446401838314492409603181955612632992234067429355964692260676059644635485749810408445209414835557099556432356123843599235464771064536096385918429961468754666481191401304193571323517768492180786413518844398706976740785367699097542786994180443689204416542626317703933210783194017826180199858004846986178579773275214862764529036798766162183070790368172330368346265288106189433582953584074573149898071938150886617170109046383995278231889825144207859676584280835808838856105138993207993143391567465570375201842771284060991385136143671094971905309068767419245022674300328314346389003728842275339383574563341526475050466998059782695319904584526462519122815735597811951578313319599913163269638880661760459135107589512117424235308887547363074580433148837885685069720254166496333386042678476004000503431379944265279365725670165844494332145067750260801434471114788839930005870061814502094351490963812800480839951290397267028054864716531894483855382236990384774007497108708282545991601235809285139359706988325643561932217663628927625797481893609468251734645850193221513006822589969174560092100665135687570547506507833309050202446803468446024589202228797118418305952101353721554182720801926541259563694451574457248582163176083848793711082646604972465184776216764817341027737221428356223247830830731214365392884893224699588196324483331299067184949894675433908571828147654984997459655381222022713302178007425636709159862736829272790724372112543652808736546220486007076441794528243173239976643984264991651479886672283461196624592919255294661693903384090604563259185491044960770878273829024282276723520154644473045517011713334797907043980108511047598444826213483938261196699464875152799534599735333001388729379091156741279261041545372263599582028477615343904135855193569226729660269835800917783586623987606268452338164957814195936586094616793542219456626774784134386757708022336285736741380653044919695697894351450397703357468327100803649056277453093918577926482019904399642367531324373473741808908669134754252274544060771346337942254636972286701943288250259005689788497756963825324807440294808936734720078190776055795337725154580633943144033583905265937362757148548196287091749273833186040707452263766560881604925268350857355304329487911220109090798862851557073920901281141975246278883981243264781693697391576257591496139379688872394116051500298583596651155077320870368096418863904705107675719570672513668538288882347332058188869767743982125668489525093762592378798184384870410403062268561572919083411708622799525649522590747960588631659130598402465476625749733608013078382250465170195253940479355763221085978427733179192089751657035413632441926120088375341411639586966220196354975640232869099742536754700016933531826468373298494240539708947819076163134150024463161565656424032122190217162138116591753812258708542069364268823873294094624232990279181948205049757176250471127003509859346407374074777974602851410316391515159453011111231816290886959258946524822811356139847640258509303368460626360541098017726468636335773001138539271453994660425058491801869192911906954148739321467730419689524918950639764713832005025321188061332877447487316989972783990553536998589609285065580991161771818540624304269667972105873701150588124133684196627164618255239786897503076785314661699967278728119698013341302294609853384337818097138939634704812939050237941884400011414742497709805638162720449788889285394287437354021546077280341994858623089876178097395791483114904990272187110647034310061839612926203347860634396933420175957352958505494670700374309356815518586357577386991898699715722153019168526711880345892502718392058432549702871985913744425221262398184706385658064894694441189421781285762175747613143632950460124001451419983791515476427006361079252302562912294896094894046722493464353999385273429393231385263126639712732741378788121783550883123753133666543185060034973343134661051643051520988395722492338074431242540648134702894766090243304738857781394428378050068297067694927117524165901611833496911246578739757055004117400811592507447529731666655987734907419781500045399813466430439400544906011733498083392697383756820407976629156257273752669512211599103722177399182613132080279969090377514000493642818874179903133631791952376910917744203053861183151079337144696125991417718180053165420650624199962321175512021823560909563022807353054965007703992351908418284158606606175946290417637806750395254375577893024750692759293276735293567306269345129693836585838835262694736379279610651266760237954449570519571470231056894895167203091001305506686464419737485652141229894078999583856857248270468587678863970456988952598994875449727591581219183447505657869770505153188983157553032068381545120605517186096492564002468093452585647934389113596455303959404805141962673358117910063406834271969720858755760161941365143322774198172582418428682576969471253856942651891912450858211302408480151057537081200586017808789756961295939959184639101192776385275922917993185687678212648371047851503766543966537650202392726037178981901383216454788933745320923586210030596672332445912138160317240197771603325468599584416763321402740010070659591285691657477766700390634869506515891981171516380026796861948227270803371143278851241026458133176322797802398499218395676153415469708333261725635691607414107440384067119801457523837533742068968010540217971090012471314660593194896003746203737225841975155334771175644826727741418678090000456394218013063182984116785221576047542416036424723784343911321505310824861038083808458085101001823702104757932373535836394720148446903717496602206416439128805025610081613013118521365727616929953652575257505402045498247132083574725152468144596554877276350483916367624518704138051303949833299567475478141793956350669352429797078047076089932165164211703277601442166519293618541574109078745596003651457776515020538374607812949002793601196951157687777963096113818113942148452468045977762959371911000303957774060218069032098628097036136669011411038350593422439427029719751655032841223862076106586247857779261145550905890798763053404476278585135139778642349120704566955639782528693037294695683516062852449885169549726558333527929683450599672495395459246585589051091525126268860465044500867697246354680196505282010385639803666018787862096057838811818314273319576085839069379349986578474160473121957723344196804926466208084730849766487403641272126403845520446099632527813997221723043677614728496030371916860453516811707394628015156757417607320521292531854065262570433569630761926861380937704018929187615322729986366766871838101336138100976121491014561811733323709867648653647385960719035142821482337806522255293369597269738202476988067262543071293629229845125670188562888948569919571328785711221099955455252602509499890643141427033436048337848427021817775044690401180620429991309360729727818070351762525042180316401645040168832575797684208584230849788611258802524041022483919328722743404074877129186033173996098124105390042887581466603717285420800217101761044318485786314107440878457683899445308419862406600324071087467618897922131035092449236548129154942407637586458002872161554031799011466115493420865310255309363925348800913411407496172846726163189423296586134127919417195026044871520836955149929947566192198783469912853937304750648687124730786526132319271674346541752300188144991351920823614082636540287489024118476896412435014566954566794862821561717803188378326638835589599901738216990380126460240335830180786450784794347963794997033591641300432422626210270864077076842767428328472149641176875771226737773313773882002618589389019792769118449675246332478896029249192157902504996687816587472488057467218495340746612406434146991274952931486208427935187394488561169436037062693452912647617555819649467835182310397305846330692302267431202198780147314681717095751526353192453920972349242557720554686999449200448792322104119397398633942172997422902420215928304911973539377779608293146441927826422153782258747022206102220749758039558873243107500768132923210771915253374684587255286414872011636541522372155196070017959272766567840148160075010769391878223887289795486005188887190539829816839034703392453084480268187424523634809296425822531931616780072827740108922214721267585893025142808322482954970996018885498815664314351172024636563524843700205512965635169404775506009418305030279037129539521446257873791058257429963941794730481699506238976453514474824847469695334233947680639201407748360406962956399666405175969627175162240503068034299259825289603572475942227576336293352439979003516597347249188117135649145336621872804087906629160406523123840664132854795658058498718624426794258102196748812633685226923015854560466499184261436082198176719454255283046470301102283281872489396890588010925179627131554168761035944309431929721721346695830048971787345264050524366752817761077716876234114309427520651382598935840109047756551746052505032707023232506732601772109562012763216650643356059347905054081781595426787833911029387040433639694298624725378281292030834363127860334043736339830107404617707015399040353385401259168544617161382277605648696471864187155916419779960014920629349167510976770125932222895016114359293346845073580766561498451096831705374841046984506091121447058113759772433920265060048526971395707974293019739028232814938995315876175157911659791203357800125372702147471501809269008797415095243868423562831420012963975617318361069751566253506732144996042741428219874232398202607662277895486055405727366967969566703032845165979145295261973090248919660565707480805016939180868126701913144076969446154633633478450787814837067843259850846142460755595130907309020526807280963888841761289464195189814982099085972581737303692277937093450745252649922141030325123785295465543219246405763327627533789967493666178760661645076781191174856399494026231794601222324094622887770015391834566855851987115213046513715114475489958155618989150539662054252291181866650535526708659127198202402047905506828506752335704766774572889794641217471584589978838354569329523834779595452987491168101349079231399947279328604994464162484806204504553535862665228470234786164963266466517131612657126825298871104289411156543865985307317907409469296370013611787259864738318759834755495800834110895035932059760097200317111049815528269163838039764062284638937146605974697058160065676778801118638438150883382769296695788365338785358354864255417989930744919881205173190397242103418632604724180180031877641308103177164964091943042118376842781828110480252686368321320477811313375402762426152404606206192250251947711811801032941688418514219863415786990200995542413835592354907837639160353900070579991798529646759925118870032488162304934597436561794113145600954860282239945454518751629361358692332881811668841835934951350005733947350393107008119824867444312249226920881477380605352023299730551996925233170200657504015426083024635546276118419198849419756584539263626501571890464211551492167570996822898321826324379024927332131305602794976565948022916637584607937873938477402234401922201976989805928668768402135186743560936674107888287217230223728504426192907913630043913031580773566406206785949737293673701637457591622417964267355712994663064476941584304959152843166945321565411390546363779123038456243700479372836423659305518348192333598864446918001356220155388251024728709517304436964558219675147496529729606709805893462700704884516212583336844563963033880614294063837515594772809278600921522130448112679215767068407384742870881894752199465775492395569661829275045867744856963279135516791392177156610270761392576316027026095551940153196138719021201836531959909811844459292907272025064178739176855311384031549760127442848503469354885742792135639717867030216089089875539802386941618706529767657251269945021058147704171051602129834903434281067351016907766512924479779599327080602361893611600533136749783459542584537727748314177050713285664234061337510227124283704635738530677875704419430608147377499024100666836062115585387979275319479203998853055932277702958965642419899380492470186511784570523790400515443102334613244632854665533270087525043816835584188380414861188917900623619295444593494956384390588499508881323537911356687504502443132726354779891664637265701720559947523381868800161236549179674378204813119288860936710168471955985673061119901213526081023782463963016498748896656593133842518733091498045102739068841823665465785482391445867533523700239457171464744905585830697566353151994676368382338356803698682083915576160179340405128319260097775928965901859683614989837641005413884136844824495316335812168686067384510927271108884329122799116916013528442594573086373477081132125982115676763951426689039137990396263505642353765524285082730769601670215477016484431517372822382693830877387259943878979549645466424687373785512563701594918372458350558192307517573180564592191429415961425306395523420894404804697253806824615962460386196985462409663537503792117901755492200648605356198008121211324494230576252044415266995546916968856387266536443394409690483794834267657702093859073218339392230373158704240657352224693388476439236184920090122428204243794801482339370402854336687227003629276728248693582056019332765096861661783870055000869746074005294946306395211218633844083092992283224374934911460688190574334978282545526037752946493252844128470032072441878736301599799129611124769033465781843154579178508259531928412341229466286124011129052377058137754096269061091717515041901792235598108362180952770807370006655221935529086833035449152115416400252279258571719573568753962108274104466912844737430478632305756875793789408696464189337789382106432418466664045841042135693278951741736225952457228133561821532471169189184451598594520834997901359341359984074200192124940569685896480600685324055360916374338275964339333946034780342141942330042608515202178718924960709109084478767113403345057626282883832891584215668321136511194342348132871313637615512246042615365598128191736159331784678337052764034235772206132605459693258168740171916420697655724546375510536143840942690502740958074583658035822209589336826521855521698684738066164598265047536328139263426303373859180576956839210901594423704947650071458396438462900211618901139328937522727762858478719088286575109456174233043787239535759677668262461233341074871384254575260908106010639042485884468805614606748763663417284154147132970963509684610026179780311253116363735907254580889279394783711185891560637197662700364164552949794566519493521937893047698081586081665911101110517684577600690521602398038882148428771091309725929433497568252542868537016967411553306405897477206481353658355899113861672861110849998882948712072281499794443300473565912343209605960349237574745306325815773323475376758339588400539463525085326233557202575032491144044303831257504038145339751859145973971106374048795023392030859040621914757328467426161357646241284173256513999583216918567919755460626012253136358027438123019068444424603467258946293492007420564480792901681485456180435206089591037702425570932690766083275649701803107998803869354978158588647652635101031128515208805725542634790763553932396370056964922391962834371965333103523494773271700650420252170809543484044372407723918712784611563051763435782511216679618303120724863458244828601380204155449100482433197543171645080435374753524805517536549021341979361141285824378103994496046880530201879907825188898140896544461359627129641335613292089988969907721943735741815764170349220476395044003866992858337062175392757886623882676135570688179766378040368395718891658957375590963177587934044204286780087588252231247932249429113459353998268353546165396546656094273726158412328133095587266089153374319453496017914140403467346481748482073833129630361910456369714317802677927684170894370589490538133355957901565519555648178686221162649273230017602406792060607007871414581836742600576855704988949889132770826617764308892754353254074181537975500041428250374831299205757241202237753563335579676361456448555127824024362516255460559788559963827444513370712759868223278777689878557237224065483840924604143253826711982042931174544761197142646511813414706531734202265869049057388155460940376522267911168625423905863059268446384009688606301344119908231181248804710931544428119391750762965474814595903313921634356890102236212923850081308371341434591007008977897083223396636872432781069167922479466888900241103670853009817894517743912791442829715521517030420864243730112708401018356831133607593694172270777756440131499252728630215500226830225135653673662587817382546768448482746116568617451018784754731051624338258577431552469424829977644751121794072781404450432536827588085702560418170624289211244283878813025906265159760247929549285436516800385976363097177483335319338191365643383508897067025592011971964033998739136772735616693434141451812145390056436482627692827430900328962156556215240247971043066275689891263385385625265851903015715790901079521184230165090512716453472474171019152005914921057507957271980162906980311502581220623042789030093131576418793522183545663152917774177472248494769977077770753396129144888821994951419323593553418808491285590570039658892293700970626674779672276703177427097097496702790660122676012620942035066198430038808528701585758291237328019062711533858282956840590333572657542180679803283871541018603572941096181875532321024069918088329499240942304267344965672144182437783255370977367858377020124452397476853433119524447580554967939901980748468620717742874493419917616908831867703073078769391091722320298224685227585502350671814952403773467062377101601071393319929434864067793444080040602674960912043427330075471957811219274803814228623796257738502755827266104888359378896097007478258129401445911584237866426162949348316717584196391490282817655095222549659494553845054108558238761371505451918833114424845637414524712621221763803036920602751807163025466185359778885989644157825791886620109024464627791449009857321663375202383075585337692249491463069934579308526487184868462150200681070723805466109895472865789474193010542775601570138573835689586124973716197976067871845920735783857018532145888689786577597989232637395001541659620214131749309630579564059188813296276725881129158662553681155927407461308919905456948116717786139624240037789715170949133432232333603295374641172924466875819882742141682161502456580823892686272889975376344599588904278766217085443904091382704544074956553436426881605136148260084005559299477126881183523695031320655720608670886481648201859935218248210912413580086887540692513731090826839718097587646309510387325424076542636292202320589600400373448217171338478343337905223072840144440036057433730171463663503610723111204248429609628914002755370840252190007150906279001943466312733423526937531829722567534991260117515532794367849065589348594629851157715715507561150265883341241084140005707130991599808668453860390666166375181034173727156333336386954454958093453196136872970629073907976545951256664827061994042388746836011148316445726112585465091148033650874600054591062395218698038024172961771249677226644974643197610606263763370430976534129878059978331206203776151644444858450629388682573688111058437609566265354261230164544295591527414444005471711818918014723201749672253689045051431496251437593749617855381116378132852717781751924801222040174083770367929683529921999356700394130010892445979060961733863152492587203407665975108195953718338921424753146062975255047821419309241874337672005790841341805428309968340616327810282391621771034497563874411141092880605351007048756432683472975970625310594819856869270381188000021103609314683460175031265621428519012665909115406447707836195221703089170998398097019899244738017691581091706447086095253963046974995778796263625608515399230685963807267917938579565335808496703457378564864423575947037259534013276435260027666342364856458071500683944295573737839347935776738867264951814287328354561682571699206838712871350263415846364975804094274576201764285273754773383227229406542302244748408554334770306595148209426940500005404423113167833421370939609899754753820050366759806625406735478466429891084993741242263191251872111195604607554248123864458339301049112824378419765252831666511528678180558245043505874216639762537973163433151343885448239205944954013551286852976500515373683476926172674741508726670038389782915846189757315691604667640052958418097784080515655655665957063677997616692355826340699096340831069610960637027862285219937873821139469376812181965499019110520497346187996982163105146823658528600750528005583771854235555452343682703148249812854068649759365937416791767490224634430333976457196525391879136461295268301313117571410946427467601784089669968986044945085399888214685429266906139283561315535926226299045792750224157631901233851846288264844298564360015224885701282235895177231461124186641550077857752308876989804365057362879485141861521096656818121201072970734083784100618240521703557387536965227703510554151310957159894001678513872966184574740150466341552920872518268324910792376582958455097981238868288604011382844445209317625935514610221307246001463613105492207847067268421531035881109084925563277801004709304581991299322525078933271465112704975679519161882515253526585182924039025390042889518714004006686828024893922837669381106586624703770038689975741645188279082967247139633625986609573578713869108196072636679023310047944479578863364842967237288347953461169295237246746240404657740652663165951478650280733152601569710259300807893751648817556249119878027115738939443402316494309166845125252286212264032027359549241661542532087495695641389899066470434897399415565347473786770080676016229261335225203193880600083722438126174805455997104603077188588047051420771203459663963372865945767059740600574984845290368398868054224932399978408516614898649395785269641721079815062412417419790591791101217880334575164189433511938967407591317636031038043746631087575049650374538687347501327287845806563935123049620454165907994527764064096075049305857722663495966403384623986317376369211004095917491845157421821165822015562358981103898015107599140742119275229499636131163641749671641754119896486073054335794805515538659650926114753927973166596688657556748173274188442165517848198584523201649236221395480944381311562471374494105690214262777267229488434602388513497811814198701745873929371813062456693295639708369084133574700814697548303388534309978493927354687434792816211340901757632581210242727112286815212349071354931745146122819101255139410184817411812715946741793059029193422404395161519060889273715240997222762586133345776835393700194214315700307908568168966146803792536660904002573508331364563561541443820092652666661429944303744219129163964259752959871212562886248798116958911158396735591772449134857223424049280371839061192490430908730427310915351968378097473334379419641406610703990962260786199645062934387584329117423474158528051752132510364646159319289337788678177529094001950334761541392803201710633793602630266663246443643429598411001543430189353048814873412030607485806693945361590402259714876987130603979579638932936021104064474604144795589345537183391395140349778385617138871057653445118564185280162115390825864791517456178957149695295527105927006157055682832749242445925096810402785776397310949695535128476625371166419314101970151668004500171627761582222046101660592571802477789054617470667042565014301004366839221267308083074955870793454642026063872984839243860351588791253325009671900018316634032441250800342415160143278966809225857562605200798398016684255598270721673325340268749946892363686616787579260952000585348259601176354479834025424948658824206701404319602304545406956724880242620086575413785376845020650562201910511192131156050671384610568337031745322508843413941439639723890625627294915334766496743228859208420195647455843536741898945560879015715876816653694866706935059333694541613609166276666000808901885687564139524627881817192200188669131689417433240180190035394152551268925980366684881640540861951034783814259242158573662926123857757620812593189461220244724115220475820363517105878634321178197413375630370971660298642560530969278572371021426961578127287764845605551830771684367318910221887184737304165111065134770306826798180996096816685044229464479310632574713355377102097995937429872222097048204666924404792209075970756164262116181568142440885358734356590223679807697658983419843877230111840434612362226912029686329078401862500181424918371416979396740885428027827015332053789578194139828034414342375386251573232794528825470610943288274750831436174405034285395451312692315394593192693228588895002759905768233385594393598378365825904380451050668472236885576841537855797709232240189928446699717184556986990020865842044471806928776733324673972332058478440586962589272096481304435826675888709475195516836899815368993351607404538658526035480866823355041627799179510509151542604367655973054757063399720204459848839288232347961046884835162986907630081492364847332451913136691331792767931257369180146453786805640050139605777998969387218054336229573465069765800421606940170359533972998706946828921829844666998833329138871965333872684781619774829840528955126298425236911935135126651898526612121001722402715395107560719244481731430260291773442337551046549454339336322586364242876476231920266581075650662386343896187938180504592154310871240597718011916463214816875709069346631692094070038872271881795546023971392352641203442950902134823581769017235815849976373716571298955467379502459113816967996293052464604044236109200779922426812973444002866626202439439952897871880019105090339973283943548722631153602780859187693410554924541018628057329929889552945872365688974563646059381836836072512899627853243110343086340274898209722481820700707092695830579256168540045774652094881815398299280167054233675184174769055912869404691203355562820209930751839579227618212667981421208645932677791771868803593494733922272662804195093175690636526450111900866255950344552440753478959105671092386708415588692655256598658622588932813601675142627259553943142895247151900048104221212989088325377955781761760144653530092362205806725082218783999079363195583949432288553555848099326944933101748829054137329932098614851991543094346142797831336801163167525488712305686030427892564708324688739670743345807020607648511919644192624575814165745717084535422060716871611895560267092642104994543289880673767580686170835699966822352264220893320148490315102913482174417476926315813662241472092961159029449185011471164949722600728662519716463444359219750381149469665425623919238146833094748371536775595972702344751269567844231791847248417799851889640630553264110833102291059384551633438959126861167266479666711814818258100818966605883087009798108827554458049472773135389363363982615623183030759670293397256651389035311789331295020716906518661916239917489647067397777155748609917272199276872495256610574007584660004117345038357577376872303375880567387471728418460846939726865654354618148367100306289638515464227313233164148337499502667611980408824178947003571168212881363685246313487221063651989597508449823663013956723045962656980278278600363660797457468705037217691185685071366262791298602272825901926459392913877977669402256242706535229099245411444366553200855714593816815881612729839682642092102473642404505382091787748204914209234321938837489078816278746924352663757668587262285612819665521481435173950283649784185204849014619308744252746572477563467373724985618714370723030590345651796992896673716400051103252840865719179990458817808031205926404360552265633868727969075045405887522379004819142934947504887474242209057837530908956271735866686482940073379538975453417007687240762410595883841632353087802879985222077401147358853677453599850817803558941286510492165733573107812004288502924530186112220606700486198848481118201557202714154450847450315859190152648946979806718635033734460416766224532531009503532310362088814714860895278273630554773164494313645581215717867410173569120128011861421822602552854200579829445307299894335333551536809882698307109323367699790913750376614972745174197273881887479188302905288533943547527898862417929731333038256110758640304931896581434226429773122105722445040305303242169287418555950885099016544826930561210909448457039231083763407372364219842772495662244152224483740746638387516239144182689358947145469443864373544446480740878919686279355359921650770379027361117906704228123660053322573482336558302410143629261109931682948735467402884942485330931209618273383720365296684341187860771772150079232747761496578945782545958518561851836278736616195909287755230981440169702103433784975701054291412687660940762884050455218491420226648721487551032207688632127257067938641306743284485120573247408823051016589196345790841266859695975823910996122560799560322605130789927262200367584801679463818048371805575643838146775908812015354870100554469782293761658158601095529758510838303249568420926770828636362681987670562798026722640484328405273427116538496331078977096378351651577486005834109522590955076578315645832251231438603220078099582483004369471280690225293512964688995245234794041813364022564993580927182725371190926864498563766513959624012367968991163899449788345983539789192112288927040989677327957677853776965142984420400417669307879347802308349380530858473349720743971988698530993504891159471607534131751022038196516563951575717063642448503218487657532083833012469199897010516820964356906192042431713638613020549424030971908385539808453643408094263766278521001261697010252905883535076114835935438343440813490255089352032379678095639866720509302880827777293493728834373640767286651679042819895498231068832229206594390348828539370990191142767309483304874498067615975262758880194379223413002570955161123078508720025970859583677954969473267135096705637916863336018560278411841524896920947075959105808243069007686368851136823786014316880045985737676063775392588760663096725840177541528643540714266502669267491215441468853954333371669471664671200383830174448858980145562796484269227681264671047787209979981471014679640863505304810854524561644203656726214040569388420615888755668658993911736587963297271512397094758490057669381557060405563092840273207101843767633153786224836430117381388528852765984920227427458277027566085612697475425388755687318812428613968520125469381260996702032477746881501383284657630416234449085932552402312277829245462739009832767521707036859893563760819237964664483361089803233759636842970796981789239669508679835520752261686920269808206523135219484777815419230983053052075352440000340914332079398637698293987194564979800604399653896148791145087257734697369904224189824686251260736533294086606924781380099100742016975140855013651675806959929393642624972466419090273807741115319543815822609671203002172565113149493932093115372891754431510361534909147000160437174525106874410481323384359518137476743844397087533622112279375345045626223953433459513788600133590086325965904571043176132281894856554569426383715943991704584764953469256703867446640846632819173555262667375169711664153788982868048920396556874985002465246048216659247853017433132932914962685987089055841687731019305428104952378606248831744478907849853881924791964947576390071845877385880901621553453889913943356906748866428636987195117857142877447907829890696916666617684623069948435992600811702248963437466162286991994506658687564925016663614832924326698636929498832860203441141465414588566601013795156913770291187537802036371734239689654714107714453569636620147868824139953595440292609893412420311970933604558240388590529430181258705023668313173494949733679911550872839932844189157884571067164220776699294259463266008396111049259909166393890003915568531756442019525506575519455554329217792907426596897329783541261956773253741333843283088013921280538992248969937039840274463450609775397266812975884610858282758925299397238883167320141199714975581598196794156437267576961907466567787503398446698699600698490591334389813484448470517556336378131804409302060231579021401682119321251896357358109320669046434802768186705272091428363769569743555939204825973005740242288988320560778643185806365784957806932337056259632663682204052580662021703177526151574951879009604598112402938057113551374059076759705651880828446529986461162970261870533282379255561510206559572720591697145115798913495241656540450372766201213420555554669734651447952166486470907163946011718762108535641725955047879085721709008227772784153997954881758059177633939285850050305384436759696864724967127237692392134099182303782745008078900213227152735249910242800751003481543569270613903445304269446076950188303507853075207382813596536467988286442026857284250067664363494406938326954040941821056065921185879518992164367200836834776100345411847826176898759177582562137823490734732544437418859776308871663639282848811918635094354778807607435227595414901571408690026792434946619844123677689918646320883369570671355804034169012654597125496002524803130791490590158859508658138585151845073787972256979291860815618960015169020870406321608570963800919867395894031473700816366906095594395966216340491181985202066973027825131797900811365501962277475494857123221319438468732086816936781429665951910593183679928068601899477715830985547574841562992693818123145104548014659974917313590076933458805906197794687382381365681096721781544900303972547006680668616257592024319506639107941624909948371913269294761177929436488552436337186019307414972453099748268997939332666658485434049552079947940609008163676071758337492614701804153026557808240487207422401899832720712901489489645607316177808899127758308101478834834052074957596863786387377621225257765436330810090647331263615265004082644083748113227139427239396194933894598101229944269353873013388818891612635047189738699024084974459116210416872779972179993738709201562223494809924190712661839265590843524211226818215259495564055200685075147414622600465062779583600859015600061589144351628209962316336799198761670185670192094213991526278199553298893426102753354065271073151290578129461594115347530472688871643005669349749864569206818845756390206552473202769805643755390779305897384540657651309463413497190666214611627172350188923871152979373588745867740548771366561817242818007251906303507021090484101358498134634802514717019684676090636986428345126172626583014181844217149163643352807268594653797581524208709377904685899136470980931590543333171162735078905212749546560295051253947825161517498616377677935015709888929434618813295958867410859665969973855523017747874685404027958953646779587022350074100578306820842848343946700297355650337855640132105154761881296917850278091041831017501560394365393039954841578954984377826181911698144903637388604826511188364214129522318557790709875619353452525990127405056952858356893553513964655111190851619844496891584259849312936311443739503137219745727693258708532251009948042415158227926705741003770776518426084338024307977268470026945210892493034817810381779364993063669661561004381805701029994180702208254789795027380224362438696628742982280453341098666506397490146029018118669257599962105370771757970294977861409277009963048425419308892086891978532443249690882798013812643590700721637528665098272976517358973481818951408516134954756448265034962998944752925974598764520992476328873332437474024253867283919129955236884928170041760408672820799794242852498920350410480460588992294187293491409420329434963647955853546994469507210332931749577593238280238004413488001656877681352560434667028002626963832568999970560043865101583303019297516961528218463339524031597000458001075709253557670213536635248918764983681497484237447402996498911098188035971178306420136899067460314268059950034509396380440197348193735042873472128959698792785613078773079700169708527576071716797804762868973512923627383631682281120585016949538465801499107244255456116870442213300515826983284751905049485431198002781833414879772945445268445813861927009579057424740395552418175865604176960763872208383196882296696998259188769655252514328982844398077952897246799657866124894416328061374620207848882239511570242552841991006494650396983045562937622811679712256023529914173398547690034095566431724630261137499360026956362482047509931113429898456491792200722637757047628623994903085937602206261789935629886236687392684296643615361744014245231817733993388526961237100727648906150803810440523442022107741885950921438988812029037425926235706944842188094746517867221726129896290178032235410395310787187639429348876609418047937732549999289505007387471552881258426419579499928933499995364847452786948940390506583930559768218384739509109958446972448713833458257660078246378307899885753464271615371295353686737710894260419956297589733575760986007448109813981573968551262865336420084417229364437098732271994688153221676898489096738559149552535633456751071264207913290656889531695327529070934396799088492795908427403578385526545729382688660598275379629541293955605972784362470468381786328336275270048971786930566837219461272780031868708010762639996713283188065237883983508043321269700417215045558093303904460797040399060907237134927343195653857778355679158958897332418232090392662621431084825042719407401923279080332004015416594327905014778392521572623081784039238644232597881758097619259286582393441305635133086540496585361974992980735002077548519800999751964676314397659176712715319953016725505219546690198052024131279528820979413060761790115765108359755330217026662583599194907219391310430316757919408621972593676591766227085306909221662277577119758617435622428524320928266404445722312507568523109778231653807329433407546774565703179150976002359229356226639359901254886137548790648384267861089719879502452284327597579464578658536715233672902808606517377407537316048439452270438992517103025322811245523864012792510499242777790381153587850847976528610675345284609784488107572082626183755398462302904454610241276787558141727692621990952279123017933056134690293168321416332547770600525736706207624617875776830883085535176028178566692849437920258474977867150269444935707186288394124730924445905396613609205578386369954926935118487570904442000731080953079986525624013276100475155002844333262936456387527953652522711843917979200852336025623822201046000484743197591226868286948859418780428313350942868813683447780621419562187120212366353788836460213056622700652726936953290740962084272972202423940891384601732072105331947675536454516541781338161437285184014347515628945741908455520028805947069967252506317324325506385324045580557084613710122558431210776131694989725566376785635381478192202157767708396748378443569365691641450688957340428735155887252383675116974426973280218105311902678212656281625182556976347387564488517999016363601312426756116260344775874858965442096695443605476731247213706371919859520995031987819418291404960222259218819626874445898474439274833656084518834188616528812589035230628897359668960424625355213187127753635928029991658113246759756253464501859789965449700235772714162846235642395757003074852930820250491176282012242361432201038190111419233362167623686264758526872149991017440799460968083026833249655865681218208140201201226520712945799899889007669102092947965157742228330183689411264416883393505889625419476803135087063223895674881107904496522459392662851948173534984051756240062458350305670175215094971533651148079240898848698473763935837441518771578468530405055944510860145332813863755606932757625733306795912015291444115385001427074181180828733171879875936828252201328363085074639346152374493373884815952710844805996593478782893634524795055713272189747325192103942536557871706758353009338943510718326375099633348794341809283872605000195863982980504038531693121436217725636689764671730963142699989268085617597337456427755495420851108595579481699126746273977540894700568816759211664704720005165895474979686241181328458275295983599549932539080333561508319376006359238012360445314086086855330893544160076266768738602919978121562855144584644712829083539021720497233136739115627125758396886181592434220321772694910292796237291721411242134618865778205888543570460436801381654442484225712379848179827445040586858002037833100408486956967867995677078596851874812061750781023070259316047404017961611831080045492249403225895454672360775266663802205097280623207254594310305540958562492824331487883353144457895993063015584840848613566050345259858223539800916035847692770647481873441976121815363802568545031418062419641273149415083277008387499191715186400551175712812702934799961693956784365601821616073473752828348943077148404086508874247646028716369971489133136728004966250346710496827939266174481426886199700379925945997566083850693700291298211529302559542994667464395985572595200334269995325955334448478621221350435108501299507902326160127499704255227152541502669107318755771745584420964273803089245604752763949135836586280890896018307653814032076875944436708069080258590844453103459744848190321813309066047206815185543642631251663710682232476191899307183988002326034311561176196197637519542296419831316267090870429671259476408751348852046863784883500169787987933091534553681138775196138124172995384969162451813893650114972227499744876851618529601753204782737617255017902866918457260361921193585534278486959973535827488139511465828530435637144907527592962367680920557864998744268305001000537602577443964698975350196426899606226423045579780286799544413804386474635599653469098100647742913385202573794492300676166018665352916318333933120261470872557014712726429550757282023106206604495692548511243130647531061071217085665546717189619681694893842510833344958542259634586442335939490341386345494766011939468254507377993888686935975688595368084007789332006911319314627607807574777912827010315827932483521516140101179607193192009775728757394983615776699058825560938881567153252074664311381109642889593034401335986027543591305210200872663029075149193834968277125531550184593101611512991807808087066311722604972417975935921731874181096152218930499396805321373870250036090027856048818079879500199761908038524691091472749130121559220986711057357790347017676451594678001056373072583705940070707172297567243990661346429072075783711138366259659636978843993471791312021084003209470178680143986267911518121386370191016684182781010502571983228109346442602541045422214854606572181339612425299473183948966025278603095081091536979784180689975849886992059528473862483101133600351008376609642416179942774648847278230123842640333999345601924067963326285892572530715293575166492672094885272244262232735042473882268706494379669383250701293236204453603035032240531152293264794243032857456654102807598338593997910469091635590548796618262160482716919988751339277921046740559503455974924487105038891003961869133257036460302711948661279031055128878923386450752911261982000888851152996870296099592435773028443104469533337802403802586271209767096808186005009134830116776439695726136743803333285930872207571501138083109772350906330260259408339103583460127273944828314443059383157911303352556883228839638236227469107317949114921158718580971619545563464592669370012281359881495601474670472449286882280347973045234211369383071442795208698017166071087503562473260009191034920690873523303389425068581289440742378912607180665392817340144594244126233483890772962602954226332988626750562215809904040275231521801284841648699488793678055853994513691189951972593277385980999647175910821268536306243878521798477973869544575887177630590119456595717627153463797496195944305150297785918391558478351167189657199598256571243058072691529329481605267266819468485262971069795972975838896299158190186618343176626742823583963608942880793999644393548916976797473275329481399079565052397216354574049914348493869370451377508591507226788328133788675243457222867007166851528366868630335367347274861544040867309860947898768192551162297569751587527975078557810860151431183979253469753585908987690833534651200487471777633588691476524553722469609038474219015765474646229808584411618197061357219330788178443809809774747549372483531692848822257087802654578350435590607832700632884635827838284327937587838390574360396360954255107113359313939474853946261296419535318281747584313181008776895301964383005453599386733688142327409034553068337094893796606498316336765523010642910075898388921468043834738056463348361839270207693072387797431952594454324998770543077122276416690137754160644441187555603586937817729868357053174777129387404338011014181979067415158849248854834395689690022938696935260621235805108657334887593485297643456692542095385358337358168119736153583258559305009806381143087682373597496880623574400766764031469235918136091028530517650411107475357030599962503390300974600798158584650805256007672559202688881664351444999013185593652503840226828259672994106897535469767883505459149443004039761813945616015758482727628081842072925584498741136938414438113196020663630382671935586884680794847154790821464118217899005793672528172397367027616000020505563800160033985963753699993766261963062470047767219677528607855803222677575304008489829573282234862369046534663731769343255250866852017775656711470084079646058100135160392841762152434060020623171391555941671817981207538280307003460755524158815005549011172336108379160389949649185621759166417293145429347458592864984917358282248976181626321295559711422449384712766498251854753330996834597792730965636819084632070631175177562795712179662707665156537413798068546018857401607385138527347756511435281158084218224444797269704282470183358291052880255972328925506586613256172477003088820090874936789974488765060068641893696216839457559235087169396823140250230648924420342985380176348071059616206792143295777148951455973234917098141131211529734695832769577309812218747596603335317082796869903741374620176051540553189752390111146880560132023631203947441507246306933558988827176772188873740165843237466892942942613970734377734994075615888850650915478540112176907048842986855054700586560306983837858679847907042134585181038943999076056817453156995854531886878617888346014648593037064101873912458783297579169107896218433373897770806113254746321520775330914481659372494123290724004769331725837216534888714384403712119906206472686409063254393998116677596312826735851426271962194698526951429713899479535586310537941308403889015040832140714777947553344914899778805329564124740881684751644485816229879209186693635312264903830880932241559556219038207493010047924056277936947425270690136676388327438575371538548241499467242333533413458857931849704316521763847756228205725683770297773335847370915825989109946152027590356375056316074090600541721143558522990946663374385416630701836650049738548089684961601853553766056711439180037784350607497661429362872564249082182307855951929884451232838538807108146216253831251061384369572062582188650758581653438694608119445801820179220303526346134813992699009821527842230023015056247407792659561512005558628543320977394424044346752249893646643265126893192350487016680810069343620572240975267532641498145508968126751528090945451673545946501616925433012593019848703910202656980882371140101803015886783858356622928450557572376334555428496989838375641810300151499957471648006463884255782134960313512732075712011572432516068854907970016240595103401823341399626116408142274991234531777250025423575307220223373326736993994477666171967814278996571926281325464208935788411360437526756203108061259423384375476770517597239883772453790748280565705599729537036554221953170931310826740034659539358763635523240898525110132844441491043836713461119809874885526430574366741413556513600120193281889981424997726174737812883729667147545381265249468650078792234516092393294253605729616291891246528910064008453668178927561654920799966992366532870120167717774981136582943996802900324428786440357139639091625360083892920821831372249403082294700142356574732587968817218029017026606570014272044018068314452985122955851096101620169524507519341977442182638904799424449305314675191808265502503543311252015616627012059712572705733034443335732189947654278186294136372511970239471023288432398797574018242874950373339290141106082489729525079438920172464532832749025230923109832456069501364069434996603376902124953112724450140645043907267064241548950879199267577358118437566974260911704695691017041153636392969036299049462919349594908065674030991229087835419809554792306244688402244093351228305088401485632377465297753728162111503797997282863423442558176713218838392581443470780938162654186918162309464294011187756125937162013556364822333934149701568605716488528280584324092296811325194607396267068217432324158982530750716088571972088088936839210041634552375232856218584479759292348219846441370880847881315925267675598604666931625094558451408728881758668844950635944817988742194375753749725030767372938097791406138269497221470601069228036241039273499250055327516842285880442862186137572945681445404767510170386151117116589535131643890439233391038898479690595467397378488693925846965451610259947375493360296564030538282902331926971165918938189146229091092059792711367908431365139823561077165801560700159944435876505209701991077922680998616813491571343855788325723299642363516225096152655350506266663381979459245751632773708286494886525998130023373271919515676339945886774552238610416925323361411117433681738754662333496569396807792345220728317430341442819613451097320819589596508675663829376476422637777605391411148061114448029923700107990070491065271948232058074616021106161268568211190846753591311156559006087215232091538109812588101253381809630857071007482780941511156738274240918511817349851398239013565163313995702963704886759958652627899151713107039607120108761149638562777510987398416312828870732833908601128187715529072365734120287338112688614632678094103567629360088746516921320810246508029046909322525746670756547384505300542471991774420775139985081532420011773102113578592645600847496536136291096308423527402957045883667765855977791965132456062074444842339046309996522295385051922763969144882225892057428214651249503229838504366369082320454277568067484878196465907401962202771020070152229012301927077799424862901402938395928301652088383632294962422721206558909982341371754567447848478465286607370251805332177764650505518353883434022301743015240457053480529299567305897235837318401892211484276747230949914020098626599381871836890495506901434713259559882779423240597649443347714997160006625439737809792507862236558411455983035818517892115470244942726115946453530673080144485679505342274038912517038753290929900166582721843941907665243367771363978819963870511545483866314619466600322941060642045241976218778207597831679635074538709415560518215916049179765614969068384536627392711072761488911504232953216142820119168681336254537723359906858866881011551424409960827853691500738185217362646236744010242272424008541405850098460944628631920479658431604699895934333695095728817604907020272977806122895876245115957603395948861813252831688988355372215453842196780219230353065242359829901257733231747754044944666504001130909720595485887564369199285054462945299058207872602485868076482683776569975422405814599439939923682487884071707983451409445841143734856937198449498894566002201909723550989319893714197318027146292358258925368204012574468827910193636464737530646922246905097584753767543189325335273041450152690787682713900427314014094388824431600467499347376662746621376175930445438273292097618641359777779426906459056849063583793035024753421843659172928193455095369421783813354848388276222047573925264881397844802794236702835695798487636192339511946770807541544479772087752731141955355381408706319076388546246539021269414142161712875535909304015042196805118388390363862032994457357836317755257433059425288799969249406303794762248453430651536354478682851116261207911009530854852873914446683631995140389512943336431736513955733334098045121382463863047524127317267839126800090560933187411345066787959113187761371082991375913803529407899964233418490457612471665594565989483005049243080647291825009483952443157519116430594190677129270469775568813890710099350149734162139284395556292259446872771731779839295590765029165223258805984777155482389625378279222600180252041796081424099607592018374919636368325616400727362556015735913763724866691740611914914879363539812337943948712051377507550343718316304545726157185781380676122605226388299376401210299355356963047736510037602152372223457320813950562586377252582977147739571785634554286827779462748610213769841269617589807343462444043009127901156906353765173843475891348930093958220706896506646923041134954876681731618069734933038857258870683229498855110275447975128712782642737143146867000447183450079594745144323440760654563350762314776468528211477225883617681006671697270717820870885613317346685404449597436253406535843564053252466812866960803955717394524574363684711373144225984619004503508964737918183798337841116939198315727194496564427357973543107905252650375530258565360230843416694317901985137964472083839255545341823990023238370874713216039778768884698216029153442681600827931091455667629353619681504048502464611393961187310344751933471944964822690068560084366231265652216054350549427993977217733212916032833394957666914435589081969481348592112326967791465620928717356843168813289753446145364252224943090997607567823865222194026049463418036636873898858392955282032533309353110202097145226932767124488993171633777118619111417344526776676783205810046343972810639165473432464496080281581883965167226500006414905450617579356634691312847569692379017310479838129204114368830333521673372003458465642521889582326197264064101421128118867186436857908999323301391393324331241169772286077950608446558171614951683097920725622220873163456762549538831597931759485430951064581826474724742865174806847885788945004982785144279660908479646551790968884514159623237914476658848756033451693372293072779041989945632241349511394235004688532322442988979979507134108031132731588195960471218693913125441225457026998436848964697731902419407597249414213883609461667097905922824372488697457053749461844435280294093424901504492862640865325344955387493938194724957297341677879155265802413585520517811058021769495906951308693496850304730284798019699920669477280328989077627033948357989641108210781447022474765934609987069317661855671314872109456359967692961045437557358282167117229100692340552945596753828806294329410154074741308443466360085834183515324127893956952403928415917925574986032682190206022496849882654940822752485471578662070498249016424826763885006337510939260246987960335168325656975598351598158771636264896787902875050420063627717459380345845033392773527606264571883266088039993051273113746482168103582596094779530087702690198846654296500766016877688334185829163562908356530574316762943277063734437984550125703813923768627687597693501616792764401143473259543540640522333520846798149525465425176287627602495670227422374233026229113602267726027798787253579013010501512142354677925009790241199043866213651047466070428340069455812352791658186123650570218378853975569141423676743726554778482512584676188648787471408673647772810372260331695484784433292202153165033663372489159429323306698283493027790444313507832452817756935037098713000852884717980985706479093150821501244804147181159022296178525857192832729819507259301813240552308494385574826303784350535400002379034059691674072983051889998902711053076400346793394060707146395784379845824753461520362296814581998934983713022035345519405068427988353781152576598019768856435342812335908441470008115714710019700521067424103906081393351628028345127590333003895046332530203046126407003012333190662454623580946584147803724860816638941903278500894338563171615191121189291005162125465741521652567362738630090617803149902975120803692558075859106204450693582400342206088517715162859846605209175306505820109160678991970370178532885378672367489444904169526106818336338404544110235345020105552838867362235433773887327592510753168232703281166949281211735401957563098815681282562158320830531708483987065053706934544924239303953363666687209505723377829279331076722150418339617493347298968527679274962141232122721451949758800810663456226411648626739227399232984713314309520632639284829075540275306611952034193509856420982564018344216065160868842889584678875331898656222468556015402456706693607004779763774334807976593905169263830471870131137551602483513917670319422621150619476364729691949657882855616828471798832438418277442371479618701724216407607716566372192406465614774844190937501484643458201131258423324382499358179774640894538156766505366515099707209877124274302406182545220992471682805601526891092718014328001854275889606603461008502924870058454881438292175579787049974042605554789538630655492642572909280449619243555390213185503165398113493624370584309271417921451771933082931484147727291508004354574965585053966646064579872171008155107591920856915599183960151128417554720688487461260061551124470275206389331669237299942175203269385354693911731520738557189218984581798176405503503937752587206232130997779944658575739542145265509343697700500269930346523254359872604322038546560970728866356796168123604011000779500473310374332097145169262610678442261782494596487356761179658139198553823750451084747581517089769094943386398806729738802901441324736428999012879580809876938189419801930585790541976001751583547418031169295122427378031133138822097380733680963387307652202387725068262059953125791438085066574992046173707730873289331510357861532651731001367483354442770721490847659274185990092690305255747264544689568629371081531390701397766133956258296041232361567406793674314058791401388448669983689450533683556138611969372572242512111463621356072116192804640988250841210625936932319637262353624514128291329085818291970017699415675324408481452351145688631176082111523371152548153371461959413353415288781900197444114752498647878151041455192030217215763267097491853534143354723679037258869322406165241359425417879822096187181373339733005112931172957201282252125649682082914936914080147831415941762199527743970218304690466865932724699519908961634562166659862036610176646342494297939034106386291067090719432366011160301951079681016035808744452268460723997987044370120392516906247356731122904575913646309392031403541038015668100224030035596153306783921935747979727325216859779594985648882579334863262468077545597416825584012761900256611076987001915894313395703660411971233858934471874231971496652090176845563067146821838014869856596913767246746856583834869976667070810598309452231307177341797956643657498327346900052356663060141032411652748054258080463392086045594638138896039159440951688164845630437247385941037143560868190006038672593555960481771846001818996888009604883914950332534156329357415724719662959614881528258484273207945807158580255771576005596206507990947318446140837080413394271351045875712975560681508019608558595340944866699172721995302413670874610937588552792647250465940543957134332776056917032319557866467763809809796865691813010240221783977818822130048376239488125408810116705122091711245114356414532724386792002768664020713818298480410585741448509038341894619837517168114650644469074656499184726839990503434308187042159597977953127508172464702946729328328603192407109626160353959837098547983216250267475448252973898129097364118867276722723991570061486777602223743020382468534265801901883448760019957424109901004683215043378826160402737359024858531609121205455711111312169384476950252587849167763571761456525266521890858875639666210614601361824168459011905909933822682079061222774963320801298806440493226890372761628058506794345225016363485948857297915564408836747437765919631238944446808741985320530495331568090821100893851237206557710169956244066271221759306705481336544956677018386215718444347578489726098167814563126496598838918832549722441332874482451618979648743775020242255267727783359957862286806138526702567567327143889733093334502889546025427883366425030186006807597422746800814739282120081057634688488733386546418550888451591926870435201405582929235334520994178608336889091041489573212234974674609692559490294415858262395129335542935628530532756324810859232036707881274125950704719860975603678123969171021251978061411804817521144529205113478745058675258205955910464780216500647566254099050343096939782265561582418056652083574381153706912763246407493722047644671647108362244696509025272997080399904260597611285966850138775307261567707074858884331070357297726515698009600150691119875665241127635875210245086232221723375994132230423762974020951060959395685949519966494459444583597054457674527710855897826942734286984582322924398909107120117075443492946730802182865480682247107630087699427408903430405738134881302826135839403512547926740032135776521786057712917562910410437992810568764123348867219587871324462171242827004496445125681665829536831180055138679978312778655680020262122943410762059814591148662184740415165078993234946750659097563165365635163321095423440621958360219288405003588746768602140722077003539264515984936967286032096476512324149967100716387507973370024934381590954174337229784609341572949443763620312684473896033790632293669746233017573756567312625775968683636780419299362577675462230109907191701125552581073854912192289578674096680166307552027980629902892234878168366927552955961725144965132026082317090561163941353233170432820620742551426677828736071208226065083306876067260282470481021178584978308857829998638687155702163438089062183135902429767208428887812834233883778290805976652342401719425983775017086503960323210654087376364615004581739298086947168540150777153821317016981481567270529085452821789163520297503614448703752146138676387117629311338174802525956838545971955533859299548741766294591058869510542385293973584482719720585045594127751345737411281958114727845107568059911646049931685212746873428530967807337282030647486118050016292450030030619468857362341140169258469019708241687025443035680098492196814918748420518574548906320467389063452220883442540869234497640171161763413275507099633859370575467707122895978046051282108479841982850041906219217523092682800133187008878975287553320961853859952954542158491533173726073021137766866683680056229505905329448934721644414134272915524133971246355137221406190799799139022331725098886655651644318233451748146824796212574820487797132758247801987194693752657169744755054834568210488856052994857273382191461019277660075729410169576861970184134611704661582135434319730867443174444176382289430146871175528794669561468777426787133964759557821505939403170109935819695715429060364845539615997875996788707290446386275373272913603809011744833526085569651316226945687800642844911075549626171629100143919511369203777565429976616991689084366524415903400615006502471944641069162814795534151105976379487781539624527379455694764311888974878924865582505111629497297500093039268791459337273811398715801147326254594119142832238371484346214151793240898033612548153364409982273319246897970637164601193582932531441427422119834823342568407513684482544069229883324067333450997478403014586327764734643767917204850707941958288426836550016096679738197888793307212808099904024279277433381649681361685939129233944526020011871757016617767456383411158718093919319253831260399523446156600022278298674332752500316171795978103134567225466631734124473506381854255663732594711255379960224307989522769288854047513163765789792625368424845210024347734959648568437327712396016791252426364930123252279916457778429000026524895909939901604777576308048611439252362951114921695431978082932612722772063609993430728492725307976733893599378694623063459323209584023526961722618161011223674021103278707779736370416958683991010381259096462699007642023688343842477392543438644643380708324265236403662275595068714743296784703569864416068539256617188637725136048546673063549961783975470933259322247625433469049074598233665239471403889262849440914113776446844896889008838819604181340893912385147836562589120919612950457127980039823285760704215727727511765926063889481715671725652846575746116155409378836074230671597112389271510073596266157356730666774499864102285600904778851319203634116309677756950582722813110723759012883792945525096487830259235450468420133887797916536866719946262210366568983667070036037458270664198679848960658223478642903268857539832770527844566527926922263571920705975857667434282429795565523244267581325163983149899959646908397441500788827520402063467546826471049288435656535940106817357622374492388138292737715460681329899221905770019729719879581649636716445819257160170860467876541437071002303553998654786485008706645188721531543068635631065125320754313741232832354441283235661230759958804306057899501159312254053807063520458060663016128239847446258376837563916953434966564831294095307139513385944447371711676771509984146943013376931293347236619134312507959992972947885971540500820352578608990445233926563322505688000373934737855260851002479305244067878253143259126723555963910961773665679827367425113802318651171252434117833606852490252770701694883146663332856421428183575161194354174638599038778836080269546106476631263428094242795265295062087209176959039404048814591847538063783904991912149686560159361191148017545276187304670912500610828003783280891929313612315004162155853332093672991110085222954003427949879514617462381207167917700698296700623743901274147540392807873734530176863003226247676913715108856567082413068035870628272518066796232270727472460263803696556849904765809153057082395735561537257175303476663880185449196696726576895559310794935410193207595933828572008734354124095123092381487872969272480758963087461867556721641648848717112753323885193161599259265302857056507407329890253869253238655581759117688252158978902800728904011769785657911602767843799545870474518932770704755373057588495606977525608440693923686664250445662573194221408398701050872023673152311988836447834409353389774324890413626265731806126853564568562279337124962711912597450231999392310595282414484016976499185233672394732526367779915222712944128547226765828487731527639055582791240768624683606789949515404262284456812189983921335518064623320346822275839000002814947299403977816351496174784662428509389985219384740109455625444207026724337301469252687540817181435803159235753369250352233235096236330880744003704661396086733006944324275376596206536642195636564924949941908215839082055282171415648209588921298977792523565185698198120730626695411041962240716623693486996937125610898004780472594301914159541317231592486099530260897706577410501597627526370869080540146554792743959692005033920368896566607738692222737330339569851645607411903871407116973378845961850987141997059750317145489453333846102382995733469968610048282735993680801523071744725328990228821563514226293361832555820568357561262552565934935139752938847330614573046200946723015551390661129352315936357359771743299333202862640195874319947092875715664744060985093212622011652848663045484116865499908008682576624649586114515769735915896367378092920342885927769117567437351556162477600445509858428953892686130635541554637842691590318575793831451365619474688096234462293210668056786268663437399540737619912225767081470518857217414785646997335878524517647313107858453069647254958764133520620631935829484973491700052314043033960188685469097515977281015254060132642798926503159258056155094369198361264021886908175192587612648446068496114258621591667429088657358370249543058685362509854547866324942448278611425812382457334133468662428520963530433953151667638968935684749180621926828422430659277828612769037444050007819114543383070016397250120742582719877941904445866949243705066800821478185608580225530509122099993062350008207875081575644651717442791853687063982189391561377670272706137922171207363904052073425141919103360040056264396514405806730231913229904641665513438171617800819122075584978840227451499417544274263464074961846230195616698540356144167554989719484669991538031979441852238643875944609837657203205335658214314257708704985954006187533028864853871384798647585035653315946859186805025866365136471237277730050239590637079086275834882472252948301460853795344892091649577008676182676296480967264882889129862569531189622574373279035524378374115778083937640531371216894598755814108524556075545097408584744382929873695299624537208712380105823995680865963797426990581039961879474272290779665888913454936428123139232438572404953113150466396736917197026448414142124202296000823811649865739765246534293247810928344876944177811844814434014917246565739924799568112349209211379565463764177284947214497264629730772325863197910984273671085836121334366502675742988826249029405727026980492082376677431182223082650205149694158906384836099806446772464002094967161442090049918396064285395063814535755387867870409113150040626233234482287812459042370479354627250873162161319497920841559961020017309278608908501587390207564126179429210973390821271143653107406081985771633560323054881349745293391373703922027599766823444513451784552245513648059538791991998266729000248243406856241045864653155786712169995029425302244338771449103759375284253660486061268751215419726960160611696704355825259540945936666870365005427683699151426506071241596774717596218049460580930258511813709474783494705970447156622419586447069713435327484257123725599704909585923646037099738014593161903261542504435372271699190629614878861718039694374445544603753161928170384764409213680711075350732044020908439538661614584505973019374929743303791572165759986499080069131129966876941782190078633164455556671247319251356668766922623105664262164269233292470042514887175418682307765407994914513183546466155557143963032668786145282746144949180648169791432671384744261605619004653061252605392427886028529297712235770978047878026162885122961839815749483919794180431282391977256418676403347556912626107320327247823225896288795627668403887195544061336230445156277060143136581949201171541901378795751734775003786049987096815283670188972793269615954975186764317665677592796553806997359250388466427752559269276363131450103548780274299110736913613200691607678509720798475597579539100277925526541362674767436521057085153655144586011789741968924384730516380535955981954686223617390210654005672330908286767415694410449269376876702484756033314911150179524719489824251995611415726126110308397200567384353742924446500548408845233864377472769063913027476290665038732453966189118619087929345230162791565536699304812258391937526817792277772417739509613545233651587942712589869623048095144652411183168400106743742238413519112372422419756782703491850684936831569302146822964219405321960038030800514105042818653149240141756668814222642207887001022145376399636230122624191466008347492733035237691996381029459806915520025431690353562970912155913227393441564446551135549555445518651080538267687738140721815426254856346608500779941256212021827096767052088180520742056297621096731714448977268156804272524401206083496086163615810587866334314008293614150814299607763443138027897281113031644110527320244556818543880136624322816505393180756500213848728575524832082941158323030051881522142958025081461938165895028380796166079021385642168191010181782566717020296076248485749409072168552739471677578846947771034680031526494224628827565250595717767867735138782840143566533898874357349882383834968114066989267008940686720358205947362308621942630149426164040756669440685799219154322273229904564303532188715350147736018195879331956864880048454350555906232034020555124526211399470209035929063430830914927693553732241772744673974850313104042653274566768432403221053293635812723710307442321938805396074289545585130568871581887066746733676486207286911244069288493215175479776129084894350010768230307362196640153979438718274314395732915569256215188793702312853932141217923219103278729720212119084758137363418744309276739894467325669937068866727735278618570140852650219009453145950063016570706827273645986460220546781463006103333938205191122161225677404510545938355020082336876262845097225042762321772452977323538012152767711867553885931063576583892534589476839638218247228251772642618516729617899613424613444989844643959202418192136010751850129290885721027504874275317532811484476576241321437009508354189005324474284353399507730461533691100721768686376508077241781275279544541366234941863099334162627981415318206264748542149268961373195269133474913436749190903416596419583206001299177899361886435449423002995941353046609768318635249011161259328266145438140943939623773644419731185474499034153215465020689456753287595178348910591560371108963492719977755601336545520772413770564013004014682843435175983148983892380332765507728037947361600251983817157630743727624204803830077636762356431810138044603837051812009017974633884084698274037613990671917015428451797352370852802854459878966900258521860924714668510855690553585965092540073504656776089342975145587903482001990711178256913064958102614496066701833164582223873961068117402613348530557605766145919134245799110652712391095999800496979275942004955239537652343454449649383812998299304069717169049908042085989965755164571117570586213881532473625535316183174736554432373465914298786890012506344347380672729177845406145863715567016309050411803613125558280807334629114006144618115492837098173674612254621432260137941766206494716013036727349197080935112429790664030360316225118996030921846296152224400337817868944098463899088681386097014667958384558193765354914137818552426731387833714702063484314131563819729395582526080028970348819798903578497299387344214038766411504871167131052965043906402588305374639569767211496269369108180500479075245935795542051329641822191464890345254851736477718667234499886684269324173692825473480899304800727349092939386672086980814008781515267997581729875303540896140869531198094332876861690531941796349851626400368367591393616735198291679921645788126855053776852978562401151438801968931110914003780964395961495963842720317676444178441714830120208155251053225953841341162376379234108017921141161596031840796975585863901346277362837392356196394779210002966941259094770042019989175946576482639824403506300171999797835074083144518893616018047572990099847262826766636924200625462214650850167457360795961310264790471748848826252163230517057794930333359058116868576624785400273054815645441004534555534688835328445903873521501634764614241818752610309606094436616608570170747711030901565083110573744687866190862324201585552640354610965102740208702784646741823662856148900404026433094341686707131701611366907106169092270703796981156837131793173006593481224573278886567932286529896697762734654301197047300043862837582723633274001411695621959979578610618688803082952557537235372256242413859284510673900925144792945363167079641816840949513463483143819314471536604779760936688340481666298946923056740389908464101691172164752929317049645775786604586458090670862238552001205734273971747023900398868994784696391547790697527882046345944127094186261687065728579716408090640238316275382653730685294300640027933732259080085058903076276994494264800271172961427890149151943470836927736084900166365034663300517228003740399562888796430958798023146923331438402043388958761002013066740316887943561471066729222069781897267956401415921612036217891465936420118445324257247698876653255296553026433917709172230499034400893086381403982103255327298433505261504989838536666295370239997001664021831754325192479570795996436721283621821116678862946309092033963919789571581181472668038488926926614557565113189611712747002015197274222836680998722147852395576024579576260866186714368898746383268582348795012712695161980888836694446519034030538124340514098360792692505373063576635514637141635147165212172073719424967324128758409050800817739494638983913774004155188914690391902662415754713822189511817980384307093199491154179840244397703977478022225725590017712201517102039621535648438845794157808346032454368167150730292338268422603453900984844405058184447387898816435828841755416928399044088201147276004638201488685216771414937945341826623598378483598286708256726163336984362699142825226956266477707630766779129057112837955726924255347360049771734773324147014182664593175913250679205529812769385171126686861946629253498515360778226495343716400303212574308180023223208629065307095611314826429557451859470503596746985660945082530970204416183887219509698872211178858067232767972009311398923281398526119573926850673580453090730629030909679116957803507646568346557799290839320341597942208753242080349064377997068949158380169582645345348065511896885638224209042867196428728786836693729931332457627223427491873022133242374620329101986107355471531889405459290574265113973155731949607782541208618187415874976511470164069638166493313676169623014252987738099421556585244980426115625830308033106679269079380077250004275334673958550383818075844236566009804202353050478049944096932767058949860058674470840569211996645059963566263628225415262591261073844770947983910805665240690609140762827429430934414631837334144906853669745209347313368643438768840221891628226921322860944280390774579472470788569107567198422078163879777371287052049399315807806233265107858426115326053146734178480300892978540351071035335014656878680633323788583712940805265257802694713954823193981407423638781437262665165834954084730829560926942541958134470903481508667271245187045258673489928256097517555162049256144161618116209985845833570030973825971726887694938657884668300891396858403830501220101062216897078954044844193865222743041756188676124455060401977540080535679827478318620990934619956997451095104243894492331187717445544009134697751164360194896523769547715357357988433831322891451544370063272284981310624818538041959904218180708525959635756826396081031485116848958965383653181511733531602641862074172669912023497854669650918240004471396216494332983469227506834991404462057831178399968919084523686739352148570759222855041576982952319593593644196643702886454223255871648801249510982486848365976177717902601495352962502155087188010405894865148844246391112244129166240029903926438088143794276331550460856046790707226490089616562515373321027724999766749706297175841574739564422256157859748631976860737447707475397427112741812554156927305833924655265260578955803557281527912193563736285616132173291162070790633381282888371426720374357545303241613379875309295704126965271461729267707983994960469402511657998761522533855562549990451735256353839138185533884177829163507193546209892440308651759868374591834245412158181588362640834741420839681327702316552341822092812328535498151064990014324299586687327462696070620523324364289966077991876113957285917061830092668571881196901421504219245172656214761995066054704031298236548364253025712264628852570656427378587847592992900870333980488596265807835195821574775355976927395434734986782118243989889854691672156214678789516867420998168605292893913426018292001959956876788238477905797449578895727861827555527379701296538349723489832306726781157926163133486624925162405611317730772634507828178948543787922421439832619484513183489261084521484345398328131770128768000007688981134500120373473387050316869179738661595306038894017420823123384983644772796259205072187643398209020624588971618264526911632620644770183415527384783786881297015179601194511656976439541827893587594669053271595691149528912288366173174210991208888479085583859767163852748481798151012718020647177327908533535618769532830230597215359287495278282088671869750383793863765265816581457186430574931899810890746925987921085458494752882286362004234884953919332655375705546695642979202046000893929117981249890336574523431927556829880565216235345301997156798241634005623222186323510549313104665419551275377007635627034970514890654269690020076907263147507453222283930768294389605894433201656306259694889338258038752795430049517261160243255292551308318513815779210476694044965835581794545774741019781473514010077229645166833739780404796301529325830149527186436348872859191277487508396177246393333816285172265281970648951910008051178690898174382957289758528253588391411540209292684665550610776462198629198479383109895354307334271841052378665764217505551785030023188455036946624466649443280750597172404872021326661283192380060501463795218645619589908150267014936452495930298657061607138380342117117445525968468243708610404528929234164244653320220209054993980938497582628543814039840136915984551832939320949639651662167591995081955319185032261999273788009445904464340887806941038784761274494392098288834259418006823419878174615644672373037314082932077616423888172839889748146618339815558437732514525223805236469315180238422869169279430118422607456021456458050877896344002283548880517633767611738750747115245325041099168454259491763018074335325237060528085938448774092859854884592449654765393478442309826247837676242743513897503214551590148872892292269314724194772622014645160188440175753418774029909799986203744387004844199088364301579560481214563043120409086668722959020744236340239083054021492520495371406558623530928133588515754665276618926880749007197042684870405706494016566922986307710782551685153114177293799780619320734816372156294643738796277363495809888474051470822543846945376879565774185234199069938795598507592753658146823461929796517563341705281951727936410852207508053824963011372346429888799057353353667265382751311125471168835753837072440826841543009070900235145570889244652076061935387840025596964497694863955518015505909128133843256865799026038004844262311119304630926191554688331765274993059232183982625023100976950941071172299616701189416855411946408806163780211795068601496549822170353304072894039044094791295859532046128495332886823193059547588488709740495435617047143638701862225196644716205215248074276610751842021302973023963869894077650989200537525745498755810832361732150072763567578347919110925719356804660967108127593184241212454806544773987386702273527451889498843718380632094225838565109565295843657319421706988090033386975442686513271222277962063829332087839261954604175096967816993731292307831676048515866520764265112642738244234976366529616785522626829889967242486480690299638111664756969137317887495432346734617227251678771348412251751625091959112894124856547511539603912198957391685277273441788194259292468332749782488692967444593708199704293210971228696418206816328243437383956987525908465019143969182402903041002939428300199628078874292829397698493336107122896025702522895798572235337913413102836809614712645684997608005514230164340329221382875150620102663984176688866929251899808132503282259503911020362796349778551585836682724397678060614204443489673581383479117065970480406041394457351744831682466553777176244342634101538605400598583552534384366744851021326402918055015220055965832817725780225689512259866190768678837307393014977043889881639111258650676209527300032164285366304304432862639861006293430188126357009758298920688334172196704186644709052386195175591472253014998307790669648960219795305934817521219907774090314054506142894211677369180182886608477089621141523905810808067806271500451832778823762966226562714314957513986110740259118512192483706001121250043906779722183534488247115002736739982078630869539150006030727506600545149994085304655376656075216130903486584783089707752976057413790939154602332897378776753814116974654658170492465086948083544830620392196213785748798589908546895281792882176614713101704022344942626676652853533073559626547272945418845779288496324780104616754391487912655050485221860561803598838398465153681580476700151573590824197391880504402831724463003870878659393024967262708113929329659768341086930719691841422351453714757739781732443218674221078847570642632772063426201313571957744956166692933200873308654321864310702898410293830602276459007733948737566829452217720884937103909039256432435250119502242767492384055402179893215734653866236996420706692986966998771600793367316566225161099712268994270669954028098678262736996621502305109292427730406318208470948321521398341543557477376125692462959898172344743836200775462550896922722966982736575240676011213879665231956616869980366676060636990270978832284449209233676532937389205249967926921971981193682338640516179548636765162840363472083796763062249858522246888862088952960562458270829684243036595269111046348064711788827052762180342929500611422672218975973336016691441550725188431467659209971354336386824864903163499517486765545484822378921632114053404782292102862450843762390717901501406433772401553864513741972363518724999006379331237188787968903793706944389914430920289969784646748843785536293045322670227878387909363310139841588571658024327079148355013302749821471557761794889303049993392358274051710480706157308304106335577873540352969783893600311458912551238848189811488560933221829901555628140125904435266324716212622788404350933461153917615010789298767717997865669712481391315746550065586392678002140127415750828685854946287652843243868271842979191534746225373799257699539444161803659189102535668829797941695014771672643838558363428928598384577949454096953958955658079938175407231135417610547631333773199616908956514027525327702961226410693099580603621820406046501059596306993514528399327760941619087602012660595851010392253429489191916815929345866682449203013741354815182043158143236166228879536918422552429944130901446518058342724594078286960277154400172898483224699673734679017679113160000237647447078054784693037964322418882088759063140877579551226295180360293065992450594747178620412566439968278549361755132832208552975630150797567846819334470484376368028272673453202277270905730161858484018619110363019771412229815123404077977317878551216203908881875699600656641033833688607130544614941197711668844791690531956114548803054272780387094831948795986953870947629638526021701622989586169012306265495827566557045399826775865560375990512568184288004157569797580158611253352657719086220417883731973016158991431448071132541059852132062182045729346222559801217938606051176366465270582332907712942152620671402624290620678064657685178979952064456769545410336430822930459791573492798353444170784756559919735315144150843967631569874770125743780806187607776821451873532631313054866629288245574925716934388576135363754509192848601542918179451358784069441911390860934069357150334855560105936641654451437985663257621778250307679631748978305452180042368002813261043026354842015054414559015313430744271534724739698366377665560787127698344022506075588325676301017538351678152882099474677165850032813211417613186126801801685647739085760743157296987104333203271702639502447784682742460155325136489136855164049320690526076999459511368018077817119775560877052920641231320875078518127712181999415999417702173209719924373276808976615124599210621318818479828422469399103926886693299582209540019252436764064156343165912605104679011014992864071526372016478276296915718441215475796190746588834462623019177101743614917330750932368348560093728898915043960082572162639906746975605089260969716026923975145155973215378048557425487072282939010277391956293051237298212358274082258022273602562463715244697308070285991898309533039746351343987033900206052351394368606798766433072239954639916953430485533514667533639030519779985395357272894023002956743479107156221569707800074131449918431408068315442287072214016972049754686081942295181607426318389779453833425672800016131389176926015684013073812612440475686933946814815340591351506363664821863308789055842958190361707768250651771920989197153808533686308492143538744312034158463349229206773472255186148696166037613122967314153536443656365473891845649482024540431213277346275246502378051305749882354654592754827504674305751404783922602961239424450793132269754294064184194090188680615068951183974790772169504062980280372513012485662169449491048012477779264862246017550183325501965601622967588653611682975050964100989467746154700646755072557171970777450875967961882751200368736102914727383984048038594373184194315454274582957081786340081784765742924562222873023732513232333906747410020511381758208660302180567362783186419278257158606655211490489562837694523964294809207143461015529876933329635691515769347822603860253887941670273821275332484014715451088249270240777221701552843833786261306291865036962513014069872455003241621723257342150539935969119400604368298655917385971327232461576811423698370629856297561437227127535385929777031307759810126702942889940377847580438011869504737839146594995083837770023970383603053597709333687849968378038210011728799182079531736549119207462210558449494210921306398870994719740673583033395375200351395647342232504608835739363579624875576834987028580335352628823661830644624866868746355930408107209295842314369207360748470783875104640771492801954221290495800247365180706334538386860741972885260321370938099217259136024238418224614388716975506143082294446492720403328419062086645051845181080355622278632309345817367477142605794678317555342664742610593269466114916232566714933714422387677128914931655731219447924413583328327994244743050041646212974242058326619080423284196226624727755085453317896837121297049123424907395418945967707164205850450149587872166569193857491605292319549848924673283292232789338688276613481275737272308081001714325425772758721761889022221931334173288818677875619052583997978324564667194763379740043913431253520638289561164571200402701125894321084191875703415103198759049213480484918844681618425031602082091824087296620506963962666803789939954225078968011455840847956751395782394676234241473209196954316691912247754273887996934258636970162618566048070831398448503896483226725057328165573680988823210389478217216486571160879814069724034631748274404102388640826254199563924851147373957611735186625232440127245145074076725285476035933339020759511647949124568941764778111435759626266175067794741602926968774569675517769907920339782337408744741310166771700176776754034783332111302096756112539918282319218385467351888531149177820624500360366871604544178194657609631669866367330049060165187382079155343731973781775925568193671497357441623669357923531469111680779240795681549587349614578435923285817771219366097568328863585749890372760507863544494227896302010353190438243748825934148709112113860814024663363873281657555901424425782248749157354396086649496084446213676314769562140591023329624553539480035816923909770156524782642578464659213373447471576264928459846772187580690683015395268105961235409106313936725710032360961111696513615200490256645255121098250033948155843160230613875116619896405090145754291080721112200825090199131243564610739966739311882483522030977851490220252250634402819578575588428641834592785542559052192919188436825369375762596111438002998721452226990878298983786483188825626439386553655320290913548789104552692251040640415854445825550671539131194997175526374420402342045494052319411376309113004238793220894727814975479886993022913874435966087683798705160137984881439658594688432121314234766696830661327261483763422777952209294555618171021052583701542146734466394037049469285854506884678561902326181302481662533364461559762815627290053325122412241630158688563638702812123125422136394683230065529213727118415618065325657176975321257326973558053899538405245853596714310984051060215474651755045309252770184247880934337970815543547545984980681022680613062818809959676104391438448680632698292395976091878551855961010898637397333737446984675944690229011629996724309645910138502019735851513893993906128916378345528037195389799240834476421617003665150083387149700197289695674882777494205654282020213934081821664393116592536073722313149437211324317256106295334015571065091545665042563926179151621319833410556255955885745403384079048892110592615832052667296896719295575390800596603358558322965482832511614232239142860128394111419446655009843652344330331830910341277750904395897460312415100653560723031018872731688668680228748540989121527815587662753114653168313133816737315191526044187632391533756639539801787798066633001465696238451189381245139045966494521701991207752786100564227103609536120935601198778671612051568480764285892326336332295301183443750141617146437703940492063223548669032948519740790138202971924467490600930995834296503969904810279168095278288104976875556539522741358849776569403979084407169704236350347050242335836080279813301061642519649856529311243441104129941274384721621277160469388501110268110302256083160364283848031012226439323617228225664126384792750526643378954837900166213766834727359553054707348881710514736881118282943692721137487376894670840900460265190971270398605996942838967440741304950417462406540826731677315243268798559406218232965043528959241916150029884710204177537662667839453435102891483813744506380617702395593968412248607597819934644827574135307057904216733375095912171706544679501734057039860834121301954101973643578391076520048762644786034342219565799656613138010744529404186468316459973444348000763703031157966568325747453624700781715152927028528091989229468339992601511024566400129993559990698575753583965491207683886590791210200526489341255699842906213941193506484724149441155917219191213918085077226462438366257366142061596840519412160754019826036687243890604005008262008426648592407959303240179584528496426782237146634898185899028089244993860027871242142691156136344449554982025296604071769016358401997912611936957305148417023273427212880996604117396257349753798409622493285845069571081479329791882386441035927811959867567194211558447528322222371703181297552840992591280987115326007284598152644659568167112650640356638529246015995986496325065768893829892493597190810963515709818946523059259708207481583790632324757658025275242136909777683600437481722649246616385676150356728462677003148143025479649172861546647279258056491826725331496254401641494910122549061473142925086981905124440826570384134799381448760830272522802277764615517047163547691204914291126222840829290094873531128265219323117031250919140948302343763084450716654424488990907925437971830983081079440519142311340303079532706081799073445894986288877400573281637711960949666939021865855004359948936305294097249129778806020941186927642201434486332328631381948327939296080103955759071651884327032226007318566391070940493758482752538679564816612443338907192717825080411516794350495595427022968120910407242096261271292969399542623064464882472825602957973725735620694096940530146295964764545374401386302256394527881433114399291722981701852012351398096891944913610116326052329707770745049046992410585511082825798011891155634731083457015654305508334031834393660106607916067718889355687188605235955418888326341465975541198846464057476189355875685115357381617370711963845739023889198844235641833589248569879231491857002563793169095814431315988948574880284129423791406284167138962137882796665102158406299182527211863057188410140320659753305297645910674935801021028582245782083742591790065947954420505821410866877983320944072997310778927472370049534921187007858843720869277012878143577639498531793300955112140479991990065774345509272772452718810153607785863542890477160570206041148779276770173461793750533703808791102957693383370982987606563755186544740477261556271528327262978357390160399395260519207131820559534213714872047277933690035970419002913228648237245616159289084272824921990820040249752770606342417840639793837742463106503382019589569940580088182889348826701982362295087962766603032076999780307059035566052097959084932718240414134755031644112294435975993270546247086907528552561130699735202406075950996459404417375272302917445590246289587039100044856122399748115585706978172525726674133562910544497476770917857437072604578987668931754055708570212330936984286991124990722647083593625873230479146078408548620372547009530944073261902572997247779724602106398538104948973475306327369468348771350135502692271262435962690000179282719273453516976115642125927933851629752287711900096550054691883553415683383245739750608652033096909687642705830663549497552029080719384349055099769177928255468286152831658125309340441603111180368058072613053632524889862932516404874017327686685540156165837644163436260802503526119745664933238054649482210342162898614639943339045904033843255812984946929770461239240725435542656605179291764717160241000715265700777854186629858423607050965152102074291155375635526243734256815326048259509356167628353368309674140674185267852127663520305691229627785718538855859556187425234558414157040086992727917879473145944690460409976606375774118137672973582070772877223752190256390269008058544153335680064594376088236337605117099980588164386366165715448928149141006278951344369026864277072329551540826285058530165614577300750819918666268668240261309735152969467409401004244441646827176517845030284313491233221953930327591440456365193509418472124429749694912859896514814748484911741233629532615599948493055607930219288339177238625394959344013137156794880434110851574804386724322135923357599133709434628236432868882101488824077539837116992090605619500041203149351944968509527760649330786180305501818471230724365618860616393962209420525788427320624062358584767135938104690424425319571598626237939436790903317510673141476347360556063030571758900659227238156688100641785835939993833377873637333812706915650011101560767147829703234326287354972534410030069459517550333957401375176506874448491831624082751546008941724470794699726390323759974878879978063118835192765894620594063943906279430086473049122649125825207960174272537426793235067535062240965936226292767216823540512106229515564770168905244266137155575921611708763890633599995325193082849903813381990484110512063344051506014418777137959808066253198657317928852616751970188990464131214490634535822530942031386415663625983149268784982742294952377779469755104536851805355424845289520586410645688951009811539527128633692785014050504973567693153409926523607949458850194666282773185884874324642197982102788802066184888970092068838777309611263335782218570242336387337338553561086202248709838945416628458621587268290997215620769128400217295824744112676947281442043162736893270673874453662804711606499503973760160351159391125027409832341873052090635038711604793896363765960857141962351912721237051981154605352672883379382932953174254285345224367369742434142849975164382764404285519615953459467796585419442672498717268945698653727113640785786129065057404921932799469399535748520766830892476852036062192252967502020577155185371393403337854308980829364170659809003281875259338031593702297230147237593078996763548759992276293319345021844006627648184736559388553650177700655536500766266108452827094417689227700923735209533158140429244773071391418259135702543451185331707733303892959206106673189113692061343299720511730739833351957005748096467015720884959576880118365247715477665970156936988996360158724066349613625765870613281059079361486121159667120320795762976154002051600288207840802274311142189019785556088995050134328098176679967544176016936758126438000113555860313965731931347650309303158445935621299197571947487746476784612815647991788571521498270464384675280969886264838755074619283688146275508529355968558154353629779549561873757190489087427184874848860689943856044812048097491268663741013794465321058943862909977380089929887962033075460432394369783752778815741094333561182833761682465403967922987312904765992562849389694862494729049825019669417434152508605160856312635661361825058660555070128752977805235385644890554201561573413337144830638995416108054746399126406692869026441264267496585304509233104020472860091771434381954960548184618220602796420417584060207314683222784751257989078483821608831330849890926381207417583033898458396526331427629299054764065181393380050006136176390179218655537076957273151984885411384235301361791390866481262055406944926412516470449543677873906221045708070010152578152107179478532080041290444542070744659109391608112860330614767176748576910932513065489887985457176111682854043710049282531236377955733194496269675215021315657013143113662686623933199530325991731298913108974576372722049250534808300829063997607832587335138311111783053969287006100719687954567186682834634139310528021670229800333949481036866365514775085642434418707863322272235938719971798550346906312546047964567011132866357333086851489143837611514337210199052686089617320977945530365598039713321302102137175346605208405110234625429379302637214286218948674012269656968708602294780076575780275094768509125889327031336388190194628078060167644888383333638416121472972909918040915283021645859543329042325781196626692971047623536437866614378298047583771560077624254525617481854298772762886337844356898706046836229363613500602800836646231945337775496805908700419669883869056404684277642640985547467238726666736140328699638099784717827727720562593519905944806875717948506333424108930795009583956683249634679437176367871450270324142694096163253054160166328846235894135288715270423627265157273860668574066743575029515730261234488388860651222439757239172782689946825229245088464334048150555207511430344904860101022911877965139929314232821324002584218535426596098789677855047766901183267125473617215939418989987440234010785022829328842762839799704341325779222963063164850344334666194356997819772336762622458686992076036578138304970415724841700793832280164569580606923584620436337604511724313229737194516451519540672002275245105187886378044626553316746431579456079318170644749646261570279206370672739845214146876170774467099806269267458242216243381358912777213692239161815392277160623424430099415722657574942129553771942609637512833269633901690248772656106686778554707564889611003958808141050323788782816667667660288629519530547265048993297410968624050260279267431618867416853078617743349705978941481911671581957508044372893233149328413604320270349393403127015756395365605212484305607883436044082606210426302795760072330902220910044075530163104884376293979062821823321508871294029589881165830464364438675879657195767790405336977551908500508275361109325533502469842779719031596181384405698232398756869923896618318021102276831018881110540348152530867394714609691128926131787389535869319483582297000578081117281376574560136559691839213945745850815161792252815636563574225451582027765017980756525281292631106110310979251666800777957083663219731767175909035453560257817776483417591119979744412483770119107630473440506048593541086883640102260680766342542661340159058176611722190772915021764685591532910227605404146901488321763648444591315916506044757133819701974985407825729832026892860550072283857633399711557511760591790145698194851037265575512126361114357159965946212145632165408881558113749759253232104916222527566531579674093724968159903472575622394980258691442018207049606125249273651243571300301404010436708033604630593471712292673150085444774624460551825167223250381423047061273934095430967209750235344352250152575993662540399119129794382232068657515645829296338434558805358131891399335009726539091918143451704702974545253843009867212311432817429666675639600678814985146915724261155880181390914767728096485210246238388536514400191895797459662231695107686359918192696852262175660416181188284036201501189592099201495020663721997969690668812799554508545911615224957300943731308417795191061818553197634060308875147874732376520625081869217821450336746820281602361445063371916451484673207887197212986821005473864802652693724610505236061819246137185093677417836859025887230725882822513042593534664487269695654790003697367120678628472593598661092170193573358220835082836140986024770617974439586320012057664177583054179763277266888893425265814742861684476380103339024679665221522977890815041852642347817215775936816665743076554721844689229056348704866175517134196618959844269668538538645508621990612835946126854074880913441349772203550391153001367340368821105668653717765229785411725546155388501518305375325615803010905279801220646561670305475054970641727241186511111659753859356050295130322077194992169178462143913305763722607242649499412862267178165637181272942413383505407490301617580998580214136831194952344677558195171107686914361218092439717423946610252612384518278684472819692362038692761994164101774962203889146577136237662364256476614484943550778601408455113876298342933613639903577061918599932002852315208295613552282534517191048655376623445671372599735263388435340101929538476123242824591673564305547426209965774351781150707625899176371968287231572241326762533838199757860104791364597379889493019338311576227985999759642782265890884991051852629548924779126529354303481732984938066410554096670356878097047936394345366709576033734292262656165022663442034008570188550819611562402263752985165386792459293609514629972692090932312455932708339992921788107110271536001618390380529008271287645491066188463060465509389909811646664713035046999040001902909503602299673072146044567974559792338139196673597586220892943821772613328319199130713463183511058798039985715980277007943702799635448854662279224597487518438067658575650960150907170549469039698960692914542132009765035725792134423345783582833502010691221739994960550366372630268144000518815633386466853045223951990731065409261503099985887276285362698049124820190149954629740318770450721426775923412701087692326414467922045474528234593105364425194930667554624874005280238097860708843425094494188917016453300406818834695435743624621073312642743400744979957311898701174217183394781841230318236061717262691583773308049991105268110325575913052079735137337879327905167040164164558238839923341736431688677740156891968274333565162473487650951104891325342815504733335126864062298938045817594136659488029480582748113376537686038114785991837635654869027831852391102813399202401544805811281999047604017226607155219488493123310943979684569978063798445501874501328756022487247370276405722832596667795034250632493958685196056174031401691313692584108265926266524933340482909679300209051965809792557591050092419728046666540394380938842191873082092498753496063750772355597464173280168176890015025995703086411540675362960275877139356765051772863069459187992250951135626701358554337758206935396471710723361222834079999183393704832407917025988031053435247704962249870822351558766928565392418647240113798765512220470048583161772279415860053011470715103540258822084830088307790907585604996776530532393278175127307236626851640653069111362596210960825549500255787869336531562345937569810783404061022600124537936444381264261448492867665621081344008991589228812338707701127883329652002639152646278494665003611867360274465338462782387738928278787191093812372799769659183367969452736329634729071330306755565363997006106678300687798938108980442956850251547326489008633965691477344839811681579102918120247596078863405726772763339601454235853648454259270275568727908109635889366142669653469606046524034290551873915482116910870480483152788436997419332526377513069926864545469871389030991227579632149960501090145882382699234192591547765045313104974806016099639049878710941290090940947066063190317478494343020302673008740865528444048480276522373399419113094309760574825634818487078166630010870259473722179674312049410122429450818784501401686929462894501645080196152223772879678895131926057023342014716293404097635854286781365976691251303661701061805285403245002361840878797544325966173928455315816166525829692469240318851939681122242394744350820665574209934165664879837496497848197187811937029822937653896805505791526898710907794217259836989781412090466689074829682405551621443038447617727729736562758884010164751266821944829987868599494512080632776085374426456944553587917504192153688625830049427968381700510831498391847472192814015679017029537374807486609492405467471212252532453391041196759833112000346079107785702379248407225315089499871880318393525667172388755515541670060124838759575003949694861599060824787534885628756619211655196525074118277418768293407803214152018165388269909714826760955643091378739046044819717765141600418174168557726299486588613852473263203721481006151771795500071501593623670095897113770910834192249476131015789073881647430102614557288945820351892866600090686776142126283528680639376023079450683173152313839598786978877917213337591238287836311948190878698828430506233149050981713968225186909376942425487502022141147346345302186385360096320467772056332762499032342141698995947481292983939121189457700124035351101078722917098903639899880943421050417775726116655258392681357495950045693721117618397546897869265308188587670573226205654431573906839856696003067458286012515115226574600677241550751829459929675877542999411973050207899065460907499997818961792203300837562914419398588828322651189474204267331164385132106537075479268658323514342136548747727735163543285842951676757111831128215120044681460602464572466374617157238268054470950850162298552577202675754989665501066478772859903732764278941831379476052205877856659175652575514864234571864483680729144014808445587393113585600605061661701878581566175631254056240793233820600642772495763470040191301948759400229742645134271968548896917546782859641709732063463429326031612280322256035841776519335996711099673198326161346524663530073036056843219029294471707088865428392396371774996575293038852466671407418954017548818680285175269548325827960011461648125145764790536928530070962020680711085790729578215486058765231786099178413256623209263511230765644116655868568575639385838032235087283869196807010058795360212949412139238785571215818723374806154713683566623452698386389721107384140346852475762978478580758496675320496893183417515519884868733313143955165370250367329954902622162890351002509154348523990075642989049747641631800702956676730757317915761321239435943899962913338238561919287721460194985601663458805526839546165163513346862719239481145130053339795897440241873969829091448909488175447386820673888957059917377881134898706097556795890241822333261961591833414997084146202276554135816802355061958559805817754400560860363912562494211163901178622904710657188099564900928849400136454916373956353909599362683321348061448026634687562300520699229713286036223091644616373968179087810874648130887673618107586401403470541672675206309255035334870495784404714668038026003852277236146868035627630053732385122392333608912132466784970343078784898196141652513193383165708415319569470089047175434945522454021508939572878021863335064532903663962181821875270012149725792284026618592602937686479607904020406120484352102862305409516090493193829828464611928557770125016656868115891302986034725841567183336768751298174585171608410007052330422111147329452100005776791464339649404504981574725408003864799629929830042037784207511724721233333511630946583712565443446155940300689606202535980598794429005173057300158242833456023017870168612876677361640859618853294119372366176408825929208434341527339110612286673592933393208217188344158063443123746629282154103464548252243103700604386075042039770456717105671513564128238536681636373339065277041824676240228558880185030114157896090759967507937320454215254231473021293474799384202949433023633647007231224299870853177325519632409178766962912453344231864451545827027693722478097619809941833390244657244910025430338392970929458751067585761708431512915255975518533298211470043161184043971675708857067596987519630573901633598785759501681139949430392493128872116375593594101608093133188470911437422765091666915861952307957709654818154939878401679412390872907606436838100736566203834749618752107423644346910563484572856022603638380096402173871782939671690533814672254260430506955948742755068065153516427069338049640201519151266329143438171223066721598170268377907108097634583474377892121295108773170328810587784015192593418304363869729247018969078892910667304018271130805861427849962985122390713304901933631305140131286834233947419991332034942468946000353868545631241084528492612402245384674603488682830136449956580112602180812736856708384348347528135615110177275904346434738656376615919957581434324031152747312177977720990340525384228968107074124669059283910780433831958935419252299430521539029799922125326864371687701848508540197360274106319964531911612016148210824174619719320481921923754328952774891839401790136450241632166680863094657744240037233295270998433653547395831412220321530072787214184412795466240693271887508457007281069753882079868187035377559556293134356145816774644707087714978513275445053507651783410289589289834639694947618594553801048735295983035129335547672527964856877198188793055372394308017291038289976706509677937176698390733176033029203032952659440843606196407760150249797497867638020867732027976984160382422602245513704051028740226008851348244175118763025775178173401899537015969605035264524895870402284137587864279484792637543587601667562595849088930249071614282010347765344523126046813488228603860767425656083502706517334770714093272026958880882315144051033878203291152864032053364483594299643012599148959530995289396463898586906028484879565684489229768878820273844513947107458537935977055628908077518772363332781637536608170808427366473116497320005207605107148771823082624423507711442388430428327859513084346030445678399451376731650992877732231950876828587349745163178482953622377652217196623528633047752686945475284721493359298988618748108813246981068344282570088363265275788083330407167419885473703749919239133611087016814193544761540748972454552693595496055681384568284803977035234986171842015706144281150389238038911639183204596020004558195465262669572220901753103857245851932985590370575241889808536524407636358148259590203369064931282122506039068986432817525895540852402750752203258418522090830758866134329224840425442313431554281149055919273922236607973991515113803795962989364142119984993735647795488667046532831305420106036930341311876151163217262355882346166604616257533981214289491557585709078250611437651655900978370510373081357877274595091786381637133337593698761629259687442735332627310321325605170654424124743875845899693820378890786453929976410832422613773315543842155173570689960627292556370072737998654887557269412538616962257400677345184400351779829398655413926020961620352024806788434217447493814222803996769380912239395716253217740861740310120125331475384019126217097665148208656314358684365164906572590210198999254612294068808453204897536124433657181239479760159653285634016056599142370418941977821175271924957259445176104028206624363289476208028712149176065683265263004938009066855072832402305102566711740786883357397722640259825107320565037529464689162867711227344680776565234212133928656348492230802642819708209329142133259227407355603133664372099988690169199114893816021835897879727765210083681600339894955593595066009093553151559605950652441780410965824938793423116346891148206419515950654236174943396295390896691811413810053769827981397080705624152654870400611659494868396807664174653021278836342456167095580260377061792844008070411631398781782171813715103168802282512579585020498202191891942211989786999376039406403919554078859340973109210450714957809074861140035607736166369161524255784070990585540276120878222886434068028184814131183697875286279786031475576319490154366485401339454010413232664729533963723584367997466708988284817451749964535923288832499227877031689099285029113011291558075465264729099092150237324658672992232837788893727989965059744953229012012198937242156819162059832705317358200800805513577416930513123643586752583095103077951204680503029767894888624154790803965165549373848661187107758013569038922829922044173922779942617577697896647438663966340599129283370847853843541576369759893089242477548566996292530665836897680092708509313944031335222204036070214012668916272491485045323114509920736943775850006923268715675217676337793046064808373468847972033041631451881876812440757777651941391715852389328032607398048549472357629468727714473874539339933429343800396836831135369648105061741384313922552297947215471505200516140644440076003015471898128287423077079776737814681830054602429713194910825095486967072845690486140209172866198139820793833774879934909352074817392844710069412856053299616820446112031741378145582339616396873270661940115843958474681715802804667031967950974602392680620529488419295157962830269529143528952610956629079589997868889186832790976017952608581776961525937220037988375428597243061369463690648533460534689235421056797444317807515220394597481797659106405768570706454940207887633831544862594648866422632478335595035605454610210208120767740278232426046625515419263282182650187702630771820448486154058056105373153470192996211687276503608961368365431182218286326913223711669284150954371853990555443856018535599388177984672086100018319950484930701441124424127363582836494338486451536434277035415531638592997158323975559383262679744635239621843922010473269591100183403318128462178387803713330084991933344846996703387880666956239857354937623035374534291602805433241732170043211957298796102625029242864456000041298781636292008686526698807344965190522541855840287837229861183143503785707714605355385546669712423955738192349390425278029530201658707397848457226957469422975419885794838920044923954708135828279535133839880140466931388338207667531192087262431326324084356117420880560123705260594813714662945582364823389707599581106406809572305395136099127776910607236901610988009503071926265851332387536307639467906832363075702059418777735105403794334363916984473908820089180179477793558465789837504896617327840844329123040988537996489738469354851558017247098664417213074173376015998096512353040490322693267304184544026734324932204402778738944346425376866676393605798842982749194134352686379388104330346537370127828214223778336969322328961611021199890239562517820149448406556491333203311939645728782725057845299114521353434974258789564526464483565010877613636779886145839933104846421598286410812070840862325584415546311244538591948949446557246649272020312604925247376281623311494201806301934572105969448917221094062326418741399159270769434068271456827583102363260679138017385254658811651403060414387244831379953148647097805065668050980991331824239133022899469675131902360069176767139359344537786074012250428184650525071588717362401910415991990331068315191880177562518803039508577116813228241124626294099911424420899487362791801193053774057159361081279081798171871238871931708697111558401823320039672873417243514873853050849205930805831990373256017935015295912806324744789948803336223900820711831616176542552319952339756985865149175552704277108671656408159416326380717603400340426885955726847316786145799497444779808092258351786729514282946919789775965192513394500439001183194345760484457714191037458339390919516491913927020945853625566547351697026309920197259756766521596897316518958055424186212039793119563688162370524033017275871702837846971482455629587700704732703101662171481171849398786841843199082290997938902476202856174593640789628838859974994412470777263275319481374577319881907522060670098605522876417963002209801854976788236430839593395940447086032932493955294639657104978418770271689793723557304640710398460424898950365174839002516390751760772103906554587699133233270292263440092984733077973036084540794991383139969716899242325092511701498187113460876636044579324759989082837157908906358500104405011640097453790032825714375415265904974962287973485141350804926072349811740795284351496632216289823412901890009746157699086408347367398001215865875690134657035735950925799977766380702047770429889929600161821144215706249609094172159589375754964199480091584216368157409989858888689925331732279935632609051165699622091822024387987082268294855191283521995174492348208219530611610527292673729647545508871264535254289375881761080115629859821500381892083672329346793157472634351910718215570401597806059567083749322036633994368713496445207211886511886177665307834049509732727230433037370073263549975220317450745970475264408960812819459953587419454863549713881019880183067283274322542613134875923048240980334120342043493092194943269335003317039934408812508012573737525323181696027486028136087715327015728745366900895529013387979346668404511376019745599801591206678510540121387473373840279279699717543570146567362935425146377433272288849466854765963575938927263274846073807547604245216189236253169618602545797063308851897238146838654929159002532433649640893481080388075567986892808002668285016444279269481318107363102065224060419460324753070870950359584890017451249066280596326005136199798485926202751108602316368404514796645949446710309186756136327670111359548260489299672418692502360677294677582286611459002845621464879728102839430298866003948784061260052790397099829012219200069657325330709252628678268798020462082497985725504372149988236062497162209554162624781792680233251640783128785526757322954443790508037778431051933773207716723967532584697339557507216556830262849337539093350668977180204112234244688286970515328585914003616272430516579317094017010682137853744431215837735046034068828082348276573382627006162930815147214921118854848756923302594939287449100340806778819242104638648027501429755115654480529516458293068144454707305704422697330171085563661842300214981791014458720438185091288867138943499156935380796343424682201613196794087695227716163873615131849185357816543004356904285676092319258239104442411549255463355508205996135809700355409663216979122890000410484657791233562459581758809846190163721466509652107000956719772114101492089604074450763880056267781042026132747222375968015458007550504736413396639910922790309642123339800883404375404860843841976688542364709733372762292441552237683898150849280052519008828981088544340869830783815072551982824319847412289939337494727924738029318643062019303733478677184454843167554618685751641355057634738106918104499258648421614343502635470510178644719733072399858225939244008234137406844588716378332043045732698472095163473515563231773743733100807137080302483390754584237508386583008573483454320758747233484179177990438367824502116759840140431487172704808401524559019165772586015218404316875442400969860774180366502197154255209969713560899577477113389084502940569980094295423653444721543570186317918440918250469873184912078387133927531859418279410641015698128389177852064822757591546683016899656074612676823499072421915991997223154358986918630063793181327479783628410135541624611658408734108690701024972809578782649745548328748169606438916687632761896513097989090950649670102499532424755093459989874451067843836134360638624856758672780014325080232626629081625969235096869948947866424290089022717055463297944687858812180088407218041312924583804909821185018316168465939629913804838030592177487774142328870358037187413018094752362706139292017786973469490151344925123283355857874307102982298057910223588518387331028111114714922755170483238769227467058038890441587575667883686311624967956761983039374594748071713276124895712728299915729559468836228581399884807141833994225193217487965243665484831732684659610518472913701186347792968500043835841270621287077696621985475522423996781289766438830223682627327034827803315253163346147929286955671493300753101361502790115869894334232411004986570477359282189728877650699333273964195426654313996549330447931231155544353084789281934748542871386836405921956464136635320895959948972038181694932173332335628304247558058422050088708378494599355450677645498432070008634709960932457815071426723339699152864527707669580886647982789367909506704129953052729188603607675416964292273331295609101041343090872454003499838388913547828768589778852834057562575515808666605311956168169257929453528890853321796665283314513954153644295565908739665724239868989012177510525991468763212697884539976185826210591418035425663207750847733102817503329325462712778273738832056743393145585868653414662447182298844558734062773687548568163322725465799880507322630230895786833435777206594324162992658074577302429415576329070884839619144611182271825354824973005362879442606659573712951807874462967420294589689230032342414906554344931810609817245935078522297217255423976162408870918256574376774248553455212084344491628712117617110670306178864043952841013554955386611807974411967242088191030890338015058592181954549745557763228155307805426046066185143991894188333025699101456875622924890389638476572489128538654735143852142683992416114996256695636442997490493613324728653010532801575995187388790204707550201596808939435105618925396038368497079302465772777319321872792424163357335758591696853846509465122186075482825545008846580202497318129968140622976588867329222935079165633262088884013478470840388498443650141818242351304537238822056640107494709903249895854721618548010435551133647193273593519130842576419305338909171155721689880855319870752365935672235609931795532338930274445037916210804211052857913572224300368852332900976189879292678041819039789628870098639289067484728306967403991915847006435563620007878225922618600129223313488109456009914166834216715040467029652870251983952922150920070319824824037055770746376790891233614643373468498647240031458424526687340959208571774834433250520796610680885093445737717131720172374795870377107872979268940353690832646950375514921676714094327312364601421172209076888373360225365680188696932916636016506150937240905160829860880406137883501972148236779076216881121663821764060600009793128970139890154259566872274557062967380361454764034220964158020471526004765280533686259181173389094869300856982723409614441371942126218980127795224205629940783744297997247695532579018487776972223445301004591728869768360691363954454387276901723607109755892065599318106624550114737937520492656018436249959539139970983486300220008651614479146182296667963784957330605669113040121920202144554616876860351687343347870035918081827597799066003149068824738280203195918254710955906409640258668540211967180014702391273707402582640093913495592935512451967242710650664749831148099230095079636595122677851395836462335429037182026484688435419794486577259359394202836157978710777450888497796172479739898746265949213837545829714612777670780620052993059117184798228290007880855573799095032578848886586483179503177794139291015796290345785690422590370507293973265525763661909939405859858517276790691913662313874044751321013356627142575788342565977646673496654154724938534262195157959256725719527515725610438304205642987013494367325729418044630382629780479995865447138789362102838577077532278842657858721656666778674367645364092369721492827885353486953214782089982121764500138839393310222601295837494659089915733500711874029044671716458426976186663931648380438543492090235944261652153477028343766745851243510210076564518105354474458916462501938974017701754939960787356546341454065101248976902035492150763208300229332353897690604730150687493669261285409041469902996770416469555159786561535359762070811278607055254758242338878063922990362752168308018233796615037711649321703592296168146115516576242317110222234200556147853195558090526971294984427051859221764349229600969093984046791182571942135386004007869772054578997455966275474696593573710870659970155162087306410774301544161041177531994898581498967174152881720538605975465113882942035057399618198761495278889637846847033652003151413584924958662964179224714707438203615730665646160115696429108582650669538081576542492482652956080624954980808670915401179788448961648946591937804954118191321174238540309312515546154304427892699610461332621251787297516838151263903838317273854234532555866869754068305362946476194830435798001208537646218325545388252964193218337347424955485112522312364144570938704648158848783110137655643501406144853682966635756500051624088623108702033586405160247688088771129932502811809494043394327722687023330126169652541344304043530364037446910692450160522134753867785581311464908171156334016645764759625401195719834454911053500268373823890247957552697624821765148395557685419375893350209647621650018818371123372555502219927396875625042154876240995490972024320450383711870786045821030230325570043706123634530181066617246982804407897571248281792472438575577790007120802544933180360575502260586963309827853658593037491139396489175680491021828883908958886866426666392137961365901877967264800310483706152777038864066511559718617260885649983070840921450164197892496644089787214604309819076057639748727178028065456409616341240452603855704446998676609290226104898013910805268419214180422195234940214034314069466031569860370603772429262720635969076605905505153525479372362379626276436981610767444518056049497795567474027651830747225141560958612217190364639462634525934723192356853923888326671138474911661466304927357261224011753531943433863886467932478752824619506997055154056440924845543479990900704006079488621865648262815958910700886255162614732506322904702236650155070606600479060189171148874443794136910769086542740984694891900260633283232028044205015082564886817086781940058846880930880590906692928591369804935728512350253564194293929984135909224396147542325144970297159960767116925996116909836280324888597559702496394589880930793481969025463939009042426290820001229319490323824043099519556771666666341303651469015999573838446717165828730394729028067132822685484125308879521942139974968707293408791462147388078781244754858890846061269846542188401834315763579851357467852565532140563208239556855412728893458514118073175123672878875513858743408003355326352817314344067902421984561507400258079508207030938199244192243531748243009582645065739470751975997545344339388364769062433105451021813466439709086845996114467428033301766295753507727886967170684617637023344788375427558350112452566573991172265593165448461600950336547488044984039023503307846719690366954777436548913967420000263658980904602304825668000471010961176521452840851175699465873943716459403141160126209232485823371128504169748512550023521919739323982215828103667360157327477793270192550336960875597737432083842470979331406917630393004674989141240540431874388778923840807036453887613595052540949701146399490263686470384840924891806007375507809297291868579245455272273439597540613481627575923124925959585027913068626523372079879874173319292749755863071777573398419183067813327002196378264336489669271841064303638581719795443189312971652228368802277322818376585966359865094889889399783712934237807916964254689604555023772587703896277884997176387583143435915859488622151580879497589608805798001896253591053699078074644094033836081806354521222886737078112105503728536160113296508204968932721077332459450123548553925137017026250888530553585071760557416432275942260344441192344423358637763622505799112513965545930701424365251739837879826343382124948465794377798201930197083904230143114570680599820263574333034069211857222019013251936358182049686692014332472881019607509243412528174767836362054835507220035000719968194573847068367572729268998226570331935467509935730649684849645447105255968371267518991384978190614970412981963770506506710325150008386866966286659579660361208411955249609836423149568436470320250185384251553640303611935232215873824834135994423719960348087892245817911747343908042629429424722941459002812678797924825679197281525836624682589008994290314759547387779324711216377368014454144816321554031435703342568095569101484457687294010464580461793742277267052543502543717956440343467670250684113791626574317853831592128600998230094327640858681082892536965451539913633823632473606255298671414072351445004671928331040544250442209861543287316057156580996849953318217715162384526406670982924844372224402003859920183581845840955022172847676991771579738084687404470179651502505564408668608874827412359959260584974173977260223581150781588741853012285800451621777160768353145559614201923303454922924392698577441957829604987262348629397626162653166694620316449135087078443628115452312586768630791427129901280433958298632834725719386203735135220921472934209376825027084019198666881838310303573403847953317294869817365283939845739861340383486196990411742034200758112339498346663406963014070506852719441420626836496345448564721596682638121419435962572233585574252689090057374638017644103209976190115675452105193941751633073276961734105318179217032786356472398368296779427179189773711766124328746171149142026615996308189600916036827972179380832577027724662403498189053685364462005772777586481709600030347770016828189229797658540806305132428506718390464505656765956117345321837347422805186413448593233713090088377928903659299404063956480172112027460933969470721667935123552318881004275321770066262869490182361908520915580668179535366244054322658575572387547950067671341872642009758845516559649370236297598619779051725796441629295815885819915053770700747246719521907948878629491645574830538170737796576978196016288910338560368994738720630377417668216991310479495758042959270928069245530430862724840128027086440656991914552629571764699149158650922875249201283047749321015906138563622429463629044954319119994632026726948651656761965971771802803000105884818359463279602819053906816362609855518078197529852314612152855485494116456470665835109992847139682033221648825633522963359363596969354949091709592071305047399799934547435842449480522072808764928012387837529332567587503650576974073479403760835972263393100578213430919635840919818155774004180535710252605764318023330983757929732035105286960948543432593128856467698911937219894088184730979960948915831749541940140900454178067065314188293809272360777585425087382262180946752989135440644800758794168219667086175854901690701022387770182968186335705224822473000329987150537082307847001675789442079876778463361738712389783168534111179175023741577889453890814615885485375243272654454526313789036727283553741705317973948865298454418121166301399685510684953551743859617401498535284387270774380634380252352297932748576197171127725139899728914061598313826654879307257342578555685376642499535859008208098277096089699319350421415775186270674007480641626278742917061960815532973440726050928220395655848995573242660240925390665356548070533624355434479767838899541328694769739461977650217859611286430357901955872751129584715282859921980726221505855043472477735086814025439733789949930265829467459065750124656718976519188292932220645667725427737386718565736707862343252867814181590399095380214543470543617919104533787134979310316753180031968620743562011062139686181632888659171043812351629170507087271914052510072341410871726353048914690501990018009020269509426793873030785767585339994690913827748245312477801531296145706295384688716843864288812947029323613535427998696439320039453828419006394380896272554773698804779993601024192005782689021315947596863840207419766034686961209301982394874897188806019849582656945446488425849564967062952701373095711199006401076670442745407898037379325389509167668792831839072920027213525040741335441136475816557427525884007486697591409951474724535484025831473396324349621602807919670722438510823243895886334019568469726948876636719043768193414332315141908689846822518782717912560000510665263385705014441733101448441717542378532213133538655244159063812341803181458273829381011796318144442754343430986979722454407108350304829101936282766072764602951835683473409232936473014814638606522194850689254043739023823698696998782397515554828871412542128409513148851154406821534213460911706929663781114930594297642331347330808995331382823454081177043267437495777348154720191506160177489621839620106628268300100774874323793207806194558084455806085257166319057281187188660122878802649597477160619164970343651955843738894396470545395999743034080111431962872854576178635828760301175330036993038547339757221730347739950012092947593157332758084503926261618262153140894217774424399124250458836339959188894673122404605832909999979261103263980826432013544776449150621225155568385339750632874685867153250573883425513936077099743235394989074392123215490152175324085054484070109428205203953050968309189436194693710446157491231660252855126874667616772797519713404931715555317637730838399745096642055104721463758423185004143234220244453649686666740017932883428668852264331603539881279697552822283958876487310408187532240105425699405105191098107738714403452413674918690230085007456912042392972892637456208039201408537951963372802814203141367139076487423435182849873627848862608969968134757472832687015486168365073937729878003215196079632402965211032868703870039746684803494403000327669836964930329267800313395643347023078514160303048191326931647608334735529927252516462515887803220282359298490962053083811787744851791759405056712015189834826469175015873344389155392436113956798770920653580861454544696289483496953644516092080581123071759760325938785421496669496160894837066847473101366406887018282415267646444177300170612925923366401046702223768821023978567930881347895442931842911658772740193788705398927718837813056906070675722405211374668196738951646993616179391563580308589272577399431177266055539207470880913568909438292087011709295039935211357392756215895475044903951625663365860219178733863577465641408403151463205545850241121433075376189583528678493637994109402060034976374529102983473961425277717742329890154708604285807689879878924976493072849243688363732009422610213745701039201161060884524331942447708515272131052245423056932342439528127224499763916189998364883016031715712226733016651299664403450617480229744964234191438641981481252710010691368150011256253191822763602249461820795394579294070240998710919726401373356129877801768958570449838529312974207688757482911857279434010091515430553583240322752380866060699825277385155612398598480330689765697666581440692990770765678423954099670837456195350651288240244798846820264211164848808036256180924967236343913712304315969731413361741617081245031429760351193157171513753665018655973105229466944615611899574033460842429083319747840828561010467931810827570297079996173172524973915350032055243917452445311095115867742249175718069433612654806099872553239523833209349559353166286616371949358022428483364464368681941362245173136354338639535324255175079887845720747447889175538280489554601433730476411044459810891624435971780968394512283345484872254910514684797063377330547120847568384440264297966313670001603362766149947393143187391418599652585072052131222953415065846052695114654039856504873549826181437985516880492723582280832791451836542947177203431893304485352584083997732289028491958658059012239766113918531559415977604180658296419114200999537968600266240544495876731903489092848372850146307009549068478275032490284924124681001041526157071706833020498305084640773962448887772370932616703227418312419878624739642423404175111611020861608911390647178579887800334097908529105912965156094346933437671753062725120321094883821149904945026209907300488678444942332402805084063931017360545071725576659135781889210912493214365769408886131707145333751036779698856299615519650422534992369025884937956676797362576721887190577487025422519982791927309836833138324879119509533168236927624460798616257421615189284960482360593450837673967971952711248755584067799937680566624032922354962437735738661470969741436338500925018482441661651475043452637864063153990326571252337595514555689968328856540722645352345167161904156393275698410575603028091226008340088902603322663847066126661227680077864706431613713527261690895765373617863685852947552287411264484279582626977873356061928085903737570210616120994338549178633656256651434701394268487931287657165040478132844347747423100822324534330565033169719565786556038828188662533878144600989499828944440287583325146452320429645124923350115756372121709778674256086371239337237402892775209068513855054348100634791020201067231036070398938685501739445550427117178493439526685572098377130031811587451007433975733246479362885340350982862124395645503042166731607890712218655056021227183602903826307060185845556595865715698376365737258698575024485297642453172202121258860586741465076774165816513755158963912537448866277588826819999986091254564455756146636092915376914650179218053696647651672032018804651683127542336034351886673593444044940230903116503668088244222037000999094155370169701114944238121461657946825106059263417669337324452909859311444759496199620656802101467122677406370233900213279354303643728227889186958421953851132377815443725998721746206162437678309599000944432897963198663820483927918060721492694635640383240328809654216569034087488126485034219977893547770260743540592266088009572593336611198591574949467714705819480686964594374533112767911304477451783646617365884283745493423028969003797701690894310182527657772539402300915496278314624527463679659491166790172251668751962406476012066400991485263179110057342887198472115140157987622042484619138224067118526429157058108491067657745756267777035063250477446751568034088254956293299530506742952039001191396966076430900018684245082246679174996363285036275622431959414277595840754631455749899495221897895611397609350280931329099352702906119355008950605973541570219824283021693575191956763720978637362398572389148367561826181422948168047568984674901947680660729157380526882700842518951665163043898769073591052795966227879642399431308331219574500510909434573835618490709385673766258342479125207783937453440087079409385144002122210739778560820533142505886045945571921155425290294206293368387067963725092552590379599935448950810783487754164371934811500727773690108922252844532103065543330906958248261924012153926795122470441374255129164315285388645875631853843417672859142346373654875010995541302504711663524794600299832511341019036199693538535445659269940487599055910419431995548123151637973694572912260144125517786691629867009210107016771772055028267008216007040828758075054836383942407277168678745520890518767210152902288252894033883040143614726251415537895313405799059958548401201605048741694071587051005415675503261071563046305201366682927440804060302690592975313958303654444101702993088308016497111716355428346774824445556465735037971875900008648609608535630915087124803707651368506909368507806045091009681882825286357789715975150850050237825250680145705524617219375384048292445472264838891864333120692344497624244106131761088865907488545686541537354216323404324399252011904098468613923927674044433536198171910571446320467751706077052237169214957336608767881756622288164990407497342168501563045714802581251699386326069938619208167505307416502969027438522905179299974259763612882329404474505413897834680208836609303028022978753043426138614878465529573692157970358589164169191574871950577995315814858701076488135431982607072090942523643634569608966035128516405084925044488560117913660391572704799376821080391384647864975220272690486035958692597343551183851131797822650230786840729480239944034828236357776577421998151046159889711402419707124770467585869983050877865758886523506797354685951944052130289131267669829968725234226794286693141475414145788790833945231958579784957229519212759376437425812410240901501573004723650099435210150483131477176469940007174237257543306392108479716964254882837302626519431341445051271052779445984300075981217430989684925182222022810242203349752759183854074816332464140151216300246185354855597204481212640873335175472217269508661077260669515059472222389645351745334794515943239296243087544797185585251282784421090654771844784508255235521377582042385116084799589708529554630628541723898569238411253493389477805502517109561101179574787611534903851306976733350993604157433236102544901905232813173839673107165937201553216969037483046793095719347679136502270365020380616822289020578884227026343762339564384904896287659278966385191410893416677146355065718944895074494950245398128988367502455265143654087310863514043492070364310038051020197618468055706720546940569933634860613758489061598883820684760364892009132170021085894765934893732584544991378896919794286837002457558821502060841126621664613511172670451136973466546036709516644415452510349770055240439871281563930940368923085490336848225066999341517454647407977128707397155395447068124047801058347168906902014635912000599671603237968418796572538287178497388176235561548512941579843542279373604643687720453376124528944059910252204931637905076192375612446911161006478299159711911815270258196241782365692703767434794079476634856517662327828864089322628008391996289975874142022014951635519071812413470745033326942357198421930424442363450681198171280359265654258220157205246899696031746497897524770769774122917776732216521148984123281414684437815509395406932382760787713318871350542825058187211058955778168076224851684068656463432986776782208262381988928642173113577426695363076695065481907185266542633009662848598374432726411547552162752411794441264966326869722419959635120782561794803253924820663247231298982475072981782216615261763299149116283871484042920561149763606251053289437498238721711572005684542605355163683776129107637948893944224293718429452596749645750398572710824803142211112521574165660747868248050182018748221936156951952405544079486615998961747936011780681394978980840446972736547316210050059882849134970915739389477517636660175334042163358861759812731608493427955262886137595267008753582558780170737123280362988941278017340410759547122786510679011987229765664442345762124670995967519041694478257692568707723074694028892326020784228510333711327205270402537080787235801039687364960973803714864329080153801799736730987947822768811578377569759933775449030820723277442328209220737467650005070958724460674047832949743901151891518466003939390247374876649329219148396421580770256453733634506833931264265403210613262428831052011686344428035400372598684616786544877266935184101242791633933647013791605257095978373467338874671283600428950198641122055567238413234868773127032255888804906749080730468154300416769433249762245357844784778137507383179880568270449381876562188700084440630536594740768020283334970516378001614068517202724001649112027420241022111054402889072893367723360676604677587411777450773826680777387871666501458514376643961359566005944912474837521055213830758348315907265050254829417764744409618393730188395682374895691375845112323212930723156023955890659321652814660972708865062327566241210754776182228605533199077399412274633810827680266052900837674365207026678295532165096507942894139283089300601696754524537791421849764870830339024531372596198017189857593153553159169980975195442272285286147654963723840766388972227179161916198936731006803239882521288825508819328735796027807102855602364829987018021345908034299157448063673932943498180595495160064378220954993478822821334753616906058501809608388578034793602808916320724302804508864579194707855751351186146736812804895849943908734411923445988028521490505927477215573978485847549727027498707303320231411146040498497063962320095004230795548681671747073703881615183332245910421972628073400010175178742800168543505964807097745479814847300949360509019811299430208662679996666978070107730236055835250389552275662128364895134827561182049517370119033976228845351621315136941740877852036719800629163554018922278568594775781499661434428904643706324590144036327256173976427194325960166315388787533232999943527013318484146377805480166848852592064039968548368207115257908962863061777011041872694251974704569357224372943360742386316432364433727020351850088601247695727613594467772579419636463914611858052377621162181842562894345216714873442946156934459446869145172223840244871788367010912603350830751423220976735769341397293644091419824864633469648165852606515847817611467365374822106547265124138894651046145917191648075205141133911501874260700433571421147401065656861306376625035798816289177518005711119944601013027074903680503959245639030687241489895621965532865588144858479760293098368675894256879744568751602629965147301625853590573758239931868308230454950961329125289820550977843965031902705364353075474764805033826998776706583984604568193448795187539711060591237119832073367120942202694130699388178204583798864249083493063062066774660103640888926131864821981864301740769422016829119313738431232307458155937072245703092548111568967591437005128879016015595499244640322042459387494050676765601366612705043094120937221227234595599330751632089792322856376189592856460101041599367608424759227930244593250979704899006920531735244388917361482879692575486372653321406985548440386458163360647806029493839652406645807898690993977060694859735630360351671461634111076780888524120139014451768200821163705758446884388771326342557088128637550641989409893526638218162874115816445999156239495155210370762918747816122766970978815143943969318833437551338319668438021609758685977576996340401972392408816945588387038217539205305297652990938722989453119540128829836925115517899251253484867155248843006274409282950366383865306688951627301617868735695893041870788135359263270063518279836539846053825289919653650034033843986145271278575145704540963319745953869678976135517224886779384501589017220962032725438547585674381490231395564301827352392203345004345513599620981925293939622911982644551426092234381076744002000539978218301477650884176452121605361461668376509096085718129500460254121174471119034670122304155122767277977936089049668214664303376691616010471639092891162212392912649289925086335358869845642435461005458483513241325280513409647472031078455766038845912840005430314245416656302798826597370627263800783060159753172514145571862457049647343439793453452274078642715014074945656930631437511168281885462866730490274961969040503301211422958136757440728059687307772993816729763024014309713053268664666772166433557003163874900871474027189264379937862678289041203504261383392018805215160342102778912911109641916297959432255361094221103173313297683313724651983538272433976408072679015955820790572233007280099309269607758749171774199911315777445441384216987215620648289969947875996641582157100160476447348678992597438854786166670588889169299335894311791776652662149948960610447460292264405424940602330597686483664417809663113517259396541081466119148192170012364251334357398107682765495541003670087666604615841895198477968188532928585755313011700689483151801783214460797121438909164807953938543100892830854970023522033880535171747379484186636957211735117638701909202809854913073328357116072881861711205191774636727021428530581130232364634952622564398488185049919316248071813753535676580995414472819174519082215937156088084112502247177350020008731067493984049984046284246423778087459034370814987782225165873260553441709685641392522602767700112493944754050092286187828975573976466479243137660791226152750542126177054151580208930009526847338406731023164057213750928836385494101173771137361674421079742315555647531883081610754442085376164394546831414163644239599930454847421629903396276622365257915863247198548787131270957655127494187478178269407175441071273544979111370672021951346746400550814957290705625044286959228413254124115392063845371574264139896972189765788471437142668142894731846607588717351714903360440891010260144296187674421424199919775339924990102107604102786317339240995225701912738586908098060795247878355059968804832675054097492799419481950093882834203152817028664566264775403046756772028214667144989284925708689877609849949566076564415703791434280022591045086077544813808473167767701942168455461372670892461840452085892217976061337926692720809288962445899836741799323891054258864424339937112479920571712935576279675993490822664489771058502078222826385299177006610838424292654216197546912663247271109664885366138055542013405067445570911952282229310337863297891615270514186432405598287573269632111085402558110351718860850456114595775818406686794615738962246181091267608512094268561440498106999174552656767811192742066104737450891384585191573574597582459273240116196398245953860303572893596838148136595450240142208381730435567930189421534010490839646824889551475993219151965699142397940675088659648715066939814070142690693415869886617935281413661181435468054318429351789669893016915391690972154408568391272299287306385941902750105159757590582048733770080211539988007466866875598734757447668783355875578408406674567543458622498921780363716249966854023819535430803173741603920745686876674802811127251405610695485483521955779302684334158466805551513480274894780150406552843425730005784515764923587794107386331752632455641679575482358068756942697435625828458037926171593416459472297626385745946232598091816751604859714105588816591258022309122606265833470326186104270432981842168447758581005438800129400500453708227415282739461857995961316105507685430329901246067409255630164210177245713018242327257922002100588832876681314389070636132258513713761155652989162287187779999213154143938037893986755314674290600016715122404095935078332024782386943232991923386205701041782023119441409663076712302525371916354607859006941487955429914348589100437602269992086506179195746518044262294658348526769878579212468211058781443897298860273198803745918663770414334749300306670910779224492038166840790455848804688561635597048129687451203615045251718981002361632853615784589002436184765218244013764580883572123735746260817311074586576724846757786291311497239748025538778945538750412670629969251703662803214861775769532933127822928058543085911049832236036239188194178885499418462719128347016253832487045082411541720818756200642239066623031927796124839303454789954731609049093289353340979895904678176852643804267395490015359596210558256437126758359028475401917837192577533279422633805071431803309168072103357630620784525018068785780748017825311703882531511825939278547379769736397095858802661525077232723981792866942627344738063811081647010659689086111600007268852867365262747158986925600853167537369340064564566097367671255631746153052520226068928508696223569328883510517707599278254807728814493191819228465113458344524120294435634113688803525272369606957160427843506025292660758216103030636471114270715815687172831365203039401253195550022082881856610092997938615888933145459210712303576671222890575721342819504437610513623789235190590272512575654720369022875882290315403892272735177996788604464396037221507539207848757591572945573537426428055609330413643193191797320756293389687448611754263139647655240127855641166905522664231429256278612205319674106980158122040760182404361716251233237711940863327653349400233725738617814081848927819711352339340149882851470697138259973404879959180508208953112022401000567503450868611227865637163846585510250014124271890789852923911439676928009495983038752784473991716280981936110216924806497078724290424307675995668841825569942481591212446947927497171162013251379276690037865696681246381181734171392757768918769388698432456729476624075773299399933476605011510572550056230527042305298176585718647038020733053826887448169799894763373717342456828453876991093334541732733807606955594684203617593358596886831694766605747074636897850131813048611360194890497619880755326352865038552691487298758253206287930666195884095069985140695261753217616199029950399640111946644843627668777165622342667845455722522616987769080477893016789197408439102965657206400035092657904304151799428979604061601931165386682233183017653253418313711525172087256202387818715979583428445809117562934481487465240713528954115240013624003362287505117800861860859745251480770784895159943983488469709133441710808719378690915002664209653468670282664816357790860655861157292576090349177582565060609695163443966060691770659553413957534471041226084133707758738585784346723384744773223193426039099610130862700237793172447253722751405438778555244650978278101052642696884343639834034529368436384527405099219198170622541531736050600735049705226092617354161415662693240166605916925096194953965312967798755290835860030857025636089623283303736135555894884370343627235625949065975907339086013628281525757520403566972040316562006036319528313902936531124971332318723890711722313658604787312786939254913035500133457822104762776251254784658796047493367473978246836402577431103286284156536210043808850547781055705190067567860053876676684438256774985451744400788692353545212473813631607427158858113880721211992601423956825279027242423986739915210022783005928866746524955786318632662171541943509755820654512489499563392133046046078562020561069995817013404888059730903704959217892486491017468657135910282843679971181298973818744963485013499695431344748109285438428925494954693129054952151574260738281154656421599388179498632488020975697438118830301187979017954460824358415557936266513102751029924775479932229789294367098043672937527614835507682105718789518376933669559488842891776243134948055948259113769459100619923006224535978819614462873014369344499395901092872358852246712800866559952459467860837013850437897301313698226913884022685856686554079171226787304746851899786699531522224490177780860051559281091534514229592223410850960025245424486277857598947372079254008855638901100439692668725514566832248106663248457274316345315476995095049406696092134803456467983578329307299730215416681242959850656532472550817687783168665262354157031679991399476164637368040977378409874107294932501015366948695250975843351531859355888813220486358290265981876135932116245648083564060412479425286559212928483959914112228186849879824219660134494820329351216284713799833544196075213714287523133737134896963075611127274140037240070618947842710887498807187786490025389218265994322549019006351123569706181652625467027225316825283848205512830080092569531256826704640257619358021393553257985257454051160167081992297544007377954062358493042539092882298701909660234537946059952996460259862888347142551112168457731444608056625620278824073966560868442123342787704831949004919409997044071587443447409723061829854441291674016116345929259894853761905543512418313448697377311428510462909146401681958909749256762022207608574085684239145512067169825076775541280207865630316807007530928357684239605712697197259445816823330213971361079397568949006973825323651884016680867546321543351660379382901303060605440072401366345051937308260017819022669035193035799499147864331089361497522923364204373757518372888974025393779899942869857225204788776057833802826279032608943145256838321509868465170320915150966765609856725732705231654279045769616761338215208760800886512872334215771258509724699264346378228633689443696933127339630539606151605256796836169303500656447137937988740652011382216710197849460722872772148049533671443587662998477354196942833494308746870660586532583042435871374254059950241596223424501503556999316060702116148776513004586426260640713327226159873640329702560840750790925264842380634365199178106972565529733974404211635072398745500302732359180080956694457711244742286679136897465241876097123968289009052642507098935947825963394147541832228522437670934234864736953580896772864834385626802139904372961323415259586298476843742553759418635597284615141696578857239340889300593568998783872524678086878802751444842958906205727566655644287844162534136362809129123490841251700382116293346446562852924482497135957274236783527490641788899380690630921165149336469088359928287252151790421473128040273411020350602334798269348842123373280313304954448927331268767472509973757051749077723728212941896486628540458455724175657795867578713008130807833947362259635003979976291746461827809922207536035887270506069729156794836655404808428510435436500278555445859810963751331222817782479976049778535352389584759692350585783410999573035732456791027522640485122397020627513189650469312198858796576059934889924905847381208484363406065335683251226199988390705711294584703391202660831096375772779401801455524302457534597933140889249463593537427193506756755541294103268831862136292171663595964343602954781735381970093272503420793399595508528351881958544885916371146136183948923258112106737646309649416147591464117821965079543741050162420541778016407954146687694474174127848979640329323668182193908692690039845604324371988179410391115491231847777947480036128922012685829967680313703437787027128413543891487028070371787606530109244091532884271582358649973959518800286773361429355631370635235044542409346941334136705174543964044721405437511811151093209403399175326788929838006979037822137782299123855812258808432239819519683965557093560889304382633721260180470121744550636892164166089996546404291965545171931881585531272300023439113671275501743077944698102772089931493503664168895143536604040516761068483507898673549737571826188806483976682766429566468743487445993682586289614445780848973944444390670601970556222880746259740757487307871989888131717351027081038105804028320575869657578792907572897557975549583086331037639727635467575446362940607226706276346026352773761857807314054421842139464880089243904009231589218842142135743493656228844189968234966896016465687537215074461543334089394447877783617161700906297068505264987752322349390365493701648100500497499809732784551728782789263502863669549995356627729471543545971446853404156879150484559227393618253785035006926379889542582298825447894260172344922941031276302209894855387209984225096520843177591833941033448561540086913636254579620408069297652296404095962399821533073539002568825025829848445843388124090583548650856310001586434075737736481354544754140084287825394448533048557156955867384070259329443255651507872152731213323180488628553068711944239935003860343246318617382436299413368462714984144626636486103115092157401525298673983325654389988667989991186351826852824996314074290960344800281913472975290121365164875802001720187797603752620273762854581449249626443051311097065895319635466196357477557000713683205222113238900167776459956249947624506817683135809932203221695360635642985569531827658209340097409635534000371400317934787288244245642721327110829162173739491063982767224279505365012849145019764661924172545140988203710091704933101929210892959159972229176933967218375366860818469498051837838235987835921258645026031348575330562626476631311908084902549891971655432481466797533337330895500253683524718268425218798743142753819976577821485197567431063367062248952624182281211655948578012647466956413976942817144785907760965021790129865689428195444312657091198742310639321074723168807974242857702054376569094058621666305106670692186669833185383801300057615198974277668533628954394949700827443282959580853198323208642303870458831603244282760246960814312940150325071102862910441496018272255484844911058311889540642645381144592768147338290285516612655461477603153404079017350970839422325575679381343802593818420350799053912207464054123619287387150563947491261281693909561102861842777627736689171300175963419994852110871173854143452655805557477214950563239387708132083385981539358474270227284228623612902016000348802137872758509598891955074657886286580357225942293094583185080492424206451944588043428455250640778383495316166796561443469182394150636200113329143413771045048082029674216875455403859144657684626925137513489314494653383775939383498149933981126276294338930336262332645142616139425913790416878203643685994648189715779257343659894942111394190114721946938124553720627771879591403055471361212524334994722496721179086241659286118129382842834847074508484846054140889501062733601587747279959866483018284555933122343436948372558562555027564492851869253911523616569149137634826390126894049917759134528672086028610873903987417904234591145384928092740737100608490456295099832144366715690140016193939602002804816441005814089170606466366600860716296803040695924532805221342874230030040382737685401221713447223429844654360758300434676385042328088035086471649352489239328634735620740263863310015877400994751464911633244261853275200405464823810078734501663002256780487093534592491911761147426744514652415385318135916938847793779040441524386635191195102236140361637419166035824864465125821029570262750576846748933078368548699788358945216631635729733419798467456528241227496617757668053428426628176892795498321390263257194084803976600915897728968931011555747429473990916827316443898868629173653466058287521210872624182573520981753949562744332415027619546458350656982050472259010000119494448687131040191064609837152460272091412882304040287182723560006363929282237817401536434033171788317272536076109724614213539353199241647572024893490267924964820693618248209263865413399330725714372748822801044385896325000633224750839184107740441276259119163111525134006468115607695991924529113019583544968388437052460230665449024835432136177402831390383381243457614491506459881615101199113531024773045284570582600167390788235828554556921981881461524664725972758679956626841185355948300274312999250666585444758212609385240682021755390871065669585490550507553983568255092904795358993602982121458551424746550747930250366044600919514023598731954307653236665586049818111559753309339136903667528558180820138182295160763567387588985271054329614826651492678422836239056136502527068014970775875600591824899060840970206817950970654024329227231547924604810427606481783267159994115913191690327436952708568702395367583521274583598387644350859804694302000112283705085967367703921612199248020330526005454497723700661238326409140245162854900489577847144176973751106954664946038385711754979067778657031342194822735504503935492253494460877720846421021618318897222406132371651362559104233725154312530584906396253031680923253070476035335262113912985558894394520960127373485870237272213639848765389521167281754857530779918382461082122709761294522480757437861871997243175892825717519157366466655726372051827552694444037766666428539889002176110815167254169796761076578102057426209938016478505811000507634693950699518038192347720368189914254361787592241249621610560460639578985374579551277370226080222032515781144180185131560447710938696910202071683507594157851810909064540450529967633928807117794052990760123717222048184936342061071821976228006800505909662599687109537294238610233590027157173095112288948625654927759116394366997592802830083607982814798884877138632933870915247482289355915823202720802369687681320643791888775410116472489652768911860897480050683540770348068582350295632338758127806136505975871944129822818871970153795238533852028464931036459793328422372473981551817683655746249357269083005170756319212095287719766590106684619851333897732077202359847231293370356663141565942579657635894732712943722129412009644066866633587016418886035806009443250377199562608927143142752184270242253543047620540991062365924026179192150607798352989626586378916748722978117286065299151371370622922914918387795474858209318758428940348611079751718635310169732511454399852739385043284048957749292642507900656060173063878971617532797382926073360789758912054349976383912212755281251289444128137934331769656518281507024617306280762693747779265351595087588705918875908112321436987561543665534519403479125048814560604468154920502266298515842689429513509095741703825304154867186220536642554668145626995984591931247660988193222774128393584530332207188241979023538198603982114150277383498957801863674804477195823044395410915224726429024693338708385050099309007697982544755558861464327169981351371035142985586957963000113399418876412563992275954681588830805085687899659780672571424981493531929430558965802121226049390016323195294993373681030408307229034576199294710752558163518621782421449845873213715297969885783574804033830917441789836630013116578269855940535495077404224352634005760776648964734081619754636364800820068000388452238974005000835001053597975399338991605255918990764615335369434216592005686638801693040806853887485287345983372859571775612008404828571993003813922066395614678635939742370293272739385838886704181593571018784823781585185006765127451994478873754324471769508240417228629377661914564214104628642673686924151196329226772792589193686248008098044592699877334042963395340397174714591232515372168176904604323110974902222030335984860950194870465694803672112590173276529624537844735956869347181897392631657181062160121291087834161189017127956107303099588767442445504720379676812222859441055106298226787610033381099855208031526836786013920943148828733814645018723068315940543769438502408150902394221882598093664739617824279151491854207030993102306337501537173046378375499647678466421965619763861544920186158907432599668083247161010599755834103527790836267181192247428941367092322124270425710275496683145596168512784766690788738335727954336002668715798447361366851288029012826511173637537709324895658641475703881090314068886340043147798500995134036182335212147438506552001185588457791737651474795210110353872945765193892528656032112850655759403780477509900242749063036717834676011265613226206099275091289728761390103956819958650907540186490767533989820616131516904728311935154115163405680802181691590402321955090814522699926326057971160622409638119035709069110874153737615012691985301351510493505336008059692301940894012352166947886307167829105415039698467675950986225289310922924652971389273228450057826512925967030328998934311907937996299937702780513456280524062159707136156328204901913811591207466193732173182762992835654874172400799201587255712420701895991692095037922518325651237320891109232964050074785976710619500725585942076843866862601219490236810920422111763120342101375660255634133794854207768967769680559419047320636094009935935862557495720615358774039812486020203751874665802359267639128894538466381833887158113236164640543169109155051463880858194943323318498369218404815060483778731938428219830945386232290770900886001556159854137531890858722720806546917089606932611198878879387423878457153867171152616246011723223560976736291648058547887610332616661809678102031606566243772371637315301931972095823372449632095236620619208981471640832951006053053444044282514374195339183163672725182825073160879397279734310242825419163473864435721441725801115217705547562127165356619311214334499509250727841456926756589925011251776735057772519311368910651012227274642733192687365525595999680735977117149213106181972116627942076228717230024132898848372469604828026820793893512060840220291547351751111430220456626036677128586490472233402156509499788993982530936591504137072265226136274016544315484520671153490075032483170487714110994830413162202547782715013186798611901752035179545037148899045901220076353186817747646898479193635306891154218807558028090822654613471499563176005291668397409459410352257912594200700294055882229931008659285368627268255299709661743195119648330049738345790356548636555277914098866817919388787176922798633047833039012877057278418137138223070275617994031371484204089461904755032912870086982706785813091031038313864653030867427224505576861878078839588165910938672151506901363408380349004567785450212072868664798314992696431155523129180383922322346802376810009338019767726598687459237436423355005485823134172629821499553267462948124380793786969708206362241417459773340587450709625180962138510956545741818620065459055558614518030386024464713005079677180704631711546679790170078490705942561879071090225537734749653811750933274581418015239311743171762494214724647766523605315450805262292464622362881446061167392776747556827527010381123833467189377776181981706889796765276843559241945554983185043230798496735893503127594914464093891151498827641916073751338588404283068276748470719376045802800847830705784604137318538480448373579870712647318832199849979001302832782651577960092181150593035274229433857236483528363907958087585832369857802266780972610483626135494391011329760214825815871502167424400133084209232099883723253053979481240082942519547044912829499039447150771903774803477898126917783589390169047402248065289387067147645718337859821840912378384908128347894609283466999218481152422150889387070888863880572002486712181749811808462708982023885286165359802621356843275744951724323831665448255578383472935918399407886926329576752425266068147765923983002630510406790165774986999685215526669498006993599205343055985539823289865644555292672936251077102262196541393799709064519667752522656068218682133424764101027139226396383259987713872933620137684123732031455541987835636905851067398692055374047327756907632201215754933289705753094591770178713758877393899447879012240938223826970931914432941585578434583410901197333287514062453226327062677289298286757570894632742163208738340901247904266373482442882969436852353091218404708131767551419155076280846810363397032967289008207035404316752925728838943454231289148236634472950898280476151439793657963709767277817922634978475821976737875415579335568151619009816956046949648299358527620877373850574957461001994323284735849144916772672385752205285373250175802788117404172131742219167953333874823225167726268119208465216765267395430668219977000022290154103271172650368750986746854129181921655386341904086684227046690199925417843481372203462668392611454009660543012453901725232823674699127782176086500878305149123788670810101723618430041308613804702394085947959010982262044058817752937514193475850687105300986375290323619537150500263125440434246320072898635518972222452535170213329252962365992921660331978164341403970393969024344485489853661937191802985739595348315844220417258127695359418924856732406840740592251122226735458597039486519735380652216824307532664767234837888971475653327790386155008561643640726152348645802949707474272585459327565499261957345742446493827198386180810532749039304157684519217114791954881757379288005950357203309648169918926593610771516816232330250375232011907185978130076098130900402983844147754421758373853293835295890538618214395096149942661714697184617138091318233555525448044273822179940421480793599997233092476334633013677192748421724512589654297662344885895917291389329041224049305561179210421692115640418293604720151223639070747285705501170760496845705611537847098368382400974999259054661395609772453664158828280010956707350469840587720671715672653139607010270706430544943950094075984952520329205046177248943416453440943239335839975026464958854019058429997072042076256405221096126064492184510183200426074975752010630863543216933498462565054946847273460118343448192044780881441405064432209038846552466553039895594235551203715494254067869236741488110751409617524409602806468475406899467732388668317105296908326180880797923563731372008170105257913823287374164611014245005612061845731458183518897609158885353938060528592951664086425339338452993302064169866933947130382173984904861099675858918056327988647369437595332341575690738099738822759739234378467743303061310570543121759435738151320694822636719967446240663237250407441102518451983490067599813470006917986682219430721844167351552884340333961693449146503250422175699596606875314823637331559867460060185728513397160156395523094863932606809520956240892198824820194129038001285791008202858155130471067620701846531740415773666553433381982347565834522828555519808676434767590533284859673405573718571052078737294782005250944845100745992709240740724941569327547904724469874990272678121873931111529626951680715619767416257756257398955261812051088465379917472188494157250007261120549505754456636505257586062495006751465328821132292527506661622022832845034077617451299470747550213919063079505075106371159981561361053174012786222251991887537390336083809780649868408329354446945404072467514054320712157891453529722271648645239673550675833145687180945607473765510576539745553685331362609058437921892765221349687797835959377867816289036673091827577973725275457439461725224442042822116814101266910224450852219661836576432998618031491524363247868706284648963172868461693310191061138160041647864577121463930599758949148980304214451254707497462941386519187178606054971551043740561477520362322530871049366931711241801177382122155916974824407273868012528811562096848004786684022568791451082907170916590224773102805542483236967058269862346495839273740951058409367522541661331746556190394930655390841410821731989051262754461822219947912439904732441564325481830225107742217509128683596727205057361280056629793584557191311345886067506909936993719178585874327541813886720309055276097566756363263843962315171912235859570065597073861252559383263778721424101549102882859494887332573147412707987948459547509385839215106618115579674264963563376456711214582879212790441326685046388362795427357092997399663919613740174982166987434928352841867852293364710300423343407401193439065486509536922621741173671221269221590761754679215050865877742364350184998439978781990477367092264724696673200447588502526729791436049118278515590661940527410994411828671718069494176858663702801660636695142532648207570427911041553834869389185117042024896218145225703919173228367609840777715896131377776084063843003350654606461224988591104358436589932108255210476238320169146903525030025510264289580592025632610659610311111935377441500831523606811882279696113604290585740511978430201485189088252643587730615697839369852995490306990258187692720733600365185376187499537957782031627222937159008123924415796861738243074450251406263714201889913532622213088692828274237368200524999077768981845590134946927905993539018483350128133357981186616698545228879669879563449515711510575134431531886405124297337091037231498006335624462278049794139278822665961908242512972473284566946729318557677072612106989182359959849760663425479449574494293332991304591767900152052214761744406564658883705875910275867907575970161146152534265513178663372902737603466179029085044608875856370112587860825520581492640990193402992967169538127094664688521806257313228210826853473985075096877207405100559060405907690245284656063753381835217631007406178184179238229132231701424015817184805927719444335040524423699397654726927425764213772845780668645642688190609282648570967499587366993300074663599115137860607777609289833776164777921755686755659582536028216564354651548979662629438696191548394138202505597167298174205175575193298471344105907269297904753473546643043929547442513644328947808008950195407746930600030591506018664947996258396009557382187594963800004511833563524841423468209560529623245096803474969471476629685443982602776896601057097063949204588316824793222876374504548812708892538763204802886348057321181414243414352772022940639917486859873656732423276395537334455076602180931466023470790631493335735552913333244307422265464729889454232856877176276900495599549542757163619322864716707491099660834094790995934470732690289376140013098643408879089258050056465945888974826433372887762428932760833526124435591739091831859374086947777523643561055631692366349403609131672505696966056066487122527908913726446702547483676986482013371776564026084091079555553636106400378431031754248528545614572724307733767712300406863506557469296099007910169783858346486524575523549777678359574849479353949069826771621104544396647374727508056846463210796947736087818221363647251993468819982470858732949842755747075844836834668412358211374254522907826052294286995659851975465818660823111278856429527568912519143666084090077189660640727176663959833977135695577006003352320209764005676534870895874696766508467120797052574185646129272358256649373984932451574614399533985016911014797764149902186146858505566140380121296225309838405393767708698467802934813724757421669380028459557593709111375088993135120085252113969446189388342227289786910737333006505169517101083181255316012289681569762429705236511210341142589433448448207603977513489917491610204865747482628916440691502649376731152699760033531145604095951459698775839435194044549395871312730444520270669547243785528566859712619093355289876908932143003668576005661394442412883792991033753468816396583888172646946707441798208610327553278320452954382145343451359988342295452045188833662667998042104536063470238196212655168812187618844759942011945114492630527731667182094418029226691015773268367635364194890004812045957986753247934290052556678369509591371438699864957515697681739311012176441971295783416768163500400554531511393439734553621368941834357396927922443709965304280151609326265288359337820310105053209922316618722042611767016780146355919710738655526006498416027120889262038755047467776349253752853573924922923066936882226619592049851847570496480708624484953967131192995370059417600178804714999397614529214189967894598159652734227643528791094041152181338092261158130528469336171607290170288786907641795955560714869648366279231927069707730388909917786660486984682831696313943167340341550679613385727710444735142655305406032435867068781362256042435986649862858116685469367653481789805350884293402673607708858134313455974404150353313984461617016244964169633750165768911098254604872281270634772308181802243199967573929081260982591496559685191047010816846111058012566993920603028828188589058334438484476736335420961873582334014315375900681321733834869548222957637568022570608829251682523020921607303503145171859336502278173181966368258327137589303751194745448394662655900838324284914387856930441784253136670298769740007499672074926810470000574640379473623657946228136900866093973904788460403723831472432564076016337224687974104491490365807624911435830675708825681418596820733813186768184506473961176333012434342778646854076122691702913916880437564303412620544890879966511836241181790655587986002700994910611231688693661402572963087055443433454091720338614056414497123934627195810804484049786283623420706519319317259632242827324555596819690072574611658135734895629524350135854483928403361964623367575288680266116784165785974322614345993718675169527983628681195988316497602071842228812228642614193255123262965400544744007853788267696577424054098818700137490501244966656447151848358583871009111764457326659336895828533617802314312455266293816666116645324411736824189532873916935698269225508106087961337683238212712872583513160279740244630264645124324466240437584434805936257267926422706962656155202971978701482032406726359899993369304293292087198540225682481047828566234418604403070559958679455115783083469946673781748527772792327881407171789030149563671047334595249083386149997745152807354207856178995145094940990239656129982287480888140029170702662681431729045621043093332586330561970389395364648636431345364400405214113068819724583521614638438153250147207787320443798014271055630084019022731741894231099937184113698941093873073275816906360568223778437962418122397591454272477777862969191661966920739093933679636897112105805023220873542342931509570757388552148881637151637243239916488608242339154003866329397736409417583348995818631941311019624570348868429742750930319394736424358968678283031770956417140179078805059343164268803824178039920379046055533812166654147671864595611232625060489905147644624331542973281047774676606473426520868221227657431680082416540348875554278055314933877600202030116044744957792893920521193266419448894804164589411698978718400408389023110265835913006841762405889060942242128250527639645170627341564096165939734308579539891735436667783657455437178344727283930648322124613454024166096431331384381865194335573508757732686593475539344565043404566540200337689628600589367504075182855834002038629177930047857743211335902725061463092370257903911485440328518323942785747418558387855634197386010562313532705145448392375325319072889351481894857730650388080889303324517443610144020458446349266147818781542812273127735346901081736566070520219718062454018570504158615046507242717517107005400301941863539270213745257810864328516361186239762592984489610714173701981780593028904708630412050443509406827046106991247477515772943990252029707019738975735058975455412915962752332303687440375201459333936901257128763784977816033678850799725371564952749434424984579203649127037111379914533853385445097875441669702317862527403519573946886067380144734462268134588571630703230945928234998372271469754880489852986762646021602695897286929110924769188761299449248202258334370064874492425511333085221859591009217241125718243180061305106538375678814684650936476814233614937505780433701119857186665428533971506590863079184889474168488629806161249520635181297051684402699080454872754477354089857656719830932575166561916693763773643705686795712059560100986780440919711251611393726900736648536861002045814827543818575844244326647706300116070493307846265655232832082420208642922847833081709754081906017086656438133633679049113258759928102846541538333837073549672100484177460399705557349647444795957853420192409754061664103726650871042379118675005741662074783048383310625616344301103332665460761694049657232259028163368454660175734988013280482572818776944457284256624857915687744655752437430956022502294859678559501334402591131044076668421516708545340013626436804703025936733120350322339057294138426084438806629265906878780246219390586410897419017824700136766518828372686618605856498394881010664182558512540516937778935745839279080548330158419505962933854683783187287492318229063354376911719937643852448910113921861356490329089257074757510263089783457070745535805371405842393056254505208965913504050857956096937007676056614915610380421062105120337320948513889727335049233581249586447561468170645711963024282699277511561017461765056402010039461938543009080443366268783336406905261063485680716108055107111471772739137209922234718852429289508220059237942784925349847045157650393276605504089270005445304952971989276105921721021649175350535512538130099891958726695694882397456937231210030934723344648774905077222690671930923914649559251632527619824311481653693176333961468309237649232241710819383684979739668307478671753271264554918141075930816668927930390103469016047425147400744762558359315980462192667788848897716621153412353072688588369400850462502674529216647436519999287433030801648615300731341179868580363725919997462334911946278641471178262104337118639458916382691855716234207664433538577273938262820010272427277364672466771338549268698209512213553265367946214337106273655050136246654435842633328361220149702996613537204341892965717481148166302537414087304014142902036257749500351359632388253242278380796914984486011534469793750403530980451369043597009733275711626834655757157903442710651482311196012282241415852646424501992766547356936585767707445438804928482272056559443362480190945783316199504394513201876700794925625629337338282203445605768601597544150101377091973618033525075963583878935376405700579852930444102947544365516223069819285298495604008731489461562105766933649389017540782684860114831978824031145629659836917520552978498264575209643844357671301662293293810646365483313557809989655509947871742236078543072426081899708218011219675793069072400014361749837818946165074145016039630906840701047374311821854466797916755294492371584465122059353105903318309595033912267093580872984226374676128374123015069859803935385799836875043526985762526267173061018884566941686136538538476543211837275219873477125485270197888104952017386053739357696637021654887177167307352826244774853736189809827463945358500943561744805654260918244928458205242405348856570433752691460402393038736046698464562495269070926159005148649021893787543395637473300128338588186524885138033695614490716672467874182066456939396995909630559026393092537998400599074886802998858791910075952461290387238595125316656256287844806089630023210043733536688047833251634096626640507326277178214507396201371160892411265593609767814339809956458059292667187033390355235692475605211886205630763597874623624541499254718612270189441921994809550330872015166955863813341627003745967530113959916633054249320042809032735086587945970196882562954464063582673995893397572355823593256994502890265187689856448791049120475049043465562102530201349037333673906797666719373744791755670627417337024119107715465055205933979257554618946806635055152184105539828723322120201879638174264152541017794615651302146320213779382097151445178426337573780497822975384305687858755366625433742763909181143692607840913729905515854555145672643367843454149684026852239416831609147087855677431180792106572445583171518289965542726338582982696117736145117168847045330332893005134408698763176749019682022305967481732436863553605320586025266596520746791572610055688233570438827038992691931336010729526495642668357360623726302365144569934449570797008883332323709957022579813513465269054603969647967723438201594134343728290792171126316982589759298702817778410792901356335448303271190225704506741017865723799849611923648691502776138274331910395613607663686216588940800408962230926466957452092640709215589803742250749210475750012730450555490624317245621764302935342884581377367512473187720090853095129097124540122531494550977636463517949898808623259453231104263738857096978507417210038114567674352317790574101892107927682338797445259323751192673291466111919339479069344611108095594449295842168851764592286785089613201896234076683712767556306867999336002316516220565421724081249016561433690712183138145060874212828180026201975232103437149621810438861388696789868307037157237005773234584801400228521851216997973741071144481586752469888293671719405373575310645854129389986985017004000536066415776741251279371350461885632211956553182404567718308203851225668756035457168214512225163801753878523278964365215846601789764412111815502694555493627489377403136177679036915780221037202101140899245479830421423585372914475478345534379676532837692838184838032744643919147261362943361840140482021170584041376197531710589739835494113035163576933620981373804580867990819128229708162904977108763721018398663922834268676946231162033375481015514745165445417604240620395860590472600378333180421261763869335555638883790843838347509583203862243359911832878798623924176544299820632673730971892253265391859863511320735281032235262842955388756059781318854710184856494672810874529385284003668469885761581981013008556841508457314262398344850370169347645869956328386015690436071921495879943611301789328199027865941681504537448989369122551773640581085524414869093643568650610312539369458499161162324098560364734143137265004193708761247879872822232657357271578344939692945304997861585585027174121669226100643202229206357570716139378315191737068765841255426378347463400773452875878871653201670427970399994880202248401610666915571957783673434679393503766666670817454879614234734489461621188780048963920487517980804605673421171702757420664067492367350434289920366315508839506071240611871536770032013161869664966306432506612001539706560700509600552485028539108691420856235400976786037826263424388067489630169528130133426389234389586182907788640414511832891698804356349564287009296556277254307100201398063506208810711228535876005686962205959995483540506788450381809315846919691985451733372234938085221244839053510154810541936111612378299509009169592158685591770406659161440275095255879541721337051733355558793404861094809952972393311868428158652823820958949461626329440015332885845076293749705276714791696346240547474891985269385091111124809412145853999343587028151754735011935737885023247127035390252025190473346179528937225011572096723927431243751660013978951473933202118297609708872741999265306862363514817802234486997085501363254294542471504277737456035881168636922014655343707513675117165350327281344667885763545288397052856768784343026997014412567424106879859616724869625828225666177456574788332892381976589705653470608320599605814476477342027791942924259395915996148842113923926721989614955505673843075600540299028656641138312897003428013150413802382064975669549349393098095849658026324949039272281499348765406925667736938186785490025819943845336446990840082277842165319057833244902298842573617289714086382851937546501818837117203830226363323498982337110389872727672612477388981761332454163474186866420221803387585205999284547155968178054535914492579462662727667090852895292800481956686207434422753304666499716474851780461800636481584543312230085183671479192435396978258283333128805813444525479628293172040283701871750190493391589223050680696833082951930072841552354830643884849479973676464807285442016835008930530339843379338248727925329696980264763418264910893153023807221248679580290779511996137099912742213636079166983606569321943413796685713574730998486791936480350483884141439909509476016027511945570553998793244911982337028346257416685318174887017175925467715546911236256171042524813912513462551380753564057054643695625218256742697525140632365651283633563700559006488531452587475844103958918930906070590959837134557978342396902992952504499875777764851013866751663641444597936423726198648361605877439152617219202481898148030186006662564427690620976681762297554598254620408669662657119635503560535575667421727608048745608153932468563938114894729617410699641385892562687354056689060539893130430165052180014152978902476884403887983694913179238922990900960488637873220880554101854309049300561937440352625477174101981818915931903633090752508235608369856155869288644484083909061258339907175489110859670923006903018260825764705941732308165908724525995230521886137999019713498568512092725802412701177003474916999119347202298279595550143606865028180599054916522089062838202651160637497805117761319042026782834315245599407113289445769745094528747159762829659559251818789165337388995565909790638759275715467474011669795316969261845904568450220006399809910609198475661477897033268015698529770120855079447020355489954471259470619031904826954163598523562939633598577143573372047980000260425263815272714573669070594441491893793535042138052070645742929957590103773492130109177350082408473935662900555225141702006423244987161863165452432902242012912528422160781665646046991054067985334248410785516297401463000449306146900871059417138619565451383129496086362559057709033488859313843554828592569627600521790523634271058477819045792910183274246442073186398895740410042616212598675681811869904296948987626184402713748444996027231447668822281670033798372515052063058822762389457377711202536892554920011397288808159467703239819258524189362121350084036748630931746195471701524524929667652065106912587834989655740395491488385626409021542473121997857253816523170253534835774307604047696775197325267941372116416803715665728481857809718383324943329290825071667945805706938248918715162234157818902240318871237075573337419751720328980955570759577187021245712667537197559787827330341543279206699227646165546760589414067085665381268175366464996971215672333914545987220308305778937789094425942627319789572346431688141629201313899685070722406075469417610164475536113977813958871824227912213723533681540763630158921602618274469367631806278644979168958822525846394849705864016022898990555574300199638837817108028349726344451035866601059570070884437090553488836635872737292873703304939687767417363289477120714246745520959227027553322705700185739159205304399402061853499185764287721801581589564042767776864678657517061565705109114608004354200954185522227594573642430177258382054268810484289658685670961327040157863523106999283058611869421082866322053567560817641923459415511465508475428838276691642961438186045160469973561669765227962454828714922587972221222608441004541370916333820172479581304571486158435132584489858510625711076892551959057764747591090466788602004678737936425846349430776689354207680884887137047593452812712853288672710791874470223429138528246538324504524116084626588548312617716003228675361527506610791937774544919861396122607661724762836620976638133510271811051641048093704560130778270055820543878782803534467758382593399673162606878044534802576339362437002002151453671298054594815230237045336187410800046052933216566366545274003326438060323347965612108652986605969729940218627276512272637495178963645812234964388351697039697405150439768734646956027423246911893135860536268413818227042269122296246792812626649776486220078815021610309182685429002001890971945256813355743506310969640284212300528712887887392075804692756046411914103408628110220556857094006256484986611524326682761376065282255663001388001375559390590917279941179995171084693883984911541685362818183374737175623907399346598864962138873722046201419536554027049341259308740123856655612955181676167155210600396205179596276340216654420334749651599478757430451192863175000747335192155984293713308149438458876444792613862800233265374167453959019265430682101193790350992168719833259105417987851736602404954899809221504648560427522871923198437806130141228975862055802335561805444556296165768101067822202740030714431418289431979958745567281550581257229109306087717676220504911584059372484418869113842598930005706541153129355628704466354273133570261945374255473247386949121104526078605920462065145033883180486690874491683661072544723482679297678268358826056824742552141265201956240303033842796593194425688482717287522254180867869726782484646073916013849959958152837642765271452660228732792759302670228296308902858829349296296065696526191316734013883552628030951538060930969583550673447377348513115938871255272240146756003668489796408221838358158929957418558432327076335718790905308696443857447052225964672033673385305148977440885097113601664658552500619062366414505643896611171776634221214241479674075172346396873540109603288813185994255402654368632894734008499071052696169211143345074738947472614644614105606655519580513646342299370214600483267566515975356169335771093255188544845380153465407385263225819097555810240397510647729311571601651432970742690446470652962252373652282054374621797136857739556789537717851235651320043269500412598865918252059681872692327207309864621217152908401666817894789615608066487625971178789003029903796609488170006478058486934775117588318062736458181587565058933528698409559595065457086388422777246452664457658142766517843575451455446100371248115616138318808681623019966304825201661667669565141363286117760161467337554407193849296898032776321569848186577591187864065840224716108183497619562314056252427911598681914936178204161865137411293225568786862818539901579939639886122784739196077827978064138481519063622064314313848900836415472843988967412983114852867557650123130643653223039155515479920922322992972893646119779571915076915024267111979977467564394595487884627090496344538152354981900615393679285345944159297841328127124724954342376342803448739856012128804211838784573541690973623541631581728606782238694319936091523326351204255551957282443305852713728527700324715973586471117064884870215019432718993638748538141293922998420306026036293286033450921819169964502767377654053943233403053685559864841241799117691353137847918179710650746694192973399168678424638992972732955373424248554707119930681239033201039950579933576903744343041533451483310015350902329853863267722707829251312114380201382173066526708072991630048747091798042691446986029128825814551259985230333914394073468706392094494839359537226247725508379931061713522537119087999232179017843655969289330434334401410533381445876480614944940404073596106777759929359548322244188185553268365093429467958472866919306685086297396557636804136854003296103296152771204297484954640573812951313032486673504578591158989150574862969247347716549157105918294704140256151184638243547957328514344659791813296797727243892155259383929140632729342912169314224473837805398308723438946289574091330963907187801965507565174378900269283017619193773458115137342582622037851656122971474139908484446326510344732193061941078442721546193010197686263481266034507618974136780782444852475352445629997770583352277092873633968003450043282872828189940822939807329213860634435855278334108793526598623062389677128090308548026232835399375716523232245998597234203016927865929041633437534755413610277576785564831790827672131685553419181789068068130571686002055551772859968013180923433944192896314543685448222431530535805696134894442377068332781913323308600883011092554705592691590212702551136365039459596632970739035099201217176430737076552319221731532247624295225607187336748757633144847576107544884666898987191162071342109772574239447510111017015709426015539118902603414206394854531575727760830633764005803747337747738218397242571958402986580959619186573881487631534720319023059555825714840227488315280260705032198027916846690641510183700367182472444496466586815258829108740015751905989995250304891872366717815969556287665724941413596714321887567224183636866779832284637884892084695081051752641841931606946892233071575396686960872427801427255529819541294467758983354929218794779732102543726855046503960779255561413483804097518849413115236882583278651453876344937915806438210896523852247277065830118528372731597989293771288514979739352690237435925756491040786181590025426973637169128710226479374580291159637436687716203013131028424972503693542192254256833557632674660988266549943844937779555241417755489381041596884135185972025777901706992146193769929415977738945348058139428920295768825985575372964010825490218134573576945999747762226617041923736932792043998673028412878670047841625584351631170614269130145816876116290937726494251912510843588945836538321181563980720082059075993034426600500975833998266795449323310468329923004526722495096531489087499043133396936145279650703639286337276056298801762147205164842805396639598973455718389073288121230798845952310745383123813447895334591229675692082331816843569817170169871291569323607624022860448051064618076315423086306714581266103493776684258070965486533760454583228032712745321152007649409227489687522678852503006714099387365438118935731291022277484104487624536339053658636452111665073271647954092885441757412227005638260589316921016549139775466846625301300260413846355949057914336159628129672316541594642794528422238753960657200022441902565048497476784434751031646376054904465827847275456423075079009330312608315467666692476221408906905205286812687744555294597049809663540760946306564845882675923447262577685608359522755414626490305080220681448869857878660810073497084349498574817945888784425151959196878998863933951071472172551336440828833646048642538892243752369802745024271226103246360320996879284411074426870163950138934050173828362748170076955713069015731291172152392595244234759790230453794235879666038427643670182130105296125302388790226687565600782220044647898268233328208404837825606479948220567509126150168891615930253528800808920836078968621994304081456055669568267003084041655990765936286818741396890542201534164206350670684913732243962158307551236047715231821237389316048514413919174899529629624404815871708836277390252000746248205971298947805068447127778574231124674091786372945394258927477052253949944396681417100258475814967938114785305892563877877078337163191150133788918287583392397718358222829987010920509051920649205577168300681890745907411363799725112247676025206787942039762395607566387578808863608249771130335466994157260689793421720827085906587034187561493562194856220215397161404232272434748535209019894682605764483662185161186011059163552687054262507780427360775746212711453189628842467289173575506974320264268346873418077639530601899352775208500777393950354152600838309362516819035496065070382396779121778605788689964832669550288253964585488975337533624257139259622130320583543598619439293094106962014070736491767629611822079573445744743311455012148161051433978808666325702874914674118726812235470725010328091231153539659937221505067498959268102624186698072148995069339011488462812674521399737587147881302255294112342141777318991610300494941588678337774632578797653018231575062041667063087758300061693386366034668181718141910272521816586671803240107488274167779929262354549331929774938514873544730247207766807438110937170283171477789374299181632628632923902076729580362957176768575564276536831626718032023059149340023758058337812399326059649495703791049249066614294204134591001680553030794120035442534653994953296104301572188567536416321516341473758679568787757583316897698451974675116478777755288641573453528167177369920011427791965528521121712351785856368419008112967952394561123937886362777606698751971655474071798991999760160952605832583420781159835120312262414591073655623052349498183113523739968390821016258709698803636334798182139442256523392326153859658529934483731792411043133315109148309892077843292661922878087109693715727813541269478618776786845618778000122890652292268980014193798313479261921629781315772624975912338288780070779960325340582636605402774897463348341284582110250316778029325529145793484462344036851618557328126819657757087448900631030071503811452259280107816687686726446973663162714481766873073361525515390264001095158441587110825834812907535739641320139908243327771735114200850085811746317047332521552212870907148272798891805644877047832028138167156581927676779760937199230062218991905802476838008200199141916502520768148643560079006157259376298927792523133323929350397158507197145510984342120179695836059607708731556903905336031319319514451283824848593777862869376150631087137459686256834455979368338624750305783844016363531531437487542711465635191110930894246662526378556679310153660769323852549155297243883756212386547037292283960522197325103653219558983231416424812258552165611842543918121151442393717208209710435255847504670960132179354475420448706458387029298965459016526514212167377869519364632576154599333164449809910484461032763762795892276038199296355956907326819549459353420054351715343631654377834692564692955214989125447515326163148616831792117804103236237427760932082635689203268247521965524058389390733846261582318036426231674067741098777796064251647328486321141830495486396756237731043677830769797203819170141396918991240048437524783241822765212183669969134771693797407541614084878613699860954305437790158346880390312811294012615745899228907423641714946399957412985761120338249311402634130948904000471049164910793693899359562839323836790268026464385658186164882817053809983913798414531586132617277180258421384601804172307591433048639540776789613414970357319949274052382797471172954637765166142892175613060262062526545828772802152787748358978597011325556464455573236246279120197088895923583728660863388343608205164677348158331215960645244992566647355897549970544092320101299032192681470332732359889076116116562951458277082612366105131039058703697476502602658057339161293242999650178142602530734266904956025091627714970824647667329958587223110941722754147951654861373754959563143972354471098419665991244387920970352386348064359966975474136970428200425124508784270431771326407095531473664495943297029017618928712996540857199441977358746451501512899593080397725827705818389240928304318568167314505618609703879539531633895547655939985155228286327281482384537845510269161326864053229779428666675800813383310413436434084920877057536743035873093570837518166470593821683159045354238661844971314555687239725934325032858301217967542640544435080332264193165166536019320066703195686453016281511182265792395881693825893919280763298893305659819929895302228843638489928216946645888198605920356892339225747167106303600228844073892768501263572920963333619323672015673705355469225611025759730363734985667836898447384719406792766542331776124050532053429780216479389195019654596361987374366084270476735468401541514135712299453857526464066159592229852269658551910199253944599919636066284945977830519166237420006206442853612827862387074302831075153934941790251193694962934432725383355738897524723491720824807629219312801347197922533724515442831096217784365493938437385513068349241125226832370111440817009240899121398459870961273792159963893225100686320231075531459530919145433983446437163628899400294987144774202576403775867816206075431058006382042737162170356935983483067235456711130511348687286336252091652976738214349722980134963581105618666218733519676670241179399455946538376119363763721612154663339902172291881808555147697354357259630877283897070795247727931596507604849524442544693444571594665924340258524176651078957301982498866281008414169114584537383435383890229147768123812685620544152500524295082421197920513467624571632938127733574142510827435514673716828692769027552810864726269009768551483233787220750309511692837691891733865184048393725615849735351257646512957040565680557914990852847663595928843524168464135410144926408055769295503917935132807693054977240517318752830905302175104551881729926848863824230922319669063337752507227827151196890915947398531589055668349578323867812690534162863252372485783868899597436765933500942008021370011510672690493913764875882395819283176018235315198290957800595048662236841076541593480961967788274024506211208450318758613059674323888389494301743041938733626072153045860154012583508272393708716805866896665805543418369590763316523063488861104651375775234131505395092552408450055961431662797582821570486186954560537178047991435578126365398102550189224609714899333009749951015635568206153708967890121015173635099111557375062400270101953035683084574147527544311450859534726508359936196432207510624088459497732673410319045196793925789824471530230331806139302310964126083315986989767474421203513753668165560577930853333967980346921449388351957022932914594223116172052717878421608934692216125753818753455080261025804668103566808119131620920476357426645271502782690505491381724876623532210156121395035128004297413663771479725652788409759538447716942327939478914742211394537618501859691808153792704477242029812197051684584946110057936167384256486614774044565538659513661943971301329412310596620115626788702500670064019008969722128440844118948938766394978935427255203573942635227575758852707571845458740430469028459541875674691937854694689080605890638987293949926665421004183100531422255528465144233815508080324674737640503493093572503374782432996636486916559305478713907184158701210983265494141447721625596514378723536482273480646598493392432693974578038815110256119875364760720593432852732239080175626762201648295565408817790687956981104728177979240893702923928881228252731695963440413419208873312925212533086009802394279449703298249564315416525057269591767919077146004438439739426171410639496755173794087149654875553735451804345726626944101680125082705439482869810032535555422585889026667840199548520754920512229805341153896242915408033521329816490573732804901510600643082575998417613683980770679094812135819404594090500272446187483018831539468646471898373251789394558003061028432577695662381957381000076020943745029367661306406464364927296530137976384956656991453556616870979022882447977769246184746465050849705378895583694465524726382153632458782102022989101881776650766561682881142428628924786039714112256535463804081628789788303187976071098239025254456359577365133046995410662780317825208348078648072961705654543830979412377652091501910051382271955600373684655307895254402051732356529117624988187825026569931089318031097110114554246798089856295789972265824839861303657423523895252564714415218917238168680543417762678792936369697163849942648895452035258042264557372880938767082645067666553861407190253818670426528346709868335454292798801278226503683788327515925944003794298174739103357702296247049992235096616414475975231498070626962842979345669187136201026738226802907006158481429737668742497826250321312430892469081231152270641802859908435887533881590810775460608665384106961650467494023893270912538364646692873250732505943992377175697826801652949605935558292495214989389235236931701784162926732824365651792844164776097230566948252475257554658247364441656054385005834958210164067775820491434674288328813953722382651850905253959632464088188492496077105321593093838597224609825092914337968805368777326825835752858367579112045726634994553924182877739184295874645939465801835798780708307567823009139605196506587045261822327788353187842335105230418107936297840852937557220982940075209945016856822226633789868624585771103910084140824171134669033933218876995272083720573799508171272803457514656524338020596176597793258532881493797333361426465643623315956256027925949703902931199568414647538163822664922442126705956460073821008066432749106028330340136147257482410406464797024376286944348866309658967007081688522195034460769153656785015936257377176832608557322443522212366236806676799057699283654703154235483837913419102797920742538000973153817257133584473106083670692912151910117641846182645377900692732597322750964546351514792273778404071133097357946856899196140446566239201590956124986955827414838287921577873073753776284438641848429217594256004901792467751556799508929679604309541610047285347988410384573328914099923581341104497434501319943287715220411493612527451581577132311376931925692195394530040948038003397576812414679059975391648678517708370788125356165244560213164913716731342927707193269359222396560034889553932340098026898975391044159776007527290708045910950835711569352530368770258796036862042123334178236838063901052734545999388873004426560829632006191469759512840540005987813541649989343493298906947859365089452095244673098648194757947987550083058497703790111251896465907353099307813480314141829892089562003660854429598046076691871060100681250216759384479637138681363499909090639544550409649362507948527198929063888616468740463672746461066669382628703692057879922470392733266186110826449797453292652735101493034579056369497376610465449812661587210347436702495878055091129176882362472131957110760952920129847011080196691936817221174258486680064169534743787732193522101001390343016596419651160879359730613676621695208198295039553775104694782924017627757839676879592452855594574658784363937627517432178413220976140831658452587803005410795892921559273741160413615893670616149957273315140074354154052682193659400762334143197387806788089996244915302532902168488481474105862331787507850021964731466073102555924739421709661341061217480762006393963525788597289631487635316968873044174870309727047944411080897383646800534150731861663282074746458284703599938518535721137564181279130342119213194483659095084491749200912556142353197176349705697266045182322652165743617738679795401104578683998205050394238074384059219766520664706569319557456229255280787317292324598369175865841439719562824732288363042701714759360764371814982628515346933637887970634520692139925697277810682383947309811680044070385116936834660501471325305385239164196151411955345690247876410812270818418320362263159736106099600913982846908157354841151680297482325816680856749294187272412548066909436701478022747393409568396074810607629565584267668351047012649156586758758712363559731184643552033429751600081835792568098777428008773487780748293777074788401179830774530419088235551429215744953825962258106958076258946572127213833517886344111405390284156173881263466681267364350794078142871999719490406677490473268515085111737916715833891708348134975249803133786514746676433152162795271782234418560159139315878562103751909352616197042304912007773602647701592681113734780614296819242937459457680539169707141979119098383772123860016647354649423560034420999436276017980458460780389170737336476289357498093029873220269554953596595886619090682053782891895410862713086470024157804955364331862806230337774569401164850372308362656790531959328915332532336524810211308731200006832251367616956949394627851158136723939384744104330385315527625163279582284366937718672134260487211127826870894347596049343718124745272672294957328421231287514086655596433934796121170264403118336120944084399541230959595023610446457879376985411158025758112629220589662584268293396650373879097312188154809118020914716546792810124675944241187630544497480353819952728159028573467706817147017364461198675669654511269368496412511983491044265464443866035162441642151597677985302303921290069018369709493123510107894595432924334763810822442646637158861279775158459204375030599258737788000884353809438793872122256533227770312971819702825369536335690907113923765756797872083597712175996613753693441567703956375397966288592737075022050774048020591978381676390066441152146538212417088012053685383365843674354125212383625864784663283955710518398063376382421730786821603938915479016293770938236100087036824794725923282907690477540603975615789239460108401328782405693994789749234241876432686031722343981656726264526115864165316956657738697307522499110396212398279574472155722394715388640747557597531395920363975818032178055192682907662651465568469379077358923592503446169286410387507363220470016353207667716773587411808438162059763039368603761560940842767722407093302484279118919244376872947089052808733714641102803076417253774903525923780515313945813228855695043245237829152056765496284133593248843170798989175795112209947355906032129502222147654581587859884136153900506659034953406155327290436727743366869342728387835930297600360765936280065376989808829081726089880518911980885149029387850488999423808544310306360455588202269045212054603596486132840775871629247144491479860433102218129269001805439643252937660058836160028697540107740382614065282181709222593146609259239761066597945327895070461953140637867994482258234065872572959131331752874757293024465430790403686713920818593832314163171919971725951152666765938535284160971385881516677372418162142264282396013462504673341366554653571883788558964005086881510606113867454670794921094111479353028184440494231735979900360646061378759275085844575276086841959609226059072532430444016728136437061217476558435200157184776889062200876982788774365888951250527511710364785015032787059179637953637940777993889802792052412748122439075699751633995571781708968709779409950149113099024268331997790453777721482335023038263530814152569975748221658224226621401381775286568393934222349745156471246394339455362289757311872953256979052834879734188629422956610734898290222542076674607613322344079549216325946363653148819248722184768576838709427160605764193537533775847027448609144574523239906795330664111810015933661802093469541849349403305310793453819635907277371365307289677401629644668972305057058934071748853176540085008615177177604822086168422051144681397629368211587070958150032726497307106368668214426520949182366123068333641490306195476818545819283352536856767345262205455830410586805371222487010595612287514802069308833865674439332668916244699178646899232222216019484992924603084667356169569841712166823877772946386988027924102776922583985187406868255869852846690956624964246859337609323814995834212568944574608753124144551367302256385831724012926501987052466849418139707358946348391835790938028414089819434579793333743571206569575514969112405828003616168692631865862677775918771752459008616166000733978884390786697126416841332787374710723492748015435127093232359302120680718710975346553845977487906152023799360394369219255643043099167150023903878640662821594093724969935410965312275781596228656874733014258023092111910646392939509850950804499615298635873672599175473303328930232924119923357791187101491982929719143472930093718862175970967512635956379259525075794972630317173209613767503892170460364931070221315923953524839820184347648796914100120213336935018982891344583365290417238453733146302684611156928650083339579462774224738978530666073205252038755883722115681365318374250443766328912130355847734216278207574701087049054478977323279493867996849459750756560678567254038344893051526619265509278187191228048101645335430489568589456485056906193429080079498247584453982798086614125733445695305930237653206987471167722997809930265813783306002299326168112930404009691268279919477972440845318848803281669023790922385377700209827058743765817283068576021833069660579347467405600815284205919227978345841389079030489927455708148347927474395470181326376058415731967821144879642374329801112222447173971153441978159569401550706663119592560240629708761268295790705942832758451862508550237390591349834184440787248857218114271302881911335737632143605774983293356247420598461130125003678313048223081299222705144035775424791750108195723226631671655170689329323044914981501750962344996938358492645525410722621792837822995367737411396389084636967219666701878116648111291764705774469068654932462762848405158655457862674172694181517242510363511158703353131293963549634395401957501502237137886031606963073324526618115031243376270290325265683154042969033861364229397247473452538811645677875718031101603430908112886065294982160570970250993236174874843738907295236450416875172252195059291479397815838793067736139787730006483418577356323280734768801804196017470675276703728985117401665981432255826515543287505718715129215231853533239914086599408675663380262483559029998649705388268343957912136038152946243927066070949282220460841613474406507409652609203254121288882553351067215936695551245165182469927810510127342731410216389492604588872181724185663885674778994575664971510394393621612835008343677337779172934262124841982614449734771317436672609520602508763979989443742965225438927510999002856705657448931420127721444267319616044660638089549928592928843541053917468067803762278895549912752423527082218721599347282955015874985218938605624572981204193524551478687001003259472813293042894751904539031509545951797159829943174507076337834953363552412458668794835503290171676658003611088034955124327170131178900814422970047113511832830465282115148591072886335073827286114914728439483521339013593441831781076614401611390276227096842049219906434821747309666926069651488838700678174801285520088903499193841157840821962180845130826464430471992042653784041990748179082054067016630803026421497591913573388328332019804644863100931990701550098752431950313170518503643590887625486220316257295702642126324025737525168317480357171466113939706828163084469265583566079631543109793877537125222747726512142262917663437785660763056583089997051944164210934701560045711699937027916049308480563618814449104944965703564376045112439413568144567198438678626508029244176549005475974917612680493317451741354797914631788095559453873117794054059838440544589339386931602461218644365164417647653309480952432067186849510435488752527170115497439515096379651107206792213753689226474904789064248460580964315006284318158406797573499705068055952132031651356963697058865186504514514724923340975893415331170026822773920436405558555988980203077135952972669474121536597632655832470364086959371082055839406535881837867307563557089624978397522206628547438708935605114757024832579467429166748845859336937238307335197685910932633785233738432967568942703416918778868945271224628159649068945740751787120980220501856285331421617809654069305452072643806553631441172709425130077771899116753058774728260364808559115937189745017562589849790362126078896592392545193627966825329426724995664434880610280943267860319896443127361846317888899548192791098878311628615463515942700167683498705525082822216657282764025326851703529719884090290411873910516046076890970696199146163490423989364807749451952645705082647383241883857550610827045039536484824076313894457313381055026986668211122201915634021237011021576140890508976908172159869344789703505312276195318472581656482960233577276092582723202644750730502896942578918141971007435375630885102812330175151633240620291708714504215909945577030556523797509461032351198198711608795865675871163961875499479906682177967157690843962137797687760168354078604465397923434140542959485089411419915265189467330606534783481108384148812874463184764223213622070120615163257781886066245710082611514730519463732275488888783436516611790497483043294972376050908933241126222087840700855702676509403576958604862688661477444443042717671401719070675953069226884185998694534853259887710275912033846721751122601682413892448186022023150773715618308902660190743573126244174636321728989074080983967310064813982732988701704263284343564591271393178035522918889502515569196033048651300245011960633079425419649189078659611251470510236502636471020679467944406957834788579862877628271875812827231446263717956357959833388885263229415669534092966434776291028582056499663405007431741596525612939569788695449430886507847621123939115957777254218036121204320665587895369521268026260734043069466418147953188786270218741366242733377994342840022406910861253820597921533003519466409608349894880017503671987178246121520929362472842700221926356761876200324896337594030135836034269728210461805210899076117734382761027872751131567005977418301160486861303762559202407717373037070156469709491942844187428932389783461115465540025592689291187618223277106340493729097257134373666267375760085638256358607726150650767837205329120272727326327179427239358036234480540187950530039985627624098919234366109909969741184675758290171876055276737600759128191910849444266531213794609597320647109155503536142828203989036565791828538925790867089270683046982392494361357900703362840918260240062485245878890684978347788862704353968681488775509962397674149333374679786396160188418596877569849494397545197464102411404653813608930573448855566678799569245965413170634297983874835025213311759361059284240061939563069137813987920553905691130557365833473647893655387067270500180103790777290986049534424491958504051595514772315078315255644876736187202667480661335009558964441663647101368036175477109052969108486145575683568295677092048281523439362902987982917554531876100492790349684742658287526985349834530545057210237998373465917485880314313075717915778718718960319422360117336829777406337623254678457628364351544983414324216252584109822607596247729966349850722658324956597534233242768074516622179807421149002993251304129770821891778291637868307021638784064850163194450858343072067428330620107650589165353558374806573338986264381482197023801589093292930469827031644651871799020822876093776875192045169220353628191587378529395928146820481623255042875024589392634747581134821566684023899229379874993712836228379192189674899600924602488378031751346860532303868569564509172244774232350891793697098587432723749951872266064569774521114106641053730109114310701591698186072429948344614256804258906825281940720366000101572937794094307001218533803420287726417358969771374790013609417669593372569277607457446385711896557857940846182178417850704110934603414571940071341633798417672294248895193745570795363396946852898705854648364615402652281908346643703412998671219778267296030231152685686185151524104756729943617460193546133800407176550410499882595530208716728758440893469871983445055424939861774064699820982857075644592390173254702407490863934793811157618104683895881574663214771443256288356183774445318408854874309939347344995524917027538605502725506067905657370060322239081578147868512313521510024788026753884380755371116450787532326653269209390588796519858522588572221187708607869379751170265277346076556786568207725901835770947820187602214943545778723683338592917160539646552633040559901092652782122692959944673283768710295368088078426706570299622899432285041857742703531794601377979219512710676944990565406748000097704411239832736462532351382273234758464024241744025641949170586941966506634622015234531144906679211993220112080633203822933111525439423068674462526745301399502382999690717354797078979331068033088963544207578714109200595019787880045351732339174308854178437282536760041053576115179098788245437115050213802562587000195986315123719640955559743626773870328991014195253254061355982539985681955554174340484410054487773572808587365729174047286988012817636052998933514112634083460923949249394182421436121755869472507037244543489445239497333830305035853114104549865192047064026234235612466952778825971067876478676736344906414496631688009548563747478259870246534244791530505646610685940191133459396799269983976669832760886712947897298522171727397331647263883634143608026457736736751408853204270724265362359440671324786593516390419707964781224059801509947809208593680629790161481947453400927319850339237911238027652549982703061027245854173066242369062638933358680358069405026037611025822395138700815754254958249260910747327922698059857095012085050674415593148117679421487247841984163203278662563526016690183948487107027093574888803592733608466685396162998117936973413477282914548031513803572009507442594435845931933966027218054351549612123876021886483096429903467572519723058137482873140130935736866320810814180473162548693415061989968995841433928785076229153133470705839646413186807895379819234722720086504290574954782282994834222861334852944501847101762663183548778732396187901215844095841879788505490424153672014183449575439941041585025296652838786987397683523287960158049603819179988405892727322566402762624254795642713712174612154444857742586778817093270709724643294984414408016747468517471407060874918119267382360442534098979618411372614055004313688580628446181233789042657946571725127827434887855478180159925703771637293698825729803089258544339976866762387938327328527900673546471227203950379606439330592195011561033801780956020300538354383006813142797095273734938142384985509936734060434292279991523008130498063635632051834057838022108224391171518419551902909602557695789117843166891974694567286515330433347914578691035512695851455129841987235581162539392575460500313137825632886216636908809004983559084639836311898125387668023424823275473128857308992999029510534842054094802082771977398122833877938723358830208434701390212534462678012688629787648992015239431841728848883837092076199537708979335896051053260748394105743953220150298118483301818996358617093497796036557007219486791529815997431773023773324782324673296439503332645187740331659142070378477837682162629445914196895631252028453840807684008291819914560500302596739134424738054355570695566615089017045355994495506532850327805915407827220496336438857549391653629221519763795793972941326499503699558024045478521309928960852013458602808036536929948260214525944497038068099590179513584178283827984396994792530016328982059033300788839076075145093289067555565207877715501028926812618750853674095356509422834779464282476689437237878170579397658823039977430902307959756096660402450176400212268657788544731971596395945458901814076100642755969909207187433054336391554949626873938417431938945562250572450573265311841387553938183318801263186045969318532262055968228977215970107804047928007630547423118021472266447980295645808023963154784689710964339223910197704376651958655866257407067963356781528617329893858370309530568127977147370540415709652300540929469204426569579973173928652277513524325490163293274646522765799252944427276588630847988963406640775482448655097370685920736586736256434026713173862822228488682623078876661351228196083219610211631264447854592155044823481434598036601063545028339478388317839487720589548202341644377832211801584534333845744218825477197666765939270186679211318849514356668060426566300262180185482066143018064494126910440912736278604139699674405417250462685677965942187964069966876899990602116526742383973299124544496086560393343784696110756115212647898587519307856232018846902498378216695669027373007183109667846399735179559113278035952951281797224406670712460427447390511434625080140229571390177153320493265667266896498605155682445099439649828784421991469744118366929354640065413000352656744378893014662568766848647852914819818918487435495935132758972495320170983594273508320844898461291585836755261350475523707056465531945788226136057171862601378067144366686521251617239325395718936801941607818146505707383129065065697086052286073310674883940988572363849174103953365831972462406412671478332945374028367494891340965325773831552798584313041539920808198523171390427236207498677225092489282143171606507399898937821736116861812065132315248871660646409354945490509172428619416271155100023177202732480010488528473438301691658297722114584180003563506858920650778126130322552608917140472641449730371152604883976896773831725835776620316182148635456521436099184187544826805486236739371911049392319051855610400406401879306034576404761835394480959004094916423240777914911822144481275183120105755235614786792783903778149898122907703855040791964813621071357118592868211772923749368282965153862261593764035980111509386095376134591982946941720916812002259972155588225387372983290138983702421726589725198952326954388768855621346440488474916587265281827254921832398010723826088083257756779167562879810799471874687548854599924668196174180437887393078711154645069934366158257660202989746711882629188204589705894119157665673349669358407450946598074666851144932267026147264774003838237028775202194005460460756253708390754675031595321475447583484233884137067634327060614071372070909116105371326576745408362436754282007825031329352561919021001701671818686786093540728625307646083189764163187989988958026633425974292278489871538913190737189484923186717361810451864245861904793513175612841260519098651353338321072956706946468137394874618675015952161770217896888197978715399364213537505620781844267034145136761008451749629833318499061179776278290344445659946295859874485704442128936441607819878999169781498502806675636534470112074625245754400635040723792133073072849608403751857392216613188042879346736447506991115556448806323590234136538391704400516445125979436329088738514814289157147846374201372944503641779639804530198729463972789136109987473469272017314313679526296172924668108421432194093934719326448731306216940986139269655807083271872743662748830224816725564842407697496460686241201691942798568721917286245158293092378402802679773665036369297607137277225616570905540997870320131383639363136865135705595342989201082430088415585135572620948055399070377703923817929398078983770991685568929574309852696480194442043256560204131660475001716419057205335844892224106731012574824160242833716272170991258093576831206519399188054024954142592864678626790624117696733179093617185382040655311311768871888046111535727103308162088510415877680766048636665524768864925310192820176214852436818061158583347271514601610295259784261518525461619099482670278746462414260838673352650129957007320457801263367161201462947614734577441919206503992728896095299974186505678656938584425068528466009900557146186186936564598924391797985003067016249387809481626233153288565131453745423357902845292803905437196247160907298432762899271551154022699229648234081823835227520022074042289395139960921814307852481362660312759755491635154723261193480641146300613065186031647363168471520810778772736201521864997801779498133707408505932175502542724580455082831544614693807025490844179803985671789411244914275700577515844143891047626518576065688188927134910233330164818619573208850562230751773763434648510397338163660675061223134750921297178072984216322770428141961776631715729595146673742197360371246870795488814761975003148839721512427618865251001520484890204892451113789908170032471069469815997335236457091625254594689674694264785600270837818542558229564857767919631345711825087516386722019977345370975060277465525055688554859482463133294063545910063112375961650662849636277522301690284226463138029633781285083947897693528977464222666241228623254160505831667207158969297450040908049927852377014546517431813438251177393397548009890920151342367239883153942154125348535022764755258165374212910005645100200219688534257413149919783572152531461340181349629337700305416686241049504686557262397250170910986251710358258507189314686346364721278487203134381733613430607769908692030968779335185794543622010097440043453150394799267516940587983300144455114729953000152459485126993259019800319381476024064058967339053302476836491812341027729889552140640910282184640638020212701734878346760557265513822348520777353505840287980937122235973127850818550643572687564343035255918404958328107041557391339471524366937971053516518818220043411359123950525229625347916483880509249316471982120057944937974399039312764204694460736540667092093552859695098193299187506606033318723699573674387816341086491694125996619047981162258214285426616430483826162969388895666743548061872622627829684717611372504089509069052119284747389541054025724419958967324839782457242789723951506018133896599572701518147645931459789323078574105831639729901426328206762439039237764497686571766353100832659724555498843596533866749652021814465438479426575953708453882274403230187299121466850959733174771776510805841140381998197037688351894894588957144487807013922686695012527777835546439687777646992222145369089040449950961318270348437666945759603307723869810971882050276417168474488728705944601141155310544863623553164829928120203704012125031614337908223816176396233502386606462147466827114826661641078663417429158360214353564790847991973659681467770116208832078397454169165383638239852863974516499474598487804522868836241721963674786123585458320600291150817636382536893821670934745707190063041891857927176361257980971779879236875240711419650804995224430743465476207893317817914107497402594677584180425004422382135394325539649052242808195345607473484266432513690394032196116206288931149995901880746842243296343585485641761562151774325418751028035126393425246293777826371648516015297736944685455836029810836425340754484678707991621926475198887524998665839948865756432339134419880806110912948863931881521099854409526899178061077050565148574896400192259474047633984370654675673786819914468648280772885710512776240191978422106201116295383380028866059428114226198559204729453274214536306279223421907561812244125638044130633744174549499871161211821584317881418590262655069881506507107205014069708745705686716724807698770471028051457997910251354826115945387430187860328627258056253703683395591594837901573839568290013234003577817797390907349944470160585443497089640002110531481244832500381841451851717523861491467196228059908332384961770033327937661273529536653104195713251946960885252633637227260875760324251943694232023792460587883187331664598215592963451444578014825010242158007424572725698277539505172818754517048812682700536806554008852523381828496839725092190482252558780780585234646447227880396853233642917370021079120347092150340068782432362886546509924219111513319066626691338166205203525264058188512146956820329282750469790318609115690433208235537150622917909109307022307964226779972300472566805011933881331075819039968022369534981897806604783119279262488026216142151033749134101006682524537593852866287839043545622184697384571804884005480812236637645803656227205058318118932763257047768186332472960079013641037382803289052387266492471459011576894669262470181009398030059839180387992038840588964929606983418333042888315180193170435551728326021507159411595009962909528086477361420323012127995675749285598560887114229358410169038403929273679008539438248678368714902101250633934412709685577473192977951067127481597856057349730503381250853866655620004897251780835933608384957494216679187703766533129848299252317462153158812319050745256716929020355162620083446556971740040817330642391735182193156347341525196398760709974377767819586570074209986899142646470792606925771991782455746384668179765410801804200645364473772606480499529886353966420789790780780291744957233937089141283660307571532161860363335481986579143177236988577534300891332808418440760828886435896871410222503572954661243194845078827761218990636054892398888653042992276054230813629926348387952694621143207498818313123390673946531846286183070353597006196528001720158905930811723317904629391600241180146260845619842947652647021409096430462329683385199901866819789920706628396264889555607430747233196120084697915071840693914300097444550791077951248764483419780491411803118127029321242900212388308542569895106859614709366256424541309908756515200932533601702983507216975745225493197223391652314055880266623455100707499162943766565435101396111420441571223221073595291553113205148262913177249442098307501577926872820857178400015852891578698080263520562272393654171346801622275301235822516118457775064461245145516822569942213415128370317790923359512656758519535964607962094912359886221009706576075245356164466855515100191818074960403921046559688196637324779372688535752514842102878680815925186347973426611642458581790428245363027795522724487958894713963872383252190999250931639581237481647299972037039683126084227577725658276252020113333858705963179949363292032166293933039413723045998174210000726033255405333277013748351406929087308769799290355618334907958204267302759862420132427567111638468816172309954536709435568131274173425918831197081023746406514113717634706181758599985621288880510170681547885279243356043801053415304543190295936521119463706202715187275651072284992313111856903444800284130590673943090452048481866516322477230354973020099013699739151183305642527107760084658876417928443162058972014977942417541033702707778618432702546735524532638950633976983806782788762613451310280087962558351969557940616592544312100983848517068265617810578166820577138992446369622398650345102633741161685054984442500306362245090580230750058429864373846783443524823109744488038208683624470408465091280165343897416503028322601017561393493097204183583162152160262398102187877915361962812745116155232102902170819161969210476047996747860159664549676517229967990187604450051060951683759526567681344180341994013486488919034207558473322565859629706706432316193832555957119190089037891295203607933781140013009977860972939378538044111083947623643995698726447444135537121063501430474290207603868051684503115426973923042347142247798026874383282409062126162501012024564479068776606541258870384482784568464413573479802479488874193146040022792532201394728761035369137573544344940912411651836527901808858187562099016992502015795551201380367205017815946417488508756820085933184950122845129573416285525906053785287047981389566359522107325947458898540544839372028935333231936222753218604716641431850855545687523315075915518813783668773734406426300611870525982334879598762006880613957141192864335667952712341954102220307242007589350039240517331531767047632854813609305116389819432736480918132694975329448381796611898160032647848430159882972574464847705843023743276990037217577060108370072470366994424865564903452343490353938907140655646967601825612498897299616658391533892977257554840602798975022102665945301596580368287012762542626043816569045229632698489409128338039412997986324281974744787674394290336177252215654547672683031445075276243544447712280972946164794874920470458252657749367476893397403936001929742962619260267864412625154119408659631682967203161474435352248153298230400607478157292913977044257168065590772837839916587095049160887612809738350643999959274096670497119834555485874873867051083280676137650646413322389243834430078372577592498300809224168842794937167262980499154746689746801636436824452953112096191196048171312224139826395633876546136914167334579542575014342872862277324119983123268738540682282365042984815503475314332085599955245539427566907036882953509366783232825075469263027167511091434210016463443117238941127120131551019124505451445618426547480653863833412234288588552583286814754361356773384423852283158586527867503871196783868030920323690038778503860241426808709131507034169492279921192340807680054878238286639959340339432101547420434901948897147460836007148958363222722518492704964834332504657206587309749422608358799468166886882554083863492511351013235226064862982507768860663402082562596104325302935422518662931026428202970972133165695098728380307082728084212018035629792959679566519240472978536488209820067062391859687695280206543279509940553938378916826460754110218448484309276871345447168685370738167589265391285657596070169929374701518583755823695137165204586206978542519095153513157002968051883095369787058837136100924226476388934831810552621168183190084692303556255828408059453297517298991715378236293709333658555775920399197612780476787974564135250729930798516686955310484464443093261011799209462674258053465324242811669451654390250292447405101757231088193974919446172454097634190566501294095256943259243753664323190865539048262427708197010595333078704935917877372446979777160479753216895876023366689476656090569058221679839211538961986267104972669595209527919430484077259661744160866019041786932805187673445868604264655956763914434401010828389861198541245071975360162471259135599988910714880568544824343698390069610926487205662332830539400693475255542462834632195461764438457096644919653939963613143560967330723984250639678825982427528697812340849887951328718524100998296455086326663444073412918993998519726669129512866458878612455896464934948132115518397487663343044182482559815789907605491945608343748181401280281200244531299206948687297322556936647988038040029175217099948701561026237350905189205430970303460678321123783448271807791479606416488431170846456208818445394898306567426001055971703553230342882551444172039922914154695402382676942774893509317397091484251221208475336257477009233544157215191184110835364037160729570626494867787698408490198001950829449310164134365866671746675185673782457010648351034487325885693711661267285327721420590207932781602932192324526216864050668139218541245295675961301073052792561704744853770813488223230293237691583014764441756322305253741805496487768741472650623891856093746105967097544452058152628694004986933645256357203445052936257649779120372613040689645483633755843916646088708270282654660709351143179641650924362418571432436908227448487462024536838805595133364993587874842679848754074523210182913474561977115972932872080701239883920035284145842583447675386524870914441189146178421789415563074224360525386342560929593980030298451582380542836426325169662149410773836029770404738506066412314890167841201448506434923588497136057592999226415317516283005878221042180264342513363553248949868937175055278862170514799399778638747364808826012060977357541817241301763666253943534308164938417608865186866358335041267416508310193423325097733409810547867822582777896665072943050880175505566380945175736633131176957595384857027483257504029166566833279767039937666380591973577850616642558033557930941740387309842283350159234846219580750768223528078435737124335389535513038304958426569904549047864593322638348991425332336866361023082704542047098647333772039652575043703947921215138876252180759253760699802756806617567618188122143542606904944385481185891014160430151536288011065744325986595870960364351746824040019801871183696971734800620929254739389350559083268300595960526770637435608142026187518575779365868982601128453752118239842116547498606903436285997738973311203808617919868053951420187173682307743800277200986524783841645844732816465477078966165815671148140658068961562432876244209521987129669471198651396273470536164455922872946298967059045665950855152118547178695350454706886498634614582066236582592692063669151653378500546715014692687964551120228763927133503611869392398178622870150345627206995262687766365397169430626228436243433287690487307331907427659332941641760205962161446656545963975196185203303871087625137700598108648581106243110818414622465058752790290278917617448673428034442929921031747057580577970097619701145512415681290390934786940946724331872333896851472931632839159088326877895573189040095457560122054211484393757468290546701686440309059327850072793838203674428015128628772295073869472086630074946657589054270521617273410154207571935089175527784760226982674484657472414038562724442435438643969536497445854804876032569824990650964333344302064175331351586497711813820457667848265053018301073477457837645116408933534004837233521421683688612291062958333808914230337620410565675165306204253497942972824265411315350397653301137637515276181381306119228587257197104423387777846699702992596804243713307677095032807868393290309478835953119875269481612352694030064102448020449285956390136274609077370724863131138757308743419963124312753161702609159321883178733088320401310324228372224307783815193701314540045174255629757878535295172971872412274494898085136067210313999731945569296764919067057079903475809724206657245779084368888750951925570473719266802938607181030953502570840081875896187263304757291030013928326242254063690356954524492885766781781352432383740204440752820457813565046909916616709630776509731298516897181989409214604734137319441589884716186369382192719271536371823325011081087806314601587338151967582823348715237158298833260262401744022103841819917417019805080698740315704890055639962432290140784955873146154656239854112542522484133996079685309198016558855694329156180216202281715817648702725084935550569984963871795277755025146807355870736799748888354319370583226567159853509854536425630637988566215052423935457882587895068062946198123958460179486663009102402652004818961191198771370472259742982799446475641346479042579429376839185834229827628757121621380146284371792428988610864950680542221557283770124377860719485963551933007249215720833590838522919244516867815910093508034083940367110728673576627977006703542707729215948395483429593426837625091006336254071392791299006798226003034832215003001293709517501510694314302030352224122193545600664693748190156617904336332765448482207237891671055473122584369295283470236874362950652681727793605873880080575484828090956676943799187576387656722793556471834764546012020192098673406464918962047623673541656835376357006704163753029053172938491508959922765958930871355699906691384024017619729319915437681061276780454377159085921548307666809533369921444431202173531739971212446913810363739254062433929266537525565547333611787769545346674798585456073574354405328287206369370110598282979763570376482227446558908041066381512504281433524061352604609207770260309979872383982004419649601266575878206646240081193895596116989317197954544773249496527119207113341420605467730789148305684199367476137844766172279699624940701302351166534098300724753366508745434288170385816563452647541905148250680081394744821196861806579775076342783130211589997751149997798776019680825291158259289527825680153342287553244776831913562151645006345459788173480775475912116931806331012795621875533942275466299246521729760098393536233391659274660680273970517403112851668326743140594806566860997517464726388404109908326765030113624657972153903113405527952876048331191232681057791040190727881448082122533871780721079728306993620274519400527177402126519623676395789942570683512811399340600053919909492414695445668393570654143080554122835754999466487175768101061588231088995396347673620619678513984359570004121618445693961489679206792968786567404584909815912100985086764638685626991704968766058594178003794153134987512736009423216883820142772640837032310477696440780326599805078469124786297928764654369882464958776977074138523510962652838330962982259158624905273265539043888293869028352111638919534100473837205493979872546955463200724107783697137752143839369821480176505531239280547513363132940349057162848292274138172381980087448040374470385131917373578991359091877447944084417811932190203062300423022470190360553461195682594426004510648833136761235513323622907115005229179431124200648893845213667709000367995762281138618810797473501263595294647150010150374696730514849349778127115141905856815030248481516671621442678049533092204581973077067343451217071048836265204650961840773424510841410735661086237124920752804555742034525010674031068740350367854004591414284222155704323625257141030810121200291781371522511564086969003305509628561585943661812487051366478238194906971406487493655319318258313018320422954730215265889463596818179250632643480228337660266718139206531881707464624844132521761806765926030872250808196044623287700455977582469650848880829101673296295241840404798600928525290148736511823249789475726915311848289452854412739731391569704225398350632381379318175935225585370257622816211702029310156352665323426166249902201146021354725230258025220501604930992810762289913411818897424595259913380233563602504547486877141904698612466220178337030608411172340559727693907844650455747548660125218529143125657506738753271069841462271544476700375136047159390709856066176476395297662174883864925221143863192443238502934895585734344400700394404090465757524063767133001638846644932055928861077041005237501397399626043306466679038045251266829797485910287611871002810348369971337474180138525275395825607776474682258272817997682597070121155051396315801569151046033623300072647189945986147658456658177535097136534290397599395722473268899015656964190245486475482762631635076329251978105013064899704856943821922482682529082763536197680851621330065287090826305199838826898970096708079152468432895255018552470449434524630134369976742894625555954381341300813331234235068965671440501598958891841757303781779342339650211660430998892143668574572590531509971918091142345247626983058575825282265266973013815084898334623946681292716210806291771216076821589457394821117237887626350398481760254136906334258893615930206594922856992298940638773633075641774713007709346291292645727020778127900917430206805064203370732041873129134792430760713860888535465427645703629883886146470598171809841633130568263247419858369440654515732354101331762960143862764270948973704068589832292391548969574621848362079065771164199440651174364659890924913277270286507696170240238743113102309761586482686922485895444359491223984882575743184788928151448304717412890808514617901929410634411778157150848446035452519033425802568287230075685460129444690153470489723814970643604122264901124551558947576703379518260233045851868915335882263988299177012714972804533151930500062003413856939199444260818110329759387836436512898942176962449730676884132734413699201914160276841252505940918165178925583448960124770050689078392170203809370549589625261472465351976705859491313938194750143919302104405553262196171404076848879295032753671972375266016189325224832397474749333018784353398261230579651454484873853809467723687754961385876437063269387007463852042148650592547592171638104250786043135923920855162265945641272974321968238250998137223550471299966492911551158031145865060202297190097052142133538277108820696543270605913896607565629035100152321926700295316839405296394999274400085146670745689784080945297467008782399467391902407672340697572757679349817721089565163291081056976481348735079453127757425644352025957366521708754987452028382855146699726648401173087927201964812970450876007936502718472246655339661671086356348719777914614348911822523153277372167615707169215840883741234229866031702893596257111629881564116416736671735261573550246157382879108752966019399159707691755728087924889083241607634366531210604093554095622417620007946300515118697087950611513663783232808845570155761908860829476366494772306448455890866719589704905603690701244626706778840447499416326083906731354234309759478776786006131247227662809874301790189631801343443856486048399219570489916686346708620025320148052522340331528353745966640106662652391553657073940224690672965787279985992880518913211376068489372701461986275608058256748007152897449723040746735777611468408802913362443240773695575624491057618679367823536531031042316425801386821058451365697514198199349926560430620069996013026349674209221235179899767288715149592161783195317987678255071754815526388306739666249353244305482738987152992243228457954294236113132539139185926738462438747691599650827174174087286304337498265854154746262969641939485956077845640773452358708997459957707590775326986770461772867716270999119182497749896666522008818912804383419730574047850870699099808510689942497601243939457477704676643218396837340997788443713764065954291126660902594351132170977963421845560821373531358956330086700427408441582531564328476988778742051655787310166407879204731491056279229791729459814615380480332397290224766460511152372760161127845621075549361200333150490406435064452319437225393185379919803483190676901460956520050321849611872832488093545149117113655932985059820494079048648774205642749621060717424471740009678260666172717955467226171040508404995331199538396959835218321312509481605342874752948294228218539775865157767729753200892701249700184936771896053119170088078566496998108759554494974534892746422581806883893652543803046980078715217972933703621133286095401039407635478481193623848687848996092120363632262542186378030255057311798517110079115150293964136743118177601406405656628789834220657290965650656401960529561736077337076989159926446608874350825076523884181239809003259644122543166575765953356413314202740849701814416413997215584077117488301298080283946412995253452768741731175623365898584941796874322556524766399290301011445992680352512581447206493759659525552259128822993560032332762455208214965146567135599855659037117051884168345627544323519927787454731049025753322387382548715977183446704085290962260407613386766363652415680241199455267534866905893981021777974575372309734856009649390486780305715124053736421315349398666575597137415176731066368110154366560734569293754428359372319040701654053994541766766413146661714949407113132131908457603927067299618082623866396777809987243419553413015548053638751053582484785138477926147918195465495200952379248929174776500315058252449046319626176306120244777203128787564138017397613143627885452111416204849968398274463115548774673564692942966958578163250385421762507022059605441890365841578809588186021304941895198755460577334869532956872541197006807790370704071052974828694687057322451281171293637363676329201173869354759757446846067915992042979442660352795997826081867106320243525787237416096080703490574085276692226475807739300066198741337669626583442501146695484600661613996200892118787209977582442351704618690842568217721564537426512327404688722893380490352284554876427884232509284418318070900176048812977550786847620527933532716129508960311604650105793275573316862260023539455586882577959962429833293858122770250474193444390179341988094830457027411605529950961885491009526422973436185105329668208703644539392043601762765814232896385044800168067039179138240970616795881999143954003442851417650292661745948889087942819282926347545967128675855891160952154789543342804357632132771970916357269173799189791956646343580052950235117812420078546968299715762343698305877293650116503959039290243932410190314683161189247380687327886339821944207895130034336109882673913096326183160121090580242582348600232222656890763622862763979046079048719656102951880195635838244056261520858782493560258702761506778832902869556188189348196076081476950633130279106610402068320502346707705097146014978651996678640295985487934545770074704412951651420789741871986654554312944211586719492248965022207203154948564670641848950524396146675808419253341369624134558926224169638366677508540686822496495029678845720948723284608562005106338428339609793384385295794084104480825699723228104433002189312621623064042612380311500964105383977790843080208387429584724718935597857821858646536038754983443904006520134696996464650417467867729175880181193111019762489902637607693633791949610545836527867277896438345696827277691933123980483503535188698300147484297692150202244245582517733402103111473890589508365805533761840928035662139670082253078103611852330231197205701677965586151929189911962274237248085149187204883551021507118994717963220641391543932764208526215788150638733007862662442631373613830548579413108444676800660084315848587840966896258258391785523945137961160251948950359847646279433485320747565672904258283810553358910095144402917487391643979241968288650985952108485489081467832251970965417717915803760488824392983118378643045591087860441572854244475124013740235983826786686587772268146099044184063586344693412228319651210072809335251581021186865425135288320738498914659779663926754276727410868818014367254794607644280827566006663049774987436842005306907370592830244812357567408168646326472669519693923325899105349315027195378170251587912142932456954031878324801328007709323431339117770338163588653218312700503598086300473361238856385650655917376601578650199765713159102556179847364555377665148796751391582448206020202677403302346028129905312384018368382150657043548750311618829404466307863111617956588764246821976272082823942391114549961592534251738062204584569681197950559444821756006293418487711188052414178053007410354424406538397654870834786583043919425782174343914852900579898138542996100663365256519262101390985985748483642037384728817733592715889743349074817380564306045347280324411345808648829891070382481758808926601415527541683564065324197148185123125117847995738355074661417589340669627976243201472643469750268897875974992719871659088671878339459738897810662228527554326574683864401502402367450321253767499346114347896047106353254823558667350463515732261928613891934337290729304613608461664762491803899776967628515540411657630952529136296533484596527555862270032780320526080476459991489835373701526453115774389377570223612869738527163013744487141836078238111342589507027080516465893955286116643668324602745207323399644146312796070483613317961876653059527798863167071456918513799512220934659445901424141781525722184842059682822534806952612911858738496789200241242172924431488303793884148214114236404131577643614834089394460110738484456452807684693616156362089287914314912939067595194807265934159682250194866985138681733312068968151960266821155736489644052290028875940544754628971304321476267043096482975237715146101167531448078582192918735396712594181272167659861769756475401540342178213728385873800446483479466766588262646559282178243037398538987375730775536113727906526324182110411620996455392517476960285142602632419913322907420649825270585677319685946007508885091750654085143107381547459010309896958530376741500115133611381754949612396073752069280197072900192470822085036902762836025667767847593736501981600960360889624450822109952752049039949542605656044969692109144228549337286487185739056885695288940672358749618824008656517952530971412879301033790699813503461644719597376530634395725415276594374017523833220963898607923838221335331450306248759483021422916259614497287503363780159700712840931132133549353088416861017077370467668316748376959968908404030038137489874034806525103437198034903074585295864298827902230373366920013587500276293379559879294341132908852606375635426900814183020780143757865044282147073309334373064549310831520395355240570150545055355707595486309369067468677143579040699812708369550891550407110593106234678615437024194239954314831176835006417074013937402888457612390954239530050039617813352223642261830593166636471976511338057674481185400717519418682310171609923884140812671997900914531658759656483985430057556572891094907125155510987574432025050936265107652793309079526238578181454640151999683634511438247852146324500460184964558543940762904345585540341425205868528775398610033048372249867453877017041763775119957764586769656804587215803153120264849868896928113810987948166323529509331504767890851999005393011181637857520278916881721705721138648308191355970670038862828905460071333508490977308254633417288770355804511695918704847036822137474531594428839366054123961545352875331848321587995150957692450174357349916789123880747524484378082363770141995000664503287872610665183081950934098903736261618981291602725137778028640651284344823964530515434462049032912629816578769308879532412368780544668722646322379390219136737135669184970905187790588640973313253137695060098099885629562583604472883603842031354463414351628213153584066072953432573346031740650484703694180690580884988971899627073850709296662866560143023395610103518104515768000622973460853954379473549936531001695093514456620572843364153643673075252642298352186490825334361781469430540905523851349386866119880580908734151010508241188084728274079037029213595102176006170300138202634746196322327799588644513962647627242019632120523166899118633542669168782782149947382069424374956810820790018553605918772398176871897575834694068724860959906944090678498179227058164880819745241014868298780064328293089118010867165493375821344459877933013431728975269533616806952868596497727678161551448929909204142208847260525928503059515462301072293135012266551079629235172773557627194422594065265524600434096316182290313134589221003712124072568639122799336324394786504260245118492390398046810476972536993155146931389152142249199338179779461496307263501971068061682487919498665663324401922551826424855719377348243621585177063233878572046905231691620193917156496493966487947028293703986653071341205739509685246866020475684510526297088353842652654306309818279253115781445958960589335703507500390454536340873606888428692236273521819583126944538709473795261398044927426732627925681872468685053730741434584111025718920428448175401786017706128946276852163181338737736911964015461269857720820149607404722954732139530546017981112703735925808918805491071912241729299236647441589789768200683785522727017146616564181444652184011497478069210537626533759596227893823137438045855439022278121448921422244671474006794097449769194579003849004366097371715446780674736743232393810997138491399679053566859386194262314729343599995233156867565425206755651067838544214427494940567812792914605153224013764911168443359447419412545017805256780022022471580580927167938116502278585379104802843791779899886894144245377854632138691466578254205361427841486511709187298591765241856672201326925608131001040485980809478759184049295592909695746163503980436235470989343335282257062452386977180228863673902084286217310103915072448083625549656378675426709621172437738229524444962699080670501040671987192857292543504550508802988220528355239128868856207913601216547684926569982779499607739712075462721880109055354977409022116414145180615256715461715485534174544578196124802354163779160664790347387599305611690863328223055987202162628432293019912160291724750534343827296743264408418781646090800750233552618118904733904536721074822549322811739732506300701772684505207083487245282353630805958531180735861096098030088554320614290956016240323635140155686406401515379833076677097110209646694926686355892253674164497122390850362568611324467663445813886607873197427987718249813757092466809416170657104858121951599015414290127074074334290973566491206389209716613419759653116484270954615690256116046695880733101465017147875446560670186449816244819644274573257642355679130396446526005243139126441471861869297705903997055487843840160248920166128757350370410376459060270828562422678337794085324327608638770622234117450167224978488774111698521417715033937768349308050723330645166405285839656959422688776186079663003113115474469843754302391039561273439057664766195912531843624282341972755171333363764696010636060080372581868139259294427234430646744105497650263573860804506308101339956086768709147368190088668540860612807634030251601241100235016681546505572550895725571067368177309076318215590091501365191681731529898699390803882208246536440067268893243023187260797349293595837155506940782725301152703371476934214364681034314005448078585654039545330105147521630430618763532882199657782083299280354893978099437274127121368040400299872718145681031382541410175900222018883359195214266849908810516695162094237543244734891813652780047962963438095531786107801846275144878963159351079969442095108848253746910385419309041092105580864740682234763862904371905494929339886844825332782725912526018042156451570465451654602130984103255218223581135119473439411675320811457699204204913931530514550766153424094360197908921946757804528168752081714725267627791000119287398890128733792118572075390710781127114687306990435770474472963291743552491498486254029934189482963899768357499977841847833811742664130856276443861037996579023401382175674035168011472649512082165090266157465882037771109869050867410760880922154904596126333391031638451868355021737914099907737178336023876646721226087476304076801922601560104578049059002364762778180680217237405645121720603714033637927927015286342545236937800996701706235021990558446989127180963409591259316639948718645703832404184919652333080233247539979186419076588461253655812259075919626597940966969616214543097703321316711194013095012947737490396791665752858848778015320896792040325393322475879669089197330076298958230601816901298023391128514420632668517257032508724018802121554360626627641069862955206865662098435688707756409407029358879379614986589593718623531018006947531569139143267884301221336939172422371218872469808095951029383723621835499924614313960331812444453275106253351386307293270929292455949600100869911671377012001346682444672756288929113257503361810773044868553791534649857919643190912636462187948851058428699843551322970349153943960464934599414201136791225797928827830170628354604906752413921730640159094881392081226846027219918885171904790089673098816663404554598484446767346930090517502793876777517997649518645176848177279116219360126313025611526885327841309353771171673454748535121063973348156977701956418583409725808605563389027227404518582827792961997820239702826319670390327630294020618501826884954003279689781009171118103956995236728729081034662687393068965057239521154817784413572955152649206255197516677475956237379313501972751908200181770132921553137738690913752873322868030299688778847922536805301835011828882433075715188868620302402153509108316159874927044708334052240122579733071089989226825950116110514431719509140024605827967834959326335266311355439482902370505127930072121439046837382590440871245268640301970082862383410114616688242529610646532714739136729773705268806481599154062400382812727440799173804112925746243237689271113364459989985001303764090288224062607861575444494218960842454378545468485187961697149235391942955789306456868165978002571438281845508706465786989281937362828870996625389880871126175235788150055288289133107303043132731982007470553927152769848475814337287089358667064227657595482396780221103207534901203767204749315325527598889589865648643312126257731060508514728064638125755908035958199364700246401893488303399191990093746787708156208967903143608511582230284889569487575542235221617567267035533945368555438565405999076042989026944042877276596489573365249389069351580872454249570137186744955434556770232208830127079910935111984570297063510316107824697787618633337546800276404947743935320824753301697434492655615773245819310102480280708386998857288429428646083625719333880856325671744621492550388378050105378807938638547953754121874402100833948847696835393206261755317603161830637504354180596903570128366533619954790254145198008898723342352634735977161116490229755989185569039441308996449287573332099122087105626462798823364966757407660734814310659065780628640232332121373245643589230946544660740106114864319216683590003313767690031826940154749541602440778364619724796781221444093194579686789403667604040981344327626140371163244045784322889123666369269702175684175800639567426390352351092513671093076394753208798043561703560603966701395649097374246104061267012037702333665002867369315369899004224426202962497347581758483086673866799241104626197324662234901589498863085598017481420614573974097195588671679860066732302144955907786388258137582975466809128895097999986017904507284368726851366750519233298031586034135553706430639391766498898746437188763516002841260243980792893959128037708614628032810363337882056514605651613223625039742131378558175598019215711719236409136640581595067616285324848564813095789552182052576873103769963972505846682797845163795463872755784062850200761870031432274515004394749663021747259155124062022600167145811185833629119967711512971796162771195047736618352765771468736540627831513003152651733558759761213228863196058879237733588729538148657506847198885726061123558341096759559272826837651977398196621686494495593231918794761099320243662014404598084282940049702891383009247112069426436301621445554403405663914762164663453472021907319568027484037033526503715221673468484800424255774431798649603379163019872417105881536095710446525600084763558517860820293432205961850769153458914346631141320458823655362112793959595184671346853959411668255987437515248653900484387498079607187303745514705019975204520466515985219835905127443212882064759840737002058148005832459616801983849589201815075509843197242999579409660006446414592954259259669489988976264538508957243467738065864133007932013107241175982254869556154114525123672629806926829477652609058679364060025275237121483140515588817770389456030374702496977322445771275503742947140296009772406863198417506934078376698332222472601704680708083424913379148579203100695476233072080272935283766097960229103012055818044066344347999749787452271645927139378694877070296736973332344114208448362318914532534205745925535793823313260042231527166620355215300765876058816995653460663467047039988402156098941863531438644717901702376113971567488695734616574145062175240918774191616053306811524027447120256860883998206813966872925652409501578721673199560618088727146249658050439850605096516172191194247105181550078596599561095602079109629916566580360544449007380093400356210325034542989744908933483357069210132322641581928705381229528031166867003454237549085273916146764301802411671892978916501323219249736935622717321801205919234684712056531956816167484542334411108569253724945419022724446830712328322762681094973160586979437174791928301270346459384622494177091916998825271022647554408610160908175404843330954564095666914236917273455907798476081780184633653323800091440400612811860268101124216486020516435420322469707243634852877466911055029715426533377970538391572216668373804190600977082295177022772837970441384668052316160261189411522364692630474475810201270499015921125849826075529704629709659658522578628810768753835367304937484898614772383348939386499729700067757432550873256612305709721575550591917402048325797264233930178716554602343333057498714145801264738022531701962919718064512160043655302931106738897874352367076549538805133964418964018201877808262360680362409911936859040158022130921119191222682826036844449176794397452657350186472336275479174297332785986530554249373929921212171004546470915639259946646415006302761783734151653393955852286512014909295447115042233970112179245647855281967215480619606111258726404292681360690626064440510208332948448931110202719759691924020634468801216363277175833715380261194331288337515235293630001933313675315213277172660914743949707943678752604254894769871548256171021403813954250584839722952441923578860018271277217743918640888201743020030311441763779640771929181895538991182362241993601536049833080717023790910683091718920253346830353442928400592495971853685606050852495400205977271300044488649886815574295074582411000888888661740026791810166434761235017303316855680153411234481865815236728359304640438299178071751751816835564092441253303122955221720344497595814532860091861460862050560257790872696961426919777586177155680184529075489898124324854162462596808588778459301665488036463059530923969834678780763162540893920120973556776861471882310984327349472851767991368309837616379606828887457348178230228531751308954604834602101972505447623980653957411325754427770663751598155908711768674556915595087849861353747782372056689494592923275267324745977438574382513988147802455902443779250430623072379854325598105151839035237471719041896538504039887603131552092557102969003767224255677831306093937054194768370381495704213823111288795783665834365494095059920749486616610011567329783770613128467398876613592747343447699131482254260344667363399674896602540598681946864929787271916136961249040797662010647471403061361139263593876245886432107114626862331252421878813366295577458352716434113568435798998061981798919111948421486293379768165121266620148244822412557108917281025608098459555141446720764889404496123570835793775557518786598110731054982484239356107440495091787478687558915992406670010378626000294494036448931406410305056414906857349434504059873025216491601438703753859980153593720672683292611606202542160869606020615415146226940017194311635760064575331257410515306315819111126338647822895119247409482683891287587487434249723828848540379034819864627325997648015127135722675129571579452795884501744115148361176956053662301995915782686047825910800344301007792124705978888595469944390291004868750686756974838446301535841155485141555487552078098821702975938799752432248283729516808886263539662961678978574800769930417100408445222087356209378960121181690239595552365277209859463327264513379365127755271603336977371637414724983348662430826256856368819186434251310310268739178531699582341788464931064710479293850265687818687911642019093374873416384108820318203501716977966833187961913620135350649394731278885594147475870383823665038381788606357640550242427797463588717626898002160538392154934526240227416801860269744615478398423284355813376306948939240386704247996163666408767120985392153028391589829001979931001756060033562983681551959977503844342918278108190625021610557006304694873950047603837324166172665528723811816530913153390005165837811994395902897752915395575664843315910680322836420856341197068767614559082302199420167231432986971052742767836652426562581497308226028456914366969661714620159520486767546443176895580232970107307976185767371271986832420765486763996568423832722848063232624855262564182155962081261865881227669858483527922357573202219231165616715314123911859944975240744060881002108011999964862522611062984506335558745868418515405709575497374974211804279828703168218927536813744452695827220197549624035051918567190411351281705594832376824894008095532126830246122497392650449110840031997477464553835565145737528784716207079819382434348686819530848442992666133209588587427499739326628831740193331708748291686534714490229470206134386427811300644572901747938044630103931167288478896919893179393712029251591649050433922648281643958534988440785934538892148684125787456900953997758554857078618523438799667735286278455162499395926506768982667273698271426229576255741272000835989940001369331452367013314460904400371892465674357867279706154820676772395303162516583821736366703794528748536695610199305584206858293065814569491811359949708206295130596608328079566167689936214712513505659269350278030553045724031326681071910003666963727666488650631023536850417476218428631582889996885804642240036175675824399942682706158454473361491133057339722376885112477450900330112280546886484454190055028840495431991259628390609752793887091874336050376155252405734870959462127590154738968354149926534941761763462726216812648496642644265824251032698719222531678283459580499578632806625063423160760256452166675400821407364203902642895364577654384294138434159206279754217567557563879514024530828390507471008702675200224717729585379363542094979209961808701742046196403423081488237250057188156894790211329678592622479086786889622566635433976703164160582875011236841471396642792810326019020124811800087129978731267551695019221386299198279941917475402402944571925689574944877789305387009992284770714467755760425210910181085037280929578193944896049545901827829877357081233886037718595421191926392054559246710186705310324367249799760442753395386865227608278889392986611334018310969869667583202281890735493236681546189779048036442833417115537532783331318097149956171706660774789370079542400764456448527801183217744997960643308121128473380718711325043784188478211401795854230018508303169786627605807836106863685041040730221139365595582626993530059114096333628241806115203774026184069309021525503443420740477790433108771514462040161906521482085957191445302250680774907364047570410296962790549720708463947372545529190358979809533830539174689447179577807190848032953085294878592798556540208946808147922018350695675839742642196251259685642314522626429433483392111035237367278908872054218067532253029912836591160423870246387329149560259557352471197054632774915692899475873882773951447809629048754817746340054767281505101872638306667453632876465906073485457606118704756714687479854158546125325401680396324042763450053336535886302033231053387386273450380442240335304142113695054491992797007143636265225463923184746108706210015518863200662812812991424450089973562122318035037745824489440128893891048340319644136490592777068798184690664952425654905123429399719721566977610466921117217777712340010103546226572288174073998120574079089280858924616479192460557561044595243972116313336362242762133348279248142389344618089558494108083681321072316237951976638696228487191717666845341398915842173154265669067633177849268154568997702029405816313997484439965208302114826478244226326343065708140276626064679630505538990023416730374627014913362920084398252508181365749150372791534839898464289466725860630160099185466898368631454315965792957937037756001065005585088901479956653516923017573476823237703787591651006320305839632223597715676808932612951204031591829946685695610151352667960088664289613759674094532431926219764563001638751232945150576530630806537020377355810985940637981225404086750147906761445168737320237107872492566341773448010124519655036979674707646137639266150376291465588932879891079854376310879447724143441968176635248615408355317411503865986367037816294783123635345299773302871851690464941811433077297659601291093375043872377085544501186892980100105181551709760525366479104989907763174961907204418508365516323351515003258276749132840091232053933971206500490272692629501534100875236963122462923751727745977751394767995324503148975779692615789757840182827023582383914547936463418426596719660959843131981587222876859975031732341369260924700401402385890593755610765471757945083995935278817454356492575220834875351834294228359540293177807160686796334053326185557174430397138871797053290211420832229662865720111121873909010013335788599348439276265065557849465028463066346608771698656290392272329503194524700658491889957637365174026509298101263605643884451031632688738423574857663726952474646482868230684043700373169699010928913363698561479307559091166306501774566304918141548676594511682364796729424967508213626700170218846719842398182216627516036060129139160819620166612251364931417639761967379289458619051576478363780888468708374998857657818023151433671534436592057170622813803229364489593970069263562272575211948573966842974739496540719023104977483744942606257207760169348931574421930580518382679443011445644764414697174894745806169306100515807133933319621160992214750113920362089854198653412458098263456323035467597751697713398068808662426611180232078975930844749431456847634060879412584304666527887257063746129360007583958251775083172614209370839656684205468715388981876962293987640770677576662175730853319852760126400198869788632483386760446741797781210255544815698450046645356446196056113504876514319639806046525188611038232505964426049742645904311121417426264693802798263250432810284440039800781045902582241117223438223337112557563034441289090936479036853137904893308676053252434349007243946706583204650954942031986138101232809524822855369154518887166239615974267293572768072420782385527886296217438415941549958281857539711268613490467548668965249437499732714745961477564523648212603887312839818147839474003177025747672124064399144295672631266166382051663007922750277759766174332254634618136348734251240715509381105872301226980489320054897857209958798319920639929765892537938196667605953347563296988618277489893607757492823499426188013545159416595364792202511012151984692518894453259229295649161719580442939298088410754388864756091621158119700954676274748582540842711523335502293611122564021785233254550059857582310402199754311601437137650969755344248928364531914491518074466750362753776693179298680502439520944637487644172530755661657727404348366751352345138337250091921592422328842109057889699828095763093046728120535453065065458747786881999550679812402806923313742766072328741250275659932062521428178025760186983498454269676115215698125490887209372979387611854413779097247700532968953785344261780920853436788859503812996909779327954818560057195731564878536178624803617798523990095600570395479745884918436738587616905588868933978981328901900950319673110660665271131424103186700457002618894099809006785278587866595360587010867256400410620954837490904887620804443693011864918404334715163312782747159748415700473709101871562124592015576779345085503411637231289178617207294985402217406390924573975533621287982733231709038278271445588558689337571216024740936040396066117279260313415350859300887567258854526359142281048800617363914721562798690402170044124432023011869058721405645604058001737842115567226481233730282847448350450478271073569836000708672159714592274789320360168729180068145807177819189408976386361587305876147286068720236865942779434273852597618756818435109678756246671444823492875257707545048632242089887705842333855209409264369667345989105855980300457035255110049920971884204790531358731226325478432545502235162938108985910668484575039344180239807084587848893424033512054953998909707904582360926824370645036945252914829799242224232890133540523503444222870178034339110775341210153090488284699883757949290303943781300146437435195047833639910796165173077243182349686718572577319688803485891525959945053202503205751935192805961050697694726712279533968653589338158815812129353570788821947598127925317401632534451918081924639103831581599308751363005759906479219227943093782254988466671320946237991231591909001809237428331711462567834324545482870469318926248939766848573393729434511937243868877217266770394609532486175873655883647447360640933520783999246429322079705777246566475791786625742071438956970429863681247267237793990010703791686760198682374388247685521206406845060533899641295943710008758150587888572117521386463967215084143106823118794261546265501749223554470985686744543933475497111900996416655976407558815411332687031332185299144879289429486782617232911507493993973127795797434708860178243623867002765369338745311934222015339230752217548175213948049199641755816569486668143700525190961292295387930598684866758044297993628795755725892122227659161847020510953427348092200842937859548198285715838352941438642310678949563480336389360468191105280490766821141147611007699815370135417063268189910221259758607596534105685792913767437942624761996753398647749184396483570589372442713697480500021544241121316086412242144770485403253064637476832699650089863471265863315245182271110344934691837991747777776682154270955695295710926358826513208956037014260515305233686406909360065658131558580377449668580685035856720707043348394245716000963202766665278787279414176875264926668510384561536494496163814117745376032031263763332818951200701602184067310214176840607961897886965623653589141297299367074005030885012911160122973415442173216849166519220671961668151312555882172121467214698681883463472960462127535120590737926477327424791724016767512960656888859191955383872798883283492615547495301170234026476635272569700020658143540186050769216602481790834837287310436577339319714523285700851782878134261664026851549177781523873575935877848509763244418400894618364662697602727710353887336937195202139456751637572493856280681392641199094764423160638155713048823936459179621270155408678020338883495986356985682231155890361370137564963984960521342288069789531697378763542868285316777508563050170037296445411535945044943243120707078967914691175171862527653671387100603836190429502974296636391595406423548627986018273001503845716427708709425880542167309573391833568519567427579161480065867285406197950898315339453061286315058444207743537685944174510327801310463035101845216308802102027502133744207428583737838784369116963640063867097945643647169476941928846105901748534339747702985339484138198124995693400341290547781339587539086464070285417548994331287885923809071482663998262782584647129439954231827093479756939833706688516883668183763844388452906683445049423566824384535826266057665805293967820691493075525645018578958146901996039137385200958847016186474432470992602565174217725313796768572669279577810296389983772236538368163185596097037942703236164222482891707746177878581299748575988700279824080726961575519508002043340039231166224979227597704285966250346251500518398669127795709430474316905584699462164859250180622929114413822813445730249744957923398388817846017233081020647390333396774286052899185141050891837251344296883499277766671259208847522297728074965489892830663372966271124357419734618576067741210677543569142839977665961120993486335320624428879108876444690824946778130333185369592557372432013001796790900746226323054675512584519358555639803960759955474304088378069519754369071703372604407100217821855672935828542771722407796540886984382392541149801808462594936808732467374048422370382445484899691659943751658153095835898580350071602606887555074705206427961513908042445555556271304715045525489217150461388639557572164343207706394176455305987833606184205798935166161860714963316145808797285523983043964635306075123339959254410617066230991183793603024749728061653443051091842556051828138733048568128711184783133639294740724411952508810785326040120337388155001301152091170189106448793962644147894107895818847219866354457505389167006589689102484154936740574059598288736133229958596992285712583669454472423936949452278392525361398306097770856007645090764311530574937212992371255735189670699934701357384702871987373472265820909434807571893406086645292082594159843119297303026361860226579252874108103660550489231454590530122967892490343239231872593861049321464243043396511664770927522257925145282605199511383030274956960742388967828812679246241703638076488548051657615798573099477246293344266243314554366614921942446290291632171652951914563689490283655585256932220516798332829042390949838275488679502594877542230529823982859754357575742366627990029088656716789908471200081153544655699845929626952912634334581147516180093738485791362313968733960374872103221607305511830692296130229580962253925147636580792230668790011904750570731189414266630148036445879859320898619026046116075270033132855247300153669420044362840119260091138243736332015866255104835145607565560731138910049364452428909545293767283379185594914051558957082135157189444156465075795616968596886068522330401400581925048653573314705918804482419342037056414205973142424562488481662883475446995259631783182091850199331542112765731681042504162795239861818785059585618492945308173090629495471702399200281543146739252799755320059556446706063508740408975411834809580389518691104767902435763607051644268304021897146679868724417777540272431361035161236787946200998092090224290245584647467817006879783833172330065058805596388428685304599935794140684264199946274816151504808544051782358556701400199408874591512477114655241573012758546139116594899869960447427608394732491313187090905698261007090082209879907894814208392042543304703233995866726373511135711136044400577126993365015533829526030090636295390780873585619789542597645003486636999656960004064701792013222941906426774936747626807132491363758127049268338887529130330077909610799593289823310133806560247908475378647000761659563993986620843167003234714941191904219204966515685732987945318202522065887489760992323818907093588699038846830434430444668871565827633109231383427048288721035935753442511585040368547794844683446698502116253372321891049320587935320636756652402270325685857525746639584122379386380080888555650675712142044556226147641135132913425947559981504478475252893912836459067708859743283649638848546334578459980893927115193682459078572558223438347522927568671278812446820457083661769383322186154244593660263386464188496392191264304549989876958697214247434544960795647661179378039361970021236881747710978086759109829470857584273250330083780125851073770147570855311132206277136116454743770868977574864751807209323169631431679995361877556149178217701366458845577984449242679375783916296673941049201412062397832343337963477009301852971897221034844068688442166002403867161234752110251475453645107616794970239289311361960460026097011380380969850571897799817908137549922811230923588083724835153559224954932447585126803032210129942214552726423869324345255877508554730625810526005502749283130586725418701517152603283236809413402507436507030630374197349238764666774182749885610738200029278108845003120112088754880808598299372576044557747730590921570683105340108160100297950695888230488988065394002050805753194240874339490653760048158712539484406775276146086674754989607640278200502626122677123646462836809050805917914935803501383756249804466055839505099331341118565610836971707377659698613652036121128157837031587276385946510964933927205207033169583241455015745035910286049910764763269386972613097430785941502565918144858103123660784489607512988815226252326265168734491704257537348255160506536264718441982303859806728984786036312879616468728858957068999012326045358680519529954931943017510602572297103169497401458222533299905865621999571855431764748233515323692845407495990343437613671728404098527161203137124345527181704067230286118793545849596392393439541734180712271608008688742086592877655908790565782586418842261448083297769816739593599306597617778215204159359868832506356788271402487150520121024082088115496252655277065696204437124998191172093683594377164374506391359267670645992620956801695520851006262047226358975014376051944740552270931046853112918444900067089227085099956717125719277605638308554542297342654013701569112965173735843945564008632655561097074143128491799079046434414955783914988319700978505128503183960704748250547388481268972942037043981098290545130009402427089428525568637340175251813312926389709597103455994082341872304159766093237847073688634385127895062159724972931232992655446469791633170529216433860483533577614167332777980806539174221177755340853761670277354233696226958272850807245473922929225764883220011685857739128807622308415417743084149901677918492605873110603653173499939602099040548636255231507204620172664297944789346285468385984383745982342994880145977281506266029258636163230725736699937134871541696779594836487512801700987795506531111658594289604851447881964377973720841550728113437170785699099184181777263771197056256011157971499851469654377356403503032392812090653149662262904455851028515481037079830690141756673123284145316176743555271342598334036218482379053733585144092404450041594767311897389459360984831175709299392931887690110523574890891032456645438122292700396506842357595776467583093237399464237857634323039988454537380371020579158378351903521110855965681039562131053770804787809956106595197854442772953321109360465713651407623180604857698865601888237275867813974758312512422702603046042451221474494333046906594021128258707415292256761064306112778913626136400609597090285350392427793553716999464212811641973990720542704815001379737068372552833220388615389318752001448566636381469087986635315515670563731634080180065832078803340979667274089027686020211589414479822117909316955783759239885883348484190096506041134859665159613902887047139700149979002357515001834333972576025164357248985432233765833362611996516713597913962539180416670893621450059090005962838041111726951760856649611809140332156829369881123673185954395136207396402943537617382570241475092404895054018102517305201158662269895488619915872195774558331509006266730626290790212737327495579904821184232536602277194637871655389644128232464068808153305245876502362396940039450932417733512075833613889312088347755557247683563438942702310539577998547054388610172837722547758587939962657232946202535206197886526378008469871365732418392194026270630111614218917311792513860612074398291026948970377642889109373264572043806202759252400475039792336993676184397992354802004821999421671983314313602440216185646040368814841675849576007687548637734518328972134193538970570351891062319594514031058577199491604159808079186059562974156215082016642610476463910807127142853321423235643520741794168727072771400707607635658207353529570257520669925852263830562437651665320721942672865869276073378415173739889703174414351866262250183463227234502167787759646967943463374470860215328132724912875135256111906822288317907372816868664572726186310888549894425526048197932614961650199126296448392202736629941164452739230574650561201923442013395725173269257278541765183524499416605790795982489367939047876524704715668986313995225187692967608534517675410338935517497294845942673399999975721442663060341450975533098284950277194990203982947946511231524356281161372266221242194790204542985620775380955205605740691635812203866251500739512373673067580391620051937478580427641434796564916699146251680024446487212948783689097179574193327679798027596311644165146452911407006547985251495365911267801502864929352608235978110578743867218604098541752120890584775173400640823618002097791815155282815860409879460460273389576729705501069979820811195650413680953439489576384432924795207355505151670887313895948771984614836525483073220045239138516072756474153924629687435891470865668409265989275973234506102289499999388988614680052155006757379760462516349999789647383512376113653203538359719905642917806614103608727266046082441425752776073871235971126298470260051906592902244553966499358432536879794640536298131544756461058343883650643137091936854683633355155902674930590034745317680753552769633482497085740409611174609286195000051452023198208714097177488267498215139583789213505782049104746382969552012117780269660427200844837521270732555593795026642823094706566151341338716704538439270166869171114277550594572258418888790112246200323975427918577291045617567260423660063370852123010064922601580087471741964390581686286100830002340092992602506322451750280045469506166295091468405787044561004804073069186885035396087991634288458166034697709333109540729376377580002662278926048923534144927460547341746280483023422844593700458905506917901171050518498159074047046262671005905720971427959829483218353136755413327007283862731576312034824858603569861517322912860752851904727182604983175059076746166671074741358439455875740550528895842516759685685085412536742499279106227990019480564532956869810959516073074079473615669524632927796027082983023415960735004132298739189081480672051211005363658199678571998962376743292863052644362783553861067002784895489579787724080497905556416801859625342236874783413044395917876081380755516236869529431555292895456504585119784647883956968788074081882131877312956429595468795620864334120310715073337467432248465181578354059406269806269750113406412105986661386853142184193801185834522416881886531354636060689967989300303070865893507788977731487609607787860484738184359203837765412882764163946974217258082039331088234634125816220297881809561682470409640220874964785264823052107105005216165849141811147066782468852240765927285710101496263747010221416943351514444978927275864570297488952987311756572563761149978723887474908314537749380747457391418310684516518916545854001750022592686589517497400990154476075535105660826741721247170053636714130257122170591743065066760509775193470278378707053118963880064669443115955160076515783248645657685461309083621876944114514786106455087802852757669537135985014196996338050337434593862428542273041318704734386936218922062689248925759010191910251757359862754417217918981823426173345982763032923531393473877718178912390674660159094551327993698652188635854239567214119743331856648850361784746634549591232812413554603960183396292599655726340644909080094414255172234597654490382842663501194899790028204363610569364743148488933998355616793634161207449839460153166291698457661932656223935490920542470238920029839532942835582996040739448336352038478774675321205166219026213800342967784207151856370541066827132546421087408270014882189482561311620276186109199183708548331277583562785751467907028007517420923305524876221868762080984213803774038603145641809861221258433355240869602538359972147799104814035098320413290899220263805380270609535233200250190709046708688963492490106537094422179720385427727748093437997626313520720934016450244039281320190737596304786435089529724111295884395717688849335019543099551177869843022177386082201710381226153771266314253388703821040864341844535228130916151507932216476886574224149821430125938308073797783731104434796080054565957551453224723053727675063645778055397906505837169306263608453242068988534783573792760755175073973251506158584629829445887420298128020961814235845930599373239118506360373696435950317185827756206252669143607544957522392758286611876749742039562974697864874662555445837204127354694138261733820496288828350820346706620881290421592955337817376714729479736086417525070336136752059760640950235807209343317431615208573841747734973075754734128757240235727853103763783166415371023901420050781884613416898153405351870154147542594591601737493400411219942638823718386662258811710883295442481697642190079400295189352107180715118078073178020331142394417377469589400832547601242889723174177197684013302972564306399188582687180895232474952639162119082340222700600663670643119449858874771179337351736444332722509037317979583188005989212438228097667563284790900738802451319253063703943207533843891079153559114537727972937441545514893202556918118957065698549592506071542889654960757963770073714216965204053955642692093651686623703744175372808080562414463035776647672383785123091574783359429371815215101119878694178154118833900869653372702741837421755433170290754458112769140015736256102579335184376412022231646760872890664130962002662309476494731373244754685185610461173661285977600706856334462667349575183759046264074534533526105883001598871214814343402809996866667483680370817560399687780997830139124139984410025692164132606548065536561256274353972121943781577251276713937313754039075618858485021703335803435114962702364405081069137490803726942492627877996887029805440437217894831880639789228252486951035725407481617990942227415127333285960263122864884358386331778968065952066732346986972746308235411704725770566481766928194879047081772423662398314999381728040542289961451381614253823805203897226718305646769205263406585923880003562568272257380703105862847234548099512399698141970838289074150558470340555969335755238410239037157761312733213254108873010098569975928795361811438267290126627073977094067600157265293307210833642855016604421180842259697796037670521345517695860130477668491089891748732419381565527694486248317868826067538577976286239366476995924626257919087920449472748707307227293994908312865368798617321007079916458272447105272531568568285641874181576853184405902838331625621827868547049637454430328031126835021627198651925533808473134107382368890100866272373399161924889969911117101545502557509740496310030828911246372012681909832920572935786376871037267287489443858138118109109252672327318653080189880164226587382172579593130804375705415326267724311888146572233815415198494820688126528355749678570400285365089686935808117051509879805617903670217526227336541095673855258071419865236414494182379968370440649653869292955173996742588855176300439422675593485265863085184092322013633850253407108887153622157215851656920558223519453196248674498862408790542076290432479408859303094253573370852441390406527542360424195126383376426538200095214417089524515463411196523386091752734677691669483874513513318626989557798532634390473402933948989770452828645429210631957451639923525697974115410850039316261620763757389435782473882513829758589863833932618581260795389666943819351586850070921911609630340769041453684564032664688638845474463503259379866923723254204730470527283661605971593003851386192074876093159020741718020794501802892834201555850311102278985679542057102054925526226392146302589505234622426525020280831013033578543297517171590592407580478252146415050417196299830338206326728566845762501046719845807133020175912560736722181042509084707157531393840489747782874774479104119271360044921364544604091972522855991011326349983724706925908182790846738462514669495691241164042432679853649692820834741811124293392606989741862118067577662516433877264623760469344742337073364513368045430460850811229625234701860044809876929341526324631425536155879330638621684042202938761157262165909889497192779680185905579882577806410307500239155102635031532451721911326520740961534228040549786392114396551674106681435633502033850264422872616009651984080516867979992843427377336206149786376417016070199822124623868661580734335000090170658919647937721706379109191398087120900340196786933081596547642733630226147198300095800053538927243902292619526402171395882029762060252334220764215611035699664136267623391979586184115676341473998806428455397074536365879491475601469582828893611388303869154646709599611485922931195563389065995314719911383738359957525595984288841484325261455209045162101751641470251074221624081160178053703706843445089047483183710145759198156859843486060283717853912583197892349671131137953014111800687661840398991528453274067572560556179828652928503751176555867317000853749562252480865867515434995927889862385040916890935446592541828533596455794078217770092816452496560525333714755020975337987943326918732428200197805132573265974863863364436122152085093863092054034268793872729787476382892659437257565471792412184321997973374553065040745821910299426604207027707417898366719849075203936774998728454275770855215381127335898729786670746381186211664654192051395386784092715311896319514652234270248037980688749453276544652605131001420657685394106597002917938225896242819893514837041733216506304380096149793277868576246580952035443588881920375067039366983891901307599832102205829635830804808779736922732052263681458447466482336357820573682781200104995066725497270109180584671754165433310795738209856070445839746377721631305716238341057337136227005737101421303193964055279290346605161777651783902241256781656992584159306903681551478667943549141159282219072056999320777501482056275066923460626494537337420403513774301157090147322236451920305571404151479247985616466279642402434416256588275567679340544126936377899356869356151411079003724970728535063542381807243824410312061449130133448546470878683505014300607403848740872854595869033400611736248061548344452357088769043247993734325425657762019384869864118714619218715665734342248545117622612578939151552560436101429115659562066897286665046542160862692267051694453505090153792019756942074767239482377202752197357432500742283937957299229619418190588995101873514696198736375625939372565614054918201753625219927526396759369097419490135595697601195280683560031399501865887249092523206141108450110554577153745643260190321794347970764055808647590967093027455640474629109186741346564928174281439602605999756234249875729341392482340710383467308292413799458298345288948722428131956667937214628384342626544958876217463653124077397768640236265009633948000887427828259984607589897373767969960648207646037176675147771392425673239444250772450881724136288174065927212402915442761053600790563287538190816682395535557918681934505147023081785405254156384744849099494787574824606356406194131639610888307778664047900066829360504919758673183137895322133364982835554693972004481942745882894931180903978935167884465352880468030952921901316632470525606255509819540745747093348558189349472150704033356019242181744958275359055345617751540090303692162255885206312837677474333793909884165009921473999496539108333985778718316111579098388070196314159739887092285587486495046931984238840216530831244438927003867894585489632565937995658956942666174252020420614406288913034368588923868213998083794217951799958431285970146237669416971875625225240071534899254846469799063512100455036746816618637379878842105749015226930604029928193623658930271892519363361111799667123474628358098926661521122320846289510590965808666994167429832196337196064948534293114920997982437932183948112319575318643667094693635432250349544842391468393109973344340259661102303439777387053304789219826660778534022480073336676552179702940687958174259192433616449246944694577947936493425300248039484219690796443302092245547338441947526995933858191543108648264425084077659773256800140283604740226529779753839930583684054038643168783015331519927427335708560733701661674660104267257494317200463911850745478927252409217805897946253746185824098926648666882572213497015495017581168722696214554545162175041817172599933746443742014493304897861114101949557378620017460819353698177121324393698441863671751975778439028157186721108174466907611386593761780855598319628715598679683793825029959864938402069477873780367555089884783928581870657106594577133155525563551707896253036703014643574866465624912738269367234568138840398051307188843451170255995521801824706698389043420371133244849009275208674222958969262203760231361568452288821940253281734221113094236551488022911912425446445812644470334353922289393796661037899877023266320603281322610743192373672473613465861438739808158371285130748110975490315650931171788321489439208633806754851189148070339618765976559813224284321875668164846644722293527765132447043606992130815844139116131982543754362462425400562565103945867980291584031468243925840271762984632494538101086775091871163011956294074881472061421159267567200407914581590495355502116249568456099712613591035520249923254611810446341430744884518578279305105370621246292340375849477560315764176964951107138908811723730090979784125750962067449122809207896507353242793536566468574401842010270760716694574194042162306100661624009412560397248560994291330005939686796919461764269709228741967650344570477782088738592605419608099241955022495451081362636845890873983515111909473747824179837261426892692049728656353404554154170663101510547905336265246470700478856314825725136120567870527579995183724828456083917401174233227602947153309029776597073992891323318562593061627319566204202587286733572258955577450115061460177688737895189591340175092568307439679242511138922970576796397225328531292356223045028626498780829213698153753472361851641200284899349945400541884825281151893669074550978307946700784313771354297263745384589107399471543301013313154103583968509551570142426555951373845032057797990282816205046506077273290633168223686068124195761568474554022654352136550011808897772396137979222462363242217847934005501298636526431819358188192642259479635049346993191369269807065073697918626148354536868443531448060963943217789208426072106039141917365385469633424057871259123090822112402845989757054401384260044374429961092702269679499109497644633136374866723215147151508886420495460487817264113450318746134043273666763612830015378687960755165373513142248660946604523863997495774393323736292103925652800142666195111778735875787902856620017468768838351373167927822798985772544431093331595490147814070227655278463107733449736871513033304156844681695366445815953945760161524008185742452310160579523700507728240492397065445556127609113335210812434455019381088719391466492831913211503702499915056950827770414057695321640207877842819570917230640586707383914812606490600490457764993925491604314025501875829647301906707654636793668175144891893671103659522614393041456406301148727577996482126540708004838869603958706721693065014405974313500386579238387784777343616133603791905705748766823900409083332546925671070116919589456829964151372880218548565587757807819513453754307920895051760726968212702476752405293463795001103859406241467876697896583049122890242976737508671414902731897421327347980825912113471425547366832931706273159510741834693976501953000018125120627972414703158456217036291718251082092500136077902126592129566349328310160361156791768213042443551298753934278700026732750933232500634319535808579276722890790367612110434174752885247489123770973141411174341886943018139022834430444482840573913884033483974496806907345999887289866908044075007046476744469991666688589183298035087059108296137320575026580899089180247812381054096299062619009163578490506482155108625232513875759273128306242453210993874509603366253800607796682645102924250904796043827695372044149072224945145587920763472163233624405381353763233408675497369785598662154153463134181720885566950451664372650342898647923109393001962750517909702675497706365406606020770144241359386783560281536835393390840123608627936249059118027606888063184245245211567821924265511296870670567054445433460298070372254065653754798191930838028920064212487225386030320310418618339429188111000118167302126136339206719041294919789232273952382682480372149717097971142035617378272444101582188296348524855635092736640756550157525505633761374823370145231339817247822506236065246554955699217648777450795418577374651738615671807900760957384400827048586832587237999750628660812682056365018395319269997994270443260695691027479731626842989617412716050618753438283645666965470402813185083359960670736232778083225011341221834550757972480446860507959193761028624110343838092447441114366555329696786785042187854345908842351571588730453335622916164680451237895124424189908238449633300793865852966357921606393666277958512703796494978862109135897998440169475792890160133181229490614145739224121529668505576472663562119900579662184725674012784050880479559822404698467397789563091387975782942782122664429528983711622229493581464920389240240381979656602004656322511622250517843038097178091398457491474123170295890733310861687233051920828448004240216514834910967701840322352472063827372597546909807913517015565197734859422444147023332438810961578619916384376835319541017700462058842665881194698114670871107411049266773129719364234106498455052313159616920015042108369212958760056236118988939134274476289371097432333370317137444961104937894051165163344366349933572048365350933894164895515519682305168711215642047513961584507640414347292122541588253296050013086422961276557326883916757373442455636509786857420831346189256551394852906048223715115333445706511762869964265556738894278939879885738505652659760088267394509994198796210317378427742508057261579792047686578638327924988809478851483917703892551330213887943981152043869026935113982868891931438367226232497798458984748453663200930625930617978288244406819998971333857442546020856218934650521688036971387631280155795758265021430056733478221902292721314143432551361037480487901071741945299073359266080622502479404923083475920087426138798491159529816102446223534049453080965471757089592738161206684302656482323278144480865885250283348730113477198308439064760415292110906127354748545092478011138129732303113863810230731767045566114728734000315775053059985451683787009920086677790402643026616669092635625640370977016928699732804149579905201952380040589215567318128556723936584928590247676307650687353495922707154803036483949409445697381433876696081335719796666629301928308648369515637807839933951889970471604470083458883143768388105169614764868525562029923113768660094291937189946060571031703618297662457767374331422801590539466597393788021768302764951439109058861933560262764664675685506091317320800772705700437024537301641297143604567084794112773362043415461164401550199745241641589713218179971984597498129695798140660566181542488639917201941074770233480406578625618540944980926226118375550153414387577545137704159097927160865045769225855465248716791981638068228202092694347314737372698949704387073066535687454565967858336755655962236463311643717315638185311685463577361922777761235821566675655322077348557998002704796866573906038230453234800907810076689364715890337526908173344522793817967586794033607087140426012697270182510027895061137913972221800608201943774033883617109532484311542741952451217632600579009485691208869033676911370856568495273837373743285911019355607822724831624848847785093249902386101259633705179996781977163333815398047253002999992523295496364506296626512290119089742685037733913282065070147009321261564868313541023645267995907224199883505189236810874387324387826573008515643014676551040749726543550201165635777091699527622601685871006246156989287901422849094963302888606639442572102748399196771497500279026390909702266025625754617444286729190917131436547083490799240056331877746578799817773639034416116110488708014998753141005359438988884197824873455639300090215621773284682407963869776381085855936341819242295126601858697438658156109082355855416889886466021043443533781840608247895901935376008080173872184040580982895091397775283833505489340415578143660419326536119075789950913033613895340929495101915513493233125403424819404161817854553375499100803359021993076696161834918019647915930515142437279676905802462851575837647563888086190979700376153244186032550357384564867882827688714760228370005688290155502658860323429851093501402660064431808917860545246626987686558453381848176381913600053754845293018701933989775420006096016975079897508273293866138263950316431656763382305462235221469640240197252955667246369073467115364500619949723652266134345080023869124410267094095399942835619323562016973743254682222621071843213693715211338650019972282918573595462170945203786894376913948513416237209311419658938229272740836952211360810921672325152365751851080014638629000091231347899794826161079122476931070613157034930398607609732623733466944346335052102887065348446344198264072123079681132551896896947900438196240014131653216701782200803279217104865769378137717802347209803661822361846361314001925977688723649583181110275041847899630338104092815407636085086715997763378646884163256878286843622644822897411079059432759980429481027550587419212959259691607340780654252850188404614486734838697199212572668242494289174910570691984156076603490512036092380662834704656700783475006457250430880457062592256885733927264975329494621637551605595308035769967425233122978106329452049805515571407729387558527897505599568079339335743421269875970121948098248967425270820977783074559646991220306096286623602525276524153149084740674445532361910992350425706556142919854882838704493441111826296704797821574417289890195407583535559175523451832655561132557702271051140742468919863833066841158204140955747840368010365106056563529893780086687324177391465361334402779667295708458275059255291378120163649255728524762800266261039261000012785784989088042675564571259842427570430208227917489661472547845029717054677934263235388349537024120953806094002656803389462784468573496194115363348923031258010955079271033635177065833947251305658766813828674751867512052480844093452596117467212414129765029017624570869134829873559606189628765573563091486519343274688991922154821169479815216053739156761331548475948308797573715988125565173830855858699544589296835408106335041561632661087425740990507435282753897905922019381305809631794411786751885874501711487821097181573129891849098346130885745613108199293471397909256700511428466065108913886154060246727230982561036426394669821352581448017647346407051489140570118754944631742732380542880635323674821002080878936529964952414450683804669565411532741619123580941508634666761179270628562311438164171106862888116086533353000407219307175938300801863062319726859199160662835566716397104930008929674142567344963211753595909186188333436742450763099959580013157258569242105933507277800839733978295422767078098624045605370222615220138969810114261665428319540453251983383837356263900049296471780265707136988671858020731596662212215290740231285975122771669235932997227622222346450267202428808604653271212205848859309361982226710819011889979826178462898040680100079055318008628705620347995879806751726756437247057233494636573307452218493086390749596366963509090120914891996514432289165519984283985730156305221787961753099007375031466026312654459840792500694654602971949095593005697117603129670169297925366333132814253999117508319792527218199563379769359666555356723633077368258827424143595491084882481114551200776707022044263578144473369073789963703890290148488734331208043906307183015349548960664042897699853084991680381553551995242856939362880917521404464166984847706381557034522813604136510535502073358844781770591816183691576402895218640881963203489644802058896227939063557017976654092730751791356165895051793796791425469374446662349460243296027177511273075532327478546588761500310885740769198149726557566719002973906963729316730510293380707198982315718986735287901753284269900228643419805175932304760823792643810067796654918242642994675509952943235131706852752052694422245419105915077504180333446609038676947959603791180524831484688834438443824168620373546601540962389881534995553199503066784608851722116016250351129330276792937529902422349313291525684379682212912560635915054341202385036061516276952754048382763519674459168259464912852958245648499057467078068259347300713450653685324664548556672566702991043662811759778256302874161406453623761123646532802228605626172531146130970747508327616431179028434056265571602410228931067988900473548196556552789623070924435010724823595264185413857403742568498151145703914878991109342604376381526770987683070846467429570685947771770580082417256088051950270554171633409131937708462083246919905859621458204017273181767755375784210614475373561297929957372020989325233020858246927858239865936475093017905700822658763226758308083311238334473037397255847018384912999745418798501559481700486298601073132079048294578888166205746835238443748255460902323994133831524587771825558360350862009240575493892539857537673724581153582323857615154706863237006164096176289578912672493270790365354147938388221810277578069408102744802393954690441998012736010437688526908746484984878697466744604345669180969087867414443021856145968608725219331096014941797062782689834030180619349557254921747052591173737962826384287583000265674847024045083752118821578420707871636968186068522023006746143303381454961982526464363879993563449123949307226788497629128218464017360319692228596981777044167967349318091716889970793216971387609689056100662617048156427334697642583354953227611041440228871297504363654853761834569105892178991352361945238476822451478441620547640198317226787371950468956795351816570957520515837065256733780207229977255506591522948322213153654573526981999596812118656622922553696784448738757969003489613288424587519616446240141925840522244626057986365272932327733248710943091575172019484051937832196427428725782497836454462522176157521976366855615820623838557278385709118542787593741963892362919912728087663736553508070322241525560550418076627898050635060658352287765535447763189041391450039088548012429456689119853203662989207701249092747350509811229795830451567246172812843529466161090084959547901353627237782563364473213108755176925479144462413804462436502840251373206177895366002190476647734467703910740622990771114095948073462101443059650803736266690307079876738633338332299173576251998826123728213270692517320120287807707530115865685145762471809940404493849940909800727231238081272609975606265694860484896940320455464441840771598334397104788299416737305713893180708118962003292145717990903386444266978859197232321142731300416899412217200836528863296239500006145689122330463134079892662836604163046362829482420314775751018744328249411595785789644898952895626025620491165025605564191558983134948306986578529418619649545082176841596828019151803593370436248592130410882073538845397611150816426619105009400269941138535253351972427778761123139341616235057490917661108190193811449024921760743198349144762423360636554982039661057710837472409142382821156759620377834491023520280610317127671890779774684423295313834895851797538957763634291229481326008455657130452346414756053638326581256052306168165875115873192651405356967195605066388109787293381036640227570358794325495385646926597320132922322995104758925479150787057381336724304088539345785530461687810414457879599681290516173837087003973304976952178462525353763855797298466626043691675598793629397661098648260079898819098851044714498541196049271654926446287712020892659901375812460950869549225096388196756323945261255352146953298809945728989651606305973874927147085270359441289419295034305655680468743365079006880941087408944495080684894016214552707854376182692983395629835112905061599816467904760437717648873400972681149566914551893630001126304504556999307638896218344611640474942185782778329078532136177283582184545933276765934010419805367413838207018605843839456716355551066194776742597304520300129109614360315909598730023834352122232488813003751018170628574449618250726364793105619204454582013403241597222763430623452404091784593984880906728470091802210778839393629478295877667859982629507447143486079602790494746781305168602370759868415164254593145348091386930135605250901462628033746014269992811269855948050306811997556521053827948733853709141695909899183391169622014508175897665652595808720765209783139660652776241935939663976627413841439702956184834945692222562901614092435014688686036119222184776599433275518611059982735048076605040829064206782081210746212002514135397022261227301825165417210216277119155262074462859410308150916766064536517416413877749354402574597797360594295019880711158848455571013328391941236548379345923665033515669775097052482320735166530009433425587664235622509363953445967509495515443609833844191840102669872506907842706648530982737853017153889347656401224976122898133990501302478027385463037689949133775673430736595113456566754114695695674257327845213142250255433815610288335920048591047509506049372258002339114627684067400416299543619435311794423439928767497674711387853169434587861908896360817958139117209397397991462222127202280994814165921964910429522904314029047928095451287507151721499421549725906825295270786497785188922171883841839534420456953077302676806040283396103776733957450785863420572592479897102625458530490026705629735842718508037404043067196725383814110826289973066697124685985246847407610313303125482741735574259362076059509032750748317895636490451753127238654126474550861791381700116192502815345879204439538952424783852803700884974142063489853984874349426464149252882309012275871792157705080927777670913732462562127957671821361594036108532065649355859583198023742281185426888291392358323270442099197324449560730731614686105181774020997595180818826965665326164284074290582504560945490075324313997896626849822131839013868528224692761001124522512710257072407176615893758822252442779465493294742073800038946170225913831079411744370322042531724346197207421928574501142899716561749714542779517086206369225216735434276747948299365726175353400193819467718247459650171727143144613675173350876050285726718650070932602123734718566766921277369196834362231086059279419158090593551101786307037183860406971740723709704047388830882553145014621897202393313629671534824577135213961129333045655018188328441700132801745311492427585823573455852294979497423584525152367688277400803860495544525994667798850245108567171222829588973218690159803990297051069725946999783861125074738311559355375413134208240902762971052969404762339206188720466771155972347893588301158214067417246062879401475827892030922746440591720921396822571645063794624552591039172370572524303118162084062356393951779293158355203044796921817701922584568756940454201045751631683376573364822061491302650050518890430553580116183692779462275048057178614999384011293919455934679037873133143640747817370665421962572395145806882270968747268200270903936715135374807416943053929012813935887893970631432949651344421401761321210719072880491742352391355857600463469217023001767157354053624995560500027555391226258819663847527215524362788794470175555535046389658145474711182529103336778203655334716057873449355492578078048205353918741742089950991016255132137803577252147171795233339880741607684240649289913116570023662649944357633205560563775958417246828012893299887188230238668983609621981756173061548466126629430309958985090037278441910483215816468962436701351202304335997240902208958818583283725176979831318808284325124828370087942337949250820449878392390079683072271877066520411873506871645966743965973703605725476269154461629548604076793499582514408496766268993065885001848568638028848068035351547763646286699104188549793079128574014530010930843737434294546208105223656288782543476466767735231385371224408722265001131354014707483091003803714987061079245696301399334108778932049331759240983248182890110000742990911174743057257571978230664538483091507914909525916961440100505661880538119781809187743836776595917091246183368642821095534118588837993357666353705710548080083334234495140479394015144130501419118733678757320499299053984407604242839743498844554672564891037755561958294813649763822601538071095454907081317140685593033439123555362461519984062189148958640109578490806352526947254000056170685566431011951273954701963461172504714158976539909811871609795504003459178139645606654394163450091553393225939724582701834837550209220361296722692846237909696092469246501342091122126362379461563077668939227597121172082060524738242241631375052429882696754443744081779694872906355338791059173380564536179772499475373864334306231435124019632834002843038330941813376395671482212658611771853224370185684359111710150161128999989218216207179428969008886039583124760042104803175549061874005701108204660914009760850872626444729980883065251534035400916209107614998671038224781688400788000710864330482374883593365640751601828159380717256803927449874618688202194386852931386313945821462451917168291105035251150543522236110709503223538284485321540828209214395194573784483352699690605189520095983802643885040346482925802843932700558459498002049571252354803658334126786984042853878337138254289782000816058413661633161539203818903999833063670202038581159687337265798168229134051026566456126084114248071178632313776554371069439725391279151163396856251720497682349363017025944177876190368542813292128650571106824859829647570999892271347904577164100733812215891502638167863618966265194655656684134657930217180947191404533665960764798005774115427095331965233913499067875331976904186491744682585449064774276483195916472018216668769234875311276582028382946009916085848637087712645248196878566781468709481255514466556873089437191862579319491024061269308938368387298464150248563976603671239875928092883869236883263736507829536567540452891128552605886842757188376942703388487356597199265391437552841548951558910593558833122888959505374022320635200551881433644265886759694712574569647556881485093491508382864627505612421218288934775079313045676696411144293306816820199241927331701406660614481563099284416977120967613857285911092616402301714186370121930840922322294398988374295427958002721382968571284589848830672785377319311826015775617275467009981606646823902885602358604502610368339234991648379178916549533779847248251557771742368995417978278060157565685179400895723012928499947588969007094865131728441225171607746036843169079765549025585898017756153479415767580673808969687732509101530223123729085464575852053950715703843996280714003955034259009316908773083066495831296187315552129840840725996433429252197712998678225756153581222013066386550195864473333409006554021837497132123623827855068217455143699482826330517168844571081415983906003881924270612220595799581657949741120035784131967904235780868874908993095629599823568126669903723923388064875422792807450822985282503769259930624156389806201252126195721666317757108722384734580514854732195041872027640215747699204499811255342823726897094835797674613483225517156679116683485603551867715570659707801022175046718056750129600799790830935906442611146165829159675488829082926400355592501489201968749881982697189574437293498673725672567197858891747848368527917709028142683284966102058982734038386690106029109364407710957682239386468341336939539968834960212580220451348033248345363367393548898616622647906766351281608095902029043909739779774975042380038074366382551086564436250333955872044744097058590425182095471741735294102007042444461900011456025572638747739809718468323627479627683743489609807460225538969766222077305979296470311531782451747960413938862748379176273150408261570457614370615391393446184740257821073264778666033731783955968233975578351999691275637372880587141840310904003564019374264012852321690883761658933156943170035812408115557209313044306816595962058218621437426562555038967660603412379485265727802852382690864194943355637251650521100514665151026730145768861739147124342725091281189245096600333886135113548830171602877825517311507646928684409557177767094312532688214219990843452151976173738036010766814575966361471607688008605699378467584652540274359121416179331830313270676311613934672852183852268846048426389244296134037612693248208060530598692914902522419857832609527674523490886422152186240106237153877115620779697573544580061170160228379298629812881958091572616029526633299006330306583529614375476485642785038195803644177573769067037909027823448882496731685036205479197558079904471177728415148062801893812953250270753745993253534639850419063787711285224308138019431672309957227325622158779621604118813769238518754907618745674364391175450243772319812142009600721369193008106098454106883678512326023906213950887321680369649340640714942276958935663846231572254108862613570419127635109998083579261550888217282711872213642618291082164662947673148250196692658777981048406286588290045426093938893815876909375779469386261880753871364823507229054928925582291498165024938593175571227536178456610255800626254178848580711228945874136814117152597828300973741210396527327258051974243981405761458487855441981488667952208562909392119513264733920936731513092281064347339759279696292039164874410318162673535237287787665979760899235542205993256447693827418456995018420306344561546030584568418726291035452018849892525442343604169834783914721697498656523028041696613590637437866569432025352551210205565716787279460716508358621022139021775724741748497082558158609482205371028228037862648969215481081229395722117212756701952041020481330125096892801385820579929864578611317362510821744505030643035614929052574905873511481781529144862230657638684136297174388565810355109214044343316598001571738605497954710833266377036959577325947239280581003732634584625658903976452061655947396663813362214263805319544776297029246005375942997461953535098069003368089783262706288646671659968861193735865622094375909014200790459101183030082791540632407967803950298651054065607586600109373894915773517720191764725071869089005711662516224446210338404991391760764882245481814823378986149669931045661729577366895444466218395046019678609528424453703360104354769453566346779465619865658645845357698750642376422815971666439701841592557207084546721658732304708417839228955874975338164493854737193647407547027238354453122382372968875198974766632153874827881252421201445523848663675901664929622817099028895542852740605845983627848224944270026237469837051520722679657194377284492477632850471230286331260413359902620749467225587243595830914927552661870938456414248877293920233126036872377175546291895220241421885226330829436821087699709237111265461090431145240529719692549471296249700265211358414517259844582489681183573140892756520185205048110539350688348051140926366207877426231845897335634711121012437671573506082081390339721832267718792501134968040136758990624425822267695917486796937580124964784457980661488052663588641997030171362552620912672739681335295216961651554573451436559555241176754076686528100050980110566704440310962054803010737167688027719557057268537649672147439797827049360805214628866666430824963639332665672397913513874744333435529710438689741854877103387401492875565398433059655102440427236654947234697541987847103108277795672404183324699192965385085379783103638953950832858567682954660475835707985557656729498586251915715160046959693940157289903829258153467850333280359356896927090376675705311488897473614604406932432861787243407371668299701664686220730583733735838462415011664209229531700467274449454214242587574415582786281345988555318725196513702172669942514621763933228554390378207192728651467247637863420395095319959152092585595881191804518310342388218862630454313282013668103779600444792043808728225574761124785694492739420901503529229227224374304230874923905127219989401054571208292225455176612842347735539899931707622275650387030597806634328964121619658836505442995795669659231038448608397333368246176509690566050351208119199755472662978514478237720891162778630405819541779681435057287322923168175700284736590110439992955348889130064524142224364610281801050150176212141196242975508481519638267994690501012783804139110517091088777594283038564062263355159833451838336359893030128149645871224334367226159484060561064764637709381288373214125364409724278482491561499520298878591792874733455035461278564775657348822734182996221730356046615053806783644761471379320259502621850615227290984619730552374865580134531657272563611606795907662346492085835846019625488203757636738535471753779108527059748678300105585364952612741586827449953736771620404331235330038335779337840898858167401806665879978567293784241830595084876777167660804108040222807304546522981221971037360554222298201620250388445673724266333604092363948617522523459907363574036174615729057776172756036217192920056939700004827090291357765505794024243665550543296892969022536213176635691237207820410073175518493468355109905275565167864274370081052749025180937645826241798930408175286785336727632059463381890914313721607779936871371764795213369944163764714985747135855683402064452236429719574555189222002086665722981756041552037050408587877463826727644857389321804987217649534931627497590853659284779219188565807482505282232900755439393194637042160147223398751159668194230621198872984785509203790281927378043277785485627542264995233880231902012409109823719313435618848490137961088148039530420154927316358181540244196484223400021412409737915553092944514444098824214034149709571051931628020175825449920804432489539546445348450775040259524190703262507510448151458540853690977460267543652339900100800526130350392741408359937679850737872350437368626782745211413769448978846257763086627426027582258399982607456543304687726491374269077837447726436345542220636061508643909856425471560944225281871227692990726883148575344137179155497688211237524619948454986874789363833727631827537662847128674120322461792132270779530941807164989724711281392136004796752657707523818368362158663496277186991821315052603003664599048530888177590680635281757054781429431149712574570509038829732779424867960413106630532943104997845653574470054953560976423747902820025318352354406512079515666003182731265279732678511997057232428332770434580244450950463202115525416822132569905411774061218094254883274412445201542424035169750397611480012227868776420234165524509424558600842096643470314324967477558533881080464486587960022232821005366963573056268533861039194570394233218591959459379106147978898203343701659306855705211584179041392039528814813398121118000126273134711731543127497725621587659064136288146284516015239339060299110568428735657035269849830435145112000439848288094394064134660227177394241355366112302628741581307019523820985978805889070088326740785319933313423627594361799362508107308104144279429614029312579789400344691389261748017851219596717285941300819731198292775650034698020478392438521104841788925184466069310604611619553241248179453851370861261182391822210441378722770533372754386152338361929776326231699560819045817411997153378975953079877081346545341145464012934575538293285479948498930073551142523972533570033342992417574943659235046851711632142469192120449197649154375563010662899296667302924571206881512694972578441911872161133760983198139300526293592892397280910298844151177719957241027355544394909335003442437575952224772666803997062526073797407817930212967595466093512319834716971107774419484768271778414782722622940462742731260932559860807658364584578363113927861345552868581769590885155001083936197848602636000570391360448933542404744251766623730925535030092689531198592373717942250686331180804549900248694048761470678275698690346636436491388380441240062152270731626025683146528646848473763414140019843942481450398492739254417430952833916982816220440860637080607255237079546612180900097951393210919269106603431162120031005635922760585285542934594574215197490674346341393111381642055966847988263500461009726045485168561231491637782192827862560519734624993145280034879197455636830952530830896957697720814149199986899998362098929540860262555173757183086011395530028448255946337672017422666340111194500407510594309336124976131449283033121776310129784777937161797065094334453951068976881878701810760830464961476125130346815137769588882507138113171538783325976788213084373676314567161788608046356017694634632618053137898952124583009910197785568049970754976752920210442582833372558395886137731354850994883380197786902197411045719425890852881599079967873680002755735856578611666081776200157334690736310287414726545639564823051925795698637224660199798617810448859765484331036914670152793351474180764342964454606828828445566951585721623169429846895919889212205555604362457825870760960948772419710423171033104474859462760623237787881676671658946866545028603432191283301893176206913097374265523556372933538503495286802869078649089559479783209886515260712592567583586417804728125826886309010040038237092506035875392456926362185376051299400450792580371329074987527215847369271997334826509370394164601233964351101974939132221183571166732751023640452130665103806122699714522198262091770968715099978173912610867943616959757907755929397926645437540067580797793486003711398819193558678768738933600314371140010875524148307398003536847387122422900895250751077321100559982358900706721326024595285023644664536485420889425135624085222348113487407843717563753208486924917590031953693676689016946409807877160790008266304736840715895439100522068792832602968842067283383863023520391853830088111171960930299644814406827699411826388016022381802055669178527296488728040050801210516913918943873837255041152630590236088722939925619298973722297359259407254590659134633569713553146573380478987361695775038738209817721186485301839615497790182592302405407773733117824387467847358578013113520109713093489598527981790035677375026012863218402159153339534917006311426344685415623461578538936414116647412243746311938286329065036271986478679698464298315769492400404656881302659176133203324630271451491654731373290546344792855595672123123273566699076643730659978056946979102514324845721838869804185362454303050195283188318169387998351360001220170210431567475903344249062894886620153843036003350032190356363466122635755144807709037643894107861019319045121400481755219037630491915633894565498138104510448852835278429975733644924230209455468206953852421445355098154753864117362217084831771956627595379224310114237333098700539011266157384064458489564019393763913305423464381448812834162751448238754371482004170660623321868097340082302550585114605062665160563198138031972157339421307640343353206208333523218725610214040897628592270092690768667910902278606844494747717825894512237489901211396802861178111098100112500438461836529796455161487130423343837330697577749455901649492477100001315599317603782997740948267251860987607461787544428291124770749648250258890778291066537969254258272591773749549937326254936629077828551218959836596483710850193683738295714808390987242016062769428936313829911227643070713440633129372582842643910699440860576473237952088006374839318855506740869637545524982028465060236383740315751490315592348356320332458038164942887584809416972875742999212936518641310230490370259522401439226590351244716075533376052722270058090881755991568858969748964336968667753484650871064107171887233562076036515767894603166191269129553815226734844034073918298796918890630752327462097095731646092784606430370997101049222635444731700339793332508229257005897714336691038406272695884157168821797625288276007398594828770573308172033220640319326375054632301272670933633041381065612432392067821297137060285126975952539037030923668906658648439866990967268672918405869122339397349144999855278898708090905177952457937265720106153258435907170404104079750063915223710344142098603540061843523907860643466725823899833898645454844526610181274131088618519174803869288867557883879061286920918441455870523364171921592875991978476118158296209589337698820136118857168729751835663634526653838514735001908695151248007671445162321942884195730889221994284420535014417776277249029333714383947261402422673492653752516915010698059926900496482170457860516781935067008543232281791429466297189656176120921473507427541188047217989813695634802782729448539391645548946258749932554780679120171184733432778553744234423835657331971031865437210599181160947792434224607710740965906797324881414586803928833975764140484309644422268674383403975494053659870108241243339179964882917434532930041844123672808704071075057439808399218578472030507813792660788302346727296905413605148364682249976079103876505908042154044543343536958028611947659068180149801867971808904773382859134625223204207548582624392188672039352148466145809944261439583560684530290554830606540809130117717204341520025630189900690082094197346698871064779538463956581697270656188764077126359029979566936730805074267892002784964892357981212732798185514191861902906629898029708702885086990863727649586892065851998759659745133158167917003760535606890680703413595905586632727597888433523036303384679590120645084207834764780349377622176190306584841584924626981533255553518577854370145797096126149531790436057123116160900691171903523874827844450642469379323179949415771834836504995493549944203073632661090140852471565321360210802021516289580597230809459667911588932382675119172218501061339504704317968088005400948824598660062752966053444232861324769428930982532574027826390612748923901747388576251111766302398963779707597533504274176391581431718250700432562674957570686427145799597732492987989154112573977865041638972217575028636530556915964206782653957216998677824920229872792911033216345058777879412397467908398714012111868875416615624794725938697700522906499381146747151345048345908422497666197755526961217889804734893969866748698046846668808035874275868445666862021886999384880457636499558268171053282214233296079340379588748615644773605755227922516083414861943340027896549902156398301709405361203646815371977296381364541506411080728561610167859630088565010807968261595595923903089587293938943422939286526592198328221212844826278823171885939542712630607552951803289095816772904759331379349391781812726247493386309239242702493093139461213166619214122437723948403394739238427553323812933808162253693608200123998124004174974039298236121842581974574741595795731393463934338698959924363830054364866354261001805009392373201875568479080973063473241016950744000293890177441050091604449810429617341741393859833495844237920969249143952546898846604715102917461260262380221965508696364207857189782083445336146844866573932017661378138631198056581550131058655211467042665714034524058264125515295772443718814162580603684791398128538702848509791904154451036760286735646902417169150442636485883987146191784435478020760001145600474274786061545361958456567140480038959524828570049995961922121677801089299203802409140347460414097451106208478827396658287354467802074565593084501183812905330930611667149032502376495701910959395091230244004856649967901327831470389655061120772695888898822010821193623640787950488822032677023027164111074535326689850744380182941646897614240495893520584730920437078279920002663296364511040920944803751851863742430806991645896839151737434133162430730611033547380891787679936775083840902881406479443013145747675516348122667279164365420832731811568733880416228089051080969473838669904372100868420955409942993229540797160035823123888893252159044737660012548129815488708103444700822271571532988658676179736893975321775061430210908854363821636072222133759339890756873082936472266710996532576494838545178154893576344841810735661105247392814790660173827700793990066323960045720898849371611659719938763307155151735530674631274848602434928972985701816200371163413649063734857038542465361671664458014617595945822355711582975124316288368187744085145998860995386531825725697040282570713660944084980385372547741373162073233409709453681154178303853863692952944519549943857063105088944179278203977755967914630569857691410483494678891785150743734019438349679957732443498697305538633303506140474401250916458781850773246506258108547895989836962532096077918007170532486376619982775852998381471896095136886261810688321120530273044476318825551613801724216878520150400697438973090333771779136757964906568849577795730657626329201777345751421287343410949876308629046356213922352174646178982404426353113871894763389806493328822613627646645660203040660720572026059211487512665966396808466720593918005020866961335266616078775285759850786905531502149770949611475188571137603675096737989998475261604380024357077339529004240408895187785024818025452448472488875276477991976859636343869790587256276061725832431421016375189020240322663253005533421261559512598724476931887582670273422326751639859654671746303823262278553669078399305708352420207900078175428855490951930000368684498617460612857506744220295929868474302171271951259671848750934783796075819591077565383997372039663469036530009140701295263818659111683883086956422438241904657092354779936440507855622396766865362465796680960453069599590822160381429141623700121498471551854550005205953020422816468850312581837997907825832287158351363436457760550365988463961195969566351522864500536875199320351108456438325934815324410584743565823720101558131878414290619791518243592972193690988717123034324275081551006577651072685517704482649164276382266710966646152180932484292885283866130901085801720296475549312380410393725430555861316513564766464465342790237029851920677408585253477346568085094502784952625102623286846032891614025736702063181379945585373009650507881501326820427233318260786457956613835395274711124198181985865896383538252734444071121826183284564513203303366028665784300300199871640520861775257914706584168526463962215855022358748124010596716063255834568550509933022346684466646394461818502409795154425242956101795971927618466690589276430164190816630563958092469403186381109355294102710245587938156899249138804005126445009765187298921530880098537621290763844184465786214412912010008372109930862016583544562611179773234984450337752851690590387978168086413112914206723400797139146557374676555645735862471091008128904383079246940555986482544992450214483870253953798072052742828219025754705591135066026986247657837434215607074093277529702181524775952293070078719942635245363159858003463047365626057752160935129697290768636605212891509120323988798485987070758440304138012605011303294216341459413398020809238379857322265460376973006641806915055465675136897800183289062607663097144097016087387803499124507383369781598887193965529889934249313362722955953621075363206823408697255797591129890277404353582969573241072162224533145616179295977025667319989096026385320524219346602672713514408170659261857634112977283185652551373017037912126862239334230600253067792448161960406536702303726827744044209948294297449931072707512010664030311748395178965018203236177023141397033204358066560227945248889820022103715810079381793493008342494956242706032071732480515929614225158276975938223710525723790122916608173557030447103529679601412839454382150475572775485846987501580271589588299261242676690184368877767175740334374128675790317365216100808686923167802706308706677051931638534111299165225832215055505796911784959395735350885831510064653530721756130750398935429750072920536198291976527283773364067243928465732722901902490969644960126036546132799405718152888497835070414372414986002968208363853022235662534890311260838899574405003905648994943475506443161572080733494474778335984496079479735602554132915942438668001742106557708405939252321903687462148762973689390689774808158679555094615774478943567721685948988401282888831288701521784460775470834303177587030647171993427777968893715496646428794700308068579805988457267470061835325310157370449347323351841030379937199517268061605066600585188942631302629980631020889225741921872160703890383951947962842551530977193867780495165394254213536480578945782200988596033345034085765632799585896819485557469211963652056214968610647388662078166289800778404587165137449452286396594753117373593851987258206776579485720534898391632482661150672432261676000282313258189429921359002443367497347898248909550849999413407573734165263666318383440360647639469871498133767549799643186745928123236079978750879099325468571362016221771464540781446703902759980673513533512557150780198406828281314141465845187944916598643062283545798944922749409417735528468692094788788341379801787285833751358247150692909794017990967778952033304715270160589256972234080873878368949251439968601046646515222698587505368177271691782333708155506301839293524664002349584671845408990839530175971494087102070528430182354040929258000995996004481994730245578559096550890869988002409887111842094110359347956503325950147052540455142675609652800729245735217325447520657610153339445947174227570238340822167753813609270607006507167929189549965588199815142129342178513824442474066964895449144492716357919615521284235610998855593348852242159864328335140536276430732025543961562375151308714970750835952458675765449989568961296430290485106322739049275974210059945797368013379381097870748195191889764599842538793963462776730053220174891514689806960586848585099718921104631240377868597837581737392800491642249967355915186441853419725196721256030406685634307276199341369952463423700376851862847565088023316722519619745123021189291701085286637939231552176492394945667276715323868258689670038344837346694624777901930862742847509312504889726767884401247886827211689315448140767715328700589845881059714671769369259844138287823842702432655861444766382163338094903790550843302280598782379261902637097112226069190611106928125024923627661954829260284302254878434877763206885609844447287361747693527054221947809286165252911645586592752581263860412333805690462415856554863123837337392533519366721381812778550347586990542117646562659034821550351990153031648385353957889509549050153551626915616668831319489039786812966088234145238819993673687698375588709044022019516619696998096179765277426203407175174079037580515463691790898833703802691806997756056492684957921820990014113777275745596255847981472980822212034322391705152756256395448336404938773289684413611310468069977936978735985030033787982914757630384518526985784184939868808913256692090840268762344419549668586418306918138059930393415881914182189061363929152711589782298860695615783104849166398332113206489168124044025578157023186683042193526796002552774110898720524702145791127798042255882499801283216326492850064173510519219656044321888827894069823777206448256842488188094271108113226575498722496056665836734381456089839112952650779674967362053213742886065753294454957378910236103826318559248612387428069998832870775007758171443418228530062816511558246212058609549246253399951667311951254239351347444686602981424411992077534856411493092471732061282006153156684551577809953033516385806854533841413746207518953581519042175857459449818435916791988988503660495786217301826036629220776892746250729830717874473572119246706982717874210185352547502890230559183885018832757012426542247662227576493100162623552054828385559227909586714141721170735824311651529529121659911644862183839955376168849316231202639822982751067487616346187287459865663077783955048329134692410998036886919824708808831854670799877938796934719661042454924532465008737319461403977930504774287293322790222638572806160047176514327744803707757628892754825050571769992706983770687935371569156653129409984071727037358861230471885415323309204879790958284773287843596962933159254677081236155299556827070631044675677587166531152892280417665136198132929446778583223885663986069817995320651444305116877901093923077337805237705331654708769025144484169994919259747095549175975082470125679170420636479802842829013630377004596137963047534449044240634224295580431660662594294301187769988985644793310852427795321762959189851080080720903327595605070335901102159627324538223583696297161251635293139133582123019526211159887066884440342350658834920287766834843421414642918343360958560627094402973020954128308846009562411390755304030536853738230200235550932282157566606969157168607464077629038871475855661945064591356703056904992656868485487147482779689460482568542234063479089293711859053217942929309241178301529501526181893416543211013630780302306045927900796858499022126933267200257362490944838605023282101043734186296145677950823297894324842470345389953576765063117246581473954772903726282281226581044314915293345377898520929187634428106015644221954308869377603722862258837918426832226533917693410838281691559080449824196849646872727433614008973415172065251262526666509350184008105782433355321987407101717127209980397016323987232213104660112641574201997569448983977992580475875257927616383766216487442832719813858777405985251076514419819830763959020846493545335447821111927264835063301902658074946346866345716208626047972516111370558632752185731115572879589834331237700261978123128027784881588607261207536389772576560942680067282173909803492901310657612488199837276827809473197759993549435958426466013281813949586982433203658115078925121927973612938071014893235393602911060012648559868057844903867745721596595516926889642290977769053858293986728521134601210797181302932152560783725850932219832912763041190697077236733808815135254665628956317909521854797085292982482022800579849165596763095199445010428494625924643810219842739383195215133736696695400660317407780188674486234732372842742077488554634447305702171736787379452904035157659589328691744732168822667209568599268420203915843828620916400998747931200326813469388029721787878992093325357164184146937787062095710491022685107874417603667218684376855443480377479437426756886837408686714838020831088163966237505102063438280077485070534606054325763501375675254791163126475250154520920164696331319586699405263131095197112345785470937191596142441909891941732247631169593735652361025745169986181427117670507890589579581014912820575906302569937021575966843766950627688869674602337638918143735208892164799184215601453556069547301499337157082625639069094282366381732436067300981051192675605149022020216115746949828681001275952215592745545567434872534329736610568507231605654073803364364293751427782997386283705622296242610444816227023916522483004034108337534401968285589517015808576105210580541552336585322829568234917715479404918218261018041195781724335238215010249048150011172451649411971863884945112929045792829966980510686194471717870186302317319849214750979079675308777185136436439579572649877081174256427672179854270134295861794675398913424235697640664039278329381367656852301452529980154294492991434459863813986720112041223402095455761715258688679821383776494369894430078608093773785541415204411146712251719394230915311366110081772446876907845782920398689733517118054811662246618699860671778781013720256423925737129093685249646883231586394466521135852572351293232468057059484180615649500099348256685566894531543378113916506356178334718395706084543862971999989708262587393248793773475051916857555092610825612672513253625048381647730712126936855339742911333832240203197744134189969659060920904527214753333432004206278308845007438103170076967340369364419172905897321062262618669256896133170074772271448052252644920578796059759410897123996723263279504328384331301413807574925312935166615328416426546484918709673626472606975398339685096055568286039031893127045810534890402510599213045110811352994858103294854336126449217545013742457415057078432380177979312469568112963314387147900748903426400997095448722514496135033311874524921291617553161928459010233329163824257158477369004751319805167708856148974261336761689638254792640562808849271047540308552281391852444401758945847540982473367140164242166497095398560926037452601221230381446110716981188908070988112661845041647687155741452649211121377645108785733406611131787458685372971115542578920114576294398808639834945535471423104302696699116803677100292092655243714719541115619432288809118073561171869456697532775081332789984233001789145233172789687596378393417524881449860685259006343524573080323162096001726166458335937014910404481224094969976118259753845982492856113752255128286915172064291921949503957404157199992471148327452236671754367071122991757579165229335101481963692386832424053749514263888399786061655536659811528136801224081133984439568854829141916956241573856644637572133419023083921030178953231537452726561182108035369351914049383853696628824772501133322256629531637595039414330156673501406643398765482671267114396004883723463202024982614749058079205539610620203709009601441117748021256848269528173876059337434830305566030562107012722287494800192446341800229555366540908965767051827877932033353148773975580328770675835958429830849161624855048391789435353790872630741211106699267276110050361242228760418101224831481858565266792259768651985069689812082299248490756873145757192549757333022148141297018100594424424414748285540362390558527104278861481248789314256459476691468426310637779923079775723356319967058295492256133439454445085805433133735275067634298015498623038751136777925420520862767939134928070372938022112087267837235963474528626065085228427508282939963736355414022759118613684664984974020264718106292573713895759390450686430665899660456437678824434916562389166309742397133825101758534379173335956219442679804510793910288609627773071166245246485125347196329020206118843114140804643863803233056656554280799408425948050162879901857605426287182726471284660277472349302512072312079109612391887794055995113876484344839315623642912608159718374996463776079563735347696721057077306873042357461356538408300606126469467043227371779494029293566145205865598365353941237265332094432292986897233145381519432385495561822367051838657427944935352985150084070016690744897787389463068242956862942536408304632456937085656813005321995877584131292520340805553412481444358336609213615218941802530850523993237680048654512311153396575177048193976875554037085251648308742851502604525932525147308372195782728742600710122800559803779995953295025918035534328092533127012775512375433989863819643331461986312609175509683725696027351673437080402020918938785862965494506422577643830955455164719593145345879045483981339043061129607621168008428882763623819387393118355580519251725337391505497055989517372983143374240106325810217407382049798066253634659333859944174392498046910043010944309314740568983619630407311262190691164689185960527102754386115495515053684722243342929527652209680925474090640323851462950492271985842189523121393303704074837859170551647758934579301458282711148919976619039681054671209464355904082090531637864398651935689601943770885897681426121688952821655880582610104594060128398214335778855213320931293873777508015565671882749076452349142020052488387865667367879400610676198399601493241698285018306876070088692834543457307523992678679985385951319014584971842509418062447084313423585584253875705409232074582958790352940664712298770025375400308621373533091773691258280913715850096452720846373314644520261698908980310632300903391263963103138779099357180482407012808417086164400684201394848169360673704703242619592194509983802656589365511989215128889373411288548405751586935434934542808575902762526525600878693034998540182955920819159795063167185497344845731913795493888307154173549755020851905416031966049665951821263764426485285845033527221876431512100765637061482375740784589226472894371938699396501538314050896502683820470514411112989272510526126942980253223800958754830171271289057741081113992655047236587286423868567993279169926510174682909969895478844668721234417932674226553407407412209789421982224095712464940620192663826842439349975494849729468655488815762486217323003773075478022373390315680696233602887962624670925785689626338489443958515756098881620869424234181562241129141219865406645838225838723948818562054149716572486738219747210455215614304965034132596144201264004712413305847657499321909162053551593797842480512225300393641413466418649878080349411970402278361971797680579136717219028553794254105815944583806413092354832970466100776769619146473262903289902743674821827915113901789455700534200089350582690021831304810134091177258382203616911342505101946282891582400330183817630838411133611049983431200568660366667408319696257584813057524326017706955121679103385394756285873460540454353728669742383619252239063149472847442460131601443894495525760630592231170121943204951647487271968392185456782728614792773924361026679706452613096873738845954350206334380033817849684788731361211735005633025224520189497458284865827833746339568942738792675353742240824639863939775607552462478044125731506644934001291494029577877086778261671270084605897057613063892044325473129713936464235116807143798219768807580733608122040597615691551382771977540966247859876424942382635023644562733887778096886102606479725871262861978987325690874004185323974994292125123233691257946620874453347535999068509979919172536206782076977236138685431521373788104370350721123052598024019694623870446896162041578626924196346175696561774589299594867886978029893964623546892019729822124672310281907183527869270842966360639034856131424291879465458591390083013349522171745836132252418830773064630330551684046200000977748856324053491117516921348232720129337749895461837625864017032648047345541789853646682786821163992680295027488393029301818435337163166550511470387554383867663446423753737820790651959880802137564168795453681941903618758795047920722070363445550051492808746684873154583509169402108120513215368519441410362434292417085868620562102152912461061114137725509916081148176455268713228642974590716399526518517683373431745536093274303246215083745213869723733300085626874324752754098086094636210604331651815940530596691177917404342302837358379660885096039828260378549014430751467487464353736959180050671899833661001907321564493625212668880037559906058197780632117026859125379465478131358607748858426007153874971706245724512575185559223458516427512623964696533937013765774567134137319969993117190806556780309926604851846595533121124608982193454451791073323310275033734662157575557650614023381011478133318974094353492406746244096263629422704658200668208795583606439680529153966005728696707463492517773748225895051550419949804408707690014375928823953180158484228841219589165486905860044894597724762947645578566713948659127985938942872854653312177926864134886644529766496937373433735048120387067893766228461738523715095987112526596835059011002696363467897136367229820930346351769492055431580804990939107032943891216584548576683549916101168040717605874397358947498967503310278348823915558660265122305679601375183923345252951052302155498722208633939894599088484830097223994970237021480366646354327637772450867202791778437901934144459430394726009553080403133945055748793514200687535314524930679281762733261515243701602330091379144548922943269203891631683780765004896182911276446457680965158483762297120959725313106138985252759677042035699932271319585245422900095122622491693996852754409132163874368590406588223883183529333704426680252501397575814070599125689824723634315575421316767484058917620291648291703893531222225195607921941060700621478448714307566230736536315566816447770201400945171830960174954538479653258597753211322161402936754509717519789903498998427786388706884349390220953568096435903142119464726366790675849472530349355493355517841560901338223972343527414735818036516834440120589569399597903908533940412239895401915607819367421278288383925964025944425318687775864482761661513845159426763634382642335649227609726655665387672064666885068987357221905257374701158072743223548578012172140188800000984716659643439966062198618623413863677260860391749021354505852126159964528567541377951295765527140456460492300939494309284610242394297672387500497980265862530451302376877646161421858199380736367930226998414332798576222584598974501363747451853191850795882341514830860284335350334370623274928414340422589354902468495513256261842532125617008538837308232891367837966083215370192620165472649141656009027314847768964287252476231357826365021716955057411304502666364618036384766163185961550717137685277754779606310491515447117470815009997843260637677252896566190958366961854234113465221920025821990254048066296067237219303847947849592374749424870275439019494265876034024630893464517516915802288610713420166446762308707127806398347680150839184880940179775401449770216679547241835112226634293128846151354349775264084574144697645165297903823368218736531782238569715459729505547471536877452629274098546540041147718204396476399719782075140239981874956506239998795665267682525738011166988359276340741266304100425437856775639130351597181858659735662571292933167366070117057645746165882907796560416922192926437149841307747558826810813404225817205929623050441928070159525729820182114659749989699385049124966252495211413860307105530068244999532777517244299977982799969528471412519644628173398022826912350878530660655092348432967906018892317526032003531671327593504245121791882555590538857322094715303220011906766338072595249767138103845402040325943756730701132752771861765573623189540417901780424319488929917075731307526920098850179725323261081594686043014405460607768318768848362177290541803420320690775692209547894341577095509932642243370931321863110975951020457397104749970596188571212947021457693558824472360215597374114442164735591429195005802791501974720150164544682767460589246242157741139617483440586880191015364664590949721865781338854507010046762469480868841979778516161819077402115048987282783140203990253498614276090788838034491352166034515788006215985419017224225822782918556323636705962055893497298420481069340091858662166112970872381315947707427438329987806044673593664081330461364184588129743774910648996966651731339105047509682768335250375654538777519525414865602224403838600181851875087279992474992488066336270595756736230928438486363461334958523124196559320484449154551395483176542142311297904827145929398331248869102230629544943098730509379331581775387697259886290491477554082713102011931439017018985395637027156512753725700985281890901633373734057742629257838334720401004789509980700533671797809630263436802673512343686540994393329221924832428267574519092922065227813623940428984294049994246237706019251585651716714432062427718372759382839448357230122830160754678212141754447418834734637014394170692983968653502121905635456323925543359572541881700131073776682281042086835236143374019490312129998315039911312295164774590034765401571723158532580079671895503674396799165030193416849565726487536019961362516033725340751642327597200082361419521654739364081531744810159644703010449860382377864802794642851058230948392331969435121685104014246191760634854284909058095739693160368576420644126255091201398567299062194591083968184459253812270725588354826007273529850175961320407682446906656938085495656082756531572533045695969060588635844886574989334063700896534124383433528509223753200338307234624921112090281804015725942399260274703999782393817341546572241150366600484984538905666846991150907305537929696382954212095402664286772105146335596967192297460102907393476087578599836185991242800599174819817538975652945356935462561918293291931821904362770104657257145613380062400229931640252751846131923883614797945266733205546815386984849442665176142767566004372030708662178080196303852509409223884114900701788764035167896113582126949891557431149452115930189047969467957993179961738178263649698880177058896742341264915524498533883044797678716710978750974508035774239124492291610400489583456131051478095248491827269643824532709472601507484157074981139000373355953961784619999587329599399380183778924830598342866903260925532566809353481038685051452633009355428869985597257011447898694472117929930391779943160739325233112085315182052165935721446447496193549907914460514765523017975317963311334998874811813466999509935443586880916102278298665496063674234424207698989875249345237317781477690112376329722616137445261005069669135491073680710376106262231793199959913996508823926432199732696906933776053730710979903154326845669682395802472094251859560762647135255983650088272780598980150336153379556463347256980118463956485358837507859353742365046618254099199330225353506738766198726252031971080845661206238930852352599379051310200012816440300995323121533671363098512793540683003260139695681420237750055074063434487427326981779244231530962300356883825365980923906860378929465792196318394314694560472288084704652110947084250628808707692247348192067184261648344701388803509560259315335481426097247024218007179096655357354813887283903780944021774667074111132873331427495781566290528892821030550966963273440494840396038864741012737659929184055913965619569092166454070547181250552110145609360831642060085466853051867597230566931620370510892824726942327458068443797100423050628541754045077327277790233279041285329516763217343032185428468080181351606426690728421837203600001800265155967318261186733578445460767946487273265525530179976950304447383704460418805239979194876441850585118274929381090821889162932026110040637142657950957162010235246741553003417954730890444553063591023424856896295102092419597915403470923037478480272376078593598650126245366827154539184644553318005659241562013592943997866895453765450653572602771073001614258622950460849433933051629496197164453837100859480040522872195861464183108832771443334360375980211469585072521040309387743624460669847127879979823414248964608136142696692551510337618198417900583230297120361653478253445408335787472679262190253982655453139673077974444363536699402550656968208655605594006923500389788769239100691902180457656776575895009141232275401723674975162531866734130843915585140804820198372484050131249596260481977328687405735700393128399548586999569887323452020933635801266652538160348486179361501628514485576002647560271338584446662491256649060738621115368351320751144560869737905812907458100468606115436267519205644438260920060266723110440362920721722373223367042787914664685367478262613062182808672491854084710890360012920134232079632308901616552600901220462346396231493278751002425758150918909273021437381366920943292881594289261823264129876390261010226390916928472875147708015996102070046736763482150957035624534923286448947421888106214536342291555153351386313054279120810723920348528112712097341654225056225034931037829362278580778452133531982857586309173510823880010674139526530336392500381066982609017038269063649322737881265092912145756712626019295919225790062331883169100439145931725824213697844789318171505554331555838410031954515445662012364030234478259905075427556866442819219085241301408806508519404084775106591288849366418774702189571658107645061008806466257533804114533181245625182891163625114527895725781401742125848978087077787759690185270045815716270351044160706923019724075510773321870745167203486169222916096463561469501785244736706233072154322728535714374047378700581104108679231567194502004675607533768816122938849973690245577079724573504150992227337188956389947009120619803758363740482572770938324234267715038905366455923296111882306380719138156879140133463468818835181070428565981501739542718783340327478922561514230482347417241153920499847817743221598064367420469148103158094327442177761307911827307988729781958675501162589330856281830234490901793930723713473687445625494032049484069716918697483701639006305376436808573909996903575197082367000168429908826763292099403541060654383586795488352844853707393340532431911038519696010143480525079533820615654353837706777928318196678645404741230802936450929253196018358436591608525103852634273493710135127658933351602578495171138594115194500254669497575049899171283361281477448347721868612574845955013272690035751181927548598585411753451893483965173304236100086836620377731629887833447006823753566075530975170155612122579353434897090132641411686452628821190179534186783407702262850100411186801003209050114114245934062439503530066353298285712501166663509544644176454813929334274382773370828589629814135593615926200969498080216792617636766257831710247394886338781476494524038448862264056903464461428234137337802541526857383970553165960487376901396948709676465593062193593449411004954278301560207327201882540704154006241807357000842132065655975837644612280057190499590324034679492815970357296790650996168967666532567928370544092842159298947157687490428931942158266233532571905665270000933065373710702564660761250111867986583974219932527532147888523729648771122070086950094509054282370105750014348463187662305199486533050950008385630958913809372241182255168508891246327673903363394406840549152469082342985980597476424383272398024209357636813108229762523557881362553706653437157763573804851501343590886674920693979753160008252821800886078321234009686827046138364210978565684629679920083019765442180202503536245869142948282288998523050262884912814882641128239033335588785745641438135996491118929148906653077259828603248480415905735334707208963135242233927024464490170982988033299071980316345357911009269046647629693437327614939088675671521173260277800024443376567145825435255970822195847852612372407224990078304537208308263959334184095158554111333537993862962222836588548172454181988758186264227171958431681726851333718818512602722821453848960545404539742413574553404088187433279559482920015160468869485981770184081998932736710105109135351402434820762642770850783402095330309480807897389117279522242459689011415387849686351911412095958234602682255358080578503902895034258327390651223747020814432636752445303175565423455231222657227838606009907789315192723244571031456631854608829247089531040465575625121147238419242435692558952316293047408385605674944198046820286738231563211499958375293802411970359678163521669984443952988886057628817971544775366019341118925529855958105585176651709553476824578428461103517305069519734950488461595114925390143086089142793042464412593259509632333857287458156869775071030858097892695470485713867421370367796798307399070102233854341157603581760965837029084529414314072662064271773375186891039738281414439895223128612498735247041534728886047591866614417499920112394784767135649980628943625336806522407358237452127533938928873098228774226348541261469070177962087538585283765868998374235279361351570085337973520401921440633813976525562428773996588872077583988673695831988911061208899460075835147979071486151986224496878986399642518767971937509404540335534132372045684913312796910180387349375269712832163706175615791601619979365791993424156039818992799463853110935545079614617842562611651780870996350316090565404839275750535044370729750501262384755071967289390565475001845387312321817921211968935046488144127846640121759486442268063303182177549168300317064900931283574114262548817364734166274667098237195445616738994817303243887783624792415222954507543443527901606619983682792231018526102717813449986071997646111377057806063487351054300055848447258605449384070601498852727827952911252863413529377747678404274441694721120059114022166451416289629738617648791374004868284134124182591113261213307970244119616285221114771054203313008784434684486526651500924235498997741155761962951124260856204336924191183862841963508464118966655271787740559988063285193336264040481779871560261446219415985654644412694240289996419977002928033152773611700256764346532834364397380284895728222858612920642374318020956889835670779055714457485957347849804207970362614084058726216818502452743904192790025661628224670710966036173406942097068453113473165565535375204275449814497360855770967231962236890657126761175181769862380053032928542441333212764790812958334454460114623778182611028357326369617876652600255043194782763360488083175254437697969133598487490129705209119622353122462521881881669846375021977654215223854780764316342673357586631487175127845476553600795983687983239448966373054079186556633191339823877872884484548749238740780805524714386274633802035552825333067559795739608560752381105572125163853069515704166154680556904039085247884426438085821845789389063489589262933707187785363826538999824664179443342179070649292057145415722205895011955596300945322573360602894298077343670217141186119967280203591651817141919047392969158209161579123712123505331497916830014770984733940553014162692956108619878833331199835176481727849968827326538281570861704428233250367929864330432875217614623892657662675047677134356492407538718277401470298139288125545687257095845297659959163333270905223116594030293028297587597483337153690501626466199032543267163431904057467580886995864086422933325184613794785696406785866363620720607753767388277526098849988053347293391751966455253585078973592942674881766760066753715791800668101409174677292833283096704215349366009670437698033605838039184118115876537502791236892658055719830250499778539860918362026339317280725471546085187889950147646765462057854380921940944013574304366324604304459320980345059494456598540682451508052619763041466208197319720582587308191173019786464299469201056267771273859860622663073215006662618502535795293634709465527001556823919230957522458504027205644761979557021850856069952741343345153069293938001011078931820221424044905765648794765967405679546330759774695323238224465915814437347755414843010206727730656196916151863462708186900949760849230639533437254217069225567692998348434138700482933876022698418065643495889245764404270480796064834476570117395856434953712245173503782562594020161958323443612699614301545544334749205572453596765687358782434013148225269651860370978254001601718468373148249311480947551173679707059968868831304424608380800749116855972293781521333092084897535790539555800698632359311354139516479159978130428570903268576124328617929895250246081806839531150108402718589786480042957359802453177779200021375306328139329929265739585688996344752265992351866209309203377340401856791645166269858888190988885869074847984863857066114842956373368315963600105637162061993078935955686619169237592728252745339214731170358119598198803043493583955018986789535752722027775963901940623185611110183119533608767443495000363984633104984534884288474306289800549207704088370305198905704016466779364036940772945078896994426133700656194192725065239349609649929203888495614635220481845775872502513579328418827443521179086846141898976548796367824893729131499582486145039940848259105079084274304148779513594676495249549626066406972275424388535033492826392555644843505841363773111746624569046328274372142736861719580608701918717874081464370357764903305525049025457643361750288502895583773232056945235187908717369181491837453303486417961275481508261338412302172439744496632093410766668134607271431552781122388352037110443996627532611498426881002771744773590876626084469673738113562129842958161474122919890516168328333753597047511476494333115631533361724666607914455199792132602252351779242989424808699861043714916982972300454272598701277896563682935685112358554889276248093173044466726467984609467167660228563851888988529329625483652028676034769339702135446051914726175800312532178994761674422530269291831956941445766164800163873586900495514938832001363454467193902188423266550490377205580702955326700188801763872743446670621097715973886200782181075656259431254577206576812659491871415301046707397155721614109655334753573038122136899762789304883040252421987541596427767865985878389160194413639834757979665658373797647664980649298858048722402717002111979137988937105207496189847314711402280551855347368235457183391371284029609474499807275668431230612771964893130111260136409786270978980378002675168919110693003663986288316929416926921879157858489061056370051814347442318986272589913599143381642847218286406709982300099880112818099489841712438076958209646111492909784445380276167230849687992055628900335485508111174944090063037398183865437136128703608033227038674060970637535593488003796656215240939879140121789864909681987066960721715381301372441369499006530854676158211371550739240994532882007930954945259698741705769304093929158691266281868442728302756339364258857354224845141641690812676254727586789646896998668548355648931944423272030831845730245572846284452826103343843603186255645797207358766127754103104604710521811158702133471941670886913483001132893765396273065325980520857913181790292013726931872427079885483274453876803288182347631366165924579504779644672906311210235348358320027553019543280678314284231457537534095599006584576749466070531797260746500359479791971164006617335576731768371413609917501897729412766323427446249420015167142373472623870308309598730438684416238352145673711103126502917752174355473756288326552329715176859774568172096924675221337917581216147977048345397006434086413579436444515565688720014720967197827867598865922617812291432116220700122527831175888990449362644795754557800456449935506617544223802764299379368053896872340917186196276517395604389366313337122967929541013535410511357376950021436161579750003777628151814646853055152424788914656800053231630937013357924039330810154217340231431551677926824865596722774361732906714062924079074948972795080893199652171051225246220848183847642711854711101867360703812200905742075111837965192557893050049924882497865610750053615612266529384067461907481611166850068072690818720445514526300563105754866191983978247564850919395652215818768116836569056204232783621764467751750089077319779473137192874948977048046680516453420313311517642920308301436960065593458278472538446931636816336688742352977708044326931714629597852512553841659875542610436875815673671470893325723414010781405402172605693735142222136167926463134757215975346438132234639360615801415095322208684529809644512976758772064245198548907610379252319970637213278420630138793809986694209775511835322901352261202011297769839613083621973585628140060875857396634521826823975500733134664916684408279642123266057374548512665584173042137507583137365349374078725374678503836185519922338063020093901199517416361082262664293896102339378107444146899802276793034010133284030457029048343146219858451552178999490697445430608575281144676535272834009209402721868285575580231873506697483743436894580645956235840356348668685456669107218741834970877295536945277987171913565136411960519050730797371435126597525671748209640245663006134531199187114271343004076977541607002689840009084274134899653796018462577703442342221732043828962631160569309497731999480106318401072191453292729152737162822326294554283446272984183107410886994624394555544121371133483708635072385305082899830136733892525382717643535862484792512843135947828277394356523942468943724402055758195693188685232016307303782534469600176993875739426993947296564329171206628886545993821370981498530400399407391996123990298200269623715851665019686455810778969750959327681101979668518547659758029208414006205857328918888717564303605295036823802605395586079613791821838264336504713857221503205674004950508372799065068541614868339807367301191307698582746548352333625559378620003948890068753310785789307025324065216802439037063776200580539830538821659049200422699043917052091723250212948334528508058730720309331201668559839195782009983717761279705521591748793245743281717088990397342559657967433646937524092702673892590320800759273861623749005956488765007829983233477646938237977117348688806984466503636219062705486902070535751064249921414881449489124426179311475035680623196639212329701124850347315038352859552906593637088290061385941186114891412081837049112466729251792156942839120863619012379520104891130150019046582888286317863555662744399640790010390544126738369436131028368749916845097727298028235000767991041408053835830121192812346639640533408265276662162097444098853470300128068156429050511269025520683604854180239630633742649471393214103464525098864573434384747034295591658399020744879356362111143059068417756250398425817210774991825605705063657539199897965783015827614279320627535898282813839210073805746148312143261794014202759277545684263950220280141337064501217064964962121893987996591101090015386763632058599456573527158267358503757909225308133005257273171449789648561612686503463696147894517255234179805494657437148544886443142338302869093413910530889323026338164781026331130438964782942428881187392772000825719740537032863726127631979991609175963734927004778729889764082613557844298003482294815056986396624643184246386801434427149311881859124620042825215833086295739373851818790534371905585159504929913315687604614789783557191695228113455070809711850089242408206479405690042739089179899597056834971966851185726595207628820836753077080137189236470843889172389870688463008560857604383054833083959263462802403385444908949763078400415131270214214182159477332099496815212377299423983554046535293198606341174417399115073087610099513003506891249725555016399554526312786784233101220992168090560010223902144882640872456111354628127466657004961055804099393309580896662910018429215299464108952418173253497152871847984096894349635181961311910928849857828456728357230168866774953875237216285122655104175211318377183750753099574507909709561032292326966746716861890841335422196925734871671586058389543115432016054848230257571162818919407192364239209688600710250741230733237419433905208355973115213646120373998569462484121159321661949586597398417709559419205845535732760565388357282336460465266712298312036597475442947861008001502665144262734480938021032737812443152618701589312900461313181814957662939570405143095595150353696106916898440573899489986882498322587900467701137162478108999548125102866573260653765835505761900270459537371164735068495891053461074622484779609342027489439723935914345050972104124198796874486656049274740236668362866042048300391107514266614490242053345313370275353009039717118587440906828425286142493006291151527784426030084796366175706489301112501108803659877151611307674829128577677057803625433607104676772771146841418509613410232086997304178141131327860822891316524651582023347613563389889083293830840046751669726050750035717474019159962605868104581342747266026893117142167328158646895198665123528672052609716990543803537660710751513864460822540510258241334444173957760545018088496887286871157669479167079347536512927703035324718312252365024959473838158070783774305727962087701298875871065735145502550530012780744319009157553728397664219250474324902280266354035991695777377092036674105929429780051254293437297260688690554925640287475866186258362146909417730948139301388948501901365510839426764563992697416828707969039465969375781350137495929506650196760549908892532035594960991914021605153824624017269533919016577156768870862391053052229899755333183198240593242606551284701481189638486376659165868316790003816874667811161661133145689993134692146017744241152299301944953174577077477352560622078704319078655810752285885054917245911386076306293712533219516867747164081121237863601172935730169676820623468553850389768619959210303920027806735659833724151993650107149783826762043403598224271939969001735866809472108446920150976348009977511815055640259408217475054567659582893834227659216803939350670806426715969067222415007999950439064057391725056470050831777260100545207289462169671692200002138213831035935210344852669546110905254081319788439577226235191962194543679781083981943998765309205743338098277229024419862960108281147023058809081791031832443488691952926509159744672439246283779426031350590363955308295103311811100485149151939889452659913443982890115920401461284314782381527947423368944450436464832637186762424263784713171364700612585685064489230044239857972364659615606411966472604978878392658184409155794900662082226100093243312610729836176699354586566914523302601099974269569609150437568997042097028703505466163053331323966510729687427080859063941986267882940641979139771425568114454859534341176315075303150417517561482402334356283543792638895079558050036125963391907233428371506468289250330785445545125812428429202342267013836012375993744049766026652318128465079454670520558000525979886267414441549127181039702436689295207973336333895176481733274398398556102314403902095265650613678681148749536719110778845396520145686480340369459022133527986919637240930727262586333520039913900277870956421212197283718884386626633069889125767877605708098045572498940113019418744558439259466181146122388678153992018907133721708506619018205481154116917080434753283985823069006977697092112225726472852227734015026050777627122514908965806993502636478918945593947125848710521706659172824023494577514851009633632424715218319832604483866146370580599813774317068827081465713010381654174702900135128644998767558710905885455492960972727066443772026824465490795844190390065981600918888874474233838665300762090783154235647810717112968015589217562370901251794180464609639282916029206108425489630942299021141386460237506033443160192305400879012046718751404138031503482643138939458668541081770237878116269758938280052164388943322303385135511558067812609840648483087969386346465168528294435840829984391901208785887867435343690440520802387954770366251287880944048188558737810846401101909357284048815453875677536841464248302123209010176161598610611393306289894949315307695686899237648201296177054275436221613978764698129825683410908486271510184647244227738145803307085989622442236797671045338489616722363485203492384648616218967346807799462805475983274136007523390724229348756313617050003019314177440156946458337964257449346872911696650394960778035398295666466897698484708891067878730518018993430144988080089422789777037483508792095026016274831979249846552034133478867984805697433221245665514973443664012432324664280942910476251702901910328517846452775166973698370565012703746346827349275186710019845994351906054766771269531981537178646718632627551658597774033802046499472841193531113508909350081770469104781590492050448215787785565407434871701986278211841162585161127103160009452152995133913464453713253434362572930210492215263887293317558373848936744886108315156642688983969921548139569126076824566143662771321348903768391360631478448220739816107160055063313664946048489880154899683808735525079598928432530540928125938231395125939830964668946294038620759344959655692206079763456731738115821059185544772975245467148229425787238655832280576073786268916922657113720055682495052329095747108302037644015490479935364312547837454572903691068495400922651348971373797124857773989740046500400823781620451317880586067699661733537793051027437172668640490175931465156479344481263822734700612054073512266468415347566029671975399527494051096219152691644105604573705186761496537335835588865391031108459774270747717535147979767661936515126029633418187038598129157106999757914697606140560881574594403128505385168909369369414360816714350989535924938559508520653634593064672734854972312639298479577321902006068673130687123247094923091610832933596973267683811693380880920963268776089550648974457214091932624072143029483624076082315435688425060365980651736324790513362042583939356807379735428137787750591682612269673925268576706847402073807212079084830534834554870469640066589523075097672113683996356397923066181691341861830391579786530182146331381367654903103620602755683773065447143890231894782430024713618586929347396061384661456849185220174571003364778669486793387161470372482208913890165024713646128763308924919893155473727800877373874922265462859483654637611680634255835579262094238544120933435795378674694642419865986852927973206688442665064657827578519169261694950751749302638495059399164053009791213536494887010935994036617972697740083355979822094321417148803164799795551458836913570826320891081856903408422901476709713238906121846838976371840629662249725715290546540884781268967070754868064036476385225023398933982380769427854175744587081387573734554996045615336529111844565223211669602878866986007974177510039999788218938551306618469286278131726503833967097871205633534057026804451888034438212852967731276405441761173534755509261324769372525175171710747132189293128312390576757580567690780274509682767484271837223146917164403006682155224270570699273977492109139344869311180542860868839568276031078268100334671533089236142636064107812182869773960040001200100092297416367674555346041432923309649825367409033717978734699380129239314991606376005841653134297309908030587709833800366512716035993551880691531560131627349918010349915611022532560445696106310248839371189166466124171269452440045529097817633486824565986679138048370012403443425732706908739430823087431690597950633377447563471267741555854568648346446956969680458640831934544604516374440858585172835277235057749684436465361796079322640500802941955617719223929933575280420066748736625148761826710748562309059217887483717910779142882895785720656078486847758900459664902733561724215445670279187817756517588381740957895027722849483896989702027520466573180594375255584788826971375408982106360396798917089088052513046495741277908256719384605507431133078546793755363086856148947332796348908744748392410144007262489535437314379511608253186463379541334133594851263593780729079609775477371422437415127695452300816841596055365348150751936036911984670183417405817504148538066242325130668018754266167865898253044374328166621243850721755135887976834456014476860841749266019962659737839595062487488327513213797508543146131046003914428399565730727055397717663407005481408304909886216961479433035077512364888431212215407638743281720919483936897021578739077482641426165327364245985085169692749320827392377984082438186172905407225334113246808648793510498052530366086265913963435218661401414027222323497100151980618451642615930428178241717881891982606958017023442466661754322304241670876254465381450506115307112727144048416292285765365921091224033519066251457182074606643509023716368613173961234609350492163773949199710605090298919286849364660340022490212239427595986129972827343144525192852524634448462811069568283130054236064981092606677672890882391293416534742248255004242767764007396060766979154899839579414360060117250002496066625343463959605425383694941943540800899099041405126344913685039762304388674365623105192067895859824319978148209538819573174868052735194280023326939672792267617008657866054830655006268601672931505161486460931206849108194904613461506544782398265775060006861183197389755888479970334781292987347559235701199890176636125169673305121916632812240767586856984554661893462531901625241682344746964634821954887001655620648866278601380174602973030661029580643282489120578633114091080040581711475307104668227106786035290052685117449114391748500305976055021544119404499733454839547255822950290917934237490452407839700963518007994455573411758530455855446449330612891705531562921642630715631742912160853251042022374726155202104896752792735063931007522143717877039167824108657145998355918960078723492118494082184878006933134514007632656251080770908573911716397588528124069451202350042436640275204787590846102955740622488868804584663632303094297882642925822504701139473182683295542822994059537133072662463119229557496482488873798830782516054799840332634169725636485996767164659832442589904997708298668021556775233570047038971419132063028750157142745674742692882839831262836155911370012152659890002246668317870509346027222111532344406955542459729364953080299222940437612320283160549374508033560118688236074692463218322151471862540298253232617788211080021586683789533132910727597349254217768891106111276300102046781419208651021250437047164904578747161947643310475274182501270392648734317731242096959272228072620417757957886153763886602640374440836853111232126259601858514416789082705339658736503663772972140308878448609566884695516906258794992141174998499453036234699804372725959302343965455720819995665258365159403929202193177112490731967823488490559562101639614331949821887722295071930292060017799385726577024814996364074869649886369411549176838957396845180201082530778090996463402175784243140541577762432615611021867649848997669204444396294735363191047697409957089717788988371137125492594846246213887944099099441574236076246845816347692281402499955314690906023309000573434693017793549588077877636145434299116858883313478964362723271405138309591987464815520491144045600673967311031687126034599633283655581302776333729372267536723331017994902171194094504613492786011083450817301443523501926985343266179027665313686550120176511059950293544960109663490150015986795953173915312130855433438283463383984870297101523411425926058355337206426165210345800953306317298930572530569133057090016697477254531858977331439998829704956232894362808406404823432249986196980245095531847555029268288695243878728300971619381127408747741580186765523568670774261141507865315629793149498769655741178914254711820319235075863740508481798136427241475655997111866421247926189351813338283864378054049438261878718679132380426516161334213081064194263539480092879265700145744434173714705409684158097454678043092028999482794375210131286840272112627395334548597937473757337151318520724927767518979816027844539402357982257752783984980295794615519558984853515100733640019266475576080700732972517456151151392688349432216191612915701012845821064414091634616897149063682104851155549968953031258732303435145753644178246253290366483857057429785816079702098011106706714243744135636934266551008950396705951390107538596058321615894885385353480172561943942084806305622092894926119809279941542007329552061746339359903148871546739607771728542899611164591484732717456340292224392714256976301890927603029154194658632957558254138599401608240139413056086917873601828473983983401789421733090331472086486379172656109182220757708583583345960142734919509229081851921036834727631461647944172783221874736783305935071155943117200645404113978446194787047811851151861852160990029944178666475650497209146801575274687749314658284570612838044785058275776690810101063753883991602577863928817222984480010001605410246156000399706083217341959567923597673140752345533944631223385618636059019503076808748461029350806523355344276564410841224195141197455747863197999476903098953426331690944869709779292335202535396511182298891166921379756446080757699199074901863924002227746612748438095702833175159423410868151320959174210280402040590201878225181698830365310145175843667410175125265955294899161670662519434281879343710115478580524497300491109454755747246851807017177036179383685015863742097578624122785781628776882515438298797126090878573489019684256330531528684269235864431027395470168020038612022644105522447238074606492986768934688369495073999552983418799308360656799597379826257956073627500977045555625320145922001770228418655084171505569722952146831870969744917443131918915694020882449542697225692842554195617589448601499084869273212060812720504572028035950975271978216841110631234435565854767482207060272494661510431184347669498455365055413511247903413209029059854541032930611723527189860379191222095664626009356256206216394974625894923892056765777135761235613377305489004048537348003584022442906259023322975137857094904903681786113473745671700399559961921113055899727679048196344286357558225099259966773746692329390956961304013875650408249234435260370062970877178188921840318643401859905236680342509990781282235843124449495684719620718719047619947439131181697829629491372417443207170513470610776112157499486278043404190823816891201048060912690184929485046723345198689400221801056248601813863126309012679328546366827514347262600885451129668518384725055480587604525185816621820115321247323254361151380795374243043174599175990735001557997315719426056504928287448642939413764899080620920576850833766107098672541315381173783449631257246812108565579998225515807809089532728098090226346405206722195176582642040001504775079724010743591047976539397551906476776873875933323193543825753131858824405188150289543904714335944623871959539221398329246642480774858926111859687648400440002188104644118643903923371778823402658030955693715903746321617307303513363260096079534435802224699109169934815037261315364994958227512352609611169099371418101310867968836963539193637086654552242873812691739520574257372957032294979439396998788947267110270868560003515811626942802014402583913345124355517931856546394915558771545605371947603173501481030214370731513275106910208841942381886685598528852692179592713835345296594356542328684722721147364969857583429156364699322254253888969063285020733069293030227825945454698356121150913963540504982365763001619887305057901622910789152155250444269619338880822384968470173195412311795926336345689373825744720616810448663153394814603142169856088561246261794159405215053998265439882254524057911904714319243475624753895012590028233203877121612000069605541979945960666033801465161592978590450610515158489285122587796484207931526547834707114616238580474221214888432924673314898841258595890741067592711251436237716280977029486087211871891997075479012710029391245778870759097353638136834840912122991046354135229887199172765175875996902471644302469393951554593808490123788022627511721904624040192332121531228237621715104970358279950001613822934313117707219690202564320419473536257678700028253389922255503440422930172905976508892783774824076525585325045510258736252807046781508275101167694536872553202782065942033154070396511312186336980413544133697498148501896430655322926613418395442477836226453679788776378173986078302912905363575063600373067181493173424523248518247874070990695471752864510166498451686373876215542147358713645745620967704917005566397548877868355967703078786888208347569625653707383892249786298089402573998087667975162483860532810261758660384239189962120954818408623762268193452040421484586713233730474242539467559801374692086726306874340899266901415486164541670592737305750431700694477353290825883485897335198097026998774547339989886338871040592665883409291320844488532389164825870829513525357146945545613476365021810826042002906435802902303362992115102040967705741634165127177910570335544509939534407438634596692673368810459592651253099028273963753247707025094687408242468081040769678742748936691868926791505803016031143718457532879959677103861413825924407322671986084240457425511574882733463385798692587620446603938163131314014173762163696172432612112892979579997736372310063542352348131526494118410766657994516199416479356119472796037533273075823447115023743542996775695166672400145632599596716517442299728451326407079324193196048959769851612744215022309310037144671971473513319600889022255771317414997611580375146205090909058163673493072639468802836137345435304475124751018732268118520614874958879524745174096842628291483233492386379141004144712867341453328729709939467722061581421127116529560544513814883910360201805347546246435853037280485735567135618056255385455748329149095076503290057858009492301391120558479931849367325426249208428978069581886761631381602476465458662366758196710892490920036912275744045533730581499081630285662684607747430974298228181860713790939074117625535972687097981925438394408828449066343835301901286734530657637992377141918036862226946709954465400587043985913728336545460141935800236247848612483925919555782044335276460383658912895501677230829116168218464242122717535707317793983874312046935321880195200748334192839341014895099686624333045575403844935790196793592183843833058588683875871911050139999894004428044110810164552326691130279673077176388494744444940377114541852855255901096082706296625447626336939279706914845532915260216061215313930531209028086579516801214838094334437593618463768674848129070199052286354743656844349040187667622239759746660433172136263960359925980240178455718304231139233124517292882933175295873582778490604517906818085239824007910262774897092499056710265961099439401148257442293837598155574145946532568094306440418176068380990172885633662615153172139867443532431193760652657941281752756983424942705365304981038361032119858752623165093091715530290107087609445204580720210061174837865029147009557547211133960140620273015457895451507448503199530947439860400548494254850539925919744515497944716426958478663319736418340947006831168199851026038154537059882132555283981466478468434629374243063121862206094512017425843212804244681199620870765920050286699856927093474550772742726137551647524873356256239351803680978290635169096280147768976929169776884887903511779791152621684593606455283633117675307062873562307954140820800234864616982600081244820387428154164251535418478557087633061346558260845935723804645515201978736706977105848862353027287257404150357540126130438436990932794882034731420229817067440443118259630726587441857386913955172946574605948450605810321499861516595408796870879380787242737982779299984757182337625027109191661131574428372134188637501629899377855773506356134944482367300520020511589833119445839623220903915257161758008189389645126599497179977680358432086666556938779249533415807559788405887595992264625458810390223832684707024837934044053603567542060118056656788209443805616041474624277258750165369265745862324183722621723507014246233315038396134749907641399048714634184657067859670271848760532507688731116252645220064182477556154304428916349445690607995994946107302444866813408751542448184789629514248398945396336469964838297168552503935345136911714735643534034266644347741525542507910088750425660789942259899600721610028088274742066366956218013891834584787346355415189627084530304028081056028815672320384052044823667238121545763998735117433424899999013522401868593938326787051459579912050868084699927476472271012546892451285200463546040624356359742167550678024717708495216495190521681407768996940722120676432721215466481278252061777219301167706287086227869704517276634706097460062667566591123862245533341771797587991683958719588698118479663142520962077562271592453423896859213264149523665774798386103578402141212036002180179081404866315522242369795839255730999975776238998542000249310401483023603609431019853754474414483934672678878980155737739766193506945624081229779257881646823088720085937605330917692520576213188929378309999647552153283203427467685344043485834956925461525828906469944706347332987237624794355393691576643982122487266569309546720442731831429342441854838217078016353478942070496370794264255586689954516043497067548824857710781319325342557983881280859050744511591400174831030427403824106570204598487304973322845196020222137625864675839753811464432071012024746213636644109462426067190900060099834947821174347666965833785757530106384762892764536122402318896406615580133506480049496362052966561063939990029259887089470725881154453865721864236234460280109590007198943739566251529414079043181904487639017577994268946672071924371594340306572807893477507711107527022854095130731195148197573518118906774638731558294818657249877071380481411389693916087008050184840542141084073774786290696485791736473057502327371275659943078772516944079618150865109835898416423599842646750533848026962501864927455233536048499164859956711847838539699686198192998662944526395554000984720477683877445965113196783998108101160551448010312039873460107718472143578587182944875502897901706533138349661166906264695077096364844352411110646593916880733013288482867287044100868550514119884930488379711680676347757576398568370098661667100984253005053062758998645822056650431983441769943720436708903992965854917739231620874362634932950226302162414134098733203903541893791484041691774476002737591842012505291786479885822032511481881384338479593254810560511440837721273222014705476160970459598646278104540824663286637339152405972936804121045363437744400169394055384039425672945164063688608715684565875471524540807628836075003197765024503212282331964444813917582915127612154221944508566591997594507652357596292554963447606530856153732799637623337630900024412036380086005209126680695683472013794207080259756914816485927297389748683067756446272970492903517946490855377883259009386658582143938160612119413245659533230937898342728226815388213269999229775672709342051052167914360723731994977965090756721504192185787540625173274282512043483059304816538131098467974407803760259296164906582324029908991590846385886176452203836435001188089482319223901012954681167308769002405173952020094757939134521187064568173707125290955041003743274360547472454115287790510106345195887478755602464396608292770255460479705585451700618259913125993510497488771889775344705298070199531701450489493888466430073609451426052058411656394268420712911324049037252391744148853738422885850954980303892551181056238811411585051057080027955722589882388050691746162374091517370892939443281103043470162023975077718858554035878902987043797090932019791505244640136300375063396249433091091635977004837634651590125868249512639209775349049764606397175111178473820320539489130221164369252203803699185643085053768091605678490510323348406023704673938859682003118228778262689174653259752827127417817461699028549505648089085578650843517798372793492097706496038801641953853296362319821622362824162183241446161213143181104407345780673343009367914822420027983006849648769409483621840185013152040150971273711921858845247356833640566978382148253662410201417318304835041223060628960077985640463735085176978720227252883774268926039948292145027670496196006711066646719576131003819513003871338889863780693286090423640244792048318866104085848764811706120793868371108601371145719959685757076171334187410920584673460600489477829213648506326317007687365648008572262044085197136877452585574185838442158408248104121092157055735008620907960038700579141233653286027577826196210541706833638195316568917602000283001955511691078060183288281759006873030661633645333176724072494811155144196225331690108698802183294050029667757549333428812772952826514191114659631806254977247186850171248801768650914239563250914531713557541302994542732227060267385214652063323973318181089045711020234939996724257027866265088042955305866374517422013122129683246165169175172606054917405083924094992305749308434910727045888204522859354875725085391332415063211868362535948782466215139587513304824442779205964990699697977917776024858141198485090428795046468589368833476074352608428944103858500502011397530943565600940897272949455156196694689086351682374647448742433016651089344772365765322870654156808273830311959162764064298696669756649656191681725405531081765380677456024387050298920530768834887930935204106494901787923921723369216786498784384906271681555864427256591605383795273553062643118840315973628764849888540846198534058269675975284381719521090216202297680429069512466856790152003997598022290970323140197904131248318927610985559266737633838782585943019898609438165717123751804222851727911332158666387017206720290705444314333870342569292356664918545007652171975073086726843632635306124919583198763377600887408769810779697898374741307045242254405788525334793050640027008781884239272330344472314448024358153466528669797663084273434062207005153105728346955420765241738495289633911602433964866146174800731235990079593348268558196056348826738215577539387016746125205052485851290688280483403305696503525169461691433100889946341559600076156944247918278350412467553397187051671413789355999445334433085226078178560999374684629476607103305890158235937436823808075985854491352753718598224549293372836601395043419203399730433508790224598907120275678570865367473783879366863920320312867680882729159661126100058844971943500800019910037942441718384439532128998490731011975752764327426899646898814401440962516292168399287161402765669579516204261533239786982341920530466097025312214757405140545802112987473865428750767538808104818723205938278492469362587428217220846493684434220498317415605621680663750332724410983642194937098454201835554845748972543872688963203671464727448562808219558195238141668564643220640889416982436012866815134661698972322300285441065826397596496025334484041464471431005780522803820288454464199996466692709936100616546990948673466485014254869189255414686627900697435911729823561059742570353493015181098192853330476752608736785379997372085483727843245268916036068422136682260707663457127415389329115763198742224589893419706567360301883234080204102727135753889686226401088200432166471449470114551155385629055750590500502947047344029560985586061235496872168952401502464813232291009693546777498700982016192046219716556949571917671691484123451627910173842809761517757683202773397263946038893079859356891169539413445183653166212370637952028512487542537446458729555931237707819176172337576340912813728345304767745341654618590407064831518069671141668387061542740824543152335002598112219469416339146875628287687381441702923048891560750741679125927590152866674048321651444933442295715270190237691359157655165921309095661390127312269777576819811013693417703119625020407750919872258818656159247983978512256112342970469808733249803686311869336015592173701935609704187214918940455412041054068073200151962650526525138190217500651029245772133453841995877931286850732116099264552806198805692128247075794335624950398448950274868269937845581637657130036842262912773343484028037584676910307687139982916296121270019270641889114836930817556939746953202171289727581807705619005775661063072970996517336844110315934973927790894729760691423178934763833717620876655009247798059344425764762410091430801150679582963623414321966747515390457283177741055323151285615251927627927134118909250585795487835958657934071146430894731678676425802402093248001024213446976236805423943745563937504536637801070173755907649282489443646600729261683375589570191839822133209414448162315976332508139883085967099776839884291849132577438902508012316162883809523054996458705452827715404756325443460701170566473779061764646890969431240165478141971479868582612089284300052134984045454504191458007040039264926899138856956446347598500720300047061534168719124336984174776337708773536425633876122836776701296106898182771051943675315306745060172283988343415270063443345295620136190011378606660009813203082663640533469838278344046945506681724433181456366230421882705514326992168829026979741236135039492068328354466971832928977775932369047075751625481513174850861581080070349956108988227879404468223395013032967476728931982308067854138887140540515101185016387487524863740121142596811452328990374349531716281833795849925894888831053977465085441911829020312780681150598946286508395349896465874869786365362941273747635800737300267733670055114859901231170316674741687324057517850004036561676539697595401306932847122296974948730054112379151495158320077556145800757748394602775957100107349643961662761769211759881843775479224933253340459323361676768094711809408740616524962283739582438743640622607070292494127962723478689158498746073530469918190583030917047562246212076528797151680666799814815788980149415991370877151973256999877714966463500157602800755506798054858150112352747552279941381940187575364102782834086877500804787160205421874920978554955509077246674970795154278974416374655249744298720870728013029825786173760747233152294962639240102252563573878435697423871352915920492496873721797453062986834125565026287033802273258235874380733035766152505998610300205457346243608707211996786512632691058753022931183080531917560196747604544446852021287059541054453893631591628381739365857714144803730303812017158717761950945849918492587037710290180339871242926653664909675582674115493943757427449143424351830289474783458281293631479821750581385257335266899984098263947219670689070352382583956099014199614251120860572414219234380837168341364481244118037022490779999080114139108996718707784854242729756795994653131538758871726735059281091918419914012296758945579461930136131314796583878697043931750233515312062521004375047218520774199705734360932875410360230249412992424369099623872495341884521084066561392644288129043688335063766363429291780851456501390119978571880912716616903732551089107323923426418317516762221280479178936580811734030294554638227290293721844816916452859790971140475708170153041477566162257208590871774633009991947810303676082575693649095725310191098012019329379247046190347962038556043859864489857164785152031299742298136888937312052476852541429852817227242351461490195397387737897302327080671910645179079312574323546826423605197661319866801834839134091868212327659037212244308100767754330004923610095655663331961936211632712467713390041859897940003818873061746229384777038169239034634564288417197566437217248656417806295626345984291896992768074006961555706649703065266607459419393254845535120011351251523764085669006199754886956880128739562564116981366181134833585655619941609198109497281679654197568670921929956740963088902985370806893049768562558735219347332230453087577593200905457198344698627359678482678394371138096543276933720987863833240846975299752529208855020843796556719540801167135520119704193041099281256989154718762605533485747104046820760842975612084499972399474565048521962768995084620787554397770191176057005291219067120097956110959812552390424814733096413350115381337457980692538160319049302570174774916298237478847368320894597194086292899044569980088491121958473581335662190963058238603261622638880242895428873536374600361789601241059951376148538476316639637318492862959973454708059306203361561773264971104894433933554335423338483232548677615773566740077983226684958554175520634280251509107252913440704952383695982259328741336028157912223178096960774047042051000804761386449401079030317115826315378472915562998636488419452044659011723335037645590755130513117168268742493971633685983104703378812415542155677255973666591494014667428191476055979601270201136805031991096638202252625154531530358093509766819973786363653460406138992015087680902506592574787655537182724540470742047046391546269240314203487401620263653697437197556306432480992211917802091477212223295814369077196051443391230458295166754069272195342602791879473191979594220326094230280547013935197582175253729655283044063294183732782499496521683217193349742743663830071681331656539091932261437459232572938368348718557403285701605238025671312971604928539660806707370790184679830700549890270872349220623080402138948472062676983205667634641375134466606790050396907697517733424702676707268241569809877256690168390467275780611766524410602173866916312469236299839569463443809178332099009564957636993980785491928190241278793072960161468775669290986518261541090136320563560378816977121238871604781244601917069162336333867434559457088679754652720649619481472843210759908340361530802964659579958864963046735405388500847904338479401157612166442986908008114023476729052747262721761187670200371574325313871698253798576344007937967512238607857486990934182279146321997350445083159961821190276136885373788225134764044994427549352373248627984562730275849519984002294199708946980903076427268395001928800643568380343908201102815150248191879247309365902152449873342827113696743571116450922922535289021487909577014011919049925176257485358529836133155271617258576632051396312195320778624788114886520830401346531519031455345707977906645285512911815914810309865319310581385261763285440989926453238502849789238104049829843835514029685231747035305053787061695277810911142740230954880316192879008575427205369882369451987953180997992462534896009950110405518751569756191097852697424824519634764024854518703746565082780416801250715619595053691512849655361166111022752247502034762608585297152580101879371797017605796889030403190137475732613310582032092436647801662949547807406341634097871442865484558894517020416604598604593247709268791304792263871580604171535996109494219680454102019737492930881626799417706149284746466490524990874397678537095739609656177837363604427062604428491749604333924459755810893652758815726324318156675139582291776460111554133699527435473613839339661136912989997950611616303756087226683052175635558463512759922261909291692178967221889751011927512319249615106664724643992832020543950980049686201640191189254616329451145589714470909892081242347659336943322506894993339005556925688461355498783092265726294650484515870862948704282045147568200877605249065375421115408864735035545439379731833115864583226312306568377241887598194538760357384327719255377621525481951960093692698234701353943585598912870065552265218855019067674598772939467858894248845535447042127535421701489575383299190245482216600578874639117375463107374025557693482085090852138466615114228727965391651045708306764753849883181205831673357030759238724864587170165323353330065843348440590749614921627981202845383314181533291016881380747097864848071979304435565351475737555355059930694073600786923684646177468209960888974952102124131972008643974018972298766307742103455954108373518678119771509203818803484527692372331525203382168833532792278856444820351656490201094190747145672503688354971513287582429397397365324341064525282545152696049793197044598022303179505195981908016200239357608229902470443735968823523388724757740820442750517848300176934680977039626844837511788799248755698263388064991651032059057887092371368221793904839091176885011515459502512094128914535604519416007356011715119682125534870248270996369031376775536775193480279718184066671076870192300939515825258015353863868925842717280910976032488659248006078091402087431301515281696149844317626815010693155495872886183097370128147529587443588223104466326079156837409206735728957686694408990926786984534287578219107596983078755334193947757060535472099887846363196432784816125658195399882459021811706056621851619715359366888371404005499324939320635540216361135676024151718844256070058079051232510667495745041997988879533408549018777838234804028656436841758346242518933873359526099176722742157755247226792870069541272801044777099571968173614822461993924712957824122020217809563592744610097817064820806946311690235013159368326972173519953076215377058323211979950858340193923837110040860011374490198318965268430995629862337234220836080623681112215413235154096665224643997269755898203357267722427213758997449692754263712367061879932134515174526053666998867869949940958633550413326781484567981113749631253960131909894768259899499144397632024943928424317425372783763972638292807175660603266269273416355741283735888325537533247195200280010301459115151414777536515912567538253184562094980722144845962251143454780774083115380014209615562286407198484608624526878360540643299530626833509585470430152481055806938148204567896715750111665097302392538595242321253070289219880385053424024692062190281822639311841846389265335451677348670229470875839437532896624409407758655162158282905964584601945270787853888680888798479697826922619229311493086059692403254148074541819921127982420221186323927402966294737961393292659907617895964348391222821146907844533495421021537389130313596856841641352347482464482453963532468926325565714840797215665155365984720441125728854599525027779976604499615315375086590072939942232007102789774706752233883866357727817629750127873106685502104564893911327564465658599431883603426346273077017624103924172030605444759750310245725116724744944341275400096715324966202164302633859249440971192598194865788946569690569847585729022507266812742146738218811100595859915734093480850335830631866538721179503508399927173263748598103189719911710793267293997565536288488817573062841297361710375121994226478470375846056519457957161663731394015425058256730204825476093957359727720894700959681032355695776732580699038058181825661476196484732387118170859596466945778078985150018949469979062475181515277359522529741922803997198683679127346404534700470407980491016284260959064083028918220909125043640951309034013902177990915338460429564487470871577315380294293174296510430471187440724412732946126459690195742979574763381747572744324441633869988953723772157717135381504463519632648511174392824768898255943728414602528960369032276976264426779918657516916834443245622703638183692403808177368640556994227661397672178150204502946593068927877145345379903892896584114767362100193137995521233563287551658551431580509148530872069526109239061342791957390179589164326595488544350146751768470755600018475614781516687204042220987308510073576303130773834199625752481591959968264680785831748857879951883704248285236112045639124386616247004973320379715103440238319972647212813777570696485056828973523039105423806283669529954532966778629344294471615943602641453907545708751508493145956339544344905139277509084539463991950725792848362972763001743096581373539802644696509098982563005533385207765587259670603675226551881548758340389222618229560477701300588954524642937131836917493055764477544189876591986929773271171353109126951961470313003605422098708984843831676434050578005621712995040848152274380925461760251610674660055367857394081332688536020445417446852437403439113676140719202269677535499145186700883326556496752452600435312300890097965622871849867086451060451958721473665756756779722025156337356099789013620992604248478668450595365564452303041010804300666041231805598693415279122943711086546854750058650546674319197305386167455359593079001972694489896158042206667287766990012509460338564893441427215160535311007031813926118676542827892368508001091195772868348940325331417921929081170039046824556439328587988287962367700190296114820105347713557519974996931770720501199611843016647459057301656283952118026459567905032866196555447275951871762421625713789922180321595457089977298245453357317513501206952112595707224527754440559105654277524919864827266476883213489411888018860915801079863810112255262332419063939245519114392184635301160563681753473604218690779922385587168530177100148717240457369453191893884633784611394108921346163324692152054444062832683523222778570035864256248798567743682692569253789814345528313237301139618791816330289250326160301570564664907947812859427530528475899273491398424682884597145475382983564045393003847591841373996781637761177785638514884133984686864527891713562530743231519424142042502616963511666441878336005689453028860215615172780481823746224388416889082988816963969231206492833843356334887742951680126434240217257778408515973955871583853167238616865989848782721048901768822986186341230225027373197015019090321844919756555438532688077969355365129185871137101619622166933884248295586158834818825497400361019190184175073111336967937946823359761867030154841856438063944213594519650677509724900500992380898019085867353911757431143498589309539543053743079604638270313204536068418632433281324224256774455463361472199881623117643150145393935135426933480005821548533390456866225966345139050977581183689488501966375013969824026640602304425463825472599578456120384405348983316259939735077349257643103073680303212820096737192972040336843646766354595081898734159364009906575072393405903143477972885049664227196516924316710024778693109509071735882706480125526311819278779124230599148655053697133339755665880198751674459765115178113016336082169120146443319095491877714836858938401464606361264722988583000704929411365669752109447720477890842028928090558531139446356813181129206008807981499909914585021441212266652313549081757749757765804658975486226366125439300220698016168628450351016498038336207564167928020566650965861221552050592427203712327721714624535329025494486953481581048681690044851166906695639320097736303268866864870868955513327475392662828487891741294626896037381728512977781597457800127210143284537371246804266167541008109786425382654346856105034472878194180321956093372377469817973611724339600225706246312782438512259238609834599917275559568928094174273691913426699033455405450479408889735637642391179526849475656474614161271655855007561812885463586669237623437523808619133810996662501036834890211917684403572861636488553969284670604064853874102435396101862981138879903270336255952060979714217961398301106699897630014130030986099966616936135184728189095899046327863570157969201516765937275062833806307303341193442157165257764680439234320589952238868028470701274171367536591035634677856493220564497443797100864087710246018280523139076395539907754882084013852511270329781661444523276275926749779148126531413665056742250432479900464635310315812346205774565994522080233839238921423646232270194344943067902365946617265423955576677415627450386914411965754187688478468110380239583509432777190661815420072314172806048538423086446859435268073518640047343431207598695882849700142904329722784727695988319170887232383219054391236269650880807604368430434194851578366452075498092352028359026838746878912111112600606326727956552759340686539473839148274540194429084361480975432045028136093657278766840688651294372656898130405894509921616267668421297465883494704859301813172856783777662216368672405414237105267187512936656523938820602910112012012236149493236056711560540577411540653168979076897565668031970558964927448832566375362441292591021851838489871912567104702441606317060018597323566160420397807909115275059679975271801862367926722492390529907601492415769033481922657111203397519625657521041219718873514997758303355181079400359094702467901479806973666366784892440493064867378338766922667564401588206509908264636029921740265163904946992784191069250245153274249228919811099392412731795611335660148361289212115875571095973124161726271229584762421593054784291298517274318763838619443974010339022918615601381549687986566807754895207856626511105996084866547495794763933845224900634853948666355278955622228191437572673744861487239423066661554443827988483315317386780734497871513733754969557776592058819101036198561819617185270635610359583239555286823795962982510371276279166986024105875796757909090335376893261918323737074986748268268868558432176637121292119780947613399212059459276058714947959686873202718396091371758905087585825692816297992499327218372905758910394811567748532880511466469607122795345449274725970577717371422674301647094918170974282306504127355146253964926801358252438908382031114242871795664703421283422038831768872148760300925176257869574625064038548244265469233509664141115690388183343701189286051222369055191122299240805315969859804293258650341883660434574568838619902581274618768535567168622527034612437104985149746513871876452528047713984021213742588559235167555907524368266832496206114237062454648529800783591259059664050781703527001760140094006344221826811132238299748553298524128572993199638429840271324415062919294860809797995226323968671630474928893299367269067832874297254789225108842525965009114353093107474044142885478512595644842641447005574945457249058858554035101586750039099815899041387284328390016551323155032747142248114545961213846774214349647010568059618385438824572505343215314007328538992719493398321897336462514906475714307416587781674843621830698677424554376767126764835584070621481724014780287311303435334161590246439287078546714954147992332523081685826784309269209551446460654240664872510906157490358330367590721565603525576261135145479722372746717948193617555250796340536222760366798583034948986156307202516245970449575910843958277285481820843560351974246037436690515897710272397383850000466518421486642482581859625825258328029305328767762192811557113635624408995247670317988859237150948513709757732646834985531911977761261396068262701146463606524271254069532592727785649366181368677567062130056440023375399992776539666176309122210802330917418857779154026190338326123610987566126113263706398847492728525106498046389974137170542857547393547565251889259240986690192118811825382486017334132621725199961017693815575954884603790976594001016092772917378434510495176663970570114738778929398510236928706944113552967266070835601740318197605489621931822570683425605973259799163404068731305953574955308626072725771091522519918586397880404084652126770345448002967200528142533334905251731314357967425370521795401010323377992871441821836177450152023660175583573586879787379642280806768431352399981588240103047832577573280046168061842295338145990353163374002828183841023441381218094819794562510956970723008530982864389415044830812666193473061788828915152306701725363947463963827584363771273031532172222281264630061356644877223482788572858658108408879182675372902425125583818669163663033234949784069114931365764209828338689427080765267399064278303989628906158708771231909303891777373645409341239655123578672492924714692347270462851342321968670738723421150839667231792826473371822139109255452580119082215434109315637348744293118843613102644553719636702507443821463376042583191655084428048366086837500569721466895670685483642790954805973867570860216914051710006508933052195028823016430395798147359514172771893489550444021187846788279368814707072954142067785327948242503007496622032703429282422489094953725995821863219424321211085608974509939937672716017842023654113084695277217897862575848073250684466175944602077263452845312410661359944335516080421864077524943053893050588398497478337504523687500435076596586011995497233249714554751727231250386377781725823626617721520906689235933359667102314626691014149130730603567905070510846462762364376751387496393390252970292697181395907210147247942651438636247009752498012163052352730177270291452305903314017922641909639858424449629159171518492695023434420560564993846719765331912244949734059014326641502911751058923253334584984262202294098686700254625953757937120314093134297222017199951475758060778022170738574913391702138856908132205366163706417614083244226604867061877636436672633373450899388567177270177152399712288754156198841491673163793161838332335837298579533468385446971285708049565898144926403079287139741937103758115027556447011628481922910972969142701636581930291502931245959278315299668291609932794844745821588699800702528278588498188876629627319421770240427559909772479660190883943158205852747462197690074680663069453116087249539665009275416333810765507593814454862643138934732677132614238835679899090673477397308303349267840184040481598207171485779617855067762816516814563718261674960412003169326523977630888031624814281356077903701170993256936242434869159767197148569847194156796408929540908062965046360435533089202475033100359151336942123200408333263767908558013445676515690334983775379871777373746278169273019820288192832127057924152316377087650833837203654258176983510704058314246309465169305801090321574261577308798629002604881552520815795203265749284096115182459583729079970649677289424095988235074271853402814058393748408759879676933325923208860088561285340523000718943208088494806657852395397595469147706862675932559603146559500285694098420170710160214913309496871738393856102831975196028875159665505155717438516102008053847898799572621531314451448757450190257284027924202150777195039365262814050098084983677977580578949137645024268737317516360207496157628069405232842439758215206223687712036817148485398312075396971015762715044475238533012364346609368333340600020219070277609972658174815742107334968792188878106984820938651395605958441081433502511119013865594442388712864670440428588099414190608130137264468339606965357773741141368258885642907307598628083269088231315549776994202821916654294279937738885598954239031709409396075877291560437817734429320465983884824159630426752937755417338806933106692504010611536976325279986038999342406677148828413788656299999406048833843220853475712398428304762298531288863840537148530394732770709494425081148413492974041694843265666173181364588940171695853052202909948856220986668104268404247898966016118374344661418565879842971610387908890584489973860135857955093979919349310221861979637819263003331075295985688355909441723387257022122901895967665020165714072015961648704650073239242889976829663309441364373260336077097395704102811071386414770505247993283586895412754055252066498411748925046801843180639658844039651989285951674513630083733070469321916381684084273856141669013546090967261276463813024040948620521101841673787958170223999453681689578235038427726508293765281144439285382677641585324083919392787743370495469387902056665472357054525326883949975679890284718857780181691194460573781728506967875056069444376177556472065369229627120307012051032475288304432762468968770921835137512299075295620810238243061470521326945234543024543958264629999375048605433373386289292551400917234912174012348362393781400089944625868900636372689617125873459451398069107121241529680200828646359122827165316122275358275830111522077711468971491247649700603091451407038951167724286166435974011978689831723791777068963266599634523781912839057167849503657206018116900723137044782765697460620242553426136236023636742704758456251583263793186389819076120131594194211323651845068717297121094085359741162584309097921492000687234377643130673975569194690470442225692063781991509847561950468585924339836961715952999770159815950455302689391802619184932821183049583702964581663702337670852897450842363228620795289559846696406027862716075486715095702604894592015928622280782979814075506646499204034738126716584055445803827832136816217798204898752991663700341030638970787640364052505762254477295121650491198012508957076082555736630580551316182269705751487073572052214364658385806299554413147996048759949242794617520619610672956936661521454660566712821613810769164845701582353311684891834846538050535259179614543011434490195231894871527318540144870716713362650973545573237507919361214623699853357522949683436386999172269517056215030584421014365951577668012050387590700024770977394579007038754296518725112812435069604008145793070505564882160066058658785823047723753510198024984958913451038090575576714645807371838536446198378836241883203457918673648533670862968201114468671773253882809807520674379514353737733305358517231154911722932022359315952759130243043938357297106101972439528728494067369754802544001362587374084605601021039861065941350824375312577779595014668428131905052886598224773581484558881553075496617985956398548015344413237357534801636389340003585729224460453563525718267310935496576508111684382370005964848979363609939173059213937472886650393973150577771818289093002316212735886257906982922852009787951304976966213755718123846095569558969673463881476605221210103628266375862213540699078699993400407700670511703928915382496769508578663427000463115704950088377249861396221089398648354873843016744847800097372740308907339563345530335735501536880645157320369014246964269709874653310570185504518214485189868680039899519637262340505782849759273630209278316112988647853033310554475505356329138712533519378558768059976525762212747790860791451185234709660446692682179782575944686983925200434970874841119789114923723520423247594395418643644021741114587595520066568122675439410625537979934967501499140878297285967789693609913217200978501841065252546025004065114660320321164212889957789264324884973263128660792431129158641715255664487410218438977236484404919611502361091141693314390957104162698882529278092869645715442533231113725477208554438388054018981228676531754713623489041718259060246181780106004800937083855876808889753683154495818832839622496627908913416666364307513637330893180665533141014174953878318116232860634813071147348230227995367440943242047842506924110730280144375262088068237622609113661482342333040085695330488369116968034662052117716077637704807877428454512731736379438821561004977341141272844882207182717644788467400727592173649891888194180669116268514980956418623593553504069106720805813798923798438603783283636117229541747469944403096952847777219301448118971034211487589391139151381362092632194875602013099135485436835883249802819031279643009333469940972996422406557808300704779855984409182360307079860892593124858769934078453478862490614807299034691536748115442714262805877180117512552608198072865556004892091821605650928353057764639073654540815228085622138735589544730720891262412222683535006788928374177690685050411601791701998367777274502219768795875631218131965799761491637927851868830145973171931041808734225894079594216388531649777409845652457397784192601345590001960897115781642337324488354106211873694170183314767491413041545348392454066339568212214805834759161413567988307763888512268828128500184866007775772493136421242400732228524851399038353765802913882668459028240185108831409210101579812231346499864687865922525482062888678820453309676621288232611997641592331039598834763737587659051715733317669842284024312950968033165046842252688706684333566685756083596581137391463970561934142455120336720501585119728897008368231116822061241788275452794501513643398864212803527434076287690682223734064826121994864581042919631534982634309281792505219418873555978394794293644131238306441517301380400134320760168959805221253051763319737248217033458034377425857775498513785302811685164082295206889593026886196826560715627837672078848250833100574400370553874333668099620630648059802597575860100581744406632622154630579458340792792695005669009832442047001517712664337534910348313437833000563780272494624492253112628473802482289331811116566118815334579050600859178826435668030753562922400791418985616181165671671394059479620683055110108002340254336829378358973538222760444390067154870019449308394108491919002124582354948033617001261185934890228161689481389917263374395801957269542876173950859983551800017851193932602998495572767759181955240914961639640568740707845120551990013069788157386629978807230963886171111683787287529774291387037892514225175670962635143362944876604075571847320001680358770271946631136693367994506558854493130430740952465973447751443021934657633987009279677703729604141553366485391240138414514180564953921716494763844207567122850715685606450795945163224509210738941652678816447814015553143314060528200835937406209154346172647851428063443564725223769284946622218607627939447100599620587696167179298037599800093070446235667944898946714499652301513030677511391561685968470465092823922467331343193875963874761476119613441316112904825498083494030627501437628058197169861578031991193230991374346050164285217654220222062170770914858664810121471712716105624465249175104676127042949167386878966636095573941777814756339631209769953341087690561999694147258011589497820696945374251126075021886703483645779096101483158899901069647514878144808453397559391031704347845611523422408355211784908470229453720674462382858130989803455829982238107814667257611101690179842815172516365038567878644048856938149831663082988455138358230049045771686226304388167841423869546397216532010249937510264359162255943040737873155076590042558336130643957732990404662928265199696640614615836432599948211902131513381715110142417659481631801249808111965554741129662383369207041593180487761149874838766105791515543911442229897953044294105566553247701475974904091373464760383565293603099787775790204273203268412721623766856097639225033490618030983418842624613758092111199882890372555177823465324863089130014793780773452584634776521483089701797752374941763180270792360120690980285808479009464784627757184561122493729745735679018551786150241865066873935952078604864634101769935557482380906561793724849956713366619076442353858626372156499338515198233038793581661360066411632865100975308595454441530270904724032042251567358180406902052366181021240681570390456127635071584907278353490136320293487490664990965175379743476612069487525979401707292813827744500888149167641838361953144251338539645709371216402514538600203640521800292457509898059776316525981956744329636332210076133197078071638425255539811598598674895848860621570317256074256102432241875690186866968674233544985963383771751814694665512182128242141904246312490917958548121872613533775995740864646834361240245076845486528282260140224905056749548193545167647998250911687790169802275339286292414361775483016914617096890071694561521337926403474035223264873366998842464772545361727369145362996257701220545145699639368933491887339830291230556073154874158495093960491793801759121105569949955979722628695808126439805788607651769735390200297704191350395648077031357228639492563090477682555645141205468008237925552123658263098273241740571749215712983010292974616904560736913079274635276426851319553574868461385684906339786075527580717959930141037407422749036495160730538957405640556750099347305082852845784472055224817865567805600485737439446243660082463593906405528319082971718212179048415111493581232702643290593893915340545897113380093746968748929914298813414472548909672163277016424531075533823934393467647729519168341633442857699570629618990213213506618343216903065230727784657490603390815174560357133827401741988158032776745040448097568642260042918619367397799506385496761739141446924397440836880291471504724973500772123067543723936302093738929495803134455194401553316526853611550390944347864043161774923236193471221827896271860377735252072271519326517155811819410994537196751370046953949686040396480278715053350846921984647246227864769585795256926157368840532174417247529068601470523090956305561830751425610868777083720550886559081268409591416750453654068668187405297887385297139516878606734218466776053194456268227772028008164604294591145643908180031295451124503660736106909606429942498890967130944648907242864613707844853448687433831116176109681069452118109040798706589938983046245528494405786828556680650507315433339461286002443188157702207166430439528504835777573097501516020306343886342900384754290525641627195200308814130721595159146001017708247914830291960482776014700368069222384693602464705164373738355704442959783923873170407217472067699241168620270228683609193102313264017566558974298965710544914966371164411772138857238044944452545062589925581023405325168162874070573879684616883603848819069641546018011449884158805857036777615307534315899707695877729287985075566326722480031789759692205755191213180793100337850761474583552838629896205657527375332861898762301330173221929303012811550687534793350643933090895148833755279874632357765673521122196973066982786338786475735911976502002375509187057050082456338767602814638818524965036925268655428416983017253811211157431619432069199883726001710857318381267207529830308575026239190203646948690503108546803255741401527919535829027765307830239114450320558652000351965900392054242355759626117807929394543702642745588539408546937720347694583362114518389488349552293350578664317468074888516768908948442368528307427302120380382563407701052111959340376645378435356004688107629475270364462228988462742871714330739062457836875399457248119495431919353430844285620143801107111805986177259329045015478905947939608036913166282332446876490189264478002167559855184701063645355938823043445169213746255826521093921858012170002606012370710524050402281203736804327009027266580226127453414868635984857286319370777274608594054563314714446626613964439233147573878185612886417208889417010899698747975584450045902196343525208095913740517505052893736933682701974640097156457020949856912582908137725253411120071526866186375232156950891923409383086485035037003392160006932442058994291356872989445607908533189555413071951299276050818220526636107755633019827004509745013190473613085193337393395851265408176814564305228017513975614363168575843146661001858508082861449512026862126419264066562931418619603990039294286431175775887773170226685512428059683946773207938673358108953764107596835825241024263894779580485941564559881299068682014054291452238701492944924542410957489308454512201119605636962217482241661734148786306186784341269201327622778044173276693716516886376562596437419788553070217785881196721789317014934650283114376821707607508999357852235552746281099411447095833433648036238650712583412829759965612808836419121129112128739819031868054813178938778121999728779713443351903817294718840934187919588936278186334754073580787410313881131640351151365096014669368071453373823543334260789946320061026295898612197509613536341143669847287655135516593748994763865121881842990411156505166788156186858840142132858453622747952148405966218991833351196613299117705423630269768754747678627689905620102769555017711027282265569660417871571321286472525860297736821006272849980415989628009579775488237045505874532679445059329802306802725064190427545315339315955371121372146827226861868943492144468241324535490280290210693876190668568668965619210605034650874111012875430438636004266552657923382496878688520253062804269939729906996714470839615909706619830523600156114815714781113885099855998535264792051362234846096509732330111746192749956491551152017911154997402525295360025869079767701234122646442364716236296811390676537594632683654175894637961810952531005986297039403708439285868297206073477567492287813764089176620306427224835746182072853472726535861677366899948077914273778188185819474902951172147209469549285712869615023769931182511674355466822095211406710979868831250911763089881030172827435217821528425734678800261003675520397251014029332409218148382010945311900945914858401682757965374479413312824686568746142518797342901227235557667030481696880234767910621988939516536234111694679242476186898215368086364810705026872339676265783455553404840833764775601474238315340115639994692524121541065083880400336207690593904447659196313758916435842500304750616135514819888975448111693109893754943575226803643513941126224024394713522051247391892966377886643104403814032844923553443731577255782818309848414295816926377957161645047509016166792250104744707531059332157040646603669550273814736757075636880106775451946097425158800100196358361951988666351419668983210613010029098117641169450801100708648551652660394558838881187684958487507844808348981937421939504381852507092260605229188895782571934868859640567629472511838466702283165515488276506338411266613611434800242208239651986131459532097262678335335956976170353832214419587802989256268099075046384196221209901783398195027979069270299311241046673762998448449740169271797085069392939370565171381690648437043979092743457710566281228540601736794365556560295640453468213017993215044352106238503581655421889709753160370934679708635495069870688997658412301468015820182453354150035164814562839916227418015357518098149517732584804213331850762300574071073228590426992830115218158798592661160688017801564109093725701131099272730580832162753125289560142658827531762302075172540402099995597812373997306244997535727578351321780104186988241698860030133289717677137819602437394083328353426573080352931176953820431466461772389698853577741562714818342457607654627320900607311814015277011942217043849222573587905324632964369156088311642548479690908620767998724421228405436026255259467006393419341224855344900000633803834298879728983924405076133481367543840257799918344746027584228466254031022521086896710907621529142811799114844431514473449100588978957737187154563865588529276329479166323642042205646780897006412816729310212233909191035132230655762696764672611951611698487414857752617488655842537814853942916140005704769007563538186673749348956310966493951891529198791495806209973078307998466457965471053042231831294706189388056722310947641579910474009285462309024893027181162511675910350734921537728674387016234066265128355327296294863177647682041980947923717371231766108936282933051744191841401747733223387760345041485703214637270996123857428155019375911231925542323103717494316037999165868079425295060068768419996074600374417850835183865901912419548870009418399987898652984860549309290774911073133488747103947188463163769610161983237074454595778403255237471861028696961724550530039486699459114483271497450936872068883076372140309863101142639504176461365053356684527357886709933700705877358882862522228752953191896377807483158697655919711615419277732446995514964160875476745908859459736942893574835692805218418135520102610328468690594205782864491225611831890466844624636023512057106627567409097234678717075839533353942546710724717763157806309636467167133493339822581581878481101564567119717398631403704967080667637229766205528284781619919344649651964509875546034592742079111740048848926903803511104291167259014339462421487862899765507206299897430041294285823266781224496911437296577347063174470496625945581628148420958976216462336964551038862819691540498081523261059938941615862347922496187504280689078879060471379550458190394309743664632212252680182263084221278320990020792935606377269130699656211655566282743549246249441516869448827708052241734810726629621133218362172945938966087779879259245919359800854353433193876476697305796004432569160481649873522561896897301698205332213896661135949232562527332676562904866525373323021472313581359466979147680544013505140049524417623787616933341329353479097586383194533517330294527087565150669182372199150169408911645745457505568965099437026130837098744381785230580782273596499118597427245210269404051048837686470706360939588040294523112832506655232332266315329351301701975479612900012967185862214047867171436607733522103160309173294752955539150262401829382709985371465609917735584324160128773391876994247795949262694398038583132532029036512751778477331941243991267019260161831206691105967505065998935274251525267382551029272424564493487055774236481897236179778092190177868806721095006234338831025203069144051333502058613515522548438379050811899115102876352675048995323849547307587536292526413510525735836660234928367055112418030503951339505303525838414972176681042119491714226647879197491353170350020962408385109750794857112383857849331169304160264041835400167370875806629316879307977702229343214907402413604695383592207626096897206370339296878802497128586978517047530600910931943515232973108510180990826844178051245178867783700702776769221314587992233689870086755196307524927105981250597321899053675842472485590811592644301382158498769102646402722736359111632095709152234187975401234425228260110135974788656683366887878702264513448323556835598004174714415920286714686690514233638923285528863176674965606440295554787389861645469691028029857909506649226830170193374495972786373809235306053469918496897622375319226580963504212147559908212800751959169804671722733046076778080373709959709725778501771542943836565867502641985842627858934887611144065170161600318828520500623319559519725571235044176231879512387617121301311090538456692642249155042085557721085775256533906999445143739169792833929257809978668120240563724574339063404134119501181038238046565213364363680677987611529234477425086858983621717360663668013803061056513335387002006468924194189248560787927573123786831078860100341438700752712078221274211013962276644801218988071828813639820357212894862083461013772416191935098144316118558107269018008695957485407132038612265303151031331935227687844451294663301930021704630551491307875380582808584204799699794342878746165139473551086150490947322966840354114026957184501460768013221359188815249245229668728221390315870504858508244710210061578286088913455396069470214775221950823746229979060387694367183679059626994171593784722171705622762196939313991031118961287039624671635434914456628684403227901546662019803917980442155707540659106549253386991806839024972541742251879675637021223357671337284255545335250950850984330160858199030844502120302385621545695504402024074780989279479939185903408169615710348256692628205139669513608194648749110317672063921856789370694875328577060580238716968260224602709396199223871161408010058523258677915506107364433048877018509194312058519670108811073495749379487185438579022331738439763195555770777148514141674047272629769617759415987471013869953662311078932500551025025062843149333741855431642647902348343358649907597795313617132364160044907498263542324609120485446617790594624392332542245472645688808974145852095398601792689181865553875370221816198702857254880430195758295081151370148882416953647325712348602201788805106016354297333524587511826368080239889311084565749138227971520807553044620952228395990753969086103344213300569228855527854479978696154595105389185080243887461771251589761510377694186081634799227502658105446060378882726505075563199982898508299534591008317263054092593167880368725802244448837171830930163055559142429354415830067433681482254704783516890657389471764111037203368255549944360720512580733860101036171533185476804152644272447588125025955984203584921077123373940279497469535191648324551949492626839964862440340010837514835572313590263960565786375920420517237271545574315885942509653236926046453302846149483692512811898856116075012724277948404348376814396268992221942613796933046695055107100527417481456936639103132481703026458244540549547144763516337983098138563483303096997447133355417604950500693022023820914847309554117763144781220500873214309578270507359008786142434850529207061019027093834319317408708229560913928481219418080326253765031183961237607719869112264612479891033188718688872822752916020507689268605770851292132405041236872917155656276393522214922811023626622301150961016446309963206308250395151302499539498579167227324461057356263583933516252945648105483486316052638363154356743648914422194612337849155338576036224182906350637693205269849618139084909579972150778853906340447063689735856157212690066250952350497900681181754066554721081144912390313351743980688090638161159174743921030252979349042281151901070250276339204203842925020673044101522449814164741337438687632003512282175794769757259507153204329202381513728410254574462178035821263524854480207072864616898440566611996614861300352324877001002477648485478380196621026705627933084045676714907803198087175320279484155655026811769758409301882244264898329482417465673798798888360656100207593513515897257590284649536387821117852787259583905855949138809623650642844868929995919365389836183384167716893596599877339496951849912558634004219312764355983006162155820857273488624203602256298719631644485533677726792524869601631845911791303866772176959093284194449246993578875029082691572387746766696028368651799295505527226133900607660600967978781341607437119364914257332632595381758715869667696908884829591326619875611559457178265613552205409454502245357987213366890147255887771730401818139215614713992261458577954213858921593643110915140931186683981621865317585704469904417880639317452444864847057187432076273539294138600382700470324122984962831273516163515272058019881654308939192731816728170397681023513549243906589811236531382166770703872473623405700744909759990417019580471576319795437435416796154162896513476909028410762299599346669192446523354687346179278239495052190798460682246830128902178985826630139045421455356288106345377532077986888727172890011645163723496025191985413243807911291686671393305742246090613074997176873162905229249939175488584734991232801993292341968209341895523145268078174780430837619602360411922962717724871392258679103242347445847207261433281379467007101961328341074687147469671414402779055529479808611104832781653142834672298674369787534705605327281150156506886045809165375615679712987272138087643590203917033005344865678776708729516051173081935425028909739488164735078410308241129680462844565055727096302354209724332288022808357612999762943094352406007604028047817230653930628138830500029734727581026941704358975484118698266561731291396788976094048967800356762241481847918634666625445998084690662894694901932800544403452064139910039230669241779766992708377898351491766661440603622135961628087075266686111064513171152730442705954747281275101149377078157868975588383061830348413164106067778146091355126476614596722764751701952877522964954605225179749581820054999825474715975999066210881158902309290474320176493943950596014092376772718840827140913719817285434835438664143354416789781315089871684001846128281982366751385037001397618164924989148852149687990379293406015803048892684224300923551397187423708806082473314729860396587967926273695101997845388650610570222708827063749004115595881550130730340501428528068490046141527337390891485838403643005514530377856708911145709914479429880159411284822043615181309779761902300736671482417724134477490281692180742527556864150840882056913102316082325679325251913808618079310354290700884314368538181049943447420532307026485348187180120125533115159021778205923499394796880854873562339619380424666544693407958725441494994442423583546498399044726993728010978941687154456412631677959932630076308381925459835180571914983198249948307082902909112643629061551668650168302699857465164615622961659948395543075820504232467858841463142637823175351573531429148652084518272731025818412858644730763568955935970958502788168223705592845666254039289428651864610625047080109591640210579762916321290853891363816549147230663085526595062612415248094729584390212769281611557241579778987013179854858811671448036522545893949579461886142124225678762789579336960041727462421622081235809510577577485474709011713681761143072252872447603208253151282844572758557366821981097335678159208479055662128576472491769204683252084345738479440202336001296825183379120603329628213464529847018348257586511474838487815681165074022300592943694474065861006561788052408091244525688827507872857117542553026698899660745454847120926267067442316965118117806269014934790493637137042524770360305083778598312679673043501037410611312428587573961473404754871136224842487569145341692816186232180533218325284416224088215705233918470180082392022554312485652939274635774258967015080396080911808575639869008067448397530911664058237449592889424281740407028746536032176741108197412812766275180035786985255339461358821534367037215390681102018922767063945154236087055647847768255341771101152337386987811380766180986742416532794499726312386478923339450816582681247542115018540481000081543357694543735101485100518604945213701547705084443796106075264245881853759703963211065855539356491235030680533230077113734173425135272254207393419431808770555325016179705085649256215950303266532762877820880389858445882190544698494453364655461656508971802607293590313699478578874796124745993527040488986572169611613466424130959444254600652916179672826561554081256360842338861977389782470882843554566686151790245757246765037957933459105488988265410976997051497388828415165026844835598053809086180044125109413540335882523234119585947793589753447843654022000399051914013333695198176675484310955101844177407670812105496859993909392061960464875273838939245757871317352011134138532001307418833932127457452076618078918166645784479334215134062887031486201483914278962894729482447384179335755820602608102975486178374533490203823595394074424105851323869233654568443724628990948759001926238223964351090346306595737067715169052680311520025820408580333788648728232885806501121207631478285031034014447269627416779610039763788484678139302813522805134778773161641108668505101143316420927299791684538893254674414706564451759778001268283143546214214912742209774768150820567540489427264243594431460719113866261453393646279681353466057122502967004447114630138959458225511391679542529708705852872560971327089746670508006260149866846020239020300859490035595354846076843702216162393306925067013995935023017161410895000452927773445339834793548895271025242712450291293233169193311475503713082488898374132246995838822657952296712738014153734720223090853467814210704211648394668640880604926980901686411602144881736330948822243598253216977347975039255715431133812765763652865947304784704309864845274497032929380758738987720051805538528575861290798818968692589074207440475746383346166876961949664747213006388269216312506063274586801934232702447901337435848891593448563296339192246367264652300561741288333196906029557478062342148966626271052276339388048955562961523859189636843864988683111262867093718997542939864751136169371292361268786101699747758873269022525454806528732550194210093463213164328562080477760466472464658416850663573991170696744326667655360664027634488986678716548746639594017208475927535504901347329507695278118374740681621886027019334355049985425080690165710407364362748538465595701490090831718174477779598640130427981895894553593447987980582103649376163348601559345700120446997532962450337927232439616218144139158928474639479368647268002672879470426547127046218103185240797299443286423058987077838884857256647826573888661321283867366415217043163145760126725280766897718274750380565928846208440098132673094691528652823600266412938488766635975652336606125470701542460673651673738093262438955425438650044552935475468387500452703817770308054200544032922299873649559657373978394397897945960953435956682140272781657467507992329759050087530493905213094638460029913219349269872290898796305822992166534732559298686215993609713754617738097153673718872446349589652776206729605414352052654586194200786727243247401313871961226883943859863859963391983329942536973150903886576344502535394162570633865373586767692934088949306212929380257562500389073648683756941126173750343137963735298853386800948304619079975966134079654369267919845136600907009282218107926250536853822450784377491889171481997180166586435550908678770796833148355108919375745146853278984117010104081977452504567307951490376057916746980687147190416297389404634627028448360948377866518833117937881980015884919118028064268890457555688622703807530368090727129544917418960488915197457119317916268985536030657433075406002390423380235905919582094296441394398070556175687725423871124295837230590815386499859912523795517847179815870276350259923715927769887491008066889481096029956472751595509361796801089449691582894352985738018636308847336473992328948944538137042898984568043593316113474236846575262079135350494484364997649435134882137188493203400495487227817645243580188480238798543395849229984303736250854641295328019382415727317026830504645978117512953176778746819223614393634420915936323875144433032507604197083923285837330921344484295752855800443487547993854763554228500346400566712307782156937537882892691826721263727638262199597950323020645570509119885219060687510451513253286662592107493158289750695180135787257063486115215197619305951707681300572968586165971090238864574121873706207237396295401003576908916507437532660289781312897035220401388864392012456843890555512145339322229765578125223102843278279717606962985739974952023976783539909522365091402888320932081231377815894902876101834207851623852247921084529820356434646949879156235625999906828286805488597554580446695678506469210032482941508011078953456277219602809790056758532119355769981971833224359114704210770974167164337917223641291952622856560939054426221362875969221375738405272894882514324222218692210107103530922670950364736196153701061889447471819111410771965812368864374994962062405459851404824602309795033383041826147516427299667380079190493220762082833376775900605156923007143401584039417355860570667457265629414667897356391498116352588568521535076887178797774940919015949129971299219343718870087616421426732627685159085646887534399230782131070349677061034131224920576184593637830742175565631065434956149905084310287388112870546737668577131556196989763530103872146658896533754808121253628016568074976494880877742698519117097447526374794615120654740938664520832624372025123610713057083166614004540434936808415997252866615692127157795045048128256160532051271028389108291943036900806522292776608351486655569469807410086047155548792107145554869350364543352034292493124721863302721599311552943286466138135482400553558540241272927082505148285947811185679456355351336693529254007787771246429958696861542601878421375681953344531725424844429513380001942004672066392585336341503103982314761860497549356163504184207907335361904985492121083346190212201346044453159232817340217670001935012885437676017585655415583050433064828808414131959384128889235814932358156064523597766726293039404223712439078016740119043460607026666825530605932245640972186461640542975697444347030406545276787619366701479021749820626649929268342491865829886533538222347183844054248903220907688344994526281330568289129918118655582656160563797064189274393567141141179785966553656620694298393476766136157648061083490132733641724956568729936800036486088957050078660271929327555039996544092499561056495515434625132832720050245136320039076788773439808346298333204953581144688911433487820848072192424767273629222205743810897460815449921543547359621283236837212662187992708086258288075906670527326060171987790211459258801131260666900137251345419532935632801856638485901153253798746853457556482458284929591737603310773681438205937735477124679516739091411960870905425747516423130688343960486698155358641895070698517565637585305386615177414622530974044794504308941149583637266980045676943561917503380354879931871979012170432583199168444740116143729357631974036478183739666298599279046953165581864067724606157000779629721984229984240369949020665706257261065932547948550338783677108799203158455055172774463271873400567786186975382262911465634455697318171748851146379407241334114154726602007924541422099481337209123858404839965400710456930287992449360253179137814935903909428686914351809714819170214072688236544724536786670382849468136574517935718042744493151350047080141201928551728413154376916703579064122451985785739256336172103874514727031541315233056403604284290291815621487859881744383224167885514946245149719448181069484889348231391163172986926569832825465592675011092173941778058564794883476786007245156062569687535871936276397371995633392058710846007131200598459644502343822946066413358291738838870615130001565663712689887854232627960308954106792118519394992788612619116679738050211009575387672092158151921525712275287083596705032941533485816148311426182171288040145524903786348192425324686307111396089664081573494679949170382830424961291323336849049113806329377181045012346817979342371184332992862723605866312567458577315097173367581626897583026201756285106585592425851494664426653747307373041111229720061006591867687476902218128763880807809509208818162833168261298502407825333212961569765543559396843140670669489909613103839236137415875117371173346325373790500898406484231646974784753737236571523085425832017660473983613186514860444237971831680330272166064358757014087327968915426257222447472785279182149904280239002372119975307153087071344452348911654071939779155850724202198343122987968354401086108646043164947354195344854611048586670908887016483214057631751770148228623240306290659581564867200941893019260541407873522353881352616397927315182800999429748706998906160851688548408093323943178093510201403087668590093040707979427141446146827166687808843883019609174702558769272850705553990037117000056460260680049488826950515316659335426326533369849821753149902993724181465649283910063236144989130971119528489725666091032970108455555055378750193691302460291354585040549411800420109020254587136361454908309926066716399854583668313642483444727986982989066445452678431293634305622032410600124440769270537270928054943666626101370347589385801030653880778431094423062761095358701161557562480631803704514818483173183680174524893783639927493252358191845938336827841350502721379346704504774196113735857813803954918133827017408145832225664480947224596656247137036626243656770247005691687523586726851007166308678535901515869444277725947461816653562654207663170619173339154223257461396785884933105067489997697379948270354658809045156139608188212451530263938024371509764220061438495279969800368357371741142655016591695704207403266669063399695841240771569774880139993714662155569839510458765978491710142049286661827459410985730043589420818184037537554082227856980216983215320638773141312620909996339602431257411628068236409019206482043912143453845357978924942059366884946916429882074565492231236526531840805951477407796806027918962475013484783839992577516764197339526079761716084983472424294196744458301111031380799628055667507061604633483676820699468737597148423745709033282392554065644890754469516926684922974470258805696627632583460302820025386235026639875763231780270174295546921182142070335873900181639411948894902721136515715617302322797504651354367771972143880961875376310549491813119431370854275782092366220548521212731937291005713967367139869253238281693858866880362693243628302506308553324639454262959127875412346081405748689271739674244021050790973390176388194654912569433415939667522322460309130047145370763759997505406856294702855782509797798635113852432879850290392173784358764923291770781414380026042164319241235115335688197255280336765283379937879996783616122305012871934346294501138532189168127315710555872409629739902555435661692483149137802222200835223702076413838464854562199401171935461920423617582075942589576185049699729537463165192084812583450344040878914384991996923944069277404352368784968769012298429527467690723321286363712132722187536716633662120598595549949270524754408789651267419545073983784531096046854781893621327781830476059452423964014800300429001284131941337797552021364171937745835298721772942415535864840335086318798940481662200479351315824943092102117991567160713295060775764102551710651030884558943945962884727532519094551441459430865864233027284579032897904324188742988330190888915938974224652363755596523740005399802059220000129545164702500068083590691476128763659898817346645075863630004114761481966634356599468541779077626440792173597862160563678288273013219322730657882094027070947688377129732120396379952840381534342300230744046783360350599533334681269534195754305295084407425342775527073208444672311514183310947326982651361928431904641089705791889749101273063372115635565653493573564732795086698033712671256349738110487060544099007105839168470332900556779442724343548783231790909614198738758803790782771232729733662381332613983077487207741140082254469375998046606729491388675097606249840361088626742697039464932330094603014471396799919601465890384591536946735799938885717124131440256629538111256123428435051119540409975794865334916702339394639758597803390088576079526889423399188371519873954841820232528673411092986271105006719476069471507728817229855623470356473512686741816231679650852805883772945462247939289649353892731256227940023105975809375653176055993108387013489630488410566792252548772407972595148553915095184888615609330385939875411101259540298867354965640611401489090373510031584101374595345360839705515141133761397776550237432463851083564353741382871612344840783549128506759232885962030488863035420609853474549375986578656216040228907504839768196582628445629590079567101896735195169815319704674053720536621183708854782674686188822129359332768530159906013521854711207351776358319889405647220960895517917416243550123048305679486021180880597674246378979508372564892470756974448268142159045136706285949242097124805933954603301974619324293487978800610938810016287538993599103967202940750335358233500913779045258195118350583353506043257713509170906252166843300460371920403393448667008352471340134969467683628285297476718714218500144736675986830283528220237069355902119552061744996483121399610915903238460561910355254802036825778078931629780280787001349774750065913659246448510580314448161712625393165490916912803822264213639350772363221339241604733526629612831265131425267389882967167726171453520045952775746827438170703630063965799259349928777715596425239591899435022284377739325311413216281808545325438081285880009713123817895023691381541150724112438440357575351400627429367880089636404599729833680508848761836890419348043663954943195076481349149013263148090922233913111115342000080538367996222432339737245188385878945430885948775419597930376462110725074713754813885381697235628616695464101163392523524592368397307549034681705750485473660262961872270971809297521609890091194188744058556658327771030828358726417229583041331496669047158688586164652838751281679787011510526988759324725586772499326183877275591286191223840715306797024929790222853734359650641517044760701748520749290595610077773076243950254771564991761058459745348140042713953342433813262620530201309873481294596370394463185643763815815664385369661039862519800438745725299642110172329464433283260329678403546469182985784088840119165321359406824455498182014095878232873196862685935807911727309206711466849699445639582048612792198472054901918821968420547690475426498153692839512853395513448688234160061943909640131652590700235689527440507168122763831967237739766818901456150625110179664334680373663482230771097192863042512672993749321966610608483860375037354745334615394050393482048301320152998962395659719566245224006065001931632057650472518694096352949060489877850037636068204723205064336588062661255196287856846152791328251990169093628156374654846750884697327672685225752665419325469542396966596302307834526634482310249197507831845746039797242269598781927864596922554033552877573333540022102766523789061913938590917438027747953064533182929508590807867801221629552838841718634263435743707648701812467312123224207411223994105004755014290566952105041780693642494888428753261048828010732691247824216962035452811015176255137493782197832131977456659371180010307820120375720910145373065298555871532605199858843559591584549402740833858554848606352948360966445287894934950390366474321830573185665987326085156630288013411757511080855250759507920118783204406803021043654045618961016469336778215689920293871150130080536595593996541976232446807463675017504079179356802757642852244854185806920449348648990847111977809435637347234316736600216172408025210245718582949680866602020511799679742712175757146148935561427514376191844669905637855121946794401771455575716316306788286479117499772619599256488003232810197729821404408441412558445731093762051725110342131091483401446116862658504523718535157503389240507742771311094893339477734739188167776447171321443320739899395855142647740434834932800806737228109710908031402041409466144436068218166632477910114537203572067724864432655177681540550707386623373451129469686505375351699219234098374320284679209028668474478889720668678440423296748365420518564019501977163899775577845692319140451019238663176892601211612712732268954646336380818611556298507299551168715667950890484564975686725843753169139102082218666278066816059849156399285444446663523473948557738024735799671825870506480614228782321748309559314876305027256841515312496436147470149202726916053890542775126105240084765696011332079954717854573599147909481254386061916170017709270455832423144720945243100660631403691727156461876122162907544821429012609520788139841040183374780386797511947873999937845711255840825015073293223588964272054951381277295711181038072094209538138748154365658109493727062708502790524621175676432101668673746132270577642127586586906976685601981784854825244108610493235017484555072404054574808203578194111603313121319685591440842886841207928254426716217416790830981635886175870737893211100316632205029280375671625833943365877870679098162558141684439935431582912687654064984589192622802808243200209478637233598405739622963078051899442561323747828337428309875515530554408454523187428284674896950833599104084772511031267444752341765893387693932117880764966749253909417281474789148228263793035161912875098149455616019607897120373174624621577130525559384165652031779799738661260292737219570896826255493761312112484998449433581043280149397289835771825382557297704805978130700618306074264753452700005781462813422810375880206970287418591108497641113564914448801846700096835777692660146274986459990140731017613150448048780749944639570177943316559239394989312767599072050907944638124079413582607281477912734556815900351301557156801518498767962463819450809480507551825322296099917302113107331804211555075044832927670158324911062330968613001122442157318792792564358341091838983675407872736259929216751382951323090634424438524313667343569397049021663690492201534208051424090560036745172701174409640474226889820590423608975031763560434473987559672684847054126325434364105556221038032676510430426112533520481783483789586275374145481816902675143085670595725305570484783422427251825230989295664731315168016738172736595088321919171892034583834960572895879604818191476806211853262459486282778634312979301955717396285638183810033559042930243932904049872219802679510224293428883792652812907579862026642869399624834498727789922564529697111689211538622298802031828820540609770498622813129370886125611902030740497498593763312571647504068746542255596758686516944659369872530555459736320918708725541655550435191717087421120961819859495074446894259593755700171523188338173646332886674174181041020040150346704873440005262890127114596966801970760729244481338635849643895211376925014959748624492036386253566073199260174425217636253470011702963583463889731294039426745369023287002062309340289030646470001376938708927536892139787374563065954048682006738525079534030623182102878782826061695970515584523131362935786609750477597351604393215966462837146455148456059095515796387366392930369667410174426722494633717819083367095796295389281310905367175552774525534654122929028473821218093561386867631745362994625751539302543894836283023956697692594309678487507646959767219463506274952477685945990461126080824474301184190789086200210992793142364727793372281553558204661372168299115529751710007444983058075706973976715534803010293539281791285226803213749971468331691963665120349497209844601908297657191785907465577363603362180917949452038456912651577585098774113681277211216171178249635617070315265668963322269272078405188819382036478261497311305238988861059682313604192384676179561039366867715691922782256337209359726903126887712465543565558109978293718925376203010823399854294523084545450274179474998468306946510157596097610290354427450274626584568479568643406074973500838584421108282150773453660447734598259503753526137779922795969317320169021820038745683434378608862190664859973261804837223268488580130587635735759004775378698052844719171012366231736425605951850180303217123343466153079783079975508074486140327309456434692983555211283839504526792931322189331099930555456223065082450302318290468810883845050041076982784323307650330202582161347230441103412920975566737737866598545393818402720574307723818893119335669358414553575426783280887576566865496226608641779116769721267779101258955726843994855638408596702858263997605487211921492651980662310054199717432396115830601150390094167747510910487153684519238937347973765806791604763889390529448353592920401655335123114882727642011895790315268657593388567465594224139024481861400008846894611430371020665598156857239804949031459421236024067237565680151633026337876292662306978670703041990040294621367515806822828536153601767859597506112644816201940544606390743804079139258011627501411754344604921595417824744898678419275299198521320710603812646199373590763795772857885815307558908102460667504327693978756336364569586092321709549698430652556724103819006586807457853441262848197895181697205145784577773441388540291669547704289545625249933692422430307518001078996549544067475979148980098527075835222842311469409457354245182216816009659123444526476724732756642320755314265014154776916016822482322726654847345198828470565834310530221801028004484210090348756892607238195609310828342528471106914973990513383650274536051174468657182306327240714192961150911372892620564306871827604638485314600609155172430102243223024276896018494932826960724708924221284874111815245422612270891447612534137544342191386582519977231558840218535321719214802743783757916846644743405243969130967579745161168092339678269301929630787633464497152563468106568889182116528599220522190729156270664035157695920831279218763613376822034735547732617167193562915720827436878040703937723550734837173995209553974255868340662448860159620868433717273088793388195979016231984579356495283441037100199798213920772332781467312001196223207744514269009176743230677539560479588291385963473786456114075130110051374598669196390190779017626821189430919405919475777885760309770251918873412412297507869801537724264354055617972675079781518019519970091310950712749754701398285123314433597909584689822146100224580203799988604174225465239460125924642595781435511725938740850907955672882037547099429475864845711140288337849112616021007061785336491726327697443091492417001979003082252801656010430881834016663710758620535744829956369694437915543790284627641131853934940748234647074903127180155003997605604168626306057139719825916878977111757866955844334852018679734597253173944167063941165158060192142943979023486845224087870237972225792344486162186908202349040909775147107474521083256072982343174269725323338427169272849161993003905583112478013942037994821832467094088697448531410549308744337217197167249771646143433201693059901506870181120896910367480433998455139262787892071279275592081257410692085666326799485912297115373466702463324696337267022546619851515394743356446511224587842658197585868415339318209429751247897505470084773499802134861922356396703651780287036277766474180332942749272816916731708183790891278573861967331577711574317028437240829796464378246568207814003899571199129188363844876975945258241775857540943317822562753593756580274964109204708633964439735955936256310476267873055813146912721706841993033442650948269476722571776527140237279903477419102138291164821208669831705224824777750426102109386174883824738874765939055367340346513317711686108057401734797881734677833176615907091810612126950581834120240531378473024400950870766498226045945647796507585808367939859920737859920851186049624949731910796064735511314336504309660986801370800663215399378351441742852160878400422943747996241927401160407652360463289676692748320696833559968933675281394753243513593944284439350941465454863589828965964618601336084175012269367913823762911373456096024918889734835044180515569171220598534255407672400102929531237395519061161880819704672024325442491459091321958923275215051967435052769572005134890751104045609331566386830639743336839590027608232276036752530943483249406797110369856733129881959016351520444696973387481525312623325700411812057409510280659588511434492116034477701186034058250184109158243074756750514041294481061911918973943705744708914787531332918105059815723530608871307068373917464585095656073582843390636036588708588118453994335133559982828204837083814665823823572078759915819030150160480366137044560869197697906124106884470368399723481318034358520509377162087582594382956759436686841281150820576768259902504423681387672166806461098039386800707913043392707924470215949394127485015744794038226517102986365145660272296767383722463462658438409143143476962472570054402601840012412356291138717157435040794446768964833177812113929215395710958773065353232492260412029004868234549144020550170696336611870805919748170773705445739109539253099679422613941902303704676605176397440165173477182381688903535561109108223142614282837934389739415007721839296284254979503651805318065104032363863792831567516845152680622786901090583052601055012955095931378527870535036099887824083225269808571012359057712001607210882618361066017612048295261156471051090291552428320119992265712865397917805262186956854305304034052040781222656238598062708411720217293891878599169916878390265651559496700488588936240671007302826845359874130227385375644245514543670289673239010868108967318389025811448868202933899753252546495562535575413285317278141376155176092303290790898087556216834540278100327371851114382895080531164276475655581116891210516373638544737465829669953384118738169348316021867623719773461882893115253386852571339190942157078618051355504801694537672508417104495426578463030546228459501790148467434173979097013801612908204386621370764069885576145632350313535196489587700849986922826444942574413506389024538126747411955120371188525828674168207476405344496741493053087332223934357782913449169795432822009421551492766671499050184160249598761339902456496324492281636124751835985545287894659025178605279953703437175045041234427209950595580390077183433193424550190818164445190514753489150293198098741413954845388496023839787431936148713944054989220734063249715159081320214844079910955478684996376678108391220770571355008392802194833256305502158181896247499084742328466997094416397542756042996776521663887481795280154054181242411195262407762935090644635263440664721188705388622032236013021069443727344491096104448645497772372182969392427354866570278679719474562045432094180652595272808306230316543174104342863479267842807513706135950064687523064197904444257930671515377545319015062013928921335296192565436756375003334253370052799019481747625936160241911413360072644398483174802944640747882100188529527133292183320093474122379274580725166610162141111419941187669814594046442180500790884258447023702910886520686337042176729424324315267155588586264913266961628958861721720258991459998419378420668299989913881380483276392367743221014236886157289504495433586078602227128461666930509783709748227942189449557255525750846981950276122685112533072455068467505226092687200624784181199894784326739444439666118836438307103904504316351546717971008487823569350091376740144238773396133175276306515467780264039152533428205114050287046822171049010927203970726408730464998041179004378672559456974815266611110851418147762919339487271612166334312135310935168933721853809336286559579640628360566101529393033204692750899828505573530502619529149148285962393008054812907946752272861804434693410585042096416734743404458264921261121066893863167090364981715990281812907437918393086372072775821995922919395642697428499427991796787604209228051217959129236715255760040288554993339969575664792468562063987838243334926367967922403978441967512894980160875920598227304214708886287008664373669607918982559130150322288244019297273579294173592407530450282958536885183734451709398302748694832826587573852572940121930325664662618566679624188278821093763649362597001913725802446792680312699805858031569349198496046394618741634943101776632805740902519768903677529481927144547444563325144784556833162097923929870579792878201405643019844360841028301272111160451205277769070967008176585308301557042422872198631613316891204129499742485930828727169265477491896965884621671620437285993821706543199960334288577737860069213449269484888933599348194757394835514384702193707696357887938771606806107095700494578689151484105082247652152604985241651351693294279351744958898014560920805860864274473877570159862705315535957341007682898695044863681057256243148397017564555875905506549128566317149431428621486716447335495934469070313197800046104965730329521632023852442383044564762953316921551313018984409602578978657293684596229052291262139272563826719995276652286519139271803553397786487503855949242036996107246438431405873742968030611865935692502349980445290304437364868119521903737692572058442523635841247739526822340010157900980771014713131012759802379953567122486832927588233168155046555886455400819647897304887668570456859644546417241641389468668995786870176930771622640762621882499499824296506346960845093484282467402980763256270347906052493048564765462547212638485181732080282972668820777842463608418782163710760541969423568747343023059830862845029210984331914702979727529818024712058710844738674981101444888721488264443006917108091090610901893186055523225072604379472613872292005559415627250402007059175857056113236495362432624725464070975499098050204957567819251039629055520073433945570624060379014977909499815183898690059690706578019558948134478592989896577720788719307190050467525986923075584373692625858526611918195593839133086525113230367420791324386898716786398455821556112109083063042746514132588963389087737314106578998783318198416603458469927068205444719397491519540086296220776769703701112716361454070863372847192625476949420836539813250548014714288433307149440816018460110342333035565545219997042507136029366387008004718754394154652513685213515458695859932418454203890183355579449490586564170619825155436978821074497940565776094631922562385855302721938476635810575503659900201125761973743207395694431974065491480535696162746038449636991392718185378224027543506295877822338582911273626880444804996566334718269174672891853403438341905794207793689013279199740958704760931935127462296489507847136744098439545593153366473571600748274496248365268411843817914736164110951368102449463544700544582195435954452653450721228774472874004100360311970551566040592741260558480803937986440995858394167240404793410383563191475415825850511439588976517659479603009709840566206295953746785563791694383345443358841555484592758132703948707932819108078522171736680672888246528849793907971698367584158284302895406080119921720785882772416332964942558708043531279770383111148227792986608468302982105888410741059253671032277353356055965367127864305053202917217016272451189542955485195819862221209214784506720385552031333656298771020863884983149224753376010674756661166402205173755955341294234190608125175322901093584985138590997732217779001308869395819146751803651056119439867806525876967519758457732078006935330632446423030177734935079091089095686836085621220668518721562455502899023909783842111473071977081796139380125552202755829208359531347254889651971942834537304768764999616720190580051300659764250467719521426596942576945453037592784118329994623911661576604449157257922119550998150272525206708713978266904494477496799583255821809894806762942700017252887292676978235595993946104169139869140032614899641616680080335584519514597819435198899824749995980474818253242446876121901278637217295749530344604790322812467011898693493876713545586828339944419298729667798529953230419236523809694982741710098990048710211484825897904010901409152394990077789447185251227828029451826053291050044067359343736188243183906588931385940962521256997960024030224128828184868483011160877773262066910855960311294070066357630904647463405897308561870923922533564819962388927288976765230549685324951654416911088089662611987561656256838826643954053985571797798560159147514945339087420164794162119888323266004435844187903007241663498286238351347588079366605606394567443652804854338564566383885215893019190198663584642684047331540114995028369212484592475897623142724929349573038607302100100623820120394848111849426343584393151709368674014462048718401384165830908395108130267265046352713675421510083627309381225125276936001999979413383828090220437859025432717583773824530218883952368699168544222997627887230100582357557269828240416230289514515909190677640205077668094506388074646790633722445069247446693773611776537543618607033945853024454413742097182077403880043904111453515914822970283374742759927354533985697387533089448410646455829200662929057241158394447654801990315993520293184950584691749286728265081939666450765197695937476062787841386935398393646856601772642214203240763328720397192030866026537140399577137028643983726048283139845963380085730944712125901936345335799383764485442835411358637546776471575804653920918041447647972442464885090284168573018221030537734659510857217662065856573136027952366550588911969119661981038059810863329860049923197955102824002211409697709607572904194372735026571211083625730290797079570810276997134665892654198565112131656385243858809114642408572714383729374228332878727970452493657912390983851854909547793981017739997315477109232740655818420090977882731890970441407033138959104161945410983249059795812726534286061852915546430259423442092503726105989666372677366698427508806046769214760351936507468718873813775734752748002821472564927172692004373357976413792897036674510460649878488572873469368424969803485237621733571244679025563438605384059175180166352739109814856173838957165692330096007907197180390708470575072285175972418186323824642629505665549155156315409301970652913005244941123414972436741707061718076421438054892862006301289806227211016780076224708759878144401020565401423642647394677198615063648174920392009115874242047266097205217768221457563742722058143693217392561510608072487145662131939762145014570516613539012614087364410707210399245927883348890974484960192398110152850511168438291262150200458569116317152284465122802481646827485294569576991101252308704555722386104036642295069216803396379249335112914339738194405286731151462419138612701217421427209275429731968692472094234430911326658069839263617378551118172162361222291960819547350345681456878350999609844005811197084060419476637622438001468522867815259424784660074700071753255927476219315248226232873915981103558913472034622314327299628882489758887778665454697615940690116641475627872318788409460996307920973360603045249784141863898334534650200918974721962933638560594487008310934474798354391179253860216224067694266021196956933157754992091701947899081183678248940238819017343435028025487936441279786039349034807850631408706478274517337933084018534139853965930604556166416929860158628884576893413904718635991940657785068230663829883491295994094756522331195823152984246497901554171920329366271119070434929739817806948997604335143556275516494180743807696089628917338799857109272604848075598651555267021487672944805389053134809329045534548834781463362626908731000803217978357305717356445848184223460048384235348846316999996007932160175836145562503548348816194968971363866297380925302055359422615234085910942410174878650132185951811150433462230741655356974245759140605376180615689194898599107730731582887077670747519365213533895112245157533058200271693579228089386418509711027604990656880740771229920788975037260158001009491348789893017013692966956344982037353466023386091210746613952976000915707650307635782732579146343856197633601941509511160641745330853413173608281276460212687006961631622741544144872716552437527021669263668802896231428146625458597374554156756135925098889174914578717297615167188336127675534300924453553085161006947248442093967288590014116083623754579908858387232634206146072881504113724557915000551760961086956244906215976016400914178739176330942132291275206005438094164851506260836822071829658179112268121633964287958941051231601665358925697549939480039400510564948843249499112455006191164832943588994792988741290389473927783866712760184805018778671980466195227541021263832786768870697235861969021832555221419227302671889406132906540366274494106882413874459692273084637155122106345312147330559307202993718766550440265608451130888966301412851747542996861677997408177042238924427236038342312386285614093116577959239414707107845226611603684560737488244145501591881279688768695902431019809022698507950028823389659763386054094682721197610372079096476307881778425230113545223661413223695750832203783128783563128950717908110563778209355424688004014976916986440428623041198736367245926802304171176189457354951779540481573530058738377545927175381264768763679559011070952989930948855416119532560526109482348237684431823861425176281891646980310121746077345428150881403672149237496448216599597384950076618983677260383724852491927399407071580667546704790053912677753730902795317938290727863675571133543022084857162972234825190347814429640011800498013090407331009554638890237934286196956692849050985611272259690246186188430206160681144469635231974959653652662995350200720430203632702281840463400630279151316797983750812358221209905578280930439970572215044815822951701612755439681215722711347917324243826461526745350782558229618076853841374445704399301207193912320714753538756645459594910342840633211596322724096375248055463453153321464639159714458668156278910165633627796143610356948932729030627672423655321452824765408365290601979665039993414180724106297828750821690005872713359507993050127144586126737373025840779632185620077923412166743111686555362049052682925337333283321334459127357095237481481731121834491830737779554803172651247532223472958297628259645045608040869594551567036933452357064895399064056911900808532969055505583575884485582648867549571494078095385680382803102509083374950050787051251008962163684818621898299028449757727399571714675093245623083958512984653061224169938496272823844601823148499181673585833071422653953372845930879269490280076480952890062646775588852189283993077010445923031293805613721642792159984188925873152268033904086048122711877013461942700606024492236808108780140109986049265927542272858238468010108291018863041667538701638923963746566287701085656868849369657134265086834615166868098304556645717951424649912854038160428379893497970318960973619215211666550066963417540152903209507374691864973217558887017926004746097896814377201546003156695655796266322819486815500427403026559597078176357988325846659672576565608791635459751758871817364880696497101585258480106288479059951610307453324116983233016200697140561039371629331982889300559911396176921704674787984516045791996380927099214383573576269891557388835149469083555621215523795926230113366410332170202886753531903748003741627555254981911483321438864000218257182042496171529327273707439801557172358866868430694948033973519480711803596885577982436705561393687569708852153027702386246607535416772213055236999357247788539601241111544019909444204025655272070968175426303944294278046664320862918069206843473737429340145709070362947371712218525199408138680250388918217815386229966576810610328802518070157370903431903200710361331367114908979300095540533019979242399604715608323626651445910022216107029803716031016410472989964107845503182918201997792873027169785563419588603914776609957219962711915671235702444548977921014316666423619021713741825541846513370871249112894128614799324039048875662529585305923191713721832366970064555171130091568240517823208066617785690745102155500969545674203690633808027938326282169030294658819038817482585992225184810348261308920171704511558124182761857722840421971515564201959891411911903412378762355338458247882128445285201961494714799532448289790495687545377942974366189618772800793589178000348760274274683441475541388668058940337335154726357854004246642156419500281775025558687051439163094262210171318988437013216653728525657943224377083455915013721949875431566746010350699782224844042399686830271385723093502723838275556620501821235094264500540816167644267075717555861392899925263221139882713490626346923485966459764695446792216581757100260700675185154931802599060252605310488656430158994048640059422271717950692964578094489290613828334642519418978015990515639671190260291047380945929661056999431106510556939894481716617403638895830469783871824382538062999364535466355025167224083813118243297711512796506526537989956643645664796775318988961654255822560020060769066001242183918974356872239111885787656094401101614672103813284785605359133404174944353218441259962154149112344838845173135638011673937804291238894672666988661150192837384840563793355628632798909445790284986412644511115643278856717400504805631044835621284876051716290033234976383369451058177885892535018188937817268630043003013651598131857856317889358242554985614576986790938274259470435374066297070875444346870688375790833789221027945029600840169232701137027522619774155784591208408428246463042067882714585694395410003609265201700915273923964250054737888690650858265579265772612965287674410555754470677507401856597724318186349526939351017402383168002877691210843288214656225890375244056957746147594333867533654739641835626291108062971723141381419445854304695441148255051269789218856522651185547263952533178569234800747894767495794247171835896468225635154297843015906299668403903141614734670018683691926329373191740856134540788419638378251714394114613226287461901074855118431865783364561831683191842992317029672824223196938023274586386871161284627146057848665341337848667951449551942047395995696090313400410360783408293497642769431905816509096428798327095904353697556182607400436516477652311794395291699297210984876726705873888061515275833272329712284697541266059829517362952245408361733552876686788164424237350866100365184614993205571560890867760811070600290349664362978635157413088329736710292520606523443084018123940223774931101493570526579510802633201077741465151192573583162236024489430789424865679173253746169599495825663884145871021757825683000122434836467950262876666656368029559726246662641312164964247220143139258081705417690522713942236992345360506139864928101237054529706884753179652223118631358349740177723531870791809088568337906108353134223559802906575452076776038397555050733683075946160665702562858953746048691891389650659498503623060144643856691096636883517068111575517214910879468257068873575166371592999391207214732103969256694634869688196387172225808329528983510748054258004351356164499795792499638653107510101209111997036222624160843870824628497234722002378315972852626703633467858258317406000558040963650763943260289891617557702103188925138635195050992165311402341547927998824521663835279116194258246525444024968926378517746171003516969191429045730937279260651705503348945363718481504130759660127803572920069597893750021288204468823338754168176608138715626710372511553572902354311828012547223449592194073533211024554784749161844447912215439131201756874424988261695811928758724192682516376213242351691072050604561130640493958546394442694246793574891993254365086711670656483886412936350923821035528268679663213751841887960442145408064477376388458570249798653270087015595063750364857662562884264694562859670782785755321106989117465256786569729173554117108283435397406677917017872228938803996916478298696242771614262697570746739946035703387579213046535281287622046935194941492959260341645066546228231872603144598952173026036277837224949251627096085512599258409641142900350659921648063341273378861515874426280269348482085109772302454345779760055560377147420329166051802146563848942897093964579972154311558957743934620562985834331593267822676301276708105389110884384715125317488700451099030852179146658982327937145275218123748951534449908403075903838960778994386184737014561455524926760109102329155882709666262167300775848737756303699228313645600557890001766772586191461930334777204054436057298918771747536045340290615945993546264117895114351656226547587000494788027213552896938427269734734179384670452434971215659731204414548855924419439464700630891660233553872857075047031717395027421762098368870598592621243855127013151388381498330345001177504925246304334610427744461756615075790113073186783547802062974055864642390296477681025959190256223938631916806641636858671630544849283676293616743169995358136482478944146379225394734222429744847655391335299352978480980583360376910848919736495810377191910076957187961020983616067488292394592503336589871753988855166815259379405646376343565995945153997501827184876462581348397394544808815541042550234344009374445218613730328906815367854247832673473325960757106772825917188479486552039648878787171023238674030562108876260845782928985794555177664147778672035254386005055640785647824008299701193233900710557626183146711249789225045305229801587537801621277346599484059107857453586215329869147024336947061515259759449958285282164822382636259109787337011405047252613278713405235358779750523768458458679016206789873507976852983027312874341773401280644170361491264625024398396726926949031358772949067715009464569408520252239254539483262689584249578296630388340988357721391976822023543238419512129136399611067029259044243246046970896241214060340634122130533594071975966035760689964931634261914924092478436536905778045410811151069472290119708456620544757186093966870367393988130492986528638946047266685613764125463960604483298389416489454862315388150657960056555794554470472201363878688477016385646485304427370343580413774201603242063597987738152502026855675245412239927388489072559948750753253796125209002994191484242971500287000817651062954003584032055728224806895014542407552685571979027656240861999605756742980336580540537672497014428978448189817046223314866272859705930160161771346089960449397246134497763661453461620398192424336883447187043470448088884705072884818175919044588535177296670365808190515423187099853434505065232032095155592321634818923475554078919861812931476960641956746227116014808484548665718858973477889656856481876822051404923949595445337883357252147185860265259841649503218113813681060916633373477979703623359299724413853146855852502026245765792223276905791881263030210535420150069412827460173242546698357237352288639501413719272735416573979088501715771489712858334680398208393440629829308057345169392966122545345208524861525281937737638737650962085078841803969241337318322659291874737259077924718367106768715819289500478743455894798939990605775090489238188534736067725995188535803812389022313775315929625665176472489336675245035665368734252132642377512311019346129422349581430311994795533939723699610870101353974453566606105905680947225634641300926448558741820872576357704031960697778176659803768597963319881959911852527744345341110138271286716084044254503421051122250631217588044524312451622944511139922562052905853432998251531733555606569469610449944705401404891527316111946784847632324941796126962661356128598254231960403208254698781810687441640634602444995439275046533729910837716259100317968377940995882533490682645654230405968398633059875139343177902879274570603658093579252551769997689458806240739961842968291461975402444681874743141274781771952066698123634528476378165151175616875624648762562678950844286267169514877301998880418108632616927366669788819528934582131229187929351044367889856719823362438837333813562511604766708145241809047023760763265875663617206224429774338154724642459206759551252341825595764166439876215605126176624309364184344340135697932389862075840466711540103177474512079606884162035162626867008630368917366382498973677625001752871015918925420431352633765127756360445567309195589311045289387106168659427112079266889031412163724357442513073068946248957968650568543675576303087400573727642100394844991115794473458147998497295925882196688808329914807946669368560244251242682468839087924993651860126824769274206376295018595086549944496945091924769745823364214026861028420377540985411367068209345069384689252541152256119283215111098449637964385842714015279342090176459909408885679489433529364049493287152214075049646604733465288882285237027257023633619999418447961374855995817123357881924215854765072840532312257584749305270393049548931018857026999575745989414103311820320034380899319809550832648297529856272358308012180162457058864963286800852804917466766733531378842846063255405762808919614978842136461705732309065651392986246380227325320634438237831765884925764148938263809222048012209539194467333614026148293922748949937235571174780359972950130607234600789423951991784773789252883862643793866214690835294305253188188987634273635652638792032160441396040462618457290491346903883100002648929526823935819113211398633611057069629660797765849471136844047695273448074510126994262156353697315913121996977978371515877417159694532247572625064480529591487457445280510849708862927703320295246884347549023330873810587954479099479333121126661619246783536768058652567183458263804411741293682322764386909670295748904679808072929367548490961206345594567156204398909538153661050527224965736698827277430548765432957287035281344767912357665423335572768328067705606970701217504818267782629580984168784968173541924346870800930978028972855983482986749970797771674808928676205395245821857700608311089081201911007301097461160996901653471322608953168149810592927931776363063716867317751270942226819254439044569307443219473590055931657567765629506014188111049467364508165642271736164293757892415601881398849715128047756298004998842719173986298055209718331288833447977362631299039572614649167007026336824569907424047520682241826367718042423623007307595438427432014790150532804358699517339265675587547015769273685231865929254927177289896418658493924542312794233653765120378317154786038034675077056832327445524928617132083423344475523640229095026912624077922110811496867245557302279860781686921110399096483785671450292579229479709046304639977874431370941809794498943690122513398021300557301844961501420727093638612436275596121338053651938111313621714747516425909159002243053558394409835384393631622154775160611441222795996620034507186371988998310504565094214702782236460717179092160138214556825379503982758627448487796529344320488424344764438613925183825825760156731994232529012264715545993042028980704392788234458591796018386526049109514262131226913704899185692358185765537245398081082803034064701935426038972526199479278264168984879878197257216832589549882379862873345816872296735759338759554789832472317784027975490379361790432429364901185617824848045396657733393977220045218824831947837470743192383658333824689240715194138690223362527359004142442249471140080915961757675180593199144304572430769808397072937732174556737682751999953559123125208606672076250397890740120565340799313447835526146751664542942774497919329350334817331179133029708097672417938183678128575850844506202975849004767003158043677260373087352807060082099247760183102408430822943786377212087268278181135795668210752506933929767221386825319332670061040693975377802435357122186252543295463253328697157518391499753211635102042137946309400263225828076420046300337303036962879726311727399125447841435117556239847725641564948074101067951697180922353505733944740303586125588698045417430103264845217462332874995636733947245344215333369463581204239689562823178597383662614141293377428956577708579000991343199061770015427940904329118072335860889998603477932918317778735006181471318066102780668321869801699550436958901304006899952206817180184100471806580889701582320683231730082821465588707926618782483524290478856146342470653210938243508448496014387305016806927529131564841916615338551714319011088070447283749504578625229721258612231931507584716565702048821937625593644669738945694367873637906564405060555333138939893625999374185296642450603479771002917169292617631496104113978777523231684360936961516037629411828984853191981951464616349818471585233472576645567517642133555960018265943145972997493193200514309562863991600061224722810201676016839048520622564838479018717792784767782308729932327189995769172454031060693172927327550617201842635502669030893958429930882763758757761650275713970536480086934355002435937340361107603085036166271498036503865642591319383130566261738762956663021388943124624352991567675964741996859671067275140485672026676404887661793294103292000524746694028884727223596855542157454299326908470293951338438945226240130721167628636717121644376639965886007805775238300120535118094860498681324942852615669201409566313541039195269522176839983716578285313488143868264482854722688974644860921200179577201213753577686400842799181895737471630847645277005485626941186713784148301610978674530802357027522960569370094176604157335561239565072365548083388297964277156801570014495725903375967069774492627539053270432375450058396248198896427604876054325313913391562925882491456732084859162940830264293240354393600139313884523204637072854803290953302181904846758511292399676237233293479321953268298524622757859009125276258125988623701042670945717262083451480913974237703851626583906937197141488653010892324553196623925800477437634786830154425743139806675388632887464706428526786249716930140356894307570181788226731266715723967182183356468107812622948624985048755977603422460071244204565452305648213165609834096866982535549922883042691161354582335976028702024334586827372314417580741203115712413403141005295261212489510539221316903811911782351249889573269765613990674292481097956249478094686444501897323811406139302633169624056518467176208281889901043611509647079694162919163636649299759225824482104569125587629923740431041589685198837982242036849855040377711176462454122502025932084970889223145659827402154203076584100928934487587069046978023604836866309299437946543179293332395137509721839933865737532963521877281626961176640188123011577593831238022145581039410984739559620905121390725249054124561707401934372083204326033447758954162945504599369587376315918943395033564223761440402526700510973123930978460755348229275889683588960536634612183386598906200156500465375705069081947043620609679378161347087104426668314974376414404319346654353541450079195511717700668797027109893761960579042776645072825218349024285647827853617131716396432949501757331384759519090079372359683699453936210713545691353280950299123369118299836724400537184315380363672049860327584451340184676060240693263027602885905072615086151384602794436548505708488488566601597171938958937531855194043867550361675813829514295143648262687726263684367142189740397438878622154637764058758124949849546071679646396931001411186491344813688148588843234464624016093483515556094919213247942226572400690513625556690857928237986068614739380808777878357030061226675942762813419305542674001474922096268299434237968879661700251391439738616548273632865286676311183388517655947349051610051742052567978215430790826201799157022297299773740976360097273792661581516669478551961525876214788118060232097070240376831199608233438785193717186335370818674982505857775665226630096185501069132719756620952664934879532760346374729467469446424313051942820897169440550655305113069585732449142449562828913354828352148279976752704356108747237858941034799026994686426478887023753418735251808575107727474347160229112613830843342773166635235091166271576712520300322455030489870922346587446459191509077883940523887155548262148242107231453187604019704562076285860826809782288300453121732405467602451757289005788954399026532256206875533781794420958709081412085788435258550095873314911037521380987997723918366209156237812493696711505907819897162275241261815323287455524614962197584137640741280515384990528242048435421442803623465704743638980810564837272243525255056284451719395370095779889314933164162528210594188855175297716807358727234332459195401736819862802521140100896438407565351436797620435621149662351411082165336523356204307156714977327540045269714188662659972443883287019753120862125959940921843000137484711360370581140938672566945331505334745225301863221124660041928204683126959088347439205787749646109272628121058209875136516636652041242111170269040370229513102556054543196942516543082249553844561147228406138760185859777683007681897341460239972848555141256663098523042686481237970070471967431033520679974813729963580251947247939908014401687768889409682354774851135229927574564235732576104528064096380956408985018779976850778080249770931828502979613895508361288093148442909374701274280013221654434219249978009426712326441320772892916826335774934730190830728383542366042127103295107250975024281547584359234278403174595158200540348605245518876715193671072659298371720672998059963126889341805143406880861470804927885281064472125726455012063614650062232515969627564217654513477457276026868558484026121445854772128903873388958306575698123956785797863572993718165211747945470945439306278237113429510120581134246876452995166730451912022943463057762013738906808257943411957214692570556733887975166509699589489506521251524819149918101730639790326903028871374068467320625121591313931014909570955612444053502527100301068432997453714030114514181426380920925030373247488519385700460363546040799759363960856279911808897297789608136337577307464840878801066196752249962377586954799668526185419087484123775914461263009782405631835936933815627940558516155702312062698242847124499248943465459311355365899744827471526925250638007816300165311029165971533356054188717225750983048158254971451935110567939317310755354259203088624202538217436700492538707094370199323227705163769921506499821111904525146312895392333354690223729857095009436583678777429136329254989199808316352892558175266933956234704567163277646938302841303141333744341304436278678809893060482989604555024540192418658254318071276562602745423473022409066111475898641184699307573701275122802435034741556519614806963399510720012747753485241677517217124898222494014890135674559112694229361458788245746632045852121586859156049367556357501368004795625663053530318902322816736656973178661536011476561781957727647759568428749622735917085741704380487940465640493528588958970575633754986254319921546941869295094502389297628313425454999612901012598244552772163596319497615951343811071692448252666804930197526269218452928393310557721857346183302721919471478302878008369019318051275324954305443567468461615055607648613111877615925110139047880830985197423918742589003457078264479379208611927757837281344563519076364515332617109676688878680090852611421927120518675164811038071708894861108209269928790827178402123092051192710700504442848611774552245749954898990670059096329068277594322306095493982982457687799039162843984116583836204017910931401145597174866076969055140090904870351727008885164095994343206396111268205234368097289663324056264984145038988793929727828903147921602753318984586440836354699265168961101717122077729711009906471119665344063149081776028554914715067922747666246789604176898601059479639658116151324146008113787309097290923440347006730825795397004225487164572837578597667233794227840138866625363194217582514548523740815576010659898378472570417557593237413253650936392540407698723121149532819861107072891183236813755886795002484806710281331752327911577184973892613342225846398848217966683894745709433666104620405036087417044030440132910068927390914240356071728402583803600901356903713311418914750856491853454524573682963157305618537464748625229554408669228989691972199238765875475960029132913440170529040303922324364039923196194434943330819824078665613323401394935671185941720329970689791680456437957979691150268872285053467587720434969341766466751575961332505211264411422377116734380158930522792426712281521661624686185011818222228658168492216115445174145643750068245060731149158533698129773193695228188130693365494736427388017742914515581112887117362630936825793819592339974811902885289538501803858349384143775791473634652503234504517294805196931462904016890234459672959456369129718108623203968613422005179326753607818188542276851982670214640537401092397179646279444621813705789650950457051102291891291566568549567997117822528533915153118515683867086695364116266612945915499384569286945954542351892197703712104120222508084249137897947101991517839634142100913523969434107277172395257661231475678361373882449866530833943945776683295409082754984770407872165737941131889699058186674391786138965823518378380192555668445422396214786140865093951585549446080683835641973689948126690283417924817045192776703022375032614509152110851153899655929915510884954561277789800697601185314767708956464300957322913052354380549031484285174902579988716987983105872522739551945506026507129617282274330317540871530358385612452994869188039010594518996791017709457919667775427564987206357078996394614459594926292227339718172040543864596740203555435591625244823892238380940310098089812729750187285878501005900529383109927690506662366400708247335250337541111139832786733645528676100315518185565446042830090535217913871941485378542553886753837764705765945572602443246407332852115594232148660006013622959521784264531627989685296724625782320658493773439388288006832845475821717188379241230121726190902082208783556879233767590661612812555341563431274601398627883922265394626838896218783869560654541926905780764420304516969612886122803100963830407578298229726232071640233580945779575424819337575365915090724891261661580661797680657784234314428606892444249533359730713336602452841626714776099187290291786199769528658556020085021884909365399596450899062107454734826888970753691029823451112154065488662450502460762567419537142483885589681742303230090713818257411043089636728130639413597035602407866384491279774259122695782060061232372909138653459824983041197340749768446576936989160988157277223221528543167098777230643426353107122509064491654628849457808437824082155311341023516699528250057828241644100080965254136861121353756000625749153691751741045069119428858440399057425446323636513568001287267642376968209735706223949430977550188044464043988216814598786602013125186587620754950716371968376048827678280950234309537598111212708005347057183474964040769413947441815481657571177741730335961564956273225801534392279836710434838589875531616221695276432187986098106556545033951466678458497476672757512830782385222594488074781433402350859897405305918266504594227777402674308711781541345777133305456455709206872648861544763449272269322470389507019218085779132020037085958075212628062371041429373406296643199333317681277122565688458498227055150755570779335621420078929804848911029990265604547599190418934805063318737079474081661303489516908619392889202047573394993842231471870677272621789943714730410406093086355281682428594302782198716954804961274900352366892475566810268694992487579345839100427188858442238973672287994296185450679698187072870540298560313359670616272610567141150277481752423251723469694249760045614540295690183975945333766915755061403125939162175896753560923168477063383237648774674291398486978214798694292135704284058791652181163177325313945339442231711463017490991224246122797904115009516950537892101561368162571355289935643741862103477212886515652230073876517788524195929876301775147587288899275325105609850413081876228442468528227434573251553085737662109317799804322211970468457872196782141394364266710859901918812685266364780949326723790332677064170068945620883563339366364227351653994127023687910731888663401449596669108943827109899616551559709412771270885198303834074409047857981083319321291123253525950173856844715874915563339651208869174608502308957655100231488163228953643876739624152825542888759219106006603893736503626468204262355676535361140938669458527202282331562668263246154034859063673177315458807588353815128710134078716332368316904155066912460266313492149951538169718645929235077664083350303439263049622590430268774327732870579195601068757721683573865454539308351796904599154448405294081523582490698127599370047369534161121644637565413118377794969778598777110350078579009067996684390928013302772897516816544356185390718333572594863525685854439560498853734140813689699840917225159956889991881147118756386218999525774283465004000842663721432698052030538658019361343155009526934347685756200296877927740581129765396774026720770427264746360793227262121871901821029551369214186111613057895740819691445737254928486099018411561928740418244228650144932283589435289784318869341895256736629284182251594865677012639797839403446699393090766633053452040375139062217584221675184678158778594987849026819857308706310093683033679448870610352078108229778290977101849877958418553730306056883503991780488118536395192639146579969291049557044326569636075001261748916271643230009857826771468084947367194901322025655493121474186385632396713994746801694053626789109124987156721613397723135859630397620161217043214027772691326356320423527768093931307595421779726539697538918059015542374353603755693580309691583926366118652545408871065496555663793602660741764358183182685297830542067396195626353557205434426253884672041948970678920442613053214285325516298441555549937729618897771217120501579063083686212197306964211260802424437004420138253400269715812783228711786093507717907064673838479105515118126799390249089084783245821254447099757320078044964420575130502860069438508468321294870983627381982559879139251056559334661465434505490905282063710001843214272995209335927154508210700156912295836737625230053513086291537238691143214089513165811790711431056291638104057442889831489589557980429967840636894167729130739373254245552226283467379435552801872183544095849541137194400830063213084136163016928821267104346449388803436034697660136053726713033418359988718388894489318622893217121538445748481444347754404508578755490147863775913066516105387622662950020793588221902385563107605381090343527697956551392965690247058380187935408876775976187233367607858570683485431021353707016780574409266694102298288473974243252713951071074794183365461971347886776293494627971721343122251936888276115457493546008914449101713724859939794687958709513006578269171532486087825373731206875867854384568873168041656744186428545316351799359426741510228326350351510991308481729614374893802257074231100428040528509453499245383954160729889642153071359382933991146128379351326240420869655551570794358951859582572885454049781290327435626328461331064683673568461848344079504018368029921191868029577196540708724317373244396018906226138137144011030088472148401115004048806178148299101175983998579641235281213994470718210928539046215002914573675025258875957659891550854672434796964122518251266844954206791246119415190728519743696669496393393916001598569269225636001243075446509177828257837279340522131956682357084780959605893349725819095396704138763095714862468805367160651650362464404032496249348389390526456182468696863849134850512255208899273995918218772174608014298138609333635185807814410858350548412283095140344113718040698637544544921752183538806186951684222912541793716769622257160361050358042989626041901551621769712197405453579168919819664440531656253570529823253159390214351891596589924480191610927006746743128206944834904870649721152296911848501062642318784037956586329573611299464256625632696660389067154724885644176056593396469813069868358427236600854106253245381789044583619937584840710214934221137976061090918712991302591310250262994695280865349612631146302229543827290432177409332947846831415482116212939052147994961048956811491003493404841881126075522741965553537158147780442598617238108613148230044846288466612837665090613680222505614907821272931842961531710571499029153197495211660858198714998093894261316480465935602543147400207066388155392451278141530538684159170916944885596775398030922347803578620295406873116834609733902999447302516646390998516377481757022187796731467472260909314426289373835728531461975216383221306682840705116135882303250384211163043959184783021333365034329065986392472364693995748361363492932913345724609321683901363983326552036237884762001673703905810715034822869502094588422633538624347497322522889339798037445277812585926766800776899506624654066905535396050326149683316672844046919176655491269909106088561583799875808110993010383285124215436281985026309218800568219334971963774358906251422842835357329218858518808205835090351188452157582630760247774585334741324576217338557968355816361772853863693918607355517644944725747874796777459127486189842995230972069187617368615686765551974378626298975164855440225450469262458731656221098669840717758301759716696279755670198733176666452606617367154433349529450588810225165678929201202387976783952396274365695459723812543568243911848394341983793440898747965270105354053410966854389841153711872956529444557850493074836633760039860652746021221662879496520684087525245558345723110363366028750122962766280781439967973419521985833085206603317028483636760976404554062105628763699934387537444523681435938493759739156510527826486045481297625066116141159070862248105243489281535884649574501038843768842174173327626343572355969586477430384942271489779153286135297858126913476433463922116626391159996970471597984435109295498389331171430211699907181511781469294015129790674411015432236376169772359215456561616568785792220496228381002934813931500549928595648360766762493599434181491024651722852736587647211308524825676080276663871180925097270159826682717020143599797186375666744850003524049928241584912018835550117560184812147851375527406281147807823118041750091395986991219210033729453414232283827110500430762511737191185290680771810553285411408874799852282293037882841908665426032528212182871618889539476383805072884881002354405679706305026777486445317226779525390742047183179947867627315147279510565112936966237278627512895929230542760355165709376923737978429223055724129468054584168750487609843990533421121862222675283977399183232226896462940345757408700382107638757738711329855072644946904501193862304423655263788003690243643596288838685520215376945508116590811988054809391432953173679090335428211053250665020265919251806764811013362401637138900881293027680373263909126621790406633548910960238192699363545947106971212158704278606520318240656972363622096981732962667799403048694212731327940728082238205805951656956184052260873633365817530381552828051296505512404954460511111497498152575736298074331395746930167475429413018947383994586824755642929654931178592792841424184449126282257306004182864828077717322690372471736172303895504642674894988469279023677219119441564803048266255436532643318719167657306144003891320222695128700048146604435241881136915687039810893274220742504214348914475018484408334991062490636191723082585257003365839358741562254628614490238305429168183003982918045001232530305784394888496371025044835957511075084569079867828484374303752862713460023915134627572951844030925070425706085811599186245491447148526650429857033387031311946372982703143814301808537498849861511446448654481508884624241890824744521225403357765131566002306458493278152659893371719190037152687563260493781279695427414854350517043557194630725735620560155008668842262867368336689554934678494909136047031934745787534885183291292296497716547795626830399517823367453795200608364295788142102704724931875226974501715611179395981811198871419595135626721929311539031545540557829636767742484383756766812135609752104017515283961133599517756978009560569037125688918032611675867567880333613807183770216739188474217073970537333264266088607929969701507426203819565993521807450595724624637469650714444979951261162780442810120089825105839243879767515729616038502267485506280268065411497616513968904002868613317102014889707886271173679071183625666392422854415116499638852606093757408031988194601179900147860391380737171105004799901368227193511729039643404463969871471621442910297459290403326159558769252253880750642104999134290211817764043708682455471411580521227360359513144227252790789734588055423964810788373133341092302236398588266700181219260194245754450787585549861918082872364139634572159686189130134373428796795444491885493645204391692843635595231973409987302195896927968843900234070673390428125356311270861702114596486311487826979122380306981468146568973573104475978802306273464936817949945206619224998474053154919810234209302837782752861715602312236765698595670741829288741656622027492237315243038829155461655309489147767238422247835973216411972965754356828166341759162340622708868851302867157319979473885451963406958377147413902364245874211765450473458828282950123301239042308938338422526555206842707830197975394748602516543942471864278341096009067011321955640757294196226493035338997558577406433267843039532624786040022867808864624411070735138373464888662023532026877724447742191889427498544968720753197335925485487192802149955579064997663902944164608824656269922293029848385087471949938362067938708897117585894436820672721602188625324269454783544406423515794787568577289014235413580792458306786815608729112582510699501974883133350069001609513240316979461572957205578994980248673045698519228638193794076675005538995330981558010195278347058518718178541768269494917462845978872380998842877413685886056264463304457034445088963333995897083425469821597180648411839352608309695358089431856786776685280359151420068695703299254134616465465356539906975201974130803018000898045058317408803528646260163318171458304834139912808752108546990937004399005141620016641370693893224533856038147545883500104737033856500275798495722004700466465861179183413811906833378225090601635136642306345757187631726080758343226032189384957001178951348992208949886887080562342221812030241646282919776436847116028578560430865882997634267739735511564859018290757752725981738150752674373220487123148015375648512493461032581926059842624919622235215122024965345316281477491509687756440341181676216911110774143721546095808685564135305901726537422809251372808531516035639704432664104491148198097615295423131918639420240217081637813305118918931619753474258283171302768404306969120181436467394008841700983506008014898768518598848510945011487286910011602879531739469884417403059913892244958892621947352295086975124708126724910703913915846565844064417401659159070704580599962569199652541353284953118250047836062516356236088671234039465745159467372053961840600475884570222365144520675257198376272894369509919854357861393708523159495404901146923911915757791969455469513203602497709809644742122596431234416433833583147224778711528360777525750241122986469833577091688748644656897079090155131776798127007602802601074828675605759623791960548958127046910664228290382797569126981070044751221920534703327489706830684545656838654686708250955202252830678862488679067161854403108699428275067947967597314357292205500430949722781080392181378493551034033994300903751906518793379149427354907197524192183105819030308619580445075877461893927774788833534462468025418078410723715230348015116597824238627806658010082524564880157211846903845668287401483221886096611832992198397637439315918466839563076918231767502351335938010988753698815431065033768272912550699320956008026332027810078125534902022553974935428515943427764514837480575124432770010838320255572722425916580815820885025571139133737889380564196956759323466439787117949094493786764756473646707876564967745600821404513522909309687074705006540918543624112872072768021036066637324816382380239490533188239282768975953805081283616594700180465114802009507924001523221759266043600897352155474042017137980217744534541214029438988028742991793992451193982195375037525702492063740903198798544861135286480468901884244383247565234800548036115743416919042821057123475713661293589713614500481566961096108340323162717987505510623164912387612838113446465109999219300764024496686088825845189155264027374654804848909384268340687198054188560230845448382921504016847876506082005742429249958443034951380286211861958534683189877145169969468139007502440534446117652409982777588563901795534437343473276435552866494237624125380152923351710384780878927585477929850442205219014908631807726760914616861781104760621413728754583223050175571028979690732704777423083739168080345133876636807510750497654665165850383269699912770228628146348448371159080262780885061359588319806389650068842936094052054888117277166529446066647004731772598124280490031590224957033943604949256148832878449359668075188844857764108969806176046143767909879000872361443170231730654115720177960240403367780985926052300038220239177693960429382354900283128203166708251005479835635621391301264127400142860924394725534802541324240001921792527089896347645865067516430410219117676745922608356222336906184609821751091491178304809384585987692187707702775857785268995857903910257479477861794926545604996648768755054691332135624993537851325086444051334945298275989604690772709782086667569826507873987790763840599263953606751807919063226757130597429850422229094186491927645608791549825246183156844386778012480638786979112878027192262231835286821340740274265819438978847763035367774926779815989420191277684255098685910264767568202280902375863599495292610514759521344339188980139520259881723277755752328175914377413485486683351228934551618104815231902585402070905746742458873593900094692527764624703362402238591964736992317010895550428649747215158744070744963207328544444845939459246361549608403989535147409486781769509258170121678415773799679519891248397721877435722021091389670737497565292255780986393428938602724499288251184841208241258031898850581813439639670328371738108379661595708652857994360870333028311223208872641561813733642541809356855400431725570782017228966538085477235668067077278067865977374795767511446735781592135854474033887046554133657685079101686886735804888991939667489475672784888266727277319224620963106636187031713604173985049453052256686371391710945601118640804792964460070474966448636494259081713331116560972503525398222029257686388133374155652724041383630203611561679486047084510113398302290916756815378398747636811374398059890124214571108228172776567310478343725314632338793579200396742393653456483551099184930410619675242037005895629959293224206159673642372002846643662986158065405406772925374623115633471624190028042279606660316764693626936358821395174536410360437534079180401070463369259217886226935108870812483679079445307387495665052929088870758086843017281136569023056656034658707700091508369244462850502631595839308528733189734261958799568215834704754223208701058268994238377839136434380306139850040766568622746830489196702350873097288624645646161596571729300970826470659735451512443037532433484964726685913696847381969805480201158556959996487996358968605472732772148075929871502362273622153492907777285427787510437300526937479933352229694571709574626912662783217022769811409016687083489316809221984770066785406378122022888171017283854203542073900779941444658358497385787625126398256152036014512793083016425831899505784716500156575694762807106923256130013699179996907579254620047189888008999549816617761503992532251475721615401659202712566583441572655613600124257226760188942209454869391575775228087137174702077882019886772935273359312015909365271931921176742076260573620683624994126903049269681856444216768918078119215023967634744925926647384095409993318284118030589394209613186506148843912456920588985327221992751285364193332793191170423680912719700995306052946296638722472974394209067789964262856655916633974680852131353096911872937992631102660266466422986521762509063665992491323593050390829372879506341678957459177909795400553210454817487575742149092722300024370332930655900347283351811280832379394546363845045040591601246154061887575858397984595592852683106299429980321422621838184904485228108493762533492820837560954256137619713059177588198383866016127141059456011094868238233360382693858056663992033279380968569150393249877531308292847264529949033689313514794011944999862070724916151575539062007813544161489871062123671305482911082207914610440336841860730730480608296187836300187110945156843130635217623046411991252172196494240344472952481862071836196851577784348522036158995828655992093553365211149367040981598064057532017327231860790426951983386427408694111123084185373842153211689281797999629434781984968627291429537680767122191239389541928842292616670914560239830529779763272984728969597018015960486668411406301715806576192248355081315604273953964360489447694164392220331940115226789003045351614371477950583425114799521893793542143244748000172473328675899348202999412370570168035390691271592417387201282912701940120506322376143619829278000920565340880007882909361592353774610986476078816983770460013647884907914911694412466929308933739192809791737135694666407986767709644386042607418174497651851565483895759123789710314641028271304007553472742327991002600677492099663387723579715982077371025509143986653455599233830576547897186690945010496157934826447629567066166792280075700023973554171135396558223650659392549068524230703954361481597831654510096270076513925342688826389215117540424350972879809584350024035875551258256644395508710370673864762731464204997357515463644573659708200871788838168318311597637635132625604076257412528958171676740312431661149325734620010405464822566406639783415952198382911807617072046324515876453772398321125353586335440449569680362361900535383703096121520798615273964764554594690855055675266346321654458748469304706053223639103747803748648701423848085347303860899224689192981243815768740253104242063195195952286030017897900939640151440803125666294088367391257102476180622566112292963700375403067088898022232616016720026768891287183981445066151148965511621867978699377860976489871170230661097259863653697792425930238329612431669703476376514704044147531645084448309622616823326203066018900304364477606532065917317580724738713938122302384167498225727478668952602170369002123310358184265515693204448877134296343299092141273163132538439462926368132867406983576051916417926829712094631723287855912677315955159066478276221549700492963530073067746880969131985586741150581472954310192754096486259025247439432235863357531970644354328013679631801471098019215163908207992423115185579147290455274938469249993063155696179520232097464956320042809442283221550689032105639778559992394905542169295562983764111904697281842463497231855880526903311222977675837706883023841526306612653980351298795115926931526952135776913165180131177919193271309691971399065357598459005353626865832196430833884973692169181494264266705497341798322965209278495122769792847741960600319585073699787725724206293241525457196926258207902693130378241392436531796006745438529218805132689483179433640477114730523998256857653215759966251000597051369985605402937043921640782002242450367083720554403365388970605220415528245174261769897536393195657402949087412528047820835638006302226116737973636282621653935569403648363158656495682837598311514540066957788376852869085489756888942557853717631183166088690860288269887540742164363755551063761571744505732983781679271163976918057344253181968884159046430975728445551769880296315533996461940146441313845252582976618166157789789587433202897612482990997886903502752335042161219374749871653308242549021874534157249910651376206460344209070483080497376098765219160753817275426464285603704315852149571006124423314313031340282717301042689358700519169857994207336170424626254482341812142692082222464405224217976145214707029631179038099022132950631922661602573148921129562140618031545695868592557296989038890193267826083273517078024502523623999709714390696530439559903323256558447810791969593068586040371427517686261130110227557740930270792521023241113740763126345431889729022753970399154065976865301970571178664824473876465059826219228086372224944425445586964843975678363770548395822333870019288170515432310094695660217279632656912587537888880846450239902382022536037483085842276399007224208466910344900168141677961951810161222156188872550401051575258593381210708407987770706895749726837343289247925500786704921235529353278319707606571855460409873132214226818990565026817606884282641798476714407479879797980180577905901014163692062133622859694042243458244499728833220393684918897710863235417782572326415552024891592994879838299612526618744675238285476845740512378928740446371010099858473087354457035397708443842642264645455695177349569029358855164504167666270294709022753562283864301786037078372728393024983939621467348381273512775188742801239375887925891757595146707513286649286928145953854266148753114412763259877735037993837548901760252489446437796861866797888825040772886421710685537527275102871261644257508320117109779480357135470896391898335349972916876339367609774711719651011908861087186164021795775063007861708321056407817573247863961532341526203604414239949264786971900487794740026448487985570718232308447849037471925223599714924909433803060613769406032471614212599990456303671121824921470237145484914983980541519538543632801936733746751391504519677608602496869046315619463782506784750757207079069080780838178588648826295521209747003602307426344573579737572959546071309511913335286033631909386677212179559337783066509137641957719687025499883504857049783355345778241204778974837519041126644697835164373786878592307908080351524454713101825672269786774894943227794007235330621821826394799840267000762354732077772264630196256450645717682628771144983939144313664879636149594891993592095832707249444346896673113170077407687195097234012815546354637950345185368027022197241317660208916248401568629887107580961548268390574556605445719450029558763847976903905655991529321811979183920985822399250703875771124420714923467628856011462037647815907998577700870709062844208721152885405145502178804575509050831574314344193658366938428122820241932997644162581080224350668364688329778227544150016829450648129606851018954973560151931295621356149408093490579573197394711598903957364054256306625688601995524523489624234307620327798208729431953735191664538134670511248603937977078159084297453450181386640305922246865649073143269566293233178571377914307417159364575224945895342487846996412535461661713608232841231646785396135925067097193530660221022061759151734164759070331696984882670969457633140503253746216096886012646468564402051239725741017386525829978794712764649054788508222259199697097745561477530791918101612520335546748848981905932174413191449768583829981676117781427958502082240820515729232514052206305153231105306925088214419984335642510374203080479492815013507888371375382276219279242955428102873829859860159377289502855021720287534399806426224032828874220129721602332168530159748581715339006647399296382883975607215479975162791544637529176296663915686173354467722285854033205437290525825112337688387120806564073646836661668339596555225699017820906016622670373564025018068502494215339803107190221872094746409037433457949064274964822236861955782253780040698372785747687781127665150442756339106193669414298407949791968870416631063431488303416150936671861110798770434420486577841466052049232938184863375561297767387371550672420335480541932380495672459046028920129107654823640086811717300783422406013323659355168874349044909276906020875960212301497678081293324109389324380110991256510028937973246211011971104146608866793829176429190528169978608080798071100643861438979378301593084228299189711836863365236933430218330893368699618924414476027109846637164365411665109126598380672368539937998893027705293750866388794767571353053615006165249544586467732642003988373888352979200548758353539303680111460442211188637868470991873669813370699693356499245742534744855536123180005440813602332110314525269131274309287630350872741102132231920969778894881915839587493322358918794920605334375240917189069317555216468366194033094983028855929400874479228491242581744457985146727866735173966382666799418145237251543896428048818519970540534858885193321659070969725348090588001524672307917735642093623540307808770303915401330345836944292290759922110778731339238401559757219838358517199377098671413903889764395523485334334463848967313658159196592250773475247580664583306355771889613871122227320853560937762688108907947789923147010313275829241052855209147072918311730617141198699040484188681410941452879911116683788492089800543903351072968547477112130400428730026133392519397974714134485629439956688982444813057100750305269151903150828051676394402062080420332642944266693705326094409443835664668265616775838979528319330437385789348380585529963769160529622558103392582642344417130146333081493949058447285934231851231434228245217424630948324484035665922309591849353041900005467749275690136320836647914292698841692437824776894315912659433965094417992206444927079828130254549489418562196076334861963706687838166911668160778556238393014263552315484534917188680968878951278298394526047709500295249393090358637095482338921573563639857891175961340236295216938487975758948623942220768865222701056147540181589805858202452606030977303084077225861527939935823329676176725332415004505420757548269931261407504627947090464432660562342023156007642862039599200436472207347463689711390491796156158506208034663283252813065586116269303557589282306357558348445731831230886795130683137766826367544097804503079030393739285365538374870840276014378500126060569751473511350769489777233833903044621199190025937974047918503279827219287064030952132691299914108449713568864584403197183181075692974236916381345370760680037431202855551547546289140926379570277723123471499354348541461164725508529114277943933310800562036465425981159070475021306938454704666158261384773054884157410914120595036666427091268887534941601087284446010696933762588220958925970793105083164703472551687603826556612415232915915101493421333095326623357346269063408191411855361754544532373006975437710367750463515543722426101886487275305687314688366570876940539754704779063486575162527433891915763494017134977387764420335072498629293883190593392119855716377469433909750629075756428703746461636350854944371782086325795903567801824255243857794359607803088152678225169889311025802052141025571671404541215439787508788536845570660449891715858484960891460574576759564893522573542965626948380620310566546404018727160419656016213050351535293564962671176518537376841306318094034698983209502638783396904408418709247570286573222297892679125799114383587380182653879257089795246787209902602953989120184633060328622566875296266029630944236519324765745069329006117432715733072326840240287193777438208447684680937602205230733389312025114787333791936971609486078851646649968055282011273601309092038912469499513129196144908015654719658437380993643633300155666935694553959406672972681289369073770077677523682532528238010811442607367798460380017788263275852447636166060677024859705808068896428243075698260003431109341407426694088308435221622643645204642854685969515685073826715857415027600385982433399848749873627283836877506887658828341634585438040633241779419644626023631817997608726485463720893217090187081343485969244084766267128574645573491308675431075146318188350602008784358805100936994922244960630008586540926993216215474623400018138395211182020484720946419123950883103718844983541096088052975273369542718748000266014174489574909738016274405578326630236956280698824743295554788339674766446446388246678998488214704971669523658568622415625241379203258108754313314900395611637662387844881628321383058067073224526768224036772676190559245185219404862206214574664991694195161456389096473177543767620948003508230852112715800178001029454648028164596150997500936313179400712751578762007733596846134767557473716976872630356339562672116920849613197967431595435150844769637170972035848520435999521319411409892562997766379880368267910421374134672887743700625375073708708435144670974215701848612078749292417775611176969227934456039117794134436310713437444910056002756410759686758682573277764742754318319457480554551667351606069592137176438692232562445912782483544656236782075892196597152773749948569982110970461884009518868860919537065656897171339674390523939611763814563500381839052605381750431677002203335123328943990819258358137540977232903541743277602057153119132358053403620481866444953326362236011489439040507875295704576857712522403678256966558893487184111905434221814202093611626839038201700634240924289114467588159475228746607110543937252336719499087892465111704273544151049319654532055893826543625039839276897655363340590776492111437181049944162537003611501468814367966717023292761247334185362324594436526185981066061736539861198766836330507349238806601162414432944322751443796342602427827432274695185413413692010605519458352738557358017852801228867530946268722958500804911548431977524803785047321782012269598291800577438172057006754891193661197358950931920851491265969783066345060407012892072754757632176984938808918330493306573695861627039431517608633813818178333941672534649039969432448942371688860956594415117600407840273494684089084374098594782627523101841191716931652602414535295268093967729292439230119288739394607843208105538250925760753395757116230985064654734579918945480081450699951400570035080670112685053612064274335058912586739407008122898396495587851140464218563062812975561148810360943687330544358954448238745874996632680356461333781339747593915661928223370484384193618811859000436560984415344387204125290064542672691797841680379951581407326309945438724625400034624728849670501477572609100190089733046025660068749768837677938775974159486157539683792562528525476061946127244325882859494663082532025717856328780633459751903976822248359221788075265048152796691893729637303587607237560866058461590109637714441197813071696939448272286698525010881360534827775172323432638750103090489793041430574332628255393713937288557368327537716294697876438155543152967202629916875730465270682435714461649930008448058030138721739137757434827917817141521985723760376987006474578228739638781913310982518110922860241975906873229905778863598999879476135699327498201960371964074086373485558927835329146301500006604883875952630933551697301690431592613662956243202777183464274243663293810179819666289799623598034802614101800908714292912447738463219061343857517174924270777471712833025436563464329663112189605938477398640588364824348819577731489153106561473046589206842199087683388394642633675769669633265696371302508944031000702683003229947397279667570650475645167959314696695446548693942390562715740766067947189719117430427018301017634775525782260371462138759469230667262050118340973391591745918101232549029792194029269437033944692739520405223653872279101746589165534527753114558721535091954379280996168844105741929442521033917809325330181231552266385458173232628318299145489451077448882147955178116213254102690821865966859435593235343342653103748039173914857480978012745639407688530367646854087274124641897717890053013915587681189616226425830843096143016284560618110414586433390715793914155673864578077315857393501797665694500982756421237584133914672193817572572915709240289351183849494951436973057323831919408482053032817187615298632705751250709011991095936442459340912103450989276272171517435404910571371932323257751809146801922903634435870034491433740498560585434184208644423539155466036046882157644423131053499900291633553421281762847394782915099406771480183192739894306542877446005840216514345321216694840807417620031361054657153149479944271233038844712552435265285538795265708398033092465001458354534062542306136389363008267918655471672911878163237582749685046250236788143331439346508262171626853228966757257937582612904259704223796168067403643429375713741335101484743260106736766607501301786498060364055209666501654825046439387851936704834890584555794518270204276097350744655286085427459403820081063221810474040060638075324665547638970162818831017149863606730463077199996243647559983317580751756623110787226178971188679933758377479798367509217041455723547290230644476979550827227265126144177435625164985654399526408892442881938274364426844265723643843363212326799846775927320538245385608284193715678265221758076448849371596306893452728417230548736158361724136984931769646323269608894147145763898163522502912402225517087563906224783076964854469980028815417153941613484112749257987336971026806358319966129248986240295639616508495855313836519934724677652888193542281123651700493972773390010466567870692052870089094501919805744468264284727836464443494155605972757760336065856748441639306338368250153905559702898511788355835752194660227409220800068276889827950176118639634462480485776877237629932394450719377754897965082324007731463627053839416260396201832149102939150234100278374921842712226496892811897455054046861475087047548658295208952400277892409510723239743195945296456224263176935363163314610614715120051593360128978214211074456620842948967870887664839764019819112666492189695651558579108809402265243900200357803977008501867614158112300097725289683554669962183805576911585226171445201291307759352834563443647011474884294926340968401865054291233914256888677891967985303422739884085344631057409886443744004450048830360352288428628585395779823986468395115916467818151141876475390917255536862002690169133432802638146512588464086777783116461208109647282216160686847878704721222129226524837865200907780977920264902171611165953318077141738643783721168729178866654365362466765957782221782798760816708956460451611971524708920068625294225096495002558512470796114307680735685160619635069351074396398184417695545743502269931022347397061295675619233987794094845967981790777842099729325202854761368383156562471730640648299486150666175999318801205258095639830900114870878930441300312435329650337779380377451076538766400936404549084279761993800079976099246626840254813569732261691474037992408437354467246563978061541279967866197334535090209747646775627746271827847980439075068946743476386741914310995725317099648988946848371306672294190899517691826940205450317431800488979162476688153210443534576559872612837156028424323064558569295038398316382026387916793267810245357606960333087820758347412904060522557174653584339283320578819395928407392892658647981193290170500168046309555783515255698500290609811373026287809307169558938076476904492091806240222313514909193777229310612075913152838399900429006655386659442842420078818356097968314599459657407806987287455947323549067950115291988149437479498349023772191360259458267474259724958010898641315478862702851565471037466243250211932357685587869180310159767726499490004908135814315229002753861286012717322608777144101094168550054940958603616619807294879165562379689415415541370898287729567722799604231870210812446925780639244538321558537111873115327105001223289411699621677755246516404618338053448447210835028655565468014540495317194411559120154531466347655889417124229168048091776723209574507196208646706848331864694906313251829849191605986727538508460426768683069160634010594950277641384222686708471991468048755248384663732697044360052388600474657941543721951365898890037523835193179696352847510059993460906369065440352852412225960126378239449760499356561048212382714221806219771396938912562103804148295735509469447603895327297514074784478974485159313928067567462287523362842426883139369189691412411593675996785362828393218498715049252624562183824016210052108459584009711646666654282421787264427217880839258518346069982585713145722368261070846008638811257818252651453619754343028459751799692356147323243361979906684244347239249707551159837675799833313159540506615590789952125395268430684596983530200916492185988056174138694455166532243797062795390364578341732580020583258573919801393871707915659003127602166023325639495402359424918414276271597414667578650144146132736298720447324519527110852021513586408070989776339529653724224350314255287705679201139893835501507842563671496587082777619907143368870859089062186089585176844809784149655196956275252347154191274674878328549141092243642259304254024662780695248515332091012191067734744990659713383377347881450738325357500973341373452340201019025677888187669811467967181227165961383753832211279163652265650964951345562795502713418371937919736194601830754044810041488853549381498199251267815831550900085402131991550428865864375355709240143578774512592310205607593436078339416214238939188894369841394689236286224101453880083231462781150104876390978503749383262876744659583905039563580942442982381850962325843761053119121429352031691496487729589027019843715356427725326658619743768851174845819794058032383150556256395500714614925586235684701090492779650380252492745349506346509305453515870028578307856205092540393235836146740650730308016596951623006011475357858244806121524835239110636175888250527116793909486727030644186379308851484739614797153157086380544976028416231430978113273516063091603693453077917197029063002907528333516940594421518582564259954370559674875957736152922575273170265496466157924294919231716897072462836668393830110624844973344943072089980827624524046488790969168829582227828287603587179945447701823896568511394530870988362541426741368510468831578128642461230283208848912986443936828777766631763336900676257281750700509847669829484088867082204052759528756254621747970618044099481906448157092248374380720783250597537141753572916196898836799513394182592250485709052906696962244389170905403534685551198232529031771062031765688597977650053278448299270441139518762685024569851679777943999827491928316141485865512024565534878593713965268425557810906606105022675795360947852883566718243141021208750113599242164470675263340022110950198060366561627281603542226339882470377901315856721937038388453798987494515037099626635536334819026213264172685750873142456474701331844874968583073263698998064315299205862782110408169785348876000236754021930234329658018414823131003477423716077641266482191458663572786398196016759269093380046266871486310874864073894627275111957085622812767277261670818935077921935371157606720141167812292301028004368814154833653237048069416565393894020009100979695575629798269270232257815241031871110399405842864670591704733622109198943197363767756994788880743305981217710560995463867051049356392632872611296872055505890475603228471068482237273789735279726687314155490743301917185714390493603839549075681981509154740430435267216389987947123543046336706649321262909245040431240267848576049775295254143716628095246151269039103184466083475656350845621286884437885463508143932170187412907550050896030704350818876047304704469551249275597649503628398736726414034561747369842779459917911727637335704642103043493734192888089171680426435095849937085565650312719495561746742768859264129496671787459050257226487558275485074534908803105902726929830876280459252810697002175602240106212420861635765347595230976291003441852472481662408101104245046289581707866661179492680626960892586104242908338553080950477351766523084218849851978255095559472456754499054095204759654448053670345825875330629271003026104677242203936811680898476734549570532363419261126481936087434749659909524791048128708763045962477827132905552409435673318925808367277073116609715849226593781750969013045610938536070721017798242484823855406481962148476665170463697492132718559632604301240893760188147854771500417841854864458024096929461849438257006872494044822421927083122623443332838027903744884302671241573932521156701865332754744910236869163257697181404173426362487294342328633729622806884948070048711091733606965061355472347420968993216481936473530384048653498014143978303831418748892070194712496993256222263191969885943897088005118152882345025685628043641386097684601330737775421408963124195656712286141381918659198721621739144685413729894760526142086009909741766676463837430318706386385189437835587564986492513231617732203926470448574214801512817563602160944818863842577283851778768893639060604854893942316026398293038299950612226150265038852658482554009844262074134306695222216450229285331698112610574174050379546998656563537355290283809278607889705580202402171599296030324516735290386158958637306934890801696198349537763310823924869543348226731337065567506299929598940035984012243019528196054362914342376639568967446754590174775407367131610530857440359197376639452935423905360722789769322790625705046293650032239813942337506074131962007521182974305000996990529502458010352044783373351123250775214509023547372842397436059606539884407960508379484632157500161395989098794604450862726068485306513264333169705910751026402942419649533165207809729268463579246417537762499452180651623993200960312585620380244299282202668927168961194225807469889395173120806660427684133722238984464491945593592823584663242297738090256118646688783526861300839472356925127423601557556765814520325999121173382873296829860097905781230392903471497370228860577212315577316162161446803192821969629447600358975787027548060545914438799788812260914057815160147162707229028978616872121172591400341075542504396073761106161821669108234379458122724180018035781011189603504592318316503917085491468337555253333073241049422372030065116256050590766457790215208301852144717418559803868622278593931157260884356444656183102395933179366816523390306661979806608545045733131601845361309554825495936029422861380288842250645257837340056152336860994717421336341802843682252543764749948109119549880292148114060288951741077773399290929066017048282682431290909687811448692753218289390994918569016536645416583338306220713649767362313389427841257201491793377189139127651280148873776856391788905829906985783383403318888759686695988180648073326893879325412794677660924287931283822275791091089048029432850488226854474243922497305713697066362337303383543699593636482873591983573870729258536687673019615012874311745934914855837949111022726371790543462736406793937746045806875402499394048523161028094824563807797065540672300465829947587778438328783151621583248208590140686451056842890342453863026249279701531717651348636322390655158524149945045873736271040143564053512724702225750777288934632862882211884255912427182325497676187999603893954675088142796230307574722465682307975040696891655500493338625548812908384124284329401196326522717441289917273764745826675808177946352272264013513056419136672581138002115450783470724041292376264882083077095259997183803684036996313461459435829454904891047308896549890602553373429504069961000820898782599707333900880962290973196256639018244849395872673307846326396175412520710111242851543125488796373548582405401675700578543855666504861525630321422689296703531329192720261651547269076442109068462863957586476635836621514541240363515731881872099295816135694226981575057247430178224012915573121925683954474211383099201852980762788238543719968640394859560532601679011379761669740836276303075493945239861021524952210873756511274710969298504212431301908608800622024618301929918867034730046590857041725489700559480864101947140911599628838468983552814340210389212737540493154546572265498436915659516880086280117748471547875179549534234844602809861702506286986616618783301355760578334297933209901728828393144323744544078445106904497319102044483000828795867637945232068962218239149653791273049799295118751722281469481425737587240797694333923165273779322456394630863596809444672708184770419675946343186694373374424354311655817647137707268675851927160181898683119164155394357656537384173859265543674055277293141876862677557368637367189603038278150567954455546080947476657564949227466513756618758709489153592260087543897491101720007572332710538584201381301629920549911217159161793637248593645368452494519697110191335000475679332905473701654625105863555841546288062169692335629235394342717961113816922633556966437737715706797511265570083080631817221006773347065714022399452831287874334161931721186972929912614978122685420817243365732307625124918648584305106437359452395887538273313390869142191463400596039903804893804736482654602934689702570294426754920180851303857712053928697699857589298321371091238052390143224267472752710417344799812423716481058389486891941587918744681362114069280259681076748460552932882109939467717730344260902102083324443694013602005402217941858307058685298638116330941999473286401303213541145020741481305467751473584981855271496713596749387592397790863409400608098057211773071586042999664234233123343785094729656203407167151368050709770906064653636878405433984643695647889125010190626094152346888006551713721472084556534834323123364943837225840600990167975198451429628288947006257943038564085625018945780113698051536986089576725793321946709179234720741042163673979242638125342145745537263113764707992072350461948158028035875325151884772874271821857952140469553339620700156965954596768293008287533327639399046323406422364272989076239512494105737788931744581550683542923827718285449576153333755248744852428393590684971593350573117577619630209496262351302473980454958260834021257949516902758259037808273707710687894541650549773838256764750292769358854735452760541261989033992411365979633496153994523036994437563496717427638540237896602115951054747829465549231779849974333643489543234437091206258678941172654934269160926822835805731364823994802905804706525520607331461569579546609360265127358018042456809046461530566445132336166660568559779693715889904260985386135976306629719168584887558182247449785221167928564059269055614422569880662548716719379102552574227956213180758869514626950367335706247349053254440556054982460039672329672940114974197101139240341224164165183238257571632103797927322686517384381965540034365719552508386253558648892625885743126781439837606661577193988912754140915214113231351597695189614066365605583921641572408010533606655985557838380653936184109417550245019575189954358745724797293296927499984814019692358504741841769746402354677430101285302771977755200212124864061645609346245263930651761712840854103124002501357565173736064521819299011536585360712938974698220684855032097971933539159438928451341768335858934915701673160868733389604217128200557822383974142850479061122175819303930649916893225476414520223462009711977453850045734669770922385871752616726776956571544116801341030282485888815158892132009085986364797163599926541787752391331694719320900071660527321615563413712706626240573187535040923011382592228974628950618564362086383764227873464721722249169326952293628821905365931870145801792322398609252773080044060237816470143353179233327262100006248510827032751789720695101130873384382235907942287668616532754941781938936801980644466963509934975140296336456634754479155556545808231875703505595037600046352251263202400175019854170097036833905880940441187510948854634430166927258787634330273272753244676152633988859688092564138179204630835973163916731196972495504442683304096540427375487786534859853139299826688296198855171173659703203615957560892490633730814363151501886414861239772205783558995370246577111472593660518625574700663359853432812952392742277145695808648348579121343068690687812262458469916246403980894075356731272532743196651638243954525989768290825004488884265939212478364594722325616636029261082812621426309674212942340912919065836488695319417252922228879183404997261043093135821743148231128547987888370993939764197340174173834843239474272852375007559418660581245683313277540423505991962262787583875498192431225138227787746317055868747940186153558990723904909011044137266331166533769647732581081671986990113696771096654653469857701420979618981145625103926793934755196768918667266687698768007533426001272495225811289551896282982200411595480941486505400133892781180194988056451641263687492984861470403293094927510794481038262410543798409068968637508153034355977914760689110394426227096317131308218285621739778426355089486017222349821527824666103740280367573325941073820863400083724522790762902611560039684020756359023854825211493724466196884025165410709039373928452222748548313594942691975380863923403429591779413880440119363504816759908885676120996723636257639638246675651227691807908136730889565689616660834854133038831228335620758146858599651465195295756346994042974738363802364247689339533675081033609621103734629230345548031673194843711457619012864095773438293168901050565358112612140794836351691480345571117810053538074052845739859648242652717649668179894916233515588207084143239436677891555143778659598605236209872118029434541880863566899700292142353343664024049117306288823412615000418809133189433747699360623190357791195722220906109778197204569929074573238476811201581384014131893954643141056239748095827244188066583448133118804542879850544533487752831153751731922325262741645337440657117570509347091116253494840886862252857107862400530383199454128847892498625635751880514171064029032042458233576597082577199708853888965797617479016418783626809487648453716553884476730767446384082116910382223101434723604597037824188186267416059979065724057882266254140461842387217407949845313701288382879858711062586339041226601048469506170830488049790364947407404444602813946595009101285130226441165067355182959034301835293829471464444883728354038876754748761526399422214957684794395487996505382155408044560390073637017388331984569555645088387175956010054107272250910780356024117547527306511290824612134596527418696121961234620114549693466488425495571024526740129493859649690447371603016666050330602258829340687523355455473059704936247640063923747162867669127733099101026160316452583981895631059530823122575193648555818608719231254313692011811540449150058308780730672845910338192156697060738042168868621915498286665346754998515998287098634142503905097846164925443872630542581776603670741883550996089559705631063607876806121862666414023443540295962096951952876352391692366386409247977612402194182605086801050999048479181205997496381695347393283834906626928728342800214378324170855304759727602713258616200552866941787401161620108078818269737254952344897094653276124909410272968552756186956259033367809277650599079609584412524343367680305926348841871606979161084442133579871093639614366148239848356786628368417340918731414479246168700612552093561470144279730312584451929714330461041376786210884968330245349628703902127968270713314204370662140938973211687834984296436951340892025730280683272493832108185773391422891823817554715900029339076788449016729681210970784514925446764225483078351259008091739646895135143775260695581415088299548193059333925992453809101509320394933586762497776318012559985678846788377139571953558788025784324102843894882990604305596811647385084177628129259880406366777657213740080756954742237134710669328072906795916736289592690647168475686084551005217193734775484714243858135204856375858218293341095779876038046304226564964161979088110859911375579120742725930146491544871252196500793347431294216155413275235744583330591038562700550259093607085431726213900747048086049785345710642015237903629527766648363771416494812273973313532269223403257433403747572251841764057671242515613627406150245446654036711695071369833393423909548869750100970930499114006198203664157698279892601657704067171854073026759724476600767760425505769698354610225968024300287839993094813229239766322321504214776945701947220785667256153552368999496467906601922541204572934424482759144697001912250216416825795806239198846453046988801220042698564807946987595930423597882862208915488262093454810386418533793184241942043695380675981012561308041071963066089357240899789631384196848948455250628837394680450852954666116888426567478250298565475536906110691542591214674333014686720009388641867160199681778235022786291169237421974112775468886165140488959826258204602417544979226523289824771360760337721071592918464268579788429515940646534556687311910028889666590602475007919628848568441067698297223636178820156077079651904804114901963529419711117308160874805282377631365146417124502341942594387071271800412040392398926716348650748778691421528862639719024488292622670431590025789571273820591932110629158200058805245016017004999085227073510157785902396363026423437949106517951963615869820092529725873709322511853350522864568966308847367258278007049844157758180369799924458854003190774852567641156799987569324501651510559681269587087467417923713780597597364601278350228559123071566255714623574985554521034195492197167738598004373999774067582397437878516197357410228672833617598880920337399069698889988934966016927423463108982559116151044229861375194918842073736055743447242047693720727747041100784148228851457228591285696994350563722543089271106581016966597305177018936262265053639837541863522653315990694629953004109322944968083923043800134487018732322657028387385074890525942765088511388924077498090796373588223689001130348998517735008871585520465867395797551783178724006108647166138717969518211347318153383574016212986439859868308887061425862739052264318376628660304404925108718712226409330225984668718511385344254921259557530549608885506132186829989145793679785350014779856449241716841497206262332961155547119188152216336352562246805672081869461617860152210865234704199579919650390738736629006846788200454620736942338988090656189477994874586749031647292853430196507904537939175820744584666312120885183437761906907118115518275453592747373808101516091982233531812335325701742472337336731083853752455843045047134538967680430243078584823054595008207475984408425558983170840330813491613352325166152951399254131448712619443147011381177836693787554330095037733470870190907017082526900276429718551474749800804686417864139495456326121661992031400710468539473703632940749853242422849281517354404228193810010009002804298354316053405697812790414257371611590649490904386542122793334301626074612317425971263150286540115331143499480447937816851387300355283570642640488018869626222245453615628285609377936975013763003805153460097172597836039184493314946836531358968547085712106132085759376957750265335253898725917700357293986802611496724922781367343482344650968098453520727324750960661050217799379510540735687497911582464339332492077512638513878195189103969647736034104897396575381954968670230571822746123842420290805029649500282714233555905589276902973785764918524382080061713187815880584977168217951572690351830502406172702987036588487559378531873189870717523009105515909907309026164035329133346230544360250797159857840720232179568779124963376722507040571508661657275501093750727892305787190394878759819350360577401271773954079235389989536177699878035144536046056802994218072017510319725606397668915301925452927757439520385359385271471230941990783889808456350373206912512671253052544609598499432812959742186598815008009433088619247488407283240517028167176237630825054862880555386156646549792082003106552989032983387860029525856368032196121977776584287187707187177357507490208997412242372026034481872001524366161614387445824545847098623178745057465332007905716718583063839498646161615964376862401797763225412796226014537075445155075050739796415309941280943328895987028401057290888420660251250214337643091503438826475058212139356872707570134338211779477337810475892337710066876930375921633548405440518073731388815831952505190476904167645268780630212321483599707358690703511611529678375343222196958939719577712334434619386733647524568208911438603839412559547589355604400412264322648534232417870836681711584967888470030741511201546482522167505825674200925723803513027638805919719046286678867777635540978773052336965742599523127636682196787850373272963428566327773706022640065482928533914168493384948710856834095777387799506772149515930293220010681979219538858625959898850161654493354682191860025816109079172798662733289381662755206635484701919994865046801530974253081438833943335528408017781908278215372736072659911982037717235785697499636628037885056469370335057013931290388833454882998443088530520851902882280741775225700822110285350399213316049171913826409989441718931070115624376879968466842976459427045561567863594180625279912978898621739879086100897071185175505386559035638178211184876004260738062647714709271800452594903957881332672542116658654810323051904360227047531202176167806891095433678756498812987936956245633854002087363946252686857050179882872905833287364775330827020477461263867840782297461244892884710281500899207820442532454320887333541148879316906657197407815056056513243120715261397147816006442758227553301224622705150860597258296151949104826252402333762815505104645597464930116359733968573028467089779114304636462563546648450491782767822907457305381155162620003062667326013110669172611581943741950360270557145477168889215008152602110777366300893975579157406706534030903504880861334069843114014980329350233871058490528443646944821245538167584434661018128319142729224293095769944573344646873174546440120948944954449902325038648944400143697599587958381720706281110031560770849886254580647195153644559273343008633163851540274516570763767833804095511900746108494731698866397537419101671675846030400624498488551271009043588300271822130215066421906009371001259245984129340861283164360179849944011938097586962932633040043935334222426495571679520631406827235176062037968424510193215277465040544662912427568078920935749255263152683353430464413120360736115734264471596104311948477554919982671804294802408203260998093589369645284703422452190040659530616362805790252873141972719699820831097059604394369118493733018415174179433232637209600014966050015711966565712236224530945666341362269310389160388006684590626666504815812277266462137097781099138734532150878543603354225156075682930762311074292409382951471538861905162542809057273374949141203166126097277464664824599207055279507401854346356791970133706383550758238443775624069939666677263541914000796243281373757728830393635233215604474652225044144926832485405791957402610760291206458451550831497819852090531176293975141038799990306820775072975006096492271199667605407082161510290541531748656992833607601230728656513827628948279766646406967710523705734061286444310167282628982699558570772614346802376966026421138704860191954760278219918230012692563777557103941566380277044368847788145378545283607903182649837685611399598995968745142717256311321967038295541148275673670271002828112294485862665276467263383901744924621328985536715478104996735568645468061642671013470547214450766515555774535536327768149069767543235699168345529598253497433124186033742116252548361696937142903786159560009862086619973007619866743944661690862721383949706941909504062297577969943446773860401862474460226173797406531595758562758767963834442595731478726675406269608519571378537727285734638255733130231152048145272506373787105223179222328548149835615483724445145534450532416323813728998220181452631269539846381984520257417813662943031875956747220751976322996702500286852460241642223501872992066949234569176441782961710855624833730855779618886210865495504872221330460707012564138464629167073638468775619538670773574958892419770975976908382384728258921506006625299878598889373464733282856456834107269721475034422742810639411063899929834070918623843827197344904566960372704010683696332729252780144548662171297037973226832015879367639636011387655266928652547669394485685602391098321385102324358500754705208055509871549968255138413751882861398356030350159558548561644848428191582600517512169043908596734589432492230498492741836875492083402799227320254982948810212125078067335316709349176520293813081060949984279776971042913169835168055356168758707278341524412339712042333532985188989918894675760683116524414783318702247337318874787303664584233115835550065459824556716482793848771130473054418753857843623383615381984136862892446735806249505769575308554672249747435214339471311176292680210562947020769079743545695833132606871927590604832233419021934851963142482688665710514224208093497123818464458101844949503639771163593590266846776514031048058389473352495011965029584349099741333631060843223401601925312815716218832284252170162519791098033673046979929929922626305163318204849840173367326560180012574554563838615122414751990916676083863954489475446586441572902683681705591471437483656721417639674575075145717795012857354685749977476611983808204167824694761434225628531494996710490086228530027646057123363720518491012900640058575611148314093114324046842207186295622484754274840287523990542579002202256874835177332095779482385762012459041241131307100161064932295904711770758360211269790409047860946798090682970775840137638200211686238447911423049974962069961480662506578531058663765159526903984364287903281227783690538354077552282158914773748775793063961123995086150730256720161033422808841791313453052951205436164437227832530671427841353344994278469213975340683148213149878493169091206012454240733289009934184217609700705699620023505761409523288316128827277537717049128420071206025872069611250076073658163715693350533022105924855137306562272421326903299361950344848802855788736718459448221535252665418775527652737670397538949227490105742145789384792757314506615943233596100616446053167160793954829469646026611498407274425743318816870679962190465296551947336253194163365405153064549099773290336582427502405547221329891372787347905506468744048282287516115104684128259725492412065366519211258306636144604316647225266396315983510024254627604298010827778103834587404824220932716885990204103316857532052150438911131729446397312818061638794238732515056932412950021367019755185343039241041226137886325737785673484462781067064730853714101420494482060174901517918768236364227204442845720228361098181719646949793904766302131225432833542908751149286692772337767320243749649177565748258419469445888791703060036680354913163692142308793467227214796355531446691250750664231370588107282960148492564653311130451031114074502181222917170813707078110790449172836193614962340913445333241596041226965872427454216059897724196476643983364578826735278559504303260552303016668480831875525442777652750289596994664900662494035826731886835626468925992214344657757762625614892051351446683610885737727427366228120687747595609508101740328202840082136849432652794334169195338892302417912405238224730025070036356007528722626173348550864512386070755619960351666808824438902507945886176809311386910075295285600749801185159993983715400755952098183689321620137091746998654933184890566676944783850240404390370957491030782911474200093262198779346630294516139186805052279692106845490343330545744517854138961957476295898650703804123312394063561511739446613546175006646303373932957675726510462099105189105182297598153392442330237366319535795094779748650665315284394317592446815867927970235233210492807553591153102952505974835608930489289405632158733127534579061888513920836580849531105182752135001563534358215921644301318816258062374714460704021749423249704274470664943572668307754366390843932771693940915174498765765666605510950549692209612737375763482835184964572420029573539380888032746465758280876849192639958222138317395347669051973729275718811506867884126134863765485966365543021863762415445457922178603422321194790000712615149638518527682913840426792277000015637985626939802963030787916082631889732337334703532650099233559927546142510967511177062832326419027780400610193919364757420912442889461185418599599777347727449003004011913021536811540556104873689236306322228919827012040095084583720197996608147879873944593379064267441931402081964085813130628751747362290528157015694099931421668779716129338894377083007062880310692046858874824206802334861962822250570927373269816179534990556045934615379234863183714019648466108274890423482869052598368788345682945068928174209598925470435032599536200140285517197441062258993115584606703093215985751385578236268727246798793880714158204332692040787708376608838885430105406308542711167916486934487700534670142662331269479803595418839980369493898649979511431832891698522262881063705195429744618013368708564940435965596247838355285948118167954320094436432720152543390067010318326404999744564653105273717902128848043648968771087750582514999898776272173960659510015176346104172649567418156684023496636824714209460727685760518225657430760010416465141352515062634755112809464752125075834286716343332153489320177612203590987783995893851707566850506006232329956507374217669787683789361078826142857893876732083645603512541726992259990301904796485395451284419582987597171068107317729734195254175197914159723817814532615668716330928171033004949692268719220559892156788622645491031694883705210491436943965730959757731158485112953412081811505552900065885418402588412156470704329948978180959833904415170910003919955713821384651941864903803385562796147439448561769400890433926178943656046604678292925362169278388278789721740352187412270906274215946370750931343153570242656245546397244384480373525930528941444656993599901544483073114195243594132166456510660494555309437295992934836089514332316768805606085724975921561460007289224963564243612103777389829407950624466534547321856407438913854810928663289285735081071430185457908803027537062531317012814392256151007119435535911214294339024225039595209265328558905760752279604641745332651173807386637492194795498057181566683312555969125484734208075705125684978947114007579039446051676620003437181149854853282834265822212792209426760861164238963999838775814640707843258308843507933645346700662188263970396151605940509708916769189736399491766112777141397529109397504169057392241921497066834713620616160930443148826639813100572223032531894717128039619655951235887144831249283610673903393459754127990154696096064660793073344484487701668102108994758439280771669654507647349633604726201954409975981146279076622809813854406200671612389060311689915434535357457068708502642088752235050961660697283769445279937595562475010433382376199344142753450139657168185072126515776629286928612034630398949752404411565736249482671274646611428272159312519393348292482679493271174415723943997805300349745521761893792596637985486696512130819095029927868949413424897884424231534126324850303163531347335832191584507454640393217909134776659608840946103159753173534764422988000662917074604604996441317472835418995280066728085622872537934821983807489976235599145250375216410906172949832602501879330396612798954753649971032621348445077780119071836929922433107755155827969658034633229741023120197264793987700078597573016561046621544016394554919152756125310340196486122935781146271898937546185466711888722042823778710283192561649841594384193415866107787095270789874802065189746457897583010103607871350736684101876663781998752149795556698813074190833153386870429706368780293252291532184036495256623029225866558245253067921848173377932468160734159988611823071124084604025631924837337888471816343063639301624276722594550155176288127151344367310060556744219893082056773363227229985036227589900355750636102526705011501655166927201436475366357176886018934756609005329724298845922904909111068727218017604965571691921711406431335111232248900535473916694147602967730134001937369283444357651949650923900332795235589885526811961293951724714136732648399516342375427930966067330442868386427690604504024958840584826372060102339452768660292197379645544772889907124193354836947808251636576556153874036722822367849217786200850121244566777760640104907820074098737666015136143988035693830464949866598964757695360886081031652386642533850569593071168504185658385119981438704232920049458377924388832754348285942326352078986641605118926300582586754734289352970767082037406315388590805668760030803090085689044765772544279287807651622242414867542200414126643070596358863848987582272576798768383777534159425823955365504941299505177587086670026680378347279982315437169321095753003022273938708822757903762740078750289590725866551283777505774869007264111122628821184501728857176972941083766581615749041315036119265474265860596244890105651113796297678099654055361746950739533178255775664590612467008223035867227213942252883667725643122574709954436210667635182566843908626308086849629297527522752138610402051787552723622791988872978840784519941254864176322418527825512694579892860894893931380134639933532269578501162365481879125867354454783777686765064123359706490059718223004090041417601901040860346860597912548809034054941645028518073236425842587644605840146557593632330515758324220084761482741737095030560001313319582853153038129286552287252501425761956767775302528338599247249427404564408555067607984354940055762963759002790565117177960138439651293807738776794242963447451300166769636511647679683248469191788092534566664314302483233925276471787915480219590256196755432584927369236964917863975419873131282692988196801311344112013231332488603439128909796556400119003696590602515713340982982677099972644095479414846168711735962439866333622232832262422738284083979376441812112639803396153845371391279340675625374667727376164737708500806799401648828849228021039220824816516644910250965268282970500626013764907969397255768357272570621634551733264748677046743211084145624011370318163064213736641722877685846637658168612155280616482303931358422818980106405402966584438647374849273431578907599726983361043996972347523967862941609653105209796054628444352856942800222655321948469163296922595495271536923288788180080935678525294466594807779230616605275000299663724380442352278653127828171567748978993694877482668013329973393823456400021643673345637514390536933727174950359316909959774195868182394310683158433490100918595891299525502836321621623933379589508208018830323279461045711088148931742582294674014070644035245425133868117560990721620962660552323867804509766117176801411399188266147694471170687739430339715401622975805318887729340649456506840864364843509764616839297703021585782930244521062806375050588930427860807225588765377250068526360696709339403369154215355031041833332059374189053101805947288199436354499202586872061325841080897865593737227774940803258612597479383525284271662905358373588545727273223561269802850614824262428155108849293097192280222748553818460224938231424252064745888253647954098261546764169230699311399068841958640212803631840065214846562476593595024376955707380988137707780986699291273227790543411317455677550900143995870924001173333618969028721097496694700450632002958827908438986287725974426102099449494044320331987889838767509213821934542518472863498601165165215867976441626690002652528682475701655408874344085240637643183227214545043693248717746058490012618319015718770806357116299946854419069600786508154993764996947621541586707791607197225503360922928352597983508530922462871274884901239086823677291816814371863540546793541250654590098534953030001793813001065478688086067556976461622209630167773647576595057577063700806719870020898316665885644788646899150812353187941357265358925324555355401603019796367391916046236268792029507344298302608271302693407753843717653236018993673200025266247889564072605991517296397178738900358468244678621149194161366052487756567304118480474162211008713594035002068082427807529063991718377454257329845209369135045516249217154364593433418256001010955866783919210506754862272658040926782190014779521341996331352856084913238030936437569279800213683106928554712682535121927893947292810234784198730880178466966055149030421166415260621586517996234269813343982999603827289130165240684677473965116731922071387271269386596876857970961714514418746104470781644113745189138723723153145611217363047963560756315975265506962393485154496796710276810577314298204829718355863674244103822681098316497061228254606318294464993786515505560767846822264231838977191402972300987603189486147586246099785617323743726378427632447053580019209410491274335215590256999395857432517058507433860327942231003932070244040761082018778360163138734226233446871829947410225665691388974476111175358684282059444547673899402488606418764517066899764998066122871939772847463050637235125961513515357432554225676956176371412487158223614336167403242549845601894185060766843686027827790917786383610888775226371559782202880139913884366861559937469478406770568528447087477749735108333194134475397144237441438251581421720903450782790507208632399965308569381824193310017456229523566774653155951622067899738594439217072339977354697935414535793542839640181181651025118232112935458283671637645733698390751370694362002747323329084725298428420851023838026001283113096741007470141635951514083307582412578681717454068812672537874312604714280484540728372624078520597463388078091114595101709692699884899526343483728184140856095269815698600978969685717276177903330485747900223252042213843947206574806412694316739323516300314183124228958143254639933223902859247404929775580649449773831771161168304201543383273976128487272591127107632114962990452818359711849604715366395395879775312497273724097405131357436151103669367681111451336755155440885821485147408142971345617090590860391283909734549986326489697596926649305409147430914810630616590457212887986091175315712925786427878321181021943628637139612724059897831330883735753155761549108508990984892536485576183415961634568251663620539637258238735775558608385707331365788514850074986828158680642232521175289490513964310632231688007730118981143246799937265375372141391035434784539813329094293134655868201230651414586192457543696087054363776524722474866975583807805135427887836851293816725652442381379496652495569323229130641381715062759345576360950042457396280290779630399949486863150350199250412376332677041344057944193412150509626388009856323054937893280826961698631696877560210778743302834374002827318499673885385023644276450784377956715378281970839881271877310029544454856341838474843105438407144146499036028316104804016377027320533592782709828884554906864616140077918597984244093223773453088484467785010027405613416962761408074912693847728645135472848263127230039259246454612334762659389677173979372747906206957852778025666456898208375669725203055930310574572837859022608110576071515498291400708133329802609277905642484425588149923717794719399824022964743488881783018570813903360366979393874507647378511810818304236077850503513848690324668571954520120979840266029773008900248392673823514019593029544163218081216736824355426850358850786852863951252998426511960370044301742877332457750552529393141233580320432485307234534158923691026508047629753986332336719203200487321692589290122230241955769950497908635831203746956489566492631589113943783002177813803956863043354688436661638150739453828179203146475315138630881452806943841954434819881105417302064808943107326816110732592875286435633674460498093286712357513905988874115049992223975835261399888124119910467734977439972599162964303893070495239827887351364200450380621535374575435530176664670937961490530484525953089061446970398890154585920918331688645453118164780771393514479651975522113556466829932553615657727672563681382605544771156933744848679642974125152225069648486092809602007966525015425916090671716745780715030481669556196798647088099159724560444443959800375396601376973548123641253966637515996284306321016260791895190528858470545357175232008723375905643181874867548796237803023307321926015483652798811899376966624767805344450943200438603626333538863232397546550361537597891967302737652902362002356709095012961643375221374819575006513965890446844955099789796968668287875644428076547387187912551206649556387877525644511064253188995174664294139030456590379221399246096764181355610768909689403687608401000727296718834739454422532285366020362770441679721991720458503123877747631395522040886845221344602286529211937321456152350583467665433894841541339686251535102718896342651797214791371624006233310162351175800364969400585172293499824707612450819814220455278198838122398388355406903016118305783553855012504952334809828835790848129119943439157521305157552895998001081638771325791843391670161775488168652215037553129270597179333492404011968763907965748063814131416998004169381142288732861387115219567392164725450561978038053329473198708198850676947208653663076006788332573718203201619402861053800931292931729536663357151766956257062751356901760527663039228024572626425367712274087595650620503525729347250390226418195325883006061045116556091259853223044801063304004408353198920264717141104065332799857554525088455576905974170208945193220795865373175663814956150976553816911057830487045390283878838183667765975894775382660336109166620817284691445686845327841735656830899797549345446342277192865537318321663072263875463181535809163583759339163629336275537487752468149253317298795899663170751478614450584003394707336103652321551339432182658657980271142526517922214572764392746696008440828066609796768027568612473201361040657021796120619044026697758508837745033069216587208879615674963745569228434284217914626248657929840885900897999147313712257778205237818087778025157792295569520459791398709050394014996081517518186402232418540689035608073892038034835936499764168973360558624027449061693989328701758937355717891936688596348830427259348313669006896100661784576354370811161265644764862996630446755709586950604213652285471844306265771238506566102403326147590271798368410165781523202508928763549007846039987774973769764191274615910431335331017712244134462281341388364809339824578323932327427404144832066252306490492722679425101473843172599501692573661474139903107861739814359159195796075386013628470686486872088344866833819307986213584115577303237928233229380461098619633096336054721012105083728222931512308311907140012268685323769198525113856825892994085543090695374753350729528523655448160582003117228317483720325728635110191170935109583243873274707556612573198120011483331025501226667626553370392185103846275690859029308808513442018142150199143546701004633076776771593009386650903356114649567885649410794841653657376241508800707203131043570676097584204319451151069383364350720896822297653507356318358577095502636079114831446505502865975450877049221555444734004642965445078819643043031338866555075203370364757442211782657377123855651638846413536202556217495770449531680781199605360036583954564301816304283717721920201615000852070142728738472113302678168462313637526629291561157732711640316636725270984505634537211931038620647492650251223593661688779497349180628156386323395892483319207330144550714589716371433615244283938512650531934781522185971278528540277916920332049937771496645255954189776619775916532708842897129954527559111531634214800617582624063075279553617675231034742777493733084203694180085391949476564071777209123853719617039558942260487647696914879636163277341566058983581750452013680703380314010424913300257853633499771283291938782463063863950944355262331702159430248718655100079015290413901234394462413375906965862119947715479363501677852493656354402013122636300578028937008744165527783032867638393593285283706818222157660787665127792471847550810823807569380379058157865419491005882278639856053987880965975649746917159978429497450092126141175077413237433896929626765304303484796780460292179063067653245091649826798564679161237287349759931585194082866304309956791297629087910077948964848432498820651532518511943836795722887819688361949301802607605082163663191607474178626848531739479411115789212131508029510568668288519748988782835488002428833584747474226121335683373658860470088944087056405550635749790034294905315670456055034985194287500556062759134978069053224192722590523509201603262684365461775938313403948587962993468427859555336586751068240810849635463063742550771807521072977466772019190447017203031737318486671928198853250089657235684093348010297749809092455048760783111536618346965432480074319312021200513648817100737768646828840542335994110428778922941987022878114904026888170219398361595639513682551112168550816732579009698625954236291127225971611151341726278024219948501680432007008132331200385235534940194541885037692490190437421513725948700348989601805475978538351034916388787884868605390598870772354297752226701000769159506013031401365577980234792784417528946860538959718765086600230370226747421742284145948150646087359507754884611875920016086574337329437821810225707233423991767657868312532528831070353874390808447522985949517476600775891818915973449690401889649060210897041578769070906333601522258269185006457722726430798366139495896774064749144347186861284518357096994742127323198908078181441390522353328003451490682679916863653386549704166507831679973060511209860609284197262566508832705444727142114642793687750549679496167482910655786522119206411744845093335064945277892934652565558102382578682239362922345349958250661325751909942578817789712174275546797743740232022436511371740910053726327296734133518571363259256366889552023339517423993494054694526110681143075286537911322459453168718880463563605211921291718081221029777347286007895347003298961492130437847371998828638569351849987541065874457779946143006748186153600021013252443880019237610290657275633404685777907299617895827787084764148168454949837824277213525754636068071044665243087028748054830210570067197649709935129885524745726069873613535861670221174912941500298585274733001596946379997064050457323253123764563441653995225240965303110092806133829984265267293449880932643615933942393217643027613930759800408196269848195577646984105174236491138794386616540180588356044354485066096058064587373333014014589437702439302135129994254294629894534619989643485113257736753951662922992066847375858227622194587131710974588176275939089749589722103415124694978645402773662473211002704918633090654579344440401041991011304574885540641987415440367997153063930843179043465794662760311707381689658080058107230706307846945214551836895662429783812498921179755430413009892388169803806995494306394246858603096548612736321646620070035475714522326706772705852525641734187332961998748800848932706355489442737894162604003450182576005961969005185815357528746216902770842170403580955786011361508900447599117200261122593668402013587846476616186276366568203068751632935344335227118430043977291339074058428097997250642328313573125091941948388067661196987919308715478977365670954856152909726734408991113860087680207191437981361935144080889186346962122244487379806131032552114391412076892738177542281459716546294786281278115467092106328425430823491777578633029435499955701455419226550457565995029548134087969884254219876728612948905190904794231477570666031811131429402667236393652958567410407298977256491697454875967614853964943491644172983447974260186924810780681327537059612153894215258541366801283578414906899939860309695924058678178339858306525562148903347140677043480340610144625798521663065486348989912499601211579820330114669801874083252362407887356700636219216019155580235410753961327732945795339463705057566336853253353436297414548201769631835209726684370453416332212281686806515058909932634352656749669680995772075255666593911528063828971362417537806980979388248531965422994199938754610408282611332729802199558848143028645014485097652137445475112090571766840046054819078929887156005890294151882237385826432233739727189263207701906898019227425713869150293075426747649382421031693093021635294045959478722467701625616639564433671518916300866289094895204373650264929874201460952019229174663121376668297795381444585620198880922460311351579970382727407013476542373356914242366713387138857744526335643675673013971407215907527480280649468528026329244612792347164444017418294226306315470585088765283344358240123551275221665203360101231968255323945577535062693904604943737579307757044269613028084522858966564911233044391133031380884058225179856957244483811634705638454924248211368048040855061981749720687265252388872973511300891515071241614469263038047187201975673436193694010863460119731273450689685370412492938317278434170094243478540188903571234509713772108690228170611336995276765016109186783240825575292418832830745910565311327612613619264050502576098222433123535788487899338265322188837262020668518939820421469408378117995657714012219039740019571358845459193989491578589018175701255283215690061537255018457660748295200377126936753202999398728230172391834693999964490493218080566477512943499852184714714101497407284020903803603331643360203266175544585067689952026701443084526960417479863875382456238202092425669787247604581276690550246699135595930678015511314506438684381006313959966827721591510540353842794169429915372956890307583652773340805712373559965581038784831285922631986358936750076437810283254395511963676128528007685495392231943761258198138435771997888412105319892461850549969083660932680687230195567280732330894394075712576444747126974484883735586646989001259867264293484046935013726986051492535741594787965860355622957392431576723716902587985325174443977337078794817505363735230887427151303841349900192201505261190055446147645477439406056728659273014155756506615199228810995094068471244465467558754270234045755062382648611811739330104476740594033299643338966000602323419115859451787552032854656261292058453596037942015379593566870130172423824262359445522999614975497087726510578730927838133592934724915763349294306683231633062697057617359289007472368551169192123054493077123633370951240259988935169833730774167381195061669731297965226666852446588839590321218372802441684041375963384948877550944961031843326001996927868161090881452820928542142671934132165943513144789570640294600210546289750784671360226537104389845888597714062044936079912871368953509758589491260921092468137596942741029027446237420663630940770989290311087928998558842702596129647485283772338071604350514821377619049355403319955976211131205832648229069483773165348047986639407123415378768437761327017534337324907284711641787595452713022755280716030892399913945268033996534608128487928547617831740779471976722807260908719003926939503301066423063311916075065747484185428420624312321539626497841043880619467330885769352881637359563860342482986727469007565123773408299397194855014126633297417743870180939080518850221554629671871271148988826394274627954896250726885796809957298526125479406754160727657801751395990261185856782687705765546889382007762628071544951823178427065784449527660844761544205385471496799348319083822467321757964318658001795859573629185657093213979626580627818165324689488173026770465743167100022631662364553712538453124241346712701168419826113140032551871161959010069456453417177826352743852637477784581087144302323504288253202670767048678855422655463064023417686870688556754452401116926492742768461738616151246316514248138368127839423698901080153895550085088947274025448243693377933954330379939625559390599695292946914956612322194020753904990568683604861669083404797778632973218489292957559250762841165971457635539455454031239660445865094282400773465161633997182505452015203089902075711515858844537056181402538385201804710572574171041437547447678184665019112782960338298621089245952828293757974114226460608691773159094022599089764774778536885253111149672457229084102754411802014148262600478852072866000836817694878785661195072412937624773497300787705000005229294497028633330232943403436373891582585056493273848028237818352704898512199749704557090171177487610678297014054142547829090134175754042272706839248967103580910183276510481809620528013652876322571192284898794359602006916675422331265686901421756942833738695881544756810717215327252347076071115025082690362050190739355137281678918615774346382003656814569231609072071833553839818215141545863344226826577993622809338815556740300653711744782181659722532289751394213685603840959109460386765995852790323343416260828284598863270449684810771356527316478247521770462180008462333264958456758075095775172603677942446794897408620242298766214925143958823665537518410498307347394597107595767355657445566753561663381579874877897199301085582948517094872225184383691476946070900338796365183922706148019882197566670804985617872896147182736337326058441694297107570802736772805351191307419969969293753022575159105035730570044601396663145300491420707281663927606397471656434049083988882352058697756419135049783937587103271631431154392176675718140632792604824144531208997335195121514902445827844244231120625616924252905255696322969063646147150957662008991530708807935596009307417346795373239296466631365284601795440569993805072432428858946777388787816067791396944555749153381194195025138450514995971243024624967205256076221956597880311227548684237517289394246578587378747378402559988574962999770195163690348007916794625847885444590914813516826257983990102325349747279017647833269526799166909034262346051113423254594121186987776842369317623447653258275539862675668035893044709743182116807537914422865191969046733049612331321874757537074891176789308124844948760621745394442129517562453950975242021235396203426332927768378944171354218840417546759009634524890568778141832401595597568857131668144424400829533001855612092387605602281121747243667216370682909744259748960388686647001120417747337453835347729837971636119231420596712957875080940059350249023164849811677320309384374058163600774825663532111283759465994208002040997786736703109734824727755708342543487478344447205306992487005786820749374745413632330163136444245197432151719661341111927538147960839203321759449799458783954412789940359001173277356143792703188728168236634096030167076552611630496010410983924165300885282082499255677968037409734442304247200765491423525737245163937301153562623699452174411496825985412023018488095860845603305596154783557013019327072802126156588535100944531551958817477544212999845885903585646182331848910510608530507712678913631606680494377271096533217523711210947544426325949450816153676698482786189371305121633048532066599982475574116179089312727828286527753075480580726106342689477322344926985875997961311963632826888802631661405179866500667252760788850019906486201310410368714562437530589848072175421820651179678007682785078917735359298283847338179595682144519295712463798666715229793070123545776034933894639195219521999082429100571273614548196708047090155983436375749561843392472446092052470674393547910156630456306517194183875340927928244115399416710625503707950777560606877300913948788929168134728617883467147625361354956076499120984230489073915940704609265094214935890419032523044932147032454933999916255496521564375624561349990927780670293903232881458950557079252134734521015974776767428107931891364368713099027069168017969195281550518180157795981676249180665831876358094399208086997471400853005102593622547429165383670335261154617316980968207446362665605513365231494434834386142476745327864691635253068494136730720493327973333140453833026281003525290085183498834026462383171190558597319905283158884425710998462962607953317337043971506428520676335815128268063613485419964141774254144268976052044447656530466473089166123105599897214901373618637833857978501563329604463651357420369518253486784889390689611304974946351673754941371567875553066560617790892425763111548194635372696513693198443784176104736584168902753151366784447832215150435299075490100941474387552549955007586109045349409885619115707830458059567324902528678609782959202690241523286806674580399013784564356126584886912955740590090384075458665720922649445899228900740526009127657728874708387649061510471276277265138024212748044016256321815729026248901602575311499319390849582099828584885379233327709306688641667143403626957857376681961944813506669737801472872675074636966980021267381944313667821327004686619308697554865548979102956562428091992324785583292228384155516645694433862142729630772338880042718119764787398937001586487984825050087356712907337217013397802625696173704637377652593451049167277687760812326939019491355511405520408616868024690766584240238703492771794224648467490909160897169108073854616914723696488904134945024233307297537730906409470506567790469303521066058770904734052041534633351922160226882092923787420386528821074150782553568400035126311819107995001543659540590770014513546949085253135385390453810750938017264489897554588102627720470379342030771444007047098806309139831863831265685503335026485478328608932403322889784387162505027812877923147928263518456101025600221740985604099883844047885318059231573702765249904809321603230610577306593075457494914440273867915675200461369980227532084703290665329624398713531334299811565292629093440367076413639528455358147174805050557035769516574310520870343185585311784977659855940563147339161210788418102110252956603952801054744459412440783612040767949804762625252627285484214713024611850038578493913957110863386845036751736583697374707184928038706979105265498749671077990577364452065629332132010530711208931922712893889354239802688175909813649111903385532518626148709014982512282433375140832370482821034564700825749765638586235191588823877843388142318089947866351061297354039590537224185816856100888078853827888689146089240006201794650501845914440188847258867819640640674191067057406082830634994796431950193881447505028256839167079514581460719828167409734017340278336109915169540930768091285603369341617190411323784943203554136014887854924353476525601439395409495709814559528085062097658420172217324009524612669562514945421639086514139957822962345551185804771984781215013514536087927985697490392452644029858243054972322872866619918739874255251145092190586854704856358207312672731444725758099121913725309043863228544030460654219147993174240612170155516148098665371510504508458061983746999914677344590783019613711947968374020992526365153702975124108539042284306310484533479072636071143438791999023451808134764282643656038278972018652516189299829886524219302399490537075220289929580067367570542734845241054613321364676566210758765925383478967888754317619312186799449430433994629135906183995185780346330007677559549754213035800748543526645483062923717952854481211303506461280389168113500663737183204940536921331775184181739866080091791110971781840947189976022877283013209234250771044793498646348858687845344298343346706246945480364731927787716545488698710672241525658161613201733979372849244381170781494928443198500937930805710622932293383360645671067341347176737924880645921203089301342346677823821840231915201083203480221267028196471935022526541671829342712443499840239717044971115722741314181758683987943556447776091252293786308664164185821059474241404407198466700805877097245280260655005894684700361688026450340808713030887267961820778625716677443497725985195463394785353457253449410434595064802551014442504385850779788487929138354541622369673839057962310904899043832402774496052698263514312129382786249410249658039337251975463275173607522528141830416332326281235427459638390383864994855167595739006164387432100387280014129852320458441053096854019716151783361996181081095273531295682069195701543901104180494450591883043475405679347628044269921840573050517817310133426828348126530989227946717879798518419840935594243836021280492208889600242237651201614696137786612472699125848833446025107083759831842662540173925609537904187541941247432836016446039691554657509738337811085401384760124632121007182029110430901146116818300896715697996316978526187372865697878577905755784426673493190984865997155688834345728502729068111526071395500482780978301660025004785417476041542055826484075556648358025880792553995652852137093798802633174813126127226180920697265916262389927048440473784838689688560071324820721318184946697867862347690079279414722919646632087814441203829407323863938705033814705782059853921748712237563539462763661168895790936583844044006410449463491326972264851168723497216246288736349332583408958105423807165074300580502090043010709664708642540015140548786992280226880074247113678688406811337472299664733429611566958963282690200717849673467724743565689124771180757320030147972319226400657498788489238572257134102101141231646450364874273479079227149764675623900497843211136469936430997915958377801115361438363166414554034962880033467062201386769645086793432255015678940276644160830656122296160497916787163331413082682928212169010949339478578875341058296926093147657681248203471269404023291048537628862776214039148743363199726425561558649574823901014426464095190694461166925060903405687232961137138170947281569732603973832778936038721653530257570278508153300942426875709665739103195978086185882488783377980007722480806602215427835020402695299296946129449698849727464782526990444140041616135797840025518019427381344318571627407398413375706335182061915242281212718725172972597552319522972275232524926386123569282538196713763729605532631645434925137162387455288936029368230222336497271001493683423499976209127310700469770134575049390567937145523671743926883050017130763466225446541094447855604638591415030194909896440681326666999942861194224748606432175962352133812047814100320314159253363561931300203545447074599792145788275688831869849549884811561315041452445590292744155560385765539187695330660511831875373079096986049985092983773112720326142210498927153884964351333197817312505360948490949487045248995268251859620199179233395373089266699519711218761723673260187758122278222575777128501153056309358655726782368870020506075699049379797396121498813087205801600764522754636616214442693111418651997137660802834124557663259997611969913383455070077788129434222764721267200445876499531310000304510908622259345453549179257201569748645785453588457025901988317018783834624116112034752624065576795209368030954992627438367727118412731791825046421929356270528549652926739219944655200611788458964429869425518141031826681204671003581001077971298471505116353750462330921983975209864396632838867170427876472888464862942094776192506570295052735593515334266075242883207736591083636112458960544947532945564575635909405788675836413283511366690073788779982637737760213872223641342936471368685400541330302081472849828188468516179448528308087241724366865089315942704251798374128873759368419558847703996802915495637075397526092243879629338673051239241749637582778978482929990143891434242931918608965183679568842970423506292211979552963317476465041130555916972387977444115733351983892465103752841705463969591307313488613918940545607252963200371470472353495377270469702187992813229792691065835165964927327147431086486837810731754379400586185403298225333306098813197705541226554007114723059853738416620572443944847979214036331456697859252678875867846774523535360469557600237279804833957216700223746376815573424520572717377933138353910688498502350035217972124948682908671709676788205444251620820434811764843677828656979467528805781138039239037385191216503867262311125380953320062060076478205416933909086299736064206477722693898807102003960316565625550131547220580236160064366563659281667458801252519104736373325320130176251392571898456957809031424573455026052211618973858204050439967362093592637901393173443217095782092567981372012037062015783826883403987352478668608833351833263733794654508661706490091622615741590231144028638701459437494596511444191395612246663181077298509810644535087909305966366433054157692915495192612125289461032735584115532040730021463948445522287500308429741295397688576513072716199759013003914802056788621573300165932881457000109549636535810231937693843815984238115779965841060863292320777557441294944049063951377265646411455630237017771559758633678042931365940242928102200754258058856420373198465218125524162276640394447254177674093498605247526705973924449441850044696720479728257194747821809191046163265392340661763997121888191174073013176272883503629338220376048805552038392519978458737750802918100276681304629848825632789389857030608777925872656597420581135910089562242405659141821074529614176049699109444875958189397830188760546334457492559183254643958107761290445337520497375226397142132195451693650252817555572530786232142540942061610062495536515407994300947751114513122189220736490435150087212568081748057334315372737471208843563103115007971412771925255800114167789276612884666850123234980788341722092205381053340055474842940382531056047773417122649547134433927110534579645898616397118107688547591167718271119308548521161400308939268854939071964483439403848221573391222495721388366729352559763729251350316379732563477040902201434538181847367189868880606282908835632472066554267742855754079229090835617187965173062978430163672164638811568125372810339918120318760860321564108693341988811999934532513609310264815503076929847243434477451182080636985852918073644198583532496757113373228557322657531068614047396125124910387685492013735363947622909028167280110996042071502830371973906453978188999242482661506711057944741112689782469802585828701013803548344108967993028227684118126150602816461466298245836982174342934197677022241057972875170218413410425946967030530106942172087972985639233504235994067057819503052421676272793912841824408514223686227423425418172930513090361987138668378140291885931261369542494532973785076902444081243327681836719439809927649147673685830288867107716547739626797285223932061070738044118207204302550678638221804646232396841101811175331320584976756638138296423923679434284447854524235602946630020137786054060243242097341959826842807743882555381751459250419947697519719331818607449033772334675287139471052995209360401226254099679902687743883680010840433398236644528791656786164175093007155008035914922708892076473021670391747760990989489949602650530726808540024522716162542198859283194258669543542726087195851159307646995657638904843598006895885145291975982382893322810445125705222822254013143916421855704945975891135072502540206554652741214545040253730466699834790273888291667688147828560824601279101846475574154699361197285999028652138522677341472566646097041132807155541173872810573251663232611673287870296972155403422359227080575495359578265098324563500174043409515002989311274736356403017006760552424295284992478172738503214711743952453542946077403862767681868216947151825540922479267662057820409723721023535398055020384412576673153378609483636902982264265536675376952142581302502947929520860125877503330892108308649988901833111913713875815590181604395263258331534545991873127435442589333652742609635137412561054229009372567539355697877228366517378116602659845206943091576906683190281010714894235569493580780583157780343585136809545173843588233690698205312756296349168129000053132368794114438848155112420606114975072957164671159498599433394645515952962581915514416736336545229271719094669851682059356697370054468728014484457632831460698972476575296450561012332622629174737034086515356865042407971040895076872318626004284945706088581755592893755829940464767512242008967274481527044698942920265387810507743937362322237241233435695251189330301640267274208054270583611669897365272786149723109121396844000756902607375848419736379399443666853554215406908250659485056245193934589004453209536308373901256084770570449786034522988452821852501320048880240799161702355530621705538105829727633409644072233627719100181722272075131571607328142891238922601847464276733471589275918871097620020090620944496949779607672801155317002545119142565354146380913741306445285707705314470167748074077274699501473252379467398714940259672571025446637077788016268402810653314109541157001730684275863071457810526356943895581973398169213418095260137689342601610955898465944651253262008189335029242522544461850026635640035040948334969524083897894322874710046797347039876193144422181737889332837841717027183026566405571105575910352993337463714402423492071957547306150391529334870448264497984589908292051969254373848100877430018310530644709678605718965126844560046444063059108630648720493841251203078840684583173983227622477986636580088361377961057618504916801415446687561355238901372674821066373719094546459289870823269441514485305985200253224199575882866771949213266105119549776938993322565317241479628892254135068628120914237299415532306552883125244915046584950825823211296166084958239927841940643415103408992888533279143590530680848990858752853705328514495020795180715954481693355396891914823625205068300233102255785474259017607714643668847971036905397198580068935965265476263828974920658717234627410322424193763813750402972104692973216693411318796255927295001598157890402443432530677866279106450926797723809554718383948382237808325475383038873542845312575904654832321265076194199539255106779641576431373288808972654617675255138786352298267228975281943916616290568149153013443667962506840119881915054090271331276330868252005070174263424561124317006786199579720313355945853680109551765796090775564182040656472898195727274721476010073853333971892900249917809994505432775956777967200164147554056094556348725898952052063212109360743450952969551414225507676224106060830343683712191217093613885446235246929040054039478548451699434152218835939655648400484380659876569637652575456570417861861078509884731841297374281397564456536926301133831503236132060427318408982640822417518113524616121193180353958380222187296902511637953144519252694108521222159980676629126284321171689634433791023427137469963561378583491835969993784255548581825021454750413365042916635346316567656071195160482990263501540641052837455648726097287493574413661781476425401830422050502668874181092869676268483225551899956596621677476195281282044957676722288658377454930537246480684979121828255983360096325905309714567443724554802004250508146431890707644266780147625429890884015904401961995325737189419673266996025716579893309512602471417529993753423839792542477787629939530646271023139156470209961825818305459270812353440714493150908148491522964497039687962453376875994980217818877987731021874735511717907375756261872718888025230068749343811822560736411933542954742331767239879830313594345728707439787922297191516274519675275958378161004012359592539986058285899845966825089891222930562087140932909418905521127914778856977834871131328250642019641185684165795947332793102315129950546733108574702493878575807193572739113079290684751929130211916670641247941432349792130333377343594904937872890074040140148419724224453466993196811219880205607318496901606264685108573797818725580708138497215221523034585153345921922741862856067568710000299094944727479657152477368593192035811352405707870919607864938738227701501114628786964474176495394400062000562035455381896295081556744034354030302427316263695037367311103288793108730615108908341285629824037571655503683593162085927013038432320566903458922305088379422314122033994470397256354372497529907506799212367759704739957100972314266605359651873711651077513399422578683833974070758577418928648902944947165655229036540024256255449526760434640169904322378162243701003130168594266889505858591982384091685940226842196474853099364711182685175199729786318119500811636029162600439118398768443461186837158688489968905853150882914053997432052269899688688159976458914346121437073725424478410568882883136216175856790897901892180702380768723622692713856980003076771972546748503477199494861635296798446396220762485322614193909630568374742285711863040307410951006523696113638785287373371444739356615579012236724456025462448874990517541834354155346514203248910234757492562834101463148215006164030597748808342192504066837385283778004668638573545750525490414055140755932662632577801622776293539800261352400780357862244852334542794500935931420932850846843824350925073598590349360455989869093585372025910669786135323098635970405063871612394268050689507315064669151852700049898737566551559072812656820903208506744737903233388476604588741483487529728896127333300787441193630802922650708565257995475091415627011408612293591172361243661107254382675531337216830988393338827053470007289381932394023882274204629594981041936792956896722991666386647499427379322100559828559480084473484119169451166423940188101751106708554607293862806454093187838533160820764544408380619894883586972328938540959532154448488618120835374453610006820783358257191914590682065206833832452109751004902759708676207842620928350757509776971475302976903373383847299131616276551968267635813590781396447121972834621652741984984671011760042560505678575289624096933985899189852292899135996913186970712076297183638914050820748698489244623470703209046356609917499493561931518952429226551456866321840977267675396811109692963962820719423469000897063866621391408554978408493114829089019317341442486475335766631740065188114606160963738624328138324108108877838027373765948619119122281544765629358202583869359752546051838180242490137524359474099426534056219385513574301061006787238709360694647529484777419225325474194451897740654892137051640619564796897155611805832180690305271511564882118029796129001904991872246021719490228222696916413245670602002095934026529226692044108672197471908127350943796042933934191639772105081899474137053494424695732838442687211206769961295657677661703437006980791372665367537450937286489624087291155259042349888610123881432644822907626177669453461283925535103126655284626122204143558893822401602189502999984148658531146405995661212764552512845921673825828875864538623371940984769019306568653743447267445610064639687785186445703723234015560902272202000320011947689554095951475087399867922458616201377230335660072340632201463014234906904272913966435063397445929650759064314932499261016658541386274195376503199742766461163368591897822309747258269137629073355960960571945537880730253703612728662097404009591471365874138235497857096271059631869560242224860229828182962880309170803042056706824306191396035865971432051314705896223788952797760353081708968243882253780635730442510948339324037742130859469014883423084844579599844505480596669963127443889102757731388687582302946468610524436327083612178803134380522815001199871378057211783529122687207396206195425206877764171861590410839410735091673544701285409594662961101311357223055108901535390497708196632947262110097734851757266967809422141770829172130006763093902717842673520142928271220902116291940416416637056036853302823348630914002483673888184097367570157940627576403188392420272172794958741099234361624994089501273738841185941382536013979992844709878107699065118729654501876297798931519508184238065980911024163537759759842815373627097738535642687655503697317041309508158334147472308877531837091196672846291576678646637316598044190928938010522362794100060868763509978147497648489459827616040009178110804702305923022407029976912299362032011320573534165786701822156878239453216330050141509278392096241277697685980276250211402489034215547425722158768056199610158292932541764190052549320205493921646925185146920754697928086573367690982625777182705664185689216533735985049472002181444663640429608155951057366237489142504547335831697218409438899259510930888976023684195351691808492335748025041972207224286532989574612977193358361712506536008303751582018909183733738503388195303561298204917928675567203924821979643077045784597717654046057403393487088659525335271900792629939978359963062221512888105966197834280240633903372753099302908830255938542580143269146174003145285963291766877154178161869861783176078513916455814931515033019605614161124508808833852379035772457459152833301632069635767698215338509601803642208274625065372521059896504619844168383229521013288599270876805517617835095654171789964878275358195399976641103418963932096076514627483191828138958511160321454141288895975331473032623172529076425321278593242282691524572078590715515744244437897162071905519970852196961969706994648294533709588904070819848066752651433459229604043979497131091287280645917678543145997881045872478165406415389888205229483818414574323905545000568039097350930186985747484836597303935720400596708449037809088372596998121812634659443945518162218537679504666722633217688409828654679839636451448636514076647389284992978860808919394063471995422352682730628095125958185096686599606207561753756470788255427502042039045214882486173903479015514486315022168343321781863182089969698114495668619273279956878496146571715511901692882938394592680774787635733247975139729369572690920061820782957958702658281866652981901700196729874818045238298704364634753331338592674403420175993853730030866623046934007044470701151026296891689293779736236154118635536325145758172862414879693278122219988575435129588166678255436462559630104601436789608561229593748849928954120335815383401125453874450646148625484004394151033229313658343514811042244560351244761233408020502378231000114357952925200440413873332067410180143042447961124205038293870554774422997686678878486123240189389136611471112080075586108164733330792130175650799959408994484130641088180786981701848528363993213787998733064383200752301548532826850944832235157042172787435332210762596828862171264770085611326538454766615671155592846799945062685258924309258142449262320779032390427987020557770668356827855549471311864203709262358738170735532701269079263673605587184769357050280701250067650710431604976922650678194314115791045355345592933899545548966376327499367738251086121815636684038263854851931122571046839655787125566436953834203335647226422784843818147414933951163122409131021411550842556375341837329760859524683268303851089640736214986524918799207598071075968135416542772922735055324100365273269296836093728219469217415665661347710258565856842248086391844055154169079592254610792189062934126785197356494281243515721830348821987874277497246096972279343567565057811905241807311250264359581808866967878194832599669815595470971237775468048296002532514839770990789219008874862364363525316621848076611644931756481468221154368339957120127188945403981931809809771758992100826396759363659680628232690381105015520400466581368930963881069104202457108002964048644657764514718316940406735340049090724176028113915949415121926253493571004987350670441716612468106384249722835332457940603319450305881794272004901481047170349114121100046341414465822306570625074231083187793119972237674911409157079067762805238290603769918558452960569634853900890829819594251763909281400647596145040750096020285938413637147336202630069114752304315492336307933477771964952911183184695340444930543550915702544176734462255721599760581250336363306405098605858278108348555339829262372613585671242113660275552076661420263133023137599059639934192057074225695181578792079391156052241183862132988106012116585030392037165096206852882824739194354578574768629785126755675603512654657141178465559084803613792236972060934083268776904244015737623502041463955947137171549652920168350072014683714419846287797317908368312689188715854619357067289998817396526570048057209695782277386394593589906448109338751969977484999266293083865615019166715718386983192869025144127656413518184809423644318575373910800685499609800886577616015430414540454854600885887311484655777046475269696449846921278653932732683356338819448301326864744499535762404205477524539840181296237264754431338422008577347480874327897293624488137471807604597518634248806083478706152672737662330708941324140024492105945876974349789407136190699671861092269331348840096132630718874864641431661830147954747883552019815856696678580206449165658019685551980904418142847126175094981349898498989297128969552916925910667424491429933516323843974169488335477863791118743366450788026991806785002434276825379355766952071669122475731935560833481423158336094503898485364666639602912277905024243912177265895911158170000129790279900199050896887752538751638094639984356598177437583166010290845328382457964631292638369331096927790018470250930616793128714346370869563270931185733413436662395758449773153533644585329300010447842018235185608248175468550732754017441058660725087741503603482294442360934417244683570966780532136358796556570235195656965623376754115716251224928653624507912797039400195114746044992082455413220282013210663966545888046478339179982677892799415290742498297513545194783252609739759696673366735316713850455082468351614908635215273104628982235095940690714925143906293807807371082878862922789996316881493100094464956769663809830967542698145855253404268611498341508119711585043988862215971884591685105234028029386136052919394920101218797825146978143551729735710315625608318314831177348592151590971345521682987500922908511336197188068738659352651226805174745591378549665289913796615594960493656861893187048727778464033798076605346708697607285652101633394173907555994576265063530610273724543679561204920335959076883003196601349529962835445593473309173374783918245935176709800020836916542274149770212243420918584027934531639777530377740489535260371954743237217484599224408358413657578693592435866986564904046469138062547874969263163014419546567225037389968534991224849427545345797648633325859333106239673291194375310505326597801489791004433891157729445352537258471949652119750499525372388197043906401472266709511958434271592020880185441371423341433001060903799149625254174375038527156479890473606759309364391024769946481311929904264352376727063630906398428597795649366669597199344269998826745205234915585331710313849415768472333652357291085090149417037468624125347583497956730888670640745765652093306685848054074185050421225498777276159501268506204119714488462594437409233522209964474109927906543060950354859054985326049122734214321043446199994221536010290358099078483465324481404459952493532820569434553440101300472459689366643789894894980613514800476263061234011135329853311775885205888846165875088815418849327385928699702984304082293662390198535544339145352628377878259132212911014806325957816299113648381181403650348240879716248545968805947668490655946496457397873478533708256918875929976670696915819434208533689649231851403505290024957286991227248202941105144075775130735940873036715644019250059796049744006313489810494681373081954917227451825628484509166149842676999217955465863805902883872063453577031156958065985557229397717587810641764988493469584779032188681140142861708114548125183962503451078039797167305121276621437235621682680075924712504577640018843138589791887664537740554444381085730853745558168802169201776049186879104974237770810917700499684705063572738704543396959412033169585082134867858229717243320928106807765834916416055921933580571080889981753936475187910388360780681099964442412144220130013839158251317346486444378282937929754581728252495845177554063423851273783336805617677546308026579053586532747047553376321239597499858721567024933331769585037280736499346056705638311578480137505525951548485921625491739313059992409963941493361450456430181012594895893958094637958213563377658705146568382197677224837551930713367157751328640507849835343113038738617751763787572433156132654845568484669279738879604204558961278139164595159990757214429158396493320138163978908971040604682488517657614562490913864100240557308776865104961454885746171880130504645200442813588343540950193587532423437798777501234604767198986515918740276115403835034080139594072414911301753320980033999669146178575962965001751194335502436870595499419755979567301233063472758316388430649551099192361389501240117694762280620684012192610801462497027523009260693930894311810053208588212836685707087125260206004308593568677345878796853512038242269400438463133577821928679993048093855142620515480737046902742959024414082235391326285547594190733381274951486310309092114789986413587189822526314510694943552689072679965296396000872182403044389570958272599727974381290534223419989564700966711543145866234151040801755601564432935135732947017069093374923266260288340185070614877922613489627559705437421447955398216009639765572686620774598540613709891281297224557478180260776638006035360373665070733034298396270280691850131671855794610674218697896844609634805965641843453943686469703624109520922553897862007392071280723965763005869729648389069915912921054901509346265849318235459009603742440103830023212410655098678858056352047717082657048791924724437642654503749415345240389387222865797514122279050010153731891248453985705879947833035685698210155144863295094360765642311938955262718841517688579740840256423619458905938880962904718461526007684403330271986869609584576311148856053998114560255783593817068909239197725343508664050454900240607925027394804388252255830428131673415253566987958565605856744879854402002587054783312620757599719616052773399090003415801557061384959213900634616226555223887906724625971642204431851172601029109568748514865188153561012836461068012224014230631216112315061503238757621169207128098687047574162902092008650664290098014079814306620707241298616078192031737953763964413769717326416170876146197219346643494086426323164616789272083731997990450871140067154582340076360138019242151595445044183617296509955661417795616458714094444702993332313755392398686152152587894262473867349808073744004082253465304570690699869538877257828789240519382549016608561997301341180756118665321514467018289901812859492595618951709790269671692847930457906880442663568708110996610009526380870032414090984838518104560268131565696095737788417929882538927323527062992551522555174019015552884520805022373748385776198198247153882803492874892477028287634638836058748666955832825742834218906406998703159533093934934939495375893784167271669038164139727189205948690352266716646776939148700581337281103819809306900518983989137311388590400286497677633823015106191159710986298556036686868243186268530249009478726489853600080776951364594596595534715476017398772935930270629750361266685002547114479096744078861529548775741803558903893830777730186905176553349220534454213259858353403175860891633908110261508138728973402023576871487528909601291580862645464022965827845678904325966182161368372628535206053231970324466479294190249731948922011443291438745917229576908260258960974069769516861623836723064118822659752809099444025622516817074721634063784575955174536765194525763426286765878943935776811614848882707392006534880067338304330615392449016087408908757001115031460985737457834643038112366080856425808300545619535949823891937316441810565648222930983999889276169367560556651350227550097137543965081880586272674455804453080806087142581657797232673440838072014826474652785413000808176904905335973880885016733682279712007277246667508759509978321966832242046324623301868985476909225548909454597330612274716940475737815730575734088236919868353893348654077425890556080079107170267152105365436915646608423984366971660089810526833920554974131561335135309477411586290731791343190235023825095328302290454557829967921107911253957241498649559623407473139068181685834495467268404781592461809809386598810741461566551515188213527806806364278078681665657836225418385827871179433973105168629764698582040494660317031809576141809876916797360633159077782300771563887326155901798043827582301800964018729420555431701357187453048957362004054161718900388181148237461962227872501521045289926735355956793807872889316542103422366572308236747090574494396243057459853156209403478585257286239631406195547521183494239617261861993002790786285478891689120841014080301037831202861158186687473219693317197583404408302599661458181760613590837850534169247565518520730520645685310596088051804550569341921417896996212134055100799629498312713191028628587210736439250133369209121598683714902455404256806145080791736236853835647746420816870796843391396821737470849677342598359228101858497334964679250364394945847092082148391843811640004208472097531521778597049111829627399238431202430728666627361913855790133827868102817831360584130766291342530454303277028855596312399164260422116043395467584547701920090489617137535957253537805375830168269747714310780112431223817827948857990283933867002840569677132208721599429242730797859995285907042132377528388631506248816598435308347506608439580135459003913124612683975467277855967842529829468204262856165054444362620690180073888244122162296545223815418589216342570374121048834519198687354393123465929859403867051547652766398003867021479772230418832156186406314693334673446017106553695016219989700941044406854528935208944790665501600923072431026469396780201022566580420372310168351229690118377191392969485099866247010588095502717003714792791235886357170836474273886311120414101854598654768473962026765842738283919363035192759748345717040223046516132695748002259107341406516229091748173553166643500798683235270416460351742172552124611387896939454144820963471016578332442137880491311674287834586711423632313007867836347262122065938892195311126757748685073938041079204303916779802120243529747986611290050714798015141831497740972446862871473694533776132630257600570856755048946612561923614412940568280237409400350795557109629516156018662839386051283061368979083418631980119969034959512839948118422030575756816150246289680325201547486826694694580695329779265153650026090395654561612827194715127429329838170331353473184400263491389440466128680628685650305151979114987029966883134606494335574837634879215773619758231511867991054228971570718661424461902190612192951085697614184639690447575331737151435758249916084462443984144419767632033828360535222921948088703794066701767651414847902428866633638973253675923751823640923464904893602004575078994113953192745238859794750838960482267108100394643193601761273880854788823965064278988215148103223874038775328230678081316833787470496730370398971328001137814357024650342773534536186439932230706623489985064765865544722034115739753660817626127291068573197913240619257864885139482063210473089841190507380472910391229100018829407504586291156157626530471223275581380577802023307718679056414331378802837909782375534117688261120150050243121525511899702899070997186730123110337118343807579770500194043693682482303361904984128582740915163745108124982852896025364877338387061825012612577128237352738676777647071213577916724123181359864514992020124380483390689746611067496545453596208291100445134887888073465280169251438298718989200537576240422618253311365374417802527874600721393301239070733142029912419180256373791591378764325756147977300523332856927597169640104937833046519139530913481408429574394150114889344477172403068205943599128198595691365398202298871997849604791974800623349387637539394691337905760389053129822990803614890899098148387507517921131373563956171394270441973858420832353683726795189456869890815505010669352267434164923363444233232282799647756782024072163864285087853281359270516629353228420954705965699809540497662453245931113155824602435776785039483164645497771940067661177804411463027838199498362543830273510874516788083659018382665347862599196976548267722226952772015687010483752694706111365889378201096062826611442321710316108920120892655020040684436169210089215054580353578629808423685724973522298760142402860146687222526240297189077760311072050452802348174481919306954946399767060522546613870959625712693737318201970155960575343542102443054132367158282992760775521803286706535646869693862923220612824527263650178360814953546351968789057995367124406826780485652090391952410586577522384674784571675819165654045964418325072195847631626717873437427303548201502219135249400537692092376999063973364308587991744372665053138884907232143819146965364719095190852281870925580048699054501426808552467765419421227097167559301824768746019670561601034544588946498416505834869977743677670956372302942853490957886677172853664870421555450341601227505390013689063308089543521141264393266584249520208232018717361122577038241709355298754540871763602788664305260493254846713663459795478743400716929585359271682299042089976137566211296555781553700426042918411621879660791279760926519238489185858117234051313294320760468010357373129941391664725907836448563727087729769731362620700682408301887920574338358657506425198805438234640701112540327727529862588898872496029603706231153713484219392484870845719886469896579610394676850803565634772807809989069832334386418839092705004170747849315216442592922763944356613477908125805463689686798511278281972645132202365569892161404219463061190933810133989338446265121787154600517632064553056418195584103257387246585539970893358553933331593903968467797657731560003135466592851898548357141546335771419605302423629036032079698053232945236865330996957623360404772685513730099755842538727751271487112661366805880594176882138327448113587074356957590537661896549220193284212185240212084411497635228595373687010549110391602280668137107642074960288168048947264863729769850153831807868001754185627354531150271901886031016244794319366713987713902008633685225240238371641699216728258179847631296987189061381768208360402421039836388259040746963215355611784773658552775111483206830234055148128912261741525090322249763651264901528190257765273606210398550387963909173990702496855710989338347216275128571802106991427054615276964012900252931490141375171406142344437118980901611456464715989030366878344916126424789554950947847226657258378796825838195367247369423226030408822316078477971205823060303240583042739440425424095959832811979035766258224339008386048415552837579935740163707516842944232437537895735236859060802321438060293787456503730392739460355285968728419796777578149743388690493738346021938499528412851508988523755558937750128847595435073396198750929992787032147184298735411844293948609810058411735641405121391151030974310283117211061795931014405451323573959165003718435939716237692716716649024632893007414970221307314140983644027076811164729988058711560217774456631237421023373973743172060480709685593819361133479440191089527052946613558196385904222451597778605429592324118628646384111444427962452878549808717645434938290682171009626189939338226639559559224903241418623792270782254198538079986522487447282179358830630991639081749411044163593378737809810165632259180174397735374842913729536767123079303209561921254563494667207993111766572611353940639946630011312196220610272345477756472952042986773664312577723398271672596003675554427143048012924592577710643080261640814704200282327415204578693414373339067289427155530018860144090348293748328093487619599405104662208417064125976840418448123759540592046768130760863435360483744411159781730431583919910751168184912509781564004582302737843052026233179427972941828086913549044174005824097150165327020811989069659235664683479939090079714183194090943254276800319548869076034461015913872527392446743321799373123703026752073638155481924619195685165268279979482394535564732486658619000398384247649545504758376135326571720303950114045112112697767656649586787464878997881950858680297248386605779577860409839042156078817753840821084798316380496013338538354344210151565220599342105376351908722302009031853079768980599399228979229204055371032247719234577371964401762275255595416236372167573960027628230697824618717651477593222980567055677317334359335740848988219321187744773627966865950469002144634949283862912422909305294363646928494758288432628811597525615717680736145967604753172453681988898075241299651579402139992028989314839012562733336217707095091992247191629325709563888129949075633453630594057487917983727267724140604716766716353730322881471005297911118261849985791502409272926495035731116291241135159083970328879469042904774408568742860215660002047726088262049225706623954146940418010492665963710806906663271766153266558178393970441502326203169536659462967461349889714320595106858314796695607017662640681037528874483326553605071134342225118680936192237060425825106332941464318912196469045761399115447529382395164452024184709071608602827824508887040160359966653699514057884649811131107037254516509166972263500450105892181096825004005561986734928754720638948352680013719008148534213804345624297980848151641633817430513146960649263568454223251770736002276127859045053410989378464498387392909181831612229890606949171076388351849288759466519858540577658605088634644068575604034863649571757178877921654442788998714069221622704598368958259343847475454732260766582606321002989311641658271784445309013175107800134977612059077576888728734707296020082282135481142844988195034691337132585214511976599867174640057758059933685338084239651988488027157878520911231561242964510525753109444560520112513317899822966115494473270606023345960104172873334904925085492050299792368605647207260491077134815716539688440615287853748774360453606079572793104857620864074606173057361752138124735700630003028926291348373682265544865190536612114898374146340229468854345485334886689491802013133681782139109148482725561340384353606945834052230501182015132153949029663952413937658598864210625119542394771383515127051714893209064517564461315767136565222703103844219764204008328136826054861892404441862880973255671403672354523068572378170051006908133477049449107440857256800882924816314120766240753491179040572424085152611699996731978555532666408894729516297716295889442884996393849980035406023904542488884092775315335785435706588074921008005287361996522124410140183033098009787902439614984339214029660212173453770896023381875668872956429356636340357583507930689205985424198594431583575683061353709721838950261236298233729855945982507178430279240491393381917357562279134274519772376223010593282348644348265559359869448812866055493115761937828384488904992358767495882916486080070618210849854095889816303039363996354794390470424331100888240767343307577822690242821617716163605568403259014953509367343220782591525309317115538437336358409996515824317676587273867837518012931458626656684600817919798766676519288128012536454575252192954071397073632719825281431687190182665636924796781668438447388304982780663921071035586474017220606018347619771223522720718219414336129244858713772350615264923773059052624674717182923524738966369218983015377425876914620311091682212366612710997166560558367531166047224681873523540604748320959869112771982213148687574112813644602388210209244131354752159407381709579738057416734412442431153739212952865122372828291224844485789313776941035463080138061234742938242421473317717500869478427150542933547170095575412626862841081417342727267796587290429618991598007996230451934536732398848658631526121981517298365798698304582836689118128720832903403484317460457555659366663640218384253512128035664559810337461610918935957517313749038224179021902180971125440776446782900676432137859387115983388326062579724568084331305255957385377140584041793836311928107154866818387822444197225248265609465452625757498081651968461051540758277572235632615263315593000650402623527244961961062042355311927305097461873280195037322022596282871990023956770932214396928070151148998195342892262249338692627715781831242048427467886038747889282845812998549102507383132453936958250520753831064728977239234725929952870147295474199527177495102848815863680735959272754153939326342852109727898909262370731421989624109586526075037132396643658212720724456721495459635843059102806683951687100017147880341876564105528340279797953064209514724111408117141213217308252904649658234381310616280872020345724122314721257392426536232880409676657820539074565550734495642295843968213542952340974365130628332629720769904846435850862080492312192897915904537818613889628852135109122107134578914450556699798848393380420877426696756100597381158375715671911780283103744392477822067622758338350166394142110359371113572409857772029916097814076095285789721375354377904219691290100596655503742604033128418411939793887115676945874370867488883075450687812228656851539949012730303011258796925253692962064302324623460512624037806408379561919578382545363638058788367016193023651127134798280240206132807461033713674481346036570061006458585656854527484009223307687055563380609045082869023152150778662379651472314526160115455367293965757651864738015019781594613648545229480267750308719823489365754800327215232985246056022047232904459288733238027608389353937032693937352009011169907168685955776701096217132301206061816068252569257487619947747784006348535924795497677458524851751968374786137999746055814522198836599088988692803083695690667825304890425022442864038893540265976275265286676747096562525522025886114203140721662976157239860024370298542037906307243101614073239065939287792450486868313245435214048828819848372184370216168691304810562099240082132211700496900633057909498570557804136368424585312566014225340097161220781834391455996248465938017040902863542115220153180908148683075101705938268610984100763036886807045439943351870343287270198103532335734685739359918232949503533957827000848903016213438371522164250897509297643695248221836710202653236414522507298677520124331754992135622335635941250112284722239147537311998401049322628826671701587326603745036684849509259453369045348527300546288649480702821754689882555619149754221940054999368484172671685314094126235678029821215411628125078768847787704927262305638011470948891784927740407865219607559496027794643201449702048487926976370136026130669153409633444521629526454885193712660711709301028549354520748982024366263851847784096028220835149555220981020234086931266142842746316763373649220997222596252689172385263322403168419915642612065354822518160475302506209185592982825334974733970017628117756268266160011436805691790090121976711371880361994016630875098839052101809645885334353176688525231223326575023695161441146981495343904660563724341283482967290963130284130351261196995068383216336175329255073561675622650829955296221247333205097996835555099748242059591928695639769935720890547904510617398253716876703995550666333473642554489035328645592485124149287696102181697045637959355042877753669831310309386109107267087071531092373682605930892938257393787292027632583129837581930910848558664636757635508397241559739259019526234315216898283929137594749538941288663680056205086012411101472496386504771561627598020917009716800916546576025415894738992883014282125085110329829939401945840944939322997598939209568640912853863218916284322520556750250616991348373810133730943550206542272808696660401378204634177674909053812513474797959314014218099061538279826207787649322822386930762300366138909191313434352011083977164607141556901652691229604066475292994874187784708271237647562949756616475308291108073488881058116361875339806952431482432468994466047635247150414875065689505859304425948272252234810343870706726081294947123348415150166150738803488349157155662687271041045610331187099256213277413219067209996857655667080285281586367257731155988992342059492924085424250433691914112157290831669270226478091658528924749245516366239941587005485626665442386466578075692158853737378372995698663394365198585916067029977374317404009931847830566816965052746075472651323356482879964972060738789575568007824041622444386513219914927596902231049139765345180703519054736146229856270788910565718007080706785063863135289663878924532131398375940012767574943773620499619027873474179956369546297835350695996281466822660954511825908211863092151760978674276160062951706653781913304059932375408926914794828242173766754538597693782301184262744791332294650386502158123632689848404807522977600129069522750905527847067550198672363495289713765106190264544498633517599546097302989192254739252776221909427051784328539701381479300125278362705916722484103553589270630747778380935357801059262222941060104243977672756417347062702093562337679794149692365188334224276193944710904904225477365882696210753998286681806393658228029305751352077750244454917650451801618122785872425887491441143723723167473206964635456935064527175835945265574706586895517749572943419779860551210938993883391881118855478436411945263183996405556186390253746460638198758215931141746409700915154485575080619965800415471348366633957092923050349741030040313438248912020260162790587955949764771691197084218614416698592992389988750738714795398162750628342442853634693109766834740106246415826043923351444260175096903326655087977675909268098254293988104575742413349169394797286923852256122099813713674606767934357564009164098846900845818071642806533719234098862628269707819199101743269295572533221190933906102632425809050043700980143832146264957075712005360642185735046210059849153427483776912211887936441576288597477331860791028522071253368845613055460729738285901448239225197790792003964516241114090173233670582241696606425736731445401932587509688590680576037309629659644902987298723023949527397995009746561200926944764699983850905257658551970738617192148316716085809184463061070909908219204774343553853365919918849492557241919069822806546161419671903367128607695625502757090694361651511604090097423638456425838839097347397810478054131733484669921556826719991914304627001087595870953840819344830916754244094320828698608769443033832245985494475854658067477785253387179932532212651627685195834593351967193756336521013511371480831929713629708102305009023020704595787478016966961817480714804661925859048642778611981682258062275487989252927384969268547053284042293301428484471976527553518398047031507060145565045267082457897289830496707249609675852725472465505169689609129677362181780879984641001300595401732168253345778341382454379512865173781862704435738227633482000298759136167760868948158865619239616761136167476062699233382930145363524918378245091996101401425973385378300831610798210340597067877366483423964622066516548507044105425769432233947575892160883870900067650496510077355818942241346307392940382850418497039736370096420804350725053823681641927373940804996519469940553316704174122602053464296820818538477231922344608213318259728137427592170389898783050504642956120853722504342042752542080474866197395722752660912698518809118319938048331956092858182370357294119844888277264851113712517901606733198167402065464365125552015426101092352824803552919480247037347231287973543096434453588688112976882401051551096331134291601239857826194181511922639437256700338929851064686746002448066663050767878801055582239873172147563540243222525182825841397741422181274269610716604106467071918941272936398024609224261363337626919201902850821840227180898253331895165021024709860133265918216533978110857255408053639150252183252592472451319006964255044802523332275176654170542590158021703799092483860863468211279480285860552169436039355185272945435058684258330351778346669488133010835030002053943432173729790582002363120810238344031901886127104235267971439471832555740695184616548858484996674543372284194359721050722428430694212835590389759180899175611342456372381990668697523238452185328560087036656988351243124536322139802550390335406546354151586965909821446031440611982675600472717275296591956955197657071346781102774404677630313413114310523589002023666821260883933910227668132477511034122862152080100973323606112743101328566033849391968861471335800323894502876655854971089908159449518209966866450856637205752852440195025717499522173285276820381563307598865426477499009473599215622274112312511666656043865760629656419592164354028622604944803914435798031741484651100306938414687961908320156238943923387014282986352536370309618762114524050218163916748570593140453737532093758330528748095032050881074864061087998146769077286711933796672538326413676915762121647263746726256573994589430626431479358828421819699054316554587986199460196413910156819181516735792165325769802927897624025960571278665470347080434982174876000071616406148031558915578676527633805390079831175841871257313832233418540872912961956387682904499820928788122126085078341111762099901990835852961128096311404994788542768363826659125094129042185416030926088815039662832329448620173187408500837201577209092481280578298376857261592106954807197299076089073956270237993308402552685944976693409737359027956833690263137415617215881973748262839863979761160007816644555301688158361590834793668112671213834271582662359953181569820476726223353161811329193370086397604831944598154419936352958838852072175343027820247493949349281921340129146826008246772230122696929359174453630466537804367290469817993400836511351154177868944969156722562814857731392801270795965109905388476481148971197425617918550168580544679215277403683788139843135547743042458487421191088275186108932465326501967980143332393601099137542375395374003898081348179269088363312844543086049219299230760638464767797337085364943094839186709589689719823547679327054347825074766396887069415645499336247386384629794397332375939533342342575548043623776500772478983329359441200130335266284659041773202994458879863764779186865871090300835423778551936873653361678822302984589262410036928301456210582918324874765081597905103070136921406600994681152357852208258809640573593961511581848101073834341053522769106410061018941811992785582909140847752100155609704138031533259730135072694274704866402554486454697610612988049687514522554510511756811904495144381087323425041227549473910206508429328387783664214904051771799376616606340185435395160198537122211957522642107247092282480042342318115665911626330316956381898751506993312180027387415270487082950094239082727609190372017002381478733987538361898157176439202583635632346618361524923900152693335940127195918495780047840292552224562917692586997969234882085614665860354658209152327199503676539712230692445588042117017265156654465408427242192407061692359376201986898111077075900169419064452804621719361042115184023146595844789584959223331696010147853503728010095484820600013392553793398370933967679499002578285588265528068949583361824190798792597240831371870139507302076322600514615348897212583499839825212631801606773266834251237765630323950291519805795642744104958055319025496395497395212570083707089137177407882197294555281339490165953589536388671905616282207040049963180728092105531969755837753568608612967017439290747042017272970364738195544650949581953751643523714293484968575012071781564226921146189348186886467576702231130724714136567251711833370310956235192290645095374646914826945476045841138616982862940732022077860584349238882077599259489445246982029746201086236006334277435263245171502600241232771773893615011793322511868440438557108473223669545493315174708655923738415749460284594802080436584892001485704152358684710035723327345585613361350906637138211395874443807445049746862407755645654361649891929450819170643988175152900924406762746549195033178525448212516758926993569416114829723212852043612470578643041552614128602269327145115679119570342167239319718156469283398479428973145618454146562176735872861201379097362785509964867976023367005896584435584715462623118682061427137144028656991281406630628551668475875920392993020690512603353032614892250465432782416312582569727869709338344250581633265759686538598909955008051444038657922246616474099038798474449281950103166138856481321291351382259669534393697292416460786754130144033218852645923143026505203525251888504952939059949329302141238556821992132936209739202493635156004755338394585868780385850003724367890551958685646012582181537024994872161350190065143615247657203888586308295955690277180243990143490938378940971601941452807937279363336551236868981789445429746409549868700538977097760476859584949348533540416162264484406173025300014187686266419251497050328085888110712059966557580501389461735434702611597907751790698042760322508268616699917180873190262108605472339067819744597565573299955130813459108732919041694396454743421466192016084960107557854542827428228658950777333304351828732568805339364084358277802360540150182818403499367471873820823721508744481248217550600339554090960900096872609912667671869789879944568361410610710627794154627521994548012092779473380994084861891416612949524740374324580904603780011397290897065807213499913891969048448172049278901118555660224983228427516533993347150139063766211979230118408414993975337206841623005286688026930333599846912593793173790545118527202129458667109768822349032388330623883687747122887205320970423772222564960535756171852855614620261490558513549472007471138258130196358636296117588303528111967655146565583215205324884021301406669182202972401481891457767362008859227838633889563915797779805012555677107190919946765691769956718724336093060706914929204790007056795387173151754716020544311594714655576482296070680066825943483466577028065398553846085179117755795805289664822630766002197927451842849439103059026549115151162019414661856543074234724509838207613302878249261989334725756785837478963915235112764379614913019410361955568421200889906237391695634218185846983318708707348108047698367822102342173145736788919082945892242537127081531814038777075980435329743362748500929813922167165720628461146816348194124391439771989052825827490523270166586439743650005195072150540323333826185885152428004844219057163196671883996846443609307047687419442616493783315482200135653624599526083847610973548180755345711123972635791860707084026163168422476014965466675955496051065208085881328120819218641694182663138461844016713398906966913476789290420637582037319626752070869156325787311587882512151279579198593141937321105744636806997482651451784866275239762049738477877042724118952730988345741032553096110004823749356874540923151190129040317092273026787679651764688499337808623051862091785348749619641483869521415886160809405112976618048461854729918784160662220455570481376938719525528984858318932497495871603912908060036835114272336312771373843991442128902445575372067191640506283019570834622491889488415077498945357053044386285859305208569580119102835347296211201832056150608838097843416057982244306868233486559277020548410318311976957766777838791514591189038608279412320699166044645854524517931215681749834479833398101328953346809770681325646692724057657098608017204723825695668712101462214537730469928141174941777183328938261121044861258836083604172380788331081731373493332087443488906588237841744375610881508643442930912879175803040445796139349647929363416814482828312395264030959883242417981356038007202955951951361518766176859369744801626845506865562144550008296823295568907140669865097189530552635129552368061271813541202305353067958500473435187267906796475487217544520829685159032757361335432019757863163579300157492836606185896093926646612677598740873492438533628057569296518708577433053189405332810115947328387061103947020044280512068618850797829232575582267644500495635679376593214998763378874518779610838223513905288915998926230682093524403993752887638871536592213992510115722737027762359155649928130539599103107241900475532623728301631987592257882722711469472489494921008676470380582032070103786425954396520556270568844807466679264225719809972328351736350201756239288296411096315920378916770368255759074591136800408042079897361815814688611209234514976894046648228461220671959696732720308450770968727019584573614330414265896551968891053288838164795769173895241234207125758188203679068337975166383392876900650011832118173453199316477920571433515538878038193627198764313213927555034383993325459019604414201369797318205271648422953555679585062386209379272528911743704299956351906056585862946500676531648444390351081794616370241104795519409626400262609484455755508964651334639974250278730248186046583201669253129286308387294207106790959352372611168063346569532340620196914093572942280241617739900801861470083019527409473241895053065715404359616043262392966937023835779627644602627489869688703963773342189747490673108252983906192291005943805962796298711388011492741599307431697764933426734761958885325325350230367076262355336016001678919893094777568493080339847451191907425383622477656129845944245762222739660115893017747374786738015227787500244668579080693826654472526644444529777069331598220000809774574095557229571691136194080032821950761527319372669839737907548860854123752331634486434695092623599335727290818936627949583515841505157335542005395085411085553165238707782823924462424422690582886112954670965866855501096468311052891461790934696190318547349619815753605476191686077842312809931387152076999862335528291068996823905829671264490571371653249517929644016599531572952457913122229892365429012266028217584299361329489412284632436898299255869671172933040847441573320981521102542933261667272213346961991433007174135334358315289857082387396930842402933729293015434517031606739195381792930402361454971456602680803506196481060530703707154001813104661898850615481475288753493976470551889847036609921165394561586906240759998815332252539179523091644788377723012236172576154485732294190512147934938437959554318834689842701577051751630399866426458764894685342287150518133662057265818830107610053349549133828746099551178269596924349244626930726805701746737055648398612562286704564187075269359808760867494682635965640725542591208981751941500471124505804902223756142278189380741890409568614969824190995790535985886251147936379128811851273493054182482540469593877934449828637536238630669096367826876557436463173443548905796956435399292556773689508131441242375329793819987479805607387613651962488107879432377360543473687766623167679124950694607583047641797599864817134218759552867920276600728214236367569280474849451201478876074993206614381973067337210684434669231063408313442769713683210679252763695088369242963339202090543683798319622985978491251824235873694461694288559674023394088005520232194407251041499526825296028326038178268450366528372197142134611737447054398851808683250743559452057031299161779932517001718768479839558938054300257162200956543766025196698233749375579183641142974075591021475614694180368666060638649182090634050160790803030377688832822256062218471577357959926336825955376501609418429203282197685039473302071249209435851914407059771736993414870136961573704266164680185424045213105394640714523701444129730386665340616983718179409304521505185541346696007418703491220822703035602643295814472548638363874889072280045204660014751926874252383183555881915797569174502287218937335119932802694198573150148664738146144724510196347768672094869482508412835980176133152577281116137510965661816837898129850923441852731891147301350364209154596195932965274020037553704298376071962260650183687115773042099326969011136501781767684373650531790699152160676467395581316798588134686276673482662414934705962582057228205897647990168782623884217077950864262563348517263524057120938271565363957244256004450786975271382759526131590385800367679264342413179748757608395247881419190687495424771948683850348598782630539957675011410157232255902907063731834421309448079526564344895175207864427346492311891370494694419305391917955577929878590024452876779757582323940300824725621878586238813283261737245859551566351235561258168486028743558371325510777872548556315496083419846054746896848959024675157240400074152143650827380240846650791717849904594459874165318172884682120198621713084681721694849806229280067030222649920410434198409356525903435455395859490865008876030713950023116624683078714628330680507622339023597878667811134559357970612368132909258176242376070987547602443968025221322269632084997071861337382971325343785814062998849341145722026043493778087830747356366475270213266532487862864168648300816843822891454506871376922679963773125780363966625220242288511575708626834890835581051816619077950114882087900705851601522854631431311179093147409953853559473871951550226645603826121698283867752226344678923454837308325362811594204022441604161504512719104141846379283500157145481113112972171581380233331163191772578326462857722459223810752492044395657978062763713161579612184842995634013070725671171667852025395175701271159735348440937885007882426476420386951866476606445276973050665697671716000830265794433238180342060733083461868083149945109218966970301604429961760201163714106963628763886158596824192723194039262360994037560317643422935000512185834478133655893312635845819033102412179534663194068676234531988236340574858412760031821581607880259536445767427579158476661111137928324774095502635252319015029751719511822770113516546307297329749788034754053237757686734117617680254403467227041949474203892282072765690255406776161611580928697805701815048779482226803209914940753509969403869078944611666353906270711272674336019245410395182654282836039803455939535443897142776217816325054686656310699702081612114180454818175948889379357751621005423886360107272966924050349237079563637088595170653149619779095844093035744543329584971815654396814289211820981192601181580303787229364441183401305013487618230615620665776526125133529884148454325081350031703503956037065162138361540126226286355363283263605488210647307081609043003567191234176359831735329508087796700931622662700373642920396920108277313510894742671241828286650176055421900870991255478313029971855216987356200822082208280841398931291733096619207127219298077569968093408025546033608008140021251907857721346296039548062274620588936364104350718511876255516139148601645053406550038420060749038280661105334946864272000089832995828740103567628045975744596398058083022068655617523077780457444711365990922696964775578168870322476353074932880194107943905851316580147868678217960751915134098393729459203144247299198709006624111730133140483470142416193265411678226744516420795928159524178223342968158035267906253956546307977946634456172456729180732479525107264268669377938285371709962407721486025243456226801115291087102834509947661629717639942567258068706563792387676279012071683462663729742944289807917450400380410660586920595332326049681520858753395423900952323682627100055252633628113425186993635287158693601795372140704001455695106715409991265741680913840361886089262689070265652333258153503886259639066726386584071705272573640456018614047398851421897015596486277198428280961003129845497318906887073949380887665702056349067622447224912668806810046317691467121452088760617432457741791700495790661122995261351893903145212260249493603727658105859946877979906018002526711415740719242943270523469260989055979588214303051616649801600737545164963367698681206943807698041231287909948157171071244672667215965580259462024832224112609492415224653109147857608199644384105862000107734856978166765754974639558144589642739769495987050567648987851341794190515674092670057171846522485873664782131797916954271537292401763900000603092661546956936753108653848893956311289101511975676856045351631219114119463576882503077775694171686513692856937663094852548439441340958839812613769164173058335165617007062780698358837281284708521623790147878207386983183710295041150441976445315793397810557261715216686826863323615940487976180756950591673406081662471059386258646433947126565630771331983285128747962271978050633017172130659163085912183292309140822745672251748789618659102627181594224839336852939004820610163672840302725146553053381418286816350804197894857072997559914410206479298719250669673468082472479415321690268188517022346656063160998302192717865164305302533788896416925834718024911860596695363638718954657061636095375544957835421594293747469231489375167051409927046656790283135875064191551730834434771339609583333450818158142959474534584682485877657294414163005764215056942997649805906774259480544314216790791345304209620591224159984563292504622153511311266692997739108736853955067101750652064571742553158935127395374465362816677065155855573153180752210891733266281915965158219203497973725424597268665888049887527866036428150950607508297245218203408908898581095076088869297844505116138465457011297344820253216755236880726352643084174304218927331513545065708181662992210144393128794455306631643949133393803327058532876669253659729013411553350767478513992150752374209499257131078852937532354218325949706378151835308790369693920746598428250291042223780284252200131155136566551025627992213858873209559178108341082944361920296021652913985341676134657199066974522305517133028333169035749492749970441662329440266283960687086951614334327021744559978711453634903307687246243075411124403874047740476540077234154771059371724811098721125226170738381885467645561992563654678289118306378107704728998121920299948425162587332114605413368211262298396448592945791893512948755141917539490490730322747231769895546715720431228574531715778618380272662165222405986167328696909316787678265289270300129584758005335661740045213487775026513905614057213428413370823379991158356814358553244053941041782608045457484054589798834180002386319479193812288312288737322424916154833951054007266615817249568640174113821170649724700090551483183344157920273836272008788239693405088899622657411927688250305357912462325353311105032635233333088707644937231951660834510484377521793474851424821160520063979166282024819557052862072984261567731084087565364272476587355918477625013717696910752151688516987333547037801229799871785961196194859874857493798620892822290318349574071509896415444624592767375303110587320606638999124368790290573113091434989935417181531574709491464516358264438965694137486755872268491386347644991558009827074892246631629050338915090268847900803029599828473123885985930226639260167210678583959656811384184284200642146647681244692822219571230647179851382904639491968646515849450444494507665184725601315064174911832939490831388862756132874612923768664315337261976581643689514736550178625193604644585461660788897063712789206870358541857079890282853942417608526989478146977242311727996270440313339184838858942277441225164925038070172314167110514126565865464803052948564365293193935428325380120401465845053231852368300411755802969908951167633636894491814914651625129663587449330779022641176713325140023244264152301576045408915679975649844768275584766309507761697226833465087008873888629388795955278982197158577316153883487139813061467662591187478257529891794576383841496089649033828271829533861979093740597094194139046604059042578272928278235709601486872327388589122098534393662350327211593715282360556213928955081195551918987503610505022092556213377563545392496531310243054597938470803352949796708955269181596469032940756879154271689409655254161316758067077447872130171422703072337748653768022225446719205994065787319163373040714513706794553309950001210557367699527152452225775825009149550809051361462388179403179895362809920635980908152932555511436599653906690761467342853348730603714805375663364354286209922811174745785370990694294291845091574380966028328890540468592649504195815076254547549980020970689205075225541244167500989669157154341216727851325622552663950710449169981913958215794127662725564549493048027241700530073595040442041919668323725915286104709470272318974622890742055614544291843969349314808968912132170550439043000850061610801704672864269474487721152355724959374496552841145995432313443188726483017617279678644519733249076957294720351705934914144416711595343981717411100188612976410803856788934576305979494514036234051995703194542415019489820937149586522601851021230810153901441538099310320664657752866678912955823567094674387848506123757160155099313629909281379967150007740849007300936695163647322944928085930632258396705216764126416288208851666406360080726303164476296394327385660261245574706691401479556553659852209960744425699103143658124097979115266559156461824756659890118870856114175179643003755008821987440234085180540610255291661234541103281510287386338913317819096837051846815359279392292285757298101303767788940199826486493701573862008921311100228340995851109823260473905425720832386650797138056080997754587282439999479305239615531287099872717628281519082891223749119279674565825538124151800486608622938922612269806765210319205630448631487485680063709771378841951870579116891098477416109439875063217600777368832309080829054913807869255780615009454944438475447086957222927239019698924186323103710965040898488256623961718625784925897173085145048832366686614555202485334830190252833367145572016549253397655119296496690996708536755059832185889389305384471008926547758619801337619909384953417346737894443890245641318172502328742789222005567126395088882372175399802687409000115546883132917330716939069840453797964728448025351306075809245314556631403870785576796106527018048223421381044217846352596041432193166872338467984494299637300716155342055451769944393798782301724105214094028223363911426883020715030603283801737949126563224869643548910930575167538616350121858583580746707895058690801753937926875773184382466606869774891506930147240182731410157683368425062358282763340673896744323037025507015171243991007091658719649578216254238216746452735710917078353609295082523342265772406402743334496904614681474700952146550648182327732859520613856534600318830940932006865237495085808856121339965797502864946060088505989437167665695152314495720657274608474753456345541268403254885075853415609603636172819296876988292302158835342548084811572628506545975519604329240439304343389346575987329542684092338643713990177375694385341816052688843660951427357904511824380757443144060491842546110229885982613404113436727921126200709978018180610893386252630282259056962368923496346218792323516951308005254201448702160493668946107722207584239018354518701121608278471117548709830806363174744594640035297629529443118371695583388880602449879304641312957976731038552772325100987083555032767724054377335786267506041911572986209164927861976580891168693325699783251025607427215808056179796286009963697385584919529483655016088274555351465800521735409754313221393625158534826445997394167869173480106154674352004792435693435004055343138839526599249232525182100657850633794479235620556926690128475191193839477250294789653585184223581217558675875636732046954378975671605620607286332256058039423345031782140112433314545947803650538479405504814154351657727357432610826240142756232150159829469073481941882943341887617206802893208713358136689837724898975954978112765427951776121973059615462674594766607697811360187841143540187462602630492466132299198077099913673542081949976862183429062836414513465306207252979957825162376163731613386166042531652658858480209328904108863661908288478675981037138706000452976758081843548143373708351376766747820801332679102976136363617999710784394535498449282030690922100619485089399788151047006291377752170050552045496049823539669607487123422992772862253910724223826109702830066657737777115256692591379924901507334255746318226238669330451554004357860194090191508041406149999284304452398739050284502047648123468515284094598940614563038006978717194229344543732220314949237856973268288759430478357699290081428806319348667720440432537018418730007923528733609720794352491041148617079258007086929630368893163455817175818965036558424803174864271106995292884028853383308177075101131454181821772827396387615313160694144718184833394181218589351581598956162488453793914230602093660522267990375930123962753844517744616324967250940574224925087809562760377379001905411154607313596386578623200008329933130406033116270651408295168496064262330064483749725711922718535438119069408606161918798154873823559189548020463679002549009175059146054666012311641502200361190823993078987921492722535835709202385084835977298149018780284696120027967652520113874510488377671043480956325343034752369565005542417878045702741663224779642656217566833565691399689345809700726511431852636096094814255034168537421622969154152081083253968783909736408535902382037591822739233227732617870607145735081414910630134173041883367741654948862644571949836682038843351346615931754033412438494168477543364975323746363870108285076887901171724569760362106155235364459585649719785940985986231773437860225740731273469474108616851695684714543948044072339564021942298020405307792284520137968139338637874363879946724043548319134187997578040631723331646678562228786462421212547069503099270295124396327096908101351947281970725622687920433840110315575042574814005802399578047713927003789032309907201707716686664787918932266026646124203941938033286524334394552325423384806017388107335518731778911746602634808468844399301844822777491878626384468818793496409669373903336375163334551443112270396457228747111363347721648283864171256817855082233758238956175852096450985917037537753659532030145961442475254226652405713415941696166482932577820739653476502399842205079506676662859458002187139166320121358562239568705280425906910091903161367782936358489263063507402077704479475903902205313948091143387996365301350207239875858456971315855090624082592525091285813064086151620069212295260120018050059225011516273707044059564930638919436219198246234687568528157395333833836151880475306687861442759139440353617510403694355229451672911626395734918139603323896298688577095277293974603272231460407432263471027024263101338074077795827701029188065874992205263538933824639239971803073257527370355812345079967329577255183438703646472917036233082119021440380429153133297409351413606349510694790049688025211329952333785043147268929109239340587826391976489674961796674960633786491764554959910931643024615647308789564056571052080675366772050183565071529268787571194520898893071566663606602645502615962989794057856299407808507996933838919830050206043050967905908852813321345224468118040298573199881274770715041798914768030385487514567799787323458398202137898288203053494617518629980895181422368280150796154440734719375895613835532745377544618399591649450590037887682068099592729193068499948929711817450042158505797614943310708292936925616301925101564267309186745773930526993563487057786639540449326702856781793237978002461517651756528118472253241536777167285437039919704758012392306322017982709957082281292077233537505242595616302430307859039593035765423102547407668248971644046588469634878819634718241938927519843974807634173675178975000183668136053924143628104209930448972709674540199930958994852921899720441617924153534212299925135418210249831452090717754783573413882994923630493057305489882957054982894178163912633673084736902675446702469321212788402136547176802438571644128573025755310494352515674887134026537659635405526505931304898321773108078676643712846552175747258402554226801895286034579943533819743981572139356110613488444711357151599651901833005361806248799541296182111150208363160921422517021209141918922618284170504021289808702253123906097269028642023826469627035295120391998844973855089126313030939194523046710000868690401746018003668040872966878682565580185272299326382266779638642714921399770108350979051917409341170462379948562553654698111843132039375594590751483649532026949313215906691079719126666677408418395500759746058313133446128667909881822574381006779802466154627459578295498765631367005832399487022687211796035977696218309151089338443676340414758383238623045317224251112552047686355470668968635765870081658677559592139592712674785788838486274996744853438667457077577921481553592967130780260811088879882939416200418352009827592379450922669278262072714831144591203645685595551201847860525377101633804107730634771367883418182202879645041281577676029873331550916233398494749486631997021424925474933489959190284928538032363279828182378212320163808856991320709990018945585881578120434230619589164720703730101705597306363989763000917213578215880003017833104739979782816049942035138682608739967386243144177222817487744013523444335347604745762878992260141829611955829711103861961033339966304396649741319437767377098901877312728003777378683067540423564462589121218374089930952023941080480359840569966830032342548567984554492219624433194562326988749675111743682954809366603642943896864532358166917369423064989307548766832756645744300238736990470373963510863593529698555042975056167291378983626353811196429133457760770519290831598114443102812059297596978139798292896738721533603869960722745089550098204885963409552462275676872208091561359027823775373009919188056672418515950895312649218128239649325366417784671824437013085119564752556663211449231849319788066925893941155619959443097690940798616291838109826093450335008347536103047858971804567298007479997025759049493045724390562060490148822377769289692667742681316142120322106647859726911764212271005307503804000471997440933027661841873053655395013855508663104013506963584358020969522903684068624238819629466140033396755018999431370257650719873539579016523665940311120453143211623023323054713766378645263670462208275113639256836026124315050711641247596972723959127658276061955124729735355806024038158077867271914936704803817468503076679436278553273350525809922877209776084109146686368369077737736826344452746195546545072085423172420265750449730057999042824380743450131850168774575580283422725165641612944068045439917909255480253684669954400736233605681390416091778521472867247759940518669120926000837144382159375883781787355816829398743130895248440475081206024628474053186608933073158269335043484321624962552479374703177349527495465216731808753821569548411938815211310711978249939495636522440877558421731862111378851461024637427314575803876407479482975017779267284129286296240779817563591273689674843634996415871950103371691545000573140820570052534649388254933064603226473347205413359430747684887018889784649243202155710949213528816375912619288258656245926920784658222650753186259852375795214046252351592253852352323149713835868885137511664343304583987651787369548286487990889113476170928868981945884500456482726070535503278548487069579948713692701475671699971061100098152896614293890123689802825881498694075667950047477602514626040870679800494575924137626180691883999244302745340281486187502662316279261594071234093683749904960385646633427836903750101749006143383047796926646291985396719135454739140430609764088767992133314997398954287796690384291430566432296802157130795746313296975942868951865127453203204969689491037915608614703569746938755399616073220527116835869655674744413584778541907056921101626141879923343009656182641754408694586363406433933293648801664397426144180723884355325598919563973189493873745047308928326812330711928583734523366415069035316863468604671735732847362886834252763587357349277138538595848916823251044275328887778647706751711153372928164336797055738254973615936951945216213060605237094895615214795707309276952716210202754731834003828159627673698572711382128951909117221120173423063471929379344888026479593666497186984264871597953738042157827607818230395740687409066745944995835591376156773647148877558410690398552732779361166799955538278720306151390533751332199435049276090293286018976779143762221602707402987845759543346696043197203590070267749495660127127051925440940470826465399950672148416468346726852737104918805259223516519057479795692970466952018627048516277255352344782727688638645859093204340169055379915797560787609500672249371503731350190545857630699111229447960990387506605032915556390365347503438801645813786009231158924832870024438272872721884690257959472315844133243646950767190221322441846047403012042337439218504797795168380401841717541777961610552000623081968287024860631732318276877535830977754089619472623314557632944743337490909252772511496132656287573450806504791444955869691511211041299722044360556302029658850564800579299474183782069837922556967492113510732440832710160788825876514346645071913012666418390380259773898966894152450360776884040139184994909678698134092153857247692620893624430839240546515387521886715777969260669208548340922015838170914287845892938630229548343504069509708159418897564198727904314148228968585809977486397221199439755182848160257102750489616071692149949989759482651837392265404577624498731729652163333095644087967163518500641709937446246648143777639977375023024343101257179527799091784654493581342734785607011031719997857381583111629604611065004756926437967335976224827782828219836974502405748000879116589961405718411178758995906877454637169779840674272967993915303502942596862540170494012392478199874987869168882966005615286838294798995067276003259814241862100898279176588287190425034474263007099967931622716729982044234414551903634546969659323473626878398435873237689751545568316565403958478975114724950390173440910931453948711519922575512986941251300938499940059711846750864853326801461165471760488537618165494274906252665318570493432545048872412938494531491809753592000405786872662215882318243349789990097919937395058630678471503196615364550263730106860307066980978521915588859372198129238187815528132292193340426249000569877550438243776293485715452588671096704201363461693726007238226627997589724178594391591723435712603269510423267698715070673296349089260981108689617585006434643983277317481577936194537220443221740757458155485882199305952915540174270844157560046145426704378657106913223066210172099320698915841538437524268555893316082158753525963679877454716991221837907421258913945964146823316421011433388848362667865378645062296174213659295972697492889846664328340805281774585790937789793883131636810450975328230310552221588933465621315483973447889022598792362150233590299471246515927964936491629894599415346371621070895438326630236593207319400010544045990066427028130280435544916524667080551790100121051783491163413196459312555758800291570152049601708742585828368366380778101374380482324617080379338505976929150215306840537048474365068979254206035121590533337202180201343404123875385017664581288023116300742423284873048029358377302663703965886135108981226841970446420385051538864464286732435534894302129853406623179203100321047334769509673906126200514032961452710908335342013443787275990831135282043970048706235920511340757672833367354771357336184313270987061444416082906161214246002572336982392945139354354748573587546011843912084502827528535748183907383376967827395343372448510171130769392976193521206074836595106840156081293889905922793129603868232854027624275221301834959627232748584765559351066989079130313250213434610993899266536856963178936923693553244757146884791882623322159761545569525239581636566631068721392666036103941474886693650592810958191150282451352832839841970377650166397601196046167730444035381476292663305075819466103556040970246929219200991678470281884339857954922987811320145478507007968706482519126936974630733407521819319845225999569911079836208741793194224463403881025801522398790171188348943748135804325475168547157018107015408624789287344394080392401048063128160247135560599185747224144654016738644290315005248175574057108040067638070661465673068010876680474116641172264774833955689713348219091790636401796504242044626005782225361944950434606749904554871033269001529680133408082802644443254742506320513957642379555310866417710483843782945737254586980953107419296924018885330029904037685121363711947120504381972275278253855905566662491533179834099148711345645757165002870683390219923000972342566036344369369770989187726999118629481108216580746565158820901283997397059449826164200290854733614071273500843043113961527017601955262227242133104662829128291707640350356980103330729529684421039620036359127795177345775850451940368590952783855605227134684016843259853139934178071967629540194602867632462831109865794962835233804261940028637816035513074518246985023233773403385949751635596604275268560828367078857541113592376779461046267257104004912675019473109757730026260742737228754136723860092850675097403571887003571587985504324665206214404330036147182201333836424988686736995026842091685096816679635150285245130810725582864837178107837366798975274433399497281863191205642565446080102772923921398092523074867169762775918773537423436738416086320502019395995694172371106340532979037690007734590788192739916411428002183682769722073553322973302886902237348602897333842003076573331350310487151527181084683055564855392237566589029502562545192629915253502371149842207684785560595299437327149505031788986700448041385506570136076102818653694272199025634820533746301781076560438185694524218028058700674809263587878068203738849769505385586433561073588175003540628305735190753180276108591091501590621739144638255568322740253152124724248794438620566099972580894811083079215345780297947887967020571799033270994200250171398319441640125657446421025588280981329103437819235917656782329628065417468909200439681672063165789928833951798057167078662220866519288858139220792814854148409201363611701460341561344386055066421062223939853804991468326992118701537907816510666520242045371684031924588899659808028384883236622775573987666650736871566356626381335337026245139305922604528674503502634625229870534619622673411293456035605789698485952752220997202764169790612959525341705250385225614232454899372497892316924430423601559545775810427814734322837931947288105550658766437533425985600586346669428019626756246518603764456463708851839803200662360199205799586654312239975669661714600985325671221213427864139787935448511129725284370087821901607843869211865817712332120056259623046698961986448608705222380030450396484943225205827018200230938584027774934397902805898218231772864508858530490900924302688750987235602617523607049963272544465450169703334478288838904069538535293663878587873559452588491675545093247672935820012295203747848974755433641214325831685437057747164551930996895908427641861690510607037311121682634487452776689501817819148251918003583570051289096444467299471770365361578524262848089028128019238047246295053009770772479206949085935749053391023933094475782230301489754471663852214911627651569220886361016142402451894274474984918881648868254981051989311662909680142615285970078023031496227199208342612091121139371051866259999996305229753091908819920555393292234940483997478680414365126190056363268334228513546031185910602422461353268649549952427947237046684979155423471726505102735207432794002947999947455510304030472600529079858800975895050355421550413251936112832959708212324163729084369644112712018132316183908637837721202799987428876801536019679498090018950754724319459279858775916450881653368542259115802503291255369287555111308885677106795922643342905209325585005974840285719598391162495308872003498265727734207935866917409353684222969880156872585048475985965948181409850507377264840503015119100749259100842901577855907267191154721412945793605268837662696312756798130053972940596336224366623382860531786372412546656115265733639100822625451078156311886561410025391170217103215462620104720295131788770694094735072077597708079185540929599886103440691819072253836935691218547655630897803795603242583833109752512932200130817179093606091963669034855894502052827622070013828868227109577236700474909186603540855577351771584508337187523745652331880577762397060668232040115024561044110164442326386631107750279638668961039208419837671984336391353582040279157684542639906547565393277170383023935631434097346338945144337741746309803724428405018905094165419284067261030491455351863751027900344347704682933049480994552826171188779164538308620758672244033260879498213818909841989569030183791209799483776726852972344967358338318746199091192742923815900107183697158970823233878010056624251845642273593140734128771636594565061221745924633778510393956995113665204348427319112389197459702267426969934340381474328419960237592610014047479507219732674760798058517175100968314961322281387871763609167942884286763780305138784804424371851155027659046518963248161716206945624092028799580529611319958099861590558221268563807645772168467551926673202774702462970365772772840194498276883802333123955872465155620931128572234997626178513072642586420067766338016281351399640413732977788444407991304233193925043259950648050712743110030677600797808591674076338730235527104080454400896096559485814984065450070209239959774195687268119645333934805805440359371746271776443424752360092524171171531502233110181350832800738201887823122709876968696258991008788465443082138688865869221802462487571257527422437991043902129765909976115601420431784968626897196103080129363342050192194739629972208087578760433489506671573972606557408817850434613103150791174009904353769656832318405633719433393711589934354713068698481516990321529682864952436712321162097135415464061427558823325461606156419427284553600490741232568700460493169414470745414864978851104937302464304091916039534828806599686058325227876721354621229797485508931910486341778847985181504864707479035517960339162145161450752354118350471585989766415319547297594877450202323280294612979436218963950398144275336037313508877540015427863199893156548643652952204215751150912953273808763377982462547012556543439431377533482609870610952869740812920224541911461275811270865640775594011399162920861359655394161020416317619472590471263182657972932153941309763882061551570558602149572070002965222136240554969889896336571992236532134715103562406836451570103841933651329460134212932361623412570191534347362470441612261997460733828263267019317978239345042081712405580598503135176904579237370723095169109738158362910154644615366137390583407631506200813932180610330620082660639255417982811852346418818531848376394379035302445823744421128181400401272732892990519666436303071201881203316732639949954263451478306831737517314788894584408075890414551592815061685664471397632961847504136069519966882258089712186190736186750157291776345497888006941023559358606882923623629531007905568504412454407413186976712351650317900092611151991154347697096858903919173156765928761456770250784111359462571131899914931224120755451524029826285540624604675041072607445382190538756766356263596408463821594261347432814229173864025430066389869538721301730159352255047919977078349904121644722885940479093270471989282849525213605663024528424078780282741034251256015424327100961529488093983287443839903908215230418995403901737412341687734665864509556225359361835750681499380371435439939172122227998139667837810904146958083568813904752441885685346003322664861251505821615711323682782067324829493681115139227982189705700462226699910260423834912532528789403178456676012339781650619803188411034101127710895788306036913514926356409052693807447148216652599233860952683778147982773480988328335926014458260972172267619470037274646943825297639569487797831025227557436997584938644445345013447697063372601273723430957063294981470479601910157643084753378231115425032454136388101906236900878338186967432961287137348882132404688699110417070786803720037321291078322547097115920320155103548051239344114314132435053475249715881870829810530522116594038079389915695655181688571355693850908516072867529886433883064596276698486695737814300990151198514040785623581445240636653854127905833726681737424002210142944585018713310264088863139490547525911478344536697514495452969214693782012633204912293930684470882284761138746038190446339662560097439159333644815990367625290438830585822936843179219047801940365373738979685032430780333613789687296261251175338969466838923026599112925140430457095001260489945616249004754968209129300120802981741928354964663766111141993342518310087437508653259154402419932050658046731976674669578106317823755541417434459393491385277931607164692105567599549896018297385207755479781132368611129488347862248170769155822662892213012214452572981936345741947295554032749538455513478223632419368233353957077614390647355635685727825427317927437712798048113108753803726391283034038785738192585265981793529883936740895266447031456443825423529353750900634747857116604978790891678355311508402574646984295903347469544000346876611024293087251083979616027932255729617493429762214758949867040532430547709702291704565803491785631886818881663016719930310987844358280822642662173894353876449507469531589828412418269068132480729093469630223188457397376352805219097557594779001176054254139476509964659006328218135793726306542913944986855572959212833755280417350625107509523421528180310247275493960400615653631229385151558749192269527562017683197025690900416165626929832847604686899735771802479698180312896447315838249118885370524286072887130539738835066737725915686054768880786193885698259664793319141152358370267943644451726590441650949435886200536663079272140444388050359148242399265899686090612997179345296588780070635663688705559669049399474454579843190478412859479591487525063171224494346454870273919647983842356451336917082789024562497603965305407212219675468331386465590083754349294195679225846264570283846586936307646969061198529866572883601546623797819029208583929755904697714999580212338417569398330768193007437560133807002678251842571370388877055720853651677874760701101604519511029927971846055939518238505654834117725837777970570961837140096810518693404176277517640760622652469188492611557140542981992391651008404913732898939227261180056206949028201565176811304379220910492959233532059630990417695722500004584739028102980113262759044332330461578746234700583275426448939038081519792024135433946732204040947757429347610766300267474806463333667015223056268427698869588795752246402307947330441194644468816451107406039293011459359724145787820356124903304546644930588259638906401962495921191096177883971968492759930359288233005327659551645840557784546479483516756776011121517174335370632096254671492999192113942081697285204062687129686821137221706345583923046582616726991481782383417452203339994667083612697850013270969603223900673436664498012858861460147295099043327077355850205890449299552575364372105761036683267441056534768955650671765661955583253183524690728751988445677091863235729483029037966183496640009404158342289081030245359134657959251385114085566878062424214687073881183593943382731161510697011428288763281843976185933850243017716027177585486638605577873336836281719779036115166311587635518176641304160696310025592572054030642613575561199295126735631227232557270215607322907960852140429166689473813603816222078055895583546646010779197831224903558638684243432335708286817225292197231385266700282565111396455268038539917173227204056206545737089976487430986961857691115575313916360514502922661222635637066861718653808302694639761546690736569653909335084068484931378032438360640412407315222621991339396448141078137543380769730720876432208164255840963607863889538581286143420387916910780763205905359146533370320132034165221098522918050088761237433431597540412014910121302390331911285610343010490168210727081447832344571759744670393559849447265776322336890929680726516215427833423114270717827373395481787502508064993999659241062971387062111720962923692078452482018952553930514075066151804777798758653323335880017273043495289700188416209870947477144282039875415473453524731069961393416208521845979519504450994271487992546925147241294313528945355649466931320496207467722525086720676847407043936557836823695040586013454743060870558195346317304660579024563399572042409922883026399986168439857732090393540295258188418197216747869610715051769264799552205622767584081515802867077762414396200681506934257766395106234517229431165987182362527970591264221090955062994973956263871866046179377083379359078894523235848094731135595863675247348843582359686478421683844863320444191641879336766706544653243994096869849327101842719812366833535046351728949419664976549761511629118733656262699033298929111476087673216321069502012111368226351445625128286496916050507202633433963471921601053139157066484678546903442740575389224703751220120426090390245702410652779492453022292374687389749522344018483670427759514470185696021952645738653941792651370881221603691974195661194879164012444218211367796454726785503148879534678011373111325738553270870857005381949142864459934202989965004677971619844082186228918531498778094127933562539048466371689559927248500782145867563815058881565283823548732215273105370680986433874982718238637533600827407508816753062345886914778597843817875523515600482234421249251730198055891876615773592889701826689261232836642890902405874983712188756616472504593698895454341190527363600403259305442151652170109574808748510905362860633546457931016727722430656934637454080567030689046402951288231566789219106583179293575775028224263411482664430000587245791575196230879284959856550442565414023410664185188589589308359721805479567742232887075922090983128759678020377733355816637702299483714580762659472453315751575268456609632982158962261499539356583278797331596642306525849277207089153576902382945005834313142355788009971980307549871551035268310437448983152578067741579211113660505533076807823595650784379961336066426124503347974347281802980311565203355768353935040672485633871997045724426302851113090643557601346710720069562140805356916870806528666021668668703384849675824071511147400759762361230047062513429908069476416592629707459712304795021771171005627587310771853029731539581959420798405856389456505622492124241041876884995315064359030969741900166581062701517463959760129743828188498224854465848034554417078697453839711107319977986248107987416791899697562074900365139421827806720030057880895773465670131583837259660741856726226629547337318899462259732921102658157949853728061421309904209913885550500772487981423445938293489796780773270704415239912690828114690188154643564993811721062289477887673606518131665697280483738028368766843107016128908522057790067662066207183595410610720888018968949478785994153981895938244366719166050612793930770122083444435381879107982434842398927079881181520437695465848567424672991040516552396186975954712783873612509584531317637730656798960000060623640071497936167002196111974295098670545391582540586330198662308986247192461327085414353069463687119275890041968743924354791900576444920232041494353567823988725997605158822828013446845552078647785595740622051657725920247528542308866234030480556451565926985240073088633663064373569604197882945780135637501404819603289280586284880394393636367927949757404412596905909399399817307768563048210314790057627723939471381450671690132009044425385848935518387060493497823545309226973907508647439568935505376794152592726177706443178504341434232813956970087386811051109187686683328827729087673484700458722866333352886728946985119567534814896669909103787591185497881763518829494910216994723592444055491564605221337889257590364168403862390297411724305370365132730639205811585841648404182214797906547185641091323149487674414257450108539954204194500321454341518570202041253131705441608728453593842202822338627607544598464328949023305886548155872952050315460708635463998926029082662981232159186109687031038435505329627802781540461937139756028198396622462182049543158252697348904116291077779837966924520785929311181480776067302325858297590876211711819597911575483272161578757285118055554558533518671230882314214397308321151308809783517523827839398696676622477896531658265748215995179166932823961092288922959530569905768777598458475579520732648379613818869267367617653967546018485922820888167845692903524380987502841766212114080699710535429235998852992788894810116788053236656695156419828855476546374944350255046731680220274638048214168995809861389437406733139857305393165988994589661356146501358520459287963104409397232966021246388696432352573275323550471544902706973111283364786561451529483420542742766869010138024068634252738612958554467679874711898146089420398318309030577962207376337929755285247127108818976321288842705436130797655160431524018432219584009875974010948935482722697899993015503474689967909424426858156461573877660545857548470107501060951551999295087683139988897531293503220283894874105605435713672943720765910867198024648213176432099100944157719299344441523748251396882072779991350314164041545351968334927853217662623178319470100430675899047363432701441908022418405904908309169199225943622507263190242273329359984334554301687869275196693667131164108518234766594569015352781735825006136943792998532751671836208365881766432197405633776628109780471678948730499297427514044076558660271414142239949853168259064426596005757049578569897038814855908179582904263715159567488128130119477842411209832761396165118065833998496706743394324416541709306261507457083864770460462675136194346969831456499069464499547034731739278639598914882745781927337750151374064447550404683912780251171148604754007808377467775849755599561224400018306592442605969689987920872256827443810043409420015592695620384429559220509367542764588560240801433615842735537783444045802817961826527925974741809938354709499461963102889342912760909849072863838906067042804571133914962706478534667992332165138750681979016781369274228641753158079397616004899112654168562873721341492348309956517882810888066677849133053809994886722095156264347396735080119496550914681320303085842878109399936480832461079008603013508764212824236728721437820867494975377938838935222876618155947344468267001449046701894534622693274244615192432049281994674866345984501582864584497867000482679405121652884019043788615863253075735071520213592537147974629914044098979863965829800069258140765059678295603851864425962864493791981117239229428517859245719817473496953312553545322024383269340987932750191268811212936351257440992061363526207205501363919250519050439891249135623207806335706290846876903936106904776115369312238274011518192972543059224745623687338472606781525946280093698121825612708992229901558985087194656628495167741710708135872760877617687012147275578985873453120879583058219282681546521678093335056128455386536347250894742533736102846689909374289285629123141114043745721295544569459983467031929165627968298081926878290535097384611326563119258585599621740799327036317079575888166363868573259629803789098076563619935810454408875373200964908348266701785935347858444155272298780608194849569153996146288719559330360075275494965601206574026962571550132100150877493764418418623254240538348818108443743474096009280783039595586637675848843876199611506871161665527826470468064208798904383804918061581063413776605775963218206737455241354732041854074555269101430976501737358874613047554157283388165575065142620819487970268232114150070284243296871591692532449357645443750901159493012737834373142512839865931421590503419763397549219663619604370003749412418874824071163228275353986887980513377860555172542734122776119601028822290860751641014926692875935260796042902674007908076525893707793821043511560350817869264093895888426892990008804758564660566316995899657131752048045041460294358452734429806727995767830624191061877297065966146995731788424603712638595197938120095219302918884332270793614778538789397493094174859042349844999888761111470460845419540207428981033917303216745571512779090082565826909579209263718487450085878669663086245951534911613349027239992613977600560609642819378293313512955756907113046424673912852843835856324841250920298945265444468500466071195058937363175045047040418858738602395612595056220498474268118450790834982304647567658762011044379703775925814983702845229422185115680349897231588550395281757567369722842730112120073267438933201221996725225805345040003026899721194086923400084598469151243427483295541275007495162231118258796292990567299945063985695076819520749821183790704243439402588984081050727551753875363263985251462383555489697196555478717926634193126743510606216449619173550571607542169697285448117994888499794046718592912898960954179939919292992927177708116169429641524425616072792945947394754092368991135484632035457595724732029294700159393819561793527168969539262815810430434508209076604575137342647349848322123218078837897495645621411488613512964159045253584691901007358992709072489729996114633530187054604593968017528721239240439195417063854340088933570917481062285131091737529120212187481200190757013847324709439697119011799783549088869227105356280523721631267085906244712991468657759385697098893898812940256366115513080623631088880686153309450224459241928494661371607545786724642821456808557628839300658560558205581947046427171810477140544718577548845991091152951552869351318336297039092220376175490542399377364826657167211558368973520192761343085388783720312439712057282221962454797770238974066050996481178831819563785738281670470030198420353099076041454765514420232511485614496850131020289915018360777893620250472270797904288908250107067668485910996271972158642509265938901234808974503287883160268416492551660681523998250161488927377884269319301886039510900084852248772026120880299148114277494287015383475272252287164044154563062605847537487491538286169845342538507416450966826957502232067644013246306912897489161273007025898803363669524200964433176304106793525927579353410066577372749851091759650406769923085940706225748876703078511490225940675779663120241978474463216139825631108778441741764683605654120561696145760830831013460413551512773533595987740714581301561582414989091744959633612290129153040378795854435752262276416780495610063691069855267940465299216195939661216830401810920522931709755047851605908047214210680035164934547969966798546453156833357659269751716480178831866124568429687119897470785518735042311593604868758602046516218461560153560990432698124623439117199323528439489748218849975339446368575351417257572180611411147808111580295016210448706788424673933957781824073452051803651351041277722116405665115243361133398715801151980705198728767526878907875695452418876735218109233959220404793386626122660042782819066143836527361758031878079484403843405976355196095224460563611604859246151007259390341943843461688355978196471484268690993515919139069391716635046484997095930640361099319042175380245087935586856012731169960769941622719948511223316870330498510037865281329784784949799610383690112017023929490292196352735896747720790214987531532888709223468085513086128542992434093598976733332508504776777718357488467015867432093041217851047600671552489519563830203745798702307281631941321192528938703314397278092123575171329665322218472607861200271839628266970117948162213871199872383018867527864794682076488559652117928620417896290366029151435709559726450201110788814229200732259397673982292716118054303878440874489693600287681960791015334459547598491506994313214443746791940517619242658999643784526320664694181254994572435651615462183320898189976669037312155071626936468695055152378314572188725207728521835313951917808190720781962836529727287158565412014249992543571876694884704962070473242161254809860311805822301760560674931160466393114251974287930320403375179060348103472638651141563818243919681639976578519128534888674212364297221427602581165001683627173753289683743732673323935228745804682922917278849656587722515114280285201992884258002473024887606306750214636273556150667102029207825465973061484676868882908004985432481911787670667334185938376064377743126158457994541808477118653770606445951004999461914448384185880992596635542109194788647179339926030698171015757838394138805623953887688247055400095162499137492617200977278453247785224872311315629760499882323033177206585165571951473235379629272954145131047584521121241011538846529387052133618270140749187743736049045607363303823306652019585070929599619583706490530112949270757833444942268712237013167906571888257939563772853725995107151203288519513193228805108465534897242906873089956932373749304710103769373459519357851608105246112787293020667075426234198095993198427277254234813250759859621780637383383035819631470611485986056084893645344055866148525213686005909853608554005107158083410313272626554389795994589872363493106300347432238111865555331878972868048011528011706978123274469825172069617814791023129660625256069572621917418238570264648624342510663888066941765000046218399323783359082772093034634990677386754097655174296128727663566719216702576397252543858658291162091494612601974652197836348906246464549947380160273400499549830888082219565302301410218035393558023967648583130366949475239757157135715491634473325044381751049466634407552813099815229858168343338572817605975453756788142799715733051050098513822316329946929193825527788555440263079548027791853240083906072991527158913984163808894820064854578684840108951763561163666628200318543570263283105164787155615541373877322218590761401380364346521001114821754452225769529716019770961703248080650384786103135795312185515259089129169335751085026745668835615512691402700110886298088463628396036298673994678132670739378822823327099533048482740705250818207582658016075903952650543990353269090729826775552010629303815372425789830340065669906373911032908121699657328038551344781127834141141053244310871841550128253462679176036735648408130716628270222474883558988792252616621604896523528006256783654492226954330863050455287846469067500936490312452909104345008379415556882030771736042120304301163245947750432412909609900167333037351315411295787097209994880144102694373889536234834261712978925693553901575309171933438125824550111568698401128697535774095952693562253133162929722468341300177897541097628235805193602817295285407226400200663311432897873618888784743329262669915505800662589800380118128998673478552083976310931627788784816331729516528422668240438576897130321472534109340663766425649298556244253906246722939232079116720202565129032684339406611744678486730426407456378689167575408826083415947969047746916930334039251257817050672163807591393428604502071018064792984703481673044603612038283123179290506009088951708540093965099341759960394349662255237980261239356330582805466255729115037534524676056499892352119626119636537532497491351808712985033928174171212853989289210005050528609287785741385551192841835055814580682382536680065400615155041062215810857146267890475281911023893826926511620415307709877541944122321790519741180583405411273541230160116195197456258658607751076642004948919950142920541265418426708079351492967371333289502983391875334075383109291169947866990827148091004316551136761454730385149238589803930228068998517117852622624465061246679202786516494218952315066585661645403720454059883421080781350890730263072745417024594977894423473920545977587352285149079968755995131422181158051084088291921747871648011172185211297341435197318262956547134371044341161062432575305824550037736741124027962521091343440155847707914432681247615880888214539007752279588131087378508555378653480784600591828783256989594613716658249426691081566805281869131552277304064691136754067316175773224794356310150415424050079505614777354689139148184414118161307186494157327834852918968913067846358038351695010558531122362861083701966613256778274762416416738473570954262010510902200857353599186808009560297840350315294139326138386070623457583287253840917432485245126826281777333378767402858325479412332008494636413576611783739051441637488581122283115133041658749177304348635307177809176983363234136799525956074774630812439571274031643339350859033594530901831292221845037206931159046057607310753579387928359882556154886811989988424300733652741696640332497492345072562316952351224516816733426221080114358356720974247342947378024327814258957185916140145695162041984864670677159300706971119437418269855600042662496840360515948647642840862361813082261518029048890558161200579527319978367918730187328250505587683253858225658651972652280150903837118445890240643580402732030008426629427443931893654759867580046167078258459104638266810055091610128674257043096864354055899825272835879019503407855139997445564808339665078840853685670946217298095452473762668671431826769605255510528434160732056290172345916675257175373574450944467365414028845741414260331886115507625908464153399130555426657816991040467926566075274597620370573554590799124595920503583203155257521698238696166932529447891167769360937299403830363255927629542527493230734999397426791763428276116781528933416129139001182781722120855578768905589548287033647036181209354207178663649703009516928528967693810296934800587026507037554861685670013434889219377781536085210738675847456450106929649963535510700223847592596743082414862036406784488213709212424064058613687340502961869959382631725605467088402700505691261267824104953234945001386704996758492812130084901840718436676848924833854969822544122869642636090021203179301804714920270170551506820510767579262879156651747841342971160334378945394100522399612105979702118360767482932709075856890247326709710591024056474335935485050139416981332726409404305730820997340737356435135187688555208366101055837038714737624635730186039930207030705322026205887509286000069553957986894722015200453250031063101090700394756682443520614329026328733395842603186719284706687086761421902116041365778217543001736303266212094247637983563982679194196345261084161860032492192431166951827139447283888122621026498962289049992031271979707143202071180612988688810698624188926687443416367030374885165834348090582769034857144499577696897223232005425150366107392452129180989400685279627364811390336821011834100349725494271989716613838683847263965934518619823049382925298240009193504600394516504907480721921854725396236117351717270474298762026707401063945456346589003403258424067560710907493652244308425400273943686289731788045801140969740320260355948830976208951062095194025940836436007124668255744310362027383972792377499644444538455762002700265577261614980525831433293805093834735933761437312677330122182771320851518670010478141941807389392459075815559028864737907475462290805878692838438441260657300944752072004942559172060233236626787236346108978090316013379962588602615376359107880930054545357979296558852831163350014821510136878020921561768752716264917216810827948425503458509501887385887950485957074558248632556606232501474638422053605470590758655640064941580577813810392084484365502936162565026101356534392056922647600034844887268468205611609871746895357032861899552812211993563804605601863940251203049009498026203928058362120829817270935458285735681167239994124847438144207062922564926904372338809969296339466568239009981475285830391020149928982368083229140854327132617297820026161068081422106138002883330987447131281356915544360939022522943581668902164450312470209174465108581673432774776822490456120019463667920176448189160646375496362074756535992307210858996676610935250074752545916731620696868342330002437503704988049162783934898803785819937426482830647683287182189181746563372962442357075449289082930261658673199580445462608955476791683449231278520180179290821917744693984133338535885855403941038844402392759705638591925149838997235653383405974785116774320694623655242158943243024802250797459141949156882376323045631281113716108585370519330770298270800670173066997760808403068474914874800434645289195827533419331730547358426743677270639704914867021483500536878993671381132419385080413713728571188154083469283352727546626308487434220243396172747905182021001998513102459245463262410177082501134159319122281870912058924048123796643058564813747699353722011383599543251015059558987146745598188121419722692665641170538421432059814901556638937672538584050970161092029668119714136276356263599363259356324350922697992607895578104684300881291079047995279435521821685992658630464314662306845863945976884473762928156222846470766421817464937157899789945019661779879950263330361737885448517853937856572953262521536822986151603862564157057010357344305100753993913886762705943328750470715364574308693148247052582034146391492522166357555809745732278025002652433005521033856931504904470270189868098936088066180245446873649783695997054070626444710525204869837693097065539771423256559411385741244625153532568661457165982907654346848551810677705608068713704476918603400470947403204922294109320855132074498107847995189411693563398345530447847730039648663887285579075680317943265537799885118381912134506085614548304007808531959678120636317900722068491684327760201502609727482545330247565473416898398403409462563376569867813817689775424264815742735241446994304141931382851247645719259876799995526679018168524404864428743777118526425793258777990375265728479126770124902294813330506272989143957188830821715974080130601576295486640707612906763236507638797296545791436757024687680221576457534929563536082939637859811564447544291717019785636182995316573861099238448766186691878455322349584396845171414708593406269030870905500108712514890233078227330502933432409590071343306767796950514831640258687807393985083003413753528245907653010230446628468453141449588830475581518330736614693562321192886761555639658404117201862732484850800453294314963532690548688531843471021361710682159394105382998073196130949619319139231385802561698440101248561471241826094360061152862694777796699637815930864995128797303412560542385034616441279001366023974802046683445349227596343946322773225094011055134262312190127161474107217030488792930850614556806227173143317405066924793930337790952685114232098402129369682459639900671829048046246866660822793114264467003628814063011411579507641166996893010714066575057729841300458621575747448307496960635987333527478478863849333990425860601318883646694449854681836038869021077442992804076433287651224614710490950479852341143187092469647385175012033356516478010145917666617465235906435519039558246217733203966060833930728496775969336609677450912603007313696036371310857329021000315921156441390173232725930290796011899628396940400999206716504172921291541175931931970485744671969734680572328810240636379222761067335933791494798290211206285269463919248308877098807146741082696573903725651663851811494232468363930790878039748699216777458580956972189686179717205647132739576471017806819029167661053286368109057502632522198925605749379397679878316614471173911509791888362684692273637781776288314796386183892912367713929892356839977896039906173601738416025107254045313049458538994679956893551051654308965342956495471676265397987409934021744373039206397765039935650175962905896376774123054058215679443263352534437599116438466576336837125472461627461648499964453875335812417820615399259430869627574909090894902071525675008657235027676976654549604835677288570881300602225393453186619542824069296506858350386744096315232362919210438789954765253809517040136365488768470261640077672761569664654550853130844331246296462674766476630893496314957977214450714024512927172520661988260044914945357723277069267618796571843389661171650732040360330823958644221812677035151393764164683433993180176124369200443708093073401185558288361161690589023809648264177432010681432266833718913917565996269472187479303309451987714806096658776428159944616489451634578274956588474713909070713954709766746064269579561742656005694827838231520146984279814066729914279761836798203650020309307521157118444612188954903217019743396524321122051780459979591748300840100081479631853456997762992365480851819524172586532404020953365640906299805052840608968695150464481752037934034235868993236005495017663054219731258612262578733666974175176803395955122999477219505150494918198283585374293476283352641620383029001102834464368437646279008927387148252237582358794628423920358288611502346334297816575503674175211861884835796798603054986622228753849801537367849431477707094329888265560227646198641171019050025719903482670526555807823237250934644678658426495794902811521106854555031043625388461785034502450231292908115887865545518021780284984169372075251857051203987730375173042905169972691705806866475274267738827202740800384504911643169300971615039952181476432452646909309988892390127501615554276717798072054539278807003295771192710696635948554774094857239079674463712038195126448726391760158752157569192033572642877301621269400482726941692590326714027072878296016469534775912401012177330197639208753021696948014980042469524194773855850448766374108131352253386752197031276469946463443534549904815591481663868553639452828993697945727184534774816183555670495793342430535052709128942404108065240168257288605136535354953363163183316533106923613741841051281831295061398416381182092306915432532947713853289031184571224818692222730492686361777305127469717230429369264711250501243477138712888776288240316574313797720237605505140921992295870319908922098473933309841186772396107968972043964132808446239328065465835552156744421494974708331950840481488262983687879141063117985510617933154199396162662223537711942861482243793591286035570908029612189417269338804518994045309285265666342545790353678311719884078548827123549118107321991148968248797159711419043994705938558486048807487091032982513456915119743211591039108040022924496910928188978503402723593602195487288620147890967243572763424617200195203569106212735311068329305181870598143741139385237203748521710929274991351879562341835611813960686441945982014374708026364676458392055194821005504717533402069191773727122555517005704451985823357921148978050809418665941183306116799158553613397609889423340081111624945300202181070072938802204681970749896206614011485727644790292726184635724475582991052826629193432120013326573803538152998479569416705308201456932962005821889973883199428336348862132132499384096064039380335156416662726860938157424629454799588872672033163487912526471515759189221189919012463474260240164537873971744347375593184443043591496468380328540164377707817781302340856158049549052971132032596480544427094304265263537561208725435609696152786466399646107524223625155992611308193395694200636987333128350922653017283785036647033888992290833772101524849313152315548591387981564288622606206127065618774109493057637102303979473269408638442390932223236770274070644864320826819488788162961705782793809936475483067653487403750546290549729972491795597831481238422444180575110878685886687168880014189388008996197943061392947499195214700531297171755017682087107408694851206208801818259893151084414803238068600154682684882490195255286255682361966892448689523295340863152887626723043766425146594815140578833433848218130052353338903667098294059351254333688574425769763174819857544388829258939990651836282222589837524508872549318957759902138620876462177519837844230912401086021191766552397358997511410384186091335606425364976375245746007424157389989018789935904908336312563474721486118257722637911201863546252699377816130794378096825801038234444838209862909354188269891871059522107451812798210455910365003944403413330560617411835357484943525914823785983134933085646626322810800531465142724659164167375159969891298200850898768699689389412697939814122221439807146357387823229455417383135647366325276760710378213842193752071310176570262179450606577413876129885173129100850610887023578824310135303831567866048254927780176177628189587504263988616384834578101750725650621634114980023987839297676043792642141698168514114453929884485793909338897108989479410015750258241595859453163961506362527581890574158651873311935102303073648893308078395129922283241149975837309858196976932651933158339950263500075564548184954536506773993799640196704046335603125715094479620190181151418262312060491622965442752578122702275636253559067640138770789577151221089709049420943118675880560514727757448484431735571590852670236224365213867689665131772304863807717129577239796074419779669911937046050670102191824630673090430772276658465464838215621498143828771042471288870475063113457223677209949414834238335830547552305826378073650233628211904128132891113342580212891378668325243246389892526956841974276835326293516208020052060387981910452254790374297270933529832397304803157043438738479577501071450166789423782958452541880819258920884406354454054431701947732503937873922785443801915474054142503432070488974970988469831884998798794722065478154208656557400533018881350037393254508822311937263445361871599125414960280947126281932869615115467244033188574474065331494216151437184794273256681749483111064253510223766584167853214994920632904081499719593771312633673061320480157093256388656264800626904087468740599881359640282830586494102848199176768565842042774937068412811765101817336861138208343581025874169882858494322856002400061771552769451277560116481731458314936438815520244327406102848752987032233211223974579333203012707166534715558728682049865109484880778188390391784880016853793648862247409984251973765895799772151499976155304750515891693956597811476484179448929349190038077998834175763081717030083611935732027254495025190394335461125698752936778609368670267168494406998558435212376805000628141031822585956847337544360271727456823301179090095661521508207703266923784903549500397854308250916949342522452895530511776710250490746796070110315286616871912418934971970278744135741040271415314516300739745973810661003982510631997017097462817829503045814214297541742530618467206078952287353521478583755975562730636859691371575012787278364922165747837924737311465408124051418603669607400352525562928797550263993326252999376226833480348863182484141500609078116361919092784470895658316932529862263179986570327635491204635857213913200834264189008352056334174989216466553205945556048408183634287138140384007655083380654998721498632458069847337509373458212434058805186956087586535228957012618136455997553831645919083344893757173046212282847334014231316238603596521018114794834722394356948882834058840308974428092723067349806213842811336228140100635437465440643516468485936743430289823100501853824730994895979095804122352440030565507325914382944084771531393878823816396235031535205993865164139553574288441910080827275529105136045762816574124194831330307015708213189272581569509127507351851937462482732548753792985807501845822318324706428378399886664593550609632771798599662240819146789359686731624612757787210892307533113027586041314189364503449514092627324303900523588971504600802805727921971381830666744415911561662610875638566340104624427559765684077309233273587200176688169039100691793390146378202521052311889353556578791654026002657855122934378147722243535199129389326419169149122774178842495932495510347462136983562157716626114412635899814374611918191680664009398241693772305290150705777812393793421498727665037188623987599810169611230693712428621023656750051579196681491152857965791875401986304826620776733932599661115378669020854137588156561556176152507055178897896562331904223089251664348751818397676680695888803902564526986267733013082936902696654799951120468462428253620733895110987761649417396125690318492111717617353695099512715760245136213529504277094981209714870814082924903611943957946165660375180622237021926930094462576544800276723756481172965736082780929319680321977953405101625488574510506610845713826595159515501171045742930260529183956502939848000361479792621228271298535688407807991729457734104644041190967909680638241209000942369728331680050496168533518330251688943565506327193780493855659716594187660648055545076438682859341730361896438410920951501289532995424567427284419765528633239874198732462865703183977654425365444263880923185981375275427671360787149791594031695464329056938337342190178413968215750374092483979209432227246480246803759969239663388804618033351478766650654003338417462659128764911284421858871805599119346935135362893541516582284184161085573731807962223870685281453399210612709894325312445567299983703426279118787640708314530393752940876588314434236486840941739445794766880640226457059226138732036108912527928081900701854502700849045232652266010746362105360909478147638090977527668967247633390349169289841812353472097606031030700979229314410173460603857304369345953737084470078417602711534094021702731494386942231702852113986490519306198813348355029238608063265815025195138347631539977363148781367562269704866508316746082445635921749780453430632479931168614398360783463427441232943193678069268831646617646919779297905816837977354844922133304028023267886652892721406109032486795804752147216577069525173801292750867661906454936759894714684688252761812043687894728643399301988213555468707702344227257772644287154207780845828318555177572667913273910000767625515585531019714969628333966605495811020756682321984407811914557824589501046965290006233778851196694479665261644535303623225758458265867136878339503450207742954984342900561165541912472144235823918766932012844375937109352614186292034212023746918904175539095232248085413121920240009093926437510538985221422609821457598416787829100050147985247486617936657264607785122456545476163371736302900233828454920651330695587929761507296493676011338656685795385014703379882402241947156028262258973170748309488892171643703680469262304518664626541259904573243532303042979404555802929812110113894770885537989678897676369871371261133123331567521128574577314464153296004969269518160779547235513891670343859414230628721961554857997423459167723955671161562799423136273067111721204815600019634212867257855911016684990232770150798272410050015266098940511267040772051534871618458415705358254218040014522123412022042490807963780867787555644711273517594610655980365440743203796266465808204060341953956644989249022649306654584126111484655092232782546391302055112743853786898256252516005253224467836840559305892504426202800073290489802410069212391200815459881007932461867424631123400269386967093299961962088030275873312557407869341026138986354868820571784296850648618303993523837840306098368789344275166168298839647370725181080511557007247399207907721718658243023751345818411186479457450864027602904200135584156996490150300871089983637819216828990317286282200313652507102786402847526518219273741754334647590274509572277135514679992498897951999225370337457202213304916260757712969234100598794614463780995950295036837557560345647270881598074840742715317504181711471155500943050398298809105133674773947082830547289551971761101323674517592922912547689041336950878414347187919367021284227340858384916264010483266249787483897151945051319360121640296136896788209293593674610385140268505896464318740381468220072430147886796045312797245594610966782968859665308709686571812954101144780647638377273533982993611461137124221708624453862440118279102175148120266310353166757031072511197986687919573382166362410649774270421212273582135953858644781160850114523608885881976376467778750359180736818928877276049883013693319214573809973605513486522824020675540783160090532860113834859890694691753023687940186085590640203932017815105645109743426707752345442693120492226055356760136493895346645537676897676083234492105890581468780431835898879245442892978755572634988142626078498968858640720596000611766425882708204270469647723483277185138074571078580984471497012996676811391011391494128574609158196201057996330687206942022783913298736552991643644374226436133999739721880004113826010021247900896269684589792109819500800669793730674237887835397152130062321006816798737114837051036204342887072151458372964980131619915723488132924948717055365053717971072276703927899834919708369082245640265330568018386545798836824249976250195151858581368306769874554247610843636402217690182132154113318148932769980990137430803471673514694688801944272780521527992401183044963318016921154949350376051793146418266471062092768124923691811462790148955390012527796896891043797668856951925943573564618684546549000111305740510599863568904600619395237605635761384630917136467973514484461303658512539220992680961150572890956290817930934541159668829924609341875806588492450596988062234525472626972278031291231349180755242464913524221830289277561629004162438962159612098422358595147040356868077108470159327134303482374724748718666619697946610039032498757988835866464539344412234848845868090978909980314395477501822751462984351614075457107113098079228548396086380794834059078705161346881427520719230855551590279757662829677638162360428940882552743609654240309926485792882180229497899473660258654126088503627353032721412797698263240240180883215057410332439120619977855095371017388115348340500240590083729406411854764370511835804932892667089585511462940611230605015409651437224030583897651494552257568503664377705282475702137710578776199258969041024055936450296953688324036599113099929014052692869599939239027555323422154659471279300486963613024344248592234957034573373339557941719968793934190816007357515631732399582659992276738993739270764011332721612506373366748264012114086648654281054309863493892492452470470707076752805330409887630418815490752700524160564956420381014839634181756631844705048694311201221867097399415664389814700786634873464111299367760855077200219971067638548396351929307373497280109047656254928509135477812879282457459316133921532353656077921257486829202894369757412829490696932581904063406945812586465715962992377014035650835007971195618139815536761415085827960786630948568351314542014026484264472262251536164401579707684518725736270115468811191575612391975948604359807270504630082391801097231238297200965816842516133401212119714573264102939607172317348939701797365207531664127363443101857755233656815304455371648848956458395567605482036692543272322578950625892292517484536170767540004755728926150531182360935779583483660978683123777927521886603181520976803270808751167004913633824157279084926163110266793760696128949360209685106376217755818388243848479871287145443970651800008724014939483002828129803649688190306778825862044016946921599809177660276705811206360083709646579810939098431262939159620935688551373946575180976209323193755646796705499962942975647118851674009063682626136781269836225146169846607897548872698656990515398759964999274162833669207915972907109548473970272084682749477395863628368619720048645875241546131664992954243043391995199538979066577662341312875468550887777367356392399007115734963472523836364430905752052815969555415541644755111128178713491140563443411580724891372201684973471829087754864530190789753944719562792144446136336766566773937627096874560860263250843494576769775724325548158808003963130199196965766160663887034147337183818977242018653656933002391673085178686149596149595959939513597338739417686034581745229663065757459397721592617843494927170899196199843717323416031219154007741117298289785914513171863007976111333362958404660353369551026563044942431219743032765412806719161264672459863034940213438094737003816647979012397770429393605416064038545307267293755215700992760046213114706529270606233894293423706424449048718786573147106423626471330998895086135161955981915203815538827559800858661252959022868836706775672725826925902241118649758413952392359031510919250014318644001339030589931915766429824439207270036587238452409231557654407179520604070113633957137654097601246635575492650072810122600940836342302137323368796466081845635813084269163648580351891975614278014557947264355670782459107379514540072400915970764941805081707509537402023632643416169292788626126708166732118897533456944034168553511631393613370740566892475899432907708256316938761040180128190940972010426135871428197234464743679053678343382562901098591276905149846259480146769013121628737660421618016102362985648129494938363860856823335240546887835742516090787816840670463509742893337328280436930306592012261296707532941789135663435203772988498473206534088526670858576805558807694906805556669566947403770764610781189957324875802225444062924199263998684603734172209288103864263909449078316636339643393073615580445488480076633717154378652405772019758784589851708138131682433253097539022514392440228755040845665046350413774190513400606471521552762030707769539830634859136898490396165777843393366974667341005586799054964659960119884030571799126921096998959630189788093206660933032231331653567889597891730107124378532201570485544186885238171030521779329843702321388368235430673808450652666704474349462805884393730501207653082225153708949117173543282610092413719166540007966828980120938643725392555583178803425477681866954177721237037403844874617260796624328201425981622166123323299051409455199183336699680219826489783691529925992385200981958759257085736219810344010842028527488787473750013357994266354291921341557237338580603515359749537552104280180024837429292597634271179542002047920114965207298870215656149361443518005444715132745480818623021805472329831309370480300683908221597989755351076068378554105083096365674459777527930703878111955326948550716633709401954533908958877792370902062396739105115122480225755401162687888161500563016775549577337740711183674896085548302250797926426095008683383170039953111581513400092330291521433659581962661576898923714741214952975328366554763389419019807410598852514398049197303763642501079174815746201392215557320222036888640761193407354388647077744419799778049894373698170851542553819228130275097578832836591335669147864736262932812179205793359926102777541778152397845379670772716471317703814841702689353884586865356181242287746709651231293842353936274620202935698261532275153653667757675794199628218323312635279384511396793776959649534937712980590429215280167085257419045382003632055441437828240655945868622131116359829289332484751542500642432300145173300687257018249153443264545428883511601792530009807558562153525288771205544906106040697458526235177049680981576659941504592736535531000226894874496979261886640734850191201371443431232081231647433123792124916710478652089700765978389144002737288173154653257641462084563238933563561622062350279563143930383739135997256207976785900493107719703909178857537746256769591803014349826369132720995592714928446379211338346053578659626795726049595640989732973547436828606652652826127439759343112701052504242912265236742833861755213203320069289101476691076453579123516804687961894071472109610934927086572737654744159676940990080433769927634597590419082924073070110424364325704519620134114465162709517970343648720332955411378133696061980746337165865769359148887142917853943329413770461301762952398178347943933682277761009581429356820313039271328151072452667199697043285682337990186743538122911489537330187675806875494112216248095012861496780726749552576830460035722042747626614085006336409085812628000865394568725464675503413098421035327487426397792144537113985125356734501592770080362829067784494995967564623952843888018244188600363809239662083298827314515954478406983770652257808941773835235034630266593101315695849278301298017275145430256113239757121912698710934044883569948269166223008983401080048190607009378089555672257278234504106977068208814753940614778860567270278920619239440263952796095187981589987763787485654016748885104407431492082784743539769700145303445813297380660269063104751532701216954076071195576310099270936061639356615181435265619985671752625828921536692408881768259095506372797029819924299929187036033189318364657546176184193601814011751748982374699291313801762821417339690173938885412368227290575186552295637141896581441383160985467829060671608591486932000769967221271867059406144183080260098102117246411735342186505132415216027922010012187144847464894971725030614621545421074834703673474257711277278258640472399920949391942921294440473435611391508266290420858936216129433200779573359137583852188048279574448315328628287735574269307378992722018439471912006130995865601031641950772631445953330957284985331410383953014892668875438488112746134989244383917674851032148081656033105347835809526419034874888011491762386640504215520855989904418195405688576700242176583948812423067222989874842655299614098176136056622191124648141721054667102314496381528685874894277337838727292798762478247545564001820188701193675466468066501559698370178733051576075046059997788015548386208843435686883823456152893653306457597390898246048279804777939095345080046937585911150031222082138654977735885396596693048145244607071936188658087783259252045878520626923593480034994029675075954939123444594568737644190400877587103819482278879346681373454243586219483718029027354618811435520441328043236252723303559292018943669500068025339186103699759401557554837569484417300419170769941767362047172203401370334785738721482841577979553234540018117091870307614016012049690427786024504819387637960608526808229966871994230817464691627505589638900326986102655329135981838359052791532545017906427458059231227626996445879523760756738058110893597576434572703520337714482322377666298362272310181384739204859347637403086797643792053005469011174118859830504159172534862166942028249742404115578105694264881758204441648530396879670423151456327221498713429716768086835126329063676863387638161773013466044592030983621947746373923698712563875439673103148323463920546897311946604395930070477120239578026154290642086692518078417206208782365857785153117923507499150716276800695390706100648074348938590989496426027036303355113188260812358894457451938545482674060464416716059598882542630784961003360913632606460280324589247011921332571477669869429909485165397482909704482171318134840755675183103935087879664593800853943657791219748287678232794721666995038463055128149344351079000302905101281664923226312696812872493453861430909411410425359617991574031674885642557733911527096674335984288568439761731556021609987975706435901152542103134485487238627862940911164448903934583539746377554266330460837249699368050506856733792948819675533012972080586527911191357277845484784289061077163864732622251375717269011154818656097270260363701997931145353098125458862306373040292871273344140602350686233003863670317053233029264179056929861084119508236656031563563916589699318759350837182657040613088296793211922164927714396506756101484986755242885828649674808524939988607448799709478020059892058215828765450947033449190958662686272470784756193910191620412315597688323525395402589611679667568539178785705461160378559674003907801567716927324976480839945524941630415233859660024776637679453672705640523601358666561831610227679128296198760067830638058610488266599976651345996818670137962555744959649689313012053390706671972467224036368685977556887206311636860297553377409957466993579878203726158664316622507663596485696050680296365983194501903374969961415874862343889725331955246116166106242505056152054252080688240087722297715292309377824792675491780649096428962222984252426887078989880711354823193902674804646042174501549325506986071566720119203336404703346697861054953377366174741578231390276831565022386960732451248130539010365098790811234301729917397956965985717441105223997960105512072569164554733905588713198158613190520797942521369131207497208312110205406132068143863704481084307644887664340113366202461133913948410923815058771117589019200849444235264656176526006487388938860333632500022964196339100906423176001739201511383598813914429633780329398135828257869650458310005582840936592010311653050475709121581329209554153109945440918589103366185364098779028565318994439392675002987227455354239607766727804198933339593596214094412558757180767246396972089505749279262786059858303975527451406291657965789461569502599785500370021916202301078424273656612648924888583933772853960919354505961333079173788956729125111595714095329779318355180310078104938541347596600284192083001238798774539347174209581108602728724716420678610350959046551293614968579134505028826525694793425079450949364871448591799040440075011233387857777827421825047757787841310174989037883980876518800202532532190404425648099296926815409133757286126714501366673525162662426987790813471283303704868767337945284982763139344403914159362142157197182713077251720501236002318745285111327981196843889741220336373444284178644657504541788811975043586440938986768537780216176215309978738504028711399917205644688970243684389393854959480266305182434555452286812226862724906595454792893487832762840054822751328639322130086343381638952949155903978592680646493130009453502672011705606042991138450600864635375169590914207915132499301869541418046299345092884346458905710469819241983181210856980191569943253248260200303357992121706677784706283425485134707477161845875260387201367253307512790192016184544682387157408250873892112842835246128995523198236467499758067261485787974442525987617751312100228498441514821227276513089981565830666123476109796338394954104122705554565337001529700294155634058099811960621386717718126709841925338888486637038820665214719512474887045851669808968339862959809634314020049539111131120036203126935397729138696642870770706175016692236865067163231480157973520587944132582017192137898562371280714137426422266134562468172190454931394917633357156900664659064687644641128557293116343018399332386082684461060824358011855377085354030855270719451590147432295346053736715940122303077638720472969921090842545264693214965098756627765888032521515715411332071905890870713221362906801687640528250074195481194675523627429961299113056796940657424236652980972605844291732750570588166604877706216667754218669818432780460518809040442021061712736682808804955765022835409688926839996943265973205527837910498825303379873635574090278414358455916588613865885277477890862211244496136353358244073692675902772631678714054100684024133852137483426428471903617369304638199835607110233129083603178193107312586911311854017850078511033749590242957821964229590707560125801786783463264054379652786695458669696085961794974259373636579386749365788019240767269092901120822093258491304447725219005700423604424317187939295500493710068037279338700748202662763977868723590732921125338447753180834076735542247759221406183121477217898178521893760797373090112628192414207758057060091364626042660659673567839713607478774455932370322569300570551235011773410666034977986792578976362669468950315585877472754557753998825974625989638862553351511803072150891044929524352116122936084380177210512309923969196790744119391348263389242877819408873994573528168985683309147604363694936953218766614652075615967502411191148134081255388805062577193290005688485298061985934792570700158036381050058691577033578401652141918251863136897211357684072021684355052435674824715627813641718959505789343401588915134149979980948510697002638776332904570059101049217865156091266136765779779344246775780314464035726898743555620983039778311886204027668230088552862271980868730617167406802470465730951931534745862984880487911526027651930901805839499956977358133729130042098326344387746731918506478571737163005706526644491914803398204964137989317761268948698731617716941968226980876172792232500513396327032559396961742629097028902733004567467287406124072810268331499948872338392274694486948722120270690932271646816613039139654326654634501616870327242222099419553861793385911100110533967273170758788261011246892575850245455978521261610499715063112181114981983033107804921748742949934431741899583470881386286382997655859257910805328462247265044823492709932478061196905958252734726761696895134009440156271530780762274429651252303117476624065722848444344001236535356470191936178886545516842402450683370231338106618286622318977511887926324908755103513865507371876141039967174688656984723439700983099245656266493055768790888106460565840715530963995871340452996149729203037478451489804173309274344213393866538020131399429523485198862723309110306003477253039330130363903729817096768022998454911467332544829174130312382109353101762404055977363320959252331373618171914200314454508730973850818295732701441308150454536953596251014512096165595347967999984825852260291539036453668160162901838457370799386109041346034062378495742743560282530781274663118197341746599305769179601202157790347648444675938885724512673691727689125668758588066420676378772488448434205267418798967221970279809579301566454566646869789459215463571033963781759219400875577922196350003598831974423915674160174724450338755382518449150594044838882988811543826475027565206404321740544236006385018668818653785839033829153987833326408504327039108831231859021397079216711051906480485078678138961144470564215678149911513443335144034744761127497848858441529080920736991375601104162786729418323451246068011888760074641231395126920190989794776852999953591056784591701409697179071651495328395929559348714256686075037232264843716799066181369175292875417164168335221702641884515728443715909932597341381101166469479667915854557145665704539367043062666457413184838249918245937643892189750846120362522960006720247481616257365099661845443176008052739668477397113298445781320212920811039540013617651083125580261057182133826448808369014804154489265865847389053015537386271286962995105581616166458691491997830369366935794996393559098650313331377909045671718500963788025065449714086440068220060704697990065109658988825155340531447981233171136799953323251535022323112660352642182187265614634084904287634849054272540386561515992005241743945025909109206267789953269363932710906735515631373885488476576979251753820212263390402106814885893925206190721171571727129846363809111238817879545967594920048166628903419033137827476104023386194869344471209615807810800512525320002949927831995068679604692940371515932754514713152650065018291997364690648194199231952608934542630175839018373243973787456686750589713109505057296410914492253540995656137187641084424425805431374196202089592962629677960679426245846995353351842069812626520316528756601154047318412027330408516553482243391907156981797235469312485944550562196377567184861062239884465471783212693208852551949527090169206931775926673778961698406843142593533825222829857608112821844842769320736288451345814649416291794380456606206584988631181722676355767550951731375720250241146877854116768741507015833842476116804850437552948526650892651668543722237072115082045392218659377438253992675552312616990446418563550183082269698434407140126996675877461628124813131440472582214033396330702762991198947970246935692960997547861714739228353403116450460879771410737619295108845698157611160780570115115118842788344851603176635422351068532455521311904024076822516512385751718196042999547127759328237060139805984077490443852588344400449229848186703958642205612444034125895631828167550764114950056803991730562743072929538384599365887932280154538898156034897956302545988717642766613565476230683143835157230794857363056230677985355725449363205264238832445819887398842458042929427650673101438451565145499619148865884125751922136109601075160219839587965758421867917598921857717704134757152489018348539600016065710492031407089142009427973369713057210717671037590545754402297180533626207066960092650261023106605942955686048636332287473698915087181135639077254223505428873378732211103073487169279530359065563310350744943942971697618546811925169152481589997214305273590560885990979166880964818378784452157534871458197326649299556319829422333637029282614442664761752462679447869668108397067130440682964353447659488419405360203908571550588897963521531353611662929013366682021289842303721189757960111749980758510287102764921528311620044935509930272117390373199188241496304172619307354933662017871904143005273984304306628517036309237063200491070389015907417513162926177811586922026243118711454529361910621807844259634233381692683680067781639653136361357376650453877693052070504880701269931285920860252356472432028850668360498880784650741561159415650408083322085984241090398885402042446570960111137205867247707122471521064716229678680104459099846331213849345227631684184126332375677081152078783172687520432761169021742213030091781670194483522515521040433482552497902784294253091510876948699147384315728962472905882640300925423760308011588913768892073619133051278052411086665435268419357956313018449907564664213285950610895120946440514628791238422815568011925280641715699191018559883146668718981301031098213743383247259305082970802467194496505922770457194711004654099212800113698974265833662163409555579824574845433778854859868848407746085808642874629205727468521763130020257688182437884653975283446328525638830270491665844841010438387315306341846076784625734687946531513164608820295991939285828065367173782463089479309800746193734661281601400916665901266999532495554984440169689768574159417135231328224355637244589091160652702836482304462952534989052120937901761294128617875192412989050350000954643907839269522860180866375039550470889752140226998965484915224230411954406330326572639699779154713271499164858978078564253947014191816889509452058696238713077125193560046422111293948288453184883096173302737689821816223187199030923219324810379174552533912274808005237322301865109028728612653075242031775578589351990554694663192058509392658203204668008725918557635902270092471067403642766493170642356504698706626364118412661847878972547059053389399472053032068957240908529396359362101072385405877780752317987276194856761912953192531793553354241217795246561286247194150133875185226284309149765690794109773328722065329142403503327586695131562990300061528148972780916068212813117021534016863513050934329559691952511313338502903008816115627024395573353062662241681345329579075760052495758318098295930925256444580536629048347141806867484771782702137135231975928363558414190139251768493870891467273513448328506811569294069390047604065810081040340051886158155797552125544148157468627512302347085782582164221486710765567263116114008560187848276565730072495525612866652157563437605950616422038055582672124110781742852553681952543111590719331543533045583506937254389990505083825520753271657540156716029291095108429692076407511915498834014442755700567124685757524967511374580795508023674484291965695387073157914786633141327272189672356043212254377902126210376580242301031716859570159533368671340568073258136169528115587918363246035194292913836563633988602699730254823210426048516284590531747014963496041164309101131762798590979779378953925194213216838883058040442609411836824710629265684649424031101844997337319226588355463346357106550988170467673422396576260393261080318404147573800066038495104580983127395830759176433402732330978776049734575324425415501101708278610874284653119412163283034544087845811204251438966387484190025697290275728014464774655857290155370371976086781151754707549629125374617762568274307202345173098576987504688912479267782299341029269539589089511989086270084910605389559900943099223234623472827561408656258442377647643005425389642596956021307950536976755459584944601904053695501555367925771490012821304265498782289170075324344598679328395290931690241597263611411470177303963109195377918026211645849522665407411584346434033837967303686066047670603602765632109775976150702560160118594879121008337896354560979182515713828732009678268574271712021533422002500368518234609656456988636110344725445495026316725664061107092819140841110587909967282788533374557389411615513340132081856024393219110986648273747363699450326470223608552464046293282555340669162978175652768917715064354385310196734052444076540040516887058470943067463945037970862384887413933489126779610661851095697209550003838336983334523862491217293656195557525820850327339816579023094446332445087747676589162102021367088474135772773269709149876127974813540606225139181689100039225205770331129465278276607052970950037768078840558523028744613509119428206104012778048237601164203051854811529709203962150513866736452392440475616658653298219681664235109751982972956074664642503993714218666247069921570222569071313210805524904432284464629938926298188796417200595196825957052526750775587517419832250671328548012471057908871037649775216592955950898688373049098765805108060726382525958888379561265984441080077913671854004777112347432976106150572838823492855053304450639164791380091755456543959807886840828524660972014621043129507899273600815480685135500250540454823902504639743286340682261798661102079222154945449633712400119941875317533084575302298403484605987896547628343521480875371856910393490744306818573109573568724668813735033875962010289685693829030569751902828838937866256912861211760992539021862193758943086425311519924807562506024106865788676059483007059192560377392786012359514960000652750478716199446753163567863436817854697159168278982698493823037521742791798621948731562074747034910036469569186165375114258945588710369256459943155232184290972392291758396289084303099462196633903252950937591899309847748635598342906895022886877991630021629601512134595876684947561079405782065163528127410379630574693231238678310579310816144575675398464066206721157476059458078521453955410985288032573879153623460594532430554506485539721048418490377724886325995186021243725938521657354462348677383512254151718709720649089306709141610352189779068604790428682576617650055410959089000771382693460943273582609070639240083585207347721366498972351298655705306216335614368036674226022834902251361792728802014421911814781575882504753266889223401189898738158505870383803378723816336932920749827715259380225298260674522569154628347692587648803935591892186782293346015269529791057564358065581415368328171854362155659886877963468916292765388758932814187594809443536208914909316819020383128612281785002323869331524111839812361792705408531606552790662263638740333956420503410794568640836773185702430839450977256509829932491967165220189744648530746226061078994581848133599878464802316899434576189255126401323985703235346406005402091498776265590784872236507420423285443472176307000625028418556294125847870501789026801957476437062421142756897849204151783249581365715876133214934309548451533067863554455240286599033643917167143757345008396178990718241350563448434288137821400974712533401583351372905766314611318202913711891811894452168088933340585277307321478056371324062830552615881039729212163940277645538434952723472876510165197523484578284935514032042465957788060387766434367772480392313422719734854661172113299901485502742777964102784694009550758528912187241154842947327725748057409583988259573498434212786153438561394539544312156635876017846190876575375968106378709180369955227779782666562371683174839357380148091607512334832372498070203498724638347246865890055391085792453847315090519028610470747424823136163413403877150583249355699229404340491808380552549967555571084022261983472223730486069530745701271576895175058833779527912416783235787787742556062434526073589096295672125063647584791792179221532343693224677633693146004974143016373092451055409986678889020048186311218777611344973870311464881718955325430639099395058240099318404829687529550811454462706413185703736610154274594390385064052583627391580614913277761389956021448113721681357078045729391779133803669347421349053677206683889662650410984679400609131442252116965382580982028190164151600156587591514229079764753126111525282060950367396520778722959365335224389947151385799424124237874080071254497331663460878600155870983849814210986858835267764051144590746962184043645544146073514528470251670571953117534406983146642776549030692415952920721710566818140204046168986029488951000588479891596774765291956771185052585277317837630087219739278419488742572948330091865677954319666979496717885714209706686945866444618347887114099569772613700896583691546879515083128955178971545984836344854401500817694897463732886700867826849640679730786856642875688132253984885704776475527662569464908175859006674507688871400063265365961257207554902514776421552090441351345084258097392282296684912009060523219901156221727496240131024012898803716095093526982720236404570370504172571731843761517552373888123194982631708077705056243677089636532256067562798930084439832273639876654131990717355707143551862180490364120005187456272426652898875029171031116651458412334576312373993698165913171814110376714734254280753971119866719042653857039635389006902896377042570877935421410860214599041134178510898965229319427895757893135388267684211963469335493824616796530558649473971353909793482921832722765279996178939463101723803069892134099719966488418100265220657220377136194648040616784223531972375269534440504887540964804270668285017186221307986071271262120605880107212162141883157657665360876852480365244147390776368674496648662243033962511589107969895253378872965745535092427832210335993927151249202010455962292059262746391389509595724000345160194153072516534141393033785788709747995580719249220178064003295419496741018486754736948669770857742177791940479166145427385517607706464101699585626516182487003664291573454089118185589197535174113596992536699270631486100039660392614388159867917316198385426983313442321028653389203811208834139819883435546802178449861491854085472565407965422648835765068172905176404723656203840625667738858359896591221287299745357931787000088001082335759754036017220085627833684188036806733075278158085341895041743403484130132040217014048002113982032377191975631732277225901423720828875795081357737437872290419294046241818155953858808747538363239133587110380454828288524125413856361245839373112717078875548002350354110000327102144770501899162200160811722607661071652285156556372277178764440158728703979217584472132034254846063272894401843634654783107264575713172031234333050634275930359922343859507393028534126962406485464877872763271613264220827199012163135610967824012854456997075433965269229365750508723750279154899683055196321784205181861441588372611661815336103236635058664935967094072901216021363341013137003119916009099086954518656316164887838370584532924022006873706026287871249115074645802362333685705222334805140836641025115339232176149006515039016695387477993495494817806680007399281986994874161187411943159985563060100787778645613415212468756933970075831224560898111179026878988804644418044854959685852501683610063596035927493427022990969645411100434306489510698539887591890774786163734727047231156842237048867701299315608142790532356183902971227285968044146342637601138103402419030408816922663874775284894909516001300675072104159232798030158010736137458278978092787300920768540902620010933030240370426280694932169743373422720820685609174990643779461968097055817453589739305882474924669061414572602884582903612601163081002593312683190962921807950049822928473066915596987885806260691726579132020181674098666797872453179020548873624369745756402675618744240982918926608096993519909983401566376359993065792702974674195074430391559590830117484808275073851370260382133475346753451027667605590752547354056523605190907059331237704653655216839478045431586940926896878785013911532327884078772682714519595171673133026238657655856939564070117544959256382871146003684223424479166762759131968991821882981185070765041976218432546023745064505798559030556434482855847624043884765966165415856740934050363482401497225288294764517055527782921897159344761939643821891766768989084843810057475212176134552341417819413983440912317926263643336385082594918535083386250926929849053668933829802598069179704795853731649474498455254947477526564893017049699680242799116623936108571940257090717198753146382702179218856082147822635813900421656633348440645674300465015029593448433807452671141062042590772179113637819154445933373477745926499479542852178886118730516444753747365098982204978452714351758150508825301296423551109270802457472175884289649273242147162592850825310719378689701374043056634722447977808303647335190928035081239488901292631208838287638622217214665851250250999400824266481834657048850059549698617491531900216485918471488156946533921189558658179666049993347960520085457228838539201786149231149973228817870198289341123756985866813362474453318843974833823587572803644391161709908994402524241064973652382839847072885951277758357171585544533773033960218392420064645178951762520614605175340364729949736778264166754833918574273757438258098761503129874885673003094035045098952386420999080330827420736715905854152119751961662557551736991001570938735217143330009770120133797083942450970733152457355645710843518007907134637635747565555249688461695591495435460654605035099879953801435424696296294027827847352743132805325690596248458938465517379599775005798434549730222522466081556775919115897996785104371154973879780783564018863640088974887620822925032082179908595516629477742466343093235813561211629117196658031115273984555865479339354505732135607870236384044555624768272568645772107722267388130205240445596762675915816054762764525465554228314630534703768375031074673130352695019461272182212452625786656376934493791325072681162368627497604232884504894796220323888107345073682938959508240957522199558942875059962123179592546699781152956346985266154285192962205063794307529632628598765869639739965939529047823051162361183282701655050433416417955182560547842165234756639427938571467955246137552956327855883604988848057890430798360309335519764036116795419469570065466201064758965776713340425489850386755240002765046734257607782819891411526421333286008404083909567106110652454420355206723836252184086698731130919873572093394190160314556178572175054727885630043597526239961781137485803989211725887305855684098565656727349980846357852949450816012244351372134475112516205581209067166967183690237371879779802689849658471216226858639631462036999745977960291997384783617309986043019546704469030882844418214667088998596842731467591071076216791288320281957524203965196239996188874189430709184846960293012088302694518628301736478472646374866275274682713351968401169297880240816808171980348510945947305706863616290368747658454741542607384097645848032057185977799275205713778920114136785148814067149590768421153732228311749025632690556435247808547341150151076272772529078862821780078267027715180533744334648515502638635937294365695652726004872084071623989095558712896346611615177064471649713739700017359220436897725536866343309944329046548590393127201955324178680167231959996845684333409788855409159692299072108523552859989015406201025272015399450726142409487960738314367634859797685478761873069287468638571380577567356329937483388495004517418623507727790673641625898727236547513157948290735457465718331565811027106902727721732954491763522367946246240603762833649326684293578152620640025902687461184784949008251915033388979712474266881686231001727274702701628439197314968247985769169426443853808341713374897507917722195296389833370226192762908722078748065351627145131302858361676069919177671200604771374355160089615509388980223663668030603524494228660248088866742583859933267625970439843109679933907917476449647068330691225004198510356639175585677230399777355743085397208471460858966751256569199594280473920648749730375406213667619416754661198697305322189569624401358026751389309096161644902123013522339732357852962316431583774413204766078901433186832239506517436035480015985021583175281098666146269523656904578775500721787488342456610680879091887240260497017915383478897547551750938241433625313936729670275975392848883805582553137560825669925226024693102544578498579909776012290031878835549271402010956700237735522509075841422799225528028175216794829181651292425439765839687045506283958163478550170568143361248891485814578772745324635382140379958129340527179802657602911221230060378474225235855892924914054634143765828860020877945604790761147990458354425890281894644328029682681484110210178138872149099464104078487682441923693281954246594385000373635154720272546270886991151234638956167096892864227068618004810080686272309151075124766977559841593225917240802267530188051511580085759755606593124877632968107101010988670731460906758757469228446319841837389511144156158402077668430894864241297607455991271141021145040492647277876499512039597860651949784843480195054965239140737952086428415485843688542522715123067157008786535431630787433952256453952574273365332570506086382826072807183710696340455808325016866436996285362141058011953309388464694654519127344648303476844411606198841081540168306359135160161371437170668342830134602552638583082026730161311146850707455756775975051695717283663538909698339373183072769335353792103848033431656285837781667969055890303352392588876874544599638860054298695277639169416997601541363264100945192966288230243426307296612987219632594048608773151637690944686326718062210442896221982425205074032676346837898034447137811602981033528679173438407044222205659593144654146851922043835938136683368760318229054354425849933206521708048690150266168014237528581275980131142878773137854616915782759104518472851434349663820250914405511942083877416981989423859661499093016067086647556082372289377696420032663742960823549495732670699516135143902563566987646649679784110703408377621150657133666078688756530741368088009624402016223587505076885467795281247942030627101172507269185236653201964124168525807424639301938133970274887405971298124284324815980426484188142653735914742736511713296451362832707997348378274088292814861418863052837997775382146578623326170328741819040666856636817666696019083494631359052112208750208566619008094726238948422819113972149576132299831996353974964530677532229029054490539656389032975666172098935663632718784459854187643023784781318478272614087824111108464854263828342886231354351418374827034003748090149551495273995640038439365169073271478577335491656036514447217908897029120252130402776896040507860626034949467482288633655977291923987338369385813285150488743686500507356101816993212667954614948302526944772256332323991264155581570521602187382845069581302405013509661937053617874132413533168155486872435389979150807956814646566245494520647426404659556219488354905554896973949316300567938815235585237939586717841626730533392591385620832975170593305254254639382380233376859965029104611675754497203953920707466370406957498945773897971027777353139476766717689700695910028125537158246292276080715746602561368463671951393256914390497706754724728391759656562637708122683844372579980802620343644408906030103855910631304617088157354898943593715776888662975325355797360401005974133270613811550127979251659571754589231696321991178164107906532821989433873428457533754652848466963891028187481872028606098472664503284419891838309068905546256347292328622823267954866317707075605158662193497400033622365860261073711050326762267127769054854761870739128031486272140130094530458143825974472717174833981418558373516267162163550463588647333009930745840666239154390247386627182642411661609888066982565331755830962814321339154626205101772280614100492300744222969067685909183977798835456551957569360305728887687123038245669524297532225179689758646688311886416345779806243679969276583982096634272968678726964002607475434823473307300028755303341892291368028842493445431123792035823047264697534987781076997489883597227993196473062490353089525749352301282487618670920669682320588143947792260141393751258673630645491168988629636005680466610742470646159166355986909360924231310731895943852891052177239847441466269975957092572888026482636971700280715445566938216506035795635509605588949595118294203701874856206269916691783209544637567827948585675553831672671125791110052163768361467939140458827716717523456802993565820221882971309514009968073304387183292448255258542168126732757302176506882908371012655599248581251897922573199844406951713628824232527360112038865879021418237469051361492957861331690621941276116412586642370431889236414181788239871514089480861758883618071207455729706748662865651847345539430686828641508449292823252960272780894029461538999731238652742031245600599755028053754678996847171086909715861010820383993722844841880004180909715312229417239554658285086487336966725354131811231423627568059086751197526380279424396761063278918209308484398809294884115632851936174950687110927037554221686091803511951719294615857221033393830393638604125399989505566920230982771164769326439695367926490372012446734635578114154155329531917265378063253807683809038698736773070213917140896432645014513863935392508974453990219367356090452733414233600527596735417901809755857340128047385465646582104335909593444393283364175095199344146655605784168703261087380291550415610541366068575082146451503868293409933825658924992821729728005325822520556827390112027711478577534215135717269008612599027847729819661590836255273428403314354727341150388129487393677737314132636748381856227281335572697348053071983354786884641875035237644612270640578004309843192736042153353606094481885902058727858788416768297655774550141345244965919861079529027567964171092890189055304297365322634631793109569341943215613503316331291203009813460184447030160223667667514600232548218090562773598592584585239175839059489874882313011727025731648567533547683359285025683564580913911417453072635836126874900131600840642100658080335484866316984333508638929378607317058559502363871148941517102781904570280241277717902610887000795414641808069310724386792216036323308208469987660845453759971278683838201640809299008816445808841517333974098466450556821559741848958269497853953124275785145338226448048167051228555074786331649441165610437057485040573495966649282296060547771896798662782378932800023190898823738440384328948920427530051818047101842928536115913313750745631184227175803111361717206394938890412973330908950772676072183464572308260694429752210589445181316724538451222908250192237699420358235517758393760768184328083077742639926921680148292215125159847882207565998818900415214199124876437264651743762659423531987445222865456965997101263900776585419743638050183369194944972579341379609268580746973242658704524992651222080684946382733767225466800599003209821358340314300969982254233634788604203111348413230228120728182526980469981911027894600920865863579602375715369882928025623623260557599592880731258401995847694058016382025243473929619955256318010557128601216657505426738968758469466139447231316901032230631074013805214218190127593528865417805485632699974659092824203094318710119211685100495588598554630226558360126490847479881721480946233180124186492000785411893182001643272722609944018507519052895508832556702279062353297335469781510618538119665407158048782501706683489949971570801366501013194049110516872432024815515108629686716633228495066606960825149750044977188050572395182643720558039561850499233279764414774501616984751113935598725670448885009239127440544890564880380119655823842981351165938149895438588406596258387716039751075294875224601850641623267042697662243717721867491778719915021378986321753624831137830478872538924126368533192420207188452799638892791158291936095059957872453690282459329265250424678690055457319042354533366343312659683108726353910428329402754615871278892153419738192589516798168797376880185344045288390265653271745758526221321343525843696042743504923030918888751719930121451536101912624726224590680483899811749712362291442367559740484604715543646349247210570817076154702049415136197689255715635710554283698439957343342616356538807416786042867169298799118111373359395611254523741437829309762558973371095448431952129215672263104944566104072251167066898986847665382765909792237384312863371202723980110083723328400766045861472364308491545602707947386788497741135386313731468302470341344419861504125354697401791078447859891069906313297392459905628852046024654611473290518007997122097699804746576108278043174731607480974278887064680115472180460290760231068304699104932714422864731192014324924116234502306311331081049676652889801370282264527902853736925459855692828138098303279639811364255933609565148737805936338378951644903825668546128031347288729098087330385038011146127796159570428688356698216021409236416252425890099515121215675323932636425102019881392097551388692736409189302074748435240690587650452333966057916617162336637473517255946978966397305233784173137838451968937117887308478302396048003182700961234708346944130443464663125386808104836986797084639221639384979475940426844881124639564082507936910044742184923262160669518817450838210889011188078742641310355782516823248376351869422170771658033021083454744676407093157290408580454503492528552143686391987603332122226331305183960849567568547561443452806293558742772955787728235370178898407414834922358161910088514677382911642291917626342137509938341729844696746142782916431508936336431775095099082214351001905599691273103639734769343863737053745287775255773205662992082767247757881995397500924594926204125465519795173608592967380971713202266368167653798251632516648707266329738372590127033537398859281333422370522219900539167149288885662950158205838434326990818370827295739898981408352964085409510487361380257928322186325818721103749275408873192290072416726008938660455389006922424938705793248108776991050525459090353991883893747670031393319061280606492734851518897956263151873937958525647333996445479257709946623178942227464251282159464984043684966830530157828021604485494903587144499037238100485870877277875270011296072396236208066008733312316149817728298130076028883519904465401966181480347932933210988592446102961588853398823945252677107271466446586737367080317920815522470986243703183349943003200007530567302141276203019986237073721779766751501271256805677899764779391753882728084268039370476572318617698020778167443458345685513450070559964986048263891817815413706658860600597968773216453400656580844105424486560973858548461892642688585113651416234873878170114025388730818183116119278755308807849640834850158132220806699755977433615533307737375497711975588243704746905423860748243217897857886031248263747749550906999187876558155764998271355834078876496708114320997107023490600321568072397431959636303629449921655136247586106345113831273390002568179063980510813634431434781293861594680126758000287403572672304436790630379879218785616351156557096912603856926677367960382594191514783816518867014446450670479883767985010553681200943684447759465521626763580689589544902452570185502807547735459673943440787950402759539775415948229622975194457715264336182594239274536165250445298911868231250993740281806187134152809818906400964264381180637369325471304430633322591891558934061153726764489655335091412689351772322273814006489449800533822987175410331106419942841363770482801034796844732661140578367201877292752838363700221928937261265397887280756460171743758337710495968157232356083121699273752829694675006574780316662539726986643109630221863292300863762442823013139128777014821856458527012598294532961544459306364424999171111679350514256323978434015990443877733848580936587136334417751863223115859217101309023907159047507972081111267999761195256689949017624399556760853488002528538204659401422063531961491713562069877489358052517437327670521279517102910336334058433223529930673186563818873186089654538801260894608369613724785569516225864984351784530090760485850452465879532687801275401947136750721311464922678266968714729881647651982572633784870827684809280586751215993859146474545662591809981876876773416318474306510446036170277342302839350565544968572501797757330435683129802127586636049709989070901042049170848394995363863495814204678931953650210576113878918757279420764124479491109285056640879104171708795965846852478841240286489317572910870241649682785059369699483600999203121209466715526154349074090243456592117809284353080880705802299588456433878144426140985405127798012308420034395467749487932631307169718230935204143091580023297443678975960477956764028546623932245508964672359561391283555791006591953965637636011618836468347688495405965633436125768864808737460023378321469904778859067286389346578656367777543295900084736635461154497771526692304235609631348775674016448476343906362260327964297038385028046146740660461435784353683864038710614978093602598485583613843141493380226908566198210503574545500452575774798091146099032339636823852279180150519004323125752660495309513720503181928989340395129187847771567117469822558972545629732690554415147187659026086779991939542088931103075253965087898283544429973455635659415197669629090476795318896562042320073023451926104857717843002207745694785665881994875553918097694145401065541203961983612975727960618548640103191625609735034060097898364536750427530700584700164429223641232968204079075924769747193697116564523185839309113539617109441044936124731868137586855250896356120212836652872393908095887279222232086397453306844564380558004022024998854653839294876800531299747536970351608762311368748477977315795000574272986548776233769137722891973488470978952302310815535120948299362338506664182222222314156667714462424069037458716109037580359423604808631175522408002191032139628523821945006664048487635487804285870423060161633193243719114390367026433992449805215530861208228161987173167195881255135164431034067128187459916006443553368169650045258935979521045678328317036459905938344723437974046844519313983617535520992215943446394807156022913480930427477591158635312254764729246170732166582578136679975679370977794227764818376903997657280474094223268156957885317275992197172697643530026399456044779891776181879722538197343143716109312555731682738919106715809275329102176371884595463177665281910476378821543643873827354097039860520184938964716111534161392082339763533897442888505241078246848352779655590067639386892848646642068484731771089948498200659542362610921641552408825466146329723047503676226408043794677559711845182046212297411387701145563128827878468806036149681532813080298820348429621601275769065420440173462738237619963178191521868696414976641160407158109583931827596873916844501205683570768125604423057972607480898219213960488080535671460573067096336783284453085580755740530379684393153768271052999424555741730320642982420264265002529075844631492305694689958459551550802647993133630539566268196801823934585042327522955968436110825403296685674214876858137824123611384099005720833343427034901457592230449288042725851444903268460534671145777301830158929410717415626590105467723017941435887695345145252464925900617818714979564253109196271164546965610577325812909698467671382627773781820216437014075699718069783932657463430268111649446193255082379542255267266003082806343590325718528497427258295599984646250895777657017493555564952574698952450679840252807007892753855447925729421441398219911975904593485233756381521524916974512259327291787146525395568071578582304540514297727560711582761921872549781256619770760244939142242795435485774439489450367404528181920709697295212316182336619384762750337429812981913086517173586517177529273189006693801950991481903062366429582456081559673537046761594710964018598923189658925811527076115810496295917425853425457847086820319710645913081910751368356588208620700835431327132645873229918065413934426652168202355135443311606678579394495015905966953585895166409245593111540981094815132409230068152022427213281122945308150762333106658013485656216823517014523578421721975710326068169798329084422912053603471468009726136512349586035750332370353417885494813998876878606816469788075709636994482225104863140926300615673312388613525197721528097898972598092827900563678855905934177637610174980871037444933985864631440125615582780093828728672039714430089163873280839121144357614963380573068349060365126825028909379720355667011950531788173294979814273634349991759544090649307369637834946577807187901157001257991787023821673517173274222818426791586284831807715715134959903427741726902692174852405038074677955286475719372736092639512295435317036484642288217108067804544899813155591892661659474359711241210867889314814999180149633064550189471160446486796159107253628698684798159993293377254866242485729738269206158851407114077618905963843584052547449411780855758470181207630708529649905130239354179870548302814145075547050074669550476052963795234509889332124126157710661305370436225558645603125246246240886457109554662959533556208187870001378710349119955053569122098995012459791451797046957044671367372686924099018584255942361314050852589790182837886851436146606574469001340664552023634474885453706915907689857478453418740986585281229522127499842436236792303578061466218060684130410508567610391133351012533379367253851828102429609352002810531602430899684808395490032646238696703447672142206406955390838787203284990191763800983306884540617105625960594438030635260841334878520145107675936226246370081985969187136688738314783075214940858501969511695147137577499462832647607903730729958016403139157011797378506886826394814914145250476062800185702265935860550537531605547484021820434446254094694095564969482925618084584446552964779476409610402698548856452645743864844108485285213849174216152281931251980500411384172642033238875882186391960067393249066885346717084330373495039977119901221192346664305441433838204659822242551622447869850146991006091756987241923293800759087843088358441264959688471562548136222058260311071468026318657338081052924998212356850037844181449057615943989933449608926037821619586628704161182243259301905803512520819695964726962846526535719729336808985606690061913642955958000359814578214793303112930552944050590262251956984831750605845758786898793529097644191109246859294365720698441874746172322252447001161345429937953250593842115868803628618967148207783639388784139505947019891846706764430498427536157873426272006922064600922454968844262578745018850249864349016436395480145376292182865550997596848379557374464148421608406015563448112974326379809672946304079669839253631081795886419731743111071232520408007914359452385405378542605946636438941177758565306959064776368418789735306768366068546430738957504618787233190275742442267274503235137449683854269547586965474168814389916310008426462759996104862244884257379142203375894003330863211829002839999004434682167097039120276779979323446406516608619857530608521333616721456784531680107398913824204903955467190899591122679323561837543824246899647511691094296177204158073248585035988488330491920307751396287991665509722501488012348208081936201953166819389723879203324032968388677855125783657618901059556741631059003593136229749103041645273311603157701217469747892038867282448958675070629688933305792724531393926738240015722828389731699832433410026419406560554678736094367232160377697620102671839942609729865775249826935490304616740935478240129737526609058961989053797418632454698344582769782146724206782184856533513908172433250951121464889049721403234717210971856386322613891283247618704322632906805636745726353627164067213839352470126102972695419016914945782061461019618535848656991217319915637412662393205447453956720275871849956357413482340929942271501120572176929873798088124094713564488356706902934049958877514275653025123395253229664691921831184202217547843362184250004362383768597927388561939779883947590325629678015701843741632998366474975253337883190463599098124055370574740887975338588472003475485583597318510658875902530537765031137816874300009175631146989636859724142476524678025167689982833036691796373134724017968260265477840866582052223344278385386836167012012863288274327105881310305087108244889334436213265599276675838671757963832825964546357656234719695833791350507134169749217052941577665558133012615301369774738486647109186112356059789880870567944429503069644399463063204105537796904659493069509302871952032257538081486711118513609716310366360123821974262969143655103152177293795335069790910961910307299099214924557435343442685610977062028749662853134627460308417918516185909434790956124755952037888686754001850659535702677416250592658510913787534713279326645972800266979251281249133841372768129546446880259791408112987750887352253288134824793274227077418961366731213482063274483842784178633391454318753833667389713452203015281915661738592914399923738817486620508523734605290810895452736058536205277173687005523219269360111837218455717746681393540141252358739372486077996043763466129817110275551669848961740599796663381207910114395430872830235898293378305904132402599612488491642953309246906913592140644866188693688626661592895828080929040481633068152962315721111346709789518550757282120085363054367540379524503180371274291131506372100544627930092184946165067932253513906238287318664671107525313491343913745806386541895270342428438485606153672113771317943162992703374123712091947236028687613871438501474742490805177876528948988213608923388560818589559691943447292631088308855517423319912782385529612892735347056360308118260766391828293022669500491707378135052357471548831741182700920708451360636998048695911629203924846037782546199474998047922337395961603492074622654960450372284248627068650937409822696041426493046903191211738859882278217177611631603756741939065679859983570772350576113150784824073987365666864876496427215426399230773563794491334730055450961620765908762073855725722841995148528118460188385504080558029213641724264104607338469600344754240122085596565537855085085268502790459494892873103423648952998557237510719187823159180991899863729360918075439195354822557388136366736445672733678577469055909248533051132059888356148860325015257828626844037285336285330506419843569947764840616972470667715840889798803833392486186404338176742765323230379855091052053549628912923347409113449989469541181386035650716203098305900524715020997608021593582286178594311292150526090905848676997742244553681169074776913578436957656304723295708534060824828033916240922114362692371701230925905399094672206872515374544750499199820729877099617126028220555145216479595077545061833801853772468082082326530171252549795666079511983260695076332276936757686185024482891631987555182671233510652840819420448336925473990395657577284509318890665043874537937441257472661376517134250179603717905296217939216073876728639914078302611356200282630196749720899184444761900291485932460128834611098064387613353332979330554012465852627995904458366449860113015472380893149362320427504611397124654664174843757000880417830666680347992286564783458480846584662233732606832751906574400895514137415528672571811242565030822954007260506251569570168052153672816764853583052310641525375848846162874107437165738969070490394062836631180364671607055044123304017103953885348778043594639765781802582796651845929379726537748392037881685684062835384919297448004741697330407280755161950614950134393904617415512013126851593275908287680482091679046335300675885755448578256873219553338033062188581836319659865196200514007552449118010635923212900493229606762751540248365019031341305981360372223569387916567826878709094624265918375084128198668576051000811119635920482368133672356017907426797487475126662511713118190551987047084224954659837691337153561006071336042122959959145174770059207782675612210599983699338605933256977476031153473369929482699920784205818929061510940433676552013503739814153144925427080496387545731205098770300445739567104918338439007016413733875220433982918498745718779921753886249139060948797133668939450283729094030957554671138703706483088067891211881627340342870004510795002094185640700137012955501118995779103954763290501981820971429749305458815940953484855893113400654904347423868856704160940556502787496770361310139152792016247605320284430460568462935122878184199811777537740665848276301435989902330624625484589584633066440472144341382761673492698862984072718957044367818541513149235919498306098321630052846241018316178854188731749660066325642151028691114182955100358210100788149041434226853301799071553516578030043765061259350354579622826789176340588199270641249733767919147570275179806355703278772234114157848419281083350094721306434321846363223427340510557450085722965349900434401164832567856901708421765122154761638870423039668675248259096910284378164408588870158662664778305954283577922062547011373648132464798047885335932797718035165815946398552421324752727709844365667378707681615704147412204991809524135381981399804291608043851090757708357426909188519030049467080944481457816212954351095364072605431635054605858622270217749835328277942895399338064764033425718973206283792823703788418120645140758264745025020347574590386184109585621517145041591973221106900919743211495581949900321424650869594413238915622677334626259432910854338198629198898336263983104770375592812504561806744984931131468757238479845790911445708510085730670242263274765187712739873106462334187673262622433041262952110866451732795408167239985551676009046469332811171496391513475891269626413246686490943728356138711394240450069190970812482717010390461606302379955455258425361346089413622864259442116605396539595310729028563748197491530249448092062410454376999611455062603014581220936085414761238103387230263299610478460647554790711128543448948724633221571627033610372478303435797891706451821444006995665280212067609129256124228434630355794133186826873462093837599047744873154566011028215743443248799622204845568684131678504216268896712200580077110075806337518761756789232702406245738264592955045699878648293150670320552068614212352184251892727344648124062323855944949327070798747384511403844142810494889312497596476928092568213819006356312596168048629359263384651071007717007888241698588256765771150782674439122956182889246179816488540187992899044832366075680478120767645191230856219452742030435489982720567676541436950812149902984771084965241290735893281405642182685367680156494622103765701792868499536678556390101208207883160246034216727404473232505329546157299800056237976453108150845578828562245926832984231299710144092482011966556979722292294641005093485358920993622612343180325086083587544941572641435527838770224235474903491425442653414388814478137463378146153469159300873482969730949561298576725713061399112990857794867147716778336922712061703667775978450402898975947177819697885236142225815800551608319869164337861554304827592115944540984197369631262491503121207528948615030766505972098208854014312611772893773395844998917951857507119816325159044371535552440710537144178940999043095518731422826741605354910267238427958673369557955758871815522662625718317305482403304611521644292565543360417274811196032634792325587455488924643733342432407518472813192781593389483575283785530875027834470662790357108426212375226180780328627315972996033736620053940109139037164437299922398479606782839624664998164657346385254949532017252084870594850524130363353737965762303981022537427587425426352855800683885008132325161688582078837017839452103540021618509061256760709367582530944791736298504216257425294001081180860620324663849783314640916975414767455972080498570673887839029002315580776563458407385078640321809730958511008322835247085248485669746322731034297386896292515472638970204961981074204842149777914478463588785206005411663290664147891648700655939767270333941560387968725713599069454504086170373059314227319699633307404941022836918701442404692488493311056185089346472024006590413313176348051297596705670931467052742489756249373012914986341081798075462742773834117282137994560443734549301295744706095848213340963276117099562807744912037814755123811690751348035609170165956198872424943144695230787978991629266250100166592479462162788370141943064602544596965217091882013515573385137991640596791977110631926221131471073953159570441579349888199065062174750723408660433068940826743842254002055289556666709699002577791718626913428686164020517015203563865808318876889861775465581447769100150019158927528530754528940320442336160157403827371249239375494460740233711538799002204908326133445851124130508404271973629322241818186764150244846039503592304539610425314314485200223944211460024430460405154955535894578279809292940149695325790357227675557442904724383203642167222816759985690524476881925478983157586178562778522465438471800841241934869931123591333594767786075419491205874666521151402356062788495393003543896549391365075561011344560841455484225430061565135912972984737180576976138456707506625980632667894014084780359019170798849568000558655106945788874394850190828927221480382970715270303034109727396285539551019338084305481974424713477582597479989288493166171134764968768837371743425650697840550646892429913894507629692881628727906025773178845800782034055490386340672582072278771141494819167109324820561672920456681946131998784741794549165783614752686600095326912782428589431324405283047901819496482013901716839859773320458457774021893027540101797829360512808950550366883750646246325977747349346948360455117729330578811249916912914349852877930812536782021629012059141153478262132219348637949793499631657115379343692542405111169263573405121131371143204656044460860706406678698564018758184923166966628574821011471496177507937839635149565339537785563954740282610835825707627176607663436626948613433785601475594189516012304533589871609417352277741983206303674390978489092414544134886761897277179376661688160082444498946026856743976979120307495569365868907584811686312087131355838019955862990545834597301882838801788250784012377274965238729165981795552259170122837799654892384824772066549338489511588800719975205791338968029659869502412088205368496718651909753588088645580773049257368924240090668945500043659127132395591697330045611671043501534617894163227983685272285690326243181559295892189079065551532247649430166655495812244342776191527882381390135450828204750636615479605629655697928113936855500888459279349448806873253710921535550608210833437089516811384370440601517323210552370498995928797283567327204409317640004478916429698229910086705074041107060081784914136260634639256038263043635420066524205431827464122217815484002571035824736793180300811507359807257999848076176657384962616349982076839911466109677963454087246085739319091193188321122365174053381403743111437897342638558323827656193456964836537336841055442029318066995200147252751111507296787771410943813182743774073549046502035468285963610225147819942479894841393300885312821137203634661494231676167927453735739629519996385024730838084112847485329459271947922446003244203734911861140748719062034010981607994358900650998531727998356426737234494203342892509944338664546638380067646452625288836049331274363801533378546734641227754922237626273145683565357203620064224707682082141439635240221974079953031549738773202409930068121772188463460193882070314332760122104329515219712776165680778711625747860792884498500675988075302003972474134655826273056860352776395894672608365002514079489070202954171131475248548785909295879455597443812176182401651863666673632033406612084341280670534798622440759335840459788254610287098390050463526864204210703265454208933618659836655402614788746132393230314456929711471840922853407652505938478045353486351594404117511863427021368206124768839074438470512811261983099587324500127980538854601279615988935759038630636627600483061833052149949488767034802309323472975529817555417508665745896648911136794034323298640937164546902205940545863419438083836288232292801874561884811814590559304200341579253924871751827026182641002289788887155745469197129396875508749661516730501599219739364895184490075685619368565237517337536207138784828990298813845496282078884598236682211227186732368125738547581431102004511057808020470369971449660635123730529895822582261192592052577095478686497118285438561726178297637251955836487409810624490577826746922588266869411358334474019962179109741628375521467830384617274391211067423704771229981359764778245502463010630331709620617848527380588205529907536870051371238802629495840601068612545026688707170923659362939387711104965423077343102291556598484874698548354471615046421615737660010112379126791251468856068833673973038049016945350073771311074516811027378461538209616240771202668526886172510310510385610288106664875298984580562698559502600274103059119098720724468407455515033582241727925200473546631488389664467852626209109711654704748887490128293853171124212599331477834623049053154977324218829635644643219499787299984023389235775713435786207171747836980201344246846366003003606351626063559618365075475047443004075924922546188953481490885525997687378696232511341431447139990490796690518794923887579326863264857544532692458828005318705791754940937496627943151979289665020492948641605495623133098235384644560669567079563635978354435970701916432998210006069053876849742468644425678344086110106944873052189021023132864767238496875775427104934189208668144319803203314849016370138873104374719056050376755506575237300944912913411295701032606347519724805546574967929316776500021964383919615628795214537366029087042978761551070807787423023330209802535904902162752979166206766951716464872932560836020119885977804323985088554607863242919948199499385186460551929885467237904113570639295672107263498399544966596532862713489490934603197868885084617360921113990715280054551821502773152943911908197994791171595079205676818606934276263224349239455387951442982506319953215584869361198767909614150655597301340166487615441907426847350942276094207905791409990448695813080002421251502445677834231345900903670397803662763638102412799993588376888483633566987728349567892601635054375458328871729810853004814497945923767465377540704885108456279826848584198212020564794060591065091246975980542540149323015273433494826465943874085075031673466484384875059991873372581263131340340630535404638494113152272276177141411359757501385653123854714652974318152661548209906969768306039948099195312840004058601292952029245751588627872102895434979329145111589512474274279008833595608864444205314079846151066349408196633506366830697417524664819023835354336444779199064232245391030695430677324058398719325182054538856171619225041450992618084327482385431975029972600458519926065146139544220412021457372645354694441405907371070617436393347611891636878346889767943370641458014905788696820655308867782617093759595525095625510034899588331542006227179732017900760872687493845585116312852478995901982123017890485330196690605050202491758157187822085189638633310246100649102514262296618598378794051463481395862180544358220365582802287346137519321150156530423247327282670652877682337334799878199495050607061279890615659917548269564799179199786285359727957549830985615125792069363713197273216849506227257604150740086301015826330546790662355223713705435399184805703506119788783041842888827733875119286723007473592141047717835837735412525002599095653811309792187450105449357313901188214891866778724500681790233380906049125281165148937334829026344081418469454569868595782689552325372328216521159095644629181140747757865678801198357926203871635310380469970364237531503461029305522514829851466508795767568896641454823899938206047466540217194216177303352179749014480671017877903671863515674603665509328908829794086486684650390417126156047422458190205748066132740844103675367212486967720390666834955797843426390868235764325495535423106156924131575949411089381710652352717766639252028346730241452160297250912995125051030339509159218695531595533380516327815933860454469683466540032213979998268604323164448132319918529509666855251763017617129723458390689960850823336474632025697823134632939330973899382009910517986196422248219271246915495834449700136676816942197091690973831669076027544246987222499375764499289667114529222196989070126712262757993920139131152603784792612613651010185094928870686066571934534540546246450819989213322742926507050547896193510767673191722875812588363642072524642095847700341973416902534764640308308250899818140834504512916311842269457140125150255176377527303027665187709093684272462706001178830513217292448263766797185116947442991205407548248702496710218924110185321302408014950704058674068906413634559838449120674109039113187355591353838905597321950148132672276376486458932884161067962982822023303351126469978740985805267773937084187001017977310635223154772217909643864640728375155542953023730133751702805380493100477723997419607960482225006951079805734776208482895396765789756530562057912646781459804004790994966635629585052169580547513628824895913581664481871161985119464953487319560827076494167547439282984195395398351861612043076029911780031662037959309370817587411447063891377216888557609368345148464177991220928567821897619618224202046987804508529991611847889871151738713339106865598346255186134440936928330467613101331189305364065362945467464000387009506767149580668569386745289314736587243349794423673168707136771800397290624485414129295119026065258746608002405231187399229165855258357690991016319882012800459000087390346952050168948371378534798798067301749913356064057716405754111920851707018086359523966451613296547930037824332591783943535500817446298613629408418013179037370857537284706329253452983230335212765117343270956890632019415980357465161422369745663602216387384734077324295783859051422117755448196831774668963426744352334860489090867958251250200920210979977822021933987812721313892115370442100352498647102460110330957539513787284603389108420830029800205381812204862096035997752586202302503944632244709648384854581780217308280691614680805313452425608360057384937066439395979286544032225994113447446785532134903243277449366432649159644136805513134410105612886067424154788964001184008165745670272951159882352375623901917628872152124468777659720214905965691530922306029425105140701062292362528986036783730383654214199974297152659189104166904588880247953149887362093557082317301645628761385706910832848767533900900438282665650696239374505693751411412019677503306548202729516884628577294516657755490903317694861324371988107845365943653179269725852127057677513307803668398013226614439082842155658921861324628371841077911502727391434943761867269478180283195846612830627585306362950994889720554504269218521280547310952100185904449625329867732309124524783672575185643673234269593941076262549596720578958927313928917335100517101680103362662005949119116185830412716573952224020539104596036608186704443364941522688012580031408506377640859445014074108160221544488704882580665541103901402906198735449608254194622569966968387890118393117723626776307250371495619200388816831792118388252262921797317947600175839253794407345238379458978423301719228234048031498558152818388797178848416296383797005147365692725968898074324886715520864477322298643489161003420648752621761915233793962700719718379493932102589274712555496810989181791896819051149926890610042546252850866491865860832365718251765939841542908306798242232238116759095585661102444872059803531643214523258336268967136852382651030711388418081121867411464223871265560316578815064193969092613764783314179981975253140826478422781343915190773753646807139012129045906559850734076511598149134559266789571513354719852642918878061339301092274152667403873230035450933174025252740232152521708597972005823136266007088557797723017035934111167989733410497369340911715668835703325001053342457939729656508330854304715702464013379217253004675359678843277518505595322516162823371358939492284384711124986674876502845419432312505723920342281002061628180796316863078885214431340302404974689215922906438966845395155694944697704396975646332377124912974311246628309955331371227329931313578405102759716776896685936580746337454607916369453657016299299668029692684519235164778063835850058169622109246618825343648180346681352974049607959068891129105848351869812557527894007685873417062345272283798809462728980348157441412914590027065326259981460664606585381470877100841989844672973732980725311525034836398272806845174355718647641046709787795343408662175260059000074098160586377552116005861949605289743961271983507294278244854774323450685993956814571227226426732307774145360177470590570268153429531222574972749669800530587783761602063517187707809437324983766743658712504964989769707610502102499519300335152697552364352150892557382262053649171197046859784043747277123957182706305539982920538700872956727288697013614417421986749416053380121968068475769873057902854200908874906064135736114809074893056230207843624172768813080437897790185388011983091203732567560489688868126222110147050926325268975565065765023833316663992019025165555815572527339802187970991790661707944163958534488117602194685064736604029927613927533333539335149584755837133953485896082276336445251366199539474595321028438849858077725662623304661037020310180853370657042627809883728633737471022116179036956181793719362098923448832200357733335896378426875958028178451363612179380554617459475161130663594440350094628841578935159659672199087669459121901170215399192151918155469713334078574626810236038149121006462134716430164948275451432444071541782349649774915208695328527443644726292166094104689790064342516394250611248224103426305033664913838895842909395351270369737437189792837825835743980384830595619407269002299531335056774714524487454716883852153064753214332909711583385397299889142441413689580176698527678769287997443618969492493513379371144612387675703942376197170862880565880295041015138043064758884637366470127378750749915733968654883490117814763721714028541680097220003120605636356807915221842753914138367889803076226891541111310173776431283658367787211593289551662229740811950435964849237507273160678315232563718080665964971441413661708581160150829355039711836026284053856744194029937859615714381159046547085250044026189716766233270665819128895410009966733469163086011751220360777269866880506303635544234952371341969693144244752761481806885113070980142111330861743650600361538718305010312405884754642512920620234943596594441284514514412498715112238187846461973505305352520297491334530519408343427226466300053254555795264347250419931467877468117039931540462097806911817939488884239406831155326460254639413759396245702144359647417065179498119054221900949077735027245966957424824848911972960582702841780055606610043312578398946576145410904968751889547060979556683987995331939904495438535664418660325978763708214012247424455895141711115462522850301166172665865518725556368200083486449732333075299475381676256176504680059680550453122614386528768982592850771644034512547332609849811093630674862296095810702235701367235219723062778838810559931706478807588668506194729557557906055902374783504720760379078076989418176652968785383672884704526879639378786393563795560778127154470407735148182193614960998096336027359065362523012465647800393417819906707484094065731359761920682123016976013099426189218747166093389606582395563783775894048858157021157096721000675685854149739652679356536053536270843628450572028955346364386174991533358906774006229389113156221945959705910283735383463561207971626059237634877159211504739931799702158105990560745166245039458443749102641886706030271791936466093323927386754844117637486839279579523254216568955331458743388109607905526212045290455624718136887627087814848800802093252154417397871005982425805745074504273556312734489372858666920601207013841811072309742337994745653798281276699444663794168356919770350326096313578689578649821856849596204739627392975702921934417643922740349268662796008702008574942157397408334156420189092012360594557902038440749327910622739186282330557996965545728959171783847941669844989244237182629020638397023012098710599109382221511680791965499590925269023751389463082468177851682487825133096269309327605437480975294926558492223518760231964474339903799064290260009768674874418201059154665437209484263868443309905977982947998573466658279125841817428289103301125875485986058863823773819166488284262015817101148608828031384986327069202760968671384211948274163610670410093991323754340182908110384601275144336480651298815790287840361775481387182542045820369696883090001078000247629533455698923392259660062832137720446535392561761117011963714467928445490742227580488658464321131844445215893495575490904746450555035203076516491535115149770319137865443703353881771284286896061779766908381482799186556052630708219911288613148814392714485611273636091946982751604128380213230314694931387560053047721730336043881425492448793728177512745476171167835789900204551460456857186063403276860286400745616636493484294936161833090182644276900923177969085262778038160945084897205271636103436633993496604351529082352995915967746446118941743898003573831489611651925097709497396825574949946232441028804752243197473827831258197515238872646520780059096541264181579743660950598775757601185979077518990712655170238394865409309361461449916338499472974439852379776870180858354165249803713778312800413608693431947542384569644165403397028540550375220418792063845620501751809949378050381884864030008439396361498310670083002753909225940812535363981037092192840179112103313217597429997917614625382245268616223211509291941787029152269708533765141012659854490974807666080951200547490610843491148243665429808196324546432774184738529638823865581336122118221410862365543212983740473126549001729428318703360631026846694444525522931298542687080244723938112702745329459461106449210207015531283698353496555221380506776605885926547812395687749524717770921595218566475906269989292749081538536748151146980444751287699925971368711097574673410672206400972204884709552274337381029421223441688804822646401296268426930844086939251319580931594303980530026324201340614394408939919325389862455611720625238859612702031938281676179409137384368080425178320250813143012603334673213089596725220158955181082910795317221319996276694135125892287682236868914057163832992930229620392778546022584609600994912279332467952345296050775165190644972647103420363453645065352058529948278907138254972343514295133683395045160254826827525714097217915071568660518665710683319186177146844506532335293426592309728951521316943018191644200445918169407445295228933093486987736596012329871745201369113171896686672046827927474067701032789312911570916705124254949918156259521538083461136957270025386386168152352922507934689860331493523636442344067873393692424489346579137747712727242076353251511802674225076970484699377067494121924248043064504906816637231571907265704509011524601423699489334638705640326577850251916124433267758897536028090825926770414509330174236595194634220067642690768182136792472418649932934508250423027632238405202780654770052981196286366833848131262908605856952994336817211748819404949216725675307322459856519429267232652034196453692601982711418904492994234023030996597048654294584961148418905183660324241125746307726304084923308998324641860612393579390403644532218294845823352801267394311706609287182535909842037024114431020002638898488283513301932556541133228969890609530338205777998836771010547164011484471889204423256202810881222571345597724141840806244335957521448185796589984996785891087313998626396722506161485762748169995599827012900826658168604965710913959635496399528902008372649781311394373983684860424306341620362080605978931364975136680216341673193348096428565594505679380722732245924747546795371200457982359768228431179841849563103509803544892555259035745949541241509363610216136355282242712984568167972221102296628499240580753178936781286163742895190348535510022574419750733199012539267668569102187516601532238716128963659531484317899025138672373343864272422098719639810883429709986413498070154687800867661449053034544151055588807335626762754493956844510625776425066152781702219711846718202262842204078664100692102572679594139126905282378423436657185617338448105866680558069013266308002183248143663181265662509162321542457296885041367622445105877611191529596062944296394856163297219211003331850227935500985842330560246566015318528412388266781917323605612311715531460245277739479238448703306048276018262716035093021016351494780862426030048450187513421480966097349216129136752251866378593746609776538626974224705576403433841501774979146778563910193286009672892382846429232108686698017071769017879934146771804301664461902644684957411852231171017786304219660527939034182732685735894698295763544561845290592447966129562549403288010609440203719751592238437075288487766142797047038253097528628170028611951857772992855192736099446405992405657068906286075213185692047783782188515937081807089899916190902518212278743437173634373692423167425268914884834545496826836624153531019835660737354668462906529613171390216614405899270512616462761507996908143961428946205160064928613428452627420494877614862428082566738400835373598551054094997726865014984332677454718921795824005827916863459871100072198936701239219081182615839554463591670654427869965965197972067546877716635177186799375855977708140469241553883346899381158955343302069231551340035439883818688821192739407143732974824391885804410302639236596589030255362532677658772440691460989872528935837511366228260734523870152388263512318604671042784190899036989680362032171134399423391886218463770613024122451999110549210354229325341475435659135376147480629254622052007631505827751475816076892533294366241376398087721438175657249169369309014389407116752989015194928596171539534322619884711089549462143513862591547728187128298194121924676826099256647984332619769140655527093953431445735536060678406471596938080098686827825673089944098975225922870511229530714216871864503637361107522091879758770519725730081876534558147168630313685506371412588558238043315418968361426161057633168121457426704784402624864194412660863057594835102689799829529766611852149547113745699685894620362030832601342513016415489780526520791938017203983310690371640667166307803580490879105891730826380372308685018813599845421498000796128046205152213391606770765768636539181967503715158172395966125096492389908410547982225627203289821020766327283992544015747778812335157178515357222400421316975583397870887483589699308441846224121352217562322218110179883252498336350702507132904058092846555578941887415378091455631347189487854000682698415234797477169020303260582442340355433175587493710214372923421023282560896572170014924563249535812079340408274843504672567633642088447416205474162002707725863691501477788075775919095679917142278062583411185097314647491276063897384460988340165926369794581576214895079619010452643700767779989593378626857788971566677312526611667302938131789813032643549152108415554675693172865212104355244076600419861931588026514745541606758172194376948048287331502208188286959962688998714088954395710812105033545171674034900330992773669615026132903638967082424494619786822048993036866245787687121800437966550894612766317102140672655343367235161988778895767047255078669301968293477346245943923692385558880478827034503015168255678512463973043510632464585901315003782685161259070451904901418311498216797942089741055899617042741766535241605971519074907073898148674811400995280209767529028247616957954634775132539267002810075780877469939506750972572426602242433481895658188062866850464581742379605326183728719758488809145022525770838155550287640604056803219372932014195929877434204493749452400426930592399150036118013829321282555220261306721851986458075318117537942186503611338207871100034682070618841604753663346531917618861448754095718697771592726070915143750564385819367448580506072127356934638877077477562600521903175953194268043041041922941267259393871680921045108833851041368735515705283100149270000278810387348889777412951243988941697439518520435007530250335408223059214811221041228699735375069956879766002902938288883291413553573793294707626732026441054347649883023579989204324758579035790991180685611432673107566511998629307264395933008648897079917530697219533430670610448793812342503491973228585159092729728045771712382635972805368942907212234637091889379549592726875172342147087777786589853305024162677520600157110540952100039020679061521882750888856849095549412376581986880923083378374754638215906111077098588442896128740588989337099748893039861680755588775271427825759543477290747709940066759840507011220871306560185234360922894033507431396095069696325134504744150824354972247963561283827748263588389197111647803302368403979516904769228421590102880019339627843887735013046772872228081994191747772638284283241161086160472795853244359283575199369935895830649104614843102836107236344550720333429530179597343416480279104779022079960752781086997851227306711986983282812255037311282494614724497189387879435107253249013086779117038450659871793315378623817093130032231120280507877529692637266774180309428047660476083063430812037597329109476272623095747797068909235056132820437377417875916238292585885153024124284274223553583513044031403855065267646956623132373797171610184055938847417267325721884022476607081387301549128208244763638692976219025537974582031686899366137182298377695550395473308881911511168355021455635821744056062061641223887259504770972150936000926312700072079484684309506862118832764778942979313446639318794004966179389234110450425716416381222869893490035257663045180486184816600134537329887699304845139887332233729275573493982916179050876528013604543661691574669838605527358770470384482763268521769240826007291529457880250266663680597536635040149674205589637380920290660438340225997824543270265193916226104756658318303507013670974584866579344397792973944624836094183434479837793697125245171831938599947339215580638062964005613674234817882562718839913414680459346185950950071395345066197160514846534349426473846844099506964969544116140463655134727084329227546296808298743085277640611140619611117585365048007284762827785442638126629409555482917518399341673074055355286810953220864184021033302427650833370940483430890976748100192319621685374105240454325594049588464087579260463143221655938689686966780750258084088536168801520342249497517394254017022705081976159828076034560949080839424676698193674618142171158263288700181364110565075270629776295744962172507106201503315162891578701291297533723543703246079275948429281319789065427342750224506009639476548808563500064263723942356005670629864645830441145299919528752088942087436048787108370656391566776473194146128919065822570827380021173888517414722735952758074608433706125397567072411526342733619552702122947392951913317322937030897490517890576924953566531645228557835831665368740857771025011622242986028043905667443067303302199544475974965094896947551249220357653665917221829544119204355467865903900350782899799077982341663020024959422570134748717565193919539152072755568122597251166187554265935818003600381583831368720156610674901919458859578097399410265539505292838706024056157340151028771751317918076121270122004279770585434603543332716475322658416253607791990323596024616085871054647944265998882933958916255060600265994009685125156991354642846686960982826218632281268313698728621746573651244354393178426183644266085054789686871373401833255660896306062824863946677973771490210554896246397850876521689416347487918469795687809516184459160507383546249618300996276783633198506369947683127823531164215738924087380326881792451626696776026213803487566513716806540627685947303425085348282342916095637778182985223596685841954796152704784606858380058980575387256763695162988792594465164898970956361948540116780531476263741920625130065816096139024142181754754301237323970877041704764491651115022205492945373386231435758660370030314722647813740736306858192957152096378085872003582669287651879957788545541085024140296932811283908163709493726774055651266485640211951962008399034305606491934499980944315205139603215425550365159801083789760051389337431643172289221043788539313554449095429675780822192638166408859217807355395890728625450128960950440555449592019767968353558977383318527718418142767526808058037960682166863380689762083956425929247315458049731355144455743852321536426185389655892940862183449001690416699147960048144186079562889063457651622747845594259645674586319397366478603859725419879274302443765373457549341362879330612195877318728856818569591948739722651358112412698718231082773064544345943582983366227827156724238383149546102536673143716645696372986914081021121827426796802179952236800785618912970073427079135203370466820524882954998401053904712637272700612972685899413404404233931722738661880283228186788691823867428898654642003728224824435260967045337319506879367245310470057057151707671287525815543773674652736052913420239762780427032566673350383137030224785882331618906295688808932448742240156205879307736334126409929010960109711444140335342753561742927513634178993831237122972413443593898950537809927996243885279429055074608466431913349037087773458033711522396907198278311601620210227443466699907903212065058210297159082056503782738501184120490528328193810881673219781809138169000125281991274741147850521154205541732297656241107065437417432710675164870679576846279087592817453755255743819318203122086254538890226992460115328564727365962042395542875684714911286077025077208369695627309679945873561859561954002214764728072962137667550541682241676144088688095957393300616267835368399509143281814980910893832536401792496793077667097088865053421515495657231601654339703112994143622141307198386258625263517927417920776708747770632295824436793231920845854722307890039723507829380315776702506945588581539598078600781241342320428585093383152578149740811264698379392046223585275830697293517258602303454416580692786215896616853629984425452819593819817247693200924781504761479404592920990521495602917729360811937797866640687851789187788086186379539262551573623133396968888103699250671623769291981426856802717294504498467862859976525570000465608174573508104461908067382545403331140768628608587380016644356069814531238646090003421812276723965546353500202909952694021686564496326083581894498599025088878187073425173569215189822754926768836903145866717374556544251468738811830006740422089499314731631972874008567540455261944595767287479565317586789130152520397430353791912171628325847356369323791589664567707919236578472406459716128213224753452907508652530011018300529551401789506284854111084801155446025444486879015770029777881344926888336244922030831581036025001903456216317713516150254079210807929616120181437844580619323710898673923559450992198237457198615317916671511951564103868289407852826457287162580529286449572483413617855305688710078943467671071588667106498575547849202053186577086490746708447076664195991481613810716872105739824095350855082426421573135989835795989299389956017623022890562352379334862908156995015077365662247799600763624183872103756195015157876112611688372329499054964855445489635475902850863138927332338051677010194745584135365499813700733821576917573780975248163425570697297529717251233143242600568441429790712728872455064195218345744436161284302592949945180907414889826568536488487752875216889660235367019710160934500320220519224537570065406077290272112737706714662171507670192076285212844878916244286839409654926740480514780936966698792903005879796099375628561923028434683476261369919055374426318590861934981716894210322065862915773069318433256112405728486853273786015502647801369808717282392334793238060673078655720297196436171285150644397304677925414019515112300185973702264510968522898679595831807072772172411564718114045755982286057381184519813418241835901754477316928748291813449157065126260901459207518997803515835694866346508473078782080171983757586774089515278668871097395505986329969404806862916337973103752177780893371014187625768444797905713821956606985825945316976504102335828306184037314082370850601180042573530744934678989642025463498794177845470953350401981132499768980738218656169407816504104998222212439985836457224475753948152593629444159218155038849074551119216573238601667992056048349023560449208476279476075640594087357176073691682035749006701070905813977455549199811628357607432760185961420868032763517902941031084179186901507295756278654029605207813572353518334680355598039513838402179057048253894327711982160942448946392428728020315847981331435994134731008875611965530320539981061868698266463034305739888337673940225215342438837914956639910413841603319629452259493758390628345164864905028031322912625464069255864651597150596302483641093652141722104437658158451616594116714110356908022018242132627731290457079763747012621395405827002227715053045067475703860962491452982214603928863594004178952566030971052683691901815415911172735161933760570631361408604746696367499171460670490952125847715237838431498037101562699846941648143428717427308312776238437300218813868417262081734253863126929457786044464668661455112982709968548608953254858479147554363111775900574913647829199752619676672233531565352577065508468916618041689281865282845694284956451107528200926994924993264117258611448403000286485347530493026190082859373618195123074724721420836867873283046068186009344783744897700620880384278661602143051322557475687806557608029668395521389552651127732923833500098479659878712375864636079577706475757385347144846926068441380980555888469549848055583765785883789840769611275601514420611592524252169966110947844411883586138650204344184013426994844342763796737560156586761408716679064748346930988737774973310860068519399890949905810383270489971687924524424246595127993450593969143358331234432826628687004234542506665780295376624646648428708237618947184153941068919285233811719251806215704546214017026992465269913108140459937302866016516443356163459876482170224250263822919141349992013893512735080951020832584734756664514547151209617872549905739274386916541077375942095428353153359351871377592916330754167283760233924499941756347033731178708813914510371215633423168669697445457385210370455552761683388088040429915015059519828438594273150038889393643932614203697615784947583517789723002528405399234686906443372060670240830115862747220665764597983672222468873882983626719127204519689707529874525871887043143995744834411359784145433648638844731637950122235525634698065983970697355262610931709321018484415900995700912657251106131835636287421954703256639968771089012461303325975139694909347450199043123527063982954127138068266020615476707683005615810481049575228733098741312764948120463411883771128179104805831983462719931028024381213131109239980924033195780641300524039612582362556883201728879934642401223605710918972004345895201189000914436496025710370417344525754123927602426006333876092714090708436600299258119026431540793373672849458691214206632277877055818059352957488575074345255730816072994962334116324409746810197673457765496062620387199592931345556425576499907910934208244882268129443108024346054761528645831828815018117527109965028833197124505716508439479415607760944082997435437312951832153141267272504002806176729317700721364158050762542162625385346453904497860815955823140578448936923413700760962789532941180501603735590703080620049542998553337341066586811521284508274868076142222899744727785563425627579078573768618373163113564757450747132742545845453258364213209805780205149255335677362114647518797407418234301266647850991583667855114438956294229557277105835182350263027688913483185817155571986108004778694824510301395634569204198748351663937366011144604223596760128611869987793294411991782653599556522201205836979495081572488097988451354763736261469291708679453056196928471648624313140931084356093790812960697692441418966133426709073567824367252735383643329102381595741971050669654100628148418508415953110244271665219939247683129269041568565314954597412485807804665293767679989638911060257851942865967200523896466994182056726316606778615768256450257135654808950064957344377163553203614422384487080886569556080030353910452528513526795901933988728927771826527735040050567590885443433637831955331071068118218169575677811993596275371897503339584471018766455866887553535875611124111227433500440702993123095422392810903929351575062107083543048932016477854719082398217513662970770053155576539934790223219360088325604456442189392196293753805527571383776782718323325102489807113726534932400124317155549999430421546903212336345104800741283264952156100768741400974900425471705447731661299614364965251141220230549649059773374357142634457912754514448436878530925734890019129841138860990756983793949702407050768513699240817916829157391084842740492358095546474751190216518720458131277090958381146014650175785050619840942002516108918617929655548929416183728783788118549997721485729547465090131500428848280476400049196084912902177693648968793710557338596139191673411164656399483606206943391082570170348661361510955968826517213364764396361530992295074124921373315610976600830871871374356278663864942035108744897457018047520156770249619110774754258227539363557508065095895787447304694215855117971326538293201688274101547193138302119945275044346445849101635740034674937279153825791694069167023256301457652274824663616379456907916502631018117606270774962980464752885338440132549844789201039688613879328626243813234884700673740086510114240232492684899531166990106743693223388835961961614212394770555192517479989831883587177424012933215396534239249295280769474530347212751077021012529182415140365421959815281985480894095498438142022051348992187948544689498662928104716478866406721152723507339980810699785859493306864647961158182654819056647684073397966021602308571326469673064268716835348597808188782693020538438258441885798377644080842818707823655726436405121112968970136404925177508466709819379894036047542418163788442876121488093599873047457372592210219377044130337669867633245805793403188462292874828095400342708305453701582382278060369938707624511445200312309082679087723940955654294597317091035482152362575229600856883615496245889018669463679603744926959455417705979247562631036972509754768778595904655704562262762753540244026758706862629350024949804928938899721800337051150882908478850648600420757763200212410099970169532569377468823806912410674083011984539960454788474517368305348946893245063824137223122406317219542156699625821167128289121869576935944133382356398243226844572933979661111660732947186103459398051006240946291224543879644616529758776888607202110600330905857103413418804228899447305651035113708936424203279411929714425698773492926198802570192128596722040042218687017686691660631974372036145973497441735115389928890421870289274613004685820126220348603764599043666199053614035635339175251403327389273720511531105382205361650019068549372682936516322024082559157348405219367833501580164881603929303951247081909018334994216198530880993471516689579962759777714402088654015737283429667505525996543214770176825910447905519603551859991938535662391649547812096594344440222630443421165098005054496958213536927280399977183751291728432870896701764119576105478877195033238688787519071616262059339143016245958229017210100066628410920374691580632738914749658405628227687759071520031961769553048531656850663515432100781113013021724628271727748434008009366498918579541735226534730953086850162536233794852710354157015261731386053911359192369745791872265793060473180436844959770050800435394698359272615772070417135137593733987046735963418524478401725699502067551869032963729587816974430328567914155705461596417101187649885998746243931990854960368147853922762717797294257553003535392642885448090066464862347036585343846570624702616109768707808330329660607493799634491487540855568102330675509706252743665944510257034217464763203210546678965897757418184767337297268890101002830239885003271580914137677293286537775691009950813655696123293127776373882430732305341781299171970269384979257111358465517866452057042267544326299410781779910218976032126976889430794098476487720940302057667135170227576698001672583927770224273446843974874618539892548054449514757075158637670181648011718210144818832283471343713721624097874089292595410060216243883293031922331675653880382796020903556326547059201165328840218068989444109272002607342772920226113476319281755252836996389622111987251691309944759854615652895943065883867611319081966703333493366319717135325609420625835620567503575915722973709874489137800934700607923940531527704291371917587164927922142079209837702885918572812774389487900770971280108462506531710732203451894859810445578145003185245085047716670654842773772863805951347905588130240528133479999778167773931338522325057459372316277891780152367790401115482272095912862926495474927862874642272749291724745026002558967800002702051802450375281479778565244668455505145457495459373337897456334964863171790640200080321082478865737687631297340815926026557128853426130311746740893309092677953537217351459808654284556542927123160027470028744887283051987082509868798627415652182859592340476708300855670692022254739285357129222353497778159394483954093682537284894830777287671878200087240529119931973164107383381364679088882203571582932285633879770414746347450290482952874785309513910135963626906072588534140040308409341849352168159048032797319482865089504740179445985361186944108386790334672254893800473449819621765613501609759568774381177768007061792216672578368724741353133395683063292199382258900632282347610920776421826726649187722998768660485768244776359484030212800515664971994522636607107562398061114458962061944271621430167126116096816946601696445551368259462755866896743058047790895128910349587695967861575576081068411479744370612306477887849333128499731698342581603456655053412137436284671044162774326967679694977844879486680686507195742777030268211603895123309376376790331131580505939424942192890447424871472639015165213330835051107553714223939970102138776252932561312026352251518728689825444472909242345041364318145305469286868870120803309125231379159875085594686321543975264474870095742663204742444610343708742910450976294712960971882850877480965001524531454052279883220550027834097966911102196661335462818682445011225098133837525129140486417734458838697081357978928372942134560919177900122094466425877175105230476728252723155427087620771222520431362247171661841658570214362787370819127144069155574089770700506114212519904539301091852171923683633633617319373569283190036480367813850708188763435390580063155349297551238780037132437377022620568210171166542102014674830467552519956118946995710312356913525395558602037856353838527933694603819155813093659096112121380895380283368830506911845445880183714805416181330483653550361592595213775160104347294254105455206762163161976671556867932579580017595475937955963933498523332487358086512148302903032864245442764253422503013106559302100603942236426107974784972451547756358808788713923143420729629159851229075693309369715955167996398358722682416419364099469872371046628401467726408858167558992152605147702691160166264906191954132801252330945216691067087755732365062143259711862383208428233295852215000918847223271383093954775739604263220551080025135680693714717447371837465511467036292833266466358653895443887296234619461179461226296902636254223682095826879504686349560152400655148268633403231214460199993859583996042227245404708775579496972919322998914258367129101271046154405336143172134632009266033408253888508019730088266743111698303123247137606675510197770862030558543910799107504424495912559209776314479535672472607638427523161800357630275245581319937569788500143956840329028770760683963935248171819522829491209752268257796597665697206035847852583410715452339607846823067280856244594666794192882161306023516434027248778133383081223354182142244800387005990085300482378781576634898622487834435116269173967285607500871841495885277523219032532065401438569994254427050955198452048159651874871584768881046992290672633865683733484129574526087758715338300943012148494442028145396311669548229352731660096824929061982962548860754433842848982314735219780861389324622347298788782385481747241036442477742463178242382710691739524522306983914807442274039831481680879195961876372837041675006386702661155348555033380166984451546038501271723110338597601905136364071861559352957544031381956839538569364917638941470031338504654195372492754588391945127812729558945898108389707999707361572331170279358443199860706166448324404350208560151051289077240492949230321057780637931722602903743486147669279100889790773022059951140494325206131579229812124897261984722056369186942964664667246221061665607504941909800344672297982842350521169506873623424752395243926200072671722180653431874833208009705286711822670908603196263850096057465984945328079029434477917053952024010270459941403088162644249836381201137671186024971101596299661172775149858070341554336450710962081912034950773082645514148037241186042734463746263346466440647840164670046505393248667055565991301887964044752092486130260500042029963880900040334419772172703997717936909544684078626156573759411271494638906684837026820632281220780949659865519365415526384448327223090812961392813951412266479985741407783115324573579162364988843888585810487775950207464280526476590298575593361714219551469557188114349074948960933941770340492679963458701919971503501351991200586145341389199199015622641379943742791015486523939632920779462401548785627578485726639162565271356529587283291103685276298209066639197975795309371007455392847637944117647332633008204644290554135797296117898963418562341251437002490010680360132745888966542012147988400870632338476644702900952821912222393368931900995069256376819281284220782915639396448677637343245966939809156327346126671845807445741477112222586652342632746267945447873735141540812156389323368049591006610849534481114869386486198630036150133731060163925239557220110490657990229750674655476600607312280866611870113170362821523385482438242749768845201686788861444273230251816373675119988103509685190858775968487108139773664708325261026058995558015414851159163563469135136475276698196850983684548746222676482912920283138150703916194924727767703772119613561207608128648291421227470946495822090599060523252768340522740834154446886047581239927571395791939217693168368859799047374268347948463935566730892053891569578152126133245637719772689598197299879299480336594767361249784956895431106322080587247889132493449506181285498836852456838473281246916035741446423650097220347523733608309538951289825186606107189320041182292491909432352776051999208592701555147379688715917031667657163772500483673846811749037839587660130807459149920529665739720884846157833878324739397594258849396607315757500996086087542002673825551235924977319135216596828306918670607650682470408442526560698346378029860321425769913775791328718652925877284843643994462470320254383614238939299721688054455209622142350376749661371699755968651296589932050635461457874996170036050997594265834833692076661836593943492442196116112381246133093223704826202073889252222479426303748061571879553697449243925164713024143337592936352109858723806528507915724367064994887397158009343071236103327535578156115790079739669715118258100212638195115706191914002117450920655856452837748770103881884819046756689402678729566612742839209293300276398740519790799008048025153594254850209832033481745539761288658926921795535484823485136955526450284465356836450326967879159624418749729702142424375567770180002179149683753115970529393198403267003172585329903333499606647699069664360160796343940027188159525697300846510433999499791986617308636715211790927461001781573515385532263167489468650585567615671942054208133797328483479301811542172080596025514880682910716885027510456650017527466160551530365311163406355148869328087728077404260124582916597567687186094883305805241699292628319820488315143195566861917679796041296374190043319550712233104587443146325421928782023946481429198510542923299943539388141328520606419075533458333514002668867708733470827573818071433059530676848834818933916621582700797987652154005722794818354526287283572253909336942912159326861551892183884335957871101595853866019065188187400161437655830393883603246158901770930550468458708626014504272343488135927528731027647610119887024944796305964309606627225321062971606517452212432461674403317124986867378060535473006321309035604600184102542877910131310639660925507159108359390252718097494313612272459270363764836496082868957629070246386901850361977999797524941808342658686633615859041885750175595149956631652600712733059394628395297684177491971405593398611417023771745017571488441290513323983915254442060173286130389858580325496604668661732289131096530570824916065605701177818272949494118215043241289985157661097615155440420069450289259887640546867071775018369110348690377232176794641789630409017141202990185348990178082744205464975804804418046195511046315822605863589897548541512795190645647009957512114763868648574145559956004925831977903265900390337833978117692199137465114706711247794817724540085855867174090414747151118732489543042254286092465827662482877752049128911843677221273271133607727186313633555886309933294313992597154314729200867521114869055133800115667198830308653271262544845882761446497603773878138145989063154400182852960715976048337965994221463134612502694007380864160663181503394343681928731101081487977157375896191350595982321953822800532289452059831358188782800969154206384997763375003625525241429812286872961848467560552327644472871541447018136110365201571745216747687953512937170230306988516010604848105643560368520301972353719482995088424017575027849975197378272805002809297245080692561020546895538162291361457204771178446699250298837040502411396681859875277762448850287423006124238342137540588497957470100138908005783916249983868303806938965620703580332908760709713962724500647515787040958381774086048686162229613110500953034627403256701083823501666429455529017274327068689376750537528074093502263403030609315804041843369292564494800536354060016714071143836862359854367236186128509127647120389338251700738392100769426407104189915212676656254441345808116863250352499177788899270701030042991349601891680395784450896643685944149900790151160132812194361360743684648256286020468411501612016302597428925043969413279027877035174811233166507546456496166206407220326002941521517234144810636455779393211917214104544213602040693261701038735115446662990700140889162651263079903910019306202540010788524345873952613543448952845246272727207272998978158952610801408146747294698056274223816604563979995423995083478184894534251692445938743353973686390185684913189262016482614049908308004373931126911950262751231359467749672835653007043640428437294837913432519010785325091667545066790152159357958227040648600858665910214244793330702934399242357498539207850423550112516325793352598186331742893792911735580607086485416376073672794518384261787853074152283179983870115610424907334133336162633142755407522274866094359658228756738630458583115829003020524154145922453486146771142752022987044505566929490422122169947798854719501074180987911893192735643643301366430898935831633012619916193067416322519149473992179958730842561199073354864225820285068716636973378392940518054660307807998637525491855638984457532163825750964250945259835033032824388943508974389185392963121423217677432485418724992231468076274669991230987261877284168340606890810716609461678681540618982116857813982439768502276613346893353915082830701494845633578080690349670363621624236775377003376198167035896693871247718376259877586787012053743124683796862802894566972186333749556334269587676584526102546086315222505126008502093462600423403688204811789744435210485687770362235990077969673755281032527119377599128722353712337329510526594039676021234361908802718150631523940055437899785603809488366230268596753551123219866604332724946852107026055081136633905845159474847081101356784641007789170156913315592690717026403800904754981099650211989712541881242296768522286040741975402452561094000095711545956955874224987853061045381945298914138137246976297298502371518461960758503213310873181212426809172027198746527678187896179002277539025471379009245641835684992572902943501060614189939095989322308795936884082488792811239825963352163564548964670984913946586109091056621209805314939195822298551054303181223837321030196972337076227885485642610229354889814178848581823546874171641133166357743778427424839198056960858187959004042203469865320396470300181330869105499184995789921204708605031195280885391806838113299979071071009014758169111915338122112504131375418804044977061441217312060746822321847447047840248100550574704385341862758095590540510170170319317217227104330563736453597519328132358400985239236381029371324920590548162694903062728742690102605832398385081261551889942917795325302932536598612810915396388474629386988094054103644174138915558120458193485008065957160913637227173876746867419612446712927536330668035949073349888894705909759383109049027593542460865941769325344000103230098918784121377852013354578945951733906654403616488373308490153462039538171566305176124252113892156914101120635269749533343576761685239182600486389796002471765249129222772439696613505545281670751918588605494715054649016501226476634995494727995438100859183038488404894150043838447776029881239029953944762971375412787379638950989872683946449741992998493141783836742311657292091009760347630856750329894297159090930655156710474163693442541762341991721382790077114472355226225750302703216924547847645519212724107147525013441033573556770089357082130913525594176957251597314977317654380385764166174461862279715121807384968243016012799152045609093325536292685160036352480087520488045560221528481198339591026896858982292291266517577898956288691509780030899438177666543071919842937628495163031810533441347102236353564578365112795845001316936235959125649517379191337502116964936806572984607806299804751931755403211952210033172452255946531030437217763592565759462295231274603434011525325017548822760071970946612703054542521013688421470534924692131139603626017887752309902267599707159846631232041809696320068667123600811556991559065711160359075442973822996391016669796209501437967468513574096281118083793564004221233327046694014300243461261856139944152047144542256665015866786006435394298978477101890095458511216123001510673816634527392482193202410040329364424089932179544715227132151985660244411071544831047230825195517990389073586745072822060483455074542081464915645256484191756394093814021286934633383715517761052868567319575228727587438822446909649312322103334666615959192126154507870221560004326262813854601703590703007772826508417257173821240838542346120458373158769987728729796064331465156944947527342097634348903919496637133296452773218054404585193819290653183417052707753320200451868275470364773977859086102061188021414897382954159128951416208103742389652534231288379851628268342782102504025537085646794466468795185387358054609432385858137093009910092674941816991126113225491826166801867666461346790640688213395372721445923732373524529818074666217262187592304202222190150302378194962279425543997412679826993538426015718442622915727146375077181470342205177129594365467473741860443849858757296189077599539469085639166353395943426710920346610653432296347444729819080799916487550654616054642540513633137329023770322323354632303761847147870452276130581491618009628987354461051320248787664684679550520774660202029672453442898278076168676089262152464547568982616834832698947488234554172983020371002809659231633792830236621292438694989967639867877797128008403338921614396794950006876631271133757302970278915195764195093426823334392637712601632024701106708530385781097975813665476200736010748758208892970159520269350960424040630125587269122105030195180827188527023035116083242715940116101689065824162745224175414902862741695976441455341590754129205412154492990335453894940371932497370446687654047588361295785530570529968905800681630232618486067300025655160402305130308951512014881636646039762711902989834550548144341046650166241746108012960661100433991413571739358810942236430446647781677525179070405745670777815585102825544314168960322437920827481437179941239721796721624042849329431467972292688785384865077870515488935739449940559609809097415695776269975742387468591909416582947822430729878019795351699823464121951294070415385787393366581226029410393184370369341529520175262923367958211663825377946211789298581992594253875274019630155310971913077347709675896019124412459440327802748286898894990791915646700182812052124972677800911534223116201167278760325620052670383093134123465135151373701581138328991209261239387092308270308735135594006950664520980705014960276473482209879528452174232371031335478135599293528192804565882371101481748041817457304125954743456884524388281954107179396208469301876604330830134012329981580509467182148690648767517660577295947758198079235215649985247678346987015429900382212529251347717597997876126588812600673041984796299029422034678757406023500862424850454974884061999209134738941358691041203318340978498404409259097848021563218353083589789370855302074835627232843593023122760561258269869170758950850656684224430082295202538022279783302678138727031009181871651359271324433425403404899895484058272370793293758753686417333143621035975296722194470511817568956879624093645638049761742765301843995928586919231413797769751238541490616052321589360074105149635444049838668294616384858265094618773157285643838004307052187768697931975388294742394633748800795654411393161071834308114946191977993076564614170317969875909840804261692350147337951510222780843937391294949377716253575460309800027310203001228245432272967567603363120499282603467673865028242301622602910118663729844089647229772058720375807685101628405197259861421677648910595541262050762357801952730010073755366480135688900149119287897538457835899444726066983339787279706448333193770670763468338024069223035639123776419676150217326328673582458193286885542653699476816080900403105786871133946219501045205720814966937732719416667285082173343714270848590658687860343433212097348599376071542676616556837745989745111222481705938643401791436188539519104905344640732165129763044525596401734176433700356791291423653786245831628806909247940123551087547761481736830609423493620009806999531134318486924120459681593936942699815902018286445193399229642380218270089600579113210684570011927220940324132448602651169178833435681303609101934189608185946634997840501747651489675267743569597198189172205677719521098449797690527909886964314091153072610521472219418810616965891281760202476902067300846971105742493242543927010471120034892395888840830733114767525412418947646886980959737116510974062152998883596275498167854937240300514731111536909550571248697713016171261915825913101191557742588632620961049848000269292563729516967519253492578563730002639959227852003221910461781096167523781384328839215290653601823189646042818286862968157297538027607575736103607499440661867327152166955254188050404436568915397447515824276148713476771456803123484489327894402666742623581271128532173765917640172196381143339741675577906256251769221659331193745495684764448446226410763831012009304344801630980578363227289497399613017939854656979786315676300561788583639241702593045592017131474617444161707586494637140556757905651524029482777155689157320276097172990216039888203312591349467469732548851726139443950678101670381212405938858567499115401091085228916229406633439119759576747939465142999543879893767862008499084165147796360851770068098084889871974725620967090131866906369688981646383184710051988154403167615616902419364326684913458572772778685997322969548057684297221467126893462954757033602428835294728620107972866965461580369868462977578009381659998145801287505118487623667735425299305195103179556018972098036534720074600997925076421741875437839386716547180044197064836089873648164804370449850023193721384953674569427396919720125857991909005554513692119180916327963910119537520903688353330854559363207434911907639762112980738805991497397646126654746906471771014392610478330891813506988744386546024984004675162710596524279599001552449016464040089803882528701866408372422198620640088806005120535038151726246088384260020742433594012146417335900853982296446439356475549688153298479598281802629197371405929162078675144320731791709259887901047668278667481265535334575183501808569525399272072476259491261528434669900310506729886197042815889649890819753114339732740794413739933586019764567883551833588459609138774541798327416865062572953163598812803567814929323104705780578442957368632190381007459309563130790398345980465351547858672347247216631435276721844204365588684943653835969755067617810171150663385688207722617427692424448835411362980302021245620333884243811536023516264361454531502503666443842081967135103566933955784754070393110991722371714216165298614808007163721121864002439587878848328045966959391246450132329046380821043699806634151974353224531661506396262457621747004794096084735413370254317037527004736565873702491032988073678473171309513596891703118512526814414553253584624790599321122424107014077734733944695237527721539840473250142902316785022110274076119006418974295531979313592459274132921438289547227757007118841908498060659364711791447377126781487361137218005071314663866601914875020157174661266688701395298997333710469458457045832186549520661808810496703895546632275745343484912506181669706744675059676082497576719878731544681552777009054534227096981362382724658023878589434612485045077706325678076030860380207764892026364329540890449008542185255071555904729255632675513427368431005630624683665986639417870338091370178097970268774411805289302202406343670900014946856835796055375724243404610434785616684918413984723305537128846415675161748973935047229716473425066193609107216471729522470592138380002554798647094874178729834123489629876536830695553500432123360395950177276391400685347937387007548653834780826691935838011015908035068720432327744344153330318673656069693465991519120085199135092558064306973393242042309224082248421604766201329837427578480167416605202715645425976357224767324591274762080659497820582923047259749511389048987061551547675951261290397932304755235558959642998485040707570280206845709097197520841372893726431904056056674861836998898631908139795887948265566374809211364656184628529822285215645749801861467787348781790448545194285698358682147516458684728311491660216304707301742337548324817438374318774253997799552825124929936527767780425290685341598807563549980381628850064363131298408258354746519721339779986227611214156782622978987398317368995525748254530539397087357572676881152272545447013260213134074461764288595401366765182331156134104454065082099685391565449683943891036126657168863719882899274318809675933638488640467235110199306724934854658223277335265727378014955806047115970316073289363837932793569429638134130253314169683957936593775865917184857174038233680723586666074165170148977926741974519511993133883484009321944765981763668576421092348761117134407928678372305384263809785557989437578084508547370902924131595084598351085475704225410108214463497708904908595656458643726953819464709136730560332845521565614142872297203582229091282326310817603097992685054798493033282411462016473009306342709550654244356356671443761975023200053612115210679889935417829007779797000175467251849564985925805807744324055788326084994458199114051815704450396240540532369945189005336101534711021018752864576047483426989694804205594764004362848392816568071559554744911325284399578887777321432765074358800470162107724419907573470910709244342490296040975868141489470210010007540926502967702139056847346595276745456628448755246988498006367095391528496044773653789154077880119323498253624177590801225043184798824924189243801121880159717491651273456289693202134574953400919377488252237444229872400945491774311519880929636099985865407637945804717022401451026952279051561011253789475568152894671001652075041823694319436588489178724436803886741051001497442941244758135707472024116171682751920018636258298277411246368392455039985054813219277796834275908159858881949509169004688034283191091689542394030368930112623604634259358908788900357767771317488130112649257127350365747933757036764783643043002642141275694425373123904041675055599130434407372193728639180396352912297592717626574276126881675975287104377547490868298909001854772423187396423292581726490113663358014449942267127091557691247029521209916666822342760875713062201115464514814375029850741600862367640752751239228562715789629994174227618196012828435162016618560265557454373815021530760110425853499574857514557774294919388521302328848138687560289153578222343979561544951588662058172920454480376918419350520793359713300522018408797255737118982241823650784971995186617907424581379583167964255158723735838389797784611787669888882751324220183546874884832936380657378556415594844912814510465538010258128329906391876439458126132153958951469766467992987163875417759693875335931872744198207614236260796491090134199868086639801747186442066847494777163213872480584158924285479585930042826712994710669700544835986497757737802220773649385286609479945872769803149119968788788156436268647428159821586333077356648488382209549162712085793744309416358318656914117586923388046782521965464522092008739596582473151179361675639997023054325171863884336734585940830069630661790673789941286616342320156316432088260627966587726121119484793184355925401151907981137891023337337988385179725433563119356571174047634228248605611551148948338566258780224901087185891514552163480298649795593519533131727943768264778880250763208141070133338244705801912486721462980451775461245679394949847516691203273713077264349006540162973766950012067298362664734622874516886959715072572325154975018010937372587701962610091344396216321207262549434592750754730328379483184828777389827057779815269472086546381980094456524518549053995015453973002330474304436159576926506976460132646233882429763255486170799823322271822467827675753084455432474695577442751151048191968399040120641109172787962935490711215785750241506722498865116033055219095089356326313486619769332940391320002670961803830357179101628089314413865190912051780559819699083402851598342090193646670281092562676032418047692822927909134737810820399691578606838213304398937412703876967062285158056926438150353545441247567379287064400727463361119573826799927449574316043484092360565442123449665149818997620644744526684149597716132727984514481399316827255582991481097989356239075009142214179584430332500667003115238058882177509506684535283538755225441426857140976303567614834272400436751100851304652711953060213425569589927056471018423519858834886953881551460495967557573974829319161152491989052591427787685186078861916465444298509148197067952706631872765892251012645482338614971802725653979444567553819271790451289120114094342549827948833913081388547355489825262849164508030758267951772308824564245012761170289073097172490544329025928554687530202656300492623678123352812882955697055262239233938282216747371377952561601039210585973310226109695398839856890080467005037996589508906504606493369005874072136124246488860973508952516236204619394963728281008102593812431154822922064416900852293552711085235219488610145546731801850830148756023334598921249043484605448057908260544373785215321910205765253871813549283995807865251782304620958197750812703946880087185812231987177918091498240619102177054602310800598371778310821252017567694836146461114967430165262450763121781548424262825379601445422203522766320805828046111824697570809965221776397109258998905521946548865263743185106961437074165326242371834952296337342945814731481626645983373242881739616425028412454154162130585152425682112982398474239354937974644396608395231442844098056259759135083681067455835007086806002179051747684861062573142365584793480735110682906164464660528480607795502110392598193712488139694562757542387848762423311311680293877824966895262232281144572159229812023104850558016376539688597659513242342100033201829852472710812518938878417471558518270359763918542813415741481213572577973808935496582193682255413336748340225227704721914336992529655757014320450082086580052710739554809009169673154910246025205910945937218375948106178079527587494780265553005147581935746805107879017001260776804618197433628401307695480556890502702931677400139597164576636193235422406762955311215408086650298910590517495625995572741029071383556663660934590676739619847861264656330584380887200714192880312898835312998667408096655779872794685342474229132092671370831685920111925194978262823503622867394841685893224014474388960667443450523173479748887660868351661519174888621424373739047471239909575289516352402675134388428123018777281875287798964374814102986965178124480259089042192780068965044094976682573179956544659697959591199406028830338956069627669861522566269192586523051673522265536095826625859512789135938828228503491371240529895796741674781895128125235113694622879358397169997100791576800901998306316972778788827657214268278928571966331178523079119886496763286625408185407414988320672710129311144049488608306152415167420969662037508276439675685883120375194404309633036218647573869779742505857881050356762586469952584896275629485522257982691649802527451985300182236493393711634174946112109147540252663929525502116458240879860466494162819480892635290200541577688560969685366875148857896855710474158695040985634231170132558761418426069784793352942202118017192732736990151586261891656263859909367188971887554828918293825738919893276854219305414808131072005234636154507627491615062756383893834226440497333940554141621877900623788338225560592622657612680264719611491316638054936944653020137002081039877536096381626737011134014096303679291640250744473478907829220622032661418231847381351043912603619410702772917386868553304864928796737866029823404571618712987524034877351548764053688456173902758485243228958433787222683251646637661096831614567985432125109940234035045086079421519810200623644032704976350645939193024484573957998042317717866510744782453474395616937493455058811336125132337428319807927270508148519656287837254621784993169756381160984724729364279627530014545078942681261290622103524001080524289522344104615555467257868449826994583623542469853969703718100158324920445391361837454525839969398444558862172517664289469875968368720046197579085650001043665379984827030390964375846138131456914225517614504680386011292620694857524121281548491551230655785481975525141019638633834034091658114053468333966634220521566312601846913089475787428490287186677368849185395534507090321194453712872939340520792497511412086155035749019008088783105059571913705279441182328731737658274679194147649441247474774881791033954468067644200410835524563864330739309654325221610414225666221848515635076757651323257194974390655450328096030313538136425758007985483702724395378004350443634186691857076796067597068723843262184969642058381722733301148430402909407769683908686850812784116057136447819154190986834412295339724227612957537184788437744922445250482994661089975469860351718886405286571676813002164855400413848202210380084691038543279541406645431719118590928013525109458560483045433286627066988189237172594553267761047756634622575240609628091722839104806916303702818123451810467167515995446496565592871832028967324961478179613301185173467451237113246161591056733846817646320514797366250016427388878311292617955821917758380472605691407706550164531585426939754665131819597320109556630183647593728920529059358665453458153422004999501585096829962200834121856336695876670378356519020924864667523562185138000401851158119509951996420039934018576028370330370668335425706058100032091118834728071725736480878179434811625703139080045542424070367938412763172742045436579645845986448195414471022004595637224308932926482907197300427249936794842332450627782466417139666278217517339853874498447350870466161265391852186947967596915753347720105670919712102075227038405995407388424033870966169918077649969487739340246099694340612920338928828451971953377944228545983779478750822585487804838378730161101228022857756167383756161679910769324364342398560377528836785279018925646705021898273141245892107804208127241897372969468370887370579869080873979730347583698435512744693199227606627743247173461758114309467675400529541648266443300349672267007647925468283188330491168594853583556648249267746419943524454290219326163923732255709623974016677277706689813199704174598239921895498947923840433333547152424929715432580526762881487203388060064931024124640322577104284377492675952751455213362480466145556765147331270606268820979474316763048697206267159241187544887640191271357993421860778204610404699445572889899738048317874825587638785288979022561553464454005410454764225797706429692238812783937798951616818155840806216587126712856868815970696680283043322922898129336819922239017908236328222347130120727787417047270443096294502993903483293904683720194253180982602811670432272162516829641715568633465605917056746457999101197982514636908730201426109111179128897140847520785922234064979279190450664361985204385911728631358924918098594307266783692330264366042984329519288754183258088233923811779662429753362055349789991845037844944246738825507534426488069183209334929759476770947297577947822804064026556786976103773994465798230001050867122124373621175416612851688086822015165107517448834460907665501436386422774792413414295006269082635627484956044168504220932330151839569527905258966575667116193002091595314826644484115178104597952483442365236906152246362996845594843841600561467527234843183413948053618399133438925644729489229384089192594889096860659475897085159448417166278818747039539966769175964224109247223345359145703562830825080741962023959596526242531251915744649274465127817905623487484186905638112516018273734922866726760969454995587678911400767259614134685925300544633239257706788939705289293648932101888177340381664471492294330245659228107876453838808676040456337590999257569334830696778885996442138542527187301030648778312079109319295749314922829972327665644867201682184217469824298128994838354150277635495442524778628373748787077921111234057429789823328447476818419750832641166299868671250254448931972650937941255784300883118841873848695328522357587644152161009695447130286347637909301068481348137678871014353713044299312626637921038685696306321603368023422985096906324653030585345479131719493816260697538677671650524476665433139893257283850424443227482027594235073642851511937469739627658890458262422647025746343340031998855358660347074157440767757066766202876858564071227961954029949709632498458477017524103968227390659127944782820131901938719899074883999609806669126999973933240177237532079845382087745857210673459670809781110874481656237752906762509737218967283118374496767731755641071664856370753988106431301170419970122372020056709146858986637119954027721310152507129267671952324322629861395662639867675014931212897119639725913450379328028496362820381384297230585143164205660810587858899007838582288645586975590924471661583793034046973047642884492611519950277387802076364508466836309422205938800920543810802968395199855008137317163394810890626808671193395685975346246602523686318793458745645771140435572836497771095436191900676136053052036805892465467052290683661451903277222105852312248834208355743452595258141276465209913479159246775135691316651674698085489435275132788850812934623892626304321717347730313699184911082701726727125400920228786154872098103759787353354079523632033417311164221510412369433239509010741986994108858065214545283736675672918466851944422335275554650829420329197867753070428368735621845318799934312239728672719459003035481534757304750128809335919771848715272254191531139089363523602220614831690080316584579917125772308071926031659129656637707275089420949192743618716060127492942624695205498219459798843487455982160459166295345402659247049389713908010018278794191883783119820124595568701403236682448385915385877273511732544933622163190108586773721645767108002507344396923798656836201779942027834710551454098475008956819224666365216772479037466921842097260850072574988450787832005699398452064014979362767006797750942750255524672374754927846671712355132145573871662034210736971334766637321295488728733662782889481559435261039217126903057240205435464855609660210988683000190302512629153536468239125970608278016363198677850619255719661769181240758267254365649001678121830629655667054490780131001163239735060646115146673269372239199288183609854312972959862162535812536925035981958593309409294811366165589369010654382131421022293906204590673000894671032142951416470647540553114797008534379242982647568015535710184618833290536102062863426294559659110213505948435174838331981628958398763048874300188649545846738095397080814912935331059917442294774716646635727336962241424992175553646588132152036104483905947270080526679929134207297175235154761328070727144584024591641930372728886147476891878056759907669973975096500063316076144714706058360685309486387912407367024437488774133328554308616720623785741016043686325458048906628729850051636077184993694166914699692504435080166930166987416246179375707230831613725433855074032942923958077817507612942731239001983227946224233489002890426664754171017806694960492367485651460801069015784407417657001155614003926791520736924014287549037537613828376867445159158167562797713875023034246030419982957498022445311784497914916992704601746771286166551187968491829804556496807582862417765857973802049112700644960857272441550922777928443052896289130761689050037079702246810852990029621625902117087923140529736208970099301399637432575911994993209840394341949156982383190682212632901445756406841336862701025552431458964825773035549734945907398251342989775726080089084522907555511211018893599319729097519492919981585242754985629177928757021307001017858645650650801871977049151075602214930943681152874536915668547051128977971460736976638733684958838242723756262667936474218353022649962904037951818101867256241158349566496101985375272194780698161798288802376444547567951437380909611356195128501795510950879534966443253817680862386430614994917936849583877925844502763947997642604082482141200687189234862082133665123443280410754514709512518990236223075771866094053696741733546421232502940689467995385052349785141427711063510786901116763628758975524806352705993814031900131357833830763226808123488131879773633657360725732009661001432725467219226063547101363763417988549130324697170718377917519341438694510237739783049884877179202843261450638770176292103015814108398247270910223487285223180508305586481417084542561741284852341695663241223607570431474049400656073575735563644699598481283042788558602183914725113482726686750290652864534799959076374252182185288171586656794730478230170501138906246995419803684806954487292449927076909553305485743961993547753544303223378496074410887714603919465909444982826148960033876577931025477002983492756690545441679592628211165385624169373771631133334231849544234949197151368299181239104265742722850014015712516192904300183659683781805043041108508093150075028908119130337309995300924540296180981914982975223997263015425897111635123347334894785005384404597349945938248692343193833406761588799782365537733980594967609660287758400136668474286819150426156619602821677955403524913691662687267121719047656691256817617690770399182731534420905349112784088610985383098948455236325294081528610228094771551421026277829088868022873565144540443087440777929254661699592269212748900769324623092272455430038598266792499601376177042492938002487960424697667797330699078092274923809168081927960982934074542846252258625062283644006803593982121756044959676362040185113355632618583253049389358529929302410627810153374079199575785249668318883356899854943114906697288913226519525686314056059354309005428507329203568455950303180181991261593009296004704917085377431733469469409976536730327223819226169762089027671620823541699041227183962342273570667011910962519323315348367674516120137999254386642397670303812295732337431059388288546332353001167537085860462472607326123820599698939905186768598400224241985708092781493821860538147417139523924624069570028025419352778712834213037688389942074994715328179125868464633119537635065180964894794627601821617359884752305629901300606323503869194831298975757251389023599111877510137595352227643854537606131233153125051796466791172990451898926837873690391420908307526608453081154565435617342453754927471079704595078733896941380070192862052935467500827811139032311791950924139957135918437999159178472303452695032715790300837137731830716667343016548264106472583170247429131505709804965214495059968552876442756696743567583426861425076489097026699590213662712763179370555947274549950383341626177168351964639193873199331125456316404184551651457192717675526234499329683386280662558054445182803537641405481616551631148513878153022387052835217552182142775008196280004148742139896732580799423237666733565685828746036039266903913775648175561781122845084198998924732855349145302471967054742114612087492964131712647734837210099158103249478929309563543427980137740237120348197497247849639927349533066564452339067562531989134639626378658811821801065317100994715883959185726289349348359853585202595273829727652971548582971287336173836581161510400007248006102956924797029599333051031130682571121337992676587335624289785123100746396305059022802530765740601276388275895952318973796539157341282110187057130071988427737786388551818622003688747029637163925543566928327510957247295487470457647775135340768030862969076316790785108915320578029045883640314157651807607666738162421724772501793658638856509925113160608036556114682191308260398632741372832182780806653386206363708902498879283026849249394071762123342508385186581681351182840388169138382283572107745882453508938781270439833031573235211337210533017598326605462844302689202733708576580779122170706232268635634366295544689379413002357687570211353843579698258888107689452319072600224713051150772660696663275917341593858920357337154031115664031957431283728744242473321499189395653657832533269063231504213745478888280247106940914882275246317108573779924910923322422932565678162782626096375207361778786650034586812534607217052102734351914877885176046865528612411705101492946677359455914247867876466025329149736134014219748789492606481621778687063029462160550914163871156477892723215549382018444776793539050396460791182776544220472287847844149876051413218692594172932265916540749883567386255354211204345106955119229781320697168947351825024165348822581249254692593745017646631141784884030863099028338280694987900406505794587418159976224898550441769902183450941546528004750830762173357543468403026739468221966046852384267539156478386628524364202623249971765087904489219293015493606121997606405414821932405410573358775449774844782645627109436399141180115887805006842086121890775227487667623609560271503820618454051727904356241200838224928927793747126922225592642526945866653595224440515540839913373680081749292450244798782981796188687231830832103090575752997821677719191082200930198135090784470105208051082714471962847425072752749922122294854549228305014999155549405801389376248250660802980345871516031394710502635138095473638045131980762623256966878289114050243692152407662224118570095701910699823951572983991420303686334717226857433230142225531448952634492500674165617331052957832830333707404803242724298796646508270526864260945206249165011349435132464419478557339481696905421659892847340889521569872803445640216707325736503978586174849194757105600248276003070447055573215138954814400960665408168642497016628241828662622655138113420457720642860322858086027361445945844246734486820490512570216424747357243960783772232583152391065037116376509433380792543000698548715690986040146340322905912893302489588537965564975839048928479270532008728494343191127717941511552390906309875835637331852616661567312182744830087527239591212399381485584786434079167120584226151650795426374649304559213140435146928379975326090951986953014151898781008774984174180569599922918026570897940973302414303463265415014576140764964331743776109358073225145030077496972189596340091942931535431617213974836707096292206022990882604097492337320376830844943301684763491769715392035877429181827180009373476307382047935938707712066696550667548379037040436350853241596716103053633193626838899083444469331245249203088606848385738384010294700312384963721708085527405206967413304967593917244468166103772401354853202843440209491096415409771161026696400284081581886781417125709503388635049317200236415529583661099993579425060631977866556101968894171365947214707627590673344994387138852513929133843763564607645520512711948205568315333265438320850561776023989168060186619483902562929946874977883036792677136869260508129302312187413425976989215689803115663776655079365570243051531807740793088451381601674415579381879007665934518095429918505464389401961923380625840891516029297841727938163322241698858468544008300586238805771731707847953396939316872061725082169278003579692116202828981342934766674884503607421187641023078990782856086210881417371819323427073766856936305902485804535289788556885870414892693631678562358249872775301570130333249609714888196722122915533625651429311913606993472608294884960973939711254668015373850524916007196738249693435304868950270472073158372666468056006077827898566782721575803321751554863527127941097086897952852540617986190414210201674812291443175372520146761466959506398283210072333368119587199669818010599179714953252587767706663043395657311919641482138755834999870551306364616392050298834541777664584833086842380126757757594506189935941202168318544933454454672190657554616407062524851997149080280481462862707274476922920451514778224744618391887391078932025631549204751843764324835739157738764274828240144863091178816833941197349883874005865560617968318311605847014811732538004323657123664658207541578917705715347840959643911373769850519823700841278403505924745927509760119488713070886223293868396086537309557472009645725056310758156875788584235171204248129633495919014800794860101985506725630580657302142611360694105881578427487977262157897519848764806541160965439173688531043184141957938446704395431075030726452562636385072652771327671752548260542486414135920227888189446311667044045674947827930200356886382440309617197696244475857169788266286654565802524240088889207536885093515116138931366841280213962817932351838829651015311127866867798993123843247960908811911978879951617288747140815432175019353878244862919125599553277697595327614518605894177659971818740867870059828590782594647025147464158648777505204486307149909398613844219189282607938913919369130431824846980303526655957705787487974351943953922130910130543592490806261473980146071379268702032647779209438496752652933578111999531219874466182729470608148525484993711682247622390994512586258700200879324015849815087205227047198137727406098020289873052513824789460822927044107254376195195451919191364684341860519162098690690167587747206306018115324283077606311973962761063067205611229391538518107650458944888791394608946175501447102255982934190424421989332217092236009768743365932430820576347500042014340694329033007679296095483643594366133588221400745597747934174488889148041515720768872754645992326634843709886913393442941607185547764619405613598306124725145946275126623161983577360352353286907579423544053538606725018633025897068158511682701061817127341877981074846439246894203435376692192923425569977647606377339609093172265438893648606989385647576731074833890178131648982549582765626799087783630833838642250824387834981393558347875924626130204386151893613782909740696613365484539169858518226969697279225537000037437156748661993344056980498566672936281302035948940309067594392811746427822607771212452184059831267946803337718822968107410216539348551782935562766180658009206322414007744183212140643124552171680870448239846138659496558164685891492776318745028268916029205067098709340596096669445817575651515949184811689022311903084711345006205636578713187123985391542615676678412421157066426278047379790684827954891993904439777538542210966364450489417733747523257218495229007893696035200003650580650194567831165818600109257622327806467351868653414869341457403585199745844104327380132520202913968083124103195292311012085065748785981366826986960127736808797233572550029716526716296165386096671975771602693318779046201478074775926088798789927068414483557225191901986000020007556057283747074967128378653956093308602251608486324124482838569576894122488231717028845682490505820880061548195181919843377713137034062700811664688327858070003381375888103914223357236323764990123634893021046225543006922778500289572734197636966044455608285134172381629333879264881419926928867484573824737155224306991887394133254724359977899615656490062767791527516150181826789730206686273228320853988772179637660593475710610272545227731194027262318394762447152175207014440538320623982861855754350754929692425109089610512128955607158912107900770078582718454873038737818828681024015155978236968534425160957247432589464851274682122776817410242399017892399869557821068182133867303846880841159406696652216074620605063326250833431256674072984496699020130366604510878298264830375766237740427440141971403667656600785526393007725641519880691638211070270202932715097197706784449532011725082209255750392315519877437604725607963672962756071216230879839040521457044765564701209363987065601844470048400585539361393636637208055068294121493555372161053358896545942496228600614671732507243227087952183048836176262347637084205758731187651422421556281290374334479819859755229298909563362876064173839246443362621234178927919082092397409154247900843430990609332935971038151620503987357598313177623871474055555715695745653040368794615446281731344102966498159361938814944781837209330535108319720841403604267222668649103990812433968331312699349508194840928926026156402274667099063722402750555812154738023714238560638944032646479162526834887811430961994810477200743383531550002799679793795117513995835096578928196490697780283397122048214318525503976075030559017950957837694472277997995571116518798190133300422136109782585765767435573957190288579303804454728389992446382027441375847439864684202065852064832736958079443400631433394407269157508880168291465405989703169193275927826621076709369784888390619502565702677305556491305965292148246686711038508742976693935228159807452003111589003717379272551802000166967611478319486549893296327974338776749668832877913770740381813257308798848676899646545190384325578738120543630121626537693077224777630714888737397994977880885337942556940236532527099671694830267859650376617707864623190817576317896088091934401720512489523182884907538116306909054638658435072590784547620973759614092424256170655679643370409090850753343677208693481216307895851467597288480778262337857159076731270905028228656202848868909147540187149795517004286722406645738241619689874354669309188266585892102181796817056290081442888335718672198046177931644241769604888706789030862311669633763682750527903933189796486240894138833007695723602181229556505514765818335242777389072876254270772287716068879904476454638760664097429830565944516419797542202726191828782618165978236604158522003470368817663613544727856005908666959439239725326652777400690448363028231696406120760531892339604918415013794308636782004573543934540953731140257343067377584104720035351209129067665676939437558263529933026403280070830730988167208006017307362647575211904949431004257231316698422187420287428178019495029915996929444092269316836553919920802623358015451201991932637007006881609588050326285160238426022985473296803138981763096601529206350343873049414577686576625523258060742197191945288077806637496054493165060279988888574503385999338497760107565625401542882016943506760041697303744476098064322530165679871037633907711085400956022131717132688087597025265794315748498618531741727371167243026422625751195985733559916747401690717939500048351546988243307717865917116082953445553003557624019283654683127746492703042119735117910157154490685855806813555088834455098637130537874477607985067637074658430650401552859799255535183876012831525975021240974503488003463887128171373256109437320409630447185501485958369028877405761233434347643449890353452758065860526513971002754933750151123289376917644452617957937541255700255341812680351996799548788983501757132902675311028008036266625302955934319822192282173976860827938416830992632714674007372323992055969525756994035302558468783111114956534673445535423808598726244711817295917963012038958776340782886670573808613984184248242090365104057777707248672307574843003256840751406182412181790119974420228993829270904238175411718932425413406799061363500272951867064609941268724711868554859898940460295026053383852366245584201024611335868752724396759341266489378708384447308839022160486116563369179484532914940569980512335320185546083307521462998986137178115740847933374952582017803050770421154404825365813747921404745350097050699806479012434497200769963370955627992253189948999826029223576936902445318192861475445489376993046071434002439527669114026611594643006007500381038677662923164749951890945138253999380342063006130719251265546549614467339044731226379181380039060600821528877263504980239027127781143420551044135913088576154318460700597986026291916579383944679255296517033512165814959612192057867466342549309990960131507776757257555025449194815191105960302624581337259788217283063957545866157803364627370998199404741412569297213587894066152947260318974673144614631221386734639642020162463040329318872485829620363105092552985325063571735116830385464603466350610753299909106304170967474410568045961100845865401663352150704644203716403087593398215737666657716482059904843461669756226761361030138309828591808599154033553164071298660674057922118392818247909646347188147382083350245034833040450010394290293651531271202423105720039505225038552819756954104268102807408130877793744915236503456332011096805328245292445941361940953612125544991778045349727607341800722369701099701992744733887092046089432913352468532225020698734712564979699076107758387831794282182791848575669408802782989066369575222349914840026296713873233511421458983694485689514107607479945209058214734458714501860114197613799343206659651363463172950816515304930400703360506749153453896017929814561537565408397431855399477263755301495867142437272569986733872788695642818897917466197798585569441129878847870263886675637446358222751027521953962294915002319447592767915617195266375514137997458707460587960557192168085510310773403972403262945709684891138478893433855788129525437594715974137228384085815378991065586183981888455385066432641611736931973459045783622923518725035609993438579183108875186606029279389306928794691220206236352247621653717444841553105267742820449701204873262366155580414788676273425244731545347173780633337615571491943774221895966981578988428629349878347456839244793552654097303934393465969092912355627201387657324408536213289396871230723387554295565399396916512316331072748118554412416597822947507165251877723712742576846366859772912663885358156787692091357261315606589779692475008435848186712902970207215709046774513006942634173630941861506256659137522845561791907726759104188938243807106615945174548508630010700681137252923132369362935511689847719053805616574674031125101483191924835909909605546337108161290490160795882618816798536196366389271220955402172467918023745993282601795116822692382066703459586598526188111704886281349312999515643542360077576265976381789114718885481452958294013454581894542363078675041725794142505508232148553975131678571317661646182949333947286590033387004863722694385293032885426145074185613345232856958517733722954459726412536446811379539417252500721339575690461227697479308708805161742482077925314548480762352469320281667721076083326465825469484614944242205754419535374925607705364694860807829723311393931902429998806178057037098223542255428872907623434948966663822635889663038690143054456475523801535049556554940909813283208972814835666711711657457393225423156210391032600595050833628507120737036367817267518557643501017378264998425592644195509548790420360563280870568846016867250514680773992039608348985059834467143724919052959248739907354371346936093622438875030458368598054992664930255184298793376494813022299309759936090952059289975249948744624741884759828391145002401435491133245893167836675500729412254749342562270289627109455529144604498549621037370867669561395152646934851978046279410575110929960038327629211406032364359818276632688228895842166488532804108687981158431390039568413231719875568302208917437801969018554341546043775678920958909558021463370326877771439756007997991936341621845684425938352173407564690478250379895349280501847625704829004718804376432159612383556094720527157041811046452031546489051847721085578064858411334651947096773647165929339221267122736459528754770819251181516541718052523051138506310447308838232514503989061260290580931378604295987339006960256644489542158128600788650158896253040065263010934476002304505594262278029910900247499989405548326591832104935344183364670743929910071146901409724732995156791650436302556935517049308909945773435552787652613217632897897368810961194450497084947880976259206343563075438178341539381206775007228230409538777514775636239799003665711223773556109521467429403563556727684394520873029275867412840639826958692930097048845194411040911234277303330391858573054357692994262752063106005669679812367057778295398051166386401178395133593135342062106860066983501036193814174546114603717456936488080613061724101323521263689086851059527611787146202824426096764646524508706976406633798151925878716181673241145377419879209563404879605742419164783559191501873927040759243765865023843112894620854780378975522644876704646492561914952791689060469048879778236450074169033324883046675088336034888356950108546425103030898756979119000370717677004058908406917078777791726606491480898925619544102947726592696639732142974475088738537865619670062494643736013352092142981969553005759670727363142652065457163519956062505728350887894139326329918997060681557389282328918741138786920578506015023794153322243583707157411838375441721433456714352657288127192096361002535298634518191027933849371762203812501805434601589058450144911470208374028347196424018959127037406722024406771652671187623774374599574102796724768348849412285974021420863155172399721255734869045444242372664280501074238002670597191432680037169736545109645336254906885850443619659656366288585151033369844267472842097225079861553269912236504928565741867845252616500937191121053254426262114890628578092159585661230120938892929701832606679284263139487807231053963077242062244556616415681413501830797745296912367032273901216121103087775462859407757758779308088264820260168198078808621687701223555856771697034836709755878614708528391198317908560343617366935367939802773884124979932075503461497561002324397648882381500450442141565836376903285823038522633018529336231580912027261353152259412239616435490768636596597768790605122123296917747357383243883075480886871914613984310803671887242371701565226494150423606177948197064982608320170772148069126383922406586966341993787341691532354650485211447344487120660935212686453935321729237675860985335071056696998402392792902536717168323715485490883238818256373979445829059801947534700871836059563633995235126952178320448715755475927547367138845764716987789344706897503823193074345661057573039598101222624775186134859225233454329073876513129064115899168715560806569743280560964401813995659807914324371510285770384106343653726315711899512703694416700433230084923264686195646771035778302687965776302002709123380087818095656173865874495582928482827830104583156840086722506399835928425731207348725363169544852190831613490959906513742269870786125300151838379319418831288481656297226940844995586717701118445732777425431431525599296462741482303303796423638740076213662774563451031395218922357566690529324788429370324239048389042579991982365297094595661220973562170938884834548118865243413001172533218077459440180889694717219089134463663661865745983080950010132504126931968797194431029936923953487028077688575451071969965989367055604835024855325496535403991827303338800881059045323309587453147364482200518525705117938798817305140509822264681851970151525153717308196533457528289171991693533262685325222298912305283580049768411194197435141601258964876290729154936180745504592308496158557050641897786801732303445639999074349572358644575220244542855697882143850001942072191267508194458823796533889709911563311891511904429516076317073385827820874752337942019749502411044978613933492114274208718183456627392973922050928102708256062584942315475078356338554365664136841516093245410350811481965800778951095430847036517597287099628301170575343731230967763536114519385992173675971672423790636093533160899412072028365613051696514361136229246929727440255361342345041838838847009984274275882259792875123805128180349047492322467331111638474686060265953327557336249657599889635933463914334241245927566405951807299054607252113480129131021258677380597306449987033496200329886118705328694034267776939684710247309964199372016648344693566681109908798125430732162903475314082503293455594923638660905582060530225771455197745918174439812852920731805321420400780438104335281245356553513004453848639923605032881288561348924015559785980894266723443651554657931015568033535540327792459732973111295111899783009483373772657400813074480114812863829441698004588072185416739416840641059915190682325675331780285552838733667473235771145478904317094539250755782681923382312944660738563441737127696859692291427824854954955300134723546995367971503701228856349175581233161990932536446721157850034477305078521293253452032983531243887706435275622659467153915078075870935546817724887149184729619347435710872551390734973179878197540363085834976921067769615702247078307703259998464993400555756093154314239730377746898262192045828852753353991245050291477805258789399297688164887409170152483132260147664112650246739706184748033871206546144868457243114988593614993232634229073545967130301165574082810581455492209686011125304999244928940131841663403406725545269068494952805701295710178632338326591099275219818678985058036223412297295788635911668953245740399303923249005215286271594838584489134869057695425969186831866770373343515518377352481619785676965254560807296199856108696823016783605202638232613723769969987568697668901844458238344351791424944619556291071579747555053147419070890096196727366814147507437534236378620494735574906545154834052821033200673916874162925626664628500551710131772671010122020898159388635035840962319476991360601548972993222161761472957399361636749682135797121265113483296079543341192075870581523049079088415049648548761334123664347563775812983717217573237535895162274401836878045193547191314602690286091544772481468093061997528071080636136299494324999259524488834230669344604035433830224184162781291498942951328347648667893111461665858094118863278338310053365979173302307788324518624275812110894202712837202488694422396575559627343627768327611683149369646578474534985783731157170079846347017609539959867609869370524563165161877745809261572131661331424084112183312370190115024539757343366415732410082348568106211390859321207262079211827103661680925328135698741109630848316013604842582751921104003314668009353333153725083976862731712168045003112609882845032559287394560293067538992866005844720121420200422406929789898633214944504763537393527033377559468504353805852449384454529867511089342229177370667629974538997008815108282680080109268236215316886700934757701488272027338762796001422136488286568434344829656716058968186346127261706347734285093820389503328215230813097776624540386017076188317590921172083787546932069170422708350852443500536010653548219759361050116759035292753447763704573247361655145796197330116580381944046152651949171531573901940228418989749628329378226969880002861050157718465167377051114347485155076730705926709066122270520251406352551209055320011261779824637486341721723050678020301463377882736365352728088045964566148178795231091784939468276892774123145908482832449919073722532546363870543541107667950488092025946623826625235269624713289941389563781275647796634335296097707113682468861490864375759840882521115044306359328691435525235843689378230073695303378352799537883986445179479167986810122077107394594190773829554851275317832142951209064505958131698749272299929100502208500749973653142623166276096655601694274514145127500966969503160917437897295501647342146647435291173808849130165297629695405254854524700382264966243228393582672198867394559885552553573935556745190681607576642857414166764678906429947245658602466776329945316130903052351344198701862755379027205572030800908050976707116107106014232065154757602956610928686604979751510830542293158484185694201704832643522576601525371651520088399586821151881292229559641092787878503837664424707843267972480016944685935830014109939270320616811232221571693291999181869421092366813323603512291413404077292337877122760235960815504113704230173360020891919284265347806902937968468966283900432872798253875542183744548896055135617273960364241785537866593375557068504795669382345335347780608998170505298138556776896966956929222576695364493613967400253611879837260749437931500017668791786586011878096316735887818676113508150661955282314333789347299037011021388958990361132201910208153849245622175237744716353211407602466116869857993178202650873814361648761965620212004256514299638211368314746897729067080978585003962775154418772188659062347300203280499362911119539101639497228385315189910134723558773762576730821942167073178996258547638843625150739926207615745545804169900497293850704460149741801103661775558166450668295180935187952175198092401972357613781558309628950412663744044482520030898487820228057234446634520274760717845834517352021600569230550913043561349173200981227781906546572770300805435338868572140366658994674063353948617342136522561373792675659502763742129612827401665031956984288963335809376268516072768422105772624128290743180791936804878911186222239845079212109786505578854968649389206225171557582367725327570805571219074257073063151870157111913150618566952426802936287998669725985425881992688999428306886960230210106696037230584564275899534533866231592714421004154772430850203613617293104090675955963123403909693685168899668659563971367504395309888155461863964744047375752074842727804391676994461664118191407208792710791016052976531100944099700700691903335399619267489562975572580893631533323655229809993787596243028961534820575384530282050952983767311221237665346714689488021179914948455164420667527683647021646727149742312705143936908488566275486775835627776459620060832166834110571650396627200215932832057664398149362403671523724595272958665115892835996821590977915446833931169259794019561148630521292880631217947746127221219440601665438466279629407493235083089219151392206119629785825473370789483273966298141406069544635253447681588747156836851853195984387922244307908443206225020476352176928510883418615523219745990444196818189051998802614390359459519058902571209037609485674207786127708413005521460408112383576252510419311046530353855904934712984288135096687562476630550165947691548412480583635404086989986600312855587194055026102220809958617014267331114512284179150132204095758576649388069546308649649689941458839773519060616066290602104286822251607919112068741205309886380328874239827095397385367440558651175573927849121459261641367055965790675245766301329485575487371502078820733482722584779616957970668306394839996075732314660871230920168261074515565346929995391366586538487165519486057772676488677509864680176262929154600374884529055582682620453114522830077377732728678893168028717306219523737603300232989527207822439743735359303026849591974634953705518796838527518752511892439183132075725999147087501116907949684270086969347465653529791846036929241077829206430515466828483334150779118135563689400764024240144156759229867098778897208688953608789790684066577104820319295632379490908702598467126725746993902936415734563312749140146832468961902775735011604985807646570663485459151961409654912988414656271072409722027043332771478376635880593103271011390305484914697068936655133460087927851080206107225049889200059697493538316841722861957125242181293654037302656530470646878267807731764731377496969086078338420655952466509999251648076633270635311727407979829831665734381506522608373634691267087027462966185533583228119178690717702253089498120234850787654014269895577229423180798901281785194673811227894793411619090232128752933541558565550027779831153976134137560765860454701349008867337964860797846160168648961686640748808585018255010866366508118420359786145496569598636028625947025632278218647040021287163353730520813863145178870200461706528707449312420501525442102983961538027081980725544772296876672048386497206496727785885712938011498366700983264277121109056120943052908343876650485973467053772599671760210494056997792908308585100678028805002531751395550213653725820440024545850207099183313292384266700936601345936902580854830142894552108135611635200549271126323980798358636169912600570306616747154115991232436536689053734542327445975102178375740448782376267602287468686206870747447423433571496516085263529781791175718412626494066312075518241856215217538597864002506682842806603391340340932437926624000388438172135613569386975550303876477909980981033403225994264056233795640744737450365603413210590091281332015536647033847873838532155751206959031515397566674789211097952533793121626541746276097273360014527715379757020438843316221063753074819113538064625747148348191127221687357503592294009788004198869042287443327324992479427174793826610708338785989424854974960909917244967189322409929629715691301654808904118276226937533033225768202153513867574383481422666771609763343850363527601663896898926290211886690493125733015413095218077683790382163116005616433658231546831321469089555508900248645302384381675697573533941487124485023478853370652145524273474310061274230891479259235261241575937075505494980940293371916659219457369140557083226935629119735314232546031144846575932307943028096411529368704919726948947732156709264468844848248558599277744326169492360065023240730075084067951926036029264950501212148834208094797382382154613038838114310741494018894458212776774329346814422227047242311011486645279421270554664731822311724628894962264111278439267950386299187850700192908037415477396828718561236969136350828564605004070967575708811853640596669058174514220329714837916615291675360831592614484425009153614046919587304636733703238434948273902201566798416451478476914725675214901464942948358826030756092062457751227404435842184427922738182137174965655998028094390271848720518994027358138197843002072012411710655704173209204921109208170282743046332319808385201743861679829517588642701596466085882975690143643326338811551554455397903724093341752363703906514635442714560556152898273793416262419271012030311127397526382851791130710317891121853351442172724853398173294235205835774919427367470735811538715716257389017045359546708161816697741440884208020381651543565371966567728850088984330518645259632554619457597120549489610535214263809597736409089954097318191091252803155008612942234012844873435699632204447128033204110244301981871956902855981710826243284094612476715733793023997875060929808757319187617311807708054730321989334686646473345457980625042468892639607576252147453505134224892146282765440319847827356337835859015608986177124934232554154644772882827410635998963552113613259909166744701254778685003056011611795000439708723572551379829038193117178889419676390332606612913773293666060975296620873993966014207197127630679948069929541322081818375230202133508271865686673339756084761559116513136382695544477253615192315387652408520183031014394264392352994719712484537090233146917285482540305051453378766846031598167828922544564670543470381437545032584161521759633884289446284739976183213293383544625365648633585759070243251260455765532508044791248510618741781077163699989325889354654685708404093626320118645781702266532792278396772861442959366522101068795600240110048869055395858075546910850656377220682466254418960113081701414852116021875663675635116883256280269570018100094199702310188445038842967807526292886859190155005259663117976495017386590482930888242540320935279158995606692404489129119826300052490057331454535252339282331671522673410975640854090195017401219220273389758552462853651144698564536212495052692215707370703801267916381204910976011471149713121614677321304929088441893428442803682244143418985638387212302367221382625708371779043536900988162749755656641987769404367077761189470513433110404870205905639121491618275256244282150720479299882483407687048917142253088314207870236146882012671109904319783238974493213743970385502369164877290602380819969138701198515954681598148800474918008763697027975943100891622276328695915521042713746988355171460681812794473251925393636840917067583971345311902885652015584564306528880260542153018891881624592742439503263842357935022609318806753981860610440405205831808086648971701541229653621466333501663148723483784079956751680485475546169745329789756276498363303879134974672933923086785506516054404369300977001993806243054611914817801560712156056330212032965648291792670855038957828904757349754597172969894852013916694616420111092884256694691239465672015110983593351715881796820982223038532174989852792938450470465926042970796291405970448566997209051276141345363405625259881580902445400449422364171469283516549486508902479928315877638070704922657357763095505660899594323857579314659137669813250777556384630330945408764058754669335193465125245033439349816524123890910728850489728318013074177167190378964002400721497796139719334608890539268243083049085618752176710839376777217932160885123259890398473081230655199797334987161920591169591495093850323390255925826356683388591715745279542270280766485897279058028408783815697566386647452221381272214907768063558880676224333042260136358202274333034953520745745512527495822959674291399690529842782837889632455079609221224871888961870962824811748680673122324700979421788424482635278419820964231945745213995631558265214999578418839891821226532008971169073395798887434677427253586020571650306194365379123013171768091586360538143059264759587343405497085573130448582524797505459946251425308151149801663691490884271803249764620756281189750336597805890903296426282070041762855194588297125426017469685291658395260505423097193381167776049950841908759302251609183184994043347179405010730884396388620189298673840373148961541852060559395106968979816502060378720982348945883877377992669241722109370038629809416931631440241582109766139500846157414650306706718052920698396604804952804151031547873561428292221399670752687297074754906760226992953855725391184233843988883381629363735151212966584266162218677398598042882589790848057559627580267668246366381040271136244252182668240368171602869393329680507255105439170829537787305079787940349008475921111159449229873410584325113162487614504769050972567014842710301245310719092374567052425420122887138840751052815500602043462905079155786754061657566076851278793639440392060416599405462843665192892020639895240202720436345190165278528224715569585938296576894296129072900153403954418061178752229696774104489101367015508365227538098921078063209936219235658613518805536980041825959134468389407596361389940547775717968518168250293356214120120357024574508648779260576275350496527296863916391222158193813969169005309409812083625933711454837530819693866522735702450923133936742206000258315645917434072373574166647681149007472645602494723471023322228762114474956720287483719772199871191301591732974388967362063280028810752576444724671658641270615291588693623249033947465858729932608585345598039664085272165491950588888516318712611508755437918292148165934352101121972016088027236180972675382869842969362812050411822256104590465667566051294294027739468426658263723332387454821217637971827165654983442449169482837222974355543899370125991523851886199949258670940567587004077505681045846434381977519183360402748563496967544359574285476203392750360073391533775532592075590629946282822874019386818734853224953570521282416281978578449793560540279094823196706231360522287991150481004961984693340325570574270009400104362402242453568301799266960490781655326395214807884212650394141149949834657933524616169837262886638497147604386385533881083370319129445864420804747793349295060819813264003052610136570897864318220777488567295230797753809741007324139686878668834386964990698772019652153338653854122364299895309327284954612826603171769296300816582451952216015408954772259904591609924662357675120380335597601101082678099716720350729196146400148263627976997058168786788828034992481842529250211204137727072814117652486639169449613676486011722948846119127438943625894191654434212726563735853351872862919508719157915569216054351414439598028116708436911491493683844235491484600340049724865335164045774775110343542466331338910795778482644679090224840034887585259671747807786104748400422858739718113997896983387907564742870257372177930490085655086744710597385645208969584751761877641123844089145414623789813648100614939404251619958959192030532678333110751756453256652655232627026666332803545532049864981995211867402109341755990366128773733802303594243950089405189702405545017115587765369616444489999487058545285593334281997664167995428578746119116278220961024744178508923762851825294309361629185557533150164349873802436358337538873530015338577487144244057596448846758651337993251315126834670513066424380320924125056615974315073684025995568055959904804057250348184950850396879933741480796808882128917678253805497163502811542131345059232456539524052631166204872776684099390551251295051038926925329861769883175168988517338397276968548318938418760471812316621565058805973517322626350794761243438434086861284897764530767338198885767963886021701322711864879022578818628359949369130029341348702617168231644744957460380042075123329882218247168742790043898463344479549256536775959233986481652617765301576901748662969888297810890997666454136080634063796580071044125647304124425176029089714006837640145498793710652190891709232133619847928055686898207990009662817199419914761703956517678850469818979301931545098373201840507522718006655504573433454721763895594632775245599359161763800463136261101065456285929892017535149795397765362673760743498464586465896354903256816399308778742329044753470094582941209774163064246050576056730728483356215682695127165306472512801472643409532684209797755819837223236405113922310705648686484686082715597639480671762603908928972032013064314010289653158710544223124541981269575703703147395482788358351989856161064421613395187821180849326976230448476601219525617837826970833873053062844588382290395208872880450309399100292730311947916694066676330648290423956511571774363197015674940992010386147764007220204784250276213146096370468812667314347939973385755368232063640708972082943679782578597749013053103781168055810715218120616894699260425646689667930496105074363543894885281570186421881214299257208834620862403771073106071460604118546121739735666204819846259949193805971940950367589469518988903361632130573483359625068415058328668708479057234618392189190777380710760161167677680827954138292589765118796049566653413361673124146472066055857746948151962120691479600757697972220590061247298514416363658038967569512791722507567292902381364053830093309016247626977462412480490699528458009050263969015800787962261117395196810875661377215476700006073239212919075846805828280194822923734947477604815923930026730027298888970705162097585755056334344439263188278781559570824158806955135566213954615035405197522876399714906853316445899533689389594530095975762583689779828328411014753115602412141565020397600570794246429453178959938571145240613196491074392934669492886587687711412234128719190195519737074795108136682536480152735723846668152031013300686973882046441905883260448372791775696327093602914535115171019681330055526900970978667000819665288771095929192253217751024510042321225796795432831142485088427148168450275031232028593501571275305003216462838918069266335008439039327012722539696281573024593493631570927371160979380663559183520740580431090071432912174557578731420995062671522797396256276044919926279684845220507070005262659280469184785610604139912646545688629428978554504532647599804031445753940101412582699142088202334494771981586222392666848760840886123054545469545675054835508387609427969097453398485906930276312240891318123708440930639689072088805141401922065952800946574528362135955836013162074421007799457756940594519709029562484864529705153764982215233233571765827653514254213447264512521809915733518408981994594861491116082584751421889202575510532811098044315593677059093212381736676277044798280932543806016480977223741834946629876891251877113650532306689140454487004061009427437395767628181672460506296553989329032097572026368136839614472354930497991801539196123874174598708704863006955796184272882602083029534611005603852427053857060763607437888679061396782836473551512843663393403808763567425633494779579152307453327933963541603327384392595099022445500047835526285667171660622629926607870644923262647358308475287801242543853397754222223245876090976536910334966877052432631583730431515311831285162583408091516956303986273501132791023451024250113222195760600223733037391765254289475759405156342274045904717515416827989532328041664917165332150046712711161431985209105622862845641634389105883748199658257744514445096484819230421052191033466463803502501069264954899987685941335888502473388652644622158886565392995425357944746528878018202721965461550182141056783480699370842320458045804110236528069582759084832669223672569671649944115008572841872530444956246140799314662335457244556312735940632697523011315330524712216452142232297976608224842861362937668475241296369577799698118556022547189983074161252309918244802404367430643521696832435969876762888122571000501244270330394689623788427792062267746114180610311973825982590152815234494312556738456498871037382064730720820653537151520337929080898348074514262831175414417936363070075322798025825887769443827161495826931149050419043337146665100954966386016391191372871057255243680440857172722112534942408974059903537022853764636284175728668280472317015836273613979291128394270417955768219471812897314537153882598580470073773957624427457989465542564506452850676676274510719982980062715448708319604302812731541497820332441194686081998287957510843467645049971817688216878561379341859389659878560077202780422980458060715553158528527391193704626146284744823457644026799293561345672192620334835294251004560267663161686741718794443313510901019800058059037935150866528178186321545416278533400188211711285729166630681216461300047142926550195426531094736159179883915159466708210972951018455264032416893927140592473150314965381470647461413610470371397527335500755479027567449402133688139234736659877732718064952199950704948819688158397077275790748321477729379742834792715178350360282681420731933350935998780041464965211936294724426345632108581791983149181527906270097420558442704495187955609301756959437380885670843897611536165338000713055843013742770142023916345064696242275377408521491544080004719580517042307063982569839206005891015942935206467351423551104759457156124771706460585421160730787234858705896544624718669275603711595394681463520070645322134731105450577813603267342184390116053322466671283689494952027867142803895745898195118561937960018159154694592898293700133968597406224656130994675888159618488144040443664991479492199379394764591516300303932649263347014650532328446583311600539110621742565301893923486489861492595244862509742319977354280694889189217672503080433474087821804225689436850558382128869384837343411113733140338153751586039630243321579237568799709472296106337294312948925632376102010149274809449551897390739964180424961401430843679296740716381107245523808946378270056594816489917228677668585229647170567908129126275405106159701641459535243647822064537090473336769056291776013948338788524506108982548110829825705924326705069731570796724649189286400861911566477605003024004647409123283837822522346110782449507500917845181845036585032885000741727174498478694020011091927722336099614421786867688756911978324076333892760087663226201148651875815815346860682996292809292025622106243786575099137620070978125836098172587585083404929810130168001516257377067845566451204223167586546401415491344684423352193019800486518673309330760748816633627888741325069281417693143451911979151687980825591512077976838370213308493020463532685741565645704594490829650850272916561524059016713332292125084407002137891282032189177579560712324424052893706140728534351086920668406155085065159670575100197896483565867115934644024143943906680257519143356912296394299049913546757085488904891141164112905055406308900323008015632697183554941132562140059694117083882899717814514997800162104380793901017868572541841173074038770043603672404341656395272455001588442976053369303868511208363967628607437764927584505052237287522530936331951756718508354896917652400333691434064982555108518349807818342538611083085068261828495384689513313493268592323971413216892983811738606123140147932925367334733610094889949069294664621298356694700219312541757708833475708914025239850459873244014496222626651910022812772644029340216205578124511376950016566098113624903030265947119407571903734782706947959048326367943544560562091516306166155424162512544785165144340541377750518913682478197383050978522931465260661818697170984124089374180358172936466939192915182730213790985679254772978904933957886375678227893891623490107572547182131492154841015708417397750240793915134855664026424545233647076746920385184876987738413288947901572334920472519962040738063597421315755743319202382765015687124570017472104717182019672610294897153517956932123663190264052121516114442313929904064200624200824426459188599772412459609248264384707843478879406655601459807020960683558687387238882610850863451224876637204945363650470072769950843612437710684490425260287956431758453469365815913580658214297522842693437876587319988526049232210065352385224502447785637851477852138053337124142976639803053656081584708655837357270122253816352135298488284434888318089394256309254758484939124395194947683905454714864181471967761063219247999368599575009203379579442708116260458776330863899912298250152482264587969339759974000124696145869972913575168271115704414728682532245894229791683672025626146640057868578576165766498291493540245965422147798906435931906899640032737705587367423141921605990653043380329513591798535426604334249785038904335101268461313612299073902295153949806652544310444988559811681071814817033004706834841020778635591548052811099016856129454143514287983873795870282491969564200128414072450753037063471427352602690240458961186221170957843293796223983462495405606924205576543640201845960003721565817320465547653494707683173568023100568773398969897625409578467844535790975040230147931048813457581846027625603179721375156909716294191266822039528287453428873702055663389776533087313875736759348657695890131196199964080205610916482355550630847528666109374569585953118278858606505227590804823689017806169084812914040776323923999957091390101484301912135247435463577976728456312392933827312433705707961566422064421845898314871039088771454835917686712557186616797444678861671943263346011132451027326585989914343519033277213541672044957835831059886141172944563705368716421807226757430675848475969093505707829658612175843331995329743096820580038756079155868436101069910411802958239500348951105934888359844636549582010070115877252114869118305534320003679356999243477285275165273130463757661584221219356416056525109709146305796597968744523324540782493597905546972114017466751096610228616679912950947386176213643849711637834046992739943077603834954849631495797813961920156855011156535259147614532203584954557650515697587958803472080972593322325652378724360677532549999926059772523520833837806053345252026157426695926847739342750670210585977655829678156388915123923155389280972623892421597401347190885296238889359264012441776110879174325819381336660880446673807749166137262807695798227323377160895946330100420282666341703578129212800077359510232397562888188266109605581563340463654748934269735575567502297078876558226842263008905439886133873585901864377762250154877456386073991336474909480006370524583873597302096599252639382012100649231374702159823066476066987831602712381551204949206827405837350973507465255781571109622509297918340886174479928528801000619102231787517820310142410890714024392739018387598389426183169114258512990094510165696292768850918817939878044871939739302430457154531288731423167897267122066302145988739933406317865645235050083917932933345291809630915171106233020530017032072962244182968117175513077046840352526674150647772605980323531512700763258659969308055959003810725617435149826046974547384413791576398275606660130231033107679982805887223056183747771082870116500944212048510052720814573256299924535898840532014176521372252302237365538849064151826631769733759310698805896747666148725785824122487536052154723656673029899208000824616945421474529507079694979357964532277445340704857518661280977638097991045984827507602180401122583774222977114175962424978673818530649453739149055463994585507503042993845821625367780326971679897291206817907151710080419155249544565669989375187307009317528920149893368782126908929676394853535719445486730198319522991365136253754188084660494493318871300510910573377364710667204609164668747389366132535033042229300542743525460468907602494894760546192832792171318275285565098165729378356969111222359456812008734797152207329522736513389988893191764443801984004485685426611436225396533291185468050372618759826059109027324885867720091756631701192113536690248689583574173200559663496257305638805158692641564423360140058933934737273136759851292075056826758843351801861615640275203127000163409542671723369099625213434317176956581426354578802232257883049468153334337527472239937243235593669661736328515912227903766980153056688099530901195182145215381466115719816788893080558261453613088095904612403801031647525249305646132266871368142744547148764860573069463371245962945005189069633828424235996233822797977002606036855623515438886478416013121763345395244061247957399137891931151930102986466880069452209492633075105602019320016486242754581740709233129934966370905884519183797596975644457221013701497478034816191409787942316608528501069252494336292995587930351012090705841509117326207988808821163861748660328206813370696010620310956249437783831625562975586127113134636108591557576056694158767938452209761811057044843226901198144204081406032003035329469291049592281802839976099685741126531801945105148973692389562633399712926606937709862950110749202781698513733724075801664716037881739820652347674088420420205891134102762393416095032459921441819947091253528502985341068618584243011038322903439927020764936009823942116977054090827762786184846546194877202711439994253150559836357893324648209008339538362463231195489724987332881208906605129708560200219678401300326369037448209765397796505140443116291575803027735810903927619868874987996296021969366566282508072957950213194676809429290308436693498484612947661323812099076831728221262595282959572495265863315521694413463678964902653224467108438870397374843384296079330971413924310579376591197001195992154909146021501250758001441666451874870430492462573319372832344471313418012310829601002524304590771943893481609774990099047283324297288282393360467901543748678848583131492805802374640713791547254631665547742415747084168246826901158164284723319234564382442165845053587663048121272579379688983511306902740906196360438084182701791900435697615831746518503481497779077262615724549277120328045215521852959637456253156131111765195298254763545182803923313564080572473725906207402027805846074722191181364881186705411779608564374010516215783816225467579172098410143854368308097002959034860116555698795887463410843486974516647178128939748434635833307357754836337215725742185465164075301378194002933002108838443664222433257918655309256063537972425717732278590362892329667561116674927982443377893152454891775638763266889389013770790128221197220282137475348506677774517365597825010326993159013425731108369672074627196141545918086719895400613831326393273734869486616730302452647527243295913400307169372920726067975222246881966878637149925005584189870256647958817846214243998577296759808901793511597220778969545857191636713384466493060072830195130928015018012876477960898654045061073595666621591079298578934882000529453935999782639036164427074579613485042346564063331195751720070648088111066868157846520630737697523654676521160963059130125207183589736089840433633724919576537369058708681758886475758534004994309199068919172965844539012349942425960841542446803042622651674216521917898634582952533348849490122221433632494558783951963612193431552812064985542429300244734092603538699845890242302438256394062071835590566055294780992795376293370360095207068931022920769848426507720508680029917234775665910019701798391342237018118069797195193395321612788658308365062176934300959924061951431776858742012781585783418492000318725039358122446325697879708502894905527361658157738433967398192969415732830691474970027969993235711117255519560882340042042222690495581987477296038415941318142016196872377274875371174034314773635115721063431085468079011434477776264228761890022909797012997838711431873153173055249596525723717657675128406238503868948820694839051368050269983063892055157545854398171082956928553838612281665513405892047096319562314342147190995408553298667385955383411511485445224832906360406897267986050631217950392889727367069543367776881608397823988755054595570838674088262627472246419761928503040285225567672662845738151132664989666098172332516881997692880972441643445140583069578233632303269724694247948099096876926555313652452750716197246718673805326700188368026798917386482272682549057494291588095688717920779657809777475299693129863269110884429611904483412065587516118123940466480811802148265972974047144594529035819676255437234263667765637227348230342815985820554999235219263479004915204120658063130717171122696048131809975178288477842470457680770901119238170978957734504265596441035779246304012166706985750383145205490801086511928316340670666580099656161346678816097731811789609551590888382307891480674240119044986823040385635837693566713942118680415286403852632859598658716201416567410483293119016858425356662788932491173178501158413982133392743920844424017314170613374885961368726037537513550508391899537873967289677440148314260643732866722966234654727969977731398387488825180122171683381163423703832581682255005467265206410806180709201888817802337888512467167849874323876443880317186141595299683920880135228439669830668577936074198241995682266316796812683456586535472440644674082029025304354390464903574460113365479823873521564958080346170936404457027315038486296914722191626172370618142050336733538588369465171588387783211148844080680207866722823119670735190551871225998342536646585876937865243243177628760369903966209305339054812416132381824497231474119388902799424631714156590864738535227190193609102357966746878883572144630784449138241303634781880247412100386426581560984391402019650735572419613710512096756851241819200721750120691095359614625823080948579170912127814424722249233928762269435810508895174484807642014055878909605445557530705758530396722497985376762832068768751231012137818002968552001367971969724399447702046453924822332266263527037721651687947535873997416579266451052689434511928107123531020558564884390062160357785927872190669816702065958057025762077189143421682703287004039936090597421010200894768511181004732839826135606997518498676763217989779034974210848824638398956598569376194342460984168127725743660673091670537117067332644765501034434456827335162964495673091347205804375539465407721073121233150724742335091156122025306453507643962835397915350975264150939211254989664681967660599020299167623543354132046852946626159558585597546579523963237965042500207759876568644113356359142874095886414843050315857896623739965714845299274123656851138275211469091585002841294605874417247901049772064813420415509880940791153813244772315015655335377814691974213596202657261739734199734463355662907810778038366143801722148152899800564897696346236960872001402971321602337979608511717037597083559252368413779421228863759076634080159874449417258968038804862738859517794735250822992129569213545386705870890047777122791569011251600417833279216025052105073314653924683411223008013769662777128795429906292400984736145122561279418827413940080347152189273999364764197331818594826498638069972991168469108905879003028888772345372170392470926916756232963209559419673687644149300109303966469154340842922754862199561017281142298167936997364398393914683331540917888127026686825159213163387133894722122543018356877737684350938371445293389108893929157532378117648120344433405098024910637286151832401455792862956533899334220112289213524827277325134175700106112639718805609929741519996522795361803412810454433628895952636116570543270695093694821262559827947555798107707139160409862694313339949090861739100761140088618318553823784101739540351498130380182033561620030906899118767810978861202508041577735257418832200489198388885170010352938528195292298042684550938094127298689527822574962542561038419060529307055703474459912349781268206120895687761960669862322962269990738392685396224419476302690488033636678494332628317317791571091826307869853427384546432728789408710922321328710902996821796059884763508893680738720353940887074471996124048057596759067571490415842242472452526949073053344929804106796448254062936137683235138811418814788453166700870521943502666109393234258303397075983539633813481235992850422131986398035547748815868665758983941778527671302660681164514833538697226763601914306611318022300619139190231152455828672768940110071315008102926914304054331220233378167295244079171818974332303130322174690332634001546245615191786308062577933890188466390878970166804700875319804451566781618861760425109368383371907597981629694983059341508864068975443001456118294795460623674148536682872814946737462657942483277991200337516420832072901661026636777768406192496354565064340514940320899867346884745046223707707232825741197682976176096182948943510488592601231216397235681750057949362589695504827307912785276834819974427925877269109217985734000310302054435208422182001159014575401658978684521038329510944405330149772187816867615569904056654782506659051830657109872735280707272595116993178104609045112725780777133329335338257572688627766835106465920189916626993578294268811794055900463952150633326518230207255573355981594467259553410414361228694672891350587890565004280378772811741680697207562105902662873081103788892522928191490467496859322572492631521995234868393491015565435055962537170156439826265402771258484556600100637519032533268546462979368902192441443688306082411983750646701733070473029414144240658407499019252216032733047489867568213632849216720653021852504308932080604629830039810626799555598890445040651199835931068593388441801237951791091451821688737440062827955984818616412717089830608692331124995469096729816652569628235894286255616227062799826060295782739347697032187452735840455555201884206660873311456472653175336944331070442401443090822636542926364682058653990254418689930129436611274400762029437478120455794748091731040931491870819779257696590879476405844755838905558805650657271198037841670283906297694998862647437319107870307967016793947619005532190278004966443527112907608584506171227906819190178247445369864631375196580693884692149821457682806165823815166497793996431967833351627395158325665192951325444252534360803025086814365223568955414796751195593729007798983820214186272295357128478365400677833808711108025154804875645890018237660960279556247066605059188813945453590887752060757379950033786506814143785450361419180190221463639598204870735689066661797177057754996971963320510798342053873759138011496257930468846106778019159753151236707072692581488721332585948984559078179212392496270356814493038806397269676287294536832934697456951744333650202979760577102250257748174855939718385717978103694986164265445749797687091425869036258698916778425598705841575250988954239379383047110365473828988437380975535892026259399916015287786461557990175680823454734770114456983262976561553987855474523124152559208916852079910541744289796890013938266896355665948324018610179080544549595662709196482984901960605486504337775418628720069257594204887096626949603137833812954109055612955537434302788560321242274474914745949181035200041486271277136179534702090699719152728020717661462289683765553488034433102913334789708129982665941653454871703488391415021555236608536725263776752342501970672500005388113551706556223941597329747886342611855852539563487794540751479710010888865809253278667701348355815942791521789534879445918742603746472480156988519582367351299832360615634875620041491650343662314016486924774856730581781515037093503078593251357244976427185461030917859660161924374644347032952398098204955548223066253741561113914358456351174353583864413271217275380851382261984623716519112321040549481879319055029428009103322421127413480520750397228534094442128149011277127543764712066244459359743054966124634065626826654223601362253428429813496983630722041097092727829595129122206747423025920459091270905882344390210761675277249131768239391760605871862626565615890202278488031142669395925137735018896891210983478607206313229939264616918674693089009110468772599489499560664827222664548753475100213889731954076663072822914338535354174698337228431309737931310245554243249285462115341374991491535737146575293707601837820403728540739322202933016819534400661958233005017753456968776517260832336419771069361289103989733251389235671995169217797933570387260695203748773542487597925832309354273923207041746797309973210103526363313012506827536056588126024126332814669343802013929222318057442398987858569415998748467101007880930956909529536808534602923147963886587744625638244488099491441344543891632853048954774324314025987886302474452379954699618110495995266070372478247819544284202575652400450289740650443047607211919053203392473322662771963096481144936747793118811890840637168384889381459486607723278005343781994245055043852090789652922428407623605346265134550710548078212999486073429166499299569431656634901031243778562819134200287514548203195438996709122957074636292512123852697138682294774369787270554165677733477208149321456663528718874969686996466659038606408828208114692761939945475733879177640918610095830732115390755389506855235119999053132319421411862621417340340434492505732377193773269197919615054152089509813670216878317954122011118377336526520647067994502502113657849448455090753263694535123448766674537209970763764093921504799899061813897394792893073701514749782328648328365840331764257354706487816391783739698861521414337854540644458033050221411673192764626491154438222120249982872585811675225843102734018809024473174860137931924907612474986656489088519505751500537205116393123984007848298070014480411372454363676293344485301332260968670490493649486148640340898378125742716202317003851021869325581764923667480565492764935703511586581610386583474038100979655008991157191118246482809849393770172232167361159294605293896590702215156083253099161212476685487225634365483804792456589896666420205828031180888319384416702963346722181122387713355304368009229823934764075177879290651180706702330802508218855109594357929859382521553868097789206940050232718875021784849998808430062512047174179881230824690720507995284161024872449794590152877144761491866028102244769388709856847430828263702901548259144350830225164677048018724964230025758435673223538832075395183931886106669397919249646732210306981631134447600764840674985100543992591763755152227479749244137130705573188870726050442270018123144838556092106989537803038545299416844204941783845854223850669708335532489609143519691809462991057456874285424037593204400995254526811248516424322207494723134309153691161839942924200707950828488559445955747670921540258785600262311648559257117631113645087340929642185006898882696573973212340775288245546095310588429447466334637371032249644392759679712994796311232740201988233901750508048898716482845187154883976301454949325388774696216406311706483101492246962972928916635752804647526690102612582232589635017499843833318333659832954300591560090146448739072023837653455726638520383369885075092432401107617415779597879565686113904836441405650808023219987857965544303697955424772761813726700774767729610805522238855706867141406239634993310666998847816045508574745748089112284024458230767722881244436785488294692911414723683862877664176949459913244114722903528188399076425914203331494220587306387753092214059245798248218292709601240242300099325483570839835453542496094324442651966328241416937283394573182680603618212542433635944013642150131603720159609734714986347241734845528301515271548261091161585275037307601041609015526640919710549483637458621808305725314731652557405676299974966901941751420761925039232099085154321693988508417076340059230889766281009973016135979959769930828781945324216612274613967618906204640641160399427415481566197001790781364011894021105309583211673736168526188537660418937274630049516164758957495546286236934656123217305039798437136353657491283174946944593891075375551781890224862351902058751576657434915250846862872100700412356329296523877258483394920694528021782053466670528390755352122588948894603726042537074152467433183947410307923311935851812414424173415419573507984040683029581453421306167277007046832867029995879749015186020038225681942010605842561975952260322185283521845161676516693318995731797042903492581885104484613418591033270853609748453958701382970161922545226598141374526059144870801605455642152021826519966261533665924744187658698982357059154721510781235567211154847152379748356036684481115232536841777460110705131275188834338663588292698740936141857480844471507159134591727478209590469819993059409665884901814933525394232246906157409187402410123850207281305339142199639973670200206265918797804810266833571736898148078777605888447752018656590670788682547449480307136009211375890439280240294251904193889208656528614741110217859949375138368007924751724627729141267791330746356182352007467186023630395106385851516605776021785480227211639417852570762819705656439643595354263440743671065142363465448776596575945132932858459342934556927373279105049031341581942218077691329423891060375826486970273033651631674016836674468820784430992840472335050935521295726783950463697778824694113497722685091475262583605007009145033559133187835334958949774305999929419856581963838467662346985195754502154410470717914419096592680384747385299265872878134975306387988307542598871411118636915776501108944073311593476883825163750113838220518221502756436665982012497269778231091014899013158354666186399641417408189820729233047114065959446402214884173942744094590945304925860742772596626149509418449867269491956963311957406292227850453953194109385630602017175631970932345969981297413648147144430692411426658824483873493360641221648011313818182987655623800520513540116146924967425719205741716150409297105981376665814995865591540315283531080974419321988973858197746566304493477359318734533967368433787898075741658495113274746208693232715848152668883508418889493428603282567669484731742492449488355569471981931622750118781300805786576101112383083357077999144777307375512663545240608747888386346494812937817525451972949208043408757308033200647364456509318656480112057305887199408522217816514080022376815466330881276419257216101128642747850255992548373199074990617314081455257532220898230278243247228598836335371292459545902611214677540806205757977423178075354096030697175532723215479610759593352721555500649086813536706266982896641093143407838487206496860364871067457047093255686239033538431931275064358100357120046123607222976132872280454737219030338001397060351697049457522010887811035593620215893418037119381852965162726321619383121045286158956499892924287804832156249972737234849849906404301640920454117451458338662776344035693831211882571272652296639028090817442186393781497363265655750541257479290676633441058722926686650450617331543004027815686926943636924037331085635715562915750677625860916283768350015599169678194195447653423805851207882314086254225089308924569599080257712940816541670760249546542768315330768219116238858758310773465954958094961100760368628606929418247418727592501788632191690591313282987876599319609761704299015713756721108784755967429499813195162209981339752061567239250099887129735506831309018731104060998013589379189054585664060668891950323526005271998326250801438028508296355811644681153906050826659420868326808911576483817318796470841199844595105691497838262859526363350132044917446842015171650450128790786299114078789033541267870457789941733625744027834266346905625765367673235200906293684926610277085006590858464555505096455312732694293276697163785986264837111887012574829053697451113232792737875012649115753916655281937290290139042672356740593211898880857056290798220601543645942113741675095656953862851892726987748588271001509713229492287941407633575571782403167729271465686559199555620315332694740196893837940182028140043083380831366249737770782382375432235752722259691500827550643465512476388839823188723855256045310607198769025854057285297412711351758046438176911248198955294238705857750664038717754062253804366095358134333970006657830205217363924804694627346080905768776666458447823365110591429535888102761781163736201563272579609635962769519469562459139038083955346602740719016148914137632809093834851203729489936240202962266570152268996694489004346239040168858071023072082529582911744269383683420621994671181445096647775823888193353957034306064395756480087730543541300268800885711505476647272131743250483452964056913435431244649809513529149691039539262824939672238574721623072569008274727366611987997856890666462213587914461743181304200709870692953170421589225948284923826717806396301080084187569911631950353861644236779302909689635438086078900279517518386361437952542943015165162553387417644309910007040458559248281992091664881287592982687112449376644746783891417295790026729332719039323299496256859776249009965319011269839320143466057671710335855033722324460036904754518973870315077569686408341542040921549007345039208955661731210390823219429237192206114228552749111736393318950056969869996398151622525481412359432022554573550553277237988989743021206908985199030396488115319867267891573354836405953882521952627676313903409526013189851363291104723538880196211856245760258001382296355509724920664039681482140307429867434562944523343388168722045526136211947198583070838982625814196959704651312037834566886192735889069814824154139727727131088215486051395396801680768897007053922305305624335946654884936637627801138955413803963168081880928355478079254034604713917728750136544795804730666907694689955575840918351107408763857134704733747443530147258214594634701205423986824781648787209021295347387871909876958740449167878475788834531633559572812984173861547735704266496956157125692127956689615322518144819975208171926332355323368149430819229209614562716520110385285452600462613278545083742642984863116408803977108950575095241870600075822588470585373084557915151642206126271133404625131243600198574581855644115695920954380867048702354862199193225063529611761098984419213244085635631605211854912250046532117589514781653186036344220903511603277649586929590183863004591234094517691006632150565947042809208634628027007479562876612601982221857879217618092641578386739958310401717310942329794034904770718364568431423247932557503604743868320322816020957212150255020089185234920207286648090774340634855981983089530462796140824287873083397887960311031034265174985998765710926453513337287009311879781030285452024053298899793512624368132330238374279096290761157435394668607671378709420294418071071187855357851791847565539154028210479597223176581874642498522298848553042885297143113967969885989487329264452976272260073927387520043313397822307253091274404091691185431525787366046668010554552827156124355630751610532811464266267144831780645976920749567131875528870836038734603303607129992894302949450976729254413808291097785046050923471512302122325443847614788495242113134930014499675607270054201301549363343307705624787011421920993240956984728312635657177308787822306555863022113811818531117715180403791272182831842177333785253525871556415849014827599248463644772356714704738593593791437084574752969110577471653090298593378236131288496993628485575063485523617352518532498755594757101388851187998656570714161397065157309767797638051402432608990526874672969696521577718525051433469937544598463904569298759814213646674986834532773805653363869092401186639192545585165964058546839793535647584466115595453620077030071028700040506085442463248722848151302063521675722588020773810651354799413286169553498764223460332783138812120743800935293887551647377280897971881269309412554352343723941216625930709188630289785020361531908951020135124923640177745080691757761869467464654753610381061870475108087649693111397035503739189098362990960046695073804534434356796869482839587922484784835899697115714352480521516740487234273162818073009817537909368659892534295744084857492975305762246764696348405716123364074625391103299503395411009045470355950239412029417555628109752298926846239822641493903705388059007865448043243631456705458166191337578252849062715031104545563944702109872493268364662400034533795022049478658313796916829782578845139266666754160000481439491481966845327203450305477805535976872506107367201139929029725104014614783193234082040270515390940323825555063413890166015894189034109192339880447087277435001995469567595477412789082659001249868576622784294303989221494664502161360107240378513357864898743445580296300435294772530473759166128413584284296086693010194864816091584880336736995812583622915170732883010796432164781669695872944011420639551407924029857658093651345344957901811482163418132998638733120285766379375043707503523694761835755581825667605107257378820627767069779453555965192989004036610475192293223818909139652206337364896893165109131811639012728222711606357858638501915830972634193748792083429451210559247826921064034042426518714801478576669318686165429800732242440531549405818624127167923513189966372027917493192884466179702757514497271837895369630015228288641472871565190206353020939747088798317651282293359400756743757138887353920826339031562369840903565173525273888817160078560171467491208541987881042128392661582477514325169919513144451872314579194018192350265472495950361361418476669421395556993540719090951685114299293202516613705284448096013568387770927444664328246909430239164422497052290198319427139186781257850469165906402038930405394298443381760918027246766192978937623105865286528910394556402254565348458538806859009967404158141531740059293741871183086489377395600097947394451346028347152616277284464562402211461101785755130559658209319527839563373814463687092086300441515384838332822007311640527248622154585222688308381736301422841261281401043278338546852440440462061774106813617483042929296678218661068279544101804002204033742274473302874744237334249958943627395348072854562808976049223492565497837249343971993752211337454419924913676933134939382571659757061441278029413739170511425534592502013126828279469705182975177978976738298074842058178833136270288608123324156603174063471040550169400300915108088370506156264287130232381305392696501735087276988707856788602199184281633966581646179354821791929419858889743430265057702352074095406676746568245601625402809518769900240034254911399563754579567756859545964798567687317228911306793051376615294769271900181447170015027426286759801336664167254395307059792510987180990820817858641133225311414847159923402859017525799241523758675922126186624592753199526778264224939296677883382757109256652830606570558361927245157134782682915871149453118983342807849391229760885390751878543696030045282947383490707842791594016050436146348140183339606323832825664776624715091959809434208442429252503925128026483808466522797169677097464137985319358904346166421611621364679831250430795029801350327784886629415747930769163108423154935932901064265981554962467448540893000151471916765295983117871990435671107655034407943911467172957656876282733594128557623179425072761792566915713148948778355837701298844310613446909247284197779808961555949707783827762807838711821089322963913833916363718851160177669686178333506739619227849803982089092443648222334856625752485927905707922679331049510098813851644107846043033909236129435211205577766195671086704273158441966061688018296813554727861799654749936335911605851257560551671223903593266270970259270840936928654548951795931317725963586934425914590189563573180764011626370527434733305728846950731515582696097411379572639664823377463578708541924190645914960077573887408694080097211972589103524203599384818237759384090267233100411384488888257249708388677425665643161989377335892066783849028433546825680435806393257927833365126697325572291328364544558761296767250174786410879615400817837283918478464687658437074495348772065510590617050735356566947893990084844385388947391662338016264338247427745081692734063090325600480607740900035223175428502050558745139924255667304166107523570775549458882965384238436018545366243782866941608128460457583412805913285417122851103304764549517663122708406668957792592526560759249651949370551805768876503250855670844319179564547950214110848286224581549933589800913610807615820096521590711849244763016653837730461391284548632861027595642454393160889894009724577141786319938338091738944058289983041156800003621454654637882653641971956722547123507566640067119613352569027056962691069256438201674698049927446277355100184532081417321368214953085534257561139291240995808583276033726360567134050160404975421162458898745647456336029771514200680676229062611046243023673701982892834466689534801446468572148874799826470142967005960401802064263202219647181973311871525505026799230451737089492857836427353361135450573969351388566374535591748242415592354837319558673422939823801460351231898168071990703805117452843507879589480692225810453870075637988259694282496699747465606419691390768851060347586551426594618738291010037201678963217509178888795443095603233229241326745732309037840630134445423947613722001985426053489177187988593971838550830457361187200556313411608033974206214365165661137200941761208536630474919985822590705659811291389389540486419139823553616022780836190305723700782700815750471573954677353250912292362402138138022687012892284478567293769877971496508569860411691495308555187519445300239703402027095074171787291285668518592125541997218027700556633185847624896259720539078131221946968232261980191089086454122102687790280211323731558448564301809547086181330202966900523922152221499317846446857715765570199133484338001681091526411930961857494063098990658687560258133226208249321452613249743536760740623672878938735492419955415917925846535948972039559982608287830372622216063134893649408123779384856950355754804117322173928567058065930921968695575282225978984328552728373728195723652929787949358024026304866569847232383612903096000786689936690996336691697504201669809699583007265657877781869523674751024015045340453691554367498885941955214341025883872611989245313163374890249293916643792452492768441314438676831439795480247685965384010105176912420913195745561267278992002258245842528481661903058151123255028430491037210379139578621723049384673055367256523359126480896823156710215681645358377575549519745552582409890950581640638317959197381246798131417365978872664851832176675487181364213326867706896708160208764945783535688525820860274264792785758498182499763395272394861595333371879049979256849329915602971855658208972182774057827412381422887605804919897073765153231211626788396259980942757207860174389715246398674633041014118910277462302461498692900271012930582451807703098254811482950968215594589542965688171003206904813141317668830711418662707336721576252278327704019316562652293875866733910884164227290513071274263904912360627675235942485725403035952594881266168552439690674362744252872769423274897627625069288474752149176898328754613979686644427101077241073341666485155393554912950107930221014748656113653864287762066187567274227796197552173136672267118285356010963400657906176773066026123332026593092678722402946831342673194547689482203187931112592244806961801990734091767505295583624504380383585323242378453322346607537850372876525042164163644917752835163977462209642642905170557328253161885439288651169155872021720266020473927599114816247333250656040502368590458219968568576057024840264080957206968904893715907469911268248012098474840842451886468639294705888752814712473755733826900135423323433999544055315671288668309681379180683359028415829534750860174026411519739892472372369312494965720085664232219537098110879460784550074039572645364595665486340111146823101234672626083521859322399215213992940636523213487341920583241980804332278132414215599134535673838797825966750915212126151698100000487154971703822041325823996881679732045708650378502923868427925944168516253324860770435476295382930240368976656196223481962399479095345916366636032889885549750115874421922178591096902485924537799836312476560333309485653640651749838398774599313961005188663942375226737221096710280867642499133934692571163681113792073566830806542600028244329092301732083099680132150511015850749876264982738124237060679544646529915626220760936455914115813379240642329699181025434403461669067021737467245358738273400374194291316214799813802842191943170070902787380083093820851271012460776014845495683895507700306081191569511280480999558302348286924202180796839215385760779654253253230509538303083580798076120312097282005284175602539487191972888467508908411393363335480320978452880666696159214251705802363640313215072608165005682235889437963178529700092744264418091604308018130424096499934865704630039866335089801136860433947788151676863177732393703611036954666516857521876577279432489799709126837065876202093475784248053873538135069180594395518039458108098713579735633497655267520473603914928472646916104458508962457355468044078971987022905038786873246407060044811138699388262176249571144622377814537536924945904645592292516753102165963839159655885801435612590578468122809880957731782085290880229392251032359651246060175690931578914370586499388410344804301146471631586935199116425343053388157669761397124457543834381288735312139746702644126805854303376541210820618457151713080515855853798376203396241448617236491976342318836926042443601698072333775800425635372215990370179006223212422296451413541309540854044142898709532017670559769922612407312138482734201725847086694279451788281587571885874184519332739350983315035344756355488026267586046456283983080539286903606368563822534115814893766937422714932528486001434547318516465740566086699485095812289000427931183125434373757592527040019373408616515753784863953906374452422622671077937246956962531734857030311154353798371833815225865074350281432722673855102479398825403053732009791970687647876472292444974163928641790674797884866789934183957384890771816440196597268446749019252600972544787871074066534419404568230629705381051646810473892100824471742732028899680886712601369600434379245880479375517038333406914416862947917009533284612739329528766494008696931195130915581598073632693885972344628037514314547104809976792953541785797148292304050752685032291848268396521261124203164990439875990557440085460413974840078120936066720051568557446283654261981788290959692970545707124590886788995112515119990501586783629868207563893126356725786803975392808411855641580407967322073659869496422209086784894869955157788975058259955737743549444821231774894093197799631562937852639954687212135729633544749942868194624827740825544570401226070214917506726209569007517730682468408852138233411075962690777170032806748248545631085083327832548602362035751319662112745443863352482170281825904686863644575069026924571991033631359568090828007010546446882797471557611003936038091260454985163084923999253636661691939984787636884071816475213276936724391950233004817319061657841886883800735252574513347797814490923626219893265275390538066382387126995570454481963982686373106973035576600993637967324740560754550863737805502055849652819861335081969730909907998429902155981872992463408985677340842853281145301493639346557837880766879491265808393373201566373251538480988030555164264304167853284056035283682402054539529784293183089319472196477520191538111565964081288042679787698036286878192820222683809234338439577647362999812540717967677824145440387484821242699341946475123095770487166654113230701114444882413610743235538067127959579548051628320282299354327515268780241233791302517325822630642564684809963294808558104465594318352902606357656571831811891069166582499592112603594501429979194073170503103785942739201690986797398869954346653588672297366153892766007460393033430498194986602204704619168262906760692686719884099697217399090612952877562091227376430748593432508180563615894768264008738738740840402014449710651979187322704281686171146897200511694732105914119798085997745635239714577882519270609761489340316393138945559935841383788527418845877807800157772847528347449025495191428457245285317545569331685791215143744036410869907782536219074514855091001876750861138918410878077401429546883318556309036338819793204370546807936531080764548985989474261002686674639354860807463630915933388021222089831849258412159394410470270998399058926735719087775832331789037113086158399530451568227198690841043725907670268316429019389768803479003954333985647181494495389284487780471856081619153300898921566420852028958959682281626828186042886334974285079142641856842520322023062531089658760489882626118280582711661604650440011794382409169464295851522380193373257044485000949460155576744682244653782764123673541423933211515215541991340986603366349395583760484390398450549851133844657352735163457713886185371221428673519592303723306934048800669097281806405157439163726394427544721949972243114251677063514060395877494240832747119720479265894597765556144522906944113900850769021261119455932980457521655943022180605784277424228944890761080603558329675135397050598348256894536316444485555124197034556103645043036858848191608912606427768535916631271534685461110051914480579154042254874086523220307194162482549814671056333815703204691104685985721312290395542030609128345897977572308886495602897219815779428712804134815631717422427179647587592131255774106494773025467796748349752822593424260029765295573864481534228430651404752394767156610434516280370773260279217985941236000202771859168267091482701742804103807604120428690501919984287489448922709742449504298035039711523808615137404373560713558890561325340497939961713188146868752990375213093888049243312239236091969599495695351481144669977426855748324666895156906839693159845371563852362646799263344952086360961794490823747606429864778689760561294787828547193072737150716907875682956308964299859404057856480146796435813519028118347949468116956261060099950953645264212871380015395393519031448740129203611756652620353987398889592656157979923002260630911463944138117892942056391510188034012525248359295276771460199807326474275625332193829640296452997227295764077768371111110993144345969763178874203442292107365340850878807688074131440854726785051666372783309593882499231845773013294600906611953402376707308071421383590857951493134058736152915087705212544778630218167262995279273077057296454253867538697127290145472858817864086030243927587677858029043371207945752481603292403209109856646491586178192517810324864257169166687009836408050130846359302634962015514046805853423245779501029070379926974592337098732836641618913506700063978765099928955984688380709338817190312012196120972682768727690472969449167839469459961612557441892227822231128097285017043839796504360142570222550079864884436545657282467478124350602305719115544987589244954682429901578378192135581288101692804753215798146719163509883559262201687557077011167842597818436688401761286078449054780072311318390969707010797218139161899651791705975118742044948690836385174334769197749802096163559112222148629617799811014292271091574253092386052326194014537066540026817067387594399840990610627754563462250453100284504432507042556796814112000542355799488400929324764312237260493379256417921230740754565038977279476134483368121620995534229896622970126340054347918222080237367098412421556887404453186362478079361290124922722888523150336091694544637645745237258393909885220589298837371912331425098611125261750435166116049880285528301279511329999367823880586149660345500812468697097472083779483935578498902589413705801539579053159545184174915371471290524136111418210918673788392076556278742982641244443620739341056926110172785235017096484352611794612377348285728203476504729943628464585569171761680323668986719830351000347716864198246489083383601565519310273688560556159044599564334373910947232509154067161303962462721578223437208634118740849720169416766956864184554176147287577616809534573265494795017328611332449868372195846952592431518418849070403707984284705260667911870647951153619026768323747445794656356176665493470491393649025069831075782858795760858071799159056764032262500932987715267707402462139595575084305881778299361997200009900917567650071917262395560592181275393254517644478919915366274785069781581443186563466145465209772950710178991223540972887282970785913100254652508442929107551709862079638427641566381082085308121864113053352489017618398597646350739394391911009290596964061333439442056158863747934064005382065804218371476588199068924241964507362640755686590950908778875282469943755964992022831896870201424936305879071182906096097923117792302717245757100346984919086203746459223244920950592557540014013726396110829694797169720638821908415381072168597097165991025672891340261037050745889835198482701031861788929401294403349134704344503361035699670422364110818821488308835723933070214072603908214639435304970345690879078218337654028919986697095322906161443804728828997124984178293319456418305813157847877895122091843383486671674923370351661733510786909173045545989496204252727252668326564301862393154370370769545928832655113855982069985121357158776267868868261924449596299861329301407896691814590303023972475999478120658247337816102133573277002114534276090466300055197327703680728989364121456595790902286980754408285333432596510638440132142431896426935057640014111306957759858581151934505396376455990836399261604884016479964108041805389925527544609227332298786005508495429780239129411679629232625737755335549017076413427988678132067000359070291840441114842629652273681735548331247410218433506190348190314346850923685737871354385477651736782349319511216015558608211133259032870761089122396759666620866095393586388180314145960643845933266076541704729157925862236741318846504894720661710300960361226736510656013953541312634184266327959379909873389921136147585870589349428421511385441156224913393255530720834926960306976960934065968733294022522275638206316288700788915288936954154070985484858267427199884993086738173818564869303278848644366350610772222874418560381994822191807532656774728612532917894622958760355392304664956692704107765624167129990787762312936352266401071862396628001212461341372867636817078892579579282620972683093879162361953052687711325278013297112922029577205343357793547721640224474674945852646421937258084047105089079363625291765388604746098458120882116328999580817251001295336084663578259556693740880780650636077157882170308542839117346725434858664566332737287898793353725832006269866819731049464566592261271719796659802338819406431463307862858871859431837318858545550824475652845885026455129267085805551047408176634156871280728286918425752607556131266163906918068618300205971309780027541440128923576826181853608940372147952229772778949575382363597216627219344384969169078708446421725713191007570665482729166940177180852580024334820986968216297774183977645977894875254183241233672552668787498935715080756440820685888226372411786362148652078803198441941981595558232406078295378209274775573495724329515412740591095610752658497589880992182934314613890606384788470056901956816205444226874868987302010260366454909549177324971044407656330717423157052676931346647194330466348182458665778659009419219129539846501070747127220229524505667363080009735670368816576982822523957316697260799655625488954051887800104306260066224975693441603229922028198293013264150640640683712291785289004094164905344162326221754213327431659611587482498052273032944530279824086878051408085499369455133998494379339480219039736961436558503864732108804797394519477755792613365928198609271352565008009374033147775628454058806276154486762433650975531701505483494376835187450259805502136149830080106002899337037536253942806061020129788758664561161902671378034363275113254866800460997368348320222512468769517184205168946298493184218952658062620606090961710132683060678941922356197566725305680833175999495070434757686680429933135434442029359154830673743223460989600872369577479395412849056761682884323248899135636668703214698322723040138407058012851300741684023784950653187779073358074632396540427265432180933522414120250813312781269100623118533167246126390452878841579323110673336832266343765978436423696541551503215185981556780878079405733909446558649333766003933798107653707640831240128276248657457221837390316158754594494320865739028285610619263788552861627621846608585773851232671740806879643739459491954349863777491124360507619296000527902370048850337923699556397970527926689108203507418594821288689263931675528161452689142925463942301572605303188498293609309535122221169909125320490677915479234833646864729828512375125672208196219054141323732829805851474964460951376654195510972458871431119049832057871560047763729523436008213113057949167034260158031699478725796023434923816437394631374981793561979117539829640482140352408964988738798469340431430703347398962251737309346751810334864245267648725611603357891391913266635010075971554197957930209903583723286043891960323857266587619873892177293047117886709419144878966970152427280258623083691017809726202834581821815660432218191695146051250050180076079134062124453254408492921365740332081524335055650382596976957598200974986293727359589255362477637815436148566340685760262871941931156228335269263314429958141352233195944955776967695912247690758995277105985210800105229711086223121840360127394053023624557082558111578238842176065720877033586721126943790930493408125918350858703858066758197683928357482599523352537422895192747312299104658961534130029107153542364869379196369673312087241776118998457191040549991343078003434433808927014929577725232012436265765522750645481338867523078499745954104886223978441152163956322703697363450441330830019407547666953633629328792915909106082543487368833137655163311706968604219801368982615104993635932023394587904637991152112013772582259068755071602714061616654712625096295980333315520057078542289134312936321895883076810861240854346961941339180276800071646570735696482202109421107539737118731928572695203511208608384808635541222636194478058799783028777427814347885913896570532221787228280512473658854594017891101602765983947347322779970968655545654532580585492026867216445333942980863517991056782239753590788623927415753663274241399517306701919302360695287142583290852343116359157410896916099701803887938621764157999478521784907339681374277715173422340510446617132966265207276491787060178864277256414900423988955487202218301228288452495756932733150406606650024346266701082372786673035177099478294194416559830120961892654615245674281972028786242876403645453082673723866474483976027310972774222561535020931512966614241667550793473846444236762696323659470193538540026126071968332124060786679376203969103066372888840041383893065787123545920938502693795815609549080524518090829574167015493384302747781316565748241119090508156587250843629705848846824491952442665309116489766383097046996417655442166841014545310589079359606954043662237047061669823218067387674272109726242396374101277503252677323214612347026518634170580467430097557138635133020236117857128808733564800192898288891184375008483194394861447634706009761922258122381415202837868623145908173710980542534330632232359213602814980772395748574843036702563218008908921121218571667244809779496710023876400460968349679042757634307089143898938102133934273940528246149087316965646843390881390857967104905837615482245785704585965433166015918659504088220520142694326780462646090690493131680632824763892136669591568463098841823682518399404418019450295679852172997691868247867822474460506904823782395826600103224009276547314320620037289196604474122878292875797300612353938742287628335047069616445446254770324208373116628037159223487422473279843176792431256397452153516326166938621434263100728476101907607330161184833506896102556594994368753780581432881592334678902582254775053422300403178646395107773615642366760045332565456096962249645077565605668684416007095453994893755605048106742511663627937199267876289064818872202240167496922925534209208956982480803709168052200573195488705944909292372377756028336261365608509576764725244874141177620910105842377267537449215212286055174571470369275891592631004944235403522013090475396538197087479667141254162903843923643610319250152757304055493395906128234918938972439070697821239181396621285515944889004044775249520732460578213116558589347870760689458598182940605978480417555212782622297222266583275529369286098541815741202097746536025475059679175827342972870778611815470210570805961418298230598990336233324165914736572398428203857798015794880692522067133384026935823216114674888739265471386655888302422474202069560520718484563869679777281456284501563664845078702079261213836459329544689832457006649994803042582982867998942509866541694684845192179214164440376778351559169561064959893715633701388257718856847792049887531438813470678614049797041389083117351048824418677119145842910195835775457312241315388081721793586598905664965994019999847337852968701372543362767390705361229564806068303908372123367409398217084315893010152104008633753771383154234040308849774094465828834969658948318716939792611548862988110589001000532987191376452122806169302654802263554564395326075541319884014032086850249020033309744752106128777891985217456579285310816754431954425497104863854311962319299043980001856803277835194886260451204234007309464782006878128235904316331892306021861053144541380380975774683528136171516165403223202095495588984409990873857299136116737750598924196795941370594319049912123143823247425228343334201434180721331144359054502181862657468464514523108404126698028593691273434207851879791663931738094563893615312173403427580413945090712713285811468766640484667917282308284500572445996698446533543023878585726964317767720354293922358003059750740473624739696314671716677301932225944516340492363253386938863218110088474965555248925009039558143205673142636670000770455557152909622680616182525333946130370059975243944174925564716816814517508885877060319203261897985188484002832679477361015543838597301967352807236173924131283244963537077246914307020898457978161390585606467300996790928783107760529976294988816866932144098034228967648781887308488214594486285795844901952146153450696733316765658042239977560983837768443576192236283181637376781208204084505800816813424483491985319968069339779338725450004279982321541287846876775051734210483325885864556635173752187493015697013375531339190773763755708191510732978997746881175599568179000485462032807159296352471543628311329315067971518698859466318416979718641525130732940944636712159253668657734205201149106819518416254628250044673045994113651770478808933323731328328599323723636762517987812702051787968362390411989977200336257726377411947802881615864324165832767970460969902886061563111403075090978959824253488661620599933504692629582264296549428854017737499689797957636489573650151138204110988481991741116977979308631113406192088904927550286234384661385067242373804600195078332455432032747838180962662550599461587171585264164787328867882195414652157101780258723509854873168287423498265546597499167844488633435546565932234270079365132310618399820463492495799017529534628968172947368414124614269305823769017169001592413551900163348740239939406340567413031626343327103220127447670717330074559854369806308933435172030002646154565309903731734440994967761436779793652090965172315329388587181155550998326448183635129265417492960903345587879378651136047438462988559467900837754750189044178847069800524289239224115185863469871897535563840933495236180447783708805071554369258305874000979014766875686972066882226376022315101366058855478356726415445951498418206780341868268953879793262189024397280279591610063225833290811961717534528274495424996441614703422572819042521998202771923690212851866133209944251201907144892857427776911710404223892394942734384978448487713879193910769390369115890655932068131623418433102242288062171673368420931015540781148498763932077278853828689328739666335409604684046310240028388630169940923838245594280499362605779604833614324048654309930382174166368726746581792143825959294211062780735140339849882103835567873789973858173587931673308299644918241196888650451579200974626758345921697471456015037455678978708998288799695444951321782650726044033313623925363315556012310210521388197954076680780314718762245065408673495658098002770787737959226382893352091497953272574163626031877206308430149946153230601589136916313963159213676813680034139571786998452243552472197432641679582445035260687909286859851115694230535605791810341582395173396936747486431000054866253435251123114035310900643376434414837591222310637697178275073629616833083219034553931242792933130605504407855306619886557349744615244816076123479236082105794407795334335966348250470855711576854136111392758517547692996972889366988895647910736784005291510814384670847903831145958938404134215252695098835366300304395536956132019884615081303811976046352852644427986465133887286141775708085673372631257173057595934986410396910158374570124823533561738662189422931832560203594317633612496586966319784274525042311264743609049808392093641487743674335775709220243323966925165763465743763760650078875963555439968288592839152724853136726614863598226451436802311740137542337863097531695902952110235978907260024183192150189039677458576738348590698352921437470425700863185817186782690143940712386869685775848610194249228928705776469394145745289135404498267495697898223998947399217274144050095071964107152592512896976888531622923904133781152968479252293257083923157556840607174082726008314609575732622659974958364728026036229800588449342363783792733369147878618116236896932766905827958304005121038522337750721889115903267764288614927505550560231253191837612819513362638810946525987122428796549325125571021577635156538042117596691071572679807503257232159283118369574058167998071617040216700991579189569019776918181057327140927253883100417513939864505456899253878621421508598433628091374898524054749748231185519808334261412929959091948126671777857902775679861040824138838396425785920150527032862247296097540903532178796572543045998688028431834626268818072335331490097825214630425158361092862989565030861957463826027880364048128972788867767164188602913225692215721993643739049803059964043657137821797101055262183007060266918485805821177906491032259903246816378341263941314903232983894953837198773599152868251226704675485524931056506911894111414636400814469023458812231795937018373274204283615586136071338586565230049573426743458169166531893857908525026005912526758631475646451691075386456274704511843209530911532585507223292809156174557640483304475766636806207458861957859020178326537393057472385404595858588874109735863265138971693073114086154734642751733456835376993166384850815284675317070197864414660662387441141636868112285335182038534188277469557502193208841258111526476681540541416894388912362092719569731005432720405240026619046649517176702590257901990706417447625995753990257553374203675092304412579491210700645062942667602213401572628843862905356210065400832546375361461136888307487205066875903164506468219717989208900009117992191109416685608843767011861704580686688364496987997504496752399501933017988655335760989253698181705414541791148213195061466005040251657498487591711085389514683445493275452728222615114055329500927251338041541089914428896628079787663450156498270551544770565147654750931991190971268941517117357099160659906675079459339120440488279331047518059806580461281738422233880229678604262689346065518490876732630330135248488082410134257858410055574464885762034518024390254489741104195604622092210389669843615745720876044722761966787288030224469529488592888243800006420838609195508654272143626364249547295109732058636526511574182080614623149317143318225893554606740492601489568527530928524635356652943534458626085977820029237269625426580205286626032613909815087163085983485598289162913536766225387195335081410234180244676659418126332312170005085650115810222879983973200819234999538768943288785096074356482912509319830502835013068480232684786689942389666245344026597259107838050931965291672319128463586174915819559190041507894946726368045258470606053475817525345930548761556878234249121282333286707256591440850676137802871986848924377099865421108884051851358177486415256414643587761138794687439186229089619376768700441320119846557513479003991267270122546096359711446319396037568011674792820379389541729662009791983496552600598766721102691011994820887333344625992380440916435646932860797964716153090912086018645123588929606387183110194957589197054130572337880562923128611050433014877137417584735890403993409576462321316853620871950795725767903670009391949438451973587531322641792763900366180054062728160328712463262461375102782875537485829098159782676144928844074638095922925636853616473931932553841725471859941316817106110031677534850269378737388696822860614003820492088977152763907750561786870175087040083949784722975306568101724486501701164781350160008406022648181896628732510577374352233075708896454462295943460135891565294857139504839222981974024505667576196542900823130938419550653617367852471446190491686989808361815328836089645911818706898872678458317820411190459404839145343511494403015921664978399906817803077556020410854647468684773748006739588342570714324856903261371389747195494283836041112621112743077346053342806413002907703705935804603680945662937691716705892870502151352122513898456703411767417936667505737946172792840422083671715140827619334924103754248137540235130029221201739038337685428946337801861408497801468283146028876339073734489371903562419715442938661731124360679993018618004667199872141743473446740687733070316972529051268695966287464116017532231328431976694393333282597783888633445921688506854713223084201276640549647915489148048720828316810846138761222623963037583694557047859564459240901173063472106811731241210106108551705465462798718094358650569643955493665276977526393474903212122546237267774764643652240141522601288593130733843712668743195968727525582825423037812908198662673267087631380835008053817074900489762782611111781891431035851898633744234757272943749488134775868752214303344354262041009337295143833727754596371731985300952877982959645851645939581096862899998893684942059980745897212448818691177632187617182111726282330187054156214779306130177350932131406469120578606311478691272766169330774773149939651143118073793174114844988226916569020241765938313902545369720089320266640318595440972738551363862223548599059828100670514324494230897507577740558190661631764151821939599958843877637220389187479366382950782393261948083742500160972077270623343609540039138595201411418147916948046979383712305799744408025129989928555335397909748410905646416350938702935809294574373040323740749737134994329810055376120452671605679986641578017425553893301037680720867642231448659208632961303949454139537452087549501003771554282838838941345320584985205510126917931299553005038950549175211133909954620618549129621062612225039930885884998751680744074954223485427096209900620679950710490164407947056921177399039378577935324365879246876327797566583186643703437998050932991678389184044611150039244954500601788544485301550757326950720710832530986324610523721877022504462300090952260700621586009380603077167455024745790448243356945299069662544868053097078451181309105472856101924459157505674659616377214155457689171895311988020009459627019396444629536913532193636028294555253879214489531809862245714720193124632453329520792598023647923353982459504819404295328608588364201939770618783891765630096813973715943201597471020661733232911662943985287487637314828072141136627680097356635278643166725993711900011904434053418238576238310735687697409144936271579865371189232285775752873584840155035392192782549600608296500519007009987849573008578354657873505072641490720328582113940332060910256092900172760801830028460577453861466508948764416100933011075275892852054163036384935469917831552141858864328043574305892110795307607754178266194967030952706408439578220876174840529679279898759141114987636597461292059220226566607433711654056058560432712235433541341291992039743327185867385853811859701372389636525956809418681163557721998429690897659096800980061307242032262507023296713943224658916708657323371200344793536260817926331589794805502588519748642464266884582608956528047937781318508949887662084428614156840661570357908410521441287489882933616385193370329751535484980728575485358210999886290166216784906614307314501022727274503773748051776951662109277942577365259507663483484107939018092479048274611432488858828200547738756891637712508187354517348925193652731373023702489588074899994915781844350844237469097719389590915909132722522784655099797712072719715511375239410966875774531800178510923993389809225416839861757535262011701442636852762337115017698454128510359572080515006246872504878844732171814329465682635673982996157320093879021666765560670203251008065742390901997057569513218679622991198594346807056392065317699418656071474806477059103124625564701392045491631470452238935918215195234406700521678261676921423393989693306827537722805827100378375442634708560529961841127737904228559989697703938520036417375937924595425060331125380943671083454204242302925222879542212154589949421611916355728058266914483065388840372229063965624864925598003089611990620085424792681265894929933163629948370154081143311806611991693168415182411055229899636751552723650361869897956683195589361283750646996472661101210045494789802274271575570752816918940291873808736673627543421152335220451964465138491132024698603841728934606074155599279766852513697496930114535398739016718055721366289885841260688344931191859836222257620398414440324178809092211781972373854788591111127918897136619443202450160269180133767512784506229312372703476124960055923153881433908158190269558503725351446010175589331203060904019375668228567436032559310772850832831413369901647317872907566849749792000471062347237444529963411247031895515434988496923900840142131617878821104648970215513904992296422295759637168298619843238236525169616288010119811208645810315589623187626815410808138749825535017523636407079450803091040184740019668143437939579853478201299250114678842732399274490137216769114557562670871776338287319455140085086748805620787798806119593076905570059635645226671890278542205370991929256469975158960581829290878794481288527464979766788992529906082735075063723628817729128072794938135818436821393298800271533153836712885665640421598237475081060548716917373778172446858781914876670265398909067714263596312866833069840829086529876550564864823895355363095419506136795511868932679088543620061133857955368667504969334199819726511677981953138010896086006284838211618173291682595550041330348036905319131732524523841218337326444857109216731615466386940845320409169781498991473581218383365852016659707421355235220650906327882126212051084950288468266653797303623995096248680623723105298941813686624635753278703091010962444136457806659063280950011637803669334906996410191261749246952824063262167770211782547201090988601754710602414548789011571807438181361155938990476484357942673269478938282328560083841864060095516797075481489865282239080711035764353204992424500164588167302933455498538269078491494630156865980949503463625792672477654773494379969786368037915571735380583059129862246621154013572459253007740599060396751048914830985227067731204844107525069506798910254212327112064670243813499308464541625409684206384596460699190474705607186196838563652570858494726190286402255046392541630122539357245864244399086904243725358710741461806077923913287902669858714132073233309856594378253313588780504145658774970208770723224084357566544125478173504649312879882502520576103988895602785316847980314856984545170351451290864561257070024334197395641370695503898585555193349505211952027196848140004114066092338627559492195451385027161475936959911581351011126209271191880149950804594229047368862481957515194346373403121385202703994893005844622055186920737363070113341275795183775451823168432406061415077001177417704343625306044239011620241260198774461947867406346859843110513792890659646792666227899260759278585657265440314042148092130929082685027931313447468389104933189775360431736109118265323325807324282118696920165925940779750911336789847030428647085275805339212067949392766956034423168199458866122338792677249739909634109607640797801948861324572191232962861061369537082558598547666649062983273357466091488798613411409972656677837528157314553265482839049569057313036937358227029320161361484200137200786271602096936347658663753729289609958029658284688615781730006573081162320123513830236220839037476029819328838546957417597286416916456964723560914765140780323555852907409419601764422949113621558175384817609692921568203431315974772909773309250044618120305927179679363154016387000590064007196143004236090767069420939975196708526676351270240217509256114159546225883265665074586366090870486571807639046691403034742852594956652129878340601010997823201729430454781129589954677402371891926881983252899484367971995393284507159424831218976982919603069066908100225992490662193297423014073359462193974694716607580168375745862620916157437326749969537494355497391758063159081063156674927642635816473625750981230494670400887690901194212215442282723188796095135443550106407193034851506767455548415419534356994220566131188613293607021477808572419361817233769186420497773507107819823084043167717344997575758610928292913543426564602549027999256511804945853172747504457816404891844280985440663561296019894719869949553451679836452663737067541810778226132800999235134327124048619348272955662210244515154966807687978192353610109016780030724988882230427107790488477281212522302020637989470610660424392849968340008434194728969955310965601769807183367710511868242492123848247459639390990032743696530374606797467581039818498707206918695451342250005352502958846385431128723216918948895827012216646052383513723666233082794238645765816353073762944456839994857933961768260473602076524467417280651009196411248993314160543804337146101417513186122969282572475309721983766188519501076954005551288782430751531466735138830043023383265078585268969628648634364982630778083055508193885410302314906916302301448572319231663067362716119819468504422858826117157156301727650180432554252481436581881853902472791705551135283035286439905052703150381306813319549882942864899275052997447428716850620588179078969230243239568601819860185848392410600594971731502491305671441288316238218247336864488908042187750943326230478925705007652472522192627234675531745889374855980204139846169877397293631228777721147068463362258973363281083253740983933341757770669994888797787197540687273036449441057945990222432174660053785154699021651983479144217519857801979864415938566939585658663961370995291726706168445438799519907230267215690965659579196592566668979965425195012108911970877649502071710603138798653036459123035086201942698980148368179811616561264488089648819508651096824442498990829885141714301509523072084050638140316878567444261964014125997646033731546612039230936161645633308307210767443879082234460677374784161092313642885267912174666957885438903815137233577883017567387134133252056854740056743891422534992153795362409202409838255809786173209841997572849532904523769438414787185416299669965315692800775085037977533890927260654706399046944695447437846750727182694604654197463087603077956139564268654921836744781471305796934510550753332827371276840901929381934462854557530241618929717799292348528514542344707261093437771606290822285383615632548838843998192149348592218617659606617937544359154556306793715609750015097018441043702275848243034038529661715793293759784708237437040981732554004099961400491885911548684469705382319412023710644223808931448206720467288339109877387465142019946156477287786771694921639954032605892733265092828190833590641985324655458295470955746326664116911757184365002988825676731859546614343426994800854586847103105927935536306665999982136515851143179393162356614968865930581698296708169857600124442733865536415769016587862771924627005195117864904811417151189065344480482353091810633653310205595006484113759673157961257690560030641116787487415923968318553134451310115386331319723888693888245616597326814973273709690426015274528761272079488449232670438396603757962919717122620235473690451553903869301286798723452081971334463650604429809977128942571598885242902472770080711645229456422537044561559939086761091911836475420432447916402904081292903930016903035194332006125756108033986109666258699684912071587058269558166601339817221616147503124217474156754969351903698503533685730215879832131787837225527995056502233990958915026715984358170568310514724756989410376058591968803299772217890981729817920678903660367410103199998276173924926791754623529740429908411759997410125264388194698797593050614678850968996721115630370237099179296211090965302719842394670724093479404682738838616055964847946372959065599495219289442931233099935700615705911356704999639696634895271627105128410426283100961849094509219715950065940044880152627364842508790673888158965485621455416564518036342797595105030837605338317501664349790222111233889258905510414165274595978632089188869562720548673032989117023381009108521971760691083432087818505154052405316480492420643207947422116372716240693159274938467152210416102450398595439423704857876872989924807826652121571012215932881986292642112076045664910280588543959958740439746499563359568376955896198086381787309800919947132303545017360529647432745682920830587254836425973724558922024700937728693445186147044834933120658165324400349938764770784816195613342929009492737323972008111270559736459302796825116972039097834345833789403078706023320338318718838051153721535432269396764302096228839650807026331200781079478624664924483728820646251429250467732561409283175916460630349367411714263205019186024563399932190007435829943496853260863229106859207344477284597619357535835832194698291551518182153505336279875935370807929244445149503504416831656533455073019948580232184648313320787952368575903676304768799692614455835224286009650786218361837361951980531240002663930922988135914358744527349173223157226868291199709566672774365596322300909872475017756339914608726263620471703534643272091702984898798785349371247063862044701098967405299831387334471373114142667722319896372185071923394347883878458581105098557455113706277486097957934511686375092168618321703534580460895609496181225645647653124633872071123886308588087073672094823163888944002953181863470681842594389980093238181722574151627822740381734004863820874307147434130154343253391106143664024422131496508919538081070394340366480542182581240128436579715780743169720080435365005052840555831623850233733217932607042173560985182738117551361953391242738041672344468674791487987792339178489760916309841572232817394703265960274637302943875636530937723313389321186051578525438920563775217661535047833611017346376698978061500811546511877267993467277249454326064428670475491521231334603693584324000474602214267832360496043396333313919847257454618642548024404400847669064351091672083896376083472422888909056784089471532349745914840626323086456853688398144984601609515853084123732000873227900971730646713869953310245316971165271289397911268596610315121770315470909617362935721352424454265192292137292437070687393520795509763190010218617614469275709815873046468779530197349561383723493767152344924040993497833377995872417735188873485144100859819523638091523379014593489981297701105304641790405413529021582209609501434649669664012521813525471269884921348782754449723773013278844562066935872213094109936169204826659012908590666340904154290736452142633072165326553728959490380798061116293441035262386196509392627585178607207173605064220462105085535225574790480796561547800794236018461515531992719136808635608360655477649739391708763162272367355199568100581745848413340503092444063459869293629851288437168402283038392592824048780233633196564735477857208465452641639587673258471993906042055303579686480867900794835174882751437221314751803033128185656681412924580279657744849701495515813903726916521844263832358825354176839265230544711924453318926569700456444655644535840041875639928808237428878329853873264303232466559708927730915009826217316163904606143216413114248033313369535248988514872083049687321146900306618258343735467786596002480435714326415028749293785192523868922922495087714869988417918148630922731540128596271267990839235757936167109527862182299319833423006700076690892989092496170527427893003086024145756573199851712859046572613693010194598916786800981463250516034287958392705226422899817768147173847757612570134981648614194052588381780861478560578484963853153034412275153367832342482556671069154807826691696749069546853600367356775977526224212725134488295458517240396856534228025589378108469487568426841857380934449637021065508388085052351356932874217014751396975828875037450753912908858098410588486629469703591156816367999972850111500742205910271985391833677014638948749253887046985797937249005864335094988774468442912828321716103301129996824816874866559344290034170518331060045822020728284851322105226735410544338462020675308682956802175904548792344777024734783385482407980368822003307183843571218238183555996908335182638756906951072298552431171599615106397461340869575454846803729377241007648000237880805161154888706624977823650117036414434315447063880486873534863751866531561967010120003625004964863375411506036423972383320988882205980928736249670135626577271640234429214792883483135646641507832703243538359641151170556773374044445954779017346680353504041341529525066180180140670930391925474999760861603679375554480830355617761781706644795977450144125782568740833808953342837940593102026924324973559333612691009728320811455853188137732464687876878774022491738321775351660793850407909140763273986386229188691279091432384757708219266915259908588009257148365141055257524504889792421907468190528359860326809713842798432437781670780820721209741367272184897124003818090863561361980748864039690182458219192741864830560731907266083610790781881790014120381186507712881377316686020018502931134039535866882422451230278644179236093287933639812034362550751168107578330221873701947985966273449128308196602233314207704390763544269112322989024263904339801387270329246473343855556046231545785101910789971647795493778277386537925755534368478119849402100147151659647905564960852208811162209830880699004340687761746076325693431108243239861119711289416016984124830050336156713044813750640493971825520875501209753584192179613085052343717053985231522075236297057366927081875650877814630629472518253572005583901210512671889822768052590848818955970934688740981856984172859003614117753473307282130351235674585506575310250584699266522010519736198094720278880419629969747740184082206727108358985032590258378297123552250934977323749255507491373218688413931914095444966718613876346880823087436272619008063461355373754840300451128043092215219371662177875303270977958776609841635891190311540978295433950268747771628052253146170219172829830203212254436949441308444410250019166916156196520866707865909737495413567284389238743713736307887820962246403001484788699457840265711869580972444058163626644457743199622063645702278293704075831420336867004393324788643762961167104252072976019320520822727349625634784401965383605506619255798206205813447339865531239227217513409193299361083182009238369404175828417636927810885634502968921580887946041953244251447314132613211183299354221557921926896867700090276437184678534686455227301414839790101556142137861921069825073388397058946224607533271711032938253216077346779506176121902828606505542551524661828155590172248580024404051653603891465460998601697943351760254087271326871577800488867345353748209756387091402275143136610374586947208970609536595112057910829875417885357758876860698341834046080950703896892622678365186180521487346022154327358455198034543807393020516379246290526608099589393863921305539897580446549174783093520571327761555251565007084697789804854011228149098720699574452224330243279457272197675434443552736814889724347168935553328500122416022913293657718179130860357070578220658500081761723688940843846368574871112939990708027632804734477543857744604453100942220931317934011989184917370455934694423737187719148786708907625938412030336445944589941112561395560920625955749962775115317793272052449869475624314344537090215321382830508346757398469194824979267079808357049068025793482174826252518723748518818109575084184978568214729432605611221516309662349085450816651172723769618055720900677294488410301245511142191673584298734694738973405841018387175780269256626398630419229926023500435937936226561975600192827420330296498424594601140969304734467214792010712266212555645921708352618282029403384691156432293776393935343853800063904957029149507010512932745842514651692524979743317591953598101910361771822037867060135529006439523410757811060782858025185591494925453134540361932378898194608255701034211742690071949043058470045304085583614478468949352585007337178022678397052136743894965780573000585100375196451968160774578547873791406577262267917194572003188115270326744618360471050248452039268264392720672436589018031633681922641756491154716125441203375720224762581845683017125873598462007097472112273589716646892013434426262539314722150514506060722648882744783872649207268218456578120486661548181758807620701627169743199384690800828773158828919687180350984499497567050656640918497165566529850840569185876009396777665285220121081677250862150786373406920887123583136010506764715654049806768703869374791709454886079955191480071910800378771335786500394993425900079645496617439285602801914604125253475690554089782159608740366358903595677577517350471992632786097680993069041692451936570661546306330465827865793062174809397324181419656671696541325269419410570987547960128729763502567385774078225934479040946876240583677443882226078883148489512676249923959484571998489027905198867779099839348844100240962556829509369504338676751618765623069752792159391526050703062151810357113839214200962318690406921046093317558976270237713006465235215010023973512260708513405430285344494746886230930161882157992652187244319104084138852471122207523751545667325430939421955441871655159029673387665671989164628481145911791188970296789055484412193965615091620101729350820133703733270335975464253469978303035993830792132605449288569109544732091264394760826723967812495170223631252234761764198476677333958218095661832266334765162095404289301383184850883417808116210525075599420418150995198238271284073719791124771893052259638589374417568253107769998060407827897761510613618202714066967348366182411504306815689977659024940757701987502198090456264398046423179686273812672850676373276439918573349786701018017000213194876094025073858772297106127032715268642077735523003497637882196082066808174476011429295517993481039961031849520354579865356320276468302945761214343175253650241490549804284999806017101198672091151766848122085503674237005596059082426547535808524439365088411585313918464001917946374951018316872179727953518568280570246793327104072201001836939670329467407953031516469633293076919969404107536038553735895953729008039052193617293020541384642091407236718495086644517514892759752984463388175141846481823549413462812418690807847391239706459180804203484574697793578850038289390923534536863875201165649967836197614962001712297649574538947941098183339343113491027213130934261742461294647127471620942733128794879353998679850936302084561214611878384825744884592362615047144216907660830678207482559116703137769872417891310764503110428268334045895189791279640826816136623771150024123068573628913557400908274333447210736433131489157553233645996546638640179214145295250399215133714739101866980891509787519259173759199414261921788719626025297682220685773393276580142864879508274939139940560372366842489391163032068231104014957916529099244700271518917624857441178074344506960846184378561187514839608413656441147249436081937000317310210391546068168518057609041563675663792826583989200629915944776725919793211633837740414601228908573020272275846795059816609537048518749899334668976781311401927995459538787679828723074248360401270407415751334645262470178608604447754076337265240386226127342812773015012707615651455317696622057595610586815410177943792344644420191764415695184432871564524888829870768736453450994545822236380695752006554225714240738755971575927084192625333764841776318147015592796016220685450064455819613411881342537918776632205433450453955532348027702534785337644585482308817535897667250099897938252855829309950550363830122560531687215166845928111522756554555447987438046464904610512407702205289597364212909536622867936738613920974198420175525002443694226450529681539499556696247485940099489105755030564425521998293880764026898008329185380344731241039443378809233550002123121716827167492659223271227568219874911984000098707994239244005594200522621917619489922464860038413038675032390928478303269946285752445826708669207114819746620280768841001942549425084143588003814511909814471707914252680972566666247469074366468314140378333463188932629983574588430168810417863962221136345107044803152320666592251151980826883944947360309434569465848515101623716034441691763595393442875842756932185426780549984664307066209250165513466767135304103633191349284021819022233886125426702806694618046648611095290926827565498824685950174426789904959704607718175317117838980322305155354766814463855229125034657725676765905353564588030861111992948560753308255680436261108352123378412466362907321301771639443442938323762197957115012471055541753877163849184638194774155184754564285609426356306192940679348587569415027640038123473126952479910390351249840129285294254634867188524630296102620320406611168341497306549177606231360674452232718864747977235151514183476577293708233020588681368950371882598644924464720419936156938584748138281523193548518748802192389130714988925379272045118018130373120800858285038242696900479329519053548691207264699917195576294949572960422986972014208796860699423150605918850822760143447175943617008990737100484685526405205803271181651352603328136167388074010649642340557571241649971826519461543532932319580212877099234181667150482255246067066039572288636563913570019900353112524754170357894122667125444323764564765758006517031533795241233591503735155459539127396150331982620133151858508798486872303455839684569276668162835421116914507081070607846260179154450260155168244615661245449020877374793629819466223581360125205196335874878325943614429321273378298679349130732572466511050802113141819585028642029366827134775251646009850919488609345244868623295595147738273342805890175079897703418484090210895342702936697410090490461217540965758198590368811646113831236141030520260509476654388770332494641519542231452785007565966083144464752422130664459533137906294725757267659609684295407699811453970610036489069817822948654346520650853071143320245090587856560433336880692597135798681019370253406004189167405649361711184195247945282805509000399743595954242779738131208657301165660880176361179132136123109163507410949191909085702863837857307599862981973773860420436805102983154800747329401806780302535500110395632344750398496833119720387598541023540955065505350756474181138604575427967625476708074597139455323474967307097552651654751580118645074208632910353154705757511065845788391560367791551046766002803187099463938098317823017806942183636113057377084520928187309636004196502693082963919770104637204769276121765712022804275354947593857556944767340744498791358017411054963484427761588808336701661764573508195569003902661653351021232243024825828644141313527759217302211269376806681946420704791297046439748332113880856075769150889102945673065234390605341073823366344399717706266542508906545731648076094327033097141192844321848127918351227708123872699133556252045432837224580441281005748520163495798830363644568940068442057049878444917538175342568593970277352108599570492883795514408273559358325179482219221967318415620703261546946451174674570787006328555622368024178796913507616317913763098284691686674222157288007653081520318754626249344716563267743953478072187592649711962613801832542363425111082334614989549290578903041819972385153189738377535220789159423395155030467845463080949703232275291009566648920561041658692809664150338862140923481293836395217437680140874714735158489290799452991769286813872630948468368518720584700713375527649659274572576813690318955527590705642818243543422689554285655904822958802010849464794321541019493017525220999613350719277581270310754412062128848805894337179339748164735943596886115406362653023491312976912450108766738095986526690599216702828069060902830986164582286805081934440763672417413467645222632091440172033646176354125019342391558511387920374790677341020041565353844448605875874220161991623210841725569797069793805091639357286888201328269801225617278631809472033522047015986423813408566363760629652136153376821962329494864240054419448975922911587787278465278355005513526130835708083902346257359479396415209553304628116819861631189863861148407158167504849157630331957691626730298694642735513101874478726225676800285861798255691641643821293445687334151366003110067253661995235603949877353858573402773782974135513873216900293084575602267278681620215177784061183187264828426903378261250919214515804696701851416780240270574347624137530602443401070205111743264707398369839187696121343608696978696997591826041550477272216395309765254612541362988828462026648576470824581948532502559405338361318764096152383494031217811051000758190898361072656372846248155281132365529133664793786764987104398678344214696139788987934561422720950070287005171276343335184139866809812630658233064771352597382860830579276673087817682966973018675536864505968564145615852330261780856421371584163436157029745646789427023858237741349828783375390146287139812562510053934551727470546037125436000711089174981621087354598269965331688846935657781814835617257473900043767608453666523252341021240615205325742915311208353524367389207064809184967904190682749482962309531607853090465574598125409016278355741557741683474139972034591747260034634057909308928091520558276851027871039083141386514876161752542286938768408656376539364012664699277663490284140026367266224874568771122360685157662114135064920876002667006974947554309238499846737174640100332712089511140357564133126931548035730406049940281341234822667594612312871223212081463822793781473883194048616950491208388552692514073850466699212085823985248704317945824782859149334913105655443175832610614508294513010622270605613732847113950278242106289825685703269908827860490208409120187517756136535069032420204151500034911684015941069496173668001162652491645419068045760387689619131111459729356206362447091469736881848080096350659229386633591940821052059101704334693498281621605111919914497654939561614000312788376689589111331062447430066884260599576167108988378996654921267026230633179214567610045939445489837702143189277287498386320475861043887991233329229122086048487956409771836832245112895410155334130051907577871193929784814533521984969950702830494512301685918358017180154912934713934340813197467246175496118197110633106237238337234607351791596054566829560508348569247977663114494156088405910329661548401858529242875265069135173488948304226789172094133183080003847357318598116569397279779140364708042933922591434348497511917434807623925772692220697463283679700044849390628549215968542975779887304229940428058977458121398007029186790655632329254188635123098009707920332540711775539356872836651054660951657076042120418999863238700711497454696211634895903493526357566470612809307526342770318038967293839274032346368382012626676630321810660385813011298966162624207806876724808196337053678356619208614076557540005822288032175588735234482886434431222778755890690656697861564911576160724015964643986370355228793663753462043363298447489709772432499514882325310504846578284684437368912511935907619264019603930576432360397922630712111834732807671761544464006765247445936738339963544165637905753260630638000698697042026335199242768580022942637747897762039650791255791873378004774098821814391039182390419737526016691828244423983036261549033805849765493838827543271147767794392108914991647406011085209362235197805838812305129813738250776074585378707216968108956965960327871179054118039644055745259823594831754733401856139948299496536151015199297086908674810603104347677627519821929259544669811699098865473689465837645975158116986004806143559731836993122588625464768383471708948606774824606455180005097220023812595330374854765097617267791810475840410297594125831294251359872821287746667123194509967027431673799522173125554039043291571470676594973986475110017501848355032090190504912024923750478658271851225982564338144064244392208000276946607584526958928478853619224490640366191244656281719560865504108020990254952313781323183852945998370287703726638004474482344314072797320557845165051944818662460031420456488505646876051042668298812356484200505971735557820217652747289487374855727716231624121610508946309667120987607446104309334310385087313489127366372056134209611040201408261347602819541949540080668073950125368243799057979820054047680109242969742192700049110447785311668690961186562689540976217933265310040023537652816498822576499404236554071217262903888537187303166386965019993100792533477475057684045214316801108507674387228524862314287311448453027093151307243885851457676397527818694184290446285367574110867861065937901091956317260743235308704632346461032726002459251687551297141184176619878616197134455342192324306368774347058524289390019510491664296295586282522319977803632888194049059125495462663113738104272331115854639025593975682218627962489582702896427769583824106087752348921603055220703961422079372377046145628403537304196078961219529105578086931662373480612089663144324352607837729663306640664177317033445766049453712998563609942916708219648689128905262470314237128876369395211647044137618159268314865915046628896034079015160383037607733183482117957998562893959123980566480137400045991298420097879302408494903908793331776425483598236983374683133775240536045271779293224742142890819529662283157238110160086957996134507875082095051056041607732456528598334571758825313847304479703317814347277465297916211127489297754407041916114035396713898631106981001708636181802467481301862677566327751281863682305060453039249767596019306107581493977413801314414580681304688352874774568029168339656204985066024795546538965401167922561779153158979365652452608678053561782788402115758844972315354307708695941132636386765534475672588579318244793638340267371932998419311109877625185808626103304441657065077350801314132412210851459031651435076888889638557117869364350605338185669434585304580484836468995888618632143598872197337557489541502827399441250310509935495747015879702574548201593651925561660959289593982174744021980479159977952478253391634781576186605341858732719231024784660853649817165796004868162549972006710292107345555310320274171260988036778833740197439367422878780380794474960221123730406703127850648328564119668877520211012052761071472678107216856471900576925427929250729725326850191735384896816631326012384441654539591682569502664622939573863114400767825339493256724859422658978531473518077710488740297978427454869269171145884107672496302440345688716293938550037718502487012008722187150629474460055904609309737704876514415565216011569252793032934173900788474127690844751882091287691383258047985996278019175445585628640305343322722678531175825926570338914410357149144376112001720305339390844287360866391198954211894648756401920613932798456605181820952686357492939878447612048127044869494126194283224362965060956828024295894276437242877004868043657445119737170120732564844607008184329065994713194181038998641233471535197676291335484584779502354234312474008092901861774272501366600628069391737591248783383816631319859331722073958614407983003335263777448826245919616315700769976733581049436574867730507298702049807449629283189989028674211646533447088846662431365804588665457321303223746668547470044340798065919541000203692469923843687099924729518640362923986103698207212297065753625581586773444131722563758549823643043089672197598200000201818491250390755101448112461022715233397181202502710137027627952066172002685915936597006424159927813779546576334561357634800327172550804877866797487990467958363899103195592924706003047488387878339959633840296377752344515573102018994623059526235266876915568820661860826597092157651779080839404913059569624881907920034625295121230499344611580721703792532183681791864493629620334308763446101538719244861487755222302723305778310491903717942313702726664997084449876068443758245426717351097478413788347441686187604098837977706675178271810460398756552469063863778377770177881236666944024385755997703960669727718285455305848386157330833828617520217381883304149464932312064806963467039520792532911455058448014985917363678970913596520635223570730042068794205747731064756576389767525636257192643868406280426018361517372708087982325248413689075028953643467958363177355637569531916645321858633598775193171424645853911014528690022852126379329147601211258064896690551550418801507955811109296737154403547676772380259416136139328392643634945871520324161614121441307999862566506944572529595237076174923481978902465667626796028662195755619832248938250628818412994111618994481744359637262450439525762770939103509179276176729516290808834882678300678267354121662987562514433736652194538366221134067105947838310266237901526469203533474615118988998023565696006110319061929368280283376624989785818844928793607715607600122556331894055185266684346551492158777996970090318833642975238358484524173901975178816716114720144479683919864499728163540551773279911536325474835603457590184558666230347564728600086975634911627864259277776728770125701251460673218607882437222545043151720366636189997256762541158204938799860021068589610143816729979872728394570129963001230411662454268981704970836537245337103684274440325493313421724974750507182274320912855798684820459700212643057799635668754106507873664895546322048717192298654210258112257141664274816343680712414238400039085379930373588754367973523411442220567879861999788956282587273623361556367806976584795831099673849258201125309432539560132277324465860577545743772671053073720877075200120517303874510271994489568572884994463619777825633302660688810129346877494300158474225511011120149378254227079573563319947600176061374353451172725138015746708871954330206170116359498909990490578771860965722449150729482118045632479602877497514654310386009371497468081050372084946200858350476190138458520386448686418569097601828131242942336456565853088654266382372171192309913653426021418286184299418609755355947241930077262862600508003898284903978782072001004149229217412734365851036099359358431129968963859601817924428167681456604011343259979671895218550360846573122745645550332174733878046003879310637151570145125347998491840943034636478854160856400108631053116289404986870402380939974459552166101654535564509332616161396315670578849721333244397573814256661433722611125366054604166058346032789600142054750730064815319665838913249792890676274768777722251729018003377650650626551421851231719350240384592696044255189428010220234764491833109747306201505754247376327609870591416051957954238763345002229969903441128755016545828486712340182382082561547796636899311185410855976899089849377966642450412760074020675383090377125220916891142554793523329340291931402183386293224184550833641413516316570663670655421031974962455861450771453076682941342992023723511586452834889448729944348666708165235241896001694012643158377262685822458494060282429541557094997194847015454396394711882940401707103272475154328269439336436141391754018922037796512531352282799654140495348615329523411076848395617161670372914329590674995734578210393433279616822650156381664885823505001770909514234414477741331368153895335317065962274527786087745535464371312404372799104055832170301700766869132086646524775936649138390308391811604013586077838388152586427324564460909186003744027872650058815052703727505596880575070238063859859154183819387085962447485373176110173172195492196799505288113983148196830654550880680650568908778108291599467425944367780879682575553857944754676681692864265317435083736933159451325964201489301211224599226277898797876700943575083372623467025650652409827976187986242156386499575398016824404955910488440332278431199658547856775379043972919173616478010922820726836474016078072437700470929619348297116398721107783631975243492254883655154623761206516617448489683261375595361029772194843831583863899886868160519710330309518727785268291419224612469459664781050935056198895467615925529606194706061931985870689142321883717410664903881672308709114580466069458954311313248525563854662790629729114845203283992476529159982748928425118405187599956382466467161546043115252233794163712539376402793097100971935084596366804114677537594382634183451666447903491986411273742300498265054351784739790211546612648741903014136947208930386102739685540973503653747018719719003686578871805234932500945283273429841842803710541324780540886173040636970597283918939143334953741901681140786571634119221867676829308288530007226045276028033755781650502256712215821807674862479584814499700034912955500484660772654642643531768644027552345058015421945979297159742447274152536168994657449486489562533126570095320179267703552574754898384739391479795783116030529884731552278552308082619285444785312894241856603993975388386583526970686549010725447325721196810370125312429027859359018022736841183764986122432855743761172570637633166852534292699180002346737108783664918712868940223879287971122565275531437429129375136382874064137542838739902840398036908615224439869376240814981143278366862607530343185699975468277398460080653917329317671755443659191991963558560958759138670939295471747282958285436189817544674476840464438832724614331103021926621472059735996208034257373612658858845995105207075677724588502055062662617351075760190591110745934064808664800934368749254582735048588311179951760133496123025628122857626561769954861611822012960625621402493746378334828430340964244899459198693538560130522653631301951537606201811642024901049939764876312845188737040796622680723729677734832888008504685065644865436386067815306904795094580638380043223349509567253487284173350699726488799320939655782252967462848241261456388760689339533269836842674085816130287063095518683025339357732433403285196909233361233673187395483845531739181969915140919832050590562707581192312856794734043054348185843615541353473137434446304067151653050747071607268774027095782351015913346225173045437312334643470033413559243902306151842163575170568764565588793362391850465664319773812467696683922324453907495814751945230609125953843765226675836293076865870422179734293882357907933507330992252184530295634930791208298498493008293449578504821321278325790068435691932032394615514515251206256277606072467442502704331134853264142608592953547348190149491376101529168124433465256946229742797192350293635226235852879807444228210236918855507212091328509660438841444056120481533145904072056065821823296727407530089588706857041466536807369438717435473424297226105939192674077091609188321990416147349472059254061849485199937634507114213067698474587710544365446430349340095136765862132600955427732975398537129243877639851453951234754358596700917781347502929526815025170448386249963872187746395872375323140945846741353897736086284995795294772511884437436700420455556588239868561718060581222853596821383244031995939973422857243796640690381794939191030913237033847452881623499916050154190685543578609445298920732935562517408414661838734857395082357609579462138669460998847043217586929886075169206660039506502904771573208561813060165076893623104574346622998092072907497172968729937879045177812274001093510194062267480649240078320994236219634584086426374855446175322015508803016892389599194152032718296875071125675360642715175946835121870570383826327869595416045060796259761286392081292622403823190116753284685322247765082808472855167744074558862634209796336798250438587058065873589559931112214998195665663446528274291870982435587698137077654714059950186614716426058173054668912001895960114208734008878784385772874544242876808581926940366519398665997299498289904968125784219966746042202085796389475898994305730217159315355917043780768587851468478420921556703171322336662724458582904182815330485003593202264351358175407115952671389150866774544721354298375326335295921854596821252789952716334738618211263579557023648549507459919002551253134798772477557975761726784435754689592190314916051715865258440728183932010649106449712409467364959413601407577902171375202814023261537013693835655195214484410445003606810546401007000254381850960317734471416899659378927365485524467710510729844004819823598300963486569382668273734619604139533708497480791519038158312433516891686298877033548703059363314286106557018834932822140893237652744995045332436784896022676227596207117114004293278273690216315870552107639958489335201368194557180432442717514096332168706869287832909555404045344801698530430757488088503567525419287412014387188055088949922293977047714020620363993300904502293786023726653081009066758495888585875206589866213163951911109630194514587473587203333903830299098776089440996652284684252287412518989819184596994938728694836765528478404939936774879370274784500399926881734031606418861436093927220282320676403687363856417029668192915734811184694944707590407330734639203485659869068585443846596230064588162344637576501165407617789493451239944029256044079049018269712420296787837993763314382843255458997247677705898583902800253447289759652090970426946483115556651531397033961216832676256389083802143853777188060934761393068378609691324894344637050274423401125591363669786168928854010302501757791051056613573240636046984067054273894851915970097966368410896184990859669137946084051686933310833570168558085039834737276319003558666301313046675382006115260166453568597630879978532415714005577144588168312374788939212705818674618360097257063065663862668818136818209950079109291409348613707573978099920360014914878583756510149485970864723199524565971446879311358597509400720921274143121319024527608679833372860636859045025576425930354019475827429485531989325542093621658337156979318691913978457322876236475151688492435113631380863650521990896277738499681672032151781451014923980205674493100848788994360554432741190697977957828053040520958190453606754498902555563120921796194146058486657293508836457744450876236876439410898120929536855947686079677203179105190517263164881406245778844310551042554156281978249708844217175495029234755961183746451252042030995501563861848007134547207510465906856496528321611178381891801596024239881447054015105347467805337804271269642584473704813836386217373323767732730661593440710746253651098043050573027921182552279652858708949486121017500612824431958012064355693756404367274374322293753170427645728804184244021882122321456991851173236612208328299070147924373587161599946694053397352188824422472621548578614468570590315273506884317487251778405628547214712592248680216171632937635052709218359024978167802552637159894201263273324711746697923795541501387082668964117421881924442937628789787833940634841017820747754532719579701376333382916503140034783604012101923209372152471209390977140677630080390107377525957502608776869345819119571780847035272481652887644128622451344061351839933165180781124970033935595503079097055710028967897294209533057280652961752615745759874106733132865619825329567275525865526618101405594960313717119067013206290384674979603196531883619991728368493957514795470968438279394569931387903083503079153365002141070171399625567935640502228212725485805443602472473582571908357805765101830303516698863301287949257579343081486747719837729658081035914825975289944064177978337580516455091686720794495618472982341754374864425032150128158956248517150588390244212509655312923319721267002534313685990274653947247120805571694827809887048280443876672899643589207349799990504860947940024932081329625810444293754830135115113805091110644440850169761822486190627073412781524489267691791653364934793074151175794382573204652771816238775489060122585504459725196097828973806691112445275444454934882252659313674805406171035624411723062090773054489803415030309401013694389237327449117376636782761814790002058787755925250617547162056825168821632737026066697642122636505890735794175712165670917515006872446450453847066739771894441100511625755678007884153061584518171008209701286383893192420227758298617219438613546892575850297339608466725429447820974502251870923786111863419184976890587779266206200754234059053758937019558834209748964306372681170492634049518367990424178894261775274909176666036705439614144291752058752149361722132124498465347954268349593214963523764189102611871110546930905216022563874432479404773210145032992764827269166186415657397224084038335445632656943238762440661128951237252291187550693212901421379406788125324392599428340141120202075686790047749645210252677584469820115996458980064353537193188502620823383190890694466608021086270993949768711434050477360283732154502196917655777190362159225287443206068729184939222544190711918102635896597121286124652896034801357269081275778856113223827682525944505545863508883784130780257048119098785843256641841833928611067337188376510185382552211693231940368693430922023200550524800888916426230286910476412241686724493209068092854009406333733068048325897533315901893371407328862558001259889866804186269163659922198434925916329707440717012448128440235081541180528513436351138344442742725110049662188893780045718852768899935296048295713511230152145793251122655726081501851931396707979205710529280262868009585899835370119884039121519742226018216939845156207731866756856479128618095635175802949400941331957488813482451773820920007141436941905072442713580636881142072628909243199638998639378434268005663256849512522607336607208271036701793436686219119333178815327619689440036131301769630127268677229479881798923500059179046133184387493455858629996253999828951053673431504072930139896835269053014760227807090927551907276184785779242109627391641451524495548845264415401083178823895301852613873401708266781525566990185551720580502705542968276248374670917398063524404741383115949345012003841311966937897526198901953884611120815491361887527939466616810195332233858899568720302458968355750748829516330820941299247895771180846056865442358108060451697983081987491916869001791281378193554891446779084427121821774323611662832991714271615445679881487139564241444302153464898332970135058960531963355896313386805693301742264160559607660046493274903989792553835049552563738734787063093093465287432619900569296372427393032254530657229425249906590587491538162422100599194610602814948511915159540763077461748328292168332736630307547611774000262464128484619494982078044315049305715035517675816661718861623964893135520742332172363174278654134975679468452081735416102605653089336263911149798010195344209193150371643389325322960092210709977742540099917096902267938018150688531501673678491861468714746674441337134394973171189725057673998532304827578155131491475973242140451843804635633927322459293849162312967431533991028681645065260418450765446099425979888963104319211475001049514213446382423124200892162536636216736126426809107213786699358485005384295604685391091901332586184765137232333687858968198014770647913807769973109351378324571363843621914056236449814887111461242863577494760056950609990759431138176692941614775496926155630043626902882162312680599987453898763346036109322875022264366097236034045953539272849918171344415564520281624225053045858540239630132599903371411809837296425637938185620985490373691309931900126866574659573198041425927915268979192996857121210514749275974795629481807920585706231553715122125453674200216672336171260585745290465196110808558600708960640470536969750835817449826351495630207760461159194486072113202075274514668931831554622243430855498362573094323486925038239427657516450564582096992573734211835452734343319312982842036756076393897017952239465379974149446188128934532819035925574592436335818839165768243481886124708443679118388013240122937575039737293149926496213694763989373233614079745907737418655979992840356148542771150169632182800679716090839396342615050412517954963967797008465200724857201436036411276581209646056680434950837221147373756089832636106037099596186756878835253892010447548757344477517973759647609979170181137571809500350187771650320325972213063535384006778898495180526505997274439980928698166784040088363142452693756184086381981614286357383158141705931776995061607057634672098460814387653626645649120752669042682966127425347293500176793222233613911203613695905329542909672953263618974259116480350610346144656755263498149016178336414006712828699926758564693242834048537030086092981031353276338237046490616662352835031020173427751454395006982420293293459530937283633272857500179138868576414273508671648057247583131141416660244322573394871661415056546713298822072713948343499188789120017910125714121193213382441938630368012079968135151035221743780195219267884166676432970544216022453269012155373203885435254772107312591100314693309356663357237815014541038772837307511702621322941543646446768147366029819133245840080891634584762593489433678010386446292996709817987193253622881576649068183705538012812942053780588670925268605899833563934407221414681417501531943778835437572369854689048319878430504472762362968593559047620453453238462308366578150124356251655821648014269935839745627576988069784079358676472989902036941678030283486113684046317763601678332289210028984811861637200078202137756984463860106301981716357412717749728897880722875843405400470623699098546797733861838628781486074599953679081529369594809949899641613779494716954918940673817100561236178706710357027452942832298732927332498359000668483461261991126742073908758061295749932133184687787242161188723094624203338950143819642593926753445409598108774693946793039477940133120777250421258671805612709608222730551422073670994792618156476601502814931906275631348818071931630645836427209460537061757515429029973480892408367171453190432006171784757737541849632522517695630310976589280899570493120413971167461191864534537022468845751350959017070089975955633480956621622216413419703835106618878406699146390797367731540466320133242407896175122691317932259551761607299792200077369090837201544805806830722877297816805968076872278285474274287127103976333221369307213331881929569516711460024917886071937916090772277715167216822194718713640047740371240572208993457295809596207917498730545770723946700137507356803065675963940574333642169047752238406407922298498576700160671908315671094864066616187894414207439535256171183320031759848285247202314205399665729424281424595782378518189469074512515752283464473388141111804658942777521813181476972869566924784242190394849214119165192682767316286431919294894903040944100571809669060197919687294248696983317931293473495039659610520797824697664861657677909799581184237686932187422043827323995563687930602399303010049719407564454310119139600098875927992496228065570728275479909397479370456006421233262886009718829511638623966215035987232089872983079990224436038804695489756488986621201948427363400001908388891345618094654159084439987703821844094349369985988263822528347306049017552478075214412099826933283487048183923471829703522067272799298835500507048829058286850390056230389544790281231690028867001276625794135149574274731929665282839640535256580718553636516693861395553920160176672537442810972394331920099695482196484026849425249724111283456983002910088775567791984707628756852253800070604710547279277315631979491553041436290690197770542232334043696207573145846983587812648472001238955290928114685337271111770616456656139757692540602495623607616036566117297795736207164463475921205034198702525222123857591034130451335702496357051068492160044991377284053992723420020465936507307557034065035759816517080095360937739068969317382771553415639951534077498238681843049595080245971653865943800687401034152732189503432152608949711658616367158971393331232708076815353609191763100128862008074119886540156015534229771793110314977315054401612535151230074154167357999691586142476848386762509025193268296759561126270538834214294613800725677918354089314866879073321187417284825248710288903151128537493214182795261941364003512188362567897418191129017386642637195424878313714525882221871218394565149153412119760285101273587898709124213143532202640775373118834295841889067060844696012930342549410142530697711775994477806106851239145366002137362868926150278832132156399830430548796930155429427615347366063067043522987127065744823887426458221742284860418186158473690567548945194451292985985515093502240229286304552741404005694777058637955564101477343395308464232320483225459905337051459321058297419843227585600541881094682798727678085723417455114665321346467421341492962932456807549934788456339821233771883884116861609855209710940305799495045032494970515953717520288526897255548133646990885893471455281501050868115193257784924372017984723280869044294336460089205268765530448026699953575175864904407901818524797591865237919488786684904804676912990317450572331897389761494955624870463199679303164474281722068348014199659913515683071098752781788702478429868069104535389862198775619241422420176820342855593424754342320210581332813711889208223730514657012088560586133375202182767367680747326763977473438223243647231344923767311346447770518758562108886071572491547479777040115482996389155597619909846071243033877715689225199469284741196811224436159011799831242136262252684400335380128725474866801166311112359024975252939443742572113468258031126464609605370025701617029555182984179450745076754601245647837079687577178334647242696678650545267941940679226754237849290662567176610951076164431108577709752710464301883052947972974267236154621091573304853050057326858187058164048357760136798521948121280949612872422988280960677996600958289090352973033585259736919041802102679975168775517720408283806290850864899721716169455566401594775893650781747361226809160173622895088733320899863811989618585913506046083290962364996531271764648382389021891488025012508056248492813970530404479519769865823814464530420068140811776785443161462815645226300778466997278461117264367533162714132190536978726753875683154967084032046654038861537314595488422996685911135823046158120087992338329927069548888680200038245518331586984549806103178672909073547488046855584051596873347212043732251000084894410225186540761718261288512456798529452968195368476864392965859404698832586302917947960968360709564330921650257507152389653806419715998912613483452452762273926677641284037938250711787503081379163265970039403404714160631135698687276623121076380550032119423776881970158956587714019018952461020831945112593761666862336218509237001955093831681803874406723263272364843147582604284489264471870396234050023745388983975522143602005311929011409009637275448504311539020638269733270361665216247168472699832563245009551719042312684930554138121592879675216654190270487365509412138782307487752808818475379357459147414174195310854988333748772022689503315746390879543701883496209814002721536872185919793612158596319336623486036256356022664329665145393378813732299967212140700382856346680869842535397925886702237083320300764880631590377460065813198864427396728904967265212276605798396988576792867085126437549573875405894505297726297156004358022211003060502964231233028898618472228775131124844927768056203854033090668222864584737598512745052893559103943901815147582138788869327279365864089024439883806812227693941930860853859823595323854673044184786157228774706359507221952387259006193500767743258943813539547110772745141001180820526496641733417494778169366565923767060343461184908813615123941245318500822071870316522971788787360712050965557439447633694652869256423714230575586581676839872261035395217869846838703806166515873984342578562628494152005430491639284232397784544962273046278629162258140236885349709393628552592052310734639910512110595153966063698252844420417900561466716869614107489347673342836184062882928993250472781912665261735671620915261609235936828075797136048046617916756139010812412000919453614409128823689183065589047308590281398273661308798682983839297308369110727227763614206184008988292071341149020995244964578485800848959414627521621784890925672609970157316433797881333378803173934893903379099512828320129246101348739627919917952450588552316858607626548533475686996679783530461902958249636651464710190834890895823785496637797599244417283177734873189163406221834088233696940296881055380225256883268322076273989219470335384756364363242174119268857771141222617040037918545438228293527950011224718697679180294962300758007752180809746623276748755989635620581087567363298786036781590711695571550704241897956466098747246755127263051623491108407859493994789439820052260308219143985080517921605389421094945326998736595310050320108592052255218480895035602254532137910174503253757502032436879221475041892995956145885915912846675899273398974055326614657327590456014207243885123720885058328393389293103899797860093118004698600331635791642275858442213440679204149995002048881700347049936140783874576655910717231190400446415011049406776700432311917763636441036694785613198772411964731671801558997551359028563693730680376646396256595775987134828338064236977163113596479082373995244751870423869468253267467613106203710739494054072680585693316428756025186011834822692511152801839314623181623726716648707700259250473101807376142993358783347341502392973744122739302218914509469729292253801209684193674286123569212456405555411787840439253062295062043032908126726345467251268774695317913370115899886989965349513607760411016742258048889182970378919313168576580883887646583842373584879223349138016710681633374518254384442238204514274072597755098942497244965344689911019231276113602485625001622899004178809390170232682975077732366495995208634601636178426742308484791412031776719600633794263518087236844772020059154803662907703594810628941657622747030582005322826310053451897213959904143389257957668101295347528509959088438243087170690652655367589938528174428800736590180521437512460064362676840926522851734630952255590282513190976451120603762538412645376336015674291861804215024812501122935947888251224952592898037922181953839514546525771449305027176988622182588187347740889853369684109096943748039644725219151933046003320863157527309128992724487734313958411540619023677420249015232717013096365279853864119347939392133152615155046644450629722243796771558118232055180071189953921540851976946626843599751867550437736527742961389093800392249282882998630638895897908209142038148401196871123796671845211595014991518241928488137207932945694492519976319090294890952019758802931436949667700176907533731833384519112671917216008034742059521250749660510246891497508080693639302890927628883813890565819731043111293920802940452626747147620140038635905878007203180533399127707145848572887664016134380931687806420198440567430969186969594010390828108784122989957451908044594342240091385600769307647420117453848314273043801899545453084906368480702825162778539788636814084935781112710240885660093628512418504330258440297337681971340923576419305034108319491422747168366278560516954263168163928998041587370981848691327013315596597059200802066878912641660288840057286736514322102988253054928904595348133531276776003321962350726313581109944423677648994448230365293914025590785065603576936951005253934102224764819607329037419506521677073985341104075862691303522668525502609888162656892859801100882376978580997564685648856309328129437844495256433707333941250298985735561168376299010210986394032073898076023536166909210593059222600965539761488680511093719156126423542209431481859960052951910572378717198917440728941157950437016723990421075766902418537998298697066969356535523729532935025836910696495325970821217642893732661708226691010504026430326398858020790916764631067471148140849448847362994109860225505614153146792726285382796415888051281208576880042171965950188916513546903406738243648144231935700985899588636822802195242116418011610959140224001561807299204698536977473280985785300187815085753941498673132312116274369185495650694360155278791762421917155838110862725451366353868719493752126120321843245639464366383209706329689431885299009576257377186427554495796462558085858981124417388830017072046637808100837129684704418863015605563822612801010168281366719614704470402173485539514488504622451373445722041539019940399458044398971946686429867570189173549262987465807756375600777536564277205750595743991986345406422308385282094427635123990588518590827794910150306562787555872513160329524118619274174098295033057888654622386222524253976105298103702741867190739763648010539365277031844108307397248447220712130851648586920541647071632841456669761378241731111853681873089437298685549674251806637861605042054745017627561348124868676901329242128681355356381656809756589696582813386939128370070977284711890233223438270324647284925553432495422756167282171202468349291833770783382325617288401356614712443163393910348030902590579340798673756926040923698680562413730586865323565249174094538381277531669745620214938975041438539227306218250510414745359338067068037853433746254446590425593965119865449930696097779527211119976011463998062506403696407877616799027891822395823150416226362697477965719394652549069928175173777845012774658829448348169431538781424528332849110859523073586517127880441292595444156180629089486653876503126477627743129395948724588871540980825203901832832535154573639793992143702075220459977060859587193179182580000111093040783334496414188000014457235307966463568415621105401790631102126841011584274884370966041383396818645914976084677582216515211470366047421795378566908943798849123545072307318788963365253972978179334784478153571639514838339663402843940299996444029430956673029504881000829933707402812375738667668626159483925203071085595646286553265708039620795434299339268190962515639043665674263863468368431373514198070858668340866336911291341004867629061160591111320161082347447306814654932156685974314334782644494806905088270951777221731130451663106584282283160052641099610089461733375633699651140514573542610424912774328307436874910815991702464589518239647424576941009914105051721501444136004891773143346092273352027913941055545081009649492077559009681838758570375660014653449473629504021205847312927227049539842784144624753312424333239404037972511161669672169464624148969783992650823365307536879785414334737995559175290039704173194869404248402539052597834837180591380730816916637430076882501842366881498697428514259765392134862146448544746479815248609428450614368166434385469970152591197540784820455647313587755941852021654790443382378545745312282766264148107368969333536233959834509267966987747428961293436880950731988466985459758223314869254769058800650313713754159688667499029320533089654184611087340254798251266231276680693139775267856553761901543502282378624756704989846389240727526079137248211388986695537350979756847778425451001851002309678366630622242828532097634295234145832651368133425564640369097470241188581842814362252278129773744307319067342909967400901704084638632035270497033613769981471259552419631041227506011415093581598455029424000458577861744756300214633376047831298202910625952825644792910494215268833172461080153499920628737128876253395300501121671935906352995806125866551509184998656298186365939385589630331121856642853250353033877273558838860083624405024306540860491697298270682893022692759613372779220792647198810996181195486583412421231659355613401790095972495509985622720874063409137483957529250855354788880092058450613243543300064925950955582290324746614340569809432417313148062841646730205663922626708359917335632803466240396598467413158392363187829207849069891147399912999185539357277985992272499331606983693117374830706635353158418610254773887707079527831528945111742045617111145101816082707244230600273857499668238616360645664250659088055604861376427006256079498199474064152440255472449472797912644731080882711440608088590860253922877557103284886402166793976300942296017871866216025331106627342873617379147488527886480501797869609538977910834726181075904852101074113814350335808682478510921586191798258790905876102212840378552446856979853889719303545554102458067550538361299578915228678272159527369698204832929853393274637396407928192286144775555961351151466049400196306737744227980505151127473593278357521116212400305786385502203366424253993112839141045839345930638094474811285689802451302650123559264644894194676111957928327207153730398263564459308125861457436529076659390932715824919042222116010808454458806020570383982925235760106634312408223328895348383379629109046725045846519265789143056367416248731448368477201827306851780503629120339385040108865475728834179390187211185035757077248326555445540945895392030837470599481574401722790682063887174772547243818554962771106487573328830224481881881358332454716356422162344490088170345254830877515401808302023227226332176487518610668009171010358513680821508805564210994870864949489800345676194272465614414040321559816232597321821564122872407707750568745619887898795387600946353162078688386106181918114962683371321546643642512474014356095011075284068383010847456528405889432987579204261155527350204378665776524597731064169000439526338028680454257773255757966098276967184904535339739799039091284438822605199070720129724630568406161287815831535851278588282611567998460106052808802710991487483286404789916775112608610609500042472849946682612317862311091603192379053166595732535312084097570811563630065902705664950373523056405424171691593229436689641578216905459876264188204609979868790773502946629965047438541802791668197858016059415949394291885259791906779474215358160066073421506714969512513652863804171057677691891076077264256292588969769461254299811275050381960966223965223444019367163146869259652779651376359564457621582226532851180528540173939958786017777410942441161454541151913244320175198837181718679357649295485669090974864654299250447161285650407861714250441818859602551044205640334660834156715478099848715962340235353249029459172903646106714020906033234470530539972231613867587717903239060869747447666592624785525913706116082590163107671749098969616962629738548891258710236351705498541635755345541903666454379620717363948889922320612586635539971101594407109729348268646088696241541870577192640658363642723154341946490119923753922985101688178805548194140111769447219378851818319891029247054786759402624872909521986764982427298919414638060854828122475222619506444847957128539196215781571197571795527985426453419229671869906146240920734721208440552051974640811003502990190155808832986811584227452811933063465351023306068852681192885982213384611357612057228006374248846035803013064026708362106663093268056911101878156812878655035205493595437022669874025690479713614519230602203204593895902264081739204655298340904594161113786976309925573377020481086721461467422984104952025850251000694436489382736116891996133824404718617208532778105310500867260388974638472686463010169973518191380279499557271306064402236668815896826810671263566355461931738218149671736323250231548609488839570129112098097662596279969656372323799709259253615384397180251911118964159882605232468098223201392099579850694429352151279024745835203864658136321577950053601885694382830664721250597680530549057474378320883348381295919081141164568202418904329673998987103597097167615527961440806266258075895602152259756914861567726187815917296580425229442937471942321080592432616126179085408821403312734393439501954445373767137900197532543986272356926042464060183307823546396105561468164729100197066425309681830694525260005791664086267081005375264824972442844062272320476449826585874682160574364483391578080175218790679028384400509399068348837372238337764693968296576493042558126857636284052492015737140281986797557869588756090612438738361101840269007314671801888576544226498353123086975920929221283556311780252114760922921785063013623046055601973361873936226259623162240262000279714506277903239588681564182903233467134573213917129276045505098807051729953134768604696985267386758044100619110203871081818936293483008493850740250455339138524655198288506911078720800614942633724415282534710453625277813124271703389177003630090726319608430179715401941045145088760243149120422921107765266889219643082791192231891623492380783305214265606467987933140268845689887954228919566948609761533016469081422851689945578574893802897176214600221888580432740353372807936194726297868514653426844594674240256979017137539953471837996508261768159823451060369426890268212708631178180307547246655836163560646114065771579737950132325286929050837327634895330885941811815792868588584922663677665417415407665267945072581104865443372680160165973140688382887700533816011746694467589387548898515704810237530838146623995037283289469653869604969582995504313828161416699005698438533481088900173751247058833185194599937476552266597786422054241540098266213038410764942625566473889432800448118847870495463759814167687158619212510117860598185665714447748948025862219617686262083608452152185382846962847468201788901790734565003820415277540886279785379264920777645398322226139403480522079259081539680433499739888590837382981464987725513814723292028588679803286093138142899621363455689296278761560143811369166531734078611675909021448241400224977577098602133289039177912919267172257118203870826599478716153877440431582968974336982486485707268292790338991662376265925591322457333804538625126168605862548244526447622669894124774150314628367333847023242726094324436671230292614152398934713917676308845951967158244547217756395176734040871685161341923757367897659525250372716048590280848184609217296122965461702703351698216698542433043259046719321387783166867461791896676214217544346183641978591799840430124034557749786461993927790191566444818314427045115069691873334815003565978625586383342404017889925367708147722186975183239742059838228194566377389063490189921925316581193141331723917459269163533459328470518886420355201086488823673553261498321444299043320579581303595009993500700443820541222272380231537321533046540413787384093400196623617805875311389369937055128604852226729850665816661087224321164582677559382032017388874804292557686962416955197220277279339573110723400539910449845150156452263923355861271661937926544722848975397583861700389136895955785402011961545181610828975059627478646057201788794577589372993928604937264560016078099043917937718265891291060993971160651106370084745291848160922916598771810753025769591755908544176043299670950137198576896614780911925640559958049015412315902549066543321226575391354901722623584658477990481480491744773160957041318919222302639589019190138372389331169171463421112818763026429610807470184102893109558012494929526136337804857986767514378876499704072805802394650664235009944203436375642439276337678390909958888411250774302433190345681981038049244163134027006616053623701909892948559174005970325082535526360702047025281809497715148720930001228938479077112365103210666897726431154547457978205085084646398523035883498302151036940826971344991160653925627229993595236220885831424094092070898169164895456531651972160025045436581112338064124462002128656027746485931397341937268473129800052624389024922551529822783239891255306807925412644641041686886557061208504952693244181850416119806469076829658108416320395382645499325730422992668543079555001440139298487110727868896774886587758316670166949134885688253682276006059656615978353249196985515165141354764060571733390592643608859211230164128818710815153330548698196403719604529247274700841388529114899203626544169696890551422733905945679440644941524081332673734121514490922177965238020358463389207410730791325460643779271176407471782446762058919816952994976306554154543619425709447229786667249946175061559110397926071468939663502677928911449058746527099370163505378453531034689135193939398533611883140802501300849922555251651094166519570878466685456957216578309304962748495360533263962622045916601277339925718014225731764051399941710327900321433060597491803256260101662133869760798922771988651406923192349687868290223729465135020605338756510311794695536804185099069781880718717218726311053615830362548259814656060411695483442420035975739633530096448285394242316371374283240627716826653245518626655467037930577392121831740437287903884742555769597649225065966207309653437655942242066389826769497938411830422312768850210786766327831102210471185404101681573718445966301394223587684657334847069819179331405470918292677740739433335351182017784627975172803373929752902484272273951489261105652270975365407190452242496120066549113616640557323417296180723432703773556311554671009796907015397284227752968263272286001744632934049157265306569000639807477991535546861184645413731626743165692486131078048186596935625900958453154582603871653045206342656589771667362373980133816175218066527963361958650017983588455190234301913167973773219884512667131478395609825037802851164063416599049033329777076841513752832084750322820215285270540411211649224533312454073485050924560734753610919809801827437523042518669244181930108782197402923171917284806256669174747410718903679940617387725497957921462380594960624297358749855728135584148524509116465170340836316528930885758536668571008624198265761749331056589395279121388991455535850346035563209709685589956910736964212439031476592549268279981174807003929046519566743777683218803436098516228424627455570834569044100714449222736836078331683487215324485950302874238645629968655237069210742637786647671729745902465356840662702150407749705308054708215559393329060785597161034931221456081953791599146018198339315490221679770140344164606083874214745153642926739832115967485589840940720105436120578652159868449738481971006406972666775691384601540570410401351651023316545948589991737713594918806981786147874850876879172618706097170298748526286954579885567197633534950862665401107606059903996956131449404809281562434984201735297241930023889052987702567402740932465262560644394388700796754033420492103238578951583517688046440158193405809230573978168850974809287191554751832672651601060556696892863956309327084537872773444460280890010615947864713591958985550811606383842583756832038733101927391045025790771740824083433263492658889110439960728410122546008567334811424067339245697530057138047343603484186170733514744925201228131238554113505706385661383069853231099030801552095168450176987097287586558808653347000236508345519575259775589918806694249211355217217928896361186928162031011889713307947310673487034181574442409458858778802692787304965349278543996602883001743013139414758013797967707385022411726032194496524772427730177769009091187448150659949696559878411184228071326075211024268197312409863404325772501952071825088767417894214096336340380198246856718150634370574281754326250420569367110656714009773697818874077938980532099084076200581696555783052604938740398423673348224516428977987919732971462332671731109550233952223289128579481649889840403161231569353104711473147066561725160030299585265298053184240387709095898543476033504542441541539186967056159433834527142652038639727215227199496681057838928897461126070453602866575130718985066429140010693846567488010776454699370509432508304463558403068343594502561029434011958050613164195630861360296478883017316308631634263910820739270810719971515156138616331635929509969154507567497744289182053542829012522168783353739832290519862542218172433082185171593970779215323379130668795193389397522513878799824626211805851649266586811129544275152296697423238077343110664465686455755737118347970858203877008525324877732789039647029615770646212882579533290844312272219426849382961881182606091190072581416544097712527230797392431651008568368824703576566648727804109889272981185601371823439955129327427751505185216653879506466717531126297997052010565640836144285885099563723848762123335706155158999558734159395932535463974485757840057703481865220300719909916802614404887137770739244777987725240872605521891208352925654371514600799891389435798114070105216978033629937788183162900111669216855527747958381300324707817893715964492166192462466730657832980296133714138433209509354749149418313177264484783632840196727576975004014191049194830821826250889266417648779475716076673399602486512542659575725647720265354324968972870209519071942255177136903202193910667935860474916788677569221784837522011295108506219608748984540145818519445325450319658174630142776324585633545510474825697528261671137541230100724155343664117155315704682824107321022806970199007318757669784878915183425475873601840797345216056473749616956548786001101765830427962513062914885511474243874548610405709474577744700145574487734395929752879120529688622639499631983286550298040237524514533135089549150755057304911401175525141712382442111359203317362815189108002221349498830673591390099013986540818687875031410570210000025394695679282617915721890948398422540110293328747852951604426530352771631982174665955390527053763529106519554705159821004811131972225496487185823048574870176686484774388397277702242312979487785078634746365628554015838786588008129774720726882386303845488970107016825796828373681383916974794300190924244236184962918868578417902211719546732262980773620804361709677440005712073914694150805759510515876440566719991966673979777610265186916805712606744370157286942978864589002457591902680370579595910898096981183141294293678455106832437173270734218034904833735152791594316988857973521560720274125945709480921233903344602570736120042300498544697639809100269244148630475693246693927531781223119603035573889688596142597074539273432649631967047360528768208543719572162870629804610096580212608400828237521020008705739492097878149059511350952695301213295206036019009861986245134418272923750842067412602714014424916705030874467230557109015798648003679421766985771014752634079183495831733365715391446998495075416785497466965964865040363406037952829651088551147754361043389038410296097541530633082955164083477579738880670381991663843258930399161357269199504045483369217169796735118453521284130919700661688064272868887866716956843023948128296745634041280914357546683989439968034101958112445645341888170247913422931553274429342168192269345970750375062418497459686284918177672902887544811409912281406973328953170942150184609569994985070907226589205286108630429958615355589038055163576556048422436745990870086631208978335829052962888445193717182371140653539317700706588849763013194942593754289179130227228783722429916080004836273372679017223007138488749100553219910661186902627709818290020083624739661916438183257057954284066029175181872995220780143172196572780020114037137448251914504735881484219431807603875682807475743035493099596539080244364151334457365433674247251630164030550484873072352518032745994949354985200354188264403967175074551342472231601725759109376488286868678049801561745263701653062861766259420054907569310695541592597259412774925172543829978540161674027261743530908238226651739293119351151831927815719177392333299860412728079267334645472923683303994413783157921085556825130821860315700490295501395288721413575706075723344319579234116136095830160144098748606861280552916815586884315714346090875130811786650777397148635004691027094099409170268332659565918145729407091899459520623991169785400665794997266933670062731560285096671716275629827997464356906298054014103351595860588876049157561724410667785696530540264143667745868272299064501057701891577960436546841408513837053533922305190976640178417633845630798868026605040379695928493476938375444122373461457503920649625738332419625118686198388819929603754119336921641606019097420312699063146607708695352416592870436823683795888307918283166261772361685762800528120107950590895367006096818144116969715123581353308659993319440021730114235352800575230556277768070232400843285537126224795650855933261801680975585833573113070331359767005018478291410105195375626853959827994160425637267612372204789777814128681950750204225831298147677055035980478307776645219651630397583887176664157739271681031940503961653066409938154833040774581611676777972973503284746260626237169189849187721452412521758958853919703295733459386175100926469127088826173584071558934402383429167661630174716552963427471766811018628534669786022888243667414135477474747841677417544974621923403403414463383169942535306021954066532403386755149551065648539075573242320642832185570871085194551717248419807793109653162755136122639861425809986672838747664956766263993078360216754793500850037533911952703756534241312276788196835142854752073227622187539530941948828332358070121323266324551765436804010402003786296545804907085582781922241335740911578236221818603850672549656760878188045418854416547546053422559425804845474978055981585109624007906679087972996386464541549389428966654710355226737056524320555114373712061441976748403600009262064814630028284234294953135332932404868756558863321912425934451744807626512435934078593323643193177674377092345311550335500242080139579675873827729773771949101621795106970778110644540492160858874268470342549508804524955886288811470277216881539994782262540955179151233001383371445305126528015274432134507622326921407175808431992505127475575067840317570861932829687490024075182512901204821341879976537029277785989295297709774279730450626829380696735770233950890764783649215629736909458175225002941159993600247845494487178458024714094798192682918002252747831837782003638884132103787187926886633898909218637577581804394883536903587689581581127088780599538208009262298779505444777391727250100467702495016415161710613090472945131243730391985325718943330233142940453942731192125593108473211277122048562650474036545967814387698610313528073879215812285970530721001648112727047901992672305633131314454521170845302340520945130193646905187985903195037871583786360967256186054339010147192038647977582716995830419557888488513661522600919018504635526742323087170731829095068286220155004539931280318830504182254532436435430842646277086407393942030572040121531456978714124347549347883752669801764585829302972840409336540607369406852715978712866183886890666940313470195913785071057746181183001825174382897747060423897749291262599281565501371476978469341183835143402372821715202623867521430448454711367836625392477492248378108198647555915154308517095481312915444956314184913837291449677001124026272616530172102422569814892206472347615696931256951402634171102965868374177039656478115926196487135825840780955045836737683663578572718400363082533225200759393302154836931666051535604675295997375854902444452685885070490763638975857938908626642809514194344152161437984495703663582169737296838526038840586329641185004109489824310770249141072029133912448453353556411663608206392651945600855385038610479474743241698323353385251989917600948977243657700623019402441708659559254991267645382107628048404866141928166822677483423953041696658637034214532267171833623109019169969430878348458109536489209841673882957697633479339208417319432505281444082087572435428124930014972785495596876298257028801257754845157561982806500931193334829075275809171173729861453866894873865907426171599941657508685216069160403364756721335603585609635823610753609684873355182308965321916883687694385977130636196489594738212090174725260885002235489639472908439743176519921365463350797377262946833601848924238507535105151550865453001630649584167488758390408651732850226932399881987388458070599711665528867443299326306605401991304209958032143176632482659074347085991335395031269480987218524164229117925219254768605661894902590668685841178771570937398303299853528233551797618559233612667438989837799124223488550674768076618818772097333352881422118593217124135078719814840116488560464555833793312852661235333404600642481063240356371545584172613805681077826206803561382050138256556924819970196299954436901855763512787235212666724414778791277626802100035553054822017971736201473719754012015972475386150129484743893908664674872968269895452066712153933830902475654652125341310136251297187077595606776721604606041536978395031221449221441853610677391519969827508491685204091057907124035858862073193397613178276970677369751423972495022453974134163748375762883193697232031986620497008974947041743749879267030172758412188179542565634206242450407238239663038801578914774148331608426632358954558097140739789672010768893506952300216174860572432691782840001846552341813519581365528424890156765767175765324805772054611640805663835520219364249905738382903918626120179389957587941474343060548916379028321080592087753562436705629518221032730541015667372176389023405957991301762394021234317966054237557845905350404224840003898237052051737177335163694666122037471486500653659166210690929295583768170717081976796338941165845453899720349766642200786820957701867823308003399096162582041219430593068595858047025688447719192783403152291966853108621781826924970690126295436935678988633921857324014094524221745918950408633713624511139267297020973783393203562184005161860729919377838014800472928738411518033398089771288721009536617179108444250343024481435008564770735824669519592953497172635329932443861050331870480693057314043702886896254672154149066610581749393892710323293458619766394118627716191057895243264966410595806619072484872111833465237535747371151586424395856170952075506335883630655430480891210265827677540787747886889956800038230967818331590269528303825545971516022290272518128635478194324476315247980545540275272927236132379402639761697620809741000359962299701543912181043593870599836473031762181893813375643013147239589780156833894095043252381661257246134514881764459365520605353807960322314578493784852337492347601918576083610010817385193872834572301162573086632816740702180513083374617664089131645668191954393525966944029370680491274629223094628888152269993818463677166185429813677425599953047984862146605886936186807702069210719620180955499431153933674838768717209041595001897605355106394841673989786476662172979607017518422335254203404003591057811271511671099385074654981538866112575117383037534449404088490052365500383398301309033553547211444928857610017600947751634323783135843556789351980250097136771860786426232479074232786169647890148623023430626580292767995789785837547841553117252647042193305734118151521941677506933562565513673532979427732183498778969886023674848686122782784250611610683277256340816520556566075908690791147918821825220486322342367646505504164410702948327330333938654116433586050950629626322043213169384157976116060372551337737968938682377906332601024038189673086921396145405094332963504099459757677094574499496893470760638870870382819591056513498843203943817510841883466119503172300537869429892960095568780206308943977206433795286597763947025248438128750212675406560498014732086142457599561135258175935521879158164321255288265910769880078567891491247251278470758014874119495651861426671076478514592874829695797057405663278812074573563474258603004628470618834173190092355946080151557810422460981564773910082301115992751460444106167683973760516782425252267680584698746584574431955002406521104982555437807617701569892025604430455551218840435494319435126714570826346601975230945489530768267443334476112081058078464936039218650341476843704806000196243824269216784863084640236531988090782845398125009564500249230907749013462565513389693732022444164789605097532953656917550041292152766463734964289635506075022502127085041995961784942126911512822471391169537974761768062936671677153878663362827102298304284444236887279488643394560027546070629059649532847243410736792028835089418679375218953986081324860874321231803689033991242590100337763314022241079040541324325814156711569210175250705924640351032302743992929676145912128848995659334974243718236507742320435563989995248358732492722583595696713765177195065057530843979434119910348923404627219085375220781803383055270128717958105947718958928808417170172829663838713577348173766366035734138153075125520919027175255790081296738501252947155232336758734097283179956904598827466236709071936661609982396537632372298670896824845753415707778090368168379313959365921312454217813838765128857240592146627167637450163124804953909949798114050880297813541973181774963484000762154526897524616769052812912984452607436315251025746024427849900962801282506418526841534239151677202366895751387729987355399067111121171661847166813101823398139257963771993858140145516616531514393763177725656175321882012141392068145748921087547276871655245096737527264468170061285222759449731558119166620278610302937610035320692445823375934908701700500486988010025862977403992541571677382366913291267701764301664215865591271706652182927352716839047295523081965475795789415913728412642009345505197242484652343118088959639868333865772441832295751513188666080974745281572380030095068728565043943970071868222622856217341387128614704372649096272965583759128725050649647160948148638025655714075332986213814395111033005606315749471505388054269278738022686666294526107794936455868319593568983749701233997650779875113877393565549417243959746340450910334371686823230664112094369379397614308349898781331442348939305902508560696429030836055603583631712645619484065990198887123410411617440602155680026789631340655287412367503558763418307626312987811007683316048647927452445428335359325035801885160190984396444434434617735866580487965390976397688047496648814048202415280287838093728920167922367868849333594079539543391550875222827499243669400544090901362451278079894409604728459804028471202418429804792076444333131158689475571160274224441915794232746693276146285452685059795345788847846479777405769918113619921559223021369567932867812686402372870300510318955974418537990240411072317947833410152120539690492941509203840878118018294707928232772581188144423721535399726888243299714137197425913417089900069341485052152033666568724470908942101714129164738046919563306156816705770890832958043912465694344786175165423355455655159134633420886698231355846292915446297382195164866540748147677475213393713032635651060973932622710997690393906045911603249455863065515279398391310455873152675272646681101854657367951271253955134124313310324308794137721388648990399371970354403130535053805418242572559955557543743644683308411715665984254271881992978343433889604761128307060873105345525125427237942020806854936447338389396678053166705863617724205977356179695705637707832392657788154836153591610867871890356308056290532738774197734711505761476735214849463591669656973560778958043306166216369005289472616505650695182648820440357667057886492894328084002457817678779879894183237015855986742604757125483346659252621968995006269176760711085437937415292769099911964097077394340989170841244873252939247919853222501427239595752536344532508585027512578470636529449871638132503512763974371158991957189943760486374499599743746620878890172579004927030117079776334865852252795032817678519174561844226099969937950669491054468539089104423185448417835172504822150836510518477135629682916756642115696175727924557019091401552068223879194470665428090004552523114341232896623018788316097348001996135369900469758710903710781720514679752390574540819276728691587170520593274516031375188390538740588610157939148859331141156872634201992492015103097707898529873521469750458303848183168134783130638735614432059620799013158906988731565796185267035219474235959443245459946623192514309495257673044357810802212918790714581079008416019163606594726242996278694129015774580953433846465609958281328883045696309803475257081137825016802741152337260550570097428089879040907265547853517592841797202338377840553884725531757731727453926373722165731168343751119522648776262648826233292521874276143257566675877760376456254800265729102569237287954296635196259199878526219925160814162974561311143487826638708232324082942039236512990884266481206875862182605473971436562778802721716400937882251525466251385721584392474062013960144051940857940229135125549841887671282016829120340296571476544547181480776316002884323901749721649426493198671370083999454969270975054654854032645428403571121543210160017344658419841958068334327693363066850010891323320245082771781783426685232127993717117112907858459596144100346201274947248002318302589798361201452650784484328458499036298641285677503147787197206975699646139108410744590888978395774629935930179294022684538202328449477107108329454869881068614719976485116911824219474808472845123018246377636360757924377465791791816045427258218030125253047577648948471474037006931926869524598973127316337687354841582812631770837708584940719632998847442203069542830531817037058213645740276165598567941944792534323205746799648684258520642419932696056427429899756180471494264467329362706696265061694133887058606187211466362295191176129680583648674753428447073585714359397485203178545582566352898110816590558685067441771761462762560102395783025729427570492452160424343674600993471308235292140611337120286627047911085352235323780946886013556710262025924916841615874206594612219295690131847391081814406973279423401337324964746771168828841524119886076824070785949479584305722290937807432126966379079220687905506520186360617687139339386332851281108489764474005425392881118158976514206913302606096993359558669052809657869836111789144543213509471023053947814614177497826038807855648346043307368249817473926763767544344879890364875925200303458305957762291775469569369865539366995264782178173635485527514595987512208322590655069846325039020399162181327175985074331020644300126084306453614885198058847356597523135822283999644362887778585929365794759463453916555839408563191570249379144536410840100057579197222561938563426548259113887719499020226336921260229883358591624287789840582100380803709119096996191671632933557055821211065468474884366037248904116441614817970458094088494521503917725315290991867161949166103947092298961624097914534303294770457744307392229150099888028926780223119995996486352727474060335398177570569215816030747079864191653243265680316779685257005862313667876497407342014502500962990147086543245146320913179805934342559579327694114051757421959876285954185246700902791757516508485624010595057473336261079357876980095611786161479107075239139245664998254463040498478419153459950773765344668977672340880768808997220816087607833638311676212102830610094460170069102143595547486907786448799123310781470532963253827802926760131527644058568057899120209453514130033250725946400103837593041489234061153070365685909835573789351608935252654616601058437345009385969855851151032030137783691755259111309057499953595937065837282961523038841808323582996904122956344252134886769351302803610316609833012001032073587941505386595478613208509401877014728752197347029592251813230779106667398487159307983571226722220549363277007754442239363484643753427486303469719103917061090529733418828150248007857903093779890266305816753594772544790647007348860610860340020747616652217431817810115022499136116019939630135619734649277008533736968372595438330430352512304167884846501158571168715865073204971277218205696253490356780194354340931830488523074667677546421721241953435862435325473298834217192924250035568122400084116853605911453933360470142286223603819735557587654612266599334064618092569343965337216388666240834577148651133973878223257912901366528655725499204090055919661981906927108794170515277132378734040827386934223662333003920256882428828364591783598934616283819094419821270655232243339106340285417612746452797753379096490213044439477568174334350157983702968583879773619339854508090577865846820819485776809808979698835909715210045113324799876758569961209257211470938944477804280620701210179890502723253168950207238184987550627778246943280681260780531742246599226545230279669932622378722854364239831598442144332410869721715893181062886810632319127804964452671207448184830491002350628960167829903920905403410606901230515687233335035318825669250473480535227089963064382124495108287540560209852483351694590605445588785880644165984876225891024172259488493077361588302339910114241596661664702704567171334133226303182808116274469365174864473664321860930586347009191858674477404120449304209115672615890085681048576532292981327962285572546126656135558332525514651010089300853319855151335966919171659373624047909635277423063252604225101686271856691624665099534759417158903934145906242559250625442149641661811411035391199690929607457912554620015880663548647138610897034061573532518054152639070371513109631701713459115669850601050752071849036228818028097549048240397146035373846806536536790120250577172950016819864259354739482592497963667515242815847002204921684574075031773803899582318005706186528836885910866725161157226174891674408271478876490818582236579543210549661988683315024626506342986584007272028647296700949246122449133626392565253148898037995480453418248631028645303390397907079173001007100463257854626348283843822692639317201465607834067353953732272040327233771277111711327371221410744996757726814559861607945507583015662188914494581618717295013080023528390379596802804843306937740895598632539916904961604664172959478267947074585244218748461444507508042744737038553477164701321388794967579776062782494943398894863146442491246899781298931826240579221488389452656394493599722452908297252733206276155101176625301027186399472985926369264285395989305547252091023111972609490261528295905778750398679740834581872417984806936919336662844090283802369776814745317759981040918467334432483404030947951814472218821889147663067058035244084974270711180403947267993066357745340735950909556642632593656687289951799667237841802664619174840944779327840305731544176246194130600987706106831869872233448163803547020419353538454955274665307220782089289226555951829763602922772128603375415458628344722546355326537960180506999351578118961570608100021169545004770131728054375376672450601090809478011646906706592549504264565201548418281122149212317096699961750826004659331247325359233133896771791403619668488555582243137875997932845445148614107386447777364763851275217791117394042353514814819511934718817012758696929373027174293146056545807765880885495690132509284420340082216597074557130313840425476605525020196816222319600073187089997333858995456075990682292577517773936960076566917770455798778795761106762583679666907122689019850388205896790755331669432562224924327632537826282664808142533751167084242709672061433768762520007799127940463756016890386574698692369011481415565302190314440757542295884502923521857261805475786742526533316239413009719095011929325363234271659978911513186361588156619716777323465564918091283670389895397049860172338429470343199300753104227112884825822867731634187563563270463697600633320095140035613406261889722763960842781775044330143854939174049723937690099912119624149827976372019578747209943654745939837556241818490663150703084415768012626656955516952302960968995201262688191051236706242424131301857523729712144891565909778515757355623451741279011340178496355281695003389030119743500799815962030338701303044762668613838265473062682070552313723442303065950124490173806027993751619969440631794497661845634090829306987894914786791552526149544557489857829788205079326816332483440594579657455397770004148339567412615891616525392073998321422807065035851918096547034901127428938641732375740482156446896381658320333186170541887232858676031266251165756762677973584936916173181753633861612061645917591947755318970437910702656884762530529004757082529705607167729413325717958217936708269450402402723957560659223072785026008123550979532106064795862568178488655920030960509204386520536018448063601371815530906338951533464293308215014910820632546027037728402520496095215434445832698039476243816728951706226214893094646070320282800109502687935005603779566267266665493921366265134491253848639972201453484871395499134388855874860327164488818567662128706687949063936537499265519333196278820027307924086029323217353952277043241649118018073516762987112802898904928094939824026113899035232915418064061407909742230754309432645199435281728007315870899125676188172988884516947893813247302882600968931670565605096737021247355924190694029945593276609843268528868823836683841247656665360458705296701596890518469636665270095386384993709224875355157282264766284568951607906347922817321047115431682227426266779162336358449467849952509459399264685587576443038228640435581553749655213318112673317952349447905570120363250729499398360312199029589223375669349904141364227558902502817137072840682558845757035889891094345363447244251260320694388392344293805311267875499507697330347593184260867479463044638117246586489715094748912077010207831672332315274841581440742781820621177407721819183832484941222426096600830665814442816302047876329651241952764237856703451719947342668969651229042768307907227540006170676015565126871303159774172051160089505140311547793436950776483475513435107760610469907105563878621766598985995142247553981922793892859024087208519787128466104630054977238164801025026843281247744712959340144375871662549909245906068154372830377599072252492900989117003845117219288202466725897966097328923616052031431001388372208233277153788449446145330039667180184518781568647367308320275480057700818445220546680137410120256881149338451230683290301524210408794860542206061287667613789439215395512712617058733386977506634532665782690409303429980394993862745308089864998184515978532151435966399893265065847266841495861154309364775228854006462577442816824063427144435750690881538461346755401866117017092146906623832936473942247230760853947614624242189161379903194480081222108354753725003925412969177219925785991690906958870664100339011729749806751823280076022261020768706278329057418511998448735852299259359803323732093513038553799185611719045827115072596592594054165513848401019604388964587835206922083782098098589886065862543707279278687940712324482357286184113146444251438766936436126580643670620447132076072583564498140943500556746233828504350501903135597294584891802389971241222264339561659697973001771230812920545034618624574393842406445679077388106820227570618276495528163860412669826530127087622546206177857316471139903736850427839361428435529662068740717847121894489798763465646757722422361370494316167334632961280289818680984702151722675001134461456555953249980464974092346421713538877200700261355996111082153571821777825778885563661925061228289426435268122836999313121074546473033380556967666858131886319610843480608668058256684785118572140186705586011259513495049841366080541991801764529835447433110649278707586443126982554683575576747454454528217514154131939757589908405016979667375146041242995308772386992461139137790146122663592871718506146032577338816894321916439623759411612557750342780394620931421731926145185947185248334972677910078796111468280344147669641638389718456607935970091003281705295991810401088840215474463978008767940799232484418746195436591640321694365427563394673857373560621498429157366239149652289122060894371482999760194811721498434510491106761924442834520248633681159803725932179802888238852345801362126328897705342296740204941419498279898731882088833802468660609009172064603692710592059200513114982928373654766355298610570960960174592956650406731147647075821237408554831536257316680790812566363813004166963124024411509586632490406192053307115340092679549035777351646917739969860404983104520591969595441631439657126105890563431648030408128526437316268431166948741898241546623380369290022781257901379136767733975188254244777352954872279785472984229333730303527611595237306975821712021046767998144710811502297833326965332772471371641060913417386973923230070545555180961577404992713181583879192727094990133934278412352401104342053238868090451438546456171312713130297105374116744222325120048956109848874693562757686805450453519227922811248239985312842963555293358811571088137795225194468858506000128829268462644529074925223554976841177411297161007440449617523278525414324091172648154060171442773696380284010962326275943451069576562642853861470107372019412109788501821572809850582259453527245056298570544449867170874282639986609624581511338020801611485210868079524169970279458348411554660851211850201721322385127978032711843269121304420761876200250303953251584606254998508547736706194984665105969483423545952057553148509620389907590134316313472260564961643916974525026425244093225263439366674823969039076171144630331744289662455167825566973743243231868543247780484370124399391390366826642606405068359611039414099416581847987756229516488692915138459094225709684289871513110737865103172555980290101315558561459044116297615430286595734775665280379328014759133991849427653722357117726223369090391906930315321154018125479159309575395850092789166520213032210297013810750562361404557322164344121014529146166382490849882327437187778554774772031557987342582893889916750406278223876515815567448798114594655695317648367388043166433672262071563677889298548586680912927132505794661442561330454803685289382635103468003314095768116410478110229362078760789645859227397059675908141352479407227535295855148414032613689787126557993030750038227931805977567451200733750593428374014623615502814298341234206114987948007976119284836201641489157269753965735746992179872262377364198244465068319007601522969902187993595207816743417570254751717873827375759320825928592495650854192988243674710620446750512170519071164175280887970365249928448576001397766006492962405709540479279458076595796053449503909831322278475685976304792561929139730029322186051767129392655135500603382958190502309470665271098414335185268226815154500621469994494633364698448023528188432976972760526034357111291661551581333196155160324166771300659379818931474599838344305694969897048825463283941975098395797259758581478764562795176799903433234748190692642567744933706190635528604615768385273671863240836272827095631308065277533683678551071515096805176048861395086085480458415184925074398099177108747477238391125733619560822614445001032419088699926182922528432661025733432889490806365607729970038890615643258285659978550153934777380929331878286849918003338125249444823372373573098757733721027996991476270969932734746041734852208153482502505589168397372128624964291355453209367439487520176227703808180577624809570198793559065498661341720490171031721843309593018966114797346842432566810087873863776568305702402392317471113979883226408270427498921920547828906897949992989939989125704470321680870787070394124715665917098125910105206305725667926471624434823899220209171854539449187054396706772891744580503855125325315516598881500347089965384611379222089606155098857172044727494830316084402328242743765974399789366271140891499848245113401713318450081940886567643668369741301279733430977276789602145981592607112865379801228745208244144491600338628518491886252567868270309306556995710977424894848034103999898983219279175932459837970370432191890201592358394912210935292927478587425450280024602747762916070465207629174975520298660825036372901647383737901945431403242708340928639092751266114938049752190619654061188512649782082865617131235677505689438749998817378531607550684483034302069879273260777302568177195705587675445778382248459215726829399062520860424050347327697311046610532815801511246671631093257836471318089732425422855835021422763864877761434198303369996611606408270462247794430838881328665363252540612914221332732979213951694976390467711223377774648239294251053135355186065655583476206993648769326100243762365644338383308425594714120050139674023471740213545874835843676428376183958109697080679115532023764359989646391303301140067007546318388932658833823181691516412600167558055838635273150020347062887178534367686374372042424372241898764356454320311226326407880783905010075279091973799947238531244363479316947146661228989751750037921180100338288285492248423006086797236671776100618923176967905187268409061571395826722602142764369926397612186457221092879026850556034787202628063901089192356869416163918178034518591228088218437703262961584672636394780373237741797208487335614819517454408848865351651768318164425743265262395085258469712687562673370202282005815709129519252171625705377952808691996456452937086947249154523639184394159634278695137098137982183611497549207709895179667392365804541233834334342997971631424296861541468364164073642358640869963144320590124502899623277730919239605304412690480223246854807408321360637604474378650633415086352645859245890845668975379730066649114096972736688879215793409036240891424041716448431825678797615781262616463253738726899919894616471475804969560883437461743698974075268130197688516167506143947917043726267050202390495417619677070213310684789434186401708903105716221457790767226406268913512653107005557598809606496835471852075437293572991782647916048778091777792506697844921548779799287974293891592463919352492330384330206824234612311935051560893147133238638108955235282841442733747074501198227145379486917660164155697998948673117673376247731126477318451209643147978244325179788864435843363074970381054845698067959220615217046488430371073800036268177562272244834995865826960106367145400162191253864065804477277265963636639845870530319788981701571467553844288711312408688364643273784139216780043183607921184120808871252653762103983265116863767594376013160653392315023362055238031576936356669416597670900352342180242670008908641156206080180174505494601061151782438278039204088401686534664210997554597705933852114352354061141695764888705651472563750766038281338998593405344966893029005681622319919408850961351609233889878349898161447122608574616731005346549482760035927602339760792646899069424420765622942129777219726467294860241375489507325222092139691486206026391786068717976369824198761712288402071942211607743429082142526426564457963048284650753491774816976694503682524257775855063399397663377701994228174816308240542706521360132923080429039142782267236891437096691924632312342317883541451736218654344017870441985711622136211412322145158475883677373463212875170032910924909158755647621407258253593918772566121641687265809613723177334734252678275198130292908760951578193224928834865955486209426519789365466889773204117369208052842384389550890965921306924630782733096042700634596451292568831004119386424490457831604315219098634122911620909193506860590143486914438433206881250071540106943334880590823924500075679815300265912768547863143110008989826328326219693325165594974268493972695582362799278173042712108534515928341140477904961202941154105474279991486801838809714481225964589342759906030527484940551062355678997904286679212865067462370096379112987079963704284600232902483527595006491214275603128579404757908485876673130963082391887480856375803346410696351424714793200055312390445019177135206403954294829817943522058789282676159517158749511195188888366849254322198369811509997976441676892294492910799766599828945134783360297904021534968298605599207283559292856272065570788239859088509980137328474648877385129904238783368322443473967451055302561235930885273677953737674885275751320144902643394790568883863236244615148529140279502615838727617901501234603479113106563987486024403816140305657594115601519694775054399229809841959878729871194621120016924734430884695541054673829862391429840959245512098803677131698750274392114002922746533796873758236028991808365772641932151924326319436024368495243983105900183950067774808194038521222763872330682304593887489939223585349298232609090857392132691936606594260355373735342093552207713424254035878011617672173879071122211901990964516653766069412777718440374476259577807044932559966230572141564811493855622835700026948221886781210056285264001641564610564975622053808210788317239426464137211041674603188626952416720321206999383470211179256085715816279784806342131865967735789424490261657322214011946133585100823804498822183072041948676053437154815050226765317472298471438187629155518656682922993068896491370587106779958289403603179885716346289576726225895896768806266839796354611528230237818075313118792476789261735607792699040862163223993416207498638978668618026563333100007871335899301633976985128753443988049627376504091263568695495901456247000969270645894145375984791733188123293905982601564050838583669973969713801834951493945615926933894929524213165107475446791583195326691978564808288533843190477928682526815532560965109067081102222405672650939919994156497485772858392051137761080579110542880276506986659323515545546373952795125487243419468513133134981489402869667010202193586747329398934777765127887885474225838587810562639883016705186570302051467114883921487743722113730540669362695193845940411371501440018986682307416617423079159084867992602733144379012449949938888714536601535039667096819468385068695109933761220029319181471843910625134419995908045812613800603002517578623909490737205400812834026876346641596833972941108465807504368838720040224993788400447811906125970257684538125824937071234782137830783521019081054147983077893253359901648878977708695160081594019030044480653258989119714257462124970112614800561319707918072652471128287275670054550911162736538469746016666168371405025364182682165431520484895128538771598927089929273384204379430095158292665389052638303840829357664043953783204215148381454244835815426548559943967684379746739337235076115404223355425122685975167790072703487236875173476741488601166948093970478948545951140993418466790847398768048271832813487040111302488446170203609615057798101845266112816402125945118865530695904951635875278379679431361859382189040817359091195728839532434554698363838326424743640348708081556283937715374773668509184058750769789225733573059339004471567741220608833963272677662780259019439821965126805660863414298763658609933888705435814319750336227953707953591463316563197406471253118715063697800386309423316123201936426516317035901430936072705165941147571286913464832086947102618300016805580064362961486814039968597541619907255787842430499185563952935680953070752230851211663512452441353489799475416921915427059390215171739894195558560279909729573542068633500466724682467516329755327263134187430256577816086090818900304939685746818733544961245321668421942559017545279715295646232423601926464089994414035782734104845675458846972862270728852946189594107078554213917438104407026579020669875520704515677265561507262282093309761736523870085585226884931649752852667592235626212348251740287106402494010744509460504635546511770235927352105949981352503101885678066874942627277333381858710060760000857116028295601237112576338191615604852114150656165063766380942356992756977611044014819941626448270019477776677595208223140920798261270314470791491416360762955983087733899040698071821137905378154473949990422745524391723263523159703480937756721839156746265379994968275579518587716349893550840917305776789132715973981769234787524045354659581469317952948470672605932129303907941510820884587994562883560921369856822185665414407949293268274861882379006350483403449774226118312103625589164803209003397148007255989618889366374287167185925425981002877758221077656656040059174315780106056143721672514878347016383277227844092527058732722494973800087089766524783633033745341966252559051403148834421898618327688269852047678504838890443832600429527168636272388426544980958949833084700801643083219097724441974534246584868777078400749100187450776436462070751927068625307112637720018055318628776226782254829961881910099004900249132331627564026887452293190093178967021037669467014522387821899235252687421539950198363257652620874594117278068620233500518597510332301818534782920184459802632269061795954937589504910593081881072558837793029949465030856042869729874956098216128638109713674086098882567874396238771963270348858594380436574949663712758655726840349554506179132342004295216289968458911891563688825123896417738668019378756964101019139014229768234614391445851069226999800363963021493131477801919420255030012076826563843041123057893099174936735521592248162622038366480122641357268659570503278724808124682327187450795687371513396876776212306994967372864210755322952002761561436301768518541817675121808517953055897297249178778396078827099436276764297834288444529678905813209943187073566998061191874539962212193964844581862441664051964322344132600752752716167869789088663483112237192556675510767537791754405353417650168406471365923574112618137775788277321215835021465880034293072977289549082532538326399860617746753715668902660149831042041155201772769587387124547595670254055481831657144197288436745805217028968489287832687981875394907956913143705254972913846689462828759508530942447790896178737558844981355905909490842313727423675317664946230712637935291299389557866090388103192769538580867592309300838253655216212255254189632467887881080704027906690782324825721864339226422674866090882342837515315039738045022480672092445092644259646621758666063357494732587238022932586140464789766234795878731740512626968819840921082402876183924719019396966928007607983789331070782094846913210069513642652205205976107929346990915717254366961194105170905443612323655340838800104337399869859690734066955156818220652734664363129501193132283065751874992724253406229736017099278685187121559186628777155710174757350933190681757772069665038941093933019495568316780513751713786477109606449541981389635764760047691954181821568650753596757225931608606489431262218147333755941990630727312397144122240057410130030354665310651474886050833123348850002215435153511125716018310305661142028135479763901838257436970116263955439656711019187212112299814509965387260269636046868537521620146130995104799561560752295851963100320894668789150563713062210236045425070456620115096711580180092417467184592871629955352256921035336781168681234573421685114687696288684243696495216142739866224167053113371509630737200453942277598961432690008043026015864834693701172005522930804908562256587643566031990830127133896140091722231481783842563562037658929564700417850520424621218561056437211748552676404237242648417553895188151074119116551096039520235562571856083682206809268623885905359516625709197038500855018724348351491612822818778732192027630183943152914541767946112651496217887253691839778867111823301366880621283060481340088103314448354534173198545575149732979196171400755049714138191171242235447003977713970554439548829966858214754166033861213915338079976337131236586071880327287948589793432265196271779487303611136750867658672587539827661967521484404411814901072491301000319185778124370431748857225091414666661044739498380653422248533382326177171965195688667459553022718635624167637021214499239906211645570579365734454730481705763426702470446980613519499442818596416263376930529413978386892588999111812257590395651391300888166998476951520040913869733404342974861524931086536916542345716369100175985510294283246496837243910328392731782246277992219118087418655342276180704563822063739741062644355472747979297528674818208971520698292623327189056815815757821810309021804133985862574093477145740291503356436283846769470403932372274139762276630540858988579183916108352844682211006809780200187060072847870379936361091391585167750033445846819402654042439030100347786843246389332089135339676727804620752376686439929646856422445404636338128890266676765888825787656376419536752248419036123248622434410953434907479736554480826636390316435067108882012259577371405465947716567083566062837628917413143828449771377914711855601385870548219711305225821806181615701423201467113212458386066383609417904779016085002938100957650273231937369976032090615064278688823164267102697577488937021838162149519758085562994606536099305477858427763510508099859776932275421222615543792679901493663867334325788629842254661209234604003175957097714359909314008568067988084779787772785515889530362225641385320945855868021050266258473843816717876393700529611895706884908433211186579803840667857648306490542609018875823706896953753469823759420210635955131178756202370918201114852541989868785750642857696388005982684696630164913322246596764993439047631963209844194353144177777227312592375071307020789139343827935047163386006952579532358274978354956200242225375044055597166182818576650473357886822455086850433636364154135782546753992960623704002620024965840281927416516507971281968292910566795281214858450349974093313779034158848774663687316325626156576459647683852194819601469290918292046380761778642695031703867901670051299105078114959200119201377152732622136416400013573549910179497903129373859900986031198874104195688871498891726907289129841885659629912668079962765714414422547670981330002894218693916519368800258566489458157421688036722506770239311735948011415841297137788982990471333152341036205990686556473749541648291171317198820047079928205091489927711189532332938881867501285020778777870546634908764300645112647961736247843259595673291217005732131582654016746827393398117744290706477787801712011586379067854674484720235445421587635889722644064746040880937757167973756683024249676839873153008249807397132184045336965415147885798341696070862206791702850392903413025565249516690073762999947255578063886654019012097846881638363178884650947479941306995306937977326506402199096446235904901211212477078118208594076877544750738508119720265203634558309545337209794507043848373837228004750776934091371489885511355711877740926774917910515606106265977758485893893666065013110414260489516898793426705407702818517433866003192244072469775870121961481992809525396628744215572393248014213765430072579812482188895717471824580815728945554512135615768856339785610790267950648268435501114383975804362351028032540914513226278978162953106456541306642301918205406290255667209512709372034924355731919770688015690098476390674488312407431163993563479205185381373826528665882669837976930600360721255875834585578817430381965814099705974105582767495107015763644756829997259778209054830379571762984609628932157885892907042136927473846027420896657178678722659692607253914923213698203447917479507903271178809310443945650642990896329503466224196946447243187805951059031901303311829128053331129652861415714124688565384775205550578193498557867995395095451623476349687501018751268008678110320543915240912118614457809644491895973702982113171185583489295605838714886791971693602780524520209868465665343549521126951129034822948397865267472006123390293472866045207649450996573770628706865334001613155709078299190441064600337177210927063188935947975744484496449406477974145953182249039699642537526345831625075153328343023154032767962606614014283248116724695162539929231125126041439505093503420575602164687418501514220622372426552038611379268568699037083577008483663369926261721251110811713378899382853490845596844742583578546122075754202795193993026937273176460463336306373896180031170753836298155295515762167822200989559661449134341197641981154867578260221374400419977224596462494176265181230647188376513788049448127546924925052088501433298410770961471181530898906599079425788401848650714044771068204631530169160330295596383269926181266627107561929719958545182125933880573939852764158366520843885954575933260871661214615087930917742099628551915701151536869731165527979096408935540538470081744426405172508686914333279138380038293271353680963506686397891450828501202679710742357633577545678965271933814938810521211173717508756653204209219409826395825085357722280371171207959705658157715841355426637288676059809225043191827821580768057180153680721155301801542175754383456080349452122306825306681706911005147966754258862472120566522036093706081768276869786414254594582424398921261044817846898528694312630130006266721635736773546544434703103106840358318809286777567301114449432484818018675396906850604945363547147600941945424953155708924621723943575389702047528589045589949258916294752009429909302453570480770123535786043618402896302161227329695483758782235482674218742334532983620953278592498649734093155897306910293013312729806263667787560359418736470559288051821324144485577534404525141472854785486469974750323689073730803086898484956950456188956746103062901799865898738290624959075359199531586383909400745816419690866118554225892176460004027293565350809186126692266959615612576592202425254411608944405114761489093547016734865241381758660225369026399408184759273060595015693467960376299853170050443729738555893823398623090267656423313839555550616356157537783977577465465360138900449076066415155485300064368326563030762647777222987010301930429182930031477461593786405575125745623201656656399886974743165156493266926981277282269520847208004760794144743436053375810803640748096623075668862109780602012476005866172026443742761916048882420692596741948107757636159563978574154239650572478970122909042976504419780413081349133731850200358327436911280577212124979245660859580436333178408701044943242973770889192264927402635691931455893072627488842133914061566259222965272323397326128628487603395533516568185910855844937954597528596764720098647546169246552386884167761637724871765906463905321066153486620076640414173770256786227685799178036019190921391266448595477639513266159928239781894828287482330193102773347019471810970864769794413130163705077092444493279175055326231553861935805188431994517801527188115651366187268550820105020888456571528145298656746603692607457545227738885860231915873647275156088736531246356961440305943880557691734910672321483101505221829343646486095502542992069093845133664435629384680936321232200160298232303014457034466366498072003493683859109761106019131502913689065344734750772396219320228817807338628872547186875307734587320657019145456237580014850653444253871438467889825136359140539244066443939839506700914438588305366316996065095028802524258556837355968314419793690239150955157959589488835441251924044823430614980050993227352505257172703993414397098153471763977343696169829658992553693836047695016552747039379451469899101690819851225341252910884989589753570310263426688813233834699478816281602819804343360404662382045363297165730955117267373398299272328317493597186260387070723382444548407811342115673767076549917765347327771447464617198303681544930055955591358384205900715054572378686715596352062702809022967089506511406236676608215659147885020004982863559538220981989047864570797469605861133623746648492908289295964293779318938609001395134353407289151751275575359361301938627102584887757693592743894584134142797592360368322653309765610169557063849074282814768866479732655993311596209297187688532350044708081124856094806474951007311888801540024920347202509195319548614985539252578262710329003746086709660943583123345843675767218052274081258401741967384161386562632410294953078296963755975005044677074227144373242742586947079646741810475210218438875495235702349704770543914783374423098827272406934513776510544741297961169567761681042789907173910342979296847328039907094754925229933550892361162440002969923441747450642487259280078651328471130510086293242039771393565494089927257006416700685798356532522669106529344180323648935944125260487672570664006898482419962153090380827109671995165479714580947839474845413198287496159154070725171663340743887866480378181846499143167534460565298512386813071787224572101903360178938149020619867229228281336229614788554963165559638860042540403448145485683327100251302258343264956937983067586113803146912853031538836148920715345359133241362422452022969485395060172889953057554233382687303773381670811253284671510562916506177255815982410774450428345061358691930061290722258165788523233388880537236465246157369358467360934697383759181805837553880990289858950670422509592475589958787168318640419104711661781774828883427568948713440461343882072377059451125271235542219037395037865620929845188633765507691504591873284887935613654549745913263730479007375190954356996448465039639212046537735914716060559209726878947713624815284358595278504455952397324627757258023867118439618716354101903068933969378630288590410860921361718476559808113664583420003078192465098378977443134485566149920616569605054453864179645723915038752717402382138067124500241442429363415682361593510862237133044932138961314750941301631194159497754219701724956571405245449679150463708058365945504874430409525811896805336754553114463085965324825140521930845488178261937728357852758848649420660399494947422834345674261070894888637204180103102834460955027881186652588199855932831313198456326427747378665839533362570477747424759511574677186547215595664488870548371691246850975058289605964301909450013620267359280082090993970461434041980825580648028185462678700891188308129300835200289104071141812204110679486932185770542426112437537342274833177590707465393485789009047399682118029215190656150508432371327567992786956039826573878300540034308562374411256991971784701723848038000772132893898959639415889683158642858269404476433856156511130956372174965432547005016406292505992139144448188271109612735646506248512888131535286208217586853244985203380395259445324696916719236656977398350044075759121182664546462853860844380626645307212279427191124298811492411264123232871184203199201491270474109267180412803076707237185289276256606927720776840636021687920355596627072227599287479885822225501758399001952954675104747269242067251641991051335037700826438710490085333444532713112436739733937589812264356310816155291720571688559558880733117626245401588380662626583178098617348480012046269116804341962181004950288253547493648071505039801852433670481087436378597424856606586717180513971969339390217663789494742049444294661369859149987981973530893120497237601201674247015303261792284244406607373674612881786864816251252841730084732930274086663642282419011730667149323286160063952214896146878370121034809048114082396498681611758652370342465833777975197182839061978110621633110979608194061500935688669205304645459534098236762570661315484652026033957060762152213977571135595447859616236166322099957191930562197083254310436485538453774083329885591836603633811394304086899460707084604915293306635738663039321355544726814699786669487922042007168632589441167540549008026007278184174360423131485888868227095202690841822506281005227378985885337766601393354123719449281547745634156988343461288223168442485527385585978044978602042326139372336694332639211433190051579471081341719851380828143158428530502709126845229018933836649377598998874738085693229741444900564972404466398060933231419433103435114621390956204949347942300212514212518233290938533614468342668205882700455992096342279975828045340716682914326003296563326745952418921793364259489321751850604037928943432367511748508958336594203213122075772549197878953729475832364033363662624068444020524682857164947312452092701299784191236215303404536177905404574718519973951893336225665841950841261031325020036709987821765533450981475609492456524148929669095520128265136910175714176037269012025683131046621168188926912579728936295778101830717019930527307366657526960692766177408102440467365937482595028522736119197308250429346191061803229444355403333010977488968929148301287928382433446602438593968344252175962430196926156366557629357116892155628040312664717291860601297125575732873378820784664015034911249837710607821940578651453530580589190506670649473823999015387426761646989287475466267874779673643245004061255681408374927559095553759383057310102272899775410782483674247139670135352812361542664145677184744832009093498170302803888076191849781989528118492009118664845563658621086537436495310571221990667468213091127975385992403203454789395542144640976672498313374117905007877993687091601577333405273459684181425656597712455073478782418160807556031220606561045260160264167573613575698429833702628591341216646094845252773680781692634064737779536508117464221865958560976375099205537878419091969707671202733706244421195609068640497876062570570287582064883214634267606866909284036985146130995782033828512667778164374343868262227980304027359570072778587474843684730744358182830607270792716595190284605302503797248674310481749118886704744223860593907263489647712558950622323050290912689608636579746109927267851207328869139056221510511954140645010045506486554504664328443422890177011467703061243354772406281229053727367692872882931808358299617642107394842037090840055284026732075701115424113338372863995125652552413544413496335690924609941236163713277841373280890827034390688925282803403714430165401102138066918086763059207676359017126164328392253340539682278358454374934078936229386061580116316360804884182172966730198826490248884373840984049669253683809792723070683059863128116296038165939499365505444601353463525875856791053787548284886845416719369434208609665606796469278984247929325448435926295867679154696983847846385922085923316349308396979723621262038142697627433713804810615339225414257500612527414134488959561472366588030742043508531285842737699783742967468947114770294173111871210516376163066349758161259756998842817704249001617380222690795849656900656053683933300869067795655831112003191321608356668366021247377176111754543592559680299453391848846393297374519628871461834107843273443942915287071557352114858255069615758017058763344731430514818494916386757415636988317675120611111165064187180818332650520296643630295079147514679120363213395764056091512530434894741017063286367486865873098820994561570821554358055998456275460696358590901305760035171876812666879489582819718538089980570374084187402362787568401630329587277996959616826478029356733434899821960470459835028571157505676921989661871168712193856380124944308179775056433903807757910502967371495211851444540824056866089936053699571258015789247541404767547671979259386856064495515501239047806330088848082932102538421626123167727716230556773062958391852692674268291187529220497006500602450118476651127444268435868911669625257385777550125693317227614151344661482031253865363456862928311250156629243253060016516124176701672780098370062212101551242130211498353070218766115344122551959898629450298335848106459560344470360579388231880406367358417063771555056473568746059911356005457925856680230024699612369767786283659808716330031689504375541401761452431139872238125036403144239641302170306983853657943365882505856032896923094080186260563427859490604195169631653751931197583115230261362776365108036279742498406591191656175359461134951072292471395306162131452352621342585387780518283386643325724654256334485419777917913012219224981266827098213072502260225946041148466493587277207339607578985495613293801932525789072316522067735972856251698423979933730178610898986631315479551409726186946445875170770412759344376660117295976258440738596415245052436317715822350399134514935925975182390451664738932510124155361040864872157559360533450836267555470592946426677827484397005871982999029027352573302042315983458120464734979530565754388670416402468401448568585256307225986389746777965016265263610097231702764187896888210883440743285319150314049191928085203127202148211635299889981945124415494997818639094618617262753309394809258904080747010171087609179922135595966496230594185692253520912355827054994167458403336195435736247634537791479513627121132508960691550313746243405581541126718486016279150192955495440814049738558527728159809337457337269019416397227681202190131595428471701810049980760205780653539370554346747148083093971364818812991032747810472359985927584519695172911768681725481402398740813488067559395760180497386420010501262766245388808734979572284012671713781233957875383065340751947818270548596295170731866674225309591334460420625854760293203471968459805141660096538265277744642240059408213535697911575459867790843271050665843560398128233821274461969666857268389466842610886852238035073278539494325557632317263982499871620912426112325412387011172997341327919781455428212394023418675627424888526532421443924079946766501938962918294913006154658562342673556112054617599236387223184864694723946474872339769910745145400003306489820830421046079340872289826980007416007985867067948905018334893120538266237880373383711701803063829524617232529818215904232237775235002764610670938375127548034329251162019600038998522628934912981900569006390922477581885724850563893960167477023062607228084190047032416441716653887921383638511330247950904702132648189736004278574584286797965069041461470579623744578453370522313033976542433264622757958487112211144480289066250726923802518601265599128105587327007225689111383351954710625115417923889740288013778183866035910301088142646401406243169411953637438371797232268970925486512162752941355118242714529784146181741755058709509906138218359619373306607762000023772719027545084063042393623515282321019779630147962834715750058334383991133721744680814742016943217134952181768224381736901172189777360801251947174147910643308678544020300512111636353249672240850919556824554507894809499323761233879359911054926548898980860482936166553542476925009821879860134616507473577402863100109559341112817147388184890897797101777063739459064776087835743515510030641214589610926458133302517581373294840528056066763042790518537482028910297393061822866240130333604575253610728352588204818139591251863089091349792156810697393301014256263208349813226922479118582976810995470939143299976365006894480341905256660612195004373741463882348968890839815395735670422638799154518086186571442489066501978393879353439182018365721529072544811971246033277140708586867406996091447848343599466866014198826238164058018162556733507526845108981631596125890538306527787320120358601400723475145183894513799636477746148711233584872851642391140259353550467116747156734928109371111705069557576013536447324410943335036290402261468362795900711817506526162625053437109738913700037476226183895806453373865745724063773803071143354450768461799382686606623107323787062928016854177598994645402107756664004245184826627618622211973685354210383956695206713589070696741211208489657768003693327890586442128850003145380395223452109099217472848844358935893734912513648824981951456275328581825765966241754968622801277482697427534692564520168732884501923429891811788715733028486051661915428170884677433908833334069656776424200794155360669491334278531240545625767897344436093070351106759839631415517169945261376106072225899610891994837689650438317442564908271442948168513526897562551209471460851078309323620298775858466738753766087471473763835842203255311128609951694732734929481940746065441689950247899867428888173175603373631776211532662040560586869823843452831963004179740471985455333713308893064722529231141159343334622879846668107630592648209053636027491542776539464795834077930823759364037674675522254962076756775965412410561622772086210713070986999209249033208724344687658587625354472916017532932687444449233822726864029244678399327372457901091860687410433812020180538748200524120868808193045705222236955186622846606556452098470038003031580545624966762135286820976980028987878147933664130119771935303916316727693907721472352825058871949994739144142968424972944728266528859449153180570144106878642375261430938477920503303280569308661271731435867735919919539662782842738046525773824806198256191143124013613907374404256874466262750479086477100667226321198542111919918619659336960192487632383695330970987320617064157820690435999222429143624462045218290030207071719833008702262240669290595397714738711454900935884260854496772675147209562961880348876355544274613400300893264800590213902493689725076091250842729992802550794393108407961395841122724720612923180285735552718841233221095271339918373858232559159321644044984834302481858273928689775880965647974416985952659771823151290316692436976380657011638654809392610215644741861209356660593990748075941514513762702152006524594374574827867260687660231561364440034819571302539832794990710162827422176313192083974799530161924854079460509785950113790323826088039474188386051008365318191826503380876969167702557718986130940785897105732967496661117502424162327171741211257490315028272158573013017296313100853861635679476852669540534619999334688783450689649859044365982587594944034039997936041141726214758889067834263505949089527382213686947996378786877984577888079216874761549115392403242799543600133008340645543815411985198079459543371456123894847613730758915298861256728858483639717471916971286542276365999546998885543579518806325459160068728198969596710214928084065383008193391678216922390531840287395073921995023959487750725326306200920934434866494680270531449833097305011686849024268373962931784055295372319479159773759393838206573446643183333443987845505533969855120453296153186675215733328983884913366843859039253039579219417876977397737298303606150779550813673286707601845216263177303683476397091726974916640487050063731112985773842663072258421707589769698006931166660159951492005805529000664514066021624403200370251059769149429742433623565272279428144996280134335107164062766340727147275279882953867280805355039305804362281180029982238006137630622680375615788849786316444530864534004051037197210288768924185814056981432335200419067996519265351396658165584595820555144806239654646971436143693237594870135174013166396760073806374332798243248505990455021260363594045171885318072251090318483906899060284938755106536029451762756194041223671959146767359423810001961598054504768816646975527261311295374526637483408317024222009765652972380410172046260366503622752487568595216953981811342809586503733681728175044270534072484943155673276869218444745374988669248965082112118436568246849269372150889020374167024999915571883258762484591247116635768034237654599404216127130520336727159684445688284811923886265171789795092820754075424585647601606894561570032516957281480489074263050580960927842637710821149447016255061277808350989708938503567707956390400827350744751835962161105921322241051899317627264496770944801073450788125521210892033071447690638487171268617134957153009101813708014206529856165129622050056917979116202602897758407389441777178400950969703709971317530903372467420391104785658032862113017291639630702124650677145536450714871889853505532408643249937517160706936389500632650748615847331525917386035291465493328669158422206715926806715868636807276928561640829553192982961898027726913209105538659825001665839359301199018354097985848727789660659380958567100552766623343162717609255217374134382230914448497877548534844671622156722843443125797276825709334202917792266935620621603682520388343729163443216512354791823230865019155945916351809937058119850994211606118796283321881114806185357713967862060429466818346940849268047166059538009834334855913717975834796364962625414751082367727368633027489829481537479524520477041431940523709097623079796938327728712688599340852557191102389694624973324891188578278402789302383463276690352965867837118070049841386029614683289045236641866787011574586360651889641760257491612056619210247578527310558629158713400531840990449079306780344482561052624553286135889935125173927675219815841175649460863820781978151093504048458087447075448372780716292446357268796231708152602898565071451656588620021057285086802019330758352921493492223649032668482806854860717961121323746976673894440809853325461794377376040268159640391908702242206840138269339282552969421168512093583259013571249246298464880402797064570430045970133746054133142623019171676133697157779146593761123920752573619429004549601844120776558754704085205948017293944609056123465447531932461172368618850226791879516304144538890690667002132232807005218539700536179908054885931511691991883618229919308403076640696649472548596498455768673135465802138937355561433242429427631682173892044571065659464368389399777948794984150803059752114395040143821732761373564161548582656848383605083360484311331384987731623595169333082657370308002182889039461872686966688169738808263427696236307625437922227465832984261476007527168686446447249659327661213363942173235903122116343979911124621857275308352993193904771655396048968108514985644687453716802794770019661862909792615194716766323610958905844370245441629858972445385766129576272441246235309870383416237279809035281074794125121124834722477235858248473424825743680006586357615780012646989834563175485893417126101748406679412333835166798648178259961968109298000352092724967601547286389136024114650836694678802820522245610984852963160264279253625248582317505820269609522554980734961145971128832646732327740849950641873996068975221884499362902050825988203047970082860252138047473028094893090274885658218566538933715762362142082590346264902601084866399987842806765702913848043396625687847107282492736395433399285414059930507838780339149288728606736597328521402687369130327697981083047435804723220468783963596836176527726829601150941613446294503953541642728606879669249856015219373862028021866711606135995128492582065894031070069382210315287474730374892684628363723272784674970747059542970967057319697096521560157322692823958347559506012970571612092420675024767935309599468078003783562609389323061889350146247379794102702937894805994376836321173912285018668403551391946589896513763907116831045611940301590866711053845258810591600479875798025621695821116228338243718303032618475320188113131836901720473098496696454245013807929256019114485868314052936267757376937581337980740323647929601958980377373843400045288982471766089656603109342808770190904486877995280923995703634758398991123723734736881821217461375541271905828580226068394883148222989719592572372437502536486758024073682760729526766826452937735005535779108398292344227709808991822784937796139705720939008342978507022642548219050606265824381833703737974754258788988122544742605423062260610792549561500252959083741232884391975322461007738218949175488112975894196217114701056167191823938256020527917582709466874266955292881808396917397014375987508528767799055937044937465067701555926733293066033223912038336043984516920697978844353778579505766982192094722031614420143871959918636063882301448683554553968616735436415766395229575914942424479854454736122812961569165514235457604036870794009678552196848666754674246547975714847265352164922263842223808251135489908317231331800269999894970829808191540532448714406126671155905573435865252181189744721408141791185212549239923438496998478936574095680904514469915734424012214092131569602052063887299807620248201928664396999607766997145168896747432258350838648843394528331903725282275101916143546245121347816092138282678764769748647494428901157729897461527225279387422985398762759353436672774648183116785233282623612254126806370252261101861989972541820374788594882048115634071667078665980596876189225244069376055756120855890431596969942885207347035412435814099921654636650517930108124198923247615470243809439560696345485521062181469181936609429176347751616592832142230015908535121901461728793367812794611931720211840938666661609663698749831360700206594443184621495403328375671098851671587027027154091660026951503391755659940776042932746131404717592371367166508320603485472744374696214023033872451645547105534178385439664570584495461223861739750630822898253001609414867865904129789797662597040527022604518972654933596720375291941222844668295081322768207848226532698566626629933520117601085537129400843324239365509812354481784219501002193601766997474912254291982947253689081682187032233921001557597109506398041663863508762716863581886018840633916669088985765972314111494382333973125601817934979258032553949738287210953022525386706046388887589990632761256282198711926942128283918046359481056226905446645560057612170187463397604830535777891908528967386055267716342639166219417999896536745602533779240081044672749934714762195051993740902133971645239158680318451913412105614426174103711205113613463756731305059475029918834500885707875050887414728291149468469428223039723522542200015466312386975497137525326272347712656749820947835636312649659744849799559232088594162974675982057528665956624360783393057383899212067028679696529704635142708610016343047858026820718923313552412662155829929201563168363389370151259564960819064455883703247988318590829226608616386314441199057989209022801500339141160751220956977341035781587581791451220499281914834846044752921174341639190000308898376942750180258386907333878124342745894067191150444020833120536564205536920755974699623329751236572336902636087963552690528892089286905440055966747251923414082262332940157240141916351561829043922941061739583640288405550731249563212664555037760931650277491907900269247005294951975603638023641780189094426751257459965331052104140121693428550648737058855170514751896072922192091049761198518139767888059630728880636361012258381041012071957689154671690247252223788932271706218723872129953744093105677191331606149202968003214195870278475615689973908797499092557217578197095303617638504083683347824579778972168922208953568043182767250046269885108412421534407201703992755885538354780533188157707731148778104773287765027568898901608066563687914046573128497941561542821941145688634606392239122202225857282938135872020369166357759604789251163656198149777843809067735053960432322399708584322454800787457355423754566938862424356029491021625742604762343450108409045982638873385815519872843125096462414091810380966910004000566688197015171771508303168230608462452464222069904323961364747144007923916983575666978617303777817901269520311655231795455928574480574178498976880276206852316882615342095740959341741776920473280967994782777262083438434957821747697577532551153583891585299808642383775815283345774047895724500562653261055318355485259163360592969727607667015141384099746428324921556967360339647531955676620113046144485508884252061607728805908467050403787156315824570862202128989041969495525659581483983233125547700035292043271739746561708086746119668124509154061051989921598677445420300719209790013025158412767026442966424603806396608259598120978408710475394009980278653024774419698775952251875085853027182267534801590868418134707501888518690964040995467994560878385123565386980851592490964537529291277435244043735705786550820320143724896495177579047849778074060956758416549149574583993248705627391178407255438540972118145039562461981458565406945449769194868177600106438053026995665317695686213597030380299798996556517886011848867701705635081580551152193997175647221236067690485451943495640360689493106639413502624224580826788526376871410694687567427905413859481516684642412599818613700314800116204255612710048615149945688471085519620088948330178982590491970570512365194637139564806602671732267307673616150594817858046919986833840795956452658495667687538527291867167959540608105118723890973140707608450731857757330602976620061739672497895805308380142031062375222817310367600576664740766571054266083988759582265250231172721512120187878782024796332932352899569993300695071149469972877584119809181608139067799176780968496746755058483371490340111720775770020169697326094675993817705862939780511446164047282669652138289005221009246069715484257272703919514826282904194952385850965828134308115647311341518617184844013180423137482025235256353277973096636194317676494133511101953816322497939844115787690355985057030405770445590824758516728031876290864691686596996883236550190955303363333076021262647401282416803673069053717534429000042060924945372312344488469232856955899858088935018817448223053874545739221087375348506824182277689934013926971262348758599186135631957849141225320041873354483663178132166277971083418563464839860385602549939655587999238414387264435405777299596308657886519161920463190268425927940120113469325695949613655179765600596949288872214244933651672623735483256661435765902942860313348744378357824520047445497660301764114853109116406182257656010373423764246439342658592623395076836571284292399790039976458619840063321891328339874066460131387427633401219152032410932875132232227525045527552718137339153552370657314481029890548809004145872496654285961570823864192627555499533379218705642609549111372899026605301189941711897790184972979675466514099805116308447686319484112757501165191814473240313582562406864311670329766174705856044096849009915279344619944272939134579679945047333619740168192902379442543566256175128887082746165427347781791149537549831508628234761575759959758377064223075674381025300622696193381192900393909161101974229215009926139513768090771228523557370914291609281523511569163147668359977038683485899050416745875890169392395406288462759269605051868732671014204560665910949760164132757608999063980612782116182020983657673216494836655994580681989829183464494694698080073259828603636431151760360011241068305684279165799855559441358461978475436540654131135533842851042064777868370180833284465674300667364156414543019324400917155979686271629644464081847606622921344943950088608783777520879362921491478163253424405199673456312527746380977546109926651898683364199769205943563227403569449661079752941798248583733911450574181572317624665383730002087187229939098498376725461921211494134416081190641511681551116204106363907520645831907931072829977902973110276946273218056099846279994468315279539878538963895127946654757768044962295859974857186431168825538290472819823470825537208827949136687277132399185782624852689125335238659676799165895079211180875582181381393380310707792093238045232730252621922444767930281163277659577537170502069471381734315850158571941989698737941811909872208761819942030030124168637911930725636636497505923286730153148740185810261996394520275743315140375563917863352061769730923928958244530078100975024851635647651262155886676060177950881809959435812690520260021726339805912440455330322068672265512976847116318799147503009495477478710972668430184574204616370687293897044319243345844260377616299070264960029134760440796200205925937046134913693807729307942086941814708334557252545545166867712176480635231002444398067881980802108229043325722182385318540360316308294913517664760926489446261457054959154263413454696432185375369967882413064784612722428746514260301337508041451032635714798217197937361195722713502977711753678936642736119061862960814504430600048638249494136215124036483126231031916819592009248883430635214268221753377606561730141558849587726846791274822069413086036047497777385151287223276287897864159671396482142128021718543177811776015563105218945107274334802030065126037267669859357406170471886145971809576835256979423209259735056397811545949590023267778798840312716111942532178660915463162593176453241389577403286463533516281890175953980572837073978631933015321107263804919656986095354667019795758389976496028361417824487647708722521388327955605526135755547631351629126107588918120347688102870940550053249677585971652173076467366076257074388491633224213359277873395541053589117448150407929497660274523930269921801025723605907913258284317769394290217686466742745781452214195634843440504734123435765671330565310392442857651936458843137492586603879180871067503787464403398167375143510844069612129158824708984583094074520748950700374459443056037225749033169725796702577965840735490359433987783458435668094103403180832500070719137957991593000585277931829425321970789043519522250223543607160922388067658579573190448305287885745519729253262886746506617635488552580253302976033430389690651122329162478656376883105157932670733703981888125813892141486224715200853074773319029945986730218456493855205745878979935230346350866786670098513810646714071798273234053815651628621984414525597223653043450792127331193625052491203426325450289483405018104970391842803739238707486237826403938717169195392795375363674018608473837164846602798141693657997201842815084987134108315415341427325821057392859870545548810479585839862268371065488881443171360085182392257776024321787915697237466103464720662407048532055080289072621987316204308527127553903894713921061305352663789984630928942062172277393660022940864056591595704811640737655759186096651991083057838642057400325070930534604922228733297678543062036560783871507812708170787415899685957200486674939630749903953541674944291992301406243709656774659818379616199460169688113814831581546708330435746516416122317326463675013680689869381984892364770215763595802100782545221314688224304936480939155414091927899421756087950709268130311171273411189047305976591412128181295627894346129760773164773307847648520855928340563586771038944720111869822219005956344604508379346157470665722344659476935617646660095078641504889122519323650095333678357921859683741427588805445904073915931274469432837515431035155629384064170884429339027138980800724266773867174142411497542826288437902779898750938460812704028314173000401107174676382439578381286415910347774011030135560572403606135424673425861902683772163840236106268865632035597064322091484583088535585283976316598399854682167574275075782674412969684209382858938968696255203947229659999192209903935276306312502877868553634985902303434148586917482975519962817018236762618557146592617631625572585020424379388676214464931683650469032326082707511799472619149071452326378034803333106019296238209769761312483152630688052287016022604841690471433779895259444411396157113276166028895311629054870448607303524092210562564363223802375357208462320604910199949615124378396446834346698511051164824476752546124556936584140851187323941066898304008837049614469153995171863589546190686046685502603172469404223633255441968017219029203579688718707465389740475217320731871147795267003804154581004728958429963538583825315379639902622275007997370982156187495067939858215178354076443253190952237794797502673525130626181185553066424986980268782591075551824347259839411607942091153148884541425217312301499307855980086252370938753796990551873358041342721348772461396559221340950521453688749308130387970219463291434314053064260734244629452232915295633237671320432223699520232670455372671573683408606083130209305774279689623734552220306286839229964612725106972770256206757287142773876823165002020134966501890116409534575522892578297135153904996468835584006390914130496280778138925003969804505301140694527687653715661011606809293399946031896009427645148801503237158641358939205327946154137409438809237782293051324792031860165539107875255917353179464381172588830173120656026728286930546155839692917832470084043682428853401633067686172703676089002002423232001765944071332734132990528455049347717769243782816095042418011607930523337290249518885733884770229438701826255100751024580936116970675968773089162196385742597165455361657807784566740960889671832589204072622006620415022364448916208518232032776300128171797141782522697179483475556454235906180679458261290146818392664015995918349670555661797610486915552903017764639072945572203478725882398273519512734543004023800033383964867086074342593889287523286681381238955425914061957627077949056149114692301374872247615211076773213976021222319892091802364738731119311909292688468645008349507685097844382852358677969787863326524854843450874203553088947840083992582911976791268399759741077648765841672973637462067187352434974022406873570715767654675719469215224053454464119009196396769107563896373023251592663433039072996115916081603593508947719824330687117444848782046198983274836348161901382056510354374422787247221260131005408400480395893764058937279944628989399017166585725242352835980012257467846040245308922682594075590612846210152645285742430816271984934150219360618255901991949517004788178248694357870135320156617297619051888028022886618557416768720394321026002854437820654070256212338238609100674861189669833858349398946222575292895310361752344351565023233195692777755849163926414243995433792080082389322661143108663747747516878241486838795336424659653366990729000290836839220235270398068694910631473513303664723647581768891533522344650287823916508007799907731815776133912199351413555564878536043700571567413416574930036289567419978829511756043193959669513796236535433369566429408818785933430180420624505339213656605308159252391402825820227171592418971509345743567383884356254680570233111663032223744005908753446464466136656961443272652477252689004200560860243383263298921500985017276028970606518696037501248374865287630891033083170734793355113130844751078299216534198051936373938904268087674121839511312470276654603952704659305613598201454619987552138776736633764146839866778545382451218122385250018513392777478749964324979528412376970940902450897863549316781925663024672017055870451715128084347622028424998308358472550415499501316828454073240105400441367067577505541446036182441478610904229800946565830975110327710261312701934752125118032030944778126644964681835597692060302838649671092756251946021210504581111128852963867018075681300001120767624341444483395364195868228079909211687466085353435316534036178226230875078569510272003408622066212471652393624586399621129317625630803512358400838765954360470739142457233594346376564426133512265254199162622990104254643213215635210202584431711491706386926430004776275972445660321888161748485346483214794438846482080574584325217111178513076725901035233985792037250291487366406219661615499069776030302766750900292813111584003521918894721286028817738063467945607368597449600815698282085258605115407502265207636607299388354586730744104970049591788082264360992966233850723672991414326553615694121636981318651366207688693502271085347323420670237735558309960486100482786105497869893388053871081212165789319835969250051818789409981183657564020254863416707895268878803224057711736087598576820907686293678919794337554956910314742696671359825935805041102839916224645968882547808937712141626728396724156148828136090054762645477488247837634402131603355057858019424855442779316959062587509907148258387540909936920903729072991823695704162361251125475026483620569707576929089672106253808465222006334020451060613791125953144544918208013637711158975899481992799244422983768825650715738746263819854266301686264069224399393930606800754790373865270004274539220147192748630415780916939197424417033473869675370314826939568131332743981366902654365234059068436070537002903892670381875393387316011269173477569340332236487364140464738150213074021166417118534864366752792713494565406655935437343993371281633550334259976326263634268485244293093907652716920395119224055954133466855176313624785985269921418672371988412198548606341775069786281138061025501933615257072822220356759700816894557316767418803459059177302404773140517096538983486867881595460157962863384259598588662392370306681983645340161569898029122290612995682385284249038212415741780556343253764106301198693655810829147384198551901539644573072935419170198418654695374980049667645022412412389490105157194450512388522495978910590263605862300545905596600546562559213061721702984609792109146494810881775719954098208554392925085056384145802433378877826865723957555972608926575046558197183451387303909279379345852791719084585598237039848479938280292597270871532943288476586911661037040614634263669965869395397629966582472772087986518507829730539794635313885706691075315605066233317530784360075019393012506088669613906558955219879089952950347037379761543952482631481611046312785772083836612364590799982411701215566227227615662503141644670650981359541573784223455391765153175300734216864102138788826506076914419388635253246670216991534540051207615971933140671585038456333325635334084675590992123049769083901231633899347950660445851818274018404882436610682509279666941396930218495652722685466534082736072343696797405904837845619870842875349527353178989925882565576672767059850939571450671983494102855196037141827203619603720846092460660786306250313603249152563614881977849080652662910622180006883205389557560054427612198291476462280018132964457814827098366740349664042544413227471334972664112890603758778636762956931401256721003265264886500641392206916805684506932203026778869686272342256084242916782234914333385138835931787949550286290061302601516331106940423923086489564500492875024045651817589749770845384489630562555447250890452056100600077262848528691650330423877764836903319396512787274914570691290019527590738866613063604633352749091042376540210100223086805784819827539673572371424858231770011255900688220201402413793029930078240744927821556278164168254778332500150822804969123965334718625611204658597311159307276577998983967977879269096234476412019282015161567563615020653692009712724698867802115577578810185387346355392583925737155365091238940142931602548315193442777485789164051114449132155480779394008385959847633614585036403479646976792857608118302587962357737991606332016216383151795002991610094749751510015793434311913792786199392913907376075384671955344404523281660645844751476479729180746686936699214731949596999994868088820757573428324099631155342189880533677044382394912544643555823615751732273737411234755258524907923246666975293708246920031331482549508387746472133161250622044992171832967828541672686467677588498464444189201422925225675244500949231935460475815763026578120450705665001643579407377348620758817784903274579622579602372901691308936948809389741971897414728841463343122874430015121816404508727502862431913845543789752092894810924974928848255168388945138172174528549574882612131459272359042800712660017690229338618628272101914826112585931919923044058113118398282565218044083238346877404898196273381048490158826599965837924311722935760652744059136699341973579340105890247532156619452438693973901141985834683942686765829591284579275755559517784018765720596900708952587032486586220032361393653713684605671681018614538682438784775823423895316893876100299115985310423973493509538780938038422818721152223446269652236565570685627614165461361585889032027471621309579927307513296273576948370275071162154545904040419716278973153308864115723057059762215028322913831961349182497063724112421337740324288275656630937405409533031504587207995818553242033081412977623936791456637974956021285930527321592564256458684100599187667166897287207611633288716698946865393501962993489419236142918485572375721693437055840810497297219280538357977416083981262991666648791415402567025306183247914016687960833279012574836974538785483651659757883577001671050075019894618885266911079323176568288695884195920480150281418738032943587788067781580483485756163634376403188657428985178189844397508576313898743375913600316689979734968471535197282682807946483060540311758958179792248200722092251691784491353379463801496775248525581154763143125630361128718827900322571389064196669882499025247738661681759042587140548278866592776703916440210545970251725536512270486902439968109575727076215016088391495669310936826165751393299170436386986830315493597484505254423412383513107237922142814035458833453308289776299875219902590241022407470776680103019890377532975354391297650983581955801299793144644424111018390387034343850707532615648630498108505696245266726715482786887945693612333848326836742089816917127684516873150639297012454428505532796269600490775038840304127802924709054554102321689532404276052955304003353218782037065516207216139909579606367820782938576089076100692815511600247425803516804204579799169495481629981318292904190063433487030656184833688323652921337032090399291203352202359933119638662083993466539460566608795477411362382925584612097355701110590968002072709055580824346020652893120765888737180297510649812049127695210540361879196896622189379958068244157920144669381112904035566309200467691820558040729647139270572284540023995318552475612147628201193927737797272757812293440932034899734284723061782616915809402071297453722538687539126824106710775708722057144171570492583228868498009426017630889277763787530346018968079284288973672859165179588497200302518532969057087059641568591426029742126038490894186573596369335296375610788839456115391438449218783363356474535905587537900379097342077192207683343392349279038858762270690077413931353004585220273370009891520819740921365328692202930455878891445518458642855583850440264498041993804819781804142128604656983698395169827633148710187452199365815123004569368758843229070744793477538945549920900573889258053988802530573344244633567637959643460537167273194091930430029957852630226685262088042566232646297327551154424512695220099972531342982456533452551523671823296259099197916785657304697178743064494498170173733144211421278032454944288147162181482002458455164328517752866788547562502265546567405423928574331118650669753971329729446184548417564718459985202971826755619010880203999926888255541086892079179855195148075077742413302208776025134738906581977176068932092861832673975978816508875837770585381753438595010134480489564951986803689326946350119762068890207801957379497995046424871237051170524514263480749251369313328110795213521838209587887137987209688756194114510415848533745915048693267213933378360320281057402635481341414353630932203237369130459132217566408922136064632942080253705985247028650294222891030219541434771149018690221394765024126380650480847146214755610173695604034181441994088992915385384209231278805679643031515604164124162021752689149906041749670368322827568993707410229916165996733588682997706998523013275145635860636666479385669803530856890103485963043455188988351145263584824539146720804559439214773975282447490155997395788964603575297385858293024060693103555519670966907337620252552486182655677293417023372466568878711533352088304884793107455847831995228798025774691491654334042965963787196076010006042118916922712304947027012981533227267034150299805270954077732933653735118475929984164248400952452607135780393846511526368138715358598641477582578831814674064031992993574926851017887984617673414843891588769901463485855352178441223066785450462212556560578415331157951145394956746548629336400133235870975535731334730099744282078238779325728730546282994734523410559178120040933577984274414152014283882303542419522738533326194632791139096829101227247882332294184708891727763433851887082844344986930318542984859393416449408285525854095907900773023684143963053304437937883394857428737377969506069106320310672674504812950454418677530978278015266950839215572967305184119504922123181878670813862965570365221887691546538638141526844268726103254216857779259899620445904268695334832517444870498660091798761645784282315046335100312780710574151962860787117654810280096725936033150660443155927614080829647153745917707515825741716004377210258842773854476980822365873934671344943606012205258449488323843682238549497304997266442074503202257136560639866419535546337516687232860989133638165954569415469708139136997567466985194493995034117943931615555038780091086611470470449554037374420531114633954265873192982671190927080397501290667069431696246765092885138134810579809870960336216732331043901089548012755052115818615350526420028833042194793430485176807632333255384615008594477995071897111028020955918289915060787542793634476401040164106368365698961069991929071312066563983662874026599332263470191232728429858933671167946286796102071472060306540819365999900610976005394709363112892803597326948062623699325208529109927362192606342811808320715448834748112607584235325375898519641426731969361220354711641336997187838709554413353755184114803696528029631235725013859676480056102717936482738912289652926183643525024460340990983607880670133403680975837067788857575276889884211675454642672979453519398016009603844214064932816270560538550012385137286493128040868477902134760993911524576318611179877044255112955206597573161464715036031354749173484584487702537302012094851818322038962682242976642812174454274599666475651141624788645112786763818143638697014528806659474143271667912691169687347860458141377566469324682285794301137742512476416333468391122834491016235248364957346035567017199230101550135427061417454473704951055191716664067743723605402744898274193361589164689286714802212336296035548187288895586429816461379222344878641511527470056018233510394016233070712010707294549034951187185381763709077118939973841272285093053639771103452982118133270801307975544899656479287005711365224411458078256619738015676503673567926264959241269205347686406236959931273103774032534655875170000159072393812963445904079059173710269443905890004659825402913459411178069130510309746791030697132857078764382897793330383226685936013238152366684185859325451861585430730275018674133972212972543488060306686937896909349226204109543551400835298513750123027090054441151727259368425551351328779308824916224244644386656551554815143310987066380185871441093466567773896788377021856958624540264371957130748408074342674766873178798731232337517420929729531954398596604166507692810208185696886233928637257954404079237479050425551682617724758357310638207300187023073169115638421841743838998683815318313992949874141846846637465144746189182619609167248973185925949610055290959587897997289938381548117844628448147537054409389988000795919669895941301517161843640638311494531319151860420013141659268285575243609392694594478964744326695272361967513121898824249966241209673462792304333771001766851107462094080251029389975875976779263868794025181066428694531847835244528209967878231299904169705951256627226070971372643282544980164166016136805996802847603745541463733542041962556079449494005640182902518863421524957348973986593567648115821908658527646297029531643587894817781255455505573967923231549678239519202438725598824856187887671639075547251315689989490257532261952744553301700397259176364149987351267824542319955989124872895449154504806169577098108289070667593439249706007531438858512343599938959063458892514033736951963545765001281014441876500089636920747318043127506900957031970941802525499001568904673997313893953035769315388636766447818204873717936043220685144473714828312151852920432765435722098925685080670732296458316385199656582517542032776952449865650266957780186767378142825562045283932911236140002290089852542018392277157287147022323652011022487711406155891230198859339722451394425876715980439471378945767349723804009465871408848095197759917915515572768840591782271756505998595543992470201465388980448515205967007557390536915382585027147625489780355827890896548758118191612768521116443814426861305714788746962532643032074475493854369487556400086243529434988451373015797012709065813433641616313775114424619943012315606607918867968554026335017033784720006603631733885693165321327669511991670715379882757045137195405066488142947677190275028020134436430576899467498862571577216633759608962166243587269711451659654320043435355597451312546622333817030714114130735858452779984733341413631693690249826079283413365616605721345235373326492420613197092316779667632828030383763642545762486957023431654613601242754362641291849846375168047538537340412998189400665785793441940898523091373003065721462631995892903388804757639897452817992673336127117557035238391703357393293467657404893457654713084832338443447109017837917077219546532054252823113989500946936838421169149808334038360449629116505993595086988402763715225969251902125422895631485398997023755656689226533841835097600230869347395889796262801437874214289953401502130294290196349881045385183088944127478377762282183108042351159348799073008211284045814740764379418409064164376750797294612993751920783073998805260470679306785799705969916513685692873255647511065932671844758607169491304168097295254917207741160637514440948622446022189188744823877034897428750362961930663727590502856752191742535719120968749359138784905595777869019703383735970465307692323988262409031416873517585001943813299465479732982899500032575619560588435266674532125891315831350159834283333397268480073137862205297894193264443039646202508426026161518716688567766502903356622019188780322186487809661835232174940125352516786272876545482989179209838181719164169823539388017937312838865796556043690510131016636450955455912252624479651341425672248017656917608502027730043494540877625743821418288639245966264585423351381692810394106374320737135365651588272079923061051881971638212374867476974575660596783579312296036633162108750954968247446150073125433481817233191302124412395281204888185068345137033190964210442684083398789701654789774364263380259488070162160410419022962544827503510496597032530139698952608389498416277566879302093974666353197168805457603730079896152053004983932923547603346823614714820983837880679084195418886039446915868643162240559392070350347784006712548195316273309209734578988153692953947441480291729020664825039887057225523884902717405139945209279183467747022379635770835774196330454787636979883929502066428980987184332758059375121760841725204618907549220298611582158252559583578646842506495301078322818744678275519780209829037946161731532410073537997085105354714695212031909286375142958108579617314203638192997299288724442271324412167036826286418165849360323873113563905790945846496515454230497571427622777809005036710699987771690322470170596189254264001473582744351879330836736167131073115130817410652860378439461658172616769125603881055373308127803533611465073670347128734516915616549654206056699129157841612877537886444580999302474995978495314201020344649299823439970462392797191219587798625017552877565380424964191657020976412913581420861214211758576279984479311557343564524273751788192721167571880312444928913446522844167338981415865991196772000229705488588478290405323370970899519499948863595721049056398810891645107878034523198537912168964884303495765206153114157497090853532221937979017469172463445213702234629303434127984556670521758017683132403040637610614695594223604308986009425289416352403058253735948535267728304557302501863591398142145120948536690466654882411135781243298539474735742043075166258448569399965252219126948251048399430115119425600189635183061686378465596607289656537302307292101586073922708734421502728672177878544712541601820889307400291226724231381157465176342166451012466782811147407635463760964372951022223015245881717817938029842600250951486146234188258778910885220684909043054162781936392247846561770458771976989913868319537401455637740428304169833484593998929464998287606196929318132616407499481315570376517888931212112493113623605817640419175274472335463416111709340834638303525528620251184820499210984546265262708592829285958652869616393645633641368072151186825173227891220752880738288705703209975818714266477511619895419566495922102018353218638359118404892267033146722753127059336219068573943365681996545655843049532259242624202629209442757912273955777417780413076809206156068873374088710940763661493773131617011447008865328939427166047741399075400922381636001298268936121147900554036527060174504296617059131841452290095975860745603670416830323772498329716367446900896042699580470729980956992912407288183780493691643849210887363859882474043978122327234649300484897942873063247464149365187842132155299960107304856336416701244480651190121904911226841221474903613867758279111035835062005013290072611823339581360559932956907658479935237984859058294490586038645682352679596049879268599489171714536862255664590263900544157129544995157004370225756573913233999578193835544264340988563273538237650770542915995170995686611230002463017907065371359573373947530792743163563337166298720606794854916213440042742304473189152480221718178973415861328511751319991135330116384725182853683807461537804950115018489000881357929256741915733799475119708004567776850008661566394913371189677670026598654497710345452005096238291628792420516406506698133917999308203173225179918348851838752549359644403750375456726615707106886092534635065235933410070987003807191247583749246872630510444124578821572073766110023591905431466833664200448886096212301656983879414171192883846207814090933838203946039774457468190302557648550529781549183670794046542247946061268674331483084568732715342111737726389178359182124899702638020574490970361566356485789726395357557725543479571090613216468358158612561008728906688995634910356766631593741055848707626775275747587481943022731106016117280635549030540770549825267418834748068742503642673149676071599580787081582775937674505746612128862036042885987109712700538051497033047864171222354421316286788879399979632885200324886949512331247456508014407584612308782939240114867169805540789239912797822053071817645690230565254111929946729163646013147435061082647411153731952288901734056151550282414722577341469901246956981691880774895164197562450697478801865926149818444712335338911642447186928915322596965787612256241671695022582641859468032792630398051496623133876910609560495748990542635281561408369610592223113643419506313134935463396456842861536496249581395017510660114818095718298497788529986633724092584560892618094361784716187596752253405968084132658045143145750314789191543439985404205636258671715131201871125391107643504944635657954249693339846771330967467074803278490243572543454923802559290268404464210951083915653523173291827765756033312686202781834775833260559664571665586272776353632587567240232104851367405226049815809505430412629464393149319494010013673654795549413298925214557765596771119712732327572626667480985564410520383869412724634083592716480775483493444380670023641983718925956972746514645397726406249978178896363853598838646697964203496432500855839300744206487005433766115898856994131015023215025842010053022472878804375481745390177292655701281358044713353188864004572484462160530238672643147167709689753475656709557844462816185400217306993677898152256627445590189705476445128511822493272130676980032497239798306779398821358669462626924130607039262954309792600228493218693487106715342820506781771851133954714448119907565122875187551794237159729059031114406162862751332054910950223365510458603688819727941526304035335641858694286297837130925888128902318344720097436585475437968472304347400135181364537419867128262926101576671340524430842282058682342731276904748828014602754828589293233295248523181825144172543760613632079890883968245980069904678898691169481436799820981138332080175918235008685749046282406817211035929484844092912774408551687680773641829966494446035635272220094562300730975663003587122618781235825397526068235186247009176393926661720964481524272057651025286319827476858561140370940451227141704741096625370324266904511698811659074641395865474180795051228624306008210789193056368851637333683906817015245087177839623596711303368416403849273249694264889244262166608573842459429711545640202348315493391423201526361983472339040115937140935164246644847330631527218709609124535558201423609305184471018270916400998069288535337410344757888286398141439409379692026762125205092687648701410153695730877449472292981212078642969581910858984493866316622064643051402312799908085563465550886891720728032621153012795147435468627653283182120560999201328146961540092965907445402449040712287060134655180639400420756820889213879649325677300576669703410306334444168773752887267372693100463714161853468567627560735677747523684012455528798140056822780376523593431297714618360113822266604498861391869565680024612202425519195115928796616601230261510714050830257112985067924428777941839726734548867405396596756499028931139023027878609014572537515387771538630742244501336244436853546322547745911796742766725370772577733121602024982616261288681178870014775358171800389459125855178997399329714338558662449495450226827977373752560768380209281892501343315055806481140535626174894430307300116026467050084059816282649843977712961348146379264435727644147130345512879696808581959297700391827004547984662994652186520546413092323208207343762821949710433634482941186816125220322253901425919751173919717224779706709964268166536056827879097038145430234878387449085851242198294537190590289986228793904653651795723176024315725646830914813849078662790302107673857151699195609335746848291127594774003490480758313753609796209255176285145643704826768553175805088893601817850600911791480312647538168524607947853260959057521113917072455896607846841670265644079278425159810431871532552806309608723139038738137616244873450020703776748828473222980397472357234101285151366683112906377472027628435017577499800336863818982641501634084895455044546333586713507372911084797869135299601871881205478482630492344987937607420663745351118713295668275402679398320278412831576064484381036866596381137922759945172727880694989656114652903509087913064696194631031839204047601425649118503243947296148829186672178341404628346625599901863968365486790349127035994659427131828411592051589632796421858772274666469318417219460035148395854003603653353275344758893127188462587069705652416264724561480306084500768490462422191098159830628366706425912701414706328723365193868114493504707047177478874476890478730531084166334971534528410506327966619918865014510533895918282037171113318485848304964488146818575569484189074015063017320308726799837298189762439489316807493236736128883723992419642966143150095031491113613326675165279114473205544009914789117610251912792500400184898973213728665536998195078120422835891208585590918590227854453667866357440720074009354261114374937846630390700793434460622607270570934160775816438793209976913453549386374325099762606277891045595987054976325123514000460275107919118372982798176638950158257269277983539616440647080477866901217883003088240981278672193522654802880452545567536833869085597649859563950774965818761174421458600848905090895771850687779980985050445809989209416312473882592521095271489020348518435603917239279438831872559808659547802452753662737872080238487399055421010355674830721950378687959374684398905387138432462252179347827627264513510927069368099178755710915358257525693551794291509373754321836873096342159447400566948349592849259979906691575168894266119261986186749020742707627878144173673076907206014800184006274335429369407795890902730237751356243225554025610085182985506526512726017431363041793842411228438540767086307529619670115680387841796313312558859085794811741857072017135856220283706393842242389725573325437599048125359582285068311442895532498730946401139406824992801710813850486960903871327812408477848163859061710183020969147118261833401778664053333187503922351016504966765134300401385368561894822962177033692999822676633847061019741228046695362336487847641973986813994847331440154881172599481296455624758203686377347990397521856406721258028098472363145734325251128672331704427746720551798848874793740536395039979108565909352284932979737481527627297270350127017233995724014416091756231492096901392910138460429063726376289938895351511857428543929062618534351415486528396318282955177463959604468709158340954008686751789393589904685654824798637167025948484163546270589065677648544724656495692605909514696707627460239656160791328596779153813974298299246636694635892701155302538074588984263374384435478816468933948298802058519145973689343560606605725057566605480956876934981003153771122374483372394979697879912243835110550679320712789691287625186052421745493932575169670075940357008858054045386706210840214199944918499053638601663113390926979849105724149837044054933767583885677835026370591994853472718195206807124448660644706910514063038404487789693033131872849780912396054108521098662473713160076999370989005296477207921527274295388900223867718529347571690133382851532910315237674858874054860803332132808723606351175430915095566404625924301833015851359494142276302514738554007230986651879931991870306299663673304861572261446067550821579978402474614820442832158634616888905296509409532706196056169997517195051786917196850790178060353370945333774467294546169336981674935312287322579826492779029274001100732258061949352483828964795678652393880513269010851356174768448956154433418884797106473481738541103700844457762089212122003837462472578052564611572777620999357027544900054540588748249814765825562777389895622593416874988171957215680945738289328238192045718403945843673047883621966129964945732784828317032348287133847870703590637438134184428129032425483134857110263572398100897590250040425115042144427682561260844690604777432631664934824605500657192841254574642680495440078576404642664873322980788528696507007844154580157719668231132093739133503413335958829762925827411501905379456913920484452598837427560660120446023086703394881948327487547212738927822842929213016033811941717171828547964994476757345866941818057072286769815170538356769275848220180672332204520505696727119468980151062345157508970981062210429746313885425032602288208077720359757260130033423548948125037299551678467255531810927361007576391592307341558747325949757250759855839300879978198188814285841677136431341426346643234167955042602507969911627790739338733858322192728129962223821302124245787385565048962525301665088820662495546100668982739967980675596668909641364169746287079851463319396259841207047727603309774953569972965059550460066579721815146008108743038991912044161827658703219301657659501539604038335238759210261740004845709205116290650380620551727898537233995678503500822285085741874310225383164546525528253004535672287388054363698012425202950444244389436175618422514657161919754903633355168514340444235597979432869987826363472331225382650476829154045175806241311587052976896229187548739920270974985190137216179733268293157154562020672770065405908873216133771512726965911361675149615267588249466373431118821432562574617805249182675842480286111514224323275268115634216327945978692067828588561802139047057005309885500865081090321374633838963580554568657105798402077577591543811781864235807954049785855848172211023611058248098538566062234876834843203173595524861498344280431294747930290442433470661321145401603736824694440635134081150747653224331760242289319053306946318426724163840174098269631825044238059464953893781471035334755153504712017808067090199971304312625158052354569577519881812864024064004746787464108781094155700377146172395460012488098721658725179192323674043059777819404497059588982424051088145024760380069709827221767832809875954445867906795436690049688205026116569707573519570196130008675263595842038015229040427973092265458677856740453658692149990915535097346879649783760191643276599725082224377598905669363273517146115248830541138779778297167789356527260268165002796998274658637565207966233450875933050361183962597725778352204993181768458175855015137583545818697739841593044537111702845736008794109481181426567108461845511846910677225904890586428740664354154229363873537651799238417251733667969006148472755973498959024295745513231997824770604931307731432465236837118135395298664159138333048258883271062094702651005625956115257306821866889747262018947667015819904536100301412845099023674346150966006001748489610466692064184529197964442767119220296605368578168569870959296514556989656306631369343996379712531815621630009029364415183146296725816276517691107828643347662712996721824066888736433587910447135004914732617528885308103766490364393763907149122647919667485108421728231032109635636980280921562197156366615350248081232521656305658025147786489282101642423822486621985237127206366765742540472557563297420880527400943507327713346764042731842980235957751798305600954128968412378802759583795329495817673951287617149686536759963695465938645447766287566393720185316588578255003770712429458911653569727001768496370839643699331239788136041840481317696861720686197204911478317218938336651853248226399952198485378745005661780997597551483815622024580472028301245044827293118303103445634182959139029054260028955446751808482827457452657750162716956318076165656956439710798579970616855114210678963629890241895541597958894525576237475038178752493108978542230022301722078640640770175503463895442663434503203097179990650844160347827840585869225885133343326710542203201207658495873171823980892077105932946334788826558489679576880992785823161431328502811842848768384032444122972809888495153869721296252313449625091994754655578709128118582420426271709438794986600446814862652737945861250017518842040767531763197755537220917995141004388490537301165354920792590800810387619759679959244232741634260425791759299760752650484397263382124816649774390358823765002921057397396907081621571923011153967779521768694449339173883936107682906276310283850849498511827674649004421323816255553181126574701926429479412381904298439735398721191936465562867112235720765616666621861588584626981732421223021204634609705580385686206042374598527963208910609013446998137265787979052760450544152602111406008224616589474977960994436393385617091789230077419664096450740098279390181962184687802701924539205882438571174161876046412602206625133679720021855887976640738391317713774210784257543444591688411731861784593765232165574964495964391435279229798406963828691664508258667887498888861915607475204999439200191677825118858760745386504303162662068044570590223369646609868478015568464005476109864895057346633941598115069725343379148728260218650509007134838533820602786345943564800335722682703462001544717441820461203406387470322844542947699449947995117275581800326195472802633840212481085989294092612698354562180226241631596673167046570000968714388101640265661238728310823383674120881602911153335184997955280998132742441719409709851237042289836027130267787891434533767456020291955548860084318410591999767587623892216224764645577252151950659397205628456037152720561947485713582590299900259490419811429592092128342381795025378923102650214069556151810721527974090497613698441087133359424012442499811389828785776702076001453942971099648006981852528284039660695290940981992426243034607359777373129200549929369991115290641627836656705853732213727394702682779973995902407944728069685044724814288608133335634132451026301093092189489236653239110152262004978049610121682549032456648749265915936413947555872396910606396011139188377546022743554506153417060735397787464296252507098265677723072827915614302757308843866692727873310131249838898437069976547681188973931976564397268795853777370126235736936829598541009292281786810427217935277808635539974872747812008164855607943512495609020525230412480667682861806947390283050568301600858687516123302713659276673092484014673954232815206007484668549868822940161227937020873699336666987236339956741076602097288231965364580884359674164387380029445931912861146968108024303203369390441006267782990508957702350184669415862308661757801377644108509202261822856310304963583500976240804348856000268264307395591747935432713628783784392705612538328874467483355455881399930236967183929583409740082782768730432481583446347110703096890048655462520006705589912492982860679720133520512880639539189061737346191782437389051851866585285475033253614434301571737641489982769832000980979546595692903199822562664284671299851693938666050884752768356204035390938652378867541120847116387425946807910942938127263797110461294394363991934531725408840090504504220363363404109281237819245972390346338290199651372324837564660821360748922217359253977645858467293249533075448334935239577205101801203287193413683398099249928498522591167636100466360141745369886035407267941427000768780198329010970544432912878524949850724032760641719947471409157907933321988700322599226701027997098332220806053477483839167504539999386360367179767395591623388258929513293397960681168181582365778185836052741465199762762557491609999432101848342364949945921150815715856147782521977111839840899658825802956094842627864593324938057324842360317332439436978591985533621607320154760987668330608725819235958963626689233550902083496206025687136971782277444664990358683554477705023646746153334774083720873221491553217531126075853885697936445817261703972070586186776750012145355342391863533187726764997644980785204825970926610519887344239382141987730586141430409167530318849899068218938412198623134137730940737088219680633567577185277332328094377869766436556336930748135057515585778503082817353865983250015324828041405578427649334481309928707120070454865341701426875187678145388951028354073623239795448934838699844830661628710008273947255971621450992107854785652373420596635143254289503295548205327947464475729115216992140106013593903417843458571037898311008634503120469199318406877951920215606741686642105841285327500351549878890048859169882390405694078987378716940741304677706848599329838661448903211620351842822648071017002499962504141280256681399574859542603112237119253366481212163325054833215695300824578944507556217648923697475989895935383686346192928725181351101585358054828115400206488704366250084642613484846003257070991223626911884178724222052888285104295853954564211459609624552721816589148699235201835530045121922914283327148385783721990940626759859234711818908344560807070338627897245695996601452168721262018800954980600321242373938745568597316408036695938163227557225177028702927816262723977626503253654887484972958850804075215581194557367961850657295608527060614386699514082620172429700331002659057544137683660087066588564652312399460109989011771542957465322437697266414928039715957692108648323529629795456092421235820695181966986710837183000903777410198862617162528708721824700126178205383439897437447688435572350796660816253748256856188259170812144291455597790494733782281261318624099388087928787467459020440311073865149656967070538189482063547305711152899416230821452322466807027530364823644871398753560566571079971994646464567377408004912498291112173048877811098578357677621689091912518230112998207684874984056355176287920845310084502380551173006628667784711723550560152468951180533636881100841469954867450766873028054509551839613939798038487601735634913974385145097789410990378906877774704699996227404579664649944495614937150729847114654699043419719896220662868811531928220358612779955801716904748174676997272200054476398891379837669844566109869353636903080855789454735702014435672460536196317918851248077341217862880248587896882192806240164043159292135166150073272199124669765817598991992251870560611088373594585337268861399452940787275950458942520933011250578800056099715277551111276744664819681869707708401716066192932476366183826441585191667930662367362311322173792718505081241966044843898074385686220761433907226955074734747189134795462745692397489177093394347055617480472374197332706843533768520385618785374129627166118525866015113979357753584961361641289668313435146918260294898108591834132818392237496746876812276895130506998489979877501990054197054469833654608747235968088076055770052145319530597420248346476313679185511200131069301183694322694194796609540180287267016296104854188653448017184259155736389018476436901367131658575223267406569889480266798379364386039823573460899384587521701414847073027102507891534567602744570108344118543076575130569650730092418560572200232169464988294379879294397770110108491789787582017445472989588883196077473720887313766160904923822414589476743536952728094452359097202186029012010808402219906230872143447376623664098129050604034054149137841917636472008639120265708388069805314951107512599292659686768904620537495875480917929562257203954234885355319305198412889889725473594523177495101567713423919744278344511301218227806229078185575406424386075856988350083633431890513554953223425910339142520878042207651963996234924073789882927523962775277605034935209119999516144960840182443964608020404304957777596683521804049916253799385945453163911252582851886988019633656986374368857236744639310833835751379159086905131644334552080992986578528786753437440303874161666290901338850331897021957115407793675305280835426252800783543016841284793918704817887422367303645292904581404504050857654603890212897127871942522986879658640165463262821121099471280698323582575006571574707169127434826931654329355942784082752626248373215227489795642220903389275714034230826154180231463721346622994698658177110694333425670270951310236347107926895069855468851636798157047122830751096274894044258873893578538912347645572177630460424456077873297935183101033586555100761497462603543534603282850864662598505913869077238609330831157474261038200655607337226794343007509084429337986660826952143009603760933406234647087628265149709943066323499089995898221835805175634343527496979101923937337703003724430088794631473013815277124028393372046555413372315270299449798056810350862422940531176180606706194322415402285526918222267044740822643442948152431059385570799740139759283888073031213939165179157187489052013800105167637466779093111340149161512400271208155734151451587883592690172836572065482423708105285043163436954645300213452341791468030594836228417791033102377926908945183805325232438549733876034404265151132759653180650391025061815894666473398632342235714583699107512007556938559006532001922737677746568890158857748880341598204295387876503820004094390504719383542770190888166504433955829584748767731533014275238454522778059856209310631304904233640357285478196509156899835401138777991941357115091943427734955632045865436247357341412417078522799129541951802639339606965312269132306804609267479905548606640572531266841102480192461473731969802406004759920778536444832215112017512024046748046320742989551923040006314273509825832878665704806899279229343702808501318589358223838999736886492047046746604399911197328835191891087520558037843704005015202623923910846735541965368527952866971174055226608577911226556224609747968724759203346015893154591047241310708819411001680245893353572806719853419423157382960568274370328979898356449021342819505010661876866673932809551600577582399816322616367899038413799495181754352544498927456859505553192399209750815207581755573615237401249177678457517199740398909818233083424789592487169774988527000435371716787468801995377845961018276683389180231723375880859113687478717523158632459653766984996845148517194090556858438778341687101924880835853844446440160625162409561795540724623204290010638014514745671932048018159212722123542377826186032585104390058072863330136327159826582692680848156046401350912767838895100243408547395156759452502396064297346982081074343044453674514147365719850207842401567081544480077653743641636380171556073968515469199755852898857995815499552793870986633738943137292728214211850084298785411934785254589731888040147361791602603541333568935650941142477027361701207115013108975537200022311861067309287731291692778187527731429298284094586969188531502808953451037313497803702910790422041403379604187218681182808453178425566992614655823906164633568172610767666733973084207645266896475790204113110400900255379876421940728328741579094244912047585535511229772339427782217515339762237265267034462873978949952040829357874878087114883370538676593495027822313552194737676607388239120036051086420938999757716885555669541076119343375191730648971476075997997197189586174060213731513582747750892195502839779501302196894919839002443358875175765265323067533270528447686284845174321968758168807352507829933291285003228202171291107236064459489415140800397964060218404041478836041454553559929873253850963007310949178842305051542947512233809981836830479266276741110083968978195531663565210411983526423654482717478236201365130016454074465836726173406353239275882180605191130030195725006058558042304709916686790350078589103619631374066361305350731312825896501792247382378089921265244302887124167258182436000220959911173532432916802504501937138678081376682764110786565941781756941531907741981514141254915582715724364631584898382876741835343085579137952699961217634062879073087853698639366824647901227379040662974189150418568405768263291966693990975820763771528946912294937512186755054928797525187548702768764958128155447181978100947452579839946909062488046516752203899428941426821371780832517373080469133352446948733969717125156839792633322585479842422851891046047682341438980652835221365848199066324000361571358009109651964194754717810390928382189839664538134586821067147035823251063173885498131207111613294492159333707601525447356441553953346824140451293387344173485112813775106247949867583129842246592203303777402250366420509777851858180931982806037724008104305881064424552695033642103046911350535232525697569306442565795839125867984928198043834740938563745472975856061801749218527257804931941712954363092451732896990643901312451926521690559358419215031694915171074989632814144600113420882379012288871712975636389781336785449526062405873128741386190424149743217833020144203015046341450851768330001293167041914613635187622543200783123859889776201151771956922858912670192938301427904164274683294191674679671281623862135844486039951938651756099649249108901701981519781735847160868779314795433256247555097761953709010192743098094487323378183212514350017986980175082317843386642738742852983699623634256051814256198799335872393726931835310305193815680461709429842408902482461517909498600056272894121510286874684339836639671169420613811799926245718682527912383667135777250959316500795159962359233552386138682028644590476750407423362880279944308681249840115970703859026814786224327822267384771898074131267128799350531379678599040375497604244445391650141615332894822288145096678604189879736030916953728356452537293310815019419985865005391699802423100010350880085587526370268465043298139535860587115798505260599387529962764448253795574671875406491085662479629907198749422216882904621924074575135012212161556491365198580148630443377633667361697969005065052900410101442413530886868312159943481957324151071874081558477199316601493818078881025548743408136534905209780307143610023845420129357956842676964539508611638942989002656725776754748413420907628408116917340964073864150716906708034339847706967531203659072886232796002411560359584851510610752058945377475823492965523171549581796258001008384540043154565478986303332317366183333882114356750884888202889753087656265916160369030828957441807311864931805871195198112945563062442332657027611656063852732939951545342345809745145121545634170699413455989210187351769278360069452218378660195565057926874764119835095136523370974050149441227964203991838806122519888675984209426358503492623020873479999518904348037298660474922111288683889448655474823724326294481946626282539083401861451749499016366035527201507008190464855600697575345792992090409948452701144440341576344461041774549363149445010186840674737532440386945124141402112549787045005109404119059412338289177014623744982253688461646007946439472328952658364552661431157305666008287427713692604241985839211783862067036077250136923250389120619697314638372108898347294888479990514913567208087972970159757321886754366414524014770745860330793673590116532016007793690069382345300489940829108644034304994726068903857585539827603302353114599338869835882423431392621794432062375357713693780365901203950662908655228074719544289288275401048693115034235485543133142909158988248541992816258569659883063345977992112812022890762942873166004718006897959826326567211233981888520080747304883378140653964839103930965112376655401106397897643382519038846400795491898362333257647130504789468618166896548110383484904639183692269916467275712473881739021483130404296459414356370206205304225719864751193104516648034444563431749984094814916284885838224794644259599319236989245994165034804223526801484621657974800013421335463718740579210084419153316923889356748871105685277368031818286563084426532611399750386093453783199702931566788114634294086377535209832258226627673530572967776997072948245159011614848969165986945991411061799744629113467110716539621730648193782489757963313288972980091004474708485281001406014377508988782972287075858324630690801303969823658905396526097486799730339101502497217222813121450841741716439804495421233522002350152895935279751999757760012057153175529731806566779974265721231244093258344203573292990644883660938063567645066933801848272463634577227478098549765933926458302452798734452092182185232875017865959938129172205890041119671474634648726711663263499958638815688197032435391104558927613038079666561817399717813458555040229714036085010486871841833971672652125831189778594985447204023339355580380556254888817049755982873889718237108422803870204560966606160933436430635781455909520379680942663744466845285846672622771042564653521544272672600537021231120701870229425442733374853923588204925261469189645062443131622521017309747611606314039826892019822216950370191557173446537539114584260585501359015584514130589431944474846111856164391954393782174127470396594735076180853512464575425591492030383987609839966705383311327596617686971017112225993546297060403108079781000600913564529527718704949591641833613124362757837693459855149008946685644840225027112444253752448193891195840760576256335977770957811684991827555274391476083306970342099061553374639261995039480462588096184259789739911552710103516907564816884253614814500866975362771351048683573054505839012236774291732979395796332900543752885954078876527239100831889034751307939193812740877808357547698386605662788212879700486747399516888513661104780940811679284514295998356545026171666251282091593921391287287040600256710574447407352192256471617271625662085339773516918813540944433655332060925773143219996837311582189836841782125203242788580266577855766124707973172006613739018423425802351161205627325730964194231744781079848820007940638910374948179325125554152605999235239913285180078462482328106757238520176664258114993597056061248258125406114300169995477684273449147450267848511294484032277956492600934774424517382186845319110899912180729971789051081205786657683639967420158106972210219093696859447984943923506457677824584683227495818012032540758737302710692056156780800283336118690006955985565513460024669762741192676404454236182162486320986391536247169773507409038524533427074188193941354821722557302099143884093355656217667318831841669130342347557188838902483273648239694834156601634185731742219048288036397287353212993841939923010132322136849544729895584827735934535776493193625356313628903775515146843016444490077663008448024473427793536619111432576635003668208636647116196574689617845540439310691768192062368923308725946265444298000147618912737072787624963731004843878413603093004019800472012797704244956796885679362906910423464683583122164266114095553554688477499472503827386817100849266873610226193555030022988814956309759691615916566383424593149409027371101548682407946987676752859895428631210226122957842780535814892924163924626400058572925599568248501896398513678764689004952824803602968314566019951623288181877104485960464070410412118937027800271984083467054768992827974955154620931489504502910771046429743709470815516879785195655666161035702073754695082292632642199831227889698026533959446870900869973269303865472362539708654471414006217087896230295059896233968125389930421401259258078358771184812335709901370321076542195659588205406808955423918848909438564983040633119448823587566771129171492533733449153225554043324511227145757472761614008599663222396922902222397235927017988575073133641307521560456695013036737826144708928450557863149209804467743536490852999222238656153207602203030484848401591580757689354834471950771741721366159971719740223869560013369124899486781842415853022513608288476754849258997624476940883704610122677195011479256592788635169412320496425494155910478633760933283048175510361872568179074709812978372745100886099244002921721254766924404470605747847915198739642730840049031789413115915061924318123084297918951170439866670541050581801850401689729824589662291976169423682667909752002443053371624050789489295086714141644963522604682928751221778864409678028254338538323932101367871980919361559363271141097701937843500267765512199431705620602176420385797278989620489788972136915417673265632125762214554719529742874096317878517233359490341411583738979552204581631183862514524314638505595912261344313490356070222886915734122434607158831623573844726934625322371361728807943743232219504750297801851399813173837682821065756856128279649925576031333608000452735636808359804331824607285878855462943155512132688974660636105339339373172334986623527981449824536019722028833762392089328495812118681217085607342803050546452826506479870672659974527809103177537350946217140363170486323819027003822045741647522532702629257259781483594575531933107467729536620882953665959976377513587566818018759885556550509262990518855276577981707146453098319784374448850973080255365073410674145541980919129146979661898065911703903308139721516264218797730262737033943042443724757662545847892063451204959662885418924842906033932759947399733735583980799375763644753725382762520760760971290909609757606896681605485704374543364940506049768161782152461913289495679382439164851602143049954743436688002645476911925460528683327834716058727138252421957508633120545344073794509510719822662976018705120297609622028151611257887332764222477562347539309951345382262050567245495518562495516485033412523633792055849200738979871831061510261416151125789979293425940184895608413488954437062674084027889773472221062529395371282048208206960795897682107891792547753996142156316646198860545199321461672309189579765312718315496244574253736562768658966192940777015779042643049215144384854882315708696462486577462105187112000682049904263420059820232810540201615213733847348784871811062829577757152476113596246876908718176623675714996013654201335540216039080929940041242373977363477935842693457564425070584615556826472786244312855254997035082259550857893097222184014119696637501979252737087801941864719893686926494372999853270224828809289276860826137206894415238011858191657567727342602725729557084687854649627226249513761627912985852506327762604569494604176439503110470600247795887643925367849242001886844001231077497127631980329867737488871426954581497647122570832102696037679923563782053979658655553557408608979242217966346681663045924568178209823025456157496133676970913740250821830543803346021013881695545005136773976196630190311821422288129230952415722124263614134672407521175369508985503738651485690125535602315319352289826485587451316343325791348773188637958238218547835286632450341747654396540010013922902418531551541112411939681154987320221121594239633749802402460973633050940667699119681150659243735452593866833070526178375516103912741137123276019389269270286385014356897037453784938430097666211693538274497825952246851513118226319996915989309430286387221833180912170787846477714137905975557783882112359071809354007596593536866875997358167938317687829677822180210973936668028554488080344322812695930212894886015084452434048940541878678373971031164795128122397869521506217697845852854174656773170988376854011458442807886792487107400039259437299545227208328241134261091670478428699618100055023966045460974481513361607542418216493863575278714518738709326711221186547454172421724382163496991667112322775522366784153755431881946656435704352511346810487834140480418935349544435325262049171924404261225036806374122624719478824717552878957918640704814244612382905023806389142553329859645403933361693185575228651419609333580591786366478180636869982003560911688295196944217681987909806360708847493276306419124541442143900035807888897805822298831558814900247166160034359276655640304239746248216385517592488277363607938420539895635252017112338749835658106790499712314658720605606367747808898199925809388543550544303296134055298201992140108892210526673588151627260238418031694883383117843735860601807779503679090831719533146406823892811658164672448174472826882452097404729331521065278604334059014232345165192930028025110321673744387851990104580352377269831821882326748105201651665960570685943148403876110139425731680720661173639573968793163850613031573371556085070829287157932159603194225778099916005386662090336202855316829835996728285435959179223551122585187826063404147679152685447998087849512489937767233466708627585740861615861383903416787876538387382601664355105455980399987999058637917219186809924739136923333625963787836794688097856134684240260628242750493893241568069267131910416228846133251381670197296707277043413325251431339838766970213408268785286620024140163002713595024473189945203660446491899934049521043179810043911352803596727080115327021375940621115480336092368908032408035398542114373213992228121497534933525799434295729908663841979769796171736828584287689838535680324810803499464973702620411264402789781999743904792130098630560788176623010495643380930113963008516192149580803097807092787595280093432967320289277528116401869321385362207252603899445715739507817358554492655127181371899977484101650105879577676333620167056809693679587560843285439318131688343570695106009276938159108196764643177778901808542947144936377763018912249760005879948485417932362293548480043027139482179159591113284388951196308602628543611828506875868022312734540370836115115799252042424308486315517034907785316811963203189560323135515701655233708695431420871598794598840774035001448417794439563673335397868035279655883684359740238107326594109178251082010236473968647680168616361272508732050972030239289315682671217003904782918038017788472925586975068384180575738648929403599769755451870684694132351643367243985136757712827551264486838523828621003096280103496365005638338032282805997345635407068428617092336066430090762178285180411329702374929528894596071223687482484419029534249155068556802894760588852187264671442395278988374531839118756575068167283240022431984517183989974620362192835565659974360743988088094633270647200672984786382222897136092751999404863979450308062112695915223716276998721917676615406564940525850951028179955951530332834526733034052959370737611851626438324775926454208122260258074375761305228245323446325482988069008798771476041516611477066357114168775522747084919815563492711520917681752999472542473699531027148508995914276636244998644921234324940719202187034251714678427976506334530584584737037174006882035606507918148061224954296629381336070184794759044885810445712440972148863877045459711888945509097646607210625523176491021820289132319585412245981960063049024826681333899592652351822437867290547149609512766265438913277694531638925498968431286867700823815633600103179301780854749857623893753528324889751737827920618369178223103880917485115617238070108308012807776223023743073050841524158411227553236669134290974886165840264883156898415778809550895174957999685233791930975645556124235759590525606582936859245182193153599687070805026227881905971602667295412218553596099756718773846939177874674408379532426659462761297699075283741283060184987125926057691303960447283092442283060225501065964791463474742147357434103090101627300868307836672976829921381427772104093936795890126077803495734806674934433570586231177764951003037316919828032460478239487047378845428978964443989873232024189811195210363084935714391759462915320500089549149696933331561482297017723362723940980361177122928449116827207200923951458236285096187282810682792881051301178261447836351907044854304148504544874888591040339274009181006562831231184004174464546877602038736837248967900008675122493652815342890834453102237430210331662624254414732984273087115322805381047190411590426130947066975328636955719131051381406219212341818563794798568385442561880865655161631999918886914888663916107936605909965202965761401100615712980739151046790554622239694883822449422016966780338776993676538816577239236465484338124693070024029860777350908093000508957350821763162085871788914863012062880749533216179308063498172149283459380536657891911086853818793317247289481838048515656125659616473952348608425413885080498450384217601630427814472983847059449341642208331572536827009534612134389292103621210750631480998384876710685214276236933552144944037941075842005886430797119077975740331960942561369039635137132571388739302360154590289575169095078166520049023551671606658668981306382192655061542365659034830179990384991127795264707476282276475144746528046205540606922728584335965709988603359594539162630615312767941261233694096169687572131596934967055064225731104223726420931552627364952659594987555851953797001916885325629521269179691163923981834351076160480128297106838465546972500782753930191799256418699066969620342052564444830315074509599471943665289439014231864669947760385423150754040981477012685001225060958521967986198120816725122637448872548980093814467169955985044314990342091557500776888038682848623808562771873868711892445266634793758711256745096247997108007419577296107465542934463874444719139797527650633707392234998589850999417157805088595244114328269095339188595234443980931644450666623477924964141988359713437789736476218817406295707135917803758457373374895193504363247061731897180457758662546057135322121370841963228711753760993574513386556947244898937512725210146707591926416035505108719499790551196449298593668956771087175843847951498882938124607930768108504814462162598527091157385468570927094137005985232375814001925777307967750371791053390709709927258115267331367142085834386016645540494779264372562392979295911638392520454169384941859282457926935034114535824336603198359120997421602322978175028481758831967397913027494398788582492049898676817442977135410060450563062330631541026281463358711379244339928071673479559057420146424477227691759068679857763705519902861944642540705842030978954859685807446516996339336676650861469382935276145092519260570638210829959491838060965970681402557829447698331810138565892248604098818404659473929801062455329774289141354087826422678643755104261216859306599153093833327652033126286332599041963678524473032084136724190537142026273251720431044143377850001013845127882861853481661196251372591223405056700458179121414035487103744837621563851781335553173463684192021715850961286519008685189874132836754625667681017674332202000947637322662428734538907124698045767118910298817036015017269316564007547445771254287447927552537016135748059108170889921072305627750079059627953903880250136733436742126244747144593606673323056556015255212348679221848951081513500280526736021537161431846975624931753642543027387572686612494399387713986760400762248746305998630207132953329974498568022415590871682445251902529829608689774424562664168416818920822620456166725944450490850536247386995300936293962917987730009265278103756767750629189225561127753103641664382642375284704195877088566677007289718170212429173812126639523210202338080509237405829529786206206630994665924463533373771954167302159557145260297922207675261195336208078115909116577240410826717151140110014527613690161787012802290761116168758957878048311300523237955018550579725783068177146914531229174115026948734579908264272117827320675616827770660421737627386305015194588674890511486609168401514072171467906002213047727620433720546068930533326806035443791101568800221561397814909539121442948603136387291015535693066604296858833256122303119963581334085719565101684881582216074500532106569593489574780806931098753291782607213815600211237990231449171078191513021699267840885357570314934435328632811193011347756124410553402387055883009336157954791243543749794242876882710191522433303806981920664475640887222824542203726836057976011348594520150773023097277415730682085454529081947174614242976044001959359516168895269794260278094749331406853253117886877239908152667826462429828875206774459592559967588669668314323488228293575654013580243408002054343574011212444464597871934132934099084226772692075232866230393120767593106783896668697858457238617669922569143656073091032403402312094325615983631781298106723487459773449290700857690019810620882492854764229138151109995601343803130834420881115086118560881911947218256745716814614600758458899770722925879583866590369165375450873043211591597593026838452326856621015318398710207033440532358397384994412007766506554299798456479018132866248781240360865124582557378912915401469780175196583781313155502936949005005235379667630720780554900058388619626390535929352074681511820793252352730391966383090258594908755307286033281470061001492261203311616706624234893740047997399973350230872124995049936418265111831056002016591298755086748010736865006766653136977140886147775935131798567931101691491075429928349057229887489911663974192064011601588448117143373916656539911255404898687476578605038483993521934980091846603714981191173247350123836359760427135168779198742657880671901232727817926797199689764721056183742159748492851418441946463042206605170609214586846247602186402003604210951793347677988071733207130319783379582646807712676352895691475967343813191261011258383437414667245679572549560006809322882881749735586337128463225286327715987980338231808690686263754539820568123630410729249219818726486303695531898010966915641564718097648694373989904865803217273762436677492045253166815093123841522955465051328047907299536369159100130812700222697266282512256614319040186787878302322789842105014151445758363081926271847551287350588504603083496279907999551498507964212528626109616764358263661591916992970558771045030713048582141574134008942700588800869072050430849673181066483269340458595973395723107808146443733598557668981292516564497621855399765432858000047333262254633168157308042216034782884054669735241889805772057182524453598511593368585847287906904985821711085861789752115451616827378582211980056334111930728628342442005060746326956845642811155650945282796524202484415740166093959392752515216016833907131780135422364948880945350116488822537330866509530025979799779584215426870260326431789399824057911795133642271844423443672172117783719436113328561420251068163709393339327050506508869235326743209866130584053338238592042444050592283775769521979625762687279477310508716206523386414394295760536533539763358059255195768803613440856009690982385078734048101789431921942160233235686401709215380229869320025800636683009720170900879138619228165888813979333119991141873031886667826666440019112766663794010112705051526072560547769089504935637709188077742737752002344272591079523791817499544668464812378388055064292760179218846393582616194368751944304913441244819677322099655337585295937194832420020616410947017688367914465411135016139588929498161217257286908450739096981874993048954874345043315067504464897125828284228072611284139178126122057118938582247178647883494713186443345215447234475652194842582375754442993822400345405135880697373813382714887121475147475818838967805065045185085151541727342966293411223350049810282184211971853714458054596483827777533515202179608508188207537201978132223745781340125417120447204708504891728951780488590065375292151357598891174194550890488354085129388153227388896449243501862203295355153016709691274849804086357632410002501288665907316953124841249106330549839112376968080974405085048937975800167890596897425134082392466528248519805361223539336311234261755895353247924750560978486501197227711522313648009937506159033919711001816786149535165903515849230145117621825328103510280285419595960343917154074585174646374843159894248519071119849938932459668129244353961278401761299114227676497288669008733315040605686316672264834637118728749189953182054730001095667533663780465358455519720754136987864287726568401094979012857130988836830863634350609699597980740838389830712286596770899161294856229509280923129186630412190703061445550156084124565858657308931878388377214340901589290351488175699155018761457391578792216151242498506616576844739342026656243641013269326851968810500535939548181472555876963241305199853953060430643915925949513915959727516108224044526833397866277094465496556865251279103070306512784545186406466831046857831796875691988103876499154806021749028525642075192081004072831284203331686847658346650975118252228090036995001286519063950690169340284276111052455053633971385158269938382219766712288460567844482992883965585228929566604943519066449886699554125402551052737343096249588012710054472862761904347695620779869129425806901915290595847420544894703757561954052440791548378228438299578390310027885027698055251445444309214050315070828477759498134706978657275039728038029450848575498663419460367268152327166033561972783259990516480789209587022209688094858961353454599260808974363236531588667973122189762154128133618495898064114864855941108677454359443022642793759019955637292811725856247143831016258901730150203451663230917511820329421611076409824375099055076702978643130012973353431442697068145333081269618349718181918157371703217333297960361811146168469297645488926709821066606888446429321982476014375916801315916294531674963022291342186940195709171615913183040932326679429679161102858283092418700899195175079850468128910577914107478298781569886537434665102231470897687870503953606510057540691161517773305286416584511344768176436311653944181523977677822184393560490154016775613927663016158920711665021555349810844864598034160300457273490553598323777711536893058291008676202771694132089728491287241832196847983766164509678219188327781231255863718877239240615532760401876127826855922689036309668750781626579117235192199258828437173789758622879874788683618475199835725524513149806751271089713465397036861723150126693182980347958239487896208904471601158265350419657033565116693777334431126945206793350095072155766132307560879228271784131604155400644026185850356775097352193231997921371696710625590448583522269491092089181051964437184830344883541097788324853029495720726637797559998205669597350626260299729758195514822460781274993067434278446939992924819009273935091772501658303271539772974202856249501629806607819868570663070783278167066421929842248224777893694911708668715912661476432793705515245386461130558508840882054744344349272640090794808514353308633854871187998937276256081711362178521582819939322785158499392602809794201366285193330438232228029900350906985424213829112218771636445933242199565959874170943046883135070867923977890375952668017252782869985711951675004663369044440697210424598126133428574719212983993153025190978245149877834240936784290107365308031534913360609983215944766470507502643456070701195892573421707400741748558270617251485017011921558204897051381307178467382612723123498896543920982169611757533945636598100417136655205918924649263511118400070823612210799526812237223099915474002998507106202434767012418125057647930942010337134170458341181955573971027787817853174850401562428614367543684665335256126340138153278807380657532280423217521417592153128889844694815102599117768880346813360825847441734977697336190188709783888370848962051043537513407608022027862651658416434978490986084582323092316158600019582776143626091542753060900526947248792527889403487843294522811438758796282974314190363091862495239783883886830123150301421645648563913509456263177152362157328888339030056046654148366349257455701855687212228391294455224338376714806922384032450848390072694375272163875339556354813333463939928154790710029937710761393682120278398583999616344079999937579329050981188038252582445847231495556022797888579775053827093040452058424895329974864833983036019169665646338411365825006883018754521062193608204546962422707637163274338756152979081252056660691395351394177055955465648936192896940433975156615344164004150876379714886397068260338948153612849403696488806288284896800487007029152508526378841582375833316290781101889792302931741078335647914417321437725206068467837468381855923373640594855942526025066749478037202799450789054643535132732677322403093959908001287411144887586782496062720321662945121929974124918768307491079950917384754684584157597617599364621104029258623796593419901927767355871941820029281154864540178550786794372908731752055127882990851235304831384840769626713006244167582823361975495643889908963259715636293802025556917838859374784755355622573782760884446110782221289141750308399185968796816399527441124990228597182974852945647723249140754016736195990964880983453700117351181846747351938726527811318615420850013049850934595567809052153882956341108160522936064743654663968988117341672748095680402819454080014799952251926288489718776371831369700200880947546423460374940537717845133642832741215678903489285033338508932894120528980487520414721185084967735896591511581813711655481096655618324471462032032708286963218327769668800378699804758559705641002817403353470334637167603114800192983162999160227404615143706126993745709048387018178685292649837594933878670757635295609589795801514407446426974478920809380125201867615759398390434391602715054957565948951523806075457249129179721439154915140785672878162402574654197559869306362082061300688250619438292601659928410030096570412508781878416920743280993498439905362864489060753691908751917198139757841502723209716233436226836495573707119283239289966971375365826930797586196130431469966478866779196816761147846416168615159602084916331378721117558819129177737940542606676666414775968929313483965554508072125758817110108425937565566184619999911662728434858406402455663491093080787567108595965129333926913579933885110012181277652152589598112809976230608885367173678805287395361946489598664143886710145892723124185483226197721148103331942257325918811231181222628677701002564718194756998204516791615461653017451433350725422945629613599087807616241422411173734325768725085277614135555045858317071140095355475979031502532093072260498886137280706723355104323809837969937267742656302832452892464451613796134512871888204369577346905965726408576030979207751377971430888736155318495254416469344115538199252823934563864679098658135852926541602931184955287935994686459487631799899671192540500515134199621861565245276520127295682112116322836044592148304397093326921281570638337708255303362789301206822912140355824597817574157541515455158920368625704571852558630969977931490877293746502455751536062984350925547896216467408632252105885049456674024079013496871580546185095606883069385642430829360015713488026893883031705110950297626111047786677525448908756236000590162528781639618991706094099091306943750913642902757150318786893682024938011015073171255233896664938295130292329393403661712912193819502029910361403923825968000230956220944893779781618535497580285626715134064719749581262794712466442090005316865931436170737281879966969258260639359408703293323877215757148537805219717597277571345616772617392492376040574932251364097581820505268177951088120084953956482506635848090815284005017186595775173124370883732159046716375097903609252517910295760722526555339539946356127123275485323219131491533656939494820420342677295727531186352895949789916445593557473948711712495898355679526827714913989206605027491274652525899697652310551176018937935555027006307053163494271100518931921276237030762776198867494026487546733914835169876051868159898958257007221318453755071957191797039293373118488303177922711768103162122713304454458051193289731747374412988422948632642047276882013976521700989385955282035018425701446927063356176124644853636237339216376258356634149255349605001612954061069630635929674953249011199903708744980831017994802944364490419095507593757035480957169197063868867705465200824492808920693242775724508754664722182378459228296801999747822323144112307426403515579819305447652386544516660898687685830732127655005316129728741566476147917650627962922804959113749546262589519125487757649133334361872670700085845739234387074607530160299640510694595786101367945103944177870623986054749329634841324735488244993753541526764486843689397643191762784079175273947523823905667240036591959281031032923357611259825153406655127279415064982977335774390686475112143371577935098079714524960633546772456956993270178635727570232130298055602389255824095942887723380203642050051807808697312471960964312455543039319482055186860973736553934483117370731821795272573506532567684881973222654867182974462044295224803747027683929033614602627633731454247266607547399043693763219566367378294292633876714239779821538990839214333743300999507988525379635250576870112681339922728327766122313832668051025519642733074342021350333584183330378005894862444766462871754807171845807093925610878623753632843695247307711210940596225236087426538563764661067380027107124705034692112485981707997565701647258987144141949321050375347247748871327980578205094650405479739620225810934704281761072128074297203722622948955586320679819740018151182864292794030023637417906347159739382102671075415473447197232415363794447297547547127762538105190450570266157267392765566704418873873256558426537964603727535157229495035680075123791897465711162248036918282587138903372680705794691055180398682076807353202756932741335273476590169159009160889224028651955540407168578369060247167007673761216749078037941808563817568711783256945889546483595903756280642913201574796350487541687850384716960447551720451000890981604731388943395086733782930175903213533715871861825262202734190032857531322642151222346876087764986511537547398451949291878339721483843909639714020329998752141877677871258796126592633826482227951276342279458379429459897423016645621431381090593797140768867039158470316111542309282246607049638991770329993910604736076772650924042164993196075936069598391594011923298485562315814703732689478192498012388508995535759222114649980854621563625519013757870964046293732837110782195890924900009611668293970778818820305888270590900380547107314931437250330931142970157752893358654936768870571982288157139810906579400966170171489068152607428820461432413727353595141215145552946176143415902271249125750201541481700417151004005470673860594097755025974146142016513421693499026745979004359303302366683606842847565529094180474029210956844524195886884806899837179156693189397223201606002796714610539026669039776998101391771988995561136808250722546486623041075181160332102222870366588176188034127420577106925975973962556884204365923212987106249666493511674093157486819919257292565967538416522304844160157351492960600085892714172334366963764400296639809525906150235136371531688718163218458054146137192681388909251767219031941022694113218345855757203104710460414918658596848371761143083989574076711917360599853867791465618604258338738586879143833473914257102062709768876071221833630432272521617868055203098484621170479440749255898066736877334207433025603023654679357270967774943904927921300165379507296187358578414128397128145487608473769195197181823892116779605557166590640679989410044489174774070289164324572301085987856214201052320541207221543513055832291712657081209292617742167799048408053412308509142960814441280597394091628514042755447731562674587392342924097144110149216412909872119304893424312886278391005823743958418820489702451204124097543713768017694968947310944263084180958443532416341204820982154317706506754681089321606712973667781734957008261058697165721623373548451163001821545328948748850690185288078372503773187700875247483316064464794123240080650219982257423661593128983403055779482538324171993757941051126670318623271090729481672208877231520556146635333082202131522646596093519421209446811884700129704745818866702295595875832140141328377341924222848138595325593848098883722489281149729748656871014042428904265756386859789461772223165120261027853017086698751915441861254419929723127013666855848210504952438267039190812211624550763135722789812544435518343126012265404972880545684462858652903413261309048644531118032558880466184438423645309203764253616880928571844678879804724119264881138746894842142087826987880742104020384911667906702980896354665486624336426767547024900957629676191268953334253842338804101993362087696060604934964640147810848045631276045594261962578810520982445272512637003853895974895758087612388261408846454700011024048538282663959794361518119771293682271137266509643819270518402787702713942830023387585880555548035174248739250719423611514628956144305256696599741084643293952525437666530609511041033264669025007133785081963611277954677469248416393698494946753689231790793408582216660380379923199955361874955675181217198741088037412064457985508291398944610904116710959731858265649745540890442019727448011482168817211801761440557589557054938937969720355728336674070041213373919616512063076334175945769450930967328693429081162790809093008414262669132918583472230688770914721334636786766227575289771284281319643954958657055114809319373030126010276057710714591983558109337862210090203439958470194309791757788535869548529423218915585718302967712053979095740086076158595928027929957152735497110399715381003638844724986280813756893579708902720127410220327706026958249917788420852901312640675237222512203873359514480245696602254031490501875484517366501901742711444171841085196661006976862419860368063259904095245053978404109818577765941926558001079028975012892778829914922396889351216307997765130746646165028734882167719675811560282209341202325762752854553159629198672639865992093092593277566575181687952835608316045862483530724537076144973539678234860564837432611837863635897447957774986604855657359497574478068014257340037020535540609936768123840218474791454907006233398218382422815957737099844328505790866479136269841663765914689586338277292956551075951659697889610545123002720933510164735760124223472608341500234648904260377066112677698077295546681284695827780093467962693843007814927942246349572653723041300506718925521719249001558019762161406720123296654412971336992722868573314819547745471179796008521670452815083954007974827525731670617925018288116342648658465236849813323283375076532546230843937649241935674167543784800072093843772913696713550962317206546557935498509732482142455423893782368491187740282456553562462009125353003339020052766239076435066340194507191274791521584501151011801894063082359395370758182966630241194266091995450459617640320930654089568402427038555675780212044659066473987028647098156591605491969557433059336805273297096520588256346242142051390193664498859023889787611599384016219584805827846298994866266739358657666513349385708804628439348809459423092354919375154663232724507539551405624626854707303506102289010131997583490897834000751569337642829717360185330408806224256425896492598330665532636503297335368286204610462096872783524411970977525954386593208111807852205430722702227089878283958492477147515254720328368182083198439658757289596979993165481070328055155576356896527294065163159605680504174537350302172465194003546909991357133486444311172735996161396312237747111360970492744509500875012052539359268143951446204893624944917144225297036102816781479748449013765002000947332991973626689824908620212062108891613602926904128562066907133478058911339584970174542843725955610096460157617110748477179188875986619199387859607851404673943624276218026272561227650489747065081895877008878252167463873938182046015310656724376155041996327405442458206135564025741546438254209868770831066253868255538512987163638134436529024235188547054764513903954063144174163927299497595812278991962276961938217371977173115591113714972991698278793032926214184553318896280860989543046464115384370546226737206021978489493803186188919500125978675405745337354222571481550965185533266374860115781677576023313648906517307106855017207570593323204449752609167976332549797062096538369589443353421092758450608260075789711165373357743465728082713434312995411590867288471433419627723410100864408269141698137575471836068742181926753645003034079181459791596476620471182904924863301480258074325016569743494792601365366123769849673501476104465819366005573156986927017667224186069266441590387558268833219980736928258236628323543339970766201296640433254412974567236806081658833313339032202261188581856170083987603065198683728941505925615889841278999458913958419326407893525564542242939813139937292243743944786567071296062965268519150734842095449522631032850923009149228220061475764721239712284468592892061744855476578030872022744973481239988927869154381819572423179321333842746853256951999279792223561865760976892248462070747509949744473351041970682148620829921272419216643676149536898460911137700395446829655809159758077890921763429527061630460408042159453770508394816014722467840450456241485297143960238439587577561569261097674943888761442192257250575110789908917832159659906743804105675705342793015675030708169286120502969148926530408559974753855729619658391452750461156265671196781518254909361871810664529099438212822114182051738684974981451091390028115881276125094678259784900716427036564008456852228610187276719285749748527753661316186589748466342650820072652672229158677143284971243518326545285826560216313603066269505016341152454207247049266688386278353657301500488413395605426433145608968388525512330677314636220168616990116158253492668626700952579082537408403357848961095291070570536659074304693728678737050704302873945026188776649338859470484489374096848081217230210204101455675906745563603068878826922521990646144295264736860897471645754619731742526462120731706525836465583520231111060126860628054434163711711664084557945258311133460863532324201151310516451944242656688526623496938138660364219818213410010175082701000365730708120585218797476490877817027862392248129080519929585901325688739776412575787951586621007333638273615589662711803017844142945572797040101310671505717031039976161222420450068570105284323922400967231850734721006543704162892742053602631639494812538117839569290791682860036240519474554893164813696994627614895586504619729490815019080052254180027122749327009823257884376494885971895186482334346367888263815127515530817312002110174178853260236534502883981090025762848909534816581320817732774453855183010043038523435773873201025061823369449400940115102227456449926034417274329023557732566695492275194706980117271970442910012193065346621439792740536412186717671454894113004239889291712011144590570450910541490759600191673800148432060776454330140034466852054589251938326413771132800747794166528215836649261387265599504979176521032905473903538251528749022084598517109916138916137509175034472919714948810949715864552198210792478069799823511603370470729298418337908962467138765150322797018292561843636988660652400133190435108072227026360195065080842495829597641800008723209567925926121140789094738906159519292404791882228135179006619511251942152165358936626342154279699297020922521646902878982362122568867222309600862385077872182582574125124558129505660882512505488310187973674411199677953083617763741620329733552615261235610633653848180344895661853411293357990849514834388138583050886907500734147388407934219345410499621405861832240337848013716002198709732099423395686030134806632518134683420403683896483141027940701028718016013066924998951776922726191655708137940288986595906446434116698412375761341119087027927943521590538416671879333215145696903019858823887429110140181146985679894650906905716414181416706043306466795391875705409009071947714648336159636660317590424800439691515714389025489470072373536672095787464130290659109047020485453471280654822521190289051276582379517149583149774190285808907851187566276758372839712466961816528822420952486209698996147338919648340764252575563888143497010115970219547952210752115272567758921560191998031733846566238461232355787158773992268158834640039981908691226152122355686017381664936190893089890780069352653726011526476613958808612928381015349842213292980515099783269662254922437742634013910323465889445237929992842001177235919880770103528357927949091358731202289955573664537771339463125709050849407059200314912146903404044266619666184635481212988976913617716043141246486388386600555857408546490988267821622621109062292497756568776335744985450505688504594620847841605117336124244967171286883308828947950178958390120342837866252380350256893986928480747627313658354868613178502077442046833024017985452639149691431791669200245940475202204516831591502553213750516211211578489222388842988855592890244689533795847970410594670105592045495256958252552265790222830880887652932124579435685398436846583605542177183846645331379451315580828574766961736972863808797529761279314509397749528475325745213395634584102619299894622644233618608276530365740206533305255002053655845171971425308957443653899192670607459850598235271389394649898496532505522599425179928993221561314737261460174875166952849688277650377742913254853602935534898818001699379156248998537027689350810165446476762136918340039725853611254240616500144623809773059849302432404545103883414030957976471180892534964262314098630697075555965587067719183291347806334714093764973608718499869968313117117542527715616258525438279642394884085471404483222981948455757423792211782664136744209286270113095608947569375739748138462133823892516379510296310179574401752443331838175490838587090250222789254801519707000829839558389445487450054596540243082290355190979674265216972038773714658453632003847000883950866575257545958601628663256574644545193514650784333447185205204686580627719313881997814730333506228129638475898474165808306915713124024114395441609068595206263217172929683104984193113746227190478866357476160048663928322812963689509318776720404055570457273720488482985186845396305856923667591992682729683748468539554615695687046809986566341164081019628623436686202675402138210187512818418039385785525889383975547079673389731777788387637329766230550348104320743478701108323356300906925895504220720689081334555207491195188500047647189487782775677645071332025815019148730310530548092208865155804809759642141169152295686820960238162326167696488297645938383277537348447499255418215767586483481651248655340266749558479896234953512860808428501862136179439400226859391109035331181070974129300015459472289967733364574276678008470170806812448716139056507749381136762069853118394370390854340722033635710456910544099758276499638783346194180445995147033405411791024384152040316250538251331979471579870196295639950627823067958155627884185364131398336881875550823776715450368313717679812950095762179496510792675863342561003139710970785837116124914726761144428543909182154824217263134091492762874206391708703889544116662598112173540249737672873397001329729509365551719580718439266320628243328881341833059800753419549414863866629949326812655404899652624371074326831372958255673448749439074916906287696732922087548503559041244786366237389161760922327123567937596946295618764691562016431458303964563920837526254270549944250327618153451538664190509642429361485359235279743829034982511741175254834378372280016853690603849856761622380573292995773091920550108582702448939973789671692286285664391998625972843679218620127859410942177436438943437403195395844638859641520870767907518845604749313753565994457541004702805647275573583317649397609685555845630898167328982579170186755305967054349633033582842970011844038147552955608627991705804613544349244558352765158573025284316165308101712376721909226487888642786959616565965928803243778446299670711505457116278140803514865114116683959528920996798587845670877188817099170559930127033951301368885826203766557173208190314607023010224062420283429500561792378817749472341743775929408780008403195394537339916376322510852566022972081205021971616652662639321830713919851223279171781885303173999776276318538911225978809927707845151290732721497046157648557403868593192003553648344849529203526275236575146044353359968679595428117627834573288029678362161862295137548870043919715515761040914964302284084222233217056378326229819604867860118452977782982958828810664542211810790237930047832555275273344126029800056325778214375938740706765412138116536717212460881980457769039903037965583872083640040214140645055470242901298862747325120730031815576932080478895710531332203229923952485732948671410845866543268999850239739124327367130477324689762085038136356577266530845385579480488331105262983452452810863829975354421245461521795042170036453752412938797387152311167387593618641446594311345813359115020102798039104766923174498533263123511613200507064182438535732833747100825863009673599832393355406164771443880417843516458263541406284721967109037434781275713364960313698804402856491986593151603863796597936798410116196625657370111514422074745845452698586200159327997210125084605634081287326244864416138116757501295827632823869014879435345656594461829044098531780136893709085597181026836809616190200311132386577265095190191495017025664470289973292098510288706951134907450726491879429692440829638149269284934265265804197033190841003510477518404831983200730536824641477602732748600002527715617673194428160121801838365763543522667620531582889510109282550159983540583532131258593755455281023039101804906907093398093518542222059818127489844570202338950138516603573642175785888588303129338312772593849708435331539536559994011454699065693770656755979308447212931786929360891484163913520013088759806510962066324127281599137964399228036959544878757288469830068173769889625229715334940731314281527729650142146501661294896142491567711881177176725136275458449090104232595958106344932893859215668124548417267900030330531513716368134972834667858626367499143714941905782633682584193710920920458634266178231596316828682617309858801334880159805955836150042482453981020543953490744220848280107617434311995657594467895448815017887300046506788871091694867858038578548165333509315651396516210231881804789205653826864208703699018778901944496909668714246179145440995444887001620827541890032997305379406690786960192290358855700861738782441586233514134190259318317113083266720258497121888123398978004113094867063287880049909964822663513369486627263203076826735293852176783079454460657499062645329724760088045626138061668378935214816931695630269763862782236413705964037728530141071706590935946551824569024385310373282637572688594450215927552980315967182520293821289161218205295791874028796800893905077538503462316841217066698185900500057858989905730177392011265936118823089173783468133559051474243260419136933310027670110632191021664898670818658542759763902889722072041068451860091427335217767612659044732064079885431135952371580679443195204012395531757507088569210358389739932544547165243804478304027484089435534348746313959026521795586908292346346775360026580089364538785026874853459766281169688138008496715387331711843466026165026124998229157196381683177453337842160786723542463407497633523033924327115323595554455296100832884722582890352044701357326367945324863208345807595407335294190988523081590848351096571082027539898227218935013464055159891557907782246962866241852798504640537663257590570848637996176472866426164921410599302689520958606171944845225455906734203698337336497961636124484038110071738120103726921364790257194256799703596724276682311377373957608783058472327168449189112021808435817047580226798107141880137036946792599583400075782384696373374021788703896056206590067697058435931002079059619288305280331839790494630071940010009846826505966801144884245600085414559340554016575119412404807955345826749561318417228152564580737288447784754019025205669742372591926186503968767644248473618130620019224863511114358810802250753384379851837091520311540256377849235449476749393528754124435564974438271463956297520012213472408079519832135381971841323173978261783997664028694863709600141155459937832289793554919907362258765663189193018301243704539691625782113260961270731839983843143747616118791216957843246283535622025975572144548780336057435132485416518452539940473364338398378906442575371017450496689857852551562566718459103278730495767763188097556068961288339554001527492837295458174313896180464072788518484690489910473278016319069782157360963988910101280306178956088160820071982847776403578895700297763414746689696970903022972576521775163145815980840487730795559917973252194283839457076106002919296447167036475126950550867548795152845174504231678178319298496936597866053021621431716994618031224988020416556362165008327202336456500232421466942267405094893620371317067634196960253857582203120303445680324675499682225540388307858741309818442087740888516121859684338462457459740623325377931282720277859718002965068674121807431514825735241084828734594373314515422656299107768251912733737506156729022956340222482637490997756050566367278509763026406919178639614913236232972086179948821997287895039689864954631409994401368675204757158209953819562353344867107555220390120333458793410599918653832575978346782488827436181196621512163619395567384811296859521210776853232416089387713811928042501458354691676568524198816049735106454364930869843849944257819024634870369007230306009774070157391637687945475921374869865445420191668182629331705658695440561281723719459999695111914041579576849395822462205205555006326669669408372909951982150050358186321366540680937598073869457270738749695223616960204111048371485187809678016572146057536366450304423046662214812028049226983874264699344444617773243522153584978874736992800489782895885584536931646890773977499610416277817426770300072867033247723560478264426422607529591238926323080437671718182107021594013108750551184357740685096676687645264212975712305560446333670508329658775454340504639776872985988355329455305768205063590265764547642341322379615297604262098592847406267411859005306879581234928290133183969000526711406887118778044005524332902039885781243172871809377182259012281195426664723119386326433419921757076977980626701906132033444888349618294359499098824367538241221946544172042029668336236009458173911497765608499267744643674761417933438384034975943508986365856742057640141976993702782667688635140801180150073667579863471721144968485295469370962479921439636648105957096426913627462992434169483134754367224885583522582825981117811348015873047553735607388004883275588055462786851511665858465919718998667490754162493005629824156570347323790790823582806475653577719764047357422882953489349322932969968767414915726655493547939132383697865274231335100220673916190187576297355578727393616952510708426059245492965985891828531868833375989261541484893079723082838467333219650262932663354185876904316062266638400225983596546147251615831656656242506919364520448081569975623729093100301578888074220394270909960996461888882308790812084558759018949471015964576195590096010563346748026639300120290801005004788239538065780949634060428414674423835944085894299869432584937368871086423891121314402302198891252940861146315047715397581213813042759222711093285708479350658779578741247758738851389185822141789388018734354993206155235819021346508385374626710645530596693834285773790906626928476549357066692063997102102181707845753774700045766536881742712545427315830448462081463971959903753401489244252504564500425268396348153313065895586964276685182501728715275307491582957134449439151953900922997151637070095706535464422852361093276068295887586462391232693914654871379729823027755269521861695099409833942473999029527490428687455097038824702183839466800925734172649608091873204495936751946168137480311738473196731891399303207042425502630924646143379505469133504242795622776378651343440401442456122816517868647881211539023985710579848598703829097708695577402680166222959465831061957119732368803368666276491328407354750023380433873873642181266985011786075084567328870764829682674333724826587405629019127544282517483604772512160479282882090563399887907230210196663256475674409657738761675513645234945195065299651093140747761920901528676081198539499738006935929344229898447550130303636361343276745381496226991219252164702496484233464662065851731329201634826330286744921015314439336457510210362175668847431970021406522845480809234654792902162826150058434836422600201593004699230047653224105751576030796937293239955234295096946151931865396593997599100865487186385112290457526916985035142929399333731967848874053557254875376329307357969442412249266812011910938056273836990431940677332307433135533392302108604732021196746030219324831734558780854247212267205556756434359612365850591892162677690357118054869083366324532549087546465073659848024630992672802641459365731647893643426474331746144770013487223656449794371593334694559672172528786757290739098527996193408968513069033493843515137725613796161849786050588013100769683298294820926842680889516445219764063143955452697226033246542778226802718696547353628196247159796521958968703994464310217885050924478328056551311365547982602397596391906929678636683773092774115315817366829493274411158367710451049228107260025100640660591087127730835437592889064644500637252223509482096110001649189080514909357700225656231110196472313045403118307835097587327976051544845130049650646609747484896408902275866096451027086030072109017681088725623343261833680996985061935632530727785795860408650162507045135270073493300549448925991905748899080314673105943005786617672764025872226160508482482809834324299052608131117140361209748055812267813057013898051193574068486486537349479338300490320065704764310762366749543668532350783200587362788847385819065794603119861192605804747668239847358037330332903579502150555596762322794391597291048799171084333337647227717429360708129974181924792102336056062964403024125168752286649813823184416125879147335356084398634071595948102070071474444559751882391160280089844191869315009872810416051040875556468871138339004495975016604903546999972534063410006346453571297317120091643629322782053819960052207790437640206636961175381406020337975646946230960282937581144221280872721243178597534032980986773284630732012808168899456461827500816881183797091764151346001889790674674533374727394837121661753190929640118777685205114178690111691625498773730236367767090268457476508495974528785256341182507447318041702897957466325006923045785502227157121572588557514495071081732808466824824088738733919436271014183753182082966966781372857720793325525702371171162040645873907498420769514266267908785840443569787957078452005871045986961325203168792646516451516968377145168455372739890074600207309004159217437660753216248763583930887023318372005112860298790146565286553872774263325938729255637592823589031973536691481976713924554903496262794727159849620150721483892782719555000076267524034800386750126443631585769868808706709273314008262062907671867062395897281910743435160813297864834123582768427698345481735129442170924893118264064604129150903820298692886992905734081159642862190264309356105997767615437251171273043043067320864709421621536277268626861012299270167828191828659735133180691609104694622379158503675837621529818372310122204508967234107342652143271503368017504243746920425330513672384096474768250472455028796755871398371147014574703362682069580904378621681584922694053596755504554650607910095846800701039190807060699228253033729240736326063049962181364668984684838675329228144008079640408745407700949288606539880690844704578310977272056857884655950105446049933364816463046138434407714269910409387123051654253810767312073104723248415570955042223512189252983439954510146135279243433468172917562620034336478077504239425840064249424703895581792326127929943437126698972783328571026163268346230046529626696409314037741580238275505243035787311370665156010074869832515212463923824360666737026156191943100866126568340149210956804727835999180006292226619419972117400000163657995936472071919500323256427070765821185577259491515838118576188265925368381243765418822406029916606642673157094757464321199136213112139423758910807650123202174115736368928183413847028924594875116361844004440001459584766293934630947971586639203045058941985732166997677184950443606894356095204294873644877512733337899586612880815805948584741002273704242212373508656507640348348591711159611413988784016538785474966241655144226798748625520366596543191993991304586936247957891930496384106414758030484078344560395342313096739600585894069389515219249653872494758712712090306962063446869289170762651704857443922285458503303827604746528684380006199459336779603111569022978615539056785360162482160024074596639092221262457635599627811483246288648846633138837699880823197254930983798452871436698983142394359039727430039074463815962512951157772053452088371466135387182274453034122581559635178413889585775267536326508426683322773419961802243408616738720348029656988817432212280823271697537721624185917620262166986744317191871634747283584339054805522255385434790231936112980769225156807667895761071218596982493622148676219730777955625299317057264748138083544997780565217085691996605447279979441273671175059519009742856696904609661692349806136775377696677020448704694710334786745242005897937415909954811477697810911029346285312605524233969007455084630855918335406218465777090129532327736762623983859865622591425261359449483173981782201047165234377083378898092283990737366230340259655256059684257199683309379684887441414307502078042524480167222577831350149520121859338572546823106689411535488323582265909623504676210392693317200996672613737626614383510179405681949827777779806380053746826756522595793153649475793166521796382370564204697133628398364537875689388211091435917381297225121294213911079803999314812536152650927529878006917022913727217067930341975631308374489718023381225767236057019904542417444936476021298978765600238277460475801049324769970128339944071115239233731168585316709189875453633006745837682301522315645153144489494915036778520316595286930155466531150353575395214491095062766373387687164791170204572064568879980725625515812386763650855361666931415511433968463566508346410547656259481269737586330682824868155752269413695914267493205794054129016460465327464132257279581862728890376300898697581961626802655432825300720946255793152635256218982507672514241885987917117903649607307253432260119250720615542850328225929556752721318828372958900813020182303257210723248120810899774296455476419897764385962589987749974416714079967913452856731242730283305454527634496440942681343430860915234601172680216370871471645268030735567846155596799420281564139476501538755837131531605101271543319475927994070398136325344255619785596965017567379099531481774775114829526969480885166561806411283073508646273207462443800934694450843624263501558838169269556031033139167135939067988558794637336256057757020731540189427710679571280869331337891771662159395614113554692059859528691204734085328998945431218985333770895638369208856554557030941094688432258070168475005852052969384104336701756138549146929830469143046476402014619813740062244955964331588959384631773957229479571846190897204607344185191199710795780542058026661679232922916771053199583004558582197091575072438442241902987950570965565609711131842113591279978716763868565883832098384087415678689515436499009528306060749531133721095525570830865730718797541353348671260037774299389477084056934813228787158605459826792698007829418924528982389207913321229716363253560611155987038730036413002562616183884693656988050734310053341662891797055269752893011766795217942398101432670823911703352958055303194446248643078544902725000113131306441541461367154513141824730590773459450829279541263525877764761248136099291520075823424874700861708438267664206495328032081612531114819269455047573921679428424402227718617393051025971918407878593579332361982704262789183606067061483056779668887211386521129808167762979737638317387181738607493294099421002327808692588129987895609399223331425274238062629865503578481295810458046127457027034116005397472145367114597409532754332784350151100274163089347609573347966842046516357535078444033510159348880146043879056619903627814608244387138809829941421108697488283387478563424081347462083509939866674179645037262055591648096134526377893792931785838237444956041893330449666900984215292481994222068840983603141138280990271396918346543822075987281483334481408333842092315906392498063260555741475352966146030998005008169259959319700662674569149755135433648776582885448564137742371762858227474796278957202263345989624626833432152394307156505741853852090548269765611835098016593143989448157467377067402321482073764702519393164715155014534659532547311058111205853221543260855464799311156582727513570821170710883056127887421051889431701812386959162144162324690131937764846080045113171216141771600162561805652035843928264967260336580469371960914266140732514548819701267547996440766748002989732817783572405856616053579513537077061129435220289339103999222883269133857788812370668717222022053067822966197098644169091461805222047145424953908878338000860881112008059761361830743031346336918959294107652461558508849370961392782472176085961717333732374548979408767694422366738802249390721615161002388503212290369750982318358689343761554581135428328959072967406697337819544639140939162485694014233085572963851132150568497898398897317769960066063490133441242544172100915798210774975898418768619078638799213591836672671628691552762381606789094772672454212088390331068429532140716103274515201988671575195897777095420691492308095239080352580976418606818732601347779085764967362404403143233845274738841121171951633165088241642533888487832300099675869266589794876446467218706520127997284285248287910240348275781533980531156784784427863999862389320039994546430518263415583935908157587957081928064599657740252205949761193571142540630242747139345478094366336398195907479489326298588339442668672089027168467412709469285254213217404706552620022011033855243918149505704433624504275568291673324206452557657043681240802070212808254788385800887293888483250881721391641086795814090340175234723467444746427457943233906847858521907270103146210397021977932036666422595638437894335735288128561358814319430762472025466660567205455135912833584618285306173037265105259309777539550461841113263184917067875959237689968816560365602051187706546952525463012291011099629613184587143238219307962434721878453236318313185125798966353623133058444288429314275380650319506825892330960328535388574074035857976797636417462443635437881337627714609162500997470135831887356971478884690550896250603637129904548297355378776211309814806016877712187121902568052886217576461865749938853386100787242524444045301192301856566454591511503835649585952563923754759772262458710227188907730807248682259335511920538526366347890703811414252003083505983896043243288927784839262964924216289117043189273557526392311742640051456052661161149797550541905900451704032020721864564813363285934720817236655998877997900103061993332009662496024422074686850920174726401361050908570368042042058476679493117505985893953032167814970321368822212447286030478509968861609494256999789480140385547656573705826804772552598622478616488955454644322045670938254445415259831863169238943304431249830356822723143441608925867453469251925210631717716654920044504708711809170873453377143854651567244396078008490665944469861082755303949617607269561061115079932638462502717643563753916520469482210611224244200596344736491171622770868573236587047607180671941205646514134839552799093662861640721409988845541339975972983850508745289958134710127794302866309417056304543790313791760233485788301702451871608651862792926667836710825459074096239208059421997094570815653031309380603169492801767700800072190681492008283111946148880908287957211651098375083699003643140322588801579675686662868601378956641048732102220364198786907266511308538208515247440625471571283674716566192063852757044880902210808309710073793456702619856716113181983232732779723967651907053452786607242989960933921766404739239209558979587711539108790387710474633690266845085789680680208105082265158999996940428243914930092701580500350037625582099173626899711136371838236790547655718383538022383705569442561147032351469506902753597316384755285139197431912898482226116890477093517911816684678120236860236256859305080152180239576202452246132309709697729237268204919895349074172747337127642418932673686375315936633108339051935745517150335799908021172530709854636282292268314119936166245713645863629296314697084556718684015149980358315498911720259065284457009377101797137031937094502620491805974013013959474130389607921177364236670071001979953628776337651560784402657479722574659352366608362721179910798233932906268904530557199599807668844915706815764873589374752904294105566347864970715039205265330931742197444305191732216485375822780327895695993408193668576491811139137685444914999172495822944677123740980774905307157416724015788457207364108837062851930607464762603158436443184262663144367876886224169019973276748400330960831914274546357637743093077439518241245351122767772510057351071785211384341510001454583818738593033624391970332940314267358029432522489848520387908208304599199606001007489971049157407059078028695652733111913141412517420647261386746718050511040653798529798954221975439878819699047753072171457083701822771573117633261231757532018820260127835060122251564804139919546258965105792998330476011556233176201638347657240923974043108504103740346506656060376359585626724280820090892319769452853901808178842583849864142995826423204186239173430475238572356477518614124495978392922040841825571633464243244582620187930739043035018827768768853221907718842040130383513425906393472131606397933493778096388497547585163493216129781334723626495367272221639969579994766827808882056160040882996529673519541828047154815516414288557483509992962059099366898676091588798192036463917244548215408700739768677750192494710203338046868848962396544406319013763948516600943675049460317519860135662185946472434061761211183288475543949298797645494915803538661673280106332513232918879649918186352276602054757752894632699176666330748898353472904387144266867343132697697692620411442816577492968064500168439945734004380365445767717909401715009453504470127820892332892134196564199582218199948009392377437988280834203834713231091126507821281357386780010395303292637655744597009947387915460690167175203285412957807618415707701190362189582469604709128291424171829130432772711636235583876301448282757431876821016495628604809447057298088575205385304087386493840140660524773115290995107122295110622281807737308237357691498634183473303422595117309900463261226854143319128151046486611625920341003176297729621451064122409325337464787456524648598782880711464289156343226064784581170788529536021795267239718602484471366532769564803790068341939021557274615684929613884657470862084080456939937273586487726361986331021649674978000448322116109188755004659923307499111328460490521335118087751751556012962486452292348641305240099558504465428191223170049876065188430475055557403544051132053500990557700339101893252488295101208108038366819534266086158253225400452918790224607955056629853237815206890033267328871580167264987236191061980765185438106347042665132544054710616208680789942673430743692977107789606596427654506474717329044752967710448645960204368965402994169520555549072140302928605741729429103494803551208721939004687495893225429798678364904121076314209655911892525395308968462497999174865410229725413851834975255667265070779910390593650991971238933456224050440414077267285354392956921713868805696112614988569865356057105130133553493075505128404045136092197908721438680089658434131876068318216992438715041269293540965282136747988618885695554785781108647315262191373395993634421577005895465442531113447765997336353066880986474713149948872163869246203751569672455081149814195507000563232756157524327858503596628423371128820291917005676449697319619988828425026880309407678004106274717652284444479659686983670001459478573629426712989506068088314070431088956973544504627889690150735903709484677377470492090824085218389802704971429811731347977827011375672706089576260993969445802860482195866752076978117772428461302157906090296355748109441077590025498366179519709230684605376393255068041336059922143435921134483254421086820288875915183113246071936616328114434758310004496415863311570780921265912193888028062763526726198585472433215327726867132461256603607786559613594886328573832675202887961467466872199216306899898514743218103870874702736315952109970934398712233548943207200602441148581660214729646296891436856924373067705654239990663966568190735089648800763928200961914123617052030183980528805851621937168324782292929447942760282735679957983963388457239782105624574441904190046268364463754305353288693566060280205197976961055690342896567737679692968038967542873674180286600441383233248443906322517778006203361510401385929240910470916951488262206698649692909148308236523566921652728829714166627303253595094128355191487635534522396231678562032885663426726607209623352927753845489211015785882090059219570770411938276629590349930367524688021139948139370760473410529442957376832265361752648827526401875204171616402339387013523526827221268393314002576655124429707009012712624988777748524161405097988278067119662068392626019797616726806810014368519039474636344679399866775891243330180985941569564907896300565400478713206220493010064618564173653822238851084225622088622212312700794426401551606430460875561139982427542792899002074508458174773853444940498932969907496976910331789577475397477783221127344554577414832242655998897639759913618225467408176421084090521454607086736447268824053868059273674144347224132067501554548454374789121941612855289450591743659999596205686824332520692381116343624385233312441794925738316304184227018046148584948276405329505406469004994741237616834848879243145505259839436605233086503370332759947799915831677671373702630597774940841106791500234857075379395216292278708554274622301160592579546676396566821266535252255088110996425444644310947791366153896183440321606644758168393126316643331101070271878266245841649683209357785902605662026502483669338216786112495997098011116291009670432089182924479182821052267238537112389158170293743500747392478693724213962080891512032184886193424601530444664669546510858244780878453748683991636968286682445750566963931811329022238955966256347927428901141290264808287394179209501814976538046528032979006628892688316773510776421039487990623261339116614363837543751187013927803931308758998092691078021580526908842622959123075191592541364945557882782943229099576879504903915708293908845733707129907173111776776416961654762752292803137126661641893671557785443440578274211881878199832519649738269492475108175558357522952121656207979486393895799094115860066532731255260433651779308842363553250545086725283473879408840541134662050105534726038918776957394282890088917065870153637101888393394153454291499105015659545023013164968381912161657532554031950543792984024777906772148604297518693699574099708940546897945778525472500126142283368470447699686856338385339777187634090248355196076647905542195040581465007832692563842913578474456105200814929600973864993592965034784907573507949449598850683975330514003439456934834755507421695690783369989545580045953818638100051575855675418691503973059734926214813545326492084023937247452629272728373932240015925552910582330538677204417982512211532664217132009613773372935025963864100482652932626067054145612075197111435916818815056591116999027070949799994620448679363562628571840426184858382538841842922060863503945040469121279235447441545798608087725732535878170067666368847799028327503461154684281557722333500798004760193578446151822059918586467475630297549819083991019297635232821753199802364523077236369520643785599908397077248619144003767521363592000218874604286127967110910918919203023374204613330483916182973744956114427517242735396478169797665240611106266198447571093758089319497425804035772318446674171887046839084394840603507544872011757637128664615350794593087279625544485273289134530071784689343615982873046965396892821838629388477358131677534761958368410038164759475360206166548716499188504310119885153436160448885432951409865674949598807614191546574236625863627187378894670915196019966916654753758265218403185736712199787072027327246421615585746255293204126677142904904699606266888744223362498600925599489840504072405162124598874195811307432768320167102530060971808920730770749635355632347395644908439556634312392532984354521440202461312559011170973677129012820244581003907078764918197890792834432016825974864658196299037668555606834938070076063087447481197292847506404919976873301435630035707375073884696732198755309523516842132450779446092801528556152028752440653012358308949660818180242078685365838204580215231244256648381903637314035037807077900470374467389511485105764062663849142937383827724967001512076608411934940679377205595616666733817736107258322201030629710690758152756374555652863196918679128908982196789568069634837440363144371743731708405172656907986994690084804757313142460678274359616537515635022033606852155541461270380909536734447302816766874784368980203561448656439696157861496217210276211908131052347207181080258359886776055881141402886307073835577583295823160624352291172862866389929181442310205112199629533093673970871509263198657137734947926092541197314074245793540868317353050030423496566658978771918330648809865748314398750528776850752406584355676642521795461351717786166173877584429962980453609672475463819993643880760961858694243599953065526886405831804511274012095227287182144155488920984191103209254395955167089079172185400328781035700088180579084184228269371897458432504230075413587725396896578413713939334505361348137989713707299607015121962569379564453489154309573347582308610651741992369574723438752819223930189594994906788812849094370027159454827097409454958484938496805122862256552079401496028494622556046093271878022919116848038131906558486046784229039106381781475672673619018698806709878060195316016560057938643681817673105351970192332021416886361748542324703203374830679449353060234193443896437816575148649874867603038290350184520124014906543783491774336921805597358328098330661096810937736300188564660581857577580192069732131203046531252903976081837880732321066682531715030803663114268821675566428947875734587766246367739973394128890726196833493410730405162283428880747810462784717056373712941594548166875739237808677331834246490276591681449055658312934542851021727793421303266311838465257331614011225088400847662786604201192657001876022833534800584744014938492630908642193383694382678270933000976434424091630177479100929797662072984102012296248278353889648594697150347135436110642246703525934765332571176403844561440491149548024789783871994744028720890774852562665187088721678650126092605159763923526457993937142920610085264536465470560972012037933107919906913921249874859615443123703827199224994610369314816094110294570193350435219559120020418725772142485289253879056048115258421671866230824860746369489500900342461833954969964997403908307542642472688901701144981713981431328765981989463156631312251204849293928776590453903112858237657614884419938593957168443399401031681303077838311693007933247400950019920654555229034967324014186161558458659741604231327834857463349314460686323223211262581438435128611211492000777806555077223732314932994990885230157129653591597684528016521376178066154542637451315087183093017562803682546843624110342780343071374547783955460680396483536753627981879612073094172920805266367502165598963267151812536344457969309958878397435622819148287092632389547708117551531756173577940536186239012082005565911947465803974738205316361998529058543319081181889594223701937385041095811948501901640929061106320149364345985287124725757385215890088543404715490432362487228081903364103223016027485079894339157037347925912185307656550189109144949992889079615638407532058183215195732956053946062801763484908281512705699840289682184519768489410193003939329910648419075509976530940117900010154377663044922790988974191743708734997387054552571216300326440225262932230081641123881223814188827948350119405718479792509812934935292032781416268848627466878206198751702230160837534212167697868382277064647030201770037302185527628246805458038559343304667000006937635859863270597148997292788197242271184259789671409324524650598876118579457164572202743897809775012948749021470432088239298478887518567449005614577766114627974759575221552597933013845024326779900194980632826969729367656301313330958146930365117918929482702528997500818358227942207815101202866570345738098167621521572865683448882255574003471572961479169104032504159813968489552680978156058918668857467774997521826966301260628545802271727718784081566601582484442194435922579052598719309141049214532550867894047398145002080292275219908251595838663926514924128380313748467525594904739377617135677127663490497306928069130703113199860786894533551438288901525251845479702253159172404163668166672873308712135662576752642565723540719168065509429972979593592907859097560341823041177461198934448449035440496205775234245004157205711527713779622784159974256934238008323939390390987153278871007069259560777995910205746445388943148019186721787213446703328277170433342925976864448536083514932353019686423264105253607571792940384518513182985785154133329366359038328623394601842158385086887079896631171939265387214077380031990493749078975917208862117615278829131989366717286780027671588471743197124628837720285638250399988327470722479754085366327153661051198842591153711692443485027726125366875592310101509123948249793902663014642458839543163899242414494372457836330809406635723538171808003299881233339392245858435514158279758435550167610219418559146587699570928477743354605144171012943434176078781680483809920356284236101148748858800827708798064348432352482798482406566930881517111263805857537969113772794856532983244253358077843360333314651541606745309566135527135088340857566816700306996555142799432662251748357121455161190539989820453681782408426822345465394838665034654045238820692904022055415687183034207336688595817721831992808997843341782748677129973035210307950197954465373914981951575869632242488800180847197238530103100793271198349562628744770739449437214677219999649999131590954019376879194547932862926714532536858399224888930103845660136067835486377237162702695356134259528123650215692608434725826094390283869270542984528455345018333106515649398345495887019614451818898187487286881649129835615108211749752150140755376365161215244194628216156152243288888871313516801295244890711113491709484946457746909367078237829511257588096339689215885229650562423591199536574648104663785110463894328592436673774614470479540117923366194467347690878453697482114504456735625705239506429170671802108544388938928165947935462333356730698259116155604512451893139475760502488457863218051425907388494650483441576584475721887312801204087824605842186493276494703963833517464407937829548718744352989345448724715836999304956782911860167373124520765937109594101449778080787556998067241469119510647116430233449746106134227900625827505515546851896115804729070665200773964285896275437692548537008435677362892180384219043384927833284864130216893065711384759763335731389444998719587568890162086664098608832839535505513304776978085695771641134648248378684146376622569813986470981947707076383143586707977128164407095498645610636313311135599015149130613407652464958632963972554392063249621346937228204284637812471668410773772771020599175669096288112403659029826242049617334495792490008699014271340634327068824288590917685169330340364195177641971453808301725063949651437041003533504815160109003371644880435351649697320451531615928665000248848125882839795292259613571986742634485415975826744087450977730631213494663100770399906687141106424597871634394649804363606566592926866783065606290016630829841055839114135767637653000643417267822934378606315083172080869348197508838623435717971614850009388174843042545527688087145997337859872588720964518304751452739859363602964973471429196947675554555066133116404485609715705289496382602577454960009892811059873979867688815937806857052264769542540753863510088141336570708056865594566353796634765617232620761390534410768821232097990092860570923890596816700532125375186380975198454507920916798600496707780893250797006406898037216023428465988673729231592761717024294174937850865283320164527395754950928938662556667500685198041548135598753625282536679335220598643128577365431914354641662546257277461633294866822055702293799445078820824253165741242215498604363667470006121637106835187596154991269467451161853279469615708424415534545717512006654558567462215722370370346253118583897757049979160540818098428433394286964265152988838451101846459420660579195128233462387723319480671516967836309398278177532011809737054892093118412723319778654934909905804802535497025840205987559292882262785244381253401368401995328851042896069244407022955786160305517137530906275468712717166437635441161785408679808311890263356741957195069346362461420613219785393682378406898629319235109197578796908753496518282461518294100673154555159983986935474543828598763088925006765349363852530238339467816918034152223715928789290036703961318702292382920418470743719173043023516166281005053650468783276911458609527228570512337525600719957774745899250533955835797105984651772926985255115387446621035546374823195817710831672562522970708438401208851994083423848402407318897492784510954010783840433568075267745992036790363363374571327816586609539040987954899405927761002396631852428605333471916159260503793318870297556674364376820898253527994347079112554805513229926007826002754812321886084144832346077008408326331592533522992501215079188814409155114883801268706527295928069943829141134543386892979209040823226846545681864959560121938828790159537770700545828356021662537670464911614215849757662612993761956964957336776165112156996800233751846646973129956050262828688019286604661250684783579128629228438796876737638727909056742936932290871305500994075351854782088287202619548501266586229652443109900285064167399003969816826731430657663068759279894992065577012541089803200496042639600612613901047167808005260417829610925505635595603377541706930732967938696001936664897526049272283277905944477992563943663551149310791825537052832059266197697030263801997793616487444923867851316304278073107115642627383904520539089355849264018429886292954207637192385896866660218759372132732421652576315661352123185592816934727636349684904908819570275374676032911992805822326579446940791550244979852942127118310226966510192559901632229844500024034035370316840712315099275579075953626758150509559241674354844634028344902402698832862442580172804614186125971203528975354835067452966729764933057649842854956693267528501627377198733058943385780258825460825040026826361211484107860226809920872818237861372742271578050808721791472459852178712049213264540228348874435541109289158159417971779637472758470287862717061800662059328484009298286718516827981955728684109805780133603337143611471944493097111926648250798953527561827559074983782436943700345664809081197897280062058458547029545197404255476626209389327457438302041526816451732306882648092079823235712886182696413597736048726826999416752461993199210151810880666029675024354255231661304407878730833083940003726193330359549263429694498500317470189435761685962866812981562897022962942093037917863697102660370018056449059200364716092451302874365721100129686372802190131485827916803720191899991837833986503058510065130656798372195301887329617837761148267598865925208013620813363792909713541385301077483276771879389361333548684043984388684229474184579029097980121046455900303192619180733122852876796219489612259393511166906719519718122230282088851028189776572696264913336837157114871820078451169148182282677818771358015594523930407329074285216227502982032562441337466893044647945336487714091876709028379353817176633634953536542752400103604525844420550673629981372347702227380810806654599035365036595174033513898621177565006898463257806053713011011011598043976365208905104713204601186193898383861959882485147062472645053312390388572684654632292591058735656119555616684502419470353466513344436321511683223001197935351145106288459104963092454258670515166360510987002722388249878145913904453211915228239154970188497391672712494123410288237764261488696178122033212959800038666564439902234332848089032034881843962595755039942941624243639649618462553391270719794104978145289931883299817326447533795202204220593983579331020604031587119800941462059269752039998118424889853774929990643314817165801572681299171457900360118770479879154891994640422822764759546799107072983992081782786864038767326717731108425812352160141392244282593643957137790964509713798578494367397540957184385856501204618132465597427816001764052292202153586671708376929215984297161263799699833602077210935784300833636067648251250140187727235010142468031746899944771823518647811368769941303360014091611194441828492130435095922959251131614880161485380753692887872690194985218187555784478913483605961253082510426906824957571502996600038000607916201504119080591001139509807641631521263369047717544786798792028826932015689729981278903273616741091994533005852637431416993259747631017386160898058605202825203392310208574750765132396146637871864150398099176269322271463091328440210209342651297718738259441628952533814091634140779611706156774584553616234521261635503560960308457680262495870696916823494504009010231191577339189283941519908307851636411990252573212577776848403413040549152820625047603201489495244725947185386601976745769694189329254197321327644407225633437180653328754377190634804652057797236442118434189772606434665255851266853893203574473592010406871927654592612511799886224665038965437651458054923042938475716481749988789526890656748322039628027620755354672243557927226870000494936332980835071738924842771379909603179604685484533057741581260035471952074456328869082804204643153291669807407333491821236847546042058721829864744345715820485069283569559756566542993605087172375054540286143469754804752646612854145925240717961768548379457620620158141946971031213163369902400687687565931679609634684984141577657566678130047998972466234768421077632374358360694279172959570741295440718699628286802026042834800146106707667009649452605016286335452411589200003521400517877246101094620896572441142977477010885015262915727978498337667201883712611374497902846754232095818157822489500506979328089940833479619196456909548527212535371388171319960300595858045929176787174187654485830899753084367023457639710129642117739095045302018776254503735922094861447194284956334488344583106593152415575045894926965888605670542349896976191627825946252084285716274097260238092727485080212132331076339301876563433890710097435469615862848786555682305320692938057646903034560740588977401263858130394244687553081446976576137074067703798063519453696748235629661482219348506346796131317097119987262675721159213760312985945100138186642396873618826879010188733694502310436657902143377873424424737282437142853256101143263817425369030896205337085124524088121012099738323078506882900876683472370694811810369476889843965969021302504455541010581946830137194572218798714778020890956541420788298759455520966791886975145306561121832742032312142074666371095842034560783055618418074652182103902200491030997956298944964738705912478471839503887130806366533088127279424669609359795751129807180056147347972120570852708767373858317582110416564881153981289892844820628984493608043491329400566774287283288260856473628627335064696703419210949915001659643447259314440302262755029741542231413163517578676765293907349707731162203900933962677363434888526042584250991456641165918304159885301946776567142627360624531640368006593804941943486182695835399118513413612949259426699598356349972146774843739414528881249131261245894211128995394135140350210064054872017151769794194231589995064976014677438844168991095751764201700885925380280876798990228052261253866460518960459557359379504465332530435399217656146398262768342927816440911880027256608330944526693795313673867480276996267823708702013250564993104504256908704639300032330644466633915829135380003189801119238880853277544399757425569382719850556921816927925895104080273557397737529349013980134632287545951431217042672996842012389287590117098904855496681518577926401394361722195600568265502157292774514347912564054938251068126879429397314915311340219723104834165118701808407187609543860262174658265403846435752182301016085151800093876647091698401719143529386906044499510238008520530683499190063951971073782216597584401172041352514320627635112784660229456820025736945670861018957631300824942040482720216426565189431251303628072672738476322500280525426560467117285900122625450431532458659304301369856502562785797836634108081447270034007549769268056986409757888953194611726188214898056020563986281863895959258306794612405372697555736124378595740644438820591695429539418337170221321713138503298048969091336008804907770789063229409182165641061014860103757582915772375601464222533812012190008386044107465444529481460664833108864227721616090594350383758930428250817722619676333830136105522671153176442321270327226016199575935785376342249153141583088006763163443100062796188201429567239471262603237710569250618962014559143812799873462550733221306290536808058931787130539925077718966948281186366965803247286142524885377627480765108996048813463395349342996937476354564114239358185417265362506226294797388711055318331288912620151468970297588999889614248576814159436234433963158761779490167805537614922441522708335659463381122798418723464575442956266672142454023082432727380199379647514021715544149403684034204830959261149683364028374334117782097432603861850188927697131864690779650623068987610415304530048403171178139010912799685593494961351723748650866182330259356827652567935340848971586355772223714439487871117506341553503486724487441258629021310808610147969252862105772904292309811619619826234690696590818648488087734697062784865007524620245873663849756217896183321182640281575388065018314400750441418784593912704412038066384389131237784562369946247574650781920903987505253224374966826807101318992031103673470847366065931434722523506400543040326950246604778283424638035512120115777432642650213175532399420774110285494447077780408956652156434737883832721524670214342224553348453018570644109706983156128608415344699817060209927914413899167982106708377356342454138564248927131663670150077897138333159865758687034527619089000490758978909967385059269305834116387067213794846170949443256711555591161024790280333902993474366524116854859046741016721119211678802671359590436388534063686647305254511828560179147783743310741780616520421199824458589573447131228491332156229306730808534284352733479000541707354413787452854238800758215355726538121008762719131153313145295337247875022247844569840369594526181485212321305508215910516059697167657817739809084946692869690563512721427272831801692397588154588108953817749840624202396308028579585351266019574028009682856403872690594562715256176998584022108584316910691099493080049793748912323925082541083204381489923173578472748650526778294330468500845818061911428211504495792904293105740504155792724256805618204183523999914671649623159053597580655502958598731627569101748042583117106409974618632011616760408864275354009337076516830837173020901990184619761403988030585433511142239118106006440458195011400531173881109256052008889647268648835901843094936096150364497309906706914786894074125489942502132765922653796903457222127994098497213228793656848289140285290052778075182106955444591356301762981559931618551576129362510778685226202918785236202514433793356808084716233662354591531530120615729512002304021088878357733068599946813956496579044122708940369210052019673653831671620471546453626046983661186078217108404416757320083509974257143210826637334362140820544850814158674874461832686606423068747299662943639436635892976960736572379439615699126322214653511484383405486386642994932254488861135423689260802260618439376829822392506481166610116916759118458454079196334933310394893652627584377533280978961389941137171341419846767968676789155015539783819650632911740138827323063629193586453009850633848978582536520905826796782338838919509152636110578207015499499941173868330045830830451789011293922940114449615194768354144371721396750593463482685668454130353180524440828104818631897402306431416638450683869438044439730629227330089880576218395323618304147584480372915250696376556680909877583632622369509954921753333695835682956234374245963859750731362161727641347257486923898750167459700723719962448379174104639525199846812748208741850747255489157960255799325844183102626207765251958627583852640605704184263820931169228687821003152992716959627819009693142483472670588398464921434217031565026023516934196284548269331203193213871798689555938123550005334808115500028598148301596660384621490304451561026140425159793609416144070838557728043896794248698813728032071701488133470054059816151588231939239519734363114102480369288263067579791043364458610342318672255242060204034174038748602738092376660982633533538285648560785592236874012642688323301999031869083166527519172772448132624957385494884446210383747370087684791404191666571750920428354522667276051860237776419930028308668842937928791701685491572742811466528210221119643421873860264007877619341715025870633047416122165177675543417194781011003196072555125273203788259131100914199481841067769937020418359036638987341462983864623924502774962656701125185960526006134293329050937772975718370257610824599881041517115717565877241864948426538188452409941225855463951940523122547749397469230686167095699116742814043011666331862769855509186918495064326199599628419183924130796212369358640637823681903775424795221586062649728061868947937215838342922248942122047118490306517344577400529130571159777081375011464830776649923254259285397444871731288182154624811937909552153991853717073191229165428912812839678696358617287826901334242699394824521213971938456701368748222241438115640954159817459710646382637004588853734890169947041938902898982310213213363334255015912939597380791762075965772551904329367076861141532961006345742693438140532685676332187184762197561471125349532012672409825637688462253823179618825704133869758661623225775128399099079683488969746978085635672375877788020341419729912609981089815241865372566239194378188722989482891819806283468893625905779212015108272551476949326564425967653689288124903450780396427766451039074558797455991475341314998352442848960659715275416944301917618105850421445555065849671216385589572124948323862059623176568711774782090197618714960754990501176204159204318168390134656832295986177437208541061506261557102451952378488957734042486437239524326363056792322229135359701196380209990599191408827305920895625860984193097284561910848471201007131615722445249211018751536809198772794371743735390094594365829510296172876510353310313357802468958460180779403501613781258004275574851796615356799443233669927274370899762262284515452821442894946723527472015431317885613910183612545065789872787199549985642385484752594750478109213077405307797963499193444502309301315104258216382987379302456445006337231133115749990288410175799025637913195457622887749122988927986388009317781449659420365516137481597485577129495187532696697151741968294606481500383361155620888826166178605640240733760303867211494552918133472720564117669423467556295614103398510644047328565815337923112254797718465284804967499881376762037283816840628166224741529818074461557459213509638941113470986928715882894695912188924762464634196559551295702002089240642823844477227769269869534248579625537144083553372592529852520114337333125255102349408579526021550937420429611361453259162643923726224804269854468227030531389744860829190127946808833857609265785502488724777360079098370793671294512300336409749971065179622080427100170854665614833006773894461960845128366639729431963529924569090798793772968948668117486651220847127277723198921028249869734388436758957348979292918953672433749205751075635535051941817834287008819764602490217758236019289323256627184623741510981835935714166213690187960761106534658672651648779315312052258697515895440793089339856037215733533758201709604621726588863561884869033196909998809384999672798351012918862947706587051063696200212031368574188927331459875167164618504649985055727971834884127656697231865111345962806530827601760099293959747260362619097542473371797148719465531849328668213265547837205752911858840192480730357634648330346063283687942910186985780644717706570347534973928336348279339306072750807939275648290148671340487024786649315108879574217195428523255863116517322481846943602831633456728390398452730835104332682380902272566644480762631095553015321249820658096592167474290724339300328220423498073084608843644829293641835790375994538938155717111500234743972910803967731727753336040295425453207453565579001332722144335441222401777362431152595524467954052721470597284432526807379085950979013647753718460786119159358787267109970774514390315953283092221255177654588471907017791159884690010551453287106321701807099818308475425207016303701342935937329434887461255312559809231667022835162365895525355696252096213916949618698646742530266106785268007220607347933613232017783165635887000381084949444339188975500053467342703287543154160477505712525478604283541251922221379197823224697926177442880434281611079640179441630480667126555770412223500665719859595934208888485186245148043296125521232342007888883313868756684417410015300574294966805981038658594557882496744572016710971415652520486200313340252374965042742805570232857024049320071370525047924208277891497490997514249997235125679524139135176460379647775803014794466982153419696910122829611693935965387884914341218015694684921878409977885830459115541782842133817578827916172528226269007825018207038838746576817288779503635390306336635583069711034468333385442242721301642481661841563126749090370823793754746876054476558219082958313072832392394703618353568537940962921011492193572096124508695753224834505526357910267192218022832707663416348064182495724811910281905882243787102727682001335321168807782749125348164620251215551163686158835555194370378391615714537507890329691683166669689064293110773373082277368975909145736189349070356858539212346589093989520695670227054971288316607696059246661107573432705467647617728485715105776347523346012113848287395390514581144654545930079437149631989470264102317228443914590317517519280418981274850014376001159816973432993612519781389216350949760519815874005018110299663088596325852308245681562465766266497818353774330593295564821953014955170967264264279360184937265152984549008921398444108359732373908470023971437715952212558985618109324271862344750052563759872708716799601150061144326961247550978782004383452928237433634229569390885490277872181154157619462692820288520460804217385122832760557364343139421058290585791822836705419344679267231794685964892856316176572670346670897153380505080236832041017228418902774883707957408101954029832493671788186762218758895277880812249904801454532443783099528115703050267578151828638612548251430538551094731005688387014422355601755206840482517076695641114272256157053311394054562672371640132909636891405366618924753524808531021125257369452485788943613992727659522812469571694757279048614920116245431989878503765950997497009450559018775231621757367586348913720631671161114021067157519049346086468451793814552358258242034483508225952793466508032760680469734235260494169494864115256608460322523257934124678109952917903149213366930056101203172320285349177313024582146176388200201035535288065682848793192280368126125296319150737099031568497701277538567518980816711410584895099485061299067579304370681178407785758660130932557812692435179644306812171061933202201021086400843933447969853221985886246087498297341122609266635405949193579549346667528405266012181518295239597718773656927412789254892464840079104448168703611354535016078838992068987699873742665977772786243964135453936697966477034201965272043410219867722803368051612085737213455113037161776537691550901161409166321032945140712414362655589716407690116328265013198698178380090586874274529242409020710178796047212468642661059711766068847245733768151086177582327723507273636229781145463964375323830402368057273597743996924866320753874736733949869624640318603287875567189017473273152023156138682328759004346880508526257499070218709786380775804918478061425439985744238980955375024435214473245392016915281815192735892677350505044099308922719918077718727359305183016299823615840330033271497802830837430508859475684248524497046950814288769385586244655518350440551203039069785632129042315097247539751368569930747724906325238255178093605821879945005977905299640979231518874617141560862264317264432622142600018872889185352538825635270131489172830356920327565381604605305671187376217603828444201309197157906340289046745174355814783721773503663200556318022386996542956035931270399158346222223680483705778246314459612802365325303872212781120071386480604511448223703155849395901750462191257149207820319987598680537697516506273150168535661589169952310815258477234476616769539206219661165315921667004621073479048793110969435925622173353861660316860780351074523581146350929770170227357661355107602815547759410161123440704699706534156489157851511439309486162077826156747937960165185511471782396059483144511926007806593999531921961907576492599673267554485467888622818701764024367777858332379012187184319578938577068218976402807257086013511940920621781548703928730310246060126418684819966261510616551292924372227895257623935805948109174532298493666270855672869631857785760833564672857944300823124541984864281438943435982121216101425775404320946934609581609401132915900099047087320266272540312765164146052847777898150105484005395384052797063115787136529469628500203772895658958683120199946683209582859216137490575779471451494637245025367923220208826861909234513694903972417678712352717508807295662629918243508855060758843834878017285459612364766861588019483873556353207769017959958724070128771815809072762963263017508607051549755710331206543868164441546072149559801040441408276892321277870576159546098289854048208934403927212848691705955345639064368600621664748120070131637798797738036674659180106561011230943149980330469517221534019185075020101024143541678081460586113321041785786463562333620279678726485173663054018241457425924410562016486438059049098379942527348719648322628093217184547517081022109215184815646357798899427043096250029105955485244907299609438127085573036142091670368943976009310212936196670812497488323936470342127713505750921674689595331616762740142633053220265530584256400924179002792885354004507003842359387166946162266380695494236343937230050758163363052824211465525493554238572022951505072801002761792347140813845768719101924669808461086254819206150262298840779998646356255216199345799010637045574229088586373292526583091690682804252110850522007301006750126882881192926821046891998164489785628678507505030675202374712945241565461911282773302480616620572810116983997033914840545111036005644055742003879352206579087735471836074666294733100715019665639147238682792297846359380807072439635571582892247355367610912976070063026802177324928585165181909859518097633806431051778224984646334156192245596641722757707327617017564729795066266199200372906114706182377551926612888739481309067098967643664651048886570997574454146942511055363267619279029287199784303270440968889419027249758050006778015677198392743061029526941308460594385986987142245033688545732964503556617217624834289786348768935631094240048818892936696890495384322395366619520190459641230806259183814594857868391422958072626292708773740248180788945626954719786825843661691349121250678984956217548056383044157042446015953811879536785335712097539363381043956453542241257295879553481770277403643519598659559898184434242050714515635553552787739788781417627181154088111908600868144755477738049378460106391789525079138715976930439373798702583378437743549634243567703423033793406782284730316586305954374787670498013370399605677712743542897936510723901407268724914988903168689519872169566652889676289734409319865232623622119474567906902809450775599957303990492052215378854918097555960849052284203754988567784048661689057638084295384302783853255641859808136164594570948830751573404351054738514512952259902801842855170336751857760279497236500187673715685671622398589210578466352047951431489059675758494593617690981685041497806337542249091488778262757212780578429055346697813958398900054797353188468456875579577852853525021830848634689915496362587434978118500516303462924666863541317849242612634048246668104346602839181719646490590601033153148960527616383906370666966861721887780163839039304811677903751668816067595391017895383701969409472389498266826585677819588618724576880993202065801956443704096938278978187639535547540131194151008062642480773200503339641754749099290816099501709743606519482992365838073432017562804642131372584818846785332167024108596266731620202120367957790795164513443935947551832755895919828940246927445698472460676696778206068050051483854977436460537318852705153354141859543552391433158233936502117358383688825529934062732268351901891793269463129487106050740089187174993116745997634480444030752722478962708236669746602841341309347251669388283634622654721141695021805549734954169578875147033014995891300167642054035510959531171334382010195927101963290931749217121622356852446415599710991784817739482346071879953492788600625086877346152806116755408113062043479794997592595720245139271547375780925674295169170244780148964340960499168392271996369356792924711630238361889707097000632869809670583489464635628867467147784823150517510449300556075367555878180751787531643367355763683738776650083046904871366348988269101781137663991121481861341935351087114761480269754011721408467524074783330729870997353863355864659156682065823884853876768322380346998640686827034932945129756481341861973270399883869611145035012510633828785006627007782289899193435311692738406527647552925120388178870776265260125577687042372615496882210760052555676988108813757615854621246282410084590469800036104655489469156502005277045097343060734977364477575243892016041648651579782596534625868260472256671587754715864579598916063357513785714881058185977380770745028772095919726498154975481531082263935406768991388596441634000783797876778487620501140063714901107997660026904347399898072993796081377484739947011934829678392787777589093350351718983762520770649085215386840293167788991645613841274984705454935134218262311847526264973675567204191540356125763119065601114564002526968280142128752162021557016659232084865415697274412988621863785474323674700434730375575591395997505116504525950682589574260484418174555459927095416553501566661369820698095182894752001325324008379880774796295659603292218780119095717013070835195593353357264908211558052729766630192645706474924498218409122132174414613920934842773319603296306268738670566667928483278376953772131200188373375083512142097579296866690007441544324242761555861871315870437748526729656776954927449013351010797737992320650902989950853341005823868509934229795594570100249160409514817161061156860469718334033538142162966757147530687434354794118689967686799794631861631915029987113063192500699325693942992317428415239685665306668477794195579489833956164065810968817648869897151052892023378488895614256012107754772119246078731050579669382206880806360966913172388386122491715724755429026959876498315993465022795071228966468826655240693990235209877156195046175790743745525192709188318510937169940826743864146064783355087347302881202021148976171755715755297425370282757148603778506547169597093554978901767978900089767592654219950261126121974693558235937136170670770493799941242456698560513808710689660610239879862124297191238402088081188739655680652919075069309946845128990420329327939965653310967662709242050746882256453216860290930848063222237280224192446890590650737782871849057448162128034900377488613899589908894973887960530204014064534694291262266812745757816342447392604637681862479952742168313808341889450321261299756287421532513495235050944607792188475674357851768061844486599024721342794272966190045743059304723855276901795152071979755897431833179661046487997875755309421214769603876552998080281005431877432692522319473743973514381078535781711339445942791345064624624292199445827053369887494975558594622650143268363626609782095644009567373410753908020907749399852221060086338183978501524836429376045463699810065492739359511885282259975920424853708182697370324210503909952882289112522246665410831316632982011761512452532909522340305672988556005822545876394349004170220059204365410291069123393815515002167420984141164160895942970387915086642580030685127996625999345212768333320170448509291635465075280540003855453885512935689533892502750827686918203957635114556854246801848116282055150168020136634696434292089931146660218479000513592104420536447566729339107622462697660894813821101682174873704370640099046507283683895422927368908778187246281274587700743834491798298521720826445554160065254886306739336751872922966749016241447902949224517005946645799583295295860908119954906243917410970264763242570986208637825048481178156135996807251662332933461596659504259423220471801270242191565904385106874039619124924032915980455291484042643767797454922474393021013726739221529927476626156248947718497107520761163194508245927470022870627283846872496100758588573231419176744958719659716981793535057184328003147465953922352915961835440278052261198053929978814767644042248801419228309400231103318619159023363323965920705640243306382040682767588046461560920010470359380478417627788028924305509195997011267026705164633015292843123955163390200004126051950992183327690010335576213010412915057070227151334940282761949433914194585035022893368579882747735419051795630057952634523973258176800038865778174021878824631133764358826871741102529748936509800351645991366203626900683693491266701467572602187652314186632586140683826184007631282394237384905398724777584323595774887814307170860610849327358857756506664090898702033148221934471642400327828143179583365208260287935829175182722649456055463714519799805402091361449928685848963995887054694758857523797835084396851542878966907092195521003894125378953972602883280883889001952745328176407154738477264603450536910292923159361342199575846904199533998522752980797407094200155092794520607463462660527002983420259603421714247034065565685168719306786774469124382311579507657297512517238594587814540861851270030933178167206195550420736606329323297844092977883611210988434130896257562542179980014545346531226822626753482817563495167252455896402586040607417637598103400561964921296789638414987198646219530970552819525913670999837903552669610669977324375348674031117327095823175591798599953071961134129321761892159748882625333887287036092096539790212051460723995354986728349437362627050900449117801890528668073961152528553524695599413297188240792625048544880773614427230830760698675709902249074878909877139729900731852553961541474083172622762405930783769847219049444506390115107229946888480534597540257352069873833992993559568463968632764605003978946983329716488359481312921943805704614474679144737244685917558438676608147694675305632085570684139811119053388062907449651423574689237447530454066150852533538184400835158372279878025699039304488893788709733562115618506866868537790018885900838840757679399646695155436734750982779653083274821654444666804416583129303480500928595397722448463015124992298678583736580613930878685754319937650786370418028606499269159074188780709210423530913495313371910817522621821134263026928417634157469703226822047617003171878567247740984404438761024289849809502412862765167654202147782757307864343908360584987336922307950349668072747321682503722052149362387386095130360448415569032667512119643071796541581546048526158235726839048344958932726583695482970498673113000110250261521216212604646619823414181910154372491779873402082574650054601987726872232779453699084978480147751669957565066934565211799984455194938375604042949927659964383130012524860625033078314307066723589073186956738980558522643796053020916276665566904960333285688468120682605085755400885367039109192797828394581156943013552776281325089557918388247749768527146988673934291168492809090536407101443345751372572969293495244885619848345402426434186077599565924320101574929701748939832352617532428911845017825827469961951559555931743486540652641107952293644869478077645105255912273636317552547985041743571816391847488314297476232232041382562293511469575058724092280757691678912654663675065760852093744607175335399021123266566344423055656224195386390672446173817448793203070922506557720058398009795021185489206206342744956900401353073425189793477119201635924582228143379081146650663377400591728893834384370111827297564055424134712006024647732154789038503291522377695293768829778667952874168178200027673962558482744673587830828606348237285792162406588842603180728755079024666218146976533111241335745969029993959627263432467547987576949409006149931015209485103341590343972966118392491282547752930472530173539991695481972060473551480224209389398973622569084494655563115009047687025414848228949984681207717350859491049734887598034084157786212794251172907215328672472162255158873918352053789007416262928588925565812332096290513749305241210545802506231349451867530771526555234734316053156913970004409116574100414901325213869641907040237956157110530796221239536610217344953553755062409994506089886692589193225130777528776562117917945294918112997021861603829353338408518120457921389229548852300515759953273062508026996562942889687469568687572959710696695014451292246089209383882846570697040068127607830002967678834709396688255442983373940405883340730219831588663363089003600869171970730681799285965521275027963466044441027493580192592273768802133575408403837705355637651960024129577434742121123493337508592053551361124195149628445268113855850331763908017907045845428581517629107456599223594905580338967051716232548254234119369363833497453754018663390163132974711707975894226434748852564092203902679686725501239969663885783206092595465549296554322218220640958462228803135870619245291749960929858486726014023071751567661023456962150459061587682218036151225272237690661282713313676335516809029522240976683757582116718968278680083270521903662893679231770321514741514148503728854728786568822006389766409719202152444095034505866832417354287425035836521882344420236622649257562785693650559089698977645979955301894158615015160113582274040697306000327736458657296397379474608828303222705578064785653566579300112488029949115239005350895871053890853861665666411657399137994306447212156659680636544554711362341733513123899927445355948870728856295391046580253509500679150500069493565042776806465262313149422551773326459709796030662370846367071003334210876020521705927066061559290342303803630351365373474206083540160286025436870254750145660809355370217174392721915223977768642905299049703849120756422608529913110919861585809725548080410463941632799886945919105183547340822449329147196789309769427502687366200529120202285061335885622956591998536204064110646004516868825768500789475395408398157192133386051477313566073996298645921932365718043646523212032311942976683113453667485158823244749908526443308554955731371629149923401499035827501278000477410246160145426520792401523387718167821102923098225710787593799550810948680295118002055138554623109366225985800731270885050496082149223572647158547619228616862139836314172751346594471744774078467012362201131055025428062414891678553116574563769242465504681683286949798287688466464425132105367133387498382898092056097858404126023694345140986914458625272014511264097728078114941288713068993949422289145052751179361592746170902017628756420680274164113875728749771162654160756650344520400886705040735327651306051519061909035616553413534009713671028486078760888348784555820955371730041938731586952479398832695159733319725994874357376900163502985993364755844324970513868081761999564033623084849195784199153664572070788510249591193824464170946447724313041245159200655908071187532302924271209317297667428599764745371816779753354133548931694931357515329451329996066199285147228118260953990114484171352331151292579073208890910734466787260995088783321272481693918947705342522724999660005555302057692629399417985457228793440129360599345621013540085627807239541720807847647930899152258825581263845150684080955210510881507479022862095570092374966191408688493630937942159533675274604925144339173656551940640655839606391963646774446458759117772556763529340164668494908270587258467380825271467707591019080253808383643715621243493251623068012618216760433086869358625413931959514182217111720141188981690947797476260757634282182959173051642336063246881788536435595265501257422432879410273799125257395042668335558965106384709587002025762419453641075675637292710361115598685834018423206596540501233920526104710512604155171742031030786738611575398003982128366627224171199438904028741764040249479810581746641299800707831663550855025973752313412066641859014791002798638142861412698411402708460221376066594448112747088969960407957156206509273109500486297124082195478891289757778516605865580478542910649172723879232590909150689030566681801592284994453075811572378955154830224210333136204936013015309734940228195112550385129858349138085329471914240424921160313632845002922753381501139599917309641905307833914504409608347353004596758791130776279681931229984062692254368961213058372619362970813741040994680788085997275706458920209352704678802012886532349586828594382374228464557294240483126658132606362321160982487676052573601712231830408347271399475011855674111038143750991550943350982208104405062456885004736227292860004388068270184455903868972706945949003702351340230089859832470803916358703853269587061083697574860076039883987998410070510933366423728039151926334010503706103643729887588716909554066531814636825583508380654497993637216783652863561710367454876734557786024744483073826032123817819050416829287382234410806575239408489635222644125120222655950456176165047392939292125854399614711901993175745324605080288722774527354586434323897042217949035299194102804074405369060063808997702825984249854071503768596542563419266780176057403169767893709000565095120117192543130825862802034421816698870907513233226205598811312543173504938653953283354979548476940880337765710179795363635014088567378200646561788258756952395759145834789748668705221917643328748660423054284884651716704778801212001059449954386215038196465117701479406658024446037649182114118848271562052018153387094482534406231647496404420425037764434953892961973306110250345783806487237586763186567284829387044706133446890468871271630241593664700262600294958818888312483185861783119165150898347465319767154408016442304175299206152594822424864647066811168712704675474303261089217100029213313372155329828087235545724056680021084897653304479499113785073345138914892750704128958093038238564727389412630149522893486013631287887674492364775882659085382642536551911852820286860653563470451616633113174801688221893072650381170673648727548942472508057767147969818014356790860889683647094136990196705874167339034526565143554865929487213925901400959258475886673954210400728219309235705146820575524810036598784242687682009879486798847192056664835335662488487189887601338404852251327142393480593810750249117951684823009723882604253933356024233409258583192384586013667555806331403072446026313576108486906725538050682671446159193056795370732871172750708087481760001391941087613378813791336460724932385926423056086361396493792223704551270816408184994669927600086171614528843586371072245858132458227212905590629170123956354571181204799946421271506584148456708652446595493505880725731641749341568076319857833368061815158041310613135697781101353591083058381747074652056877423527868177762422164880461608424314011569483723219223522844819347772947340040158678582923172481570998169192744180557908063054735279934244185751989309919707388441744743164855803299348024350046000180235960938439060250497940702764549344484084980277964621129559052485263769604975939977400579503433243077934666637274455601450238992984268831442500871803545100181112474481557982406904201926322822803830348104939456695334237844341772547514403123279512838379361017796203026846280343722465577091625671595836897195413892077918433073698621852109963238431518585082081356601278537300272920700160990548131739181844479248514395198345616259079749455474221650592247968806834201026790776465879442201957503581535762135392708674460146013895518713444567975820330511734023243734769856994187066152792474317975477485214781060179586006798792921082340618024682959780133132783099075664194323442919691488800414738479782639303503039308726699291770108759922850674947310365648655758513610373035948223818063493778324787944672099606885916240685383048229589496442409904071259808407900536947450552710646029484687578885324135133099452827414263113454621162981566221966560464940191293569747441203847916113143559407268965805368441565875288890590024285682048661420907194861665001523563828671022878095046341330196365789441825539900003901743158506245703284152208815834669095307378476988115044704271193943474313173447288445881581233149398193979909030063450006121590071284754976641176848363202094899318124848361192002656335128744764843793453419985038596453137352916400805305943857432414383847462909896424585678588476452367973879499708070441371010068898305157419630948025593500292231250898328325556579037619337691675617431915685527994504369907538495700955945591512585792167893877854932736360991382618780495242855525009990829895208845766170029285101741971854372765420518169660786735347704430183736914422688524639681722839977023424000505356263787701010604530285404250436973891428321040739886133516158136476926284182772233374208519036062362265759874705113078468033377188020773922375335172955057631112820064794755399563857980295219829166285991973649779547664937994264934956367345884351626674365374288494008222832221193285444187265956466176793161021225565485658037833319280641003766430078908960618551871220819487060773539808040956622564796291288972262458959670552413102681670318939674600979086332316212161363967936240393165195519727693077877812368041152653253024212248776360455570116627994318181243927352994989768661700039390131029322356952519747334591696699832915708889125839975315547190003471065152998046333156781725797000229281583740867819807362697693823265539666396376918992368118440298064827414243102381573477512919539140535230616880561088977532204122794420763127076462516520452609366361673589738691571129717033604010224453711158173157375574338866605809439338183953355950845236775455872561718741602616633665470778400065237834212223967750312633272373412073868082682921976350659036629530198020574922361378820741461425747484827555734402997838697897494929102191780721983378844946421850145581725996379958202402939057086396991386306987727586724804887207559273315785927761460370915406871649414343545341442520164471500112425859430185352204712993975666086871511066418598399661343088369563687601428049562671518281262978143343466347948190251276850872576584994672385740508405017376801918830740998182261333689119010910170536327156975867365521130700551309156679940733601240895582584980032880074320362525085430678966897972258614159356756106602113295867205636279344699684247683193855096957217658742251031783345948679097988182173828297135636511053311217505443269621502239266450327959635171903093091717513550390734964414333750745737798322214082433883273169397174600508993073815866186305844015270030232799114272746648893912167455499321326073479712387719262083846742937841530928151380091513916033012377971927309265408703891466364715408149339267464060339897046711230979017135102846701189733307921816555710648164339718952923024347818441408107097476165890413041858121636986788220691212054307169301991766984300426405989177364081652154757822515464523078225707150824016368118614834779925317343475469915489767726969139999680100567769747055196913599886301441090823740924223795916305071167480492068789881947242938643004120093082735780061944847838405013449427469526387425086269772990523362521976808724907914636031920301310667275556525993620939507275539420694492519621194965824130363680427304738497277368888733185100542782794887557349615045793769366626593548990334713844479468117806117199862994702583661876786672952103238655572230414513165981376625861176085543842531989729783996651991942991641590335726223749569956334928368152692576810351017090526365379681420569753546003728928954457027527459433680495180899233581034475473017363691545654007176961635473369425948767620571587058874640647030544406683503121843907632196147711442590318817550005995076280237844598020188960008111326649981437729507414009745965009133944375252447991532813527396652623804397793657360168232200852880569901591247285439004967355614963857351838909110141049876949670392019029636731587443109766038228616140994133617555375858702126281251785079445092331846210233727530070523826221373423749898266703803080234762447373655487886294778786013495770765314721341993401451930088254144518729570587392273808357398003447179149645240244793251549465892761698813942528455747472428782169899821902903362999386561124275171519623865017927490588491853956235554388047051236971641543437447820555078580697183837154601722911865395592653531387324114190578156284724492019238426250894618042991696914343423849548752485288768627382517245358226900862299350130918648684352633535779327052338609959519580839245331308623023867140061728622666296194669236604266041042692296336265624320312180023359710391715476014238324428223121507290502693294333889272653973864495805521803468751351416317203512143112318596648553842190625965890989221324990153772065130982578526807671772664369062556643627785917625696620358590154830891347362995653711940162673213031526928650779679307705718209735656504741921092879186023000550196157655776490018540830291854628468066383903680600965536815640721497290541099324117973651572598411950019771849693374370826526763561432774079287275609902139574487074840570041970836020740967060152784224589158503083815993418441399828779675980744973824437526818188956564570597136406955603281978169324849398939821497693805133752653612992815938066198303205490271735015451217156088100389119049585935601369679528602627003583145736691849136221794153632294172816858060791325863069954348912962686256628610649071323980185236061885516514905696160346207657826829677397902965994067831501970428969848093134504877934185193286751001789944551612433607589480203279169882173732095874054664593173565304135526038679971202583004368563090671078819438039362075117078893008043504627843815194589515418228608478798417290981569819953454231159734836579440279011867228405281434391891685705861617498473423205645134114470842953143065618532344307263402793308394488826081747024452572473239955324044060684454852296700179546539191430842546591626715125115391610082639772179115685598100380244875585749802507748599001565693833606857585809941593106753997533044216464982123762003462168149284474702447632574908247843343665734230549750206718199401226833783330221437839077302946366824652627022103426622067865297397621493836625792663848247130060406351498001971398618487976255683969776841043075551071341332685694979194704190567109990779113192423664007505131934355631009748974599527425833999189339854386461072775948454872047142885847085524648147218110452689793117460221955367562686680107187083253258277881183258224427960675897205297382400629587203276892063387956956870684680041374785752528671960972537942160890558223456746866369694046638105449620760721789993205294352313201803070840619814721596148067335002755030110189083070909788508579011419493495196626111526989980392820790249801476907483048423108136621243416936088940926166619711323911873772786300392274120589199582850338214007506848011481236220764090514554889196752573311950277295032624718868176115419067848123772327426591414316202103584350089140737164208697651200153961818269912202310306524236197240683787294563738341308163592237643432513261242717430764189350978767755815121332231383996978882015696250425471958066998682181192924820343326372382638509908752230722879710950399045414713637372466169555872158987887149135913954914762981608680607747574127685783566133713460388243252165001798391282595637393524771955336495164513505410268696051269793086813450569147851926521485382072452818044592131916968257205215100799748952103773007923799570992583791545561549405030596133068112189316296844262907942754662132805738779279368717033332278168724458370313844416547367524192848519950539822416468106785927648213777883117113706943785541312371872455981393828378122247112766541426150777733010772880179927474900919665321277183138400097233479156459223798018953009296944909093769045097187222312831869808305877060609011605693347771628480734450042582455070086688562554787882707427200803846268107635252238432270686820203410175756302402623418639862679033779569965855018878215741105951597871990952404183412263768127342282348506129374197905897021751422584381422813694343860604041257027750734176977613492941450827828020085581125730694261904174516039824876219722860766424331873324317213643153037342691328704418558348645169645143058405711705010624606494781616035097423340491226749575058732319909892685972167916639586331650603943405704788958389730136743298272636506435890740025197418097191219212435894333421440050924573175119843045946920447821604425095751629739699981410880192593327752683797748344629153274043819833783375230659295345350485983938881064077706483809335143051367073178486495832536271821656965606642895586544109452623493280895812520107834386876729646560603854251912369843711910220747332446308535045934566595735217886074140120681713264658821058648155347607338985069069972449012313057201519721627195589326940749116426732647219353626560605941946834401014241202903040160126751173303558778258783995821925185839888879075989713491904659574311216309698468565743972280093000585572175343892365392551811473011314700422436473548265436191745209025381101413275632520608339743671703712926108059642442034791134062532448996081607837027905991583258023362357117239026576950927952285587390551568865176910302631372684609720310270425035166505100332513671519459455035156031173885244439594273305215235504034169401850920827611660371001078636259144407110141805177603492776255977170944210964335095838417985166869655893508449112978861783708902470282860722690185586105979145079054423888697457409799552945294832716512204848976748604259690316887787656744696519013729700047572234735023440901647425659423746642315965924566831882083378038627750173282859910248703590407876978137127630633301297870827491601878242395001263898687196561385902107681612224913069450060342582952201519140744351065420424606224214325919110472434649404037034486764288426390440769719703643821731365940769091469611689111016308111554143037471521904036457733493018145815603553025495100910543701856650158364884825309123244429629602174407045707689849378598163067297242808793732415734201211997449689275763167330383256167038046702119972983494156339826127491069787518268504032496976208404412462440239318627539820639328075814214233005928592419651193259609318450046013286852210185139806688596123318827879032561037789182843198998751545087948033714107727954538723683419622288189373888672786684455282347655085806371915325587648248918661194706041907247042383074542033589092539518648487292035128365081412786409984275755218590495312707318747516184281237046289478657766256155038348722121414462739774037513902313949721753084775528050510397359942188680228717822175258281232882261742857630423954490308630049339196489589661487249969187550112126696220401140141041608593980719090397365254205789971982342516519686003601422762660592510764162297054848069115182700745360651222521933059267937154367725429520300145103881877732318930418218203372107851959339439262789021896249916037238787036835679869409269480680668831733817427675574808890410912086527036836227060746801640457460066571291859694029153860697470067317670982339011356327277882306535023687925102096780658753924108252740914740598738683785226291339788117940189254260755887291798144881103775097937485082030840224524011215678244017807006684428300341653558355074062447437241215886642453924521215364994079910837691997567251010063184123260008137523055883427423555842178685266479912225162451464394857559531398094336196279096056313479207837802810474431945091045720984766119777584231926871006287410571957440296197885222429404360152271155518912415241337512697684173539419501953885221891805819948261377629737000996893318472679758801335628632251157284701652671149979700576056032726687195347077245318823825764388870809877671994128692698150116220235160841648552669162107841458050156661450229528088690504412250589806847641959439790352807338476308093088092508603576879411709339479374515388352644232971725239876945476280795843912731993029455972713028998377634685068786367976979480664587307416192093956968908132396463691683896844200580251237664500569059789104464509659076042818612942288727801293855262014955725650511402699842338940515679570963499030294545001876794880662176988352409814304048668371241801475529877688315566982302106196878096523569477574112688615917090881339641921476170797253045651892820439624986625375673780105237102828788228624706285754106945193548155741597864063824839060337464626132249053188637663460544353688222278751345092575265740677286892431192505082390640895126849808528814762796203205284627731348086681711290780338927351323769200133333988419001211189520181346396520344447752406100563616708449150972698680957809437383881205775072788211318293396698746339219544890655431771466619396059767515070816483910090200504328379245882202854827636104994798583365935018227091428355519279495030054593906090590703297615487624938651103735156542040481081176172541650051467143554716597347833327315715447498268445242053729852224715233838342505714309622226753350270978641102632169716481598794900858408852207562818783747475191061055381621244275217184263018363003115214872522541120571440531818727774170104688773510301005685072799857021019457267173006636737484614381345310911465093205222651292563132883084405523471764078355916104076457988140720036686355193281197674816074261313098846678819247841301443278903434131989959165084423964277573753234972867228732157473902944408950257293203405407734030535193884495213281605022172004604744080220325834574976295805937405710088522273497465482437889253902463451639276618333641422919237503555012755406922969615883558516306242076219539048147687051942399815467144806412930824848842261620596937991726345846478515072509123876822221465671939129996337860098316164172557398628423010875275937787740477620726456901007398261349409013831313696576115265635435636239479726707081207105116239613884656116173054549292838980703022632910091030129743416311387021736436504473973611616948170088872600473735506792506418741398384514534648392374633450901723906386186091046220748062416357671439526162114362950977791762142675758620933603772587049949069063029662934429250400179131275811240244439049493790801350575255269303616747165910825472266875018432900642702224179161220954886184512635322254393633051653260189000000292493831523523623217206478896358477394124961286418842645886653109850746353062369243678613797526397426028111558961582236136363074038968395068026506690841069798809406496459813312297015061864293449394430571436632253391868318686592195191167984418105618098499982751664645253523608804513896331942177922925132551360579704433394672188104454110746311634289172039597087904441130636690670795681217896633827501074254591977869163259646071170123844878385704063502805994427085512073992856280617255111569355249427958563026351975598645938295980768935132656228726965015447757120372688249388832970911578003883908173279274381452496848117483435833592137018007023973971134261291816096998482533517266055997378137775747497505533280550175225373457276714621309199815408474111993921060297947394555565804849756615795853234123950561402523489031709184180498129979274567395019461841313155550285972841138884457085772172806388557307614015551251343980589348955923000994484435193351019317855418433269049638722591445698578550724298786731565115869497140204183333761882211353166486756219470332027220524769167411583984708628493401481301578639848573515985055826352866818247327177511458719363565555956966355852103069760105164036872174417042594139916020390138741022058920735461552776425063246297520897597377843464584001030583963634915669647387542468507509805420211882221890406504002577239693725337594742676126439958344503797972147683161352753691802284554393993431021211741544353568385754891202752612244959654236019948774155241012861126724892457446483191478231050467798715308639054243451427218538445142324010225190872350988662659539133090932900221829609095577765845888944595818551169534740104708549010756128987003184874624630793295791231270884424181670745158837557067200053672392751044307245266314050006876786927087319030856197401242550395060426146025361890716793795298295736335560188922623211669781581679206477903629769097778905293868860842601504700780249675898531367178751183070572836150735095625567539680475663634439881396575601306095699827837184480624619260228849284355282530621035704700145357610588973054017945719614567597174233342005794266982929019296692433999320702039964590684625413189515865945172700063989939161863311219019968590835109128366397002341945952623583729861741737891094526106688723014074851704761580890520610755688287900440698132983286223498793811937541387787014956560519192648317831312217188688438868928377986208919369562453247499419672748454265892463814570244835432777307658189131395787257345034469337739707294592663684553132864034915590654995663973711397367790269322034579255991083727681511718161225659839463618421000008981288978401604618463178529666740186174960941497807345254475094090007338364087897357136928759189791950127659258504483288627991354803558997880732224983745474639495365035354952465777884417981852233461178609896516754627426218196898901269031032088337765674544951561015824968174580201174928845699086929833097155664615355031807357431103290662863836615421224723980817951463784934468840797760155787661338768602512812012047452247068957356971254326075277846697187423196803731576391195336859715277796687523167060035297434657725256335720671445733028554218418665558292266858712803380303707777470525310875223917671158016130601789764120471233253753632398771801189865367979544142312758761094184478890665246440303721046592925556081384230002486768178240204228909056575975759159803398978022522295454041093749705101197071324741106798513789173001598145273312158448519264229570061994819423611699994861972913547901568093223664889467659001497087424171972228542249315523324904644723904579143921123119103247831427129616896407790772803096702929798365580512056131944749566172241425642516345094401694111810083983177136782315937361015444631397184554578141316552032436832374007769750067368109394522672729341284118618468413567996106209399987269489023394349311530102542166973839836615967490581348473948064013098562517885958323598939966867558369386990043743989462001935133837308440125361403419605309817673420913105929786158862656553793712372613394724594436939904860632518731335723227295429656318945505629815750007054244272053542552397841243255202392653484332069148037802154200600276759761075346216120440281117540109083040336437128698462155403902305519236725614628212359479759406308408214825875266204542155609146842353121506062972311829845288371421246024166344748300097420604163548161182051785882402032587078620596405152413074875319974399202431869970491728521033588895197211551546262818290329707104704267778004925703296073228898912877281491191366908235339458592067821465994060426533398510684470456628365437703762429164908803633993485426511485046442193941325083646116015856195042800388897403312966841667586556039423036421242832789746047621896822027578415296010221536410721099779773727203906235077313789929368345281105072848028153737762062715474575568387184777675809388376981354668021475807193109634584339650205094364438326874293116404711379683597311882278243818078867493231660085615389735687165103536170869960890473284314119740667706362123119841255155773844166735462808048300441260627887271481574572650549328720403073424964388963690887530822690712445703197554177451871406473469170124816792808340938055304863452256588584583148151759821999464269996659616900835794729649288627478954545585516987642930669024751924103409156266367570812533498047567062464190460006120471186647172060778166339807767472938018863726531700208589428398554962500548875100396124183651469291095045907886654443523307803324985186680582799341498623933203838046389135964042332263661830177405218395761715266030289614142969023530532148459673876254011643027055680490118093194642972912223135739321265269450550148292641360893804172287069529682868563356563113859660703070057787074057733468063452160432517538169673383220783540055356256831242661954889276507126722685238058703761753773930166556684941921350174520338596671588025471153467459801269478245634474894300621555713354077024783421011941661218759587048980279241033835549879835120917849435213492565831453795567280230659982071456145763936387948326933010981302202234019427240882035759558040546273545557436422239032566327426860971962527332215455635009073632255783925643521622695005250822752988285335445250339684764178786088191274852571565976003371239654224899182396056647135921240325356165046508755148765867776011830922426182096191601534656187126446768238488706376880570688105929365922494645863225238817110177014407453272749147765990429651047930274616278302443132595517314716862199351809699761714845190004344664611736247398436612505888181580029561573810506876519601389586776264014390530437222823712954481419157743075172193698658729648845997084807458487767206238640587829445624034251538241255912889659749747947530152072227687004170706369752998572133950725313971159187056874080042278311060525764948042327409779230879375601901662034754237655335404374727928392832534900581399264132664275171623175564263914704979281250790467569133531908480299456098057378910337840131945942499586086577863720023354970915031041252262412566176639633262407500871408361073011697987686698079434876427385180655813227885423325259537933037634003871902445610964522614697108693274673944580216766518922711267714362544046690904952048212275496960083941823676846059463271764829791173707051752745348819666349298027898293297018682172919580831820558687969209375518790829240733436443437730085725087411032103809892437786114920935716895377481138517252647516268518145616054467874652023686861199321071989662732453374538377891991757980000171440385470117102059984897171131081512452729891678968574462118801583647643668134926480407481922096399311713836435240494272242484967487046879027134005826297315656891108171456280568221357935061372983829887147464396359960971507674787459105487344002601146489185096975739024240784475629911195428659848713557422690189020246538428772240602182034030460445650450975896980830308638174283959965483109644505268227151924046192218552211258505274079116983091367054061459385135718905449935134298043676754892659483691837420917285943458263989926418554685792456203294008405950327580117716221934002253245273803992958962156357974002871018889338087985785163647982793348037360633749022128065491954580421956948093772151172587587276044499934392815565926827410799727332602811964830240828348665053084040323648974106486053310781611081502816083707868491739158083663863719827377857360830808245724069764531104403136291246931979202220838235911571924481703659374533558603347513807131638270006590700674554782680210143901907666715810035641671323782136889123022965364724182420568444687522823780537904244425985821338846446670905612584179658962005289219468070433839134592417515131606516479433916154911796756421211116008809906513374507035665102339160835773431910327975070209968680431583917565254570008923004485521500032047482733780600279451832770356316971307301697112188522646813764829709063776632209089376663755844065081845547130930883075191530351816868911239431562659432854856206230128417339033222935359061403171382643119176217533403774000963339456936033638566338339667146313165569322595569903910613496035251525597514761232726263033593800401081686380125533036386352211428194669230965239899284905057853059306171581777338979518043925207728039899896141041251014328497542200781311905677052415607654950122315289855002865635468905304028541204580180487219146373128950914595739049224984546846235458992633627096459877323762202583036438082655448152924014971232219236210221901376199053415742510955353310528254157325862101990066678669986019571275102791733425086450569264163628477430719600916040260342860790495105631448867391086350923212375826598376102671378678923492994972086651955501103708033437183815017945470035639593156666458430707367150033480449409299335079717498232482759027023182032483233007413216693746618273612850164452885486169943728436950566662331748530324597217315331371990316899322553867048520026142453780817606873680328277926547905005535787932861388835462833168635818491345247599978212394924339115891959979828686972625379572099734138514563061667597215358030820562377763199905713703828557425618416712434874264420215618545851959409343238959300633010335793205288098447668122738207136031822916379573893095595737772742413412802181695481750741871057066793785374217992093417515476918810843289767989193426809808239153194882511140976723264460548293219937328199795283036621941776189542280704825669394117420800454851575753468528047994230262178556420181468703938165907340278495125133087217300000660828991323713919822128996472762410546594034673121752082598926843089945634846795687838162092350472724005720355238410035016248471767500784812951578059285137799365172722274093120946235984743124854669914682038536602197509075774477337987018216695040800625237350825543985070891713638987115599276676109814760600764387072738568531166400971217731414943782596715322730280448554331789929630463383585597908875881821474825898451613723115573436833688142056197838276690084575871468676618683593918011889930984490135680538113701179295446897030112350073060026361891679801439118478402402209332104637019199962625817457043043517032483850821039973734999397186152058200751660594988927633398379643614360015020937921792706867304442704404009204888435600525749703339921886536038678651056466876963409239147315578046737674048915662454967726412553001841343253254838082087276601680487694322783198201867849743014115637172409009537542728119091315683198897774628786208268518576603716374655481444390212023832043545755277510272150063913149503946260026139338022286771103904256787710731418815089140237536440853433507353181310249526876848494334962110046531815932710794563352617196593200820315940025876352041857461462409565191416719306745749537741827288560024897080625312758648389310916460831318316576400859157398763125230506567645287158101012168356723489514942215865244972966644226897154052995877068944304257645384207551507788700353372555231851037048485372020394539566020272779966228459350766779549016718967854234568767634833327661460522568849996876365689206844520887872304446627062912123335680013481784470516669974961939785257331512148214000687472014471609585829751930216915156450876066413843997378224576924325785845422527701487574081673736034926328467326726611657788564667811472599341541085262617144451963422565938282733475371650627052465801592143238329564731266253676775358567812928710145091324490429229683051587994287007823021741870680919051469995712787231743933842023608206881597044261321286433641814270515803172823221786178354321843240080447401283948437937894691278815816186871611921915381571530799442187518360533642986015275197124511776781015513662732636211284269849428120287898516576307357994562603716272778604160562177799843602785906032041416009553491837369359150432560692122244115871845552946610662425290117389078799245001500990905125543559127873628055790615837891827383960043919417222480868900228119688079345687078399991990950313779945349706606595084283718258887565062478945315312587706752924451770704722548186685250088044856603516144926428456179803948769623659536273534306413140960269721529180901163107001581893673904950766873768814808517952638719732616685036931471794309890440799421565406118766308294777935940522877555519271421001880910094442947761143393603594801296158480299866261803941825703542062080512959122360758416097073818715420432728709012200613158803064286116673470078488729681481383821145794980802418241966883387873481532283656511031315000092103853097461377016203925364290084991011620182278735048043040419525061198345760450053495087651035165723678717634285896931658642811059270765991922183361030661957964804256344453972274889719344297280817475146597933251786059842969383455489044894678823665547015758935702122596355868021626132161454910822526822442271825480553748617188779674594813990016063009122428368450275330044293202722091326133573092031245694940752273709654960057131134772644311809332818350789985605549272704188316062082109659433094703853851073283073926809764466389864640854506097970158875698786907467206015089756154590121271469535106047853329181508431049306632857295750313632708786656859529855449499139083422420005578745617972465320300548985031424708333376369445190072855842008081817701895811706946558278876383491183665047090868688690023236111967945041630241001285554314675621289973897148000915928776587298713077953165278860621020175177095168191210951429207820503259199852708038090280988715143051196400113796832010577468131548231924479533437684598653229825060782619755525451606628783892821257993550750589159276097492488036397822228366758009084441726976211477635974489262180552637962497129559525133709024583962975931804482794561781078849139746670832341245578636360986589225994744331002150137101469642913369952643848971621544071995966079036078068097192113060754596571142638381755252478871584303669035540291462425050023910435380899941541256292272932391842073651328765579071247669320405340257646877093976179042069549326325760497647204174306804849698444100095946218874531249850318303664183636370176074139748501436925195117282180864871671259063261516892800466304998385217504240263883258307229724084984199148856060893788269969714533841820688076410247031780088872767559462636566854152151064182871022489465123725311824998959785820500274696075815745656940746176568587940570959952613288880662287014936000869810890742241648698270180667607296876804426617443320107448422855571650241762345830146655056307920123650420785725749704758039299762896092609251792545062165453249274466100977845946730567134520427019768529054439483813266374090662182752964840599310829884312119117421506573442912257018256362934762077253191121290819417782360815100760517932382361350391146781856245467798870920226392478856324407778656629820104620901579641434871405504078158448687339592890627261457344165528030270930998380465605886174342388858808633016658113017385157820191973108952029013154291417660547658068339934860567731828366329432004195621131440758005668653530654910485121496338380306834136210281427732571034035221369028294301033837697826992537873736103930804849217712350313089648243912923664032915211883980457686359161078976272840172713885954079488500117191969357623755242803300653758839711191575710000005736833318834051126053711633676453054861670889809744772160440378147195870465640181073350799575035339719559382718882262534616995628123119265715777505737129776046979920382157808493788599301359296136922285826443863504243371695957882424927806690051533872561361894979028924864143939551938027778298652222797119398570170531363909221434932131138474773184983037890421795171200112790092402418387590478299086191980398072466981521761423182208247484163828849097754778848193379368519945759028715313612864415306837958199159878735910481561886289841499071416611650317281266680519966242383551471287922212023475553302964930252442762333526614957679494570868813491704525727387531415993574211033267771611255615798475078502050284898639242325861732588612826841603577858696882975546807912368973773454683731112933951640895170691694749996747470899378679542916835142138892725983511975083511401280157468146886192634144109837397149968820374704343750031194916208986413206875493190061244217368725247520754729170145919209015895870452524121210420573732781389249787360358512653557355609062822386286402351959095720959834945933457017676867304885801755367598548652010185102413288765894391796136076389190752961994830941138901283104337462783745059244519169304087366844878719899509390329741473970391138112468157963022369577149828715732270330186556372414648630162832642053025796783389952117978310693750279283314396932957234830508800204761016532516270654271641782839144532829536035729123548795148884675531839726107694749331340415689768014665886621307622536958214714205557939386956633875694696935747815818548126121664667833612131695355486969003399944204367906174972092054304589249819983949346158568113107266226206800547203496234553338300901051703385052788741751107052714252984493727117343157616006263720991851995392451679967648894188446806372034957593415622882983548207819406302783544203403243817463187681490795125157325029660128265034211860011650452636034188313204205908458378443306160284328271572653767630026381374399654160840343751308798224458252206523789595261796111761361559699084373054202438068583298781273286571923252618117024601200394066899623817207085824413568098370534027255487085550539002971510043642427895418058031459223241776869700128750570494477738821285170862060646182118985918072521854539543826095568948641198076580256848493493605806577833849075446035799823780011056125554129717870690623133327136245068945487481579640938425731432550369241035506514769674924515433895710882028249617250343172197547650702757352325332383237666259190806850002281123402283193171824834510872300270254192149210272371924180156126384232322354817238982909929515701295119133215585255644903228799297487572501504418827345524264738235393100252131123951003399865336307024830326092217418145581508380533219077327647378023285605338919823288305255828668252953540881559589765208964733806398695771723793076825725591322190709124053205239365977927381197594356404787859259412467936632728477272182608973699501404202328881734764661046493377702162630888755399266370931927747929862842307360329271324662774536923133151400636243215932563716791672456658970341377971464124158423468237134058217095504027902153754117234127669623792247144762018780509513511186725900565128544979632619549410707430882273666991707265370292049738876148689242039081913121644118613408764214620717775496464016293109651897894011919673319996520955565407076752176544574818517288314256799072422346232148889927416221849221388249704424382272331969528380941163839678201350830550446593869469872586309413160768557102218575418400896951890249898081887629084225792920967491601625760156338660771001670103897250949567475074573601473332714895905385867587165871777979077048749752706447095747152697447747531113687519057967376529780183507500522619029368417474951328312139334255798352116238979337759044846925250141425929938972157814018061212537389632826179603354358632968736496686606797812046984899706427267446727411107169927373923049914625346772280280026155457815752279219969729477017368762351698157654778552349051305338564884755540187575109346851630225534592372019322261053690359465713418429937432744262018897837559935923957082202849887588808321307201401708504879856787173865082816838351050569484271717262969495317928676502262318516878678657092100824698375812054659263193800771469063256586812763969890259073597591363685606890903555809098081603554060956633899882705789761494688070985318795076522495966055463259867394552288699517752225712890124634135756311383484643710608262074837583908789389019351290450063146244329206812948226080148518630723576106146028025348697498607647412971602727192035509609292248257611314922712613302896063243956512106995055132708693075578657110314733990615044307411643685321529236814016020271505423725588004338156334418317202272492322220434549433536383157014178328609205005065227977845138691835516286654327124105414888246113182928755013729824295881620393008621772264915451309220815707046748402758306758137165027669714537577493584777828943099503980879300239674034378176025453536449127040532540879630129905883846034225837670913890733153390892880293995925349600310295087324363986659561590818161275392632629079617049318781531051986694284928121002163886359145289459918262842287315744880293238802074274733773846320184633043486813688519017599810117087858684907794567241966912921780223830571826328195999362672295496166291943530238352096468912683605141681904206622659204240058659599245203856378935578376264583406663222488620513312697366005481385996842710028956134305527035440551051823122498736727894076230139565149659905034237060953174768436652485032629060890271671677667370358560594313364038852717183008832118161752930019641826432276303977556845477351298035696524911008878329424781384504991948153309461261545295697137810336312889624763004218324985376995687238231111607053212471425158559586464571378549607898017113728775493973724251546732071538862206556417794830258803571222954731804581298374453639693421252180478140853356012880132093190367216927059019700397306057362145033952747670002695612945184396686448383234064160263541958682206804775883222559695068035839632516784266517041678903726721159935738100480969596436440611433913639874068211451452273213586958126030190534134439899105617317605130505947406092997595080218777448316799530555754371475139967343760483678356789050302610526063073891042020582009406175999782367521601770021348402482887126074371821338753796726525155864119601356634175828991110467362979227727836459230610982954889771836848979130436289898722201446879787241898149169784805434075062126399492506708350841854065695025437530947951350770476910891175626431741041321547660953704127155440088334378759826239518558965438749403240592354936446650675840119584158776033464270446080213413545190290548751323886999580362057737019360867827920818721641731653889414470940079570481888874451608502661681916580238907511210696454219839892790658102884118285755545721520881416108283273129013603662301840611840636515970044039284673993798469755874975910481226048701161496104601761046695919940638010364464160005444230383841618315268223066358179565817183772960713033995548144861583634577868528942901631837080251540122912775645418471050389607413660830998348313882837856973041369015495787080435951020158239267557940973592350651159320616579287954382678992662493132522112341840947252060345862548930042154738362625829764224737787835541812172113068946424842963956253869093366603680364267915462056666109914636284995512067735788181413431672685813150915311655758766388924243049771311288970304601640260572181894835462984321003179092606403848217162866133647761220160351325389493193000426709597531753240101053014595527388055945735805353318947037486093418901955715221844109866071824863752774993983318661442080366332966824100310203354025612440887244862297512295413067549776493924842634709099779175096885290868748070646458697517893656687207464152999859648516498396586799412512988240496587608779238358932720012136271799796326550872232086758354667311633049603686777310762894783483054683375654820715616203845997345580270287565730701042472508575100116269767552788189413829978285750924410681739324810606338824650790878333283917883692018319114066117229029657881809551623783512222960892134807106067573637542334406774494363704262907094187528179122980420351126377743199511198671501404426483463976327691355934957726530313130297893272803614333445575882206298843651621821573103170810024453337154927100391978390315420032379669998902871734011610972496810540463721368763701756560608043991584946855501002546226632929207979686985697549471277492752722938249822047910077518290651999426841503693483746561566942864450454834625946673167219845358129347422737713864840421324109192260676538910154466033262273517543683420053782701598831884656874690827521233886867004220948641261740502666860390083918172955133988644774589692512112909002909874168358731533989499936017819307642358707987221859786127528387748434662042947330323095105718957737939303383263962446878320314630260643854250703943706641015222091730324237418660359438521918540919838875474948484671219500689866366855466514115473138878061671894000691014658468450494154845167606287591405723946753454395140784950116364593970066324934320687035306293217475867747141614931433736139299492952110215916294954118998614274192967030699074319128629605538060206187707146503042841957327336092486652497940526250390914384519463373467960137903118797016530982091569936386822642176634232222019061517046570718978638637142746160296413697313129838420293049082110329591445320433334532420448350771798053572893512155278082329921581424516143000647058085399882465057315105239347979986487658108150288174468714585127843277527776655062958117528978756529442302408687014545790205036960529726951872466236534053565762913905976933051647223057958715303575125309291567543010443941901540770474317181631986995316152364195131319366759967043440279951263204820986071353268988008664501673289672245614946258148659404832898921998823205997789584139183167748562190645411267635199872423271357847261744893728123199579172329062602400971339303834044332455533129627757054495860433399667142594156335250235605197346916328721763816859730570035053480985662965533844667762407814300025152189058577962345800682346808939672322747137526715874543288075967490410907909512723750415684388555542109583894646482227447162816182939314403756211120244703685661952542812505021310829076545584684329329263383975819996898666223082052095265300498992603111480962462209979556716851835518191030366278852539458597793519069644678985664967169240892545432165082601872732583320727611038044307712020590624071590815036118041405070555532157215215866179980827721453505736303960894971288773103656914828664755948910915204331692373781674473140128251189575442726785530396544190447508933834980768037679223209340882309498707227315650524994323218340098059274128157139140514453612903385699202677439673428032603369462353337519065325169477396448961345578414912520183184174591504127523413419188537670697941695312957192798268818742545273633079882222150623725948175217956994290525245889541084831517855242862381611215111545166148477047976795388978073528774957848996947991495457938255795201968277936837239970522289113863206516678810044879104577715644378683972782097835470648317942047983698736865901497078930501369985990717093791320119048019876059464110275968481467677013643467960299190787273308941914664915340976882763994699236751540908689310663643651609482000997163505981343058839309215505192414751580124351897904386479336155294043195584945387031121774689260465083864038539231179332734009714767710062940741512005398294853304176368700848467775526458737441643068820134967146323451506255853270456370442379112330293518141311102934582256831302292933555760008628148186977044540838016941790855774244867170543643008046881498121941220639311047786581167731365498862107335835898038759133054851705668932869781563392372163673241155428278300129883898515072692008112689050800613618076699118668239192074244191996544077485314627481305924093613173348679902956954254723657183287935407264978594516828649331635877790476530123038122408462843920161637597793282555380805329203746180226932957575952396179521392939312458603680349180483935134382002465627494209133863489136011554757870217083228222339973143541341810151224881378094305906281989911917042282435723613723286073013315621995438924485306750349339572854578798710845182660345342902813526331034660379626302318526013000264422963725419991455376024426214228911787793747434574099011980476793988176859732965362622447114473941964483644172456583459923671764331136161723904571463739282025190275886301044436864937858308711876787256723795301409439364055440766564960222331888229790217234805818167830646474054716726275711799173889978405129042338335925484217500678392193561503556305605158124514601062434596908951978143196980524294339064232331148018625842503515857785949831611762547129178496155868907374698636899470840849961951919582413089280173612331561411937360803444181247476556833563109104256783175109223214911985888474903296935681139098603205842995331450305744267584541204112905234461150642392907712439496407328933115542044529602729016462416849169699779710574792040518442939397690499811861330217028625149216777065420977275309241734163422277472927203046164848110423063949190750769001990618947142929578783489225876314367515485330935926515999896698499023727297280803441137173979421122226803810002755927285190176124366691226782374121482989814494004583624644383786933961536967662237546077722649773170855743653631025699098574446015779764058354025647501901886769601517930064553699020756765107126760222357070871998774741073884515793005944150094413854346229573584964051449626348728070114418825329372550406919878727606206681419527300590311614500417885007955615450579688054408158386393758061605985246454310700865836253624306501686872092965337141161413345131438532274655976868708529583738517795043431524517545264119822959702498048648538489567409851442912433500295429518809530558772922064313193489197134692549267978121225472184519697789461907440528196394616255956539491095307979802493688371095968743170401896323121238003925011244549050617240195327414294310408656968049136364806954007576082155173881912569994900381084796865300229207435919209612653958520711187547938093225843084316200760488611312648907217734272623073068905557264565739558065168986024827302831039991910558807945294772984027775681338795613341154866557751117026858690849066049609713943039143352382945857731447652505822530133650719107716186660859386873136146287116885561503607515590737186036693338376937168338924533241557495391577312391118610626302817018520753108156365662283929712844765493158531258894801825172370129572849248336760541169785029002100429776434475316128289591449491103274454015713167909178148784263195099566664651816843190605367846062324449974154940986818300594908570184720978629832806043458531352965992097637660485647681495574867007664433500270149265208320006321759545872311473520017929131915000146778960814218035390580383581807114628380386298053507193004984402198667165323421274376362177937432345055169426744222191626501134112349384427064315614735831236026682719558768009394098860327675385475632593889511223572600749156083714567283814922866535760532005089960049056977264338035357140768978965744761845803850280519709369213603567516087355060635874523996961296926181338870449282639250576974441089973362079818860966082594804540718793714589555867763344412914824829688283829241458943348533563294197028150408196611025674871074833137640925938142238822481488859342775333882829253688497745907463170738925555600424153923295226397253533248850290726836910254438781528720559937459808448985402744444008278344028566659325012364163740748188455767848928711547927752266413467746831875154808768804912881065624999292004284207525397290998532490942701233990906154473378597671652141686944518357892312083964499884295904142888081870298933319183420802090926300514067132457468092594061450838308916273696870572277840957093425113888961050058576713658573449895282126846140769293835828757885827716977835136588760600923150096255905066153398756611319040510293264594432400511532432586746853934887148688573618037872386516192602327444816596398591764414969273596837706685237290123811183308251799398430797761647028424584901853836839902471851659288299220093726726308922487326156647890965717175433176965392051093773216456039311536262272296116468254127826003200579801063148004125161269375447076696007150805894624562351938468575163818957552553123613498544071526923889064164439961460176362019015078192645382459190601999120275659165213533306936959748288079003015308754660989893578267512043201372618594036391561539803391615601204204789061723632594511225594445630316906843868095117760594433237013191331721712720154410480768073468509004466189212993458975842128862135134591386079207448599318553663423862525363275317071880190663022127793679738232386994205393748101625504353089475355850624565488345410530667426592976948651607590825449916526256569339654400784260337971163720212613519060199890132516734150476797807898990448168139830682712276171940896484158648276500549678907694486554450494381069197814607176892969411463109915232200977211845515736666034000483608484779933746839008219118896324232471502738208270131147645857553129413718192635456960936825737142932431637519372409633227604140790437290835823255774780218368475724708367553046828916335092529599571252380323761054211467601100835001409387770955353047092023008264968920502097727537579060667785842450612673476541965949778651509346792025691175164051688711803359836910452398420010376135036717413869088304394221731344646874511647429303434550558755929958261816086966757892459254613483722476602137713403408308357081099212982522640334091739676857847981744842497868778506851305613608802205965855346345275771974785538302334364989597333929646320535240782527377465836557324813963102554799417605149141721077158988612961458854485653721507317381065337115539007056311488934297800351712646473464026013298897511581931255544263458685387183674984225257446701740730866370338353095363523225762147590114314767798298601153319406674688433483936837860479523266761963761374906349796397660757722437637979327955559530367980413626711561073265155923379900286339929391297380872816605669615660454128637628123230773214993461375290142528852718218225690949918506916297118166141315675853037344558577598621414213446736257285630673496283777221460349010132521353398986526531710525348703132776366636839365121717427234127243673457463477141649979152119394458905317443131961255903566347481844411457286812029525116238364259971211688178118959565063433633984406728997524584536045606871447876311031444877639394937729299514495795131238112359600681479657345128930773096783049237030329868512029574922042384438913467233106568947120504553602920566248412229637880400240128316618303317117394489500286124890491628535686652665830730294146332466697820160274352536099933020358754206278067606728633650708209357156599581043106445953014504446172071367128293762573404806917166342642101437739464948211699185296125714218434173627054629073112856236199186296239299994322784768058433214178106623860516602131697502765314170015534725250442808942354554990989578238694940941224369388027069918492329349434495065426541028249963864009914270824494132958631001376768249675359188193048121421922041367324213193377392277349657298274685218318096349835185553316931311757345893403500962307743899079037324422307491325850792926036772551829671112856088889408097098205565675477325113386091550149902812033752244658687840399763909679179223346300410965034632041030155350051059631564471979825894496705940408280281237027806504462151058044386434563930070585254549416540923843035575032872295658402808611819951380857430334044034642973403989451410570410698793709693814365719389090227689445640596626539574938607094469501784016493608813630468703644762197357280454148039281878810000737729692578869734333824616185360902540919785673070620284857058463390954188416115098109395296920639917367017543752704768954455503707091649139210893414916417860515343786668069475953436675699542728940877883177534429081390116239964659811575923406800920932682302975527167264246029624653900234757014294211630792605015479719236344487251601919866659716412082015921434704392664344790315946597067159416452887811089769684402195695525363304679369080046027263466351522922839182533274971967961328487028854070999675299499734987125402884739234462157281528654098053149270499058048072706453968505643793364394838258488052431313610426785426477335640327012983964643127136252418488042257870030236902306781644820857097181673928793981113413397303893747602666477445305398411806769883036612758266892171842321536309917865886596097220256766904690658321979242057210229606078271238874769171682075320666753092785718014246003167434242723851435176920202722276569416042528267669182435962704913900899259429407260476557864340941327637493401660847165389856799075347777568916182465919828275214331777911939858017418430263496521540149679290945978888439745676322587619321679615368434974965699102128614754017199232512403865716310540831566491340413459471755442946599051535062066939510318361767488856299800845965337480411553574091680916149745112904689142298638037156444267269049088006653468359352269489695959718538628425168192026814072077301775079737584217735578663212193693051041674088133942893284475017197487869333540732981039610244584827959756338798123170531506163102803260854913367948985693189160968834986343764335112769554311795027037723111985225274490953611274217241988893876912482648194764547727184429213970231742911401934781376271467352677022433397646805461745991377938089352518640151913084671574893372155730547426035325473483266637000342599467168499169027169757768529041207532441556769952894341405561106245823115485549959776161875508659440837787828383646528336322261992279543652572009806947146196429496910064050944316439249607337484292763838065532767023349314579504843979625402164173236916265743175444127288132840857307608990730994769286475600659387763603493207516021263397938620221944530015608032828159142432406339205746741274723722572683748452316506864672796947869051602328993863219787490681001981679830540548606286323838887624761578677830107894645696062411938073809663817587440289143758557275622218938110958315211285192935814491972974920343224747788451665763418504710370958737712422206124653093617054399866866754709542080333903073018968773683664951135647267187178188675239273642730144126363844159750074562585782194052366931990956440262007440618882517342853378463463650843799407399207627588571803073391346981161144092406935407354019398108487850534934388604123652678383636723220323301297876382557747858590485143752394648126303176656061407798386800989370297964187842337483414444263192594619793026872805395728630967296046787479380542254295293347063807285999325381792284015304635207095301541206598280764773150064635622171979848451134957398828927403020178241735643199646083153990204681924544430878666620691959439138899119181574845106022657231620631277217261519089887042870157797204434640881098560994933339018291470952996461933161888326813283783745318351213122322709152671414562525394700858298708117773772083960079548953665147338823767209711882428487518665733332528088607543123031338246737824682622759492640597051126183824977268925342452421807658676325054960991341442797480286395724991584197206845883972300690595872248606134910198186240440517354254396944691423201170221340605425612482782524231934368271510483848792292504848734244870641440475993275902120717536022631798295116242219637050859654946673489016118635087431608470213111456488563876612328633877993683310741831808508660068144484751779637121482298843562700057691931893872020347444527619232973508104605104092467879016419036555487123068061293905405532540843891396891408003397095694917751830876806672654760837639005854961735395591187368491930999735982686671652986618839845955293571253859255270793586367793069984600778472800364258827374620037818478751495615430334380701073234961592612171597151972969131390118053355185602786509029049919517154503973897828859359647829185290115391320895278852241892622316028700099928598241779733081097552854526564854294658141418360956389599280668167679439322966318120914245089327491695048232520114203823904517095694250999669057405122086473136030079854307449455649381639224042533881064194011829964682438455975568403250521418701304345611566119731004844826162523216013127921252742804175595514827905716752622599039279804048273812704771606074678290919190138970265802121493176034268389724889064260015109841343891730124462643668181220594484599621254661549707062986081066209025465300660659162923037470876527094184895367888138024848412395738401209817320383689237991985484240603251956023574781381335966880296831588220942825214610538809191836387840361676797796841009322158952762351222439193795368740930904821443959974280177233957084994992938529709467351353174223148396922046950429551758678025569125155418532724587505506651594588825157791113756908170279110991880236495395201615819508993693436347703403146674896412121606631783862933303763031827044488169595703625804562047475096909551434513091129277322545190423189447329450542400820655444268112549563570303641600705279741502249512473178111048990066498440210996563239029150081987434786626916239665813588184378632565708371936932371112108812711252913478590885292129316332929999724847473328305866628757890768262859572570078651690836409380771243152249405031755272176354179046297156216638838812170071452371266379024239144643742235907098689334318216481393523582902276486486934042462758473333022355535825544840195610554837161606262338166172518060795537224868072888598442449181851572043944203629368226860204622270786913180956894644778680264118170074381379446835281540024290515918545771339873726332850028432405667243593583564912799883897171862176231949918006893765662538224912038139490012180295631690356070623962403582309779866428390616714726852226562379634639918777102544801869438028257175113400995531849134876858177411857829241830865804600851541368936017067206062400392150824082855983655470433973138942017552493934441068464716313416395260196475687392328359092162460128224652087042072358756908761456375960850604937531565881057615321256241942755434615389891752415865403407069203048701884923509600299950611135583728711109381667770279798931476154252731901814231871585229223787596271072441105293688911524505604342691638033759042447175788259731725301729130421368505632735609603821132663639402174227777995105838166813753961747004968942474624298731185016879758645243907190969287818774119221662628194481878929489255972027791374756007848228902952980621855671368634668805710054337900959277131454679413096058508375523404727741435726472427698159832997380551922090431628913222668025071539883844206525972510631968470823994486289249701052829485261471821074702465398061791893270394740693108906257760445289594305861805665168839545552660285492600778340254096947239981533673501195272626255038333754733051526991411934775037921262340572993086182000506734044520473211104776409653622233857993833369565064140781645596402934261369151971890678907752465488627328957495277537037236876921856115491176145431568924777655004463262429572224634891155125120745825656082679373726359466075747726123006602720927425361539854181565336692771204489396657681283134111727960221427319354310822670797595215629381269088162689134337099872639403945160713595327091680563345019855529487667363664106933678847643779996094330285790113094355221085751854549404432913136271148346226449195112289010233585775629113186154092535059346527549986200434135393902630257202177114117891872086718569669048809837154532542939470302221905909513877985330137827637062687236895531874613229137545311887354991003335873364244063552541463425131681864404086920286791748158283742156275237719484738016359369419721138448763732204824986138349011160003192958320416401241416566208699502557940953098839605841229899960147438496733769562206683676018438910157340342378420661526555133000170313305027011613949875983169978277409677469963449825220043535490402449630937234891208353636597076652687395038906696366566839750319867329236544330895363894212682217633172939266425014092970864833313840003112832434059105536389538247030642254191500650861919698751535616603672273775445850424498413276944554232136226967610546052444214240656267056868927464208220853071438236372571635185925410278035959264061089284191962643061119801301264009312801312789591159358040115303760055210066151628347850688784149474507821418866047328440133340372787244700907684368041134701071343903404750401171589733810170519561827245545439012032657176864681390276295724029709514160743228556436069977377897904675876183378797912588634906800668344089477969860696114327378843395515246006917887420636081571996783290001002467628142800870778069583308831823803228440635524902178950562968119262758677891823067735392937362187847040723376928909817463081283694040106572341907650277391354071433071247952602610132018792167827830395717451794864958580409888846877235277077394088941001058583933379482631793594843827561465238923864588493883886298535453477470263886030234315210620481732683208268438859948115211980423121172166962023831884579275781651358885067677497902010056828096427193360964084008821468354155816171459474332113421810294425287819273850073222247351131673270663479417858550898534503656854049801792867790120228442570145828975840807441212215669545351288788005320934251469179134809517015284020780759354061336050906185259853144326517430950124308787997695780333549289653537212020010410054249209387568881141460846361532251526219681838852881389579944375913609680513443542435223938102079270158488535180636181487344134395085707021552364998623435538448404052021906788766481286301555683673310579702705038889528975239908194332661915205388955293128134856697528389405319864639164600867277212168069396967556721464648415973369189658733889488841619823483521351702513714371854951096299370719162086228480285374603474519507004834275546737039531291636368730519320415673807214038937753671157366315619149758672361015461570183986578805878708356813453046177286823018677576242771248123288865839887281810739258303909324773971012735436938771077467514036468569345375544535841599215648579171277301049542052982686461169753984963809998966444546162377833962130332197970798206547456713029720589039607389540111101774412300205322702911637263622608265686998996461570518585689075369309933885970180490364151193024804795704865351366657809734223815871148450647614645263713571263006678264748313198852656749912354176290335367468300425137082377265855463570004172920222846321198873378667577713127952328603476921777281898488355387044027849075831998918463657045877646236031365737194181424207934169727175917247133792944321982959469888581577097883193031821403680896715882131878840227428222728611274368389969108873009762895082181889022247446422365680263416821789174310029082330284742405542168646834963200868614390304407200421231143677781561227372002167441013769155757860648384874544806513991290167488873049053902227183210816328611666846989446174584986138498184122806972062926718429381164951293615317174661489900190503888138651551671703748665004572369634533902046273120561933520626676919305755049898976415527002802788692018009162683934035098971849569276404495087835477811411667760747310459031651538578419898626005150276153945535901861791559862512959580530718809444694979860763891765137518244470430465358633177038180431155333941707170421910435577825852192179025895292748845490275951237296452543550486373281563883424253177819722198558191369284920149119899990381477530529538644239085656727949036282071837062859024555167022176376461925957767576267001672100419148128015662619811440303505424977724889492003280412166585526687957024652119366739776261240601159975461868727040173806125632092758108016128973692233319212999544772618032275784048038926456865424104366952210747548169805604033247468863775942204617431912909528221101144070334169502945848211282016369906362862533687799313572798523639615220103375916855067984632977399053944665264968702890015655214072494331126656370112354733398010814442917771499747067301461530602093433643088850328197144320987017035708132987585573121629877423261870636280144392019237763880486050359806753184694350669756865319117594812452901970477419443717668973071380264732716719588034822952149038975964206362916055519885123469569388950638190053912106471969663514750428541932442497670954968449572531140525920327045591118669491224782697171621626465211088087561791814756842690010607301121846060659584164202462466294338109547117108480812697455330638503705559640334335852396468959708780726157180187985304250579237764469308062364188611759551835994139880126433104252321186164156897650806183933025885515634237993964549426573671340569307299787577367561550855861332835051347690236650989454817492317458699824016427878012292372583678886031377071022740339935925182691651202061818407504783254366286239110173559848886893469281275940637124204044669659382338690677212181346958154428904571582559747334514339700592922770639768825211392013966954180992374848790564943685686543989797073032307422665394649896632957672578299023796735275892271239084106332308017022732496659389764647557173740082445059732134631483958795589732068853384821068532389753846417685607986793996523079355896993445462986284737523369134677021536651307188078880666708302456257714210649689420497281148780961204549612967924851833807767412765161943775174427027689709170486507568168026837228789985241675826593367700944323039690263747112703304137983821548496159841265522521182355125003563685829452407704861297461294960180356618825148995691308430028411969981789673616392104624957802141677998885802722845912126857110434946774755984981964810554741350320935314719527359062693058840746411113333927779626653325261565999589408850305989524912275642539001398883128353392773637656461064125682328001272802037507419874212981807447905200417479821497789424012178369823752200157048523089445589204574341962990107836702253957628147288798794339180267093994651623092571531707295471498991602180763233736315540196173608283867829252709689889670588309187600132972195224962340794656407850397391115462181258573851239117530829561410222068865481548187959187205403104667729957444613621035266647041157386128502549755032684343014485124832941640742037107668442098733574293832790373640652795227926956599948554612266015060743737835304521146909926654421006964299436575271395517988209077126660423305385741840422818690112504343082756183625428668183436644581209127309660338311186235848621721599469246346297483487402905558351437141059389547362116080069221075143743673691494483719674926117987769518327456771865758256101871458886061982181400312528698725736973081475696660471767164477946844063153895384469843567062732504520209293835815037937853335055020350927643394544499701789106380053067038776308642875399622038643544416282321992724021291289259457104340591745563232796892222107856625587058827612231982826754578242409554223682477133905405881240681257974588555517395200846663359295316915948506074942025534752226728334346523418679506777260247014837497501879740244679183821679977294849287764253275168776828741021595802889286574272704844094432893906255532111314187286016867709729153271613451185243799664877052677967978880099929206399884870369037514616295229080514374508291577153862428248235299621511805308706171139868841750243886258824469196860420687448203892437769360316212435777250444936380318207262478855244044000189896275396763313287215883712221371909551057049304247619950071227990570438774705925277406305194790008557506479815327461323737737929899693121450340015532006139600208711450901205039791719612038305287586986403791567281501860179976875820719080246130235115327217795222213266493635919425161470396026959086819957401858458883877813461334009266088094109413117902955221663832350081992107227077934842319055495606764534249511631208673698670504184342705445530975362502709719210499299678246185569741139041031915711114522574867559849041330938165822417935481949173709728967462186492329950596216380457112218499714305814517087101716968655055825472857206944017875396744659071598666833763128300387280953485711120743009502918069085425567167074204938223276100365847198559533034282469916992976707905594333046687200565568439898031226806821729377698623375377153247990019311296437920099723852208837722578493785030725428675024885997517985244545112049213844314882089082584799456930711904538135750937730805716955940240389146315804666557093090219683979662675410340793692206233468239942510922069562478668294172221761161033943852630563125880675513194335789459945355637939039125653838117542926682688645468067757278029048005283857661033417426626030683703104626014587263466002852980819518741725728591735719678852374858669009310344245639814828694586171708627417725455868418992822205650697725303730722793286922209482358063837789774902733561061486840842448618160531032208582256379647575484839141945579895290750840029709578793420756004969273888995492370535430323536019277592669094645537805282361379144536644127162817130116036670405862575600834736650884797868294930180354449424390640644225563486401143692086955344840650350336460040695134730277244947901943259394261208017312670139621088456843974208040213234347713946338299402063090732194204356680329180869305040793879222068332169486626077022582566699795162467184563165845465330767944866637490805869819156256169570978256980390939197898735143716355122133685056993591611815448357682881929234233692205664204843750791436020824142657038091831708513040754672525839774298024742562462722645365191216439752210698930552002980459467554707407175151821547794257903091276076162189041481326286632441210270124558116750938793747684272345525492461802747762720710161482452212758696763951655837351535358812985961421522235353413068905065369262156810280526732665165178194178549002658082753370959565612759940703773439687495891893085014840172495218732195344458368261145825587336559452122545948656799146392394691650876511461637568335424179686600937368844613556001792137552455167983605431231148159314457661180619405485164474758240025048777181718565511520705781053152405082249949829279003099369600223065687693781171064821701763450431071896845451965853379081501527998344739859480673398811971169817985772677193605937825322728016026390860895092384078015264731298958030071718164109305476410562134523356409777717062472617911704697405566986550302360672702907089598093297333526615274691691860465774000731104581350126584100115378448459941194802125137692891368746899405685314809238110020612538950691845473668966345975411579765680915171096421393095331063259321955698551986740490447376745894637392515369262934759524730217917480979656924018565887965971008952482766431929721566782876796796155330992337868445148337114965005929343748015896519660660651571605494994744757496327709203796059191555016467048422193957590127085302451640302144114743872725164512899877533817225398182597693168237150020880060284003990208936813715369307788092012079000578222902519125869658239371475351222442698565877501821408299733610949159712970088963399242671233570090006490349045058553009843110928652211882267062792326771755528037223845644643974605028075727900961500551221646564900991958251486284326957556837279157690304803320188958125178855517570215795773025880560619796937625373791894540755232231652071496085450934384750253066280184400141357605676671967496633828946079416810927310094780912594174960023746886413376372902726066657358386199381260098359780530156804010946830049657186988804800289481437095050613082716203506379683237948203328137359755197830473481329093626850400851594173367864312055444975337096898155687154571714229920962751690499272115151438866374237354312394359635121061961167908122917060341193100886238609825394783145228606095938061738936785344235034461192253055171739451717558603371620777383616031553200563089772717738059201007554669539939452005027054946396000277178413980790153728705906798831948063776486629805214709661649229294708125442912207927489011601057660515422285393350359777435034009205044684100771893056616617866923182415525335773261544826179052848216750043207350347506703686067684756115893437199761963724160153347983236976356470699018866287096046457406530113390308951615437880108261210832790481748975691076887077486020336671560711055520282171710312028462071465779521862470457116716900681379318926294745599796503228925490109767803430606436550059034390808026524870354004371399278770701376767157325430327080509380063382096438165199696769836511093575269602920631878163279549676426097290160838351177956328110763757106834579462894109811716094899838806378156931563878846747110054063940848470824745196707606520144711676578805012357454617841818400873501991250903179328211670413237776094306132142670402823525281872280616671748989243987807576340082412847946640083504885820099742234644543056344789680467913623954053145551076193644887969948681571954831317139125161828381195162213839372255813569596799738366597363402678841686177859291380940812706917615971756692550985625692814853678962006895721824443665581007429794940062310436466399981949339303039133329138055476071683726730723943736718232159934535018668612785077465821290058790665994439920928765543371986010876917855996379156985540172139268602467848870959371717126767721543830847069558004705389367081442622820424573210925960800771195607664524544840237690603897212680211870760386112021870310045594449207155275705670790876020965703565175172746326940225844177094438696996331728676884635473280906303014782182240838092604802876217933424051538160332252006349429071636267251309407512351682724598699015270457784424836606143178453306421564070588562023415370608870641231103400162091077235751520334054951642318115081839060809743834587664958392662315283296464030842858830142282331407885526887866343447467440080643796961212338901805762964386799947442996335395948189589679869982402777371251045397002642241457014579225012612281989413643915825992386406472456861053411036322170301739545840644696524299122106286937939541850735873094653281028486428066621599416601958797609733558529864254859161367464978183019887572036363302044173908526199890433371845449600007734395306979250406834138739594813317907368083452962898273636413911267251042187610656809663627314531522268754234994158605523279441290456729472492835467645905507465886820774183392625829652458546422269537214533787012944129582059866965088828327599945885970120249123009486511974736452263036844772579210497670331722185352940828326646810663264935563642340365640930719985989593622429159364619683682198988257269880265489478410290110381238310915389950406619451500813499828959484582153375444174112847260872213491702865147981697835370674528032349764370266557183454169509732247227778443160558989303236597153382364423449734495128507650396215034979360495357600191829323608468414747064028801494242752330664564035773031458087118933401496931017636514353264184117993540712082704313442662151325467515341053491966336548197078698103364716878421359120478609194124612734527507589776520560281500383012123309679464149393822114870575108967459323930537316711206049839869018543684056165090610640601909603707474294536550978845201042235372232067351615591890634598255677329218430068083278815444434541958594097487690777256289016139158014124049991384447242344298360493610599690867022635699969218960691762333358754889310292085546248186025625587553298748164454083801414137673823068747328880814090631043793269625426084174957252459070229623456539589300030002739970644859843143336801390055378724488864561471396987928081384245766856470436756347438621030987480540646240762939135727776813516027010776062725481627291920992554743903936084215977690087150870337532859232459221407234048055325054753187428696767911120012409234264109563639201330998676336691103257050832468138051283613304291834907359468711526183314021701263469763501753924418927814181497264968371319651292801270136548075626273778736203682806685566605317379860089780795152541991243325296845847359876423235164572440274275362541802528353820388601659141233358664305202696553806743334994526946952529153927620293588065277673576831199834205203984024487389042298064694483127583852931030007470854383543836459469378019344624535600799527056256240799236419171060895286181462263776047854780958278112471535644165443805812947603082687676801318782877577311253389141519571273352822932435919704039805930234248935355774295333793694086558493914354667593017913775222208401344970036334122171749384284332130099617394081686500094732044751297639921198045355698015730688865356545933506564631153500613298379444062246258825191986205058083700888995178908954818602336787810943386124087297621783113991929643585797944743193423838521459568094296253046783710229242462781935899408154987489637816442431634410320727193641533148630904532799182577881825568014150499177738301557024892934271554559754924825336214753081880974065880709518337591078780630785920193361401224117738132634434291617220607402645291809953349401161328228723558161080715181279837043345686394672432657292241780193929816876815936687903498450225005412120662109085142964010101084260999377509863082185532455499428879129997740739633706165453418627218785549565158497463256968166301978842993451891946603447069354553560037635293825153239973086226603129251655794757840779943243029629172844712104656716318770773779231782096394361031207524910361661154495719178908954525017481278218691031589263691070722629061222296184016938629559936380735991821734942179255660045148982550797082940226859296527239512572624968259850396423357020132587835273657223773991581665840866762780687731595223103439411224294055239310219647918313044129582971726169828321578592961264429644120936655213817413242683586939456953849174680469400085582239165996708548623775674997088357939160080525000130075101374519613664926845720769138403174261562005552646770324041367120184905721051427869715996649512540050191639072604580493531384505908731800855117709598567868835996937099449335184607316929629488358869384822727685632423707690926946523154868735209675686068235544502800953452894893895485558840750604827454677292788757503532270096284646040197402040557280339268614189253412831600677160726961401077769773859717783545939659329147280799726682860086041739685376629641686042999174916967483171533987716409951409670653047542112976310610494458453666516631986670149336038807393031117563998238353053349289836986411628826184793567911824866219300289432314177626652726500529029255098280623037050243130717538552136209285772535058167947058405583241072879791149108302883073858720631195858550702165790942778405731061215364848838489533663961451617934623988989676674978985391163604243306035655828662813775556540726103467947769935994597617860675192442074433111555612135085796339587939208305153290932986117270130008886443091572320621846393768380296467547335324409643423714283985864982902886321940888254944357266603304973774178082109729764907121888136648409139604582264091692177585899661000307360555620285335500746518004222809945087046646373713345003080780956810272304096257111725530983567900836541222542648157747171643587724140884114479918774736425238685876263067891125221998703101825249828509722891826412442575447380754863005995185747496709745493014414221840733462613851068901997011943868434029135351954847805130815629809722751060266577054030288594890208124761050117278972872687114779557442621148082843327468085738070569935803649436570887879284975599861745596815428580841632162534230527148674579619831998597689525117851291545163554645322763732165922232338805931839758749547993405143027603878587503205577643980744977499618088980251684854111545908998589069387297065689196409708971132146636311684378436778370280937223300579274297536342641940376898718004261349776791076342216413911967654560854627749563917191164132351650161319639458098182334731146448823486538172414774389521168317761430627911902520803789804779792927337212768401965508041819268193889915348879020435882246034994847935650659521961721462094947594226110237380593228845070277245297063177678432666333131233146363495262386360801879709974376063643421894477514129460948266471920530218371003380056686489228517453341310657783943544158163924265641361496271624168651846212943879876018097236768013624926165361433645925961447888570767675693501428303796354447589570180884017365855175184050116475113415571903976020300191681171323182236407622015460339205841987603650027871411931192691376295674814945508284364281238026339668551644397319039787500735407617476010942035067684054049102122270326145639788108075850040190430464504377255614120646050503904751167616760249798048088566829648096895908806273329731837861951283897879012540929812393987355227981197241990178778200153398490396612001154234301871634266885745195267846369124515927916585615015664804298004960864742476981063140560367462620057549108336985645389547082309374348401714965349957253663708967666514615083409564298056516965534446577187402809906521532333869882483630672527454317286557321849018243933398799949860484386391919553200750407340362538330502776671968081229159345172363115180154823296384983570877196834043579486900636101956761499111474139649713449737567460762866436542046429081575352828560580562433321700421686642220365922488654907246605693383873822524282088894978417118124807484450838767938790103501843293053268930713148850451086710954857211928072336817586981920934313477036010166549065114736913687905264478492100087075131341407405173629564246289210412514682688563985385845510174978786498659314277623342541455455309431398371733574682184984924377968535253881429580995564450630171265771213154915669620399664241229581816053019892001210972201568440788821553275120968113263269109824201573509860192341411826443980903463629098438965782320274304585482058347512258632177507571726392726824200841757682185060014640648012289781609615995307278259662979366343937058301329227576486352252967784314751295395545697449060751506369633902908955463338544094772332214459311392821782522958015164207578796900755330056386508763128074970228407355161826194549110838964091653997934876386254509685594825317367321766244751335443801597611349807555419381445844736714064824507955372602730866384057856399621696534898414617892690153313986913546177017672217877556622284916576796605275191093345819553259065593254760625206436286906897252250548728846475295429447834598791524077430106743384862812746898325853573814966754326241341574790896667630240687806503837985839442275760983423847963810609593034727367628440403511917651786895944523475103193142130914824949873252881318133315538810384463035720385347535927989575882877140188648597147182433488900768247799481335976127410939279083995107286728710693954363166908550626010026583814179929398715742987296204047370552069506288734983750182806285665429668657902287698930853501866075633602811081871831427368582516494910278674071097370380890931682172610378708530892455282225440924396954228248569864610929711733248251726628544070669092569238689625090571912162509743871670843610051947140562047864508975212702934056152722039113561146043865550740769464321187552361666834259202620216381783832944847020302687038727357974471717621770414757723446716436082938144360119232157475292794214150028000530874093829234071211958058447892220068194498182347299899685979926293648218383549093816721876504484290529015654934997450221778135554067574455950099298745158209132165405564203204315802749180898642663514962059211839318435270406210327724505872172760907177998813552883305746648187375976332679257567387076769681904945823078423353148848237299193809138760650852135126353370967781486447418139435066495373364544639549358844930093320120275907657182382902778153104977724794840599663909561377847026448593887983587226568382892553016732123914464916105284061319879713698931858687902533818844245578836233081158032998366504033662642224381187406738432184746978101501623471613436967767144084571285575617557217223816367577247256896650071846089119847383021194946014198882590148720734186879807513018560387346350230951618201789402521641670516682378917367354125256256003504392451011121052648190900214881709299942581932015032853534425360492673888474066468449636989391622660109543372104989044591147502366035999862092174235917227846730337269880049269043750491694811371676590604808723537319674099236872382017052777875934409327457430593399013547386745371987479486714884220355214103711927205746081783584661527489611383840516195378814309772359803154325523829248809974360955133766275211598860725555098597072348683794299564860861540258809111596478100899426979760219264829459762662696962626113025416990752510219306401167214142989192798678232547577419819712729576799535617662047072850807805110896387166204347478128711814958527231955841875211875968920421743392459739355863094038767056406985329563568986721975425739155213831516506347977464143772870663786067363956422632103625579761509414216466564611789783941263565215380737442388841331094668375927339035339174740216452112166689603460809228206192909663692927192075039487671265094809437317792325669470186060150668585378077612461769214246570098807134489127185524095934252435551040619746937404565869511622736855658473019218520976713378728125296675547695082232425574247153892491011994668563864018200621721117794796861803105221657107923379770499650921401882166236309628309286575142626937940306495875994476292669723536009414040042243081726079570476868209746117822028630367718763444215276559764568429010981954128979917781193601006691511629072094783507426090587697073166988579535228222930766094186275279167774474261035627372627883332137297635342038783398982624066833195336816603511480795896794200960463586393366905562477252647707917300390270873235095077608245497781368345533477285741645625002888785736419761774192526068548934026848953389589652694922053856525286246026764569633267700151684198552205988889238583573959781934814043915397715627772634726001635841957492788661352670624337431392028584535986041921110480688579755751152843490091729728845896545201949261710803255632338891499628032703974522534405750344451526604578503645405323554166503090669167742880809745034251659799165729028438885684361616412754186424007753167001101360691263398129574642420882455483947952555971758427880621603654928605854699211353748059626420582371463112669517718968044052214125307860814706761288071712506784631807253805376394825582558896450022842638876623882581650016368025655441083456580102446457639653416579823492160618944320241530834787366913577028655500726059931121924987587708320432006954763925242153943723654925367573782038713676287777398327200871693042691291381507538549325234874537977155611265992955737695116484813550632263262763234836882725119375818163707704994162742768058172934879697292874610503817829181379562724918226432836641999615845474395283264468882066293613861852809907702067729667372007642794520667186812750460304568648066381468449120388393511853267061447825256958486090330039942190792750087824717767915519308087123422077585941881652021087949566331295780535996995785458914064856048846805188182475851555077734587939530932915823575297675698379081873471418546664280047416459530717560779213526979455677372038847700936712675502412051741499347202043824357890905167343433204223691248323750628852144728737824794605810687578304788122327754511596713362143423696502601306377146160010424047732066797989020131445366151304754788049075166949284696610442559987859534293270187488523147145311096570322925325423687920526445868362261018361965844036736449927390102880599864168934389081883787200964554563434130325148443640581292915256771147015278886388726525716420529836556568537480565775387057102596033142623509458445640363838062319478177401390749969250081086398152085517003587482687623244030615932600034855680630279718484860543536384859145633517928337375895411618455922640700397104349073837971578736615610040224847803908178847615179859597280272586960921194503559334029143966928313120400165469790619596862935224988156061114738236583350540477771993390084049644951484563528227365447756987206254774297238755544046879339115985689689784859925729057181010342854077520706257426426853760996196130164621246596345282683662674392455276353519367461328141509976918329376670866837723256764969858073713503814407345303670244055523721287397792674508520232361496026567731312831014258415061379093994201059062230154488632609372568975123954826657883364814524246998126719818302466037546891300589166351739674897746768233612362024204265256651997758742656733476355638898075970605765675942297478780750057125134565748501178331995796357331110653230177914829855622724052537695553292498437908834360531104738482596339779963658480810352871299727734693619182408521573613475129032051692894622541464130321978197234695556308327064419743347818043933035844334703769753846187417781550236435418075283044955381679829971132221925692089742077678782075501828668645618451350030994394591222705040407600571199854828834527830247342362257323004292916824255558536868109966981598207197413839126931740622253425380707555128735372237842327233072271680491014192758990286320713786226982837256613007889548674251060496717985967505929661250737887745300948963254097597889414381297662793031323876910677772075360735254543075599392788651368204649909368598447815479465391922870505750458900273374682554105937650515364309476706234507924583310616125421883264070927249842292226875114352062859646755560879915435524004893518472882278489326692798865010213564906894267558736941664851543954190631420086009541590408101651288330344432850257251595180723711506932545517880960592291217959601323810295377603274866639441500690586939725050371758574367852519879086208615728696584158906887380695178832650095522835702253962876620414495234239037472886128187945664100980121716619523394035687963368268656523649809915944748511846809592905852981937035784249577226226556104716386322941044017723015178544863704280398429794046888364241689477412326776398779118226868619732582717876244280363729148627193157874510044221824442707423321728542894679339337911609573766905754770362358820405831663297453750301497751220127583339294734211648012183776178918440294376803279287554074973471832354030286838103576038684744723253781895043194696593172207735834546246994714353222717474963820315189705076834485702767229002447823179400264412299621538083922847811939741705887017066806547531847675520244931148273511421050108801445246747894603364457131435720154378097790727306697118177756957893563767941899784709376178531592185638652704161261636234529407718507131650549680236003389423733857172765636863279369726870706508200012457586705003515796981150583457932117545609710651483698013939693127829445429208628127252890652009106324233124188393505657064872459067354288611306080153013070130130569257072780990048019997848755914569867244366794912383049219639938310584016420176841731926650643169722412250579294074235620686550366469842965953787015244489761835047887380592715741345887818634545934547497933174249519961548204032513360597373095657253953605814710471124649088676861685852318478478307870545823534249239939094512300880226969185668878396324145092022358801003402006993186353984147309455124439906073963378620645344379857901224068735206307589129838279120075093929431268290437092410469723548259713378214157640345685918155990927215064644539454978526518331438440842453673865767968966134953035733178513866667365028882919620259235258051451038300531688116234570417485345508660763557312087463519587737474475129653117873442109416510430203901146338739366123768997622135202164416578261686349720369335669536948813511344751097554574787423008229933150527538330505469020042376604485004375842726013415595390116631810610755970534764713880297958524760445897704921088602067425642424282629610294392636213182391447372222214492744961243086580428607115672542115864357440919255038521416473011213498732071266782034544446213958647961224958159108545613509448719959786100718960685341633457243521667035370633080520905056628813847677965926523743323027883995681971208339598834896644061373053107620305602969023138731893117126989105361899595504404669332897403730503984813614560245327021374166082440962743989209397793051792345772297435077477565731076163256072640716201211224444777750135040506770593204799229979375736342685678875729167703452722164368678565203895471709568849300703468537647985609727425823381807100118526479575411270497286130292214404225745691464115318990106830983614640633413093460206361490545529258803857281516633008034925756842110192381828197711025639702107131727465351294085435612251260423131724171342988724309025245018086056268442738672339598677622594693699040819120499996044850983079271208188356422397590344358123766009811484885798230738591739187365235957489043118547414122144291922039739626153702611921306479266780319260355683626412243926453317287109559025864049602917822274720638022360559481854120854243477886881969744527313386331260214838920408449287571012966765660175971295502326945691904872720407760684561854827594045818328737983881160766294389815390864870224194146483505838691051002001990837958369074689443876908504463346720646345018643488694033667075196827955178068268505824890198436579916757638591484501835499921280819484901109123750648942501972441245967168331964657908836082445917299050745632699754090845411536309248180756240381672367597916506362734585756072478998331604884990509424841488964444548498107079496351433728997354763767788802108749015366234084340487712592374439192445521878353441002828874324221263356130342501782256383928230510707976872765693056143179079442689191322276972673012432698774889491509600810073825564952906276350019076288112419648117993190753608679104393883625510656340175259693423769971909301880083665348223862150538006452977775325440935971608150622801770925643004788602862615731439771444872589612379749026094433569690317291453157502974677911914185897049520035289194317248009271951504718054013292622275860279697900805337295047892820218231725955351364038763910364001291518777684668458785936206236653817657691764145543324700955537555104787999476428487476449808462840742426839519239950846934891303202615268404774074813761469753740960002018471839194376608592194743387390612773452792521805230218885892455866618505886121122622295236369414231655290728261485798277042313258032006107238990865434434693403457928115952648762940176201547638519183060807190673443072617739127923864985029324780607411284822912839717820874423974648110538904562011681243491211321033000239474543427895970572467384607353589705220099436109251700419992768015859004099228521160258502108918483610314153350979692178171143287802321002503918127540384680530536914573139464132230064025182173591196407542504340080170514406924569460857636650573135261475341985439096987670429635694910176252576808511473586468492503746080430505034655353201240957135692898217261732982869013482149841554539270833804227152792259710366314681709466787845563961357488727497395263145929870985135727525495811609053647536684339823939478254956962830992358285678555414002980121641288119119272683009651108012879130460075715516992446976844514576491399799773939516789359334084481956302084148829308137275441348382932474209001068273787198288126562076725425110922518873029664463133383362226841491211373705799940397938155596106774220824306258296852455005596017813484643635415571384916078876162887548917923191488189846425722997882996329469032723380471731801337505081699402224630535284223308457015930390894362013571944486663504110145980324791388519861454613391430357038786913750180837667465162371719036217602104650559831814711486184851314156120314014486206952615393644911121934661337275194940813581142856268735308789771449221914224893418386036227831639102109479250662271344428213162239217052818050210297857490100547414500704438136197624926139191158123651538378557852458702772280606716676959283661557438276062585247409504715408394508023692047450108354537481020336375745502883559834640613125955552412887263058973223693148825528189738644613702410264312818293469095199941862593449881101148568304792852729803886916332058413345761920841319429960413050530054578390467225143332669883987630150120728065278335017466869918291341704507097062840782285961861767584059668617891132994468830586726153694276493878826455122637498621826792110261848092720327961461264491074072827080249204307174989987821817295356148365474819777975572757384256074889803145436504219714826865261572132831432418742294514562326093459909342233326520491485038063602282707287345302416923942572689197706973145642656342313340121020074823442613932773082867110400693891010126913913028822492116545804397011870897663361684845889283522758656267262928308685462627924436532497504609400783743389612492319751601082775321295814593199721740711056776231568437472249603571637186074390061168568797034474182413764768390718320279886342022502935598521769827670957919219930690827493657481475933850977301911012910119911629697181208759684542869694594034204225184192031776062085166220438485289710892903642091600748658679822384859469967531440181149153551825989769884425797588091515626241238793678758115023331223393596651561311521463221566784252151688898727854232028323931322473847610932821008660177147341018546077111243518201033838677815466521801069423416594433163057729366384879506522563937586872672174258810946494240126087604157267621780143313046934453501874282577546342267081141466032874991930551253627224999355456140771588840677671569493456686284323160658713779524961020748780245930344258276549551817605387026643752804814765077927669704089218183466479615680650633397269881277868158258730911259175957103926086416113093191140472146882907052095088703918311955755573214644654531013832819851119379899645938370014120478594486092791619558090988199880803822381943818995963715188597573497643173403688302741008037103609703222554999161096137032392623478804710457970886510393051274560364965965927541259284359634885109988145492444242842217352602731366980810796855754815000594926757504274770394375300785009377705165420745855286004911913602205486809816355920920571105887042578138057368129554663441338267235122151568308766267056327020279396092832105283754669143450123045330292906711719011438417840251681807705690283681076407868799189936281267123620318667801280442882515863610290891386193509485584034373615790850454920463939074563683374020340999360671490482560612526371203302508500595910712768013786032737711602645354485017320394505622384628791577947701479014200321452617191798141528692562283695177945466030435390573923410459783014907249148015206254933784154603669271533810144429213863313076922262250501415943918435394050133106985726972176917067125555040034654195514681939114385394153036339711334675914829650176457477194547735248486615203307333970704471857640527100403902660237917962969229831202724340637548456207247854192773965932258461792234684564877133650864661537162169610222311021458716270172758291840141263135236311482286247700253531893754522536826695264740937146135608576775278362749745218787575321576965471006872831677585345326835671576708290297540663258895482556922005425497574421947626925321167764256766912435442022930226748618077115717913612892167086219837046114853328592848973816830107065645802065854079707974681802129019978058817283683542963674619526117529920571883986987912004979857428515731754485442765134145788632442395398379426536068370306848122471177083040121752265311959734910285426256057700630448480053528531599848865718767889136780543523589074315847634528719663651714627331068094544060968830382165123818024078625723857425874369849466160902631055521366832770368713734246416000212464551890631824165724192628446643516355143648224785413847170665240842054702020963966631439637883720970215473862202181599886865253915309614839073062625921563533278246821233248393115304427610704463926119047312080986890413925772325586037514910010515349124372088275990688135109778855240737255767837438602326370744526899376653718693575158198255065612082230339328841445751791309414440089071436980640145784219142169036725913007212337667938524131138026932959716300463928974480764146523574203001540935271477341587686133109810981229996368448495476130598164841348949758465843956622735331053281602115228471917717264092389635059039001168733593396554632734469520789695886373801040414228975553770647187779009226496615607773355508971397580556026292195343447658390888241553614467369679655162540767206645120379134550112017242865960288709843350355597051720666016522320967925271150298501586915916590880711194460826936056988649606586657618130043069368486288868003509364081069342892876962789754380435735938134441707900464782401549193976634049297335712714159229000858988443347449482915272861402863953630330867783085256925173225355358996908802460435212577480252928005327133720625537773936034214774529343659996616442535577314969404224787997850882074828586802378308979566707988697896529738563083582172605834861976962314950981105864289912159096225475222937099498091537982408313403655606141400232541771527844606296729984726407700347299011717471907541779528878770146844076555678047732266809451678231899036250858140306185015885503947560110218494959259535541120950726522098320488973946868415656665501859025806123799296346860962851460113804896140324748155809043043734275533261101174955862079509392602157987186780220964401929595167308919129155213141829094504745627973811752143438774763556928103157332992867441207979599446715319451439486555251595653903279087950920955863869489288753614055134249306747755775168211128698591800224216549723856177026918192541798462567480047145654107971521546006548668796402599353690589329148427114232062023069602332682242623798457852154779955826016614486560799626421754090132293821633369738577152226302257431482431143083975410685518946647248586902868871974687077131414743807297184500376848394314146056125137643276308801880345530854543979427228016569669706960663850552923515322240231222899588925946753595185642817816121400709443720749972176505267222361051100495191036008571317938651148541805323607047211778815293121476021386179629319232535260545603203274763664017467922266976721570895739276508471043366801548105563351028324129928052508829448983040352129405406627648617891247666998942918509744016403506810190529096134292797519026998921297150509388429694654873744089446438664574740347695073365809691495455346099987605795774746715866468055431659852210018325587960486942274766208364008689157792716909072957387057637952322316041460198851372440992146722580255633087677986272812687712584245777366564559040179194105239552943348411919112437519055308936668821396950014747315053553597923240666899195216424854167775874361743851620058581483770095513718654233411462044315673566108721632816088223490355086094420208962103875364510616075662974365997261192550220568450343549345524780552521019346780550231456711201016654103769976389940218883042640022468304271036705528734258788727054090532193459283758084792305099919505881214025019222963398955981508142689682573918743673115853535718058578670897750909088750228132515496789916989428976663891492820742581654187800314462819601558241115165991517702946198127629070703438469947981714614457654131256847909739437016174186188702552106868536779620205827855930748011067118509940156327376661486175799007639726839639193245842980112294063749202930400437708679865853816759346821581622019683149900691008115531166422390134560302167954281907100756890013774522369341093168783346896986948548402111476093043956723469097216973192641847807386983281650999792970549894125134543666393629767487442421329845352486670802875507432384230344358260377034473742795096350061971738954990257472765777666080682447957694196604844025364366068681620025735846916327279122037888398496933009375038455667601548864513405861484334290295350908208412915836576715104847224517885841974116220529218258863670986672022946803211281585616737210598211109248349479465978058958030585271234509038940992627236406032465220856709724558045693355489024165428591653457961496108509409432678206279769404917891906041395411964383786320981522433363795682705253788140476891750295017696607247296463930025722639465866071695519747911708468056313996021330100208683814972569750172299663215570401443978556969032935545759161648362780284340524999769566536633296282554795676321159737889576297973997581636277067166590071986617358903831592086529823516436767899820311394227072738145687731562411641285625758366298887266533662076644894664633507903348664431672305582182755617014138236665637782578985101231920190781043493597466685503990606484586214693881994000457429372764231473968181058706105265431745726389347838755826747094152292304568352802619834521225687164893208576196101540268867740421179140296815829607653987152247528016103009826157226980936068965584341482783476825771994286460578356218907285786061874759072067403621696416078274427001475580808259206090101040433098001955899732132990393394890077034164734990485771574780506478713299531918664891700199131115788794551925957400706611587345118115048021010376640730910112795520887778127521873591555305149575419558597919369579564428885347398951184315587809213293206511962670770934471397122749631974366792346083258500984492163525082375871412318797695108901045577321554071522063620689418162721991450418420502473492405052101872414006466720456105609669622606701710407931586874101514680004330091675261992426514910745786628834665075959766918942889473051660792371710168394309401027139050616322962549622301798058871301073752148852255212317686186876315904223514010392925814989587647216438381606334611668368514492134161575462428938376340541765097226739489770000979084936202854938734250631474386799605540062904897678664354832076233208489880270280943331184285033601575546451715353786527122116534927949096731306594104115643511037178755171567548105431447334959807723432661427480836411511058852212601053091609975412765518159068218088293827564242116443929836108750010140289291583915294073866019322097389008860289876576420071387958118707342379431225467210833847725438401988706342933780709565591075001782070788190144671613306771175024159346993081186675290297805547162879900476345782089021689337305448370848147462178443818916538555565082164644013090909372645404194511830914997919203410069946522604045496552103060794566199734266184741506838135470094117004639232680447778227555953045898169325474967369881345083385582495283941681739313818863813394328710620400174068384445348777446366431011436132059984294649803086023173054399852862524771917335779975551672775652728466888879530609286994245295521205596196175514679854263222256105874918651864442374602006758246834367443477563688891909282388621017970683714611802601642982822062919228314973669231751478877617758936603107401988473194579291605936082152874041961997842620110205059588264765051571074162114041236451046642342470311596090444446124844729232088285691188197699540572010094474649985350625418748680918638803933602359838746547843229460792576942005402054706820512725880300187778802316967690078844259484462922330702123438495933187177788907563294576214329153028810734029616123912335530076177040613004653362293585600521639725545581446310909825802491093360809304941557257093619542653604531929982664027335358121389662165936792653677181965801341707912086924510223051053588377425436663039074010668959447360276548608393524364340979331809595689922094070276828943102297764717511070716313756369515056506522882409472270547605413826735692396734954843551017375365279270135922965386681002309495650110886997484096777192548981030191129622368827304571502240231775910912296009864921221922521744346878224157547258621734489689200334852372922386863443840648416534530016622644027128485900967339055563767594578553251584518605841536211204714198522816796682615997229160368313556889216820429900730426815215407038461122602465459823227716425970715427742895855592549552385648427833845040549780750446473479057640276278006766004496239935402487497097900649904795598078240422230300341223935437135658020902002571879905074162134623395449985850015591738829996492436971699854694582037269212255880906612623503271962489854397996707845598539642017392843303525279448714193221826534856496367693376978416921820723188534805105400894248633675043559156094898922807557937469075749354535199787789842661481670314745364745295618677499003133077363684531989944406262875787484807454992520493273940425939794196052748028712695662161351728769097815136800318769412263061314642197180245318952370978822301530649417063575103521759347006147101684958604367261640425517400395388662079369038994175550860302661084139040684627750194157469849530211397941801917381577186090097955658628145362162847817120082922298570156974204554130453127477160373647149450155707877008061359274444348018824984838268938070816835758155938606372873858562274940848969654513726375867804308360183342136116545259229062927099959124402581131065591943456509841660883684691125711530332202234693336267361839363731771275468688939672465937075934836257491394040877302530559961246534494952631993062891697651993457385604509875987703114176549724195229083963984213441952280192955782328155993054703943074646034090475335727285128237552858308418761117707547841916343209991220320273884102220602813261600161958082549429462438336226372893831852987005311731876484140368689870892994902478995671223871392825817390343034995153485090290634285793246414327632484848803565082047903447315386950438034283223894053343874495644223069012514912310353158933246624352032841030171557673234365129873495365058144091468568043928775743341957170499733383516302686586879804632966164402680869312480015000861582267232795866711749867268601053378672097084003605527076288120521598424970876587551210180830663902381703157545919935945267324083967699186235340293454183949489856199503435832160329950811070804553883980282100674540593638922795749548872602907416378384814920096879477395374295864110543934085512305900285288115213573229869835334416448118566313727183477500246858391281295455388744362843024146247862206406418815176931234965900697404075300038091395683332876675993893651812044902122679997274160672051714644022033640347543669857175177099771346735672017449055353361854324625761173308283834267420766644891804423041151187955585453979530482147205362757377054940587482139908779716403349965041696755890907345648558000487950695998259476779088404511159587444646544784553788679130250032427802817166742958918569833986219306547618566620868746759124287260060320799583861795682564386835512955124474471281246139873749136389233220459598274047521030181967691007268015875662060558712541975469447036278822756129190351025981012238427984150220264105429562935384934328745362118776955168317651557340725382965067788192125003549210135665900007203248692213331243167392161094597082842613656786326370478664606467484960301853228246695035803000690970874368267499489341667748833512169483144174148435828887796356596492738445716071414548190685779594896467667136879141745286877855330501100552610744257178577315936874753231995867168588749599266874612693016839012583526505267745964576884527948502894801186241281033062891798377389484710766344858208305141286084822588875436202788355412018636635125414442398602578942651677394628578953429230121066320784495985356278162752681515686073855862924017280192577576590874663887015833445508795745791967706350822988650053294876799139410208477755885645665797992183042944161139416476602422063586156628489785582615456479164424075113199972122033307337493194039067247621968415458740891077949072721765279160140781799561558937043088454355744670523886820813447188858070944421208093033938406068402840606302607624952702127262609695515526174200360062938744675307069555139993419298063805290029163189808018018155377937072981019111109657929274834380387947389633374934992168266387551675034558496078636508791151448672864216318535815474079677481927292429145418857329522191513327213146810864863010696933051372759175729505556990285523826552489934235873359678098747319333743108631166011914344653150985164642009803093720012825638958809907141252524494463812800472529123356596753926143643866814260383814771136342986495402105305221141162712508614908533672905745096497560975947341773279843985527773426481276396055609547659040395116072775950660500036334896609663409991011297747699219913701693939479991969189106564648657902394029956011660072873728362986387470181734833923461832845811916686747963287355632493205315009518707283792410110598234966534432067966011036800657892329770067876503996582484712112350340578901967391035789240334347170133374357001569499034941492419689479079614435088718340918138213182371691863433751560910022126022665847439651116170836733840104790692611608710498621497810501334126100244007137734416326043364842105501430400440709606392827472037203608674880328695747325848444157620579851256452901167303040457273485804631858216541808339122941699764650277978375343244986388202253225568250649420798104087917396944231913683775757871125799360303107564630434035591763416000161447321091024217167316522268753690739386460050778331599518234592355797716516301417297747967551160563014060386008296282344874632516137373195278760722970413497077484403969104337458073136987040668445680511663929259057474992775354209042571761741977983368484194077265603271189670208705109429560141609021731225610180320049403285838766585691782685677507315662667581564118407400075708449799903521505502610151116548608248690463146688411837476061886904055724322778387111340873590195066060232961796239659109173651108100609425510884761888305594973253575313045049723625842236246841794514163951507615841128194387714224748460567882986186489056707834533735508366547167458276048950140302326334705108796920296766216033858830719142294942048753367019140965435637494187028534152493512452295052075228084297555700315906652948255458117235274589580778346363923826063242769875561145636880711630063310432930251558937262703775892303730083955411277482719244082810508341783936232537779831111796806249061005866511447980013167269790133398334485797696736981847244259885531022485355156254695978308872798182890611731886431101282891569035602206664941408076099804749724401158021495715709903740233871621104831659660965501403904272557365546706819187478690850661095025178159157107230647926068797032702280246090168673041790677189538538664800271310816139120589392244556249039446183436995184865153185552191978308843714870785737338142879650094984222555056238391486656670606000160727913586558472054645340496132039488305615960411525384492583269977537564476915736658293117586321056043322636025189798849850063344594340820728115110233291070497436235486093676230655622363008985281554408706484001319044473123348819697255997419145103324806862238700621200420935093437595684121267173943895049901883392155195359059750292395812323057409404697870262315924329150581389204199645656543397171658949108247288151685796680052327079423366422557956029883532423628533822483684930880346344606137768020339266661792147872917686000708675053989488228058973674398447931548167005083282064310986933663367559417860845179148125737584947232689314392337041573688748788719374513782702182671914593689119971048948735433383544833990337858412372623156076782386499739642965794884489664254450964340552275465591282807651946103814866053201446836546563491997285152207825026960241267243835500418782653032582462315342674090309799408880908474164438584709361634974062539680784519663681359160563743337319700894866618917546884955289596756950925339242267572436995197655148149085245040574014990991555311055780484854657832429327772965604043188057424972489117545057454294242044379947655805953036698747040091256067348640471606253972209882313300211322729774071130742270285571549504535483653425285435074077359174941121058723909334850791759198379695019982150210291008771768536864821632103449013372314696783542146221574952039522028774201809926171859573080058388187346555130951655022798895562992451768646651622630474476489804440521138369471787081922368725536617277592781528621814858242159672351031874525999053445880530208676177678376288924567385854486748504522758958953805881149968854220574170619902961679082559574040891157695022709922250910771701769236756794767930699021415757087288894153020159187989426355626062791758372357646039385011633802631648041703884393905539249655955743334981318245955731093205194181560822926568441465560276763669314311744515590373881271108063277070153807595033271490512391046814250192766814164651546579632062997525040556851563586338883474463556449962375181297862833867432249091711289549469972781412196241672352373113850021847594029695478558697457698939176689829061109705366032344997160486966133650376809180223848679786719597285433864138770271825907880252882876506012419781579594279211125252676728127673021593039796933486277018887191377680880338181676095653446695040094612842183896633931869748892260907479751128984241305399396335054766258781351663343482720526574888812019642623873505113507118096043178823117448487752794590716294918943788230385764035505653354407131629197231971161517445818751080195265506556325107491591866407340598065263864202079760034714607232030821131269662563101015435634321855496237749103748483600359968670369091077122405312660973691399338725309029961524730355952494571568814317224037337208308578790580988829936852167613643845508999857418091386014630907753041375115252207374175749119499354395664605263408074220527490212913104783738888832528951184368017395541902111136483937947505487239699225657405018512489802144165860581740938519706154515530621605790794219617449617587193939384845868259146858668282400279322526493552780263868663868686902852353096956936168064981944698675500070403741103260300221109255248559425840330777753012710562685503798872188069575745984797754662566429105927330180381568376548105256313920961381814651882060907875648459824861275894958213514734834052268293929344399726919999815521264271732995076393697788426149892409037785064910472270908172608398952840790660966431661912247575911619236968275524984820232821896844070312539838757255068760527078321426434385920008661183481983034836929882302245851014108375003743724846819762134749543806852875610958509517512348619627388551397935262629248068694406072724493239362921753173967959466168551131616377833121970046119631248192840407362686687305364191662239114149110554029979780550591012120424445855427671664566759921177713518253335743328161732920151345887836960711263508380417155370481543628675546481087357337767745703872520926868537614616615231673400992976708056163584395234912018064513022589722633236039963599620948576314510810601299775180162640855205908814728291929690637808039933431192293060534592186376266144103799596954269875270890575572435280045454614844193350730273065847469036389023393704661453196003670757348926218860980614077887495412679440128024463067252958799818019181199034644182161703001833110621654863505123083825845196719524121628558694977868273796665985754653420623018884664161295977409498698640442508439572434644606207173428759603312179178377994881191882756531249185378619034072007148409474772946921862614510622146671178082147207764015346434581709715478840880609553000192597976038531629151238156279480085341848528008588114741006713920243257082028028330031308876275351030692570642861684063569059947450441112323230364286930283064276319961701713175094219307717527914566568559812143515770666488151066303497666174162629668811353534885198773096891870346720651442213744398927135435253378113380445743857728795837620012773594158710143638488850516832362093810221773281878626393264300124761691696653314001105977882305043268169859524510116417738813760519562411069772040811247555892891703032334436586649386098490907525932472400741519227564742846644972102835713504781025554969391943182973288820035753094716737258268308289866568284354462973862327576780221679109391840554311574209489807836148092533300784950993486709966832759566051191975234394484617257572365025017525521377898704858693895663195549147820209416662545454854856322423165612442900380132126631183267949967645165449561674908380970837323036605415795635561478792001404678374491261678295765220617586812920826983849640901478389502335643201387913805230610457756970673743552881728056454626726313096605908941288363593831178702490214852577016910713260760502387177717042346130957609490226996057407004751086981619974096271828511024789488812762810858198980542523262559702411385297430374290906754286309130542065889974952603749356485159260888420731697898842334118260065901007286183778142051591282140968896016032121441533174979732551279585838370179801058824333913047022403013042020644382749204178956275426482982851347772423850597577970220112708740288450113366900614502916599942003248203635993951882446944052958214637676616032558337257019275809897140368108010951134912739454923081098027675395417056617332046288667230121733860837577195775574226154839823989659018635457088934619748687642867297241037060911022799368350666028962077938239239476589911168593977918148150668584350256983608493637772528162799000846274310583107392414764073724232344332460320235240558119890779789497245796195425938873032996478878483649631922896379609883783499669976972525494821373294250487664456150049062331136000232775381160815562931578568180045118978994678869149755517774797154671581004807301217231872099751255131909391043311277113784059160093879097373443220681294316883263013701889789187110932738018409265653144740750154881474593717060420923754733238566507053072383655672790442951059815991415284314243663261645852147851729376662993179241718642618490535744241749356228635272168070579184489873890477111397482354446783446949191542224663242849568609607761783197397376096715383685504314804955853471553065931174590815956398614315277160170560231863850987709089657205838627169306631102996722845032850808229275854989391926885161337798253655367843564689679558603131631773962925774569945139307160232936991674451637749139031361031784608264197419395807729101883876715622458378631927166554838608305612853821735200428111385140892626824171061903911622019157552120669323339063410268515161600036702999580761340523058080253596583905948446237571169919013689877936501768946719767975217835390193615774791368398192389660755322463599781886341640324512873476340109113375292938975722941445527272094917959018576200569169481667968780154369105854242319517465249240519152636721640063443030875920686279130291710230301231672181565058841815993245763935981748050432642492022158271485050273903323117909228772566346745570945178186436811616726876901758407269869639627301236853051701336711465363031200726684255182646317802073856364839391324230874542820466913903896383210224564767247850289290933147422298746017364856838120161662257340917349812966867905564923002818217564199256602935803442803130289801578706956015491562048608753840157759007471179274982696447818677635221504571791411053296582319831858168794585418338720476472394763876711535002454411384222881965873232377667771264368090254852353098318745588793064115665204418152750482697767828462076460491730790329438858020636934815282466461585774401768472144582431605564490813886667797531203561073183245345368947111939152315627628057575904692616342624494619606979345805893708133651357313639216422265709348711826412270528692293268008293093516904148642792864804203221458963961897994233563850208087287587470420605332322320995847848247938444445396964303735666888086067607884941188091268381271161170201969412446304356032742951228114872311779707883856308596821006268885553030270066552654283146642712926836372023210081148442535362805141306936545508650757877643737205218811398223760885198010400581123705153817863773881738410267377831567987952987772964470897062960246841401215843476427756466938350223402865959565437890475857087350009930892956097781724795716807512992848841138729393056976618325984924406310704500926866027180682958768187626664913297616007956175340866499130915176803759730263088740159163756720401700113693483397537760818422511219955363169460121514242946014915343174927503013392273936295418988124175597772045737568153996131427184232965348803574281280402933811936678373468937032353063325727499940567729636853598785891737296111085575682609848930621812097756766509333405330529341241203895162592511493558187278110587156758341575620499946106945835927023922992972260367523638237032059981678306588091041922093603384223495571534746263142330037348586010596799522822086843628520064604564241965044466386464289398645239565047185475551628856006887306523193565438379321407481564557905924878149924799399248615455412855715667679283751696042514415255936951636466503858757135803262311407704913515368775228406656685013009214268902765456963820335306081297854319339624514982680852351763975872480117451062054898080810346600250262706318919901675742143970433965026729972441378491861916447391907175146683656365621299017770798640654628204489782865742076821953979917113011332329036486715100991763255335325314049838045676665861066299672925877816489910620237916559898186967252214022725679808247580735350900287269023489170085641090372803960048445650635903908203972072582571251643321066550695206274045062791864285287675158068710902233061760365709328168639663149578591645539204565420413547245831719200343545028257573528849627978029440438755911193083930682478544902693810760818267049651972309987390869641171513293640944685686553622433594033812969514652330452412669087910000440899564958796064654712714557975004971438694555323172875330669297264378382604084933044344336158929805129081289503472591381664539791629838019128269564684787112626514784852724864461811905642225933008889168789613336129032139026522030348605636947095083420124864899264323373019717527648906621360564785576345477469036961870020875199179353904325693942743094664705225714282592984445512122270736065395020942145714461325300531329705611071285245305450265945989069390141006559134367961140884750396361339213403884738178987634387124741256664770686363328496774803883677058374615903165013482143606300247142665345996748524610841408370812141551868843835951809683858304284271569129930246914856842583765944662057174023689910246513015058002369935698329113183618113150053007371852116080949786886937773246946787910708584452390571856778809858025394771379802473541527704747273913821546517114097741778260524688809151901956802915812766232795126301804951037367356310911944839299189028244204140021918506979725652518225556828165238846198748086963499728037600043689369097693093375795543525206584548947053079335734437518243434729224193733414534276215886903540400485701267443026870904436109326287595779840763650355512138662199969027599778651692481338050368698520371003180626681939719803895225713089299634103275019253542374969242105267119686797869482265630537058460778574839142560319365691681059539330413842729270686311620358090068232643076345992448210925070430987627540443267549342217922458643074188763803602172922412656896824108985318652599721771065527305030913590785721122372628187931249650465310904890244390846547584584761143093270262710294892180859557309836263888435517625465682657692737756883751053900836771613959613743556516194349070500660109393399671759134906614191050990110916635961538275175216020478716767729814509843367665511793266433353780127759549634559231014719700906105495244472900463816973545035456880346229637301606464419427963949366783698503763611244835493343963872847777661810870924733460149511401560630035178681154039448897013367877629434151799400968218472737086166949480656495696201119754669012113847599792670711324247995292130610936562244750987089852471418038826440232826878700306695996798080987363377363331298488724003715789465800802590937239049858573677249392782405934776539119782200616213942795432714925312596460665885084781193956780780209996146921680844561964379030225878772069018585046204206654943836760038108796786792101411285528113471529276217403221801998137391737530127180839873793952021637177076485051557322703149173773395685792270044928004832727107878870064156443279269208102114433485635070373675759887360185393270841235481167359052963612254262355654083969740837259395500415701703604657230218781618957871598131264968284735678797721892582953075329852776720726656412610974340852886307226483563519925853586106271465264112483820898864378104760349472251128293206286750525277175079283392001654252466492235018336814045670461201395528650026494172591057850842676184493628044785170693437071458194841086220811343683147143032570304599252757273171537346793445399438308294155844306195287716739908323446054270213971475778514856453537560184306765816633515076380993650136341838723386856882345478759439517398855860896868231018811860962349455324422944424138271350555730946235841396312002446146763402179797863098037400986676819071905269592845937515348374183137562075462551581639195902009862744741751398046917205824141676321413466347065925348007378419364394341699732682908576683411036694366928414818059721164432604238630113550456371450175107650954747427078894513146099297316116314731208802687555411333950535729402938403411912164150756011819768041633674664197076809406042008121528255279483857232982488944793424439881844859270799997722667276817648597596654012850705248576093833954509309605270096532641323535835202516208207288224464349795472258478936072611715677900745518572587162494448741383325041193075973459925546713442152085162722405683978283242533140252844285557307154783627351937069863835380227517674374760131602017662299926270945773590857234909028134244042769385122993043679935407083331738972795771564136697688180892318728100278463061215633607542186238045706070756330504191642795363675589272309889431113552320237324122344701411950494360056743757293428113765664819058188330307931467337978993796694522465371762366195934183067576114329252884425349874426592109077461062470488955131977268194176191098851736717669138275271778765925062428754355208608530793511550821744999895046021226285373882964935472065806232921430555904550425907742530948638912511630577022445410844056196757621899422440520582142494103071358487096953547045673068333309117445411035071935734214559713776059287224536698273482488037698782708138013497730182338202048604754643459737690193918764560714063447972137083625287539399145176656398117492744028952607180915688744390518158702943279603825957037037594019627355490226539716822143383868334122017085613764161544234398562592928738054660146980192010725968686410801153537374290147745039874616278844339858859747858494376698912299812080318882728061143578097981536915675302167474086778447843088602451165617384399628384935300240647142981699966150359989627477098819520214301374966932440996191972610334126357209362970018683198128802021577033892711115072958658764576036632657004644983861315525966351546005436954575482291656700363255738605435970933085332534983393417821559048062091743418385027894531967257736009644815822962600164307359186269047133505384738911816315458542674152785153554477818841286399224741897244167418861339545735704142679892952611139858553366532310916759348198522343839909802293834283472710348315609617626269885686137539093897106675491343882960480377659268899122940140763899152439949084967922069529978234539119929071950569719985805504590452149508599826015830767741675414531945611358529655010628914932274262386627783565295702512943744390578519771369278786372386457437023375801996009896419411621150814040313647344713012057457095031129311675217113496702553970631505780111641776855681446459534616716053137538503108954288920062407181068591593795847562819324651305232331189980772481051719984646903163678893538750989227814367168583175776942088794119536468809741481609032914291660734463241161239300206180673273929666549373914443799541043607908657472453869056602678154143389810672818711366565474808795134439677967029739521461550278867847173352397340661854279272997591776402183788584235122277724117019605491188670739383512436230735935731698734843291229618243010287055730780967296286956448725648452132079031921317180591614953156927133715735095177684668799088698900568837969265008122551717861615519496962092917716715322615794640199323778061285656013568251110377940326959651056941690678069314446347730645522245176791254022243565322720265863627724614631706644582521911112728910823525865227204011014205661607543263406317207001280449053833594431494965560172749164499021881028197616952695965136222659681202728709567156169330280939946502277727712071825047803040325861793866083513879769292115936491012251610933543153662066016056409230475358924796892491022075471020750286361421478738877836746091004446183812693321946310756095353275524067741764069616468993931761143854696482151562785101771556578060538526534510147413751663797695166290584045938380167223848687155026407258572624793000652902026004946348497898347466631194908416152284453109154947070558682831921775095891765228497815238621749452174114210090724530028010636482486051798618500509629918029246219709053940337740212687668476427225765720363884111479866092625325520552024688316107266395400450185146752472416021261359901166637876597508289166739998229318147762261679677272199443851481124488260695210917808375987107302262164871730033829367133662351097768498087253541064437421211387696691407062683916317167208743233579085135172814019776985255909129732637850308102688225022421362762585137874283582167731145106037314726611123291939234148030648757553822301163833010496930232976770689772231248483686717606228734691623868183796007732891164254716878828843897757876095309352969056939481009397271159083313537903126928960189189769730790233449019619548197430470230727795367857616038759418219163875148530293962783080360061517145444917377200898768643738514477487744715284362679766704177454885253953995788502102611037768549325563931573918452125640579424655663712109437224384622437593866257197277353555882431246675822235788253616443535906289208760099706058444516927408091682360280078982578900444954885701952180563712326881842069812695610800983877268016409989207376233899049126489338798050084190102837527594830882920177155020476237400222479118916535588872746379224465610923187223485981193733821483770289551114644134905358558638092582559184097039978178648807398857824881692415684841075839763109575493189992976764000221530835375438761577707632525300939824464853716126919414587158644225065793807471837553358950690149886902738812883770197559033446646095325242971144984628738201282318237284493511051637146463808364696879191283980582208675549452348271881232957831234042312874876986257636760757274203470574446502154817858403255561775095047113980802123067940753614174432836763530612003568253977964615167245746010779552872196523709631376489549893363329292687356012635825302689045858509629346581815458716021584807902626687140309832504091593323853854287343574522336287404961605603957437145779957507776514803707357132161527643332182203221150791701146707671216735908301157153795858071983994364624348668684314892643702374576383212991078708925005288890552362310950260112738448675397610779112221482231658522400155167874790130305144320980038673367096997649044293532672719206491195635687817434869757044329267133880444312579985779657275310724463401099289208628499390325371541571720704437118520448252772543646922773341492511377986575769935438320880705874122265336136245548670907240239476747526584456168512212282282351415186200572113603838118365203082306579741265533931374543575903127405490321888491699026556925906878058171082458436497012099724874441143793219481635216357081068681382917409128466196966819621478477324085007798620460761020698283076182689034411335387160581792169733485659111261246063921140279459989965158643151368197679642602662044303328021639932857091545526213265969084784022400821268520761914270395120505540923583448403651657272169269635284630318796444928677632321651173964327321924103097750046177802611794877443680572083612850057476793195385935484174248534406764647283718972178077143722051879081307369058429039691608437626202764210102754839099070091512072898851269670638089955418763025979877110748978028465071622521316023551147728401503587461916657724715681339926342443823856575162321415431199987086168404465596083397567957984454835132295072596720554865684789558198030454190055356261188054228620234773063469408137834143405163697403654562085154289344904215438433739899509116026771433807122215602244202276556377842629296092288811059834357453919594787610756377915823393153871378996482410186095044839283328587851294003576837614717606124027969077898647223481192706134462368214139850443090632073579866055918344606095063020906124043648690099191435213649226570351903351076429103181115255100078378016483621741047985800581946528899804503323162919190472249659476302895165272661086540703371028850932101781204523981970791673228064155085724643592829803651838180560292098800951524458823022205850680718560525301652399701332788767798979369836975256066103664467179933933898978936486141918713590004360006858350367915542549760772020008353340779072832379453838730200781654218683571801596253937434396436734641482251248088004818362426162598610709790784857345765171132062881262124448941802920870924688125790939201410418356009209319878230795979863835725735142077385498451083417374388107745695441091133463462485059415376208126544452969853919705304357385104521031299204802415715572253367864749426382095144458504075058369229428197632246031766210426993683013079002877353730951504111776236771662837750254397304798363808169288678921229396890540488231431332380369017485949347120387333026403279278600371307113035601213333740928906350028643999614166237303903987953811840879131662648445656491550907134930521319046986030835760506985065920987386950938221748843059799822359269918754998163073761309849327733594978768218636302292312213771138733862074294539888522825061960952563289149359052634268262340787852889259624009953120605901796394009835124691469249993319922381781241745770954355625000409819806203944603041513491308574681890760734838021512171716349162759048327908652393480251081251307217277894799165547492768559483766912319601677121711922341338060296126896511162946789035036134412059339628259634166379459504548048164124157565862204748458272855866329055128251574714178315016913369172087422275156794602037437929026110348891224678854347720559271869132190292712858960251654671513546999641187716696416616310568617757135970454982195853234854471678304769258581117246086273919192487969871329356440729185523021237467437957608318830434762971348846520513314262755293526455880947433148941737004191258936490663411310709637827199783975923881920624958016081165251623995537320864825323473372430147570759519221101747048532755732729808231291375250790540648819038352597612235596761052558781616396201978623734114996341728259181503587087430455665816365743814362121360914605422163430475556802069147283161155511221760520251201180298081094282602435102127624389771674200521873771224698112295079440859710599823464264824733623129178049786034032546216783562330792169116009647158432047668669181040333338990774041216970811414788920708134145070457523356900409023129891664242638449872618892688594921048816693863680550111363574455226830045907118902418927702154324510590323899661154496830127811592311423254936903571835588754300670034025373116847591938656947959691517308614404948530275878557196390943730224271785452227770455607434820290019459268224738456687985312693317144540410392989739818726452915138166529495536383239102055227278402888156550587614759518300969505408284301160459780826462482083439389011709974615185809597005296999039643647220874951996707878154196173369839570964470835846505765769839836062401782418842032397161682587260572125458056547367398299883460419127590766745134367384455829833482717143280277230206281616010998143506517910959608709879363472451643853434732911690927795323642899734026755493858116417270554009113089742428907430789040523141571153307638579455806469937374065722389354845822621694811277574539961665939015341591993498633947105711964944265111889408946328346311067514178046676422900061966365696412573455220271552328150120873247528209226966065134353320407253522685242063179414690718335852799785990438958443241783599551032521710962168151056491465138067119939790544175001573700985180633307258260215876412803604235816538982613526675351998071311831839173630648451315394257342221798133183114959542629250604612195740184132978872129017600654352679861162391172630456146863328386064887313079208041883867176503890928470258998254023989298935339510048376158560974906756366830879646978833788393396136518817569066029248870093857975010093026668684213279126200318546771073246201831931840229379284237011561786362436543957904645169675945078183181706535492019709215910688141594351152299304136261188606002214668393243822130806537122584439693988950730079797627125617433293016776179183590475201593532814147958306055481751312219717235281236412146928492494628143978480924658568260317318769808936641093545428530622139026037547467672334812754838125555235587516128087691928471614830903640001729213210688708646240972295797307319932619444410723406895555197162757855625732429431187718209532307591056930696615573041681817824595856903765499111034623850472412558920631619995969941161699395892865517117586174697973250395629702660964161709590948790034928205122896119820087217477126829200850420257305052699613877711143326603771885606821039733344301293924290352936102064555406756543172292132177021895226758343163392805189359058643375016665031376047006304402348127789319818978270891430991150028983934408798871419729161433014320160533067818552771910305733039814400654830065796952096808262997769033090379785825442792401710093330050538726275440981102094150652852506558508134823921292312991600887115965120496848286015952445024869112884026084460575480951610731363086903001681830854717680928583301498450134800830706496301986030681281908665538381616081281444605218616532703479152793730641394250313100446712435754618521532840445108285678077111869743762620850888813374753297302217681416776887074303663886149012347952775243306383245487308269798434707260149506881049969377030924675441411795914984400160075575028306935158848465215464401170854303825998533375555295581045131108455557454866206140296797415622903372036448941441801811726473883029997748261468920757707749739844807654081608826882501886168706764261277358551757071126923204230652925303990380282606648974390369168851054993708225542982779723755266212200788272935929193061645061479440779202856468684152243149902520313220555706471022010777802515770209187011946060468894826223900907713073621796743344788214051013361561008612943094908502231493778169737706309261941124800192340481672975197746598345199040665542837308059423480767065905219822018749440918609279036292790305177461774280543296435097451217109356407698906029075226507507299630943204427429669139455325735167541976161394479986098428151871830347459432225008977511005408539351657147478735460805224920187252895290424794412547533960720935606498038781794897306344482437705226818211132899251737368408172015697276081296675736458154272166436223191002972344561070470509027387601643946743684930278455219210083194977802597959490018564958412807253849389379043932374350081889102004345037992918812794059704970742661433074132734821560832552973859075733041322930604427658024050096928409905691238284588272208371840447448813821496402208564730540609523971195386401647994445295067411562728454104744964985074478786914616979123093992547070080173732364017810816781286403864509198146207325324688613925396491930262677822451154803865842089104570054129350997497075325400621964312705761591490382938482032036537208785903810469122646233431053590913866788539154446247404291393968829678146977185611099812076287716062464702500588686874572877919197769716518313250768162963667621807240765228323854937249469700545345289220159840650344674303387608284385001585955251558155818948364900238573891545337565399188042301973347184066978877015695598481229103394653435954513404875705448169927509267693720727513547588547938338360801386559365553200017826214907264039104295035412961759457589664291668444548157036750155539982661613030515723172369261061852171993281148211579332153519681250012474029963302009289829615705995193219743211961065696853852203599986272304859110618964581706941178557021415149967113250862909482879783557650677607588639751748860736628541712122273780213765044088138189041556780966610220831206777523861326282075853005677566281819754880350460097645607155896835151620934615382282671250575393311265228028762597133151603574188958062132310365082758200523970610140196160392259074746422581486152069963588644713348675681572533358779014006126525150843468331718634792894775309403306578758447840636971414301872250290409924613104139076371644557417570229028423073809345282424264242091714508349797065133854432201499471854211749390719533797143777556649167961995628247337962237980656778908037009564053230222385238476559588223018613546735034156147474267271653184340322423107430128587196449385592488608927024269350866281357277212019844447340815725312307084120376031740690302944990089749076297680293824683498603714077035442289966436996016997014377033474882971890444791271096866014431676888239649722908654249154423980341361487487436438900798356995345649994808219259060881102316862594972326326341828573909153189350976624198671898027759455834426983275251863350043283295807037527862916956989143299616403424536560668251008832451229206356150595905813788782922148756910935950805027809244020585161899025868558647768149512209965236435318237085793019310954560675576839672828645596976200898897215321211413406147898774947952567224919487297438906179091501927802122215539922044484451806885394595778953061235374484157675506685578293153651608524998266712895841250289668817066384174061827082071161182702610204547307428639437595593203888568278227167910089476505562178612160664565988933506673826471916659417514632594863624098616214904946071604454583390352215709472872873602908394090737011457944133854048270889794062437318358346659809823360489192878343872724369268488196961305461477693196410977474938889740445709701115374090382496720091819400234781784100663902092496950576685449816300853621169255052820264022600653177931295806287947153945494114415797973457883778698466087021518865803309430325255380048596901325626443599312965354400420857677909073499226947895427996270290227764665375628472471551905426934400433625700604365270882867805361932362483670232952916945105440303463298239386123075608831442060811463784214985228150891665846497576774475347298837912309674987474087899439874566402204030065177093251808494107423188564455272985032012472527121772073839391902554954107162941863347004630895907899157111548603921317298226912357991927421736560243211221716603335167357789319912825672898336501580852310968332213570949923890874620233519323836216456760025807995496515880907352565007610763159745168352954241623442209325109847166845833028427944974130132979060474695513553161476049839576095648693405246836078816467549758235522691857842241330259817894757290271994672258777155392980011467682651191304800114513139444171483940029695135998709949990553915166694789878034133387978118171945992134659587965407143122141893879315830354421773506538913976347198881747396754041222978856860616025483374211512696355211943577780431581752633467091295095753019395144379404441974319137950770013484227547300814783511639414860727149819752002989016917462288288020469097802175964552712771647068130042349905909463363187100147034058103114292034990696377069501907899913157844934600388508499480179930399131654067300007290487622370869362603185380482339037922286843249939738328941006906679655388593398404997781660453284865877821917284109819973840292146698218417089471081172522781162191336888228864068881306198449166652963423791935512183153617222902097255636641600199545930436871461001297364725350857342165746361044544663079167514910191304060870811034245940249907844806522722078616725354021857741869774012272692440721357255540473750131499557011246355825470974365393822933561588861008209503021633799329676581560848770961171758604131875576051058093855760152643496159792658215352370179754301364076348886180140687614427932588780692164317623271571543572826671041634878166059186586899148134521754902194410002865572874734463028235832595157230976600316969838606850094951120850302381409053344954414538068213184274024531732800875746608654501771925170132629161264241643182820265249505680591482187265100002742963609748614555610572040806029432589891698558702584805037759451910899536099612750589378089995645198046744230136697426749629589250762729534051319347077178574070717886595072020993124985042090564218095213702334054308836208282371010966399937666342668388065051590134083050772276701419056754224435353336814624334818534701940959059762659024327012453229145150292902211808283406035004776417370162633581780832423500897036363964309671969493256298989168603943134064117105894240156134071319186688478328426132480013641830630588491688064869575530830248101026997317701451167093031761182027566727459038389734864622873753234931978028334502634435846106636517782369287313673534889326171847367901996441835320286810366872611800051081595838508276506975935751576914304337039470609296794296641043656951547756004852597801647522468099694300314605736160799319132412483091853660505236550901896425203515915094512711453710759525189286228750744159863158511266746583730209860168227966863110868337980043345080102172245910565581184112254452882313838610568600699174306177508710121276429865154975591140273252044250679686470283883349432533056970134482087952599759691029588898282712275317404968097216431374278916269225738876938056781700890019076924758311813474284024032983674374654310563379690051805137210919272808391783544975558088921248304820006290323027027365773680407240946127159256558167281850446141166122050696298422659589820116704270696484579958220783706978354293848798118304443572537228510080175393116534794236059001734931804182139853048171024346333247650306135059837574233752168363191042715775318733097089644872756793015471218940421283597129447582134586793212981806479618276990286580356784575833384825370168079202603659884927046321007918383756089993757055980165802490228188101408844473172076993344104189556024309229208544124423067017901500556472944989804359476334832803238319569944023196520547495689651807140434031182820579791659387362014093549362969424589034085658099900521155751864108053510791597021217968164506776750461493737092996962140311866172243254437855595369478848144086534922935314496283513134564847116734165295714273189804471818757170129954777784313700099117180352095165705415847924259246436437381996308831628452287597663511697940282853770872619449124363734331607246467955663787012544616711820355820756770252190701758646692342977448130104335369372726394628015647342457848622383211181917806894804873038078812527080363470779787909821351917642442262551992639202554415863064611875068964316252587436359218399748674881684848110805388084364979050820805792990816382813200628222933558809059911778048678892890258806970769640369966423757434985554265582312302240741035278900400944068647132643199319977668579419560462313646760056907659429758519534115942143863486362700105547793465841279463885248777564933393622144101611727261174204266980308990156923177578704599914384287363645647003126106489825740195210858730967846709093476765330905979518567141111071934459798673487207688162863704885361574601462292036472608682170728746742109911193458123975144551334474723337394343847453803346280511616185598366606377082615895573873308156855343723150790334426847032264924638890393016079796192615298643383347527971814210973701041203306346057482753293369124974060298412791850062967351345631842571919078785276281525164605410959934274689533075531850971387111381237937010577087486542174551187187302047300877014794101961622143716134141998372026457850199716249959491328450765935331703211006882422013831448600091888071899284367028651826960308569988921222287064890340825304252631153222676585021539283811189650950134726730288631412219931877504012586055818159198209276423385009829475307373440912781259523894247086324849745283428678743947408591033185159639488742794211897867699342808363640684741128432260694829492399027200456622662410066611651519568490367279891764501626886315597334310297848194948922138438535630617530502792820595582808897873755862410341958764340560794377581980966573361510985244862251433536514329436103329162814909371378900828624230336704434703669729167410107032990845435645924150836799411715513645249031409121716301863064862504032123066605988778099460978008972239999182395819474862171002382379966229051399696095378189328651569897946030401127747404717282004558896072805374355192380467261829345615695078851621521001023593944741525819310408562855679324836486919423878594010663778999136737063803434677532382833171380254381948055456493075877003478494453070977579601475202302038607541083599112348320259228704173056603239202730834544943499363659415917439853090140265858916051325532622033501756685653847028299509431681410145263361055043172290858770734214126448108093588087894160831184062513840448640642171513178126809445387827150780553109973055275896107889293918210317205275305154272806105510113291695904078305489777436727198474333906672023945312095929578166751113995948502525119026390594047347348927735123444480047845300142832671207962222945796512654710514411013475071693296688595071869075317189899911293624476655014038785519017837993496897402711928986362004295476864995273834272353716148595434358484950641781354205494053659366453655554367944874176237364203093944793753589146815009959050699475661146621397773939076174883003309778666926169187986268877484427431039628037963633172532103596784618763449761571786038681932336428412239485585434811776918576953141402842612923092198239901055117909015389840166400948597927750186761003661268369928834075450019334421491009685416442914667234629318859628312225317086215725542196461812652237885290369799886243174407875843917953553017720783953868299008723642795375060796890466778630738178923696647461131827097303319897033055399667893733207706509236873849490691108282522242980910083625325122239362077683023755429147882425475828374765067245972395654304523395895748217417142174783778856292742610676767696637806651479101016367927178549534685054142448209779543712771139063198487451150880863568844110708958738706768207772550570060770165044902123287791291271988686272792517861640811002047199466389289326794465699985810127777929309937070554434490473135776142528225555048580657171374073045819789928168734133688672038936763498742389684600452561304597524422097914379951939145275883311843018664853788102047189135759444907810193574718036141123863203997862613647409606489146370103989308406260654087897566098354394024829621983165897171917508913427902297924554374837003106845931750817438719536357364912294374211654644133200583490183588026830715327378787221297564930938325238767606639520623664088632238888510960723478475190878756194421915570039227364055968796122501660547444031684692130100568992327044298476182784453967086555879783733967683160518849418815673114286162497057023707965836421058890047685379822810858181839308314304934551172909764681264423033052601494389678317240824911097899953114728692729160889592939094587068992359194183489944911141077957307164381281480410071097613361329052933830678416636846060631972390912408122629151731720598090510471238566366371979852584555561862356349076601462036886221208706633621874615751457810531083311914680004554910884143124696842408461812677895991734699219054385529248457465275633880523084823801874220504792972912249292079132221432503345493467447826864713433250025875246945550602800253633474835719789271589741168755515317209238279016348911923365161607186946447852917256012238960550778386623054738075832471452445984933337239575185052380238050961752577998756617409476937400394971509526940835549752367221494096691092022400280189503731774145580731143424590128305585499646079004910781599612090150533305739998535664205582137242500366369925066577248617990517701157545175233579547550119441768334621942600376087940806493936757370983084896353167375841568748524371462899474244028854510703775403480357294113982081476045832732961717062496292031744072386804965656246616950058171514359915339550448707437123028474101917754352269025462618309198703439195861236580992146759893025796246946876157159326660670716586768429841588961088020628147158420019012020567217195273619247078958050185543359344091129077242535441001219571382127563451538022846683367016869075194177381852349299270454854463024575215455822383711467707073367279563485521486406197298547736690577431241917112014912803109565073827920921121254918423596394622381174488613562672646439489543459255033362876375715653946673357283462796164365805426464082756177011570277811491283363331566668845229663661746740414067639231933171740052418204603979023869106587659514924437664729813289327451975286678492930207375896657217600281300246135405471996164437285987591096560031220454114842707590126510751769331460790700031881248612940412977988191263515002040192459657404169008424997073451633027237917678428146591773318242671504512155103372046600647217333235687174124244879534483630258813152662356679562837792240774181790744222711387056335498191693222243581108404228454363549842729198493963255579823297732874749843778198596479326403292888197107564571409316071510566819999287167377016320985053840658382992497200043361331545226325714274630750780094631326820042834080483585861165036711390851570760178964406020117350029341374225846523154350383566776563827952166482302977980067411378111366480906984489699462247783185322254815296546738140618001327982560443204563725410793620562599833791903419476837385557796923869389170697401822233440605716653407641264859646559289795873931776630787610888807343983951708300229809259059159958481012091894041163326642961426321312712182713598279687296905981312331847493276719116369360424049999840853895832886222085475331891462232066962657278691414192322116077228246698974535015403852896479093882553401087290947789636221834168953971528986154457104498756382328314112471619112145450735038179796564037363793966922303113274456497008947421040118738048122712397312603378676995806284243944733739942158818198545126153149439109783385757462820928699926287196558865440345831609685092509997422217323659281158383379990031225736452811091741566140730962172807551875410075369508126901907569240538167871438147256814512078557928441037933032665050955817079431164964927776575023823236906551511505729417557568247209924622353240536227216806365800387923040570887088632155547599262072509947180388954485419619153693989248673171672664114176814209573803579270647886841406742359753818397708766469023967706996541565515364677538069359715717363610590730671745311045021503108438039188421378549265471300757266405111640168174048188706787578045982918888273683513034341736328575126364489557837867743372136831943284693112712667713655740160514914597540288759541855740141134279132559633515539079804090271200163923805911689479843143676994840740160081236396271215378124984378149209843117813581553911057019998734409691613345456765265501979062722291250673545934942845639346960087426213586902521775775805846637603739941876309082182127774069509482156118474188757530258196792667744249157478834327233235555930462151398192099199627038232991821023621063941074727537175846324974037965412354806589110308746582640029553337116249071588506151344651944476259496375570919903692977377979704908058537592006780264950891613773557695087767779965663630772114618342590904223603089975370115246881627140827772007304660580961800327742858385322278048211416717079675529541934872210194171444740680633359350667424217717821190337761747981044126196875942701053382516461539314895034987954187001181387507045497918061032990498074113284517687738604360531579409738269220537781851144996842075105875660168454063772567060870336462208166793745108538206036418158991335211662826625443860469236388965982370265475959480461247523861905309713098555403421093183438838444817678045236344949647188372293047697545244366843051735711253846602373916583862494462061428630126088040725837941230042251091949908462316242618307557824415837842605575433378335293904068955936484355248067590615165511022225602667775080922551588505602185805021287185143450287689714562047092995525769763146938088711063959671110373633046601859416178803013357350748903276328892265666033815615050745051330650307561415291880455853019439874380652493335600754568983460250330546155525608157618233250104126603160460748299522737202970794923247892790806979764110799686147531779648215524552580322011331111310998046132903085358845730881960418908619678503462949707064153924527065053309322958062841229401067951016460889020698853074783595859304020221001811397568894298744553148614742342010087298321045062298708130517776209098822842724606880860686941234427984397678067350169609597527154269330048815724436629184478486001640352305076174523741244467837376199097250075565980634901147717651543985507568622688531495869713518768589828898569553208526782534768335759027193685399546850400895161853758871486583483012402545612246241854086464887237973282185405480627735963409839622225236084745310637931671476424993235033642600269873792273049092403368782441058610257989351218631802542782940742465005779256626057094257768612467442508510549928541507035401531508449857327003017409570421785992250638076062870840489003266205704478211697613587236649432975425870445819283887836281242813909844247705088087772313350338583432887872289581887459803338053928443164918289127509766503928083920845195210127319312536276510444199408475916933173937836780498406000854161631388973616623544960881277471066373144143923582771633965465422138019324428047827536127289929224374382925042978330630485168419386814594660485899735088444383813338648298296151400385629513803428199102055579820859421631663765313185044176600423604714709081432128026648195303700331087433004627261159940187131626037975127838175634138685196450818134993238190878924864415916134754257375828510492100343783783920230841572837981924847896403639193231317606193899086428101167512114937387656911495129084411577476901335508324059913686721357723789266401300291763863874023788055499830611068171007289257143070426465479599274209097515746880182842283203299082671272406054684889295562960154903422806719936113984507783173686225542005181924655561043102432530311149016693095385698201592964626113016907715924569110178098821290873819085113390889757860533750550607246531695244600817862232693239573394734625118776412671880818992136042777605217325900267121512652073004243804151058130182807210377888591147867298729276694955868148684301866327005437746619889522104524222066923258032888819154182407460872383729563642409360195472374504585590211532922075506743104832928365219509916064341003177789573795844144159946992467053993717577010979679496314654486446473930937570194559177784493440799544685605810434320056963773759179419659564558258021727494571540216412317964153996713109927471278329130295528905363115488283071504690325985332906914019937577860693669382678510162424483214094852196976459953252440414605033577672182218590079167781173879976618335867003812864479097138400725506762271290834086622385056340163098927351645419688145412152924365957630948198286048982057877997397380225996130119541955043358161402286644511628225630206075883901986696466890689704285284448095400040970265143065057425314573808202075854059243211564859744849249690402833426444764589661165937632596454257080722304261770778434509900550657999282643499336688344399023830378116993851609893598743980127386758023037134531692653390041914106637387210476540364045974000690870468602933459498287950304750509750494036799874829739896930562249952889173355088952469585365783180383909227184429365454931696429017278566535725921694881243922324697964702355838910486680738354612459998878548185134216644645580361850951681367363976379927676111383113771007274264720792821865481047617572180262088151581425280314341923647321754358629866498846677496280071101876777837513422937032463047648134833570182183778335883852443938153217595689963860789571312448437039170927529890008495433434889087348176240447724781029995656782184068695634824101679542210428224647710229236525968316382006736544783871048850516083928065569851983902454542892641915196200942494845936697637514778582891962169085080102921839792699127137299659598596811603125179254299454471089292642625024637485054252480070550740020596812089407439737429279411516265965630278125043787907520354615406443598772262060417094371978383657515821058376864154840273027123533922975836418204216462243358537798610038975477733180013032403413953738272862860487096313020026536799258996676407948500039373648738023013446461523208393251328154372917052661857550189329645663473285526847402821619199066663005462368999314770625913380269406050564317592551274677492322223973468765592337370027213283302122029876677656514343444668149934120502956011881148058332381546676116229777606058583574880997687789689320531139424550299822544064387084051814902078544627623050411900358203739985274673816483689574648511999274192065378073189882398252156707215081781430954591500181325660968781616387396418472521125192737781463791384761387351149934226608733434300937738407645563080016188118344071521737787185257845900517337761911126040698268061394096824853914149301449450031999732119592132664573765786945358595553058425604790517968729977340406573740353001090816583295381430279393799914459914800124782052598901519820046509706908179911288919911638921081523946907594190372520854145815012567596804883778927312447561004037887980836018008661128174575061408331752838494641634869159365652787455202932505257952798054254995877782056845303012321766930087591475834821790309264819516730014648588700737106596613740075523229160002000384975563967722456188052391274659300120118193191328261772908423314526857371676432153362143059850097536080067093906236256839544281089347200538720689947020364859922308289036912798401640242744300194124311487376953203473788919347196103965278614413519413025054254479063099910804724949700190831130203272565271254821150044671306290101453405989139853314863563774400328408720725042600730929380090867070047395992540425820387675231609795670988657663115412357802810358398268346077957345968938156635125599676193273099170468099737451135745539256662690642783133845392141891600492284239593873158430301379003341956783935588594793777270368484776745639556342613704244275073615171142104839878140540616213128775831798427877106362436744305395390121187234055909473985691157672722750990563479962627205302608276014925637137742898889595014167240423814527430228046299990836825249342312608458125213835798180285500742799693615463763108180202431763208245595229308482181545649865764048375162521818987400099853194858011920038176207876921368013985046541040058247128292784317474573577120032110186681570068162116837030520601669020085677275538716446421261967696906372805057112645781641656326868820523565197901630735115752518303941632537680495275348153688135275043168685241613748778256554639872908085498932054835974744368317150339618667723055766363635472007468841027920792047649467270076906509489333533233090656555946878007644441195153485546510480984524290972406559918335013598731133331251972695792349191878125469459096453007908967484564370894302958958284445340774807122274767028004878204572640513603024528706379063314853464578994235818797514471267028554590089518004083579696950152225561967554884857630791464178756585633430565519228907645231691319029055952882412507817004606141961395761673417611228167606010991282274836790158375236201741835370217323158581174590917003334741962336883876760437427691817133233171511238475165318093169712054851777599950004178394227519249614031673162979745717028460767230223789721041519945140802467772489062990110249076083996847493698025980387780609252799338806050535948399603783967754427261037011528111782174630439006869667852339740395631296725903078630507962090736999346615136425713008080905929696514879828302711534715738301171752988537801392556302789870496716284262794991873778239266666082625159212005918702240296936137054433019993842753723477235193625411949534076140805731628177862283081763126913577127744989836946590258136938668052850973904897040798936360252665868897838001213360231467532186198472780673357725166858374918408435178153433143520376855190937928659086985586279513371045831491414658958808679813714275417822296766140768853958838387636437444168225329186021949286910640679088152608117518883687683733588961470636419771970976545489715798192967554516494845214292578729524157402035313238351555155882717056910010752728520154276332636691513373577571630018590922661760526487187268971403167032030671141079895581648067587983250287364295852222293683877109223386334312634600224686012979690896804531339853890178156894559419857375276141805563658416094098647090030846367832238993276134037156471437520557968886271476968613395061334026987056219932292991885543974826426596890298790347077969417096910109669446962506713792159192759794780575886364343389772030735374008044431690562658890681656862499163148864159627443005154011677711439121728482895213753427072946670130091430303882326466906069819642981535476362697713285112015897511509377231713981285966228039031464141220632841656355622420872509777933185082071736361499804907652260133316826384261100275518963499174561722841177692865518528828172787042826952601728219162461810422121285005178137362882737930012833984398061127811504601685577629775395075140697645733461196243690643268485563835969917879155270379614937826292658129426346900863989850727821297890614339708560938146984581915876147132344079371833437579121359954056476617510035746510967017725825974839870889102016436572225838996884281681871028784532849846000835392399787392056589356712966019880414432549404892288911837263774714596364050881317198716289760389636767943131957165702141584551164614877340369281180605662407704366688230756990252230738420498144031744824090100652731543473643941991544741431293397223041100433284386371208125024742078038589635299677211572550987676513303683048259687595992715884017169908118797118226320505041370618811160559633736259953435198359427783164674492464052549476651048448661302982025486799692463834217840238207463423521231605667303480172791542635604779383197096631054325078089933712353827956515546308177928308385519077879154675738359432732561087535665770312980030884073662083885141047393322826243244752540881876401187186146503061588229319345036268906402130544505118665221737806475697347331515096525101208112552090363516295810383777530236264511962766480288049521267375133660956848631554864021264057730808929077300565232428792913211468746103244860460032911001386153780111851778199311239346022782026322073014819119173774138607144431146679647181666200259598297726435180486134296115721451253833733926594390060055344533133943191000702480978252171270621703011627039227440941713136708762686546650481250299720030435687245128251886629450861237307852990682889065636337595035566554008799470156013666460792626897137949194169469849255418167288113172104702742710010529010076223538358652957939609190868915815174737334956482784795013222428403575871848869707491694923281299141389093634322262097255668280799298065821676654337762160962479510399683305925824780546728855255003585302507996354239173485940551840785148295961850982256067598317712393830846711116568320135455492091754701952644210719654130396365752318089208468209680216531766867465278784185231844732731804236780225587258487147559542493649457424248461566770327254893441285098171012384928036088964617083158518278115636869778163860853593760216500508687145714210422174592453861192046438941383515303442441057194353306661682491783239658155793004745386440968870406894555550662432024669186218075991343299322230465044678248083105984233260329589246093449388292162039585911377019593702391256161418233784066362183668551314714600188955833947182767909380679302082794676915294970372458225306150917606214829372429028858318698950666335931709182504596860879595395059817290300329635269101427423136850115554432577553373535842994410480526119126739706278875283911291816804338852101090292822085449604132063847343151824579934404494468337023835178590927715967412349138037488226478271747548293577950023940566686411737060172557203886926965022729165400444784909285210625724867066114557608599028593574405956983023425715073884621735757787112676135539161770526268189903079848325880733264496534206961678889498263524545141916834010390663896073196841106390192840346370118542713094858845271419399392000063051877989808248911739427761602324987998502916113010559769269031735509557580123064911617307716915827676602979562561760367645606361866921060120950863276853549487230474738360267104992589034338172769400627349701701099237822863606691283677665237833304278615536103494950070908629082135715755706377193983476641315854053877258190425616720602295140583327436366016422956715611302850376061932065954948847086444228528524939078627889922986990356533973295237458268864928388747650521390150085468973345492935706255557027739754906732855755947493103774736150181517626748793102550747821684906763983702704586996262733248575317184839989408006608617752773389968147786020374419895824456617180452975534196091171911778640276984966323665551367749160431599827428572757453597332485264626133749119318903503076839271471497255852554363516219939224717831099920638173520457599331944288625464241288672145973644715032143935131583679157670737668072917616768246621789949086549106432581520682621911364145936325380252074484697031644719143782916316778298642559978907082429313219066104294999652957210811825981433436187277780706924967722249787540097535312523909457924016539965457046107134421032708685068256018929081645127228888901693464857416365761506624109766568385726943007869327441173355104439969814748447216480908557773375727173299133120171839674199067326302422318520451244279715636403577927772246126286847350890544887876522527731789851660868074553733999114980114328063889323655332589775087326931004869542384064074556184143014227029971268714444735223195158738291717015757222727490660771838559172923724431547642579977339599100719391067948318543192988939109175625080015611222476389216687374479703222306740686669420012285065359001073606412153673045189441517230841708697923319630301045518174458143826602932181735949438565175821554210064348618299598190893689388362210606592402106741661813105297504679184316084421194403222113710554561021341103611848937809968448193839860651550528874174725217597717612510792364956411300198020723446598420163816088707087507130687233977078417793386402851875857310686965846097880165323363417438309824929201258469411259913107263892022479369018875812326430194215875916516231075397306239213470623316234192602641460091632408788646339673270155466734817763267241068856187078462965112133156866540277112550424514963828409338532702924174418905891082787173551774681051130665702893355631087398783312405318289595470981103974726331017036480450607855898867835959003942411519946694513010633975198182939675158808949080433539562276177771641458847626478392789235024258678530670906039122041202651892586343615959259866671651327271677014823309484045464649465000785498519191612907382977971293890135175647435603967587974505651663210952649600299796922706472880299415095535505283455405913909824662299803595140032650193370322313645902937583239652777796610771520964422239833927935477845976896415838386140135374238377578175338263157986254717128767275265444445295189090913449243857756612063070665027547429549491873828433515339368529348027704255146763705931171705447773141199289443468715689237082665403102019371202922786515343170664890810216914604992294543717935991735670046391215056481124027181692638547448814389130201869380763541497164248793217786906555696839613210662551446825909783918115749349776178431138590863153832771552575588938793481839186262631649071715216446296266859195127088904766369254986729202906720797708471822434601585942286371125514369738165044031221587689693539077206871954357767398224171654037474603982706307174475488031025774179200562852234523396747315296905646142838879731049830751125766176479388542811734209621390514816815872703731006327983108527461516331252977295157267566272309600178737933497222543030208061816757640401446295438985901104188599260935087231122529585652738459793819902134772358303342808397159356410232721727035841395475312131831238617638623165243763008762089055186975212454151035070359402983838404265815659343474745396112077952192654809115090825387899656832387843525911678794202509795014002609608283652476925917869965314007433024705388363511911335782837580998943465174883030655053532226984237289196068878012580482783758844978320351670245562122453010337610082790649413517762075164538610624624690325934925282892669158094851128076472515161132425663773324972193843728307507307041826350936878219840920734070509354905216743224676808922904798016305826067931309774745563160570647330129349702957929799112231714081047266362169891513245497347172367290922100182140492979996532521509019084341586027055988890177550379848940340535709718722716873646303970698263541744553151495818786949378258475330114674459963651919175164066946424572328763251446872643581781289554360721227226249367739595600586567157082768616378490287810290626393086919626522056876359670810474160819397617840259897808638949786644291403304042636160522563156440486542190389049710870733962900134033302185582483114848421904132113291335205123856479701098739814433271775061326484902042390570648190340324687675601057942079657696852092897098562054331034966459902481660777647369445932363698356522154275631503517295097727430998845921344578939252492130752064597594016880346250091913896408404281914592253000548535613909600322454973058678837093808544230032366688919147157351921013870256832042812511171508977578444977285490813234353637966794777911019323615128638629193283045163582381751162241862848455146144905166774250814568468370481311810399851646710065460149424758868700622243095465933630995511172956063905331480890848703449844987107521768001853459044328611916550162608929393325444890974125947200308536879217691535219106833573250420669081303802993105669680475892061002627773569067820462842076247254776187763518285759668285991755870230605269708796339515237305371076951710121548905430734763163708066688503600913824798561798334195152295032345384232872343484533867333473019712888275515865051058905905370985481501390450332156585522894639518763877538699380893058510345374358185519761909541247520386865686584294342481577345847784239614406503880131970767601425103815533755581411225007361889073918699070457931082273927772689263352390745528335623935586580438740228870558644405932306443536613379967131019861851624718962844546016189237167687749890065589200462117988585102475368337453692174292578702575668925769968186348387495253678570809156906251348567289579066369520402650450124508960706035879943981531259761981604092833793720060531615377026002334242371960148762017205230777807515177755148514235531649818464750279099772695332274877694101492040634598575309411720491886231439558916896919366921271110944210023977396432428831522073263487564886995636002594027634071019799045841258393285992403519089799378511556187033234841217194529081149930266569850300046863802673857399662354541811236661771911667628563996837549153265462416295413126674298746753263854141449066878410258461627830549030259285802465826365715376949909749725703183576722575166410050060348878375214785541098231772918516765516176000726174283504968949214781645064255699114096240440452481087955331548412237366520118114485992281476173404721746786508693845525142775633270398466676025096795181236730323605129298986221701229979186242194775553185619217038993486711741714328666496989931255154695848726505052032446345785691975970005902198908445474347657828317049152605148080432184302938523192450432141032205774576648614675094870186342356114628821862883151151716560928322980677336720472435021305860408737846963303086726224978595877623833315780052662104987618830292261746032141028200404249656390279717426786368540519088355574835669530543096374090607674931072306651715155694666992725339518549856454495050679366629160351418594152472103459962412442251931059767727805207416074350431200929884556865224243279181920964132742781328060261061055854738891719304946838965961497192660026559138459570783100535776795141992220398526761955745781778430341443112913699031576734917354841140962063368558553065945259666365318080967375313217815630188335113260526426176153039505455503092179138684997668391875877618518241291842488742733384077817457951154228612578694557361808807496306111819180852107741969412246567754724826218726803885703618524127640933566738910945368388658429428851778697764676046987649212313660025989550887429917614042052307803149734195888463712503979832202347470262307398482918372680322229784705242801534629396871332832719137103684579872149394377082090768790717107406451912693705074256445753174780273321341132340934151441080820978601530723857608859950287572865196509731084973594090612609889700810593298208700252218086995856646864353636857304918171629938056346028818238587208356580038496806061487387236683567342842403958073716401705000331249286729232350633830289309008536258487686798461804173680514671976161464198920487008631086466924371976511154323052597391311602223863645489948800315501135623071370353410519261813079972777690478346933572594755541156820245499922385233387516805689850614311535127480010885720268647200671062951035646158265468293607916344716169324626264563955967576288846542316747805971949013936999293493767820629071262756865289653363396071626205244820054441936836664998346836138288922084651787782690654700226145935604340748084521347153648443208261250214725111261766801831209476115378710799393221258018683123888545819537331843885526659316500898923453300593711875498607573623409751436358225311080849352688778024882183670916173747975876236464288573298829509376692774294305398361580692085175723709620808244508892605007287165016870022156335442893492799045863213598191199634978836405740855164971765494467182349455057798743883678665847377685450808733502831674976534264566649244583043716400034617374865514562628195434765925465043412175397962056145831994239533644821982592034308239360132429053250787411253277957237590036692430979576068643100414270505341469193195445057682076617854057261819765237204526319633457190738716745488979670410275739248081217758994985304218830602297120054978537022193927809521681983872571535405640685742374876320244018920055977346151481609347449172831427202530755092517271691557076339516153492945311726583864925040174947880911152170736255512762532451895651327907599626530129542389267287467755542449299513548462023365248330524741825253693725145016614142663982658884656834959863192339486707791605550447770605942809991420498813417261862682622444748846432289016904402139679207312354456155469832213429385181375098125544329895904923818882256176101238041350672794675527973008432143343401170747808401834290088079365722860746629326958826207330102550114911776117913739825288477994319762920533338164886808829975943449801502373979582682824410005436692985446774569352913644824848322359600609747810605014292332741944063131693145477628607249124297616501758476795092612564635559877432891718971651879069483650908994989540340262164281887260921111242776162345754729435105840503875087153124823072533081193531894117222491169616158979688424659618833457061828459171693225596125317358972238917966852421734662770940486124954756793903101163741239428968197204961433526995117258993402221917647737555528441144562020613206857257855559399466044792039032080508053566314934743761863381515094396389752114190153864581619543745508660365878893927593375449290161200070427686673536838480947139070314014108622591044125688360252310812648778164247572281922362809166781858791809871963313087519096460701651520998354018495708173210016067837812337994731299852823644801384286044052930154010134481815959826907827972766215703492359128372609534365320643972760084918031954251778482748878269668901258629688949859574440275299726005656799486125852041579307494331909473875387170276475723777573869098185656173608421853871458969999327064353275215147460304362652200812493736727181637184588812542659802990209816345373094230279766218875502836411093951121723738982091757485082167022938685002612244157088731628701019006469962421315557273269682514640603141443123614403120907771677785794099978554031343770622700147155311005388569012133977895590683227142491590288521450342214807508477622439217562629123815793009335063648603373853098147979640202273643683766115683732154260411524429934473446166241466134726274589115830347409549429353704692536705749287636867725619056594591414599723941631961476928304686966661962333684334295219415991487344309930083594347626626932475539510817983408154014521876352713856630650800105796149825786636989312365535288161659683501282901456124744989126239043962590503609139624071410837733336837738411706503198669104062499099048097703464377340879079491891552876213590151265795977529573712988089178050411294855433831224860048779742777805124192190069184916713352728494302113336898198317650125169535603974701349596385984219996953521131265851811897872691119408476617521586223221945353525447233259436644286617390192118861824334987388829993782512399805484078873847654448634293981157921976885025620513917227021905976008933769765830897882304673262803477935181272984113380928364546229355499716210347216946423557541251181552073106969856333814889098339572460614489276713007157019923366869017192868848487312062523666493720675265062873333007628476550313126825086243089703846412313125990757098586646570243212406975509895610804823697906715999177290366556233945059249998872231847424002740051354430564665096771704419527754700711847382567981943213080410913144490499178843517144073217611850720520711822654169297715715259802271641253013650825975698713466924532024711081262264500457308337352873091912540661625192607665497486481027015934234293694226308415533803709699732437092615529420807173673590823431417500551695299645933745120634303266659302658927533986942534317840017851862367071835965981108450182889476064964173213327050648777307658272961515287773705781494290322409599468306302176714694139085515477400913006882208857607968613187143490472023400048639015967618845315565996865262295757513559359155305473690247890569013512507999089901830136479587705737767924436668574147007662919044154185642564431801152033542964227298571445358596326051961852346484758815633005097304368256024142245825422454418528059349680910916201740722808184561025609250447661730616638190575252789468931770138942988134435216254378633447929534502286770406733215193879340067220374480085902887200194664657886145532911178330067503079474971544809311095842419079890543872671308409988738993591450313386929175389097245282860385232822488165903456650611053484215655357841310293762405011353839704296740157288242107208837795824161631711285895001170455404993669308688904198701181134483227999838218516967730296768235431954042684379625854653693154112261890397011964313488924149351075486801244596941954338717786806860371695413662559631117073206901558446719573236661606645092829651052836898086953945208372256230708152578168278004410664729503453832764864755178214774576865302386011284846763041121229356097372080085767486831479093651726024887653040639423891387007025991847760595575862468983990322702110284584617938303444017831984001705443367532367035012673532584612398230716042712000102196026504225831810004349218759534770615651100461368514697991999513969726729918394121096232713887175139479264518942188859853789149619530261310753048951058103720693526661785609304446258964927740736716825577419221384305729638048618769948470352522972206344597371811238133025480315669343633022466453538109112632569074167999050626022013430489828087959221116705213361793358071337645856006797362562817825262966061274688919222086674761913237249989531198002984443990842622712972950910296025989195658035323977078196874910666351220592566109321897614995502079946099658682865482370244137038646457307946794942243008175627329939780088208622927303463913405239876699693286271344360098187780300392921277383389866590160247252229879955551095578983290934197490971238636563822976675582453756748026001496858555328170818773802028852727958369084177243672543102090840243474243652349627789286950099756063079496220114830647742289310824741667614988291667375726707041936132765221918557846794905732704996245032258419732399767546362007847855703539243805483342789216631940619127344937664347052268074251580468563214549978344196793341087420740706781316757230566323055602295452369760840021445894227710580081291090728375180600462569388248046403142390058672653541115815664730628043403307147902416499482500708388840246404612783399609068125847100643116352142979049573769996790948945580253264469422741997575757920672601196018758810661618969308913958164281681816278543658077579465554740997775120411219274789294763852858706610848752335859392802332348003010817812410729225239721397397851535971369758975618518632136702717386516455560880319378033136480343446994155029147701520841616787983198156836760157305190072265695668059862659267746971212434322374384676049972957553352985062320873550651016649550780804106689697740033215348673117488067858033998486188902107607231746111729144503459364357446191741754662945924498959693053814177756049924279174508385102930888166009377731429718999726348061744827516299237920126371982159233239510485783064463295542716620959968045939124523571587517073021362546209882831117123261166027795554297658016729111188655905224752319009090641952061820117592744357759279819419885451114075907557946033593347619899731558151627844051491966614911781356049347725497171520846188478959511848677672541770791882299054646321538428987236005637579755088679835564304759409400440742682446158428809369482949238028773616500064268555494279762744745525127916313690427753403460033791564842796672716924377904852227758795946695282410756146808679055798274514098236851192664444737984916800113479006465695265878645876322390797455099697148809318109394493474811115078783335313736274408465585318261374728896910280221176495946196072881871579064976789060009468816561463225518114837925300338367450511880002130027163253643128501711713853802738422113156895531269139027214121299877996498849116067914625101424631962051414032518090866561374271376747180150076473864192077190938635731460462605392264393765963686172368851676419014408600499139077064357429652251476194873640893594252749415107420280981370833750115307032054833178702038025199482042376630683673366186408039576118069180612169682286021522479320079158361951058948596429361316875226625176877521642412801467760833728757529249635481208619391196950479310707458336595363088018955738145866005396420169200988814426452009659396354373899703273272894249685151730038281876965503011443649012998912842672552204307137529741503984896744262740074595650837680611122593843441566928681500385431437055740490401425663617337581356811437081000866308347965611454137890372731831243373572142576071869257356003064323852350167344242272723840129114792269024965260008180220533594726642450109741834113598228720991330486409505320851064059708185582898078063790508910531058588164217447170885580149152744670094309189538789055585745252219208741001675218170168785549917174003314651158046678812500659625266219035427851937036412758961777261575326582064332592734275477372208360240667660064309482917726048605935069148601410223973124425736584391877360009262744960757061566467287576482909500842536434289580358403020621891195817216782860493554080380613696513035196225706177339444117717354113074263342328316581423276344293551715112918234603182767646422902797921301344850635378224627041803391920576948456583708768288682000790015427053971085946600596995223167990772158358893948238219005226019281712898589148952362423877596788425403701335655143242175081597179100474857534693561408847810567715068057279525264760416617681764637231919394264746313202778369614758296902613450874273403992604701349051128858791089196567018389630117618613693378186124308711095919213673432898040082258588963095488095630829017592512604123031680733857154704389755792590722322888909429969257961053513365243645524856182787376256751277388561916499366461024143547186913146932943361287558085269904214257687078734482840609008424839401444350269874238058294712965948932280002665825976501290540540629230894696979226684413113676803569231032042942514728360276598304602622393473797592439728672375840751969316663689679117533493214669483048010071349368991892477809626450543011473029560219841364585218151534941275127135179393360730247646934493194241733016584027635630547933882170262986821446164560493508331547369301751754061843962431853379445506331770895648855760652524428836729393391407386419094742708372424843613993468161128617874591972698980466667114388822187440035813321011534536445709460668534388731937759692296697016080870353603281326811054077969685512472512880073993060277623601646892103111752629839912146588914322463984101528959551865086807625299404255202124366352711410734670950411018553898625976048761086513046269997897565700829894694093532097360387262112890269562294653462663682716509150473833314792730427111635017887747998981649000104899494988698744171420153749608062715964505824066773709689254755607151871178590626583286910290369872181307494988861911469129609539328321906075744115877012704155923482946571900981467271846418548800453872931508637320991145393650701851811631374332233781316924259558260321970735869519277460705518081059241990855489560607976316233998500942053327192710241478868437123097421258446514294364042541988099582191719421821883203820453279015239473362813645949001873971084541513228961299925537839200155833761247929495520176599709003886848904869925358828364254194191616212724780408460775566368049724134478431411493418473705979460701139028726711418602893775030356721521005074298310414605366460703043419611029273398831969594725934805169322943434524736354614392630506996382801003258763322417799390412762359279425549852484081130979663624897078700389410717592905003779437486046802493315470229530212549235818951250839608572967661673839294396738990642601119430805270572240270557832010153697679068322046642117188739757750609784919485294503655136110399562403102578977064562690928368687023298716200810352704052969519498271342833150568566838669422877384814163429362539167495543244322486512400753462603372297853068417406096093993361190579979072073344353397982089327123727960452524878597866566086708432114974027769066727392658652730919000342633033261045360641526013832998282267374050995618456934959876784796661294145510338587443482185033728122654382192549041870458693928942092005704507353177084109866157844906582902580125068313790381600790701970456789507096318719852828675499951478743032420011773681339543523287585895526951403573473193938300331635175769738897967188265264944501983618898807003937749911255300543172325996125837239224351497223249847697880380444746873832753192654803273226193308075387157708502810197727089330863973244956817277081686071034741880212453862782589266289812385066457084998080673934256736705767299766450767619600410277033599527130692099219120621225242131358525551646905804688991281626635300304707426844471210419644924573617823573748808321439791699150454103677194496821847212645520887261895120783620218457395540428624393100742522939467884237035572159289163510066267025881330891471759371904512683718465974760451420036932307490661099485885166166651170606232013377827035307710274276823447424273554372516386444535596227961796405204177536836120806395541387613731256374224655745902725245542430312418387622140227305885596546099258068196976852874803955659529633285110526362600776819449100457911909283661490586752715454169825945188896729861153764613957722668113905178900919285530738201241955230221883585880374379775045142189039927231745431745054231044318043757240846291373310479759301154985531839289521288179435728191200353441813369454771579946003827820510590992990849942255245667631888211112801947742309438790055479487142931550726598486874030883194071385798826151936365569282708422347988812823981522464125812286694192809310227345903741751213078828589196122550323359146694480027978076423167297946606426938983503610799904202112594010953737039270613794840815494271835618773566885504153114284612632527884751633818622745857759516112864926024922601437788827755042904912195367398011701052091811143908700615721981068675018744337742956597067836131732233070821603429052989960958353267284240531210909381229632939846279026117045927720156731532929582729532020970972949789698567108326457241884917868508482728123555453513299834224233275112048681355523882728361882910675505168689673765479203141951498815975350795710201441391926043170087247570874409736763071975276656025645684141046172145628018316661268046507524394814007438466178851415717770012846204674109961440571019504820449009280646716398025601131648863519429883579368027938842371812740376262404143367403248902160434575509079003806839202731404158311997830330272891572030926219052987220738057130069751409172523968851572316052575438785380905385916489332079825655341687558360074099931768607573258373193761527726572288592264539245789992031051128564808206736873462326386962915113909683030987268543190588153263687619086290567430463592324405509227890107726225204082294551324069700455485852940154330436823907633753408548619695847050326764876684026513561865171700631294268066774814525890288219571824716481099767182931958793662681985161638357502267618964080861202135855083420942745838940326886408586729353780301812800019216079662171014485619250566547199451913160688357382778072491896917157956736157984364979172533928112993246708285722747848043549100655918708990227569135664123833190878836197771564043251861264365465517142293947567048884016764426355592044102052603991434450242668719551408660221159512071350958522239172280053967397585910656783955110098011133125943429025844993363898631698299322041589629441891322020351795226080286587491256052849605693996333063916962565206484706181048238540194932146947079653523025264748391071833953946811185301152555587850690166707392529826554795246472015589855503488582303622519535108377527774831362802529155601709385549047826207831449610774328573675960819175485219300287949459096643570575427820613611055153429853419910999516035818391807387761779736593531512960127442228171063561612337539197208548059964156488618822609706990278363038042878199712563383908546030784977144141810637471582346328132817911549958611795338166245172317829021753906693801597846654341669695114968093993159614935413339218252580358611495892452843215354195096631201649356823352717319637531794593981736011665087944666402645815594529328259685401180213790243295510090558444717714338860328552556764786933455886622774962893331864614378269592108611764551548241255135915300088840171661520665872092822036786802591338778877403734302922229175328622044044661185545067365837314576449297591519421147693917900419380471001274270849021365664190717425306861247064774638869269896095645043767213612097474042263244269756702364227208606054417320153023991219708793293577415445368712530903890403555187037835063118922739041047041793412341482717309354353738526330671175340009041605183436879148023474213094529877861956649100365685333376487259276418916292179658456335529355176166562064691080572133262790107434756720033716265093624378904149848009145006529508561169479876183212695492918903626863993476376332113727635350405443218236545976365485328148264919598758334070842785773942386485495196679420426615279138235423497901366774944257664235826820592073418223969539405138579199301002795920832324403749346570763616003328381291408717106734046907683852185365475335332840548112477047426702681810652338662477391074394351559902718725936999645942886172562821075561905785498171259634214377658056470817071207596968048058590314597723403806084396314575092840553594861376989282754561949935065970412759093362171874095959275473631193252957793374270121441142099517795603153240081927825384548636299159247917858043139441176686460054544519202277454143340619094711048189537294610638734365756608820601171656733197488405169419974775124237045576359317304001919553039608926862406385369594903530519406995153037090965400301101785062543612640188153951535241968625110247499829899624428028517589220987076649851340430638279120011759598863472234485158012810264542023445118725514548013859706781240216756646963437667108702524580837969793523290142385187403424983729946408633517853157929180177883630002174389224446928144573876023408632641927504695576819264480121708944831895970978495329049960151008433105963897478146453801466670469141411982701198038334824479504042488247212884584515754677610305746982131052346698196309741358919495299856475240528313939877307913466668363055827653065800992617277284626393697951779449955131819382253528808363860790342271240824275367102196181736509954676925564360489613417648319367529435615347255494967428041497760990884609707770461680744170139425813208865598324324632365698400092077004894641828112976278088998073238669272586134976616474459513837405598729180130315309770328043284301210266125415761390873217452049557673092358123026256424173370337899971232919817849158146185332276997734277515369407296603851786506113631840757178525888088003392407520631402033375997401002483069230398412184438486374109727356255557304341987186371600849664321631510950864770874133754913126693554073362974232898854996234440220038583839597691159015389229167823053396125572839795699619683215354341353893126625554917180406863993241043352257183811474800849787913647911564799885081459068368884939759179083807803225566649855420305952920667043445564714483563130574097385074734819465404896748033728762130182260648589872059180352382247167805878837453412641213683779510128326278846863118983413027358252563411972228560344311457968720964537182399463558794380973918065613515473532093413972851279350783947465639748788710593096535515465092600250081335229772210652483234558894806778718445634881531137998475500116536081015457004111050260415782766935849946640341442880718835343554451163457512096981376849148935122565338163821543434770541889449962731471130914647424522491407434357658157683022145030561003643929056565788727633995404225636856424759876936562305690263770981372686072947401251306543507149391406936659754622087422572265751810797765439060827709825687924335312605314891362595760714303543211510608430225609866351563623654784205176620182284624963460292705971186156175390282473373864376885970362492114300751569222590335539887617320738246094542223958834841638741041662342720279227327134339619788283284838842231103980268036687373242690981030463554984593920882485030561778989755652294571270203970719766726265934710522739763071496662811905017215063625376954650726679323393006847191400107140769011545937954517167128811981790611295352996940319101629145634489528542119926338302538386944535069559121274431486436413128376168238913156901439545356788207487344227539481685842280879031672129643503246593908710907420087859819112452532961610362819473125354707553671572631476363560359328572065827220571958569637759123756007236222034639903811229376601876279715724073451157753647170508789006990342621199603104593870597871125749871511871546353339665202066756589352372867040754920635290512986363968128087765374444299506758273075829824865960094032638969425995467537615203989239622630913194984026768464941107062176619225910956834747636146159932803598007898777974174102268704458006143540676267046814889088052160219610649528533080983840797602607698885810014109376459879733001719626642489263998227922101226248337328806798475821821962862516444111423047511468383283986540644873972725345436286589131649641745440008043935584111497726357613456048695460541764850568525947689197123639727411055895741961794630844205097064094170519835721545067533183049851412707032595890429880790734703032305677408691862114917252177659376908559917351968365179185785432717652803012688551032934621401936208059345031251520009560108642822710234594074450841619879182466459738268656357654316101498711451880926590354290665946406419226586530158057009525643413210951796589861839442484664382133154138029150499963746719048378520796859592109455720874982109077055661707773026383015140121184988371754096491047102082052603114041973331546022881415616169760274443624485487073265857474567634355995214805147851335128001602756311717575855599438766658991395603997601196435129922831391863925788948048378699202324168242265071475376735409073382887543986035315738776141989180678769889562453852474206755915261462870072109224857386210844076676660660521923012114488851645203767494706926045503757538315048369023233507039880426351123914656902688841086860187260998400148516465949014617412652270665964616860274362083510427969327007222705725339129992387197959371406897079837855382542084708457092584128487822299936732143918491929015865194302338873597857801637787991873881471910241683431112430945004036040131329871941276643969790458734334742282980193254726852003345470941466426082669689236653305874408197459127306939972863130958460417021556373560054231844841552427123641932511152341797936409860310195517278228755929540077451420668592200277840108864606919128824711348028039816705379669457162220745564540892240940975402532851180483855179594715363042074966506208309676207876878733834646671937259710136252173362779172396814372955101466852581854682809078009496483137418826185001839254756562552992959499866636697519983397632129920908370731096339907724361069767336795022641323112860771185255228338831837479598017560066493212071792074839684785057005550234326545522377919464222003948414443593987679532084194883226978097278429971713275854503726730783023281822010700691787103742196436586700950597153038258685203108831079778820748628491813864492073440539625609149685555748805798573795580542772929968917634708441281517314634529883675390862024529365653363307537258884730064407029711223357922873623209529140565928600493579154049857949240230561116357245832053238600883862903081797948596237296531355217060536913007598430146639160498562398797223007792455410656849856471706292335600824755021036296360896298332359050153967094413563666413922610353541704384836659977464158739006401164542389367255096732003531249116818391500658461600005452453138905812109259678208188051432415688667350026708536127101324384951012792912883783696445292541144056587514328766005274162064012844271838331729623706783707765599613091719928796061839858932048635324224340768957829931317485891652795284149079963569032426056263386167463406495786742808384413739055192070312998711504566133220751931965096965185687189191913498964371050360017266501431218207211833059147581669009418951663546501415038736369948775339738849453973087129856465011028978634048064986958025977420897229482132556296299942455478031230577408176819993362959322680986895965788638159547498806907806840399829905964587616358541777875239567645407367616193377860823990021270595739818230539038261426595514591184345882994545121648092698157786533224027681099874137206666912008526895171256178640197583733051572547169692408983644015146610159011303306275490636349998387560244635656531397928853441266575734596608488382809467151045453629709232316981907721876389393698028598653703737190981494545547879421255481834161652927880408863973031307574289988982150729584352212309625241521422168058118600578530448392134857446003089575810065101513354152382691668925384212828815315274652984132244529559273353329310635395872642056698535287470964767933140954522583922813048894494580549833482948107854076027578027179304026566331442791931951225151288732689501760740218073333400616544224036206602218864890945387183715511531304411327905773626316151351696863331375301804125654767824983687798053118451400369785348250723881761972958052300057944854045827421039330051464976828956131328221841411461047763866538448044207775604370563249007189807849399649141793627477600004269434833294735788592034753919853869198238995258623650935046779516037124739981845752730747846658336316274511381165073683486684577717392977866093425780159281840520439713215533520454603063260999439989559818662811461818196883241732299172697771684841190723837689077211125057531267188349669671053960991019460292052138184696893192294273445976900793333299415467403477728864302989263056204044497481818146696002527984894642126175510563485190810623758843282038572214678396075249156399797323384895964981591854455684217081333840513034588763737843363737934344166968376675898541400370232961659096679720177454686989842085612988684550549140263126430290993727856213952072748713241986054205156973283920290303068300957649993289713065756685606886097945889471399426577826781662350808835440097897728998226737093475778621005832808871056572053826355413968554927577883993227161215325273254434240308796654697966722187358256445363407861680592308895090750726950253142979246958318585162390123716821160801488330696374984276450383056467520736064517807255449566352758842404439520656627584335210259871246248908654716324186567601352466342966864942868751973122280345811901967893779412021001115796560473606816713752094728216629392173511643780736507184407858296184482247954705555875921080654531900797801987969445922753989570821495344494853696388618252428530393359191377614627847208963015406307163352328288476090649974931519956380318018433817625828405149451404535263853055860302487915747950478209282604205278523146442850759404686444479832051798260961871124722298511975106549398594802969138595420800174803577992802835926130496459396392777357205087026740600624479386950196548695761443343113700388980288617687055962162109700209404749472058374406903685894419598960304058479727923950206489027194505200137536405864296505173726060603432861143244823044577868621198283301410960891727894075486046137660859007116450909753916084183157737552611910146454685412958323647330486498586052823918447976975457746219399080829859840762492345068850970444224181718635433233030219559023747626544072750477035414440116562186048639695181107206053553466352678490830252832453698990065796331927906561169522672141233772500349935048367787516588626936475857347660809488076274597853405680478637938864696018560007913532252844120863531882610212905467837055910341500952205234888373849736565033857839761527905518952624507783717105237503058452541376210957995385016474791762332163270208575727155264304004481288658381785758019651447108506125817970826785655515341046444886120813533328173882241047239423611938997633893714752124453401513930887489785197985418236363321357239781973832507373513818472949484714941507504860768987357588910560439530681234520390771203704696927240922783068234368516902920385409202247804907338410250715314624255802205755644608707468597223381789685969409900972995179673779943260222190587948961112073130647593834676074226529650608036188343159989045841862490939699419216321246608838286406629006378794697874406290367682841571301731174747876036988741803125911214407839114752301753650089768123057636449044413767409638331861342731806763871466555867379086293647141486396004333934106737859440067037958479465473209280244038993301090917956606864573526216158530883017279893298481460874206900963466706149379664743471868659100185622991801399064163051531987010387954684457184683390701661955127662738586787153808715538408738441029512320090899228388529174229756543818117775991487096702641251727115592565614829833086340139368520444933658210297689497367627119609001538599314916307498020358315181801919783873507178099748198035685985995601102829482194126781344743061979057307690381748381691147993001941738578003716977999049485224637012401926985617281683408157064320895629353674352969784260003914135343253208560093166134123685534442965664188541420556849563869144163001189969176269917556756478024452541892339079481092653968981931925983931189852467902918027073121795426637641003089873172651261584579330523510775529006570775628229420169112755617350512343960361422648027602742637977018353293257548738643590140445691982790516428677076806397694889928016144020283735082678143384175893161825257814594483582136790003637128234929051596676954949298109042222061220338900405742948766754236829816059938978511426672097660992154137026350047539216515946718266339693407923926427164348648138194201869682915667082989666144031259720869515642475584505806181621424750667586834656932869005346404053511347919729196408451665389243752051805754471897425661228634722881585809452975654816380234811546837267781978529318232150593606715332228332001110809413342672180091355971850932190929844391440684625866976521284422835524884491830915252309719136700255943081286498014050649463874889309602869537871929380954057753854024520888527765885993629119468897298397418922766499693623025949023343036702086580548333504649797587651466181630969246095447097649903166557554693886586564718772594423095934925294672554699669985753646253703716055876201635358056806150333141070691715079025550828722112924721390812699571543661997789622426930988234597122946578856781926537838398154787346623306335204738363667309104569594545425931585350738366878635014327133531837476537079011552165310526684233373584802951737166769627173568128441318796472445818813863097928565035897408336864317528740896569580761907390582354628629257467477265590758441315240002453590580620776614635532197286607699549700969745266834225093435448197402166236146645514336389858418340952743105096234927930289492986332845158326408103852257394403220923136649830439161983352197897087641775830109788166700632829234670128831878702643860578867261886571523109784574863920236760846196970575960706452006694016812963356387304280380344544027757443106797589012507159967761984193378832332230280257884135829677421006344110208217405081671379137648425004592187604789830004711411172525981256307102498742105681774978645751638630544203784729212779793684848055531291912714326851810047995757032568954037178292175113999920975658870691025524801248888304885951463515388375087423478147620020136629686189332025345564026441051023895110022126593750772872024170511638825450192065072058449904767741448827049196763515266156554500017059489929989808111276659401965178997799765846247536968087346453124505416845060633995465115436919988307519244183225967183147736241422419152117628870424078439612866201726418091825627650635531375231145351464759402882603890253814655239139196497963100546874803764390503879806326611589474346475337919203043111406378345519810964245939501557904952064760210562199603230687494281244385076741166379735073139131052902346454121720426223181527476154040984622374557422518603405851056049474577384355307988585606974681712124362103394078669577396782452590569969726286708377633511462654219037980614842796208142440610901591680756284037909330082951634168962311529386041943570644363931337663585067911466692533580279051461058505321010709496138684048577927027053130865298619434423551413940830672537079998248572931106527063997880449507241274752746817128066968044366419229476214779097114311308855585427425461262268801820630516695353686690077970551607060945407574581615029557511780603632549718064584236109356650659186486860949167570767670128843117614752165867620713474665512500952666269012419715610261249920205329456430626850874633069213573606880381293274579838892187983303494393443052419899479643834230090622388820193824608561012571769842585527091219414698667138132659435938737305301707902885637742979969599226952065377282448835164521329612976998328599085741827275535018160298561497390662214057296834582966729626172822382116796092058473604451881563576547779516282209992244811465341310025855836894876691402936599581234908448768252583178712846044452924290684626841508040175702689778623029041556713368819156255616231158410567662258422466094314952509393465567278685276082077597375895142822868203577890413610885709032507894316291357247470032563709322806420755188584962819544035973853202685380698251949057661903445484282514176111124661189715520252098682585511950249539573189220081119503920538341675630048058030083522350073544577191940575664196332835071307081856740901751738966787742595323765357451456421450644759127846450644035263773269969478424414956689808389951549682855994641691616634294459096943857419989507454216989465139003462850570929198334879322907927383413481727703799414510157282769800184318091075320931277768939413660518487775898357390039881686207199349979281453130401241034456971949026247154124572989278011264148344288345984891572349354431912924059486612538615112402232453957099891068455735116906878364522457449473097994695613406264501023379010873949552365337462784961945329404859634919832123690122873069518605112225277338750852037752744735888339129168002900504617523573548761121750500351843089116120900963676546517791890773455829971529306176575791399946491092422139160862488233093906158158236165285123885111317203499067531071860945249519867517752209075719503702238041180265392087772798247093593215606138260875324413210053151938696651643943947175040042632310638185149430184978284243578509511614749940885205668579180859987644880441498856375132462294812650482920665208453740157911966224653659734288572458091162047845859740800584716579540240946904977782373297606719625530015005920183168846397050979348384766499536692667031651877311691044416502543162119161587627950329643673091004958169822320473075837356037168324891421547223981563855638361908444964014591724159034965607886977670901168259450676612017043747900375602618042799570398252739533595593917868364852438013299393909650667672185390343379049506258597552340478332243801947818641745492463261884891024613722459662409249923071191631738368692757332348325965319461976699698966300801997839292028767319058545803621522969075508875403979608719647488175679184135528993003746504357411881362688950561147649503606534492746530517478730339290505099465470643391704754864266627809632435116760494135783937919034722098896990363357782249924547696448729180716687613089279178417647036097472846094870753835070669752556582977548916326056896303242499762880298739286788758628850733407221746002315358841486660324530116285471150573256063237664359231117212996484757504331994453142505284366547662004585344721109430085704595254858729120059019150881680986159763333722909406807422258101516160543637135718278452592174509299259362666262108411094520768576869722992228393623091417618947486774574677532959388655152910436838460382810452682198627298288003179317481232262778951606276062429401449209620033352423757760971158551175564214653822371050348642678587787871821824361838003584222582923521228113747590787030820631628561675681481603102506141768619004210032738361788052646135292575170795940699516276514490907754388042277276469232149073582482143199034474198244110731882037528616763378093196060737702253139226732467070202257435210838043834606689305032779931680311994201679787560660596906623002259341659705274309492041149282845852560607246792050896778343288669502642764394240888754670994414029494931267534238678604622659292436477792874072982791297125472749168738848998908030296690408730075595758534703909163511860166530461188886486525286702156377291756821493192926190623055935845388591466060619004594592993205045272432132686138239601788573182786430804763182188003739305883136299827152677633991573469646790659358350184507016656841697372880003389447758840949045630947171868677236258587880673918125402162636409492617721355293099537666959522048673564858367481467283578367294267194786696288833078029894045270645325850053540010836892198227976433982188359608567357480892766737907850439621092024124278735756060652966351955218961023692128582569935353617417682201620474544745976963039995112594995506916892921308104229897487476882161618438546981622148013808342005493854194409368660113010797262097684177150863113162288837548011210968469623600960641097336966625043670887376941125558856251225890446648760591373490962044456053265324908561376218274011401865691484198875500146563321933606382610049377202070886430861197635274698453124161222709289147877357414426059946219315496545030989420467702499234306212272481599102572194986219140412041515418417601975243296574790567472565094073948113643290633089380945142647448203887532596276247205162337373410336787657500295229312540548917276463922877808604155983733044649288771168814424645682754247196253895860951936429519832892952402801711007416904176121276457968841003125851520396155139026230072379050590398718420807695949479938301293991169783024714272328440726613971528404081295209439737120162547478981780566434302362037899434733457073244945125083825635995644745257800375182556480795720768602622816595566185248391474763577359195749972813529681306662754223244388279293954396430571853757959887402594573492085426825620891796638674077800970937455072005485260478015113975230083163937607137220536946947235996423139107507435341829478905174188160485778344849441526178995960067690538232821761266602159151452688668754291646284256197156086759357549463995827358517492508365152610402533317517907523044543328319408477151794120541004664339882687359485383189919233396027870607797974581891257305239518944350475012572188499350335243122822718336761384675697238150423700424030542174247786117631784193603215368905254677687720204503950557607613154752379040541703780108211384737308047068715039382244032934298435639932857199755167687580520379221382327263008440003985156502829611048853997085958118488849284212294227196924545353010785805245164400472672513051500607318747733135255338193024676740575008093139035752394385863373290964525776598353406073284697595811663085599395858655969692886192034099627035027093989332256026092296298158958607172867065390562027587808155661065678576932631956255248714535376263942127134582450981133716299405139232193324462222536114250071949272578725877816422580690799985824302231558426742206646210321533200341748629084025326110253247166508528585983800565804491174107897474974074454322554339662012785204473486534716175697978545999871634004799210017862610070775525051654131591963761332861721209985376591120030464890037144531335011436873353497939224509574656469873458604915305464879231818535053473741979769244178013232587485274210619871891829592860678518078883950547177570639786021389997565240706792563463494547449790079876353639339665237192615800952246853131675515808259432231751697814497605934904052491467245426504314559958211079847083431954486801330662466207731324106960933650830726926627277174824022519253704494463661825303847279967391447307185198290840550996787528378744788265876757196684682501077523683704432309338071648328572490932219193638217220017375729302395757761337191985065945911533021875977325442108606252870354375876799104950381780646793326252855824630547868470204471520659995386886716722611054680994510186895144223353006342970955336986026951702505852882442492867045327071606076754328690606365143438611502035088520217637059562238134647940965019800453545740562884764794168441045799278790404194643997522024194708065447158598865691749911240208821746218911701133299512138630765702341045269009364322996921417898203926424379464539870729473227319299950933249395251429918256632909798894408885842905581858253201344092059890616001063730217290206664201803525324626570076755480575495259236837816773338878834616893566147772251089520039050672071881657443359081993782729503347977533851589172047247785781295627998614404629935427387381765481417888425172448941985543175460407516222463243377921185743290061754201879490455044105385633022176263953620855746602378260786627486335814286975141334933076310785926290964676169847556633429533058548921541420657752665624086157497145078900372646206697481067292782837192416563293951676259296842785170198329977314915649687996883669331764843119199759067682967767781773110704508625415546554101356176763142955877041521554207777374185917326109887262015485731897197739717592725606913379029780092912481499257516477310336845439434618750926957640803751289573573407354158836937900830546358048623843391300022545818114763262347282362783262371619586039310985177295716376630017593862322153570341043685654762374656784379652483705339467420155017847162718141095045981147692627616649363298731079550266184205865305963813425470058475768009398412285772237889526508484641815503758795391192785169228112574602098620202140344852930880618253172253989988546354978627122749237448685972156322763886983891213628539672314461146630075320621439762643484922124264678050267715368906539932054586393823745328778335931483407165753071244455373309196623147872205019327232108821631550440715313574385928399432423799197129228787521301969216762409286964851234699729414489944153728327631640862527623070960509726829440616572055019652427595403985857495402220744553701863479398976821888388142991693005120704715920198339582566019270403035009006174323748623243602045146729115010186641072028391018592065770532794498607943031020337511751053821792433243126947420098439419153810723351539955417366902313164267580456687036295417348995960068186586539367762939891088175983169743371064124251002025530638495015116092477034217917687512914766699255697928455110808984115577250531957582679765953304038341192825076338175791562773977853222523775394542149936732773227548235066923488399161905555315951361688323094309059378414031423334416441268393523658874447363409335370198467283740900303101692056056837616647622823981340841246196725885455702412408470889241303345773361857404219226844887632424012177680241328225595609399856823049089644781445840828053188034842566145667958402735459041002590648962238752419268633963431151133443551071740061482605594414943657246110043739553421803849993362739485005091807642468445224460735019657443055215697166805998127901444530754787149255827789336315034947108073299728767928244664354250615213808287799489694427941070148902406232417678304539443619304955953573622648132860992475300741198753274886774450485458076042040936677456644284867877604577173919137726068408610667255507343066007205678984984743994080862082919435187093768258681111407657706475898940805546475902484227822109558746234751528462779416332094607960251584812605688107809273562451026954569341826899048430408334417486270393757197458613455704692045974953616493847724852545397424013362894912787752673667436046517944176252246343169931261128668861685641332139575898256047130203950058676644678816967064872743703351594354910405642430066408542394257433816847594910205309315744181930534062061883125275958808463043112728498071979885359655492103849383956052074138030880832309535691424178598760545431634840295133942041776507981140117230926446708610957592000415031930826763201716151958314996170124759235442016001398165220809827673320362419185212577505427439908315749159018836621913092089258758046456657421429778032671350114713283384160734850585668289184246277367280893141979422533351548555685709273659020343361443462005078281846126266812520320000184234769654198981056232568415795081738745593582017235634542164208573248786215060206871955418368662148070658424701044828460748256125889730961541285652507418628782681565062682612084985373878063448399636482762670122166560400791293304086627680615688102015550166061720550517613222541780304962455052705701223945575871755781978445361944883543571922351751083958335567705922580317776179536400387766442025600361387903795895613215345553255685400779351031680561452279575584805984184492029132225195916443940596762217336940236545742604203600917463486471889962748734675980301494893436487969063658121066575220600601246164434270510983642253050070331921574211082501626744897631938395816432626420081412312775433163627292306594436769482995819935231546973785342214583021653626202299188909771309050457162070694075208503638685736458386793596227337920405341223699742452658269876896998348962025740699828662149525888688107527685519917655026748885497028752097605561760930279177292243261907774175517963659077124341138696768400508730820029436747076387609935317614965726286188280199440542618836511107103945320241523296561741154149066605740982811485343545848223960510396622817337687739128661745574357542811283028576863039920761619999549943186387713349909433580027143869865365377171628132103191411907071460633865754527100478213080977023448716849351249573114585004980025380401317575988052466673017607470171794793638243625633701413689317731417717338560137455913798997203885325903702363988802458211611171594918620003011151471456604829799038692643787270651009519581763070156258228424622919185467410757467983158791327171404830061661586285124948522734229545427655202976482506529377125180871395202801202052989856233115631507074553939184419990733605473431200019507103246083587286473462706712244605543513393788429762976119053928430401113344928786925418257474193999836850856726146434025941961346492482708193761413941191327125373529127809592190014682711259107136406255945964579286832325022666192861739741450868271835071723943790595114833719689796513889397678330991139476169918259926747363196833165413163437478695495078621080516323286797261381113209463212928438688945775883014093144123413324891430033628550711818695673012490553953741379605306002551264685215799281715377952277792805745775793376344229124536828441297108281463097420058816184596832105131346825214372455697220855280027908079888642681821644109120765683339266544876528859651368642535913028868046174483819308114897164817657517396035895312104183095538942389302789712715060360910448171670301708811504253371318776280108707704611166952258065267101790638165743564831468526675022816280273326010385805653458834793890494962718800054598796277111603927272913257752186310860801150147652981476404450010130199967200057542629089446845002162868275742083578500871395195312734716444635753045584499363813397429580980937166262584157184496755543145776471262221567588723639808591156152398235793727125069709710517329733376477837043512135627916185787511679981229603974319950841067241226599417144812679605280584290561535763059147652745774182865950863611930784281511455807272023693238465917454877191460479270580631397413272146193098290283661595416415061748354627603223783506917432772760618815574324136859138416822482567556998870274730806161791414631761162577866863756001781492148126262955819819411433277718908631125480029042620519317618830994283372714002264714075203838810918574513267060470220547381178387395101075406839025209439869659914346038713379283390515757570005174472266815953292631349762872317308235331352703512424293513982433437431526885666602456507660155729919541496311826015796526470577257611902674160444368289895512287215797222468035997241421999222525847911176106055237172962711202548765144934708626252331466565160819840411222391483152719714666678580617516333254993629568294957210274712105910514376210249626759009423557364731415547353527465286114127824452424051627562482386612257792143354806529725408632614304870351187278886681962090822184560622701627855256155206969936120260762015779671009533717074367700561654001489497672032926625093019144268713159501750509037861164622377364773518868619395003432370169373447307564663137007986165481360438579731763403837379182633620705055106361180541861244249189777421025938639477925916203838097280756793326884534974667551584873217038914795754290516558763160348189048143662042535284427003096333988525338225919719414125867806421500389041565624603129502278719220256394772396252979657670438893218967471917979663905239356338494424073086509338261216981551857364986030124215371560224721699798956758989448417585520382568751489248282189223935861023998528534088506712868536950878830932744364652593885308623916683283007994897600709076522166017408135089609825912628099555782788520359682958026838186828191724096962841109780437034144306957369440529553947420341923086056222640444768404252138737905924234749447883635344258285650378773371876841435025105284506431431328554928086543308322933852428861786269592758103844023862114398267835181094246224999774002810399795609060801041474422538383669215777185816223527365948862436115544612224315180827578746616979123795051280795386537712735450606856357120775470181707426730788667647191509653354630642939018106940812184202741202407808321163348422853792194445522840971049217269130651709811311201520954801202643838731271212635873022495522156878638648476521852800748163182769489588075322014055228805014606892203409608929430948022127454406011090497500966872321683805040801329337294312385744365021689881280701754537796050371600853838280341461342302472035261246582346042716510573884686324138242703309225123528811246873543673231094421776398881319256765298305324029493680910828358622348664134785886897923862825892182196373220391636614869675576540188798320685986927091674794377119002341759334555060408122667913553089182681060181969853000057018695044969050099975815607387744625718933886152411480878220352978575148738053651572132142235974602170841808986968511399443554171923502544101208230961963765402256929413623213314019510573256284704032557680475500152817879552639900992105232055968177795907340610204466250546148118976240841609979229983276983160313577945584216888647135682657429512328012509037263847159483901111935895308571351821689384011078804302384303373450035728946086364036229142151587945061721081579094981531214201488751816989206792828222078810267004820500976011147195622357440207150758376337710740046805765151108971615275446459774624499769788360455266290715481635201863514807720062479959192048965821162636152865547056951745843209829226473537385686262715742586386229516501073718415304195157645738427404531047905354129623052340602780684635768691589235120364657568858029807065808992744936311302560402833088872918847202270580060101904519391202472621918826319233889738079395789269021813361623592767261061604874627597445190044316023076788030877851125524989477353737962028507916025561438977552414886051352886728879643127402425129248857999159830001550755305145638600750828279613462120525308019655335907737383698837605268198403176046312884778334060240042916370577370377598670831735676347203512018983947949400956130462017329123589914953722256038270330024396727641624824911669214987535720522544127695575022253972084607187970962643318271976852273639957804967607634543357656851044072973275418662810694106841378577405118366498926909159271682677951156521943957005630041126282664732583959131306290615149568761920325758980842412338710859549212544635152740321894125912211918802109534995016807586166225976202594291160310865664879621345209706189288228468566500226222037512827949096713612686784955490918057469043935962548261026607298092905305403320006334329712364526320500371733559861824347452062914909262388785997350487675936969484187836953071162538095892754312488904169045470768640952167294320773741951268585983777828809507936215355643614343571058876450708822513356449450630496110454145829913790681270753446931159026186715481164114850299795796771066752787316230512913006681664717967655952209853143548195868587758743445074626128340455331509220427921279915327634285319576091371063728604080013806015807572161682533804207787174255275048408804936529767057134204816089679996458466744910605519905820902759817708744610223991165688094777315927463090184743754171350951264092822888142832823002590160081985667281040677906785148754504568743679406668397364734194727178552523704645777792946157594312119830924333056663655490652364211038368778271456771760350729625332122492810468279407857817740977349605661942769982346860940066722767094619905371076147031740876703614322865900580957667914222663166013333109116824601370788233696910033383548640426389309039489185218735615435168477314521298504921316997679414309159922793631286132482440234472270977971527945975916158418076430656841309920111595249382967589948148003123448723330076510110844042496319413916531023740826769449333381660196013501708747154134748886095318944633307115251437054558993247516245521911449233965264264737813848780059091470096308549579113708649688033346402849861302573268687310071923523992996714578555865393769018489015514999975712168921072744650310427969317254180743967117949016468356105837255920327796774838152727518309895760093348859232182931141565794057105982364959541547385950092620361714046924859168849718927032307503840200982355219302185373570708398032029295796682980366935282717688303589020691029275606377523402310812971173262997036607067547614774120628026831699853844547456475539798923057296121608137862655710602031743740548028600055453090762873978265191308461573932186694921811867972743211246923701074517576821769066633794221035572193457623989712770957875950875839741848209171860231445284283957380249707817747233180924698856259137437405650364615085405867842096679942031925674434361873968263143882785603118079162623976048757611414290553631463856043145443776046708696358965361084338067453671507730562357437064025629954536549718879549615641381533886444253641494290112076752517676058401874763134238714547208917464791697461765787281604155800816627407830893526864323429202821041798303793053427475650827305749307057735431065688219009917070066698238211297400156022623694988141980816191558990159174391600914759947800409914714040714399318944065789040853211180306952285685191076640667064486531199354294842919603650838653367011184606494679312030255896002414297744193555429459864789828805113802190869634239747799901960249159524575561317056164728972212922969336363447442473982742787458280921801093006514010791093030109554100759989610595688306148302672719146328323895753816248908562385432878148897303490004533477619768307405918943262308628347715744413958120080902632547773064917399585189316540332148690471811186966435713758562484137576527034604754900928526759742254137099118459735790015461265671931454183208601380895588083839870944313340625234388727468208110718915349394079061911368881768113727947657563392313415821450240960788731081623670498296294979676472088370842629593066765226069980540795276384070303132436968466619337207044789543721959517429790752462715423700960813331192751898538547544405306981844245614275299855227226749121944739220914121940123031853099966180271620781270179335307297079772505479401970241685436316388636010080793121168726395555999784349367433446546663696472133773081787529798885867091315044418864397399222600124618126019796290970221512975002735963502121031492673493923238650130465944333589635272578733092674186878354377621909475288693209982130110822065979082959185600778576879388429853417749800253261910916822215972304329478410899013076149682813586131898933553533752100064664136308478363516789621147180695901618069658737751395793557433076034847037835829775601107814637945203321659032515226042037988777677008496517156952020355692088954906659355247989076604058259519047661954892789867839735470488718114322595493156150140450543081975766380725764912237152752811099750970170849829860768148043067995529991558612343779079026049411223022654441399696664199942397212131233871045512588940248605214440671166327851767588756483069005712256967513642620006221425481017575375969860296554605312788483717469320916514075691621773693791606059336636520412036450416258758341149024255325539275292187792051980715436399057217986476493016649763140850805941809150747918619010166446952856703635658637318528717141838223059918787005826918715140965098278144359802409162726918277648347147906261206259995666771825729154032214736794952028570188433563329239660809261268545873781531254672260528569826711763371331350109414244176941973088050992944957777367727997458395850955202140676717850155287385921643122958814205983957991204369472310632996859875848299794841702408705721243389350486749099976642812622217158175071169539698002291537115172961177667595140294211477388036588665967713835848485295482674778938158949978306330150665955594519657305933634459752749467382920403218217333844266375208584609356573371086797365521637767381641980351588734739978781370372710773497285488225825614412872324643938402689468233399209705822423445153401303139261249036639322488291164305892020827605860656435108477869270522885140237610679051089195755971120622072717750122886522085692170412250460930534880643104669357787732908799374533041934704285347371296681691492229070054451703796263877220672096626240314869102346836793901429692105997151125208312886873178618169833482209593583199630197190364704525852898537021418066747526694546289617262443469015450419238040840699005920197660228214737389988515253198807611513282568940491754471974152741787175765995861521900497284983308454005258139909744742469508045400451300052507941769141464701253525082439184599214361719903207952096147003386728763072902121207324300405049724030572853520638480450522882437218063287077230091220105518939267253247774407569587969887153480550649705758963052732476544014159340961153816722787382827877802340478962414021510908699653778888540428591809593155019145193292205938485610392840624779275609923135026017100316376323553199568793755708171194705100057583193280736914635097075265073426257552132218433228754567643059115254417467564831582960842434782149589097602567426525525390183147980909393987303991959086728496852053909748936221266797541228576260402096855239533635236171104620117072269834879044888990030900607851234470177705685735862963268641622277744778142982173389576598899492029381850956710789067988068978923830270310275656202758684413428044261630257820290259792130724864583673494390794499162567971506174404658863643625078803013128651509578831682410630240218093713375896798726274255211139987174881215212087380695110392147563636680591611235345616228311355086824379432891700485387848191818986797676648235340010076085538746018534265170752926780707846579447675039536152269698023688732501628599621735041838959700362164236758867746323482057173560384089916691013259619470833994721993528064273655068438071652008742025371646942030965477662728923314933907005733952221910838111919612642231626296031731530133041382252036011028277751547598845973254521680799538571766938480675005326547270040547458691754398799521018899987875365172164581761229242223484587033876446439416463997686833832043687777002307439127502184692250258033626416896865643421897051713889591518858663909029901828040826277885697116648838657702660439287866912149258071061837412282924423029462794486515800176212250231669528531188300513674122523000086611491135551897888517875866738427989659901250690274326806432325795559109136753264604017175362578564243553886525549517570805768772695761080077131183499498415390506346403558965518552631013283139933740201034281842433908098799202445695460403073990461226741324262003297642439796777335327780739425288510407958680107279239566927816214039709174416466568971690704258218584689103856761292773550235773844247289573908821865178643268412669166386411926623301757881409119010237743327025528280964681553539486943928766253490243584671460336089713232745804331363858611828760592139082610458373524048572426838544113403818398334224658168233419996496381755573053372717566465130549165673041213908146655105125645158454192377889906023959860273416797396614827161829656272053696047691101853373992166831588717846125728838199230250129451510523236990012987111227000930936082827727777066680108050076514740953386685146827042499566289570025313717003138959655238504090285599104563105765152413728661345116388206464522770508563146239951109142260302618343485042377763286324269027561999166526496707632646212191341354247764290193098004600007870558190773746731629516544783937664917379753635705388956080362746049793317776541489073687423625307100136993856542438170097710911687688584902338781172835305333378036919566658980761562858136491044540868955074094694718609972372762996304463318951559052029577399460337636076292879539870370312638735370996193653784910188979698013613802834975243834391872743898961704164133039221521350398058722328700230334860904782212325040869114113744771056121189047324376374607093737225413194383982019538836271139332439343544318475698010174095662206662574340574369578183961059097279717908161539107580699961716463216514934412271286904519990683750865486036226110740542631252559089604850353046889123292371966275332265348409597743467442382000554371597010975233115242388585747160649684173446609648896917393015541707087648555187929801428946443043088903238252745398251669163320348415487560706531888977306958575396713849869502945937781082073321287039507353373770322819340219169881839852706974384233729738519802967474160114947107295844273124678014662000643158163317900371773011579676293153916328736013783232686813221229487617003130114682198539754580209559791547957887937616998192060773798213187441121370323138354473035647822104683743140752460289209091349110233114293923905642643424302157264692062622736744137852175033795090278775530998528120694582038131649757879434595913534985231438607569329170353751787460436111743830236608167859301948989499689850179892452598442256497009905606137023208310913668228899872960546954332520327374990026933185561509022647504366583289991085201500017337065360204179985172768096425085005899640661481344187964050117547763427197774066452741845077959029088358395933844671803177008140552268685711799337025131740040409055079643898597064382762589244609165763113180343230190975739980881228227269863309300170756445453489202570654936178175960046333351759123463633996298602919817985489258230569354938993418196540693974004571137432145655259582241703391828402537196299723046988493184957211955486291453809931329389041003601818253379268538695493994948242216723423560527363138751850822462346035839745617585523619563090638628979903499408872387848487604211988378647363625287114620385652097007024574065800522027390629297252910699426324282607295488346969421994569523292493755035605021409867655902159147795892245688046657292238213693497101088365316161645810879913219600981558639446311651846190254673338071945054633714369830424913273958642383082388072073932982742810648115462148942382312674631757595830925483609239951647637532021355870682916600226781299970003739817368591473500568946344857926987551605863200950673175223483029227741119843897570149900946199830578569537447876790122926003212186855955183098265306090300102998809158085867155619724266928716586219887815290365329009905569463851205049328250509718346091466710510640920837032035156351511095650206420227228932191841563727763926399483192340071200197353384936835685938957072708227777016383366085607714798567509121917651574732275688301220180536750107569120072924344786352022769322982153989969689779328468835571648111675275221783330880773034794232043664705848465621959307040074132018098002585239027755885633663758381355616302160003916141834793137788462044081372290476089421284837646277597270191255473914556305496993286766581743627116123113694707882900569205771941004349708068201244414594029367984863422061075066021204598790822583415533613095629774770716990318970882599375242801346443497698443934219838002659313356356594997147998520584180185203588889821184132221370275241143404738279348001877669989193876101727190858352112216981572222495454382994825497952429297479030274550860826763578804755722988351332488214581408107371567871940902506572308380222876120922427800857382363878424761121692604644895239938134882249723052418078231277160772045847832605930888910021790297951324345467935504159095088882948849754255741035980200390436096219856310197138270612505033534416456085394924979344745634933335525604039609104224818347943241438677297252953139765907719400834397058259558128472176866258899631122973390653326680460801671465410334541804908570645171965608092330175286810643588631771899507517264957867618448118581634393671278891536096943408858018556432567921317121159878697901906715588299774732238563130086073635874840287807215554264439666642751651076581168571303794029712636374175598175892613928450696867990641948627514834928225148634904078784229767526848447417407683616961345570951753849056287276995016804882528369801247840411853781808580805208420683450224020090046798900463375469347202288594433270822625901504457496373727827643326224568201204291495603238949987527000462810834504097822365428989334775870266505794871469754457833497561422082753339322247882167146548588025046865564675463452337097493622589674067288553276917706544771619026688369157359680145072761644175396880969266137484019500247680313099354571388362738125627427063276067449512166817488706403154595719055221984206587211451561574062628585082153375684679608554796129436952319881912100172355686902201501912703254403495190019409585125372340698998534719357131890770679569887357727737753176955032757286235505421362852574933203449552489965341733889367293900141873767775969276037325016326521209744320050200237196755821513972748085087846929253620518866226395828785637085343417308150887059545567505826857491041844292511706001638989441185589509325617079440742863004935900635501219116127472389717890560580578332814759714831585955903276611681673915620927922638851635725538273648242965049268483165201895097316539380775307273669018595399201739717672548589135001593459050414760103382304357941091769048539038379774712030675988076874418214811534529077290979408103090147571048006189167954116647986361697967627142821302197033802915965284168997696423568439014422370428346830767748087270520320076430900014909260543203626881400861621398864347052027791559862504860361156967404171815333438644368723635904840807769405544926594369008956174510644093940552758276339648302588997518745752592388955755737058058048352436675903928024682943541286394566640504239427756774548936137998535855486887199562043162749892621530889988755160087436304913665976396930522674604632147221682541762557219855031619439862752323191538862175614224302077167389347408672656042076721252604810288472086988708036490119291259520495795842247321781893664673770174996433650362418979500853225467807077844168853657581347981070179631087149286539983948581377419137837972322305831041720669232050899693136976678286243445364767318605490835878356939642808976793705622216961252877812784545264760779447946810005917333930985054126531225032049522735246074435556441314195600479360480602122970094419525430867709134466889689588201413917331176005857421873293353675501909675121209081566038114640206446360655427567317876564715597386893575000149008493076075310735840834340659767032697235190656037252518803987159628080951114879535878073871875407457669186389006260700037929342728164981896974505830497898424301620642478215568417640722173921968866475282303236570515436318175611957542760310910459649143832934750174711006519674965071263311223518698303152661808428756655408065031451119223592664505667324182458291786670995703345357213422704347684106924878210400047328485500897387820216677979155574830395626051319572791093025440689677458725371260100677714250205642575252326625313274594111352515016541503780540240882798668656421591651319310968695862752650244371965306962344269357445749180104812716184987854468717023797814562652909236458853496280921614972542830389287618229313082480904936799824073950372962195261685445103961979264523413301398792632970977994543895471761815853687530887509438043546277331671038179965022672243673606111702248629690819847668638791381155369999913904948963715221270386622919563862445535259773749296350752038851163339507746352970051349161597524276160865494921989688462304210241307571819637376380019010903718194751614332145194536155632609574942945186736768888153800297468148075213386076873858981503307925726737596852782971637070239961451924279259816377496066621045222936536301263191571452921752123337666195275115899714457885533278616401748313943257998119339554333152532253061143548987801727774491280104825116638302165265403524714925817051437082056051668034007242087103067036941558295426570888143209931249239894169339591653197423909750526351514638597091830110864489421542406267466373708378489998631073565063733786693951583425556932923254493579613909399931372122792398696745839216864277438230678755994449401775907561074925487860209614535127413861632335614035428663666354463098547145272347000361247462058383253421544131447468778381440787423073470189253602386281179335473055560647958844439521220280519154884844496725686064197085510417510992708629633530138108499089487926109347354994375519410162353061871313148575599172993862406727123856637178885098354914038287320515254339011817591435756245145168796619229167601891825437365776697987223451985661764470631952739578259392422820431409115611584450302069787232094319835804685945296319872116690142727741918631981237358999799138559925137539419444314364259512613502842543824387128466949744193092586664048438228510006226364971862131925644877786358921855148926686753800854971345068407030038993653961454765641175358145885259149258307967955415266976951338703199683792829460563991721296947550127648890157419913251953364019389584208615287873160829234810280966640600629447311532482957378327290538056817831306147850600338568622145750880502598682102753038323215014385362217282693938129475002916272509846103250529661672750446480265787549463318636960601353188273359718038088182229406886514886659236504358739331189353609303572923968774263291425734651841245575129431967336525970141250392558796665243229451267920270974259703337997211127665247113382092865601058006664840512134215747407308244112355316732964040839623275597257075647424678081941207534433867179914065475225596571777159004524792862909024454232956375159356674029799864537663101280208599887539740277427099155757635978175211222880907036786351183989121487671058086460857849350061420334217237792571045305901862515949313489109169434387736239419731860513253654070028848541486394239257540179846314328357179980445154280315981337552054766643770885257796326274857312746161565417216790112088741694529643772570243637795261958860296476872042788716075133022329023643226475456085808632681609981167962584025091620533236849359344083737123229704834108342932359587157103171749568985399263297401308432874595137343021687522559514075733730423997944990035280390078886273050910912642550480240056694765610344220313059154545368549067320801104299281875824216058651202267871884333314332999000508120349785255703179962993815935807627938157635670258273800916163053858567259293974434032406354415289746700049283577711286640006121513949420042314250664372384385847442145220889404691198244892850621604130929265396656191148410062775652408705501872757434280819784696889366847579205970831406994903024789238136028407910860674286409916927167352674706688013354057972790743485984121107746185428642198401091280730740418493029745984616284350339490030174872922039551982081259824457466311042834321590224786745731047636233847910804843483770913779154692805480295094708333702571195894545450796885340802608130435860301946703993905365904984027354259419827431722590461873085259107236395619616459058575713795103905660621668155691849184890714567084763736085278879123742516072729582835565273633142584554687778141168079291075454527348664986667818721334549076176581480116619822878596807851663978575804554962859543502656894843610390878682715306922192102266210879307157343539386499528135543471036478384398479651896199549796036716840309425157809788772420023586286104780378788816856959562798311171219411155363289417306024000597841462465270963368100464160243493924339007744738053739529309640442381421894610517251538388524548837923150418007411008702647065282005945907096298568836549283585236154901901310036779901041744101025166430864157506454884132383376971324730397241298023391076651619300837098230939586234087118840550867455969618695918680511635901933379248485772844068418209190836194729073435327387503788424291498258207959974331174491003514153770481590911823598528329800619718837838042819337509800344579554993716052918325437685942323815851531419230977396946765799026923093412566890913487376094480853178464782603165917173362941691261916902263777317532146631402233083758308564471766932437243144857142672023456770627295433381019334346488283625789060796528693168997410132432514057114312071929598247276004543586344251791113761121795782774667782690368003905335901742366969454200615261513030733446345732935548820542525563773982448146587037342430256729525725273911452920048514319109819403328418075959026390830919300073375340984518399907138176293847372549551447617486837815262235138330152889627195640901383057531777910764773288447429444858651174519410393880734524003477425567151206597363126537559448754474142417188049934325931758074393976855092975870558036476257152115435453251273720460826191980575275020288853178519355791801840500071973977458434845650250466117193003738597303509702571275296436741864848861474223923269725820149314897873131088729258397441337354575219746439419752058973065654313312877461828490341682506723104555569684544204830043686052536955833857238350654331710208846690629245463160975917802953251181965584214067218325279312485268651579568297449053985880923785943688847918087556726767248281920087721722770731076914641438496633026475978759186978064007640223095779132805396951748945161392077624147589053565465730803826760000590290831144823324480481285044843272626768012221847479569751181528803003707279378755362482577698575409530603319744954404666265885001739974521548111132623466766620324724802940536679508206654009000579772142325191236815938489147884791743174946645785557351530703237026337737340833938288874685445005727785619477112538464869150956072720561845138309264950917936037799342836865708950284190368067714506779223389444905414493430554075159216215986662061609061137715994300772748926160307396064962998966823874985381526998678048413005786112662834421323345207469592551742880061264858997944307221491648794790346429408582241395708828541110276909176049891465417202655015999770375030311000079273327614495245884509701119511195391682329380279731969673675782932675946199265069031640654002062077896108441082914235299486653312974924199910676652095097968544923523026921923601044235727589952117972186691658539444004569180336126680583658193610146670045308590792795316696754030461132265933387741620647976265827359291657739612253386716503031934200232761400531571136884678665156755691872650301454213181641237827513041220511498914908799074073037075819598663655482725166164275975453359860170902075599871083955894187298077806968327193254483028331402524647268966288965011454104905136082699910588651187764964710897384281627241998906292558941907817769046920177043192033832283599293537682612286998711458577672060099597470157429522354627978867914256634856038308684602737292636608288939905207933825287553701976886529581501759530376403573297051314532572495108835994377269774753196154262820649467601055665991095366590276280358065155316398254484460436934340811892729643945504231416701790585332819246314890431978111667102645968212476506851989425750682896301040164063910808498975961401915136554639892833304490848356571674939959399716492670222212259672559043715602483071933149490139007021066416720611930491468155326530476533305763561442623804337328172143546214563765998074374907181073961049119823840108691755199465263698709043748550869033106224046636923757486623789387459016811313380609737525607905051907908768811082368526159416361062548880412999432030390756029268510964320660228602087953257279159179328878181056397669376906895908755413013297289680029611727287580300690355815582309588364898948609364709103303601770068340193105301937884303757266272568922294020021643940269109578372794652546825817855356396100299156901346411424944655406733172297128797628823424970019573476527204215622059561784689407102029142217944426369915980063984056122117888195789342969577074697665314249823198641024253224700284867898679089497244033976918993303394734622581482589304810301591567916897120055092556447002582880293355402690519577828303809676841708243982072151355926216831210404516071466869406088321199116839977261836958914867427778989661058602638162317655223606689152882107131594082790080956569425764092156058826801236550014096366535530835164432612208141610393950052684270242346571873616697017573255656882714379400694623111433577376508252426861753024151383918056805119181172140993131996231442359911587546269166951379571242904167067699713830433843545120083568424065128100555713177267485366400056629056833925257812462216066596411046182278142314371579849856635482516544428574005404737362771571051489713779284787814790641132091747324539980853498453023376493390338317962772459112712238707327857301060403438885786826559191993603366293884985181079125747481973903618356282714136872688436589950684593606284606443799851404741254284717540075906308531857804674514151377230334952326261640659145545642011675219852590381512687392729432215746766472633271012890300984135138857106259364210364463734319896006412742348966056774264390192168046325813715821478901770408673183529814103761178993346191970955442261738319134374477460906323914999570006501550593362152223538309648408308427198456932771195454814403083883857766528277581844498227851159913950921718252441565944874371709390869205442246335496147239258441855033288989614608721796102963498873693912278801165576077015936860229994056992843337033540254235368036521135080749829433808846768799094908508873344127405581341586378930461202826734812808139111380538385676676191795391729630110911456825610555520387161121620796610186610496584588812020324881144434669421269807533761151698380454335804238038472453693542109734394422105621033503760693164053499574092515958661415200937999869186507243531475651104426917546214674941195035774349465826748835965890331182433457903274721757770231653729903756648352998922005726333250951044684676013904111789724964887955370562774650837095979107143956211125593412990241398710334385481142084535414580795524530517585989078921731119078392320865318359749620805942656385290890857957416890011738928230392408755800694951948974857472495915684874661779846888113377705568538203902274098262190707071805708922842549040572201793030027656443470982510074317175378595945648054368404984029233291286426466593655877800642571807510679171419907480075184973938822840864150300491389885673395377169232365938677558154915389947591213003155118906859280318858927539689130531767593348075477854157461227167121885711534477099813285636576343661426202898617940478832768318276719669568037378360986819877511659605150029493157509521125398831604605130313836537078720277892434272479006482525037914339812226561426729476611728598899643870109001141371716855366697937774520952074764793864152616055965876937544805600375510377527855685909054566892462307405155329173114322392058476826484983297732033652834662924627174553586988618452935138741402851004505178666314686261839170280776296034560085093776429783799533474359532895885775869058916259736344547724027112135812383775860657397294922176354917369313796571276402770014312435783322674500858308592660813376090723684263313103337837839458224382446357688058286237967784489878464904786925312137840810564089610544847001524298019653003025948475101013616256840957964936836319118875975334867652918766595510287001222863898378396363958117280915416269784210811976095389508354967408995153340638836582781218132593307633311273143837195262046352241755890957962319749782259179114068505081612798991299779987608073116257870871538488710580621885556134831974638882417796623861332445016765557955721705535105979265380479754556210127087277568193439953334029578161323950680815420942851568797233913742081166271911872625963387133363178108522780490012292435400631317744172671599884643956362975275525429401637345154440106947165434686448910408341743218078373190702407710231159964039865229745268470725109303985425542217485109192100130533824040049479312761521525017774240350618505104341832440404068562302899558409464600645888591844785097127494532680422330471932884637888107566296547745547097380781487777390974747465957664693956508246649538365649292560329334496792628175877591562193580425754373024955494962772881395034306454658132777986879415435862811496753194483922484249541144054627035869323716329028181938776591526372754616747998429233591090643063073036627905145792030518826674171815599541988772584092361490950225396630146976245044321693948865035132016271769898964973287766239477373926169644542426016347287774825435291494288264035028711786614338604155242116057504842185481446464988987078457877590467553162264922632776377566275584968383079008678059779334153076219254803608160856500946069177617316456342801682522685643116111091923871750291576732236859029755532158449280252017147104275075140135693471976884400317353143820682141831165580860716485077574467588063064439371018956559504827799653594099260832324775865963595053772028083292053804377346860085970999109588657058203054495847815399628289099718263908143967326986743274222785978202906120781656354935594777435986933351267902788423908816821520794379748118156790182770080478295493048936394738874366013588249304720890518204852732520126749894736366681748055664634325071258847511083301003098334271874123359057866102209423622694946805829985871697499839014246798582192951617113841751477607858884693493411188276374787756158169191990256302801951258466002262449037415060091230392619530783800062851511162564495155465588208277743669997345450003554505674960796606922854783458797846421358635011762237105377955492038081585808562972582254316546780877893911645749325730078588936794603820116765937896826460643955563772125312818879847544230381650954913442678903065457397687380827756005570471354107296716413556388200432947465336366807628341303760623066623674431640497264600781407559667145617145017978474184679545600870585265458692025469324013753020070198097533719038044456392978799294205045584235674166941277302482418682667892298413973611941565242870020567315293691142321684727253133787858133098567581177762632014018767133785863047731933277409992449224708995994002940387843938920392396133905273843667568617535605627596290785250754303762747272295762568756110221644057576095932276261984551085585460190167354159437062963951650003433974040108337277044316630670252943975775122654475127808663418367323378405329195167505381939257334315183696729030306292034462821830481970426194373254009013214476090810231009345394283859205149234174363839879216802057486525019247915607671508761148445310412392023121186507672535610075893311915179623339556695510891459120768450875710700601879844996263742416775317573815068713466644174964858249970838643572508857939545208873298696344414506418956087759877984567673390901026964522108810054080597756694757143396025932272725736916520893882256964566378329986143393642509936500954273109968999706399713179989092575684476955528024021967672542725652604025488019426857981281416506662165175462896087430933521399789001058725778191451248376504787618343799193957109587959780633125890934975159361635186564792198747577212228696523374220267080636784031013134610714333697258570440484349158755585484141986405339444102752723088642007677301739677328128768580684675719437764218312865531643909279517521644123991097099854257462605395162112300951263156769238609954075317762526737029578557823310480671162694547334143837257978821185964088596307072933428749702227491243776720376977749127207878512120471400665853871145243261667444141785062047106116911632111503987588049909674299084446880574234057754025678025122658850985968590158505957301794109115050926000699468252116700070444502416268666623474724448384064412219589827279647274348413450800260780503792831441818975423018124297896260308776837289466703250713492663335934530940206551143929200269637189651947483467870157628041706005058619150237355994040356704660687602640929138592976179740189024759504584864140419517281304725095503664002516557136197963961539350461994771103680019322122804010061795994945283515380265515676042646673241919388902072732781381892272088390643041626357885981911494569706869125197511556671326186187180337974164314994694926199780949589377244328169647343606470415675318395376248773659075927860430004545920642187856302533558822196115877569854683796726318187643302689286159782999819820537921087331193558724319998643389252268066357817669307880678740923845908416851935785290973100137446449718774976405456326962805582859965610847310748692760525114008009135208810467960815300168828128281925012937455626261371543416186049946549656663572544546560260766399597613708277393120600249832840029186169577055838547345351922478641406042958904119643359164790281029011335982259587726068669508751440483090902042430426073712955920612160970905706122415185101872986076847734490052164912724220688169176919679308208272295131754893861580978941813349482575880499383375871621741337902058721738628311572991580324980848616913728861253824435554307705819034270836424910767775692844389174415242236580609684799740743569793918418342773309279402225981931105655777855280291901427008063805895591328400899910536848615595162233618919072123459288558554758276010683737351830616969941973993785574575730193932607044515624330028192065092468779333367869347144261862014252822609752349336231018728150907965458611103897347701843319963021946333263583302363719625723235810299447204085667490595885232196398099522290655710427160106324035986563344349048249079276060064421631359884184058466072960600723874413907232558876572658222814752967477061434738059399398981291106231959381489204402186625333191160616237347969585917918753688343794178053145637332924131735626916340519780043041276069248910662675423769177044784935015086194245957258818035697911848054862737292775182821538267369253143395674349831103445300000036329410856961382901628812300592260770769461981163330270698685009339922463983126923155126818729014030273483839718789645657632275974609084119648981330077857898694634630098705059504239619527090990957555074633193609205093212806802835314670206600962306710456314503378117387703064840780589992646883933310808066586868197089084562181660711926766099952356363217348312724407431859680098112958032248736879244861342024729525719629838829415570528365631665197459193889599604851228246234800055862583706869621886171284104584472556998600795031492216788134950475597912745738857046903081201225332478815420191661765077401871582538952489514692720366036899004290680178509133159981847095723742885288608097460178977734201064279419245231686497102922897396913278547958173767207207192252325763465222540353211415110926500342917225296601706500081154770161947849628919107187505877116069196594899809227109245476906043383778105656132766785545017731155087885748417019051883221191403846937569664649321329821922091612200470955963164290016891947496155669335192608600726755815277597987882947189007230098159046356810123724134083463168131807672636410200922349650419410065301213084965024271113971203063359658813734269567482388941609617052936172400775899997411122960931175637533976462700814645208889101383249182393804760257058290393820197832755314917228849893677670557649961497949614987312889151338663178330366608665245068049286502542893531471920761526201331361033029721980812131355342070488194266793332311086901630132794895420705750176812010561749025003046122187644951222304378074043159126719026093258206586276291696951974150515784085350131062785859469123829218771063266941587478860194995535657160282021281232977163850588911685625249904184228812899481045348328133208731636599100735223191852860988796154226085327277596005399700909197154408365267827985248456805304854822561781881970841256322281043992343881200697724378438345095153820650273232307714240461766684122346615959952501091002111728178550791514016162931048040963348342137413621113735683456921126162630821900396871170029284066522418348945688551075269120106818374482996984669143981395766921595894589815446376204804069961315991833081111578445267555051086314584200549800871655419752730030008468286612192773957740621965418808594975577951924998048619951338928270981915137436474654720594900250955249699096491429097948108567317440774282480719043841657405502209609945872711559636172825282514268786746842074960425385839386058480912973992607259640789388689602945142875560918497471761714404082412912221263441355326108046839500896364068713588215925570375217935776898931572299833613269609262159266048920928999893207857543469417457933914074204385509729767099895551641812468987868766885044230742872373985677034528327996764293845874645740528721442813847607256478031199034960559498341463310006577776224711698357811670413412262215788195470743567405415054645304100253616737360223258814535414555310157287072805233717255546513432560841057403554897443047783396190345119922929964684773245845976048827578577599669010477782673657611302745138152174690750284097624716496107474096912616232110735376268110540302234752118541071523477444433677698700468214041220785272417865139408747441263299531693170519269431021460237716374168228058974420817436201954792430959087457823220472919612910843342088628423092105149003185205170268954094752124791857842517304578049814800896388985616443569349276211037805715430497691955454092258620180792013076383286823674492969172274338757365056544057743331354388605061376916465376662766352750511666340029661474377284958472203664569928370495529006338767150014350861143046164778855017287569445936058452708524065800801765380293508908868088526239931298570044403414993884409469755467536916379280026647481667540571708765050749245863973975026251326319519826752084506766946766288108701864416405196715688387429408067550332502207498623893831138582447567979879604163491489741727819437848397111000568938241980767640918427887467541399739481950507526894380413376277274892399297497088146489305196966496696844669275178101820129007699621452315802813089036440835375343356929617161603648883771253494650232363854860167506093770206333053238256345428774118211424002466912987953955335224423740998357608492399667062572407476575861754885863619259914679827481772953763439762607300102629592218001898044140131082601004678054247572541750466453172767122937049315159255997977177550997015338916463172468120856733023293094283723282135857345382827944208891306999729033150042433398162149201408361021868669620559116794535793881521194889526906992560122595628325176020957696605634683939485208654685911432161342352455439425475615536203939335292898852963678790878746384936718914826706923667620291171007113341943022699379255946924965788829132132831133877519466961899052912347431617175035772344926010697495799271913744838358303267568846495482807482084912560549172287814794219842932770225408639317347922303927965881451954662467668844662073924101128671330768311833944145521048272327283731846427297454840609043848079713045172960019683318849447043039859354133285469628503896784003949067280534749979231546448442233409223226242992266480061435347751965431902360966356897215081699560150979716353104197242847459297102145372549946898176093873610964731635114668613659586426733090345212843235535559953527683452784200861418067672829471093053075803858579898169057592600257003422104089463292026686172346102848850146662790143238033000851681948147997488520823800231450273891739603445241558667215019829516030414766791214659103648559826362315870080617053070414798157818364956418260544320702744469979027826630666246649020880729173698076368557240687519517320234213993292542906572798438184471108746320950652611302749638355968231159002724550090626695301036985532654030022968625590335559212729546521640525417267830590082533331971399423456238893189826044205961283974494514679832744223621128152011809370314018386656631111845211659157779328744901460408915477204422315242004782065913255770606821247342884879885447139947226054479021998262976161232850994884191394404639334863382865040096784254648396019315097169187241532092817601599374575702029458213892859692494445091741971862932130974279778456013525058643862059254736187759575156234759311232969268565137424157605366816893720333306337372995032742874297101103219554319715830513585448679736205547666464242342441525254006448100775172641515240568293831055171955590936076834011573000007907031531407652632814396281275094598027719152271699420677361761620084475630118074301536520742513186638494554206714522511016955933865967702940096998888531299685503946341444355886669530598810966218764906057017970784107818925820074944814726857709815670066498933132909821039187517385135452384429627566901469110247226130096650359779546251992714434534056631160525778364501488300549127497174955932779285993024892678211235251109591918777446814509704182816961829591251804553219024638680607654089224294974425172715725826813348147133516729692623798669273645202248259513263721627214456649502147867841894507683867772349026233382878282049210700983588924472314899045641870806004973121544701098246311235790531359550340543201912963000833501288784728464674404301055317852626411999506398417476775932322140948424623857163744162235769289372257497552993827540371160403810968301364198070365432352912977423814326360090746468233378102733659794838217131758881176303674928527610247510066921134525304945970659116654175039222521531693022065928668741930306385791334909446186785144030704932155252565422592798650764267086940884575531423312600503988915590798397976296677974683543902420052139718725856026630667155581249656322527577140782111832138376815936572397497748002147318996698449372068090430115090073154844638060675671882590468678180465730135264995545147967106717375473420356791290919803240974166166893961523127239587879753859436068890708800162168176920051721460445830210195393940397318250979210197818257702390475962834783756888200502663984506776578132470754660026796789523341768538696985749474278765946538230718123206477889600974138830045212234919913409984116876673917708466789323721845256890958066074033959670136638301043111241070737820892166212522145992174227087416310782767036475758667477305701949343507927803724756557047537965396883098624891515745263697613168000653690187408356252647739363620023810146711158889100225121049754288137302958356325599354250030513416170502811827432035870379505462833313035679894390771392389450758503449836564025527129976425001066170861309579873853815108148886820447054593169569552207190472114989868913237968388659870949060689665971871436799154437063396186968034133605134423589984519288765985174687761549450270289575130588616858040964397079938867731704553009219348267979134259100186295225211827779906157644709499563893228669880443782329503034538927673870612161590049987355485555073345796831488497846938935190379488464328050463513349539760726409451899409619922891703936306575411822335743893132232486489041484697662533676807204447787101848697974150254980648440557122430834992818632065344238444288963629433201273593772029737061890663852278653001111451510148428291704943513612438668278043143034739754717610033187408892771960321168367259611381660327132229841814167641481262897921487361274112632275195442137462419417180320600508449539728772786475805818823403866916226920771830527848863725017100140205953025023829224479569851578012231792995319204363736807436128370075260496113379235835766730301556850107461699316967575680118559476219678042758086070862881177233216379055681446581018317348296924206242157017995215491995715041570111949169523902945678159344087012269008693884481561861963884048238667414792702507688623252273409195156856315790502055420690463995554247446847389284059858436192329313547449325087241092481619796811289431346319693348119261000384332970170914359912191132678179963600379118673732227174842125385928923282903400659583714828151970418812887981987064104854785979899561923860098765786598283727935002046789487300345288143283358013970786655274814685275429602667026999378498688382429258806900882265254416646594807557306651824697831886743751372929457933611496121885171187516717686843568896544268623934461545431281920093535048513557763264263854616873539938896409182345389264126370902758175042387022995553064093469178940852253157546775477588811657635116192586061961655050361143426660142606428076886522693347549940122739191089012986290638980814142330504358630249128650403276221563083137923949537156714061464994712426451695672226580275649364782014067344606080931593049308823268611552068504408371856852554552702805280782396785170587402244111064021104287925926684131059528759781637287630192789884585960800326035018947621394963259520913778177012606810695412279600184524527380587407228161318036863655617065911850085103767113877036259033606429503052761184984644487890964232665070153998565987326467280675300376758755869885016328514089539498181910596140893573069688934449965657526850903951484844501838589766189283533770721726753307776365140674008048824960033716307256942145102115889150797956147510317298391802104176447691047087089535864676093979529640257929722333379841839215297760439719527094831176365289823968593883882732968726034576105581563127832153020171843303790315597957045217409632976743934361693065946642852001933593197988565328488917689694440161858118915684402516800237405528144777081246335852794487770264387036661719353788349394051166760215769253255439804872803559141095196307168281152563811383270600859266722037424763659060199421220306571482719042498875728606626799625540771826595921632881257223562166211875412410131445643169359171486213522191564739906347440824227751651327539659773345238292947650951614641985764071698000188164079062361287947258245877557368339421433226557103550004172896608324624464891568976151758828212174593695749130710106227921540773547124130046078253617542164971321665423596465408123387766814489273643938374223025421541608247507940412677881248093187234345137420563993032897527414587948330490462665453517923970613036223666279894541699854174319607202727584120015247005109303088580507258798652711481240776260240678323570779183160911002727666083784787615771738856679006468310429933117494711543564295825640294398788539272118584350470293367504282873214480613456516255614834145375773810615401813757499727754194801310315434193312523159538304701174718961778709922816987264806699358013820248198622413154173325507726688080102825495182548739050114984637142688533862631600733533322819072534616902763123287371735047038627302037873128385739497319418953306968938135705257635053725715869059289576669829714584985942199094703175079501431629936599325060060008025142330800726400499356448169485764708716857515707224346288229211585701137713726037560937262842916367127055816513438103426508254865239175677944685558040939346207725404892810747209375571449287500170726860211885283070395886744764093618154865366959259134687235980834734194183114561253535090286008201464816468920389462739125946606458056688710039172205782273997560470556811837842711053053717327489872885981718163290156477804035046574672768483069601114224901443589447831643169817761411051949500983778404860709773089976735069711600944651428686585932784952294527120164215901775394630960741570767211639301424075401629996101443285450104239851395219794046604008256198712591819465946630202576712045873098815044612169950563272876585798904818105668776606964470415605138230741230147651254635070412063137160751904705413776633020755833578607464250756546291689624252213438945053769967698421817848352646837898969850510715637950473358995506156760113909386728578867396038907721423908682747502722250091707438864806196595664059246180544322055037052699032629995322235967968917437902704936177447670540094106321080393233086714799659710420257993422349854321573693632330731692675069460513265086843157382149242109290517592649985177468301005538542303109440249264004342366797277528935328302951714031233341997803326672722938181196681656801500729425122584742844611580125528073762359648458712718029904827686552223240586855081231182695850411733661803083030353025879860762444294190782949557467695071951769807841489080348239996457159082122013631712366478942780737804184689778854926220610079860898576264162920746971778541896088760903200649259601612785926096371959290042802563493295614611985859113008749805658041421672337201461956524892213137331617232220835050048182185221553426317725597073405421891518485945063208764120143508997178453103230625521855250859978698002317524390063979718543844495759578063124494357319168378082716987661528166311384700304623165469498208376461252108276038773680723947504761223661827951815967838071899043027479420646067154260007461991064649782309685204335975483240890947291819522463560567968874036966082511168879583329321398039198225733112833375119759619522661693522487686212596491828711551204091590141426935196036259182963702439877587612829895668565346175450003349500029995650713736120294673647433500341665496908968868683313119356297002294711448376628539389506200011271014535641997276043457266195923059562033235767934023875131534863062639744619687423077110677853720911511849708956912974648014224137932548567703550651487752979409311882283553989938067753108649100462099291555734213603614387667075804532834527604837103697245068870683795030309277808246969868393926120383822141372469610588055366305566113388255381924931249924678983026053738846037275401234660488172998460987223415203654794615732294977858543314629420177111300199995446511392650136159416294339974675548515991964974248122598332145745981392461672663561576579857810812307933235723496521361790646502225414101502468840700554921855845084733362145878617973266017645172375788613236844695531191519594044398564959980019397447428414309291301760249667421914048603145337456443381552717929072945762105170687012833824114569032551980440247204754995570963020600383288077811146939231536315304176008633335741496241211207292957504451414339033927638267804965837257956719280410433101355774961256773714647106479781558488379678982920812627854994743361522435431614701818471078034381771754049713614570089250110320943503899430939568986073253547347806597036775184766830541762065040012123073396707221900219821366094397286738349931347062051724765236833283486253843862851582891083433298906895175533293623123800589902512160881703227240666293329584311959371440531765500847175498891016480927166349566738490656939435908015633991098179579241159911038592102454724353788401208740667065328279351447564824169634125207478075348995511017050084649537926844416608762503843862091519360169800998218779586518045275149317903232833195242712383672380672594632362963443622026165798363835090920468300435018277625094393318157387599092091527361706248818585248072334590971857010007965429658693765825470722301522259205212255944712779646992655872452192977731122009703980814514255309549844142966203085274138971348064910173123569070458284098854691015709330412587339980796164144703942548992594210583239536979867225140523426928738032288502691569983245600450809911350946477904693047695951084430862490871258653483570489200153766753921834998742156621833708724358688267830147797637430536009094429041578104605355788394182973264700333718420757305527758921764349286534618654818956250582948353007862732894246187248015433698833575499765133297486317095973584374053206851629196656083906041667420368462738158622407874879619554327159065796792658762047169427247047561630642913322547476206599644701628747583506430357755963409269413888718635077956436909002939561459118320862945201521234651477280851056992921292528071786400694830362168108054445884296419236818039095236101825534374384371288575584425089863299523734927477587233149258819006448655545809728428228954824224378531681135533129554697167686681310023057474800128752588406628204054150230879127107528584130005901588570423203048307893960214779512744252570240388498605051525211394167026558286064805668218021956553325963522379399396835715793727275599919925606478575596135468742732590888042164222861273209080881674139705331393275560314675690483184696762783928013118125065388543241302881873404831823461730145038816480709220791855135432291765369538872018199241135698470763700043957014608143299356437518287028743868330959481737622562029665857638705413032055655524237662789031600512018993537523704725008145508183149120193661043430167642642559324448334691829008368343239669771942376789681311137532421282811517180691083366514175674783683190411863902915634059400344155153091166717494406679518853044334047144375752413703642363217881921398668096865351917838176699162069216238580889636562857385098139391962781980458539571203716223488169432150503739614672203508949457031580000697812897267288251098345927853077934585171502784747214645769606716572425053776737502620828704788359437724268808053654042985229407505594390349789284693614425320302433813576067451055766937720719658371784806791240329638191938251964767902020145950010372022752336240235299756425049492694001272347857885920521112718395549090141304709250671587413195502309221280248117727607779090381117286321140670094351204649798550888300247569758689095726103772493678063246979163697540593923563465325875689376062040471640488711895682611566475628841412941260047205789683126375892869266973806282763480808830404078340326909943091790425578685941048351579918376188485726474381661570136801344660388351999952635001451639934788932335868737954376180728448164874941187507507395418756351538146153859990329642418952554395394742665928737673378435624922023246573179700662393403177073356008616099891953047524566345373853102236868597538702985968111347764102643634465360270395911730395474580730373987603093907276707154039064978339931670820184001898019897739229158556181986591651082167747408134747949709597927528786589838324059936953824788510742474959346891766899702561735703270814615883729823835654412911611717596592908829984381244042435167670887762754200199264456271645326502680868885483035497937691286106177916261587840238899993375691358889092894518227054226588961713347621135304644484781816154116023948391900974775399002440831855531472940277953773984322150832719378405994573618046196745807834968452891613715913674656364781464353082738849631070836695662293153811627398487163248089889035870450832495740762987974687255729459495034453560377731459096371644779345971111037077042844156086431974424952172057818781386156111496043246960690315123755447004602628448874523740308743786001777929050494497811259485477413012669227077851720751405173804043819375319693726577204469605228877904143008356080526855734754395864112726458486514581681374295462664790923904735821498359106810148231194768845654457471545659926831560480028423915496207993422556626346042774927047530638113839058119420838493039491217372228870877971333485080143723826704563203321994181964389329665135069744154397688820732798250197454247460005678186593773830762744785858013147468639710764072389952974164467405440918481620111706795047453915823232716726824539110827168338585854036553975043042370245700171162038981143766687645523463239457588064437552930963385057844392150454222212420684017590022604186584312560360960781464686282110336160249034580973151849014434846806013673785535198723116368077333564807335737084507709712015349046372489067404325810335726354862804965402239298583231696705532003889673140785453540958031597011623385831552602382540216816410857108397577312264243950218442512222474046715739303004747324238231746336392831320111884299582731117929066907230713399300441146273440796534320842801045263861768911874068525730418983465430521228118658380317432026324662703226815783145793542565849215402642460874045980753617219024656820550321490233435692856789350141446208853351061167935653868074938783935362028256902928465155648908859669660464095090408168809405201862639415074093302972508280282952880137265094410891100133184494637187753811932640001315063899443265968693700464762322970538698922582433456101716983979874517291946548986327071461413093652678472982846966379462685184276880442649250462048824586268214053374671872768080315854188819330851665798161975060331119272111257474672511142755819982924921101047221066341443286118255898268425885065783090168871438091156155838810454679869324660648158785650892161081497032494130417723965285908844565729487099439722569122780453229066913304765327307194687888081044288002059823525359813426461364139904042212488324639109351112081718539254039757297255623032922149150521314798673080036333916276752281764674307905554722796813612573998353675516106744072686695107962083248445565905115660398207103981103156275781490299279051918209151765596948049369229719524631409793884772237544988094667958000539469751935643357325046820851504865507424337635974731144988118364418030869172124366237030081788786823189167329203657095222628525735121740604508047613454077552791901974508182406161299308208545144839938970352071559693160174650522903324782987415122152722457385364065317864635586284280517485904646002639317665742769999749649577995436475583870055024830977108102217312466034391831139615572029923794065135175761296941797912729891731190146354844734352653320888189087686548832493499856173226596896229522865136500531518313732158777192855631206782676031385185923080163006354686506306433712707663621898694202923563289316216558531342425491554705535519186773242557352346890697775256140401450195506251148225976377561917276701982356403955674408402611831990084526598455176068469247170842747581520619546021042847071573694575300004557780651508849616130538003620916766697949426967758983433464887874808725550498077676358804920727523855451414124280026570981611250712335901844650198137630558629538474419831023097463679585814178791450572533163663390792815490940828465133507849148077218175451581927996253007571825601348511735758167873114472372562590138089829972882496686148397910706668518478595465498770467087368686473940469932589996219455275278737048621793160851522949501656711312751464077523148487997470105839269742333398665027735442132835546780986758064616179527020434707797267138306947130274756637053262988868295073500481184637286767921990250286712144743498080938880346367636017446991856084492328741189019758983839959068304401821905400054692951497774760740604985929016985755041334712733696198110967249749029057407239052322732654505242394657651502782436464279626215728257644260744306795402310642043619845206337031026213993889115424804118484209405381739852721490405507071487105534343055001406498102877412118657341569422679984571918738055139752445117646310131856615280859048443035144043005504811482227709729267174972496549127617177506028806794359555107293109578513573983070367461792493409008760526768042602946831729418544551831224318566620802721847969547702863528992186403475898900483558344956702939442381175296143692510367634195792761256063264232678838686242277494400765458537074435770051003572612281284649200570396909379543142203110786041949868473278039332661720979385783924222216333217352967613343817372249203991347188814666418705406199542311333431534282940002379968064201881347083704064103800815873302350938631304759248069991470719185391380736194398147360168104985853334637360723554466801263688966556798722821972488200617355584178763907127915063923851817341657197214960621984169686264075713238770153719937330080269814354583246880076263619726947198027959963378207273082586534268188313805718024698023991155678424902904390028778638330602775225498210060244158763088673196568589732696964866431791688310694894435541083047935925076796127046915814480983040334580078733294927910988323908320176695249585981032290115227364953882372684320432615986880553703506873058914506684959726087985440209874532245486429287814780771157841298721749877922647261912391769320154444303642412394439319937706011289562641456642576567201717018737109329530064999895449809990474285099120578416975028445664865592068420279099218162189852612965466223191045406242917901299760541492512839386404990930415057139275051816205723728408009854273369139831044325072937280439077941832950519415225213662185717912148812906041880717838393780552582698891666940779193200680734663594953089119549559708838768985502450714679254381285333242450896418565590846944189616560755417394080875803569839705066765498337146747109435853523105544766620074554680737897624739434757104712869688011051626896664293571034049776929483661495272275568911007733732096246952011642475061178333427136965692415804603015576763796804897413623914417050056130798908742752930882475260842665921974728937491180565937296789078673334981541714589183036816847812221591047221867276765170427664303340193537465050240290953130937193126614417572398238583791032186778941838519549781983179852590195065904445182787171448935533986867716134995965712373092234790888447137342419356767474024096367680696017779904228169588192131756696262217868720712434279386781171894233983401481194335088207665760681447000279879941492551101798503687875047194190362836356399741327825739211613196888510288595820364378099353564674589833185788385916371076571551863479219854979958585309317840294098203917194767536326364057411432531357005729830024477647817784585365834173328439744368831788531430544717674052504223245188819298901901284109544112911739734350079700945519345930899582810772151752021772924396298175287235755043337276789595802193030178036464811847448322260860316942650812058991494593153181848329605817145792561427384917313693988798194835573994720320336320842159883041021256571462447048918038922049880912449576147212021424538122194856340542085039172279921965576209095399767914566210851298245087494088437445542862788584910514439831797303977903002324574598972151022424603508426408302393760336495863432744258729075547223165586363891453463511974309385029809274165938754995409602600961997191857208856529429828998589966055570654712497516372719194198238131082161380144359161780563577527281348181727516987400850591999567106112971147535152444260682215226376902265413401614216841765006680023062000159776216959707115993749681501731086080587048386488390146578809799307099978714308743963648350605190487848909927949703854445286672562277501400670168211083141350332243946160308499445627861418426783294164294603607649362146836975688556749313968812734582559310258170314629621518524474268577875607788334263847385201889158023843203713910879671796419717011118297236491943204088912980132800081965406718679938025624432997963188531577798994109764973263370675276338071644408155320910699586406927136977785201127044119808460266911439532821059813816212387384027290575827055849428399524044801864618230153244929439131556401544373348426828470324960026797516370577119976352323368008920963448607707161845189088872183231148743638842754894845047490295854525338215116153842209196263306271975057796929374920578142801390318200572114750308007778008707823530671309243134501546891166310576959686515479082671384648264724886954849310782504922934169250137838087987660105085883573243734674155140905188709314142880660685126383869074891950624974993906059037434867353871457380917100561364166198158705161199129104803913300328427201649400433658854364212413781565038328637994519725228990737184431723260005138669442772875452927297390946249018834440045728715600912883631435382527551080170159163871846137791502588715984292376397584172400194766270383144699538442653426961807741343462117503118916022429148928747568559591431774347059063229320635417922695865725308600768256797402640607487246085466689981562948838656353700567707337681987340977075322033677672096319777971338157988672773604752995814902278368191183713045248876853450018126569602214383143918058731385264227890993998047174532910484777198989996987075813389273840499554613649076422965928828584585332547485043962258550949205267831972673119919287767122510308777279587299908156168064230249456416471913272163974880833807090899535978699209402313863894627240622306723418461770461604976683921352181114363175846590234604300023766053390604637945433403313052629508464193159352251930962827251075935892491664514275409303279859237436790383036399982155015196323635082348892615132328151542631207136226320364764583242420197137644057941794046044668752240293568212380372321239355447800548833564152493685849810838802169997516202000015801241760790727492940312186881403523982800013944885268551044922600061882010378059650087813006044148437531383438534451416523851571164542158290412438885870974763385632209467405967004446072032712685697703469715200843415019921627919849908792700443004884758558364309293537240479534558899624997339236815200428154520872324225420435849149834804831858297731635092522154279123776901171138049262333253501406935606298149254637958315382172063449750018459880450809536181536896335919392805177418572792931814776705443062107218540437787017061933152291181832990285641627935099606861569038308131318640101393736664587993098087395294098644450923039414607969073312804749987155095363776408127413882799821128600991074278155419111504196573413509541270102166170437897294537005261833546657727104507136017465433092678057488765209893088088605781270388122770317302741293539485781811197921334298967598879379461424592956026296596305465807523289592630147167971850832752281116835928295279577501782187586281652051013167066580870972543809029845733035441803662604315916595460327948858206807760135215623858206246725998401496949674089264781049409747964351369856258828296216193839130497411174992376805561491012622771226404576100797339092805854069555550290329160351182899187836610666453251786153439534810371750660029877823514085404980107334138736634576967196349678133201826502271336067625820048888314284967666667729655384552776480374073906894982139698535679210222807748164063047664298028230559670037598174115542598467537141208438135154665273601131874923966800504291341019080473496087694578066577636205997410731189707323545400586153693234648774921016858588942285555350561151653264877002673201307285721250087565824736107795543298179458195407969072718613152216341355162929958517807916425688964759775034904856371556445547516336723575169334978712654863370159377293819320612740143971027393814480790503314707767002060503417306918036270866559815657312974612169127015428971195067053677401271998648124951352536703482721591258169616820363574433994475947264635787650577535265457809067239416787988185949554768547638742781550291966490416943439603802513053255113699218623172617392378776634347422882619839897542972691617991918329905695723532083989307051114804525801125276604309100514990835297441219347325737534502631042684721898174165373944199053750201222006997211510629171353534291566632699154254875511594815003144425368985016053445275339328147938836771300568059243724145195303133943239806007028660832802329528185763588137570947015323688050985968487531891438201261483529021846298413695280516529825430333371642949913122224048189533145519315011272459579166797599356437939770983117166723916420371737946590576706935324276168581382754964843914908957645851432388381534809017725919650830169043268750862688364588502909657756573026752070450183120489961735963413015624510023769073785251479322785020204860666850780322416783063122641082246670347205072634200700198029002479351186126631714634382031813773416895101563536538673139055499377270528561697729486223022656556350553533739743323632091203643449544759571597321751442859476847355134725366653314305792345734180935960240359941699189170052328780096346378374873911271849246485726820690913176377011563984615572796675191514093072297925763711725427177378015925050507097457281892566913212396945791583056474414378237106896866109890656610259969660521463271909791920134596717203701340764932347496938266568029295348698767258815170099907743155026011589439332813451015160260328149947886091050945825668335189647078648941671023929621231175521738078019996871804850924122523216351618291003579533653040187442244780135702188914197328572083851440154020375739811596311452036630541029391399342151324283817111167149033759385213188366129324666398737698254658534836989304180630077033944333441394282783126822947029710978237802547597188194478298804150610406464593507781613759604703998420081375842192214400010093865945964376112546980757160685284053151540225917894861144101966049190352300194503859053471210693826671605136181225717040859522222111872989893591814814147025773020675223422629352184669055438454832526526065157256978658785911976511576641265925360372688970107643869059586076306114246317339947498256819637369689096738755445889354491606177406154870286516678876730211143727090086516445648354457952021701345272436820350172806572835523942753149851325681820389840040109111486581241763377647385437027431940175350220937563763720275559889165175719336075477598894582204804529330230971366941985639598541889327314182236846847524084263403895333685775976139445161552910583682729154041179527005938556760558300219101514871346747275399801494995839453453201396340840494779549147789765409749822117555831474501610728373676125872263857475174070589392914711154072511913560004218664936200268570967777945827796723699213749943787903708504209566530686786064773518993557710652322243755347393188662374400052389519319346399326345166463341696378865451947046558957236247828299035210534954029153294288711976582577789276772329335926603626006728585075121833221032324017468336040839447914821598025395082002547627655184346445577171645264781707721481327128521947779345030133608920541503712512582691382903842474912927723433976014006314688320585185609817555220311153604211843151359424563187050652309294397378992096827465276034873972605657608073634586773813128352003717099786113995263408727640653716960231727159959227588533077927312599067893230772234520977976116026935696191057274621259830555781925509023122511081271683471558412874562826799319842124005298695469803641838774035017175597713108678494348794578079107768370574815359658711115096703639906436562823179531362167751340401281434376026283122305097838998882101833548932425495221022898692596476186075622152988771413861716516905629621612424362526765617143083420894019835362403214764513917948643813754868567013242381383499108999315230525004246892436511013385091073869399254762213948278014344742827571967893944615892942333202869069285554048227778803920466030351878704649632200858492922371874027607088314133063885073542464836149823552510521087030380322962616720626289515465717992000388426895063314175830677749778627578374394273349724413839330849843863012326441683541941952715844724643413850401155710145905652392422114645502952364289407904759230946333940465204056124537452364389531138441857531022901614924455032436250498946958026358322663176219247980293364000239286717475881912491986662454678755777668572948201306388244609534603909952363563400519570639965251929727548973604839133405769851764218300786506227861435637804318937819353776811250533144810321471955060080104676069870920312490272695844328864121748416743664063671267490497445351092949410256579754860353035296178796704611290159683364752415819976558013147091456948720914356690841209835075912654731468632911194741756878136341307740378907331664212931684140568219095544320937248780134016374930344444292007646715417455335933296249307113829339212891116858079331651261928947933929816322899946558925395723058393108301872363941846865049921249576484100475234038749479754992791389805124396997259695854825701735877582444874422532307877029356037007393521833787509218668497320278912316628243251223478772065770943616821000994445998959963624635628972033916463415558876793343775324426724675088254841824360158272413295436506937492597209316445285463559722235955780898608640756773803028338479439294838910444390648437669888372817233102128532497136402690530059542034042482955001869485769191311532875641307018406404901237816669387232203736358789223407228435747237510287714992279183102249188949254462573197040966475008590908816776105833149572104312224450727915576935604270924574916991861801271186376254084591784017176749337808773287670965082999244644432791490977033029105072310471631771859223531491944569516867599016528281262462680680965495868028091225096558546341013900214871677648382580467605138921827424104817385882580108869095318845261262891097487821491436891980440230504757924367629046572247222065378465121256407515055926149650908160620229915478529728754635345676305385391777650507369026918128652924645310864412159296756978193745264324513680359682866442517381651824076987499091066207172773388775943430428585123771465035422840305173116951323463135856059361460283137768811260786214149266672399654446263322235951888190068524603500294472684768274603517200253640886356722563655837305597805369577724580172891136010712399823792055430607572707557525359274236566013467344601516489928455732411906553003081818653939560037031135519675882551765679264709705968678195663180890534146142034732813297827313301361296303086826153450544656581499112425798980633696410731280124361256976658839516327019042669887378604759414451544910349665716809737148755867958634743389039101263670228082864685430362309904583519587528146845767292584390755038163599899495020578220571898973379936143070000554302383270847695396743099700369224177631795824344383817300347694495709095770320353237778823595767449380276106959334124598799375605037903441133213852194080843073181083272061337313774721228275877315241186353885256085562481009839101827711465136627425267722038827613925729208158126539388353032218642564215950145334710591611415900643156911650636452805168663003423915995264055732604598821364379609297766175866013249619743849809785585634666828810047428310169840434677875870101668062647686231901286826590353193257595717462804951825120822027208423791330414912189374259763426555729183426169245045708363725521650845619424067646495299711762230129564508980272960064613661877562456543151841634123497866676972311811502596896688386641312812736598019008390962651589858937999719125398828858217780954356439803536501605014956143859918751377716861127904331077199577479220796713941748878051659464193409704338398165638934145895074938278587594125445182716971921215750552532700187711125098812120156416978269379040061554711876991454395161123026495979027015528939259055767588159334321317876218229686868909297138406561869842575334165673028462228355974636493625658984665050138646280761616481948726863144697169311222047630548335628036230199440276143380936125689206962974160770839293430735736173018734125049238555259673700541376663525619405044290960651858912099713651390413193698453257920041028286539330234517562336428547914268230846169204756307086420965630604996673073347755274521718539576617094014162688171577616257060310090529103568473140831279955548629806771326800006272131718868352770983770773285413245913328059551605465415806605208742375188197143369519902081650188944592573478358162047994508032668135220412046830626803289921699843932159190310117414685699622108614465063846169440636349881676977313788107742986707566131988815298404271559850113651164052108661669535723491595383294280952675620199153699821440563808295679302584217111749464430616640847418881750817360386188092056547297324793249778414747884666828339228151382529459982090324126668094620761284570124907469843431370962818144598334269723755979785133976255538301381307008120932950259246983846588989147689003623447548780185904630449838857050269384164421576317606856837764894565111220736292493438676317497648519698326768049739534439513496174469583137324288727942926444188176189283476734207431641660012499393648661187442277700666791105386276998058649939436611994619930571001729444991008661896376338129270696007233096370693919817762818606580564464475153107170258187169802750138018036462048776854601397064036394648687243770419095327151859335280276934346359334662925290606886699261843912765202354133991985486369531723642605910243928501223347354597835600636856360805248715867572470626928861602806748347547136970404741402614114737022185487298836854201923925122861081297443434710590800197618572665935767326002768864352472070299410453938959096425474160931378012482489071761614512274765200122580026598252861475189614266752225119242087012512110831056487935059982198737006586369464929959992776717325447369848083025939656867524220152098734938386712530139273192256572216362562961299652998251167933264961914754558107961540228238967472079181533955592954946844101580509618945529231523655697329614162811422838448150326842173686730327468430607422748258390908903113205745503445278769339277939281059073113452017851751460993663668821606223879980229752735641631755051858597947344688365517217448716243018859731404309451260516399148943716488724304182078523811934482674853291199343264830554889821366909283932711935056488415035035202726311219068330557592571522610792833234900244422709671690480078117657227968493652250524412347448782622642366053314223220966975356348946047118984952590473567479475303373546674454617417380259106839747350966219789501460371548904378412633864269033138938476010505193797655890964471711929437349697826992867321825332546571522665269932384887198261208842021963907647724981525594182042678298259481257499941686998074362401881685979853364807197414892182876009650687175161022712202159959623993717254484665371312961764551897178964651431791121765224813173757411721974756031729111589497845267529434579224342064478508525534591756048311307040450962473250709852553606616929332040283234556520384416783988768712580704415621225583738020968271038472241927965010158440388766012966401869406108649324861179600564423878382973491279969385010733202699762170967682863361205188793262551712865094735683318129712739151103773706035664994040711893759891133086887357878320060393070666635611885432908103355499981136276284336993267167600067166109199761288798361859458517993646267152338700166641571532801118276263250996318047039612080756513273115645584640113835288662648505034421413009560038056595500770125393078211851564989849501879741835933886514395875299443427978837468592662612924751790203150533102256730952632029973952643569799939537443670155074647684932703503045508640915171951871893278024449491416944091412638948469464395313117093942107973320536254067731826044172181076082286027635686901270352357210520667487445625243407177824132023356446901143290109986130909785911718265817470849337421252537125254703926464365156823589467561827367319287886755965903209030254523623071961354401278269474589802226801241471875710143506226217013696256265946705108783717120601258747728219215176705827949067410507591033029572987298639351558649057304462407802568608168431757529659988874469309012348426507668315093102695742496140555910549155571481655272404776903380272331250968453327420678124052733857556479218791435344944959571142251703306301825216040783376506274460330950451553421641000533746198657528808727858859534155171062746712248033678177067220397230799285773290753171779511252723726370011208883874008763633978739007575467942046746371044616847025281693399942326819670337931801084208511184241047418036767104252406857137791982247764561808491096729893474258267398351207223477920873081886610534947881981203553418164886681082688870433536376430859258465972723193878781034426016238448296694346488089484128049451569937115242887348847766217160395857425879651941720647107454248830553358055126986378850017276244356753772581438359813620644574515155159877003411674791988986187226860142855494508235959925356396355804555263346113622898598484684162256180484310793692236539574643981597646136766582827295363468820559116602496954244851771589187601281933248486575952213511710467215997614464697341306634211168026662278113271302980973583566488321799378277824522510439806628161881978936092119895210885840433198506532363024815715013784450234418978544154027076833649583931677856070210547336466114035401983745605619576933503092267776093131511686721290558947867888014646956898135421363514001139674177385646738209734724265249762567921255525497911621723439844964645121205257427895447873555310676355124133380189358200532902515555072839277771435803275934741307395943226787426421204143901949726533765032828648153290851674957777036322023616787174411524865611082223279502159088432296425797066645614711636219090400075380147585990174281848396577154963841730292207416209584934645371338819962520067346988689156148442723830365426911394121310583437165928022646295689011555458389463920011970430770517066615177256312582238777366488306367193112773788989099283781323160881918296040327934381506241589594416405986370631926651251955866266893068436831179743152369104493384966801588752827097188173336678151717733484775984520358204828703066830896012824895997845519191261229906470832958816421853396669509358947568856592454810267819273563528801985318563720495327166731887653805189489945616949372596416371853325892452654870144078329280482653887738779973659232818958402232192449655334102671530747968174876093291705963392537239984951024725669953458228511829617175214927609015542194958826464279525452503065896396918197143861972107349741506392738335198417238503629309629970256865137290264350678205849216569191100253663389388647445626589125285859347888211619156216773081255647558379094125521954848679187259772734543483501419574001763527717945328866752273426050805990671120484716119632838214672541041194498926768538829401456476921796868504402080968965397102947232190479851581816697238366872167587001967793213186701626300501066619590591651192055443309248622870726280373422134952135668389861571259283549421977054634507525258788526092236836868915015350123194647951616977742380701573939769485979473723838020554875435795916926855094620366635399157636154618875075357963285441846053330871903051105644874569523486702178496407497113900739135336533588204679351159127554043953876202362653271770646334589580895764418326157012290077847995995379029989714543467513849258172464366917566210001821775164103357285813144566612094512813626254361607891166147232675877942093792191068998882669294413070237249801166121111762770943173829702245480301360856679499989065025642233118350691648207380667412071011587669902976776271240173303357029835154068729397772832897821743350130099001086872939663443106807223489382481756710122483366417392432720972173211490648553545077206316546065143612967837986084729485095144264386654970230670008039216723001399214963581630077475009848616321310187644320550306026806504353717384817672343597259503224662668649871749494215757040385298792777118818867819219184098889568604532975697070443644116881690342388763994025668411180873244071528288811469748434090916062506913858381233262718759580102868460985262648732675931727017013505960505306593757858089199709620276341649780169980380768384855606091321718474456299445628847638191592877900338112128485844263500216628587880755021220180878567650041221910105016148918947216867017306105497778054210266310517062205619649825856086356428089340996197048697709721735776749874272891663408469170651004898535809395212638453682093398453479437963265644511493114196889245962141866871452285234209639863394649342885656625178650545238744731839467483360877244603783882623613821749831254232318943947519335573748982444491002357492214480291147072412435028344703710167131511418278415322970350694685617236429923898946057478933899790563128418831720559480198664428699218748374634686174896403460107556398299420002485554644767612196486950877492196508663529400069474009869203380374751506643024608372588990254642737456866242067973848700927945140570981214947859013090786865977332756931444222047784380861670362286784543221185519302888934000661454647922561635889105744106469995846787996459131564734856213739418197190990756805565518316715195540752133750849320461069438922560239188678332985821013503309573161533310007815543003886243122513619347454192444914054949465657861106484772680140402622171637938376873092344082335385623039001015462649164589560994287250746362963859988237884819572439677953682813520184393625549917631060448928448178615838621815156881010849606606311608963741177748886826296230866624520864591669153105528197471476981296793271138131887948340666803433717895712988685672510491450939462149656941959146176293342575015803627626425337104402479843503310476174438578028452602752820272618601105297982906778602005955555315963432275114262091474946564977700744429451139097440206870493081491979449339098132415048170521670172799996819631255514794472997715104908774534989055362028891172769004014135618783124745465329081534352656468927585540884930047824125227837125984921532391497451342148782884167698328962770821012968869704569324849703402670977983876207384047846901956872257391931999939949860622919224799264749574089889234908812081329610164821062427194404032401585916572022869167442324598890044051546005034405245505739254907977228236996722194757137801227403888500904532579799530963112194202356901498168880488438971497600238992807811785604475832095795909116783115333678715713264640587363023954457186023552302718694235188761106746373553101655996196207659796747758849678104913693897292722718270898278718702215768034355367141056568857037717019979218203125540616815174952138190619806633594813720457649879593903389097534712737285645584519069429677756942981679024321100783239939166965871161824574586640167763069850945983150184947490387091682848202426659505297919826602904840024451678082502473877403926677685019320341673292415429390626655033220419185817956382264618111485134958329436312158594575519714397876612291692660464813516526069423599691053001630157203244789039786051599353709801312747130689108148143530122261461089597930060043136867260766892443218570238504427878476644514971185439996043192975545481148455379288166341871503373223824763033060107392528145602803561720674066185796949231949124138449015807072876128488744083756954425655279556721996279288520285346645209487252093763405895159512455892735907598256744666169005620008957672489134464100216895196958106083685352757252418501911001847386983189067793417163784230052549863538315987923536306558433967091349249710569934212818051686113918718903775599632587069825908473641943294999088047929884057888042334421535839394437033920409530969643029744099763655382205795057619515052569823989568197671711028007737901335945198767866649015724555316392716195151160387382629076684858933502778018688212909667027139558841065219314994017419609057394492043809754299221552580993121127811341724268893779949458062847396851691738881587134110980610488154887012359718333748614438980770243562360228524517528309330286751886178600153924376554723109676673896619450041706107581622178454848163619948527415273857679846107181008833047342448319721562638240127223602905061814099058671310271899468746162398071261322558256209679896169406194214745090603159715300841663253934640679493519751787237199967879117985621707192616246424166482320271003973075646604443070988195058161153014123657704961398316908592495465078027981714201365378625499980255068146697334527985189752880601350251763606027058921518395728614360746402072684453532610612138045206651173382078668190036174415301115777014609077621599771383520758646507528688928924098388345910952605638997620299916570505275458754520623629652775428674405211391311921896044327360000780876132409636001326329825247354617873739366559617359737026588690149705240853945694639155697553690189319641947182014908673534612131578241931854840902133029140435635927741107135601302083334112959843442402993884410491612506808939724102624909981745902549328180188613450116053579758024202417369560795272975565757090253398255974270820629765595840062118808643915924773348808703012558741550971942811269824000029598984244764675620153969479935954182607676627923501631504074846339760911173097433835602237916843390222618410768209854852285820460200806632894555189487315064097870273182938634369059821876578814169122447455521485727000079379560483600369397567584487152201109094481138566680570126422477237718619940930968911086790507440606804071648040383436852668369114334873625652649745852252417971612169828180628896591095842397668678246274302202834804686189306748537585218992815326473509230769931399313001965888761888002936662735603242797813482380915278174357546199899304381602078426349321306639472695286444807375989121393886576200782039019471920840699482573292236827970225737549867993002579526722996648420701829052573658786322891030875676008374189070007137198978213165890147480998700171412945751668786862888974713387095958688606086841411071630161226562634788247930272539330203157436991072661178767396284341586558917628236728660827085018845309753399706930816837732012667780269031422335655881630221816869683309814849786129332112851857684105759086105457559478295540429754897886509057778944096914568129640168157389244467229002983022208367289257858317536859134425784624241243823641384389405842601477872328319734807015662919095139996863493014680158900954279691248195595444607418630630351874543613871614407923849736013990506201922538891914549011458058870161529386407105887567222355133767657600065601706731876835665036858178226268731686740092643577089270760884001556179032223415776546372130772304945732197411501463793430694417091410195640720652496197176052128131235573100505121243510383756133886723356477939498420972804920601568601812785467303864352579842705398316060813991398208452007816104746755871674418993090576764511931278673532037220072107093827204919718978499890787452964475653926703217929252326147535151550750122759502671969057197982250567903136468356506934315097961085347131250983206470727590398317841744520348513096008823639799649276923013597110265880198118426513539485709956404483083570631150755268304785251114461621565219014160265588610551383901711075423206205376268426100360392623134514901283136165073399492162785078759464355243137531630407290157047002082943540673758184785269135074476593570478793689327380940186306212899583454303347993188328553833720158301340102169772373053847484346087399999851741405802075525223780053862562413800173527389436123638430888001598413181247199261660252510730883173999594052424401826199900996891033320642249031832274793167919006003804915798246338366584849151477347058660449693809271902449284895964287587558564744237109637964938108857354625060406857727090591189694029087581487040000627474596645535299399217878491414210197222033724681275008795148585586506243418171727241104970146455807746494198093240268681996297746023871201248597677125736980118972042024541804257353935425251913846349389937827500992670472384335991724680084119544856227969948284754116961241970077050387580183157771686578359851224458752077669954432832202653563383468534397914736606339681983792654237218560835662316942943574289819369957955091601710277298868120144992418534144522303860970880018769529057126320648672756169967276224869144924653942509039128658120591214331874200695525502708398578720742133647662003365898225663275116266413579885163405225659708579439078007765122183736207988310646714038573872906596199191149851489042826874209878116601369539258546577988175234188762519195409231014621628809880842151538360939251734066111704392814400423319000327692739539620725510929088973651105250997506785301327427920246604340720604305247736151955230624767679413354134210994855715421975621386384458764217603997719659161480158470125806087497839689407463795665236621952286636610802288578487435828896401836886907494961190760739089945939388352950001037047591324321598861706830297814348526358854533551873178735806310311063326668845746427657171788159947805599626819077619940336685336745827379282053942157508893895972648827953786267239945967739853279392935197221349476967683338677090804413007895496202614067322179056505601492172701179065371132757826195105001843845227195773194009805474725098048118285244947344955548393929988426144227982337889890853336226676118385769686915431279962539709807679981412871536295748028358046425671965328267966825097501327614968876440686371622091294767715608589980091933131457156696665462376086800026091482143065545623821650591975430641654430301836772833919286652278953736111306829083847652832163016507628584793915551268666089757405256433169866585458600933223308959775200265265108765789910098136203263031420141132349887833210502031237226893246374846210128648788541979785804080111963087846250881330295138738814793120042879591234016390905163219357077607676139148325539782009190185492397755348627716604564641055080748754429578245034555644015726649549490985563200089414284486847630688510816582096511030521710086523871438129890265532962981255447094828492187093142715811322878321683759162639396938598221266624192119363633454820458426712723210799462279542881254613243991166733455570190824072827466125784526452502835163527109877584643722015814846969023930614474940688673740520363774690641969190874402466969034079360498787112314254204410265427186481974089509808590572464842155759300594635241617796203061702944912032288948140199007252523721567719598573842866901926641410868784181890658697328966507612090487913631996160556260646391279758548191453663442393806156797362561146885507464369488828617580323975849209365843285397297623347725520518803746005809896664730301106742668717720730618616750944865777306468341051209639586632361492240469003735996024814787390495615170187171874238153338728100458939263691385113346085556832541782409615137478963209267505188825294387861637019937836044723235525665432571023261603815275994402272533261785018129050451983377599191323978394437732001247422716153698238236909587705850106132988153145732422434449729666107882574549222588197204157996515268833146846923838670482188127213361678064219318269033851543990186563240254288941446864387535783844285942114744773677976548786689292092844802860621241164490308149753915169294858101348093683514490739829435267523387573360666154622929976934800576049937195985298441122241563815431194583393197868578431730915535912653684391922764558284476057287058381634389484878116655945922244650707919336427390433605214429313240207970849769172645213881652920727903759835282685182755899557755204051270824036791287267791152579732011365560666268367378760687655012240671738649181839762397691116550904091742264555796563121152587359078232600507143865927052650846331824534656358896527790275101211385110886071888788827125393773346996462071720919906095089199252900665512680150849484869333579712669250482283949196296180149953892776141530694497823226438969176127932427508740245433871188493774580776551775058895373667821528087586023694618424561804778814941566758143588722194619488493295251714577049711118971262271139658111906028496235760217123375233875765103034058216854723785703038842474626498008516838527220210189593487614339952606672413965934948288131199919064932248362418148855934021963276673648736956294944323421928224136533560319561245511151101297248460963320484654881800064677814269515182847492038795331456604850012811726751002797293325544712943396948994153041329225356103536760046465240664847096632203758752893721599192950739206342457475906434574004922607942457351106368008813832615982733679059817133855561974506063292108525266759053754295511148443153529588031428086046435488110053602916880935242638770126286135586934068112931306049668123072272131565925518999801130985353445133719761012943157696084164897732216647070628575733761054880656292476333313401370730778291491229762048166769694270823916986675638692826077413630640293492802974084203696721345256605736063237977102417312737685454222593655529344092739573947524017241749431021245208622050804990414047672846660359576731053079907139451569132738755525550049706015926466923495535365871969632464805620674044848219799773182898520639657859310346247284351645894201109751263470054615615102898004274105372837908326581425860573269568291331167387463573569735202487886186858535131229326036941822945744331379924376757117595093242887046154445187476421178172488499760731672299799062400115419181825739250687671639686566488060554193953221275469962858861515795246984099019588784461482079958543688248668668021496733410966491048382939463163861709887756879681731910336983342207082019882968401114899525214109148626098309513439244117501342892691191524484129959471055952619213915382138212888151683677157893157788876013282827909128272465324670407827431775139765528356730780050402627837672805155795761366518372692241943634346722057735896705548068422585150158749345518039712909848728929539035513583048069354429564292646116745252945741349720457356529808388669750069588572018077518282604099491804807721919882266868638612041494935003439928204167801030416952620461347387769223203550301566008455215335300901473540205812465828488656100961825543866536687383916641296798551665588927067733037326140654845273018803670231279286947209926953033026324559244904514550043545472415454753720109931629905834164989690191868053421869284326790956396472440279258921749374640789436507350447458421085217932966325730729608065874322451780780821414056688012629834026404788224753219304145130806032252018251265712042408584246362222831861421966832990099411453935063473684987345578701609394220514283438183901564419600015076212141989471276798070412740228036347781881291016716900309733032454031453172830700556877866491043457450946485645437421741587284879594985189524335779232781221240162144238621135258544380675317204743079162246676527145978086678206685792634268274931152698760902046928297583703914858342978819106886084848932929855416706976246590937564711017691151562693339551888167151001737084030952629834274933868802406724556447744927343344895223736283651632086141430801524492187748813238414087817624008776797944743322569920463520825728119251798040200770439999302380613385724424817545088528608448132840670036054914115453638299858539630669007165987681858537259327953320008172020383976537386492865983663626092525886841751498734332922509413158265338767995898573637606633239952071807680877275464512105988268092808862005799729286780192161153811890676875524088532671626136410140095601891635095763595673700350514032995217173683655549626639591787279465260723714669215161553769848913067437422767872661758639708136712542497381910849594541221436230600867066724428974552589595481371650106322762876542174171460068990953371320038416298017848785161304299330262682422092691247417028515809648487956356002219791115277216172057041360989224193943006442978152237565721896698092795529765596780308913800820380204377285841296007265533632977991177922797201636061711658644553681589566583985175907548545143316185878362623788941154393841389209706241060764712473474962963807939853133855368670802622949351370903944947537102029551436602699345273530689466759804506089009895820066393497667758562845586943097869032025908397787443354330046189852029695525911857780058196863438927823989422849965003200853406622085919910208502500245267310660285899645499766698842999804333309353639678314008414833478305457730802955219202039404952907638503121002798952560673068125365065742705726284860863833629252599349170248223360431500585331742765588158398088756658298511179325502433440608475806822984605251983373671417275097093285380444322415757059723651256955775439231029024413403967310855951000736158774999972988239278513506718802970451325419115649676807614385477177734252894574559123363351585729828636195582499536567213054299278076599459754509564353003298280588811928218546791054969520428513716042955179211032572935816834177784267459151029914690478745361231554551854112586402958895765844384485220837723179467713680984494009217802405213617390240049133348183571004349391002080701302425303692855935967298616051900841679731631175025876283783635778470264370071547250442173812519092459256318417740592752219250394502170692834131328680669938242176674009208485655048534450708043726876780245520832656085294378633389243887048964694857078849870356421014109548200212343003478678932162012920257857268367827041014434563338554541340074326573182921423343805859854613601478353740731392752169824663684136519640269449980957724530987792788931712162326718368088142925219825019883631033720181725611557008342081812634125499457617372792900875366146395231884069748522348006482112291104856885198663360223439894584952197419060396533674330893670955432005696409806562782121816940268371377568253607742540444564838217946073125118146681681447010916635806243112108040495676858067632265171617079515494051666526592270997966868078576374492737018448348950230384381915114755984623861843339396645024620354991985877422655922686104002544259809913900314326973045370613640895958115850307508595166663323430652157829036655298274062329532889193558127924497344285548945822240556517932555017812940327295961482904520099092755571588032948912901818196816849652743673956690820646201979100916976566880004951105591947970250010559453073483701549619906466638582717466775904948168910182806728406612481580318602155610804400917049245962817017714864831336242716120426796330793079140490860472099763254282560289997363475861367059975836393667425774450020838291160902832545156633659886666166708759420351258035998033045223713910486243195609061716436381060680286486582766559509520149904741424925904355500722516403523827659771000624505420977359709468926853324910284750228165644396532248663134026080883625091772411890650279697300020734969658583764550017115556099296348997856197930640337237547871349051825601051880633318064311349898695663624410644711926121400853750109553966317654448341504252541803660094523027103782010552445496426411498731492536370986335829388561973521083295624132421271985281868127298439361269009618896394610855206007954461517594373845868474090984049880187475483514194635057096774426838410206769098545394393507837098388538221810357958344799779473423294126516231119797829226742529396543201296993312753493505517579736873910429001352923337085129288918450478426876892932812893316643224601921275096798344167825008188977609562238153958516351068430640233943591225908993386974058782840358331042251315051982192437229420448250486905537314156439177795768034881513799646992671424817025282853004637697857091875249431790325903454936724397511251920309205348232526653929476483380723572174223213126653136074261899886354943542654815275978635385839226214068955579893467177128644329996186491020287719978055492533141452368254830960713869585448285172412590881197415833272684307284343257617876387309623748459680990149255635401366505639968901303219263066152016573056263245277606473840895515402455416710659314522029814007446956032335786708240693825892791483023983423177767706597635659159634496709218224892766035144145937093875679724868645292621202105001723545561990838068498059714520931835502584149089297591181270347269078755811526912991770640721623696066770175136420491553208373952124475514687063792583459822867110876265125465141551038832704432589923671094382599225774846709591376647356549814894996857882678198118545537388956381169176361616922000456243009282457956465987950834707791876424765783516496265734173560930087890943563718719779818780616994875845983674818442520397569010714778648136566401631342813617246680221552327466528433022269551616297535353861011677762391551462510257667443834723738252037331501862147841928898580420771919276095852435284383785879611723721365385088270949489215379169545234404878820290099100183580086746366630408092529856384828475572034945613118290908894364648947454811503105470973707983807171126091594769940406614194976719949287443125122099018058364823681812564202939177618387168116146138132797542800532425719543726481087868351958301152479935174111243180469131074330553388222265986971571822595030869697024948492388059772546343616588409763992125133591111642690924792856539250719859058126806944293229954729220184007838900934522043008141115683812132476727749096658954383874095560193514521357885376321484627778584407211285039378220227733145338114097557093388148936128003090847739988227428105360293176800134009748695680744280098589022755536484237328384491005165721115289313289312969605269568261466056078224972911507936692658158880454105917680245702291976097399959131378386346357735684100018930158385449801528200955986160603925339844194564590860428375642069916275901245020137096913637191213773275524855873604284025038836757523933741291239960552519393475438349869364259714902916771186135177590624633034762647168327537536812418285296829724799160230265503688573939460783658274326491096066868406979596411876371173664473284481765744922017041202336510697127686211368966636222031840438097252502973043611087654575525411425812174699978279725239128192816925636648982377167615575080224224848891726326546605350681846150764296072254857185146485501189369105808951583386287369407108823649102614127990180504440324893628684101706089109459011099277491548337000265171476587563959255273560665260448019957015779138797628033873414306403048422974104824792672815053792733577029571527942486497439001694860637635909604501312844296063553479297073341066485537033777713137840650723050584092639473631154870289975698212096833483717427840918701599142740047181641678400071404920483507585605091845171795437418119593969530445739573313255052061086789039339441020314892420400078899074390646205155410947971985278438421907699557626618036696230070566900853505963358227683809872304135607419004167380768265347879083954329899683621246669451741664996423145892777974703578048503517831424992032320468124908503112851896387693312960886863841667945742329956246105518716834158759442877115848077777686682852784137624209747138053643153228728443081333293629888861406192296050075118263600802990318594553712797426041803758612300685222850480285904971296791172202514048587697093869466739857103874926259711307816040139342649193391925679968390912273080704976545189346581748743983260924245947507845046129858816707994366224581287943088088559400935280799411832267728763614372595782073837024184923026708347835741296804693162139149184195345711321580027379534000894608954459596221723994455514140118865455172763509235046799933027517822474335519575231053260177132850382045107733717819869764585678276447352799973816834635280219819361126469944029142796485352560263475248718954508768314189382663932329698419711310196535912658594379817061165199974676993916913848747326859823898605622887030708496315476501243851492434076980562782654831491852395222436338604892341274737767482905183135789475395748551265759141226155668089793296588009579855025405216013545863305751527752989323534009376509025713037037155591132993545042631519876851346106212135099866345694064689163459288603167860510190677289936075448915698949657075309359971745380610320588342491745085495667780543415522337193374892562241155824708567519912640071077035170572755023575728224023291464086044777242987247691702935545737253325722598505861371637600141174523685261541539699155421724983824388793792519289060547536054667294444386596292345140934910633342376185942274404680131570004046357360639942769038372560189975781648625944557262245886816198211345399364527892522233903792335949521785356329761879528200851271063574416083319843210274061953772606156485166294039997249171866182080601310974935186142778558579860861360289217938513726132665327917561471231567736525429371671700449369787119928547184439625132599364894424053388623615773633504863061723539869663640861642660597343856060038324614818930220217989417827823245751780832498298286191691798825523415368841058897368489867617377723337827895571162256137125312483658893819863061335368416186430083244902302656909768051675890215083827184664990439875885273077097257626485620620183554131612200939523590000849808718315526189404374785935956641595829551310051989072408874454519136269136492690972649628412517275082715119841915413805143178969012523185155519622899016651804122707523442491966674927659238292836958502986916499854751383758247826029228214192572776002641857986423541458789658401796061228355597607764891274606893888692304419172163212891780319868883456662590703404008580162900537322125700974743226042392567866113749046334126488449064440419648244217213657283061896886118045139258217935274489854586534125939865490353680513797971571708513394922662500107632336413774532014715763002480336938426057582113256242605814713235946258454276863526038984779806225077989357580225798274744587684820983603513592461071318102241228076964449190092617296163181546349623639187769710308788863762074485165438829544950103554198312359604203643618961892004594691748034289608298384579952432076968762231503052261076927579525727347166162581488491484970897599073276829783281445886421896214759910022739775174573262884621712133148707390293168324568281713803477182468525050056126147149438889139959866189824419341693532167006211148076252822816412429654793020917958440043411765993494221602757063153517796413478639382871739589689463045971230615204622569478602039586699832300761937422093751271169450876733826900421710927478761098936714092692293920331179535170930805327803640712278796606894037947908848247681603429152568514334230083233103947049240098825509305227386215154518242221418640992248892714788327845205714401923534426088845817199785402838823983842162215423645704941310960597642133993863197950475701220726190539074778979529394003568846637951055410513817924931111285456015666299129109550639663943543534951338439153145411978396610730200760160672668052796114349623163276446062585076187118759242182377537039559024262810295171831706143547209149969467474753291666673837936435858229501604604115321522465468223756989806100978026192298471820436465915166735467779586033733108098514389623361352461919663099257665351909917080758067411077755636033898522399485541039915154280209039489152014366384313082747832293108874932854453868256537299193643056802064141967885848523790055190714586195253122846732040183515928294715475309007017427721003623370907343799092215796352356066168530349614675660457207975737567235509286813646748544176616829831411138257995933974308333478918363122429179058678147243655936187845834986775072205755509365280525700647173795331093074728901188630884643947257579403084943638980048616292305828528152994672965478692903653801211565277908907843657161577609393653235754125479988318482878119946465488061270909210197475132541914164485535273890237130072882803852269842978865087087106102255125014518477742041323494516477915848514733447046252116988932108676061728583302232141670055438280894923362694771899296021242618562668757462159560604417498116671202466053574649687482192656668508248631989700732942505351366267567258156692121893165778265822056337794386219376672677172874605601541230015858967152908308959163210326271028110575494344389301084082959651074778372571918536440205293356941498838954394392310401653420506777168868654830882033307276698093191991228996779950667975022187214066634556201008342072264307765732551060672164079008030849828521016642642979179146955652671428600929158100810420610605330766301052901830313672683972079088456045853361808211856062588841080958278225775794831584898247424129895888535124571541648701434229778628505803945579726093692714868784853231066823995823758835895271552329997647820127544700831791171282032577688792642760938519938374701155660217370794200955278624365502017009256940942016325097697339645132911256960669671852654207791272073816263713779806557742207401283047126499781669048426092714360372483711590472828730182818456340137020204889302331818781238144422042105908102691853023523123469686896830247628369485134748547072920116035269847916240411017125136822448581490879360511623379490134968395042415439475810130388703451504039410828024025478395217760924745062337506849243175591816411499196831913998578237716136511409484791288339320680978449969869814033436708911337220389435657886087423922735845538794822070524391153805285358854748612940267877442225362220047542328156849220036710087710451111437477447702540146805217772955541329123238806376749091224938976790789565961170954624501281140817073034137188340399154929858834482722542499797301039149245384995877962769856900494618141464655512707983808901051677161263717342499076074154467277885493334574599298947381678094153210028369865728523607502555017505077464341188961403995534686883722326855630001591655034384642835258679976163198098146931743402968985874536667960524241320596048163996772179777476891966004561875625988534795881336467646230313370243479994803055191440484006630376106771951297542313824592211625193137430623706113704302418882447935531008173700488256288327303534524883116378464393016881275806104036186559562260267153887040686196299847541042332721019491378563854664259384326958493705837571432858140828744984617363965234938717099563772108529202348526704949364919595614882950772955861259090735930386124034790565402281217143311895955848513129325783122186628721695664956912773972040893100780392998761626072750857378881127461894047272777519508884938926013938855003966357075219138416414905423885891831639916012818914178101837301858109705483658076564381276454632547021729100084867265300098834942484676234433218120563270493718235077403976673769110058730047801492260135251865115705048907409948111545542478443393027624134321304728538765746174986971196450610038362868690143279795532582089773889743308161682197091830994915206742646222640027926916925172391179839308829301379859594571367324510177435274107495550178950277916377537412676601851070180599653112243301776313168238996526832317620308889968791574531005010956068899375050579733148858420619900851370838173397688648344644437165605006829512592451679065667201037590447678676774838399121727878495591927399600847802741538362368917902103618015074508979398125759593971287998850697624271608703385159174563260231008840516995191071019253299467351604953996136286551794115257171707791579922656477150907194448481374030258337070994399845151503038008793428890652265586783127491923334391879263580291203304803071478478072440455664585388180736814786680504827655636578146137351216659298470888638461625964823996228290560160030440279704337204442715380012745577163306491176402571816115222226114904962503538072252539954016881742611577680765203205903049321873396685956930026173522658846700401620130564283054713759498566648086129503434518363366398518045221665936436978504116252485976513578693201427356160565227983846259664358571288841874933784113736908999563875069311600342062037848899973674235203827226879123259395347303115258552228489422252556607483319506782541433334412398965625735439854168254823135429057887220757157304283225711170955787054142445264059272350539772834306462900093573961760317831077738513045877662053561421695763544468222572963378141671673924182672305122136102179620443956709684894332031735494078911628923519782460189955900424594183759255183259706213490650162335270472238042308548207769626300137059910666019242437769748325569870481605648017857988013558816417369216219506247044870039325910005863342129661980251851102567788377174945238629112323207268745961111115588664376656551670345523202010107656715844472454154408737620280562566784212527767748003691095617421496247354502948142120089037658146772554594458211594094809104663222287342709253686824918737382904428880547284465374700547852864544869831527961330256943432612080063082308880577096250688810571457628667982288615579911392446675981207154486607886104048193053389408323941346394811895016202997216097642832341054787479775349428998865462070569657369524798713592388343932884396589319244847640379588146691345012116863504586253021271788509427130682443384187185914039843639251227864145772989033493726296509351749254612546912524942149865357010400573210692134993199582408040253380298753856513553065572593981429897715409187831677202670491319917272396629253291824127834042661694164611622300451846330779736065257252876622411779712297555617057946073873360388520576968707382665681191847370917089620258146005356125083273011965311566994657824561704532624219554775528546090706283682147781043419337557278313769866100702445220712348193406992317254979443647854633003075183772782369989450614856290790566317488907614669528554259082927615753449668677431526941851293822870068973305707795960335650907800925156186494455382390947129579223040706262424692444839205079233355644552990279526078476012343978083048773391023007777744294407350241845206373087029766375165803282916139281100345287927769348961108683304462328527684211639477042466732760956949166801509391762836304493239411939481318334943984202543143891107887965348246387137559655844924633721432841173497956676680175503787534044574103284077497206461008295077444947930024443951005316611495695884487520939130768365868275032701787532505869175473019688825097644667355588950959618218049429990465581708250660575716945690517674959713747858128682173515631884555887173657779966169086997123922708548113586150429349816663150010575365511732749673597639540614334995799546712481228191700408588501103443004649168231595091115562157289366186283360622608582829641141601485249554984474707380136027065011120467363434808981849528771466531616804698690662443062983266658367506703472357977433722983010955541338642887669770569863095208637698582964964511508341902788502559578072845008644654236259693612368577992858696402492397729783372442077186128232491054288513729002753093915486726164396469248940294290242781837479350909869366581363654328972663982483637622055489014496058932653482523712663137516335497175673890419096605538027727566502692257109405838001917934309963575206596080056475396976780974939646673662974173482033962701209982372011410464985010177993303770149596881840456300806973763057265988022360053279779008194292877741122219822279210298417362061344189212114080058002519777401848143257955020141287041932675858425585028171398025200046212988312813668648644882289129694118168313044822844660792982035239456413731076580364454130572001244539778615921059847882027832110180214803943403615681588198239505973055571992380328031014960971624410184574383928826848269302748520841049745913651863097591432538945146188654927988029096737801558935250631184552244260921168833068955926443556572918005566452091660349812278125369138881152253499119989801571240033346715687178993887376768538502208249859345449019815235564984955383481690522668314376085157918970301754666669277363333346006519822052294521319333344094578484499102682939779392621251404001576239432764357206905842602234936819494098741270722910844329665222272894310094373421376632956033960518155091276676436158078657319968392462436534503519324435416756150751133793780672392951128037075630855344591695239207499859937395040691396533261519211411373581626795584373071382408692691084881966435224056542693620858277170897491769479130241360863408828161966281592910024067542374144242455275460617648645763977903961672426806463701192361224184366999361383003676886952801577399458686882962369857822512725927800400519327831819195243265660891382895918623521847932395983964236237184411368097022734780344471527570459725359571648318550976212967310175088987307408271685369500593140075750286677634092167759561329490954071817266836776718032401410989076999001576271468301783816666031547693318106103380539048808516403367912709997746373199650431699606146877564468324497521382856068619116125571442301569951598179649314043511128130850849250219935436898951759861344398695771568711884388816233003131610436955190880818239727157500534656286213797758836882663774755415798705730048686840393515556575353224174120775680098618141552554065014797437190250718275487596233524728375066151195148222588012662794921379411616504201366746542686675385843904064264245466301163104642638685418180175148944595978761836040800980959421689798669400664770960667319391522766633539575633555367298672970243897389554514342383805668099529948467162034863097123720198904344259451882503135527580175279693256726759824981357650833039055375328114928425044261282895480461054737745702403816571739682570631780105168621062931316375689303460542981777219969020078844461512323648607244174257930532907120852794351945627111786604520730127044389355311905521759277545803815418435054803468800670210171069347651206206381629426329023555736795233966216171383280889088736747713686212775089361342328313551696278710543130089354067553935359897089208035013413053926426048134494609184955671667206689842630744105616841595605359254008885303665322266473008445905561052240205899035899076888129470604498244188570773674806221926114497106829134184351044266919236164949274644784799031908248381270199034910504984864112459977372478506958895375879615549558407069471386148500937740171563994974399036470451740531091516993710430358456329114571699137736218408356374104638035238729423160435448877167210133129174695535087344569123239004910547762216126984436798918869616654390776319572356387875412502340677951310323322523335440226541249107900312787543945517140653906098580727098627910961957712821278974676884583261179420218786006461511699315965732409720707412753467210184037267302158244665510069736717173200496540226148130304159967723214036510120713803678546131895100190261708277188701613975708197367529139974258607902237030210700258087110939125454285706246557760879678926698303688987370842451678320890954118738405659515910613839817584869835282493636931695228892963826515236745105706512302321607803885607078648179815029336490874613245714873344513525120783882628756818885403728068385166370821774129884892553916243359669982935587893976560305776467296090353006867934662094629055835802254071337088776371053275324550151536150858887491621219449183593353849489224483152605437013743629134756385118998483810287004196779845620671432378680025476104839308118919098482620107672622166608613391552483507067603592989123886863598377386813507512054703254853746665167356765005332969894461145537877357522743947992901252617606356739504357136707228892378030575629856110893372302404886844848594970645882990072985419725539831560348900349528936334968026341053313712135799479520196115520608886489753655320615552966359723497982843459244952346295895188054175262958027414809105644345100283872393368916123025742325362718798312432686444034215040147584764094155398298194186686948916119331821596874088460546930336326961982701224223524453521073188155936494106070942086029599935139970532555158156283886797186119865936755489266759867364350146283563623492935809729115387726555364993850011421088399814458382123828178171208513179956985599037453888056406737956706526643392733888116821789342937179077366812816539627621787325082388157232917962187152015793139693153990683788960023464912583266979000150323768621704457689530760562103672958754669026536427912705399325163718108798748032649196802347829609303949991669311429628372003384102329089254349957133511317335097954205838046398271174766872046640022193205928153205832605093705402814495450478128039058399673260945837509823307333889389655544922276836278001599201790354235178172657211120470642933852069004475285128997296346292298755979877452044872542724236906691430743552071189653535251882235809607548369597267872482884732783604961526711422247323962541459917434456399451201033766437645982197496816708157041444279222484905853272990215882569163173262269343651264816255371749695772881482247037746559933767243822379390793847934918531711791229435373491584743997192730846805602022636156082291793940218824227156557780165326104262328923054768578434537730075191610936655541574080687188922349007588415252299480290219273999404666804420763030453755480238632759787688008486803405314940351329822549075673858710154211710635928277134384824327325105233280946092126910894461648711447226818918771037316452902593016116789486881557407862315102621923452959986406707052284007373649056575783397426553140720485765736723333717213762725424733099556888121914264103585081142122147638192114709104777185578703575906988709029990206420922907947277574150926761539958250168533003266863047014086327334455356285319951248419355517418084692554086702393111882479405079955808169470630171336466039033046085133336295280544610357079142279026300465104464464829931539922454091173052320154062556315386181510763107933197318387516511099894889082592321149828024228793432096661948285369218427714274974847135067970404657170787811240384778465209674935668131035508692279065062102544389895113111865328895825452739699915121919870193323246327615765089032163597055224318738283813720061477117580812976156074964480385220061440700711355549371230786990955895669756530926939100075927939167975217903623873588924157919324584316828016437766315750134483219267375369167314578725813840846372510222681372048997048182750549009001073123338019338037756901329594254539345457784890240749320246838657406691849762904831980115636197168283166299969692427920264925252109717158205077801164930815347715131004056475606847984259051851252906902038105593131138299914870737512595690965137227319820930991265851015243027112943787405343755188334200681033468245658376248983323013233433927030090768849618223196994753216030562756164887207733439347008981877637952905735044174862690493246796300673389212476870213419493694222709364712419170974018518587945265721015442580788318889562554315707113340371306710882636406172512125858404589422840593270606004601510680502913433918990709413212339074602759091555950450447856954621800956768329838482669022111366018785312943901263583906558910252835842851154999501376445661496156638326603858420667774998712514495412555142900841045546566362359174829990961064728182141810579704691453798302269728865234550443158327712181724702393869381239424092449881268868400207501756735495291339423385476417840434097681852882230842854772622754892070475064891402705484192218176669825793661861978803321915359487953165358520001420901905376141148650995960211261886880907942374545359935754036763091371660721312199458252763375484558298087988545889346808202527655101787468866838297681429281426155337556578391448901861539130841959400220239511965160931317081893046014005194321204114872705575784987140958873633428427904445804370719603053425271971871627271618502437623529681398029042072528645843832122241264064053324394095117500328397957698914705062115497594428639703141611213241463334997084082480155480338380418127081439549109987649013436514829492504134460322152633115971272668257859624590559375231183949388117316422958501823956816270552258897634493812568387265951198347852644505188607137655859789503458828770308198949156461953509970671972691235176700989432992734369755507919478937303152578394103817790897963664291965788931986966176851354231406993594519098773119566420517012027927204897285350745183893700916382730951648973896067526654825370112092886434317438594728051307838322170575879242697083185251821744424619101532397559380738854249574676405179276214476737405339970128655919662464701956206412790665722822081285243572896997568764953837869455022061867862805502100636264579643681641914607574360973041023952285600569832232338107926867034401090161513532292126327485835316870783225261061518795903770373551650511677540621420975125015259932595961352092613689680978302784806327032846933789110330795897563413355404758352891468543170772430304990933624183867735967982297290846903496349139046147820137849227615088242610542374470117118360301478089122373626018746210660266632996221917922236074380773314166110842442236095008655867040970770843936897746154585383124954761994626174232488128549900140346141102052897183964770060632778451057976841291654174391604202654607265784151260393616205013430697804554204978888981258363054474404668796369584790328999329980055116153338086907836325393745759521671901974386971456523883345154099296492333510199965874709356356722135920490563299285064211014261758283255829782873631975847117994034416631451494578150978009995228800220667013801605519228938527353166783483668453802963573026354970917087070930306566724119705375316024880794925452656885696367378180470782322598337716341738041348646697490139970112219475998952733157040535741471552099117770113461394995853602033509862157980400154822617513689198216635216646248388749631330820164016978062340454733580743407424290101311487693885076613285483237289182647380114525254374015254333151503525224631657726151125896423476296846866042197447283439554188043252943409796701758694884482015072873046911300732161023074036070613853838337865268775597848073952606160663474361396683068611877675845013114533815576871737622669513190666391492538330685135629692005434303908113320865887462656054780678953715426122796502191845623050071390199810685329814599997780790244757606774599096208930900983386279560737618165209938314155304387642643232884597605812756768120837688856428339593666635499127556562119543133252006139739659795870159645116460213447793517138274290823789768509417431035074200733146078770979655604012099004119605827931953401721459632811291698292289980526091161547200065677730263999373910568619362469066057487452225068055581191565832960801608172660093532114379861198298153182898728776063168303674404691627080305147624342940076077317332756020891031865168083287136767695206489236240840334782720010590242400384332340421746123515686212600577641797195118490704212349631681621189709478497844913833576002077350954148049059680164130667254496428477193320870116878576205414041707845775419810068939436158244864980179987643438874385704743522958049258133941752778982615056210722461826543855980018966925019727659713249349812721581547813662552477496381025011456048999410849960541215850767637945844747239076745682406268993571312306322650711899801686969374038951716434958770395795495666813664944351808565243914012465327808145223220937581898382701536994930374988408828498966635361827424054450811213140806745070619459804994136899734266447382457694622948516825565622028058859541245005925829087638090794755262755372465535291571281539407194999688826654107340380767172134990531614808828015055808436276847312171565410690638474529461870230996285663871498821007299422535653473785417126545558106372882832952175230709712428690665938197087511628712879470707790200466260925813012685404164192258030360585212495110394652840979024044739495759609186889783497345689441421464923624338745399519882058332938028031902712365568637349829242679721986014973835572630198642906898486764399519676742681152942385368157293840082203926016294749931285592404069645980411628282388441543010898779825714859913535285949001283942960540057972170819614041662521909953459345077182532907727920416880263224113849092376764410982077270947639501381472772279396527698514239976569224944652784748276450741992384616011036335740625125927456226215088520585243940906154505613172470048205730840411858148151686005146426103400834713985138720229509466297688014920296146564006078453960114284560096399294542016602593042336938056002385014143333829209372268709090420378950845519884132262304307154497317571849207599402379217499330892220590469587001995122040155824044203801593645464855332482247844777220049479253907931495620300956514143686868396316056695946140878593812566934111492817710038453386419971102376156747593826912823669052574307588010036367396784419721512708422201766845529497320910122287484565142403586352329278348143953263104820984341613735122502733410737205621544618109539453265309267833907174680164704983334429584663595754352264210717574042618575735266268569327543344619150110042166130851093292974767269270074060079858892896531781517796965113857650271779089620830000441671825172394278112191317468025117347081398148556417081945055024597355690385850278799873720272783209033580179088992684375702414309961096555112219585429149392361497335224309433462894497046873027930815021469073582833491524560638418073324111210766689758738045207190797808560847208078776839167332499428306006221253768477070541875752243649775010140727688450389795079083737878987599231609288563573565051551839916592580287325120212867888324779679743542671198273120352998905446556545747757241177467545761447192899760390774996691005151559176391456042559801773471412360237435543773995846668796825436908699143516524292961644065073679431402528089109976196779376395440168563064037809524740880820087383270933185107847090898914675388957805156359683557143835720813731134769460767438473690859912283620428143387839875277121146564683713283062692154104216768710985451506985996946287408815456017054096169680950662080399238759338275737792284976650283951256282479809800167965994211009763557687123683289076924201850466273427152073803374908140254539930229648483097581802847323729821369907969809271113698895902586949413764208502967838335387402642651652448828173567237516594391185883629794796222178643228809943283362114929424263843239004046867561834984205364742417657259184510553926301116089990052159337760733907865323624663821715083667951894261080002217650903973633917097422661661562012013820023788783363570186933864420115230809923908767321340799016054491230526615762167188204880651098402011286363334223645989921010482331912329648985452087026861511741530826370823182493853346996570874909181445958848490661144989602797683141897490560576768414563290185113483132625966976309280816139876698386134550040839952440352368149317499766535218952350524243269863980352351583405870416067502074204658467964726241914708496688499609105322087628292973924993171682994717992078508265335606181304939921811422163620215212322453265617247921526984080261376412650925379656085681305473017757055833741256363102438643373797030289360244784127836779514658563144834923677889815557265258583797419622159955150320698056759940068503891486361066925445910595193972416006970782255630241459855983831128112536427847286469233897396151388703539359049883689630341805372071430958190648614603972875745688663619067540495414927956299685395263673460704114811289707090982626616362839230761118013176291052386583261813352800660348174927579439297382261774623995269184415313239420505762489137985076200422799652963115218994259053170812469133280267016771471461132578953998684718604056600151803730337772050426813051295285001640934411007263058383475221677001724010688019292664721598777247541451590539440124910064837900646581220805105703775081977063278300811039401967815625268430610965099050289094913504717258465899209747147831580258952294517666791460342754487341640590368872933505617063205675671593820267422372838265509090679001415882314921301924532182141399142672430357356034361437937690214061229493000711425348859336442436259045705038877181250700791153372536682329670340331236893252719004876126602668565349525751476648905589810674796363386261762802944460094214549132909131842781617007999269606684208637807845156236654643019720105127513240072424622777105779475831320644021377875450112342714035609817877430069531994763521386158311447759966716671377102752346112384665875758017445975614372647790675725991864184352289872835035261890621145969022840725786000617556479909670375721883691346305582111977731074264010180921076511746269700565722311247101588018717172957191760759451475477186517962014078869360101135534647044843378099436457155107809158905507931103581814984761573161566661745649498346652578947023526536445037819505140375194611301122985401458386113246678514504440041791378392405672141389361995940721337889547666416700477400132760011473556347970305113684754825823763092805642092051187109511440961107184457237866265946381678847159100037951377628849737756188071401087321206270616342663559307455320324737981914384982807714246149802232186036612102513840510367081435305347622419740874330238553931580484081285391189818128458256606033847412181159820098658384330509369150476862875588098442219765082198413594585131760772080720213251711499472725096123132454784844267115682060836166193712776457588096762512665080012092918448349325991234019498421595238817468460023018069392800382341475307738884246717489891772303578214314415392304805984135623243656107473310687380565338251276787616805560425046774722311978671120482271973895824377003348065113175026305947985002719731193390483147687905095185985236052465697102640237784609000532164390092925660994068810882952013307732727062410115789910502739796726001059585461744574318509754801472334634026656412898102541430061829191773414898835476203096829796583641167612499042762022924194742803321833302000060269061531092401393406303025783755325543836964803539974086649381604384474367347781372097557846009369410562654436250038453813567982577578563582588879738243951826141208216111202321753347026819110117668500924681283568966777879118623800043509139452370932791630975413386224909014732199879137100086635850073415369858495248275080054854657835157145623421645669179038426774088785228067947549022194385581416560747418231215619653032090685007363670422992999727855872679303778425637729191710623882387769008591876251444317662431611621645088345241322475475986139253777824781694870310093129801776139260087062532043090575573521739760477726101096656533892319102409530667099085623620705053227320823270355330458480992508442196013200303890656698725219011583370211127763504241837442224148784702746834057787107751702605024067408866430675403166298138606617021580680507481467421313689969525132206664864135273957341841239438960533789412789134999785819904933847291037660837595218864942835288678048427865339269655376434728916821152607365955440038779895470066291015117670211768352653570765326158692537919134615916424658251573820700774551524826296379768646963735089154619559476700703784832263438504135690074182633024337528780683479176655695586825813591420342095434333849789900002544918916655752033384764653943713251205781823962482433493463663280517408529637862853318697546492188930448004049541849662317561189632189778962154583958516710513095689807900645603359874640763143960541349909415244404172984858422355549666492564574773554018210666360212557925191163724193204528809797792276318017250215132429801923521902916177026000493414482706657652225774742063630652405867939317925266691124625074173054232552689983785644045208709120579069621982106752093531836381689094477462287483329815358405236791070121687653938159135976028827510865354285973398111665119327875997729618245398551985275253800304899531193348233786027725795757237324444619734319804850977893235040241954584137970175861819909245203164305552352453526530306843771246998548265793658545488946193640716300455635254743118515377782429292303537969373406604520404537638191436269813865597214751795704223515996009289330341952277585677586558275215272537355481662233223769613249149830777132046348907258717715071863790847235848346361445912967921149678186701499791189224471414787601544487592777161206983904705149289574972913871156398864865817448435336794172404625268930361262608340737713712860581752935691393795273447154641034072152702257364188800191935016724585859521877161900997078019677101654363626733239637185129705245804649012376333353617683114823137141777064049874624574797294284229378414459986512723144047177733522426156275907929503310110026630554954580121796186100088727648010267506319373458258494903148316461957147158937116784726883646563807716448229615146388947310496198577183749595930537036970890895031706987570190191676515778889434271361217784769883305996336184961076684992648840817379636180836127614772604701770445210993357646662706820508321518501206250639272837896961590858658330971987419753891709589649189947745987515943609209744204678374681084043149152658909346323305027397766728548305534301589781835581350359693919131798324452891111096365392277877585230465329074456731204907643975498608634157526533999256901553107082360216522881665996268046414257521150666696498905863778462858460451152980664963069695334948683081517825497434760624864325880055244437858575062921550464906983135999242255264319894927298845050695959704628196439198516501678543546025212318713968881137948067734708929879166593053461158080984136399486093753134297924211195329755566819700031824886777078587871588807929066862318054403838627803252531132195313413603092122729194149232526337673639756039861362539367746777567326715520188101294744064877539001048145187212622827904418511079594760159323138219388998363498490111564674770111084275985852271363900950270606384262583165534422579472615514423044097653966965052548727696098158045085669198135374387231163105178669877435121610671859932548262541511196142079706026026892598511151779148164144837894282039371511626538526047722605082361408532797669006075607917623916493892388120379644298227322069915708906396495030506985162691982107564404915429526265347776428222990410636113776548122526548591447138305122287905621935025492396247909186932203112852128367000338080514680136362451753791165057748304056654603314501145433795817404160172474236873279995256631803504167099503126224377583430686790628425940014813820605965660333300827696625939627472616770010012668911223369149395333509884233939846924376408337576852415968580844818329316717807972803615202524927259807012380817469292284550662254789644802058752400915892106790576816379151094705564515347446504172008152078310510195469868393680155430853716193582238432238661446996525124226960438800778205670341200909268687621685800286294386879313089839076036313466787929493367241795640767401022303380286273088831209665269295960188093543993425032449570708846388380177466081302265038352549384233720203630528129760408639919363491309401669061710684621619063485882755146876313476672340890531826240575875474557243118094964173475675738902467471733230722813048479291254475141384549605144274990563533586352768455437467691532784900410740928556532550590147527865893012154863802949762671353970076652715109223302741087052070620229339655352220485149894832292087521582113793462004586411621053992329102204491749901254621360148540309139504794242480548620027538317407482823250948967222914300146214126225890374809513200321735821332475418635348500490398066182214236240425906149628261260177271841159748795818469830218653388349490821599484890470579052419761551878222823157233415958363866305745553684231323026412095873824994699434991299308260787473461824491100849788985152718517001257316198202858311374945654566915915288564674895663618884464498171608975712274825386254026198210346396556043291240199904417968812255674078092960817178417329569780076596023611078896973621010751212593107463747425130292772199858743389406275238768819818124773038341076650876079255722704751897471676680722249424897463833869954324094108164250118301031609894227716373776765215182686891859573111668735004929336388451499028714193778501138771617009008485317733399549151755757613151675203996081294253546373524407263468922956170477374687161012554488351447439034993351116529257003308288461412259116683366681178667841223865889114223599770026019969943247688194359289655314221620873296779059625179887811827929753309325355849328759288141489649967353495817571262352822436540247583469931369473822352251890147416417277304305009516173880285177973384926980978159027995404997993516392216168463963895512731138224049383902947301089392425724901546636073901444848129493982589349607717425943586169633835413765675053925711645667374210465546952048606264262224518274352449116710109484882958993676055455011016052681029277424330519669204409720477729950628885424298969699866835331561568707450604689347245599311209423472496764178025047785780197546652899153448623024397844280873528243627107271275931229664997860231907337435562470268717440613899351781124879071688220557044468163809795932931647755673008914777035115611814717085859829781614432782700340734635642857630667296283403380949731739607473119921172810565054894685494565516555980242816712518019078704365420706014945306134785768233301457205434973794297827618255756828863113633538803869922175902835608282531489283142434910172802830741167858984106557255206906894132116667995959087903702464739461240248537261255961489580389967414999619406358140461750448826486659171071827436359076267732330370697082090862626452060559544078978407857353224916919606666639617003718214070318628349576319999320031842810302509908402267871922457745581726413467026600267396032045405431613742639074839374453621204600650098750918959854726172676272553972271824139917640633141354417950908494963552274072346968959128620130806823239417280693125831379680714478960285758562272984084985823725950147837560770085974838882791498235377940684368314853032342612641803910551159119834466800646695691630932990135001413935698465224909678311962625167511375856537394338021308522568998035515598535359773593232841100112126040392626885246379538823375281035678127070426848844977529212423460338901181587884180478414697312725686699895532470537628456389667527723753924947459337232349132076056675366044115481928706181589440915629004067265866796962534999245766324525018914357379934279805650008444586710077781090096411671136649807301732349706038698532679094388974992116928202055666248194866185314613375601077161048435874393722695116641934527229515695401240815574761823965263988131897973519809074010891699183062951399029253957225079369435249217837250795392241752940673391278837586079832848906798482332931608894459210604065260758297471952639924187302578546217044270618147388833746583767017593510551505474479531852217282571811922105116901444875438641525847606576322270936851992521979847349292119798597989205262177839226478372555594050488722781928350686020814369081875418852262797400316444629574165059024521150967249777315642415029686226448795551526439928280234494545413284448627252242787058293078054330949574646747728429123519042223857739289450766412953033998236219387601998186598515348186852744650423480914739604536017612426676853936337164231181802480378970924232148517616188888707763141303017885319573917281635051981300934715373507797538193121243604868145463867703651267581330941151347345470076240605268786453859049954470423075801156033566436084172778343461117775607669353241053763726724795956071462336510596211906984823276015314750620853893653987641025979002796886336526625850416713488962789020636845854286213746804385825046632212140994908463287283538173814030937798350208416268928094140190046748315936275344095162711970291295800097355703856755074061698184655071664610489016967954884489367541451412995046621005927866578245673400341682969788013199032444183760564359146185382038427249675534724662180693711671550091753066044989042022385007394801631953051298500488948686725709358013958566846949395742438321873590895280592934751844701363672805378383031978527512767029403714656884232341594030509326945388337241369845659833981216027171655977000815848588660257208529323502708372940052784833568589506582719254640289304970213039166965189598903756914349617151384229758517684072694868311692335710063248933330734129836940891654557724556264774331906435958896561139272752090093584865265794659621531964397994255500154235458404378972052298794602975065686739520140537136151071141167412786132209607377070630020591923357181970935028483117879233870256161188311496266979245501659832620725995387503689930538407866426553204714139850877699804692669879000615167560431489537052566830610928422481540144734428810621009076412529488580236033016005118962742344454073813797970413943871744594199175179762130829486621051204481781228901162393337519390482177095739164450185313757822888328018347899365574680843356055584262219734938142343682984171469699403200500831649379016045323865302261587126510415471710935908398329651207023952725737317674129153664173645798729928225581197010929685446742430842159056228069542132553844123877748175647850306456726396805179130556166625611731240241093402263308331116185307588767045596131689511110632760259618038527392343825185975968194371848853094009999614551669857548674789533421659607794248230771251810226108783156534062830647611418609856624100400081155340810746703888393856866522183052760454227766619820167752570202972172257472881030716082479456204588623123283024402019981639398549016298288599463961468898605258526924127564302598979255376233687885619867993243070738097603077372757460294395588103783288821342821417489271241673430209308755258734076966830427561936611208805415238096853183947287416468497168624228573754907755862126763816416982638343761089837861173420726484032772874035499059076480140219612455626427698638764501225965121098858692856884745656384151060925868315595623546400826299614672981867598378356931767273547296253696853717015489735530752086812482058435677625334181807154677402511142003506995857306292949366143548764419588696616873326245548807348959227070817407198600417248470306484835962171787258156013314676172836359859132982103692884806035672126072571064452934017140326150501263360180444366414841799782372038420927503215891302398407508832011195293068432539747154385025309070938763759571794515899788598006568438666321158296795491791288167996274168611406900602544172255332724718736068088275835522208900998370337587985079094452879500048884695281765117971457142834090227797782761551748144578198527858215110741107694070707049524029631458661700313153242268563754094141882012650433137155628759334091092989938062368902073306371054353184646119166279001098706675245210445095122192928216358681495047183221372479662049302685616121159364450381440701426090109319988133467169131623522959198075494263522942258100948970067991669072225794367897934426487384888840264403140998893864224260509921925304054785334438402818007916976521655322732307749112234758652020583094812915208874420038932809478045077760989817283798682972315982349243569621887726206702909386771791833198924628255824357534836980590223351647763885266611364741818826553715736632289811858424062336917413150370795706476164398233843213588171683017880275735900301037260384615916649804705958062469988211398643736877500116570555393214834174437321471606707280250454891594702937840269115959122599328144587703923327767135678361269738328220334462435401113416599995896730540063012592863561909113846895160623238765342458930523809517298297366841703920458136725310989002037751583724131877439066691980729821425698308448659857356131259808325395289603495351650025714129590556018374979515687507037288936472521793892445028342787031750229621499954434556620089461445145282094140433880868888501116134852716266623699980481614210443943276501870113154156715632517503855943248088888309785994249160795395003213523364294295631883401056126068218245537329315372549092234116169249760575022440370644471168668663647589350999360942474922638496953131127588483576591051154288309845351644403846244626961178785797086954578854968545861250699173414140841853372412319334519473066781538250765256160629124982015235331887364715442782991984198991604769898750995480540386196343972230284836517057368137112263800816271768490733588626194234466449572132888178565265236495118248837449858631344850906224138649366975593411191248422867318126427031760580942433820287946577442735416925749363665862408641082635617591297189676140788552926629802197387064898075257424324541650974003768668334210355211717797296355262332407246786628140651339083864949295823504747785421152815750345763638706151928055096312886468962074855494775797571752361358314982950868062334778550195996948797663267866266643369324521485742968952467772904546418201593655087708833467301225509255266699395653428802250440434414149417634493653444074396400049731117742966655550898202529780046436987181140683734940050882559981796813293413437626513663245220452879855113817949592149489044354441508631258714456860367481393104360675607779075004744702491156846584488511168104226437448373386258676865070234894500760299567213186090915758128916441723361337693007202324437962674390079139299537668258928035710226960735725257629880186923854184071557266714526348088583386677918584854110331852030573691625358507641441715578178829145680303660784626519743196084365897193460662723986531886646748917134335322282098688936874993245675916525158273470338446939661747572241377807136985477260041605978802350942001692577940482749700176047007871310857618710026233341413896436789986386086419464624970172236896551605960821184987679397553411076295069636293235625227846540804245182830665300116640723638540539619438348679529514772294822716654732400044482632671856307180514632717341170908065160331486338232002811546086502105329516516387352824430681102105074230051294189177965757207384281914965548897309252307480506032958740413729853511696064113809018302981100752946893936151811475298176048675569776744424352859231130760431719827646862549807730514617627364289585347371837979719169118685667660432380392585532496747224937346541042991911437510400932620855853375224286893399491735871040355345109994643405762947186234423239045290574551705286343037078341589747672820683566036891451390171251288219537573898558294454166384184309479837236622719470763690562374794906009307436837176051451686494435754661082788510271226771991647132874679468492237697805786210625704216888256456815620392603159395763692646136419878857192799802094807834433997006213850409264323356985593171524958674694525376038247117663531884011975365566661487041448384573918570461387882898698548307522370728328234403086113876372394001562163544622102737694480658277719975822723646051668491657738880549764029198332189478108517877846423691583066678221816616148745267762895163991539322855086043136166348670027276954048866500838106533614973318973121534257787761695263601204925176095986844109558084039752006203829806336785362523790349281531704344979418709826906953876456918042946569771014656735572420965784884418388332211027881168026424720894236772231299596707093063232542940829745184239777029680550725080138777249851611813708964010899158470730114791973228686601622973257081417596999954125487323601988506243465149707078954818195284906936447345749516296024682593824365747557206676713764145542029784419416314886634592631912612438073463038455943678162519531126515317975303168002225195930800882872781192100019573911840090921659782088575003088759533596382965175203335507176928503519272367978043502640425412183837622396655133880068942347952113566324458943997422588866595738236541104577553839765436205014430920195060925761099426594001868822772133621122591882380603239058350927738206811829901041161177716585588011596518321678281951839889198314794043551282741701533369111090270865397656656099607373459354022923694662817166492732657693027786594352538973054568730356201082557664362837130165024140637520662204127075107537330093161188055296149572770533663966078981516336242806442845979942147320389737145214431259552641911802120778316985213361960276259304444095251079665866923093300324633737280186711623287736521094395477865679431842019295534732189729395633865358901097039122977991297367803453588361942617739437995079337128990202821456427360718309427869902396177625155244369640021969364616489205335588346486898065567409776775764102357245099506678566519988799395309173595027053934150887333265164940134748883128191728848626822799757288016460229252349790257710868202149170884587231666507606158007029836801095577819455950376979486245451324085683046653417013234762365154305894592908119124995640184071649311824542595260845993607838814759093729136565444363948431017230131165569134660819167565847536860347001291129888191832899966303479007296020947005444017766200828634281216519345405950875517172390245982312612888821601813293633651400863398216784785580256655377590902361599177436674463119999736619705329091123631331872381696657779905430272101478572416529008177121495653904213883911253790104622866233442580397896551113254692827424595394404584977245730185321432962849631952603882447786904715548741583383965741803741411356683359515773482876557235746476435686986198675787631269777524201716438976701220982322931689242987452784469320608623651312604344137737671256964617994967958994340447144026729657599194458138039794177874151012973614974664240479992963474064065924965915069310439648312644125244685720035142581882457955547093891937635478796327580583340713340215906081390212563305266772609253692233979379348682818837321650930885100505708461658624132619893843412025155483666056355869443480235736158222021680333462569559687080824563721822743110435535018223710577480477655824798246458144189338291822421237601456745983204112816327485204877135721994985748120318415896285802794525829664806465340669339829928674146478278233737020522669775761546587028828300199666971003940910067174366930672726771198605108042264417538374756883094917130268479767824897613993240071261889418647198264282268668849192498301499894752688128750027110474260251408226676228821941497690195113742631231792501575294481663622779699708016410764924258001272033261265160467623072963040757171398826313216499003541230453236499878525594866018719121959634880474247245102605476354602988945314899728557477769081940682039792280710535838895716354908008640697053435089546094125718274149535939204768768949759090776804273869278408761725756314321360507554298930649306693463013961114347464479088410545294336644755176620382766850893831577563146207947488835522936186976159675114514408994852746293719141529449946930577484461738221710845090509500623119425587384560902516599606330183004285039724562454158130927239845110235733340827212561935655761049478967618553649336050380274783546061532238695551083546312578160206028954471062854366437296385947311974152479189681376711412794691100913410703270408566632777530997434807916747072171629310456938602091619089615363560240566193699412811490983056770885997413047460896706112184434859941352645094663483094613995871810220305318447467894997129679823158368956534537958996660827721761957566646270527333197516400843376971563507639042291361006347362386003657598114941294885591070132344187303453610602999312176652009113875929038930733300475380212485592792713760333457813391999867139063377873467255367671081188352542665028597015263911972025257111480070496274967949397587797653828668120274455599630768215208855683572982334786049615340016101141327583745298556105139598766284730307559033689979658670224312035663616800401714777801124828674305391907182676548201987364669405018903074626612584123305999266748440902941006085580506663677513129856815207361770798946997447121514905093137823187995753657615188519485278810645466981248460478029051333503018761857250412703729643517897560336366782744934837369174759943470922269234902755460031327750157980179743190654581913347192956802260808795475979202573110340332141250292603907476945671983508723049166989095044808254749979600588111672471552769605370068055819665148825810349350062655666598825006404771808948643704366304972025335306070269929890650355808215371430478452472187841566851387155378996816353304145227047135343240660517337890512031322594248824981588725677932648966727022470431500728068277439881709601117041066442191474062772549321350739444766426865491148915644493276719682589147744076833532103875137106725197410529808192307944886489260442858902960684243356396247825814386388015814984566813081108713931843528292123785825091529441245393282656164669474902509252066476443574527521562583650096140029290637303013817403157930795609952687288503832454006476383878960729714417407708411262965985247061783523756826473629788995815696312097268934210521837123660111855729757767867135059605517372685811472906487536289152790355246966068383447731871072931547941001375570639965888642961117537519637120267040309239471200734042434112260909000280461225766387625549434744681242996009051656501225399010219926882767578293169527631452201507106172364319176126207819452077172353626507688006285640358950849534980018108697785451644035602641437043106008841460602987245019093331268534410331379864199364621559085759920664113906584107780053972181693853064570997744910693363352800561654752187998996077704627861934299633665872444297868458649054919900291758179095201578828318883380172332677922787192173240647692255488476820557664169784608820682251140117640489199152754057901190115502870005282611674066087875071080480657144989177705800816634785688642802945388546154436438076598173106035885021058556725136130423210059899656136823108441369563179046156586877505840477103599261238687703388353841540144089056519168368032712214265901903448244540923830014257980877403578375859575849370182522065582088920453586647568611899153558613801612690185574941122317146620663551487757208620100893043252119144833760312851564118141938903433296578042457499044493331889921765464520602191396641960261689321476260156314607328412183844189207137850592339731993630080253424810019662853743587112247963832560315782338865049122892458042269548588417983493412801938744234925133583784404658361423408632224371058550086915029506915315039775924302431474721610172777779350783741495342074959161998569940337307085454838074114732270764743085692899918810264155672865786493519324611613004142224398788487171942498476449310304060484921756448897215072496122606693217939829407049519719919040560601139359653564651767773375704366391171446339576439444217136503288437390787665340563864903309194194283346545374733704481536946081272311042572715180315020994186431605384560701149458837432095314837293673987365497907412973370597404557916943414061024148179908768435841411984750363704667288583050464217044644480320659783484370659437531152348143955470546704661815534267617359362239392123768655246815964050121879121335013166282976623601259605957112136529175358483828725977639507971048311710122367782149618289864691435226984395044124108640114341681603165768517384699140511019730723015776572840284766426809307228682262208186407147516793555773626302899156277009222268477828208480154582629529836522664181444492299773846367836568891574197922343974340165091555138085495748454490181897563282979370460459648618126760447088106622504630467369967208989342703390714978443151731215509709164591056006404545086235995819148525424094241395458980013227866996764115323871132007884778706253846732370034896264696805660736220792255816536312671651774453900543182190204534938134895013641082167123139248856737608477026901134704873162468418637087801974986513718425561250340189643306338997455332737098098337359585139347214716412806577304211755576830556544182663475866820229213435303520000688236854275661912925865891763334338484384149936486877456737913456198701478586488659622423899742396152778027303060194460199609801803961109344726484864189011523349465339212059936063358846627322839205443004573904653403098156638726993367239389156639775250673768587319302472994137975969248011792196625196193898779293785034212952970806030247949147216929142979017565352557395754564187432105800556989285444026357830573303307120373283689792581986237192323061704892153888860423008909807050977044750404681483333515752705109471547622665489098992828792550887813079659940323063644119075611828083636167312158244526374367217985108732547600107463137844805032302084085818583830542639349700020492658055517788069684965772512169916922611237727289980268636500365065585313533791934351535347361162743770981970546322000246575646193843048230916110835618972565722231267075409654092480727897606782652954117348051883116921476088099864083329207106896680797240054630231712769977763908974533542695313120632273061831191977067585575935133676811879150799799067480309818020683611930815917889238797416136320946757343306634820608885605481205555858348760137395099568955848979144673703754172756292268792361793984307070601934535829881506505361005082426935592439820330487028155102848266763457324669547799386598412790113977222922263867746068050172973835033838868492255385365785516876824509798648612117706134711780573553153764845522088897751540429353758703344095223430472419534977607625856488809038384838419824498192416419077191992273156834313093298262021170660091245627944478625468890381873874987639934913213680761194160859812756097824973452941750537974418105342894461269118778896507258786950339617946941542643646087165309264565506926992367857922436368414732880259631189524850167588418268986166858910091119356845043952771872568374276982206828707090360136145480304992492951143843162055060230803471962704622610015957945579962040167567795194893504246169758842429387486244258372002604468556620452847880766179869739038951815866117560504614989599288086815187047276170182443897681956149009468777568067322565140673059973116681942587338056521740023414207456186306342672884539396951231310159103633308366914097546218262253734752616651801435431907123469317773243355053110442291391281102953737530210114172702407383182495539208026767920963500107896285791545875640404643036904821787002395860107403279628775303564611622371984326915911271964813991301437378655592077126994750220097850920966122499579274681368597034423608276132312861561674388521991893640520529185626971614954959912701975731758310307345267058494945255657032161925567904661624169034993949410985506221635849843079404432374078718629224978808045605809923960858246284409084738121998849179570958848423726992337514166557071375952289509010230080239819122735696652761748136915949951098746279252183606075524961192609211458477892844625563495366310203651700952673339845272789809023010809218196082621229147336050862951194003855452497785146613232621955664940746725678363835004385930435889024887284794511614163935288310264688183229382595471731600258874632555222294465920944125626859299640783639058194654829731201057298371919175604817817292225431965755006973581069639969278147427266420846899993674588828880227053545451738737523004693460972265043902508184260957054931999036836208178278890449813426289874992334878952141137998610693941976628180016664806079428493434413583509623038596467372183951660486462568153085894816976551949814477408978134478578308569411635135717143510942276162116954954674539071233295373654290676763196091686339888424440501439012015998231625540836347125551643116680293459066259630176346595278439187663434980628246891349215198559986938534412249827063700749712048089581880461280567050025940966744514306964431301523474104818945269969741755298404305013474101058608168309999435401202514753221289127710632029236327125170611366936646872883693257865499882911444129796319858043881159214068316373013543350702135502849858147676114136354163954118628974831102377559937893633868902609191627520903429868592068178199863342995179816949811013604241624134710333677126286196886313701673708512518100769083230149617855768512696934261396403351062422209333100936238193571588338652775945907460778970137021211185740986362589690677361224876725768308236704535263191178488777563061102412816440031621723076885087220203273270945792812512000879088843022649773224161180540553245349645444544222216702900878314999872643046585371212211487380560144924378430713395301146869330410937937038757931888588097994474294242606957336715229135047777888080112528932106449499109859544114739026422188584800894535647158329517170010837172962714678351141947834388979760908390396171664889670408285977710653075357783853891676833333646209480158084860781391036557847739870656134605845843372742684999370559040639770778631121063973075617281215341007073847095129646157792893899386152246650469206800359505287485756954666564629741689721640023739233751392570290310962047959847427018150237911232985568905560736840935440624105912754075754557686807901129786536607567300690159337413385158416600744869902185739913616953288296626249111814876437164326296161479881440847189697152755220012312315202819914898151398726730081451573966289913912840926457202537496260475861686454247920748077816809845738957076027280469837030559831304503790959813456212163666053236279378830222788934899906924399201624547850489996224233035572384060667965048894261441049867271453450978986473244725646151398910064033865208057461992392021300929509817475437212348894935209853675620632868967104480444126401221693236380593099527006469897890634458984392847375469222547705402692560997500028683807700290708612084208802626009075276576816212174363549178954139923844090389270672051970012335174448326360075520587242200904336949079494924456837276170891685587895912181867240643045748507315928964855606324682596362461485460215961966472280041818209545295737756918396947690335793777480667456036878180653378767034329163147687501309932812902480951593350842862181843680942632687508355279490111280980965609236540890386980700054468816616412246808747601985000766135086874636392359626914174636975811495306637507528837097962417567433316420101121491683376703903427123608463866104597807497698336158077286156930094577074036917491191083034777434027448682833360811977439319584555061044014835022025372664180317647290639312405178555354707507725453600857362556975816152484377232679918146580666831681576285499015828521558558611936643243122698544324389231508947223421750357472011890109701697920263164945105930261723102429025788109653917525606498891435395909297448260829114482100354540452914636355376706884267941668272256492502720086979151155180611544923752599676999814617354334792053007164937044034059104405858868523916145835630214008591305154458138107279499752045844484934813765989351742988776723747993282078007986628850471701239955917761060659475575898974845196350329548483819556575449635744025485161117867302607534194386015714727885249027925748923313699324365940994491693349929592170311866920601843320556034796672674521879584678701204478072132995771924026173736073786355903438359760309375789047103521511889664751939247105409918544748881058140297795314029122347591684697392278125056674433738980963399439549106467820255916066466733252506133603716739673295082254907248193340767776257784162413913822587551910198900072604552138755173518821451001766706940878056525378779972579586462883969262875658074169338317452903159617386190807232646049592478229087206608177814611257052134247699559589948502422417801029133013012319123311707234686518160787724427190909846074669076562618863069768997363977235433135819575104848334328891323505466917262074577820575535406821817512581546819012506720465746355362219082367924737552076645466434646952102026858665366461995200073080311475131198444510081168383158368544829659929520293769263827970611590945636635297475556153286495558118482630944497176879491212372221218339930866045842713367499057658429739521107411612222949383239050883996547128240776643945880135122076705706938219281684934523297630417661017516959371155523820704282932479278006585884644915126884113454223441264651033291566697925490119616782418716299530084905644678393631288748705209876591459557618274546344922873899388486090774086092109713397533620040529109448615505775452507928601805904057135268423935664199086084482488917354446783320727833128354057341007202275506021787668144284911858080898880186494130938518531735664717201076197065771804224852842763664997232215690314242043711321225053473120822843651351094656680345248519902705287016588753939670235600706292691782755875667936516177948310461764440098728142324549960495606579338681336306126808657943288245973702934642225036794234726856819269439281845315089381591002752630061961366983015453698690846537036670695296953028012345621399169839154828826305207618431083759876237426930615240421081611145616834601926064159805576717603123370384346631184353896319863933562249374151823970053543800280131017954795073998173702573427956750155159517184841475092615663896439459861727374512429417834404591006019233256314336524869392915069587997261105241467580316819035505756710504282262109552151140735561302300202840379493256153176601709389491919182689059055785605349668884244559160305284557626178402030264044499162460366098116556303475498603814693916591125628051733440901599017916318225550668700896313680949544869641055307994750615691585977501749518146448506230872776974649082943804277850589536936210381297469814709094489696645246265461378099319481932521141879709805060397946332968826987473415026090754398268282899603049820618010990160177501620093167151459862818699581605930097146456798980858520171275729713882428608119592981435047219638644983572167634673879732097928597843237239729103598897735733523462491953922684437315658674795104879997429584123865704792843761818811643516116158691420048348376206390272737329870628653846722664828319242225035067335944164660021384345091271413688433617062696224441687902221837574769824358374764536196104979113021504151535463105868424424229877665321388420270584892434490492320584199136721370193792879388832885105914597233426545057260503964055003015841599881159879387909760575306753240644586990131417478742172051210519405437792519192345815421537534025205963478273238708673960096033011099285552931789620961002365419271457274715568191657715005421694611103077781802336480973056953695901472943456665278383659168087461936389761088048481196300090516361703970219441878172473189882452274700958634217108787906645671859368987546545506445652138565969002441183972051315746094477267510053158282579796148911175998143238969387408584467964988628467009394685170417050486766636567280777225625735662695701318058822859435582385509720376599498433990122990236094258656720432699674446051719175438440870545748488913025682849673057331755683410905581685422271045996928402071689895257055869567278974035659996470213995671345783759541197558910836342327514259078911064181011484030003808609063680910508715920029381006079621539097845292871611277499925794699421776907064832422114134172595508006161648455419269996575874873485421878314660851438128509122705808634632558187511218403947060191775847968284492910695019433209215470044433965814321576965198428196223061978033242498751974066212493142748040106718855388165839408567727151070086705861515384327090288933637690226140646240333222245321049792321900517220412708087884229665341575508076458354542386213477562677192293541831392660993603361227060560887889045909854903979320132647993365381104825193911925617221876044645567956159009481548198498184218126010704038894694422984202919032229949636202105922510990177830208067838746547807689186318096520189544454108334017832511613362362158743541089244266711918057943324983791528006111987384715010671361623082447175833485309236867876380335534242103584363536478829693190512356974659965106534587282403418138943809903749702012772514469544822079665976311627767323863733288435978391921959242898843802429760560294560715577386428579104478972075945431165461865497650226934647494300335235314729671560727496805601034463993210012291362517715759669997395481296599834613682021521530960209752885346426920087771260000928946236010180988381441387752167898029575173423625444437968254871719724768403309241651891748820830713879929465565616727356036601528128214915975423233948092093158903882069798575132608317399853510655987878325569712358564274689513960731922701431805844494055945415144756258650811256590446190116443742659668589664319520674420125861599068334584074756831494237155921356243238668258004218223820853696559594633844518164280597980250502971206430549825164520937296079951115832014261233663422568041826352944159335999345992084363361532163775300402210529114101538006862673664809038751570819444641078255878400617537257786859374903229166402760149389578850120434814449775637138523582013398948759071772172754294217710771752299694112153709903393215881406398951269535158787847451074347141979441391593182430335944076484178702755094501128349140564044951233800885096157846548909091754092110123070000024454339807504285454716399010128192907644430861700500116362181210867333679599749559773402487698301995804096772708637982559404994138125449821261089505428642269428293285413639642651084136998897769711689160001595385000100259188799820085328039699275831017082096783582783447592512725237919469074476820051345273346206960692002173869011013179620634681474722596113263053393225850026743756279778686868242800366162293371950913070846404665817318329651857166597633848100517319825626279024471499070541789721609420217198277798681611994588535004232787166378982119825539616276655038980270486394233514422362929306250402437992585003805591240823870435235666932826365829121501663481048842950921883441843751890371556626548361107258862318419420664832416830932066255494767140312310146887322993399496583633132802022068507787479800512740043365682720465367014108655758301319966047288524996757433138960258268648470989158005175003723973783541194422436519366661926105175712260063962033858232991675490032639889444258137382705842573837512280605104772668989380695721555159423425529839890161869375028436329724339016554189650248740597573344429467489277407816025648688429485841276132788339540099488699245003277195333736612907037117130602455519072646390999623888582771321489391914210428317652152537866987299639798680903111681836318370190203354506544623448957128816845091987644386831684974038796286051329521900262125742613916112198347031413795364421145431078121258985467232541583945106692038256452618000479795051106300697682201251041304376233381062234787473755646439650552476133018006162572708555873700602273248321320393782525484170263750847991405613360863739681446106376756347058666365593100321080748937623993783722805750520551921533426876778112962512446602221952525751880421390827441053592155246723217969628143837945184102676947962109787761950596638002331320802603899310246061654441654501392406509445081280847758245131452124405036256740894612323711733084964402627050702862343271638046180369644834358938922765959073966162298604201804803178158444540740308467227217410614446096577959427670020498896137780560636397374558973415725788696759786134679310378150813248830856004753519308793173790649289147747233894112801435930536633103092170008808462695306392854668505356954479766846133147871172987462543561665048675558230547422287333004028338781632035816008236870937629230240826493401019472930359681047848695071609585819824564659281356836476973830793650050074733711756721374467597104706765462340729298163709484556909460603020950324585880838165856205661203038919194045535744474969411872451242351024436066964806353547703292166732716020998785395966417090969400936395559094658217710141497386339835232766752909656781499849602376752553155121890490039648524167152819893505191834249556266620315141266646495523910036750267738709708123997272609339466079161398389780697698495319214627514433219575778119730261801627359161035526776666142694537484435768449324810993221998919373949491389080175654817280129216639937227130279031544503348150631894460537341162242736596293224016525629483021385225370830786903185762410000421160658830848915093891666008612882131329087674175973082120840794240703794741600261418191027085694919978750253263474711876326578707254175215949224475170106571075706305090961589421857920308155359863782482263378081818269290643201626960539946570205643007428476038417663248595696315892818864642913438733178384247596468333205143591318030407816345720274856455868108426174201587563249247981282480587437718295266913215207498335592060081354400373106521824623420889074523349412564329312693026634455654439838665121450254904963417610255390524602688358729323071920604527654401301447670001955305251082554321701877748277206993445290132363262723710631343355318988626204068393149687480325008867803188878490049470358437977055532286880078864060638735723178962700871826389169638557748109174974834691145896620958704459939420990374923793256389622300384570911548267400526346633206038699066069000958762455257914663647886146312218661118906935924937492032537662863871838779354415835117489573272077566238849704311855129741114084115494834487697466532335854024809346247683279828785708671934259242994734638883314279220875741817069512669465303290221665846673589882068805718657664597806444808581940358128939633931626150855799739358446456623631982266851370277581762212469729035773950446043710200107665821104957615262930364437837511618761323970140017646822711978414918847359898519091169444696441711299899487727070325872639509566162791797455471278620202129212085147201059938187063108081819792097521274218072573522776204067146650438507160075691640954318339251870242280935164649432193085853938153023707559540738158532285770199306597719131234760678720777041318137759095688073462244555236580981026113915730710856387186777348163431018741507584275075276094803080123969533690014794537804537533234967652504601885466720308963777636315491184916890529998282157093274184678011903262168554261087953740397844001661949154771896364004242449144060257825167652188041714685102098768400810127361420309895628447518711853391178836974686043586369298085537701943586486046950044996000926686874016221196897491193203529603383033097341901077810242757404614968783232866429099236315936129441938260785430818379281899272921156149382419207137477520275153472449855520652657163786710264306853440942154307242971325525261863743212882660503246926329854081583522201434671894191504357848251992900117261583339186354821428809552171555099673775543163098719669012567646197572889376117749944798267244883553528751375550306766452008740572707859616947502171563285979820506107289829219172233133279575063731018836085388384805622791008966545786279136326504290233289094735244264217405302009847125591180050025321728761694163632795021697295287286205965963416792588628901641389024552951389659976565641064624599837324091257640501446709503834106411248505128426143628496936228979423336169703760632662459971771490102856248816468787097664541324015180269623568179928058580697788673362736371778593932347465755123821931057760070264936396232416807042982200587576425949374875785843591240091521685958091655328611628534933029998605743232623075040071321688502040731541120960658924492724745648011025566313441399160176116326763246594861203162573071213476789600167744587007271964106877137592865298056476515359528191577261892552605950955139179403826115968413004230489264738508584757820807317329599814727882509071313383263829858190806110558280191783444361590435559132566540628798198795601729712914150507498985571426613458122570578331374731361281681093341328521712565509090560066112834009141978810443038220706750092048592879564379006394404272726147550442273048446432809511735027567220287800807919343809291523258451935689982272294485261168268450712507592043949752720204334860174128567061795674711779345548626589675877867966824697782028134202648732425963136343020501264961115299157272335529883108943332067882691760679508677531703204279670703541465908258124560829968623482047331748766477965346418054087948939690671460172952071761180796978666809453859134728093650460791596682520384766762704668002995922158578588606735803913864712503956576388732699000676761278287818708832949938813419279349919649210199388351045029474295026047179285215849595915295680257083778980086959568466931322290869114969620782513645930901762047258159584582768533814889945110470503875652636066153832306687628792572898461783706676211279073113178447118484118114047618290064535040390876061228388320411675612309815039609181277371167208024484365765998108187945804628119711224584941847232038997165893344190582701741395227346693013395526305717931618425176268782517135506763692293883041056821028464612800740648511742262598825675297179152991312033555064854980627534031646464924920851477322732638666221757161127448962447994779347766964564032207485531323494829751641914267711876127059278378951850083454618134991587768918959462521325747955323655048350302464263863527638089015038535298372122542864119856096112380230571498912425388748043252382000253560231630892358650365679236251850987589697624761977051914773962748735951252293412496151214528729126657728382980583190142850243681143968824447098285758332683241433262100771631493742934425391682506013902387581210003586012407207679675543034355926565427491556850121358719447539759542097803563874256200276820072360565618629425248091852274592624136034875753065965239226019755703854986445406996429198097385938277866856516848528822975645471004539519221513465273498560539859252180296691828458657390767922500402925027081664160594847640082752574999756004301712545100382294889695455685463970732976277204913729034438140020945551384095025814013847960074054599900921106884395230180394477653525611050022833168507844074808630504819319849285882431414550363376181524869747747526572874763896710703976629826466595015301886867894084641933998897015397912338016647995589784195204583554634371107495341555809518295706756263670334830335087991151329924682331224636914337393403680602226393207969797525386535527672984974677966168764942078110323408157855961747475929296527481510265625378492687762421852267706162766551721807726045120757066515436122418675596616638363730461302537846675076045767046933385869386890336056501387958668574019373776480933527257633927479164194888616146180827228642407522827345517873572657137824428490721230737571819044102508719857108398404032409293891270458971785834478410836734706197984256887522962975178316050858387912712475252329233203964687381095084371076296963965215990766358876026351141456387295087282791713628354008109382600976432090457648060462364534100787215336524800220809637408974097435611381723322186000169540359834422859375890317068340351264031738046164988944999638639086629086925613562686156178139437312168621597753140627995565893733084824882731270637488339502031847686815618471685745306733834307858362711940445342480900995327086718094573940583858902225765814688100977867093797550795940961492601040998852132508911556579659857051123409550278809617742597298731356903406077753511765462785617821213624309063654910477841928251357528453560604116272202822224510817604876460177560372640352990292996518621286143100918374900866079378506684483008794038696623936855884625361074024663132312428687041527983340395572497221863273702975753429605384211083700704969052791759236667039483951465912368649509353659288995781624688473396727937351719977960565866645236552563494243162799079848191135194700008837514171061821641388698175502906844897974222865090581327320402502659117867457855225176125672205466759398486201698945492331068783922968154162295324920677927120225400606428716167677651048800226974931785904548206764056632978464945332588005583346555799149580587966404633412227074705849600020787520534987682074259097503449997944331789546034983533705394638547034310529079475192152324893288108455313054599948686248189667141985157856439928765177985006848690840238544522985501138960185836153725338618857194350419361086427779185056790313353738581285789637445830077430278891163870790652435785327010365934497353294201819431599065749736260883101124666170570882873441230334632198440530208401073430603269079412250117139835351570542752250261264202450659102621911441272591922899495568534171225132319971936188641176382088867669244914183347725242805965869286960062316014034604817670597222762975168799871302910838232487158808204659341862045764160344174784140771172521050229380444954486121465382608199417567481047957030672880902506711547261477512477664804068508677059258523930447785684584039013194133954881685908585444289117958599931495518864089085518222894449799628799878000238420098271106656552886964619703207512135425301664231514979485058964877664591135504152707934156489179597725474862662543201208748911677656265785221955748468803410740599478595831795109954765502021372849465276808399557437809339804742872395612640406813171523344928374545823211081208363771469081722024778001381804168243250541323914490651537086500662102676764681816591101145275768976530294860464897825925124576335908547039117393508077834249869002932617251040723760871419060796020226737854023605091504711207597933722773351336142192216733964302415504946898677926509934031650141219956395593319417984249120846493325073887142330221775787307330202689655999346204243812501912994386451629755977807811645145453028595097883792893109806127225762917518839296186671054928054817988867114344818737816833128241163085094152995133764285281234066769266278922176100750105859749264957832632611756705205346022558414437557182578762025507410238033152148269746727174671352071713591927080874031234934932393290136669489360594171473502928037535686316556499550244491052702629792185825216583765449269440657551232018371462070546939456137184648591315324048066276854488756706590502642314523031394700051553379776144034888613223130922232336788030981125601893609837830384786825559464394204291460525324934886726273913513217404387498351124999441090594743014899770416383059779721658474209312473647212514735231771515424778546580048785273921485332908316660217908167808007932389433546269862365552387386198772233553989563232835352065349191588000751935228734200687607065952715941708424432948253931738127850245253558935119011901633456227316097629686714673899567569475861211118381831493570112757447948806212466176763635229000248986627867736285505354019210756476115432196004714772864458448260194003309463880891206166720647291928192097993425993678732628339368588398291724798078057388783986185597176295320252092047370910244246232397778454448139145273935726637168675191123881658911978119046781983019353295343754708745533363801567111976403377970863881369842813987966534671675948231219785164823740402764328318659334179204855106607495444602515913345937525567896836202928846730346363435816103621259919255166583806890198872562109608496541667645866991704468595437803645460357151614904772629031886337254146289585311183289994982958932375068099793989346581889371964583114116710519504236467005063682657574009961266393264525978714254288941555762422542551152090051827680411960733220161991395286889405493546155957024734003813789823595227666667901950170537270104314054412182198373107600049394111670114127094814896323110546976581496724756931153279278858151633649006362972732726575883483154596450066544265244427254779861115382276014487452116767409104275528061375695700688916933293966857682294122698275860640436770904421524494852443942133309210917782891774354183660899359912417305516749202671431470608747697887271535511867735657609046178036380655910007305148625052090199096775375027518710896194253508482976878919539057619533557596414790542754033277992007226114462860506309197334836066814834232523104164095518665851831280721405686625876505309146382204320309850655384210611024556911716876052619648417453845048868420349865420172388311651137535434653484636905124395751155401128558269950148108790237314011529289478577112126723229143553064955583143661170316164793623095344916654566550431771287465611711044994253075361644750511549511874810673887191916753417927288124818031290104685159811404950478643338020157319258491090317463082474831201267141868949227036813795635115490588907189526295266971945593949970302666857014388573662251800553827379308274652923163163971308122182548345261861634031522256860139915290875879044580427976925997624350448941545900101979936044306808862917726561016908253291967540463450891662010925759734739908214037461470587324108867460715411883232665817029134882691247758931386329394595172690323733020779822746400549450192227633586434938868143689342214688548292182898312477069458149790860843065160791097337456276531075002413568397582125805974802212634937270582427447157626280460080609201074706202020916943927237053247069586923373497882570595473680926668751104346379919650444870854954405778297928182440303637445263311638235914585179695326162725640688796246300739615175182219611325243524397761093295266727639874022534133317011016123387036096193502013394079466103501873176345779527761603734103719679861291470696569680282638951246116116069815059133338078776941891753404336573537447080405709681051552170021711983228496767851244724866443457374496560653887440761333944811832156331790424907262768170466712165381187036734337606536550676570749421619302377652157004428778437290063565800271611162071662839984486854994802169392137786516630838663225950783975165295602015483453834652738395739357086117971933630888111569444726243575707464703987090681301517425898422318631922372597993485613998446953324876614740424354665098465899998279258839791834382589481920003211693627234512306121170475310273512117639627150003190248125944231363130102130279863616283053429973959379348502625002602711911578591789821477703353172290652213815077709613676758308424619620540008492457672969167221290684112697420924881328722676251078265048581868845985204956688379274877514358474958364468551221759000239558377510406001986055762071099961923494896310914365299315836548653442818412795906641111488733932866043343149075451411134178415332932286382081433170219412887476843846267209302403310986484338356603406841386350786265831680004802925232156033611185837415625703321147125309789957217032244157480414263994175142510672116784215168315685828706122757702343102949729738380932427502529459026306849707892085872929154701893420858448279161083668086241915002366903504852226087493279968752843602508990990820292017367310973271841180477898401729466791316722925806945168742160659000038542725032232120453871439697912000822872519496098890206908564524558624436766405421189151091291782751082685712576526899311072248886611629437478090740544078434690130519510548996368464094846664132786223105748315134182658664161288064115258636143309765101190900831991046561231456832537209964024961526926256473956393275475886070590695637232759708401613933790379748073166772423712315330064301816803837785864335845056121433208812297272652520492848669731248298271857503093969753099181337138431736621246208965344186317583118698565863215697723019288138563236833193102313179389869586859451431587783605389241525123003915575733576308052875513532784392214745188141719905985670335437865000210339973338359819792295859483400468738414649753118466789479933926060270824515778070827759864381789562667807762323710225382111709654140391119304217847520594646888119804880715272182244073435882296793044644723042558265576152991222397038292719650255238901682148369243582566766047639671663612360312930955586511332496434149526583109733171807871530705772337535182157963322538759747394996805502236319093431360581232065271196137652963829370611848405921391930419554172244780618106718341086985463912128350469316907483296295703465609049770182800116922083004363159120895431841147936611052408566121951017883007549253849061781218182608856852838423581618604006931219901200627647334458764506330471356137462017463558811028515410103048445607560187325512586100733299638311905954095370781906260394864807797188815979908230377726453005069536080143646795403973519467763754759603854122883077896500943395749669878387200908143216830237129189988603271386234930243014869818773833692198362635229495100341548062039159527048963957695171714205006497885526555672586508346924195493780771918844897647208749277540061783390998932405051358189715062814312643064250589368084362029422700466895262337109948538739132941850043411864007007032342696211430168071112529322941310005595550527949276273068555324556771608141223693220013763369344531555252365428427300402484834930171171496019782620915122505555548150594827715615589060650531698361056538051682404243630434925171909349648459826860326967665006746294828177915859592726806632084943492467227288730092446573240053703804510006584391314339201604655040876304953506406098026416923400253647573906218106997674093381224851895941919742941039755745253810772960659592367858518517791333898856835071672350516036861747824844755824780775154033987303658603238057156718691538634271104044575156232746929229618277971307970948150374816692955648073232530737042832471078960077569362910189038220526767759428602760932281239517353448441754842972229964502157160989659683614639706397823735451648857000542190633475479378179511783488730009439758052469786653524417110236743303993850613011303130666264981867662816982833391879861662229725298251287641475427744890900816244409920692240002723339244268871040092448643668257659362730110603803373839894125988205644436575115982461894086667598465749526511104212701492553236549212471043118095793331200210567553534057539366876031389083558926751956882794795338470461735623371675100956668467810878838498864703628540895608715988843009924813171660121723640192981240599422795696859882514660565630457046770929727317258420059273229553572847710763587532507422315480590260950542716190000810487076613514470222136587738963890469347120818196705284241624852813086722747517534069374018779429666129656785536772406651499829534543967129912969706711538006915694243429412289780831537935392298715068308275590295779692458628104687048910971778818020959881120245478820591024877637629181007845351606511605412024336294004079797228796143576435038882861737249633435250570587322020476348031778862874731084194381717740001098738573580167226399824999261329479706234807937442309745772374937744800339805587529659176955762182920679161789237979380932559790126894576981734013648637822768011176533648706204135862720240499376040516104659017899969248710926539846689218796022627835228974832973108329263426339078667056039478245541844082854289508257941024976654608231934071087427162607256066766195923430202839830724268018008041835739690323501154427767173551624591117741569767923972337373232874106447807388238216343056769820385062464385082995400256746714685019157770123051477372027577703473204792973276475220927491783775923981887736844116902145617420072378162208439205496925256286189353757246770176481797845039212124820964219014589992368070061858136561744922930181091878557648195777136106385297026843318072898121299953724351770107294376009205232960444987625702218225779270090672099858914291099005966892815678037407612958223045209659128309570228143258091256845242337449986270093607256776949841792112138495105213614877771991035669153275779328728832036865535683298775444485589902107195511967719470470094889337078047677129798746748964283541899864450641772986206534073565838056684578186433355969018322123273604486275092313137803028694847777736100590290982669460975322336721596534244865642333459474403819619929054490763499608036671346402728210712128678089162469057954317223279044988595585354050172513622641427595798323676411251389854483073505911227752268555459699953312259868508039623894302812846178602492335171249524416318580563084937637393846855668982107492708644947827610717844782256645152482824681671973555642776455901642170536700513716653622282477902849913432174800447349838449566727811684235671208084794316901670861822575068402351048478914827787177128723196308693230798471423781408768246459256629572562478739512972251851530185541855044937536933291702260361884014963408860499318971402276727836589362988514803538738082743878222923222527017178019158863713568796802807982200154695036350707735595467947037996181959637866593699819961081487318148392985105738870520416384579673465827873770421863283488412597892100318010853844889584897389615855392045051412982737823274734913302526633638705807869045288360566317115820796152975881155490360423685523162417133693066815092569218344013065854546956748001627429785487933122067048520423585343447482768740031837744512253211536924417448948621581098938470657320989139193899236546871391081897346877859946213361954013687836565813749067205030160112504561361657393114512527622768546535771068321690551268961307910024992878817224671378313270253539441403320701564863465269870574109199971048041561362931784330933347318013915057087937611606933064740869431154269846666117869450184431760486240343364888662302781073448535239803881541077016323291612248366273626908952226124172532755048837930098402694860252618521839831657270813869130790785036451029516645335535144130243247357427162291679730364325604680141523082352682596185299318132289102059302903452367218233149101903512982595994640607860957526662643203720445434520071620872269073314007994831166100743461970416897052564734050975951918899470484873796908409378986605251458635415953287015581359476365371743333042331149804696757618723655106604243640356644380019968537319002276383991879126060134763430196338394926407635949561647342129637585395413852230000700637294560976783065516872136770117822818561617029528723364069371479961125437971435103045917590375854279781444555911604735683393147586623967802368137238367667918993096819801684684793426519264638187225625533077409634207562053758680340171003175496179771575618545329724509132315594871174983667847234156149450067316865868692660771181300943717050174754635963518279045301750597819761860060383470053552312951567529999262650024957936947976573802313563779941644607374508360630568536628137907198743058150381336192020203109022472429532848621641415199714862017434126315867396044573639576777725621331569404206544351031715550246595383934849867848247864462954394459630672772530609608614818417598699927916721090914277097828582639289100811624322061556548882825490027328768199085319036404777231280695687313081563596398466410869102544417091739195197517292467491535431710230075870126721124963529977627182380153312322420320542110136778206326693797582655084254700785802748833626522118075271554412159037700466098300806600410703259043791298507282859748720410892699704654734406310788672407548528523269067471542306774042818229218973427211400895568472416716279580113356364230184218786926233608440078857259801012119798794622415010582751107472536530320471930599915150088474152348866236191964509523550363391332540956337464949339550627511978963826155162253999956549415607333478118481835302819844003021969616358971598467615730893696874005774860879445162875873116622375526549178137464446746586599468976841492796354722270936191124631257470468442303067229856421460874026023913414941490923902529012663746858549066515309724626900148988851214061676861891233513223538589218117516948662573776858067317923963223984125307033536582356881149331806558368951615344509949908665218607315900204143662037491702203964462517890511583523654668380888657206770950532137641485129103690328931969171884207374640171792110344247200783987757365827832616236295798066400877299308236485833320456771051026943705892864968208168757837335478556590362563593284638172784621556163591414366936304498910521656437088927651240143690037234925076971752059540979081407578300235811132632433185379416517371249060901916038483025246298259374925749086952418995620046615830418390023831336998288048811238679785755129647480462706928905874054210139580165757326872398922977093197143451888655398385489469280621721715608757582995886915414522383471175561855305193814054863843492302516504146183923984171840428910155357718876982870013823184728442777056163694585521330973351771905682600381825171699398640708995480171406323722204948080954492769011535713821935910044205374915945651356001353866318629908959768751313619732650107901250154597515724564507507528644383180600337231141683183119405990441326307996969681203711402034286234464511997933141772650116050388601149466203433065416568167905586865865360661849416436434385168503726947490959895894899645970631059919997070693236195112428449359436064255046888107073294375973683514902112324645460761803667551051646537802581863779884191166949938030589130072883823880367721360414922957736965210247459610970598161115463815093587034477150563595003266568607944718160763755460270866437687478903480909231955264167011624742087326231209305675529911752991628578210696719445752617915023327655383990561169618339161568043483058407022589958537647436822651699585166522768420976433312311021708198018300705434321120119972999402818420168392432501278915966954980443761952785040974992397563389836389764613905392485210652868529298010076240367256463060761927240622931179558383099266442176757815191158243136126029203111662003417595663819895945858158894722241284555824650378883877558389872403146339672049518793843070838035860685777449337136724866486625378290058551742239052289017367805689768501752796581965322148680935670166436973417829679308771575561118272289177390901681669627471233850256189679296233189775608358409479195982973172452334124308503150215932021989291514071226827020781030021674157924061388899790095256011978403295436550098045294575640218145808908983349116914252988138860837306111282332162661659957508099957121621524438416234454169463390434401693922833622916419508396742821601621316023563052778004708666220481634471803139006506185241134696964144266589797820233995305505087759108718790816234166767175157401807434416710063584660283291023390487839369231567376267348394261726942062570924678115289428351229848078682672406234227655799786831899742877539633249021570655574164200338335585377981625564969460150517799382815978899376997507095029017154116200367344173310953132014516913076531114920633245187933537457604490911570626713783480457440925264604463510564393152076932968012819540864013221512972653885780087394148206785385201025332320848420854296165973681488323368552969064756864893601228115902472043518020095364075747491779849229285832788254331319542404931767466385269008011250506049330369163634920941696048764739760878366751971770467634802025206012044140451911087321956696851322257828183236109830399823925939229298157282166017009719483269124611258358938859751911205757275172501847793900344426753108214076271115775300118703008880741328007695606224615203920228757471518197638328258158093013460706873930540641894747426360068793947890292602235562718596082434262025329598413972659180006454557076294564796273779708540591897806440258772705677083637614540097543749151387529543820462519283966464675540779376006926021908945698123089074593392928672371694894747962609762147896188571777618547125277218954563462315341925424975154616178004912716194357666584357140945166795467899995850554273527166527385829113400616130834763448502525252989579414191437806332452215204388148359119695333044429042589246433699810704298143691721719021713590575079695519861758763370939246164489669761961609458179213441309473853343968393132500485515909943244984548414746904186988862250937924584976241076667378129694949784873769444950501111383296452400303548071890663709005505089124123264973426980574961296123256844113386362934102798863642608218506976844565964150015308665123524801455873396287790062773203739201911816141733006601304150878495439016545830569174678875435649894501085837600905723382256958459928461892601451181075511674951771580239476857389886877485973938251251856678418921901577490985462412022051856305547237597680638095430529946672706341434229512651723840346227126439610582313680222721269730060550770208388290992377208475115307249313507414613725101298131681073418925655155018090646715830293590694929889968001254410674442440333702193375520955159679829140356030490742142615521810271801297799521015047044921796503233599409522009091988135759789408818344956918798209549108027864728628027518369647558718419351644647628301967411685230197649380730893089020728316014934108137406108937140651204781222475321385250071822578300687467413573684403092426305460512709105435453975745763974764385761079366794200209004173552667828384079430621349788529466217947272558373209658098109389379440552300610780421218367065305806972891457244612504591566645461280835103490756031776364712731566667405901521945402880515187631156039493009855330690061933583288467456424081323312599260040924215186071124770097311277479926640657113895454347546238571143366901317491774747334455703975662162522892513663852011635276098117909030249059963863696295574184100603470728659003300212649420643919816672144663325265441048562373653578194485221937454699395659740728806313203687786503814837247336400294597480916331014058612582690706364646615687868681216281540681224027911601585010726505762432689040079072644681775807801627892774192027167336190441412669671995841326472671491351294400592285982605222755317179846879898223903324421656539495144093629745550525354295256051550337363389775795928607362089644833630453941950455582610480683166519964201631109053557234356571199110341130423833584524989881653877104940345511267105247813051669233693765143546532228250918437100289191835188916332682260450306504669418077687552498510095429598125425347599086665447126092676803013470567556219840345573087590445928902224909671511571122017184847222091540466368668219700048331303930070482178317739421868451400326645423964644686823189712975729560973694748030764458539133374320158251954875645920588125651193963506430734003276153081941004947615145329839417441469921046363297969291781134657459836235305703754614636143534249839298382044298029056108878222341959874498281413680956515174465710983456994793423837280637790225296668171434575958042638059337779077215040449087152096246376137900041520485736102343324177933623982144782383352173745324258133341043569332562357295426405367862182175530745319150484200146389888538249084994122888086451648291638624040054915483580284052892974792727775801357516757036289102563052081940881517299274858649605016451167969140355621706744495769104337709114771842271224497484178723966553864524962856510702098281940981852064897560637492711489860789674843202729984387753145403815792665730839372554380412421886958051975273019780919996556921438173810771011605487321931105118577383007807694893528633512812921853744202707569728073553465885011378647111405649250112203713551880815755188128213614047497263835080181136131370240968369710708139882200963663629186537270431307013206358730991054622767924424315599307803154913584163567489810397420214577973279812959634625727075259193244450657785762108212989053912556382251083123831282957876917127245591254655086283002102985748727285538594849667397462802210184949607252389634872740924429769831768910236681976943672464594131564022507707937056930980883082374282418632182204061241357650638128344644870229601129285304853504805317873419682727903375140043434904233020788277260172848748363742015832175630361758743728403051081901397856574605548763687869127900400366973267500786239848266363930107829728164393919533734083922242463779962490132778221426146919575443303505450394131879202128676544002608547846503396887775507931530795671857280004597191924353074816497100817414166528644959432444010520886489223701979736048157972750766535205828313152229578043848431100017809892176013563101091403646065192774059059756131562653769836714810195532075002156864794785922957216373779118439443147469592753761595378905280691015484153560764379229069228938954420560607912989855553934428879554826910602956292285405296013146711822274349876250118221945697021758451143361527004270576912719824116755018207887288869815948656439040879744558451998442949804494447315012528265005593250686998053945363586560398636752463299355650623015041021529073011692442957798652567869333029325253605754986702143389575677796495106649929302683987856474122191548808802620854710108467389064934776781729969646370149186963203899475009879864047322812588038537669844156336954650946929157080839475313680281467776572994762340297905832408119373765198341285493564007515918092058342981299774887103543768557506948605164660418020824536542466157802336036762468682842526816692042615942606375515547162382315426157613167179126494872588680594975412944051656052559585729705858554680262750017280033380835033366337094831282267646585764429342274506197129095726704040766720242632029695317329580151459868851263404555684641446702398071874084235770310592111360940189034575262462694470100407415119013591207476416411449392978695642804984369810027977525649520500727006463880315133644100301321610725107408417968946177692859229965516576059800104398906495485599958763819554451712490063703017968439368216088063027769348611840013785072940997711865032635914248706165201020179970013669659356443214507652250214687660387048794983089259671387676430460113298908425308671923481334503958445651352576537036383225139140531567049412375327802768338523004707277384924764510373453551737394947813121389978935777732765414117903831132379561722179212433825090832227781397105690600582822320709779269277757031164899197092305926617201804796523807322276967559302611421935301875794844416255243667096051780719939412470208094076764909180708633093723764788774678568347878786362402880676669260209886548060556860846887045980300356893220384505525548553155130641647071593915678322322783290320666123535651823410576072863019491957349401488684519737084416302028482346926278220368950250157093287781722338040988534626782616509602354256566222717121403060815199950962814653690606126395855758993709659372877040511026749467194920031821676120753500990978148898957686229168780863628333836737580220575944566671348521574560750508792711219019133742299347245651010902171370528404870022800872215689050274207088273256938088169795340932754125351210119443924910914342672159662364991051687630508548569090707740142597925797370673522875094952259582064579650553403650820851173996512617520149088323810825414261924463846878663067919300910543871437927253202176802495906709298456387595699322225378061284025689924674377258215212780806262513981642302487376870980315716385522407104668035215778927602710793589206083071212363009100106036484262850463106693880808989931910668884560293354523995773939367708729933825390842536743836726975423712915243217756687150224726106111005144958910541315343856224048552701878797913774999291389736525464099332816694110786398634604339607847324403234527243393255091565287279183134659920324838119080708136131641209629047617415548545620731974953717037416043885789580053985325907458158664315145243631771325017129055250799810271193147018133831975878262751113300853885094835860872884777532261174947284540974853840893106272507815229008489587099244240012223360159750861091987728587999329386818120832486976034281804760462305314951572402144912998187154159569263352176160762066043300714529866865061469536675329335556706751017653781718801888322036620307932279427301126870242930820076079757453066803470777258340500529377185461211210742338335333060014469171434310446079803202345974012569858538533026126625584838352049031717670329474723658183095249680817725088638434700655806450841434184898684230243215549279162712055614437210633057963557882297980796119993326857345214121099198909757135471695237033482256965910685951697050766842098788561005196256189068681569863356684139726212304770713876535719290906016774670955150180937973049300197894672027276355178710189063413029646670689027843872296243376129515114361503070507922155578379289795133875314912173089588266701313694751929720088561168867586739439014607047330540520066105806305663125153601423715189004625095609593743470756335274098496737096168352431303804860068977031782015286862012000620828873786391955280032193870477718364318582217731905019907057703077974541426183474943011515132522305069438181309966911581303043129393217979356890476655480465402672385230135191959756496450546923126632216389777493596913736984892877238650351546450371131673779987640311575330873859921774624864961219414538985345266229464730502349452094761677699168987357286664221675757874305834236372845597105681160171020194087993528057533514514371204973736057193770029930128255062058226128941078397148007138896536990358885381723424544427522090294154840495388922996432323177587665234949164309562364847336986852691676778018560218128160283352333815065744404310639905901115454456629747818919916078332606630073885959493364829689410620000440610834497968717950164794925281102387386364358373452011364116963277017373890666663104453322020705711987473378402506176404943633039448575235391856225426943056993824512900241741435954787605023114616440024915757800131875638115901881824093726061794925140560026236381442227890859475919099204079126791179140573399979769447176740772379767686382935284041028483891152929824199589199095865244747626006583544250356932254894152345474573476803878864513488599981211750676811689698958797820241445853743109734525275917620690284968184159242231137508717129933528360203076826306440379482709866014094273427558979208541588430631662419284763115248479167084508144521431840533303713666323973367484079136969815044386715464145529974266482456941975638662875344941582409998797368424092097857763412816337149115300698562152275022539392736146020707426350168837159268102167184982078149402309779104540804756713660694689908078350453885328338175943033307045753002625611488501816441252103679294158258458633140684821249657994415439074943875903904044046445782730138457173309631460829006475028319131363182483019550492152931236607057310489911568041584727135063298722700396561404899684491356708421343409554549488812842627282993323488360033423890357734406664012882390610923188722310903361417348554111229635023704035677630388097891855589507246427645467762546383530563165399033470979683122639878778785487120997362964328829646103691292143898602909895241744689091627369264947184943426402692628018409077371533982644082122019492435931766071238211989607580089466847105739021788605358326418083516495923013549296269105522906640017263968574266587206394220394179191969683345505412735372244217834168400714450624974270551902133582452641451132476860076378293229594864542071867924070702917858382668455512586242189973480538739918803134233659394537825003610998603747247610624976950517456995906990981661059075320507155978682697887524969312365193599614470932148078893314286203470664643071493348812269783930433772055457211790875645013989742910077164376067715439693011220236593457499353585445800929493911550484567621215756353266229505378923631964804599871182876613360866525609506892929343317184742779550414271801305374598277226583234888461311834289573116398708043871766718671152750869801662152890845015661168326541959630758362376760009781429647719736449621652107959778507464222066470044541503153382348805507962761949331900057062418416390534487326218019391733212721008154142649613707811771413102269627701643323570276422929161787314392372862628461294509787672570402490076609311363101089421019021180670825472845873376938799327973022337600593499745497597207908475132770249976994377864759490906021395946940613898374356434611857599426606511002186832871899191620353965251689224151805757581166540594314923600449697900052698570887321445447076616162481531038959726422093228798955450677492748952373984318937312247114509638457018419388737059996215092600700953063373655256829944905747031993955562007144832860448889912066720011082320835503894559854066301237763756887834345309690146348638389731167690267819518456975711789231120660288497156960390808998414882039370550708139020881118805212891086703901101523176833973017419430421110690779337878974169863510660661426888246677241524591088468276974296741809166236954327538288672000872565096148125376954255848487178308367792191853998623021509492853269098113275113328136129505438851400043813573062863908103870582346887624090183399824254495721512846983615646238408633186001128124700279175637745647534906714934111557460881712999069646634659597393336945526534890400380030281408705093641727396999436996080697569237204961857568299232197117325422767383403384431896111254421843386503033542524608717789267539874079734691103281163270403062122109304399785771718709732839351969648503337246805321904347006486497761183034498221085521373267018068870643076747258173554446163010043518039387217355594595376639728675462504035398875292660964166964526032547495351772417382652707977899439150079484142794074917370485213524629956712273699112117935991402147575208742360368251059548602870101769765091360666613006302647145843367912257458917537434590084241225845920447374906132079696481308229746755124122809768262128448477257367804410721265340975557078252921196546639752912007517302704441406172112822154983819935793372407639576788412304810802406597333605977916638420916736260919452516499703011199713993605369281048129109639101637959747575351390229494102589687526357433521887179114405731227930172664878347832300596604714075471978920885160706848667491147608846904531272681645425381074315855165698558308258648245252617783455897915253247407873496733968149477873994033593046866476275054823059383291130343416569603697805867415627882260147162179057947657719589583012050728743206794068858243478679224085982993800281104224272996875792705511351522042523174213193671878231367605288652205724524377800835729449392090567344758047023765843789044234620705157695156043725206210109631073860190127079791115167167224102237439511566388871045799163626959314660981704079843949156152928486664027944303686413652087667072009386576880999123914055603784263380375327954845222024570656912956174146110298089023412110661318318260027578498273831055496931099197084578541934684662377101573133924756800598436915906279894942252711674228490651588497541737485206577442450806766642354338827398626607678029503712866804861195208455694066914278204911488990146324814640685035686953170637315721992312289813577997241141996079314283950704181066913815400979132841582423837084183581356028133703871215105816242874676367047645655982502699675520359970775978924444955928078166394586619651681561488678356288174573794969731528510156112264579023543692460038348261576847017751501744278840083349583615992017007144254381668757092826566218708299107446021711170702583304219250321166257661650868147845995075706491741598942080685553300268474908601386894508806813993841045556839969781718962484048360916927502213111035010915431699309287441042961602686921075574439453323540659235233897133853099931730413777001341236645982764628671382796822172593789445908411259759517765213266807092266875335776407287627508450818119348321363876084784457244811500476688247501607428724080668877263311489467114606267712816916511902908731740993726338905756616821173400569018871107921154393741626849688107661260650092870662705360280292073847840381214093011868034434756149232971645053569745503227033375379948263324814122580737001441292585913606994716794208259722341755337249331978499998925436913568581714781801239654024172207318513876307293154043889131985591039961829348493013756857122488786703865032861681519788087065846606558237908302005522359748417778709386515146779356287846032834271664863446353939899877025420671360610269987968142808366789314275484146180504375443859985132290086735561058742847158420649119404784334342959163266324525270956504892396039310906935637074863200689255033318774223753962540603519249681770189579675925407700720410628047679610030359261896893489745086947140936218046592072093259283383942311378317146674538978823311405836477432176651886537129160516437735877929129462254916873740780259300850796462306515329049912016510443159259393454192973234594430664787306265020252042199348818441204104800391900692032054186557611199064304331896498969638021102998122283804431632885150994892488780739224234194561329691710991614011485883053059222638484998103791283622215046579422604474258028764285931871024425056032665303567855582683453719654991786505373544576719509517998465593228002720039602997898680418062170875085291457557835397828506693288627120503133498149027237485480627079986033722418939571743112561109699901521962456225241699496813106675086795560148702812968212088500147127249999339465327409875144933706272914753879134597737080558305571096773951080676253369952729934607664078945489535712014368641372886158369791745315106985521521595839373300397490578303319523189795705426953090363197857091048159451841174224819041223524248229749100624152760528408706388337872676187133280611904138933700329790068125054741353821195087180573976637045221756124629269881903025730522486446657023659064369936028676705216556126471018604551163292854913291379945927266253786823292394930482175988873251380312872981798464463207557729609467466725784645703751929691200232077301171756272227728082270778594489676300752388810188365794196271126903180591749993875748439281458560139267823156422302838554922353529798130362033431426468378518105769781366236077891887684706790952887727939754508123731338465349105225570454148219378611954933868205934928436887380469982504854016949333316403755645920140467894504728996714740450016208984884697751829499149618869749416452629538763978883384856494154720645784362452265674650593764225574880691596951303272952103058487488742482513068263979010522241720319516059495039624191516269682081642642536545732341243290999521084134910615986218544650748852336469223219200728677994792314290666327037833593302464344850204240456674581589346241752642729347301149135057050620843105050808626793586893964367563315259206830796356887455349719154665288811468525847012712631913899015883322332603495062120978112388388301243651798105121083092253427267665942876994433668156602212062758039214480229450319626425884104539710914733114711071507747524582030047201620554550505476593190581936601106302843864321006151918589016429880811637320236610222469286085588391222842020091687936008377238103543339197076061219757867620767059302717866885436221718564976915746683887591041902580357702555611572884754232757236867980617087433519074831500197957141771525602218185340634133634712031768426284682825294046362902216998058731983907827732101594555117375066199734571559149209238136572243041174595991734736362661062750568414032235990807786659729502919582507122515917579962159395771277140569858192940686091372616202694627817429666669409301961866988004383465834764862791027219313530958405526042863029971354958906375632626567447435940880017464101469731738547694979285732213719846612936385284091482002525362892912494458023483673506397533888442838086929596691503964030509260339674055742642484411509805430408633064859188463569339529031433416131121340866779532171440297584985664971257815396024246035916062353666817292256156787989826422730448619185467468173174865249496333671094547642307907420618689734253195841068352875871507369686597878864387189339094898594182460519837487478763600606705823713886549260292006640432689701237109221419096466755428120079488654632153950703755442729790341962529987574393704284027219692707560951359856297977209078750831893405183844458737203988860404055738423806683881031683926240106313485385154694307060645264047724768881618180540082225016674109117510719990349817650287987883034281655513081170371792158357222154685206537143806506314746445139420215487041261293186247661145384485191592715620040286776504414832991500184529530548605910425100556730146101766675970641244901158164514251843804868938195072955854229600794206066250516124755564473230234006804749883707163318116184996822293591561713068597967329839627840287075824248232866365733617086527311767594686396704458207212901495947689240475843116644832603575099859283145379904910296046491278014444349470712965273960198834523332177147855342621781245467396380896053582177023664233094044953515748179843090905123735791484720328602739792342994995975491797436930172910736897595885480486940431767822996630112654670617447894052717156677903261505724759834161833336109894109408099160659265408850545510425195891917713504559112327406638834631432199005247317542968193077378778671026253510909310288292490389967834910801755255030196600756828450065005119130729994876296491508563845622101141733741882843608191190935022200005455953253623402422123584877420061822216254245990667179859849924765178797694130687276735725398543104645474017897103249745039641999524748530448452689487836237189460542988468902198737280163928877258088655023156878737562384338073905399255190067009527081327433400237890964125536894885699788574766779787944385930796036089992490599063987132193740650020213944129324980293526060890057387560107564944308372014443535913874353497845573480752128607447748166355948531421978794612946167848989835653276447270870197458374302869156076280460297861064599608544858368682057659677978297320314193277882743682849467392370774912763255354937886143969101452933388811373337356392470101746316878149220999667467509318990810362111233990289155517323278955830271595831289139625288074417358684599725976587563748709059027353805280803269291289419472334271917256573373281162332804362100178636307452055958987628549302445114380969821892464044074555084774198573790379227651125082372180810428526854339892955608453733242402927341565533310149898361495341938313125185060728638645987613096426813598117458766193734158545411587416405019016313835579713023520568924306528607255171884359924442843886384708934767599831007046161270968941386750217290950135196330837055588973090122741870966250064891904905205248944704917223209368869549894715657207247176834292472597807703937990494051259205192661432160708819248074282476244904227992341258231606482336528685738054196640952803098894715911445999704909769194648491801944252098327615580240663884210772888278743970388363690828360043133434202675656724605061261950596022139870545130622708099861418608247230250419351653888306975274577125242161707849072837568971116899773004459311156046590485938629857327533485912506820593080759205915087372464649363216781542203038818483029766288463439987470107059152413449669072302522852043203011466557999526298124900627431050745740110676965351922463913449517243350992390118368934415370645814420083813617519044038514789605220553294785555124292957571958200072326229370593589571129055876147796440873915581890778865588566736450259432786227764604450125703730987434910931221847539367335991950859492905914668313640858872686725022662041711535656492081548713166928904005124766000039301045499477162318844028365869868771114502485197739985245783008352646714386681418466379394401468558413511885673842477003769149676381558613878540726025630531195611482803856684848700268965389619372861092502321377548863466358585616984878565141915531781244754417334462470371859698521806074058668715734160286452393603096386686888316742520968635823016171109906812589964917248287590539429019063571385725420649530792973417480617749606389765297488452741589443292268375960893989410175425901786373323685956700707175487786551033023252398704506446626926367051142640971344837268816549766132962575732978774572337290780321697853591673561043964822552166714441068043966536275307390491113680798289170938298563667855990714298574636769183858149488156303253478927846604486414767141477183290597169584078088838170118518858724508328546901878944936945842695860000010768411667031484847593525298747887568305480440942945706623006762177513554823996009237783459791969397588907059078909837664024915333912915000197193825497132022927308300568487761913240524360640565848201038009503390293621740305790617589174573780245354772458864600565421779419893804121700336426716054797668509751284020002168968682377010877687330454103501878128893711201685602062173282863551948434247511212609922775219512911903330511918346354995506359582830158683134340498844872933824910574641000944412048023492403528069035435737194632965974610602305001662144610237164606889287258720730211051123203666806166474706552868674833132189859663255744603920249488199479289231545245680159504997446471876819926652222361152275163078816572031351490011816967527275201405435868336141311327958185686081832508861857852485137870579712912532775153607955782512963420117115756226126246265748095800593806177853817322343565148439843028562768820510881280410451853818113317211887191927357874573665298616690972649663416699989168046791257664820849180256280047141609928129012465796735104130197278636965320880630334700165583476603096636423886457352463401280539114025866513295861162432298608247700682131625120183942226875916751388770450812159295453246092053107331599187100457522053464821832951799092483100545068908014363951950517299024023875479866903097189309947055603287273669013406203503911015948866780222470860026192468845130278737694949950322777367969340062947453296491180701305777785643774373695715638070305005598321080823376421655367238454982143479704575176283901500432822201702663639151506826176055556356096697790788134730636200783628814968694153830736944318080088075743695353264190283108393065356659998833316613155710943655463777180176086739113336164729869954101984934311699665657045868639164082228165126140784422868744567361604304154593532230403854708699633510282111157338120423593199903745488556431986589092839079548256403625613772357064636736244629242587326179406985907030012613165296091154211437411512623435247775204500734748008615077925335232354709945846277846330017095690161338163863921296081320271479904831783603768610549796828070745218999282678457515517778949887015508790771124838187611055434512832507880332462931780138268507256785002329475332943613598133045112252922101742082058679355952720582185756838896994696433786814294130733253541152505690390907606414410469229622166148887615038641377769660256665643294464609780821498925728495591792977074769329101200368058867389498353408581533899221756746867214112346300019719450831579575744744976011059467862992154011321012128030777108055713505689997309568627051359385712294971611734081770565528481352222095571197500786801048333471585574970362170950107602523529084722699834879883020058845692716447682857281917366387410735456044829390934778561243640110793199757321311952815142906083260593063130125714871167597441908309301963567265149598106062204836953098353070387063447457355788666198826769076631921215399894797223612668056932470710913817875469105975335406546362140543101150466146931319038048218007624594943316415987395228419975066565077603469795530435442482300955840863757464332777008504522043643852108096549967944821098701514985507893870760950462907937868719357483507658433871380130308564027932379738752582502083589314945244168012452150977745725629800909957889834128540524935321693900491791623192880118874520700026594826415776376458453821024969537110933205119259352395473584801994725935634011142574955622981133386487370412927738674871152527679237469506713688570363570993225554913304328190736261489217815547287678100290639946575968484039859003775509381441117842121201889616738882352209256645891856412478636213097967280070334957229631270700558855401868105406086905293491683321876810870627673239949285389509541833910209351569554201160252419835716993540894911713536378731535276519142315016844507315458604936563515716953647599279596258981746345400201719604554997237545905287059535739748684103716885756725761182562015468714110087713400573684675681244977154455257937239228697725266510728515268154226852254652535441506722854521811278120976571815039126143450136528096421464092247154620470057792681090569455774463404970639776436721935637001993162782861967136204651366565998025778929233036686882178138782363217768170797764846724003728725406189078273596498235144810483036723339407850343174157124851564433257819968660023968055517757390370600628100242640116439197823360086013754090557415838570050929279671811012800237834178082920133708649134716755463054939257714558250943261884826723229912526198044822153346150069505142532274537767343662981062453380809355264592465271236892769209467817150819520840899104071670542047364279866863736872439081045181842308532901775765764676085331946778462889262512776595169066332678440480718870536746189482548444739175549696614439080304219359019915672761416604450616374866866922693601343469510989881707679988606355334150226036081667381773274102625863555564210081469406624873278524019365681728125200925052876776753708893802890203635171686748134890589509537006899694848019852137049280195701784127535652878293600230773708195661771795179221871194062099713988637499257615813084794669942988063079507904598709659188694763127352805608245157172958334588602957714540916280282881536671345272282258607708205166720100088221847752182824978346755553007803655118051285177832862194911368171395254587062588373022581158767371871385143273632658242801247951731044839717353089473064868856126479665999521133845057872352615301706037434304035072816106835812774260397819424895451041198010539840962156376761979028198089497580530183139814704162525179008621975944407625010635410289927108387208760933194466538383352761737663761515725577350663314966984078951629029366168579828821277370931133044067551949466664101314219732407554673626177963635142688843913581739330328773791737262163567021422196664554433313361803798103119384271343532033420196217881927415212822224647528203227433724391124513754610610742599693544353076518315864193044610233647157434470241062539371029315798058395701481188393637833628260502164701372928183953014163395115577333245054371464513240984224438557399295515111522158121155252073577713270862423970804649927951750228564413922112013028719277393150593655143590820827229858407695434587599348088379192406271296471685150398093399659911101817019688002201109899828008350990775873098015753012929699596628412813539755218488205093250610254928219171440378215116411435177757083492350081849652235491887916645877710267730500041842691435119212398959807723031888426530498223102961851537973901150672340315971650932994099384220543984623759378260377434394669063196875846548960682436551921885090643886661805379641362811126856002006176465106966946901631496631739618671053108314061939520518662274787708071911327082268689252235590895570395431218140749129857980255848174974803635010051653640530812544464141363701037251956688443838005711254696265258059754941974644945093926440399366715553486912750087696966825093505014860396010890130788150333036300287103860901434067491658386432958463779388236978852927210270004432104073155781932898378322413770495673507205600768768027146981032726633606582780494556231919911002328803301410538679515567022809184151929645322286131750568944260461005998272950040528468322657008927352584761436086954081232880896886791548173367107228870992006871549028085448477041437875179326245093843236359748727351248901139063821765187113831561226481679634455087670618059771303953579670923649815713267014155126199508398288069056547708886337408261936931796871673069060780140333503024414338272233447053520015684891955341323482641694185787840919724267014601716558028767890859193288890881365658932714223377370392155843932354162794507021224820986368284427399920724494954188427891268196783999773956773387501771359524136329417673551804705074904353757715307599281734832337687228988294834964817926491999347407619793601424517900043586256832992390223496458083673431645865859173345480178813083447154217024240488222125691541211226613503339078629517471514440349800448301389144793644204286837215924521268188112256741750705167308320117101269708872724577909285670206352705851942945293968004588621699272356134672299304451970325158631851718074250956984033207466245549570910908475649796291504715373112393840583315041406518654409272493836097949973125610087748201021441295380033047075274664608659486199218819478291444317977172012916255080716293792821321962658155856432288879707630337910503953746998899452985929736710414785792994050286232642925357990392064004100663407348576334330640484657658218198425353043695492322366151897660019807673861915475452071935738477402507655957788145035540815722000375320837766786563184193479709825441090408120431084679678415587806380094889539852946405067467838930350947082785106371085768140976837706334295501271992719007205657798275256194834686041744007171307323942355066405055205966644018763798364088998732201794464737939200424631238564485079095797447348947402378180707066624090462557571515635630790677654276338943028561770459867252360444259549292051243086463898742744726486772148869870199553400199055258488901989277560286015325812792365531957308818228736877896333394280989896289509394573186776801921049076825942670543274634875939881178486778065578235761158642123377539986457036320558640152945718398089261732898086622082413942860171384557200447435738675054465687024982556516790819781061301411310399619822423330070269477055069848693276183721072973462170976899272131272427906368796069262431397291362010906992988402543739296226788193400820928869351498034062868146818707882171795177865768200733584792810587705553716027456430332051310111583817238082393840373579426929978167151107215172947553828825451272374860643228587885723470928678772889550611241005182184918905326029828100283548107066421866162492129440616320879489559610221511906077776904115121417294269880563493416202108032684994334755769423260969067272961497682110435884909123655897894204102085656090025113398359729864950054040952831565255114904836153403745885724625719069514980286091675089748047415822410110577764533564449955444938479367638639478529438791560937891862734625545576642994294117334510177235631167046955916093277084372954582608643397954721056283996720267270964071922765797000971478309456854521678495870902368846042791992959573610136504644900914951802071917482856687696963796336787747746680524256118595374006785130256048294927585041576582247540569634525048013314877670336126781398127906803395031514230241762960428723479605892455513951147917279815994924397683426847631042857841547625670429093371370637583128496712928966477089635483580354587103219128609090714095704112854497687971929930662591075083515375057335679575937227611410355328938350729283015077992009555418474339628086481675709755259524248132405308070840796002827062407097490214216838772845165684691781632337039744275986978602175053138160548556908194160177130714683423628414758042479653565915092127941336770103868831605858945730286126883685430703734689944998052016643624458844151412224405002607099601164025665938721925512064217422155269441807500308444881137173539404179211889592270581220528225768873992750659065271392489271437879378119686987050609154386298482342401211683178627426618391145140129033118404529230261505888184269638643257697615570275405161504729566626087751578358420908337833901550298695895444708790107752023571999030317272413347842670235243207682447701141092421140288313261370593749101597655552665879296443252398270060978418896756817255287189849221176062768541422268328914324770484860253805733695804334243890111678987525333599673025251382149330836683771526673669230244615519148313509365024693168173420605614181054488717034608513083330734897476313837991321036911069949599497729052216716309455905882719689280276470982090096903255274679801013993993936286776869010977903842185572151946837125999039703406588614192387637721496489978687799922288694340705180333517380698808655641260975188125685016555064611717974229715486458934970100755085318638396477558548804367230461207600411027067553826611677098311560062274102068287811641097704575498440709651397533784679160534214817345586961421021569765484566664734386512188182424678199944528450314582181943395128142138549561030693510163647121838740475563390689775360875344621013266104661273321493642047629245305370459526420838902913479371656065123293669725549874395285451529246318504684633132117963099689318628075009641746695139543952463188822400416649765141050644874128846081765655924868119941117479592714660456011262739924229880885538955934816483554123466226041710377720471309007639742149030003405467184982438531622711347532086284611857420991416283090858170213598855506509195039069656847574112349412900406572254384961553785117669524778949177186947757926780502604735504938784190302146373704801811132107100174636070763877377059954635838802359637877777418493619380967980190884513533891308158518950338682681802407645398502319360594412002572655356306843687542256322869186894163007828879461409580031688006247875389297055409855256222582146549023515064763407332431640962734470900557187985894894281512414386951326055783700035347564631428377633161181797086829006433456626343552559991295072778236041403879999338759584362397058412290731928630986679014208868735983824297112679795806618820413495432239355397009991003301359763448795156107672569152483520126996080871880078312723162938094974810368574822162841180572263889284419606121369508720245728177366756674220676813038202191912855931777232932041854584514140263058630990771119413024443569707272128077698776218584581673065998137180160630717246143157493286045251930659875274393206864114345130263391945456421524639533735065007728129221428305164911633294228539277313210695791495433309771659051781853046333935595696279042187283852867534834669774090380429629764445060632127794567256500619498140053213472711296118298762685365703352745452930129125461310175877249738435117598904196814736822563832169219721136362017480389066847020931503984814117169171057349984331809418430863647566161770668284099423305250679284819314035450298920082103143969353383360422538662555380045657984206762834151387778136877611033867626334145058581381245775067251493264672315894836546716745383292622174020793633189019743909349945371525596737567675680580680635465829998306971376072788642690069196418634576893779245442447006074336144827864665897006217505383309414204979636548736209871812245743924013257057407390479218655469928452897616830333098880507778069926209589572185165751989874004974288836037280680285711174956271430647193696525792485723142075058689726360972226894747824880610942957840521683697052111698696263712962582042993658152406211270022225004014582026406838828518340499904299084503400774471505204912500218938204339561489506613880166344078652050946736678669256742393085221163236210514267963727878255034696173387689225171922812125551419887338695080359227905888487887503471576523656147253160912850790889816916568303593907080271048535743470121421265589005559615907183620228456131524039186391428905750865918686456820721536492317632461646958940007924090946724475424994360633324490047230250717241402263575727041110347989051942456854223345423881588560158272358356069196741066848607343501075716008708809698371950111187547003620475499821405495425886538726370826336190887287425639077469551267181394088548222228821507396781228713764632677905416186293716438005469170990634244622991344698362239138753754739457405429677920568438537240116854198435108710318564563276716399200183767431315039214557087176720591532157922306857384579875501104827716682479225733282492446735900026714147462695417960268567426129768181715414769214591253899565228577372759755213182115594125292766234811069003619315379289980037385525834719234901434683594705350821241366020842646647817663703533644275254998918915529713296200976286731537308565464942498210326631099888743170477365685612354533346877526789222096784305421872215661935381232180401603571326004266644483102798817781224806962331150073540168103390916940196862822606596948039601677892010754471014746758736660410769262445698653087379511089828706655256050926443760467997361017006631632729573812317581183991972479161551313670660123894585234504706868118567643480881512278489196762536328420161607579508870211108288508430699623117651480325111642228643694361146952793864489126552233751674786402726868105998376800007673198991227346571240076649922461366573524383010105898635886188871085871042409387256745124379682586519338846992357839470910065050307336111858508941926496836358207714514494249252936270680837220301358933510935182338293412905467380052127177071291538176301476386757796134853098090266780828846707489275460813879031013153967524335068007724344870892914644638035729495689585878055976662949600903551471373799276626060780612392821821832684392911073104050221182608608368799870057235315316219168614941335999401889512265489319843624008892781951126097566072708616661906828497291852188570923884248106446126509572647005032910231035660898246492283466858323982577736320365935108018796042572845424784098125367017639336482875959695722819913728504430426183129534707224977128743582117439105624249770010469435803466270980272359305885860524897221938115093395058444940160808231175230469456243076614051045925062695967419169990371645311151169839300695389029555331462246289189884058986682278309599539461074182330040986720947662042742578156358194407864237978461917971733694707804098696480033633531757598322231164385654393816541240698733837643644171124641616808478293888231899958847083278687665079981707107582376930165904558898182091746451127153937885627664053113457235945085407503382026909483444920422087312519014901034222943365939389555449466335141087272738056501603720623785662659641857320940255808933458066627179797337823289573140042745237581176072639382074779034903715851284903209736013764702379754879070400029019329910861046221362903584942992430204674640215615221165309102880081213728784313763012250563391733840232757170350237963448611160842072283518753061881956972756083184544584637700715842312930439814279619300102344838508852886068850438001797350854795605244133885591493934498376536772619478112433295867629731574781893876806086915229785401406367197799927631460682267617698375074529378289922296608361274715383355926140147427993375550195869674607359961228822822911060957934865114619076315708944541175692607323812045721525103015753423859208991531238304952931266464803155430671297817199835805479986461498173757580872930189946195999728026574373377248076191672410102647869366199072579919625853870028053325571845118498227574929380323511039092998663991425096766690127267283996779456228152996346948637625843943189459929580216174309401463901941556064525270528939238914824763237112817692171439212557894775490715569967703107549005526049221175996738677783941466445055404158038580775533259172365315650688826218275850918532970488320007558227125104614821659442597375992872758279224452634177283179557129041466545598408491278617304169547346139191836666510308614212104475125181900512986415025467717510234673813625484294738157297391968636695367622131379167459387027646252650617145006967880439666142767321211825832260485058236406027688676076677771183647166688808102134508802475848063739360432708406798718012825779839731108029521591427200729005012751222207776449516326282520340871961624016995940149820398406031034047024771384840412027325649409765350311495176240602038460347631301743784878333710513772331260519897980403894343564547362148196665455950421644917869488341609413334914452648373383175182684584972625569501755331248896948332401181734883307498238021753898663960259151678470804233864471652573508534546348452771986256201463662716550329443773885511628337903143116378376100329193669243054768152528089649118925975956124169129705709003645290944640120191994277953695694840312645519669716626486848160418840198675290773134971205831998676260284276865190674316459728968429784036289892470975218458838831043629744878968100709934337897907040879490480354866690604917678837413336216161019877273357985251448756858091389993428981271817601574145840904006974022437375988757697738963876934154729893578067400755014097391813986659146245605208730671486384403230659761054827429559831305145771564388634725226707007208371356639384971123166534210028635142957651585451498484893405197689026320886421563204858738761431914915853929461227175259915472248754109254814515062978188089287374297495521442653617929905604354129483475878372429670434116161180982361184925582855480329946832544599190940085982286593094557779034972196096313266558521052357937102071483559523877511815325365977867258763900585116055829450622774829811820487651243849249601490895280125637255632173263293814206720520694455603184514746352007823624302247476743851312747984488253048257406176724259920919783986246310516040510573723393283838356648413159467131864626838599896131944559430575054624231937879737285053471691009650904345413426587159017801999591239430668512957510754991174231370180434399465455940939661645503289700489799519580399883624797879956684690809208921765323907775651373679521354510803966579690835565637862179980928834925046698336804761790222765865159963600224247831369566070354207984463687669285942162067791092365696041920632601647913575268474091816082338361798325367031716240662203437978774466071339291579579236685443630279341984372562297458716827831603634581613665669718348022447150814443372968825343698912489079922506595315893782979105105381224342574956900280620774754651296910563904548972965415656593645363131558898839546853597548644459434666679484288912274930322064277622567893766170876273422543600119178387856310331987590779273619601051883301518959868086035770056599579096327944739520602578421910419601110822309680515637714187055173081588551348070860298331293199148217205714007917648762463172467167057233557666273027074992483181344123232323561191768574127583569874519678310616247728039053691814954301205551058063316656031131199895908277514679503637234833652346805394431194714497745927291475382331828127111205809783966865308022384196916850699070544821430412616033162527749439653917804873629575869745106477832371541965066350690227201883095302946515982542711827828615406822023021166793605545505697306157923934227242154174796581979179494061951648129809598402175842529137723177337688267283794338165085467624572247812027653143900854382436168876776277132821866722809815505459127284418330836577215828456753529192662017476325576948111055449213022069213590987155583245277855433358817477345548248458041437054692489644881100999313582805332813734372934845975253544054085929735841250042193095281707010246934869805552215837003097970999532924706404837454247021293373351697352473060318078445385796325481665693955392881280432281605814305511892322644196106089716219407454869209589306541052420802183662608570109796231377339446772638004783455407708205895532015628108664883135342480747790147832034462373552227170172882226813188450865776825575155431610992202781787781556946943118618782668709651634644630240981457102278499600247107538213377221568856981435654306512478023328404466497624255436133217246165623618145223349676254589010247475403205376710316527243692788405913701160504666666211486687139740186443242507083825520313899597982886994797851648097801330035585001294055731341997572124421213736497783831110379497618533346765489223170976524006496020907489434529075565012372499700039018310949271370757462129524855888132310463539177762465930316477514116830788159696395438235667777338431398686876280841348864219205199489548625783635110679263528702919061581873385404240310764872480246714701706381084279835200673530429353434242539248208683115680748991065943721371868950468133008414347140101375196221505764778851063580841082715988393927728303134404063484498330265583689720690198425368862360782456451708299466088623195400379332914287462746442376194802030055378581281005067659646398570559992525901448078779485510870633092436355711597160693241325110957301479073798597846093604429046837136112818000615301254378726819040556121953213863899306301302220347133123897774518769146837987873109957307472302318844482224516293877176319654670625937017558342308093221265821935671472312487213684871939245293941995542732565387978186114586102254029498033448090988612825188603257079489108039091971412560428231614527298687918575127307776135297388748904428650626343237196682645720126561034762250847325502835648220370307629755688203166964171147314368731387448790574173868699171340227603423295405395769673062097793907810736656029605597591097953536468887334508451703155029967778580261468865958071258992290018822130924029574823096418318828831108878086659030551510141019266211450170931784140285602545598805564027009173281308823433065347027962773979652953474128617425062810368945981108877745951161302482840832302914269349561063922691558525381339367300564162114230938012264537852129293479608700390404911301704686055520166272461050598433788156655541582984046400203967391880908770348621752814994278966140007663169034665640336718294046035246693501022868545063001872376216057371384949085068737113818173473881824152189861722361936979093745911601772504049852572620300043283312105393892008404481458140455114683898464733903823907598186004354013551470538499326737663747042050921554116782827042273139073440600838756227752929304578899651245099369630130407423502280594498456425612447979063712783395979876121291422892094852094062731707525805007373209234480052375328960133969964991701843438666161836748788746153327010259292460490805786668888575489673569028601662041767725501625877812722564559017105929242588702544009327244583292425128112555608712048126174157274386212826893622781558125310208059907949599010044511657186673938652230374460147329150475429047703593061306270471559995938423924840337487000799929741207224685264060492199493007229917702257734182159805047367747073631277653006613370760582514423684295695606232495612462985105101096160541481539322054010907869930171433209373051779883348790178872857242850118253404445152667840596369733202569520030067551790138545869180519226853419349649405641582821769773676640215616817418201206667135657110306302148541456412810035549724537946621955200628790764447950737716849378304131680449499578839514866218685766638957111852964181357467750612331112415512366368289496584045308913310606111525921106040455145952850765993532555449069157398965042554622141530871153377921675325873628882706445474797606386456686411227306639511169348663959871226392032298588201398176703097994061039675187175054926918468534102301229769249445411284428836552710639107327499265512809120914262129579337466908046531538288556831403825245893543157724991512278728012614704802759044088485922024188937322034102265191422790263956544402984174962987218088155600594291911660537420578484842476613489744435679234627504560934628651607631990535904275721335197327783385428956222614714149937340658613348334016591691880188183668982742747874534667653406090936745320568052868657649310706428427670245033302022928643522719825107264333856868946803008867266949728791688551020985815495276429008032824138704422159352661268380102318583226031971457895400205942156030250779892120417067036136673532004278144247919468310704198009661335505459139304411508626386089720031148498549765949845570188861364522567218242747646241139709355357727962457270163050202070055498144123416008523644828859089953825923773116349963621611266129145960957228666616595678638618432446992351045041621440001178528026023716983996965647275581819127585160606940386803307703337427780464089768540323868836933498379269954196205825396117076531832471062979748411909676805978173466590535277438163771752624533157282669941621566626008079399617897410682841050902855661652269650487541495121445399035933052587519743963613183606344369451932766333422990681151076343360208410018492040170851599399980019731466828115204808092228295796444395890103576376410605149801469842994544636520950329145647721063813363596945417094236336221331164324582072770850114832586662679005049246574266908405982371822535706470839386307615543141414979560376123827383316255063976873753716160481924193497883348525378317762821187843616771185328599697627144234391723262229079215079520193319209602333484579435815315909160183207310245759009287357312475715908498766779504910818991916053622329524952631723369497434432932517686728316295840628150008464469945431907694840196515042897688237517808627002113931248316891130800365628341633314464467733175476854626168884850428031930468783082190743050039980929522248117326096478592965859444599884742316187124781858880551820779613499132888114454518659764197634476135119314226782236220226512077668968996990602818421359637856130887249284034527150551168705850489406905701536725816734007337162474240862361770542031139994170104644969911423502191533437942949570702516396095723210977770355162639956170124743543929715527570448715714820363186986869385880116055728124778399135885875024762594953408098528900210463557390410609663689246392496862184255502609265185782567311759073542915012073814643035588984912330049348494381924376890591968214424495633118696795151715102499100885964309396689344623014267652961464829061156902368305740262648879446865720969857942012131638837515872248692558372555830512637033886081496554896484507615227515239658864916730657565657592035920304177044261737135744804307527662863774001683220891542540795957008398646791203000449101458438490004365548081960845582251047855615042359594738136760049131763752017682783669993162332481973179378113352400166723001040353215545724409977739631247783803609998247434046870137953849935834860095977711500770680492761456969537628738229478520504853927905828090280851575339566571886139366088907335820157627617562045639899500951463649043341986950203580301972932879662899087869757192289392701530119548211400374151404662411996465927399236558069540466529454677478460544708942941792299837524759287711231217554013044851243406201784589541103378001710820021504675699215776370188854099541026133134916274899830260299996233772510522902399089597678258864042992169357553812507065401176348935044860333840722354775416743306688124506472617548174252165294377530687100652781014614770872836106612874052330854842136461388635579579659725672512279322647396690590794334484634891816268045908661360561203364493874696371433049814042943992228647881253378509545693552070370812948658560067027364870060058453200268442996861289830982099442069683538816276812582411913145965400321767103428747458915382973955381918788489174213011114687035389346783426461377299345809825219982647371332759202927867479534889569023036472212927933885670163754778286615896797606463102818385722637972884998930535268367782972566913907127288416652076204130515974500905637999633314658366685567571364577043806087138499523714342767121716062235402438788534820960942336784823005276217343601094852085773576159634038705746052099010971924498794603537995353456048039226331128168251744636643968543346200201843938069556502770780315681250217681785910399163192964442872779508524639254881771778474623929348455584586519059330741693722350327962525490957193929721887332175492151635218498726519092824740127896608898006029312313665187515982354649479038637191550981361909715266562509296906717563640643768698486879097902058497698021580683086463237403646852637877593186903748056946627401611984437561713508352367006499867927679721170867948111208837836229567669157328088222399135217319417503093528188883778526719543697935325835010364544010159380977963778398330271369393658842851495849152550333595442103210828390632757797815411921675050392270735687740509421020646503811517704995878704731306668991738026108504043023489998658971888335803092945847726803196274664984397090360086666712477175322928322649602360593466362251144379027378663616298893772928891806879229215896220632071144060893705851746602217941867767732254256744290278390504510643110543426626352163226410032727025219791892508958509756656372336178464856773885739881388236454866572704141076105412163346285145097121101829295846979630292894018891193870240672027821582604679596532747406679576100241949392558820317356932122214632091039209232839403914566942241865832450455590034738924668236657391792982915467473245379100067185137094460864022988234053870505832101863853711667615938082975099751639086280906017518997923670547870970880337681047523728519252039607745272003633705258628082780360547724935578652573840265866560884160239070739173548989070326445957612348021512044378462451246560634605549331160415977878850127628902066433831394009172744708840725627243874429463163990499323728299518277531045771326105742935631004089774167583009054370852920699643637126291359640419427604286094395595600361948948180801471680978847545406820876921328785133551354790942206827026499952833149630807857581826683464403270782206807870077565155391943330775159611332713363491438583212474778882530363659585231740230331859706451325854356115250728553970555189597778261969305226448082974022729883901278909033907108649169985588936412057211595267346462922493481494264857511887831041540918396762171749198160193730024762668273836685150391428158452976005954793295871240843663263676159119608122744489327840481563495350926882110557343270600368576167841574074517359169886885284293710179659643877118136109990576659293927697221178325153081685059758826708574885929541668079352834557198722661026126745642556200850951427897008820292998131467759684642679651233749337661566086822243318398477712268549787370023199427814909332697661074203050481456430093801642208922699297716785375750905442624544616795214533758902214500267057283541001327442920588430075792019022958021501958785394093491464315818708268665248293200617679127577506616751327611991435108856860641407531674076358268736361066963458553447755200510478947179719173229490063415939374710012624785291557164686870590708454159590945272522585375187891621242375601537181209426818042883664491441368916113246004077138242402418624838699686891480151684209517074080519280196823319699870846720929075825331409835128362139155452419066120606787093453100262318264051390595739371775783984764650642315914700396410912408977844006300978612308045215093792071048173021297701193805599830394098105952730784989649465357480704969062215387518524716419395781929022370861364949698638791256052237322735250323602568750244718236299847824812061059207687666527195204150979346510386798423025183818726427329450285255785494092823136872722774973708802790751788861054029778179123191189344121684042657669271293435800619536252458136972031430374553394812216941157169117413011150120769527515389170099450292013470678305042983012327550749512519784579049088834577961428904164810819332840223141536281135191411784765881904809607819048175129625629985381530270367192980885033208465265275009067985864464072312175607582318808744425252037698051862687363162746953842276938132546347902702696689750761626728588767303995856230639147192257821090875429798401729523372386730924081974850212915462377882740034349748857268999739412661885240148663263717891556074832031702752723036251398124861540690636050800117716075424081414860007870470262341478331678980990066530964277275716289458086307061804039123782735669899207520434217542697303925424854757169385549505180338330155300494146970417790455567505340718077514782733969754324650334048796002886732949383505020302252890993564251060101000914846522105892108262872993078820869655583191295705051901905138540771185603911112322852910529391305627343104385127287606396361347128746786897798081115980725888952163542550515682027218679928129612171336331374495370827152706216069924087199571855857181694613732398957983487514337500731668459457447380349642386524878268105922608618961016513240354795765306573642249093058043350998677801810411844466372026418452487972821415614728097291321861966541137845610579796162145533437665375712273400280071518737426114199394548313294630074112270738367177408552603547372767820610909394149160437552385684565469424909486632950304719400413165509394474183134721395456141367162399482340646520897099454987355766820473032007850381251177351912629789741370240261205590249784958289752957891770278966982475639390814199988919507616700781676770443424735563886932543478411394664075503004850275350144917104072084376095834961308299998368375132163594890281831893540830190828018539614943948190098085140468783277752556213352458498397928257652228051070064242138301622428321713077045608743078009474846760356634966079490421289416475291816515994037995772892950751402920690404207553959081547575191300404421155345443083685954967350504745825209852839668379517499473643084822603900906665340208606410682851010343949305555185526321367795772656652760462049223826419313921674516593576450676129655806115639060803018241243842775334536636743714911623195178071090638492274689428891046063855853346623872716780612956400348326940929394533422524563953920525246994570216054433223252659329925941408236525083975819305749257819851576912481912493499587729939943614067172806798221897162409126094303071873162462201220320507326762144625793239598764650149303664086376171719081866476656941621150203001252057281404559070807979413149493128959031560098253777052021115828038878290973459632403972428911286975202164454320975877331051646904181320241764842338927532479107549084171764352356196977707923982441837016272547302677472442581990580556196297824906165875535866991742643130537037994150855459061639635029376263438984572569456894466646973303709213456430339744521387975776578725723656519589944697661160877878961099700852830814407689588057557012988762670772976253529149456203648031680214304155577836184218588998215075729304189441546541566175291359557662529878658064361276772575530555028297882753553452004510326587207946287018383815827763181390038314719105176235431594435718398660589194828690858315216020396185911651518079582038337569646355427990501952960122336340668773464946388839122306050229155475823850296466881733323836824755080775580140898873998858653933428007787688141690823183658668960412569082978753753095686207968812517248775242526715256800035509227018713556229416375510857201945215047978725560825066055778376152495177911684396300248679034193900021276342707573733684887577591030160617078155797902189860976064760046882018686154787347273278688882410978893887738021030749860172860542247028589023537338609757376156622088165133371922307623450335300900988042850198375783187368813411687563267334168253640068522603996549949756024255833627286039404703468044604267851869681538022062170329348704630928375198346616798658311536075400989601452294356071096467195170434632023445660052655565498033332838422046921884492135042189722339679183614236707207289504057793773516340566606282345829810028378469181252167340649000871717818124880600633859911945721524963728276429599237941094223959095494971114911798013669490509489556103966878167821882023111459960907575221323283274409868760166112365287308721733304198008240776703044423754039125240195007267391743675698351734099000842473702814592067893169821322016503135171752745276123949349348957405982848524793434941796196760870011985552144819974930080667326150306461211858226820086713892182064991808374109485515038595277314214892268813592308739068934219280472951574013033037076183119515462034559079787306213716329721024687896808536747843543815441751115085950971631486167258099384049710635001314180315197182881906558295052511955018912724537933300859800880266782067343575973944767382811156485240859716167216234535169820059710888447384656419502834155030432315124501570652674735200701922942590205485730179359006571343174200338701975905043104308772469324773851918712849842858666261293771016000278787638747436089183882796426371114035623733033296197027906433012777384882450360181588694833921971513770597199827049096204391279120300073598555434246552976714779103511402769020070884016410037179482497317178243913090176356170058980937508472382090377853664986560438396222495121971016322143779356745738212559059229493256511662784443160025021660158157030305770768375837369475639940526357770777652514001176563447835188677280930841800033301655395881796151199609932721358482756249466134707514250476507114564614256193801880418646787481603947749998625923272578609895666749827017185092064610240328607802583538757669743681986905284555795759186011655886963324388581725419123171881690499267565555215704026372132041738682740939234443111353838252840574710042007861181850203400477483050334235396587448983947597412282236932360099339453469609129219990319278495344789640473504871272972161280581608414040816916827669055091289685625695792396593776511501284288006093303967890604129193347802507220145463502117788223060343537895996438348005174652367893757899218961151106782337002497393419090083531012480918396090739964591005278766020425200036252273571530368269652816553963617940020938274492689668313612213987465825575513144616180659492522178655315338872059739483276154865997608979074274379323320298266614726223930665923095368398794697845242265462065890852735848491857058853523791089706340146342064031978915413501298578650257212406765538179703371531109370874521056681402274795666544392011883766262877900523254683990498698639597312021288940403560408086334600549046443555386989801426165092151247577146365096855956424554460060904936217669046422808271415224066418520354930277459935673403823716754898395511470356820073027847334127848231042435557194570368224775844596516281246786842086048572739788863023401370850353355774367527143041012494737855653717312077234170433823843879857799827882250504924701428728084396843960681201793763090223724247460923239279213955147846348039920338848914610477318339426227591569196334768300748583208568830073877695653397325263934124968473243830067949108373536991947525678026103476213747445079211410366748035980926792795992432294521422413392527548963075086328677429731252444849563161162339064773603281032449114422941390343491592211403805834878989241819507083430568596748666469941442050004321122774260665078087260262205870057789880942427403909161495208962318147551819995012878023062546593264782711031489477394196438253553614426270588842944971683040336423976244812280115980421629105968687830868193558550112998752872418371901281226699025989773081893535845752020191332782524219083551520612583284939928090618551543273522983609135339148410703400133014642329066504496530204207044520574861904839626657965930115565165493000992352807757249270775249206481902902235086570995639287027022294556981001701739629184477219564849448888548951520440868568531261313881344866423259694377001202163215351657768144164798988399043674649001495997803592160589643697436623533715630560007071440101378139345113671141779054765421554616903226663676817535794765310441426525880707446056290917828098139917302765367460593423105025146358354736971772639682460812078795402894715526273402055663738325170271274156797539373288275509383810881080050142423668558532040993637172153743915455326430008022563129463363130716667196168503364377467315210581900640086107657889525186679746226543123947803947738009362380663289878986275994494986082541040233371932635920583251156345606402519860726032462121396003691582755652610526703549248539674328198109324046175845296334259675269334827443357934723365339887028160626396186752027913879459781412830221321264043301943642896975016825171066110182432089872446354450578018951735021881632211568816736169033437470135926059749727678276108636142483308872590414412518107077231211079137464117550841390208995841767125666826570378390911737253924376277202560865849311015007160504753036058331745477571672392767848411808569000878288840734164317850872138214998536979882119894073075390694119879685244623833583259491322647772230975288554580829444699889418259672851148607599991528759252566413952334433875804680361888970464764881946087028956648224833983146614512480794206107013485547261016922525210608011133324482326887695122544896719005114905415590983395776715336547904619624387394659279416694472234205335592380254799956604588994058731887426521708693886658159368861157590846050997790214022767291241585566918222582243228297939207951330767451285449906588761379299855475885169708550081336660684019933754114825959549945510878994637263990116767478648643805203367576716954189309452242354664410637193237679671368851862936585906079813512026992286627071080186546224262417547440243700385744071517761308781249984092624667653331283406132575991565555129918338176642986020794434403042943996760876750814797049410973115599021439476675204497523693781219235197947341045853389725773340880529262375468016274699946288744088347368102355622281267391230052993663308898610534412394222036600888266741589927040075584672349554575277009282194694671490911289195233151007547576204969876951878651832183956053961666761560872282518411541225141933592715797560978657448631098524946782487118611768263655646026015346350072302383213613005837981229292695756052306194853309711637893288915997813317707504153190355061692075647039481681129224161830118005527605350931459124427978224210236978172232987198650782290634131493688348810405431096077424907687687329076149845537290695564317710870731231986317628454382872966647666349618900547903640485397568777766203780272592721556870748311964792873626689130379556456825370251224710447270764765316043989288607150248972942664608864607837237555363839947689005463573235035798870276055349606205330456974488980159029372351004261608053113333627311280891140753136968268119569392219274066721165509708743351723278154618516115368340395514308376962466361299298260442632547097067046874749217037705099526660596169437070991022043564835615407632426211127604493413193320122041018580123336566352821862309987725728387499176903526854430905262212018636196881523316960469733893719816302931052464033622561085234470780662018450131402379176114211409761676387130881228150389156302823008819084747899652938985849235833248957944188321960413449140661998291171436513649540220983483298631892276115256067754703642755656691927793824781892695980086641604828812563271468724831959797804127808748855789368556904081602180482225869191751454531247878617260719548940682402378760905679495637062119215022235008829543097460557749156956161466503799384855963134068560284573955811323668899652137278049774009598610124661793002791060292609265451617280981482660397647067827612142382856521774174635973954096476940003065909753764763778943317692484462874286871879632106301193058125036772891343698794510187330565860012797357571500123195362511798926099403101359520480327695315125464989953935808967111080108281583858011080186490214088904150974277769952997022860854159410348767010333579915347825877806449454438801426563263945592999628569754989571132678869770922649513237592736128205170806534741607393085022180397231597869183087539146216888897597602070747700028829594544320862191778134388669293685905445798264892517651479569197661854992270016614775271565795519017583019538424353432322171040406894405762731833151567051400419872940202148917558723042897646842006171677452273213685565784964449966361705239556437423525181809506575400495439696543466720026269229023013256240187180804202585399029248381290766061292011088416160669765355005609901178445735831094075533439319984106439802514547868591849305057002350187376688826222888498386902488743243838604186410056904174096268906655726985218438947128199918017512078025838347165756284897009195378719914224280321723801249161751650593335294123016005108447332888542919380696857799529624090389206576695972748575657911852104201437384543426940278978629257141389892648498346103163882525604732976946092251709967476065075358866759587927796716219220483496680676707825780690283188082088242113450386934044153280898266087036301426928746995347229090633413011075808929642961769418207316606209530165290717157112151512195857281244387593658870262823152848126389852377162244167810288732680571392370184602967244935914576724576650022273241680746581218800785561929085335412573386817030406223748938672065077638423504728159189838550313361504113015890213614811541751954892183946264239814336776445651601023340118599860995965197519332062714865032045407504685786714057150299365883571253177769236619833439037343652946849755935624961481277798876212794796409865986639422538297989196907244379611305883239426175036092443807713833194897264063120706602452590740634257268496554294157783533101387042367507610452741514747013181631744433782431101749131783453000699057837877411279210225198054401591379203350338170746151184367935797267917171327201414768237109654106401817263344761978937355546025253255603836568597446840982110123859799416780279975415767408605175300665673662315870933181116318933868989782349468361523471069592751184011188461187656973295150830858667777211398092699703062921894491532677306976489084891223130641485039605737070642758638679842858329292199611767442792437516057740453825589342829886713509388523490983807749564948215288874531772063480347398142630886908609352704026007489030852046493242324451197989432600255365567854853710556713976263689876005547566809721085546157078199241907809939883642584707331279411256448364594194150638076297309782427091567200409638588930606243237683577421088189512744469783397591888158750035930899801281631996227290986616037181655330562435372308265199738132419818588054425251566575810808497578531058267238403116121781337645892312607567232878983679966614141479503966904160058648934733020029640542250806348513607520904702771615029261491137914902465463943011487171873427638444175778954649430844670177359890109278160119651462860452236273726348404708909732704417050434501073988956416873450255823840731696266168894533045937332196913192539539814925266072171115276179358832656306401183536730885360042789301125631448974528702073758192548472247245016303557809628780253237326451341044435992022821394889263593945109901282262610842835600696308808058064387355661511937789509270817734284631083159555455948988781048992654267259280801170070557334583661906375192678494525999817004311231966698413269090334900398140448394399180282609890099423072517024562783194376711310359501755111967721478128725329943924120229517625456109695165303854508071607196291351289413258979925634363869501374905126498271295154356602128292621562130685833643228396548826756240864081843289891383895175181717955301675952725105441912922842442446460036804300175526325090618072308492430906493061273381491814272549213228648067165497506346214223543772072206799868269716981194057340304205478864752463886747542278108540227112680270337166734053037957871420948836296054401620628460210185763842265311845960826897978349963930173177474310112006438881029304103967733364937399599982264733196011153946937288044943167938801515541829018766381083207194184124258518972558289438741882431289425079574772656868237321849897268059761660222756784513812815571773315656096778946257223738939480150691422215576609178580654777654736077735188018050607425301564278346026378677354704267120296370932969880359454399015348003065841883807322873471720757579310934212514335220056834246801404885520080620553260751729413977059427620968029541444106900973063441296249348333663132017804030023708812136455599135779855344279479096185340896431165010873359307648401710354197465309819239698992848530638548095476959537551024916252067414073568333231546809207077793896743808000523882607943545593813784816309531331197079317110503737886908016449708903552693351441174912027549927249840540356725175361249147007755297966126407761109781444443878954348877813000966117893221614921666668753717258180227574635695205785184252684150345155106623878223856604352036161515110082817469506553464527616551809305539263845656534357237927192972830382364378258338789823365552033254160500635237626573859265416016963609468686244793518446144622120254548693102477908293367725741349903091124457394570831170011194958790747148290667724284051000128718005352296533947230010580406140487256373064795043363655612544825223885238983428145577172591911903166017214397505387963882562620161327800966185288621918245670432701148999065900230239547755580067658299529971009172622510652307880319677357655852016643185225798700774072278620776446872118204771099569345420499657443156231712206922310054995629333434540988917367431410749064787821466819488402053940798292214146211559329909894388781205730213940438696545830803097823130848863846537071746957141042967427596070353365226148112749621429792752201196131390952719027889533647493650461063033023469939573438794401474580313909141363792151823945433052582810360086183853434176374946967067266204269690709292810957800714116996894131490155140935460995450496359405091839599000701552355185643246426686408903072715886676150106622253010606659751377699258935590677771872649979583177034867319817561767623325610844964005089043992211156073169692476988608638748347540840259132881577681623749968748626525505434222133829030808140260299424341438792715809391194598405405031444573134186362451986584886779774836188655251230565948239272156697811047839278440168808796443338895350056152550567097313182127795100775855340295236743627119755627563775017103471850394992887297509691147448976963615971823856014137940035004169944507172431108978429653461990463609888865064995863505499289537915019408755299199354561759150014360771486740274680735546810978691484587057462483010828696012735166730492716208885620786853559219844032681820253453586442230448323650968873993686218281967309773716233740648029007568209937946746214772308825622413211040133329361848060639359591179933681409159350461079378284423419819527876337248765270951441396049391602084249039056905970683796148058865723799824082059812571330893225793710944365370459801835114829267156630146959942932992693335612328302218182744282641374002238496016361079673661162379299566068111875215560278850427308207543213787441680736204599153653256003252480774077506657361222846831264830782494514544901148278423582022312825551128384710884941582009242055770859289551383520265147080557034677858061953817318464461540572377271610243734283525747059934462828254384262868274152579828631718729454762441743031725072853972122456820588511774631036619714911688892679717630199689875523974693439926005021916760132566153214309999594309460356310043515609717350391596489134163381318800323536257037365777694089140908258189216263772247575875551543517911039208043244530109169779788559358112308414357839308556801433723268445475812308089566439146704722431653703404776590422499564916205683580796717551876707047927074783717555893998079814944410795628574234492308161293802596784627709534164267219097666150016192075915230991092540960789742083501013694838074840412358352574158621170501681817122412298295767567234048716681517973695024942905008433595747560175013502850211235650130013581659275265813088105695040810160637200691540092003966060422915938105741050585536305403937849572066329244683494338259102479762606811488171779673203971439041338757413848321675201057183814053973368338203658706055570918628084856883606374138475676744398415036538504261883719742101074899152592398250534290618442599003255777154946689148462864376549911496888860082848859971147580356960454113712804006578203242946862325202909560854076161761566823841172648036385434204929775492389218443752473605802524886125386006760849744519065620154884125146747244393752014529814683307938789122032825113724837966143097011301407876949296465677683400691605122950014498605363703393901386628845855571836395369108424714455284455194733238002163012767552478334362804843319379569785101306178962732442208730697185696247144206554125982649621302266765694821940620592199345659584198494630989738981877258935292941396721900457544741795923042006420399575193393571180672461165904857535303490913350331843403390469234103711308948847995491811271427917402841186669332217880747205581821675305053400326116243295987199243836859019037359358403577876270509389429316680883066175387914230731292383595323628952706982817521625690843705228330351803750281051874436951930252372786192162558379146889151713830232075370068336299959281361405181718967327436870963624246036450801364790729627991495606069293463389318394348451096412613968162782746306411375372379502949385149639722291988840497869452126386270794727838477920041408121055558027322241037608958832791486008842491010896964382261699770537928604806340402375677211218020259467835091680229868915448289003453498998921936453528309101580556611660299810459521221837529240125071250029368930870877865718265580533823403616889571232585375255854557711380794619978705241815236393830717222516461984248740797245986483432315111920959912202790813933167651926409961994531572637787658240799221212646000684995532920272594663150548558259802807422722976562927745655158915941615014477659840528668694961688020971163304865339839241243722515248002161447412149019801785389428760107661979682031944927959310168392693259757066952127094138158754819687486027673741525529090780079832454563366989130682111610602694964948102219091619070867685929340241698487092057026325781854211120836692612182865586654339689951039129519689708566639504373424568262478861086430154486527276507005958534020316524948558406277072371346312840485090501250190963650231051601422901685538476530505927214662787010617646672534733889531932713541384715561655468563616860817204063219746718883392480262985807973199945220844054159235997811202689865037306051597726608178388834095404140292884228156477013006215244718685089024675720556991559015778982417399399879624341261460598917221487641277762680997955570803630919174462653088835084145656124224116410161344951228072931267006034058309576203097222499651971256125418369980827594547557702309408449393463470364170308871035261067538432766491166859518017973713618706228792818370688816407577178146784111897380607015914227684403301657628659806070989893866720911663480747799862116137872383995180223722467942061780930154965836590891424256063003207412204099045958556234874509727534957481685128873394676148820672825463579395703543422636085458918301679753949074413000057157713177736272722474196374652783803362362428016163938501510496365204532966814298083674018431644865706546644273458854860537013284439916512975006700518728240267354171890996797486248608642731791215109979931067059410369225968109368500353571552402185686754967542494140500324444824536695247721052310711921625114925158061135507090210749734339312597260034265768986186761651743411887087908035715303521118876649815025696250603976439442862286022091417111355191723901762680680576640540877116218185586865539613847078895286206010274714901594327405229388485668361444473522758579284506737705680361297010987142278648573531030680970189297592511131935128860490691560663323629986421759027049240620200761312472362028210389643157372744180306697172375173345361920881595826671990562005131992113936346277677769831657980676920752690765815154590597699935467683089808756649162548021487545234481394496878595008320554482283587655391258562019685709999994726468780223653041122708078215756897891248540491987854346911203749525529114127152487984332239759848141168907267530620103511009539349503286973874689691450287874783431821970851667259859960487806423143719929324340146098641647365043845582855820454868484718703032334354381203241417508222605330670096655562367210718833300741146194892590164986373706384671400154369074034142342173456081390840202171949352803668448243977650106459021310318037875596122772427907284550687532692500669605532697819303460737501901129155143299083180031678375855285971933948473061597309416210812283286393261119645118166440593036106259215281234763587285902021740897286513307609291361974016928649568735066314178786981389551342917275979159245339346909335915062127464938754363120248051238691174747363602380931073446129455943604213510892133254513030468374348138261416177037378403196950634517230582517656690446234499034277487214455609702983680825846316106148375442795569089780284591952515266311912606441769454050684759360931356183828856040598610580708924136546006677973167146851645830725130991811874412287559020610114727867174483361250093112184586130071958301432267180203640596381456167859166289644974384166159130126523278124970998113171589150299357150673248324056513735298789748453872184752373031872099511352476059858430950171587036586301313789624201628920343493574183167030241414600088398647537828736416139760342958607274775901424431655478973752359031596495072698398186874050122257308123699361186368611642028680557055797014847508812238357561802670744174767148229783510297385319173599276038835723208706822115374740936715277873487914740397063057521546786128894728311617613522171090690481224708748157033620470877577943866606699853655591069339690620570348822029156574676900777952656685120751893421787319122865012251114935635688169599071000781542446699546255610078258315094890072989821624229488114273331803769938383726096845471028650548113195875468588202994632667604993895013161395581374264313038066857973994612561939162923129585867707445392352566612101067991154524951856643394443451933196800329418815319705437150325594595727453172100087526704988268798100989822421249324173197887395147827894633063899748710612152962617814713678421825975204536710172130439288694486481307559847774154799704626924239121294149093947964644381107202760390869215953147467090702474989653565440568273036281333315034458334241124246704015118221131000296852675758913291598966567037181651646726604131061806372065303058946297754908862595224291526886077449626641725449310417857101050635211556840278593169827167118420425994148900346109444541100071727632730618485019878203889514919995871455625915837304793651236839071331048168113203178176030926356220829511051484676798083690332608212850278920468667818485088001228530879044954449498421061317505090401783343669490578166667906710647378057999496560655407979254458742026789702761561165216186135582095630975894310664559050787294610831782308397631974301057288670676757455583561493359564272753681961102357734093999656998045499196717989619583804788839440341545517115143784681938261344686277344909344327096577409960090836855607641275199143396472782737726171119027343623442273519195046457641293243596425571163203340967391941481701345866428270398197889655518269030983599387091372816371923753796479473149983502808796213920635023257529113452428395349034517754260960851997739654368743672509636642357208142044477192549023357759807763555033396224512812392252459091086992237983719730891473112923618783129705391448091395266018026903004333270914861611167269632277080252277011223113460638710301906085253035079976812428187795478912273398525762691068877954532077842405556297437071282296433253156101872489394477015188246053623054749317034877453509600473761786868701662014034030966609365461667404936769863394947014003204037736468371243960828233636152386230086346488517531358273039329841112129963409732872943379253074722326657421401346025837023613293598891190055912293493923024393134978224320384011224302090966443746914620913732897802185560416763298160302222767331195927746722836964795057259338129025744165023922101721317871359470159968143733170176186886096100105547820920899061648186145392167326963939037136025381651521406283534651858350891228071075436621286812963398834716778486718898599232403356485763205755801630762392813565434726455407454771247174006938393592087735723114796213145794325125402265739907897020200380732326623906797273319990716742335847046982179637671601176395290984300986216291982066999087192881190083283378525941970027143162206058868372062051155594114636309683448547393724105014506374568547921220964095631098428511512099849955923047264327797268280634390974401178641095135591048938604643962158858450071185044994075878012728095898676495505329917465440157181473259730268378366195509115986158399717272899496245262160082845136247265992951969946198466231518716141738790081812199060382378732507708213742125271951507007710751876277653023366310753575360882252597597171557147783361729195077170476851776247335500589830289491035539039966539782010456031104404832144268408788624664705892373252017322855299720751708616573412179553523175428404604301379475422639564487440279295119613892761060018355195656550525797424412000831743017841432876824382112440241521770093133206578841802309681164045454823324010613191888357733251454562655467490646441300339905573986923837768980153700278168218951694651746449905527508839784994051728612315416628100669451508865104425368225647172076868705385224975879913508736716351205399914647650652884689756466245851190595427166550295976266475025724556875837190473781335476414996795159022035527738913428352168655817661280456497656000318994160240842244816234686355873676927262680044934003872521801586740235348774237049448132458971821321486872504821156146683361781056938022230513921696237832293971545974612963629658316574749471657852784877344810271770805844135524746432304172338127971924759246493284447890008614876402870154829417722245018531623476904568978711347262291425972816463668555430937101533187350497167033453768750969241505384449980149975756693142708365887907246259948035584645002121396739855340503440039807081607763176970660248235616837463147440445456540757460776049071507451265008624428733469790016173870035019934565219154435246818404591501988791221828083609629273688611769094484996439664204133136090757908196981771916177443547275476517045965158829215024241187078759186741254804048642926063060795711994785439321381895063337654214064112138559505514408928764442436007944696895388564893445730358310523084571530559715846662318882304692148709074042543237712989430468805538803117200753881671008838928722777400390627633753271572099673212241372248582667797144107249912441694456528052621593133889187687289722660395515077321145863838053284300135816054635662066044412209439659556178704698757798419197573738576073513566521401574149621413562970514859583452578341334302423608489679778419714866472683062354020690177822898731120196043924522273570555880686360090237340721436544083361487372719308108373418139839334007421283983481003680429005856912896420707053083716326084795750753815238310493766895393583415496133386377622482593448186364490301842305900626170744225107662584283933268331133416821056635873784882154856539968394181904694690499084675425727690449788037503873374842328205266642804566690310657701872570801302724521165004515224957992668253566170271603384144935599043955525158761186459865635006582392345014826384449580383911822286979705776940190863155737999816783914967062012084310199682974348903551462931035651556519845135524738456210668463684620246025823460861922081680220989809008424281357939708410607346378129343243378574964936456596109392557208609115597023503770534704990596011890676280900909622210696106906059356546525751855178835966443910233039444674920409199941749379414372646032618208800640529094610703174498672191926381249394175374348662406055536418768043235157879013427931139645690410314220724280588003697864056236264247312541934697087926938883161423730672089472840707421058647793609466563194790853948083708402195137822455883712784200405936137697023179616370831367655575626324515862785621453791005208105762625191447950372733512682134666518990448769000067120583606021602293222038505251561770324375284538725939788007681497436776859339068983400253722606261164680774821686337555990662754113081610530822544561656655683336772226022561832777320630366428904789618969179032949074576866782165380555196649731324260593688263895305423702720909958639465105894090452270683450233798946527695841649934674405606680955089702882895703072012243538888383055718379091797225690983408751071409797532844155969389273461787870943753983220880058988587285400859494914984757816007366750656910895888933820791356446175287980780874589516087441327453556263053621063002578782952279730087119423978094215769531313553599674956797603585142990627804953333086506066641932512909285281475513781014163952344059222138898177148590548466879903558574244416481693150551440465387707181311526451524967125765271273790603973763078490865340178928250664626183394946009421925779409236174337931253255939031603189832067654646316897889119570500715612735468747688504443517532697241677380638615674263267502096646407583471687587735786272323507986333913212565998337172514338204343892091492980929990144579802977424483988209854982909858659138378268652247517677890242070724275416786374222178900032497970512105554649190539575510520894650285356866361511424980927153424577197109330606437234832078972866381240378625248249929503711062905086933902488153901769086551286730596526344227776168345915192558383727485519614817466682731831309135003115708209540523219764520957974082757588784495522422627251948843639100421996479791391141894316315008471532335404897536139620809878607498958991998371431927215236830791239258456672052952799608751876206716333309008946541058076511040753804558248788518076887591408902680198252473294662165623903926172465765508074452526665337612152269230297170820583328642976480101423355357287289875231461142848999465914631104445965505408350084499342468878132627006427865053211859988336203849664099557911572648389178470829587951178843601193350056964164371245244457222111038789623975417120225122841552837975212229641923358232093719914006219380461013506902032540775314611893402529481070487437956513633191303027253868393762476192618713783764740762995041359224843009199079887037681472466503762641824886038487805197980689962861466405067207445427341317351981173440720678655705591245795871322415494310611639642687313123872101470512263572743500113095373063402783967675857145297575745979369620894314566385594622511448376816724164201797631931906936563810281673686577327872613432212457382864294213939123553099732159129698992750572631257635584018531016421757092521102907028767275717474900205638604127326143284068590277086953675591067076398444517074365926539553420657141123406871260743972825356209827586839730758236650607527632257984661645122438337192028108972053259428391980684588586431064800216326403890802885072648653466579683305135671954510432062763960440409843897271804065457548172817258289830314024015763021492435526039895683505428529812862151224445043368415408787130826922193524449104741000811630503649270629488289114565560756375135112793895538955397444181279427849783078113556319523077101832450490011182918856867600697930956342171775472168954750229832342964163929799383913947226259086561001393410703073180786707894803412444438954724498346831325523269206042481774368728129477942431646920164773985978716667356487869674795050402364301467595937445750434350051360983995665411827351123874846214665696111902686381906386775299489559909376951398916734794851831261615177423844176599898643289195657119170708963933941182380108670106458299759158643507814650844454712637103282231570822601770923609594984755187700399678243694192701808108203196037532810683556634322246890603641959569710029294045806721826081911487982410378473112437966596758063292627160515967026178941752009034553247916433998739153056353473615057475404940360136238981821814093802955097133452943731818418411921536877887732196899607474450259248983358173848618810565124764871742877615639547970280598024553700232251039495711352420494358723407796211853576286545149056461903574391244205064601976403031271894722533902192881978611144279930604783867998254099961391022565876534826912302133439560434484183427521575355793137234674594577361144590807012361476099387476584899791822471661996689497323658530721318501364341881716640615684659520871404054126708370620199068765746435700733348746601068501029605956185810299481409560294690612622851703555916211586315285925340222606980256479561920937001898255729016971170484425805342232430687364340114112701534205634856014153425610760438121223853185421549606347303427006649542660712770118053131064812630209476096006395606614381815433291385244463205283231076890423718673834535454597737671300871850951452294634978064661650892981836049835104854570216821546728784496528364902579402105390296507566098075561588378103657779689084654109725475235306267307832947122346000647187367055496637396904578294155817844410188024233118574274260890563884038007442530349483675259254386020903275562056048160371004641633957941303824292285161233511163317403521342720562623213371160670918516234306676397369747398363523471910022250802125492443171312643970229172531649542373783577822940397106999589116459016087228815038960380612208834733142276535660616783568657590384619983006990144143806964746641348584239614301855636750115501873942440912742608191147522017524244562826064212238591835573844617494455882435527819300880379640923898531153136863123853781593621289081552615997859210499386157585075164231659173290300368288642782428762011016801269683741492036897940783413343889644282350160073760568390352816424415512834911151642593028018831813882027773819252849462230627689380455729060787251513434284699429713339738801148959312790537704317635301822543722548540505014693993873244710818499809986874463806299221581478079982885107483593906294448516844029652295474358397495623481185628713932600722803648462073532331918044516485471249829035124298942033895948004847837705886035535078903973880364241015180676598219067805198153464470096573239549894229534836026204602737190516061655683174397031989056628178511312682068970869430014985459597763694602518120030037111647497144500087583828065194953574090082936149853268496917981930872747024194801651788904838302690896337229889365753983297965578705218007345532976165420721418383899605161242813335399326270014751866368894552554983288718345542656188253496207124027170315369176460609709604266822602380528091076832126448307701212262406457990509212560537137453765679410230889935511951029740368218335140026470010779164159581868396005760764889283434917596773358869717284173487211638990393863107714786506201174209065472845448362007607603562437445537545742280585109920625582795413862479484782863170557142747393952815897424558468638351756378727968448470688170152825660159154692568005877329290095633826285273423933391310782088078208282581369431144291913520701787984028035230010524497494878740455675227544475470830110538990371964782904422559824730683694339988314785925368470383484638002683734775847530709562722401270041463240229987982540051377756582079266863968292742122468579518217148960370089708600105343241750015363931595777567135383914537808050646544854533024489909802050614488910279138257783291391713208717091850359934942189074296822549941806041525790469863946671291952634000605035075264264609445314851678780776048991100446736134528867971630971759950456731283746052238642823296754120570145365287488440921079452782522308994938771710144273839747617195845314850352143810342825483045810386845798482435244341889362010321467246164936938410699490893988371324523223284898740079406231820042867372008848867450686282960029185934810813239514961437774383670206312477628956765543857762107149558346990436377369802775156050192185793313346987562306458197289227755259933578870398070400633701833176430863914505686286977848760825228086860124776850211438861703250453217353928194839705634373635782272715128891889825245607413528725078957444305123002017931203875180229163246170963533269683120998521803378972953932769886766851835322290350829852116803013789927932387387811690330849995140964740458098677526598766549828851830676995127158208417690904878044363538856182747177749340554061990039303521749712695678191193918174160966505438780629462933936269092120847180266245838055846804228026974611997441552174329470357115466956361389139872234719748499854515635081941598175456444854720749038145068352088370559583165138173748202235299414961148826765064660057529006329285841265784522036400229035677143422237628054226812528406898285015243838890128519329196871060009587749532910466491116954367595923544733066295171896650705329160702403165837351431593843947541336239211728582713847462214675977390630623062373783509627251721035376030049966732388051216213279137697737229339343591606221705684782103483337037957391331670753968147426266184320002347890958435523192066306681241733334466809019888819306030402808683524651992930520000091074661113868735440808486912400791875806202536187116057844442054351168665047606242161829965345228809442683481524982525209870276268333786746178456697256469992389325122421957441383055372660785554508767077862640888117643290569962442086681952781555584365994160975146534191603979964009364689065811687770686796925831230082444014911585065695650804442547691912249039019570457253867576879687869222968390448087447981290475064753103311474651944675344379135293622369788206791252322971288497732025271823582295076274187585483134176441062655706326377856148008321575743376653054540313472720115937420606042155636574928330956948191287450235964819021486655739234248910779517808188864730037826118441179485495105110742861866439874039098231955722306976639318097925585758201375280896153605696108062609159034006927362059116817229532258628004974641894763125534304881303997956081376574187492571415463927739068190952963948658081574284011719861581147327190953763659456101035901672127424580676732791792037989360949942888783889591498542234618319992765110414302660105418006959110719988802228013967749736238989103111117954848329750963064633908737733486504562787790086795038048076497505901433988106418996011002266267808425942514195384947271228079078631001125394825146188575113317925893356228814784941088019594963985607882016167352835709803290736933283822470020426113752359705554769858389190849211245378019441686903670613848761237431783354158448521958686366553854357915222490271012150972298533170572874758795815146809265767861753081885790543840995900722291218112065963458431034827773047787921672672853399767416903126743880627363219560790717830151818343689993123253084338997341147504428333686761029548477987962692337662942649953886639763678526917882209135746115580515226963557415635330194842258684586032902861332169485675887838827481195329142506120744887020947628918187679202476758372107015390942494471361324537268250318956845496299761418946316945921516791348933848525229518310569888823663998414849757529289411833855921150826215043129706717550992203910356465654749109651770721943812953837847712706332353946560440094784662300568782543365228462756952081505608417767235095400368635130462286171150517236985206367974197559403461984870687060677496709012562111866918469521933058665547840810902399575026407960059004886516327446704869456145627368329610397187630456939368107268525128432817163509207216556284704039141748055846483346086799738344410206538115611443063277806296464612725774601627780423770041382576534245687496510291238832407973443114965908661894072781351413047523341553707043645143779311952721353394587477494574353538084002283100123424724397696957486209585130221544111252992657658613437452917123529088948681653099968010950354640490685153352893338574286408664480167491071681456178758242367386508912963187974246478248055758571574855407230725107032845831291042301145065907848102749217599797249823876967063848989633705289445079675861205879682955666268510851217809864470978630595657495828987376638252563853662599233976250277023662090973349126432324666577695178300089361181866614150002858862197015919002658341641971868713496013473082225007599724365165789909862799252021247531133766788229262477123179944503756109910871621764506430539771358503610040791807952234802324093688232554120830643182117846749254376090384646791394177390795667946242831029976623994425428994039834871940843958554423869490482945144888902003983627404712625002856151056865069661810273811540647130006666432133088493994472515544741690080849920371180225736113994554927098985759266478763901121259462436215331279918418682055897911829540620196752632504956722668636854947526152472674107334237766333229682263257568204251705006045628219411038242558270779098321061839004463413702439690621757458878236085087356190573494555288055941054376546233860442037466641944997692027411722505680795151033691732579309409903721752206786119258749441197495991821901548554410426673164630428669635479652604130171491711694069654939146340689742250424352896354931156743443132902142840595761382109051410372753709779134372488248350614392813058028342808983317426617210693907870133369720786734280943512049399905942095582080349601884523447920153570313149820439179170412620555594449517735744224270772329659639840535053966024004980735902822733340760081326216854740647284457191307813146925016886304355698844955091163453527181493072031761143987365632483140887634392253060298402952999132687063305754569591266468928278105732045019159066117554247625272879845661285697592871309843392285925752807321639599303055858899413766926810535519115167262394071368648927230861247977289919605077182790503007775856200512490484325871911821503347611290477524776990253997398221546997273599437152570090558563771857653938235993593053277995147906741731943969219210500772130834497416238463495962673992681473377364011650629992973288533223518055819569875862063289170933961469692790113125778864934538132278706632282862093109821750287719485180573759659693944984652551096146181020334973660739645639601760115662768851317284589810069290178681718681027799078182663367480318809578305566248249058582564188696636889827316235399514380406918750295160400963232005308071822072286702541696965978026642365720534891816510878452156649133114312303791559798592485637266226983720347527782964398842487545643706956059336597206974321944999289412712530772281097170419634209845968059609077376276256457899218469688153704237642759604938195935675253182523648649292859614782529051075707926512430819037971362839703974662084581625038251645035830427310328934309158019720197916716940488288189615990935799776161821928309819509609780428452811113112221127577371075380503793425161552412347139288683810879005512892207320595858374288264218283427257264069916482771752155427621473873123456826169154914089367861182685427112960451895715754942432109871424480264952333922408668941272264865469501443862392399634433888843521680816849782377282548582418648876181954205898212867056870137863173270499661018711243927306446159892520088677418463438450253466245173593765685565703424918958735991815094890858823609627484225906139546177308522109769259631546975138543349303533879572165477513145499880198236087077863235127592958931466382624123002551168851354188625813973019507589826594325984801984850013180762330502171733014799924363769232416295551035090640557702715563956313188876559419607695541451457738784782264556310435672940804534685016313557780194634120492764667083942075807919996283294486916407248241375440311750922596843113333432164976056180680942133098079966313669973027572088513545837173644407813984922540835809217199430952994681364857038947615664838573454843609783468414010070822966147409464398741276243498852235750519034908713666316738593700920517870091873774181652130816940039468218033007284979739019024634952995478293430779211608246774381019724565082098120668189323924678832534685656323414429304106169003527661104091181564787698205428907832413997404275540210889098094669481585354690251249701992277484651667688505633732156086475611939790731386764151652010768037737156807173146431372907474511900750994922231090230827968581987732311275967182659143809368995651979884819094319281446974625113856626454613175843502536827819658272082193729034578278566253414080666100103467666766544392672438658205494593241689843420550481182208594525218487275326262539420301897118071591837518418974977288160626761935008919775841678457885122751109989013499349356521270419009576476459048775809425803492779242768723449252929000442897099327679478449233721511084772390727673966012839171558984897624136631710163006758535228975990800547086356509291591400696542725939509660582651505569931498502345174925697418453416575025075192710575017244384046067386575831987335103445251898173009862192248288142922696705304141883187960691972787938005121138357782304888085241831797147533161322673888412020919360447269369104842934651125352366826664043037621592679724235615257203045154005661080042808660342514173481437152579748636317302632543157711004764944311551544931497775188954161326612595427022004591985275202430940841065813730514673112815918140000964244908812816478182130029924985147020734613798563078965701152651669703443173632180631535234261014228306186817697513493545973173540358487282634805147657123447892997672571192371151194357265217702512678097007492847681256571712717750692230028824306774785269402212854108493738024310905323978349369553267005899296887838305704457787386556325290232358932346288818834503847761921077811917983541436714344015899815782715296620002548848903326931955971370927363751502482653326427499936729960743426434803919746296125897172876708144556213709023809344392807159414013393357342223044445528240311130038687561148003192749611510921693478854420092019685742742966453444745197319133334983440339224970119629167940622153886987925624450535505268348860036439178456922800167675850131053148424405076020400030937761428279674402057776214713097930448661942035900584284608284481775132900642003531407708321972656140409191646119756895719728252842578710604850434977319652393514636858367387607827119421856228041306559628628647581242014784757789522740698560616436927295015043160179243394246474973181005219938619095232673232074708057491408210488590482870322884758701627875223619888173438245814328839530997674043467784271536976543294054147492268489028672609796963926796686873410908668858593509603398704385276050256358038673535882037611867088156234736724144616095570995415289400496372491923704691641141619777346302526287481631116642412455995584780645443463451442913729509987972269776023817892072698036943523954489295249799520076466260619133369027797990880113668205722735497821873205050805167738656088580052249761282414618764284913648865029659474254884313217894304920131892556773956717512189073400820577423095208002993147348798252756609427851409407431966033691418309174887183122154715547849030817095678515703189149766794422783752206981314825283893896279077557942278220451644468778863057220784820050192449924789962744750953780019816371007327183710245795039720552838132137051469156242786303943763059957032694658127279797154037796612650591649952823901581873075761220019798086284685497318515601354146491773948061184191500890108057604610806147127295255018195141691512994763045119349963307258644937765444255779807343436902886886371760838482402823167641865000829363141212898194784292731529398265759279165558383867603347525613842226094395917186764430952728765039645884657763145229439415253957227239811920491206432412467595225644572029598161633424384195337677624607161898282026794285525903366922375667804525913283854016911988852366079694303703146837290028569434376217992205162735710213208240673012504226065487266046905051046136406961606641643160840045763522647668939812692953711904486253491521339306761941006094321902341394101922802726618989690930100167747403005774132713247356201314186460629092914856544974665245499921355113773450384366095515172550482343215373213165594691481627365708240593730285185947000424395779731417357581782123063252772594272821448374233328151499109424955842933653372922961896752834739245568082099218310455861431768083404259357253882967476514046540478124771592470987972956390215699632879183252718205762882476637939527294914979002754289070524578123119432273643912456495311280389466854641382677178521682044153151857471112038717451297783015873639653167383502436215510885198672572902209190715606519597416292202070675346522353505089044358676019992930968246288623480360093516778916024674442997113913198287553493875528709498173389504058641136877422333975202046781067413658749594603492609763572224866848950139509236558647054724596755223705813852373261381012431569512159758717742725498070232733690430504040662376735823700656157162602876297128615196962543052700824483295283787537797252177718439323078409645036605751542267682139564900090047401881008266505641758871122877317267536508253793268431062264056875138479469394574563763069145617259168082715597654748184705794068186742089252863566824419708773353583234732866281093730395037348722694022313477559756005593395650790448747869086141484869495314108841609883335388660839483163344540222213211646578069127517296987482388669673423976699294728895999479708933933095680237859666046994734691866500779720720833938721584769687199523692247262902923181617735343326836940860159501509662873710197811687112045696685985515531958279188829806275776930771529114578473304248799872411667050810731458759353120985235503331401773591894062069370610348947226469639053882697068450033737857737674224169665949986101885113694721943281899964806561366458074204366714950914417718025526392459766797619465861050231385306313280829176652329697277404886389536620794810527992249862353848727394426905352806957699288740031392290217684630735993631642653539901044706870307161151515987960217832590687493462120058676229042852163286557352396655861363206906578353869851426660677761023778723810764896233807845789970180776379775474939446538021029581809695101406369851547618175336418056164748070054838490608126424248016031373196897479325879056877131056829934438807793521272012488650902145551756315419317673299456853569232986848255509704817655693637989835084535019444268688098330076860556949216357287167398049407521123292890097994864871438969939501788580377992845903641350714575784471398429709367542844526387334270214246558605047833268418587198475261324618998035296258072532570227261683457887226783125021304535806572855287909435404247070187566652494416089751969951076153421130557061155217977331980611109161211471496816781382109570954081811490218361368158453035892226873984484458552122249284874947214161646793938497179824404849204975529300686073215685645593675222720383515681045196522613465989715791039615236336822956676676459232331293759013254938347470362969679468242543340463830286743549665965435368375935731707388359733975605113333482835386142867021633378272976858760617994992892531373975850412281497904428590852261713237164526870979067402544832082751254364358970887086334887997848294692609072615143274590610395012530350495019147867931837065354743697098979990366946071907321514020157226629605948190014421312398392611578164661592698436125171680287777357362108340476943213244748549301324965237111102216467591222286106050263910600591718391833287260416282688787557598394933633379808103254275271750933196013488529000304331319261224188625690279374320666648992790388794222280751010841365547234200802550602638712859001762040996261326522799558062996824339946180359578418009234645553203486348725335060800644857499706550269780173224876840481067157559139474224283865458448684477307530758549898728150773697055536564689337099720517597898067543852788152988332844182029699735230691398043769755669339833818339360378407512010682653647440950042072481297024868137702690424537053212668618961801739487442202986234911844768058138043400020776625508716424941229627523116099640218826205620448976285446481647321230116749212052855650926267178958352006035346112647279757229003487094713592839163298564565350871263012879851867675534967337413665851761940174374429236635917549949102027904463922189827898282165772758879073010015919593762924031815021417005160610061967721356529842044137593889763596150310387826556599943528709289273552065717662973968651144704166752118493367125997045054945109869183284151221170598193176818250499229671256236880971956022514363699437431502235056717265836082483339589045848444616091378236700314883134482844702423022709817096448443481940505263147570589560829344471344942117914787305597168248700643190804915445162927559373947669454846590590304898711887304632453401795915304143458195148283986557220913358635175841688603795236685085332341942506627832257267896469056805879876062642358941466596314833270678780814067123955043501263562168261781275474937512360340069780422081921485665005088903239619489361916662835474860360553752541537230639191393173282434431090299243308515602561075103107054380347768594280487461193143648409220927829872936799651540288572859604145410677935527690432507485611262346798781001576078749861145625437405974075708349725477394877665084628604217536400442723226031327163495193440199128425288744428009483726122665250137606378731306110847166026182411629771762443952699160890148988298122357862860354845980688726792990801185079228925198243631900856460499937353135909396018434779559546978337287245607354948995468774418981459127181536604695572204419514284925730954399707790516101001567975204018176289484349015827019255434169317764589115250546096139854529169594901895113935378250918063353768107713670808093924311786025468015356804993986695339392125508423436298229258382260526630584177370842725635358748935985360057774256851351606154214010462111402663776933694029255730712276122883740244574701615793601846984869746540090463300806698399175808014814871990656278164068764895962847652841503437638710616488111269558297151399617037616861230118340169594093308849714211716359919531204849114104702167802551410722311698483970923915904632340630638653389640618814562549427768665746790105010140474343359411422295721846573460744012456721890939119829612949830339665379393991685831547658030495729948175464379133631219173550479116332051621915528068298683495048001741161900230374859624484634638671761271969738325105232994195887107035371847848004127021447770423588519400753756405486629405550321031782828715345422800760779601596603706213740050494908302553628785084584790420314636039986783797968893022543903610481397891670676023549615758528360158306344683128749266360269162454534479242806310284304796097981991109473253982751360218560133590831889410645429736054882272624144748876106610861291999585452234784367865687507164191960955233271928521480174869948067435589764746560043276335428613585129507953981748814093057670976111028147943123076394061117498937437782135116013972000343090914316373278891049062103144071115904849494541188713945474406710039070124172377479874831828877418851163323550826672641347089571689029431983373269949223831873998801988277600251409552616998664019431452613844411152664668285711238999748808913287017267716602665684869441040497335753649016492102431152401677003271803525771911978218367716228919580235533070210591219709052995919304960422674679889863819132429706408242824346747608019327813611118784861860513391447236713874371247680582463871901391998032395610082729195123604919030793378319089779974706902380084885140115432746214172419053549503210400104705951129711701851488343365614843892040435482662636904194398385300281678324902892454413183277330163044363229088312265525678138565232618754789174377468387659011265292832314782645481955296521789730638925560669544797785008105023985761806991330202381418589125785549325052268007132095306566215456827595466270574761927019205749771001277246230941344985017809261595148543080958358253210287969054757528530224761216322972998564957290814388373050002809794948072936491789957372395310722741902944902276924559113013261071303509279422638753095214749725660435016172906385591674429440246782679603965984307621735003691701742084616970651338364578721455548861659375125322390306247610779214102227511508609534691449527593011277378920622123056518314545671909640633134748193363273337022705448662432971769240851226213897733555094026217816224174759754458548739863889472238922933711468895444869403901078208687013973198747202654261116645995077861830272224838886295537586909068619529916659170561886266705298033586115538883035648185382635846063199914560559981131970301456476595110851341825489997036949198429639966452504332436978509664984967886633170912731688880563472390933049718790449681410999278921786328256670496063703064051438297052470452474383670064241386082613744765205212814831377626890271051960477325868871317447553505027516535040081974401130582191874675889330279965209121700735681070588909142495004026851433786888825109609569054506043933555389131582090594991503788565652579807091089119914948930688090398871957757373914163914289701182047382989905738070756002494191251993615697777223029563252038093518917632493345430710286976105276076499581998383469985558247287448620662469939613593002595217519384912287511479775903769605262704174469745161566844867173312643006461256881533774658934355738099828851655961958137123380604806478191473678877941102429314373227512102697598644282560948295070701849457366726065132500155573050777175906376429218038178478783365226782893446322638344531218296941297898571460962035687350360183546367916999218217393897403804854207024683887455491186099132300870280114295105148932917127135621404586100332906117555383606713509598012106392744107673089239029143537152137889976286993519779802407473104506521110205289811639612255807421579352108416118956931415373328561929322177387758875205271495790318096099645279686220807945098375265546413794999744980247525903665109662285743643766489492203462742393913842110838487224865861956968775891355595147634955511252496423628640750341148415039795971813899704140445993266166346310608175326863775601292554760983540774378849370896069903893897924297400164906161729725620756400964622589812726899943739458863534854179071066186228870336336092762246410034963104958626516163851324189565658592971704262416047138285759699099976003750822779958660325877826061315496448507921785571605452773768240499732146194563961577195461287356694506744166956163950274840245539612971971357889350920307635316823520116897914005731936957686467232577091065042425416696771951940113039943340610599194720793216070408668182628119377848841672585038817415691734808531125320873417693952166875155198460337953166922139143632439348825590053195888651639364872399471747249768795973633108100298673147146719392654209925953482017926593849960964732981840699668706402439974485409961399616695109155306012988734750191828789792676545569437024578473274696363175031095893998944737843309604988261942470081944447435226193793329345196274808029252067146592451516366455445555694345091357363177356788721183124391848310020860798989056728525942134315989862194410185253360651446234690698430455778338791320995358634999588720859188552132543680455803121658963691866561957494007052864948011304351620791901073699015936091879159565431407340251933549099301141508147279106458307693822812377677680628159362459037665241376262315972952643134604719521184371053638942630472935180498659478873619866827097110205453271702095971511126742228392583967296275860034783266362041987472108735084599160853751181701967207531491671379204380285151601241914401578074850123283998603627540745781355784340209588136730735251058511849293083309726005427054563154881093163811919626888292748728015626463076049677512535985340016409338387610731812723428189713859975271725429768497991173267822678888644948688749637764927943626982746901622990810792088466147604233342321455004309864737584998573549549164774283447183415566565884817217909455094120096426284546870118687330589975506788790171636735526188269099727159987978312207101838352729694396344476764957884710100174907198379471793817710234866920735820820709349048569709065745660611256106884130305445313136766704260920334552376511065945756469347519565515946868644541326355659430922302583327212106037956630853043877197937562326660191681395538901103415081376585767836142733632585095602564790403650070666261951401107255710670330586758843984722447118627546952023359273893524198783390312105908805911051233710353996684426923022815623203276264536330190412791624534037847076558810925714295357766011874586967223641727658518491743110145159132459846420438240899826342009513374604256694904674052608432867638263304834810859365155840815560419995239785034839465763668341531646714388834757209697329434116763886330826730213127707290450238111373587239243403518986437266948688909326384487731322582887093770953613509324718081845894942630849501394970901275491287349187024262868610556468805723874639917344216012815454597758746275827342285270960197539248870158021162935039330334211775682850867095371368109007108742093570059723166049325274094214500361956088742103039063675218401814237998932426995525412135784823215558097312983933465989124019459158057802492039064979223562791644630098003871890124743037093720502351007028977903531594785575476387882736536025106736669928713500898906330831348308483932476242091354301844277198790624949398213406278495432869290950345848071319238946664956655696809759810129390390760004003202925441621193958861997515833142786049892247867210053996517470453033812103109594883899188367173798512312448010476022215904163204121632663133511441877156792450893653562715512724561668945608853974463334176930895680876780162277402302414477667709652498389451884476938437785255946987926995947001182636337278581607425596771902900400189382477430119739749016200661463254017094635696234031416889288751492941504647858030276000543952790756090755946154471195498149515528024973895936876557328706631398619591862454390181180826171697064950963287468807636160956112582845160665875871087654239343195572317126212030734707472902285276293322088352199220591756770690892705295953861158126291418405353926714598240521898458056642994352901434620730680403149848350739464893313378509383075457897676266233580091341756622697462386242307149003755560214703085857135853514327004035492978765046466877847369314009070126270316378651230183285173332165015763461953731167049914522894569616455618245639374037150552750792715648549137679987550196285407980607254667057888230940848734047623662955218136599322907027767394870209754939108073958124116215385914705032216547033643568605114989272722270734273914231640375615818729976298073524704686055824072665242804052290885439711415710993880768908827294090406827679980002519347168499475593502538448107851395444555699613569804511352189815556475839185977964831885373223175511348100266717469699097028245278230208717092076737869186587478832710362490672027018663072399323516593313056051645534430359607822499867060048024540279447454292942178204517714725366072646759804403529930596772139819870658837879908383294639020677049220389232457098373307093396780120847039446143511199656878781647486571485195200320582548390609633976236456757274815682181019777051768051546860294027079672098024225766822359197473936296506335008516720661256481343982035256928691439630673331301149973735863669106948211665125219330024939082216595798237778498222406937642003290766871542379025635428966445180965167817506127910419026945809425543645589882603310217707114311523344704652961379979036893092702755677181747820496243719122885119640419929850044637530915031065800974560270514223077752689318594793567048496802146120640587755133439523475523055222829883196542514324387074876679694708441356783138501501368097775356934447827276406419637085348868747475189213386887904331667854117909759555621619320783784817196386192727458440835639231794280063909426239663080216387708058791467610471952437465799181077344978513668094109800319140087794878983208719322379566620365197821917609971273855718749902644196224503721739474509092107835783223114512166579363163315145241564925156230440940337551976710048392690053270738114381377580507730683059715303062846555669642380301080323868176485253022831230949988880302031357085915977263699708661439202836328223902056660322156872155722925715693094519299948275617609421277112131101178320375140780706187701972316128381825728263223785959243056343935926641423580098269592985673860252461615220842917662462436114568481024737518599281007460682513887294726582528942496756498201964308098683797858901685652564896963747539205123698054357612517222599823108769868309299265761683261585506968939286920600350890753941536514234112808730500696674621606975234079487514110229628266390031930716678130651425180314866730499164038497354562698243949221336553112045473127300424225262219678070728300489799623571182693663330445821310450265270685200297629662112701376641134261997591896299672630230115212210642347659811453281392709369597910542265609038374723688967138276624147924640014046506876260966364801133363543459224791396373367748034635677899711381303971775367640799885608164599968269934913811619456239245634563246902257906675495390746542919006634392336466686119987704473330207254351686453779277672396339442349327290485099478419738721580410776657006657709872005161238042782622774396669836132026704493342727407384038948996117647718313362084384919834418417793169544498870360300516056051883375377109374566471132417544836709151917100674506023636041578193797255219692201026501840866435558889637026063480752170314829711692922030241794793917018033218263435965356221918707933700089238601893251813189086090324899163324596903855368916172288382484621399592692933161571105275639533983205635725432468458571060203579900999876365303520049347613930247308752517322441358327310012649028635219115728184702307305672169807193414985762019662291746416241751392448628114388182846111667712615239172162747859378526475480112265818108307824112074845556928833313418333781180068623151669120289491389321853339022579865538986010761188368144776865880600858660076099388756194287921205852338386065395533299732658886102868321190640019412180889461537972817085204336713924298073099772203854044547404395458199443866904134821259258357980159417845377480749863516370706988992951194526971785389155873452057161783623155506905257881942171782689283929747406458318955270629920564661769674682661992242838049466686532335540799069103427297592050963841550128466019843382847614010013180886449681020309447076080299573019590699693409663130616608819060275661735917148024653645006205956584380587307186171907772496634080457673984029131373263905516513079367246330630073284159652096412617863198353196707803793555769572861096988510231908143583517784261563335905394803753185364512584922517908792232833477427016462846732177148231934665519127450894901854114025675477970787874440432591205121346327205529671954695447601323435802114505961245752310350015947553034850326913001113057868385606419380224526624756287171594709305589642285872295378742368532482606100692062474345520890159376704387628954891022234289103523116387320408975029002148134746991697741298340890516379278504334542660596736638200711610449793297422629882406660050032246102690349770043873593993651158173426490971037121333644412510416698279007764962027152253711755440715305513896717956526711338667140640138336844615285015338985680469757212947948725205859436973662330791087765942546060403618753358995959457323804818246210657072609673716588417228031929339850012430831617306766577271154535123767709809992219094616280542496384365689626735064253310726794250017102601480400659300733102796749843646268503430519159170149020090456993360925649749604848006452185320898312811160585638146255033537421278710283336445748454415679561864803877288494622089146061737371073936089032701381212961564949574972575871112436340224861607791810449458373556849184251407671158610090725119108694651487600989718933521739949610143856044641122740091708526006762461372759321693826788155243693238437513597853161042301019647810472877917100030105177509406031734827868136737138516503762003926561920325116409752065570286641563063314681747592612794482642679124867041153568227077332751927988178186108962019158868543793284671373080429745498200399604515590053943560762825862955320946445267140017984352331951566530696098456084011396449235540986919141188437440769865957568109680175474395598501526348278998056551337096937844377650560387039706866587083578098252866622847512158228288827134445099342061407414328392028870625815535017807602493968508609457515098683326051124605675019859664625000784606663804966724098743048969385099766806958207992974903718756226874293185366562397855555727521997175910817175295686200365468657744844609426941995982914257172703723528207641435357204960940968820709569825468015937875743164925965857437547222272464277293690034986124237298691035172005411307988706222222625674024065479117873231204239146796857509874447944227465383322242619894031109807294730383105982882073057591708024858192763959354538264578948237481493703553026400924948149047358943599072517910392909156887830511465001266205167902392437083347002388100544416079739145542241950485865184672568202570663188132457530311318981187821286703859782851172904314195947194767035975190203577811768747422228283431089483319876558262870177996755331151857632902672231331570833461600172093471545483780297641757305602975691277991062252145159635887012834080990919433750644333313592134866193655554398781997160214804624148169262181364887659543896249214761193895802388327932425510135887870983855028032457662079662850091478950674165960099401535619607197201739878918086459480676160379766764194647113559577265862960980729690109667770170417945293066864387505481491914615162986015280886128446905536070016129732787836500455944668007030394308801617002612233122405916133645152259151913422606953882341220031089644683174150492001647690232915979542846972383466131628109564301907411010375289499922879734870863044898804140922532876038092847369882773916429124833811880258578566995664673702021946344091446534669017742449506489752372106763631912248183676470663713232540736647849618976212026976263387443507796307462441115717373439743985587532345260226236597804153275597245082730175746358992433777284608954988567042415498008194423549270653617652319328550184869937298876487316278149860399581376777300888658427734135443596561065126762721485385815977205170464671195444531072799621812998688403354209592792430127211802171987542928763523128605195318704538395140810390669640830937569806488140779473856305334992951657814188737580890948840301841756589102633522355569251891517349037367167836140624234681537813046070331002117030474503187028206117320021654855682433391249398005474275931307871209042145117280723557899920899809196711700114762945903726468929276005585540163285527180115410125026142697220969392426835865754837072295336964176130791236433016760308582767810146166668044753518288430271315848129033385440806692849513547255276716358600040080418072665300976099683437238034596817963410405288285162112251863575430957645016674276916014353442570036094534480482711173188404080963357032477453211612803307703585963239338813048927371766888606899665210537218784051089350127163988782416562433555236915980232097659254417717461744066903515408921119575946754850562497562446648157654197029472032002660349643011906290104959973203653453610182800542085719157748755587693236657859058650111950975734174886015856529490695126969897620119452183470030989924360094339601505342850640172731029816589369870841385348781095920860264112200852488834945562116835757964911978172312373995093874174818914338633192487539925270346309592916813071091811348611580301616882106351831470316967397164357701371070292039737127387711019347317617071198427030100097116296531952678310040557430957086488337349850556126548854702680299130313095928042613642290371658890955543960300971619364651156650963861348998942677736541111065170699963034016185381017788811572114240786892758235956617031685641855870845617286084258125249371739662001378548375422910739148578367194988852662730388783824830795267115187824895551196838206667694138614888207710072132291586488425467503183838996746879966485732213759582135939802172953286012197967692712053073190978644430131881680270684679278556849710279142545832937657218899542192727298898103866359936880710612153864013878088734174149463581389914474623455753317356365025984650878743097586822807516124084613077014283809717397813311722969663734471830429289895954199127423794288152892941643864539985432086698522098152186469779649835626214893559045427465570962455105420931252873681533706754487338922207184461497302388274593870909852809418174289166550604541719302084500744945941732430414177156289204399747698381143180310080698666727604216189773217758964487057227123276777967779541833825249197855555170160295949747845424164953467156318941211386340535069864575632207340657876460597938836911991602791522992438885789573477909389864579963344584299620784729161620492068027193552715634399231227766205414526099892897785809373692825719824246808906133162659641306653793157691751818376251179504901850944534066060115928452288798503483295300864141668407647220647010409082262864861876085478606484797617905680008164734710244094044681264752034283529795446064237361448609442036373699242374087592579232276902465239903791891930407885380015291395876661916970913234454252881349659838684691473749260029751297492786704357294353050406907997508356686475806060776179106118562234548941367002730022236771379441173637975325327732917476275366026983413029587472630238349820869134608173753511039592710976241974852174102264024611147208144880848430984245819938116444206046536810909848879136493895707409507956347870164534569563413149778551408798571391614058175692878166530170440035007654370957176974516629950786320264306425342750659737842924733465189909676065815790199678533246446408281848298641389498420592924807139853802682861978481007105484243235067784468159421513331429509595950947505693278126446245488235030579176952868413715237367943364846253664104771815101164972473655043526110528030610259197819981548433481007720419944809467047424128239299562885187186163194882289925513756405211467542077339711808093090560927016787964424430418567900410535863513661831049330776359256187018227991573870120002703766851631917904956041857938550885969284382538127115736002977438978747637710908650282476402612766338706652318204804060501365060495418015357362643568891230939528041717595253614999856062493346156844562074054768307733578292552046692775266997355228266602900601917321820921344366703233207111145631322658870872892219915595555186363940242768605525435730746368864865587690384198221808942660685058539827045220446442009782166170824069451253251104673742916691467662822251516994344686562191766504307672606262743480297044797117056802588026779326055036402979087619082173937320310792998272072727137878854529392502215043584120021894419222485738190777830886995046223502996129766384022882093478838662988920516435131516224118556314000191679457472893221470781963157982551365569387008851741932832577667089154218592086247153006529308656631120609615976698166100893716034365532706002952511401457356423266338198550091384470901715949301982197063881420798619858497888287045701490470972971714150179774382734409219643246502737150972092298068688246065265858160508740236535300540648362456896721985681649107302341466710855524244868528233868414344010708134769980119598502249163819490311330368656966008990044417779943035979039036916945302895325385665366262495681751166141160892327487691371084952453807067889125250029525127825246990263762061151748744645718563415819929876550312149959499975198763440549877604033396723205777550492930233291927322921372278785274564779482003763642258176213310954089291895952442859913107054692476583859990863473109865757016224092648637542833851419986300052166268439545848363124950991967061912542594824171197044717435744502593483360317388981312814397316858209753414077399451233454708999420645232278056815216162175724107783479086960599049356709118539402067098697721900603164350364373065828419277323450254548910155421247926829612163036625326066346147785711936096630938093079187924927416492663884627468892601984349362974835044747761227109938583892894940702032382257058774126559385980970798526768179402921377329131678652396183502629530867917397916568951617233356356036781668838716496788220695589349986274665982946314530293100094503302563329269191009774583558741724780851129579813474904241536018074770421675287431155413141410339303396442037897823826933240543404028219519035407024852195529120751448224119134509136222192227165060706866718261684764354987698485571927717686630056658658575086305099308105517611599353105842442626353575056507387609510103127243119180609453536464386377536675999439111248524750900856630474586267006574922911421489048969821589833305237128211776722567093449269474199198082739223340960157931707332793957238457670955531384436056412720089912116898793169463410083305847801342831402692623019821006457798134915528430920348337004056872822936048336093059230564505970524881877124977576106380493686627708472163540672945663569714177620611574247986893015530080031515828798066821444534762390046176129098608558903701070581062778272121107076096990179587914579748307091670482184712992320862480996911118691203090112799285401757222023351581623886699527191566536310029284852065442672041634937783927627772264668341046752880835146456303703474354708568219515042560037511049391660804432323450504626544674447322785391340321973023279327938932356637897463767650745657889962695755729414726228224370621226683905560176308544985006707275320089664544313316804860528415404371076113570712148359898085642825105783334712723494125646696910641750436922416305249370727381679876208609365627927836140112540496665789062548248941994842158962370876684828873561406001614962090288207793777536362845169539620625547255328584045709017508013402456513284363104655701221006885580716051778085707261619829472969081467197586453823336140613864958389009429465979628186458158063646999426297415121261420281483281650240805197441960524807714167765045084758914693305678071456765382161430619372169460569629208069243816774990030599988638825977547813855989511741247573417319206219441727556065212230220576279107538483798214740451962064816733390106917844887812056058181109108790133347262519332790426422170577827427124986523189384729072169894608985305344272173595307390096171647487210061687583668071045241648968079994796227534433716841153940514362084794603468802819209893366772138687339616587336438681575008606780645104571187184654455187142148385108709651227906328302568958609979623013152201709913178994555907880262669114731722000480409511275959630387693564160749099947323227092049109555421402884276978107367911438250303523291894164269892709963184699387321070541526502536948177865543776861756025382543688263109415494811993947744340356909507137656568980235440775521540573876751439299095562777097801131450994141437508176098790581866726008514430755381940562754893505949867380819523281787928214057088893506136374567075140691185993350909236558171392790900506125803632370509069552203848880326470047639787601695273251229290163084613296880400935818788966151241427165260639115952381276286806838346879104930857410425688136711411128061579416430640783541153594304608054147953894673394884173407678972082316370352534676012934003565335499104028911321251603294039867046945112644295655166384596045827967996986992151085608368524251312724490250478612519600668550669062322916213585625828220164673842118463806958111324176795149644535739480331036823862798122251399431670536321854114029725265101016522552288481402689962464510720413851931238665084641145704410366868910712196929707791613188508274868461848245845786935946540767764767574124801080863093748150812056836818556298490855422695075314434737650969325038764800991398430941779339116500656072238360452389691700477454779084018614364390085034627552565459514007422825986124347069984228950055072080358987416686368148572708431842144469695200329106444107337486185922265515377888539094275641976951897142984551160922818410592681830315912624551688475212579820632886079778248941125832514494624418774024155224610565811490608460065646382953608620435072833516286683656045029395878002192978977766341735978343023227010684720321665772799622385190449042037625545725471460618555020669527483335401772634452358595241355569470672563734816056699565388114943764674879569434374565404674320488538322937474310538491770984897211235725901373559651453271518464571816981624468771189708085118284282397465692154609843781891321815276638349327542294093367264063038931951101266250887852760393974335363891596898128256074019345613751212887046465888826318067617790712381898391998984926663139482528379863982331815820658704757670909967689675501124327805662279834611130523634991543755886944200085807121837321809012169471182682104317752822760084680691628600234666764462694683614483286954331169223781190479005148747879732746966002361924829398493308747225742526163134149858027178442850732911896481999971779024948332732020348215854866963136572981709442823108306576904157748375903385361574339767529711630556291557837020723750770202318331445940003986070440152670338215491772582072046871122990009766866831276681673402384167340056922739121225727111811991628200409915366767367110852867417312154015089006970557966467889745394696966378404832057840329343499918599163353688929432677171063685359577797778993227031944765382315463379727936708993685274229852072771704841011334523006251017721685021730112911940712830402164978046537209774649630992540985261744051090287514117841875317053469906431222195493516998335496165930421642971392937047220268921111526110559492782358544395220754668811687099165499911828512192005787043070283261235323856623101921067754073767568922032845714412451643384136623748194495288279880310791842125842194700224376394446032790553086472360863372574679571635244265064623313758413813699355155744297689888494763614104727768026719004888993869320610235496963236154216366612077968813588972716600979337806906945574356217136686554146938091673803358338590191202274274436311249967871196641313152992272322362659997304757271034277207037554221984946239335044292880813107381324514806007079173385084924211213779526227601442660650907754035246911993926467013401384806987661176763751679090998911837576471564714543422218090560574551279529501452229951763165238114058954580258937746218398542492257418690401092227222262581131966299187024886953682511629936969398744256509288595747479598570570617571232870659660671044721016339383352343254214483056299121585170388168386308616087008105648870986292173636195047264285146998132560293150759998603353847235091951805735283615879734721984596750634412906073767828816015168782957167407864201973687760616487869748313570289149537077549353662282461704853237748042269097946375348116171863708336514770691743573293582293151670964110099894948604642011246889106858951261167023792017545086557433521923784974021997535137148572963574612192383572626123017523072572273314243135954593612878182230214814836692912414639837959908832878493115853715064619947212427328213618305302098619476081280714246191729086568976185603789196740389964186435704002159532146953752291202405639086971160277509655523410569104784466531169598429512831944988204275311685161685407257643409527788343910647791898644848193479493529077650606107184620463498448531637708835441219201833110385592458891963596421119778939158785306141139193994581516362694871035426473645201898376335597704373181468829972237144483475089819561655185309215229295214833961262629385603048159288706393073215497322386927639891951361262630364727036466019451682810933783964527907895481442861864330332110666147747225037151947341537819593405923468707885035347999472562846008940977829518791825527796517009197727925156655392721968181703383705556111837827593281575169998422446113306397344938340582685449731081962172472805009475155103562990818301080743100625023018906114653832341877715565691706192801796152447792642431718924454747951711707403208358431508729465218000190591026545449180619301645251622717399141892200048758182784059526727934518768896711026384671205636578247656071289721037477203174654577487362424558966616931758276566323875106327609353278280661115160878051451409197815365429350861897913798694523871942071028720442563654586404473115319492604920556331759670445114015694642846447754251704964670033474137335875913206264672588280969697511614008550366340470979979152923833600514162462390755195632667465112751319107167851500027002079784605112846642877249182188718484394635518254305458836150430000852671461389662796413959824380662528517855929901375669933696521743086959542349427932991446250208447629527254619707758611856143025162827868778912952950747192868057323841651179216746955278095080271173297667612618328840398798085540643677234601422651335909546333542442674052280279988207674120517149773098807747883595014649300115914335609366443169573106466584494178538959791291516296700891787601142137557941719836098862160786522187238907179521605222702964727392180423605348099755146188754010799833562886656175562755633074846696779316403715273296968107663005581067309081204712235509710632851771471152702654804661301706321787804056452309562907443143650033825444230528579351781852269189323488408663338258236746360196606087804579194826745614456653370017536432117138295791009972782910459411506537377434423932258673940850490559354955223122041955415500363976339682211991057058353417455691673657231036071854421839530687545618844434629714251280044741739301861023494705734371757991927544548873617342091982087024834911362477814166931906632090354005902750393104104747002533261948906258210740190564770683506897655571384355406290672002997990630594214512336088944594974592882438523579447199192553791315703146290500732536448375705167055314475461307852060451715832606653850266257157038719906339116006634175779643661898237986130067434962533780047479827150084223649528792469142605029480125807293238944501195293599648032029638971582579071157214816948811364927147652147630293658202036664601879984155138843653184975488510970139981302900570949082502595224322581940937923357388141549627783079391911481349973602461874570249896953472146741960992449108974713050941848956431138958846524733090380373290325959566323381275813559168025847975816675282273958372063171956446189002409948804606446512247180883235090654626097070832513665749006333900643243304767473599687141156059109255797284109434490138322163257108391793133500086267186677671281257836819294000587439825419616151238874765477390956462380792189333990399559358315411923145374769935969081114625350546022402926892829303826758161529113687268961505790393924716173350917036528364774675426323212889298347357544885386955645017143640638283731498380952043346071451115504119078438875821534316460200147699398910884091844074527848813927088758910240738314985748705205965234121432300206461149095863916937892145148468536939301067261891943202475002181935122183835626425185443280499335075774346685097877734591299998158908281900629623449910265686359468583142695271371444623218672745846363922731884831936229611275985732901148412127601223191787679561724654850440484393513151401892921116831613643708150385378713529908331425711837124087411311789766224054101133321840179644072560001978493803222990990086855275637754406426923328493732003564031577094493584867994913561394513635143249055476680594264653798518169644891687593145953981840959150889431752959911395639818615228177973416713043178231194751234459889635763947218018928591657429282120091923691245519719723095547348819329999986213275529172713267086416313608902331792782974926836270367396969413707697441032295518495680456151947526089581975659345126311951200030675306157268169963434237422319619455712603178255579846368496875041202589629964489689393476761111664437696112994813103983088217925439300023337478455236646450578006774242699455952941378758814472410651272340328370673980366223333759241763541868309459655173584858236548212933727756338257678115412017508864770057665475997766625263225003490244322599076258101810377803824286664294954252346218037363971891250511110426647442304164173895601614703387989640642441179415964143714980462466455018415459917545050859187655327292186661059876998926100662489802239729231755134391621801570340512398510704313520721808237531668358404373220819691096149815007008065568849586983402824535356298802251899812054859046872190014853022179085619087618776432638567824095791794312854813511007877652239589543754322491625536519260760729358131835453755593218468265705634451510818435775876036523095508344101309043586840570620740419743176618041037994067370566272783567341009525428524088880465530744709828879289886767156139844166988427137602771609704082985306293046719170177268068182635980474113853374580073943073452352064778056681652804601412916891397034238075027846346270631286307415252459390673833344179200479259069863285823292697521940382784242112261423933618598748801536948151101221714813074540512260012116350793610093956217538043418051540823478475517145556104267542251709412745211923282392639523975201017102604676366015822682407503682205106676170735662989854147504658454481305981837739244410480248440616464190028325365171052728934593229254443555102063612674868556225716277519228196990453995195034906182637870021122894439654279296878323245664110035567491975881079816355188389391301787460485092639510944934140687397234626792730933865381266623232666186288934614649433351386400100396956482850741613195537287331698463097134677363934123640644417797699558045439067312797152563210868124936119636605718430505165215868288501540149736260510089477344994392217970569010007731482491971201833093798872834232512556423979830024901649313852268310349882171181085944173922522317766272954165285396442211685553202036391920759506635890503328067909932128744383129531057145683517987743159165044815300153306261478629777174652412475700415747513293174118269980809977939029078250070381093026043086501963455321639046443207997284676418499379564238569154007423274443727384223873933543638182862507960073422385429345965847204339445738598332926697176013899976664010310835629454995485847545512068783019522876960033508431055314791579007347123345205869745653328456954067393798432369929753250017525461667784347452474249207690230974042939499977646063326181220729876954766499999410872765259977366846466676241524148062683442973533230466939783091788470149425817754490238948526325942389685076867613372580073954443629105150627206948048584021599271423581264370749399364234528698535139722797206601387251283420848830379562080443402442953148468928885819780926186490116802358419806637112017121828849746678800016439103461698888008747715454494742680354826180981634569509902341168219384762285761988078178050324079741367736537531853560692787532275354116063915766884810380733982042792943380653015210991956025853780676065108782971603426981255089989200629265097323045936159337956035656621780895602609187693745018808892572696100744502130203135320218700538929647784657448387218490263672528811101700360304348724933584875634075388835581363837069127095029615085978607969795495374541313611251718198153155024697228873400926001609705141377750384767545630650331124395725437956828085766447309787824518638862915292002840367884575528297217395164567704516066152619069087816284223190336834344153408523214249667282392246784852501733956245406902285008911450651192984296482317375435338527274958693947939905504967822207205086443388844997493359988603890703912703997937096872905955841096400043120094511924287279595061683090902220504699236590570289178294927538578763895741715990009010594912791604999836958949977672566651388602839604841909527968674407593493599785867401661691920261085296185778682867759611221999507870320167357918977939465820563038176052961732702692212866870907447340921350345632699717136453709720629084160442231703958582830590773623821128111743024104464747086501472121362805812413629648104213007526352841361110206739866295727555867035732068224640103857941922597890786284830536526997460468340425000499358046976462826808046121993227941813240397738734256481269051441658756920299308383573660335064153129041073845855059349905697796558292738549227503532842162195911704948260437949196759987202534579285767338070548711007574885896532727418081311249791066863031523931483469313662522570885500646160544202366050413302161145700136263583588862355894765590904958299819740523550740306940166772842022185083022031712393633642085757149422258695827043586755577163430740021194705591763860861038058101477499721737937696150498018504717791205573291289940363398572164732137766777728952285210952254009382318907610693963616853632180367287525581568362127757572678447258432586671466025083707455100757043544997753122984599663517235613550136192410931606225356157062166725026564618764027482568797458982421635476001437592798228282962957175090310353390033532866082162782348308831502632384452214116371921141227626001353992535924560410125755317500374944365132760336001003580829672404033986804278408603110282076023739409114198174750901696683523831961993910574423998055943798691842700954561609745023064610196333066952807086267934223371083974938490733773843718369069774317743461701759461637644397311384153170301023742252504277848685707454298359287610421960048495078149850518215140666753214436546775528394854978210858988132922149449170826262820830301709095940804790243262873431131516922094345452573805947892754619554669274254382889221243503321399609244517865487721849888545203313189538702743968593246272136872870793155790105804986360386448481714449370348004682663827831674977306978627131511882551260223738736683213020910015079793296646936153529968018137492175167505637508682404904042645473301963491372558663713590744850020723549052978784391204701393965630834843330465600244243151889158311756880308769975394165294942511571298130881690174011149161164619678717986989166664916823714416027091513829206785142482587516092652128912168225697425846967644815952394505813413897990388371973613970785795164342802950167785799582481153532658015684541247746433891164587422922528079910945330390704875566045295534609644700646523344151651204359900088739952005333146738241883876649258251118511071011847827139602909808107910057627269274775240223855808042292105055207956339755793598722679511548735691153097021413562833842724769769125239783469628535428733806257473570431436174782958550064082615740593838414502177831479378534951010017230251832485629280084972340681679547643224918001287441657343479758949737076923062177331128319750673312930065466744026577987595333300204814074311409508834688570593514956546584481866900735329147535047056324040119636509342346306054178083155391381091200534926174109602890120760205435456048504527557215557909999691996470079578431198276935359108364029948228990013497912077208115630235984858252265184060255365877979166872015443577454060936739649473321773129857574253677173986924133155883787350453647035219675180325723370806513303569345701323797251482592767294968066646234718793319247741827908484143335960195946771409333085783711367521731700987517620440893769000283376684504471366890512033233543919499402536933502170578155644874344652420236595839401455263732440935903131526122267341269928139216354453723812429299034627073969991626162560491943712434676310703529931096157086206234645474968122854477902825797433011114386060650532812719585354127213974720158507631910982155763809404267302760022324549523554372701451002539873908480401728142141450614325779559712884421579702731529772018730468044261307450715722249924083237102719254863409346942126910500394418952176552863058584262254351445326996514814250781732824429074159566491078914719843934224161324273708502637616086316849545707587088835472489918801480859025220482862370529358372156409641080117085350134039872432571006950222032808221895451789027080223004388865788349303734657375189297591165319849950197814260569685340027894048427100414274870449674609772338886130892001863454861444070510623603890443834070886622938649464687665649852810981161112929671615125727572447955397826942038073641616314297112671554563991466218411366593739200646640845165245457772910788113160414477088831466997021187229563679589090726767490536018180717657759695093984296119062183585673411302805879340234229714259364720971145724617544569118689948556773505550691773186641211048562128582756948394194307105863432840880754481323458229480581790188288107811766036743619357493127471065155590447503677659694033724541894279338028909172880395808311067126896103493926675457896988309962142917051960033376318594743907496711267729214378329588783618798290287496306828394951165228568140904094862620674609719449240479481932642182181852812054449993603817162852519304775400117534398807570962704076622963579172354450584276836104102821243301102766961350252251347683616769048904656842253676330467199664998838473316419745187808612429471883634190687981437406244000153514387549557171509518572129998379827310654595566415088061820488112792249844046745020265073802923802383096276133762998267386613602884227519608344341248180229980222026258425145872756403349267028856499437291708359666046850514441086454240787414631344889940464215036435333068550289662628230121559586651014969692496423241876405911418410202898555552654803052642039811252553496061856443190029599871501637483203913584484842650229490722403927301190047176312055027383528350370114841695297802475374673877182201580760997955541521958613129786610322702179782987548456039246740705405679301783681019109908133925886543397979877261188504084727709507647878043694450611878756352622390434413108726237533540968825234943552714794444649748426552142766795542634601227152529255422381231325771003024434037709999263073259383758228858462277932962589051812923942711257358328937695473254154005188642106503578329369430429608787215331239700412384864697772505699817097628052024152806723246350144798771544370138667811289560671077822325850246365417601744634430157395104855007153942638397508065868434040518027684809477830728451596621986012386605457572899394800499844845375218910057586250128912377843299315666853078678220663237897884079555256624434384005996874619686371522416209898123625364832979276340078671113115962878164307074522014635859120758612394422260125718012562293903919912278674509167997248353937724073935000210621559551788164788922779916436019832098052627632717237078382034798962828376214810812863289309270410799923250192944830270565711832858786808591185447584252129388241966106921723823751703629396938047136115737772965707745430519252854917854987284303056359811535612169985493630260275748947865868419283999527702722165688834590274487335504025466034322012986142768564125215322882618316996848052546679265271260461411841972325157565754024483823931702263746545878931525680134755537026181295274948857646527778853872489140774433329420894163762125848637600983593845403746617378529814208227880095540179984387925241608749579960024025138315180781668826037580235987668523257034232925333992016271878027442679232904575002350523676312837618726811809466454928002794582742578667395948102682602387789904295530057818013849809015516512386468111595158978888250361728739501149779717407312249916896001827001170819511563164803196870062449579997364569872984395865366373280835410872036210929835351517661295326222682786156789461188321685654454093918136928559601238358535581575064726431544224464469040786933562826388317421095341055430679430849926487580608146562673680346255629214074256386528255535279044848673466062903444527913556645939535612111469872601120893811498374293942856746114507528944356486744024969309509408883808608243078201565619411361807357739092516093926224949294603172587211016329176785892519054727058860663284107792499112314821761425674913452030448063444887275715461692758231324508889631433209484328942909741463961860053890855418436479004942253677061278164708395734029343847232897247394894391842195018383693565967513104019515757279207307490876137415678716759494839386635630357572124113123500098278611955137778059401306820553012996815609074910335102442979333814734642113199124796442886468798221017307367159502226266147333708596146864759556591426855987321905712889727956383730361642704862092403952957736704213185203149390319531731219804628006091434297379449753931651504670984667681286651188172663352691780079388825830921086193486685991222104633362116162829969463232503738856105443504706226683953043189459493824647130226939149989842847746589186243589482351836033896755285337399768407250372272528635958196043137605330885235387741430728404745047623298759792442550598437078913718056183644681440979892868952422261842098159720778204955040135419825453291375761913820767891312581080155697849525890554678009158288423768865406995895532887417933029813272848035772687920729512577306099934445367667663751101230756227485310743176606906283349960081321218189115429353858845814769044010725506297677410731011449043910031699801133512441033140268481291458650714823775518976275778637322625668622481040989044130068474008120369427732234779973487489979455698976065861951547996990036778300148716220400289751020406063885878861078849358976071713394259990525009659948055144331696211094982596062314407243094357460883724485038522648367866365224139736818609829847283497433516477817156715285110744735919427990576533062022914286102180782104704375732606347575099038149778246850385164688142430265716979795224670656404760237377847961597807802726246401838953500165325846430891587902032963363729427556297629978217144267642776467995094524492080100681170493340845159050786481732314192315296845326250210550112594377590332719248293423024645220867025094161143829277924627475584068934498283145319193869732490093520648777346277832751488799717647997574049079185223087469580924861100836702029806645822402758378615676417234742111858048864850849490178889226582798012145700826929393680780011301967346210575455597130859423352374972629306565305870539517879147797520124999354993657593112047303801886859395784973833417111206266187345674828331784328805310691927524371597728432354628632358733465243364257881980546128832768009218188030633390176329755029377916295752144591762664941981440124471351198606749148748818604192326562819418805633986049916130477908229336069258071561544505641005240188204618769372437569291340569719417152779179128296780459156554575762485224454906875515569838885731359561253315922725560078883337083344779864516610808414665756639280754276017521064526446862456688752212069683233023170968812160732462683504609178086199340662286921659968229274193335261737183522832651594031436734773993753728374922129549987944412337006304537711785673126605363008913296039837602871541140420784228760258604553119284199401526763375681172937951963458678438209890007926819261071183868500793747874892119525656400817336486272579368230606699771067794702088846037807385371214486605314113020698943334137415686326538921131601115430809750908848733534937960665693087058121036058026783436938801165873602339428853807584127200001809878360329250637639607510783577637651950858631845413788691894965085041487489863026361926360635023458636235550462996697226381809034914527029170291641196820681634402400793437641536450463155906785363796112405638369000381014048123418309848649514348342904062496305286692995840763865355758489299948543917576046054039684803923832738962761705248591742775465781393362260069874198633216378910609028322265130545401102100063969676159295475742191543485018622726545961175715160686214156459558077078931262557072312024019412336424336821684664891218928516220737765274914143393566769557370158707101331138442681248901370829180698943152043811806596145216087587746915986821806916541154842185968779188672841845290956421175705019536080589196348056346179289322004289690939488658415470262149233684716619626073264246312256943260105207827333855197378020282937168350582305137061900014397159453302881000620247002194018367047881423145731497930803363491954740320376198489113076898394223279870290655549033942589831483396360666830788583043582476253619972510692007317685008571736728495313922319836196388882841134060499641436687835441622125886738685851657733646513506347281164402936006889001651887101084450430389498935124229562722049009048405580825980584187411404017837025548776839296329477465059972014621504741583459803648605358917407082669458578201241776307698441075423259289449446971315104608378037411938414278389115387306143367597707334241032935622864940830470636644117706282736482957748276442879004894851534249175662131536845474465226848509452946031556358707802293110838440743944467010732789017568100145348065451439231252159808458631966677683056540073220227029284790864786700240174176525499201191517514323325007845952827391741049345185096402046516262427387461456307867286704250213185413034546658563791880885912110561433402973844922907921266570377579072566980226024449498248347563725823932503731696465102588035451029093626820035251513913145188227065197606834569997177047304039082722994569495502642472514973356300365960404241242855372254679737396558041183753708035520305816398382149762128976690767671659075024630774563386412942217206974271670515088096742473342393013386366224427193280397605564724180325302297444457290477319623304297469366672288353516699775780712613142440588730035926759115052157421811369293428256285455229169718728295606904029870154801931796476831822553267947203481183785509451736531315950499154739836727581973655558405126712635954423459000283936107555669944963621360340158032738075678686169332946945000174257022684683703828402390447738110005828965343915065848200967488290760497245049856765866864584949774109384792452800562403460552963613165129060115509128634185193862461252063627136799568202735981321670212267425157874238900513116497080536081545979089039666055415484740242245873278716421898506311524305804020534738724501316715823571001024399854814030682998775854272782994484420309802454660046649445321260387685358087401194616323155203806445924037070842630471882735777757913187728193287446304249508852166513222016435896470403946564456608754831254961035207925331819834256839040648407189454294190115893708942740460779895635382604573703702528289905123442818021679822076909323417896984457906046696642652883357397806783645296545088527524512214463163864714777016444398363745160269793200181554948682617989053471540551251516018999127838498916034173417104486038647288706326690463173586775343608855438171772969422295387183803909543457575073408287298172180962805005967663323135988228828714406672630827775082631006593227543363212694933035469257208434064703318653272301727429546180788239158054664340109293000216872035741581548048399504897997583601964577009681129561796945595533120601560103884006823849855565850200321070410657822612732778251808252970940542039753981678331106012494811477421063190116163942246428282731518520795204939704586234061088860876720241381046713066565489396579653568082963943421107663223579717243871490219335690439154958509352548490038097181423306798826716297048124595112722190824610639414474835429999299809899738301854863683065508136485715518519368838190780603846710532555251577038403911649103462067633700169609043321138461320966809674131097069585949610621816374058532323505399940748919615148137448257729618661631843025216645504039246354500051068255848282200775557688620622562404490874906320550530077940667774004100252986529734990853892407320918669903523385614927332920851418088616691798465298586942644469461487451576528744301809387769009905218847482970000322869883417969827616791294632714719974118578643348904518603040881542293357855658996594093665765699610581112032982436072266205268676324901383665343635573936015088142827288135472421374495879212388383133468062989666750754692141729448782749148822835111357433564132691154654816836668366203291772757260910291074530479084370797035258545192582817956181909196378336077745494971842009351923326879486368640296790641105496507492654423758811609146571578135934381284760412995915788490233546635476972710771481855582845412942512387662731806103832967834318516693751539944563164682168299563166790151877186224943879203436847668252235367077963798772158273827637075189216278600255557430398090527334255048570763970148166109389784005037024616951017429007900579875723171987706185584490626567223712102558993175712004135421665276198034809471517009100456567554325351362136571133782110515051913248286461384614039468855880318958353875669056387206852378819333804010542860483279679628743368052330350668910786393918540674405520435951308938499390503081763351525034625865426872803572017829337773720048513821834780986249459508533252289676957608768745383897816746925170284676817448398598431599026832761075216714740913470505487733266453302633326151698293921072803974858705904140292164304083916140868616813117389660473901144941587694363254429875713690325916420748355088470851859261303712459208599341781255490560834337679812512732516726512230287415116196882602854453253868545524731460815098781711714510979785896572917817124293354100701065568371434684950327801192776421351292294830055655758529578063713368926859482869749970270382561524883863595223160469316433784207602888403254825824102502344471572135189610544101296493867741271761094079274503844521290919877508685017300120972825570609679992473225684659311662763284091874048516125674969208909104630687211715783665472152735064248881292734305643876326887091204082300804644664770568262371290678196731114343236438311400628772786712048586024985750795338346717011876579676524797975761081607570124961222349061668714179848566767979645648790776464011266897792822962640558476008220315824374875850054628768355132712296432523936950268588465550853338736321185828133141524898658533238311584737968203026460242217192604814916415461352558126372521167800319015847988826270924576107202166695588013744748886143256881708630014710297320097352761982408831052338478812164178595172327741529137419472857656760217248989559162608125442011972917989291446226786825817396659185790543617840776006283549870415111605335431510235292895136970438934997581351378922200840957537888173304704910072601631666881521073943336362442616698597207078967540024720054714622848115499017296717292396530711125401380214948734495267339136755352921687376304646054661589529558354087993993160424113613100075154965991318988771533057369780036712114918854101549083824390421098065297950213920304236455214226628042751937913429522692266347062284470281353322682251463240220700933153577555544025743543137309918749837523053770043269523656291132102073000798565300725086063754946781029082001731167419925739548485654763310545409300412304665558153798567965075785413300129186186605062015468706979996320714417812703026946359934027997887906479547062137432700297606840139154550807512247932820164838939743688766825630043553927248170446764970951137325038677275014477855902128730822726259793276375805767974894919722232366547840491245398047775787221699533206294739497884680471344931601808800940357725617778137530060024201743339999192328036421561427831029395405855752821845619222933661558236785007964165724999949278033138881761760489790827624747328891089968088502057751757484256153341902924249938008106126492649991342487322674819355940602276868357382583011940148096842225642990745745339598863802156521563342188059045560582819514893607334589018030803844240943285247104403432834364191345664453005274239882932575240206060915931469278655532464937245184621413253720939822266828810719506538206311352839527894201893236727925171750061660487444034081980613694753961328124635009307944213551583600614758012685020909044278747737948277337738740264765152474712640342566151724236968730740961775523545215402268089822224987921062197950680973977998174939159063048484082705418482798082036771267847740793127289682204740286497235099911065738011293846051397386678583105738317843549900694890787107460339860616285757954544059173891453322621924406556488069414833163879505567384540714752678707383870400517463264871782264610599511528019171621144480658369467273197880728151459886877189687569341095522273300225027272765817632289958875976686963633421205212456654418798277115295922996158252138490465753712563201243073516935507028247539408573790573758458111604837835275134003275473613149166759582816595342252628864063437192138311708014530242027639395331137051585522498191184695911739311171254711736847530590360100794037462268957464516458866986648893432542438953260217341696671129358724905752405438034660578908222735669444450220218297378597547700877516205604380480710543531989975703482018990063024448546419608656822939736610902812969880469587003361379090080116928899316282993839371969772676687191126080756617418031921210462334391308176337700318456798458510618734491903475888453224534136338917234252602943076727625023609623442343865990549305027230407677293896911979800434309059792128244429913803515433519735633286450757865789445741948235871002710040689850903783857228811123677791075064588571863659880268540239785998822047785476074067906154036524182813051145575326064772291305343121591002870893594235663036994510048719544905908941786004194150324048125998353590662775791733496392133183648056029644119856505402828106995747830337218342007884630629072344918415799922526284116207630532271147300857558724253410266086431277468722330155839642705509650556480779602384671489703293627879641367815188851415200882646985750624818877395937954764000394191162183484740332913134596608717567837854360307798947938439140279418851197948434471351605950971923268181227636376882357659761137631518814068269756495034904325133323499483501823432174706691882085013484007120628835219349164697512947789720179579010501801106344369113036692298597325454526490249098604714702776950360642541272122132835488434426680910048174619439468155963479295821852705349212794225267316230229768125584853541158692870735356791882122072962786263435876697214768561154919645422727542989559255367598763168148937932399296555362811363752556561218291326842738796883995044654741625560440647159654257499672678018377232370314457185465677779166808215509220220624927815449959958402053714468473785209729706213709128400639530747684157876734940681945151836646197648814902300329915812105960302654049599752447457941883053872529309046262759215334434324740284866325006793711721041528445553538623128282243750364252607044960518742665943368297903365510719341926344265057680358575073377073859904790528732784523761392599822049767242262026045915145973807226286060239964750356660650218027332801101562747346934892565610591051854913080207847090041569632299988847110796441418093531389561181571517628273753075164540444526510631208703897259527169082686067891193219191614037648027981260215914628278174052770674135217994514136978372110824576838514304327566748270904338844094950151601305917642482715942782494741264140992213645209765246218534520898791176327482362786688442663249408836462082333102735036488757159226590688299953385053488663902499815569445481099407345817269489993411898410276484420465804113779189626240556767444839056967981596591088580643138929277590748905556520724113019208118193492383812693686037320859014961513009674171509189633162182670668712208282978994503281884948048058863002227958183880897362203275815802799886616646833447405251228776761067302108923417165664379567675906827621224019152101062810226524859247170715914250519358076210565230940518223074514094751463267893627882860105185367557942244891440843344485729702718885246920904402357885716252694639289739179234084100512576322563062511336999575082083148966080872247743451660643484645256212298133658831765661516792601676683578932010677049411080059714946335113612301703142140855436091039237169385250496232119876558218003641597995770290177196427610898482079224029374257230239979276995335370413490218401286225022937766727458332725781187359906257408388056127157646598110469190366169456220837149401382375984628017681444034114695151448621719708620593879571307321855762346987873540897474361744429116159584521725415101240580363563274926280794451121493073994596585929131700930301275539429121693267767631844034023532718187232692813816957481007024177136048992569287740336620751547499665552698627372466247388438990316134943085590672060837999060458234820396139442523923754525248973743408261054132059136915090897480878080345751089906923007091280404612970112511310217835962896992845250429083148097442226402443604930479408944506274604118426085281326163145178219218154206001867309651914207539986843879260893758153857575115823863420178514787336161536193474164738194683298110462219965577720537555030808329860788200930582930592196697387622737693639376283809553883486065924446035016625918064434701088959168441676090458590602176153510743786702591525547862936966166287198847726686813640677127622727952294324167797673695553926023417198421160768104641982805020832559849751970475618025900950678026328222064041267337052719955240764198905610341907667388564716004383462455498689543700015275832583493029057540791232656916505858003996894210950918140620653467279838311346805742189066364913046169307551026679347954746763380993140988523773851495162393095561509301402289544399783705271015332509861943036370573268310444124874949384712085344208010377584201078305488264178280031206950722605779466964703069333566343594586090327764202683058410712627214893520325586221347378983459791473246555281133074927277929542205748531727083886068323056621481035160847243408264150613958524669207113282048831159914043717812877457083514785776269311039183346685110005808972924374319064146486796045969032986355216535494219005029717946790337518200188651304120854425808922280776521653423321060773102958845002447109364355799994739571339204353400107637023775337788062457848095615528543899220313565861649675814416753298274142397382241708341017138808757350966023307537795355694276552612458953305099177064279185334732485257477235552566119483491450181740315056672515141002524613762987361390417388749911324189313075154026527378723599148657030804131338462275020879651296739601102307302505064701761039622948698019198922826560772418616665595626155238286703851273977655615935577255330391101354293655887788798523116015287116585651543559656915369861337407603031474239568319589234608843287357845892882916205447904624308695355592440391809459736769158467325220644349004891308553205891668033179516824908957746074338571060615578379471832148735265420496434398864150652123092001890399699532383345124152401127489686775733065517258256656960281366527483983399551906575712663877433807463389721515401366105154366452019300321152274094561986710145091898566166754524433053603427679607348596350092242527618807559697572921786759269957406562138629018611794390377620581166852020485783804601624434850668780660578240897653417586378652231271076666118825436572762592298824507684119784490615360937255014261562976889584020404819580821953940822080831779782555030572934625751908033797608402627566864291849622190274065177173544757452456553078633922007521063504747804777012845791690755680679465412453181007137568335737981237177603177214689192650538647693556041394136946793685276296478102651503955660391019401073719986308382066291856758772934848963006055763374800589993239141763422620475256469712569546661832237471972795718094756735025699105510719207336152077609530568536540837300487858514110445168070166106775936882704862828069962728523975263975300731862782306262764174545930496690857067622503171842417753697161535266402314445839834103093113304024235603866899553650653234343576017943135304261341895210651366949926298283183166804299061965938114522861750763375182575746997375766610939021490955451728341016628261647680945337775251845787171383256994249178235839340747416276665421243905236572210105054211963728594242070380120077628449765902495375324594301083465375995317711759099832232178268725405714522864100649315770037725690025738060891033377298051024387831954532916626453289841016911366541716475563785495008060742135647306319005661070802973725177914655821867818290717763518837619847385789738993342817883444800282239463473836566853645188572396341996494780302475914745429838197703631632687906230535582288182034991979110014735474251777899303282024367866711674284592897536160473346930869547522731817704736508366563232073336070254580456997082514138309781591985507244500961006364142992269116116438201743018666616361120130959548754010942304214124126647858461018977558037504025179793494384045866977384116185522596368791325084195698591084662516017681736972613921281920678134766282367055722554187218177351709660085569720622969684411942980886913509356947862956186633830718291539564579378722212897995750106443802331756671672768133698980864472105634769365880786611230232027085917145896180061785720511385405765069072233154494933153333539838713534576506089669768988028340070410990922208650673087681704226054436158168853687242087878810112611389169049684265302556497161068348792434292316134647829682992600512018457337210871743335587410033970048746014564983440580914930324312775307979089832337627531343287465713023849761499136956040431246349438515775697508650149089206470218401618962520613574172528400072778847221906306625700776452787811193519400093972539830873907086572169021862734090169267304905631109498670872113810397490337736471071676006963149797146841119536088190059153721150677589512408453559476813937724880631018081658504682286645054548333204069576098237099764699505243781777056586384476247127694015953606481945919654668505345264681691370370574185686012913721615631244731651976811278542526749799577479164892786627644030555412377563654430586144379490750386101282358984258005394689578028832782312077961302256633967105109739720562487260531397155103873984161855194142658107059688605494674332324371496008134649048798981119787026123964266433439901978935047224026907478215823512714467427164710540747063245072732080311680867754386114566195252180707912378418280636598526902321521266003276871729259245812402434423569118326908613967786728174465761762937010248386120273027472133454739213562617796159263345298807755207218329017355176880120037800677904117536275123926287859138866894568336860759539485716286756394986096990916952699829445096855865018458242503363868973999047336077446404603626582854299288643780146350618194819978223240051541523272345639445176688267973410921836871524207129515096556158912360460627058375610926398829705511433802466551462225875054135832974527857881832559181625195515567538052890152707284763859438135220130373456025185585687083801009025678168962013917631392043728306871513187681367088985901539840265714451494313584573292712669056922876198113314107648681044252572355553801791109611190314798925518646525905831107923303704404251824683786877521992684716690685207241224752959054644781294877301130856228729876198622311148887169423389502947268530792525904741406888028068859318066646361149544253056397230464906983693772837324064462799769275364257761970658978192166936314749920756268007503202182504039601591071755203326458897534032173054350818906340409102489448902020629277304502502152788085071889706746688608518589665066541487059313965034503610780684927145080483091976280533749194518161058925751792365368616993165566190257448911151240945638718831947480956033193752700471733347187520473960402478670635147750313233577960076773237742510623525544586069699538922952342306655293705857404335349289580830521779306326698366255080139490702419759111216761885826442145515449016447882689985330804201980564937091857578262542240393425984874809506063386967379948333544485697882143664512801355749455118339088038139783339142865184492065587807037215984976762479621680127646670755240643221318718243003842315400160285940143957588563610089850665217704315020498443012236934439809111676593090002675523698240555664919456479766167755789717363155933744815373334671885439964858915282849073629313048385608969308130878556240766561489011901009809405845483029700360493026286981852415483149376222646168510556032558627681782492208169446446919027948510907218914365049971543860687302556610235281058272114263075913277070678371074575055253829558607666544272115677064663768512967273656679997496782899572761939490747757263382921293908680523303541791330084066276439288763113391593843254203590631452610993757715244308320421877810011387654126667911620876193197179887060356916287148155942246261935415926634772005128585745333594778120857860713870302645286025520144117690165423950912947865823715912462645537106191958345030937295467829256220156618554526605594209288136277559524201029583181990482123629039128021614872202494349658500792462974241194762200775129091258029069076199531279202514994259488095675056810288631899666655406885009138603906883164564273879220302477480825020235412830139691575228594763659337113004229485190084620436834740554090388095457898437725918607429759831857683767645227660063296853855318786916417389015873565526439221000576919356982328484639639205756124019971359462684318968998427478649972730339084473587392346239798678859253837665905473700393496902533488438104151595029122954174667943697581664457340038617346771282835906119594879006253228771686006848325399908740407303309629624994861601685816567886536162176290256688165944857258844027203697256491219422170983756079061983104847761604261075674618487741279524486548141340409586202645486151846039496284296180502112286256289591622668747279653888280123031866371849402230889688974513922027172240290745476723243996307523292966145834557642118064955554351147023728357676398424089760709883030544241982841527045484536479584718537798315295819386187472157446031411361994888972315755759198910336118531465425835397304954762416403451709082306834851455885362704543014172411408526130862152251349939459941310783463850741114446389019717479337112275005583072577181491952139250599049759881033528850076729793365756745899550988196657749149284601874251069605759779884477552768700498362005755386113137659871620537458642465873661973542406553763842011268184683717206669730612371005152128044892112960679335910696089737819900531424457004398352243720544776173515575304228275471963917685763238105770282032171662732749755343801024044221596344944452088606860248575673332105672911925048282866903273157046706647602991487622161558060736356227761852362110423259400242503009154973469360294683729440285991668637449998178655527712023823018024803919495670493096678575136636131268144924947045172957689314539106399248029352262482396916331701729972680958360370405312032296551048829282523622291360356179701980096560582887676121962552516188083936097328694469489669859864938043808032559907651469190967077546337629701727941534838099858702955024632376643686203944192958567079981168419745738853804247526046670863547264816072479539536085784723575644674686599464106613611729877012064164474298154633460012098862383379397492657792443445973519350454853050420697396472002274536497187789327997287434777695415133273274040908866671391061151680848234019236385172531623080255769480524929719651567958549116974387361875381434608698650523282524263423915617766648483330539003102764549516422270432637472978077162337630407674912299710399541120691889330317406714990312816006015543595369980055100929400841647868942711076518264612750802654163072210718078191475452684202778182788376853223234918731679163944333919140353771350231583197174914429041603397935629899420063819865301538541515121393804329066257112145332690361594803304708899867708060792027813208971861110348410365480508484585559587902084062869281708659435532799644048195636089081205456488373298868573052070691977354038621433470225289918763362355912214688752043440350631448026801805776715134295887103180655300559273190389748482274225055642374468326078035624395343363976823571034511541998709771882066463578797543564212245010511513676645700273761001801136591950181798627383042540215143923358794061691967286699850566993283431199574727462236262787463084698498958403453695901510602826321425210338028114183024514453119622925958621102635536185031670095411150606929430726810507845078510780883943725788372238978114317314963363939742220570943292981821388197167486973212925995784809687666996828850830668402550928048494707195306793135068382093942722321605425622796712771312559995050968231986625502512884031419276048648772329698969497868213315812438472851605622612849074891738711185595407617181049418196128038164272290286765843911446570888386113124794800954568448038383933271849464810051435614806164149743171948107302629304863638899778827110117100938459832574489456319054242294009551897407132478531326614796357167214858002978078867385560310612777530470483890269775940778258311556371822574455720583906721623840709605390951502212941022831560357688492695782277113273177211191432371231629226369306780435763495376919073738367130497800946432982330043128445053244914560336480365055353982351553680795538860502854068778571409426199001842553285123588068176709760357000387218142128580894622922094672468846965263569346182096159437579022709915862873010884312357894170623633396111234757071594278210287291352350055092251026041328543921155563064025555654993308609248884934471014820069758414309493101120824603147393501884248955039557240493363596918059398501685330333045175959966781538464606056341560757681490139173731179627864479858682832408152643563725584064676243843144408501686623953429795657181371818161520466562504271306813527253348454438410190099855785709649906811745265780445452189131074663868125841625058432475125037885674527672988577364162631093877866698405876540739330733940112689971692999701203451985107415658767794033990534115209124018789460348130619901259102391778886009975197636122982643843600608735698746965766759459095939428681442562481302137348764314424235549075422054593717633534575189787553229147106447485981973487609513338121780375666170574533977638630320790122446099153164067848288475130105928669445467901722687986926285606423879113996395479900157439948878451435742384553240789091168710168414134771304972736320017025190153909231326580244370392200140233715226198405510423223849634035773953097644456616977277544143075846169202749525567331269322041111340746569781346367278467790389955615666750904689557671534249149670933571988700041986562477675526048576583555256368875011607304285657875256124565733817790215075133096261394359427423188910188638585525374625623389975363138048974899141685620414250124711652486037970699744371255244178477507318232706724827749576888697285972112421127452276052889442448404519725583238663964306927266538855367435501681100166233476846104739282434911121242936469789363211167749536600853664958986524320745307978579102248881500314386610987445978129414207269467892960596070024116344389180104024262873393074187849892153485229078321933860204353110576582405819070837743075873419945898903476124049957939748543389015134157081465975582634837952203542266660532133616424665920194925689164314277319042941873208545271041922422951355204552024407370846626517305288455042262839595255574533792050050417578936243292441509332390795937121103281491350755986300001949405057588599317467579420633786596016571468782691009191508832140416192422551436379472139504140325285548534847789142927232901469768428916609451049997342395268672912646060857658991006847752486458095976400671536999148697463260742324645450975340767159300437269604351999876437332667861001609653160123315679515177736920845774573775993029161465483067435642576992959997268200798168488775842855723298271777424421619801491876942804451082387694627287205372314439538685377140997465556216811575444548739823950587694365129100630084516181042368799263119045791809944832742063062702283733148725205809928184976784165023580211604686190547398223061190714852013996162341536541151517684739443937319313184164739061627963428318431662574335317915027491901772462090644123628092266676673771012634612568064982924232776051611655419986420976600081600616503901259808701021721025186760645577333530964795526133236576654134410645220650283377512815568976736082909784955233422944775987165979074914823414076855426473424312558779009123202503410833383730111855368591506913055656313661698714811013284160540778797903084190338196282353497596045939384811902351295057308210479522288648422669521250504519591154538418507271425828603548028270647562989541344137435256470351082600091445658831146470892360974941601211838547861027552409254260484333939405849406839108199022935976771100029796802945373587702069613768820365856113030044273794921097009655492604640207084117559610732821132836189955302544040753627100984781965373086845780486732566066174681996933914577891849283825257026965789331912135681295701979984471112702699426538342032030518096249427891877447166014096478880136823686209598516336283509576569492756750235462406682388052555504975374109677634074451324391914086669952185339643547396850933745752093107467970052671337693983654348064279172037356090793851518223403496768634659968144480703348401398274712351948188841561826705317420418901534067110457808822495389806504314373486807749342915420176852452624234670961209502664255447059292327403289515473890103855312744963033899615959854866658993036125957473704766310753018926204488691403176574011018672785641156462648917481033776203003708797863770596761116192588237293412501770338682600153043533503457663151770534284027326969496077389379705871299160232331166220924901419528943797711992490755959790996318711899801654188473896839010854163992781757452693221861422181509773056578990968119608672597831789296009603976495452220779845247132123815892128503499794517386633199260267537294739681241509604618715388775112389705868704014990790476761563523734306440316475256934515502532845231971487789415054612063800699597923931802008579092213270802506463517636953061129162428998700459276066237746510133233043200156418146166642300452672043192779155244555059376267095240249626673302548162008330043296741168851419979548212695696524983416772176445190238800744589286105240831167431207563936389804706782527734885787254120847225075652930200112551914175455673690001968391592175585241775569405220293434358304200584684053494026098385997133411744867684602651920488543999839022057989472681898882996993014421009666827102189385597421958925253683862277509516806876575404332976327102835994054057550744541946472438245828498428371994409150912668697033039527131763571522977662705520679857309282238071175689296745598337855354014616529406783328198998231180562598327720069789708529577818235382294111702164555371973654867016111172321560834891546009313015102815717594302090912355991931079968266353613492007061696536987638292892256107326790083171656388538498157941210812561613323732313927149302021938864479572958821786991652673425335620002513146968024789662901746243750695013986250922596511750919720160557695880091974676540599270000175877224185108523682011726967718116214717997589624528317413941866712326228660788066366302915502621719460880970187490440311038819823224816053562824028377030716976328781510005628450092079469588744996314475452909975064830011977970761623125994358189129042773352011305972139624418436391209179320234162587392652177233377334903976661348393122512424347472702181946502557902887719763566917997201539281058653816697575495571928200796490598877339188836023664886090756560368040954236868263841130078119398680627056664051877277821333035567843437823021699054016001171869229660126674932023347583721644574482515906277219697765336215303291414139348043930622486687242505185236716691920698661307398035037319645536608833134280988987243873260791313813239186146606893696526242439026483010199004052468842241418865663708656958613780746859863975446751987600100585665761780824153461009564275022364832290323285375259851640696792681596656930067462596715618381912531608833205615910082596362252390629215068980158668157011327593492394429378815810638860674102884347746048337910969408901371252470854490898513598466023847689214762736011380550066009595284913405526463765780558405637708248273359793537797693864085765208051710473892314520290705345446458838717878821931431391579323393239191065845542870316048014018490662305115262348304058824125850193601862406129495254014899269647416799442838968031520140001664359770864228370534958701234338259228945068291532207512120157505510109111901028453093246293665976288007668695902692070691596911759474799380732037190073922083771814641561746052608104217457580810847650304213701967977088104141709799113639063024086158524006495782504732983050925486084445914982103591480142766643984946521591521259379272759079531149856731530752647231928387463698871559487813778324351071288838764769207353227228151308224539593644177194721091489071379054420552764813752886462095648066693749836962757612040365262601901215884251041165263246087157992768069304786512697559944797750270180366581871883632181688498846442092234770438205080638888736538580871549497055938010386920974824980449418814229313645538092272917429292290054029673045750030804723781016514120332567016679135941006848848020565108009449711021077716228415810360093187084013967704942997356733926692966558636903060340249138996873614845676460322317755329200543604714033095328414159184298667913061139715252237800059754355375437066466813303927493278855966091093626658609160209327527956975372240707631340329819587746549526420121914231983862446971358089727904678973641817624599785009477199971114401774398298057927955007755056266676057196073183591903084398419797563111823768324834876215695653070554081737488601660274892926252377719589569881439417903833546742680074904685315275115270940648367926550572116886845300901192719161146531859365803973318019667007457962934986599343261006645477233705457360915462924544197638724523552534137007354500592661135683221485571976994690795606425035480825715636514724188031400516733784598878342507502173714944438682716213226871069163868564478996324174812413660829667730587337102505047985913059550620121876864842816061086912563497480614551275485507364028284690621027533949109859269171122874181440861100323394572269075179822719797260138794802195044319307247827931602251139135046648164242124385098214402474820521010397315727627488018933943608675783963135631602776384114940013984023298334477988717474614603726413035447845065574037682658664453648298275176553614340574574821218875200309216213828071990088890379745168912882478801973386503776226227581561029083720253585296193047928272066315634074526533897244822484432772400767196483540863171822476985197899376320464903559075849842550088146093412860924326217800239657872361537030767155308264415358758379705688154130972296379460677053786337281885676494808928613879182301716249891095394977728609615159736299031234433573720636166588010005303403565673217197416796871030179437280439739001749817090817138396058623254345178223166879812528437292565226965905857995019939347931196792989759965867050809784253005266941654270459446783815650117019935885749906625508029460062406849290815890343148525225703264905410730058330961089136981494622204156835620561831606692644614833551713191083999452173247477834739911838115883056266437390108525348482575065288159599836183782994200223951061579660925173542649376840666242537026852996969225644331100679377209999873080314574911192962248272865872994720895398292698519218300300539262528044864866824329817467863839099625972592895737416640066248385672504116539189956177347601704987572855365058931768118196551156931232793558993293213717846734808775306660755700410911377067733034997621151224095782669774019893595688105594273469375431859281731237570350857396294013249005095290658599344174316110353905138940153474450414832500634920639836579037340832460444854665964574303351589502540899330766257067182780679106493619217225372892113566836495450795107748436983327012808057138697252683412808787631624245518750804784452000246263352141783104848818268009965154263446007818962238820668739832143446606234817907345675481172125293396912380439201928476026556179729463655344692022084894410896503822761572736049601282098570422659531288993334998347799685503415995769495965644184086001087680720555042138690842009440022388713703487802695492866595415777214405261026147977862324790920094021278019773087591892810699062291059133910170722407371044198129244053538336474111075504313766658597565489959674705296036900414860691362935776567737048789445133566983194061467254223617045827134369294967452298104824644380497318197697959642474666413096345035521668390442788247008095214483204007456911027848341317014835371352215330409207049547229922152928847877585343235827637662546837555383408667015533583503374281329353009590529592137404577529103789495775722888139716747161116299463049048638169247246970399777767504907280585685998207313830936874250724812390894734991833257718175669714733478592377399200452725534437783348790287682516452136504151055551964195416140396293146847927323405365142867951955638910281367779788745487904787876218291532528574312691544348883727955724985117862944275570607628688298465655073492994908413699136765486060411057855208435176631578632602636643273776544708271005626939036515188104020088007182140209708976938093288452635181892488243760366122377093338718162528520365657795688096941509929101670554745268982147661042449509839224483965362271418874251557938499178884669933674230142621670134705425546889477047987480241972319512832877614541027735971079976456712344666473640249462920962048120068297177837612937406352877559113088058831666526994431379811204760056812787352188909011751498157896689940851064439336454616450046587137019935267098436767294940022401403117960484291341439294206885913479570747621784644805414920503144202617807413722830527608077764173205830247377451303492687875866809263819001263973192039976810756990641250125756155231590876312253252476112117015335537894207576921373577641794512913335833747567406033273367639503522232252335847462762759738041197059497690175809663255987841034321274345168811633719898015778659977764766436892822783026195423806398151335589187083161389611031760584738200228845745025760216391078312966160306870091160791489573111106085472912793817117317966043063656033486785945071046153708785204430716922019681640680322398919481446632331292205605310864420589868066790095964780384093433703083897246007435015533189917200342957487597852988495324404099367942945384084945358584753082075040956476860086229120842825397422006829092192561718595601352872108589897050295807728019867627873785744168919473102688456063981759817074920908205867313310369855871501655704682965873477685945190894684040627367649178386732977713647453844010229689176678399521444187499089416734374970332784743260147520980191836782984423588995905859431836594944888827336373582710433789270385857403267112561020670237388601792445523464326091780361387196945608220429445695677722967698781700295776385690760525365885863270730803150138380255855107952385091931765921618124526843672536577553270409195047071803561382846024098399343335720697498394619642413327935740454653832295308891787509717921822679703208016957294273443534010932345632602142219046945978673304269546031213203414454199147676671212968014116233233836578088694049406193583597802012020620713978692947625248986366867107999369912510809505408224582585485918622127320853224621101759526270943747134023501917763749274182198259748199933500498506992771050083559933942061316773730800754176221435476493452908972032640757887892122626440691355292509632324262279241545086539141862093382287144611905591731191708245651872269744685681020346515750344867671943206376809318914310112273037582063811748420702095021307310690437936057775773915755102919873658793368457523933026308888519538206439161555086896863630274533677377619470106868844275184888333418964439752237039976378104040953579639725775532434024742891544101272198294174066959439847854331335144720211138422819282986915842192560804566070086107702061772328357268857785668712605833196110957972170555950790133476467650532997701506312575564051252173954213544184088080122029876458727660022372862134442994293328522445128782799834537640262514517015842666511745226054899844926517917047364920754048342986834408943187290201278218602669523353498711509431184898701963949496911666843368006551183060908056000406166418574399480390489048394877364109528872536735437618316894520026110854162195163339201195351701630974867415922725325165073535823238263841116718431825334268587536601057944467724714897797701083570545027104157778731691676426565089937824649522835734976245704693977443652480315349082157199548352372330262263233355744422318412212839452362749927553399413917098744235404417527161603551501941467077338439985162170596970011640354809006776547895995659300831238425423173953250673696929817947912716983087316864322663120101183182022068276521154815209998756004226083426269292386031860466106898621667120480321534478744837483794155196018235037091137603847696462407139409191848654917470162170104312244972897588552163489964853974926855373755557150156097407947422530475281757618354845207144620377408540828935767752073945727006330627073341121026363219958859026945883306854747159067770576894519929726883390708933592637421743976828062014484775914607326640248816698520141924777705596192570136485417577580717513904838621671600077186089713456658915882187826074168389676440602004393052179370322972760734166250516782984376711102230182500343147867883985298803494783834399644751304516473550947539360970596335169308163690110405110092965554169773661013513235844573930280389724187711360947075373938673698004115970634203261725194467143556650949742739150833615232091218094323190935343324840980279976036543034722419545610349638492357682803136359421116662532438387638424470972789841257360947847484361113573839053230963625046963755982476437026768739574611633333785497961654936321238642761600406866498072085921246451953168848245901895377606122096445113189242390448281957083734315959319750156533489005364934137585623432605598232565387082677900246797466512478321840157113619827159487370702018593173471744144210264837266471740368814687990393467073319572051281683632701921024060980150636985195517067837811788450428847231870213002833095086941997144650387201643800639028689125659192813726045230549947886390231827432840905845574202247428772292226103234801772345776730894542852144593501879646947583363991203365329083001175621302604525617758085512095372071705756553433726408955504800940327009551989348181666996121865784540985504592303561050749795096196224752581734176625442977884576959337219856285318707521537643642798655860678743873906011991839418906035855884636939778582469140138082140873929111346036203319102773793389294735323252967620114145865504314361463547451594775732742915841156893904654508786276247899111572178265872897562402633208936506345945321298631570026379182089269900388080225530702023317331570385133001223852727566950358524564084820255236888317285334096114568487383337934476647167390352836923365820157247788123984553868800249121080617505882776181122418084786369402511217545298611511660213749434485517969553273062364360643117042397788892528079292436587685654250754470615466454704551731671030248951942151031223347120468547764795349765165364980879229876802743361853373288811147688568803153886977678666641870500047428855607318287841621920213378538627598471748874124498317471564433114402911203060802032662916693416466168041988751163785504309739536853609188448119146418577295368640126063744719200828566208655191536135718867586897919587762024436425619401661963757184154577388781309176413974343091715887790094022017585202855077545863067423789342008450000788993139614452336742815862283158300542527614377286086969917638160614757798027984499195101767837052804690250795074772055317478635848831752495503834736986819016840977926313189253446554552844763757427200724318352819676818627451949732881311476877712595777222915199602864043837967826400128953596315578563366093644531603746021276972946651351720167068058218886887918230287518870131063908256865175360746648164327707766804429179709943827162568395564374106749269595931775163341539108157626426219054823898653591450378279982320707695157475692866512714550113370511537998843165227812954209742552852426422430047458387062090285264256547515463782157952798982925437648925568765525642334210965545173586510121018752355813750548866814834240694136877793064999234281707284949867286213790006183233940789135125016987389317015774715561202009472450235982069945657917077869117249224016558270276425610282071414523337490645265443220119161196267496246262462834666386150288415116135482377796148114828427521504442741930018358524808345678830894537920126920830924034683055180792891713219560919483419593111156127770219111647655610386179316904600267351426301390696063893837013959784372097469891634751109494788327975182858211383116419861692589264996344306169079003744728094406605445187185496725091359308305857608858120052932941705633165491898363433971571537238980284242662312472429921687971724562729179128261034450762310045070577794830655367055334283467097907762601129181822006349821094136867582471130961470777674750558367973568701825284970048874636413264786475690057675417921141018930336094066908734988197758026479638369764435547198404025246152800965703262583220477061634857906642301382194527701919834012091594636340612341430877437914358716592565241748159804046238008345592865555904476753495855674362474610749436230836286026950269917176706399659910116616166494407987022029499861872023024340679456141326424034763058364302208993884880164322549026639610961125508347651672083262879797673399916033613996943994957835856487625701463363140800009663594077025848620491166862643899797271027343574193005218751020655356339838388385495626287523309177688336057187644245940047574861838446977364678497012514349406976719330614858907554846394923143741115682938612912144483296670535259990349883005207895712964223643227386432746739515190909134929145430973023180248454836791268150123700303464213747481390702374914789561962610862482066738885155308631124994446393645882319464517652910721142754134133332889686070125002235205926619725655926037073050333476463138778482635221775087952067314463780430623391676335903122501794772099308512986652341025357974824583343213689476436982449659719363878656601350500238443293949649007290541402179477406633350483069826480878612434567015953051956981506367235039473106200901733577494612231348565814513538404571995048711052724171574162924064566389790305539455504515371947164971984934275830812011215318824816047202199211066366032267777401574384106759029866641285745208602074105672227686149793880776419527556252339428394626872671168016094603170155702624091592894017754391603951062340183125388722549444550595659098859383724720649758239831432565191722674000931879756502416757352211126251539523609755321288459500099693454165699541511220544819664209566202071728686988216165437425712263214386969609102306510052356720361880793734239029188951358489660685489990945587626177637661829947014931283337555048472139017880445424574022011664294172100336960415795723167688575488481053146701620232132019266157447273100778055224861437336882975144520754470661609201922750284120007309343671147730135459244719782193542268108733497984479905220240473685975200411929729539220376711379838325734183085269234727967916765039895849160361501065639353657792242582176505118211736775264397139600562309272546215700235964750770326404090439783634409429096777685713596848768446235132967208936104574996589203184339552520168700275102102788439010111770429940308393698465092426675081393112240114538618800334832774909882826820930737441928850961025406314830135318088148587862292961615126660321111214717671272083740972895372938640502616048074888213170415418297211480093665891504012176582284436253496259459908980249488935792521191626479912593388651660955862520656180885926462312259966354863493871809185354046796615308456118700347400237119601120338583187340092837811331584010018762427986338085527541744023834893886786712430187603512395461410808066718967722672819829114493079319018074846756050750783510063457224634148510517722203949918427619863802605248497975767718820872793436208279236636514996070822084548645232223521205050320695007364668037031318018647003357652566450872577072514369993096369877846266842367065276814094527012706230609022423029176626140835419305489952996319418263786378963993232610762359493124113842590607100361687591213215227340679044762385711485562728595506626770350530586850783210929274219036959448449778692461340768799989242671808677456872668792430485147524153811349872590957348231169276989855150611133160554982403024973700680470311151212394342804102814660953678993348810671039732925673720542280872021508304885568177039277688717642486077414709777728126182953117718388598926665845098075529147775615315810794600128873870812222277925672460248280147126669656800882601150084381831581678493838515708674114506548077323322399575900731036559297586161940447179331145451656902518829428237982870640513283059320992930292404708995919834801099593631477988291089826160183599136900846065006337844504762633538728877802099100584345271227819578237506076092761446414237005804492566827892656848256812327237512837437281648475576486398169668194155926668040471063155662963932052168987783416765794320190239185472138633596572270456403507132071130000122238453224609512870733051570011818438917168415109047995832508286001125832414916320511280137603216758050360809383375786354471557886411603416250973309004812078527394660820750574162716150796646676007011570397361725702690503692276978321298258589309937128833836693286785537034549970466116216466441175839568745018331313717025605172416945719330895310447345073423142839828913611531293419120505229197694893225625376503147050089381203564144085470404743508717479163554507453828343352926053878651872704909240105325460952627446379967020825336981791866687845748634656404104689688505956465930861839018202536731730006742651684282080005332822037873212536373049893045092683545273282534299324100312278745836481033405711626752344845433902578498250965248463251713085702265441116973957112600034979016299598810581422993166694065880228161532914976206089524585704555086142102874799154311303623907579840157383869529045290162008285904727353739209409182052125772470847348910510557042761387460968727724820568447749625215405651186674990798099516312053542447845851382627114363552741601086603880182925296086244800300601008223457382929780148226687133047854694128541798118642228898547030017101605484426112056948546333446305633905288351193093945360723654830897494268265989619271674558526215928420894148643639494673711227854890787999535165110440037632949511965136863572723569956751537659444490235703310477793597927054414683753131764384514898192346923526085148867152134214522527987848946210895555822435149474986667481909707644498746991426574308363915398914970443760410848797426669889013005467237106414514475505290088397890542254254071017533698350689978572607958004379737514843885355491996300087176036988523183696072364208662086352643567420209957988115073151057166954957683023695645150498815139367142370211750630422622861393670012162561982084166572491109262780737229889948441269264000567590994289878132385834277611399247069147308252736417947787970111702664690159662948708927755757860293784057187944797369907797383236928720261740490933031032065911230392744235005525525253490418997675330621190494684232958015864697421790004938938272951537670806640882337221408442009184920602835781154220927215773381113704842775128193087485937962224796376991682928492725038985575137705595275755763342186387448068483587240126948311431654710379831342486731537098240597495925459977145649650507281853615218811801139913609781554412991003244675830061959315315566589914663027193895048621766292602349625791479049088420619302671169264885570559454795985351371929000526313445423862982265913431795974067603340059082524064126414839986380557427003560024906491980009952138888305383632736889015753531133772086206252822968385148449244883314990964518863770529543039726963468658387605952297183646693973349846263036835434691572641427280238577270790928395011449343468350115103753541667052827429496447699177694582167612091290910996405752544961830844155164238644371478506051605736920159036653877839917928673600199950452956526782393011045385143685974722757360005905703535354984077812498176929655369177907854944400989524956979488538464807490788070073806163873106734471504105172229195263175008680603925475403623900719443047096661146534163744719143052429365937111041296886510739642691273778831240472657379576618897278430264489689466108147307679596442689598962146568064311597261245711366676812957968247367010620583594442374042318755737395099840797931169467210821422759943248923706451564482778765177096696349286496633274000573183420388192247541594117314014782490656435157834861635529361451740217087367405342324887295056815835959614527336544827871433937889483709560746848039932233466284566803326864561729082060215647779658371940095751683444544157011446037594065947355701445161131772552247579413643500666910622241348580408305503180948989825294674282951684868689058664765235030093999609515489467152542742477312053896325784015170681890070340954043553629656268767211257436016733542953669236215678992531810658888226082531516884229675044696995268878721431761038207125682870728719970306310922948852919696028888949961688006455170762115357083907906162147068977589007499119336715156785080071116095635939537895779915307543657844676058460037545709487874442016512043871576076415311959735042091402597028714164349604515215486093738821688737601728908518204822952172858920871879458819685586596016234526375749512161095778712106485909274492485656647387654098103780048413747030494835917104333029727462963602101756876263287554014913659393367354136651955394507520174123463349447593044214215047313753155945396927083952519630868302723944884633863126001077969835196781187034237518740569886657771202414995456981675124843589476850975681831634266395276551842309052486539677931388084225925460294699570944038328742034696173775388883878136061119444186938682199381341820515636653198479142672945559533089772647856238936330956314839740726244230369413832341114747890073007672002374660247454170773547901378930321827515011782926984526007904078975163390921670335808223450711028329202781960118356875944906206462946073797296721294512869756338890651673500044156134674102001713091094919370454754629794804870171690375592673635891423496400976685419272052910291110781963208770014025247705162223010170209439883494697362475646728365644107871621174562080445370000580386875474076162655768017632487109785920924797182480128058459244810535489948213859722136914528228344706508380596252001526301594680124069567347226793235814054604326585538029227006663540691859300575214862518000052523348593662814453352806445562740742198932926174938845849293478658179823253308241717767622612998127222068484552452479503976129793380675499495172266926650261657632615144621325429003663001969013325874985348116135434184665917403806983082463511237965917112592051214302842177545501807409254937747655020721425165048221449950660942334023299160751910764887733010826680005308366629959354144201902313422876332248437684581411550050447941545295429730634605739520558836709330980446744734572982306456069484528173535733764851530738562643732580926562358813608973917994813452988544206921372511361542112294887815185912588393657450177588455317494442020736322999557968253508121353650346819625422810821817979510302778873765487544819462226554232381158971648017888929308648602478751524489660796300215106708805107875006333877271011978232239046009505375346288052585492362217453717910454233184855638669032557595868186052352294595649369090040826284022352176196829443048465490777774725302884296345248857924909065471673397848646890613586141959372452347353880549148499893851814917167683217876555037840920849214932041568834873332532795697569118655543122297992142243711165243298302805278664022181665319313771837453038400060222436911648962367773187173201372698983090471535215394490714253061680741425615422155302462780242976558976856253491321710071399632610539889258656744914551204534605092114691714800144508334344274724503811195444433855699998916803403499884387386827546336412704680479244087001218623217518541373134852034571308747229625703905518199269454589407701499004080199526967061330043442602449532584930931438380948705646200402166971459431632286477400609934849496971746435283162765345251202961184243993186550268474434755828999210220093742942791657747506592052165924302910274613169255171683796442982219833727667375125663399884056839412128779430157611138174143343677584668907137779457788006457355826032202338584839388991136858123352520005245718717606665077708034836164997547755734839957054694169279629497169631763422475514788186959130766327949503464956174277855993353144436045351845471736832001097634478490351608475547391758096133793688319294372824948460983563612685004702226403497871067632953272974370716185842735598948677275573275234618113753154742234469599502419183849357728149289288739009963771728453573099172309753462814064423463259467038551871180210605404483394077270828992037447091802432550059919254469979547207716650249390430288056781946225362020438240131198947060162208911968382432024647570396252676375578725861029785402933442885216072271460399836319707085675321664985581936076763814383548636087899681902868264700306347914694138650730491499457550627711002490939725680566396909565607928310684157396652223376856985990926617648586284554251965592240970557433281034422077672181110770159051092085762472042180436664216646375310538073088858421904619985434201337473659814683468418417319832896935209215846422951026622447524048727421012323003063261676619316556304705258552158986761308412044514871445362217497737169913548371488924037331804398050969892272665068692641551012499915612294189330840445076132791463454616699507848216239150089882962020442311299230325271719407126315879301081589594818453655896303220758463989776016473988597088434506701027881503531101987159710421993178044292622801440592802644018492942378043260434370283705214952673578145991246153950853795779500769145480499404297272636475850279333852020368366678129935287757735997395128145613469810484852692119806187815850105103014877707399521697067722060434861478761741760313772782277561744845135745329645526981459528013784873259823444889211758843404731030318733823828637325767102016792016440824123340601263687526279748375099143345021758218890390435239561276128085917036590571396559451525948518294652211146129851275633776676826432055065980601883208942775689345179359025139290303686761116128398588175924622534067229463752648082581455643893213438002274684486943617495461272372949669960341215103250055326828775495127656347548305635842240327644001566608853138357739876473620732717433703496055611416403607670910897215661999788797844999692496094926824959886791798979166850350408113616474998372578337908841336508808789856457857358990840405582198294962865801958410733920575634754105418666023483568907050842799120896597903781099769044430305357177343004564345750952442605183964759421639844931563267625403230554770868145396353876622337857686499437709686463267786360183642679473190820526385263690614687615746283766109029608077638117862261498407631772333297914853439020815635934353582401121570860000536028864454669111115772647162999596206655005130853492307366679433071958453511712610878990583131082963283611813149772398200880011079105127887922180400276350703738274211987424472602513589960808957485951817250365590824978172867205366686895834149768638293570043500534574611652864894935033144151743868071599709623727694181124000623444441987564894292734329520108215372764206089535921298331143503196369755014786813712848938615236564384421216358902373266727601197171834586164262584947189061189146144903831584143622251766786122263092247386126675253450566858047308001924028828204367889648852669567350950204125748429858948318251807943068941088514102240915352657064963411540380674152489570824998747421602321875333622817642195409913531369891938873211015145847548176974189178131103653467694625265422808336042393412881898663115743276895483404794516347806663837368963665482437777942265133695656728625163719161674096820691562843408385722672399693352771487278163333945345849288208224669869103743487678656609050374983555826576586131292961370025983077194996442366217714778761708429940413141004775523779109646462032107963589805413247860054994978898600501910864473502486625753502031032935418410514282922843170782504596845300019210846147513404285673173482614459443910398609439539040036357217825556414106585820301440786995595876822744726379807724819862521140407453072210951206720615082167922667904308685451838583844525863933987606850274105751187326861766321445161415160889061097534160388994104540000953199884824476197196713281742520033262258630000240846209981227612579096312178953118900459772479297465935294028426434638825695893127999459054022743033334831015195833676975028632224975272387334592234868631683822402701935291120422490672941507150715408535468071939909773788214151286600630734911018042672365638669538614053305936025950894228184805170443142249448227209125952102453954235190040138521745181072920990592929316125918494117120294707546348520408557534556775030866560364203482530521153067758919794007844377032245845881416925342861815530703583179686445324899086198522148902444603418031709532486842302853639665168030311938187876233548987362116640492976482749538467477369396650724336932862750277693221395500794528286850998550823743474609663943039244233174111813689718958826838848458034884772993483324774424524075268220045712915137480374631666058424052628222671368437593202146900798015306044145847621711887391220520329847666660362949991258999812633437088011804738635773077866903941268311520004647000755555513545250404071225643380188816720033481877463225002076519334351122240665782126484323585662716643077534816542336730154741365603074644203190399295629489275676541379901710133727337456519575600590729054275583343102181897688263351813188285425154443959614993840013958848377601207404871976143099587416493846182443070898506894831102475008743860041556030654947037569211759459360534972162813691809976228720048358131355446658950691148528304144586242335681114126468443910451462261972419632820553651750357896087325188557944768209234229004610061238972749426761766766174286172873913824791806876062957799845045982288480229336640874927513171790018425907610364891084797804010416005407814111555350909453726112078671497185283953058456828414913570567148065898054491030078867798433954274416385002568867029839377521104825025879413142767205702510498243773070210051962078173858764338081927686409522196244653722895117785190206033012491659333037593176235340182002956825565191909187591934730018567581683179770000552549441821133328709577780028524661006185376877306704979820902561750059026134660429264368006312238251566150623633986875562740193863710021540013296189032359742036329988879487019885542154177351141631609399575843545754439173139856598155648831965188677786432395727092893268388779739453474002711724234394353262880887212568397447056411653208393174344883106036125096445442337131435696880552004911251062378707347220514124142086539404673532531062257426964047700813316100194530014494849715049055415398082593844857250005883412030580367509562084625216528905420771207292213269023257898016635928083937811900983471822517225377281828955707311079660290768900754923086266308209998086068446586590583249403961029530502795197789564702052311805783628307676679238913206115028550625688577738233285510891172380193409803654461880075365647207551804188944871815366669616740283282210462104055705479859249940014239177124874993787536283100399955570560332891910874019676820319330774406204627440978345325214071915538209404446541954502152343188754835020432354852371482884935484815837968358178319494824611314312956135395115692385221051871175395032583145868448492178392973762780292406378280832067133520678021488078030664678505389725256154534219155015373899225339724189821802823877270353822741289008276587126422715953677385056768988296449422265922066517679227570373299861641092649816207110640811221705449735333472291193877097528661644464200620880710913401392693863552660647079568898471460941880073120068869570180626714155829006707008020830217139112198011223133141412594917049819114949655607134160100207079577197744697481299747974357619504517126679464256233821071056190045516585975337738984548698269178796905275003524034394710179752216307175682851010660510805063312703299356342855582341981011673684488348927413393289464266601716864538336838229313233257572827092095560076405353639108454274614548688622924221544633188483383168220334458944939068750445088662615809863866573742321882927470285940153330089314366284711075663710054212299176695436635790301189372839170521970983521356229338600351652134420526994562981991067707634483981663068745769700961201341046683895492070928215976494842600005071667184518570316054461954325688128262040795378993641735680848864226995669740056726990385439114737516734393584759083292252127473071658008751641308824024160572518203435402519957474010525059601168395327019970720994235194640414341073830092111610031456457090401967104421604975291333522889885808568224149985107343463302848501041021163916135630381865097787734618629869518970698370412707354587468900157839629768228191950339153841511964423417593977189615822474021652088214849666392527344147200585114637131048902200391335109074464996484078780951931000022769876462610649551335064056000911300718370786819054750038296475003828529039248137612193112529347107505596209714434999224344055277504166407906682163203253842063064170734920636668309935169238189815317444564870564572833168017700879776765392076073322396395465827176244208057162621411475619083124301580095582975597814905301594959809898705850114226468457784943182877130102462286066935517004091842447831099600995618736968493312259983977721189725751156289125042001829173713284073760544192825440538825258475083573082355198287816397288374563136223340538790205927481364752166722446212409444238010742113669270913962144261228963458356670089840033030013726076832132870713114197715237514255180143543291808957069518193932220919891108351153313587550104054198357314424264355091813360548750353834173726541372439286973845306383148214770273752592557946744457095519606453986461741763163048007050155712654853396438497835759959696822212023697547536786450144227129028485654706337722857493134537288750856376642311281005409175705282001803991670691710634296097986817955222060815283834779473700998216847418713192362821826447657907381601754980997248322102641034161510004617125413765229930364627476093245458020010827691604248731132140317024176315284754960932851606500732906006460037190535566245918981844874045889297547182826370800457426595635689969697605362925853038917660481557405644852456359663573330404285186635595875620151058834258408853859492496031166455751950394614675594846322066671222369263010659075062278368009539438966481555387340235633035245301107723073891468144640700460977279075251261630800344260957042330205065884882037257870180094702218968078354510041825118241286324385880703918648501390163938153046770449285674852091455200449961900845863041697006010828508940130934873931862192602790027482227520114596327768343972455247919333946473769373267153925984542313251397734729084189893772776370740843183939261140607825404443946058224029636755507718515556466956807065694266587276843265323027592837529598144293321709949608352555886659073367193655370716334342928597316190612850880204442665509229987389225435837126721671939810792714843898672914141825353414976792978099941705602227443897647473379376384622596815119420362742446449718023194053983527731634796262747261988003662307659475118839511992879382446644160399951659774257094360314243903952644599300582893841663424190577031626200874529046364688170191235745005273153091298742852627180979286666855704238346279502825164657592810918372569876562700991893460517998493139577464042727006592230211414258743206667831337731465276540752582864550250083498244799831023957285780192702241427302034987749585832158052085443883950200881187286319603810677670462127624022355115216663175001794865381017007192934462183199902163288896832912139068878859627395163663486076804832309925356371363903641951047371814101170558127829606848872824371487429396605519819775412766041697805983173649851624780937644578622366878032273318710841202211355132219949591487816042145228193777983185507944239187958455242466323678790664913899710724849832544648840533068996149582271388126814011455109149026445651979500816571701513659529604746465720861571036466142706525500583378606417798269327423193636747239265640514473986993600301916725919056267039280309666884160717931209142934788410926599091261575310468640028673538098732379124559346194019786654545713200257963827052485133213135628340428369934458901415777179688140250660599864243167028022775346772188657900761712524318667052420417222454941192608943679175328981999600359703071223200249465268725652816529250458649289145726747904341473844769201329069085906132479570798814088597219719905484056213550872617842576416086221858233315788607331283360390249001100381521965943725096547927174931695613877618061269333763799108112387232352709926984821645950065725752625915251142546998079551637657592812029707135605153742508164374827163081819505201610092220060732583558185600206496616898844673670987797328870908898295425748268710371215180682042695708302271031229679201416999047377191375621319650399516836440487745918459263079239010392179922154746467039802838085387986749931847074621770143683081301239070362689756036779760450246528884215078422030440400140880355655682244382474773342778125500646005526763117655018656260377989944788168924736729152310222789634125042505639945272651891065087290111569373816055583960430794357028663657150188458948816238401574387517153042197880103726050864043562361816063002843481181483260905618409561475315828530480595654839877978445237921055540854134051561429951110283428326406318891577694817848111547617251276949239459611319963775119979352696734477798417555590980355704235284159154594611007469561921975228282714376963165183721828756840047326979243662238518146898573852486118904284808570625083140098689466123777963446874952626465514847444720518836151168154276379000753357954932178720782789116312345947278538930507802730061168018330756763985548421908591083350233108355640236470861400530770785260246893909559295578399385748505953147919141163398223377115217505334937396235804196171166638400629123293531633447768755405288781111496706035915992202205968417848066323535456852466356096756038360437463539955811086254002334229214719437972552061458556644372161052262890766682436022313574916032372159420152830702448920906295482197938309405858629403101409282423396403358039893391825966692693216050805747720565051109394576260436160911322910576130185002786824421581075294079049287578264334945610626280376201669305937973088305946067879752476822963850258252039977204363186275237639893222455300303057588378939984097350635874635741741379201944704180584883208867172093104300066813313747514700569729360168059487875236674342061875706859952839761064006970073559760231746236928734885427142958374740705283248421894500422831732348517866697405126591771315812299932865605829795627641718501503811578241359783321887850772759943697370517706949638182727404381166275972170228260897889260491425339327012668993408803444524283133352773739273092269774433416392549870375263771192754921707937966517200351871705211189493654737781318867244121237750397258442845519923429087760159206376819833016029841551515576464261467183202821884017558323833653431222382693410191968555567300767812292485095623652498965576118516250644738656864919349066226829903944984392524753675493420009836115301061258730418490405807194719962344658493905547831724682333725960493665191511893527416874373185785584470174360695672868193661099984303042252459203379367840351780375764698242707506576991747122515514405343118099424326543135054789571959366982355019418755763736202853823557708044791143032123578139872969423891304405030665860105182016863475596483069633216050488655620008965865172983952553555485277654474947579951384269967174193471729279278100238539753416846401918146278403702575768043904910191105266544742345989109270153152549292459541836682107249172715214033563279647682886504724700301944273468455037864413616821621604808665294771979647476169909740142794845727944021505531927806328616841818340683089135471277946299761776226259876979538061005874594422306230894143337943535551702776793616939849144238806763800742779393961712163463616534312474575184637301019506421035573808957364783615349770424052758487893947509047777549422398499433746880867932030779417148920176403578620445831404616080354791731933228204457510181826540761009402629587271229368231940534091602921400432271713349493745345203025691828009984368034529556498734423799259559994266977197801470580924162095825133578668622270996325527296555450091255954941967937532230944420089880834938961060031768237101996335985781017950865615908041880212814987048612093725365268882324641342470232067425877280399262584528167838133328071584118298908155168358744438127562201885090781993832263258415038837664036530229499164380243600558314043720564403068924750962247648254335970489427432791940502650023775477970742340105095715943967655276994436279392585630357315216238371098596493016024935864314507506081773034326232677940546599377913877503676111869195050974231156740645060073090501399837666232108162515534636972776252397718058974735653764529992406931107345477601257639915963799207419722464280299087369219176900050601422956411578877888845013307323969382252810885488197181266802776004083945574936664607009502907656575005198855778955883427987850568253480029717895113683339479344449487959873925953240914305560693094327983068149041121036336244673832457141627003255561973476934171902581548387905530914340014734846735592466654288555084435498825361057255243813865831362388926353619266258197108203274490938794952434955025896448000862135744209338450862207452882404303991957813595453831249659470102088952006381338194378756797403773604152466641231290696631827433250344394059783592922559838306622809588956842590856187495488185407648579087525256596019372773201083241998831769973040554171528536018698568904029121485320885372864457083485311778165051925797691976973860734580362415786607016708842800053584629531073687126498925938515242013303678081401046899974192163939829385334334780155604477137078422688145599263882037218350761860286643098430267003179287064615297403793884773369509826257344535692998108736145988887412130611221254822293373720705145256751022025077713420785744941529007783366626692051489017956484299478017255148153716819174902419683194089402596936292002240167742820423814526108382478708682782003559455221463367991317915820966269181401151776061474679696719809505348841382965947853282942138273573360898088327635127521996868188089245025540404145867799813148546569862452931088757067782154677533772702736408159891448609054603995381660564156216508915081417094636717892041913054728553354463314662801904602090670255902235429703629303749060244620101327281389434940719863912242817411434829906835891679414031625885737090495992791713549509929555731075637581814594809771447869665532992044518811448331324781079362125674940875353939537603205051070357985487369322112432572848125096196172556546629767607698035721686739160263202252285508100671250937521939233570721955139003987543968013500221168053006191047659405493796796787501075376768490429206752115040617534174504137508270796848702544314925450041449203729474472054267311063879994835628425967080452575858075844358465319024732488507320654292882032793561494281893278453716826768183955767870477028696465486853991895489511997616702947658768857681562099851473119011630893741247486787242683071530905555142638673830528957576958912701168020378182125564852977523832810795861357050601656793247743223307784204035085424085110249749427178318221383507634629811376528491586695517952324694109676622769553447849152294655137305376927870991061729706518281286057955630348805276364203408046561220127484944023825154400373140953693478572347108189721663532399170000604052599479378826068578169562523405861260067593029331764228393282426964920802634030762020499654361215202777718455283661769959546613734234513935322532468238086119424176232079231085171088815421590824612160098962901670824413715011641874754139979751672119623911357053128789186270969778052177482908681651064641110559884841106505877487145860400994457377794048116778441000613020628173721906055293726400714508070364568130247349308284002563292665589300635102301412788973445423210148356548427159493254982092635547825864786761402537563722691647919076622815643009448388960850856622124675986084336082975584291798852391101805286722400287699034928230274202258493418538829321722019627868036657736298482126421265124908713589087415327602708363998293941695623083634291651364735356686551606124580219079286908566456622109796289739654974381044082089357421902907511492391492208535378163912261290172095447162177206173818768023054667371449170082348958872941435697687219495526152181654071940221399893235080223592600734662482003149226513349752833468546783820203763862493460167263481547130856403865469136524506670078837173826115268992577077319030403307748849449170326274046326978546836192908019913427454208301543133331547548834801976874007225627575042538106027546591829384828373829699701292120086760461306669566993197926664001109014209670683134965236553776897332189689918348200204305351675414422085438996711035342927752597352585401485869928272038653157658210726702095000758545907762527510131406321238931511508274058876980567350484003345283148932855087311491759497274919429893782521342305287430316023975503793701917879224262292008059602970587192268924072040943491727894203034431648415832862130407492651520699598667674609156292655036066642460757747733366121329067160147291653424434788063298364816363987667465407227878523593532573515488326322556961118940547298657767874817600376903022338555990580502745129129317783303857327872425355136223265093856172438623520758850287491303554917992622956688751672271765467081755568343244334643447014097141250038911791066387844123434816649131818982885918161551873650783533332387283682751027877281385216233822489138494347026346783080798890686691713149891068836873396368181090366438953949209555074456084066820911208620973720030454528371527885311835654829436628876438011902183033794849615412179415587814902816814062468820615072296180625763502588166374428779115265460533274582202195144724029352623703096213745565182229945257460481951964486891165158931760536490386219505643312120860032434129155223313861674657112909205793995127414403997190679337756763718497906110748242904673481161867676067088010353901499356365733987012646768519238231115365965308745689113871781190287408173997472867190953119807194008618253873754209954157144254621369848552843938877156641046333982150202660629923467875434026914563382576182281715589902400629404057220082491991977189511961305704305337204581129541641725600451583090259668434733665159244759292234156892374283922482617234116083383705875579469947171086110443735214733545006276120455979066026730358823999641750157063893067602827429142684627851366343642327130191219445261982995209162304780226307701460821211677093909448416356806282872939420606627972399224432688621823182715584644498308149311549527322799501234238436870945892022453360103487181255194742176029801800686208427681928810793336249535591174158255765748146126050291860773085223377368339350609644912310779022653820843724787344291478550604966145690542589673971791942562919499369748646111691722006140328573770081672856973881442846373783907163185664123846518270523690518062998375185888014054152047476398895867680073790451043175430002853224043326362925893355379872129078793512625694873118540516918293459670257085567289977378522439519195306548213354455563760719953827598688317356181344343935291484476216322564406600217079271972517264561381702680356940750799072943485649874742305148749853687362277056059191265735898534396616333890559522034645195238890277119810469180982084181524516642346133665269431022818491846076576056160077513810718819541522561612699658211408936686996477897159540300089731640126244556608368552173512417181552754280635783345923835246604232212887416883963756718975037443975724606174592117385768909600723014950305583424041987876681149583898636943752367509224741908170011809899736181528304177970020994707986715233936834316934707292027063951337113390004378277656516755851736060622365258226344410660686116275797255624899233066426956243852996023913182594856696785374118227830171689428439266661585814484058401003611640934127907430118013953473203140896816856556196517397397294068727288247256132109020756105174924553341685447980030435281030856075165985896129429917024212985029263198851686297360098082791984970416768566207194139210542413605905730597250334825983069449497820481879416133130415319841379824079694737384899630118132410311055765185538266561782565420826222334686330159636670632395510757962747181108190659701811227623521431787907616723568174071248079832226387228312098900140968095566163049829357920779138541384354297439523435897260342397870749838310847943051233426789291985903211105226671035934254136277111509582941715694042553612479674518441507874912716694107840106338833455160575014152864400336878047557963384173600380171706224552758168028487016584471298171739136597899692267900059395060973797404369396734707236295194953337422312358247630311873712515520089879633666002554420420411152032558417184674983519691581938942890302757575290127574386979040205038390818825791395691540330740619700352195774825962818864172440110233867843162966692396811707083031697952724367141785167491703625914284807286171908776057133426713539809177888054345820517658753888384501429268890484977528587158200784694979424751185712934504525646579210463679729636224973310997051423358085895792350675124137853448920262324190756342306129473674102947376201479242305591662232252941675374620802898056286779636039016083465133966171218297899310325065920993632691015805460958630502202878035614872454837702978110030096164237985382833390321301021628901341776879816625501387201079593966188813504029566809906548230784723046948688729892693927362081857528368554015778141052022165779100390866571172281516079568305562129535162032871563638732049903860045545971157923815229152119654277217105925989706307030206829878601948999295300768714799979422227532257916511720500145717432445361255963315944486929171852184080225629049999245269129196428560602681785023814286754614964516789232261724199176976489935198037171637057135903891962881472927417864433656657508949310081318371554181471979641872669156251296808089730605123521777189084965892208514622594772311008119005219826696667322092822751080616226336405397242941903752535914968073857958980586223813344744737635897813498706338382209405201723127762994895738041507930828156129204407961230801299506259939162645823248153568986118818001488520727054370182317003738151406241379658788071582546909507736751079653785346722901994636421278416626140016191883095504579243430188782292114166344407437507497226233495678865957601176946456054298528589717821874763250790849058885698988485955308277326000446429963757275320635342376991356798298991052403348330420148622142598857319008502185217424541060745423647051125965937003386085978880594440417362198293246342361015460978696571233694181822043487553152630162395768884584207094832953706904636448762519868643247631081444778445652555754099143272445288210297620111283805617970105420170990523374051379888948192398246709901498042682707353719661914011915454761440236413547231006969520981979625765001747357153634012935370406858452311110991848012398747899082740369806309020928435292428605664895596604207136764301942965725308686393062315920182360043231123808398343169806091662150382645156650273288865893686597607383714536128748265941265567937944968256711121153867563981105563743860947066065613379848807480952262236846148986932018664124265122070713930538134776986928856278807341207660793512915435171431011872788372349316581211473704300176599508624577455960706161920138665612525654707073300499200812282134183873790810849843984611325984884017589115984019798577096909476395289146085039233486447904401879676168986591769379218920209361564164032992256604924734839878232909046572201811910768506218490480380871413168699535577838056304063755622203490198608341198193014000779931434616345635649510413731722402739227175635445340744589638119593092546523445282325388591995236188390033671477848307606625819106478440259163428654020190838391163668097336036947245444021417865968804380183431330327088515122054381553744958289180787743190031561013551754090738099682666172161456754745621077652900057550034856969540587189479700033434332455718338201318925094663029865361002327766060728386734880845901206232407212776109590498149899730223355123304075044603897921320480590954953257680378119929388181822483719772493361009454340053295486410441305510746855933224933918411506362874497987454343346115231370157763071019999318993623870109417707150257633206591615620638771144460053363679390650635896184384450772645722163809028485572984129898570002106636951099240243177067139771084683755469575346125582478758561048840509581018098178252847630344879369764184414969300055954174455313812345725249040171256805663067857546257215244174686522317050561640770955349415782626049589302122209392808968518331154264402987515267930606811042747671687621401074326087971427883419821739185032942176334506685356530541186084365909596694041954332463433904719722018196774119719800551441621457804518521959769056098809682102776606702313742346964362102749230391727576267701628093053872432942883402242465289272634084399194547927243079680117033649990776565270859608607333143888214582741219055640699714969639331954542762878732112376530942798514589436548528892474317408877090198009603134771037394622313278227467534981529969428963452899754108458064313389591019568300990272445780613470415299910379059146473184080064651274960667063224652656644946194169891052687714424051788533985284635127595000573367184385685416100190732421686159509387291067208909695345738036328274717881606042960860079358268423201865810590252883790888823711045339821626059085696526512063259556415795183381665743952995878639670623925421293483238373191279854599111338445355157922293486338834116350877311955692194601357548002474981562305375110112890497141987833521799218165231946924807276688985301800746393532031660379770980801694982186367112385124643920503482255557367947209423802871807004303254572030184697477776923432450173157018735567821541279335915709609619833150545979985481686470926991466881122476985431778400508500528815259660573263398797785576556173067956499578705519497851612327162765710441345289875110027151889363678360953810363239323378809048670960463052548809482571587953457506591420074044507428226988363428342586695893200585451933048983849081433108906394898523813742126965590431652459151645648208001323190447977810945448901385927829869762397918364456288869075029105776194580173850023786100677584267505090840147906625006283278813816747830824462129520390922050511369753578999149985013381676621027948102064114828426858191272097702051870785910154587348147789627977567292219540856884220972810831230150943913424544839260899501894246145289524458189521754491242900491761306444510345252310200823186445856570489659835784567063464422883807255598125547201009897186114779376540008986246735634979398060686051173109543228607607243303623463885589003485515254795729002011844208040516146479156637141920014631625406100247096813393248674999995323244883306905673979305317353138625400191954931045275927316204394721091488523770809823499985478910127735077302601134632691621604112234601628564440896631030981260612746636178364430722454930862890824125077184154922206826980853535768715696427287330583293721273313844181939418915081480007460798005559232321237767793628130535903967127909578334252832874261693349206051439921468658686731204912209191364844845270438776797220116603339880304856071446769683658319601164280717163659577914120518860042873911366581641131746931776160276992728965655545701531951979440801083675709371036231916120840969371616911679312615382737474212715131498749003098189957946928831293843804975954527463435555769618623169099881767758892046293869942289841328456776511454595207689089287335764097782887729579757174789232511795093660579715768298033966228457825547347580269396186402613205248367492951052984755789194599140374094859162983208563078607180460122192210683401364073872522808351521533854753668257244031437935198878314217430009972834784243397851765371856653359501743460622628144364858385705311163620544154799712221563934599957990619142528623939611499660437078486563322453417412578295669619601237770140289989475649397404936890854985048731898231572179293078254120044880090162593284591768939300078638831227972386797476339723921707490919649550341870735541720101464524999369616402169020770928331468519070013204804161947781748244968428993243145726489364603539220641450010188539902307960727723515686564263445319172781778307021178747389066100454926654959354265226370983119387901086042759703833106095994319146655469951903756018431332547418244002093002987431063093612372407739779974627963343925606632127793822951793665532520002438990556232041412563649006113029104875533919345193185098609971060249043631826069056659119108827754798423066231853928778950452715602505767265250544479088124149477528168361819493289711857768342016762401535535049545672695909421861777330896378712610083725091587952466115549173691060383547808834914963563287326577810594782911209639411433918231902071413941011366149839116449987518590863194165273253108841668006513292278814349645932746079129094393662240983644555282064718301234434389769795056497021149503262638593185532654401939015629769728537255042873423441499444212581811730477810371716895726549467276800425131861111616041638141843458288248175947597827584678609251021592027030598857537752907614029997364323256443267941860116498511471007278896183578738457433419101579659389596520786569240066133150803735040271384129547014432910692419744395948084476958411159016694155228593536986607834190328006098881157329010568201216488813382125342419482665413745460230103273271475134603421638221659564381373547310498331278687460366375760423627490916578803123039847627945789290339545825938057305323028636136568506380540962244465474865963728644091455349388607839620285680161698507486676918207779641747072626480528535030219924363487684405591809497473456812720328504168773769593220083798826884280734121681654959196303856977802372408552876805595469052920774705809450118352669480447783217185334436760539656200436329852777163211655440665541774678860362147097195912430408904903405224130044305807021856988543268198914768100281708368433404312800607836909102174356456140502550512344950731465643478502315134725196806288178095839931051893201116796321258287661213041424777345606327701032094812897880911566526763405374124618183128086734843339277087295394978007058684512792233681620994603907697197092267387654376442891440290417395488983534814421994977454341798517607149869115982043470397762064151020584090437873484724880584853847102981906595665017895298841714683770143440192437355002871735475956125876679186346824195998010991027602766725309383898529767707299080405250186806224311941402128170838283427296363110723311768049854682485864733009485754731861711333528673814169300885218765543059189244788876375254705732368127758598629711202209315837770517517578460356719776552709091487589596661547797250996862723899137678733959192816930647165538273657105215912354585742620400005251787005563273070904732677017926906949250121895236866629876494340909323220082178175059345497725412973394379494144807476776842915534260285385655724509795571642902918024639739354232371181703475944047521390246159519898844088143387107665809851493369848985568023686894188796062814158781415222733775358926993832044444817879685976208712920909429734437087902777061097352790480130122197017692953046926583483697153368407647646864184806514041906584887823605166244253591609791502409102011454939387118318794169985713850191380304942000579027741381340484512238138574994053887082455372734366555247188485039353445944990548940572931822627941574725773561791075643082002770300603791456482349236829709250885253471924790088567918612713447827495799666516473891655484545770264916062244886339825470130188652970444459644622082517068632177840242037099145949978905661650009967508829175240719816085157130362654583163850719443789551797212427922202081787817802552580611808425921690861608514837616195136691110225875846668578656519286804897706288713361750670428976103280640943638563230802005247390478774439608874850144040288143995517614761593741415122774218066365365941224240966306221579112613560689298672764322770750852544025554517965967951833168333216213876491638775532406240537039706138683054245025482955120716630774202802517629766856687770295347424392948927349191957506401670800676448019171936889043814027186788964592595729619567575133782828530640567231064071673981684097718154261882949476077935300368509268939558880316887448653650222037753618665600832800807264156964456398322302717137692308960740146357972968492130484979232093102978810186244939605795372980509270983309678245734928331706765755954554152389298908864922090484705104839826297184789771817217034895372158387927224987406198192052862943614467507852433684700367607304940206136893358790131098266190808365276710948087610574912251565423995459206833397595527713708534552407799009400850330651138202879444832870422621982457850610436831255730803328016948477227552618310814011605101913069276892651897221681710405211963460404171725915982970650828011596576955786345743566653163655626335851375806509210330174213441247167633878233997297211554262217824486165072200913965967666399208454800731002916933064475249573768176424861941863311806269666728042708824310959773098306102493096460620169807562155226927130813438048173832073450642591823796274487562955706909600056763251143471759551044238602356763019121127977433408843852220770231487674847260978609477606828003868761769637046752062218363557235211889011909469832824297470270280966894846116079640361894918529368945542911828174269063274322890120039256789062139953589339990318692605585820671788373386832987976296496781357384788534015223987270323468369036277985640329493586460889735048723877376570897982804797862708437692892610240719678104020623616600951764387322421332624230489465657995864074711245895578158651783457390207649270254866014927426018165549105780873316790487017300283689443888089324953770030155123212485884458593603741527203569263369941602337952439006021917909057603318820028280252034399745136952840381676177856941546746872119956682137208581495088762691397012031432870499857564985906890520959396401662534827963665763714020703832650988251567274328469176633092586852113664554246727692574154329853850654546548105646334977322910887583116820994809791700577216615815787852715663330954884997739381976588895151962469112256989366769956677942121375766804263650619043225544062202834714385013953830432707897775020990794260754428479080242311773776856105140189730313862842588116719786153757742007587383626809906551296908121884836906862454517392095743703127196970903826659241404149890962923148095562962970413373825150705542688199777816376232625911665274913099513287400802042642187101836402411259444901381234472351469566070192420348596458704868024912631177092662753613265760056499922655047207649147067448609333762435620903030301769192445031560052364135648056779327158031322747739283980356535044065680590829282680622934982899733909197294048974017611507529822779698767027356954525785658266189146426422159403784552557009454707236245812380041198723109937751182709745050895421625080033145758422672470261274617859640647831974638473440074252907060049205932398755487646257437134674041920049920496475087844502303207392339821732680380415306973923527224485789842337660188458283822575030596226275468815418395558585650094371116050806777571247281256178828281381215313358207074590933163171146021181823120191995104737399299862042811041621503270456309028140301111965085216330479071750267279110904624199636319781954060957465589731997052451272142925429372178687497999109253566476989881261653953588508102959085854991620831012775405843071867953933510874992119566147890242094433746352364551514041657667128290726635174478857452808945802929915173592326368458575336765353819540955546695658881515431690606798199579603750160603209507182064766932248950341659178873637738995114259684349150255325742182100202014914376683911851288205292375336855497499396255698007415784543100868444565774734306266335891825799065728523023094254290524609650558937892533022550643788407390648326911328506610710393267115329390981514383553969719745261466318214515336743102757787452538557385145385383125650583558093723776087107347098340145154031361540360409941567758940341022389633232038482426138986419738524122453783281381424036481406954134929285564263829145914141227006831419362206057987053560855159315144680265355035559659056509746231026105528029295145912588856476706744550710870440162469787731067088889451770107301642408717354631399612686116558321413030637997277803926935938080916768904664701720947203985900322960501790899938658817695988741685391157744700322992558979594270954003366409971074423696137037207496957767590303284900499857598506627490778034843763509195997779933466702845384978959990895999967592595423623434014972836855539193987330369399597258674594677290873152110427629995412714090359331282376835358876017498858764423692095241928519567454449029993655429065183216681534622943670066261004108124172424245533153090385226812671085758741276201070071259030992185702876324761713272556077080770944347817768226571741055964445552653192739415025437298773153191335559102028487180459566845385737747579863268630683031853365342651461906565172526345593950835702795707352793550926569683873007305712692849636691154819678498102011171871164881908106522661356310564993569860363068660995565988501139366405982481977910517863768006003506066712946141568705057674969104954424449216365551018993453613837380791076381174508609981760957855413237375319788917142817587063821339351084012782463005389802981811671925452899498891656452418881987112848789492354565059558226203154999611518712419865756005137374158590606915263161417653678013538325084563729352412751618622516678828691191404093195990423858767338227277777863874730650662405881268619944409174290488446307406726456761615657876874757750353461592337210919578570453972347013922211165986866302685437176276719683177073855229651102090034337009108853848246378195459978163992655652399840024162110375591926969689394797693283759806000714289433497720442371418192074667584679808267946028105226332967509038256632510456894765612529662829963204491195369569376483882149316501970883035180202530640804388453697289024051804623057462981487613218808169357493480575488022235288584535560943608723135447823546167487420695093836828062420302557394906407726823933854158453549465752139685902890492147745155582201303868025009822292189884767511814389284370483349234005815484865506373831918457747526776520676297940061244777460415582250441014060371212772157266410206089804135058537347622884104628406980787700963228791014322868401868713393741373696199608139381230769149777344763999714302838821253761067476862814490625852961926021957244107700442091965092717217634170348371972949276677429644359820329068147339850882872758868790822508945020420161421440536473992654546387489616017600083700286594277539956748154695752722706281810137303379299641958587222619338825238766032127485997491727944706426917830453502162491044654012983862233759492731448481254477561063980885003445560332920870684724890296597090630737214293176063321846646446607582054951108312930317121247490271081935451212984754114050082874684199705512268566644381154803117235209304521079513609708040903398593272971322414699376321650861532465369841021045672845510120749013717763056149015976709570110637995052059008889310098180153953408939682264127679644832635123760674461278356970458786843090774596231973611193747366207168981528093757549846581939135657437931441614729369896764076863525612855557900648739247534769145172178948821914265740417456298973187571091145552492667030899907963516340746431389137255365464361662989528283305140345062787011615147926133459945849918780259744851989632724760380493036681403945479096351692915536471146341974305999087430221047552626834189465399704072393812778214483750855521380448521121061443172574746286552742387517155928905099542194487892830692507082382070316220713565085823817383588219592215550865213958814730852077056424558574601917694401305624579638967584245805946650212921434289054468085209380800221370854120460351736916312405758697136121867651409367753738925960394103648671209871105443524045621223126262041745152369938981069188901203160216568064220501842895607687438067759354038565421030696042464848655636172065055523132482657792682435972164674676619964344602772973800337879535873527658689512581534567873192397387842424253615441355405866380563860108807309718797143600846614178894572537502477967929129607122321546523710080421303483221309114677748745775666952439959318436008502237582515806721024023809829142119949512897698406331392844054887266904712545466269576373121565748613087126720314090484940058485257464626505862275930691410031338656720366901018946230866971210730909385113555340384272463413658193364541273083580300695930554318995397353652942967376397032641803062575953172826567010361017732702134112579585618963994724732154678523382524780457013879722097117527279132793775582472666675165472924067615492287621561506693874226398391608649578140408239190035650469302343734138688656997355983680522412212519990391519919399364996174321040621103280895750736824307799933041280800488516971516801533328811828136913620317966495664780158795882082705996018902625075397028165142256191786772832395677541843046903839888996798534552261980178108427239516382156152588925287265957294261846578404422537991148883363181801636894350125127051669392847541148722720981047468220097273889421289602050490878301578564797965139882060735972923119909518205958963156752395760606899181040103404028987360821156987713822631655260531829256954141040937835834871924612358833366029177290581762222878116570763599347448593429160055606830408803051061550678490791568687876737052266189009776182072283258087825181190771697236492648002773004482527804227389251770555184015923455205799032657184412087793891044749214632180702930505719524633432851488938432751364790006326648069825179480181726678454988035138883478077382552716381961931825150166508745331570043845835077497727334106229871910457502014101581342190699455029181531457054385348546353600553090733253186290073510132168091077061036988739039546833222124149518856092560327708727343137028560872300762576573851440309261026971945366437251815379012664975109543168524306101997125820074521086114061614198490189160145848723934820740608087554978012886815295051803907499184361743983553267437476190751814520607921402714675104698610285357124693194957338250508002266683589070257440272806634650827256595018248116169094250294603917686064369251457259291445156655070614039214967635781775755358523717659624127374360826508959275596825650744068743718734298212006457465404644548197749886552462363701706290495771876312307618768221672548674409990747212327090116272895198156411791577375611090124966047259401535319438228228192436392868394213088657265914859470167436254535421980021554071594991222424939653444629350631081270210809427588919998737392310748560631481573550341319738330274483163763877713017528917666402550436369569176834294849947618152847586146851423841495641738948684776329395439639999162146758224967087429829841721864043274939189361318335287869468358468121521972686820878258461238881384150190346658511356909275519990795465864308213655275265765228425519960392294519749632210730555231785143176927152843229618376519068274974023043193174895917630239386664619236365262073956174841610510478784371996528032457425423149774649575157596981915451964543945784945803122876132411629836022817369644729911930505214664233675537085263807572907254409878137142873399903176500700643573258772769085940947677884438170064922802966243208088970811108296375353094361500520771710930937625090622311284290323582831911595502316867854551393700351061514917891401688353478032780800063824495103141977851108975212805259939386564782573704411049378433742962857250099356544429102460024276302048571320495471964827826069608543534402386850341994110808764099128044694016645413816047788010058131162401463504230763725531712880615673491237065004603220290950598554462639989429494123055843434935158677451783786510720876212641921710153567354870019921105754281270726537154646425103131466034525180197704527162356975482627898263412882469986794128595513759049841948515501862401513776876114779554041027612058729351700567222785121169016781660387395487106680295220370569408578021469206458529558487430293719905736119684177661020413112104396196542506458287269081702137847653924749610817661091834978311592805008111341568605643191599035583456128987601005594418809325163487866913526211265704310392455608232452281837535290179133816349707683575195875328070132920093916382709299480282623829269084678574732838013927672237800878611826008237980022453275395075277333302121749840629558894526730024168709634922580089677760059664419673645547338949415276570123702546957661624713168598610524244390647541538828496459190390815124998022738556783047031870654413416785585965259605725635903127333955553831911192552778219190965219923346941354058080426119964340449758622651818728190698010193901356917038635766565934930047346590961603160518095887970734416900622494155878857848682643005149059608810088150947666425804032295552118640901534922474598759701169536693569824540004826757130359345645162794709707547063172538604214170612310929519782951852876255619161016697180237611988941303455502488992389349471598715678601582316784845294129225263678867355753638676243259975599636594643105980905272119075133580988351673278964780169746086029273542171514572099328576873773366599896309724059834181962229315910663586364075392558866053151308319314786211800551898038582312223200223032509615740415428703491325519757274854207326184978799038501629312955436815894275875677423983756479896331791126528278844606828575955821559292147482394434426420580825065500629932699570190044040396277362819673781587918421416234157478924812710159083088114181070469536174250824503633879880441946928510026205842614979726407647183750261947961424524213402266465275223516925801947706948052107847281815894389900868936142866197058854069250747109503450699537013554378490677692527785001134114873856471401474233155989831646360240404309633381142923556284864649213136030629645063163460754845619141128124215844483443077662683757073112814590652041268842672594015474133061063560027467505720369844704119505657515894202021020328676657825787128535806455126821345436071539245843943600341672708191937715891912281498714394885079985666735679482619766096914062843648004639582228315448430843512793171184996613858274505532237258086094143364249547374185150017936248030398799851210185234951592410680177536034840334128603323203834264123885560889187817128818256023234226994138020009744094778716112427775780985665275163479227267117570232801385757029132827128860399669261308931483684012779836504349763466761327442175906472029112125276645562190611326598711702160325822554960598711564085836682592627202544179451666673737548832670391359200133200660088054992902333531396803612129374108906948660705121225045394860323403308106819465442928107133093236353167237802509482956491799720508342874522587596092644806484798154385998971405410110383208837501864855958487302490816060449325399001472984595851903215834977240622712878337972078781062063932789443810104504998797666910320109304145520653352881071658599284260846447440330154927632981310527220486217152778414365204105362813906704326047618202727362964193082467687210074152912243490097451237193092829358007285985081919268186598967363907884075729259188930637467471039024955647790270568406749223717010939442227254498998587110626036882143571972519214553010590082762615608432172894759433971249573739366481203077968061916434265814559395245136804370501127160884847885309469206401298505902840123408113710595722034321162370334068783307860431903429133312386892075959012910064635348315584298600533565747968025040628546104607142554809571571518127476872427173829760346110355982546900656946056268039252218850983797064362957579540872342585059291647401578726088243766611095910010016092985928369326556537251989493583822866691723660098110101668933372278011127559582896566397898024272452766005994848744842342955467949235433525824977283020938608466004639452672687297088445783374816847576205580583659315849584806849134776770071462100134633263731955703848708173355372379093785339862834360334045581088689439039751715687500259824852945780792697762866546374566066840779812262302959954563126073183839987683956082897041481400247983734330228961102668898528213983042148366217962211030110675265434205278251328444616941182807917135518636912517026478276162716027730325010984489262935815468754945103930107153791828329109028500113505665872367354788810161464794518397111463199467935453571520797530334216064728881681111153857493179460480860879738965993871266812490445017579337458171273627803665219313005926602478492672349503143882452884108270931325104992780546776902864341629005714827990268742262074982737313246514950383871214358580073609453940058997164008468616841655873902598410478689901873975683534805225650694575518220642199234272852586523217158568816302796210848720260698264623849700157982339135403385020098328248779432817881572462992864053600286561047573526646919116262630702450028317905928050280584418016802502884093939883565653695351880050083189525825999309162238880350431771568308203021617481898201001732731922861548822193588855288853173679724068225046286880246238590360530803651744590048515347541916140403441445325676537031867805271750164109864784134031303844879484812471350171457626162172718706111840654977566858151736397979104007528361456460775438265499093579380571866484152219623616302532812325905333135846202151331107448519824076405877121597693566839678375358105414925235672475639944748957154508805000577335357120927879855108397227440755374826235150734519435268383008580232567279103159219980884853064433711950688541010480455730806001032007423209366620386930545930906836745855277909191796376125009699424363217555507527339568732244823129437467062422374523156029952102323431658386988151545348833710216431540798586294998591198796048608949964228069479646202501875798118524936337537728829304042453740812791915948694659268151676251867661543616651904326902561902904390812219861043187286183585008041718462034939102196073603689933569510989103701041049951168499369430977380562450571910237184905003525884975260872277278625215840793666278827439006609859549015243856013226469804091935595277416702625919422294174713143478776191930034179918125184680822753040708936189050137540058577838441866426903307223445307042484676801495411974761282378438264214167735747710041139544121315010476180590593848890326981481154633554330278266640624466257374168598713748271929069023875139868440438889849614104412561999269088091926127067775259835914463430572946838374725398316015501758457514682504953108876378964999798327923987205486795945836205525974172753219431819844975611139648871565232322921530445351386506345602931666840900679553857325751050105794548534727064794470113092695514269171994918842451766384864279870318397181903713170463087926743799437005562395202846099932701911408663273744812377977631604202973992433602346949226512860532786127858553459796281552767856291411212374518489644142483534811024296697993848802157916586901778438096750134038838879753391566815700289212025663281414665002667445586555003762136948975963586641336925176476083000282796572657341833800207073339814328072991388817811358624964671640838419162891992188906963911250457956427433542653294537236932896537502000878479313114539679149976152067723458598527683407316357003385252852336166822930367414696246136843439026991111072271891521367353006073954416336266286919109888910243492766243861258238417263951603494214846139984537351856903367563143965332285506955107160285491034695904379829187354949211504631395869342201031495946488733513993279260434114810990752491165401128435121939725743585257346973836003377483723517112664903026889279935996415273387894793012202254222606084806237185846641176889274792758094674250732464741287494111325000234609416294386109446894488435399553185220907817494232401276770772450621568223663936752295992774866672269049071863191221328361543320065803038032667369125999166803397774602470792329458358837169776589618156593562967673797904256132393821731237911818363794072809790197844160850687934104676800272537526353993951941782108053754469570743406350250070127770744947191906576503845752429272351025572503838339222885380628022559568984894931523870480118504760898894412618481384330060687963654820739354333662528916170326189243505388408685013545765354532987281600736711627697503989701541375181723719048602530110711406639820832895969612095382814651459609821271974183219928904197652750344756228238928196595025528307051376104133293994508724219690727206249012997617222599462705243856721948907895911785480421996643125018163175203892918587604063815877502630201149690361585261487284256337910375507130464840380828920649154519103554223721548902584308710604020184453630145712136869476879172790762560469369901139856675423022741803107638474973729515586614221421867624321092455917912287515430227881266604200012099432294811566852166895710724944708328056549401991736644336307716633726863671047627676911381353422729576423185117870992320889246072621726943300064635894756721414585201812534922278898074558876362373693917154999238889099131075877952957006779417199361975342489943079753340337334355910467819798085983749989176762770492431323682978140840105779046141855376674452965966899850801506380896636772754690546069288309726592080712809209237569095205384051883238741713909776583221779170243434573434720671942962147144054282244391092529799604036428189449371134227460113783250812943109374353545014390962230376113724553499105849838584820467368340545028582025589273584166194906907686589342058081354869437638459447388477831516767241950117804030022394091150097182242307051231740320787067040691485936327425543264042040336116524938126526181525752244294808982208817874290676422320593995595503170011052142937431782017638037066617773721492003965541985089278827919682361598500788980350943553494748987735896902657733273912114796706628422607886991325300293674246506525504313001538674478921863287239990136547093640936584116094218177741545422085111784610381670961788914935111725317318197477708545070037304309146909802713055077457956717591719752626695296912763605232408067393978802758581885825433373130773806753722976582166580947131220999324090066614895478854657010683103490559962651925876828943610617311167755733748673482247259041314722957613440269565463477876509051076370055927338544527707364387718029001078084689065731575811253183379648485763051323019596187320010614371280277990831220181013769963955764241572304489469196378187442999383455964100774473232834868200114555436203493345655026802523316387803872062223272705608790763081828068795772828253407583523861938859591970388788324046883741741242076979155537057576863188803515208345878981724033428436280748419492713392484485840181709586119567152916538042319326088471564826337514263418792821705460948258318849216793815933047450845116805644788785257676027925804011272848436344142277499095040099826788895806032377638224520474324993226902494250376719999347115630815264089153407317942337348429982008462000494209217946506977501284806166590805064510983742588348379399771934082380003459775821519966647108925144044439083158423150707827642668711694465475244528312466497549792997875082412769643007495863961956034718380167563918604818432727736323052680767595542545603465018221446091070613083149000199744839450051912687191973243054345733028170712009023464417766839218073810992509493119185424742686483349134693753830400192326784756196462882236621892114263472249483721149988749175425743457138880531460385571376800760645857545336480231486840594198903688942632028384485434884092581662140541771353519560544183175189552178682561971691884323554313560126967772104033659563603503208629256429848598572163208966398301370493729292246767678890351169738822319684202426173224525802995596030135489075891987183699830233027211715557483196362734682379203085920613628134305780230776599318695662933615004325779340322445496354013452258984790519072286197892840652902438954499561694604619000432358918353385147695010907332397923952334001560266679088621522934931846746515523689378489243916833033525400309408619967117605234983089668602547503826399481937023602657322036297628477394470165850793096983947675648003730052291037069071877255049981943214981765471982001561069626738299977143047690342565662148800551248528031759334454353844779360453327820377833737317337753689395101239392761759627682610031811832651388823551414481799831949092168602476430548041590202647019896768787849024691933947534193534515951979992900044299306718786253993542506748207397912593052673066172358538468900293235861530868681840023202008672256426719300179965709617114427654906018463757670133446028183321451231995542039054805455688401486042331289453221562104303106582876433976168876525305335636391300687161674002160255753994685991235784030435784687983277527461585831512844146499099050920843281720651237540637778973109483079962170431019075200193356944638577835744537605098563475341766971697112970786858189513215502667945169094510568426462461956491898732178586743137105566873975464100091573953100215561133054030859950520319090211738232948556688492528869114408342608739150794520707483322656563533432038418527322099057617154254794207108503622886108888726522070101952392572542032228362454923374890456554694124067357501025783393048427113084043126730370154650126166572209889921958947035324279217230307491902166800322940115456556452634741467729149393229160807370399523193760753337799916988773786893438734927857162761082635283682052348941931798859542339035339920858043622768781983052182579318502180298064413464485554814385195145350555681854819068673658437544965415342322176125724470932957502223642360100213252839749225261120346931699747705684905820428139930504421466348617185136863725808194790267538509056696873560187063485822202102625753076519017501030016716800344770635834979564272791992885607978836434126135022586847176787112535656296054522365370068442749290214615279642532551403818493140547910577621838915374633551722338296091597618060008545009290967455351371082953124759267057552016803970126556905975265988961916535386449834844556551461248169024662753631888383843976615831480950617936799005474012874204383308780553993912641236690724619627692039158204510559849862500804888024792547232324219317643907095382316753175195399979143701479542498869108830959903693760671863144575071769517765721630233838278584130885921322890746574648247061474994587145801612811275544942641611204726018785248871442579962684561025247707373463714049859902567418040341824528976092956266688201967308692829460794464979932763186547547938860301240664046820012270618592532924718326107238560687302344181816408575164138982638503347729329914583142026822216844272103419037221105082034878606604607696353650745592018694841960062378709066594278351177859389722981292529445349797542270997055546916872980088573174575988911586548225911328595428802694787406731932065975896887915035170199661012065780472376623167809079369151824036642900522341481020370521777876692129311948804176595177494903074703674149596306389182250152528569804113980413778144475021121605129910606924180291287000294819022404486296640373578466201146790650414001541731222529622672737796535035619977021123710477198326445197739440175909932429767181379820841100906188084615161809936309254936079448997036394034126237725883851551060337974289374175002308093641941839842874527336386701839253919815748460966427828309750541536736051182064835782568485383941629380619440414723004439814188832475911109879439229035732975704756850092728089803064773905978239885782466647984200784231088927566863149883910757724119142262509037888642727601975400465925808509469984293209129728224906679028953934147892308938455136387547933324748111875074649521134768099035064196297438321634889330465415493681310695204687757694771062870160092724710325767136742171253652047942330826836588153615711851825150603047984656489094121759608285273624464972873327687185306981177733141990248667094503921649346204948064880171884734113995052676926056051047889974468750959375661914936525052045382458214577202884542368734733181556018063037385874545764855237506899213680443881939095672611958950056090792376411657086657695781225394905869856196196760328643228039759878717181189338633286250964982911483929214586586121541960979261893783286319470115981371159380556923395680205385981362659561278162666564736543745678574619041292803195997060132717843585379367123555170233914074522112809206422280884154763036129896420053263369744894810711535599034853408545570650550562181214576738036163719805084386607009507882803120461619319481667632337478127363501081523220168756086971637586098494836700497563783077123166187505558875030307821297623917120470295618994726594957506053056948396420819750072210227475302148658002909876929906843942134148382995899747584290599616839394945254195058888746040712909752621523223036303391256205057090372871679848319041021049316254643967695728425006370692089979004439066667858508484909423129419814428207880484095105994036558720054141950715072967156791233585453772397703880133991372545419925410244858980775894301768986356524933266165999198306100305177864214601421641090091494914615037743127635978698166459861534480000992039444934711837946694083774421863608041722027501884275707782492083169836283656860215274742971210301455148807871309594276799946629191832589492384997239254510654536033555121109837570344870260281881224395371270886536888501762925476973302079931675007311195011434683097809755162047017800429758529395720094832146513217840869745854579168618756424285061495281458593123360278655347049567393419111189005807836298900718471780482141582711023477886852111941594838091165781510590717825180535052167879236307931111960177641372888222722299866852464107228166412459723514358843256489744587798705656052405321812445628909719303008854741738348114937322640260266040901881812574206686157371860650758766097643510661528247181883269592653482988359022916023081905604766182579452767967346173283570742516429126150933907682970341493705836735191737101341960295817642658490018859555183046785454320974549272538717955602676895558125548850934604866389237982590198687807439440593138140180157096030390501049935632906561330487608797832289344365931118372649924573165098899980330339953751131029948180429644870485639275613659996334629682064929256183281768704068842121056280922061830363082000266838121753022168421830388836226490011119768429887222154400891733298032462108579556040565452684750721415885950430283223643742290987291587322203517123433511053707963631415964553610468050164074406989110416560765261779699715933533821592531166196260547542291129650099755982114254645824566834126922729774051451377139055533983309557212464338037662387629764344615327908266788812834667385448031729763678447720951283792090671079119590890245974057703403425019060998068525049373975117790413429470483908679418075604912465521830729448248413181286931829996801355663888093559253988646594021163734880065087131127017482281646348102952735712124650257913975456215719848455548909181018845929239539979616174835313430367946226172849733764727789170610871128660688354073554585798940362511168664497898139056260535287859974109991966982350860119496328040605139616916041327107506486543910097822964627868840474012979919675034220892165578351732275004834221484890732157813098896253332338637980490242202643277652927155996507023028833802320635356183377885611801196021426250368043400931607091528582348301881943416072776915250304072445853330162729412635753101582789550151855300160166627566974112415087463819415486664191441001743184754176093034328214928291862804546523650279916221624053357792659285647451700786975578532017159548377218715720224212257197580385958572665828976218938857730696549598992085840801286755794594891296261941452843936360843846414017785098060588183286343571726030206332852328778833993148076219097095058203712344498210614202643137498827906328760226718833353907694327915515283419015925067480588844711587108706435925358776244756142639695762387827016575236306401712881278876195072262681093571516123488700743630261361615114971441858892875127953493715208760037375682398494222604811431646754394415512447350859871941250404347422384578978087933440392435496918530526186844766182506718702249127508803818464681143834792366852760372684022476032810341939851942292315467804769259188822829326348545742966754775485580703955157899774499518791078996605579811647924701315496946822724989738143002611086545828975181051145023301867375165154438188711208924381695945755214429137346689510483047079922354159489247902269695734917304801858302690017939194396173047479572475098666859407527401359644492143147657238400828534747043540885227399546370586196935691968955581328532266824330927068231947162553354911797629529404634678947513007843834027718326958562375337349832511255708762931868553116032601801732933789692445602922537259218802691148154136630085331488656249069137003288420313755147004687389564297333988057468956057199517790632702538884995643628897474537148773236444090107935153994269560966674983647291767348481324383996784037364914308907259483548268310386153982710296080837153177910168662627523565525661147289053156467022608383332768445950566894495348523550810824176413760876862169346334575087983984530146822516628053050211175766197192172535424598997937821376759649246290703917048862879462868605926490687725603682019572859812870299246315232253691233908471715423948614716389790249728522820608350416717542461809971557246080856301694675727090511464105661789247228181841246910090513165111367153412376460676684245060955518399300607912634617342663375330207907649087643848696584258885411701129671379908598349353644097617022271425074420115438487027811535793070878564072162953465030774061958045141930768601061386274280705346044962054591237662049282471844644234192084401300233634331003567861661127600885560384292752030666597130524921081780262641340039784590186659731993378962041483812112757995563483451766168326964854953289612932219831270967212192688828111204856206859850741425716213290945261449794275629614481645884704451079848087708343399850292988268661666917080126326721669784357339899249485304919773666159387971788240166112489658920782694914064401306523416090960345291278969562699151038417567988288656831859821654007029828873864783543482511554407922680047976325409153148922910200700959056675273945529555366158241433240902854392539562763776768335507973306480776168786560284506893457713995069072729405806183025798328128906157269129949143260617699553588167999301070447613318851124926355237470269051872974964534984456074790522340313998817085604889430039290892141041767392650888587887120857886419563877183079745564519438420565390831011863577314798808324955262965786387387620000087069366781792409241086810789289872759433489483533960760084070013915239529266500788860984651382032038724218790291248375223178978399499768280552228222681387674347839196907195511564539174867160871896134694632853675788165551803552705825196026804985082411920550491921053151384742679116136798781843122640526011112362198445687237103463575756341892492684697787462292927352996916176134750825002056984605155899080898557985936365010578205850091103072823303336873389562865498550508873979449463662908405677537901601961177812720287563499404528202138775055385401624464825257317920737993700413062154108690673916342275260981669481328390576793103413058174887326292823326116577372952108671189328933659424693357211744369490407642327820425417865067532405293711105793410967768761498124893693506073986318880703172195183526305438407476778859727588087532406785507656816649995223932805982157220077902637193302724169809778384266983516175291508025382186950913702138510460641476020593453711601763154699037827910041713824991289382723722625006144719453778839648591789857337129611028859801910429868418985809636282954442807011054890866249378069144628015290883752159862445346320327946557745781668172947920341407215296199422554894186670761878813277673179378530528102817817530374452194421083549492501712580858027972632676185356443298982490580452843183264174596293455244320286135883213828757952545765120365618915295046045401240107596519326131557697445776768028040673539753162058097114799357832451752193834815571786085543557357896256226216044263539215652280318899507866082637444835210399919811608371168115114205356316056576861648381173516954785513652080304768848029521094323482720320015063063147659184315083410712555334006521722092274545817502441648107868207450872083933960274968265812580795471034666634383945760433904399497710764710864325754939963316598438966826168139616124411813152503005437898786643863457429435644168461992864652010455049180984503796212632162071130675532403070686959835695593268169977915858859398708852856934992410413030532737124876228600063119430938968341824447840234189630702425046248516404584378947617211829677749114062607137449037743604918916538701088052166201953161680366905477291016720045773104031029196810601563445934801545447135330831859201414407927546681570353722327703747582204322995271053994135866192553963493430421972970866340766521831739624475853205051788770447274081367431346552586505513345396660881668393478103135338792807220475266628195440853092595288691638970076970575395298129797448420443373959057009253919701650876062287344932133665990720477848764615844658466825996150375739100695475282719866751999651068887524981084142912367090803394602622126822076765281535586746670692343598660109056413229912506257304952272501913950085516317516228025315275699440948584355765552582606252164137941280711309938476914764035460803282848327382377248811949648670501629423687110992086161687924248479314652644433358610589379813829314959287718421177745464604030407961230785569559386575104307855939799572694795883384718081963679707593277125043838473475992540944439686373457004333385210427771877715160475673459851290336967420120395867534604145505529618462826734486386006990046351446571811928581982330537879160075077359401287423322074248927117638062295310188936796323139237189099173438778658137350476684835480025110324928764995563902842699406256607756052401279240934638961734335594984711041464147522394169497455354448920823665479859677239310074154196595847399775115442218850680449138395135033504522873808911457686316611310616113864094253937418997964357791959206359768058642985745764195327893440966824642165905570541064520388188364767335743019519590520997463910368977221001545088966921888889048570883477027508786868642161311730617864316177713985556300163208242001879380098050284124019906150299004100972446267595166481298891480134873890894951486041681894705047046985720828809582617048878297338749979490319882091253856468739212983371873897068759806968399140947796250134556864580266297729708838314659926743413520871644750098839049148608746485468352429845757359231674607303070899323900040009473421729931285080127873634265926248884005712308316219167096202783095181574481437874900930163756486343896832086924620446297069676279480689712420035025325466342679395771854772135658221358148624247444217668545436447610016790291856670589935419149711253613791677381736087853401655560417041339961930408534404686519751315283435610633874584677426279552211899585073446888905359295349867773747882014552105062143864844651293336225113614960074727752460503168163700569492631931200028254156224123493077462018018296566643585988160031190168383330731608261700893602420137083568053888976926225341682507555333543995330140089217056792880952695283032605905661791914132796326491932254818676331932909686006507303715114494033544987980064007014724792125242048171474771036102566695129616123851912626360544519345371023643091861620755284537192578541591353025089339271111350978580691285144806530031468123408024393596983477701708487334776196253708398531752060809211467706888273521946951348270191332340407240686745376043749491756776182114476465320028930804375650749435017749021119109925871098178713301586518529715809655560072515212488096199361061391662120162566331793560792468317858173550709642849691547968871288815564311031036378498870721969221362340900281338479954089418711157430725341546440422847329613474516224451280000443927713084377791402716365743813126138819963992781099165968187977195749087841852837896765932097044192210605261349653175477424762426281737539375370984142279657223115636985646932754636082707887646294948113134877622740212558319706493521372749077508760809483949520815384405192119697170087707474224479635853345346875267119956194001231405364820214948016584205414338739117948504337482122167112091673270767023866125705824565870333185457255831575415383204843285597214124424111230197386401985158701823040117782443985412248367031136896121193245779122076915019185178463771232254549763956353350672614602772475076156372346130291629788296685655504028417950174866082860502142854504104840704449444459536986757229283986213842737955523426146429107896556763845977399126665840112563547532992445201845602295361654138019868898766455816263032793301574593973211487630621027470574945916897774855643200860165014400697513485864881555120737999616443244734385603439326486359045667351656970913873442798633598003103967179381489977266102602698737032258539876634506883531026417258387366021005110816786998675186675921037360970543903188835597095013784083392291724383554995959359741723718167222338197060033105456771754519371382737704161343524524294332511237027129801255206109443694651360074376120509802870552756591763693827294549519628582736373044186412236184220671845568929558229097188631244658682780633319950891730545603179592591398723182115595634734410391985265358381631207368102342215293449464191122075716189565554884110336551804749454419469975958396864092047531747190670949155137070987862157364060230748225487413776499076131707291094484604776730748145871985918667709550114375683652987048347511345391601389800854837295329619861702133353998110919713506622982173433582744549532693290910771434212560021825301190104751462344996246339832750007077004701691023748617861960348959618276758641406457516835246214442217266698251169578801630160650809894032452707321195303559530548032126360150360602932599543875498821594387645825402220891303959935925569327541433228009152946269118380146652126614307236867498014132008844052278202454827328117066497719060383819163463503302097350319463422512272414115381654995289848056976193582995610790305417071305642568690848793896896171118849309044193767593396271294149618170344644979081146520821606770470646236443998337407979428349030779064012737964172817638132770220870235081573054155512952345806257009903290651568734482570590190049928657142538412332416501661611643654809232643233399979174244485424887394399526027426266148566593762363673415935952891044557981674557930979688855371178621545489057596165501629928729541741106167478294324931915838091634728718262216908739390476181040536118975741794516515776428979653792141234698666196487010689265098754402764860669029875320192343496390262356215764824158879073492579017018329193754961210692143392081836438970697083887795585480173631385239213533467952475054562823162120943821525005430207671726412460872077292385598030852594522830221779176041432317108220810927103399703464532581453432781745455727271795816772823492145740829286144995429113877496134809122371532079154884183472948098839497382998974429059743086102532324441864737714126905366795820156479429972412315181428913200905482514380159606488614186395565017902827106614144281235296495594472564107727664292256280507429171756759925991051421474349537564963813100713334013695465551714219947761254006043152306745345187027339819142843873837785435981959565373152455103669639631354427714619909543664191709663185322046587724216834910802055579224650072379316643673523705651364302416309694362137185618083012052962542702744871998734829891661776212301569428734239212662603050113928442954614565763939406601745581809693184310929711763058926728104080462287335558845499518868231150877837972875978312623245953675234396197385219173634904251913284026368860605413943718475810402086056128868535806415360998901236035612796879276525744283483762932254129920168794424151997781914908056427358596112395887347314065871247992236981814782413876574714785879324538494871497155608572635589057228778577914638254202303413925175123809797448883018615105477513053923523050631841996372894727501991169286047175196150337235987863162660996588127736182649994320953405390759310539156969493342909848833678274410044037922307383138369501525789370353853924274289149955158577258926905958263489169454216937317659883405987717716213641070095939622864518309240000175177365368353202320047119120695861592030081421084961572257008059124644209577266769537418563113730643028690485901185328386201685827656146908649817007461308866437608552844118058400899122134173139179851950181459231413039883024483844577784251584186531405820552625520750698046523621340994473537096304035522731515219794833645146558232277492233920659012782915053332260095143915495911449894827779164209047963345551279371575632520245953390993667108145126188569048774594084389055901367701247682216329236852025404278324719316924720710430457488620916058784033191097941528185840039390923071771142598055798341772852253502278538239326990267822050225863045964526961993394616980685840208607506457869721437746684066486764524804603033893024618815094636780682044235024561702810195978866862631526055469818487463764991996741779113567821720001791815584695311446731402831190586070755557134616930513331860288418222320816628480630973795089093862586664283677345811365631929657406240280830259758720341887680066997652495929218503230631356126382033670405054333253731751681783272908536367121880094182878567992173218523361868115253815324191005195451742426754207839782199991804371807297640145235108283761201430415075519471393234307138545425576391189384523266499627006455617966271356944582269620038750247869705877969442316648865057597971312991379622843464244615686198989486794920276369546482459053650891525367605004835871251717891118636236495034845457916192029123134918927891788102311363989228939146901645687191320977165351290911434436143872788752926388885452013229174537260600508215838190512207094665458007383308701505868538088327984210868420004199767949246576748716104980618469444702083987563277119353706364730015145027954160269511201921485051994401256614120684991752069386350942574851660278396117376863947481152448429759596071575849155431231572907121033495039982438391456689309102723815586814874233959527584360432282207781628101123236643340866270569778247424806805567627455580633185253984181539846387516517511707362562467137436658883603656567149228842434548201576939623731680992065209375783811961273548690597659251478749798444758748341455299835803516079290099727438906969416847323675166359387303925248184153812248927398090379661800012360909807589425686428616766986220471320741560820546072881091783871194354463080331358642442747381881096466866079134587927483382140754985713348782781036003269618075092401920023639083187267543949407772553166972829244289723091773961595382637015142164925977819394397956112768769230409536967071136060517054114734791738872768086757406005338703948741765575326906879796467001760893312174319245920728669324772972407757097339620891652798824867199386538450065290507310775433181223905709503073262517222089325828396616100679192358026189129531434566563926464602885644615825342626381488988002490693483232906817116144545845319302509730615640974387549519837139346575453089203985407181473014488252983811966433673290017393590374156692328630266004722032596994901704452712094420778762066973576817393014610723759845606991861683266219581657647255632894262393967916055206348960656234038532043149003973189012072398489984315765989461541416818556086933743321910177422000723281191323108101872412720700401560733551986130681533861196994635186450976555090430908535043264036522168506512102334272069630287334997419410939512524618200404277712703420352393067742663290877009692694497121008204942374236419639983919813299344756264054016267406134423676318662015393763433227126518859104433111767708250582572802366895764796148648949873725666723224210211088429512651634384339679777504641455912012512644039423423033659164505229612893649195876900708511902840369710759168090971124593885773278264203060029488200746771766511088991151511077678295242825615153323603600401924810859859405387018406656892148772302345669634470097985823494371502514882183980112058061387072871825401368061594307977982925270612752622976855109103600976911467741679801921431344992502051675058614284183189005857409600707775119850225680522844702775614206271811157478477541558467481538755333415684049858000374004780229114840501863246465733860387719161079139826927972005715200802514426878796322016410739792322837598407854916855617856522873427832729554854014532915872929151265579501048048901712984408208135458304127399214482549089529255283338556739355557523956709631918128602029569822232153393266273828924999143325821044605146029896018517948629203865752324708405162446957237287664875758172122500268169915630336013172343576594618986367275685433772115670370599280980916426865784414810826150338553785901650780028416486896328632501113523188835345397238486292919519550678891195953374596784876804171951912133568921471469469565836382087123759420969255249176247267659120205008237082115326409703636266545589416729659869878481094576204387548820547860539354207231045451097894356176844547010263043427049428955761974784268248201114851286575753680817530793282363324374332539873043819048067594256360523127670544353447392637076606503790153571901640905458368663031674948065505279337274489516336836354907185482704237898979417716227940771584923477578658868745022947583787386705618064094301615977761507476810840846195001027963798272191288997925110519218342643497647590820078061770092412973843586614091431600384043526019600524197060731462608392006304551500086845271849027958717551366098235914238308774241196765131243053186603044164198760592092049610319157284812571850266581956109341374323558723240433945497582888609165704391128147928864971717304409693121776885133739210931798207174764313391024865271866761768760179200252922261941868293681913313701823082784318739814832892208724849045168355065509238024191402121033405361548799591875956776978825290059246593200280553564129906638204153561828328619915002131818647487925115316174843656014551666462308712028472104695638952257166910834240857016417633360217847376382704076778204309907752684099310878169191162422350323422870560962119055523447206120877915608669352801296422878389600426720273028321276914292704998650370728491484785991963664540017055929667002502816054384417898604048708348303915338524623602278213968553283377026753021052650557167757416881113733153329990730176456090560830496398271907206965998283973457088478267276340553813264537524728301850878182697749598215980430351048215567879678804947241429178193733332803739097293200784960530398853510664460009571624210715157839526997463589460896352154709629611141769919646266362982433779127039755515350520053018886649098207619403674925507065154733166379932549699787762797231448152739658036150073329316098712066624254820730662596569725568965800227844796340177829160429118258933489814377997368591089613736441391785089259051545322225927963160071582816293301161662764600629577085995213353357251294558917797440546192789368143722199233519430425338774142708139725127857022980405507189424295790686125472043404532587971622418927749673943937680690146790887404039707147263509849166424288771905294419066800698602709715009506198139938919438456717421353294198678757035035668289646056062069772419229923136680593608698791525136240452217014068662334203363914196813200590609816014308187419217226211394471920370806747790257083553041443301945122376018443679051041166579695735379477926439696526436491370985045046173971566723336838548391676068914657006936916741875074690416920971894758281217190853981265722141753398586617796847471289335006822909280090770414890296683248658906154698634659541287225334397548640113158173328822557572399167799403587042247536586617591176941962451297297380570315768346351648157032100348805622281395351897343597023654851871951535658522467488429535079840497556431847948822473700713758768155260560514591723023557066675464691124472372811632496364750018761012850702717987959773498011374947624157892431694504352852981235052461775792823311279297566003517140728429012635067558957844818547709744228650201679478083037400107264544983060988546289627572280350054586689296552092251291212929539453830240663218088345688990564284240816653631829106821117223057024784048455588107783581257051914897268205176199060371670525179685770084566977630927685851075535344801737674782112747580618284762359738063541286785673582786137378497105011741282114060330316334647174550173589866878066887543611436691647225464644468731810508886554287908909738042070545803564579128051309552782524691476963865747631628787992189834006974772143433631782699161651021126449082595541459402031971000811873698179631811175302774564929983994285046587463225460192384462704287216460135575250260115586305252733430007211191963478268273723960460129628581763609751978018980969590405457558026150120449768526644222538356773561463989597555944783045916697313348788841467037400674807740345451654201852291985394838654381872347971478508130102840259087308760289870555848916571858090206265756330340189523561749785274272673783073137063147011965215305550086659618862000639952427468521188486806535743655807111486762790322469390321644441936410257913303147815346918423844174769057230253447127516851284638884442095135058341515232273052342615664580036852263643319236837621407015774174079156531686926229185053278893635946530928379549243411995928738669037796341270898156099925659526208814086857281309128916225401504761062217100159986631109177457490351125048509512380738113028618184552620530095930523597537257191814866528983060391770189288358550481759063937011945254008873488166137677540352961845961574138136276927254092938902970139524774525970191113935917621716029022988111897312986882856003645884707595413797317413478190177724475007911567007733396326326346706425661384029160920069423820149346792940527921549600808258507469358658644478332074709121283984702530708798260595316072519993553003641702273265054030576248407567338802768895190518998717745489245235894831664366922476014754106477663994524084169164640980248224041730746333055235694275149488721307681317664052339774343506861499968973593790551225522603545741942071377381311340540826407714895492702270189583002701449832313953783221603556282105710168983826861545925737716217415390812285281286992731720090745301789337170253110553118457181078390414126626078730435653920708649108156146204617856196299853474800259537218212439675188790790490167182807515251160437782148970448811214638130985822350647816223798591586996291600845781608631935922193889823042315133735084305243691537462779167508864132556040418991523318315670983743407417210320762913528135258510306741536298328745462594516235081578458469434948341796786796696104578957623706708594379118816707317807738710396108277913706280061473000194333970863579015489928940472920585567819593052603023548058480475017405777451069184272773417377987705701673845199090502333784092856559533130275379162191085553342545938011532788141093717975855549720425517917353757513866388986262351836396701445081738859804155182425041184769755082332353876626938582062227185378191732781952892789892294768960009636447961278031877566134854851950728373174059391222752482191909257047189836674019031406627651844132830423420541882421570241161244704236895251744044862533023174424135956707039748178203270981462273230909042583970844997930601837965604275656138551982152449689300531116987417867427146014105644107262678618741107233593968035164142458217720281346226375248771421145697873491965142062977020378413609806563022304138883475304914988791540030331370439158198348936310359403651228496254764078533040914737451200271834637983350427735059498371809852273885866133432443491825273973856688472739340241156403788072355194965807727693652252811487906458567466038355029284956274998322580551980670162138872912292192329027103349695022665043977224262723188548880841745154175014012729078088578077259739582420188803762724269921329713773818964150472553681307119769897097725078018431900051893844764882452771546050753742548755102801248377149771727251305967540115400779835715371984536665949815572152318728996270182081728938601190144919732761425255058023436904712227555580792780179543290922709529643747020521369460879704436536041131427588770636418620837057849731999537060970482383359412066903096031374724896576970358515345497225737957522514879822409470298879296308661255116890016256241165816498839676161137017395559508432677684743473463405291678031591829749321116259305438953986743753783454723825690020172862544017528054691129571582036510004076655131136785753521193962480420348613200319528755014379888020909515537128480976531659203668569777667086698237975223606203185618733175737522276528239796824369425187525464972231826329334837388526756707819770100670748071219123414733276030039319239659373801124535409839410825529530556019271349848764303537358410634266817217084240411394121575242900052845119326560682282605719189536075064925149463876784290853427889349514624531567030725291484558887905023869562211786273925294215739163176562491855201691713054913177399372235340359659428625289861529849877203085834721670716381412541256404353578275379792531306738395026225580795052500353465209089601882778540220628992583446845222546847444554548334164995194537249553052715822230937130419905059394242084509398055860436285008788943314430204090662432336128449223743401306966236170288274355747881500288822343554895759189149859317823682886911783870400446796142092079413981081199435815293971091084725822173969972777879275289590973332574032504480957801672272231422523887758594666589858037811685367404197246286083618265187628465392846004187292376177629877513639302295705128842857474876765584087511100312890196482688332508713231043407877888952086755146341743532806334580953910443149773285077966544361620739602289302209702332993771689604640260021707750489416139344589496480717147909312253834495630349692172068923218511389191131385654103057164986141734748217656600872121622250336341674204123962060206816366168646263998884264397094369334500020758340223079148092109026193709659487191177959630254459161504487699584540776573895777145189051767229747127431158749032258418320684830777089319700089111706206815153441257305556896602115348932310569792706003997158456172081157493238825704890837127137364295562750598775204021381597524766782546823178322738142826456104519233031868786537449878077203013197513455020436302119088232522573942629843218594448608133709490504432508192633799077011068567299292314668101366739676767712243998224344145994697006689675177862904809330159062723700764806679261681562614241055282206289771814698465970707233207027653385402722176690911035684732768229511234676392406050529972657747133946105254429270894437211887892125396032742294290463261307982527407886599947472618101180665469840763031540407889431039460472405245835938460427635013779845012985317224479493637257340558674564573944377863746920401324896464908577906312693999682203315580145441746553456209539028760878822744541551121421167028114869572777071233232387046681518470791491058846808394311000081052351359791021490153151512345745207516004878502474634771167392298713516512896395188140170914027001332758589491890153198101516271282858730126309581796989814988224538490900949736915274404638114309166251137796155868021611444671589507920302427894160618581466594199696451599452260398560515316847181973177173057200190037056537862172175449249314918942806708768885687101854062764479522848066177936620639041632179515496480390167390985449353045342167044481498727078516985062716444227704616060546020650690139947609576346806551100630076058100132933938046996442048622859338141264621039420323516862817891499930274870785433214011284354127363354406760793972273007297127269472365983922002741520174303301163824288089553308771573223473876785938800127107077557181350921541591250251702920047990762179418841536497346029462668140111925925070163454803798699057788288730421064338629690632317026194085694183047718954501531836000053487501028028331245252241573200923227336533397255003093736747218366566767633944730090685174597777350665339410621130191788889397422909020076422801952300072491546598064503422585678532963859834616684023450840957213195904906263623337012684674279579603842847419936097273691519638289572155971916261782087052890422207043777318655580073253303329833903541849274053399757840650663098759236484927033878900855165609309967051047850136312484888645158195062039306040971584244081499200346547297996362695351886953457011577756710609656822743314556090278242855001807446428287944980161668116781050511841913907888638421927367475919853622561032013663135275139785017575623668967096364985227042721470449940700512067573540595644673492616544356762765076729405240881996963665759580241563205374964221355699762247528027460182272979021167744430272296814770071380696035748392002762043611669119253107528993416126957416620827872378025975093942522545349437062267738574264947875921954248303098971181808068264855297735895645561972913064309836447647437719781066215970313722922349333686597609887563769686993172121915341566373918729030508801286170721799425044967217072897747336123861694101045442351322728612783853140521034610693531230936159055987865008741587652346815093208595498382124341939362990399557356904126040015010404297200915525014510264340050425814709474861445064623652183154956163535907119864695713944462649414907646758128469034034904610846367967318579423923179981786733863916962330971691111283020338789527692681143383382449447656399726566899976067683456102292219278608442410950238848449244433024253348832577643432627880925239260095530222921321315242793904913006291449173435545113706956203983891873411652157313926317213398750093490009164922280921417581458711146274292236803880614635474286822718693692043231211297900097040358874633685707013422081763668386694769534586209386199355537874567326899008269931273480135755966010777055945570384020598022802447771450558425207868300882908814115741434062696255854471332867446553182471222428471800935642590571728717035470078149384154632772321705493479274079556609980217816187210052504550455517323548003213332711610432033126207864625181137412621526946088127881250483843023948019695691390118018857438701819954633959311129474522165919530339694831741371209119931843519829283849431686443726720834797428609247575190058749324273603924480763850131497938119720388423419102253069859756855663364724097102133446687032363057105304107550492180937117626394948895549050633657770967786902470899699906138072033385641529347301527246142384394123732874737716994867928952366222708086867801951271249397411442776098722971453939219957841917213937276406652365644702323697171559007015741453223018259588048039471800482309274922458991903254258464500889590673455901794218983874318205380026894742838772314206359165114098096136053448426111597300714085475284995366142993509914296879187079630183433462144339538588625639497352112395619503829807244402205748688436300740752439489962088712951280965757844670888190428827342608890674933802419337361471892783067874288516236362502093671054573201902360256532998448804138044468609104085374677895848919768218734403825457091426047202172905281620582664980240809645397898353447791311733044269764035907929592560058622944646839311756810232071147026646431551647762622590158609967637960787899352790343118664430051333721598478233506296972672099891773413156804107264348430842999065340899385542423080284683950737251270211249226653045207677784819984234882398228827371969752632226129355767559578796071744650796035812106448831852717856030028965492004703426829430578196857239515637774732370607962560259011755426466879132632582189807534823076033769746214211205027962282088159884082616178753476985989248623149139628144959113042138677477497778231348314307049262680841672891775964112971425078479347672292540294063382560940503193287421793478431251580683815809341921856897595769825215710244029281534268449398323349936896370708894311347900711765936010773695313104785365493109645663284768550660009906794006822957935658057225561132934723762541302610301253500853135514384914951923009288513554320231448815635095096711204470304516654328240706246564332718798833691035441791971300128706678079458103004592862362922381735983423750326618956794266839845341623967840017742322711392681563745291999162659351612950166266028040535350791416934056810061837073943535260573937999486403808653264863295028871766685717314559095502153242250973310383447537374579261068897018116100965019105260479924611660768168487326600349150862207543080568288673581948695421550370988343985266885437218673541285282066896182053192493033580100265172717445726178482502798116579248076352142665565685942603752810286103121667725631359490903073326066130643365657296633397976841196588164376870914329050957173194139052474822504877747598206023072626410581404736852998592642297863020607921507751357167124034359973381943728267598982369462847186741526719339492001649492632733922195568404320267688176413397888105972394834029246134166036539022872921269789437054624565986208609183802895920284894345963193308596993885510311042876890806552712912306326309962299946847826279089001086559196807021280069965911935842600843051332435711094033956292888997356624235501396206861990579982828573703263572241878145273801692316728285788891984101168824926304055729391316024857059180902724090382484152632363597635754127054400350037167759229032841848080949308944941434322864079762798304527892484943408561114348677336819345636512601889300576607651101065132290833017266139840944541279215068747847512659995932559376289173348285821863877695495081285774423313967323993777173059331619970284555207937074589563431149155305518000860444572944124908606993379793871273925548395484227505833646070855759494558190902933387873769156704473121106618226927037944316915158988168017136280433430599344788354945359435680896072168709302283942927739045799760171170405791106107831902339675449863752321893352538917408278794418054137322858300154987029812972580419900260425909572309803134549934721933757073687425557682229588710596930302816706481707811777220869998278145997094693278179392666008827569837631674161288597634176680686849960392075576182146515446664066761385397859536365435979349254472621241519987643804432654859708364571753268832791243117056531624146877015603646368077259225813285822446713220375486126775056787650071555391861533085603234592757515261504713751014707662086799909259004640536833058685762146081667535179110326022588070415619882981036527681871035889796043609214597809244286605110847048953005470815253776232632113224947779799457359528846898573853910467153758356546321461349995876799284867441776357197192438448043116470330934691756784587902175510521620245864221338666862491150577608563762516253954815577229000642236335600132112332033290494848942166353487197189718792787219017983924865560948193880616533926410695446158152403109332670872983322828859229161788193973201460830658192153577949205426397312337330191524242540315881048074794404830429457514664211761836787481109335022531576900235141113589974330404278622933276983962801595399891615243499433501970573764406896404029058436325929964958464400715600830468831833763870159341655330082572231905716894384808474500324154654390144124379640124128205660427871609745392289414601850390708293303733553969927185478277778330450156850164647448685583131610877486157977067766639553091672654794079196811619209738248867097592125715412074677680142946252987054358306370208296687896241817011513677846679475550017458981423556901649588944743703096825952831031861777306220216286255294851826446422395661593504792625270207849267021017248086987893350404516971382304679261180617142489084431173423936405341015365996051187903385916419456270535341152401174222972031793427765661686566719430363427780442298061132838601305156057227797828363160037868041436177026301380363945076991820526345847866587180775261888043635349937738609140356951464214910532956716678156409775951063240555982308175517048977208033304631171663927239053102581618071904847565424326338075586841511939693035258030620634563633564197670496370652015029471331667099435208262906985459552583340192340259119788399763562107510640653687434445752087663834805556883311949869080031766520232230737166888162950950714910673977843790398960895709492376949544804102458503446148120902342175028348752435388943791887676450684753194187686939062154427709143478714215573392428079199813263470505317914611026393223301371251828464100704505838534288625423665356097738888870671470737634522554125327392232712940129656763794861731552939238019230320046798551498818176577807511759574213476710350315330291925713778000223816191342014993176870473449298398686949385890456243078807513999385426624899976509440746928581213908411751893908001781199249827611585618594627989089010314195657280635384837826666884965485878363085397858611723999993926734570840564972216760914167235004464544859878691991442697492003462969002131408514589889537062208295176081963178356766205290483890885495165712273680321965575565658842672043135461136121867877735212072396236792989481986876102300290285300706757378697062114531071265440374652322615661292648470749432803308660400636644864019103744611782104354385367777516028304930123439589069968788006721038195885373480109864229289859188505244958854536392208776011961723046260203975995817778035736353281100466112334763388478252118861198659367916579076267618476678757627938576467449978742310438180416778233713879982206635313138892494356179940302147450303091788096912617631267968824485471878392857513379734621837866611300358355658785479948398785276829247330524108487123964807063091000789232258053979517577601126082433019369649304099409237010517983877672002976744872452852376952276760386933974390829955681093517216544627333808372793294510235280291813876277491365975016728453621232177176838818790672074481194394765914049110696880492931586138378227602863934000946113981440411105289286397185229809579446760357990133151404857767637428334963618907374954615447661255012019918345967789973528921222254043187852476039167729208376049480959048931413031349509254221474925483880943762134858216291580152973335017015331919571787947688572676578599828012035478659094292838056278647082652101580754993067757049728885660423471423926379517102801194182983751058935869686359139042484659760331618715839646047759208648709583412604927254897732971273675316151758347031675941773419023285804075127909137648977609441242671676934702860344659630171345228812775224228646637503674086055237223726428542388570558942254201590609136982170614373097131811084538757698285481984247715912389328629853718606028349322735326181102531941889735308885658182332904904220213522243291669768341227514115310931749768625163442346511240630716400360045497168663735182822980033744073464903861791142210240493896551111702279119471104521123481768360518606796354454098981185404918382645826104070220652177857649353656988587058014593915747701954154159755799283469882641733659214532703512477869870462099892429291869428090935205057388783485044981581486775364846230915022482924934161237950764885211416308012958739204456450898639595060192377121636687071448571199197556348515795878809554260331664692899839415465649359297396477197271792359305166057680819269457943384800936201120613584733908130013897740082703722610710061512943808773024987200832026950360224258682277730585299865069194649968700350964552494935374396480934356125421770174677693351688577970484423191741138208055710024498310496180218356616159530454430519271339148183179505929940956973507714960098092476376733025316163898245936511326653612281228960771905777576750640689344975405162308990724204787513230775014736267657675451262368085953012647494790879896185016504322041441134655919048736766125496545951783275030867483514794740212196355955686737633313920203479661140718358022740072251704008995433066673445494958704816786221028619329535829220178058970979521272378255691648485612992948540058915279468988329605463008043370121261617702618134667490065584481916157594305565936370672645064370828849028773717870522113314684505864903039016841305512755191001407155405296553613746499554895044812729718550704218564091838260811771654995596325451376745772418317966271623041713645970785058635986994268144372068518047474990801718909846302588732841877852220872885683674824076579377082520994021050092529592641353157398615236981673767625835760264296678053047171338244421419560383830178004641345465524945201045330855408537676872394743646626696816887154471462195706731523516104478813807152415268134394247910206188775752193234300512738859962974683695482728799753368953630886614858429846733348178685792836371500342978866590820323125869431945850190052065525861563708197440628375477947951171640411622703047036603333115200820878801607500733122717315870174169099345678745600249289898520190740436236105477013508982875459172633264287424109896100539098021548497956840498225962818179144769304331216771970545541642548340655735312965833637226443828986503292406144609246777399571121921474513386353863703061213945689967429409697427344938251294792328309097492575067497305507937534183832515596658904604050393593348252096741755459437499492013656859919714738797430371094806829827514052065971941646496492683367581380358964279024361688729439308626636971468471307483773882945874231764014628056932414477064773818094843618257159800662948532409178249301159760421144649095952976620944939925102958986920626148760114574658054312560271506136403200414893956171253063504172614848520935438996368741708201903394682239509665830592997398017430044248685362134940756436276491116665467373401019461544761176509723838929857158239884528919186704174315534731442542948794838676289943596041930865253695845148927491483073596102117025587982363312212004185931015594363152405620375705628000013346615363942527550577781693090511401208636150620904798597356924690739716986870921477805902227129081939203014727120625663245862687195147990547285450925441224545601570559756773937455022283429915514735815812523637810114998324047750526151149396402093262312565689566168246188432619769120075421416057695952406011782432655690940398075791917690175247721382323636018186079904122463088078903799607942552414898896455823269336565539831185679467311470220492040829617060054079064953828230686683066458247651628098782631799555984922377314676980101421926096385347274222054939540364067276635169728869268801628374824597730184300502216562211489506823067070324245602134073254103289093463913027449566690318397910257710409428447109071303063852266228712354610842176131630913234988965977275814414421843004755018813044062002401621069495560034671629719065102767883932291108411032252008574722133698167350167205216513743276498433651937137190853197683908258398030058050866381392282584394626230354949104723936310968294437146735723180218268751435596071750151915505670515215677209669382913177231251233476348560863383075882713241721007046321584178777163918092114133791697561477658411446246282125122674565164704613976265897746650848521823037131823403002518471526395604001158049668750568465553169743096096159994125707454547897713198318211881142139877301145341898520783296264734873250104725900027220546292871709230162026570974960813990162265403662726368723412301206206259551289237467993644689860262013593652007327841917860330782934035200751071578736048913526083251905033539614831131416645396439775239415465873122147134760355781478551134985894969750824069399638996510143675846201155476036883465881806044024327357254545485390408894730106611696967509845655721584389485541343895703077255728245306894313463733560648870676862146844902384750460294577472593535548115222448032479838992698256643766665468987358886899723238546374567451164698853966674959118174324034249289402059783136721807999189140743117794207160645105716897700114153200897308444328631622746958224893812183492988714419928901813195677560192777823947873379907152122538058368236413575489277561378930015277642816922108218089181626085811240258935644619191181865612839500320536848317483770220675249032006137244181200827209611196530214942696376657105650868746589467861217578999464283093930692834089061657440894439891252691337885436237431180290343108632779459432391625941344731299217879801999106174825686584295266189045146814616875524746097321886847222661294878730676776113145341611593171635953858151553436517836218577580553183841158990191195855367723193166899168705656709129091041767676100573192047434205052491458397175727833489323173605726838967171287946793945548958489779600369410681181147723273465892509796617230712780599470540442838182139978388911475933909573779141911028732830510341678721342194380081058757877381806199619771576765449950955396106916487757201154043867709517720287104988337368350286068190331411737934362432729236081162536383567071899133809554593929670438230426711547074476493695111854709308214299044203367754615039432521298664216017439668433608474087345453192274921864208492118292031240224515093794848866025370725315841568886604175124813882108351440066143956016366444124942481959709262671178926323879236228872724578595274795033544373315898464345723632351517207663803094842822736881374562612308720576932959474048377136113162856683089978193082787265279694451136371005629318095744178040918628735031814919846013871146482121661818136515521269272237793875507577655396675076586878426618943668452259641930000012016323045018214103649424631145275742642646219206435547801886959443488374526333980853456528722098700326581295957652696360600513012736949990453450524941618823406587324279725698150024411083736760817213877106942024840810918068049049075669837235537580986539695693601838556891589431146120170101201475133586843099503726800455270313850096036722721433009477181264763337496808509966588893594154442234912809560606468354027979703963990219045530944152993671526861896738593199629495774160910932558135971507206057336297982078224865165329599589384561103273996473372397188409035971637748620368059959225801756945122885362814262670470312852074771060846289250353822931266362487545710917116241213820894051831941592794392083053032245685117128538991307656761345861101790865954503295529261864301085415911963779017969676295229650657224078903742846001895089783478337248058774666121572936998703721326501921178391124577956710072685341276482302192659456042778722436397213842582826001358716898670432404642666123133384553330099660555263640516358371631025482070994001818696167081386671233547670912340839131200889192977536550567070236427825703537927708406287480245671356962940697947213903513282933271213688260873696666587341524053871918117013710162848138965827230521572117683301844503493892197400378905503458310187454349333026189599857111213449489226513827782531851649786585066911637151870106818658655114330172248619573595277908830357369152615615799573630999664862314053317107171078363485390138155002484584923604283734667571869855388001498747665277731286239125736862485439768700854825851828440803328966980783413468337321182172613694349363095888561296548440006664934745835761824580423119286462213313769348442199454379782306605406913312728774923097561657574723870511347581366031785030319702670069298625173421155907070444062502446390655938154510501387643508834499985561258715852369813062266416801963274815922308121712742401006861679894928567261789924111086131873955435711134124156033865740169977295055555841185672666518572147890120500097280376799573853055955198438515584816126970030512497738896421194409260888649246678465459252400140932582320468902961487894749204148713570597616279898329084508004474450726187838099665837271836295744271297735111811212881900629748928931408930592325476073964056368466244308663745688706682767006868099210586212570760009010809805497071993887089553206809784950273841462326066448973475437040124905067846029331694875382594751243418647329878379776241712342137912999188588884648348769985477841031034760075087076695093705914424548022158269781797306584677061145400774624523998907588353226305640682505166572464791382864218059972643257934760227078011561737986006436962675480719869034413889361149567156563458851024098108949173533656577348705098753401113811612606622130744927331537900930685297018984990406975216561462500451836881186721901183338643360691840778400999917941832908165247362146516606896660422757429435041197634122772061359177033601853458272502229391885388400831301896848799812155559618778126253881983111367854802828458368004342966732218416553911635982253974999068157082048645187772092417596201195253416562807922591913801708339636038624126573156182425385799209494624727286488550834047339354564608688142986182430433256561358854947583447978255796279625311463733293539949841084009030969114499688480206523732456032672798071818200318389792056707085002669561639594683211193111582824614924693498686657246783317337931748720354456319374993394764074853105557595973183109426466410337420431334216837297579483942850623125109929821785422568270876288590214742708858998971282256866111614995824003575314829055614587677445762258203671952468931444363774795861267372882742547047581345952124207272610025212534187165631761485190165557788917856995585833922596085970114441499424309836166980039472650086102780994077945112930210280613748998986715341038713518629030186905906749491240471009240049827242955647979529490998269468097011067723151296043665710083624666927488274126003109250605280492300907469104591995821734874828271883188612940874202987197582593313273068090555801338620369190679071129409060380806820362789384514234297849474360807713201951551024924077357978608817713064952482239228324432162329543911727204837699196284879994779403202465510395382891842379636728845251245405469472868261465907215174811274082118555466751325499558754207095489868245258578746681122138569633037704530830562975995830181209863304885626415387460656624450380572957977247065283070942026650077715931673746447940962085627920931994476038240815585637253958931238591990257170370176784245428994394751916164189940823680655292024743932442820255236574136817335042783264317630589557178675763439962003239556949376640745119983208200731946298891195034606588137425315695841492148990146603191217177730419804242365947899045629252462338538921307716190170335463885443706238199412079178478596124224931048003921844694703071006729097614643136547630501946372756341187323245059110356533122572029552992580837516296492172854981835521613203233659066056273185321303557289805824911324841324022254189452665537844745860529512096662565168464909141282383228205007953511106329946422163473498166106573553010129027676065081881071247660993179419097605217742413270116021493050898706179511380950064981881978377956722737065395312108960207580781578423920567134290229137104542097743347599992561569628945746662862292030588400600651370314568122578945742182465075626198321477698397839699669708486910822710875865060787662692736498957000184070431467376434559507764617151116425478297353279116187049652738987195167929688202863321421476804903341852949929415425943118485708886737545538937683548464741511113112194706381077037859166012382260660539761989770731892421025569515492770169471241184694752555043338994144496806732020206610550244726864908523657265125251268192459950547672576913152021240401789420999380168754699313612739015535142333232476049905856664845714035682547618749398329866728927754232324397123558455478379794779613447614186601162285828862685921238893780566895991790410508015299413183470250243866161939572927947867416881793412926612904540301778262054548053587797964253182263180752838761539615710712190153263623791832907949571948482555042357767965353257592857165647051139567654595420146868555083118247462768386397590894220695091447508011066305311716037642356940349280700549998479016069278189293643872568121247927647860031947001166364948513722624687468856042670681156103691703330867036169986314565789459901358537539893384106750881764597845816144220919713655420347639500476130703425089310802741924823576545735748154815021681152883829686249937184300097371546546929132999152749968881386174996036596463333549942588962085332180560511762945900177304920076871022452980255670596155405338598933180702406949480053264117490223700764207369325567461076272324955113929028020545512819213896190178807666927362987204191852119253134094121927243623660150608441262834030670976339253488524348287011392382526332331319259667764236904430155586806779761368923441827824843319473730451631838597796472375985578676433199612461632700769560188857777059057059638700917017957856525821470472166984656200314416892369048675826341591479084435752250162940580744942797334076217056687608518825593441712643184660146463986412805770955766536539378322508321402495818374808173581367139173896606217924783732086548302822340399978604344865867405796997865604621825797660809397600959134467403658279975902798663880925701345662210353822698085651701687462020148238845303706105389513592716021060828309013257268451849987318967424735993699136415250223953961990528353364470249666382583034572486957616245701799417576714558063383356245256473796967463106693260700925943382753393493277185794509324414186777987934121005905904785509611312723693489831200391579194504078260249617967618474214188170296855276715295791102499092038777125306854896928259767184681516707516849951847931670825266409198092011096397003216301646877841942517903140187300206256585657763486384140638170513530244509558269845823441708795499095819730443016905294542090020945000518806675418369708109307660654506028501045810696919110690346522621154294022851685218933812449052167955121301974246959070716740492860373726885033618631381131404249454367790435056579988507036027233362992712717338163008243905199284795001433831855242509754377743953340456045795781155043997423864013890650542403158736651813752608482385812993545300906674642884482870493854645127519630533701018908547451799889132094433171563920018533000967113454096454939980248820478150617791113543002610618174043446698389255917417583772468997248980826227203127846183325973751428015495871904827922780528325146155696611632547873670172064485034900336327838036082363328589116460663533143093516257091480726897577447637512856119010145697690183227311360562616553552347121332077427507998538467884610593972340024729238451886546985001664531324299156571949270161318765458547373653802448229021434731470811170307675873177904156642800722092792277453878823154322282186147102038843049478823866864832433764772624797993743714008128661575963605203701972421969848206993906814261068297241251563538618931398588874218968401857285625425458811571118321405094599124344898328889259004183602851688213923930899605016279817915245535835863475720797075602435257208563769417726421039019594780816939866108832336388124535768898440232614912517940561135042356320112948302380980465032105049558279491441102057058049111451107494551184216625142152926227000840625893498339984903813682078670210814157073438618345908500716328447331618556608303205319154783801384944250748913333213391038104922371099342833097246389836824745005323593395118035532057193844473441945269028235681699401894094812255089848311879712335275639972402465039915600426650580943086554738410690438288168267189641577809913927397415634199665816148194433281239469831835505660819199614984396692815665897223309355818367747411505206300720346883682154431044351939127262739486057825686620012353492344023204005055767670105940948064715938170274079095729059817912799634594958355512125472411035817911266840254480754177917003889744613494812652863619473694692067884318753091870309712170236558111823118868035128407732836610989223760193438684575800665798971148018045272402222292197256142649839367833442695126171505950722058849910058754380619213035620406208516107627751948773120730491839442531549195290787351864090665549301636401210593184874094946151917331448869152125749827245611562552769910116767552755840547189635686115716274096833208071467633381690092305055841724193123458427130177199386816149566675350058433257368860818979616244249352019228748393012377997619663324477982349077205086168493625464062044710827466012952706733136033587734054679897466320408072646337308134857941032912173105384706501633993159632335005652629701090199017775339950599486670456619068521667803381545192861393978583647279470146763669992436872728158274436117863176435363587740005195341710175200953424382034863824916445057061272023663313403040558386040087773897340303520962205206784286537840413402052709037789463574379139863564041191741456737153516406118386910221753070285023138221789932533578802647150584046553542586244059504261152168596436741778318434902189303641045504086740525757883736206912839740850955833330429305994008602950080898573870275023139740862996611550173431074160346414677995209123432565544447318752011891554444535152613368077577848040598118246699244365689614870902511941086347349408808590313957366316843015288344680197614410406169291906946990840104425106384998446702588158415352093566109143893794643596107744311359317570343621194302217618535144811142108421787461551666014984714466836857996042570907962781510812095350985936330381402229159772705735258850918952808953440996777808236344596466579184545808605063035007762417351716632138841021870498560688640145427712050234208774662660401542587471177292425103387867448683682840086829595159828644095481022091029065809980707815881899698599006158853138733758908285844328080844950004640886471450151484732141254521144074323186511507914759969568823951022083546146821861177584714668281797005849030110748904262173605751167096363059446648564769351415876324171319421578728326692264613885738120777519488091097695209522697811039609936533023782939604506817732546877509126523858582577727425780773921621876396493057931244360843414274761713933257288589915892399897618880138236585970806752032359747231552228570690390001774930786501454283730058166317478419009813531293952994783787833591955011365956353812985371513178951371827106134547895831623434388241990986423469744649853202077139056814136065488818647507940412272270406424306561633281698697954793448608052155809862739065485741612654410090042050930552724611630955713807196554681846365256140303176009678446438383824730172471825543932762784047485365630525463976974936769874997992322241114056689926589450902523900032650518743678538483157056485200103803686093539935326198894364170341702524656457506428741206790522895565778312844975089177342515482832245460837701071145065050800965515027966194053323037987015156373336346064763346215554594104178564586637767637777240265832648695508755649307247509872379775774723563566506830461709541134949441578649897582762043059725392034645385523794995867444627466187610204986344811416460106887763626697215481921409130299779528076064473124607892824724638209214102566859335785517750964719353426880755063562973696213448112256134005769258170820005464239408888551461585607180327123790725086325702917970541569995342744115555600769037312373673104838619889144061470167300765292546425923040023541013537104049728479131573215010541274148073843952074866928719745009658871273260364403663260265710705248811765389897370097902194146456481991208255887240782914659370095502668225550914186556688997818018007502394113842272314813372961178311755401438078326262074396623274567722148652583939398063143915219008288880672092173735243122923732510469779841696291281426369953792040633756717217478808264320909975340509432772937318186261186649669651298983017405616744227776130882611545388202272042802605222582981211015552909117880363351481392784239975472861046720014171731826681659745170720105961013685830912650538391710195150323045084627192907881998541225949951440915187863695128467484749061287963648509780494140868426244357802361739050216617415426442846690804202064798075382352440975259300573848067208909262355758026205638675083132627825902110737678157592936016545893640593803914081960709001084663273055670996386015595097679843276864100409831397754830846310440749303542872543560030237644433542320442464440794860305461234298625328277789459370353564515589280622183696901842892952817124372266294440536365779036521325776403083051088398173971423345053336224770368126691289504785912910356615794285131312747708091917470401544633873002215570286993832822076968155227438555330360256522141508310981732024233737940064916867834204975427176670202820335886444726338853915535334326177428504567714712804106009363266259853026236575116594456501952316682798119718937859783943729980730285749816168477048722926399531950578786599699992609339464661974148097399030510228319138994324723534392038535974762772125536186433815269530664267704807675023400856680253792154948208012175038818216080289207848651069480603795642705128464839004074408556785377052766156644707446311987386531441281354082779498400094358310830905923281521850756914017991139442405143865770333368568505183206637521763521661878205544686887438543454032291879031761189304221601006465333444592320601471175432266930010941323658184336123040308314599317519277210654911692838807316159949879172662174841753606734119616269152063241131002453614059691121908519168512140255872269172004455356265382380521020074618718801741542884954039507669784605249615871946937857853317701286045529476561437425738313124401879911585240531766471185783985847992624558111191305307156239404149906861771198166341447391122966044718256788177776270616115984978850969140460597022425611863726601034973227543989284459760128871032987248194480039157233907905329257431557825022633384580550890163424211876502579545172397821455144230087781814087807943858950264989261901959905141967937035278620027345737735795790395708934707393142320565656540410271916272075466758536198754821462246420444260408942452961126772519097457769968645770285837636191436551253765771523293282796963356965394315630368253318607541222824674898440108331292954554087726722118917298879666242644412775645260892665528936167342936208141799968769302205569757691494195025771311225683759787656246383940564492907059716780148007415366359752496459561093511080990975196005813635519889707854173076051913609383123688972965952625885537553674869353097533769657826852357421071545594105092986308882765359794492361847406501515462443662214289813493894580339533344632561996306255734750481676940998493127816060096542281210011944069109481970730732717264294545440178154829161074210298678222441336160788253456133297356473548369876793773209605713307457860497363417078802390192289600769272625160531782989632105901885799296251671798846111675658386430600924006300581147891546803834209556032725673997742343462752434535311066112137171228315650604895549746258059491142784664304655254189256247868692228522750519547994892739624434412577440785293893423386754622075422381307311563043564132911836810613308744070010484368353686107517418553359420616023807472766320306455552281917144477562301090576559980270162378106553969716418475493187562486250191076891214421644517696636226957202389440437117374511756625299582587946212569231282043688123617766481347239779954920911862899990210481005591149781065673258163256213452016240033415825848474951493874266542719632146747040717885469142914070160538529010130001414891950732924072962138144923855237597636390733193079430974118092359913441351133145096272456709856379440323894745065931644545302037945630769575342797045439447514097174406893733726486993657451267523338636234709733094889603846578463877046608546009474863780477457852228099204855795029629403207294867093079284976488593406828281708881912529923060959915951566224306041372596673969637347241018932253229809238995568404555551361953907301815112964332892501261828749972761106653751836100619756714056574190070231026762531364433252766518076851366786240325197205277316783198032017598518103034861400781817717371904018272148129370811339686331275397760513122018500515208362429845840369490662685775604976558010823016738998752768500918020679590271898687745343503659920293200792425062303284903515550251508411047688653196643346658754759428017522203941541912697597167542310968174465894711864155068287688707878219241068581850710517955790404106822913154170656009297990405425215519665270166508483508658917981372984796027003559378053086715202991932431315198294468148891637996356715946189125378024172017680614572194058213250645191215094096508045057957728274697294283573237628323040436992436494580754384245049848887365813354532911421771867657786743955208721850171817308372428948753081264832093954056637736472137573169866924337293048116622372663383097548988995113388541749496825645280338841909846928466654649157319797684047827789354421017010738371743316400110047077917682306809971225003482468001315014774732160864266309533486448985631244423178387628286122263248632346527198799262568632531548510914663858838244523103104060065948613728144688892686812788833962230096627175872134387935262710860201416479823061634791499902513571520709728300818453812795428684952487916576357711844279280497118722177107361334665010381973157708662040431669614122344626705706099606727759501125041532216101721057474911688173481975120214554529380825540936059531256413423133938602795591322893688131707744472509048659533328902844596235066637340584524839286914443897098713988782474872887960030009795998794863701018398878420571384533963145792859025515392170715795439889581841477214242047464122577356865780380184103297813437131306877705889742214788130938128827545874362489776026454486678746646138912842261325802150345304942226305281573271593177465636012080581075686989284342452875555999478859706994149188680507529550639921385362722310117653997616464697976318222064877704109012489160647110418267635411394840657380753834873206687137296068075547187243520697236698148424389623937899487789492228121498647470595563532350478294579061827776597128406554618662881373583043089308232335709208209241537562686334230356715822170154310503338292498376976544720724196849301648379167542033970909359566063689566694953059085520175165770970371750203031601108919263749014405826705037095269349453555090753369496308065355838685770946717027987406255036744797669050987425960774648144275834057086613883531950164631745300728914162485712283650700882407212904996308737754417912694217743918178080452522064104582542571810010875991718139383006755156954486251484443259759619256926200332004254039502154101205255261863422317814292085576739666876143022692213975057006219044990131475365468010621082032574637030067708927475814640472583722003834721981557470746357682485226986336841630400837012756693861613647135673184168015973872071681459178033895402835019263738681532655163499851295752825385415289160295880405901791571826350009091609154908521691028561410519167948759908197053877379282122119038376993999052034214902449555047854362245757230647032319600758778975508910167570181173059926796239704959182318992318449790280617856095348879833706039693535578428867271059866109736937892834551923240329469217263117357816281830065427041213875458235815495430922947124196046853402196532611089470865613540456866196437723149170204633812637457677187548475390803283643110105615563421130055482739590708077806567289831830629315171037140440718312117747636828977544882839660522967124004753293983194629191673033691773460585581729157890438005809264797309048009617816752345767443996670697055977768293062037822385783853807528417572892604287113230759801573347047903431276058078349153577474213000549159772325321302700507354880327166710321732883276640468948751321256977371997134026356845262194330683493817658570156921549637650492857209196441524309988922197566842333236475261947048475007357387447512648603915489088316238738936866172021850688533284889066672046750033630102435987027339282282475135325656512323319871809896608777749780294299804947878083767701718640858161707108257858593735883059156284323344365763314596371822578650631375817376385881046439502433142844131624602398405189055763508337758017112504458792628200107528447822104631952300687773061387007081107424758066022594590625404907418234998383417707509228621357124664039757689998256712695925744411416420656044494224530420837687078052157444297782162372376143016228068078329984997618546572248304417064261525383105920061398753108376536592715204625090360306544992430821478638006719734498320923860698810679637168855258922045297472949031852164145840651646675036506073635388633435989585530079972382111562515124702637140042418350808438297616499788551172702372895574421888195107433703145701591604895038081004427325278761403291060358270227279840833307946033337082592258229994168002892064307463168980300912831407095377841813176121080565410990210210726838470132962866926055645666822897949661660392470211350006940180356234363215483973532377842609690986340196611132093048472277023207542025374058723788174537371750697025778502736033189163405923401942885298052756095191913985635537886300682689436325203564879701549604399364574091593985480935613636503653137021901117871967313438710854573472496495601011105416450756587796183524868701438223877467608804364702617951316191575954682337021358671299908731897437017249427587567943445324004987665106408403703102071687243095350201352887756511417684891951940439347922990391571340738653843374671729512635839925984685496111655010894977314147940187227256575469725677103465176518318820617732291980286576788273575595471180257045462085246918610806723684649030889414709518208278682969315596205057634522468941031853200901165780426920228600089171344518696707295901043994610408238372721921164630765834217625132767828908853913949483175818362727666568672815545497997786459581158904752293670495537738596958186112539634798322210536624730548031664887948263008595196579732078273519670318786762994295834662562660407141044604561019416821344280267329045967704678484841379208594628785486372315008676446749555105680372803790664599639541116543133170745976914370521182266254579894825535422345154512989528944523196758042453882009824022456176438340481690612736689841395441544909459728211569812356584893896127430999114669351150679449837981899618405407982084059460435371058020225822086778377491762572272747069418624956170687408488782921367151087415205437541558917188263488450160726067368732789294797443242945987272564482081309030361691654326239215615976145779026204099469071631508244041736588629126840327307640336155501536229542186602738140347744891473393823998789262619227981378042775093350017521247348813873165330264225498556732523671720331489944659675134835450303116892555451219974338557866289658559693955307934173307981616866302038775096599977297047016737751474147498011293975216208852733762348026516142817746060489195215347597011723321250814037122640879381624899912408078849186835304093700180459744257274303259133625772038772914309307941940543280734444405743156100543677865682629238285078252334961715332355159318787389722206151055658575916144397667816933715723421280072886428244372563362653514457195705074300790499025924512375821100530596002966468023433602116843458559476108908292449176194399805517530010228392471049725796120932886917413979972717352092577977796969760472529989540219755649767608597417532772235701439952993311284592216417568903071412562653972200713168808036932672661510824376810356454367820935787213230786426504356363850300944021917623510122740526872709254230977192103820885500515798462397525373461499093112213867383779335061559564028824181302951525638320590972566374874704160288256855048720149585156547789231994185340272972765673358663509558087215576437626859277153844678361933593873026003871629235403265515325891729379038566548752058619084513028139282654517620326484921975728477513105305507102360506230691464111131220523624477045323834146798866372866267107619522814061635161106390199384012605819022129818332487858938561127613802412760906583559518751659758573927330923592947589162649388145240333288238560110183373709879660218842408963893434942489706545517268588976575599304337778320125854740995043401448391505588577683515352237992982594975459425743566303904475341170140165758247358217886203228784772655168979838289214312855720375084285022073583723911714741446026197530720115185859003471066174029722737710760424001184714509794101067522552405204995333177925211065544372851564721927252039888150541978653236762566480856672735373816964424506411648299637740366954598187060390733807146398108573234765256917117263944413863328603183150769414447319247102845522018770701917960523681938363565805475181582474880855050806170136681568702445195323611401933226127627964482307488832621400396399920292030519446818424805883003465857764729354397505547901240584969143990860038287628406796233909204532674476687880012178317568848651121555097671750562766757771102318035322797659463721321696145041259461040876670864478266338659057789625402949723083501208476652926742489917293735831090020784920911827148144098623639751195999875410115199627795554095693845035527700034487673567739575853267603217169531744308931207924644948348173810714868202618013438278950511244245910200773889950631815808512866426722948899842383011228115508809559230044094145690175585881619514369577514675433323308659896763761418135777831995198960538044103058402606176802869109804924132685477933054342055201989323047212014892545432840158922002105065276903186203810159030642983248773142170077953929601052186907113378436694032922290725765743545123980859913722225441195020092383350740297371033770099712642695817924122110281465959528610662600554280621209097349817985464419043912454534033189897191044775371195951275183084000323242201014971394487304164857794588315817664641705412990753727346198742633950954144280412186425363903009416143263494699627040396004591266433849089977806390824642112385932000072354766610294896518305701696461739535919030272773992643676467088905276013054968099462975163923035355982145011373126274682968033672927013531101815483984435472828458710180743168738332667490560377430181556701908248468665770828949311886177610952309765271223612802221826293212665259879596604119186441579272269278185193346874663362548815727450723415935962041978467280393306385943935576956022119929954176372041608036899589071311302041807327777271963291711509495090409884876943251331455341603492333136083405727245518270685856225682718440552831127054444970120319548293430808107091595620746509242098141652949339547426316763212443138715023164640432832051694483169172259441258900705709699984542359657575391415770942602091075194886992596741614177466633684034416428399305638073184180766733127542847576193676985345098002628711820559932585286882998424354031552587261316659175115124965397806511818730589473928612434128586400195396913914324277162763838084234150596177456945974704419238894373641649398926417119586800228958155661724112908982564621307834713235539378418569231384603621952407707625045482526168582774481101288134485161139642950797601786369548045487773503518686057776106116810225221022541748774214908016644786249694006418195570807205248148656415524257205050323137261831873895820573396619802704690464429896254915188516988931354092067459794735689047193270934907029007816649756518781352381550109795959025218409171338202657706528366038348016132882431142177087758754669587825672687815306757294307576240004537712102414271508790144296664968805690417716801884156162239129445578009661355772117831673299910827113441072981428714954085819796498587865979524687990730449096003441147154171888016303187815670727806830629279524443415057370476748308744390826427269678443466925068602098573437443187677198974197366614368502078618932389050353284741175319292896920069166727001825988620150512575242969006879306352341205379347387768418167983192350284490200207050021165285185164231604200038028139747673141994129019243421536767200882751536492022831841277186788561740706046444675509896434355739402203521706291223809686374522035114520219760192545724909452184609854789275256635667917423514262532770635024575323456883005068800051436695329827249813907601559636137268352928804814851325640294647554799658379428506920747990006745147502381013787296538925414749905393054463770284211133961507443605054261243665340641165361268291600775459790921109151830208592694615788100890193901223380613802192425371977086157650412835671705237221610863286903171500047554463511445653907025197919856205497094111199193377038014311519099760619850844566699532967267435153576796604696097503159549250683868248397872205172860629817095259056924240074038692437120603293809713566814048713119040738884290933930475393781120014042898659173134205239683456168121116145856321450688485622252205417876150785456620759917228434886880867343782456593282983407471516651739651440712866856140038874058896510224216049530730034828941738653042710095993596420642439077623592470975373461523033328087005902311309124717917281303544147249892726758176750699190972691901929833709931519173716339185087335425290670317677528043285882060193332915364472388557640716320788791575164739162601921585335786371317577591380676012447821257679214244944297579427855337517694671922904253533726251329419625821192973564507734567649384143524366380766836665253539640506355335820815648620541283520508951928486657965613806585392375399117536329185602083749615663135539878606934036779652654862336918768633735670369065114044577803637937169291801510700462998777608390491322205406259202713889115204921074425977370628356938065041621145185441131350233241796777092799349479099216144507638850107413152168568266821633716769228369528236581928955178131022883338645132706895264647149329870379559201608596384544156635428152607363221325615337316338824323300600763645144416168103254505337602893678994100514851251431278523934105440955928200689612635235515216049919017261299913644160869345063672907242642339536057640994655514203835636460419550598990520911067665037199812506324577542497907259683155052762961682186550249939536143626204365847951061809559345987035197356047728152153612976967174677186617637533310566927883886094753839159748055117300407266994994865025284162659344441266119434849967526270323283251569714535045854627563863341627515615166379134515782438992183718448875054782204541077064522662030517628526806251755590300923952868934369332001744939287387114353352128162087312148127002986293316934105435861596911671489546253662646085864407343131897114729821299167585771790577788621958743344696191998081362178546680037878539044285854492620941891463442190478791860304704968201539512371573291986998405162075267998011690645320022214001274390653401685355187802160053264889036812536837557596263776286719443893952249060123541102663740686387558192602550033162056741979154331406476097509835791107216477348968517947387964287793969847818413517205911604086193995213277505835571731519369412839304428474652614257022106062224799568505813205640116381301463044157940184570221465804604654127061853561102388467992012527193086826585824342606142487476877859978769915369229373590949332322823601262289089928052325045506171752237532309774778103818342914287729801462765555447935749485379938988680211015222243367634837303233227983443059802493377642653589215815271540733879322347372446103749985065967158137039634067550615342059675143531653779311570840905347765152806607615799539253728287520061022875881721924585055732835218703524619725072098520216392742358434561468094810803804759272801046623974109423858848364597862245024462670597370091825678644071509698244663861290506617917831752073409137187966181965381929812741065142303008457818407865869540266455456774867433705711336682444194375393542639359999256664851738094991039793710568170082955435572439975309787820789287653963523695883486068094925946029176245735196766335069898621158877909886256646947734551257875018291674461038604586860143427211745882473233155024173662702860349104430091622123256800505365985101876644160228426400705924554397194868888273206798781457813704302707138677509415659510354527282351812002714179085332027375006816615256724800281220862918880373207664245060839084645417662927588158825804100243984128211838063397344195339856880184340100045733808244548027239741070073926323153913256815431114070230032436945698901512703326576283288370914569091855828047163063468667959287840227735336193398550511106039693273471672861698283296069174154320955853847093228792191597584203294731839212011703242658625811405336200569687623477076811149084130238270196329891129892560152033550460253857114192648992055921308632442474441497333612880739663863191233728456815231169992856780352512863648630024103698494685967108535649707284490527734130225745936938243699627642401908070300352126819141643133635853035865419216477421115645626974644334356398590157712154992671947228651418670920644256000978238699615316386355450690529454910540903749374244743045911055468084305805348538880978853700545934355394937037185204282009232110271877362720207737804535517708913943785771866829803552837942019062738184381798445839777908925770730375718550837733062137559279209673683993257599908970396202564081470988381787232428821125275001933974179088058667621772309857874025897157449592565107963041403706261945562683811263408495495528185032796086325107252036545459367224694830126368924693847950731779370657544156779658680737102491517665480326997817106524780834359848320837922343921289654981505866171867672484796211378088527163718243159286274003843315610282025813970424660322888107383592440207841515301244578774463420522683046215717624635844430802297363477234213837575227320179461566035021426536439231745785908132433445254308912270969328454477615407293652393722838031690019830757618941387287214419503772877223420736936157455299397303053625540562929706126859731419680871565031602527287669092209466209121154742132539743225098945111745960155648196018185519708111750370176666802799429935293587917673876044672211227031753468558785447212770917151477083116378204464309430164134824630648981664658372646352239558594137716832766899237452495903644000660767473375535223941160472701185198570697585336519651423764327005640795205154613569706175009801925433833505976859993948518513530717306251582552906902633411130762515836948130109773938150442569797465928973975777869212319684367037492077101812627174443906404682515078579821952138570450654259588129571499074261164673041510865082265628951590290393551309180453954192302549993213534046195723431620154759017454994599944668581929395781737051614106152557691040136727965733924669133300455658873679870780620250275812111720238183931608903365056700065287989805248091276858170080070993855263548412650806733960669376076357381819382427013977306087598758479860786877702495786819645697244489460769612815170151902123747466958139261145671424048403791116488516995108149296786750486545224106974843196450699003698911189348420398620869547650632688453454974132526745768567280567758243767006375666972966614338882833583674324411656113233565641276465181972768188138321224931813306409222118810728410595872372583012054285675376132953913468799797868397389398437834751664793223845875361277095745919409448349316463077617960907823070170386032530846802473181461663818377765491826498949596883904796234656078137463204282103261621060563692341181215314307706176784201757605400361004266229955739208616804398601889195520437181841353652666933988633918062467322020703307936348216921345077259678875022037049799491323523700884640255344560762299488200319023141820224253477246301070771205528505082113852817170839661630289012869449856873789854004878065598072153552478025250082464956212223174658022279381953846079499665996417299952357603592113233607971433350108251054173790774394378005330994830571669942857921876367380783967090565941334888203261101168720937993518753208239479099045614503346710986741290912026709842963957388353733804562224128072455597213350277149384826702373253658376062525378239190565899752068184560220521823385810347176852864095960300883525329544528495536423763739594105251844441025068643430345031698310775352814292441091343919316318048440790828671969032974754157130722752003984587898088400831023634359988658258220595098734596766428302185553004086780662330628946322286216532904975563321826061069893698107408563759023665194509037051942955675110846903936744965469876668736157398776779064771018639977914901797434749079382539549198695839119349803232287352248004307614047394792687608928275623994393292242241861173341614896398437467160349572252361644550363169066927841310478436371763393789520383460479492010261366031982658499829852258118895142141443701360873405376996116718600318575346967703809271054997322656040810251372490577654658250330068876401218287521020254509694876176088956978809268257542217291738029741441796109998455810589997803309132456467923534799628445993342283448393316579451071467225229216534584329677142087840620850437733215453664025423420629664630678756219937961250896468748886887914735830125829588775508732774735693890731818642119977555564199629749855213357711880859264503685285231962783357963870056771244456639318010970653056815002921814334778195216510001111398244549056289646724211054765641921249372342683822048149544428775814903703313757550634543995430409528837675230402538524869372881854783714034005591808051487029415457591226894238736137780799397286891530531426001984665744884175189207412106326039401551825578290442185320818093500615829783492977097805362798580614431431527280123006528713600614485124588081612868692306318584665242291900445976955153659622531694818616668166679997689365871292430446174129507717839717324639583066875255340928772806467660392386823466150138846231652847997261368514037203457719453543910478582563874158030637482829952561163491887677419818701367281329289879472235761228936366696519449982611294628498520962631493594280101747695185431339953522537710847464724024378258043518315430894498357588789045296555370724985265342614620301520155409943503966592734516172308446645064817999702381955526318769624061351335729089558760434686468250749580613464803759673579039432814953805432535715435946977833321595575702536652878031146559448915335968234457674734487546830643908189276502331976693682590311484686531866682619152540699571655663343710480801561941418154534633135359880076254967329520929201396295371714238948475539719714291334677359599870131017516181151859096220210983085850561104943271244607006994987223143121460378164329465841631660425390529023498113795644304949702610163159032825198182362494421066923059569808014900960507489834016436676446522682440451954775559403771682901441824926990856799493951475446256693800289851432167407709418962687081729675093108953455265410794792442941408257743155103530346857678976138335536708520930962412803898084072365767993591474096912415514218405575997857364275969724128361235407979524677153841153395096359068956414323615665863769217599436173274261488505611701940627415735963174620637302242037546356388202232309313481729254101581118760213681407086494290225863712949701170131395436275545560341367879572261264460935435018442178891614857895618380414475085492991785732043072396902567165878179276486602047869356213966080416616516873583137452374065729323644421085901491109806996137822704634422787195403887531811037199847150836860173318933238689295253385194461416552224284601533069429783324808353750624531580913704483547962833205704551236344717651367562710665566499503556219783391289107677953202198047770818142544205687911604900649358552019668546987770623742271255996530917631526813310750269751135319037920801519343258877593566502570864285041781069516429421944038131434236506550481304877271373193211017672871387377135971865717918481031312656889858657949325738515007687299015846070031689884681848835146949842224199137920650946753796280167083602116282202484610739493847707738622648357583605681475345298363736946652985878740088543316078771308426331908382889656207163131329969544860062594157746231114778711881120884119362725313950465167705013469611392731112383444741101259822215087775481544113713821508682914569014265544741768655047725505740285270201040034224465133977363376579878789140594442116962016273024066349664466375802750277383904276612132382284345799172613144793492547491667232908338002727745207810105161727815342202986057676982992009664753422102526986187496889492798237397273873450985911814023188121162357571124459637947244696798537055583806155535656751392352375961640790428945770286471326439749176069938694819694303228541817608972651107579266786582140315680834492491668482772769825146206395690032453366522136102762717728603920665618453538199284663437148500118079168647558042301454696344330401605046288016454368781951106758982554563436670231587791645159755225570948871202937541053858540325487316571769967885210439865021225688217275222489890977704782709031355851992824093241305264408881293109580546510391928528174821474643505533207782895911313305153869402492618791894761513302847033386367831980548125575538108708083567927554456471727406021336178950509806907319612504574883861970177800342275106871714074571793633989647355506338218373450373105794755031111672793037766900200947128451678619890482101275995977681074928648753562917586574641882711050899350092219422661591269031609172269560098467591370031620663433615543748810776992392284549284780156314157890753938209987414239519005548849627779862285705499995865851669614099117340575568560212795907712312766541112174079148851415900353963737127749405249156548158349766209705811944295629919930541737263043246679629229444140088557948755658064110535332398880364792662838536468662672697964845968631241777578215601808823699997815395123002814253295765957510206229545432411451830192477974307074434231152768866622091394575097078931087913497642077850870863362750481732650774703723637903692407307158612715467699896547743959491870112821902051379915881086869852685287877621965855174579249433216864774648552664150581389953337823940726706768984649990932955966466947215689640226559993561528419486563173246130246970330609913635005722260340157583738872553004520034497727553170153917422616083533755106711923618255042919084223515839511354494974567012737934182166811139398523742459235253707956426885139902840535833111001763749820149274434069698416950272807433207062894505875389283377815005482047622359474057894861181876018758306133889532128145897033632930629328410559336464050276425374006287059453503041060083385978635713549105775549072649855292834827891939747083904470865426688167703389093269717556711073780775740831919779704452315822962829574477319239125921315859303188378411825535569433824502810501523523477055895261196264344917928608565387829552178743556168780045968350810721945143307304276087217914479985827813251480793771175917632798881822445873391614958846901341808249125482944920559216465275366605719216671617994713004085721535931368997427692995261550864875550921938966133477225375587365928283020448784676067671156328473531566014110228099038633639914108932163751341768539073546630840168405857175686151208561438788816015162954501315209291389176671430937224792015312122677647500959091773738401870500056196606113439915654211097456061106620256049051779655907166172621654249921104071603791886101454957986921240683591083861626731025081986372095528882966689860521381530327639209480014049466534033082085237014200571307850669258840651739444141006550095961214070086196032019372168999248213097391763024741809024654373932987645024214380154387377743422941658228412851796030458526537237644891521380322224508192183288294657620930239748644132188366583563518470939356198642119976512081733758121499040202336301928870739671158085582914528779220100697553921656500042305864231745335259443948683726471513476587089997553732703742426869457876230833840132475783489860184024746529485443277799555381202042259696743405414876587100551404670781711448855103440872293217239999973111983727998367557797792315358807563175560300023715146430629818820484348537381940974295216678883270952268229074546732644252533210134062879048934270935857544563994801638641531401539480373657856720178918239305990232648598243106400373615724244743172295528698865125190378302672712241968660373316246005703358658157955709319560561130516383612705337671480151403791199901432775040602808424879864850522740521966130347205162157767213418334709188230327803811903745661184217763200612082370740150439513704675117626863318334637668806682186505776456327594383976764570032228713149111461955749681140864816607310318276272625755287578096522804248003335422319029177332139046054991497593553333442049613620842444026734179689986470524665107044925286665031650799333307719789585656482490447437107544744896763008415164999662911301046835267095491731522365233500615597473291411414821996194192231295112168442287998689271497799176237472308085741876782314959482063855159296502122367514829287815333598104376946984943555486311612078644011732488385804612730823000191525599258997824799356619090593148438241042455173508411473845581849879198156087166872816029301916353815635943112894226326887416835643940497342377332662317676695698820744577615194604474718623715308081641204220460623499768312839877213260220338901175665817524004510052395352385969931579067823996891962888891686989277840866747745397289725682829357409207482913147355402361061491850819631554475653996340314730924009988917278167412388547168506718983938612499871871862429656439317203679686577754112348440718826391877573890827798735114287502651028000518983879873871253463932379143591592276055857981311358346974414119243628579107766504882791595171766357675327847238039199522176132561163402728115450746369009305764979949422492756571250107542747206504593897839146650308422183852142833865447661839508860069762338564034219904659287347094606139383368053522039761127428052240144423908037619486666325831767446487808226749081676452830220540894501197616379926051718449442414814979841949286453422015240393793873446251838465628667911103786196763327236019465741932927449415358461745333481166231964566190640994364842838760245836350405355345522661912759733130894207794554087523503900316567446419585879579544668230035484889873428396108721178408817045243289383986202515260219696946037436411829268625876119492239153606705418244836152352773013328009156128873487139044956465341820921554832968907360125504767844644968200096767297451793180216241450578262236182505049237239053886522445384874301671910194571642426483017199575481506984507190707666200085284203966053685874303609501878452310552443603881108260986336643055542874396033782991655760687025752513701449085024379565699432685323578347584796556292117860124816840275420822693778686375409584890530481557794640374842795030025055558914587363780641957316190330366757589433797262381563773877246757009739825910448860940893346461263575457045938198776637278979403295007067255280968373755151282767031506392638989621723448446748067446348462507392681801639437578488102935232486544181226383119197981775681816071763980772021769146410713359442656769773625188694819014488999474625266252692725798830138944969061569999528507155534293681461795630420203442667390804484009423477704926969031897793422253548943039347474561951616594616296871746420085575713122279181461811972680308549118296792255395987867790393269434267448771549626028275651779347388764308155414715870487764009835470437058676232845467786224811996961860847698134212655789571314510699924707483055665013225387607419835205778871172895397247751658166291673465110150226286639927407245406950266686437403426300065525469317511949597551069150878209364598644437508295421846575860129551292534242210873966181483217409274544813203368728184774996710325991562710259105563726131899366889364575581448685413450154877021153372021907486583303653389444435020703128770058388622835532106024116884371941187164189167383784792763815590814419739660467117971314706688021681436522845243161840127688596921218324729525635143942630830190236029180630352173212808350328966281972253287407978327341851608021503418019066550018205497920496230894731588368717553500334809103796866622991441640555145217750916004045513982440874487424280513914960255217373413701845584144526740820729759858900439101888862081932032959064390475961355593850552403021792543429973175072851027692835912118141535058925766628125659610821412489666926710012974509269168892421794352725522558715997646579385674271665402905170765013431909830771413868360789772056117216779343675534407890404501583123004725067414260589720178051758626249090932542611366134791875084501980368481196759855079266098509281190514512074471514985175264824240400075855498738617156205051420111044639037802624902339425266553348768424711126303175780936527555875189903204268625138285375792507149747867081006169112594800792071054780487915504181770906270427790726458083581278515689382200166610111671992642879535892275970775539087253084517662108148886567926906725182338683962768794325767565366226809696828565862028133264121021498258742578219593700590970523763530252708507408574978256914837717896832879206876499835134136396420971548990594127984450199302274358987567958063783121203569421503590010885029382398880778263385742952399458214823011599594625220576885259553244466450027099883738453545034297420958246050756633760873470736420248535931596228914229561192879434679281327986076678748532012716405356126675834114734271484497329300449626360734181344461784709298858348320187018127421258423277857890988244749858144679754551972766448772830005586318091714274015653257818482915081330918687191129439345505603559225342673728504849108123618398358135428694225577020680793196849268345090681480035233060508967759321109805448324140024506302954986584952252857153687550771792462190132433780992375877425228605738788262000968288209229727350558751107639864862590484287500425956773340842676987560827214679847059531521650599703224219068209208866799758388618738306725750374945384323184674108384149919733153334579788281239743988772667932137421978169003180981890834103817118306996301531787856768158492781350399144429891064388386806502605763058310152327275577858068526466363378579510795032975041446134604106266360182627122798856492868277660250217824487802995258191472695947017932443168427248375113462132923732920496137698619487581699183988804135182873646923918511922715472354959189855532805155878826439646145392544045431063250380380733622833387270396721973548941822887527897269276546350441226429349686968080990171517125459318482043698708775522637961126822339312609660016425460813853387169196226050897857855418685555497027624197294587453836127335222655662831666040847032257300887850892890111390981545174399863447271640206718341069686517472777638657174566021708170796134199950196001869747134365990334931165759398477473627504440179784557338125280911519928365172816089516573799832462433281136601943209333880245035737727615105031729744053898324921058278109383926846663648437180477471179601515145226400007994528176419267575678379607794613663184861035424545255765275567826150595770661328994051075840506666805604222607242580649926651628642627283026781900259980952924624541065533924884433401431354946679434281458644832047977142318060642669963526467279052352011120915170409319520258820196992829197436766371007288200119359425961256355779811620123046861026215200986968841066891543116560706106543765620179699720569550103675617232359871814365160334142475112725048133541980986244715321330754366299376869303121239410631492966486221303829953849226705682392841849230411073907952732339478968593244482061225559577200183274760109143611519490932133215768997238852417447624813262778116563952865819153882622755414396793905752750297408554365223748627995038511741321735271477321561477764117462321499220170832263664456025309561638606735940339287805039850885637841245351893099737108140677906151798507767935305543255691672710471365309206194127933285317367994544410880821869010429110771667569133526247921718375227524998723823875990090102005780743995042193645748996052841622127958510895102185951896217838088618417545299384976114533373926803718659243262701591733426580085960216191651436377598726503666692463522342125471189346062084507491308034824713283227103197023900063754344356281417493469545929948751154858853276156180368329177532335048920401264809412585595456707202012518085399282736017884869861142528608275296364115473483435811356813413638865006604810954712033561727065966445137320646441843515965668982464551645133833493994456468733796460770353997915456421659083300537899638111595059246869486144938298995294487862975440625104498600283549688955392175169652568630065731629601160991813061726676511338186390852535291699362909993801901320107002270569123215397754537616583555087670326303631035160149314917199869770346608720628540064216588654509081980737302512195057573396334218840722454788802012357869398029356842768385978715910404402770404169420210363809592559681947349202035615519880830279946740367593774545727522843107902015615595356550965363438144031615373308438908303298374076796676771684452990550675880598576171842422563987259770525699226384301735867785818258139950276821694819377260201276617133775675004134024959980845338198718645646362328347798910114926563115020305117238952086218836819221918110406763691022368657814673896141487323009727955215271133852543284355266912380868083712883361527497382332730992303556156823900770500326317387975030396454961425187793530801882460926060367858219310897769423409596468342048765388941324680502707918330371581054039114228972436058330201764998163734797108469386590582021126307508488883874402800914215911729183614748715340676122411984931652802673089950079811973354450682304946162163577632247217565501995565723231178546328413124473900009719368602326433127830919965892028649816614109137532966242257603833040860436188885145245440020767642483065361267374537492532796657508947548957546056769057457671378823871054993581044139968662330273188023314696241611084745925179572076647526718790897967359082189907031382301831218824582206607846289818132056376156968205210529070862047893398247890870917186271508786258324975364290325430994822862624128987063612170465722550801497909155549278454812881339694043419385825273483281019944736407071041701888525754458880679781247593658958880823726073685252607335396046507031441206759840177851612956414675028744527920407403342479815589630763705458792398364765778713308805073310849705132702498170949708141172936748741087656958957107663711450805955870750799452136234290947172401740893286127990382997776838036090925431318392086010574308814716414802280984875114422234852801629422340234976042405816993600606612979910715032972918618949964244927896271788046855346242731671275615325278560179798879687726010399552229667692331773024095996909035355889315465827583622786492441510513669844857902220458140065515356820262349319194981734715873568399468219706377128592526476164801025329688653521293016939726457596653625691831162313608218736245493933539992676798191514765514837340987834818759360914242782242181141142617721374374751767157820225872341815732453996822850598610845181258607206197721119819742014989549126994764631640434404540432150575645820232975749098031898662219868680416678098378250197240843142684933544016076743784439108780626088201467418306705721818162735890065825755929700519630658296387809492073537502557362815947298982682594636666301167538897106323066281389146062726736134413050077353953370510182805095130577917559892662222126147478042272463452189742812330554979242052504400876764685355276206963939721693550766755888444960227303702087735766430256282284279259462052655161209033270248819175588018669936681332611081593860691967566487173423892409311492986376742633842260034331747783780706066339237516321347721786548040478340425655977253095648287043225999053126750038289284033237497619285356129260385087741221893731472066196107633033158022192435236474106517620052092602323229148192198931342383532537811151291356779024125123647441998988771793977962911850706304310032969188005832403052306439275854790929689207476634537941584982031349072099445335818833259943950944708161660750105250848831246560189732834523960345162721187264567181955961214903251483244385301154041198415358858526621326663913253346552128746772100258013214923291785863573135692954831734611185947225285132695583101131853324379341881707876854861618673865094571017308536698595344859725493099313683639064428366373080046682465161165253650471011675130698572618555206849075842482622011114849474356863303129902370566026870331336543776369522974910228692588879982017219640960998406022802823766894816004496602607712507431357252748107945187780126685444607243433634700446003947404094710789609444467141848686943361055030580406122078832123914545541392955193845764931460417839396744208516110908239104552439365132461710487986862831578893009693045643401288641858905546166669154872512367688579295323499517786092196310151238956799795355290062204973241883686352236715739100435489737695750709006040895240769857612482309245308845265329889942732722906547109803078684389440184165338672359891280393504723903696704804025275503766655334525406866834067732117417682945322996071622787660468213108168917730562969954336779587700002193688548171853208617401741475631198721630926937039664332573682873075756586740732076472781551864108462485726184713587590530639626024468879473401060360222846326287302079308394145384944669035841057059584162613443355971707004029138501789713457438045318184838020967829581998290566740516699358083536784817911668608390904539953766663422319995958468820009515861797462029713440182753816953553484469275325976235137722986694645583114705763090652969587502573143562861717999746796884584420567800062927422471987327950692333423426030747709407437530439866322659421851553097213232802421304743755176338607911717752520603463632520800044762213274392728035859859677324605212369463742346189750231986367720741745739465509725275187608993144558980616786243888948379938919755835113245845508346505899472187973742322235500433411361647930858172529208774957059283253930610377081174324388564383831445350762659621757616474174154151761435324944014806376013791211512582943564323968253393556039101691260266174429865980403820735035898328483290813213575022548259744665725017502067456224422820970924560167498208903838230323320696622362446805637348064367879362723922302464127700680378314310407122205546950012018936679470233986144790433522472182531653018916891719747720411194714292215827586298344256329488305468006666418312267782377300666348642751777733992973852671041295897363298501773907669272982772410057461602198148725359140836402076441299686410431133079644697804727085416639141050870459931345833360324484766228857589124693709821161210414498603670397677474990901249581233978196338143021228686175810210791469360076013259700081215041207988184136647711339633321098693326051016100796501150693894774393112631158572427735230784065023557854640576132323245532295717719226719637625557089944212771894993830732084402163701313753140753145809215771680467610309460556177540289420935426715216617115132511012883759813913700052423570408131899489158069339612203152306292296440580454465713007755283745128535412035234719077354832267002423639097365687965354182086451142080680673321810622824694260330985656771345681836385200446830956633753882834059955634679709051922323669555777470551225026411336183963276055286273950557104876953833112123098160238645565704493633985122982523323345006130916051708266504203039708744360858678621518250982057867363800768319896768551627080031683232542243175006539192464694978946093381264422643487716276097340782809918649593608073703961096303875000320474228873098023593263729522605868524711513146383608094697853042000877709140779326199216977871370846330283046676185538092835216013500041155259326750156919417853533036629382298821748789528804728074037921267673378541638877834792176440240924306927536225462763676283086092587026774895515925506715119363352538773018941848091248199555237372372795062370086791918563956780204692684123296297847763696733202193569209530724324542697245336760634122224067779056372381196804901630806061338981236450109634444590456447582258798951131102410512308779261532805772616383262416308004425488878034771463763190531934147465227104178886732868082102535724076042714981674452371460293155945213553943322187492721844891819389852093901852350174626578305520354566812209423017369486414825852492058060740874348179680383078497977489680788034784603814273601754068147930449769148482786488556079530306822883779227663968849617581287870860887794626055602112775542431024011560492261385890032163016473223164719498363800451368910563192690419513965686805153431439064610318560919036858036960093718251506728802053384377252579617409410107969637431395312333261322201693121963068692863127087179711070990490497919552884465115362590573323954515026946873234695836198213222806036116023990821374398819425688300298203333839947561209311782529931357492129641950112032886661819170431008475452358936577765511371462001071744561726758011487343177071178236179541343084776190135492419059991367584438381780606833642309506534915712392171894104400617989668231161408341583150841818329356173302801123838136386615980149597202333483686690549614928670851713030229487592975677148292600027816610912747695711854828809541282810304656523230936928941743739280347506290638662264980422091288305387382341663388808720836177954095683438562913973407870913452785316939067939115094275431670078617680315902368419456529601856452875714381987941866969728560828595831882532384446990006371407872422994028811998872983633919572544191325346633349329116518449214003673391594810456300439927994492295972275971549537293159068536957032962309906001865395276257717562477070715664535724765998457070300129946446689014044119688747477402802843151976476925135600399143821231520677188647161423849836395352527871529462881677694302570174787765046993431276949209528124022705290749440967751420933028646188112641701532914887613342044226194702254943066814322188631491826606889689279741334173938085091901969649471909519888823482508839014444181221406988880731150201430223588806020965371087457253437149310114469705176191293611932046460997793288017788916081598597379582875835273118993619779660566993414450672616091376233942045775094764675470555434593601477824604354589719425525446312485286480413118395577134056743477109810097525006253040973909848108296246364601325480597592283755653206581447955909567966935870863697338133954931352575595015670483956261288260989008926717963338482006563787612234243135447070952970716300678896893294042308776861745193941207393264124599150008324682531915836837423406809459405681768915408929715314580059361870478726720798266884115608747031386379143156701404658148774008494254124421720241722848248073565361797226326399978467854478952021081432472794613126349068882454932110170928769267698378301878615383576549841619723579289076063357002943136706869653095435766739077317179164940915992217535831474477166204605802976355573329243639294367529317650093806248503812475725594940546170306032576245784847981759212090733170009467044430439931609857754762164227983918314858598566260513383277157105135853807838329769693131238054754668044565334118922673381829382822740902729889559049411818438112505664546071653809530792080419609967084706626876768107513517188448342313371882904952990239752812903349019047708341610885585627446918230190138521557213711372707089124710231283635854068276934098482439107255447906101868039913940909229795659837011464907690230773142741894587175881333092744942823675554901010258585378366591041710418911481161899382516977812089739300187685960212129388811307831753967369282387544251234216681419344995689038433233884305550700547061597747290807731004508187537578340750112407657221139001906091416655606758756159024255282436200859626955248880726981706509099136843921068804334157201174487972650123801144409796995451582606171859172981084093276802270011279324928620553550898437002122121791823123397503668203860873849509400888987208400029497787657999255220602016994850221850458461004478106368250957990943725299575169573705046561666721457012062747806778484125946085791139690432377108926485820911760204014080570042891546112611781640891806225844579090937247745050274199730134106289629576247496778529162662002820910732409396980655557689261822009152977508854110491840628842261611572278354522638592247275539408992411540753729207017385946435474555518012234528003611724846669375964809105864971961486157035417335859703522725295541649119763427882200817358366170211099424178481295871648924311817836148745448933155150682031214039788450934195485121161610345779634089360663692822434273804757030511665457454984737642986501964802856229083139235393850820642298840524770198293453893144606003926018547254904523935797934671692088976693936521390372059861719482760594386572669103618417909998294333782749725009440972517773153955717138272221435512925087827932127243783333800924209775901847918502055383011875924728244018576117435734119915158133118965058646227633803110094645572182134505911737471666962307892265011301135051022525689057294246443291791229776347312726189176698676301310889685418992848044214550193530590247362285219628555836947276124571937980040870864390321912463404306545724958937053625597944941998972523680408853039804093090573283344229182083471933632854968675954634990087549857485821497981701931955834631010983432358155934650851336249333871728648431280534735735751831175589220371946907317897281033693807824405901292191449112043657010184354149163314876575171149169588617143096776779629420596181865062306552732883635197891138770847719398677522611655972635846025607494490299091635061179680896880053911858542366997546085227702650581852417556524979315079300735248375933466876578835028109203959457557802140876935673435134524922464511781522691949271211689381571162415374777993854447877500188312485430386153676567391378268884926666909595828672839847968894602835980177544128634243229110357809803939015295404644189207044955168958618435941918484991799665647809171579950914224674832615844017140179391763723120836286187484020848236656072228913078290150134409617008236575767953290764353016726044614644346218287004689241979181187253414228248928051297513312485416748110784653361698709506956280747023827592920404460841962553740466752917540778772338369245151483414261332316556780149217740398009481057465763651182682787573402739359315678039449685581237682740327035327170920523028314190963550834858232520984324268354601705846769136972265700023704203367809768041488671819940723046385089058544152082736809593292753730814593517719024861592995086224994525213934736800309274495186129557339908537482807212729048141046658577172710380035430995854798672252792152929875041943781706983153044074354867753671286096407950945743591650854076682618049077160634510036216336565228286928999228380476175977897692870397632640470539960947021207058722579949510101085069814863330045821355399652537063768731519813658085538804367427227101579314087111951969159468613400504337897790336033002921291415204797117959144292930849105293258851233603873803159022358329662706232764425439248544589817959891242817958747612649580407660939016734274006728008547135528989785017569469888255663361483488772263125698129637103320763834160040542294728545013772308439736502541340759400625155351957299255234300426865998493292050918532314683760796732721578640784593955948355767905859698186196014877811203318152823850124084693861846436429931456421783761661217745308601965711453488064163007433922535024599463765336665324355032737009907428981961377400868156349199099016232594893281829390930285499236896416683887547381423201484979762183228980001386402030272824417751285358791241671862186815907963965111485871245525222781266556904098774557440960923094203807028666514082782406280725629017126336995550102871288488820161840632807478031444489590842683860721877245008407705679102646734221677200772913579471012005000067757909936969552667820565659498001290078670410329376746261971412687597674090334263446238821062305306409539767807580124657608991337895085003263779360974582063168335898658012949215918040998441796419515880104119439180475970489261950563496429111016038263769565373691432552301282487576245661215108881546549921659697481431539366891902282146377284950387641602006202498751582098645845994681270624634398995576577732980262088626031452617488774979761563314542844159550508305808740667448298193774867645734698252925063813052998747013361443038294473814673820003463445787674677943844765402703941202644999899425481179211064811644429503137322628164801045211443114232346940688552421501340623255006608240327380140771971558463726054949942189368253564866160219035167547517338081275494442938941949709874700569819573381980901437179157952198953166512550522071439075097220833515544667472952013322691283308094201793465920475576199343073594365176935953458685249553880453085880140663089839768782655947716884546496074802280935575872475102863898439175938261697614995075201773852678456339052090381433368040899922625288091295844669897783536900279825200596327852987144008101089522715029343416366476096951811340194943525051407294527362941548127206864544876113609857045909500644064883308364964799811841941807821942918042580472137162504878883405365322304966630766873298566934017881965139425868476964886090179715031519628162368997207833714853525343162183076869776052360031223497677554378355281481451797157311684650528866138185882058276514412549794664259904342244728538884776832705182408569970561717894882525393835091846685795958165892361315115555084367700509370128748694935110266298125165243787492079025925238675408853074900862307153262908644616020127103389383819222547088979479435893004029985503608369971960816312311748181992563508577964898638820596109210142925252777228517670850766655000408497061092166259906815819332430571132428716242636796207478207507051032471147766259030683700500459918705759347625295964205439282303814818770124669607471657360607094743167846537345452318430229508012106718418714752675516047632405808692141778299467337976039991301662228135302400817889356897016076273000871732773028140576500367140746372296986056309375669306160535026894549555945866217292297744719908638262368423198325738561718093398648021728885952578790801463073905105370697434787508092730221531004617041589756706968139344062901108140461542316558332840040670208357595951722356284110098810847302111473884753825825965257444064395107317727979299874363300126592890894386359852081568328507744134792546914740654578827935576381286479050680553634771140884476770600943834608175752070685606571826883898154473948591609310852047786215599122452251668691590036122788855653672285068063313066006512617581811828612891444199424571701745960797367424270515296859053289402210685041764883848482172028869306749195762415411713374771824361419810520997746069970549819464294148027477361639572674339058737846089470967512125545549713460573306359481816422700824951720140057771932146095652142360267794878797549730137613039571823229491474317782785613499094056721788642241403695214554474948939975187741660106220380255320600830425157277243975237023292061735719303928749750641037279170273433962918805441443111741165392166189004895953920144515156434514794002096897480884624847561153571706304669649604154137999770011100298649318595440239411196052290332913740543972837751393464200403992182533787859430212297325600754578209242910335398405754048760308152465299863482346556910030564363233966621106879382536381762467163770063010775449592151595598437706519488857789367890504045711463305725598400431674899793343493128922918588862631873222158638388004055728921595869948565612464888044975299778256295547577348321303200043649648367830498896832283331026482509933128476568673304543270303569656966631510186853077330838164794500399381527378614975200094039060689625777808367959707815957272663545788666001585767500729424639258407997365826583265225619571888421562811282565920747046861193357046215696871799778855243009032058961941170952947547757432065194710263701004445281931683268607938494547492933365148602286073212677310199785780954613363786495996196541214181233027089214864780241795248847550015120045657973521569705464943996023559346732574361127764951154434196236468554000562939253969439105237428301441247612951672257367174851843826618149141315296272747180983237738255431007286904894422670585389163470079161016382532187324129533043546684937992530210622875682985939899907978711613843123638561155045407375165943170134215011076307844480742248719226054418294169753144538226166144432635632954584011385157771434911970555267456462305493823265940735265713721961112429275782738852311161281975956073337182513216468594586663122107503849369248934244892077941681361938386128767073924263668113966501667924954420638275606428214383648972285785708464739444127754228374149625207966093517542334782967981493540541745689818988047566881629473411718505002664203626953889468908853661528901667662620704837428862195229696436340726434929426747976057982439237249313230793844831083163635384274931606490232078615719664580531628307153333971725993544803148639171626474459151532148206169119999125876404309779425977735455036327566534513854676486305131774491090787595004610015158187907561106256973578592450988052987150923308523756277671949640299255840464509919287394426260020149898170539263684363491132821646633950805873871481435601454688092486958483467966505709248942188868819135744848958548546746444039217119035469989944725194523141571890434806451496759968477474383316857953971767876853764075697752320658175935889185899987903803259278102281265274244327732247122710094348288047431776961152115649838271440367761589322594995964653321459364936338772109678910615371601922796865981609989542843380242942926975733093772983014850129156051450731314555426457504074577528219125864091324678481647891494536766786884058383531275344205693539817361364233322753326848060545045620645156760183113595290702806242282790115000060185123446093610450626568839522243077015329918355047536308958082156530745783715727028496677749476810218143619359095081487615155257822262523037008541092682031114179462530175456407028691859282048112316212790471748552121570002985323367950553244538714474091631858318211844659092246623214321383484985960848673795566321537981569960231357890810228272786735970333210015877473620436768134169484525563177457111761149654177114196876289563256427594143206358425275962545105291772058301405297309748342411408814524479411077496315138656630525979584702457224625375449134729400033448151009097916624502545750243384667140320074944550808880757563209607531373987409383468640279123327856796123964736836565859186201553775074660585464523218959617669615240982347021007995808978297902799161126216913215722120821794144083991181443902175462229400737513733538839832764066507859474923350554466956567479580148097387945142542970872673557567775151663964800771114957200307838824051194153877272628446319555123828117120515694255813413333316629426983433997756014534127684543743270801889439388165636262393210222280787452018152647847466824901054665922371053221084767788384364611551607969560965701218987067295556791433822732206261956838228450186624467071700699118942083536498093376058924446438335384228300068377128618500246253335304703898858771732085380571044728606881139945075561391234039062133370472784377287965654866697631130729508338616036462736758349273284108534884463191835568209350628004817638589142788965463739675068457697879633513880466566876649295088712383102511604802461859897635271537690839647946372919562921078014991716261311152659980449326381819339458240410403665281604456722392346677920386008750158870407699344403013414176056487397098781403875228548482424640931124017751092134506179053553059623002915440120037671085007059216936181696477617948245818695616130386700327770564458771886907755986957579078276680530072365861209240748239671612337571203328447104982826785230512587765521508140380507477312898745416644776070513726951970174928082776385451432511231019566582017333584912211281243328669846665225264883870946421679822298103336722813026105542245270153988795027826619804667521546538029135013138236128509582046954374435377686229858740109643241470335207212326240841865159378812505010009905213406085424795711138800910071709148223526261053729097274073292102917203398098674712426682098544752785429173533912145648528453885382171046085650867371586489887677152290202304920055706318858369931309807303374881668008129408305401863815347037611434887234950105559988252770403739102213974190298274739541362115758221674161707348094338178832252304171107389450055157249304935830744815032252560885719764996605821585089119978519955060070195225650402514598926408588548766665775141433862127005763030099056152864488806571368675153857910419028428261685754224224754637623932222060037383487327579799465511484746482380831529373094799550132277637694080741310700849275620199090670973774043983340384993092405962244011875316113332990178952046080086039007816955033978830295970109998821480568127005975161181524798500568503666067799086010634027133549609722782813974506547432986060636378731234044513291533473741593866665086497489752123976616335606129978933108597976296812194838388854546157049381865879737870243813117163258707847557580414245150615614837000142349972138364765710838492629659612457704966930060847969910209586469137534884648165305729522647005955524761553637277658320955133281832837069310853042766921555712489590006394753081413767744960960747610203343924997638992987689107306403335578374426972961376582812224885264852030640113026827085067734482997205176670932289127423342434734581464743145893264541613327899054241482343023600884076619204585282755017917216882625210192480172470981131081786887928432728862559936750938104809525224779891441091537952116398061920741769452786611803545225687839167383940648390125116141059055317986289920560952775117583520459208989629300738485614618605743277913782240993615257483043193011252700823143332030766929827409589654709976405594746879592276102389705894965861415781053992319223001956528594168406290934459751687208145368004205608673053913720516405357848745179229421570780267753922281949967539676610183063848665253807664545700201671711969315339474328777319537249860249278925836663979183759997879668059149951129262720748281064455795903081960032712516268588250715454947892573785050481798608123532750665424172298100726180354558168797858367799117494437745306636652408668164430663050531646233516027520935420715789785401482792222530058300686675312095381754644187808736887190913780184086648642744432837001560905321941871741796299784260658009484527773326794050727683528553411874835781295946856662836614274490858151440767561355368074898494487243178604680848740952830077242958325362840775677133341191671800017778826612247200532689026672975883463176072592667961612651901927293322034681795243952981559870631860060809753893078728119131848532238581305348475238418284587810690359458875819902032960080637714447258549758894236060410720158358130456430570763915141182089033498591524340110597749477958088345931476766094369189521235696784707421194092696103953402827530059530764322226396480828709052200678771767735800552530311883795646939340422878087950955810840227393057890728144752597460115856683580456971791632882062027147410801288860553328230526089503363450629893980491505356546993941399866795074795881048911350434762073465162635422232692216449190960008235944238378314968692369220906871405035289568096678872494685121304839983605524219234220300578379339795047157445813855347454919032010866970756128234834905380555229273016203482653620687162687042147925394861536677131347753667235434370918373115309395484150716452329054314624566234101096505579669778881409105375762064867257031603350337306307690477201634106667697219027670724864989792102448343110014134429200886715125691725928953525739288811172143314721637026268776368771620828877385247281078849675320035372899976200306240290844371189895374828012006116241541891330181666102753430693631682924363831171895322077053493113993027545110346659909639633979007644985828118472424484855727735187664830491404526503350654812053704563838703573038772912336146833651219439141581626223774629791960584779941013531249993852756098926740831898192391630167246520297285204457168982171432763987865753828460619001611741161135447648941048032925650887402015798825149528089715607460561448557556965371111006991341188464667338384575237238326851469393400166891283037222126003851958016794945381679840947199850386898001999011617110250660303815916776180238343356140863978888939101617511162642457218330061091913326546270202387332173957260623702771702505047581614385607076409451792760773739046641843537375438301934138404563277376589155538945343123183593349571707221775551970306290807239464420107695046944113637093008384281436226810821746124614788906719844743667653712719859015966028761454169302632014016543078442016826618999328219214728346475605511074364176749413229455630413855380903301894114531852903092755034942055343596307860943837690862101704408531899242232919439013691699553980976347358572445425042958629562320130387587070772736599356187590224559273765224538356819251947522828540935907539424083732968620424168895494268249258612975897629796536421393761659628015839805066478810221950299341956959502454136583510105261053181427932545669615620046034514167603109524775770332887111649683108736393405086119012249553332362034444785654055679782612470042787132181114520858920499990360949446320838034423722909477696652024599097199486939695783916781939419029136106871521287982974403059799395252905650266627896518969951581564957988069122106400317473663152768241877986870963447245459990344950147641985749017485322822718146546467844994373816031281361675280530791108674297274473594639125194470200732477845169539443059700120492892910300820567614141530163192853980912491061806332409369686023863180207251854541175233629551399114123806051740979079485916063041106543614846821439116935746729148338463786277092036127293700876499731145904435169230349843009389219388301247643929290773577496141600638259280421543753087084839252299046801655410565520202908238967848603911470141220888408361467789932737563214359882306833330325720898308249156561865458298932396108921351386130109986071305194411649721391015329922123990158100434315927969182581877124909905763761954714723174505571426892566322602446089874853368486317976138237742320339430641580234430598761601052608718379670424168373580079461209093178293963800067970524879005526132632083472784144097352764203122118157899057367161571443715779854137207322075903461857191007551883192400487561359671052181590520056193601687087010884746408593282816483151627887485930701053106515238999413901092781401937187303390012997301762182630599669081540326482547116098626637100500198948141241504945807457335497222393091916772525029912474314493482458379473301200613403953148525737506465585208557888299229771308334998731347878264836482282118564731180893807987687944311982134885555817205628920845162095557729226816614143304867860738431150694339318380165268686703336382674379395030183196916258795244337185911282016690710841386415750428157481123576584995330722105031899521642871822327218893988859297434727173389166243312815991868965737510137580548098267132514977278861323104588296090267287273217676602483600187573590034156960499637806919414660072957364682416127852369154588264742071204309906765171110111173000707853181030805489048907725513309457731375902329678685755256294232654382659539284074255194218645152379585914421128038938865556296389885309584607054923050485910082430248973528361872287007981220757231914395314597761240126564960359039064713857548313110810142212549467723169838914739111879765513793756332486339617518117985315570857542852191510509554959289652353454482946223105258511604615471330096948836427070292397476923290947629255570128033576581849538754334970628207168716181792718671762851338923204999346809423317020183246382406659255159739368017352337711367375063542071497025325808051441056920087162637565505183592751737723960030307339614044946061180522852947240213741355826718020862176727022048605289919442110646021016169522694979410541651830497931062582099371851912538880211684725087223486736648772973495793152649727193984945960489371954702732963634772993065560823779934498157887186967628258959878865961576247175452223677728786146111451037988310400449225428713449381773456057063575069796797285034749469188892539746810913899412275199258898099609798427381787625471898198978710991492502968070279184711924667596713812867605175239627470538606722870846462867681455926473242096540887180764330227661144393502311703268675573681436272981697923733408430845721332597830664891330171527257705979777958679176241317393398661159552508626402512424374823400468373427204923026812891548566263343871179188762210369929161190949608950565731496203621472583752722477920098026563178926437884481271812760395040378952522103278929659639310736686284329142749167060009951331793193116652273747465146844669751399032261488333628954320386857076143709082294988687607960929879699810855748722764179662728828098962173594186447269582730172866235451100952222870355936062898370958835870905382505394543213979297158383055966323550179249872044314218384773911184842065634253385725440821797827844555493591163969885710941070162896923084611771827042913854630443005288223358777455814511993977522465801320908085802259536340150217952727359792713361437020189536649692636067431531136941740562177437834403237499296812806790987910335876072197295080004281322695565962247713791923115845409959187044899215939998633055902288196803111691041013370220480043028353398478916224661795327489934807007207546983505534679928982733534994611188821376498468233189260455202441920222712454862593646797765744590385608565633830420479956193962138746619021889923714377930184580137073923024387971462022128450547574257623718827774633271318661477288905562715861440585289316226479614519195098636488638639396946060212052367424033453212022173910225391806502836099410072616594262522582138562568795467779667071401813400613598580366336627629013874076501456449036468859516493478045063268246015541363628136265772685353818820371087007554203585846555088391373637519149453603039397069487170795137998256690665947941911207373719127963176150134751076342895958022766354537707778328607237189581078942838650465322762496316094513858757347643727992170511392242474584984865717317626633161710042217767003771659149736199986784759465501631364779448703755070494610702109098246893277681300351946262977503272818239977861830284791628908936398091061389707119932117831668946226137910966702819743857152011613658426376375320348351511148604797802992006067923260389186599893122115367534420009593874326789510398738131656557922802126294199640574544409397579847494465394565311766940565853189430383158790218806964793024574422761632905785307327633409607066409240699338764287791626503439310458732981076355602914086474136503658781890253025958208325261252563351572653962264340704282207544352722780093420250380235938247617316895227104402722691437121577489457215818713895059802482437544078666370658474529386446391979988328402642593681049856902096311090593738625455216322516834900765960090115600480163708566562106896408956885210942864226344355733403024740379986508263484185738743758029746736129201485237414383790564237038027348452396296091992994200052599172067688434656502534019427163912891570728467433427741818964105103226533621558225739978076346132809051531592251989922828951681974364557083776599918170404420886037359171008793592421794751230391837171377121577433079824738999712209950902259112491196319467246477300767579583002525699807208132602551409311272717592326207833923065447156607616903646255164652955716662206445096296066874169967061760412271750217310188013476434269756813586811104718245714145758855986341487512260649877683812485907768112300973382126425706822902782796850652743144937218176441031447347387751061927511636952864115662655688237560743841129411175420634512040304205918479882400180944532563261195044405983822283246134747819031225279600109032042996219526999029885732780704027328368426640650780360795091243823637329079079836933686121894989321710697171972256865618207096833215618609152679745914036972254795649641218434097297381324706082908531635487800974967021976220494148108262733912116975705480759661040127502526586871538777510736798269969579955520723709083797182654201504728009311593396056481650513816228514740251057252365694396556867674734786034798162132078332747936624002995530619558139434890403800126112094969376821823982678401269025979331555535749156868153322467615078109470857481491006090101339182542615925010726811092394232210887003371564128328017392191816072470082373091990315491359072932391301385621894432151504123286230093702111234252749750632141909230652100386158296910237890617587795278704696249280643922578516119520044593365715395587071541526718582825202023935330968442807065119280350831068061959276735807756049797585700404913107823387069121196471407682210299313082253146119790223167173456180523840453201694160178372616351876455411987969348347074579920445537795026956346359753108734620605335664756722070355725081636425722040817426420381528408296938746823652248112000444983816415069680745547407698060161780234869153146667788944649297477890729117650250122748303905730174113119719570125984979874627488533043021090939863987363227083813153787901897779353014803022323293874431778336345804986608140336325447861827991737059723340248355890661702216120049100637808257354530194998757463953821655324879562127251609179505292718379724114063263570161754955325018834627610479146836730015313709160543091637330404100640477850102436241282699481917198791482767563520612113342534514473999587737515112701428626579768984547034344543311865349422926216946662572847412692122379485211944693868124670184699943729791785078806758792496302486857072754766228143269667289588081906799870587835246040179315519776709637209936137403358645827901185814449659975013575870886574703303679123965139190734061340036439390763006998199523107789198223089638164889033288727594065935467315024723165114973170327988973475708975353642313000768415055512836440774366159121406474186595701028335245928058773485471664394992769066117653442388918204677509578228695786729803401715396195035960842878785742273194984167030768517295098202930115828454932968333871448138389293632921206747287277435708899767483361301733878132761015457001751268730010982467450819880800983634031527449813520994723380075724348973588611775009967611608994525485594089239828962215574272052390422598871276162863501716622156134834784154905800129238126803638540773737373596259910295228744029188805100407834253295490663781961871353753502629797361255746152035534502007424753575346848111457337750504668983558606718817020767827555047848102631333880769397007188529104559204951694054381192664679005745487521482795602966897094830702758359310156280237004420830897609979635874463098763096668378384134006371231379103045630325416066205453290888046248195626069772621676892349860941711500198501517289628646290018316250119766456289616447515111581225639105485196976385967784141558625623468738935503549560393688994843134899552130712724731948213924547489648384742684657032052855903569074338861844422973640683554628755542575218127342993403946223085300020029742656167846329027068496102649763732120495581222939585391318920754472868841914657662005912690889969447610311228144561619233088607703898115910825501339493652296768732777567346028137402956957569707655175502506349953600819307365707655636295302799279696125250501707946580225870643664717211907282677983870262486198085609129232753679319027415412883985955740824611773168946076452858999176030265940190543454171382613994297612353953595207291351710731815231901559807844667057829354172311249539121542938997164672509482276333848835638339328877641196612459313065798151337468128842715664530181183020165619808237447807644877328550634423895834606740400465298116950602593498830505922655550162577294177275182386379810093147473506537676276703893529499738818973391871617515786800843808280643511757852443352223604710806031510914139091939169752888280720261616767308496792982865317445105954375035614470127930770411782766140831004084970999744206187394860559316946526523287782317610548345050691693746090715974940336446978896727451163845537298425728502307321403824144400567247772041770997167554735521540639980459210404128952821087699403944254969263686197078446145682132720657632904385150717288852145701585758256485496934399806657562626295023590153346807429316872027465980270717610346671200108248154565401456221710964252309695190827130370966451970044878533311323129569824759900318272161819069057437180647919723276152712799357265532014036939429441970121878795802132855335459570074294497959112772720482496770962852984120084986267147063188892016790964982444792975920065679088952909282133428222564092214988159236115307587623406014036523930142822571214538794471908803406931855542516789647809623171943460315419010957093462395933952091872112881228946775925623035040617417105684057041650953623900444025760969394724642833290869111428534590914714499315554694315533045852049056412163109470152956614123911070411720961635965593819659747044235787444285814598141468750760991694796645282404408494824420318325758131983574850409104816636563409658425416497851947417777726445632715028472094201044199840733842584430006164801994073580656868457252053280500548401129466055244121600495322034676528319565803151659302245190209839193323198196730841009321309810378977130152331161901259521843900768406038266409287690408843286512796220504020234661197538972144063014168101852371541064403456600308914156690082791185254319759413279058382941260193296751153775587721848980417911200944149890597584529616795235144479695144294091433311185779981762101799566495762085391678355828702762920601787162882491787494022715699467150130478049110182704895798423443942945426266262625962103872824093740833288959168187125311622874978747724865909476020200695726945931352712530767425454828849708016953881387814215642994783582105540878048308642512365218930123750130993245650493584512724383592587124183071010834949675944547455990826804525584404846307025327541219091530502617520160353700703576197533369266333121957616462081837783823490872577327143077161073974022129676806784943800978733313180450036978598733242423306264179841495024982713665565576973383204486184348454297301508068347147643780125094687781880194775705877911895647255570822507345664059112624522555327186002302362161438181311328846373377206760241838374012931245903134561731912246710080917733841830764169654781177644541259278023935299258171253563475594595225927594427312401727452199019493369390608624195426785278736574270678624919449290932450115270047553534883408518152908641966921096839187267670281588361561671954929419011127261026400732068995440047878261806851930122144212624646957102288924467069802993080026439233135500278584033362930750430255577598231249966777879042178862346728264376874607782568866869279980489967682278666451709906788712089518538477465641444225985373670987034327720977904410606782909209356974386116093503744611109863199270480970983958843322558276109895860813369573695512699172488857333565758577958218635589637892845290679452677998333112933293805488668841482524295048501062852410672373122032970206181960550637125119233821505925487629225631911527012190645784354591544850862369766661445435659097721004943761986600735624462273838756844725719721329907225937171399583954542289019163936620581389086002159791773210712842220155762363230118445667366005067901573116820409505357971193236050488226426349950120139224137960973590094033087676130906186359448217764796132137126246270010893956029156399126286870296736282888286223769891602020462890555311413344828924209373823904308907922751299870119520878766789596644122514935716573277944379583066434520985139377339609035413978427970852727898118775329902001410341590032279607486912139633746695458634065749902296406689292528295098894244419993965033566147933763607896952333358766123244707949480156369911459089816494651783209514974201477855914692158414379769365172030467589329660473940376202988910492779734190384563705250340575973404330279544341469074561823699183951267845426797959698933911156394848469445272337198961198263036360210054413661685481874440958131478330418393203869898425624191567372459795593378012951825406388598913680830449968046814115874548645879189429393277953165112095679891583769523025428412721915272422165130611643281514363339322993983760072706111684772252023808666424544059214401729674577902950397332623354858496327809482395871446131873977518256391238548365638739507100294462820769313387469870316014267246938191032720835783031188025010245020911403417846386650652768018214971783398269133502581607326709056595506742298643732608367224363791330517209276989533124874534274323975173131960306793857709417779715904756824410560546881457877954824087995333226449579086230664891142786379467787025246669691815010867239164152466477303359564081908025594072164531886973927507238345224473158844621898661687355620759834826300674936549261378740860813988692289389371872607535669200269001008585354003310425283165081965515124299369759294484767158770284948624567604043094770056708526971849639233537102596474727273033326253560988002178669493161275649032330098347378422897421291732031677202389623403824735609145737812117856180599296003758348001416590711347156738613648281909504005134397596004950972782679174534968976724639713696109056456148358228700966223836558505062165994177348012282327675875931966241265430166049407079620685047736745582703775734485115753605426473928352991255960587389483262469477024077270027884893874855446445495849372536980905889720299499718195946087360503014208402041024608290085682227552995325383048221839019030576849130270300703295188088348750693606874639265609490281772022071277600420864215552194367725789210331097812422081768095640343075734174863478579347138583931585679300652557120005800372301539450145522111002369372228703811925656988434966549402133260496144271360103924484240061706931117405302755516197000596850808227078442393496374294204307621604717424589470287177543475284578769136469067951695873570447581289436657268351846987024102153348163772762988031798616265775808169984078803947218694905733125317322343092315028101865062504356120132144743684035452216758077652902350139623774690210550435967318479081286366135259608401904097743142612609479594412006332508899560011482041301200869430920174609440774768995980853697688667564664933655320778799248960841474055138442741071030498100382063871097291671187516335263029072117786358814545479460670221875876401997061729282410458824441248617147005208328289532999613168536654186546836424738301841963087171750682596744468913295071039991352390491853080096503396322476967602111525889355142436375907555122765164361859149516423728239239973413080738035498650339345507548687708049810248183921593487445971628553380097846993841517729220475293802877107652610876762968864891394103062797970561944526680865662118241685854015726847084475903038336010987211643053097934177183573610184225462586254434591581149078393242647604824146178751244939880319003008884410329461451936633086733517512434806185186945374064944065059656168895577389067698625555672343583331347639269268030756953399597286190638109449554399746943630789017562400540550883685965218473288884834749222047825179912223657612088516055126434214062360846371698882795648059729076898298022409339010761380759031094212446805357008950140929142697073635364489685036792222806716140722403742983342022017444702756089336694390137658480879663436382997714311878487757040925908305052083802659769290046340481763584881682092654768249419610222858966860277833845363593646147771274779726815076432453153587515566177119233962913974865365971346883602379863273108860719574178347138461917885334728373963428345419823788731400861235333790679253893765420473256249972900634736946764812580211198710015200833750563044773080210004661434162208427083676885987264971537574879084691064644161833089292121437358635580020905939215985514638538769447395517993428784607734706898477473674866923178350565269485592422467958520140652185815625441623095609905198683763984424093309316534371330765048298072168177407951925711220836381405076680543795759495746399146161615858378039988503976847194113289197055986917530196539368663539993613075989659002915246710403116251236781377093679608366932438137806660840435215391661788953467802779485823564025444103694608093283365954849214212101889791946139789924908543733588708852933662574007925911695613819098661021759524301536292447199792476332116402317061343839752296601469733630835991555273143834789134417500126091655818084334018166488592638731784772801746308516188170402810603457242511711921445712667666835346011715549792617659443395316803936846403971784558749403943881817144839598762105864478875225058955832274668305353039061452965690146317223351489775954196495135148655353574186289853775191449066941161205621054204435368716101868439409545745269603090761119708364528300508528724072945385250415117119605380363831185228560507060852846996100287794992410368233193488934041986907994979174075773893906527962013583222112209183159507183624600446783587852519074291152856896555182483223338800923452242829214240993741583344275698121870112349072978119581675827847345744232007498814545554763497041480086003872141575782271224678510117710652225399565625364072240091522741892244654509752586996739492213606074272539761422234796752762890820240071565891657516477951585386728920572915224604962712725920541662124862188892713203613423646447635293117277375582397794065374273066774364941014132232755693706357779194540885846179348073644443622697438530727416527223067164626154585217370236203273801652166634236629072879190028146076077721510840317370674216781962531263112854781046467359230565556873333671967599702358419155638481209867742853199358705060935009513148371364246436304619968887927980961628082778048945576886483541678473932984583985627585710912790799202097730750925324543086786879892838614716645305881484662959390710070362098468686112065423540745832405655887719587189854467363841278608090788461533376227229659418982752646730821252034423043614929124637785289525587767873863862148486925939198511901472571410665771414417802689126306119454387380628069098292910870360876022126488208100274089086435680193907947522047826672123906135691552295342322059503906787577739784212574162598817076651552712647999819932808594718012555971364994037120528124066697265690439016295156652549359608184987254828246268616197570281219523517289964957635578579625392563908489324881113688637610139222115341178523547083915947713603334185891758828289589243932211779919304442268481746511288623825897548950577731184122293993071075250613303026717433133356739909389470019668052378050187577609628719244375354434444844910104448323504305353798410731559353558254917156046255442665331892769458074955815460126996704121322278558245968199583885608603956498044700911257515524992953637616063237081510283304650432397864971820901607327541835956275546959889581664804616673431506981029076223071953781600920469589091204698203138981457241095986058657136304787850754234070820388586934341399363236577084575531313627966082693648824818620357794880076905487673263810952117457428622555909358265096617564798294053834697038349913588306040082961590072010603012615020735829755281630333114205658376667635977720279209705604365560737784726294272239756846363204437254723010835053998014182981676813639811709479243470343207412793347619523570315644313327864347700557010747429531851579518405248647510655421313799853210482673301853799007159505971980730640567557076056741369640604323818478891661963336207897556267205626999384165724355744895541411349559317618514093918629600782916084322833498259809286657618673076146527347918939335523033830248071091025888911610694084510457278481882042866246830602603899181175056586754732656193222672707556275925767668419048257242461896051033185991963448241532529971240762573375161024639295792030557243195843511833358245933603614239289154257523783311529963993034361844441538577135306478603274553653475735202998461675831796071785736510617912679437621754121653707678178604297101015546797185905914413287184846913442617159097950264121008782153890913054438416962891823726694335574951115991990047025919961492332390910398106021092835967130235941641965046090128258332156669598736725826371024474115093923249711076142614327599781735733924426050220582560265785467053731388382194712509742151966342163565522737102332443032993179966273425882224836319022808271149278110513498868012353938303545047204827405935722355450874276704025022650465736188106003322609172656716149235929802602412944507404339947072984397264017656450019689915453669646710997301707027419755979566755572912897218964045507227943968309301757843362402335585222088787806906651373897919449288530181930953061042524097405374702188912388115018687776582678022012329027763892135307292022239727379958196403672750656337272122032758952356505450503868227327951456239129500191296909915534775641147086467591049843705564519664619710427480094732995905299632701508005863705384785762318584746290794264023318777726485339078918365190517259350505832643382718516248211339492753168620353711901454022550147167634887629139552506865449500588451251790208103149420046347611471611730742436978344423653274396815962733836954908253126750904603227348564400509894861937714924386132198157726790356629637466685053884368929474702473501111069767277443146934574810529219758930850069660373307298476565187732309314540993991075646908667732014693348759959237781612340158304770115518963636603615197676901438682394274624116470624543267659796014527652528553889498723961748683401748350970169073001510784443766018781087327096865468791681393325025717198240800412477291049894226712542677732288472154923829884119384916971438987409525294861244570357405825155444095708501398138760849273795281406223259167853581003911870478001825517378272929043377389303665679963154915455104334670115751747562553760659291096830004876888349142063548287176764567198159857955089867379855046323990671740075617270103666947895705774341136337168573697358578257321392664159830628818868683723619831911260655442723037352383513590419940625139121002065095370728738983064142745742475708682765125364222794240292241837134264455241586839741876003655616453739186518427852010096764687600404752636054907556732799728623679575389629523262213566991835639727712775304971734534461658358190873215032407957361601410516758604661838718494815944064595822088899311618989828215384002648521661322224073301521704472226142286470509824072558272564164731874048146787194901836259080329244421166601183063439027547807347452435431258935130461259807595677486542625659083711884681354812607875483957292354431433948174264095551254768597909931080527582509996799774501191452935565111048056916885343378802378783117620410084488023438543148270576483696245626625534693887127078932952101485762395665473922222445534595223578611125838350190958843283624550428436429357633198231947614896167954243360290215442515925457452460155372708302657907808336927868513930887925926536705400651304053447704749997897248256128596284455506924551263186670197112628258972320092038341668721310326708264657411940661052847435714539729637132774137800107124386541632760388620683696452641835350583610321284272541829434627859980513506366490811452510883010255352739844732797687083951053971417449186277323956967708933332518441234400595492160322284250323727828327922029336941049204282594568158971610080536622039240111837186928933090486107569347273073783458127775192721447672859682243364170196601335429367678389144629879577830661212319425876302486223785624725558420143894494286057079141916518694068632881333009399310999072416756564885326618392899169314545034944383869464183557959359290679227178313579186467917934206476519257934905182110991777076387046626697847011518467271506974359384506499118802238105555408990082757818169152002302125732564221781132009672959230512449613030334878101910738150720407278082722607684449908833692435323793706974134830065218338055226216563622008288789861167923710233843767346265204377809738775986944569746675768811786897482408826844669435575023468120318532053317156067028969568275002004522453809010849896501782354893976735391651663302517073615770174267807086458800811133591779744071520504854468069885657992556357309904892833949786231587351832575665645704518604503374264569787394671746721234222069053334019317556044494914240886402014042050764475032549253541296009639093493230442929396808414010181131272369195474976042820791354702241216455920581505249827177730673185605922728086443312125300652574052948470539872805887942126516746941867687028262430046177902846039744201123752981244516791441499460431801110538531289405395838270757718939591571643403797124001624027311659237809242558925413029556462938688321046055733987628621917705246990887003637500902716071465226600042591345499943028557446793984595275484037952643597384455796632437411343055421296781424988263671832126838598931247196450454948849412788563565138656175566885372974721425698523440512931443388571364681482966598758926458370464107842667969070777363063286170539027403855460068763533154859725519130842934439746438149858823430313337791446918359823304860640647629260099955894242594901689212567073568376201936768182633904968449857161678408143005736350201268890899567865928824819553102481242459213272887012266038648068833358166252738349524096633427058436667304782440250274049322248588994238808169644024673421525041720621326646238864211783686302464129048100432465864661672050852940632116086201830787365210376413912289724706333617432893545026769494707320756743155571219883829534457162510811064954550117563073188585691756416928579943178438198248342473241024812863839434601952875826271772223767690752979151876509065746022219020333376400681789261386560161216366417927173662649427016789233228521092343069406517557672507000186706791186997020739249920996601575061595585258189641781147168122073629706372134045496138358893316244044235823744693363006117620437886529693420699667687357653167457922749715418123424301982127201434784259392945674064476598551112226737637924610303230344400100752429132063218724425354823223038412869863588774923398700627348154802648042253231153546939579301331596567607574749683007084030014221049733351779707400627935955647086055906252362129854966780276584311053582612922153647881885948044669481502430124090432260832796004620793966298133566648469587202907169589041163800880142354630615670602061691241330701952108165252807291377500844689781950914853012618758479821324035730281932305144160819679021733118462647539843893543114592625609885158979931357411468123171088543970577155696413203448485295806721871782421008741042249371314065879263190592169606877960174095355034116425524568854975075164808004534015514402318733219910846185069855274613097788250710901374932328817545548900002964198254028914689408711418728065577476096755199613494287426434793025279930707955723422909861634043416353731925501183340173954546477430098030531282050441870344662479713840089228619885941537852946177294935394814622867135433069193640012205538632774794112128424341991114308679956595481508790772301197970106872510263647432450301907114098839458662902914482991744734456445319981520069684901084321119527242493479846882047745852393076042035369879099335521258367591411309842733415476788911846806256023091302558337093234277359698529007318129756569740594039122493193454754881269097868504495127655119532635679689543830881107744748280657054212329067132234456271134964143168528468715126279089873898553371904032442736823679529898455509357995488749371548706603688790519417246508138054540088173673534178105867256686676059319545186353683753552280863685512865078933416452458335830172553650997434500072798890231804030273117151121232576697638968368682895067575908756191477039886221526359402623905129312668028643387799144704275109603862417922088982442159945330463231756936330560976624318987221182647983897219900720094718132420668335117511651719439708533773788620550465222827275711730556309242347651874109744026402896546640251791063169651844922361294387374410154549373345037103708098938722851183632811408745515105946133450396201672201652421891026094939570084499157093012421928721894341911266329140126802237976801761952256732391706963051146637938373870059150138241849100987122198036738271917808101016927336463064090345568210635484270038124825884464191693481415217748324923703876053616410833947747579771540923728856553630163924814914973488645381924703429148183539669570297075888385697798876766125915116817776251373306354889960526530608613700339973805913904040172654799906913519189624095400185856970468401795709083276990145012210511693615937439094642805979217947087750424959216284567877037479120182809313869352289429379247989430294544340027625494844025993294407830936100294540359394555529546152561189401186264227566784538768144560284044212359015799264056042310431407348694687446512824530219197172544231677193070715182204991969076278608695972579964106986314463548424050483600323376801071724548947812138533088461951205865343451111116473698523748897115958841859093366017575073662251981122930419478308073417036860414635015823676656410047262245842524754800196686246513264347737137586711438569487333872746591750754876596975388941279782891373903931698199620442982802753811464588543410769125416257372140734351424290171503932868739507369848549694025486139311684051164025078239191483657569123053636178436831983642628791416534573447758159653656338186823751802564151684871417654685770351792794376326177700508885591882975846686226291739361518781691838771203094438929273006549026389442323608107029934277259025673989312208093442406232648250466753918285417733745851401378764783359977868303719260707455964177854214126874126479455307870904979256741448092577117444962117025873714708872755548412952937432463120503228152706458240716073098599408623866195876673796667044571378734963140715520015789345592530467784358358902483464011439014718338130958473150269526085538744987832271958425299306528353701694975165614448155567843412042506678999534363543079804797706738265874527536973139400175764731017782263025666910492176849106970302157794389665487725320944002670460733642764611277926356895731657557501863544780882694655008553353632598857687623359669805177256125114175136026326058405495919700298181698404927014322216130357809795397557277657281025631834372636586628564085718076848014957599434028327255569211490011991953449277814297050413419469873104352000825489188983696564195905474409034221580398191259845024015307948758433478530456209792966313842335697328285471725074507035415574063206418922955275369312082632701641818226412435142978630767304678481118513293524832380356391550012250570367702378556046712182822075800107182931191693761761436117685186643431294080666798346660269090682473584824941460854188361723749175752216797092834259308797445363267454175871146915734497297684892849560929037062981675873000079366905013832219311015003969457703027260466377788070857637601774268675738459769391845045195876173944773585145184756311490970522241810183538888074388228962765716435699292853135446926454028327314480607786754878466974917682189567133148787680494234304691070413173344042274224953196457569821011808016554745995727337757918791757135744795927384915102298797904634165210677594049291578749144715472385909159046600623251248642225615861176858936041535166726468617056917343650218574011415202685153897406745785343210700096870844249151738434227381196404428708487617062990914018563953413700287199271124999197474500283602863026506177751874504956803960223073766139474274530444215048525255747355227324843569127084552766209037733202502082640972876715461084904150150901117169760188201299032523931206762870704968115256284799810184817858880442614155135169197668511778746472505711953490300590205727926601940604120262265074132670126605642761564695858901094502239615689647327583189099588149913913079116644866035418639433431897320646585542575635258699961758349812203981071304793075131263632605766018218888559919956990369246274686209485118534994825325194833380614236599080855015364317271146263271308339538799681900603951301218677825672361598769566240419851171160668948264635540394745928517097182038417172929275119834600193091114723325006699758589666412849975981553099816153663932147657852806602153923257220478295223081378222080449910020821486245629167537640960166836581539684569683089167768936096933037134686963498295301820179462719848674889362665267302361769187001632010053039092214926565560606167395670501530718448045357936402654828681210182480442056703535694591222818422433894956902231524345267925634007018188983819638895449332668907521891320380476583681613707157910153217944460072192810830412949398394871936523300380530369170472548990127943803349752687077788103737505897927082148715565897510178861376636407582656476453479889129085355154958391203698174462459128285971923298370020857370144332809675480050220489626702897601391385567735710494571179251462884461026566969224567713451609066504537795045721052708370978705280007125757417433321781859013346941521918298656719489851918701109940554194800381739457155857651116805480218214929288033798375509703580545312647087543178373866886158029679050648873826308642156017484142458748988659702785698074648268416071563597837818427165415653891351514947999629357948263805068558440089708108848308990830634997266242977955777758842825489833763107584199650960234874572557619529032840103134847894035501885731199578167401131503066390205356907371640991289371505361015818815179853761991200298319883656109815516169256704844021480687244755147728434391931214068779308737713110397951903093216387309557597300248130634857040174357042046178033806088642437445867440190191232967102744805216691696920664904059498769156008465346876376154704455525265841517161091541562856716072657685406910038495762813324798252619216700408587152116112845463862315156984346042547804245897846548712618494403240210080009673169398567555053901531235710740565754775001518956035638159475179623272794996269990647301670157086713821793622090533450293711547871721887757930450780764637026426057716815990186013442903776746370092839153905824021791480112074737433783386582972893601734314769452309578192168369634909336823236439710810539076443585673694599532730455291683972999698323665748228701160335747602303423990420691414108901205232070585962821882830076712085614193754449805081769287961919188529112984394805245541274124013596624525840420556092072522076212432463361700105639113724004821191929461847008057490490645035976795765903311017544618054218649301103202629175710354735244866113232584457918218037647293927366398347887927354983221732432481053682381773836820155541529732905652239883900187865141929854272195318575802463101616780313857842359588094208430127825450633846463726002988753237558125724064090927448747688372133407007308215957605010531664225423906623518802731560215172495782558838249244293235964468885786564098863804683338518668235405400196703578667286113257894413609767982603820356134055478267717740011764196673208582879006454624070914162648253123244125226062402651996997208012992578564915119158444512725828027189545704662508385486560651647612746333748211570328992914135138855365180700796711148732479215894642447084342624420668524622924751153855500073054145848299907751194600514118001690042775218539921720292126040647678311724154438060686020301032702329927011728829152895980758391289580394334566386551341060323808708231957380975593326154255056153234359929631379174063270368031668263066815459891674786360306563847185910089017843573175210648518293341123047150665123545892293468352871971828799997026271397699239343269032908581776920375606164031925701302402152194372554744945426250792121411255731378692095470585346982881309827799335522951327059259347195188640397067132816639897665477355782063632175392160106876686340694693942977435222566223087887677156904242145813496990025502883318312939969815495189452167486118141457940022442394957153962482550474612528470756651113024752733772452721535548126448789933166484984885122209217354000877193828700460043102844339578128985354307888754708632812542837012088706207703498172127914403159679925490241394995305085185474319440994007764375961655068311904911254181315353571548769060713238876886315226140940434538344627671273350208356211612335014285878491561396128042064921147961273787863165014592991011760696065690377110431277213741783512917224528781477910155801241355382336813937559705143808066602747323155502817607989456015090904780968778788753551234314668717982004006217637504714184454379194269611114674727080901251520288542450015616896239083241180872780213102351923543384571267899172254698233625909806160087169375854034416216352345352246852560189005920532238141489243029733810646981698412100863032581719813359295887065974551260403063722732713295154931957585031583822080015635399767353420294948353909840093796155614154245680335849385925193391234494831933765192040079897983921920558241788419676024701470198992515310323381172097955629049290437721416047232690933117653645641552628419485948344077879450841198177441308464583643223484045754034441933275202188643174362874214391748392658139838916448214601195094847300889998756007340443261266292411519982094644157344019485862714451766349974775747370150197151863185111525031725851338809910102204045750316582895179802818065778279045694536980964520260870698002138778638384613279711191131224070751485521720723927761643749503724133554730039531172084370749145351874313118089635517879654055498214703324610366744231404958734594564229577831883827478412697916608833905274545950758966638052768951923503012056221438200982522947667010122149929338759609740856132398219379406278765724547085158630425186276997315127501234205194140099722904956116719115465416629964010803030818485963344081666218536392961274557420281901613512224004664028468852324201312117389287778315979252334148992468755998426401424724152842968849123159924213559534079558965506294086724028117977562706096976755423761783418493339673592617926807229037794709037122124261330857652857895457717013052896246917194248922360295299230236001829472716476750602513866058936942202688533682518634055258236662265024250774079413493328650241951100794439375102708839909146372535421679617220454642273155488166367193243735487515630235637839228496385606017825597751894816271184465960458131379871420044007849112123571812621258356707454349813925235221185154013339525440173985240837550691656526595824089994968089336918718122743951000865910587585736720018809614554478349011636782824935478977829435134231042152661084881068820300664781528051796856141752289329550552292721394122926423602816665213498037865964587909166773274131658946502405903322022088115374328657100018133162019154342940829664754535449837096535017372259816581208328775999592918856581367472271082976797743038441748055183697337502452252273096752684742799988064684602424231047219801325029602035368911828047765534363850460136857999460046412174709375648131888385540948160962099571839047149194689448942235339472874161330364545100872674169782164475838486132101461124562840829209046808745429821069411879050149585791744659966603904018691509736489627643626840462839589387731370680851737124251820373377685826398879231322025011533378657826061351379643349206016913139971710903714552673810592877287741930553092254786712720503319585331922961482037472801995358698353999556834884297448083649082068411677821502531552929577992907360462458611689900629188238006840765974173986805218214838583141767217727711375403588491096512744259574313462247609990358262992373724228894352452166640054246002036840085456786840784428012901023253428479399261890950605755110521263989936682146190005443390177313907341998788053835826488460833948001822868969580668444433937674988595845130693637473097231958740299822117708157137317147768026098184394211834050089614622420668440425714678791049967894144712701152540862647089615532024175088000648895866774131661116573572965280962446073893450621666209750420543699390570879247421903044260385047324037980613451535051229109157347790687774656961798400852049060165814257208181715942285916638706785687652410733972702439979166746470720827629224253615407308657870555057601889083252215574610101944090138521902545514160218088591986023727348920684309094313110200730819788187655157969282099479896660220258636838586281070678010536176334518612960352956260834930253566019976360077068738616906162711695282525073376854366427711773929240771846042470381646120802122363045179120420413594967270714205335170717608808039529662066798710327565228204964807589743583518627355433367930143312165320088019752508000413773940521764356239767746301621238080288146866489774899849714686500510896123393626949378225804093291038786928551771083087951157250829786004261717513390185653891308776624395027705900768665306513821521855663049157215654255523097592765625549895559759152071863221478374758715746156945358020668991069158499901171134298166930014075814508772973428232934583093085196672869937249899478988822829837081409223124333976183678391355366636993059780889383606660685223596217970997177025371658951373866483212642747474113572064908733303467921420961377746044261738479686258806518250640288685025540949503570658618970261380833177652339193701234314232531903708931964278980777214223221090462350943387809790725597686276380810816598291670831397487447150368646811853392225607662865344686256568520008276633195397529596361000379130980225177646770627533277356273766259844089427145636741586862863988817011947521148776067669341745382577596754395694864568347110007049996329616147533260566569398638865834744410054914747047069206254396224284357102218056330368985175488780612187972475020040636161609103064723437161615877145325598028291950073541791464882912136811789798440473069471501393420886662215052748640351134757281976287251101181122142416510782480938215631815099901107723622491940765977952084667670692757717477103789153926976053342538262928715419897334486955077531505635779338596640972517778402085964869123613663775475749774500576998394971885225944736628820148330905125408250983852757027561748380696122175725629699220004335202300145658777267143254896964330912214591972080238544648447963978142676127472602867319052835978018763979284519918412658086376129609086391960233852722029524925403925490959280822588917237443942917199252829746226654857691846468177419368302120103308611528823058928536976565363715602701156973844745654518642018392170763921490666202741524893659611895949574543186137212176525949171456110920640432800224130784839168907080012497412510245405589229756615485929755329096605168072873841874052717383967910218582952738112219497641256556761000752259847693097701691760123031598122748563773699883623769230137901940875778735271550347964171653806736594071188103958958017147229920676260697190965707131893249002036287304634273757403260262193276384679057148431276959000559631253906839082360033511966779056139614061416996497708624318464192949193904849339854881365622253276334137289811251597856172824897130123583328125941525415946183236908685712749381805759390767122671375864542268351873005605752255760915946725155867446713153995535691354835990407901199656064887310392424344922848860892430663798756692986266797633290019109698562297084906290247896721878264942703745442279289871525605790686117919344701317358095787736272716543340397112804678133454046476227840821426944106924002838147724967559680264297811637831095958659170671585194977815688192483827880164545502525319970599218579945214568954504015095669738708890325104700384538334030286254435247741357889665266258816694470547207995564598941856111427804239773179320986414541537431828175190110743897082281101132529514449699697874498793045198715529350732835554440889237906220877706904390805416764232482616440724327830952380535447568624305988534721227178065631694979043740068408450764122012102578553026781393192257632891713076754125373543320771078848208280604374460076056881689797697404231672186550908026113743842367241067905929286771087722266684421816031418498933370621884516323062554114851874409975195023521381534465455868305716459781774125782015448688316599792418041282433678959033356133853968164474666720978382664919223706051947698016988338438936959754874197815090129689742488928229620527760846228657815064803440985117184213329604863124589179587494853437329032605011401513127388041779962681917210419043182554240320003710116871465820533076670042237871894230409749417560853827351000357120164226153618653812677471105971335112512551828358989296247753467133398967036425927754190630640203505954621175492065052365314288320100857643545591617598133218204912731997146832764080357126754213405019000201383393851551350465391391775073411815288576193628187792566901449424210836535057507522782421629499662095396187690584770262288004291981734467990079015984791060118444125577522806561603490127818354982942020887930663923953707116901103871064175460193552555758399178893411290742979473155016789137841263673531007268558441419307151876404585207458516870414180994992602145271115081440284642373634261145035460962351767824200296774769796263157362278570660463184178181229832556179450689087854493963587366021308574268097383658619067832318178286460619176384247757069297663961926290310495777668954781098178086449323398666734506212697419018636613290277901976705858646411607044490666594474697067399809968898952490499288983655906337608301335106979238821253840610965044574315787022944484522672490643065836034421004722556297286385570216958761396486961841571564018688006262171255292244686905614666844389553942327100652811113613641055780098349402933902601677221501535828926194135122640567440564848577899561496818111076207083809814877491455848722472127506821062965530301271440109269751136324012205205084052569317648550651640877842217079481484483890358803465175832261740566014411858846886109165143098216989417830839187388856063864053738245531100746834366528877122187477141826080359863464292702823499700179811968862289690434244758516086405108883791082841825659164842398485276639840627696251816941625354786201520458056065976751150758014737598741179389925981826309837253389621299585184177896033852123290402891513610845289963310041614280360479450108316461865553346657485935441762124204088498775996510529976110519984098200378491998232899007643032811992332795200939379895657528637953978862862203252709375820497894247199162041972559485786057278472812132364416034849481050274263767125157202725277234070651685567214991793333738696077507754665422248368902801836962676856288146062356353732841725134261250116395960033925781221568142840242725670313791930868111996481286166354130748244033894954840777436692777613208901498556142067476402276291737881286242288402733968057028808836107765580615066495754873496390117123650165717258794568116029568407987215127937894357601326556499342940393366403578636650819965934235108572779031481240809687529515418198196914756727711818666811596768672879486219952056806311514815742976390122794155516845835101740410209392709958790387268630467031265208528041662130777340056204383978882146282321813028059916745474759418423365997625419058090530606558162850277442383488760041277538636780856640839525246206293083935350545171207986406067282855787427880398132254937849403587665738815715886239548152713961029025339703982234030903974275225341523981004336564411545195126996507633207956785910729610511146913846124485787946683279037258183421293793500738139528169535216337867741479688654296318672642482042959853113391357200946283254799808204576982960846942752830404745816797123389546891777139406520494804886094399591692733217677487327902680536737204021651359682215257345920226006866068375211885044314439767771464390619189825595801950014200305540081506520826024510369558106744832301968276660658194332669098531919845241772506982184190136888416972110906032984116683417504174787635085155088612934346813913301123631004180682135231879588078473040165459073814834514295151452179442789444397029734843607513523994715877004676182326533534857861461258450860366780019482952638565559419334224113220702917954184547589227914481514457713351766537383401855324572923179773868258805413758319056287613825489191575903146717463509793915745294348479611806851088099533010837701851860831938392837963145910336665629600682612747506523204056054773901389162163138683167070843178188039825543307880385885958221034355528575568435847627773743123277128320518295994383464923823584178090141637156036500081222947111473477735043198355460123246654859829461379384512232368406938254753054037246724471085134479677293870732801937690644582919931716063150366127309281554947725469866681322728024320100396201623797651528280996610011401462954085739714562866387360463306502097708457268990252273012406364398620273759970435582956043256576562979901377487525615739922625187381885540762563883377831168098625711710316983864983509098892389380295277997393086563925762730732684048629120515971214578899207136990949415240004277792129131897946963388917653041721998985098516319589195225265558045884284806768402897822140675635561823178476361451411091446174918399783478850650076886525632082004605402057272539789902203791857940052953111746498129334875080749697236912656627038532244086156124495225530259810929170959027664181767534260069375581857891343852025973007813607840915662217266273854770134025398816994121665305117397125373536331989821836319287834691884929955513905329452414739147309442549844248796647639570374538919769514360963322908193462186253532046005114016681362665225532399691083660560252890962164649720198694853170103650377220862953583129380277551080635650443154264529529644912028750620012826980516503931890438365550088950130500037830407594992113777485229253853032673206426966342974114272821067363231378794317191760100038922556126869601459231202795230314456686659486290466782021954199974635228271135790394203379956086893479103987583863167500667823806975503399000775623462038329953407129972351002320551002470505954723017749193860849230346990070868237899128179971144416746074147282826198138332980973371376236678630386122140248869980481267640859171809135198392056351482725732197749931158907067923178267620200209219652611661472644994196657886163244768090656718397091437579244297892206614326946982954618649317934879392147933897800419552113594008124960499943470049670637314624226757553390656885060771746566971103504322396783067853678117015808649196407486153595166581116697397579583971763012016048034438169161714963020316831135843698930603098704129994508064573933444184496858753359281991047090262603057542606133246769142162008306717353149440446194171951678017589604139009338102259916860505568193626379461850914313061545252800062928216894762615727439304740670056787282600928283873651951700570778946327044725040657384034970062845659260022720142810339223074060495519213435342857587645667272709811702381694565846193837858003250556989253334921676935977612035404410482842277524551367665425982540985210575190553853483759780386360359726140285756348411230043291618776863090481542611163714729307480317703451003287762237273134719570842294061919554541413706368830858930342390125941302017444351135654897100202901012568782029145165402797388503354527608838004642220230383330817292046072730940855461464824263641945082042021852264360722547120465869531327566141957742519220100699744096446361935257360894109485281366538555728573060854009331855259220347777159466295849042172721010497877443616856857216012991417305026823399270540251782906025343180132814195648537981190507457937334059244941610490140515120084238028381613725162964443288921161032569526965326674430688148548116916139729198789839765758346143047105937015064746714600780961792977381649753274989224089135616511001080063692616299125499093186912495630159053418019773335625699162444344146224392422126102696849151543174079030746920802859373635920295255024053228325099092274078891215614096352920319430897943552584162041340373118000999228362879447203710155234136186542509729734779840153076983970880970547520893480334003517878077527785366587877516840384011331877374961798095054500230665403874689508210798500039227258334746999240007168639743885042977174792354565998066403325372444841402301648828301915167010640018055768751060160368708142811255812211740191057161078337469424148745766274001193729329508598114826287545212414963758313235996751727852009094074739499478143891708911364990628837708376660346562961625703312371744022181952844532123448511837766421983046251392836635408124494858651765143673276440068036752868488600543096470989920837315136923225223811543343264010403379400489833180820279990470895277659170252506754903556110389604138850942037988724692591869157226685242391478026104414776460330758022409862705937273911180331235755436694382035817680219297185138449884942923701498635817180526342741511172046898613936294593515423129277012522432128527954381242071662565585372305894428051784558120434532780034952772223897052259317033734082613965467261227241785779007539573716330163560723798901448820095102550337947613915916467032363688303247776304968679610784944729740194602534727838915692154369851556450262874454239086434279754550519273961659260085789231483432655759939975877585507993066544652832302774531610969414071699828967050498315354649099761179943300961879080245658404227058610869833173429625465180110096398275276752476897579250674463081126912475032583079597392303660535795639577730099439895975719359384276457306254320314983904208861653128054009499602883326447006354290495905077178940064275651675382125161412181579165217556403791315527158634117566913000458993508112163139480564307260349152264319023867142227299827461362174344803030704807165108372124221236369635443141318748191478332084177837829659534206601114391581119270340635998577225851571504699845192102949593641698566543700775616968416838992534028130694328764845875319363704352891258097739192581166162694506804309206871771248636569416229236261502120655452653062767218028030837358850644795773625205724077814505411016795317980778836028702397552805832434817914004916029198060273858281662995670764099211071651208289333674743010882309467798041905773868002077693709739248871624207341086331792681305963134109372788355112762168984200488383614473531199094088342976064353269543441137507821586095580792322474966772857154290216318829137932147025053139375932616011748470743654461409853670348620950184110491439173624705496714791673535264612821606151004620334906997543361784686319428911510046912314603215117565212791115986613624759500613001801808617404037965495035819766976756461181052930503920903676755355974977071002889501142271015325019442685423635672358839338636009318147121022781226212812422783306465515268093979534091326565642562536505213831774997566839302526121734768189826975444882123091353046236572459216522406449354168575234077080983087041540691872771725498491811349633828637040929348774939542512008068650935196972682771245200258751603261798382689641962441118061149745427908915380548567078970208705816189005955436095304273246735292378776593877340360875659767930398220890982811573397831009989370987684172454626460401730117170945053600447871571065185996235977201525861580543536097860444308991561830234688026857807127687365229229239308723810790066623458658036997102731597675104377398265833047944071899580559898839716039685678005139862004026065926132744374908578070309985631012002329675305475307936034984863396814692019052327751515203512663719567899501903897640521393879573092817323022433268042587018472083093165341402062351728246890657264690357703888107603602835702372977175892351012464679920100243443207478494181652707990660470265015726474659601130079045986025412295681340161562653562947963321570706602208128133544023465203876459717579820815226690345140765589872058024231286215079067320635014311028502540951906587398184040532848104216104471886480966376238133615671275504716263853549888985574251656279177698673956365065138900737787898369435957342960125992782942534218957044162478877101544912107595074557988285861379008364928920300154086377174696568959110705567132505990840166314585232956071578978243033219964605956272774787017413666332339740505244062056767489901962000057701068366806911058337355433576541208845142551043111701323875200845064797996162793872324774908212215695979733608885833431896597969828684695793616323606343946221627609200181426237217301329742125596488836499973335208689798545628274560199960224327181166711504889464971781978355917249606728721623944188959904981736947893631101974290289980920715217971503279943468691485143976827495553477161438443654385363600226183487202719768073891101961410357617298512149395146697622093023019944439449156093282421081486438065294513566768701138221412379638235864120929532833387069880464847273119384958487774767226343219218935484110349566934389390062193679590612978867722533831032782381991552476768376240630941827897871628051883693670329429827135346490530358114154181762555878433565184520676929608474863390131565347844092169615838318954638037615628942418824107502386560965464645838162397084647102208368702194802978660520810719102616449807851664218976511234380721852389338686503400212550554700334020535400252679744948595594286707639243369600818338737177614198815778537159474083440231440917994732918949284145647775088157156847442575881322562803543659921621718462331263291629744814645294928118159792177392275406169738189616622196739682952761182177751315017801147396921653188223868916210647699402126841833124661887315954490661820166209690090326045887620741287127781232337702094977744065577185969142699200514802479328977572269757335543997324100245970770524290795885653689135722184183861819422480989650988825224736168724982031788982463881663496119298633511730183773230671220303631755246590462825464505802670468926088946861673822851724076835300947644013809494062641212344221520569340467485270353607460906842037562637199620186602444075738755222521106667838869698434760853265236236368740379802001460291201094528017586704567676090209238549151084163331912638430387495429638982951811241481228996869870209814768521149170688888647749012412124997912444590685318218684811833047514737400215125510490330465055733051425241153789906088922498227761479420102167604520865975294865692121362504761268756213406623407239907783361377626823953490360822981671154132714605953689042238706161209789344195315428416904656314153766798580817552204712782518319726271145536413267953288915248008146016528382233390807292459227754977875689402882093518883501325381461014683508761397844075365940647400952667024404115610730009408577625830344496303279270603115947140631246660983432910907336796982845768953042605842020962303411744165572909642957348255627452894941856489448846610768812440556989719611357070704164930583809243920020676540040854403269164191646558574689302171694544349562274232271881527593984415697278962354708514417094044711902455011790172534199668981665642116400664501906568968137771959722626255679489556355295355887432702728587596783908082470384436167503888434661703090075285045642910533538598233463502612791733060370072489457891561784766387526258995220859673079838518009825618682105960148399660501551634767843948825981695653065679541730347307321662369968259124773711699766015433524444146262693102703779291788902767298647994350976080792121601077271603563118435528421874790432820980028646391886352552989563923339836332556669477052059763597992280108633642028798920151631759511938892765582428992562463981461678892400451851963516397881218910110352826633062295611226866687651959716538852181613948970088232177285301337635522879644500581257333896687504655632981609403872594691883150404596925070640913220954627532461452623818363325711245936247758472177951355252290333178836097922948327361178623355553687487231681759946895775444885183756846637747308248521123675731497268717218970024528548842729645688631958610333326431983647349775954389773536964827741715006984097887755312984439077691674703607412248590557526709778320048852060444727615056002761015004029282780358707368161715776648700127888032184053843007467084602275635391207129681271260124366216505692836020977284843115425811648996124409160510264593067569742413672141215395545856318897071330125429108986576304070458351127428667809243001410249033257856145172828371226621229791253719628123012874193417512259274086378146304126227079114291028233973020312227473278078184647405895849942109292483876055641284784615089155629315502404543355085246849612501177578509649246078726020919333106425492782877064264967147273029409207880105231994060683858232641112952125683884313643089701605854140238952546960594483553211433373538380915126040844551582157798960857488388578614840389546961977678079137869251398960196472104517039765451321488816712008096075226559109294370838271566440235168068549578435509601921787094722993862273419885123739941369991373335760245022120621406547680967347268605255312303173799861143152862043918171878563816402076536707135208623194010717915070096287969230757230442228973494700996884687165153286609160868684936452686524076235073461944642004771479048442638321534701095543429480082486569951113307344677745068818449705371481577171195640132622062073192249282480141579461246427319637999365670454009289079673439870250864563483683448083728644527255824683100708986117916894501506294544065454831289654079056662419283955319163504125018900725797955598696457963548875054059004140212577040066585731618368573393614618335189486289367112138794638832384795746931441192733445139866004390408253642753624956346616983636975470784187845396074138745590802119211339836269269515610553286543394185086717519063489836285462263556761233678257341493778958258621083112930007489045662618043321895310817485038654586541815727557072442675912934805802335339243762633367775588255578429256289851197078747008302867121391305017067295643105405685422889209933001704399924979064325214537652034078762173046116475220854645593886243005197383891413819883912011536172619291728895415705020244838824429790539143198986560831701527439264139935534556232955299121607185926248188726108417633624503357599183501227603695777100933423082249691481640345423306716544683304258521875100413220186887533015967676657126599502778230457388523301611308527385160012948109900662744337310284708187315713736115374288611230328727031024500080016708309856172637893749648872303502950598509656728742226651201597144298639426491538995632246716764444022835578973159544708291542557331910379090142692018291799464155484325043308192105739795299723569239058551833320810712773287879447468269315881959476479450251025854818088040066350338561346900967573977796521778768855529172765748000407739551862853374758040632143472581366084645980666847742373645210353621055053378735030151500273847475204518206539144762885755790404191972549470630690991877623233989743725628366312156222851229207853566383572998335097564101892346898803901686383345929946912660453977815917080420281642247326158598999748189315903066804551029895446536335773251329638913467647701985135390022752446928410466951916989738002092074404740755648670258695718154682811672527268134251590901485604809059606428210332854193108088228595678788166210786170080066031441822548566719225403773416128819100325608549471363887969914256672961535687195318407682085681426403938509797654283605551844147193403523407870953758181223465935998158185851202696973520622730689253770875253534035133283950694556019014375643464386420246938321596305714283368111487023341676242131907190249704313253718730391126176726078327979598716161143629910917421797526922180066000901455394958805228653222980839944944191035931376487268530878203994693444791542833465472069754521617558631436239985326698480794989703085212143965186309069098293834707688851994526817707588042014553015702919431888845659493032401946592195029832962489900125783044246967785531548291044753709520136303288006710243679699424639281427517969144153048224567099805035984564925014459763779366274009435660314514555944953333496755248220001962454523942873533937580062168704464075041241996727668775455623820663537650665051617286441609881485367678555708376052722319237867448250383984219570914006567478009550940814525668044158662903287390660543399230801411013875918208434161014034306007850464089195988977019996205197521697708494621920194172561182033638937545905647538388821173988934152235472295860854255149613269104540177533789684389492748999376896680250834679806007391348240518602489718463701224777196020036050887804618690545803752081099882471371206236502638778515550928714478391463262963939915102866477745414571735426869408550459000434313281837837021217666522167088295053222901879339866512643092318611147030372635194051803037614342872073122264388512866996962984417163923541445011634401525840588627852901051891714553063582140977549771810519393112174256283774958837483236973717141025490436685061944635779757834650707280510318196133135802287420935276896522508685060563021089852264042385087996917585238417071551090793884230769925431907054046648397904446432183276125257190075901507352016899141971326940869125682950226147286619095075140332519232904340584159555059775340404048339981668248130193356695798402926643480907519747898264599358616998867530062406011564453960156909237260612118817021594402966223465876678739623082419250455116238764378331090820192818058017525150572768599064144078246745622557677660020702692032623943717222412275390978422321930584318980806325942647902488254744238261207713432740038067599361003162509726006726417447243032633183185005818053230987383135331168309365793344997354175475043063026184463253852605034769052437340231120891597117392776614652714734425861468043441472686940951488526633727764307978039062445156193090793194257788588956747137343292042560524260959734863324376697787590675856478379373210683864554759926349676065113377484094102006659015811039280864833604631938980881043988438746784411305214165700523934673195960925587858093550801771691256199347831957235439569074052658799672514497637989509773901007335809419146036413619689257191823718509109102427042840588582669312244250606118334659431570524422422094771750122276413827761993889890287721945599213119252855397052234461009301505358164143075650380206833545036540488209786299322235940028560345341288271039177456445206639406548157981217958329568937802952380198712560375947444533347591601456811624956167914664679955841963726265317508024007693043219057236098688675508769941903263115557718667192416601325774342798098697437680130274181731527674305738205384041747462909461392136863636269969826714648638959883022210021139424332999321923507677998753755698678528977559626530108231170468222982510585882529308990378508208543510492198492374325766689092235454125304248952102857322305273559300728973181917623523016038709427484254502743967178431077377379331192473553259219591964012286042799451992609946234155806404335578964937254032001875167969811011864040783648959023970996393530090200049636146301189169035228792111703438996755568350697952624774858424571483459260038417541245357024772611419366985085003283181584243186929039438680133284023636303421151450472270963545335484929446879092207997643790493760596918562429757309759169082253083687795303485339799768942365785842181313734871960611536399147580327891394254046732781658011744445545343829958733877186637258856084387328627642723395058358392934572211027413722661956669913440303478290194448368175298973981491412956848192011403444241309314238921549638742660179844591155344997895173000417465144441824822956893214553417521077644864872836823019807466221486410723526888409167646669588112813857786001255993973104693561162417437274022194750625854020247222445089467798432146871380159783294096279161101493575693791933637654573106325119782873735137458965600562489435667828200805176422861978125198168225426462580897919958136661699449245187291013606598825332780202631814234783440206938195483219095153480450174171175106964860168717033110846528788081012327591932608142195953076899685728460551004264085093888501659112296740634109953012447251491476649526846729863265028844341744675947601603336893183942192888927100658213396758051235180123917464193308583558903670707048374817016805318680744356758897833396042106813959727089532120645964440702495663001000596832534271994665336953988654964696271515223120623073204881703220631039568736561890712030174805530009749511939198805755589880369809963215727028365592107227321208868214731224654898416548364289983665236793488926005601119118086104458168042086605670429198824383847808597550247900945925708065934160004064209162880663664075151347130167070020534354286282890488062394366764158726441293178512694064395460619659178727739598298011546710541118113847342765362903743935639791565359602245315304208201767390607321125464692736037072029638593790221901381227562725558706272434251404382872742508169132848211610487496461832272397218803076772846346343944231795259754133328495612090909351296663903273244610768010404060628298624196773990760830039043714171837013178879958549721986447622875377466940932358807163496717771521551991589895520038024745415655885606276657791923913527921253564358972929252238039914964644606786827114104183916014216709628695148220901344074326669605187086567704098790983911555875791398782993696822512928011414022601000510016365219753143021571926359354107764918943933634725047310034279452177336734871290662816509975917198017776828800932819886182887307545000683415724733346326415506131070514627013045487832711521817953696702545665099373431266916666190599193971392298670289134161941628163532348855079424428766985476329767278352827373539217589962364375620601194290831262534151645188078802628510745634255087162850371999959313616227603695937220930127071551615546684251677963300758643121498688375992674036261338153910313205247477450906932349642047539749465213775623139650514324213691103782346746209792037760919232176011732028525231502845732767077565179198266916194094819829628704783677814906225152158156069163685849454886934091457899947807666969430614848495541191914343222153780336452962131723961033504960312999966493780286258656125852076377778072691074715129617693137281143249177943212754151241806292459328600063272966114904926651214045803261400270439900577515496512566220257950177095435268636530279878446584576588256215443908666783232314362469039480952168461419093301395133407544266252960327149429749136665390787362315272682021266669545829920286073860422246416251890212895611918740139743749986345424854101162258795788105783657440801934492695357692366484055480265273295841373259572172660431683070692333489629914389386363256989156668535469231542159575550491876753729122492082845369174372975895385242488430338414400184573844744884391670677691498391304318122603185357063603597677461823099795280441156138023730762410475952404246994572712242567574808748884720152754659377033282647996671308809206347111630127681063171585182927471241498453028886034836601815141685812162187209657486825525006778251108276932041963865758201980086169763531558339863291166585451157625908200831963662553910276095040911430790597026188718636616840237922033607623857644820958874295536528165394527504953961491949659773498548706617348154806105161094924892997298786589724754752825448347792824519515943836111666983853242099084821636620897418072366935856724685167376900204774000363789120966860206326346941043471290184803211737138434313975879214833797378468495657665530091302782070801681684335497325604455851086161721426258640652417170766045260655270977700458356679805527841363486486240051902037435340630776863243940922981256024347659383755637026189991461450508361199530088630036574762494994412448555985323706398013180583132460533853739025303004305618657433869948328025304902513368448345761473693217167325943303248596679308414028134571600499213871612971885388673462616300802642119112534008749899208996242303589535473971762364813710127680445089551847664139762681473350624210047794828493635280490223942834343115781427021999027588708638927984089017095766004142523825443795150325928545198823926381546079441082686580572159065630583649014798729984365637788642454943618338016275303785370408187142524114851427213588659424326808947380233937510447105162826606372343647317914464639769742779808558797801736743663371642256987553615266089887298585591794088683528472224494224746587800432979243614287684396011944060811463724561555010208649611187697129733506767947047712673941641258269711128140132389396842378607243255586617092468885144155697528331937526059714527633049827177486398886420300965290154020958798023627696162954486073526666649868482547501024774505078655011378147412165551284978447358150530755712367646487795960404850514168323056417805708708854843177319088975498181012591823103396212671335385808824301700985908236548011473450304795527874496888706869050171078577242553573515814187083090227413036540039495027067064398340734480818942771929731887965959498052086314793330742420224219450875257467308792907280180379635321869319394439896649532479549539807142881289618546444421024831731867888283567012547080451493461852075584882066961558638346004419616429322815924331656956985239635422391830211230525183378016858014454362968443048095684904167209565396047468421727620428083162310133340131427889483456639273600048942378873359652739874098337241952745726223332480117795627566654861132555007267027008308400311446650227129002856550434284855499809022810803454249913893600570697483414442145212995184137781034763413693466512698033220700186094894371725000771725896055605571343958169768521200138881542164812757003702954620485859722333545419547102467454092015659549796239070073537913567321533405678879348462129263705940602564192619289618430645627991522341062708095622404347198523699791948433184121699783846643337757291532563519258613191178541838363620367564518238168834460557015670320687991226182524335838886195026406585597448571182564144219400392014240053827608823429445016948543674765829501786967348239401266109672576166820394595473614831590057636440021155919668285846066273255794058188992150383714504644088136779881574274775922210186262474113537154875779306921081045272605089914923274290005352254307524294396556339232121095538725547082397144791631092978431714622803803120472476254717053071977708997611256059816790881141050513622471155254912370232258091737039781166582818363162600576003445215452863811977352889687338520846802404165563298982531461801586981246299886547539198819630215984197959630880559349660748004233593141098663778909515932205063482934630536553445592945374844254145406605946180941044345365725034097029289921652451671211306500376525914490950313702321361007767631918892316805518370821027435043208341366928519187057361885256091172582159334726122032827175991941188663185634672922947416383816550495528174633517213299196354971717705801023768608271900214366204427087398066252176692134700314874672534938352500996170902306755879706952903372624440341627822774822764563281390212537610248102530595193464640815142559439831641794748166548232948978399169325564668541622938478299891311759825380867119161765920891608365764381698436346080717894276824795338911565370724957039287242301167854114312288776052954077919226718926654510946265600112158710805013345191360763354148194083062637880887980379104675638939351371252535911823199953319361293995909926594868585340664073094019944095429864842670805823667291258511143753930031807325683292399232885056917567753310435234505437611548372935322831056594331621390692392002846046640417416128291486857120355675992764833243071393010320050445499721701357525391296195581420976572341287916536182030474148087248599520033596422123403802789286138419268383860950168357129688306589775960976929640403587679190146478324201516465973837576963688176977092964098083065269484665360581321719844063443022280647080453607239762899603665371471568035153376264727816452405551000771127345771178801186773958515258327157812265440414559335019262099797411965036564926556034855472326154297789646613938905300856321910114605396915195351773661964887071842009432570041785559392873315828354265781682633880020587344799054647685165415668877402600294899486575156417031874640409817936873210552218881648704609660219477507014218376385613101496380415742843377837785676722165072022273429143154493074414604434847024120923223771937806299100912666134969236537441875149926994972720814442017876381629060545240764915236533403596203588606787735569453659327984177013499856667702018652177966483578375203841926018388190289960710939111161540474266612708719398028096645672708491662084375336716883575531498213945298079695440616804314473137537017455091145915067953109151277827217693525506735497659824830187754629166772985376190538771839018757530046426999449209450727624861370261848532026731636582818076062134425587886166316340918349218642259235635857727245003336969807003300870956785992136000231641264187648486430907457604890383217111966418862992210689045796110969326007892190652978676808976754711957583303278106991631888661826618146114033208227343768710817716543148849149359847151727479198569441615777702100285464982288686676949064884810195737071038343822200707619087105200246845830801474975395086798599646103068246370767477492069428888622556355892535017754863904950719146698204524536054546398029943065115777401468747796149455325454507641785425432029694533215712207020137563179180055263317870077327167531417779311517783477541667234348899689785115544337842925011576672249619707664958495133158620982084265064382070860799063141079426963414774684929548382928777459345504617121571793287853979592472885955539693935837770669582021688870151112666370636674971604885734291963819458627873818736277784522757040967450679891162191374823039775520279057149432366413431780769894794303614333224556250258825343270733530262819412780034066677648476336737069670219455454822639901605940519734500170824088150907891999072687309320861591553322645525979807846742486798200232971135464801542319623978322558674286422416260304806269921875074690256843239358848780993027978328768269831959970884565897433915809712201339115521740124682853256667102351692867332589785512804612569464785272015935276555438455737325045512618916079441472945601301910200454984549601151544944094783068342196466588929805473916406065379164879024764100812136304636497058164952214912784012221041164546876512213913423130951404813875922178444169729834873834217198005102875359944943248016399395243868472932382799687551801887842530419846496521892999561366568618923454905735075291456572472433228185550249000917829685093716032150008113817283782491536856573430961709182529254035297182274689861067397929720197341728775623920329790812737897332427523339094027211194653570393951751451221679145450942079408376513734525069312983347295393595846599018031946670344007897848511860803577691214909795627384577546470744892939746374620274776339828933684428064315562081072424717462352645439094481548085341813765803271496886138880744636205195524946683429892370379195494336057318295002124346578570192857385450000231815696142973424656052293779123623747422308382850470747641845100003205621132595864288812094153932027619847081770172689871578995221136236188629243812690826312954552420206938783235887167034528424220173993060043316315952240224910433803542263361531006654858637639124555793330447533468373986020469159928015519393400793362670594103429916838573797768452247816586064667468183916693272557107793669638281827260330585829484991477439015525075303938160579217351640189342011557184122997265119007600273906896483010747347487609774903405091264195389396735605657147100377792401735517180300526982667425757252331181945073744803000668607014225977507032756144602261361341351525293250270411288385011442439371927582132898167226760264948991600041024111911896421301369506137417922484969122904430992607018442063861943534307649874141950003018137473428528842897651378358413306497171793515783808589067774450264144273570369791370865222390410094571108636900485423320145650604676550765608489100869396519927264925385985907725071166042779903662907281243553226555890266082180675833353766219513302709137692297257761187510140168006186097889438152683944364955108837285275815063255705327200868608790664022914803626645825654008820948750255949694258071936881828705486126146557843904601051856880855289353883889533726849703585711070029780315373953352270137715355027618957255857347946777884746806097967321851825092846269933293728213612342310597209652183073728216705936412721090735345531214335931539808097926581290856217624508104919882719565642077220224716169053222929242508801626481746210999428131955991949117743391809691544006061891953575529551581523226777293533922045570450329184230335101957201548690548921679888189231207907930788596590666460180198305385997663531620858105032031708322616653134034462339622924271586600195222041822968087299987230041828969203884113719998177347823341741173796668522242573147171877710569299626497583318805187393136269176080961474204502155843897383765183914464243709196032298192605474885516260249926492670594070868244005778908162724997560898410689317589975572381291845059479759883001246739927926299939657072269042943618645276237124819645441279917781745162695921313702068729358390313441227536545935010369113981948919146307679622802292138937010919872941021909520580577342703058837733673980211318782971592367212538680645551376550537331776407054073023620397239732120947356647558458424698508667411294580557795448776961928995520113702534700042513263705878575550122273764082227341149472685873319164445338513804511949878554964891358844273512376008852620443475205379045315141192270445404584950179023903887084384825247013247790743389252474461155148116721200009411745581622117104641899552657065222530166703492244795634977881989976679030554643410235988093804533329370503185669309858521883158187251341123444801547330457090085484415119374978836573217607208406024240258737840615154255678611572400481795351078132061568925485384631231682070816497360135376068386271366207888320284891001300693139134292014845710349778128484262100302679346185177851502246028911939153362027387950323196534233595045179429889681046559136976288480347105770719029394827700453689883643085714139912909461955488921817567083455669058360352467365094231545974298890879166382458264294194974110075429195300122672153915731372959839447360798225172858329265070065140251388121512645355791442001260247448164540248453979626421575286086486343861272665657985021107441945605112671925071670209497036068925873374306757134824354699988406351621395913925131165146541035415085022243168246031656985222591165365447636361226307289459232718471073979735667384879299090290655259179432613107516789842795498586228493474461977971661037821346674822768702177227474411280254388641335728731695377764527747930348260507618409601782210813841109774849059478345703258393452913495806305288655623018908676961615756501946647504614123033196045313499851781878587603952198985861390487972746364382364539881483405063571216205102269710082633346225695528750593948427086299288528362301680284359473089150577122159679418165695934913554196377427462860441442683595332970455083252663404492876019233390008107804414427631182077207714855554916545447943798445185116400371102316165560552532205097321956817403537695041865592382771979935226617278859452416873063384843772515972687289111933464234788623451143240270798876111961084221484837300269645344363761359013839000520595725809787358437751828738336600287634053868745158194979332458151222247605300897672211416777985856722566618749548499372419523928123456325113180204979510765922770672392747573821221278145468003928897867476680826536868297370044372056991605534358151270013714270727586076761041363604454137974763403771191713270114171537524223323858971692111295640218190081545166876427074785535873450353784308388747839223525317303917886080147828494345029736175792693982513665209616796578080909824372826720141435941961190054623614768257664361798681423190752095699044432724551726760907609537243091549744914639851211782991807525478799807062227028531802188090932666442192458815087935302501499904906594087208097490315382974202987704540377001436537140993558419049318248264290822715838771218951654092065076140074456822984459462778357628370453774793615344149454947847676126658814134630604518845443109986136767944947931645114152655927073140670616755413685812559361347169440248300976279122115991535164400501360734421655630820021269868826175345409337553545994446880538998424062850479548300240160541745180701075800165669762253727885006310746497394179046076975593814857825994735419394371849159571218346242304252995062770436234751703028651945835614989984241254836164687102957245233587250429654901379073564447854316894831664035776608908167600266003434077914546924865275904976747105719043573920246886659682431379313388983619418460952691644552726228677610546625096107467421140158824292575925269879203308775401202062758970620128180354058557981354620040048231142552458841683387998354821733381927232818715540537269746481614665600624478500287538353083363771230339887546889779108852758232661171227163573400205977228980152710980180477356316050395662348914923515223330132669098120303772235185147296108943997065768493579195050301641640997202561439878048018213608184140171454257942813104693812409048422060430262214217146413557996953062238039235682771129221092293535526947610461314914104859263630289772537769439050414140210490800273048173904264041667546558050022041350308639861387979886354540255596270998938683614547800713283443136097381808044870732881910189802967075981550032234534707686592621150078289860540718771422895712282333144396135363885940598181297583024931727713165251835523900478363745390935984230347615768384084463066391304062436695895937962331527147334986319771375709775818668594873179921973046475270284148259952104527055346483898931937622981733302476345659768023365678905928755627215984726555591698528581333226805887935884179685900743458173630377885452822923621596613145024749385555471297180437978799656973453400683547027701541290706691830885793279185470740981029849497521197963227322029635827784787377682361317593418706775174455329562510687124553485850850157659842337554339792781868194850472716736126854182260322454689119456219629672992881548672846622112586417908373229534668270720012046103961122509811782222275186854268557282728519513186694971545833669002954198728398785681690512998334272766419422113627476800725260947156875121874724309887868113620066040007326813001633577151784058618636524649952382183504424931432138260683892849694827671267410569947354183755445965585864324370061768808335502192235036008617890625422462893187403012865345849365711165331543310070735140285452408867201276604048725914256303501387496900141539581178629361370508568454864992235289435522877684182865617486321613647519597079158308214493575296665735534066776531553695987595758325561021227391089476292108069721562430861291068956595999469249106048905516736113373760263751698930743558780013734499494563960755289570520980649886046465847304388279346398722607187698680860332187176931052758851977467737985582469136482902798726125530792068226254745361877761794658952343304208375527654509725537244847995119278131487367938219830793035224692863045328784907164883054655583038030258906212818711509016789051849302768840655036004430845001478608939537822472746419278761366906538766459302784812211597625983403605327930629200416079497247234403356493825616432385391811631228730842754392503967942445080307450806628887941564591427686889840217725405749495193060303137994807856150195878249193254601471078760631277144344604047042490408423537005791154016503206790445003336864368368024684733219892978642847613745695463785453547247804289440747168344086046020542709551279018670126424125029644559004204752301662026901600103227046686064721201626653033493545487949972509138827349291184608491910803927192118050831565586943312415031436445840519003939226177335082240535770558643502267245941751868076450954081766277678100462787324427265611943124356127259526968088814580066217893194161028129275479688674391125620720327246233398779846580023041349605809318600261810129125518313878619920302718128887387950401932608481822533780558490618944519067753038216518497425106916455612728889381500942149328139663655942706884407081097166454658605015919190906294200692976873858498916516961630398643745031636782597320325776655649755422494155498382832546758989237395398090746472865576231124979217639211591790962996415667159715915467775324322318421822916485977074159245118806470117497834279381416344849131246597483107206905524390622938417969985630623310340865165732875730675551048348395798288653421706236893498585203619771145862312172924306720304273817846876239143804425515856116071801562268093482502062112292758046847633405154171421409775572441073659212431030039979831383109837671171884260793983054677190166762439534695187646152784835138398329264678283437335594632653188451810148753338938057668420614986456657630797521708124274084966480655878424783968168823787160872296427923751298180406676678409659408709521408600252086640440471074241049984548529257890421674070432402820769633829688325928416738933728484962895479499261059067035907187352800701713726312121195802461507717558278365896761831147142147767124514934141149576706057972043601300912895080432903242899947026947640398988954638886824975091914857493637165945465343535106277443390782304937800980360661081745731865999514836777389007527438990652844354006923550832151184438105008930254838662876944295585109568567391664851412951587908013353541920020074685340204736172232968619048830563476445933643255996532252094085034644346657268993655372341338030022241251625426497067982733864767702434364412582792930154360199934616298417187755695760825012544418747037392872762609369280388456646728524287799018128037265983622902281608129995844208890263873444320319023801679806600753582578893974652835146047462284229208360162531850870658582216700000008380460471157664825464086889469862660206088714123993217714061615718793716861035198740378317158620252845596878014211670797959620670163371342635772613146586399941987477528645350407355291009268225083982876246469565608603338247778280280026014238661249769688889581258402825697802972343405710901112723391073423286122679725023432950630755321613921955256871740606930277366305218163863109968761713241395297963934943847981256838995689281212173151257041314920075242453744981690479163281704885336885047757250356372906759881345464233781159246085099771078425120425934095023098396137784664579648827816783530263879171334590894485473750431355992988994110998495954619715894559430345014716964827592324547679710271796934213223110052174775563944215155617537333565272597322110323484086497629935192246611869728117407213596920968796342365299293722483758684710363477755008767416017488450756487040372103078771715123796557711322519231221525307951301460200605355392727175906608267094311016597648556865030927458529793797194457529848306517487149702454306718455105264469656855407906481323829141482878097462613366206554470424964672429498652164485851010214539663369128245883662172274627359313633543641622606656070986097622366487136863806488089260670835916955889326203408800288959895069783945139632465065738745461118758232619224090801031966904564729755100515873983896776290146701054726275490680575210915416225592209130299664730302917562109225413384216942723869679005893114731891643289420933200884504778291517222492796373250379638929587793132174238567998361978200207000381164086567083646992872735744505813657597135634202894492658828481772517803854684973398225322052993474237573283422366307669261282814258836885658952546436491783730660468504842964423102951417896473902510496234233429066189910735992533578266337723710579534488250855937810482696553432853809726795018504560267227854676605945792951553075986699570340333664401518901880325955926941471028879606961692081697868802970253672310815543707564264634063095372820717725155287299718081193108982902728325412909931971783840741578713910088212035955557790830991538066328178924596437689125239448373744608109175805246560801419408157914076543199607040564972783049862701812880781523720210084604152648989084208373280630826219314047569841107854305477279895056945126147367851148427120440318222660381049742159949367012794360533957117303232206268364041466802015236315417802382678597493227395902064431703035707367205727087457613494330537257381882851720814471064903525608542843398066881265475937897436513667438356318526206749149391748780409089668670544468033596601261747061582949708029251708678112777544735513956538774864097401091770830038534308147722579474979661779490106958362085515464154277322761675029462541007591462005426128720177328656106808176258301866044273345163952270201065184535068041344299171423500328675453445822679243773996917015828644326929085125776491587003006204120475587645126344318844942189089882963916868883641941970473890301525584163794160048619261238792398315727897980734326292844956590411665761309880641626108227189680705376219281606598785969430767265229186564195110290498522443642354866427853290687659613701083273706329956985872886337448110003394509750784417905260068031862687310093086128337124355918869409210060749656430671594293916809942927406040546617121036265136734385246157890887624454495577772216119971179106041231483130701781687049484266511387641348262202542065363669923794135805284152744219142491019348932364279873551453240367255328782201176360462483046004427371956543403990841592641928389600121840167079727496524503060636894808304606453946522539805131377694464559469482689543977529935885607543512495698986055417897783339367115656014859032571844028506867754471876255695050096842408535027555093189065687340458126325394851282440464148673692624618076238851503863701944757652643439478714714423799556541418491320362032848407927794248946604241992762224446728843988279261897489326925865293627060593083478960310732050212334792671033704771894811916397657970435818369410543253038942099092290452748260029661314268013067762204275324035493208759439529682931941221582211652270957703717992723137425323828465215847105623165950158249042809101352924327509572305510309076617235952844745357727633740733616688031251117757912782999739641279748034966965363889949391866042428113463256950170848931343947516810415124715899840583647826431828368243599447726661854147779798521757273990101085952929726015879752105510086407374612884960398364241677099395174538370636530945228465956899409740316817316449150908406903777821639612075186454061798318467740124507757097994882742699340190053083974278690099894641487902982784847102740316916613591623629699672509498964233881115473242734711752631488960415659094245809982298798592077046950320677699247317125363784461364118225250872862742588475508346745123051108847616054940280537201693378786268291724049732110298016589992557917604217658303588788532585608337473699721379719477509250228210743212586413277011093790575682263376471434988032848010352732940815892961330683471948378078594587658777904570242844912901068029541720144801118921474615737157943500188135642897095547351369002642115677177080329123287249483708703138195551971717108837082034567895599367933338679800985673954532070500745983243802536132526956443323588458992216670386304582679316864144468121851035482192997324294590602893714440385748288727766598310805200740636518455486525695904267359473802935732387764669492771536468276420528159790812813256536351256707215589384156181409226988551290137971254671559979419227812407422362754858887781097809138305595047218699079606080174105349102620023881176783197604119251400386745940779799172285796231706673151622322645678428091794135227675003618257434410548319481026620526106316076426895068402895901876300761681139656952924651125647896183923197263438217976408154836620019916149877920440066978357912588154657614464268996600183061490775543834196252950228672200047877706329653701565882328757985697573215513615755806941779805670556823169612737637936623009857719231478277076336859756507883514642063719806273263283469392821768286696067288151252101563112180908158279110368406175802755906639915194156514591983905206630257622786529495400911906190452297788818928751952064573150557941241394432321515498149757056081709265493698591248444093412201902295505432241822848418621364117608014915980804479260514489290809033090284073899461678132370263121744136092610620258707809975999527911686775868092425194712080486642902671513186096385567885394868176654084253236393528680864416380162973282417503014252176862172051835600451044871704899100965469189904551353970124651641913013373112120630318331743662260416363519216722771733182783804976459976735359375299316669564962081899031838354148429267533724637889212268125702013597088668168509140591705532429973212763234067005195713054110559048931840362793243449647225694281673503483060509518251062396736239317085140077175704915620906751880231887780083354676320991929156673095370479757155398053659236559993748996213827609737483014760095472984203649521360595892917676977484146923830283492893075541294781256658167876891167214759255622532691535969568392357099288379833875183341042098392927829772929585064640137644115396511173938854413726758883864911143361559704264244134427076596040640226087888223278010697357335322072318241737112776574166848975812712790387578003858620918480163868954303208103602763081756613652623869587280402883135510311848129902325060505459462662429810439637712576252297266617486383735607044253966344413710272574412551875496508178902502778027434292233565497483641314609165958670563883766007295920496726951108455309966279831541468570016590957523948554205182710995104331394190143718496576761800498373102438720085327305753040861746040619861783210616040257285918195327468471472161011429553731808161960315036796612291861298866057798260828285348572483695480411791206646394931615801945044065786004246377809696914414550433784230372206884192018290760205509070805080337940645023531067956981069015269224631456642318536035893695402303809678084293017303452129475956927099905143736033725565273793253691004140071209707333800284381537534319760080158470661157168678406959262060331549189623959475281039490807308513046354677157949139778605999635073929916326874010310940228228471452547283714005404485353027603141961737097578013917312500801089151187255692021205247595953157865289030867149678696473713519052378535374483491377610006220301166800755028347275342659199168076198302909717870230038245167257085448081689914016227636761601158168929605987661525099896755318617857474077386495078324677343852985276056936269741667970128920904464048575993025154946385239006828912223442663167785299489403191261550359016537167642056508452109878782822334378391799445599378376491425517474316422568289941780107141786349158289889594426074559903389096917347225881229477144958530289414806744062665765412898109610723159322055892352236725525106700316744064372089271458804373853523803443210972814280663979530335520537772438730659313321529066715093364726737352891769764046369501123940730419128459099051357584294200355433367760356127632717706699692851926547362727863999386448178852827735348456343489039199258302865837960952611956772842323912633220330032797363373653544819414149804241656458475498197251081923072668315926229933770289646344572530540076056891432969624800263009602185348334198736779556831095044189327342531372719159976777392528341163915039283216817036737163198990358581462525922801370192644614846320403952002919197678861535023334390546041902252396853062695062414386689509705431207875692122082553921650461030057258847852530463847376005623430314288351083103272729714927846783622875358781776762485325531389603018944496691252637488065331444920442787945118470955985327951290642042056546253960342642551252092991201519692177803294293081494114071537175917385677173311245845591155786638355401790202107497712776334448188029748479472647260849464925426710887123622185932408459975405968806709286619571090653486521377725554493493548314953008058367111556691470765944001818310911141870986554212825128073049521917130521599287191109130915460288214333672824306886829038371917234741777868155348412142971617439708474989538483386541023819697199988673881539997907202653633047522387295615291368863508013604397020086936909138695549424489815587953151104280058499681237336100873625692784374823668601589440754219205865015408215820483250387687041513238667002598697658032486953474196426915533414715888527098052594365217020712749449472015955018240248468211785932628960658685518501590333971050439477758021246568542556145636944738731936505089215191891441436528461846928150830618129508097910020403658272796810926913257772324678570658461480855595437601724536526960855192623322156609328781400141498864072815493734277224398207537110346303165798765496176357985022567500482372717747813848621195689922589335251500234923525624118562070346830580608807365022150106056643434545730858930638430034630763196891261738470391857854731097635412613866628765349349371438852241221459864206305535586423331641964861826367301351770529498177808462152830056734922541356489991979662284661857142747020585971029828025484557474388320174395885744550266699648318691763935691109190741740975668246986615196623470688372159430547759929890933031125945622259999673885443002754831672693145904234171844068085185038482496082498529126808997860374546280526040378612545801982306631218989887613703773192964699803426564421459740780950204890439103373639288549515222102288513740403209532321767446412435333743538794421497842919232388277709541774652024003234841908668826306418490462928818762469653796711032925748337495667063411112050372537366218118922346198964314888131073497124922261556812888154734524719268605992555313043969685322850854736820772192510243842621349716718695071537945875073275111689359858167106701732120621752942890697219920013445910468951537154321444111818749706447793643076648420195026798509252127069675468445451794331194947161282820515646268685300863855423914316597201832355190601720911285579710258542896326986589904909423921847664360825039729412141321233144655602628618945377977557080198876295587216886292316861468455277752598124867041695359199098490544864965489444054110691410149302966703304641128659798003821131438948947622201513357793413585054554986954091443742937981818139344788383014007635786939132024969959223449229065087850923971606062164481336388425597921595975136311033138238108979231692597389453033664178184976033007040946295726040265046200953686933733389647622136373320660288181820505914113098596842673579693864735330027882559682156839810062059242343487503557245633301549678755009317461795598598580631356579503890328682250788137046832918973923530163382181163813410264185545375950611937201126260899124500227583135833733072197552543916841628564164013357442231048996052908534019941225278854812368796704131233830893656977698731013756982578263274026964348661652119696066569792723269773421220385548675492633205830751847439409985228265078369399573439092931777107634560522751705040379155206039861304207695822174085358153609706173374865691677326540253076813584192978905217631562980580651337872674208026797336145973588429320034691117125252603240142724559499314455517683452289895454111262251091837350197858511348054917747778894001856065343236294019586484039286847481520760496581547115657107575648019281513349313994816170146551186217840278695107667520910995651696074893961172797601919133781096394451528135863700995297124902183347986377518507358547386221768185629169504174970692076049735106950597642293059393840709811231533749203336991980395771764287356159520211848548863028258950682429479757695140388819179534330321534947933581310658964724480146153517653204736593817532465567656336943373531833149771986533184372726209308630169345828967619094634128349431013178462871243199515702643706173592010578706605709165675577414414607844834102672066261230711247850080280621163965112544012890500492254944713208645793401378553436333599711181253973811870193653591619163826251110483909517860019478784878786190508703150991968111759878046891191523487102707869183162940847956852693666120553223659593104870912935470421137892009572388181523314421675876638442590953032351857021817712641778509012790411776645822470467816553004058890678416797435093591433664805413916108297952898386608831495744804617106733232130233010659248445255726739586900446926198784248565704129451547205696866041911280614220296164561781982833222440706487453602692869227729239179968113535748703424879208112505331822874507415960551474601921688512724121057181140197897844752601748522937145553711462616566986086416499095837598270696147960972146038783672968891160919699173199397409353753664680740122267686360661778788444706499509043525488064681958470761226124412226098925201061495589645797064574197653031763737805464359986067039202022630830028050573118279005670938721085688626736365410601322032065016865233639356735985054457582277963866560373851721892773033116903614020801605561161229583682881290835787186340580226125977361761628293839311886185637458149428691414456472849282050291550868205028445452221201246516735581152144721785573592263298205266345901732871731319603217641659497715824043849504028296994340636460566809257727535903034130768143622252918104822920128346514973577617224919656259062947760820483167927259420425870552119366276919313838023168088136385219548847561541399808100069711099479824365961911454536380552084087968790123493480286480382523187836943621323713251345899537426047773741635059728504200286737684284852246157113179656133668758319962366648673575331186508074110458551608603100494670448514309209181692115303303820647970045637484008792625417547739265252027719440469361033807631670134270999519766232491874846976116341653046055200142361782127002537880237070412069889473433269972828863224792708920907116907274536597397317537497126579893890732959760746602031641736258088377815047003192689342945182443053127153217730634840317722052023037613507965475588106900642008167173951471532605830144555056870661786366609902668348380174853828772177786163776623072902118596061926431918558783873383022636730382528769259840818323866253106349551407362386525135648298632715245545328160372514358021068151375921715254263923545050432974601747281438685324038158830538174664197245605876953361970709623240003219355868651124200660215553509640223368959487761383894427676130168502065467857689215751350278745864025055535521874577950202613141012644080824914325004058599332720895284121466573475919302045526594021945430215839024676870192828131206360406187415049333298046314829336150111110815629632125852295032082983314157811547319300768017211617216505965988330679380216989683973471492843531166566777622469458455270881884346742676136474819450343364025647039305938074062410076546084404495351519925567572852400878765785638186909772391168482339784158540233290134347591929410757579427636607466739739394642209664663834483970384200526814453536389086190488138241602214567767461397775766959437804705772804514122188685886220014464134055279254280892744262027714218392267075950597003715744942297181719445730271880602193868851903203072049051929970751075856837896304988086625433702217569142071497545127550786600046288310070946512132913739918556991603047825636610445329395166655405807645308379623538475942308141089144344578927773475504917046120928335285977518735544091106430449342338468635236355489192297301790106839456596023746290042337416893497121685710783281798087165664305968164771414649086026968176038015638322821583910092748397487923479287493425438950578660242839706735918681114080944644120921530519304375485976436610792728172299763847070952571175605868179191391167891300599485483951005422946995745293339710013256863622508585161909623697148669320274168657558645893519586354602308034178807312492389431113355892337860016072529819575727928142469184370256638136580726108181202532955493523065017309566705772550617105676064235125506021789779731099155209081363708248427493805109777043869965689406676247989723083951105983017969626552155916216520689447300403160608268022126373207191502966183124850577977545323216716795114164271130110857293763997658003114345470085719687103050403782315232756806098338682112524484470759337640397708322861237987879384074546120262121956717973346643673784276323532328810182310454112899881415563230115910973907390719199428575278237978214010131379348897599932494054740095026982416022503370943878371176030126544594407609094630877622338189491156261642164685549902375324213474896954969701325615957051242170609122984054662534937636496608196235890577354508300904487055525316387813176871844931978712087939429041438630757106515300095794681735491488930205171119002151838960796386372430405665403573773331080207212243401431437441294074756349190180843627398930221036481087003699420547358105099181457676084784729784251852563799932470382308730716464967318907085208919451808310430874771947623244692690352374039234973858203453905566431800126857502982382433334524596906219987021440001463753877987351543630561359939677608145949827884047600564348029956558659182373955739224535977476182311506646996502074101828776855223264201777805071654594450980092729772226103291480136756384945114347305300041103754924586503053607067242748290092694512556004845938836015194792322397979240594774774329587540312312406697685605033523305538900655796149937881197801020664444330341852688566640778786781548084612043279402496892236576343827698157428003060496036894457163098031232115262486980291804658200049978432860798316656924067043401864094404856486526018654509018981026823255984847632793511680397067144853622840884871988241119642317561024861231159931601777380314917711551822065102341895007944687376172703881222792377993605045006553379736287177821618259425725139594469029322897956088014049639841455334838840089444852109524448901308296041602823226927290890951315352017416997342842073544968938978807421630843584647865236836837295603482487267209666913184256047558397758534233003452583498500539491415936266085932363439879311774718319907802335456025843255551692511861762602516588193130356912864077730531845988456359152073417789185471687809688299467774820681940437173723162494621225740866208852221943545930647635225862182491683653952797120669752586434821889149449664105624052274073944891037884770599155693865583537241809800193585059182676584779506358807536738229037873858232250260735795990200709812687798638777850415471971174005305852802518857651638301784375772857007007550233797033331843222823778834285165439052541113990218452451973236402761380089031416468928174065384231078393125719345916686060771963690060384031383830489887310607843819670255671027753880088021538126002556394250590745716091245136103710222896989761989585352095456268045502593408971703045116449805200374174964133401778678628045200760906571447547773681305153917963594250769527883779996941418855865674307810541206840106993550242510937047440224296282290494860332197886152965117029322730093689681954777357027697094094171340353154253017687015176988270960708962154587079289198253274925575576600638561248742244878271223640537521392561465174950630701093790343620212972223396299416791457400159986185183886903740931747107659706978769293548281623264026725449347954702540901656059147694250672254439910435201095935261123300135204405933439738656007978109698950716424511519612302481207210231743201533331583344988162781057903035160532229644032641824765163274472326143778291056505146137585991383045568801233775060833569635684421014954718075305054513558771695010891822226336876582886566685051933571890978532175160831899697208888565099628169854923798348468747869902426900821051116915546774423952353123861237867913644151503326797416305273691681725600181557686731508750372420427610056098135806006615660192629348520080458102988066474679613767118381216927823188910138269774246925163299081395754750855659969828491292384893568303505070991004932948139915444888405065935889998825132214627029745655267912459153894890449924884583787827699758678197302676890965952593261993002655107862545210459411759431875533236894776851814563846726570655196175066216257364976205229455671100608550858104112983548469824858422207815093785591632404273608212384246147255791699361059351055949249719279043747454612594575248608536334345926598687837112410801973347457759670805485171280014049653302589647076234297813938077357479572623874142950864821398399467508366694134236259279534221960225509543343443602155236899423115114112235969232463964711744673713625809693804942757093616017105708777515350737147184385346422249702933078727220638796636523690911457571290821011431644405249052626147545248189694352740358235570795551571398160603438891561180436861092126365323654155703539750937970908705418985503854895593559809934337934061389862205681487197984679628924214183233485091448287847745605751189551546005861750337058159659418391109933872709718618476935671539011709920267363948556970698247922192223688358779913267315814404218021474746195335738156954074185057968431937335482198785005736936542924565339198741130786069137903133332056693415472071467399182427738087222392863935437903154517077557458350881905936914303648191728742897531883054112249367603113323974439421742260963481974687298844581345196242854919251451059566937255977965296298236358153056348170550870835606181475967654597104775437585586025625440361445155860754084031475743505568772960076154468834730801058215647974338225677931388516341460702981676920999172361814411407513281670505108213746406333067916001098845562300445514585806433178543429485692225163356186847244208038127656528815278436967606486731442147235745686818444994557920274730647521673459402806263161603001955236821440064147231826027425828426822274998919075365739045257772333879155854274867000146221561543264930107291424037447322186294429349041566158568744876120214619624754506044373666590674945703345648703870204444433930228413914826344976365487701002260700544758266971588653086392110841476088354496441699779204999560693687941328524349483065511972463486925992614566146729235557393316406867876708363786964796263360680251451996973162040222589868782315802336818521255933785534892270279100107271205923836349221510468931779675146144556067288754716953257623486500846849654308532339780630936285727564609429388767029872219568536517074572859509862983190332657445496880160382957575746030323306357422359300332835831195061011184549858401404522628293722872742148610764268143120794680332465491980677825172132569581659123927801896130906493434637910656066602632366008259334839201333917999269205513807736719894866240532926012301971534904768695680035182889353831142863021724647159994110031006047372619524289979994795728807984534450284799083445153834801868157567596595775401943317500795636985303177495642676502453220841544146100316793783889409631132506479226640888173435427342111642256881966956342584920248240511776475018952567820888788659546576548090759217968390963036121756217787641580662833040850930816821221252697009185222279693314093998219247126616038295264888828158690424133188552011547230052974392670201489640316679516950337778433278260828640039756568984409076302728153429800336852049466385834930982824122325699152578532857591076467330673094483275507015867027903734762829924581340448982110730214905958868966239526166110408317348094369956364827072296931407674311649088823590395069581122943965492971707378233365508093401794504366763468387580900594881017400990899370467888975211149400488541888957980565823158590227966036710822114686878821968677599400905472774874933856368395101822717863031077690108638887101728124698177575937639057088004691323086815992924912734631467168312381240468308433656435786779516395174472264132085328751061273107654177207321245318804458943138083091975924052333655535475146988012809300057898210808240520086315477690985775040924440974213193851137239985949685695925626474228061335420160948994303099378349951366829248113969942811958727241490642419691579358172786020020661971105839487922846028008112765864300888208120893948339639141418837654246677191421931204277667441120574975263840700236955217306932058848787027164383926624188698899923650067699016404850547317629028585008108704248373690616251419150177403432401080229226850262885951023047610961827509333774812826055378344280399660777934420285536371791478955881399846346526892854082398193140137389391197910910687180429953467300133597158937473149792802947907032783582510829777396028782236025127772176402458935598974996732313816881188206379894131643376151464608779069334636122650071859347533888405433932077320044939734883944102506546476720796221222374291912758855225485726410650635255934878802467057470315421866001057055117098368403237699296379049104538402368580550371205317581097926675836149530860741321949611745747142784806516510980307265133450088218369978329523871303636618595114593777103281086099763456758474110332136523004155578026328917856875472705725806297435398405392532568835271205337663307114246719119783409359815889730722429857841810203059445094037617288593067976784797395317016691108740088661139122331490421075248740731898042010075390604359527591803728256026706911450326976833590320061578820754524870194807655231112209490474081904384405307684582435349737096157728033630391650833689810311257564674325975253037180093203644532450130146660407278694964692879213812655825906228801891827762798883713836749396033341282716148759555122066143253109387821246716305063621275193560597902948934414185139623340212055214283223245858353438568584441569484035538960609619834251016878223687567952240332583694179777441273305966468568099883047187366321289665352062335347602438095335200571456074278069269160868949671319261740307162031472240818317070610370301313647013990501958696735248706542875220791311827430904313367712542145850464028707809508971386049247861548780420685790400125443407483158813757302078579178741547344089396470885349617810480673583935002746580277932396495777713265436412812092066279836868443491615852560701016532796503703863049353676058673248493968999365912745554015082531460564796927165677018105045823868519517871661786639365737948609437690367709566438306654689042910995568028710247904122240322187842233905828855112180627795657967687846328976674932047537008031555951376980179690039171703350687286968246044531512401282784822521303957731244278575298069530114002875668882720164657402273795386893459321181501889002121071244498005833738895421120947182172220680526072581419665809704862609270489775908775613404700785918511458491635760107313400705772615366064784288692678069335744058737743549815807552289243034048081338874283771918706082012915651979315133421396884981382984281491596330054507172771509050100900710352325810505262443244213085437219568260293698324719878577596579396527172230274889343375909446239326331710869004225554007027152329087851954020079675339362350257307617122932750899680133705783937193476756129375579243274895705158110849506714289104766189565171700388095572483221863210767136278305555236640384887684897141461338348466825858574561401035339911306446962588781658039739384478970334342560913317832876371637687472539972460327650157771617682989697838916311017338792810905364295186748190403524195280842530715008446498235813860853642820129242902354411501116685686032441985021766550944449043530077684158154273338028072659893645510527589671081735500948976518642527674198133893745927466714365045409546021032729188041926613041588751659711080208981213668440021583398244973009282345934199384117502153650987768961799367387244116624696791109082574552865657688371257052208383821879890077458256930523254898289719123112850358516185806043030651523027683064233117826114256904178188557901789432536046089765080286673228861239100700957701069719378247489544823844346072901359534509154412437550673899072277916358865961196178997130639054168593280396035631273780068967975095860174341983038702690208783532701942954645637835441044406029618074388306309854269202526025826070460850476332807242660119503987654978986780536500094320842812565016787049802196503023525936596153229625089304253972788523951776375464526038465031026212269166145931997615600371296491124406986958512786366955794439415498079978781207457134119769611671816487469256812509034472256952572710040584048605084927199227607515320464157895994724749734246281720170775841485409871608303123219979266385384568060727851465015633635647861392976855573640088432919431295209538489024886004161487590678110417668033777865924741238513310273351281260274920034790548716385168491645906978692851960438017660800534213402797986946578547672897118286354776969003486932807280013087479488233259579820273412914105298897878283390007400732012340369652760754849350065670426318887150939723258960460737729184329913664154006304291927099553698327777340226250538419596468122956083569048822952720675781619623638180361465371100792128400437197177795182375485841861504268783547500139749685148607447994977691935360579576514271090454342398968851701861249171040986350049722511462554724171830556522794876114383578863303741441001639327079011047637955645065063998844515184010833926644465758331737627805350813904177618548250468408297801478553606600156938530526716645015001691105405600610247118100098458948580859200578029228612155069979844208022242876053231811520369827768461651577750426595555857818573063683326214324173447497332080497654148739077521059640206573937349760011925512532969399763306350138518178356830071758789208988383721598379529968798849990559642076842922758186664169603363268020454664347597874666743887146542625153014935800387899619020604258972041534867369178247459422566891382805062254273916998620034204850539902609503243048881244662695068244278369766903900703491443144908119437947749095760416389111267855785086744759258235697538609486673695046063151501851490961813189505536746865252181451431430156597242456274405942060195176780561634635831372105976322037842553274374239080908095725200342380271644437668491405906186610622567632799182901178805324770820171337381209756624720343031967695125988101014040202628201971499143923278597891507870391894191410773878963261681741207962602416333269880419219949241872164121658919919332011143748396551335328663121659841096755540100419468427947667348161763525078132099479517717707426856194894576709792421367427695020640435231539670792649356502134017647341230719998968649401280878535202155811658929721970876876910124127429182413567727762921803620067556527359873843379044830392341315263122275993827536266911520993296140482637043710136664815570070141544065028329841356577517100248972358851133818134476140956097796718059593670467297307020811680432687846419615860205562816555887639123488149519600792697509492929984865441782396997396680635686485247071789438365848153206610813272484390767164106914065213240786136667992529043080864840475436846742366349317650625808258871575253422355366659258703109819019031927627485870608392114731316219960623219539392280632080033445608150682284970999316355968107236092092196651748789524279029496060345782494898248253008833083338857784499721286160855837645583829041403645824979440033437500262732161698396853496325055474839645799400388498570207178949201104742426806877284031550278928992236089132983034793595825962780818325295423246976785326175333421604183703411835339250321031222866475517213184619461417155841128431785906173724345005963028274589450036696673031734328552332973091638555311452101282003690813976214248420009831620633371992446017049963879155471821601445717127433268521900492983534545880437319688166527878398949652630958094907164269055655382772240820715641388835780345721640645176624798912189469765723993035513781127731519019597058065793131087041915052196559882081606089232315105025034703325412673598089427059687608115010884907775563879787827149613218753083817570507919297942362540769935854914000371514436152971909189779607819947126011140722776534472462816659074306231330082417519894799654081819306803330501456406560603616029482387067975035977513959553024920918790174549955550381804170517722398910267929647111363837437671117579647549364343891216939624487453810409504899509754200287155423219596849863868633237984793055248337515529425792091309594575225823769249975162063086707255348083740565746990647476705127455900085224546266919954060719434165608993702452908204805937529565823686660708339676252361554780334475145716196350203044638359211886434655468462373637080378775832147672607894730666416030445021223368809988819287999521423207338969011426140203813244883097807431898469397640305474117953872374051279761859674645301721368614048786090516964868312030972811010348275244536878339623635491617645626021901269984779498802430163595450772857419412743533261572772176021790445242126925405850597165572214567407545262737837074661588579017842021362977683949736803236175345303559203758988790869121109631894184939459860745086669146249570033712202177034426751758506758711401384744833258533293982398793728548465112497682619732442524501539555893609877929522129768675664888504648025769317124933715678189972949731794386747086273232520048468772221814542337308098738302249393927412876077424456134161103143273884245144222517317653349789377264827132079889524817046107704521651841916139887285175897862215126418560328853280094149088773360203871008980938770836398127684572052879375866603259237527110632364900912729626113893756942148702424075108641278425943835652280962537290008942423881768537549745890204031850504262588025638435914448585551184070975840200192605101749242171685829483660649823308286622892538531577707053267944860836183966936188942581775815050618967068932691757726317937498997620841031271227331791380988863127364927144762596036675345435257769990139485168238484750944165475298073742541170949000070814355601216869266657741578540707602063815031944475747660154651681603559009973115923419259797000499972866719695741797040677417600447311058080660572714139668727649800434151516857652382243389566264393139810044612267938365853259084008406369023238154546636061234877184792389984780930974286192416545752174344877796058827805633698509802620632828010097200461186730987531253961692642230987337082694315026332402096701347077703520171265726163358772058521946946094091867143007716964836322246187653426945062625638060130733834056738172133318113313081686992407287489955236795852957469458778847198994381236126524051949677430236279324328391679552991275862420244735868695368580972170363123684440463306858242107136269250341218873814381303116592216677437581566570355383558236790449532057488286876099782756095028694952554341258119563362833985399811790070471555840306706681029987234669309082356409984939910894823851362259728432709064575233085950902256156219196138858115868064513387425515881379182342948208900457026013354951737683739370645943632200400424208419806445268912485877805386869402010212122477750577679012633781199084552210966098042857650516283932980864096278836719307402708699501071565957450906667138580018600202119130707153652595395034254463318561017141386146704664035016020127478320549197476147239320370597845114265959297067485232826419596404592472016101123607260399534302885535172307201183322993817378657547864581155676723812023470872343117518350295981685244353448509288058056059511706972940123645140414265111053693850153538724028034383690949814362217867118884246885096009164198086916264895577647415396105016570197920073609342314620271529547312220713851775435027628153666250726760627020838852762288250111668827605290947714072991238993543313702262920718027981655778175174355269786456322873140544491009772286717262991045524863191279396726634006919916214235636844373072698165187696796706572463105059262229560883819184857539289137980974104574742675638710234854693056603994607192288980181667734370858432352375863449490290218753241117958453175145491093714248458498537998146767276380384978166059215609919955383206649981347008804461618682823939269487201162141244407458353577108011271594451814691394361929926951579144603269818120685485004493399732781578862159530149117175135997784233552514217159437347123021265018158299823961468088198862725854676044399762936534943465834062770230243075173435448960162377255869483289480095658305542845182077087345493846498943140984327469885602960328286626784272850289652228295934188458200240867520429727133965576415559050878841473137426428255368115248361927957804806841231893455932519655129420634490228441443513630828783316690350729594464107631284381699034668051446714344737756682224711660681694918363288557329093738832448704600882443991792712963117623035873984730924430391695760758666336222539637078290043272320460885747758148702565593645278867897029213239596183001652674493231647645731903549896406978360851648336745416688728413438179551605732960544654328298710038540695771244207725634617569751376408043450393188712197899987795844658541960515575351981534692424760497035146782825669020770210291220537477127866422432817241531484018410010131461602023913635491484676845255865259621453733735557094022897599905136443001417830356418372500245789804340167384943178867237379303747276567297601702020882489139271357002488758143236211484162878237246997208187776772303436882684373333223169215391657641999863348675885920037087419285276415663407309985675001551271550716870764752951420244063118536374687828504561385549911061409507804875145645683541452375736826328294534880600020889309548290442577842011086782448047607518009034362105592505458612275148304481318201791231978222609956392552760092100756531354130690538342514251834402061632590767017164986366507262287083810092596718740054974689240806810250668046704785152305324141448310713359278787062379752219784183675611943104401004135515890282427052783350091659248246451160791729658141684001456901702754600630930152716875927387474987762893539995541868505036610736771241802600528957943674283344926294427595181245244762634998701024839187412082366310510824767344958082049086079846396470753114175104342128547320449988844195446724076894238381743279004631793194014404430112216823611632466646973909694181097162576356247389079881557375516901410270958019506401132375181646417434086402506632890503776064819345842740683711615280883649303365651900989995071947968585683278959070354372494512469792688415263143311217731575210665637394372595202798746027702903522510111043467857094496083282952604902709108998406794809706003392271570266983100687041168114145141107998504274092249206436587319200733871098221720256569161360082478383052703235234951334519074177936256543307877350492760770115336232637147186948466896614404245167684955275962357299474084312163328687029635126098672707280119392011149225590413967061031879402529654310573212339349550773040355982094429452226879462606195509162433766081972757693989640580433189701314000124772691808060314507461973163379055006737156703039743405874354063745644377602536321416402436874815566625157711411868231118981451970313093278687254342573712305795971808865049553097108406412136825848439530445311560470746241742849191700087203947252549001966749974413759569867874943403044346693759882352481363186916478026151247864591214116852784823876417285346521772758622085994930555360907489843927043757428230155239209943877391760601224208122335917844297232667383507193703067928908107875426398087760276211651242577199398826922972831699302250165980534703655759923396554815959542109782261115254208148149159648709368736151359547221671799700263919011323087417049906999835157045063662565568525553160970900845532352625843543575107028228635568681776440849333614241715711181554540824722204875497017491403944290272302753239550855283803528271295630770824237982148873850496158508533426123900372004980466455326218984491630139295149963143040856740403083343949905700339345942503243198706328304500227362253728818459846933524369691807529079156813176510121051735351506461032822928529909674280785638576139656644746656362903360037940571765849236975009991485101086502322800075754814539522853029548176900667227508634842936651795710483604500042750361169406971673590246957201008230088996956084581252934793078492684282567266473114433015238175116835148600407997340455725855364956799724376132564927687401693819276942650502708174407689897954188481642625656262022226814865907970468780554878536892194292218030317982868502185060446508707193850281368451934787596077897751152801386887762989459302005864388120786673311978262412021883779821409050839969369728454780173168158828726840481983803214867861158024474381288433385317645919059609373440839204086673571283127079008626818759445323721255581355006975304321814145721955319669601945981742746768231489004238508210182598767109748259066325118697340646535013043391440879525723859632172155667142605602946041439624067420405796706680159715948260544780667123837078458319737999419989349356146045430778170499017606713580217188038237015139746965345183423274553568267482662415797274616259223649848475319695869601454721599915082854323335667672607121424441245498172916078741005441303882275698511403056674353179474114830257819403736734369288742599262590971298174009923786161884217893920061436191768011574886687803936472955816684372795939090562937587073009626636771775348387643448215573198612916511636241620009429982214817846270206961319693286263400110637854468207929307711756193292940351606898271459413081420614133794254874429992006567701534917139459664122543599756194627168994412169725131265686886395052939462850707735863468294843844116048029444691683501906935372005860532691105270995457025923046315971186156238814751233769694993669152792273032778351119636840957466070405914473657596733144283258383187925886567891325264280496196242147927433308059823909615958427302534237610400963099645545326841083151058234677157382509532298692877166091481509430985324203287601449901165707069769738200367378924448689971849589631724662704762455181739498978630322324766765969162282977710141299524182895109754292721689286189160906621999222263006409281297820015256980032817006493666060702509618908532636232783878161142496083804377893396202134673819620998980001201292422136919613095063823190099636693348554459811775389789694301665982019644373236373266039042365582884265658170996345185681751109602555352991192099117151976094475079210945886403302615641724258320342397050673054481266867481100937900666262711358589730118306219692071100742877514933236489133230477462172848779432091182534748604034557116607166706882488746196063214823129547983947466870700814746610276928505954982891300893475663850707183751206697189027152048621753709142455072218934304644308364553954762148274709719000508874243102028678020579588149921280789854405781931960890925170283267017500433614097399989025178989535780066967541076325629137982948041062911697255404400906966812390425093113963323444312425502601921935756748362754905372868940809493197120004582916943338998231723859242921211381240141424812003516517645993803964407424383672286513227731120534869337298244326523879746620835507929201430229719006937768720917941460683528581012216423126238332386335608244100684502462949496210658454895741329657147105011710904362377119353763358120131551543865734497354678753365638301070507054207390016100114943365541496998017658036703015007601059443449194743294138089437521234588248420938798935536037592565895791974123515578313743909172196521493924580721141871329777523571646670766305857651939483459234282325190517734826494231475117935850072171483007328234306614308969874916584167221481857814123106165525631145202193180549807659504277634858452107963153455317017668492936973679458265683447774523911115161018687036613703254847953239948122775215855865719585006835010281552708352171668695313061071768905084952724781766078928587941882483077029966091186788790561938023226182822701956565572206046789974840692869497522217635146664447899867076259957107530254017554665704758043575194863791144708008558156929376304078384516288232771560602101487181889638397849386133517176813040198741109817440380086550908027674649122131161423627447491707674225860301302706776137111743930753876136667921674780073909723789925405680123707833164609751945301994401385160839028442909503702263264521751411118439955513743869408719985561189614360641201960573494754716450372798588868281301352663789566106943505786298536472328827738604121659463938629413919714442139945295369561400498120187429700359642505043985333327557869090456865804999657117166175728563237556001091953854898981503443521050007372270829177874025673078860938479676932760199253221635039241117522572304110877766790726024366038197168740051042005140962925798481238460253913238617395190140553587750738003736685603405503160008117005897045065959218834403891649575694217171045592116447374448591505489336850736514292688160197394647023282441452838185355635665928922051193825756123179593903128864985461230056945466603753125040958024263705072933249845271667184557913755482545687102677079498225412529016297235003478843513917122092107480906429462937510833897642927381273607696855172066266723221861929501725103473546060457477174851424837934169370254664354417022543883023868934761943179127205174249126843785181307175153538156035697969881137874876763770955451478805279132094923699811865027947097909901639744005901215732807655909283186847236955248452270854756198381849605654067247801776310444310616058005595312608970526880833586373246745639805043957638323545242606222040345070720480991607747330703069976568845902348181704835237188502910145526997135751712496950607543495258787605278921663505349892531428430440424874905384085800984540370424068373627076697980559188971458969772922746788165278911598078532535324028917583930555856945780401616931694039318962217399926463715065009247656551767709125196969661010761025185712549591708666957199477575069451502165775490301608462717921584075589345891947032843377494498952455225093137555325634548490499439978676589011985478108124082986485408970779458640093506921483234641730309228556658202732817020801338015752362005118541863588723772956006862999894874471755829255852650463649376086398439193477103549410915790229922283276919054692250256520925156089765211411435592293127511897726707951499471341007881945450237424273170972125816437282553843506385056884509308178515313555302301075379313472863555503551210041400005925569246287156536747123191293642433841984363352624066704893525674312284471617211019824578877665801451646704891657852557705853991008546910413636459833341355757709157083469750909182811237406719068845366795253674256244030648469823031023537177705101390794383698029814884727005019498647384745809339370129229735511291559135906710389765248338821154657169236851944792507430938014757328183647294789675107344114108633189123728805725749724104916125823549875884460707695337579185829100973627378099961993754970638489531494734731311107743099139713917514855361646041480737615126156164280827382326015743027561065055412864172744057281756617351574880539323913143084051915516153049945085609196241206511302245687728644697011694786472680252923347174485463510169455628456403678519820236242136198993892602707932731021665174047607369658090228518821374778454706952217471662129525209480238498184207062350455102178753803269862880589499242564295940934406563513432276673982355190541751282260578725458261315793255224969533202935154936624624270681309472272853425847493430737631456773347546732374804606882468467595386443133268782928046476823900516355124988073842291657161726163123258925461428638756375144316249957096377300308722132461890474580783070245764777954443796238316873127412720815520063498827756645210698527626338190741218155476178713027398177486296339442234741914599043483699937165096188128872824498671907085289308468970088116315707993976805755984268217982127733126350251583715319786363368746622889663798974568067540735433745798567353387535559416354582920766253758156395782778074269254194155482299640393175086507791314187512016527593277846119541474893495386600545869987782114848916917065282018290892800766814832374812957955171400244435945078639311519029169319250565552259767094445734129859235487751759863222388003704961337448337562476644464287982241350608729499611119357202454794891700690161382499631720657184026310021707258756246947438985451338843172871515389353039104335471485118424605026770112931574678603073415272058406331637313825414580201992807182631362041267463893932282075925499594108746285380120699039914517662860898052244615684809816745948696283099432853349086603987826646808313911894709336786191253717785074125552913813477781475491920912913569562480268792195298025375218467222517383092898674021524987073193095253133806360000210232298666445631464239248792151490931461832532367622464026677681716691019194759728972296215337971564431832698963152227995947933715629180684843721079867539639540428943485787658311193111185776087978029645865925336115933272163592038429926860459039422663847042920916524366137260214841361861261549104100052152871649746509965525115998859029099776468423604825293331176179713400843651166604257422299406690245357214772900462398864434867475240658174930677900154391068983949542340257538286334763717514589093005128152077551494495491173898074367673372196087747671563353295025503689651042602630775138359145447801032138303100792068624258942986562018043373655602706087125333134657978262565173896126603914194729011789363699138288430958203481140342768847536017975995702527241099872607160760905925477672315865362959855550090279116559944983115123193682910453965804321008796563241518514711603577751865815146207834945184058946132014902692100210348415246224682843881279716875094880811759150894439164280046639861942368557850988812831524187949854148223564015901306501383529084890609386149338873955820369964693698507757377915929791270493541033222020561034981603013362625672146749188927250635503183491343787793591827947769459771349214182110959564583640087918688178186229661265369986015688837273747355199320806613000525546187724073057664137841622279211030174753923356220687212608793056954866511927208749225680999678147395340071096453438891455649171976991280344245193171325813247928618480294168042816497324461355297955795167003804946248939101688340894845508882236194719161786227794737851180250577724096114326591775686920341366204036205579679765139723026113481200266575205838043822896910902883478306605929962187601488025850388545700183998103457299707736768804534838140028574761932778695293671249533013048276908797378770382339875113819737857575707061622059764093830745862498137148513170552599400643898827056642620318033033076070986248792977012056882670182405783930982577612786697408521547596490216293001172049288921805844201574488189633642921053480286926394703001924130872265173548435635842874276887134562211260966758818872729509113350542506780028677279261247003102165416452060080292270631963065380161042273757476690245275086501007797275918647822735055794160739993725513146605624953266477286756526532747117715551887558819362199888589885730758239102184072186943226262920623594404149239367091184254060039044045345266410496180468104801476015785486192978013044136852721565234697652894940700658620731851813551454709418588113665373116203097207708478762422969303646347974610911083676195899027336955470930426121351137190827833604479782616645100655247136892586911851762249627071954087119407323604800218190382015620581776837491049150869542742724229836782890033871505722315473085265603410289343956432047947388881110873113097232576438575380737000771607653142651409113818157586339947532071376110233064368516380804722496304391523787014589318887142366794994812736290502465170177785647089573719943574969638824433061353998327657883881265156450078120288171973166879643504625412321209133282855151335736347133751283980227609442925730814485022522285726555455551812902206537357232564238981987275626967188653634408240193109275925452082794197449724510208443290452266472490748510515193397769608724757126408803828923079481160317988026206440173484170861641083994385163324522057602772696388870819680753650096354640501187023427824256159321430582182209967118994150363466935384570516324199115013171172921749725355058528240780245809335987108933011621077568239274005859931205277195419407358183537484569720376143561124840839234826731775784529622351873147749710819716131785802613665029912665630663246619511229923296149211776990378426131478925485029118190232184572468434844791366363727711604125363099093816877976390542238735889889812172714117074739926516387851488994281347453894034808447385053161603612328056731868806812880128284676379838295347687877813443774287750907785868522785220048213420534564309353615200874412657774636812594535744399824289794917039621647538167516014968982869794697690756599785952787495329808987919541990527038649307575767635765798167859460448081932469956592140464760761822855020792824542612273627757443128314058824890246251565602341772799334313479385108371383465284783801235212911670683983510389418268940610348007703130675112246378681471980057322820648596957433656352003492235416707782776640319286199740258514902323088724943419530701576005758144118102495112911441056472670669865607122884472382104992713447808257511350066705122062415531498247496930149574485468657617163065186080644000152199548732390316737361761585386624573190116037653388887747595236235632045327382677078455689046878991957002874867891668725045789727915511969945410453039847773423969095393244697204508231082243255146388360910904375862281872301000156213403173508836178949938048825790937759573891971842073156802294437314448237300463022419212756455175994672032201045975645017235095884041874935664962875227947624271672513843680884436929582798582684228960023861402164331663796144782903287536964192567816648445343104042950590990755753282581812482490972896887135417542088896323868404047797901820969683371592963361470850653898881838922556797738548572179447983496256583697024988772632038772625988828355742670256696130904075722031304124899264190372727065911794309846313840995786798691184376797903838484301018477928519044003079527623892936967437396922350133936871504685900780276817142955863728820609814033657700119930679583777056311583044925676926794288032227243868801075690040059781718580712254221976977404443240952155710603151176699077601656730405828203017697021254464082187377779557993186793338714779489889661153848476857090865812101189260335196210267477538460377024990202069319450860789875028657422414463044589200839368934090091435922053992981081015033786053837599715748257254775934504884450796066575427016415418738173690106341069668880162565645785774508226276481695706167325082859037375341349699423297496800574285332507293987821882744222994385683052757364642120205656149089788280842106503261215438137769572698812817648195726572121395668302122498266549624234580491867867802276724865623866851882189302459648678558002299742131920508080095535956056184077187895311333119235191069168284879326364788679512512709699869363282517168290717945829071212870623425045060305989516899340889472572298998451182753293056565716281992621537763700423438775251911775906400184719543311753713094473652571426744998743857671531102598188667164516596059816648693135675246502121534645350031061476905676851589928669220539787559121202885539738175310181472837427088719616554601603934245082674723921557693365692703877389761682548445380194106112255331043777016234667798503647530760371469149533906479438945730803463341284189403461653665597579049186069888639688929397435886241243081084566459512409605469753616961974760934220243364815265285063570346745645730355107821138214692011355862307262886855439461045569435057235460901673148827675900172317732211656979592807080957730245816656417319937204242369215319941837606036531977928528588591728192912375896821485301364784576808853715442494875746055314910886315115898816137252296352031584788616359988798133966992975590518064442140386771858595506219069443481081709175653012395614408246408067586500635781008312250221146729094359844623439819327443029050336813238972430004403962389765418154186012590961480119656973516332268425297194710047813148456262000956969614109529320800129667993558520476120347305086023137037095948041740639666608180117265415823649282978561577184667634994358130575178853574871051126920521430869867196794190512571388520129775430138698205967789198712875024890056278005928785499120350671448207027280871745502257466983616111428696875688950820390112854475873078770612093839802210172060403706148634062352782171531597732140066114473820818523976205464793536311666657565271494371985221415246644945270412185252402608648798215926882504451055424825539753678946687802813834209487626618073921516869671792972174042070151816617831673210929772763430324868481858889025620460962212676940609851165430719739711680338618489954766144838542370677371209043874383438211281546739473383219033446051220065141892923444086722329872689030312086047435717037666352444251994210945568825366788256328620442195348698508337011566648740230378829798964009226994716302602036555449894748312832488417059725895234943566232800789400040893469820693098653244215660540057531508549784406681692060606386993840049411330139312834830783749093074940020474232847271131539719798472140315605453080093614177032411264128608010654827158246444914640142243719246368990706305846585383793881878679665912756348390343117659244591006325893929122736530158693628615320897158662962660981492147317974079171733443268700072228391447093234805035874143946470036056446203180293457116367315987828846446015255781441475817947863509885621556018450353668435218143461816061903932951252362617007883761809764541749614576992438911165214467896390510848305433225925409822661186564853463767862926705450494204761887618022551013282632971393269411363520581845843055464599654321986088982283823549135238635572244403578414081744008006082153977054160359722385235825276126774098710025598471128324674754563207573516810691071707340220252478756198866179147048975764153989897760331703821935519861978601380539747380513735675284225964461233130044108137762490837642972296744329565004840225611832897422913444109501137487361957960721355837491268528806012059909804564273805848930196763955705841093523517720303587741926920109471782480301377000479798943248636361356841058438486220171129165893640696717747305201106662135746017356644872107713679992864190870951910089734946725266546679630830766547891772538388750683142678747193619689520353113270391205395982733443159432390664833958412748796526925984013796363232353128349407517631647933677519812653154948783850739277764131961934049820350632936966270570275566997103366411964503487291217023836525444033139867613408764293726005162786970049945753645897062604163279977795891892765567667976534565248775705436080828184861121614500766206514720388807319281452670771561134014669440756764999318572693135834138848577158729586536811325523527667867475808310107641873098808264654350732061515639760113419952164678286912516021366060664585204101675285356322615774207959892062949489988460845609156339878041810914588053206935052649279962940504801532520448303203804271701779019430032637256738800834256529110322920200661478183590858746645680070211427288052190124729787569027914288259705664170060763106286793670722598027020025373210927392532337305650033913645702379886422105473357070089527808257694385048622237823000563140031382165752579909377178178325710488748397411653216653822251537846614026793671351175339792404392529299660978536461034542967732777703984367741463272852043187228666818038470218735556795043171706794885632032119353731540544179594177153157762062015522886012514584330027306536172185171211996365062965374378939847913903482152489294472911667914905839366793293529741936767183658665062093890295222292639998862913619198185318486635200612225574888124466864147386652588245183050875605282040158007086266220828852234898236897310300091305664731246007158756995489792428691847454045160351600745965737578913586454711016072808934485237312150503959515491791048791174736154400604630719845781381795123838123738685408449704187419379998257080610146761609770672573752056810069222491411956211830982709484480829169781396305854241617763812986286886873583833971188601265560982885858361474329834946727013039441966095606790877663221076170046435008837232913120474196663803690923578813439227892269109025222311965342499266844697799747984950114641673852380209054165622398615278763375963540948715586484332824630478338420911859752172775804258956344863176262042185599178141797187041265196364496139509383910969283948920332704290203263368588515689377511586911644568992427639042074519563345421230040946514478913483994678933322377670288830490420509897174626435633250977449972940434432766118523613778595149815077490052085846051051548574442426535272051665859438365998222654281906260973769939609467868536794211559400448989424250581726012225804144781692080479193184934374291176441304904971359331337789100146990143409818043156622934501411984389363334144878165892804136162351777632101339453927049322529069816842278514698071654042943167548882302327247421617925430550446198352485852305431550076988960663694516464766638600006274712876120501730306102770450789681725325650977988163979316954547960321658735073278039501911114442419600121911113287385721181136265454914528323691078512122482781462896306389188559938383926456794658631954914488977149805888632262422028986514454720680999169080861748680021953302380622712555322378750154887150153396462888589103477748789908699652567458853147726917885767630682402771787804842794971127134342400519705810937158905280096784232238361755143808901701942810970803485825110822107479842893989348676663166994521006142513278355718678091700101306171370000694241133334366240531786392388997804609109340855840254018531559462777400813218591351328377904143913861490170098439499259574744964693376960806879827944850300498360923168870126099385592792749886768711395409725924029440456526127145708473516540922632837888416866574614768285507587721638973740389179688465963100595734035015490554787558171153175834291970987038682859655675539593544338222405879055707368802603704568548576682682497346616626119192623066927403513120578135573948128380175838073044807471543668094951555284033702044689082394147763941267441710117543251259410741107042232940977446416543600092153388013981440632133411636661540788588838119049946086401050582753300832282070652456501599358758555755422831798602874907703849101190701759870938575938534946615804414366137081319503667897993186695260613812266859058342632707695325713461461908305136081082899465397737787691328948820472053742281636345190081270905075989618576427611752048278763890144264149241901650136681015257263869836994445357621942341351868834868583932438092840732952718656177959913145758946553999875611312957719428162914923547261416552943029992570496697191330203221497170091634087222062355906170110482450052812517620184753216977992785376231784630740004897215560525564153248895986394192310177045567287206239285666746407382683963110035273504744738589688364541761384910700294650663346349370043941609068883804425702149075716370490510018568724474866106998595025084475503946054343751450409535114785951076824331118622375215537274361917450268575692246863911146035334684848221939802296084698927980331225830209090893535532034864430067098320205859615059078862305171068598930171100420301719860198269020999872790446534553524158751597403537052781464628815472820247582905661741136440371823697095976995966398889935995249640919564547427590100062577131166661893745266324894367932046590692776402648318383327278761405487209011640377738603982545046694029319001831391063996563090540942658187399994406499103119905986613746092484827359216267020768093087619478415902963175289461980723697331803421459386925992954617363731540306158989073623045709575845741125702483668986281147151110713192188535189740904919832200946189534698282303250703705800469453466135847382301447418532766197263438229227341160994900772668609300292402730300475284717411018453290433125309394728788730805248637559763214337044036221182572232160712413670257350500159081624329813818806199693138734960400057404858322874027691741133743502773474431752476474092428750940469414002807205779328766664579420816187972364229199183574770204260204605445502191103027755811438055222553445106815842082653439661870614811341298007402934607068586147797667131136189554084283715150288663151059104750988428718989192968991248335761127547165211843073677321704051997863878348960065247044707566256147303979167186370308358596945896297012885156892910106403485500749775081098419942274663648178360170392638362103843835279626364037166762097701758613547268071081157657684737049730463287918071611482430887632834009214248789587446479084131396743481170882541080749385211676590871477408243552717896424054833564533861820677590162807677445440563532598890158231591555790801830363925809072583724774981137641066979843239241404416955370925531768807634218542486542208760785929293390658834925486756848252700743140216593387588578810742666128106745705907004549275546367119592091249281535835909758434526203879272654802677570111360990929587649910778838666488081838510381155977370884538015479934885501301413118137661897327028448426664730974086256464331372018465499304350913585743726365852542190771704544337083436964250519518481742726856313008829865344393722723400200167096088861862753280223724889164131355352491765570837200408474272293397614055489692640094905935809853296591837994960727514282860835766067337976026653180483576236382561023118821621599816503297282220388278325850027346387522397138382543472405897643092158920396626916469106389226932585725732401157184335111062193810870098914986848939583766065505579203715151011105181768680001631828739323347851368125043794246048601372633373457018380069936984450562306942950278869829150337030374896300119028540083594058678030692272723528142674142087877174163810835828123963913105330604884958731172360683312263273751661483754691850438007456156895782118772917192541865775721023021804243808622789891548896061537167857058452216909891971321211115242336163694500718990359337900348695562817559663675797665784426139417938404068039654923880149963963821712802636469433633706794885715476427708531210897497663876151488943462955947388765110326402978689551746838317918928130227588077798415333173894671215624318461107067255800557164038936470118145399628297645816159216390855313739894890130484975375976748470525236365259340603717461805174291338931860101853157997697489694910888838143278033457228298409603993233426972915621994288215370206945261969575487806770694698373685065324744768177092995870926478793243895092589137796416386743571149952255899381411907588574723185229678548791850169760794288673922820737437898268694700589482984222278347657616332688137415647745855425392752186298496348056413525687458672607226924030008295926546337609819313229555253449613705767972617862016786690935855432121018580726081937391053613146141938511944819717174264128814244277638649488741532038433746821807079574042399776172499431803212504664524197307901592719105870074502477753821291331850975294853164011921358586369388804492958254580315749710364261995226529417579559890167126170064445702170388364992435499722264307017717868981607112362483155594866589479694686615899193829829365128475552672922379146875883436530130295380854346230407232376921049540195730710143423115569714473970578060776666798193293015012075839116460820766630473250475941330261295461479397598235344075200640178267953775850144596938162514621767718576264847175332878833780140918135398415069535162382163395128626635607304948564645139331010519030266795363908063115188025185585490732461817569304548659425310797690163913124242170259349795531717807273846751493361770793827284364161936940938694328465467498504592497559179555782457522202548305378929250166681643398441185660005083157238556585272981359809130065941463655156771126881651397822155558544055781555408797557035307407897631713261517856801030967486219948745390547246417727840730254662520428223908600889630099220055991189553995609963763323797307716741591659910335228482428127235664318064887277705995752770122391206874578570610864417267364433249298669205712033408669963760411450788945382678317183370379509346622877661416004356124108371878171199492666975765325564711317982396994708413638202553999239504144237721508686339533277479660318344846780741334083570853695663166973467509515405508010487554667578850442191570550208337833388020629518776673544429332214261247102157364248962087003108165630513951357148941576201090991369153644527156736999386272486379573712790490681442834274592112071036191390926203897860322777938576893297449787106594091294608979133998596815531225641902083998495579111286555386234874299906845019119181061852058883878116522326161229328475911750181294519584422390009279778815781311265143498085624847096592602900223781078231741690590317292422399929639636404426721639555031444467401043922555081572445178659622859442852296073197017181971187040712219022737234653128756975904682692362706567935374029940278867995252431928880512939361186200847355488867665933040425568355894490005255957606629383232000122369135418472216304406788325609848539095399282443117517476910095534590309619688470962916313798520844501096528324581864894984889957367869028569670537701228143070625143615145611732177165912892467758636789877165778613906918570540265392909595699451384198229754947423418345369973485405198416464086006043035991666822380393483983149548617993633848058469949165013968383658441292588858505208853941297865003196277451385238047303214524863316131584140446845591316829073182250341324130237896899621428884584601356437416622915986063739200149431508403596500690964104724777184093340357490166317980593850443323817215451334286291790511486409760435682936112818146489917754373137641176549098125657758994944157699988187652035347921638668517669825133606143065859691391313827385943196571171005875362671987025378877650906069364936973592644569286965532159774152178201227625694996024971019879721657713306204059324835269675759726434247654238454294074069413436471439693819186179146520282188974317535744275887431916048068263128503230467750563006065346558039466499551027612394972007345417784723572962646115762028791079307732678762110206398191541451849088069907004717291644675590788094373384088098854194012394809550020338393362902861657863517172121446555743683641079517713158673356764440716435825765347411911363221366880104534230861397653179866711433636212793650116973830071625947046023437691480756937210398290311478519806094256676704456120210350404271889463714602660839249782411008495245667481220167830669845481010609597812981357500800064274353099235802119315623272002000190423792744964679773414591008068607980809413441205270090951166669358549854767590043201060812422855713961478656893968456953656523621314746799230459123510997052038517270825648556383445613554056331193151775431771347734044766262479701079193562728045693325861636472246491380576641531902026056509041755653781219869473438100008228393992450363929111680727441279050530784665478161399643954643825900730968341506853706530498778766248295377399533065949692933081583777966703670215724069740128271897630043820463477186715339700937173888244397941837837756488598795851562889000482227845195237428720651433040415044335628286319598279073499111631817031530393698872573008581232037443346528593443721138216686986125826748923533899995866146651639058013920775069019311809374788476675012061440250780863247528416945598791092761601973204633905582216456753110832563346086404623252451566692989846987518629665242148112658748000271717655861323801565433909875210535576661364905176327856748286483756190505195264752085861789449081785536706303125810549117627688297203425978747159276907680851609505585253046935351843642450491281125296169261067842340804066493739863708025463809987325015920862591140493866819977722696232822543265361232323899336237733014529567611517474343787309498699621595997119211094368302486797865499485825399098029431482061009747250605790620524924358577554907239638134354912191091555095615553351863119922682226110660885099660276063844884154608430181098106301157763847233359734617967934605085120186905753456734819237686474488323483904285600168786872027013698795708411041037129888346923554369322973344314831891748757362148820142619825256499554430283031582506954662889730137466818571632289435755703271803973884261246242139832036580016923841790981803412894642150207953847917896197689169811672937522923202015811940530423576015560926891348308505015237172014839547946081833532336263999375012126063176841043276638722004217705638715426073542591866306451804180592773231863490239570363920886132666951253014514256984629026101805676467453387199550887170739894743592478763341300158520914353710761861649301713595613453152797893952139606595833516412705698761036493661448468387375056748964996097452820840854780696439239484106874028387196239632959274039680037506118891254181284829391674212040177603803359284928904008518013705410439212137457266382985967980377647714948542320878882327200605157160382784078768925888131449731044295815793651642799734074027609622880613826403643386038147447450467811445749550223102079889703506289389313481874176325071189577562284625026316320162189548624979299946624502658330266231436172162492516232226385800286012438569268242397139424365441694104854674863528646169383389563992735084130076312827984219801686377436184753510612149212425438873269527577486325877910580431467305942902566188758947196816439009587289649353788500250330029900352642766453216568842016884022097326178997165924666139608535605209986939389393249814931861085252502369275245029659214670015632912148539453590175823132083441999130931857853329256149057702031929011212297954373434498545349106729623814196170265133666328309886781435304913284870653265055893258312567985177889081191697596398722490456214238218784647166987774512254126425328704198759721579682270007043719007713922332190703519898984053550897324849932437846434648490140858956649454963882420785110236250975428205179887329890389911478951934829947908089516235668035138571562597504738728928246906864558834524520105443060953839496497040662838293807016191133741220293611539036135463246122636910203787885609435869107519649042475680714181321362109767730127298193295595806263474521660960310274655217857233694748120738194231993856428655687843200396597991107056680971659479870096543475002848391794202507597727720205828784936127854282387422892173693300375276943298276801102263547189665741177597474808043225342907406133252058967425152759863582886359531862308876234830009240570710707424112843096279599206521443673977401452445894752651840696360018688069595739874565065992231510674204180101452382723886077747145093649297013662806508209262202684564297238655272575989232825378802614261547217792996855873380646586156651637324938005497927654343056067597521293202149019100363514445649350915141695382271002630382336730554255184217344640483302378152180143156798710556536202300647318694273658300461673794981577762589009133501653566281355623615087286528925386551303805142952667798681194831661394614814660863746099044008679927865085879017608477002150158518733702820668701974270788418592649544064788757728855846542170617198606981816253325012533216929023207278186902734568262896670136922752436993566057429026821397077016457183252737378134491413452184494794012404788636326277882371593780992107086580620137139523973487806478864871453135239407487643008314429038887447113498292282257188438091227825934709983691651935843339421407961478367905687974500074903058442247116993608508918437766669714632725066471624575707796117089039350883484293286320572504826378905461564435194278491690580795404795558668044736929703016444666079876076883311434642342961833591972079772481400225343895414791141606619527871595163988212788501768344628574246970026143479954243178780856004130341300187403690594784821860125077786328378505085148295432008189794006946145326537445858158541005529175916311077934180158176270774692909801052325548357290338970060747547623149920823775939641662398746797851843107645323841414233942509024750032414473535180323759301537130703048991311663954866686788569065996604713758671985635642216278096916870276354448910688622996698945090772664695871306412162949592022319142856063101701048101676779924214107890940846034741429804122837104778907942503306668937202209150141483812691186101179752675401378469775120060759439572605364873578562703190734083853860215055559446491760346450975051202721437445770719430544534790019835057689346398446796041814295459504261729372302906382062894648016873886786109579062471823994113209465905810213174974447023941895355839619528318030010699915260032040916363187885555749089148263429666658117347852957647133521743113859222333239598971739099458790763216787396156837463057607183839344975005891344256554691101414726791629936137343342101527795676095280373900043414247321291470989275135770857965918481424807968359277305304198767734299436022484429324390129635448171230489141994927243782468774187231092744140688810555412407027660597017857275000384307630371153017411909763059461269561825544092120863544279623540364713017523808152275723997865428892324831535080378052981642480447053437126101462955218638439589623205082617558216015618071081189469449375031918062733893126223987998263135944018120983869398824000208532442612366167282403820981613156230585980280545100706658732426614188820710759182259288444223962246399793062651938845539614807121788366050190019219330581880036173957736666873279043801828120877805344107224812374056278012846958832867877288368840064933267718780676793128975505942988146726740423492816403405647121437864676823395328514346976343630588536905000832156230599019655209339916734871289497346942530524514203155038664601300793167699155847874991383820426037236082234560268200252094197547059763532586799870143695466725168471459867796429368793490756962055585657715684765798060680132427159669962552521442841174942155908237719964176949544314926963887321121289109111343444321425388582042689526048003829441615468748133618999461086847893724391414237089469161627060101208599313234869526306782194685790056964744094806510959564632962808579383150437787256205483246335020793354155198425932070318961170468380152327516867009652193616218569197702940442722103343536935559172817333324351489835507711916929652281802321385897715861226949930664609114070889999563534906004834749821392508382721040415049248294535129051467505812408303811087059323931495449134117066364995055860107251584953072675368774470151164260549804589576450194892837637300182075924376957959331890893960202533248293715920291279881406670748309666921827100442568930799217807113001479065760218585621595176027561397027517467665701776521375753852577607977027969782179606472345936801501010528135387918306647209944998330397781011408938232306901171585067207500771995661199405891627780637242113601271408833614783621003625887436849663459774700842099182837706966634387721018541827860983064312665530408340498145659011452700810074662072651782712984694596902789449513758909274491240150328615217649161332925330267776131304051239164903382395492988078599786598585038575339820480316296263791635650792971764891734197617620286445734505314704069776263162518145085944481349192227848405401737726464380825615850945517480694755660512463142138238414096722647898063391093819811681954195960259501637979489049110390766083145516865156917581283975839593481075007250296109559105564802633283552412386083511795471555015180972723191363609887085333999198195816327083922355858243188762166154107978042415249376424717809278833330935075468311143744152043212329268492713627680002702993619491120255848002549776258752457821183387221814235519817917917377211843852418093444515555989687895446841759945754318607087485867236217262001079384943914080780571716490510082518216032755489022457789648133038745861453436987025115410580294801602808221442295978584987724204770663600481488909075159845024177249471169272384451400663356445143956197613653558614153370226180635300409786634720796989763449171537475893555964744364183506109348844017658804423581586954935289341819103322618320268573658688342726481575851206755706075339340359918056732599244891100287745075930778767410310363331654697459187818254662287313632236544255582678588190478474108410205855513934974765118317666079767784663482445974837925949147478204065637420453314106493812067744674280292269532796609876968497220556305068653927775321218653201803177077323701441178105949657653980619991239594690913952974000003792283833687115788602112750558360626124971091475517103439498749354525156231114095376186806531386937567396783061264047099007343616792139841489966765389499617708578180379113245961549890455120304434556054232451897425240453573326710047062520692023988531789585709088872961619038985071900977207918312401911268736505880008371547540316915968086293958322270092339588655588723901662035185189657414698424056132395339034067671134086073225871785882000668258058461326756776171768330072698603085969068524657533277777051352005965327742465893789757171843655930381381860210295299021753622757581673780686395640678851052899029367763253104491743022678487475693267387547679067809101241858739976144266278964187046719541744916545172936902165776735015489860076668224515993956572449606490697966757242837950595703056290470390920937691481222686426418210671617737881682625993164046244549315403232567682313718294918216476529119299804985277220925536843111495183719242499178250532723192934578205444973152925673779446062786157700061325564353333635335582041163869514540442227595406167195627840441092002061398241339100738180120356557882065137560768110890127621466499467212460654928594138503606310071889435710114335858245256983257254561653057884232270428131825027184379170250845868261313261330021510761308513723673223062658285738176565565740925662632845626120268314653578571804536902911791209805874229229095962306303989779922350657370001734793788882049256452415542311151155959692168471549009031904989384853394638782928422779602740263826912696930614118037060704368824838672963671167198852108138442504882334899663393132436130383787446054622835288144461934191089565237894872487519980784016286096190189971717623662385287011934369233726324640339457540619306413098086976049904067091030575963405689033631577315654430901205007087828850508108218471071357087427099352485055669727446531423141756955779718126265166370127332030068755907417685289732370056925107921804501123941311933854555573652388642781946978769533550567592764012060800627591574273998366370092180838690395625899129330969330827567186498955476990671118858165255592457883967171209358051826775416049198466182023310453801335253127024053288840828722406046237246663520622492414985487225728921485888383799196652551736188993789577005118078063661775403710225071052509886524523656304714497750307194328782447617323326064758738273220492499110099259325416852681482906972126635466594374349152766128665364364567800731447689420373107222542975934022339267351311250399914232649520300150382387846908412452072946369522453883314073160485007280583744092693675871171777472786516527185591892042253762243359823272341241561854855537994846476717066705164638743705497590076075619475790521928761364609134226374594497646043486682321928136466092382259397427791665586128887079418828095954041455452606337287817913055315544071671414173910957995694149128040321683143151240922985061085049249329321501986542701500304053034248253265595507462491287046129998468644992802926463675126663697020337928519767585097943770967723023799579165620819574752059077604655389790691197199884916643873835273250036781900674937025790302103014667362850014498960960984824090046441506727207203549673378494963822610024090857376821779360549744105399122823055991584132164523738210410117897250768502010514059937016506662399830057074920432230280589162365190387223956128916986371944451049188344945520571733929991623045658924422652425709852436480012192358066103212382633185367460010925107589709424346188834325043169701616752098866139133646145742259189618228917947547925748531034131020510966243478825132276677904494628651405914108996251247621455174124876732799146175711977928804000708038486406355085980906266327282909314752217421926810987903880160859135804752538468485537518704137933005337503280201759356262825930328925206812965274212018233435355526784406056854321923268457140358857108221656460687205584661911156171588467922088349412655017954054885902028175641129954982826546168560671445766172600361083937430756679164884957396131353969890592878738182464371809785697918289241469118644373616512923995793180881404252444271870697833996629676327380256433612129106821730710412161689987941557308936463486284290087713906460485700408296467916902641596067006491990250255118995379736899298024333426384464305972228392344741226566227661369801411993490046392032672063899609155751411864997882284974472568528460781129096776688315920492657275796319428568261750606138419230810033326943981935928335004109790914558769099810645658475943476558088774539880821510998833799043681698248246216217320254357747461128420810166962159772317152290660654562099258876440348100376868265239796820787892071787205377586518508853014064705866419986793458342113519142882996649880495992857357978221691863876712736987845869114808291157234497055587966470862006127659403654054550276604195248236925764057161596498607042264701773814081241372965013395719324627254530653374029359810713704132151282200009495375107267360863189622209585481713200775920013214514105957627943084921921935037507842974034916843597600065139627597009730495247739894342756457325203690389473879825111646933618052825089587885178510612156299864471210336619503808493363132463954425080490061060313030707852821661001864926574388412636588820811138999649973602181549889983384348291224820337338625113206681700246599698039012662284334457965112572232134937650089449979884755624916616432697290249175521588339463617907483921090646945263026428248696595220851331275510548436403778202365734200426206121719125763853003889677862728861989055604950267317056102289254574069144941025908976740884953719246389108524013416054860653307931255697977943082585077086330270266251890266782577917674896912708014982984087012701661268102818602905923393827930892707478180805796800430742863340240514537386724135423078645452251669573212228508142075854185078011725308728981138438071787269454810349457442471641749938144967339980815553533691496114532892925046079679071581415663204237118214546906646975389324989957345044849738136289994477723594618922560525196702041971733856279500402931172672174165711434757434410698539932577123017990847580319580467311819479529903630713411691466503148465345459534460095229992284110928766476558936696464991718849169002313922290788838507364600769508035935381207379183629529682253673756587046126425838946485144493886330104685703643710100745629533033075769125489612438772920322350104365486520591988708833394161730559973550120307338536276358568401878797233079928476706571314432642267334136640117788095646442707259772606024625588796871344781585214248431348645760269668351930524784660648868968957025932565805971847365057564241176230707879593321600294591727034349669281614020063939420763132287419196657496545607097934870206327561767981918210949210002561449281241116613927724875659337537868311325079536057916368512884419056871190112707822293692654753149320945500619707998103543846369910775065578131372461525199442745061136947477869602961555073864660127999377991818672234046384195067587577241630296714187001875236002210536912314766160934422666062285168778845477690893398842472584933148964653545273261654682885997598203233014173016831405105595009616329757093210929285396750318165298522900676123063213020646621435610669210010908502176937907382708814526987881441310308796229730250476742449453035362191293500348339875918962386674540902230912972273529798627854487792499318671714403137251913281806817808577957841548106889516558556045394782492875803617253749597293302203159364700004777519328578742947102628945249094457294579066339317745713078914860847360367979131701174885500451546565915800360128080187242518665161326607015236369476969472451708288173728128519026722269025186609463241807626937958310036523982673983837712939469127278280971249115151667016182052942816772102281266182701154324714303353126787330095260944144933392784444959090318918904386788116428082676720666911254186082746726978598914051060632798678725619380185228028826709929115411579907759879450147096551824337557140247062762275009023820125096080484789733717910177496919036195185044219920648379134300292839077322257694803905687473484282568370873043049925609617353783523428692173651528215959855362806099030944730271189187702778936276205629577784849553978115499220345461107211054278193208713051155804555154724295164981473283493668853994511245700030147002230280381748500260833890175098246211449514381736700727550182252898360163120491992598867842684697436942437226218470482780806769414303387261001849758100044902997663863853677352107379628992062776218090535392449581252391781096082061631073506469846481184168622558279342647169054631134191805369698451509075547228673392851993627331461721250311765084477553328566175036123703317457344742111683524207482918747815315601924348668273201879117461652246142267497365354578556124640409925108053522729411288277277759678633222334524427053739358400874604034549605223134508204975357420815699570645142904315511537596629363054629439148123575221807256867316362116757437651742167864805777288443329639710534233052746251229640848972355943217564716668267776592966789091562140286436628208815082604290985085867290662291855057622542690226150876002245687084987353008835808043911091901224739369648475087105401595133098566783481010374551207923862249164871487579042206472505006322378504008290651478453423502746046888847716382751804997249205350313285785082942155250216063319113546868368483591801127449207414377382095014424424737312784209767175065789542314890602379616620677071652357262443974148096073572491263786799889545493970043614493883735553089225826665713330587220450221338842820298806287066887505288520060394229788952925404128235721206786113071643864937880216410581736708739959324269920237352134716510062787624949956263461806620904028520649751453303976944753934629212341038270832022329010347949173105944225746966936219802286259950544706454201027036023611023214733841220177909729149265758520561248464340636576792054033522409515266659071072999439238285598101004059310249294634343018091031656362262337763510623117692281993261531806988599988036779253551261894687506783082148435245490072397039232852729680091983667643647734858098145394863433984864450196866477474224715857465548683457714128924431814781667907940251151291660739097928462063573704967317309953625283743534971305988224517223861741381181493180314861939909617599530790953737346559230551197903358861210063228144342854826469551465385552206899937087177935625001437398544555022664930379315992896693569883221393531345066998243059185351117448756493338986225113111180152461966489578336103212050907468989214074770131003080091271369247346322561766927239248828121936605352932418873727665445088897135869722614989626299014902357788788820914859649038726059913894473055543000694822205755466873799722847809475425615126364313425224972236612182912352582472127846163099715636719835974050015445160473202320054941849579160014295101490663137747201326866212594319991748585599394724451327712951458469942980699675042750252541952598862902574296951772344542427537914982957211376507250331499224758425796730817885066753717574032999564094739555138275549474614607643080784375352941615354092035630394288397516835907676438406877196848051808216725125923126628103149672554490546755945423771732430726063601621075857057958553286588299286509018582447450037695754634673201568815596885205221439202233730535034410103883590469021480187542062858793819727193514559749309511735244749379141740038313778142743469324797428555708565850215052896518123502443797901793517007614211742707108613245460637043421002670246649128080616514389322165383313658168511299524359644265503611046650450642813055733835799732209320241929650908526341477070123977070637670649800717826191525697757937875102690246194977121827711097763197509264372174058893300997351789015203770731207589707675289274429426011873224041671533658986838622225358510232321472390516189350883476170237994631183279833319657643484368969185824094814166806265934509453240417670000872067297311044224644844659220005996962869174862262345075099332620960592098768987578251436787437625371158714621876613999014644924923976458330228851295342681366877946414286291695322432628429114359523752518955778130416745030956983389924228191196247028972279307166023543577534913678457186813089258333464893690050962552747309762660894019593467420657632466842365619407813717608810535091067281097017402216921465627391370181857126254763900012582218502368709603515657934649995963555341719915070243861353078494477809261197009662806075714983597221691231859136789061937967776019480119357567771844156818996886409422335909108178184459402500829957247643170577209908341895668423237504777424664606324624741996644332996770795048441873427119480892937824193624673239531585281196767020503314023897498267599278092786182374184581007635073176407281664237888665616983081012694700818956476824462581923118572693351462273616467050466316780864385155999411382224160084054449840052990798917024699191327529833775931261804107269197544946074597568060697408992310218931089127013449271161309680453156415672994637916420329217425642814520532693413652319614874763066310378677498545552864560264860357950603228569244283638198688172859941551044206396275256856940935497494255210738359683418360146321508725002773462223668385475999085464178129531785181689357350383340991199368747585408007806171957130754796540048395451234781492127501245365134786971078732481102623293090788552738633783670130203755438905730486933673488116087993065362046966252600059783209395714941237879535808255431623473527347403638479868256188424219259388460543515804051960370984582941215322713457849880495111605459809459843699997249031950016328295718817944665408885059932220952129364508791625963745724123837765062388427194074552023463851403953517361676679462609171951503914350040432262707522490386768209605331764073935469321462147182550058019085510610528417605747242553157420103847433181455060381460816193916028297763271603510166995427066291860185578158800015474502086654229437487712057242941565148854796919667092048445116385729172242611049640689664412973521334150598857833355754990297524912234936829761998824013396695504180404965655267131575024531359048758187666103401839379062912450729509783186369234663035569200037138589413848242065624606640299789309086024624667719974501607504406078460327776787380914718320622187162925283475379194753158457617327111620165409297139557878488018715049392261967979219102489423825077654203099112569891331770779386479950465865912951504251522743662408228734569285871725169844405577624967869875584453541265935029092045878268852254088706158617014030610573364628370814494008069537466386373190780473484227118206042129658550182979995045408336411034263186744312417472916607936093209156447805586525008512166203826177714818441680936538975250646541814622962229069338959747389399890334551230609206246001620546131750950858964787132829824506709204523410634697225950409514154018017663976968946498049616151445165803398606296234010404795751934042976438042535264751920947070895281357401410348799716597982412460945365346385026361587714514707132093005928760763332664452655628265822667453806997069044059840563852706398126899759714110764875558942802488247268009508944782420464862870610369439658723566571799259835813956650481968975243504376675804502549298807087077646459970531812841911764464285057970175891900365618592018983215163568035786521272075325651340367572452811978384275412739078471259328876491987839816560088705817379247041812276744814910704843305374243147698073774564938540555428668669317583650343153998072028821202339028937389009062136112231884200084923360737754731888249021517034483416069417453305318320986413666018586271468683274190033179735871873058586806568725785132686751006788055498442722001428446805657437505015046673206141355993932028540184722035361181859290060926849200991394187598032047865932276736225928521897955405701258718858809768941419566472407824908004227179506234751059885385724604354743117917306326877221304951544003008752817344340375924653241995886147979614888369574788669589046401880952806392942972366153615555862248861955960948901355690751152022901810660609538819480357956223862402857543290864445615675723034293300300857945230131105211158969408761673620885041329451741591547441331136082094401461255309119541518417889758763006510915108811791004454087828698384050126161467534612222243886880197291784590397710351616325429385058896839808855801149483838209084674387423791894919168844346223557318263141947123955967591197902970254465276879891891320468980330760384642603485502157482305697321441534382076262422637316020953223942701452107417156922060662780181918181338865887329247939412400402865689131753589680947092881550586412564686683632021678043530115484182550721093058713214854347778002547125485749711834802338500567555169813016117811473641575966693468107643247326251261219354805429176297492247080779603286909064288851169340829934586525505980549588961877121117528722509250754812543625099340484875171118432020668226200525629807575871373515219515546592147028855674469530530463654297141523285932821719432616600318758213594538017068900684207031537237871174718320553563373938954892068578483401660262311817597846131655678275847317197910936756940451989061948761192585597603590586623262403325181014448006952411854853967908536224365690552529207026301326314322529568464649909131572238540250802661085755008373055796839821538846455282017011272697605263769184278797218082909932563100357183230601432461037997188782596464654483066084590631670973828153376434838653969792549905483216468551408894482769529877519889585656967524155590777624107332129439364150065402687437003767519050328231477046003836698163173877618365921184470800326985486446064823491941378457553870504462315064959550390309584608600314384173543035289053830140766075673803371159938731918055711348557917002511328771623464799879422173044994737657484562980477444232027863952825877911329896275934918630767671540973242798232692284528384654149272567883551396429807388233965533371839764736108077928394881613235794761232175526289428065112253871817460812139064761911941590787943124883651910671409357081050823499312233399211528273006886845581445062639861341535344472678238962889492301785350606947596038763172824726057888488339172627374899134567299479548362207518580232920040498945054765255685654674464963038761065104354898113385896520057422303315645763092270540255481855368599876372339049795002344151673343801314126766605034193999537213128264828291535682130576192505073209969060696159717170873974154772208074329539665119486670222078109152773607559206788199636215424440059524395048458160029331226737736126988371674724490779913964845506764152194800357914156758344363217629067853514020035271805268655718935734524451736894692419657645660605928439548269066216699264789805431708560327830837338163867691410948717658212637633658908788289408308348302027653324128037395223099953822390845725723810354338603119492498734008664487606534202943908594420924722228538589392669873037213715584904950475950051941529542531006588808232686129571184187984491716467003219001745993926679022338356536133117556448318249316324413727879480853756161393574357946328461863855670944402515805237572559682266504317418365570487701139213411444708824012467148933183098632816929917985873813028148360046170471853135412844920210363259284337026362523523102535032915919687923792520162861637726312701874119093308509414361632049731350508328492857395775539900337943992254707245510750018272699814900039305669326772007466643985564007323649784639927396003373552380113065811923310796266026419052462364053782725285131693516205916217013606953637824427905535718176866113155992288456823442281439266184343469730645711050016546110537599512189896181382947315926353539712495937914124873434509582993694076323399431270894195890759126082004272223288783558737633613411021735212589913984280616132914789403896353756507692521365557686139877440559305852822877057387847234603239031092524193429848857444507090449242576387357315676669848878484266220773342580959802815759536192911684898693021387640908947865858127358688859495381896037210803040129182939280720532078557900771047325124636551138029246553548345219264610887077843021953258509710828376428076841953399272639547149027631697072950987244948014210476809462612292848613738434007999271606004110570731123355144284721290088528925310479818178118211533124514944923820368848935257543569733079910451877949907814075276299634019879145907412235996870558643001088286623092690542003531898845132594047180324772760322386691136401543146180272610654940243732436140849676369925816133265768122483748084479186488074463412548568060046201968351630317698329473943262015110807524114657534848784456591881376964797123249010636530907654591393930398913832505892514168559329056201031566389722160162058705523942036696382447837544317436980876622015464441407661191570327932033954178120473913938049518899891644595948198861915658055333112817549365907331521072198918423543138487831470892431889466954663854412398428433532091452508524527579564887430723868971236500867400942846500038411337163525456731040582066909120435756835036200612799813754536794254701434703520951672125532978690331359671578566613215575123537566838028175108259911077797741948833364390941845913644126248547431044346479889646981296817347385113609119886704131604792425051944978525237721484262425607446248723513195502329260295413175687545766916506838775340859821210087135280519746160219048839584612859455393413412609436941720900057209790970290173048874093109210829283026750836000498644497207237186425532791925595944690280774909866716444805089309120436713072703943033956907264272907584396348945147283051843693362532515941684878345753456805083896828327060357498478817359474479187739046276536397703348259589587169522445660093988135554179094073075718915572997809387702933677723541656566576104652587773488539809437805815335435529024987633019236381791603450502757744805135035681890851902994502189013538655856596605787323264419690684214351184206721131076052922241495915525126438732713925401214508586190235477549905324218877040949569075932329206434962953458968547795468948816763752296859813842128301166877215160482332732964104245001242547473408478402591381524651328285190198464304652493584736756449958578437235154698872473729538936337505027466101185761733375211480530193207740108509023038813918683813889088376602325146860979552974812134186090645970821336158769862550752092998052742097819927481370549520303266583766502398258302103347047467439228339323856516477949574801868308121017585653934333269201184977470865874861972510044592817499689730817578512892294250034521541004765545015060342694516448319913993881600945078124152440298769726018013835802297761632851681625999965052948841692873152417594141009126241852515008039694836258444180500008625634165216209514177585145078394129524236980892905052218542634258810147688709923799491063430497324577312339523318829941757761975238788922068476302152523371784125302444308545874307966645511290003455455633108966680921407004570446646564447927678764527856949068704308151990520549699572305101969355275004839332278859483060840859595930737307808856246710437515858178024586005804109816317603215468708848820883993046387752287537534967502869368594174651885028728289387040544925488701861767943195900897987922901456240669881019392702979362485666481519335951607091078787253007018595940106456302413696305222505919752896746805903896762752232768153876545762954211557009079655227304933448837191104620798027707507246193909674932701555130420358773272473643566797213788775063394830933570301552057378252739795985780331400750320858736303865900902918898596333045653133904476121798367075082398913859492979627003879041994042893828453066711046253277724626164906433495223109196440417353563168054941581525628911787061480297004887311242871311159970055575020338826555779632897555425841921958950730182951012783383232109747297771131041970983771115414927471604940572235266278332115840999529432912244357824779646777196680626383180210927237322303043191704348640368135401525639499431037702765938002383976635415306276006748140558710049932804988660250888646470447099130004703601839487615188817254539591513783604239635937458375579058988494576054932895969704638638211440043899369906216292760070145233744967696128688557511496532608125642503850776912078507880193021558804230358697428417785710793658856881936243422681824443749091463125335425160159279966703238683304762508182413887423036892604077410560431872759917848858158083349403455524450963319641194623099146014063694762991588800673607010040034096788089748037486512075571579371228901183032384433810109176401660085289259117735668841794687327158822463290277995116679468093667386132356089257223914664452302215707345517810109771732666731742242307107121289432178331050561677021655320346525971323367730094583170482629930553716870089902648546785115805051102378310890596902402493819247373688461526460833493416516488164894655866013329338231089426235904197282806681753637903045911093356520826364390061805934560709825250763316825206681937726368820536057848582595362077149867365871703636458162352946323029614425819539470479689846010803360501501503936047327318638354744260620045795204511389771084957048545607713770659128253092008623823602587003901801573516007272443580016489273965025824722561327998641393641721984587161817872290865022443073597307814956033704513335883182554339977400106208629004836339256779985260312833161146443608941639967971190417401219707217548359251976863632358532936526630211502739029535953394096062734257412406311609025842411225307265837952212955488330097428392460091369685050549556562717872725764487572017863205858038904354290578291923043870105218260239069613387059486387952898689082265604363683025761598489535936989257509175646320502278090413423013525750486039906125526217416879479802953630092459481834609008518765408285492337369659626208282178169840659441026548867457912184726058555066628994624961173222636010148425632859124358769531593937817852738739611701018182023540182500200867699333329424301945700576468206048418108183603874486337106723500428557175987459984521466942387688292104550270950647679979745972421602140940183380265078714013556708345412976197576304575559037386656693411444139832351689513240029194018169109532271562395250777615808501920436916160013229473690629928580215403168043958283516477828079486863570800928178137668344623163392359658153045022097679460499264723655888225759695162531751817113404045768984486036134297285863473638636108359789200093950354441546950845101535575456519721976966389273518660313585706905687414357128457661335420286781836922814310536260336462497498663855742729463268651816251566432018018965276134706742008635642197317900092848711508348882156621627082001645023523437161182579209474242905110512835523290795095802359418583589610978476553607886535441988414131956704380376887667265682979157829569132778236884739651392638360266224797404435744179572720118654411883375102684411597044874992529307849517699738630365573368616158931268347308436984548888468273044917203669366999977542866495502216704334546638239222927834229440706146851922327216607786980399837119742851320406029398720194889827615062301300413105646726245562341811069731177365934567218202680526231985817554599545552109630804872172488683944838167916206232255908860005908115513199857733605772841105849049256501180222559986246683601075255685439989658030290382395882347980037644181485215685477506587439051954308964701071520390577857755378308022303823570409318325106594602883622751356653768424631736382551304708164957288657153668704205181274752677581126692923641967653745839502741442825670756866553889903865005266548971964650929599029313217630889980523468315922726628856851833027428010212561894239643524612650285447340675120481812554828609068878599922331230438089371327707852367032196531177521611706356657226581184051993175942226903237224319448872492952289388271643878878970215993409835278947229357536596896304925079612294735534321725647275190350431404175645574910473050654358412092205388600852557312672588305759243888964449157035198603424556633479551154098916857439359296374698306474949474037463113298921320172260497160809299901229231156561024013748543875496336870771098027183162676056430386226846272143311745844602070453055223185610557916793862017003042678786781630405322434846387302348766940382491042116188177892938429349701769945092872936404867124133811330173382239577170350188783232919552288968874825622390496893818131317035203757629795172385757775686940091479141168712067946340550826860026966792025389354503933986363551017715726858476219701991967742060278299387105619361264293785833999483092496219806116299360470624323045135997686980728198473442843438021533009724045261772810492336761501066184111961819013199524020021519461674143470687375393839739792728847855786536243396897980923145691008363377645287856323327177469033343953068813665251567404100164308127746523380197233102822049317076489873080182988646677191128149632051254517369347341399268743615502404266430343665276729292956131633327468366421795433762401289231419677268462349747471984718466731480147482278511386906797061143986346639852704951521173481145221463324419477650975898191330177049523735393551965573105632815274998031334960301675959395966836210322516036155048817633674722321547044388897453610735143533148988156005131888607598880349931853223357107065041865654433334616778751075899113296059651776882459325159121947477275328433557588384552486020743092691381142943523192160450115512491653295706199240800529804366467568277585081262780882762590154049591934760987106013103282901489257270915125862299754685863322418036283377850332329077342023263839096712902458826042512776227254103040250420135692925493537093361471573749990396106193919515915951764038725182364307731331445889640877675516085633266857065515861689510581467824042573687755399444365337024002335932267278745061066643807694618733192830575127994438246969485940752886754619067901754477584501835480484301494946603005799207800296086527988951298510124105458172412796419279976026023343367084298735264714295329715031278602163468942130029767721573625123589698028782819848615822366471245731120399837270879065413746008501090248135470516889642533227407444631422758751327289971216268394251054037069822103724978660451552861621229032200528569946279478694226142528545222899110155733235163219984739051950016298302859634471817585245666373356266138545531724273560915715049385667333117461688556372274025349884311316819860601197833325625921738389934077604103449771291269128134205223610833646697660419356552406361262964641066757599334824558117444135170470987778386526305362270298985775583729995887076591028294581693173865395927848828418962577426329350176045392837815401697031902601047354392989290364857337365630838770455744983880484832109589882589346420404405750640361502179090921188355573085255510972863583935237515506071306064377753155899075721090922085001806365716355535505030485366433690896645272566218024722771953389184556840846352398412042881962716052023619696160648539078492518842982704828917008349357940279397396540274540646078255732282132662522937616299963137553472909187896795287011480769629041634797897936435261060982265665045840444537290830582434564187535798908586022094649495476044680897641586846169286192892466200667073215877858903163138052847179563357718535681932728138386238793640663185582232868801129294523106744119333246075129745263490845507018565544033287719102021851856075095582246907724824476555346923067754896224569949651788018959217394058218002376404199100851960430994981693503990163512453679457501484668327498604075353843523147502856276912191125513336175410363759007843728464976568116426670320162119759505085600554748403974846545778195904846199351788813589757798984289349180040627165729340125964905535066466462319207363504704695543845120333594492205003716112372886752695246805656827441518735095561118128104524842018903356741860235752018898137163044130740954937547854382967162250702676073986977967698255215006084240126752828280877231583811850478580757975210078856098543876379354853585297079680998110757423624316872313759473080467020322036741566818703895305567052209507137194792067711137179225837905915283524390665800951410229886391682057969042745337256855891148747165061329977857286920746145415527253984187332665634629369065810659718308005694571123553332728456131612679202559968538068579848610078973406445913845139967219200131071283291828734390113121452316373210660743654742031925126845799038323296924969076876362389036563161777834108963637441299255068314612353715421761384277745832068371817887543122210193096137260695910652065954180266715268244762004106613404962045798709321697488825742929133811778076702822107210102872082633334704163325563846951917167466678572369382679708888450187367798720452545682086029480385313368092435345214798588965623642913573414278018390347993477059198998744877306388140410972188524823317364862844272289490660495794763697650905571938526193378539968285569626599601981594064504411432588052289342133723083639653251342579123894587270203889028277927962498520951985302878021828182374147721998173528520529945890413100979242161331629383441539721157766075058888264904727968516168268769202164875345631908817514582650365880129299313302093550621745347344743592194211730766444734298228099559886977577054050612017815429291480026871766364014666783874082659243499802348937385515573645179508656948171659493426112883731508149446486248100843358408231622105992173904615572650502715348189639552396374064569789472088856916898896979107019704610906815502855247841086685690572107899052371484738807244763659292730213221580098024756106034817960863494962685105504266196234633631084294853884430184100268005154665945783984969577273669445909356478577486360649482214691389718149686806848629731488360671240930750103340509715778586218549099843174035170495860670683173121730614194369601277917007964145239182890037577813978290584719159338878163788572508164422378798216973790934264194848640623712805926094301018176670163859174441485564297718006597123698823929507907210666114705657756941446426430210594783460408628272828550534231354309212523352954706578120645662447617281137772422742256055941511758074774361739431028126251555843492874309519998602497112270843997652111505290037791395013234032718892052300678318705249476815391870577400761771649760801180013819863803289140972259009546807060486411016914497778763973106491709976106198640327763401621602381517920555552374104771007790422312919604524295904873032075457320211761626528160675242528529393145458936241217836349372958853014388644993128945548601619495445667120151276958071963629030494760491882094353347486003206960660758779382521189221985151671111224158016122666434291272442216070584656359707678653813277141996822969299511542379837038200529980174403897660528296205716154908791897825601146766418241340097036052318197843785888565991912654636807449950944479845398863936308123173910376998473394909080255444459919044469148826536719848470568349941273598301899087813311649589996528528081572803043409723760965538671837341220571057598868675660021667770575311059536834083732633485230395973768485888678194450870084753929557926734871724101198744429786823772946863333909384204721583935941760673454583454422776431647261225138000428504933000331324727385262050684351715710006554886938593265349951346052528172822774611461262881862926993602293194496083993427816598762350189464552867006393443422968800639900203060333250263439536308235493174794988487939668854700460841018545142018491847414750233157438462062143881808687208636777091235135034109779577235521294933475173264426288104641125539164854887621081100505243263891674787869570274238531234306529604925300131064330504270051662412770314959974213847689455612019224912902949043730811312315720760044176101899840346838798543360033296605881999761277212622268711949172398433530441497347448311797088905063917920537178561541696468428933567259441616025138084395283984258298954490819244180454017666760827981179737309147662795603482222629437217817016128653143498100108721416438131539939237180317296890566134247668393975998345947704823219021178455822000445796272942181232230663380716909039812739267994800327511258456630244793015363862090675077054699950240069489364401274996717887826436288225813116904944216882518167362794681087400830564058052858125376491245886745916893294648443489752004672901351500594245749017418971835153756579010759815198998339875962757432554374716160008986100635908096043391018309024496627190583759975045599399406862354842038967213776398122381326373238231302393415683678930329857025994650496748965498707113221223339240526833746989392190725401257787089795677558840470142184887751995527935666390688080257039265674552361112352876673322015109509389266401614181344961001636071843299019971396267842735405445824537691070471374476576442047311929930129084258867651789557350451516533617191276348637921858657770671859932765173704131762828477717378146195039418897787768420593411720875197294528761638077415392433308897834968968176395994992974343963753105955195886619561550378073763553741394523512980169545560083516244268055645918967148976648940573294796742455405439718932694878144843625463949677835618085094714400302819997173449928900290418662981979839760553285734014627664325209454502439629455974487801546761649715743868576073369753169097059511849725262360654971591463464727052186328417090691978587423158042496006924528135525861232396883163116091592314337789548111914421331773640955046178277843216137834625719192828191951065211722563284495887517796109477250964385611312191498492703433114739742028864212693862407362367749192735614174476964172751057017064134928443882721465520334607932669960912443082647900997308163714157105178226968711364504338746362690891808222642240353190613818670205323115288655954296061598438143206765739463195342784579951201503571746181957661482086600640704641813587546005630922568832974416219942394211893760172014468056134071746136507020150445734503773213008217300657594930492533175313428192337161990579857995276912402475707474705812779196344096812941352439126313319065619445883823918707062592737374431532088048953401039933343795381310608283071816653705517841749300076795410225853751988496743502653683339825959170439905069026605563678914284358645594979072259752217080553919567082913285775401458644281953498898004646378730047605774554661147672892471940045363146437667466260626184876420006246344151717473717067183216135611823899235603878219659722122082470928840124141782385239706603615590679889142078175154576401195361919625555763981899340195092397427955923652604105990832070053646581420723083234675531285073943235999328759823806642713662467904851520289574827183009127606213399081657828480141376912214042696447150586728644345939256736503270905504117071447830222033024079846456448316609757076489845080883784736993239321938460539438888793153612568923422693222931271804856472759219200177824796467543635461445057420365465901466313757871897481088018914894398424843967004632256976830232850579683405882220103884218455675493332472021856190573906433004966239173762377112924206995765373568434758608520819145910549352330849186041562391763035246052103287038672021592763127204482781339581504227561834734658297487632860356862078529970668473836343837475236642136828490525574981927898099797932160005356933447699498731360256980655962474732829473758949249228896592215133956575908058540774046040114900410881521272900104557820496486161644030497695113827944423190969839272297557412872998127287052634584046273675854190150116515530143673196228067360455594962343990038623635298154438616411830017585885955818543249712977476111981451804613438017464533876322915876392802892454020352559399335115445343510336558803068994140424576988440025199532620691970077809265224046532979984707430865795791535631912938772952882497831460336174786544442343961099984635731254794938404264644497261972285038888280182566084633667205626023317151359940644262424695132079895345217445829501910300797698996040089350017213863673573441872898439162833263309399884409543771279688688729791057883495321447646355121754365831474410693977346037948433465561205173796128253840307029305387931350590597298415304684570945919057366801536810821140522000552355458575007748635449062135455772607492575396991472981088586104903482277373171446096941995679623165861809735192896472993576863106183538435042996062331750877965656627418599774277502941091649157186768200360924397034949877745597339945778843628035180832767823500975807232864811677990790166509632266161785154914932135601972651423289306640641028071357879723349677074641729282625904685839366795459205598418307055362839633496253465458285375134752709689170367187564590991345384298985686875722040570896088900396519815475551061020628242812342684606691653961923840920181560793673470406414379553251974674499285008104372522727436649372475377761269644556661815160272578243286208680710968820455331074558186140096790003275305613307347361837801372590350566135551950145600097613138664572925420000329900050646519166532195016302051671806288093853549308025774961076636979277791401578619659426548518417874470019758488426230958556444157347139466076312173253929563131533244603624428200584975668499676436239158178399277609456671960439042565323955473528498606881931480701628994334988952496891824479918541083383156275153264807778648402845256430891581325289784997606181495191163766709350656251247196566866828886427101589156051061665072400658990086721742132831503085119005100802523856805246767806677988807280169649308701601063986399771712257226564130247817950925523750646608335788155091243304629636266898601759489256874887620233807652412811804446963774063692463352160249447255395756013133535239485069569735577857554540038511322196683786028689493347408636765962740273676589474067180282534707204399860288542260998741325650825655943929705615205849190997181546665113412014148549418208542230382584408265681594843794895710007647272874475661568890920622067763246906593809719269584545794170090788534730579850668668361163218742987205847953840291980266245326033793546739718108219634041142026434722257548980344469432968720195957451738640931526956900451750385451067152525335392545689094655442230865360428313768312362206940128339325724306436654993012839184969783082303779731334229538478132168567276843248849465167769408163204268641959356965502903261881643126888448585259683009323474593874400390797251867504262604464794980803091852274074961223551979673287875227202276123405942709902750055687654406069437422479357457608155102000366507733924771113247149995156711693550739384398123371968555104731285728647596506931464272074854768942862540604247970933274099770154947641172280090415145723203149179020137198176190785500121209141032592321140908389291031686089310607404274902601642857472048030466159401264900750066420408915374631171215356005344734735294262760206160712486716583781265733899217273966333871348494869667786951705959346296184279476671589540170181051972055989016433092197048312563671384261718211460154286321449141484226081323541137226988103052069649404305921131260093073987222579850580242673039672316202053508050607651883589273363947074423127947039182820420961290705525126386478499083729505818224770248651246122728473926512249568617316486210628661900143954359039895048314705786781795563552146037646637721672240504057250154779686761100289658664450037018504389437277729466776201796310255421363579877459759666308209923111105153037169792549966043764342815552090183288842772532111404394399156357485205492307786637480503097574611867537369343065571653782466280211830249016725601454099897918263918661438626349476463393251452749590072839489446592814795888019717998827534950220863914977682247554078048074366438758982527940141435039292284681377303953792331767624536402903129654809780288890610455681582480405069409689586492841319519048370742054162963078022618213268544732079602487199779990679222986910338389650909177355933410960122566778493357355227877226964893354132817502334269800297230309053240691113435964178869969849052352150005815994920522123299833697786382574990522049151768309556986443441280974750186047423383690458846832345156942622397375769977493151148702943050389134364487999829462494540845148386517941738257076583954808467835126939910022424775356037460299447053044545025339501465612560407839888989779653317361762897135815576520077160070499071219362097727611980949900474778045198528508556688245767865841425043225556571163809054324093198467078249840884471627482615621510820265401861569315179105851642869747543932798243812469150935828607659909288409098155457455848284583676385141877984466879182678383920305968954277956735519997543698445089581822288863014188293590208189886755647772899086231454039902733761914951458400062957902809448420291991886526417517552384103490749239128593992128087282200768274303498895678540752018681422042435401364542055714571840686984351175353388356274670454385435219252741396993710440099662594777305051188225314379314258842794138596658297689223659254995612971963880772448801865702677853545173208466318306499672035182815690736283677644671804817675932807419088348575530170845387884178160132935764508105842879047520222174812474079958895239810332721107862231474002608590199009748176795576353366233766453709163545013507353905464987772499507921587021669132380024559084131877281855256767413375003473371811944582273933194733381996661770273016264547486998234565433484837861445246913799483979002585490323656890974359509663382690374045664677905791705625031894955687502472502174822498760990538286221684643725972344575814407754567217171746822495495503402380525508518771680923022247701769784468058207839572892574796438628320134176592283085344936681192484505589757124190571388915991997972543872780624615106199376304203161765211820318167891939040461713685793421806021354690080673640252936772669886113063761693228019297903445830636743461545072284510477549998300610935857614976810746761736634103550281878215520950158163199318715960678524024589364429696255827447874603057072884013378318755569863530053504791050867923696955675418287733402436031339397651055470488144549757257694945300994879631324041930104972843766143358579221837731707921538165387271852509359237707301650171679087759173039665566413306291059400198455975854098844112166767440612116071058566994702889550182879989770874687898421622668481575199466476175545888751936474281102254558190465447182569256770580139522333608780275251517028855968442438990535812052788996573534409622053152290337390788483925576115619772948340608443426195383645400569321124088300052172904070701365461387900687385243969402516740447404095568576704146265778411979971273439841968082243736458263593951776794254717408878329344453260691665128767430613139891563408933451718702128019963824219577466034456356371832534133553475871159675102624411454944461685193183251479958465445427864691105296904938333243804404188940129851527842051648015481175116010721193386500202422742473513382965245849801415050757976029695176634073948919987209727725956674962515843452228887782669118949179101194091457102357907119051687918303779635259381102131010891473045598459770452142115715968638596203999399564651341817978353925403184809496071956110884769272194763395419775329532576612422136014575478683055478691060474062307691525312993526072679528947574985344684165819402402857635840218607217210317296296474938308137433718904583867954622928980822995359972745915617207744688720525961771322618656970147721636206543985664167090765625938286419480683149380801951287162373650829496094662737616345553829839086491551778146727469596171490502681603504235154936620970892964761365310186066872225159206800697608554710579425492512515581692803895038730384116468835787166112879991141369353521912674492975240260012163032131265470506004792732932864484108640285405405846535665472540937912634148379845185526684220277239761287744389052722927464157292406255024487216205220616452940771310781657692776034801437134272283149856999671553228102432866868909223363024500497918358416541175996889282734944946969467268991697940032558132602208581805691643636788231187322148240802281575719336426569474148447615792063270481082568185556264056331525443547434515777742218814697385784198772702918515777748039849966469480000014606981108615621551575677475004928759982895657462805433156000437689126220728534697858373791697409376912106598920484777119588606147325696299246875840500404109897634958874167252551728379708264674637987154772611038364185934230326518725167372508303358804723713669237717632990949332166450918978110842933264773370340594447075353835740275038350816203211397495054793243022751526545792498141442827330424915071862703464338891409580669428407535755781116236127560757574578851105362602117408642278876310762511870025599533710259950745620937968918072986659785261873499369524185028399578295516776579490951657188816865028365587733817000503420763119167410401395694464583544371509164440351249496841110449262960749413409150878709416394996538001778829565980634923198587952538764489440726458654884743671621830451630914828284704553299589955689512875572743376790686977098762874806614737326573197346236260900379210529578994518467914565800742180142323884469282402264537875284032964710474492071706759630157666207135826772706092708807240733052274191178033261928829596815270007520480565324002480924975212001734253023646507828734699300419797474576291066940425172196734584842709716209253607316959537350762916841045396480696067382572542060827499160065942253229645287594633493308930797804794049145341677762660538082758948080792659510943021297648060877853598087297932208012528468446760810600928044320126423953495770879124988286159466579017691935116295239489965284709240833564541584115631630275280028875231924874646459471442598050291859556812868759271463459561000203620072755529534922873598798492800790880833286809246932298933185729115137193268116720798509300077192770087399848570432225177970406139728678882659362447040877146390546508312881645627907293925508251498594209076100226127882481421319281941046785916045917038366207598939494812032441719583599355197623921736129906023768204287919310452849828874183911227198922205133875175318442119274157806613008941078041704140386108431908174877183844945269414340992529017261807580390061695741001280025800986532541864879520529202376827763536816225458193672416444707609278941165378099981098174169977376967127984184800645912869924978685123296668162319502590150384178870199678396616297004882704993182156245033317653788353186205047585861158557779267132420918361618007419676093668594171610762613228979640687093313164202653399910450869905451254980055174735892002174232939999224897359182171552807889380442741310396194356587571604469615710320369244141456674006532834366674928235710630756024989179136518623260193579923467902109217705456865967941886738271388401399850501915681568641526269544839528926065956062068777934075095004242112867179077332653373175944186034982628367649457539050693516178327008301274217429027889561282631043976459159341121234912632241224864629192295099853070087547467854163852098968083341893343718735986769968407517601313975781044295627390643379091634951312707600258903954434960577779442887113229853624091840167537667067119957134766733554270407035250772192849198147807395514414979217447557670196063312359767529654555814037744998713116965096326578075358494140551333636054567861587518609517981325219625327502979419851316266758710588318378609732312485934121430114212494303895001271296302999721876306849489818297321072650878398604383006086933821017956417303474814020315717995558056589993220166469235322732005857905634742108479060642892702092608188459973031624949478907225646346680564093395764695900852567319682969045449372354465146911110628984687636915452234357389171668914653494922894639966890902980417672022133437083727180087649828361434662011407557000332991813062238739554793959184319506573734129875557535301370576282849757658885765824603905212052242841335620353106412176825430523746147202159536708247974922370427880696947311605293262172064583063310625747499913968645502877341817399531041089519023119203469151609691963397394293460162829883993307503190567726737903077905850365394319819420356173685237410484478850965885364459587286096947462198728024819592076246765770932085002779834672475069172426236508544026477715824452655681755285142383058383159225082346777923679574565167029576005775103558609036642818248374940983380244326338984735515566056496782780684018638166559452798784828692098398622274542168692162894632857457778744390193101969362117106207821849484218193815015988947820267320673639719514181420961823062577749672369194350095156725665372575700637774211938795990889711850719841445987993043002766292609357985155255647060875640174871963918606170347444704659157772306853668442825963605520072088718549258417451686495806058565279828299050361592577849857816402314611435974830049909286339505790558715059813450494887085493457373083721671499139086459254167033100115900805115588072141275336782791752583337223886692220375876076015061247868485384779708495814839304504944684318822725285437851878031318661272622536002365115128889539387232002243976302538243236186582329629235699433305258860320517088831063915802813217310054144720753374823434666003432941980356950545110655070485051361568997302366916997987193519523700444141295957930860240058946439465040506040700635217962356975916866970897189399874140400479801663677621207639073364858101215331082339077550433755816012736080427271859694739188209725378102337355542777577631315690054223450275074739710672267659303915611046273270118138357689096962104927689386623851068620068225161385343741809192914507495475334559009715717036550455312714405237901353671866194861835131646650242305820625716594305482839060109964894829115059143805202342421608627822128709130048343049598494292070058953874237670026437324528276993078435278555769377140387569698397939762550167295637884903124477577733534662609767830706997188000877196559937950328151182082822116046610250866927386486464072629260209581143770362972694687093444824488853591636141335387184725170344443891490328666732129038790965766072044140378867764167121373981472236830988361427302439195554547601856309371240574796030739991556411536023443585184784827182318673502386522257113343226536732036312975987828467803909473130784288883617027536791996536496661264051152006065171611396738835237383052765226417111570807316390781306763100061845786460318317578607807509233027180207312021580006284818827698001351850085559802939770217494019821741851356518621939741359655464381267060435808076556034482159374803412399441246835762896018088713617282539405744758172384729261582453148288258980241887182768109297575123543389675727240087552918350262404556640442546821689632888003600099215368604231099244872652351602479700987677567885108994158156527178934259125351858975054140851014404944623980400666779534275076220034247173302731256572346966224878637147825532275607499761937861753379960927039406513140103343232629602145866943924073295122596319924367955485787739027542223588177514975138376382848963104903067525135843811692959317158834494995914391410044709463748501036299165273471036439633127470286308510309719034753668260209440434949876615391447865871487685050732886567406258089812242890379523653573176854843694704062860128498460023349755262219236985672543901077736452563718254307488476399811115558064051177925737483885696540575078960748016668086982862908253032450709875297135484533980544639181724984310933622420134699447988240954912951550015477142021273917094243350903073522983009325342077840574952273978956161280787470979350119256867613212467170072989278500993568769481631632706287735472126361229805659130001651817280445851859383826800358510504536282568384617495451008960506176942704924853575890427117651338571842422694089313387656380434586404259548874337346360864813210674150402775801529919980613129977945477131307280455350181660484642608833652045861989508548127425690694796293646775806884506694631901271107722787437390708669861641058405815337427089948504370776515449700271969495687275269611831197473644932651584896770019475792455665717653786729944902518628641660826361211564544258024654303146551535179585408297515660641869553408867109057711766985639436216797612195805397355678287115216831152461028186310836428167626537512600528908563867144007906888263411100091068394492569947039849374995247199478676460458350180373846281761094605506024824222194775006398398030125380003296775555529920834494427431197660675272174357139959021897287477506387451949682823050987871324705958278042211509788784347066651686126416126644809377599703464167728316132798209392324230834423654894606649834193391748743766626842190112014111102117794411969273493277289907849628490956651645149686195651063365606612384970917501906226345960791050044312436878662174552670973341214031313892448112804668766900880346560559143475074961552501299598230792603874125636714815658817150666120760911558572997964398796646668573076838750854959186678721898770743272961568792900300690926984114917350706090576705739580675989841769555653727608126709616585538520585716993377642669411853278416260363104122467923984397095798824060437903280193839434232513204276060557886569518812963376629819016944337020517424514031021953086223801804294513354895755875374606616446850699504675037229931010242145654851809962045930524328718815265309329872738876691950852297811619759491122478301604583072238875292990573932836390206421692549672336474617933139645554467260917813777505388796699379463204511724319767898150059832683141882660330031685940389719164969361873714540341966609191314372784160587206940907771123444900048692653274996481610857955719560741187147620484361479919222525282948121369283795768012834357838470127937942083308389549799820290150922547363996323039197652277221184247711029077197874678672785090145293792850037247797858966995589216007469755370867567817043172605062585450642160623110819071707564143514684267447179613190971184382391991690307346373218187021927355676028910020870769915100905673669832959892747218484043176523057018069402752593491607999365686458652057996324217225051062357788674951345319761246386345793769924801903580588396650287118393238635968649918329132329704417653759682879083938799999690274578099699198550614805795742775895471987221921695808123840824965670389067466156162892644980777156305059750813390534483178344465754496583331167318897492958508134133039064466632577659520838100220109675492024393580872828700399702556906091240207108124640317468669942308367469322828121545528087406632151378258761613384321450402617250679416813362963576446581663304036567216725889845727307561524507047846298073404843575986267958347544813250003748467911166453047130345690289703749265002568223856553150160771492723935773695214050456481884757109758852291123345037131124331913874187903454617608126570873853832965892922830096164085202962175606826602658394780412189369607154656756315925389748840296943059027086847673847754378150435575979780282856060011993217945734919987576953222099931051183664643370958971773376890857505990318281659678201785020860021113755057647671548358814599540193350385258568875987819004700953095636441811545294341034520881420985100929493087991350090169493408898335087681966203286471781686348409793880816963688487511117548413708419900781784584605149122616661859424234380064744832048950461471285448239549496245978618829411362907319599252754555209588825385733644106497391093553992213682092468315746515799111262027164190991706003612569476604581575263083706012384110053031461909770280367951924152677031661120013954580377528296848745527612466606566031882474509855764534279683255764215317237029902206336062107399983078466303344772447730479831689301734520953447419945484194297929744071697267709284261739583811076627532922738383829325790238299585118933340408839320084676600177106363724272900410954678970178508477997880866425261322177622557122567268650026147288682172999571600161603880239249774400166397424859903946995730337288199723652884287352436024710567519708395867867517907157491102324619451793356648798674628519892986885654998761550383935917193419191720110821990924029912541447771558423916057025292579184837139915822337924240293087893553664158327227473366769191816714073024643722602817216714691398421889308840499905398338770401936364391934577806919248943131210477813531631067594037708606560691591354033472809965910103210851934692845207490299914794552186839069126721662322403955326220880480042227911059191728785878657739253748537600805385999303955290683959655405556859755662347239690607385665140163855733083977293446870366728473035365557368879538954548055428142347000329376625503770684538485681908193394084464914199402201320375198467870857929692875607385807229613845528203384177504225044717251843269426154083511207323341830201719311848200213792376496516644654273552600105085862046332143196493583994464300020519002618661138151022865785736482580153506078053393872596134348300969792008760266394360744369216618167238317053876670372339163809307479989277029609028153572329166406978802743190764988817728505975695779752326523235607110726606871336120240782533189033334597701247161175491079112895327908935705074801007067250582981710413950171515840614333139237800071979966129412476660698524884440099244650508658660254326663586808415458846299273346363608397295046689664803352438547382137724578291415708336125554635742283977650340303644885509065298089850694844397418365333785637094098267797166637640605252553932258372174042460151672190872861664445520671153553861526634408010485367805797907920947212425705414916327366591304785384016685915070621083456922026402822738875493435751934320918740990568474897636488228360237750328708081048980322993992018284040243839057048036681403980254360489030304255165906131813327842721054709661570822236748569145831614866870622606080137799648841081773708576846350219278185885542197053597361832782335128144929416403154916944318175616441742610110183590951136169129698557099881120037787274774711340297611705775555229394423622879983673498563980638276410664189740699865481929629587432506837601941488878488829843603109867711404118914755607652971093922574899993635904714881228277566178526152310263878377738390650334049640469879365846658630004229121830139896137338313534062250988697895568407746340889398098356210941456570019194176744751226520667135530180928401537486960664328795332563576525987114402262962808151544087091202515188400414793023640937007778111810960324723820240944345254044914704183235186179154620798570682163444164143926340120322935641456810369005985740969972417159599969808904771917432952976968658251092999983924312316517928628236316944953209308442910501820702231032765904991769461718086185619472195007285554512434813549644131441935556023846006544558425129570158373019208915371402216354958260743331464869902072016243724186190388471989316071615050910568590451220248324496885399630568216586935783620812540255369267156789372302766660560707694459242918503306628316829824544203707370638932282094329732121758867989274796590356067187196388114414516026096507730330675915783580466486950283187836234835422251824808460559840257938288341212047640575212969672688211197834288860975089788046883710892401367133355610994573208605077963786378088847558133990249234159882076912606232571562501431595450315804399744388097393491411552045256584413094283411501220459696535173695258523785921459032990702557086554383168425878912480675385113833028764845691549506463148215946696044063066817168928127909767203229578470771683010560061363850024098431974542395065845472997538207738953267475787020349748032776665904138681639086228393789404963767157533520048826537756382557419774667605126455348649796986298279658672073058814560672064576904735703239575857039023470764675307372806440657216954443725034134384484320717312273454353493308791979301098684827158374708787216537674943220630431917795534384359247485069070426638324373898394577806659252031810523782094888692205237434963804887666371166196823884814208856697641067657396769462568610485260537747371662325770282617332967967533191633769744408963723479680646041291455061340970251380356415965352296926974862205804707466292992018267811811638885142900200489728347709178928778625242316478681555198279699556582951559235483447407841214860338433602988274035105597647965113985425729480542292186561332740889371208457584892727983997808573119601581577627466633452167780901998417732045729162120563324328932517592904803291458310317292907866466962704126697807487736287358131700641004661002501068349524938794215777794041878790488720581691207571786986401556105190993112423535970219680588796257103287107306946409927597272023452663190697092842990953823449487114722290526256957431001400140743436337597043711163824494235415905177305883854093095819978520659693502905217391056008540272594182807990244419124351645547834392583633009322641689063974008295149460026149114764886257786792168726093422418155545801321254038803018843343954342883617105042962867612989030295934009849709107434690239296615005579376355987452782686314929425010391608815590457451991533776975605747209008439292118876975539828815698553679737285604555764860878848189467080343606811851651970853373118640451621387976790797484332468666929197295391936731789507158807299028711266340231305642724898302515099183008870008790667458368987670113113569375400124006016753210366280834468971618994425450427185993576755191169539878448894300383302061343094250404363239789907421524868026859673266589057360788415673568578057177996362840648386804491058236033792207587469375257576829121926728345430957976596618407349785455081275798884734163943184898188532374319242411239283143758146622154031967286288110509908624504445294302965155957757291197511821885924756933001524653814441845888727356741510995818164296823106129390962306410300998883088994707006967451963471033784001280754477343111728737718684461132684320494850776524769536611471748212182880111450115767090563351392501682760925922673197955848487820359897427469150091362664006366517080056428462875875317130558223280957545764087929073502824020771664308704915287087372384929817599887161775085392142037800257967366429956727718544463821820903011336894191027434538640198119887319323912168184960047734218075819290344177984386904820967923389999849145178926091315202873210028552303467294736446657674352653988196528799849172612160602751924827802051055282244136406572132938862868362454069519321045683613909901120418381372403139978076225646019817084913555269847130059856791026933939843170344776353800863092613491096132973334405096099009304091196900272435932025895841435835417672946230710319790577958421707342186027216719329286878243453554069578739989038404562473818802422233198808908755539620976103722422635714218276303698374098668313137806464426469852287600954840988823135981833029434904473463461950769256362797920136718761294384445581864439571011154852126270970111842385975555823423036509363893134702602672027186942169061925425173942151670413767213143641470008587050519249759979924278294946575161609161450409541596433808746336520359233555332869578133602817982450411423240606755569686219824232691758971642180589333979801070932291265852358858137491199957269237020894782797563446257740257700698346470971056116266762396297343552560001124987446667857610539993781700469122237041256815453973842280908126790687885424333687042551512036289093942496707607334256445312270863894788460318911273084323753096381469950071703505412369560051569992934316295501918456513800331485170877911455761470652921626164467161909813312478202882931472367203093760420601379480365978421255735208651007062159115697984333276049555494665341324317856283326981365549590270231147440568633212355469735943174727701119927759448722992210938040734959264229544926025175713559591008780996409597448296409470741360124242553195257240186169444418057820176136199114551433582375867625743162170222343125736151322372586516022941279087857697514500639563636765739624961693531871704920216047187844517176478873778253741525384811385696358723346554001580862912234756822176223328857079314349252418346727958986004062003518385519880892896990001692699157939989022659166864504848830937168760944211680733737356042295254863507992343203745401314021454232970932604981259211357581020961961786751157003392611170154334410440833099779143577880083980371865875346021736865989266829566965944518849191621582103149645588783725859506336068053137013559962776186071884385418985958563155643136745058315009811437846669181668674314097832568196429206879234358934472534254519954501655342016992978659560461041712147200080553997480582432780303927800869498937372629385025525072119091807643352609213877253853308280036814964933485646352500827180809301158718504691851101052041817448390189033306604120238852051601880324235485758455377208064010207324358165371459243066785739219419177250758953907444968121222077736050856690094004006747472498771406866379208945108783099169863033650649552436278775461880507073586107905526712434617517578816724200286424998998353942506932896714635826866114591341573728688411690336179795945139649564468016567444241441075757739733142273683029377680330702620872366242849417600667892422808111333979183236035696299543077206095334368043174192141362044598252661434357651920123278924402686846052515839828711436063253956681865868638582999493171006702454115610582349599674557233834652071763085402108222138455288403238369195247397840586741475302659774106984769521180649040982027189735267634404081560935682257670412747563193086628106306927013302787380405764725432490574552991695752309763007997216654897226257145608169528660559600574658777980361114448237505803010724473932620347560548268300924522840230852697204046664814839827327038480678847723267863735513436811742145794627489108076104464818274640203054680292208216858775375155923052605291735379822165801312522302201999003431782765276967051818735218026434192526913295020934301591345664245043430976397413319626415661367113207117125653042445332700933321799250613854920888443827840157021058296639660687619694227776583144641142912379802921517265533002638928963716259092096719613810472304649217126093588159577918235818046920370820520220758345855088739650272010635376807218680976669755003546543597476081863760442917545622085924782324883304328970671796625017189305852534989965744347540452311366105917913764416650148552700920679194729121351846524417299107951876444837192908677388715028539858000144531583067462548044599712547021227842451910093770260646219131479336185858769969669096905065738189044506877322000477664623449379637140853237995214947240111347244877778127092120606289747927002072717629306990314967674283997108265819330285936982288586266472050519418889276696707685626517949430520551205262256120648239722342150365442855576333128495240374739921757462880486862315673805490243473132990241367737427651916796478225434078328819084604473557184023486534636931570412460893071947174244530880312748903857373358137738610113927905513239121201164602072490881211699903386952022350632325549219471579890918441527039389283396046339521502434693404723228101583238922613661046416078016542109149269990634191417663161983655756452174886078153389460475346881131926994832707309901806557490381384513474343715778396895428339015773391099628928282559052255533311953699705316057615090604961711022691268825385665559400978124472232139361263876490447263430774421563871148131823994659066768579932187794947653710422637951795388851169632987235151380628847885697288640377285565045152819598007979012889127199241112587297321961972840547106173057040325834513167575160479603702215402999800112146941104583828325083385966877164457867325158405453174859228118402054695521696537472464484716812464037151485840633453344783119381992589980301888093554393568629616471978452656103982375314267028580526323190490477575617409908903320438647502759093003787603884181983183246143403916733845289223680201331679329252940147928595957675454813285837578632202664621935515944279335766490144023448439985100147401525533084229343898036604220665662370267545922639822365717041689660956450364290466942782988987368592856729314120511621493045353322914790664595718900618230476276556255057899200499427906125523352731443722096501537604363329174832679958709910556426607701910390508194054766355806988272967466031785620561346602632243691381567448169437491362450349137265263859571773431517487168957976133681832437424906137537056074719104177624709674533246636296232735539105287576029212533051949728418860734587752794823169636235567682306140680755492553608531005559256047464381505403378791553065380951928187646455560881923162569898379734064935922657119662526063982809243080062738090554837383349605998547528885094740487244136348380082013390460602534721961433302745620177944146087198565081932468943856119792014553912505848679949313563621653168284926909316474637152777648592062960260945662497345568387443316493747679093482819397709955427240709206287242988014431883534248828656546061382348462165916032555333190170810385948171864842839187216906183994573981180955596582222916991938680535571762306139771193916137752708158218265940381893124434835963426894407517180301862603361759757509191180077044015532142092327518235912460379405273432866610367282735107248836567441476637745424641215162339390016113095869755193514148223738956958837768201608816103794557554940353043425855203792658737899607098227359506876444848908916280469625613313622695992829648282482489794262164289287630212539190324248873516391966503200274033246840710887329769142280043330278054599639456391872379181294669869640134906437660649947348709767693123033599138204251394911901950239469776951148317469926925946787775192442313528354212995255407813271431380110993208539375804379637643621667019520078858986074370090030288082772364981519681379434889916821177103383240880975299081495684070739292850683517629081785024591391910847237097283629319343426396338799370784753135306938003477390437647438444904895802809793610899488745508669673523627348375668489064581380018915141594013752922949563463336973546810713869578249077065006286367825924955302886633442874875234146193138948824063016780971738391914313043650602892814815017716698725652492297364812829142308078569361562616153789627075651930289137983690595576514539445963227120195681253734762291049085006093202394278937495299949155483865746238510792008811777556035755960837689077534089634019253288272551906301793300380680486085733898707516877087019107133747070963566154710104726089263515596350944752333917549346310537604715663289149641962465996528544122621849845038092332858685877770788974431900719658019796414261806050631902677472323595273556653580525418954724590727193713259440102067250451051147728296782781747210882719863711291352101120743339420051146311954804856199315740919644248744970714195570980247031988602125915585910490149902274340763019111531344037012777674350556987959086352928848170764009655481609141735218793965506854371943101126606649920254837772290305670568191009984671949869990861409160244675405361341652525438816998333393533829541848291979839780985227394831312245736281233430589769193952194987115810187646750422478616895138119534341334368517184738979398033006837155395600284052780579614073639884403995233288846527775392528647318898585988434457066798689795887768122524368605961101847009759921698390836581172741640065104635854157645277108001521269266345623230690394513623651195301637361378308512746230745751804954234441952698876294202481532165936894203195124355022523212406282086277950238011674958450517896624306747788812642514261049467943892957961941284283485418560945566045217630853814580854264072849884475533974516634186974938468409422948165592820034530287900864049664557214531350877632817258012023160137827401000856165215161628461906855525981543253446738538734222087666118653002332471676155592161012773860600000435586351123320916950115664032460219582580740725072641521057200341385641422949928507533562164645448147979711385162195671500482233771562840285631460265453914842665685742298852821029245899603802331292242530982543848282755213729722026204512848267186467372476695507327579114274598169032608957386578285987994383949718875585129549476733546072031721580055078285603861567421458651267677431542671033247245180469109021372459595468677653687527221114623402424425804279324805222419659553908496613024669046382030294571534395122707547730924977932601330494206110791676501191665462595615117035319692926889002173058299409230909296544032172349412297906871687453905499887432171169354451648248757949332643580131010957213058785572515202129134996329394852596593243858788955838675213645627335991841671501814524817773079215871329275335123559812798657241286988628668744942635838930098592886772211053027848169208586822523068256487399836419306622439643189135874169042746886328165791407155891510689314858917262150142110237164687981587722459084435957329408548630045797849698431657036364060314263217370601460787981201019293887538914305432574058079998584657662998030883908282821326434722631499717730330766340230365878669617261904421373165663199587627011262256296229875694873017796210633684906080829996399077380915202364067818395448455755919811961787062035994779474101655656256172835129946141931856363087440385097839136362500812532141969342637793138128907703353821813943238996868049168244696186760048276391384764729567169536914814431689755260994885657183366864864179651457441599727449402131220083787056565087843700816971838352766767972211812991949293134169487389388036030689473849600756740121703119443031425831131952933129649816926205997386192887107423344077250329722770037517912822119492244719563749807926772700859892575121496163643594414119752463026593149608521396583957007063667063314451496458911087312602934699581451584490693928848966273612967189008820530905815639412920284753845590175127671318006910767804631604198830711051824594690207696704899108795662927977811225327877479638379149647978716434224941601535129308453182765449441534069854575903220038523656989472024959261279022140968781782285068121000413140657659231389883764031793236714321384064943476921950012726220995988618222072386295092870209341278904134225364599873485813546004209837677213935305925775684405679876108666483418051909281011614941054299341972090951918282754475137009997676441123818520246138669962570271759129697654389328535644096263097392866371962607974337116009773742517299763176041187335256469760969519745557679367009600563638906640481213389023310706169473957684148573793714270348040572985843437083573197785813624736707211788562240400718922130543058137140104397168030322802711664191079199842714041990105285285777320385874626792601310246902539351800579866917991487082453170629709954724229514048997115681283846347352957179465551700143933079140400495170238190308800005482815326089695786369702344127014223058834602488864779575563262984757643010872535891117314249760442323547527465911368769625022290607523252332972555829323490477259766934681003177199024915901320107052005719152268603287645668560293168353706132602124558730304515246164228572510280823959520357372664969450959610936705849092150970112816141301009116991491364698261346778375327106339856080707184790345043445262794140569859134765524910352846482244453829345345807253029631112249608726274299471382960325465737446018201915356546040236230177125736771001821499931692002614039099811878617019020576164979441912781625658718467181485807322217764184878647390129176894529249483936992181610610437499269234589297035555214653626488310069406898511342606315728856667086278475988402280534080837884133127848870566379243031931013039056956395754961518071716381380626202536424396425961804515500079580237494710276709060895382944459472075987207690083639021314624692369252565258409724971613042454596272451434162414626214429548808144459267282050061504730786238584828919464270949585546337634232677967411423627239970707442493882262475680839416475429807656018848028097001201593629230783693170783264393357035034321382607751679457072413297295104416554427227939489936988352701828210695145269470507538225586633889858113611353683532103610559120173403541579041211690372194463430065550487422601345129478326828648514685552375176031356116423062025181845847683171406858258481110901475989448737959959090766763012290014845673763876711553457880691283201868538000928458774490919344840885035061261972109153963924719986175833461654898750561959264166232324847968292639289265997805859182481356738309493135276934358856815180057359846043136745173172724740765885844084702805789164265408809252869571154296127728923579341256685842125357696603959994126112547826391764224502377267861710228123520405884332286277909068891279394758889545547633386164041887500608656029379863598337100051677774802213315274412133492667396416976457903274046002395279566759347861728813860871657684845722003230457901554880752636518777525932145278988449104574340116078313951088179595808404526197644151166561634294325051760804984477491255357326641169667530766512739914299067662228599503587778195341322606881280393931072265367679826679345854822491029233074658015819680798522770209200744982361574215829366724795008949504942658064109924992548997278791570862524801859402319065145634345546267542391731997735011902966796665306745921347431434311138227418456356140065451732656360359940209410856014804045051392023113652922615580729635436421071278290969370196877235714647752213674478720036567868559722271670919752792356586937878106290405917713901017577483370463189458664029218687451583170695479556711376144998232446062884877296646767067220122413013255097137710697789508050211554670749581870061142314754868794305211228448708258095580768342327883906419135945306382592651345891725595864626146181150867836781210022382437238303052714953213184991457294891899243200968351886198843101147618117579144977402607561052643418720545090304882789239324429586015921482096921209765259775130803401582377132153304609135048322735059451705985743903075901216416456376473772712868460861400784208406701822323107933267053287241962985002073872423755672674599850343269973522996042217587262404447132768709071583182779913165696994715567592178820668298260855307391428300322600769824141051056796526023812499203900683392410948831368564947631770824283800667501819580259771268779024753956382197789641903408099204329589619773648331476913726248992931281701033719067451359408121128631964049647934330018827018508904121378479744376188665445860251710762098186213333216148191990408365647036760256337636110525162982268791995511702844232362454592656229887630999668929818705402450704365032930419757087118422431709532233669129177179814807929310786362154329829116292815662913450667795018691903277920095796076485640895530882717960080008367639836514717156202360099259172141544521471007865074983178427233541078851662031818066545570829972554446516989751009181550941131983073172191278047809855738551271818443831380670728807642337425133736410008234751180087590304150506475833012277737193109938188101792558590250532928779986630772241954037776730193997452845355348144315038183496286264191335999529178731859895398293870096076321630271837039690237756084474378860518055351869286892432428229177708470105063123373961757470106105550771904066029782744735170521777379119012508805222935089410070347608432293007640667328362073921691751071594327098727582078146717338340311525008185226805133206161702395847500931608806570526265688760167272200900021061491054404212829289100616526818936540699930953383237866969737320376343414865513119143542855031509744483006857726781947191613539176512682345694172902430162679997700682869551025545825449945367870340587112565211556184759047362434209765233372988250540136811809676402011169511018999680158720837194123364268931994970799873690726551622000793604223436447217895734889030548962988384266419144741050313188077842687807309928447118065794837283843137939690140959980269643009557590824674340050806712054532119894687172998605619712666533487437385285267964253791939300076256452021319473429887392448238806835960449277810012942530689427554558717027941843533628470041459190106936687517624052838258534955747082105841153687217644904876198432648312744951794244181686963209273238998101834556613108150596121951533975866115698848610593183889612452385667322683914908240969038062843206782791428941690863952791536530684458731801740169856665543253959854813274468473396886493861295140600512549061514556800522632511051510612346530375310816680644308706932056613148829904546715298464569272613026910040134156345668494883713903275803036508661688987560617519669895996320740414725608843985793642497041531253330841685099424274051716424056367351956070582064602021436801117400430960063601967339202260225794241763719798365727350408320528458120210328851588380197130338596579027490334363279720043289998521971641301793056532691959696857332703792227108106449496698221985965854373794627315557730079415368496580803092118346178183290066591900208647326766471773850198263269689774699126121607560446198907553479702533782986765617597854971169695449968362508642878569039100048833875008063621401992539152623617228459054237973330380315569871746598574740475759927474469193067837364418349760538003303648274079024092357214878510388866258402970357155481349796610085355512629759008094243166602168657261935919691432473200894859697406631131839804857594753078106808204780551846775200107155427344976995327276924531368474671632927819748483591261386550294649710237405392983651791690677410375638977721546992103444260153474298145553823067019695814311063484456776700389180176853803338997389081660186735079735019736743978318484714066395349305872406169460250152367336695005169601545977884632078781534939771878237028617836504990509109301856093915055837885426119042553383344566313624530201518170358410385347158922343863925763490849273404745885615102096619644481971232059071680927181255775453932998767137243710897555378182034957254865073017831106901721102003007253374725293864472306588774209597438248023451787278021905198751098651114500693834108399014141194230887798194485462021153015749833321822380474816796043284272525536038281750840596395515787769591822818253679438232401432721944282840846517973353802900474313697615650884209550127084213847310811637164222895155492589143665728351933358438270375422355015471097654656310399674479799085051614213843158455940475892513772631154801850612455228621595894235840966745650987960245125047186269576249143930697988361434449303761542608516185696157016603158646336899084714063530611908335526264554570792258904933841460539112119555855149780442069219543299638720795983951822189767748540271094127432416608520836877668880100092118403375666309301575244439857003320950236217478758055836533125356615241192261315608217523013610750616141703806008065224050996631523029302500483011310318932748685687410102897584024789518194717429169655789214454319917573897228061850042207343328003394591203465227125858438358801216707178204476857816807714214944610083056000354300930927067234403292881676646322440173659722878365419087725349900011006908837657821232822882173582876732352164587764145015829151118391688703847070843968151771957588182899705221254950993450332856215707332889390175271965387033309672294364699067374818751329452766851397799265168514117605239045192434927554304916145429787868310481476814041333199794929659408552747264021894583713138293623547010270876981038293030575163713762436284073861689248288308618462013646673868653849558455853093189158878020987949139511529906153264921295767441958122279242834410966085596678584973822481260946446358486800115277541004966726441715537513206635596137449838632768721306193328727314598291084501237764094548901672225491238897971693859829096810897927437281356331131492493806576806664738156242178960822534438835561004978961885461825819129598747625060991956387681218970678753767622109542216152683341983656016561801849940674829776688862249568915674808456742851859300749600203274202652185938566130351660606353512329866320400280667396544604383157988791164569872945514566522163824377092029643695027046830195324986486530447126847107916855368122772339438002939164762215775261568259462236359621206818631778262712868064148443104971695686210003271649873231252356070732360740663114459664324363779747308046919877685953911499181035116909284549892608285724239696623829611403317321841919698321201432512900157811871378994970240940354645269842406417985099286295697634686859811274226816705533683844752469433938208473563527559635680043682134907859329564458831739086757573552739209168014884108628474389292849833235198597118446464020248169661115527923891558483741250372603948121367202257098159744914908464140394849719406688260748227898016604217852089605024342656018946941019851427405781643731850837323567188857182146874889263678802845679553890117822274465918457701678620399754052462987208003816366816783172796970698575510269457585950591635291365946088771945960293889012453142334681564553481430192182145640097098722686903801925118637837495262850270267343536197419300920391328494958231529080184666427220559705512980167565059594036219997758365228830283768947514373242353401421334215070373850148003861352997669116307147388872019576212832204845776677747058905577667427014453391551251006688802786185551375054736967262048391800949725240029113457381406603355729715948057334165292104068338612568162323293207495367319226610509391567246757651976959229788324090859959498743504661238683016923643499893638847552981996917596465259256700036967351107387447798162727987694413539269207562463138267367753762402695808123758965239961534808893930105083306167912386147418769951840867045283435788926718323897225222359908686638812240434303098055496562360062752166515266580198421360208245294610504238033293893141559600434349276375264093447009949365503056238741493589947929525051504123061378699491908975872034012485333217248567191159791878074843104003737626784568435300146006595183002550693585958600083653982061010340653083236225370034535737110936154376660890258613378661016886566210426406567747977163285214960763993873087547734785155778945032815339793361446652641945896531561017841171943586418660672223553662644759297689662539411402687550966778921747773570137264757917586421453264257597586602332821215383301359492825735443837218531170791985600588237460832854881928584461907971782695385669680485856189925460644502987242598124485961214203880370756387852447127915189239951060372314299843291221612950347534608725851909759555879907286037364803600517084822323456276349097865930276435314441787734007155366243325031332890547793751933304703810458042239958101060849352608784255646320718537602183298919233355044043006358663028793013576713472396061349901745509663583659831285691891583948079383450471078658698662212736234936139125786116857706310382845382208580510389599441245634568714426962391120538902238043090284277219258267850174001121179964408130654011043694725991495941921494997843933463187708446309215215400216773477268616047443227207737708945488047659353137883757589862629383183560411300531046879338823555939681392157331807740197841722081865616459529878746400397420754936170250618883388715513900739618121404928297611085915106752619353895989533063367016305974988155098163937331910013541108386285011436737027618475267471449307462385670821075848908900406057433781411389175687773178422841226037539629244556192228051126473566859028655824965123981597817957721137568008026814606353037460606536971217859980714612123880196611658027677883743623072917636542253857173874039414363673723675878997926975585018515991054394234151580759094898737530129622113778477605098849216951544162750528324619820771993210818604503230502164308861372915376657171258680162086752708936898690637079889165913926460496020658859127703671335626546611393909252028938182613388640729979569226667213999058197155559935656421371020908501619509125196986849681100741335141320469118257142014936889088659093761419992244626051932623370739860713332626146129874354129893129421450791363049290339064616026942007127694344171028935321757613941014398070826577870054105784816176735762628437877597250641990666487222784618743854252574669909634258521066284954950293373680853275907069425770004579308186636653736654184343098129544319435215812138115663212133966094314368347942700508003394824296577574275487838680145332527166422914151276331755237806240635660896745741809547816965835938610095781660594594121975983347953197050320435862920337689700382735596797665027438248394541586574154364328557286511580407128721607121001408423599776005088509948612261438026235878144071047549812410097920259282968333114151188010394159248354987995039689098293101432615115234748496957828800021812524972694471192343138963220750244448077588749225279490851565139475806769225384320271569653815350916473484134133835541770781185037839891061355088737328787448618702609671848605787284951336148194412691948682152185921357852363476623848935780627154221179533366374404198456553576007222829390225829765702204646729798788887666098199206920546908710902016140166834138203498144100611620411639448900170557897667278139675399326211885229157677356877649380199687692751237946041860153086360277233106867860093113528764394448434353941937731919277917358167504962578452097834285170050426204951029189856267516442553215278491539979801934450637421787196871022313981702649346635859739828640133421722344126164508646352356124886505561410424509395604032151359378456680927132167748882477689448164103271673432018165281639100997840068909167969056846475076865601615705272218755236088378074593278131133150816437129186980286749243634774484948641586495702238542682726933625466211048008651019222631903984322042335832391188818432042656324839076135210828627762802903470726618973786855953740011989100286324702031534305256922750444558808475316409316604214926761081667275541608727674104690613553589567430168544708076634693159783821673105589580848727088287422387657163796929223652655502065062978283394229128354053700153461377584004826156394645787418047524553433971041393170745708975923817797549235561573892722211070690413338350994340748118477787019356711024483013392938102592962705855539571983763658622537611814916655390254206348526064402084591199618954715696058434400777317382937427616389641567685752288598689673648336366641449830980234354923404885782885040583536611133839386635192980668683117053969795128639302856360610937770091468623264741703732543309563076981221887849795417645273158912441403880104799166689095519413784352876330459210451434689832153785993510130750388361478056953060819140459812896953265066744881946770208312754191924703804073160084453862687121459514683226225471391137338313063595905107891596554937420151362496718825116240002312557896509792082927258183368675555395862889536414752375857896185470053048548322211563223982563849066158898199661271991253439015357058042789737271930705880862407051750771932330291386396108586580823517551883132869237148464005477708041006216447755846972669437047165974955021477356800918873818334425949950573604160601435681670307523548225393512895276018934653493418846145541998629491377980115869996210127242254040101525656789255885136121030948335377522532978228896345507307063228512488947923235122907418176195054648455672238341739899576602100687162952399311336304705299515871690054859091138264573899801283868038499638968164095817165313355705910983152962422145412344720247021433595655059891746967802010901189038417679593975150594503819491327973592142780175116168644766189388366994513580815491920817996017619358713619277715482273980870843145462786329749026236893227813619904784361156644835024808054223503110765153559645050447698550968283193225697049608178002317880195843388067046585457378905928624857507589748049834355020218545449471867336077108371322176859424686495083595189491470564772113900156101759894897439245139621665856217918619442097226734454077953539850610674139000879474046792638375881560142434351686281278857877349606614390423110695377184492895349146004927888147544624101463137760038324360279497895578094120274942253925867163410092868036867566064139119341189888294091095426643137655449560491235447882405183939097171982703726894070554432456596801249114868002615975864135823732810901677233073856029017159976799925872021653840236443448974546669111115898439496705678660092056769277526764091067493239286605243620854356802273275033223263031296099509709920189615473538556163018267132421550099392631670483174452409241501337218943321027632210252983033916742452279287907876887229329196482644199789761712554688018591077892516746491193855808818163936656494439736687103887446206126670063944126048716734598733533585070317963626746471468599768576944676171432621324625045034286315730737767346500861396069081554829635537084101020480614347957075152379231315419362862286256077822271900627483074041959123514539856827166790177385666241169128048888300478997564291015533557452059664744558494406716967335221380059565941503158003582192049433342517999613483722296447709805018665638592462584385198656021040575946676439507994250342561169107692780286866288137080643408931801561780864953503043953439356505977604048306457250706210956827913634959122731074474167282345539570253027373038393061891122953078604431679055792274244859926381486337146227575418200023617151056770326107009660713711661533023753938531205641909268779153956298887142802095687877967665835248574254979085083459569584897417828202758210989735139788787650825361820764609281197248040416135362164997144848798714771187302011386974559390436319712223879559746493649256073524177084750697649210871971496049030658240035816213258191200792644029707831192567014008604994819920292614021693208688340995758044901167677189914437770814186160396331587046563199932991273561315829404051868628261783390468484215018598864948427586390286217993373898769198512217263760772644451279345541853162727887048139629198538776153123023307342790752909447248163093395792428758929975670401530535030012752810005254755620056719829528831152492293163049917744072527860891877422453480286447945169316948571275802516773433579327258070287976476510391833720797868535406103151342161924033408360875987595697277437000696743004143419176278321861711245243675275789876910401207247617053493526722623358730404506937133103743101895589550913722236439107485011857244664324675828442891214510771083401035881709480880471102138812314484450566999585503225622172825353726223847709965477924276204780935947079123202099565460485926769207329250209297692346526603226193368709485272578669608764109345348901569301759449134231426348553105327172139679403881732525609106567688895718899371330682101417414806223466049262877121942479331288082144181633568203164382507545209917788198825112829887761929683550224154653365628063984866741853105951985580975494169284594052499990649308173098262834280179183915389902524871697730891627663194817147597085309130864232804506443873699062968715193996091815076853767267288833096303095844224667036120445750486290563815566056851853007829711000469149628431514257964818431990725907605345983066621431326827771133779536962114263014034029946191791201433936090157979621580394128242163244017565184927992673695857382169356493421753124640466026151513266870021249245516715556629925004476097131004005757406626667365389974369450799939700392996930184664553967183407172682207903192578410560640797496973042195010686860296072570048314329940131482088660509343726054763333217665788907288577715688938804835216143519569130600383860508570312149480878355612741705033771991983798236675172919937107132745600237169727645772952082063490853980589622374911292899629290289876255986988906604994651334874049715609268470197873044551696631272831331819875568185893348553172471822727348784525630082698890297953606867846557681991215311544507099322934562245326784691313761201115520306455363300651242821756987908525404530949957511564482796555866102238748055389861726364275048799455337574412495610266333796364304978248386934194572820953375294079808170168115022779336464549562470531700384896596827091472327352733756090675159629264453831759157474279035178880852640462277783299538290332947327778877252524039843882936704532251583296213559554970809903271424141667500233177777015149105459639634455889639695239951317030707665318883909958009996050398088639160155567780157008386299466538746090314078314056105511145919260452579339198099751035474839545467058853690115572486001914889961799817688455613663944960517328799950092806129355911499694702765357934795346514607723098347701502904477495400058951530037848439647030953638320307084230535779794060738908319523344168224914050264924415134855241545542808879160580386629292626564331544058131053526986666384233291585488490493808459378690842043817524329728633729873594385509331265922765335858999694518798473017582845053528979634059822297266199043154205327776958878138939823269847595657473579432690645535741989182647774454262496305047859118958402278339084486754418376328980922059553481024878263469462721220080249255231171406484608484319773317609288827602505250184752164215631725887076605166374193422288535288529779461848259085229318665279199471435975596634909544129059260322897881628803811674971202071170479324841154701315378956593418203632624168546334384064637913232599144771241445948603874092378846196320254306297884405327095144973957369281181218226125329958391801788961786370024245038669708729012865717299086897911926057292471171648244249944011619632290204572044118702883133340169227923174173559307746143394166791476922599690008054472718813781580418259542986933158101403506641885102821189862504027204831577690971093460761347367901716227841045804682086602769767942883544554429672213496115065311829086985486657416535944578631019146684770397607961188701238873254529211515418429258229925250081112695117048950567114621660269965463464613635492794505182789318738636074048087479349497688243485067928034718403476131385473761397392333952006043104763870702491231414953915460806367281298899525596171061618519353910378902651361927032698330156953531252781552037356191874470607638995369545633804546829162007684733690514601559877201289176379053975881628651478839318041291312248289984571138402882807778846439462089952982521603811736609720369603901229184576042586635981058095029009207023227469729175936003757327250750167531676577252354611253905163903814480436119929796139881996181867609318880198526358212766595833571345385929975489974563179879466758624432926216748721829007429875303108783720735531240885485761398507161991885331196776466543256108358143541196788439510184543802566770422537451570764008009451311313428681407431366421771765541863787198302710456242083864581241242289246830941722760963176488582824405782134754629074976977093149962164020617063586408897512275057718305966084582076628035190567983077251314886559549943638016865896014663365943551736353325721732493599464075072989838573697324355497076493631406459290148666777835495193679220226251494921620594764893470240842915421084897624223274779967930258141384642426314432606959823918114455078921429195196591743716250827707979211084219302932882579345721107425319468037402996769721664981340031825081545437937325040160183677727944404036531987495671162087329179276313597479161983926568741867251119837921002234404614245208615403492164092744116043604360970853367754202917623902623736974094211728822612543702466162608472990873455525012408711329368555351791245688883789025112224231954863097075378026844078520840417901266991952690231142089264335918323537121423017448519384688593382327060927626230754534660702556487377510043867997792708564129784318802922967244644674804912195856838245193192332899401786519994209236357003173836675639302030949412605870463726359106594421300012551907739395307692936609820396142208504843128578905778272076708968559629802178196366079441416694548981958478235443873201511420946422585184367573243759811609089472892674288064388481499535208028257915308758613721556185073010446515408099804208951803575042654523244211879980999323031310216643253345200068217210795982263478045805174186242002377955535397381220857616185095278771596355316499573144259356953963345676538635674704968724836972113575816945079432173736293657643211216322414853763857676502328009641148339333230256639999127036818711328398331117287527070980533455439850857500180835464483142977863001131811930440960529349592560533436871318779813926569291867694918383067777840530309414834940976051785389332122368697858138754519327403711726575647002752991147913830388890221899454665151465828121412364299296988575802082635979304368718008201127423666068757578576293164125505629875916139277411679633398652809614401675598894784535698742399916262272495317121398691683343085652394587692238324595327801380928572345192170023939618432071807070828950831645587551605836332842759699223778815320161695879987995136431850852742683693570299626837253757993489670843941142713925425494911407549334104535288107552914713208836829730619671128879689840184498998534096422505228376292836032189247435850076515137141265829742342664083378040131874818088149679051453968462883701997269664757233335544493528077161847171991265975602296423094065066756530292923020756577619659385919166246435540029812077715795552036364761544047334108185245573512630226759713415999739252219106832618428881879229364641666939837960547098463608086779788101843029248454560178141522058526114066625563955056737438257091958962350589747493791431401880409118290606780365503786022257687473185502018911707455916613657438898959522975871187813682988879674212306787616991893605185542239624675311640426382965791058777807158680705301282661300152271688667672541557435032205202771578761203019055633132647824336671949401020461283633468163892490126645978504880087367013906753956400590881850546154614549039386534817010422686877929074739206839289415462656198838058826518593682372973850795835467695694222372697077236707216933569764420638964554737703401156460393900068789675663742147914526402059342017921907624910944309758489980338996307244681137411275919372756302726620123675555580103690401637586137910778329324658473713911067994454819287728626097123301533059976875134753466950432203648262355706015139551172087399904676218144687596064923443064758118317082857308631857344270440874515884404583435144601031052890388135882906231246828169812851448890340447520900040151583966283567370530402365389815578619195940643012815516755814343932818219635730419278938563852712391717294914794413110669845908111181021887810172965504899850112156780011960163794831733336563952562862267204712371676566881057939474211806776236925678707698979601008822001893382412500821959067943322802966898393048599725634603296741521037554548796677749399780776596187748130406168947387403149828680190844034052983360586333130914128607349157845077287617254314532207094842396932790189793831368289705647658808586127861525660976566212151329224606675760994216981539662240967588799757379625837565176862519855331501442937630517447945707006841851293859311325758490825818108047833355396497772673132223676421383338121052333434919075588293310865954133188273336733282150445366553972362215153484564466062087299474483975410627976151529258950366799227639898369680546488883611346445553974574937104003760856203760104957111885781183548255268965509132788720443035531162833819007772494459869896303023050342292732291768223901524625511543397877473569946901413324600062360847535749080686220617956428541654192372474709840678758166631545081752243085696567142637293063678399110804386164661441800088944120650596946306888359608691013032320712076568155723010899021007715519935003660558917132425677757613580362843933293965570931476879456178554227579594474234245427177863589966124623138943891922663484123286081260956294027638529472124442484103752351002492299463340809308332289241315657344032877876518814193489901878060229415056041502395354459103613857523058718898669283947437700569080248347254260793643367444444017684885725498797609578730839927685274622913431907380768113154714065037532435631967366627324597284307234545880859612096118751676082683350778958052047744119238947541906172708038449621668224592882595907725847099393537915488592610270707623420178465928316156537464293084519361825376533619851614804392287500755592018608912493311751150130947860996434921277353867966042117882029814042802530689755282651325613025406108418735191149868485814151068858469982492743332765237017681639754317365489216849814953220410701572792826751133542781394108443291297155831597794513487997328710595680182897362175959693367886244189116187282709191148390820834634369812182115503108158162497166449840264254760259711053512430216166211988435119679446776652306257500136161402424755706062921727065332191596778377631853027421685437577294285063407326927867100178025494389999693372146566242778478783978867662771081510984661953681312289880460479702507009725626225425065823923761205854820254989762446842746089793737048150130944292335914421966842982481325819925187299603679493749111554152751662620541384232075459987257566794860409271664461437713791491128737441298730339212393769865249615467912951807986039264075299739055248054386595483660377720615046097528390721000820562493335234410583468381154827834666811227796331072693514548414652135180794797709881166721340549200767721708577450134074728231367502075971013325311775475331688487724230490049969293199099891552788462419163693421265407668603393118276039033762788738550344765424513105504206524572766529474711944011908788526338100118410706954581907551602491074040864407449224556956855848314763203314473616258430471474883078907863226865007471124072114704396915912827288897257808979769403258013190933717050435684381765992541379766316749197803747116159214333859774577495818743386561138765306837597240235857099418675307564497764362607688080866654146842823854497631944452722786505815482491737577411708539184333857824409498113123012993784593148462451790292660466672823454994364263138895018424241579623204616310803765760154522676928310944189060585695886372803552286806505161729487679230723768603937247488188856523537508813813707935083878841117830211182178276823333473111447893350277210232530116165681749890671924988391233123216807135640539634767749537489235461445120253354688183414681456556945341593586838476999620878867267179377435104995840314206047994134215801579594273384152968528324311998441383288218375021440421981427600626197788527306188795347046366156113557032064532842605140283228329323734251849202940500974265403456479345216405989863860188465504140918540390114107544763605506143818785085510735643373394360425447029482172369051925577550692280867403268154206979618170503594187491242660418118692562729761399670385670104291116527938948837408725467575718517296036632750937773037797033687730940723940475737534886457884181997413234977301899216205010636221671868700436781824176090706858842288109595366163165307929878924454607149785664750331995717696845144028922332341219555806977471243615265226619076965005711104289699296205103462354086023545585789934339892788171500859008668279640667859255522255800225430183911200388838509318750558596662864133001116289433961181663277238786575696753296695443193402919906917912789009504595238829567835249546230968548311196409445049322604829102583283690427259567677992470852467026966161009663825156998143464630727175535277144537867991067862442568270890649453092376795238403394116427667532775728816457418276477665176697259865959231352122630761392188290118665565205365381416748962487054353361500463103551051982518738328051644083710094898883777910444616740520311789260257395023795677447523203422383228107696765851432309725992382948985105936144286908740624250115432157419397659969060524346873388342101386915201830860142463509631394026201958973161865406134949057427958208335498724472696990589073391601181086681493132056355552905829982687197790022660902819200534573744834623653119834410654883200457271237609121344278986012023608628716190234164468411845076309867843974937532899266962491927544520589652743674677035628618202238518093401896660628558235084776376869921552727740903382540569970852271441075285694080048085636519327930598382633502702681663375019312504094532451969523504141864882591882019444398018105432304394253549501892309293896125902280603291762511522124001900449030653678584015369086188562907826154379578111835109745886927185652894844737246279571091534158940656591600858455008759522581707286537513819603954975186434821098938094127108301451512631951281243587911697601943876538490695680551536394025412343432531785573482250402255913278267721714623339060083318447931776945964589553633410220374418967703681922753822579112266807771923444063981051249958566821470623014285080358729832781041447213577807017844170875215914472101196872645627202639120272414050762282655084052600876328973110421179914600350637090215900535011222168175666970953775519709277150793239638623063136266662450471160523799976217942506698946198456921579342462505472652096088612242041140457511846755453667004730729340008818054083139664471054518557328673456713579252735205057174299268300937380802749053615024817910048908483774985488674768945237716542527120136288686718897038783607489406514333465553190289072177587704998488945612047787616613255172852128926675908705377911202373375920697399801757616256335082125592989770477047736489710447932678641032751353060258984060766717219250517592249682196875853572724510367055185718430008308576045929300161172973033278103385807705355763572854651889316678872065028586831037344510043176254409510354986579302565252658131229037488321819011443761790067833594055520364448231406790211608461021658877255902619015158812753546191250650721983914238899293946495219542708697830185400645452470119612050266081355088777658599822881858200826550045493938617136897833663329101095256268930114915596706008491615695871061166471750389733051218185700821222019055515474288540021982137707808970506671801648109264397854833829298949749842393325852498088936278764823014187318102422052405710883145187970830969863565309199833916210685043099666468517757266176272283685130838296462330847142838228588720244199401863541833969985291627082262637476222108991850780889383657826579470008754225761343214013367190125175322343807387128909467359295808802477661090600507787640335140642759682134062214264173330652449073696246152707030032971771745971857222156338470167746468635675587703710862331809104088730285738524595166542140570885280848228110476418408448161169811781078776439103986430509694654433239096281858731052917821508417005703682186388669410961774884878129331257043391198177524756605344579260418857196280500935051011673600585515068518970583242186830288798549837748441366599085823915611812662305793207780314135792392669286865031680729969103735588405452773047636779060761899445327083172705975513483269571240827100337684111070530703923072124717174079818765075227834754375157857891922910554058861078559207380744855488781925966510677894739259276111592259148103936180308022895094747330851810129881826650793531659113150196454653313673594868355365983715673127244536342143368537943942365642352240773678719194620808870312261192980469876473388879641052720308220652053374268655006500151434934792853127798637273717920252244702764348399119995323257482093973252422073032348688019797942488967838409148498990016314512702051030074733554807303115865543811256423436909017601163094448275488278335852129693078474125423440325807615256937180965347588425780667031721272930822729924342347297688496967913048780341479900812350902366509715455608551265312199416405360774415527544664018399613286388439507445436948935509989254781335971318833813972205721254160386944786562957014171786849465005407297332771789979215542912643629338622231141786419312981660556471995644700512922975814964871590581501152655541764444213611389063152494564866077420960916820619354373893867432730373796648290157694406623796768692906013230999261541538475029576841938651044993109140042085555787739354676808689841356823538781927601035313913342920087898041385055083999503912873048640455978389129438411371818616891600268951171805560964151646151816489679841443155099132885375912516020927713220654171915627848472080461764155081680065542977881701700092174822834057178983240872844198612875352593440008975358607535543056273679807678057639940483326373683443656840760635404223589455811791638964711140864406916941185827934654079246420104855372543490957343232840883250501713281938055425038259112841636969001178243920997598588213766271577816181458923907662051479989548895968503202896675618723224199698683537712245777738586430467615125286010379256266614235858723447742419620653376749780249249975207180916949801903874417319353177930706615073868492340643781273250140620024185155467448011355781597815702238816459057671655280365095658649911281444235284712404946979140279530614309855684897886447057373827709999316511808727266923927419343527672472392610612735063879317341293504203487743146142879349742674585970341244456890913001801774164259486112519554175192590227393776697618953622289034381604251746360054682570407331599375817116969635986017075130431971042710324454165040135808393018910695263478258220239781820700754527908171442453371319630162592363467894940655865087647596875547058372775224371251021539464339469330259023737950783587855049235711253660379731849680445457456466362628079810566942740814702850849125977992333061898444456922842952148502765086635899379441026782637354677775044817388961168604209550394767653406227597523380605573916157558856138007622790540369635314648014030104799023561855276792002686880473713395805412322034161932686002032367900476289937735875780927155814157394124336778047235565336065582910792702497370724640151066352463374625371994892979280679409722537465190713087816992066481192118778995661041231069864074370055559473421607219790011313948703551035025411961789200230969522954793271036144144956952872171303909679194350901254448694239266687332763169477424938829715304385855131532232200338637844292750806475639185288457610334414182342337282183182545903080371191454159659511347020170894283422082581841807903165491343333956591141030429957380588323026484226704037174255120388542080289959525342040436271079537111767917460945535715762880404388521466082376203940748715967314201908696662924386836306915229380391977044698563754246028084089266888626600859848425957009733919043476392376534452108106432163411537397032923873018668326307120693569244598179862229855546890744879127132229931358201454185415931377601248854351268777325473980000945928756617373955888472733507896731535500376383546537825232181562399073139021976249736104884076984625807332909015122632429520189285131215328570008337623130384525273536608770569944704050927302927590610472357832678852054443481765945616077025793631732522611769601549918281006747072540387053341010651548958379826515516062458295765119866699600220419982821980142074926188704622418839844540698918137710861763080506065010592874106887003079887222102727414222311673824997362873991799267350169383826653007839093521699889115869673264666956143909300958570075683414576951375030085216202097363979524415144946893065285460521696585123508232791650473554944321738081751721961590138252820247502209393129894185361660119683312225688144208098463480012556218577144278955927692529967913895305952251752015610647361609781774698250665305014141912215675832329139013631259776907827314201348624159127287502817381094474366571694923434355153246644389042635919852210290410667868945062932540812212975386674344001193566777596440896399910083331543598422995212530818037832706332260236233790874013518311441472346602677769803874364589618935110869218506322305141853385545684484129657594305792741608406547540855213117558784247257255979132157518503747659371232578814500029083947471577943373241422706166273866553808931727896810737599548167093360004752901439678643832251848113129482907950090759011546375348679296178378186932377745753741024625434357568667583815279240135941385860311243968111995446188804791832950582676870790395902074226646857363260133635729720745832315281712743755341448735467579560861398808071570112207135989625321162246873661990483033087017869948009963681060553775613801578172508173422074355088346696859431370235466486626169407379775955873263493493259455188691704097268396713723119233307387725884256619284609049811559340753448999873183739242021438026154361741701715078291370746437549421294501674815594243545027181090158413535203878885587266528727310792729845531707477634439536009480950770324892273149111165084408909639017612746643182203650253486128571397375529081669826215037387027521431530907986844395116190780422765682796289674199479483077155753187777280099288628016826228426605880082329599284455917246044042653455780835251778098912103290310824673581194131245742323480544435181449916356669344342355112430419524884439625047857980922962248907437594979381372410616807676365004467051482659297913376262489769295239658595732487280511983757734272942109194262188115051023685259235905896378661993092579064731427734793427940860718908265446243438535817985061708189542615647414611224370007676491891482665950204553434755437836971428972214454525230318340520467034688464967781076970988413041210235570987316591391506547565608997354056805280183203664262230705393821345745639150753410411634362050174712457468393873414224734820007104746125599893931682811585258952862032574567007981672957814368382568463194724625449681450492935481585754758831755146336518264887994455612966990404814538181610741117227192076701082576844794452812798703327636071750105732935054748363703656291145363557265914418446451761798879968484970005555362231041376500868772408391792711316969190574608954226710011810699200021728712904924609919291773976466856755214867514749053272923687929822265204098358155475155677691006441353234713101682575879506818253065333916524681223357441772866880342474704239298980824365842698768646182392172872003545475476497617474177727203608619576458781545902378802695620236479379043293847448882024426425239535582100482627050242911086606693371138906209599103830798436419671064772299104497510382467583269453138259905465648508135082948230472171428566478523900728491645463253783755493248387910308936890961563435603405312027096642125325412337288608198009347185782741990529353504171903461279502766513800299393486016075935324434284813515439407760499674437676092330622581991325029553629113570932001139037900025515651060206525062107769006600154791169102711064813313085012864241814027489199199764309674391132650896168889756749151846944099790693627809410984885225289736622010330635787489313195113374236568442416907927923842861612332993361293579668045679284939249849562372463315047538102582777604491852346819418372907417610702486351334296458234736506018671962560976152658095237056080563042812380400847255983663233730745344330811367855779036828544076492319993881148675712014239834010213407694469294160643477080946170620681686578143092582394912176067669370685399472711525558322561527257176735362375001416225333118195686393345669112546715630857910254086995089165324066361306945821127933547963980518745123698967374866586775983337266141765966808884720994135348167167957473893392125153489632699290637265248985825077520413155276580584084277665648956358477922862729260925474629005078355003908164290864384474778670819780941132591851794768701542160396693468301696727186995844121485839536123743468442400958777662088819864365360358708126468255768182997218322114571363089672006086889657584600027968526060346934594802003308703568972087119963311337323549486182247919191416106595063472534365268592891480548130940239606060621202978281384215844931687417314222249789362749439647685242557203240743705898225401537599563284600103186977486204480522047745387117478071712276136478354416967592475897620799854731775426586096177213538169421592816232346910485419559858598348301720688941412332908850005108503220506951751131202347111506428219638032502079921822433922839145688017925642366317908290534294497595220989954853722115460503797336903947914326316617483535101053434025300558884544639501728361426302909673823852983558310237033886360629775597540563190911337590885143526472314872696681563354677425397180270336049842313552992491361145437328167490883755720119270602739944485994849418541525141694355010958264590408646539658340594445172201273449007236200354601947239449069918108299854154389214349012659552638169335367628360344733816316804850084865825484849956350066952313332002900336755480976722426445481876386167644441447963948844068512963854388431245388066895495632471264129543858229890094449981761520460580737542779296670091193390502936240149386517219341035212370969495174938181457046887245438164694739269167236836018204952150724187867170596866273967221441853484493056012197488952159581212592104291915014003855209147309873191017775258417002257549648617877739668576863304902242069289299247572341284386686414829963751785193410801415410399968793603985638060725020523698224226911331507719568881088342094294295820674289500688195675277068906719935140520448870529759372517242600768877884265322032601529774862633078145447889531139191050149341849828669238790404062251237696312714383205446719485515834008459646575393299199884660333370289899137745524981423280035641068971898798150337529362826245500431443467862485340096999017752237356274020067590563952632156454051693331578791102207944443492860469034029328265951130508767206140914456423539328157369113386443225576769562944219561209525396688403298743553665057813270676521292986786826039817970535699926549226853246674380761377191114189434485744669609809591772506763686954632019413898179949384449342337922445802344048542437385027109064291938541560403356776528879221746015898068048042321062258812587828262600610534140845364800599964567906382795316255346713064436127082644016267099587604765834223367486550437494185932748085928408437542422766476233627964182821449997504886405038918871397889723310152664259837295790326405171130469247048000783267447222823908741773410826005427462853173266218690428417133857673495707533317309589567260125876074676262167576266085653784508755933475166444473477529295170271525380190136169871202729309951871011570748460759575232276444939913464631699463632741693283651517465418733092648489855519175442281849237941497797036077053335142838374494999491916784443745694126524356550315454412326066432522726017052294824160252583466346186660608928427897150901671873405984049803008865224969063919249042950608880643551417139083377041885227081919746053274188604077493826350117375505339447443944543114118576230626034435762205623329678801509262471277182051451907388668513221407721253548622280596446498402951468630479059939985552618465059724542544588007058679178973631051312400186080214411148157024150668818323295581578229686626015170641884387002384147725179120388802607322408834048955796528962686410175511642820713727243448224624910042468068113017488309323015237869345512951233023025104820138302460843059776156224477542198640593589583530559910448198595377713414038011786087366607750056134705877013775147319608349439920540063214425386274981643102518103132219789354543609320798461133788775055198755192877266831895746773673763795257761537512480260499081607777403134564024579227623335386490129692625622664784463162609172588237853498089152521031834182000659061697579467003148991765211056384987537337292557114038710121494307454433539949448395751840247838427985950029858746348954171753552317681242749150121885778156132418379441658991312725543123394087512086301331241831364812329516312060988904586809024243778057952402136515893741892862315629453804109405099091030177295909423795590557012514726845491980065746416677441606700448487160773726444129255012582856116366699209864575705789953336642950778327413345333058854828952733809030811575537945902928921667888939436635588184064083364263053380645771582697931940475580898260142702956411247226434152737025718579588020575824289247440473272353675377511418878915000882123118183190388236945453885466266033696303389465261839364068506614568667311365898138767923424016164260662721373350818702603500884228465408175683200419933965272150426039623810543010265180830823144237549199691249419068425958055397085219478245036760158531115957195089253217449207055716239829548421277434787464627084033091770949663311385472977639745460510395849295147435952410135296078588795986037832176527765471590308371012386897671045360770896487338303444264320510300491428027860475210237033131348968381679766104798218516414347494189416903901200448095569189087670970996956331154741909594738020479444828091026862855771083447776840503742147785542184355647223033076788495893070209823047613349342666565749742730929144063005027781584971209796312556586490463309947790433966153083504595276935129154361764163206134942767050846251745528188001682671074140292500406488652493121669062496679011416131013072261777591239233513258155401952417535675910730070051829366873735745654708380342529113035361372447062879343533168541252097493802404182569926772045219595006299539988757698726879160195765520631285500759805250346427404796883684414669225853500041821554100206312965665737248475803977767687741510705494975191732737081637808609832892899110257798279528356751792079796479140447187197163822027840058824460128539098408443861433120733549640672695514270474522639870665706217743194557452949790109037421093015105280535921787704849022748055294748786611315333776372381468888194534320767016969816415840288099989543399586633174824097897617561569273516562522201679342020814996447226750274671605761957384569596551385667174999797389486162305071657089071880755773522851849474688399225988333499310968607625252600957353565873439108699974736512457196488563450899147037665393242815290951667269810577545416931280597141355567733772794277558020687469791964904410330324821496342698746617964402987471185992540625953845878559486146730478348249488514503274335168147608369531124832468840992318690880258138836962898776058694938625833425487510481212172268611478072757089356806805488528025663002535386647265666255800041388053363652679301792522718814018153539143391696971267190023413434073544206757500550929025579294772882007096748463230647879888600306216675172205010771189021656728213762378261819037037941384546828164256269066006784462107151940398279119600780708798824931047359860534552935561401128444548704353870068325276026302398992629168001494497565423644406271762852121908734438496766466831864709134886975456463388607976651107019375004589818371633481773168143919985936950999397126892553223314259803535339599042301234506651058124421047713646623010981356423607907495139325594112596090340024884133887300052747004702428576889818147174010211624489669291408480313716915764949120312001123138428540852848675183723336800399401006903336552748388842902245843070050814189608944560894433135026024168754560934505103276488829079381642305065860462703452490672253512059487175200527969044148704525330535952923626576826775562357282152846857510989078384640410357599262663053997344001923239457655824543736691885100549229381211427199899155393320505591542957558180443079937872701876123853211408580448206064195584821448408136420571318899768982697389738265469847369236722370501772934969111946313938722319288052171808612731759124954885938748604369435490570723474854018739652430332185560487864981565558953392318971198653453777846651623366765425134469765408514225268090181841315227743658396849722254365133970675358122161171605511200129841381451274629110167616970918112749910452939487732226014629424526295942571344380160967243944293412765555717882355941043627377978187842348601160201936317895281330862023816656799950906374125939175658718514728942159207192267434521422507421095404302247233576295060413411787279224207679253671917786955736109617790511945309936353909079439933904147482896816767015008097324329860014410476964683252007864435345338754658412853308025454363833575864393871082822064741910648517386755914500938330014738630776989631250264470265593619455488672516491079231890026680413420215245064518364435022750867969339707158734201326102239167085565135858307520986270901572002668471237511838208057315254243688868854152743802570258420641554458105929199056102717968216130588819783722242422249583996794504189709263227851069687275139754421686304077255062723161635660369309710662542871996649015539088908334691625574779131789379179909083577451254084987624617537054521234235534708939551509068140718025761519747608288567431200673353294039101037934753468796259290671668983999946896407314317512964751539079571272933872065089720058274317469843663074699572997135492514678705827175437589963946582163948619308921885044450389064966627038501801185912260376998527825941214961736757369171840532198331987754917456993060801036287185378084028263448086105014137753907604132872786490516789060849931633386673672893732333170934724222270690910062584249324588608414190432517103042057917051262825273136071025621012677636071023016654171287856165436942209490903709689233345609796601246159897192759886028336888651676757537397111964309672956952782086965468554913547648140729109338780341373532293587320087296378218846371110684167742023119873846383297646037410496796839733074286549159312315415461631892132230420693488415790265550877412182119727069548909559457063853986489436054774529065910548049589563467119135877099504045445499008028847382437353034594161489152861955212211305446660691852819266767494966456654363547010607183462315236977471111578492882545545819752213849778730189713428133268884547359761155662978677144575917166737134609224934878127343648323509533416068927668449056515211107045998390804626285983337755093739107800610854737417719322509773709970428021385289639445727660007910198791355717353454132345180007354549271835004972778872732319443453230183078233399295756639774801166390999830949468076212379760340799027846327011337797739664602608960739704307252871086641849782711688722555719867902894007106113003401440918030311735640958285425617818524205557527844938422302965610259954030534864050421555035410470754576109968528671031058631451170578382696328433584968702562370459515095706007883726618948217234601264259078517082171653515167308372339930923418307245801043341873653265125661006892874635046769558635378325954073092519661604388634627007816454449574956169711204291062046405148007842392631857780245021747252477635308566972128467788873561991040032260581758245349844762053015357060484299295264932690947472343442400705013601495651522071590552685058529225930966817367292191677859334191565712583908735471848811032517602181146806697150616590927159031077695739141345410831370504540713201236939061661442685134645880898812289811906079304190016717472821903537120179852040723616620840307579081828981311640657845374710358048929794895635416275465283639640721350985587488844334550255487166054574613820493749819300139332726970040306290632264505551425840820600063559234506425845442646388889618098391493228640784876311101314272626318995883350141648296846430558012441969848774604752332653787692362397129560017345050128472037143757003417881734048109267579757470611100019575261522610533598387242269322725482648861700052115476117568572324414015574232509096692016893048993845161597029818915107685480053612636109146908696722087835556064986812317008352488421249911461900885433257415113872002048710018216705136219425104534302275656341301294609733268517211546094483101261045830326473870214305086405968419075925402236635493109346757148384708449594652955993244557334070678587511308633173980896817130215510750661874316141222507073501392112013976872517385428200764297653038845295579328548779069844948823435781632090569057817450873757149464628240856018100488585738270503722828166092992115847801955025315364707426011575404052807326674341784196170122202951980240307249508498313506784143414261091863917789715290231092851994214136478284381468086750207115322806044021725335985326770879894891459510755269600875428550572360725258623974495177024046007006709010639193780705703559510964824859629077887293574997600126690648789902657081548917632152950672699823381191933190113320378024533324771718084116285961492183270409825750674594652943271409719197211974475059284599306475007326810291131755951533701699522833732904809465444130394199301294798546941245687208286774875506732558563307006476903771150626193893683805292998046576040331469853796580912051548367727362985205624262235986086487633935840117914839005102972264978356612849149824823282459732199031195535486366267335267133743256095387437551508135256467035973884815147513198527024978844911286760773902518597340220554087056659950049454495003125390390615443259770757453197110971319873679687885074251089666244387742499381326244602199814298408640131926199685467671558145241873868757082407311894307367834655492042789452259523486628558074707961864515695331787801139301828883093746385511266361659610313750627986374139101247703379753154729891701794140603404185848745630254609015726704223334775904054966683212684281412028816219242971662881229520856522741404669916980924278506482884137731644579385462990180343158310144262073688609876682796550399705471531398586785331231207727853724671156141175573352808019656321970371556316637352345476895932015928978526301542499518105179150529305628360982018333624791221741430958818871694316470987677193484382795327301289553867114753546286472447487025718003445529533571428626712005838715162667970697825599947646888324503291795983805517514196643651767783335597545965143933109132983383510022214125538335560365315573600023969370876454292673444032335626951285122643959433424437037411243536174155915703256215087103114802800703097793514104766704529576970874497143238742896371248482011811472012105741484238243778390022380176349773425453501201771271045072145610210302040043007220859160739718430516274699637654081500293241181307422136064255211945046677823954595898581567382545119994153989353501622183606312907190236111067399025497519515715779335836941844608945796554818618529437071693092854632815335678875964106935257740753758667295302691674385951016234119187813264553524627274141994741059958762121619921288396843462595786008897827454508819051348251908771351720722866981146853638076577692190836191390628082499597200142451671593633704176247875032324908105814739827311446433063952972465229030294325110091175053169102148591636554784382404329969762151825445130650058121284687057308174291860603856816214808951644270138725744370636975903195411923950053149493070175919950296699511367625610278376710968975423299796019966434076663690409089350269853151711021029089845164958241366190127031202092482981010663058196620521549986915546910269056601479062385291140194014503917066406817943915304204670023963805495015176253274304185629494488885274676637469041644567584453832654648048138468199155968896643362792767759668338981396933106566133265609433089895663332535665641615352800737312660723847491263439894377965533115511049470114219909362589106991478381325810777126834787928602855820054182863292276022204007186925428665898046504427046749840795245677771108463647604361624312249496853512250144026687315673052119956195396004829702287469128612203485828396407100396794793104751238257609813771027100415994016213967769007160043665052554616126231463814189807802829378342902606083455809067587509352328852029984199371151341046097374441481880333983835491276992105554456469775446479925299177790279493999936632879736574630616335700966658050539768042389879302113541423018296612411309078670213201739233083096529376734317364298595163102282452939033157488049378127453007512626741971076325932512954570290300704691504267383242331461186480765339100748101904899023565505236730383086103005096689734977960581340564558601041242162560009933739431830236599674649380683450237637794190379852150814436369691938502446249517019103843541986982861281909765634478210975593108245674238293288380355841289526799422520933840246236243362204878941998900710678391280489716556476533009662687548701107081813409739768084996278235274976298977540596923001966389323890523808028262071778128466873602734767942869270065656090024596996006610486853705948688186229111188735809347015941202163917388000145464158353109249795735522160617127822277786045083559019404725348470034229252253127262491243243658437674379010423905476069103929671685495704018658286705075359423684030611085240788017412877006080469430461776930195588675030570100780120804576948252079352374199845219127154789181600050029434472839013394259190698432334897189620482928622326268071169320040870766986376642731349156664210761172238253518135084058762676897452394682557791854519530596305153664299058243211421383685072549564508443152191166597252828906911350780538752447770925606554856312646935542351010220674340857814532273217021886175167870889005580364832840314081036584519957191494204070473506630653683713942599086512602910297924185003376525140879451583995816376192033217908981214891628898407443879395815850567470034200077532571990418827166258573627972815881961119647915028472675779668472926215457060727991670090084512968577051680879726797218558194207920127953403344329412826855885047954617557439538765067918755168956524630889024873684417350597208054391359783570897614231386727038340309982029270422893697775717468576687374964640931039640776441561311231702084120179767024868224256579039401752175390784781343423230423739594038303828221686216313154031932612947483472077061810607902583414109360000068590034966642427473187041460267962763201997173660246586595305131909275289223253844138106523861041275900417247435657707543960944413333552282835338710637149471860956961330304841419550832505572027882142630265304746680955625357063304410171426761503697332945672589495627213762479570773246931355169890946071192173906307572484035969833593383797827567696904666696701110527210079173271690972103514555052022466130463351887411291723800525516933169137313355918449212102958967289332614787285258084135539265261373899082212412206985683435415395661761837165148537527896790805943584885915729651196981446386256056359186844144666235179297341361284119619420410756260241717285896649811196622944967936865128464803338468881036134308143559270421970256914812986645227576889881381847621628182603409446723086176067379745720380968451912565768297837155323569881490068785949059855659584230460675819098287780980745034381728377897240380396927867406593854626804544395837404014782973670185932825321609302856763383204630452205882585081409125131788150086316717863355060841530642649093107511662081750794384908655006143295931336697563224737572290274082607010445529180408111086184675654525702321450759399778196957215961027164088757317709417919198264936692734869017349472422785448087147656762717235986977981513684007925506794551164235081698451839732893852482541846274821248640517058717812395001440730605560241522597768851870941559129838978462780658683032699688055373885389277866076477141459602633620468862332835031164037225973050228534970593432561925828324378319822257040984623329310743041449403876028707263166194749346175905825075522625123770133418523564373775143430118859286751923262883927974891850831722218695185392957223197196814130504640530833687659858913155594852706766748711808631367666804399828807886372513485294253789084859519396357462322620857356568649528211942147540783368705614274083176476899955167342095273001725503869508391196475357195282819643183516550087539194226944651454776269129009785356486664765533438606819935766165614342658824458023866224749233842033248126844560970116615522757413862079702930561878555027901873086607840981375959921939318329829190343052894902983339507846772132018178208584045486519152233984102839379194846408228976993122031844565943414059378448999898586765675272719367046363183825337602482906662570539156427129044332924318160956895365358217353052954442491243727139860491109090204489532926717918723459943625810658332668520455636021842631421915159949524582842327526239017058010767295069564839857945836842349413345029723610685020094015312235554673337248445341825426753206683998535970221425406979857997481276988868701840285527290092918723008733896728007175281891436787670040432674254523735541203530399150472880919810568541371952823229889787313856651117970353400612852703145109526804683440196458500996520305931876784260871017766302021623753326937959839523313052365883573927397107635757834047695390731068377253043472559019732409375525607885238467533572415835209322109071746119804219629737967472224907024954738460870303502487587149753422654337287493695088626751157176225614138281421877690286103280886239880407627217305891640783600617120254729758880254823171686930644630451491513702211061392197696841133103119271293849493774270766312532535384080607888446590986195300888957840952223560963703020931443838177669672953621729099310724032060476109963736140646381148164436179159033035779141400130154510766851278386294200763389917114197071083765078986720586183432436186050626249713175698230852805764486422540442357410676795108498322231684339085158778197074911418507359130637086413318629175880850262807513300893849568120792836837804075904223341285562381122702477529309044605444048458302621182620645366739658971766768021653205839133823897160034765599457409309617417462390656997722518831435412025606507423882999321551982164822215913932910381793260290761928244133921486288931809425372152232778687480241258030206542489661013272044076655449140210972452137366971935051865760781697754390534389280784118800956698377020684989422363963277189651122441056473283510653081195732727089439182756221579176348308708217724395361851009658355416221482378381031175024498417671628031606277302808703409145287759400948628053583855687457930922037599994548376610116947880513696665956248035029377777495669276517167735053279864969229441456112879834144264800420015335007979614749460096822145626120388184546918783592451026653670631014777329042273337466388860149840955513910240316386651239808704186315186214970516580732801301671050643821406003607346184886147895869371827459897908277319203506770368273142482246054564609895283601249166425302252100156579742017378342922714564180777029803898951070925490147800009474574349858733820622931082119229683914826237558038342066251731229699307242198186221533366210093220339100316530049197248472833218634147694394044730411155723648319906099016141988275904036908032464711360282098928260757775846389818088368992599752073637586841074109924838661049362757368482239241595759879272797767223632888892957517106113198732678619627286112127441564417895568916704911658287767901887131485733952015995334729181309344494236467063175986255916053756907990571755227310193149333694238309203956546270428415412804427247686387565326890208401247621796592022249859843552167938307191771946102260097418938582504659667470180312781778489799101825597816127852675015109653919421290829993911312554282996877118804059920995583211195039338118650745831275336160042804962295426781907707079548380272482762138538232655547745297043716723682195316921595376017650971033452759610226096709465931158089731296269287391260753590774540490644952262431795784165132527650057020705480256149393935490687225858271950333860005447218136116119117834341377818882493369960846508931307811886568979273401117475840078116782027017939593738527641420461707546403459917701171382082292114427572052905254145662072253908709326582213853900262295257906494101035487671807290021198666526099973764652645227375699671352360788266628581457321747435924169651627742845306866402554722306603280916639274457301000632915567990794368053806425330595522795067565147911937137370653044423975223800859671021457586467244776143769691784461100953801484227843669169979877619308654674401997038320548685847775055200753987048297813926099355903613532570444283683554939924584024106674360007478656605679216965583171926530929331739149013846359366152515288642487597941056487252311053264265847706336921702607957431154910657881661434206184241280422362789315992883562101265984768769394692979074005844152276774007156780450595999997494754581974808581976284498173516091462239122408578748082041455826571102754657440589684177915896833253656242481866440709383896998718657386618870779026173232693645742300481267383836544077702870222463053869257921473254818412447306404986657608249874787694641482660367798340139976836367887772058442502347880085260396207789567568879483367324128009861747737206412027369167077140485139372182269380710421152009741110549594050734614147327411450648637766770675708932169481008041305198348938823117704544055208775534055233763153696860982570591477773403341770621607002826562670490371332919387854990808992068728448758472444855576427312768492302895198780058622335758028947104682563277473578689419526517097482870373867681646408667017306934284585119879996089959222133672120099587930596269074368909508027505581644760645211312446268563153090502790201701450193230489894489598543096446154405047333253518358660482879067558034661931112439859413783665709201986418887331222637758607771699109519223443088001684885142377996917519537870814499703373777490858304475976376462260447038483811577755253633657952380313575367140445839918344292029467408709087875782940126858194950771281443879524791062071576108706864253711004089633380413207773521964620616487414650987439238563953539576278475652691240701538483899631135551359322372289127881090743739361791828470758196077859420288756266949399605629894371238206549574889546244260791990507869616699099966848573628668654742751159298682419545040668982013580693278646987423451620588650322337094028185696511024909784607752863176603583196745024034839743964031914851714796539025923811076048819580405379845664736617969788240356380101192097164015103523863703477294599978061714574062828399823266794990275595125163870469606067338404640361658259263957515426612859551899628838958069687275461473745286418568123886162989317493516214318253947085378972660745950935076670970107191570353988462900846915341169044459312754471774638512261451588254190206388408996716625369268585965735594460146389814518233105231723674748633257038994676920431706790035637738477742274592804773143279534717674240955131524838944707064911238399365363030662313897158030181776247781344483290373624271873203321900525502660988042309313888267219674347472773197434619259968108516332024781305504752495391511276854249491279390775476203912859543718772194744291831145433923473005692705866392051043806847029538584674742319611822706329710584709766226359009794142471423979884261833835182894627318069823980816217690124442438090461217343079395090391504078624865636935910812784142560314693646365085173552310258413224294722730649955715018368734422517267858880399523122354502097384700875697278337279064647635025635380333634830722894059841215908824442264009123462777106853776540901702457866263832645961940438539361174310670590739931844301257156234727011614550088468202150074957696117726436274896137245554913349659201843087517985436516012313934603092642951120481483015394792807832876731931008004994785292924623011125091976080835202434284250922098402922012203992462372091626134687608417942430129473233587617368272659399345516406567023764505873547786000994733195248520549421459686933431894467830137499639799794633589325506418020547802071286906665903367261397278592168728676231660736776103145596196123587679219470939588324433474265117139330270501475559170824774898290301177752800169941914597292330029278722095228960300308238713258502889726705295877662023101679527425616630479244576395556971118819999952740887255348961183986318852289875251495342109698034913750973097316197524683155746387944813536452859702242945375616525452084882808396818927635202353318649000639696857108457161182587226291888135009064087192877584261590592724822756271351271539897853346026318658097375168159858039721134852651744359919755380954840139112010819274943467979612369791569294696207100248808040879787452140431246774341115789994681587143961181050317084289339044924118831565648251028217981990960559658525912002838097040568884775979065021738222942580844970261895908268768015918296604521606170420761492175003835075788625246216912885554249148296219669394510651092971813762183816228188238413813745925926496595880937979485135610137336050901292753989896079705380332550398325061814364389535979838346378847071336424747582454554201503374810565281206991860735129561125054096325888667475102322514521637462203966263201546303157487028345667163019387915275154062206203583651870449529128393898856804787351767132325942267019684284965448503551877384372274627782512122476429127607286718016025487601753364515124998633196303176777523049505048459552646817943248029360475652500289163388717780517811895449741977326577754737324305321316056297340872465138179477760187921195580373432231581389239162354386660637768899625261418244493873630935913545106652737896029374712372058831691465244361813407833479429661502844022008540800890735406641026895007425936316375918957553631118553798988028861531128057875177585037335806056567436974564184014407443454876613393233670101332427468524006391737286879521580623634212677062996309651530531713945952399486788049271608784085076883310854699021438053235760506484942274073987646136836342893380194915145238248085664860584494964360531058098693558123661975099778608314753752933822326308076501007049251393553440675061366852371413424775391961564694144402753953302002352679349925404878818411809937250712299113366147327884852042810648410684372123946020417522705527648324522411299619700161800011050805931547666699922315694680114666762952234918581298346429487951692439434707000442536326671597522669366856804880347109571411160878999704038123290463127294403737330265455821421692909298027572299606232205329977677737697824593859784067108392798458407303296401356360879242266276844083504964305212648826028008307948674129398432136705874216083740915206588032348564269250509627050463428212872151824431239977910081529995950798868517845720965625072427379087060050360259555197797537878343335731097062211817575155557258680496548201504815947973953946217894475235040639564600247237906015439627701172905981813522648325848442182740859225650798717115415434688079199875210759089124301856919987621559452513171135932555714126591527949861462982019969442066323062095016785897794024896233647366158997642764467688764748749475074455795733563900030798199138880419625680469774611678248926550260331872885931648515808956953238483636968715864900045430938068834444794278859567617016615310958927350773943428917640824472645792644495005564599715373115480111091180299726499056921213664144262880664053557007794176711581083981694201888544260689755632256331273041236178623592038781212953726787675463081195543860622943757981476860105382161720066656074531663743686124410621027240434520062176685370878108070900669663777736409855800177456620464249645846842279862309796997210243772809298791626772000144479984868161071421664045793485291878103486044255809031810637649812356562293704992282087077273581599958765182985497638639494462555110837778559496314070798469676876356515475184594098105011051950174034792973607488313296470053718943596223345740939489798609919268657157010084555988458489119262319238180733899048833034947506634431847079513923205307098387292351509707858724023725503027365396725971793592852114106183098443818180834316952917941045174440629529137067789653711472988991125940742983238948129460534801017482335876607669256653120311206809227805429248339006521095098923701002143063107081481297211252530878302286310921487895151580407638794111784652753258626859473271365072913071130431914561978677477984886174655873942174514701871852550052316143017630815522342819422615201280794839164244507649296521588127325203414577870099596463701967848657115585740537602177695153984250182000787531800609139408195041388747214333135025036952182561562425502146764809375353782626543812142569287470003042081103036602207421224502128120047009309879086668827880452563866404216241038860124746962364051339727505890327275075004674298378056339323821016960430989421255540687691979517263047302325839184453181829810270782795986234278187933714195340775628625576840439103078582494153297656499712309409230276503973490337879286394037325377637944385331697067592195609130481242009270983866394894340705813997535654516086970097043386908649077151095162889638464277255311031880043808100913735265121257566221312648046780656590177665615105900385541225520886495733080660953075696176435766033662044373584567968201419504498824603689401023796677029450327101340269057643337748221230088358009569541297786391412007259943511135687347309803240903029575125338945527416158306558318204495680303279941206214216549996482064267142114332522449303820166226377073660238486348399614026259550263415399566043084775045915562844214597623861315445932556969906908091201847683737957421887659496904631008519394909148379780751601579531198933461929695466639718410015181545074702288285674140054856098720185873745284604675779563494016887296249288622514922370887908115277465890568997974742728890362386230693180992685481895160829563995011265222108233740449613140390089145505108015786882919697699301733108909976688420123673757909656865938730003877183066415454001995465830786922370912003088611368724632981607874637290671763932252145579343777725982141001077194456985439774090290883283303806833921677487348228033958129031025981822070181953884721115383461719264981723405078805085384758065909832291676846467513690202613150337940181088879116493413880168152525023761190151764148222221795732417653775625771286555066200972214829590978481628321328225969834086076645778202959436072927430784724704455523394036048998658817686530617014362559024020651156662256341031991050126844325827254803019245199124661957797097867667804546519162095297167538911240002832571834186866960450490277189020628493760121386553797299348539618879634938393996733594086217877912495267858460877588002712004078385675614463470644871600878147290918946240947466222269209642460627599215842729551446140709628239120548042442946208442816679316636199961490959284237550462373094389160387298088129531695282666201140636261949989656486207066311590430054637995841326550158293691998323154031657704546756318753433597297495205966842515241019017460275181713212833653183405149111380465757971092414836269173697009705699406299612537316926377683169259115190550314422269192947026323595713554707580290821105109499791782685256765621308839861906780203999080187895173466941362411902437365566524515004000607787864488686689901271856743193059996981440778429038171290373447195587582034721756434351855194492214740543482880559455254631254575680603552089576515133453587830214380769790114427815746748719309242038838436954516764689285706889272865672449237822161778084636382465594174817587102908882186171021758353319724250246380588505581590859482433676387644445879425409683593595643719313647940652131215259801306967527981110938730656327270881983457891061698457018223137748977167438641025132816730601165076988524837551250341099539690369616795023494196815573693475726288395000407120016879013078292251099229837685005001763938516175970515925872367709346428134004621878842596188133992896127003742754928158816652942944717127331865986368258388330545308426679438721910179451647980653848629145036104316112167969016720306419272674911505955621056677691899988234975297299090248139739575131709372488489166449869217789091262321635781461501324844603500209060450717463032880278074315694157394671279002177760914000916454372849012178630105167825262851269791617332857165837766741913523329301256424335444371873278269656505672732229622176042459595883688268596579346636585273124163527963697938174096985449069103620303615324502034127644199469756146540110753579202463494198800565252961978603135563090464488692833341255261583718180353936399196420900967596132077290540756274253194508583297763903581640403925489795129601338743292162270846293767692580613703689856676265055024891270246322124535217857023056953874105029738301435408357528175643821214754932525260932868691007270132777446879667003441050229838876563595290561899880697830639232641358184858085166562219791491082027555084539941058137079947441840730723993767552437310114270252906649665727044079383150430311519948894969350628713969732535135976946014381575055327451262833837041683966011684013717280542022851522337767912769497502146304928757362046503739782853510646734894299309089920248383762561625595357000704290901777505866000902155484731435989301670539060726038311866873107540245392322795863337762793597947126950717489430830829544062141372411197807327624599520923041428730808995954885399972786594542536150232889661273012021209941883059605272462063827425594968769564350184604693648066822384751372603237181312955300017332314685640573918681193171137694293576041575878414963802316935526008466299286773547777638099055976375504779817273878217205927605704885969600340516763545850179985980238323497107774567953229882133229485911390395107979997901906734472304728818979237198698275780545324058390028082954229938271503326401318111247052107984608660996730071526336812888087134636145989659011184395961017269440728231315484003832102038922470172383650303613953197886902991145788002573348071080677169581136276682890677616404132100478696916823531017561035122317173261520648424982896318923604199058549744466933046557312416754869670566167743773663708004171353974576761989149550831390916120121087817502177347137901000662575673738821716501961400795193576501219888165685184067349509352028690868933303101995818279703491375890180718124533953816885536536608751967307745310282612297193347484384749667598773789577061467718179743467003084755113656866085914527994301995284963379273790079688550525560849571237454063524406719844953473993898106424959895461050510267537968731235617965523027886189028659754141187186063842169457905171788372526933280388004568838999270655319740806796932212709973411779067679235109708725902209527123354013695000454565440364588063747136093766969803340330510621566023493401476693636407586950144735163590023310299017956729434345639263683585986595768080205399863052007553483676075512356316899267114411097229505982133662271756643938454524774866448223119667307384914775050063954632894313050478729810474010079013462011631884239274199108986538500220100702113446668900045335923908795919045260971433615201518539302350030107663903161923454119906016149144596825689520724745899347414585259295980683553935762744522444909579129724236320745523171635440798112211900196938237381191284010551311505312587666738501635065648015329304406818912594977129658734009443646847435806304989790016396232171517620635027040491819481831810372686803530794219292145716459456090005338355239366926003963212546210225456205428959414738479488880988981224616026742117266416386571938562579769449348235613385750100828132780313856851925026685517788770097420638216873369378070069271484120643329868747070778134864558536311574781497476113686541206028424552588087470885901366779372420291721041495974968803210084508442454955961516822114528228738842671170018426204595839216269639015849010270303153788546875873335820799672140939988419468888885339163856307747815264340796190099890530640612666087833115148277712666679534014157114719574019279824776184366015162261621411671929812454963521510560179579829960486852835236191357700951351994032028148844567892599911285060707537630695366698326431985971826988030474295155507607039864521937448593408574707538228687807299197627608125859787762650759089432083309409226913665730498596248962884817353723240393669509998492624417939641721000449319891166727850189772727530246232478255723868966133504234575563447053892168469390120088443822112128170036980326705070764917000372713915770386497536902762923302832756204440167874323247151009800358808640116269699571773092627275566143878009882359335234396658747216835400492436720138461141625708085683875027015627266912912817270391896425504620753705377781645732081320559743122458971292993728277863830582435754469745992081801767905269303597947898283570011947830896037559506213887163382038487817002521068988939659809732105102330346343320449662588380843464225924934983732648381646495195449407688108365527816669351973687133961603140098551749724195177450108762146662632940533748025832434571511947083547601487412517735749895630703580794860379042353505254147526387861901328593259890616634505052705357189369781763493540959324055195665621066501051300600558197940965207830318484140673267210435024596896928093161006598822875035953436015483997745914739849533162671452721824713787253135098044505363015575585763964753267178747915403397463217123034566821409097090978263535015955317367075694300826072972451207010234193805189035132866561443420260146969950066487566726885980383805625648036020900917946865623373376574283427060691718482207363901232785189434227707700948248609714448941975554590661353003351092585120139450956661298620936356275187329234222444772095901717296946202254811313321816900543668047174516664800833211336226542795031029544718463851961599815930361287783994114505286544459015575599869952641702214368318606636618491372072001874560185840427184984519560665659718789020486157327533233409238393415229488566712331815916301448989960556848045260248923650682842673367745965234329549944834943278922967288922623383907023155964059229697307233761581422432319696846358576052945817262038377873799336509987138594812936917094931262619264541872812447203523923360481130527761668117561395133753648518062709203498523655995449191520263027911790721633700644320137109026214500446536109246238233886015730491603485502406689680070796317752956013516963837627826349132587078098614969547553525831662767314038897561431626443619422177692473871376869602109286022965691213579525036121280020967964335222061767619670805038799224544466829682435164610451785564339106565815392933385550368051480366340964818853207333620668174879064120324681101013262156562812641961291542859414905992343897614650542519198487991982984288323138181187531031758095858078789640665740887908733239992317804092379840816367534995156945102199164082568058311936097984204841638234773540656059198263783484844684836951318187686985636278809031193053023169357478610867617777270794093522608431463244243022430328527462745969796948445850917348604747251432706065019233762820712988786553961158857213019671704880787796258477037606271652453388109317586165694301595166385500178468022327546193135884663433658009788099691050864018063583573204189863758320210688405430728078987584510711426967705954043847139871066818471764111420399269230959680441647649423983972306242364581710711580048774579996593825740180194861014375373519670775736519219435322530175469290890680084915019087327970558371756113896813936888629236622895946417763971248304436044556340302918089679152165646817324653560891772729083646765336283369000501082667256962349661009137680051802530826151236422023497160805227365444583665410387263977038357391621983081017488765401920157456539472282244527140106083725367057957720488467145787730262468925749821758735605088542776058545364636516115148191991132478040403860177508325349845860828074992331026427562243548331181084334205173185020943844671573986355421779399612766033577737265916364395675798948699721043352353689009837739910154673247927798633003752781832846704044421680007339313453787055515246719835364405578652541300959406774128030998998351301476026637112327436803748937392953666267833390615323192508835920032564409095135252515623098375495771352856683113314117848661063055956739922743247437342027364609531233916185566474437490323028899091071777142888884009822304897902591411985919094750016798456904877163470259591037923201132252858515207004489829338643343426950474406330978014479582081722619045509074494220258848872000569482395680419316080448692528161619520016956993952382298482611824935960889477026894939402352632614898116179746596808748789867406607057060113730551553700924272588943041247370944008778650341153142332687421586623861729444029238869167933841582477958388180587616661239954406653892150694191469815217747292630016169781645839738735420982279592041713635359551994268344227062788097634511330521333620642183372857304901247413894492975098898810637267026428605656247342178093660933052533724616667948255597918735701426649635634296941938469803459806882812067727634188278072065317954932270457813137981205067103840262238755851703224965087170937809477867730790698997404312097048685960426857707782435604136083675926391179911154288585862801269167137378430170962293576900233475409183963458019204442653740441183358632255252919459377654908509660526580914710165125070197704067842851296343923862817679996593343714293222047936983343394526201091618657530979707085601553637855598341623459878485434834136075675275418766202450188040581704718083666466065583780009730550514514066785696620232005677084642714561027036474282040070787447149479094051431024179625193660374790383861877449895858864690627913637744567179577311876301876681442343751123600710142039104013864568918782753956782681404108558527801771362216909813948094357230414493788479775074473245813983546270330355656311775000705913025547473515162258378413806696540035314544710423904091746312502599490789332549359155158874685917542243422791526020383453458303859928294043314943897466625999836764307210775941215883652044594452763219156351278325198448531061090834938552021711514647720878080844544359077548800899708368246561102684754445863869378815620724815887103445774254624482935389785698628680247249172978093492926842857848135887766415046684220493521253277548417502114694309702693911195457674174986328685354928981459375255999154214118068859414056441636866414614019423681165547143324252234981617702707492006699847230516043487184467387644460922843797558516885264440518633205666805391575598334870333015382549119342279835175287522718972701773877028409753978852365262343804265733928681362739993333615165466493086549199672790078421733905340258308529750144388446368530407172353040837532470848957056056415215892016131416476171407225571309127815321096293526832626610773479793001871871079191782205978359761293215909944135405698853426496056256426486572869816899073299305220874508518256429872696854094182499152504328463399124819577921765260781591460637838469836703782405682257131002183425516875166652922044630517893364844507189482085322763523642365585738242910008525279203236063656251533141465709554695653145899388029041655452037840859555939432182279525683120545283363899049543849061537574705883711085590247195827699700119334474071139805558977668664447314718385984096488514456857821309823019903174176994782481468579800040165731935434356297208199901599100727411791994371420400629936308092127214780152097575985737768571550797045564824786151326123939688178522079772030996143601526725312579182028400148334006532738663369438324651744018699424769229389380960039713992526984179455639048632852445361077134958144865946174032129748965885193431180631109435082796851117302720648473746998742766444076377454045307920544601316457459378453566276168551961138162134936263239370533583907738962096379484595768616076062607007101952763030461795391904378089280419096722034004484822080134891941173919378105848774582919016740843256388026294804377944555244258470850486715824871085638951126764440907292884984630542802822617447919138311414386809816092073816316313440357462963178625604451847825967207348364126370694771520981914983193214341578538411853743505480701897246305916222548927083129753624323156874987532000937980999482243007346493852952883002841514907055032960644358195321863617395357727325838844202655843239182897129557178147726339598330622688625120829164236200956722949027534734718183642072559452118068146199070049545677172441965550821156844671523682875638053145826466158787238649325523834441993207923701264013620347465125558815705373430177576879990139401662822687155706073051204508145599007865780455998642290104583464039813863309704684862997032074630532176692900137716572170252707303094917678952640310874747442151086945046623450951681277706009082773783110580346720473066550054850361617723940924983220969218289592270754080913414815946142450951671021076738742156180816478710289893646940199774654781819552567066709916392327996653883152614103819619315942390422040859282801584307351260433712496117557889012726688263031944585402301458794758417708639777738735603329911759203726974349671599362914683854682512096807798638746417119118681368489448256477551277864356190193122972704585631251956401026276236802904104108646744375581853895035510257679212761570431892280267686577700372319980889346957589888976281464299503915009767018079350428631872812285516162155950407896976418212057709797620897339745734481616188939182246732893574467023299903933450591585154468524995009318788213957365831219590070746776198173480592896995892343327351772760771458999067309516007269295593382875929447442353668696964110366657152568706911389538935643573352736996380895484502497433896564762799645029536928942839157520765894514736638055151403271704068071044008356381762194097982814058255035294482610384424807997704635080012176240611881880951458203066188070579942014163341071767880763130450545163722938374914276867074051292452341811658128651717484756207459840288909600878297435199022215095955211237041904319049808465942019485840716921779887253498388230503910184861401241772661743863243396872282978235188997669119922416625712711242821083935220772940638082790385919015581823759487224660415013203929913126739628044212607704947529046808895514850774599141341285162019977780019142373192737361565278449137733371816558180455318951142303748231595307607506705724257793887526268720921498471481937871101219321820935914291608789381545144674552763661716211979037645617380195087972966201810041482915631773911505282295674072783094865574484666425157374457792695822392680692021327920925774587787380938489980308091511849434303921488834022026070257826287263508130614089857056608309198240072973704293883777763788022354718763736957071984332364885123083330029884542769665079994849722220723160664244430547355802365813206066751051955356462317144790431832635694920334760824878038952851247096229412880631088211221650048655190057848694497990498631604707040293837863913507818663738349335077374900440667944218544034514004784460835719097508049385913156240915331299523446120585841044345883986113651761203499528611891457686264167114741475494637084255147624982368650548574239126045469116369096719337514813635392811148930190209571155847291675296328980547691247675773450443255657021302240018522403232375656019680458277095751127492597709519091048159845236661975737681921316062587592019745513734977527133026291352919802220599519145605560181477133073350617203477487762701229251048958715228627755098413922568247268232306413475923590905699381016769512448801242293172491909378871618606907114187351480570393837720516214468153514562520884919505249706418006537526965476676911304135050953142971971468048025781747215120778213963629538272414908549197454923004581643312229567858314139789524529680123183547220070957987215453956954239060922355467883947214489626680934843950707479543512072922232079345212348574630225476289398238938708132058674980963263309081318132689327692829781173645079968273759374266520249898355785215581248028080955842051779354640970337874951290545997747726411477125917069375075836638109404284818741957694195826969063713774591961273826798680983416377174024737609035871024737072127980964293141924702537668457095994090618074604600129500338743183591027236479444507639049444343862198668910016665473425672043236874036901087643054159840797743709175624033758273864992057016771276910633570348944305052174205293771563078167340558683103606533208559683773643062992631268719427041358812820689055706212001284127735590230191540998453570009151558690534596927945311097946390637079649843698874774764998911024887609221409283051069062009533959653954747387034348677317146481778018048699859453152357492762436753823907967891821578538133245337958029473026017395567735250075360256544834823105817585696793584507075758336142193284681253594610862034579506055909332060224502917831872365446548656830510299721707042068262584645278443112768398455561931602415751233063298948187564238407171473534926709024734889452255064244117148966826198714937920884382963049222332562701830535912732857507662226555757594570748333786402594759336778677691586581034731485724873790671325956383479641187606419708603941168853409618632321353509923269340206035509716581174987587822169065377546817817079120928408168939388987262286585225739388797686312512246676522700382550493682599435210855634834411510888063901852027189704129341013179014273851225780119449034018585335486256922981724936733042814683954665810317221553327894440529868973832790775851687416174476521899854898715759618477579345136739730959673804192685625572857918841960364973525395990128533994444299364753579786661960640591345613136074394240875834029144208265100853863364735013141394496368628922903438403002840574842731685926650912702958837342954253059512881170970622284417495733751169365191947966544254403797429277423832993385118664004997042318750181009851058972792682574232828064476229807813849925654593314087607258418524853384622023476972817983274512143254018124112607208259026096558566510963667933816584571750354946233197231494399295401460975932494541584764614905440635320598468878237181504111328802715540559895998674368485580186800470090489957293294445502402096729483273712819446026448229528451798906851461484583158428427535068932935833264164208278052448941328697120391327599195704254944592203796403627821654398151057289856094134971301606722336652541029769694219456591868993158397560520367920327381436983488349102731603693005422650558557325500556035303750207925198083668959417763643816724732061491998316027788993769251121829059608739284219952695194009980203382577467909865575684562936253502866059852244181390972668960787500279871600193879290916491304556602975430358103616589308887680447263898965096425332228420440276900319965291441247870058455472083335119447639375265654086255091359144900801557760754819942440587838644131185950534249972957396991942624879220424103215399105517004608146657541926945099272090011895011804966973090533593862572633772495435116296798323561651515531921995630971280179493541333151586221948914891213555106186259653768223938468514476254603640145087242155443548255947668433694401997839091100473762593486554155609211699647152059173272053327422412622538810874690541671560247268401138659653441006837204167457026662413804488704648139392226718802114530629764168997566649658963999929634177380912633118243929885093160875141620472474917717855278274037763277778042324457370102287358869809935244624113316803954437679218028181123647701794934670493298048444545887341736836559738777173475964585161542006824975634427759584910348464887000272225045707003187634664572756276543974420821176952265652779808410454819988213999137074630562031360260257952590154430721593483283463058442302364763076603890687819543649338638349182028984909292741299278107868273733230820233028305563023704915211375790917618816103095891900400686963144319718273753329787652043249191378823475936443320255694933367609796510264172950215927338623383273056771873012408032292691618420231968469158346728860305399726947230193642859618210793486239459815713401619263480000489882994457846072745837695778387792813316862055013195202462943895334813829356348861616967332987258938972796887563710744399049264824933528725135026276321238530634763300970708073476246591038302336694558186990395842015869361699431982113736125033272974341900576423764695183251823872084731755350509574932424070245576728131702812223436933299616032227065791368438109802175758290866665181133701894816962699598452380299962689479816129912229784883551344911160407136932563037958505631225952879961569705207959565654665830093181461694319216070127693565337556409104549141305636816508691653995687547711234854857776413145894687383484366651012106048295894244851071026639531351657799784220468750328158267608804907715045298954513813537462703421573591803567206362068697918673451592787066813005295100062855743039402055712567060853446752595482931269299534254046257783698631488393492331740199481006189766160109449659474051773002278373984728638958786606283231150560259916311338244323645850253649086292020313454807022739877292665176181819070803656924628349681203044609979833731458787428200525062266410352911712962438221468133413400025048615761577525202619243634991550355199542128369300303167031391530644796734333778918095482900761274406406144602733540053018804660322381955314512827356528281952936900060599444046157366378480009992809368340486883171216968944241454868544666681143256665728930575052249097727278006358709856239270231571145765178869444917990659364070879998505775274422973366679560710568635003649266799373102202001585975150752235016614600980095658762064392447355836697374639477874509611181723183690030493762708002892447419903658515421916502948852632661558319685927728031653416610773138531311205246993119434448383451254248470093152323661972326839335758629864168014600003469573952978379405260336550830710978583235685696675360548266414885274698571332122761452105047594162622070650226722750894645530129491999899478340943864179371041438146922955053985400241612199822117543122983384410909705057943754469744845559278427212751521616365329660915232738314867318441328149081609441286113367840156018618554028545830167468687234215230899593260276197179796475987679431150352713029860056517094073566055085060826790275082764220950125555347630457652955729256850592444816178427674199527763782250890404228726001730342841391575515458482333942877868172296449550272876814664426596937690865193628756632872400244764093775766381927764451102334884856666100071000154284537337131977586155613630524097050998004288396613083680982952140790928207184926774900596157414329332209788724511751690555862882497197937862015404572399085072158096831907689767233423975566834393160078501303371291187419453652320224629685187860573410902411460518355307614864926502882074898730576040517708722677359458402024816828208452243876540039807091403251681320986234554509948641877538472356666476577015883434010406766201851485928649604453722029945007388100174772124917144522540453102866364567175923581121779671078960815721088959296679319752263881786436668002737141204539090242750116727366377986052673210099626140434254393004766740206642759964365252172673366400221178746816389178656864482367670972880271421516437738950339800742537886840195713472862431060460110860809996284884949644200276483174840786782266155943223726218709796505668494026543793987182348591538181527719165486969594432736952281698803793059995783625152678231464971525141356175361964665775039773210152304466417692624438856878394134006666032021498216857903480256560774855191500891693715355230616959475336974860282262234145507055794303152715182139563255075636085893256878905362669897921743823149175330239321318324304858460691253027074012050319203500760605908587277516566762019923838244155060159648301544067070162875211194555447443693734849876432597443649745083436507723198901996339929364821021447422011924228532031918903757822386269503605597624038217328199025232339076723161750655254101282879769612012669530426379822139750055692894332431187550763106985874197709730269016621943746182171854482036234324447635355791583093743299838530060883698190071247520427116609633558724002561970870359868176743470020689147940577347559783724765069756970986832541509163476021456691324868347243781680820795410563396080035976441744739842653881614798764976214812801882355771890588809870239688517296354314744286919628895961513792138547855535264620153752316390673962304587711502861519245535438035330405201110917747293957423043403952745325332247158879738021308286296815347846589584662744680210627326037548927311439380936052691677966607751916785350877086493430793071698828219527671784078791919600499433980209924688285591691568338603887259178044698702053006583864934385318364399410305965605332846567148995670727386912411841895816223185791140346645714618665637451085357043409131073700839946698953130052457518066672432786852442895766869950250593020147306968833939886188614757424190860035231564061231201221173867592046711895398683610088870198486109361256307308837096923634846608520644054861935050585578643346840797182973359315173576231657130286132427207175163001842422572929478383431675137707579098990540473322914154430578988656534157070268371026584184375218213845051280878866993838925134529364160102932125814643329140782842033420057106230754177733317351395919821821539503308621848883851268631534403744124347152149606064609863499555991131787792861927502568938718117730842255607673887158584509955581545451805553252418166668093356010080174604549412268684772665003513561882090875037927412524023913035249764844722150272952051774131972959251219778293401205915091847927741271295687400542520247360699841052437800435917584961928880853618395196640055668179569019190159501961664631370372071766314772897288850092571276801550900413350856457677857010294330571322459067569510895541727018103940582448100424140481122978982826716983156043179942514499421711689456232407219882316606765323296601560676033094670623574171976662022467424456716163124618230210742376272810024159657812486380703397188806117620410646059515010114629616384695248420298691093483755639151949794958811251096812306413871015986158189485053311023528435846893317907462851867153506236769401645168253839536328177003877096189302112172316190465959403298040148740690666728219358985120628254381968620727158555242853719116058872401884722971781072121391067035674695746224515850318832779721808651436399509054671186338568302229761528163127923935685291644657035084049615807529216836512883215469853214811500817300827595247245843064825359055248087562751562665730258520909187812085562425623765925591810689522644237099678093873927964653822722874649236928508890891445892267588520832771996725573172874613236250598357247755683876534845095264824788262181214056691216099983873224914774677237580841015901374106617493465624880503203925718023836446929890070937616483913355655335973098435034636436435661624000216576557599442823268368013055993493152293071472279565612565513572614691658827478764410515267741143720406161799191536525344842907242620387964026242191178284531225443994632705153668684782961200603532498008266605787030671062472008472673324260019466145511032398856053161467328584813666922714313071245897013328408064228871208022910617306606300579619479262719810677181759444053501084380641286953384119153497352547836387081124519130777047986659084048151342926922886794520434561446908747884263577468304708389833004587953950441271397935569285166287065924376008437279742286603624543843186836341259358088490340843311490219511408727958276761568795980296565330380985718595640222122385741369567160202394618518077911234061646686085534580317662871854515671618019834486619771543301083626686927715263037657564579636693446425716370501335622337378846992176404468924990762367407820655620573829731615818730776922045436201766771229907584235983513479876951609473916370813142049911061224674811327345903725335682037719377899164221018752643632196940958227743165402071362393458264987503768875027794156662081121040957395083475490588927886093334755989079137101280217816622776974262280335512643927623215018102310306484665112435408202006298141033815091161356992434693673511630841847392560588957778514912265273946467131853505551407223453950879840286824363187379548067324421894584870762450043691698074762228023725831033953289419686802164623243944921981995132353977013768711882842702263620439119318710619204432486319872386315788938329437136749699657516511792511251481644238304357582693068857315639881072143866149918124603416910864533419808281735529037935100679437395037671282468016643888722992267766718673257226258492885133648464048701083831308096732425761166724242098675301235450998572294449583420282469204296809654342256313314824225415264058917688678056050604443064174541729422085865931137296346682685422761014523607475583948021794610738192867383514631629776325536027496293062917919886881904640702965995583420369355966542206769135725306459784307610255838856811308244691135830096211661850285581845193682191639347344096893631923379921063630201149365485689845576362222787082750203868637507857744780103924155760044451876522728603358735518831007326413012268441644136528133239636555414073503412180645753272264908391831219390938920020233516169317088416130586862489218235691858565996051270342822724229144743649445526431911745027690611091400891988011854480179922000647554521519900158543084387593423182560473466103784443129409105487231926283414133069981698254180846748813699216143473119558930270204329655504897256462964869368711456927124390742070696936458850883111867390512298515944572859939368173157547598490200657334471355322550050042534651229633599966310864971410253319622659286600804751693245831239573577660382279594161185989519793081761413965286057324438378074440581661847682924471622740128150016247889723530801576124092750411265410091143265524186489267317586826125095532210133713813024215720360721626727043791144440141455747925608607208597867571368351767893551013111024523431328166982013970930953409491697575316361348465514802752869460105051944831155487535695106636453675035286372637287285775120446569776583882317184149296490054354022914386660005870752001713722559766707486408928780922868817339385377859853051039834266787783053276376804805659910357143093844195915972612687129859625418915879915273578663683412540760687279272424091482827708470070375890953062385070590831568886190145613952372866503567393389502490204799653995243628703747205427897535927931995721860726509363999013180845274139223015297162611376246127613624865222838431675689213759323909827919704753559806100629683354531326535619922613365093892154940637336728137085359327908213882565527628438774044827007147431079315162117448403603795970527352808487377776811893170113840166558788383480976359197446881782841096212563265657571844827913314163345422533622115475967257544002579835607017295767711462080419366456735758485298011827357906309853464661893998269188563166119627814677710191212794113276520986614440008843530663391834420832794216336941136350056860686561519504273615284725353033120235541926569358875896801343934126563706189096018071045648179725689983340615329606566161946829615820505379861053373078907230871403985192395888305795460699423087324054340142308714414584871358748172482128128183505069387560112385990860710574961519740929501490814930529927708600655043084457465304922185615787239744185435886762261386228416411103584893840053165845196561746358846610009088852530631670121359791525428655964903821307789623111624886284947605794076798184014922681971933586002221361765707887598149638960822520799879153053845930117002665877006784293181505536324447805332593643778952141673016449277171816355028954162333690735059809844322697789688185462765650377101490550578862490356146546066426721980643512443181317294429111173753225922199125005384092400651888376538700723674169837855220757402815124769473482265824158890242467247096193233967630321270250946454699258096817204078310342854899500074486029393740120222925073804114022332907529621344754242978580199570328499713571406458176799362061987159847774537437007938766499097967186897316630687783292864434239958802521253459004977147609348380025448570595544227571138456451448909490602938903621102919669033066855887585528582108349056078404729257427063919735325146375540750549602313941772938425970056959068292036879911680119221177480582739165258972192050260628509328673089213133606824872461722626966305779894591742196923547137888985906494104415010960943829657110492243074690415313798977331258860652740753357109960755580130596986670766012917270712256258733600391796718306209119727730642870667110459497269711789091922452657865034153756659931061510632548649567938528994277937155563567301954771921114983736024139229746203702152763478094974997658533605526711777941225485935907951298375168631780971610026379804224837717882808978442721746151129066282405249999783626196067864107619424388411380920731381702135933981434595677024940255574971353521403013727253199509726664634879940764392540249886868158490378998261957714482896847479731514576557205121756358012358534634609798361171678021320574762160616381478121979087446125917097313707718898667124539022809779380358631944452001518530983420279575377756513824654047405961128435830893626673913308666393637080763709191272929559595298002582913866120686719716385903595261685811734396017871899478105626191011930957877927605955998611117807322552128136065477485525097013911905808804016902294340175325429822391159358781537151114082906723299355982368750641298084580818570169673205594739461943414263729982716523625719469481397400353018987968551912208714502492368722733389714537813409399831560206998080771056087787913622688153642775462310295033580863807555789595076632418993914129644011535782421849049094290585414261169393268620923340070351506807796080492979702327950062434537199565256722991289567732186710123102520703179250480543293121196754510118403215995604945137118852993506825277139966164792957928878054753250734144426304573096089488571232314009018014903467059243677633281870655833360375102388183676277936287868851421410434569444775574418715298150482172393177494570555020085462608127229673184541608685960574588486500280862178413136922515752415664939863770010076174737848077932937474218786483361416891947657676915502915178408833885598015060574361888158686946159074316971716726690136704548073704762352943460077947459423708034548091474079101198109473308477641336813243997447960758843843105488894537772785155886017907811355454512190654718816210334402221339162796854540974440780193283183754050257512985470374498610160380044789740426429638745905380865475184310570490071495131395276854639474904495090931426658581476277724620937683110968643397070150358861402851451226863065000497194928034039071738531934781983959785459499842171927476601386072253185846747338943255809711864849053565741626290982258885560441267285983274314317838304425665269029796954851629654425757682920618466227573700493832784259271749165122753006636082929185822506123222358564725112888615905660990912144154691386399499303807849757261526653634124091948427477376584949892605091643238742554300719950608272357199270758132318010374966514171680177606990768818707291458027888784420944577619919903280941537777835847084824538096754090383335920598438334561997116990507523243776655749524962995694936854292355388741509917010200804340149225296342144432731010456699812046603692444742605972196909864330564999834846039282890774698897978423601337348387856502280083591780345073217076259221797186921504171960315379550219919390871696039731830055801433210756570008528431385268884811654048136674541253169682046544971395119432589917441229698481516617818782711763130050714966015430382453383622135300039230798088003954339050775684163749325108577681104062399130801711077952808880919386411976065295749847161727733810307722042698176220827867759707885743707523560531096193361541318659159691670403093874198326962881761424695499959500530194749041831872467756567675046108830869638763715785253872061414074926816908187861915731328695672269043583545267968314003284542683030062173275443959141867092333740937526483608967975671999210651717317363693008786950457868091384111127944159214622173362606168813881184095387313627540175753476862383666216331745373938288731763613459392428768313303984731884860877755374712831432802888402684641544477145958056110748356480349392035158573239825929323127769166833519562912271272238796612131355707658162750440509458533641115317148032701102920286337330111035547756828760980926200525453780901359773001100243202773190461667146843828694001830144070050563642279658345796058938917048163167888456507099780322551650320294177621031491974574666688446164959834419714112628567974123505684576828753947340215391803905360780616117320508034594352265492515620056763584983862519304806309187765199256216954971829173424467095611216223298339611426927629540628900062075340333698912625791631686117052707753545528410912053291453963179145141278753068598135663786248468643780909664591023596970214789667096337188528930635263188681135544645670147021249856120496864122587996197740927298798972564120793149279925494052468968492751558682609964341856434285063013373284049645811040251642518707523911237033468268806395854562696069227304621222613536044023661370142285033680255674280886811303527806505893775496311199372045978828866160625522698865242068825969316707081667780803964596379654385170066620852035192814312386908889428108794415614114233194165113349362550714214416073301600682783029576221525314114468124661221109520644533620195036998173323451272949195235354365678284789403816490522762879509400573866955223742060299085424528124798276251285340349678683955093617177402408793775994093569510912077816647143141948982690844522953066598190914838518624603384872584954316659499454863304729816404765740574894041181037072857297033425755354360045537562941727098135516577834804195787489257444992197703369067317635293144644549371559298290763281993158664865386888548738769156804796733385091072781016601337782454474075646870920396675585820535004828268551008061421231207450631593854335299594058602625003863693573783938249732384082098669477675673269414586714882831930717662580313745158037228637352129466930836808548652651746286913205619181028707399807010249680830062066841653766973322591541955885493832364119363736135312085039268336736684253042595420166164091180511603244973329523716413968694144903886442431159853443404461046093776187109776210681200831217194070832314348953636575097739994521639389658934461568218010897523324302558970807213877957352616865417390801208027019599407363685002740857077564809948545250222649924692607157960338359815718311791313619175117984397460241005908813022590811880423855221322049812341801841901136131668205481359585435419607614827905504234811478626462960094694414498166506893014321954492745500098829103618932604677313622252383333437035916161508207265663757636523367047345806981582171509712355596317623557592830739029197855613528418851076079993713065498677289308162876423466092407048850195085737667066766958327458189178992475579780035063210442326691512789185762291105489979351544166425076995443332185429068635851454896011338083615321119524901565778812146213436441849355405557808732100936482822388963187467493021859522678151987220854694561688222938057289244826689933214799368006173235459330509957636803776699222260955756680918752722639522905718264761555027437525455271894461521469463788137606655601431315100787130537819709726146817453819403248103754809359732685996698313677295789809250524651335734578908500391669991272373293705061900852665541837413216433479188489646399877573553737554877406178666488891356023624545550933517550167706088429031684865071517158906332313574375237119867521802646064000534756007097705165338464901188068079551909335378762938295982459198747711061261192052125044118915790696401750301122552162707694984759551333939905249859005185137595618754274640561123126161336031132617204578022927956714637559318044636646134223214441426910535022900501411072069577826065322479591866075036988643831625603135613877685529600252196665185183241348320558082757052630491681625739685764219938083974365341404965570849004006797326268909666352092367375571490162949452786174409593689042748149381738950084889416391204593051707270338684745287795636342890534286533567314842899736168539720685106943418757953731106109277567213996666651888989176912994201096442425135352141122569546621236322282489967184359960104753729057851220700624874996658134788379960708263627481683316231659264014152441133405393580593941835152594951868498010536629421729260366572791532948230848675480832250098177588254947186733899609990603121970136880137078101169207537955295990587576190329192637204985705646581080312077432518928523788681956293281286744060528125469537847228885310815438040016020565051031732492450741284879886807670032527691098120580348914558461682213669141845823333504079196631434926379421127611076299355162671259735025194288604390180459886635226504176058004020411847645028092861522771124203856081670344458054798920779689819437339787047883450965200993024149816722641246027509207229402611763381698784189205655271226003959341574246522202384680456866569623657229867112168790789234363266368511402055192819584864286906926326394197303775633794200000917889314638548410484662798072912990063328618660194695152747330414559691556855046258274247541426946575219834645188305562697170204009782808100234638063160701083023472227931139487518471374722551720476626332230104639501273532977347562099598092795206744754197922513511209128206733655802433964655066366467976561481238862734238766858387214521449794385830372823423488850354808619076533864264074809876784106360064174503750687351035718036959394976726799513185824749220522557392216737886267313283109813142049185404179312224875678401998156038538682506043125184819829587623743135736624230287164233305631435263842508040183690263168339955567856465886003753682089969802400675462201508903943749836686786087882695868161454712742418091524670134377483715440541114830508680393659466841289803761248285529453166417773997453670117092960536997466042925384436419452336902005063420281435293618474845907528901461363404896455576073590559517059662155877608067578269494635658140364644488249492642462672390739803986508258631806710787266639021269572541626658732092260696359133898875430122832236276955959865633271580819761811325409879362745625157427209356238289295084476735779524312766388610175636347396294748693768120120871270217538544035432375613518641628803567231978461464700497733061988052456578653095744394457031971931745165473526858694625068231498740944418953403158205577845724786799154010767669650009068666347834820278622020401474366416389661835375044959104867935055261939322978811174631454253696722845967571098568931622710008641158725513759124834453265420954267140459226280990082173521620731457968420336150591397318365681210582954143587752895191348325593926512541541399581395133745287925975169851058968457304430205850167848775682518426198639680017321739612369539174965940882344980642311916049662909063349247850629082699686238240754766731048331699219705874964979961636614258677677428418300729533246270085761381759746256075366303352896642562548994885368172988938648528769186151315209106797800003669282660513079958393365296257121809769839591851372506485161683074295542898702946805852520610098313780881115435175361330874048877063133512348106620967919706530716055027998568515229803495141597945730504687563562953925863800600832235581366254074116325557852547016253590913130550495705579351917422810055793543052205863612893474959402819316335579382693136951568618036771539219301122820956753656391457769260175283611668947667020786195280519964757446645545431985623115110237668489725191779823571842695953948692796422580205023577301029293730706224481520004122942168989061175548737566244518010573441629612340536550461766069963944089503792889743859253426194805308837701581447251862449941305523575226274817756167707169647625394258207569596192339659043737753404193103413866669560314907978025869960848719550986926986539725446319858463679303505922876412144161578926774030054465228103534221922244054225303735347635703814105683801964165996768258740021687011614115071768641015043621946272875252788946475906375937831376262218726279836899504127525019006180303329934086159868495356794532731274083917863105782657393741686774783914639979584935468869803785712194680344790372680521004053301687751861153854198228027017919066906291620440951246794570298699272670147363862648175640643848069895150757886823660935121650646572658810995930779820482080474551156549441483704646437055169018535901202306921880063767195674384511190075053303642166271872142113584376623112343232260536010781659158109428971175565123502236963145013767767644004856386636311117316739408968263242940460113569329158621101219703277493380577714777485967168892600869858318183148916480889850451735065411452441109400733977988133008422620721430681341214100678712196720557431067646283311830382434881913208790329226188734363960862320753256169361088788967591015410238507632048017068933139312127439715949068879649067272001631857502000541750609978845503426974697377129902036226499167365245731739014964587820370911734446061274502927406821464044052391117173388381336878301862708294220596234242697304126209432321757088008940301612318701869327330687075911534359616668704093961062494565790002813302341636785073889326872755984589586180196602974194535358992164667503171886526370466641247903744326645243561456101815704613795637324413904027121799451170779285586591996707815941251030575711499285114287398330657118691108597877589068990754081438982461492368954049128235689822182980543965086026114846530164748269954126577841049468895895165980143586048089315672964526692130328325601869869253233191623006084518175776419645881253973159698814800230869288984566993837762514751032385100042750839564398161606968428593610466307705843609031160431395042982347673467971984232124216862913448451945773202184576636405010462474204077414777056849448090809358912354592460596133263409200932290871823744731535983423644004805690580332286980792190268759447953301749455838432772715377848944892053285274262217064614498628814304797821927693369981761832919588719570415622133314996363225037003036200865331242380963478625940191230355071077507001169902808046538613099645207728456752765012278261791966296804469553877636158219065057250513963582472723501848559681170584907308070718532575369779384221935532805228990551962831822743564647512900059140168238008417864244318715915727137130826264964551457086717837717723971471324102184506767513394236252439940704155249464627319929286946346779184210431759480165053662450304155777424986951595444272019125520213801781895308208015558741796402319259352668447447776087264646978120188768489337434533977809162185863264798313977075473892723227720092247346803369371347752243379910509169400288958452484749349401861416472997560084795333445049045089985033255391811789688621131795869991190534832003894443333988872389824935359756240151658088407797499163873852201991209623293907667541133616075839082554339767933968632388815814446859543801609237208433311239179126161263445535788042384651278509370840627182998178036560990359891384463447359596719160754952759945323085549593316530134225428552274793237899678028127710453682162872628755586955625495233636041991277364491020093459736794954747532526766623696190528978917903303768790643655671991811057167249291994323610225187558960405956037774476539000059159221806018912582174178494253542799872854825846777339687975571442739638875075494578070376101022540403991244014302260492586742015585701008720262768580797344999501511851094810406084244124963788278845335874741732078412048483944007915639691834066491017254632001385908817942748378208049137833246952536071531559187132481216922347271835837351395734393847222393788514430189478801281036137277415952145245968094936817635522379073232918247543736002976611945956425166011599523718136556832548751113870247727685892663973276783595656693877040584968786561429216523341761565894980241140030923756535762330589596071288844841320242273908981425369484079593050754619370084807282991363897885309047688837462264697298156889636035243361442365373032210223749148677409447535685083317688446713727130813842809933948903992619334016281213920161901301947222728819855476040315430159414888547377276759768163227501969830984749287459299662090132223211509574662459585028998619436571039451837131726260909366912590963467580427913372163603150677358335436174963056609678255466187817773568229049899403391749600236269464698747668322482162428548506453441671338777741639421255489429236061782953835293188612497477514594570274878534647025109754980665144038245475351810628937668873208266028366615007755804613539173613450002625949114116426882942904859834893219893784886524250428686048753541159824927106337834740888201062214877960172546799941812475641888289649779211951856297734524769640902859454655723044317569163875815650884268358774338107101101053647555842043076403586202569960747074555966524183737890889871249197081487113058135253843877411476749210781765357182423337475294266564340239257727833501068506276151723757302144611397949735891739882903830656267566434016426726498056556591673398521877269224063523226894850969007771848224109801206513823783652265853734395733244339147220384390149441073330978713128162608941095789139050894129839884682195711369225861955861383086495458804341001499805490605576207678055661594289576697210696106491581762535382981870978320314207405373288595562292671446590129169939579374534738170153699235253671196289757292495524855334019817009824032337254206940807486942191317306881986240778613944487434442696806103421426932024108043300921361808716399457974000259707871410277543103761149939558373991205944637957064094050909654261425744853905132875589382924623887557695163195832404619310767305662268724890952422918129462357320024637090205602235188281357359345844288488320534819610401976971032353490961384403662144390809671329890477862225453153908021396020112267130991499734567060458499536898253468801059588322664856539249420230522216228834915600270063875309928461862736944058641670286741748314827777992520317048961065680475950675804455341800244117120205953788413306179075383253874081029928646046240562541437152120664201933199167263522712117650799284247718154262423485744899032962396173756871659036451752417697769182444402201337939308721317611302302223726788102631018903233728371889825066071571328538613264166732187781490325089873575706188264817711473547984627709650921902317844119334983606977004649070137279270334967946608242333332221289583267455434144080456974575064253612757892280454998835438781399507267062686393013239127933218175077095111743737560485093444941930262089932367967869313282865040636608181226580442144510433249267017120976041027010780173010904699332655226326991156520337614915199361768240783151772914876189585866510633707522988863973533043611694340198568025297037739547323703328810349772865875136273009755333780730805936773777733779835345544131686614946955767867622284713982316418531006876532605931470024915195590097460579734092471878471285292017515357083613865293494571296377988140028551359497316755286022652845070133827708822024286900820673424960408597494591045346089891364502316003542166835376482527910547112523480890550485283703875151901385726926160847632102916895901591502203534724323098493459550907531250215164089484359275117313409948199221172003644867612137633403046305533014265517172153620372382584561666412285195049112736582315450931044098353175441256165803026160381403263626976875315237377286729796848860193620276623953700776696618881640643493157465277874854759212964273822541822194716708140264739038449959442581497306873039541175185676583544112686843304026723530421996105373856532643096029207775011628903033543634295364582197251603370854402127897717201989751621684844089898956145671258369192814422466543319867649075627439046424478622322580311776098182841369099185430169740604723842593181858760605659492524222740532725938817466192345735456969892681351803360843686668394890559624184810129077510227358994330436077049181917166330641925186620996695023501195555992764149113073022123090108433642343477139602485700311388856340875291120230811975899577691474312806343362775823533224333194898600980291287925265247568819276417972455994048401725671584381860363426808395449195366866835168539778100153128878454376306872277704371915414535873390790656059607615703747706777464608106891620013479079842266957139680073805335249302995122367212240847685879291799715226336676856154089730521017476295002771426504744811713318943755863125595330558407956646800065371114808514491209705500283695420875427313813391885999896857727924982466577283238425089992626158999974083621295629025554455916692281135333064326506104307008876919214582192540978581987573399329630377248388263307147809852516056247681835844741101969095995990219576351848136235202576818113187158091454938454101236557073125205773067529971104335539642845029006745551861392859501650192382332775160259479444406262812346691541202661384641118566924656970040026109374058414651149155023673832524323640178465342715140757993553839015502663851050872717678126480891470373359231543238564043940513705321565006237610058851348237845850872261278539384849751423257191146056059999984602366731601690021686033955392064866465825047061191927703669822040404089517073545225947298231213642655461351821241704535145067688911151313218834151371914797443899982464763204232051577615650874420937498892648409700421391115993844597238912441833089958792361528297225970600716851793657932990073521422141774543494478597173345121422669432252759060837813842887141914473773171226621721980782137344019516834537684159167055157324186534337082845277644043127124306057444057423879471245158265140408976544212955348365401187534193120603135642653137587137304111690881213455117150845644326548110294088947095193856290878526460081988968005781048557417217472415414486828810880596479267156738432543176987262292971908854256603925299653533983060964433466828326742389224629076715350950285702858037998748870313838911047110465192385520553353409310260979371200427352591072764074566142861907286011092419259217895402837997590967208472894272020240429442052088252762079080353320268701151253268792738149199908578695724818231754702096591067656848658156861880549328263315148364429263768590648362776212139874848194083519928297834488077637658707155614099035032612486476114965687258962596265825487044712143312134281974638153419860752147558047401857902215537196009714216708030074341544076496338408625422322056708908201407115755273503058855787412369727939226231057428839207592528366816081064386290040202979025112667871737905767372276987247958618568440018703035129860497978397378474548843874799796569001668493410028965313663915169714637393711824140228898223523984054467924969558411798629238384347830173324015274901417416406597562074225522338142812466880734400095736696048966496114392309696164120377333927811306524949922183629366879009203886379961574240337841719841720662793425898568486103254341134444359874030941643246105603931364399582255067514864453403288507082229559987513840140422624550819912223841273364341126214420481309859290752281788808684389869843108069209784795924125021060240381051902219728642018441034219303612744162802763570285632961080677336440601118954673093665978305088879936198599753439734962503765635235713703596803193507474687712603869162168389136193356608052121475863867031076033541363428426984834879130679798697136038931378934298173648951472034936101326628804672652754047350854982754214168645912130718185524166846896531621873934163509333835397175161937474044857686164143571605031809064826424976155260034288883482847327603292685439208496200663635356096510021362819911182149091983623862696946552039025525180306196569998623638471518276581995339834005651112449234127932867805856114239610429185258436527009886476155753150428062351424335620832789757473205073333124602978960127820481572778040798212071946554569082771545829753707883763624544564455972473851402023335684052773233972638722753372184582793035961958517366452000340547918376010286891919744369617019841020717331383651669529388919194569362032062930995529660657001703455404344467599675352637877093613322597338138029684696921326863019488560362738967451238750077438740362328711392368407395953731759988971145905607499015522652401975028428406122107178151641829296030236865499179363990902789506107989263821518279299320541175681097064484882305526096663656752088255665424078484109751013720477600375892340640399683439365146578476556396680922898444364039885325137878876963460614678320738091537326966080614545627715929079033124789256331777732333802829529066789705027798888731957098286717835742731835741047476076792693292832530190630722493327938840135841280319342529210152854676708513085218271712012408246712288730650665125118977387511201539772849392010339202715468949139762884351698216666944148880670694124327095646255711480876055230114440379571907333876240502900339291326961908324209706052227443127911783645298721114257421870608490824824868939269503296406846854077615893942606740951185267211135074576638095574243232490368979305479858214771651708349159676410093477107043117590378352258346192186436347723282347914504760092642194598881411545303157849733252234233671638774334092527545584676852124036945474630051141370192767619003290478390385618969584502605421170318044205975691104407662075284597525580553477362157881555496518698202490701528614577165539894722630196341534718332971901679216160188106499554281369418499683780555737845074584871889306427188701544045314388554054424217606860781635605135442402005680083901688806373757611661838906527288137156969981669855116501015966063625465593322073124726014616010152699990642742337680185770568899835941390544300996801584851994425882148704763704599789560261525439669777958466091685498858780037370217949255622053132665796777257051322974167174559541470908397460376357798735674769664015940182804594345442567403286879813319398264517480622343076766231201229423804324737601659018003092843675613329692710733490454249444414195357770224496240930648513681204835042571842800406051542164926955170075472018249360391739808741673448354491675184306420339993757275475794818577439029128363387918567902578202855599619365316587103758686803030847160621939741870649737817968649910759661255391065168733579200599350785056840483862651217501243089889354496191729593347009451835212268948182181382308555183067401660199483408462285651052063845422753038529510509799814922794568073995639165724924681514930776793334324520394591203204440649341655902197624300014882383375689849819446446106555808314506813634422613075913956648049427449243500506948149652039074246372420231177237805617653070025366079242279457493650285262256672939289221412603387414939543849962175737534009151465405532228504711231837118468567948534599018076274958132007365822538320304125062277940186573347403028254388671950904307407775049071849008347816242201720397825754256882609850588354522006823278817123291116719161322394763218943962125045724735873403919825895715008735866697643006019496819899364474467187649196830847502264295297928654856328048875021466852621716719894865237388051558223285584332439270254669870293383528929655139189981996702390296785214308239098432580500862075734992138319045761060430148671462820825109751580811089778034231348138487151577454266184813075247242456353282513835756294881039678072833567488006396821482301811823622249519043015803968465285932385855703840514255551166588302630134751305788511087692620465908817181117391326345680668154339422484141402890735897247381706015255069617241352469263018532816653417800950620517053438909635311205881556586248183533173748995248603458110945426833427716683225633322936427035966383037945374838077630238819608371413057673039974830727506547774582994777217138090537389590884534210322300089634866300845886166731923203775155572985790279263316123525085101236356555381093276423640760809012118513469262135005841420460939882043317774515329855790874664342697007782811915568985323334133063109175211509811208794885590169415725919194046346889862319189982554225137473889651615848252886091394582481796769785697771587963035792058041902348795730698733223213043512733378072150907159374625599133441133166313895258265461437397625604467904886059291989245292003177191246745441459073001079702704023739085524322186072196041830638784866121753319283928540809070285700258044262729184598466722742964302777029256440563255830228367904665642520055366703688213910713089140878934267153262878005085328923166141153199415745448973476515731878905375404073868523521115201954962667904142578725346218554280522657007117245254257805287987422634762397256862341710755012012112175053245390528797262673000543673399669823077108536518563145592660468342359316305398745706607114089825268847822850999690628433950614893329451851277668950662375386115326075761931736873964628622333268849879007501427217049511365618234070761638102246583461297787533648889473400045583794190551726824477377539607861726338467034480209559039388504390307987675068737768010869684499416850164750841243034779186806979499841119337887631822322935124931550711652099311211916150796198829100901307473115423795716954718656303330790603099607524981857246385145642570979405531646821267904331723510300892303112153898633232228912122335446288913583661531776508755900873166901862699952854480817822077670090568758266542110298343175202882974326200757112878994623334805255499520948136459423768608268869904792917814404682702642461597812350516647801586543972816398978402659155617826701520817934587858766083649927867751190441104971133249370641363817057217151297038492742117591221687356037531424490188615368544340932341675086656918970916303747546644871122075414669020903292304359243167662773162940142002954784323977852861082931457566978703376663455279903050698690738483715870536853911178442052233024969925738639813156571142464883398741904352559532855681375267142589006608108118415462880242672300253995142705193065951865709887082833546371201403197954260708512402704132807819073921396302126027759393727253574273966022174722634437635486854172568453394374667300368090835027021593237100892162291748680752172855940046932601208769025107601213747226251526977437990158594045122028635238093904933449876591271535122174717897359851716969575485296012547285268554965268101420897587790602409512373388895178936665826875163607748777213792201404134741936904704211740476877886730105705597857579036700151471804446583108251218117016756799896728639194341801773445127348275290868487505230297697728624823433335621364158489698217786030887180638547649509470679457831754138763056344889214526770500740865627711909503754687818373050496347385586586828834113680816267430436241889623997731973118693593358044709685357675305248460847931975755020345217732180015901690789557666070812013905132266638260612006672595755129208049984173215944810105058085156990878417631740064920654206630741192194675841861571930168117315349291424436771539842819215530315239339671977639221773428375062141136986313207195414663177354273854878405750347124600633626194397578525197098351569815234389209315570808715544412714860188671810964246741696282729240069711554679952272174321840797189059330228507865436189841941514754028922470274621651557034574152095538022485101413520846462708701257681359687214611419765345909242920334851737258228352764750832368524572176903262744956716744314292953508633930666517188384446925431065795503421253986203848643835421657691494468660512119704623295767593554990999504112436496396138638366224440466460393758450289139757160897184526184845978625478376826728011116479711238555554035079164211519274197036767817453768440520391331119897585640799644664716271137905556319462725277298135150408494588772911509460209053593371766177884245354429627540539949044219784859780461340154848574813292010555708010260371135321307021519140726023003731024709860802701615005575769846023263205424356196902667517455411392223344651015733083595378302385436403067201174860371931811382540845469967025975757693032490870994364923010957958137728734337905865745432221169701126304648856619551223538404827797899223119225017486736663489047299892950658808097347893476758309975818268597019757227522203417738020201231821438276943133960841411860644787714684349057750929580063065242238242875952585328318679808471187839224749653981172009944520729106472602230408453793066283283929970567382522878974171623003293475531890278939234242847598449224371284617423115850032167119494201229207504609831994839265069900791586723550155839585617210056369800556513632401116476422797486654870604242251751183983048686285574019516017831654622267037135412380468523751549746889574075077546699727313269757702572399358958747793257651464434990395105091949273633763512345686005762097863676536591299921354344633551418338170064248804357204420525913811750499844773350441904267375225369455907306459343543809193055986489561055114800087600033828515125896140143369496537029922509744797555229938033701875843219150411286571374953068532714013647160795999112387141657643580797226763839458176816282802803971079996639042167241104800946878600987357789677012475644571066454449653556922190178478083670830202279561999749042862329687151518117960310419700383838459249418970962570393750320101807000053250733188284922625346065035939704498819881241471649179670273627321511846286999977115791255267924622289745737949239915367824722049843945029967628867229368603558394357224437787876219822317738132293214185881479344131641370023919287336177143711490817935271060365719849835260693014485649296407294654841223550929898291886338896029315050089215368193368703778337793729116023449808470881240349963603682061133881806840670610915846502267604453233186833730552733922671455206398476904151839928769917477824740210610270539227248577984852261370800992692665637606826159376318316158704738105618414448389952818378992214932463562955936573120908746951685083103327592480685519264805376533131838898725861703247286644393755135533844987491835510534380891725665788838103606409737484579408308577666506882154119334966641290869620611471525428647404499641214996695897607806512246175450494014100775957357589329921443879728117840086766206051213577395179997041687910002359023555193016297830910550394891574037149213578323683159693720183258402438682923587352790090158779002120525236229336873304773787704881958876670964393252688320171270895009337293622130888822503357308410281088704809751825980344470915551739752376204416355018529847667068693465852757829001625598511734188296789025106754353873316976190474516977277561840747565252651605721348035751775400871881753965593169067995394280242555594071446459143575881580673491429956505531286867313014973761029711867583746301474730564857949578477713670486802114992711236714890217771718701139689229345358954932230667017240155133518380186319701978827207938560362481640249968495299970219579668580829742980045523851190489206253431896651363911211793820678247216461190971765073482943645211024564607968867604836137091459067181953894370910631159362773854339499133791701897101319040858203360606113148714794663813042873332978798505866438746428452229146235712293650697428145353758642381229323540643889609915777076235074374953542849736173704475337779097786589917982734024801256178762373149011099627496686710181743809611244653166171506071024284811608685331437697271933280258280414992261950050984715652899238918248211235842879524865770732051321928927512051146109875271854103916612454191320849614519189168821003038132480647907788652913743004349570476762548592846212127561688390562186343782961434718900013052646761149000261098122967826320702072652338059287479407109224915799405939634182477158289889413594192753008371569761923856136441241296593511440174256282401251109321462390767947860632789321713828380013585393169633243864546065151927835664834378712849979853099027337987657585998169889201006188325332164616196160325710013727082482664345947117879281897880520545742964161247698233431995836675839302472971728536362673417811691502231163820543375605388344127088305014401586317134698003220235365847646980311859646278816838839967531925630462395947122240811675428392897693000590276814173097787731324669044006279139731443278088384758748421385994955968261663202538537417742962617791723064782573633149828011604861305723709118710116166686768070586208585266109739080289113926895098389105328483869415906937927805570368699346118736749770674244868020352991747528873173747255385981619957430920762922739580585186312173100683492194362134469541243412674048037314456184462575523438366947658647480276653047760535300642469594960069337099062155605985376081696031994853137037536632609810492571901255632319944687791212070636433296610989561971269268650345631913776187724884286522333724505050090982292238106560668133918064104062490489632339867931248261704697792402447135595617851741432350849589916929274343675960875714616251444567304073422309548443946354492543738378031086508734865227456207684889158311170352081867547503818684488402513091056202906008407770184118530790063391954648142934745157460012385580955318858265073812111092798888098110388782740110138217816007565661198564374330602501975635799248214610084909848554372391425309438780129354407419413197493063052774421153762887846552616512408418170493378095442588558339576216220089858444619061841646929437758869978502873229764442347641546270464221527392073720130128903543015120469777429636052146339863845779439757508522229656328947603787973547887280248171904506731210713093227260055305396944825513444629191417199828330100387753213671719579447879619778730529983863849893165387559299767939433965058162025865131988094311139714313294218052805703594886641848850049850963976930115410492918819620359342823078468458251232981105834491297129298161125380287505954221339582266495167364045645437119426645065606606231360734385551012112540129568443719759294824363567636332957899488161996973235447185903416832931336181103852226528152481219846545222965514262862308139228688476425720059792977003517341944452718151828670031168496821658046252234374339902883295495984727433375340913030570103145092833206360608557968725123624528411773420117573601746061132168031901948092934329497251256937219667916561766613501613790065481233562456958273323361450459538978383590130757011055638306507954365646272048684079733061105775715096979221945940427218453679145884483067159335433068966639216301211934421699977096088509394936140908886079078801770807680515603487126865849263001419994642075991932987293758478699949293614814923937528278872859632080383704973629678773057623435822469858145053903628474625193251767946834433052146650811479109219365356715786756940363453518056440344519682964033935023498620430282410165355701967465509092686038092055311245398530692113541366886948614360831961233721031742288443594586672797905555244713468872090221490701579919141356978508165688694775433271070801267815508225141958600053361195009342027878465178598386576890032362388388767633938281350961846390100060474437064775199530124171060718530663945044361937996416212686588360895860525125622971795135766758431113401203213433022891477018889410151993930292497860924147747988799410655737646170918925347477866544488788996625274276770863517509642180484267802836396288811955727569926273547022203740526688200697079719222706772964414018163047066726209676100729608409645303742419482132223532690459368704495943821175159442181028287714332851625289131778698063626505225365825072537765364956682445690056293577248291510493286995940237198668689656626024801885167840824483403905719609548924671539119885976416397458312031502605322972125570126364207414110702457679761471440400965975871658668704051669108609118160601917196098015652809213919983510345006542763339292644805702362499922532367226811104282943357213797957468646215872942748442682639853080494155393998881273288387420963466890990342119866184469503845390682718633824623200836802967295986303630573552291631239821722830725339599812110162887297282818433867442975308148480333177865884430757022013299886289540480755107369980805532847935982856529664970790530547727631325419747711957382639732667088863470114940509762913297595255481995302859568084586552216095227360322749903602144881165035065378814594364311488064187632928162657954148576243303624490083957978604063862180208309875091495276373837184205289391696345058952280047883693518320684145975735681259830045848084661564891287539754833210820734255920085855829606556134897693107288124175899968118953237186910202598747855879958386294179664944110992224632016978426344238934193689324186698086667862704479526244669301181127907231711142540211090629603987032960496620926631872976913313416366477514595007609315475704974375197152260236633668388054185552673931605061283511109206913716985419614908018003667422841055176162480492719869746678027299875350582576990528536663611797040245552976734049623050518300112707495639157071640077400798188497551860299259283010242330678855100681388628411836775285861960396170629299497416420612374112468699529047225657584964386091660838339361669839728337149254899277737041058694996396012353339460231282656569926488346472281354128719292357778111529559110968670713193030325119657343097028263817551764613712874146834759267543845696455929842335735230810324625290544659427729921991299368473647911521045583622938662066398632911922551840863968125966191381936834404969718543982782877146898304343876564766311516853109376249185885270371261893350390315105548070039335461703660699819658581919815457900993237989046438234569972819851006765368815070977519070649280638204146490234582529869125293976735847753412600291608932840270889997261144624788988433224537638376851758339849442090553351255863062315666411878137198232468170023758026113697418892650834715803794122134683932007789438130113462177333519231849957238578358017371017686297071596476146337519846720918351518690186032379962630322448166594435071469257135958337015328367947580635584184226916525457076427496630882731794477601952489186424171192017092905486622895085401673236270203144063867053561075490104162617739507425263386440028491498333791217586394140681544298893562426484078828115844560837655062437345682098823286623852535104659339301192667367770106755323250065848887649313208064491101856679422870028889066048445581402639338212414867588004566326931328335430735310783210106547484559550574282619451051904160274428716132989746050643511435872500739400092332064220112210953908178902296082017541780075391081819930459277718947385551117136887123729835358150738180662384391326826094264893077312535900011895744003661587797849781962944523775666864966172172562445023709638858071283891187646651262763627317923063508670470229401304797891370015116273747564992441669257206444611146054028221557662783511597563862051660497593756733952785043286171703957035395536639054593678979875216517678894840371259752010371351717605136526986927597172071142771464731035282971533407683102208831491871847448914085124267100060159653004139527948272119163860383517284939908239076863873442595615785489951612284900634824249748246416257148249240589525916871015607121421342426140067848117361542914571905340874213983331595779807317616950661649827520554146518650202468227868130194687859998506677900262297171463039190646959260013896205712623552595943774128704088977256285358767215137770568992889786230220238356201983088607145622863205364064958712238065699038263915995308087091006044025701845701691874504489124747462857384459456287519580334766667732744924762020286665677106303304413823564392093165962205383143626016747523577597278942349467033994756053096264693843467523774881128903439936812647641400460083566524202136695451133337409929188371616090515634376217723030964589189043797971052610242358854151482497161666935740744702007268340131921631610510089847560967614092610724115334912884663597119995702508624585864130325387468051891692533378643864424694571519173797909673454829741676277237544153562177146496775047946400942091678384671322813469016704320411182547426675909312345762610691398123950544819759467843904880780078322282444078675882745748603610281195806738902789278584989844525261770767725043655333002502074941461479109468283810183895219859439446656907437343641437065977158114671456320204375453288347961145143296018216428013948078095888478655743646747644295234034572585349115683631960050551851210753400069094700974476612570366147771185810605077783362559984425584199901858851641413585264117477039504990283481790464737125973983999909797629534239426018173737535156105438566029485537087439563246632836494697117397034185596317146327142467730962070442569170172994733577786316322117985733884351974453181124841742242761932871302210522183805420628809908711870064172518358204059669124908192693778282158717276957592987070647291697147877224252733930790661339862166474017716495510490437431678421747623563756224939965449212414504189487239638912229435316285993365081815206686442753578345761114245157514431008781945045370249998240416546808571001936736633664305207513896487375459666035266184326065429224241197430982089541569715813874068893270274669281795996052356033560240054780384358912822610481460008799797661782318158817076580123307898838830145460270210201582096546730410025416778475274112088271645326509467072662842866249177983412867648335384833431678787902029968535888210221412761096389511193658326580596704439742186609377312454001707952747308558487453132963302911013696920152082197891955862654159097904359883517450991974557780858408926511187871431513634464438304907810749854839490171574858562357337304704903751297832891089925038819138897315920209705820856571917156205055960905501498271029681294773640621229070015578937267563474971984372920279478912808358712657339806303261399449244841568774368143011914213387850551448791894493737821709386381853155821378379236008061882086142226813889175301433496452028191356916310020398248273246762338048384137912518841856322019128637758291116874302469473997847667629622792251485396914393155669446072075847165516667470366944090363435418127823596758735649655587608834693054947203490726982464970380907132716243279907511215650489252386187331110195691708648841094994715398323315215218724164318394842742250144855117451816212377555850287404174380473955667100563850367900122100792215799385521454272185614229908843975366557333248390893427927396600363997139822185765308583487526591874427833112327365415843153662460267031881164663363342987461153980924498431342525144210344829174492235937917958371331345688982942251820238795534655559743844338054211191962155514097097913999832940633081544151633568750799796949185061112635276896747155804367464371691960710265378733126512761810002013765507227402466403672785551365981426219999515572265274440173547006784372858586085361099745563809569542657562441566746566434006129643095082756112342698757328580556725918026594302660902540480438963910684898436672214619211797401327484182265522990119029493776035596442866951173221944058486253960367220400201034904737996544566225079091315242616622540049859028933871433569950533906615093123830954075935923341139197995456104160934793759256277669839751957322194401637936188418130312280459325395119168828517854190087264947375512271629206154822046939264391934671371400175557424749179599799944130805839763434901459993890962004800883676357946413820429948891009784256633477758560428800698589463903488555795342059967188601812833820880675037661445750041170832239567867210624349774851286208381748133369386336236245787806590372548013842301169856816134623624806500708729533775638149870327055881774329395341225598326392057301285535634601912217243530133390204485117542988436570652673033019478243882304843087393384086931266070101107801395667919913875622343585853067388069953514713975026971265908708563530002843083128345900303444226278530746690241233165908389474990729779234017389438275111199483292939320940060925140633696582707111280119297600904652103286292538412060737432509085570888802037320731587110743463660341582696445617762884043185277328120564656394603659192454671134955296666122435231820160233269877652922655975553720981801622105273420775577012199603616252084472425496864217415015962466732726859172722834826092812783561549835616743539040598480527785499711445984606868519189763073681273837741350435059568304177066209377380925464283692096664879799220522450054230572896859866129362347351203386809284936870253050696216831529593920577519935442475593351848035563167485769731826456599171186918493407125239608258019387035725660356483838952690313785088770803471297285286443967040605284542784379278238751299434319384637870047945653540026835666317994050848464770489976494101599127007450531478418572989188165949316915764982333849843382194090178859497328271047832928355743172938410033305914342003776974106419342185199507143912331322796011193646573165851977568387590372983016129234008406427767235824287862251279549712461906870741473937347879942093552566156619741274591623244152547823883220435504499239622262470439649583533772710013127614863619302377732063333411310240298922466611763893792542532744112624404938491910428260429458793523218240937618666694257636673822932718233502263000591896418713021786322081775551605373597889476426614403489740813688660019381291970174764407686425063038734496707292539105881120176769267942750010004417577377645208798670012136230371539795094725687233214273019798326382384086369161945671407445225514287817882339265416665421661803218964911436496092973045655037350768757401640698646091945090973781172782274524991788529265927832339207925675131464503410680315896162814250941806333510884623151042926381281455454292521128837670056365459742061029992146510745689892994297687558107518458440069825914296668787255799139652925675051866960552924840467068873864255245541014751146781289612478325601710818952181104254735169036364367546234426646683034600703989315128496667014645871815507487558965700626141519876986833069539152427879417203151348241712807703796768832613362680483499118343365931349248257962980770723798336131943958536940163804737741118508954483348270943792342534407430180990368445131247686082176095401203492203044155454429429227413507355148469219829138721809952934267977085704077874142334982391700417314298092587775066522022131897590213679046993683705259755806390542569605112784818463863627394311531973082485776615399498722921121068693733783849004132935851443208432478464561741001565881088302730924301168020473937719759760727852033579136696712877515259933102000499785868552572378914510764790440457710330981983225507197226920731080703180875228966009345989041854388040114063782564164600254813918226963262232710098358794328203393399206690223083642163020895542127681514767130842726415909779908291520336886090303084542079465143923592470460309802741666381217924561461651909764187455705013599064257726050793139750829798087919367225981656079449513761287020787999920038224507366736134367147539191236953609409565606632576390629139814574669364844595031624776801783632773318516771950295121745053984997450143972653862459209571117892984122575640364677746680968283093721366366456538204862189236426455800944660019993841974758405801108740145991255507831163523601108662411883978523074924404959373712671864405673078556419844280930811620461971058554165004620852211894598933995449491777513092203667292724395492794152651005466949079894227702343239052795188674318597632880684165279641519840833541921026523196866264015764115027010150043911540966358837869636488966859556163539258587161090399249253067323114402924399443578921739535219842355015504385923618473006711786086821792191968817705599477724365920451458282441737150250396919515269601316788260092008799358443393681431831426753428704094488467781750774074508947477563055564604641583722379233524416445067708394218729026955235222914093925108325355897502853251296890985670550466043828782422110834747070932195532264654959752966453254043271042024605893838676649593956051192248064505232685462010240546823480401540992156788197573858574099253449550513630998827012814856503078997185798510318145625741013546022339408572896790039072946464696914100268497572176449185554838070248845682633639931513323834653915195390981257720297539186377132713964665979957076831699697631289852366756957725958810903118394538997875321030809075587297854130304379929925220267168829907317462460231695109459502768530526233320006149243192904666397706349350526833591318035489332875768105977797598703993009207676604075573109109638984882540434537656649021269034039273427564310645853106911533397489711136389566725455113181519686185244974076427214539905875729370731759580224560782386299732779847708253967318928519070248857168656510088361203354210490169382182391232439844538089849168776440487629289183810292762254869420721879371862726556070221328656761039760130226523417703518202495575489150442820054318405694157402552263040744084929502246925340072036069111080615347687151545579054718828621184018864725005148977758921998428118409232562219883909229695303927539849615530067497674258386947572642160842377767904161150141179636803166436270996946172433369500992798250184565438831835330495525643723729912172104675954042654805394457801903270672339553214040888040227831659192071698285445095498910574400318069044846812658498868156315802574455841866744845230491001693159096836490580841129421170808219178650612401913822364965323410141637449818206729637051201529998729356895748343063610506495978126846659967502168709271425142516589304450212382111934909557772487017417162661607703040525636937576464256468118202445854271984191944964638057437328508903602488882911160721642770902904001800319913305154266194772680368279697337847056419874896530845200351924799499588642222498984569857622978910773611989521529415353290946052371856920522619803332804606463684991901017824668265105522267263554788466167166437686732429181061107177094596186293386179935606041143904785249395540408172183886543887967842251167561964477896626638356200644273471251132828275981669457156053438084564857704325165271454225794835064298720040623781321995058237908036933519425153404519091586536399815063576148041845624238969762044996977481647350816082624314722470169376984653618352298174331611530773729328200477977127156411988709009305208442985582870296549068832848980100737070853660498100557086512377542636918197697788210398198542554410613246060065331607635372079283622721318715371056335000266505451646535720372086466622036269954154108764287064543258261881245575439234612657497556305075951098379257021503956202166362903097186289571122189343393617865247713875265480702331528559292820590708477060304838965255403182757949393333198681808946082874091060567501676193223958017914998993754584980150664597208670564563940475863506527290984390987745282680873326530790827790968726894325444234340101301551526260128347848229491277817766013647398722939831285429246126065494690305850986492946128605166936051510061166000489341350857543801311259734934319600592432737272144549419879696287776354977581521330287067369456336591283671974080208791630961101943999358161108632845084894747297390742080795236189969679179094282751814562544056854460637296959341049869950990489086519315874992507387401177758543597685340716881844771326580075243746354648842381906828769267442497878455039466144027775787912256627458071253481028232207424809426356299834043536253138400627603884162668429875442138197420928685895125334666014446699056255205368666950888377278053481778386371724396809099739952924513521750302670273178477929549571443732527987216575428839730401994938761341625021590539001282608623117511434377362215793898641493669917402152929525440876837115108015093581847063396885340616157292778921852507535330733355957953166724377891728700305316697700866941673822949567197457102214106367485559111514885077223311500430911276973699212398016527737992666184568483621982261960712033637216612525439299151968898751163729704799534234079467179544849209337053683291333228305762828038861508424368904700897415358282144363619486263053532661218248731918044513665568504704757626062622618663952170481375036043937680233607044451596290032811779747275184686408343136409884381495402006970133403482750074572672334781211074220078333031795607534082756148853774739307720651218938552147329952658199196901796154282762481251834595305174657014858780621299169234379620835832240310423190417188998052056561101744135633978175553063576100274144212559707705816528641613182807141439622839620574406558993167126486008747231854913947258473700664960868155143062437535363100883915132406774410328881295009220845184513304987139732052016763529412571902263237447273505928091655319873360591406245504712268982638049967581704427610236047907787458753494305688340265475433649263847903267442205851005288284491088018662410310304161740572885330081049905163429204131576617692468118391846742476299718710140417233025927342012309505583177246174322121252487519369143198771922932188534544877539284078330462356575328040041685092283002830016722161757932778661141245911123365100527110999029854727297734521643894789806936897852373466786831102604557886921094330631510378582695342204102912913302605607348110864771934530021084589581733829244779645447480522581936203532711979070730152484666361782674316315446171799402097097171383735918982216899368670139999965667545219184845192923932910930156277881058751660708226221324108385355933885710082006122551959675634798127816897207472509854534676841155139058709483505144499012127307066721544876333311520871454024620024358377927410180192407975289830108931844732085043616465800638637320856825267450308181018935239184869440627046553674104743859263264793100626391964908276968795535104787867776189137840313992246914451133217502989220409834307828106704380445413138680936060191650700031988906601535320755398430294813208346352076160325026989037545228897490604388085217525743154806823865932426537031552432376495162702018529743226600958733237420293680077827819585173375352350540803336731335284055646881143955931533842101477428545528367855379838835335903553582022695445577306651920130726999478915803841424742002025984395223336037512434464305628999428068236933855805043562692632918371976704126788802058398126698101711530466307966603382936881380777488820219252422003713564155509171277241753230989379760191601797550321690315957528853748452655845281370372739491192479897050316849646997619094300915983037446631572055055631534910741739398965990937197928984158293166003002442069667630154145018374546409903151104486199676711713326856959008424142491260795062348191599620184983176861424201085544103993703341585785603629777295544970991166302537813633141680355784973153166685352720031808218307797023216047606638968416505144924202548705722596158830924305853633278834653888721409173042949608714668528992549746474503330530465117033272261084170815498715236739657019823450099503582462262737403308291515554645440905571001844559242114534305377287028244508174590074883784394773109527705085763172389706304744450885057923351864275212846780141924834045808331063111420965438661432825718232539261342636025336157270976305505572959926452811705837339273118219625394274452233758198688989749793527858781297102099232778870687506081884574710912028730859889633208460199519862185148486474089039435025375997292107800823206773364878582136666285843669334510104817623945839283264411783375891839838696209839565983014686547312621988753689779442515071734927049704727634776823959044247071056443352794672531819807958159428191679350775558326793451934478716055495044656588401914251783799308534179165674964518102981151926411716151787966880632735559671027088819037222870443674080711715381768278092114258777828427699646366224016813585929895054009367028150390609545728963111962734161548275075810953675394508479164148123918684816359033815459952403213235970954244731814117861661743202052523318060183269681027495094329282744609025233247820062184474143329490316840893000082564868422227041788692183686249537363965522029746165180927349074970785724303034912257992003546314742723154662220889242005291790349808518418880339648587767455315406325935881569372719396835012977888150502198792845813860991745956467491584173398460003707470260205041189254599034916672439666527574334698670789212434681300200453134444907303474427966708445393565105069757031834422236567281985519348938337859667415634997893768755567376076898336823588127735022004267896911776994269827581882942941329420240709709214491787990122975314897703127647711664004483835211050168043104761240648474774341684922153945859474422087714352209007706172410860508296981153753491211910899274603549530490302307527411466858822010782397168218205243164214305024070908771912349814110986734023850664924630862191686792239387874464873628493931401696657661701230855308801990343726609029768693854053328927121965390284776361967563846305736672822488677984083685642523692448061115367427703071517575997124827747604800744238099981801204091497851733693468291459299957156786300248195739064429907301443364705735377481542071562452115125016030455801292399770203948164207881558659062414799428257279589371738747358524832746879789988893041662842171543101534054357508729244247719038188543209119356660111974974177707887266197956709974234946893009546692493779521138713347752242480492927587571921195580039220328283567683201054898124684145221241577800778317992637120436652413769078302385230362631662047092689461331512909802551726928999735203939932421205714475931114941909078852163879050334734453834707091233374391627934178109252321573482729743867057652167930757819426627393522910018965355613212907824953679152244365791579059017027532796093776146493363205095443797429543267903656928876459908231807110221212329454469949183405596566129800333226364800326231262205157158549464169575779587567651731158746544456582876407081224464559300936607894808937895440834213231086596547615301652500664106523612747415579223741421671600840469211847024393539578922802724715167118140316782551254726207961909219732771145067737555963949568409923730237413774200564899943505313683016953276187976895180355330022485815762634202259025957678832743498437448947231543829933491355869675164177655888487772871270576189432094989770856028229656200059903140495761838730567715036803164338176856202501615045006339036336252316366822322692803238072469829778167663278342548992073005181136800515782633624140113281620842947250305059572720538510474064348822527685270174127153818547085558991079433339322138856208644557353283901503877642058473561973049658292977492371084980036905088371001357127887967592673026788226046468671905082545805560455982245345393372360982657045816509490555366173809140251878569880834115322982803695730512338735531220608548613851865214570527918411927236254036489413611992547988652465015661995880664551327909003682743522828431542106317221755047399531921009591318221381282101173653575907061148910067310168275274050221514061116274992980535905681829839769688985067318052326374740494222702669175865289655879500498219811688013541397702417838622180923885928341496675605141422806917095096263467968690902699964707458762872256505937188813336438831877090998279788734973738705204831492285235775363533789609440433658751573496387844411793983665305505622400422131753824330285031671202389580561021576572916600719670156427022442560238092020225221126513815498071289845404119811100633623895882378326763855809055878200276530097972339069117167419096196990891350369833504526367225688197317132054362001724741408717505379539788985204701060660211117084265680135220769789532530836595533598647677110020787735959351759656711770114133722538197729296235886125878806338690426822401878405513345090798841053570803412010745246001415639862083373767928608350415427854027164646956022565794583043359285040008225201041024744104507531246399815894243991156864388446561307458258275294975673055531197640666474323354811847991311681219620157943745778714538469217275558840968697444139352094947843660641330624349411976224986140966712076842445882361734804051568781283174793063524360737239542030155556057721077799966272597418886253989396146254797529008134595751525726364874719294197337780320849499616656367272702195837196846303429709347676519520514527199889874851324337450035815738296650261781097781595611648329047357903192348151258275567870560136812238327869108558957723693224452627139944550920510643772126041646390184158902018584310948922286115192458311607597896331202124995975996506226743519061241213845390758802361057734836626886445441549135669400575796115075413328101435195531286564841443470715087912635090769544998708844184370986612516361632745959227418392652844913230847711940457077509491853838498547480777355921353530503144258341935890628623877465629062268209960067217838292507501885323924843214434679283486672548473008694769014700875027905967531891686623272291730426554613015594221706606450661323966894983125555898445654006549222518411506155073318460337193424444275852998876111461489268150495406041173981865471827613255979649900774098923506774153827722679876088559094932967720599291117545209918365017498229997660051394846395607077652456769715718768607444371600727249098037465960150686905593062404792890173215424457798940871424891825131693923647883838666193215363007723185286251491815349233780267937871130842037473552577350091328801108794908854281917687024053905292706014913256800650959645457238175386674836749232151674599342159494808800707160842190781980422861432701037335506505693691885508168163264945431226384286289085958984108996081166807500236251318524806719131699640485269733503386668258943245286262923983242046078185797014676989922153028451801434929441001723488876339379410467303290234624485992272422076697741643809429118246644033875223523981050799548897252176570305613704835794386027392791673425843696388509202682927694206784288477641270707185039048823968107233895233988367002049115670328916198688892570438479679379342083360722868160750423710346253105866114713578268716188022265018448968546337936462760650528119676451634791948869531978992217919423023722907958113027981008479170839414307137705012548449561592976791103979524570048474043835470437829500957698636223675452218525236276451779579074633947753955144661037044492604925456720462058175610371546135836449079390497610771349324991753849879611804885758065047514430331495618499715706884232428287859823357914145325049122531907170232987158496035875776556714249342737960108568037575240870176189231097184108702282616410288738520643311169352533075334150908797914003969708785870451191435153405002740562486305090765388833735004589697022093790623545826287621249623169436380357450112626969435968724438652259977637296242844830733723353075320806087071857961420814851540865683602200563208134690462147987850802103852113683994866593605114953200331216312974116236446372999796422338277156705941211726282303746054767578799773799651838787923021938446523286616483560392555656046542741855956744670637789313421293803696439331797868060037575316919683950211551951972728537163911308185550455556036116511539560742684167761283023540657752429733958782439688954743349738958140685210180374408201380651360165634041149651856823893915165292749296115198210558021037976378105624946210118143209921141432420621118277108865233995163546278220229500289239130863060179460673804225960631536628124397998263118683859902257663269654571173503348898351132204914343134656521432541606379813645781643341384473337265407146187790838632618955061373170684748640897475978260918254362835569312007462214479588001362935136365861434299495217655493563906635851901881261271084555398932846166908958760689335015544022895922908401131926549369895064444034321995550890849718638288939154139102734287450662385263753531590177217704313698743621397807844091514915261634989501427512265243133894027257850963472628219664767711282339941858658052197180821375586684011098413944842330967750163604226767519398537411841457279188036924604245599841264844316208212072313470088254399451595397202745351953244471484494988243592152878444087239504562903291737760434489595763524965338240397595324114158930451531739366250916219715451976882370928194177042125975600420862319460916918905981532183608072614475057602097565879097765102017042846417187339734215164691896346329486734390898454864700248758075692749579704641490607198771981144384134549734283746308164928943019398126211680262009582352858862944970643453050572927470305097479338358306376178709881277571020025984822437132612343502788517589059435281844264478692833626849169241763241657630635657932253412439434096543535779517196945144400829799427782023994386868589939980481787192095105641387204660832005395248535974463816238709493882569145077920092544415375087239943180641265262540552935378323606139325087485785178458022243516107237995423330212942370962796935666473519196232970777043078474125264772899583361665979665296212120424667137586787386612662260860753394139699253739760122308702106698074236944441969572757933950348416807800154296581263501953102648176997822370698456458535664781372640076093677502509151202782304265435435756164939083438593020653972137904685896440145018457292839464635493302814535165100254734641382904417826403892797576635668150555189452798274990477545691143837537836012897279485715994916124733850154307357850167698151169514167244292558152967484704541722077148725805515742716810774992393545253730446991290457157601471941942418614957291519229906802290179889252097649081925219477738733288398915100424321287775707556193076421861029895435131243500147774308203719294776769883630726600647707047671521247923837812834102590616721715095886305558171618422778398733427096945917516572235785131300342032778518857541233409125446585087317722410891425297429319919370623937646839641157680261589539008405749193683175881923941360932311269426590689802254824350769573461503686272204154577239129396297779025686805970926448430557072381838323183970202398660161626006488897002172965823857829750597890265537699333411134829196239014843542813852485786207990349442437236336794644326375345994366105850212612244609884242863198252929979927955433264219573432681431698978408824825282567349509758570639025366613066283249460067386320048284201438038332143061879235956613047250195570721721377095319922706906891874615770516813911616932868120181167872026979855539011635000649268846110637279751346563145770272923994711027430121568075267922514986764302326582007958850240287043201078205037216235269563177388508931155198696818208896750838410293278046529559961110735946065387251396642998532430384062999086495014477642891913199937506597454244303538549984996849426165440631769677633303834693546577830941468553995145893036581490280995306070282953460861032927799984830096899949382302886100132128800703117057907370885157156593426901594227011858432332023189794738852866955961886419414320817347757031269412915702436822258168224772691303207313122467228640383524752635381493679659651904915335540609913453355524974319940747094721973726109602388506779800792202188634338182360592603380039406371820064481990943862763283537841587067032765216204200176411398328035360415955383188063258242163672609325108293260224850146288213371383841827755141862139720889314729723294923375578627238200182777346834742122211130932365488350313284705526100127730030707388791979736783477028548178541137852478613913252336694992238010175716182679619965795599022569834860781841105977605651535661146979501463408288503378940807098747736959430585296028755480032628647140973712318626209279436212483950695547993495383945093585022765616727907497232101614130910536584699121783244451746657565042840025450218891525981060931279475801840785772454016733899407290246407126853637457271383374406251720103681006076116902375548421918790625008734377305134038201727436301782200810763432272365379906161548941716112980606251532957766920241164362337145526349084549676248733925680138685468098446524849694665313126217540530423124693058010524406426632144227719727947625071461582307145252992301685634653873085776810752206984607104996070844448657289800017359491858305130987387410367769598012113161283939117822786981903496125005282301798840609161520712032424810024148935032208882016152527569971476366908938786535672641011823112857999062221920499824210656428772782587278295845719595693939783255444607079223713157024680826529583371252512136663678346762948800605736362039349317273871198232156417406214208723193869245165214808756126548452896045898776933802478396745821885678237192343295531228113423610377444395314073243773497252135729712608380859116203802885992078285261365798644901703812218445874715998244467573584761107064821556788572805523767002911126109296996646437786899592166534893607339988203151422451866679939325133649279110028821565350590315084071039608387286626757504766197888623737261602489433272040468186401651498847256302492756121134597533689784330651907727146134047356128024402005743686146743836311280304791953013375625533778306913059000147406165441825224380204671105130943152730910288497122489438012929931600229773978016003117350213459428058561581403721295367425058226162628917374448579667430513890108917953443657866661858673144008979887005096855988362087798742431970916442010095415162304553313263806440454667508710061216951098199844821866055639261737417783064348143417587092133812542929891837516129143412274686224127373433447461941881455690406583111961038636249397730636759501429169703146809560177735368476432776546828118679172323555884324055801127434460894214745763031461915702391204285399059178258066735641033749834650903228304829818413204128475650526063365780771287779439353700352605870017579323100174380485659966334366824125023679950530745109260640915010519508903875290202057363408430443299766183540320016957489775192967069117124320206453530756993196565555610066829148264683104870635017872319695703541873266569784634641640274683008250772293232520539523158417702946662730826374250796436678960458177066803055510405367346095191073279860452095430928869709835537710178962160684614039297570376870734998561271257898113140368732895755070060551656358038111819117983069429110718070022944938396598628525019298184832978191406052192605112600674144654787104307630006933816816192720670659401747629605506610097346485210158813820169191212809264174671873368440708330040085713997751362864377284141365990504068620315283322658406321227608272906534387534740533622477785280848010493767898821410886429040115988005155652037817167818847620843758591091814603622378035752972642236303738740617850925796546005069763909978911375201843299141737805545867629952183681374915976872010649803616907628824581989702764882818703374610007165806996473371731887431896954579228357334153752059919065893907740076236626919384273601873434725523978309257934513509940209462519539938700640193176684506983170312934492289663751249653055910126464994216018114295923867828911168833444048753286462090345864974015117726941890783456614787716711036028955779832169017132254136011323001003465410558044004042544197510503022235828868758654184021696359766652460826568338142460344108316791538359994358342643997228570955401652173700759033240011924451545479911576770806932900279402410213517828760109743932630721419088434273210945474848711003510327391629976331806934339737600375316455056529026530496500056774305226635885682858000718168863959993456226187787455503909022848869236948407029558304593415736962074443310439193554300847324914121300265938172061116786688449945773490135917638009983692264699036884907193544922751216651459782314433838078511069895526115676903764279783506250951080937952303170573389280874372771676052950506844888617245365031353644444807494431719220914710868100450195271239269678694650439444560303356317558885551712787740762626073665293904441072055621773458831796725797325354914883129153582028016751319479948115049235609767136010146090992099938271272970540213105196045290581385987659801354985920429762901384196150985231584868355019922218726014531094207508545800004146915454552145775732545368758548198807215531640947150737138249707361236567810093544328229628017692906564105704129233417947077725592928815262758242629644417496312468080417499642606894429169559396294977623328696042156123577457846216587167389098368169013302653737250608155862704463881899731795393555046894976762983462507938052294494806109312772350269477123352349036999494261701304308303756178909477227853699615423586507384144740508567012202135285260829759388467375894369718483769590578699511574149131386921027847619709091857797733719844959017727956995006917823089002400707984750737850001586873334659529414238652899047968943530664881047249726523558269140381737946228750848646020078611051120114800787368712774735859382584378334330980290834632884616474403348407053772461447711223625669444017582478841308543907562584347271836559454055287200392905774854286472901814172492192555462902809608879641236233078432602963228888567100619052734009405914782210948197475392777114888267444429853435230788763827350957829981081121408568734426283180045469312187108712201029480867680293623158659117305881673158782611557038167335323187279585931538807794177932051509883467117111704616435951881610939349811537052165602363383808879041310029673946087722278751009733706176919371440953455744333408920592943220044268469211430443966644325889177076145837988041604817721196387865721562045819671013989400139706855738028728051206374288497666960535355538947683292745500409997916383042167073086150151215389230096440119955803731464954892089422397162865499061473385122524099449389600883113662462492194833812178098561235606340403629504139190780007603962916078662488586624879610964704686447830936665528008779286215865035426792436182655289468442738481669066680216650775578281196167985511718880705982598717929638809922415928245671862194584498729563436331352736001649075731567818885042651952414121733059913246196262874045717340766172999958881626342892834212579444346928126566553972882272563449171545795486229162200534358982823301489017105987715547857916414412387724598015202160888672220895595597991618837902983352034902429219643570097458671089488716474298165114727670728796857639785854538247876618203146775106069474796838864873763478394688601664102811948358339505806583724920093018494304739133717807786087932008538405561644067909598620441841945985747856880564848295807582446766290884178485436175420389754420232326825102590063062573095385490875060687888293562205314249785759687757601561325819758795031402127705343302933198311425360706243590309682199209746105442759948860623697120608782579641556202584535472984723040632248117344334892924336194844736536065984883749112026746163000903065279502401327012698462612445555224046127178894413602729151112275178916560765052675385993735592502189531163890787442834808378906361441540310666853139580398914516337338214668393887433919589923797668409959219843191432679767364359353851015623590037284520395200766325170517244898587176635858311535126287328770999485421840163575553164098895366050120650236465828304733447162382038765396478545203330018006226493499221921477395248319954766197858575305586096083987741878143722641699856573212420543474840872688814570220748851109298226243098973903632336676099467774281663009249331668115279371861518850197491663734593535557800044618314401098577998588350798300103562702243823737039240863764461331371989791670449415755291471909828627843198631079283799616455361793929838453699128913975462888540281602812119618139236353429862267582448475481708467986420476467551439996942875190746645552554901629600789786181036343869664636753909045482646407857466276705438091944101690474415072699270359997291738698191669237850013047819527322749435568542248621453844173365038243106862696720526498131007947090468018566812002696828409926151035180821334108572440783325475897129567023843946831706536934095874694068860541975300391470443876204385413644316200562610972253294223743746507519443348678147926087672873646612119885065450387566766087512423883987911701877358152986685451188370186199093652842092152215272795589289955198398422568674168868757369360527356629872710149160346606133393296214726744272540294631002774458502097943673085882384490244685966842479944121244073080087236665925697431688013746155658160004654650619152873943807907692023434811897210590467243217482734374727654249682985113869955601666646358788024869352353995604763493183350540110292571924463734081920474667018420504794254963209035257076715943751941436011655467711631893318939755149509051392399472259472854925977918483875570846194470081624901590549459711186981561475507293403079153920525520567302529505595527072606371286558274468267712506524083869294427850380725119645725243652766261422817844154319420401502297437736234658328671198684504367701885033992383896288454291484987910673809638836883528897031902885938972210512397407181149280602123220796690840524963927161976593359537171148666937242173977391217312618560419183917986920296497103513601668326105870096205240452216234262567338739690473182700996001171648376142027336912813718138405253001376489006328428457764029841343798032520580531421211949956437376965337922956901773847852649862560774215017458724249670633670396050151305956948043407136098287948974913364966483615995299919392473317091156442328855016457777864541095752078004480199328838050060153480130887465061898177183314342436596938439631201630098555634333421801175822614596338492433274051525418878101067159467210645166182678729847896296266662040354041266719633124220560387175618147732895826443556776165014618277044927550717296600237506114591419750298357966777011247804150195214177461601618998757302695419328342134013415403817033038921127057801740235188878582838182591285108255277634859363937849088122281241244956635623291694821485220227640829417595919650074713123702740364551289845972859956675501764024470774449694825247404554418180664361625191965195866223397168818149880297693150138551843212463830256414192450698327820400893156332354394169346122713795471873961221052532357917063210577144159134938015919286012532087108778199673883565678251854274164189547441576083488242193274622088205848287432411567629442474082208875248042385642343159582840742625956433396278210682804068838060829911384021769046692604601712844496568270239796109990648129970114368185528093015268159379979143390869582509162110814173513749984751032017758446703354378075091915392572518915957989161112698437413150250640415195851756300537240095636834780543304198763947201707207518249101199169448438758547786817365472421943867131593478273704835804193904375888626151802873468248014851253886074628763556760279795143324069717551171258766748356729449033920896921635601529888050136904176212591525347469321877268263378475396433560321588568243592952491911735636267670872488542114104741854315983533877393618256325175420662060321198657927296504473228979923320727475717993262742228348523440983784582763620944604160324992767491988242387586163786630444525927533477920298730733810129961638245157250206054155132740124817434488691726348536776954053973675109587500813438120130961014646699415838663996688422951604239767951669664392621415778863546739354646483288814375267779650933769951893932232576467492568981552461170231115964616277647452915754369628331252098543646320616221359195307287973645169874862216207518391697559426268900475926628362076060049747886381694597954894012980631773680726015754978233820281081288712779502564953736887520956485605959178523889173381961591466549907490697181197018274529359602983219850311161766766550209327722749117805327145938159654963939080849613993916852836867159149804123403764241350945562158938036893842052716590572161554114419110471079423269281370120178997596039527417520484791797015219500219348420307494093062945450264144997391086033403992461761152327858981085545652517952576209400706776602901190013202849004737889604714809110591011535138793510432537925996237293566950277657666632759940794710923074103007875282403011386640396701834908552548302252510407225206609604170047772351746014513383352955688626995174687222547257786165236946691445065741521575393819811441091612546609367469145754953841584274160998765891894201476453968286520728276771991614252154645985559115162666843650456730366571965149144790564586217597287661648114111568767087668730665312124237227618303934717086935050339967673081279277309405891488340970702529163053080635457992953116074631135092102043300363297989153725820708546673050336769618888226477156496772428014425684972088995331584736311636934809545726205259147291267531479560127421777385867716452414384250253882359670252512986149838105632124416222163378822909276198564416408961622061286256613566592591520406520781740071926337391303551239699723815765834546713301653585400555396507978084906912318433909732681595769194876388422680041459955372869827107439529128304741761823368784824406712913069199193239540392841692373299198176014976488096829773226836780701572805956915454052442998765950742116510703955677955858885998096058677430895464940833073463778689159974267448036784577336728775726391323860939759693052307999996868703894850159867388452061151366828017805461328755952759014532224569408576086532450700226678094400448460524268383718595038025151372480425932645060654574280001993770291867888158121751682550762308428858831793996492137285188478936405209876452780023395076695172626910069313848468177541536318796081476237314764056379396153128560729861821889426129342601383191138607034775259835087029370003062097837171138496404956211428834728388853149120902993550804852517851133415770449890518960495906326163261553751305102301288457820293312928080136553434515373158052326288718763351595748124202876279157794706819725167432976203611669755283067859131328290665994146246866140331758154647146312518318957036010994084993894125836859741412664390387078247233451605159854358536501366392355141388880996386128436583665060917476609590554613559220689364792796496819934945395753197468372840482770635729526454673553809804417092420387331075007579481081158654558173548160701281161562622172017025571649656850448193770274176514796997371629646732937596159570743750445837972918576613733736029994458857460977972979364156416655869045896057542237975762473373233946155866181038725855908640437483545061400685427111061427188927984098172035014641313657010040765179274667430198062471394753164540999392816692652877925840352997746146736376064130732443972536803511569815372120344494036382308153913496996679422706281766828892622014213500656142648334975141543222520080981726593725143618659091327893289781044437998526855110691456976890099108677873026717464124982346457976257185028059967550532578375114785448573706129468631422491616611786408129222052428266623673923682162803165890246585169366200559811260359336915314890026204053322386307883090149252901820892437624284824307519205346694422165693050024714497593497060649611929285050595470423726618049729835467452536477302273456148030535652019708073618767665628234402112322972821365579648983288681131309302744868189855067985156821753475241788319809552553279632905517766858871128193335469431953373311094219290432226412070199111265891264002547424177520797899851590999560935453010286002597192634773915949670692802351082719058447153664293023559811627020810698822496964657748626986106549208669916167332299565896627010178924578111830939351374287142059536614221766630218618476679969580898983539198617215230687907372553014335917817554154218357994085483437555930270830000681374657597221413835705570545679164477674362985768384347178128793179852985571861895256515777124859955243899862919472446063580903927648912244663168911131653775249535651685238427120570084225218110701554666269982943191293101291150163086450184715478712858996962301737950206740844854266486275153905590998297721906440234714765374798690046793404909450802593821889881679188419447028762034452550818471545318447217961062900646242993947508742755741698567596487559079026078651316211370575812809176541010150852837696549199128302270433624974472313456994049077146909673288040894665661200361910216917636540035638789097908522166429023250022593226905588863342138201851431983362942763934767006149701819855881647473657988769908678666983041801538225799521195232357783011101601938601621904851094041061450748115259454732966621003974667017550324782590367244059410307040084625064151094412770657761094266794224955163537633878590832515103825019567281584969163687192418434318512087431716269109574083732037859656569651807887210250486319791331684235426490513679039878548260103079754336564297826787810201236600575516498251969629874083776391562446507488806918387987239781684482223620513647788350806373662947222789479405183637266203328680977864389484162750633340121536576308823885442006865375232294284420139804368819703483987083957843388258575604373863923753233380043968188037498470401056337715591707389194639277223026056582056451552131902512228481970364808660971206567685285346277851202799801446700995191883798218530014942524655220247863807709341966253383219941512147813629207980982547892807479132428021709331115396131224972496372340783085823774710654063563557826445648545665582606588430815250974425350343933122520437873175319397729730357284972296014402713439562061674734561807050188495199283072562023486474862541101510710640938611548294019234728948221572554508635473010413677002992589701338342605767161482113478084825686771228407355419661203449336343594864501819644447903513259539777739014026265265849105453549435594042600449125519431969181943233573274011283047840576174279501846423916347707461465338536463408648031073205323527245395660367460119524403199107220832596803587846395031569621135998755655521571026102925038904864432800351722998188738682960324670201740987921733352439529239415204019474434828771207329415512992560293617108198084332772452191384745730122421298462617368980932461276881447884438365645563866602104726413763930683593326772720085310780270897303174887868302765705455733144408858436050438616448305277227296501514519450291020903342931755531351603145851788265421518761814548423257088393274055376804901944657981007377288642596693883982313318900957350248586583241581303454303719601339195706798411202859745717287559620774675538759709240520685801761177929018431203583266747333937148847814573444409587997801165150069547599317043190540642470920883862899906872218236897116692001291888349065940721742615680198883399101617351825584766919948316796065253624125233515838547895276020390877380557434578008997743424618440294157063726382498213164164442722060658841609538626958384844217845786752289173178572297977221077066744503517543447361607603422571724616391070424016093926510060554954303333522946116384891651047820223259466205932035037724341968172494643163983556819283616736861678694812329161302558220229524384960335991837564533425224447955815407394252753259780908067782450016704011955481803860726896254254805809814095686559028271913903112977315615557152991403890048158816244122060387194635026030415722806181242815530125788340615650957733855829333526938187592026774742992725207708138417511600785489139400816394435742649539820059277495893364882072753435000625173816555163953310651209100999660412034943947846902917555130405723947801403422159522551280151473428132664560165338981853845840681647021355908136118392852170848070320194860771664819309245137025071915228937008937794520401262241127807456398325986369082852505964259188979430977900265366138629035232866834001942326458512125346798540268887833918528769752038217746471228059137382219348019240693227788725553712531011387095613364758483866751536934389865293352080105889545083816263239467818090478017150892134441250492270459552413011803522448951728681182812465876593914905702971736198411724496980098902375961960526069118716306349381130640722527974057034538782112575509636543243974247186173212223065082991399798425563845340956796396606557792327232057421505449437064916510526749508098903414818900843405423926704632267053014248092336920645264535240821911120851138433142726304731183292406613065509190154181535083704704744213569817825730117688522544610647698436581223823013707276534724019606318683321418492247101898737479032601310105669942429760953948272566547369138033477384017646540395146571136129588933916062486857542801521898704608547537401858595405323164325691673164729854264939898802922953774994726220391496258682728435683201487483662028369489069812872420360111569205347140720878276088844521160279129344416879044068086759339470153476423503735317879793797772336607433220483191406854276662814126006057244269596226426699464872887446970123759930496458059600148341159701825987972086771862140238096888967891658894106630081053385093150558081294132415616643354561231002305044667798666774154330428386096626672551024914303909986236685980577861797572554230373824564308078408711843141077716702997300451879271565700865243429032856923564197902308872162580006682250917772783787312533644304597240862532995151004343729650429878231314274638705145441950654272055637839447368041692471141673569511539857349217147531618054179537122383097599910700485192909761535393431437954629275834325520592310360991281184469848405839299896865256348364473021064175713537947481333711750089861877790732658810452469266343782975289975857660543744075798547737500215395503577651300013219480863561417723127916294226423784819359546658901869111235126039472243851843449995983842071355613538235892735603861612975461237803446294474679733108755172050364249479882377446729020382341270629926404345953097212562277769664844666981400812083341033554687111265296593500563100392143930753400947018887291564110358435629344287514215345799939189451923693183532964477997275789284299877999160687471724314683733887072407755811547020395297197820362481289103646774910326212049553807829062589040869285156336607153164206832684685760566358179637890984355673916209019872094906766620583660438094299148137606505170510502449434449845935535413814345736149495553300200490789005246638966361622222614484294266926799825909262914572359574036403384437108083798647270966486903296287342007053670511782079381842453681785641347598112637691533960313854039707933157116312091038270515739103736866969504158805463449374746815540039858919888947444214074977086583761145490338253299563763521282589856684583834163517664165425839326216294298511564407158181410328091441552086973655380645546824960701989688827853324592858059799569582435808233505864971629164769605996075316631465619080991545391067611399381818375738082166605240731290297245396283901461990910079901393341015670018985596707892736426562287238206697318128766549455925245166793162980910930980111410785433372650275233614343631818705420820459521997910271768029141149701447917373736270294075054088638005355986888765748079634504202177556439280290304460112740347013741825136678971265048667326174388965215061981574406384560874559228462864170677211841823366506176772767899487873777964833523703287902839103647939561434359662047267567420617799484498806508905275051080099433120334635398142302110760421025218414705994585901757047313329577055469050823096872314839666537692385394260402821675316109975701315599337172329924127609026485480193825361565152396737690629929885502692061462903630852262680638838595886176530119071361306768759184252336951323622343289125134063087808119415935987347429733606388658868615100417030557174625399035549630896410486248469379143831917114114660298442683786405219468748405681816813879920471238984955741968268907711821790725432216969107620835881663001783760553181100723919022844040483771383837171727323763275582652033325947631166332252112913472367743760252810290256208901696745537409029797003403084723132937346803050530865525887338973922741954659470089017499865719439024260311285391236167778321100481542760325667546435555218439528233840582745936179376057069748399888706878543274309892354522957715702924439946889843635758509525096147897502250338751588386257583921315879482659096950403532237667692908510931434262558693938095013003510933940091115582937250417271847831220603269597342009170076845211444833039094643795711809290452831505092916105316460729285061715539742393256749680195396058124782424431362686840932955313531608745877549048463060066494226657474668915308675755284353182362950638139218691948409536071265640413741143676372039026569824223275562551384025395450388569990993895678352668212487171888082705605237714977628735434896278421750466020014922559540877393273003008082750961448959298590477528272162909395724842292554722454161849266890118428196791315914486943082738508772261333662414131037493091344667020325354568017166096985649493086972050993300411130132577451094159999544565611660878212856186852105059065214504709278553934587501183538417246374403733196716986101821482440462576811982431627220016481920509208963200216421923393415012562415845666119415909114433797433126955270329740520576361324391869017261818572641876405694917491640813215145327019857815261201167194295848340638067036989803999953723657262317659307240987277778233554056042526431307142849532149493519435483585229196828999836816671067227634436787691866735515220329870250691483632572371671643569956332736832463783572666279186142235348329110045020134185301685543142159148043731299144585951566384027616426448768933165437210059384978439555393400459214280059082435574386292919778749426156950627801745772717446146737593445643751210786512823935176996525285676664592130354558797582821500412889006382157280564004820692756491790879776807051074677052970127364291031430836631615922460445236863625286961786439818913171094587999087018808029737009912891789259220608329717145213140027561779604584197116705382512077728296313786830387368956341845590165717979094143143914960436057516907565597508809444061097292270271319875382254764391736966318440587242217410162170077714041488345402094585092338882739266533725927386057787191565894758693974562055461655301836672001047225031148235286449689306334299915863159273865371233735120617997779242929759309358556536763811065802441979618541470738194065145221961015929565018502568077348959032828708709829477982355270295040618068690462094440698090132540817296276364659100553263923528409106520901647252750451527644111171990987711052998379444412866264237991013355474030809900305871001842842485373960009284805645143577111390331945931924002675341108063666114867228238407802519957862669382282763917484206804158291931246082877587040333040560060682601435000275490456755304000898612039743930683463089851984928818908623783257819490506964937892651338349430247358506409075622162518971438198711261471674183594928821479334659733544687261825997204833386603542682300130139295088961342799394897736089695695213312897865120787917583311756070855559162765431714616257706789858319332910596583807294882911307299692914341512013512484690349899297063223249480676019176147064384127278527827436240208823489189489663770848862235198421881004483330918441020018646216628450215062311436272273007138069992120446445500698519026095955728534082356364676973785280104205591160652577501029132937548199530170069112705771177895236911564823075770849153734159588644240190150316857677731309689565702397649051668687257355352502090078250196623515492384827496234545096273505668192227657521221789180682094757241872198930796989720637376949355573629939685668846950144464914449894245616219564984715748516362350590510908472089606739615039374295562625718507746855462410340519124473523375965850996839305100418123296413179975080316600489397991818191616736184497495771049737202182249701646447771398165299486975618850381305076906364482542828264525037580493030660463509201894380580795521668917355447264222327536294414994946488013891720346166906923532453533870824806140414711054220339951318287890466303820804714327611587540486730575490869519898747850154072207548958098345742561990184018339854917709605385859846936203119044645629344122883244029921208362767127890970675095768956843207978785966047774535279045159459498406745009690928571862858653532912367100032081870752966488302677863367405272463436105416729383525753039038828362715179939629238917737896431384572376271647022725986177947445025920214833266051253118921690085194636015880288226374211321111899400257511399746708194701439535677489343093715201317996055745812230576868081457754541302514914716340941500107658547597943041882927828607267551864757617591149570467633199942538710222071373153926261333003168675106296029907672868295434643357038083895116109579289814336148357546559152208034285775031743257745636671938301068177536897328940956734393661462303855640421051747365577229180788536452017946849407788853142026793536018722983851556698344739688391151511959237998687925827665775358827294306682751099751983478019746490936969686759510883063044335651394974702094296977192156793421895601447120481550551304072538844134538097297425946577112119814558966431826000756044064592182741894866300590769721073430158601863359306379923820568668088304261455068318210301921917342459577416296334235214009806773444319615869489086636706698370936968862467504419855750559619882669361125820459947699316783614182261466694035766846136513856089399267496171895919896573657815597659797704464027250778902715138424923936830559949420684391262022507821610669704616279222166454044156991942303019235832536101729732823377979384789382190789919236476978890428194040607033309965148805187845837878853519508191970252472836894949608394166756271200240179077656302746456532946896726552886726277731909650707082971101026375470492954742757065410852533087368473423947309198997823887463124060776133854149920945126142562093267016153281837330186411284477117778144849013144106493145427316197117690583362008459021395968368754325613596472571017340320904688028499567013141868860501772917815039431890006211356167339420429663657455247973353131112733397422695390061035833052124042001989424168073278368855600182807587753334755358571993073308299671846267240855527012617415220672119743489148219986657975047844583751076624776011978069812499551003457248501719205616864058491949645969017214761561515603881076678250847707509067352641886154392003952662330338258015836993566178774417141991628760804701864630107993198085503173803048634776849690563218133217722629333784584524165076952951950788854130022001059996282723416661706736159067493416254837498561039480289819478327933386617871242015319328383902202909329022978916599686524967384327604234992322267376339136044062246459154204239705117121668347795858515343146420078045983511777732073835517019462789137869342274899966365194898294014632705208964767076819150989468205454137542246956760237337361330568853429118215270185250450940203866319118016111958426563764989926466788357195761490029821593964678555006857815174686352359800456537760680310111504256541891700723243044123178433724189023813894763515919232330132518746345566688307495355072146390551987537139847129692336178759148826589668325923012659612149842265391331898296890955470318047755421137411525802419027895355449088426500272943326481791864023297630772255020040852099513097591033086125872729334928754272842476979151861338962252817725741848203627468729433688360574198346936312349870332234049569125445509951271310266020089878052492870798760610287208786122813561353959206818362851643843068474394617808128752484161251327923912468699884067130027595910542513005509564495264795025653827667675488872243713668530006890564087939883760864159447408211601331126198178776107049555482929879913859185943675103931804572233703083547751311431978097859509730043376729862167021104435659055080437053797144872338452478288679301021321592899540398135497167274665872681951546197228249464382726831234892094270328373782963196376146725285192107579962392616272653306097615646621313979243137783424566964847135628450464078198619555312530605525389159054901534009611320026931083061298293237764779721815903397481647388327768795386219276013726958609283961689446391122553622740320170966393092724791509714668987147517989372931395265483534103812967353959251771903136305187060281724732165546524520793595898487890899127821383268595747759756637880113756303634805795335579054303901441385027902072874535291174180715476359443109686280026380830250949418339179201604667296436582861021556803352131997125888397005774223270695600520142843577770481230442007732460798229453018357422486044042633276056399741770477656367517488919026178117536247547889509440469627169350091301970844176575439761694536106267506587704870434934482080926930585073064974600139321023878369494083831526173914347806552704664445288425766347836815010166221152484548860186905913436224207938710036676156494148147948741119852076140399139671940655491237321561391058523155699686164615875361848725774883797114874614326793293553693891410149295119442989616882138942884699899521233935876988384354941538883275492572098124999790035615477954992306152953527197696295199861350162802580662962039707098016610859347321850952658675958545507339636907659992859523244118687502938306329316239287145388697825959774299624503829633702293894337407292564359939823230141487971553090553732670992269532748599214794383082659937075037416079363957751022693299477432502538561766076567335730607914479675641178413796931653854714714081501256514406192411379685803935432544474491069314112519924167355579600978625996613318024753546622960337184770643952383016992563085831277979864817118608246790310826715749171712944516636493542361117076321282820271468970208602613786256761060448535281030830154276408478595815804817458500818996878154461745368302679935506834721884386562670584885703354542631159019079050580924413174981980650313255404398960875593761378056632219829853555420178705533335797497470779540948430537916061046962713620859477549163482196445032176091200342321307935719210922872453239114553569236220617680995948739965595021258300028096795340126945804317956688517835875898916748379564326063338032655645624521408143503834014062032028864534641655785326290612302146605878792686125850468144250636467797750480401921500101812491301234443019338293915571602486716281953138355498502581648946906197676877844626563131262659839894552185525923878706300515462782072656043285987774757519102850602069469523148719462521544934784462668948450031818362101557483506519733400580699322715066873436553588626158995257422386875889421428485757689780034115019099093729796030339073417400864150420302141629209379704257336928555597085174188741088086627120761483495987934232344792717919267726540509861418864394013070662163978428023232627662088839510613912564059566489498356940998894238743743007206763510454417041942274028934130704430578578880625023832952756695623149800882730655188284746721448922338224054170760984083208097310130956764260342251053535784407604431421905415232907582036704391863523052223289006301285806282997982570582877335502072034349790096060735288696782946938987023045016402794334603316030601105382107798173796065321190388867254848486547347970972816802347963754052568469899438668424404200855107570948181776681454425975517433788163656215933486136006973456056009219965408428615775996894855067624393455773375368372120998049132784663072025651289897549088799442618582624884710970887766071344578147037322685833149108997349218260246247507364831179156383501291456982261696675774018998897204885076493276981278551401907964170331213611251856307485564682805194381860825914136975694123254854028523012002643420183918365521240993030650806654985740959017713559066369425830874347124306415695317512836087739229630068174727787487462103804073581928970702941800869182169999882402880216700872549174436213420737475725282985668894545311278844058479338078577694969690662823590100765195220361531697897005148475203640566689262174311585516384917601625749193797684199384658367856405609491454424581521002798002852465616144395093348778841203800456365578881958150664931546893865983046135599858092276891884953271353528501556498273883305691621075694056319640436747188705752209563340165675881680856638173229913097190433120001263502736384651113583850643488104199225955241482847789911418593960356744184410978041511332612726814638413912106457599359318745804528205531233383610091604236871188645511998383295917665096900606949318382902481889384755604836852997816407502472873158481852759631980541285720326655980993714968323109859014946227258685759095299577014573106523773258453660277677950300458489523416227047758695883541027138893906401641664787473434982291284884894101363252381204603338059706505242289939877321301364063217094184682666685266932609029453989092442917185371881791624758519926687614126493981749187464142467213516302128101406771629584151885003814174252300488508439929107134405952076194591775288860721647702711350505904179340819256806344579342802494760872353708926411080388525762962425426245708701250366267824456584858071350191429166522609675900490014624142147581787690227063585496273663638397498678885720847817242149443710599325463273086699559307724072133068781319756672347972629100813066193844334698772537458480471138038564977017974673585949397802385120302769126942926099787234534623785119836090419612623365472698395493255795583875123652734303978969515462609144698186022298824965230528360666203099343451547132925960600964831756005705693360115880031927914113101037952841762777410289767801116141080894853494329703721177464889102398784515963951504591509413405532121718273688857278116542437559470909131289967981295745249839539478162002453633402619957292225015441810879156515153381262633673161256811203483301911849576895399934331009734528802340601246787779740751840851839869674892782531554960467986140882595881925327766991670554547591262090744636926550134931514947108197476806676394068618396065696984942658676979149613845283500857245959412342580863882078014421517039130893450308383030467502814012802807518854524552167954662534938199211217565881727641242588517948346015017957480638584203687059290298996514593565815065709891989661302312472443421169199998525160876068345862110453926204168765429484208568823889651358710109564779245072713093824865940061294625860493729002262437722432833308488022778824928212235380513389837265305164225731746956329148825523155973850535437211520823947677873150829098722293348250665404042320916494593949182622757759223316717562572826738302440285857955220015055940902578668552840327902690229415309991705793398148301204809586849901858497008347134656665500844254823478519122306128655480790484611245997136664949721150365020248816130862518255750130106470359740694438000380847061045171187835133673228824382652331030494417145508667387833750934714538094020086225274493966474125618234678231383344496001461047681787597768708952675693894676160128996978303407564807456018837439586590045045889840616062755299121810551817638781926933092296240905151140421861611122065129653314293178696492887132096728695144046290877548749767304135079477530397133825374529466566042394402553509024601663517384290864989916193546280327140940458415388024735129426177669517073141794754794432567305617537630952481419236314284854166949906868826981083370961492209658707274149285695096730210977706112745442514397469926595753189140664931615245998760051685742142857964682631491056133121634171624896957096199916193001122569628353420483611970353372603661257439282701744794799783029950541796712715010227820820647604088769428805519196574115294600018866758563339658776416742794954756050675978399084320166914736222861670277085878059056401124637850437273429318059399148567113597494972192922579330688232733493458935379389103056447433698158625572109577533806560048960406736069235209404379983662458084067720562248981763352025020442584460328182562074607114060110518317849139088231075071808621197284414987071546154900577226541587364943935109736285373761034175895941340937759921181702829572995076393500280620116031108006032039040940250246636403492301065776974951883182975745569875799305127673509787263048309837762089485291904342450503119800562024738370026534366598307000914225610344041930142334692973414955013843110786825396534031978159810478360186617602306516898536368327503509806993700921102313656385121598855274922610314967536825471211649709421607261255732767366170078075749183617150583885383018467749725284196468829794673745224345826783144109473026006914338841895689709934010840866560455522573984706821742191579614313473731186182398548138029975588982641570700517327446641477922039429570330574892587361235273435781436025100586221942263138020223011053497965171323256045025722106485119927547253362215365924823018427850460897270438234319796064256881291782997676809291846285617894040181020087178259337562449628757112113391762689323081126634099742208804234043368760916495580408611465016101599786845131101319181354652899279585211949377643218823182555019829449238484318092757546168474758163966659198160905737273192997758661759842319112638854831480254196647284297469381065603548020244979893647536693138889701934811411824848976452710617422871235762158391481107930302371954507783351655012936592770434429002409109029538557413759982487958823323501760580387922931638934555188514668097256997656266417966768541249213180946830163099930582794526024843252053234983248788236698934698571350612367524421942438026670349417182573894198855809116293212043295977541317897085015876578271197016332498124872095852858080283857908630421547977252044524450446436518943875824916840320436510974215619712424402825314704301517300788903346359367805272306984665622484884959890658728806996618929950905366459347751380514799561645673130679220729268503410778216938243315670482686419983660069030550294844731156590171326138375220211344452906288306015427884718634833071048197195936585625302997212150871414462910886767062652448507481673831288683188560073198079660601220020634737155889654201061638504072242349179397702939812914867421541519302212179518279320908670310059453304130083200621077722620807632305540597950121034453723957910504417459443305339329058368033330769687292801069520042499249696132962503691807974902844313555823890876919354114280709100179792020145477532525112640966334170951363135249707110300940320979360663863990117627044951018085252763979619753014710563679841242432991242192002214646702617225177072204782545342495916848686403679793578362421474580917483306038302788922452877687492710078203718119963991247770792373543612424259233382590343080564242769107621814647307176880020133076532786347317706230239396279733128847479587921579763688720788479951168860484773536562618353890351319131600458997961202407304422488594590510055403020923008990042813443933655386511220988147709974148963348788182612793565571119101710089869697934187638440924188330450263411288249614997341520515666225741745626518746614986483845767204419042050052735341293577296065785061185597414050568495651962853718181812238486693877765437928832895169466847340178463677147260087300467713438247971602317358194582042104913556692956201446171649674820667948827683235004772170926977193471773242766583198496870689147770558461448993707902392774386498803383292201697664079018172989775499030493598579478613743978028512896939028710726012405044289862844056332091070075037379982518006470766894907874684921713498936745135825543917981798661065370224635258995863797317466891075888673640582852164349438511764124983268789919724408781969161543305767377723222318072381297518108798021422244441847682556575682272243410918354456339505797213174074327894765710943879409759606457408687597072502873934783398723490332011448269899693512812620255692690576324330023501052248887403308683511099984151818871212087681855095592395272515805718006830198349842761473300340522732597924004184436697465075078039844908734375849196004042911629069314612229639718576581085652731236604520703820856928205376564858059849791282095707531402345874739494216189468235154030553644233249391741480984040992933968857058405891257922684888229538111519434937224210325552937212386064866513217809773656154197616885188159459361654893681008558407179484915823184694715092286282234514816711002767793816249847774084757082172569983053619307576545588855955755119109550013819480085059834719302790598526715750737789868905096102601735178204326980990868268032267297791747600880738246280578388924589574156423309171980237924111403196495198065676018484200928891016476363820184324241963492149638328220861563919935158243455489951709978416939485463707959297593807653205837033889750423901672697566557586630730997857022515286666666085537817157347352918948337261310116388897200896861696555261001902978960405263552808320882451829982944365686400791730115598068761308954397798225487419989794275634302745037844287250469842247968902614004922400261302210351604757100225961198876268848566797215663893630656404185829748788227165461769930303711528576100476890996237098537066249147602291605487680702777811266305001609125130995180562199217689468202059447217022179601765508721804368631961740899196539721904863163782377605975146270644815010358093740398033928262670026065936958140763857383483312627454198021803848881939262756684632658273705346154367726867453608877789897757223707715906004868285257398599630413275862426316942186612541076723950337018045961942856099376676526633531276416752615001497538511483357525019093256815414632865851954729535969302461487412360449783790581077893942749884720552644221413229761439481247235580843174809606836968989173024683637463696184495973996974775657772855958110822241705682838939608983748607815957288955559000588490442291176526250435470330347888995612568586503978390494268402384899267632977671759557138026787162178395307856804274587568250609490519814575896087830122756968851104777963579125889673955887100508341410353955278374681360723889464634612897214453080159216733975927874464534602971870558262077916464387561716739373267457280259353807984466494389896493781037247974082965304598595861521062082516849674117919675187616256718665411065411540306711933730788583701003075111754779875837221744532922942775256136089329915356261231778163954817732472471806186480531223613898289417190576595563620649984283983366405295439847639088614319162635195776497260341729195557948523295958227431892174784311700945957475210159319081820791831672662731318959802486344498416923993944034783492228056493406728445522320079416145562255454172126938236330076753277758904989890867424546077981086331039261298704600757497476883859653574507271571376301008922421525700749928240792030326189789360767692103287026979277963533306662077203671502897497794554407865966468289813952649713630512070377618189901769799088364228141469267486839434923561519100017204298048506151983710155339551439031309173041715882016715209384810510162464990922908728045907204027817937076600158013571566418520036334790048631690272851817357902422012201563942625110442691221003590218550887105118204039554463541578119531361676190156162671337411531601116100937991924051761407363860573230121811744956276286180770265142943420432023596447547261376061540099492355671577932301704915671881825925352339376856313880666675275939563793465572122929004754018286120890432495094619430169746608476628966184410867630405026076161081906053724824315936305072790695403352093780855515379790203749882719632893481020008778809945941836654911443146754100651898762430448160158838652619056056242060269347695471270261545532693211389635462864517154337367879531590716583890784468354507776645257192404319029191286537061741396342398891594531935865946434111062400394734981675375424183783949366470123661099209771277925749083810111873036345462841373938190747233449399186751445791737750086414019536545558773933260776632257738807676625174577212323435461154674547498837149599915791736347475546387094176178825622974223252264935864382536249546805781529519871877526596517535431138331169075722501528630737592008177287255367624921703890683493141794918657022021937437311947755246050010937378516068118990788417786926817627571560510442654362060981954979916064218267524819240493926873970557797868098824892063532807136996546982842222271405174978761874010134175272371990745394537350564353328274396182226773587860137872911672283479585205775631113508193003371500222313283256742806127155709726796729189302403665228338744271239202268498759492988003068794028624454567447696121476171858761248030407185822042069868207374461547977971113558593829093627416548780763570341909317337849655463614978249591392468564854060867815540440405208219420715413058931407797634260080335823965356786823639365884807853701839637999940176987006728528672814511242968609900498830108664010348111118384698165771452687621748588112487335052583308034707614194079294328076824957582959206831299258200227697575369114157292836554805733945444462014637291419154440388868099219904652136303907187213111446386519962493728224251960754084272193477483838280091617756100900939805592799435629854567180387431456370750809687586222417385376289038654868358893821376498499947758640649638452208057480499298945925947993988260974466079141963565290970220956462096829998830046113212949988514413772613260821337256355293636290482555040448847536854604127023028168125166916105797417284379862448169359091408897166380824892920427621302946776474799256184775506905137278819835419257357912004814116857877994956522271011487355690757821560602934936872330635614675747583410351949236644905297344169681058424676474043315825501540989724633585665505989194173163679718770198437654089178436006539860635544472060226990715078824026519251388175549036271181030732215499124543066406782027003916643440270042597854885952352859599302651793997645701396896604831609218625118598450092944170058980979232626330347242253524239051342084799497022818795757302925353271041893833810117239440973922059025618514666951459719709816377856102745380377142268544146169733278227547873507074351676971121700324661416496393936761437753430283877367083073877928675443513365985186551650363206382212263711082067219148396319091781866103261727577383387851110042702466137154097922796413845703432949598862169487784574603909373532653507289863883465596004289941809197202071776196398373652231396828202330107461857316712637001873934712065852025631629935785859060767824871809448351257747066100549909707942234363187784313486112058719205806040846005664716470986087434411755580221230813056000792212496899122092575795109486364311279448191801338637300507764872675214349637657433598382015185013460923236202727130511032837806792006397291064957033193870936390841624739741715610160379896216342130829311580879560587930430845697422190956907874965618696209807896693650943080526389623175796477173336535807222606342240594975153543991442558155258045656199537980453424514722208678150069294058327984180137342956782756857098748233173147141563674010660382979154409523547485542566550620755080588411415545612885577645887532273983011303775558717760374805001491230111443806851493282596128528137542711653576745601276156582577787202554843339441562118505141036473832998900379945553029468688686527543406863276062071803965758293940760663951866255868746809798571306162413922807511196577925097141077715937160149268930422888865603653582569262626340828804138188442156079737682319268979753989198297320249527919667010015483536609136059958910008107226324939792316579837244750834758718612552685631803484568197370822866578954948381182182155058326112164370470003604362150685425244460654298263068232432717244573008151770970777959261326683370391254278688413075531423973358790876613160163098499315407331456801498510335593949317511538493816804178244451957110073024792703566013484562012559241263824785942291486855462935718940558214616960079475769093231925741131390965126404373128613928945270493792434856688275088574306604099677038885037920542171856448002796200189368811109086152337965669582757587908820991148087093584324585114432229836641599428224173221849631456912897595012003617383106303863298162558520479473632043343596531496964682630829591115214094799863115176678977890968470388226767645547244372652220270590950650835956749306957406166731990850466398081188373485860642733138034701665224996511247642122201825601645769365393200262357025103516748711373561424506552465060098716377355113524233462682372838806200582858920269652326169871686417605532392335800532249353805186608137391658317239091102395853572656904434713268079509895559542404614943105292449440079026763758850277874659820333682913538145269408503515188209253944453667058921713216743569849086929548818446931002122137858578343734307648018912157791293315298365639393690662995545310931574754898451101262823721250636725022574779843983711333494408603314936314706122157216450308606107666815285175611014357812372170530396399729797388512671442318617821008709250029137639322491703460648807710946744412156989448788547377265705594251622317342191898847064921449966018046019822355483576873735438872539151551105249484083306235221260069961106710748900928709177539976029215586158447619969758380945495766203505148966863211006566955518970849311746714944064325766131403963388541247420295949014862827733028584270060135435055865837755218748053594332797411581253703448329163202498279043419738780144072582962493257627849858001255059355035059607862850775837273891882259965062868037284327205860147341458761113118075345849263994076821435989278288003219318837820177962966373943275579164293209739112075126392840852311987400222669490432913446640804190026362991512598810338316968901274068698690084187110313419482841543411853732232544838400229240710575263167314620738666002863787131896875481497084900827409815562830392123688664896404536711125777003482124139051583735507041355480550661501015702698726394994895197842565532580167273130931291876298646582444142520867803276168119331296476101747667974517949684321459425630450767368735684424342379119886843913016347325897315322698961161345474671533435737997204755371122490478853502643716830560032888205006016613018404780853070626350388592411982148544775795528115215521919116366815477673839361888419298107424673160111686586287121386622500682492149433222839967846360429673459702382298665347474250700062326123970158208245456504017696672061045660830984009072140887722231353655071483312194147719353114891508064562945830971047124941734948036383287988478717564728903547511171484422816355312292070571463188353480823951253435906634763588651755829169042548854759408015591637941106155803430330030076571519965502516976101238261846387586167056170062832195766048378838377519826563764389952339120330376620491743290035860856839709666419004077024168273196338279822654106520610921631523090529021055144608731336814544134772659566674016492272330365430722791761398718464108646408334957705165617279977760796263804014036369160733806918741106715664849958658663191504943815745754935497506051942026525976669486086299382036421172528168961372065452884364386247697876724626532512929569109100957204922613820150254802660120328818643593906765813930540435516145032196148299321100966573689583858534628499899368084714121445222865413321079132956266489350663736955029382055472514049818839287819291020688525469609080140417739424921856358788094138163713211355939731959292212017637924334153153269042111502836876646112784481129474655833018657763966136881262951805106328805309363237049761119199556856717466939710930110248410137251420510808870305438731302622978803277070263487697969174263199041409127676215499211501725559811226648840468057279485161987942290227172697168093697047780064533793067868632345141059441350841562230472375463915533702227822885337732624958263368025296553195868357398850479729987409914259141927739987578576886489103091558373493215593137636784854817978663470012883643374412326259083641099371889986751091483561010180813120027075195162972852292032778140688139083337763031601111128255889828370376517715625376675796888950134115893612599905456750535930232802119858782751003290899087705718845191039441248234011083541719580774680703774142140130216062197232925380734050666920776786204689683983789010227001166976145511404959201976600398965565453484839924623210560735192295140662151786698996906643481340633990000045634809085677947360650651227241431211680673001892217236091990500154295144230519079513419127881054023035365713169702800776834717097608953821563405130198559606549559845960249628606017687653921976787497824967919045520895401675259586388913907526604203499631778932770463806411896692636165524028971976240649769222018357073652770646854157059147786354382611504718967262293717703933569805304579234237095756585269813217021675670854644730191226550493502448602976425659381004234952734917240995409426337814954170683503055236333798116862261672114876246322369507924119886395407955975694188570358579144259419516162432589741725744273439707812568243650116828830657533779181885780815069648187588077931274433425227804679880546473858390854527923104046051771244945373900842175930062214355230207692628619584411743544018943982382357624737796435933078040792762077369164514406147357542873865267138411785327841364083254790028190092757635171404187056016372672654719234265764760756522233906989716724998101243546524085993987592098191822372917595561916973166832174021473375570426320951841169826565701271616829217506604254212054436713929926064293385823035248096192350908581246176685857053558566518342084582489782940724970520335690814339272960632750532434455797288095500166468559435711119468016888898050318968413832886205178618388331906164389321943930495242899660564011502851238935653134884979009599902572749554669959643342475880173550623308949509566638429901209607511352198152778738380982276383865616530617791555428778854149796145076109643602661360247038670354060276936267691895617826621473565799607030704500613612165328702726277107713437336646527481024924367612781381946294808156180056861141270133425558038283348200429245333213107689990489815239277819938264222425820459484939664337930637100145004495747865929779784777682729788024495993407495861691306258244284982688539086334927009362008547727547854867623853888655822413440001612263192157166482670102994013043804394718991636805058522678203436674156805243602149606748515107979180426892132554524972093025221863025466787383696239177638957318324906632613967767706635304878829715003915063717513432087838062311836385802247627753666125120358479050981197434158926816914038065112179841046763695551193506341271532754910130086593754123806804631318657226918863454927210701906123547849664489690738037132931978379963648947426680962697281031680756201020502315317351429881368809406514466698945739094857317826622108127262582311096343374501865700972606515371148024060349791096633825469569261547965087223458018734376672810344562901744808862541405167421752365361867920141383223800863838700169448503772336937416525548820568903574116770280808710029969133524338024250622034677539924340778294942219855205785565645660770538668122217081875122021705326520157925448958994271528753963534533434280623416003907150143585219354670142068881537771903722113310123625203156725366512272942488293317279684741665548289613951230156692219471897672043351156092321836714263410068179268072431987316390949918115263411577721649753097193692733701705564021829552372612525160764751050877154209740520327945386960915645501271914362052823845286990659742528354448001505034955099775093881124833833146432815215395163069183631009841167266890772676760356807318242741698977268180214731744705560038092244207342603666382635500491305549004309469635771273170470869552311871452290182611180170414668345263022399344391064664082052366556709842143908406141066839890329049671084007110741220394104348291046295038064257075560317524521697243252063843115604564043737316902054411850480735689858838358205352888144955897246798190993770574288549093954393301857579761460469039436590952850764552475447391345211080099218318140732240710051625084991690837754174944861049363668526510730748885869099332612187856494811725092350774721123991337143532351329923270575066573984502255841012793302869364517955917677097370150856051481728358518906133514792755703252539965280041285817122374468311070383924053867008423894346289337813333560679618883244884643537279776126938051547774072385661122420561232732435201238486339424105731249697850106103016148750226616229537657639084069889136919962288337049646406012721732755350518733395279113877327392115717209074910024857312392013001218461040488101896854468255289245289040551437698161026365951244308720440107662794005955382871960046888851390921505338716285327553321671170244492043488168341744564891143919091104763199860990982768996258286873849901668370278443157723762320211668448914519444796684620783238883344026293272522098983921596789278874046365618913713780616125569525082111521673639566130322900519334222067592198197299294613039691232247559536374117917438971476435920090053446598879189882397511738066865273174698768305717668627522518813804656917103861653034699227423075550380208773385138219688290859112830236788966051983497675269775356891217068026446643635319140129896190861783752070379891529463676907788387989793432367172178089686312342630774707646065142295698022091507671408238261097727546192158803929298705851154190937094832295517206100519427431708151283218375224582956096400970045802562504554547769141167742750975283899436348300237827959610639524024767003832377709869899995037427949614213175587638813965318429493541798305232797867250452310444391516022005426915197393537681814327884602939116466948620690426363707054621642004708690418469686494940684340873790003072898164510309692238624338434901025450000766664511126863683456674828597467480694003222085016052958471983348718952063355337741901747796131411797547566160058169342200417311563301689118637369456816134482150927965377102913508575145276669233465909793942177053935181320946494089211507245719491272002661354406934175863737454975664410469439677597548164455484100479400306422302658972640139930008224280407138781990472322654897425589929108721285190322086656994732975343810166313807107989953071175195399835956936212182132823580461572450964988512406482824981185560672455494180101034715247004542182912978256341058807883892164281139220900017598342140043810909172053013940874588112273199417590637409188621701836625627621758757820025975944625123932122601055225754678932638135712239581410403005414929953068325612453463242030633287564453855800121041085461724291765594887082358243889489900691081005192480808342176069378389907016281202072960872358234971452045331005954607571216683868570677399580619405888715832918373390206560619685049251053523294731509847305188854443365144459164760759726874467415123696577374778551012210203165905115032988880174718544855671409188839036098725951199983135424934948716826012653336159468268590460375602757106729415285043922195930082102478799309868960992791675009565064129152612592399248676247344313676300747570591241485883357125237170585545256661877661806011423829879052590445481707558235105466449299641015049547143963890001557978855775779700853750337352978184708466344881301181578664307163067114024831076926656347402185108580968512538698937061783489599214026348461618502962858939672320041351304995330339145340416252398628686389853610016070802975002710945240474888292237650670133886383014077330905074951914605558624448522339097615809122224057092648687376038209983765540007505612351970005381514772920055686376648479477213605765719966441888759864357361657344324990647104134663330924312698374731403272907451131528309779804042378629698711881475950324342047268701665010985790118845338164371175031839510354623717880292543247237641946608665478537845724106486648388653394553330655788259638179724865522405282284203118071749277292012170813566309647888959301887868606630556879501144658864317742682967462504258311091487246627690106366954873677839473124821422486301773220557677243080093313800450874834630415898146488597637465694693642960262447747505484997792723970725323101112100492996568370563935644801603367174761916772765729492309403661590861092171244764523076362277076104698159775293470055082034621001321095939838013355224045480187389846333787763164083900193129002898193019050611886361625360698872354713342808623309824894375379162014639354260330278451756280911468379915706002883367106812886765237005115408351475618767552628814735078459152393269564421831101138083033507172467846568607175512581009815977973130459329683721718792410855514622386406102030705198458299403756963891162237722540785362299058004462648187236600377766143143916628201072771363284929969458484770884264269239106849622951847110911038037702624610217971954561708403611108224401326035993592717903348964213153895015932262487345345195229229743093412698110741639470226680118991624598947665137652546167762337890795896524293549290308458814352998131144884065697428395084203476681069267623796202833960063143527470839059241540925318441045205386346706709892937032184511002525071723063332744557886617448869958581987855954526078226287839325525321662750600203354733924054462268625914359450514592810392291132362042543620572729658034871364463579571621611568320379497839595128898005886000716619401252670392079771138678768329702990256784116045564000904507676030399345598685185450290287450061182675331696250553518809211146110032450628842505509459546284836547713309422474395208047024084357962261541228825097986754552139796553599736032620823758618617834434561484758989534728653850954478448254884521835274644427769987712472602513023496548212214570526357486418057432977013055474551453360703854015526208292723936509049820129534593204835848827309755775577282381980287158388466467252374456805198841949688885255313947525691918566621034233663110398053356674425253959177586182653866409772290526636599624515241654559008271700442435929346452096642996967574475571024935112323252719281714600134575700593255884134170682589852137254513051788507588044212109128587389259548074883252433641907304924203720415601273317673768982766722447542979453092446074158654332401064165178303129382950951617773538724574846928496597822613817689649072062413136265916731667857523156730929572935658123528047486165174503627407645380287446078157735787372665443829610130376493580577028270045642788119408065254616142476516597332638021441501108483032697192133235698139221324428676885316593456265809855077608973646067923457365545666129921693569245320282194660127571918655177011139436813341025049614845763545427564193673288204801100181237140400486777908504454786397740912464760679501556212740770988518868064065579385949881886785499586770499231023432847409353580508418832818576930547580348947356239314993364496892704762223960923657516111564131277742852140820345362950106011125067797590116453276147524214026706165584094940471860896502430966099284678721267653053082398038900416161391980332887283484479801107590127070246713869878505504958692470086788259701382651073564800395311654536701679082748007595701541635316922264219908839950356670895798452664691011450439219936849162498614689636823330301319123418169253223848140548098776288549891824216324931274157470990592501853542099063967748230775902797310789944544924753192519787895304824094961279903269430677480126753693697054250989802738714159985471539308629351678586150765199531429437074295154915597952537689576908512841894034108890151825020126004932867984471572100515628906889331592057298375058116048133740084385961813977011860518032997250215360546956880235756029368941355257725560419178327762728423453246794235901792615828049366421622519359953300988161107719642899159111039299966177070312690604500834332342948068159572309623640760266854370224342195214647949773350904906157011033567996948512748306905085158699560146308816871185425311060232724586858163337510694249286389924001168659827859629523383892482368928910372552048193393711762787754201908314358047184846299496139267556980788283901130770168288257633583782826569639593370583187922858098084959589023586212722548959054193462841377344248209029445256284557534559017847043183186603856181815995531462000506112081041471571987850859624414560110641527966882919811268093246067968009634167484479748720524152164576493036490434037767762996585947860383157117202955034652533055224619135969897325278771509107473966535131075982451915612567902228551248028536649430830794152825186598189271820857410436878044736565865622693910759111619880437504806294546004628592572693090660514308209578809077262656898276571094997779547144388714312245897136849916888138621469162370411557596711265178793186050915558269102031841962624450404815058484602897214154772133826092669101438129546730643432460393747059496023289830120032039658559788118751756408163736189187734527841429341171332378865944802932899087508178740529203940528479083785801681515770308889595926650530726518178779573711866656862208366723842413144466296520030785563263993431462807532682260836335410175309477248211761942898553595306893193667023646981004491809337192330054240360825816980977170995035470830036404489658300196254009513510674353348021165543760677941409249259861431384714761285455289605889682987525344976997274342707433848001402964559643340201543404966433834442018563725848695177455699696199058317517415717480836200415203979662175710012007639761717152955773981799818705524141410280644783593358859091075728769623507431198570325373770298062756678856403716383573151834282322636138775210745696623895993180600371271320159527956321674180592566673512242486813911535104036121538645959320936591547306143880316601710276657557623874150652967180626533394214326209250313822027643552897525288086531493583750201207027383485755649817499873030167843976059089751772955017557991146442541950710588121247433820321355592255216045158539036232681257500551675346305057349335142288832815262217757866556891763344315790639477665314567007732666126642127080127754743581909579165706010290183541346193879086715789879115012889294094724376156360303424709130934771653588490291702925631265174709597809122924205484633973326829213474295021358974224326838443115105020601739714313884277660931857861656164177945277124366279528354510358096342396693826313985628966385970777792767068119175560841820407019118866148008245863419082095976921096027137620946546526525751142794870545777637877316363245977992737774540394266495848671566117770640541268937580125140098831389019160665372174987595355160743922565501593189877933765238740511610115624860809774613575358510054939702852239216435893683968253820790798360081379618961533749094759799270216372993245425890353219271872626363917904241222482099749882984718833194356149753271266883684380603597094143230301941300204271567836030549541699788307857651803391168183560295637443283663704806651205572787080885133626899354004942755979802957566051681309953058164732615156269412795517972152545089172210878345026649951597755474299991239294511722948402280217747992180489032878504386829653920903975473388373167802505156608415616104582082962833615404888670121673354640216767205207687467927766993548363112887390810178534574719420485665360021045790918092947610280375476997125910362671002778686986851438349539358970743244095059646954070600579725311417841411623836258721039454246651897700999724879349187647831698782649001192219987303240137325573509994893951903128068934189113085789587411948331274383593206613194302447789494599282231416082458489149872599499883742962550241796514160831816729758742065276382830201562823655827739901315113635039948064677551275277758602097246367519438552258052149664645141073106158730195275486973886678569151203969631753674273432366842911120119866504924620900787431664687818429483868221431227630916812477495849781264969910905832205801409185501303136962876691677574654675389661467225465146436906039258833161401675842401204440556110078368946395426185421283198842477481407549627543713553622369401590694475396411313145654217128306027127459562842849395076854737124551102437595053849596710830532740603525943027431223717920276820333173514899145289663658967789073188724182248813312011399722627481639949973809408261172479309493993371443768173227494184457556533522482804407819910285487475621788376464378193734396033149262440618438481796561442098183181306625773253957450733745650160116901925260002721947941511666055706270434392864733074203702227535728476215612586309683098882976324883163202771858770345680725205509263855848838271729624975979245172722483083684020537272719031914270973794368508729745609281295874077226176745513330998840988962303784796078091748361849725523778179877857498258460307011327537335380820603317893797222096942236732492838669655319230630098578525705747457119865340756388356273609181216004812572627166433134304103994144232570585146104202759159024853118923054502443779846683247718451124164594125684777867537896382010143937689902292092756050935399803762037780378166610993899302940264896809973779407089984112620967555744553426987853948444770223888044384865598061123563866795968419386578654085968584619433182920547158678073772387800194502762365861866190149090961358744852510194298399971342532421881809520730814315263709800629309830720085108558184777951006650121055146407195872166632673766213116432073519371012914655204228714689585810385851487897417814729778357744550055600288722295109639949799889814402753936302271339456338561917121519855438066445314235175210278054371654786478004663032956313888316945278691202323454727300082366013374651866865443628200934491763699446734056212376919875277344964216698476861337075337543357410486647801781245300003318321774217082522591962214920527906080812976572242018700085346029204357517376494318605005909951549926150321823773142796419058429974903124891555791852922887847570837696308403994107349182062365791278553275676150720280884910227627655374794520961976259997482340284543331501556553283789068171609119596791658227888592786513021938022235641980917223682231286950426484573553573902994444025308330544390510390655721771026756555584933127769310174449982147583123947043407903016567110426980281947933731946552305947430573454703706123047708061586493983657320982179485149300856596938174405613326364350189350121606441822006779311220696250312240091916111078558445085534949864224798156797671475955464010729211669617789538172440400449257718358387318592443073198943318701616005777979171771290317981648018464914616228730201736196506106386817753539435452978619656021601109149364755953470646991322272359968835146505861603839229023186016536827558132448519901545547269965435550899874659242239261955289285744045508094534260524263514330898870871946724817574714336505562169883875671270507474491971172212020146875015456780294105912847329232006789848091385806407434652221595724543029718226735034558696671985635000779518077634872517415357517516264791703878302111647531912153821703213534233559350159168121309178612945819263095839267186669403732221153547925088623625626358571741132744274001217627084471371497653528913026680124525918112299087397349911106790536255066429755730584451338530474478680653878612890910816744725633258003737406473807652806978647570382897358070020297732115133180710984906190681194913941803724836276543552495087247550630441399419807326880382285825037979140244497760944990929459669667895840475314014996833349701252132798768764390316259832683785118297316660507010869976606481559023777480560509996123768096764034723108257557217459966224440291399248045601798594624619997591224983341800528264025294150735031564292593078515631415985653884322056967949026551657703746032371609532377952160780399049716569037038559226892938875500322003411392507551276940334091028598164926230146452288871422561627363117829219831319901436274693890561934928436772683890618978133978802369514136368641387061281763375371680925558672920917567957273744796835764529914945760943366901003527100504240059304299207755774705565180389345219214706774341195009715927614732900763327722623517115268623640751998322919493276044799699178607290538532475295480333585117113771466798394162713510140575853429027182217045964011809611125562620389481484752295489648689057532002175948554330061340548918071635175796736430157997846619571705602663992710704846589049777568824058814849897985035777940135160358354712592832310510009476638354466399500138443860289732227564577968306430192514520654296141417108860388265181680754111776655061707383955059249727288935820323691640493039941092822828685291318036799120444619224931066005082777865545495762973779228021968712679067582540309542690689575223976686405292493505497471613946249007660734462916881878988864511002704434753001129304437297533358082321397613114620709931847175102999591974883176959948832840555403206888708655321575907859202870126074231245063910488083927985411968774569155471243791398218558280022858554436321636233337546454554657716444864639832912607153482073193224301622560660852656751738330156985792726476907804639778455431694390628018909364816152115940161489831408659793070759362597702841884280863484670733226062962377265048760355386781959536080577041578610732022181000883480275214842498477675116123041720719161846777816716048386552690823995112094572443854162786407091357997269557259618275409509180461630734681214202594594692075860077026167182716725614819139429811059341321197457880487362545773041356670968407151154704738057157331392701712602081628748503403043683727865200447862695723212936986792981463786542990307432428425911212490003859010702016664944590917397815029720810318214412053786373312404775861718215198592863536844396028753632979481808720401542659465634309139578291441123474543542482547825076298131352944041367859566480115858662145241789583087386465759366594905535115982751286139016392360784754553655341745185101436065563392185437194129201725741404118881335907198254500892803285025260245274492524599856211312665936808131639737903207323675840652653853485739799221192091374083495558810837385726247839563222969321674573437206198644846352938589607022485742465188853982128369915817318599938490612145780866905835301304652963784041201853804062790451701908837685606750613190404245791366350730779923724970297107394629946269806144933943685565004335390595239962989994217152092365920927857032817195119029684325420518866858072107849340577114043851382657646163395783384529403275445077973610836856259167158065521726924281518870077603698363204110893353915565642345180400611082504940866244086428544952426196057457007969777725177150711061191304258046908571672081962434584648531460667511901893437896799665146367238137111014253371498763164327505239634074499843676916596304821505274358803649021188578818910005121825387809411524771853557701356311476663148272036099376647122494391597045787115619865020266269928839872497143028463789045940509582255851011508915415968365363601582029817929474895089880858172835689774377283062804626460228717589182754101709992400216669227213304101434772485502298318832705123061056882632948841001102374305191798576472378949556188115816224941576665180464602037517236452430161536509987924557790326866979673250984745706277724733916966770556774539177223410133213033833311436452411932607357044198654425828086017316971416773534240054231118218694358120032339639711937706776009364303152320355776802840026148811562262842236210552356565186330035255388598347136018725475584352137690277073905314216814263381214435627474882242949965501405932499870063597699454930936517115823727598992301811088917524870375934459496838922945352707835345200165828527060359167935471956106797460857365848140169831879158718532572442563990669528121179715560924854191088686635251568233830888230437694226393758686711655921562053969157713511738453098751550837821649657079147020866323921097997859321406365145486455469458100835724038570929226817720064401789206147282609371175219647326425046544463733005002649475060612406015719051821614249770794290297201514219266240806666482818077761136293125539497141978259702502212188507471083462895784223839429192523407915943809786497994444470899470390799973128848581244848399746583396953462684837071838071495978848220639845041957280689348161578108804517570330016375953478226071416589410780315260938984614783672435729354053889093860050102662437983340895517993835083343426006640637530912610747473561978779996196012617180776974789249329449849280592144647418510681508469662090868593537631159105998199118327623014174591471217647880521438807893784504752775452189854636362254191659804821611026905998580688730675761698778037528977198077302568803919247263444465924826511816228607426097308379743943905382642932833889508786457292464358351937054833152943438053898282274769021427830609846555218997987625261647444216229400464250717345974682804099563589661709139274415330901293438775529249496541458159889446755131876745106927755112709108254619519074147507169562236367763017817524758722405030396722680214384083832877120429392323865125160001885814926759085570320308829904439383175249522928971496223515798455179814522595248095085544008539967222076175822265064603570954184143388487815271965663037328412825588175393724720030032399659172823652756380826722556645441699419487821775811392446255724237192689268144222893338751155277986298274279632223829415844453622286418210176288016226022171083377626314887684487600211979143754773666728680673733947816288590963037902391585393241015940318187530525287661793004782834184770683230476722635673119472374904204721130904197814734489303432703708864176569757771409293072657501415110880449778486021302040667397778831419354407301913176992589401884402238074565430905693235362907833546441350542855295693202499523219947322988654384866111711037576484526412528968799678884577110543415665072896072060156412655685911676039918582135363858006507179949307685437413609660336377524456051542842887889428345771667725616976199138001729131130051522363466314868456391417006015516509172348312372966535569513090287520168568138142791488170780965672865357703639520988943245914255693394767632383077389935264738163010695404412256635425823531792156450718091331551240835076990662214813617093957473947180868837125702684655264714620222193897620078932298851618223234535253188690626940693539541856232503664458099694475185683297808480960052455954545009411646695572310139852260712520238876754340731130374384477880212266637287636066606663358521838084448314968813261736175075495528550367047566528228420111647960265487857910374258589475871258884424284711932331486049425048666352611738976626742773863255710635441925073174146134542172785822477725808734451032576945455544318027071376267905866568507734880700698642842980192812792635689953411938854038459096489819995941398505764365654273567284623872672830581587679149205466302664637976681330112477434952773607575242464487116053111666600160099132142546932850898241170766211582459623281230007747952282081947761638952494892848864996394999284241438675645867889046076267797882225271838387069178195784531624632438677496880342430417473326126553075984202146008210803451942489716920241768961954504421619801471590232211473366134423863835934595973933465355807866247221554710815087709641129808261829949755481539704530171614842324165626909875899826391311340834769590818745831263566793611397133517343718510227814357104617035435699581323795268932322743306108794865065955970313603469520180589915136408228136411413552012197316704657044506828581934781145675701088654187316860148838564775563341492185497519089675188929242884104394484241532115132599234556189796833610271871414403918599330784486684825244728776809516791150940795719500047678005511937261291973670486994560785981733917578619697692034332418324888758307264799355266205150552364356273052494636240196341272644667658209209463404663852513934192846577287326395890390018785982633172750711591567276978229183865397752358530296936337543403492542788175271758339915909129106554814102734752329879233098840018948862157771006462850530008406829196742345537947214851807046234915472086721439616520649159054755909315557436655118347880125244762677017425002936501350743060904381955384686609204314876252469411401750412452851165061250524292413533512538345688316712024481217886280082340192326700673504188364518088335531604334930659436921353466966270258484477844935700413443074190222548611560795027026102485623497491057003018748721208985965870274049072555427803609943000151418728069380344674294370972630097019153423249465976124853082522352669869473747513068347030181216730735871829918199062393921839847708950097432911995303525705321802664492280378380088195441916878054804587623815409257260140566926242629528133690166653901420183837831117387208259843534745655040396461027695015887992624982326153791864191221332687434741383478631954889396922183219707626958568047541726963117049559183600390187856214717451010285028581843931566997507720666590448719461114066744329156065591568468526033127593197823243809954089549896007991844718052089604092273281693050527612811140953586914479308516336697219543988807322195124754170416818151693521958524106415099055006385099321778691081237473169081228644185106635941053733159534938194510636712616154194348694436731003436602145464967513030171381281042300066378765309748943032207197635219608684399132117241939029201906300936334941745916067216305785449004422741158380496123480047380265642774647544464337126586379475157824926781524762099852255285420233086304569907179088475011040269754339933418516407435277850313101555126065808758268660700182103426148530005892731000241817276285940394258698841910081633937654863802491168671383174767597204802848750118648402904628098949576295955046555953849716999391927134408146411365867517910502059518916667154785290175835502513544004315904265965985060467329126761206628686657948674356546083728794022241830327502116496053946061168298491904338668086531226322860655517248368020905584989323186003670724989769649812051299881448005136436607178563520340543174424512989782413188701488112560522600129119678719302065568395554269538512152015705246296561783816382224816670166989725985412588978873311464107549909397645669104995663750811007513785762952437450667579647456004267593500203287089688118696492441656987611879049689282309983983103498426031068531899201141335682998047759472027050858141580514603756165669598738796918426052787161143448855694734399785553735461755321462589744666039773545031659729006646296182941884808309267417739718205080954506299099263710424386082526379199945691154520371418404779778603022872963974963125231483435799322516889486382776583859092820935775090453605571071968498510525999295523589932180525396302141972926187069209459593397044119309619532973998047284527999316291133035148361168621016806017431954445868830618415031139939025985277347617651659070594031990199421991360697688403898371979034842346109794169563726606746319655350366198559928934088330726548973003323319058960425885819977973868676221959872784559987710994584374718144815669776092088702944701960857446849774025319765101742152042793659883801489477095747783907350476618662324719503532482342341583796824594758032080264452184796300091299765338613653839198529570491853685239023226120729135231771752825103551194702432606115023197068798926901850031847728252780804872255871711366320830736263913424412175856016174027568963056078515262489492670227136931166735003489415047334333430460338795813056685980027486322017723998607946503485148919810417134775268738294359622195603295640282889349589331475736113884500456408043474188796120866992834077554404813457361696047939520976176876524064999218008146695096854733113206995635399934960319641533273838136812814333273218135159138558474327850461008138829073585372865797017581381844027927198913635853247720584977980871934056490002242834649253120677449567303023176721544504023962728649969292926983088562867639311453822970528088391624308476017255338807273928330641798416710626625871196946974719342160503533469960539531939899018592842671940155057725270842946596711833967364177600709511022426321746230917490751520385982785245770444693358070838050060920732979994327689038779156559115879306626833649949840622800267463548707047909004842846190102622190402656666357657193352740006812254959661994581865812245788481867843437749366746204141798731141433823537420148996417240378552254190538494817944021169841799841880474118387390957854275344028441869989011248415087101665586294466736295605756475558353594153676923567335965308595385716184751271203992405367369442066663717921323846421615058219227237206689283824642162118829351806161676276612958825368722275425902154240184526029249429211399256556304108719496290181491372101443352481796109374751264254319127420057198486684418493704784651460001658642716409596126072492642723335205208610919885649339558210576057834726705209846117525203934629020422899168364223360246778273132976126660806105299407333703844828747226207538610931121041886970085171088901120525627103425367387032499360006406175414288555031713788832706596470010648821873180768949642464477984811896399403457869811871920285772335576003451662204309230974320597504789979017331712531905364085629685259151159329835866350469569975338304522885897392898958913418325884787556817199773602636758658444202068933948496451336923293497994262170931588098379912909564362293427866219376765834024423724451594710202360326525552992070977198612201297894232413227291154966958913207373131798154092523497336699121376980730181065439011777028998940039017426523453298704225751356257110993446754846899467621554317145695057885473163040533986872729718454199252647230813356030487442662113020028461874041255137511118470628326991506952766682250384949923267275298496806625867369191249091867923954706041954421788497829680790243994628822525326989129936521634768345237096153376757049440144142198956513090066970606564132033227216760412438166583369419416090174442212373821201380845422855686669416221415815306504766785734991235586721435862328887015400794014021400222411030887260383176399169711174829899493193817205095895162063857284595245600882444632749071467632855462666594565678671178372700078782962847213185484602010195585497686370560162875871197857015614170761753151817023270045372906227920932434903930122203935423331763699325762198270583101738448704305307160139737181193067332778415484770765329042542068914286148025629399990111361567270103443674210953491978324192508058434314866804627597281264352445587540717995606969516913441699678970223225702371783432090048468348473176597709745118452577633682182151656345225381498068848549421223580972614697509803233819606534004922909165125883089442164919672326212018702918761180795294746216870317134341157008086095759428856224353916739047131860906449790605745140096138432030662097152450359982421521720450024664352945495692036563119838301123113035518866621073181868831565119991681595546176760338335561844563145021681531944530995209234988458086799315384523123168504511205969501442506511435453217448791966176782593303296914549512560198948953953425783424992183831212620678190019407458682853639405122250201013838118560633153728835896683718274628691207751897685410373368266232128320959393627952872661103312106561689214453431496110254736554862340114751706263595942057219408838971875011662945985442527632873488525073985787298080876247824781260228710871356170415772552943929211841621242437207893639836446185047412173268167510875205114682460943035890152763947568434542455999234493113266905111000519695849678764240070749591586289834170184195645489735333906344905596464562896037232939023544994686413279197560633255938462726738686029662743413406347317043996160731421976485938605284022279810192728996099452871388297426778951434973522134214077404402726997827040868381488611830640555775815029878175959825846603921361449334301243387867070494709549152523994511686980144139372402064032368178803385675941827698229081411659897804930442941843949769241117694473916512426862729348821384827087584277350157090484500115050330724064344609323193618802123319777347842087734848396766405285174869998558772623968145973371068725910180038892673112575816694173454984325244892908306715224703725424625997730928994700834704774853472358061305049785941491887017233996028209016341696212234788463742134937143852016099953735942679050957150984723479990773232450989428821997244701836574514714629196993784268695508583222328411225104564301942101400264804160218560031456391529187794700080588294788279555717341901887088552457326153578077717358596365979711347391205070544019029468788263543371040397302143452233097155942378940610398862503349292356280596065738724531449054468686818796485329632049407392153761339186184594697074411406588105304801254304024807518012201626503683988525210286330416709589867443881754425719184730904115723818127888744231065297641883523027863750046695373899417030969182265796602490475463652300252299186953748236760260225326842897342024009450109641396303501452008030831537169633152993489051919982269368209036109892736901893556679093839709844962656146016795556139578985753610932059523565518116068911701362727393140583922795066915053948148365895214350546486083232781756214656672002991389207422124700620629286943200651960080956130588072958513628256406017216987323511821609647980783123711865162639849762385717550760229471059142456842282196173801636615345023309045251989687248866250682708241180650558533798005457774294291782118171440651710648751813303088393637243250353190106548743526214499547670381671606232869971477273569460488027281209431734687087741928760492728138728646837291140777567586896855076970243493378690299867555509210677630788615859534055481020050117351735005967291878920372859150673482538718670077159294219932582762469708356455566620258266587260215000928749680887031589201385913012652131461710394524923459900235761244444798087285979272870244464763234799999208864219558790172028675624979840270910028787452812205903175050846364035998950290764514810520838449099921457363380875066113276723927601408807857070293036476325267852461308881648913529690903953533811236820727291605763474083443896778123084086550665078428609395856434387047004174285516620677155429093655586904394357293246506415351519202335321932014849312263233721333100059048787184391833474732065161591625646630711401972291559946648891087292115823981532318958324086403944444162306691771753089887461731578710329226747609837308462096538064990636422282522898494889096147882028034680711824312627323154850340348690026208865480062351510141341541504199216824767618941028504823556914066293585184025172767444250081028574602496097459635784091951446376861103403053889972656031069095705584437806853174911260747762779910622012396454301726925495217582578889436856335776075747760599209391266683188304561491975065090250386430280439359759616365041665910303685571827659485008832434435288836911368379848529013834796704346165796251034256951681036617535411075469046458446236765849408358319032532271961434603825280597427061550409495468029068235160122577367125051547841895650745817105817607202040636178954066828020682649313740440818388810642160439123353925786244280416575973874315601933860870682039141262387224080541066335120725621352861795407860319160431102375200607471722786137475314219917935903809410079372341172929536100687636191674528615491368795649128937067673347377304017722307078621322321166234668349788331261110159116323599710606309420221403894238129475487695393085597345168933592893678474622020913344905704205093941150668623705535565609885761111738419036771627030539731610494837319348608149366416450076347940087735737471360548974421410067507619694477434193101217340051574884895829686618161368068269531177255597752649755021871157422776492150325116469079488639695671920536079381676031093081787627188851657119158202754686248436788393729639109526994660696138260171876528219083220247661158219731981985944726042303984818584746192424768828557470116578243218178289457332205089358451451142465752554848727481945700094477109327620245427403004269343971918002461656314730333413573609608870653520817916402497549716525237817648667632698437587856367916681684628570688553307135111708011759257274574614868786184437408479972175168569272680821286689728424612617084021077576727224460655790846430807163178795865220572075516641636855466738959355771850285888602163983983172983605652263715308864210987729996432806421058381879853044742423745879847648579465630503081519384683513427049634274702908350681281676352310049870830566305348546341131177230923363529313648646852353163563490298311074930479045505054153347770577841165712967768968044347998074230488715160629361458252517102339205278075670018659127291101381757094419475691461270429204688320924109459629768683768186899303986338287324935170913363495297926335455217994841131870113778902277761442719077748788070804779079273956438923967375378617485684304470206769319559564025945874550604028814450977809367479858991388561553106541696661644015511483836293921558666020366585694990200466975420726013518883052215643235519901682020896416091857282993097871200087321695979841181114705146713386813143581320020755381751529873210116396122664731065003810690117651039442227142448333840782626822340694679681235787852772095212430224737730257800283015188386216918622826156233679967370445643581936530138888182500029518109602568029163829821633421358790123623148411350787306559888338356735719716533974447846942743482413640458007445987287841277196450389290707360250266575006983840022927301658274781271942554839199659072660400562574697628400577392723921679965968376927985373582166872134527072688426285498027021104348781336359180959857706828346825090605179136963123183802217753574497094761277868837876022904097049467076930335497830411186625498174912962424816756843572428771224618176713914684631310757239840074228890219346849447190233277448972561370878512226986722419101578043528677074119452984634198413463369498926826724264014293887096666020679909429783463123928899839901431022900555357063514196558626447266371803806392265680948123785587959954477294247772212197912781771298918971680740216983233206150031417637034012526293303665229224454160102243078082458867475398319789091476760808863573522914876343157726202672743587638018147116002958229052938369260900492250289323967635714900935070684621862708152982992836806376637106350759067439006415228464560475074135468635513223060497887002739015612708267989983534683815573141757344226102758599497325575683322048870673554362721391984614498553969127739645387315034003488151380114294138985217423334272293970052285515447763101087954503432157575169259885076221708315262989020314639839543016056681524752439604839639208354348951967889386103788996670720707638547324391333502260945862053551683980626910522503341616267659689908078893080682664754502330295221769060632855596296628334822409597757327946303790114797254490480800468625288652013783368598699386944228941596966764533575350993422487099566822954841029983975174309456028318874565634079887994535867619753529689347047015951239434412799009786943105986023233126010578613833805745524028891961012595277125298290162603491688423541915136900255128747268131414449791134639159065327289289759221212505605752818663916782288793004996256735852496123189001554076813410221811366426446693230699440753969490621688836611278419733567733652764227632509075678768782909752295198080715954929994387727069405560439484337870002126852427283764711220387207962767016028736940718690966302822579626829237927427381073313256757252469579024842303664604582886523853149112887102352742614145906931772063313689843386786771644857876038324658592586157541624129812676466219587644896104465508484854975845330192916473212806431704041110026871736036086179911544457286536018477416714321944410638565302427527631387625863539893073195292664501177083452204373037852123774543595099998419568618042054676775725376551682491850370896237977858931798700181518520414450349900576306387487600781677875104727412895951805239866713965416467054387143018814458994223387833703783101862304290136575457153628848426860391924692692945237437131047998823689652713793525980214956406398774163598674224951663359933641646030782899472786673506268641370966899596966050435318253014121427980091421446342000858222307387642472146046732311775510973745164190512858396619867330351055337935442973173020566193818910062403156362488791764291657510650858929175952003845033347443886954967463419734453178461066386581069440882856586578994609347710180358599625620106648136994207818630535600441223952620415691015397573704032707870885974244630156474591158956846851017902536014261770580612755033344565593730400892488501336808477608593728972985454553808210160102655200377565181202461928337533061123107742361523146464215747576379013810194979226590047985358510279173573223199122217759326877290780067898667509001770135819808027951883250617291100852645077209975254920318828608955053615163262786968335564961485261625960430965955756913356125735626261344888566567714377656569162886806572405022133291272418997643706576766815837451199653449053990317894754166358339728303162976083771781978572578923340261347581501024778764044483358864301542515887006198589252646391699097677636405518821020518675049602306620343577200532683347960296275022121697958099774645331319135930916244083334960159612404289187977596406670656730061043105427124837128131482306700749642785806125794122493433431315643763009206366488944369875220537724690431601631369993003508987701770150343952909907004937048624651339185868296984667475814787483018817244795964269280744704590929018458092124157657491362473545396641261300936778151943210479220303338363582804159928414201019118623849394471818368448466637338073754288782316502620474229109546856824783645267854732450504153768421795399902689844215113003639024636383973775508686076239693448734135993361713248896433607727411472884175933372780004734120171601986040197955496013691666005167477621601203220314336419269911037438274845126451518931864257456500936570987541634038105097744427830808007246375842112934239223657917666987959435891440079816883118131448064455354493329892295476333818280157707802748703775988788055724392197811005246216581880261080749841149137131391569322172135308331247918816066576618386627906343566005068412876448831674978551063579406761836377002439030923107873784032820279240251354114675707850696893273472348593614520435049237601249893711665968128381129709553566415011427308248304499401627256279110108017393482117058961939479805355318456378872910887606082035914157833094654699230859491699901464689586711486706491981511091602769537581262985725962823920817242873726048614382976500046325058695632900254944305843340559088825411827356783366185126246439941750881470268140745520056160775684950149822123069416486588545199957192325738628316696389439269848570800149780414929013184432037874210493668881821779467648317132197028595859770600807722149071111864827055666176932857606782213924597949453519670908362816818330484294100389136495089671733715464129296543134257316176577962566196861987013404869712871608266476891912490891494501431557704809726749725011485455084170987620285895645262461772296452671359089844722571928690617280963055567752473486297250866418847262709993256025406396999891700133864127933271399318006066800093964225274153608905409805407537360752939004316026657912200769352950781219029489268161792390121340594617225868538936292115874501267440350994139164474069332310865781040215387511334972553428144593809249496702444165298145090660316556563956098661586892556819012328258945426416560857331452924227282588865301681550434491711210351771642565987628173032879006951624356127380942314594981945005340756735343150870798583422094442069116748291744882610129480970224743037151264942981604009423755970824226952134659851046812518661971714640806857740220297810699398079359407761973234624895509070534570177984142509021435199638674548216736622360922279397675568524238960940752172353374295822483379970934078324339583447289945801293684953241216196517967953823746149117245353577651988667956299810912799820293606756105524861243026665854033836384826118134041177097561232972164104720658116044620342630015452189472187689932917000350864595760914407212823940429356348042874454724485276491814538194092367242469212091051471321417946137415924198552147771682277785433425960531183363874130035748943674573951893332136764872356493145801063068017850645753672907258739950444349649643442472281999722386520262947123158810350013649987263806429229684590947435495495276762478335132508797155538815415958012644596002457966110241934539818986569396563237078764453776384812882272990136372844444750821017850219387901786013571907492902495946309862720927417130287033060522974430763128371207164556889944812974262778437662834778428961092523647611062233305038520821696929562242537390032170080099229214692602137977939055735554051974922602741900472827943063383076394080241055180955891175264635713486646236772563453345380846512965060107730299831030543748073139707350522605194363063538039232527132840206863384957718455646180750026768376230528176891330156735704655206809023382335653998919466667420440625372774896603854384726310027822673336282735288172821667853942533932167231598704109396252445555284406368020731401673209755681691099205447462816501106502764764363793608433780942635998718288162793740836048868954655276265103370657549910654435349136136213582658529324123790924247826625727525041159394436951882197650856887972007114998107232480655374931530697950762626371148847661063409625522613547964965988876956291709033742104128758388651077004390222223980691426930467550590586877539607776557620017589835182548567080462298961601915784379131940603760788717581611842048590338724686439496840079454882024665179900908072906152266877604248999972942830551823483700441946378847222837229010192759990784604395104086688953322390081947285694603562964705162245205431728398792014817289978735764342955978347093892497458526135280142548501849143840840744328203774619614159625849545247381677845085341274210379808746564039259416356995996726866642550433968931101840570451593004461023613768485550482732814161149700968349977925732857635512533014983910089088179105467379901707988829677045531013660550766428234280593823685438242600894620922842575596992581440647020897960604233586991084755541310384658925181227797487216540826683661412775606996207174134376047874293094705726605872620333589013833824827111900138020845461097894505453330924639645806310390958565058353909939707740597491049471950799027726978429101742480554266461458639788662239332984229807574279384648784920661681860781676522102751769908481637596389415572713824642023934428301770908118987891117904838227301994813900854118220798868274335428937759864603076230984831260070268368236071829094720725378934103594535319891274961530688526089281021334078885737680695302489183692818445757078038319492652485315664826675626816504862733969745390980894705850302840187289343986929637481832105255968068101304588119596346344317429506854939283773782376860452970224092901497125814573178987070135433447759953195435511201173638162634260219408920023320925143278087203213885498881340463892798628856370021939539602483653877905731321467402138125022117132248770234501230689781710555742434015192800737709053379234221746992277670825506561153365065848640201620133649311503531467318886940180742263703666183087054509644621034098763704687562500454794597990093566569229761176819666731104773194445132884145104894978200553569482249931538690922548783889243355576896235780520781138105807941039276830662893715915376781545072494558755485217497436492621657512517317211371892087532820954288524363720755319322581430574984441073393968083885442167131146648986409362354797972218495933013191474845768921332914912139742322301668909574899598748215759008942976583942899619891562131284840986900003459457334988068363589396113011085561216515366382487623053781263765978503328649485220755074112020989977190900574480077843614505605955541574559878564966004590878047859141195881793428896561051307758008360798178299537334910373764177016262245462638397347677754281055707060858190483796748541882515318157748869732847837665110568994399290979825176138152587580256158164561732060118576968050935972053524387451615054768341567351320814378470130777645241994914811756948569388260653060275835689127402371966340498951566081109190792685900435621925057847111130611236628962820636807229112122213257539021295664558894547919114707477865967650733303272667697797592779694598962126624138101618443883488449402930489984998580031171999064730622317918867966338632741723117421987441677133545929096132024168465571871084803465654774118944344779869993199105474492421285572856746747041626073501979444354698819775032516099628618060393621345810788749549776665757726497878333746182410429847318238489396159912224862880578073858765963960324573287690840334185743536437186006973965543155723779226362057792900614645749807910007825544790000314927134457416780970843551845938578910435422959094875866495709118096750975753007511329522754475217470701011580335049005420927186557089616972499531672993897476238963863704487619341337223998348187077667328853367615745590478544432734142219165431176287058299295440516961932304322640722707842634075620072467923354557215117552456771703346724038179271397893508347038806712426395845679714525642415938057033550200100233743952734722713614433557434447071541219159235548809575909164755879745548412694595632006996611695897669773984068962815597081394167624542155752726172844501221397879215383688312719585273326611771901600881478626223662177868755736433347754079263352346223194906274829038669706194050590157957559123296877680951825263759252082109272516023664611200125829453406398578595909079766872798279081363194798114800374612301427927197466516137334605344929943057536503422825344011293326664264144120989357710531999365574059751266447827604655722558203542618815877437641427477931401337761110269222348013412287642884333128670027454849571622851032467061365856442732941168104674418735146441940766325789884300585651281962564448442207702721256740213768218656270118858862621152552045454794421396745682198635544287479603823438941901691653512244394629066628420063751823917268427968638735559591620116451285405135360069267068376303448010599352406935890261374611626426876175533761967772561453747237603681929637712909533442635590385191666228556061657393428788131784098084381845266013225920543512413510198766793788365844769542188221431452449491104218248763877341563781792185850038274812252137770485352553563847606450565266468336441362243670280661863699548405300712201146559973563329011837220260926096873844302149625887213876354402205871336629193406482044753343410390246530710426876176892403645787593090877209275038131994013076716064662007692102977357416141264001013872587147673241433869632427539248692770364541305509313085001604077971005707402396584066733068532194862984020963598760016031148061103898542679858282707952939313848755694544156429944042331210271569165643128260788876521474085900284583405337834574403177122660622929749731574264784999561730504648775429034431629036419387341153028349556917431640833683973829491341223425056268176105422200549303942777483531832757129902141905734006617457093884451765468484878480890550743577998618914734474813311914264054663668472380468166635678134058706721198759382854585785757656394452361979999996618730692473139658396297724933592497931995698169179342401523862655618663241613709824609339614972290609254846828093522699755324890796070764728982294112095510518738289204048362503183529564493551428698156861973169365001619639655149699631157352046977717408569650327689499386270625058170854659649252116600058109357829642829998088055306428790854756424165936587360285104750466387291988773430619992018062677862226184751058314279265883948689920421714233347726087085165778089082051815490826954684577308788725391324347873557465398878977199817793329920393805019040214575489294141592273641293452434528358087974649669607729104044352410952854751128875629776325281733695462807912174497916953685411676257676578560350567847311271456690924028942053251658571224786688054488668462611792721118637896305596809684627033016866042127442843114071776964174072752929070041606307578017309987209484609556251091007736777380457888629183099256910319129247716976922493194923099204607783599953248849233759898207924409498111383626903144745666697393851639402872969848152402052720591200133473933904329499642963291380596262830629715339849415226093343004476179543433980671879118846105457740064272376789320916090247958247479533090660214877572737858295808088154356632498638693571468844661045095358834592333624966127843625683710048922123996545511946618868540454321109166063993147606921339303827589067797884988969017776741002788498938854796170241112050391537507399370535360630399835904088951076227051051908511980378862274952623000315715175332868990779603644095340756349069676889816108667991207881823908102910045517773016815319909399784640954768686304320821742211422520194585011710818153126830082875976211836807828383495266604720989703994476499103025191919681815688147390380858158675793765271769092470814545798436207250760115480555567163445695920226892302684894417384709035596839556201713516927094035887676229603698940460887491730764120861500112158025574732644529147823476052228890299767672735483049305223621678806202282184510095722787425582448519879821119329449386051016507927634080752973907220503945587413802163587373001176158487394163355893553078603238098171841802962010646153107596797083785624791038369072343761546196638522927569875839408571583264036021740415862483372689577207087246147651348572052369828202050818946736244592200436584385298990691813228286477021121848288447158911452703766971866018703057360937778585017316809032132635409596185308391254723438242766024827231138765615869235409112412827640612997469294162345878624657174020890962310166900572167047413269300562609437170921171256690741840191484997061376007094165690285076247617130668606004791476805541630694916034297902340284050168075547561587953312576432401686376747616707661209850756815688741922055716604542067428451599118985054112802235284118344608928626734558425985676157500770064846676392463766458564780843465063969809153065019007470133919838657560421836726290377773434664670407773091322823680809981169115163188130305882836552374803090529702636426056172070722217439321446924493081063001944612443399026681186419420828040933207828965003246241243924105232285838664155729166024552076928185065552634338423353396741194721156785959702489873477019225126163772090923517794427442797344559388187828037410139962738508746606561247416458383862208336895231893491260100085843840144988163492754512898028370783215677452824793890701774282475615807613023795781299647545923743006779455249440895371788527732586098945863543004961753491373701744228444360690242504603367321023121196589483150665208237838316642574334023031646292004599506291509271027584125841562730789537885506146228241249258432400059567306275799599981532721457463918031099064226806343189189955021536599801826264499292788195542328439002170768623036517496294242607072764960941216682201323593790515328356846001899819139724991541039592659992052155330575762586969052807511778929992591727399807497039572336211019649427815776839074777312953118562031523402995445035140032371497817854215595837701104699124345853221477051019871484958320171565449754712628007894525823081900633246115285688306070615652845343678144334068232182579313669332655387198487198465379769734037736870746308388827756992479235801951650654171467206532011681852975334711265627079997746296681445724334735757503309029748020398393818547884938805203380916122380536967755584711458063465514479138654422946816593182247480621314985985682834892331595200256633784496364215322060400310698490888371483010626569821949848060324593578069491785026899066132778171260167804363166251919852439100100836736497917586986524245618685375223531110037932460458034352141899465688677549717288332218017101145750335014683519710139558571182260534700980779023544347919382426093443857324978993879387281601263154860565151469058599177195678126661271729231517298002490842774813876714250795798173375052114847491988692222781721935458064363721767663483326945436447619556543998594462730127342063049214225579879179136002282530669982128324762824886398539373902380689729338771389533617716330176162137979055679127096886889379610852150727456765167418553856530051555203032899726209475423147370713617366429103123046965583497187699898998503351004452379587804002094257557999939660996251501409279168964699192416002532970412301078105033033620498872885811162393464792530687528812600846125791986860694683503371518385512836692404037082800864460748979396581272885647044937489983442919559671011298148344932133463183088162886084247818264418896214807539108922228346227474285330290128154187665959068860146200055021368674656064983193143478466129843757145079521736432287101293961143423754572858325908990783427264352730010402289350603478744153188951109014483465277204648832313480509705173066203114253720291154756282286310142916132479079956882410366923547472882200851176242578807166739959355271955455692237307831861942680772714160583959416993543279208851434999704850177024745454326724256950023353012717708655675778728968230264198204251484854013644775502873642941888493065383232607371952062903367434704756254871680731216901221467559374164914896273623763961271514778391045075544732357151547295908596439281367496877327308646485833773496773794186364499881304585223966874536934324480239192049334786112070725905633973600811169478369700946726500185302148320077805010959408266865006348678151134309046753149913562068668698951661382927087749000130681049610557901605155028277861619734524934705743401530882330500600240636408165703183241918745623797966288790436617323296634447796338334106710043224598711605693533444578740297362920754378518161968115330323844364509256292757341124011249949390177934349885102716572698816254333301851117276815645903590807701673186440525955970420385171656347048939175584141549719178900343139121825645609749927516539279396084097909333776202555070720275891276142825170217032642424162956502769172640858298825892507730733253807796530157705236857651447196674586514867933153386576210914009091662194279674620229571818261008900442126175069848446329136991572507123180709435433765936686690127570808718198811921783621512449891545282443804362339906168699520489359369399617286002026218869281089823359967650254948733388572335362697917403505162773119144515176364448171409864833104027439947678831020578908191257563098205483953026501349229427595036690263201723994812794871964334830616040241939145626479776875024406440534181257233439951723062966796494500311934806234433397041819014097775718332279612999878160636133736763178987305688049556661459307976750117721241460396832914132669115107505503733557867370662733699824375128603674089654179173761189435719227847912175051352530410723852668305513750751645455521874711889676499806010237141320328950415434651768591802818324337337193296662134894759382288172807966280347527321543008501289344557350922502634926876413931003611179108938016648048383007943639631054491546309597687306337491618934456376805053046566960659461290381668254198735345652068734675134384640832358202292539467416440866388903925329481012745411380262079488267822278073205863434928534026310884213643903756206241562705514009014106216210526788492857926991864284508679120897983158422027643325555864811518363013568837596167559693305061793144691042086627542575563339779794381286242183277589883841262791319237740087187361175306660063412635152941473770091877887561074195859633480052168336571333427983743113803849654061038398055767574893806915024585027910786221955665377607977737977140285558753482313948267565455841341924478468083139037087460450143993975213847764937032341343837214518345808200985829817090740251933792938221220974062875988106862713090143576639798675853965486211042185790809227167665535302038142974545845298152414412380596813286208581329860477590444689607102972210007710062462339299356156263520120037996377162362960768350458151681746556849434947183728388194989275043200648506778676476555206090874123872068712937597429739732358623026720482625574943439822855119047378288524648242089788348055659256227305977129856452986533196635321163722292389201695716535260653087333669869519992819895002554301117563385534857390659198942292754933444929719059580506098491424269559633948705631754787526994329034524799549598141429102842802799155115779320950581806279091461109694939454572506184989713597999501005496649720421127625179876346719375836206725444919542043555226858557609389130312059973481348234903399333082980239983674429047013914175725719481834961195980996334593485149784690548947542751334765957072852506034800311525733744396478958484427286662740472517864345992401683846415684496715797228218225154760049122989761900129204414084743329881494097501100385315828980790267390128058172052140514495611501008861434858777554777831668670728639384062558785474001727087403184596776582854618724918926325921045041901350040511966613518098467386027918639510048163282031924047467514333702192180907387605120851187145088059111977450968849945102825350495392925489404813778283294203666119011496882684414348433783050507969732275825917653822166582309937286238819048781819910330765223829093455050777354829164876985305366634218279042346751078949631894491089964740193431154764553400774117528431428805218576766035476729111440354006573392895813991784544914940902805163486099232693658225720588662031334671608420549344415521266246859310010541819772286761720463813977120022834656445183694693673924840748414930688209216559355544263785139768532965469193763395560258584609001415504106074451213978143150118072842402746406482834140464631370324748265643643824039492493927133855492402634881570887042771437432416156519917489810220173502508983398394832610926558646661697934862155743522084666533811496073651281710839756493509396264085674158498813988663708044614067186161909893167385404523271851740842822531545337679587593054371471129518796768631237363536968946486638118247353134179939550791344647204016034476795423494709571984848284903023055207931487319789455214320208014327702901696109516954675595901022873569674461340844080969023482023738575195895366617860242083952231858158065592987503598225495733277628495448027574969590181987320158672911759321395708978840126982579486603061504615961036925022696534202819199328491859221377213765790387036211473300555476127322834997216681602795111814402439595578809323168734210594058712965844197348028427568158505892328642601832669139708097655847469903352977874588709366243974914026475080902324961430963397052460277823773518608269178191589897792743232209331611276218337717791000749828193839244711289698650114458861691898301558550110372336761906722002131915036033596021901904766527353218282813940546577094144997869519224129348389405704092755383854989654113213353929612376082660157079875616654528902628822465317854062765678627202886822144781452825926540838307424601662031900942044776410745388915573421449710492159513714760781403100553722051916080310648343944968472780694189032519905975753609614931764691763434349703095743000205213072789795601376299651319007676218957625608920640400490504781864365699589516048193491029965816417824727922489960887205675529118643486831231142196566657200157056425902420621583019641380517032303937204600701064081398684388157910266801955231478242399876259990239598513230523571497977820376871186521554053671543127619790196300196056423732344789258297216155569155816841938141901120257046308361594199800578000847156192690987645907166363940298074348465986748931087196603958796772040433396329347869800384978528658309505393626934116876781441504748102115233222993781738357946559627231898318553674321071082235372344550406731800168363155180062898040380782779004103415862796639417749181930313103168671076799583817573653945595403134932589925898389365697900196875545807506218055659241340800097496488092192053471142079622669353301648658671373592016476812476543251779214955464952879371232209416832351405158068413496469971347858634450519740716222097703458172988603796211126810039822269112532754302595062679845818331238816342327217642514860928469301524343567367698263368104145442193747725794537421226581167377687853432802402010864972811941703261535025991414738436743579856634386130696638852264136779331318421670065270470028262153568473326059622052418153521559623622177667291094270210972396777897127292999989563665180057967706128649497376070608766947785761833680288586490496922497612725441825428795423847337320627773640027730090927560877561310381654262067704374546361032802021430321378259054312556673389042137247979726872383804047361252927134015220003733677897747855521413190658990453506498194792114154186594662182744202584937081927769604652061434357454619231131065021765443527421118931954738559835511216930795534569213934616890112584707896079497019009948318653840656476381164827848512695867238658660491056153767612361490184463416728652100001221353087390293941939369614784460115695523238113548784599238727476205336025866970134800405565602504345938223641663101491523157263394734684167604226766725834386106170123290219792863382059954111851153537180201936423870243468490634866552176624887115691600228546219513443096013673377199050945354824886738810405242292794870585671522569377385156243795294207216874144514817354949103591799021883524033152325326005576568724678691761037543818559287374877455058177175822714021981712075870124333064807356389766250589968503416252939445939535335860687676385957776206320157888153114150309266969530200386307672463485119145607296821022467592565215195303964985488339064601584062597846249595757795852654288371737596168232343129011502518476478041313013787539593433589107609524713682711392588922057902795956390349107666955558983473145316390891988911151653362103150664024498542748519301500142028441525242500863125863453842085300490450996693763929310205671060319436313832300776825117129760909060883872388257287522747677338233532287411002123281445835686851231187396249914472026605471415708952963352581657025798893815984466034483016270735247926323694823591973581799543889217374519796489051105769507148119083952665052085606518820941478506656637457640652889783016743322477447278582233401168090557993668382501693744175043778807616621826609035465310021544217053119038092553019994037951968179944867299743607298891983813231050196875961930961988254499786119948652876287517752693606060395748345040546482824961332073369976616365452563410223250169602826700243073190719899355280019826583405495247137258961896837064781384130516910112636879296231138500192797293780035422341620499054325508867826557491492943035188173502899010575847738224251546912754493518767719744800849083944039252628680537131861982065007473233084360864508896170271389310167697737123364343242030089766121789093260154593127743122269294282700353674705326157817195043106524121490904400825315946951958370498447155864407292033494799884520365464688650825372079570557406839379733739353068492741804592119554515787659718879409943191274787742434374726136067350792465778663409545293935922004952980114897661214082674224781093502223909050365519867537554487898459193131859019086545091575069797677455932348223888983727515175667350773568274339898339484629307797484353485640664336254643443689584301661842525595691248536370217053297689590183629607494440032695611596392330166337979981142265352076546743036879753243352697522756771956641009602582487938473006247151360830699716803629223798036725014207593748694542178236077068056354745701238053428788101227114385342217403328697025854872121548269656508440510755399656010985533035169272821561015010803179747117887453357205389839731777102413865721223861765724938958844192177896544031793459471375816317199130482636668587344890384035893686326968922332252886516456592247456969417624836691030605247538369259816155904499473147997056051483771781449146995738717714350361736951007254408967810280357719139189992448650364826003534315139466872270383535164420978059316668688327419774114596612286003175970450850889369297261639818228628099437987642963448395887160750171642274752331890093568300094291009947855527984871251884077805185100431278679302326409230482698661635431560758713960095497624738185981724031627992829458994339116521496832353740079365035428970016506510029478730111184269728482407773880999940580534429969270115991080940852487874534116845669137080555620710392584934053072384776331457709193926058193289754931126838973974447925152128883058391781909039070194620830797651861201266246655104977692156451446358039716720565768996581631213447378933409639500728981120448883646553873276003639390186005187833427334629904426459649392687434888695925021838389740586719513253556123644448272511538218813104342770342860983319565202609163474001976423300967259275305583613339771188722308933558505289397748095884966101340409279295761858701315275613007339628931690548506773508295730390668788346700969847377239619861523402062761748031976153542106653430635288841884899202860710267329625347474984702456870968258041824016276374000289705654290926140199196522953673223734343787396692659179889893358539992853372757783861037668484375671299992435413587759064783782417829985659319999432463551157321755907804828749213148829442402602095486768442831726927996955937076588308744189829931351025926717208871139269423983581476129122845269365548887772423633502126339355187255448283147608130168693836986123931214868473148311901595445034532843901069676472012501498847240237650798046555193729349164334561801038809013710466754676712963762275981355024223536256293438424423198639144610718809142360109701950744526609421663529511689068845206939338639569508517656504534505866879427967142202909410154099359515946552654179502983913377556487374825801098350679168617372186921822070583382566617390800022078930496365968663682649558762011687371350581475187475790083607115402199128053960453484155090847170564670939941303501453203722034497224588023068367565137378864208033551003614200320790130140243467161975291241948870639081658570757087998747960412746644327785441487545656700396947896440871269299388354586152310307026940540400923873158376315850509321904003066263514295378803108948241884850028476899185410314786617253018847824523704398477122148783277304878266790077537612987863091540452471641659021196174878789946507408785260496217839481947402223803627529130173015960033033942353959441358042468752422122787126801189483312399316804444555095618532358017561138218637748030371391665640746550039384691138986795239249132724245908297180390754925147716120270459852928431432026515564050133947837774712052075532472557423569745162844618256313315189074717117982433337890497427575737175636470767394728757067231420732465383813225852910831627749632068536670811160370475846956843175371332879513956450570797786530300693243546026998625140295459487593709196429184663670217562902528717483790122266505650889968805482793580860862741385499671300648126887805049544043741293717647737673809691559520525201370323576668029085003822529105184117713699783987880736028540024241037288138568623817170622456981814250464533005826581778387321809343753376599340108174892514795142655855281832461094110140784338947871230846911477088433284388929410446612337134680938057210589309590097311098103773184703087804984218784133811560653255457521196613677652755733689529284294432310661488052898964698929830972788790961091349180314071358788645699597113708187165760512642243360942355965488466402432271192752194367493275609016885055152905785080991742251683738669809643028215870778287236179013223338839312667854530705539561554675627175621663853323386227318499581407085552113656297871539033513367407329339384502333318732093133533835920137433970469788894633625027732673302032322503435064819862931071155759221910960858712663822674795159010401691221778603124078538054023640458016042833068426599338760926646126516065317324520993780911787498531606377220936782786373627822779806810590106307825916741082725357667992909157686674636278432116045145983148805775910855210924287631368284203441260104215732688637730811420271959328104662885098460162285533368348502302024244614082221627497226021988271552182629694377962510033309497759879985793972491585650627475959635973872187850328114418804780733459563015481502323950181597672377831856150392008495423022510422285297528133843495432038728553423289641986139520125146402304488389332457044654295373042198481194217620314188037709415774330394645403369960162878992125879491312870293249526204882309718165287066624155668915630091038281385371508580098281336407804975812329575327261334997637031288146106719874226543494267297716206400011209844140261399201108427418124107416657684168316334335525780533055402067208309934040886799084009773443205611670262582107334705076487952047399975096430313801038028214683374305272665214548269697760201310034840339642145831967541288499991026100725576910469733638953413025794987509447218364598062138258427405789189717163814832024706355860405526489640220097667156550882590084588923359737815944461356035079034925573560463343947551978271456178158869642257224301919444202799409478590668687197369578424313996225239681891523008487174188705859829916379572395886118099207430083140551051999699101289247171744214901440532830601138076758766947693016038212158779549699382280566463489039761948279271544478583252824098006167295545256724055111478931306673089684275890098983488547567960601513615358051321424133950278272463412541901316232931493776111259818194539586858173129008215793344519903513888796231955206638194246227451690781064270633036677939607851226540434103618366160747763515450096323195879416573894226583590530126149009490900170022203129263102625539014888014521089941954275289709876660691096636834570332749558044189078687995286097616695460792220197045260462070268378989220847091624968344045671791623615804546387579495952947348199395461002254317459663434520562149147185321617509626345161810258379955522774666032000305046186443802711914093210556229145214534626553808252858107822708483907708105759116371852787413821814001472749611588320363611005342135353496197531368126131813660310836397169777970355502316227369886626564322277781086542042964530156017874841328565436746533077873792400433384502109051421636733666978359979614767809261895181795111106598190229652445203976214632197655878866675839933203778047278334050288603062336047511076150377570399125557283738699899188894054978857354607799375356084903206678599053286324294033861768831539573552511457689649738738548109255488925831265360149021379458373256360892586088091394503129005286545469466798691513922222014486671463608692293034302117088859707173427941244356233304472446041014673271045901784275544948010535101493622868111029201451203918438761058308491133703675562883608410460629846718421257600559672771017820496067303878059353110057681170157207235863345809672200315323434719216027120361567163277181281269223235518545372462894662716766483784006539080382751042809008238969421386389849711236627034877858305173996475656915372766433586386209816614647001713865785478750005261562146562490048983089684119230952953172952199071590949259687404136779304706452480020479815769812324072378660017957814008567224523568484570510123613823987439269268929017868421384637597189077783806308657551288129157344942260520698404307402660736522734859123485356991115904556289456808543356258423945273982669559256877492982038379547490779960350333787668606028399165074936733115351590634373394776512095809364175876799439484021097466901226069940818224394999619000581012381051802887331431492895194703740434544205409386579592693511040686146374605625043934347027715994979517982831735746995291465804170314302472398414199102479948121511453034094933197793788813555933969281112939732921028958272948340113126326457216970643854458414362045166090314366755481785864644426983541995181740775661809300450015488056809440726434458938896086133292366429976278438489803074827881761311823119181985370997886448103933624341128461823772342641030366704042175853439534493080603213402184201834166454590413212332356281691844429431462579509803893483875997826827927666105783568912568750629970986718667169687960250133130041777742842840435232810287910167168263443426767658862530149302256606213234882977230448260682286886530205052040961834814508348043045054332432505493519507097197767355116238520930621585268374449563906540420847936617712513413653753204103503677987508001321957706518868503700696654591471759084359521392891694427979851075212896433238007611492814171630113738334021778019448398138053866953783954953102061650629775265533088384660896458842109905147672642604521497173438100167052557179399164411577744649387786109867015973183508597166323588584994075539051759432793765576732169358614070141385760239606235364962493812687224289247425044487434497907952378355341449531485652530580302622917710275106706960026138968812684828772415045313876292897760210163395725624151105664799986948530239637233315940078379385364104231981611343683464616290200244442273388484142788119016504767232803828579831967545190045327405277292742233962398602441974824790006557582179609157699799132813068237051458169832717154687642997314346203173165499292630421113748598437113350193898132782259464243681843362397303383262680731775525500083045416313074588596418750511609039645140460460951093127168145821041593405661753661713057138240927237198833479380344442695774910957202278833363295600314524407200656711640254183038984389181911484401019187531235490387122183219363426552321210319978543637102604259534379479176849045995576843617347048510045332125864030040048228357544826436442538619831964154281985529679500554969384837045669587454284572791296331113343753381678836495348100055312163501522830431269098400308400371881650810761601613718850501201998923246952078942732486621968030921975024372051216026706132459216238592291293289209132803732822689604078043613242330624728845504912476514925720292786081281877426535881568013065399253402924607554653607479414311408848823929434510671196403512578245010140441282433982345482071013593450263946324627528939901357124595468606438716843815448968421422975091191026593171142095677661023930163698478950437703672419954207867225171165485837893191151046228788504520397523347538248876445473033547459271967244019008496264418062597667189778133846921644811000371631441397166546301259393682858657213666574081483123382567605800192135386346838135759201561659090937123683682809399423706410130119504866866914055361508070227029867896167160332906669377122257661051928638651172322578397860868143247313221440306984157659177042554290750871459258364229019897240028714677679002535733047729899936668796481186537997017165507587580948083993456344249705929244059613134616686673570404675830767679510390402472273259406562312207764797921874960216435250587828780546523700142606027319932340885107003329026872214636863143544982647912680731179307027121753556570365005646419148764022404663614157636920044062445109023721044996460760414130022228814137312753562942104714381783825134012394152601023781844201992969326329232846532356358028179286540953050359463829049504842122316991614728989719165193119405732220774284299769014612737344608008663031112345440115623288678868909687056174536437785533901575075784712306854327833252379891801767809492304921976204033268700031898815123452850775586273917469188880200748768579886229210987728550289336772743547428303320963714694348975113435886266168673534183001129883870926638906970149498991759225963494932592168522083383316658332879903039596838868017057128808292380639479753646352824986899371551715131980400042267512223875954564793664682867275043800656731545516407626028278996370330209926669010714629000561922070161085898601630293743082673549914988552387601461160086565606412232668214169987973998741270463235235961947549272923188961243330586052332419018320511730198999483091046893952350546381717606623856205774768263906781962217710120367591730398858892873441677354531860305853848658919480993484721434034559815276751001906963828233208708980472072270394317538749504035692444578207031672829360125674317264652221010726871913698651140237663183665336017763608181248741039308494447853412576524292050321886735689030664119937763954509412589309258558975125495128928836534806174950790864215574631559578452789813437389005182469364298444851494562514766218071969096839751705776820531746972820651303292068901096403212423625227281808356293891929357423047227191814506291224746305903303147325644209509226271917328832542195745506221022352027577444114901883041871348547338368787786643683955174050490016352015540210917632484984712976671143825391292828005992811560367532673335055079244958598705366770170657915867737588668542440687833701254275382102248901544656465798936270086991263648006978731578993051596542137154286470524838219600553512821641319739559781967426429887430950129470724851798603258407762468377194634065001048288520733588936281452722293040001288388094596464285653958662721086986062041948653951217009302166911611961228508322998806921786182257237462159650080122095237478047267523887747922573265997396322876194868125151973799268104129831153222924489234794557019542449762345058932158846442725272295104753071700899125276678460932359910469723982357915109841356665229142735724889677737180533591851676775964944986230884013890732029525797218820194228508678368510237234081351192051412260638997933833011937853359571011628466670517359800063820477677434125064292771819253073603924468038499272092503646606392252380099992572478887357919654690184262186518912447709543594599111640763151816764587421694098064582026913316182262826674772632101866381765587390499595285555965272538750271892046806422176966825049440268076886805277597569443494108077442841845520344953391766695403534339599187287434740690652592877832323749470974410690933330265663779821101271319795723949974114535587218977018762359659488539045866015413137013491730004733776519290033658195312932990199727297371036863304991287282578393471877930768139729150575039786354861735862888350874904362228504057062364611613355875220071090198062943511523979736246402747415437544224765622450167686222950640846935648732681357278418956051273201786141409755836567861494711398011421588005164662722335268608886179105608545302920394002282808370533731881070469070537426310863834273264492909487007413893146555477735733096542185333874934075018406241196097671890008616118290654908705126460256192277519520280618295069270042061433454063334563300226373247965290341232988930339916769038514680858341167677792300256673891588455045425889925502252689346342636373219529725877512235561971187431674524274713066452382529216740572932790019269206426120500880934494280368934079959373488454926221485726179301345006422994317318383437947649946211358303604504135867999649533877873628316168663579737252857077074855917736175192062178433634894836501095121814458880445306407581213193378937008115547564852104445488399014632606257759664594318266745823907468260570435790648822599833259506061738402700147085170612972567555969985031367772997841631229637312320140044641467367334756123433736702621059592340351550043903881174910168271982776053099909788222540531624284288679318670687833059648287095165220831974040977320547964830766795900243234056163853848683352370162841702094427430175976270026522829926026801673306274002434341751056562388809257784137099772295021360270718285379425675408783767012682798840562448573027307355355351027318732986711570826477764268116731111598899970391218105065544819628678619406123704716457414904890486642447265776345558161430300184741814323749012573121071265161625412557233441543640759249499666858021965297169555798201873790464056836951445156805017139386253576589208564162302811409811664823181710186329536775896852628458600530066165803366725959033883067464272263175846942728947058459375911877271139992875310515452845349521282548951789227265864690891708844343944509425492951936206661986973045179591702260184791887275704817053067824780615857259891074724737268801869379252049567650609900344843039356916896928127325763664506925241862373215812262830928563676916944291389986279724314040212652278648432545899392837619125289721572334848951971407776540932266198552436993077545573944317951907700861739387055832888591614274585995062703743617170848381830972378534841322029036148456189113930171234267977434021222187344618204468331318742055366500625524133474116831122182134212497489833837796826278431316167972222688402058031095225084010070406769012603417267485090817077598965414248327534451087856774636280289841435095221864340999986934381418113383789400921727831609952857538375765492448500003300798880178310655109621850792902901017728369364340006848998463449218682179313821812946408874221666650689954677222486169897052562561418102748389170622115477337206858256340608305613422472819884464443840889025467079183143662065853526729642585860223911792672089733266677091026752422486771009425615627960300573099162178262832604296225222258777340628515862664544512775045757135224093434153453619109620733450281953618564482554599813077762265305218230194778371918158001271704619708270717439985436041800104217613209504402051326052310324451420510590993634020069028511584300374114790519425748133574156610702284829576090082041807337025191920785773280363832157468083282390231607946201475014688994089982996098429904878001439671944148673260555166117769252768187007893822749172000050627686587415478056091069072427378723982463330942980175925999395934162749716133867036279726004890573677641132202483921974539144735285735463413622795439680102862872093992074627009048911336806057783168991486087748387266730720147588790030999954298057462313217926766827083146970941523813977260214220194473290122925656190486987177721104950465374799840613797875384773547885169310597361582911960642869537154932044589616086661481623669859200636445887631234296106722224872742999720143132765809581895494003185247901559453564756588016045973459149780641378584684489566371248555911793337810056728786564545046947445167839494984623355000452557428323156247547135780156028786388380705216084637875067186604005411333475430214959932846582460153138616203302754390271410802450568846415556416169466838996203099210880681025282598128179341333851449479806156694095663037722128003505410821854532997944423913377753912260008347924369246811651149347645544836804864807883446731306486475094659682923311682494610141482892386709856796849700863853684291823616456115207613368824207126439485694780839183231823576086336119980642581547523871523423689394191184467130696638248961914000934505604145557623487179721086085403855484483087317554790767924276698283772449127888925492382581915419322948520669783076779847850885963687307523389077222685344447285292679591350817185740636645150017529823567035744930570224935642870641778017917114972670267572287310990133882461493330028291454573794392352682017935226318775536596386761694874161710149452930737551399117501886259593226296371958232900170069610521725791899940377334365579695913084287330578034550630242204611263824771526447486680952683895731536895930294396261235523132284366087930425672228117477760650116292718788730826186035457016251861676655139093668639741607557024118929664573751903794113166263886261642049369730206991234231861765205904300718716781877395063133153120172875063495904099851169606321648184428785607157158781290842690387627680872001271670092625088353024429711454428556471034978898930083945194087588831067466939655431312077421347262199796771374555675960168045975318186756309897773764500306188223693536640199179315675373524325309423439699660074737524941372413881639897538920985779451718471329424537177921448666936921366157002535226400622892129373704222953370983651487713728890355038614303217035052671139111028425072243901761375067899520693455972394603631102653944015604718522139215391472933542755119690810548161061080906862796767438670737738098882661936202411421926890427804214496027782908163622405732728391176381691434814151251644148449423207652248482540922795253687011397674093950382697181146495255107473990333248774187555956574692970882304928410372468305283745347135494392483126311168640151461735633989619282896985306567244944722411146731420007037525745471196057814561793098683222844077625960645859790100980240788501610026009000867504745365359707550710198165809996863639595667162622351450631662215533036344812661989487327173655150989529846489573139610632836982107164894749605920667616747294274459949604701425131083714609943332461296423449626904742440759620714638693526128271925067428928705549093251994568675302131730809240957597167709008700991327352704645193983745830649303748963104297680199159325706920486662024167130170382239164572099412307897195175492708877022951006986252412886287036226631820503702705086524464652979643004822346634864358023877031087549266845688812496200875688200082061322284963266900646928751709243004270108751923188797285854623452958888337676691837037046196385437678897258010910154927204265038817244936976151653668034510746981507694778920792433524088954676279638153214919183331871668549652390257184666173692042825745257450245806449267729632379885838353030047720741045490943288012621592778868100235457129585341702001318906245432292094467928554997198562957541997439026303306560034631945047395415620685918840551472544936603129180058686144554253133418165772793486681566243810987223193570714734767273016192230287099870927913034197439282921694808599964085312363135501849125768458487832472313197140144684221808246683968907390762757348679648481030576512170535885303988241469058442448453298544899187002551058120414877688887186654236345517153045196317300568976777547817004700722073824498163242363622382983049441164871978459091123399123827561746241218000446153727801400426537316935754058749308694576932861601821954581477525015239144663680261914492056232992372503837309866834663961698140632960275861295258339991528317451187252556671596342948375365490426964992847914993303747763451297489431616950328835817785821449415005531799956773451414738233573290679783538726855868975161176963251983916109508118049702705832114263965492798835964750536461640229791867331584074627730121651309968003806683580214648379206839674084300994079029016087710473880909819618716069328609373665560482753996825916192874488132204846757357193799698797867747458401543411392426051167745680903082082610784709877775542640193058557075869208818552987588507578546042167716595349432525227142607073266678034972856340666123426395881648747744354199605233064881798092727760259445717458578581367834933731715202364818903424030638415208209710626316302601281504972526945861077579731155468364697628870794124150507424362382157071107611170715878018761597765884695018064910667227075237244724915692683679545705791979735441725471058293867412632036170299014885354000567512608424914736122649490566756051112798248586440974484594376490437435738878684733637470283478161192961878055303562530861197113669400473905118541860111170069039180604018413798205946601821934815743579521271496804368079638459697522109802457836098859284115840976304153003347023655282727605957984222233338523062146936441739175489698284901437730151699370090591210165263538546129609552430806282168037518762978723849614734217373831978587290648305857205389754928709515187768535354153363562993933952600907877313187040445408349150251763249958223248882914179781611831232655894125861303030151434951292823535615993646170633708879066211322437778249283445183965201783958378243919240061766069855544701803378673851442754832568676136873998201426772878474398329976824446925750244970844684856874838309386166781996354681667162097227145671951381800562191761730787959040936299279585301838196997579054611158354319007770794136537603876007061772533816513648639027437042785919199231331448362917606302671718273589159038109624247522116225801747078628808242576427606893448066057424424351155228348129719710622036964955765291877436882592395710293420797270982632314156024601574634936685982121198611512996644775783798207116826316828182662916678410138434195295521198801539268642963448062839775696330199075947136438679706934337654471799439455016126951968452624866243464376549241579706440896161952006257333409356854288665983938982264691352119582718880923678386422078632235870657420762866961048743916092510226343347475908279197896632549818535328042267145843678167229351898697581838710207763992412275711224633061249114574043126271265857317963261077135557048698659866963890446350362628201695231657980253723283715424578993927683259809432169314657185434105215184698030859360122531247237437871034131348564589987992214630405867427485786315034077970255008437125185224214298595590880630790476164680473202076767752108256305779939281198547519772650555585691763122145833575714629725831266767759883104815270673396641489670678285168789503639884876479893133130917511341675532649153201659331577196969521638610017223397756384171350929475888802765302574866791903938520324011602285586739611227494997108560677810872050093920205352519539349184965805888283704175816206522031708578324822992014242045930721805061047916151435385352891066559038479935555109968923319766801271443439237466957121505644428805169021190355199869543423529310642874154066269807359931629470607560315256245621075363275339600359317659064825739973060035641956009242362332262330798244657436732009369731931441014403467558475419679473024176145958258375753049066648552117139106613941053184337072421213847237004797365546767482447557905551140014803778691808240184345945457002792198456580789213413826652399006350589605117144953471342247019548413341708597494648687210643500254448718176500732709161497892981227624836237569351489385546852060077706463179496801549179099359114285731515402180254576551129798551161632563067836841628472986259455443809077015458934890716444576128482020454250293075170002523920754423184219612129059468847725680216628693664613871395173411757292048129150953965027932286779871384663442666836011752223805768503780019749654252637531917110645495666542733936781232233588801896232323986071576930105099598789782950978621256887432387242945722294439591019975291994689693893188675734003596959303990857276083180484313185235809705092576094868622965132928599249633021539986977575502537970563339844904087799594199038360162713872094608944131528578223675327010195174128015404038404689989241271229834415304504050464706477066047398109379146710067890069910113071130867421922662337516237516257719853204533506815075915132293444237241769294019075148407181527541037438874967189214220080579220534309263432867599240810239156796016622867342155631403897964091859046164625672701306709275134505643266597239313513794899534923456077217780406875203433776672797493030990750210986194109719060493008118245473447657711354086587522656997191001561827637945967819314796646122790998611760744849923322152706516242669414345608923531921987177248891845148049158324987133854333317526094345902028925923804752139862554307932438211563419834522207495416531469146016797542013959380622874927040770244000274413875851855593365780202941362512433685318993773862179558841771506510065839411477830573121926574309649506967170927846667082024031075215362318000905111112928186454170105662496785131830708770029482435728618166950659143895882436348498292334587656521357632564812533232848718503224571602962458053560008060335090902635172290079915674765519145151137882983894641906158937244416112486754087732358862586749374442850813973151094462659520860365626922527575118478200566442017735410320834234294644355158851462619198171044125550614460574113851953832932141040635512314790377558896835671512386762814787130465541407577336450807677974197866528049794883375028627901472564877678183520223747226675907862431935344920570191604689790407172472528722780944500838949972224322050249200426846786815144181320550124402628923356802979029140548055998956502281768983062242982062547901029272753223786377640534987565115953043857430376347333464680427797778505237632443002170903941240713940573512722921239295245069805665779655246731539552590351292713313815433058534973381815446777307514119669302738179747183470680343463446906562023534258977577034232668215205612675879288125537560272582269188570903159899795123574511680241772959649431823610266120502721781392574052862377064640779988382134051743863153815647084072390756245634310779493567942056868416258858306585512063221647981950208223591281223402486649050438821857158474328452834032740971062595977308505031304231129349262115442630819960183351761406526184124281838727227400723636254626957891591762070829146726908071628302640205219906947799315879417365366521015099086206228277090270245479683649428009511250722104279368527320652272896147303062293046894750012903414542872567621753383948069244149652954439462062966770239331813174597236086884418272583634487106905526169433457351503568560323741022002326457072793014704661346461162662907090487881634811533996073561087997137453354556113557896629057339594975378545862443933488287428578806234647559549428181987020157327040424053834486309272605957556163956864600982364640438248439659484472978063113231867962564679268731084227649519497766526600187959666304713880019395543426049631430425478030712984212214849584313431604654951433087251752372726921570082069422392807511113668926222042368456381180482301362255780850199764072857822980480761460163356495852219532419281419625970177176834356772835636322484963279473152559294528091693085297119710877992332081027493153178912377339358531174979958791610326050407345402388172157109225955332443024546480896386790163826837415495362538663748233095195633103769288318142387563273727455237828963462466449335855325382462819795114585800626066815079654315399102063698900776414292643692996459501900342689953279433747323366965703347439987386675652018708461519263402616049882992538316876670518693647528471572365080429434009775548025724870824833094416492707162179850061086088800871918723449490652800474097637569960295626760008147616891900914521214657563598641746609022119420896713493879246963717573575701441910370843255958652937097107888649638743398980431126908872234664210283838029877524926671152977975043621554371582258456250343453352533200495624865604292567590350207240940859479249228390891195258744387975727295593781574305568903245087850431864966657747258219081788714168140543192175026207852507454650378383531072868706596448410022618475759256421607125153516529723445329241993687031569381748412875048129187321341963474710583315437796738454598231948806550841331925900136995850168575878080716455114243828709806598912334845732832903571953335149445009614086892358502055557277847986589011688117991704006674428592377011425928874091366097494711785891293577613586089521388577642520052537595228574434975342153288029299075783442877649791645164022194996689821023423979934543396756390018700680949470735152149850494891526318680147200351976416000334781976113391894325811318928126615110836847493030623008490913180222585446411086219567356541687587537246931094610252826343500971679037153750142724905811339887599166524924872121065409785373113425295727321309424962644032161036085159718540774423428870825217402472353430943692471636857839663537326256067100733320244801862325266166424273115320826380832510076940574256803158272684304147033738165270519220611215347593882547726649502244322946790365736082477799893672346900833364544062110674477768728545554940475251608781362686505628570130833795096445133854995791533233310881148641520795375006008949624036680928850154597611936883155973094220133361964010044583773385639399421975914777402713058058670956846301759319758119161096173265028339668777588206939333137493004125664261589053915643479379384141828163836875430191613825619990057301637399041107007605180433605112340124445998770643107849618725839900566597215478406574713769171667875424602680859628772007023122334289748794924680466602222064726792391358662017848473743782700009630228682401143126411000570308370910364464709566846244908269605327748753916099221104603195050700767389981463485619056693953963266351632177767231717331820603049282559843543635502838727618431781286031894182306688708190024056445293097204889781880697702006192228451149133935922951333365421462153350997125593404355268166671544446528482133760748344411655770432676481994241961773183612632573846363615394954121139244983149550753725974950205760678669086009837754486854735680840183371155193799999259770907410393567008980955277359491729253688663120836637744868813780943031670263459682548280999938773429869160667543113753244550150035779349700987048488446610892011727751921664059318515837116294983600970971539179065921939079588807459255786929647129670566485518407690455378819162768530426002437227779439184689044738481590918717686104069334340424283167000872932953975465972980465406489888522014570739435392365015897612666188395605530786096232875989441588935050356339572093083475566844769040626486760133780658240219628474669520278064197491000795717670424235410514294416692020175550541972859459922609197075135651223035384476509456265441831781930164911687765060735657997688044586979170858476169883649597797722252883147490945047806587470151549375925283828975130816697652037788654750968134677087552939100069141998835391589515158529210766163193971122786504267462324272342633682011001964855011522334226888069219850576509501883178724802066611813831265208362213468728714758693410818420079182588390196909756349027627146396134721364418357272083865318054541103904703737231561837965195222626558084666491804568799539737460284409409170975126765975390968205981852292464617024060390633169253743766214468377076831129091412096398498484083333002490997698318819363670287993104234218944857305184548772762446080633647725610951619569524742130998285841810468356650847512099517727008835195324132361785544076657935115364490207922414716337332314617111919242058861783674124778964321060322170446937594362538939411987344544447679465647601157385204147524290787846868022270652583728722095947450511868866803522916135701884067439311947439647782212065433853456658969815685962271749548129561598193081304344272157768151124072035679794853389627668873725186473632638867639415530145656662946371893244144767944275500783005655450460545281129457179511694178562420648779741745317178509383062437752098267376876243116375559061128195894854268022523764556350923568393449200145799400705525676099912836536024516961809441937078656219352565140852718844301875585410551146055574092624217419067262875421042885494958554070550716229104988396965494327189102940631198585848679113288718896321813587346825344893819242875889162474852856016052567814569767082482894266079341712637612858454763010927764458899454246130812318222183825266764976033551484367284737627722881441827863101648210527440369020372624113751444913499261965947963828157494211424262412140665829047866560384077213256908599220456696180972826046241757525112093807181814850418165202114026784912799683843181250859131291217629196833001551322545907244632130454959806985844303192442584355183757415945915642042368895120556758766242295493704201063775077486243911092148030745801611863007724247280029595019538675676705911470760528967687214766328969115526620605316970201699433807836247255015126109757285899322333267122482728109955622974285221982928584783256526910536174354791772167657414954316994346356028754175317834538975409428789818450292698015229316944230455521362169233066380553011961206948635614646500742914945579814840078827724202189551698592340119004247989945220097183654738179546596564321411334473714180789319682757079462492060184259929697415771264946814484116990914654164038229032879558544108876090704015165898334422753754309685290306327890806647191149381251446300163622950004382555567537249163021081765634433325289039760291789441723821446993795434496897651050497289907263955095834123349199990965975833842988748358224099514900785361213500129708103207993379473985123927809400447102444460343717444931388171847153925318878356819354230943275535547713015504620790690121736377336194832865412460640183997473376000577208494410254445300549648831733602453885170135623623076994165404324526103248564722367618515473229565332292544141493765102183652288748369619234170019644407469582872384464602885987065305487246634745651561641893270034742264158357682222424775393314559233769444784265667403740821274931754518456335338030612029967444613029425900032154455365380953720903915357030118266937552256246470024468643446791489663740750823066411920877509062069259771701779368766561818940235725360651893862810386382446489644377104122506610944079273410713728677863366101166772990385014659047641810887505215372023230612194554920502639538900935773752496989812800577584696403804459309773147159993371571229936344031523898242047993659370230572431820148920462834157959143581969639890331222724282067281166056442350083943842777541910353520879536808697073696706809832347846382302864846481502920279052963031265363166090825813169035321874891804772425106158383400708459758265616332698238268517883797057584395039874191557012234353351648692284554605289355500491062639276891582568429575249484284930259117698487520381964379047233266819291099232662046103449976800689309173107905939237880739169418763606645023269207525868926581496194383087065922568044016747313399217676258394512899101733892033568920474878833432058943485057090201853658918126556168269176044238044100853654377566244037035676763795284323998747833221482078613174197980644436140052717615817790730628057998962167170804302459658314432694244221788108784415895669045254907270144938165367410900477262621775322213372276966385159713013179498295916270109115214564181814615310859569059848831000081332541170608765179180451366910511470074990639244752165701324967372526868340188251743774407577681287878012933381646069918082286006732044919270884771678210403973851586322133050185677667806034489736962081367612847397546076120158519837606927476392681161465819030091961324855307584596332925780845662853495460419105762074046151999085830772522714921976411444060740405401784892366877151930557038504525969503907940938129225506861656160923445601266248617828131250423364376640801740294691659697249803712848110967576027952009457947681426802181958022567036793490797767040508716650512646774395514647507384260810214532607056904320030327536034877531154785291549769119167943141053745888102329346393861562058483615813651531273787211895118000561556748308756108365340863008581795187686090722270343711158606848517359417582498686906998942314833698198924906168138845665397585179035898639657785668953181276682480400124146371042048196276994704770217961338485973530680244656460593649572800219570467414785934242881273393831366528500799607828137723456327494850152035245159962637322140873686137142747573649377735470647142981417708759999814404760562310194136929671064029487639206569535118121556535503701881048960559168192792423237364093204669871526290181936398913827679921715291937323681780896462644046233769610510049462973851426005700307397270736437482939760189782047712181419777305528806829669536881879541294788347499954675691008592494263278969109055154480507017761851406481806354435471437597723348337419409609664186741235809162971765933167002938218968024188254320991594882758205665605907126878504925501068006148781820996135307503182997090164466907855468424455430062668364249718509614223896924137170511437713991889398757456262883385351001125801136037864968635392873062261729918200139371970183235529019400018978994617414257116419403740337298333309301083646742535478228905177377175133637790526472360640786189641875996772575152499721827933536929223095834561387982703288509215736469634440120340269190952506277101295507261215989041120717187866222221719351696805056016929899433230510715361703635940568250510755303393140239231924059585623453883913395458719945884139932038959592044429323171346096569263105083861087100075799168686979894439397189611047904154829372131409852935844940667988658467189235330018886493229958994701861145114626779653926408496712086628724214164347186384386728450927872583358739307738323874146006474448876965635393652267393661430378234156916114125766095518553287969384255323908307666228252538421787465656053704614238921888626137246091781518018704763198365553332805793324216867606268711707387538499572260632207857702137472369549255394735782598365148559832173365427452948214687597168401489281407120878303094093089944185945312962399771997914891147663895687818742769618870335040187340684166056373394795443674621979060774456614387863208258973804730029484961631956067934468725955974752145950163772403271577270583981548527560994321228317797651149143469553679615441038242660796637614617160045146458119099837719349562427580328477718254281198339434150124401927384472291092221008396885210497991724825316935618183649657930710725488302559489935225750163882417528741942273666644934181372020072644223787827634641557854564151778314916398307822949172220131613173663870739434276292970892909206234193179301406703570710044706233024384044593343278310752508681897252519457442955511089544218353090611638383623093927838375415629398672632749128201721809151563926465083119736732560857997429877817645189178785275201143968516712375488398266224545385486532375731967118716652056748078221298381711575437007354322689155624826271572876753095108906090032312729216993405929737798904445102592991987983034410547481509441946454601335599935428999589522512363262196813935240367912219747879155238592010464229775004459835354810357517180067765244612547644194004657848099610659195273014132051122233603271896263876945844610718329187205398684502157073732234684420452735799665575861327340606362164010670805772088818868223896054906899206302139397852972944002596028050070613048337100926239837251626253775226281094136698839462468732611363059828659383621742088011289328200594417462196211398189775476461872978859616021308431229605018352967680608825546734660673665798350294032022485274644250544083227416697531180235219941480956263591839580793729691678637682018616830886239290791247344931452662230863585369279398810107225539006086838950667320930569965902244486578242184927051069345276650175786687504410302051012217963386748516847560371921172137106303761133598881252756282936929256521941889536696337661545237439277399021767685583083118893269784760292176543785516493622206307734733498533282250364761639537249802783467314698058326295355078185841647720662692791005809018792114584404175307371350927600915274727632869188682365049392690747673448612319588206367091741448579366366274883135516823454068121206173661382237753000826148651828868581703014452162705278865123050493864873679423041861356619870471450830568637138464789830388575983145497395194071996315030649969735371544351976227317742364630891643403967257530573469760712384792007636056482072477580439431578469429032300877759643351433938516393901042667107076710319909938492889316923694404515447849387164175595818312376681591442463856890216016317774096693294926847890393263555127333380060548133834649791315282011081497523886151360976741889358852865270694048761579955957274391658532416960806064071191346328331684397320420444574415947161463424789154279690838962822890370603241878291635470739738470981528265029401238492430947497450599095275693013352160433530690063112395320812869890409324594121355263828892539251425592020829206206329478718275390642467759537361492924703284574717947313250096758633922232433621413389336984471084164255237281342507093999547190982356665513828219937307136078106780311136932316946244631641763264025349091950460259241784052496557446669853764019499821664630320626282183186331645458708127954646802821224089263172940252250857363976586882773450666868634240499574041274274622839827411305893293322375887844145726946917573813726779967648640671103310743168598443029920483311650481221198336715036026429503845807242293264171366471652809993813775213541475730861033549468128408510638039590948075278111911270129142115070491326209722957610614161653049976784286973776414328578711097758144802088392924465335201803955314013077707315269192481153299082065405685463484321510589209886915401253871033341696810904676798403888843876582941114517359792117766941181172073427860154843851481934208359440110721726883471061208455448349046349440253199527502844560508096614266331578755621897750268713005019380815814941750131647876028787154245022177557373562271803626995410847014004765447317677361496370605548843457020618981890081004855987035945683297562760648867401323203956313261469272607428892708973797963639712718526045291826461804709814832408193323442631895653854963734369566378638040586530862555049319371195240958219854024379373998074747599651836039756593814672627698573766472193605534781875965551979195441576149848507922802357790758264784048305994570392875189927493918724134467300931831606749979281099523648064171135121171013007045934161435728530177421691256287625146469049354222883023965783201192125868752283749874235924820364281107525408873275838483674175777902948649432253608894007789244680820161759776074149114356579589823345598182750090411915153375351227665833066112170280938636853556031111287598790154635360576821387753242014728143176934525317235624997994207927071574302417076784084006603571713217943138585002845421837241604989667936442173906030908559184613799596518137890028331883380329454556512489260798771391939522718080366855448899550617263669812535408535749813632907139182481884340108010985024989328860589840002976072525729396540550769329639320746594834240896184468010557863501580187133225056681019722850485620194582449811942318642507331266122392179841173672534513684672400979280959237759476458277949319642205649216237287854162341894771338799358207661036784706222701224313880078159558000760736140674427049579904211038779711270917063758461721282575458626711965047298996991088666183515214313711550243677972575525957921577119275313305131741075328821001373025136349703921910123947789803729653435595737302031607949467164122299007815522875913001114285214636230871249493944756001346356379888260665035667597398646369819239465709489782554587990886750979271511117590971695672506762920470095445359202530522899205056344726554489611433955697756286872876193491085505697879519457643259975907571431151210419327657513201004434570129075729213695860861156437388658906902583029071579480828451420480672036164568367187414759337567092461937089965004431154112611353973395115866805318035399102584203292922677896075713625209690924352458150327505167323558084722855040377538211632531249325133523935265644801901979014593061102381350783655716680238977036422848101274670452996033556678091127918185805645585515044028150845792020538477471604700583107882854721785837825067736574600508719052050046846858429327990615846680201201111758175942641668851945061132973385963634235708004131959240736847038195380886325581906151608135101956352067519855322355156136592411253437851259693027847451175464133460956261542417355315517911667529425011550008918654812294776944899851390565466145327214125865620244383612667458507994541472866271325819259642950407931183942117229695314094171934036118650102662152981762685894879784433154565859101034436701274616181311965547375163509165865791481247394689801384825193718448571928305829568774490902506702101023527316796770710168034072586646228126557044514113760705099024801654555707014266040592285663666896224198993641823059784531874093207214955736440827081283201854059319283226817578266850275795458356658199221266280386497962008862727042236384301681644070154305071174089148403555648436557851287763378207916693173321886540136890557308690803488178480514877122116012637178165094619035241202841121696561291538460772725263768020825889594654243866676741775815813441514370946061155937242041449928279315420641013468439641216879340107172838383608696177662140331758995437248174761703792882187510150578784517073880951201538023500494302990689389794861218947979788397798152733581456891892142811211742444384074481078581336825470119410113209910886202701961811829441089415694450301742952718628921766839755337157338781990741238745423585030113222433411987004475053133454317439122204650825973019676219523922939310480533978186075096124661055048817171105956984439091249423391773093480144901285702673325563773655024870389866615108966296329130908884206826675842956787526570406227995819756537350262177629182450245596783779729050031815976828402594495036061417956368853287232119479523451225856428003816314790053802701849462695334033425550663857600957762044762245240939993611535291937421064416655122798764438777519556297551395666769195936332495017071488181157903062324906196453529577762592708869556623539920210345834522978029904933474971223849540672100529984230713984346527219394824628314213397711853639819579012405646610585766847569012803722317192398186529456685227888848928263250879570515342183086146109351615511595771891322992754407631310285054565446353889532259863966061001485107443648751087722610983253580653301494202607172388644385560614153425193255652623354657158730595727647916423711557002912505653275220690933874610087699324318572982527128294539197562986068451457216637812377624350078312979745782861798010416354290548129457316368316503104409925052918252395614150632838687914937373130333833894245787697480019476842742628622691102453721841092238621633023765864523832165893037993943680477628219297971420670001084018105534282007647753566527090501345135999865172629088616268819047440700789871711065153416712472054997246766866739056816916446658809825512381611237075325071783436181846434519368581768810657931748345490831440115596984441570559908158346742081051485358145167429088770079562032179558994009399013424455782316121462110049668261736277884289340656548992743040795582058787046903563974774588099629789622541918597531492427972057091533058851845333776554602130881033462192467117989114589761390754705007084752883748911486203780018144921141884967345261785575003452896068820326205946526899374545847938549504656735576878383941729068737197694454091698255839243172834623765683171062530356625704601021869180485149767632839951579197629486544306903224307875686436353811032754725993054839277999968494840873071565744567572976780663344098285996345952863801801462928517709272458960285412760485940831599188694286653104704969458947984783952342926992580225968062397843360676672478112712932156876350750446150670755139976185964725836527716828701157549997710871244315358346606131382220440726105872753501149467407931390651240359099207100545425032509575250248694687344093342032924406992253265180364054809762051732262222810656997994195809943469082122049241452805940571985702990285126747139152838015190955136749284330629177276225097736584288819201734882220435306952407447207270323190453612679074648381169486331931036995143045968247030824135582476405474974251808521175689396046035021500116520626672042544943836047649316498354798976118994346728462906789477707094086310331921086444422134452064427115275959646153438971096120676284764523433490735355579208477207037328988364423142941952014940571075245717587248768421718204383421232904468233283001349204647230828102822492654703310517492769217772731533049955317685551847926075839745394672513189115523745133853894944102256262420184426827874482711369344976406583416156625376482062349547926394938943513129623278734515915381332287676747820579089194103001747344877581168137483935008534746332341314434069648102927135064958280269159503753315977969441125938770489645928251841935726054004415404047104472976822826643198974271470637224653304285114451725244633765278213493496196145028032998958287228514641406615773049362715508443835817867987042128562116104111376672012488317804554550432206906573142743451211572402293766927863252140654218199570191693518357503073910028670961621421474595523318138270375672550070430926935801154489413876470237290901683576636450882990005307882101537563867249440931033021929338809934724543743657975084248799078793256618260671879027021779602182411893195102009729944205915775912717191319635020644613027358281006111547134212971916302340122532880305599278449850448680050307090326373674665810648543071415165614707017907940928093950971990882085049051613184474939222831797697209728493239198772600979078893906452680903426365521434178248907978424727517229023725351463674025254158149035274358907613405801807160549102019971455345133862222273419664304251129890683832563994835823547406963949506313380438507541124955717197020516516440170426155757404067790115640423820560413789156460540104368556912395577191462997953623113250996564334495144736957113846782540712149011793745815769362941345875245152858911314372393051804970215488767569452293575383333911588343848360536790527061193429920990077088840325792877734326805402995616950501331082582830634808850730087787937885862611113176427339754877562254332214971597075290842645076750964685039506744790906075940991627972907729304279806311056078295620381776556417972769715502590310102396981690699384897159799605510506709267591802296065414863729878572478447810617582524668923567290297285395772082720257979416170964488995682528334426094675172341965167990089071624419452718575371936938480795391142389423077981908081946328302859414258062065990533687681590052591268168664006789370042480784903781505772205423873924584248900308405337564926328780110637524919726293865050706282910847238798102750462855532636334455878359070526725024833545675572393172833986570641162102108586923592042186454565554694259199103407777628660109531684022130279876397654433067250497467611296341851909050609719186420106002298844732089874940295361148898080676834047365103817176828890324217241215645172209588407937399946662354503647175522376940989548422507472805736947817371207473932684942642217007125024520999378756263169462665127168745768595079107839849424525294352248211903261101264971311653063676804055797533491872622797745202031793593085753122692992300671275378589453669517115093304904991418242542105356823275969706848092810478517109863479515871378800335699561355908348118344178062984101337239150004525227729780653319882338596326930530052494184280190287067785207375471007615583697057742383548410473332656684498266934460418208073753352695401069956686399269591035703694585733246931188723200685571941548976678071987443315344610798643278397934774330500099871967101756345569784749614203207262464570631711914244280473465382212812770883342185932283341726109211212216846396513020911433093280989847064304896266273983244642755790625875784420777900178725684858197988891763803186857825592160544550306536050459638108194000731523698513065405665069126460923717631163854236090184024564076017235523774134085436017465558236486453601314979085093615436241133416311242515375428702818812724481962601150220564518040627622902667204908843574194549670420448223737895489923037345848435434704849670853138716234087509380680949850350677186121331063279448215728024040954305549329157354535198933613713379144465916467808859193374621800668355092278999681890391179706918571195569097684625418564150168721125592923670498936518267660388726953965146534856572630424526013745457709881770762574197521321990102930259482730946096126766110066076358501155371730834144465284109776733486568335989982340889212496022721885191101570208541829045365040256088821635829330510630802031591220922237322244488875371225297886061598172475393357411545478542536684588480970508281066229813901711214799640309611879981031158215782011719487139919487428218789525421441557243663157676850759019818626659283832514819598205939006106924862276252306693890053939414110204210148858559389291651863250285384523395834947724554028213544545316314623471210830489449555994872763207386831266487421492272317322586221387074988300771284068943848948580974601545652170396190633656005798697413861298178079019709957156974081135669449334188108208155313175956263734568368632473574934326429324259824543689458240591725326283022256026220766604632202119590289656378962697087999930953262440351928768590752169366942748450709578301264274908580816440129060057777541524665408378631948171839410019517157192382670917624463728674755131564809835201015396597996031214394934780738615024400804023457758027015659407146892882361750241802596820766289078936829625789258948488771188103757922069484226000278266373069184520654838151447695936002233788638953837673442869836930085520990267391063754486709923729124048015527682163018278513151751338868258543477876947594858990278000790852463697782843702540528804619361602332555025214767184913238056352896066759456941898663465902404808778225205729275832154036834835246080861589830767645127175389267605039711520455471294876143188169071805957153889892480766480308880671371013306990889707866866002633208292452656874056234425040068593529383032804412952656201870618518452181413110495929565690317944869064397750136604429754645049077573587915333310513640358850384904066131693513038531827374200692345565364045552796110823166734539204124615609203025194697039328656716365018326620487136891103618882513853942001494870355104001275702132953249066824801331957499970256314046172044194343998294100242991498432753540638923889962713099390707741557627473833478655062691004654858757793969514359730778840073290888466418703823759348863724855824783050263605452754151645158772224787867906539302206820097450200002955251478220044237405225174963669194495304459083292799075079431382641447189719146985349374479166920956497121016784880404711185177689119099594860193504558108602379663761017101388286057095136287254578650220347276131505825709153567028171477967224812446982695573739796200072739134172645867120145159747075233226189266878947349747728264358452742001890488824760677744573395743366887009717707954392309481753373579784754898737570938449244615087232265383827624982781927428889116015935525699141766055701311903488922292823693821498204987126592810758875254726355957797795042479709718849225211275020387495964780844772469482300856028807600427772281109439385570349403256283497707245440864687233272741189654910765825226394759777326450294361601385889846308607321898697927845327070933329559017396458883623045659105706064811244022981649524082755041143027523689107808081356117676447967931717318477873746464605413537069363886706497853498828235991963711425385893891365176875384775856374750224049336497106367726072896092245334258362989469868732271298622072721071482169295288593548204880697241472522858907566364102576257882672422590280468613554394632028211969672177842012296058888498012850465168492612151716917434571704502614443744776287325924426340692921107136614639070855372317635400652292147347964123562257477938028806362489898482766252927314792271238199473183922617342240931503216675926461020684523552655069921302476677523264320364210912843158077671292439696557912840085340699842154590604253536239406430489572060607382441134478038752850627718888133324872718184360603586474085694918259041955332294796675047035884690644942101873716307610125276036634236876077217597074872737630072993453062720386354455197318676200555723446558458885821495454536622972894791266158806798239535223223268922644510302560433390768487163771500228041752582972722691472762514079882778087958710238730075116953840414996457005260268237671072249185167451955189916872457819200098360884461961069067519274070808948667794669511766922981659584022648160683850975526738834138749961327388104932243060950351622236407885558793932255878226159601768521939253914107029380170654731305109820741623867859717918434188146911073352996416831257664319898355053279647427599297265233371433659327105784197963501420489489172070132592522072768387123274804334301234408362361518956374198195715391780868817121774695035161404338852482514970184320370097526060794068229455986980538045989496073608815003051593115939238646476909959776255739054555304780925787960400783578888786447607199280602387832472908157838810339321575070914187348486720008787281623640825697506667807944404432138041043489714649195712080451787345641420446638185922006060812004983382229434421690549209401201608240336496287697096187622066469736261660027849099086757747762110024643419786964358818576936699157986658381730698247007291127362962129674330362164857894650295317325624942149716818881063335888678473456721023375337040303164217661722527031698411029657561515528305556922937465843145248423125613048985065351883086218696148181632217213311313260843164842598475509356551846848906165934221845457488634392809572824846518610215738503485127522970422159423876546128422632008316409524183858226670833466991362764330127972487832421374473880970828137077065303044375519427714022643921402814625531350078399095556182126566623019485907969040951047945925954644483267485906532638581238109348649386147423140381430580374110670920731726285315713024554935020480639631704053388701867449594568388987393955872094603491850330979158498238001599160533401631385148682149397294616492551104071442346676396246670134308526154362150805630509455130434667863119638098627569772373320401910734158742391831736435468290663425775772864884044181651556178434934332098891349199981793752311812387112302430062432989721354008773901382666056065845359065974967466043044010500615122379441141269288413765896914494610336694136729305440968651760790465649450913175905980813940298215671315578557418191436532354112131054060616120004314562845008160548750763476074070824292724179215376213262534494218138743770480304697117435056968732328745356515679335378334333911599228716288918579564125639471595169177359687588982985123639008181055896619540011045029403446462366444945760300131497659825933324007730440807386009046157913753578545014504912247216549183982206888237689061550851226114967544225998196568519373368052713717808421049127151671403292316673556566439695628840572335957073120260833978043381866118384287633028040063289787986126661268958431567645145826069896329350851648175990303561642562325859662630374456536194077502544215635056636467047271007482874214153103752569208733522912897783592382714348301207362723386124352067718321662731601175095666267670163606610540673087710113498531388564881478807456438538426079795178666305716969642233960605223555175179347374321696222518510659851129983261828871605139426547966548553219522494364424550524641386023106352440337191031235925001537691471165930232875267092131689322389772769078659998588886180606774700094434648365196493189599640413522576027648222764263442445855578078199736781503739107443618280065633685659683292623798388980140375353319406763899636178149500675870342084499010413903426880222796676361140861795580478014932985944449786119747341851814308839138200719734935888854192997003304473079369662184069366927947720848990770332803724695516312254388545005173110569101980730486545025763768606858286281844177150213974590930882306168380515224717247457506646042058571992120027588562956644796015637435861853737785790093553425342333190377287416440131630181154859854678435951358792736466906022295592959868593993047408469048504375538502727800696980823417945106284359435322270937165214067065582725167832244200545399712755839880731489015407107804265672482599107344486891592484013490948726638946533067214008410927719121586691009776893926686061970695585928106293755280729624969952543146324987123947932415151506543468386557625310682336306076943172777863943426311443476710409948354079726464437445577218652817679319452869907671635870881514135113053187285037053741962932451336652375429894269947352156737484461870468032139326150297804278132453292541967755242537710340526320969584242370218889212337042211187356471589700940776637155271541089642864974057624664891651716302195247133789327743483368658427304225533590270569007172491783390406738749240095506401617560371689603647852572498763974871067018370092527005811516637789635508754623112909954079010508164043197383330398174583533026844476563477119817621740063741636350807508044467746179640053429734769173913514144013014362268383562772347643285854814565454882563750027553002248160283113224843887446988700277631761522855160190902657939292057979408030923074308197848883900316450033257945990369272609157318535826336517942975051466158497265048746746924657204735664554838426643072017629787957341218490610877275190994406513112488085374597545316135125066577383654349219692380056940218500016192280918459418963805555788871737380633744595931607173612494229158871932036085895407608180942205154976325432815424511113424929043849331507264920693498886402224448546827601861009870285201982080452925587956081407820625050370021475235775177290518535637482459113287511964596093888919746060598395467953469735683342183736370228063275477725709758190878356320125191202953669017835187271620502281161805406366318463960890523607616746421573952741315682653482414508571286232989507706651940869898559779512212232702416951705251878774651842350798213333137873904255117443114324335856454313199149869532450858847125429061882150059730185055437144888698723826841573088212186488827937420096218216801169786816738069407879802653372654087734099631461797296841166997661045342722141763827019337059182360237213837901740892138791893954942498931111370786131115605286862337337090209221108829498558403388915041757001321257397489568751508717281930416810546764182079313278074481435922176445061117664418700733126871788147346217591988736697254967776755819518754149013536296724295946852338107591805072405484011282934776543487538057578573050237778541748444836867322999030227995994152751441007816481120764911586576262100948269387880024237042251243997464330933642083593124936825341126987826268511925355229790939105465283314089704925214447337031473830260687924553837477002873727014862785470882778197601309163108774933621958718219587185583347972927485816718136918978130151987467805815934513012534926393436851642006262362734773524767828221140581982833989118143419389806149066714201474202981800061150218132329486403650196998038396886137651951436637708039179014838106950670920637337302919957849140885684803131033567813893906921302881445358226077621807968269275851564087142909217099225185530141625184770263288601655763458284407597903841724369253315551698962206410543783744112638370565669395902607106341644582502907001518639968698332679332252986219360226610083720434855837115127577091313914378425102395421885341016105901098171411955144671915382970450125283749288470508183725949923817855875575900150565140722569544643551913043219766110730355817637797104235755164891025001637039876593298850297423115728069955748488836321460692885560295770180777446500488444436266448299171578691076200252873266475398152513172119718631544703234405915705142554648966758516053118027316111729001930898628433757354767490109297640545746640263577551490673259489360689766659428526052113114616697199137171001219990968073784152158523386110392131298167562411666061617925657094667776564792629944957138827699422795681662254537413510464375612626674626055906711257190879982747420810086107239668382180593795619214960917045906937079928880490428852942379132133319779979136940866817782848825735285788629344665891017763331526780011645059018201522667871254841349192302043240282050998384605685449355385980027722675695707556883263425128105849059664503351884248241362570421641186569247919497651416032055959151427623303466188746962172639206629254498705222415258078771503310378356383106298251033180324296421298140074453229636471148823121527084929376190377294769492229546117818307209074256106931380859461922757224240575212171012165519414997691857953769614766517109691610369003442763540424995414120415826857385667046017208122543978604203415613501100539495333472148706142834842732570328506972667745902685215123741499392143436776827066838732702215543850937781115021612497098069310180951492795128747996489904698118829189026934217605651817478536166015640719321668958233836724106166773650804451309681149462337072404487473120892575003437624112814667388258624517550678343713756332896504651515061076224921162095805679031924679940616660374149865941585023861490156918528528932351980001966745153241421363692282902892344730355720811124952549252262513274880734070332131692907332775818992318052416834101197293196152471804734771455456595885192290731639611866416985681678664314923485634928649673154854175518080551929418946057970399123626269214786843606466282781830509567835883785021651124865399267648411897531144054991070804561346569963498127573766484717068798793859333527678943369040356580817824396359325014398662449421134918156704703803291334360350636927308484299891847376436393307270376550595168927937789552299725984228949995567279603548682220415634206287651686808163553900661377976743066156771383078398545831374303900800925675923652522154762973307223096986898415771965889307232856535285778811159037198957876155719424401668852555397589515740313289429624439715432439555602671069318613719940047776076342319405158522172473846063852658675081117558056814690258426963083286034345151981577515726434175256666914477062829565180690450217630011698570706435596105080328288016276606123805135262658842694477985529140310198572463764023396363691273502012526203552394485322942704163894426763699399944507050706237058406078815128882494876579615693879250744958694886789425431070251682221525884744477491469657294891053080248060962570598981901518408217635176669107897893017954796821374978592539929173089948777252808601603683141688772272411077985317807425532802447420093393193867450965239141584195083482260349609452061208117012249184970222008059512472180122870645621525897601514141222541163449205434827282439480601762546880579216031109547080434730506684427054266111684090053508608423719860848563768414074311999678416305757758048736977493410088755068235907689056773005244243180956882469016302991413799504061531006725550277166521283825773631544781948961104480807035723484120408576805945027452231326112475856503818277786981703804698491131302993781128806561741462544465662794048034385340768564248662605631319908329567779187245742807267930990868568077383574151776743562267516240187429719024689563220156807472724606297484427187123967079423010887323697884802645618081193951972168962586405598946930009599046530744924146648862036383824376342839876027240177142038738498238108565278192001042879600166510960479569802582743698594065857402890817193386120865072150040837662088260816881646767924383806728593494168992816389666852757603631487144175963413694431850699247830171711616580069770527297318863205053659735971698748813477117934907081028559351294809326501567498721222308250696679522158863707905927204853336855483714511883203859436565847291693540681998716824841455279471330228267987551596465159138242275541090938277767715281054807601537507206231907595869183129464764005835772471447409388993187193909710424265269634816098456632225493912640313836733082823085801326976281372902013007130676624275250247657697900319243841779639983444760302925676330077921919967525210881336704726227444439433384965135338307843750587547391107398278570641056701559991795049608973751089534363125936851457848107606980378861766590782224069389512624622681156128207662596313848009060839820758505356877432093823792966668992988801598785201780526608552847490764333523260668811146387801830079369257878401436785116844952510671420207447048647531255711892867795113254544289827710728893844512058089638176338808489397388110748632522186917571051423753657425319559471732498780705874267342424366071488170614833807475274918320654698502556215992264861261095154809436984079226032593366478295427359467041666760273613829124090742827845104320296004796755002924356264662484487321389670066186569276811653772172385576430663540718236066665534254388789456645541076598925662882406207158217541310679475014216882834965459325458915657420675704159943931650283870537487590387771026257966412031066827036730228227378572656701359922397026242868557614660498736394683287110174985801336973036753396427672999273921587503477259527690890083978114104955819885570460452854156985920541557763059468242055055492757655672889287610127634299137282935104450103888163406483090156996298062286037675923093479841647448207850652501247836956699090288142935739380783750638358816051737875238772496705965229679428269805628407809709246806553754970065611692542485849690295414461340556248420409315051601853835618961775320654133902892203807848751988637438275706042243603579122879864595731371291880080738099383127647233031854333699425336371567709682324462651087673239506871595436131482364882896457523645134057729286059403725097143520204866727754890552767555655294617642813117039625716515521310166157449664149275161870696887845173743343890378605808816679366225031207011832254782112461278449423377479596142622899329861009746218914426627210926845585461295966407313537309728715822154779212891394091287413290098131721113969423182436282873367415566524367923730174933484069784585454794184225986583073842886720390751383762622586702301052662917028062274701097248923116428490025728219022401715425023747082266499288635897100018070496295393275481710967941622129402900541278402355675527697672095734435550483182101892179587249479774781695532039854738839097093101890997278798794585216940805117714294947846619787966609384519856734282951090246656144152990106486973803790622308950882885361024909787912674594499278725266445391004869535183777707058198997660183416215730301942027034625194249209686147326233904435444526215993040424601942314089087889629017712908012132331359301792775894996483444588417795365911976316283068704099080759750126445150130252255155946722912636081645665673798200515734537420434197975588234009384856554502389031695172402213180286146821305908084694199973057307899794844131560680426488886363602872130173606467925361594679919995487916208231957658671062805398269500996184273696993125195592108099894561968038640270373196902710291340786407326786314240959932040730916072069767703474603684374967230647512467249596176654925155695093715716531216675182546441057855305721290546748399984014581874538604643473385901552924334836143784930547491159249545376610757081307846262412831436249662082452358615409153923135301093685747580834847799760754245045295524782217944600248062674754023370075838610879745435885404797093900296051343974204431806610633790774450263892103791179216624634288067833367769349530651079915404683054663777556980279020002319343187344604093448028410703818161961289963239418129969672768337099590944215395158193987937408770395374471270503003598209793087371207735867230532353071969876042066295506301748211397738095326248874118529812892305366783585366998794287905668679024877141881422141338364050178061823968665276720875889874969093683864335764758757141611667695200506737059807298182666848441169546459307515241831601074268977104049286182319227562458250080484344383960738684676296237443112820885765560399385286808505072784305664224213334709835160852914388777811758062659835688511104474944905783291743904514956181237104165989093347204374006259925518184480403625192327144322725862523304186586000595641924803269191500722838230407002770545974510580273961189963750721383030533305641675548232759114889447631185877722452306070002873151172742413247555069233328773366197256668965322983844639292476671140532430335041664764684592266133321046027679322612307412354129010049585960637712588468431020457267745912876403235919836737993557958677555801947955742086735771195125243408066802389787095602556483442445192385324341700408123066625552267804190937320592446050722402663507784644325922727634115625489358918932555614650294816225027538847548773347800543260145732459652691159725259770393888220430268192787676410519590707933027295847284777441150977473134363908421745422178294812672087365260923635028466674568708306084602385513000875599131093865465675766844932873271315823149573247807509907715674487204465625335571438984399346735870712085907434167574219971496087403546912768949576674059067819546685748031824954369576812496516839503597262663596289113695527662992915892499899460727636435604458108825123178970317634220855760967455425219795026361544857685950471322044033830640771180755219182976765429922164778350000977648634873740000215649038476113536013342702681999638803660053781442819029634268883144206411623276320330240998069610225445264427402999794852617833231101962459744635137244464753940003929251366073660390695380276979329168384667419577932865156782199626730574240252204475034075216014135152316917202026179604528716412722070906099465300206684979264468579300050014659864681640217394877201593953481936134376970873592714734619866617839865840791520953273572624504302719199746020274800997089308171052265895069485935964213023800970915254840682080302938193063369423972925598643582117408747309649765363189022773389270954271817451250477901689945584455336185328209626256044040303630551486217374917809518955048935607596306617711337675353202734561606098480061445149733993821933085157097153403201523407686223594514605980854670194143374662677446546664389302579166754376366396268925957809974537784435622542539773748607408171600283153580200849842855572579969301281464976848339014195095326113280515631936793878874097887711007622283030179251925257037758584513343130766250250145782398343473558064835197187767403101992049250269372063880931521293341007148296028252640811704876723919159740221707169803689493754205808250646830791700753707991762158524791073450669726339954786872650363196208807079199680548980811902206493314347465063002330278838056930966395060694160644724470198603411608682815086292328603590376941038683381275287654913065766031336511169149768082172937944066169782407961569105311175147570159835685422683480342670856090856264823971185234258854731072999826090341729847844505472417371055060477493373174059189942099243514218055805258711639282757677805868278111597146206743805816456259558229352139293919639272691677248494569725155312898518592785317328241763733866644972461728281729442535756123721819613503835560072312183058943365248348673017011294100835908518262109116882529546977144203273999387111257896039293607244529640404842539555169627252025565602798992954359545491522294811367350281641607330809424172110169402149606573828755388182994151056107387917268385059520232172840473106579298919522840366085519430466458944660707013274304001963424152492860152227123199027768358684346349107749575913890715441685162425129224823745839737431310992707864638529546734529081710279976130023670238106648207675398036351536941930076454676145975727249800390478253712304054760135317004091817098934598827408409607379035234017281605885535287004246361336869805484560502983054874940190264140467544888733403557689807883625376870468179536207789006035928598325426431483948799819859882998858268728471769890862802706418029205738157912163063306901314152440431945866964366533903466282824537362692921029893936993380547598454820256336295378026479022609818810953242224481023548799044312567545749338214748043691192408486665644009067990085237349461238276564026666602277014955456526736567019030973806847645570904144437683154873040507323380423442191091673282290731544431622577890449885766893437610794047730568085882591130215352165808524361382110019649434348890393015330594090459440762060262102664601697204674043125063300608439597830517499693355008944784780094149571726010854340287456741344682815637680111412416147219364415328598306931409831929004337541737271869090139352723096439223071999665674815641017915569511372038801010143520837975308985937605704312949399645698047814198488398419576317168903079208133317415454612399006470608668993582978206719983668129832080981875045233992407268939246505016578067003540014874936130374779366947296946262906884403521496210742342874717351886061457042219653864231760501646900318338578103616513048397477570152562231090925908318331331240327683278452309632628500221542999636828016933136273564706055678995859700492579050415567520969084002511171088666534003786908615647736554632880148974668344782371024562143335496018730713885168542645702408371038881428816191716417032551301646794626268853269218280377346516214893500932126119168148996828661709364803902431762330550368255490181782198745336441944835122468413396101469205881391445724863342911880845404672610430414455931947492213294767629825785983552984963620037628692747692291815548819504481291117382032636987548981555573560564888629843127008568501910570867694307900622618956139388308940656378364008894663124600811401814651051286243879153859202836652449291591341364835116964674764280125173735915648697481209934980436259746257762059244941216217500709426235853576504380843163803170082055732272956282953796038113961132186218351855874936587932059975358786351980421020741202643790516791112624067946826323555279750637420949554291595327184030374210198536681362106150772962634463705650243928168485208357099739094604634890138106445602480593646678818196032661712745519162226266866294803419857649369205274031628998116929597884201851608374184262153413239355007651343004288747970834932837503065401223419461146984692099071696622057480603985645310029269369829566256078612258527613208945044094105336778430288911683971464562709752199979766838347292226390639906618139292129675767040761320834563539023038730241748133300137209840660466441899094785896114047777937924126715265046392610023861235752971380185595616164205680929702657595802862482633714006853400509383274459907831933664329556241547248567585168414079707737415362709067663684306982432150840635159379867652396228712281180653147817224806425191996073457590126656871207741131792619525446920965614246936564542793415036993243094118861716146732832314950366571158637198193795801313645644238492983167575846493341123321315683012298309104299010039917250898618305036213830942373752795720653025583825199843980599534174067187066995010269020617784772836521908796260440608363203358626875554258495782324539371341835171376000641956942112333940672894800859724644341583510702146873799070634921167476455550102256004339167305022458179554801370864897789460137480188565981635144106873221276527815293715406095951955349377514401644820191459956894887449188373622044527545585053967060643194703891984077765497166368674048805471073055190508408415045314974410021669112335262775879067726580084050675553692542251465657951282259723566275281412669707377008792556162268685088547352360962612715109552229029260634468774664071632485260971867309379643641909541757383016242191756643110269771272822003797008297356671902501277632962582302987420747441666616746568033871723513166934207427325536170326136316934618351525663109814155584573007406089256258053466320665704363159445758052630617289193057826449638472977924748713723081480832251324354401583604959778122785291952083074198616596937856050951484200412276419497385860490637608438395045540921295351493129483826283444291796675453338755369867142448303608638632730253411756920819072668290678256971016277181246632180398602556261505069888918222918156855996596192427827797288357795066074727797887883142467657640628927378570306173422844402948829517815115618356867645029830180473466717885222016088225210377224134005366659047667829252312527741037997003095286914728175832795989777819044888208313417763732290871687231536587063630308026154720329604520481644594236076287247467004457137821470375521183690662895354061255106021306639382587970020739889584153944509776266809318607994316165594623705326233880259653025161364132244153975614089034252153572528363914195811371614417263148594975729760554352033675453228788185385465804084119310942188360566213759810147861994932290798658170683016904323985894426925795498814491072294103007236362618076172484834086902800123531657349195992766247504456073485105554996055953379280964715702459739579864659075064504779105102647771688581207996599483482574086960024577254501145785106109731000907063251761963297634937144965188310781827528626738729731631356157709130629743474443162053988460373318767690589087420445132928758963838256322927924773409208188491231012632968652753371717187756452276303995379569959005725323221541333746095469579361346275921085867802957370473636230738754550933818687807930124446751359616677950483105229333048188540913368989043558803078072595294259626884426804046143524756891544440110844152894990096628611882112924221644973419700990456033691784816262126595699384174265750200314882474467912075834175818721610579639133151055751511615606699642188156314622778844862326206109561155769944928146701995704927408299367285098030097607300578011156293275388501695004367445538788763177648001320159748087899524987315674222001068026351074567822226437247995392141494424831460509729536912989374652538413142221251849400013740675158568691727808226022703869964450175050337156691326431742483949864260927186324900227521498693364119032261124069464480522831049571190812808755741518154725430954046083511100255942488634652276991024914100043250258174767517794739364737733827580949008461944528721907322276361813138564633383394956813570998806123755128272537400193622832629038680051182654877183167143372394035212556712553879283337690954461087952322976196441351114121103321694764613740579798806690538195390227938393252469426630318193808492850156155632360277701423399137109055204726937059522565153785376569575184765074723661617082203414528111786046374736137672752081622218328558516643804903072652070414984374741667582399223247335948394480563008318852033706123878979649275690197419211749812902806234428998852329049022806151184537988382945613620429802257827977451682894741899435685897765397607085936415008906836650771370970427311728356702439701649653051160762508897093621213271237447469263366711717090988910584437763795033922686102849852255290243997820544581037255542951687278711510687673109196909040288828988766439363466493721213654819250783842021053881865542774702139233210674145624840853895258750559743308349685139672746042330704847812689037299703031187495486881040166611077939860756356293131513695851849837545279580804907910208654212529645952098258315700149380783750179623187899631997746300491628561366558947751130960832927233084945415607340096397624984127858195955021133452345717920640825910615335913049933723118056369000242601522612407431404532530078575773039133600564981624485304019429669479184485557923705811110819462738165131387909621270964713229525672155384823408099437936392527656611426187387351961172861158950466353334066617141921625073869636014170236272003065100076380050423236747939233655421609437634466566772930646619754707469834786079691240826315504996159554433843287893018649133400137688585446111695329876678158061135221693195629190958863667355576935106066500557678500077177995034875318545226856469563748101084657080018465541375647125652674060958862652175871246970840991432503556071186624257404701415513235655299219455678498135286342193623820032863087130559034076677276534108996331201953460826566777365337093683629324894506406534994762091523181447281514573652004727951840564297591638414081432186901494853011482017765908415393808744224134813301181492895244980865572526155971234006539029980987761635895761154180820376137131363850481000778972172632877223486737179523753349520548584542134950897573079287407713786781104492038484432787055407401401022712531000198810342311318664374250834954368299775151203110340979728091629614913111448686567455331332249991434404840833578776510356694392036215232618923579855251635139785069803337468657579946426554012642036792167462317313429254760410650160699601838063763327678567565187344072227288836531803601244683148674958336688206914839336250184174938952335937499752220280356332658593726998940721956399914559544928078448587509748472168224056917181326753269518748945535429242916179221961730478766482203560801703304939018983612614212298340121100801971933152512543284123613622100760855253680911466271337108892145207631875586025398886096923449621556552848853333177634189639571395575328793849440373761259073476181966714022913874318906733141767391352317325772098762270953765910200805824889233149586084098147942505920741053987995280349668429750393551065369945222295534065103980826352386385989863169020762753284141096853059767982210331177787875623088807344267349137104710184266566674070587913840998892646723710921080873734557427038078434541580448281207391142453815586659197917674568704703948808003928876453770209067832918810113202363162204202814617108050654104384067993273508201974185424341469333139426802286598253764390934463231499201107991318666089342085740872032242465036015651875424449834741982394881895948605145795094585694798530234179121884623525736390996900761534804587120292184278162382791534221125552577007728564039054376518961948502205482489633647690794351423390701617960820479490895972413744174009702347267715103238372120519581706995361719569034568409229711104705799820552378458447719692454777018382057255401691538027603843279367415461426211507269212001264420025189180277145131342460850837663739675449583251676054785610875966250383453700337862868520837489245475206911697025829481295791943705458522279709340432201825913863118227868511147322554174753375030164758247645065349160617255175322332421718225798105072117189906488669595085185911843829353965965886422072654555904122327503928911775984691130120180608691838130071706851746900773795464211666238320176366892379237345837136316854172777854661952872225020909515405856862492274988865854682590349001986083818724323943804945152566054577214722467225443351263058264174965966827666178124005431760248895801424412863024916137666158851171491541584263406987332572019653797518487492927221415175417157358716733602516175727060282588542995549060642990100836917613122387255552486856018406861410603424829111070744071601644740362995477811713764784487237399301434596052171968131103700001423840373070734981938557739112581182597538483833819304942312838546893756417516345292377005409898612343622042643552233672036203623984467052625144848977493780410135169538334325877557286746902534648174959429426151504916977062426293349143136293954305624302526342340497034358900391606365269381172948608838905421578063228049128090828021674214011152528640341376268513822026207441680692317986322580314596277006370488745633646149132971323145651695354255971137933110327191026291054898082549370026188097156587100856323094207274600122458576346790907619901753758393143423384593634289535022541120713721253049830281771182164383467829677416018597921773683713738318593124630916705808868911840061589892325706235005105158176877427063664095847717366249406127653453525573159616674319424072707857875395252538000472004863182501679491703898259152618217818694381262740260960409754932197925267909920022193275322886500457923867582906405280572666151503093340908904582484808428376321449873784525609103434472262385063276130351798475880842503243272028068208446731221324444991492771042216708105908662757679341909529660073787598567572643211378635727581248100993492248205989644871638901042357892721352977633665125813956576091657618155048168235947873371726704293267035699835886786289528291774420164510723853826913905397825716990464521700375695170155600236525858259440776116466890266245472945834980215466978782175662577547460522753084264910544171089945523480732234176392692359178325409822106166733705344400798373368199008607380553656821156317161110963729313999441512610270778735449389811367991460353515247680729089883863458657143719726272986704618244023378857487086281991773149101191993856106768810758399641292995878842072857928199422346574840736388677230425271979337781704622233184696889826949272019839751381110759100758441382997623014393697071860501952160576944756073927120369016431035425515068571653520110431106138967916105740425587372492614123778031952407329876353643643979185890375675823252888906595226143791782560049544325839211400310428343475760313134482041626284293234033988308840020207283270405084732718862330555696952575651825706058302676698776365884809049260143744771584558039299004537744715170959606886798875199632174569941712486357377639914488246713935588136031089765130572542527133849457560177057381300633824917778723641722645365177759120275155409331725215999803389847292312846540178374203235742365903238333038446306291522011612945140146366228658133967362179163708369399045253613901854182824815508467174474075534504705134701695167807977959514436552784224428649892448756885599555664357029573191826330683700444234040520148108727060058414824868082980687658059747681950280259820677817167799480404095685084263074368472314129212646795858457183235965511949390222520825430933232266997796358869607973621843453763875640665097296116122698957443168264073451092304582606268988087652032772556022753874711576120814030178191916234052395000626665698164068214846365683086725235890530291473658532699203147148919089140436971794102950891634266471547632732344114090933345724304122513966427658144587708571984669889899918741426589878174894077339599905805852281112973748132126176268979905234329487202504661530253060823808286476492420075379842139780238200547236510308110713699437867737671934468108348994103299164175074916534428412231721128354257069341037734863474038146559835576785103832612330689018083992785035717845056856076849760628332380435648431344722052563294266443407206157396246978219045642012761041118068222032825513159340911904767578505207088366799983097054236713695586717228591581769797924677719077176161222854842874375905325218287397122082546845735486106355691607971764062533945667157822228488542559814156241867488494708569803562990376900662729772999269123648611721059078304943610138556875472032095298920584196290958707615382640031746214393825981758317944268735925941655341745774985513014864090669942928143683067184959465653029552053838813367958816901450042804798808644276204044343872712203584900722211757719288574324859227416847275341344245915544909468293222433094237907944275164460237415507255876138021845141875875631345514070777792857624319985101001949598293101684058054316070556467472627047308391805508041845743037925124949594421498803832640196355756716543686263418816635420985640384082811041167062533362457359242171337347450003055019388097292400565604520730567792613169363748986798447307927798858333447289549538650080109560920952093201153839371811861684368852616012045351416281249031406352952688205383772293450500352111619222705439112781002815141363073141410762515632370374923092772350307720013773613461548221743713510220634983195902427842508307743006191612203041646732200600703309407992778627395762132001234624414740714708422765813939552144652773999277453956230823939875791403286767849277729782782243907220523405329590930532053071767837587847506495743238665615355554569448268543721188153355287873383158668372806306937650770160542805844383233421123253291944052576042710129085991331972185503105461828291335326065925604572644061321423789254163502446919110420728051088596014296108698649870468238639785381227630437964825739429653124587295385359146081030063771194228061969150701826408719079397992701955943358148358366443752460035062614763495494288617549098348903170437976009351198250574479251645503298506036802142286767165166303403785949249962500279445061171142129852532773738104809414703461800624380392282903803060055895067099385875145756228759056692038772636653236079916726075931154883881378422824603789114728565524361913949454836756758009682401814673921275753999353625758863876000352837048888838520901699552461583736956978795958097960098649978723214080710253002506630327628095158924018026684526750252552123757367948692684313232011735409795120635509232826300427364282518659165355935762425154818677242635461469005529966430526795983094774461846631331725014612028991044756896060573515145879960982963578843388565074665269538094615038490651460239977059544493843930081508310689950106301645510023631317968785758710880895342369247690142121089522862153335952912963578197056106502179926684042586825674121533981122937947898070354541045455559244050009277324273972243814356322743739171578702414472181942519483960219678905382995463205233399892367777070352904798046538540659438966194795350563914888161991142057745090562877620922395543932866696869178225236534263947199355560977536711344646947548176168141216837877054910388017418096013435390298539508048727548917036737748978914920845431703180062059522785102326663098479549332118556596647420166713660880879272975890218430905788238220174445994808379008631666331319402047538088719046635327826269215680440209993793312241019041916773928796769296822159169736977233196903251402908549500749781745758331579413169062497885207368362545661794091722696480086337173870173087853651485535270270842255148519978837093296620871090598636929696430218021206496221376530966240066019811440164171676898850992731935187755919458431775225078155642651018383775754713408772397130848758279019007154106354424615008756349888139075827437734010165746459102582028148741583888630448898806274163162427047034614415129464159250251107851710437910548935165731239045297543001057720741766842299917820986463102682081561372777889917839574256618991349159700984085549644775682190031959360131766779636833638212667773544287662539923189716981545935440865091563230042901099115946552250427000928334842650822373516077018535298353175654592119339741118575231561901004162030274522366880912793171910083658819414444857836881629225512170111110009873788504295229359842099442159288612848723497558165534848852721560561595042736310861298933579632506075879117824851592902033040658749092023547960872537052965073634081075020018094813202389639963168219312000757742547983918735871108302039183409033271856460756534067258359962196509549125802373201186879616126121517729433542512828692925741193604161183573892821210254475918639039908231080755632681139125993302855686867052851087137780880949710045504413980497632800503265933423589949901717393300851631371701086119905356658258669701761497813905694563776520089052014769144643876434228430433107421916490853914064978831923119845663518569264670098118095746271761053333755042472811706803560109613993470062868913084076916365761493889560775267221259445359993777874836469487849347943715218083975344716431282620611708774632099008155605174973988597260360543468142940040041498864078569855604691159963041111188186025673758645138612405307059392232292549933956940895934752700102597186055216957818442960493305845967642257336092372450441162603530461412498220829922853705531183309026880564934868990850874234637382915204954156910066217139490055204847974134907013678687855831001292235336588148670383360964171458015474050657554526468273132987552118640630169398258207994295017292991937170652143992032567915604744475135932341809263838843622806773675683012166406427477730983327464939254677651135689542847302980387935215913155415275129284883368820219298687404261683886647207220337681546772950775273028994797684349241035202822875209908987785782908960803501266501046802915671921369768427767187840058090653301699516579863235673187832069433475982686397086885729826988451787700490407685972335723502124151452146713137948826827116138412976407911048761855280005934348928447678990134778839073148332164533512192341842671271883311971628758970116218947672063299218061587388899319569673186997581681936570385875986536308648491135339240729741822085738616789320880100514431965988970150083211838002818634725995073393848645361850584901979372467009582025735813910125489020756188670741930065204540481873192484158975834803840239513377196063962375368004247545991957833664739763633136259443460584288801719652317660125189990591702547364914176536003012796613761908831787935922112914725217832377369520650951382174480428616125253844795472532194751951669830229050080506073461500593663383644346403924639660236301831789999353168597100054077815972465942903266324220395163174003242217344935220952667049104421809273497138022387565951842609083425268095140267776703775299814560054163875502594728034857639361483714673732462320003317322111240726572959697152391033131126571405370321737626559792975475542184913192848688367679578746051716916004440430428590124958879699380000182706986860002935723045306241936930851747031120775773319666693576124188865195471338395647086473565781133196374970894690061755308624377875005797538453626998868091946395816467889351833985113436674125995625283667058450062968340718044233260401117816985276610605490117225044136368792758481988827693458925336225379008034670426040350266871369343968816776702474010306716735179897038900950133941404197858883362100048836668628038016994334040550097697165872257459907664357634160799469794813188266551391173196434917036540166067130971021459993210013944262342034708091149492580012415184265291246484654642364085950732198229862743589839838576615498290930547471829078279587875769167477435319376536178938280903491041427253625029129539454298294876292142263951852520500703453488431043515542448902191717254415463837658055296189642937869406916229074106439986359024949467322313406354977926627196038269368805868197127926875857697400262580273441607684606971483611345763388709119621003208998105835262605171636717991887554462801559515011446238381461399826240141579746459048929134495820501587489914602647168531610018029294829581233811167894615651296150575323357639483104827073542767436740841143294030911842227438302956441283744084564546422526450275321098330044701318748352399270058222371187842437150262070560138828443307493085501941274533573935403436936685168056482749228560312938313622864908254055505840943420408754966734071412043670658188057448342421921395046373158339927956388095126635539296612037385026872227573007984148186899665549434198547549960902744639878610891269638649229892832218611033293351071454343789777829508559908130589344511865553134028987319501510565775054255501310090468979428012800729526578139205927219827220484520104181732150443013669703058582665383763678137864148994352389403503800251279073065724758581984737195694827234938695639920292413224559329106261108054121019929733437484287659059352061048575078375510996274758899050503840406428778350145853781564426332115662489991082608743174231623707788993227731365621183417835716977867433140884005827586024211457002388157844648368469518011182680826020447628991390838681798976058197148436120651695904782809366927445734676463735939982444707148934862429454287911767933237781694721978370955097388567602575274413501312809983308297416709412262242458357276746205532099109906537477993019046464511771308429703955122316076851768222396258277608254953486414081033385516076529783237148352433528349148749405188382177236732526312453158988409157955744720118143379711519053936855214386961574893754411520190800688497619394760836844099167004247920070838267030520008541319209091671732436006156275509204148033482375407318939667506948887090548869359572675734527983148544538043566047265125798071300282243531618180689971164179027244930290728629349538501929204096560688142094752053889312644170834615895858821111595009845859023442478657665343158737434259045459858361701350631879120651052254503817223002007369408036988616176414420418303852190295648166249908586162089358433158368720855523865390244271132926960348040744063009660053404701610214238814444593955103939913331651972661193581764924835368379052605971217644024831988117791827249544450879175931135610308345070726623851854371837248421727914567611875626130927748332803533770453580291043794378685895113249644948285836216917688479639763869270518280675595887739816180533037838617002626550727048751034657010843724769306037001314589655014222011726468851419455166539719176331360824527939553957423586402107625115839273276202490216246498859623329312954564077578358062560528435719995172554363839381106432989600751758021987391304377963638032289555543484225057068732072218634604768813250237635352117710700096858637747160884045633178537946054320176550370037010378816385584448429835663818914675928697835867979729160104411868365811381086778997038843110209117844647602141840996264534468892092354045537585531448952840304558685175201481097806061727671694321690852397121018512315065072365698493704910015555468688913531810221446655320579848376492956553130289045297001455070282369373727228870329538140226259312480994055952080697517393758253649510977208370284582012188589530271443286347487278486532692994892260349474621171396720434613338669807911908663074455151533353747137563889380209899794285828842608173535221589892526050599023869781659575205829011957373092862643554004508707414544812713773434199536569005620075104241527179682343966201946996592275501685307613133648475728851311005800442517677530886035618827206313827939825941889782370982217676960798251378301166283611829813691866425290742431763146409987128981673944215725544585751466459113710682006593099506259293306591991283591600693862094087215700181314256472492592201244841500153317504734522741764294984928593904490140013136655523955873323962464881770258963081030396050707820020578195144545064411653269721471761177140434134674246017119740874549217046860478432958697155701306239141169838192326091067447918960296218216868303534795500847195320010416960769014453531788221607101030091187239712808054371568574102258293374636644614335286753298234241826632699941231658473180035117816527202976792746168794479654257384798942700588579858204552613677072987463631869086976370381481619816383364293798480742166614480960369598155468018064672900547091156807708143551546443270405663238783395671978210992313840324435552548234060524533649972880219349405062776358072657991952927063575315410672074423938449005170278230345618782075453297666398587660054681203119592089150722344709224788607644571694849970099020124228258593536838707822636045988542476079681166520799230934229234254784270637659542554519868206606204314258624833245082013623270556917224288511842637026455067162768331867954540656897466228258776618038170869131585854184768302894539954802989604353238340550935356811419264300785473438602302071408470611890015957441051833362022379365572147517194292894733633493611647165460277450922909098192657740829664843359923692419165450767801193198577506597733449313778591682319842979607055284277821146349416266181324069284825544780764801679880815594433292984862158043830314845247428190237464535669954138349369108088045723361799757245892974377266929784291575240103845594000868477962545613395837525181378165365005479562459443663000378589809701653615183953498934969469370453694959235738453363670440012979181553643137379635647784652511392777973862222975048086057174607900229327768707228041094048054067823939963284073403417210283141665335131076089729506335806454199700264889611155893283194188157271617719643664960801193255660551827869855846392320557026265384090006716369081515448325304364331954881085111453756332227208746527643454352004770270364854583256301422883732449295509291905322732236665898462360236756508937902096306625527075987961458759775553326313011755651429559596535468563236175996145900480008204842433301114533270801507979911131602346561352594765207745882493764130619583419881977853368930240689564261222587382409985493533642443263147338707863850265462406864997160836159946830755099079047782174786646286123184905305965138151719965324190507294338800319122792441500762380775045036939172012885386737302560437754050526672697468671642863959413828597836684760217396876438193084226886014719065375352079175072353274370761039301747872559675078410396342002936118484855498042243688019348749876632892009329875749544298978814070146650492297682953175807302351316436097849464625230470052183666351818476148398003029986477570628360071463421162808862932815352610921014202258753685512505452346674697100515596722210420411688574043832449391176357892432084509804605472306336370440269533946294430439111403152984219457693056365630928691123807333778035694845695474066486827992930678886385976296813257403543666045017721155963283728928038170052823789231776207101907538421801882452335693810793971969026796491458964659446325979880729265240985780664838798062143471373276056242243313719981514076370742980413638872810734333065093245519278129033231098046684443966440508291619976003493983646739681496469565394838489586029267538506421764898981783629634257262009633512224116193971531125297713486579174491848738509338505292252378632951536348787928192555913764561035037085573943299297388982915396580791801753839276461415593320284053419206211313521242414682999348303568352538337219863550575937850785275674155330540248285118463689454430471679520713364512532208011577940781869980505226457423687723622012017088507211524913340896261167810804359641138421999161954751985649159801717594280389126419813011205557146602374407523177552757883796251915488605610376901988203631191963978956327832375590642548478272175602457965800252986969416848193753899909487233329757786857816765303554789569168416058701894810404406730369971345385004804350906832627589199561178875929808608111718834192356038060145088036537720857884976817858531499704492944580840585675833580989437672435453951085167102161108170630268544477269303675658618713117511652605192758575477985490747476289105779053587775681351546876170460343086603098856948679764144770888572409714971064674428583915325715431371551937159572733209573867956539541677498989628159609605511434179943520490641818066954756564973795002556019226640974214344197889680815764911866313869234016643205665194516442472742151118858456613285585199879900253380333379724704711821960145652353943673166576360856137741426024200758128996417490543487168440964501102958527611843837992563472974518218128023735367710126860179465413737574898576890411356990996197488143991443206418536981849205013663288171179835680865277404499013991159302357303854713061971403595504609690789690516827610556272465551500641317339897864221957084921343626142011162389242765263779083938317875159093688607281149513583406287182913466042491952268264158939610344023342039845194639141339840182421698127990947138797274823692248963499590807682777644564625339947071540461739705940592211446723095548454349319362313971910872775123413570583225775329870723492161131970851547869609562615130366619690230186126308272856693201661208508179468591578458835355638293656352949593096713918856948316004617729007670847424819448326604605206596233324133136934491723672913289627750472144277713090442516527512068768872151139417387329283145102723868208539811886416405749597659839372048392374681009627869614240551167924829105672697125553769249480762233230572986773498499428769935409968684602342216582605190365053153578803961787452110300809713255830008956742684087048650833014583449349633675931321579625787359384884414944448189467863013598742788627429767740110186366650507819648558681687287648416993349459415481423973160714560266070687058756722476406293040024162879879614624541560585715958822037890903242258085315024822414750345881242814044144578255263394928031739242845696213519649012171973222863636300739700720410354177084468407998511701624663532348881637721105216036608225765268514712433960413967056816242043870578951975856992994459382748436174759637433905618243161255668977828141717290576388640510210430829003335785286732160236910624451354775086284907717799781890457594748759153412777496120277726125250221935825430035200237677814632952040316224531473950392674005449673435120835977569891450339555590237843136391019283192631190067680134042520040705315409976490912157051116974340554232271373261020887184692146124670744657216492539192279851310243374457574463778599186501502940815697985021940182900186640206780430970961242882899799020144507075967599203209853465726984944010252552873025053691637456798425020026963442983003230622309789068990381642118986400502419888093592616431580809234053271456641158834092972399625588193676988693627868730523550224132398011742057931950130702822119138071473403320769420661976904081902183037383922525533120531235324882218950429795491617652122318466002184192538404992887990177293992786787707509359016583433388811618143183150484765675593198299146915604926770125650981396013354383293312772019974927640388987740330690074449191944278135573211537515590875146994637161416921790397267758918640732816291763696069034121631623682467351864723492237959192165288160003309255960000141542643306106827337648487680759873842779729337603063181710554719011805640935656787661249202502581115258391770942498967682799026703243749958837859738381221079134055282558277344115744079617496065869449004124671064525145871249447527393968923644138887815244482962956594176747225709685883796031204444062505098474069226017584391776283230106421942614255944127038675753134354863560181586079524878603714159650854309235460421574670268435569636943628701559135336593718355387839781674622967879071556845896672581030471465415335658784820753475262658083993901964158700630237132354475665841180751056700828423538482562273073844737753823055937506077753693656627877790398302628051792304135459124749922701156540339465431381352705262719707364424845101954720218291063633214742217825392116132142919443732582307781027111228128546195691436921557193182441931385144753488127421440278780382762736613613927698202129440038763658116436821028669446972753666508789324821962021376905900936151837474717891068005506913349404951741942542267446729809245653033662686342991559315304981875652032525436438368430704942424167114292912809874557642918925450302344339114506914045763862144736765829247647063122955462661344394145311421421818112216251198548387707104420836078752859799552713791706160644001579385488221463975259417037524631544411072394954665404954747726595150536417450400811747467559215880148532137450414283580313453282386297362493422691804437728003887705516431091730604997403117949707174405832219282697885231916728056945118214682372014310120127466075822785054907148525720891263506821955415956421095402415520716307464829440093910368460046752571771899297862089683227124862782508446199137928659265990114285053736058691470062039289933471378710064705056691231655036927518658247360215077167301550736317897959003598560707585667598611499057769736884433805301490915612675577262935648372302335849855278005690904519716271447373673893426752316267632900629119845156433913099163945690592066231817743757744802840275195440427276454779195547236894694348299016535821608079668223078469011430175199220007188089436149713737413803733759929932386414794357036852542254942185163423625387639229365032426973095092274812641635079099339711375535998278827068668474470263978429566086839054318934018526070289769768129325846698268145426730870811354456377367440850560891307988071328361400140798802964031534926836157943394913893846311369163744728385296743577197053912299955138518856130024739789111403112927851557493359521041334795326074071939924922044142302519928196979838690463578925252959087904458043098846225536294867659023463589563419334038087949630957074253100817135453619153070308838995036265651788809248307806966071048246557772301964097654780523161919113544537662936662379335425494522888099519976306423013596289503845307819996028813263773909371926163079655232543608772450353728097400522156896699978561071151862417027409851628696309955004997194376323024060268169545386027286836369232490246669779128034371985862067041727697777635766522040664309660631327503018936617001280792523138616131244483259092383121457202299622120185343543951209778641345090103066243905717662329612372030468011882762838666329568055340161372962341486465533526490497937751635994890177555727853643144148403971694162710326813586708790872388655685257892309635113917222324971646030965948315518305558295119211199024366956217767048859082664356089947051003248466036149364174522468176269616089230787219458195042547331014200066767861169482179659900624996420962466457733859376069978615496989016080386193449230276286505125062518641860586556669041365486044876650200418529808786647718481720503283979628430690510163505886315934691419544437682937970887040062991487028446037993599244266143999778088781442311682364170020679644423327358079479617126417296959935808047612302781840774998796008923295955616185834251285522578789336684682279410824960139067928171287859727688786106123547778559786584333977402398039917670872854728532158271399367066582796097801848711956616616912778832697335982180524711120892171070629753436743138774548167149728723864791006309040469457016409946912117357483123177111477516474967295264674057898095874815917749625258854196843509528422305748510089810108572001115612804973650883026432654983111077199138796513852129621530580338814793471856848868542783498911546091867067841892572207026461117104981264235962765327406399506770140606381709868414606354408522934150730584654214688886096541273043173132604220115215137646822842880406773317352799248759460627168026968065874547995079998284043682184535889534558401986609990974096731591561113138323181802624129128288473145593468154095061440893288914645575431176653749603400636308074147365435329555526317060941941949228161133301856906281531682517206904226491870725966742132042693900981706851921502319291684085365040555807859681180610513084325378145494017374898214963189003952276004694599155502543404401244365242594469848506991551982023594607262305783762742614661432022134384106597081579767173898778985435809399972312509842318763003126538101617834381512146177697006424095669306953314225625073796635689512794884595133549000694729655056682407341621665089839196839212890638697522546497554467585620086981583039847923261022788025833976795812069083463542848823245931437476296512546710077939073844001956242990150275908830364934713337910950028138798269820057849188049792719934818424996974439793895558078853308532745712497723883228431412315035732233785889379799053848728667025739054754771176802731975028311009603658732168063642988659381426743849611188472652049782408091466008617478822536386976043177232519580663304068125746551396213603672138712504560427778122577539084535310631998087316063012267906732603103649000667575738511555174485470117015399558191530895004692654814281193285709324072035109805409169087416901694099154862122288503788750889702274897552390165111541509676715498608291673808103775406556192179608076167660337935936884256684975921979272604064558591791308838429639899917414028189642329497699117487578666078462995718429718180061218580287994892230450843448969409188809314375136452695002726878851334686745235622229354332506946506608337980800846929212355757131511520435994707591475598248007782757808839770472824124238165767579306815804094710069880470718178353057484754574496807214973830515233650792699361062370249423511998133676374894459069588627497178869192774119403552718609778058199060398811872213012404541270003099791782576058374377460961266725568632169621566098587621671018563939729653657972836700945367540302467315900340229677426537827585744432930574087557017091646305091871453036824543639184383879627785080544615201241145522421584546916429783950144262895527082362045310764623022721164025932959072987415185979629734982030768095602854935095183241163131066923900711697416044182417371543341793007459495718051370004250607409965947083509416190200486906385044068141929221646785037750015088585093573293185294730577162876969507888876170545852722493636402383841272828396220924732954604035989578681439410853258492161272459398074979487060805582561649296970855236327722087343762573024088081730861325047417520233792579129956461897405671234771201471665837739803840848644697890221012416206661363453818993306686350571544740137895670397577677907494326905724623126197615221908497829634006692265688757213154738504912694472898066208601467632364991148376058649718305388258106341337694082284575022076385551401151096071202350116258746699652360493662515482467273747111910027855575266313044013487583152613755489048962472299503822779202978520380511989769388112492364152545764823840507516446754396939374311659499862677450996663669860861105395942926724010041035720940908561607030242598166089618821514125391857069821108147788621990315496834161340241258628407515432400615758198456900583412560920337484783887788482034033350016364162737337529629562180261917128540317765757478262144868928440214768562481891434121742286180158666633171558933666349759293402703529968230635858245343563875963153353623169206945541452025983764004200736378573621644543926316043617762996636428042137097722778099624893593419451796528988167591162646964056126301568393532227618388354600952974564424796052395249061348390494778286487685694459500766537797107900476160045333549549061412242653466451163984442860108452884063343712551656330117363013419369598701555587438181144375787138522115387289182788714030598862765168161147101584775792857158420636736051989088568534312554164891513599094531786511208879587210296048401996006786882655210362809295586009059702712163659390137936815146379278044160255055974901331791515471911254650606964140036765876210212378091906603370139166330707721637761443384465846987407368919208676608553266868136125097311534714553776738799681937853298089969040573936123058023170794009152065559655698954056038473155521121186688106491425855790406863727411931617569006208232583195916572785309300182146517968285325772446896316826715524481903122104801817444793070999051205005494757863668732022460567600652787949229745439776957085955296874726441577829195138351324015167138459292901759898573616893475944315251275191744765388689403418446384442919218472574345944787907880959452290104773437650719243369024955220757635652676433892119773367060293364047561302334329131596382299158841589482444281336563840611908173355061006605428920152513925334977340441522187373996430656728494485433626676151849452104676659801489399942734278318924385205517053722854473800879716857358076698053284676634561820355253882029905496164000368860500238594743951610421501448469581151200955095815704329674918292596544986006167342483036429791496637558895826874091033377556123918118218701305919029451268178282802648790740264300822411923628263412613244952245747082865527887254942327298013435867004522895853231698621897640329953511615218436612151217027352151735221741247651504479289949927857735745499855646482180676561412473495913884965224968085539285841788369971586117044711295198730543941372056480662162415827085013540575693988680939081673266174604470031108432064742618463604512107963644219885072568157243700645553313170257832915018096509889466133269028659502141985286465717512469806662123021126941087581262089703568644117944925507220581362612370046474863299400339412176122311943010047915584324003033851850862375325976807855182633994664823356553496379255118730450929759787383806748569409320857330082367915680414851775097075928390676374744704954131694846073410245689674938571033970284544318197060542891807203018097670388427482773338245240609278310595983098959501692111730249186003880920820927730360664761460379232845139891178465905151744097028775851839272088128627515891271804319199952999445392462792760355100480877159036568634082021729061036546827315518723625681931421031109739101348104299906147387580196194443309965456939397260293269006060907753852598500887595447847421078035342866776517572447471034925007349778131585664015863028779113568133134282541233549835312954756950060968834447666336331639593050634045563042375529578047191944575491710270979725880405807379702513052040680461338805118021881423507007400368486603964171542923333984821888970811209338772461692822046914474290516804556920565041301880587484569001340522584843634494168155078500210888731152973687771047520717701083727547514684273342102030049093306918431903119607679696944228001508627305713777695811646849486979357991029073611812584489010994033018695710894820239158286474545336541912938692134235516356810561648436746861683048614718640770203977550486277424247752055222644524947261800091915366211467187617043360864726487769373892565389339053554202452112092846300010121833499349724564195524922624298674341300329444074543517127591488656149068728432366799405300353298681426942241081109021608161472019738085429705639067407230412354108569845578635626653604783359713867219393378555365531507306783990377953972644439527839353295832188470337584359825900261839713115701846932045826374679754600272474923897318688779009682983567849415232778187513905925641615292978462795908491066290687316279616831827812615512614367649287113053116894673150563987945044653493101586481496384931199887144275385822155395825211890499573386407088017855947186701940203203301170201342735998391290761375547535665921927411122225619484756044612766141001138110468649311504017225940963365364343139668906915970951598708725653661721291047481133077244336919200958972821953578386760783509829388990509598802532091373329116775477712929931356936309144686259426628439564114117595887384649100030539566388412553712150109766249602462619157220093013457012881692819480007837870040605222091258749846818932461747887647392301759684635554703951391265042288495735902378924405121514036970553547161591106561253092571191706459459764518453076568371266671882434449198771618762012549656922794804032037443741499439554794021561216671291827929519869554100178223506822929875019026785076966908388147730778336497187388676247557774552380651971827229072485463484925018011886466907827434050644735772173813268868525547297106456753500657159931307247219705621940222195792685447770059921570877563325777816352095517793115036179174502704694503827483785507115631927150902249078120930029313108413663821983438584589329650071869034244582900729644184997018492548140464509814991764050539330702972468129422323974239715588213063304944763149683105359764122452904313017471217386077898064437261871861515048015129077974944431934917509162586939569739490053106819018715616658175725348892381939350439502409834117151712950596439408629570118588661158709393836683329541780074982597004863672295434221241933084438716073001911532758305017141866970211527678301159176995574312303547788599730242424717201292352379563203881152955628940452227201782146910962651666790229917701401179119190538333986990258672141046620485090487593515162877595556834800293789783511173856527650216842033331248575538483955031806268417354382239662604032306414296123920849668290684973766386360135148697716471099040489318249317985569884328001429349602992815501534001666737846532522106372009068555681410250105770700917144616274794179790803211612158981872133281118765508952992720329269751542299315995049507012574991873216103024354217938172254245508879982947990552845025870038193439838154776205572973034065176086786909755231843772415145887057837759768079828791028921871648665107420850166990744551029712767384058296941808951719694732193360855528613339463118675813627273585850080306322922605823368836216312731228113363423554002583914396006394456612770513311130717601280723878628101428268735603582071246838363472237509636026464828353564691418348819910999134309971831266364297809701701692989250258084049503258940303755249654951827950388394514182677184831074179058089972943033212767840013817365774760741257596699038693086179338746360773266573048414226694204737607241844111337765606128908017309774975597270423745967167838571221070049968551665509543200420583270798735787616989422790738545952777069490057648634719761291638313567016840051511033526638019131602104090529111196118046894026693192611988801510457092410296384801162614530615162746477007412229939907386068953761008479646212210341469198419537989258380329245507953588136064933777202320108185548196053400082354457021032435237027431929887467912027981666630042784649701355851378663832591466901338311505718412332127046052378867536643838915772016530231397533464642956381511383202931360297157776413504798247759369022646124579255750918545018683576062337940172254935273104478342467441565976562248318602703286525315210596380094099790793608877697997076256256326352221285575607324383223081657297548310419348814224496169656800871699859570363802217331886348358940370305190771902999355781079837757016125235375714025746342232357554960646583055714971027761302889618448499968445748419901615824906138006677880650638852301686637766288020263444304096743546256444088277695508874921492226081539538830370840540903436472023836927430868795432522326951817123216797933794323050288301284375769755551710367743809764829275033959444852979324418130940103010855224921569528787932015507730377396635993029103946333637095809335963296166158033611763863650618147092821741978217035482771198113953470228523326357533770617839427400002021100176761885976126093035028236136868184970203843097694446048746749691015392305535936161719813057014473256193408489338537740203197837557051849632115041869925503793167564217699771089767526996221893087968702851124216483920284751064560266365645324851464127978015615106665095160649690937181501181537593557194464774531698091300206270375893207284960237255980609846253494819289472404562156656121476803046354327777991709596179080566627972886143892943196023561576298242267300171690802552511709473817148950444788554487493279614447151556229612764040926886878403125658451636488578159845347775271438626386242548215513011165319099278175999698098495215558701930205698978757340528702638662193052488615477172444025162062667888395955686586391547227537490932372085445498381611728201449067329090208206691634474447991911135191984784495256588113895594343507101301775301843996527011214523297648359472034498833725123284369685857447145833767391559047790834336533996528484334272490909701145979574664684385024747659999479553907418770902905626256483783828414016240669742070117342422026689583405667097062881688583842838964887788256904166927033994635360994516792911747594746364103562931057992811112187352385145507184980541869690888721999344475900057354985992111609831365020300979816924430138386188213845976708400261324469121976261168836810778856625485051205234222933662717440876624393137620097178291686487216942132012376247682756251038555742716723328407049126631759117891571671799640306896927417746452020787856142355899267548256912302381415267757386453273284925694747039299760060425148106153144801841692071561124463178230984441632170498959193363940893194110747183119953177838725162509270742429291264092006433502220918665589105886277281576890424876483893757027808164994514476142644122702222977830223572408427862125834051438765635384508969872517896000304795213718271434624837912911323047493099666952847222935325913557442542064718163430231451903281997803100136113847080079013819839521503249371996028861848969996334841243156002930686962416571344747539117931405751964995982547980440682595790070383368932222991822316378181215466839866908527913631401403213645227148854837963343202745150931127051765693408667296986222612110526822880654939550816739352630824297951794145632592589413172808060837247672892685105635118902007720852387402600738323993043080855226052623598129588828543829884831687267313071736629610118463310465214742275886884764210269931336330320559727263937927245098660966432510630946154247623817934572458070977091664327080294513758107510212537279821206224875978036194890535361198739028594944190211095441911473039744007820882889384255334721771826394799746205885976407268921884040621513658107364025374129585863017446984871089009339598455683707002604612521094159108408274638213213688313685298034433904301696994778349931968820593527433540294960277995115408108743445180644342169506513977780394665588661820464709543325525315803838477981270251612909315222372254087848653162748967351945287094180160508195380342626219818977564108895207999226485686702865578423579607926608495419437026749424657561498600565330558995994588810263136458708673828999550814265540311251731892101634242073364298578150349056511199477302484268390846237946013992004518800345910840787618894005953982039635881127172544520466277481919305968727561181225741434556301536322982785314348960765872418275734588202703592481178939842686470722571639477208848017684247031406573916171672672038828091565035412540337899133135872480050871639338871652250116089926355436406647559869275665974336648172522054457721195729292306628992162898772232586119113157539494322719733909261978477460940010924472597819531581512584817466288097114585654244408084841223739745184115806275786830388644822341570023828448535774264019968707425951933273536821007704373363345243621195810849561713715738608661212947158836636507506569371791864829065453284234711346427445223102888392411778749425085172724649931919663464867825180174653640840069897048897329428544732526017307530564046238188345971834613139059920789441342940658288883804981562381199147336597580645737711222378738894179871383105747396460204832667699818269740375999082643377389808897333348465208305505371929280322973436047263557323248858692124771598576559486352279571994712714729664311130059980792576305267246665668692116168028508852407928607873114554543126335867323629975435222971633513009961877222564528380112168675575741300231348187941527595663679502130243152723661548168478234675019604850618196046347871508048548855854887765869550699983955172402385841126520093720188178490481806920026421705550706881640351845997379684415384838549917582054053101520717076539201979182376060743974993937937917627027952423220143450876860594596987846331500010250210787192462001743160907686856909785214071968152366932972375516828517258914423301861217225328592077511180864534643305403123765785294133881800866326686609992863549671402143472485024872939319443755498881757308186764553057027733624191005979973006012288425488049134651430014025967752711100644684613970511203531801445136809563995705067179287599023963015433296631517978328029249418302835831355458567330398752888174164747900941699296874103684109967163085797809719994656823437430958151061088243489461785244989423118855276537985371165097500861626094424215378598418752634344132274587311773041250543068364777474135500398798918407783602704005900420629564822435136210078348057020729597662004656143430603719561012904811892193600192531401901720173433117588152057369443898684187506843359208455479541737935184272137505221361799322952002772818712847820102402233976036492861141926019370621440333921716444397499623727804434048748032998404985026301295421641273767358261339444419030960063789152733450663288846204116147661929320173959558324549735165355103202039950846581995557522220222173494774515895759427153241061688422940564059799358071798825030859854379608391392860560046354620374930661631247677702008521063791902928531240469697303784892414451019912828142168502215219787111903791150393752325005645241802421261211649178958324566983633802934489129404576379161501639501116236313525098176327202338262304993762151786291535882871819078260736371240510291033593581546509248756268678298559277955269855305377545524725906742995569926820614360881089175560262946463452201168877055495944433547835913844304967981559842707925354006943876905614831046555276735615829058753865099038714247929747642764014057727755006840181978678868325330319733796958974673100251401909719082306364041757821023358083438945690607551623097444427940403886831440131793619152040490049496433896645742227665543323782365434290481673730655830852565662673648873467297263278419457867162531519287662538068785239073648272718983197360933260647830615404326476526175860114930184376458790959628166418372467677318731183722975522062838579586790268117222414425452945537979500600231924501967314955558629262544422489598531247122906959849451747386424590438286109690815825244264853463303091052147889875266866178603083911513317783552651483046489656958875432162976753907660354515253772151250840126131727748749717265035779076204060865310703865473488179800540930035744108511123395730758595307091289661374908900494721926114674379736641246316092131281406424956164680998598199458527778047745948998227819887091728137346084437529982722643197502581567065650219950994271495417443059592286252354376718157598248741597274919254402069854575235851632858687994007610811986104504213480946749256135400942808404917136534335424449722429543145935183413128409630204938036855430983526268716556544786209145046783587641199705942019025737016494243586168914058092516388880229697758772408800720601074899199098114946066432237458725267950583730570334567437608196402360852806548147502207524512481234987030173190989306172716047004974421724263754966446316619820553099658754162909993249786626262352697286412753074453405254081699427644329709040444300561400095229565203922140936709244375861304273078359061347425756121106400242763906878463806638840501121576819275475696447934995644552637478055351927600542466095236905952282330169320109788880636164110724869496319674023119953358826515835635699460602656697093564797031023122027017684217969777015513921163637327216451957422722172165237618311235683540276980270470123847655615344695156667501036194951757462481747490214408049043155580936009321565502702548043627637919967677986023395844051854795317718358856804810989093688938863251549302486354003935465634703518261727403055332249878482263303027274089615042233782962568547050376767737415736738215104572577717376467967875313324397079664631037140762591788675518625943515238376512436483277168702615180420379747091637827587364237952100518836947218418732379389045018546201576774761906952053703103845778370473851244954619653681664077503048174138648936565433485626131799464319982565655450764577887005308742906610384053116693105445623531258179231972306706029032069905925063171754744537826470846464552884224631019175499283704905912425778855656318956445659223511839277676307810952492975373925917512188555430306745932825368472779905292684167587763355927471561113919829443223735109499673206548929915183806953841254204952269727321192475813589436955097349618343426226360770965237941934938638920983219840771226526594890252676414495368177515774083879054749562518884731359228524410017920038785999686170347845024335631277000272105128534351495450791592822361906442743357002981974797892091065682786705807086863999318001814608063993717192557868896911119209098333983761462832566817912965850104809527280528958006009191801094029537068570560455860598218943948953117602535904699492681123073771833872556086551695314246614784547789290085676804134972089882598410325722059987451696616906821174625086315628822148900683005101245798586374405487608404002081444068696593954821630830717012559390575470719901115777010201798163350193769798556355170550147535100145862772032030965642227381334280105847337760562209271907284898950376177444083892593683897616176967073334042031620247723338958577408287563638566070550073130500416611383783979674981015370801745304586303957049089693188987667356651355539745875627638358918309176218622557032663131976994422799179851166628088664716831989437482938810468462818162213333307737121054083404212986651647980180952070528541544851510781718299687687677981648195631963031917506245071272098930571015833150519520788116777787277527318962067226685237687242974175504159054403702372607146361501748599041892342179599444151589040542440894720733419735998104351176575952859928399099162188812841550354301482234228298657067007319318393416630189717288316030706327075714723108894246046793004156666851063822732272917337182085780256594554982224873532078923819418458321076688887335578599000849034665189800866713162263206505089922473801707632623593815086375403485002985889287291033249524550342083393903095876291910636938778741329998313777861286162628025302968079410651631193314027861395975099581480257845538335159037241192708473906317688205458772210700547389784983130990951411311947797943232097534493938566916498809546338977758252093271909216869000711006230834136206756281280205369592732046497871503370833987500227101810491186526260270105930238620536877734108199104549120382173322237390762268253244799209836786781814230222211038306463507878308099838213805278428615262805547674974958091064357589476637558440169745765556636120822521641799743121149964854807915049096629234595327500420108260441532833927395687220752632374777994938508631879351072796517485434172580773425654714637379551816062482989823490302432996146583161143777267275496622588041672290701975251573627798966703628877464320599208988087733993221835232091019885061578730049337787268293130278346636298369547748026607661055312385430135908554152107871655919973939124803965895447764738598247064344642673267846451180268996190704960272863554358840507875788771059160819116919897978750499424211315465018753472436636160629785820689270696002748867254241542125686688453553378900919479435895042021001380832646853205565416400084575506609969058687784772235479194639370295993367790190897217862519565474096389264092414088692625817829209994602426574560283995957743175883031651213067278226341372946788906624146403346586243743100863264456748659887237417602036387199131461189790018369671343483665323606953207430938735494063049232247240232521144153005920037237713336679724447105423665648607253597527143706861479978164913834381472319205770617087631287470997958449599668374705475011524180385593829324562485110080864836086565827028537751484701943460579322393092474163044303298976308029054633091047353474761882477747599436792914573620730882427103690347826397549210827920817754030307181853269836358176229908455666747503982574688766768871711925487987863153328916178562994809456251871885767336097647988676387618483214586236212262261798850036702610643477883510689406010019889110159129008733827662363065945342242334797806267591220804432012090711100302551440879514195393268426773907027192770210474477841320228800619954980253483965292266922576156457620202201640830092307414308188482465925596427591847121113918656195555315257360157655194303169583893910015072068120314176563059991214970053514894899254921385311130159521615532025913880705650956596645061016096610127702821835204739043329342677320535616218182781286614196991206792711328279361999483905199132292558870070933623775741663988343133295249197000399845565507322480605985336406636432331706830482286811814704640972964469098610563034551760641361565106123431246247820867325882350940566217502809726868183670369447249457104245581048908362649538323590850114232178834254182184779151494348284904626120988132029247093954622033778711491007645343131796790492390747749325905676407974714047533072640053883663446696190947538640585992213104112640454314888618700616469331839452097269285532253066151726823397246533986052466084703196330989458467951830400474409339051878986277159290149571837545992475485372410581660081419323110888255808422590260527595978343785729536852443960849120183710491466238054514225172861001082107452372904390290533740522021700748576759725560598981855421772706383831148337112068137521277777001475135271159595612421707569953788024158996241818016192493246333940552681739520693666210127274776290679160156910107960019810308486789187797404897836261955831477180089999853518504919790730919500335883738951235155585349747441205305837586891343530743207141075170650424414365734866568729574428878812170307828910429658785585689263629259256807808806103457108946678261699982626018008589396333293384940487726535645869144786244591177831259069016725600127791348956972442040952713970645096806374740663471007929587705445077566500844010312386522051827584123259849325419652676444182740178406813766205747270184197295724261916141146327031968433866540192454715788837925462503355498637768139015212079426912109355643513510713004262557027871604930851551415722972704178807135323547266831210932452168028127622093950525168223092205754544963189535483418745994173284789540728751496349057899978101162758260453508887593852142280363354643900396676082802265750125035932320973723808524090529976049688933572113834319080208872297087154684236508890349004856486810048137919182528664901277430648504709089971274079030112338416754550552279885049100389931916306404060538193138984699321339970175546990282012766398397371335989465494393584278748273978033154483439585003349023841032308028668969341047350045418377259124797560412589639507755619815302580597832059181894420135407589866853908578028899442194262154577392058617729292344482274981063173400036829064139103176428405083197910171202521642632547874249784876804781233690720461511381955131097684549089502735304988717206330190972287284325548075412920670544012754126124959167812889973049624913396897824847917591176529229935568930256532014751519082438535025847217214463623366743230041618677594335814667925133977461701671061276190049478515548781674063674514839981782088464043835434698411016024406830515341536765858500690096654771221953484501266653700187067154330731712070547949307238220636488507718856932248081309146816885462770942136192490441078204565058545195377042846283373606558737676635582215155395203269859293957923532450338894267572320260380374771137197468171221781038123547579370603145596347069763579105776619284535943136860040027045395291931543472640849924919589441467111774462215764077231419478854933050495452338186366770567143321910852722218329244608289029662368364063114128003988890692669892413060437167076780231319179310180596935121588677465820641568592167701679207011052910713020864217332344161775888413297271991769001496419120934549936241618829213684427923238858975336506512140914164951345699908949230320032482645625167065491626301603274302986913309440953263088337629660695792228854082024159456421997288210245080707842976516627051501411588600538904591989597959453844004072481907731985211044646677036104956700742748526495776490637818614833612474558201644609783531760280897182560026057711920638920109209384297495983168114563786747208490385921726437574674155918663558367552158151650115904648891084779598076015148020192308899334434228972869601863601203934892439426743574533267008371268527923320019414582320935819039667276343267652138031233419637031755541979303652474493366135485233093698945012581748031058821409206964496813604766975917634379366043918446708294202088695966756467143866958663059130041830308653736530501055266346842137379325458147333819796874625106167585841879673377167837544096119352031046100056052077181041089547904493305001777830608492721815689113474061036667696628745832379913974584622183654075275969694650188568452785670600104963870459998598598969496451220111042321673697683264178850101225426432903751136628148149996124249924914017863737851137518048271308644524109448492178732807746496095983830744796131555311872643186943580993928251466240063959268280772144452203983910343188492588649772934853110770125450911087017446517971183423416640880843889130594364779859722834238026311809444618192950811400442803793892935512226563606429649195414919591626694956318162035789421446385612326308882795402216790331262011746054443322495530462826514906015597600696749629768209652125285555067249189241454602589085510001390591411708908340799350162040567513368991914475435561527919847038947174404506813611725261175734342315704542235043253311599654473642328239847356068423196639204802947064670461793941118435767694033366645266321213352929301241620630159254469297122592500650490285301002754132327412443579133758927039086508472833743147573339431227417360040834746356606593788435067870405765385603742632854210157957487768375566252442805005198425733731405821672497589355868112233242713153052006028462981863476131158342630526993661059552356023668461043994635099737925275457395591755855861145990794774285824764971439453078824272009705854955784078686345696333647619863977035937013811252116024316774027811736210614193435349659995841790790315446879511520002811772920261765483052258526570097237120537670164877698525955021823914059630413298106641811751577344849617097375534525396638338289234815717642195382116834353279483629963894568523899067667469547896191787286144178343538101978025155034233072011867356159255018767170129973646288321940138997274780883431521950821693724604860582142193378159591411780856394943527811242063215820186906754301189927626106125483640617177698179000908148488869964325771066967279122081232083312664153717130565193701355027299539604617557809781412677764786746850181478520205405721427080086948886242190239000785033775173095452629261851357984503886067786064720785288165369542254801837303300564122133970424604835474554070997643812098045600065053699415038696253942484749599592256133118412486135559279535909114724360749112345908302421986742497792619822138169973905760532994196305500274650740731575220197926342738675063405913035226278894659256057183152611252474267866138271443929063792402830783998169316263616534849367357600396342111946520819048127096641414546720338695030155459985291895285784740366471459315691917550225477158426974010907731320173010132359427539432933113552220513856865873082087128501935753960714530997528632447095293010819253938641011598991548426522178585460437618949251153535905987556606925366303945725652372728357238599161558781567104214197220926164132200162789522190557324197158389949845649214603693524386436669164992882527448238253780511033999221144140854435914151454195471947549262711115587878991959735474552375961758707898013040315445920823321761663194393500952911109965226250578713930341873503573317661213268806684014718856900439900271010372702651022829172402534582750584392607301029832233817670674854388840169325020561046136954045207494516391974750135457226752083495791878422344934233478848291939427251204141624738185977054210873596075149085050872872217791395436905823689603175927731867695650375160592772937873127201236802697900313346597372421774356838540509361354178896417820779538044677648569238554878769612424792388090249383250579730895468164622187236923278106479361785133543777354712130286276429623943233977225281747919117088742669315587664061647701250480018664256756816274473625289347900380979639859550265826514053329947496910675775895983159635880122427783026375968466940444717028073939060761859756777692960101037823380284660677834348072984084158392983895021663692713486492441036518941308665108331991229814431819276439507785168381297235310548285835878518689956042957058302509818808179708205231744674816001512621522478831966645427519097173079745636833578854362960135451479274811462109720590962382505417746026819513472872753930885505684400379968299426445355561790461273881071217534967910183557754007571118761378631179631537583736638874823662903793029198015462527193015215417202690507222380903032236500120349132395921010397012645417612573349379393695619420519263546278570520646157402683570742835192138765525946336758543654516989295035863812826152146112422536897028733867619635788324990533751604949434205323528867856190120384808734362996031823843742299281330092783035586585908063555051666849777836910375054293075489798078055729600874200415613262933085381510437627180357695428317394732669781986089396507045544266665607103348816666623612935635165657344158784302913510636789839777311280975286499112173019377927944957344524650200739640685512194282048095876679135937303776371779566878558121032025355673232201348937177400038266235063547211321962876685055473953559520807766849341366077271038062247948245717852660495941389961129511529738969791026303463587442141271013836628919825969197803351120293880039652268504671272172046686682437224780535921934316525215070319654460557849498455243520945360283824837782117230397581968161263727801752050792654342147575915592738551145253812820938485962073535433943315192198288748660079878719306067682951184999623526889317873146821135739698033973020666805628907923016154049457810818836794297753983946718417265068618398877692021701628645722060923743803352837941274059766527525402311721108436093638618204740106521502026105349117865118158295620182440307949938938862265499130956760664096603115320206946642464781684271389061126848383412892958415035397305245838903940699641813311626599052229958588580989542040127409854840913749303627360269676283133912785573011620946854307738652555532463947526548566968631263159323275485235584500136241340220939828440382638807007231263800824731145073988281614095085417893470257938912467894067017952749945454184878255710032541360954249835488798002470466101761771982468775798024595901768462646531723818327040985112393350213563270751451127550643040298705309146548397027986253847753890696060402210296611814916935019136463301951925865892998556971427379479755716933584171309313516708656660698926921166567222268809869332364976825355730076644182808321624679025616887748433985333984704367981491251140420643919453422359525131463285760797711694768812572548812321573566516415026201657938460574319157589351174438803214681828178681004607361263449410786071459177450905474719150737359637822435970345884963627743852926083744468134332590418667159751112782036241499626622928514380630670910507920011903132078880482837332605627605877975159074211397880835171987164153217330938562397270871564666371531417520664556529317553964284142321483669189690551059458100946177184081331251772745654814522950101530659927780850300234944737661324726251410028597512050133792153417621747806328257232875903383567027706443602778486343949615980736907624471966929292773113448883528335178588750226593522932833652563722156663367250755253871165614309249295515913403704233741808664054024856754190349885765602153797125229256796204813979062505444351618075792895864393117889978678437861686475524860591766123832391692159641936753152616915885105756099327333206583937524395230885024386778992266080891158786892303522499363608780555606255867851029646000734832773698690942540883329270716312981546018712239180549251113193408105342339704054553806238770445132160545247606193131713772612570415382151187164211087662404387140259106368413057650213702995194931063386601267097158142074014994011300937154926757651518408014064589776181959070387328641871190679880331942279733292169552294354557290198277460289695977903969053046684520461460021831102945898279646216697980094993085781812310651745164759231654228494676722350241025005942937423261610588810406696732317920633139553085886130832492828834528492438585321497566290104731237266435940660842674569575847909286776758180142595703503627482150854482685326689011024581623642462014636903983390169216277498498748626289529611497741944245477555990839461757127449214631041795807122793782284886988714890942337687759253713515334648738073110845022187921524620279161825140877609067394990363145890333667159156053312128134960242293795856679805148550956295496858981307415308293075431678472292417747927223437066054735903826322103070449799247229419389178795379027745049109443052983258115748286329856550566310866955277622318138496504304136248009162037430431118402965910737164772531229972357992837851840794814064694045661264689665237224895683716544652407563241792057882964402529026202136596748529786917241450787399447414849771086134466090111055161194786690776599359491413250414700882026547026889952485355444620922454638873220598123200429420120396187008371801846248010987809619148692404773553468480428708064306499312413032435215546544181765807445048679116322173377011757562227942062855933904381021064269785401937297964481984405721496458620799017428384969212109897565594799179353389542852530448156028032262259126511224400122587031552448794067745122576189199370979325222726789846342805302752421832389036015459513869852780646697921786323335416666245171411004895842866985748765075201158257639075732535829530294280371469589005024144956376797091726459597337249195866904325421192385214510748818056599683064271273874446351485791145942985518013140277306165235816643830467014044227857473543893446058377066740895377769749451686357932854629694240736227345332155963805772750482330918883533643488843134482268176402636137286667650791909678324883059701566272016899419320222822865057397735028979905498808373859315979114981491313787372935865392548751650683529328759299313671864755151326435828246756128316538334058068215427974898909784883814758520386430032399489626683322888749287747039987628239873121117993930177512395465401515083191499044655674708347329259260291009997216540709516694123963664995847995040536712138382138130367228267751528400707149008727645035089613428283951787727879190818322020839851042513390163285861407873725317798763010677467182316418919460069652956423826710428459014734949696301287211348530024283758506850778467532992232203097105684213152155582299410940158243862780150121075236634103522802011819021553490243550398763118598365741745567144560913369765997253186091496297762055956525262765809879856908051754475300555084236589844794601025997226807354947105547110021622313263786934296286603346869795070689135807739064440143902729545662480950834628673058755522865907932093672763353328377167887335890342858364860870880515397334811180340812532761979987776751677308778086298597366739981826105821222092728517251805816460477360497502267210308922501717567500369104904513257736541116325831568716747515496486423990216476135289527781920716208692162456535333441979391622166634285939287124576574982488512935355139276747206327620574795426355629599072903539784939678455447087933673318566757680386525267539564759117829477604230494275459673609279007244129530418825215036933848058638724756640010748000480718255170068503932834622835345476668365710044841591670350269835720677137442713970094299109311558173161702489449994249676401680148734119329574450190593132306350867439816053891901679566386771946944016371300439196675859139892914659002281030220802529279418893418739578844598391998563538764299766572385246660559128561468248337289048244244125623974660305069479564239666508653929244488377504648766412885396004790560245452812935095639229886990711039203405300417832449189515690975468475362683729102032530136679478425874748115537659986829386296186691009004699979406682113166940426756143168836222949421647996859505020914429543875380450252407693714952507440388490798142820845890314338844332158585329071402022372159302634145982606089550994647522068198933476395216148598719507943233213201689676692128131170887807144966806278964464880887753924752581630543062013258386067842695002946051998989934365523194350433999466402004967703100499547329197033171937437436651225191416356842925684775123577907456408773820037917830055999542641520637258266313472633486253410265086992659061275905213560246010875224834920205320843857306379437823118559238905163622851251739374437890124041219013118626082785215694134407899337201398208968902048322271096135188749630357582988158215133716188243193547052609580756258838677743551143311442338829557258907309673736960062661314431251144253593125138480446465045862793345698343500825448077405523683382313059580259104594818978460331797920126718813775669267250515953416162636739340844370499897165109436938021118400079676890963244702831739323012631227990246094617978384447751108728470008912516087699906080778965545846439335174615164776548047718096757751755916764410065798210286017044790135453703076047904209733599160009937165755108122156341532067195566791753414822829950026994818967137900596153511557825140936718160050984349774845058712724544131770114714195185620876402891197961714232740117758278928517391623030219268564314752373452428211401704517945058307066495538218764958070417685147615351284082009264496652292034900528477877442255306947432022036103696392069420012745552460187915939467581125422837302549118418513449054286409512223434572234138443822948669416791722727424541956146577563779124927360403074328474848861030303787648341482752189002326583736807187402592147168321265807735921778539581727539652432087096824310638562345512068251419697371322648482082367957108054620800434096155270479145882991649891859689440383936392048007266384988283950750235980192908293568660910554897559491357449454831443969886206637164154158797842876435885886546636342087558167911307743136094059283664561499096959447888925114926750452218355495432404134936790157249368882813186495918308324756233157655013785970986059900720256572025351578300480840465694953263512054778991818672489361202934086167840123561565598986963409949756748646801510197347840744788127238282636310213237730874661207209949271130175544384152486574409456174966736573252393294070429638532212770463037445597740288978578873048886755594132908611561819673927325531474838618166379155344932124244016410253622666340266728890370139685859730147640071012365355770301121888195772069742258373486375296167074481145416829529954113628727042212185672900158050817944403089705277473709603424959920348918822778486191300518839452795070597362910767929130515409703304337421566437859461385222905600714305969669587348143027044374137713464323506894398109167759009078914261455101493133988689036825536060980882545320713498253873421483641222913847566004632698770323982770248878287641879797818659177858526654739948485669383603597340140691238543346440848883024885488732581483989855581226244647437972853956616420376066423886710715480815344980784361874867607324789552398463672898302762015586631820552322143703909515040434555593179457121039122458947607569114293339398653770676728696756660230867179031949711492325390267357832722833234767816192018359633456204361243691120641502736086765723256014679149106828682784293417769611574319742435262913107528677259844664227975817480396896888649890471117363677034756747216126206166195986911539487536180037813028852573583169341277052089085161623602185918643493471486771903698478621611384892371434106503451952947879405929184309618473461916488598719584981514470396532574532366548651112090689623076080820083654172086877369043057145238986445192518908933942223055155695273676846314547949901814400602066495474516170349022302497435471136027392049413781688362046051862003785691510901487992505792296867378265169102233641091684676876003081057277769038243896014992385662362822032709612692095788005172978554044710162319485477950137313401017773571089880257915159613610488499953081695561615217872974237980336902724814731419865474408939706377027658147076966538889601114121392965739733067504538932557158937516347005062792213468176110844388256887297351579166735843418404018547779966980668202105501964291274328501602198124082319883166344307613464591019705249974248735814430388874454380011734799469614738657294357235502627777028771194863331984793340072382136985880079585833649784170572082096269500494258028921133239785197124629456490212223379852290672022060465795806070763847645160519386343486239122603354838876809302456572515880075757649801212802801951890344031428126375425673987974880259892750713916492976975032288227804391878908874663675010506872894878176504898451801461485457545247362051053827223894052055996543776499159329002446033863732377644560470164982543942685606801267717216848723467595310250289923921687588693767271595640779506589563233937568739140618769297343560789841156160985897953293158333200092831033070185247711802916529292816428348491109358333936452908093335378904143177095030948520624070816849459806624537086330032139598659701819479618074708880265311934035499001057863919442658750943153722800570278150350659000421742520549619738468127214783244083190192845780045680806499262032153910398850400200799150295832299213046463990056372825880627655571018633505893402863481881983383111901696123511770303931543407688065639726546984467773139793966455090593833448734517178923500657773134892345938799887560349757635972441792758675084954471279461460934530758122151620901881132555298395956693665445747192873051336345545937232361711919870750837721150247860704181170977539379392742245048652197158721745576522942468376643838830060116680782518665936498537172272648678919394955417408844691488725063167688303125368222831128075507775528955988158576347005865109247628192807516733006664591448069175109067599373666891324872906034802607804447033716100092603465945098170276270405185085566706216584872581121660954175798983754158825037683707815220228487569996321452270991014450185042341328812279309793257783724666627404640111479026928195326017744173036181787692653318444660923479973384078077422989616175875770805444578526965401167054690022033036219246993912427052919082386624447532360634942990822020088655517827586128053344577262644403383973723894382377891272059235662377822448659107954704310407649456680129470207700166456688528257406265225481980774695990252056911102802984951196564541675132804191799101317071999677693463388629584862733351861498341435923212650917461078807586798751679327098710261698072174045167893903318629261503751453327962187320990791518837783081987038300148853637245792503882156938746180845753080933182071801580871433985381273287127347742570818590606413077672374543949618530269261577334201152491526811806537328481791197886328267679355802650275508043081533855336092977046022602234522375654830420575231425858814934305496536430180642063149632457039049335075525162405336430906650348584581663854520404334248205269166849018373370829484884327008631046329483881236943471086223871408724189366890432270879217159530247857032763941399731420217100430777894212826055934274647467477583258763571223705388007293760557791490815231438990708870549141840109991874508085867910270660087205345394228235089817413682966532889549494445477180082924202231836285835559059277337466243509070859411341603915118212530450535246347929933997155549085026480158151749993278917276668664832658603832387448845974810952284989109712094862617774678587767990842343801989324249773281658090708308625964963915146383029289898975345308026784439973477587065389176766809598252351719694658890941129037608699746019828705353404739681205841917475611239254385256425822995371517337555166601613044080029868601540681735223331276091209740787660282007613080504120589962053693132821723641773265760780607182506128841948121976395897612276990242475598084268033566362329814440273083941969904626071528344337561037790474051584834909002046341337239610333533344598172993246088937968337673448666237496883013325847589808122150661369035078378126090951693939484171453166324952224732508883977268019630737352142191622094467525212867318824060084768973096527226920901435141796546729895897157903090650126440615314768270979402634560864822377589318651929030555847380977201858555843245588711835011483405486927007729617182752243261737761240535442338395674544670799955130901028333899615239716294343859989109606430153825861846909683601497859681790611125125145213248719436091050972653715558681298155808761636032219649868190402572861272784178614115349387693238860763730730820928312953238587667961485999626561584730387884410679082958667246157706776300372270097983430850340356730608976519382950615296300796477316815779487768711208940946416723196588732654608621724077793598465886845603713802758297213414770116650600377227811478527104742986570319164965133358101769907801888542278473109970102845058803188952943208304740793550276591065973298577504188748513284298384409605864199254885900900088543697426417000359994331302207254083448659401625767772030685590734517972301389039601573015485047385868807769395630487430046870711371318675824565104951572393768548821570562664894314839831816877839920664579331354629733840617267741577377712011936518392119801403299851279353233581604553126210445271584845436433760835968350144008142818802230179894700245798653502810579903757174317429711603519134638359812279216718066983954475458053070128134708576622748284270556777251812255761048580646119652479600613244002955787044478283223562120739692500009313324579563551924708643146501893259423875138471838061794807970977042661692168644232105000258647854480596127474774299187977098123419026475482407261548976379278914134233030078281130095998232951938006319947997473674551122835690814412492619411318518198245643056653301961132532257412430259042246568354140593482011454645152336499886396736864246037139929152457051600667757141806876454135787259473451117172270308465928566503758304867646041269987935246135170311554701537273374574480970908090083114751795631251676584825420588736090388237903836814262929924836709656517774813672416684909790671104610035988805681142189357375143932519251683286882471391671387737415885700573458342680444968369347131339402723882534939954562590859738526841967133346471600560865053223505116072737555552745322510366518419222525951566398393208100857871251782944236974631607035373706684807489133906109253512363114543604377815005754175875482251661175948889691570194734466246067072271554592320109013418076031209762740672094507854907684084665087040520378987311281747189089160354668464546121481052886028853613343816384287868902333397462560753095310248036348161722688515756179516323515590171841355759544186494284839872427164790629063923923150437515155954585284952897418994035560004349089018316206002388657804062255776906387522973810815321692608528654479502191080012883293385463408881545324718528577874795305481700672725371140702590004120939582029030144740340327163298183457297573649756156552873900832857940327041374445443389009565278378751396393002305764106936787958840993216915606627985913733895386322390971232391680616830415610588085924810346934067173178436035582533634316924997880828485143653901553735860290958408975266392400515909843246804304515053872722758954618702575370209551390136394501503479116144684264733378320394188341285482912267598589854144452962560213513138152804395714077461614387174981163915978855470531060521023189566827697826925798140957415223831978869958499560358431866042484266247057534893542736070384250276576993769423602421256364275525024905844787552838906919940623038174558162135427017637593922312744760344393389179725018219069799415221238453953194281857380655027252431144907839702333298426763460762020772142799097071927352069602473237002190917865651454033434250445532390768211446595836700025577086076521165373080083915708657050538279994979376963170572493798087625889542365215249286659396981678689636523274574309172569780038820434209339229079532947063733767088657328329649079370285443966790376439971625134769337014308455090663684914340103962216758693195962103215205350173164048781897331648853687822369650942928028227598557204574796983350637320568281197857336536983453666521800510996225361827644147705763244592595908889536464802381263486944619231809554324046216838363479716739526795148265532714959702836149878496471090636149376290260706737488956960262774446890422913452529596307173945513119825346280306557292642182435904595578182938132589989687027177450504302842706111797218531974928948626574403815775974395947017179368157673050770015488517479619011930141554185025971936093758989850765661624268407531248024308788635376878322963338479873078966196689343423701986735862442833554690467277415210087878183565277446976833126290140850644277307751082909571736409455559937455841259671491301837850214878649023542787102242247621297526105598345489709246579028782585481830089345024287505210335343858060766184114036870961869125652586999736820500908264142584213931446879454463205055110916212533748921953105162030180462118013896355509153587440066932511891711392728194977421318887313364786658986284253479105622712370100746505516341566306012676895543914326848978370208374731529086828517539964097237060935407758886689608958168885704557450485879616317365364618229688480029683530831964186417246877742413680354596397035237123109038580786920501723355032474746312318049986807662559150375968247224620419359566942590534321424201056837717325197582310438321833344281882561332018495350963218639717040689780537064964790089987530621408611539672195522067892090042130256500846730008608740173344825648214441137368839945378392834148985717397810717159858372753150910828060156969985325559262911574437119709461453331164591450896773070133278554333965286524632828336040776997343420834370129200973516575633625949864247987592214571718082677199400443299517514148490079333727457608348310093683683062640991882553613024529921750228787347646744606818345669124081969416266811964314430582277517640919025920139081523730427089423539153631805037169194951390315935241603950220391418727286518377652340851376079032808989220889136550281813965258212028235268969357784465359328378571706202795749644607379688259561687000168712894642985849860381640479531054905991282643868403253520089912668705584654026937665235052821149515020266299779324788839179897264418591726572679328579641253945796916774516085734574364636834687861640239925120765501348955000289877713194590235476696412767678316589609786866443809662972437450178185441726797753033720720118870927316502417339763622286788882122513987102069018244474959343218081823646085900122509166259388522095175740127922434404178567863762074990137820865376576613370604177106615038122449375780460085693182095757459565058205311165244661742484738229382042065151030172198028050965506969444718764899993081939259266236374731108954063988507452058498710802968480994888436249766465021548510615400979500043660901015383031791606350274360437358272430794018448768340427399352655008007382827418511292871860854208352632753388283514210455020098878700089611892765562730080516136159707687776251208461476846964735974024628047588177485244414161547213080739155179077903958320434900707540084973009264739964176136869790588917243033387482519228099085347492582452458000255676766100909479904327201091119037450882084734991066021101341090277225540886413569216369691634664617794784248605179693355741172336285206573902097324012129721005025479100862477908124730186556993242022903822512024981358367028751754242187975081822869248381070926499439735026363788723920299521756552547235970681211857508275824459458359665801101557976209621218033521639273612052813849973323331882464272400922640859868433402157731924451339008525300168488729691623454203034050279076949686695074744512149183856377106336890298919742902956027126383858040802161815935601937445782034965765641768184474764707555209230387848264504987720807360416752868210395446884750710312144817102663036459449836964670347946274412170870275210603484705989672918999950179315998614709798677362135892317624264002379755447366969062125871963634005137792549587299737552571493819610569935312337815569977516644728494114529397108350973092499311018530191355629758110309975092150375179447610158326673499228805206325249277087534629311396508509656870820474686517884358339015119549468262568750181062387522077569008181859864159900720200906896148628561020532713429198041934980004984455086738229615711474284285262973120955003289578823119297682713320993833434092841238274055424454923630672053616180505364143057002700214369053761994396876242773415379188776250447229565732729483896912828006244814983873546253269389505498255683561870689024268431502625151347669657963088439001416916330160017514132761106914421130170167506723661893538317283888919964011318021214803883497625642317302278410429640747250474691938051677574299631008444811213538026125852956595767559489035897042505147229808583656993707747678256282816615094040278000365828724078402689950360631190851265701112401634381745409782798568661071952896741762205964347944418571295623291088017866463493083350217848492685012855450234570689907023889949431750255628788943283028376123124950872345684563777695551363424987479845835638605532505663598834624457485403759617565856744075353373956819065822955080339323920926261971962433580472020337657815739942729366774114171307443504004673799146471173811855460437741520342351898069996204591817556786993173845442060897948932226032421047980087192332426662341453761567181399278234356827881757950729448052251346580643853866543479128858769451516062923441625502269079727083018899925247762364587785103634971284358032508215988151417656637698977465019021943130395087347381036877469151534264655170990350868493931519596133076409751771351972431838474042753635822533935614869570446006071179536254027860286842808783222175816570731719173867636150668571154893010338664178734283373673313535344061841252971289366631273967129224061328814350310421056347716164854623834347256219166899229831390092563871754897566519534315290678126220574678938250109447040628947097187000337182062473698037558129441478389478525760552369256373319347271784329824310463279956209170118532856955400272732512794441637828881172900387005982302427215521311259459019683054256346752763605747097402956604458720223919129039192281909149247934716805884534619090069877915144054288435268311407296867076437092085589965421640170743623529741352829130956251534717403234405135873169466538506490893742436869178168260275080951928271566681260779817557369061378005335539365063654703483571423242671579823786533245482169773539135135235611032984058790613573984813818807115032781086368004792498541884968267443094378127836522586955082626572814777974922887786553038285115545303123856522968363677903849608951305320734419019572017823546816904926905085054770094878911511097969915909798138104234314430320842629010649573204821953923700609582226758123821081613892124461739573828682393863097581929683338277152680925467863673657101996601013587762361399601071047912100618583288907185601165827624182458174674591551690789861544560420222673834161588494555739648643375810977368394054345510845923543977333017096020426461026193396529297696475966368906967817320526645348380946393274904012561655333707092478328832288631142452395927996771361196630485187127518178357986038718721361829956261253157331309695146181372915022749360381269855922125650411505066729305351080354419115536352361111277486404141515739170033995623542620150796258625361493196773761127182609189573068893661564735282764312125499305432522063499822967123800509329296347077291617714573737514552738569535585608066337014194809250477095829183937310167704690294253191778348274240995509058489932937346883499073598663274503261345852499468583030389688603785505535962668362838865098644650820583543298344044732841043055361308033225662045556135087108350974006460140894974349263538873432687541670466056763502414340859194046315957044530927926011691146853121031061023619579394923234699246118763899156159965266204463671822562794008914109469034820027775045485351686243222148273308384511444094208119726440884055843856697111760037502264437263679467863123129455490812600115497635113333165561041496712040570389338828060407880136443353602004888395276278278778802989896123346600331732900126775771617709349184230209448283208355338570216657996110191201225730575032843108124750605232680902139519439598603843825358525631768086125839294946314891239828174529638453366029742610628611645985115058098155199355159156070402841010792918131358765212940375214139743746046615388266544749947906589978143812098259852881765536433292854851173170604442635065774961242390948126681130870856293771479535084168211449638404875542106650716829360727540398000358617786851496860286879228471991413529454890676762754649082389791254573948600251359437666457876198595239333803208545028336549720232738680393464183978142250705319288343561356015998464140961497199937896002487367583854721355406962160352507480274425575462708505341029423736042477906611280004553362870468985281970261613189307890920284509499951694650990369397945190369008545056016605301978426014801822160002851888321924608824645865760036223101144747114391767608426122664686512468132341768667489787970673959339032236025779943875496261525915500673420084037127677053512836420596083244175167131612760031556453224717438238405526734507185136521845411959638500793374407136610408282659913862574224175645752832261975193265168989798104479376675336377569137016109919487029738004212749885459323091198412021569460435809924062958357144294894251589742156836680735996716067903363122437711832079433794305103326815456545469470168611310564363463952075647971593838308477471648491675228882987411862173042591676058360617615004013955275631104223557312623226313126137273814759886782530746463576897222646533667665256004417184436711207521215355771021443761296267099427751017365535896131195553820599444711902034960976182808753147528663514006233244338215530884729178828091901171636233477706488587507709772366269549310949224720407330038210701487785184928833277191326326319381032626854130135863273652974295271250221423442955863720010079230451573562160333301276675390266234968769823601503982448079039881723796780767451325322563593450394811025937240157064224557721277769921684103947588857069112760828317620029885475719124901755890079626692501641700773479842299344829830957315657634147771144646923829197660539030008031546166991498322233421293562171976117543174939711295894714834457396376931469439014693208263884360695617422190734994584201615905716546119443982219102026763512190280062514363953897242982173829177557622073583630320291664676809404822307474958433909067225264988614105570893876429928329968082626072023992038415354712944197992459097170717650269255588448824552020049308164674483907418932755282646499257577127483103445637087804125679854590856500152521652148803866271138070347166729742140496970913903081335099204669974178247142612223530157582576371871856415759992900289202584176659990704532918323912530108049514325057417034464956198598633795619797901938520748631627868108291028512954904589609885829697652905372386105349077315772530854004031813090433095641105338413910040665840411644597897956562246022086307011309867337821423865679421944989590871811336591628960407573413718576106743412853373942346832676455992005316890149407612706872115566658343897518787621898971438458155552334740945287651537843635884109434307548351998484775938142489978649495870727585175457506964852023063139547690500572166700455970375173934930061065507417112450349086500413573538315206122907951848239857150257587719499854716897955773694354660403684608152145301697430081677967631028779037903872799103464817400923977777711558410602343978268961106728442724083793830154106120202946190376889542943345848489067016833707159613609979428058034446690829589492513663536367613681366155309612051175532453215158382376093503593976445681627667741715422010184069332437273721391446585567074010116894385916299252123634887013429799420289328147340106351892956834774403274878292556019685362354166096614100564132896121341833218480733266238290871969461966490224740216299126235374572769788974293564984542145678226116993515813036750662443506869138763486035825945986595927635976275599881252957285969986962852867007886546769567435450046875877336989890192181902671244515036957601174583936577105468606062298702099469205807247623751245650488384813623659059536919133564530058905628805167827310500605318134357294554740211276704476613059984253909616151821265743053684254151106084800744364357854639518402660628042994178081572936756981053197476385583208859959161522701342829457625139306451548502821413721586354877498117363314050546826061057407838871667894879863389311072623845643347127768720329982040404062358851075290504994336239293674066310340190299509593788255338334558341837068657874782025042327008620041695173798539651826964525043225715784505957543529076000662746009776672033693122443580682961262292793753711250709737186324769605092848679980375399443045964350079892796739496988528435060680274553239417043717094435101754579943187831080699822297883275747839438164637398567917785850202713251767879908970207965762985863446984568911438691096153610433460243590842487459891684630160587541538312486848933129444080177365711850432694039518724942381287161177092292836123850080460407184364877781972602196001007450080484999083051319796069613964602722945626244031021714582650159374798409759916669554638958073630963129275945724025704465437749767987813111015394184304472451635996851707444611684988086589787023502210619162269045539212876518949505907120789327004614798576933087045235395989113245854605401428005772662967507328703801211004248511943187999653493839150333027934457597074989448145403735473293118654022503143217673392993279655970474865766926671428411969344775672447365738186339614372240415867532052316226563065018431795561437602097806031810962399224707303175784977895495225774455967234829219874162568286464940698187675296924836235607030806832268817843619263413517705911480354154089159609874777220865588648268727199547900028220752905140696560800441297312818120645567654403794468818541503833189084359875515347291083592365011882857516214523069705541292054653619565543285987877458113384933780249526550510665390464704734394149856152154796113425631193211786713554263821092967530979487535456715473584888480566340447826520059987815145764316493802078791359846955546936888151125409123554127900816912969583360021124308782703497712031820944968052164259700547304894719941393480304395239415485776138391294324070345681560929312222887544285455265018942272728268550217022256234870737452508978549488327363493836386178805259444941639434139840569482215428908022335090892841714144543843044583656387431671172954813473012825454003038707320250804674368422273964260346359871745631515639995174942949628150476333693406249463114887680771455242933823117859975640562021742794364962247244681609350706168238158337736890103337111758307864459407575820507909080793782070715354492791978397474603745256000777893447817778719915040101742341140715042276282700207915941362551814391287954008075475581824435986364932182403699747220960013183361785833635542388619509895001953458651043618092680698574822356660763490670743922060207209734745268354108898963162801721779605296473746793357396662528552923463807054485865231511548566521491898161052114151953707632615482456017231143474490333119858015122395351866586692972514777541013006088090522802561211106837701397645768489693344041342900425640292082816311332587644491425974195319151573364162836034153058378949337800593352372174069372398168746513389422961696654632399892694357129789425062687263933396334354704070367003726338115781526594438466927467175250643051616202083045239981516588347632292707162883682209067740057696391378826919191108240942692893913568937378833500326395939212237214051178088588541063516072193920668036005970482243223392312880908866439772215422193643776455959377758926525932716499687949857435211325951321283967620354179116469571524512097985763408692938832651757278456808564562210269948107658618692979988293559074500673141458854843483043103534334375460597718335350655537741476007975266251645066001139245851384713281335755532562827312541982863074101739598501659505247974037626664696446147868219845992650657462070329015715158654139301334880105015195490648080223572391486975278174635910244049573290051606100722796475433391502198113602941750652160880998517690736353430621111557995635181932025762412861142066402710696721429232154597608969228633813238314671432451358156019185098306149384274607107315673954385339057849846665876595358776243481347161920970104390631960866045044115228046369236970819152208173176242686617781145387174258483078668665750816741905699246873356484249689822308813518695879216782049713570130936155433621878325494943968691327773961092077671827719335680327236235614656182468437908601120535650713142659494942162434807069395643095095579068791815642650857939974248577766962845860364656154419620878724275840858774223891733150025608771284137756067004751427721298829764810920214290900181583911679704032867207946536219836263272006158377086377181182960829832620606113484699374053520042721365152671267363649189502279724845450115324556680828802458350215280012154074559396801416927569084792108659496722427682931215163011809168774648335118145453681942519689593097301063990407737715719568472790236969948638186233320707631343479801478683228476175695970738741436615685678120348752402669857159557700819237239825582818054013352936439267312014844238535760578032518326937693018137088241024434126785168353926677972822581882937637535903989524417756139855289204736074890830074269163727488772177140032141697297526470762879473232866422001979150223658219285263682410535627922271750690206499588707969329740623693443181612249432884090905010316372395347666854946548664066956369815606981680191155353763738831939453917069069649855702810834771122001986884504713105484154687624470074348311059861294152231104913512325382512665438795617018601724815523975183052560509170718675312623225050505628188268504246212373640976044492158612103536362463218975954793128450668897527354582636476044820111727114299842232275283008355006524631800049904460368631499320546901073149238866066048703198494486957501707795976091479801373076430782176929363498452416413845972067226563256366722126557815479965193108134559233819711767995040102395613978013899883071497773630805423611393927749052262209675184382722939859559057304150248766580797736063147284032288283002261295183708252460536327331348199373350683338633910096069574311245018573336993689346664893366528928971179882229913322719513035193904553987554319102173617294853818492130531329035414450251495920059658235793731075813780815601305915564328672341031418027643096032073131995179043149785220746380735451739730494999957384707039568940054213665662435090343941601686623951604038804522622966201500742622010124447857042371580381831941115277835362924010213171470969188510981839312345928624249778660919428617687670926016711117314177955108827161896085694626814391555403478534764658215910038721588167138865925305432841703235035996265108234457376851129813058300383917139979369565432914532946681318398666829612326453229005207718550198536900541654852116507904329546607927356679816388887988716779440903303493962524247245033915541147692140139273306493354382465173797581279708927858954955066959194193056290539432620255930043831923959100045963411655375692881672486796039924354869801795191814576740088515059876572171155796733485604378316430445543995959372250372681378770525420213543145199282648327185522434796521608311216343649382902126843364516367882473595493825936655663317502110391069039968359583676839729200510398608987635362693424341739815461160201270414484159240887332960315042479407641664026667205218340093138938752670077042358202568502521948667890449222664463259711820886856839024220870568393342742879954012055551847439795351727937774205632212815528514282621724513330350870993988735964788151418729352535709288220590375783458845330367342753875587796474976779854443744574776360051171515218806351680770357509426793539343424969881530786273359291594620973616478286902996064117839042216739426900801850855783134724313523891794911093499702205774652533096088160366866250016041367964843290706336663290661599394752772529828408438249370271549334416230733561587121843636193684677529270610080026704300302546656238110639234267248067696089162289726166867017300531589147622332139457547793574743652665992471473389569866708821282177071555449495543893077015194470486094169625541884147452363032129754894645011855044169498847706960151457791227161330549569541417449607576022342908166454428873778063893797443414382723833710251669699135200588504288624270698176949094891976602341823067370006150919111773009882477205172760754198295220989634156728762839044605725533283237576034616883181071579601728235573580644966769911193418763592196305599480018339078873488257259121585540686058332051479893719104209517940484162892681218007143366711183118727155329075933358758413717497538019973585984041211002859224917303517338734865160894601086844679816562952869157693299298279671003327772082397996374408096684988048973254355293187787480526880661505778884711223579478763644330720677803928754041004396421818508577683139503209276579703568903296203138705900546362525406152283786434352563756373085112881488912964330176100443986751874321265150013627586030393943422514664039234589750830995257795685360377947609030626106665844992827678047007366726357226341268488808004266181803938005762320859247255480310876989219078959569126746541787598767083912396747251288271758503158179977141045721164996337104549791495122931513653092289169631443459898052679538111492182993449872997324137637588450326555320545359773346453481820164694092646758238630689690238987953085170686217033170410410485516780648840688492360823273873003083245703983202916533766351669690934565740068693855418858990350911109227732681739723233989794192904585764771214245759590697746675873992987385472258658173040988905567728050970613143513480915514303744494701301548553710025938325073201286083356327287534443542406605220480570268667800195298196427051920902099680911555489570806649834076171385440612310531631821162637626616481734322671237272058623759138095466848887897751264898397077128575221537571118935826369999721290390540026617334256604861632941393951525151494416270875766756106023647666104046614073688565599880507465470852059172975665146459467949867714271232083530672014552571914503545085805415326744132504087723797417108656745570218360170454333694143655970345295489935368188464289867840494484324956505997107466810237759785044867864987252426317434203850838428343018694357968056175497651585918349344255648028175774581414075420701567650053196485554171491386747704297714791019972957364556849152937551522173997777353990595072897473358879285884932930458889590728526881102040325873328782370202534065741977280287296484340675722736839077622789345236752240718331515438416816324770597705040913236339203733971331562810420334046728102619707479122212215616360267490830398938369691970107211739363420086124545597945766287256144061477519206169735422211165106475638271481918266876395166679253716171974932438692765859746859558675392400525491804884597391000202385452832782945490453567413210592934774713619861522538558760577781031434206816075645826898445256047024430043473919864517040739053394306786712473322827051103300544537240783656935366620449429989778801522348555846438358437279803193857429263993736698964531702167019232302521675722991674414259023314369863672798438016610814574464232437437768406822977234380658756666454254868717191327745921879654834602412070470722994589324010001392437196063407468130552221723605126958707475927955313776020757507649241893678619238731602531457747318665574495827826647103438392269401788741051283390722681266241543447115865745285031947021845516650195341745152657777836523908712711748847416697104573528360812056096722069453551514430089944253743555520968320864976842996447668035986872920269423086763280099727227715124405048932409197133552481707052149136731791827172862128930072644729082003605032588470595721070575797486520149324119276166763338026379069553765864162644307196974316097903825158200187075600060095222563050183416202849583153534565203118333487329966406725886357545331841082420429692335913116175300547699364105553250349661471320630452919084764831904293700239533445537705234613892956712381332791942306989441463431559565638388808935095351283434564985537448191130801622593584865728100310634624208152898880583091844793612330923422337304785778053425427169433040855039627164136636509783570407602701851297244675388808014579663307043990265182778487556907034489267233425243229517279605238634027772213619163614269007591486975261104784038065485270924666063690734320465564304261016048454038264721096816157225382226170141040396631555449356634013198891229891152977574392741151343664578228759247254474370990857145533986909168140567736913204398375126627523940092566155412160637828477935301338841795894626095747078757037050761734493418018537329475547154217705464742716956581655096778812714864121408919811128721584547353841867398525695378549788383694211012268643324723717263055291863712689801486117239689155991053242056964720702416654782371582434727386535625184427819892781264208209694105905902452057585699506759650928866363263117547476846382247169717152297677405024401074223871676090169294881545208195034760885984316665467446879684178940068453680950201004296654233173047327098011053611058516532639063401359698491046459540693151550053528701472557297193542412864196881469400294117979941027845060949561794195913940098320139975786388842899818425512546045553839853797870131762741565096957821847328299148917531246669219801158856566315628996758083742518706730652193503195078666782716679597001971581981043172646678741889290351436885603160743720122206734190447351461402249803659266457713671226138885384363624643119756872256342297547545382687729596210928210276921525342586611459847556091122351189350268709263493181274350444612187402869013272387118410387424516478770148149903806205916277651339174943831538854132066716570674979543105001080490972336952811689494558413014349259487487588055827111167049443192286600430989021257002108258133009066481549295531343277392774094099986757734576694330056740336011825743513236069744979140341698056665214081179826054522723322799123130388851056057085613186054175564838357046690148000201003379640234020738155984708345363474368771355479795346652408696613829156730847933556703194515945942254895341233761028822480165938459899442207983558033640853734888220262168833123680298811627977208971019375436565970423652881451322936315998566925823956294556633365363299247887974411680675530599890000070642738609627907496017254262863866936410899825779896007017612592703146706808393329664205069621980172051899036657802162539849226745824849432856767087273426185608989448739488799385821061745179332063461622385652864783242777722618647330265837695076603135303431089063220297565929892167079013022337300727498628635273699520144701469668922207575625915667586634309628386855078926074834879292396261087962558814587364198478026551869321410719154404214139143023734994957441858140186776096287023232958660773873559637870093924005469457898423981217016620424404173560871298755669277440066447895014558278771076503617609927535068146166775405059972977939532749853178762511403472557532994469948212653414472606500900675111987158395813162241197128286279475135717665004657259745404045252370820834287121911298298439451333414150548489474487538893591634134457087247116064741890813354263274115491373035150115056331213527153682387698132273610873610113568387492833615956273423995671463250833245724092521156985276751242514639093906761055220783136691391547512946230808396856986529239597131098045729382492065690800732060305060499690387863652644802444617654028213023020877634216662426712905328234941652670202163345093821957271580943264487439652130541607441354879791340351095684278309275077529136459962306250404809605681894961339791515651836575687780382946942521013424832406505015972090868774727148252083666581804062064972602462657957076221691218160225215893092219373656348836447179954561625837832075011199993821374932929227489282867940747857958994465518349889414827318433407082484133082283726710170948159378090231419445215375214934269173638136780461281687353117751459854348740894104424980583694828842737232738935973307017497231662436876872628871128813391832631364989234585897802790605587877375541803246800829273842957263264831143309984634278497030053155497226813526438692621576567049113028774218320959611835852747731500020019897425357424468246747616770714659988736646866333443515244616732099696558094947376003074893612997242442555824492718613161003525900271477598328817044698904571895749733856729580508447882332969987131176992179399634091263671478060416551987161355712374737600488804996976160993262888294533053546567396432784785224561114933047076747172953040705852290105080073869423044722636144619842364203663695866809109675561830260978607155851729444154674461441344664064653567777193672663633261133673112519318889055077755103218363625718168909042655140835256342005613550787779366383642745580285395465538160856862210686631465089012003781577965660341211774371833444348059762323782850945788978801205258716359696987921152849582679354110022256746614933133393535343619044736082913622117995776317039314906495702296447521218482059949139240323058848560098209659613145337117914256425131807653492045688050566747063988716717823847017901209834973508170678187710956181686028546770197172421966771694376586372601326918866139215058672872444208698358139630995786236041614799667087146773928640147782962622788440471826268817512281230615896862326836040163484521205071099824752102491969084218131483186919451519106001163815956735719641928758532813583492875140420855876041995735267177742824501180368497837183067211814641235217910974657650409812220007467096429639465369374829449939082433463496355457698733769587118142098811028915645628953565261725916054552503232630661718015196964751237606131636839153267395472883177566156829091704000350541560834817388888485597479631111422970516016203915395740233581108030810425301847296953399264599503376813637588866572025918037639206979871168505096340916608743540730634459837653405746533718755869471559187536602035144907690962531052640527399764549744739465841437873353395066811997643437190813781274624047337517716885587280598701777089349438881949979200371521364686470825008116225045082697671249774032853128143137697912696904248027717741612339424021973368363523149331706142847964897876021924485599570720252430322415031050878516958161690692727351738762098631039216128259615086964036233730588948056484781547889179691202381992321464403060373317791584788370726497037841963929256002248339137448058513940525951598796660743712284386621232838430657803265085467993381415637277853883958414830402515573024544474315704236156080331931503040745366572056990706456441874396649701755548001989759986335473123752772509690597960325000707908509526858294415877467308929304815907926551301324337795824799975289051550118367370752449224773514194928284741822356190969120392599232629510622531197094610949447130343938884931539519346725112548004891594898834046548724140493145487690827517322766945681971824926181568426078507207942530758258163432834224955987406363881414629849874428541803583250718268655011366263741148009532468896022132409207600354417789641923627923355333907741242591334438774847417553882850389626226606327861421052816646882099870297100099898676959015634372660476710801560203184691342621481741738941723197536003378193844309362092468899190667100430150431761227616201344277372269748633535602338570508697303216577375921177810004745481172795783507235291328180910745036958693111932381648903796643168787530298873784580894645050662941684209503805863222510766961087986582518931517829972775411730353162663891041433477527193136642346398403628675462842235125174460213800866337455453287759655549327880329157194655494331158738237807991156151325009230349473330116307555123071408664160628209647050727051252566792304738595558920859091635005570419297831627049847041599144005148710708254148730621121935342173060233113457905624248786482248826935222835556642925712790185717775811874677158031802390704088881329546636557955132202202130240126831616063011113635785153660627192555969477503992129191359594379774807333878953705848937038957953991345671673668457794181608615498932330336711080785280379041700553505427800188555416018938119071101135232532285575746321064631072977287576150364784075085767685383591539428207406400588240859251704290075516331516874501524504270522689914342527006117883986294720737539061204905368731218837588179101064867894261740126847559653310008964129809416007209276725033344611915828091497036774429330730812929287322022609004945727317362624531906178555963235178731410309340420342844304689802163838838236163019532965730918676497636788292991141610294297303430570661916684738653182620367269437642963754619711181301159178108321375892540864938111937074260951691738523179170749649763589768192810330045249105334548877244648082675971399563515904172959741731711949489111256931327124420503423753006909558987917883948737612396488816880395294266477966318572034709907435503861631323096142828985844063097128538939711339121257951408592867030773772855350743042877469692558943792518418124154546151068990196212434372442472793459353446678636812821297602245226374621417694312525448295660229153721912388280783326641202226266849754916908695750592824197205426898305414928069257577766869482334411030726052848244232090415468954008636960950705916429455596552916388140078879723812475599503289737364132115966267360421612428030438642973892504349818566363650581868602670479504017881794267385796147684982090208792032808283562860827998194922458910934602857082395799806997563160297522560186448794711674328848605203741395926031894247147738890542065660947413774635711618895354856957095699881864452572087463331509023219403411977293974110167544057362364056472604912280051914367073794833462968006658368550709162275357883607785483589012210977534475336571361630986478885823164649532234666060821942838304035965023045634453686958792268197313288298655985025371101914813274347151747086558090576544678690527614497921677777968231205612232155527266392126310419261525205070783557848989444451883193759542732845254821714263616660199924273703869400901556852531497869558058472849809693757054244413056759235141368753090498665112644730463134771122582042006063345549344937482539574810198052520204553580227295947589419650658981480142027726403152215516871492867078307342975225887180698932623964677535906741346268715382151959343463850037393080514164986125044706402210928706387566776467669755512340951019786920628192484685848793073601369371006620927253772083424128909373570420863396569391961340622307391956538178209934847516079524285445365195571973193908421425802660891264622242207129842478573507883830566709385124051856864945416037188720671329220726508370109146574512360468326369818613884216319837001346002257545476848476440014222284820125872430748710607866478610783281413474081165365598563454797341190807262933880288047996118249327168143769210988449560646919144250031175202625683624154266717671481012092476371739301305174334561899958528154397701137121928457583754464558819113556591949429094125280660637464406724732815150399245409478798654887649458570519193351002017457527938784145494245216767836486646240611018125815396770480927921889692984261338638280652989785443364981966508720219277429356358373706379668987893162231567702029551322172743157376237013305743718047591110772803550647324438328143110470674464410492757823931480432448986794066689788402048995368706026424049142212033837990086233974603052050419677820528809119408221248781457591462171956829735371131261517103924066807378754282544988372198269349181773550708745165277392936886597578993215271355748648404054647612083331427160426064808983921963225157870914184521314352659794869846577093904947182126451927096103834629582282791206873000142073476903318690110873368812137337879170247438734772521366776766380867811707130927863952098243319590556484582246772356006881563339680138145383542001848219705095722852776288966718106373961086913277812110054205306192222216437489011700429892458160517208626576639287479346250232041202643527117721040761580080407308052697434833783369615204179177919386102029546159442927894069125966237277959439636044537737735080441167627319452102264451351580885550428738832805078791882068135445511466777353284029299345743968032808323542337412368768029630727214850644822845641449837050048827453266556143472571833884498115876005227896590916664183048133775028311081620736566593051180156915525596984593016727212109178122969355328178217451345901456952023603981873067021976515032441913572450777984744708208778686363563724751512199406697349099487977874201698095458678683872151670987192888823306016927578448399129428666259302193074957578222886587315376748900333051523573989333000310474511945578361380173533174216728064369100868636295308102646277482180254360905373513043437466184855676260909860161630258032738895203998670642933926206610532887713017326894050703812665626017543278990197712572310083360975766130436444502439722284701717762593006773304315956193001392532475563000288757990133757977433946818184506179053658281204729214463266577882957815563219653300413322214863100251261474633065707336274313541816613624499073591232920839680467927458934338266314441575975365290788707197190044065230920030390594404730141854532679646367240326782056933588921275452048413278319124118852908369996316330864246553897683407081188630840838571893841891249031346517917275935032738892659508197874016961044001992702383989602228676109724993821121983290371649506815782542127409389945131044601309483033104761108287157208792067756724223858025536407400397627295576359873171387605638424628202053720911276279844516257887256106682980652685536412091722403965130715082915717563690918776214115878017714524384845479248878440487782198083544699600225024117777339890305827645981652433932252751097351289325318065463296713362237323135103346416091149924494445706507267361426830338777438813926633151355648735948712796442690159077081685066380178024742774573381664712063118329072211674002059662262450174827979909871103325084974628316115451425299815305465773008278777158422052811124062085914125582800199896525373747216471258492355570280298423733590121844952053559875744219280979042685171830380532421162768605630985104359681891672490080367582092183036092262836043858678798277964970501427684375504865113719896988085313284986478431521189466559323247356358273649072514769177417208091365852604714780273454990899489345885029814632807277901954991445007569325684642050244357405664041207749647265866253553297582756952441103402583384260554674160253379907622988756181707102236919123023344395739726109394432192616210721861176999351558897991878627934488110367957989870978777213556246876422943757196179740776809141343397178678790146631362837284854796426095769328340258064227020103108487666542530324669717096103412190712000364656449502505761746724373560183790868292023270992230793954657998983614497987173123473783396724538739178282779995533236349036495942621006755122282905631747060802890792902061290241027946367709376208317778991734219010398703516076593901181325644704095888089832626723322454414830186082892385450321363830355035863716619993705534724734125484028390024516093801119810926967810341973759861929645016282335777629125646617135949814155438479940827505027331233307759512817120136040934425533033440772736860338894802786894257812173080272719900803026063888820074809689825743884531531227823879872539258353610927546957797600363714146201453740573742287021791663981043516559962265336877644174793568251191317961463900735650836192410032572574469778664729166449431323637204594629411732503263824275752693232876439143176549300149035397213167070279192631842093846948957191520780630788511340024747584801620957700090474802545945934413383864396002907641811463488502376692072016273453354250244241595218503186702680506428813602897720609384665699951410457886680440042405047578610599633453424268714409345899653752727870136639822253094108797146633376506019814683213380208344086582825182131700145980606269926296747714196875569393039913527532649933421197899054933146190919020862076046999789712256795313891471173228988565502178374537682427638813305208475360190342535093304683762917641949123372007554899677766371580249641203229659029930521890866092721986609694179122132153195480081157669480923597298911930431051378814283248062078220861819491245760086451189436402201546150308793017917110961674808323710355041411026715672562906861506322988353049020314998856786907018340707049689305360104246737959558012416324849217668136320047018177032122289687237149470812703042888548076702908082504716855763596811251397394013450692665264403247821124336468330267943199101525486437573006984156568659850890930941344535281673308645578575552064192225903947965784430993290922405443695677157217929006387991446575257622659798325302473589146322736498731863894414493274249203533401670910653916356594568034803312289450669109836063755065110642531636877684804917545753364138790440302202932614372020467298547369855302543301819577452600883533748817624574349652273088573519522813857190966786165917441924121937406154961845796139406240024838863924611312359364646446868697600257983242463090624513433256702866188186772309872034796419324531041613530867365256472265108782778919947191700929838224458565625763890503286294949956954229731300161926472391961610156158520756128589650028750068134309721106549471352400537466869256593926698040698665952062906801351177084339274611183105538515706734038781967135041558594680313283882826281193575961046927051867123558415721834628660478791347749013751362855719932057820460475022975468499553269417596227551806335640074797226194285534334098215696459100827370882403688354926981903232051438366524388522341325280705028698736532987896929010125249979048116398043523359971050317805020333593897877423941278779561171121643951961764462771295204218891875982984468023600202216682101418915169954098010553153336279023652860985040651603217736020658093920598457397134780880239620508967548972710212354667538427908827280908020729971278379568101667369735231739945763638381710565141960290366150658583916726979044054209727490507634592967494881610251407398309036174466048733317613369323702529170917654227828085893841384305574497092214728744589345382055016476009814100540014164739022304294409303878734707459399440646079107339865323255389852466042079712861337629872564960461127435116410446398428275540652680989819515329351214674085378447115868412374224285489255558898199686682033108169423684366498381491935157893023355349633623977950373402887120227941714830977216273648870949134430578181345187692370120753495939573350651832306065502708709450352050990458779897224218231517900930294216595009635433688802543906245428549316883584606258519134042482977620402488716402387414074901996322338774223582859611310412795551827420646368611301435417740722240644529656350793661740187398602678377585217945197794457835442373824072707432731604861122749841766091543564049050315739730100594471591150050698962865498705690638036992128317007861741722451487570147546504211138118981743631015824967567105036864360218590856378368915139710695920796255656140387233471804828660188887991269488101051199211861609428303426307404125250680137990110300174475754586385461881611300442313280653252619029463360263715786688120971223617772528294270882451193440111639387858411344932676529559689775060179134466549836076007143687249076069832157030913712305547392660455374949995612640769661433874904778402433517877419346446833029702025964803916275132858794854646673856920063969341420996759824421995111385528392161102004533253699587082744218418400420116083992446673897833563055915538334352437476914443706538449872860283151943541611329374823569892972593611159399138858065388493770205798474456888358865519960033836713874151841680560425373474930821177177856475578180684555507567674109887605337289520226068240025854928247154280057558305043060734119055610288993125784930570347539003001411581174980838259220722017240344330208886848826572916177777064944483924129513838397806953849121663590920022203996018457518931402610786243728301914222375986506320501799516444401173647797399869272611052809154130126631385909351819577250996961402943740767818636724425709761221129443932983622921282780145766878134060376709041604411502392967286222697867202201041667035998412268672292906193430714664737902448622574013076119522039659516005476324213649234202266462785400537007754450440000093080192249293447639960956538449400749710089938645926106424726644217132235285665452407321877464972566644617715442933683284607652880218585898952813688302388343627036574926583972381772246426857429909688172727306076276386039471769874783349053325801010283517157943962174212698652544267309696933059599778634242202217180484133444164221551890581030039000824408947121292005418127551516780048126292406062974202138021022974137417930702642394586907594125783040383424014662525616883756585738440968039433527209308863761586904424802428316484767241482316453141348290564353801896836535638577478514489719972807379176713862560344151897175190665409085774493064850302677321435902317136802337731388498437675968950280589032850333890577099350442285979314156618615157431588385142967834233538622986357726040759013809004454002960228674639989063097679783359026396153486346561766685994888198205973650345123760711011042822824747189194969354097160667123145260354233095745659806920392965841375076891223954247958905299453295741163161693213892200725993646649650974139698993620059522602915994838975764807179857674267106143350579597385054313728431411294678964550260973293366676516024992908504228277018381193369364655884532291205057627081648722804408998341973648332361602555978426295673871154909946889531620810401608528649118747214393452846147116261149250279197930313293261977228929069201435052921102793679682439148947407267759824689223634184378331268152482496247225385469920216761446195573950942000666164009371704439573197798113471524594184085016715072528556899921217172374225575068039231146954027362993845999911121452359538407561525143259894092032938911598284700484130665838369391592491931928385887371183471144786748351805129180485363095742474211112411377455145999308902495226348597205506404501716137651218613719757957938751089515583985729141131392007732849406904957616966690876934432510841231609571983971334453583480571571318601303392431826198398133410530546896884445915029954302026285919358691357680328858818613210135742164551585716492494310635908513460409899144636760583102570906111551317588148137360531596715217695172434745242730872702194921644543632259798824612107887887757717571078721029994646151138853233152971867413838236719145180086440153148746128951954835632069812928506598306098953405470767029619989542632499252275613768241694686192252661576577414774774118715656083125795442245376456786493713413243865669627133311993209649719018602661775800078069864013406204249329908768431282619596859486088608847112760470075692517983788249915279049627853920698924310556367799807277603198729574641780233623243606153483202860058459074928149781008321562714300236006932770409947392261466908995694231932107625355036907283939777778333745608896756589557574064509491354419936968169694985463599583798025311591795227411314645064946479230675631399648591880066869228013854424830745644859428128654553856502169454253513353743885722694761832444929250235912676301939098333229878205394647159987737069406727067256030266048667575415341602408252371928049430054395902996801178967083414255566865384599267108532735333675030710518706400523025147615613949744850930869168295677913248573976325053373245176116108137133528030909973366914805962781375951623907298209022230524769066439115120199716242170721522380909596283652612220810069626328350005966407497475535521654534456186581180200404929999363683923980216628918587214865109301063108342110808619518593622918914878107711123058401778055810528018468796937478675412127557408282674295509581967013309359180719319817842910563285092978583506068790018458008307714181329282186990720911593988367815932119466027752024338996777934206713389778090973783738848941224768146579296103799792883933104848167273667879548451686724391355687021639880549103252954056669285919620734440407505390343714712401562709143689307672100160035438459459520796432534024801419192908818044580487301282067140124754188763560580483681568014374116450981385957339413700998035875595232131836734773419337906191606663944507595650585474182455475907556626208201101579303707716224372759726947368120857572662462269516596870718156117127684081229691938914601021189272865979785563451999698802365125818261023871591103900205488886677351948872154752212806267099040530722022699653777847145455959207891151967489165103506530585265625672024563334118837150354606837943401072754638908348033747495193334810722082091525699549727712762723126348452139572128343470937667482026037280145102988474792137682877662486067216176868198722910038006674075132127034041940409595389011748003987033328047935514330453596752329311947574472369226576988470122997891299140937314341042710062618028715041799035542097183085117936809402502086487653738335930236114067247457257342578183027547683197580682307668882833188557082089703900040828183971648127157496495060556698480177238795098002733293283252642209765290812420206316070909177382431109106920049121251720522789113364313151858558055833065562908185432304284925582615187806130340998714914720501098540454115888063193718369440736769996505786746264802131845980223315612702414158576859976331427623388032220829864041185748891135008717169015463584764255737495046737305111379633835053365413178958443806541400552479562476337971593485298506175496267994424333347377913999175844632329453141319152644276576232433604954196712479384908237285176435868439564570818935608820490706744893501388175286753217229246178243007766878514312652517664644627623459446969380206456592103497575972190968621149095144109214497989227838297996707206826727995381660928394736882885932191438316603017464142963663224846597160946842488849024516677561473736035864267497948296969501558615067149831564227359372521253702842306724703175205317022599336137024291351055446434199558517587226179276587476911570155552388935223351913502674780277783661443966419050340084565092358932948661041057886343495067465687356804061887226159176005082321382766096513439359598440818216170694694947913900305924125909579952082088081991885988909374733677538923826898940272084246514792779209661500019627186202948092296162613143960620835998597223566445921038059988470499162267732101804402680883889041131984315152888386686563756520768959654463101336732273366765794169466281799490391620149590825485497042468892822058236248097549119611750080539575236172080921605112445294182567166932804950847832741684861758878660928359229008543612341562092445505276580017828739755065269348143757609432321147793484690675336973935274384059805947217816235013603813653157387795113152637710150541160545853841859646093943188178737002579832106943542941164127034711467365033367738254119349832009454001192148817476990316438391597072686016347529159735494230357193741592033232118538225289433536659805414293783555035606925719821137869343609875423614730385610951981783127888905088216951518243622222318038640882174660186376233575956012222784220455709790529640392634415902188954684306044814007003351089545950903142186850104105941226909324938246949824254639653613955016245699087954775794068231001617711474712609837948360128728636579299753266796235019348691617011474301287823177182972925259237113336311849465252910064637011269230033467829876577937130994238381915129706872279418764410141516261730593610012311618523770992799134860473799513640492945762403924662615268944824798030760390467691115727241520410634957318315713612031746561170948265466651831756159629857442693508372976483560061428554346855351839333618825052761105352555322599101343357845758367096021999827268212883624128260641637430290791837200340071455559578676025816225650532642499358031488421448620408366303122129745714268731254385646599382320275598772364776462172660825171732415351280407843541314134633760477125453605833761469583660786437902771256230955283436276301385642090467655852724444505576992103386207180447223780788714487919594171597959137845577376525513961899609436580206111134238800655300990402846031964913682972181744070244117640918802618713586718912757262209900262952334744525472286673274154195516995193640803306335082250121547033034924532414704888719325816585968150511681467662842749872923600716961180755152962786494056016933145332501526335120444471942740131932477043097068185901944323796656909231424016361231847788337797327092159354218240479669248822621673493850165685257821249013123063917762398268806403964456810944421823748894771272467089752672117342625002658719422691593543253903182224330379001604540522667553233839867107142657725316501438472113417058126809189659605064452880020469332568502927262987446301609935431048620928907943641974726086085159976769548401332548710502595583015794142392632182807640077792044013363941368525748862428693212470846929810315539226745746451181124527780402625398214020243865522132737425683784559099801992550027404874348990410799976794845421029963863857788869440662919900964014458089420059424617519660744359333092823764504285818871108787317500695556764742102861560674708886483303613316026048044792168207823913490515421955856634253033523840489512347475980883595927083370882557334829167390800822624553548792787779920177951124048122357187693736683000641962889074773888755848468283996585213506862747254533606264907066980809135647287000179267717440969549802399137987720167629289193945161195365452002045877193490173792936148589246892547901134855449849048775296351883820934608475054392000849122015734188449312900033648426885264850329916022508726701160307101928169108267799078847937870903213494517490995359950699755197239133832112114654854754350823814628076551325284364864109431824493880760748280943618631069204787165521427013267251254511346753229451202992846460381420597101055710992439808901106109355659529413831480053654529638109556262037769638331075991764121304561715440282601408623371933840375157867132017581676928906800422789515301817134683465010334954157539352110730942666353768020894911285694886544406893743301728440475793909293621446217182729216428171176090597956493782391331236817517865759656681973039211759030647290912762575166302448373642497694919156228475855023646767471098305669003103908653055019371932372793157612081279222432254156663151463964199088675839857188718218704118624519626819921420911341070717323024696863135573004336083118904532577625722311412389865734588481836465240643972214377057860666682968135270467452893848024606169749996578138669030037181886004269657090880695670871943314349245184739651844838665994450094978063965263410998040563743206759760497286212257032409542116373536028561018605070702380696310492685902603777371492744775476778888672285187122578353953896140473687217164115127064384586261790415631268821294305661369901467954505963652499393494041762950944619985570322230988377207075374927908715635584709435641503726924798886901433550501443803948638064961967545365684313907541860288986953099944840088460536821214838060131965888627740572826491839807646650194825655319795573223185018855897270395255451204102532508225394363078071041456061531399069462156035328426382959691176356946926015375571677407007435657762957630607126546479563807182998138258385015769133475098889625408765007101328562477231336892111475800392240336572082270360375466930083792672934203407530163768250055870957820735036167256111931603829906032324582615466915865767078767935028583150748257510875754315447722018381681603802501365930365322489287292929799286805289380074324899159039343679449277934524007348146253001945901094084581180076847025218001896701537165381538871521015613564212410281001527267224931110126383025302162614272952967131885669546138416705962208446521897714058298013093094146515146557729009387409700818537445508325023166441083985634455655273889198245280080955046049776706078982551416397271422716513765889436623421364968014942991993582620814317324574821602557903152965589205688598660407594761312132661168152297710284328551046188396662484405684437534697545154029383928057291669423472857540524566942331605789477284551584504778470437745442944001333724755134833777377530170561444985643087851251254606916807179649877374488015992410387489242878972496182741167402638340203391358958795106091427612497712493054184852651514001297318795529220077092718533606894674029090419619333051916417168464810216687769869792433388835117383202524263840784377764665628419669231604429524588373468963581523055537336095365115736428302803205893293656813410944811610933183733798715618033312048087217219303922717418170800047747634776927941126443583752456158684859676708306137531429362919710868378051514546557780284831277549506010899877531531697557457658238074615928533056484891877537481312596650905778995691375147676182228795129984442343120489963649798442816304111134968680913822065046082604098011441044631867890067661004576327664104300975135049200890402153141529128738706373353770057000161315143563865159434832047455294995941060215994374786818988404632247136638337394082461443272758051733455982101110519243324290604751610787645174835483428449514748612403922604605335872932166204958971867282806637785708799278293361464110092794013969249628009960427163353535155819820369563185662957264403279378949848447623780082382966292062731414522772135006980202533206946878111947319792585016823413881642647791579498086436428489713985047234499616120153838318603090930363904075649594121854887274300769117103631784129180779275235809838292385290001298037452539931977123211582648916161138469514679776420052014009613410222413958351299140360011131006601141136237713786518698187122202144195792711704570041739118942460237013911766550219437241028414124376807064512650506008728047829144355272229087875877400704317830967357213766234748967822736519526735567615972227714662092664760273895080730204430392941871360536679198530849435615927220875897763002811790249952604210192342014444899997296627604650990843069495760330078874609943204615712826818496223975876572939133614063253426078198427272512810883624980388922708151227746102322193510357072981360209250875630159833790374218982545640941308377667864281406955916680388956634349507090379843522949240693948333085822723241392746400140617249715872865198974498002314478309839733540933182163075278204893541099609781388987706005316585812153680167063296097486042827924127824822750531031968451198555537914599386171061429765273650273314432653239033750263387611983186459875864147676520731284992327856724985311776731094908544731139278473110943840670012181587504290071832707222421537552212212005289223348663018145738320798683691550223812533062072959681689579788502571579042341588813879267113548998973266260025914817840579001586393527961590992807089065519708592465284181827881417707964636979438283390572964029762412380387404657948020554350367363842476598136269318083613212798249534372293318109555871888059524606559215693013203972393279591158870256760997898135486060577124999409637091719234916369482726084540979395056259471671201167513860951719802967091876218568301415287351866880332409766101510025582515872644578233459062294779752893266591300413384360447940770130607635560621675041302267439119647343922639905314061645164697731208491145883130408936212884277230459592413710066892040389270296825339869814308381059199932698060875802867668258762885624600185327745754357486992989538783334824266837499851124090983672490532242026703451111253261821203793361831864349146387945814048053265796557058951159655890265586604173850195293603554707605558175768063737714638594748493116610507167043425195942783807697542044598991853949956034656265831173580583156052042830064898021406279697301589264015531490575998581659874675542351372512515851566300795653196332237883675281908013761963524288012389911706964017457786827284561748658640330955768407715554737355808987864071654550975395475877713447900484434855821804374379909250912147415699048004424875075103245263239271914804781191976228687377569010780514768941021748770755197467538696640576271912269885879786699745335107233280037691478182086319199168627129308767514992667923474167047119288107324418500502012765934163017925495639722701318958056959531966412464148081915621613888915857841839204996753478537314184428646583167023714960915713451241077409102423188544163190178016022001378581698707458667159500028513357748864148370900869344601361846593128331184094914383293418304865221598342563197132838928939074855571595018934105892915149792010770571768805198480959250854229512072036322659475754438792915038365462424238991163210688546331666828391992524239913703824665336185547653674969065192470429956720085734679444025181245558056466518218062413644594855930136332698986068801578884840204451504662996808664693893996249120512262088601920923415855566283698346811421218472654764100056040141258609779099743732727716395150171638347628256849341411924216316657760772425555750620041896815148140692558304830375292435543560417796500770852157242684273968612986433915330355451719347254115444478898190665188408636336572534034553873482948279622875766658803614359079105628811135527980630368328554879368587905817175026873619326139250110162693519841477599170457559114950057285203059673973070111396138519737995692057134221483769559009045964594723762452240375484505362385184213063744107413137591671154500020688962941371200363559721492196557560050278885739545310279945208120324714143059606050037660406303900033124675786317323389912332812792988183844113595313855777599257486211864226502099748959307727491617823865057781858533477603434733526887768404133725555161045919643880233829368365061019186969101036465587502009636379258229699075583900973543743982271902600075123435499047877894440758477478485123620627378159041324499173924084481945798411457374858565695007971441872035292924719989487802156246310358731314548262197024643591545887981165761739199062911642122593643876229775606536760679215057439708051600885841686087613348593793155325286598296826034206741647745971483237030892728039110244079601467336341898223676281816871311369447901444370515532779495811896011393459272123017768583695721794116042329471629817395417938591510161732909403666165067251290000250854200477649651413438493345974603277605834475849256707162780693694351822715905436745961808789362903295377063386312493795468865849921665075449880891072082469254051966703676660720901478125408600395808721836088323918708520858077973724798871552833884186557409783866383243904869645077574796367199405438368532679507257456106092419775382427016514630463104501681786238344072480523250978495360499650833052608807436811291362645048738704608871066249089736385631846448399023903630102424063948098365243891536730758363214309199107227763530608252199256689999455985110309791504729283981859255944492542612740403487143845276802434646996141460708108858827486610163601996353000880740502751958023461532492463225234474519785342471114283877225550428708160813855754495623571300719528725999442887862354014739913217807587394380885401216796796067546685586892477721648813365687266612377762104671494494859385210915506768451141847215069378143738847661199183332761205634594281201466751705486634710574455910715114839929432794725590723378112895209963700639408023918360842758505009799105351637891769872070438673123290401415541774906278669904989034977933514791762100102743515661698964384104768535055320476576918637195010277723201084628748575523270828889669924567948949260966533112547600166987868061350477898607612788208874126786493992201617740331919730986901249638272990649616243418977210431612037289596019975156875653015024424431796750033082612732315623001540936050288900246854256709431341074410164809954523995093929802851678902823826949555606556088034170608098052889095327318290429708052614820793652135638953644411927285669435587070778684054642216136702426949961645700511569409977856496550696083787283228955770144212273760676281134483251199819646707280757889720746248518446173994573244548157110014436772564215173146047752581219901771126128267030961356846435666155764887330857873160513126498960056768742072177128630650082453783156478841887208167489471897279080694218214681696600971102750651617129659515133940826940213531228934736760257618743321844601521221291101568083707486254998977404651724663122650565913140860955924422654677701843883310936840999678797432530458358734512980617811002225298579136036959560717478273029471738546529656675057066826769924564513387493675713033746855306187316529735881214292962854010941687894027402020011010904834099676602040419389452772226095876186646726873721711923324446360019370184443504987335754343251665684452553079344868959683617066057332494913349592250937297902412710470643270981010965189124112721007365623571260483920938398212176114699542236574062900007457243954106978658995379051244927548824513673505061672965810684636333533083254742661046647022125836544797565589343710397510692657473352685492746829409283871201185488383338334233641673023416757669644422926343459702812091969314012986868458643319949336854042508266300534192006420579951065163008709120688202192561257986638563201870905688951513265465234526735715474379692407703839954939568791117029534944320800941893068794983540522466732259012871441309639480492079376648283041464929633355071222388081698415680260086352567043594070800388816090508013141942637510752381574484110160222492368717024437384318006288983488623230261705558105901830882879126538684024730879808794622484682316723310303830529978122098842006007992518658934929925473647063626403980944449911130495816890464527188172137250498097645480699908996274025368171282861822465037701212180464451124449178816323436497620044783486276674690389312749591925459584415214972318180680211169155233561345514202635070261784200850804067478467270583768393480774621901832466008636665696142565127342035772568314210479498341468190830477809069103651427677203317176020625302668857219234571140692098617240243342711476094779045804733627978951101861250291912851242837757085852915226661001278157767496993836185502962040304091368265526535573736955977990304182348028932879686668752428379314854658093811004397726249291951054622720165656540632801382115261770181458129920656882507244329879073623639267313915399291819920078703719072803173364995058009620617471001539631971523925744536709827543228342635218589448667225085014038375328526172606517577326519926426900794620071885180975303371536514483249787713997414865071439636148053980926826401022600208523789271619316884746068511469217777936738273298431741971165159053808858623843913378509523780821754425211099308967478383886651850289335676467550624583612421399551246470429243381781199333908091014914247211621158014102099965312732420524661227459665180890168502204698687299160583857598122639250547892203468052130163712518653528980308098965806079625365488181533867703921699418191321898548618650242892220544344700949377763026369681837692284446354770929528928577194790998045129058917394910271166734457207555004450734160628071086424731895927678528486548419520948487481811850692740147835393798505912035793753883771335764294614816494661723402161874579616420115712155080125746116423168436913621539388199827464586473113247424959993734663479259603067876099301119805928250030126188436258663319592845053512623700871768646022507269268889353027329496914179195110984010011396293744769956864645298442230030949678932870386292813569437577050284270896337015641674843481467198507518868942881769006250740792004705850569309856466773919025966850611829741778118028880897855413828369396660115774342571520456436694156667294382862673641662882027460776333003686123713519158843635479522265983289310642116871547500687609873156377912945463146400660299283578296985734520736839865931589062931343036949252241666814910278831284625051955058821603741380985093623061594961306327556646726432885519213857884935218865787299023183395428335524106013260008154231344678783331504874038357903388709509649333797398490441408476938386240584593003801796932744346710740669071173790008858231281172558972442633649918388779895264235467938460162425707345157924328412711105254634590904289327939993717250666263265164425337257822814086619488401363272188976063151736627084414136760604094779012786820765428593723327192697918649778180759068425532238498063768546973382255145279698463378384423055650159012766201674191944527951118880190861968545336727883716509440069829454959874307673808104609471711593178911924031445743487372723760112226490047419539818461415345859589216144435483130885964712003271039702032823133666767574824412215298202904748946377367072628909180539870125829064372951069736284685335764771945601210949101719624184371372377608349659590838354137996073935955590657413436304362838101490248535158892605180681786146576595105410388782078407833054331405944460518765899703417733295727988277790376021039540042505544280150075104806931384104609312553845190932124756276258916117095995427886422164472389581655575525218809118533993469367317353845884380705723074164615256252739225269458510956927507387516110975090936728002104200725053299584590896151210930228522306246137992283194393385021138717416870058419705229595129112520842544916311517482495113091522770677069449694868682019311427831465735365797801628146623426346660144119152966552169108765394621568054363587575610951322648675949353572079196181808427367727613087974993339716046267145927089523950834003564887679046223907751644039653496104835130676073396326874945096648377607784574492106124408717270284515032984259200815635973581257816046960690419099065790603375601331552943606268768894778172480056534926674457840321871410711083202544330637292103505320189313553311232361803475811093337836978681325844047888455013626585940700357212354780550596071042187664395297505084067078249177628774895746256045573938923476878388476857316767901507146728892082743718048647826266818376214495777701136842149239840081257121979414453053064172285077327374253841304363582814891542235216464848627377713103066305404080727175049378613143008477396492917612206345538930524416227474834362207126468192440134789372334021380010562690782146653386853048177506594509586180525761592025333144217662024196114538451126176815802205872195231743319126347314468162141703232812913591372097935471855218335250115949364333883159824990090740162155983069675550869909078762449391124666628209467310650982926124262893727173996922775488686970238317197040012273001464696723989824054860466951783727459990474367872430572999843180301891134518048530341449585255511130645172458731197113007416570972311680160058106594933445374963170776337439911295596177922911477908810105164811991110141700392605968486330199024717403430438492340295777367778395808673702949849743868178231609793982458572053145155152872838481208105004105218046652346078796581788433858207628960509688887217526457295549699041495657308276695440117992326747251301189302447531521267452261701497299780489096134782854748357915986128139799478686199303685134346676876560220787178218260211939857325084262076989636483088469594517335135466135559291479002144257835439737142844485305397908658437116271950588264185255870093685493175316897981078400293642413824392546119699646448180104705165263090796667314677611833708597700157594934484465522608033196315151395843777820781301615426088559408602693221900807707083882364958427069679067235541612617963341603971210992060559298475521799251706680675597687540308596589182461339778306815030364784799739651154719435300654975206476306946771760516740789304471701115611430415174905754107151244343402963011024569705095315305919827250475374430337731743142596583298943609325399616811179003885625955849293131656812784643245598043222989772638049556348127861569822824200772599512802780508988893777121939437243285269006524529752342322911492531032198046494902680534964495158027304653672315502509261867638108965701012204031818171333195275921120677858319420548166415538101203948139802284656605728508778470394501150220175984982735714406536379503059274792607593028874852007407022641383374773126561331034040254806646490008743841815529488100441729241698555374250973411343309237705600396555573906863124024287190382295597277515847614054962419500893499755813520257472928650860542900110789267983265592571886610969210518420492638638295907565276588593355305891042149247428470045517432826068413673520008969110008949354207692547666810062851908559425576832806780708131102472972353512255632427985113406572721402050042455569334724129210837389682238144842594732481448452819323591470940196345534039851722031151617468234528693891332939414907250777630864743771502798307914085692092307520397091539765941785057733683711156103545680593715669284252479060965192589677086111654922444473208740025425351196812267348914288563383538226041748750739648145592125045245564306266958932191147984158927605613821873386940179509227425366974145490638290222201006926876011445520447605090334422829567215739643095347728456210287165607343364339468175929272657995603039656806776195609147351340446297902039287490838700757067431306035285209467786005660725747919303968161076026512629457842118307160156451009827784420058157859407775134580683231788834385497546489344727043132131189006008968113646122559504302364446286230447295209001595512143386354716693664260482415104092877910576050542926817749635661704492389673013620529087813732522684526787933369583494241837625731424762765916683212351343202994657552866528192684056529750816950780075188722275013675598415052073767994015105318238533443690412532248603966343899206895536979719718039552892762217764191120641784373678884781853882401133912256914539315311601595845332402655789048240651700303136423955806674498599792290719920527235772052006619448295532036266236279057741240691549900966486046733448396858990545990816827122945063603010284278732302625708501657164659039351213554204076466317211757275431278088784075652785857346421194811786294149033337648369523448162216083013532596966348171421099154737259546956409292721210214825161777075846001620834193737513157273622796802393261280542416190929146212987931616073611053746846761176477159896091248044884562161355713832223255352005295747468724494265580824062038008536574506341828790907168182485508536293103027555975901119884956056914526147919431172588734262376971162795081688833045459991125674120487241441339261059817837538575501015767916542748208293607836739364970096481309077179289723653840867515687529920585466903179834806599645202836353388889054622503756756542285673951635477894839517335382105668768203026322784407192647994298455770713447459920738976339125870948857755654340973311530526012953143887483680610326561623439246648906420138804688530035115938990098466424816352694869854289021071300477919951866074671212216603032615351770979137245621417646464560756561676289206399016376428830895577238950723343698365306698492997843553632091892135810332485361764978345403742938186285040413826159311186716379283616834095744506458369220068532466232198029417181957371593130323852782172362382386143341573442570790337218659467944823974060218675264754155368523198951958490790150350752027196313646395079670676905050805734151026015726881162871130657439561474067152726239373207719303511109434243797563132890151242760896631612778716111127070344998877191652837955935266042083635598452139951389327472511789994318691934765543772905944954187479875964601105986776785203369129006307767444072031185276512426111276782566985834836370126750339880983689028263628074959078841053349492750129836204361847495126455194478567341705674469221409528515588879361460831529932288494099311034798580026211469347483688326559542308889011395843853063045540496589622165345493859012644235203243963751861358194322808341668732180832637290462539261188942912799656250143559402445970578627002492430637744261047299742474834900594839767151654056745678269673716120221273895264498359834953672605095492425327839650971403329565951740823480129112889299189319191566679782990499771910992386797454616490695284933611351158349273910071131971564663087275357667279189108311559468077728067424961847436236558436493141382906189753978772983889520817084526713875961513780493816491115340428091015056377707466318303562121677677779548914369210669301022284997783815264008400477324002198539078050708282768009465508497032760670730375894762785428303821892023882689140670508837956085559357844952246656547326283525187540086925726520508168610839081548746393474748823518569276629972262237110890166581476581593358412170906915778069697899167271061303338246854959757366258913752188728791701906373208751321309289830520650672446145621273514006086908740256792933072156696013704804902687977264838377597815434347277734402393226998620930994340853196004777723728909370152251497792247400115370821678269886403637580483012280629409511136350822939997725410852415083504890152291994143566125103280202237061795494499802716283016603633352758960537270312280554412180961780341149125925267225153796733119948847427103862630381514416274420162511500550068023446270106270842059907421792983062199092677665942539729648914909540051570976403602367721862030060130451436899920029068639570028108225441477630323961726869407125533760790174602596633871754247491250213017474879868981387214201998324799569335560332499647759473165207953623416797995098762994021174335760698335511020997342822332962998681569180520414407548195660917423641288774328804272463334853203722087225388667558391943633173970277646711297685773946494171888041537732730996944638245571370321446332257053451374414226605452464871284050597311189664320060340530947085692936314154656007434911082849018600573171893939637580617345925340234215492861663662871618409206818657887796817927089461552980971258464902970607813832300804189234059954206123788146682896101106697319743813354623003179379120927274899998222383715429105915233310494590972657875396930345965053899489537600771192379908757584176972675676141940336315286079052278987030503090772032620293484023178693250758935097423156741959089929146883968561489124368640724688224129782648915945177375287857172260282382173365443920317679472981310310305758486393467131681291679288461719413930376344968133541147686393380158459672432643647390859150732551667169574631945534953701545074855509207542829051855507936663486268802532675921536527948876059849890397325154215290221380831936399781372072238646148514454249775950539492480839248226233659119037783527280464802823696568246454564301913782622360556257172405544232474835400696775032516695263073506494259267910595956292771537221620205099398161766526096563516458386071488706865875423557160020369044877508814865300619269582399547859115724246054927547058482956611377601296121782614535926128263667814298014321321724240520488709828586599683320408429678384490134085794488577234377406654494657836867532613500463946936505170184809327870534127615521202719841923273113248700140650090388460296784865910177047178854090054987727287427567030233541439693385817956184303808385240485317164080626692393237751181776187058465181124389932789864571319239070081937211001356430850849264799989236246805520016515534045144408070489543393630498621813274636352451160487191552891824392798265728025881385620294883355287830702392368257929682274384441244253772798833375616134203533997293297719673546892736037809272987371823658443286076797633343283469770691577885407816757745913645422876297130402943016739196620461193436914338187350081031630564658562800258438077213822920880761386539801689564678719123388126402669076467349146520233613822000733245982943861481822080663335498484393213633376942717075286909655669128292305591589943532148090318142543820633673360755933725629377446644084741649573517071629784856374969309175686736297900761412989453312226612351857730500969387184132845904067513428463540206893201140729209698182737832748507360290274893300964931181022210001920094941227104985321486950133372058602447020989966162281291759030449693704428748761320957672527116836951650800297013989854839085406897170109814067959554156382242868117674816451600195048158368736219265487535769818256515976303207774671782006020503110266514992815819604756049905911890931286358085343959659846219795205358102247960216584667275713194439038259209253226150053964468099648490031575987821485077368073077888394258042075329792242952921339557532306103861269372773092197510660878422613996102945213737568781829845108958701279815534429916080477149429431106404733145047909106579579664180080521609899872749070941331817105788793030076547287938968956610300560427801645686004049907460811646165965112608288109045179493754721399913632454491363841374542857445977514170960002380445101910477268576491083799877466377644557357286027196723323869638000613016144478783150577215273355196620664906511764276565967044805734644026873473486481538871984688302772886314869072886243324412435888286584721807632297859745321416233685471237885664452155918330063296107833195841468548764721601640360978067698179070133477949469501715395921798858643560535223974198534324162089763797044795286764462941114444497420274949904185617791947090481472078551292022855752659804316000816117763554382140417429418265293022047837589025947873695778864387017071587376198143405487850571848738146038954229178288494589158352635943927619432241326410741538817508658967750671078895494374699668403731629675933979157045958327939391397951716697049790433548333877406952503755743367054844783546944649962867901575548142680778686850129986990614774351833418715193787908604616113700169374693368043251332310452934078112005843982632192054658344201845158369901026447593542532847141128332363453074447071655211496358215529948666858553660647454743005250379640606556453598217867326044747791564688219118168143792583627279411199224577086821057777831329427946297564663464548962496133499314098351825166349615589621019342282441204845594255831964773473158151088561923341991055427177251220827089678910802753442382121647239725592163425500014846894015007239055455186522108393012106141925956229890965193191306130430977843059556091511034735091077559728396436638003079148289745711226191526972351143692440472224764838609842042773089226740545468495846937732105497978357076985507837581336793993879658895489216556222144733974111113643354106903489681441712283446726280383142853617246059631787524138898081329444659566021547216777376825369963098401968629433944103917867180914135626276835960302024764446037230537260308185103974847015075598454665765586598235799233676514946345839165116213574324093742508695986730443715435209323286215685284672183499985611988490776900609207782609340624527531667518407299314602568379714593896667530367808310251975150734824009861453987246182676088924444751833971576962260221721066870727322553719123507990420698639156086832103560566759858479207639321275538737602359121470509426591969125540539826064869680520047666873633160997519656056014338066126293075504458929021816993373947054544820787103545920362907503141195706379976608995522077186854639104275408310561512039539978086457757664143323915339471801955634397834464789213233724554480166655099023925098277973954102192856936274200735059794533328136347063096325217964192695555153684196554433813518545566309601273923113065496783551942714797442962276836648846841026945228547894238042149493893380018724807272657082198431732112604824167387497467740311302718480243202920551631049990342050256344794181864752349257311487326694935518766047068459968256066676989639116306805723342155125578794905613564783127140301666688651483188585541464322352152429408918937329830776566120385666051760404375105442300061347155964903231198496143736163692671874221895474948116666276096811069014069943228362060059340842916906849869304337937473526747507607952153654752007593199241420834805231404633633621076454110478225646039529155409770792868504032810124376820532558995491967917621379844917106134394571085661491774609616519329924481575602646954289238519224945846329653303723532170110016103367096352178275307934469208827058050300174423590492942148573495172862540321262732159042011622629571818234751141485859489521919002547633791716673159455217666662762097173482248481202309818033202615449460009624512250439741240006186694342513453468541168243704790651703820219065241300655407785716815017630765061716962094031502310089248624330189106902401013831304634053621047227428101660551669274993127543940499703464222926162827338315186128866501720646228318123957160187434047121772051555918184554981809886067667055310053631758596068574594774151209553522242840866254858222989034997904097756146112405054391667604903512704351191150068119227238286757379932659004278973636859843314184708731286425655889896458339257141269695158476546509680563673883356611135838728369295954501791261204774034467242825328914879196301366559530979963630939263545885576313942133181072899920526461361198254818890906397699270628317210249802593052926185523976770682990235428672451002740481580154466332389955837608032678120712293997146694046309373564531544118954425306153687140123590340476132639921107663376360663106673024860650549658734943609997905838074993006550615018383289333776479149906553393137815668518781723984417405327555652960539991188115211160139975472956764804825703331342176109632750121186699421982487184520044904984344352901166189207141739025602432958128008288778630619642788033566882925887841186299768602397216708254394797282608815832390116987893680235821744838525145064873912608378816943218417359792771432017010297912075053298379004873351859290973765873916720775221637765601069162239613322839027448029659597538605597426372655804843685464360404696466447036737843785808921352934159601679815764783759326842764240581161917270100189663585366402641503479464894433058380682482207159042497807072323253442413237651358835055739870308663479151497613053465966516694989699885316794538530455608316733971860343891199106984455409154745687349123847766828881265227110355726977784435911281597167185795566860122107573673972059326540327775354249913398999754977840627845205888394288759582889716702313810748011996837247353242961329642568894924549157281554696660159248830689716898921076218779040892171653897605290982275949274589863474576138112646563189965969838270844477260842971112161936487759089991163412091819793933565591081322263738681053341694759072912298316386287072416065716686028348399904146062962987158778269321502197515156774583319554441809098025138774699298734484464553916487593582043487849515692262765465259944556318154656456712440773940905854996473642374906155801032149099026174956892389908292826934877023383903475371761137487975187496661058899761518885228401547183251901162577992505563450074956628370318443925618781889536365671720485770199283730424451762627904578755358558663713933301970285554524403847524689754075689524976709010203066587399427941531161455003510352679511621124288980459438220571045381708235849421827603838924692759023267335860352369587899460279442828866835109894641620096613554728304404286262083986348431350813413308473764414843999501264242375383130723618855168344297201148679612771746245957225808619682588806906762413033503088421172420867202161382547440700352450119806352619866444840399529157099442549721718228630584707990454098503813079052428111980626983226507914724369202321692807518624139522727281659701826461347694339507667436262025081373591673503659368218280403067980051403597009260536488492230306840303840986724374021609424804458782467328365555805041203402849509423311071261937737428218693620852386054759118330542550936993027489877234071858443399654770914991445784627983472223309910879808726595218655821626627726035642259483342630297969689193551628628637377369879882340212280465652723461986418884002795042094042358353233460504057816833238690714139955597327351045022601556491059482179090159174180325770959411964205856693638879566349515345532751608468654531183804259278111545468451562114850735444538577307978690718829606042880248850858191846191421094604378302857507644593894406031637246742344396456165694105774601701511339749221660237296422600240302999142112254661013866412018254013261414600424427631729985047981334664494121226522511175429705689548389417375628532212619835168962331379641719615641678883179682472944028877287584458995589380990594729157578103286439210935077723679348652463262997242215109168198597478246592699780430092709949333726950493718234507681072364984875637540766525008737784996219901528915594581158990540892154478719081722545714987992307867864591042609583265316515562022277088156779288997838723642911562777445062478318960579852812316939932026422068693137736864645426758275866286304066131192173315645629802202142127800011366625816677978159898587285698714417133572644964172833687780551877961662244463321892405779118320922522745797916001026648272627713834977777234336384107949676384663003246042085925607596334268166266320921681800555966037726549060926215761068100099960037339892297488705913375843268908006295513031149176526618421263211100200607164934056850182967215712232795032544265308170356807194375021822591746998696493503275467882034046909323813853472132687428939334858847807482350016010345635682549251234793183105401467118194219166829772256231782636553446888840816234461193565671249965540399462395094057304174259238621602391972091816897949636313162611987928059944663386823670987826463342302740413396572650462066467611670005224606447062386864920349250950929833046876724200838934095581891664205842866077559473396694689929910048085249935205905663082056223446904047576005994785212399334193434589782982097442807809313161415326752858047419329692289218625518736499959907431598707947889787101271594978208767861009561200522257356747176777485770768111250914843430000766422588631889712833216025295870889822654040175007166079329755901186445980009069558522849903832539603644198451489906191898469494956110583880667373696101351722033394309695617011205966425935296417698255104981729404778733370960195554719218488164504410649425138113483954530904065992802317134097154002622327846126337897959595682823780632912702480287020559055734357833867128224830451296219209626914054004127188835507081209205607217751272535010188444377474076294780229157974684808363792922843004145243377754732969837693100644977691148668551626553917412233712224362164811286120146890941101511117896992197041120535207476642750223176639674762957826684831943586514595547851991345494703338969767097749915386078429669290210728863819560009405109404534949941585303712524889816303602725749879949228955142047310030733540666515726653821324869076799560173487185947731968553771269135131206716103270941489892397360117706084122728020597802788473681546329210361030728662103772569692904604605897954026566720693127598499140849508655577863540124330793297852060535250490741595713234254561595130507999562267735799896285735630820176153476705579508684944476607411219741424813531355497967959029686186362687978287563908762221422839481490527516396391716092869672449297340688038472012612285127799199721243125734462790134740479553343535580266142942740261099880625665219149955274300310515955187974134511186354280876989766405010008022695989863025451791514548413806090036808536449182475887371564889490379375921834313895172704888520608128313354117997835964157007892952204704913909790236638194481943821344596526509588299679850775711389875496508148631870132376352879855488411684436923510455708805766135163754013199400474843082522102283297342167420033518610038609691900135720094185996232077021326655820940826439609325192524232292087527864473283599006461545656382812748579074238950220237417260072645116429186690309214144466614789218788870135816080161747072898860963409731643834342213788124435121804455144016360574300224904928233395517827575555369683114008713273502802912855828836359057954723042764448067557147123875158188158413777305605646554417037993955469296472215258014867955082247116328460591340419208856538424959306912145052890630996128980631158942907431754857750716531302808664038145433204372973548793285249852332756575998652300200442494186031819222379761017239488364969833971285285224057519659627627456793940771833116314184288975645326890198200563897913896845623546521950474071030716286233534571131420869025555855413686266906465495687672673895033464280932988788727849109888351566848826952671471836086178414388662130730051155121621951573211198536047105990929824895315571104439862270218414893412082179798792413776380011831037594087774374065313216636530749412423278901368329717150397733779394522439946927229594870718846365830958586922535155293528273609142101061903772985535102114820225651544751892616846367818288045813331454020298173449575887110502571682965529199881147583464877272302463337049615709123430720611110941371972028032114984890450565802282934485325399085047485952495954602211947421492320325620349922664077402436196228872669056582536960999005878198154928151280466847190789172909895126373125128284367445180830194512831660146671071322466128060805822025788939054521967017144287059112941904950918384855352900512808159499234384740331521725649576276782211963263288128563781386697183950698715304189686321200714057413732829456505116918565263022571013976732562419814465301489920719957840663845705135766434334560608841041739757659060505944400632589621872852416961375661472278798799540675459199377213948513011722861020508400632598094587020202186646812170549997155352590147422878913736956230868365641210830769504877304567091390393855332826845579846696902584311135002403677987447841138926784314161854510043443526804765472076769737268077675337329500006169412159392432499518785989365433511645256558387247452227330681457603890101238497931881355276085611321476708618816482833389790228927540148615806751914095742501476390070900677854442003571779510917531251733792118597135283787942074431714510955095430019594593608322529874652731613393273215975524563814161275614318811702802259348691992052801846241349021687151549670559935600003437609919149493764291125001725585727937564726274925638734567015287329062851686372107779653283808764562200859113394183951582013578580812165430631577633555802283873045609841190489162311070061654144476189027133712482338006151241417852542105054679420417202592271402242877668368034974195886486152359299743387849308065137936279941029997231888114613608285509252093575890544251119484934465708335421402388525021791231644658734905679180512756634162558442113136274428229362132592784324630039435861500201616292002270355717552286911708030139278513211472595857430311407967599247578690153431202247156204886371942376181066814139373049637251981392670739205443029507333375963643988200936997580779743018666870642342111669840615715234756591993162747979546774230850592176079096596305141842739709567210468169562390436742030875022615671841317959076920414491285811162905488239787224939938931104662917062364729576064687157735200356973703868343101089122012967065355526433744999650575869600998241259066423667046852239240556657018366285294670608124272914919570097539704252340400574755511314183632896217019106179657665668729556652845795164063222243793952445963783472331266959338061796716866942251054632417759943651144815896890090494499124057606134843462644772199863745196051005446544783325210560370986404336331354276151173944756826629398540007648779884534535562119016553874781277125799717168322838941752836316737772515872307898374892891978823979325836721476456377811204269206466069384938022841362906301711010795823059862004425735041524633213161594919829854458348111465104480734409830035165559598773598780987883832609828350504574419347217778404953493751115106907642314818550254766110225391432731675515084558951641230196762438853011402766947822987869083358844695254601693147936104966541288673315597865468121586363897131055981787410585498130675199988931144362217836557268247366093340850814094539806566855507845942458157007404864127674689595548656404474789893382521519006604762075561439579690498972052550292511179690731350487528016043953316786854986648651833400399171559066550325078748538815546486104373106303686482290597352524393680617687217667607683384132579071373279761815381841688816193416424700132058847000082483161657616343434998674110869804028461638057762300973157206451116096999786763846224769322433139833273193060510537387629897412402217378672489005184914852699670963703957378394773348135507468694672110711135358478006828192183160228469396952722650726680636065957099049337933502093654649212343433678248270767147984349597754017357378307426085361889665233804327216550873303384965006243204841785247885350524969477235347500107855687219583897928561880021380530516798242646629789424555893348368837321898980110380109993013040394273523264555553887859787533263044715653980261635191770470863105784847403602232922202964927723311191722126778340350270389079593681106376507325523386816379321416934026014939706812497693829894043270674760655876160695993754615047510466671054671959623328131670863094835416727028502314393237230158932129302818922428148397108271080051930621625283559725353346036582135339007800399368348923355961838737940756183070234561680050808199621158728595628571432457370466937250880814711951357312999631270645381158738015698856498567334591584998404112286976352363747163548888502108847702629338021925677299339839103710886686382906439060756768711378465587234887150933647361170692808006592538927312412718699102299666794261636079963304339319825414636153853011830126737861573800334027778377289422031389622296795138267529988115362235140230918158086301523129637688374999017083185687502716173498993716958403491455495792631981219507484179263231374105579676580671988760288765204536562212678815821555222416243975161797763470656357647315269986979920138480121399476598878800194602637898636110055167662670511021982818896470008299909276354491040861181846279748836386099814417651527312802015136419012931201131704164245283447453705497601848930706788938907956882123733273680509487228918174964818003042488984661237987808580751951134567145873947805476237820606334075493740158559321668135183807087270746935139367020643180349384145643450172394590252532224174073408649935806430735888203109606247135960102881213635102400273159591973826579873016640274862575885853303194707766621021318129977988217800705083639296912396070381902754617767650383490005173484350730522429886502452831353646145669264577982048669340290415381243318180228161416014303846457794611026464299691665840804777537783283377434581612097751802625618433273405807561771029964896667855790620595674624894714908000759563369791629803196943144659277621709731743953781449605637679552496307499720618843403530309210652141451100984716161506263692723011441090661601916331503064395508833771141864204546830508205773016525581662229813393776735333158420193551852324949195688240075847854715376409251630229878819084076906059572630869027403171365000900140235430268961777216757483656060978166520813075832520151827516246098158505147991664113125885277962255413711885805162677106107908165465270766221589652589379292741182204645384920989407939084262337239766576242086018242158846943492465627342166112324875776499034748046472406330244288315967330895720525477913052870834157431748020410027077686992069740028022088379265417961427343637626796342325238364378954062089339103786039250987207700032016102630684919656265719343015647012173036666633001324332594205910319521991479573591750848082265278163412802591058426041672700163523443011824270874465971140586142421437642983245245004396862882492809108570009585703870876888813266685400406427190996899924207874249724745909206919774916662234310265264792305004836248452078292468304078699551796217868092083437705529327078238812284950028055709746802408903628881260632539064168985098806571085376057013705062349617694008580560084135861037797615099001539963501231742272366790684864123487231778516061853056683682312227230730478362305626267226305162272322769781027950557805164730941122907427454666197081388212259901459770037302296462146271666700226966807324481038482424622075042885391284939271148015356923524222535912913249738310269753994915853574276242120791364497602577876928195792970194764337312449550111308428271898755186672418767264572362812345012451153106268464944112474319138505017895598202478644508037294898816614562672842524550902113801036560738304750724938075635347956321800339399004990068166703479020159543402321707761003872999805467384467595716344641557820344995398851227677661855100822508232672398517143775809352610461251550529341047683645629858524809497319384300058940968564449592853141734727147539720794976151070058772721102731128666663647569832588821009974392195099917764931056905831774311795063024698115173147026328377147093872873451222862039455565358596786189449978934421103501591017462489543092946179714185616680953489172851817823728788438428889490960948237278805426342123052541725394670221278355808627633301401030298371990444862998434321802066114685313715171476207261185457498459250632739955109039310400193361546323692325931532537327313300704738796311111635301851472453076085281974716940722250065837955966314631512446178834659391378496385578640786634367888908398665340947241045964789519275912873676724097276428095936703663780231448542662965769311324847423723703378983863478867672941218014965722141100442017538534986690889344684175460596201699084869317081160260997002493587168709190845260037256046957279785174194133595804649149788713721669727786064658298159503058806847190597016471484792139243989935038729881593794117820597723075360803728507556399666113852387314707409691148041114137807515178304145658624857329644851323726705354162045276053155809801152565817485708677938775619081287507903361720515406788621770034849690065453544895505526954126441453665587586551803026024851470836778914678609825843661973866022880825214760764410873290225728326559640689742617037958899717614668761539060022392188623390911386746204043439924637732409617118187520663744892394652378410848713372552988099482811306894300290359620525620812787706481257955149069744418605352899098158087301521910246231774748343356104617567920005787671408438029806017943911343918135667939946319174322380932505823879976039506325081731969406173367135138361412528127548133689297935804202607240670544480524857509233974923464529558049299023634730712512562000490804524784566845890962177537673972501587624985566245247238408859860425256923578987972387040182289035515358444857231725608633454951621433960792610771429590929899567989430327527213966247735997966800912516414636019785742658880899580191787832076968074223083761008066165072840613753620412989878921312338758643353863426697448172720575400470744237822135734689648455693408227786723310293755523755497583877090087565165580487643528085612226835531484662209362588989306295120247411840727275618756754230902787634060540749726118296697141248931139508473974926073595820446136448232050303520623356630014062651477526568614305856620674324739521396590232161326178560576903853160971711484941224776901849934966253259165017469936645291874139576447931298806271268734671737637359631747306437106205980094977093732750551418532106112511335372845955030945497658755230035203702120996750939687218782325654666374424074135904233076495664331742803797833806888645816171408125525239687553167093356577175480697990297760277065025714396036722117836249393843100983171339803466052522810374440886419814823570403419893261202835794054320132375407386213815603717264221658145077903228532390523813258567364148983452852591699499407860904226762755457932426984851662503124460863490013165861960686062875659345285184027821008497345970866339727406941979132554324507318582415203612692224672820781348936211937733449772453001629755960699916027443643580618715044186589303474411855242993632414065922974634253982875516598464480627618307928555354182686984845600859396466028327024448511527027369858581924306196309307689370388305158944993945778956154616124516528415416380114518800524108197443289314319739971600641708347473027359692392852092798404666783909631188908998474096508240122824528340973499410503508303780114376764724116762008793462439019327572024113165591063831591948445189680394781040346050192356889389856691507700968540890392088819292547950680098539469131396551885889650843444459616967090330604705719990560222523729878935865371327927904773172305121472841382378005854723257759381420932150585411502879672238742590683491916231067592156828095434826897812839867799551793690167042454091323398659225380880987100231122819748338361970276355595812811266854052839229966979968604279057668328689186676008748311718286623359541898807855422788944912563522672772383415145432336162170636777672946180640501842287285284771010002574991672993926773378975694124888403621157127291171776716391293750622513704100851940385169050959231371231760570632864833070010259689962355405136552599610212463046241009237050352129162597359716062302705486262195500594167971220358520490868284398268689419493720704958173036215490113097502799341867990804499247779744221948656132128399707169249653089189358388520900440869708186639387229371801479066610969117756867960976303378942894863901669144717054140662213327906725040147025669687087051525797976148639589498915222278718882677322531837979152723603414481625405207154304131115310936619809035700595644418400899481288929937005043236947433016100382999491304791249034002497619410506308832167016857816686989138745046764369377047899174427429847599285767960781871308203877700023867695021610852629824975182007208812141121978238285962930789365948227718973634952181172600820223091458721917689603878061272364092462765331168536900054245924397870166003935508304526110987736869282678888929490075804585111388485112825412543959911354811331448740183010119502989763293336342954762530461007421857243170603860569627535027939598914858861428566811949314394355813114195867256706581243137601910185255575198523055260549048473830350495793501339071991131598689764309478875814442071945537847367261585444748490299398452351859207076644838406456935897894315149502935246764508340850724622550938015368191527909208077815544725618512623154166633010615627899706357644873525083654897033138520395069920478803858756569501432714982776205994159149206227276414406364768231721945703017252289050282358284733483508796545293131079436387503007795119536652208752929660534624584766807792778433213017065945091325786702228430150945521313990506910051016919963544736949503065993815705339196952012306389232900860959742428763326076571707862311421139505633069415729933083701795651450278411490404032134865867850657153098004915522128809369066307799220385273675466193847536281959251273907640683989150393183499157602421797060575416967128968320345417809205555224052053764906634374038313239467383281858648268809401870312791087689149530582062384105182801239587236686791643296310077428663749168152769593124624414506383399246060333523559345689610613580233253236286282924276229024099191161200014077766623647287734806380225239157245776989793350062782876307707449812700458791889971149350413709176609604999784885521761274653438876628773635516539227601459642331783535812610584072099071237504735040688227339883757248576016051573220345448901740018706997820599155019187925330666420349435937722722365414401506635980858613405867273991050093022538898941473372097390410941415006671791051508969188645637628970203331408320795822827220927907096478856425098120310943021714900966227147057273819107625773813107872905531194347108929423147357325792513661902109380778588293328202082562126738727087221954599500762297177677760576025344950521778850380715286452584138607723672820460781095019701818461792032907224999261436514851289841760526115484031661427138484687287608213851591642085328276896285037897281401230289146228080338349532781821983152796230162278374285526158203810027325836007940324986566214238143117588439866837018709598707906937373354027925846187973298913980731952850129851505931302258266025084237743966674687456712533231293432888868880956476471910547786137854259112193424156534607804716253949622092875914017287541505046549472260718807779355253599528501804491412268466753451491472534152062017260430899171674056464784378161330002128232808968977442364553040977292098729236626983561574393929511585433041587305098368115343386197147191305805912326827511677848990732885985692081640276285606956822193177010885681063106540404208341733719003796898607090281455886967499408300770721868535274271267111253760465574840518509024260891531900574888957666207690232916366639647500046964698287630863150773119645460712754957441142760461622588021153316136343064540078968360641062432959742956610517063600515583038349373348377167461027509158896222107824067554083951104728914588555521227376554978197949322093682281706860119072208356380865586335952841521906715236171971345089581589831462606614440686627020908659965312577795786320005794481285751628716957883229799254880436186553067614103403186227751106527154959195213545699911092106441957145003398967890647715904394209563260990073710023357150976014687897953874635271548329160922344048704395046891097766023953931110797441361912822395284737582772183231591194054355799873882000532787145891560633970137176198649321464380982866784400320723980200326205409420256545663973608029684607904123896448726942651433503720798972397703157922430077219144734612351373716234230271939283507045641326638315783034977268485598717637649579307792457002657292962353769691415896153146791243346067360493037064838401065900694224943300895214869995626409036940740368606983796200389696133976636551975839457984790806379318153997442238386786430315739037175049957495828131719687699446232592606080990463599411071214184751584324432838272517454015961709034000847607460705698291424816500325795405999126933424640603710924473468205744933832237634588141397606344970987442919743985348839876298093700629742497367146157899736131899740623921679072513793409876648842604121615680269755990218916451263151632548775131239647420632209117604451443594079071893400826227390778035961702062838902551913586345780815531300645699513092799941198405008050412135196037009950842996772431027456909206506895727446263808399454235247035536175766245047683315936032921239183172681321167024973496911248818934714823549532694285629302421111249506710283153693174069754804571735177197450261360435063610104628659341409755367054254485925360837260507160780292578016065119432114583087694994028243256617296029161057517128275249609258615202013955794307780471039982246022643514088331949002503555105394602265940219812491990433873121616219421741186052778986234431378143131872937887965722121285767143153492965428138102761042914814071143408397699493085430408217803094020042338414637172229605578413010170214973520634160094205953071251564663608937178002888704445972053513923806753338107410775045546626911017226850075003922652535765985191132063116848939404013497191939307123935245313727000176191621165950484643661798594133772788862733454897790766050511803393448016720455298815086136253078077590590237858828933954252154296084759495499831061850118408161704706943568195276280001735424983099285326888704533202473919556862348397380398503680527254422011788425776904836436617833503116281626632308438489325579793116070278981020936746724872292921814641190635149037699480647958977804299766657107420515879209828723685173881470506839791399509868910522204489838148791012215103588405163301169920985551215324246576006277835597492238154967808625851791295115285983965974886668321927188874870520063027290098814396150031813314957470205522449508402590969644858554828400568665369155821475468836124337181857067045848475051423390076722923023293652149192033567273723810413581904553329670127582160220219519435198620682252726304230342276365764699669913388267159121441216297802047095082149648222654077061569141974454010904389378271752087747427544040039492393158434155656759230633295781711330408722095370179423448337462829640261871552062450559204304067216265574111046900329671933086233361343162539767906702292764988578214581272106401570613422671777537003903800184229477825340366664431530362054893964704754050584006141592113486347698912515221909281493064387426406281554789332529273082418518876843484637084031187297718797197697255020621613589841416436076748606452859762263929815981401449972490816246289446208400054355654294342061514610818424141210185580070596508726947167342699783584786873293212160381529407919579810231555815881969085308437159094567224635197056600623435265667384086340560802570246282113814856371887615952243318467637898929712559331687061514523315579834652002459632693151837045015321423125375801775935332444869567386347819723492683952747566366041005278084610342255416056989240633790318783277389144799005441712874226360041380771133280536554605222508257031308891375194313011927140227274299541688048358927664707123750648617181594687826874874072825989844539000735905992176496047913979458780160257749307585024714917996727002815608433907007012714430918915384191490925735723715692926991119624297212827002971641071946360489863941061960303306491831157356518944667766117705263434287615431036832357431164617217905247996615183708167770994136155946316163442625665750940105208604815403711452597768566420535500364576535145474878028404251461587821804199991562432500213085026824228878146075241038914837231197516656617430811497877473041864669440280625415767166315028241563309061779475256432959576138389648387570290255441198982172759382407340573062023281814923814440219608800121642060010590573001594562763394426886743596922254664746728063927609262232431106176837943944823470770675059590217116976977918890517212111514129646701085540807026706487411868833059287784066284264428503846741358437921413381452763869249486601546480331526885426288248171281820133305705821483414439573468766488431549472767374908041877368950444197435904102160462252305740307052357268413536064781703686793218536869516182081487584110197669151281684982678862945504731731435382495219389560909828115288893586881688991263059995174772513767148633631513798789889193504579840886745625812115186508679014077129400420500093267869796990541849898634646745032035662505390987767023638894559470568179010273521471427421142188565817263755196509247553434600173835300221379016139346539889832217618102276574318566455071284735730868710005959739351145786017227679893099542327339921151283329719897174685061627136500941188213582016092694138899762232571575596892900796877221675558759242614589815749734299454642484553849295743718179192230067674369132982349831292668732444703078594001439770075819603068810097781433863960593605469247675589075940854429423175222961716133882878673399510240195392279046477199534557365258111197567263228897442224641836295013748507389748477733932166586443804552675238549962018047632997068304526921933289687433320523159406801245166984370662873061009821591185902367683988906341558544820125165028763082456844342660823089725337412781639772380887439979230097372224910132613685725342262258523414970438126656625177469760984324233800921374079535885950003998812110128509681777743537667768290321939028261822207476213076203719394941714845734744825310823081851178765619278443186656443427381301746583350646248563140531085178721918968201032577679688326018121439737760403999772065378587861082445236099789319860523344132189828143245392734309159707496273011652969963196900800644974340038479754496944061698754008670086941014639333334069742682795805779439189755185566862050091662758004336703162954272310353564495502853456823392058565856633853980316049410928337121885121602562599499234051646442192610473183590727336537118473480745803316828702149359684777138194269191633621550911410716191380998883390885734517666376372236361734835491532329363935988593504555004703636952502668811460848428376455211438172348512279463833043503125791255923197787455397732926710998786876129044901682541051753665928164207101547593492696702622167482904103575466771601646799340168341836077940681661606976553221473053028225011460159215237123384470483585083937886041484269488033228481099967643609352943858689684025941752095085088548000186977443554122290929561216998666219397134320846322619486321887885940966317382359386702127018361753248092197479701572051829026693459946290615685053648998012520948205291018392864647263819098197561330434175106695294393976259708730969437690513576039213075576781473957789201514419075140254489602561755453097266901159143000468037438016838478007817316835521219106771428868024465104906091120786800673149531579100529158882983159580387477542691184651317169112150533912965685944689467978691218191345559185190076616417087793719922813957353540490827736181025269948732669120387243018086776545485935005796373022910965216722922206718226941372950183914048411830809158559287825548102477793327348826578195423173206676647148346500575204982710899053259541324056580353249491718535606462917186345279342870432153319650807630338718573584915859377718009777604496845303321290896135694698736690516492806180459264539582418495323383523757132052456203957332582724376882664803605084961419198613105846617739580208676253037003672020883075099113775015853091815559046932635027406087182794956034210670205285148135698230225527251864886562494566133379197500659744606822323073247735835253672576559140494047773580715304946642883535707235712060429833949641649743062242931349909522938038518282812926489203148221028066130093731285250928704019649837273052784994332117271412228359447454604240692719891756271740911407649509034135230470245169832118396539043071536478884537463072026439425391088438976491762956565233737491006631768730307204378327482915311052105503876173616582766823529994533434729835151108790190132885893567967858811599901055202719842822656382279414262216976687841990964974330191115313292689862502436476154155478000361175227402349785415102740806061434907901665612709347645319058306543169208251638633550491425331440726080410236859251690337909856022815319416235523596078004981042419248722774523773965956302651335265155277143480480795870159553336015518672751635189713806760817933561774188683542327512352612510083498866318877700663149744313978340899387784929317024475749339534323820986222868822664115102390914914722028892207842878209314736220079488771196113890488369677610672011229519817025620809839131756866482036211501000158670210955167932647609653086606594923585626118362949073235166224734115937660980595123493368341349899714598905479671327820688703165215161380907967486980425388862427061307435834083931807580227193701457725914805191577441625835778302316288078276874603428882486449705518958026883717753970928313317611982213884441838121185548300118413982487944315030220180401223291522551218970708033860326803079936100631132607487201845179733973226541139143762419534906279584523295447010220114430055083029794486057786106453136343600332613373059142687963164090502086056642718583668838331795272730818436730051551679599081487022621672875772966802969482745916604027981759174614890177494727612607174768073995764816301249024330700341062198491523716639615759529221011402057267168549579862237136130664018917085008348956770761535253556241622166512215000994965366246186817476239004152980849038212302511685683664327217823075490623172754067582604652488329388999770465424959970529709255071197643056609135875771949807240985095111124252891564078538112081420385133472159823960539065004719580025807563514499752760675465170298988797869980979306846805238568481480059418956667166185966803519184735978839368645591733976887738125708797372231868356405979854660178283155701723831675461047800162972288333134983145329394702416577118837791879643857393568652476984725308021602814429197516532561830930731869735234575201575546308964336198337024893951462734965925925877919374338085777236729248178629594208175820519574153108782622933980320007604042095360917297168373648107509527244795405748937877911267984380986310893059746947001899083026437733970137143037156632754396937473869271799678579216305501930861295832796374185912159341809131078554909157005393955833632842099389753159389902699477113609384545416269055135864731033637979517780211944159760079597568870129661930010204605491263705216926199242809758631170244950071527692763495365680295123639145143120437978516163587101856572407050477694677686044450367006964989959359774673662030405997413643879469802317424539283761992572992492795159269729922143746440029216471618833855218767785323833538297736998763854181515164449119566393213941303289956389112228584553350015497176080887592852426303401274679490879586640673541378158797484745746380933697934592564171984392775594779980082314352208703248810543693990799421837444019933958605423151207335608600877336036866778199205384368655533122409134972989331769773799528088254329452796073192351160965684270611688274402706038607449239966564983927530373718172909406366581701305519651466096849453588554662636556777064346093668860725109526526568603516308865377737949911637927460712331538188032806192039563008202267339663414684015708381633113184770164802743115504830074441109837906546931739433261336218139130654578522062588428032392234402014062423356377372423232077436712781491515202445219080189150910942384205052158148908847715792393031118975768485200993585551180576552558877222649655811992618683616003321771727882675564077503496993556228289267101854792469534980205816381241801474194172808801564683310472057592653556474421534626963121794787003449315509529700231989279927545490944621797815083921319003330601377400191090878552460113225306584986980002193063559827555572066497700548064264133879658040722383162966821729799144072808158735186841842580378677942692859720380152604081228902325216114796647694024044947342386994897197669554188929434416910873709456275797798434523910436000027376766940948858203617252558432191039401375362021144773486596478349279022058603673702013117711309008973514217187509136082340932689805246853006686513822880721355391567577228710553779267959365364200084615012305643881727447997017817917071127464810572952413646232797179116728935917492768806293288064331096705648837491464038134939824612073738327414647288012090534624902332114767202842985346200757051116938820508321068855994108214294773130327996244101898602191946437480664128534047047459594394975669668162165435767920397171491855509268306670972175280554384383048739588251853133985928129922765730964195649634770406908881166914965746956259491166090154248332555103799715156885007422929927195956516297409673209556732805388968949735182637371731562122394408348991895666202248725011865952326530171635369473075430668833594244292365876802688204455727695695247324135018834848202164933014196091629615752534415694406292435580603688973960839383671069825240619051073465283391688729838804588876168573526628951515188744240508020542608215888569363298218623239137762984162229531236667027446329128850449025145829494044532118696916381040886845316934384994752511088676548489203789440268844545218837649085258541376254005972050549319426920415090810091965965087714242225175421569017663632177054059947437986437695684134175754549022119375168543269347403517304564278837118370091241061413610283422065861818137645829688860413778831543537154012566845190014848560684344952853988728034724737914542352509980312454554952987362117352635437589078342338040716184830931773196401317007464905905360157197818530509743665861479857967662568750106387211278293604670896899184061571422331362461191376696291471067965165757573486813711080977843430981622686158818382043328338514287382529234237142782111306037910496782495129160249248056263654211976633027217838680344316688310699625467661636324208316225455891374149398078286911348569120844649879150249777244635742235627931670350286859884437408319824790130216690700390913458165470786057064773977341794272676022204514693234267352039920629238344862147453702263868848387915864180179062421035931618909772533297138787544454306988250788615849951228564185259007619588468906559799119736217583892130118827446087367714710526596337175959130129874747540261901507931306300406392141615470459062582605459995529556194506648115209121810216634603252548505694742621302831416674564793386027304220043305440927735007134549748770281495972319621959276176623170386771943941259797121534250222076338487642923903561843533871442821518307247621251966405316434548595629507714629885120690172724562157801548309357775862981906673710718833569728988357704361371686215512569336139710307870592596936368088461496574020332713740450759535027786685206944970563319851444735101675292389794947290849264782098292679440670220037227210323018443369516518721521722428510129234517449914876903650535522851879636571089364536180004086577586686780525507751308639789710434629872171792836870639725746594099024561730389533334824234383622495315575939676659528162558499712980627117828129817327467861944167796753618975144622052098448164171008683112600272956241331891431855967369539519541973776986774413283231937558701410558950419085820429768676991334296351526999146781131826204057904831552319078920965988045482505021903558254094641955590237329698412213414223340318675713327277286628289030643833107682028746316102079451533897835648024830891840219190874503134991299317440989701956060124974490799689206680494325109419486212271653223772369517028438757596378150493820141515777081093785006000274095182893069237601056682038889987600070829521007539533763010401173683504670208838957094302608714321415743257127291377208750652157109799571934839543790072136960521491530930975488769395178050879714277371965352668166071642063443056099599184145774736029982669945246049460795205897187138882755112183350432296680522317999513379804680284930010560415486954794053786334397678946748907080650554067926173339267643755798410919863934172201058517003672043128035212139763746264421414935502279976514416473288067243997573182779349655566032993863764363988278205875297390172850388935643757391876739134153276420848767374778949098764481207279382791822417674095907135822444415455289011092759842372033173496673357522384739825063854157834975479046970072940575130652754603720528710395801552514641319070779986700048958987960578366584248031843886417295686214869728967995510671055801074082375050499616021421048116076653349530023819909004545330162850078372812541344234092031590720483520389202918772832370709203269098451927309006775930455093640465327425236806171649291862712970032721498629742497981783326916708003203093579275412484434272962415497135113470163007783707827000251928159402246574144850528410482177889922591634234920279143723590830828158801683818470454931055989687010406183315966954505759695843339880728260509094413661799813394966149499940784683579064426789526810923429940329714966796445345981792604235610918274467776764527504798875019113365815366408263010883355197142385901288658978090443441252644460184657611793141591682487120153997742262236807768732338988292040438354624080749753604740650102347337528534185269126271160644341257802973712783146067119758678655390624596113257516340392505238414655756365714083044320764823567533934351247240807104191710274981011982764963980741510444596714254069485316271763531754388063859065019653801381835974909856494337744461383132814648588273810673165180342937724434725714062048079830634483980047658517797289876783236522113199101369006786652481855697329968041412252764256044550701710623399990922777979445424718233918523776267743253960929104692666844991685602941852348411530801548526315067524721179658341935944898083301031176383394171501510999964113586050782305186334207017866176639823405434254131825331973408867631772088858188496625711803076193408286851234532592714369910747564097049566965098984654366084572447349801864060724151411328879185697121140778744512840482422090971571794524614661084684105177179897415899257905907563967152855039773951040667288670786515061767601069411364258852951360458618876996984472420894385763829207748710650327144775356933351551199742540929144823196887307637870190230668150602836341123990858729601088192226606791685164443270515580914069224738249065047911082169521677572352970333283200722686627794212025040872099589944269568111226301307997259327570354868517005818250486127855855957057144252135651814183844551941239254202695440341724963268882736520574091432631771664452814191818646701578003478119181245735657168719872827554829647357812789435148272521913342233666341456574582675177649781018688970200883309605904137608407826275299031548949713227984896479351742455740530909636106901957090787472627023085878307038541704844244901675620634821055912331440787205709504896088020939915922900392777107550439836919681751519536624177784292139830015152376304857745770632631812281727490197675071759661320031417905763284695108634241583863329946804366500590411959003907308473906476255798643326273576588420653842656435937749300081425791000161868131027930484522358136697380780536285337868605327289458259730249983502942145844990259475625653466516148309330563604221517426459570721508685724500687156207799157075409028531975847483385803855758037193569312630032652827302041007551678717976935825119458532282119028991645163686619959979642115631379775243879184775246364330926816819171822497139755465410431712321084606174489639607290628404946510115034561209446270036125682226129816950742187334815151575416371176053799611429956232945103242777110912042791846466840792070551288821942163806503846867101908234601233737548599255376389677768358716637226173354605476221698435123757676154134308839972223279768030950725851253697763262426673864730972101349535314035471462079548340059824824953722370452662746940072514329576734532438856573545951134509794087221876837906121372445580669342013233546702117229514508890966881757799746701871475184187178535966146797655139977252644342282594068404702191454955682796838494560438434686113420872299492551895887860345199968134126086229815452969779232248682171693754480277384039083957852199610420937874931661867563124594943013180508904699356554832761294341036528502581987565557776411349350904498100923811732704679542023231191034174237231663150554714610987432637631219998228620380419494700358483593782145755792821922257571815520579832873583413443433631832144803424028832577571996477417578448282152108163794114191391810380399398554971469976141459341006445100966657889973861333490776325231783435170071717572402952837609170804545295371938324848998827315594681354053906717095535266479423854459590693534049759374928212831909109376317702167153061395442806885818475192546155312357950497692141220823045617423146366592597873715438222826984534563354809183189672399015658251464774849561092000335299569521009699363685481085549221218125181949907009716574006227771488898016895325250070914861734078169383575515795013270959189115073212714772986913790361168678699424874258767975163655691995173159582359757403576213984165832353433985467445550237262686562131572690601693349217721912567046760880723234837695125305395651297099199799325043398539268086085391330642582970819209209011872319803997313647078437872649628521813618767426783812555443260575038225210824000406246006933734651612683318208604199160968692167348389434262445040075757140752713330377867369389797084070724315053918419023079808069064212906457849762383402240401354644095284455725646074089265542742140051319866986542525393508421431697759811948292893530534767211251293887590636865184212572466144889866296830960264623858841491079954238243913069776334865022828593473094300818941903156676840104914433920876432845281859486544035698575829146240230192953775422877179537264008538366397436640440810262432865178234784047864279205856015386558716602502755225122569532415792376853400330205813463119829266321529945214778992606033888602973897774919657043610564078536431900738351818763503617653776745158305296890900747628205407472518362724857772248264126026807394523477324458543348581874960301684927264268516697895442923245872781548640066857502074645781717588124794412645779528952924366262511176214282175497808857293170809905721120544657496341537156377476305160865015087613415265712526114580962643009164455855179948392336537589410372584772287975625217520576451253556140997523997575535995145324437777489386462064227541712128220982366472665519619461539605097022800513361772172439373196917671663338959356559507488362452376896830209897596468773669836638844159057179737543338645979934485789247053364013041933067022469547344739175025005665387147458404663710989170814994669221188710617683763329615284007658302022965297894294479245040465132989664511653684934164236546031897026545767004071062869836892697694763680207573951155831078544399789627640511097560334719453644357898884113481444945433984201424567441054553312084933173155754782448409507427543235633803951837100544369179985814622358769119164979373463089442575773405047490007473061850521192192361122903446107668488633272056513670673678017334322243726736329500227838810749374112867721295345793851413904683020592280276661601379155717499388427899249497009739339556694971962933280468586997268157903769696777919588097663810597171538747897774645636686442323581478592157797269136578286215215107139563184728139971437922231353485628868251046451284894132597902883883347626815998883587102949916608218426547313005670075511815310853163137626210464411996857152594528470574524786747145862602363871899422738487751637868014080339149693615753474292209146875690730725253383743614730486124583842917441030491928672806333406451956270677504319203020426318537505731632280407142443316447181507067693715138327235439609621924268753797423840022658887326000871851333073611152877876412571727524771584089628866159886097494708909333761264620267715394997122490956787570723590216897230697281952356416652916909569330584965920527124334025046918222140769657616624192153691142421724494854121040348137530884045109822663732345484072459063300456760319909660330234238643443824410527783477957211893068257398269993293990483250778436207072076929316747957820174384535174957569876043869752466059721615770871891082141551752524378921274364108534805881277837113416093618274885716171231479829313975856125522610387814355952211637555302981565148390815604854361749051495432687813517166455653956224989257917140339649002146813241855371307922702144087998830329918329160858353953908357888574864864644938368443770659442483497781688936026488988074671666150506952399161789820339454610914250045624425462039824243097917058273679155105024152157310076702815735755088019770618058892160707347377540127808973412669238290256575724535118916982978894603917967144560392834150126797509339485226241375591608920621729438583788575985680948111021264224478915893082958491037166800484142737924223861355109791692627824526740424361597700214774933774879732539605340519346268702626478489160990821314010708907391745523320656944015926326007000677246448186527958167317383021345487958580026368561639346158424789590589401355811773725521541529663864787367260153291316819211461941702352590742100044013576398233786893566660673471931282460414502758024514953117292527495574969364906387600700258691798947487949722719294347946618321868370431258464920222105316972212086824099138054081084334454460403430584354795475741399670880097618765894735218350006362801529072240048607948348369373038687297251812442852275645672635892039941937639993764307724366405433497974830607946982328379945910535509098857389415493511146590374424228779110605016799178739570096900651664209306324123818649223679738091219856457750466832834160534854493626796037640190372354925788153567925189060122831099842954913472529886615178094026930921399476270363984967607626454593059498328337286775071808784146425971738295366825677664661507456707841263436530515846400351310035825690000334322214970651726478822519861457389085456341383089158215855659995379748303395775771462438015567385011612124571397042462293288996346192114080781097325698057675131897130800608457146193981994723613383366638026042804915402717135527689521835215600639043281554365853873750695878886768901918407309190654858062119652691050639915559012584966221377678333311315485409598406042314227208857729319360339418660017273194541651349212699982437337011878256092272468081332728583660685051853160125527857689417343105220652465995404188043500799265090360982665601422838376674382689034461307230815559499124649001878146845415625649752500826025198002423613785387220695967361140531236351470182592985752317692968406937696690852769365535874020235463845744238524744197293704529982020959753439610149138057961154542911772207616925433557817530325769483132316131782601217405376165904488274942455347365366979878980874444267137888570754967306714186728510368238418385685115471718642787038491016913037929864010847497208825419071904913482337747566533926989749785673527480631632406018124465178601400011776828394558217651658573042019670202762840741405544008882948987732710858117804968190389149186910957188488919968420926771326397921037592919120415925284833969742492915485368345286108213825855622602729464215435033160247234426073795716587718084797042083450932237978332516843641587049736685796060130798511772720723707391614978248559672839249158737890041210661699752496671413488815683301858236799932762605130218911102524755988852145468072274036889471291081551764838131598821305549711443016937105141967304697204032304790687666751142321945882491822349570337878797576199095253884190517782811089110052650865185468626061782821461423061938556959243367177870653070382146631445258525837968619700526691169132919840826222693770517232272553106364560566660755710076330455623895670304881131429327820890575958010286355874359625554187048153354160232015757782808277583833093512528810153929724310427781115559746796942721282200394483927582912132936708257215883617034097347399591035482086201607315228856718818421840328770573790526761600723165969108901841406480267979045990946107201297103895067868975053970836565966580016582583057604392671440341278308425187085397541192560497267923116984188551990516551693438129697829918771284397573007430622947154182150075277423030902029982486158788860969097187013290955341179979215671606340924717193370508882375862449018178848204386308147572982378967119227698156616321967648831466698069688129886031329821432421266311229945660338100634734515191982469920111473176227421541386141126744431396526356295297067237394723153511119753889752071100835329355018449299846740725452782106618516144335857203510428816803046839261227375302728692735480773163693056205386962007932663925523019127623928422823730537549168945563628122135470602953989663344327953796928011157833880762529841768456123731031903722331240526127050436329418580798170753143830699008279296307258623826271668756840360401292456890003210665734590110185871565184043140121471872655295201316162007266160880334961011032399168470917830486134537632596013747099063175199929909217019738560864536568112229897840342187551352326470735262366352039390985427748200014508162953009333966796592030954408467678230133787949484027759067898730406970390608659074627708886415411212058110453130126577235358222661130019277030488079528935586363309529566162246723798938284882232866005744049491250244725246872180419106712073529745918697211832359833835329201558689355084471364890275708746146374093606774414175216008510914056631783036443857072294145519636341751649230996494503938855381840342085247257755785569938159630819957441148237952551830986069066692399932983828482529206156154580144340544656144813051905008250890223888017382686094645899684864499114038828746926182627422785054759315360425992643170255820265111375395938128390100992690232584463773514206712879033727847168646885602571666770731543595837670154478309971688055760029830725081969483349890556848629198562960770791728545446916643407563753080309915318720773353668209245036275312292702933767299292083368645168862348435350068797839778034558950998105976278547973809920629245013719046802363391132093699334684432972660712255103549279541532942833403423941647094386924406190193914126002958878860414050881426781260372970764611162488397320030930773823452079999211502017172144170994057583950949281948578985546105400657555943605778543459784667878279031394609082627702078921998483716624388220268740143474871608536365992267248387658759873124848361571672952864443036628736193980307476794439770759160601490128329014336466031182479736461674515150893914946460866120067733807725974727254546066423264268244508324888279735247358009413951322492135565314705538127558732624820031825462968653773679588699854027354780352100849379154370723829553634524842000976366632318636360577195557838994648543633497944641158199411516405340505710138456438241543625195544948947767935115174690814760514617525997350070881214064914370391710721424240909618173535136523771340473173675751989635285941246637512710429658671647296495872340399292991681495120668369011238131282212060034161457387460171320197782284571676466751522121861195474094596134057670271987955746364102231982722610947596902433770876648530197613574764643768165563340759472574762477216170877679583979643880706442644564525719905273977924979942492928795835205443537627248206249726390681762013633575199487488170763905379089660205459334152844196365953901209208001023612001226039060187822799006354898806631944479235578705783087075870501841316588216390246645304123509465765047072023743729312920109142138203548606620377774306668540219998514508411888213973267105506903626622566856256244783247162424843737307668582211746667129084047857506805107325951130789418256747162218426414474594205413938920153898931174443458385743581141329015722238802515258447258049357903854764228414165430272208330190959112932953362654593264582091259497381607330925302713548958793017792112627392078028092569199403759770950379000922051951965386535132185695992687415450905742044625963112820471976378735573657619843139232958151777821150014074653869320905322402365948808649517711671528891312712837985269423045951107456787585270502043874278403341118983266725006393399943507313773936001879320850177050763463324035202939750237512120437714386206796003231231430383908794569121777978901390885884724740208822168015910528811955498849520458996901868854239027583133338942355517911233867089903114871533785006785637523865458373195998622253766533872066277375228740779799591002651259849474090809713121739654476261738447107188208172396997293395604581667416740987649410154569931495014281412321205325099614831481274470331842612424977699376315726275757990372895888043111468217870296729516028900584320051394331414913851785596630495278870090213916211697332414874723868548639093121225500742559206644702768170238174231593112214063025605223639560784255929934808592567786891281015892191111039370408267840781152254365672611279287556525889165068519951767579959866038836258013075950045834990940051619414433205246703860118924822543714589627314824127961895905187460020881977921851914256130155319022249839375521031321765586771026442227515526119478817171627934122046462360747907298640977719880557679807123614497935320072337003851712299744976201666230387765414607015056973459745263973550326312218089217341200141183510186375431960463871412981707006227233532876171925379821442295392313478765773222133805026876887128855072225436916782361919308122452013513190451342754096686636214593607662705268045426339919953972873993159826184287832663042337816291749600804370170096864007404867732519094754389827562699498470865050866905948654673957730704795994399031809242861364340530086216777723751039151561805573730480809446341517028552612791928814681372023767926449079887288556054957290972366728928062411236451710983639299751889941620643697234397373852634796345702416199434181713378827215829949736452420218471013186287874620986251385498552452893189857324840157353922858562839690726306756320882406644074665067043946412936976068998518781916933367419062457228413790087365091113420309416655592109674116515395954154518833996390869068515243860465036089933846909846961304110166418648384836880938544064329906822356267046200212049973290488158601805642564415305712422591018705056501976957748513039792851807060232683497382826572344892530609378618320159789233781741030160845699406999934172517682100217589895575534559849914577198577549318717090719434799486532359517299568106707329822335083660399054454420074564090752681709287227309654129680984480901366890180074941312633613148726737283801863059253825316731537205864646401723292870975222727493132737988927783008743434026335698968564772815827266615904240169820741781345598322725173540476311167630458433792965552287552988647809584347163053776459943607022260436353082192369830158804900004962521579322468977975361366914435907197839435111336733897630116838702742978383615686057185610707813147090633162926130616246634740216826413929544619480220006565838470997319540621647957888435342860386804209121872355372933908648244493548945500446918482290276182596364227620801002546420741710753999045007297569272932957072673103140378150158472423722702718786340569393558938397330722209445023167496180173581135982549946281708566996552701559218547169489496541914642528321407260529469581413106289008227739636406111523753893267739197168255045880233470528061639638141569408297759161097899770949169028856751852364659094016503318605580827725582169532483140722852719022739231539849704303927112554028120620024407513216082050165796898839463748551832963400019082639783029262808473055031131018461419181861248192642711396229204126709124079119410121382073916914892462815125693812933685261064301688743053054441029098819085391539007687347901155593663795586465363875544408819263695042095782983347414599715032073908050620357744586390089599706775262899368593809908926857273774061106332338451780680272394337098071458059605672713985007072039900986089536668711815519450514600155950222260540397964421520614914492166598045778748485890694465262769099419071973576798942226954068125291195782252841780891920966006801664387193893997490200268194257942826405790810497483443903787182789534962760611703743843654014624445551468747492629991130215867309776912637031835557916226962800896694458329855767369304073942589456281486367911682099466154785245914024634278129180501210692613591625798793639816488262404829062462968455446682456692544854292604287590192287392812277055856960653768161776100239835982583366425842683599654854245113626275434578783394772993357642459715563097151878655829139264102604287374154906991994633912785355418949870727156392188823367474767729746714597201533017997431720042245348728813248937658880328415982929235450233353659945478803893894758186541175437755603591100846850187657413388478513168837291728659310332173143077690350415382969045787231017050666436632977769729457442585988716959549351424732785350837188522038421441250933045873050700504796711042904321078692856500561254115626287442287337102765932010462643929531765944883669263313297705943013392548934154651189097619695251637705335308988192105131906322352529427324268978759175091472779135714320165635187704814786089250016196577956796443854570908325486308184198636696239673104013392852772502885050711338773303990654761273311688920189650308715158390899004616501699493779762029656447706769457578900022884103377802166919644579076257205925306624589320648190620126923123548823798613445240534807522337992868112890766859310544649387053918508344731776597484716133154347835587687148643673255032416414922951901271508523610022924801728585168163266139720228113842556299339357411985442658892390675927262877194861546877370118841126409698714420177203081221308828884014488092205621433889763605837681253377281759271619462372563053816946464314311987037872208220755254107510881689740449191336020375114931531011914038292977743819388952726273245924552188113876809515451580386616565405035278657390275660572725898158044907366393631147551748168320450168382656634973920713132085033119567592067373428241087431335661193839315826813234632497813928658872095172577902896967040425170843368913154756100875831255569497956058724692115591317663699044521614549358086564273317332695825420106778845336815070188328046214561900120390981043921151298304896607115237976803120501919603367785223482962317872807787994257859034308114404051824296946167905339680219012366484259446997084046793095092001004910531381282907842748193504045896570731239874604887431834491645970413753880423446152042132366369987940064819652685440640079902721794315532548042592723952140266976365098733884128739795443345652194492349430579996053765925748850247718775351925117230947980168287263755153696514698585446573796581323191014490975625380689734603004719891286752811212878137650947591931395115926617489905610835736320436352675109521164154273660125346902891114553002529966537864753285731162587765802689805811022675536431796355636053571700876568299851565506418164560470715835981680524750331995973148513863846574399131008823490250203646113233894247611708929145302016295227056032254991214705230757333160443729586903678308238077779824433695085480837252525511482818220574915226322170162476818596121292206921270667692011147373412580276641390938265322685242305686210441263558970479416525130936907258352473134173449123856817457487345400431142415020305738806605290185100886154098806342080084724470927470144660734497913019241657616331914109859555663783142781404487714812370432179413569501005590946870111624762466847894961184999464532127956133729035129463402717771792686100319895954035742799234092606603821272361860096458134744883515754054714172479084273907454668560356239033812227678397335181926186938258539936635255892605762286685546737237835554157412643469786742008225352352555013044288805256021656878622345104783447011212308519160424695320176654737113348652650660434746367096081241554657615046467768105606170227012381998897303031171997613950652772078802849613396468584707376155700461948178318813304854495476998456805964954892489738382688881887675957121832046390101567181216585294140295274769589221853192921145668037088635068998063021352996340272348099380882543777743028130395080223242069439538144068634891675979160948630730192092800427368708074979973072197194281724078613922927254071888536236968100285107142820284244689492509107914981309724086461529943174174763336285714738638047223795299414562904189706748060996209228766212661324488542640889489248975053430708140712950258285207350411459177170802753497551687941225649506301015302962196773840691449655203774422934787195934100273960018403825286731180510701172205446653697411659121471435971583388033823054359301969929354544776106716487320556276611961451177118840287139155235380112054950038706644652896549164524776215446056657076596048295769882053746910648851618856269236538906676349171597953265435517487945375622118168276276126525526117549844314506620452215278111731849907365579953875129613793973001840689126866136813973332972440847503992752184086597208933987217626317911308406116828919353635390637120400366012318334633939644275150308744550613577658043468095928720467115001420426807489654917949138051812528520357952098074030005510681858863558753734128834803191246035217692907961526802031355817187954111626814898720876772024111790080642457039678727957119415873054675420602533853224196338709720485803379006370326241156982877169835717183088965680646069448033371591403672946231994257852071570656497248960419249663716180586364684028027184889697627366503060504747394637160856377586046409682779019762333721357178537123949736233880597466913696898646572707967708580033285041686629255009061638348080645288837798939521650914343490501387565507367919850846777950461549156119668277326535580747981205654179966247975396508839393673876186690040269617925134746792820755945843288798116289779774632472169850215777570663183264886501637547966250532604211167157612759151524835033236930205695106537994113543413762741717699534408989621110847847838265549767334634505187140756591122251689976182417486305146877361052628169376061666398053218701353851461112624017777569075875506073161366696543312950771641411857116057619912265031501979488835274643502113149074039920229568419419746007831552321873403377695678517142331139164966700441778038983958557855229651964074131221205944355044456173276664652195352303089223473973101542316214064150264619706026151149253108741336028737131784793054419130171567360635687654445309657920636196063235299113581506927054495857884369277382231615251714602122035566292817372196151484228741152315552845088641067461365317401697248364009275442273233573691284694306405448271587431224767578080276432474997667384865956668503145360421472719936873604336261286420205985369057390531497567778735244088220100341231314202774825059783498254949417993603497471294427740059742910622691818937295547264282042653680487402324776460165174504077262521458753114365108061544184266861062997135006343666063784890654896353370165315699864492685670732176934019331651432437301500193442160265435726521059123609694086211173038901403876221654220221815433321773208568095180165158793999828065731905341276612532371209453396711063693154070727984946938938142619973480958598445588353113882275756531920747017773890851918075931632067618706761636578197119705679847721798170264924347579643295996770869370850342868515836513443812762379724172701202180024201299460570258536879715582378915719112437613798240053655510750925879138642792356471307231447496582688365718197528315599154512491764832046034341152606325151590538717723903849115563546164183864905963899053375782680348195970749968205223849728876489383363944194266906582304997006783600592028240409011643655516737430053486493055327570761372907027717284626233011790227274973668892593004913365583647320692144082171463640304833828408230553924272310255299479375682478013262013274099852837001088188457820055510568010662833994260248737055162252558585223364574982878605706877839686532812809351760004536294516223186999509320285112421157921460433930435745519413374511974654234890798032482852092803776250809073043730485552865221964625763050237290416324365117639810534085224728210746112148717420859220278610634779086758646495304365778101741308275383175246493596687959752886804393725238519925567574206988311061736469265404138141872878646587015654764113334279092008458216819812815849562144267742856747115989797111433918207728823638935121834499147014359712615147592643027581926286808627068289347617000795703550782851386247722171971344414180865609202516123999060683594287640544089777034419162363062123142322367199192756414264243954551836779263034436474513979489511314468339884065406981730788854635613655015370403322601917792936061376286820985272722933101749079878440815140111011908108451097798454660472676592606157981983736744790554200014403389696574091879520777546710189420526019249598925316683410312603324241791875980698193038163256565394259928071255679387258448714311289498071219849388564199054017351758136165886178344120448110782729000271152002008971239215297622265742489473591302819448869503880854021910762904856989219767277545586696684107051242341192395743804366132018209322140787950986334888038353119094473072904173564902399970820791465015571183944305702737161738937749044296449596914500527171624569923821067556455165286224388692353376555739765352294606416371873954178900004891161156030460863988589955619989899374269954803711099592599657064744780276160691055584804246243830105934748014070440029172240726679053213932780501761897490465391726509404682570050473268843620452351400970327890738685679311319618801193996670842139184430057814287195246354849853055861677648633462378324901318240165859890816045550331297589835884718653840971011332604926891422820028784071747398294605950383504874534256511729285405486574210725250362065214624301668979684837975107187210486701896069794239146693418641158116668342903866614680241429789609383122398360466993326724749213258996803214400157603626949717510127319038867045009308546727882684114898751008025407349350423862564989310068675017503652811126579592908342836093006587412874933522601348378949291698522239873843108368860021841005429550250632472492137025963691631358513573692971284996298409775832699909139775328538025081018959915936802781515287671373065139742137345263163095529891956566987755733608929524671506109901351862088120046577745265355248122437805615859472021256113570128547191727772451234352046078825355227295999982635347074139348069689947781675793530256731953119634419318346238011297716436001845459820776343042486062880538528612620393136066474872247806830589387582171619639858144002143147286794316527757578884644891748703893624199133616398121650785732401183872601187063770596259941744489414177618545631746839017951150803317503707708127740141892409081579920687445854255018388145824756644551922493133507027839493423576831529627256304995551903101410865239639321866327859818371656552294038486177171247104718738889398677316463696770702594495139352601969067299724833971624631616836432389266645898298457222217918725476036466965471761354267421632248503336245573091196996081880263197456574107919610602451598853323852015440034238906052259021080091381082592288072345613813214597781585163226951481501631214887675569895011826254961427689364171105148073943547350327231122176018870426070813515118192967831361779083356992610517117309678386716045262087320100296391477313314265589078381209115043079417346561347401059522450562164277196194766333290064598227324467241737363599828875930738775239731866657028858256236767772885440744011080094599721594556745304948949662225228372020353006332997470820933590601891478941211731063095120548311512368250342631620568081060909129916223741393317431811489865111772926769707879377842312055390755893488278721712588585189180762183014954921840376184690614865011041905020128929412037059597181101912962888282777832186500383484689438091691424563040879468667461446065369581060673792973673852955319619365422268779876375616014220506623888898534857581085237402260051838663583928803410236969996033506424934143806506674404529811815599885490311950080599221148166793038904016030068628948375875491266014466251819423656142530348198566295110468266163226281426793295515583926350232601779749352881311893408901461444713156562639546646672836324332491863074730633211371293871080123758618520644360218396342555400237940025322691584226719715239269362982169015220146928620763310044037606060315759222899355731951920590394126267420973942645032962327785669898723780683497306385141774886565164852163582477796095023629582133426224358384644880154271733514815694055371673619829649085999514340498522895778790740216529098291882435399762169873006370969987635073768875351491013658147985435311962269021515480745485518267241449438016170922667307439197758606202229901045648118634442892472760798601738868922982115123255208184068673120553993534621456542459049957879799060084815212251724869973259243171188140058685618983136792518006863184997868643434282512794815607380982898799155442827433778606085512267920624526291425496818247271245009813237069110171024308609706208175816219643544469211165116827438424492846887931724222718027398841445647781318690636661565084964586514056691907917361545779270989121165596108084623169032447796482868935332194660772013930173165352542297514795311587342659924404750755222274857456815368631741994323145314559060201035216249791578217460035699600270734417301639266791443875519351322964179875157347388160420415527775885462562982596962816767752926903970776683348645142084222450048469970284589575847100658800674147328701823332315517867802125891149698831605042347062350993461112315867256559801473480353108486612878158206726146296462603808260601570661680545692884021878398411993095058865759563921771963233628471571223021178484033288389227341968474316417146587149404903524587593959715074660739822882176683351977861425505456066207818364389214285439942741664872195246050854157942240468159984208906379878166824412059554098192234886099159032967729058686497065931467608314775545188079968861121047983477532566093758790725285497431577675240165200838229486796929736709585003397903223100237784044367044057717454671178120053028459052150572959720554414163106151128912093668424485097901026552593026289129395652674380905171592895229238956506587762960851423522935370346964964682049874826352684458664948888977392255033529268411485291566277198842769451220342200179060991753119602280536704044748105754616157379242119835014230048560913544447090222328721942716211117453059571735974292324121643707780793005983670497331296159895305486245776159258082432733702710264743641144321745475678917586734592982710060692797541111465097373180159193245527721481616997624968453492810451559327095719404478132610703009068353320173777814207251587835727246172882278367189179038679243822330147766240740764643880641822462901373127335022334461123398735749347979060337991926524880330345002435682303040072315467840484378671210520390482376582123661090164778328259961553476321107070725718975860417899489563454551698697114088214595514985377827272496741807525756635777429466756291089550665855343031937869091928905785138030160262631408503266959865470341784517420075889784142944102426957590478268145187216968313896801532023597392913967654109027377285452403743621500816666692385009306160192025191806596026018845610476232873072394597777029517718385521869037926842827395018103821679452516190651600650552601427005498659897909270639992334404535563827195548019593311621011583148783299397669528456986946726071601115758682862150732227307340006407354766133303822621283688042243132032407091382936914512967784568913180979650233804360604453634410274191928914854805128724086693251785771988135875873926008614514445412943527971542462571490806306396042620654524889087970608977567079500930941266091963427825349338826375308342326419663526797670396628723099565775063804166507456376496191915281693956596332260459583035625610552578746206818213646502953698407895266470916560818313224663064280362500701591764458944267864564795183293691006688917653469444274680736398745024940309087356751640316734683236502446198385873542377969931721328702001705381554394305899847084259586991300951987702420870479973324342008122662081628634338715126677824572938892926916006770352586232777009295701769641222451190888778694986935391707972746822728806541010273289148426537883804214572255424354911685239229813219220570676191860816445665396533341360169306272891941062958204362238822812266095963925340135375472375317958272119769977655270833912763299002925795184471533728990904140335227812691961600300000193485799087465553363120554546485122224991613327642725514342015498956567170543633265198917912119705079143029892390893583844304004606328115687831400199585349206894920045733823397215894292051984562345803418515684060824548413990732424086317633227245320768710614471094716992724399902522200475742559889855882550939267404890881221913996404597084138739344698954728128785860222755350244785624962195664123602107226811985788880873402910900774656506711170466891963007871048467946347284344086993447510033314196971334261687089505879849393232183511874245338209153073514949120232122192461692390810066861819169247500039977708719552007423983608173269169966911682520380319620905609705973578430925618945858943905238493075206995559022539334552407029992962404285314573360527348393249106035195482212594912166883559986743075178753468565627020936942163866550882521250360915025040743470084199159482995695099049965349779375324991827583652361400063189756509888854413571079938563942141038087509372900385035543313079668315821506532091591202173345040893460565036967513923528403214556205998604755775240016268210811514961165641492446711219998240419456456135230961166597456134223936132104315127917510457152245542854802352712842065108139832922013401018820464341829003376923899443802291077792575761674820393690419307689218341896994280423330105692496544843717559529732625734926927440780691044399356478451770837701595934259364007390272351356270309243042582147384737603631929442361519691586922602985445743403010692231963314153767133879798200817676026610589486901873833678599741243629222076461374604508485945321191010833540628822821482621961741299647079057103805406507034727037631752738621822065186522764461328850722051099371100743835830326002102561313612078201525444148899925749179540612059942216707872878718765883649746976819488532713683334755389178017697052135241383555732474064569789799511844516111665076258849969271189561094671631965654661677274501788439233938474211303432209969357646586912661852262860720255063602912589274911643085625681263004827549399785394736098654214443670262140263302171696876755957068915264707102214588422040831405505528953990498730817274095325914387560258620214612845589733321085525887997922322856801036987291695605118234222713211755054937401689793688767150771285163490944002969208189268517280889316373374774410630502663268823381042521443410314321951961912938425624944106233019937771109746849044066846715420764867079206132126977296489444960776319872559153633054026422947049198933599448393006001387481500780684273387628606454597365493996409668334223730990966305343648210719478672272980226176248700728838767236676712483941409561014611187278755635054912243184917451099688927198561366179793233574139004219132731279236394618868105434414906870677243339037279623087218926182811669304102147427486802185224267644088546941279411691564907992326086933723056283905580207985438807671113324818174514619253623965152750582130909221446401369893803020664949692261883893802071411328711417916535261884218508619224955309136874991727224204019931611580792431060238312573074628192831293776937724602199474035879283021049295517531412432300031181751690850504701682253548054086493521647510183304484680050323370624095945049020322322848043729421691115024409131728306871630688397877800966774214947708326835586430293909145275572829285787078870654922978901371736976913285675227242995610459861516042289361259688440612321823413786680861544783369912953026182456807747185229018598925587016637150950924762497158804388442501268761521861148219290280980137035608459454685080071393103111744080880929046308220994942301217384420173209901708827986000790379083649553849000240120407417479284985532580412158516595523018019124871487937439566542318045132092792222870269038295982262328718745417910313458257990532384977693907005890754494165620657955430535791556992396297413883163971939871279711643647128108921594547935047090052909246551720056892270115798314008952427202297210253572122065551125212980239192395948111287919061835182542696341188700660007678093390056032873765924914314856588578121627755980814007054353972444497744182472699399231977598269455200193042829267673635956591681379970124895749386718116098259180235334225251711665025514444975696791491330598531959625868029884549746520584207070216170251345304174146377067713091105228475052614764365375200553180467319656888811182113782649777043681456670472084476376901757308378791289427603541236261865194391698975879138813801012472199759239638777375453861213979310897647278523718225522428517107415261561030041891274340536042593054889407667936913200503841237709937765843340040664030775977105851741517046533735501590802597392171578292719327279361514376502665904055685420178763708862563585875374345641750023086573305079163770441052369860046574638473760990991855981983293609965193230131181876347494958237244630844206481306751578594773162647945089033917772284354766936082169605454936001715747609803257796784318615599924638366576286807440779206028663486387351753712672791702184622028448812378565455960800650483019697452806586795421620440512237712103282170184530759826712426549582422785999523165183091422081133663166205334204016814971146468127406789553879100698648058580863060030636873269474857421275949134000479257467724428754594937511042725924847955890271181291717530204762068495192414094893577269263183077420241274180573566285034305861164387684554911983247491325392843210323486398774595182425113790665765484702392043408397852585228890649738483995850094589014151231092681760053616369097961112724375479513310240530060546097338438334550561568550814616529209535805923735470463297379322714021169009834854642435217765703070114692869689795806263668031234049581614691537661506357671143515318863499613139419114078861387863113812588409985327560113752186647890498474662939773101618031088875376520738143164054019289150669834483376818863785940370617436862340426558266715484586915423112739926383451768105873797167055261198046489291195243788199290796177792711406906510275267814341645225812925217037581144444558213932572195261630297121330351139712435021072282400553146267966034199046654382522666161843671339016027591557854008948743077652897172985083051820706405818689271534503120570677378655859810447308481774720291186218446547168886930314183363876019578212256271221683065591095491004266323299227471808188676280913752537502187920377301258584980232995474087623466835864750388549412398090773530484923103418896718245719155944107449150584951662495773962520524503234573720771065848320152089758534239693478171119777576860527649582790010955407722191447281989832928692480106707855083169151982440954423819784019427992876761764879555488186000055191166218290886048525187465689974517835063967246192123169611272521198829288260034669798431063663466238553287512534026358306488393079237393334964095643888719733461207244214371088577287275257184809047644628865922949602629751061636299360626157116785339048918682428840019885983234860027216855843545463375919584391521415682732559297596145390139250392660370267341067705784095640402548450542314361454777668381978559053749687870646073884523559008415691656042042069595151499908030132395903631075620274389884467180999650822703502638518400700122568691176287531074275746778816735181185592702479111181137157436794526007964565481567160372320015588608961891143374434281782882287342012390120968326279426966022036931409527851636733605019264982068115797150297891427728435828007285508528451318736193706270782207878791139008428902794218820439377376655503737730870333177559570976958427204545075351221589975845015089452053225142213639771549670694929219005223082958191191722611444771185143109990147359715972031338370941565243177321574222982039695441413741646478178755544611600405125540586784672008723782558301306764509785180422891083600407248881125499146845445911510374400908699588471922141550825802439908184422277792189487819900273108107666808569769818390615680646655164137117118328801370592150627169088175779453226921659743402772577351411524127738355275042341964933718783179034659017603651425846580044180430494436266119448521905867397125889669350900738781565444434773267595571488904402445790225630090806885988564055705750071391340369499459286486774288605766825700523605710872558800688446528768212215355748864137722583706676257533431362167847873620511348883708078079542008092715898977108460150670669620604610258636204977257846305446339270821672069159269524644466324761473824979074793090768215129951594786794833627882283572796454903155159272238830900946959564178751028801749518110412762392954437576227910524932979712610750047071595213114226136167049122725963079870028765495729715899947921666394150800766253200070911533414316451343401129136951853659914960954235283996835700840978232808082378321800377412085728140128452499732939261352944937760660530172611382390327355775300468794474178224137442004793772680358384896509436143337321717412566043308472086884199527198808336737650151024312504747363983431812654643514194114654672130685546396014282824258784956182734081240913270735518891454749676061719122344153039452978083145747529451894270119398763625051628351906546653108297393746406691272109220284681585668131994401659576322584883578034693066309219377550498266818152653046313011732989924549114302523231701583148309108096594853873543987903701521556620050037736750232318166776814724500991838790474015444187035564896723386219427699520056383649814462408562500864111793600626228459406214872787249475634243980466526327290491410428945316501473426764385116902825077393407941900551123335907330460937604512629187436870686729855037446243981203628084547283126479854522739471322280572526183027153924469198193238958530738484154469925563777432568924373562196857275190968618095677061246012359896880398369799608606498135443468188855087068539678003346871693396809724387719046203809969585000129979430452329550854499856361386302161100573306128855957780494238505184462886283751030888146433407489325758033323717835181392793843001711398325885803920066317637685523639030756472096127242269647080573113370577755877254216374337252587661047710900041755758934467560063752106236789065675084897448767867443810141626795728181585014794727933996083229982490404690193876319293613442248122524871416615785883067483331471653636042038185233644268964871279746224339542749109758617398016346429248613199019489266527336820422871793214753741313295779924492005455541325227963186396815026972611138239523123769692479789185076904783020716089575787073096622381161777429872505650501384924039866818330002013555312710763776326993688680912680151055490018822160429758519910987122898761678586098714768182499102118577908711112030859933745350142007540567411847945430702454434247926047473295072553257452373753973180989809815611946161024234258583995817105593065232562804425515986668808377278567044167192848123977809453822542387273954420552362125033123728409746892741359990175193491699930460550683785344388208970175982317406172073238788018770981779866082224082652803264192789825703572324397255642033917901360133833135640558644744889723842162682681215994318188198569752537879423997350155439969551349299971168465856603066344708041353239403513306866182976356200949208897130808285942464461676912550413160731827237985948233235175062556676794711821479468568520263209165004894288710667984338558428191678485733115169708033104298978770245028166355514653543320551902231449171953406062980133941123197698687697094950517483904527893803118916325133703683721630420431319028669235664772884279611412748335832975340618266554518928353210611046352957642120845165739755148470741672975433188651000855069304591295443104317292589996737835113890786756895819996491490595809108478158529903253701775995050225809003219883591748399391394146948659632601080428961507322505089748452741484560136556566865298324649348225770952965040893624770436057554927242929178595712016975677166173808209819553510149954984262342499264849524498429500297870565624766215593539241274070415657197716259117254484217295903022369581864553943596892178509294359002611194232960088535417102835826341020347782491881821784727948756671249869349490338558900743987461266908748720504221945452115072116706070555045243757460808212849082453490580587335665632470284068235892821827657722631502069703448207423467384487807423788638004806728559356506351334717628841747090508082909824987276414003547372955351000796806181055297383219697102934620028815064001916092347523005081507685601269798612083002387001246484931352817710284866184330436141570482086101905535191174485744806137367817157708799948436362174835977021096754715978852692733601499572115578280413595450156349516182036834324655976538838864343735731217278820640192141347393091809767735357937143026289150164912625203711263253446827643465307362058227412083164784495128828620608937973900574762595605829615541411813074237142246800660294174691999591021383785762513456920525305731525495770183269504893341514155027187469097233438841162159056989551063196005230025194829606024881636061521935043629941613045572185783063574866710652621803426416121152159406922884659387639648863836856849404681503263074184770723322135590166456139509738926279212105576182545113312839042227937203267852545757212904627855246996335887856169334575040798730117459632374076734984834635724715136324469328246060202435033815327884408689907266756552072704949404166817393144581871601591299912723437518327382979235325787119436910150115883318277513821797422103771233920812547522970219003832553170409725066752878581193477679091324238700108410376599921098090866084528180292755735336684800878273380045234221628502593891193170769957247069554286866845361450671747853816115489060819213752416929857416561631927403611407580180227067962108885709908974088298112481800630751139640304396475380802629958628676457843368367721036717074918340565392838048284716019391531547748921486890491944193234995329996662955184422351765538752394261142334014309887888549487496102415412641891859047459075236800861735467198444742962149385738064343588540712650186327488954671440779284013390832813291948631061414980282341412169900914833873823691989301078936127412950245513283086569330665257554760145156686907386012738377425199843580392610746967812315030304213859165896940634543073027428018613203605694190198981602948356548338081620136316001466702721136067575414795281021943192009626705721102133461868941634234791221151729869397157653979051031751992233162408563343633165175581798323693205437331921061512802021010345876982997964559953440899423069168586902349646899700497475409194891311289340067787750000502494834561164493275764005120486677600493660279657275478031553782007786115441388184014238546107235158652988811540507178545307460080531220380959459295290631470073706084469908760753683985737336357987690082516810908340614137206735390289339432369548875619671704026882091967776636434083592282365872011196162458177120788223327050179003264115974029124419568570183504684184338793866488938370945239726406250494629919678509148389976753372372430275360402911799455541251476502099302607256449797057555945303258738915198740285197514087591451518683219088426550316885256909636283550326764209972273778527646054255219372570106134957707441017465046225357985190580327840961902557330909405073800138581515734411053510723004114027702727918007202910588571298219645902905946366111828744632898479388934708359318329901376406975132633039180755399375715058261386844321075658954814357291848553139672532856732161480945365805980697451116487141281235278680923812711596277568325291255125865805265090308167680865684565596719848286952191325558607688369720659359586469735531718154677695115657512064405286704875107644317679481593769841094748764248208820355101924294368430156797807222769013929249497670530827640011674094553105558907859413101975467273071557090281250785990360214025655157585037394098825846361725393411025500522602268328382687363191582756675688385263725950842975167626569402055610296239322817568392321287382078857381315607967067200963180338062765075737423209023305924408683370027836681689670996831820941541985873778170614553613222994339019714163652329079615555194117141609528719404826924687054603301122344489574463404836624926736776400097158039536309295208798935043624139358795229399247499347071269626436421804666376776705389241456654931160427948681509593725960844693779396533555634947387744437903944074669425284523595850764726265177547058531801937176557249102142982030593212927825942411834317645052230002054245973425111967502019555007588931497476740598131702482264841118466661339632849991510272604230790415823924300946472297506869302675466010133920661924846195100413932305460065540266839164807424917425009020242838512245169596749738159562956289800799672808797044717625665206424055513368083696603848727037820691346107871982437586081024133302903111808544722288705890694684598622010788041405373320865364029383158034070543233636373361552154308454620903004514649093693146863296706952756788976036138073762448390765926290212707069170863492593485825140539212914779583246041856257791065269013162356897229107095670811832757289941425859617875050525953456537117900879497516544210672536535461120042290483500484929601180077727578894549890168522344965405610931770857806729542053079321326671423727264847310567804615466622400521320839222690004696278531012998427741561027892012981961042716439876926938881686127022233758859543732135229618276763164064179329911642951479734531193820075434197632937870910650685458207146435068721872736029193582422685669647134801451311658199585821464700563159053779791020703395625610683096659445654795056381598817962069163672528475299302520598379638749950300399778341654057716655787716642168904766819231264813993808786073767779166777634724613461656792830129129270463528669917715203970347252914062218000901983832667651613458077032513704331141066142937015383093230006350797130895332304509505729129859249943713102344369424905805256584358036524162824218655360814294370074409102427975436208749337755811283845998094949243289600410184014948315296886158671052840246824641264476409698291071344883696813475468880721284157886450985145109373580922490792372056415655531158648439798408475747170067321554105054855758449905768478834337898527109120731934426676149838913448646190951826101999148638647559661317695923844226565165173862092551125775205913699929950406501776292277082765353960410049869957200503093854479557267801482380178464539738289193839577974212629167680129095573033148317517461579851290573863434740957876593791739987230991779793178454752305209359478565790627375308645657999733423485809780684760671610344822209828268849461381671625134765069003189676546053534819089515543759505301574093088914573919570328135326495874849184652285792257850139598846580321567090635476826243370258035835542950011177019879383330293014214729694633190180183855091835036750553573869008260518516320323696421534127123320078757289283677882008045007775980369630696123260607838919517258621849174439396232325555789398973644494216071724176775015376457433660645331423146394449659495527501054989745967877285648282382653059299178981466203495300531812147843365843364294470751103724580387948814237218663351042799152633642386699920136197487703859586351139846750854618964690547168643737583458505039750152598138163591137455499069533538561219017345394329693906335433113098863730709126416593171000802530698061916215018532033225750000057793252241935416815591907326449954077047060943076407684969423217147434403158181874315856619968187280091077447181453883079528295574308434329629318098111477530196855287322088965998448498023101402327766525486173813953824369173611047909380944325793372500543084287785179986156118569560566103470362429404559191352233283540845288434838860099728452740553982921389802230888414412659526247778457590638799505550176714889698717958130753023792893356776538362536886465255142780281786403454870434968394058785021993843191832482556825591031100537598376938631374121690965580789310802110197296727519885000105666428046701081060331056168894095067688995142689697590286061011888855868641334153587832435336115902070488764344080017176680970726257248703605592375905301567303485074846802437478645956204626636837091748242743723490843026098288066004094587066060315086578465542217083943090223237239778347250774310994820902760995627148445460217208402147183222476683882914059948324474475512845147625812885002721755557473856518812987770391083847014417491284411605134980924197846636715587949754023456095026494679899510118237990408905739742733584715426095500789113423361875852383096567776336939739970084139977456006133971877471661548695057441062295507106592164060588726530680019958199671207963540621963312706448166682634992694014540576442738992065833875925470654503947633373146822295851510855959805965064124489402070882544180588954520579214042863024422696787012031363407817650527061050788604795838136497976825564682113517248892548433228523643136309299639370795299219798374941173586441420482310552443612112353293133647736596469707739272014082917130434967276388121539494898976171694877798831404690513379641880798660794477868568095972717862669536717598541104547073209930361107188696761257518192239613975073672687657398696384867019883830240448398475869497959250953980762007869662658008766655554994620132768746769481637930979543671428641307862267001959464576248222460789443828403156392290858236997302718642253688375066662295867466221672846956603487130674327027054802440743698897144993411024795940001983224085906433967419344654962099052486475017650065805097963488264769228816488646759799598732903472675541149899509066338866874075904531161401485484563291662678777137802386609279557555525469556005224539913589890561691953950070533852082628393213087581617168065612148857504899066647228462890606875930451909107956466570219044699146978388207106922668806316113271150875597429903660700585885156039392971703321054609740630367082121688973676956114181271648260550597651695463880505337121169281742630919084413482162023689468034424647255414498294453432306363512058539206927360643146523989558341426580799628235727073067323943671938963700430128631793146054212397318324612052346771311213558129308758922123002976593719988145693784421005959900237977447868291302667142459742228256345497720591315968127006719646513976161559961702249076414485466475581672086321801979365755747011348772144123144096633744070454669765551546071010088668236761685573236639283222346869447731135322115783628616376408857359590704669483280184700874132905952521755658246546087381579893265908843552819347618674406512828605355472345215711434442685765203593646544996856922619852688778840696144864878782352606735526672478626622722008761342173790890504346273406127444082183150854747914711151473782592716998191262058078253011349465027864926359276121222454765955839500119358123086544264889264345210367823996502804350631811869060118575843532129590293570020479435179624612584006775020218990960062285156862486655680255816134785701527273070055647290456146140627228348417259637185046101373550413328308142383095425902716881891215248363918988617191692786326521113333222975220290472974283725596938900479657652764934334285618073308278687089077219902025968888955437590265661527207841991032591349500158093853404483545213186395456586286491524881993810728006655748432240590334265980511758693695664011938627704966108879116082868860869776355937057968523719167918239616519049405375352638877270720940474489146404191491074824391130624759008012775749487877180930842172832087213787971034047126764276652218295982424708519147386816566601263268390961138967559957301383036136314755439429985857094647123691027593592944322079244656908971201774339629107502087679184423571861177005998676691631372021771832811813995286885158979200824176957476646666061176016378904640895165930823271486640620165902953384827719155367334307224301450056901592110466565531405200085567524756738967938158917622067875287182945949175755399832995645124830352324796945847092360196786686836843072515292407085762625974419150959639428950653095506541760581169401638889141724031371136939923180172493922560385741346868399125177898691230473304656829152530412312637437939231390542566794834934548446089843478145068876248535027959176810545501500612070258790456590615185029362716747541884018766906439627623487881304427573754874841424328310922168560343141594955127225762760272741191102869149680292398284537627380455960876818019581226304764739274831071101412732217745584821534872527342637130981637723111136385044560090051761347109188362028281619165276208808244539104513865898620718981660540756103996115809020511788939567686252629333235073847866321170902796738580166737300141525709786936783823875660823460297773934635300117844240352562706496387573864324544531047748059746197823446982199028504426243430389559307062962919294540181325272132654482673949010411751771502772401106980436305082160306535454613068283197809158703143032132618232574683575967808683301237063990771225951107480320879175819612133114403021943084282617561526362590192183878640563927682838416264334896282023362290846103607304754867708350659354219733680664741633952812229476135269390522901675658700221096942326790858909467904433147086982564715893406653071502482718476294392676604785031572489002561289057312306678635022232651158707861635785695450029200373643003458744439994149510564557985531463571843428525354269970475026242768211476378558758204357405101803736552800996117574446068134918208472073862867894859649724155811605465102477340969903196359750506044465322349405482636885916007060356458230225048131965886125278098925643436704909605883272107904321492149698399257461763663998234730954422688204703270668348301708649409547725072632785132607367434679835118428155813673962274350369099168865096301460600756255695320045955645330621521173055589857388322689390580904424588351427242018848733919784369125417034877398799896475598344213865056425626839375502960775579922786495670574522213067398913235115860264570949513169661296444648698656715616223833962497609811183686753259228160134767257289858608276144050144876946500044530004164722209763639965115493561104940821308671425975711880219438115737352220762439626240586505082835996305106719850311251887360509403653768192644218722959905429738055304282691404292193775089347881779038091516994656175534311314238446668454502996609712557828291476590454777809603882483030758945968135832958474204016824736607439041470626222549689225752212972782628626503776849743102989732103320874750645865221629635371976317181191979887795066401034545195157321587374291104501833701166631161867125035292360468675097345617486171844166339130799757568803718522236198431665972149450952389920416771040737529094136250644601432707642298441517212524072584274034910297424593623306201980357863805140079794785978327500346723778742541285313130206904581807851442089284005352201644851908990483464132406766163852868549871610924500057222110991987264715729201448363632133603411518096163939944102251615390812582984082214035060595489848735656476275556131745452414361441502827077738435939651632443305612703636513700396164422169357011222812286997542153511554300354087479896915354385771623669638060624399399025525818068070396514733459561174317580664507058647477253712327187913516101993913653861019199287834537580309331821163813424640201740382599461836263131660432324104302461673117945678642245528488271856251394198898549894485261083423005906871534323568290810422369395356702756047150881635201146180899888303837075716375500517753916762586164423638200396302848457666599312640212342038869188659731506641617517674448999736621190541300647355936702251832039920716613190466009698655358758714351835953303975017534462826450421738858560274967821342193698313486624357373366840359273685056814176249441220244761947295457228056602459130871713865472467236402794370716724103385593944748442670464811098926510651325681359708233797678967564769878719470230923782794812300656941736434121539137330188664590596472017902142905103091636226112886285208577026827773929278775755805707726932018769853155614995834753495929700535665737495183369698086373004101036938577721693358013939154551293656613544159731651499495202122628021636485506759233594454766333249407171871656313323070435171566436509727257280930657507499439332245037227463932666138123368017638040604319651476884141266899257753099609295996825388404515753648505377714616242627264508999490957736822471643840548768487732872261075255194991066296633297531842284770361531380355701757427072801083848566895228641936892557920177630016984659230099616779092159971008095365896478768646175349772695105236184487139604549028199288598272610295854323115810483884420257756710132427436889182400414725360865921565823965029614461358666860021916785989725266303076764111634704460769117863223726845554725315101231453115576008073214047017464022862597041016389370438714430012217710996341842402479037694003557119433276625880549626522655454380098451590846007106045488899466400999046459199347058935856003047828367483090431860630620300594215746477142911696729744137066406781101557583761630641941994094244125510815173080309340523513825914613321527470017951888594172868224833773246248158090467567766313422929793608787851229813790234052277425325006345218320299738181093422863173063012654054004172549431169591665112095500999773793079199635995184177067763137819845808139364589750876340652855758980146404289696469592550673926261182776991833119235572745399569653513393933181304696843015356485593243705183907469627765828351045741754104241962209872915766963271195775822030109503021226586085242584188364805871763353500765673479547794926908745366486495213291371679221446933276089014382309465891994050490078237725363863684676507619701992669142889003056726090974238104424564187696579166601049836274479383049800480782699837608061631417372022074267238560698254206522190617845990633832868191030240355791015006878578807476106220594094489450013444340473858079581281711583439948680878084244521468704852763142672537491379867707169655475670624240304001298053860240122129918782774091109580420685317725832046165188488903458541883684968880899502729978743492781837526258166563365813115360190761716525722353731085658917426413584851116486613648803495893221213477631215353253438435154211300091850868484271520593767358529586393310035559253328469119871734006428337750755934428198574656977958399364345191590576327889417117150656365734749104646469922275623019077692928990320499706175092478346106292822490218234001355977121185656041865007620266493389734316890071655788184664320188330121673730098584203821485205576691894102164966005684480802210354051528936133834681119513254827128536332483348818926149034422155695248321960385363207738080061411221389645884513572313032260129704351572634040691524619292187985972628409804242563734883081515246543151282184050473297052785071778282210595401149619187232542566369288351930796899918913252400347570323243972054250343809790606412476138616914580725379866013017675191033465229823564202718226629879999088087263664564753231857864834833777750975613523091565887161865873673904455374959103533764566614182050611347262531313208841749184641991184210777623355252218200838765255479491229510668431976108161920197961608395217896336134803489798552489824679129730591771816505485258823962705816934774931867320304174285386229547921723868391609744858536121263120847483561394737331254386620395815925734849006653689871218591551154379972080569635464092361889204533114114305398925525671026890299169628673315472246368812323145466165945450720861872861645194729294298225566963205572118995339943673154556866842716339963564477388736295096933578897670076503195271227266427072489787754085579171855716890958668819910313770162418902283994187526661930692003800232107852745090348756358988433526522923528066314789809760443870570658279682093415028762147436597722383046415088711656805155031430020237503441247993838005385373955827782482811318992652343183978056086352011985106878009550280945667599866196357068102200398030836563278547865733594318624856124917367731035899309286775450682020742525782646046672348176344143397832928741586365376319142997290658900868409872715006676975975615412382767408406300249898251742901066306308649662771815518740572598936614147101299085485589810501272555702779201792209025422659494920233008714332906050168932350828318161398785379396332766828718402557532108636447075620334119365401923114225253627489824775275508245370196892098406848864633585190758162114188827445426330094497504928645297282115844147227570317653842316885288986096771677467450295854887590900592213443065048045211809029989858035595777613504689839930110456955225594375804460502778445466020400984743940364123835717559739885482458041539402418022512869562758400383906066281910271722205455355101124369151862017960841706471165821717044593210285883854729056316157361143735956981475909522710310244241034321811031335060890452606695524361255726015233587789767652038755995795671542415023717422792580674050734282838724641656304207468070503334560789624455095007996393796817108807850275597108929375442411493631245087238336067158694994958847958646481725397716618259636462360105625536512700835442197648501835152165682881991172572333802180744631602843237131699686579910380348451548990681126216435544393691027749438072791413190599623345801699737998561014390921818133776171280279157858955792371459651165724435890210103651316297228907496908415697805082679278774989750026138821731544845130717377764754901137465569755804329957955509215348415420622075614879446513909923693370003171177256241737378035249955707241109529207233485919162559450695942503082679420422224014960505738277807054950340515673608608419334264519801753674088135058536139911376347068044895233145446793729735860630472716024865822466292570516761687078000473671789062694329493814691682392111692738315833075587952739767097054504722712617671630673010513767288920051612991598607926241905549647271759875999805977027065754850810748949042014348520847785135335119969043849131899683293258911869557907664839576166741517965061621393473728490029888580195934080901236177037510249255305134943413435554070819759799656964709134607337352873258940727356687733332046680783043931623827227517549048255062993140858146007953024420766990576762606222844900961062575614924427720066436421612236112377781194441277991986086101004947956967219634398874590315543017409435608750076617022828738401339267845179934991494879049495342223193575881211257737813425358681294890695596524035966025764110080481289253473552015159434140498312467193759389199774547274710799470968830983050018231011356291042761849590151816875087520588795862984065798427878926265611348669966824516003798713515438918810534198466694586007074412628455946220908594154231209185663174411273931340573356917699968635578332604337555823677944421776856145371655246344514380300964751741541911554920291843080774245912655326478412018249177157910204546522374483632479782801343273018193276433170566118913966794218256385341060889226492293477821213341873910310930741985697780893697669307329686553096943576371107049200959872577499049971140291944449683666135992453240017866460105373974462576092575080535211780194290012269370473982648002474183630601864957454438694843568423591483672124302643303846057662049702935132906122599448150775393639131128543469708525408556773642533564556850971515349717990789928433001858729300139332126662713785977278680132766623503711105616498278592142577330312930656346909193517640246927513680645928750589363352501148764638071599830696956554225976310488305199031149448948025589201730499348105357243426611727059913003873936475670846853689467123960953150657616438464963677130987888849961473273626529258391615010811117282096523032705116118579086994331086956711783960941778572517157322944270584577070954120063822416777367178920234297259167187878655444225207451666378252313516379454277456907355065086754020250599277047919922680043848391931291101994685918375963074378205922707840306807645340290059765251860848790892822437099129704958528235690911386565637522347209501625860132318937285137028791082892078000143602389271435124707704141578169270276790731123957346870637349769023155305580391463819226698906926640548502224718668212958550850830725241406675251633014964409179181530947936795113920281165896423094716425486855873037108083683270206991564747144269843289623612397412890372946474783371363311333358022713842382211519330434538001658432688575149065988140736616550045975294256181695960975617265072945911397995112560058718242985118633410840986292820885195099796569701304842041991765785594296920427718576437903406285040502445928488717732123586726537251654930208771054965152617760096942465341279016264249357158345750252331884069796005456910593126362806802174055745968300878713677328194294075076497535929523315893718425005540233269006011839259907455227299926043264311978532140321963861888274787154876861549242267676699132082910065006303098030720506264803449724403058411648689576663034299668757307141886285813217420321443797529198922931102478646217375771729864833819922480059870095549191188058614430371185533752067229160390297354169228047349053653008004812038544194566094838589658746952796000422828021025037909425626171839508160308335164284790002726486060109130682413712572880969016125492060147568680319174999471465011679785617273113850566879913699798394242620992993046185485683289796130829112330493160463947788460347569817564974749408344099060072774292458268864346192407450194293990792162070879299251256403144406437605944300935161677240327521700038279223403442059376703850873176270931028636502024867086613336671938657558314207840810268131676393669982994740398395408980485406289514061730102357592981046922045657223561079731140182035443662097829064510285882194757426437994724020020314162468557805950654933879433233556560392466796077543852583349208220060761990785982766017411440155039313153109374162752812589195654946652325183885374978304995906671312164917070713417728973894122243072178125289736874126597302270488516694323853148007234921596895375867175670136807297514602371152315799145649177282972950143418331869881447879816414808789671955123142388609115212398061935382253777486184251038618475650431007525231546587544199253749767647653830020343096896391818870360747629732661404356680194280493144034145273546439280651993425843276602376215157516704707497996766203256451748496184998968498611829820380365140954078769475854589657437594680620202503340622841800041350140805190760655506394305978880605024922692970971373204747909256526002818321334281589209590787537935879806993863598694849406380619838999284064313940141002682922058416571762556362005405423029736824602304726136356541102406110692143353357969210671283249954827653494746141379819860829143786266713467062976759689837406379909600997417934323080314317548483391583905359184733577484139991919567439117192230283129916239482384311036055337663277219500823295174799428704522430755996854471238114255804941010214602871295272571833784945042972633091995249950713253158208456536977108603332044400405596993894725080261623069984072426214709188390018091809800730003871848261665574170415083652594188561161366515565994989833146852248955136840048268729262830090722685359279693376405530719336667369912705063818092643722457533891218526488768058836126805965817359031018262425411596878381333883726619174261888939491691261113869181887510694393949866139912083258095566658262779574090405665793661096723652116734838150048123210120739591264671923838928358575396414562243781343833274086514306775111812550769563395443822360452426627076520464693629286239741177600944160133532790190285298010061936157111607223495820062931490407518548562846855616097152767464368544424621776156772133580215719447001784368724945554109384817388166514380231657636335251204861949612094151005654473795873651078627281916475683127514587531241086846105787319645177883800037847762832444712683665390777550746130355403162072891680386526282086139255570202363378171009547036347767393006132031703038624932029847488885093115870159538929783221648434084172000385567790786499868240865863792293392693834961080221531479456089078987531270270695632601156476338116727524018838330102798431594914360579879706972360456183084595817056677738647302418818243745803044624026875205965348844872774982420015822092361735294653204207328389514904836807020356002599383157323255791026007477519045514001883771346155694996827199563158800006532406749034255563281798769231522325249452948663995555522374373412371616109471110786345393824838532371100604593206905721070419186648890755495098752064510554030954107210610515677818836828225493565553267656119762915576769619763878661810506139512940771635004803927917224365666675892769971448014099333253572062138454384208437558948582479057189714323246448905332533282662897814306845745281250092593075211542382390377284973275159749736000097043186380187247838272872521576468537832333935021402145987617473319465603332591772819852236936112431884727004645320108686496839006892934449607873475208987741351003830081215807136139267149483184094557782633701109757290846450358885578355913960100928408430633195878848536695691303651764404782106704116118286851541026167930190813836397829103383573011072029733184616609879828538253028436990698962773035398617899308753049144120419659765140336420568842509155010590210840669257343457096990576147064554623406506504810137568131211369410730348566333875616062724424096461107460044416146732523058051697995787632073057725307555878269348818650535963154254484557566597941579402430381901707503686854931232214003753729911811824967298067875779281179193275347224604096684618156537736473870658591151418536575986490309842262944191829999274272802219257675318792213377395288931484435310342228253155915388602028330150205959983766929905976874787998700649148030008859387806923072697843182065512155896792391282666484204032609143776685310286506838420857484603659585544816377244711310129726266784946343581481941381264943195061405261092926350355774293566358908759847432907021322315843358661767376680898013244391311328854888480763617245165279175932468904678535732471384617422396811480920759769925757423795074738260099917556573057366661491348995424987074245163425602928283898533537566878011302745039152092717913257687253767179709597925421556516785717712758264874469772323039841661007944114885561307340356778208022008296990609459700891555986985847153632038623604133979667313939812016621275947604184205814996343033731687261467225569571490202067663477820436252833307954882954356445698353708867817177179733288012484424532145719168199292929484182480493421983666808074324114223742202676938018812771878039146035611712858443740333923325765190131127995648679852666552494244701496040934507751971424127289403093804281707987668567631439633956579505871060108468712718589937831339618672275264102914845692769288905311559516700595934607184963936782199752184400109587999176659501076457674528188089233724987941251676726239333602658720149067370873752755268399533833769680113244184242156923058467693581930798317695671199578360433764185310740835443367652289557846034024733884891034226524641287047303107718406559410531101295305074473633736347564434743693918584701090709498670038942560024570046756567705693178678898712006388020737136691116566027051792563136713777240168975467455855589563431626168114410693653021603402583059139458933467939566052409124862768289527114613222639003115009259634747099618178886254773914688208749409665168502045040065538793390075967599424840997224405788471239453070752398765770016011519943759872636324855577460005671921632570186045218041833136717753511513747313440613060425349932583376931437553063653850052174073357918884002990231946976834338428482853709022709735690462904139161520868636638009894395582372974574254916599073392275446137236263315278635303084008507453761777983808432943444489608449445043015903001986617710987032192511232444581825701728052504729756472865436477033867073687571582360026057165452187767001135854839231593065041527250464176876881001614000191005137968196740892053264999485350228360686313452827534968610788994732391445719337896974756106573824652993532222471330783112157482911135996103587611061061818268123927255135217019067949679066030435363302293463101484608912071190382007069585129628215097866714609212423860290650488736070659999005548924553743089365256241166285522909247733591837729504393117813245141950148067650350796116225532566539615291784090427381550141889161465370587176749119945062666854564788424288528944672465053398550799281333936959735876206395970000725735444979638441450303288004324290097004645170483253989762574105238998792944328189502866006502747936318406524766872574318197559363749475983401065772730303749688034298721487488667326193073827468442418832436507386663549680749130616024999416559269042203386125637688108666177858057835162170785582721612408372802448762701296738307823598688895729796974597398410232293281074187645598959476377175221434092169782812591566637127764183524876685762359093776263685320961550733053005264702777186777716868314895248622317331085005806750321050540657086265619602924748515450728747213222114682331249816519595759721379542865924082122265497015564617498362675363643662681606108025701648340345725716744871183487180601007942846737104146107051590692457039584372932445054771269334008638787278010454149138990220149988858323013001115783712852193535505207848942838164574553549011259309612705204943343568310145328722703264373375163099992989357889391906268719060578223312019323036803485114176223009432337799574036933187056364816221375247433440578397159024959505779637103139753303201517130517488816945737073794042037502033138148053847042541279321561934608651162681012505074795251092925389140094307974400244487618267454426305305374608180387470300299399711067920286379582721780793144327756944049640766883853964047046099184159039598958442540968734816024976693887360266430483404617362461587049597696230022475146721557417779354967268071200738940091975130605921605417392305652518023477708907397992654045722938917061144013831706089827007782632578947505429373511717738876111503670655915435795062937786936139250950772428887224202438813390418508326865853566426802026502311494109566247971613622879780157026292883138552747840305149931697877557353631808497912971995611908101926517380094449666247399173365575625489109532958025638008205273367595054187938605177606688275425614008061197245515893204005490871919940900179308468754508942900332129151302711026879531414499751027769990852661034830945938403588043309971330873782573615941482253063953111868117629957302003805811590005803494112836412126068016927360834834141670686423234749452671698752515292888957901906657043372955764181196878844483440223106145808878432683657014035799131461066868348766047875266329739134560403198310235653215707301832682643714269742598666587027214201300456992382043608941664632670437742968132102361049779832242522610007185014049088144574443919448144525837487235341701519574518466615804142601794224557245025833379484238374380059374638349234088992707380947714051070330691991850280788172924098919760150664418598337941820012835082900293415109030550223523199239545991654988868721312294770647274669455636415246406939621946863734172869273833837350972607599030758596755668614211143993378045522516965661767755172799096829277707465157223447775648458370681308574719194587316766522243883966239827635312882808222999271292962319045099270059654965776366022280394119674951698682611599008863479732326422479586651959725594590461158168461163464594645988510347605666292186710955824806859362552628156875373882874072437156909177940262348664780509720731610236146679829188902996956800462945367518162744783196176932400833421332897384221944166184037306736591579142118584415990488796383607222866926106552546224662734161421466293544802418255924720562064518452160735531640810794591866773806760802134273136314906520427835109106561899113905200863142560876753278944129865913484500798480286205752430712122843983212940423620901746463372779406433543111136994627469965945548721868068248368050832858276387499286217871754069330512247095019861653095172711249971486173490454572958128257844040655745631791539767803400592976863245000385010854912638339055963204879026143142348268131684397867868955007693611102095714559555468184108665454819044883814061377355012563756753541222578926888837840634115945289234656417882040565379115605939467190077054679455089459779676928847647616588595747783967476098673469704288611190019910150442069560387209986807011395637979927651920401388437022597657032822793694322074079539232807228566115681930139467365652124230087812276702336867556302849075137993265581773331178475773227187811365136144138098334880645093753151008020125909747344685351380976085292907216586081049140451203382370792614439221456837356982857161356220451761883012273307343030053753388470471370955224206427085162080838804901540870037305656030428085349016629442976168729435910517636199248338276718993760287187258372713471667845193881503942629787613221021076470186229649847214826595184673153119011218592636552296495957147673205301310199873920939928926955292784932921843698017569712868452944719330112084944754131808744964487017895559348831331036086436731345875991481871630752912651285162181960565322398912143548558202800574207033775906924940485421330686550884198660385904096211059045425430063021424343993717617834464941836433877243098985171207996453325856152073071019079092808287548044810405068888383027768547901834213880619172267475079805123180888562832553199025547908002950635717582867265089495461360216011691239069973851163486628008914751144841281959626091046440992878589869206842005084036441117771680339987438239607009304312581255162540784383737879443212435015259293835144003515199644172327058563276473496142703086286683420408287467086708948862776725664660290081774327111231973311872916973416607735928131261463537949372338282197504689546266025463820350954206954509344879957965816095276589597542350805211087382104618654242035125886449270510757744940671745656390027223509558314110893778461768654104733050245828766246769096084175007055804639319461358874900102203046368800979575745502634360830766364817874946191271774656853827353638681612426288671006320512406496089755409770760026457355592045801318966906576277446722750581869725594679584825174005606763749049306012811183846621736838998802543000428417676040159721003455372721423981076080563724667868575515837705404088287261747872249220843258498734882680659795395192781157337809323229102269727555330808835737325195971514105646695799308233145974481221895216539076882443136823936661153390295664659364185277602293808404484267507845437689513939590491889989062301439532663880521675431354722855093197066797432065744978253280963001750599002388640387468498997383185475771854062533437501121306803007022314148207630539563960477813083415308070948783482768966941429526647929707961511845416857183725432621694795889609583808057924702198680029238706228145122574818009038858434398498658100378379300489092935791592426032750722155286120373781164861093900768793136188559630269898527623633052822802680543782329098346159120497435894439128387615011057934245563314755035030987435936557010731163091006519321408159390037404875400099885168328516464791283336113233272045339268637806963177085521445893778688456016226547182638560656447362970187271733943195476174015925155456630308495851456966836494902439169028142422085168684711734784137493692262294101238752452822898478803890221453289613417253543555477541928119249643750270158852668362285897477759890793239261773056354614426908911933657157316475193936036525415894760986866389250299544592272579084360603720450182612313063958183026182350665436024655148657884870913337598004429431053809854496946501446330746846880639449670772413857705776333169716117542445702382167033917408213875235564649005929294533038884282763166528385617029325347463310349092464082894245920000952570109113994728862798300391308439963988875653726931394424792410543118473285861450278641234790017816038404192033918114442772443713100299475861935970109906715716247056447500328342715918739862041335274735403896555740143755903945070525010539233495635539658552402853767496741892863519815861976305899529316550687962440445302258613277391671931080705506093424734584430043208280121262911933923102407368496338759092606984845250913461094090374398414416608119309492457595258708505136545202706784951880677878778808214656442508067207543292118150335275875255610269301022567229238721867412441665038587424211735650500401446136899662434425167416264151182656390620752865189282985279106460371860609416903809936805323866922000397974441373443774018514384873758364794516813380083398987543846082000631654332292501132143324897887446992863338945481787161799521699258041727736347703191594091290424586951085836616856448884443055451141630071788261338281951960855588565914112884458651759144947922285993928767675411289663294193655564818250498964416059881888391519870463108363462621170974851676318763280919181748996469904281130837437735992074530211491578321224594704807599055841620074720850322849838256710582166522761303464053459656398012251457698790783510987780958207105413073392403304823668665466825579904346831479468451947033876694877719449893203816261653339930698283126497949016665981188396688646919170880827656316113009684269172107968008985348154122794596738805984301375558286484064188514233340220932586716189022971578020835643601670118973270417196843503726148780575228754422359595550324411175246568572389738577703779470442993202312121996841628390802278827196000476851967567840270260885009510792479676768126737803440959424754771724968879158962523818960891130895790371796260943293675180203161584756955614965033854400496044412948032752559134278009533098482397646792389094386584582073541136290225219858261508229720867178053617623455979783632541552537883317539329542879359774433135183576059659442848385389434567755240780740454256107718610365425576318748855379488705234209334366001734334235154334627914502672997788926907635756883464195475175229834285941705406046550956423780554857946642722172242651814464325307158247147350122097410832372069012158312183643612772115813413710272971295499106358620919213637699503341257987505171355511411008431856018720787028586862998756579573083953515379831159758924752508092462247636817417245838127222914251475184511376258316011329607249449517461287252980835365190260070640799741230456688872489435971250626643571536695566383018891670272349661395519555680762080252932448181017214845792729975914416228562866055072036690314533937222198393099968875970095065430974071713820102351038516433129503698952004250565909604072701901447884903164195651911582486678021215526681988941927596663461965691071999488750388130262983040650710247202531075272633002266092654008515615263133808202836387387649499996044921270462494884496294188710476960334945581634541871249672284602855186221791761633153151130558969094788642619586511999703436326106511680154593102897739683899031578563525878402486211189025219854142564199590952427873625333390613818542675330117959314387153632506427343771173456267514913451048442686655475429500793426110239905306567512757715653240726919014841716698393043318609457092512709562998663746469031161217055420258731305481984720859869989073512107680465793896290614714113642659801117385508867298305868592952860044552792554653474063193582956547763119483842757103417174573668994173849768134365506436198844013435200760750706316099980603102367297535931215597742348371673234127759131101769369352796720307860326179761935361055706682776180444141091869384500081889928402533260161900470380112630584007675194587444087761693623790225623151520481332918521275639706363188213243997570421276384081168628523448573182719709738352498104191509087395192592175893625394382406195282113991581835560942685033041455658246816036424400750536938162209193817278032689316815687426359191602920550656573916114563196340436765077477630389898357157472807953045513856347836336709580940016282255892787026105182722928890270885656508164129948089403980225889118337305439641737914257137330890053178932484105116401332396151838606327202218216680579183830066338633360501081573654102160315802479699724049193850480845519071560080921694215215983794030842194195295571811281884953703439039052551216824267778743160095199014958115532091156951851124963166360627141166791664547981982520362710509825378846365037976287547924554868045646268366823925864773864346831524804113704857873513694124246139467301365715890558074915871250805618741193686428559472579882162717588531246251573813325635027668719071094039509100617517707101459467396383912654175572413965087402497820786061834558870752689731359800430416998295966187218296958404749204791735979475936315095623962762095485857072140721698429584447394324036118173530937874454059469782585906503185249536516821560067976858689398185454222793885815477314793245056518618180366696759034750010523952130903804501584233481320552562239050796622591251643247062988057791119741434104987743537212813570383926198347452506449407901407828226905551763314780195899280205447519708845158634592124725697335586474881183584301767738792525053155495746591496256208049086454199580935368543901311152697910664548165709858192731947364190308000125370075407685704760180257244887439924579740791991246665450618955705958742356935881698044808224709909870129077595449755983644814230518564418568371204195875596874459882364015520780013815097547869821913740188779901543108654069503993493279960086233182936458469082706090815137114321952002200234579166657101113829166064746009592526172418135923582435069793082497868446394647234146955884239877504219149113480383745950751599175404107585448316764776683896537382674132158310082333206431613067766497633655967565702767378521675939788941453317470123674922306993871111287590551505908887069363301693518469558573701077629221660488649568658981327946516106857904836034627604981431830817842558628630866116037457747950403790721832370534608726408782438452174201583221472981292500426626409345501584678439725771201603060106203621489343688475927115211673521357198859835306969315429699914226685096196294755486204995441755867001034547764969586585964656260613648968519424856056256025714555460922210027845238385222195857383571317758876288908349538719745240264369854050242924366241164002354480410093186507853664489168988500039860782880816046744092414833433270367319851220438688584308817785845151821086943453005285502744714971271315675405537629947231107831169443396403257948519051117154288424527744862872099822220566270173720788044137767337887501290188984025949432607367113767998335984649493319304395217219575594811401456970896005016303500040995576767694745930046389688368350141639260304577886593809383173887596103410292608574316699517967081819289562750122557981160371457293086775961086582542225025590984172330509903888312734604642160140723565938059293864391738983502291571806547257457276953299879547632970365070422110704252898724449154970372141954048399979433847289210907538386458211702202141787929082141154810568870078947308204833578532994849377002187592885655046096111004510307111871747353983120508814359989999077679888539762343931333780344218770442611195162612679166757448765464045718255058181521555993182855665507131578174931117955179015804854174536469279539544592687545637501253321012210887046865175081894012633963850779765849246915495218353487344125302778466780383982753918167400978287759356079356161711110574576712294904546823342288946730928294630318551795263643674140230462918645002259841113735490857073351080141045078096918636205946296774656564545823714187157965358626104016180730572738914825554614341659387815487554750552418216436015510545084736570806275958254443379281950630913421880502765586862682717019970143214933755747388306795008071446939421774253352317065478837922430937568757431420699787296317176991565123177958303641953982930600368965344590120668123433650216592906024999959336178074310122037869933826498296125086143139451761838318619006715191556390171392465204620105943995442167240931988469147095883898784586740972634878851511481704932180521775400514126702500661386808186455857852146981800252810744910371934887802524239491432061785415537565010252089428030748215257266787544244929364020518230009231299125426194734906035282708746658105783252563066302865834255695101514596354232057045322138615172789195644211851070154016777235650410081084774538427208041497406080942829732768989177825668478196894314355619865954106430280916146907904412423878713751476980146836180355419763735976945172930803759701124144149614638925020800633347878238732855341500732178927820565768284112326927922892108520146270103258240511700507005714847563064079827868770043687166441707107735044989558621362862066074862181643612555998089320349196754266480976235740945222457214594468135783398351232724351006001663900896266908992617799161105367355527539129744387383791020907536243454947090418507529601414274291610041195727209995240886312964623734249117897105586991666878181475282661686408572344320942174770340518142604374232607889685033690767245730280067689844704117423394076402588483731566945111434512623590157872360632656699553235925770559238786203360692092033630443008020802356117428555001221853824428474689707121243825604067699389582606363351446470095145322410635131819143061282809061803935920859014387966816600614185983985427890797729636832239191398871036931102772607388065857449406928764878271616950202964716030144562868396083337955767573961557008507169308198688069169452832646844873047922036376365901887356175560394681068410348941910545118045882175507556500127156796237443632709534187946181556779602688215463076301308213676949473296432244602033501769636365774531249560045412083342613109916324264444529510553342771831309804180622839014195007584391472529665986294416178367516467530614763449505525904830361838803168702000645878438278529548452060014382005520862762445719644444402773737651762968957757976289261831972129618576095343291798716370073173497850376988628999892276146314348173693228903055269583945619414168425099759328401107978228941151144453560301184575171847545902501260247451982090083834275554528481825292690958443317517415950594724311366071357270734994001575899252910110442350844779944698413948785382052674227532057697801733927150849803741984140031264334226363963399716179814194603456850275696570489405445071321180460754883888141414855294992042207000565675805603447018947362632005184008118425752975300865303678306958034397649941513643717694312109503433718913206830567646620306886715454256863465580683002233011594312316885122343839876715087106207882207825785617941649519017534038960485216388971730940415043059289077872385182612126466978302624265990148640788012850701708243246324916537716342975551093593749254096186720434015855466592872194817803841902677746642583550249379283065675969421400385069401606095258905398726007289799542212710769933554063244435130997830760768659951643101050162207992549494079503522360165058827262565588802214596544031818737953869339574398557530856198155384125950599645276630533374052845041610857082363379945748015564936234432208891522387713090807242708905286640150648458189222881344363636079131655570795366439112773609814148603816884808158269970724870487995163290027980896728982361494166905615483982848235081276609504680428438810755498420554894736728947969718112371997349919458842136001229606355280926987825889420068961617936386741943320607001304737221258770747547730090658466374159540925844658239516356411089889683872908078065946628530652640019238472907002715565610936282093341243399305315110675115149116665107562431471227376568850173614810227401326824411279673897188119013718107739810964999966677282611332129115488865761017899151178151266960536016441093746205439848826016875631824013944529670042738021372777415141238231345013206346700752608092976080072035829514313171778211129535144887858960644805003795303291610140666201813528928829472437029644135600340219252776917612111485910724083740962444316151681481343324885876812109595556783489442340968781681925455977580808959699570721732471056372525972517564759842893655281820472234569988215110997747179412053907873390447999641372917470105631975590402642671868130706872728022004510677854346055372407151334459731243749508071560116508389181398676695327262556817242436017547400961558671124058449358665658707670794859367902657937856768370535194907427471970778164261927007506186064172596569056832019919806545273358464572600246787721154156528611929990685128830491125957751443530622642426063764040777644979180717009000934386907893164188014487762014108574664340991760539492645781234461012309835341781856804654357498553375079422797135326129976626424110260198601557156576460111735785034067386359830158895642348802933828750271160339175752159605994145822851269992138478691347127291764878086549015567913505232516344677021526931743934911794801584658641245694425703666036805713681243512158148770591366932637257450956240768178044551267578286694101050566760691328327819328369184656902365820660111794755087162193682933383995798909764622019003993348788865950234643957704194660434001054632163014569464900987208799992028691023754515736084523153257600530273930866873672611913438175356924836142722951330144015340333715519992376996483903726488230353115382163134245776873825127278349764084183757347661328973436985806292331477889836370747698082135494362967505942764384577754837112672699792903411437176075730347837367861583438183461120291885362018884095908246751630654017301547474741534491449760048003594853711813363890137192273326722322919250339415914132528824730860693927176830406910338966688225758584525178880449455151610991894483356444130365977579495784495762851916242474500717722690855235376647726311671006070479997301584535818185213329475933410895612294209472720035896404788795686607400032702571811576690109320700013001049994730963245102558836982840469891169832957543233553136096868382046366361889199031651238057174392787575649643436156852917855320136040222754108459149171615294244882321045168329532161301191100634507530640556605541958251547363668285535057957294445712658038706549973892918989433161721075439928436036110014453182184485441968415866587000611683599119454424565771522368949643378501085009049419577398795654511582024464304382387908364493099294222177739282853579098746845339209108508939173374824226651839890464984204335006439128818025747060760400789781735357839897549293200336773761412111494558572713529420413887889496080591956523147472977397865925836144368011615761079243732522027116059461980773602802411016671370050250581118345909145785135819676965561653803026072225536373783893194232370987673433481843824346560483176321069142971877259047024443377700257653722127123220148994547268881263396305238411958796359274766192722610423371129812111293501249697721290106710920862087644855995866589068044022944496013234618947272505775474341748837875925691445560086769178191986354158494507018722307600215054619644110339781276494455608173525916943023512965818171374048132647041662732133084248255937113248263825405658694234182858365642077460237206887432348786890188562944597419954622535365415478148677644658752931963861851442482953147479307248389097079536167597966921311164300373900513647362625560787329473059912125287846051404857357540327142347352504872540498447752147345812941837030962101924650466624727732450802533156821935603131816361952996478410666295698558758435799230022727092553370218043623805684820703804828657560771206997766410727145038678240671889170264421171919846390438382957278921116189486648901231840523225273096628976554778734860783343744012607581143187550530639046581389557549501173360098193672424572344162294375659400499653809537303679759899476967269612133834319986919377443789513877908298981884008547052512111783027403279110250546475533748139727856260158067095575950788729451494299534477329915811190365805714434219120756865659084601351771757191142580275008150626098504977320907841252289839905415867363542395447019627495461594513628282112451590254200569991207080675972265167233295942302445066632942794123804156829035345641845577946561517806077646220046340006298144129631122990116613676852532197440556447776581524328791637033401588120653025821937396493944867166468226669489255505435026070230385118119803329808950821665095237039799292482900481796951816133360649724493242166601663642902353073610341666131128142454626783413436305913722143037030458012552076368048170313012380433508262864019558619728731358628969588041815678847485236393476352873887310761200834363597739981894323570630460580218066304028730601484953756496043223311295236518214173978604607148666813211695625184525159273093716424478239802177330303588130479884244162034642000571921285388248139985599874716664800045186359287659684395038095268688575287223607912828112168886611462374234036358722346660091762169011811089473729870817393775682576547630175193203249927274661753808536375151101936443708675829958722587525552361851968271312126989908823067922995089591831197623141135788178230164691052473012170957481077950352507084067244764567042343696418149496410181696828809599470381726727999008512226014940127769028781613456063512703915745605652675778973862322820597738156049946517633738705283163393161332368411822522601851629991177792272024895394697017325600595910120387439166651169595768411971899355507817964316758016949106975040822080734389712896117826314229177393395532981808433339512283601892571752179890516472963683699083487837791042626021753883787982232734448458621081650427132962882446323005108460475277779427876307794089279261425026662450322270555760895978489701741988506051281930761699012093277585635403078970694081270314186889921815447339555267976934498361460688342727042011474615568799295332110921446743635118875429282798372774917576927506635128267101632735819738839051897558162740122782461828849387387667653361678430912297230639565541357693161094058047705053810628782379408875438450231147898305673145045611279090708655117156538026672898984829944957148202666509529508010679630351046294777667116387031966580190726647118603238980880852495698701802267549435635272782975997519466717691093809201969838814474316398287892621473370067353970497221298444543179156723320027185134063913152211346416030728519497776758653150342179080050842338230020411022225099549567260704436782943311477327835361366314309523655904328266911392161464049726218548810327241555542977693565346219189795541566647310485713332595424310176285025375742359265371745215871693394465540771754403635755725437593494980036633032036467464026535089370341430462291276471667480203997505530576178042211728127286617035572708989717914664186991660661533686984526964247879540901031425833403397289175915248906245140993929871072135824801396302833059096764180713555869585441963209685487773085570294361812333697066824630298275701333661515373885791424902888944022377641304058754488054434718637754991967728360410176168720627549459738457603977511186784931707304212332862393223468841277373343238229386875366816098216498455133548377449363477744206847833917309633582578780069623589234610841567404924536499800903101307105176537842305992902822107372092054328448252109637109065397624307373430630093368413479872794477988029342034212504133797764010204810856915219645881504966053446371780195052246856079849050443184409426323287026658190668591224030642004892833082417823068753168756752837545718125202407459805393063625174287865170062799345747252418974311122866135025748685391773155010692456069907894552821302997010498875594522643403363624454689574010245998700995501014315542999913943033358262478231026613585305547422411659564188731742872521419969305379008723104452782930336056881318173882572396094330863057552385588116652838729717196324306590248819142491283197996867741588678244023742329919469644004326705028321967338679693129987182361363660268143983007558953558606653749763110062864889924397129601710683780146344781745423355956851887785782942998678913527526290344300673492883813463951992768973150739229338783385447017003654231802286642220062811261094810212335156903795871548049548967582623676605594564302353892150384721330151252664007222212056391242184965459464298970501247043440386253530804547915289940359974624196292268643934601819550665450710703485485310024934374037419802704129620946423245671536473694455423836005152384899193597294997730819310509537522776731070470008410680252707282627914606068382819299134175170312858990193517022024794010506694010773928142191118375086234163945687225934064091323520230980329454115906641246770157692579721572427058101191960040676176562753011879422957969754885524110319098435640208350641227099523793273587805879144457997147919414241813323866583971509552234892554236014162942795076660293386965689062721829095199209681454138459172274666836586501591611615859582822438396421269737851931551210307834745486757772178055302253666535908835878177110462901080775395655151284379672958467239916266136079938263349237842101629713710815335250686158121934345892817117512947922175196569457578826899637640815256822581000280457185664863956557582563931407089553195816590014774333442275690761075508487148699472462279317370669059248332325771186403812426937534077875715298346046050686904417207332487506648807715665567719355601852519410962816328107621493151214795528006984754987138340589007885235372907347002651402086533192050624291117101579005629069742770076455979031641747459889718827485798297597672450651212245918302395595463576489654704427473219052441110534535198186801788637182333796027373843513897496330114325726761584565034517206959429776540636357950974216236056840628886830781822861427783823882267490900123937691707274572449006144665287174035496077311626900153530022905751618971165020860203209754874262596781895634214822936823379502241598239782796263147240083834199779859546836124149650990022239183516313024892290836016969795677868019284791795152644642956957629349270271816268907329625581600824770293547761157275200550866383889215618665648004931253858230271010608075982364796404857164648616742829678422104624478956544203326555434136172059417744953437288772497263182622873623159987986909564193946879508614687764744102415376842410431058774926263052297986154288204851197104000917091432736658651651332931104332454855647683172055571206275321752662868856122887736512950315739541852982002405512482041869254449982385479035846094923442290701778006392869215527501688011701799312299150678622314213523584102205446761982103917361172382322834205401450279113647937296947600964725653731907166653076672169879993378365859907282988303294695429919380416507866553066398139689033501420211939867685516077704272235683032350567473945218219628502026389732714070404166699785555418614027464945019053955648510907731099622529055219715912743643634429549880542976520901638193978751912480820363302766314744586432647773835964689319033728878080163929850467175894987436974695982703897340411767637364422219162138695909015198663991805085911783991892166310625334813922754447599386704111935593201634714907361853888173017209670130756161374714139630341315489390047087562376665866095689803252764290573243631602590062847684288036092844897284063052322129377196486590625137173155869825928302527993131485678590305190532698355309026091481195804322947604173842027127879431265864105317769939184233522101783055798815661319949999915713433175386854019602158743420482237848739042787764182827299651232442401654868284505745844292997773875961466794197944619334621705320080324767664947367683184272086721328690676694897351806070603509949263116203268102938528846331430292520374865007242365750403358865613082474593409394931350305921598365615690290279009309709652189317148863932854574720243000593304069322528981114351231461352326858699605795344502574223438025274338845568747427452598099804156698516595541127185393159396517636917065638122424243507783609493145177605135384302336363053671490725808658266325615617049626637134230729824367680270165450555392258424092055906022695416722960968950152769442007709395987853608396936745301631818267378075476832303774063494608325606346166357434594460016708256290654045232508990668713912810975731408397541258971217642194241007628010304435263352958785369548507257604416234306411357760931308323173009723814476886302836306025626747854542917602577131285751721661301953848891045890125981279088725265966713907467842914518420230163081345773080847904854151236163561851879158961699631679307332425728927798759969491534080924377686980862141968812369569985388533694402267154483157139509084039385076478600752069596190163273312241220249859494455026351004209515027903791553917900625943758222202114562930037036856858527884931910628349910345561280362126597578515400407969998149705868378295162946453183136309338747069710771250588776144278913757946789689873293659360699833741749835317225636358325458999959791123494935152241123128263251595908975564154387868035372752957266454984534898020915969767706406738876387673036261401772604956169939130929949487541653722926223033813251659881896116546015189283013380819478372866430812383994906886729254323160671329554743007951104988860065286929790718295852796685247034184657647097865083600979255769114985837916514079456769227493598570128555734155628496193573243137592666747555128522823333576936443421489182692392517835328432299277948319572327367050625689641808471726859539861580050116206955465630758231944978440614522622435374481624233905789692675636447685833422576300072499682338131907269288798813063760444701900870987533768427856735211718166786096548767578431138516950428066238727408181694625144663275125517251711284135804130372685822600370165586147065979476703439136692421306702748777568476826201241796872256811402397029511979924426843443194224920076614068813868227030142318507918476318822431184780716080101294478804692994298506537110333918632879858527456056396520613554332358669486917270460507878175287127754650581733833832876071138218740511500023833125193031207112072671529375458099916571871597178040903530038828755233801763205328893628931018973373235874309032934507978194884122326518202349012040213224659924396690212043255670972325105672679037846943576309419866452731657951196043094785508777878878393974584153722811157534189548888694324191782683572371552660701769117610952726229061058899464078402111636630444157020196456020057534653459497262913561611430269979274709691012288939134162089532653474380396054630541083321978845915036764333598617090913476160285304067402850332014982255986969040061707149880661313062378818633360977892215538102581381691200461546232831772053956715912905229371202530303229400963449497387601428329611734407315588384059417229853181952699238471013789273341204301699884410893976536754707533389412748928687849162790735507788636048835618687105547026034557168749483589514850542277364292138868395970337485737304439577854614279872078974563733714540350510616567409317091913042954807963280049274958924187497066694145425820979367670418400402836177534688644930628500060208251677532930572509919108233239170406972504871797604920557064372858749590619827250331509738010342255907475706354088100050620693008601904791162905455669209943247228093967925464118684343664265537203390586836701650896425465021468669121761604462964280140734211296357028468205919703749206476411795154163328661689068341819651439318001225711958036878388956243301096965102953411256171195615786985610590062027021701062820937118691716429832750491334947651287231825919197301410547905176647207747537085770884590217976161977660519929904756084453343871082368163830617657306971719903127497722946465099163274847334872494213725723690399797524243891861714187015487404581492226661257750773407457660066719925137813399797792566889788244577281699048487730191323381898717744577033581097525816862241178857500172850232018685739538756132040279997459156548667350373011604348391866447749198866699587020826536541188354946785612888426166398075287238020713156433731734087997752958452695660625846504597818452972487504198011062798720528133403620302183366728175065498542366016154831523391729791992742333434473314998186782007692123671533132548443211435002199719725852219518652408144827945093512041834882138769397628625927037263753070175959046594921491223579950771318946106257692648811249684147202205226145403173014478610051897224156735425664865199070280621055121467562041832619397746035384688268166323295969321747007070981617176104176037860006347840748280195937748126530571511345427092316883583203149536185960731316889308235674095611463933189138978901729439214960316878016631756918543963869866559123560065004687494120523779210834623922549167572367666224961304595686020507693479288394868082018592474721201566034267585510602274206976980111425375046872712868073841038783275897313801289670294167506692713273462625299469392275483187415817411065131995094240845229407592232830660059324524899403899567696168556850941644076103085887112607803317662373370655987532421907858446898339942912469190033632810405788948378696935670034405203938974406018433168431350063271897943849693154151145119397399832695376616244893627957757447158844534637318240884391663397038276443951849321954132654419968563919416176299943012536792719679609925084938142591839904923268467438565860654740234524029518869359076121088422851415883100178269205740478593203254844504410858111980561914371408504250653271072137100384705764850737488274878298099655391620843243123083862496515975004301407370272745559489238800441186282623817087973984535148487114038751627719311063037072976475223269042062300306766785464577705130716893358935333710549382367387017806742483254228251949066073806135398755645220851655309322387378580483039522639597224186111619889124388885330584633662417423443822573228973209269687876506420999344439448054942284913229568501762610809775717060369454852093854645091625519166567565501361560101733736210727043953261725105807581438378564667447487299011519590372683777316757847345741325160466393332482685338365314811782629851787730805994930968012461208494662656803951310069941707272208837906256803721507693514998800625719226959841256003913294842304233736028181531155276044306537772584129594224306072367509452767722606438270665096647282995858694485462349835898143820901618441373242440349455338073792271013577603415869866749350469178044994258788856503174639889739982954621869881095068489759419912376509380667522488855432147257714547293042346891306727841394137424798424616815611803465060148700015622616410927161325373412069156644969636581631070275969181328888696384913395003095093018622669832910654848926349773489320597807917969692198824260907478186391166205558618284363861495154816113472536611891776519450675662186531656956867524330042762297627926594831053092989996162111230903548564925513828143036180268371560846289096590895764401849202139680516219845377055473938272014156822158001833114805808175309315303258202430858034623416747571733846745981157952785680484987029970340075802313761917948318942844395653355391060574556698146030121769864282883077034016425970142644380848584363998035540261187423448783591925028116404987859225587333566241281982057788451825069486682977356262992720252775249357233504836620947377272065218081645663811542599065730585684929861433960632135326412728419382664543845390524735501515275072011790819980871521698084762783015934440599733425393486982062668733363602376268834918039784589724355947826328156111806671288771431848005850928319040503013277216120514407538090173300936952919719578652561426516097090002047792519292963395263275462910087737292832973994021324927920625876911491593697438014442933504147105818033194171794178054694943593792356126047814341007310696872429883515235147062987602423051971872561825612023949107840455210650560838969818541951127235019306272811593140410036394981969794178174795514392448235241995468984702435970118727035100253856692120387494779731767043268805293282442476170327867348658717232308013626025060957893824199478353467964646794360522605850554313771418811299555725603321818649133921622963988499803148827622092558413490571184214671333193586344717198389429423501367871676639432268525805165431777161228935856069536561177874662723135583090341159200916089200707530818290799035094404118543186296678035446272567241029054972379972789628884329831641972535436426500291857902041031481378257219589232960334633743844894628909563735847344940064832469157009818623526268625590612164540517183143081099689305988065970907881379657139396801545708724972842981327250502210687265195339943631162538826616053819582515412836327681369622877723810922505706161694686987630467633007145339986577007184990709039043225305652532780027656556452226092160948825397259443110304708573075134324303931984935187310187454640133881190217854963479382597884353276930770790521541316883885140147260497704883067446713140395379694283650736213761274040244298148131112031944441031867992566148966533751826699581301842787829854310192655042642672539067854778471753089509951062684285661510545040661156200643490113495902126560662135077820034000669988177292252917264792472630406714816251259500969832321847488294935168611548252019968744748324799247779340756310155826525218766856141251844360057999373503313610521081958497675992097579505707483173165339162782069535895134209984250839332139481632551730234505974966485954075549831574506515691931408964188780258654598904415313089014140274934181622246796823483406932833572572427079520531893950221829037888509012964759394208021487497491961372608608903668390133577382655220255830144022447760635218918519498937962060511313505224605188040192183538032800125955773927713446413473544421012817656565324808904112816791717696112228227986487905089439537463913141622119685061840839538234107738237299672556308848725594636701621828173964386001233891322199801662796921425914131781325436573426431940502940985820773269616766018357743683844766691961708276230367511970511365218390321842551251180409956739912076372792756414909551035506838367236170718500888587997829358501582036960188989173709509113467502536039217718731443606674226414680372661651593792508719784709173834539424493740137706213831412892167707472985628150007055440092329064503721016210191827845540653483071280737902266006247204985309521646926508034610706251650921891951221482431786194818475628656824094601590429957867340497023595225364325814176159315311298372734337634102372373424682405435439256932915959507134361649869880959234969868696837850069453076478056052391815360246875745054783390918832101570695137905758529771352182322920514317895116777169896069475808327117047010184604083360880087794026797214690643967642077548547119187178156321607340283567609029392722112164292006349664407759153376605436283027291311202686842692080417383712375302660768952820261540176203131168119223644398661510588399670222284069993582330314261871674027080878007209777440495936124960117125302299305682838476717963153501505524983063940509548341698811851279372803430403605000929445386084681262935037319684918917226014196850491351176538121029611779556222842216035193056861725299925423360371850076225923757262097634790146810912278829813866168934284185138621978544641507276419020270423455431769643059376093320894892383979469197421629224751786656318782148773403504224088781886580644662199136761267214104721502758173633001881651318918500898436746602051316676511453820552325137492491653183427933532882650414178403384636784302173230816087503478181284806088014532556987117142074817642058426220160542071638597708220763540267747629854673204942519041400007562005719603559314162248742466194998142876453547644241991890695402222300230523797554764038774235077117772296577726999828188746088012034472652464996522096932310082459083939804250809919872929876121558201661858307480413930181442100726646550164178752215045571199580516200488212876575910872436559825165745483825281902288076660359530584832341624482995466594907369909237001229706091255049939148327583777780692884148145524216142981019519537370456268977217678254717137994570099502958636805105129461476608468761532121493926228874755511269157741014258307833619721766161835491858750570752855429682478354608488656302590650598332153745160534897920648328797858917609509489228715988312910873945236807827494618859104037226286959212886843837166608552925794946517309269806774851793959963717962998976023897332958806654121131599362747213557069797481035799958303291895611678232045985359113849246085819498338116652868957399543953183330345301959471459138353426942678039938640246047813061052640685817540664175793188056228103293641005863708234536975503428495032653865274585549116022265974586132544311982964926813770263570584607596005083454517541362616852262365942713828230664197168088461738594830827260746628155589748373330916153355318309964429851730700467489708031661064641323093798134407453694818596879905742992560305702233929991935353052258351866456126702041230096918762572115999202811348219926643770730427989635190594786189200558409472440119001171498184525768949000793360225636587898194370019106260424607456994355162294362479802857652904499021193820735233413949625712470223269604418536964050411045216561036882200451336405355310495469860865122884062808692148514079899072395214007202588526092292496382679308175014179422426159472207403319963335700613780674143625461970233527557006439640040819797736586008123910561061800554170543336227637337030039294201196566135286566647536338356560170955884961290951960536154302186408587996117266503145090073695329407633905575050403237332202269682403087848243096256937748308395323050645130964512164356837442913032624203450842800822923097755159988566015110491256918459001349006873943185260724698751672252983265364967073485717254842233955158845927829995236448334946241686056756762299047668712379313440524524297357292375495781070611951198168632706636235019581877753889601928994416537447724462395569305335503691321535527925959726480992089817190548775321338654163500721847952440826584279464382608298589467900598437489711284468237092317422991654105475626714651261408934413811839696977590629317033595352667198881085471131680020896590286489572270657305707447953748194396206191080237756777254749586889739466406273028000414201307597004788175415817237648756930437167568843183164974423927353497048802827523484642985612625840304340495710706792332744617307140585077503660615097330346872648658080365601987546133870096003489812262753369027159829426107405795532339949094428100924284961708810115776221110008768853721688878959085703598700343740074536274110207244124200553215950958602782832422319652625108705012131425488620735422590077244093618164846381432539206538957733343739623684749175033735773384992947961111223856408122643544437741900759663569588754578717808662098953132764670194727672189819249500772451970257664943546829716851597612418467484011425284263998448874285190270750896673031500255794467953951461791626734749352344360109326380646160824093681329861179610797238533308979362587316389009078566429411873677903803660256983633628238107846855867014923073791107438928205617609515778164291486192188525969096468582161146872589429356849182712931310906801375483476709193534144987742586831389569634852492997107009532388981522711577271784140062589378178493271430686718606428427940732801569517616775645921567354744350351289079713957500094201599631206144254975783091268033119370324473344632308122521810883082695329423125414563247270373267593579486929532765282506519317144839917526840754538553518599865963194807352310929669786340580030308375335958976934990958469663607842896569635725795138218062382945795577412149836954056113259947284927819811507841492278677669194542352271455895488808833235512736464783192607810586324781216067005179238279338544095987387452189280478659795505668091598245124087841426776574979246261225734551799792803122598701859858662633569512682845682672547209477886984720285050937818982879111566220422745304124773304591961654189171212749813435837662115017323114101823724011441196786058299707329366330949054659513407980993855586428041580716720265529779279965541015862362574008450775550022750961701137382222325972577376502438337858921329601747787464405979169935750574371526313333524187658012532627783756570050673724003912360671058773040565337233524910596480610788239243341320934157931500781004645184712297322305696563112650862011802308068635245849455446938172310735681706030578482234458457744527251685382281065003251010879313217072699094774462745461981639624600475196254849188748771796042119718735441110857008929833741436581447227379087998396632237333459172381092417958346198394377077166735832617226365188018965161796894527589156264867743569644637096816261219732448762576313870332961604915762174399718889929136263052092676727592916036867310159876289916214892599383696276954428058327825644533548220948734734480026994470460698222104441548458322704186311845950374476403104632956950206165351787387239263779952848717007970217709129597796838933677994314830252108717161814612071468593148169390834529023763752590898427289601546919710555933815185027063536831987137380770532093920761373589099036870231730041574780898749504219876088555096680942169892511613832726879159820258713904549921791452248612212634197490499906087927670947288280970165304343640917429648634361315027105588141317648038442360333701213804198891651470020395519867502564225007775558192668244858026035721524050817274741171708849281407575243883337149073482774444719164969870627104026261324203419319371267738354174696656381752679313578433501967906069460272151913364615703060012179729834038223334609815400512630222785039152232975454446364149179399811814184126933572621262379470199304639802199440070146337525585233727740809580832097427668911905918670440574598495006804622366269792362229152031117834108717359602643224814612329964057915357428148446036512818334465759144648370802914316127306106160775081607763843786999785032783150080303319391995000010924979049017272751752125082238912317223848999476940903616764306848811725549049389300133196952423669483601508764744610539626825194652933118702884693108387456420301714226228804461542031417170340930638283970611757456380450460381063284041956788630964746070644699588919452616894100401224599593810484709154902196723928915886527626853299935132870685202405955252900813339463992861359832068222455921289268318708708691829626195955139951490793323906361022472596145090911008548056661270637180733053169471287377187962527630613804989800061322240253578021357081323995010901400078599689120320970122069316074277150354188654657449574320930786001067883307442253189318839543774528012606201052601908870471795663006796966709766463091302208489893563348596620072448460562402879377396041752400639616770447943306309452595601157062783017503105483828883825995823986647305970290315050677145076523249184014709737634859793431330507865331929685923098953805128490399170826225422381817053028903784776363674006605126456261608773614888574704819845847936296538592134955140396915504350490134507354192902469630532534322833859829157489970780956921421716069994051326354215201801725687779244996938727818569687833867565146424888357548865822552506781963474763406977932185939123250068028976866988681626363642527536847951430075733277862521360645361223551665958848544620284642862835054019872512131257123953276586354874861962318031150881639661057458687392657966073946377647590126884499228750311316918751528400680541279717332577544477733149380993202102681097976825524517002353964796495719642318973614953698471287467507965934608113091620981871302822733968489621740587064541217187998996914696955150892974311509884370119028346082703105652158412283992481463616568995922824706800584338746336107424866014928390968250295462814078682895345725520493380124922320743318007401187027117580700457114035491609815059670201793173174899601267897713818752822108166071340812042197998580572621895831829271339047490227385654966458780161856654496467915313445152343435155517056903500094399044684853868914282356170246529643646749346377323823965508591305828289537806626479719179954774102225987478832199206629078568906986313353718749547392947846607059209192110893451134561891388701188971633296464706898982683808989803232330578033867503316730073126167698677426552168298081090358479389259356775479387944911052098917584246081491107194343730404440828280848917789479633393570610353078777459100838898017389635794849327316321125215174528501895045576824569122260877711818207326619799703076834132285806723678450330759956393038709862018036247278233439634631473502187095529457598678391337830531365200924123879934011313748274176402397356480948951762988294650229727194578115472987207474399005906952395892433296696720219983780646461656722420142235729630624273459919364629759019898010933067992222288702613170164237114019819091976481086960684811873452682560597950148414920698531912728808203477182954933339927906799123187976237572381938765387605418140291740698354866468836865890268919103712476208293040164986260662037318809841399252235717154895572092551243720579898539661589603602106368592006389997383256649196146166708800354293086145234392194693138003383550228576992659973343609267228857143273410954027116189949859543206252132875358637453565024065559399361587022162296215015278934034677717502349779408502300678080578289476040636991772245314610753661832903220246038969950043183614904883941094402879810098792154198458083890155985181590715715104383397999520106254590856336831380643004399244189475295507009863128905999721315946090451382144334474857093603134281426499595600279125775473065042660511148468430955047335574893138794329923083751172125329000030267124423162526180473437711480062270774804230264054682410298102731158110588907454779214753559652019020790786008831133822088379088887151177900165633265332695976167476201895443882465051311016593526176102884692274620378085282846502262533970107409443775584894419195163450530593236705967531066218349794407769401148818241368031144172165282073371497246409117161512239064237130765961622963034955799598658347805618973111124326205474968803363624312978259978616765959973801265548941556692559965064434777078877314622739701482877664086576924798741384787433497999983340883762057705360861061775650354097960426832340668960552171259429016774572506992016711972881544497075431354349167086388281312291526984229066677706873315121779485501254093399819443855819065551373051249768927424669966754478406851126257282114046438746468168684883797811269718223595647138803899842496995537343430335189258650939131614147453700710723827995672176048234250482357300282436251189887439034043311372504439115615852235383849304147063008878828726503283976778616142356996820279623803654696526380437217314212174881528801327123435331600123752182120771399208686985960290080027253698090190692029745925910784009445991078054981354110807746289752854072818359601311110826016787449486158135989097711199473389545553957244318023836507260234668800424978507375023630632514199640780016685549623866295801288905403153574649823534564779099457601349079794002702684731060340061640779793965243448075667215492583552244063161886601601328548064125935306659214052993019705064976780135319005098372044168268597163926032391655954363926824739961353950338651711841776051940747017212330691472283606792991952039452827014550909315074347985200330721233688901545047366328240984766482028494892115065989766704267576074884451894938426696414975475267214518630317595902084982884405692149002165235793454927810068169193361121527904636384011905778789197973350778973616182991581405016386654083890162484160574274895470138572481063751851250893611642908805546147872487449228754107449041920099369756794931246486629696265836617747100807683233572969972585007474885843069293061808482341794112260564183570255266620253424067366182816123743774504930621718635106591461588680486044717281771778445782637824443214796668861421032021110655599006795501011170796259940563754520043447918761827256881538205981222675901243818010080025667486192341846877207233657738133725832330780016026483317533272413334289857841817902781686022697413359339712654859509850473419828650341670888503893381868610268670361055708216392256082587993463067142839036912274028611841768049939803534366099887299904061032253167685148449827743935652369059022373819738890942493463873785777284099762742517020765543041991291219227338610528475667218674642703086436562868165180158024568532304638314020151305424843503803811142150824981201023560876672433872532674702497357212967768397594798753947177826639842607634037595185753047228925370419531837849852820734110540438037721227825148881963182232036630867112670390232773553266095628737852142260635413167462862812864599887318369463503424918778127185538425623656090840166209299478408747202669020018086654724885081283798563022826227907194870718074380851845479451377744555597065413906545410188114865379115941948786384146419180454490829309010971181936847990726205517030835327990973846946690577917642542037781290041833356123413698963620851668043353741004734935833954495839996159273723759852887521591055190946747575370178288838082648331076161503295981892577278987556950364529646448439947363938253246010329908482091110066254250535320102571962698139147531854873222630035239325614539474508250472669353250982006711950512575393247928463812245855323119235109980041951735229770882952202114135200392448538788393744480257914713135142954494632977283415844384230747065588133191523974731724155879570044421752301304143682060741983389619532157538718539432726254827753168088272278744864064478105216328927361530518369853211973602990962030261973897935514863395916672588523585130040087768161796350040548461370822384913247871101289477045109577615980319370187390478071291402329360623469393440431960465741127214555113720846959847401130988311116964028217466844698081520226521129086977981368596923965897638593682175272333064785952627067986708212392784044956283072560573190656669418530679799069607708694297412009176215119793615138286571139390078224539613882601862764074357445293279937058544693765735867909556831076458873955604597981930738410990618776461411319026318272851531125875269096074774803332545403712149589477990518175725385554132424348184318325443409662287031670581610971848634822313482615790425950510854653451108436538324429679534575643471627410575726490175428026816705468222575533572047848740490269760180021065700295787864527361244245382095939996500641593685757927022691759149270257722617017124586250012752896164667078995658309104311823636973842875154158422045490793019366174164996896533405829753386896259860210933107391789538337802939060863570216122467248058298138083123081743196697407768411041759439354091537525835071121763340938694298194529856521419357827227556119450538146360401330524885248724133232766154974577966698029490577781005605181839727250450030962887809843175645504338412938713545551400612936816809404487707002261611723219391542873130450759521220077237819717223639035647283331757285581802683493953002393498960485880104341581474066255248847182472659734411454048146778189022797260035013612993673617953097362761148886872482586254518540500258312448691193665965353284649344045046175070329334005438467525018356248819126993059765842828958382832500191659634625184757748180447073158941653403564101932930354646980059675055833676040803974825440848050897860959618725479242705175304447581521075003196740531839151996744123812035844296993150437874404721298292987179565754446634275326160058833673435965768463128048198702076409798604464422621879734225986559946375295222415469460829058569091127841232773122023880311145406168702109000137868563700897670450931921855791975912842142236710926151613405400404857238711403336374740586822178225927997608828126325893425729902581867339703136410397172233172703058714086466756855108445709185445525225334620077264667814476812773542160843181274028640628519681161631843181843595733632820682918957077575315175970456482166640809443549426307565519738417733267909636358917277650263900526052833033246657761153744913543348260353387333602159625828810359105109780793457427361123599125584473506242192461194140987813206628750386303567126603470330952863742256488333939287180055679091593636047832540194939126771081997762360967684013528503019224951498656535797481734030483504074151195769126313565815974087808425463089659642499863520754127687501858755327007538305643949226613620507754442642050043391557591350210667418947889312120534071510611482551842389793205427637716352940424491425372551047731416780689036783841048571217307167131344382598500361441367758570711959977191382357637736465466456767877122610618934638625790585277956746008415974623999484849620882939732021416002599055880991132001882313525140712943379141879638585731419791864841689184528559630573768684310150007615622977552334328835305149864937148612617661978929796304121691012730149859885775335047082799204415512449396584202116782474063059828591340064483983121315844345832868981312613144236047658469863487863976529520413501827916605652220225325572039101295983552387942721560361409548884465306877555359084452966646777135313862330310549628723604563554772772393329515650526898118567072200255983793415440448568659198109500604756278022656423467154290633621619950109461167825623467306306376856710326680512939545414922356708404286739694396456325024356647466469759735999996714585820000543200162656656021862558023419033547350178915569764932509213538628253942679334235765068467604145420759920362116428232142993313492872969507971456139647778566667111642051317485443247976081064138743601866669151590824978228513280631491457957769107881595954309495677377992938381556447887477622741801545626914887316456624530666219041472079135788171490756538624762978035028670084339357919442363860575077294890155787905692453131349122326420988023767073790245286012990600909667109851399569485712615928882120701990046338462055073815488058073405589075606833491528994161764987197046641113222273600919965115698510211450695889532434399621837456251021095205139281052900056704622841688246646077726323724747434105695511242016483077228021188094741135531804386556577596365724240171048391456836349363125908698016360081851408902425560510846485303958635842394250528206617795734954271620958908974821681135113851398163928343300837664334179720423593184681040194545521374965726047401229770110758486488006501141071672205736478592511500163673154757719251570231265179599289693782709140424677149496679205272622888903226730700467714372619784351774570096888481200559504827795802913437263146358116700748398966620044871794507089854884700869171346870621153476928159393774671110112591847175174562700842806088030674278598441910261405141336587579070538451535157411125200692428203719554318646433747427420095727015680968388579194999692736911552990399512374499574083589885930444348676770889119117506387548763253591983702399925205551141487238000502026312583956241574220405752802398260319510904545595514361351862272756753038288718232024228811433916559981861053013069779380011949778459712883547054093280995686944069472547847067691550184088305006642077546463332493999517114377620002770653086577226526412320028970764231684645647151078747401891009222994835234076103899710774844273809905472649423569894684700959182576440374388791838656261539098372616193674424123494752849708038649360731159140862973188466232201704935755834021116038343269639145890295815695107226522489397399767932707621684865250919966475658855939541583776735383857109785911861825502212342225744446156113599901898533116190872841969531945209881336040651419011566362971554613868965086087521225343684087436197857605173577407649884174189463186957969739176423966202092924444834182188662618968172030577867724784444976286039264807990807992585600824865379923455924414827674012216154360572171486827871759485130196576615727585750105142778157220845082968140769930162089999521140609869572606169292201831745403710617925792485803666242363883347362163128406702627630256282291717675484589829035467370206795226373138183726020004956318236073980489864249064294011508655812462806467976021922502097276968999075877141218733591698149781291926939356868708431013728872428240565728339454167744729186682228476254792293841254397083294914324144112645037512691613016942450470098854179059110412554019587547236852934633173400671606228075082421417684090670584326280963780288422427124069141246312011459026921270425354690173201061067039476526267593583314239426023793456290806778305550329975299984027551185008811335031278371982226956448461504103440175298425993447967827908685482913559393283136679131004931824869055301437748118594454861126410840578397036543035859978863721014973339003779277945335584377023224909894914593305316606435585235026250582118839643266382849308160167593831581840385517807461151484774097564054215190633590379853513647872703212543232199575934767309288846355674880408448245661798328746722332686267060837272078290654760225121845819213685313624842416520021816798704513426956466820059256792126619597852551511973352606579901487972627239140512692225532334294179232134589559132159058318232937214926740527441928686433373163746669192842910973652623799558515321334351948302294214865652245872410978910017263158205344461950412148798644996199898569980070029451234675494107010849468651567303154254060897098196355732674990251310755884437116000923573592980019625102683231263145451615181917347246110717108007466780445318007195013479247990327486510670828012984002549292994138269797328834341036509803408391856068391587185448696709634088513006962514484824322050991121774420907050236673446325956767138816413629027298827461619372037923593785469302299910396940683232238820567080256846815087238908861175433559618031887055218699786852711656071042524811182216875567299418108944806535942022729976492960498736547405811810604944850504261377806162054936416546698216744646871721128093331574950687559153220381441489879927974221121242171026445794383189938934111141420476665521384154112477264090702932735647307064055499770579137690124598134559677454816127212639741261919567696409951072255044980972658006518015489898885595140859003049120625062103079819385432359278179738834823102250946210516220119456226331685843110961461335553778987978013158691677976799621464030755869024250463380884872057867948680322234251864224495780980065825186026386706819633306481130778612127226623824774094029392996306373475285992201844217952713432953024803363458663623832512127528764433383707770877676188393333091813785308612766004615731791555669248221104496891494676815297511483185483417866189252953584815312260125307021729518760153451513302397441211237154911718377813214340028162076847387723045938303540721642325394726359676763681275030454923610447426376499051441748776913142365639020786995205296069811183350016312499601569769640058382268072861834313868286621204844599348283653728332459668882322516830007128387484648120882738611320575857658542872304473623749090011424616812528294351385892982767010547929503456856523767672425373094685871751528376722038056963559524591780055148999367226486554533625445920436492068929243356597472731395667190147309451361918284460719967488675395776428726875849572920740122448716562775631384774039346504690971076228133513686362385606696264846379723344461521768775902818198591368879407738985730504207624872641070701552516172325448194295612382315622976139449647548265353578208610263266602440884366811766046001722618758408680078044240815131600531819335637805861274569199982512344556431548351545732251019008548742799797681018854814728131530793476317189755783756574324367356613730118763376671674888996875259564908296601579222393511715506835685274320251997005138908853552372597937876350178988612769486029720576827817441426031197153561068164025736358366053506995370988317963853501623306121863228816794579304031287505080271978787160490141425959457825401750435104540083155394448130397589894777839675091474563736809545339584233473076042847099305704894512177704911642888798915651142361710144262053924793072776000165829230752308972254711316132626548330009115810472598270497409656903485264232806781075147599072959228894959686035311963904192613494924284803379870398050906242945945979380857215828322998624519269046530785250858570471235418859062737449786812005225721440247193237590979052438156623377093971283677432998563824106172992462276178533733005799758311061425589243906284129755293274570812647235760432832449985955581360218592900403128754482409877241311072921616515464798679769422745100761062860055663069790853183962132234545855144881806097187904273986806123848213182866220072424829504852550176894159492676506302252592379177450599221799946200797874455256917986256590953934234187204832826570932240417753270838614894528251561843343547185294425321249707382190922239001054065403085021266143483763159075256731117591244521373113582750723343352784328478599167576999076650579166130530598935958748126001798447669992716710593520874506653394242423052190001601025308684596597100973669212050897384966676702671613563609605637240045256131396255118171251599901104106676096160698086902873260236512827132498664871023997643058347077093128289777656359821374196811946253513369426932428167481885558426112963690448060514500041578600561110124180657781998676718762971014134605407599077518321877414611240424621201414679367520457867778138561180226549659236682631800428689243713971360450972030471985247606965162737277295874441210172872878484363701003267385182303405884649276716518005050897484058752203893628691733996940414190832230016528346057831889362634800097723077009626749310078087047172407759404386692368053609870643547392996928097766299804062536846374129113352029045936561042772246353937623920877799695952966803705012245683523318271967205535690239258548819806622209446132141734026092863449977060648641284411428517693093617179720334120277841598983085670709937094373109798834299365992191507855580119026805654526303104758100632508468994863883662070827738662343501159242279413473740029479874321450912502657426986817263456675653891432655137969267064255704127834439280117951313529570921235647770807467992712823106925723485892922360758955246651074052072053610744969687908152249215940377958705044849720856157362404645308499776601972156998110787000625093807901376111664517616195014659542934965394336250294676872984380786423239437209773412981541362444740598733339564260431708034249036844115618036661152515046825051872196978413127731929710090104284036788170526211162212124557145307565363150717778548869253815289671822098464160448695383460272829594752699118713441374159499778302441480212021441102899534511868697842003466530576920228010993535458668941194941997620366614720480265118006428343763429381757486677567988993241753670109442084584124994372084196557017470193891471380306561093679755751606812140864321435652043794826845342483536080569158766801195080562544539170911247537363311552760928806876253196755294054758992697845431373609710419648636918636197681362740971512349022047735287025531357479237463514081432380830916609424887563729759052822084778825419631310646091116392111370704296384901530582024490052069867674021754665391759880654395027226584581935883650681908578549688258071938039232536125579735491069822410193531853629955824246637551240549903269304238957511672685960239522004472911227106494390974862980065076708543228800686954940748927067691334868774810670807878440198386394592745239835449670431186984285083358245543025634864831227197072265019844213309948552809769889342230662836613070113784908523372147115189824329304041992315283133874797691256371129147872720091693459245677425899552493804011148894408211431781040268564644080538097173495152275049441965416355079953104785807004368398907778263991662153146981157260467645826391765818929867241451507081971832399976154296927749555845883491644381236412416015763229410198463496030138319799988345853154079803971307686184309389177045324249100840142985081439721113298838640324753416422985922125103031022962271945907250503412802265251993557971034922086899025407782932192384142064510638647581418373888545751224674278431784032061073046926763649050121278462463754251771442812044628411066081146760846403831760066067739873731366825947870156674259315084548965971726462478320031975271179290521779547952896830781751187162700059382019844986396725192221817565212297150430523532056340416193660247091028958756753725939414992641066055751076647122171741814218976627574684052942843007509076385360842152162549483495552342922593104037841719078630495935633041654920863319507442417652866305292560728041047974152155236527733409936023058547137176205440640204836887208473675042329025419328742739136622203466850269536694295462024800908545904011148339226271199148584265655338011610493489594320054373067856186223199710008368548578031958923428095661713323008824446134822100574482568297243407205771874945069247346570491964904911867839992717317568050808287367793100433261512380548258684340025297207938744933860437175563025613047898846233995229581236620938702518742198347488595608643644497127703847098654103534982034478686233057725099202400340776505101410743387319725972354708876723074380797839620181891028233017097419748136038074961296282015289752034251998184492706334504312835597107809967837987696395148982375321162379744201752447468620611988681786187896663006981988694629005410835400143709804570322708762911913196010330557536136434768359410333114874216555780171694815384503131539653620722349482435922728326590180209708087263495170272159305612582925100709941264461025537605156872243908292440876887787595863133282478003030217249242304472322206505146244381834334876108757429765471630363220647049668724554130655368670328876425111968582523888077878932448130045732481049927885190800103464468610732302271407527517569288543502332189474207831277251940438534186029638423210703178966584328756695627956511574550466150400680286130847792765235630950936862359557436185698012520627036741573654911474326309860536686430462579751025777857090197692318500797831082113449204429726762006780826734347163996480714085734602542116316945739843984129048928075536689814820350511163665793764872434817119712682460575274347608812843119978948670640922252788534145273414331163216300986789464629810780031859246611101529354081930380858864721308547631986164795901270081537562625806208697498459715364437055723901981851907108823950369801860062639886266720032532940785234032549087849412666068563211998360477677955377298750229350262334406384224329288553819737422295903063629997791274221579891727281602943230423835605559379879353191376830108449147847014886463215859730243399078696646569318455277725111087216688074881965610430714007877659961553953876499295950955634841134498603164351128854433436780840948756466286224886323630844374071695562652097128303617419072643426545334597654136142733970696775601149246586256782542541872727049887662291825955290112125061672351521602735168460902305766534717239556527232789748758422249509069738689681432225761842354743094723111239283475589619242229753767466488910832440811586747953194746416989168378782315631851518689426954902698948973577296524793462082074055473294357198414153273689910316982658949977525702954536223298236606237976463572847351721520351037133177241653854719093462255539161233301427760600601908516001322087822280396498563054861010973252966505784026592615425307866949293773666113880734348519483135145667956108177297997507845743692517705870746238645752159077188506240875332563556419075340263200552585273192256008203174680603681357236007533183318125814996951210117548448301038459772584203708692994479160671426053780221875508461201785008219095140393000532607374450024167754001926952576392862783821697198202218907376816725725783789428043515841702511929522080218603855140947702271785615940869924223257248814195960491355615615104038187299124158650209049358444884925454670010763763911037279702871547348560457908778528103146687263941857972345749559574314783977138898772902126963212063749225803851733792367160535977519738788635712885112947150955497691695369874551972888638588664449566388193600481690288780576964279292666572573758206917480762264007407263712665556869477787834623287212090128796702063959210323687362196223020088908905667607563800666793619765741297983634804230235356445284373137938585182484013838546667314646831052998093883535809050584543541489584275495889293087028816061951572305010084301015513698785774466611592615516456367921514002280007191714716134595844413474141770501825445495767451909989482824737621717303802596017282136313656027078873060823966622493837592107850832212058671201320652461320844261152912056029370890316277518570741462873358135282042747093304550337345933525445744049153300308770103749283304397629342759267606432250902029395462587178647344529638442102159739711054964863317237040920058529664602999413169548122611486699941605433059940018760849282002845198815654313668857320482429196778407950455168289150887012819555341737232853368128608047908672096923742844943679802876068192236895342015438937313461368573898281191125461667597774795315918048880256280207604093323077767323084703108728181641168732924360034683835245645722313509762908396228596112714093691639003670062392654884163062557499136405087480232837851608383041628106971204518287213014907942149932138046012623127856822447082829285419385291841701050800206820747523176359852511180787549586523837054430362051173769264387286984751250260244446585792101340583143057592068445890792859073220908299122664913615128711326631987420430290675955523644082192737615270446055735077563916099999784951573987151713112969642344065841225656194475173745262346008191559901677055289279778141587806145595761404985436816917608842177798976818835110881253731220812646113153393837338862055813209189378509510214596557782020632490443891252599804330370179372984841422600852318333940341032971732002378956863760455924501043685274126365725275928952057875676959127192595274674987116322481782260967070028505719173622117816669944754010024255216580091707812991517931759891436727527016668970748559678232315040836870530002018972941220364060285416544752815903256434352493085387374382747021034287472934281982019317905731991419774940001712858228640647139812009496718522510302776417493000031334313665800386068594390362736352381342695787176355419363653079751197339666651851012585899073918156711517851304733346104082610314783587472114205911317384649627878134227765250940213770418658582842163471434381085299342811018431689473371548854831553639255524361414739471931278496897351311537614961429221867729853560397072501771383644956705247352643212717451998897835462208518527314284984449425639204786685339328843709311913278488594122853819219225625154319387919918394837170287098031999311373072758236242495517649680190860467504944006853423136878412601922879116541019311730345197803535208170405907065373494453805641704383896634425798287555834375733888066176388704859766363565770742469656734649433004845955372412692034616448921795204171047792779544267933777133352699864801476444802260010237431827117362937114899301924032013370921127997251834531464589294245895838756514858999902177163706336946838207805312910656014992623933270327462308136790462085192078922110357758247957610246055325665442221904469615350253719103079488940392924545827124620938998777642175972646903434265806759127398836076332135878923117845965172900523805677801057361227424071725908299065631801914816844207995047676892362201166337857039859983198098838933108552107748374791510492644756202710326018229982984901421988313687190095660717942213026412536093266962663354409226641969583482826099043123762146456002950273347539764960663602868884509455428638439824171178867436079156842939886104349326881366574740797011567561111410543363550945006693307452282960560313387929075276278604096378268715943345288493999093809777725191627263157664036937352101145359890271803167968223371137125686809203789478191403208898219742147980324357254500410329058417214725155703236138318679051908573044730959793060305329971093860359644994414507751344238531179589941640386952139259522016329413929601925204711198085683846586689847487696173447906318164696623192663031223362137746743989794284214327004038144712690615605652671713900538685583477883297561505050859954574055600042225704767124679545924389302045593220354743653234224387802240711371040411431289162195986949026116339477310905599272459281313928185366406654274806062948190234956462628094644672299105308730791122854899214811909525384710315723070762615974434483935461963163352474421542079114250382396513802380514638031329508514134923409361506553937736449411337039438169303797389028463100527034621620084667953585245077687714079496167519397591864247809641951904019994771136578139937791070308162462272703276621054712385333879175221743926132952205563442549478781843500132155261767849130740440909181774340811515432817853333566232242794844764580105834910686451919409246962163510261080869664135191696004734994437475958479345080047692246466568240505849269632517161683821660455433070363481114381171266849936762955996632748021317041833401632716908810264387583254455020821515261987327592037892160140430453465090835221891696643408166090135820440242376329354038285458011078999316681329529313570680928243194976566290188757234613652038888630538105878573156623684094078671128661582644980658139759448398384182914667176322083510842303415983613771352312348436915894028155346113401467394112442380398067000239858614367328958385343422372712206364915229650882974854603332908994058924903505090470448974402950083389087591303681733141327998317725385514085956306985134196783668864072407349313600289366837103728845564746977937804999982106414138160629696097497054471560927539346946869019777252758115821047552003571967535295328057418381982389524110900873178492195310456629094932200734944578384681366290504351474781107513245945317359019988150432662894872744465352610588337735693305508289929565043772921072781810981578510580726197928142706024034342186678082881271097731920372503848082170312293112878438268826342239525405242179620499615878781360537817967480723037098902162898629532903633744237593179691695047233047592726338211230953301198235915627263314453604771993110852531235229208146049125317177581089923827458910978699803233755165413623695876025416610660484162344499405106812485524900201963454519658108677042990525689576960022536103053141564774553698379677389325805223132288358540165460203172210487537022420318814567880568555124841187922433950464353876535105245157863272766358134618351463639302007706197283440157350033110919148121698642867471405380256928169616612215100326378543088503098474430837156548934575542169510746244609893134800986405357414099371183374834379375083279032032956318226661534997064553541088667291504659538635312199799404823952421808332888289757244510607626448803270921935851015946361073854587105271169447464190617027006533172196272269159221437880393627536184339523361155773160383034618517497642453389013469342100615923265607895825277428834022970818943613871168259332590028876467789154560592933070418081812492964360119960884085372539420467851657948539714747411958726857674259733971863533669257324080954370937530101718814225992512654374473368657083652428981781184908970523593528047432985731023489894800677319718494519933420469838212416178903587058027892188600233762041635416897072278419241070109439241466451282219890643723380729767495170648512586928205098164492481560062171653569394663326755629267773580093318633777093216432654453869874763822921832920908261289075881966213980430768962794648053278001615727195065458638902729151308380343969748300602185045199866671353509084280158169475233894991497547610208471042359076147095753825497400117421842205363471001077289135430643014367393038376113040043589435674520258746602295611941977480432470642164776852056377177573878214934039168594032806129914925360109763942618489650902537702078651591405150974422199220373450964740743625717260474719231119086625706868499469072216866687779818933055537009834195957474577246976128346870078387307388886496226491229184702129839637849941016096276131399339436579249033834353564077109071223188991186210704914634242096566275709066523044437925664513677071040212210143990484738963042445389702894501275125953749158721258365639200564235824540724607645669870239313561433737348652747892495539591962667937463858839472147263951438997325427031120666289920568964406461202526837521479158248390829911437966648410832277897577736608429318706700785946050764954723264344942901098529780269214456904957194553647131457972319908246367865985108799654631374763400340722292778945121786763843176472994742469478281926645535956646736402219892260645101866077528298748594766526076587850611294440335904104970054397695100465623170566360315409544241583115998483633231152706786572178697069814053603065429251796392422914706812041923909366096847052969048306851767801960457252242747712947114654749524654344198499667274150397839168852839740337599669605161083078475328652355147527199061752948641089573233275935154950476310314492295614387014484767953374302543857188407944944483687614701021890515410910812955560507091283483801113902217933974620234111872004692930115079470888340000667996040613788974611956766919187748140921029218139646464572735039995084690473706863557513372074690994812070218345227177171607841050274220993620419387497124821289218121592241552979575571367433776340775970764889448245201191180947551197115251751468705953888833977741256186707744273479858334946137567032110262122515507837920257816733839124844498929307757414443575517405007625379190585134849575471464031356016795325725149873074123799522227529993594506991973352473713599582210084679627355561760558283503033871080657614373635625749151173042593175640965263119872438912119423956715191111142463414813761783463169842125091553657462930828457276675373847451093873343558036529151438789765465977034803655756647151404895332318166197527070955618846265726391780010683403232213070502990147149958190213844819637949348208260480922134539171668231549950084254423239470235888153704818616318210133342550646147349890687585962313612523139745260445938226557252701122861590302416443297520301208648765371174392986611236692087059362087850115091384930721015840139961894168387747672010609592226641943056478425855758450976039056545486989330593434773928331287615198515447494104786365647957653458749921647645795449495203635068183610325309190031687438127795120735398154908703039266575742724743161765809299059734579395083482483427130092529509145992149932283915362554230619058304708639462252737004261094898664025957604885511816894237680773319801950461874111888985189900999946970232248803537482597765571108640184189516663463950012286539352722478905990051944874327809638611551073984252907896690797590408983682223685302075003407721394014329488558907638745705854675274438039173278951656498146916442098418051232295715212161653506619386533512734219528049274029213336066188746932288338640154482798424817629101149288556010938175139946872916963397552931651375830332413483632721505087129188972127388330950499108286669591222823462333058653723534930081151107554278055772674231891692515802389446694317987620908999851386248019585393192509453112201059716937349382953691720157324976934367854608596794400608604416988550535358878839132189040686140314600572580017329784851803452553263692154638468912923032751305472399076656098606430242356252131701881221578456179686125024105453785914921168283785352680002400614288163539630685235799847679805039007042227124106058810442169000741019340351431078120502706452507188260661521481791325437385362340473817801241562268246134865897654019163046795699598726553674489239587169857517120213750215428375092662166860195942228583106066845027577233610463654470575702518586539221824054648194268704033102197236124477361225651935471290194465284358220698904182516471723184397517328079424553363846142975586078341255459186382003975298611851539482701117237355459356832488225864882563034270200159573663360306952779906116865000399447813433448495306020160122968868603573522253817185105401938365870624723761494063957861192019537385918946672537149171771949396710094537063463633867948164821808708330166209283602727355508233707641186878390147735652624700938975756515439804861335135118920365355385418225232503634211900527496316308488143806075271026667690738493620379496013056831818204218031675719889379172631613280440996900479276135766174341847426151059444829143840099107478758865199882848755512444765537832297241662584347681044516685958810456573570966502634756703871190237349813600434001492788957727718736980876424502870227374188212807353146626858210624731870005330703583697163303419951871595461441128877776980779586104514652884131830662200265174513435381827380935047575803142002290491323974830025167748091814705669901615396471630428544313611238233101169551023095209166197097179864628399442669905047889910131101250875053285051518523563529057737599277207986967521525111949490433249462721360346898854426258366982505757757230369510059616977503262975849902670728821402790135020751284932088756850420032902300087643249256801640287861013641229103704187631927706721180612444849570883762132281203195806996122458177494044682547376142949849549363098885793979948634348409109380350912721769508930746992742657863022908871123498121331095980494049351934415134267648978419896820824367976967630415553692902522337586576116699824115390468586377036225990994272981342418795120541895262281487998525232007065570964837098169672653821487848679895207754006426519110737196905726387588258693325412192988018731345665652887061656838856991867217360061592673308390360936323261961760831407479281476668409633267814982132711938228879132497180045975647674642081104718653623591431871701438142077034881921186037056243677705532854441806518490145304544518279650600166386870292758919403571272021894310889912637633925271481346948031908005429977761709463851371778904225850972068758864803286190440512038266165093742033353719976845028731309334258810408610080840864106940669674916684724830474669476634946251130589713913608225355622148853019940640717255149472556071817035713428383486686349422353209563841548092449336510422763464637190998895191296482636250248067469965159475549345568290755787932227669950449716020313307694890364833195859713733023201020146573148387860706865543253856685753989674164460989242917090876155003169274181295835492512486048087785081871110880493235103128307785364710031801029717995232798225429985179913221254374949321066293297485530696770969923102108019276587877345112154082603523721209481564112202209610362289321641741915722510203442736437449375489051866253983234452321592333053593391193141039394429608803459798562896270683117598806921919805494049161631942798043443919857302004436187285165946812171875205695744346613569476124042595224539956184943796956625348499305287385019750606010186520336290150698003008107247966617772993149064907270582249840727674141417041662768407229301745917533225733935912385738415787543777507528254794139284868938892655337977872490936029148184137778874188939894254116090073826315321769733469206539130017103572081726322420301908433212040996922737854964018569203920761189224251990874323466075116127135749550882106944158312967252847805934064390048980123096312632738701582403550527210069265588275624130687312467820410794662787684137584424333826290828585113473731316853868622042646808305676807722999853752591241737709995464152969761293929329173088069829542553017299515376927829370094310210047911192494239953463244310410680734809627765396233107734320825300014723392103954916898050167177030925731300843848098475924936189437917604995933303285891179961110688578702745693722431156559042793388202782933110554471077341283945064214877637595240796521027098049216593452916621944140165322975083297903872452899886180823200068317478641700962998483286240896671978664442333376260319069037074863957033871160581820412532218240180871837161471921633257178550873861819807342152035913410115429817350714505085664121067780744208353441876664220342508475385949454767081431831918780896379808031387608755430428299227372027313468233113795464184136696808034108354523674537725148664588927899411362787671943019142044850479587048633085655928924713577258821146246565703417762038303133911458529716810798472203839127426922680288313349930301501435232704239776934294474499242629720030694484025990448990521827075676556863083082675733095977087549512808680147413442880151132262571481129676105598005426855699730464527242524998389785067244623579062739720421096678099647301809397797895917891044040501766909154581530446802317995131149403899352840977201512633624515488059932190930789894664016871669826919231518243717105582438451701496949670168795849016710821548459945997013553852085022422677994129443061982779596752285185647833098016894640968694601713276731713926508439435496705033792193783096236466175413854913548899053005644037780220142107280615739962736808665530123662249823082622123992118753915758592020995918644723905897199530373140367958243664043296837471960812592024740938898620146873407099080594699605767413875057532876537371247998473200855454851094575837196250740185120139045459214387307687626124519171269896524088183962382018270692467299589830502911679131691669031308710838219907788567051165424708317031009088386993273327819884222883982545356549011264220167120426178321083554655322643530937664008175156053086812745048014314476913811032036745473047071279189777451338149504653416829236332065783239462213012444243913856844025775748335252377625488182206737053514800272501600089346849296207407831127137162628037274848968575995414042088552180885450808633823053535397184553562143199766932147745926200968345546550566970910874387073095678254084890608323450439100265999933412074984172794830050679998451115524752503006058463457014709829341499241611235700557244571953202323696722419777669852518789859656596720523651908910619147081321794759469801062731433295783700311929246123284230602669697063233019151082781321196813418528984784998940064320723370709119810621525241613232150754130011478982035186825441827864430720069799992883015133719290661789540169327643599825840268823262014110783228011091573911909887697866532325195914335015857108868728314096554790491381158801563825345279569981659426998433184761108521662371967238272672062631522472849206493328866671824015184908446211474081266663394561767951612947715178409306513677876976832770946866837806465818922445394023437419697867957982261008895643516131658766432291733230874192740628544641368770551548375529931610089813378379225012103452004630906489748884170393463479146096270975971234150268557648332604925236349961030202012655307963830820155970800153825256933026918435419562248975263824748498154346065123176756520914664779488534629767035737333644079931205950285170559508224037436201594841877868234691656481205814447634013646938267880499393170174263249518791995510908852563971944701338008566699479112882611019179138685544343733752687889010970193267026675854032545996753754544709411465364231759748943381130427047536912271930039811122288239901131590158165226402749396642826524700796257199526410545958790075755580117483574738690574093366931183748666078610173931734565086117444480329198949825435556058200673071215805874029116670730309391375203186273925439588026823378283350013717030594321850787071941532960860870992767706157459363537006384862281988828659742484949484604602554483704855655484542672990101967157210969437935053999489884254334775503418036139729648494281604575266099968063658691395447507390135604276127123869890056980258378205570880168273719081910328799127890660091008746230140232162775090122389064970384729892252463197247310038132399544014217877309875243407440119635266212679101013248163972285365753141824758959634406943224897358421262527079439060766861402776191983711485422971035379363973149961635556187113263323361273251246924746728518081315261362564828116155564672216230347199353653439913639556686230820092926495927839598672558354199480325101222535012856668543950697129288414138444544687150716558198804461686467765842263671700421530791537344608713857515263151616511158620979952882562939511393270406364396898448705289966831687603999018757050015987066346846990716719312303160008497409119476929969094286835754391305129456841909496597321957926475600205864914655085237345236906860331106206524203029057238713565799091912526199957017653277182305927700114878057156925412028570094492969944605434816151992546895700848573339461616423309267067608136158191544303128747756317993804532803343270196277302294835198962531050634239938712816611504811689065777300565903621387301578686651664181401050958065893187800818767454142956659434644433856199298929282251661219946221332404123396532000380208431603124031826670174074486356071062118584480528745315843468227041147061118114046470530934048912969154841854341415708739216349607608493610661536065448499820824729301993516885380659375350767137565406642185027864664368962410680704547516116178465010220936779019018197705452137663505183951001752390772468014264159665182882339916597964389930687906388889333135742015692877610681308456087079978407078153724116649194515426602469498357449931653145662877276262623632004825718229442958837992486780590473425197746484405629430097095568879240152891820564677400163337090505616849379215979300176085411781364612111454450475406566969563301847601250869876899491760479070418601162643489744063071063343145061111107183476611694406026802493262217561942201080744881767650667365217300621712296701544722596966610423155751355673388925541555986474447749817614775363473317564610616138602006038649792711082262349723506712792824017680300633117833545877044077012945019527516987413998036462369523665543546114750559411871420223198452778111392794483325688396959346763117809098789304214563258068390693315057899033392385582903612748143202864046379093604323660037134984816101334059321378404414048676531908966422811063637447906230625573256712771609045648495460153380141168741333462749861165823315392612564896910188137078692374136840355565560031041049866463578062553606823894575741266554150195293186313741852819739540028571445415710091021927249535143796353036027055490941338405987539138284967011237623989035125343859177550313038556602498236669330985244327577781227151811012825257891108795763036172958119638341486301526609273228581407351468221080956308530101548921804280596450809833250886612189617083568055524148313724762276684282994119176457840514916764548561620064588233316649832547282342334444126712478474883457597161131141905051018128162824506675515095200834868804202485414681339168421664054992153620545879550031252680747535696819965267667393732684213560985923369757465222903231087057331958145295638669040557002815784184015070860371467624371962568433183523280073130100299911491400095835201081445567576617685778678836125958761480794520750421409516385154779998798190106200400999917983709461740413457124867346242652120646380587353177689041941590225964833916406048931818694754953523804800267446351115967328403289998663011205841767398094160741970995559510911486491650203396607109907675837539981413346243412994461392669555948898419656777247434953600288375794207320805662323084453457632023436731672928770490197887792430998002625520005573138700351357524906202772001372148230534486518752346557379488473889055102679080028879753918288087320724687649885594729159572308203122176491889082401948120470021719407587872135871457270937747711689557257525276022259104919128041907569110450228958627042810246617964502390220822268929187540881739237501384752238585530732869259041477210005283763165564359778097721286824768756697871040611415407508525530785412417914562434001372045749511409248015879897127058179029417555364158358572518859469960197737812887747021036641491842291750320631217037232900520740555596892257701921353580109577119043316424356104320567211037966470459800124107745248049107587425636292732617296144818634735645415666061989113530322655159390376193865481750921300525176219092104044108890335566415532018648802219410909836107699855462630810799905365923616594405952937318780400963554037320151022558514313411402080256371574254584678663242911697286111324298234936416344281210122395501561501609313778941155948079189270437624279616913349744945724551696488643158052354720863991057835707436085163846882774353997490921333660848419393712047628051806293386460731369854639803494175508048179679108664841463590033550749935743224644656684580786977316723531558783618626284326735042826055865186596632095968678864646113184474352743218687008306747270408030631700026858052577722490887276905940312472112840618580042537704483201357346102825513108265294607124371004626345175861951584848481105632881595571339668728426094828343533371789067963417525930266588856935474014555307564239967835083589743285043252855634168173687941099312922362237976971770506188901703330309497943495024635566927980152661923428505231311622116880163312459532303038775855456144315772235525088618350773990496177588155616615097923392933902834996315038875470071578304894005724134850892702770388243812346707964560823303691231215194403715121470446114150298613185261689664889002475748601708404466412574633841993188773056042389018546390673325783942325757115501440726990440194787331232965755799598737888207110012242031426465212158183984160561961496842942718141364822316848214422511091290584506230514109486893162478732112653538665799734282572138166933644468043262257995158015074759429596243382560786544194072813770334282386222934826568731958582047527977163925470404077672748276869344536626679803377527047152828816687899132571007555320707483561891135655056441374599400932661152799797835403690312757328349459219351257732720600151107084810967934767931729699221438628283216086891815574421011916514784513991623839819474012744740783981867487533103032178296036277660230633262743434705429156117197716923071749318189390306725918458895622484827322288534653693503939860865508153790883786058907041603329963624640405464468734770699066530326275860201924425088411570162517429678973626226053747725001734803470967782361373513004073084879200874114956292541868652859682476723435059671428215979763082745984428273178312593250269724640152109655553972508596232850696196318650540033212298371652340819643804155645855129481527518822373329421312790171023581297338084341713278446069134742443683863672150919316800256969168796852836598987686810019588936375119015236021801294730437963980836422279580687677502117643883243333526316097239285244384858348168115101435906600176120451565659201848225549132386132736174211439102127689920016675789584543039349935525337659107905111576443715261974695272234880607386932650637404286653293814962329253457493055161924505065481353167443448989802526090745898166790621348869903732878859050904439462341267356252694294281708750133994716464496678590846724094975118217979844407487933063201754094762892041042579571120461188066487149706832636347880873239277334806739809951177817037536398659705491754159846377683893824262439682586999882541810216323388260582918572131242542503597799242284692137237032177819856983818621855401684383250149390790924779542129593043885461881735620637635225130086666039975831027248103075325341993787619019060699305325553422151125828238855236574195625122966859578520533864796183018405707444026481590393529837632682221502666403251573253932639402572569701917120604842852247386640502284991506951851461918694864477538756270649269706044854750498096582315701754540028311480100784038240019787130872850887654668796020740002888661654393966592876600198191970987971333347658572667393776508039819137058373188279939926698857437077464430214780749133043840750777932200276077084177113725223130955268691475461048055671059734821247335270501534476863626120191214728010257060382962793700587284664540564522960491172696058254255610566861073306900667822884991795888725568276776461708918545597654137647649267656620487076169441825101873252091849700975042256162997538893738883080007833677938655844842016391643219822122895581560410557946885789720651000314566138641676711513183994180206096596410878479224383760509214896587333601178323341948001879225277950502617259119415355612728636998307970596858507493215168004467801432696684129707212900047358185039802830494559776139060585102293678119647078766288240627306316184939966514209046505004224205120130658659347244038424191703687443795857355526950421856452841050777883699838712982594290254090365216585115554076061215604785628144329540462861114302414160977881108977736131164872793339407112932161764840540443024173396971539970442970378669251540578397163728964665582912128157107760088179429179297224857297039821438423738834822432791421527455056344246931793362042554914961540038821049847637502290090113354287823162748213166224805075159384002289788120326749756153451674114104410574116364828329608399206223439990955213616561869203088547540731469684768254245257309664738076663984741038061227178561774308524410190093046838909902615194395242145439958007414699565733578437632313882670946975617164837802679974339280029022492542343340544698340727995113291298850574314304584883840004303312447000922503155537452677108084959713637572234173404224307375804351217005814503437977437161005289245895442327237743082709383523578305126683800597595581970527958640467511049872546553405191265887964755433910368104867164241756179823986837801574543984267098173837066734361265818322470310796960771853111802199286989680818060497704108586366998957102835664187112006867316159174228231299911084520176879505011945353438015137154400068038500056646999340083336538528624468665220158941057332090497348983481641884962180396854228992664953520026878609802673671698675651642295315986797638628306986890183368894403609253400484046940062840649715581915995057542809401951426060933894452381729502685138462797989965245405907099237940108778487904587041092885729035114025717178352661778479338908364123721802384801914040940470977581174502113552610184733810540514331714215685334767507402690713092453942716231049047000670530458044354120043927985681794656113587786528579554580847634828219436668218778832576168013236324119929045458186101989279194063243731236952240900484467086292684149858691652101872757981131625394733188816672188160780862244047230807468092896984532797756223740113514205578386274466676527340878977871995231159689744851363427950094010670111793490873352126941458904698879925328321648902137622611141912707108158833331658790366512403463333784744805469554733254216920196362626620702908690885450710325470716436232128600246876739250266142260838563124053803108982664269775059297249093100232821790996070690076247711369545975774312453838162106088291384483087126794096394756395506258108526376407194291983711221684521265485651455481876053017812032901820158141644883341138753999495376363102892029334299244172859427574944162221701671409725733823849720172919396108807597812554763941720953741358134819715715464378854346151879193720515626834134464564029671771445130404395869697675931416157098398999313117582989346695848624054262030756440406172261799940990264078208042231638393454508911195068482462405324796814258810504001753695779396400825923336530305842007605291915785752842113577053778766192205581830733192275456972941386880797888719672007900739504972161272347593150622884357863837598826384160061544866982113061324682612973171680420618356627425827273905029438653976423193414732065207805546792412788177305620653956908241427205955932776365169014832279862029864294788441672783796304522958460830093637522427513391983452620780792673631753760394333917008601155738623698476903538458278882740322543557762749857010294940198349788374002078402179071686332498724057209578323994416350011324529699999728531541585458932256123271392993316114933257776457000477963559913001651876852424052567804397664546474384106583149496555922625189276480698246993513706506823037772765320107318785327866599587834657764747402824050203203890976258468824800713878585068272938389599616224659603760140468742388935433152091834585382585861731221112580837677969724706361005074125053546711584606060878213213484760261654995947622285311888615686402711194663990080357390296186806251249737356097370283324430110784581656840014200410699472851990518150229773800890803306596979005712206611939697206714828420844234563741441049093053696921269757719440042699800157517034628464129520548405878284847973701663208699267048896506182614663627512257841112689511864026899274117290125508370930779611429224147499294085840167893191856673508984377779015201870126424827225235646534737073268011153102566274802393131851813432357916358121764506269806258472387665499812487896642249538364754133055306295267982839183155465306056729564549886393313034841132578112699476963428303382303484565569393028300566929797400503353893033850504593264567431112743907649116234410204455479007831932627125477642674077653198480406410573804082945069910294726463820243277597766141848473856525040861347185627534089214897269853021577547732412714117701184300355816809335031510737837636970617081005051644634727143857299294466359230716856420578881049349725022369447586331406792710400778433865365623946837578619951979889000104299291197743949692399852890156867191009903564612628650638768481669281827769416033691496053215295513637704875435393979280102545852255304321330602535877679826697196576291300275530084716511510212219528201720106748626118945071480117302135779009795151099519867484244810792314538803452933823026370848823888413771935061715615057151100507736349200774635475073240673901713382936184727844485453293367336133969060894341096761415744864108107466282682125361251764042527660328374866839616639043627878090486925960165635345989190341456807771741310888306519001525094265089568883051222451534851658070988259977836223315980936788394331636020668075344736666916091261902984776685092119312421135972230254930597662262989721332623725506802770310664976601167789385956398365184025958981723371675013096906811786962797713738381751210227266586144457878058986664603018126539110172305010375567450186900981693844616343302049585774922357438362382877652169427521020706591992210416631824698931940926991456641838777914143449885275671696964536927565192853066657359381881668179300937251602534446963905936096330348450030420945635249471046522994007112271162288605073988669998635665515008875644809640496582457234469736555247106588239711258160887379401886442106050394630447407593475993223953551405626921172897564099827122567138488512774513887064430543738816366623798829484556746831178897140923406922636237897525447948480929550811542343822230567618546438815830649237303953277067261574689171420193800450583222700105726447839224975740794523022696327381980038400764730360550398764487997397411683830884676897272326478852187678021740877125521870954819290151282023728723491548612043255100534587542931189838697749527331482711690930153061635367020579112242829469402481836260905711472848376840489192362323442498221362038944895504640998344010115573927438425061355712149574924560046831922833614745546401153408492591108842824931550569989988277859705332248765055222344781636682139327522255306130699087445275062704701488877691188644533098909447655805612104605745567820044245649770965662212220034435074636157006597981435671543597279648494309403315218479757910746270784109566021088612781539182497402142389429746413966417839649252100747874390149050106967597546441047741195321864633266163072746247425819109799461048473628414162687086454679704592958140132080646954724866919274943931246343174004232627261579961823937529712835495260840578737599177655784545151983579832104824199920838847439113783711592262441756852327304759081373330785172628489707883554961115394872567075780112303523178837554367680661983198302457317360615323752836867067023114771005626042208175767580038541878441481402934334676124951776682984202953658530366301632357896304223512585405211567813188124354630606319528561563393916687150894606498878186754004556149675736985107384439435443991007280062108935666668964739541997001992924770129397330407853682655944938054284492284062502341534436655381196560813127506212022459235883644908508385670889252743466296136974125460215761545186821300675053610508043927139992364069518493483161385950170376275561145583968336656381155220160540545244848708080899923340194017042306529633814259143443756335259236078784215331877416095835662065205628392138940556464344617780818376829964634643349923553421211544271129447633998948390047992546656736071906124802828743268226469730418361761516899689279643795811249223766080083090359709857135981113465550383791074802703447729971631442833727088890140006507646226389765129116357425310311800795791788416020770140964555616153077415991974595662643688697038967309901363054060830368091529002010334936606928300325152714522550538801447400838682312200710496259295239147776183755904253963497081770052332658686672985354278937456729463524187422417619304090355829207174648462405650652592174112026598618432566519596619655524799064386605250128580671985431107568765577234168773266192867548099574483432193772630840654287276194076243806554019003964322119749085217499121880384942495358243810018653402912076240498293945204348278924148850130990030215495993572856086201860187607828487702065875845021766565399159129362570426912718342492373557424985641952755548592933949629612896090864099045944608447000455895809394010575993782001009962627556805772510658022343377995565859660290425765226404130527242080864527014356435241074707150938551810039542590410477025499993211996483072640761812226479678602997359164005267983950478712168488317673105325779516883866865788004137571196426035448908207476130163710422069026952080109218567060728396802094156191813503889310430381196506083916724559004062606603079238646791267680326595793534455672310252646919296586757093598446431523849496917283508886636072675652938836442313510753039582592297161347027294678411534416567850446264079590777115392192484746614316170280108960498892200810047455593738161318603433713253826191143771917641484658390856712788718101914932273007728866560254128529600912812119827849073885142561204950675338010470450212403064864474846426476822489725042018460180871647294952370079085919084684849649426183106275044391675302462142158061258374929690086110946844670858308571579058988784027886847059288331423061667845707521230138870583495887721899990626745004005609550397219384652530533494890874009060328816979186253699747003143301377967629577215004474406561573094048357460831667376888865633660441159840741074585571594971887710919263569159781188850854166779207231348831108164567712929071940469211464417964951305853994369640581010503874890713691932017489939161518778291924236079055031749280119084942590037302441157626716132585328097316216905357297149251066426764580997413105124177789317315072393283973603450010806363527894522877923316860994698462287305608934283102317320532131756771757387939632700972466850343606181867454599851054433629209944853159432483883345347423158355983732164198473754215500207028161526576238847870957583151017858479955526683956133867042295008171721464670388852909304907691478821868625649118294106860845488559539978340895726715267210134117358713505431201008748912528509044012649781334061008022314725770011992671138707681798635649139971278546263460501620992742470440763562998516703507233482006427289107445738736791048325879688951319312296521170569218350330964085970372618677827956241705321754647634962940436099713287867525841630316390315737349752991898463539935058382461310124329279292498590596278019541092715649328994696417529731128528527689433301355117153994134979963217881388599641293578559691630331193308228681922178197521446676969119421619485382826433045511002462064133962917318162364848746649673200471480643629103695395090370079647041914370701081916335960862507178525046260125218270622760451178862698970064337411765309264989013805406322125651735458277811975795851550745611747177849003750031589830954794451199603446013430369309495904357872975502560123943797831683526464977221272659921284254902231431961206698839880898726254826910313689983006955583405832803787346149191231145926825870405376933617715041631186112728898769610278032575933815742688304998262115693638002777082975389578502698083055155550728122591444504745009209387126053602642203427452540176361506614198956308737143372518541774421240598180187404917082571497135585031162333425850530342467023085962843438041109559082709175045133770748820118734866976372181631642387984070066864250025975130027575650190571490070295381188300746060857161494595269940593206502444941395028278837994018869464934643524576277988057369153387674748622489216167980771838266923507254377421054789041294538092600777799411237584013972184417680793007968462510103810657058039797503533589184469440092019056579391967901996158036623284700483785053048978971173059404580021270090059940491914313120591843176492946190804172459840420044201560799401688565525765288746779143834433438430975472448486854552105694244629593523019287896478334462032626191041906139157873939260142634394225440878856759345922724065120372013074836687724534488238933408753801070681540693526328384602797730957936488762229354270529790412444519924926120908338523347700386531406652854405800057798430583868947096149195433678319392816727610599345571819860684396335917189603204723584966575946871013880396891869634737732012681800046398707695257003468092060736076743701764549123559007968634957687280841083135425882380708360884652987450932067419130091438357502340645427597373757472303848976471544314884391710214954213508872659434595978964959989060130031271178667721868952491387882748423102578539897984523976077555585116268263892638173305869052646441380721859552025582216697654244876215914228845034044888131316480397632151189435379443203829066048700170843857357967304122173393531399843343027867682420058754031709535814290254604467276229528676469856076663382759426762643946979268298779212497053108091656805372483857857226893878045269949098313399656750585532900278349355613488944829386716142707194123949390013282053070513147855714873698735056472775839111390617667371161372162059634782389360824271507640776313181254856508358621657746782826942537583035149187822990679442726707134117070888186348680550866088338998569394873135834162305066997577721956102034325258414474820904630902713881490280914300485578361692092547992192314120918435174986593903817437603898810800585153619932178309004806596572223124040998095008441692482404401452757474062435547340295472261610452723625396004277197726589857729303712376774672215163728569870993440809958574556522527648140838959343422411746547478961409731132764345457190870266516238529066083787024148907514989428298333580700411198096532895027630600052536287654611961243145890617235354493754615649447325397335736884367913431749205921423317323473485598384785390669074827894758114172672239120166384336023378343841870497471521915250682324767543725575594774261639721846098660240617775149180840637615871772419429158328939468213855720217883559758974559404521791462939163963054921838741159774809448410252903576713026022421805962697508224418980769455215146111244750455769962194952072567348887609144760062090737672282145264041847958265166540953785970906391292598175719853043907066622404599259622622641579410378626667635143586078326238211991665389779494965518998063020468434075791312577677295404060432732979669415743947538571927295521358103379769524814397549113725474667425856893083423113329132956863683261975014641505212290154364866645026966693100973712056102044422491239810841226820161845604225245160868685919447454903539591491965774900690987197519433404622978446654720824346771935228186461276254778532396705947570676057262103545423654254043315669035907532814837894808187824606740783717663564016594404523954447752462367264663157621654602631706002226576445413783302092659713576868597777758788807366260095745095865398685623792656164844194669916595072513058964670918337411618148208107904126461334069799847650449602009016452415086758060624550258588676039265613627744657764790537433169747022370173701082646341422898394453760532724005144461701799040178196102364504361904815698126932881323607025129375024120754502650233317366324327686408455623274176587911711875580691976074241361146004153443306197680377897999904020490938718179322198171895043180041156312793535150995572258240740259795229277657788115906624873138446431024117157008115693055973242978573027381689518866495685617678056372287082951973667147449798253240123401679191333753369504809150507557906926642259612005111039272064327768457096589590127424066060539105448741012414182869939559196199006401126224703192891391502049518472431227666693921283005575943729069406696046340076283391349589152889479566449338933147192298524804946873195697579659496286766779436521172042688294451255017138584982395374684286463054030685077727584851862383212981192679323319394641194003525416765270168684020501285758531618033945141401822862724455290638361876820759846207469397272971839350627892492328832121969135175135455788980366696830288243290168827059587137293226197697206749890648248665209673945953125717626143838746616573554375023125239986311125112617150966527211569951688352836125492002487389754050234463023451250534930735461416563011716379323218446531068904253133634805337908235386626699046695312148762575354211991478699880601372493450640474018883328986645854999477394375441404771164172326259720717873600090546948733329882203510955143150079296364621159728848106139693469956110534522751781177088255535971946018245292890794278565545770816209016068632957507559764426683721830282880872166748867856385221233864466715442058145381558576214687168240907821841341773959188081696573511458747407654936049514302942947796565895986300322141287492648130306433901335924106280639126554916782311576499875976687202887919727209190591856472785242556884309168339215827591979069455385147023745349866269639920110599365285704728767463626124035447787988699339980984129396523119464587698220655531115510798711003655600752967439166653744629614611379704067224377532666059132320627895836507168196003565720030775755140220094009289602687955640408240986428364875299791175680281525475215062584408020767304884322565723681295371122727838274059468530694257132614214833941709917430844852687931754095835712992824450611579088744661409922736358390663983479576983032805261066470724139545658072172890198004767125559570168146418950777366759472913693381949543103836233178064253778209927856358814867300795250950047547300958966840628182359080581545124869329875748041723703763326273676993493179045082950855419607908266889677958579640082784629148070066878876720167836236702344320454493860801437628021741833946068598941990706380316516420317279946712202861850814562674894923196832311529476745236774913211096915442900060097005917044647300388637075889265483009338421567354647736511487131172494155315228136084179204570215276437226234943094049178907472057299825436569364009427491754514686365206138421872402802835814860091690058217660712605627996303824021954209025229500886190468076843646891163936231926798724464309683717286935747189886995465093686837619439434558251075901103345370664143651726661697210972760931335461948877380173899439987101236285256129379528021724396364589367782214023846881402913647273193950811572233336167444023411179430574130520473493753855494973854615365414106683861729836543215460217522524291224985840796566432628572664143988666043905395592532672658903095106030756080160135620762250557777645982239040557280753114045365177414032057010964979132900108104837400962274967456546981221576266081767542438210358756473942517079575721191423465564886734808528758343792341912881635320279245697256102564371019932878870700869556723208855463073751492596149245132204534815286412527667611116129091967459354053476995678235038171992869579541234394680514762651968177065741204017575485682504276501762684702850583805341819040307520034433963917085341664532503659486135127269996291804393202565003358636632316262230343999029470943315306153548509758470960163806945501854379798126694508677919762927645513617453613903281170962692852575951490249406149976167513610868168661564860838416590959581540060189542481570741467065625831292907955654640386216959599708379251421717957752595487065615874746552348624541825090127081918032482007148338949726621616053709646488311813437115726438591281869261282821228439317378631273178850424315052418245024915708608220027446733269169870006507758034415741453299683827443183457029622943920387090090166861345774101928519079166191000759997947347279015299904808981928545938519580557658843394017333673770585518253510597045872699249209803730310713012136356981647259989534605935197397014184296840691621358236350719986275786818556071428332256528148256637312468950804765790947642417216831736904104009724901065786393790905747189137284448968826919872364144415968204722116600591724830307588459327038114766788782559988196421058076672624477779174614793215636640121740877095043095726141238183428359236705174125166535052359772447970653260505847862211842469189072573087698744780306178364827093725801444568546896663164545140758327743416648445055456555477733561119391889892237570593829301663864220050848031078072374365601259847103780938054214521238359060321246970470518337885887210812487877731690161847870137324636255221435893231134244228749111030310179829406539998532800930691885745144960286704901393231649701384534985113446608889911125744240401531596661997357756508214986054799800735542976680326364661236237610079690255366061994006986401077951375626163464960527037723882212565779158780843044210237888848552116895639456779886984827899489420323435513138101660062425693699578528264274953530957126063120084250847438792180220843003390405910979205527825537556251167313569039998058286939431321021442408567565437421617576151462474773957567469503365465084147416662885591773636724101070765273071638438806397250468569465035649766819126831475398663335062367558853948541022515686250466548405025572682612844217803432645816153611273531704628793115853718823099492048947726474456796634056101124515354731422804227416514484467630782756735970051176544287523044835568651584752140597178447641325957505464121011528427690692587206774044340342373361810152540849684012866854384961192814185964287465542643303950670705936781070645653543045472931325195845091033431519238899549668773696324098832969756227528087358470269704611527278903498581645121576850747607681791646521374025095722027430709074087115878621999600223152555542490683819638949596521208045265724273757783955073477581846793576597061464266681853458731960508183740819123995636414262914634229734580610136962460921782825519814022880007208007944097354887676688918023582043671372287693818190950161542303305005084080803270716480834792231151884454527596307819421310059474958188741275302740040620199585295201231704104845543941708420524719638695857390474631886936526841387109983644578612076418555486894094666940249659294367932676071512591360365477472281375372730786561032040716474570986666218875031585274694431828180623168372563284303695362333716787675674803250126354199830440722566683801462901518001859656933005984635006469405316562181219432081797415511196944455182054514127318352457790731681209986463006755341727927082650401132705852710145165509034380394240200271442647612155902710423693700821403283095089592937899556744963173691728028141619963638328285081877073204755702194978127823825692338326777273813011327420196139660813356179205559583527547220934348193280563278917547874084917241021791816234015645727053501038315087144763561604370813341256268023549337366855384482111411184115226322558339236844641780396324454944987161115504352884127829855609727181890842387914068030958500815430360474328654315127179930004801088569027823201855593387960755098893524249510238645334033576016906320727348820644527125270289807477472960173201758750037230205959432797338586940858595014061193831848471048784643298196229942350607300589633964521639658052160058960783675599012391987918892749039086619702812027003813313753792204470122944106706192177016263314889222928128053879189448155468762867975798432634315794708537256299474006938827540133810424728124762708244915849035260933875767848817529690880153398665772399114443070157262924864577905938415124641804105877409078364757008050422546302619961689859070447007273339423207976823567364746278958059887164459230620731168847019601802275397080117458615218414590222349135300335915368819560219905779850045702848149544986247975608473591942611994891418196146016276252402108158384862906848944955665265766646684156937055769123374405445309251839260366527232093349241911430499948763092165957258634309275223299876891072956111348629505966388931072914420877119558812890946340448313669805860629424269760971279754235104785059794449656059735515878648210477412824949919357218716911785101753282563266694610835836437388063311935879608868727319318702902019631030139150781115390341127041333401797136182337972827398679180382199482357398818500114034269319318993028859445000256075869420279521130285530789224514840316965392638382523741197497155450201504322509520423018629727770377975760114837989210031998474236586703906859948968690492655134420890081205557173650042008701259308977992373464933062801944968564245434247933991110841310794095340751569711109710428498207992571765062734206751386984107623417853889872081675769354902099124365918699750086349062631330091270084272535730651375893597290235236066979710295246235645512672084482567468495185925348126312221136956462303423899452997842829032142060051703996349742545922425283420722168904541408578347175691303571780021026407865692822172796159437488619822046224338056656629276530999396776678505488945900946856914457138294104375438283544548329940148365914015103463513188982754844760405724160081365957088569056899165785322314901427785776480523098613258330722388577036872174476094524206670541878079703321179014172695315981358883777670615257370743240298505166879272187727661148071678406940615461126346508528361561837631228846304481622542493014359595534966260284328158771881725950992386755630766859489591834919230338228457960535868137399217022622326605783909182825208881850697106442004719060573152363490205523772185757222869447330937269627461783051739294370344756790753384009487017874978634356160988647190467313572150147216093395909134494616110730898290197465407261505145289868439858171401137313172357539394746275889827479526255651169563070815401507652630561579932945753780863475892840732369649794756355565168146315987335342807635723607628117542697236860482993548462175651470147910517926117038159040628430820856134281197016247423729072891943201479675468920692142461241019614546177718915069406840165183898976638197522569298849595631760666848413736967515527061931908474662086770612512851276580980182989008624863248555793907284978408766170639631200644180574397565905327622300422224813422432404985820125342426575978063036091937410757547662725387338945275020928266818247814591708098040016328741646460949725081280330493015024881134045382054630312963705785294083406742693940019626300084721236255021199703562245148954956366347616623573010816019866002876752436051341737685410157711163676575437981102245550067094688180523300805862675588577228179544580947290958372757813179203809849977391896302987304006980814628950990974913701854264706157849723134755116954423961782419374030271458975495866203275343824568579897243907156704380068600279533047815824501817603069251842344450369494417794546405995540748778737273358369385665567331531335973190605569210480553309828686720273020749091831526343508467997269493081282521313542511722818963180302045543670356640646871866087872863858512209486468853711284061118972983473154373635334793610919333403883339899566770542535429073002050140055731582448815688181901793946154852225011588990805230559919740389243151264664042613645505277497027528557673113617217169452889638860888245915701350983227002890322178966819285633850532744815579887457414035228665579894998293641334242719678399213182847424916091505817616695310404655890361686488282195259725091540174534094669577133827435873204837483945419522671474034921509053916163714767639268735476184079345879487241652420273272846050200520875569386604869999876032147002498003749594081047436176376072956891315611453238692224463205632231478126242359362139213611673737711196672914435018420755703729718657175388594130023166767874585794317508126163238274186710239749839247447918853782544698456984717476287806625362270183678048393138384539105409397710356764224014660328625859027097625238144480244606554216038088143950144149499045697825856383507205067294339356835020083930665521616515471871951624274333894721965907826405462581531346765670293917083794460542691571657367416923625329413312469031985610234951768157351586062038570350060835569667786947488876869838155990589652159082880604778815230476738117942277509682635951858960391879230257705264868200000104622292262971068419008771876741436752620773780300018989541914143342748211405392344846245741907467960211970559083189305491141305540226503302805862116929376497400951584922337550632506729047808571273793843582100470752106689486278386925323676111871047586737649087215233396094045726716007423622659125795834374264744609884850599637274641401514147926887835567091304431990799165257522548202560210749837897261045663637927371979839829798593903484759636012837896248017204974036529328027629802226299832406151318536293907605680083705098392716442220568617874676488043182847882565696877717123195957694324355218533764432040999585700001926853407778151636651523709985993445994091570958728568657462234971219645110523976687570403869348474197268388344948189860964337136234852939608784162780908282656546296466489591542957911781005504078769481867198122628943789387925810690653492173210201783829571639496124423308171786577758310196635623902518826386138590632331038490567571819714619896237367983913927618861197046909331520773011918146676555598735499237741655969177144747497282031236214922754652230903066733644041693497059932776618364466608073576488493686048048214279067529949699655883703719175171739231747011470885979165454291919598302935281221215435069302399240047732863731685869100581768014025616055062820126114879970799246583508535189233395748043154866446657976468783900350490793401413428062681710791882079722644636071575565387595245447676651869394289852113997868120702629382849333414564167043281532128348858705867855026266823765800372944878378136525227378743616215971126259142143942046355902540169716798797373569641939273021689329776502964414478481640468774027937621232096922685048223812555893378257242334145701066467012405546206799850918618341332583419355244207841530274891821223521959672360334101272442289510542738202215450869032348876724498790836321553006502332733620133798644468571303057807235468410903886994614182420218514226827598755325085844683296142000064497172955902006474597390899943263139764035280550662979212396517786982711514804247919107360797951618819744021590023504172565171157299647985020860655168924040061535031625390516845700975824380981350650865864825199510057544361570962227149548329297750148008001163052173270149869132861854692460025453673870033931933365920021426726782546965976847987068890100678940615816270699815676335283742684634743773804152985320473787806414766221101796807177372810909406078894440603473695458674970019343679785744487954884380878682305109113840829942776966338487684827367784148641674924917871929336178240176384142927683689149949574369066425951460354655922814074310176158859469614112815749081966078390162128006592216723194301350850291222333068575823884871458106356091037411486389318515820493784257875103888455535887577489719169148466072988870495575628306717755130580819128046932307714543411910345117892022627168629039815681675250560859136259709195882269388967394337140995339041267455457099531761314597854209197717822799505146697639789056764791693736933313820570328232454993413278194709678822867895633761335975770497698777170585407179149619933721707516806688874207416964919240143398094192018576121095638391960979254779220923261193191809824054169525899419002625992090843784887016069991215141651075282451338641806634052918388091884669871685539862053384750159627139353193842330790158409387992211520329860784400538206360406564996399817141813352417025719443777181510814471861806636685644963138198743351915662612409574584428342285926039837558515695034909648201332629643806162220400990794060964393560324643540271152166556360036334385523524256122199810195975094489237323145653952634504729296803220952070087377274694964819406552023692907106942935922183742044492101201275327592365755158613238206138523015527346711896010218805043804970188596052980103194923392077425196189874643143517055792906717423206482243787290864221049526568603738053883763527428872708514002742095426598185547045016884602872351344833332957599629159022656015580119394379752851577721302168984071604289613866945540212016625083720903099957396858290253594127322936002396999219738121326973883494863661088379554897623366133982048660900042958165188912119461155694330278217266197148742869048786238743621933902651030961969983941505407633522687087967855331348663675132276504584853156570843398852552445670676534080342949898268281008068315005986516983355833880218218572714795002535487070400616949222028084156054671186512096838537195829953028096476855156455964160048426070308788600387572764654320959038230977598602844975931674571090138532729289837398486123256527962508610286167573605396787512994322863354006306429802929721144012670231741188228021423459554044144011708061812121758369312080924019459239032092727399816142989965840183440840709812936640825465817508041930478498975170828683148122254658233419742404859255967267383439224481223845108072807297911528621551987360951274807431155572890221271329786960851610731286358205381189918958477904492931876171237678099235515572164052852742341174650552056711077809750806984931643410994322326821846284662995341204202021781844955732511637193925110990532017399526338134989502444806109927490039695803547175462776164010783974593334870658960823305777234655414839846741359537822406321413978729229837397606816463125187317369000348751598683938966777851013289908088871886508628335509602727797033895901198542508597865713223904582362447777783068312968494102094106644717809579380706005556312634803903971396941850523158544024849472277395090740594440004812038061244085856247176952487557982277146880840278727466694387360809246914797871507616332059324934894526050121826828493345780012136151693868641235939280297674385973654534958205117680239478396008453376804691230788614275542058823349314167972592342313343223178736936735487796662774483767051989697324645380631323414221079296237697279819567650504171629747453585562161277385521704162776042788883985078592055470793875727655964005803179790467457995872548597902094320030939886370465563835092459323779459748944084377128142182831405396150854863332697199508148095212984207014755144775643581011404784657247975922601365636508867228407180813128307127378478046166244837037544836939996803850668413295128810459396614953572751861732819475938776201032826329024532760002837621495614818503127505014436439516366303020833683639952423762079722334755272244283128802777081919123221150750785933172971668858384533989791102366998242465637995262782777454349414923212644457650589649118572779347135518553543259726610918226803430923561758815703378629547447434153115423126741700625357806283894100179163332014829607938782823739778209477576358845122412455801469120924080985852685856754428229954764935409034121867715402883379228623817197086771787508300706387237301391239737885929386803614804997988024764995186218819681169017104734220923075201946671795309064500383468022580848148899538216366370177091207635349650623704733617100119524605935802520508161338362292639911998568388726765517872344006300628978628449983992514966343380911694105081831478002720700693973266033738287814510014950823577415762393945462224587564183779010500227787114097592973048310923949288449529228563899598188151558312431371130386008749653382843567611802010670491867819584694514148572489896219472432586583252623003350715579243572488869997261344218122405293742702921490338313031557466381317264560917348988757289223700078280561029371688575947648071402058199006373949803808506733193810292108090913724650251994286403205032783024157525457667976308477858714510676784409793443524598576578186974849531409875224247999869031570504196243345416730522369706932642983550572396647123913483512012082660325922679556928133594786748958769619061013638054348731632568706310556664249224953461262600030240997035274789213619669775483880123342036111651009931616805602080685851177878206759829785384757259710667198355022509306034979744682072325395129873209859322050988708211873945601223961744395822650974143959622797122379249600824748247065662450733169564779689671220657974436395039349672260627801947434161497200229880352667835008377746423556349320662408412946241026541877326671786215239645194715647993402874474814603277430455992607019405567216964011619951749239694358190045786906149479297581255192584576176208328704518161091798741794104355055966803400152446437382179193217921675524390201040644150801933778510553481742013848363925399212149233086580820761776409955810342020588621978601648391085600681267920395604931733036881111538514199818824089898890616062068496161283277846853480131506732798369709359269256609474795317926348533036089118869223038839420142733352852317866947633150295707507014747302648325718359632637327575358621300719650015959202806585823557771455213899931165499022851222888936508560829277596095682109787602918470219798378354357861534837349710141270195737258301013523618321141480878666501104371524427955942539761500677308525162378948131662430798489053617506440970651370082926112474264895457342262439654036143553935249996451482824593642339606786659463895159982430340804538484884890435279811563589977254971067317466495914444778609518329985392321232083192006449880700668621749391039111937951938782053338587249940788909849514065405841053156848212034369154410772112207925590864918299043507680837407745813539003158106410388861619195190327830042715155398647910489379058351364761074951186574014038606114071137619622303057499223607672311561702205319268701900489658616221301614338209190938102241463411048718844986777843352327894610737993200681482432445818780357590572753356262564030353143514673059653971044965513601966429609305350262622286128865238503976861042707824993060811862887979646087234789933808105974591066641318314655830687876781220989616368251972965103917884142336512076700673374091631153851817697683622753771076714880893371113750748339503051111378033930115656211749008616970828509227928765133230931963295517450071846826947261261920418812172540956771428070855453573948191671870527528753690146455830331807665682092706838660469178486374954709700490915281264643748414859070816490695003394463453359508441254770915349526627103878288034786279768137753285777990137307197224606836344268383339202470016091343635677631874400028832282091863724521100675667998750352781432484191151166889100354534674157739177103102380462507871671998559385880807756915603427256822188331040659952103038703619150064381485339227913115645859618485254377102842373039187368377793842154740075513365395579718626907108073455558929345153347232371400639400112232768710850626541912696466711750490496090609817011543701141550058707523562211863075607340952354596637545016734383662305957449753345557797998262840994792776547519512104252855986727965994728347668471218696479763763655322912104829565576230175917139125299753715544601419973250997617429576076011188212335707431791691961209566159186842536907480423052171214312386267497309525230842615312698794819470507551518341083651935408022064330921369861263709123047486600141620939399904394716323265198863806051347827171203887408435562544830455493149351079356189261597407951075499966631406082892523164823063889383797913681007850877510748220624194391116149814519330348022530947807961763886982390507426661684107893819040441531097313680324023769448440520831984241678853778320092968596997263902660785871777142299520889789070050127777410505656259783522177135704492650392486088943337733354906195447797499908698025422609196089126792067520290234176906281540420178525385160430963356010227051345737885141969425305001774821978990204187508782234660532757950842133296522674964111330637407702770672254570275601254963972074018678360980159316555612758229665370380367909915913836033053489913679548064618434914478116100929168692400279526587873096985820945542325525866568796863223382742249870944024931457089077232124875986200102368325197488609730571845356460723143973553191225229118526612254999146304402208220890670061273623072794316966653008986927454540525642201116404540386838446216855098578969895362760376026818188704606512334798903523188279000078246147351725493169307875513705038741686351021921492032465529848505863575519324763735576387677098655451355884058690102636211725060229383794231714402321902273335906691372774746041883726851381504872399341985307806526408340741306081250071449580025742664499266434705859808965306957582819570760009262259525307378033954246899265325331152406220801625561687990670608960982646893995726033873676233422623407111321189124655058057399547883829471641775829096998667644698323201669207547047233789717146218951733294388662405872259217571230251705446337010652553240039807937448147014535256081512402587651951883883364789023118057001869566637310358792870114000304795416466112512019998613272290476265847961966640205624077445023502666395033976621983096046069818628332236820988649045939457374233705163120396108762371066205994467473654899539480763509612482345540978847119086979112588853202105503136317095438141182318051635286297714791049110084186803793145545473325327962918977945148560199974952970306964598245784263500444731900676114630746430313371605380945866221226355245045233864809754273714332247014395556463523940408319229289927013130294674123510285218582100962217319115458647178778741187780630874608637289648707371444436420853511263692595828115354489002565934243820297529083779515716161716654553602839417810712030649780346742672381730463500839108147671673145967349914550950350935748261195585782259865710709909229037630729555382828360840361778252068696965098558950476774559034189719632461236817134776129095344038106209900957537491129227957768448134010149245243648572131645043644985162766591810865835715070228239631562245480602531006800511708212764728019829320017721987165775638076124241856888979201789271333498467096472440570965499997658822332685505135273675776216403050502049190966607597749764327116515568586724254704839630214922261504966775056435167220890808522944668568725692799362319066501887317247108821069014529107142582643308280590022212243506582508517912321986535360261809430557119826915815870315895418405423727023635431615762721465307342295616354506662845699729466766901695643993112591687852430221048585917116799989965221855287648111941124236990565399131253825970093231419556264624314847676434396385957319825930707582425831111446104844650514763156109335156700551397358308912887606406949230059467575958433291652439466269928689108604430320050466247909680079252089742848207685839925050718942968630777937065674443159664154076948835684494903513712416276500417938248996570657296261727978403054955769399951429207271661605863401488442938813537910637703652986779341294244121393372047985627687588759951255292320757069435189340739058174770044591376666919360696291930043457876623080462348989666642471508840571525590841084237143166289183095850414607157262350333465563041236563633089427927903170173694568702457347836661422796725645524432155531931246524254383982560466912923147371950560567925290805519620845873914888585749398077024628598029229262489829476832421990855930737293299765789342298631982918944539250390062083085495404949687777954989290199705587470130442266754067945541225544587832993883005265097342576666670574235991485955077839610052667073317026795728452988591087803868907904851575871023815012710188506296270284618533953966376018911656171111024187347374341389850822305892652149577005480027078053394590611341231186119216375001937005924073986100839208357721460689981341521712562784420800518570864976129757474890865904571486085772937705782612140457420331214033780502611125942392466084951130449158135791912536236027714428383251151385033229434840462041755579989952686894536627502801442425567906038515540226664727505021847650485722350308613201118730400182751931778819142443781444835720466143625064386568427630963992034276927466454914674397831966230965265913641622167461500216860661833597738232319040737389384752108231141748005048094929242163825252161309026753036788902575314682864004942433501577869184334934587509188485465433734045084066283485556802669072804680738644788513669786405370257851619178585480512975328235301160966935746636845944617103604557452213365661115016639240523409876181105220912399339447857524949109964431018461829525152948162398260761712901851347185450970540867151682755981189723764400454955696973885849387815011839238975787090907519089429331125577651535800500412721441087393534858559574441639807041477577856615172614688939959961560455943154411086083517781464946007163995315984719422832862801338038618857504795104822390510640430682863177130908638447810859442314059298680046419072397395524033539332370815707356458284272507832606004780132999204572882102529378909091482798774853384012727286820418118694308211411273594495324842008839951024479963627201020150643626557510581364156204264177040536960391417904182589805432258147958096724013105393769513933973810314401681415034476094045280854251460213642107922008437259432311062773571456255083213741709873460725428658316700811986445888022401966233361445625924819168748120199520908500782197113922948216065027788302258874953454216985216492719524054806649557913008470449760344448698497709465330968859185537502912742768651203629566039173016679177752213935452538569791514681736872249930980059107389541549669839887042555414179560372750394836737232325520546045160373126662030180755246438276333301709826887192834466724928525364139757853179259373532285518963539369788368323423808123732267936619106845245355064959811122824497260740416751556635987058922874397709064662301083479364636370664749506731442649943746408345972361208846390653767124177152199171307133982690238596349806547480070055550464496572454067781293332823073876377705255684510185087079143668498132392165702214079906399752886855962028841610607816057235888138221672752601466238590931019846288660509813206752776614782197347675231577335261034852159052928291736399954486053119156956371503893630592975917824492844552159774032389736751343065341440564116193011729336325744005987089188035924165552424130126423992426900125184048117956944130629606643581250072739097571430233669908823410049403154078757367800720003481274180815131317514519083820420586317082661105526463767130587447651435423892721778342868734555622676092776406305133788480582030220173039481087665727367953908594966012793138111948729423237837467277403650260928750672296409034052567635077709675429579242447871628410017860011353071111498904697201004802581912895814770546803453153335796590195523820227068607240292468276189992284975867134799683666945512792989764308959106863010641421994487506531238444992320686402947810490912506171492456173992032287093862163926331435490898855670898868365927365996777298270199484123481725839848286882649184296437074838159816714225470636620402811597820127326702673447251141779094106914347128630456928591727325269991813452553676530454172713979338684388089153785930168090267795462929608721555742507044326245030456003965941899059190153392519916315596418483442711264847729837370198131735870985134146815767895127869781974042290703570332255944156817619021247749865974868307160824040553068638467028932112214406804938120290555096566521807704490305602413546647022364699618375344120856042821615500878986276773313494296139774499808281952926011288490625747332232515039272270071813342404916546024657717987971755922792948933297735450747003413129386665277126645242641329651293954004622949359874204414628226243712015943279089702046823515153441956977886667293700632461839932696828657879411755197597390567249992705819307772786832329673394535055615476004026345959644907632103903844280148242823048100430511165639349529124853354537131437160218180745752278952561142765433176736407010928997712347636961631833556949023307461543422031402588136378749029940279650500226275119098920960227687089908735103948019910112551155268760507600724013370679907515107942885899018717091686185808499517178100800680318292346888575514852801194920256200078559184070369546375170385058160543668133266382757388590665579497960387020183366231690132376647772696972551373243693616354935480256975573146598280721492036972361913312119391345269919935860145468139886868009105466185121376107203235121693844091552380513206904540785240768025155268816804920400794242110332970126162476420603013043528049096213036975974821438705121085951695525881038444416392661923789757599276994677792050855301079668728515292128508961982125264137696093694316472159730524444527530975181363033783253923637286102626494152691224928261013699305135704143993902448547639590069258372748299281636933292798163336040466836601054326590542222516062931393271865416871566292372546864343970391087000133046260912033644675717847680383961059112253320992631822968202635047616656576012004489669832271960168435276515280113806817429429816127068993476861167374164709934247837075002235045969282439005262171409013826801761891130436159414141564721863531741791996260774387691609699209545162218624281759318611254412819159190939074059807086312290334720033798778663182064461725543436857527817125352595851769664829520100186008000808964650945036030236937562823121299606486338722975441300055193759952165483239660299871039683311685329526320246188750580131974326918011207348651749035578661211686475255796020985095275286215254307419778972059899438335142726798966606239783004184545524465361372391701163829335409074470031979095573922037342163939228941544158859478090722517245942369131739364830576136432577257912658061537457529886780472762705697906039778657820311794956953969272813999772005045086788073503373759154356968737535803994566657582433605356994503014610430007465282298175725229397069077031025183780425119083629918613463543786679356467531208625872652393166730673439585734912830245718525092245438012982717544917070280735882478733794087682838421591474710987271858982835833024906965995300761584750442441653588942541888274439905952653216751989272595308491334330521119951947552133964577209262445225668248438993903663382341451315608610189394637957076136828806597311856156618013991574870940368755422795878481234165260331458526046349643848836474933000782159389001665907022253729092674529534808966217128503254397876664775707030872219782761530688397814015324284220590085178572804520556240336977968784908713535712348000590154270743166274813586281743357973229988869842202252381400192113807076359195466574799933623868238232858098497559710339038755423428002035659278396843056729682905445364236525699584672655682985849245006083793560345622314893828223703643149396802529111004964457543644489514704150768398454264862876442817114693637981365007191435118105374998213315845574158346221221632432173209329992018522504730483206291859531125537682455710779764056837849336088330564488444008294778562833941412060894443353630614038522497883834949514914169470483507594179564991541681009407376963098648377230495406245378697289269816375345393323154508952253349156297897601509528183889479195002451100686338409109189287545705606557296589889416692487319941347753501787827893080569044051920169717426729267300835191652132870245799825898567911418179541472437724549871351304354308778581078794193884684345576107501786210383829704100803545790383274992590475952777846499965631024897419394725529216358433777257046676251808137570282863278180362473721636287333141496355924375150255194354616076442968021167833079780301477129474110049400179427531654984934083417789292751949117211214150479663733022332837171743381153121726647407444663515291948659645204163905441374806988375762520953558281108233275471103752356595148423428449621107152098494123016428350927031201699892114674894663685751893687796855813514420612221171792714963846003966570582525577338519927632896386996084317725489195449888626422471394954537388165461457342798525630677032814472520091250415916211194262325331373163907520562837180632635909278757140566895960154301009273624953525774791634576624872707927366612435255847004896001652577159725872211222343453761691588629119283249135861579466375898511341871463464727494528696833690345479960986372732337981043294086265239835211916627177764858553137212272924385457679982532190088282186983859370595739739029862703285785218922432080874030875006887334074981920846991272286972573758958815807176912549356762438877526175078422730229203495557872281178633469059016682476211980868128445921339580113866534114222212792094715989693223775578797671003710369255070282233969183018400141086939048847603804681630821961515618397301486136301604800266025546808003162664865316279851742947280407536525265537824856787266570970364649524167348140703856493806337279535111342633118601056433172989468649041335249188363656076713159953385564112934678324260396805239632555995779669302678109341229713359242037092360787335811221897684646399568912599016257586413296245716766422881544470215439026297651380270086134309191293252882078954009008199976627022086837030961346212589599952389649147730411479575741240857723214017687519108941070487743446669231142830774541618753767808153615233825933933471845246636838804736532955718431460633512412830331528088989236114827699429812040709787469104175180269024943831859983686284686368370838146644635891474967358421985385585038150963623547679755013172211660696653299346373578561297498832754503155857380628236330714396451402213550694848788351782063073440338914991165143900715284719110107539388668831811946264149632776098407124023924196896213863166297772156863812709683597332652169249756510684616343708877323760630216394757974033375550255553940052807389900172908088038840480712647898801257178097860794243048940475422419460302457027589839390681918098262514723760196826540165949791100980906842770244890185335826145107596441375573933583299185792319732850547470127087952528198422268748277338202087505858986750556186687240133914039538865631931963062356915124698860044823740528165268001846901749760981123127850277144112357206228478143742289070373356396063879842654689015692913480986490261642637409767609540686351387704712293369197193878196440396506591566090424774040173105890750334329723221222760412166146845356007458953324094826240788169435185573481647852896622452021310904698841059495733586293037708621740595161015244586793006989227626427070788709499267469385965165293692090951137237675906660389808119557518545042954562721751210663910448480024984487293754179439343648027364911548373244791891643894662816021999871008134339565819986514362112917451937779443153902651672369426885584962031927815276607499704969639285854428798112034159999492695454861553023581069037074810893954644636039961325000404507131924880373855444709487657993130394631065753893483547998515642483983241932673590532251276692188936551987127843625307384041477263557439723682127351146563918674845778193111283854330007170092085937106815459395240646131777978935182770257197425114958611497976549956041562591516842833451940254719084383333493618813799563356854618142804852414661093533807848131084459404261356604496803700123887024436418727119224094731339670924975687762399416937206039853459424573473196061071239023534101271343699904330538266542392891179903227122256043336686448262042082133124152543603742880339187376621542976020780299096994164920317351773357139900122726632374410100947599472801457058211326590047401703852158227163864245538950779550941227995101427563884303367515462335449224594325621610513991849103094929114148387144325104841310108058586405660025193661599504281796998479429291698316636111080435306090742150827514117360525092660703931316223663638545567532650873228404212997425500431944053258351740747394504634494562512475223242543739906881195439439356084153216415840151132267906929005283067763243523633559693714527035686296196953088225076090889967078054220513129776429417479191104647456668964557830752552446049321714867890555826028094414058529121098256556984813306300803978765430606658859433020904463402568389713555725582492115436012015845759226458598138428235861586658793602931424847032246754345067142892372990493046486363013426269523888682231217391193177206499679753101349615234286351710402728592014604165989867187260698407225988500485403415441485579641204384776385754826043133263175459483041495987213772441836286058944556571347484401996535517445518893714628241939986866520875619095585668994033682122650113771217279475966364779870546317180643110353947093299619421842896690366272533536266250375529124752056039332597678460339356918466420978417232600358304032805391386550030997317599926134270219751763584656895747632791794224991866247307218195399687437137883891284653857201252135752184424379058039459129722352110429805412941639562548997202351270694522448877696426006040107877617190088719121289528568374637439682254437299722706257876858417077084401865688178628797235979015104718731490637632726275961738094925523585316008836558761938013976637525294483340129388569362238583010354699471781677590998349866434729487943375865963952471246420106515957754336763665570396867914713384034505998033255458800268316565863256641453640288180829230103147350414083622391999888814941136757690164652212125722670217408710609762983680342696605809250894420719965505330878029466667459947538924926841000218392401692009017563742524356276458866974469378842264070968541669277060677399731578694340007534983860572639310221252208397939248730548061918308538330447083601188836247512091656027991172701500034223233621983895406080117069983497739237057509548264576579269295482679445448010931223209037159358817789446865899772183785107784018371001399011401423407550375384740486829728772413871107097430643914293821283746696704938830842468674003848351750597645280335775237538172789145121945897467422028766237727627572904837557894995266949574445885055387637151767526304703877461887522089847089128225766264361743210591975643397068473517750166044897695297740803498186434611857907336006484573322530677543461109343641857264429561510560319593680155474137202450450300921349672566507610659697022191325677541423127974869697477120792036274112785261737409019819829297726702220388043227546464310755185467431204345087393125835221965594134683265997632534606617126107418705646608112990920118745720797845231584225707728252133879091996668235443342233893774646404413577685584791383566910812738534642335435506736432225213779384428448613515072084838595717027072415326664717743690794389605721088993720520874322163755349498433386885080261494248421066536808715849598089393462911481561022668515468882206711946226405525489936418507085158274671834863972514139310901890598737119339860276964369192206069164944796373468746278401157495175819108348152455331394826362275885967228383666969266093993795275808741562197419305716982684045665222738317630663059616772166744199092927804178147180131275835837334835052041396967976758288693221118313589694177948395690504604176915394243232786443984738744100289371224578065240301745707750414593052716273784710793505449780669742480698248060003090915259815948535338048368128055947067732634865172647484417241564473280390155315470910218477809700114999570791263501535361951152724203789821733273460681357174145740132670396535528560210044774523409550538770215692637031838396834338430503966969764573096264512610061838592832345602236249158759481113992726080664877708239003471297825282944118092856711454783321904462169654688691856765618550348157951985859985039080515678022945142651687269890110650085516582530718989263584268763729257260760609366933171177478976366182045748887674683369610133093647028976967121955820210464471974467814872593276486766395978873004891436873099474044323298561132608155974511050675909573054533594272921980721864952299402246876745667505950758080208392285221389900868664896093690698446985316706700191796476381096939749060144782996481783681857160955964080592940850628118400040828315690321963613358824292223230992475839454195650457134864962451908090669465446617393885106691427012581593203758864797740444561149314669478599900759767143923781449816110847822440948658295373758665602597432294652812615529289953703409889246470955058666918281078610493437234655042725934725960108092553910111692780950902708848896131361464479255660840488973606628765892059971931944210582141395044123444122261302021032040870589047007203662001205093349481451836246220645515817846253861537277024466118792613493723269992240961435102263061578592444442509275700353023953647071662919393614396159912379226927592108592332088442805007986761749473141316598084157501066342382153512237982206318824516150938947140655957743115222494606086555139399970578630160416577639496826977910146467264897478330433188672617391698120001807970434618370611040782164006726898237829688954712875943256320526555359907668233167265658469540521670626716496772517759735596695614779228935796483894139065384716826570157232183332874469882084740005246320361660153652679075376215881514374258260233911533431445618151878407499697064977445864202941113825892954747454630655846952462083992881483857941350445024880651880066282210091768891816908367328739940901560857858962562854369242337809808295726968068997206464189045582703290197180613988190617711340801794372477118802301004230966234395552079493331238030745676358229523953539141455278976068244650835622835151789400194569497915111028878821203830538682726386205955214830023384143608808054753784519404756991458327799091810845544100640890091037812699504557883247792510684275035310699642085986309432598875980951034094065972890960610939941798534779046132506377760945863070852836078088398386377694088516122108589958651585444846094236365224467183298385686453817127337725915355015046364519458234943322996903377045775084314201106871994565685105927764879939361859528605212909304999531535596478036543276957872139165219737786491063308487180266081980925734600849283918065531564128832386564075909073947053583649541975679447718916462077228642835630043187198113876239151594960961831380856226926596834912130492611143368749647617564181657416695385864289434054786780024381936493621998643100947642518906329205621674894303731508791361502804549008165395592902635933294172115200997219501585836458283663662911322087928301028127761895065727116372485697383209780498147636562773989931465852125877791404666938298696193424121535816061465283959168284172847709477399502269917510880887231429364890223566831854773934194532898929330893579580696788374634962302531018180737458564615135318736088441187948708466384751510317459118341741618097881068031992378731038752825450976584963249866810968670650182651848948796683991358174992975674941313230468036885222790565705810644486209487235261420684846585336622203111332358104179093594559179821965566324711427770851952506522023366517141419782585408575690400223296425789873596364417475395210407724229361054957880181533552452272734694089485659520273284766136501165409114753723149508601707972953056123913492234825477692200005655356929582746593106024587010687848695360850440038009241020676501466600820107989443190116615193927816180015763050648754881189464077631827796157304431308516893614322167801437816201260360450479392837938442330701332101569228636823755147045357940284776929204219540437313071662238224171637916212989181823736849686630822298958244460564386435115902485192159191959672576843728474808167609261656369890468491244467258377358224592132046288878416133976670346227187814674045471326725076331744857910365534209158495997261364940848871378769646499089766356170604278272120818214185165907543605424082991902049480608614226533824645464090996245561685571309773999553978085784368778740559336460143926301311508978637922802377534292579772805142526702477320255115469360960705072607980559202411948339065851864348384138484930308569963899444765793164456870336974566328266371553530788635697961239915492872731907093562357684345319737837703105476318424023213400333355340772286693132391524727831899401590734478076032542484347965512115064970597361144753605727699731903778550947556838273967438106896915846867489291746731217031192223995222323086374336696119167951135682070843723322865336068258150875517317145516356345646696899428806802906783599717697791849115174330093490979346004663055081795793439947941398159207839482760127923717446436197066341366975049838947069057802656887827904332439996100408247400211503923331002611955233706350066417514644372139076276120730864214830906021312485670323952221924772924835743805254752926209972331919314528720103643910591678379643299963427828336872236500694596975526151136907154043979484473488333526536575768375655703779371371649980468137302321896480839425424121441442223502011025417854231214694355204352692472713130154397860282180053939635460688555821117315464538381387901135176945965781893759899898461823308530973044468055277218100739103602953114482277283825721160967279775413725962679553759974938047513038964291018959335511831948326029951092143966308272630726955092661422249647514906414779515829368325211283348768520976333566111154623568140271197063099107569268164069456303425645250826013066133205738139518039122985811117635662371073559112874003110283499411298583022052710359636246340844420314183203108016317742281855780475978035639186640560812010704550412346490432519187707215584610477376983259552778957376587748832796006098155618247683929239379982833219464057220467443906679738774566027212296852067965403052910817753371831047428657875330752248604641754866897042972513682317771846885772396863519024357824656190392110174216195622233673961805691316620121674074555623189097647072982082999112212598137505579481219478288305879328258597907929092207398391037082793208229948330148170165455946143439187320580604135239385403578824740407237068345021346303171840990081342699656066132734100903952072832029036503197696117790680067178117774020192965370073809753854085113688209167329904319851236488985277808601227313854686371348311322796433562737425137831882910702350161384972866281816758316456096965851241642816279283425486130688534624830806120851069558296559268506265778677193313995749818156610877352519838219642831501854542592198680259442662381353091372901534651695526500842567867747586614835323210928827745803761821923486949112307626113646123215638344266135708962283968843522600899639925282020796615189826337761368166626117909260569500018088536149160812376807514817786754911748196082444538473385957695457840816222746627569896010573947914808340140936019954463304867181020425150866936509194380390783137823606550129611475848891333303180004398470712290945532812678877929984953466791880449325287182438532406383098661206297709579994030250634359233603412756902905393793536070165426300697464222854578325254038180869553340949082521582021140740295383213065677678386596743848932357996802383850135352716725059858170007106904685360132445415987404119019444197102598415341580467225091248830942710678345686990474613907811952156098245983992837226281031132809971060793739207878445373614174922403969501289136602454264959092496842215285688382083613852875944216217909900360247992616996699057829767949755112099876188704835991052878012506102423494319947861981700305359382691702853771525774501506129993001269252595360771236443848105963287397056928165749612487339714478968719905856768244112427516337310939034797947688253420001271262799019076856067128169535144163250255528358102967552446672910575675152434606275037548461204797016289440877502366671476271622225716749274770356181451031147867933612154334750982750413474045449544897260444592284373831685644276484872466237859807095843008985787337855054770509615597034594338433206016124808776443830104563141306958941513519695031356054091399601665201214113911253853684209514881882781816301295763060612713050035308350600209148978285316331929679358101093426460596523322025374263591244346301296726681494154479469419135651723360373296367825863543762695189251258649539749565201620995253272297981955831233753887434052522423638076189435156398891979608197579219343711155163344123030240086088012271091682964374651974761730100132990162347143679836499390053771073083165863344692025995711417917096842220196777000670791240413521871053441951185505938826513020550097307099506324011095936714871890521701392473708187428474089655778726264302609830065636619668204439953176648740955246825920496412421561783384672698539773384656039402406516972041768814399906353843494804357295113666866763379282373587945945391004785129557715305630534324826335081243226608259181775496590949466546181339505508720011744690644980962472187142238090288581873259711195242756442729011018239872101281151323552216606745307098173206874541950097882003535067209790513182132109337333914386240331569283599207393759115549349182218306034520273096567536294202743119547646747162344861455280254271132274873116233029867137036590847580831033991675235759077314205884342356535282861610852212200781453441211044892268356548292997309474031276825640175214437852625866340457889850424113812358793712867697792940023663081183868794800597838238477501707787501487460174770723808608327302863320221315319822082754209404595459821030660675839106352414384331947102540924117536944997932288455101920546128686429987224822567153356179453634439392620192029252147199459690571731880708178254194353954346322166901571619057303958131078035926483140648500663298014363527634161007028116743337078984798425710684975925483177929706685218308942693228752060647706620721628042506888124935105016550150447627659216454618505595823405669735779560815740604845449117664679546260736759951550270180135582830892006643951766951361570295966903718685531572714485155583581549100659512639999889897238277255200959759165764406067758435368083101296669349801064394719560265663849519547651974035361220699001566422745915257356047772521820024730874833944640439119136292024305908677106493237414132548914630978406117288882381777621801164912460099961073812088627344391406421430980094541350826066062287221758412384565972951796817424555791529709087922852483894496741452323347689906972584067075119442031441130069998417871040844990813086497741983737311473225984170127953141000937352703119365414582221696133991818578815080368306025501319949952169526342715930189118564085177716479781910974281578500980733136190322923357660337019551067385737506637863791430666085811483637446740180825071706034283942993718206932831739450778442135966704545303216357298958974394373649141506393633802333134784444728242631284192905830363790404655245547347054233254466866195303455939754070699620297377413479522648390804490677420412190996570529617453306360172891467641888939507135770048892335840831659780121153842075344667634276281675455439502243459075169718644411122028978460669231450569406565910440888793553508565107190331001167680726045980425734329090652291421491972422636915247975654156540699252714539057945382852674015386850440135207473695803048080035292637377170890911563973743205352749712346703978891870216356990736785649897952549766757733980038090615169700961511717058592195610515900401139842643909843748446283101741453970474077789146388730060913099797562120612803142538748234579699886630169817730549802970366780101939814490284668275203760474197418568252227989283131637496510219234218556864288758313934430480555722392779149505632176672145959513400793031020434438591056898569374947897887076936612345316130863092636136798994265219387947839577317213625135296819249805494864668388931367949243055756635153310270839842951614425411060091241306902741758645668785504935019700197614166318643130357043773307384092116430704312456092889583708552454035905731020647106857344142204898226249223639482606087133952297114078242880362206248734551882285839239788656810625881440585014754179656203583763045907944114179668128150414101938758217883820629064990214212278516279742034872144534510079533349987808852439048814617355868660689351157643492860906411742186281958101327361924467611998412823744702995992687464366653308181299530647996622441430005940070377072544884709972833587789454398708025501566995643001399689432752501211670982124541018778899362852762358249495901257688746963544013303503931891096045070235106048809343584430337093406148681542036188549917735426335606111093018891784032684755245784120119172093133165854368632404791205718820977487137505510579494447925130555139133137652098758753286643801981481984717699594528552432385244515317151703441374850458506336132042133779840126152859122800873210160591834193749632196210329084757475801257568066077806829557085465105308100079778766381752338277271543630377801697137845921078049122443186338421965321501600247167163045790199491117598272595320410397989663866817657370569760209581299083123358121801067631883539734054701559765020231859800561943687637013828750002161495598070686667162995970920797582962799154713744129595848482871335408659034235822257746319790364795303108652038784539241706357785275224487847309518009181922318786229618827275509438838876820411249203126571079344827503282302874942270292932156238726196206590742038316931962588935775346756535447863724111192438070321055583104967038816503411794972142810601599878529709803254528168072559577370516232850215076721838062860476964650185809066406390135268887424803356830181769253561275602411768413500721378229176089441204205007934221130235406436626742736038382774281235773135307674101783139660505989645879969725239353562224356021197382056488357942460135404061781431720038939832294998426234467729711244599095649938682020622242361479612940908958010410827322041616265692412053965893985856039695374234155085288491606078604608434809832181359499850419115294616331121123832613545852203972316473400211515265951724849784536893496178094840216336144205187904478472625829045166366361894443679550283829164548458927994432649808587859539979372039602943904734059318475321143556409541653784864650173023871677599888623696709614171620855674809867480452958091365608573350389348219571652477168753867331667194462156728501002673462074669733462087817421042660441941100101100409167189315683449729407538612905424887877583356409772739326528092594049987218152379077328325344831214260779911411219002170635435459017232754431262144753948769578803262198212452010965574311606889992993671605424637280517753286235628890774968543702068423877657871524348326883087448088731150662880006871990283978732017903234532437080720330312910673399192440088991115260490194685825484202939502848804755399823887537542298294849874655685733838740347518006747033222269977830006443610405280886116547745157587089395349668867083027844346151080669470106723616563766169996126603528273376162534606248728655061559378989223283692807540470561149255160311738346940670317256123853633962457944639151303963304080515533860602009165956855151698139391447743710628056673691328824871437263952325063893540732112801052609978750452585567812531046071556623322855884662233799077755187505028553174054025627584796499716249863433338186817316913365484515513988539207828031534073238244729330412365780728418718896529868046229853249683037173949552723399642649244841498752515953126761505361125565239226231596361183377285003167718408147511152437691454788622103105836909170981290952552200745045099083666383025410589343818409404404556233852857890597742466857217050939982610359434878429702465410893847428014104109371517523211006955540597345691121185168025555187807329769909182328063512509845276492675854065197953680660835526983906202620384072623538236112474355972970513520668486323482020880557828347032831621843702364198238035651346724673431031852150001788872684068358548346112390141177460442687435301694015885121868902616919432336332804993956746558338477076717030813369156569107645316692809898070150101245487829818679228791719022561700216378350447691386688473396646395638213077364518090383831953897184750985157301269310025143509342531594703619875228013145333368730083641029258952391485801007689242369586735296952404014359117890964661715153453503037934113414010818766449714394109771654814872811764368618770792798466703937092202136164041633750466552297452367049530890552102866107044430688123811953937103021691367537644929374522721246453340218120500136422322887179241213329141227347842060080977967365074779783705032844688080167344856696639809675838012261120252349034577406297345226606165630996644279718218911911854980027729666639657887399676640095212803749251930557520086727922416395867920022596315514502288997876489208347691869565611964054833832482869803309375885129105444606717066701664060707734204548039863611280476345087092146915649277105767199569178106595427858983476423484670317450953558385148461573460671454277779731822108140812517127536836014282773169489363431994503910074241028628356778624982553056389574689615482267057183209753299235230036179004606331148834955932764873057627570052525421777611205512819733457908793755569304542881955750526996473732057852319067177223817504175969196154425932019395360611246776566206491328193566404964298264730564770491889852551783257104278451299473284490188273556804519169465866762146092316401105114456555585578060432498010993189588038890409783552327160108697063864860064988777279569134329569494209033801261108072903081022525593810115201947697144125033143308554592510114509164623106310967859970372198775668787303067315008664042816166820957395996752764440736630035403297530250329298190986426795320592837850795689268363417603616167919031874980965548224337473942688950602772703885657310657783343169419480181322723135888202611257465529682099702471328802515071317610491837545129252265619704993870576897467004844923002553392776423123672897081640659338961364134933855026178367987257796821129794198938502352241870943350781081145775602391130726625513872374630535954469234659422161475614724303328444635291171222212421315151967859498606033314487531087912953289352296395054050555248819697514425402541204482470966725862568002353497649161961144420912706692911473873768321810137002590635820146887559564403948181429207621093005954303758613985440596461253309575360907722743701600935740809656914661533359727229919536924111931844304526160813982573175341939867791576621594524535691468548161799451703731366201648221523314196632010625736897760446720510357521992789018160419636130602241091773308651759274273938080165326821909197684043002868203546168489986538761973998894812071068413789726522516092353231506594257921788435798967893951585653409424641270040424516119802866203329762016984875316582329707124460343208863247517915314561564302191988977738144740175269147443439454677038247015181118987433251146825986951973697920417987855733983392741429855012035424654553537305504271266187271344213163481781382296740416287586139416112891724709146021945747115398707100875104797148175898360700798698581254888237009547399856339525812014908147648158570235320802762733873614296467089136847530534307793010966712680119104465730664294386116011152386019623629899850083997887296180495232795939156672087131312159745394493320349876811655110995972699315943850273785076086352089675681535942391210430034110787378918029232848282683276509117967183866468247559165676564472601411664606889706112893826674025913598141869403290078642606584018785882506571005711661638413653906085628309950670417397514623923701454578148419073034515120603274103318418640866107757630215650328750570527893177465618711661659670383112270124972918951789677862241627728344865234837835720949881538819856036250768693696431404951540720312426368540994661436241423157703593501945368584981242281887480726524935485389137309186585980434875657865934717410056822607411987467494630231936746562151932687257253596916545000002557730795577755804050116823611947671338599441054182266787174245430761965189379663269092463396513578991379353454179318705466138329682597472317427766884054812456414409098503353484010902854357213507258169294976719529132760447270415223947938693997860316248639049119164718686260746049734947440575758349653512668063773651025169053984169219832949434236109834310920606404741505144254447987230068437068865171438582335674035540208666287502626371886492261694628501009109466466962773982459651926208558664891992467600318417643119746513305341732364598480723225480189508918888902179837379767999705041836549013284376343114251967609267674273936576725053134354683279346820802825625007298196246404345481688246395572126084606783785505704227686954117749944406865493379310800822123715649405347951926536859993018746139651626295634201399241684180293927225684477003800300127652280614288866420630351189384891926628267244463212656396451031177656194480886325900411556930860992512170666335908519537105413814675676969665496538852559627250998954597604307287366570031501350369834018686949130112483575810708939675125129746246205465105438962956354683363477727106285821612472249108184771633744211215747101570226625339757068852379831997693800950278909571761659763857124773986197805399904419168376868656900885309539810661326405825076929529321330682635481678418697769511907037448018380023941480779198730067109169410866129587402212545385515277636980313747904959524439609180076058050814038741925447799953421453061425885330579840507165160990945722125128549750038780899038605366293788590723470410876898331001106676244462991384167245439099772635465927860212453445504326947873897274689616135634227935578084722084317690822228434737894399896714074172841251023605339706560356690556521544118083228225479462285055086902263410398833326969419235192315270729940407144147302447583012300733642701263221051789843173976821908006521433303146190379560635862774676949727846295129531847470787090532331863982589041893835021723894421388583673873046751805510306366376204551148023604849336804285090659219534735559214067407156651883038102604888880479538877077091957044356534758743233398724736604027886960963967423216200255206714208822691708652312923266212659812844114031069901238616714126102607649656586340140089751943747265447459277230368088023088547259263955404161376056027154722379780062331836838075830464659087589054885716501541159252734054315870706102177591569716329451290131780988021618087600343350001056195775975729202367772835290045931254158884482084740167505191380991536463594422666925445267501592164541081863675628002188089834854701663189031803130256364916062425595914429531712775367875746924587679855167207899736411413699774840680716173143236926798206718085045219053773955177900963580917641398791992669111354288292018131401155770568366543168081036235882508988642159078639278380164971336557811323636808592165359576186984591072499127015169798654435066165300907402043446593540387438979809440251665403127176233958049007849413136656372563776997458842321305340263780538909234942737937917248192807110630502595705387987434483639722852131726500356661615521328945719240028561301390727064432825080290635465028497298821172907806416420901042695155906636358353702577924427620152704085036905076524617722846848536331641049366139921683330855985870567618801613750864621011034277349399370907603473711352364557524202185982134396587907478444986044101905052067536069703238894762580281969418763774462468141371575824900121749593444694629839042140489421393952477522751733068871871786653817897708640468875611325429398523270393164045872441248808296052058392037774021357093523835057187157668141808325777924530539271942420176146669534290501561567982620198924072673570169967597389942108908881129361357993382904407787069186542062509919694150572826946672051391418853490354281285304178159740331595305309334347194839059846261174497539517478656302829488390532710733468619415280185879686699470189398659989958836194986966522718155853224712318261146157613299456474751571273333331232063595081224731340254231183154180552641791046676311946458558073764981502956418155536592801309765963489975055716281735040251728734528083440337770000552378243113133762932344592818534958485787804351545117616560335742915609949831377718638924658506714367419376161654451164999401213200949033259949607597601077258725165455529079198348252099910834986596691082758278099905452705247513498881729713171425825065812586061506804027595349339203232592809579201476859070016202019867630549844249831966443660884273213704257894065900791251934528566161588435725293368100479048007832936583081149361410729976072923760456573298544966542066436392323066561879066888112666281175632296673676411459085676627860573869260451448124278412115493913923965790459956664094136751272926051275159911674198895675316577925476253356753114549333442888825428302681450198191224905608776278034218054157495962555448948755700237256726446127211355326737930158914680149252538732275445466747271160250663014195750306467864912902181738897234144520426099127367221989051666936882546968787947687563606536896684172241590809302207013851696036753714842794899927622478725770343582736021443502839734431408227470611339550435733337213599746324918830844982197127982717345894113818815393025923367653452790818503931350109173566123287645519280421457834168746154641315217528663630525995277090785496299404346645886558056927559650908474997521528208076172436770387207431017127708887679961775978808082723466960739257467535951487659050305880386365239115064174381194542685032098191971676015226120995807242877204989580426564620975267597154822451530807432592093383110666652207923455222860609362892928952785385812207779190890728749286926660318101059565536810617031789238055823875123313138204201494609194556052386440984723802152719098482476717913892231207453714873919631896691872325511899692352650955406165638306032070887707681862119012399644460699922169349242005348069917699008312570709159144406389067593155842450599987984748769588272133259456504508552257221227500786717503969922817188946873835177608124508144729647581669789130556505719178639890710781198371211178993883711873990276433975847107707511796030152829849687835141877469263637712621329260909429385418315713532905251471158636648621570424974119075361478594505272504317404500523593634870223535286471230009503366973391625254527091417423249880693765724127648358950641190341166541255861674467854482257190203584147960013739473727987931201922259808138228778881497359237645576064051120101876655756338828671340687925224072770911660098318382991500586653836968344098627916488176128245144268188193028560223238272760740135153914333530320582999371378561661183003998040012190615464472115102241288568804868132397128026803294776832982916076634750968579168054291618008524389364264006966302880566515562525671881741915581913935895704873797174895243575781388202146169670681463623729333683180332709621953367069579584729727141624901081043555781253542057229956862177623228290770761757617612410452757627625694653018421188514453812770126715225712886635814154810546958411786831307677519654342127465765159541033284183379800117584806818003310466317651659443984711612690134826506042074267499545636906903709557055572588703261688890614428864179516931754670940086329480136046529017187174338907622299855947918071997999245787409051119783360514752383239285014961914947396047309951172005070345230089189127260795958330160912440167964300641197370146898805259968549674448813455212092330785653304883739374523089782907357770053925035597234684837070695506504073412510712554643070800796822868188797656296186424771806058742333052563349065043322269974850260643657675003941066684180018968778915784506799340019226310713332754217279936202191878299397603334663045942251471513570123401519925509578493180979110206459991132485760043958693808219582043774136192199054253675338397436519325749390286523027376375640382491382209050883823696841003614056182753310115821227120478029611074137385149246711579119089872955805468938945513316292979567441552124607808791904348911528656729814806458065243867466414507200971215959410276322269551895221772331181110372819419929857205516746498284183157767501490558413705816698634345511855326033924687300683501512155103523922250531157864442035566024912450454510444865919574721026215846207200939187369089903116720677785201195962603613419895458108821739258459425285413897368032486774718410908589645898620238521667341022248313765987649474728766045251117999464315553126549590398778770384079216551291279948825176179131514237896194226001533954575821754173140447450988692641813260918183294320662457323679871604992964927629195208672909886557443303157048249481626333716828542640259804618499000032546645406336978193331428238020356778768114564958279975342701829262049882351617085000889469114159744955663992677013525450330410673300638360759842503199764951335119020779683806437935805067933625439501978007902299212723537369430566789001347529957283471562217725296687435115663043733490850490728260805377466304166920931947776293465320665228881271078795264126480025250483387579485538328597223150446988498632231785953775755636054889594020549720330846125434008197336689642902821358270414767372219632434374684455853928301810556221134817297169718910372796745656484350937509860957295728614972335632407178074280425554046139937439827105315450003562301174081657449556318751977488883338057599332818684988242875362462548075807506522610317244206773621386967941499755347114670670319741296591029093190694262351636397030175618978161935891797109028518808852119269841579062285696362408544056194615105409065006729716240954975834824075627230089838620868629509198533613183432430903432525121718128045220888297438537908432571763288214204771329311568586114668862348373207964130158574371791620807714632887096828296193767942954432903886889495910052523900722500099311084774473854478681148254957128087603164675034301123166951362518426347463053145570955679419904483706981451310695492604666087180060399492659468813785163921305132228896433319420025651888172730379526772618516270713390528997564557672087881970535824316984564304262546332432285903700991760148636318601137055138264701711838196351523124122296414793085447333383986744872414757136550065542714327653980301096084868712107329112304586564979250283563256104019186050864901431309378386494502796649266652981291445969271423471699355433570433783800679686473990987097045017574915454984576076336986807343183780105034478448506022004677154559504475048911404235617669824175447019531672757028533616778581880204559048940602118376690771605277046502977539960766367380640006452020737876393307100485597168586228601727055469192534690700825150433224076793224729037692502536494255685249828907512427158281666449241531801312504128201930824638928355202708411273724104834983362849241953687105814753894160963499457936263294924554274734430018569551266382051515783427460670017241092170873779685987362248232874075609722759920529169190513686750879946055198080924014417897752192783235775638016324951478701973561351989765479986300420886690745092122597113876500887509693018776685893044232728637086416630730894690863952060867385525012850271249068060154189224528234266462904223704553234704505153695331471300985654406756030709546022409543613054879736029304964128772780707851674359501340069354552217733783697950617171249057268988893602096913310259773456285774139134030946566810243154422051542238927389825458972451204570023956726324053340790554595884629729623878648061463639476508912434443196326040274878228480975323405466205784341400562149010762630373057345225226497665491781786404859666524032466790436439389652506393506683678711126929055404498837231047179811602210174701545452482848115026202112390107733452451181282277663423125804115840618462777125688405924578538014494682710654650098367728558340524488788378143531537631871065654861310217145542743596690886872325234145231411783489002739015030589972076295068778614562817945402233488518336445009734611240593449722091943104720502962126408137570620415088313338631219279424441945785477322562198247861876669968755903245453355231126062486133403155624766100045641890486135952462978966526542963132653737143917563858293969828458479007111164985024801509106461842154962807792698141428772003474983477469135970054955885681270537750192519338852114978502490717480010598850492177535913271325944162342678460901545402858428598761904216040219609790348095091322947480341065129763539416686657729832830723695122559200547965241407777660768527702632606314404936994856658453920124866754811952447944995064097683124437186488361897204774598308127049642024015171501679050727678765463881797349220828588693674495650873075407960140598740101969641058805767819417145927454561024298889054406695750980680291418892161438565686303920362086861657435930674340113413915639553090825300911161953863069712581032015655824071037373758268965156395942765494387648441028510092359660100506236478300109609319333690532082142368412736690264562985808584436199818928123062864549952295118047180747568716042433208463799894390446540290785031218100951792010705878082882249675906322133661501204255107962234600746663274867928869978545019073348964812983988438060179074151540023320694798115842575834145729201823734417209003832743842508510194378880375390055587755069610049061880974729820698152652387024537062596312125443002361877704534478658308264429857805154956449467682856790820040151422619868975155450592889936724384299446558707334182718246885144706431355179094761111350797089519019845588917803594136163534778627650481819163999852663706949442870604346071357243188152949012960700734596361014056099656718151850708751234470123166504469112776424060897469978950187018999133663770859671220768333065088202874084180967484710221479040038154666011269292094714655096922951061997537940181719011509293703076103095348536910756450336624338806882560680305774669438216207737602394178770946457649567241506353937014868496918802068869415521572569662738243477748300583092824868589446426115200874894149165856038594888760009050033201675093864721262251271928407326788230108784887577815929380006975109000265723324394262317414786211931078767870983604401825959409258661239520135768319334783667275085879347545992712874744713510397650523058205305637643455741300528976852463560663929547276500820081176866812107803751054636729952459570144514139849055230464469371652352745689683831171113585259901428128169248322678154743383659610959612567012946903914188724378854690071305842380243115746877145865410957582012354785481687282516678592646236428575436611068488423276877840430697758190972454642929953579828419371991787048792704043886034840177187674728979662340831600816093977768431854146785358757091990953564023881000008660292133607059834325516567384509513281008580622058543605450140577791301495044000469113513166140742041052260017250334178160952619391466524762481162430237159022457826835668051813284987221257008476935659722147643518056146572685631461825981975709483385831236915088429003346395448674059460175661780575943476185714176858448246279864386973290578116630399939383677323789869650346786388986368379439357777740950613101300808052974720216117899985339542445165295470331541630587947671070172546498859935072363428474317043598074046801908393942176318642304586038748185462367644680714826785693620840354657091282557543959442667082552522235832291976316085339353700136858680307415856961697708264069144871616609891271704057601150471482941955080108385814210692186898326891180924045924346933767258194276706365243834738052919291916798154996551403017301114880067544871541825604022151437673987882826376274375088322058333478673820574926757949552080910291014041423991211215494418098761130599445033752451157382411640970002915223807556810239951499976477558673339899712054695540894704494459206214303649185358372118077535436712322550988941826269980897542434801209572365309351821734260305210495559040371393935544990160412514921600915873581453788379648986413827462884180139800979072508565968048185636242230706942299774261819877409316489379907547692066466243984932671500617957476330104413207308160548516857372664425244176958732286396283501412587526200553953593059026759533120203874003555076018228694133376105351575362058988981728582048883341757319496397898312877895852862710516642091327856428106088204704090462753367657327360128745816432684691345604604689964055125943205819538358092182171500315688460690004980928765453324154374453934888022010009352984150986662209130789672709429687950082528943482995262375518889986515706865681940805775690534665005624169575303044453659694627013133102134179430757170332032241132427221231898659833776679450704138618953719582202422905867292052785845297385177125940329097738444026317651428236487130837016009552551596558282515571651109861363433909596428136230678290378489395571209795803665540354776657674413082873882689532451927465394922697548557815983143235031283164041663995916115107211681919214715239208105966264217499402365524836502329423481428139024688533077372599535108172694684626883331539429147544317967696174653188814694814953840263120741176716077485014968653037683198185993803646153422139019277838312680297016657921887188427815125235577085877358347519038148356949845058361873870657647811348860858851413692577411421388534612838729008053544570746657889031352298815077931989728893173588333030991013180086383260562082632077334965003714282646761760805194231736661878226301829342002908469966896347444005913844654176008943618055086793712804433519305862908359196508932224708735810088486237913999100705009362093532696574370358473727982529819428924760233241768875961395615430724213958864199941168123197041740461705457487493302569433191609891769778801025026674502622820288227246140528592962870744746537051609374088092364156633374241676672939092665921241014735463236931037679434906870777809371487349418353172305513888996093221645824504669431888015193230953177364096559788073560830427586518350690882175806022280146739784947921482539863578942972031187989854856701135473446510375808010696638354898186450006849907759531884294650538286545598333419375589160749236650599879073707462048545960380359653797871764998853429796658054749801118347139081407927810422967498733122862221450210749060794780149585820387079010689378379409995848278625779735561796459208803802757096762004715957731242070707192785643403009315702898137463843098013254861154904549766282563737756861090671533123021893320762688216846135328244084072692433414963099386330146984861167305039179196685564727350059132853335859586193217505610913422216702730009434369709557441964892221676573508694034970529006665578946445645619418784505586188451700325187580663264370205687023408917724222644973374321923419341518831892938835163914101711110126472419308092527032818920855472196585690665522706530277686839580649367343760849149101705597100872430668533220067731600683568011245220164479821997261578451137051938483987482229239424146640817562192764900092489572376969408973293326275387057806688928725273564881907193249225887315469138022746584038889295733038145023675095042133845015141000463565635263217216727014572255868608021322249617807433796719875902879125324105854845069377874738185226633491769183557491259074693048862275202947976814825557898851787298527734321685086850649796571175297982201648234145997848314388492880429714646850786133778266804620783811238649944469717054060220187189097273752613546363643572755895952862302392408004614325318421414293609163212515976701642316525158461447266405947760911075432188969474312471000954049935986790828655294733429743231394189515533888777418992134859615218614815903235662184983137943123954464815069846799476821976671086562187805293951462935049485261156291720330342774599857263101897271347687161493899619780463632570995070181192842853489536990064961091959607165722154707575945605544838465660241200833254084854990900510407421479754739134143400920942413386098302672482372660211199287777177240449524343099529070220966759669635369211959343152085802112301147726923331564152079309560255635147504802838060781085335928831785822263118652888097267685913550352790037917355985012770043042848156927150636699074213913928492805230836985791775114621663736228029407626901567647097819954543755292737339971186116018962034457748466511644445001959284330714017219971133184088398124806516874039377023705195658280493153688967567842314910768978940810169066670156465174678768400814075733627078533920809914063628674538869679912861741736906313156948607895178850360942853032262095288368091582050419546860804363842499567939999834574889316399574684419651258662055536353295790191609763998114713254041350288680805069152708361820838407736450349441048166037208147539641424133119542572828870104001182333089941864213095381176048530263710798941259787518614379170730495001081875636571240879975498950095068038779773388514578747838217817909430064757866631584688303844719754553565494043048626105483886082161369872583753758403108443054829564390872091293062878736209667275060478336345762332679038499852469555079895997325570297838108202236837596244348710390211601878266598788974799699945542791126203551519934046256216487569963225387216650280019058434521411937659174726859247483574433598240429376390340910108393038923453693276605623758136455568858814617063254687340898043233486441135676482852627574815715554885863348319510643663191166297105140870634609534234215576498626839349794829552260941039741783032542061464862988510722436909927385810562680010539511854538545968949505086961450635895945620619519537114159857991651482502920393817424568961913352090264285066394221241939462362205329085984545262239924862516464525423814663916307298285806535257651864201741807327644270633448599447701326265010361774484638549660082437031951511928612822683634673033027453139299105831677933743245834089708999605890548699222759245861146828366241655506039129496000951521220731008666926739348743734817358825598680219212917682084445152688483686923922138113142906974379310751087641012301869939468948734263863612307621979854507405841908690278076823046185456189497447448622215688390740861071596335310971567766565278581297754589842041505880941392517191160338326263870656707530047878784792593189044299596585402103812950882405368879894152052618856958400992544553622051443492740553654812052001560098040587262579975860487420288062313234899330474864370214283688116071621177310274955296320734183924283722889519824467164773734849252182356481008934359266883671268712748551173960437459889301841805777018512939386140106306426387638207851038826818502491569556880553991531943156469805800181912236474582064450258064911327008079132834952885350766358882468166410166789085898446414880225478880569206083450170107266351606923318534258081351301359110867875040106974455619757084380214911378792075020897291822387939206274952157419818401385520270925612399910526538687588379236198380781401694897369386076667136882224163814571778285908693665690823816839032169744915029831150734708311392391450013752632037989970411448341006604797570792534392773517808765879791739737700452881230526749361206667882743281334385592432547705865136793811819242070433830768232191049547049633733224702522245431134328702166846443835780214266925089987717497701422167985480496305957765632252856165830338255266779181347590456474394667803073927753293400616220515086526080157746213577660387681323450250206000034124476429269681522800685593314451478634800336857125308942552572609267328778390244846201199880396714534188698549046223682581722272396985347259640358242175164887291043401331064190459821360506684420238160424465858277911427311803993902980273547476127536623448744820791909049682140804100763344287494989639855864033151856216095930898955035127457647586800033817352090247163033584317804272319289729497768778816258777721753717633104771982320180864829498787049383899734894155882510146313244975301726430554067592048905955829547697575129258352701244649376946000626575239267298663273565296166486706127912910931065634770158358581585018385422057653542487500907508759747812817130238850930878918062300156253631035717322599029981604318711619457946852745237671861925687413640792683922176607799460099021571396849209139144303250873982297848837942970126414014496150016317639859099450501848613581464500406767071078638430818161278008159761949970971610046029194958873047794939236663163180176726677625004906844968331640719893922060370496172950330827035444942700882331900970055592751039125813417179656775552693883481224088019185806158064759749104905896967147702023430842191904659539572713136444380919556006094453352000048314342125369259624672666453195900079468343111389731047017451317613479183121188616677841048777380414009694151754743784160520855590114008069653869047324831105719893020092448258875436325256917308259614870291768685518488123491890282805857250994235739149683607188321348477264165531189607233810334733385464908577326834710213041883569148376404095062336107863777938113204168246826664505774370835321480967755520216531044351012992458629108122426293268126294774965016621683931666650505783033993808866301373107087480018531848212378739108451760624994537115478536673541736784939139609947055315525352996597052681522410392840730176640906386928630594213770737622965657159997261194519387799563026200307617534591636722106171547586910990590499602460616463308462284966540202278903540582697387975614348993676907304279033818228745008348672504008638306589264611934041709901329367986893847062748692708689690261368954190981250532353122703265991707323064049560827023023429273823800598920112210748209264659974600113233746156885233802681560040863113625895786932322751315571106838123102735852008283112885169400354841723798013742766029482067059905675778673743875466973476364580821768202966602980474223547642855446709484512330159219320790922125634198861933302809166597389167606303498694444394110812362119471036376591052167776952103750265783163799912637740480522393103468461331639997602570065460162329217476049721613074264548181685012140361882225574580767683866317192620131815563310733450332528683107935267902229620489822485903953120495861060148728735654019558690599422513110929160064668199172438739278326163393150029318328885814505865232304899161639795064258216449759831784051546829271502520157009755480238770150467014634094662946269085681809776262892748633290085327295924410828851360253372387602821580973139413421401410840144357513424810937506332740836753015537763266677164915477396478299051266004584661489204936085071640032444833939039591335313914448757737356995494927108576543828515953110727292792816060296072740675089752213234833361690227209262314403252798718483289814851385951227843419399905357047084122527860396463094305574285469368227925220261039763851637432194427211689332848612488314635704032336951280626641926016489069170358712654742491965439487273701459810573683931274591981723654236775326301694368779968575525814199624115366486138486916379431662952569034510049940778388381386028021848390905078428037188383143325984640078643395538965072272613627236566954584453350638177609114215308420057281505984476746937493728057180313363499971289953139499975509209630875594780233940838658176826166840893492686290315897081795602849048434814761303956653247879011547360868510193456430809513283514867258079793442060296756823423810969048387079014229474784628268915258646157200594176207703228641371506759643946598400950089803115390131799051130389906664359116408775951968889212664743105408146250476185069456973844120766658550755617446956168597407434112145292749261598724467159247323033377669686159987186695425048323471219041765154082833004685890790217210361974760141377946697917108068047717623798848983833904839230035234946346283028938753550769338696663745323170862741801607324060501189519927625840541234720988775909994680899085579047263790205287176072173868465987044083446913123714813828266390086560496888465671643575888999688086022761695024912264536521307121693261783134503313837709258770573150402668967251706251789192749942837328799506887336235483917990427950689907209530867631769304270706972838750164870109587896027207019960093550854002973549729865932742650946832950120534564765686290545458261803291534849449573257577530163155264607936990028612605927841605377488841213650485636403576030986571226025918865659640156875229438404303524105255705084303954030186448697228705542974206567795380002431853914341082073189119237160076601979311028225651152965506288665175600768448380368639492956247247974365616669101498781806974587012172387624046948338551495168246239740828809652781867474953559362615332470391050466429581871828592726281670589569405451588552861379932549841895774208856516561376515075232501289438091961006503306173179882991683757379403422697359668128104576163101928612948742161413861042841551640873683222646243215099768302905501691734224732784642082756262477324806590363809245618471114238886640882328377823970528290532252969801370145828383430608709242044990224035281323057145861443443537233308131989156488273586067663166007411614460497836869603200254753480074444784844417880060260503566950181923521233186176925766220974554688228261842619659907102523240709803410584273082628698033708028817153029968947596709894969015640803752205032559646685835106285548006743437208561950395687181635355935767051780853881613898398409733257887859768711770240832322880686241664828207291408574541732902401379056527428366815677762016928855709323503617877563800860509703805489492008943165379706246210335153943174018670780500282610143411897574536634198456544009044161996294086733951610614666632008497797237052470093550002366515692306116082926061118791136861967976262049186503226338673576338870116493308351360547347441757635996168446059800853900206951300842595624593059167858846488565145328921101250378278392449069793718068022297595189388420881775924616149612488606000186530538783303052263496235446194866893517884354176011161901037293071061867794649904597282095078635233553385515939469649395124327208946789082756407663147190774802432884991746950252466050590229036585257976159831470687777547087359891394097286958851233763310402996685401988546057588220209339704896831821315652364347719564648511552974128414182770340540345720628802352960121735617458487310651483547217451164007077735863732091051919671226877184571989407524358292031267626517472676751560999292374794984964749714836443302438043175981137048520369145428217811301643358256100152258099839310073960685125166425206185023686561552269584689063583193892936330982569135976699933801799395994300461481532005743978268543078260121870194131502779262267407723847051759398678568484786566359335642499166430569927925888392961494801148529607091133883101180586387604276413308897239906647841144043832132574087361622712609694985135562573850386156112608536196196523380788739113585625133598269076175043535489196506225208736255519671383310507930280722054106466165111101379394793413420502300396319144736988159914572569958218327923120983382224129011692090982897337135916996843820696450685399466137352356485964451626071066764780831572187832976901681124887884236126943088208238604730407941286929252269721988182916812918558391157634026585405730815656740420981448274871356908107009533432611598642935726947442558975350646134481475366157565227641120079680956442606173100740711800680341978722386333122883246947576395536257182797365640823799391317562658503735976313830604043887962605692365059317091859873709995589627844239987598599784309693256992288645086354630305038743845182528175681517291874455831903859991561640404836723028446643670509929528078506142465859745411630107731512393062742670023458392221126243021491896552393236940930602697571667702723275766416979438466294820969339935187334901679859230582584995473215154652003898463520422309261118123078277317644961852812817170094583998840479798255542776896084390603465223072023149815350447953422551061763549339386484404810541916138716506206211276592070760262904799017117307802541446008033901358446722635708570105078081880290034327745165808606166994276966135729739086440663801195580653878160748988323730368781277745292265964796089367810530234469147120661055558750640217869205269661379817172585227268819745160449801779306853619560006438408265181412963156627829396935893039869488834464691629783029417137207756972979357849079426861434853864294267742359357959412117863797479489346064761817333020408007055940712057189781442612348860239644141753684846430284474757372086361216508064628382532382298389925259875863910455703679319139281076615186266458705808698087446992746933693563760491174449044369794940675028699414764747471486634270379091913588869360347987686834848126899024500876629160053530625201050479296178558167296807452121059317446548141197550588603144410145939701989856716480768977707374569512329144719088614259247714496860896081554707854433669429110353734288354096991258531959065027512464154958210294182189643761439805563900710025723776927463021094852083720083080493573199737827410556968795027273308181334401227302018098631614008619195083981841554471862865720882953465464010959582873729893208199976224506502115561699428497633784294557989163302950889708905912614700769975854661278971041258413424327140384766980946919239814203822475979097646686287848101513777256876612889041678180765525642066493453698249081727671529789938685648149812449113732012771253881791858310140961443009412575575092578854721647295493553887304619815768354018313981908982426607636329642766061891250541760361564246993006185499814182997305536988280784590785892225916874687496987507238072121865632341499323065872474913023688377827010047138874517078823896349821690855883708878917969854808255860251048855693557136752784991580893047900914008384339868874630372556002276524535160781994489448669068653954123472955221788363896447009320544477856262599405406162702255127413013464630495133267434996641097093771173840696152134149329697554953887497971176688534639418020930747636775651675353700227533571062812146172711498812965082011755179250627179936590204765510319525793427346102810284727158915976693939967111696698966731759207819431122030956853894695553551867567106206164511179070859443260589634493872706675262642049484658039824835551474128018416727171287777447344781210722579309498724488405095043194119799266800910979883094440671401526135584684880437162417878453325919468598637622341771857306147509650215470712806939273715144568229874636977458004427627381308758841676023317842470507164225637349884242439118297441958399282265163240118049651787524360262326021770743404504711434398982926381147163223513230634799587437651363826175588665209775807008051948087435661397664903446418788754370367658503573584962761810046729488515799768797758692294529043179109192575561559290509784695059763180622663252250481665675107963875102482852969585638925427519739039313650287561432603077373567655004737059788289610567433404573774336557339820940692557491600139428313058112792541657532819479140659566809544439418743341422356702362830306658077786294991219464028726812708307006686133571362136486643151325970821656552365293582730047280103129723101440318111065481798292786730739199651144428634259285484779648693660191008087182639870067637650512834311118206028402973511934763769673665259117424033704129793904524277508341429010601188426818735792528032984354992634940783840713474692508666118934593547491238669625414798544044667281657537690150190627100428729742914323169352213274575679260706181373112780312344158224259832753931534263748652614911537391360876717014425584823386262128143500144967996104202170088170464651196277007366250683967170281172186321814774652311372946407528587696656466391581054821227624535131746621000403802630704098252322017452057217333476588425577426237660525227648497272587612120559391254768420128474128850447489594327591305468939660067262522379142694389756040591666484040368936771805658168700804827978266978128278458658309778984950587117340072372328072605223097915517095624867449930566474250139579873532803915136797518091260355323574010782417379700396072290962188277121057296892094991825719713386388002593152598033784635318233389383115096181124000975138919967720082807388411201554268520583529830485752407738594523570379355412741457568542063287969875162807820812566819403367227982004048760690467284070870077594752448234426883383286110863765303152075879733079065523065416218718646587415403719245037015357286344302717954161149407628817179525703756236524111238430048263541697873912752642493018396657905171010587685848882481812963601406617955066419317171031223217172195129813739292388311899989790437130711081476826887900551657988074783851767653952484290163973650375661175705622813288016203196085302980778198463435996480528092256415475585984501146713204551193705030567993213565986400312206184489228481197102640578765670025351026968781516740843811357896786740226665049856093357170973031854372642917080283532836974491553674099236643712077784391346197644121704555724138769688825352252586558073802697807152631276588016929936624300834526700685629797424126348888934119254047717258879024588228892246256131789307235595974971288436915326630081377182486103149223858061728506312457597992080587633430315469461878788602601145969337154191320955816320154483437643990257380839846618436121643030038380574797633476374891414426594792550508176647452003497317285545676371513750928135905207766260643052801332300775491702303736846043656723519451841535142498916714041802639836289810437423966854978752758290990955321251053152274467479805106537296534327099484582916029528507706768017404991921053168906868306737069524221322688400403675520413381216742510375069334303640642553912888411646728366444472560526424145584233941068841663763759174717514366979346257361076003418018883719136362835418084901520741241824318939609770069125759464157974609713064657720136396784718385669604793863633982358430091510115338324776137864593622124228227408110493093962715207027047254724991861889779077811379261131118662519549248510380678356485007703290223379576356999939317482864606723301817991182642347692811330581686709395218274115484163786214198805034399687817057091081281341431603640144176852992503301609879809660192328812675638558165450937045591672452721666862354639941613600376454986804779655336676682715503555990948885347981109944225389735784304143696089585503867540663301987088092553712177790808469167194771109857099512018550125845909870613477958652390622425250572096382080381934761345759981053609004167475823212861502925246117340078768096217915175881786164643955406800665685328369417971966202995457963887884292611679373875342907962055974250127633214550555874380869078347240069093234010772821698317190519992823861430390979915477297961848274444570195508334374703981948026900008083882438251588798320379518417808034243848577240147257835781091285451999659750710416256981763103542035162139857151110385706689285551739109162564553884858522707904834866701435060980851077751632451376596423307611230753953883826015028270194958397560522338846410528114069999443003473215005477053741666743768228348826433910347355072156841615529047170189025781854464628664450450501146790239504327636301765590034819551489767579311759197024756767236495361188740455482872182812837480705235183145579058999615559158376124600505971977815423994566851833602305762141052645153642521592514861261454649632005928018366875102530220571952224775625054715947078323725894226791861811020087335062116142177407996023786380043738275439101050495309986087158335533802146554311748005390042662515471854983629657838853818918713559393820435169518346107119097709004323361149057138484709565414201090842051013431295156008918128362962740416799801904428032428915744307435650771755241406883680659969152499808693701437023149082438002685213740035480547919183384949066338469685094316147095554758648948672379879394663552999859892234394585273771959605661568431043648723759655370491848198561467276603265810628888928052241352218725296963646075506478321575958259498666971750710278181702252723382771899079041482945509524357033582181463803331178646095639669255394811832733256820244552154086291252418521928365988937683982460368180831737562413233790665499702936751948834177117970667862643552699780582615923505348571914413246022557943192026679870772413141147935624303695578101335952562344811865577229905129438256050462404045065015954426624950912943588880635699523196570535001186321325203359638699252342058819398083614810815087776348711133647252294792387352313197152430409574973097880440070319055674492553098777691755325247380354882983498306194843793325954443850757848585793096265592682720770811800179305440996723318591996946419995610394482428995817169380497115214243128060865642497490113634794300095946434489186482086605062632222227725156981018355761119655954217990026560743586055833358991335817959631434793465457169732373569564408352901425393629730941931422544145249513072619669281247744554974197419655568714590435485900950389116387727409020760005828459978198252823926810037076254403800469384721844589695856828445611373020942527939622910320232763133861689587516772109200609483647186092264804303634421855183335986505510667801123752215568881492980061480653104909676317718013703603808245450246909413345212587479567613530278365294139739057582609915632145033447960256966733294061628447305177515046520900815777147146910672568502847041762838677050217383677492798895335291153886215942390220166657566072348150004076234407557697952615649862110552223600443246343092948535020207324473392460228893808525005589757962658818353957244417122292154409126198223467168393349582948822291057165464060780541676970500710308568966711397252862360965091777666425523898365579463509479982980685980647623416812590095488727396609303007633705583008281621915041673481991243743610663031084121455069807061348585072948648738982390566367544656545443817956794496492633010517395903918280210900350680929293916727846226366413942481740643279530316617772310547621719126343934839427719364506217298154649393848892042185050253499248952903625434872337874898853505340387904241297467920702776751813082680080041239713605782121761720497076414865797624946804643068454167935399895079988419298770876353987519101156468783820214222221775798681483108472236040002596946663612455056246539014803588917428637618497008044805769566176139368095118784894537219448814355877015486505546693678370737848544484870323058166032409574263736552199318964140357319048910071399205140635858504355662544635501691525330455982330678015242555997047852990212793939892331883527646869219137596442332786372691460702107542053623474633602520937158607494218816975972068291151750149289073008117813942826246079959014282543195120847690484911816035746364710246347532012971435864900111701276453082035500758619341587404244949126720909166142176555813362734223683840827288649061043738255704997293405611561732145311921871673626934746662081667990935695977849397285577238984326325304702212006939795242138307797029856238608702460408986519732437156977719105763687494535752493271629400097011083886775131206095168266887976573984570368269337936449976694574898393933699828683072992094127205812434449973069829401925119694325700737532485737237220058769858521178592629431470744244038574500596103960404600801424403898952815621174354239657326094711641802763423477385534477696294790212263653977121629444098324108630358412418353245830594468816222993290240577878309419237645415684996432219876353865993327409178064585068196076225387712133231717863944732219113019524259402329640523726323525844544715180715545540325391016942780805542026673323020241746732840363904833626508096167348622638729189896171532969357145910396552353601295993220551289944585155825093731684033290137931588093500713722338036261625821981140127646372334763947660562125178534206524436971865477194201529369465405034203889436302958867511182244991191531729855490712722280685074923353871870488509107261751320269018622947313635541460977222500833197437939994891892462958463049551271333981683582637329598078414335701494559668367363365972425380097822611764138126192323353879410998147469439162857402522073182673656848260111901658284080483756297195679979874787061303364109841905372583752142197713401486289853572983105622569680559556988499715106221164489732437805308019157786069454843430057698669289757682628832387126739630134152516451151906656656229100653272055361069119335751888230344588844662177693503495050820967848890519846133962022380355842264637508897774842283733119679978310716005660012139648752030760728885460014101417473516094312495697803855776155839286920088942118653041806069548582167150231628647430189468944956250574052521792802837428240776707453946300078624441392720049423969977110454595067238736479185109768565359627548789970493900391586994118727045176471362420730331933439160274361971017018964266560468031557282856568587408989109724383084375911440232433171707056895410659702128708659490567820470924024627968325173238676799932896243653204712473400410499739315045507023258060643175765569865551340271621906717847179932007050520634134847376472569526970366673557328275029692131303201673298441677530491240880646976369904256696591029551339573646562841808752338776803079917158497228115588946421231516775386284989429743908860805628896968887071319181064531234798025513249460185297093761332224043529583405078480415416689708272721055568395999595015770956146668616761367629105198574357053756781343368858532005144030098749997012571618056993203287687765354470351938952755025794695347171155713256132124979543403147282160530865763830142508835101209136327437469596224016876356616457101233294467033952769550889910841877912340005335236006060394723679595861714298883885507224703144433868916746196613440897277486608936583686646274755439964258549591120374095246318856104000201217082169904245934528649632667171575062073694234780752244074845770137278698517008480376353650779029395444468807794021825835563192530656897175935586065503757121271351226816961877324105157372291636853589691228368228415627270809970438556964686716288544836999353714691422660724644679759635246619598006032858245232329594641214810335873636383753292675586731675933934788663895681903235673182647837504892060864609395075408013092532814074918980475165575793506040862075586061527228675168047923749044360990408819353093370022529876697002562669838729614421465215758536673632394393683314856984304708491162796503942250271108903465212470588126723887397871768501529501011484911839735839311073886477254098683777862210073009002466293177073550190315769206444026839753755218467452354782108174438320124874203661484372382994287327307134496378554518185808980919171353381256558302991094265332927190499631707142108917604451964092324678064480826848782039384877601891180721333706283128348636260723901405429179864399940792445490789927330484098900087565294548248691436953940143091215303152965959906663671909119541386110709192962905913150643083226554517540613037766594941456401794481482757546264943377069935635091401610074816349798585658661915363191457368681488487395035705244231875883561081476031016365041648001217674078295121772625511300337467654031172711280594290036498517281861557377208768720457599139275273126834897108346066883755752401557425648368423985336443540000869523503492483803258333368061264687106909195692104128804627239279076612869237670301540535154733960396815957724822200717581330307840048881461514505382906265821236571253237004601316805244656960116218853353697001613926136108571942992264275107104842699914223895378093862598890089346657909410942216350466778769707183560164112797125984043635819109436221824641229116173983435846855053112074008458811879707827944270782469708329574747488484930962116751574516355874965108935591459530319992144502824759682041203637982751751257717381205681180347522596383864061409226985080613226137846501596592638533767736633552742603898225830875049966750546984106180701352616170949645018883115229693890657763629286924204291855344334347450808825910233068428346196363455570222244796800933794839556887529597682811524587201474032034156275602890891535832282017511895170972888939293020033185813301280029508797931201445471699125342666075004476971492439257829165704663811692355129060853843489461604524767944215289333081297284937234241003467086811573289128599799035285204877529164747263233891636369975444054587142648421080005229305509152120940577882476553741589408206488576100162387925300670213271537845056598843577548642837009802852950155359890191963374855292298989048966945677586487770716911628055984904160253985561570107876872165251703522870518207717155106582612273327703419650832536966949039155053695759134755183309903772166937496564612811450840422344301449203340514278491773114425989826137652473689636654263287878218899346301182684823873794983499965275104785737175980937140038154690107623148196391077844582098659847465389044707210052025335628427201152082581148241380717315383968949805484620841922050603200953048142029184789026642087278023954668059646668529186017428449703850371050074045316157969467645562076407337422010167793715412824959258685294562583880447749171593048515067881466357444778306409116494059324831457106647493051668078602870624395392088829902689633162424378546181610371188824384856298127887029024797212452633823892775106912746401776617921060690369085337006733144260681884486505634268763057374796092006771036579794170515797394044146873358938827549209790308955506685394593383193599058827569464175004472133887955636508481531822721657476492510066469013439204791182625010058173505875088469545016022598120399157393325816218610304302946922372989111651760119378046092391600346936718696856046668695291861013109666674332499863364559721622943077223322416841197862113439780452091368829184545461256153009966079116589221980033432836200542335405574338545304814473497962733880459213410173526373956157469333163009534747485810664013875757895618334722547232899121645863206394423802149699712214525523062530475228024586708992458698456099537068116291472357424209791869172368549106287208223445200919585622100674282335040202213085880992271357922738776919524438337533090608146485916754637789401862120815114264877909658445558074421466478350049114221425777773123949758662580688813286066165542271149824141005534088190204471994548247728218358308765751915064936471381482486794298082461733638993933149436481580863597909979386989613667263104526326602944852016445002270230698218316566378636129776238660420528595385922077796912971605333167565109760965283973771404583364137507700977498624653621659700234457654702782479296939617071413270052485831891446765248873277333054285469612586873819436736634613821411268000302463010949852331993007017677312360275149553750614254229435764583734390956664376473366908043043671475492354064546448292647328506720601295875012276761605537084293971554852307819858241994196207007474200877053663663194891353966856414864692111489673055465737711836197947615225182589031143013539831477513109177439230425255988593051125356874565697799187088084201139796556932117377133964507587635354192040163375095720655933979230105935939271034890682271822200414126260101111543887806088878399992556846788841038561709042949529214770421929840673477275065918810528416727876687586012318011076868578627228563919855360461848468575609732681304287642636918023859710877009417131219970595418929142077085551383146448363610085773433217642167476663375656544801997486516060823653403863067960138292883882487825959562528678843424701438987897424744564256257654649752490018751002476560298210622039582787166872643562110481868752472043388164655417427844784249846900112590124677767544226839467908470659284909179564008695078372210930591338322471176452735854366919402612287225379472844307705453240871687063196558109468499962474626447488122680086125746256353745874552236979952057889542901682894917763834124678590727741224872193150366159343429070174394040648545218549135159826442715037308681623283972003599945451441566793376176565420432782838069105361714021192850882652683488771368572539337098904436913565959474312770933547420839078345609747085775669820127589159329851777481389005841046355682709235154673149239998550705232380652385838164347351080388574926555905696508256802400961916841304329618796882355968365092743597553352053805788165330921030663269817399206022542629897888584649790497517518894084450173657502565166913064191894331252927737516166573117609158328641010081035385995929580806628758791328909858159986348926086288168633345198355214148812708732428888587209482548952889057242876127375169784753941843836161726823625968473704250926701583627803198508190915880447596465068093223719307662304050649112733787721126496668031556689831325267154837506683860839126071862222730483091005658202468221134329119838460227925274575079604332554274826039995474668692136054619732513337812351313123957172533644806193600253185145209345821676645767783518813799637658563656687732457502566885415906456437144589942937140331626802334611790597978592447543233701073380792155105670944823664960072321380475145603537794986326356916117840203001330074386745169350243685889435226271414672601851533934733587029493916439194488105457219388668522406770046670484716511874953929630998384553521612760467243909063489856534222419569887113402843496573018626338460508651427979695654431329347552980861151886466534544353027770391216058272717214097955967592506888736795904108246459660794478246255193740789158522402323165260394795848272470189338134742282466898201878732194396384502088744947938879127823038552978871935939800346385893447651901580207136701490417528806750877639902075414526527644585843961285996976963250426922198808467319109781963976223892600934371570992591492680007611444762161168376799930599475541465458607690801967583995502789118387249678775131146054085178031072809673732922989376536286208819055835569753060201732980563525224815666074391734629942891586575035925245787793284430452352692120845789121061818824783402574502298664845762360760443325002381879081927799167681674864087025252846718227190766927653422622504529427013041704288745483035180208974940876300116698677902235239049068306903812484408789419791844458786594307411182316946100174014059913086965262724206184591901533657729510330870560271972979859876787972132759393753823404934680437497502985397343739101310350440440638058705054959714684529339091164236063945072749642672153527259738116080711046014501978572203018155621897328743755881354830794974968378968567670355566357555495464605705905005579411918293515378918807659624455287395196597371804763512370464969248792678731353487748530326953108140968105385800467965682711627346372090998939359439830183051906335602175869968478723461549202236819502809350162283554522486552111846142517750263069099647361818971809316558589911860123184847280501067211044118789599250301803145665405578769610161124357992073800871096913590781540688026796150009328407471342291520805032630180574700575684986759872505854546300113178257323889479020007338763258290569097915425695003276755682257135332823414219328625019779439737168584625058198105909133181081535662626042546482803940872951117669417882946687066625936541251887864604802822386542084260407828701920429614137790199392974817832375964041231057505475252144238866180099512654268921107334581913223792207638298773158092047552439013190616010511543075685401790157857500159501719441041916707381636466700612622432628930385054485091148697123288549053581041523599887844815795025172493413041334846942898800940790413688710135838365491704044869437056669016178292156743560728182560813170359246346770890231947451515833784060199435233374812047592961327501766574927890695597178453573273063271325143902092010754454064803352459547773890072472131292699177032163642181540691466601014818521378505434417113914154424527860088323106042832856526110984821382647339559239871078109557721861525649780997426230854856160713175918855539667868375786156943346107625180575226844023382972996061367641907041036515653248987454465452132553506337439589418771588825730680943645846584415630270844223393727690790971949132757357271644692011944369898175565309741136703918781174542720846994613637795675376378390186690580557166183241721905316425923706355953977235371853636175089854650084321354274661245170527589164994385829098632663642361443268041646227859810849486735683296368357675554597387917668542755078874792920917554286728376488223143995115551158909412676616432639170268352250741132712182827175462939664893051142570421816414927009448449504757403228234755312290146379244550235488891204789806142286492153361015395317069642839554457056519196967013494762294970874572188629599517893423585012771965654005308841088667716863182434001502896665671123162626111084314403707205464531835517387775173173124418026857717636674926908576686280203336003732509003411928844305961634661637816920234701857450851515955922501716252361864805678332986045473844273399465720007393606402858889758526937188810268224587261861854592784953084066040334092698912650385626238989014282045208694927809198450455042769343852623422454279843134326182609311133054102023697252212593439364695917004079808005803790218736348585409890378049337503604436945127817511662550824126820482373829935904136510177993586010535634228822641518754977996647370078747015110840363386469530086672850716814799589755347387968753103163704274595983766728190483934447124680827654004809827197027004562647154508834149000117937294468772086825499795646713557165448839660042479566249239728705890243371768909770096891508010774900942379581233558238630197725678299798723467689992527444578943189437203663955875571503379999743001591972934828108548150075901532399548640581798697724240210693516609284739470648986457707714641943993339544539759442350938623900268204960612942995369586241554761056311803663143174430157353393686098993689304279680509249606907417475293799822198983277153449930275422407300974156569596722902413923036618609900540249506122827065324515885153994973016287757754983713565768428147385851519019858505343414443007490706780290797354629664484747893166969071691127362449338947125469428975483262864312575830760220494280588644425674121405195762717802104116133761982220816013307525098731049904379806708041754328845766094234026358598725974139186663643804679954552573218968195102610311665509333890148820122509327814759422730102138346938648171094912909924581001058157826066754253727471121353334856894021184127756205581941103282111798352233673989549116852887041217579388722904242657582410108292380327658658137117894936063297238183158629883553458182070116491910439693988935246983013101436369248941276842045261288302069613986634350404527477602596891248546337054219372070281082638630689838268032358999871175532318277963088084175228012618064387056424219667499086452648457538217312679936831534615802710558425084521315882513569072424557920024372417617473250762413374473080913671591556715772706433720234517883048387320695732266567144098143272215664396180402134362684083927625055231024434933549681432724547548706780201711348811958484967837206894727162325594430138524159219317696768232222422622993162036273275224645510885329633489321866672835588172991393837526784725699922320324615040044349696455132783574793965717192368252877696525484378156071031398009736828643113145545490668194822658823741197084968134896322179900974845846043566139315125893375987735833658455127796869698106917884402450742912429258224365239290696606662326415017270167424363154972091131267310011804091483472526202001405912262675491897816311234041414113453418743474326201706771861180977272127275636949286677272929546305587557010796589627932662805454199687580251869642487111680195551438290174643049564620256957993963162499065593924475454701665062236255739749789430457578678769235458733786833133931411513481169830089641773590669374981853477117840652487835959048732447410298085764719757779327564231027318040346734731723509223113223229000642971999362869216603309258911814391778052368478880900409699995938997524659873337418260349650426941947591214201037440981986158365474419853372541747142401571947688038502254891142639433095470218816532008845398786729954972730610835487225601984049829109089218645100358676249830674169156330604412739470128282988373750808953123013921849568984464998759430673837888298342581303414513285669643231240496284282132596898338116777627562333920483097788126057050004521286925931751304324203155140098913585885445315910253100134784358966073058284294818996069590559502075534614406718892949813355800839184594288693416121585664902191917797284020620367101330262788196273955132641571130198243313447810693293098129915598172675446060381316417090389013588396270331213294047103238945653019353922578282034200473455761688413333261410961441670197952687928671038733898713191242263946328650787454201690711155150491073382363353082929121210729805319528052146740164330208077315725227569161918407043930416462385356850933723203216331589986131697883409506992015673100937691419623218967320804278659302883867528424140706029122490050686629595165147106577256014080662272367880061034816208133582986484666030411308116183497962145630562692608693993958122997476396500154707825960548039463108570187375077013883436398125431210698539275416013961975708466731142505695897003180137910096852084957556763978330053777357495348340796200538228817096613010006864018982770299848895988499922830186956555206656546069982594552312751266330439700226065539209231120598567036907457473694059034577154578310244484049650410424346897333586098264084614349178866684993431097777548871442584992169978469148748130751515642650174049650243584575496983936568384165310229360502958384057160390759645677576916177726944958782871964330149355155289495113732215542423373608357741828256510954998617305129070340515484208299026304429920285445560497148970659949327948902017205997433807651027114397958338714180410434342121689003418014252224149865872227146919363444911853081925803481602192665384629795375536690581472407728457559424590784600242023055384397226734050671785033513128447081844025963053856663703119317076363200198697324673933677907331432066913653960763271508041100989825796789974205943393333525074357861533313490175270056603276529887369697543450497245412890108196414472206372536061044247344588568381165323783481320378157508201529715099630696894896177444964640036130219114985377583568585781382056016910009230445756172893384841679014388789631460245069317867257095903425687336901740405061064694858158513754385880602178653630928590711723704590046650765330856117698280768946850024611511529549270723444195001807178196752208970909786605530474160232708439661642428943657465591030302222671348268397969697148832276196746136319024505480990019180112469263979109061709052447005839117844056525703322473471678488768101056865828155196078458930027992598983425943201372620474631718695213047325713383120753114939820484282243472240715835216334976313566672007194253512824734341730705578614607646912422488529447005317698427128273439622913532950561716276157822363854332586088532278282452802635045589112745408644799082430314931914929566805953609317652306811024333469502749750352705727635926518293881554319360273198489485906768838374211058941465494253344111095932749785945139321636945307909912025971943356960766753674057625722443300261861087610014385472102205257480159212018121136459883175600182429879090383172331778668441262679487784013421171428209251297078778765671852957739051827656029699797577419376772994284606829160991817093385854483200034657500953597222718082007351857217796428056837141479924957153320801754683179605064759089622992740762276937039352777501579730611700770497984394079960120180183388344152035720474201183584834936223310636917102594472886361710193000980955445454652184600297301978103066130057290582533448141916157264895978062913899449191666159182980433434199539668755645200523631610317790294750762382521872472456644557531682857858876553716391155691925145708900580721481107915687672024885638525890376783029375448794471823317088684506066056884857437687770955824256624339227087030198370658171552879070022816820234755269404031509417603090069721734041934115316613473303920539607701040058636880285765515540677624058516678015720368913318105220982640729902675222631600250068402804872512883741123249290057616174706503005021699801516852772964217775376072805026145159435862453963693795980516373056344338188248130188313453097595776440142562043603295890750553318752798723457806943500270299987086817881161017119197036694398916229429952869926875728245447358940925469965515760129542394449808727096471620129786174397086271879054868413173257587699320458757319752040261919267690114747077071827013937323005948458898332858466942086617336891970057331253535313628822664348359847985440583153352600563654247083286518694345476283472249831701159895926048053980954534939434342923749024167862407928428615560849325620808173361216531419980411996515621146763275380107436797149799594208181490064532652874452815142709850653133380511315921305024876040320608445269378929825636016516899455118277716626550202419523633717465975508660821056911591915544481052305132764718770038083949156375991833576777058948925418425781636340361243343553483778414025311518814663291899174383077822795048276964205229651418273521517468454288582495007930822855529310649868480652001523851329178520043142154184090287093059506147633933717953696877688021381613307870724410887930960812493535762139562568490365211651524761813332369930148097757160615339423966598496046839054147080042671474387878732911105905665283375792619966871243449729862191121729522326649648400478698806337331678845243570928276570514591685027822095524102612663467752608216636173302867115283635618265024420258283913969569447170172614250631835955358059494656625450628069019884081692395374510739193597958625338036542352126805809216694065923640895089002648649513384675344275550561393864177300207081633096244360099717744754029387377431266631352046251001224451117446153818639720361459877116530404217453444969013800817975643224556923827997207374926031345583275105140881880178768418591680427088970174283992304287360924953252798893141592975034086723420343790964429803892453788190117208315474993883139229316703440302177732442201280323110631419255262456337155487557069050504833073281079192845828155885697439061950679530741838657321583561461403870497849127000276689030347634767946362708133229304031418745614598124230453212472793255209115563785497178184126426933870436298810417986515582236896789107550872077818793738398421182577825670892358393655845908793015775890390392531501543343363769835322028088077691556118318222976098371828378569682371036144187783411718697196531531791545310113397814948521932594417716180590540049706090480109245249574412126342039739467017452473073286260700734865626120259209521496557189717021033990057788079526644497715851981211905496114724142999447696000633628102342700232880945821752848047964566020486435167500702243248832088505550408686331247072454943751742425098538407641030962592037098374253196120544473598969786758504380308182077681686106191525695921903717571020693502723043441192754493426047195391381274840656885306993226769547096093849554117423772351477074081405249767340717062574717700372492621910860398374095193915046079703744937707077355215644198945384542518042189142154458171774794785553664185107291928779940699917596685811350050367783443069915665674977169521967228056942149164919237146359445768196070524241529402866940808627567905557178080876874727138153461988740595055021531417530444806567327252657317870453603368823673499270967128930273489977623031659357946576191569078178754927464913197663570957415485663889838787115154803598301739502716440480414296603777178202982539579245283092369855907269453678371322119083666669435458636709259353123863780401695051522635794220670022562157157402846096415524999566032911402698420220560060974034115188681047391604156917055547871735858734519164180520506880995223517741249211568249554373368198420975838460163696834424824965144626690274362080523619874153667999994043150444168689994060357542071231727166839168098494835859246675579855117449412512323470955604094582730013566482143850845165217643627772531421223372848333201504745017070675775960861609684431978534621662579074620141442646024677512279685928980135429644299311745405649520308438841229010764745541363093252082087647980736217794051678623653668342034942816609378905559460617933311615734236544848775243975976915361983950668395124654057294802931180504379540155721523342018097132147014435195343287893813098681873762984810785141414824676134914750954392704866946836180024770561156167484996308973722942079595222354454454273044654381312277742761619543040878233631401415816698222641017375072769213336588800794102722173891953486575596998016923816485997498624077801763817006388295382755306663250290941892782855707633124232710072479671857952029328563028860104503916551229668798549032071796915065695889350089668768310246808986019255086115812655596685326875558735591392196885739586294665892727456404802367356583298258984137694800677286859316990440993737957608688878076525391300762101573568529162002392365934156823716628614852251845271577147230265559968357995393607686560287929864412007029957223006797845429513947862680256176967876184500568647972468380830437071950874511687066518456174634098028007183181860055731701702548423513760044949342026191937762078237212195099054867080212502192112568333292225779544693903317913013103472631850359687144462946542585638202801782824244485179806430647174844571762408690984246037724259244240945643679670998409631273536101336246602071239995142336266247154014934203944745182240493829257827096743138089031379803589128852641677046577669227216765062181477689456227738192189492407238219820793481152162645696588279169360282445119407123041600700535857104105037465624278949338190128626632318580514482392474518835737543068257176220968247217655555032666331756309630513552758841885869875849474909924168397377782306164274477650862348172165876502680317288270968240963842758270240701558203763701824568053745261325789552828164439984599979500674908232723162289953588667920511129325738198575554322991506152379155867019157526998313461043635236836597146839403852030304814808958234374429260579956782301851552663652677128919760130525627506730219621755221519022311933624676012569432417640814795467143314227940336165354041817920240090599966908963534568635514704537382762783039179278244843282763782256739333235027938567785459807193406932606693783058062282993818762872928972699102811859709056670716468447547556450450626184298889367264765678229792972025807806879076667954269349852929798737754121279767266852320447603343981741793275426451353504427203889259765803578474177552232053092511398678391936427818562252062875512299675966962439619874350456845394319581362762696059770832340311081365772183195992526306829633536248504039976596502491475580023250546898485026181809835101538414364306070875219900459286381083047820325690699416879435985035881426465538587221796556247122777821376682870119035562077949372718281366505472406122107471494938181083641710624428427119124192724420516675233241519536427167407928530201396128494611398479022140495047183806794914134376543074724335333445759767783441376813934925472464297187445156592118261639608164648091255212189216625695671603044785691304130794438250234321410241822289322832887458048225269249934800241706964137156830462842477356468408740316728912497461190813516720209449012125497109503455308559605186256072841426473295893749539138136038725563573587880592087888601455207645168261547758695621119131300848635986544192100809864974106483037860537550269124295797241378767051014571571237573279947055846990323045514136874727436301563866197773605159695884957253355264447508601700515258840885866008004997157284211333960179527749131737802902647253418266212671105617512015404919351670548233460708803141178939512535751154445058951382571339596899061654115998562670745247484773266797285050198170111963869359789786297730521361647555354127533289164771226422747140257975588498645238622534866168992612884820557330771337768926466604951022865065471816007298636038815287681447150464219738160235364894072795262334530118783172529384160393589045176808094384862829622380498373756699961069058992618913722664748895475214385106458817784466019054862459514619797131813708944401171750462246819637185284410959244943127290142845404929709113785829726015750637133488009570853386205238424691255304697201814053040398354144951987607666063725625350441843037428627435301841037239320052731444145928969693416853297263535821490977126149166927065645764383873316944582631165154196879810513278357245462018806195819715998824585736704628176916259051786676853104757246346513952452834874563316976348505649859202739862399884914436835335110573992357002846342291313615532163020585294375117541954948282995348526541253292590615009103950349930591686338616290862310331569027481241375853361768008884664603707206187714351368640400586463108151420741894932193870496088791624370511802211694556733710511010708353215190932515093661064481709355653088934013267561431637933700156115074698312714844305479454056140751906260820269844478722589668643021438935621845756511456504447953216971238669179849267538379455177852716607676573615424989390217805874301872457918234425321731104932822710119051040771267999195333606937773763110166194868237454417018322398957109538373340093972678800910969003924945515647619786499111399242426221743346227289397361115527396816341270960258348815577661523476371408621592091229275072784785948272877853710618425315818951665432607454651459458669402178826225846209009425936797029288433159887621119111549717913904988565664829209005677449384885622955296390256336221122777463015662566801736701150762910590521246699944795780402412093350186396709454913007272937876556969488479526152618823267116702281813655795467752149666952886629924836681259733739646481277267898511770631153935763112819129618831273686690611609766637716435994906094769163546077453447978378650574642796619764073046011214785740615583470105260327701272528871334333393935800417528162354135043146303167741055922639064741690432297972029538379612892337356748333618586344822078874384607835518018540910488585559569169874130924237278873819529160127620931014951087222172149604142732368620774502137863503326266730797036150211349535199799705879904328318452156895673419461069672402704833990903494400109445154167385423073014038871911748062375941127188408318336334147938734856195247741218759731949319006710360965980792249162083472804496424691466039784278166478616448868253860244825013801585389828029822068990733192046694290595171198655099365915399698375931610244753702608058477727068133107997342566364041611644467217079232053579053588988924009382141118079667233092010751525673348385605332531990551733518338915443977977776848532085280337697478176871479340969271343405720803043734396833256945790554540766198509233233743580770275115419244553778291966243817130204424031435206959067509212866822991641176422679748778715101564977897970775465980985097224541146336230061523939893373699760539459130767182221870017406936720204144122160775379186331464582994404213945048197664119286922544548288692485870084908235904610421328525260603469509064527254205785964710196463735007538378469216857643114106711437005214303637518601274767823074062936720780407309119619464974895091349575672933125191547027251727696138748622529149140460396104456192573225724516952375734348029613467175319398520596136692253101078759102117974965996264127650396635028963093030045207071460194725090949101965536374539429131770187795998207245565173603895735223612759701580813348804169789090314778360743999502039800084984110041765557009547379994251549133832199044389492844784612109052714947197405955268431657890662732738641461764416133737281377962354863488081147749026296353900811846554498754206952359963789635689727124350529660483224390129974963351184255238807845668396686442242484506564492405131831698942008853978881622240131674764077914958820819443742203596599644767523569066717256888976074933232764952089149120016564207991764088422212599648923855665501125774782052854572850735028820806367871810073021034558688226099324215773681319644263067655642879400665793164024502599755484916709148345603497226111125223900867615186033581146985647333575268873052934648166786510874279085231914636075306917323460397897525800554781001562939987475074500053413150932922526069832275553467116630211791946029114893349729805714564704623960009713610052314404616962739796309188446056616368153690878395192547834952345668909430373171815549133348603171734612847490647664645654422115288029943410342644299028425894378418534706897674291757370204837614483994014289075387825539184676801990354211498538958600150459513177976624738242365716885167667370326372715284572583504969769000349003991453604049984429235271495839623378336743467795575413388128746966397905549895629375069895930300630248443770521168590850704613135948885622124827267184535809423692524180864089662679274835128551790152037205908086863243895915090668144706001911038992930290662174728298694887914015841770061312432774762662019908004749951195688706196204003057820845952861546126479083821330458637384116422436929558489816284397214861638656651891385669107948563936302549595496302773588160014485720505739018346614403250421694025801961220287313004248126027104996825444978427764618925309240608001794069719011950852436146328323019306399669090877874108481017799218278944321247046419932488592780488900811637548619595276054113712891237588646930767866875830268379149265078044023843475310601766556940931957171021723562178384018196730641645001646394545617370214122639555753527169837642136434698278421144373582665876185414047946101089541325129298670461972173209072342011583836010418891736744103221052299667488278036382054547200171669536227874369345322107054797073215873222408126051434284182825693238664414887709337767319736145942152739753818068236341323156407645831531326330837135004748867997609832820335163106462455564937992114094519810360316340141600618180218397969138207441101618683271555508883753127342092493622409538332881483569726872718897951691711196451136127568585359565218216856549481913057081762779373059107291014618310603189642482838775576458075385921358364191795977854109089109136213328834793035259811834264954199847340596708535499043479052138881182297593353170853208210271647141357556090602673486326763125388022446305426592035888455934879773935005461025625890206057566681521359527859984212630760070879170260455684677272854778618277174756791798429158958725944130145726463578041678746362248438811509522156315930456279141089574551162770229022271611708599830506351528461781101032506318840977824815253890838020250872583741954773470960407187340232018344932339203988062772753294446195739220201227152867033819731888427003044889090320048114945663002362866705226712560569007750393592950300937272661386083308386373540159193058073487705722331390530090263890199671383535746659293971081656788323798826774438575597284852657044885976278242436893568244650493104963978962347491596184504654281033812389450890866592285076282914089466189791089920253308803338446012896087155464045735076126560180117600922538887636381268241929332955112601412572159528602921578847822760296149090932166774152016789909234278739109651923621327537456039419257722965669763031234110703002347666466693361451889771308377032622810473678466586960850749604335764189611105489170375416860177144159500441103049712183605217314824268371295400283733505755549630308949746370926028547284802330415520777850090268145030381731181915753785853922121928995806919324338473211783084592595423049632173942384685230083331312140037275053643849723186161367720467890861505636864883764168072263511894500922580623769832239384065003965193338595278593288324649166007094764213540986874746354387900660888447219885446736416150539536900448856790012011692112924668824971501026543625501372030753248687239498228532162020004773077077593606461351090615299042883559300379406374799866269654021284305159816057249489218968843803032418185518901690127423123359499936271406601696619884391672143986706539499317867899773797988372020583233788329759673219646148277874409185839369464254187859358333156569666596491773931679789343405706352085517790123891856214386533804612835237129193761164525457055024845207369642126442949957118027152053339361568052324366599164748968902768265725380163182114624263455008703042056261666262580905049285613224801015623318030214887897458197227692997024926622902747387460557558736868475806645596623046976505012863527006983786800333899887373018286829598902851176561314272437316590217267514079613854733562290163638665810926134278785253637263941875672408640505441151134604983263948622305099491281937192405406191562963295055597664141926113460397000239220726142592239233094887554345416482224637584013639302204058232119435606494429660873927012753376978336928359580686824471629608696436381424531523901619183378930281992231084526562067313435704867016125563795606923308353847893109538891454061027838443215048742663422917389232971404755862049107170551746104620548541722361308967324776615632379594916194573055347162240464011662415762894117041773540743026936544041942196300063931332270369202908419133701282808297778505556489342333485222440346381062417234780812809421259806487245870608725604537781281612057618264480944505952113082413174234384232564332282464542943587680347115323498656986565151820850668140914106284518093330527579685275900054065100361940916176058054956215683718219055659616011975612724260275236605874641418128002577994808776591226703764656865250029376175526842672254960709624328364729274285617317877667554623277341296179796080479147451704329600762030263071059434958396235983633310350529010095046431948234298608305124088856426867203297695506765592550642800865320437353728231821327263313671803969618522367193803587575318577416407500840772209459402039287881934867785839370980305934389849349806071615870834125443598643674910060539086243751202332052970927200645291288744293801019324390041965275088898077283175862291145732319567876441777086842877362670617075379404651105296673695866536674992057201131300773452380212455184723410941944575172668093116441255735854695361487210265219888479095975156229515079127787495249674375071103241856157300984337180178573811953470215928188781765772129699820272768235521836792867068824430907466526307776401028283583604820410640743056878256452929159408666389271907556560875084267696214078614481712924691560428395608397492147204255945838259917996898805943392068495203022753108916389701097469077240096429532986985037990195581686917208055474177354008733713612708475405745902952885405551464276871188716030745426400773646874475804859645814128650609165624920122918802225419943342850845912001185754660481216147634372691847507864310512900128221229214734832550582002182173886422319111623011889378698806335778903899714828168308039617228039524062157875203316057524642969267137729985944841330601442666074059530065490021960861283656980546179828747036251424834056012353995243780366880979665630407817223574233676903033237973195967928443945766176605657099001836682317859537040716050806379151119271625380537040174539415713349559912775378592658620482429374992944038860810443419442654392361895407221080334219473796994435718169945071422669024969670762493165058716211244548938666076674245668503343327868311332471972397440638002336269913820005217095813300928649498869374748597330317723260344178272576731835582212622707365923567631534735753251313824469248907080021285046533297880580563942645389232976384281439896573431655076349828472953604650490421092250258185163986942992963609951498028475578359052062432258627159782976412567117048578925351777121851213168971727926485905243779166367659791633369214441347422222498520411273612085906355792345751308046793475040068236382028300229431471086560856531184517591218734334889436053825157849569841169941417135530529367903034468958769834738943640652457175784084759332951498013320259675487079769117478120079518585517429811943076232910421743844651577144365129405331762842191111359704886015997118521132168137950935889171156749082687793395797987578354289355142780334386976014954943385048000474937473955791400530430981965401316826393784744031689665500444775643980088127690401069992884931191740444125770001271002694453601153457001402335768372135214481753702244771792513151509566393025617803866271303780479221652695118724564047868723295663976331901852749929681037187743142914452592508658280705883161563552854791771968544476662091421039753829725388154740645033838284575055462597828186011567868794320528608430898415906984205522954021541785835332773000750377355774923383080336028474328536363393294993386317731783031367443679021006316677615497109508872207067901804878126658586328737473024404777998180320056202553756466907829528892845542217342114021803669288056356379085914244818451112709800494860054952171343479911077358455402783299381235615709521109856755811892641976189732022829337384734905247605566672076316293192161709372333017277334572194649481801798779712244690953326366558530708211800593828151533389322489917970822019396819783944142040945655110655293666748129442101076595636291545553162637764846020150794483177346170852793392890521820702982691931114556649742930284236001415831663003447927818361583225572520291081981317661939184769739678258298196718374513570875112376317671089645776150999144982459112654208006841296674858907253273413241065510435500209922027775510218120949630711533351807801169968602098834241159724541575256290705982028986830172629322554143285639285725505494861827109205665280157153876554594776650898800248711221485351085974835117768006428986632665666143222997125306758993327298444234216633187325102800726374843327317695220864416416328308175750744916825278433460372501503241394297635675101548482336467305344481618637576454898181041451707399412700858934669025495700759865626330428336130681802489577131807561559143122993986912388850284450685654892796077125730492942464452663689495612618518862710529897620962077367802886241678628818895818323288767601157657830873828376662604239683083206533226413886407792619277414874361652716030762371380660979777179033133368723478349100206223509411489529713331270623047696770520404719735450122825384819209665698440338825558508298556045673411702815834120399541839092489006264331179064808843105254493079030352935032376469233283507073784307632366264065561478141366289963108784164318918723419485937173003686125272163127963565523133289976456969183169603088611938483280387879294803068408127088359393312980501990122288849515308548430062300875407741241989293275083363742301015774105800603672107359950703715627423476852222231978863023612745165172874450146958131735140905435079692722660438456882885976405586124270521634441867542060892307191113258759548353617602908889637446861453342386651696778220290588560966393814658720192158270548416542583613042351526269464845715492644452764701795987532027966096522357909947597900457952401112846303613763042073315859354450558407571419603495994814677774794848878721707981068168443245587650429356987767799583340526086963443499355416002913341653875195039850166130513301619931601371274843013123058607391701151784584943113644882366154605236394278759320734404264007178144142255035069356727324855690433372874351997841429845484822101895794473879106178533664185846819150123277178441733115541876169667674190740415138867900929939337275929994377424103757115737013509614043379955475367534504026392293350665914094013289204841086998132232923639047326198289516009342140485527579545054927558758392084154668268540464892946437286962792819789178128525181325281006327800673684219736068933055534058583276853490234247706410253674169713864264288062683307163219684148482785926373765575559428935834361224943829881596415964701943532947563461008440579637894741436280927585039379389647474634972470916277648602362572600683653321988309805309951862752586003724567717136739010596260688813897343861456644803352102915971294022246177188519946464802192190263103750266781953726008469196090989719152085717052289530496163249899176417900078317995932027472748647095080033879133755965172567119179960816926122687175279390634434194842691790459445853207057386793355255490965146705340046794549640700768815440093712069950837913657327462616048636321842893273689562610434655752728163279209442161379903670448007701669842498662030888678563244712177448200241994427088912608517490477158526696027265136767769806964047765211470847957116949077004181386671956351936568071528519760592317525519110577240958492370968467442586914312529720998711519182827176715191213275962075316192052660112831934180092024172472099644841141099200562821974184917799847163646694966612543415442848342356568558827127543188103903012394354348419479649109850055888442520498230134305600582644867923614876162857407185866989533483570075888992856468065056756709304580415041296779359894192924716601377425619842101024708403924444194980316750662134201630684160691177902180769700465954444551512153828080660663779031317988847368842758149455561677638426190619168775385923997563639703062106220459297571587332309216458994896182638468657285916290397366776276315575209632949059643708266490531713808890584395786768276057975154486485303045008965275126989231239998216633073868534499665304604536136291553045725847745544799929511824751398278865413740931971805195120068536136469730966614033300071780029510183489017319228433984273343799830909740291423614948649320662779779723749777572493191054110075047369970059801885899936594607036179330773044642774981217488632218598496949155444084301341403842037692184898076621235938406767409472581746865669438476377732414558157597026088861673832287415233523318521057186132339633358769919129789871649802226613804005293772665642744846023103266920792226173856431592431154657299362285379622097990683239981425208245628677840461082525302138791826084793927250321194764094839935967433589131436189725064222976903363048547088092124204180275044361823730338418504293631983743508548503949892216956321265651786766657239445248052250542781330421518360052506343179272473480570515415201710770680465146594749754005531575642164618716288286838218281579170128709344494800862463455914647213258688652444628115185259813665640611109744807719926194612394121460371422254971683359788908798766907554846138566970850965341515659408303035949409721251497012787917340080640852958490611999204824440592780015814997095136497339208502944601336341268022585278095007186331055240324422240098785968644459340900526815007232764967247561701198548039742353866909333644860876223863725856947641863648250590033347063232651654680647030190353369426772956808627847006729864950739259206255013513422622449082464303453940527878404838247576391060732249296141052803206298455421154155004505759718778197996677806782042272263408758504494672357065613245364140846146995094821096497538068628382758919303383033541251612351025740402187163880732977758523568077964353316276218926884428779618357494244164226604332454735706375889438583852386940198958532186127279221509968178398922690911683005210830577204593051151513638787684566920945760866457561419889333119916363791573700153833237224222812638392806701703311133755548824882676315536297186571259926801456565801932111951859542349587533083838819278090096868052449685836422311005131845185976499961706103019609589734880142281827354765238872402421012104836633983343290890453147704373559230312822657099439905395701358881076325301504958271973369536566766544109682180024486906982511013468331652093467962985590626318976175880771626962301818968266788342759402602336889575563937886617397361915581150212676123513547543789550526211902053794976024212754830765283087344421679849832241391695016062565446809065412009238466391634686093746989918754889271680995960562678690199899319919750684053200767089142151392883776889956920327253173785794210845967472217329551305794542058781254615960096192918264721537951358052398686069169635553726230842348030002909598331552512606597860289041816190355611533052687135537167933655428762718905633570811560121953946149078808722197641991265100551134685980885914177737829620761186485844802667914707048115693557481619885045876690136298588204732572868727149454288433825707016057081190593009164045077307939251787157927361428634855659303182620414731403944778023708714975368601172354266044384867586892910915117400280290774327722581366743840140556629145568623924047839982261124242276696208449326844455112064800717871874301918640760921117603446880933171840961385981064293260640696668958697907291560143841871103082408848874366962548971731239589612556146851798944315141807778614390430542298733216214665586342352880380545172942143115138420401617285280444924958121784319590150660203794051679181720553530912931474761233280588193251094208488412067037319659968372646402763236854457864950282131791897899897543736760377571154675172389791624852229405891199395920178284619420501287275129260995941372135399114633326709385028237075787379638778622043760924801030814224444835277606342850994700039920506723764134383937718997898999792366611649371713025953230894291744023664175232180967016103373334205317553682413573003152729618843001455168400362964851245362350434425831879211476703357331061241137206825003265090466067808232914417550232624898337827332984271251485585653628290357534826537141085402769690000256272898606903664455795895782514933121802734189494299560329127461737296191599291863876128282679750504393145771186034288804111406045367364479645107289139014520532367615985671566520679876685284999550081607238310675873335155728931311115108816451262478195970979712861587019969673484357740424370159623261588194847408598319092289598464519790159149892549784085516911548276207436679607457122026590165285985464442302530315298165235200707660388494970516327703972861691174396872288933998359188910231461094246485555988673134891411565334602161850109668402034999740081874135040104762841470469931357423294166985479423758390582584199395323242856676885295754051519258690181785727978038401702107314944276807264282066066525582225230757387821786711460773210071011861723939655866716593291207290350586369481523892360935314250138800082242210678913540949291221688473908608324594067487972092722322602562824566374024261656676094084382306528167344251001514880229136987170069067221158347244398087789088204896251030474579707639665891972080385168080068766533291949232051458497698659587361129457195559132553928616471184488466255317844356082494516832262801822880855906504369780072333066172380093559885950105578598815861448942123869551075375692584687646421230341798074160664032511214478203406687822904032832643955494504441839932834727490046011088522269264319917643046653387286993296354139138010925098384440721975020615156440533941717004337351603622215397718331145245780639122920181787274636450349152388015049161380045318785024057461092743820160315407371057332661942636647872748980861717191903308032001190786668145683742083910461655460392529803838626819319401306728429228222921109682577410655046205635112955783820005378863197031621949915370556717613507210960125806801414836364555125864010983261855689153168548953023713180139591325456610963663147389333631958127839697086173268115077709115608730389645807008178507657451638846028678505510583522325492931394185671761530371565580181336649769174081442736040801601270790575410480022020546028816564601659078619145757139097511792027272985927317236647677653459240380244938584850894330010879697075552006941971971521065611824322234194286686697126771668489279812987314084359875072359415403424049555517896568233285923758340978122577612303013803554116735211998614033299758512627771748811443166476909851142859564612469856528224630267526790910359602417193743413361921658180425267378337409740832430843399266578623554452092912878655050677131488925617093122393879019642535023040223712100113814463722243850707618090688559753413281634943531660702545445937608026623878276294580100788496782763883936023894941478923001616699090148574616181146013062819156949141514287459701283609584250850418442579040237358830511549670568415243804416776827866945583750168475775516722763198195344341894098281515038903684893454788698352595582833320760028218099851678376811995245838531717281388727101877420067685220555220543687678584071324361118922886522855906936276310616117367997876156276437792877049056124044986665565158684700364577823227944405457259250596307913446608430005484879535749449999676525097190609862452517218944068071324797743802290525581753801595427730564342048364434312253204089050245615668164965642164332891675205182172670866847798880002812297885426536400691439973463019445976846695125698232281533318754116458964121892831313945226817624262612051365650425567159385356310622527458640532994428968813072753126826813994444340326032313778518917525583146297333556405170688669952570793811139761780486543890176094822819798807658910605477555418281134376172156067939952345698534153613851647540842957956563471493793110713644937831300748893605527052530565494804408109743628585727076681394525403196159942263452004991048806588329605090645563483662316672317379177072078555726397646184274323633093977687456434279705727724071406533039191826352573516559075402872742400048742599742674801259209492551510068143853090966480130331928549693767524557241732332209006374973020384462895153213036258350119515219486598711608268558837817112524668041310969280447866905566891091110923666282818812401668011372184256734790259693186218541956297063265666941254905807360558016032494758074603769708010733230361208025749077668751207339625150283328364922739047264272695893609472555604572922673478368840993711059176383430332024447514633773821000305393340818105703133375399974148937382820328106248670727004863646873811540126315416634684505070641592523017840127076857601404968209893283771843839596474056502071054731025193372333115419199881852734088967872603905241579143573561942820039772561451356856692760261542854737434720954864350745891869279085217700746246333357598381893192174960875173549087111012599649664567194261863330349409311810270370735672247313867986255711731710058603357913517809548204048971110446623949399977445300448752396984016510750056341392932931071472172134208856794908605359076185126257109037387245933057417699656387822887864776651848246665440271051544905109041651356368071081808375225392680931426009485222190641523238013016695894014467164793885405349452044344650077920783667973734955738860379626573501880638160041260528997174902700661692022986453633168274416405310586610755638339626973234554251054277103190716194404770980616915867936554268726896958336937467802929120144222520772267155090618518894893972345937272856142155548719673334844705841805822320454137380656827514540473502044823394227653929041891141050875068842211288374570777640224172224098435897550576832249933640554841847291992270014392282269641552112127342968887540625353601348098980197748123745675427767323323613617638799279619772751069111963425037477084993841020683241367097320662170118232255147778957438074420315408131161523263198379057772392077468561230302892709053264548207903687182410569880642807803194553482364761063897476647525357759205413096886831929579339362897656384478157078980359621583134248180082867787606027615904939804403444772584167060274608928189474180834894232927418590814157946316907958368777106691129552898654523511666582937066198805836866557048739293511149343001245049150332971624048521090076631266728571300535121559773391071933558505089163259246884185288102659185122384891025704706933336914818142782632693032871035314276776237197510052436980413084855924717219540109306336204275118018581640218209368042257656290208279788176244795600757627262686700203018444740548812054276186419723011078543325706475643018560261230492602296832522063034918147734383871247636163660978223365822795202426629208138898000834486625131879692332076649891879991898439977077027873247714893026683952142898902166277811180051110645328028705517009392761179429948663768710085872017714033168737215844564142618858873230714753224542801262744096254804164727088215666307316198244215392703495479557966555324832990637021420559387230841546139036913900087386220395988965272517853324791271983910191384641487659996138736537560741016425244095100247063269528582193385487993088866978585982535179030172778711941195824028794163402183393498935776999731876496324106909826464025708804057577120087643487082457754214737509998385624340445509965268639853342063956873624860947218225993485995224880269083297891430598174388697102702226195049491261837778179521428603110643214761657003657718796467243288900144730340985980880888926465913862168995042226313853444462977172942173435334474174496480784482939302824867744318349229910772741667894243048504242174978621109219980284645004810408102150737289027596140550793371126570242707040216146078514477256179257688207847628785134487574402610166533850845631168323447410321612844285524762724162029131797411257257590253318756025577161301864930002770134037441445322368984961331519515284928518481408885733623745809300181879125300864950595573448610145588477885106100192352880433804157766402750058607035435489919424777310863071826987780474254391321071549876255591494525248098630396440206457672334525343950571260492638170666649681724028151759419124968355347950110995020296749402938647991282196636652103395352261558506233862012845855918481241631511481858585686111215461486905951921879679722819589380195307527796127665848756846486883983558474989373363772902857157224666469531101898820512718520295087807067657684977780162253125895359945045115790029833896550566697758817044589750698047974945124204339909321028626443842668013226622442189755853580427186547225180041437345812305121502886039506185309653600087015384057561460092598174798047759776552697948061743089546771921474514075667554839498915955665116609793845913528745690127855472565006795747375739812495997745144691976219370773345491057560814619858163021960740079545607380013942698052922613361824873467152825731965735229053937539619587823178904054819105003644592597389504658304216598653965104775286656372433257114549589246046959020797175843773513630754461197165841452369547760870410343154222926938385206218268742757002873662832838132816221738409784403891628471891775448339906029480865932957490073655411221773851345580851064628196374208491155857573365037921491422462030674409031497153296098136361715200921187215058427491134975363770105328537117414187147880781899546991000280006368588474280947446123884407520819652338213227703472439429206202992091023192502164030806673017446694396506930493835817236008255817711062475952417629528838830895438516661773542538070210356172714924375010584162456148688767379731168940087921334289074336142707134686715459437662440531699660378506607478009762109268474389084025479700993607042832803278971725283375826520607079158870245351378650950308790880631388762163384065207808791507943934660832120057833669113723848569785329597073493464501703693359608154065511391581733026185926685000148266849564887395476350108896019235694227884105469693741815393156401855599508886721314441837653420853208856564009508454309593675921230484099123963022037038325796529388258465837544475641405954368167978617176015002309703787075275561236317353718517590092503041805122115839503026176025190132253273861272871526392825199072311526172343128707240331713986445790229424404533928326154562936948555016003084487621678004252355118239849275022286250794470654294474921670846822845511119934794628391779545107744704628739286163258129369325480104571718945253854547901482796305362395787170338813092950406954795090582436609483425350369296313870101640464753211050020404535227451994656409341748922413581450611711411816495316382074265474247920940690826116906050826809349518210474799022215022740406950781086745947580214561734380159864546526061729402198165427186223259732966882648107564396170510650078638232474194782822399484415214406675770943803889969956830015723219143475187268419258396873951107855921740825736386904670372308028498248846439651357327474095466237584905493672311692428448036802057634128420724541180721636318656249924273936372458695979817608560707228658289420328740178130643738511775688116312529316230817267221850821931158086405391284044227945448041286454105691181858646383305309279380472220765435283776326591520743194600404794302337684864958092830585962153719802695210634771540200917956112152545956840966388943847873112090831140800289500671984590703883319498769569821272691539797635806075342884429368564967856181065807008903909414239413350709828339557780220078869294503613837158218389996977554840249171570465853425279675114700410145912485411337791739921410116863579212032292297007991065118040449546676283130963316291907727941382419721636055112652129981952673125758844016067887150501423605765466407340505700638684533994897596491405969679312663610055367619980445804428030807335533624973716665421040394360211207754324410687931575183951082058697107293395619489123838385946593106714925866902960081750445386585703466155100078151838250411192714314297440043209545408305426006219975102595171059446614371849182529237473371779067465313180347483396949002578708488817632139490003944467686234950909082558896909531419796376321928989614690411212575978576028317195436519991232359470841043115885511188461483929619076142398592738868323431357469608648393868212343779648939822278346030947948733963663166722563383903364941719677346854090376772062882357471526715885597580629373425088452688860234598050636718448053843442798861403380666881152949070926185813009586967459936886979157742503785985488482477888387742073287388403510821626686770307772493377705843527809405956301305953203818063892319763291297775014454447586763926895103468579145665067559539276633790996885132498767589907946152395344156267006864584612394886046879093808994606395557307418919022554111222119214045842061268744291340139712944232712338338207687729918663238929257655690560069064493063932680361424426281941617587344034697933134515109789416192373885254111149260921832559288528728353115547531222846371771821837246796484158038404048311503724411067051330442358369532138716464405961236314254449020402565547565299361102027609756218490199517278124488345542262906424236516776192542639563197315508091347701003442546792507644856292234903365423764541622693541462143920811525464162677204562724027241817717175937932827289243541468818708824615696782277280617320794030676085501968947726116631617431640700932079481165556894711090496467889864671715032486889815080173560529080834962706611192103410829948436505794958657625980784944495111511806301457501557230074294715940568036739786412188831945747765534598625341295292805569105235360504731072541976096944289437973941180807021334582019181223910437904642269508968270271972520508366466372531225942145320567027860512345882714377166535863189590828085861082040724915050656862176205587153137344239432241733689838102898821716604279955234512749824549625043264839051678961170980187709166873783193325171485946740801315401590401681122075687844760351927784743586883889109103628908241229417725658081860727728288298315452647068666900839948756751506734838769874781740067002896639256390598183844206557717091112195291121041482949221488469525127688408971791364943697081077581990841039921290908277761915530403826326786447416960783479035107746395677144772720468510644662521623335515342534814315483310825757144975762009909039391754504395480324973988909406967981916826575410546709397460855791836701452083256382922567077872226725402934225380552009191298206151011090685024402000107101630978887133921179678203155527440559365325701793430275617004092048282603587060949989923797991807875562547998345403538980896410490936239148269072437983126604782355209450348207865214186239027018989566143818054828728079801734221894663208057482706484070261683749558482751409225037631388201054537984770106149156511247906770648092389307797458112050778653549491191493893552624878867105110288264462485286809381961597418980377320819221566482700291210733872035769740339709249821038752133473243319295799942201914162344097981389075554287783167306645194776478870977482312870643142553233873291531090622401537177467027567720894976649453247481680132758163622298420958062060270507080588551283823448167275737975632855553023780966828305624954134411040633534366876833050254577131745661823402577749061994716123129122956223133891959679504170858511380608284586255229953875258686523343485944477854133324652920391010226511849517121177546440650540513535313564182409675351825772523539423654097687146607194113800510167826593586522666426685045118901502967840814240981592965516000814308323618602646141986978119599768006090345711496502972767740634007902818066868997994680982986341553157762533277040845691193535108823659302622783957805695565842447141153317662090514627291531490369401158994686271109121999343691280753532339899878998442458001207767137488707640155165480129681538897911238589459911575771959444914932165517789607947289096332556890585749588888961191796363170744441304843547465562072862952973111598573971364602232855002588313790565049041302700472949928584806400340538275440531751417313229752012419530067346642333117864985093870959299454757782661228490340708139180417133662834913749091911956141444230071673795444284935933011625807437433540822710429006678093894625187726157507531067451771681370096517883275092120029461918701879391235876240488619203863303265512695360611534566539236983431721349082844030258530416905927024449444224900634422202910228068406252130662545738734199905858919890721324928409356648341208575165003075375636212244273044123141038442578213409693109314044307845839584573603964397031149065008629140381606527370217605814613570493976095798397214378187824535196675116240806311862301304814921114244918922318748250384798367426364849610223432562302460471681919130898647317745936443662025454180846648798335922498405793341981919657250672695540807893603644212729087514761994582047076235330201397922498316672322541782917658019824120168321789053217137855566128868549753063203096586238136603813970969235590092588315274401463295388274224676391842022203584151890789156630191704397939514390838480805462609188883525473169266143094991572840770354818507803605956276557474874696969364960451663523875285775570417267166226023827312668987197102074394105629801145833611857502002218683755652806038596626827768793824150391108404937955103685938521170430945435957158658134437392201541657956262148702109768468878587737090668720216660434753792239205854801176931104740148143702759927542821054378483477786189075343013524188008263830849556939432945930400382213680559811429813645257485945908066038256755240017301241175657205012597965219276865440658222671629596939145975322315527469167929042357954882833043406586298092848675272784964367146896272617209193433895769315034961436891110677159175394219277671350071266082449600215832994129638701067478665637883574446515560312208392676469296283126773592372594201822922798664169336696041058261872052823650884815525315000576988202732573013509906002995941546835417535232955675350942837117719763900347162560381579851263457324925071239984395124075997095759665811444896422329346959750429026839647117169646150930240902987608169641390083392546968154586491585024448556125373356093622384187713163618687604225332155740161305397007627683704753669969497273341753927048731279630956863904790462754456908682544594653991636680556884370441971842772767111438507732995579465269733546124358140361784719095330981515434046012061993794401577700305053145581357056260842289636701525270200224399284943542923192830670976052734982077819786895913429385341973204080411082226422491545468149077199334235338564892740450435346733924189083939091473096310199661447778334304600373113590842772905977573220627512590973258993844909783119664367766088380372554401826147225869573558875481986915285698039798853133719722365981915001147189110510154418535552980263115371131466006875519767294303680931891379082288067198629329562114328227546158201205617441045806448320277443442918757496594633634593710014016650057662154433419745294052307662706173360336420642836640736346364246690421935714042019444906671985589294756359837654435654796905400692275505160388231884288477902837540372748211446667791388730319116877341634197862154227105747563994191447809121057481098223446427053955761874379277922367275707482324014537814501453421927982884744084432038939508845481232396577644887983895170585138619280502372827504579730804057359806870427967004406289831128559371102925772330873915662386196688550132655994782353874422320321558887491179889802537267512826438943109161425897214413416406042626439843305539245899747883192309507768117127826552800008441819998724632571164873536413777022916136344981603466331865891443566676973303379244885517705754551081581369525244480234984144249702483955279115637930389647152479189714005730530893580841855369994436530765221288218642425090801140297546666685430058424284142178598786032243132317381123695038816445914573568927817858915567759666305041534102726445093111093402889735040424881975488087751546831782754916695496221577847431215448526454641355835526275694463056995053001990745998922125087266286289340323806966274101940447342252429916339253317433750151848532370451484999034593255348624584320774532251915095301785128592388598887444690049739458774216702201625058504098487680331861990127467556809440957944746137420314315866042632660332677036422489857083034056083692285867153185091811092593593394590937610884718465476013583349497775605166645148121503600847458896412475790941459995291493787332325686905831080658683014175488536821416470535165143626650427400598476173158656160624191018273834016399096957746914642420864842134413008606116234236378434994465197687343690566036459338208142179466448411129218839003484805484832134703678621529151246801125386592610946443694400106284963633258410911677264801651998561512731748032872546567926440493818869316900864393057602054785644617634667014710621673769456846565671947794810120005797935366233744573581931582163395571529486191662792340974865952552734751061460371277558971312924643761214307566020057353958031689522430920631898272449077215156422271987615034132003596706236402934803992187918286311649705872530534379015681799185804678977404427707265149626112950914422550896869587747521142746413973927987769334552732870449459885931736994728544516086223160928817584706138290571067622598466666444094368519001031883388932823750289345844491645930730796883388211114990072798495506302772927025399733537449413757591562786314711535016161907276684879466481477063103460999783350916778107651785811202288546385222366401113017869055604480813398425232732347579677253506114328570592793153517160975416889656599365303001047463181818440188193255170231069775424941273434921785790934089101067592236052186499880668352936023376082028114953863175933462162241904777415792559175725229481196771394732709014155208840587278462017050717542915317008824516226953793485803228736461655696968750008154741930871105038731784353047813538488412185461165794688355640639414592307523518754396112499264734470669707354586063111763049434448283906625718622829283401630751098005072639652192501830115397466892079819572919604358353428326757660579622700421500433241783017230732534802627269175620834756378679779208241005717446139175449838048271494503255694560566143447772414597148569798579268680072195418446886778158087342130578375764888362424455729638213086715917040422699874226465944405819847160600705967842645822938309550051319405033816616419496242869641456835117829347603366554981368752508407364834499420347110721981392625519521358795885838599993233367677137285752099415684015816434144952610916665883039557109075132631418417170822669135843187622152438559143354774721092879115254750898380447917237306434036975955133614811778968664543608775158595621649260106855670566754345130748997940712445481627884424326254194846120299516776143219161913493003845927716598890489189944704600375664085856094384069847971265612155336433663459463064947556497689097679906356486731311017373192378597714774459248408374380645301694548076360171007747489018577599215970029678957070646379330847344475618029201553957690848494333461261533683280888571990063829454595725416182350335210140981307999754212720969519811837518665343144521701868299591755840254193259668465448263045612365497650436466092350983356648094298611535327319794413015316341952697467177954078179693391274566614336292921574923161791939727732094218541908405181471910231278567117001568540179060092075105060166170236037244708174940974923234966753664973131760313443207007936103413720690135970204008958706896638007437425485784930060821613999537732169584147956357517332320712863064310412305191087560731943104303643658735960594799103929547318924015529511006675100864784665685082007724258420191957453497823286363932526680653172274165970065135559124526156934954005778499450032141049360816160924753631018897594017733097679351661622778266656774648121297980114750725494121056357012380117461604762836843217338765097876184005776574682574918653782012101755391110964906018069337482179770864308415926494040445758234997180059703872423658981480150656083220686665372903233944215002503838545516442131677432497587192797862169671977793871066399496264600110124917870560820687262535493063368733065567186688571878880173826885507010995720243255530329594857158434548984692164470108136416506898032561413233005732900965966638788534050987701218404882668737705243579670327318094491405803773922654998388374119116702291279926928359813573954109999436487113940556209205590254897187786625213448289234495400703115228323930415203019534986811580881157574340124366073011957705102058283291808829492623093154332535753416012041717747487542068605941777223451255200244710937570382588538522036684974319868355058454191256980092546553349781115385362754991334205979203322298495573151515542325350308432608851677372289966134989451517912026369308002478023553198929625141376295403870963278316951610427319565447375997703163332446097720650902721759033481074749594505861065183441506863572734933926965884748340514204113336453476429400941092342735423570896286406283829382202537869465290355895470656060646671679701716045133195478664936583084727051170500027348594837384444400251907889352486201416367668292229675463236003597208070580802620155752894689048683601128023589947299362347490881301887832301734969269609050644819791685582355197735955822344367523582668570098855989765385786215320130802180777420857789111148076491492647334349010299593344140433342189287002673712163246977426882589358928738858136162893628517061176165869364643061047280757943961518763949436520824512755045626374882334458205716329979208880902326621356372188835891082925968900938003173061209141279631855751149650961063089389213954463699099500624369490136664614653230009964434706026368123736564522423518770772075352270249135129220246728824460448544004740169250910798451508315474249686827252132713015254433743410334628154123552058914185251636771206960484484858038834963085200037911693017353327274978198437620960285970871457690366368406466727445166540375541761519257281268107973032291198797970546058335099192588484060668526232441097556897826424968365531235762449968492198450406861797539411835203666755210270787918615125524459375370329059716669693350938373374494576997710784888996437294893979289639463915220950660753383317638790961149691575430717010374750062747928709257493001019536719633961632997843051062304689658503801343529912070991062129606004363842351565900150527815327023268762767618641230600568245023821297660800803377210752777131655370080492062935285940469054244298301118339950699872487525179485441268314699722454549252580727582639087082790955107214197247800695449787542323335575958096902482764330297254788647179206884637301985894096526633439454250945401363122216029684840365081111359941304466099310307328690384927992961564121346602190861098019964430232362028755446423508793815194204077599976085308914531202470001110811651931159630025399767979770970492073308051723308839602846405759327569651584632534267937109662315787729683903706357679498084686045690883516234456585985511447728596996555565312449355434825897132457034699157991077051010477724085068865638614323368736342264855563930142025841631073782810031559924501602396921342694688070274040259603994109477716167375691810056997084734170100241424400815535494281496294771300755160629608517294271150692128065844294772482458344267867453158108010861643373278027157352098149469036443298649588369131013863808776731934675890355259869035011427790361427200160988666278870982418781860221095762615374453815938406790112563569407087169841828271652931874308660021714552760414828973477623166247181903047109019065257835467130238276209807984383596882288660533871426596695840503803290304204575218675602818319464523591247455275309125857782496279507997009112943333513061681428692938909696154243455148204413829858803097784687819601105854443454267668372825673370974170271412218257908272210093480789662113550988789163745898613436796177684501250453217438547148556699769957850257846051740416475267636930730523356160021095563788326608272205689332643416565193291708576608436612047633967284104230827775273579448558207327469640588157447542732692686499525305171802348640185778150936543442322288083856044464240492248578781511490085331957074909081455476541785101995079989581990228203303769838715894494761022103900789430828675452686732443017928956767428787138205680286345183880020889602992743486670846775850685851123695410252282393927435711814720397660151885864293051967526764890574521731680897039682483021152083629570131439108821627606885364504175147792554238875278752402720580322803975465359558920832316246771828401795677979525101210699148455518958812567718800012545245751159544830003392453097045762694091916964504648464886694700816679215088366180305901856767964100592685087483672765715324317031881843047794517417068565241672930486839258503065002977451916877496173268318275801918909286365492756014386744945483606430759001439013599727362180573248766830094183210961896282760408839756959067632346471513478105283542383858932157621097041588065419193363347937198931923881700667600350020291343998985000867704432198973188281798326405221288498797186290597996854235809747985119024000228763639331112347242033231773727217514724361836775237595648109357648565347509273759548988552909934525070655230847821628178666668647694014762753864979261491332861895219567167137516331383800877217565314731776371133303760900326909387810692413836943074582223381525567357637636462875263030992896175877199651275538123272493612697029944456441201717671505466332976829551952186004595123915570015368068855333358652777741202935835939788985967197799043930941208470977266511269809712943629084406003540964122654299930640198743714052093440958846268771036165641244255950645989710574793213792622065997911360988079769265570098096505147310867447365322208586437113600531627735840770597101423636049469159468149052320560882426796821376418242486804134057392635587968434822259592274938763091976599824558708753821564920583942122148595248296498070711176178860297221307923133618442595677883226773604794978592173800322794857562130606683675499828722113058623033006054150573022485778820359850426582433609610716896309343924898943429836320706260417273930958019652748302374213464746961389301220721415851331542384663295423728343015120869346581478416903528375929974705823150720622495719245451083607980566413593651303934720727780397693702061807693595348792355365141653572625000429449489429321001993413244680488072284091804439311855293958317703165697556189833897380231066634426088819438930573329500187140117410809781372092812683204872802191209913908746317098493972405181696283076934420235985556518799921291815368125252055269741327948053825787511318424733874800643296540682137772541603183207300323110541815549124842077894007348383532195232950529454508039407806466555710221539772856002358023977033955796992873884540639229193320558411901315116451211098858277034265332593488278812324122084617153006235661545016792857753050066678798729116542906260497012481781385354748659682319261797871981376848517437873373552487929300622919815006154984980308128087899257864018905261697605700414895625352150740757263885940800985250444609693518794301565527643638465083281900042260498785758193055476015102665758598129283872731876363009762074424798285026033112150259409062864207316004582323628635598564706205290392226582441883326976707284008339114344535570447957063041010193609833208497380876000423531304278654928854931368909978837584120415641271669874154851813664127236078838649375870507988505903726736728970841344161124897110541955966941160744113491562339998901993679839571311800619991113102550414628616138296040932680530721418294488294153214582673138848259065495625576234087563865711088464662115993355231706662157316475407525313450383681393023824856219577517514316591856742840427532734540386863159915275135819323680074065931839707096194203467872702237508634958609400924348777338385275321626358053146638906217947260852429811407137668053060272415851470242595795301878220932844323581563892048451645945513073492668135113987097803387781518694797366137882141402515762750812220437533873362426283984843432259588323485589323771381527825295697622024691729047110904097972921766508118135165817694120285574503104928793114771588529953479512283272245329167193829440667710631042731738136440061430284303288999985959514039849294138741790365520015589151058755791290539368726001225677625757952352224350364138838766471345927849514165228820992856141989050349822890997701423864786531463656415355156511845357717292368883329406709957675757341312835311647586283583299497496257266239744013584039949590824348714618561709820837876929628970591577958659676517522928502253807089169237817523444007035932920294772707913962260390800735105663014480380212265012477524742626138689313992416061406474935507015576867269802834176281174381828073486497643698511105017694227747024337897023165476342996004710666058593856097230764123390356027238172157324938934981848828052466275709020346411354882370019145441147224043306660127512421259401332057399484003165769868286710865086927778630146459690108293731669915473097444314030257143013161691285757648106012712634347597390998472247880573588169436278367249391988424173157444735426463790035894682118048331558970122480438746430293312291926788780991685461547563459310011913140571648534242682936598915198483954202649380053124209283295750679643138670411629933626920623165016451653029836699710883882141375851950531238349117269818543517581192411301171875555216634759816339840762052452552984115662136806005550639064461601059175512120917847577009494013889813162715298243308731492416389358495422839769774895138331619865834837900318171090284474716365645728795380966653783878346503937400785548247768629549499218014582011313130854009572025563264751558849919911124429611537001057855192020232168548846934709614028595340290542214633002946296669876651289706760882019939990946378345708257956257389607719801190978071025991949495210400956790399370325124112363185943808891343070806536902085040117077079012875999181342029500592851750677672191347674353523636672392807976499638811775106315864264471160029772553474803856950164783982992946638217883570634745800219377581749638803254817031035276057008667610517181411187638470939571516863331260478361519447568929756561962004900858289785071670904777241966343837782611240688025830746891609136328159073955206735291452390712572058666728911195452378990860111914423763670943997201188986354020204350364716167660125181983018754914213843411452322276439100514089537934547375772525071958622621246269968813402190182344868424849551925590758635733572845890592579891682283130658803016384577178490119037387515404919544382745874033757534677077967306989219485153787633305812564410202917400502532130119369378067485918397082108646347370121503510373454888625269312951437480449143498790699949103642694272784918215467161849231984683954385477420514508943870674419503748734365516992052364016857517008588921109074600818416900424917317520984141834210956024856305527758246603255287286133897316456034368655775241811040598152880023926800966959524883078494477579534753557585600363436996778408507851641416375760442088543065183184137262072722824142899939912663847275756646645938864223441650117229552954560411197964052238999380682584362012973582866424103079922931401344964106306723274014184598257232347461851864031145592466243789866519749139626340421116246492228538119680550441631666837892027402689198317409507545128047840317833336630378441551457368453892420053669855562218814397306607866318485131100246641901519838071385448240349248745463491891116217266995329206308192534080658052299512544533654303870786290772512301469491508003453686544488641863973227051786681899317617012331982013768333792372050595879095315488731404684037810934772058356450274067331883929014668908617271140339594634996369540744331410635557893695666708315299349113815155099289860439044918054593653788316664111817838905058162025925467247036703510897251757824466080263552356310823593929577543362518091069622256640637144772031239438214853636626976521945065975823818730076192148175351103185415110364541656798905152587619549488119284616906098079389805162614773092529170928376987629140001660239899864495032992712895105717617477711172550020190768725420927513559710290003669357232584724693503999180191494193393100238028751463243014022790017825470633721963690309174864482819509548522587132003975139731770408226103888364127512881798633410002905095483758175464814920524995130568022950036081693091498375700573405047681614381651177726159049201550553111527700256079928838330973797470546800562695655945664853665287917672573848824206652704545458515184096124932225018390421548429453511435258697059240053802847945805326270993782979097730074443742096979533238930612675190959885990636116151568877636574885853361475983680461605225366247007915204616598723060522169998482894166795554246524285566149010844523039979981100398928856054481684563510583034491965412852575195124708058971631789678341464119234958349987524290796950474726422702338031568865743533669380745542290412542650428578126440852837775413539218532666831059640482399099211952601227592075053052540333540617033135554962996372434862391331321406902799646909236978292825328846479691464860701469590261825693007308375312172615039508745344722747910823715882118990843396542711833513497911871304932603431094265209272280652978100061264005284200058038408163550699963524394458897766914727484232698898043380691061089947206732480944273967679656636680892671426845303634659474520004138034157659561471000156178440413836657390841029875431376301589370544862260540722304750662257178852276686384546610864621466587794638380017442896195143178624681061214873616744883595935107251890412376693963990289754039557238721888624963601788841995555084539147351687829659013294835575533926216769114352582249653524564465332515217261465304291632804205627752846185323081671626116920401335239880227970035694977764755503324674327498457326743313313263818101902209951580254304596652503055026490583842406237136017931573195471632055601203849656759529208575800461837056006453827065976343114911678363926190176185544084995290052178755742915542582275097983038926352131291209078390133388332734642361088401795804339170732043328271064125595577409020307689651422131127140536634547279259205789169420734775175768970361789029421942930175030165766936271984341769315331736971622352017837929834902227239785945123768951942233488000326332793280968203649062449016833682857017230064737507784334884685538957213846615466917847514261493175062500545416942015175676219529004564518246685687189662843403261972714324755264917742826682293933587745038424137429575281417261649285920490912394786800642057876998137301549091493146909999890447744584771309503153656436573396685338023009628823901122846184096637342945568409091205071790518823511889719631974279603168375735444129613485741647612792921953032953920411455908656787601263111165244882202076056837811950780077429645581347628395662757162998393975025501712247481446134331097452826995613845944891499199967540521563417757293900226472137892485562835547732651940558528400401333761688336708478050682209742377872196320219291426561444552729224054192046676256318935954067565596041356442020756805336213167446333310594388543873731073255804073644090236031719495028347236025882729514794514999474967290163069321524559291954934259492781834909164414999361567355632541768384440327129626298406653947283874085652749331982385529421328733340839044602553068806473403249782609708943719037096847100170637713843098826431914776660576443872925104283389928467594825728314045070390712266973633693033469293290599624261564698919954019921776756915436363947694986470818969138416301544918807187036108373434444055112481034499198045512594348669489888827624340603333800456702596681172763191833727452879869435739405815535398492612011835819550319454504531461053384352773283701910163723311809828104288089791051723895045295599054790668884666539284487058460894378381637173758201920879700608902683651119425257504718306452412639425214359942319170643500158780475524321959546685443265580744940224019539787666819527837936167685735714583148401129479090774397045307110441762169193063907578681153201729927479783181070421450981140662552438821732276930024896772903555077607091076200387793824442404097356330423547456805295131030951293651074256191418628965167622206445675708311292823898183052822273385606842101991633517796629576544751994180378708218867638793370438030681003739650868951201906789312703059717491730164490645188795381328112886070917286392822494380418937753643016942061295449362088783899913436012614787644700749504383300861641967584603156006722560603681694783540774679242326726084957577283678155316285387477779644518939354695979702888416811917568010409725200902536999679185408285121762648091354047353885764586772590791437522868974113267880253850613491377725621443246746097426549486810853641988078365156355982925096101879608293200756706495635596878780692910157458541735451718070549589502473561068220216255069324844195938941931813511399066758045174133512867932886225740394163004938208748334865260805612624876497896187094721934501578224927495120264871136222548337765612830986377572297164225802321560873459248006320438481414454186916146507181720307283254157845664381138315582717113728493957860100076538194234235230914777514356592747588370975048685464439099744257598499527972073224763278694809708828508306841770696923814556363790296034634918704975931564350449832458472419913684590149643530705162619313343916838243698733338151244345648359429950182931113744513431703621426268917108107871566161454920145555502041234149433620422301202417879853305826332814211595458011125649692125315065349011077063579188082644197191290903594559299530959857830355653366839024605249288241382689750443869610146196683210527379960074476396862516903705384367416037487695601336826186981175884335803877294455040554260352743969851753248030698034834883827638509566130671624531740726512613184489768061384332661412523956745832792073776807276249109976385193213157535038958402989278651160989422580008061361854457327441426734815904952270166688090744689729264130972097524571736209627589581583350229085887652413888157301163945306664350650518386255520428332017338848927249743751862494628029738144284280673285173265722756897885731061984407542481909007468299039496806270757870711216689311537142094267962034000625910379357089682412175819547971336822447849135118623839732511533700793923077260530500316243567515549368161553519628985401500237857184559146738695872726411441483820720292433630005286525636879115109547227958997722584454821262155175905006905328196206870299169899378706261469889174109255793179121821878215234606327057959127467565553003144075150676757034201670818926920538784998564690361773164254432941765483066252232667965039515241874428077639200231630944762989520459619952358649741566079531004661524403731702517456310315116124171995548388343055402580882596366467368492334752294088267837360834276288755651320989373431897112093535187053169251565251401067748292064943576901472614500550410013024829620002651295661171739331405135446524620530045738785449848361600493081481118612394418124954566935261400042523561033117851845489451440098586246108612872320679317646487744187157673200726313098018187768262198861471142511582959250680296595261450604098959776316898816822507738483073685797442870680372995540511217285051294172544179531173055514608598626543187068600463192372331840801428605766268192593539833372697304912287829795432612140487923476332985652813787818236735198313919781248030336689820698809047964291956108025287137901789633193497277717905507886560631280006893922249163115568891758270165239477915702157664712692556878236380694493784042420850342888178517938127774879106218946287970309933359113468785162360577475244698179163853160243490819491233118198041144552090734850308569436868601500360133702858129650359881738450256512036979372729218666591090097152609351133089136456261955809975900078047155691423816869226138840752633842619387116515928266625790419661746564842353462035171129177103159988060270272829604589937569427456685721311022714292981114870568351985625485427634697189195841565386420232290589295887282834390037817845977690597698539805846204202237549701434948355935310934713869868790360088778469493480364108703921072284899865766677956976825682968081347427283355449096300983929196321803640189505851012056084948297911769310029433606806655417892924675216776936294537843700635179441935518163226251881271627868171498689561129512202326889238349669289392644994195502303650446494414427161163405901194090499098761885532250591048883483890559805122706321867343120081591084862974691450671213926615064185684105715971691408206471062847168620151075581376400630954501841019520187664250989406034978881813744538963272411459054681972388952206690882474408522532003333470616492508062859804863573590593388295107993261234227977268350449848602521472457067061246256565591692049726060928016309400249539563808657754631428571228844246996903143726118966948998158816961079479827793412450180488851662260535011842362299420675853937120310541042339720745482827809286725155556979932651962572999105350153706948267181522815165713614760463632454878189555731189333195927884226223795418514807630005979164770820525800801474848235130210407178251720956649757929561555600017931332142028684288725686946471286936799314818711190877308470572122016660009322095330929532294724820043488030568290351560978003461754386818811148206651836032391440562786539069163612086058541952516354412312755662086349990166273278829817814852125545136066478341007042831983955399621800783511477348039285511918510074780812893913758706163346917518349717887819457463415980534929013801170376148702380427144696586030178413954973890782460765649979351286332473256553588254159977613205224492381624422014505104366071748003233464731089372131555540344644041548862018861399070039350326149649909352447875620207097451134532670316810710413916886300957242207342954879383112715055190454118642511381142761201315040501198441436078647555217282885082154735527244607807834550072046830871993250447566406319380930631674499911031651616204060563246890471450135614770447357157002418062170832509578992790736129377737180948541215056427428397320949636820533784259024043703579012178082607946038799155553254051664419791864896911257935631885877022896228464273652036073697810632672560963205993738340051234548823650894208458460901240873691941418414081293986022621849476954036223711553089603196834057033884895982177592648378717656421785245858434991271271992852610572168393121083348841460058696800857727365034602468023577595613525528464695297478611328848348453126102948448765010480250414027757159200254932151234064137149759920412640691390339034474448599800438574627050819933307131572490838705433038552182544813784367959045888376182028997416207259320133075043362597476041860064042991991977458664547905000987036144020132151260965641737815950628662700823717218422701085128312924718325498378921389671822138591360642277829703920067484934783598015636143262635829692308068960602005748811191804543382149194565490740401243798258691348001654096542560414870657261062899220499289011183703947806733188837623390753717332492010761092715169042220594867665853385279257770042344985616014428977369965315271932390060932219260158476694434797719425582291190031538162457816389775352088814306134906869706268087383213480976067777896490082542332097944958575789032276376386791761526890563850412859473112098544319461152456085175498795195609322491213265609702985219165171917650188709956249649853037056435533068259445900928926630895344977867969704048277808161373013187742977901712842342944491984430571078203940125542533787560501781791851282623053774109057220901857238656411206028923214362628809458895626760894791582531290390378812836370492817235533046814090168915408252631399570265302674105470184146827124523598535265592956334733689792756795541753101633475500857385817724706222980566159193295682543932649808669082339709941469018854170146702258594036011265087706578173077128613527403241940957505024259899168742917524852219175410090332957666018049742919929879631373653890511067330408438524288687189658698602378070454376613448934131560253340111462860689215318971443303475804397445790644798158419361197647774779361693542132598964225082505307368511715843227451086723606940082546633503917621091490739056081532485494478321209676997767328411212719633439127583474687680222339318782934323420009807354280741180124324604112991147491686026903227307839906337892378132030461872156875496805785507663483470303641645234251066491060240739255004604972550691553572768517388136682996414700029817650337399277662871959169763863607435931940401895274963657984386103324535622332133737570163226122831225901612855657391121647850486119465039943781952950328145315791139199805234308334470215174163821438830631552772049400486456828693504557226149122378061033355727636318408004417273591683221428570426368434376925276960449948087239708256339692938504436296851708237133275927449101735678696706373109463589525938815509034600408612709738643279246202372318053778710679616858305343440230066464607044647625248828278922920023660520720740531875711662671612387549309607297462947059276044852134995749549978173575093724538865966262964295532334868080486975276072742737982669947570421595915780685884593796233687608252517354828045380930521474686296682248041109864124343589956330289659571462878827827116208645926237384649179099185578211159849229536320956915428006124753851292715623809791294097481002327628153691257115069425760513199592218911055566229646882393271637761918487797815343030243916655466961405372397187039518623388654104848907714576546246056339779588942053146627194089495961444272878788883671781374022435502899234114050655501900809724071545068532601059698159226481292431243093376872890115211427694308379767386231195003683093509565013374184573505249736812068684311934344241299003773976134189640235005178618848869369652074520878380330940631448364771986670696903585975205873424626560961489298990266914542836105075561214368711778478630352412105430544447863583690961898985270822784067241968421804178296485731194329603447609958492865363270404427952917803629756205655319366856880498399716268267792434015738586910554499524407904131578096153482388952302552162441828163868774813935516992715291601213866170254245509518744842730144066832192886712206528939662497269076537898347498659246226724356399716573920317082315039277395539136450089717797442109929864735523598602897763592824081743218585558706338436814231374772407742582584970443610141484561343260756097700973251689635924559143401042519092297227444814081038518698346162885180490626555521208220657092378683010944135849040973715428793876327648344594208043554465133195521784647254748517640656574266983265778587683528451240215979877032617024377342240795003157236771839428735951407266532412955693435247742159625166645537539765997543942234140917390872691571071875010634857531087129029661014112080729863103150792270852265029290771729695012162347417769550504346644058116850498869892849519313325575516837984605830620499503057147463718386895445983796153069952337684245661671638300387677083989101996271534330054975758206016262383077572540787812280549061050464019366182385562484701139842513718240315615499654072748899333442734792594880943349861000905339230681609560055104471785712983341132685342775240208877085159552866492386543524453991007471661446659129269257972682215287835120809318448749974740260447599333983975689904164922276976595629663782361654180264197480531056026738112924311945313823754855160534968094663631425136084177763257981282007743437801498469894930063901131455929175093154707611182920540556318260851233374246887806354915334498501845338017382777288022194929841473325503735141769313130663004607831653658251298987556831236401000578137186189873817568243232371109870261250839633358144881562253243601624680763684697469069576197340512519393926064339423382376730339531798531444167917081378240797061809831961988462888070195120960506328842560461078872287349878811517722004547693583387030195636804701289007030829424712784382293537736276619098515369580682089064950797674455319314142193949265700526277087541045198458815724419945713360090124192671400385274210276218594074371845112640630695618793898593570731722124457523274062292039071492411760231080575025423339950633610688905022360547289401695337933344474231577581053269839083412201228142756965138578796762856747509583448116946836429225919036822654580844208059905833579971711773399131206876525453882090325839936249137348035256077229241139748391698040287976963429980224504292697557197206332610728527556145006579688652351836962072233972059190498995742045014238675962878024050305508754538462905650368647232526626944774090613784826720944458152328097112364271133063154024159943375125500065445721570116721668002628005985154393280046500424650850305808209294916184070571948159261430438469802671929800238169102797365265164876434239114245202368202014895023216330979632794685594075285426475407097557413970502824325359478998475896061190506322122315958038825651775955336119034683137657858959250422795070322189267375881103957938260975301665013858757569747809770877312854855865020019169662461366208650807083402643113908278244878919812637263899138593702083427588236170342094277869879087199223471651390921850532952144457061380650896698546901954822658645550476599604458558523394637355066302562559283713642260836764554551960440031120005639712559242680790268142282693514261599443319201063234742294638047510931840155716007968078901840642904036042299967215075438414487104226321439182887226805502491687846958678474386336923810934643119263821042183846562321591910331795643456794242526811232062951676801471365776968269137701662452057460054174761365678657332450698936425342829244073972893148273549548931867362020940997766177696575929983017765852340469223681092779968673233430719569091860401787434972389277444183679102863011366086812985930626990887008588247766770944884133893403443445605350333868456173741601541930724972208490941520107693983305880827610460364423355620889554837466795002191427055471375831268663806403227378461917168840240298800279384164398869266944866826363554052099080179934289534718721906948871970393888850790745567547983774020181467993096362576473155470003309166734318799768053370484656196876929174301840556455229086530165702974394531691653347358676686798543665079969082264349802136269417601792150319400465510106810259170435645862665141749134785105797898389040439319214180401721729908948896331463537270946062389101668508733062972252152325379221680462064523531312577214752101779936864475341492641497385753263380043609288982677135827503973062740408391319521833438957344355487028816950802837971836490269576305197097748218294440110121231302061544114507803766697320101861895035069453318381513784834212716175477290487560764840264067811390315067095962345001789960513405603926754176716987627622363025545690510946065900613114568674413361792772470203581281274455694728472806424525760780700353078095754425839599520852714081545937713931935060807368266114540897492033579005777250271602124755694578707828209388085138583690238383727005396910250153373155162000878006115033812719906307901915254435324950874242987943894176078382766890534077242551949345869150621728166590006781034094522297562497828231031201653471194505142530751620768350264663896861885720393021705714212659194055961531042185715700283752563716501367787822662609873307525507224526031849351281330180279568272277580547729101697882086216618175100796521142412661156947606986251296431409583864077194758097326390118460598844855291615536750775679887830862843040750123327482770983982566898522259543980868184500391950440870322557872217913462167019088131864866561410331603892459393778439754846452456100050708912943973114555291908750735331344816037572012002339025724352662481400016382238932738689265791301073118151183427609852574349755950460523117046368624796438943886876388121012986786896909993930967287017772107372501670946961590651560237120762117686036183994263850064447820037181353865063815896304874648002480665350322990336137057535803137644348223079351331408577628615059385149880993681645505080404512919909508295421061156892099559218472066358614336192253201197753863421970595618773395314255380893452376620065433586448503902816410590728784165036645331197433368456138615243350320997349984970875391394451376427749933919232825467260713960477114039861398538541458852625965103904399026534937018641704515413362339556805632682113041514722033139314848724092390851255602047756987903536871572827901602429825320196970668222734747772543468007454371712516105721730287648929851300770314703338845085270951870664231526432309705090203481562320470453825106512487977845234198288319508584336111193762247707922287371757228378470659850050012656591453554571445071955519846718133209924559328236918373813140055285466144880239919510281565294619853685001301199161945963456916146659271265729104953255032309340125493073595626169028874974302743722320831947669844200746554939237095794769078632527880048650421152328083722143184590790487286551438598773391525019058856037053930785518753212308426986313715885894537122030317985801220730945395415591270637104965164571353030819317379703931181239675554315384937329556595314673120358103207342855435961695367616163855318719652117277825262825317432868861341226814502004352320873139102435886497757922617918723006871740358641399235030696490649539846388750119888383975792291503674586700565737160252980902924973004798548198212485260061849961040435616841680418830577694451802523766074887580908867714705547141692453766256977512564492821120191181996176706246490159832663009102555037302905751557365723700071684810252957261187205178971132605534937210568881061176890341411241196289172615755227583112929801660033685347055571546706925100166225783102908709540698894682420688239786248188641864670363218672780842754176813937742653843370078706241228775726751594361345518127099975768408718233005302245957033922432626029719225342075902344633055588114104608833304095018989091301397365516778724055579966029372174123525944109307527319982073993731278309618342647529778598494734344556321957541618506614233644406915798914971631248656009136747970902335583861895201295032973324098945036913081662759763721988636225134091417921008883849113900988368855552130154194816275367130688740718667052282820096610455659842977656197646699062837374488567405073024107187404144927396081720894872539686051682998405736804162887678289053206693896520355978987572350980668474574742926991047236465903149326962972079928147859895767726179270119185713239014671900913970673971044017049612572053717539558367893605072098479321856436130686091140480884114165687766937838642841196435667812904815497857197483205734488705802925736372305195670460426560653593190240908029410912749259663783900594111960615068923397360777745925674300897581005417534209531134626952416405319028104056730614190725070551360357558964264853948491842963521057993386459822109384305904983364978480105328312675511489489133971558423381419635334907307115046226942645375888141166824231222404819716119317715089244001366771966894750272103795026221735276892811026379894049677013253223109706311386357382158767939555789434448731857720460589585908544460089733887513407414125980639560097609414531623613871562569084091951560861361642910285944109576802033105445209228120274163094854585191713921252716427120884313638507972812371858254266871430489140703065610290370450385042074117917077245747044619996950552269982978527312274679524254650355533306840963219274087349508593486840903343861566249608297492908219769357057187031511584925743680581755667180396270950270917722026754883747818925251271073805142771828172745651236014368828075770298136936977012254225728604483363778046605559687108231899532861849872571306964741717893219930782096937078729946397560927383436254296646017369497360744004590412405267403372130535108107289932262280013408689315110050025043937950526906288954832278540023664603658843851976293098752803950999653028319179183342327763516287737909157923628572787105385143713593880065079917488381164789456609560792319514039859644264766021231863658022528442390708989905610172915515975427465267010968327273236162324255682216237621864102895329971186806243175209056474464835016217858454336086965439812219014015719254640081127456631098846346769714801144793383553949004187072696750972063669498030963472114815528238381799503232229594519592471617438644156512597310908845212876525775733778018048554267605477362741781571841807823279955321594334294474342911791328933178129436266525967191762718859246771745901438845115023423132712502860393845627994429891293419696300887040090516052025217061502043677539509998288525219850419298533688017690468969959470621242459692470600721690083875193674615465436798181677607992863631549960208343949397366204414723492564431886109859606836651722097779503793553962916505656657995276420060008265322948976632741327776780939931893506519782487019619776661790294269070971777455502459386607363250690835401529553466142551908790339675515672136149137685041845599510242756621201156178997490678729815285957111117934456697358284339890961599898538816150689495483712605353543503969441417007269172730131702005055750186235689480662543815827233885969471225382318230641522981778014343496069113178220021885556573860005421114582357467702057667570268929330842228938781272471326228698042257585106127476104258727909624531076443980382720145104512634229199448780439165597912812781772550239917690139914983714206794266794157196478665603779484371829132888951251375617802083236917907472381814587850229454299523779025679309014694318872685625716395901181103580053705284839210019102994879157010882142301947358531650614363248156052283060409081615368306935296480648708395562360299213026716471544272542256544191657831415926554212713332801223776593954312956781304511552853455076410753706912452735737001929488052307896053236596352577795701345351306389675780883612036829412348920038114048852310590453158806303213450704388595209217956564650738447817557636917309615938204996733236312227785544918901847737876666495821841905877729447474704255480525677377226718525292187057043278459246905007316888716525692438831440131574250653179065378874672721783196319178774027819196826290795206056185901035278671271229066210130004335591801068857753680313561403956288676829575315577545496185879385034526297604003587415032686588851983318136162534145787901708183610616808599873676937801127181237583363392858794377821376067976439321767775699378202901117806001267989716932884403466361143411509254160831778184308479199379270824323241848806553281658879205705225669649458978518422289214954975277486569227917758127182559452862566893039326541989838695976820991100763853214095238553776083291964459423839419604345103999731102145169574462233611952176854761143492279682197880314114633700351371791401524266653356399033195864216604007742453479823571917925024589048742983466314510892220279031816203935207397098330811363352432390227591887061920439059945518997081820011661243031803421032524651337383166253712062840911699861355866333533948703065020909218139346411655657256394039806944212523762850059667571029778048990154223761685486631615381140751902180661450386733980492383893294582519445588330687482340878577227399777258555613056868497458937035807486993997294423392621712680730002410034944261519398668948088585169563639297430296932476239483140611991497808676210523590850548068632748883224979697314026635033168037647419955322895509792338349933261577725402246528933200289529465106377353758047593369788419230783867963330701735323032388675122504929486924403429515352405719104896879940852848462963421224594230160501061537444061768294028284780396289674289891048245244109099837360949469762748975407912517909474186324783869928488106475809800107194808445416959400025351322310731742241442611509938691055078586012493925948006245278386660125948186078815930041996858701178665120944154285302182973664549761621678474362225471095731727315745081215120552449710585494486527520845906418365184470831664646284160166206963365766340298871902956669306010838970301176445860847478332848122444361845564433778368306264617008659537797867258629230425425127433006222822715937047400632741065031045370048066167265893325389321609489785113263806750637639605601653724747849266695569446931521818355173659954114540342588897670357259536390879500171772890496754737762373157281328387437286585438700821331224264022547387789068047370156532562919791285617637986943940517801546467949926984917984540950262568796529716196481995537408001736507792852704121659047125746417759049472229205339886770245511248734810990770848384418028315657871562835327791498016814591724422123686357900860970417961205603190912412330827065182260017952904834818646053800903215892239950263258698286561590746084974717296532471778130064771142326223697184168268618393979721385751725012690346905426266582879741194029767599805556245816270010155597571737873943696721926468220997884864456892199472970195714712661240023331280301219521158187922466423671318067559072965354946210326137154922204454027927356342889136764204585955532132234565904085561989929757786552890703736892995874763686292018568455595567596319299090007278188527797146301407908897323363994054048074928941555646703476277991591159200588351378720366785114522311994687967314973436635578819261398505115499861763604513119521386388549389093350189318407210523938953691449197202663531155441970707765771182585020304811590350585834009304668884090604406976748296935810964480354596716157302509037957416348337642295280575867381927078446780695833896148271357944294278765719302058409478158410747906685868107345856579561234545537689170029547100116263906714940704797577571380380186450910044070364604659898109363130236934828705356300870361042508261251111106269820655332442060725090624506695962080474305134434588783697232867665092373699205178187894465689483189524638619159585283625787065701566968448191758411511682841335144539718298533703087913208568073065061426770389916153235152081249811424485814025873732072276267616617865810327995507484375878933491006008359355217449932424773707002674926616221776883133947895356363651619503086777956405585617413339065678880694405495682694260321221994348682904045751911303443887227939705214036265883715130047519380408592783653137030319145855736506820623238873042152881744614614947203972171363555612205734588797584958037212281484794746557307954930782954997288262057904023031629222328423286867918107993523633899843642146761052265191204119402818587990213680501193199067524055505369667137481045117842131385857276362043618053374037989993761657130332966685094878576936532048487777879660656606399012168587763305339629030191818522082528092897180214100346640104087036660644849676841077951833268809285633469237146082288730352675861094283428277631421389090572394988627937655364864202482164028625929148750252239038484274094117747179762899211015076527969173237856104880398592637351190555641288654702891916242143847537514075434937304627098777106183445945652294952598580562291574094373427446709097681999275672644518879717778326617460359601625666287475711232005389336502225238117256736711999198813913207541155446209242222267383253204214940459311581239793415802326979168910979712158829181779068962510407059650457981143144412099002398227614524517288011533318334950026887387897644387103579575031532881130388219603694681174827957098645589987287151534632038495756315195302064656798361400887733075864205013157702050522476312600961867049577585094576191109534986538455230601303289150457991095361788799595974927571048156593017765174450059318856530402017871988515756329370185010572368448044810415401173036201086003441769479199869728648761522822637401337169453272932543618405682134195878912936844181389655727506999587308616431504590652626216256243522137141416597282816580260030439269940680205059377529767207408910162079556073258474128065643048151106571292814995245976780786964286359715631715776200438719547371311266962472471901582520444835006406171620413025685481240265960477767357569971479506015854552983217037798460686559244594224299890902810774210581136048014819266104897940144477908788762324110639866374128390643880039504528936112015127574440110348310582116509163741609857942062995717798435399980505583985879151380885105298243250431918793096548416083357977521052410227691815752412105212123122922861574687939064614833483355844683795409827543980499492752794649420343024351211308365799502393705117759074838295077609273324175172878075214533254638133640036666377544370040676177686796757660850294026185889365268284403573172931276512051196918203305095298610479062019523915400382318074470159988722360509531427279062082545973501255733705288136419205121315121344399063076173145837689473787651298539300048552377012314777308623899033110216945072340993381023206907931622608424227671684311068922435286958415903699139815486922868029563880622892139268555652516693770458829636246921431877724602030871345917040370237992962582448048036532738524453030477095492971842505864132769828927822509264821607025714584027495523695320371269327634922696103799572022617265667931307702820026438324894354440981722017609648480912448210071071755543170786491955441385214378251428471144267405538884830882499708065563996893079209871517741902988635975398612680825213468698152406076992412568219215781646772180412841737521162864550478609623490589146457500922476355737294963138796423878656416250233507791341067236466789976664881732020046348052316488021412327664433670893297600847868343771229385661833546427425377460868759175192468872626527472945036768899824034261815903385650030636262127531261167191133147821555478118974812699665325210325114391756536768733110978558662767661798137707664862032094348166137036262823941229274478029101766786785701132055286374241673505707400134217687432053194903086172450797208513210052808714206542413857722210950777476862681076239842438225626316396694001519287307110686438465347771279348477933032529018072579152494515292204214810758092885649400854013394879110282786280675288686974654517374556035270468808705755896213601691599055435096764018702472243809533399564690343727537097279317793315879264067956699434763768474220115194132814975293427097971682028422709130756001518021389955768348146012490242564324575010250559666027466086491311075980957108374821467041624885979461228377168726535117843911235895826358781621977754677967863413001997877924260412294439989134035824988940610445947666891586805396890821349387379395296273887570152616189097759557181280559614874808311378225673363543786450496433083381751544626032808548574261574881821381553957166633708967028508532689742170734359932202838943620129881340621394987643771001126707246276543299869299464833059282215004146990143408127044966121749156482403175514317806139517125878166297489925591635664162730414741581669858181802923458756339920959924920817686209779742342287052006972097411128980199441166631177779529841655580798282678954934536707806207347513592981620191826580135738766015714038881429786422557318289920939318186039847395553620171655222447869060762493214722759912977585887904676008836228271400580835187058018294370708669644777612080725607566674420991195587990215119357476919249884716297781708528025685429495535188423266402994115456942121477035633018119503388239147370528690504684838673127566040543787977540463478803961748024927227535286988683951726632461706990163776948216434072461029440495969721966486858930643330814120220473840932442993696792104440769090168799007962223271495513688508816401299072501818854728071811470866139914184506771033312947686526734820188097356067669422646977715367886397857520343863967265185875841059567196506494390146363206143451425809668778091517949948191888666120996663920891929837295990586969474293706000365428103761967344772669692725115049810186692519632464448961765848083040973088041560162480667698223507206085549010046834299798677661887104906613138023535176131640899484658606400686503000073057722110948642522040055819214958607381612479690051403923275881336084017277983923718748539260296876107102935476657209107149023832099489522453565809088468608397173752322338460582642000518086886902824284844945618148551728042890360162710560733384024048087211307541973602226190577162236929500766001862366739477973289968946714461981451253139912804403711866441806453377834522900730814939747015232070066076330448246252615915356761256455756078605753765719758331991592889902385838517192072580142982974033256001586290914099285328983461477150923053404505931979652326849127247736893612120520673405103700443274798405166649223974989704343808299522981969075386694303673048799359450020689590655068305491936185271180165231989364662108355547400850384379587398613990191210621251120667172785870687518727675039387309807267755280877062675819293932758766256655118918119694104892143870997946533377457763895939527003720490744803468256948552007783229456520465500571836061803255950347771551118147864916072043190131556811841622964105281493689041029488860637320375227398332391415782255013353934262511871719145750651741706896709649603893839373585200092464621337085899120066988041431158429613900538921929124371089445142545914688559138079058520668817397253346562973832202205309877555461124711724133969969054630783842965336687126092771982232629378408384018154091128002845255519033113644968135131321181349063249149571801396550200538961346376961702017892893131587699575621253634290976464585200210657190634864488237643237136959442654248737739554713570572134681537035484776167382349762409950952694165341150170367121496726444675694747067662721139822800285634829883035815011758990940037532748628374610547631959326870317818032770971413731661881272969241893165955666117611499639109797232757946363260765482500513762593932783050171628952100625029265305000073686452227686302653403500124733715371567977993611417409629070274106886803640298001755529524023576299231114903735261757786676921654425444974405484453886326091599412267115966953293115383955830501741046383134192708969326010437301556794614624209626349558280998158528825871766973276059109962567539523671156187181302240423403720106662376132438277462603722066606584581083512211562422521513458182915013043300977583733679007770318737959557161479765390171255080115777489896972532279251786640811770615801131868769843118556889501415551999451476087808775997478588383374449500104253397443147702724479413169619969596814900263791590171425216027183229316541717482097447374637247855278723521954286349174478011137836994127243914386755945448574167939588210608172755462369395058569853281476686469707888606625005792148260127490691250803194850492363569831164781219082846978132165258115205243909769144367071265796906879954903812822629659630715308057700457981751279932379522338321602081069260688343842894469939182164483286896133230529493755123266475572739986212375072449356797112703317728696235365411954801742103605993264457697670301765590282539355229852153225137731348178474780382469634723819274378736694358692917478954661008346000999554598001540456601324109053592654271715744937470051683467451437520203496500771014746960525194976322504083897180888260825807802470660115410918482408869043830658491218630540201727745688526054658875734655612998714230171101787967883432933325521696016621491964056252155467568622423010547090323027741212381605100380729102470435324908526420601560963095310097889830780885997446048252938020782770424157186845603334479488684803817145913851232197792233377929853986337259547836372276049496929216063216612657930025438113824076881480251062436557144833079638859204001969390239492803650735656687555899353124074485221654437881230502117210722265098101066625037864831144038960801372789708948135390593727234062012293373420979821929971236728250586255017517520488582671008628928997524405033890400917408048058660249854786809531039101302386861516637118379331604522939583309195026445926964355223832847860783981671021050335545922822997549651375127848715782566165597890883994509628632412151005029333701272615203781469976250277090750736645853017135319056245897094729798181240661591783333680386501149422862852529296823192245114595313468078460656625089011934977032868440038767369223174791524381946919605563874154801090539849685640675920204676239682426254149277105967351624307368717589553379871707533710585662525208935547462277592302059957991726887611255084333762723744328738458465143095135987000168533205718823022420285975627223346247236787085790192751586932775580224139059366157245029838320130369289009313675515597807978377003759344459197555285764870787453596405771818869783033966032391337334448834071673952968709627111184625255069686334709630114955713459114013576840521559978289689520034853374184353402664541469647263269572429351542143320264036162586503625021733749674306294565240283443769372006071141247621643408486494659376090553659870040326036274458570266414655125092979934677205084926118150793127326735973050974423922581272147751254558446108075974881651706614037867035517072679686449075598572186433500586054146838779678076033455313916836941059793519774446736862632370936855405376298290982082817470729196868750729018507525800784225788077375661266902697573971156052191024220985845160319913873017927610164086183065469634135605469771627529235926344815720540990712835508069461134974597259245131381945048634179893203406670821538568190587240907716266862588182595894663918866592072113511923535976685852529759590415552424156807435140609480950372382485771199863155386334670119307945213999158310348270622485121347733096011392442714239360301293905501556667379703870054695837596700493160634140828022406061594550994018236723228849542830681859293374802649380698582636493734084379290793711592285550163498509883278528586286178239641918029228298163319691855641674207221802848111809986517782401269633845753631415948872869589114954480952444894984474803171855906545371458785527236853540330078136565813462055137692674720025061735537818659946130962778021322487170222934577042926336873649589034468444020558171585729944551962771325630307163818450907620575629674902125165690805540026075700404906442099531387705629346147826517311441154990208845509141731875493635683811089634265660568505961584725153323725592841283887512470411139904066235889144453554165080480236755723628463815011981439085316133204549907207451252636388641544988603314566497627298103225796395747846834194352555307685595268282284251101428041044068898186712055587187278897958655747521900225631378661719900914849313097437466490111471099814466995136877834507282616827365476589763623756575564715803030260655366550430048303484910327266825711290704392453943178819189148035133335683257260741642965943861792198573885991044267615922663128707537348172935895002096668233488977788803715697049750241720056852140077150655475887571707821268918767668273861941213187646147634575297134073555468962840873537460228799794989306269254478244344690083862284671265693464148588653593800498029181292907460532544621092899405405517806377173180476195968489804246442411275116456778305955899141626928684396763952739548861811483537875667048318951136229931462092099945135031518448608215323028577661610953564467113132001399900102425671171930480513403932464029801623487809479506354235090334049036164360701315917946230528176866888377366558678338132133615542354413122712022647473743860993915862580708999425054431992487921840672405569646155300415663031014154804178140545972471924508864768917160389940859781213618195788110998881436634139326079079168624330568735580771575321391542053171045541857033639171908994601674469635211675380634647829644549060252077474859054166444829812513003911697028033570168774727272734010409215439732463831340208701049593859640684665799003564855684851804770863114432164573217185405250598453595309555078360151951359724163666851534166926817643795295129277525483214818184499500821787710669072263867207998975573713897374865541109513109437455965181081122989804519094843963494229581350382700288865275175758107002760359058996100165123385866798662609482126670784588039947881435871054945594505604438457653207649349702075714365744524789442543227624913987403747874320338984417456357535781420253025015318419643778799595799098256650737443943070774339372642206655596758851542522479312868969937747136670600089565417375390066319013534369396238565035985931792586537779363938971949331505195470111604521649068341221306908878159016839918431565848187457053491463520295298179091663184703924422868881861721047783132686204988524214937664054740880446306934110512554515477802328486043263254856981418319310039442194776449260875128871188844059767158150801865040015461037496541160936378546552818809793507504321576232385841004603374657722555064649780978381634385369809774850850938544458643402720252305668049824124944320753099045424220862117687971290597321156439167060003432924893380414147984307958365978527620292410366027789692802381349550484361240278345452707632439491018021341641444253661230050574082455987856443081324613152225883084254520832122394355392273725308225969495440109416490895626849404479619308333903665630521520629311403060719817980865092834800655946824539703047978693792283705100480791148147514541731238392958181129975567137142625862820725861757241495857079262884408378637660795475251908954949523642077597026383325865718223587757564816259041634531799487748345271030963885079351968452018726297963568135292664013691537097275574380585857239072536604940193675811938720757426608022732067116801225810555788857851592597970663693079780801870762830278376480665316365753862839805567931893198763713459775210471263319556788605938348295599005908304697205093417287744874038978161414413364744134772834210931298490361109572781863754054247786138285129746741382627818023624094434239670745197791060703592393393045326210307979307426266758994657236155355780436143433129676953845940103338502660888559201253789550602421473998064670541881543907155004337187738976993945233342974818206431074070777430785785387916108652406611320716081598817121669672802544022979635296502449730759463521662997280308969863532906293767455760256431926737363336105674451676717165583030550318670388947290812616041427212607446294796635697457924992422044775499525510752916993127970785388888621745776702327783619143205783701785205789986908522079262523048603987531574082707291645187291345674608836790923896414422240833760316306868145196073080440677165162250422871214557234017641201709704514001668445943856647882871871717518090057398633862612144928870981355508689907983648943284280357951217775995319930722167018053672658813773220445001555159451158408471328441699342777904560688533306304117994681386310282127097022213841666381864972556740436715658552392050135158891316564144127306073709839988544516989575398387839581833728487751057485813424926626173514740500659865360847645027435689140317880435271291604283465716192792828083169423859400616750331816308616191337107085767357030763852965672475698916824833029320997339402031884021034651451016372675293175636491094487280201478532784812656903819663334783269886990085868433088294514325672339091101660811521694358447782288724220838362267480000046616106760708467181769351355171436572049611673055684405717276969245471951015777670446090715328261686575782269358817642619951695498476072483681179975004844290555767223686647044103310515321419909122958887491696952429778278860350540383148756710762261560699646698127930434037742101384983923598317201778642579828427790390425469027893401303830118241801885357124814109561386619309889991851744707455258149091053582242124093650748888838205460224075314371394761950495366881642589047837405310163774578186507331712687895377264587321263978953232367711524840129842399828372718663408973572225824767607804478163389316129550658684463865202354188420995932147086369317145186679891821864305697156054123825453481749125900557699716505563562242208773803815261699135349585890318373094446033386712196707758683957355674669363535073209828626966378711304412030973960210519765927177566098103258652296752261312379203935508440308289005649572524284938689676203320447319348294560613726961636919378620698392756906119223283489888008964805451634986143862783384410536932614444005611986035667867048691823404977523461298328697950293827221640588513603832843588147928245982676303526490994409337807456844240288974955798938553326711435150752885372820760071823693294612804258847023980635348568617596429845553254686111634932073131692891238555086924711029795993849170966258153950963388076324549813238193371631462825990131903319793082175218044742009051423675600783150298028275748646131104381652486833426705827326089227632364713723036965020259913582186150579932274593241657412225845036781934463899522807035747875534251179266403149929467403962138056777392953045036143528761324884452572655734438429371797463010032888823531775402141094995829181361592030436914607258030329409530848208818286287326165090421970103662683859328129701859214507374571008413100464932865089264771460146726589987645103482380146781584527262124890676060896496749551315420339517597249319288413130735521913896631418227947216456508862367085951608594045910239888000125388066452457501932313695842948475353759185587494358474526652641475056053687746531882780958406556526083275824510733109714020947472732641894681870761204105938840749192136519702568895711639802842621996575762425975122196072590972007155488268224038642832326094100393284529456334971381603003965616385453581073370372430490133584683187068605307612813707324537098563861348916023877904662405803370644531224276165300642627235601214554712187138232986983724896838160570016818378420833327079671900895463273538409251825969975068772845424005144346637690370942371959030341484311186080501876346254519925543854528176202079822639738149138167235859535809257262702848423716110090064217641876310081930504765432918969508896688514168248355259201802157510640044048925843817998146237423061961125195391022799884946496959667769998410456306450475899840963832718527631855404428997863458296550631037711397662780268859598464526655613633887329982964918989998565394851150939055260358943793675493356032901974186572613509262794410162384043537833209351989119973804075594205610182423998476890004632433680032779695755832246153894716259679780698175796519580956771120207088004901934355268816593788437211098051672232748053640635547237661802043838857378389358365551260060491275489194878474646203462897475481369923823452197661156317960357830283709275573388254659855732060244108556452937150381681938882134669543044744086605269609282149086366361957508629715945469215481135707868943321185260759255116941479053526981387769748088363918092143787388385685948448049416880196477376743648138135762081201279742217277485329087612941757951824261509986066510030179286393723780735231241109889020601095984377715031399495033065802058921203264508513128384628559503221754102759762939402386869596607353970404991400919706782134095375010978700007562790575591081536911104440443260978406568303546550727652874120236984606985208432452099808612516754700524176725046298052305261234682448925866446383088483288818200820068626923213414401989550829537605146972870356758331523323854833935028097203044406029932393728025930108681135947197462465586402999906854238891209654296254164518282854491124441880102790412682302353095855762760427049894331803755364959290672975717538943985688646813273609842033248051572142651634082742688577530426168081426255334350977648049949491928724883089132459031886574522466724254870707993643638498307405805485865142978244611650974269228872869775986743233599080213975597586846688481560115167747121599574492480463284913574811082791291927236844893123940943481775381198471461891333901645483797868034810521896648046467614805805931350942202659606685304154951203797344713996777924966542966694173142398895611820572818684039280879125176991375882120822881851810936438543637519436220634639328764061191742595935009447026200187170210681271724411271993352557080594405225974582103364591140062484331529153987028490612884614249072220512521542838927196544555777127346060820984910973935182074639465434532215449630297267122418602945981398698828072699714284314117350111135322395186072872660649779679227317352791624275733992206252587154168137707217333639850742419039630583175332057878621034194150193532028882744226809890134357747321132361003976126859484343858791701714066381220589952663924353225764748437039018404694434551358176484884882176223462850739762882903260134459234143670019370497296164625705021881292572055062222348615047745740853675095262814264778579513644309875873960826193874272428403350634392541726895522924750035436933187808931357510623046159581311375560905936488103747830401234816748707969065609030656287546042542820035140997798652583487507630626376963582618168767394754251305192817728150837483314510242354300621674910452131455073172103959381281900260229620275138924377653121867976584183204037318074170147912216855646416311655495860713051274288834727997355889493548750231537918892115920279344288628842099743585853644774618324779292122896814013846049874308792845101366213966054793511373489122970424407962811714562088718553465558765431357814735810332794970216635640336315062684288751229123911073668618518485439484523563911756592676870481336834672107272223901717094031410073211868065461635188400872593753337003230182806753151109112459132596304782081122327947792369735126976813432495056366750584917742502330007805712345364525044701935456361336964748519679776303632224302219096270498882618055860958074230434072920050842478328113615585729722368486897215914246495507420019067701256919984927187404116562861275317927557613122074060202184090661270636609772368695753827439146215402410770336576316472033516673134343053362627093549674704043119704650239481829165760117563805579315360584803810761930223121697666159652590478981409173799496507685710624268129771747773224523386503307018652229028746165322516755387602537467110244733857956428503693347648977509373737232844227521279806355870724836945941579987646969754897403945786888868930009996419005029396328928315661000703695788118584324325499488383483549531255454821083372809994826120206425682043443566516346799007584966270349885306977508344093145969693672549949060637656963602243911918434797208427975108175962944156554975154964996453160496870853458859329147886155059146689279734223415526458836534500350379473801734901510080197217380567587347237626280325002203317766759683205963415607272020855564616617734365958830930421523154674106969412094900012115063797723079703196483214908338873915003998302499318355275227746755488045621271373556964665012341100997611157720598184795054972161157770375951628502734429893117560819190458667977376680885865380922497122509097608335753397857094443468934321918782029498980567964515296333209160467854645167402751645840571003043296451013152286778681269283631829653351620533038317266924227781757747727257380782451518056874516600506883186976894929365715663639362863338183557040640644876195047953850966807612514564593395304892255296675226580917095955476185081690783986527838119124098893426233949130850027962868324741580500955205570634444355584000072916092430337477524078388109029424425894715502813295722350424875739660832245142273436828444576544842020020484869770689195949425432969957539402122346638117830827136823358671020016081318073786202402632227997084772950421447254194774536750016282533395147479690571204599674857075394854161385423574666073525180622916691496078247268497223052278226449802106434250428537436333300896901660480952561523590491579919081243309925935830395772141180144059743208433687112707231301118445867606934879087872437764725451408283918311869672346707354124686047686519220089941335045712821326327928637379995202369807129080076501199562823060823588987633882569090521468130835411778390112830061266517348739112906697579443303535352862322332436358584385107161937797388663379959471139731911552873330566708580650866377894320248884879986348907818371233279916502052984724260209009412018420703923224420566323343241157489052892214000151874803116743039255049811047395588485097760503963345183363146938115546631427328597479151460578773573863092178090743079125181856461614068434463260215678811817384454238096808609083457152156651689821145449975670845158650568278929863410272105603944937971714525836309667702748100318849694856987860686401385358832003812442117737452797722329539843387748771013780598637567188023298876836745098754062093920365163339530461628288612620157631639936209477866820889896778266221626094478993929836629474965586837564879952482074193399966268271989526573694114171651074702935283740127157222871555384822849216719365020873120696712844250877690805743634470921598324264762921168625840835294122492206867221097927006193588916482660212250807197396117387010595290415658605567739949009788489457414079175394962746289734117907325124718627908036568827392332525698939257580176593847080152930595778263509581540044745835369574686309110596020437713743886351709589090849092162083095894810996828962493757272906010857404267541736263848785352030058866883185699999211687448634272858510728665762923576855766506452530840216209765024829000734188847051644098642420305750309066716163559543782748375952310037839335653154542516176998853056605432372966785948236168034364793405256536110490714490468050836035413830402802535097192437123909369660209216621224403252520105562217667708440972944380991652391917121792254184794475253653989430702673144887653735193515838655367818661539719482991940964681002654872312840274300017336280298292842915535123522657428410111133838475692607296187549122266724368975863911730722017529042668551817588473923917213218369632490757514555353305177538989951801718130549690181036328658268096992881861940195742321084971181364344301796701570132754312254563355927920762532252915316661940571306569987208651821604519570493288791159978837751081678989335366513183499381833004436295391700695201348623817434534879524467868225063963373714706856765805458255171112183650560449556862052448714724663163740057278498796515179159331678843551094708999921570702596380888241379906485363185750250088632876820314132492537511919333452677510364115556759756285875924238387148883240744270850713537602920837974283595244384203971222279202459365064579281796477563948807400271466356469455995407993911978148250474417184883069685092005217963498312928104109453654169893585629070552669959319552365044388781263710561974084619388249935366359904668260268031226168996215414309236413470149912917634845263276298509388816687968468213471336239954407191848389195333066733270520892904908192399930029141071674242540583246489457094673727231854835751590170991848050474428073019294741542355696956122527408777382675167081678730043749783251378687909036314845279504786880792038664661073306529969714530625423762251904817742639044892930874670034644340563897173078494206301752861052539510039522989451580048891942882265571693687215304876499434452438554746369265622866988079801880748170245231046298191780042537590404460436803820912039587034232011558369114857057955074456765324348663699005098954359088595162096127958285217510444126938417128634446276152318114783871554484837716283257622407801841746554902452620538029069978418292653873292615139738450945160438928114093363872656567697030151665025237726477915796591284654228224083698215550429358819804466022716669293628330265973765008170479446199088465644799878870264632980992010564274652668290791232478591579380973657537330132419740401801810266534720518868997182588261088838425496443107824829057401320659687344206713488807855623090844010851956045347445415431288987876831565940579476873675840508792676206642767222622559240761404749033563952161235861639384671626885965240747455436478315769570103237576709694681214977500403331718424349738233835078313501217409367200924742987594702215535858832939809794772473137430235880249614657291584971070599505971481335060164118057246423037243325290487472736812356526259833199764504699871886803972246839581184296352654000013637489215169781385144004423369420820457217127854361629977333940758221094573221394784440238948096709984418300790229264576282973428473581741745445797866589081585578410482048852784723677880735792850020400897771218896780179880034388299288314757509940085118980721212070146403293239437692241438017449016776148887444798675790436453903755880088135437914991948663181769959717344168547458628875439212837491989807316242018467500896870681183734556925665960554372942960174297446964267080956948735336784531407237725181974639112025270370913040181028900069093473693597374289596301547181097899891783840886117302100230265212318155733854268584645143084657909532217898966855549319615577183803180623398785264717973281274169867143860408415519214944313280961980012467862280403976758055015497913154695024974277880026941819143184665509372067333580316618372768827223263728245779969667799359777614204815096748867253284243522334722019943737596630152809261004235265333775242325851279838993648292446583364778252314786990108356736735838881201886289464461576695717034222884090417817650666996611239708003077968142574970455920324454219617880817094790815900712728525873658082143944487823256780434801055310568896346918990313682135033880640340011070365248489267912085237095544256595359813217917016108669844179887511227897844043515362748100864164960599146628353846524972279292748928876034610640120858886063122246860157763585666059655531153476778092375558099525154564687972652824614912310020515043628759594446798927705707418467352214346763476761150413261494453255507307219652991636404077804952890262489375985438541869688940351217124556753411961016212176825945279989285343896173795282747236067526187218265727691621579024224011430615660401804944555050509166648427207557994395494968382324443815071762311155271152397258194627058706733104219558689071619458105893952950553385899430379948565230576365874048481197453431366453007757082252748087339929500624070443195315278107365129774308121952332811486502380254006952279138784392741162040003307112472880394717132944493804982333985909543398489649482001555437466154443239689161561039838641222434608301592758071087567310053967851526402396381136058089658457939582035602374108583338284855406912795069495156559691163693768853739699453852867562303328138724463701512290052036940906991293972476722849203266900470737931385960903764891917596822219600210911281907366921898697262324332196724679087197233630358728324216030848981703462343786562479513171479511257947929144669502737852849495975111869552300100050778676785478913757566914974079883986573387480057676107762493446268486807829305568326444254551499803097136460248348940200449053172954539319471063358794012697864843084819350692240429849709066361063707439568047273612134528641606596864062386264983307022510502532458475391350210657549236404522304917565654732805094518476237882626436563412590096685289960705823765955249765273179437044858829238508737470700251932997866353162450595875629913425034309801038050928915704073739104151395916492491652495211400988999124042194281973593929631830679784311816772887881687858216673567835995608501474120033724752228437226927715636148536656734046959329292379258602752634125686181553891859787014685211883646375122452843907044631417655418304043215862329212173767897472359176387589112314045053118879645633728636732840328291525977766697834372979935402059535903227921948039630697348908220847826939102341064800595975340007680127434209539274096640255890203076787593085728616827867943642203878794246257862506949000636117056874347532230974098952483150069317622549418518839349886315558374537044907759906116088117598713120652392185191893430657615777878713660034071999012524083868263556935745801305672741661058012604291302054422966704993528841370483717949013022428678089524320894697461446460706829757527437247650069556183596435486942170009451067473597202886778741290525759272405019939127169608764402707296250614488250271735817355871628260457450593742638122882019988992554076744716354112310871157826353209405468561324597410289707609981110580757746945313304873669582304815139383201639849415774339656126369778131165232639793121323103490424457438506716081890008919367397125711511969177139233879303866582577301346987770851758024284081688091863876697977945309391515556544470244946615315096066576649043172941938401599257240591132877258382031228648309390337040920978205325593787129616084264889042534879412688167391843678240623231783118100088652138886135023489526896385141761712119170757696715559609379004221368921203262555688857420825193989809454228202125247172083559562613876554925661622291258953775075788724380416295884853431880845945315223515702883479140303148328270400533473643234879134748597344266653906621228108709246783481590491541248733812260993309856890354008805882113862408971825100279193464432438071784877376369101191536543634999741611433738426446765139515589359189600152974015976999585401836164403303228644834086633846826981020470390224232077316096336311348972711513808534822352644948565290602362295359653326004853375473124475957049963315718976170266908137223427747812111826827102315728463524255843351383398915918872620440281670376020243763576077612358015314249691316615260746837383982777911066850606481023492796038095346749886511682669553808223390897308874504257177897754134871095133554680260740875888626442111547600557985608962189681418592388580708907688900900029691537508523331792616478761290242274794934180405156080594312477245085585867248794402557465150017785921593933972505830606936819538308656015858422607578897612407655712043875462656457111300208111037899632256895305507943401621892991344625031571820958093122813224795287061910795758377714527260467533317461265471171524637455817803750526108127690943338960083407820574879170840094697053528004495744180810086930841869466426866082280357258440411583118258459107568045269934239041735851873062924383725657658599403302858042509409493195278441987830143932757640590937621219810797366297262470467084081123738532475812940330514422963861520081040042264965944539355258165429111904513575175557736610436187343756351657096173216837910313875712129394662826425738076269067906322540288263344572203585188479835229706628709039220643779843475542910002406625213587492307320052543278593869782385044460181704749917189733687106288542586356305999528434422934913548121791904666848888347398301003732584124684645334948687748337550438135342771369092280721569670190923333577301221680943005150719579907941924442175318588868183534816526495456029355094165011670837030914135613040914297750254133451634861844312247809236691479171322711213083201722864652094123666828373032018233931499993089372909739272959482710547095111608413895920882387350408139367075775418172459802813875879373886394458708012269864059325387122759478398059050671576578425298300609824685527649296349377130717685534560825140071191377144303743049788153533034186025501676313140913012855422566967669376578096606187497614677856405588338355711007111858966126406258168384814062207425794992326879575279472595059169635487269449427515436791790536134974357132350565281820606735215326113757627198954718970989815610221283099665503116126036702431485892908583503217132382697621379807387096730231498739169865919965873222555884029730481222113571967120706037769912519014423498259909320714576812306813270867426715501636122268943597442573531217993180373026569944009253834013221690381072473415987628199195622758295814426478256137717916389887861756416493119890993468994715797694121443378922574906043005363986051191903819107493077116567553837477162445688325576428814410039019079310833987229228446803896115979672650486665883679799295787209632035654345237997412643620105353650821356084345231903296395365647155523693093076003582234960093691323981327945487006331530534010425780272706791086139467111246690398343515039212687987383597607405815228037083886690861577581320668526393849579508701490732248824547015319747739008189180391656842755251215769568057501211829464769502000151729266967483446048997475342784652465102796338913138122802927133841836812698591196592384273499447332630840285807396580159882455175202409543232433691585072212568684445498526265914759314586910153969499752942717418544395934395185546502851413986007035368295398879872617233736972404552093258196219943922202896896740861562742336094132598566066485762124128270431988058911255643681221134884289739061712993245844740346536024608295250156277558007531780600091302500061834818003732921251090845098248444876112865092926586147850995415174510908303019320653879897852438048962402092290636312736749747003964876332547613061011868291483877312008196857289647078684251780722842729924040967579574314657069738863306639843712679651673902926529411687662496520904298941882130722448795015626031157133140060341021143947086098711221284406298154124682537493119821388879221392487151549424654742806276053071412393650802423470389159838142051116051555677730386749186214851884738237616150418943599903193154392935628076108744262634233202797723656331723483483625315641722318439683760439163133113749880149665614123186920210383963991592552015347825878166752096099611720341230375598680026461349547244925661457828492074001597192153176101862985386778351149960207093958485988380356500669115189817668589926335897282802067734287433564131891672705734441064114152496458099586639075455165182276341089910536371252935508844319964665908787393175141022023190902037398036645803787656960844272207064188191249117691191963145884255210133541809394294392144974618891196658170284158496034719467280630485663650033983869444279762579007004619765982554434795565547699119911241250835164558027845139132609501852498822955094241064458596082436686326912073440125898927435638244349431175963385196295174903546957360762237304553117091400476114727281676091142990908711421771271708814855502798475457516418441635947093047008550101097981713197043343037292529533418566383146696761295859993936773095745622672566350768979983750914002233037926343444479404469258207156344339596963725891053904553433609160100957374380305776654444290029930270862167483678896768383111501598797533190369207659628585315741787739781148362773611638554948435796774542526787705688483932187881316311863473908679301815596815976217315533793374622257571384630008298976436298134955304279080591660950439068476862916235255374500048744524847100809642307137441222207235384742354123069533517315932724492082306323203717426236105189199944197050056986996296889073239131331475340413316825508138217738354610089180823563578448740628443374442676950306494727150438878999040861421032071501598139900036613588670402938109389442373887050142018814471944844509658647077400793904430532581649562391605095623084220957048692696696853285220157709963826090037481866278798377520352658638671481734046329063764365023803909651090756244330035164373650702503249217948797955286677017031029055096532060566598938097012655174114280772042068810863591731087698659590510768098396177880967591585715113999014976755961993021487479760631069910370881039106945386779292392400277938516834374407511076242418392642355677130226912780068054754740948344270181072316133341636207388312071712267620824273285611960666387694406100005200923225607121507015914812977291750619061986377195173126171794251594769455716004336825913969875559025200451738333852154703438296299871840415745135911610433249728458208222467262223936503163058971492737238535298334751218551754817185179818205206937354938145460875689309296371725218772590108671822668993860920119643579287925355905747810554912594288207533189134043347384831090531533240637501952228094018814845046288099646412458661093986067289613564401979521333274029361890109765699958033235550554227606053026897747500675942999454229676951707609572441154989088200526561310457872047789745193265725136833862234488543910053222899967294833607921501099254358871113302070216788569818006646626202319209986768923219387135810889468150801113523000294471834948585046889991649718765510067911064542697236967857531911905806080045390364900600609911514637828562230441260265708813780181560061525606897045790369355778291919033327541180467875665016673058905576144061606723242203048579479930339610026658275860233637256771620840671417114064345115042727875936119357371862646780578050374920156892246042868312290630766914390064964485235638347951138730350445126128803933686085631026940016157872064679374825903373780645570286302873470023283975984027596400850366499370678520535767528735590105951345464540021733422072547793518343706283989533334889777737958628630764808589593111374549585803484090197218222689004152232399450759082275115692949796486387350849479115584070414601847566133548961611008811211692720118544898629800665965388260672868464031845561126398157609335153307629718221735449194624140900505076059553805695099980918521598633990544690562921907884230605216484332850647935381350215153186284072613769805650120262361905951342229707000615937391935562700398020778921126644646730727703475534949920763103266368944645831569312624257359136885160109758174837085813485408359649191075533921239121941407940236383141034206639243727310876892396878877146983968069776035434584563788837595941966093432399539085656328886541617842082727540609037828872322948040786209121207841713427722534256827238367952441150043895288087657438258658275956676657465643305936075779603134628041921366176832755829088954590288572878612217942822638585062435793781017115261031165338152332564644363793887289476885127003993955035484561871763789676647951849865276838499644883718134634018644005810512833314208580446775956741550426647952812899727264897436514766924966497052848186472403769064228368034370561324119283994199713626405836205957413821379868076918182832661832135477179252126281080229920379917905455238603584807312353269138185288865064449230964388769657706743200000927856603107842299077639295142118165959530262069738908252012125133222178695490084045436329780803103047119103869820333183928592276764200900704367467791183323183444299143399545054782006098447462630636843952751770804615296825414586435188367666765040357256119561262320993457804039239939876515846996584816078302078620344245199737319838473764274905531467129366663320174528273551464074257828542385840566037603485457067081565310159331882558545919274909787663263822983920574352619106014106156484423534138502276551603711581008522992209374553630307912718375066433291161859836997312240272115868327322981689256234902786968941313321609616941565745483492291406242870439104005506894088072798409968912616425784940133468552383748528647010860534884818176589253792480761883967729919102847285246572102416505584820840614473270942265664709993058654311113537834821294413685755986314925945852306573714986930042765175522280242933207723252404540805936242893912748554825168496311741067108612521317593917290183303190026897208904531640821058387206935818184627349054366891356838142846804675710538765917781382662755236257190068099737098484376268062263600894257761205586628650572368855742521778228466784298170378201039393925894998941864176115781537904870471787470551944345920951410298845034501636731324950149237296598809999653268998039134475897736801110750302765972046572520269969972439634336113338672874110129731913795686119427742613077234502547068565362017549950247646518207127599934958313730312730724100332884594169176358580125791008623594977288412737014158543854466469659688019944977360114984545193729130096464186300337594462954717472599734780664823130468503890405998623744665787365522946569928208021554883739418474291980057682520236918732819364464052983299953804918948459952967083165514936100189522421363050852173339462466413313553594455295659584635082475411279192539803242036746594363404628659752160916217928497501573460181646946047583448208872030378381021954375145335326608045458717003751074421327326495291447815345866099833384489740182547542660230320628530698180553616508293610514481832460201091987819244517218846485466700529562259107693864610098238700260247335040683296538933129544158934252316223959678624318105436134547642519446250973137943229039378795914272143698325789637789640241506077419938225063842098702044351901754426425117046753453480175032900541382995037703557363661837521192187152584643174122570737568380111903711397434608187077910160599408173953693598696821946988508136143666564585217470882468931788935270148636268030224417708427596024414275439392309528391020162274444205166727358291427662000251440892786887423201283866090166185066581789646243752424252811041324587076990216733536111937379797681451828629963370247933215860434421000646337774777721335714196455641985799838597456255047817761107178135322493422716429429867706932348656992456103725435557485809767461662317128522310959026882661601960372842128347276651436977264884957096647501972563242540979625878934917619390475983227252930875677205869950692652638920883579283836794255225739022317379621025676102825099341674003607058117574393014989282883299205476635724493787780219219886224294055359861776086172610419874542113114112997242191409935188952747026215437438851089563585082474755670260357546640810736018555212971864415583656109878586709861473722861648076647451981738444286686295592821748448405752153528401420764845004674799342753497494554147098877289116101331941327371437014854743563385459142813291675085591926613145411112908637986112386070405795470658767065698451032392592930903488603551379535296630926210719845178270782950189802089356672400898231571971021492886814446332284769710366708941182257177185447263628201226376696720336559057255441267318160057921598467862201986648607836586627443706345230232285915530207988805395760800405023533890089168821240264155796284760016634062777357543681531359143511247893910197020317369055333329329556593067088175770663268471871495417705968885937692771329146290062345047761236560342660863755326104730383170132699557055122115319441535519614748325746661513153660121993133742735468792614941808209395169551942235550528307195816504026877617429619581006757261977480216004869184871031168628768103229942247216271168491223864427464332000727303716613910954716056291378757003448497362599405330375517188213888365309222838856733283374862766184739321437836257210447972519583336884385612148088142590068756879020548517630023818403396846834933160975783313414753400846037012523018132596886921977220158897064201634470587165041717856697380830068650455413324189575017612566710099428717172004961619507604360025702292645782620517812717614081082176535927722992047838956532937029425818793940660317585974473518744785804006142474188743857354923670988576426397041836997264115474065248797728171152982847476011856049888405147253220161825541956919414099932352500922743382074500518604885441798087859629721299061387685737296425758391747816102029237569554361226607866860700327918317984026811446320025472403763641293535380573401304447062588917979326153706467260535362151683399639829452763478679329432792759200287472068713921547190998204605618405416184789591589284046119635463796807379349725720398078418729593191718400158005958281883745096038488358136070136608148741653005657882180781518063706648456692508238917131857609665598420166990564960822831667888009928179222652511519551104885865009107832147111468081767295814261978339671171279761505426513516875692953106441278438245929583192854183197625659510636377863528120764906019603542319360854374291429240468635081461409459274354275069315568147890947780719427830353677945290220895273635629003063686893947994568550880579834711879173028428241231550360125182305888934233254283045876069703518744115409591107300577383317349558115379205313540305439826314804324337662408087223289255324542146671466398107626644688377284487549823553389002712574402792293728488090944938565791498727496774090668246296046524787623671501239257180202627024207406952466939418730535360981107509963681368750373749930641085764645107002789613926770593499498763313106371003889832538381274336501429348052368145214810524661771584939206425145972970959803432542332122668780414458643451929774406873400052091220738769695197912439194065289167860616742231066025992531778762372515915884849595418405261923525255563893439441643184916966238949253034495782432709349579994665562315095102909563263107392476885641445291452841986063369825676386618573588066544464249197778547372728734326145299936856435909649357259537908179132015044382654342614111653074421416700058050727321703572834148411561777843997001841530401451592503899194836248523273920402322741556485427110512158451466972968805866316822900444048840368005686402264369624830108411035325008750146392107864581625890176162436214099444797533291731745419907702117129384870549304835246426226762011240891098734061839283401304416281277542971149691733032185168979121211051510152038195281878730724285933014111314280701736397495152649976796695418419965741980174657196592265078900059424342401629530532293597900530386168400426516592370910779073921666993187670027561226971549543630940669981840015259951101119990457934840032860294748386566097090737350526296361032677192623692014904619416596080546129102610700699454665241579327802894945945082854339533646292041725207005046984596072287688254952635587527881608842629825094836796089147115614377191032868513535876058191113765017374855448247725993152209286188551136725428443676283134008881778743457490433625797724566234021127721923459877706142701057772624407554460331639878512917973086744605761197722024740097445694863017001397869891521709217622876321630872821733671892252870597097638133026194191567200148763311737322869075853339399863608498606111751715277841324299700121194234466003961891417987720225306155278201852478351716861966577577449917356836691263443599128954516962032350596647074979439192146538968344383204769133885706602205323311452568175151026091094426949079427609265631778274522331256490854455795863804957600679513330980569692629583854814595056240550727838572975002447755052305588821513924737981986959053484107016243436549323231351576841311064513615591640933633979862453264891872421371914974271475838343533205753223567425385732509520245441586063271605738244158116259601356095470193020019255434771493166859320866049205677704490615694926943330784172181107055742135530192376435195455577264538018104149756752280709152061116771553110191139078325009984740778736149496572383496539680229882537631959874437641152467867495471380275875708874895992667623055425651276974157892203404685909544470032789060498015235958542610352857567676252584139607838912484943332207207433705560070929259177800213700147046539841538359073583502118735669840202699929396309869523393302415320725581481891846407709779353488032096419453459998328873979086251379944806583499397632783551632439511371220193424303681632680092378975114277250776786205537778318181556740894116963124445458606203313262133205294473571946067472190911813841458388190755365103294223954728315440251221447134938750817000745225340765899936559774113586064112359502715873323916409442641677918798618002598772410440046794797146311209042397413670417644177597067275641697725011363385493173679301528857591478787670943489089190832497153365311378701902057878428125068195274983779897619969451733281406165201306023294051908475905390200096476527744322976292301895342509935542067714818740028794568766840527693706855239310489842006304051338769197599140978220551164522886774381130648750372783339492496364982961243333403376287467057774808141639105105291407862753643409204163921832422599546178569589479240009974205259120058200403510388400156182607659828239281508173393054658641845428925665318737450504605272496945015702922560653808371254828693515917548643182904388046825506642074029629192054346613705062801301403969524983393532774715686849074994647112687675897956495595825590319823508495615429888987202646121983159010034343158299086026438901237568660593338077068377380852580833531923777733505150871080981102533625164766742326936967286427431712984808743291273666431466330194122191375761325421132237209129967404241107140413666906053557074453258866655521589978757689041057162801503791495194947130482824256881563262043588832454447287012489629797623008590043270093567017868516411553682618862547126030133295520832777732221375092956674536079461092798241928820397663553835920361359911318870073121033168068709669150254334987752700758684467318268020140903960984449314560698493153449618797286482664338717870158114538490675197532995308675446572974273876463335283373213510567825234924614779513915266927115899726529679907356386718231457028296195783170935427836069329910963503860008627978604269930011480899101068656003806099786193931086147166186423647699021200163642241760258033405011211751013411558688057562927611262484022759845665261030414477987664466567954330055387469699999032009585061776287494712697059943377385718560641261764962584604716797752950989884390003029965763851272704869123482381314317192320375496802980522296510464974353694675607359809180184581765776476995304313210367192201148192399089081170515871452254224208473069757441156324779617119874326324404596980117430388682659308358541596857891887575397053981946713407767783495955343904989540465277354095335224164008714952424957997649920495213143518837045828101024782110669356223959605034049318736267850998842385553026178092623180260705125300348035260533540143598462583967689997605316159167337622798281559788915039131365388444945054439912859661631376276361584931715998975662848424852467878263784266321467715943702537948879537399689840123782801121470735023936270684001320120661974077854548512513391698727102376304838380558434206669248108326463999989103327423355346001989225150999024722977431279250774261005230774125901689906324849261033886397350314752757637514191512245549613243977302501193011011149914958342077390023621877059449324861418664579040738670852745827124136111358496977425810081605528438574642227489726950261442945333355833832493663229668091867697230254636102253625189253814525855376732277377263987078532837934084188098795792335568005954107977948993138313030683904968945294785907709704387220238552786253255580003091022884703116378011534256083904332097058731884222146946898891932298507691440979347882194317348407624368340727903854688363017375644742305016278107479503384459569039526864677861038765902963560749436589798428936920728769435653511113571926308195984802387449321993953439494207354613006038658239054759955076188023762396576398495519201340405925188312344141517963247658944238212621644209867210449329727230076072969914152205775485635734871930520042264238042228807306553743480058028654540447420168262967283948530783844465525918309661166980028244588343159098433573893782193217945688369285154629725100369944139717815043284181321952380774538832659182277987442192751372236279962093950725787786729873025561477808101262474135035733439119929649957242469952422515577198017393465829269395383076187990433283861333899792590732762196310785351063592274546574658577596409960667770898992688946036662197519816339111690013972838518843074294377425929255177458488981195466746029688765849098333944984543333600428533580584315338789706667028395381428106099687699545161572900472182832827199541133928134356459089364562529023068483992670842408182528577914581274147678725347913878781821981623879167776330409782303934282462619620165402674459366359543740377841399192456091117817946770175191154710539812247851652120289222217134358580871069093436447335806900824066588694114424309158399612961175617840921108175200090845633392554616977493334825799891537357686443639336087894845266798566206456259002142672858647286960228225883303382046534662093848597064389634553171027958728333564801375103414870178216564877304727294998165813344577414944381797237906492368255531954272641406283397528459747319210650152639463102363508917812467877791405059041501637980502003799111163813618824175909721136553565205784597320172410772594965174037339169831365313013750323589547081824036579488061363728099663951606584455349947502930570042232780219215634430087616676245405144105396777583471120986972894478219904581994123421262013722426367696899816568354665164259308063700619679727881427649810633164909855703887578526487849183094045930938325929836989071004487229888096893130493805230072404065831212121822054098574472985892919608661183763618507539781838063238594572540581657916333701620378112446443273118676823810765577652527419793293300886006393022022011385483802249254643373370885231348772476973518468131411248477692912192811164196617607441402911311738192025747184213413613692383102889229286032278334560611073797101431802452528734138468674438979990472338929902405870968652463789852535831095361599136892393604839156962973283974205140271534502991313637602568571956832248915673514125788703429393369636098539391136936063085616808063875777760477958247498453730079524196157766764220188479270237628017574340181843482891904148709548343961693222194391965676770330356201701410925905797725249096818366334431524500233985810965311595061128045746476496714274347581277679023563583054550614704462149500829492456679395781430164982694934489612188686157917164930120934028976885149955588086886149055009540096983651899203106439962694744167827071661608643387305757656075583384070060521073762082949787434030850074344334779466898668803660199112903273603650289863057424918585094958411050610765318164087337984470042541440212201446189329404243121881613420104140531369855157015249670334576147223585046168283540260630688164394574795267200041639232535769191357427554229496370291084169147406327951436943726080311409823527071693924747597735874862492268482601232857593735414004804107054651548162557094183611889607519996638667756230522224707535481702226880120299717129161234845491552541323365198027313621470016424264663124134273783595261700010436068967745092490437117213073984439669876934465828973024936582181930789926753373998431336422148997933152625675429806161475822256169948053837888684941133238838025938214504063428815256745519048283043496296622083362623973901498071493827383309039563506156487792063634935316867679946163742562271323531946392082141318014287083914277409089991130114306792138321966706197045787250530216056579482079922428051892405458261410630657982234129401266748229574686157414303492653244745053003572500629515998921015307397337117575733253818419703252009887577973665861614897114251461938198670653670602428105857672942582092876575503664281324871426406932933684299828364879740350692904848479123832163647105969087654764293194968288249520602967655116953538835992579123509284705263391823818988751022604513659080672474984399420588955095569339335068899592942888441576025579714004462136119272794292132241570368928952383569929206280552594146815993312190048182553534319517560168238700720328200370571713911486268366573077083676653076432482254968091432941776402641931426709412308737684388039129324205372116564430393004411101171012726442604638071457712635127857334904818508495236041954571506332300575911457424939935046711780476987414865995588823384454204733553401799510743777524863640811926386138516010696362895610760386156045131713635966117456655898244943696479141745518740365262746195691643366030588224912118202495431165334324212152646467861330991624651900079943065755661108543025909601421546914749196447753591799570218015287275472793696417475128928285571958376693819477280207788571096913387044802781202003695787452831395504843812684207973200488977376220037213853693052990646061397451832700456247205370110790048041077130777069073159408149336588394971158035255900985120078987217118146046412359956716449812353071015182432371677040752764356009404695549031671932458707041585933484799897417441328926341811709366038315937524305162301271684444879614858777899717497225580230060696856331814813851794053434173695168395506702182380883957380251168559082239354447621837352504655709721689311033455510291127664095455780265281044034911164520671183861925352496162260576478881946163885968625814654716008370135523265431691966859126570133894588077328543518166150259738884827580166906856895357093099201128727002858437327958206958011755805524513370741961995511160734088445001024778651182670841155027220369998726796928742828722642319932069556600988136901845020467001562885950324196655952875340236920164148162342942250182465639687195813825469492502260353985085344434359700713806735099982792523846102154601538853800333440935102063305193107913093999682939569318297910065604609273424711477415315388434711725288466050333758534771061794480351951551082627044185512875739914371816023327841791320326299463299157770141927590910538744323172481083203874362055743222850971300912861064113438853667566240300722811261116373446301158601660704255375042029243377027114621125830192412583740634252887505665732432287823328742953757280790430757571522658136764151991338091111299969089517764498459408513528445237179528920370668568819891391451399579166472123238417659051896859448254083762077427627022489693115806158317878065611489544666546570084269746631029227425016149507862507279405466478844483993927982657063647797959279324476769919949382025400637388992091844748512355849033434716636334809410325686931232401991161260159482569125848735354243066791769910984006213227942275323263290969294525806691672864176025634055231468536143264180728163102452914641004403906420643415385884925565504441881590209026354083052684031015134972401676174528341864609852822978649170045151390091114959293341272332819333017239746038050200100162554322169953486236319538258779601557723168650512079085383005414920595088807809320879122007382591544035074087469564455888536942567402314071720214946133080008016745861093772740571865527146084323545962279061577076425645575508088398422508196439228831902575178488511501966319472192246892769156823689728300433078863286038342194411235757972036846931342774460230538133570907876752762260511771428450832879390495575015210587717229114834015844972503583796917166547176933675563148035059066616230444979540780223178653107788580530534631079046731756398059465937451390437764801187280942645467694231822743948573336154820514400747724219215702667458058526972949339072666474012061063463689059793522130077811175281059750919450997417515670603313953040853599254213561795062176001761165072991073044022332028692711618750118507559186184553237155610198364788171322429213643687002992908321428645777446964107078272508684673859131052534145258056588822458773508609757758565292072308763719414968830978117652088029642981614708639552043735043064204866367831416705990719954803090771221919935026351865858789307652023505232474898060858407781957662319399740595643453259695910862821096847092662931954731634904060206599245872828363568423201789783515522232401978204098039614597545905477352874312898145936328746721662819500652704438348414193981550300395554677257440131586997365067781880988032426269822268591341973469026992750985549848162322892480633707800845387610834952146668400028157742190577970139446940916811886372585942259877536425995173846629547234599787423876867405651668159929035264127483918963016888136736943141154553603307200364935964625405741208075297887521963006884870650241943294328091408330421973121854920221782711125942026589600723593515022877495170218046355845990958347424982212294204079644953567438391164858167453594230140558181112104593664201650032921389258419312056484560912765677692472804248077020293022289020017862796646817584998310460091560948859638547391302265823989022019667352951613608345956643514985613347747369827953864970077198654916707432684378370484409709754920851261019802937381641215329638266055804110578687572500880398516669991699680598085250216292177125773897337689117632379534727816380091799191380611017721763816549586831489556361918543504815550839259254650579512860773495196147231936321588920281830781169420369616799708160659699570746204872101345368966794088909999115076685819587784691070419668361453590090046479786694880464988430397946690989008811535139051184179257586564676774687237262673992132629567339585533966844232880789850656499646506983182052869393754748541997980539806890503513013661008001997173132712072719186710692314036808850625545589526898612792806829788115659418115326770002838712819328634588217419755388447072255788530542204921140429127083915092763786083314183599309972448827226125790033826796053634827080103262690698950159497095150012760720565048674002504035349361124319073831229172576831052514561530148612800627633153546454769144468977120626152077521784012459688878991207749692509308253442002087919570379038935625745839616446540391595515002530066205656637307363274616564425601735843161151547076714428631427009793796630957759405445082828956689466144434752908696250942286830686575560319324113217922849095438675417585617789140145310243929209108483628498343806911007074697030086161599216409060678291334925771140478504581892875125164897343939918659829620728604070380879547289753745487230130495527435016027315320058729918885840012435114983778528350825614026227496429702212891323054728107444839507541363949908018478162323490159359001763917267488292962649725757499836015457375046678701004403688061421567142269939207956377775923113345995061738106446214398872042513189261775352068868490647490423734613529823284250036448997021981007074953067231889258574686573169856834955079768061666246951649772764219906390014732112476139070521509900149862881662193870438484814247048356654497785902813796437520273636854977457971123667762058256201088259223368183150018807055989295440815728450009580846313620870438374060550954311162797947639263486735236224894786387659050944323044509220299321867314601334128013632909453220279840773705636706610049702533196893475365232366315972403810176850370892641161761419530139727393399382636416935373101794163881088760488839536942067459008927846433522484337123863344865203728719451650297818650119726089719196150003040571053182339309590499361112508931601059186175197270496653880537856665503117122679998002866171732005265668150954894208853632548974539990637401410119093827055652679561746292010418149996796967506895381114847039776517892139604471477165324757896541233843563263757313563643521516641121814388265564378630025039389793628172445420016781081447954251401647561379125556478210219573948875933409570513846506401882195050697534192882571101987427112857968782566422197215819040623593268482326488498532280739865833223946328960934347678757851585566312448996238247136247613023391047843102740036923082389379700673678045157468544787614168481516242338709802786171112326800739935742977666659715390519871824060924541007577779169034765136020477844663509571127413442466955348333905261942018432919675655335516935355486184943581304595791735062325590549570137833171781035136268981578905679780355343283308792817458101477143512242496354152383703928622075922425145836425888380980045334131209600122108646704628855728037872368047340908030237396214339380730808784265858538439852518782268698069121803329460939668049471296281390356146585328391166963736028769347366981202031576934288526312281309233785492833986984418924254265187633946449591889129587412805214821296103157522150375457574406065595062597251108028192180388520283949286503266412747680376511975268008292371774357251524784800751478502837953925535468111890243966323454817705603827933082452441744008762875423632657422664974649584474040542170561628805567407479744843531784027480781854272302405348109485662573738291029099706201061475824604819996155484987187802120714387279330911173404250133746934416203817437549341708177995156125922907992741559967096177788010715099385355144406765042441048053782274327467990513223975066859545985235166654485707374423511261904182616983972005635996731304634023660393969138994585803732028355831893142699809881563170427688579845261256075275796558765963967457891018369772895420694784898314955458578553232802391092246218831642160302882541222464522660617460052738053782079653431226419509295540950609486824072239367286547575266292395970785489485887233239466093996937839152889414947182017577447537593132863369216702573401985285298239188110265684530566775581790815873979276326883445528347986581818399185783324360727580618276267224913143172512872996724835874264312438873108492493659105186520583985801803720612055808820727930382692443039269103349234754349213933344784242074160556775854988144632326681499995454389482296180679197523044682327011199517975764362542212093952269537501925744051209498536948554830475741506977010832135291270534742763912089237247122041662459980382044250913192466712201579351866763740532684996356562638437870575299128083140867836446703040929581451074228076883549114081448602772561417176783610003622947797169585259384243605371907661600141963173370555870020983760630151913917886695191564239882952761608076664366635406065557170471109509862205431434617096908247568296237006681737978576398779423071780510411545015553118622363955044358353882500535397864135846514126842686417256379480329494966078473240686422357131715017998276221815381534175815491653054893550045086582686307727984466397122943831824078704908279220353572414528974404628079628964612588042762400943584312602813328477360756229215714421383979083777389051332620040297115458681747954120324232689085430157635171263373846952999809075055243387257893940501650791484098032150122460272941444063723518159889125382602557128704353419862403359920888330837144501202577719941739194095023262315383977300940240242398469443600897919801237263339324355952166296128187003623626119816658484227824429896816533483620068501427569745663878513576175192308232710639822214565984705854953565892581036736982153816438388685612934672458520435032341716868553475145311891081693140215730245547431028699621001206431191879324394742787943095638446448820280867142901470744964522233222355822311788763569176079808431530931290328480381806756168028505203169779064311197072998309788111269309602957832198739903736900024867671626514247438721776058454764268538653052444103863371754051739666372472023255615105368396723837622755536465916163148906050336859612127069236132473813070235580255871822407377312995502863479725215685397722704115339909451182873844904461270475185885822007046228747221783881050983564024884678618344513138689271403861089067973767024329412454278154762412851720040053445673364622552286970545368430871571472933102657073825180666492387089218098518573363386397478425125267478090531981650208679839758904955878694766457680706829169835235152513250024022400552786165353120723973066066867707456516430999930667247278270882378985381526717480931543769583795817617463062695701384453586898878819413441914971679163290177761875694731232618283554488212761600235132105983528345642150621120377982019963578302597715756877034372461494247111870078198356838541378044680308610723267078924789704315816454502898931221748520490413857518400383965262450440978541775659780634618560107320553910004366452200197198076650347897876164779361278449139220668055107619051272412192243900021673660649069449489275983224024446887307823105930756332227856190994351386492119834628103737089828620016622739777193763616757885787923376575587512704006258866075535398867580825680875970497901846315912671244453330871342453635231065362072449117217917807540750204933769594430201114627812714032671246383219162933355935526577087515072831124400622413532558595115407982481339648717129409050174776154467910801959452591814984024818046312923880246437298084025248042017477738752130894094606588419742572930432262921329418698125982554418644717411417175409064528281050078202942341510364253311027502136716510628260015512629043458116579338176815787250528075043001186051629744192717952485485368381292532259376164547795271593832907380598372768821575963367733215333685221859686119490548380245708014956898133166645753324614885553459860873569351207123200703531488095938574818630235088314240378709809520443508961621408175951901133844590905736501037007780087775901328080426296523572419667292869715916115553609950708654921906260393785534651133535157972948458132791654770483174547960778395481833148233338824773730113553219289972363956010676316942392963816354679487811259510536827962692892700674889382101337667047686072751837642319486458411202632212394876011622053359927629909560072349091410347595813505216519363108616847660911580541514555641862648819031782870556686763353360029926139425645173773296542005574654071020938520993530176334444902211972030448705441307311103511296865419556617163683204449151463537686006944140401424592722007199263907076409821566378630069780676200354208996058394943404450491854310429264079660607787655781307135553703072771054931865183282760792492156291532166966998789853499944830245170314085850678547448030609989004198385145721665699911509242093206161685933932509637137499730675623395081729232123852061133245415291469247740897291387939862752573144617679356334776097037590478300863954736472392158278249720055472293570325632073462642706347221962504553855016728639206704922505812685953597533504661945951253024128269104549031504720412437587955953753345013882669949536517022035199482641700427995013867676180724932996776172901096611323519300045263049831789488641944784580582635833297977620283004611393681312991206196915394385051515797080234973244945138773400273489293308857820127798605547656170416621210126781102054056894975993042390502260313283762712335945138730842922225588829694675901435920405875066752600215711979888508106549409588301889707478793883390559849677155475353427657708219433326677233579703827610930590065813648472373220504332331325891411470251123165625501161112148429534538782188582477997139533994660628776859609193686203295644787623793567253300564025347181155022228266935718731367362177601015157808575924862369329621073405205018115696209550245862533020143686790549258014568651089460475054049610880764889959374159447416169914327764159007134929174845627408444216756849323090326349719814135242005712007876828094922586769536085908327397550547097306204068499107814213400044333782890044846009486580894787932059291049769589630198092586044433092542738810552298203405530258267843192178902261908787698597871407964102477526143304833028268409664862652301607761705840949451042887298616707617283515696413173031373305373412818848097992961800820233754438244000729755449988750999888174390529315427645335447297705108545706625973417524632600346632566681509466703539987578603212401280225919676343441955847129358643922913232379243211480995520676967896469357282017998362561479681884950357875279826184966870508497597407218120862534723538643070114720498622013323331126291183261136922593123971333156874224507939192327127712445364805597828963910230188414556704122539757032161363875700179694072917260605066671323311916384404595248398223231991809102404485558555658454670302428923805678885482224973764875652111202988062093348658756753899780675681080662409652486981503623171447400800645111052499165514710190989345018021676363185603137691849161802084322459124562545872069556901286392655213084010882885731859736780275795790448149738505957076565918065295521749143750693922329298146207654720638635365924203526598861004979572328475818313462524497930321379059444419342594966674011935817544866948015934065047551109420508770075841924690282856960025130455738806294102916175067543056162779423410199175161162209959083057331310592749507903614978246003510825335123201577086094891257111023225037665863852166165485218180347056756591302784787829742145715309144643120912157401756916893171242015456621254926934351502530674668356617709159729462294459567776418468069201949568816814899986295607568754343613351890123766085914559980083772794750841890748649279550334862890089267259803909240429228201874925665139535368885972331613002971139634878013769892691923065733170576382721037448864805504729509004456705156720492693756444674102368318650638413561885502198366026868437960548968005458103857305022009559275612662864718513767193791281791006635302257865602213057393133678849115503327319719764110248179610097094484022385836769343737507588839733412720716375263359090693640493492675140376700280377028703969823957208273581441087929829738310878919076656465671667295365546595090506116918544049125162596461060796123082619631740224921998273624172995597051454169108715569715324054639976229547906186794653365155315109358214874873755637626497913982757625736025140028021620508664491742742301781689991610537960627794473030187572567692195803722601907427399826909900878532921328340138585677877329614529912902706205070728686592080648418742367782635726939660705859927845541599016848911329343127488530705545053312267741441709809114183523360968202499902216433029169687944914749802904955522013688432732054813911163724286275670083086209254867579491162802454696888920465225570993429011870094429732568693148294261895811763219164152488937196726876108718805741272137165435085437635652608310079409667935292011855882223522824793423642927034604138219447042279800518204493557296129041048683179502406101811760334392717182758193544596282992619724821645210505195496660950477195474439200718095676572814881705838126604810092690433955279420437539590017589487632611562263966071513685564126616776372181499757684671634830235602597750015623990422136257940062175263598633949156677251271632260216727144537849707370361829004032011223605723141106846093490422723601561079375443014811725368908198674833403725690892722071059125879817280658947330259848964558687495991324740076064152009554004247713104773507932101127197358026473655480497701018908355562183972387196984284973859059551304783005543041300132301989742487946851648998695662692831730037943289550202238860265152656569105329711502656022911928453858079976582696475682778043131158072626676894048884069632112312313230126222302146701922467866245981750475625393322015794386202486783318802305719714798065039663870362430556089167230214381033321099407340850260077323848241625674759136606987972149748602014367796908482673833473934557883530317700364779844824634206217073075367199022584047243183965999651966921282098501744391787443977599190581500541882416173557378499850801643947866175943888967450917627654811354679449940578907111680261351034285412668442731669188677824337506793466881136830267840646159161723322311086709501094388070060846975120235579054286026217037918829793414163006784913000057640884941050423081733242421199012910662836683438171653042068754751196912721129659305085534720380867049956757293060847645469037904183887072310479320929782198872754100175669964694118112025425270734410917202065332758398257449190728352201089044788839860819998908058637476601508941716838190380399692592556448327144741445219619132824578299580953036546022014067973365180611424020186733273111352532339747131378833287597193252778578130840292777699384289138025839613027479499976498179740426014352827319766522076338231689474900957101327597109166430026567319777433496815423717169515040046799917031342748070697171389110369775945719182865442506243593461758542229865505230002167722249133635482248596927734269336691263862402460380526351501021959140690253445387797420889512175984380581200780538729626788789149653560068259396911340048953239955289218536116754246858083790066048413687490420261175690063048645393705688278331776234822655517683280327845255461017678868180913793787688042848144472901640641334217112253201293599016531364323973239312947748954650295593422307142422542568841998861261426695465028569302984614344347820954600086940345023762139462578546534662902541990653285180532576897493846006200668730661640741917600290206826418139630125425785642084522953138763190024734341256929164850325200955489593720576228584567258636344121370256870456727948199111916181708407350429585884108491531296261374275550986939179532190429522955958271995879336093778537833320048053254298721865376083279488688140002583986708091054908250993609605755609829964406727203656982506548986991128156194970959291457506117060077243745178661883661139370986196522297963530296577978153245229063116696461979865742030362853082428019853740818649796303096399443171288790597537804314322803878106660866988466333847360991329397229498094486619596964351136603161981666684317527117487534310021684578679098086317719630082818921412820965728908311992685673549751825446430333348321859976779685525727704505846668074925194618217283729420745626949303581219123469385666862299464058190668264645097692067672588132252035762622957481908948197455188502848237452678711880776214609177297755925832828089210900259936913902623565898716967715716078316906825889887501888231771879302081188930778519429934505140702619267749427923313927194062365764425542966011430592726290449518698260285117324389961198179162174605703500048842068855683454484171230734344112252547688535312279184775386725375947839887929451027263073573633323422116150192294031997892787573644759689206230069023936136568643161001101706687633370778374314313089698371071124572300481566193638863961379120196482414815759508681305713125572878043090527811299812797239416432925542763080740723347557237541292776403297610828320860360513281368054019747880272275119979147221995764876812161610389388097350070981726211856068300708717624918804880347541951682390440922481899891467625253969772271010340052874442328900401562905953134882418482870961876243815801836303174880535918223974016418408086557904219679678950568159866679659669720484717022726391204625366736761935477815055118627152243630733246506629753385559565796653824023329514467372227291097977207359258792219890800296835866139860914118978885742901830349973374252298115726204216450294520543714335533447487665278501515296852101332027308938884702180306396405378795610782010110791102914495895375132725691914501349114135312324568712816813766972775756107331633253937549056670120606783556797952842463616591913340480560776224449169250477942689939983296511076932713452974753794338343596315537179898955238390904830452614074538567189446409402956922416501360962618138076967702699570705659370711631845546670738284229446901988685948653050524433221506354520028482096997713353178646971137293545857062319079640022911818992740543135152825891858085009890388657656441554460778239808093059881713695584529345272847932311793723145930141558572928792131078499153810420780823519223239662254231242171460957015638452592988568190647975973826271613263352332204488189461131386034448668916636038316369231300877516930946632114790818573137938215858761745052671856876153148098652753027590911528413489022640367984535567113902991766547505953280136342101119471916297552780319039494052993512612842382142993290742216899612221787439310013849304991851927146253358822512104479049002110485351749937045596282814369648189011416877639378297814143879099594144465759534621237345184613744346769415869261653184435215466308941859251364070220152072686415442579585842788844813765479042513856724312622270260040717669292651476260911764789277374012478806983237084328512779712436262032930703319919486292683875205609362775205546276279973075086913146439924542916640547265763545179783242798401136948138313466827838221453441819467665202460674871612392709831781986115306113680513682150368149927335017371309048750526780610086044397566723929556908709082697559817900194616962150922419725057971140590618811875162563508525743527464608881324185483435232771993949043671321390953739836040503153178924427519784012124082673791135357131570775815902043465126149137880548415195000320266776799573369526167030173621741340312314867783744830463211847553377225311623077099214724432366373462986243779068456464367402551173934511291555851154913349577758623542891216313627419005499817164150436944378110314591860986583238832259308081664568030443211144582042801297418671483536027083190806310900585708276856807787715674184809687639700218576274061995206093593495609579782259338032416045500183545840893874155424667453624774313843148028771106646622717770199012891138710754996069710362255679954508933021973426947597182167204190387169948048299241181790552468005794643887922198913549980653747655990728334323806184057697598123290782847862502075948805785348712308376660556739494752113942427712150267247706083907132277606832222330700512816695205282741964812530626514202519124827778685564442226673791448236205780290081172554627712480074395349339933947398208299396430128974006692761637817032871571720757683389308180995531523758200378582826331578205407990451068735490339542788508528931590251421265854930484942199302867347905874242587986194621474018618025660657016479717855339189913207110172429007345009420021846320850551434844351208079852794992000850980644718927050959783640235500335169619922506385367876023774025955045475654678236680729450843915189307993841098612737298001436758584830908315745802644382191712090399028202361400667054696067069458810817639501008492234868122446331021420415441854717745799172775436325366540031219633185530796681787418792730487817640190634239591415208964246023857196962236604614887239029059360926722603077731512382758277309229584822270559851256684425421554539318828426720044527782710097871854634534614512630792265183619424832391912757298105785238962343540107136103815237235748844627816828546237717611191354391954498884567590146186526792276536988422134754069173376606894846309871174569640317582345308590161404193980742140541009557913135093908484593710768288804257037627955331890332788280572773188266000138491249581151001347294583361948722075466062872438541024364346247874488789383224921595256838426867140955327804545677910665033660434275267668627250151981143126024246997317948003627133562121323173189959068883246756247808042921056282177905252306834235369721573905640581837457307535405374677264992526400240915281099229966701984724417192307065490008739355635972804076368735462845975729429283069041052676809744393949576849466609674690654486875016078979295511078621821005522373775601453835576551914040187581014011948760546976534808380269139850960398635975359499917892802791857501652740065816589595839977206122057346854628712847392486324465567551736862266314759495556000514495524978051794315178331527704327248818505583374416636413126022436600050713974085956767962256402509298571580460420648645331260235128667172701885813475090766987521595806405067736584370416230574616387051684516912393041153587967765100682528958247284060355779991412337040152047499169405887964686417493166985330867037637591224493299418401418731692073374158758694160321729598051411493251423023052120834316162630293827493018572021479679087039313701006805964763359738680176265696182309950810223654313205909838081353328620355676840293485165816464446934367337632268743816575440172837435851475432289773338527483692228695390716338585183788755875896855769630812743610704665768415350705851856022309131128161899857990131258392470663254017593377092906831311902355180738992750158719941209877852315622889943149601748844149922214636828618562845054278817719958457996010519041935240990265453029105849830332790780307756888910234990967472413429316141096858154805891851459130791716486335267915728545313726515586340232499474547817339651145052597602804548395244655562830489112712462429390679765476610215924404225424263797859821445149958392401235012182726083971512918193919881852214213509566595441034187436214748828693167510741442938153670395649894282856053064404874943628463090021804910726099273397073659861230268894776058857403063996513491972832361347282279901102178716034922466513690533736380175072097003860902715256490973528967361706502816598459579119871541367934192045704220651611995699611547710812826955592804864026280457398287968844841197051503025092816654417045914535102369890718729240081883403914911744864454588651265192786544639318600151377224766416258348484042016595332083736000197294914506787559538320634218555899346349041235137707470093259839556919374457923623346743133945887755571018209321493346797135553130192365383610495764940161051435006730854518970711020634422491804626540526565152883233992186082977259787533955027526953306190632712705477876020812885909802276737922478813123938353980601795786528028817179608635629326264780750816710978143434436521002546094768916289312727359137926166897841932981294351997812065799488855164468190335215380771699296274667341254912805398294818553544972720980190126478524093974572707468275884386645422378602958575507502996023559711184528154850540405036716922061069423682794078017211148231701785730162415238269901796224940869301258595459228218209666402519254460847689731607903160833972285808679235417717635108599580717697372573084953475333318993766932200075106778856625084779343209308731571898366436808848767635205602661151699642990098858163425799979282784279981679685821346059833783201387561239555751313406315339134422262759363302040484403180047044904503430778163168338663105131761646963741521274802394265720269778309377158967503610152120098891995101298257239378917825454270199785032447384112373917789825223053469669337105421766443413225946665112235639724628112927303481042061715955804037138023750047407990284700770590313925529045300563758354133049891940411485575352250890208009812355506645893017456956712486272379646732374168465926642611552894653459528970536192538587390982937111612558888544273595416890711232760770650533598137423103790517401252758477943368623540767933254788924417019868372223528561294867509525465398284565069820960268749878713610108993659724672676743887243314740267055249248371133925030213514415643295290427706213043832329592634159029556077353598540921155821722923753380350048140887361720745434815611724952470321738868836831326254534135341581475029565729638335468927165622080385424030990223730601496320500686954055560288591857241522141371684648893056878980636261860347423089026891236208624343381583742975583455892219949550394764271525012452166921784324709714514218176530362496231083555388540853926967861069604373190250756610829404360704580074604575137896144320993158751666278638673183959637949811483896451429417052315228376709593980943612989104826223393834389054591911666206133610346556488490911280694666224790911679554969308427459969780667679822319693664615619808093337101373879633107317922682470086724691914965016715093339997270613232213823532221997611403567058087605267267530444785218889599630286035189061180959949065416129606116590281666230890807209381547925691639602698196549514936500775199449483699064098398880071876760923995395891944488984541023856512647546035599975600895339241432796563289794504818726965753793241574165253873082746327116756203577604453103421576272345034603306859286051999836287519567267587452160220343393039413706198145372655123999917871438487994650943455093575789259141740666334765451509087824553235868934739568690581791524888665016932628978809964561852904253647217786104912419207482322536786409197602843371001596526659307969588256320126288584294606724409923052550076762356749079820354976393893368846178377337594478017683970334229790625573432972537278744994903936239153883929433328326470622263595838433142453557739651447791299623739703155462920710776837050865990643847019737269201031753812173934234920225384834565253155817065166549065209560558456183048820562123353415827925544800519688860613590118011082236017428221937954402516915164275024475931856812573901059533996140906588071183744869958287533486013218495816078717257216321764215033126913918129520945878140728541621956608249897842622791679499491137827854355963322191121251087001448766821326897227029176039793812043248929546391788954136833745051276169348269581551812198000611284758143350057724012845213391311575870756679571343889928930328902904952728028160249817929881621337521194065558828407388752171857721907588109452952995936971145511538796528497607313289710224506582660124703376534343602219209609006622873055044405603042687580713565388681157786034038143025157806748828656761826431897368684147942723525916656973730681556595356294693102275444300523806262486181616456590849634547578001440374303126319079217776711081131760083782139121644543164378590587162828053607232986658309944965502378673185098719486371492521442876385139363979284458133897154418902474239791366709794757642321489527911644597953196206922761654342151284343415270861462029616040143514711790710142865202039994449426587918162423535154733700572317020527401906112717230038332597684775819726229327358929778709628787153083989458133903169113849057155208800979088432793375621992365067977362519471874832815260941336173165433775661079720698642066704788858239978200290537199085274240937292406743831059844393507567445167747233045108686237172763195592112302077394298778949094811410350438420126675292462058920012536621535105296418627117209566409271121762578899870838729638388506099399517755414669361453238131381793586622904199006356112733932735389327236902760319164141065153103534320413221585147493291301591869765671132546153532615352666225460353563238575652698210785360435407025045633728619789316031603034025409378161255333848084217541177955453092096239028844171980079478353209806585369209075560057122439833161009554319380691341823461750737317456795864134292301573612322278797405577848569020913220295580709157892460300076026110856315250014765333636167969746438863625464388347138180200165529833664601382425737005334680667276121911843248679837191101425770583482772062036904672595179614970511627368113194723451613328669808477423221830613253381012173557245628321750700098924316106690917523383300114141498067583096719244887715902400596796543965312442652830674515741943675483498080762690299835072964009826881527609032111484400288782377024401959688370170095101785069927280979823246650592951671069002575004693159891855208749106235958091509298606368317350213071072997060351341549847569353272886331219496816745711497957335866570778070205772491264765131616935985424573093871586661385260456104238519844406236740615991177090210782503775957964462968503007166931525042863840501832350718767327594456555363461407763568155892667884116901344512847340952256510021860240344453744671232575413060295577424175643018139582536010335805031654968072029304866606679376903909148357961547563279630089782537314646327088800869815481449700306526355156481320086516309717271184305522579347667396449331746624708311028525900025469064418721678401098935101483510633937208469427022544537721039646781401164590835732720497268038578685837955687056515183158596980203615639106515310797874702281673324149909936835589863267082223503716589788570739077430479831296943874344526674143248869775598304544796099406484604140024084704663848617477000045450003025000212336916077325501333205339188276594695557392638800177476908986051435807466900705885086213648224841160139826832069070234359808277054216068367627216591130512319928807401716886431620681701440655211546344809395700819197509636881481085149884932572892322512335704796249012435547103229057588897671787641309997144003026963232930424404387467566631063376492751251847507067334700136721538931274416015718096814937608446390159128291726449769464230338157464943479838548890631406832288231097240372007687419878295309114713836820397998776485823908579969639269172267618528431018022869125016651918825808856370255641690990586072513049316970112852738219376353202651040209375586652087803934204204493955225819200736850838198432257977763753115583318807883438534210562559381817928825685297411106676033642249913267378617992910593560099615273990353693917366872744718677089782089576920992056813202935793584045073818330483151490713325392706113485403558675129610675795548606986441351652094344674570270836796318064414970722094671478791444530763819791245643710309541629713574568651547182971832577301677112861468473666678560794695994238747430437411735365675905943940063106390596833284503847848047983906865619287044823203195996732335567610390507080394247288473155865172081017634739922473408286061536032470572592249427507685186387801488752006965795385552580843762681055406227818375272023653720751605525717452381132390955482193288689918773209087666788336195789112300223458113735989830286876412324365404525121198512801391902562871657889676733224386185743858581836286165559519520905248064160033734010569211592064044910861732647667365153682239532102086946818688320398563424663067454721722260061702385806451665683061519877058000179265899969657257043238378783748211277001751703080576001489976534242200581034116459988975964409397150389858764650590112397931297690487874691528453539219956327328921153681449762320812851894153127027292928349641132702388772174186989473141763695466380818149839974525513643752573031077840042835163453150922123872879727573984709557091017451513565190988459382635201146632518605460724672607041868947172491660351202842666670485260052312975848064078337218072858449345552177488495007261465516887517444154030913176663650658002850092130300617744259780257629596221133720334665309550282464469144782441361654043993998212354874670949330535271236125360535394212809911524324770875485268531212740592313513466756608787731233909898673773289043922703879641542030875826471265138084421226056511546398472627703016773961761704633475751466323788263740081779365048990530260301824654906128146486864653122883012550236250528054994248182164443695679749587602804205313298299386472976884237283447227606205639769311112583739898809997889473717510731375920835077348570508682037445772147998770744358328878554446456208036524018436115436621050986096025549286013441894421224068435595681252536575385934750788567900808239590982086828034687512989013419251135789513522464243071810689281093107308307654932583173891271665187925228944976637688096197340901535819997796884225189596601995000240065267464629273992698883242611903868960033111008945289928490849123516080714322672509209091158037007890152385820649604479734032397526163594692780366919561460238776343344494387129449975195478544758538754902808823812554629393738342281455400861957585761004241779386811693609192767728856554040525045269131533947647430690365194234162700071157936157080455139409767461462314265702998969041193915710991461656991934931032418529345586426038494438841548674480378683813545294340228563495436904428426681178515120985773158267034944709950285215834583552537570207096032964044974152741932639473081504905280620404981824171316941522211393749387440987867160303859289753249162238524739870741847089179108979912449141298636733058755415906592931294852163780126173995370480060860185004095685977481729242640094699065838398669601890787063453831751362366416021089789573298855591440966315673464652995270750465960697439070725297406107219554824136531058666783044066581349675544467621381559864658937668222236577982406206322972197408403674709146955997187425810827099927378251168901250124566612874666605064479804712349922655542204531384974914714004253708931347954785144940422991809624665063390164976330802086580411486140060012207716913334927836967419457745372124690146730109538370470638918076515926747602637613745943018846376008996143910962687324152225920592475565717633091091651683802877756114400264765105964476091533937821603235916559558612902218302708644544600554467960850001027042245198727882883960255020333095384555600267224623490951619821350359671319774575450237370171990302366947280415861854262093256321448015849642661168746666489495063592006220839962886418367217118613651805263182209551392733829952990562032929342391505736394110145173626037324454588047725093072673816266783905176993599884024983004203046842422158108857812945418447878099705185310836191939724388446016361542523297596423935376089884370055206138278925654160635349035350777277063585291374965429412927761301869834801647814896852635342015687713175252883875650016134047382618770324937067991072394168841820801115576389590873375064261565954718721906941718106050434524088996442699549815076197499069763130337845289121844538732034318612604830392349543196478906317726880601326627925260483577848320264782220208237867670931397028713971083177335662820811255023183065940835824177797921008964928912533201613785056095437471383941558207057586171111829841314482189396860913719867888677554206606737810982141309208764834959509462019134497642486072236872292187173982629231813473585134145838066616375626710457251790665574819777096195318574558234736954284545914315352307007908610877941669157397304307095202061236767254018323293951881043613337795351930055152946351204280423338710626727797437903134594010981360165480146995138604704755807357684408066921263060615959964441598059757580774515718995712530197487858283133109406547230273954093222887018538787551146710141903531070629442300717883505851523640284191041712946521078106713838066772181273932168129998936768674102263053703165480873585673001436367520028552000260668443900086315265835539705391748771394752509320543025104795462635613846554929276886738790558350474956284210339164025257996325479838916868950176192680162813470559485647688095293387063861569241120580185488801942922534720926347017139327692131736056993791065274391703213889525779584760864052906157604471536509972237415021135410811504804805475967406745917539709394900167078303287836349379946263048497726668171448278968606754239826398106572053411368301905356055875472632325408310824616708049609148674408927496639982521131370399459984089773723936729989036995953945340728198296363710047954104071890678697906137703832398282625451829167684854957107510874625949263752472555981072168121447760162561081526400372695283166895582735450774486557729060288237810517084726829897396543061094748400870671241020785788152692595161162375754015478966680290883640859516844488226153658688016756383427507039994118463773402111234270919487645923792885937635778220696881412118841732901547272059368558268780012009598406643613900810850352736999405969273301134647419618774083981038111805537371480488251684103643617061768228161394283503099080246656523278675779736838066975319333037435926361976043549544096912435864751099539066654001645669015934111776109162562293941546603611369939636641446974292644058719393716723363345065011530875035329453172667500561306668220102715479127350942540635975363632728353376763666839571226483568887543871697180372232771857310320598778771549774063061906010699881322341543349011371645135906828610641925887540322813396052025373994873343752503139184588582248069879261777527831520746084920046534121466651984603493098484538360158280890149946727277969986861896758547938452672081520031763346861638169171702381207044056516127722814467036283348165121560448538341174658607663503726978502458369148366761446645701085047189814465318467373691739468133066403277496364328760320083610470242039921479936011219232005144802801149708266409003417242311329419172023336309090771230192349505966511135090911959971611566984650610849749273219697166457354339848447212225993494422662451284394829647295547075724212240742071339139778409185875310803933183373575581072594489907819347883687177555848217607448199697640006123100488594641960157292631974054174850154396691995192133107827989021752834470047627034733868994754142317225734930285271379899725464280274549993819578092387114365064376865270280831315763683708397737066531778830855611186912857127408068587873687343183269582780408077598953735703721684593825097744056991490413465196183486774031680138609646511436562341754548738629265814263814194093439527995316178260110473995554780253585186701597050617841965651093397641577086152976455034105943442805615310246190851738717346913917360997433522047033101189939724980524759884998443639111444398238722818820344792025392818860956711905994000931288539377906127537384660350651044150302707611584050618885851076848091526786156396126330183470062736765825260385265573788358757602418632492208974309133093927552388104132616562166939591563605008478503839993975753084068147228871374816371192573425656414550926037819162852025143731925851365260801585088538556465873494896992530653348285374650954531052551413813573143283105843389901264439735237495062043871518052088015485620161668349849872046341642580693173638392038808614022325538587391112398723709002264190894292090546671905700973718995731263571464274742090627975386539590902894604402767250299019156799390435753326235889271184041505177156593813889712760041710347787786224516727354122352777356252992904259282888630986848578268464013609780264386437606188089544095904815793384907270621076730149848083848854238261178614773618587050403699096682441777422314289807352712371488414639063064131445545167768471951760184130342087209336811410015163654038312773808190872840006457614561070424051583880158690701436399576346689519412129331683736216809952520776485357792890835546344464764026292899536337155197823241363235291690040076348598520265432807833778051122639716128628437904491979702775937182334630774149868758999899927288119356418418606202707365632218005432098542723603613415226202966727209413968250807310462370732742261207354575902293630692643694616788352304511814728725923333108984994219290022589212043751633782165346671567917221416385271880537255234882769224106054697679828262521260586768500143939192962252726656907253460672178004420727767146861671855484960529219812380964796253429362897577442146088719224390820983861495151591767702254231668728716580353711873297331843083297035085148759858790639127660270212433579605772224254130525463011327643465650116961989188338817835729589772274572956078963315649373488116287520014632835096341983084313036167179420041182234461984197214615310456247089349110089340388069669230005740149697551098257983582374251201141616929981976821989354492321359216321364898373553300738003875658307021587439112978117974188650388526746500566387696023714841677486991288435846066329079307425029622758310053363769701577270474271461708432884176076731531053176056639390311235263388014952860810338450523312910908498794047138217511026316196883147449104030844700214947483373644635039444732038910801941974464541123528142979676607614593636973671139184614663219685483900669289776461970783596239169319940627825808325994206503961710041699238630739983271762638044158517769000629253707388252094532434265433788197171312979886618600224120156068454896779406780401912742023176925558771383513289269127462361704457689534309783306309874906448296620573458582160808813917281518261159273202113511712624374700345132525380512390863747266738398412718010044512994039700485758965435128544047438735233457222210364633260844321856584381621994749117283824122898758200821632383331210962864832206475030753530089746078949748517767632152414233574704203726666927674338112416968763004548621672027030008416278534957976456299556430294311341179954139867136974199038518922839220002896438967451756711510813559716014525580769294229502723708534748283079070871920024946902131661290371786641208903477794021917107793642365157061481798260200079555965415922923126887149907635283261080362635093509542797155038822557373700595467238448361618045219515711794136914414676496098218668745519778531645398579298803140482613009444207009927223186407353246143888146420938581167447890823309781496813063747963026274618078268940654049591177155984804139530307249889709928574128976276198086838705815154974940263709325967849324959674656051116032440565434202469457554300187833109748741999806025384073395389558861202472806855557500794956707235233879719036439772942785412699036417239189574399101069477851191781261301319292465910752974659559664337549983082913178749745346702300672528950049129497353863221352342624839095551756577072403218590016474207010810547330184459907503757702149662245060019401442812880549260557098830500635549540631953465861302963231903959218009120854176510022981545622003501447778301608256526631855958519128766599058245839608146096097664058528980223185070314437085848713724733558355503522568395122217278380725691717418393480143248396437730696143006936842476735243960358057232291575639011030405631602110637447369354823836468841659505722573460734069485323253346225437370203410030201693524651401579390118194262016987015125586682990721186587516579525929477625342340484270145324499735619423534017277289177609515209905255219542829501109918328527049398320926565556016604437493328637053749688738604315483908261349212447242755206566958727297297116362316074914483971426168129974656093185479129326654451015844191273059663256850899269667283031015027609220004711086799549329095163120805997475945573638409703469270581102251423526260638045493888786828970326485487689858677956645973586897546436271780357324782525666556112801755124739569556430178141499369508052522053354205035378108905345450666304808925292985066733853663140645297040495469350369271449666867058657433237426002442694987558453412555873548140147159049951687149583036573285776146910066437832566467612662782154272590262347074905761425786724118919106683444462284843247323683062023936358571433590510664600560145217971539442778828156941618519161097132770564169372686040744869814355630710694037632478936480208844117613026343491537034595792173236809960018420571812017491020704110285588507425370650742577085115819855514870716126964642472335962170990889877496076194674488490543439103149283210375940336875071541636035750131803952756912969038965850984225504404746040142877831902148924395097406290326183367140554633796889668943312665653951282745280615228375191025969745134821998849520104072504299073932563470901631781699786187443582636223981854075751915579006130378962433790357537866327792018114831397834055564806360375381588724762863314760795495038287454198724582054730361102241528176897736315868879534485852584674311492839143876734995567967338365625095001954393146827983418832683888906035475906117080439133676469566830911247524233834707546752003623996428874086142439377813013252904805770209572441586283000940793568721056486130674090756376440054184369407583493906494275111244533433648058956883283267683844370474205686558004915972032593990290949266680515257819822414921273011856454682880561149450198336168956389915523758479604226685454190905832792241121903949720955228521873360959676855787627752008755901540987451832440453771927990819106044099895191575936354236679140174772062508460016625107181782525217099670088784024631067858795857968198529887154376629694067072383475658920373361093243451942640756344553289043835712855512739886325183622711223000513174406684078950886279927477903884393062080037394566061399099341278744525442368870785641633660024556963059029106912777295799879437260647262269151517754530983380668889030595325931296360921311344994263947422094338349024204223446419430722973657517802934460549436654887659203289836622918196764782388013272531304155097162626315638189692890982462680378442928569188993350190842880775044468056458235721614308177334104985508995178145316927490622030174511857273833201807569914802542231071077527928418250850788396207081384172474999174245104746943208437439916973094823637507394261248370493053013633190647001684429353812378403456702278535699443544093301081103174827431029654472049488284620024690801011562333889013511754293491977024658706039049024993334508356925784472540683828973920916577338321427691134125164639247232670264032538087786531002046948019738280050800093080628192520928820212118908593025645257620013947934327390631735571162904993509833574212197405232431496703226643848817415281173613194049076812441512451395773304396096360958351248022210674329194566253576415165056595422268963810536786329607434496456102203814318555985280610178412804117432334772429409870691009605051806849355704064127142508268149838617617189869739346867778203056778562747520691607611803258495567030559976417925942704875393042446555531732870092525303772089669043570511680997833239824931481318202383985070407183147339704932522904006025077759343794712420471192369100204316250612318935959572311513906619060912839766991652112710603544155320635065157497803176072665124751149279582596073657631219449092282485045065177075535301954763959724127093306819426254006735512060989632164246840906861442331559560553109852659838229474726695832201975318176015797841010319719441753942397856555432281391114752873483494269623949612529547750258922190333982320756644652070030651803102045949649796456355656338298825974374771745177147929535065412564334893259029765048341781055049283009615678397632061075879465172150057968613333824407380772210864950925190952134664758465646548203673230769589707955618946048487867903568771796845691057265813134133784506072031747474434851895130031806876165355115881207538463394202100692752265573239246850408122956261729125466426992341787228108197332853987424328952331270537769224608054901294748345973189112227510983560815742221346068366861564912516442696475189383487760304578525740634792601282268376983066545397856110283055208956197131561682512428416059121089915348487072055449444999868205811340889730275903324535279890922782871783035087841590246026346470181270577609064140802659654097603373682488766627445046332524683049032419624593117850247180738546418463487236879771714242388502056515079482357798870496185284483758146690318768534723138979153851779866105539305305077937745658992952575171620938373036868481104531948780538203709956567496423286628726406827536637949860279157544945799334395063026131429237571528768105254749588537566966613474444363929015827872188862648524221801566345797807507525472980945878534477912976956235542146257876208050651162665440336957635011510451612462155910273549322765936607258389192459747404809607439376887714145376783789019971776466563797951468208962135880772980230543396804920454239015203861326023301174973925949455676307458759572632687286444160438038548916508532049931134396019922529484643526653711393428205456463049865600584416749825814489741894270192869805000275789528231091326336405904119564425032779740951988117672640797680041674246210191813292295719689195013290847198781836469987594631253713622962546210566506109186488950936162071683715377977921468483330010816210598715044592401782178875109545049023437977188932667928055225979068939476537885414580869699873733559344680203454405930370385747526858197190210331295731409807047547762717868421159820875655941974787828092934356216299164998509895831030150950822303060351387308366213723658602777382246278059803766377133607192018617996378525640573286974983205994831380861649436413289837203463308706361775850849840764891546058308494442293186958054480736381189162422858092464479740605458370859895904549082021435989956733522899333603353880441571949774615911114398880359192257996365932231067993767864404834589691194987778242704339559606847266288476924669212358744611206465871483215515198097814923389618447019730721782805690335641504468093696561560692604485888146402285562006252875863851406960231252455258981280803172534870525369971914347675938087730829750221259518963888662075015525647189339652980283995919484434699018150622075817487499604277535316922330811338823954265889026734781481356819848532592532688322378551413913892575851415674676263044378779049585671619255630501849060058574834375796460617692728342411386507846513003730217943871815513813116702247243251560721407239511641809407185480955696185904908253900665468744097193730623917975876523196862781616225055490114140465718372935557616333428329765684505504679370294773420732916348436689142236814094460503055205652744913516335696116872204956112980883958685824651675448469034007782084194375751782337209957449822038380263096426093685747574327917569929743296505429930127444909562225757084579486785523676984606754081055008302389157706382501812271838039482762892609837417458812784343209882041323954174260599781859952421472184158826515354006656664023600040304252355940605747878504593470217449133582225001319776231508113810022792762206768937149678306113691769672735610916406749213115405528654202764135360872523316316123334623568398048027965690545165541320619494349066367576753888338819441565258768095168832713180486570105443888801783919211942898391847486762959834581403254034672912858684946840715957088457423517255657616590925670637154728961038683124688804096672400059359144050792851458505959234591646246195539030717028300271551072279586033968833866224508805625779028744320768571319616944079654831796846760064026414087494183168313383561535992836800707235272592012790375765549859858826740955378161862244072729931887379072913864497308714577648812675901684195543868781720312077636887305036765133412789927612771036784112500610865734784563629859327035474798252991461073636308208936814323531787048815793057078551232054155611756084435151569203064665172447988706781110386861400413049370184027525975137847300613033427627255797460283352670378092305884562386491787421084332971640619193105671080136391426236709455097166480372936135297815641336031631187619871954365706298993183392991906134427579892591027664231266535260001532390013396962323884857354878695324421454815152393298186889598393628961423906913509392257217987276954089012114552782726731710982711724648043443004967658010919562010967297651413175647965774820799868221023148971916697875526305515984930694198890240945329600517811979234232027144615087774120529431252190507505233810800719458257024969698913007554314042726594631810590669011633460439573621744240542722989575352334852698651493715335774735761590463814839949898262488736007137732663734945002454915371130067602577362146369364247141578452663240396757558743097801973332224335269941590884614554501955588001031188919425413117690969964124982593249656193887449271652744347957074409918070325160574126630983346674943612660970650504613336648778989480117996634880527597627798063774138406679856835655554244770734641335961043917136566354118962352434204135989929025251313740449909318806880298510341332070405692120087801144014197688110831578014825041634047291630865231396867992076579123468049183256148906927960368073716280526808567976168182846407025328321891447980115336486832314625050368952150997551767696340740871223956184490326749760321340988060971176408488899394982246872315826689636532760612474235211570602208398034478683981584626961916196406411803368826630778719464595181136598320730484351550353900788428046617050474299617344096114673809877183705323261207594461463545829522539877254608368318006887627366506906456594752451610979398740628342885689936730822511977519211716078649043730623182099375765411872324053852740053960879690107682105641243377042334772938594799432218529839031646689810387006445929417017991797896086009286870125662736549774870789696863371856557216264896132511793671244734471659001919886767330325816575639591155505535558266985019194477639857774983235910368033165486807959686569944676595254624866798903606592340859704763472640155187223210909681110060175123080437274904214040503918568671716262573567264553211137607403062502749474335485374599004548351130716135037076352104245894182991203138388039487982954449858535543846526059360251112204282862725874467857894481371528656393456721842518666782124723576020722849310171339114038700830999032192900862048120997815816700477977100891231852108774004374010114915326018325060710069624077084926538104245578854963236365444334653692540929636261120409356488550765823558438102405844424950740292977729897559887212947272178378022822226233073128418264786377916361604876486526279277470825841382906851833148939955211992911681048139078354319543016433723454192372998695096163747618883306760341116963033270978429577205654881232397189740498548420258877895954260209713262980109528238560124311352885603189625888877505496981125547872394595083780645966348443081841126535150053236343266805374805714848378618618973612223272705956963262604211306459155812828716826698384882437374652202873113290646544063999143713009807512932863448814706391532285058870541221713645235694658500540859045469484298791565348053797174999774542110755707402966735297740051809160192176240573627104018541328135982620951701175380566838121895444955867583822834428826618870181171014251067352287796119700744413249349396688002100580622254120063253090920460220257007688743516408955128203257474013472226549246289223636321175768681107823271751713361537038290180880704567072900267671926646121160071888527691074448522533892088864700555543461194331043151236840626168111205534106761529249625251280765792805022003909213462428386757873009709719220621067893151456741830986933707194144107014857816603897577446336169262282556559482963845129863679587245726987448271045437475407590598650117992043748268964015171487418398050517386673620860300193176489881218092211610086300748980550807318768797671670322665408727482502635078967456788696304824048535807939215382953137624492491105376055843074846963511719717641629809162005534179279745702867901267052876476773375507304626805585470131609853343206938980838816053789203876246925668685633167365197781079464184802877108349912104733843694840823310866521092343472187078660591417142329616780547083651671873982037283379492003257771391723288387425026111417834558699371430038072858952521155578674238070848324992799303270222079973240583097207645628579353622344026396331737477615494283351166896005467489817657111162582380340860689091959975822849764123809369320407363970865658864692777514755093975137381476351396216718952348132627278409596678017331898230712839312321457763240709043691414389753423499013864979309306269283303943523980017507911775278979530987612423133332959724133826967076732772089346123757778334426947499885208510892252959649276969047830917912495540153730488239467962599746346165855848566356873654171431156008494379699773475232707496182030917768588154297396706636489683670512072881242041880284097672340552899429878650742720220006031330575746887039848668687525074408726816823764472992259129299967215771952566800326833808056020776200997883467220798207690240980807312800808069140084069082518125694825821648732415919090136107695208433459163897813791151922757853209882938026934029953942896213175143586430631735782062983335058768262152903558726674852719546734365236341879624231471844585048536932631337514890289461127703915032884317232176297234407038292743811113573656306989103083813568463028878230136967502405169605965335265517433041351320375849627568771771559257095211874411480722653871236811785926031613266567097525761457870469447107834439501107120377334802888218311127712376498677990774461906507684676630410293868368122523592272676462643105396900013786639604414475103497299566748315218779500169584347944372379484783193734174544095874262291775818041789197154759368556018942584566220720404986866090779195284718200235884587747225187432158231468530767057245265421681368406179295007367737198239165251550169904921973952041060384398693824142930951493359009086843101942874876160285564833855621725937624505730612198432844719395640621283595544424309754904836850203041208456647478201165622128322657643691432625040645426167540041072638484152719987545626692970348857063934011696968757085195632572175384892106440277252233293528484826488438676373188833388007622075646016339963219403779045007437839585495536357939119436637667607091791978233247154386304158793093534179417311320939395325189614116954951029197606876223489899488937603684469779903352919205334803199090310355429465201744702150196888272586419307788071210807907312837937161510727693356953128728730492652216672239903768608569068971048105622252976764748119634930562277559942620560009168883543345382382383994572877365955123081249178371020434092843591704037768692052353384012184484255538504057430130524084734611880709259479786634924660099854325145201487790511711046820762038715090034549268611644795511028926771584698496998213877182250530463460385964617881824272082455961928748973438418095201061052404468631353153869037305477561824343522700604183826331767459683651302721472733200211426502127443355512471427773184491579105485400731249118410136856905285003164861391870555057344235278897173281854238229980699435283556175055883334312844128457665154089024487909560197097955531640540687892062123232871385479775659703265755472108657241571248764912378973400507919388168937652192942877277501270594368990621999556415217651144854712107074652212102460180087937610582350838391528046955998266957508195537967885229498371372930402470959322100083365376141798750134968093427424008155876512979695413954206783631546525384206652450483323951315733299657676079233021139296147018428889845417706795812334798340735129216287929383032820048707017725008225707333711463292311765248756846503121307809302813319916354365109130633561482962430968277512192909683781788955094766588556659978364031463288935732351620684374545481485365001498324816081031788201793020023741222405974628785325322989658317335789317916797996631289387939846548471304736759529298849095965289679859184533163955200268263747080709288512437337027846356489483114615945807427871250260562785048755807945996825321760451378604448614800367886379466768418816962548065247791945341916827072527515381093502910457855778890834314481387442527227562209186182127034890281353558390470869094627075886506445550375837970599410811601337119793211158012314081628553749184061412781413171521310731082392836732001649788806522436196931219733347891520079857618184440292547358302357294493116994641750573819473013692653832491398655957878247466283485508807154630729799924083571314013549062991154728892505499779969861800485732321337651292882579630345060259299098718068845900593972033019902463985356152308176342768327497959819473650754006682223935651100746551601808612483093286738074323100687276999947176433627673319489770186424275627356078008527287879599717508524019729107691683515925056619689661403459202499921940131517109056095288971554011606404229101056706014376524631819507971329914525735854283905239444021359056504931452727257411418722506579070520546781402327934044491569682621132308599309300183427746383248525875275394324338967089129369223128280177552636029479141584627749935402130075823431814588838671893917214706889572502373713598352360982943337522046489535026850389786862588960152621385348201047158041396867032981922516245567996985040736568179006591712294260710052516612199901425964707003031894229260057878112810989815223702646948037688693097484165186699143690116544794991424173789712495716759982345657448181092232683744243231071499867940249180453319179621852509875451524768330637223893345411146442788440669715710183058859991871626891793849530060874883653793528030936226403946169655072980235058552892179220271775758379391397540785547238046072666129555569034935756156606262356693648254741445559286130011275221661443259194119144929512935123170044944560002820596955456626616839432406415217039201801656331281606380416269685800908208361728936086397474323885147257653993676938858964425497825301444411174824062784808358313600539125293605653608742572043916556475568273602413437342913091403884409982533671399073915767368567650439506349475703063720806383314429164372064662311056647392719185509575016198476849391020183665658393116215320412011172763067241833817439477464518415980070590223081462624353668429715682149004155960173929033006976986226901404209136126506743314911933025718377734673634714571283808051663145664883474126530240170272918600790126843517258031901716660747784737503725363842043222845848242856594145571065835694411348693716264371264917782398781702465667781316339435607911742745918228812359705495311300291316260891923152708392289877171218954299415993087221333811120103879348926119423495169803107903735271153146026378199662868992617392811637042402578596522720173192895712530997880344710554599579387542162127924164969196458425276847606715261906943826751484830418110116879270621719723559321463066396700194886645449990277906330132202249976839160788717370509250344281828561456693171882650367042296633659552999208412252879835269240272905853173958328650612575021348731567418699774083990824196653316651275859672308666822934103964785029168710535092423987401324118815932094687851268714946753113218857846704885268693447245917478586258004770485143040971611515875840356916155346576435079993661587019046370197601148965932055325455733273979897842665152537673356378944055737699023321552081355996839617105343795446438446026588167710532570278824801173129658814656639493400480700563448748613251067599808983354861500822508641347188856118920921903330874887564972094115025004533065593555825812467599077423686433671195297647428554033585996879453712738968799108124567744404780513537298357627794625562017644036443364457688567705210760002102391155311965095740437335901455318179540440263312558472151256195244821167956532814823376604374799056860236919338915841209190610820597080944491593630471369285048952921756749001258844317680715344502169332747185100755201508779255094773551965661191530696700921533172451240528774882832933213147762184487557440358483896771749956620436618497334459340438621353338579560133340426285346879329397764984819726426232242322982478439938482497903019892374156138771526150165906626192111661322315969758475069564954174836025803934605932086274987633786609762274992969759579437386952472977784743474585675776463061501719579857605455966788969558051088384240217565379799791426455823003374358894424407990695307659139995553450565495062089448068765575724550474336011395744101238512259733621017748661568504264143195257804923040136144334108534115639994036712339318981297172727768601418495132214101103578834984938924008672535946127379065912375353128648881763732252437913718554670941527456369362797545319843153481329467013476108198006222695964080330734531454684101417527117251852107996030979214484380001887992075611169633771498831594723697235975537585711846095548061685810388376167900703471950168869034221717963925385108766341662670796348779968140631071117213147076752050914298127489423427418356582442405279422508274283678932101042517456878742422935340232245950885242818188455291731425277171627228038405293541357218656740835692653414066632855239973952712243602007357037960792640403877283545051609163069407978453037002443383405793706247693816841908978130277482437916535684130179314603386440075386110416404531274392460265934824659672776630232815520272717691136238528482709408083139929183612979364415060334243157000021122134349429790755678967489720939067970596499016248528212691002229527264205200839041985059600658816451381493959981790863714000609544883580841518967331717371460380351539165600392541777019924026267645763474286027136149836319747117942108260176645892187708179697693958902993146411733909065751758350650664380676890064002624721930263357137706967089209938547760313354463640962715574905650080755131862213661654168045174659774797669071612641720302993590375674018270581389310318077055974911997723865908247459300088757415856759163725544884800737993012537624830570543202500334472234636995579807947291032830589286020412954159684008493904050973278911325365730954757093180001156212428116277265934642571632473612524579325672701446799544122084160622648269048956952171651564209728725786993543453134136035090099856375028128371753843003604038160846918640664864588129714954224328097666841005264157139695804224136302160062164305725195551406133966013782251168299827029190038321400169263007230404018703303948440199961880119956569167566959364559076115479288790885416710832494440516107492376170757120554613511561753167118429589038278674047808450413739439044842265479762746668812536529254261912134751366006230490420054693969741158042683162787458344050490073780071980394715891355765043363385319761068295317756274828184939509312157632218457467932493288877167777874017929787304797163432567310163662798439181319525348334879446723820637905970238958236171546341203821553655900314589858028496406651214992910609021582569323550982360124409521291357325951410644491035643748747470418754344431201044524817948206564235502257806461327436583756051883721258381786779637952932534382112326339908000928137381632865606293022829695654909306161127409521601690895873177336807680856539122119079049391511118134972009672440545375274295715893117521121225479441625117390076398022857688735585509978948404601449482017613345645017993900798425232484000910193853519677608292219323203572629997250853895993128548791126965681945132523565222666357256696407746073917611067167512137325337469018935113924734498714607452854394266228355165048515632922769801360799352918991419367487236523138321906485613574817521254911580213398386368206337834709686971470311203157847265402082964721432162226765287326763243588684747645106509278121774620619487894137995000711834867612003495227199277822215087646229279036081222538805117315832029960962549139094884026853019217482145650623886412313905592031581840149753828876727157629001098304607610474253246514531426023396082421305817039250575993048712958848689815859658789825767529718707134335249060613323256202392792570657774798610963254341243702031688545356536514679632309041495149414777148639072988088105082344262062097178621823023201648569562458110633567089063343793739531817138060640817781423496326002575612200934675671457841328008794651723026885078551257941308022541575961336864707621433869443611631572493890058203680875287138901318595134619905792558612115027119656065131694284413365077377644371250489897471816269052743131199295907648924186479804878291473090237340827436949381071460648525569345583678653628467474493656657082187929933488195339750209237779441028133447371110501789385100062940747190479187184482073723932242280197128313039375934780790440390843793905496881138471125905200413497122833782549724541433236523021694155328839976009022606783425023977557280982727315796524918619702171836131592573008383212228416196542298232924732755880094774489861139405395497206898737099643074951692730042046044626644560921451773624971946964749948987896776743367484887248573831679119752827243103562991304943895488222732715121560955487689886841182707723847787011833095324895666074345785380630974173347657388260689383433057416080798149773797840755483403671342655660734128255346615850063880930602263457314136320614497044880624456242539160115662522138065795403782706738080233139248402956538115624771480304649511435978609668019606845956527689657857428569693977298967244337414776581874015477911429565875670685963575565427225742358465388335976587502623391570943363382127875097493241701135920565422086792620892612312188331659943357819422892799455427506277566631175781040849723153625112525587440633274580895939568599600727249733438795461748120057794796994489477185591253292242653281664213224412046958028513141882102259005066214101737388005668683529141991515604724056258626638028886886883441688989855723631759080648963047789921598564567667321776974915886688382930089656188270763233076177134175169270374018267861946781647314166699613794589845579254822639832364596803447734310224803711339299245688527235532731669908377257432700405598690701068033733611151246425384743244390028146140693632297551323187972980284119025095199351942340480087244344475113881581750515927831140327440141271382729406128213470636586495370016546705164100016689679304993420406902277530252337880271384939376576353682695097750193677315586009389019899822221277676517536239258818321431460678628266374338963192380958594623089372118609429532714499199731719146161803842226788657244476108557734243859619661371693034292750355629499187444957169184439125064909692035268344174377924272603172981596305492389176922620715243706723892302515787364110487865508230361056699333299501250288559850736371041306250514806378857159829738589012310879666747265757665943067308615663920915414606123420311743719834653236304271791559769527366950172803536452485997846719057561504900544023633257015054562092913722213810770693999155682165734882416682393824548002093339801020432951268029025699427125233105180726655999926982460975912867763091057391368492641731707207748572382304361764445064955116614228980342532017735890244298788376564529137109474102236235168288238801930359082923927261721284894952063315034584889390968861938533680799909222309010418639104879771235053410539620486686330867964989528226843188178799640035404524924534465272662592374735727465014949146599761585178530253637005084203227006668695630551535789806032848852610751694412845017146807585821235965895812690307414388989723555874494546587436411349714164657739030602746409532659331927430218961624205149243311082069522531374376442740517990729175697970076429552828513784117560564577429528713869660858450332719918208717199594412621814117625331846154180603128551817000525212895625425384297986761337010211859625875562193304248346113201957192551412040326140351418663083900258745490556319336096585693493545796336830390724364005068522324946305147606525676381875897249200172264885831773539900379991214402632686665094493603254564958395050957076892649833324314971437917603432178251301678440029508935377268751079078747256798032686789108670582543100859529189216869493034112724123485363213990074521058783959957539109777021372820534945948648041320560626528745635325541672138947317752315638609777669010864196285358739650989367121212613531217740619721019043070256613363514967103034441957755701230168931443567267320090432498622217412670940216835464752781828955488437159044208541139440986258972898767773410412435044107278199968064508219709717504868180654987128258354299781500987310823795402746565701751511887284004926638632786659138013756186827198062313019046597249526812944234581457355462082204533922254567937657124285591097914973629531396592244534156022753378794806642335257794938908924017300546540174687476131405737819988614425521106486647329517186414865147696817116887719424828236514370729669919482796096142478855797734274872177619083885767835392888402674976653623964815128727243900486772530861112829952174478715463060382513917229960271400290316688487976507741898595446409911127147445542580169231565224968185074429507705424650693014521892289930612835499107173817757262458330480555765336313276277989280042848650314528542360569182245488981177299365979252434727326070337948398084120175110286270647797172288893079234286109698235112352012983963626616005637807064779178169686813706144180359978559684948046701963026811679137068028563067834410087302570841654468076806949554252824116503397711520589035424428633593982525294725484924409846319417698845080835073886957944393368519571971141136879624353821773006779991704694701280291215565234236056445682106700260525899137184285686127221095087455270461845609359254692681208549366783656599420640411047223369170287618677109520520001424707261819560256599539386513515968992092971068758038603789624918606767885164020139085282207608632518969937136003041166823405510448247790216125097736675696177156692129881805313792544842730704134847729937176308687424899140222367309274137278746107587751302985690774075818885511565681352941971482460258461805566679472224310632282077664519926947573930406605969145114055324183924636072148949049787975769265064113703066059364108538815144642387091980677981964234278030397677145188948006421113741457753301984697922243849850781830677111503154171112512398951793281824222666130169407439590360171632497166960468936754109405245907137048545531683004797021675973269245938142706002843429026242265749521917416946815231922954152665931408419516088879248765118188789867325959760601657495618329753678970899921384229676427413919957772867879840367321323553449115248036920900179098398506789807030111013271323538625678376257290611135626234371322771752004659547232829701412359189265938268488729038858386749688263550865008337135224447790794330871837973629723878213891422163646175999383640263591446299930011333119091576678526713678828961146313361064725511375324340483625950655540787614155251473395061041848070933218953101525599895432551516918132879434528053984027279869078592120861849546486444832186691995756910494576644071103626387202052434264138429272031585615946092106565161848532253278158758501530038000768128810708686504415567644045028842746228255819076261534961570785924871677562258889510516700399783677354259808246261086274013681287421701832944816934589443862889087663150104531951532913905711180205998956486563894701913889566205552257056898555575827675097323360260868327955153165463915552396307937325144533719144429650317135560748505532979807131315851182969272051658250212241742917356045020011727398222254769236677105769962812696986986219265469488961263853584110724545487032513330894815804136111839869248786786119806202162890977001919485972538096783547943808190651478104522862277128075551140448303384336311908722261861455029252710014753948979280765402212042307146744973540934786707867471939151828911424241919061067912564325052402031476822740610125192996154593849868314839869157315485275792356138561784983452787163508404928167485123606253535083649991196799633445724323712509986334997953513422622463009249479557627577739990707902090534222613795866016776987161796861332542570962446093940872161488283234993690693352235178643786819125777670125346744448232681212389689472372750814282375194181511478095355105439429391828000287861506876117826846111515512748513775942692441283417759787259151292536085344723882436927380866166132595545659243728064640748188481293048166898196723022276500551294830931148426780851598833445940098492200254981069841878322258056485160769853621333802591016575006497658142860017725455080195926159948379996316379701756014669761948922052398420761533250209971138124161852229618670788562345637817908790336441836148468189238091061081500403651282842663040772350855595537520794203039253779836362714910997428688974790285546819180077871767864234420194779186959976732756280439313105954585004043097372808123100683334919616156964470498643182217406572753290891335588343127954794762464872590616978842450871844070595498007196117475388617253476217573034830850783455654116685273089756659456444667711442402454985014514765088577302758771111381560907931211244294039834739226718997888629615873146327267523442155704234059693205604973263681157976809659565421446565918369831550734554376968104818987570902992049941551424846220356863800406210872350983034046340021154275307989852557811284970383593134076844521707704255405058179902371230115030719126505927545808378578701514805681101251619204513258908798688990777743333969225492714511925836467609078548654437441882576245411450190210792605342984007641720652120168847359439805351959069331435113931580530392270329095090408585320938373531474958667519456221730391890376056085524210631507612298582032505605329998012717559882196637432242740117239739988727453774547705121793536724560774982066795337553702453836017425051238611739963707149424390609302226792310074046668920695908701663168810940184342630013671893114860806047662885116747971107849906577319872609389173737654800033260297639897080426276987495696143045775667310145738566642558521228992901455501975204736573210966756274413082527369946133734647415529163883807930357435912853447550694360483733070048988743596534059883087273972551048972383727399312253785245040478281321673988474521080580009835456350922151899560487752429160788163749457189593923951312042221738326442181941173338967184429290073685649810408365508542874300037852096341650276774655226601699449936643468937601858549274395547207282596396762776867095246339755621313517497664331209384373849452422043987571828477163744575307156711706347290013407854373512095530775279457951770038177841224605093615707635719353157364951971071608061835046225301157745446126728174181502211279940321007468762145660219228831929662883534472017571943708115815341649177379290463931170770651939813825487258387888063681755273450355959397094970715324232015090888139536819446800888262920753426054065052813259418087057022641274027706314907137976849372745506450277275974055269375127758086679626839788079992107212781328247092239995995525783473268580150240495506162047150393118952398324821431658614856524913669850524101947110314041488243216590296297586235513547517100139048888794960175477446204333211162640603465861438719957343459602121912729998462578537569806678079712943276285537877704600252618300482557262897676464797735772069207141907885598470015426490171627125854912190203434097995190882094902046094700322266544560968500137333085108582902829820598082439565436811022227813652696005454277632295641102121782943003926948872045373566784760694664256831188790598801056832655841400491650405217818726108145358103298185574250444981312888188332446955122751485470412827327657205870485405665978816332392956782531626898507238452797581095892543043745644161763445560756378189757924274310420518438191118545879508778823096884169803648189740319195387959472869736826388645973741000135420660967389913961226205816251690940564887336384380814146932221841705023091127236636875037204227502771360100149525314421866523274867506249800578796635720597837795363317532203622758309100291616408101119247541147347836439328819661263216752072670359596352745218002860561258273069407247887596396454845295093595852522719586331115804867743747614644645961608741901931307208303173684214276767052232820384921369097051002738689200107276547063635145483110745225296495446701130578550781802466165692557525453423887649823218341205748322556843309738732192961842518995975490254422394916924233948398473568467017469229502475363520639728899963359142153264386833675158494957288289541321431200793260642962149481146324969578322859727336477355040938855081360031744412111975191284468136677442505756484056250560658903692316086170972999810986085798148714812388577609866435751966289840292109629849741676943739718264187315351169686416156942576498016648000282389453422958102886562245805225163234645434510555883684579948720738539068568836945114040868999812441596050313238351609331743711205167498273377596337693195727314438757527240748121408954759691888530249199919547461963453802912862276054166874437117101797480341709793112104584695862172548128627935030156030933797916881688657759433841282907346035253063597133261266126298790460346128309494216265058576425120676311331361295665661873575800355978380411148043114506792498772639689515265682012781235560652484307397337020487031036007389669769261017888538240011561768093313389190515895591200495622540886889179768972596059508662888589364608355571657178846377194449713690388145188230600547793106378486097757861214650941256273422371306478338307993431499081602102619194600873821065746438246635763791989299153613383127248238746465854249554157253396681159759196887928237734586914231923077763177265221675106663462927561085216926152637981921743936662258650106615383942913957860869188786673575679807788301446573457418750965435268270689216525237820728462544490732464631996207245876529790991321595155359000574506929531485685593379787969477830911969910129410751878528372724696959494671631685236259524928296197237833744788675386909148252206311386661321857092956608835862446889395862100411823847931506338771111117321244465771745857468696555417455085415284220853080583876359640053895723756954229270656787851570815072343125039970330668671052387272066863075703104044116626589460218132116498680587344842608412878514471042050093916277763105938384292681769772644622442843557773592829800538257343016652990511080577799606182595313077739872578256242469422843186576901536454720925207309975104793712278018580643518752077099688691670809930054186419822485757055969828309327971229368967597850825217994652909678373949104049374206658167941483840693567905237538521913330496074855573933348438607477889308575447627303023527007940277229174842521185434744205788715070341772792424258041076672353930256930293131266598451038929099948571435283116936284582949259403804874447330024061520155540542944919758929956377461342183526173606597096989741105759516290426093667006695182792467828329622792641798347662157721970381286737025732622749316421799636426221660429057049285406151754980324006954506400624652980412382787769287806312688662763467640931939150767742837891286682043906215773073521610963630179865885674529902360787105398880705461146428212483073461962623554904706997993528799657526348318837820161860631097253937761822322149577463313728533358463850430287076447684128892414947740089401509606278342130465553577151245984049494944320579184964299825214379466473077037764631136789028625805008217689426777837152665593245599500024527392745772002544953633467063571627813589959642370197685279191055333146762551133184733027242177628622946042394483115825958280379920166342947873957704373187481512912427360790711081083775760819289743713522016327175672132272436474513946896495535417617551596981904660829732933306928597136228104832793936001468276155855007292047081447164194555139672703776640004425302293955800930779800783753749714121292175999529161021548917026176025800575336027700232544842335383494091034286439764492328377343303598843067310168210256733883173955114800311048356125082183900829712532977353820663527961409973147060920552435496813475181362679129471672929448440444766537389259193515837108950017835875844034015839933136768142488526871882553557261950290881248286582682352291875572626357511490429007632730593305862156195390608012362883363328532251720043319161729914365688253048221368186859218433562352613326294727575172042491970918766289424658886056783919393230761527363533516514759803572259414404219563824137062574949488623289647783795704794886419565965806204162493572671265768626278834059392903091644365085630855930702158226566734091969100390455467181341831456128368746487682740703502585797768672981015295679991974042808987314760227005829797311013298866474900440372074150849694003792800444224849700566195051208830656282079400902554191270098660237212762533760969387757610242939397067292367042445580621187211020837278967290776003722431288535563610040060817025805322409445245504055645205067506441238291189115454353750327986550620799365376145103675040667382393611037631522702872999378049626264027981836779797068109812578307030741942089438189202661381348762063559979664496490112378386394673124550525991029456760259818028417371342230291169654022881454045200440625746914427048154772823959101062061186723532871410550070602557327423550020081050961376493342750220716133099274953604445758284580795186563753595769934635828501552754683214039628736108197646134197859575020303434116744477106260014998569245952673625683913609074277684592191926144682918469534143375076335266498844265480499739477903115174137066136583979852285580615117453943469933045144101024543969207379268982587711563045495132253513344440510576188030093445528329870937900045405909863792177802849193905391967643856493669778792236086976060498305178491218757512832231990239169012522290308032235375027150091263715790968721336198759409114802195501696298900185237005982848505755866489737373017880634488177353533200493636088325610076695466882475729190329999808260729851156656102781734458455428145376997463265262037431391220359402437170406347155352568093499964685687762327337168787419040046683680113104046158426745610206616403918159619056599094612532930871612301934771588636026504456513904169480150713314775427354289811629722303758512393888912681932921384468652137074335950565132982296664980174440165230562580187542068684099879150723304835419126614724832920034998392281799606258182644600178007523926470737071293858365320217231604256990673364289392980316386376192784165445198971762336318723315425095059554167296411602663826199210521762022383507578838518993717540793039376508681518897040463279159461537587208027879652606313964639744739114908354748385424999890767171045768580106983810150390919046069533814093938098561942004742436887263123292146568422171496046965831798495511897995962357090460814326227098230262957155076726875512777806095618105739301474307223876980547785166901788045047442546662421805113303659270690056066605671332559363582851005132928542274203606474491077603556762255907241619398103262615261951838208666350575008976511495496147424987950808046007378294357869364474732625702010570121786920196314786337242229915184438122918359914421967610339982897988419784260356139191518750206891320193660460255311723152887301396955116923639660249516299762779037157861007917822369695386432727724238605533904203523586144363341660500079504912745290534717029314883929399553231694709338444749776918340544106544580259194991704553580259696434678654439093445370799598373534229273716704899135198112771131746365832907734920411109281079043311588489894213573403503803837910036163845104556363206523788637657594844396101479772149104601585528829854021331764023131746004109478649079662642610656310715549564990311932954331560166292795841455785662923646902832927417689082577738185025010841030332520117802334520748231169186534308211866243549319639352552548020444484519588106208690399179703801986677645642902918436142213583141837551462224300268429241219584281602666494019920260990736347902593828203897296099887497300568075960172329776909069704587607804378216041948514287549318718473929162156946483786036638773384019051122682584205209893066881702114225022020958424890136811454155522432658767228821883003811527750068425418145308146549317154926159249572571123388808367962297813668730468661333865356928942373033834807097335812650015117208565144288389531918230730927385159567665394086480358163839264360952010201757186011825830674408802108869595548731837039179714578048257974683232596031043864147725493901529662982508032026860852122229592570031971487429728145542366661592334927012789833465712518929599605798377053417708319424486792212930856421851989395552355466213532417772433532869509717237344707118318719580486244036308838834770892678737213866468491437328576515999863061621423770278324858203428076140095389440196416695586976667294917902469386964304483377864340613439682701978181927982189520620026128292893920704170680861429891381989102821360682490754929606097539865751558263513585254057426199765025624486767332028526901654849015720990283916316871825990751238191571165346616320300891439987056061055534188977375058531740292737630799065021137582617994419560802268230918272242298834690130282741271126600255799468062797717951834683417067807567675382566008680886615323352726938955739894612058340327795282712363026384375152129309499444759240701390496335322851979147899433037525035120882737448508592872951092913173723100434054986893669177242762758610069261031728912176990663679445499372786372563513090322826279731456353668024056320362407672628587193617548311924857854606945551635474627236539457539274213626859135614096596865094035375558276062767617437157345224127339981618868722527068767315020181048005211219335302392430443292515722959386787015588086402177853935287266067576090671080799192156591657351015158439353106077076290440599670513999012138751101607526488752857831519376396874963999909493279354744927461456504518605624070665200445976803774178880902386068832540488478757372433098433290866479207240102339819107198192869744758514966679474450082351593837797953200097494879560446444719458395489107207546087622653204497391135932042339282511901175359267821084330119028407373564222367646862535779547502283590906656271618484660071151055145986797080549896801560631913265767326188239479952249985822640882843108478647001870320317548627004435904969497944547973629434663412773827699230086767671682515882385862817428385571884148442707186131408725915518957036843421004240663330196178657855889853223746386979953570362193593536704165992691663901758763167884218368967375527965577785400087106844187887625628672654285339939406839296645428507140988818567354835768056358675932582315527451639006692126085310451511756529025121736489163388076960758935704884117084476414056153906388291410021201847241577485744025455790195828500727103928374271393015619229833236776274354144924624339352818346424086111159905439284023139698681382908584693908812572025863777154604356952060395213383019453971047198469412326332892289350481037439166672932829055939675072073359226937349979103674373630185834205972707426133570098319579003308139520117498984194809877852769748605877406175259931315457520200079349648132171417284101044036141424485758939701680043202833989053502446757243430350054584269090837749901205652982890341585861377081958673501912703301267183670345702630876710483029087984858309698713806549988556099569899921145960700978415590247412617615669401762036627209709893645816104911481716550039380425196291042021608019071156171763866520476092640828640306532931779182691337331086694683233709611627534625939614208034283994174758915913275507753465883746208572435085077989691296670430968379985794162737920843878792159887865874842694823404309664858287496804987155599204689802725172272664836960776611059949159882314156802287532107190075536420088617279817363496090222254419027106082248754411942674098976781340718278874444019747920212720942880230785328045446492935316888352077595750184458328681589783176500268699376480221293976387263636929084976593737684408575032740770224882246207337042612695708071378960870204325192751155828276695631566445370257043716737026860958185945657068840867450153488449625521589568849876300289455318585919164878380508177518208737153394442112409654970926321736696460042939651064825410852802165566692894009271777408691941833947025935271023909964559794485863629302808683338031388285458787418983084568229374371363253596127558700363061314677154016899953324661986995375336643196583157994426932456448563433937008439323098350093459064766553629359446918606863497590512767784703603618116757013412085511642788611349740660183510945569738864341273119190829859792695627402988992954526148764815986292470371733266034933117541591646603854787078251892492460058299026159605732000729880397836950168982856425636046224236596942105187754446203586638388129165008530010560963238207091289965804629761125226826277480522599040170911463760696859238296869235625368790539694442365692665193641814273468511635687884165544763854961110019424882106710041367189627204056315343553323346887279001214171224095802679087279694499137414954504323453929496141478505027611745704740427381278875559877648868941076326482011086640124896567657256223761127975924534465267411163247059331102635567635753231703869996328821611045817346186245945003441723400764205724668619206840845209506218888638082044019557278484610529697828470165394472964104712096610930434115796370822418074857786730939384052737464058363898732981956222302650436012521223431737677975782291615319177076286065472682200884107674504394459344098056353242922625532428080995632926371471024333836020017346122544653310995906656220638917286635602611431335035242975315086804851000339022912638981513455325913025819078837052007097257358065078348051565610931067918640956396544485722485813695842467630625093379625118858607618483176618688899399785614484543578051157361979209294212239389109742740426701508063312130814355610872290325487926949174249555498928289441624790744191726933584294765612572273782291627298543222152363654977326146109755231865914579251590994515028186300907814427505144321887940658238959635622649516994544679946880961923303707408821501242340875775463451634530592079507681879545540037082783029930766662071555027442522069215251090160380510365221405903436606711632742705662971761339229109707762477220800967524173410247861994606886245300313530476177438551812698471793860334646798898732816142895231105541833073736647556584245652082328661116072376649003197623923367069836237705175579185433897488685574284535732260152437280897878751086374185421882007310857577752859284976108263453848146036527406123010203656159156193780506179883877960990109232069854126387140276143209028134846733037351594020076064854313777692771763098729488407617343337408028252294933761903120431101951549882778044639243476797960346400507071794636937554341677502307716622663327431868483738268382143038367192282279602130479442668284982114488282954302810320919906397566399334091741331642212600154500582631147836530550974798778436535646955330271451222079629482848713356691482390283414107210214299695759579417603106229682055775332291229795876437900082045069344715974481388065805122407285997081987943389979294570877802553541807397200559943293682721820280442483074757232032284721393961428132973873825848891580927559865071647248013763432300931223630738168696575656117566535099891372550217434466622249750742071553415011815061293691954138392864606802931461064807305666159778594571812589497810268412025182742161570111571486345299742351131600653634037027239449664391029025818240908564754327986135221713396232171293166090990056705286090608111037952969275848801178935849492038550287412995764175642735010701637423379014461644253582224618757665000825846788517051013225201561793688324924991407022565525472340211196889453777604382409296282275064909897441270564445704991829923058884253172658813620150102670018071802252195584984713945835788297240530962181785054535634088896221250641446264599000684254747551244018810551217157200290954237242323730884212126252352945770664812760044084939715434365588560064276012950878171174962553908984255601883323870726670157213045030669733030518382683841969610385071884432533446579289447566384617484862553797486333752383970194508094433522873703603658331304994334385201643723383281211899859263329877914202872637658568315881903748877847810168315395781189348671244173505673112730624154468422958964055656471822609390240645159877487295788374766572084094129452341645151946699899995291360959785922202890319835973712510320265027427064629470362730510272627715018774368310863337041266276127714218489230820832309252784107076851253594461933352347987532035928261028864929922185901765501322561612465097651842256280316272850449008474694015652112971651673153653082695061714545775286027734204586895289659915067260305248702300296863093319305630434664215917952797050594295189901832861405963742272206697879295160202375938258915005676895280226229199708915023029101175106438767386987605791298977176655014985602990216244108825765335528257003091459813253656856431479225354292736464020412940167740017553029078527052393300395553923013051387811592283155420172174439913515907064859003302335510080164250969359344673079873949497844417339859136439011749925890617876962715807025957953176703990618696759755611804802237617320506907399915098223130420349411469993341165747648039209562525332597443361586039635893563800228449599102492676940595102303422067513169112090129230588294281475394149226182214493109869972384397451172624051418963987015492725287710713852232407205519064301580643045405623001741589761004285404365671904553880650416256424306433981543896429041495383724068129897497694402785610452051446682209531869627480746077674272697607299252572540680340869608815304198092315803318679977470767297615568980246732515332809373770239868734503832620690444340911475126610657691949072663814738873951083012273332483318771348827952067950488102227789514806015199238764082798414920205456064760512763721925544000205953587821216190860861509578774207595760754447986479012504602710052447135332107593687485389995521223349715272346577174917689545699647807592042422621994603231744094755934439646682616737566546688704342294639049711239477691234317927559659579709593494540941868136568769775410628522492503004449661096225484520674486452367321640636472637731032421692659524199049502112107971269920635322253054618467548905303353638458348541538522562971168138150586662394837029801346640503306375368924020770581293299831199715712501837102427890325730978161251026754508149456900246101113963577681997166964340602121215604495701933540445279699277130767911258621223806435099865352304215886599896133036234122316987860640915435451808763992850507743371735765591672315257413960561915885188894821300602565634423594836455443359311496598531856260248897776779101259799706683231807699033790195753408371292694040500063066514953624512705161062138940740027432880601786021142798708359590348872347766831181531039080034171770098170341328897076115918337995752510058876332302931492154549259849113297294578669442175373345111990157580157937164917144731729680822110696305560753561817633803349055553885651212185860588749520663932406502311624313143067149247299507880760886752353179112220958170521181957384106438800920772284489555631271593787168524132951108469945652863975160978943329621189695911179460477831076953772693278627098151470565924952170077498921453112859560414061102451603552888531394556510683569806869252478643874061085546369031496566699255832028915958330164208383455450581582267856459294622281121533940200644859904821086894369812551407385401865039430388045582312892032429353357265575860706002835013082427099075571528267678534887870305711682627524996192606654130938578210581451816154121276750246281221084365254840998960327097862893725239957293490588319057225017679561959411394396046625428037876939364790022621670109407378762048670238002942037600240875294465811105362406690539325911045643067401418149291134099239594171257119627404511321595617817590105885210224843041373451106875202359726414285150440735220586394032804201978074874207579991510412472352822958072499122958738470463749370220468552437368854726030948851146568733389767957372085764353089101837031257235155418578430990795439067172838530018954061454293872855451670888677196722856357097903835616851820646960352902302757629933644435580630427522085790511365666438738913181207668150391513350608007664903003583365760049121449745549111400417549543572879795830839678110748650317123306473717268329967700086219329918952257181069761594186164096383690147510960237568628644935966725441087845881811724686137103380727324250048304915494776440857419733242389353285139358081417437728624077317216933488945571223247662215310193447079317992022684657081720945419476477927032279186015346758083872729083958862178973090776986922414456229925072219476167994020725804762919854747322220978103981293396116307235143686654028114590228823496023176571113081235310309500615765727692148921210184522657173815314388791592580135952839803138085158349926785869612754056130096351804631530541682916807594421120814623175487617198857543471152825718552225403724675123608815417172319531230655547531199190731108528320875822644573901232948436081976770037882259354194589960996288212580966016142137240459130612891493820832663596864642058570824782451161524458575251419946720060019263564076139081126384594926990927726592372239099782579333785969879921841723143717324254835931680144208387480259082802670460845452828898641238482296605401368341185760917387788411214746131851443983271804803844745296532398978530563593746807650545061242869257981058600872342597900011952157015534502274475201131987608731461214793503529412903238079090979594896447703796765942522719648899761893255172255457386263558333945807341238779426675391825575527431816317542376978300662487399250730500757646967445293527017473431475675773636165223178907933578870398998792095974584404372409207807178265215512929170062224470829334798619257228918520918480909102199158399941825066890103791095151830036550356872703050883178706914971110853290954055380371503679826485343121230330249959987246707144755512914533849047263628418524598324651954902969664602154681049651936537136542077095963343222406716425790458269416795087523362615548403674045035599301820815197413290208522004835439414270161234015163366438180674099823409986595402020355324617962680330094013541292774102730694740228406891807199554374790816545239198414885859101944743779636660224611540896921947495566375560912178518634932271126153435548438303129953069980994894074672171281871940733334164864061654602258334625522654554794311293745022197986295322030145391525929085118774326474202607297951131996269495099367694194415066441667388063795357318184587522509725219599625463834476693758937442731340467680515861970943200891759141585245557025185196130885929743533817540370977427220076126037327263304425967321859181644997652795692575468190952607070987758523378445995416781866073157214044138492959381226314978490415594967911627551128790731143724513625359715712047767020454297584971943789361896686870926943979977705001052190852483248143381869703679728387659339576495243200066768964312885279972726937894547315494319777858855655816801290004812113855909786008720543975216527008176295897858961353930521770878412709219289296623353064596551553290733788026179393453857745840001075635124191300389761224840723136390327514578317642514088021775421373079010195358234757580265455550747716113185116903760607089377386548346955879893235603920506267473442226378457846576882884560289813018174713178368337162400832912514071852143270878191309835515299388561735046125186464077510843497495824637752510438974321758661911635605005165230534946807914908512912733707346202811531690615282562797631662532151396691476106133628153939980279366105039382120338115714916679281332872835150991010886892223941814333575979763550355878554305375491172181957746753112045745637827000356125616395168749694703965579244581789937847708957966268684300417700170476300106265096647778885746020051785451555812525417820993985688062170831638302435026485612650791636651074799626822364191129324110239398238026754617804617634245988420011012893091350866167675988551091011620669793564762812227998168095055613527634928736254320909783028557639039564472978633889532963439938411419981755846203853756020108946846734927387194370492732085293454206032359704117138926281787352961123859694540534779941351196557388126206805868077683910949996786731688468206757711158076413238135903185406014255072988042790930511703307505969582556269419765252704983327558188749356269023988075372303803358509314288274293421796413433642343118604098733338424013379570290503788972091592506317375326515672929296934428648469374908910150577150115939984414755309556341725260168103344976232188914579546918157325864851729983733065149961390974042355686528961498528498723389892356237349350708535156203804557075472525860145258682109595368934022605500196128861869298950560735197003292531769553793947462178085218328340587150343669458124386201949021739583356229272244914501513073192539274604050351190985046718977611356173175960864477510175925584848966101398537846425581596343070165992411233537165025211936058868179216127830238691282666227294246255080199124148335438711402621633314159526175092453634961223477241086260032615921291482094121448699104623993897285241704887706675913149089902888842771817408815957123982132109806163030890881132224793474773571913450317413248429198137879739899302008009149822941177298894333986457873422788665848887497349487837473151233857719480583940065932317062621441392037347254467358738621925586686343107317903887698027021211404993168102200875872198162082177239262676537160116034936812033272755951347698479354557223423678629907397615272913143624276261957705126564047666071671219059354685945980146407902790083205990572433151548790648087790857019941297517139516246035523696126842603705757793932900117992474930926381530562173418170225630439101794560364977157174559032181895298923308801899932059596873413339717251867153186980772891645150156314214077351225494256894442868368513303058298380385861262045689447946185868725302989424615149971017133089700938162028635015683602329852521352116417843066984664192742678497177412796472886313685282986700099020552436381620954676405870000282103018144349736239156730145192717062503548172521572981720042113513380602932088291812350233582977662467363671063403275662523958718374553033033534543359125532165887679910058432384055488240205181287791218304253092556653575651089965659097577251703763154372441135612232741366843856130194069553852419371692221777344040554089200705109933818184779930017022264362543576485851404776681837236282496063862781384817665783874726153802595084776138763536925361518672470783308364216872959527787208945914325104210264480175067397763476284092950286784690277174414768961754814114996728836738188145125956020745896560789339560590965740584346719697420294392347086066906579608798888679555717464137206652536432440474843493818326891919045277422664083293851633694176148302066751079250639303447695576745721062404057553126750649846752158184301536576242168019641671393478023480635011245719848145942694397164065456255210431699312249483072358643943155807524212867533132298533683267120300239763833392813312263187442790176342848134721108752495672734965908141788646962751238716398400982043752139120993446483359110398593657446464253911937230830369862424892734147432743378648089469113310536329885162882622053213891514343459428147663407586250245013110490980544797612121370127601468624239882690883555281801351808250460373257196826752975568833620972156764168317631746572179715130030751743365571794920126625415069852834026874531621332068022130183339952788858447867903478124099948062606782368552653939529590941725780310019523817026582138078557459945246795883000503558431803966441641800566480398274149525031867288775049340773766591626758947248694107826477516607550072790371615103218366596491008171216658046589800393603598621295330511008882283517111237772038628758512453736293989872505299153682121590051916534540512408533617711555749803810236298600182877844433752912500134784824272896528454311509173179672303405634617390118021492200705436683151975118114292123402708081644847743227164209486843709350047235660902753845973003351597330344472822042543197944681371308921929189334265770503097102480649647202127106448290136368631914137153540314078987719426997802464509397368839090830737137119723015429654026675641072781141796708589697550863356064685545844209700769868588867678474424275882708493244437327269602325465356698095361577086809836964691745404187233637317799235322887992884552537301179590077360786020312943339482431844626797930890080442702578209380435496781155509308964545482874723976569016545550940103713780842034486487947834796928369844647109686822741170480934051937826614203935680186861634077344728416321773453205488766632287180270623885082322122919860951878599010246657902926819336758276557257792097207267263877445799734927184197480177202922792317203580708348612601507075896245745724392007566500864755361831485403621705223765342429785312365927411746220641231442223288806827263012376759307643178981301229999354203406654509433922028110478108512070900879045343106429993428776386656888293236796711120108747703740373980134856833855651952196566337787449804339779945086211810395450009795902990060678020308928793492938939910423407300903406283599533046877316168674120515279056797201246707718043998977873267853640270053792701609882707961720953144074948833981811921944013848255603492375106637764376967489804552925597479493396037198880465978849102536350827553853722665873898376489317131447659385004739795356719981420200006434177978270910528895725223089207510930073286347258817650993805588989252210685023399412259992747510899209313914404411847663374706211932788392444949774586700756611140329730190433785450039791746585228805755097533422600397496307661211943047258814842241099928703777362526056974274882886088618716792882578642328525384637140893878138484975035507075053170252414509113601442436989227673515471702494712595855235973026353217335919484808969512843169249557641378441567913652681340402052296755065038326840772102244762472598355823497031978254390787554433608614857517075005971986198965518183666819960212665225432945252285244166176490411121260767531617868594180863805046105510507097809296899478678650627462205469627941262871050357107292798951402606744778064913308404352432896313251188496702010183609927910410006392751947192939354659945679926230172181525718071873959547620269838420785905647487487155122047377379824440471046529775079547626143470403760437017242299330445391608175159628722861294402066572621640080387898542585588298920086981669418295509357240928627085806257504154790994714863795768195615751907152573753340447496440903372572338746080905335547171487660006675345216892722705093088386109874995140580904491334978322752678300989154174741240698788705143432443513955576693019799350277138820922131764913829153863613180242376440708661261009822323244707550302824527092904587175183453719411384139299646055595233825217578900888928433964839623981632024087653044606455378250191781024143895667160282587550376237091173571216609720203767678930324814007467455502185524944602619788118806337168760739023407570365542753299594152513181085413040485813180297197052934258804985416283847767454392427898248991896996619375597008998347663627817767871239343262292251215125378564692168154894901580068147669259614756419269944044369058040440838651522299307877231278352871218224657382400578009603935161748716217254006245707941952046861472465478074956888882219262025068017545674200757695766523889982051353925990066575250792580695900511657482461111790827565536114492180735794746488984226225166211301039881487589009146371282508912543802557365077272421087448415217556626537935980727289247358585396608231563995181296073406673858992476904938222694804968500182983950014965594369979477631919056156997918854763939667112806241636798863131015836348615903168669767354196525339010998014730226213570776118286257873952560768404300769476214534932685606788747591842093673093457118822004176699983558693047599276393738104619501890278582297364927086191480615726369750125147794289372236254280535193489682860236083605055005417409593976466492310796783029339375534444672689486889838231043351213709236353003272727706835756950589281016627873061554791794998169975495565684382296482557742726320230093893284332831908158866466168798574466905561335572725741797163277763456544360046701707670917980124746862299913082307318573543561150898637438709529024483616042699976084906522248862898094189531294038481390470517317752370529750751332803671526350541395120444360576560971239009943252093785264702197893061497138029079303501500033535138335229935113620022018725870380718970513583649679808814074757149104862894853305101984392092664861283048113693456503017000291993145207054137991912103927872994348095613981454043478243508592621292658750762795207145893461979241063610997860012235304664665411264371064707556299004056085231428614919449180478312632543809621483714574140916022981904019604319822080004794272369088503407591384758022443463046604267918819333013743909333309738530684190895253688364610529487366483318803739180547482407032773713999866050488093260930727499987748150826967699978056313137448703198432012027321837350340065687937407690798897118366186234375765334597283825816283433627604016140403148495620668941707329165163653527207229658682129928231984452427078278646389493819324195329712911038776436527171737461058494247470674489679569526008500293543899402382475108732731438604459813937436101498826998898961491880579079844523801352564585677693634653413245830507590728170632898723310422253495272979166303425919753686973598021061584214151755249391530212461887558126520628488064633988857610122635568028609804292875582983943642715894944537843666205418367988447033453526416103344044955686356877712090300942295424453422932956483333407058240190848924884099339432219534530287860673078239637604787985704400701250513763467104144426902773144422029244635014610478240633462273186996500009662171161910732678495199501686067695940903664241176371573487384707433115978619842492076280191861075366989489075701381340354197016519297696977227567643140828034765949712864441011866135678030747069891455564362328439793503092686609869459161500114550051690850265785914049976047488859583873981790404640125215505536977521131960436991003856347229799983361723938051306287469003206135548093725104704744444760687131618659780366046868954857614650776031099631299712745465549956379677235943807692059453204253771435316439029052077168443577731795835653332491249961069282518066144425959430361956645311285765988580860593989766694386350361203987077746393899384021199097422024340661272477082223847196206412614770563948537343691562257132446184259873693699346487667810427709585659927502747976558923771608498643098187484219412207826878072767906096130787882007444100786260840534245787436442546569223948304168764680505100181046770279964488773555339445176438340999027534049796016712281287336374983513769747652858363366641448808721439311919454937667515793984708412461895949268130033730468809651121325954436322921334404684853421488757676142109256153261999207618806817047087695638431528580977944847492072965990559913261045952721020994597732718847903664753096039449971874177584781049908645114037179628992124512005348846296556551281209053091133792600042022753064829746819607402947427090729925033452675596877724570990865272399086073964248139780390633377791305752318286256707892278836775196818160596119787069105008152242531463599986689017615179834194004988254479186326328005934974008310998854572688108552511137810431257095000611169580101408504600576889264966200267026781817895159625575044927890161494509752708137298060650953394469527578325857567044548405856434707278910356670365445986437521178471861806270446133689133361266561199496994102123190590416391985901630357448782130387356814573396963748680256455235799774855610175150557984007695313163713457051112844964568221505815459607527335868497583717867914535284806806933263799542791856871596297265595405155145081666526884114933875076331459507439005835964930738775154182888001271928748512078919539808441054422446177853797878008896973948330370253887441314940031539683444279961425664459823865628690142960708837274095801457383491981113446847415519910968519983046475558099732373547506533074699528582079097676716373420730437234916968182344631977994582268686079997633952232067938435865173192434335093471755891398867470110422265151457315973932867994346903492496788853122519194332543874049939534859655564090678520659176750585851128305679308542485615843041135471859623646948829651212760758746807413093569210921621788625331305685805797965360626487074161192489050524916452991501938875266671224356590366554112287442283079969494542428190760475796743154951891153710871924559709042335653718645129109134329698782703359637275820232082453220239157172334076497099191012040799342115264348416607466434505649894779918124428939244853952654510120008702888586046738092678450161691621058099677082423128237778020163114104848049709319438876594577854263597032912469953620754983815949550860678055801074590778300867713704644448606279030733981329505713631610368676443003790775156652231278695951671017069312812284698475857370870854756955657779894379459867425786680664797287263115413832891183639363599215114078774489518111918947730874602551901185847354447647894695508194688122126462493143641870642518195205658567954663233136938806193968662271785020251892864602025443806398480418073809311180696290543831945589180270105417182938542261745489259293715085230591295879888235524120435691158631737411018694318144734870658888329273858767338457913850317984841479388361672015001336238714254734825178116825229211759794302828151213535437177894155607172702105340569680859836573705867186264473229838193502168472664357117116887193550958063388765036791761563272551216943030060384616587175101496996731364702867608761254346814309235304022790414415069536123887158218268478922254750552581777610540140903745398109415882171220023589711357123383382630125535821471365415096169741191751716115816144943484076492622918893516713761406909613831253659816145216993178951633074003716814501083985537689656713890039076079059918144484738154853391830690204175227920660505860027987896593214155819220055093544492745851215832322537681960172231337472406816832034982200581184278543614419136330647715138679137022700335368205498193942871480942845927494476810264934372677904244321576773762732479876711242366545907637427279565812524320283175764482588975968219690720126464964262049361836631651676334780669130625208289058767652447402660808005039248077816407180043914420253153059307980292395047789882648592837879107159579595573485315953435284920684030097707365918299284404576009002432403489505776787565948779405285569317594588797924401314499962045232110492555354017753812474653892470539863154160043764848094529332949681299204567511748610568713571100586299981367920984074365818698946312437179795728109284519005691121532002285201176281404521209183501193750594755895453386724231490468057259954526095658453142605017777594212632541877628975918333933519497284548047304573848557032030926820436241443112798771601844468251270726006647083156507820699180038185828114885686350411322909720997416594076029483042868516624369045664780329807814285185451556524188967338557390048239793914651169553456536346536853637470752817754810027568753978436834059053156324194926490898871722903230795680172528180350193152577801225551852363827868013424408975167849079490405141156631675111697218763810960481553279426714032494348345499343905139637541626817884186350047686020255790196644097113910963476071280324966399584588027222102108801612963629338092589762017844856334637494541087919924262068902952962496187579919436986500491067691397670130425198947632735990739868112558330361981376255768789148748453485818706342490494821937839588498962582044955486903777053643082130874449424929789413916540149551036452375325850491082050078948405357483095459175061838925970949345168344919052678465376515718980639444824529642688010429697487002795346704344490960384732609676957380495200492272080560903369431708242087778645423364964314589658071221589693717193900936275612807264919177427290977461573341479196353082647584364715622793222211259911740116550799068898135602090157751940433193536543457375963591200500383001340665431552167573106497196880146642752850507007678963689774885200985676152005705603956393513265464489784698415850907522695441084973163610605122824931729617196071154187408023535899103505459957480051981928209012614567762081954707262449557224596631483961537370779595033061827488662936030146887620212275556426168450223837146819142714786041013488277934913416891082743907560148218974756699947225702469644128026093502712299267065655562874078647815845656473743201303112864149850468950451681319345903491890524383793394998865443560771626997915574654304310339274880918570094101783782974746628420226516441333383087320730442711168990798359327295178653590190014401290182720007951587757172950373105551836949605697650777466515819109852585922989791052980008999374028707675989297857431269861201562803570441944646856696213417748766268187972968051321569942617266426934489466954083771506629182683670590775343872333861194186797839216637490187627140710210524330186091040268759381631033669998579565044051194673439048582657218057580991421820614767281809558503145115367200341285007185206863108778304103868882848303039510076248927790694990052615187969580526647294785857857821202465371996452819052530750436467211171467987102135271528288276746313293929759366089834534086522198274830376158287002951953294695641984274949220264777495944744947787952533887395523990823537299071671714310319101147263973433870181668855052504720108997117586713127866766961986771916394040415864094428849573220348764193660719763624581570155824112496754968570093967159508443219420736797978351613952916529583016291519631506353981951886969237515115783441357151798612980041626836776822015200821385566517772439557454005092600970053545708178683617969710563892371115750316724099189797866384533592977084167807037377135523425372398239320276399839686867108283070843865730550972212610688784132042384509541765662170740634994745022645770525213837583389459506195057222793512651608021805755847553917025506718780861440614851145763746510850683722612229668626191957180965066196801574889176797419135627547636323348835466404639594331389785568456403264033621789781108124984457050402206632959515855500489842323416903518635713016354616581866401289790194843263120748986594001431996889405579045286331421914849958086591570043132522285336001605082870037801757781339246255602752763863548808702490553386388254341452935593640909145248553161030332945458762152245800113908890716984373483444131733721001842069274073676250181166875212620338823036088309637065448002832959172223835024931501759797488423021872237668700571395053580238413810465020363032896979816414682325998029122507463736682107547307029105536005225101540494363084604344069425093821889719748061643479200114188240458687900577980166123339494622960859749650037368400974780322864959899377450390461495841902630102555863729215818068779944298947953562139316259798301090545644992765454238338925891951260516427434630645404274883585821619717245810262136039677403339811504186028216868215089050171652324714844599291740154645892731491006009255908760747592584590955901143188423590385575416833570039788740428574646739705397315640522346241479515953663412415645365273581101602457809714890412213741174226389015475382598436908746553001961309007660713695467096775332056516692575735282507067716126866321230078400034599236108792898003099563130884800826059573679561848423600964255803373419203246461300210372855529206654418203463455387843213284174939161066920968758536542890572169206320224948634062215968190801577875783008651462880800158049762023216543013064438591465215309275150653892893047664204318302148166868057340939322434260974414071683374464128516756834786861646192352397286825368872483946120810332996695594041785502815990988623702667813496440115783777157130884432497100696622766710874456078960647998769767563909229692887522086814337874355114027959567895869123921443070338076335240384583512383257868935173464014595650576895680503158690879410395792599079095445697667686311932971185783353503828035367530869121525251685178678757427662918578704537779084690540953150630898646730782113217436844231067868370890077263111850667017882987108015390889315563966559185721466769691572978198787764098893079565130818055623197560072160377497910523491651141142339457012514382028607142078748173538512077411641292193812128869779693670990562431098898846878822417947691390206590933057673608590179140475508053154133035885798796360630163612046396369638852300002239250173647512246422764344702575411964832942843213323284726892784346134615081308599225442806443155927945193597394933110532442217543946428289929481174520769447228230870245126731400767226957181949271715643132327485170392746453231974196451243719236448780119142496824977708562646854891187531377597415102300218164695158450558127789100829178293315069031702712174006601538971858803201205371650706892703179078887518620101826913536729363579006966251470349931711533504576298582021786491950251037956316821633270935160748701138369428423724493218998564301211398699602972909432633363068576581847553445846017766075505797254389953932019351413406178223871830994764211431357260846753739313615747095981241838163987344390571349177908443366905651650905422733688605353874306135871056354467956073204067718436565158545068015173223725722369228269593884843942691973587700108408493526418263166052911875830018293697058336544782125308299735339643016516302190422532398637812758926267116884038470165222398496233662268066360650790003041050955313687018592133423719482456345018961148735518390433652563199519076626177744638640889259665588193686236830232810972780678736418399730124657039558385998499684348697562564713309277733665020288932600814706779389560376661918132211042690290014428186813606178858854775530662526955613450029837309952462109323125355695399664813038314761858329533618478847538511543878205159083782328737838278481056434413667367020496807000661523398394392685159358166211161778167851323602846469177198328231981330466175103336831440669013252125781651149743913290566665915041973019789622023598632472222872867775425908961537855843841371779890008991555876561501417505740903219200981027247342578662842238700481412830112289347010336998561365334456510271194958303795779229072851466665290650228171589867838101284816303376193802262739674314076332012077343961134993755697843247997856901420456487095739078359445269905746198834049080357431810202826022628130518070614800276688793930827042278792525023192541336740763793936062993530528104987997452404568710278506117915344875690856035030845298677311866752989823992729470441169987671055053885180592628154727911491522488859352430623158451893208001456382593889218969269519850334034158919270201590383620663632554725419705087690488230059284845917684563924621956826564532875175297845496720682004564665145153612767030497937282103391867755168142041392726385148420442022450280308108145816844380931591351475493733570325985458191004174507505368176092767820235586337737979341005488306029249415509870300576191614225781352396329406580904118001511004330201341397872721795098791527027900880408416095468386079951499428863848017715846952543424124032755282657612913218504325087507410212102754330240079881403337049745481029845628723093629825370544225349450295876907951495851032353229287992313801298392255641578042672019574361662573314878424298477995671639706317011304590326119117229990923739154043825969825156517335496997841360757512053767871049880084633236830049023421417134467534296958227006481590700219646644393328911084364196474212558535586905521719949927209253223136319561569599757780193223768750690227228776161479915007045662785394472944340265953586960510286563138041838045982855080122540526710208958331029717848708974771015588984089225656089144098982115907840914502638131159970557800993583877606215823045094243660506002256125987306371836351798296678521828493963631962405273480508831332011366321690351455814645887966211534381363115449750668175523369789981640763423910996444946586585756369244837160693263958683637858633660863941684898749104895053881549221625251480641973707572803554194502856886694066778163237460303302278534900109755593510553906707810120766744006320542272073201139273744793064246999769476659380283560526356912624592199687688393621400047301327117131578257743286405515024173458161788981965539808822827196896386623747690948259465496236558939968135382285578504946133358993054694711884236262124123935532342694488050813064471988816606841719721850760888069136261606383303289971655392645080620699278258694945174412588090149960636610168281705399515832411021209901499887947160891869012974424760742863769514571330836842999628086812668737622336157324239555719143841512735887346133982349531688642374900727209935041009726328156056122094476585316229893626988973342467444427401591470823389792390408318736493796753893635681095692035806526492805425714122881390049010558589351367764155840072665838300647904834540337241496301637004642298454513929839897889533374935897868731922594920942890637062950953369080934296481344950724695173575394544069494224001363550474503895079052447859067203846921487618352276015019211849294630873973406904612685894954341718232434999568843624847403803864871804139207392812629402651555723523264557878809817835684668949688620410099795034955270408800311897699675732390073098996960851067930652116346822662741004283463291522925236986718968817155653983302264955400429772994225845592308641915805181100606474437446892624070227903803711219106980707511913480090515006920877166937098519535643107730144493271819047184744671710383045232406682458967680184940295977860704994587015389319825519157382217370711713924220253069604847737982484106345211571298076930061741215728222274534926367584547564160084533162069182914719847732564389866870231968469732104688492675888602687852027480017971607907325444420561218967138654759631250367452960298454299396831289915500955794557858709971041678542987831416738273424030445318855011869274523931539112681778402888885941110479610782341241256240975418097234624927404382473522183497481551717984768720730323641907649900937432816103077630416717027626238049810088657007701543029420447398547750971725602167904179783810462632713223879942422074454892429246570598937840381771459061121217259082965742137065554007957027886416093981716884213887834458729484838113163105380477986418247830825890356389377571896969490106481815408017285688100693641728996531800638070265905105297415686640626135810025591979086027834452836501870243527349171966724477474347333799469180420991319460046351952005223476013685085523071278732122034339388672272941622790250682888447492513208560251183719270574011042045714844750064957633601551565008673324308046727657325414798005347218477385877741903047228879743516985378936824514361688440969615357802225972537964215683198326089070919272333549778561010568255269604228199373250100108796848599460599140554154426659143298437999417392905439872069607041808701746300598611180669774614842965203687494031823028902422500699860217944179272747690165689714182416828105107667151483092468156441676385119727578590139884177134514646367093966153371420093701418478737193580849120527835854993744368463555739424650205694427391605802929124699713752570718358242674476209279942893972533666573582933996664755800354064694963688005006900332223526796695588465463409857111304766257267501966399637895249741269230261471205493325749158461980920250019455913956316375183316991217626528941627402453339343303098786885133897023811914749302512912545741511095515862623098842514679868186731341230821350159085083331096650783375361611943195769055938298154705259306353463346149095620266522053590754624865086985365418983462691066973514900282566366151209787489496359725166894972819607320582412958395134759712939956310350766480024817495561488532695688961477019473868589452798609935469356052112470356827053384618656279410320571194286492478879454822502185482261796832797530724015414796702032007871623490147890467043457665951445094885145314095243298061244988675381265850258859571765520482470295682522516058616611559081818738662841254027837432905166577208387097038326960793286368595353794428977219465371381556300850582030846816775511772159166649920670918661391698961192097043746550405320604131665503284120781646625013032679449805042863888874064075400824362704761158668025569590878190237366012354418362231446215433993517708710153350919074077793368419801165598005081580980445535526856483742240391308585329597749868942652250353906300457126363989494525083420904232530507256726179420955086794661917311649354746096688674561761600164307318629457200902741266807428582314970634002320243759155177776068503015956897548694179324484724682281433434855842523344707775661461503492471787763479690741287024975286576490833830151780996492644402330866710710198305615207209258309858500682431895929570562230140538411106278262224438359119638212104320399500835576144753233350708755740326932861610859365241075609828616596659830671080977094912790475236372113718610027653924037641293732061051086669140344899273493413458850356653332202090335174751724190949216221318408346328308045420627967883260624823544769381088102438838733041440766489541468076724260387627487893270966900871433290894653426472970558504505273057869508588888139121069321588399330117570955156640651252125743880233027104146133687480278487942290155088911846336777722149541006159198216920741683122080454876978879381904550271842759506330283402637105995662314453921796960371207306920604157171689092355598236181306450908191975560431292253466039076366729338536310202631934250171328410508081745584920844099797333104047513180372534764016023598330671159066870704922428057949728398969365179695399069060934499671625614209112654725487741437623472284073225784279442445718198133875176915487184574630512897943527687842575724727407833393195071265927349510413041570862316648412798301922404761528246937548921121882132433803797362083885539899129728505202205180762038155133187200695641282535701639552114635782846255116775343303093000145098771396623848901401888460947689258210004741237565207192433014067588148873295520037619037339713265678231024054263375032869059708827018100511039333002196056236417442359620439644507510237463927340022995224821132100655686402938860461889640102598021376824692626972652945405214568274378230800369283710252556912756849087701210802035203275773705563664830920104602041912982665172745066928305387358864209279173049201111748562555962187375778234366811969964430407901282696286850227447998671491845811821424615507324368765033937454824883218383376968460487734566633521356839281591317555493151900098560851686628280272077980672870595044863209955122422951657612653460661537728385629410752019454832676143035716715111589898954092679528075008895502455016942971051893024773633266189964835331316579989370452076495221193914575221782579353841806202169320974680235496644491797355490472808944918637190073862264258959366968035942674904171723754386908523100016374914465040675517549796861365688649769986406838396520874339410212700314463517320536972104507149686780743843089448034650697793467086911418802020693920624520099403175101615647043763013906087146069500158165268349194265620866747968285306443061201050415619419546630059291925611721480147166587041213465148426014759690089238864199679778409985091083475157422901090392906588391869564906663799802428765068723169288082460220640084334545953311376467024858792757674726078046640453507804302158395262196413038170684685783821526706746441104863003390684026083710156236645774401009053925970129069609180252799038316488459541728955771530252167450265084613657173199638825495481903995994328024055911663462053527575389886059863294650504944993109758856603930360065380380022025523767243328114253100747749396685964870001453714014826902322715576696819595265368105212064270399149309273112630031092708584334452972989325764159498037335558638307296627899674944359837250525244956434857500613140579398498147250793960586360955332795718867874427151245972314230892575183035589200890218800014598171284352524161807797580409444665655519675535515175947919546191350215025264224335151501195631219238013797617502711356501214077116996138924757903093262757022237457206001974551489999336223457259105299070811877455501832429541438992828549782539058049183552177089190660962586519310745442280397876981090651170211000432682983445541147781485459931905921049107127463448039567341696068354144531051326049852390648990094817650190320211017545953055767989351056759072380570112558301945539582435431799726469383422613988603202602839379816906284353187312281351976601597568372427177265252424129386092529069302085622099258890434056711706373862216424828531996715424340850113568984054879343424576226344167076456918731381960841066412808813187171883873195672264257938170473268855229127499200795851001398934254914859610817337526646024205048456727228991422665532553820032739502058580312414843903902834977530416094283663390546850164785768924495464078548853553529707552971779989695670552078707258327778103703768175218421621125093278824485883024848026661734549192032550442138377821003154843406122578344696311472096886213232722781952690620956693239259696874826910858223638750659658526805723664073928269438533587870842747700839426156686543519446032037308315820787812406285675923239599979521357503254066365555769296062833174726546294160078669616972636654693424882736430929976642530811110152539327142185710101736823615693903029462806418526741745107795264839572826574077152414681700664628334887257811086221527238403643898138051711905321648713425490667162670183277080701699698592095380175688292525997813591919250362267780583181853997053302944648533357788521027102588135892983870079781083571583575088325322502619216226516492605392834621044535224250881129352226421435501711518663339921437526913696985095882945674574530511525331581550182251520437896816163354222224516758760888048858914333009847324431236060803014121536402992166940430028286269423295342548240894600495735534355903792544200361117788375104254699833466151965537674950014891120690810472032715809408004952948693914659168797218844192747216347284139949159875710316946072494759632301335044512573631551327518810653593951698452772809771109826029758757183286480125956456029523434119469657196408124816770272406107694079261678949390632141866822643462531082895316312793566133697414098404250655260606911094574102262238562292676872868477454899174938669909098076641906409952319547454587065237630629412663162071513486377150810702197737224430758700812502157036314535998199872222365812312117182786589672400576652118545854966035885157641402585694923872337547612563824163991627664555882802511094491861138360575197065958742548442680025516869282101325434311195292972286529933886172365852247583622547718544000072991686601122141097132502142339461456475111067909449959265663237034293194470225433875158029709679779323206046367413877114161037810604508745365178327342651575297386741583632945585170621482017620231660046960481142593853373410809529293084165233130219792295703921780831776299468509617089074409491557374258481036914486972533496105041030402992620877773194184209707209337126156438802741784243313766612969401463847855198909713556468313419567837246788026152611655891020297685553526663770383579114688405089156239445788557392236987654300391473669060028422396109544816956998365216158354456897948612793720084273165277593123054280383573742651514610199719850613396797975936058212554544934062419315643855808266656070945391266791483969620735680992975633302696139016705212918167095419501961760550169768407777178769030089847662840384117583186902028824380771550505339392624281885307109831230433186372375168075240695653767574916584412037200079662473388409384581312041419486380679521643432472799969489808598019147837973832214084949534651831406900114143271804704018698326882972799471459488611198164650982237138422642865196408561534074745672221020877382175263458249186135566829647403053431511342639387446541716777533691203018347097408221683580818044508648869999145216006661197727396742938581023879918070500125644741088599607087454901528703152282463536602655415220361322238475911960694339119560490192616938814112685400548584195995265840117951681749631820736834101139474355667844081182244371216728436089209383059031860382576698896286238479543619663910866766164281849585124386876282174349339616494291635882499665838766247834732416117879160547612914519330454436749211277929246579862940355972125617352553659812803990519932143332855313293317002511301798432882934694593701970071215015747029277089141793820114698991945805969227003836836393068143638792553276116843342696459201222182984846245536150767675653995282559900371897658965758130840210151088826631927815187599910389187747141408402825534166578408018082270094579044408394337928869728967378374568256353060340057212013979827597144591535606696314619034089871254626474726898133399307817990439440762221232300323707105367963198451557698439491958114163715795646214081122354700895161527793021091757458070670467940902291514996851761411506477447116096739919991942974701541307957375264985313911879431104843707451022033770929284544757948559782346644784535848946888749515543881125757806345825478471109028904218686106344970963351427186787826401979423311286919845289032808786309215413456151094325408277455693490213041424147861117501759207155209006950567199698349034357465993739522631509812568311187892898637858542584994245541804413137256549716742663719464182899758403638837274092748737813791946585681173831766024651464059663014036635823287442305251058249296556133893442200894354958906299972604437455782267650423237890956340236610211006752690849219755053978387256107271607798573853190590606063838494437159507194490467408195991788315860968958767659143985037973425989844589879740606910998398257220326215058148028257902422853890556113102306483593443612893867295869188917653509779322822832098712842467996045795840158688365812331704302670884488554295734388911019317270368904195136003518875764686775390105270101850636764647501281136092345313383627867400589347789776347375282478771491042157512384629934961120958541518676499525998172615690467825491690385376722934142861054163998690544999424957866975533484632433492117562338153690438670509157935361591470589973168710472054380122800681999586234799284263058322927952208219442959700486899426524535196138602483725396501269928530988237075118003007526670958525696334999451035162309555254816457899875317063913339046339422422777628198906164966410067785355165131487045536880626011741934729774488695467566388526544605087717643799594021065424100390392025072829408450272358129305823480561716482975108989056149275100339240222469255237619576894499501243226802750231283051730106633259345523761609609098200061822304717141541046401087533205801265866077445506145508431060469982825284166860420163160987501311542211446405242796325625951319664108471964416841642716893737063973707693780772215872721759167039931843734671684931305153211255783124075679462631405003320596239863521627917519724018400455178118692126063556830034491556408828737574696123474751535254465319929046289654907338645964388828540460055762989068864829396538312901490116113986518299828617977474439874831250833749695041528010922419719237727547959038697547589137954568697862169539094349058545989707163581097553938607315407461748726460614092627444995152716027183392487312995351573551700693776467802422612050456118701910726253540458512888196278548045182925434102010215080504467860133533791053880084995840990840074138659794571346675058215722226613411673865229957992143481485112735130283264894953446757020310655675534191974759405231234542975976509383815644846188396687520498233809711204082959424981885779773118939580320168226126059512831914844154550490991111328515902732047676586778981552403831709223050699337338124199964876732339013167982677719979841284164501207700286985070783471507648737823428156068169915991292806740916582334038456651965199264972717212365494115437787113985508420208924754827257899844475609855596782843367372670648752509953602796939564348509699890607035255022653841431506632722231308985311223241547604225030776971882187837205629023770014109116360437963802400336228309387050008160865698152728927093120901662573908972874626683689838875957677050920124515703639543710485120924614049095830560444771070454520542597546365581377825290198210769860616990102487855922232128623630457240033232015630467411332837637100713995408654298949980918201478765845282787583001114447610605128464631065080992936038808480555247268085826917438220723497419867024131462225510962549933294294115276438447723851123642149950078096345679577485164067603252016484833701383292497825261990501640742539238779344249077684487490088857785950496521943845868092495295048129650615078827111805858657978488893424501235190224103463781903414932609603461711978872730239281868124898971017760670244735810918902864136149640810026941467094911889800384012400505277763837451186443630520686225340202124812472688821896069992719065459168803419270658174301413884784965682213631066566934977435109472551162944188610011190733497513816421952578755977109944730005517755379099800932367263254827128156826286586894417137147307265859534543697887059610015123424714715489847754028669343633516036571131307379810962197654125685092181147354708334253004241602357823273806542053505762899708840534680923966637687560848435923343060448374949205252054058875940227477653941694513560918664813390652592520774794272362472934450488134860850124463653527826103682004625992871708160239871107153779877121614274091690331138534541585313488294809413852753220263991683446944462889016583839040149293210195534091039742189723420188009242087500587292832354536465464460538132626350213069515176414500381659797178922503610846508035930896662692984750244601263262162343376065120369968060999049292685409304731413846375333845642867044926099195199526781966418839715619912191393353407610394696583819747191566850146782304472201924568343839100073154422914170352614849198679702131969703546286947034997908649175097563634205040020391308129823073375174265847816742742661053344803057703487139516313532974797716397246181209357438165854913567824757182727500530506673848885535457077365373818596811492327469652984501747517079224398302514465481618393814153312953831032596621031744819246544261337214241165235696917511248096177826156987821253319536342142042933586639141316171341839039893917722080845296019746790104263766885330287370270806248770803543644572835797336451850176129099825947383620996091376204203793985872152647717990848367569380751553821371465683556878277830040385135457575275248179925329692419898692825738099241745938677740094801626653698490577121823988945419540227532996805085959951335599668823966500609698365150957381811893766429538806313123045972596397244286285339794959224395112369036207601826798162206012886645931664379777729477498383901897829190690312089412023770448971278039100890693552184773086852590145986713772878569483730860412162090726879956551105985549392724173786183935695558141941102784552567724668786254575645311441371413342472539075641141960425566654411606155164930448151638753292447235977849884561046555462650150858178413399460921798848761007755468663582276367713854206613123422421727321501313865808191412778418187196923299829777340295524315581967384050445347951558574832499845865943978779323081542536563671344305246145300431648332086900175326590524057997841698279297491366005565905933264979330850933782990737426997668284445139298805257883410662644612808201155240753535002213961217414051239211728979147649386819057699817407182565233994936723362939928871054834753460276950002988737822804657777576700227035113965971642780061793998526186045246832010520038729426081870710871953321546158707359988713337327266548214785647912185389810883964373125216908911343976804967365637308144898837463338666008721093592210095353757708020419085840072230576111317792014595586654551539621549468507890930626680302541656428666889470681113675896754010415944816228263748779387246209593359535130715501524186642513371561737698870711280346973729825423287324313964618458047446028211928122619746618447540020586763346151366695619924383957803095913383816602380561290818815627099616014290821597607197187225660165998347124195142166623718205325433897451274603279865360184482030800063998128023055633950911059302006464474082574193940789779526085909546205714407283458103036511909941676680579451075997004279351910863825069794081850531121458587867129028604185650165837628433814192767286597760742045850553827770027470439220828937657822916339109951153484342226460724932709239252115860720211721411994983132598252021500192664400340166541238177321005509841898482032423437745822514405150564599066187773560824548251902553260068247535371387875071376644886225936603927498081671096003439607803215875147992309646155441697939005599803232091370194432822746845001854981551000923366259679840499287181797381947657461832136208748283878799595143334815133887404617198621708492249054604908293791383560802071653963621278089262459425607986329478360270690235652497644280146335105160207515821433761849376298519245795030301671480433789218448973156259361797247130052874464016797380715903940485151364583864614696322585647603318202976706581472336850884565491770487202081879069541174470908493981170763256561262224747429097047850924376613310743495132267071585656499449650228477112741479159749686245640317854493446421102197172827396833040123424947700885502527720469220223640464463013662012238436359989765361788070967475171551270053280571205996400193761686834824717651182420172471681035362246664791864397228192417113472724197249207887111985601381733212461458875549252459114240676045185305578026184533500169692935445551811063285428222735625373660642043995473558958373650390583424509268159465515600408668462163329199288453543695975910520947971944480726676649159042576955656329793933445675851256650793253820481559899419989923348410525012385499413163859850438957211759731551410499504718653678011305686596674580012671388854426806162904420768806764112432719681013922160800612335345675543609661951751862538110477043445677230037177066785714512757700511449323659003257780220306519173365750430289331252888547443643247609228401661124803259561512919807458481350315940438676773662735519073761337736746211398620534830253566487694705871235047706855582105231679962251301985483356044426596994143125901121049146788915829450813059353990926358134962866626471795128939597943598538422382125615454654121567944552539666627726422760908533229829009610952214053629267407476475105121485836310823666801703410767626034818032636717796414371162112315935415643539404024809218998827303382031011584414497549660966044651910552608190778989208604233096009845831358286904971382570195132850223650574724076543571488828476116402631387773750814947765248699358755479877859737108791395586083663893393818387123683946748726946961930661532821407650193231893368725876597237067239983869988669763938996423395318350668146038270628535639969483805159934083918612808354617569818984346957383356604297469479985662681968794246423693941309871131861852888231570609251757918772696434388168442868477489272248767738125750137969894850092780137604111127685592610013217223291069545895863995107171874409977485735430725990632415191486223427733115923246068314480489923036961928163940104660237356986081050618722380353745766980606481669905516914733879492002871724876719479480114606826409633992610033297435937740277561699791278212115548819643905772475585170770261340022430942639455289416533454141547460393958802337180300219415975202951108453963872553897402461358855140048390831991341197379757738232454648625469224875161437543917312907649023617764591910131295750277819654652980715524411380938691851188726228407477620242326008524238058633413718492617702941467323448912815682513428695706734455142815905813111016733385681729810278922816644511049819387851618224077579204156391029414492686348791655351435346830485800425065592091029288249550687855369315163247721007834069014711009025365484349692665193093274442792077411112935934620849145400703485414505780578838455118991203309451223304776675856621383666214302051238411079506603430684655199298036370402645727968426083450485670445907806323354573979496805277683686057757435725917779630281964216338980230758266100534331020211273950705684546320484142616130278386496259838700919573821429796127446424402047942635682244859420051768679089336623204866661938815523988079256756034761575510169732847390949543766016399409082364287326026078464100872764728287582877708552991991191334301490540744614727749725308859062562032410510751341041118635298196127613053650193961148458859011229845064097356850172216879079100612057358068964633080716614255170666548055508817886868350517193566298906883418917254741020309828603640748364844203217416252050405231588678524953102505091782452896172335553423719294878074859717319895154959669110868247119426379028122281560588820674677521299499755627804965774316141356950141769379182743394194943457586516298498612870825324344661188917469792792601889949766214482392686804443564118493387638335849959581052257140068675645218194852566686126262215676273315293172004009046011964801210696360517086653204640351048372236446292713850300524202465160885240043961220820082621061659327100748251602480661391960227966638576505870065497625443865143557489685540318784830546963031448023516864406650223046177539321669581317466173100262541426458813154985976760347373396921589541670635745109676884565544713659860518902047573323206251434390574064978275172949516608873441519942937141758778471005443299004028425762358347600650878590499448541653192438132563132266562984860183919364344193424754760563418055518806260844083905841537565709993948579069780087682452283343228675273005210214494411902298489568155584865505640711216128763526570635964405411268128514100315421936834226785331655351060089263832101238587104651478928986711240890071587554768303065325071729156300823808187939190907212665112034537431604501935187082643098613397358560754654829430354693867583026183522526247550909556544702894384824883440573049478271823575645312742376260812991807709239394582663336127388404289176103956252067177789393520380797690911936933162136823396876560797994281944959577151598293749992668418531330943246167873352676360356900623847676485759761487618121972698342097913941638853445917553220766545355359350006933073657294027323899200545285059784874848312870075153347087927065660103514283989330544940700405597688850517667264520639585596217552679712916258521044287530884207865891412058134503645846084621567192920267430404897693306704135383311547354757326185717205556852089822792635627266515219877307253667261234372202024917458735075315000233744693922744337227905908049599694057063597263766987493867668900649667899130167127520160593382506833637126932091576150964716395845207562508140793744694365681681880409560336508888918275603698094031946307998748661934634050905237379861229257986204764772781183044635592502352809011339760872931266642413384118239585748698083871118903819650638440957635097729346331280507907475520001085924128981403038143249467550717586915362743404703315072115108259923677327371991913262010624664687474588540061845346002497253021788482755045706104498069383008327674986372780076648630859106645687884868149754561932647681421884510978949305790234740094172675418565722181593519241417507509788022664205215014294449775805224068280231023263176261330212526464844884144026856109749994293385860330097207638076994889946395411139785719395963726818047777321128149942902764192463328122398447557756183655217331831553889183560901003968741021483222416777647130623118350970778439810847270485646391989678891607167655549745281516867789716722275216425611487340182121630540827841954874626375115374590113154678441428394958280636331069656382788362944690994381629543989964352164183940437641091747087291238978652483561961962494311473437997534724824618473895622542541270969239898409276968419487548132761167897863647081080900915144760432280487354930485082523875220502126468707882485862050616104545723501138933931079324640391710073017180419486289282626583888834536633920116975352527007001539322168411071412354340776732133597788815572893302038982113180979035140618158898274785200757350502039046435960738212973319745844941216777556867809881787642147630979163331437764391615911841540397768152005975714575119322818904647579769991724542412000083937267038032527276901287666799363907586847727962929109564037430961270796798653838943984832609487738938661783519154413127625862035140077846369179418478765259563973720945128199915008182479896289430166197310186481753537806415217893733749865787336392389519742978155961551434806995605388530434433654151674504114600692854744838174912066763023182935971465317235826095487788687115581675095586776538252100252939986819684001546517721014760440900986544493959825300914625745947658518717974363223618850951789058251500224436639555924210967194662220367557433665786560918591895410953677985784650037030242323648696105472211016633672144237653455970242770000521154518194629943677247346948403083724679785289371883370646254290752596883957300568527601928535975768857825591013093879243061268885873318942715806547298580998127746076053717391621186054487601499205188096977481411272285460519342122514736361277956390141349455944835530263534930144637323234167214193392960080434537488712911586397200172121613275377470159718814932858538511406752705542994569554984428170408720129395664702691333143188272442451552700763471876442700279277909089197890000273371828548523846902131875225442684677797771856728559837227716761410731805787228783378242735443265468960854447056076308548140618565290404466303401235928468594897710619164926361566931357034151255060351811609902178642859221148494627444232172283157549203578444414702502271556822992240972686448750451005162344813170174901192410763164202306475152532267605443724092691969532287220268784142728977588198847840678758793827981910966836158497401884834863519740893998817953063428362962339302568557742050823305431987955457584653762250140980465388915232924455595729672996988086736434514310266359621543261472548561122148964253462106733550387347931370194275339781707579931879294833706971322870013079681600309516622469077501238316583195338561910661993382956378646307507452986617614634642422747297589678364774094003091405030714112108888811820790076851940350465038829053409645925739769914337365729135683975215467474256956010958516090170913990615003993034234350723561746448438650044106784379187851421609102890422836311943490940112090418346501127617604575897014701649386798903535891721024539390392747698159193369453409918135685495264931485115366171655296588006438468919743198144484156895534955891792025424311219095041279483295339983410167502989189582648935340943587372942361209932267899739733878121268059748149993157097151763049430260097028554538498844570588357422529291216200531960569063972719992872922634648540147971366791932460757803199218653044038110323872216963733937907863771061745371471792164681354382231966647799004012482811524514002126861252587393508178741255995022960089210268402022192124144450777594638170270095155682050949044298942805987558823260910231205635888543586098828429890819843661667144280442499497220873449402796600380572091719652776886917907395493147148926056226795312613528007061519703600763638229343400514188325376315439737813091417999558749183593360029182847642576425946705741426532591168990551834226253624417035527047626394758295968157404458583984118538921521501924301502899687044297464317235463421021210648626047393121535429065917648386349187988784982601291421526216746411613345163794862239844635662236622959338913408551683229994510716868836044135274461215118030478232654505008826011603149638037481851180631754386887801222380599489832366076222789209945090811963768187901151720883702353585302785654913622206962927263530482634292296072895600167428383351998214837132682084229686681445912971198390523743199811379437701742998433731085974500549504865674822177204736157197693749297999504948914362840694380380728231755477862653380611955666539454065104738282049034662689282785171616357723085031525076191544541541050143252430824978432627273008370946034205995895477339254701385273549391885900608424739966854466869134152173820104790602052166586538909227846167923472790569806551984625100355533574854605419069556239213140473617930688692821061756381880737093337755320112537788593547932253894783522177242524088525387667390459526267771302099845450207870735465779331403260914502955428363648349979477551354975717976968778928535367897362259621020113460013756352889298687277018896414704500665414060467174773183155294876719030738382136206361121824759053262876073545080428577065879473958984461210287037282791352162578704826702632205203786601140533452170699019744550368145520555119082603392331087743302236318725814347376463864036524377786783094700687404905558435025198844096659491567117245795222902679447196009182353117313967969538264870260599560169033829528419121598964222664941265063076409277076640904726560065056475851296134032485093237869689557903758079805692577409365120709811257264667093589937451837320134516169000056841830630272434144831725392899167084720538015830141282339211637134404595452632828107159524328905603751167657587101231577762392315724868263321592781717242943225587066186496129937115597952526894002986956451654814661438734533090004058260643184319314186520265342706732733542776424214477012720218939347733235801369105838290136195863744674042760181766112098298319783326296209250168820005814974141084211928754077422802834250199247246962670063073613872941982767753666648657542347337583416697923222146361724710868566715657860387238058284570961492996770650125094115309128345812044235167856721119867779529074804196106544652123237685660769878727695759736623179252884683819238181920060682247465112090212740602452868103765960956383467398819858848011899429004551804502672310728133957884874992970509630858558928463116727488047750754740226521748261910914323770139993852290953221910120132578626886214378524386942159696247916790652420178742510126221222350123466406174171367294591366326821149260609315409372503138826672215331497599001706887713137877161292773859621215608793501207401368624124740339553053882092448625557033334355001649594429429387641936993312123354338556423528937497971506481053057758503049625126020116143146717167051389255778550967952886248619343159658357117676382605035488568782198338672243927181361877304652536974824670648227059639596470472974119907160111247821526894145879456501651726265793686788419819983887566636521095349681449060513200201979869134741467461192052169558314053643387053758948068327151660885748002857297419543257897903459796545040985418425886913349870128233001566823238663387608943644699682447722738966462988910030261584955036426015048600164224870112637967826249229804423708802016965669366601061985033013513933966875241582646823703252681534431022058343016488042553777320402774465870205239146392650258823545683331127139003646041738019160089788365239504596150277384521692358067583480789631352866625336308378715125436430013125930150786373571612086462229032736988120358194702282638169539952438942674432788992186938328095581928019911129042063171425735569023672061190514983078972942165256144413246762753644554567640751745431054037768199820195939810743725621342982938527575990820456611635177021350002033411194313809646650705235698586347468827151744854594364299709197953922914803928370014613688800609311075548888581594719059672297523286966552942156845233251103900520407878212698025399019706990428463740185188292410548691268857622572372061225848650256516208748008062521973563294318399836987109993725132056776434372355440706132165388874302351813959922803155407462676273251516466817366362870813072276068732275941910982944048560296200900245220059335770387911219626345309358812520562184466165013464117645781035114476643316081534849050570258237164450126515529802939747953165966312591014392499656490570689219796895940654739901999732297485365412312880018454833779773043447361813889483699370647075976212771588504847596037271847653328674691726388334962937851202347977800225797967286633825136093604881230823852692526143987246883015003349487623836704351159061009729764770189104084898747774930632664695159130465975934315982563313884382738773451346411463935655609342072653688406732059733780495986290597379990509147705785817301643362961425395600206495561064883993250652023805524002160447897389963247507479873266081417683654965459215063084943193985705443179571122253463190042269444838134528472377823959922316842829383829638779771250181939424166951350112307593775077649931116632866495008190937053407300580300660638632840121438674527623235580607481907686118309333964211510672948503838348718705393385068075845010692258722635444161170673554791516881716152308780215060801097396587480540626823512547507173394089415486664054981906052961600392240241964345841411052026077198248675186235387729780897912143559362104497721720305357895808583267741796501876141118793445183523638405248832294680858303691531666921115654793355438313461032395589710250516040949591581155359949798287186857377896946821119147505000584118735828301836345311402290583465011219476529707085444199769934081896335739400257524565379099425640356543722714039476522706881750590324470349272296630015774841652309127372523265426512347544365270642847987114227311501973789112122920351623632761324883346864474126396076415329870640982400951344229417378126521130178545532137608270385119786773575178415129630791428403285603808928371100224305102916212014126450561991512113906751080489432936356333808443555242580559530163973693507358004301982525933012833675729398992183346178745353966760230473428046657525355495375836029744879740489537943772341262236616707846984765047957173010799916530733068790212243332068142814876315932298343295912111617893279145805287323302535692053390765936018081913247692629696510019762088711600571375293600561099019318113038403705272327851101198878330125011596344371200935033836347548746567056898534788492150161867947364175592838258118444034713550629431892919793101988038404243148657624609842203526812235708750165238006106391327418425732622221591959651105513197716142292955238667613087537852272865148044726277483817091777534672046484118412736091485896599899240714808786535641930874380907893899081687865575643092061159583780720191909503987333907558813534279198452251950219481264167623288125080553632308972540028356653439932514054572439861696816074922859871523026186097057676766839827717432493224735803587145990938855792418305626270040879334738255888504960557877924922328769227302020522401266235144449608766164171236275888362023943313654287149403328054240259800380808362449291839025262827833317205626337992830684123137113160105544569109569484722633013351822670775295430086365298313825971390295727514357993072938336050495137918380144670509046472268467977182785243811520109298775798799424590547246335247800284485463023253148007324368394396735409738634667794226568584413776129715812910150488527692853694065746018904704271245377935045792420856502765192223227318030427453744797052345008649409020561580642103047579185428673702116377606460328853728374808056408590343803183718577378525207848235694528746420454392135604685768177961327524344563736950949981711183794947217753856397281413088831192924219019176459504835705695714986322874170995739085758491829746634451310924718197807131354401284671854550852451393862223162773997518421958181775495001719821707048650649373178846684930236259227183679412404708667844744197851364729678844885198587175214506287988961233046862792021278882224549289318526241011756683181068510413301369623405972544503675349751679701855649344210596650355871046335141252931889891435112625376315483837195217018766193820712988380774898436249045277103327413472309125035498920801558438561369127151378819958692661063379324351576709612105603404881235082464971736466393623950695779626355678689772247121036855865267141492041343235846439509280280650337481558883675968242734186854571289763382803316296330908874316094559722227585632025289965277519693507416894438772495051850548661172778608756270028209160151372018981371505151000452015973397745632116084060929653875869981619979850562299927395325404609380411789685639229609122852933632522215755089140722047116501363489629088300323423168382885795126144676841231186604121876212552524629100783170644517643726490136017864467235711803675044880240028090694998343784238351850214111299460905592311927743288750069503919996653021426156341305022862149481581492189449978364880586300292724117985456495520671531371492310400040853111311344983756515485603952238671707326999034149919386386122444664522887937565646631068001178168202945598840709838592882674738356819284084118119694171159458755343060678014896587133132136612073992265085276907390882154529474791082745782440734579504233760362048006702988629520511149837769275540314415452888514342091237971853185899060536722477888416812405598402011462167259527704762141507864262271494804630551415772851300710070942440298234178976757538143024036501949225274391293495705162519138721603630413360153972364949550360151574776080548425790545371228225063152614851790901863886805313146233121829970251057646479235920130930003280006901190397567389512467111266652468588226599198871775188941250467175477592332310617509226834803342663133766561375936303579737986836164430555774911429312947316748781992275888571607583952452968402175884780066561300524147609174039970347657189516298789710670053632343619522147246381750657117260765112947123427774127637445583258417309897420585004265325094820354381782677800535945885319896265227438745666921492263697330932741209026035630723694404378149732831639078260177942115704301961588725856721946107975775381819271631760894220147665279153962582019433678785026774878549837563005377095637639668930025788646027129337061295598085613311205446028775422530627141082051101030337174636133150313666441844961274406345481430575179205716985083930568550441378533900730261203448784538533293757578246870724271167129518627238516563726389574169013955267335263293853556753713413814533275385940864067189518875354575116911733702901818991101768859544671929495910373014020811486539577238469559115571464858785176511550997362725758603271510297778989062405689744411237018281567756918359785063372605850226163374433062107191558459560602910158998384922994546621460396587283051327440961344980353641112468236474658659947161506781617441110065173224084816545222426431274044277435216892120531021843618832229885118657080788172211413361696199360998558033299784349882433384221108643692553287318908337214400712491444216132156839771567431215392931259039044541137902329313847134690503818055291353833285328798829888165616550419376291746826748717242804184412255662197086321145914190657406185651805627300858972455443493338337135243028245456947970413586865063599112062280967662427156626257128493953659555786568533384044621127842381380212427555280400000727787542370899510913856734430144853457561430730245607356246536320940752318165159596656567562810987075471963977390608923014476212958296717893488843383271992174971545819561814196060292685602561885902008943323909895247075330210767777207861292741811310619024846305453057439263166023129845142243216860389114692539504487024364027996402495948483072637883789768180015732275910496619027995628470717284902131854675198223695644737204621368089588164212100501533138262513789531587110770931685859512153727624135267807020444483072685529005017770395388814935979383712923451196478491313695701018117815300783086012352976744591255295200167684468877488905025284453847794356849008479804323158619953812487776564179543183459430356994406246354075615464417637478362478126179508724541035039030872991370217225946505536968199641044570595176690652484858895344312919172797392491307874362474272834309044403726302392601706671760792973139363176107876436756148934061438693403811843610329141354639994586191415709850092825739847325928041124078509037404371321826972121362758610753308459329243314277250846516046754887719419081832999332734811021772385142490847059697818652364322445724518657785953433505965867391193114200258373273346804897605886874984404544384615090974904436329078077785241986351174632472314867352133451393651450464133971035441442087038824841887394394631956292671290140965145893894125522151063256835401026778435039043202175051102434969812985801548515556791478946404587367728377485336014207246310490469252723342144247856448054558810264399506837654260934586503877230298342334726715164364207926781534464472764499679943211803372662262812207637692880046712798558494583713705274808624134538814178560130766928141737425697479873788869516053979817530235022069666004850843795008392228118555809480891537175742087406487296186342228030137940883495250833816909518030776278075489125315009609057467648744078745619480421694236857735506708989103283474965527504873068481787218003533154650472957941506031778915524216747917179734919866045288585122479995799190353634057724337694498069411070253314773388147961166871119905631798451362038238277009772308169483997568822545880257194999404347643174900870676618157227567002302139553375057467118751810264970405909364679257134483879339669086040567013076967157363120934894028904440755868283152897932638641776848063973459862858286942564176892770692565108281886856570077159330423393837296834581376262360079675512397141070891511321953173739470323550071963352413268134854602602940859622027962714043469039215496002143455222547440439814766745757718936879896265855056938954855346414951296175054943339630746283249166028120723516924342660515344646208808975657389861931519024373724332368225754404967525622764684309840416725226209931362268061041495217628263501486238372417921216516420386659547654933714562796592535903026087979074239558461917230591181265712101131001059731776928749155865446723706894757621931790484536981519174981558592123461148142636965690266297902233450346502417769217584855091830070307427937780110161041429247096687575228629130878378392091602190627033536457526942137856375993464551492149790162274821742183251778489338220163999297496516166432977742572574535364947255508976126253210186380164170567078101687974262965262244152479812469191981697892641252273235959704723197599828982842658232942906796348702373314393334422447717555520572905145823948182057054288956619536288554414500923271451456893802474458352702048969599807982195406859028231752312142093662496361787317984019033255678905429312075662767872129495376470301670473862165261959641740453392738343896129322940751081094201640499298908234090314764331170536576223838552728194842460044169332768836575312523677300659078670168368579320300536436563191703313681123319554130034861090448250068689566623996961006281351054299569642691876975084675637410989732932108117399086982652809917211046463624743915740024331299170829692768321349808576677103897926120548147756899721108385040057193116946054807124629959105112596140795647489078374667527355604770938271907668405869832241411713447215503256815161888153028531552996380508465003471084999986498163829612765059040654785024100626949540153411825333926083322448772484809719324672696021458373909158752173756373532267777450218865736022469544823855390717385826725013356617798130987200650842289514316317951836438297251646856732369435448466171664684941467600260955126768183592633187286228861060651577066659203058122089986383089958386303662279441607199113734190080419402867010946514161345493634044899620954069126979875535811583846581977024206819556904701372524463592017351680551381312097537410936134993782841997090987547071444048809409389106635235011341052467109856344247198186320961631497261556529103455176076033933347653720357711242203759901735318736147856147377751179993525641683265732977663928218675670377377092725959792684886141885493679250381316690615820015852236014194662784604853027098810806725911243723389934018395103752029078365678706210766467424368444718173491283460491507080965959859007362256913840095214882222045737827113571485918511840263625130895048854568380610052478747717632903127633399711671592576121953555070528783961150766592844638631355340448242111558656602649885623562651599055461315284666039879408396278315689908793660958711578575538136580567535657932070045317686631310360726569024307140162757920053502024417993973140283876043966525902166305410269528210282162334588246491627643520410454236412652057332112785252254453684418962423900034232561412228328510557787242783844457242063683857766761929388474107493472308586975919603311002522266729279251583987597904359010919941304540748323520548052169921222478171692244152354338219017750032703324051941813760417012826004671606954651934517576628627439380660631935348200786722238263165040030589440394246610136269657451499310832880842075694414979064044103390796577876531063550327043087789713868317463018906391203122775051137356295423317148909552476045046447642994679000501855532706134822079456598367471841963682685685633715434106986760349131027431414421007165040349697762951776211103594702893728064074393518065370265683270967149752522210870707334942023148601318375244419215557206664528313081834888805041094115498019303451084049324179259758029755626035087387658463845620492210359592573318881927047358193443295011100791628406400137755511981165934182006471470507631569437427576308371107904534950704555987262779883534436673515691359978452447262121087961902983151989466355321699927441287512002539214056037660306295051945917056775577354427936482523333426002482577052581924700274042782076338156873999187640885864311553625309149272463911505167367016753756060889330528182895097852002150213664136197893566362824501361282423173891559998851411328263782050463187770450250762010941907694561401861801356097109789947291629519174152596214839058987318834889058860559277437995942479033797325594263323404820962971783997238305422935731436062718880783928631555377044148246858006714377225226315187702375501344557170205309129742057571700187883539354058364877826805585526531970161961328114133211144440941131113215303543543398204670349918321470953385351810443980955256913074044725914958149466659599095540944156143930891309716740653504569174998604942487751534892890456996525971706896749977103753276535734551348954343393716170237868345016513798446192658412871050262257567658825064643402112753947728343664133637297031000542555511718726370975683402024960468884563326509785547177003497082430547893309512059354736610340216176434192988680280190525726566125480625527511925979423621045367057541069202454334018569199232947205178126884546120098402368634061806578430970979885631155137044751662398172632695051165357634424445961070840658146454940647931001324187342293947572090974857390260051699970827065202112964564678998713433034925897277477064434828694160236303768291575657920741891018705332512037275034113136165838326361593061740955900905544880529618486135779959507598335654974356342719850846618624097643513287566672903175690129156262031570558746745204365883846705525068650895654530199659478279278641207339189796885794256183316690853769984239007191071135299841851775200738171184648385800045974253972847884480229550010629939436302156118114326917217887113605755031282440611210574025367314214483399727068389356216714746266025356753965119890827387006237339628584778049273248602296281986183047397123114803387948536620299157342793603477676494205778680735310438475675887141620660720486980063351028980270120015106021040378473939266575771123397211079670378847218817517378615719800117477541241524208796649371228643940335720203512910817755407896790212299057247013460599425707477347477006553917183824234274956378347200200925525994399292497709312503403217600895039607340036527748447037011972689518362883836058019580965058201922744219073605612216953508192920769747395397694998099895785184212953899192060540900058430244975933208088931267031123452738347694408790700134562704860410133709532529478934553940839198479226856163386776960413806963977484697479368512732646571046372587883032029341626208290880558288077058112453105918985299934537157228590379225085028079598454242416719433542395520514501805643642079362419450650653971532777899215221973816464378715050239952923621587319400205021522532521859802611468173392579783019235076774790384044142611758156955304302210924182697668683883117422629878378308586957927711054698927781862399752000845198506252879253047134715623247341484121045354294416012050675571348317823416061847827225295755142261436355209443081011112412158066066403046654389633979014625645793714157821879059314101053036346456099211132521004035573576774459405549391993193303649746129152113210289307596326407092401979573017614485666831381200073282581233960615006511748037246893347542933460201617496304264217692200180557610340772713777702620184932251383712835424376168252146852446640575072818139235783102998161419801776915452796714628612545644649073897150134513706831129643121996349138944202498698646443138780237242423538686929084312850035701622410995560761838338934944993713329611887300138209500133271108352692861421147922296748138235583603278489819682682964927798644969321402401842617510589993326753948543773716595318399060922445269047689941052950555973575806111577400039640446905790283518363317544680036343786453545579607470089559199881985051708122273277256255763465852941870653558478599775398409662373041252405238680275831613424988063790270872865817440751600974951853516486056833751543277220722339202927391125697460828006059074590951525348784939101414738254747219656915173198830374360912467787577854960614197467524111575075983201972743910377678019420304454410591908739448429729765047989072146703515266169612605240498673298746675983920314555839123084763833871587835431910202455222802633639797432001929101450388926993582685083462037938889284360686810197926566558706630595685371089065004037896366041417194743142065666132226158524507317779534025677688456034224933495557216888657068998596480168390071735725765977035590251475437673339527499372612418976625098204210289923360050526975594747709619081812300636847313221921384057307376951197222441086200122271578448104540415934110053802252147636711575659690395637104167106978312247758541461808080467024326299296265779155151827575727223224708793112677456557971144498496918171199278613232619907401639318683320991053632614567561865624136962553009012801556453216126315039517415396225462408205866596890082328406587757706070213994425589866916173145018004471840967739502207591574560581961074584377492298670727692310329732867744916572680456875106715079715583506350477387768609886424777500265755794391230506484567963907132528920164762439459030495116239321178867186812656731865578002572940036642557041110033798422396833378117790527550436786560879825572522314210193643379066158711038365341053398915113965250652857980918712632333144384236492501425900679695181219452224294796322328861048254711284469463760097982117465224008133502766153889522455106302694985874892810991958535367288794675481704305984628318797218620218021941281791591806908881497994918693769844962472547323364420070273921377409932902424897623890255098583276841480350597336236507207806156609375901478610794942769765748370457979848730273801443511531314257602627821595832410482796619960912286793881108666988193136682637146721283077259211664596095517910514196476209370035731999291465087565197616118603551879078005927718379113853667567336636510957525043168881459181201589133323753565720528876346021825241870145045756418783520327801660853248179357073067133242520230507725141384624228080567797318428804062404268600658328886640356302178810131212963448623639901160105637055417409633556369191281073165611740592919341248769007461354302375942940422001227629991973251776399486524396133862145176340677930323250159438085005007708507271215946444278411140233365446419482334075188379419760456333396822759691116860741633878386226956792935220676925424903496229905919663045749019121148194711586276933273073656110815713697043472333742570295880263667944629418960522413289619389157023657277236754788844099804478881228145189906350108096387181659480272891572783743276433078963293864293963503949463910030664209325664261859143451701972487297888263731171489126864722134128005053079024949748190235376823966057914442557337099471950761597633550046502518880423954333752899721735314166003912087049943314163797404320347598556538417814078930682316369589263547677144049132594509423890282273659412467871007118660038327800061613193819997607357520488344987839068356287855241382476107111911299423655119860601650859998958837698014442329304324645755362531168004471388356195296802785999515937314541592798936123167911233645690244686998608432905874516324467010710997199646955561285359864044412247727459893680618280383481100708353988801397089364383817668411237056785796715024027442685945640253042023563487104992376692974350941917078419001237758304531166147405579318660763000705069904657961791455991366276083580789249469533770500442469976515755149244525122345180941623696777237669730499271306457534422039844544776264696452370656436449723472346356406380264513257561626533878607064080113635591458038163376901097981039409310698655229892747518671467412477756228349818373068689239390790222577138659704855101611185713439325233346562263725000107314779051794212383004265571706054723316408827779031764682970161306622436086088204827353225363008090016891241244708946589768585841972694283313029044069678858529564555374308997954222283147486639604665129584923522436879876048543254766413024611075084232358383004874874216007367372151123431747399846885666838707449227195433527085156825740066050482988436668212089061349206236643620937888151715015309812993983679621184789167705893420033659486504431428107382061012188061068028733350289426625881644358666519733569585089606296577352202570829958009752850215353633608766072806816236980621872358872112527488521576343506078540117458219975652286113938191051836164061930396797939280592472868118800339618950975958138024315729169756977035098887016986918557355501850669037503430002589064231078848800505695530519480441204412316087585058791854863335935263773738072828499935138220159615932912071338026195439635740754434812780072338456717259851707754333750519457439350266534885702553683383424666487296859734778571496693764920445337183731456740307677458338830681320243921717380414927907379861856909477501837208457998502391624633163603890283857717350280203338039603891540170568785961074526927725127819478308865904663536545470593928222913689080870820582875962479386136424167060202132168977521232167208117501942978945620298062564199955607327326458947592410762065636561645433938314203573702226870682439097145077437554517351076973298015957029189337959689942937719120863985622470671404231966120563025054622323428157030743572384610731720319445371297018602248746528897968730316757319732275042904370005220828064354066829930709264011959257242762017556467806587405386879850707022710168040132913979742718689380210977684217637344900999927205240167497844465076432373400026533727052498198085856128029824656025451398166817944937284713502750760563141262932115597392106775397622185644824081252246891577367272292115158725915861765442153829909847794523666143019543099690076042000424342482994093381047161137567129539693375198669978992995575368309442551077301467699158143995996936643591371097630448096083526799337366707234862943075936492004414566366823621244253934931906312392109024187195869406465635526827605416458022221060905140527575066676402615046595544737147129741376883675617600593052715034044655350236153348927613312138026109614487958787643891093610758485265774174758214535000412109955622989542604131514225266820813389939556210323833527834093796459157832937523633105840987250074133770860158290859520176867457306595306329180310895125211595854792412849047993089082108517087278165549478348909835691542888263655708979206083480240829711106612488413866404080232878360329440972088029913405324128858308501259286839416052919453497738760960383893629462109590893837024251205752526558729360079979287787853017823313049090167132588169690207290615449260703509657508461440566490168877472788031133929022313578001799307272842029535653505333606932755940744708463090740736991697272499422956076023111871170075576032083368843784271668965268710081666288228257116001604825733411401596889010877834531539562021651937490062543635157053377211771708614349272331657180345174574580715382621481862879899152224209168973341090923157406317946584027002130756181943425313388426034080766678685233332019098895515709387436852188009739330075546347554529129246740175858576360935657429636478356445979792574178227878221258472269173539857705224547068279566493790805180173923593058113245007766010755807275915189165611720771442675700241473110646503278104074716047154607034958189094046853412143849205294971171342630004109799229367505329528692551200678649839860017637339186369235884966519394490542432091813353473873229949503866421340739471156493331396668736580665857527704892019689118697850871799720783780684034559561193934740698931898779517154072477874603711447327499991023729037155986572929315675950087968280179164000101199712284206607335365826527174614910806060731526655074544699906949204120887154623078279841929111513534255886515090098868215672133024643043327042977376611303109888725167271382341097716080130016848518988920375770634329128766979607634619020010974401565557625255669176634231871055556455522023596374600580457727518584483254616054039223471158017847845606229988582614373333947161834243544653276535462103089177992469372920952141340963242509625162456616038639089235742704012772355295904880669866745761542694740739492970247245298110550999703288479863373441296907900050205703617028091180810620858864834589548271116296833243706762321253522258686104522283699123663585056339888661847409052437024601401743107459872109920686716308374003039960819688271717429294045979233721874987361047298976867085851063703445277975582246446041342092102287060199663354478941728202634403675974603000053389531054428426441659248386549720871677931908274880882688065808561148078073258758530261605561205597339526442312031816905708032194017429722760365917373763221087581492216551545096037901782245651119990206540770777069025142672004391313025059014995793219749844072364545783255505457688693725568348465351223219496152686353776903039817220801120408926715815593152480531651718240808129233570529827024791541094163442944835617813505732408328716668648659438008917775791887880693205655019163535564145471882341131040275663217110457626283605701355367548881185847241051617298179757260500193631216131637138260424957541129435099029555237961571414299590956610505495873706962550530500223801979584506205969141382350812951648553668428486074233771052295861940347218151803142189308472230553332591357764953894973232212900041292766486006571006509275981856904804600479355226137838388049493885974459386816258081559225690293855777858839534819843958847242784677092790611237261979585993660108017416529539349526124237135077641720419748974286671996523793450220750350290490997388198791616004787289343029567477739107058570852985016892517647713371614183159343042656365459314318896756863877731473087145222576688185857423369362207400822154937285590242550512512805348611195305001556806519265593914260693577901366220477401738675684116514550360534712082676812785313090779379778377132471322442453536467750376266668447004868524245711432649356095383938570115301889815279082078890546610711960120872872380551859788557792361889018736087217365130633692522085398278050469543728505468259640631087867501355988138056725080050191714035880675490275378073287750388449721149671355998994312159363100355101294650314961191268858636325492315649511522733699267473913565683475549501394579795877294273964075747396677194983845432619276281919492884914848262750405888265984473508894363127354970669007759397132882637450941631814905474320994230060100087144932922441563036977075038583828402094334176533860629173366120089626842654160032678101340486295270713278220199428460351884421171964307903491699413342990373760065051155975342071373352114736291514236603795582971576751868132723635202867446567498070573505494764876642250376359869343078971524740630105698769244704607953256368930000269986078974657137944977619496933419313576075092480074938872277876361747941873851422251040026048633177198759332158758870039529655885439752918606307052960292561838317691126087663318925061154489679870140527695966568162164035363257697406403790482483362766408822903515931428702895951686456596231477847237386269405877148126436477876267342979273889781677340410971738287367106746815834725608213220253552312215674692836176482351401093729318036486535272920762827783073882564081727740783425333542406577042640243751906594466930040015684186333975886688898670088528913529162304692187271637916505168315624127093313885276785839640399106316932014653555393274475005205403775241931103708873027196293462044860071846663492109738617009759584900162568740986962604940664232253796393472918056913230775763934601053572944960235875574707757517042809565929177523345534152381775507812133722483587786388796608036969470805388258758576075813132248964316035513647885587683039359092237378462094177259423090042183447900757654980186694132693987917679310996070666821626720142721271513825911389716722709913450638540879590209073440941609875798064646279664875729768564755287963780319311506804218324840456747895668350596344720567201964311769699406973018380125037800267177065410516703873136914017500478038209774407132651081851479910978983463809179638510551955917561239235481787145267848273970802134584846107809561441207114267218370660726321824669966243541403335641952699469372471107295794546530353321553866968605207963216592706719069231803732197848501085380307291758740803135122806709966628766315187994461011429982881558925084455473041190892930106838393620054927295228325646605851515448168026315724094012063878222595366674765553036427388362552946371996307703494968305100255057937862016200875775644899024346007844199026441203093953553776979308366377392736629393299959049128597546409033796173096005679269785671951379822098448008844987017568353222302466379782436021046031724163884603606584441750947947267545612336161899311438191911429649896967773325390688740566457024550823523878452440176740670554064436240011711435795261355475516243272578456588023720697264137569858920342581171116599358660680435314012492797769453056895409556357322734651384729297045054988388918251669650095264452168227393481010404314378718798313216133827029930959451691398053812582153707599931194913297844544264882907218879348402271437362503601773487310374868463043461225604906370796420502558225559891139639104602611828446892538765764135081447048307552374595123381517243968340932613093433045123872698865903975173220707142092124416856108995593679001599391988524161954634156306389880348614110446450245723472968134440274653225741697897110084238257502693787771481663992900338888009225700313207753830005102777811834957485878489246129724152314437029298691413162140087390890963298076419267547685747644866650066605541938570208321068737512285576383394059832246122768501921204650176221330306687567552948258986830412570257377581965358000396608028356115618671995731066525694371162443540305171746961380051994635486444550123230634824897461847476561115978594996151828952044056914036700162566170135994232232224480683270212584947437202465607062215630711577665622370207199833543316282150933968714075109507788399224056306285081085868720024806914609987845470733198274068426934045850940204169894169509343441261192872407329920735296124439508113012405228055072755342396458179061696553547633755190671182027418739983586472143624352030532970715580353312057630006379983754042826443966786394860991063709355844003551337619422924634550415898968388959115218672088719178188349404148981924130061849574389472801982585235636819848088000296669199146973480479962988568684319106706605858515285232364367676888643978047935090898559794551415988780546498423491784416973037468513721854150344050622187694874281853753635621088579754423373796939553821714221807016869076507169495971134934008647930666001623123170151653735872610404877894678907008017020566794377726891764742159084651591819086245823892628068051301004816471988059768600569731304000938303468436667757663548798756461038210328724517317309707277791146259560685289405062559794624470815019903523643022416484062819845954673691121284373369679704458026934505535055073780519687629358257714599305024351514081896083842380156594618905589506472021043920813177427447275814027814590946717192989955591858984386841737338598751150602210272873667857046487972561094286979296817967190415249032550862168955524788337468644091198098264834118716259825862977568491552232517281445563570636716561073092929701693739488890670408044589661545855815092406051240328012069230454208113941992782910670002550512452211964904373498922031847450371559907254589553445150410193288778594589598814372191916608071704645840391063499227934167573243454620676198947785676116624695890139644441726012064231743794130057200915200875590342734925994722212904890339920994651468734870052765596658238267623974244377417009558282498802117142792265875086832542528014348526492371834025462922006398739088647189278922288935102167734437571026509501555443221220749262283094352240325573669817163727357714082010203148286783668352133489300479355254845832941034539012581644273155749197342078797358754377028127989880060644113275678240696536603369075231481685749738179020076742572837681329525325067218130994200205491410691854745295064947855933264834113532782322369977190529601989851557195406804298485529540812999188483115585828932985783241935626140404333966267447488049410228438838655260889468856049007264974534136786298230123073521685214147646713128189922109526074644173517019925242257149268888610781641463247399856349870885932022178685110918110149183699502235806297602121851202265825809646208815689603473919017995865236625639126310572806990016569077375813047193654023637539972001846540398108909012037490569336748774496743177799156454487596378980946167515912144594539697597220126988520365879277645735866162015163099755462091456626559881214980062630340737389064154412847742710242391905461406289167835654259519161578136844900388967375702571229482130404318240538331162642633127693738394135049702357481964490036768577305474971276256475435181261282365568722654848290625118419852220836475582085489882384750111997597986755586187117018310842142502917498183602522763675426361715917497099747702952639207352770003402169676020576737133738927624424114991399742575717571569932561076389042664147234886473063453205707993112347993656708668611502777085385987852099320553743917836414940480173392390472987063269699172955620506785113836454259518654485649415106547264447439787530279267551794536238531151217119801731340645321457007570625779408710362437688289040411404646223105944942273535056548540192199224256410767163561944017433683858641717077202956634883530211249132421825914068306345277080758841541920712645718064475741801216414114380133168182158923137193440269445975000384966449450060616677205084788246296948834793799104171154104004639851396190505566534414991130767411544631283117492553687788100028559946292301594837145712689361654465178275062502062498158873910616485482723163776838726356502293162583422007045360608149073686722347505614845743148798603049966337095051300403005037056273403838935490064195579919889814210447121549657439276159433135738325606769959616247342014459919216212960674798209107026413245819206352141667994621681343875087941703189167234655439249491685320231704841423130282123640476703160024910196097702852789940157251380511348739434238264309545624771319448176362880042258654841312045719263118231492131910967809400884971414885547736600617039452419966036218004875888552184863602088284488557075816989335896099287015504397757049534267654602606970995149405411716924407390415869627925277560971143720465544452631127664063246063076397813858386265782639971776033459601724260071044106017335487842368868775879609395234017111130503927672362444482657925938382668255477278420364869573077812453386338545784681571530460614188287820800908371188370718752233009817685008806659256452463980146045112180069267659603626806999197269356926098354925229758159526594404867207880852734984789971724334853632998919908652142264540868385684267960746059873375896446423031036643434003241678963230291315103565220644440622809659721025485700319431966429764047679393113062858508514667059091381657511187634944326905279908028261894797410423454604517132107595873608703328983329856747312969552814953047577717649689659081384104558450524677337643874553482309198721358018869449295618268400029324731883785492194669168687776122688440244841002578441712620447372797179013386663887153666926089027489291583733393877243893110896321208296113910487146876721286348167956900618470728175807320161692312745270316173520224716533196158658860015629358706039279709653580847947706291517115191511226372871067591367609236735059106334420422329984194665746827094822924607213982762167298729646943942881421942095169688703007177877258754762109629275299758697447440593304779478830784189361859199893735027844663692800575261683421732061635310775254336269373303796873180751850539048967859903216726668306197480461942821827026885291504248285786220045845686875550940004185612194136467423945454572327207247736058254447889299730152008700541853238705257301719662260215204198847761471100809719449148535214657207129459961295456504089690307872605819377423484848985576551687520955375050347819133627890025009058940029554276777873777393195360250455247799874874716273196880762401961960251199145147109971612241030546868742961567426063448217173885866618310770882070700247478993924557727435713309132216036346358375118162972634435933872728430528868355560435445049662074531073855456703579488590894146752849134761094106148332054612489351638638483440629128689255313895813278324028891696662915412335321430302166402307135375231572904751410995935564785999113107678056827731388041096043366088247789773166994745172409479138562899812763808052748602021973103172416526983218450483817111408623475791614224794330295801063446664230250247889983671154788279792636253680122871100561940366294506828308625013200763865436157425188193870826756311764984063572006380850453200882044934205968389877198945278343969926351830497628547228967253426681244508033218303346359062723603046609701489121098205815388283243685258384329264847261316069446048757470613110235758831025214942847531413963567046670698783251949063745568947320566504813525402450541258975615890480582891539351834451043189939822962530967989385581676521311817551717518041096423131941939480379804528320018171689958211921383691963732301142406427638577172914340047958014216818305915025033428091452367571333670869465434920932647597417466956805109245841789845988733070170267520877671862822762890006426483491194726614562415671534419276875046582856381787477452079071246891151851139459076341849638610870276952615806064795354484812808395712605197659499554515557978770662002011562266796906210862875910516323400532022916784799685405078759777901635184298063328258620265797669083889212960569998123082654086482244395413974432043971935467520944738556272665256391405382718744319924351986547433819404649523347783694745749315645514005607450754979158054383858985515505210123486498818728124506639519198513151820065929991864702612742328569546074263812816332469145338975488428351417055585448737100575076179320596751286018992514518310240312265660795665469889705437827287502478137980696276524835487405865616150403084849778141070669596228829194762130267957737586330260795522317703624490195727538009006505323517165962903556573331377797935556769249811603069324055202897801628027454413884514944631083118911462178349881123815797527229946095505850393210594083146887033235327829270322438270987228342998740880729450055711031396258814870517328610183960207140121530517214148745064679371472095502889054370957014278020000859980341113641211825392136937047769102037419783732824181020686003422496483826409609361638177937288338192146012944058521670268800093928276654511087695257743299967938705329729106282908664903609714336448288735242954654314562134081358176067287445540845235747517237327077334242234778388806845609848286079875480703941138151750582537404511111446734150770316058221754895477192487647007546216961680384981702763904870138393871686724130750217758492703928595781975797139291899444194526374084545805676048176092855142001374135049734561673127800132829643504443037344582629156008447486769525210050746792211048283300219396663547178538896260323375985618952257432798550862825124606839970745572799745630330351029015486057920358925792253041581387208747215366592072989997856187515542417990526900745400647106546910782055953863375714033566961448040836048080029077251594108420727766511366165039720069766300640063675900072085483434232797305346813959270397704493561307324263246814706544879820641845205613990083646730869098089378027169955919308490379717905701280963841794517820076775254295717593256043844572266307113384101768968193154949604150109809548123938204476358245096153028758034241157531203438824989023091451188358625745011317215374343509169889205334441173853191301069756883881402601745001451061382133424061160771088874579533572444275264665435548855814184082780573982793842240912255234516019686838322045673718953920863958838101980192448278625583353456446263619724321813828759195186187744284354179933259700680113121424163949848328762889624855851787637779626084058881014244289500079020213046077012921601252696002202791546443099989583844836840395839693621467441590613340353351109741353280706115044474463757858280768034378577699936115152212355819140046185956349470468010770118402148676856315562362239841116989960671766835185519451956267701957711214515821318051709530508887072209583842482436066852291036623736137615409170822191508427934224553764227918740533971815366789431579361625598348099702603262616125200901446664313938826260251277724085364286346540358027574411645474513362760527213773805047670017930370176688662429049635820320648713932171768537694639945206932485446253063924442805213275589515608289366247976704324841025687226649902578484557696397201622844635834724228032201709769019211432220782307707529524198727445840653538627053344888298970323941507145350458716122636350057608008820819461519019423409311076039325049152638949371113092449893268642807967580979315917796790239861039525368901781458078695529270324695497129950694078439985615642687461667710895219184776824143841957700786268771953573975934646138553627099337921421266743735030370577747899362434332099410031200035627340102914116324368391843172569234551015982949625650921793255794914723453641584594112822169786410292556527769859376876993711609005751322808271422863752082764654956012956909678207795076257508079396605556821286743503351295254434490017608383758193498263214796548497338839646348753355856927921916923136618974296275775368020083533869633847582814262571592264196456048930929779970069624159572066328298860085654237124874273540608638952010375952303943431958013949883279701168212208883274517591312385073299795609319622894235062350463950153509239177393599141828211906718780662245463814094784084348209877683278003753866330878566121583365042174190996879119356947655360427077383320944995910657188059140147704663058239107737349917662282862007017277164573868555268497887547590822788802802155360057996616469584994276875598600343565176468824089874516052168989306449982347113944378288460573206348593595415518985320107910098254477759776846680743282574584137476705000977026751863679432008547517081681699315085976301137716908211725914600728752937990684530414284383453808905465301659947154083159347122492000522680809831846867026243593488268593183718411654023059880245460304143217752125150652185248172519169299031074011410364264024541086359716698943118024782186317282823708948443761824167531030890299661882708664739368672879014752011077097693594356000508574576785601029239938721760188469651663083191615209926079573897413222014271966479485421976508713926597125955437429350803630873801400366780094751088814955849031397438151748430167391093631720699256988986755224631666451426933026641674569964265969579977787688502424398276403110001156264058957865138683167180363634629751012183228988109296314652201077671484609895375699125459867266823122006774346096215905646254790309710585441879225925354816915166839354505465672582659392860879279613911848612534046552383136238453051055595851100174538840092935082642708840616776198942865900382227492968536312046129150632599789704003495666294982333987295038567912485891908582414463436264790427406131380578551279255144301865473562668264127235231520373784961359694665508913440226010802582808876379000986395655044990373186735761090086877357295356985974859967611638354158290101041031234126846328049866627808056652372752903275078211824423857222212950165219567961800824753158570325067236167367564336808930010251708661152146631797928272053194092094645178260566797457108820024984990751087423522981662088380166021736006299031511074251791625214267409348150174027605306219249257807937799848463132577254833196897134706958698270219227033451725957179051937099168273214630069011278447658211303751990102798873590202084877693062976239054756433507988766701099767846217163064873707945313400091240237339002099098465902522296774643402371011866062523609460528597940748391393240810899824734558303180688448374642849295478958119234913064383519290972940741167902780038018690523313571209559037093633636626385997266619511799110679292414704614427765347592257802730664660926578844377450336566087525802682145231600183969252022557590057451148568509260936590709780583004087325080356255542880018181284129868187950846741994832139918797258147078285535568626747036140660863674416154181718736825102837277360180073733375271733944135319343866309684900902714080825960787826606413956076762825044760303342203144551336604483369367313459866534786027948622597473403732685476718897131492157220877623488499021899629360283602202296886300213005694482284907115253242874368830631520321963725552091976857770194407444761110426695041878419030841530928629852501563475802702275521307315125186961614402404135396016335699246758310098215000893750550414253649658835044530162430773620782559718925592833174798661911185375301348861899654686509880192938790879972140507063535379895471103071119994673470610159548497717493291296163774539271987599765867126865834811038747043654685608489525792693548581937804500856759817506474922023329039230403662861713675914181246696242886540056169040287581784801743658360371965407345962777021881626046224896496654434085095957346432633407448435497370778468260753661729063485237189195675466379740403533519480280948387829973905828552735348470756685783579174128832126217639705007943365672863271142255446695209536335379728484223075206409594302624985617964921512930717664317330046826435320611963355747834060213270088946346558450971640536803011192700204542509509583831867094942518294551815931189611971179421616071030809695236063422463816479935012238632313469592230548558065151768389092090839419524347255767084998145515454741726521486216647541168957542892838858581031834262026433705515279012894352514493503278648430324005327432159493525634043756610798776825060718375956081017987710502306559832268539682192621544151534033983018437884714949586861106096186835165399050799053161269365093024810888022087567884339311724152143926804410266393773073900816378714549231385355888531738223023284441811194480169129734591797037481705919003291990801011998415144431944604170654589785346294536961293360905921749479240355312301163007093123488834529420199863229268784765365405204554432245729660005735804404827314849536054348302599768829829513954143882234196176580233832371317198684269206882045416992295363112599820916427261548846445035648614746996388637683703114337043532552137365374733513792004704701847366504419956248593459999644032203141926722241438792972755212026496094805381558906225773559036474304947823023357164476639272526800412666047039661047770683354801210307326592738117741524094250936827531690331066733517997407653825055649307130581844129687743552892273298862400612942621096895498676980325713725945417067547084595803512927738307756784815888040932647577647087876653443974500654051996538110323783358333524411514847296723531490472074965803255187460284009731052606826617257711861231418590846796414147295428922634488289823869869476392958433473283400866334908012390692752347951588788641058145775098973345475841540242608752450210057241246984680519899342971391786160400313863273824986988686396924480619250589825788864199872602630099743042804095824562227303644204305269809352541783067938762142976791164540692643315541672066640197601660446661895897726598535815357214532656170671019512886778733016694621700687362508971310064692471299487063004511427076074268020668017702744625448337257508037392720526116428383093001181137895369684650780819718827282146784004091081519809402670653676228233864797616446505829127011345725523786316445532946417557648103669760028760667174447114437793248264827631898613747888227628915781213681228815086811518725030462479538132284451174677661592273446611259634325320844396093800209495264758136873322047628753080483747280622005689900331116701225501233925345235299170247063829318645486011738693098229479480516563154968224842286410905108788276151989607998546300448467090701773050594881505599486446159096158486228163424507507025173352876431510616284499132268993920680194379011569014118349518452993321139926492377623130079055151807818780950077151031000364972617364991090565232293805669321819312809173442256451442418908356143359972247363356467719428353651611000583353657343807498226701347506063798480680314295815006515024894580064781737704700822036393880122677311189523219410744713933493196929315091633132529750552466425300013091287590552946789969684782668507499744901683855476425778351313257253096143455194055087280671075861957669902394373821173659352445499997494011546465426535135258893934941419231970465746357841175893452327875275948346888134542598960543209291026053039937541656652330365107607357784236983986451187690766689910250716784264595224669570054064892242131716486002021673253038977900292422924030334322964698493747241331350866996010038648619178676672630948875752130550565682477524945342671589676284168184939751790485393003888135038942223944856281104770092791345688578064815395865184005399114075964389669232485218467020269729280110318785968644135647489004884110755314781602155495290196300799382448174916848781080598318683747449803162808413190631431171697782499704332426707015478645513585430732887087341129466047750320196305643347568319214201932484286604830244088540622043435138054871706747457022821225674911227583946850750539220317000432676124779370969739179161261605991919514709688485093768325550606353037708220147682969308626711770604020414392733667583666330546390348168087262888614695262973629875924968143117939643968034064237144630486989379946599820379829949632387012684237387325527518421375366978887773361721652634484481145813141225944137202127520378443828998596031776957006875189688705739029597359570491095282925677700431836684024750875353419478187715552643588369078722431347133193537251723815031792300275647896047766552873313915515951190581019275175721953796675300995305095558801621517451855070289188199231864145043889347116758494467069591508815688994620558179620596299939267209178541025324105761863599757309770994016938594533855801146428396090432976174568613181246358896277574531242158197537993064926833067824386470136589453203540935180816639985707724802999360546468274342272199566283063613853695924473396641607314899240965025050781583879321656508718717152044282498180841281235104664025631221533029621346130818657613748865024786968936091918499475476942821622280229960416347309285852208203104744404752978583866416510864775842732519366131511083471944987507128803605782450949070273771934202885757268591029406602403794605272583460119735681343703638898246994956909836291027624152818002025610494882848965448243198103283047198303250814281051927243007488983465208089432783616736199708439252016700555747519635189722577541727583140297536829132817758880978224250792243003932609711769032502157968091462766723998517145812260717521475939751700531025777465684407093472057877960960452515438654545975475592829411262552040612896300287317128290779203456159656543524311959641412619492738951214943696637430193576343561890819324525855702019400483073925049968500677239099879356744731472943364983053491895519097165438871029418605682801200771600535458797947712255914173016548509678734829071613683746927092143098789187262645670337287065540292003660191278039220220228976624098864054226209340461372557315756229753676898577150533986606503006439646746965001944594289554756537575643232518997057695861414732075968111850047735929382892728013941201100959309111331268418385700168276010708860482671510592954997499186111367925831137350960298681505896467776743694384989068871830389456035264266715789852637653980996756868487524387500346836066583104439411839421246102492888142586420806635257704932589314826154922931822668148537962118516347574476543202615041743506988737716182425573037192280778621226950147249098509563895953207052400797529365236828524811933966663429758860701416172274903761439130136242550998271300938237556586868839831435546440979695956508849336288703430477691615741565094049808618189592878472328947654813886610111152170276187063758229328572559099829876012010156432824534935463606136073821306791405981170360287645616186680527879865719606980393436490672587843940695607603909593274016800362596744609845480535538033130668925025960917942689600918276905579576935018239240034856491871753875655189402150488683048215810247046013150292372361147224796133513642127950175030221315334973074861960424770489102922088452358119073103159631242815014747728886541266572359912637696570222645270061070158633306628993644849719194647507977128725787519702110025793937509335791693068455861297122133189029478483743757828093690147758134871944058048138694226697791714591222568831271551182085981977549741847705315327592491441500554904479348745107546611210186142353010027792716955317980199354500589466502093078722331875737759097316686005894334753328985090606223033357403971960520717415576150680471240717822810745138938232635255746847205845526397087480566726197290837251220161894364822926851722885471978431867590775151125939018827915665849366966249298525370208154493084807938665356206040928387323618508865194492056449094205014623844500139305834650600487744299101560379242198872339073150874174401452870936801978293194526812086280049411983054130151271450627757261463548248021611611917755697143465701580189176248993665128254511661520090683426995373559031318608265974192570968826469647877043693513309943398206927817397072154828105535485838270025091086552660792156652031668870228779181288295989256306194083942289846330776787004589657705685700485710238212274083650272587955038462718084110580411837506275660493946363715375189597647072510677403359274373907122788713132626518181026796923144261357241870318945845361916726139731634407231421704488124087696385768666372502837281551720795049600304097255343681565446161888567667697129188225482329553212050981374354333461596490118135154706694701911740098645468775218542288208984494497374100219582135119221513169924061961130461745298143181549121169294357237576343100632076022969559002113423688323553245959707677738818523615115066853837028357511001916644841194078755429804178033243662410800690481268576570104106387685483140036022837407190422830456878835408359088853197866259753568911358449917744228375701424707773087239044408890780796953949816230189117279071123854136165195826180404394569995797496685659892372650869125513416078679786709469794106303280774689668886349253899746622590506988593437395657840563053433875788006758579581830777873753653143063240850443223195042702884708197888911279548396045036952817873778500513733084827627673213023724247608950591119549268353381430148312375888758631358192611133976372474244739452642241824273171910128758687885686670985944977149872851916988899638041364184651120768315756519386644813229195955663268786900761172354523836986889034888158115066822528928730925219294301897012932145083888748811492544852087376810694900186732462939338292240635692451401473540615024929826797563560554908364947894982540283432112514635524916350181689998470236344162569956894610294807141552078248969246517001459336284321538172881618246651352046192228240946284834176691833600438859852961324113284499957464856660434106860142962955686688349470061615747891595423722796422782152034025802905046367205944847497509016242510171034284221306392968894717441088943486812306376569585548639929534624245508399496098248844452113632080260416013098902357971757383595649487663980763586845605383329616768921208636484586160844659642065902073793374669345971937452322317994417657707472470921686560541134424853935950406099808148217104260908619584419189595092101905485338058545652128129682253747807191956046484586832198329202353548363348940673194628398111162455422346780840963537476864295166863415799575792178206548847268615415934437348111884537113455944692746259638462228121903662891137551880564501353069651833684434424842377869250178106952938078167328636736885921841830054817697745551704658606057881864827066561791728754750840495791948282332168440521776236827730190759897693045572055710925485195998462090499014595143168996607240982460811205960765175559918259795905161243737038536583680593504360333964130152185186153629336377214308758483213120907035026417497026224576323226167293118629222213574165011665998972284179999479683618105918364994519518445407830775438394969555098592186982791905282346935470821460977744868175272782346593235758295725773238580429200508938195347200747445279243605073173518568656395870269189624692276847203870766520405123160022417441726115000372291330905217415564524637387746386723139537428416005563087564008715888234287147978118154613932768607969846041593506869741437857561150836074729727436408660598126414656921364963258655986291146722585350652588400679277065259757733531400034402159092895556587030696048405647887213833599596333482103880673136926025737821382568231034756612088245992572416796237498623530430887471203620361019046561849581361041016860638661711289483411356279103936297308038666621606547241193790438833972510319033228933336896401349469099716048994337169724441562807692169733689390940826022826556378247175949876360498648325014836330899978204961560521914708756397969600362549662728993656852466270052210182565083079206263453420672780126951677439848640076612688520928800408679099265342760700030229483764420034543247164120724428351155685621559107664154363387142611599727195447386614124366909582478506896568828644312020875234040222233294321487530240857944259451353195821345481682441747839565273955898405342204994745824421515349051983276020715736111419840912520999747834955249592367366634771748579122046300317912734514701523274415065765746956476525118960289698758291525999627683314372855588450392686912567935077279888464074795249848725105222880044096830153249957751947030875720303285761779998655956981639459757879396120747747715307614773081864013240444115745858850497340653146020893740890081405766795553635552508652334752920825748459582624787927694113245771063280852225659159104009251551007115560899275639181120607061759430261744627894669122555617338949334200082565393398551543571976240395784814534296252453172195610970277022990648165883442023585274742982513516794690536074171339364327633493560898438744120289572122688599428569785580509111532927957451052189148163122763672775423540298920806952357723585584016879864835296434432883195273012657433614070409805492028821821462628354660412366312371862683907305401916906614516838526081883651135717607052491561725867717618311185189286339189648312764541117617920701146007269834391668668364694183144254608964753667580890964415603057361416908498722163295846983619072486904306902726761549816603502527807117548843849308666797092800977416922208484067980455105149170039747276381574774932974389143820551173075073526416812319307337907557462658167134696819229843603585819052025088089265426021535586282584872668364510012082114984808311348173216429258176360129998530649246557218091479206730828304018350467577597972531387736756778280309132598566622140816339825488864032201760029922546636464402452474092024662003321330719167856975194705726728440693843326472958516155975277371485497577045675381485854433522149813041169229629688293463173174371058722682046924421280255519475477886097349577596044952003721515417662854538847849328541268015121039610553744633378677938685206404397078827515658340321299572151034136652141056526138447179093911518578603127527471072729384860396844336253534792774766976730694997341628045957203499942286019025899575829150093356507649233428426251401149304618548721316389979673827776201660060693040856359724207885060437574754245562555085766190254020815275596904352474057733631631112656928801502620846555106669597074985616718416892934908290399993248584644224038767250515670490911075791092510309342465407238739677849467822673944335203682872508893058348819512972725496226272573680600810956963282118295321728229006982187718849837740420990589515823704911973125628153321483295977325054943011056154463772989747554093585658216726266639516132062891924733174055934664847678174504441936279505028693140010864396604289214679331275014366717504062661540492073405944641017899668531075438795169829665703777560253214284671666386170763862086921250769298371625723441042679550011241900489242453601185126000854130657257318074638873256221074622942579168621947783945272917419651165289761937755370690731862890681615613464241334062472270640367473942709217746994030328056359269062705485076206362393289687463412220716014452939138784824908248543323801789339143965454301328324571459537891972945497737736375821514124045033706308078903302727416533489245078471470470910511821984074358173601116952936462756107748434686180858558928881990305680895950096996285842875379568017236615066029968531626566843343970279087178648577963029453708794847792621406377826370216150933746217632289519856121481340616243430061472039526427442126243346196125804033185961257557808396467981369518045715978851350575718261053368229983136103770579616030425580883879076739079983562250117375828491875804684056649341026910814837953814027367566150978704637535961841102288065364168224898758266984497477308973809594133096594461835363802947198190819165543660800488504152325573952693189319579256690185930183434160338476198125633429783148574634515822179821103585359586983176475282211393443091576576263714993308378775026914567155083814267066981308821605554112917342647939579300119889144261412552326123313546363723646854240162930233596899193425394303231021195537429479922912604502309470313206828884286787657316513465380238510842841733531150754844423373513597956119748546185775716724950765277937626316343576005867364270873121520663712305814800398190984358132439247336000714653752040449452677789275906954938928008873174226759157156767710411042020814783211561223283397185303231978117086835632891975877170390107565483027980140643263542450453877143987228708348018590505217827697717460655150185014866770680640816110700495447254123460361472359777365014559482910009013621328557413561490937322221373496701878625543351964774254342203054085592240970157150438441378545614347212199786171841909575460321998760595599555731336326727383385778092469500695487605151692393699697926187056978071733466150877869142883420349801589781136725037900373060994965620329984023846822611267199936279187854240902661367485211349727371191754613563899983827915852145449471262187546298517973684633876077507418146189495160912673533260356826869603812977315969395299749286226185504721237096973383056756220966277426316313652522534959882002319468209194396662489331363548533084825429749731874581140534810485226506110887138924654848964851578002537076462586746561363613535184292595585228396128565953134935090805196217300648645634945518988474129048538985780780218586833567499917636002646272444657126259012155030106736779657403761124424215433444106855647593439696481842950988815846062291771524575777622836558828534185734298098597058465226990210370898009867814482569761646030587064190427832038723542008687056685008778806226273846350740288855280891235577098105727345638139705513238827235324992107180447807423915695947600163133147009324274136822523865973074492900521130408351195622102205211566891082151186572508648730304030383760134894518327967922239560361016887256492957193743517843530714514240321067464692170130729995190546309617828582202852449867454702828126753729751306044950163136109589029454801477036404116162659642232954120395561162515807692895931220772552227602293059195137823994563649194599262882826706541155214623183878006571448403790658793852339958260059752818581225441744946810184588102332728644608871143654181258258543115397024878249311997045568436084388892499291467852534942992675465542998059833520898197953017509402428269994525692031152037499195143994610592442276480531782449261941763604010872078708377086628442236213971484491229571601529063786733316686072324933167943804390900344162691546413447158261614641989217788159625755560225465826426685728951674307683699802048625250112691049255253626590364831354132913617639248744738709527759299910789209355543059941559330360083153167696058467268343273583108132496794730314130271900640296496708265009755340976246211941292934851459192630821855513614666846438948758025985069912698808408544299832897755592155020947150661010297226519116364868981367202287086207980873476131111318677154665012852526468838562702472663887650215434811232313234787610922585707169665586999832057027834325628676763069194948527283156363896685516686101481331421784687842358829183724792620821224033324210300509897810998258007319162302728604286480737393800899503816282056138705389381344958269107781133797750561758840667510507787878414834324929444238757861038617016812301169809660590445974122156094608525241235386835366796614358458190024370566869804844939072903499116692912089446454229834173452331406425957375343930306803065093198400466107461485775416217233319824406780255899952219022497002125239931771870612841832395697831367034858029080344398330243999954577435494986327000685535563386054474146954647645492704489647826503467537724415254986252966859155657930398464913467358479498839534106154581071776945337389423134356192878550056099265968962395721471982599926037372715734848351066194883130553922906064972915676295168524526157788570200145216705740469797760441892164928982947630987128439459357376773978989480463393341080567226792039660832507708482384907685330878137480924029726243320649718578100428553802959361508190195459097259367780861174785838196799424106215539824989850568568938337975282028398835009727477885791237546253682219972925606208770931382539929408390345757236211575578444449816206635537902589228678652577179445334488141862712902979458197183101847572237273876457111530155192176342165575371988546276593336714454707051462724203091419456084756521783308287889558162198085933180875618996182894288762012464690134920588069148769923812955513565252179261211631414092091997191583309100099045070290844789101218802724959458820636704961780259470923391750296771624051722048098576446597607595866306441203738339352801291589519533914008462973395483380675330264439006878790757157105040680029593946331695061220736885726869525126587581668166629548516869577162164559543494109189443623935619676098740925114569965255421858096539779221367924121557429643317998161623873772391788334993660573625119856716594155636074583322745003587173875055400614192678476834217419277638653692235831704464385347365521790428122608157910029433064735898490264933767862857481109796385441138026224745303356993478700538662350084039312206769038802475558418644366709297743680343867367900920698632483291208195428527743883472222953740814249085833631442573202591309246223673922676632849585851695735601130393508754440883564713545146876629495079023731278108378683123287701367711561536811056221077795417416916930946751508099216633453491444938684536008599061005334448284311609393841154757726054226871177266247066620128589007280995203660521082224803589194254505751808556765934824362483246995767288079169681867595207949295234819381113846103990475822062591741681240740745444519282220994046551545508993355295709816114203779043881226585142046237954754413876781477762127278586409002317927465489494080674935674447539334106508586303926769191280519120802768038853973180659075845722587660308796686571251091529476391297003920550969413978196501726351822965454741633082506503607867234810582158705776123769810616700902268689361336235890133677078030865145015489431624132182970894982843879784045371292734091611020452190724316504443989728501182433307320324934425000351156235482694277312292400601063716982770776284715832859059735483677281716066315451601371218558393965670673915660458150157934595149928569768066146271888135476635178192756723458299121581524271319786028043477188657578381517385281074479716736023505602393770629383715341488057366257181117208734998860224393505647632833738183744142556187293279648086421867296254966286862202324115956410496092044802854940508999698642049629493864819903100014545380760454657253546376439865672604361635756638055434039440797410634898493163345634377816784625523362139242270813213161502492885289353383574603243233564525621121178141114072955210664042908064885421486764508877200387860031530190108816702233627926007755088681922329281282854175094305747937858385326266965630164192242745881081786731015822941182575715382392370749332527978365766481904676077696943368508519678078284690810779619207220616305244896796207780501516631306800090386678819605091736896278476134457661958860789720055225248447777505080081493201178472450477350573942076461039556754895116756515911120022745791288004163212673592920692911970488070680561061468157763442356708505184592765176655943943714120306658658292034635534964959732939785463452331554113835564490538317707741418646603645952068478930767532544905345760399796935656177338431211243995058234037641696910683853149424918545827407172016218015943360223501100224559489270440603952204398017603344806442979283713342707727815081416720760825376625669036140584615932140211546858191005513704820244346114293788120158374405267444239073050091126398250747389376915412478348698044464852508422574202027322452953212326756946484379235683274704364810540645565152549812723841757294002594470228356160602799839018711407314585742833166475812947608547504826479189017868622145871781289025711623964817903418297990352245624180649901838505614386067285570624059351939504841855572382764610700291674825752862311545507167036966395746352364789115581662892947628603047049045955304092748707983692788697427765639017849227510198259978337270739463375088738796840787867578488020641581997269041754060347351002547237075185897941589566602337123507826633361302405841572211110961538932379933664408293629957374771661001046069225472190053636254645064724338107276447201275274512043715909894755460040958567773388554793309280861676420415754738057312472532019959459666172907246970003498478410435497125941401955278588321240062006796849906769345198750835230423084094965869325428147593433998613861194156009291038787838572738044170568080540271659518021663731224877610561482540676578337404991863698100738565171239636519449171858207964885449331682564663119303692852684117720598096267806965601611821695165622758874659887713918834373346797108828046959314197170861783383233018532773417393905769325282453239009207477362037904218208651148164457136213272285694704048477637984837216636476789151817576916108392979266169386417374851418234453619198978003065491264521105415668077534031042441744961619178676305317049949821331281874801583902944524941677796940677955265956447568264856826291791691046795510200293096907357349012495290645704553439979921575172706427347778205297841907969500028172033452326139146209818336222501608803260612284448365563299892621255708506325285081153199399452357808978689317750327661194550712485967084999133184332705015178975848402175771631287513131300451032274696165052303764562574763993035991778435088286424961537913826724995116946398950090059362851002142880954324555168036197230300078476150249953752733132695801100478864198168633897113131895584075951522442227974514751657437752239406255525928907562083226956801191688757526898029981263949123771823382724445943829923254282171151569252017544961581641958351262967370018571414653013041575228974732527403472305893921304391344597841541108760258322136352261085064539513295310363339757804909417397688995341799270744172755160874593607556737051935390512297963543067825324166149309854420338443465024891960031622145172280205784572846040862445560525346091344148566239316250719695486473139634733965439790496887480990646785852281695303812950090569961578765656841853506936475138654901086290333651810830452293796405839489148638806355076312710509903426159874453881380884689437933649252893885361851277636733458263865024664882977451919233891489941020291021788419575049309679765428952811066440865216713582068557252675497240572194347354559824296746475716036326463311701352539601806710206307800429924211917116147406669727028103737762080001712401819470373503964929751625952634964341887984851638260509230908527253152847223302639018220241262282080852346664577826250574122318223399777643571290689384766585919074458194587864613996626520623041497066718324045537205908502434766791911953276892922829773164501974118984856798034438026194433811581216265853629710551384098751194371065659839800733795761525592798342216936388666004459539629294987827700972227632451590194570472302352381676883563994030595205407124541473942280765733659980164291674226620721354650298125611321861868363664357217103791032185192028894536141653605206472312237943454047684111648676097826543115276721235313694077574486323553528242648901521668294633314897380067002927200845602844406651751294917777307927439732548189624124882338582898233081276794247768966286022557619767340608790748049557329050194738387685347329881412647338908164291909071410603404020944644049802752442314755879971971400301773538361320412681649705919058126077503567662405137709151436739892580123456243178556226500534066492700226971126853633952978411439248285177133298399529720069235709435315150069347186776356730923767073106591597259649286733301311515744644341099787092329186391727166040799779978795668345264383931373310059878302133956277836763027240981129976012117297811615263533434249802819344202632741475137552260202037269134530857193113713058373680591769898037235904264686756140143643619299811890130917183151766391981509067114397104670230210005894409433376714186882233112518634407291529807212962622685998383623128596258397463892930341718646037879490316383334109870292115750758192754592406976438943719788941146539765120890943111573537016841783087761836839853462954216781673806750722461338490086382360284440144478560866780600409341557801336789758451072654722383608406976604034172077164928893373501472997477303284370238554848383658649872143652615527319479268293553344767874177339615616889655231873610867612968906779978852861414963034270388343808913313247998360597363583521409439352170094437203340572722305091237654622535017633418127256458729403521169230118854497133596407945870917815950485293874895550631099775223581844821388952104432194228919752418165489421217669210880849344562390694705295452337666281784139867582981831595136673034997951552897594360270142042237074213400164580027551832345774378508790330826579869015054717563841615409589681577215911344847272618489039612499758318435151881548423208990065213517938907201602729260537862616023395614607573809918094778054021865160889151316148427299121528618169328813833138689257735237823117390400165311025365943885913698491328831554146398720647488797809411375485173646356703062829238895099002318697606722947148812385802528977978809760235141086361670611634305729135163723670137200460293719468441154175456727515106526640859316462352856415384643686168416341617314969018080209243159406138168034345184977583905990675812623787077861517580632920435628839553702597333440969584268326475798716864620938920493587469454702719250679723545030458273591354692853344369458411186094061646442529668587197037139355406657449185897803015457672806221385337939626099705017196432234026192231041245596292936161941841852419538392459387364053366233602884027166157737234182650015928958573725449796174531453163031365547141361403350167002814239124791623186622973905063146204147175598124661137532447348534627343053771949008131548782562790242796235292280905985888498225218886922955515453865586398236038140522659553859158554469952303887097759412805922591038712456842999236179721813025286442831701355924971711003271611458903452613411398206506839899596572759269780388990739774195695060308031026048213509601101217590945766601972315223277245017952420440132427810071980021144886767080273784444514786828378866746256643693641486556067282219982814003029544219017826886186644393563507757839445601292041491106372026325426237390540959988989378053406313325123955196186110433589231754287792395704135335374365637645592232261299154021010871455388931618172689365552748833338242678264386197279426608639931385487199634838583907052205099324469292955039155615234435519281369961756212160669130634220597778884877124689516871826402733350144930179570690455575728986749999933422579214747328523367669928106413680364658447943695393813199061611755301371506701293923934983491283450575705012661068733752646782157424296624273946067812982538258406673101100498899619490641643669522397776676257790355959069483377125065650642577280950414088917843237710843972412885446256802186471124833358463143540042081691674476378675359853428013812743767807279100542654383727169325402411751886387198544594515532827195516287731243220374819436039028778195299730340051435687861203755664458119325598228706680361007862123243233211759396347840596507329244406601786404415411446412207583470549810773397677669996211366909388410645211929678543195251908711948282307967146436343694884906927737968004773064618465526288583588293109998366566756256071039245745738753012119389876482571484767191613846771180361987448315847110534667693307169861649504066365805132229586139528473809272165534223936312512687201979693118858479563899149343107559508270065400776595013171633352367401437630411647114560945093493072257196348741667653633521977702504296956195879844314177151926429917202336919656592193739375837861061714795966830514569617402049995655490951132822565906372604734771146466728982451442555541942876685076731546767525275271339389545705721999772972967514354205459589163544146618687918117901967877588739856322913928749828646187562956837128555616513969991742151325138435984860914074822847120641212339830597649064765767790314310704155518520083328305902681327198477811506733445377426287722939410963164237343519336489885353307212793377116086440840908716279711518564211718033478237530837457702373664172177512152405933256185884761304030506026967266159079355748445745688767066143176630658705756096101261902895017424323452768853637967234772294132967164924730279086457114437684652674870074686324826816703410080371749631580225682515315170180267998578184407068101594569044819922794462648312681053729050821450748202357204408450902765605718272135169574194551534816280279863462494257715519918521870447000459338229637819248381059206041587292124085245088335367405528034592531123211766200503121727617809790964030943324505315826706458708418069778043907192108070375113996375099994124043172809156382780749141190983016556025627439062862032478735071959013326529263029730526175286457304034817833589937915031840194484672201409873844232561530753724237115840814584575028858333613403837949600269680910368832288159787840288121034799969542434030561754759872367753143836555129511857065826355344235645589839373199612720974751281169997509182506857801283162869189045132268699996418896522592467308522639414796368344270402435006867043331139559530167117156755782825847583400681135954744773093207591997933387826311378303159348871276851418592166473317582592243012199085512965618682481279252109956625758769314691839455719442238637192976482467192501360276135166561766875314710827497352453038837341277941834414369032889720511600327066983515058399433618276960117605061416713395511876549009988476603350210301172966375445713834800989234056957991585629579961518450532934109049732214329995425985492176342815910361539936627813664342111181524210037323119060508527069513867007961166772198178639904202717171372849068234660683880979882578439172408551787731018153896680663968234667136536637213236871373184891494762250981164326032473236945936199401534581914721965640675423768696898111186795392268134096706871061484486548301975892920486160375732366920894263029667215042338565119520634018601304778276119644242644706468321510098894304121512033724059244462976800708204008437454935288388106874541909892641184392782931367446169300545786143759536400969137990952966647519128317720726916947552367822909195860529975410343963767113508746342917260426884732919860483659204362548428609008521736534817013860889222607023399849726316280489183155424175979139776115677699861662544602097553047640764638178398147215193731365822614876239763501267424906506508291559842954094795115583103001005843509974556329567388911974443094206633198037834443691156777940203633324025463716353432504832556603092870147682324127719040598557043043883488866951156087360488378736705062604085167256240029194586402078335224261788861181687695762389345158690685350856831402754095949249103912758545956556520706417263120769540893916677729621715212302929567637441908433595829648203366054714544098038339108618195802185046980292562450868063068429023150761137435450314857200770923850087952465650003171146822748284420247394646383267048300396614483347975709823092723023806404594802824816916037014540157793040555745776062340111115579614621008153037508267379616079291211255443044166486866437182381200732858973430338439543604568433855174300328678925310618349844876585928417495661201763252230398784137331790417255540615977501026966981651171492582644925294004968749116741555917565449493716392542961554036717324048233389020845253361797660423534477708413582109898429113875297321750879933891393261702701947164477289628202216039906924709664486917183172633880250130860314531673834605667819432523272460328269582080432814928457428773909043650832044588341874725712355908868817652165057852299152273576537310288864778794864313081671088130379376335850386954427689110538834624668322940139139283818693123756342337011285390945932530626561411201879864664734576947441644240925939305712259534927340290499480084127365155971590182403555577619694960034938715048137402398612364416324314073381913547428891938982807790658521100874000331889661499126019401796420734910267825753540131823996679520763358165419639288863227107182444118377919900913697511743056921640075439267465523738923191554427463242924109254770483606042533101136282694759881401248192716625111527084669670140968237181839070358130030968074282771405718017191461833049430466989530964378364927150283881845934822908296313162344594702287740102975152375350486633672673688103255778568980500684680807809177808930601383189976255036813744877840446310675719014854779797697063159638976102336976488238585581332092502623296875163924181513000389491180940978721091533907486059165581940160117889621069632440420398352554529487020657564510157420554623764012892050496576146221507912409199074762308382803029656130725298259378021908411500155033605981736753021375979625643507117464476244315576855623402076175416032227349032295933356476975078677730081128997794729501145743017615229424989481812696958135630419522232989193682448608594591497235527708107210091520922013066142259295529115928668478170859587313307981456811087493752455054516740695502676165274000326606245699793880759993487186498020166944465837965940923553353937332461216605805301645991958830591630948581028734697457575067583737623439859770602102054651949949116504984655843737196562150579592504799747333176543564020578866668265949456976230872363261442201909514092428474618714249111713945604191364568358968498897737177693535478763237127134009741455253038089419184866266509553013158150127086195057059043004683628040066679747141960868732937545267473225772981092507248991798001323273431998592489338541833993152540569726209036349422872059492219506650272458434211228733167952342882867167906444079072793861153455088644165875847184780442609710968212635796613236921383631235428111517772981919942082944125869130258745502452505746617599801826356424999325187791098397768200813114278692799055578365786355071784040922800624215063198524169209063066336509830271648780447474387703330350342025986763059127360033301801113716409520837757220307747387380283304044757191570944228831848720615452948903164168500508898116192891355913306224687310328413336948217433444891179810994196741273006865668392389325530974586930367946027510346262316754193979808182516239084396374448590442981769910360280148462874093672538576253608720143559592312976089750748372916133591940880999956280247749357008966103841750700674210950503435493252941685112602391449268346647442901236113049342722863879122751502802228277844837800938044013832007344798706946446279866349649588146522688775021487677851762598233840262619263422555181683368187080739894844438725794983493666555829931414196199769916698426918474071302679885306747635181603221773652895064941790618465761569517869561014734900600812752878587001876475989916313010652722035447339966700424782578253471702866761741150340876917713449428557156805771881745491328274123055794431812945718798928699097210550204154626749188315400325324446828913849892778448423116939306369471080368991073937305758902015487070589587824824796008946175281771660993018166288288054575529787352436131599703449784041801283759679138343282393290308155586619116580852143298519181682786592143140140145553776730800424497792467389056005395560485130978643070962686058621040533134482935310210232919713265715342890566666443417541240638101016440166596759014731523157809944835980301158565659140055402551325064129909634414541845210879058521807888130518173591648168913463251342809980921790575305995337838819729207015993332800271338192496798954789664079725697253182350881272875299693979759035422939473962346554746634182250720141600827570623584364657836009170883832766326691649709820247791880571664045186088384970666829348302345209563789344290172596977023395292156570316076540553121878566791519419458735698526494071025632151725616669478070902489033497978213057447677362400554891342390542812977980951547663987522691985067554683359861175543539533532106749660128978490635499227077703559162919475710539084733067343646419765551563219456997519321965549820456593327014271679099397181758966123063859521440634358438182857225104893673034997388214228049251335808854023082959583375882079494468439652762404430094659171575879153178970617495705176216392568160996039343561860738751323772030170328541937542949914813538419354055109909052038589263720053827139798456067573158874765915663477284475312426137632506879111573941051079159607865759787649102299811347713250503061257716517689431078586837159577654447505392173103631989591573239377913126368476906020915090377808551476689493990081896066738710446120348034223824947608727815659688068771884648632587846205557137624647563369146312617851995208553912369682688510666234866233112133013792612341378248915714005223870615674690004312428307136463739100977223928884156989545835019529203464446835734640046626844132856565523827918493131177940077618436470818446156986739166237354123019293822651107374491494728325919482539472082160363852973369460586564467213472292126121946635594531057190202401205910070307824178232633539169661797581395254894878780288855777639842614828639315515778928486791864050278513167261455353855740481909532905656106879142255256458746321939231081179840335534500068799277125985529882870561203379209878793605165760065586554918755023664987732375679616613876304699560627186128233300151565639910940422486275393196085127832060141640111765918496205233394525717383546706518395175163389292596519310814475258525429196258184025266115580518403001676299880037776529586342915542861622387695567449336688289007922164901597565721091626092142999674829654628428810983258290110996510332495259803569852654861248159641611214444386847452486255384639050020520173928079811844192002837876838513555207898731641520278718639630955199012254627965326904317784099945142703349678312019629533298333906323988941804850443720758925374169884673092122172014895771028199801504311817933201572054555189078843296292673344512933174958502256475205490875942076442151395965393766183253636038859030513543419663263573794945060927092108115935630428126359215230546636513799331901140319437962946543681236901047712931846039102618077303892034949961469303182063715691679298214442577169468721526868753622231788588660714116636391328596102540102500429166688567835583723591117220603753930793965972029472371211952598476120210301130139638672820636932546835813046931208931385521594227711763806376619568331758125321602603709795082051879017990236194752130004278669341485849745760003579216281764613051900942328966100380216033889644401409734371187992540422323211220331794454604178319825361234978230777731107444833806375030725801085182464084134442486510515032733803250416506182476706858533805830214110172115933198942095001444519393441172244244902468884603189150596662970636768297654515188334289514813692731258991844965592517174028009800620581014665659613038846270508721926704130995541023318840660663693777398995861309117797204713919830536963798332496874673692711119941372379640189251317054546198157923878200975696257313714581831741411998601749630633227757288454863853177066870855915718673272284317924381882949939159845187976935510889697345026337828356491559596463674529368190123773270355681411153888837755826265694035462482945798926265951098355920158682807035909604816778547734537358950659764761127712691604737004452117237070323085718825771496356213712254818081110223602966039171833917465587662758792910748921446519580164239443714845352342779111084799789991591271788757899678009377213209123691333701594505773464757571453434922998362296443035373502616957126721997194155254197435225742181350314805848606061032350097182570185503263220320855351892522232903689119278173462473230854974267528747741088773011371822723851001469100717756181759247527830492999177124453209532469080527974959988876653903765939962244620666950293023765297965830861230055551744194741696404036058615491694211413764832295996714783926578115970741102040736804869459881451368785756088790631417087625773802000201574367217531392726013956257221680411595681261922229537095418461515377397954069942563219384146420933326850279202182011477023947081107924083946346013576907974297441073078103095794985436253148584930717027402688957584615324248636750841066658943270409209354199064357919797585327420672262110916999398203838822793730078174316473718906469837554275080507421985296279475763956029993788670402709472935993806437230743427257589792095055584029403663820173146680037006578080363988651968341343140275807463118503401301964861139882391126813312480483479484927133085017244232870326877953437241330744775759123709568164920182302725874494630850208231799278307762124115787118694786885951286399425532089311695897192240647093122696847342962170394123681228391832516519022925749022121197245649280555083839739834556877182986695446939237828340208908105253437569359768690998910109277601170092015393002800833546309170622865835631619356079873058458803712910533800618249408116316142419037630764603064132478780295453246749651766039894095645649128194165610345787055264813734917308999436932702874521648659726462522501870283972822593026649474396325238633907319593694036847190105854095506117340432066548907708035452947730029922593034743602014499674702118988870274291987720914271969377145215168371600252432266280439629510193157115006363699397410833218389115312483685185708020970155977493026894409822063034483415969623613792401131062139677463026519947199234602552790731397318787380533901665285323211162288227638954671150316287710340567459523634913076636859518269283860667126515883101096287789800982202274053737580969537638865508761957418250214586591840028153461971238724834495710432602784196787705073300110583182038937093698185270688348660426755609253032113184690276555417966391979572019415911359889515015607891192145225657772744308555065586289874768741363083418562903828601919778446891810179963487713640993193228272560856167669271772452553049459720005676610484866969806377609551549382458366856875110392160764872091307455461166462452285668746442645941326434397547231309098344964230729987858921157358338913856193757521290567636707012711899042719535258196995343058333864632137636788254527892993648731532803648316236295702515039425785325638781349916050856019594336709672972961707164828590938718856880848844690146951387001485796049577437682494221558501400819328866059745417704925045569668394919937416724656819448511102774387523873498784717768277877413921329940733210968189261477147896083535338377077614571631021875624132751631424042785771846812936227532620475779877948639626080635023685970824133719309723285978849571688788002241500480653761866494683230388296548531858362922383189654642222166588318716195988167406468683254445421500225610738018369083808641317758268162735816650771017176537307933987902517427452491929635007479524407483207997340895174877323168732016580394232955371601111852271176574216661146059615990140025092746669604697903298443975291281859121473864599203149019332934971628167455452637412934034678663789970063603091616040329556866248792886545322517064565153454921695169902955267300086829109307000497013347099917027474004127234494384416384874083969406228662015518087629197827939790591777842697769045188492938471671280261970770534849663283947737442590612368016056140161337130315723818373389723509316650354936540990098124380082873602634757317161441510355509295143799401602449769300367287173822736140835328413767994151498144490035099847338925654464661182554389501447015307509228896476737910143847864315779804929393114720557937542977087484972388157509717024776931486688521639115849712781707954261382256532097581157955683486218760577762839723273698618303282137536432274083654585270476181060681617912376104159729382790137050366405914637081077731751315716462110513685680858003037823227376612235548761981496605367581998045457744921219724983263560320297823730937417036932453893604944712808584100497092490501212008158180533303560364622431272465993941039572606492704965484338396213347008300590507028381310958567518206704563030995743105818048466862390891072618800194389700879519742520348552110784947416981377679178940529202094737665185782996954965185701256050491374162329894393876695485905095331798282018932284768117529650473000118955330355877000314887799726333755840686554042194921159710100668442462588223267661385061963814056917420595318269530858904279811016780892704087090380788246715448416141091719179034564429130289626803606461497567968920832349600494326365890665695425657955906790733927705996018616565855462499943664943680085924128994204214169322806006257372199025550053195278423026793077521731647954940590547964540349749206865079365326059537157214414067363858978395923260233371850993484427990401163746481696517628041981848791867722676111686963043007459272110356618524510384284574470306433943108241638585634377349933345126301973738683793533954368607719946960168927216792915583292551101484848858054917571255899008585025374315319754173429255733016583342571973763846986112558030698965927522936697581640870986557555800294107208495914012349730821082083144063715430476814995469368428907452566561962471817856269594047963832271209355972698253958420193234731351719801003070909281616982362720356678776229209045969569747751804832442249212194940364339739648897123094195171829286758764340939204622023921022252261995710838943429205147160934019630689675529329392327987062596798685456520488154280323730954026157080607279467799500438631567992453519075149004633547128917767857068837491222899833782999183854915679653401619696286999698069629630571386325744628705198209165051806747430994447366840140724486082254125738127667493561952952171857621141271148125544629251833582472156679788599520277030260085062564139753267230321664036986114526306377450817179691019992687429634050916880266795686661692022763113190474251081210594542593506403740888217614871324995603496041716602449940199825297422584142383260685687150199433803650705245108432918036968822334579270978570761865747617717769793550138120225672865822019912410059693269058780877705154066250575964970513867620216510757135942877100149894794454317512401586792063444600419521125577433682925039877137046392529633783711595861654845148159097058336154758486613055000175874487124589257670639575934553693759037602131831569014923338702646504630647319651929107010404328706566231742942184335147651039935403766365109961524163656348993684138334609269607163317291858112842584147763810855603424954096100814586478220256430680809476955635176164935919757171309418496469844480445368833414864012503871789895613810419218719846916629842545841191663903024316127043290884933244958002191249125337295202192045958211971470644047686123801719135213843715260106693866852260382891470488088740711357432395513145934732217150638160557297116112333569817199144133249292710369457129657647099042134404637824530583192933764230700368561681957256099474938330524104250856664990289633896190144534245113913807896789151590843876829380391212753901801491671463432581643056871016845192827009587213545582000603337984829641359204323983000105024921830599228751395701663231623653639292337711574407690882519355402045225874436615754758504391880877088231797240379743679285417056217422347323253069543938395964171854325451899398267228836166758075521141652416799201956102571257741722381106020015339947368379014870494076553663906922383472262362912680642530079231803948256405841115514525492122611655863630119194462524818263365410717872367373858880119792100884268155522045735900408568191379797800708392352156407209303653257844175458514164929021914879289448195434587839256896738251493247724411384728864364089795273275399087204969243874515707225476407154218987778402764246873843727614311812994275092934583939119394082480497046501937690640377334396865781377546542001345256798436874730176154968115097206567278895089433979291072617584768865886194754666075478845622359316110252207136348016928371932370732435515316749579513797126568750606725347874727977706113932472380139222142690615487949969984442105671094263443938113120010522881489968712097916317841399916086587066703786484243469492192834241979922679154520238375112320778808048224197135031995557173879107439471689202540916602884675643042326439154658402974663595654008313475330533145463115927675693961157611675584150414952666178330938992303113605559071308572831967390303497217213208754463267067014619195328811673932910817910078695622457692826859640247174091631440175973970835682951983370107073879437000081592105803381249694768101127797353070055379461677643747282234108662619925546463788264983243015830982557154844347147555978249649734985939317737725868593090734973024836257615275018427400495516737894610158971218969333669168956764453482002521458132582038759509041373122335990612881579115558113681996814870611518872291286009026184129746286281917169453348530421126658335975552839172060750372699502366905593002150044678952966062080840830092123794559947285177511359190648967150129563359739760815881483681686812168002851077809142939526176670976444810611907264159889223862761786965101708263011377393013612377116158557259984615334937456421023578245352027205315270342227110685957076533841034402362995308784235001972819231891041232846333082975862354543980343521188792326354384731829037613243464253361870901349048520283128915856310580155437192228081333211912488003183881635437336420829607022064311576268294861208027566602541206365563417294956395859280029731872508913093479404468389533028595001019371322585376498774563635259799817084166201280535870358103548041206075947535857550847885358618395301032684497672443754547307089043754655505523548383866143257370702853781775689789100476303219649596959627355247839263165792793241261763804796105284220788775267206777235284575313256003173484673016305351055836571842535474052326850304046575786983412150782772586789623558824085791888742373754246344919339404390175420367530030735677036882103076379999276863874227562685890231876830099073939979551710585656112843191892296004172199216657897600298439326516211932892380185069141093659418244015370370663912000822474270374647314114320219432369848433963765946372709525127156495745013532580546706668042886658258179021788026832135484664441276899347261082637873815667140363875582128917829451934752544975272546363151095689740479113652030854265583045875705207019179355722815958920825524906133986299649828851639397480951840407633120637588975054491389274625263415199636021101903900096366235204925581840576064415512688667587389317688758762348734985350333551509330669764844939500560814839013740477326522483915237993869361838396050181614362381547549517435793475771147905304253753874558052817114594186577092226873987998248066150780723904073494205707112316141152063308352222121288867262739699509630705466187648023779227587063969460309195815740169054649385546301180301652624131309926149383944507243062493902865048475498270426823724762562329551256345133740476961607004986453017778544983423139986329443209631609600683149030475836555291148247438452093134373504239575427458942058863973081296309969383876165592802400469126814082903693333897289625682333058631157090092591934347908162435473825009653906237317629273714022952998336701493702467610555829631246300546307927575523949877894675486703189521529226632397739706829736091940146631100273513692751692134037178931533656943079701982643059692390942793879873008656520313271705790922930662533410164860818736370495011354999100389447203965574996109266127495522959093041061068424717334524018312158318592339819795520153244069242694175457584880179063019404183628453729717312628860813071866053084467337600008334956350279997750286126742626548636867217482448994504677412273564108709093511983474449199365472922992796505205089842080790319238097786159186766503846344412726223960599461143718618175369864340563224063340629694097665676743501829797425628809998348332369497775083004084991931960396247402521020368270212344279148226926729635750309148383630833165341389474775029319439604572859924620648089173514059338070155199531122376746665432743759289275971372616568416233803728797839221881420094309070649684313904014373677294284025322028610874264419126001708735005878716858609031060831660568897194140576302963287623050964222619629931945130381909776807486537582902091807778325640296871708733649531958072596345361119969306342341029346887606840354800147297345370516709828018804108066647668372887569326117117053782957001531494088659970981181942392770367938881945673364407401672867239079529348258316534853853410044935220876092555544195060641848757195481899610893302127311100506031085093929638789676680451815801477390649097526669251421964867992902615877305510724229321444051179941213162069098322304280256748964700435536553904256680426291160966815357688857832807724963511637887030586066093271889484539646727543768350055077901735381229640923790141619589742973783345151063633559686987783659504547239298100787111286806300776294150842021269583815020694724478296797439553325127997622182633449404795656835472031405182218483416749923063861252942749734921084917909634496698212388999089197941165413961236541565925382121464871587530564894052813530202232333683557971920110829620526574939010549699456363999781376229863012699380165192789096705530438152432268585110578836632308316737845955026753964383110202067171957252478173130409379570126058306377746846561851660560348263713065429198052419479817344742053393336849547978339778918542985366260421541438766063417647767821863951339499505412723597775277621270286729704147963767955730571591645280144579618389757916091687781038012965370770448953722818966737616268911354038260012820540145774045587687885410655552473164284467629859613388712038950656919656690216995574368250091319262422903297395972515932151262926005261130373948245141215853336485813068421785373960866882937869094728086490615966456826994988255482750066762164715656809138038947866596306807485383456589206593432931543920744156161432981566061881497874912404064615024491542891474802059481750519304246278256152607029283969253980184242605647354815560479728223759596320286044016509331975139620009604034204140637794097535403652800674851902196941187213188923841376826254787575989347401318943796079348452953665750605601210356219752554054825757466667226331344765657409766330719275683976299913725906595487949337276019162999352777387636352255707408831461765105863014659256772570239148810259959129797936480874701652581530348064865836623063216049662379400949481285309140661718122007408658576195964772396876537354760557085678240698565007912078558693174328631727660526581100790434974980138492054575391408008761480713074228498286474616350898700942711487829532819312237274701761621759972335102141039087886071270770952836855879794554644241581318176589249082182990894995856801038167150258257196964239308267276145022573900910290393640675634577128024027268400868758146796370666888844531985831676438189428078378339070455462352139777381114056129106474816362348478236192293993399213781546530537047716555349914359763403667963178349567160557752776432217560723809267895748475714406076357727752571936155391567739608718369967340060565986090582366990287181426733572417031690038322331048235191546967311863467325841501173461899378799648570052095583899413771143395897975257691053674131516857877460727562887476054110520334744289236567847522728019503077828494264270831571935591726481425865527922457570230316646653846230123658904434508349069393787655664725510575835975351359937686673909862686490255244555186519636895613250547334618393218095182809664232539786734931048389329720067771724694829465692669759019738136595219618192629134364350459416763735467606921760907397881652742992417424372504974132438358361063531975078687810218021722456682057078815838271803168510650753966939802588562114180723551501346723466865934556262895108066113641472602054729879557221162926846115236380939983456331461690751004968915710589274818004109100588363711049676055526381442729282564063077429343882259214073537468929258095196753748282872343190002072081781655428275105866612332660605834459063133293404957614991356466258216928678431594988216001054398269912436828106632128594383005618030073967047869655519420515378308800398520770315805675736714468355373004664655950171852692152454252856153083125046245781171706211585474504963784711864187953884439853263337623881484701598745369657760362535618281984200981007986828669965627843170336195468843378356225007016914943682497785407343181753807849915613798302297857743879764543884946747042206207287812091437994686470944095793014090089301545071075739743320521979329793368759334661617737216111376778260028604973007397499978049909110949147334518219086717631934987489312850618733763513817275153720566039852648120751629139286135408341882276177652080756789990188936309719696587181224509621816240102796875689188800327479122381344961916781780896775130669208360731152791126157074085363401874069483954791422520198697178272355985612937123380863920274246910255645688047980330630021103482240539168213358814372632362062227905834859010128477007440319860795688275987553663435156834178601516544403780391778245527483331672423865464330653073756337384193827140886329113403478460306007153972734016055019102612011960546317332886586274751389791280424403629624629328377944588729565380337762162298687303629943672002868421519992897188402777809059197463569209285510013944065271174238743282317550853944994765424143187881567927899920429860298655899027531619770630686923956662805699817398390610044361685281689986454000333059066865129005218548873358253480267241033197221958485484741163486663356274135055145384792290970062554910600251035398355050266074381796620284486592509414248956973819179146948269331197794994299314922594665672557683220776824338219475343718920810738317073431319142401112175006416843431760586482325953234082163468761202912140246874085066515209199317952690557871734411620327411183245634078329843026444753615807305428136742888830698940698688244062558400688628568483847540675083761940981705507178408893457614503744068957751488365081711423550524158572768105620219915253242602768533408169819396540085232473493004326894561353403654484983001805502606783674774884482076479440251084782252786837498704049241971781459961161685767174353547294097492304799460400575347655911101722816484651501240229634513418150973760262705844338685822512236599500269612316273526889797025346029458271394054059182771506187960175128342099939695621671096981708349962996917302039876942794982132280601181286273291113157227798254079345822575771796538083921531488303216379167745814665772668084195615721393123165396168421563112473047237131962406503134185056346619629834392968168588416188541488165498244475323199240111188910492770626416885132024314050986663329583696193908323399368040371843987117109096317810713086510452463726776587507238683681525129537814905739431720768659670259973648173172175320837237531511501164324622371056947435401364705658397603525013582888260036419904417672123886327650466154831745239802039254195325777795175380452847553342726777619614266532482264758191382826868646249175410171462554356833555714011794326407559460931353380513355196123706553142134287430047164608736433252055915193534987292031736403800432996487818033520224287870227051243307712540092678103835137637162203499410900089076943961666172399799684711197548320445892883749955959244172561891883530419506927874772733322696287854912558940519208476570819252436072650329485690707466312094257888303356398525201048343291484983577551958852753597082035463843893839293098435768394555964849725499291084089693155088880008976666922220695403356010961513560945755164021548678361257193975845688222654839915526289959757973154952092879006538461297020463307527753300913374448023416420019018229064217335618003862114712978778220255325588792352627692385886354787125283527208209585621762779786240763700657151537270839978682249037165603826457503250732302440640427208123258685517329423660524624774993783568082030324610845134492714438751164379527026280784407074316441768712961136966305767868407910372419506320149482130716531539428431845296194412007851302546172114755491817084432872506754556473725838959121541486417778354750150023097774600721602971270460014346907753070181945327373936593829478126765405294407366984747431164205485107872005618997733152596226762671506143884904953704542429752353201933976356334591391603330604549983197015785250256648293067363307878904495375953689476220331687083920437721039087358560948039734185992353967244218904953192340775385413920562656711016384239729005397796666081162233361714425277623249997829909780640521833878942270781904350926707759712390696717757022658181448942778710924455127222104479458354271849717673253048415403253388490192583729292196624560778961502776097069998893293651251018533495802877902219071517969864672666234555735351083151860154279326554580556375365343586248744238118206626543669606927583196235300061868586677578872786118205837549703749573887310132805168720236694280727670765824520846796734964004095252509170374599073013089176170929155305142622622937986201833840079518084583405636972005076471979032491065312504811229907878143028813167937723533252145443631487484841666296831028675554360485344726977041852685876308300087469155296449804265453757293328268219654984225585996998489404522333656332542251399373806917229692397916258547821827395079167280509511874918727203588528363803430051374989091488694343028743516535946470593571514457137697692971745616250249006868153154219705173729015923041205360698661583434359095099740286766224184786024524344752034595405083797336956577750031788757260422774990365216106741853345481382961545558327921795435004222168638308432380744063342933742071834322342253576146090705017770431609631365271597398683095943416188049203310867974592465223380481723364204957084636405215626313675848578294331854223035384091443064301472117721730448848537826996888761912985850382106603260272444761847385886521977681398267866933974770039308384634456760948975732927299123891461833918483880314241917782045336668398968515876367291383516403745332356196184867949134856074236732671649028342054716737993012914367867594428253063877342064087220159314848433976584737638833081215376794279199948926662776242744011638427951552638536817673390877746014818625720246901510984419037574405919441136712710678920941015630219936536863055516027150530899794678880786431786066276739686461246043723458592238492019775448944872905867146764898157769102928402967901894826259256955643554567810565152693509408242397221141536999113201355004623052170913174486935677040222422428840772285619380555075814973798249091750874577359431404448351856027691815322348292869192965661618429038326533070116247409215205248899946531805609729429205611920026251883944990459061205949675278001616499577101465126346991500542826985183863424210104381723697139254692328043530291274442100638330379364590932393678697851014905424639139427232883700145223257537483861175721280220592870816352856878183875654936765065113778464957100469965447295103044828149704488486159911915307971961654942344795351714005479829501339473520421297984019226709866939189283082722177881816122605618841486589945190195141219180009040498056137576015452017120184926135763551989442514218588700522283301801957614300251991747644267808953911893729200738415729925074884030969884085763922455191005872965216023550565795945866559756239858778640100658409951646319293603545821409663617145330336845047498370944455724075815722224872485754197512021899011605533172894101301520580507775732280083129405263931108261071906794254630963831725957474881978862834462071418674258880660873066889495206506947872897875570860030542196123739674109904015358935137615652811535698183802795472382585474061223146252631373387490048294603256072498874088711157020143204379925903879995327423664981413042592071051244146355010525369163014737168887827922647893372440823214910956374395814673450118654094043024563387130471366335571038250305050926572244056168814597734702158192784825027422826260560943717602372888409915421755809078729379030091600118283259501841234868660665250901684541132198240047135406162243230066748951253937686815829808240593876848004140190125915595309091233365983401124313308651587598548952823478746980288878895633229295982150007383697587262435615388518632391380796265337713323205065476190980416199344945516626214530173011679031685168165560419416253109700835613942417678291835746228126855993199226105346910717770154477994187866957008561233514239442265698922713849625611409667644784592549584814727348982584745601942782976509501440719693394076842894787639325911914169350204065645209812189043272818026197146513196240571943877648113682342528242182262248972650798863502464902758361532018743249923222665702601019443707581749502506572572648032788866034502151920462679482313173985626146257657924180094495115521470870224921484085501303695529631005008108979945618418959668207457940078158331120032211529503362870719779299042857896652090699277237408229459612086095190051147013346301032956584890221474063025716737796945739008997722841014660722547029713044231438786042871132599464221390382131680453124985034065641429389415867149730394254250341594899036691354771401997940540842603244521630052496043895212162933842956129683260862956767347267469766644268269152986502798559396869036045391063941036525340373797243721100755695901860596164235231203027727422300704662390840921168255575066762966018206903460247435214415017785621512289450965590458697320022237056141661587660487623286593269438242994993821371508127210683635086718767650676601747637921906547348870942807075266318518326151701155876556431372372566053121363914400603264815104757271545031296451011204708382405304753666539730199414123826488095782632804751846879829389355424632370590250414895415284745400330483367963873896039376780947561913935287969713282366559511368022166741028445304151171385975067132267838602415601287734200478228701010088619090855677452530363152471273084059390150500732185282943657657728289473335155447457155336538110845300620675505690413279987816354401976750906522484789968007589732330621550220721251798374450485936120379389976268200103246207810965929549560789575492454705395362219609772052296440847490409047447022147181008641621973766689008478385779371830192246224082795067968986293400875295709532301398932611181701706991719789491928300192732295987589611770083100808814731202587815506116124735203172471029923919298803624585319133523287568709240936975294545676821456313914574253746740175871229019947627874327825461049846844869190147081422684878055468377297860332642811931728763415430417521704396088918934823145299123968542003324823563360810225239593854819251978480802946906432801149514926597344537083647312915588695185962010526904590722424749815726590067577810117154973492704550254273372146533666687857665596846095547605817575808478337375049279331937871268916396954470439449417584815135801961317474087598065212432174253467258386831312501245529846681386761434720159581918324201115279204783033334588631186658228819658791258530426519835006482708245762391272088465614022167209237454127768417798199477060135898517727730041518610524518902292560511592892651538686497699111584904540095131130949334959734903332837324507250736863443976815368332418211808381226478661753625205937845634118863505555147960184300170579339828186464002550142547974188410910634253813613305983899078905089348937608825455241737561627518615610195537205373683293529496393890537871588603598503811309393245897794308205508187331054965950983599661888326913382930327778165030672791701701850638423321943469229334616579424507171615091191898204518432363648469116011915775314217827131112564131239062253582344546395839486422766675777694533556754676661063027519779055664026626806728224703668415431343835188282941635205026768382578426577562548814226548483550628522063852551068186628124755063083361223821860609352524805275768827849761774233794574124545045635619813424491536753523042770491919280607861875103146779671613985850009926174723776237955502994947863987048046419146852205661051399563656536451510431784145496513593406695805423147558721260276703082839670347009309166089370522564484156653319301060638076085257320531092649512548224250656253844592693635378699556145849503230503297149950934088858581517631387560535548988037574584336161297043716786525620250535308527532833644474383918395254406101365836981373898010340420900083837812212730357335176628780795559075023252386336954696980431278582392040343777461068861396274092524541380348216453631777735777311509484183796128026436505253406239485292989314439908762412553762758857282732474162414242095661137191122307799674918835977398127569828854902892387779543731790882236382559015309890840451331178552166709793304534561893105017939582626695899658619902903991443273447898821147261593019285870158825089796649493869795981911592180909077581545819659902269580755317431652329175524328635458381386987245298165299819529950402336108664764642292843427586751051989541405561925425895308974305250782427691150482641143252147434356168770055997362140348002400264402694578495387868983367814281300287649878958513311632551567307895024437296810588098759633898988901463133489215225657632467324633605895823659846330219771424710780167509434978106848586748817172297267986826821382376062754354661245138437441877542819419355779939771294654896589633722993636704151743761512315282387126599213475807329015132413068403350100359317136564315329984795825106580175147257609325899082827041566736175792473337129149348367190248583833568730815543172524894859102569921021407605116620882013088980148198890501554642445381774292902418268838816939470261511436136194290397537420103311537567736492375867485403505119565284927704043522929574530808485825845192608964998427097514241432911845353049027425809136672159557455941224450353799582571463957908226964074024683236299380844790844680385690480217739481062979380657531665940735303874918325931287939795604433389263925728057275169742647656447248558398456105691285127594977649575979760732817031201121496693349058108565139638004474933051560570456774443733773282406994061717487045401840488304602161862632268386790568041096536952316604498315335181347283667256431799052838793139580830684675548970942491877833578486494666599793254388537277635184120388112465905881787097380389030364188328205596865160446216015410364485093232513656940235291282648356422870815875519122101358572144127548774336302893503509003285740039263200817348505029682746179643784367819205910829080940549868780312794268899022971741396598781954437189962947638254869069781661816106520916599854835843305822210558542220026793202016301635656667476180338664562987081502961254469788485733447111132975619572302638856789445784756462740560334968871099675073034496795108864944012737514008947695695864240976250190652086188941433814011491652475966178300891540995022605556039893329484182980514810868145343084069614544529114269432217737760314443765842842021566985745605686113562964234135018424770748012964618562845898855535704350331555713378775714528327646555836407034762243330762417166332865227670813069204302044367497666734724812603357374532343193572584371169841502318268972184136194684504846687846664405217393681541136914991734917492943900303599016861019435011268510809676428942681169488737067929241152461117588224337592814571925930515087758614881764305673206045092619516794968914268891424218056137953064773197690329062554417177017278797033282616248501485503343717114124550922795226195161517884997084213499304644974141096784974315256875205557205898502741549018970877076920208562058899631298229153098155297894459608933409440355856110157512194996253093689048111745208084539539387878334403076283172934106843574446491917836790799192622468427425204360136842956153713025559728912349744436159275475203873014030656942986736186234624050881306477648725873385732737426780846212914277069425171796242491583609914625825090661896310528299153393781258051710141622163209356355404855219873863368444112673738201074238674890785705233487913687891650270306602429519511274645210392421912917890147130261707371080380560331918907457553035826793024592140146182730065082850301563791717693072161683779697265364328619343443485057215930669571391341086151658826594670912636016154015708040451129875181096796749038855982342184251048784856060632180632334057368898317792830976891844441902290903499819209264658834901630615683168971449021147742525065814535007743689609973653359349020697212604524528509445420875227894154314159690367750442539234802888524931092036062927809744262712806123743802818693182867803452733909981674604221610325426965383826713647836090377562939272604974242967899832426566826799329622960018967533335542921868779747686350703206254753195124023041623260610005520356221246203068495410130349546159321348042335162889911981213800964260754224948507430871456627711910078971862717630294937012080427560022807187015554059677218510257718200560077067830405602498282414148273683806786682707225186459707476667744852540694711760428023213503795364478965046267816726884822676070390012830921230407135075935953534861984925541403538667770536731901681915277514205399906438366324840246145787983303103609736905766702052704754934930421482082182188875557051781762535026416182233908754364484121400829383942612286470786050226115479047540371601857599295200079196511250714251199769890071068453286244460949317769710211143590816074791484879192385113123585432406423692856947771306177031692323256688636499570208353996880484520947810772220317945681090958820060346583485736804007933988492978393680751247692946287920467346936894538005942612300959679459484079821285225294758340930936544236855717357754403214198547979961037809149031195826883469091142015936366781468321525821143601011315691193872383553495073925020814253357071274735023256778609384212252892216039378175651126227968669287225132503331672032608510839222200171056786936359406897848095364594385101420081871066251531776167609778682667372113510821627087648693563503002410993901032376331999937641229922588911656130398848724311897067215722048980662321617573225009822044445501489409340649577195112389977430289856276458485705520490539560229996227919652179084179800254455689829887268317349440883913257417009475038089394474548037513104843259015599390067130748092857367751717904866501308622536480819250390506688717678762421551793508057173132238384278481573269004236580011230218653518250057306145568719137459360675272705849069784354586768727708764205895071875504097341471077773271804242104900940064599989619068892098744871760102819483316533948503975033194376799689386720660569780868409801385998013876596724764826583728528365750388583399275001132499292622448127400270821827038763581701121106460014219686044868192635674266398912454767598281423192892715925214286259796539157501328974891581335082051323216242373948070868913948588524027233796238129893324585798381046895039310877109331993974332656543221245959823047824049270457822947700979282347764720294674803165840147266020205627524217519752218157287324166591149092620434475853715554236045663443443580909145759065919096573759037775729187857934135946581245287959457788786915312511376510810489379216450210345297589361500577013974949170431352407482557077161300450885409258995685418028227369337001616085934002436764342811189684467567611439003286689750905022107458092568296857737531465948492619099159626083307991243189338853629630413944913552186509550829262350015585321650119340942477381436143140618151504338992919329205441314170744400748200607577760423089622759103453716120506305456122896173768301076398635449560605998945953203273553113535353120091494812071068804914412523832695591258527732712281542048577140241483567616404185667280970075984294681049801119780771482971197264493529222132239604278435079661905023011194442227970003330165298744692913126779292779845265268317777830631025894999812437319305354467037824609945038156280683983004626932476859837252948056973273587996048441633921904072115592489082891719606291482090991754669658069064975317339153895361441656768777940142572045224913097586325642249348187343437777519767432610289290156239602542060369657154960072195329403612673494437423999952705710006534130025143991533757720072472066468789814689427815234869313364748723849614069562389221081513264706606946445970253341470842558678387420353001751137611611906407843207183766861806359049967975876920705892012322429217286400532136724820290246507307472769061705674011462039131096033625870049530950515781066364567459568791712313857803807909861782903543833110384187541917018943497999315929574271469395229899899799029890373882810871332089630316246976989975318308414974039233795913968153487956896255531581140745331431714028442019936868122037544663145543152542230958350700506613746389633191010011111143626591313478185648284787784060488535318732648551948213471982636079151464021672286735836145324235015266223877857901476924844719741041700452083525626864205876130319594493673143482289569326887625201184463689273145395051764985480553422877634562832934113467907776634987578442042812153865375932524899761897654202184232849634685048006065497323279182727804588448345232170284484482484174339769337588962104659103586889413977210353334709607632044123696109158431682390871174837401363898105286113121610702019260967879882269290226134097642114773006890815000837341060317210551122880281300991112506518227491295048786557262753383588904465490865647868504511830270895435473027753415479304033817569664763533634573248294076753015327957453909232048788199457318114835502793297460421454272596946603862772229756990546940998190258565317944047200338462133566404542161268916687996411461250001574698442656875052000833260151657373260485247756589878806250574997597408684392413988025567542990969834716634090181492594016082197632891004594796617497292840984748863427059284808152092351217617392027186031122783153575263140708439968989036113908699896747482739656167362349409178834158695817182054559541864777994575539016354061616657662159080488834023080479260985067262696209864481140218855189475574268850997575718198001588608487887020941470890843572683800368097212953647540492379494423828608934939727827980127088983664382128886753488045290284477737693892688251802328794542898801233680592156876013842071850816153311330252664207069126631943393776303499166035570982685109600718742418550247199197813150448721209449228303010820462480933594979581897279611835736971618708502499490095983451932113743729118115324049666364507703281569438998146217562485441901758762289576070895930098939525746891090394733933166140635434178482661539758855965385435710204586073927159182194853536492237774155794514489700102899463956732643702195435626610253979501867475684085569119898522117776934058750935342801566673985710621001701559225115535307760990758749774572203227771717946052200012178559756830638830094690220154723378104651709569817872366031086726102160344249085945507244800989947290291080470607668269163725535594407654640468762551534228078764020146620216271037853398845300891266438626570127472686196785642842913484117722927474858162432897395267693924442583554663770676352006004002226905036304860498307162790639344963930029599472546146272611801167534100138550822574496505117250093501824543898946185541551438741179231055423086974816098384406370397935791000364069187073911665485733889647054328500290983478807652208699513111473981948281857231231421494959393936637095109617074920682491954504696934099313867484323655459054767627030823465242030956517598255656686813034660730025994846823727633350783673180754024649002211990668806434653507991549875385329437667930452537064203341792354064832427957750313879780621116482952351076527774825793914802727448277939137146043618428535360167360233174377163538836575217697584718061116096842013855738722850640680851923198566796294421329263594605372587367748618004932088719809212990850785106729601107482341890917478556748665214896705142048108618598964010467577070177133576876104812402814018648687470965279815374626529278011266354053619214575047448593706696253495181360691192131829631629540485300125790512862223307563962118102194291123985016111511487494848444132838731124065179124348688080430562043198449904968631048801211755047961709496725268033014913531762030365357009849157678237713446982803521906725599194725301945742873984187677410203621278274584544767968487794461161951326378204634546975634074999886711677235857771092717949142113950548535527429790342416990342244974860632237446752130093696211343879318544864707063347907336828446217831510232882419381984520073910649266827380947907360837753546808899624353750855087333207406290287776266400414229748002942707396616477012864448940737146928844342574719595664565462609034740443117445399255286472415485862224539085673793378310272597630981770547466039579764640579329997572617577702179055012823752482477137405892033641886951912015491057866119937779565023397383382199080764423909589368516637865683936786825145849949518483989598091829350403089593579602318252356920670861619883705779222641046071434483089943359570473552985181759865303996005820062511236062712347360013818285533435285841220178770864905073404519753585942439346495867716415336212985649858170476197104842355561578561040658893217273250039230521083505439796392261646997503506538297809458556557976353979240549100289996844286504997491625355201777805953004085574092513306298117939125849153432167392712817143332306927282467711648286278590743890896319051617148863570052018797487498049011554771785658095286147074051551570635061670315187433917577958555817883012265896554458394571598581921720587667122429772356134437679000327779400359512236968335840048902870433227380358120298831817239785083858266451510123580320613572008392624148768480391571869665505024242157791816602340404185102447418730044017429665823359647893004965193430020756891188705145990246486618691882839810037810199903763543769028280664814203972434470399633999786157239337207417663901998288520312207320743428453682204930765418733979141338029388707514466168254354970829063791968463218658220499814007392113997941979108777962428595776852418100644536234896183112461654339354933534885841479247224045070906140734223049021773261347562284670614888781794573091047318537214368448480693310040082236614344914854231763516015163339589660880431176437592385082686260005797622003657803201335975019005548868332298326829804614051564396888240932027206458019848591477496802441221589861875795639442717603803961550708119948952342522180457982988649603234571249850381246458600933796189458971227431538955594252287230176502935802143704651195603240048864252209108968823047922923289265657510729645377337424896283110122217514415136179438412750249086195964689513358898415950133503129721541795914014565448280299880196540398092346411989989139379486471146556314960498102943660485504424524218506214204619675460265691905819457250696347507787751074245921204742116539208015453966476831719905210656503740151297141933014168197478395095813525920527209095816365643808205798897102604218124110658079903534267474206866349479993501707301388505004646344962031857984742431262927595140656076262604488809349358383289412675606099299562118843797802821616541798062269636292520356677393180257397787424769020342428602673746456593485292154586739481248637769404173979165950746519654822547940947181389299726102677921713551432624605268015038917356788126225163605009134697378294018262857786495815467829843064712965227362017519405055120782240155106166846021380946721658725619188587178183923529694147231744919345412129333461607220693896212644817984620778671970879535651920097052118497532814350524532125553802233295813314932583488167982549718312275941753548846170123337810378085106592392126732225503635375984973307387939207517374677284761891701665803913782268993696096555577443535953849238293664346067207781553762608715053500413915056041394709055695312716049099301403853596548335930712059040828879902244274092451024248868851290193537613582066984689997919277758297312983626143599508857226860854946923986877182866776914750015956963847600946898178096074889972190662854043985380801152559075239827567750423829129136375025083878496807580833306129010609817603254969643836026784854835125260872706787571903034796186637172600014190218771842680049228169233613177440567019927059737757562592654940283064863676166542903905793611091408458225891219822374554292012210327759432658090684934737984073947773167570577562266573673235659605909045400622418989062538231686150630841429498890915007294585196472213681381837391826773844836663857536975395072666935211252992473492394124634573915545067292739384709111092760866302566997032956590293652123661510565578415927061047072177478264889886966413877514668203767511352547568966250345420210137555654200052028967911816144649279820449448824866339632714160280087099431979648977697620126592657117268547521368643975955275262977828391923195447500862893592298782602799140315537291207872472113405898913246771548945809978570545555539244837058179818982273648737014473235892709450757703444897731368696753682609773823329878672477509554065101478872783184291031103434435615918952778740453038440363984424068807462701453824917258779284536800087811008364232788527112446199962936439124908206578683168610580914838824383215186612574412918965410173417536345767403791860458434282668802680890072676512397734937915674753476551594458718056198738362992062074362432626356586625444369213286239506148383406082326337251006790326296279554361196518294415394351806525289925386033693244589414586986928247890052541086938152178071620704321526769995729588133203653941772590218265150210470608648733742654611156948211362583189367364983178759738882059897953554807975379010807164043686244572180614315943459871511362528335756187383278150684606541955864645934407942879507326092072269797087563384306161174973947101095934071231624326208831611196895395594235893646720216988812300018059725273213876795677477883840378823799141871748180836552669540414948309445682116003917547783584571178980362520163986304826955866964080206504647807112833777248811976841093630273178674568918788902419837715985097301759613051227244370649846970656722257336457275416800230354171271027887047752763289385039513451488080751144612011477920396951989490162345679121083672330066346166805901093428221487703223192390916345883631595988242861105928890147857492911757600166206136126944529727862443485004122305268344138546847578575851545819461256715411512295592994047320168064452653752786620747154741230205668146633802935068340315383908172857467347167160203021222285123503605096280296583710698985423667351247889847692427508822835084509956317071729323626545799757181688113303448415158118300963776757427221408250494133569581410129160735036871147838044127351627248186442355950333152085099983712873717920034694209519532657923845621097598280435473544245351632773255421656041195880790577482056540201447560291209410655292893910539810308368207854409005141975969855339861046228963806516012140246309321942527575822837910116589058407857514469990238556908246469731285869606506349710533427577750839151178155175581950745460054301848040180917746227848192325617700116945593798284658652535048181293217522192400153041614116156334401048436784274660414860066983785574199736940335198958659018908881351516898383023682228870363847127041784135411200121164149177659744999328956470022707984201978982115102645824549162158247617597665382392155216381140102784569858568245944365747626822398046618934329276222168770858350203582869346897075337254982230948256637514514272840124962620339816381476030800817891997530816652428411085175646721363663538209248065153000012223820252344593563237466046764697592766708979362544663762059380839748118333146338168955068734714218396333645309376514470164010819858598254333861256218925581679710886079256751207959345573027585516490034422319714949981868573154584017813193739184710161959723859087338310633862741400891636071493030676091192660702310688446097992530165127125298890777448028064033127969683885371631083139863735530852121418249931608403865292224537018680497083160680063682933246580114507544817306963360363224380898327375324854680558494213144703373912944699320487654647246931954201998912600880406069427398120388456936492075243633178496663406330712317513130831928310675347054302688618351629871189698669929757348408673480803263567923462519693173906086074526416192517659653469596299335569079025328445895397732149902555598680851765072942769204838675496541776460867155085184825783036911594628507292852589735145432454630342493928405432981725228296044083146030884862321332399291737082305035685738531559620395211129863648834564402503964130381407333588622730358485306139066839939961875367937818555107271506622826165116726430479936730595045841816270562382140343332118921690085139076342448229429780884827722902487167199072035924287982946634767760920049701093995273343231980389706822249445939342387015715126109321628184375659098589273811146444141853139409842321156994244383653161487252166181642370909084312819796481933755795934887175417910309294800005850553220929819628257616637515088280785134428924570355392991256103108252336003092056838345855115999201699761647983869019193947001103139807246973518542846103576698139970964836571071779698138052346384474629444980226743199544674354911870347904954566891911202746518097419900869152609920667191902931332769663420293830667379862791484404501911072897771278874671507035238016063207807540832891839214695199324703045876687544201420385037155028539900902290452394152734096913001564698562030821793240071730952948674501609399153260438843501877910879851620357215922606867233260656655368820271454387432694822214818084879721883042207679655927746849336590015713663094432009419317563810805020338794356255879906461979875153448654383001555393480353621597706491329797214808655478575283523981551357036678624779538106275484385932835620742474246324489866417879808626046248506807419128956918662848413193972733330680897776950510334865405499994350527680799909361746648409451598281992595700320387674131742392389674979735739505181086547909731826413539431893731095062591896098261124650414562189729105868724586393321106782845633904159425485491370685601733500479275317202521249549427192816199914870294552129606537140429425188184382282781316234699898090811770994040316936823411897853403065106715099900972133683801962881559867063256781400963846739042598322856695553026597660120545982405177061360359502118994719842809421342391253029379350763115404776049240528333929606525322884151232329344079728564736427296185988675213343512400515274804322089870541716021097347113831088985772047903518452140755104498450415611961344618644609589732352166667497462080990236678683467929995402632044296421089628223974495924836022270458881962258528451318648902742328696388569505328302024263618602233532158288544044641775790742434054007662424985099349324452416129941315549454169641853384675584977885210872896991290072983150902928341287417329664809885006690009116870637781197115939817591990121008108698690566508536690927807099459242671434793443284137345353783182076261161996373450864013767530926694781640421339384535088808631992561467193542115713272299302546104248760695496251835381275747657478321448778998701961325856617388139921994835523017485189805242832869770403437090661304498948374071275708802059985370560443250357868944076793679207143131231686466765830268457567662754031748351864757432345733756018188566023187998479855856919541670289087952359399697271599753521453756435372142522451093214442891807341942825799956921701327728799086661954071573099040182222392393931548908812151280694669508363105573107288276671263083958124347368247231723296477568395411735423702979593383066397779829607731545256745435439026381575034257899342198364468608014132640814493887925495738429178530431816800862084046341136678464592149987363621642939933923706752762225113486000082162723135135422630170104276802668559085558358085432968043950768811560658662071719603905756023321518593493123480768412277948691582094648419389597053562993153849209642796604351571453622139374383049302456821568510254245562097198022679561298184913582792984757397068789957661528874114111570792828578866421149039759733267169682241697214490988899254182454798577821051510636618407608341410680533312592462644350998958780911777876269279640963706184288281223844210849196141509465516729015289405460246760607035043785799647692203683614992973594100723656695485445950519467153047192037645002425279727895301961024547315494741347992848532135699233353001176422018594140413778431719954189902805641793866134541801704466997947800836917076003914939931553996564562816804595449028875590162416664628376046364842932348415247974641532416491983402180259314656464165630720758501466201007569797496897749739365638189127725957571942958801241969332625385652775196379340359980404846617383878138440447862427082570858211421471517772079307728726819793126309993849183362669375819455067754836828681393821188628025451559024199005673765338968522616405259343281717772740526007957449515193665157938974808166832054944577358747468492269449673546048998528452852187220234772082194962702548741829502213989921010659851816238950459305213789429280329720614085108889235443055192111314674267941577318070341634965179862477220357471878849417371692621684320047371466151838637602510313957549533690767319334701144461932517295120420764248326731893933749239045650940424360094857801568508277970075825380558237717214866407844950591688442346616002858761799719908202926705654262683134898269870156009745170224643773944558476902292838345381633153074155564805041071846105619783168324767518318684962332469621803491941182308266756292766285896803739879137635371348947675873890501879082932522279833137674752485078749708874448592277184499067668331985767979040242150307142078581419281522023980634123970536605062687267910594250368779968460312872913955118502995324361462092410681156176496162428627028933440755599058243393642986060199285328821989442443695152441366006179957991912087387497710043475319902281071576089545734636477302304461368127217836158814660844051166993392142176617864446828928183441704135694784046065823393361853019605382555169413750518538559359337245620438498683088252575599549174360008779814612852672773223414541147449925634389076572982500210139258997938292372851734232666978278292064314088364383340528219668717157951883610479806940920305243298585481070990763271119024920939028659317319265843576891097916054045470087483317033826807700360243431945941661547534028429931767653166968644154844201480669752453358197329369000459007977919059326510182556978052132494594346768138360271836952599771374916477382012237022424307409374114923307039510891404489035556535029161444654323157743461000398123781989256791430051875400200516785564877557205286362944085283626913297669735257414694809277838640429316024783904182696200140144547834853809342665659361358086103352380132375813562667559843872896186662384926751441016458736753100256316779418903187323927333055929957632543563243062717565658645471483575575125216427030945488041542392382801256824763281065077478232251185652136731849230199120951250028963825705422061080872315734501425211005265165511925608480577177803776837222212998783064695406555389817150100237399467616181360959141328654557155749154805740969632458092239216249006775028108104485941773388658006021686739674331484875400997981641344211998742034865124046243361509003502514187618672041320607241330589732163867734151907278907594551374807618576404430662290229372295951840237208907525276445794445996133934629277707150772364884584119304003774426710447157576283494928741426678660108654241958712486203310111481037697221963355094760530383852697288587786600886341138017738419997999716558232698496132711816028465585187698361649736078034492756384624028697790384098611450177168284769163832192049510197238760683025830298602308397597143032029229132661392797507051513769032128372829384468059652279323126775525071948419808291607206348266950418028587513052663748862611558125144172609231026485586653106294892044512180993181712208054268270157801521321351170259678415772295997958256723286738648289312444716021287594439220665668799876633960575925156608191591554433817478517661130287253838401868394120864173784445136808571736405644295092672751603143498642203057908081311199445423287225813523549344089554395992070920324345502585655418587352121109678137474760087374555844162692525961000621850597523295776242763986425804533775450128746507390230746437820033522613382099152725693789141522837318117125263033930151299967218625734679778807471722155428379548206229496144523598191208240827091843921988540973619857804594899152725356784324616798380913287750703557439211149339951746776523410922643980645861943071276708956412869360044182638963214456932899331328661830605619253942557129375286282129357013747353520508916103358839050275644164233875465073552534729747144713487119194609737339142031907248315399577202178553041637645007663285666898927063130501734725670272083192142722735923108336869183041179636299469035453679931909766791037715001895016249886627461445059232843700246656484193454179435367697831543735938632212000397303409733241322519954208538762016995110615750975317185126808783926963898321557468810942825427361877288448360939286895067058419441239934075163948014746362731596025266773098972685556881608528875970966413335681413407752934553951034475401740950795537513654950907234415834309947408149502201927126092838833456859910272187741618387005769638548712003208832622319375945584007592828562332077647265188091625093763915573919807448741879559527335034810208868996672371274321990293602500452862157956003770715696901829317223432677641745929222119508154826440080792776652787512763097020022732175245965959481833985175976663796901058730808571506467445037870790325524982316931166787928874436610265795943486204932337828769513858068840193256804145458475386719646575030349808005080955075335006998055527870691866104861273376069118447310274588960635627276062261707371657523299611981555209878245421773101503319033007858291086478694486863558550226873057730977278687750141838853544573508676625076305610379097217159000718459789808878091830695091148427599691162392063347715217812058425696578503895988147675070508036763624398581027846007935789613155342191962056212393340499898901814685959093887114464839405934701040521704775792074383370757477178307385257014120858085119730655465553041642375017183031779187945586893141803565878512453264891864362673153568779572384355004676002127084633336962931922458194014319292961061157577251872027632815721738962819906927996622667380938405800326134937484792589967823269864876245620208040941124408967677475078575055851016511679130471219293993079914807863745958269749659673251605615307394199355553951203044474873317664916426851633345532070757611476693300688872422764280723179702705384602530058345967917343132156501078880511347470545909838447301267154349743851657684244911809196587996205650832654940823646035662292089084210213269795063892607917878054123501962548389792707698327359628247648984114394310447378640644118417173919872939684080067385897773270817148018308461858598947927878518859870452906418990208101243658435055694524376290478944826927096160457276619090443391496529378890415761104402154387056512212802371295811946306303297249929778939456666157676617255592928895816937696324982373569216176153535831418717754135050079106067098755399715572638671926457864129108957373263309440673283815061215564001126099694243542709580827426875463000211075846722774730149753417135757082254425721621791769768315688416895847450981153245027723883414230806385939210020804513264332105434007113138070360721234950610728511500811406102617901609712176225782737278207246556029061461373964820154124415180665398577451364360831205589814207522286012067390982880803009122188665022562295868311290299465188442419344680161960765262285447040153210746547333326214778652248760027739745935038941015083533332257301322743540807113242214236389935516195622159757324994803435702203074903004355472949235804025164985068523103189170719784065861083389058599213154369183394071981249735102044401771829495553661283147596700983157384950021924647476247121724255172174114853197970288592566859967367345317435373878026126361636142680520457961822832244748278633607630946268698333335517408015252924901655898990945353360188884486610454266668834589934881438014825452732988135778182969318509547917648645166005620522423629055165720640063324148523644003837364822389943908960214818029851315816858505726699322769458282611216855607067236997658098225251887112796379435868065995970481968011649949646433404431679699616092853557844830968408657683609922329352951815214801096618169919053558257600490951537196423947560546056081683960613427149992367897490957881418141907409201121990225080963807904106838211485141190087313998410517853172650871651771796362651744943724923851266918853836290958357304117422511621594625312011666725767578679102624038620332204027856898220565309397468430716630253296207919901286075763975164786240178771328046323673960795409551322012623190865231458680172358687699828421347167408634528114067040009504379303516477807399030396670937203679531163912035531387665424350341283704513439038506398213461960593761997521689733235415043353019910476193323819334095925089592230126583455064536081755621464877902067830355459615387325783447690993743989453725284820935682514878766114938261109384082608826199561208692015646964505376774136051270804736588871001552835528743836733733564838377715195712927373500346298935024822469876292722209608793392087574181071661015518262894494514492703193112364633001918085322525692334585965845688271868456253920817257762341082726795949085181491913791664691944965711566233169759882045365871052208067721078384920920356883823329535087957466767406695264316729937186324544981305675471088159200736039103652586050439765968423444426273039978879013940650629911739470643511408734496140481485296981522260005187585292479717103220858749943931187278996235003375187550985295482268551879810587477887528515315777837222798543723927157302280169864702073313911201973732240010025439846155803845147232491492165185620877259719694263421293492597291382367878438763993871787375461983932168897745328679173971555992602443798400272418115086407188778048350305719379183860487414873468254963342661687313897462684025769600708425735757176063899684206171762777339827101957669327425905362143247413273977139428206748112202705832038712909182450385685598924208149250806612505926802402386857799564139150217812820650823590799114977562620868951682659018058818497117246190883242727370944218890384503599641701375613889528038641910775895458873799875266576742159583105233647915167502747740490386634482028122613208303890524630486460009753638545605325808296582652204442603547974574922541837581177867143072381601508479776568751230972261054767138098712857545932208923029272306989023428891262291147453015093732437245965395999277432356007786263877763341061288715776350323201742377171643072474290477158935400515791665304190587646001562826193074930829263526471721906363270957896725382705193306328077465030470596510276695541908049603551751383197947205828935101729777459729750984027742933934267195703332750940390906201863606739173536246967714178044002437287354906470538319342228629394828900871171854668190315991259567321782554699820031675194935394761100615844564375659665543853857315609377930077796810045080980242046463898487975742477986718344960062637812504551057174453628085976915800639505565601618439626050623376756067297496675355292196531390484669891229584591848688174576176608631359398726515830577848463603734286895502671945681773301099071060833533889796054354327802335480458997201361779818098885715141330697698508601669052344887179300054909390461779376414459658664609697388788761387348658570659577537043144117453202135080221933214884768955052788946711026475941191044347298578458609691485785903243683607927699963456113100895203879635267867069855976106855119416886451906438879187138859523414806594349753654813725631748694015637187230101341314311286779380688660670735272165181810731117798375415604744590586816469573590615203276653409424866655589475829052557078333104731430618474328227358089401768161707668402712963264258584414257437745483634397908378734086046393359532473192234906727003112009238597119790839555803092360255081725151124248592198092386091332478179739422964068907742125492039651966236990606273136900636672961021181391051511800615491852460250145819188854732769775468788578729992771992762092978078190115872549500737118397692970728302725893629059735982118756239843147398056997381281640719903941474084413819870690859531004901245598876790762913674537023412211654208114344312715526797766608923030751269546279256035281830913914255763907099631152875834557665647525357151462200829614939877049693086999865401458468559260145775716894955474567618888572607778413341517086416402638171256750597401365600089332244389334950649318884291165509359132098935209327583668887239096550286969824656335249391825180061308095400012234342495013133011641693674271256965528714947067251043572756213852025665159338278599985040150915208763935129266417664876508895275773195371444731940579087774417403956748582253670881568166528008615108457600786565058828636481148486881239845369061443880372754801023543015094762694098072448713732588766509072568611167001309297273412994401546338251813750824131880677606490316622025039655714420076583091036378262409493797730226119624761645643005327701522373536266767108222493697545729045847470094986827826705324034166751012715354105286596566670889473400689104248543746834782476777965322760569162686607029101163299153032353931148090867866821005259067116996240595398913316685356569346893901207932281391854486393491019899328844435064136119040354081491573690061014419210183947606912842435377910226443514372645061743704615359617137004631091419920852417239662399137247391592278674089237478832804822950720610700990862349347543453349778346953227870922089852803992490415385746613464019027970741568210205976272826443029318496112392173831820169915268696656093455514401572692316520803406076516868576188453743908010959877565115459844482185984608338634861374869437348408705175301701232639177568221693217986501951480332936870549069358987928572773970390799496615347592056015333084941822264227698216455952182286511670769061795876378154007456125879955432001973314883906687778215656450508012018218175879016598694537187317023629904328786888491201299801206860839988047923344961000120536499276683960711081810861184823731854641436372750098447586839451784225135727933510791301897704977259146992352040985052920599014590412727698467651540732766247936483930019023424539878812482053590104864664333586046330512781044552739845753132282507004067315800623365843368443671425184587684759261502326736453550560854400725875918088383062209492266493303389251159435100508787483441485210707729617648702033744199583536365500568075060285178427829364030198163913178998109347154521750424370232671235459364905635179012996722296607267463395968562761978470180908717960164486207888874577933547751324956433646539099275095038346574269848379080814711737618330901991095406885972286611712748670892573026801687414366961128217532023035919035954206503201941087193246747539793004301742285217933792810073802263647401445769801621751897551504540062490329143851751519704835847786104081355717717114798097014220589030997745152424430524753097937179563137894870215204941147556013078511389368683872467564712395680226716009747160644046136034471905391861438943117493250597167446784625337599242942046717955140991759602078592912706312713948727611868110874490169807892801449093377949937610840211110036609845283231104542251590907628722461845059073110663112519833197163253198133585172454229199491018082241610385166909844812878301622703700462287126189137208199579959269428986424618626692970076638974647964668453258001744799526690958572000169478960195058761590479205717448805548730992484317260654313412688899944167631746248634347154132932338288060623462047520605771501712838102301975904585034428652243354961321929021335734384734058841945454603717192027574246541682791298656602605486748194410258411508771974060437357455409064384655364592018943076263794127160952188479204634548805444127264481452636272705807298078862775334191052171895894485860864746516326525908225652572727978331942323772909692188514084691291496595747081381343075878579893964325012411947590256777775085596074596354935630798196356390644254434950569488661104003788445795934605079941161786319947663329890880237157747958426622562538057216987780789563180668121027320285548724375346280994816563111620814046485996973199639633776291928108417284180229144965469679240716191448868267258741813815918524186715682602120560089369925360114404099261829586791472545757024985202868027452757438970213904269237006170594079336900498305978793423053528697430431551252038074939756322458903559387774955450413366869114810870478730973205729267623925085501495868302904852264669603160533971391344848476843588232535707663848203043416029890648629664011185955496663967570435999422627707914000347127745287399395544004446946530251308873735017674127033625827459351022503881391263095915366918616555656065466567293572944223325070435380539523342256962036251042442149213656234454666163949367866459301071023836581327315167984417476152224347204179001408519086755887442200400117430688642713405248120300186209074083319500439029072116780434960342165528490234023530570880879879368935523146952498169164050124081508598275555663854323409050885595395813714659389589684162442093359475440950737949298797654661480966113634318525699417746804761577479262949497012630158710673021403100420888080938458491473635889710585515221721280148455889972600639587952971201217119031433712233592991717139822162628449456082219557483854736472873445725911412875818560602464440033570833771899528719453411097464317686510569423417493446488118533023749438550483779167257048515289635135378338336149708242841374312062632429673405641871863703530240308608423036115515855863711636539218174817971731289315137727134531768446714705017240654714599768079610650828530801109480521104671143963091476954331810478544829283113105008161858085568414722727915479029337960996372994143286442873072884868434976312771016720842271734897833223275998291408383250386159739039915804513270975914333956997832463938209027246338416009372081478901304327150435192033825607814847243741218758621136876419184927616533529850181253218576472099703661734655982247583939609539609822658677451392549196164114644699776432827023012984069923205423881276534603653191120800423268257822736129994092237735630170225363890324301771734377026356861745200928106183842777451619513364216399480377274300071500774571007370805974706879932810107222521316195651332897087972249998854452993687722397795814366875250161873856701210397321059498431419933397036322111252966085225791175096815651330369548140480560601369768981390982476727698040488010219128903747378315741756234117776456398655295122218308273275055074084589867339685627953247805458644226308639294430471128463774178554833185883737642479606557522576340771275318881081847254437920894301659076060861534358845965779385589006370776451633981299884991566945462346187611368515396159014131905010049272626060508422189277969409726150071789033010880161560630594046796926672336392495738098457322907760516895510207978818737525452697783659922805739273098832370047729474768508613240739925567049046148189766896435791080591004625207960222669369700515446262904218532288678166080999643499959093405774158023376187069150205896437156108405250460150037893284264661131484453375616134349265255263037583333702495945819418223746383508645363734022553083890499660508926023129656496762055981067127192740010366801584518764653140580016166756162406441616624131712867097795419825367536043856092663092431008115420101437869323469790919461433123857771094436520501667352780505950163179873995830033851781004998430191579926574597565476973536107745460517341620364282163692091898301791149959506476893870133141358610062483391932912295675236394262204165470091127222959469042476659636988438889841908887566902998183348215060358004257400725236292103445792737968630255714190948532096836188807660380996694283859752237586882748453144237073878179154710983394259297126225550029110760085073959329691181913216973579835140583589921020239612283249975796532073281548825660167535450388962944658595333818358076953184457122356901778088330435472564025315920093309222781062218013263755330452451406862501113072843451110105781552990611980718239251676419514178884662936080271680476542060158018092352440050563479691246180152624715118284580842027205143725673200692381904906733574365218346608874156293735097582248374203327226762219102208727419640808108122934782999763320273437363124975118634617820982212006105824718915864097490096776378015972528251517862405322596080098365868009691264854925664055115976693943105797320786741645391457300649201177624429902854092553625569100933458354774083672670787578919139085710315065833075409870278533088498449353799609986373356245762381956364547513143634504106150676954387890781264923880951315824890085849439214646568405212911458567088029304274040565343230868486395743559158168297146363277889834967775723553954340313631172265942426275969398980480670951274407225221990406143856617328814927485633694519033783011858869269552060096649178043352497003814228074063957653559582026735858161969300784615120175087662945905115509377763298946864596881574247673737421675045367793243171689847353650509057603249217169386033873836396746930258249578604412891148859440329884260005271671129868169751867033957882654784199724061859705864706816329976368709709666865895159462725505571848921046163495921892254343719924056048886749944055678591789879105456892644587681860138408423226334751972811140231271773068896052219563695347863939429975059691257094734334790998916211220698697655286309307848516396969831475812548759146870736932794430035995233840155038496058869202421871733437087753965485348603506122586803421974002814918025313381613803438441139979614502108466455010383327362418858602734086895663209657074779068750320605742984791600514583113133322024299684724388326832803215576033093983417306340301907745582713832188068470099831335144342863076666545163764309351227487706552293477203815483296640293983938942017581126087190552078512490711715132371594495434381948759599799356554892744358002493045667020237882440973162992042978557547887312646280044718352736514082672828370057378015711869181756265465023466578158349388603488754115438848472917303279060852142042152362544942731242498570297182870315142185882394098044499966410175858154362991310587235909104123438847671758270243810502935280515456903438717842699560064396487522234415706171772202898772912483647487413912564162677322833596701030995968083185037386971615041570067731360344491874850931955752261141385756190558962233203711258046790661069277014872816855028532776468973821484231802909813299189645018262297852196074050052083043197049548508746257250742993223851963021208899926920601438654312811581623651582075641778566735543630769496340363338248521081264719926462943091740524920472283067051177832675780646330417735767422099028000538846816486012483342644066038741818394905069785162789011553099179503167343045801346320728469341826097531870665609531999687456682074526197146986806018460925151936386858541107302188053621103376616380344099423182464760875053243024708456414718680978265941133376943351328904487170176038739270763023347323973506724696229572114588149597381690234082441773571749155080721864622621573081199157130921095285363265945034211844672915404600676475058177452350455883575284756454509072605057498649415770724005147377499872446147936472667536068602119188326525167949050198378265602781364028770182849302918833060973211130866932949035260699795362280412631385230957489851210146088663416392585495908103662899656911874979446319260340668977443757525876650497999352842656304072941832662334888544848455078176200904595727925878962845128823426928160011715522016880029607645211133325675798298783434815156983062813514365356088913767598244408726099291369521958771084469631321233907106798465958285292676469519118263841292696353598655700386746202893126369956943152087382835813108861449681960291668204317190512659264874604962048407468152316992450505279166583203648556481030412180518141172827070770664798376480014059496647954407306271061898111552695050250582764805985721498068211759430931082841316796670833331577522250901803093664952281073461458789183909534400502667446589503197664663054068163744435414541747536767652885538661594170128985616950147670277984082852492319079555184787894927060671474363077032727898117763700673161276394261665472037352711333711265141569503694150392829024015867008694420265470081949991126681108113931964505606570082744431473254505807959054466652965879941568600302024874434943805287224481405021243766414262948014315322917156415916423005270498689843998475213616201098429614333853002828245422546881264508516124063595747327798006744047802680448372040532347678931040516582721312043524449317104590516232393543637965518673968254785877480266494605883554900949278535420187658011609719662580214945051525033925080774828615220405857303108004295872744346739088573290997647984744812343382749185662941033296458170986625584773388601257855425085341720392344579496375843671581719059244898796574374264350407869942463809238210785604163355505251987466124982474513056150450528240736481660882511677253458645208862565004502507107152018306056191754438989692959998119982347074224345144759451737591444918495712026515626403768002431059126697163961413524544137553921681128385418615595052925276467914979945811589139480129299230599328330286669688884837280639126532079300548256767411629147064109955852684161905935465757697898815726270717347497285615674710520925072468113165312165851398711463893910998016315925883778137594762142504373241479479708211388787498094793490557629074312524963549669375719668065592161701871775013525425786565049530427195463511307390387383581474822915199634949228692301749586358430153927590472608497420645427878456173244048673256974440782327704850606779085764634422077498177159349581412475170952213009038851524990130847824378224858517017883723069322415567528808991797343335356179733483198304924293996332880786898060337195930466525047587486619359048197805162543614047433176805139720905876382547007911083684479997978699825259840749090881933282838504300853628218291485951338241788272561751858653587667072440994668296733718175301194707115961351021425872186453505691334594640841509779156247988855740363957015654211989923383097017283712684140582530702418298587200499026786850639041055967798850037654693543602803629561566769274072519567466545019802434070000443857514625253914521722787720911294487670502972169950638013479919579263075377487771339501293342250916464239721608598142260871995397475495622482034035796584001431431409440659128749050018259986447570794361108821853588681750098350977055472627804652471904268274041538827616481207166723141454371810863887809503066463948602668990806217773680795789749568004044608791900918748186232971641105985837854800997339083085967254145146052288025668141827305666414225411460655401563775260753841397327332681007603704878630662469273709573032854297903462544425638945026182523333419909269088460042657117698967719721327932126165469521059168954050155774668730043171995780773454824347516097116606050352793175165968683756280135691717833041334246782088137633965628102569936578134921030687070922694395056136103027666488943229894056642387054909675561541054271983800831898104700832180334660903685835533286428140782204272944321385133385008519134624906058543548420776234758553875720766792628110136222227635458508639480574683452331857463916291924922753607679627159006904298514550430582491264673967896675978691050383624518212749108516512070194712300331103675145937836152408867982630488114718343386504238081416221753218344888857698615680871651774084163444788299434833127898782124265065528595751387758270135820919962304241196881155045450939635505033106469643039809683747053457611761875729268593491268472609000534462045625461853594348120460204318342701265729895862584840051986076897998461135852937623114987955310399879026269992493686505386422136073536215681859296531862220825826585542312146818747164043725494651990036282634225564145928353136563458281062302433537201242307418504565423048753914629219318506614022581791077974017252354193477550743417276057023757465901635600824195884425336378239323860953499232943697042663625004864992559016853889963108851706982192868063216657122540637098015389488238768820337237493570014127867683530663597464199983647904299574571017596820611776857977053726354070047792403081143931740904653667142493207279601952689584770044110294587334692974692069833162664341073945527676573219566075988463982503045994777994082721532249715189551742607370183703221019921605059574482744390394345328788072579969161702783767632182418059066501667424340553740778132972170029867617246342744784675012385051133242775393490512998043770549291103124061319794083247672933814215128961423860808266347458492311156024152895850927688214680755988319317765852505965430501576791218064298542386676653936545846892002858872361138281886195934423544559691532867950901099548638193741610334982856684356011084724398420486080006801930104930777847482662645078869543005820250756093253843841378081569837236733283539508484734014150013604738961781415594613785986423564965112257248771509741650399723156609628496048646484260447083048851473366440022388581501567685845050383020735695683612580348527430584515725889573291164591456009617142862058060347057107461214595480056478983035834744066870844167928739366274007229169165920990052540990457645033961711154865513129601727939439115913540716202017757194346867105992712092529574481667741921992683012672502237680494794506602485313064714149662352503965291799999453014488760919739499363816855611476056189476015366005154267682115454265396189816374042188922534705384978398019313524861451426609416134181752439194125491420730593081434948713781565482138320280139784029012848364096777418414784046333646024462693115017099234711091652152496606331334531531285594967517177630572482766079769318909344011353317199779195703073343466590431191312919361128468275563896238361435329660511933994555618275143629517096557203779838747716808028534553125329375184213787370201591302533910895342333632001105025185446130688009270320067312811780994851842222594728556941313415808814156901700949465500728262881159504420706362901126140677806036318218102258505329709316880432038622226857916500158781934278982179918016584733363383162429104173469983211624290962915391522869046551009622580582318797620524324640588598292889673084173450692199278268597955487756631667505181994625542020111916443549728427078299599958895579492766706478884956910059599792631848115803462081957559731650408823605666518864727613173409528921592900196483558012828540873954255494401703083633238389963239825491542049387256980723023902564915891314656713748124076235945235012062292024369514035738164186205292029489285695328536523125037150565273733633148000511880394445215488331641412625293448339466603466085696179836911361664914939305782891564951431279946495136907222214522063666488561862305364938361724750319857151023874823054585110662616320855807674293284557316982716101826310125205373424009210503022535792086643317044060324245299272927785839864677310256513991286205409516578248941461099989431394016939697560039517271552458475469142470516494697994437203752131056004480015270383714807488114392964129337517802636685307913199018548327338388132537734579749185989730716895018356396104214997668236937154132596577984700932791917498211023124111888934405529290679666187895384062080838587166269194218166416068012767200535988042372098918131550360935904284192224029496574851916096843435712315491818537140481092787483202313379264819693888874341057527964312712406496327421285252253671300601242865634448274940570334556724748044606056198280177613329097827677267574573669970077474634824328545544250404025895938167795541575940660480955715726448800298228387477235506625280755915714241911414369166810541113212703054380688886314751823671290976733273905458072154114722537374559688661112592103496400620672769300133676330548173542806052258945946555224041684963029432867444890132756020005612780402320131256415949337214308319735368674981800203207247416398498489459743645801044990363068206155178797365530869534404654567625303900055308946132981837013515557375854876177890846853054483011993097719061381304420309815786215944541053924689255105435280893545029326897268006520977354142983147244180493542007186483813134305137034093086494538721742658887349967143984817034026663279562053848287555725459271103054044144695330947252522348510855875423611601329506348281129590206988858532106429993976259620490293428579649958852704382100810451588490790843551188588093404762570069163767214592998866366069338291087636497679771700562194442845458400963461043863985434543037751509877909450722746393082464287282504805932252822962066878653642882656742864763416590809234050675105820101469291600480107899671230689109243738058625418708043210428018429216367219514485284845538257141899707706095627325465894331296605289461308104635472563776018985873781290247558851538881456712536709116587362013952743122525682283620269111205525284396870099156149464466051026579676636040317535742822502304825405494495368806626201200515897218667857622650049600369298706685791387932515614057312247649678776034045987775598723696375215714237698043030197991515464514285793194637661548228742413197885745706634368452944792183639424248107546432329689150131240945645496736593746285638668551779189792249588379055215217922362228947428137232297402376953039150506380729694120341301042546906133506479852088864122777482560893027398902255078050688652558057536929741170581592310368138955348196593732533155228894652080800946065708863800648478028658813811853922536058474722328136652308439173193837938678324282922876265961212085055580636957550819721597497717168209854768087937003079191855487422020528594648482452331399262317099990784793848532699587506287138733820926360260522950395821531548161700926577827188293617815143486248550106141695518410335480757067978939352938683717818717670579749197905387685862640116491037862843993563416046090076985922143349196129290232586011989712055250733123474108329658428137135991117929805351377196732647067219567205085435136694180116582628079655238128907058459579849904504525369126107163167882411904125907029319753993326498232745951022531553347109166426940359075141243959447610525854601991457184749672201772627377873837991496671572299240358544518415850018948347928566213986132798837411902636762726402315260714650665202209099307917297820753946865991423166621028911466708680343290302298994095832295605160645931073908884593052557432058563645998383580362781854119151954076120721040150254855509424050327634067233770831835337475020804338341425821169447469932381602520105345001523439541582460190612907823855933338951171980053308199706208342700889986119905916680747993352855836370638725833310556936687642466204184124904749421986979928224796458471061132174309947578228892415490859690467862783007091342613884831461692547760041214473684170262520024341597659977867150557213645890113722395499264723041715484275161426671993238540039073949555748559354099969870041500127322664421653151505483172991663610002418770864441589425142402821240169161479614323194230513562247895613504177698178366881467839655912474526099042294468452682907868731563973025832630107155871586175284121226068180025756845652254662043255925158822458190494539566166738164926568548197476673227817010473159254663987990016103329712407882320933146085974534188689262139188923269923929181342151584695562475215895009490218732410367900917277231700324300892194636349244785139401186601783032397591513279881141959485794350402730876205060999452723769287105653757307508206815680086790146221808564174180640758659849948890595308140072544881684523746790462869756356050803350088406541745558547063044015264199645914430391013321625531031494423375357001580367626418190826747081177044359676165466080171811158617293166742025118465249435823702187514039977258565878798296127432752095432987062091820502079773878872096483986350188289899307274515349722597073941792450426330555522461421568143202775549687249409205705578000011339874993463305345843325303819192497804478809752083068785000411926421440852880120932817771917768969963083619105003291455548747970342355466721417085137131433123690880724485134241485151631424859071405258747110447057639669142501279904843441552115551832506099568750602527109429393158346032979888170942446552615448683791326380310254116035289770807069876366513849408555235011728639456087551144356386607262723820847370136727625595678142370517531205575704054117355272640077896756344977288258375357774002740821186001686419767197930334747243005387827738660170038152365593255281380499554251817774507236726931679396932657515920527174012465181210790512845522869991429458613698744149942796006560356896851390438981327666228500859222017417984915285957679352514903013559547301185581793451336295430832038760683929411859427380487545807958859918097715155914563863605012021026614409345214490052247924484076777094559035672605304484538127784884217171095205377709607697052308023558549531523044029853735677344651056877122218532709249222152788156289151387409028584525960200204416849202242682621385309831936675668150315888231835791534623108855770891775940915644057771513210533492396616976670928029820455805193876581676783731994702988714098124505736194478167551489538795953121662236145319010527381377058600741353841453487361525248342822884799664044254131437080377480494350327119401871936547836377998618283851092844733799739438361403268422505001270548848117131329659594914186242339243800494099025097530437671224862380913097037744978600066023050737393604972156815426210350637606868754562680862764787689631037702433069706857105439734873242749923198579317786276795040757769883744614832312969538975918439538644208138237834747808219638364313028317688264133484568560268121823332917031579821860031829856655750297618707592503356555470612056648145723077635247834656587359360117250194610789553436349435680850112049225991854323141944812273814597450366481490002606326998719804779025608928108047634817514136665290205755066890156482477960663856575869478265651386266800123664072561531090829198408892063562908543199545991147354756988619361470957559038843444881817054228162032841926854431346241027193945966435695025927690242725525477413924776627635232726441662001505264733027799884452039604320184034001943569903240132131749224147430981514287835873887171470637686713525255289278711819874385632647717109250014344375268241216783277925665921770756893990025929574667741515407609234857974062011806434052208714163280969268504202327941113167654307060180579261811940705292896452663860648534141556069243189912337898986333781644021348648225338750907899992779607648367753249472198403534895852079789959641663719671377416973993614665454133419370813879596616655801998234472087110548511139011283278999538321576144428782974354447122018603359721250970893281892313844819755260732232272115494636638777142808318457645264328081117845494037036239753221357983725531303960675400619281773363671982989663937894416802490424622333858591197670001041758329061008679039711286796266977042858824996536775656488703350835207045105157076031401841738213359200209708490006247785021022235912498449858039704217892853774672107941923867393297356854706532304627879533453557061435286859495817779936953819062271170253927785321052073838012506943466543138200658896755653302823283252736516207740048488409091432214956723579030369068298492908616637329599113776132071733876458911750670737869504429744584464684419526787170472166911386811205993789503898952888729845154316590736222780309049131219642749136774462816158369642499833223077221060800840234385294299419783938173278066526305365542833620929606275310413764647694402188566888252427294035008437831604328035640737440869201453284517508534636578327377542327269523382640181676189134172255950708982832338895810535817632691261793731279417267548724490085771326214116678137873013636135601378985511330855707100517019063829972318841631849723610203076666866593111154597561219196665316888476299115136216883749599873436897565497582739061483192913682214446153749304258431882774718389579954443563912958712718795569107797629753172113564912866638023870461494564926670461136228292376869511883058906262468666581349151254272839190718670538155008639061267822449881456531968428391993382936811065743954506889087007876842783445924905018032575569194249921048208789673195336917516320978838789382443401008018411235581606530121897293482542648391226310339559345736325718996271223180738318307527245212092073782796014749503441574363168529551878717033073359055279540247538057623361642080638403112313103053684856054516537736185449437433145967599880824530190916282695513207674150223926165417446022605490961940611347037840405569805924497222699424336118296120075226510127797425890808159329375459932201002555802269262171482211762051627416827085602448014009587267548035882852873515418138683354032362091170542490868421362593221600685494703674259033488919731694414114235126861327990504510505747949949897754193939657004311331766935612856372369874088782770690083860739577869423645609757523961410898207253067037535431105426687986911037928279808344880114989503444379629656100431563131163620996254602709031002053302280452845761741212485116597875582848274139247171400266029367929014032864369942919586378916575123052608321550426252593038577772010624507817162215527510491240300921638997713766325630735502641669397188941322456210206511464434060488201768213281379207700693356606718441615685432343414159650275840605934082142396836391202267998697902958631278401052719448715548867633833318092313177923616013004853599205801878518471553022340392311119101946862239324501114929221197096038740835125889894906530239756417245535745668354734129788676816542318975180278376802289375084100092857866067576713747825859184431963504879143378880331192915672885558200742919724187706778601612994700916736119072613516784088419195481307199587774259317606241139838724015081712430065341638931051461532394805636696145696579234801981677381343169629109531906885320221863225511681527520228632948890049031985381685823930381925894600561106124969980688754759410238867785380857142538838319970580563559017530969660180704997112217756850097986971776419201442627972649526529116379405225950823925742657044373299623085727776757748573854341000127643428653915097083513464776049080857264517730617270297757898915144247647072690627963844197536303999808607274194897133301499811637849916903462726473878458348331988687317118845303034901948098810220498207993032017599155909615697371855805541576133176003204864868069654734246577462599614238063912494334776498026096693971494095432890712832534956846594536720577191122824002063204827789694872260857278500891244859693985410446342232161775647548922432167865166670307064471351644908303299127795076153457809292201733705361105566129410757182326273678121627513683170776182236642279637685488969435334624281872985243031037340626091792933303495763926743471459010591141995656516169462193612908087694645563414527270454029823104928912401089427533947905248154336898710213000282929287772730458382468711149958124225127410491445670662922988387913688581460216304302002157434593009181032026880273279290372706402986103576875910318093409801673647261058552295626226708547431919256786789030048250015603650586944848660837433030008229499697407682097993918724800924242551774151555569495890299269424449928514904354671686808813643803130962927921482165510034285145171711511369765708445211022663058691882040360377465625471668806910616317376297323855921152531903010523560648588287090636280020961365961932810897096224026990623410728495384670354077718631867664650798895610549425343058406427190273477913780454154003487455369108077343541309927994787084328580114855191538176010708372456924452223932331815492973486650064953826910085338935310059904241016280363097765316199456295184081319544715364358621760113933989948948643639731054759551478435411842483467196493725140781049810046741864692458219084606869312182533188563420022837452114683880387749053265451589226860885979940336180260817940796487038847344752614704437865551276222524010226292842657428676698172151936824557345465826960361035364014250463674124409222708506313520191999106046737358230481214930102718934915203462341832259477232787590715834748084486557623156511791752535735724831089082411341860540956839775259446486004727300139123719014962545441935604950146846286935622579964662961920857430385137872696058178725576349748985551609087739221904861123250916845554505995469873935075498964029830830987581534603454372535143141927954965919740478316325282809961485293348164081553439386522497889500736983933463193426230204400134819184642276339366012169992625004185248770576265306117610169197932170186964965210957122872007592888324781795309656612300052447070200799312396123889520487485560927602224556316182965681765799326452551814064966470544336611171396921848490440944496879144718649536120284713480191148781443955367134612435901750573325370259406712756377614562780322411351104007396585167923640985953006263478157104985159303261802424563351048593703549243417819080611493762034932484717751411280112414080524506091358285488169244231012388326925663748916553259506589855178817632502884576038889842350610673633230881050060757067015206288494926861152515926615181864520748101169844906789919241016475205276108709755542050842249001315277079436061418161813513779181041198806909435734740266649182575961605858952283314070353269153971596833452261436830718038233066180862044873913272229957345894537757698587594299918432811006069309495021023585030791927374407419602422609132975418808183502546096103681156709905878703531154192749559150104631737719049873351901850964319792916542887492524229944118514571644848941085907815412864283038294536278473222088321602354769458617764089113033217711461237767036622159132475055216165881893987792775238864176353165403699636404605806346290584947266649326382596623470307162357698832621375338924742239711959673755133051800901817962387895083967212000381524563754956767819458007701073285132945744852546735449824174973402284040331244226550362927437052419498951365956163381182523254871468703771353809368144054340458594230665746586279483651614741189449898077843379405893208136506003549931034120215788191534224031268375262172168093173781860578208638172191597913856756769138228698432042509037299785671878235009860385459212382735966138341772133781985129564921179779803832387121775492248667120119116956744256984056257142480377194762357094809169859845430467028694962591631551438051571953359221714932355078839038766464705698456182387935098445179199005739778476430985847939022878809505999188963384521553383202466745709017902183633108985880781175835264875394602339967970383399969142937686149802165721917855310510136334930247494638368565076257426740910533806385503525037104935161144371050293923515825992906779943463529290066915229465994490492836218292354942706982347778400329614328364051242604091505113618555189754011588409823126008410292810741226893074001595110311498999283054306733147959769780129836803337267847997469215503998938884850826330243260943079379736038767502875786799695950890422465398307828179632693214427367030144920645955215770359909356843800705057086527354724980163340324780745379870175399404926527872247640232346365085934517297051050167681131769891420996956584177318947791446467293975856378163148150384506281082995847253905597234855140277075775484146142953888026500518217774051613127608298743482516409780627563775990327796977444391575944619139052139687861948771134407417634145429210380062920667477723378897129719992715117468471131291523999747670280238533889969591456613464468745800944956258903646533887125020083326268597159504907238520946250369881804880384724736125360500031539409532899462449018300166312462449381565389327237783999366720825440770742648712486421110022550815492404848322482994603338830988441087680283057651036942667371779399932154909898623146925853859077196223447754068371597722941411062764442010888592179130697479753127656652739616021458423132354071113848206492454820281401516902082991421964385615338984124942890023093324173431310718916498226436171532732861329876443545747735900477604078425658141113640299246630293014181414976888139258823337276872045038475619495574240208744559797325389256214993967420339118992430676632937606415342770768935925602200162419034045973132114610059586056439015916088138172405393305309816521400244608558640332364899379578262938877880459124151002268353620403563976145554044478504983644234132403608865390316532062543834380713959388946497891813555829999918754006036160496983327351174127199458257244269410070627710488176174921508868698380895579063980896158699425005309909443993005769279647901357566894964153435759583223304678221400168965091026278566698578166836507042945024391787477217394939979058566449321669990294118823992548136259558410244378737786794507421571624964439643775531882692470966700278133484454417169473160324558101137570110440458545569683439048237900267282078149031116717194758177373700465289180299536202775951491778267061941983812008298029542114237762167125514718794735958431282509778278225437771849313897688993047308549711120912541559513722585912147309180956326326432812686862255087468891709736986252740107543719875869660586359260279780158223494208141448624830340591719419337590970986306877557025313430648057236946415353972033408982896834497123321061153442217522118608559618775325163931194643337728395814926870445750975117644964177676432357623070321934105690655521831891804745155431867331935970139543482224289892398806883204931575618084096742879780375308949245541024538095374688019952994677858815045039236809882846438359917193788956899255593588792743105467686944855936650147828017964334017083062677887744662805774059852491421600950186517882473718612080041162083251164786661692042104887399016658674997179615080341175075015886466407400148438550417659112943645827231932851314046837433289256364802119450841193635360293636928357952224209084289253500421223262486076224526817631791344192953976107345744640158817005696785297518312895503777617012742952173721299108154041099333944283556413252766813820076291750434771815648491397646989547485807873972649851962075190769799571090703695707395303005663506438979219199300939517313454763579052908048999795863097526728925855409059496391262874863109330205686617419519794569634886040174093092432857034947392579240526528561952716040513820532651163637466207202412588744610066552194214700243974903200478746709835187543924480333306230709375511672773022444509124984858377606455606114524742859813886684039958947234095778271832235329016842146470129742361836406631556300419016878289065475012076778752707224424932901927875575628692999420260499654016625198455692907812797206441629823995517752706871807033915065996139137839716207452150890738938139244309698401212351837360245302157040954742804800775633476057739624583581583471653993471364957732370090882565620639975093790811166880499584895594116904395849418695851383080834559963365217379200700938260845653697238402124094422042548986724745493793845187797556976725167075058469078890305422569842682494551653101683279215130110807493805683234115191109756749599610006237051307883916794417134294099546181816470510108161276431208649829733415779144389251980229923819828546955057088917111446069162588453688392831633962732465552392086909632987980293304866425299109152234384201693322336949354390463724591284727972244511661791129104344967198716765339992864913964514971487466097019389338128658337743570942418908015925760937397132165912430415584871386755419241784297615786617588147989787042416911814717230210016387601064353189596697646045623267548012192637882411747567008061524489020593154319206187027714829927078226199868835274369815248533260952788695572272197862249946018165858207707307577861024203069464572684469827081168492737164169184752681720303268712994155070736990831355178262910194572377343290345263557938866529879108349372141311362669708832608850436251183651498510162785620419563526956338187590397329183155921619875271766772751468097646705947512868269920063497660588457083219065063011275607215369057488569485015566774440080936958535371017855026026752351122647921223792640886159941679528179223198032790713240107327223161463112612414255478405898245726553531359151186651349398089296829104058645946424165539504676157877997900919550644268398337818740497720596577659062740156675094677341735129159181345771236767182265896759272557137551217378619830458665871492799331220176463017316008353730320004276311260171782235069813457093379239088327320813749135554248279256228174288553509469875714076884938976542439022005067190617120746857650359489755882672354563010046467376785960158086945489563419491911830249229901046599465733904060808606521671429562553341943058559598087306819693888041006652455708734214947200478812899618753848752311110580208190270989815449066075289390083602353377858819213075940001211151282268414958694274849620877931739430349241303822861894338669312029514958003707019898054431016889602339572974872613092033244094981997829125689635107953756694782790546042204128064392059690323746268678105341801719001552600913820723986689909256148056666025154587693768588140961209819595758268938053601420464162092124339275179605804023282244766973675194274183691763301018520827310605654136870229881943461645557372146643635704513098428658716587933868723309398338151606964625688559738467011388794122975127654661365300859539659901062123826687915594321493669715897001435914435702603763142311534012363110515616271652123930742523766340213418620239940513280311617507933507644372922948409795791958040300543977683802409337072428303279157494013187562263588137709517091211830228445781244406405924379772958030460230057732684096344111367242263960762635546235829409420407165497931585354464398399511781161859492908974130460432710437753930643298962749891875650443601884724762611559514224440890080293613463090296984724129026132798699756771585015314187712910603027643549486559194021963525640471458955571210063536928147798730449621571868581433949639157595379678392787873359051024884928054495423970694000768081169539151681828586421084022539627729545123262272782019457420377741293924541402199404239544783541893945163424030808476495877047818290820527383199925481354557960435708264774840621495516470319106976995217475520574727012171014771776764509402004573221619426346899895543917553925115580044028634753178170566883611139323016508993241807825862620026825035396741473767649633557866275352982614765354897683035777922848734821561019671100526004432380086227675629451261745814832232876781954452878451364858983126909490146851088432951726942193082559264477113742716170937260585059850790236810269458366269874665674171145847964368323157265327223942333035493458740745374679732252780629339973759833823926885139881361643427266557500410713445755491779620036966824367347873610510322264184480363404379259593197018680302598220746765538070847866358100396450569991835038373070814109857811353652509613717034393566638495865189585713115823842260940507416633981038478325728932092473238009714783061379431586811389784706834132756148673246177905726093000697406001302596734362738177775136059073912564130342961365419561020730971238869269825771311873376320501846340153353790997377778076744087572845615801042803305008163723364872148140136283649260039084061676976295209055752438767161013559581984557834680661644144185208621914312269235135645286543705709061596633072279660690863522878401403309653889096901447656598142719191443387376263787664518471508782995425680915182635326880324597670556735155713272612844500309935616675910495940161007946485208115659694377337426058901559569254797694473415906848875917410136493117597691414242934826924251469685190623859826825939473546912167045341164314878431143893178826727518587338550599493182853465785956447034706776095984885608191397470805095681356449799768516893465531759396494953573550371403875027808705489615145476552633952077634109453299497026917776972196094878779016664996153065883264773783168960616323905966601297063153050681856962382326114116771018277926583155024450860481531411107311324133955008823645390842878281612322566544794442534156600393168468405835703172789048632913649092659323110817102240037573361103884813514925135076254817611537424717899259865774923401731658683384103393527020488107072413460117821625793665630209914396086672007469993635792517990914614041819340895791122219602437873885930986222014640607510930249979300075203676317031997883102581306070371604023638596458262060290079999293744341259389404987835514370900053269489767621662214332283459967148147279780983401522417842962416352256185641894418108189695946630343517161020438502022500509546384709977750623016507029714306826191226323046666613018685493800595232433438973854433644244011343057210955733457529719595643649500712039668562312125158435531581527124374476786270075247053011258288130646127895090171097437540663972656893142172407311160940292184992024839839410553714489297003481106773522713870679673002389645255562922007270246489587287081072893954047642444598411789567924294837687863631220743267913353547915764386353386237615731147898354475642112154773370406758412477796097412369979429403434654325846516104245358159132667000076984624062558571942540547567684971784676796830864752196752139457181654430153537299528329373717224388742001071698005669527653016844400811898517060498637856398592747963956437342421954628560161929109539102594202768199687208488079885193032617389170343835096765755350655620455548352216217021548219998192593189343686144110919365463679370775934880963251539906972219101602391321276935111257696696851023049480629789613426552465325277148104273869503541551695029675290070364014770273618859488190016766776553127410531334306443796938428473265696005472022760336044269231541298521372810630079258673023426895846071557570346085271477647843202383823189689843229248192477978333720358576809874205503744881127158337588884049178311829604086541008053174133070467671456243735066129288277018734379470418416380681705354317123110331093443097728249716830439106138882531839421672088049684839939301061135068648142428662213456584071853588061342038519350386206565908098054396405717107331860604282951888629944585550160801477505863478135824758399000745885174261902481067843048058311917040104848050847450829362177586056654455487867759012436107370126263271357242584311710400238787725796101826838374999335788164711462008381490559010145430633458319881026625545436792008547982026520270265980883781123233017514554596273190924983757219151022756227260303858159930365336668861324181928071026737673529502307141521630172339733930911888750347445577452422775806024339377394917283274074584442777748509352513818766920258448143927010614357121472410018915659039661778771538535424467121851723725316932066818218911785081137841885089745483339945604214909818084108256420382187062575188768788282720112829264166700849167087824523383143794982217165012960609098856900398232088137757842923196070942162935140752681371015470131671188791754358785266584651826408890400564257700420396015893257413395241738289630893947957706155861719572786198406519836023589341114604136333765837749698229533345262427458382126174667789228642366007194562196780643131244646984191094278778201844000316194044015043127354021933088309556201595410576156194477475634149278738914327430034276375449651748167523157284294153707349033273991055510803123631360475689825113823597118016663138457247546284286968691138951398280495467443626410524325555203985181382168994412400210847985615354955683501397876548015259963859868454823937240040148781549145286724350411388631682157448728285178447553890350427785125361610016321296053921012144414290336460980970981761954502778897653759621877465507882891130012587012705794869817825616686287280649636673521699313143106716717688219516286758323620402992646698104597449210797095155038507498669617622945667203341648412959586198303380551860021124353117662918394604931429017752359349245085798085259795681765070942613612688674592736993805921206244173781640110186730678857201745018912376657186005418566916915299774478489540768449576996766156934546929849514653300063588360682591728374538221290560213750910474581437429563637047584459800973176513221517111627771122604692132518139425603418439731615097929929065620618895158199575392298096638264485702237708415785019072090711555363887592060917734508601766931765474410413497974014562539915347214923349196902706726856823442463562417606138493752064656279124498709883247608426762809801324959263620089960931857079241358254932789696319053280666280164981356128706683833453451784974525940400111411944396779711639507918579655164371266000014100456447971046166908763429162918260494485811134754218994388154804788692914907322784769490125680209332940795237150632465829115387037884691616648873286280739825966712276241319530912009408423725771962257294071219474799362813326610119684095792716534781488765768672796423443257190882273646499315674160740902412875773838641948050935782486560366145375626539025909798187214286597081853087750799893242135036120283271436699326014027975936121538095117222157179300532512989307373572437833510923275259882901195683051643704670918306964386353088441930952737736765290968508719257391246173759241199971315837617563044409825399689604838842346025264341759920860754485819692020282524105522692193537285191399122212988419938600411830936636731820868134128158117298386489130974590097728751057088687705173417844497342291128367118512119704543614158583349459634275112446566104201310769795792610743295324087448887000294261714456842720115173094051331141617066173505757258414425515347898999740867748030222900179860429344117357817911146896523592514232776103313258546759728606709345119979423410692401951866929715513287506414926421268629734535337230013164768604642200485952780634985728004235865937674349291907407037134754079968926135662703532727079109994857888147954168555972967938708032143432362233569675436544514542138575567709576612468315984204401659657765296931909918383801687432633273580076681317891705010197380972782246502440674992328184589851610126972421975990435114599831461767129059778157697857640619757388290839176960382046241329031973980126978903828654393707746777600780904967412167023412565037936114358114899200044665428947402018351673868084144232499619327538101421850213109267577208527572235549785686123447620637620292230031054091797880711315674085760477221740517866735794660300081395878261844262069006349223502733904432351920276505443763864798706577759403988700318932999232995779512618279003417828689306843607277921272631209049531182115987011256840219437890122477359985669474292380097589766245807331613082081705003338457469896386747739274925396482339176116562968936082739892563343451542199195239195859393903794870928685894268183149354135982432913303229531617080946788875661195448689645156473471173861591333631767538786652940113087584307976957824149133641799187694559208097424466720755987325545561121359348764877234783701739004121941195757314582720383177394172511212829619671046865140924778260123469408001331421092146930297209279607451592975854350010060576424295252045871520845324483741321960913411003169871105961335878410109421549465880901714602195003863123385664899722513308218262415161275607035860489913810007933730916829862051036112706673082037387302005825839374032974876069455202695560463668068652274672723657438155158208955266712640014147876995326637286051978943634343605603916730686409639227538696686678656192278379359053371315644557744699318202433312458807788485140311288241900481377271451101276531804868348291027434448775071445610003405790468352473409903130597982820000597610906799016720367138316043277956803245143087914594037993453586842406238846724224181090915295475386622611439816742120154174842021138200405118880940226741754421447950342032937909617217325336429969615222454095771443936958573617846931201541487776643275914680103440893503495025210763227806867835395153370869815617712935558207203589839299913241918856923281664892699091447314308539040964190460759545801000041190861314951294086181716917361809345049361401102037277634492831226539917086771165338487208565612538029751836493952625628846168520987526388763883525866072024612381206491228852232541258452571465143931657936280782186422151954738624717918805314103511896882990192676928406476799715532076793437539413413274716930078148546853631469642016884570038130329426852505175324169199658557571612606987943920258745423734941618327033603425158462953494317651528817485585017568198358658591310770209435267478441781040166521353604515729437829514277321952487592547214787242015544518770371833149138304403225901718230012738524462835018053713946790790265918087379261575091146118229127277645389701189881040768695939451530049526193020965054946064494146491689604498530336847163167600054770888943473051577912167411640627507540656544160535390964959210750481803550825776162747327537200052023975868145776872056791686859181455716499093637031195909326669260843465867048590005955290762257460894760280777063086336354406017399872265004605424869634377296466948628050416335452776558835085242213945600674420382110538249192535430555919424154256309089987557819758924602845430890058132546506274148187175615359607437647620372988333110254799244521779482621477368468401829275794283189466863289971658259388393927989653531120599454865359194758533008235194143520248703468222152530989453266691966558600655197011410965507088501241671845063661486754189701420063070489792651956998393306028893245245710998740847544218102341034243127484001328238656758632702076080129459978624085094193559642434745658049321010476492750700952096732146201437629369036338567446681340613874784960284999374064341821392019567370686721277654589748849175974416420016949646203891441963861480717280574946619664175995302148823733045084634267800539921889103010663918256016838176329212855283095705712303496676590160801324985200114623602104773437935766721794450234537471086629447261228913624074599710611802655370287985569418516312744454761478620734674635833428335199452352419945257878922424162473069940048357672613694701492100478624516373944857393233456987794546171121179282958841216200142659573460108715215357085031538785873639023385133972410132640396664130778354825234663135873937882855456203810488411481402594976204014371411292874191783408184164014670741866254031412279842438188644607573698013624364185396967424570120002174165696043389980497904056135210098285514921834788315392833092030726033897934061012922186282712878583863775508682378944743564906242103647402860412423719295741508451133326508515118568161649668619648497192066734455065126978402899070729542644682375204492407234803208424885784869573524929365635571360528421933809538175154472705199306926041819388152629709516111540178949513696789108602151236418535252815969132509728617895254347478335682661985913872839983236302302667601096153820366183103086768576712571270696784990293761179117677914901356528852920523370560897598031354746904616118351938711904883311049833349640508174332293528593943921088641801250043973471552913743641365541487451665167230824028864785052584408678513451183701997617326108028061716002216456499799044873162301223227011169048396232765463954000272299116098754564902951785238024339707949500263869280299569994705565178358729280389040639286476353331443317943633425996313606061858238981815686652778418455100803520357195375302279152683556568146679480378788348575027700628450399599907252369464125596217213611791324848172998719171475510315360992340985725891659604290423046028263150196461424258439619427015777595629249754735138241317086059715059810628580796277533645536854843947118946817035073922279077908271702710871416427655955472447478828866270142219007263702262999619201286148943887920240525519914019735421337223149098389646400696038737289710016735147506768653358213481925205860075588286524070903223982929424886675824682153648465106234685285209949200035411367815070537800641369263056581206463356916664549184785295324151256246914245572874533803670873500455850293125635357691881649250955661241374626658699199078628708774615755285237381976861518728468355316227022588578933880999447817139190326307770436051407164842896917541429345996834445798728605854027398595807595828513340977585894227059027438039315689766384423206329878921063620154718005310166199774083945819837953803665889484833542330941289688358560144814928056890010916798846801947199058885309520648372776443655599488219592912959483625827122562366195104956020079725957600471107839424526061842918910562845897287909455860767341659426673726323441842532122005673811485917972675691576250882028398403534446135198837576360336975664427982581558579786672484032348300995898192504472898681309060770862877964263724085499036391285878820234082427482362913211319933549332149278839433060572723099422902839755152974213504737325796923004188019154602192805312104379785546123822617660530046952278375342475929988626661265978912426995163375363950324925714820101883702743834773523783835314521116469158014347915631383173384001439792783379861852577542432415513167290167446511366482961465937617236076185994408915359547939038392193969574015444118626381560139296221012916120425851675782318808773101180279035233571013930794982877863815468395162797179498141621333241496246096639927720773915223730807230582890268294304404152046942784004072483787610842396042129762637561040909679454587360295167339985955328309809144350209603736658831777900933277048414967533319196064875391242296516911395761381726013619789189714544896135860353779651152450642378637162607251196573136896488067587866919192345846350538953195081612777039806459244673099909083638937543066546562317463467749396555542716760263229137341209959047652236782006747433175835580071088420546809588897910552087118736828835311567447579719293177884400293720374899437068175364244693442537815998824884470351556459478009709898285854600532331255033544019129510355894378895025661156779685230850814802293565427559383139084569496918758471875897412783990327705019513920059118457579559667506258454510782949463169619124002393693682021551235383579130168580980857524059686794389615828235182494956189578487027274019088688019746029192712067452885693251676405174001645217458151345948679281604642534496699533802802369236714582519674713820417603245472941307145675408418063798399694410517940822969680117164958583648682915450467251034571413740262806147871753548750070747977563074712376909520724141826539104637192323092388083072098838026337781367599652702961062719373631941810540526819616421114847120559996632184569922672790731750141369207403466785022323229569163393744820633781492334785074294142304437576504551172056799142702257867186934563442990009034460420267609334099882750571406432858533126846851364398234279667103724804063446649916388757039466296059718239037219077403021059325905648836207469842318763773982627736679079645934009225974712927946137248986529619305099309473742305982643744572931421003523950466853911722936956580815696339538410964805964805230619273143736847740878230987417858137424680168489155632465006864850357632721939619331414003762340895978057639535459648545090815236608179789882186709000386893856599520147711495729733007755249681261892101992662706774444160050983299060139000874265453760714277572352551578550339922362992268253914579222449288875642733527397322838845026413463346268196313891264451552876571809109812998161037258903629207718004611858938976647086652845438515792778805225946773709683961685678961215883888920603932477395740717057260849462345829943997432437912211459315855667227417039956651360344347488271865683816693457328668398293035900118430241569694861597205543395461177594190776034824710978605191287347753695927145664305060258164691575460489100323431233523710407910709089290165641902134648887005969158630311892635867687187559233949941993397131651112791179319142843294796606746309142952199514139841830321492069012458536633840225563537325427858308751353061925491932870735510630571798314127634175321153051941841891967182092359335475336481576390069405076040759401237114041738308797100448394523357505326016838587430242206405165520038791361108984590893048731068096928222212039623006214804741597536050852883478958277767068320653130433791244068787261233855230644947718075260388328174114383210039587760914601191075349352414778690413090037701161077639630125851888661880524040026459267920982119961486288219183203100715828129707011240715617478070632729266665998035293855657939325272434405424546651711907544002574583295005773382471757621993643323531763952794488814429991453259951541910692842013752718186800874549036499984969828848875824253391154659136242331088314697327627773236926394625641527122699007449948074938557726607576678571818871463567296684464716597360050327464823605872002855376104623804118059357637543102695797431597166705831274151931314645598911844047734969180123878677156890959258952388965094643512486015441156626845752653956923579319928100881906408513518681611879467194365428397350092844146298952813521251815304533485569158412033058850035144796245301372603369044180538440678760045137700544864903812850355750968954459036802951197826579605009690388292021122975331918688544531212528357046645328682565079482269744159278795510092181650810991584587417102198679508704234851811259737334170785978707087127680922005326750441996258205667235394624586322800350226039777281678248311885674922568786123739919534295242051623401421093415668463609172873981982253766841796640570946360342451436322794620294434548685585734588358982695268908459048089140770389455564441671389390816748408580445913690135002434504735737881704498105517386157633844573156385231212763538170225194126480589624273717198581209407185842266564070900424829179560009701792844427128042951208652803753128890125375124625184313654347507451707397327716823365311754686643221627015881517746274440442787457309430267398782919893839475350055285782343462005362034055557169049882524617771290056084119665678808584817671504164136693072521035501585476294963323920415018838613011872778191896475156170286241269416911055646489780301498290883180586025916985251950229129330577813133455995601272400398386475363070640841039120608763826358055004220836406334257865530993707369910818736100695183771138271139961268755921651735711442681085782137398268692349306304205810732445677039701297897557531070089011836614322677241091139209792171682992239459081093134698043643150477507462004812050998147911106393598524847311813344400287733065654113446207619574181764910397452369874631117144237862619139482121289905967841340429522122008167408234781068971741654196302301040214949547403134775440482177082142665809337504170850600877659011790998995574405938498355905949418804126759800956626984571437735353763614915482877204665925973363126577418052075846685936487126826555062973543151650607684661407075283466836944905864256688703750963261059813179002749799742731966630375014926351356246069189296043120416577574355005538897876883737900538313092715332459043925545789289010342750486134616744025863866973651855121680903248992347151724734839483784892566802374478981631675124329436632697832678359715504989918252060969881143785601890622993136565796813244906141912567180160031707763525881217149616164201378958290800061620163622541426415628221596248886417006904434540722613703656461639145319271608658450350177775073098715126354392181704779925234200430283968465302988877373316582088139727904319412370831891549999160597041847138700788829770696448641132050952881814932597271516686346463851663217954926671298546868308345086829908765221661172651517645068965481384003472350491340972375999656468969940640753834146045132077820119536563939865518023762526908390795191201128682605342045204608902745586864657723954475068182423873345425404713886261678402371019629256525165644122251192489970504953081497913462101662529871456526452968161269325034081392129523180532204038701015624079777080412195379718643151232857852193303783701871200059611421856345591452516720085177093560427214151253032485226987272066839873146947154981886791360013769989691373263830600493867080721494616011727949636931671441472929134123466183817632767074060301904286919754315515029105084134000946831011524066039853789958354546923165285346468688531545226746284626565422534590603047614661946043109481280301699173423236882870589057978850299545608760945468908517126263951434930188582125605026486839945423709367075944603113380759472149648587218333485860474845310676685212748388664901483644671902909783950254366731630952485662043499808802748694456769684580253273106811251683860452413327482644156024274794905546869935982486948214489503345582588318992645087453295553081838692789893410626869085658349864058833986212600246595287258798931199747324120258851739839608882984854511880242593020946607426724392039798621531593470236626900769388219042498024799541141119047723916139441886254829133788854821610212630503899511845567458142581446428785986020791101208308727871026766912141763900785653577995459927642716131389698855886326143438392296503598820803265514714717758662734903821614680880848330637327771585738924381451486955340179722284332938459240002329457977046178169403220580619551344406063475394237805000189910415859730625662378254768121834089497402789057926969942696758557282924471100866863901282350417761271722679103577305172349770412135499645467660823406690127196848264418286980828575143413408237741183108411350950552759025470376385940833950674866232878073344828615320263072082805569566955273452591120592633600893332719132260455034406534700478464195858039889045948339966902210451159715273457513700271464181756493629220485669599041208131043564360253243955889266501222669813276703712805367516271989550856905771542185605871794471140706092719340778576034419653108409532849908986385428578052849557673773755112062229513984666588752972875211927217526734265967579249460103913302986838208758124683244001762139478178382758033468571241415534268472338948027683330143022271602544480130273083132645370039102509901290427746176068610155364921051959044755062104339609003364231850419379821290933200130210041189964902982676994380861800337154461685346635008996363799403661426618245194198249006929744644761070530807924172663238547359159679503772935077680917764567094564633498272737754152248679697874636419445997103487670959366763310807607466411235834570354415820556240750130321419458792770582769580412466343062578985348794797780065361479675864643867751132175552908712053110962959388761126742519116257589304414054241868889892641972478618012947771197947100429534246282772616506202219280761339395244106664252216650951593294245136967560726515573600697629505588834724502352815460521516470867066751643621019254963502651565342208234139941721655128904006458971205834587759431885625026114096546866809222298407065040463506431466186279037980987548034405948575819182265633740625582395782976979921801850135692331107040498995783996688448263601058644081823554892756977085175990784480792029017641325916969622683273627711598025240408616018722121274684972763329863315242335510433941640016630570087025342824314933675469124593476028725041463538427627018051790436093254392808041583156412790227492206046012045170171029347657516318290667194548668103986978760283726967527416447673442800499840089447547454913915875747738192628198254907709354802186795505623643548236307061539501698063400361791894923013155647687622720117995714862096744736858895554133687454932170239409636391737567049959929731786325961091325198845675815480021240753114424091867222004328813359440177684383397341657362094781048853486647990570192102570444502666795010346663888478607940793734456544570337316556953011109103422023422228899995378361800742783797168551583652237644526170115051380368329378270621120325380425910469885739182881033846383831911666804534680464467956686248384501372869332434845102379510283096729928896050724169682616615339267436682743595155825806805221941502973869162921066193913264567313118580907476823198910373227363159783489149801707061990500656755420418415663030293079719608306871941257237785030783602683812972085365114266190570013590638704739008429742015364615869528202910650625132649667703728895420890844464345184123256339069536753330194108534656173201945834177986167635722874010456678711491549603527336464332674200246357119581446127338296131198607308723759879581271143261940040605270800206185127170932377025845856524729591266106709247051123757674741729885228424939173349714344692728247144362646147109603949714589778469138994734615181835338753166962659000632835506196070816704749971761753136865314898421233916002220072705808859043674527530163387543624511213765331472142648126510145784867889079581816645729957466690836689958558902715804583911332625286667718220081867404526078220401613798902848867422596268565309782280238544794262042784528255453750142107520375571787364381494380489495557955579760646575440123000806625751445385619250928682326070530153169176564357924595638794082135549748917007675697970787296115641875186291472466738560329266221869119699620435672546713390810092873188559080668230876613414600319344191197777917859607900680685565345590736473252935439834245017067200061394724600155907669131693091557351950636522272080036782799876764959791031271437941753264138589122710674047433699267350088752024813563791073280288352955784857690224382970142366149753718536914103419889811710246182116304193927895615858208018532535519923010909693292484822514796894359074998453116867954324176120628008153577910699982049211319794791350743963045883004801250525182639157561464343635657866325680394603159443826228171470456975719513085364283895809506478925050151271312653452614181742411491157240794005359707172461262772221936704482207097705706395153388848906036862374623889195014760926999972384216221009430874111241214273542429683136315275551703033705295770356837299720318489902496995946832173716614586479346084487208307732187604719607061878011741774040928072415026037284578021060084855638945574604411630887163610439357856365602053133201156706131473121390167265318140531234089365946239046144471178856292943712691780092091567753510342566242442040881401830178699412621262320500795359261168022484258940912376096339961899994984222904798539951403580251942659191135168147104861054118753155754613633404690771012040663135018329162445642393710107689662968272173860189804453982873678224134956303208430191846493302211305852643807434891100523628661066700292088153937024291498116424241179351157893201714829009262683752705902036382350460651357449959948165457598113360544013939359602547681378752673524430404726215089649052149235567108139798821380324700168360959574739192489418647989561129671879616253939344319015783398649772570621113359401430278355100781584950086064527577317247710960121167349580791356481391504471398555671401821754895049654718809610768230148701142624463702493433895289305008657890092750910266369796410351985363230680894541993601457673176151101597245431544235165496671030466994221808300370257933995895106802809505000449596127822849597513097396323683308566716313057252614880883770947025368784809273607317424580261528655159842975478913607087196663308677845887391137793971151171050829413067182043528495595551138577936856796967742759844465212027811506536779113661744496753264973124428685564870708851042297793211050582452536547182863618953013338981345343517818401642014583292876480049533661095629997888554412401123475728953329599525632156315913012748726813905358064021934235088949045680982981445521317830239487779637079278526698927536406509386223002818029164221040075731468254138458797154630723624040693352786380195267078430694732873807833338730403629763603408073843313935493065683722970683937434504715879487802261127892339756410002977869701071076007632072101129118697451891129331995903429225643261502347868765207909998492112122147569538982919280428254043151307830837724960396569111337800753279067413295713762177244961136410668171612376814639022619952739916996383918386996680699832715640440512728421152029113025206957189364065063646440306049030357016360574396018350659288082107090227484350987269734562925409019181137975352233964332187621501099710465471201710503800778285576957525275831274613948601377148241527491845822015290511313677517510604256786507840329685093035914707702399394826770203570366882615590571138366597903494033039851447007849000339375642999937670582038179268740571171766717181695114970266375904133106867819808017877848643056086006665219471713600954535118510030568321752860668966651346546844190466296870339800776022230906950370934625333625071056221910576598070085570854741513897011098692680139288844398808513083043687311879157002290904948730003721806507284769226959512150073184445466803534609919756956828700810435774230893343530108922167442857660665991205947412898286977350338568345663476189451608986782382457849435391036973036155567444315306571904467588788165431553706602118233098553405127952535113777302257223589198185696910383957378733698663514060079877820785006510954061724574179810126427051905719638572031332868885749364184567269523020147146652047313682850545616511437699856176065960490143607429090979151621731213589307764142697177950409845176397329493658679470786179203512967691331858463175838491167368253930416459633241459395551920554153462899520716731156326888377025819560467297996065085140312542234028659787496073392520623016573807201151140339505415840042159261133420407835652447717703825026652542074107587745121844727536157991765919455949650576583010043218079418889040936541177600824642010461344061065638782371299760144625110288271027330972817542075646771463577566284678112667620713331514731440178079541107834089180244097947231938934339807965689606098364418467199140665678147559619346005292261732386055108824686997576239795183610813237901882149798288608257225991370736696155376598920438296675019337079286072877459723955835544033411836403428144756828673697605063353884967538156528628368446870484998403472476428620910100979236376045546100993068740835273834893618049264325913378386986339908145345334989033944573482331562330309775613884143960647519533062415610282803801004984269003672322161776972373328062571229164777219822853714749492936020663826071063489481885412739765737386591270884347443187180310210794601575837017543173800546491991200796764244688094357288808964963622988431887351460758900943441476470037509768300151380640288876152499463654029251471527178162453473643231247455510669395941438486925027566330416203071451751281876651147189714602426984986121061216322781476503723250961065743258283203953510566583055840274703226572216129286607304455036678577445011587612869998582914664080894762073901746106312741465062477789867541708826423528927498790636094270737405533699479569810609476635714294733789467273190960085632746228632107344637887496939305678893977534954050668605697857671295066875275497408672742739077240989796811594967018279954280325066877583487040143009830836072891548921838802190989911789965963436829938203956800864580401353538051054093054673435678089285637696889381361242467733428500030808857973296686881574868658761855788202807329641989931609630478404472039715348398055775142771116660804924128545877312770900741926407343800012742789130449377190776373362651346282931052132837396791161468063988493763226803393626542778246592845543764712843688472324873974967486376391268258150218071912901349011832618127538955459170660445337396348677601125736080134173840616765507558334929512812589482790725663083276694026341004314072526389651011974923568944442169320144626042673414894843610980764961227047908131859937896345507537994850082319489077034974625850724921448645682176197615326284652276290694933783251939510020467073299202347309170762001244622496849984512821064679301211396987523823477427339324013053417233750388490664596385640854766556926466673232143071425425773186921273335359338679519120761768565061378802790369193789445306285156748770112160209160308543954043485142871381283736241075651760320021379902036964274997803810671821826775481289443618614976239125994946968195270018753236720089720064426961314313574353502728255545137876291778035625179987060119602182621690491697455414883646116621719084013329530206985058371230154265500548507119986514010347006719992505739178124469816334972027539038968805237004030788477498022386194195819650915204149857454177620183984700284504625801794032678871817467872249743846971173185355527114668605706955353391872099985574261017013720232777788741322479598403173767926920925890257055229116371701119031162785573773552487629269311404073335378479657504047840719282858536537940064616194700495689895833882522715987008536043459203510192908617248258715351203396656948227371656361584017323650675643642230030965177444522965536444783798380953949973969147161207167910753743052117468264445488442677418541621698488497400557192331810013041365778734139452555543299119902061854017844424302870406965672873617485005838800059456331375394197002587055159069674165122986003163008492074444366934266618526526866314755926670522120821453918387044264870995934258468404846872086616598848551366830727857484511259537910105515711066147129020476389313276697916065703603993898260642675706683924757424229341553103427762685284762677236441290221044432516107118276713454481114430679687358026473169837120594957874502849734495059259698298298184996878423942753320062585313641959275514847915015972278519067858648685952905839065160637273917536262503121497053984098892372223318345340287845115186167439784880495731285385409877786928524578101782061080336244115316276838466251060574231301254533860829787731297122416187011725340970446600085103084677422262919936521569439126951660135414566689553984346390120216444792589097530693977132461901766267421284913973441303760713999932737716323848478056424071564910497065803338868068009183601345370576417672717045547826895967525146949851661658622998731978287170355326089612053360259948152892042833428740968075899095786381524866327760960137502558858363144118326777388966484295284129755832572333358442512323369516532949625338871881223896291528579208900085534441405467270954434437234971256760013831178452117592159934222692287947590537531821422682748217507524137385750952960524315436655341236171515432719694991289776764550729240232396396796975212091200570351712878347665337663138550978832008862826400154555793471193700983350483571729076752421902832903631956971135628571574850905974845359621848384102977232389562486871995243155169809025089887497623238388223027343126951158607420891771286872708234317834386645608571045369230008524951804794021887338383967046581267874007168697987651263841128412224760048199872360674502872003756703709373118357169547685162209218253445363343843716478561148924048812131295106668283385308195077615705044760185390514002651440256336306605987137196144180005740148838479172527545354855115619069437475136422677958196840344161654899805055635242133090663317845665026776979633616033526945479500876787874920345612148281977394208194918763637095815186497821142950670910720981917686078018377979530156691719956122982320361172004251846823921535820980052325588286320536478276789448341370072584488606255893741643857847580348609852366304167372030681398976277457504421138843507404626040527450492766386855672326444811272504838607349522670223662731933794211237000838573948851607840191475537704462695453915801919885516115070324540458711225922779975484220700735667311027707307701320747282459216089317592030876145115894020490580334075136801031073645067341643832777661683176702246555357225027557310013119370547671821904299543959690409192369320590654226125651607801603289457832996836381949828240859232656594699908962819894274968320747111232509939708376820851384891239773654074795756413996871052619940257677226500790162921907340738129683067226934679991321680706001159138626531407864125386044244792206492173112623002114849905216282801833435395287868128928565636921835795007653182647748676643341922752762540989754180082165289972664733938237379003876691590514405152022948949481019262422088067191909996896445275887463878220505185930066998288419008735472862477636968222390789193457965063462950348214189542139282955849784247080006205299519718191646605269184397859006492358973016047252720814262608626924922307033909588604745362499138774533094726359219465651533303538825172603808290659696515187577645393836376970318128061100079370523374130363566079412243354035651803742466364327323044107199722419581293978669718765657611586061893156478829575647260539404879441097594377238938514294329595392629272925426618553472759950620331542512337852445258192011439922568106046319267462785297534331885118688478833755109765350118283361158381752978032893705337935499800018261382079681553191382608254445383933853608735429789798057533621341374642157489855247911610160473782203583750554931503411963158603419907915639528596127496938203135830001740341052124398132227337831968831011988301787802377402311763144375794923380872563340783364101078217486385720640142817309118097976089442320159304951126774326975154838537285645545688138265473443904075118228398816881360255454080828723635846852551596217573666926457701449214979004148757307827412250838274097666408426418948868677343809038093704015402450917830501016846483313051475478102477573737335376796269787139257793084757333783400636887598827729336729154491094641712158461127440897144435338199831273129776776800463866058489262267471525975384047946014473130472846767712312087824815102632264001312048775017979028731624949787749694791118277996550691124486363067286569131962004228429638023101465199851997996496306419267967648426854194656610737445345562008244260989504092638191200685416345968449368916623099182543761086054095547713976774486846495822757944254819402519635529883344567481457713917441783847769823364432959288226669563100245055825141919963635972933978358490299628400609741100301296181077789167849102961929455850850005698752095099833854766330733688702190677010821026460325045942844122713420321234413955883358720346042780695825773798017029059915107226632910154414159712198185272274456033360305832376369599356939068078617686061841286538922023661769302656529503468570974110647144285749822808798295355764211683048072724856889535334184226911412125214678893969481134524808164278406312239567562796480807652803098414632318065613530841951294183779654135945800560548294955087171409447111705277240057839170831185123405965284085908930449888237150984467960182328250885714047737242935147575142444310581470243205026115657755349149817976852819179665941820468474766409493644257683842037192591803688363897850343325531348658288122779862576574498288165816288879289719490124077455080966743224866707654761151241263369826905091308851231288247418493403126915831885626072437168910029663912036784093005155966586758417096760877850640977467885556535959902157909603981872041865229552746597853159743219537487853766887681330565832947712147063635362748868639008085255474423264321119893216570271285756373526098089860564621474449859589341222272568914830475700936619065439807128889438956440712010843176808997644002064695236360849347155776503648591163845523794397887739634669834204495642944787931707649711541589458542226518094739462234300701923670322001864187259407419041452497129624728865536463254099239089209709429379435749401444975069296961164445197560783657872945897661245139848496825735063366934765501974420373972500431979146558751742156156387617210094254839768691964380874745954612721661752493618826607763520549847168163937483807474942886797026536236317559287314853438701916150546678977420670155764030324179991406130467053380193770033561011138797633274325335977394188030243854601927255565352044880917971935202419260300499906071189805084695734335799078949451756167505818319288605292547307019591252145619490730736666919826231707939459230152040672994274284992998538899815488230602914342612741926615359133734088269055053156434300370663883339056947710661858602927867513921280220896118302576653404436978663780028984271488654810840399965958374725420445585765901575891012042685945124582455907516402866758303749665273011322989074186034924171000604215731108125267511771005152489347921455698355495909499189526729192701509232623468495632685015669519747145204630933706046836458031014033946877591602109613069245471068358463630259696823079038127212302708116705315971017594179744166309809602785380439478512591427760268109957618961770492830682438324572488450002583726779173982877343736549786204773550579371318075960581032642558941438624194055876089760522829434387710310006138330804994624899944257658639548639174241444278839281197386897803346280154477428720640925544448022627998366077628674515910459399821307758859587044872193452080404370555755504429382844413762514699049722069146815775151284586817451480826169610892803368309836543743805518991388078738703238178354719791235040224271619318858448817408941083824671537059649290330112463059641878620114403898763074508944430088746117369332575229258865726456029000680267330758071709882382941176270697889517066166331754837255528698780780817834513961918726535085111683024609648731426507935715460516032545360696388734679574856933725476842363889096994639229919186298503797011050983290035929686993592739341885310686758626485290377765656167850682276044878059844224599662075534992124514575408719085805560439246138117399022367628730678496674146821657381258757675685002931701835795633688014742418746756504765146465651005071998512569442838446410464210138639486057809388101189340186526943436260038183442716479280093276528300194193556459844832925847810644590482547837005217285271564792839996723337714686666948097453231283500007806358042822600316384840388293970592877665219250966991347505019867859645407314486321093252301276892789143278143108937994908365319538656752878586751297736818759879260815143487778188147165784297843333822095183571225294768155916079223328450968378733853649029997705251859860961213512744181640685679967053795872128735833427627691649971440393818918209076181718112866330824486894565881265630331229519074070395012853595889395829387622016788704789955700832009154111986673253013460683345977620675910981015225919153815826999819510675046438658467681426555613476763085398601020708079605150557413741209903942527291569580302475208207449082301460845292518623361618864307134439370205108023253409059764908710231364078625670529202552825176191755236108704400950669022493537557926489987472907847889780801658458946561621465909073851272355901706231839668093644170411063052142655570107099675698132027293973770185594311923830685107771891989629481132451986826723843707810918174341790476597134389281339452396952128132375512670264861984603387332073163811928349974776661775199008324845036866172922630603777496087286060759499230949847623042119748147266312333318612208419539027883072800501635149029634370148181105140194964748097899009850241118325308765334799207565783589901158161612964166005306684727457511795668753895695809958330603106888463361727411713840836641647222663617862894967344777817304008369469128449236543152579066369097788944176565370293646173615594627607131573919742388422934244914537021420788297694285493912273160076015577485820562828810350981184200231361615299513950545316510866874154408659437149510695596913654688842341851321041576923548992415674855540033407231192458899070642930484849132422332622875831663814828143356538718656395328457639262975607863179527545334200385201836974945524972837275734325926383432282823175480963496022354429403620829299789390117727116630796244835052663218720264155429388016077313657462313668321092588329289038571531955631590524790809475628453621262414807067693759512259423845031137006147523243932421639055961146386791237753820100394749090490311901021422159640290480984487002953634547250171858989246733801296696370859678100498469316424184179571122995126241648249960095726589158624672988529638300283311163055390290583290740844195496770845625926858300837048159097247613990224262125376562459164806714237482254745399383019099618771744145273734857614434593835962862318415546963526685453906777996541067758109968316668993701408414057819016011175548137365743527747343730104674089808558370617906264528006708947549906227644958333707321390700937916646812912487679311332156178947038989609496624181229241925425929164690254236398924245225407749803408727457824059933246522852389419016812651007137486306029234865695379569786050345006482555240869901035890574784751962854500758606510290134263326988888902163961842169689986339364753045412808783398695588971899286869024089371445069465395276414250399396925028236732185323835774318582502554986678867540929646066279066104319215948559389847888368198361674019233800727890183154192541319914909668467095016798074414397454132596762006063972613222375229812469322744844127157227037687928011667367122742084909029849914294150578965615066638445133171198003707197150842054792772842055073053884183637147298506704690283564072174938915950147457148826344768421981346648439165598900411855505079524733613420755109606839289050967453501077319499983174511432091857139389973260805501681442008982443290274637078542979229856387153548767438516677979351699958131994291596297141430699253545007446893981838744876265540910540003828502315480612882398200505155343098426649548655429322403326494760826332435231300450217745064082817884958554012207834834374567369684893979217936510949608426878850463752813443764127680284484722480290115001471600304668036092860923783869016595971718150074530330575702633933222783606927341343482912718087273201910064995644030289447767862201729047571871752675153334421120447930839642988239128739858073460062809342011541584010171781529476605997526648553140167034713606877464187030598547464027991505515767541518430107534264987595989587675016263071698595865448963700021179797898102896792853872910349141277040787543499304041943901865014522455559503232641825159913822763544296573049789096699340669627705498086099536615669240386289961924019847189738572129982589503994820981016297522536682346481907290357978275766814313234555312398508621295376944199337652768746478143587811479251741259052785883041121104982260491934772342641738051540246279843360510901546970029925708441930085513847513894819681084486192858483741639380388374994162067918472735961283502606675269158603152871817007337496129948766389056875499928908392811239248624707451739478549307672629438284615529589535592202100291283420012237039451075986884698475583361995092458514218184081527532900163260917778573445037032047148465944044111969666093817481734728433772379008562087398576614659260502458986222521120837632523877286985030929745070244310830965164793461957479782151090489666441614635696016209435952035500376248870263852928485534606611361657922991913120023912542104263343101719938647832100386969505240596231114545307430699405255853831985263462579924387715946787348639994971022969941322639770844241584955996420126032933947549280039158020421438177084121140684886212978053100494420652874209909389733969449072406009846105946132569003005612005051303753502153425016286475995261738118670365679355994563056422863173404565788291176955670688967660785533566776698882487650100501610756769230950325319965697705108874143591442259525519161810721246242403635658557585854342280869201568669176295720244631398944561426374532157938831845046358669839336855001265801926601589658946173750138302071875804301636578707217364985157669401572386920994044081234346174615958352301596682770108750086585451912401341294576546222648667762330930152210445191847173311199041845729328721049634317958884006264295573398248979108911034283450413324667008405904198099203216404535510004725253321782882441899596782710473919960854716431231603241401027367263589337945142885507978031315054626474128770639398239413461653985879414039462235761459603967029759942816308642189857558670814178949896027063298474896986700138000180178452125350325745426741519154524285705662521799408209806762195625848938148188350642753170097498929464004856334415739363535456209143513506929735976181494943856680752911595128178816982421170568880083430483457207075064974799291535846970628408381948986590751413087062325252197930070069886104816312353647309785454061965437351220957674835455671306601931317926531279754719392315583231090489043777091107878694757599195388005539147178669900908878569630571351469138518031407304662387095958898548017331935653329376085274021863286906583684262474342448481944088013303661070932458437010480448635992436925444327346284411429108937896600608869984679971342719590454174795161595054641956313840722403594690446828886728673631418696160557629789003233145514039808413334444420435465606948657079437201708485779756702417625321367447332254162338172567063265825305217561736317449271011957523821989950079315944560287438399013301033983052511988512623888826901986573123714592938756915601129533897324617726049906733604878011319248764505612193732656025153362429122276159637647948728139092736540924730588397687473595468070792290255300169307396867640517749982706866811361490439221671349975745801875232944468857929191674656030994523500544549543616352714057927562912213304177139539160579300999443942483513158988207963745953298321932908011744901483580247892611980737869709988448458007154202848318251990656594583216705089103777120712867294985834780272611901775854243813651952772779469182093191834246932314349876794761581032016947664560172009386934820357226456836146461355661766043506405274802659201796072640218376039138770046293266947656190466712045706543485454014718979141168758941830054361692211099597765543630713412303128297235359044668544306180894376550590774597936132051969061819430720466473418458240905338179296853301848423931969183128248240254748480050540335528726784656649708931193927883823327588682612458546048155691494575996325939978123662510627487110860668405221424636082146681023665686340032175548158496366391536404783481765212462486778197669386937625541763154131272737925392778608907735798677516139801557761780443973046860428407664174188286517403053811500392365042804112227470745410358426622087037762281365317607117652821829558356839228517337565585381582274936660359912886570116309437967832042560764971315798363362251800238641032076812807616032722348523609999653261764231051797965164876057618617547242055961365824390899907389222755648916725582015870115927693553176450765155964196836930590379492047291926646350551410032791753988391276563429074867402085999061735160713885622582979476646639942323306640154193590987748004713780679787666734320219732471565382150402760615669136901974765008015894431413019608341478008177992363961244549365708797059563143612879260679953213294968241937107900929202956541105166492609716784209675867148574776490586331046263206523277204543256379638410965251090414307299178803077556294464101157469353835765660576924838939885633042283755317657745061254369446494917455312866270948402824962061433026521592880906588441330180739568807532071042484273227342311776758085268173941672849833730035958523527031008793784306714461096962647648489707083479247512834440262811321877171613667356276451873975459050629707280822769559757840477481351499972887985076097091482632475777298795153036943707127625337845809761943997807829063618480971291846218835663574457065978344898813418771091184422052746608388440945482917855050562415553003372920118928725746182395839162664238504502660056102363349929911098224178001631833410092741380249761268430038934985704079959127329138600931434470168169564403382940815939692592221413216060432128131024002742466777299731059146105181957860803181676314155360297832220115482248765502112099459578028701254222373889041822762926696927020698168173287075503089501138592960734175852838126984352405231904367262580402872630870296323137878489627284844944430160480596419834527186978880283948724623611205320347714474670032328126080380369625095893417961659373225430586868270777576763308177642579891576237525598946588262154918916190993669886281123060584953815332759382742564788759113622872762637156400240212167797434247926966112904802814847640885403614516185782497158885941481550356621553570335110120437395043554542486838427230985089876406648975222219445341082283941293637825699414668431649084059317808268241265983904103243472808040276627595191465862246720410360371531320647034461664432812946517115811785128093474109723058977898405517914785628265426888563915682037064596889097108003652704074633748335519435548081004895462294317400004016430332230257044941762554398941281543075966399506373270904572491933627159212961460649783665762608654907779077277519533401445868155648723829725906680615886337907429184933085669296811067350060310846142484019939767026682235581286505740587224988789014117984593542674150672573475317810553468352857748952044060106747607444514889245995900532082368511185680091743533859988481481609515703991789478540279435754556863259016502917281376503991166552632597634590534230824042128124358753908665373566011066053053053996159540919499525038176998695810648856764915234764734807039935419297814309953986941879958100630254654857114128656217441051907272259080429973471446517237467742612979457510579855198525003033381449826973718110189954655895700702308714654231361835129865426835842972962603036405666130205094014452682205145525882602637155281420058481324429589429123122707371601133602110075331974638026481738014941184806309531293275007698463832627225907783102523259039411533216643232463830157710638941307566246753592669809878265086761069401521007820620627234019181690524556259713146727914725637067639466489304825870847348443886586034766717883220131581387308489714113288149285657095184691118375343600477069097094078314632893533771668461318814112300319422465786319484525486426736534874447829605319419036341838132784922207764246946275452380088533998219296205679447132793820023993531641262773613590039787695127243730800043254344398809562843109836834986851758301607614571246366129483124052569732121717711458853575016083401054745552202837480723938686171955260220576073931022834790880005592165318371214558322414246591911899790294077202223990618232659396045304463616307811758323166669250362175706888128046630769885958801893794148457602250485634430372640688141111173248506015143168561814363071374259557782660012750946349724891735489945004383774438020926249265074744878747494131587731249548204242513365430051305544723125166682902144089012141536230688380737310196519581257441232019402917038662391587181774838039906489491537655268308159145311691292793135467550282702672731191297244458551055509080660946985175009218178176435192523329690263778682837363096679705129523723681635634046511121011975725894178504459482334455543165097071201677488515137802316399999482249855732301942647985576431072226250925832597718586043990392667158220107512241202063612453022899563651353958619384093253555086093906163340674969887877832215684869375822547514910631789601844251967945031504653474561820519204214792327238984939881780167117703725619266828410385823192683325188756368643590325525664037829235349420209427972744270196208576265388070101730397240339289651037646661023456325912470132013578842316984821880379333852939841549402456397827915955775397761018233610093251519425861955573652714065348449958057392737720255540113684647008679439240144773222784623653529988358653372044742290849768355158112754346646795953270509107138463141086912790273880988040771850893973056316765304758724562649990664103751059237884424263405946819551876187409127021322778543258326836278669286450228409938402288222409973771544510133767536837714834378136884972871213700337416269865289048654089367527865096643382254779721448084038223789867294562352191691193236686088829730306606058374935480964452618228052667111109647071107998672882570611556651735964136080640972516290496187766886524910487898222942870426371713408964148868850754054093505506316391369028401091144586309722404835201793241977288340596704309588051626454406121089407814563802230171953930316715053530516686107674644279465871470302460732372528838894253103954263324505998044117683007735561047252253563786603539601996526059094864861747473197816001800387703634114198938530136387591713135694312111639622069572076270175646520492102978227673209665256772194418361745513130110975508955586591041467333953458195952454128880480689798389660753688414230758018016870988782673784850689147401558023195445454910171571124273635140121223270208166057377491865459943280577152885800720299710909454451683570934494459011338885835261098441472597948221673947954861262102284185446588548746327075661746900663626120941735248282897078469103002789150870092910313639716568444435280607532310517855234770696964344278815842810409130730613117561603323689311714205023743282434703875420411278742079573131808884243962744344848807752009967385327758762526673699762184800238483448950903370340378243133460907966363462995572269484589652680127109614489230180619473780272959675482186638191374065926116891340856249948585365786666185763809439616073625709409699113367209115677656873623091870208825262620473850307841649084526117333609228049797043538723315712986637779362393467015689894050699772882946987919915964628397187673888935997989236800085209766997513382276331463980938550310304916167388015302998254303592656991625620386683860626694766306283745308008777449888860460584692668627522401820972002637517193426494752165607417343910568808560741319124548438034837197244606676701552572139680588270727438652398487260619807162496326038524758496670289344472076910736572286428906274217310373868713065613278076360723836282874373364234504079633359364949890053177858368824246505372037151766264069316971276306473490577245004370736324316168572178121380070465405192411516144257904491657630319890644370896714322280129334628933249334924666372805359089422790514813101511536449758089962072990630982660536223427829886544899588073425275158797188434022432961636174517040951642197428964588085563213043145531039610175372456258585513784885892078528832460857205619737240629774152331262645563096449922085945965089108300714438472496224347131314284423375136343732012640577692494111785682229945320792411873857660232027942355006323854237911929541985144321068025460917539576573603930908834637498618819652558744010167097102991730674681104850674362388903977640182767441365303654790944293566793062827626506869386657386819024233747832676057191383262273718744388565565682787517400942705063292885129971835886973544809762240976090235852630381490965427704676827358311330161880912507426952189281682128614193102958119258625693336498640729561209937551015294375519885030164684135376677697577009826894206202635677300286322088092489085669476388263687617974096177484955844348961967670588530076580741220089461615956580494566435813907038417353670167783094366832355956954782318577350805462182211025264426545730255127236082799912022296719974400370348914174160355220649185644146328758093017817744926699732678005034191765913789697251423877083632893541312183121147322074905667893175349522683356698805053447902982284607754125354487341574744293330239081733976494727726351420072071904102693989152799726572923644601705536719705693313282463994627898389087622088686429497975182997246556717802637546995821058075969708670251949981815013355672540426784172473205542381029120021891167886634067736978199582637758981469714618234502132775837493187324769716444964576774008684668665145056962944704993963172398470773323958328612970699406303368214079856493344490760393735964920747779060562764261078976486521770094493570453110156890605060758074084705933702220287970068013814481321224563072607736114480441757587904265916562549612857291447598988203352186607628008677508479518768788727596295820459762248642591057143972953022346843799836745317014169259913460970975321629578763120833077076913481932793976722078512795091547457305823369765530510615401992955185137782312754207507991612628957039373527427645605434783447309895327756102606649337386615432998261032550681411230881640311086491678072234554797037963473499276692805432805269086421165277023207298263682861829493027773106264904843166049326915919070590457202947929593186915950793981237255298211023264256598625795741031975927752517482340808207174360722489554568504860046273564870152063699929353793685702167932309793857700373914401211242829546827235455531176303375015083287516406538180364106871262511765439346559003642354157580362334457046930779198927312462055157566619446736220476693402392317312258860642013566813506305557917254175992752815928461257202701993439418529414704921705027875863633156345125427608086127343618986401836844894614106490738207028519278168293204173846025052740171157401236351991285394794511233217073383360073601674479674077872171839334164471187603835009878912686096695920766169003586445497331898534493017078360356113489498311259137923520098783674611680612901541144122170683220639076097277453242026115468304996582630937876454711163296611063118691393698379877377133754705787292802926708545822455280880328608198915316851126995551898076010346302438768115860946647472591554966993433235150798173631514771196970897833454574809696289355952485653342375157860921650653966647682288385354343650680742785724107617165662650199279911800764918002444693793597197969308351041979883441364243245921038853138566361518170617577495168871463423952574352867644235825364799936423338425740091206509780211275854839366473573208854197968783426499520132463871582308476702006558423051426957018517486236552085000695983927938961826815358776574873077564265887258511079021284183980711638806370950565869465054072597917216662399530629696159855341721334969259617998969322796716944417302354892375307967098721351878624539220694367509946162395071869060216221182768751171118148920019021469911113006835920663430470118605376541580027720782223459818265248357156352631800701758282679738199169623881375261479884838239935664945666131121375454565608200941697620360029257159594857681269457975561496223765192553831657649019776534748091934687102514432148319925679838620860211722148435574362312784348807308106953389506167278837758067465274219651895785509081739706029371757298894003103973335503552282066339167254514691570917957535285398322890690911241415141892877973461024257960790192810481737245220124610338517914163856362204316213063639141525672604011629030027172986556347288936060055907122030269217205913020183476794880187785064201089093613364977969812250540305382638908108217833049166434820817002729944537042005487574672948236799772825391032251194021495542445429220133555763781972766576604419095600775832609138715884186738135373203962714785778322202934768060096548542018663996837166690946399047477765790388340657622600411285991593625977390880782299394435161893363936984176630319089001998436650797217182032296955041281409729442844255957731001124686871444664752782638901794878576393929367582178211954362775730753822110606825618057261173750802917715487145349761964892409914137251107366849271104315931964431434295348198717456327353607731079348557280224574016823999895193605623900541323530479631230074500519239051471277132744016897390160444669549013360783648194729346877800747332177673833956078824131088898669799334953176518033791917908487393745289195955318272961587294574274389371116524511193666907836275226239435801350859977660769454352749314291014140909927339920583292750227728544340952558828886343416925435008985246324122010784321446920038196124972753803316729008840428642066430000418908111256683561936861004775870991994070294700555611262292187384369228723658882664121038171254698996487344898932718667313534520654653571694363348755024053928838746320547564115620428251749685987444453885609822525927837765265068965015013731284957986995999993451352413884495082833225269572769461780173358160296223555254792742976541311082523881781569388855488242395662872813449471385425884593320500049720832847004670034207257631956818327194138970997599679084211421141592810939220834640923955508793952995421591879157251599519004140696739112341780028060877373100077476097549375904578744468641559529743833957662946153959522467236827000286304822435492840707458619187491571691493471845768903515139210788583821746696594871433996896143027058993675019198525197325097946989737360074566891978936752967784353511662745964139561927803559137288190202127231344345389583649439606132521850765062899079770372696765679122845654124642484808302255797299336973198944112480607341996416947150111721746032927210484246305543445717721267118444015852015044662115282003407128516633085327092320959732507078089594300245745264178670284241265204825171350243324035820497610188220120472833135896092142962814965369946180549001676387456549395775403222703023283738191083325064162951007804942421415061357476451409710662753823822717976471945899226289356287646013652352874721811477016657240698612332652579275190478593350420208676599901434939066430482458401763858662642735431469908410454202939495347951907696328348681525862468011599238900430524614232887488889407644696977764127994939411583506159605196406008317151206534224418986855223357877748576624508941881155579472908223350193740537200729261022433646898620376222086225919088879340391376664598536172091781540988346652084202389569893323293294082423340424652069346280030643290348605867294356594469878568629991975583447689733409839583047975507629498452772344829942122532778121161473831287962352555930236880153639481598508736972224672391225195393332333740385078623699073739187665062074196801188553006882673154946503157689080255597780791062182350422140067497649014072867681239202701105292780951119398760290007165510505009873397809517472788670013240882905412153187017117757871593516941617570490405083473152303296789875327157384261680146044117273599982629909898844727281027243261961579886090246547648463821175870496816857399154676593713926146359611010543179394712799476379837485942704092783443857949762793048123229809721349212881386166274206017315655604476380618940538132133648086217036245206796758531476152389875456283703649558027721159052509889971290061193173579031940488459646425712085463771967115294560246452517362623062085375877840564745183559322238202798943033607600671372946398588877583357835378097608921979172920641512695346853949137800962454517584052144968548781802231262543514814668864742064040714177404276027258857098815318258619609363654615047710455886132052435536072655892077935178646357849789309607102442182362110443834851132112346990309310120406653084814177071157844456806162582616299455251247016213954590825185923489244357980217984131485069042618234484493168055094282022029481143575957507374383420933787127417342836961743103440830142162201761432971656131142574225066241489980550166002051631339001738237902734802209301989488143188844547017552254993815740933036032815866637286641404161003776671128986066333042814740677855392308444662791952132316489131906658408102665505974417883129058654819185915875784141442031066777920747882765273562017438291936690394531203688876053587052474706328323064200132611522578795900637982054055095716557679187791000526571348015297154358455740945440795169913500450292303397026392184054638588943859731826626331279751606210053609194989266798799802035155497229117355468244112805569872787330356597655565905260650201918276707662125883328495819277933246787010612854860455936757043123259741903302824816529527507759035268094908009279198308207481589876025792980627660111805808684201961164224142059098376260391576035063688538455693437889643231298111039403148353155362563161136680826596345746407930661494610236241652174509415445583131330366617549945044022778320613852440100697705558417165922307639377888982417348080701762170863402432817872479659815914525460161798528826690589450827205208198369886985549735077247663877387514328986531274585000486804837293876973507236458025492510988065801864136519726339946785142221503909269747071831011044714228300352855118552334406630762079649724456891195020446041474601120363537262695491251423387064817173514252431902982122603982555687495210556222310118449097282926651583700899765024078659196863404863442670237056960160220442359194077903995492034889358160076941310893499103044898034910205941920671964852967393337296240802266723615801496658007745101803004171767547112338745750979733790932773757790243890865648451776623959854242896550492060596085013639332331602852151322378320750783180988403692976299063436470068334809053184566496399118624045774646622347163961033607044233804727249371324940445997014689127274094638339176868883228049150916984139423848782213675091136998778021387715170150348507770896132516485847158382849710863742693981009827631346363427299636158448003191995104968216048068043749036293073061306004475476518169749643840465814341366630575743266266508339632203738672265340670650387043818885443350138937155157481586391180634058384477152125676948136925920737413462355909496177140949938179216551821552594610340631534417959266395244598709008276978382493585238011948160054891028401929049964133755559232394887058361819239676509867801975685736587851298901382886796775789270761616738165808462264267099685155146353000559600471513495731614783544339317021012937429036698353769412633609513380150299157526879650995678970574953457677688814287846869825584685437218403746828986902213393392402283986944867054548039278067486525168342832079420881929680065270859186138274360720550203975173024287902231975656607562395447416960534625376217835621173260119726650478191801067723246743680658323306959196295981382164011866359480950120824474303219307713766802412721225538150681262143019200450735699224316807735366998742120857094189745317175658205953724086960089234992337380180809537923014244883084828688034809275060567838849133959729787352919151162717784266559928501795966378148216969267260170377985289426932426809567531247190425366479527162616656750060970368637880623327694995633182856488213087825014254168493284496617551511211932906355396391685993771294198425239839912014533436798165409326852652749666666602464374825160105338762842330604922745180779900940143724481089307633455176548114646770263898141715863391792824676844604918677659712900828557612481144298436592375646587824924092381036102920925696172272036936739824105746345635659067824867506773760206919361432285676670988360359582715058975940496310746864032652085862812265481736154571144868065845013390775770056831376633882536274366500041129605577690365191139387036645742733786641114765950942682735954156707361376719753768077918459987624762181086881601254572706867354526476336316084536228932321837017223695086386306594946629974898211391127819968418105664659051128600627140523296631889508129979294383370945617870126325141656426320784764323122385566531937391299665216731581985775523800503819979074186297247949953022145656229749590087935359682378332850264339283173099483800394873865498314687561176768070972578647652474194416096847357078062590766918613415289849160224190408541992119920767664203869313827940209655036861229557123082442924130014126710642045947706185846595751252790097477195204441396974035818418941439360497399900807797401492364529485384212681921756105879970419137298036708811870308721980954986946346222075136405081931515464682128831798731671920038822016262956013780912489077914184549477492342314762758451110707811094138244791876423249472740902133619993636490832899540101234583137552188442681710240104441820479690536088025421212099891270812182442753586894022363020236323678962917500523281350071987980268695483163458611312807833403386714574654129742622953844158867212327968638544703587431981138448180953779354997845741422421202793127464062727108441623655256930310289608240802434821073287197661132046756700006363338016688873659834051459013557679243040389740672609211669355536043077181768923638313598964515150925010698063570395926782423220246559580221414084088361554752582438256408362210905178572556343197493157166894318825560912464481150612244695970482340975736775797009063123404162168390848459404904201264469239855463835871754866083646700814111762372152892602616043799836354919373819191855800608066941025386014663446303190820744122937763451507112586458007848346095150429789435064903012054123773212687574008346290884520620196923073155151176918992163221589077658132457105727459787874981567086095871194767673580631342662872762749497492282248116002437985304336939211489109083515446986885898549121088867492477639839853480335513112082990523901986419603851423580824650365974203343665735379772048325480394118524378706093902246933552732717265522692046151449318468919199890748020433413362120600908500118734473434593514235986078610829903479855371638099842561879652956092537611069195523122312933881982747360147433760082968134739786991358683789825362822351763902552993482919393562388216959603606158697074895582105739921158016411102821398678333751671387764201413753933828933550989503309123147632396657017868468225752750209222173889580047922262713321249017435195728257904604191983344184514451911852040466499332515030209383772942135004710926872444438694958693223689298767850709381309381588330306988631910534195039262236045086401475505472490212910103449130838869039904434732423877440290894001582992720423962893559744029608268303967577148753531597379201908251905525609713279097707732769222510304557207265037656326858183403473164650802890737500936008660918090462676630627402905317288947519756970237974765522042701426731622778889402394270795159374840871655011352264814135827653065986925277698127174203118381798385264211692985861198837453434587233978032795274011384897272095845735564604994758773407005071950809931573123315957601320337415055146647359148680400680031725004444692789418539813653750247219419628297459088053263281078793872405582611786826696624357317813709252122538101019456585102942534564830804525203988827088560399146885310600818759227765350145796990388487469509704352359400362256807225983217308836325414784259337844736897276999688747193218895714112707684567017945869683108688792361391683215910228699763788913252436328301954043653733536195102929684059023589624655439009920078556039897652363837036213212591344081979721520935527816033038409565332675308368825697946319405548357093404812502158699324231630943590064485802524975400351597582815643499543398723075675205883737798559649035028353100764319663624889369028667615005374230106862109731446370391990777612448927763276799739827079832925672658270113496645890888551543483922167929223891837227901654593024638850604545295020262691923268325443723130494953965148216950199319983019137997554459355150556857055478568960312054700793218801781627220244034621813700767803410383539422975885148905716918260629415546505036697477893558809791990891900541864703617113083956746857604389716516458811034577385554751995721063407869324208730485793321601585185974461663330473544968062343144147070332731760920698858740780023327348833087043937244400411485983026040751165574007139020773103468194708069470823199899868198806466380524403587287490966989609281194117109387462564054853529949886962486586728773751745589333061638671694009474649879756120244080683187726590444000622191994520847996676556575982230633969769206271372838991699056986705603300179929077366181872999077644763038030023065406930254651597467957062662158747406289187216901446806956569614999957267431455041237590502836866052564874490247950307155347487231149211002618740996865704724225257603024859250395864482168721243803179086910218917330974199177425724231041161110953633549955093771123104342459807053734459014465834141968458604416877920838674341304374342869093409414794031919494343681790409192142078084296375520514882603440189652639322108209852076401027840710027091378765481528902669025568022635063077362900161867129282732110351015270210438329388672882496584936352992528565755441214740308203824288285044191190627188906197142228046571250375569616181156051675131758215769459740337242937700975774412181899710930286895053754152605670872384038181934289537761306861856985785533428200336983584890118626927035033667831757346640136221702073641881129934159391880713426129884150369158974506613287852303337083292687566990029742450048663433202926340690040566551796313609117228413201159147915450209253332332093922795928766343454082276411092081674061549233416343753549416459444012129749594243335159817938624365500519020521440075462037010757454863597231898146578488083113687527233265169465979397850471000646062652976435723019259738193137839886751087453135477206874686454971667348747367966907413767256627780968080148358373326462368379414881918528157490100570296267806128044749014243601547243859452856383221287212944359821225210804026418804086720308262175562184452607480378570799371241245796304335335396173074469840910327236419981449013098052084411632400100640532183828205176726524387223898465389781402601145467000759768544223331810939905967534095983283110673101034406692234799845912468298053809685663852959037000704122155822840489094555984499745971933619755932168927687548450924760777891875787896228217272906713503440041767922868321617531679786661519898181241149531558332583282484225210967070781897859574730100082968145013961646622714476260716342142065216427843324440963938845968716003911898124642535619524847309123195140900570200560779456921857453116671456503375208344916209397908293051939633567068010606353960190441529086834214285195192306029106317874333257247934805873454905756878525967341687789733501680285675792560498107933625109329566022576540391404225028793767814828420382982742687001332013267219819189698031300789404252358037531348058808383441591415570420573266823137389080102564651856726613575593322953724805632667884566613895510791655075696506287581967384740090876096976693320262441066499885846409038534822520526161139796991042872884077968303776379947960013715946999834381072859089846930385861628351477704247948159371457518437412443078420829046098631735127560371013370573278238259127168897334661876747956748982317275408285548276824630943194098634347010844723484754428364607342932361600603365286315163605347430054323168501718234025952416027166420750551615475229299957586486867748095825774392421958082696304910642183357067208417998345900239008123859164395074591621640229467677356550777184399345236355170787182527418295362382995411630209494071830675463224427695978680221509763547525617126232469029050398381063667327538005412409819723354677999386277267409496814254907784458877767388784182419773166549380549069660826480410881525077065440255956000049425685602122510606651846478416092059866544477761157388584277782316305833109154234459058819258025400511737349499612974301184649213694790287432733190349580664500993274969417879488401250526415707349072265355733470232186793511749375470073301206744367357602444344263268096511945243211911351040086584283845538319374568980422646480899944494777766727192017340424033606002426151431576036578269746299643642175595188592588443094163435170645738958642411004081565831945473564114299697062063662149667195212509164856989452730498211240260873956275998027167758350826812334390913643576948337749207987439620165567356488528597912659900953913725485592673281660844926449574221659562647009629730119836001345024294035640362058652591182929395981176444598903251871263404654441976033755007766463597373707760988994832256465728048048317298099831926400423125432852262489989615519941526605285924127616334186732521542516447194163857383875234778389426388153310885355410466260811890289057988767828105047523639806434647856561811126204208680349979296631225750585550980436628418576811996132622405059943454821137741340424952233415564774687028080428138622554313494848578027969482216704055920692088246470226614534743000173340806690669650460693215536995110363340443387151790609030673224134582880143537509170401178588764883336795727642846857583424538365972767350765176914196901715000008499319505561307570703934784861428470469646207967337329325737536738091517167893241050117542548243745797861405285563127987756478433991643229765653152374395674302931985943831352891291803278920748256269374184610356679987452117827643456314110947115258526715374890881694567765371990334899794073153823531906678799636991973953955812898442144191310153524146360567193928194239322608044453546460255095350136737527611863391623330676026837959470638605109196054562288929167776151295285697292225451886545610650397397718978266478329655171291340367108656924299367090015365813824176034652148031004241637249637009741622539578873823859385532309067630517853382097980226510053429335290940111406810199788206204492328471859486517839256354363937930774119704018788369602074523398025271165937834799876489289245989895990570095320043638183912833698686696078222974177987379903874294905538088326361606145515755823335854339885969336379436434319948097556038193027428962965134673672694797244057860005468717217548003139254783928555252222013899055568914631126233824703376285451978079822786350057238194637795403963894186118707185267840749090951824723272092279159288617185699686575336222495082592192938938502663878691865247055666508987408567687323781541876545548772909835850142246100361567843945309115642542171848581012044968962779067756786676596870936874053537575980453328444728459469428222476128067098803301617439390342049864820784461321267266385901623693419650813025113001718912567855304230073234463716287155035157420818716891952120824741612703180133012361572543419463177973261274744198236430070218460569288641805438425145445514794151668205185553861087597547007385733572950899483901096562585561388619706706736739176460315991582659594773216103518326224311357656150814953873575915492482368304130262937804779247467955009415180225094510477774568283569834769276845189245985504556679884581681766539490470720150265970702571391119274455110915030576487199640496635653876536639323507858249229373375803163607665042893210052055649276270501120319252623479895467525348144542762072213353853422852145789775787191743504557728173075861648622416197361061970998959148915511484748101520443752026289308651638607622045181193772598514721619065317061225252830238011152180070427638294181398002938090316252596988842815476688880269851415002405179826549030205317858413949446214194401494670127063485061832565854721181830461875915055300117827180428652422340117661591257607439731563138702931421912782954339227791831172908035627654948873007832161996707596039530720743979362822873190061037447601568844491845758114718982837705859895975094368294948662702511829421486747238180048555276313082739321102649886447308127411521335687865547965235218821150036070275668162469547658719340693564280035527378497239825249930894912472514814045725549868729760100434471414305722446757396742378785450393839880773926568422445212456639043501596520195256819684559549590374559304607286334995906259933014990276409361604806768125212291808790509502837536715079027762705872930434961212933427527070376441663985804651276985658624833835011533828548808429744626054553830424912819256201228426650754441978795256389396725632907516162059965215972973399653470795620390210693650876500278676982265280026397967530309203247757228710001701301720187834904606176292409090008577084400539246393710497642235220593785843506301137716241234037395281154023779086502231874975974492043511176609605000281570217827612185015926954880507187430735635927862330319330176073324802896229119753703786472194170690748012931765991472546315648766630082214014102960320364710151351844197079983069678514339653635674167931397150225545956882862330425507010182954464471257995128138898893468082527064355755825684306442654714100478775506080399818403735741686157094393114257356173359758560692489187765714048759913691572312693096988337413244446357853302551382414302114828584917248821405981576394596122723607211953236185348249063710091855010228749289716275003815822964598784990691971381684666884873045474573352986931503904556069236254716234579026024302243716836429783686137986705787320734790981288514094453173653410717879033746869992236978508521332123886891642374414834274356426226653024573591983785565416223451066703672869203693737786063637780132937695223611638591272380764775728099977529301765363880988905576389184061135849583188758808900244628162068363346087093080220757778360935313313967476275371886943749541192847267892175311412245899471669454038405204973411948480188756161278132440009830116100450216651043833354394860840405058385623071770812891704470414252227999379886648392218650118012128788965385933196062664761930906765303811073023819967524901357532858397177035189401625080650005343458846952636100018261055042711990955541094462156822730336339981530865517140425570896757224684195683142417106759775355566236823839380750185501443198749344324927834411534030704474776682303386784826401472362663928510873885167131022247611483790885583832719459747309149983908197960165835631528240133654955240592526007101443845521177212752685274892229834791888717889680471989299708258382108952635926720839147432328221049634339626938557161090268209825531503501354935540791553426446359185572681262081944285929390013578811124075356549366722598070443450057574943567099510152049494996210073083577874878989500361690630763701132918841100457539362630005946801750368848899593903444011362053080437458043944671536299728669273139066750787082003388781767395907379367300474423520250576027539941549329145276041389586048700586546045807252697615012699559895999089817706205573605114182259691777225499751105591143788938000943851681933847953078662002618733604963562407114249247443437962002990867977496316017703484431853652120288885704246527799429142269169153957769070456594470807976609625968782375535201427499683045726573477458252152852061242590560933895185642784977745894144033838585241598078006566510958742651923831898463237512241547857307858256938411975696801988721620037727414932346360791490404573566376582242944550268502706041745385905618316998841678665600961856270697713349257712663266483105096421874512093553119680285766080994666453057408895263111332676604723703975900065585007212552402859361668352228720454796868677750061658620372848722189840580499560020159114121199713846349297683094178735223819594795245648175108099138913105558149706670877458325229417014207298238260495107699457969417209936206939201903632052815670387551307179132012270145076920124968251463793821837343062888859814940502843593392776487050233101851203117270690937484358098594955513155384463972090618239292724998830279715913823784044482011773755801832315793045154961684327012878988810641903643284650757885485696292287701925363788655765494147484711971532626880205912520440471982567727115097841897769177442143728980505362992831736886225598685243691887772157766734226772513734615980134690725609773534570012650515512897488092326436899591062956617025304740787806408864658738078869668328923440358917382265636113249981026317472980427645746358343703442325928522659243580856996536247362580975665080108535475102036711607853462512507026211325092894858461195999595696049830915195771388425666547561915556692363791915793254037161679982268812152576434635753999774873952320591754019224256246900768661451708042158529826278665026651966186193788369868292489015995013816570514001063357101769462313680224443748879395733009508728582627488223262378896908562589583690982038979467211151871868298386381011450236101996820339844246862396076800963772806301348919869544529541819703224465420602086531585538171288432337060178634070763271517966754467297358925826026299622781080779398131445573896748121444341905859229061647495974168467860220130913982574835082069302527614452566031893292357949919804451716984411748976974529305435464096576225870242558403077992846568480055829452397634475775057188786339255468277285630851291136412893185060355615765830581363237626016550322201530995357864354743471962967225560999240435656586764735071948792581762846043799934263024545133410454501183673564772442756770169831406752131277593691816075994532264688087397574048928677532716297777722826554783579837072656001954818005816296678191445600127241383455806744914278818215387429523701206952087138756933496221639144460112120010453201524635809759969232270428544636335151787813044735064801727777081254215608447643934694087011176089551147918140229311146314992730597581683247685931305171733866246053942388658919405174913309085026498867900352523800701323031420599544557899575231945597904302085084594382441543964705513658048715339014862004930720148967978698694226363238230923519810532385897771687326867013094428938849652017205081176924196955177400548686906508183753559829540930303279755365905063199437348402321117662626395689009090992729851890091058345198582790572410877578222489067977879549220118814669909114621198940001900142624284037424770934320069185869733990356583831212252863354222312887200306124269803593659854186463622048108169062149262917756834057851751783579396423096571760488013036946096866861434129160734270137424001481920488141329188672081905784466634907012832312071502244375030758314142749803752808771863221278292607089643653045556376965572304311830889435294768667516978010203710069387234135960845168795032755847540378073435779005540971326172814397688261386265372921426558400718010099314871335050300876458057051051538832479270518349301304136942917733666994423714885244658662841345486247665228786579934367471438327255965313277160005376198748195446756531569155175472183478780819897518156613259886681666768374506168385731337538087068717962294870483447636624943479489386610995435377720816917891391270354853187112722953584337015226730986931315135402604494626372799370317712255749080655805011752658464501025377419468352318460026639957900317161237897974529532928514343566985482456724247009322924154249147188468747248402121501424999508117342357150334917375867553591738171733613198239354667627264824680344426541570335427787793757495800716146243800819796937991088053993238724012339853882434850596482739290273566704218185294196843970068153483712491987074705434866866314662566663549394266344124588636877067798799016411022217946829552374093483716850372870168701538065515692014730357113385199568280243287102641710899087538474719239186996225983776153951751968611248423603226922642192863390709937787206806734075582127486560120389291158900066016019376272803587472226729781161432007392247305747095486761425840805292809662254718517020465614926976126289567545487588684890839191099930701064578747127466420850094711385068780434795743861615103599990455089966331392757083369924627730643107817617631080895464704510624087005215537847857452415061012845188269160062034715692605027266675928309727921366632690465655427033209154977514394245779266366367587502010104104515223140430495272381245740747875999842197800379767159291238892123085477611472874069811466921750410821213333500107741670141251935597688196923432366865927934316892778626979843320816322610411394633629792872324255090370517796679333492163857271567322807248294785154597088878214442027164992831663802099357189745785773198663971822238276179650748631692150083380107843097667270532142005261898173372314707003233659533231457056802410323386534241722186456397919704316311452625769076715588359233120258310771220634648358605442999925621513264577390905320288550073141357416731497565734321781240003184460322557111221745880159486529420010151353807556471774857201175329322574763479959937589028197522811111911847240719026349918849798781396787982860093316297869992873619783549124929450414493742245728665222498636889088710684386696353926906901917871144802573339511527980731879179977611409298374237189227208796416020000234068192714441457375802081112882872563432963691071975556134895462947546571471343415206714463660781988756185709449231766032784605751842012892508066065137112786946152847120078284345474485964674408521579910511283950193501542957197525181243141298682384573099333674966862413406915180119943544336012094611103814596509157364151950722443092967961204780990866161854269190618761822511151537953908885217111759018941747994443587735699592716510196126491091179517004979298982631408123346355238938428401923516991444062808557746278134785314808995747309513780528359441980714208146523079522137077510760963405048296597827660715121641781827463894504714272182397014323020238191768661325804853145815582243142612800111382863817939457231276822985780399167469250979328675023380034299591934460306590796741550703265757194583557256832878042709011495687108020105423641156099490826609880281887239057629883486536546967751608256842697982360214087186159475434799550033131522766192853054959220182339459123172057030781219244808626519658870205317927392620996869659862320623086672757557540015007123300720422918917485155836923472862858358247635046505086721383649197014837129850768830875693330341582613389221651053121504436334454297109622006681882856179139027214455971868426333280446427655965329052337632772320627080378570593435506533331565945409040924123322575416689070208616712315127118691513303746313743409699615920771723636204904811193979966754245679289021985426462243061376410549445721979016425680909246564077245744100644021582207822659464731100453523588393306750170712762430654187142884286537821813853257988654005903501318653266338640120847101974466407029537061650083908379326111000178035738398673990507547583061919809093715852580183775347730537366666843113994623411210539416153235341307423688272208363724100274980580521849530502825578845021980546222676687580083983671751629707673648802280422064698185051557876175704209871754596593738071630909408101307847356455935177668416884641147885970190681584592720068271458587901869406104138677181830229531400971556332911000353999366688512105184362581795373893116876013271145671001590574199690058368509491912031750783131588531249650746026727482921280965516105775435289944442302410668398803656973930733868460034201508016631064427975126835678579155208530600901533537341286599130366002103032764093636163108307630686736064327382827456039587258874830903614788996064605901126028713268312453828985434185400029927174188806850086229605752798424383338607142584506897809109878313897478987845222197356855969150741373391378089566647237891368182508636412759253592893432746874574085637335254873325609518119018542026278934534008790890186987257689987428748259886133688892521102266055401447417446740692768991570858759025902786023039893565754092667014834211845882072203950638475020318626636256337561086431854610717576701022645058239841450336410846563069392472943788937200400259007555569350458388144538193567116755141271349643974252888959213299285401078867775441624302302910161405746734993453001123937514293203626042480627108023151439306796002363549965344811763932693009332704587866631139723110492960266387363215354323908575614521491555717134670718312178340504245496710683676557840701296328711980570613476871061150927135426128323549595715475383383699671322817348934433228561405577905668297765098618809079385865978953691216179770143093912786830822712822197235374661424893802463159635018359506628862967768883667551508439843439974053646143272257994409033316804802622925748300908993874250496979809475231640254506096389553711592492619661423213334543910798244715484795427710706316101539072040753144728400298378985076665276746125168990170058815074703887974112272276051968555184728996206777474341428615886851554537522909198961852380241780317963316359446470870370925362138269204589935471439886151597851980064816156486508310690389753451715486872474575789848831274415066013381631839514568423865354767093079874099924468898374411534950258956225274681891201880087993441755093874766232385849045706898351981306599109796607669723819998330289619483694367123482718418223552599245846313978570108588359737459238232922848314983149292040008799962460440932307542851689932300355435685343537337448081925501461872145778898903856044051334658109397543423341289366758038141546589486160132028601659981290133676245162419039713366936066342133929518695965198895198587685805654271433773722640873539055646877074566025728799157937074845738853477439793016162378457880244850511257191472655712102925655650726618652985232064926398893150044976376436668547400681683048342630277943513819515194465955986760905380305926454049457920978794084984739145851483658912822997142073809784990474029637164568243165881878344492372895828909499156942054718103705193924869954577225337410617228438451710337887561500653452248327329025333549591667799530710354364849145788854871973948672963567716105578742520613854549888265410111800726740533160451548402734715695343367163657634433465299809743236937904916117608305558692820674182308916267053683406030549911512599776519987275236859462113115714660359173545034714928128158688985731140137646089565508413839263319415214944033893173458664327299523952443370696373584525872731263051282647281810993738304050058708623271113485338114728062063542390165880555140962029455748935757176252592782938492167874798986994359103922484804101736030911309106121345916115863349463218179052413799610718590924330673495714581726192582548794781349604726670708811658669248262934741719846247399600955235060321473331618250335898380965605709558210402399636956699206480065653441023468922984055566379948298743544381398597822533842663322024163933194546456663270138638645792582398696459177788032678615094127451501589847608314770173812184309121222324240590616129850317937447754332419235905591207641922198471739559815139175161107352345571138441786109275135817295827630086437550285514909832148350424521177032022867342153324658521306363249521923274867960078109301398732316867722749834415285835006359038261750285536180450063811443279119562814736627422077011107473767925167031931113304017987192508156559260893540874755572591361997096369900552319995081478143373316994079630474973283229491165177109914475696090314040616715380356075087723776034146155082748525657760290162911483199756634589348039955433133288992333335892444459514775126339156191456459370375380432681083125429898691460986404518936543366524427000695953985509762132487165119614869426532715387210424440334059809251897004038540108823903014404019080473817862422619857895427420410667681418191636092849149688760479909373046675380448763098288245127346085908245262515982102072143352085066153794163693940102174562148825176297820117557680050395655563441145551869008939604512145384714961143851380073684204863899077809478519342137394434774423619207210853670112686470397957435086039263869348462769784181871283350495728493751480198429906656794563274373262042929357324352530130139845696517631701129680680619925020732946414872175856091404646085693771306934814295795899778910304993725854836992557179632149773585872316374793207872616144794935577447771305594598322577019033892318795041821160798243143726556300282100854305339137863615741336862477964735110778977454139872661873926112492285272513795711854469365079293689914135359378515549673116915733784640744079015275620438310653774137204199657653391881365373394718543642328199915688942535822631922635754425265608414951475159050184856359794984250748564875261161813593915865919801803744098180702204894963406558938010803762775924909360549600499188124979586780340791792199904005223577190083548848477743033658326849705570821758430769904552626697831495152545692956571778349022111563766740158740155860960776280971579592848234069129402057694535570993594593383040518459613339486054670126140895196135577836843001861879819687096868435931676970378468572869047296531977462377415694434210920468015522333004992837246015406399588501080729313083743394308639943634910133096243342843957671067068953408771803555013761828584624015365051131905341932406008395378615518879756640008207061178052508077529250849079893446780511743984765029786650237544357148734347801732438338373027569656841773829587767635139902287058569022206601696250539576879004409903790288835281308202232095451439465336677266735096671162849011639299272998402526393880263437368370373282812952268393784622332997666060657622042236258398984867165860841648108969742949070801342210113041755253506111262420830838833886172807516408078223085001321733558342293905650321993851531229491435402282107189717359119925479432790316277394357877665127629321069281712379238349477417285998729825672966526919588510103343676229549721630961839634960616377272167729598793685604204790174990788094201663636160283726663607189707537869571677833694872455559581829921252009670288050521697449676476395192041616827001353170497803532748844847417842706576336015848617511481518402749806713196721500320129135536186426483007135234813532776662862776200454372437424823132063804042432836131466288177291917516990703811641349604435099274265042417623309023145975812535588922080199428469734667180953443258227029055907102359546768855274443296603934817002343946923410546162100414754558507119812876400426977095851306451736375127030342123969368008388699952793164523998869135400828818480220705030549839738401005865249766217782572229093911288505033281227399981134588781678177334652304933510469136895277891961693325854109016581016833007775700183210790843840386435672638626960437931107277535452956510140705339445108485357194971288328756955190443549395362080736558593372157881242827561555326774337042046492746199890952721893303891092031109719608071697180474741269323640170693466827498727229012905274429291754010997736073376791778519888105941577629278935112153854380961782238442783801466659055238168465427101197448317180881876485214142760865584660431349221466353792369044656230700979486821748123542313748392778293500408539359870094389439859456491873085800192598870736952752393648365833416938957292551880026744323295391430319427513085367755895259099004572612860686724801540239997626296542756750526272030173738966019110177543138596493352020342039450368195957459725786927584421212333970614314717854169737305141014456963819398818759427677213908006880073750838433339392115640980553821208287089530417504258044143526001373017818800957151675824807472277195032426967918065770429842413221831711477304276809648532783168927760732652010221670788292475841228666369177422188247573702146212293892490278256419155744849939666495816662204462577999830174355089670314380207693184245162117411828062511274315995309397054247586149698975504857906820747489281047176433835472649204799591288395796971595930604043893841920011348152679407353260448940387187202527259096836448814435819271847709197776527988019180857011964589392394065315276157160203986917786486159654353812319550481756731548655607035418094913809948941521974671892319202197398350587070359100471870833473338086223265513432098239466517195508572922166975952040978077405078156995607505586128324772809468102730111003568148006014267564799507951209669452700436127948641281132056835424488447117304875748532840821614494013415221181201817863457274235264534038127236872628453300007458116815452125428831872481131966402036964725215684756272885648992250689337477541668122984675358857057549325386399211679742546303272578765308619390169864624650544253260656327412079489431477391300914516785205070894798513977595020535309053214992080794506491716004577387669668547046622206520791036936528647879112109310265121471029447413337831297227260166249480780408503991759883754941199640584863154776996665341670291465511388182711598598334503450784200751297684833837390233907768743345033859334186958640118325671609656650469230597077214658924151189061653326155313948275698180309343352644530761163968701909941466318122293268788094175043405099598716986242867421797930647239785351261762548378461827543617628423381698911592046884724302690014567393779939048666071265455959802276696337720581485675225108881212184328184648055479249526809574765257297554318648951455918994614901178716352404267103895261483442943990665158514422281549743563997357719747773438055552799815801356951996776375330694622788803309618885925629362602374549165298042308623638080486444459693887078428782725619175514415173048447475814458982311822070579336246158611142994607112047244674981676506122811885941245211289004129513976162659259315881245091159368652273433671794341776983458717061410241753004520633496745582848279747909431799867621923112186487347516854503489237984032515617289442840162639130105825469173214196756478991669768059400711442911095107804828017401543779171048657110093063486085652424461674906825173495633695255395469518772230972182224052522768215424822569352162361908454848390386064093087685960532070965140514489124138960111210711191040812130556627258304413220608741993119647739735879944484534639009226664475711074196702363795682437357713326102443991439923779160277612321760660558881370615280519854687193989448391179668336277153401718648003174607803883590189965679031352555889050750364191023783379799986400713459636546693886609209217338458201541256110184919955082761004375760556651373237631240710018575933639220941619233467469718996950528535071838597252921844539764949260831781607258378810926488458910192661297089015834942673662739945482627990909542527448845152437366980724923139460661533346298705302805183242914333302304370523960891451082994689931872501816545436445244098014868491284287410435789994621416597393252645556271588216759488280437972064888083868053403740090553037405976690074395585324217990108798693269491549466551143977879409628213837903954686623618507251246613639383041951387120693798158336130760448599391458037002595084232714645748304504961437184660003077850415151314599337322870645558883609241184045112853507173915920427109337419369456565903370133291622325952640660196432582950149197464025667110318641460773909293512122633199058373839656096771896624362815430878097137723908116889852046626760042045558824249133387210154694151203578261050399462934595867730784288345174295029910648622624992070998604596406327108330072845518378392965836136329348976864118255912165887661330153435792360003914391686924103553706095257041557243612427082108739866555585043684112713975096708291417853666188364866206402264418332517702182099266826189271678609371979021274873356746570904442228676109502900557791674947815154261392668881455413707634734696376232492055708271695756845316492860514212581563281433926998731993339493324476873041050831877331476793131786288598927584422323356544936049771689418501210967033794141833840767265412977313570701236661428413812365661960501420978071309628076630116397419641766891237527954003798929546275716211344319195374865997161968110980981702158116775533967041736787042354735427730790910091520340349600329244909975115633384176225539206076117382033747718269169800498484671587587094053941163408811394643952046715924172311151590071609167763462392651027399908943978759984530844291484410592556984814916213042987839118910416537674565804471025378520076930530803582226563190350318412176071178136358298778240062377677316289602365586723763885403215868586061663249650322872393298104659916205073635483863206930654150121037412534296791143618022939328435067190654263830590316879493180601723059786262558092578786219150554733912590276479165116382285087915314648244057398435396354182380749784867027566606969966991631982612181961943376038624748222794781844019140748720251061895323523027453546676763207407458139176345481091102418851938065717785634191972290283233729287732679562294186508706390434060858886568284084943759224815659301404812071963297539865556571598188397225774213191437568990003714494502360202438655106666253194101456078262756435254361682410087690314262630098121006350533827774870424486728312518339415589278555907414861928238838295946162268075242650621565346147718226895433472192965742205446755113764491595253454647134551923822280471104613433212996882200710461923121542389101682796528335546858588107539474154289876312032903996286240862185402821026142278235200433931760653017182908582165095250615897844414399609654173250165798720293922870851751375554240125762897306805628288650683326987626618568363569571575631856407734625332942113526199012773846931679389588341912120171927785369603822789538424693372246213729218095031120293206974670068105105515797813824443246449131107648850992046020024779733586470033320670474449917015297089584452414393682567560902954410618025591550754092064518772871438612661289363413618086563629967477757062642563695531892047611590575782412984186529456582562385191234792810339163542559279505416504183575432482024325569390620401209079576619379007486484591135515541798890438642180204335045468220584418882222934428032857123512963075580886288650632740896124843978808780422383981980944580740689755465840863881287986241816940712724743969008306691977142019944146722005150045321234519320914069630275230280892329271986458296429323847866457380627548716561333516543058818547848878046943657083423096260889989622899670447333532737686518678796312488805791294903322369908836673068857257413541909195028829094317582660770815986607938566714073067996619188477056461489332065721508574167409115602979833832393842683401808463439080690661271347122674070155648605172053344711279535560387161671838805980760328649187146054369225912110378435482393559589184764014825475660855783620220194302486207426702322269124667369844437203716672401258483836411432484464937474973176913153039131623508920160630444137712143810168159429906463377792415064744105185130463468783162736920765861115816249848296061868304927507236545606875378634854391961880360311275238496598425145274390550614383025186395427478050241966043114917239490131240034802090098751275179193002881464385886468115925888271059610904980645151293877922643135658642472204518608146024191229951977057084221695849297545431162620412260910079235187170649145189641048741381002034482819406661896158246329963597141234249312687797567582339966912749888791647472344932180690882208401369337849608970534756064643973406447407030204209438847582138259833503563407353303683396079772274568474091206424000375332190578280186028438725965074950937157626204022562037009080568770593014237663955148491738158520158242266030874308332821047489832105789007289352377111473306558990029663219556277314456076484740545634592379811296881932339605363333556914919192551327577369084058937976267822469289255695617259382134580880708304452145103919672821472057240471192702914353136141208357420128245775636313405195069963103003830552755247878614402429421867789116458660849767991799789531655526332830400980425579020732442134278612906955845917324856723820464572853032192476246123939927689439360070301335679946812402780585429566608957797027145101188789616245986469270553897157484166671220103040630096146191244878413691269902693317433621560957269730567589670816847629444257522962601936005790670457421171817251763109663067792643892679461190169826123641928240717065246794164645113091474112196500503258667676522432644651366186798945550263573462817473472098720523984747328313355731999457932143010320551515466761515778009837714372781606588993245284309798040066965588736824022333016473379395612409630348370529826569671690085508791040780911410305975712692565723686689512989013359003119028995587767076220182833677957433717601947513228810803642989324819566385683500707817166748199006886948511975238032713503977477853712818300459652871016143912417169308059840124437825034490177047361783114173408651659781764125350208707726736009883497345718084927884968150647934100535327316441888593316795650428430231189510186595003467937182134066259032159151608056238520685727541024357948863721968444909991654536751895425641913373501223212105222560276018213297406317192334250936975343821470136738946245702177309212210658347959823555649335442885143856651303914280486005168905534428873465834740508426620746792050430473365667366751412495092393420291022044035588020724457234563948540032440526873425008985049828679791825998804152538560713846906730967625692223397320741675521493178198793508330785867286354437900622527747444118181192712153779941210476576076603345469164565853494156410340679037153138725377216525324061812328686343525836009327502952869478950260290536710113867859962735204701746495494799620402225310987646958054019170953526823356101061323202849609202205221379782881288810352677440984857733584234332764170610769463422952272477885369340691736927195149861328887097139272528478835291962236736862310288041690419435941404781965939986747178364159652447369687915042957263885668076779892934347144877530019261978561891984813051969007637266472291459076821701658609209543341035136559249105565067539039937693957390250879507472042108397237113331094523856627088279907280780037693685850513377273163915352179309677776438144749279715701478473912865695084967490395213547948342896927030039327418526711122733692987168256679947226057304794098511225088700539210171894177756243706905224550013238973346241077808538370133309421705427996450813709751972000921082009390998812307889008567811166718694381921864198929610858325154223202052474353341988426819432383259634158277461041150426967178825010081029882516332778341036762937933198424175536176996106268890947370471935600942827219432166091914908496400954640073833980054421973690665074553283123615336637527661788450816916653236094865972865429757871891793726913032842233082845086918658858513433707586666737124199580004197413675108292092053087613998871789228933227319295683203997974063664276013256401889383428237256101550608021237478210693141945485553003502605705184809841696891640006941797442008803448604288993884774942998227194993120727141436485479019547713872305213827036151016012840290954215982829937333604571031367751214372389900164326165726268386785189411044181862118680299662386973115185579213882619577246037023994581451121158768394272865727715115300213243095997090806641053672954314688326217275420768415661295096089007256725361002261453317864988899932920512595777712787255378131638178766084584935013228066285590074890584965979221159191839099286542486814925675690837380287797828132233363795825683247953007892295653124172096928639558832253099946984435015031648786461366411440399679702198636450030411705087575130230830839620035446102329364542052687592401897011960783952487854440378594299321693437983621226923635012313883243559760517972465637104243234136381783065221631556717264353221639993629957610205768571721050966997488767878109242526235968498732689935873827673945037047133028315858202887164417175828057382827010929713022296460949933460644277742240341575581765954032356322506807759232108322842506187337135088251973635989264713407732217623842274704289285760178052663776872800582218855281245293766181553114578397928304253974435726352414068954671987725286906852896924208581309272924499990464879062066015363021941233641322408836156492274981146929514225691449307722843428823299089245948763097674842527383275402636443491140383658578824647438899531693919891153690606799560698665388738691074364595380640700734918377316462365942373331899057957226471727558139187320456498583278776775554854414364325871492557477754320327672678845730686218269122688821234761003616670367751406329033306965468451803007897132852602475745660042535209855184744691545431860661069659840583413046663879483733959829703004228747566280309632518697162455204942094610101152382054748419813473631530919565954348349609227227732617504940976373799610274661688723961119921495012262195046243856539268942908249151720682961409703905651410852821491975695599670637374339603943678711888881466402864284794508415997027826404231352393487174415609283358373414290081560806718821050002205834800037382473504058061373719424188235287154042035666136076678969499598336282676125827980051048554309431865247739575395039197359225690499203329173122859786585314142628812376583931722913445864727167282918305106767350373622903273300841261018912379426239903375796353326189338077277359394174870849962809326348740098042330532497593356999049094547633199244926128746028194720585532581261565522080060382972919769647042182141845949787603422675695854440955175161551157744943437438073882061673243459325977855417297440161413347389187898866606671553364544752739758398823217682665679394909873704512557524050731463512426941559465771901068337832082710593285003825717480297745737519004761594989813813114585727299500151236626816006540408329743818618115640378309554673181918361259874011920931433512611739573902000295012264664579530159704285983684163517959955234455062946917293012110725925077642569807771446661974978994339746390255424958208191119438065901602894027242425580696620050319546082427868396937479819019814764147117121076978783994090058287618669659815297781410042311316761551882779336236338655400867556890816650777252226178794004522385960668121366099629571397950599360932428308479565860398090059610147667694946024151404825489446221584066094395860063443750078690941452948742135895263258285587047690128489038934613779042686401644115948001559791480634461545974510363502023511716121801203792882085835153102591659728669725325612093570346754745721279363651740906462079220809413136979056384558642026894567907208136760218713523730499506532652881127611926996755446134689831911670591116809142806312638393417124747270465108168735052366772946045530300361054276745419464907241709973297147827368001455037649897429451641150228738696659315906109562571277767761107265762843223335737084124786192729161743535140909644068864933183638455682888993814260714399583109867326278854803118638672341431107385157397003812909054997296948673473309181557046149122942202154806862877992714100039046818001700873099710776114925566169383200962659187794734164625354107546561994382144202566649429867768675884513555791110781063321017414602679012768142208732486437071145380178987976497092295792546267992528526223640039338707862404677874318397744650250099853048921080740217164404416796003456057179723186336070299084898377728976749741143507896907876856171304574870398715310915122309299842464446358061521239773489111136158893863299394576154712592720763530900471276383600792563319084379190137254819030788467336189936809681729260644827049313433853374772680762796902669021448745929828308059018710061262271324492720984064345530376918886317807766918936814084689766487246393694764969240242773521574665723619276669511430436581018284732992849041014388885344215132162453303112115617000656624710311509832646183561851348208439528510971943583476642448590905401373807302661390109737751794158361857236365083363516099477787722081667185285403790266026284598988032429889962085767279494142978000446831471447054361676654634343050153178296624064238738562948270979488700514133936570742410262865158840502064863455918069425439377775482140328576293451438085488467371498694985774375092910335994506456434852097265607610537272709653556497653804486914584869311191763122724257852851575431063215417049062165355953410354786493448944198953540886238118600703094304509176767223708478109608927426474996544584003804731578519957677564743497485718237012367246371998939746514230629959594540852602611272982189429057925049575434550640199892532439263737031881182486759988072329531728416429702373155396165377271019322925778519476850979247849034292128076284864998895060839329606402947874973180994082885317333133610818863375698071768529143280429212728682270528134507488995284125724531267899886493494828145281061370466290272547568045419530268077149940179976236092925502221323490687580723384679050282623156674675427749134096275776691499706606694791734616198874965366095400390524727223712103500942397006525262031728431975987081224049301374959396151622685661177927090683977600301095778366251757916415391340181745137979221891013704242480873837533002640682777536639385004257536366153052619773330485384454596376392027686465448836073795462302064784373883851321627445399284371811781565134582426832268566599150032366138748155365128394726418984266905958777929366370838801714711986802618947893103153714766163776774177223212286727834990821002565149591219371170198515733567787230171969600185474828075386750985354138968102600593166795211440062379536443687698847664324451340396313012003270932039332527523461606294183895016721984260111927972413650648311363433360487253816204186079687339076108424334477784302325145648890377610611222949576963745468822742248471399652198287486596081965752769701973550714856930229939579648928409166241074226483279126365336217411767205167060150310288374549164292434621112792787150658844008616768787555117816896052439380277567595986878346384644749202559940644722967096607240750573687441952123507186305307936235223763040800584818782142397414838448928026001533579045691745265974780928180721553204008255144510052646171775624405165941027431005869803408610678909627009637027840391677221438703304120574425619962649006645649533712214724836215801590636273096217288301312215625812636478335490545195988171989072377250054125009846208925447360134424641275436988186468183979611388092889877333859771123011876844026015359420051443875194613498806156774462849689171071588133892572838137788816386023104510790288563815933800317126223979826703184446178034736079006815953267480536458090059872342976112188784022439009238932796676440279364270647002254300637905114923194912448081535605079520694910954542156427610678152351424195690144347848141103763885033907579341068001315472314466007182867356567390300642921753601474297703639721122428925478134460679465508382219524429666021396474471351721428524431342249861514317301756894968392008370859910609521650222515114613738443463968538024081773262016167817778186506788381432915826841163622022926567409180715966186333601475745107282904080376949295563713346987929780316724153402655214794371673431567176586111033873237750962420963457869934381922056154148153118753394372735369028970975287702499913548249625629309599539828649371003088681050406345084123777601646028728504902126577549071566828060528176027830255794054353403077642035319032826690451504934150953909733604526436922395392519978039741841953009882585199904729157845625084662067733135544910254851804763875365448147590216913959456622174883194850813533892662467327273224879795582352962984877214963790642426303234616449763654337286034607543477544909238939899447453285768544866444887989597657458701966015747983555600684420593134791771785275809185099602684149587228370596803540538303946876160985984059663582458282329164910991028496137205508922243534542682746029456170759589774621936177156683854298996209183723119869931805100624536718587103621145034376405453506800036535262949184490796623287840192219068757576822224033868654264646757456052094104542031257923248274772071451211284711648523984979662171602259634331255034791824558628515775434079996999557435566800595749818274158803013952828547231672804916630908917500680894922128060723386308940812796275208942688060886010999428320026131471929221602275710457424332797767237838826523418042429548573322532009056860015677189144075477033288972853570031874479393021972387193064389942700024345992134751656667443296571990979272283055216642247513508212091629933465027638495430937283475490377494210329379828123867851120169651802521201890461705859749763592996356086328758324167651921324060930757616351716842892411079869424127406327861301387717747991652292703531958882634333212632075057630670664897487730622530227463661886309007996548923919599591190842175803378851882015090503058696864355841335172914959774743801646300751997988927356830851941529353819800973433769391924452557638846037261438594803490329637388507858383425737137150339205888962961177822953054746075269617079820021311384228176355493364793983179429923124707056474292714943418025328397671781826814439516906231686593463332244108094775402601128816555232076840670057257868045660011712380994165350964571524386518065121531117267497965564248261379364070893786208611647872839851564768953370464289267204903496847887240220447543792042585700495612011272753060970279033793988807902462463706763521077746321701975797636032985032258277039273997447150314971958291100477029189019073093585909048906980713050200553028494361874713262448966058690408032460402980461822167167498255072419902715492220407223995098140952734492628554242920090681922377048733775952586080002861415738487380502156077532833542450162542241078280029882137169732149863132642488349317053836853796777117118133542781370160603060330371181078970686443850657363802042057684112626845493835639786684221696923593049439002359599460876294699721066321646306983221146668419223253909289451451367817441103627686507643829343117099929921759275706311613115438871056516599759563958108009217763802122690944449654910328774554115190623069343661972928361176471416475545099067716714452966953584230662142146282896742283093088767393815019281270511136416055491468478082434101877873067020933166725301171372499038202541855652610538674648339515289697793569169172465041508716077534694767250450306963251907296194524184116965096978944480378828701663583969576196291461541649333226068759985343543832542974569433763778246492134582678793502159659889706684423069045201673668233492915385010776637190341123028896465059018429790594760087688434373854509937141099169126982072831980065762853333796529661663843257570429818609830445287086726385861413472266737714330065692826310818068902019262145570194984672658154011367107160437748954738450951740283497814159662461584691007655972755403748792627103780380976254821250683100486302947093307443177535733973658290340887627550120068532916353802159169677682188607234213361862616739105565353271001694090421759307193989125550759690556035349002346089411288326523705606776166996931827478180855960764152764462560098288387626880039037707381108804011063095375148604327424726115647985447407482470397235572387007370469438495497782077015483276530820397440028033210599565124640436722110489229271422055325290225706097373535840388824575005463395038682443902793218028437909353096847286204118548073508988244593241908289655537109465712572562883811425211294831217369312558961867195085393342800735384716869405083711961184806265553193182684788927929318911094975002531602942513218315847150707963739436188239442633738813109159565180162897447388256646008439910596836452206488526323598234627961052469635161371288888775297868364100838361865448980855501317121977510487033096600012484234321856663011519842627167278652562911516708447995809941609621081369329002425375917227678567550894046516313378920274928072463732953750808935223071757708792759890569855279120424046469491910321308122625006172697057882108369396395506614940361335532011941822858628451680834916554349252815633878979738845153197859418582517385635042748676694187817125401674257874204081027455738987144995655281050902893803756980901060601891047973106125279768595166701675467268734226270183355897525632907277094719028500547218773962767105597364830402476543401909440349132843503911518006234513407438632206936024163114882945693289689151664877923634058835613011125604539555436702737269774332236712218564089182692068480530375782841714820018052361671159823202513777329722068625989382441625213143648762935241740179568517381684915492084662537365786607903870050303647207755641147286629766578638691729220436775272829824220275226009159766115024118554975102444286075389970599952300099077531379099548832064830173040998542886792310262590537098635154014957857037350669959524831161226345674537041864191217546932693684456036090036791543607850771920361167121056941321443243592263901333778643278876120599772509355161109473047556747768426563802504481061113044675543152179075795689105690798838390023323424177336678511591862185073539134779955875254013591991708847146265729676832866004347256609319440741503662214001871493173903764456958586540368315177867931228773220969988293401290715111581810355979431012506345600907205144534525961353165998493484006815729433010936795275610391023468316374409172109995381488069320911056443097341733007396117818878214887158616793354523935003793632964267338219479872467564290717178888586547683785584563920877807964654348517569920653671382166015034984075831397629225065290530395437233843962940292703521298660452268438064921998023650006259606095907064464804251971232591410082204523580121269088803293362682247020616426262992334460977049466722859518307943241225588032198355902545854305607265916081588512100645564353814983094609493511408285730639055106315408022766044159599712047865052680204405904602138299348172238766573808681591137245789639863567613723761180788613747721598295655250243509753958747241442527588272738377014249414560310289444319411369527574871052993668617032785430969401923400307810308976267105029089518477626659384006323184881336334552866427018344898899463337248983369833394538241142768060362513364233085971818637714538546056598620116680220053403135806811907747925958347851067707760223152282724298321375838418242215719598459616812630237368994685031909568034066116554608148913333970484531481936314600596984997028169595334151156917344826608133628309404957320517933885353497362174479069914623829815143822006113022157150291344918998099651825010269342112820930800655137098596708874906967484758929529726461465113565161286080650227285610177350329587533840112554388625675778508660447584832287657965163071854663130528502805507050580679616847201993048161820497931001761430875279222021412775023108750818192906605181286931864707117044641528407118010236169888607971068799506112942660059685985425991505537626528718692846342322106300208374027042723373042790531668014243103328515880532670541753597298239526847490586606674532488464514540554713026813324687086956458301969295192671920776772636263362779581485027257468898449810502647123115963963633755530880667303819631293574271251847531480163731359507708591814458445460497254395628625512032592592328695776954156022471460304187021262639847512321404515846295839094605550391584176136638844765514278909767190303692776044744985924355544500401934846024881986766505909620400002560424846051295732617493459119881249547305567914014161617538848629937122140694347325581358551222584585667415809312359971767123738455019821174633509426817896960623667135294449813204342749393926968060095316016961071701780604256315434165626055154886194366504871128662569016331051591378474339649604544089311485441791639358152021202703328284892516748247022372802721509356515032503989372552404260629665265732671890092409884137602294800901432872416474645277998482940353944741781972996030049231304258718201912446203886767344630707076301580621629930466068980868998007697199043523016049912418540609117609674266859693132178129671290329791063251100883215199676842262064368318791393799954007730370507801312044516011209179105183787436943711965190165806779128544073198105853605408345709052034314759033363989846192802601175786674471515966461606755323894864174271886639129678395607005103881219894734280994448564442397283929309116685046400574057886403001708800946936164362997859203442450816992017038620280686995306489592626182009540442470941920894258531088286346406119472900216635421062933688193282823930554750343141509225286278973318363999463763101541144310857383938941335925751700298041118368235583404794590225511406399624863137874467417097937450623958113397273127546151412965001782237495291363591529146784035222439300138396043049917382895095879040658974456504762735734074279595362593088441716580112228624924893600976572311545420791576056368706306379626733158575989304404851908618365103249120233567722320498624652827213018872089631831957410214065913262777418489280995347737387222299931948114991945995797836970470648347285382340569568184231505305671792848258122258545078850151436208633595529755508465623515620527646157582822622077678003019349113766920877622484282256783569181046005212141759375938428425857959334085674456446562538707828097542358884209641926203176467311297122648820782714924008091425817064147320193624146059083052148630777707001556046566737683664310434110508972977563708409221253121627458166757651254551291522683467612955750481842414681546845928615619654668552127069837237487199385366367385395370369616915782817282076582005778571757702784794623585685831498662213181529058082484676484216239385379930772100120612226069026637510794626713357971240266175459357386006912468499825548974108505711760058795134160255906221424973913165121375155313571867039972773693776752416902785020282603867532440411220160775110362962177515697568883873477519989419991918342035298613983855401163503443162317015393429208958887561876292039338509312209813063622263298834595572905828021569387702318412189377865597391772689098928593965483374514304258409461029240393802954783700185731935341496275825353995296273498099456572917110563542189365860866454817658381136699778567853649683640968039474703283139640110079286411287396408008279511524084870800041552734161084337300802708784435705463998373720960564345810227988239418401108834249165538939234106725746700148365960469166477018860855308682937716295914431627362898148281234256593614902141555460241477416476886389102135251857286296844577225428341740825092345043419121076888735790004158234775812319018202238155980312440311216490909839760929328520139477751171829482907109856332176654156864074742131025102646864962331207947435738341971262219570045339615387394296235608045238776416148822839117028516213795086901100840260071779384820160792123567092312268490677084284724614722058997452867916415308710158397126359391501247976778799876396690373523644103839971163751286782307052846920190837666714972600099121227573556730664172169664444599056896558258144077103457779085768001498450293708150446844001251620826956996337381660767465445369181647651619646941171112114614633285446320674810009652532581039618721997548177500396868805871505494593474551817526044980694915186346929465418950601726900742664810307717854266981271596211263154800158999053190486713598938967794851699555614399097533947869859981034903149805278191807545367396982062200420487310310597119707990712485957898218989685453211327776166934229993625963833719689050432104128673557422567799320726720048500804727632189846538426119372786168050564892612955126614624985668050139431160493686652344301123912608677705318341171189412851647396544975724240725648407470251268743290776456411969658235580944975074156754193712922549600058206089635877939305803043004379678498066674051169166994106397503926896265795707031430489011314430266607496145641011434302356071402878533086565801132935339712346636191568359357892431081803538340803617537783316624219789839371985675017658835447477472709885949603739255062059553014175588282218033892647639540539630929314402482313912868315499612058361011438886901716143630320537919741036658512538999511042564170399303621156280062871853881323428912282712528728855974755309966416209041528437925568397263879564432815349406400385388337953144267493272563457064698787944489455641989843386409526541207574632227254975809611553447338560058850679414857186219482129316821754366353567144280952725422589971998121510799086300867086866779321406835775723228067554493008659769886249346381245689297021866115502705189730811108253659910995984776399190856561236382759054307722720450318931568959476238398749580977621957612097908247450479511521813852180028313062086305494209651856855461514878250611946236254740622178427436576935315336639848770743441254806942159653290087059427875889653246616043625571376881272840073070755439656751618623229203608114863214520563258603874335417143983858519969618177331215518282921099555082980074465965885758922466306197572490677154287042568946319796495958140391811525611982045117937753573910651959311328290753897913124642202995620756201371826116198139374809601731944127256341947177523784864191737111816694126873802152788191894559228137661358617101943527793794822083795880585748195596866622540096111977275494892524801063219735267565525855478671217587741003963282311413273169909766605727905585896131133326263485760881672865326515168428708713892276300246323505551164506748764555617238556916138603645514085758116783491690762750509333239759637725960503549419588133444898376702860556362387098756075443467290819949106977366618907178900239688965438782887695710824279530825374288357748971967489020453122090786543801485362340242114459825639879001958209343521898997076269708735415738971468831148603618567180066486476746711677956240615917817121760021049517017167236875389151362912599680909583062685645954506613638043387619705146481008298669495373369286045050651811974633881591876947909969675423947950210242661450178338716875561505046012930484676298423569178108769652377293357320320318022984846292765354334010345140965316534303201033105751585055610824579438642875559636479236088159150344990111449640820443375198427590824412882449157486640967306979727069985427804457168241395768286339467537320458310492272797340005423699966350544823920558260863884004178034573693654273471242391460739263488380125188762213608131759920494819847561194715162587023506651210078093574367273282058267958983603910496237556074703127370981323923179735649772936003167663171381631082025572235216038846644832680246077820834523469340583374796180873546191817832134254612483029376366773306684857969882219729572747355139381465364277228160515090877735110960613608957947338326908491864372711461215566319231069577925378747991592594563566635120823809245335942928715181607366420548195883521737048634665042803521414838578214513335015165842872612256777638428776787879138285857339854672357819577049858344763201822508906502800486386948049246686379676662879791160661110527443982992096014646643378334857097087046888895529696181638869435506776830359854875822743042830641581325968342240138948891787248137244011122102471656530061535491370303887155779842119506783057186848498130247519222892440350652359598519126295171172272962847447078305215706467715222403830126397076803377218319332621300944521642282208493990936497440149576783466534364731875971658045145514481128475873700550665922666461540928552950861255827840959284553367069328948125044336295825885587544090472396404436800968370331580079269153043923459027096161471782772394389553301983980714716859456661460004575252804077163549039766231599855914274876240175318296083769149187005569094631522599400818023408351316602462120732996680886119970990195038733328719039845333642628759982028932171289540467941533723509963365933138768177508411369222474780299007518479898372062171041961858729302028382645017029750221829529811285965611120982512253497939405968489590842892994460118228723032507434822218229631862176311674085854436321713958696789133111342623391455403119617455560235715884099868808198993436433098700333344871865921266243313146804901473599571738382003051338769184731802738673197043029578030764264521764739865757177447385122055413359458227143140787260034709732480615960857467199473152051230540760657306055934782174937828659629015538674634753567819513810977054416454964722794065202645658274341827569269710078305853264061094065645754741239111233073772901956249274349979859504362122306049262188386672054414662135433042179952415166074339279067060191669732551322140610249776756263667514114305452190516884981615535898820923403479186398078657624045383192650699156278280356819067264308172015887792309436813452052461066464595337993600270868158631099262175890544656916797036695683064868719780345850612491499523719692176566478195683153130044337652154317483330509622323796693712217677090407015362048824166753611318459840651028647653364591406829117669501419677310329882917728243362540884904043565526084876424946626163489498661853851797154487037198833248148123304907960886649104171247970207633796583948764133901324742964969594481041830070659602545082064010125489839359101333664734973857462001427720577201036621984758676621071592755153632778468637768582226840553281752440299891583784357228345264359095111093287245346248563041436185424058491179041624319287387439053889922042170457224317178362806028560670406837616812082491259210742225952637678777474967648846546408262031726707091132354836687471177040126990816568055850338193542603527014510939768717548541564496692413787476031861721550488426729764087966123330213262682485951904194250997553399086647221414974008431371911407608284431941856048549974291286482841920100512945196874268121304680552630058704916733051739355455284318617603715211959452584442447818864371473041448332331959192261186560540151179863110538186689289322972644697010042446738924102859794318631195270727699762184458391478077159707618180344643739014203287242337146370170231009860273875437407768690007793377121937266425550492638174071650095105658522523863029443623839350605679988486644986151715789568664179811112003978038579387037599616123864628440019412441992004122561467250743725768446670833799489770183276145925056282975196495394512950985226252403555540996880581717684963111613651439560666486584054642563870872683115484864694731819407092446384093961266964198262078776789402075182364561389662705666699561985421236949038631782375508169286165264632369017064102442414783490748425571924148868668549913740070561920774506603883053935486014200135312487360636662516024775053876087267114748378801369330021469756909518840708054419493180116320095831891800886021953501652602226909952301587607390944415664448548607372426013399508086839806082018395850118637834546498432356820363108097879577792418613540810702415877068398850944296598936495223647342431904606878289373447471559722813865259220099007998388215399532229943636535126250604493091805943582927237586106214265207201751165476726020043967020821206109385980632854663100911529283996588495224395920857148753447100878221003155489907176184814437154576906570070192859174167282527517322370107271212874364368244769728187404882769178545663635855139922818347406238692268472444183379379282193387639848049910441195501669938500434154910189564935926326307586687363303049272502681341600339935747400211004407818301220037669118326005677065327087709407460815686072093206618210897024149344421541580071112046283703037727147137751698330987616001336819228486281632759887417934781246023251292458808266794713745466750040702259647362282693675684257911147949184760779557466805555164256341824996892990194262599755981819584719869096639553900881862308809163788982415103486494637524322742487978103303271273796559395079976232870177596954158104592301605047258201041418554738813154245407687729546548607504484305582314164691694461369704598037879052967663731885965608120866429302761437346303385766846070706072690676790852814028051145578758999851215622552083841381501992409274369870746820152209781933473921041651543561085780167681196902935078417692038839837465703317062043818393986011580402840853603401661203003838675654043752152767334332797720604578067714355713836258364579829956098456128337027076823548324921941568584360620407301948616032525802507708437198044957661617571506829473377897452611030648530176365699795223437430782101253953615347532784191882112900217631880364762521292362097588144755655586032174533486152338614091154648020115064103017668615915316635006558468260731526032043450633498461954853455892190672482048712516287081111953596307209709154755015424982910475317490733993324450834358605102004509974917762544474455438509143139807116831506426937643142150325520861767788842234914334517815499372447372839245264970970519571453315856930808109150856787102446418926353161376739506863561085600814908538980014363035735489554366534533033764335316325217252141159886307187123809367317645432824373192637664485992093862416657579684980659979084940002721456295514882701779334689876564136771555586251114389930680263052142861030850215549555938859035279820344137527434320054924417545792080666120353938190704704595721966823005605672741145609284638748604014782848333514443368966258127183863059646414596540375670865569147306709254391866228742757090255103659818757865118303257263225115836731710031342218723257709412957411247069498270427716602638227569924692282421026922250285083756037658429355281556901908615200329831055727325178454525981261880094427196071228560258109976702454458913916796506393070724023862916105743670415163891244210430761581950872752684889872205135991549982675395092306941965725112788789717864248090887868000160724574211782576591206197661361629450341303696628525613706322574341004755435267534776523668515855704454517757230944240744175561782930570935773295352813387349060217691073017457659585414260721674078631404748421078829849297295198051208687901374607911799036599177851077290482133943463830461139888884364084722292622698574227610463815874563400323071759096086560133287519491471901091098846025137809278921796716097036154290472305719680180583279885691604006656320757471121328950631082926462621492662789847013283182539775690929189332456345035637586364792661153598606484765415213723459652780572250843959676973258233499768777633787582329001588638803672235668645164775229830483953908150360062087565799690732642634746904629772819352534316730608593384713597829821528637247716351727133096087735902566502071651800138829275536618380702912678543792821642415252234256657580684465397029294378302851642162795290801415694353547929132999687080834664836034128343175894164677423581483197325958219813742917036821485404371937266918696614866892091627206299652481641467781239713494101626400061890460105035857549423194550680932050351681333656861898121050465825451073425740176206757825782506612289810701137181425828323092736793546364019728017807904779391239960567954763573722476975195520399117331844715113743991580400913505821411683226715480539051835394697165948467329694947228029281044294891294180869577653170010067492252326976660603522354855748870820620218678416832928543003644990848982810856429326886507305678298574008940988983678778794290576986762966084226320647054973028381069729307485080758372899486596855444131823845189974065616603136714861698814548323276683627280671349130180079758321694573212198652728872110133926409307526231397551628715025888806234269821989010448165266493461926153428326370547744250454016706705633488559986283412344549526533731652868563411365250091658115070210777122836526479339903639241570032816243860703858266506781042417309213427917641826128819182978399553524404491271747936744424628498047883020913461321154659204707606863577258500765845224576137001352046151191053454713975993304174481378764746936956554725622209527499008924518343606899706556423332651961012204070716748457321472203848212675326323019297479389305681188550651980455362751881856655816419583185834970849622839319308241982425615787979809223646757006650055387535081247916145249486741266488916361849667500173320241555598506402719300127228123833298608484511509056732638155573279335976854057830197233003292306988556874454377217951958315322517514637844564220131347587302870331231526084000719751762546291430870611660885394651334883694750754220617728551320078522084891228448507703230347164725406728031373459094461885869749796127495844519366205920885838575966332283467016899791334284899501362815410876977359095054420096119156518549776032993575489490825031276308779572717252553771476554416835774142393255786707293396921690265233191556065861899474221905255403388947947335732210594647592039789515775285841166329639535034042581052355077031980083081045312409832690442736592572647056996112063111090173430505765695827469486027866933067876451853045128736534999852743658112477133724195762662520717034036020972629349385399747941699796763596302213655777343329436625007710838986289583173392559473673296533987596431999480237656825425566757567502396788685149664121060074550936541181877248026369724167059850971271856006627089622538885837866990739053264372985657084891671394092588101275156652782806519523538704528682200827018950934262916622456830471217748197126352541585760907165611051521900131438145957574001100220219506592901449172100297696505872105369029057108403363233557051736694245533530653085367245651836223180653286210997687418533895173199361314930397569610438436041311662900336115219899958186607271790053157828153397054662399741547695140156872241538216014532015254681623385147415013768381735832403048400254014836822240715053977948118460461102772896821106120776250848548341654407360355771721269087607867143984085576903489142459886674076626536241432626618042600509774870112992953979297988482667459189946164936928039633460817296235501704828641170070360300865458626252975134215320197340098092288376082760219772222953987000023601752424974592242340911656344818381016210049708973939203071548874429715359342609398172935432577017931896136951871265426530370342390199548753558013924165815871057233152702144403386764583605030889786521145396834033392150188138601930727581234747916120963331562995271832632751997654551172461266304683573097398653723135036123020850557637526398175831952814802095484479295597320442219008927819907434644693603904128599465514694128374129419452290248544909976160758137812497243374117656868654373676470146461022069436604812240250332363489165697206867276933311665382293378883635973868890191304543331229614421673649011971089548493406519015899668991978490511453579932201932869543865933592955566359546491841882693454351384825913631297430776153139676877081391334359224063287682000800529194688662125794057113987467081216591000699090352420442263175185082496093992359393225183536613554435953525747678210363903661696052294003322903819113807075841834419075723159423808763936269919163949126317638725223319779369992830114469294817462745075210714480807682630195636173839328492550741000216833821359887446400099877020747262381296966490271024609625101212166583160652797799320811249828846985206275659529163743977446987842834565825818237573472327342485514386462953850494659072965309461081427590688950574503132883358650253577664667660176338561350439012242656089649715327891515929578015259244885779906455754916416239706770981569595418289262176702507522648304135052512220313890670398736104548719392997716043407621524148551652903543427722024515123485221167215231615065873523926365079916504213753551947154061810452992657368802080314323226450185936511545301335804149465986623522477405136039292011924198666910415015014201966659246854859805282028687814955386517977097398492583363689855371075828141915551060013782629385573085156125355755433663040852616270517934058701358936074346011342692102278066018968808518061645251650453712601731062984493526016052530420088918517144896555277959494030255890947428520919426732242763664340441724629173247257075334424089802937676995609267412632739096785935213857922952092110423695495370944371746004918228746213510061659778813262186570950404852951423770600066636144434354675645212541415219959009322239091374114061861589433534113672813124194971596382572666961112598994160369908036730517766963417276640870706971781051755969781841079815309942682226322774649996024605380532027182118051301596091654552648467838832542382359336361083189172194259701671077700401689381217016246708535740835836535389642388486206218665999601472544017231148611479514613897798183833015239785422117134177939847242546406500261499354747227865798723416763624480828149708937057494418158967407766249803889439173574828899889328920146838951350032389910569249901890499458035410964674441144319086133812927552709039030234562875839061177723656120342562260791435594502741298935151884729733488241532206412954513118468408748574536400110524204294287334955860753269384790986942184119989100300001755288184385191231919567679386857727737692228834626353822626254165246844661275226718104313272246664962025225851098934935484749773062400672188945084689214734842977890212725731825648252538421439792075128563589944678697230908702146449959874308443940737526416196647625727594797111415091244222804740952967024441109621852872909416303303785779572905733676940693587731511617785476492139808501566412773237871776882619448340371292147367306968140740552480443728721621891970735637127527635176852593969291267310573528652317432228468762813047706129021535627391256457576269776439055751782443087745820275913081718831439113605855443176788461403574813065247972288421418856070602695711757544932852721121414640111835908603056187879751724560966733427275424950805366029878862963727918916274227885321572243621726959757592419548022907991599959302065766646650527700203072535435047265288177154440396580476461603102489971061767645435385966518135913892451436663129388889549392582388477639036828355821766509950098294539411640106970954062668529314183215435963191638346426230251017284036799757349331945008726796787668519339323327429022679105959996027467167239340756479035102749361544822614156731473798208832473826803311519232404700056883118476239771131561336793397028954988832589097806605922412449954547417595229838087400535157767942452271669923014596303719763567814743417442650521479494623840116098292281461428777811454930348188444308444465625680814437799370246706220044810282404003458810072467823200148487924914667561675961777017300941379474183573695011648970203754284242193428708153405464052751345238773110571782661564737635123424457871447394005571892553962705209084339952872809595302544014347831874292427060458246419809098832827572734458893220190985695052781642567096532046702308843531279318437762472962135130686330727655703806976621505549314924096616482676831410633733480787464796299055678780895274257385424278795157685022407106050256686968970152526497162138710565546203321953581614805028871581694916914682886776342038405507160891511595689792840737666913703293770860250452802830347127183943827117142375581152534257633278089039011527799584463307250949269212067140328050515526716783102582903683336462503670349669536758723925142908040278681648718621900713320203966782177865048169742577433098948444302013692860269942283407241402172854588888702332762008118133274727387869179985624858019811619342439947083592365029780005838649755814243141028756025008421914789168845952044912929316813419167586282696414324519419403133170060123556243812249708378394655595563334287646563459311803092984224075963911398909853241935268417853269411940403412645903876873516674991839967238206340507900667237150860917528760318015611757548194987443207358341122679451169811015928689408706478479815782922522738084577364368725048534034297078759186173505037294487020374243749965767502830943626601259712741491048018887965880171567565204769860778657648133779006983644745764317283246030243146208251059175900533451683135027651703556440968002426579415320448430539263651098092265291757209033225890096380011165776396701568755282271997718571290894435161942888887399497952019927430785989234647570851965166441843930897973219195958313535916239897555073402340029483142949861863290262709449833103551507625326245876661926766219452347857152616405712907122183285366322539119710957498379266518656321542018316478686701420412047866409051980142425239142780552379155687784527704200966323398586535734444124126067927319046496089688346353927894012561496513488997150395257991749171716824869066483337776740186849717402998531350120760455403979229006578580246023900206289356777618749552013781448421645896749415192603256419329055147598555973349499228849686178234142316790186042227438001264460461792137264924328077548365883289824490879721865103975551246439151123623696208630077959423753939216659083881608946674924644694209584393140690675036634307713855118161577758474420692428699442824440354799295560372426606430127370135689408873108205551272301073229613500439057502322971488114222736723708908960446859787281436824546102369931407324210147561802223108999081478798421801229553259524600724642011392062401384507655194317673828575067573715497202885161423304180009716617151912105732441795925638783299296106201464326026361501811116823791265506687013863101689982174682406043546987671614973992957525458579059334632155188896507798001734393515182323125778442470838721523417468640240834960339599306009508536459601071944506049949018495232941500306469529618966776961521728449123119516039804958155057176216085338766334336291072498191494300123324990960255755890658254981458442028339604695290788561483946990674451230066445824530446761096512091737888688953915380188033380574062569608234315734051483680114137609553451234900282716352433994268371947662770778143444254798178258411540155815422786595467448846534483315295548619025079687298482526139656098064813496544789604807702652154160684276685111614854056493899753165142494729585965205688207351903542507705589279689231424107363099674722457205581000703218139446788175668501914674359069707309492725598020417205350520981883272787880180746271135617461482811768367386607339102552988297647662445132311989296562566816101185821313957262305109813183130066993439963950326749355392880984261466378602540729951047184912047925236821051938301410032302825098607554747058353897782663078715253201219817035592065739716902229357838004159930147134324960937600508064510806224253646668311932867682696593085619038986542967799267954094136630133780915983615444080610761974606139508512145000591395068705088036602256634141235931281469787953261262973664033366196251241870543718415008028730239244897535278341777496567757971899038795852501135965906133204029707201605863168889890624736811684942650979540958551246106735350031112287991638255104338926589715694369501874707005499322962844750456346438545151770483642574500158058689159333746631857076358939916390884382469158654199038884607638716611247778355161564214158937303998765323681855901352934404756250448913582652819133203216471461720648666177778339454049834718590836521036771733614188254942391588144542934438362707499561889315726400385231364916458510973141712849479000879461869329708303890070315559696758618498902416266181688816108441074745897508530801379573675984095963959950057552834484052223910675379777581632195958086540632877175100275181901314839355307450881669511305313542746603605201096209671858893426019214367845600959122005712104935694246467042121362066254536399732416399738062603214401915632951906358630503661874667951417396763739412684988223783014146663083361974897682786829228191978232523520794416604574350453118844337396988735969387077675832823314646195094560248753633816419466257037155181379335903407720067937323480749325386628194783430205065163354020615602317653248197849674007641936515944559220319324402920948332807101820471618915861301835094644780078118291343832811170650029430186457090781697012197401379243014401635246809723908299094133494292421202985415847442891349096899866401113571085664647750623837481057871228165061940348215543504309298293495541761342405759353257483894415852577281040198006604287185557508304435660125298734778969495574920329190310953878374545027473912374076256450742243240636560827298374115451429090579709705776173128765510032067966495028918592331581991132353999625103004589072938429935038625785822958940417020190745603069804888857204497505976970076979374372027838959570873606697608767029011674816495274881690308950296028602028970508527840658013737162325461475262887700728208187447163200868702515572699786510079720280742886863396490505070116983207681998245741574007992046061763503309797689701153253131270770921540747910705515317895514684703293643267354732666686646915417780109404227907237182288804029419556621565048013074334023243943565427561076001192851485853602012638395774761482451394559687687864520627973660366028626419965402602528798428795434252139031980730858308533055100953644331228400581199657907713247020998524975114001076654269929439919607356807617693479286286131071792794820250200242121786218282243854239220307646051727176119043090164662162420768024474427125204070753085805388990581816563043005839462889882165438730921369418898773595463668232594001708487029674118854415403420377538692745341775854304583143545328674233535776309393261615323274014600719401943125536888646583009566268309962871545660988455922341936823007855869938462834055830213902952077635890853645757464638268037604388859344573201091452341410892660272725200674466551245724039541509777659194560811985851043260165478963884931812067580083656223709682889928418518599736853173872479723698072749493180505989788699447608163918983566478568469666003938249378533185773662527821193969971067760712964881574685537897617884622400773613830254825304409975498831959588203733355439635085874022222329139797997385644648736580145665197072920717990309958709080203395949650679919009720883919896724019230511142228517427453681458384865468250730729483423698903408349044721305375005119593730532477796947214559768608570850209332693199692756622951878354058735908438114218423832131517452717649255981298770712576180191686029135832268446996064724916604324702542416004915167452757038834915332782312462449374380267296130561001680126615542022670188586585180783163417066441287277843615272416037762620834052799844087610190243425923479498671424299904607033976282068772362133133489146083054103092070369328039426922330316609782366572873472123411488572085035033102388056476453238250920101881061624256244088516486752734907614379129524480318005626217266473943641369975275749312304468265940520963886086802608713745147263262944713900188852636487708422546287603534325295909186986198775835527357709712223064406469425141816425038393038681950052525021406673965841807536927127286451547580126671295038304626996053925894431634029460974651728632100911692669038911803965896044933998083533305515250629933179280422303747332220108986448032326093147619934060761670841010753502973105906090114637075758533225588401240157797176008134918827595827579300900382067953925254392599354177992824134306105672856494192349597392738660839003090519181141063213410289049774733378066874532754060229956599607612544073172670598628514804769262309893900992783878439491256066902719198829009504914971591179660009842415427985857927315068894308139350315745547639400676245813202966504691208190460540577324830979257056628748115645260826535901126189789363707929508482001336212275303844951942665595811655951299123373145677752903276912117736738229220530601566010505683132191213089321806762501531230723709560715934728113109653009817468942301497083568642780169857189098171250482652300916579810290734760486563308221645733391879091467118723998116677193329633475926084400931673012196350375117424743723562967907531094564029943348270653261733596514850534949237846931837449424778957101200495378170926876852427515112536415261620119724284267158972184718020996090838212173190469192763963488954619825127509059097010592880640377910388960699835214005376376749882916507648161148502486148636308511801391545687877140351804770644537689731349365906345295243734965901198285364342217064125033005499018915840046705173671229291489289660824077336559911443823863040364064470889431456342850750012203764595126273858460444682766458015702929319479012828538817576977474621724302372160455977913280773613573374552254815340690287955757502769418693477057021516272819105957423433210537679943180171257393790368389892447767878783688157877080165121763000661895615221433933139194155733352752350887555320851443680019494828221920597069630774644757927447712778467229667821230334396538371171343218422966370529785152962487601277684567623227385196506862616550743293992058410434812291472463433384264214464784827995818816564955889690609311534772911879262294847417758374097773081121723316559049323829591290843275183783993014639751316120438621156060648743815981104063846008071136653789110890316963614101874779837184923180227055498928233541397423156150436676053846987694284854244042366447539265789679314444085815687234806072401067660263369464634255873878578123460989939124580318433755399967560867848224439898600147051583000269106518752136885389513052384758847772846135138588112872804157288080678084864855887874294745123921312860849014293619225701310343456307569694795239308082040243290377269500322980455531551206168795593670883063467945994795676483874181223962038491628102820931559430886380310465617602400302023536295786078039571673182731848494909316733520145633094369122406507024470903110501627927505210961608211785815613598686510352901067203070884857409544218725190936879834481189235807449802560713825059165919135693898139644339216243014066740235047997859205516209216609201500428234969549146991627315750541508998796611229781811547672686817353140970152899261822018349050490098710047024100571423730383762803889689420518809852662838237993883434541731364910704536284458475501876879975236428896492312586207052510746054249875901855240705803190075973003993528531004568704161279569265224736063565011566076649572514499367693781325343575283841959565592549960202285885035947263108116049987366961157739891285256173056301163914972286514690632515591951428683452392261151364621174776633387712654036816662429791632827066257721395780317807897728743584428679036808253044886564664076421912906047688564736882136298559061999951006520655406373042292043920163805957731138640866439701898891121265264894001948559915508931682250956750907612144145226696287909574997286809446407313881055537427995502038814632696359236263074363945456927726445779605958181668620211663876321152749936536813546541409150772431826756021397064489703599369270143665952786964122014164508452607291920809504576850736411350769348716370942265774687210678310529494212957136266216801472265062847906956799537347835711578212812910318983737864491081714190395156989302112413495743973307198103932352640421780376379352066084302452714691085779523552092308381853806746287469597184224643540528816063042940943087723659670517271121208099353728819474564323884799817533780514506353564682862387449171692986253418091074221258250739651883612865740049509560658045023037399244372880967033284737321714121704226409861929016366521409325476306457513069755935184293158870932159193396647006374584080681063857214460335510912329291311112340375604151609087871462185683312041145896065805424493654627437653773792715961981915156445102509310724016000616649748103032255592534507860969409456951329432814516053321643366229757905011660456975038829581754635660852000076425896880637541849280181537304610841149980290171415914904612828662039922226367358312654271498641875440683418217754330626266938972580422939328080845580799601511477724937936432193538363177081246973589511943766538064826426055642539761792840847298812161893547238961231440823618992673238706720399736719030884412167586257168136160002983790486550418382478255983552428712426711442927452050205938265273602591327985397760218732683222641233985333567850253948119106473814792330738572017034841773778678077030899475712524602885135001960851652048464676187967684661965422526905703319145473973536397983092399871565354933915673485738706901009350843923962882790570773865058909877560814458715371114109284959357459040463625178796986553378401301759290014240744061353949376382905027199182417028703763914163565054172204594450150828467591268987220003369757290272719694361411508910931778362764972519763666141219621050075152149310529676654811109895061285976497455490520467935681299969035896526809415437270013407877483937323361932143651395551052082121276991197946446249131713701447103024660407874953916084684628601797183954066566055287441224539442191834008661612760823036093326660210065877522573766803620318754577096827963414150554065595310572621810613085204210178869667838545354266860355025884788390470391487386928612804922095419861093475334516485372411578582451900197096708424118684571683781043973413690295071367253648328089928291517199383795256104660715237401197174277942339352225751188305657194886897018143706512409957891249385205971394477929038107742771383620514553574276491751914204948560311801249691236194618004941243603301939284952230247945187369953355610736184297826437189169197509826652936132001913923659279939757913783852078963938731502099270585884903715600191788901236867109619989539792191226698461028502306661289144647670224205258346922706940641990901284682329917146334204218288828458427316639297094539673598058101306983744376070741931420924024467738379276637041572406220451489038500146201110712371714980989431611064901711991368919773653556344996013465912369967210519389400134896503351796539969236422642847753615987883017646832232632271663640613341803669527102170450397159981518252423841329272361868902352669124975746271198201853203732907156382860046889945253123636145569341253991577472005965366609459163460681433512401671689881927376466241068200541620843285822725813601795242285377976810046453359793336890675982393287671367300346511593579705029964971174702033483976340322437883819775918765916291231703041947610766529185430143538324958439186875412350924621891886617559589120730204625382304421218681539329107776385738166894857924625538338321401793772052155144748273434395641787982989498094965191215171651369538058239758622043745520746701078287841594479297345729864991444491382407538270114089695565929578088405603634852788008571710672288172981483725881664516217558709074365014257035368066966383675932835453121201208525510145496945359460601005130009937432192493029113686768310908917776676736438877262135041278299472112810565487722999961690608722451540425454249021996188813172905196555585709679661441878120837390621796230456978394538353343969523441546350285352462718882008499710253497224356225244098520327831670881738775145773800153702349110284589286564091794556366634050446824098407411397406997194318750061540284444229303489185428303736476400278045792681449615626585717416550884889030316742028319170825659045768964064231301643340447825669958415506398723247961462806289224930454238330680436541518449509678435686035748475005715430238986425650810309379963485130445247289844641654600899273629647805049706237078070906066642619667335560905676031999347792687898791582100951892184402685863242131132164257911074861718590246926155571778052499927211403738496953726925397194896452602987235753582438645216681120338559019578215444620522244849511285798762931223736313839482817195449468788612298132396641293508882488923204336640647889000471789993968278988176421714059749653163107609015547461890029031143480496545661920051426240841767315108960580573620813305779118644074065152223338167810992857683350213550819592344440222673726883489015166484757860081277666460733895750267907517840830771020993418642205151188365112342877598040893571301891095594063787687170846866513358763764607652100359525128763913622930625103333583359863629606902337441100228015336220573705276514242782671754084340834913803936098483096693073195317162303268408315240705150579157558722677171118212515836697440277960210159149436794388301910783420715653077243386019246858021907076631890405996051281148105777945942523044123523942717915904238836837580501350381395422991129844789260679380358393143749017853931760465131670906107643482416546678525172711652156796092518027917315704187279381371870827486306582696806685857199553804485153840195331192544693937843053386097619741271305200576478438719470395805789549736739159364549847243425368228933678138096419889025725168727197744694341647056001474308605160740106187982248920259468128003645699563447151285381387778720415406543137543898411028583741655000585019673063029680497689250972598221553434658683243135732510444909937387193952827669917076856030030826422264313605451688434455041172887123804919089946884148419221364455351061492830270925931087944222183556802715122403457090498599398488056508467851641475714366727165130457478240463230030056843907488062769357761137476607649026582856014015252036633705089841334371795133001035300789360707615067081620845021674355301425221131494644791039428134518715413395989110351975140859572727922322796466584094582230221802959302108762904567454532897747929172072881025420655939346238099982333961487429666658246653414866493519631168151896014880378275493340393288110235244893768968599341768199540475085631031541547683367222046142284255549837989797518134190788205179333230640817364647125837262090139038892545696153785135447719157190359667087274477696990461791034235989609802567987239015028709377167409685394294092873138356328278353423451505758410297407727380877563337667250132167593310533900978491751356018472744432996645489954213664878053657727782700376735903601481121138056565655872195336988065212366821230799091044337233842825122376760369812891105956261271890746966781890738475328835073243155574514601008221420175709470600663517973676188931178347299805792778731935169276825484215373407626301965162523020567496290508426981420204299076173788994578843461981424626672847603543054394902430816538286230672054006566621845356817475463865237362149143387987341203667640354386938422189615683350551442476072645442569021537553567132647862480602879116262324909919754504715744714361110269157317310124031777299546008409804794190477156681157285105118620070951880224094064752082511636538987212708480310093004250299882221194246192907667998655235857592876377529258824803227756913795534957994112757640682068786710037586710517330533924409214490582530564984802680625522629687574966596416964913272261866216350098264715194844919060723891192401341426231363248202265985029308870225949589261576474106932119595368225051528516268576439390953843521970385893395000461877435251417624549240971295657436957630041983657174159908510108962633850443178772299360937653917220147711044217305578859507661246670718523395162517779190808023690412112717078234411568187782442066196703710286622012374871324127436788178742960658690548145512684423708692355618110984886646137081208030953310186674994179866248539122827799884399508705795326316771546598574536437836949599366918481825954189764298096062515271918035843519372494274768067762445371747258199642738397008291013216046910707975425448733225252552687115182838217250090287005454110295752026076475908354860961974306339851927356402667714250488239639918878707571276492190249262762757093417875779693137449188570985684503182960594502382114185001945789788704514872980135999871442278435668610563053815787508858607336156803506266513890810678252244467170182226328770327366601782098238760042989433543638012405490348001196407004947723856394596347062149774927065551299420758607804122906205678947810583732875085371598690435463677632028953272338386233965752561076184511130033076701440919426414224328802613398668725911165533329388395666057963868179537989324847074084709038635723072502545018010442315531805115981710563646151106892138918735815577527270985768904772638259101890350098490395132612810230766160459241746100190202929812315926215169814141994881942878440762877994938130896305956006836854385588262482329174733936329335766323794334209042786848751411935373088007151817013151119175674782953489570359723661952139385964372509360425428859700405707074949089947747422615634798153593011333109046999001480126499873709813357106557265646387338928552062412595997814774412916543110737832522964604049000389991080453526264216225654054231611737522592142506577495337603836352214696385611232918870331816957566291092151362807803378082262915976010938794667277458719454376739297250544774057096489535865585713027187703876141266942454326867860113989154704861891294694576625936437608216060052351495790350330407178901150672755546055594376551053886671161996838217992513043724697043857787895812467610986098906646746211352859245349375166004531608108940044639384222426003399158757511517887443908343706290937070431256396780037421922844341898326890066244007983422142392572779576559962858455884364026162830627383417462392475455957255714992456339999909159523823996835445513942057184354980449487819174558238157605082475449530939815265145302387360984945687982953968717060332047561964748509558218491695927551878096754613851775759235482395594798707427388447966847242093636234048778649894544553699186007265374812111189292024555206055489144584783363884466353642867606224220246422303277853869425513293354833872583455354316535943669797207618883210486091744108068717650500213176334656523416840023986583851604828419388690330760118960601331074187872982799279841476702755051630630443981295747083507286592246091350034076907703160046149925034638078532340391391898616225249937087187062106614485076370855179558707484282509594330567430883531444470653529746021944000062847503077213567651003535125531516734838232478158809646321196659187269539587175617920890076323663247156981106980932492556178906365503021868072834486748051572976384365509015876732985144863687732384277973445275340031522392871518567688428538528561843487149706147418478760440329093626413129226123419345876216762140384210083350570840082656295204854541554695981407536297616812203707301622068282555465611458301208147795301129614492081670337708446512956158896487081411101642793035993814157581659860204629026091629520490108532428100698980892227075344017095749376554372909199427462034368037897490224912546791368449084190066500211072881104662651767886089200139843910088921409145743238117957709963933633187180500900220215677113640900825067211515160797668340360108951144717348008956916973991348223476445915223702860425820911486116232138141767815557237772914429994024665231063829696065908254915470315640028086917341988442932585286659278101438224578088958320168395820433488212543297037265997705191544786551450261739565104329629813795078318912512011943717576283899268296159777030977672836989383630694049797188815759467589033226472530559511033246667179308521384863626994942734245208924121520757091203245507427145294694154378749804620016977437734319402332399994260147474398792688274490737628415100047443065850872222014253849062500513607414611210771719339634343336353462272238729146407190036279688954556702278210947622121597320559866421320975945499533078367776762716817906274301683616931646067394378646204116201135257434815810110473763258800274336858621228098870284719734101511446733481410935792843773643690410922544789047795712127385709934274212929865544540615778953406035713332192130961156061930768736434044007034500330638517710548856182759746862142852932578174290309538562895873704376038111565971747424501748374518053668609247489816510664450146022078018810732376974566501077752347749422666878354983286086875475579200895426446231338774318721739073201805254367036251728267852916343780296587109553666554413183213341900450441648824446662504580789813772741096185270268703422085488161694971957545501923709207423885892651029634986085476593412512288351173749665618366990438556520025591892818212356808049628013582870814611827540444556875002760125087019271776328975900818965039170273410203401292880401845047415066315118392919685456237241266451651218551236288623568650473408384403502867781748875207126822875075424022132583371895349812722540983621944300216388417781999684496070935223261358456350724985679940378343522230266920864832830060409092494604271356505066348530584113504077153626424931201527247155618539371831674856989389194328970239418857536097365056501712515601780653520625375944294354237914846795276014865496821051197964016808726723557042425433841725962780742076382108825020538059801004406471280387577319121233070868706418571116687578880345327762539787297467042307815258570843694171913670787038796120564181410733323217902570044320410823497865544797189981441353203329025335782715444135822896296485159021927994605738802457315446911174008654069869756964981937210514719468229254821469149409299591942480282552417578480314875068255901095570946196093209581457324067209732905351928574509441049132312059603804077926615853868915974798649020437651699302203401286393348888066882991142902612972952167133962536362537137180984883084699788342495900132232328908988107530976492950334208134555203564531342755404195670032671959183482107156153357188877016631350578929235877423340420542657591226066978503830126533631774627124177382377876625277275212585754318973631257603307842610708816159347421465733781934315937266242334440822438444177765629081657748704649652617505695604589384735544082199030895269171675850194117094290732010855661334843937848396309911700385580064306170072324230259825204883354043628594862994728850242980735174144976150995603378693768129798099749154912722944584653506213522310312747120407890076900954736772236756653013275539225529450950188749359959786594284548819498924304871695812160641932590379929008245479517235120010334496360152841580493503351117137924714799376606999083864813657199898332848162088757417515808372810567123020390983203409670651775557607278395309734757985433800918863918716098445159065947989645846476710047953394121456295155638206349282060027930746336064113854359870032859328072820402842375187132584836996358183696088432529136493115535386796121198202014266606927360890804597742111694458152443753389037005312784070437603532233391357168717117438374283689166701613501340430442845195126854173536809429935374433312342394655684634880646050955206198909356103687219977074664942244699834041593062915987534132476861100583138122120138480498832347812903415686082576530534013726194911041008893473597172342818642541914790338577100154221206046618456185303962746129367603008198568530887653864929912789665983306938805891036410356759711345605846480188856011037960092007279219999656754153341800210580749320889860636960139310927001690209632420555054196350559000756745283519213544098855823983598257088263137379725020176327707937921927348565897059710270178045587297099814511625238861014230653001480814673664632373476241626904349324916645720333888324352142911033075898931917631127868021748267475182969712285863846643179874996219692865477803778736355714194886446635016614410015895560602728738823073968128525472113844691170865574310069443446409322605687719872374794602940142147524924692689065760368963560511917502401634881719629736896605235692791919351252447368222314300019734331929162449306475645722614584941668851054798028731580663856622474906304228109386936940610584618662683481026513083393806606920803728951659061768691804924001084066366356171279651857905724534535288454476249139371048164264247319715526989481072618380585020835525585614183635085468259511983109214436306255122545932300157253653667109093605833955996539372596530447498469944371914812321398311838867240993659879594205693582929853002540826793716631203575357295113177597521332387637899091780298425863958809224236751142657557910154816432074289367727515179667897268178974293804712026851767093411413027729737555843572763920762070819146578131311888515705030396431370276208248668609495344465937314527999877054563353066412292710731032775561876124702770099004046591073453919332000833363534067659902704990506722346205302378485566816647720225948874585096055661017208593832933980466674367021567122037163710832088057807847161884729541162773517603844211834882818884849605448723716765170496283228798532429044259388837253323399120623293256696604598898218517363456568715763299515870779430207205802824463608485565607457471729599405370709982121873440790496937877143673975816708381301000080040642320377438402370746070970937083461999703442204635845109015080686637594158673927588970315315767170653300402028143892243279480907140629574142381801332482435451910319953783241267779359115432050463778883893865746904881352862555713703731035736425915984019489256396776135478626017514490784310748927274051898589973223227056670742756626309553842425275342724953412687757101953514545846441207707938928015821370500921781240586110803889345030490234420293398400711827975219174668279483685914291554728115204583656677444603298736977313289145728010148736300123358998313455763254642381537217840170489813643039347327327872603863464367299580926852832020608936000087174425660881349528960239222829179425671293764536716235422117925189740898170009437358303489362578222686277721269211760949282695052454303289290025502851547340444972561820959060481210485085113421908331458366308344650332509659647824179327424124240466789223344571383734660929375051342756690499875529985883205830522708369986606128830229222749958994752561925983429707487231871832058353118052768754879216264315584204304655841947147440364172425760266270901546026863498000713517536209135025836710367270310505580550572371294998295340595480090690768978437721260094638631029584635176858549533590807788848164494269024441609474181257698554878817351869220410915766256134976969316570661101284264564699323970179970126168070013453205845510329606819333272974178068043176921982524610839805485014247509636880985449483059672133678672747857346186867128558738547778708716378676961425314893507782361004054112023227111453852779303603772038828548756151886688128745208640528114209123964198768845212649752577149812595067877510210017401511247576883022089300210044610281835149027548306787055441880318619629229352567641241558979891017374734641928865287156723934617500324470400026735729416426442244627111988094665616278659479048063517279663855918837606477777524300705882278465370954514036883346598688892692903791120334352340642267275703440774843074074061506550500001525372661579186812303462865840645018497635100344256214603787296209190927142190394326852732091096698594319881337056965069525812515718879089585912606905398126276610461833606894205907922951227559931314111325813534121651333421292462127176071840439737166701756411638105836650726692735372706896062338347785361431849387318713513190122701644748745079612427719370493518636462345346405987888530245251376948156419103427638537085507636734849687763238688575323997729939913808577590775464980315176632267756987513348477523287751068991753125224840945215445384376530575619873796225250586374220272365231267879965761636335705513243498089234300674690993394119053212905094963261382797507890917670815988439439299499690061296645636467448634057381134278292103937244827910904116602064772137454467472156287432941422723237162235446740062092274107997506063181421684830069160346387822729550191237102168180254824083544920080325491269366429651326091709548818945373547154779729855463324860609179795004045390026117520434355121845470196876354544632220840145409075280184684067547963742093326140077787334944492151593791771147355241872092628850355935101299518740866817684988538343473094385986956580653142036735748519137872498078191230072074203819365057709311505051098279345208586179198213469619053183129246177691520155443581114551204777698575954687964620892936610299904341688916164671165158819017907437042172394658460383633703214140762479341519022121688988973118562562987550892045383274968955291748524217546166697233383835664506372972067394564861785529458519388308726392134178460354524753893637757890673583786935893503261611802731354357376789590118373802546673044525534134335268676721943839718089808307898919410054560673291049420832819628676390181525561089760823884955898372032772902981946689718783810472984813693563468220351955926633351276349189565677086280186949509100837895246093750958646452736162746064079745747958803642187069277564246692280188048209168509872995621391525306996287528891547807422472224444990390983307773246620952646945931638499514363694821342549474979846703114723853234498826620959935977875743463426068945265539621451499214089489323441038966758020519278331108269945911778839004036638464938833460087100262653397361969620486196232207142234127204941287504574766832952068360085296489816045194194748392928880142352603638115153452301861345997569655838713464015239896832956363898291588383394319769852324513599655541696445566368895929580538912443507455917943717012018767879174840265083317819147676287327573177013082258627982899554298519743298155366119678859277686393848551447385421759764522010105620587470606484905036437985248125688523761999325816874028485466199686940377626910609167198880911787899664544071166042599137092742852888941299335816509081184656835572043962440527961549950238098958534520144447302968449453655370566355566315389432628276604149913529141988075002355607163595369115944246803235156987607302858683067703841133069826407515905360543186281608914324569292730823588090003213951937416454458111200341310533366414382641469950904967018390907919213581233379709841827635727785229553495016197172767806847527769690531707889600000513207248646794603272709973580572889765954512271347667456286374667885637148099693265551969460978868896444878041059455563337025111510748367661106406764604647610469035409675819080999313973236364763567953096158313471167321063770116879305866107982764097842413709619817671018203288474681353751056033615894657867000400317003557560999240556067733942711680594841839582526464719060201553459421242443811696122677543789630298448530693244861273065453627865363798179917404308595649578809147017408104954070818379134264441082438140833607096206291315838116147120071330109184202734350692215891885591958167166256958599106978648251719714128899179340450604131500641383568231168077744010700992790206709889050924828678481469096463315292006580102669258150833952045595585194103126244766420854980006528104998094541468051188913658540417466137829018036537694689972682344061943887290500861975572010709698811858677033435502054632512774067776817510046778365072306414969599104491680537122595125670732478229467800878869057732330075171967455380985575292863922266515354847217497789564573390370841443148139485643106427956127288510296903891673819243342915676511834304986715397512452285445499447323923391948431426095483319978237272107804497395052408123579824648204520687542366607737207905439563191784655240184592474226440432390925489745443511517367461486675322038853684779227288608101702443845438273804474242555573047339166942243161511430285017274155703368554320656887461476288374694441576699175715531168077657105095427172920930578367296349047816586579820595511861313573098095091035601266293822431980616587967370789562704613574923088368064696816657600834363368411707305962143361725465693033707233577498828327952505034847269871753685726111676709930269551284657452698531904933992691804162293957206498657495869711160135201840485551713807285942579954549410295570218575283055051770584897719730968076266962081842727974668793144838015592238352939720680309962241765243339446390677210668365382799229420450809662283953727276095371190618185104592488535315921174824805649825958299525039369484103795651389555342364057154370673538926633554122391232410683467735457696922770896179967879747263793202954753708445608399545918379117833647617941655313400089780979494095946006395752966171062401407210650640223665644910493723017931442141058173879053149361074872257421237473077702653695632995771373588016584861760765246522358908097143516638226838044256479284127643560077007120821975831164608189631841986095525105492698028477010262281121706831353034732771561930961294885694815944754519607935225592340492986602736367268269059631492611116444812441851513160346554929812390917602044013236952559986345793866968353645862035663466591440683781077824882617058435913217352700132289094697005867824690435375008026353098329759640447334381570988933631187503323758318857246901894160558330461411663454728632792238165896822642201099160820788785325504223510611706049756335310841790044540569447496277027424870730062633937233291582542971618513529888694190465370901934997783370406221725146741748638094752855313929191339184155853624124515219010788286004221958699922155288513023630546111808127558199966766679447929422634450266807321576340445482182321349325900249164217395412378363503617752416331249200241131033887060682602041430390471666021463614132809078355439234930141837624679299878082396516949519438399819644264396775524419133052489474944057239150609123749685753701384247973914521016864307379160372829595678889833645226256864170060379214721373377317043611561313162968011859745012937656711281844843060446505222113226141107734203325925998001437141285859872590516287819480698659093352432201263155414828030165334265010329094522721756103598865411841492879827382134931552235322136482462502443946544581525484227981089583009041625331888767392222549534378748665836543539881466564543873390467806307504100449999733738505130499211705184001593236447851448622875375148331326421019248330697804670157988974244396661046530715157309907763963481318331726729142072269338306712511452728637691803038485091051535081987232491994306467807027935330723410087513787107268275881915148875600436549382085078572707900662930974612399662991018043463380756083345741187427687935531361499442700426015703016251149870779328556965737935297841252332130046816763313073205610490912913409797544218061330442259260246412671134650552109203584703979782735594312209311367236760841655649913106817675361726015713996705807073071970761556460679016615554254488991891958553039599654434980799820160000553957919713085637537496329567736782762215469208284440088228562002450409636121565543872491838624794219247205254433630931972183845141731466596575940321825692266490493462884520703079716810656037979774191189250484884016245001714470825963070261462427433568251918688873050112868133971867725671385961813491907023563987840146982738856666590375428344032104283181046903350296424817809221814055229910283929088115682722237688992763440442977588413485672278179421523108971877402805412466968787664158303649940359497907802207855897308289022700535172326345090451280037773596275955075685715523551822587077143411287201307671138453546911693207612189920458860202842970589132108888524510219475121221061909890698189299826113207051856613538921765306440165796965410901830663223232234762292931906580931176843618177730625914779974239745510132502205302806387614757656535519496946175616776800499804542459132557530399950573342156844533480555601526079922863745861939875932835616381745956004046896933925498918865584403992283942399338025517946682190782395824451893540124073172025492047953472557500169616612341075104622209051836179662086838987757300668807930759240260495287357753385763349612371133064839280269276404931756505664194244388534398024111408838465524055631980502144679204019121906711305149612048613906006268814978345371517198255575842846046733675660201800141407806069536146244662108468637458227164436364921680867629067336869188637612528411545686761464786012167361762917350686809401711144981778642797106516249126960686683189641911471292188819155238850580405794430766867851601558483408258429104853402449388232552189742695378496186581055057096733518814117682028896645499883833460493750599616875068743431354897477088728329175675097172168641983452746073153128507915241189907023207800578238921926672642293499224857697630673962985973454064819452564721414983188700609016904212094785191908111120159650910917345947232537276140861688398842498477414753624371877416001215058154210853936973985812890315149800358167387586194984678304062281897592234913386535161730888866806430795996431214392551360390982934469621287448870720280970779911026013288301986231077169936761993001544841175422865456876253610667765537679154480663313256803575584660140338018382609333028700798469077729110545517877075215925306550941652810042103243445929028150032488994089767407562607733215058592195508148549215516927722738419115570124694101800799659012786845352968344753055475507230836768126707053354946483135543207269681849819421360271733506515546252400489490562290426337539260559517109252533942692620130203199168082016955531494946979244003546715602651760799160331447336375965234707237111950798989687967900281638904266476351233789576643488948747942199470862692658326864978416952437622276021947392606191191073004780348218524806586842200413762129054961561419594207823395057095760172878169677737166683591627155329661058515410437036576369700926303947023894750543150360417156060768373598446149034508196648090791255910272884139613565125765867309921277227282218101974785845065616427159466618923484785365895693232362079960336709717529426753269002753522607756549014982653077302138198149932443056959335464926649088329265215636304390490918230250096213798973622399650069006535042823531220999791646589749214973722399368891636567884528040282669906895188267168998645118831618904445750127405531671596406383326974603501381395845656508102817970080616705834773981635934620116050578958166598804572252478932436954861344395062730599272456905977167434298902442647380303001810733711244691394670046423264327451766204518028941167993098408463537641673671846319751417361407883144296494217150458323813699100406851623768292702339467231434997575848810369678701133198333701522206587038593428120796300107491433685053675446692203244487378866896144406127292409394944481951024356756432657714426770848321522277285585156387174025810963348626973453727146414968054086406790131626691570017649576432928445559486378768599572762034784960255687698935671102915759334493919335101496861921113183752853326974179315598235687029450180670282288320945154009716513063156200512454960502214536029095695556274850945166741976808666808351126734737678098698063087938131438004195108918876605543530934801504766308450703758129771972913398652610208870602906194907557954578403324190879302141756269542225678603413620250598885235164794290025408543038313152268556344685776642895971652430167644588382562168070045506674475907889708145408186456892343994494309971321316735937335960077378560283206714783758309059221760989941080722824052856822867775301998980621954417524591724911792400098136275223043548643052674531863716053173021041368732702168373495987673985237734150123133290261613165830048666740053877837038823148074702681558746041441618610750890520319837115335630701913161937358491470511983080371784930412344388314886271057918633383334192978882473986263144122049191318666863344689782375483666207153691108460059069181265297295114116769046999588508092697649956195192488258806053906646220325913110078950965769894585607926293595897909129397554453806688667805066197185412326340213383813688768784731715780586203442229357866489847744367639207958046780415559860511503951517172492501399725604401079334162211642886331126785942831638577267136440167267864937101658678697593330142425356057943503734574643297458793238582348222656304073601386428350732589168893697377198656187526688496698757637630660946163988846653187595825805162624808569753163294289502717073280015004023001152258108799744013619215313190984963401644303437469042765080651990828122789366756265106469155238405430257350331701925761870573127922091119574204606806826707888781833139562364016766188319969515058077512187085221574256070887996429973950297004932917705077053746793446490547056292309424588436965741491663131217794108036260756005095271840441847846727350824492038137705448893771633061594118172470651505174116437345597169758807404992416282354098167542338456681182738124062119804476659263143394896577372807760833452426232748265819972001100750204919565404341877123810231992441278547092642312564564448195802443196530873448078994660263294609413963068558017720530003791318247915693890525573050336181070847326687665322225110843219048780865804715060948208479937853776024229751201402562600039771772599932548795585165364963909432003011293374404385158779645253097228418557855014168687975806535559436960453710285575444655429306624610766315141093782203005692232065098793319684619249581794541864414283785656852692749686652380197760491186468005762215453320754424003977347031300395961989273486746183809386306495960119692073435201864675313579530632061006552986082537552104391155706391064270611797889481252859440413038681797453305946529102049010802500026191248854196154568409806818130110154035382878965895678932327787352850545796005540116070402099599020260228353523082596208703830146637580345075038830734546620899041407761851859753948512603571837677742108354133611882598549259559647477464713886301432571467954871908141008990124975059286947543796802918990674329644548051466582346289815459691464643124653616419898141171062768178680931739163120005303919966521183529391629225555244005278382644256214641267235788863799352345671083329480190515997612984408186686972578422261461921271815931156442153777027379915856098972929032824299555260673397341037237122675220299980972712010076582325877190917581172924486033241587917071709351420874584258807886091742791672443363912593554563932821070115826468932871108018036592772813205792967524478818618065744026815608230827444469900865564937029532504721289940145222313966875778968676969097563215522818397025949819381619062870706007264649466769652962052860022181855364799574137068241179018902749233156910668456440913616253059427745999656421979780965108525819227501087112932883418362493311419072253205227917618422935066848845647134720828595107611322213136804823674616419345872296115701974912439360331394986268190051598371306906591704388241692317991633323712793471501845295652070183568128599916135867605502838683545243354049379562246689071488281915843487563159412283980846242628874225319268091416060865798054641320445366252960457973739885249977010616454290703059402916237181002561158522743473179718094053486646762998149397572997758809373025932784636077864973593205511759837602379207942691915305822041968838938775560659486212125742732012580986575819146103154073077035336238771665222595183708183679730381660539725202364430812653329488990741057311691670701754557913468222287595818741332446056224174187919331952845821965047845050855848160920209957575668750982543808900085521634731123464442969488769081776243457406446687931462257796798700106749095739891151821363471614324382016302333697447148370715697926202401782264129850984301633034437532727225058040493378443422697477474313760058050488491801141353803542902961531805095560988470352853447542382430512567095579839213699628398091634110602037716955917438206661582723823127307097778713835229710059954320209920113581663572000318603896735777108246466757464242067591844353737567195791784809678255474537036470151601875150021355130484085927409834893872042261652952934346628165173193811382878811400546691793998199183385628691963875809771746398407311192486192604846821590203320658389535574582595767326933205949429630264353464183843107599378136064879680084053831815050076402878044789950890882288125521112950588726285937567852011589504980054861308657415547072031803140733524550623597706058123556620387911057633138778598902007436604872564121446421667506037365962790563112819717680152091802898869612410028607500306424693156879541790903117269729749057872940069305810372395243394073978698543378712249418578308853033245754627777401932281853896904129629378396663107842352072052134181906034886390730313499927819792932284363501399262304792439200443244241417559460753555818712652729289987933995331740103574008261402363450059756346496266353172540179459174595600069051970942137085049797294022934507297213809145829862054732226312500531649134989935896659101852551228288341827072698994841915063589582606424701297406279646718746640382044979060742730241910232325534202372070724796124193640689430254092549733673228569742567609946453001551647987133773020090917866679652105216737915840414685728204116366117772438536249211190116323850200121205748399968597161954688813678783800126839332231908674228558988581046224589500647325599266990137098234422455506164313316614816957561231798333771298859793846315230604934985187018744642276069321292829876432123875259330056719099882835507417634211036052274934288721164584414012018547220487388212656117944577559019264652420537735560981278229219643738092484128480412952544177987855636782120804367608656400294115015024593975472688247966668082953183751842759528861583814531924986698032066410482281523569006686705102216610811397919582341256952793542508660460153391697268653917651684323713174941359361918140848735050035488801942369788516366290043997005908010938616422570363027719989394414540940267979531610471331793264534849723511305801816596830889178019497884508264753355741042532036259547068829296423007965813187240266471432529751959560413956890285397710602103060434397278500090961021825696945599861514305065316596473528672105635804457886262547897694798036025175608793502279750731586000480707302310709627936368571413115133471456350575482153893408137851190076823793742396467038525498553799505497460364824598147036524106413304741617866640563533635265644548164981776589798979257224105372231519264394916488397982167878100706498408893110987221747883525305965805099782134059682805528193601971188617735533287458570248824857841648361003865116417845617582952196378762137577662739615082467494451380376497582408116544741926877638773486182774593252297534146941918314317983199888267768351985954283485408346170988158789474861824984829407225361343227286851647127529157667310899741763446311461960387929709388414785344441066956554303632816873391611368468389391342098720624972109442758375028598054207635383329925887137530457671089452163679545216965989842371672930767644864610800291614832322621487498556573143903594302026166652896064443280808324204942062648406146338164254552093499970687254688262291451434418465526500687893916900393885391232373678070020138112116524213031083882067664347147941544341989495973873722384450650565036109386773162539101031755221176785453668943576400605769613169368746009773843277977410431370795969910716270591080430254079180839407148287193976294384260206470348961892834764673675183180203036014323465228224672619524359242333467857653556623915777581420829697620812971835126146381551741698572478057922562779351509428541948118473097960036064962185871086613438212723841963803357590383012621269504250324871343955533904997844767792663445273443872922869418855423214467114243400759821242450088073804513537975863262699808294527577315872030257107696643756148129969419717113969566638989772371380633711042715810429275691881061815201090836803368447405756463165472322675426979293041001307540395023759907026091505140476252376028205011716337574027477385969373972860517210946887313244571636068466752513354149677070205938845309622344090341085471415057351018070458946503168916800220534399118560568410538077230018051428340760406953685372921316729618204299563322560470928265664788936008100029950792135502191299053663439592284739732801098812299285633667605558754074484455316951965843953366727852198204091896984221449643938555974414810794092602443306162344373163014792355548761072874419110807952790266435214742140475768560457646341944422275664468835941071015023477684814420752459299896135902316463582897949310883379008954485180804740608886506479543520407134308621190486298711694190325245625376631940206225863431218792019756765473244852877313673528675699631403377665574184674718787112827387194273559322301710480488231733156786385900807022726824639053507200285118734418272329517558652054820144322248548871563526902209386741267344588148493540522539209823095353172183064523336690146228253765680692494077025478188328621439054481075654362382123690342172273086816944869524275187855636796105811114237720003504739679736231731878021387043794859637702117469482902291345443971110536868951542706127935140887272471381804121293023840534889069143716096334722693128158948421090293799614686119451481592482229782741142225601343425248120383241028538942619703731802368876435483533259041924790234480792176599019222637716447964647905350169236954935057118332407133943909047717780373334457207843207541986978053125082888977312035220736864661075927885874480189385379890702297351873877090130414030548203136664622058777177894440513468605391866157510130849372155381093455910314270223719980021737568473378901780341166950411588175654043188089843322759291899718928659722717351846290060029314710814217602135151914340825639459620734173254964071990037973401764686630480498308305663372226488286396716040597317833174021853032153138674240385396646601526154618502738387647176805684879215110043270855275843598996761144295957207177474844038941564285916318358221414702281711486293478012678606758255783028976764718816194353677213005124625594973617642570123705729031294587026110354304340530294754770935087068001817106331676766131657915339926018717522895864225795700739030364114269638066801124454501151510516943648790629042928459801702778404169014168833026895672946059306487966277635874091130772273210821454509601142299784313249801936536462722585113383972510242982838229000372931210932735434782932738878161710227676606130594227714246830157310858363353955860657718371930578988882097607906176628639830348661739815215509518089870725972085002237536388187668930634898794229295830340646287235477012943364365927197361427338498587012973244568098866752086614277140697575823961479456724960897190186017797646136034420068598817152757212090961819245737112906076634831326169328458138414806743983430642193737718041577588924885428215922680399625846975723811223357737723743012027444816421839702931381424770713312502113647583867518579887216321121273871600651487973233942006456582437493412987027240490147822677918773637079364280419670523197533174637415593184278214120944268649589800526868282609478090594419380052559382032743655025740404232207378638340122964771043735543832549586372380348551471568663730216957230170024682541907108188203378957302927732485364500868769069879550442544359168243409199214862464527763389442225105685126169536392800246642894266307956820774651054444247981563881374603408178968690547207252418218915735988451978440831238199221382793012697772969788163339735837672980207738417635847867446453830281863667181173569006896152305459460897713626040677961750601278096436417902621500497096648945305825175333864227269473732406517701279844273651687292119482480298402456749599871506897978403269517052256271016013764657332230505795644780893791163106028540729272061320359597950539147493675255482163847627037161409759729148682924372665191952736403643319325009411847292655900979586868805843325901531169026268959704216758236324440885586621523850246856379826075884706144317027847448085431429833827136788365897928122075563135459034543219278492985783084599652168554851213314420797344389392733114525169876358584224235942860251350948229074960278194856024403094432460661836950668966392349919117499733746178154826656222327421762021164641177444217988179945918296185822772212814081006108086337416745631890629509031573378723140378831376990875719839524169433755186582387896692228871508886311329413824440258937061904209123998849157224159843005518514570175802594195828104870762121801683547576811361226039724562317071697655318702533804731700540817496513599954245946114833828100264680627738924884073004955056857229429672055094518625957713568998223335170636858268650189473780409770603874909087247508219275871802342471326084332954886050017529535944751905028975582362694751611637205938780876705769651922422038279425793604003380322909325072034611482277547189193002053938246062872290783137671351941658935389676226939298284492579823424390356693773422167334989384328291840928300065298899073184050826636088639292445973740589133683280140052219530036811543765341499791340515033025515921427528786549954480149887921207057365641565433728224435649294017205766435199729431890455436338984427146787838011729251182910733491056762755881101503871645400492829200511947805341354004549510605849624337923985394599925794884090807318837659890674790586599899736427227306871962128754391715806402455976521024625841600233832608811644152894670617374008180678552363604566327431157219482345351784159054024243914795694902359034164226772059943486085012605476592996428508829186181788064575487778462943380980283628769368281914179693542464419190287060551281391102821970429061340661551580933203236892173495257451321468768929935125167496623606433668025775814866008573846395461386399510313507031853470492713919582048142938071213273319650009906691787103891899446255666506675346335427654283209068937958022073216730736361851467718115433590122130156382856438589964740596478387993186187075769515157627832900505439972034211679248084732691322190094006871020310786084452013185461153706855570387528883458862604977206286087393016879381265620320687522003696039667048336789152213290418771540838567416893949690169083255051108936597730103009897750839295297068528138411410799865466789103701859445066892319320071434093387823831083405473803094868235213789178711936926752521604422915557257475566957005676728433683265412883466476518818165684388875940434955887807869399678637870144937372715436974674279613088046820883716520212885860370732759266029302672344882053528634892979531554835334992401713906286818301910340535826615837580305965642690991290173020906139029313635599935280988277749219066210858758801229825795260650517826297238164666397526721700899464316654325766629659050968949696467762760256314539008171703187134969312114883095992832592702198235817087254724931680210708968469287304514899200118349529225666130290381399926594335054756674564616290004951957166226272571647609331563369040150441757197298346168128359802971303646524182411046755233879604332031342120340992434603807258765941206207448055437349046879309780218617662441117650719453137456157006721208716219673706606452203652687444073722663866562071837344490964392044863164829207514736479366073632088567792370098731618684834905380328117990134809035561764433413015003308398474407458520074612215870208551952506231407376750279293732037466051805357543622441181901222518545722464986121315192528284390682193709409796030806621233643025602446921588754497145866513483970890122436930371042863317935747893648237770189440167589721555647472375957506628489020122994661151778134796413497598426133890701420284299253636973367858483296030843265337369599295069355146016694645987702257272461090019664083566509741328118492336895573463808378614329397824106676656993217952406751277956535960799104591190382094813125306201457406124366744171105502723278979849349434345213907405882987836734530848691077680650926845781036257824316264461959533838429645821368924743526868232727149440192681310118949446896854510417080970404778602714790933178398155952545639633251581577359488177631617879365566948602185673222648984999295675538702680909918849163257430693082206315982694691941318266687723991912035471570348219947911863378395532689391796510392358301846633284928678478059039954916470656093480932161713173553861940489607814380304469383214529641547320380503323892116236118447930874650154901522072694480442365120179172684346119168963209804074463234985162834326428252709230945363440209900032109228161073759876008386983961639035937984068687660933268551088715905228573975825677586836807303044679159283816397691886192495137680576633139447725891632011218089475686038578958392880299113144069825875409846221390981952207076807709709817591980125230053619748794319076383862063090515857093557952924835374554481857993495407700930772238745126331317751801673431095635764966284658411703416999567716681527936110118662639601693725521474369128870982818739219234680173663071256479267661080705019055023286190383157857193042680254536680052774957310477875477320100890286244587516515379077760707688677151851150068714703918075418815342933156674728103765106660254061213352104613772842613238173464027702397440019281448533366527950533779805819886676801661245044464468288532783138893699223468232926335236392767332309189451744071774950195297952487637126213099417637678227597561247144810793224575560510520038205798578429655224928147561944061459323677349292097767601789710513497793623037915972851463616736557119312321985213903634188152359043176186258514058123004335322065054089937536044309154778898974417383277168545053140658410514599445694354486646007434848497185222173029801245858852242184786144504655760075947041840948786038155392242131335030149931999937911404967710951305490543036511025547400113292863341475135027217689126852131251091890917270572411522747020378222427227850318100675662267477206374578889512747514637516854288740076400189318799504445703985000502515110254280589525169506183783610742207779636881667368388587003661505277317667936750384448296330389126547000565349927165211047346119044606309940135548717574671688415786914731300556718097475585245984770351084828229687127267304904359177927060690593215595732343866056864711482638239733788023509020093931302005779205166063191590478019037973557838980164933661413971121344905704633188809504195886525095878316051716194466095338227666987789237905016772595709891755292691040119220630147542323396774886445961803202926077370791108176087093275489599761084351555701829332106893202394582723043499973616280030534443220399307774945537018894630565679165172480617808822800191299456995649948186920544505332019890903701263128751735167679771713019551092769078887694270236985126742612807675553360889090464311584611411945016109168595352079687563399561098744271718070914227032523038226015901697667848809346334288589949614816291455618731389210177983099709490397072294676194423002778559137211042365535915244446455824545914203871945841471343800034725942340509663847857010237205739066385502963859260995567000727660677814001676949808954014505519763498523343929971063393566380677553991646633091098780568106917366977525144424698020977878031506128011187040087018298513765748568908020960171337592550989705208390040839157913057623768666455377060928896760589504666843959629772172752789497134457425913860822882289029216752936278311001570456101233514202851931248366011123706006182501763892702591128119648592376107465174934786869786153225387898875081085353667830271886518786709593384860065158577447975948674728191805262207470754194272352496585211507041724534411754285081095888244506921512337269701467922107213655625618186124353569957340325657361058110828031041578008187225598139643111331113309027444785771541786429139044979760753524250830849067712306175632874810240951837144906679041979258982794416213511915100234785902192817373464030703434029660201777563411925119099871777293397954770321007578218070116530486380784352728515092516929334315375368840835215063827387754364493270605514276349443345550680995196790278887026737195275936418042553280948083733240212077734607886824068807363762736152124432077063982109129784095219775163935574998608421474494518674751909302505060724384869877798542127698683866207534806146016426002479780313415237644417831852617036178804403626596619097030207291330345524441250978039659714882039935965469872721985837697326693752669550904719301362480745217540283728809706873948928547732700040791350384409138911628208386446129649604328948663796428520084828058080985233923058805753648714314300773679837263252551978785529101111969643087637108395185313564540055426984224082008331263159022031671186087590946672547491791938267690926692562276322753313170615198628508306715727558836314563051165634632988450549099995474942554564351034174971082304961178304273623350977310900773805576717983900870398109751987967577068806177850644801376298177755496907805933550151554694520904568312775810904006277664239124345953077063823070142123664025259318688718273956187622105458561202594986437233211886812359079354397749834943778601022406496103448702559614064512900254307403250425170189126976550472539305219694319651253814340300079707489760755433467516917257869391180053457022925559777835785309920077906518831707127083507633473766599756630272582222537835201870868567383126144922989236962109928475359337819353334911293152431406631607588532095145623480129849068448057627069371596235585812973072066533319421003991883512243746309882678492212345009378814401697417665491786167450102701632609323429967098026739144188766898682697338865580093925808806868352393313729893458209684116899192875626978175692803993992170130437365070163485678338930495244476098260301646633527323137660397824687206125834335860237881641147962684545379211077672561636691235739225420436756075600735523143289839899063317817520639557191628559808840564565606190983170399471339504583209632370846622517516796272945821428332796904206738623078393648952333621503113465362803718012923596447625711738388897359416215004576284393740959157383248354090269083312766163005266319478685324649301363691161678775476077697475918876629034531085902226123928973614342551098700791305996340420630811254439953850824417499004125996014498141996375787828177602604048682070575157084952490491086118892141884973366159037857750880300463000230474011585968515303928774749780400008273901389028584002337009460757799415258797321561343045410838765317890095265396238855854778286911450591918781475097015072686575695092572119562545526339525604485703322725337423285461463523793000852631597754579175521022318288380810458535221421141473774204834196718491357775563793111170622064085821736954730940470913831895290116589418091102887932858937290078237730592147154178130656729220858472442562986733627341658735657697958542132905596316864659877286798520011875912534535070825468905044268629566672105939286846493985233660273084785433408378074716934953230297795055807422564445837128243268076686813294536286668878823852750156162780824931730001484830398117233113541573805082664795122597403400617262453243149600798295980996910654284177929645906114165857766921514547746874831014674103874582625980759842508402615481294173980388060797446967351337113716564868228071961979014844591835810919335128333413443907143425570161756110889189130391260479203334634753731578101865237682583390049948536857381507696599053324827709769270966393708954550433381258946874412190549116465385317290962584115644627834935806552824389511343987040193610284211958657264492275766562635974934391115498442268105079937728360133544446102004642970027210663937378895403327697413078358166542974804103816319508301344075094775085515761284176672703938980289877702823074270913406418510161830005616828988291682971307475110379803935532320239800164188325734298329940379526609001177511910952345149851751176966715309768978522191133067090198989290181657383679518154154886072894955928605813689909334069423263989467542739919716989056650589502622839700077799609530676613716715713558726085093122139385601385788821212739364947716062585799487863071411545125662046719074659690527493702844855534966321995171704574671213683968584561439877977631943306091583648658301547562892937184630214135792156718571049466813488908265269331338741327428712241765533117881568590232571774810205798114958140353527934542102066185942090500220356624371948077361880913618754852083580677488368204722487819455255072393138790188561823342988706682885538221291764961553321760124288200515052739621213984459031721677319198137490520667817300888004522272915331213598165799474672253736668848761292824980122925828800300079560359837125556319784600637936519717431688444896131972712719694900626965182123256905003421085083634508249093995298368680388617173558107606553392304778930547337600314431958084155304864492628359674409578982933928508956811129782295015071272065370836602314803952234464585430476899496161086980687934477238206281532211404213470605680916074967671399589972414775074950248260004905402795874729738171755487227575839257181961967767281153024016285318004726759816608460988904351267549572268326554105513575651209846565169951590539064575414240285835171703869367671459145179670731752795825175229568617889660762268320935616083532723394595067183801387092997358706906392564753171029841307432690831331733939904565148620806674573016344780338613855716059256071461948968260677784551816943612272659647919270839896879912954552625380035296885475338133402314116465757153170888268009017897345834642428601026752657744457941860060438525710491083989645020929302411413565845939354130037480110237023929833101115391349565118390313568321733328566617651785710211413024124459154142075935589865722877612562262997950508395968575804965284848841744948413711318612379698298143983190623523344583172778153982848550794870895946199106720356612095289137136612131486838928441714529203453031959004230690101411118505451785454920764765175046903110754916667294777160404278819401592528793896696118678011053995231244771620587047309681503994012676936138988210519989699768861275901403585600567382283142488568060478651058713609680021014455689826851086777205586033169738337915682399663551510987520029284454024846338117163244995349032259353660894852475849677591917616533876837970133076088650892424175142005606025214805451495347153786209430751389487974157068586842157168295531341588191099334340246153145912837997364355038463043716305141075663150539441259615570057431077149947765175471175095900964717495181394963621887088866930570000005991847356365540633290639471651532508753258074546039038714006631400810960509781677314029605997994595171098992997001929652653357942876215293257998080341158845460618017904834516056612736056008468947010931160630698368147846707885868704681586914710308781890519701385337707271596209373654266499556010027978335536888004881808457064542727354003702054418613797806773242977903564479210078357134195838719425764801378465922322795348178986919056220853857400239363783529283798198451305576954979898411904131994774244696676817702655405479269830312371663531998094068330806976024592146836361122708003103755170345611256213957812463238426448553532272618072919186671109795267456693638145320561510357142535328274079057635746381592788774946100552611673347523312986477935069294281968906749380964193338942112537463765424288714689925969353475734626733224441519603449871529163063115941812977471169944806624763238625092637784284161472418940054668364528867528921242141622521212032447079545164672241384310428915086188299931134984983903319920431456781889587874056730581400774185067240685873493118727186392317486982144846774526450180363653205299010085615332861200360196825453135794387656855277229295797558922406731142026007100265812582753831505250056021621617687572172996726284156881423187630913872603401370232280081612702173718625202989524597795077775533708259118272098428642669773025177648679421216347698433994828673021284252222046748444184521346897039235606091455272811323608258480872020689084081452055420635988906513470644021531334379581200912076408602879633033711328050439168864775194228398805237916704434947067162444690355422595861262084747370054294957094870379642949349959261421908356350265855166657373251518204172206527485109133339871495389698912390452831579207073718826510006796349275298255287919013485657369991688974212073541479161795095884150413604180414402158530609111479302270469498997219681882736258424674604455588673387330198265323754626849974494590003984337435045069820040569254258692534805854855538580044015175530550126546035262825475561415483412728162335499510908848963153962969353163564290878966963090430918821888716531336083694560584145108743418302109257752975625735598867258984166525654726059961615999817436402492418619532307482349586849416157524425903383919116219685091865480509777121930132704173204126827904983541776680514540359716856171096075065761421530869290347598027521372127183881910332173859388649914116451769628079913189272844039573982693407773364877313960437641422926354193259308948608127484374629769322550849302680507699288729550148674187336302828955217818612756195434424075223973326670031927369451298959458760013413802167739827134662530032770693852493492541646763489755521758974400698556096140502390965665252730060991452455566940888463406908846368358474034162160971378862764791023848135347356584357002938221084135739270603902334058782583239624348479855606454620321330202003682941902921615948081012909941806775018753955396458415432469797173857281383370828646338945905932203714648099611979459085170013191448099207454098078936346600136161709720028994900977865697919631835491999913293235055140216238556155337987185315401914603885080258645626183164224426515871730689661646978235048472418155234836162794524980750186718461821478969563630964124267377005112952528262472973830277636651446682240109709387173456597583921720843360796259428322021475814024989496682849581025760731286752358557213804919654095853122501650992688936082966070533542765139609646102988484899681755191580703259683511791154876046156778076876556253986844878460405600909781330649692365754704965936160858387029225452678742168351552902614519024247779032821863711846438299768588152137583325472542672283027866063467793590537578873257984595523691307830117250581027150864176758140353885135881445261837761928752341099906531736561779627671682360844286923942383675727746238945237207887567346022670889647500399429474420016982195069001549768915690954328369760391349341223069682631888320465821127930929351776360151839659714589394668622573934361603819330458602294688354413310004912601151370531765119065623994001907107516532572051692734499316749103122935368203595185571035021722126427482987003089295217875824224075180744063082766440613639879080510003315089075831724296849133426886901270769759930893800727222365511109301419492751628666707609679955737831286452289461168319979621096163424558949483333394623379154658472439753034243173246249812927903923326266857735139028407432454368785470430714056726570445240341277726753559497030212221581238305397691403782509679111899583695650565717302103561762741860350644047047558230939782525012279386927458885577546791971424181187957881566353444606230694023337304886725067673460359362561729922490358345580790953868980875650859801257937234909530394894539093722419510778148425010860390670626161034527012672288759847123076615604183903351483610856871695869001074035417275789894868509269530411694781921664471058331310315595601682683926481728766756636878491500571584655046177197438149097304220239253344130080057281327294488335925584746695804267449839137410088918415245655751633097859230225127555630048247906915852726203418171821380535316286402087668484354545691674960675404576073023973102250641844125419433164462323391815179075070238389517913351076424244066738542979747027130129301200824997389320207497318599722101785289162946130337940794453312880945109243223515848419523734737350032116781584038360573140976287146802618307963108351364227355387775527031740823728935831215263212505309375556964588049163644603314249793298271701536996429735373531056922815575867130343377793327113306903411945932593901787355082670593451688555767874308658520116749631343715219755770465667566409549545055306798552584013688080501460847233273685130941628813598245184588943715906936766593302552167506050561360234136922709174491185180370379661050795197623235702968364459323773235774014892415922015919927620564632368661989109276218104033547700631996702233045698748884233112567348781154525799971678094705112447460818818304062990447389595784042092477609750136605387941017756096335827343272341847197742723645852272729697484336312025127282862215194526365754607359165096672583698234770392124488477819351411121560232531143212218161205481741540409265450165332003172097097752893311476443222176235308776440633108678964539741000173106627856501291395024110521784667216507751629089311576910490332218928184754459941379443629499290244873302004009944575947537005322933317487551317544367141164375445441972794813199526219911974369467677790355917175682517476946318497236188995412049357212813868239321343804150281168978891064028452939858562341664586533539397519841564104842853459942074736949550835280921740074882431068558030824047777052511247092065787113625405694796013154045843255230548344588671017010745098860597439757075638131531146786000735893544071048038174984210146263107227653647897733011979343535121166284370298299901593012693529349960093026621904456412703320516349688560139070477422807356281627166949073349664084378599258539645993101010546158531932527024019608989956915655220754466519681091745527073660116739612990342404925576027594586371536495165470940851340926217975482300889668208518587047491944087939131299504988524196293412628549690194070223239242813002372133899057952047390943946991400534385369507275949247311215793538798801057705541581602927561683398921682565837793334985811245524000895243521936474743712341528641792272574315047539591017746410349760085053885943397949590041755776881594162789199528825844514135967561540885571641829543986026940308362511413942722515778502408849098129241801861662642510558238085927562909908488899787465628874668871467075714009196495390061145963271217871711415792137741073080723613156559356381781556761059462062797136589088383149048715092301813800260550694368067760343530184670960898489270032202373471851981841509327267165277618035100393659912473853593280608779383298815393899722978199505386956182633851303082710957131963562170810338644266313347830399370939025934035692567309567439019719011560765829185859052002944115158537925866482885234148436871810063391204900554578143404759949476391111708248667657229558855738674974325870871752252114090130127458488291159817463887352841468668066421041586692735419057732744830236694748174038511949084882746367993808846464389099373005839025895407606220971266392566439257425716755615779809091488194640204723799960278847761618574857153998511931895435169416750013423624328679822249808854740629462108211163817660834005144769721348745206125265078705961034667742303782425231936002148876883148291882122308322102460582911231469145535506373464797098616495052001982383481266299672402440660036757868727835515496635984527129120694646497613761921552977932483467172588630278025214322425230074467673419662464014748641586546308240285487716673367555760242961277654603095851854259073385165350033447063549293251654739064582703014705479077547474648463063705771326967945707587591761892384509834315704058775162866774765531402186691564181557307320335879353513474670246284633710616674176830214799303183762495159740807497193885228920871985612001636900404634380692940498952855350806717772028092337162525134842203135012222932409739532841630964650111572320956093073793688515178851198820187074644217426053355697564122047963524671612968783351523411452932125903249370943344428616392263592449607572961916866927561334757501391591543724008816027357488782786250044150592053294318927109463980298386805973751098352099933052766974862933527338534815667374783208777865337727523350391657754734630407378565632517431695323892285317801742012698077398921930218499327165168503845227410313875830708395869717617826797049790421674472640173009897484591787339067650742087769652832419956857156463214642686270330251143435067658641707095184832342754628132976169328938794549801247855831920400025599178203082825163567421764830084259904635306455410912716081889343612055038657855164883276246508610879169407779248615995359043008062158858176999966118157107927339850474725807739147093091291154831274819030457355533098104126412277318349399505357391307478705167174690878595052304936044742785771108833277247105443778223615638585007723942481369901732480127473746177520541472420247319158995242043446342389183468039742868973172339998684815843145818662799565870055958466666586420804629631148500031562421336934128510081976880659412247605683123403019405764553903648115358547150629880001683345393687647486846597617227650976931884841035400298207636150356086385100636634511052219282737201913706259227141527185882320516636868942531656477420001669210610660902712643969899483776052130994936509914273668537613392775970231588745092238958287725625569650265382598366737809040309475608669240056883882973809476846627090311441474481103720282269972299127245132644510209119206930040418605597777042261557392850247369580486383021932053610528352067232295732736098044899341747147535808888235815315008504573254935984283469410982334014443504341121336755416452552413088218557969735382084539878126353601411962371426346294788552527933092531888149395248772795911480045398097703031792856269571640967174252396380069974437201863069646896512004727579785129903842059795871155470345293370808449062698478862602243186966576562628905233621840323462831207584879120969907440937440362658381019161473136813060169222212608719739473319535173527966631431169954130483066447793675063174006814154650170003687798577601771555364792712695114278862924925162087191623746440321198043083195677571479305867043889270551678028792617021803709936026857529104947181327573256962024736861056169039589930082552552113300644113043705527467822022811887251957784711398489771209748124115618052719485641745962873449484230717025014628214932916276793499035491281914031178404865523117971742368444539625620220971866392685414796134879014116903492129919274047729219897627259807546547656098202750647619225897040810457526280599639169452731924097266941979651754364910544178705926769826071538871095723108663941575405856978880968774405505495890859143353802577085190383479023007237345935024006229735011784500117220185009242849566314980130436251790765570676429931308888445204940395423204073437592132158221711715915023959737485289581690529975339983316063361925679249979016701184584751577521812136551513722212350382865987131285502447513303197399375224120043766632760838123407294120370999454751373837299530453837213062935613363457785826963375778655478046209623621108059610419823961531008970692883668272245813686175391334651780646351393326731057651478593524552371762769377015228413440623679025940996010676759406050577854431184940780732356468203296771627522708722594573399620614046345012278578667759631834016093554388423201459289055641219987301291942735817391687288837447450266021518892853465121793363865667099445805571042070217501067421510998202755655621109741582007354671079379662682428495566856774333214700094704677308680368680760567886167850229330124415428747711585873843389527479819689784109369941370885573020222901462664525183620377085019724794121472518908230203828956132409916450759426277640071492954913418138537482282576068074601544230104899975270779087263999997758593749899203959290684913937550603552764434775296177587339988957968671230097986587821320965768955004388319871004504221078815988100834657618173526917565200945193889509781878222344966453421378750768845389882558596895983291762544052345655795508569952305614239784255589577070172223136963984251880867147493170375241687234648431614891757256387322275854913449600366382374405852836170143393531511260440479098628818426056942709154402657040518374649826271872403472921395527248418775751784019978616324586127471648788221162720318572697194574950460673396551285322525258849668008018915350251927003397642468305181499225448328165553198420354885406577935386473988095170709844729310063714392221217020896212990760138444533911298692672922022861218583426112369133058205021222958597121449534353165481027174462900765392470174199248926693396305325234378225893488535911491003539292000564326033221368368435570529894561796365364224488276230675587521186522894551736415134642880413525497383598886245340923812678421297250919255484987275464542878018027307545483132853220099101883101901818967530264490618779141109233702817356879143631673142700567107161609896589396912041706737543841914177580843851206278062367107084718813535437430522742331663510520523910844727730048478244073025417903775506515652737908279369984383187163220024966342869890871957086622359274296497772185167280198126133824512567879449865795047700673451483078983939560636226257095128383648014277806115612346508023544649033258822533120305488557115143730381124597825535419309972116451105580713828051150857944965168545445140817788371735646561343032236196013491544787569405727427904523315892617824231056004761617599116275208455605117618398807236996542769935909208187751681244884722563968372846840319269515757623083691610811082073425086535989359962777805294397713793014080764130296755148516176105290776881510972703520760613169066557204450844953089053520830938018355493334605941211515919663660385786662606784005152061390695198485326693365613298113109593106980634906949241817444810598547633217328653118407979607860353106260992638965579967465919577997557928571602972413786506194462887723094013815883824730909000811733927248013809374117563036058545865498850120783112496811283810556280061790464939587313252114709793334260877995483591845731288743042912059210759781160291037669005036100989644760621453875209898533631073958861435014228011778747895277620623653782013737521466226929009176991137123400431038280252705954312448550265430380045328631618883752834623406018106309939466890448855841689463421385886681830851068593675632447778035913437893275422442642335453428068185776647711155122340473586695644922710322339089081853946634540652051330731963315118277623162142174687913236555199568160152855874212426365328520118434561429233025029056643853428099392032344044329029085520204409200888314130674236638449653852238617098045838848610211063890092623682858199317377109426493398743141613028874293084636628407579681311545543486377408879072509201460116503592166339934871914055131079174576653639835967417623209068721706220630451487150627924728416736722592790638648670689014253886088696972424946147753132721297670398664214031722614482887077898790530007351148451053569031797128024287856481981913916002314180322031384475300728416129966567563324326744553319505335484616749135569931801697891498872851768468246318200579944662740860850898098825509285554301287013756572493341722993347830745459911397581972388352670809703511477191503860926180887420081776169523510567022889725040304585390683117369551458849045383029849696701145092584356862308825568615591162430820854028562580693560171898978059022057758377106211344735400535857414771596125118997408439300031540440646107316562044171652120805965278763318303362265526119660372020821540349606717645637205429539122550190677595038679440298675033563884817407362392777369336452335078857081744046624323979326087667037964192691494149616858168079610372310752401360350788655573939262666769672912730553367378283127501064359122130746555487265642366230287361992156647542522223149564603321397163257021767708780078138731352165326586166343967719657867059515717621698751749755414615352435005819981597190894051796814495006812706167621859342735226412681361182446525168598733362467831600087709681684358125754699491251390844149287985758583811846076096461752812264211693079415506758298744863154584166499941274961310316287214127588120351483003826142520368675562267577709853031630662662472479072683580081565797096675846200356597353735339790726968335032640340236871257727455896355654347316943351273091257703156248542159763191799773222558086907514483980509174323634176654399037557872476353388351600933914462131528322801429521740962136087497287434660705373787640717614282253656066972032676133670119297715373820946364619084778734843219721348996504522117776733594652212379496508969592412508369444520136855062677117764646132204061948034147975817289058407968857523733145979676096529397093453369741870720369077657429719248383900440236205841805814664918185541192903620605563494658592920807959703923604102496904164517897310541538148355720484267997630609874364433293665385689717489143575743456404470037073907166881595307990649006486814161698139808233878862527398214476807538439830654076906861103256068777293352334297466240795006282361231715078223534767524499868617688988238213224651252445378707350893355756543929627097741811098215020752716223560188388913682907876627954865097138216907794544872806719190780195288025658674810196851077642938253172835017773481211305707324570903906724704375718727311876184531981830995337177754801243950393983609929410779031238411850037816983261030007801221623961324988871722608031505464577474585934036226460019222120480619827926662963736227264699596005643526885236604851204315115027260904896476120095900220247711521550608595019311898153435945990973184093366543714403362552050356463650102792619202969466877052572682793635795000782245111615587342772720265664241362392825722575449531885892388526112743897971210618032679643928418812695103260777526264182469948851640234760269208716380137104441128596928009663230443943704474674276743912929095373527718671509634031590323766482101924298566631937754071456593079411397964121061148626716505095735104192049672975612985127576762507778554757006542873812677433580392783319678163934860213899704717593005353278333816694123276738460928970622303820367763816694361186388634529001026172431018715841270202759494947396552116324550495711634831102726887172646619317506122293138353481221401124350343049741931605245094515094753152213776299574796788277385740692659392770029524331930339413219045475039502216639544030829671817382872452507436491370716335002385976743836066456025161828531758944030229976361364575555902273972736686808948109820908539014787617936515551501366989327380872361202560577094465291733328660051535255952733847736358137323061367548778849492825654249005474515643945323533359513193782563796532538523033708294768509674769415889423858168612520047158645088133229893642623930574667040419823118594996134063067539073427713990201541025964135767660355250537930568651472688736415298377906846525328477377291462437390858043581121802733337925536006456912833680929914655601838121946585503965957837630696395778818989239060340208039485207813246283613551743164364966208563261068439036514385394336737515321823704525762650621796858933246441019318169893002869777163676689828608612840750987688929598299482761635332195318790757149713842498742595291395247122787708207018083310408650783145470373868511478638450009167073072817252567182131262837537764506133585926611100172409490514114600940821720852854162495139006262864652651004440710098649412134761931128056953083732996883623037955979810286434180572358710740145857427154360874420602318725686744632473759749523841956639994260698294867077935998682665514443724907390708802174626934830363651086217183339608099402869413690737552605773327248756600821661730294479180298393962438695511601959477462026835279937938938977495020580920257399181492242330611252216512986306898082091686472965655038822368054374470614389182244918457292383845034489012838688275509886998069936568033709957040400442414826702094035247992221230970563945792458449154504914159924186939058367419223772853818260290155563186024082853620891862672959275104150330928884069570956354302894538199670505334457570750162637710416522610028189574953265151217449372633157187577420397002684106468183816771374990876274472789873802823818163676130231103226910507970765080452656595896050478101457892049493598447359654946174734259224487305214566897158755157825061098088543791273567547039140198156577652013216126135878295248892739119411362237946830812922888950274230777414978938389314847749849786144473932666052400555564153864434062607113519960137043622291677630983328746600929137495388995981988759089436669376823770630123970277557733655570144078654118788216452055811722506338395719966829861977102164228201747807148519311047597759241771522842173619135082372500391968930796985102427409839146024570722357353650725712146802322683195604234053056756416480536231741055891164856162179174779998322638430083172891139264214496686763077156181842871954361050060850479526439677841443525861360470713700630609293248993443655447765256900629292476157237158500369737377214586532431869903909536108326176471079466202333257533685573738761581605068075243519947128048065087700698653277483123617676797919344140157185573965078066402028902594921385795647047018878744246073539520009963716035176834655775655492434266260111591781206040927549952271989762670271784936734209685013734722960349109347529287045963436667118934581698864909341055370180406199812833311888731805246714142778780306574772371813289065750627517033636463852435135216356723938385119410936927608535866374445795059758711724139704794562541501478939746510020218971579825519003797395218430541638047079129881747071747292094469488080572717810447352097786718521732397748029720946841965883392801303198460068725876618146551503948243589494709343310609393548750272141330537524298043051595420232477182225632831541952974167762461910892072151328568343866206552675144881009487011080619402440384828041582525982439802638942699619366818280669044283477251911027235998783303113445034639345374039991349169920999583567678302023335409404201583864843792604122064575441660144339507900098673914462575690260830242954086876734101285759442053626725095304250112939125706667744818004871099823750486529571964006276275194651557027168095432004670677106907389062174648074813755528757541673241786580306658575747528622408635076641852249589845979218666906704222460155233858661718737328301728173097048014044763085341031795646729235671736141407713308707436493019295714177384685106006842617165428001542483899032252145726465901111967648889880399518799346392581505415556809911239895467154557835150588422780931114850765596193667678218584074142466313443179911541714446054203939163506251108238143846172808972642612621757291467611447427887318200779057426232305499209555516972074913082427036541387890042926990698886646468812264790814602728542919779990591985041639651129744298320364742014004435816353204881614035156227079323308174583008939270042690312760916741225338459069112491393275094996174249532361594888671791224712230867516001011096914356437463490251086007884882437740951792546764953545460732843699739795926418471094264031163753009446159799364811158340284752022724906219271880576909803755552687321582076145854413056827347718639084076237331570020762553041245644511939112736879279230058031737633582225617022552227202841017873905312354287171728037413082605823391970891788500157178062296969715984068517767804950716551996138051722608506371906448353314066322077092849601328359540674603338400517481579939752743571574364276770740683424410438805821720511339628945709676685563221811500118303611541663261169110733755577026119151684991175900781555844940656408247996520713722225027325377141610692254925977168864144023055590021649809511304873450133814729444167885988881185467127998152496087426816051661492989828313326985146197191802469974934253785482163003896093162580102019401529495288045378414499878799325111225208307771265739977696822240948145373735405212542894761442174668534352844037584080585302721262461386401529001897141177580000266745198700980666383042916028355005185158670695679876754949081658214298743603098952018411920744464126684994366588280564072502096560641998923240240217562892926070888049544789790312065011791446093510982967609563383917675227808103340521133451368263537118365927598347933083106743767851940403838867586194949632673832620387098998911397969434447228483911529735525029571956137976770370437140820261154697520379204430468385024797420753371063766963152199853692186097310555430047860630327739320876714678775862759047374070418872946473272623257592510561387892338402221334292112239352910565127787506882015336466682848843092006751888607055848571704896742057978038585141019732289578098025951600990573583388688964582920212082816615698573794095825458616679114106266257944197912861727136655619391699440650925630560396469495896885420421708099736847805975174165369520957627635130074174555891820229908039089927378165060915864966320062436154207159499758701010806017661251530454491221820652659186348428290977316589423758184237980586399331846020753970836255014839081247311202282764139774059411176579327445288146246458268718374058493377421285127705885794882748380726621060037113212401428025997492373843563188250385711211842455696482149205151011597755778147366500036844273735435175410933418193851229132523611680969945358008098010394641187372611144889799295505388566183575838607624171275170090234473029569274061843740929005646841790088649052977024203166490987886122362414531126933391518591241559884554988560563157304815149186432784767576371297327639697858336344234089087504539060221328187741844190602569298941816868370084286700216297249958398882454353749610954301534161518191217725719998872107416288666355394926937835921567592382210364809692724848036688817669363384729009594247492787687223294630099650675266495839533038131954764011819081227130073236690620654555745598852932907954026722616635439860582310150570527294239098944856326444096832139191852053663070335467848567090688637989026918725999478739444249845140775217016154158795164581410139180021735777082742689314504735204848865143088276788564187610850653364932773077208663840633273899343888874669352071700400735525584280215479673172686302318096421938434170042226984384814613390676426913773519021224509959865420439512879260548911074718047620207751157150901315709109235794839602578597299831023623263158619729112097855452419528388375742262714428697958711393769832682880321114465601133567842647046425872663421997577748088194670921034704700309241242880135791656699059654626127729196613168505557099536866203610806241145703661532827093637019551998359084559909444279932981783919866931697610450956096595545316747239640300729831387730290606313918771709465517488978444173904568317126855645055817650443762614709769434668462714255250599855536661360430458359952044892839313060039702908953140718683440075061645623678993985670914945965630068222670839559142866114948306392116933955585199479153081377405822856383161234541956443625569405171825246134118091192958338657680765184879285607256540001649816238688792811476410276241060830903669652529404617485879456772070505844348567296463959037264073012793816361621393202837462078608591634479272012073691152826840944809191375705681419789738118216900813758504131373849455389666591798725390034358404139760221257707691968424976092742414142930798715696396823626539218377438785278799733317563462142706307605381932451489622427175368516128278261131213346573162568561025683985229174510747784126312622369205122398420806602802994747590609907125797301922079465464143345406508553333109829098552712343913234520185991559340940949778685750954435165685885661736300396233394991861074290807857731527747638521196378744294256751995231158667751768985852741840982801866348339590252571053367977383815260163431256203748094429304520825218800400355076408282145270590325614213715646761720637725920440228077948445643043541249629495114682001456051460494349450697171189650849140048810177679150426578513194847184215089610238459322516137181520915271570712659634663245414430394500019550921938775966399081757294994559720637978544159169613763693469029341865097816259420497420907523091747620786927297522395535899758720888866088422558162589760215774247540714345763604810002130937040846906795424305448654920046376262800555223707120341481255799626416470979315142684575259199991100366937094052101495671436570586446896841520229032819352222403951162663293137430154132822824895762668863519883928018977327920889599133442074301198312392973520455148055354053530496556239516238478445564076200921244533363619056041232852578894071758501044379616638345002221234475729489560807371171624072003513432526608063123709431531830142179578976390941620521424728525482704516570057980959522734599415236487287933624398409503156178128071705865345653585874107138848028267199563953901613799207276565078216903123114720314732913378144775408779856925966281784711475693545998415593181869948164144163872049014162842034677684239971822292564004095814321805891857142332882000701742895433833946380237246457800243099571938464370277578336236831226970271013687083801062694079022466440327526964554716055370944551509790308056723941405652673082557617540379473780051992327816741465285683789450940130081565040953443652139491791870152741846383559954481508708043552854492552673267751638972442771529426976166154736856337498731514853805529380594098480204460121323635902754439327142768484293550890528778719162406235001441787667768106700459087231203510007082018703658630663021874078478939133121893910284864005211822404492173692323777591273158363827640119386800924449752891687349841977417928246556313219617270371248908926187785344200617933847432771980256408788522389002038003179968927797661140654600786200646908595285304986044185757439505408268813113120892331152534976225721928064696188005087430868556648756444234802067672826876771398857579709070318346487127305642290370675604515267858485968844924358375040411788877880490874651858771901307429462363808582778285155763941845679535495264518593149657430256144485266748095932664932578300777844948240698032129499480578140925322883482817571462051670429036742301316483001541455088199880278940705333138443628789488492066210799103675323381883654715887634044512207950154471482117070261092624267719666823666767215818481028085042237068078487452290129222140624240886172109795862400750046998397786223474114740735753237462913000368707949810219723420214350306037128326727874856217343642043719795912637982162491876917693969394856544150390830058451037962492983233045913944915616817999024901468003459936992822463317519106826987381966948622469903485046133472691803294154154057967963627851389572793840297345901310339675920817098712560783114659272036248530786549053165077997233451331083692547533778585057327753681775628233364709836663147917639139264808937106598698081458756109877522130087401437384201245894666725703644355637474062638673768370742991167288223238215040113925389771860913330361412448074349766466309455814090644501570180972667586749773912598331514715585386806372880132547180168293094018295125606190857583330836131039477414989262667330664092967263642020369767747954548135498282178904080547190289887732960780717752563311397597154704292691697912061571896715165533606239796560345664127039283283667762389631267010421290008245919909550874075381974847182400065808158878843506884054443970123599682167157831237694608354663135444610152513285105630835099749282129443894693104945339663316846822319096727878042189100116618706882967166711473782022349817219505289651632074853017601865542551351241018470597561742575471513063167325457787965533610551436766192128808238944298778311695741338960799466079768446771953613968786491330745177207987435391967228500862785904160481040751753397030627539677411272461538025730909558713479558190861996525832083270131234998548706654282251717885154478302628543640754876647978767155537331305836842670837506288380452737595516946229935339257855653400338387347989663154418760195239293402073605364337887042725288052442081999042631165908399946750344809851385014482068236558836423581451973021439235638346788953572474456751134837783740229736821173606597900881960222321672274716219440690786843775512055385689277690114890893176249056549097636768704109502890643241501441711789127949927208804615154851060423786975109767483574692470719928632731600608116331798329201649819371428559477470637673297748139168592844466094013601531217393017200047143331233019288093740324496246344877257537093967961724649059315758344320764137298132499410259837213065145744411488679741803847045691340975508650869224292896865316773243731035642142470554199599977830718413424987292477757768119845951262911857724174102973673258836518518419540087311565970101642485042163688339492431409165889129424839166489092526351749125505282171873442033511961310695654035032421041465523695461016673482955631474234576785108414997843899900771160130896697149705627969711118261863457351459646385552426843980402048074663198245230776166551815123429529287206428665636054685731252900115444529910456723571650759848500463818636663989445162271316513339691726830258814351027940154310430534541945266529292453674847971050254313449533278880420221371718945630086412045973621615836826936276140430746630845476448790444002734554218478509326611412737833642477692217634057245569561065781691955286121394281690810544543237077822222764842499144007026921905304806967419729074328136984985090010544722376059842413931730024278450843977359256350080040630193586372813943896305998930006429640370328555082263566903762227157099136992156864221823697690514872614767782554331863862339885767851180644031913438740802232514159352580626106568762080259351847860714472992236321446513644161703380179753325698800098773087980444220666303851739467218193832856137375243854180986604019320616161494270144408763838625549570140294549664668364141210872361978231668534146760994320266681958876983242297984917088522300437122984481732766317188599787618953389613569020501534603722691784165736767330934490455920792948981940876567713380547647633463905724262209529271290432668550292513478656039943937696793887147693988306702372863689811703146214215239154703927604468388468041448927211452884124733743240932402344475781929435815334205986160381032855173490888912137195277470942513363768464139100916449839246261208298374117288622151243990893851013479477647508648935732894752873651753271371534041266695303179174009844724878174992509229741850617623111309578897523695875794041922302217591931276880402805655696983417572660506254190527052200100857023850164116879421831955077392031838149426390021798624272319544416219352609702313574973780402217574915221572346850619464290607504297969800589049049852486083532599115932738696662495935122722377939426590755270665892912670457680754843498765130747050615355350085539037093848543054625572543326114399289531600246112930574974164118863534144210222710910451760683289624775799474298917317901024860789987183075479887600905926238732275956462668612983536498126615288651473917900201192591613392166589585949557405213791614457291699921673949567458182085529892839398306604641208775280816031175262245444893888121946989925704529547356732207931558892596190103818515248560479746856330360462629856982700716536058809563581811203631232340093192903685739502397275221193537157990565459288234864146616334295798000715786040619718382319379342262080790523483876021526162513816956634964486845986641500228467597545868451856324601275684642914319227362040678177679221971091442993771572215044251628182024855009245516913172941951075630395684489232169850906608896298795039090315895128505392280420887399119802263673823522798038540319349665053930580043540244286351220160187603803370027770325781000006030413398157204848442175751796224898925523594064562184049935677274982282527473784662810319778385318352105231279433909565863489636391559373986176178574837764378838526325693129439130189682161780870436796888635563396037207810764119031070573920541990864623215175631538472582473629527617530511197390785544447804011170202753640149876314818460956928572951508763161933410261710789060126645477424478173229161273709744879501471617589924168502281921403542617368241823691962383243882604264493042083794054584154242077285883907717520252627136720766020184071382812328181663512334185676335677764672161439055035946129177699959166812028577406790040912367989618659940119957022896510043788027419637781221418488494547458800973448880876894614115921307692620129271579983277280206399656244366909235831846641020793715303909113324531032848953697610647694840031431304974654932287167416764767540203233633099335862688864547774621013048144047108247700423426422419078069345995120722914736215357150812402251686809420527863533031014633013188653996806068775618600013516159748727669048585916579533218888217540623010939147761238336423711830978818752588429138902872376864217914132819637910195609123242711629345903273475798763242902752348977466335763063249407248958893885432238732545430522360314834468797079482667434439801982659370655744911012484653621821760412414732017132602078177219310298007266240332917862942204383971952862568178597226760373594489631593557702052106644533069589846298554850332571092177527724991127997476279592013470473886607290644120986391060214005558656812306072607265029604464978499659671148254057330289394315432713314862845943930463695557869793524652682149255791873506688990077075860416019949080979579525562552863079567694219179921323886894080808608920998191472239384148870645833278514503882323720144608644541376023863625471314523736336367280727988846808139535502751016921784133335875552828028885064229388792165110246081469236350078723167622265094949688769192577268926058179222953449825332993964554670526344950773270802712490257737082152186939173654160278924973265656136109434763701637756793284794799514020067780797278971350271729116266902632393784146795937215947443174173142495699200136095850738131525111767053365573709997862391888487452687105518836101994675737162021092537959764761232357645541587202625769766146941505489405563958553897786305130291617172944212046667730876388340301314675271245131354126481306253369255528101955081677557159238713384173507786810729359047911358548114697835455739259913941758107206777609268870791453143305588939425401530735593270670248600998078330440875600277856340795543786724851973740827564830575329135499015518064175937126396748663532912916446100984474007757971802455564001307060209485713803973339872715416026377558415383125784520893234173078711596488300304288278113805555227564318934892749827875361519185475999085354545228945966181111456679051321510814537840203179712628628212999428535170978907745272884378967605422963330360107692602745037853282093820980023949487358065788419837862036237248897674016037182822115949435446216526794771039469306320850020553045931816112614753492124027140907530118954639860570303619767916776239524447396376831733018375347191052042690728579536681510575575450248806578505918851855547203253608052327532116724948937482373385700940395687849524345062641069675808214348439188266936344826277465200440185208554473767390553140685666954632395598877906849190156142624882017811701177009482836100356517447161644186516654074920427666969299273790322966671710175313873153455610514575245121304891293385964841471917675978182126551780329092581243168761704282451212368277045090676316652663552063891701751252638305306055965022889704819080550883573789097815721210096817095387406925958722781018433179484843351918663659921079101368605444090668982238975605730129128555643562851145171759757750339845004007681971093857868034071061981243405978261841162197379191765344046738909693592626704817678370315138333112028991001780528040410943741544217126577108628134113912588196489167062953359804283153404384120632090287257962717380409183077141007047000930451303006302034244490689096451930056088903687943294198503664834214248578717851851431946109837198993621012267224255121663397091361081972462264047352995968924539291122241312630580477697886774805371094481450536351293485490735693315476179950990632445056421561870121906378932390271342337742668220993505242326333512877269958200120951451078897976867127917057615596526141564378816527615421440500052667046878961650796145293039549041508812846907879801094730711731412395247611048837553885025323028284091019894837437800276998390267404691435530781047063871850517086437816511406779006337152549387438950351110945575865733953289455093556962725700641816037671034390968947292270107206254571338922879327060118344355635875103345225782186049761905330506590249049257478724839067968225874598382180028510782523456689823150712845782751325129783479471275602086975605384110062496302453408524948848784132126295330486291376350065289695246253818861131255147827271057063576633440618530441286208711028820563736748092634847279775992700408892697217479528800216323512570240473868563940323558059635787575738195470741457700621289805782179829718085409724455129565477685136215628349074376765928024519519933059330793975934634134171665340958791859393914015205185133119663498512919303323665190925920961370791440603595488706664315507706381994418063241471977334511235655425606668699759585852123574851105949605882917560797215601344339737645399830121321973692747954718154846245090539459665943811790135404302838662458770069855635530312271854577674520503824165154085487753678307701726824175387804728593652222524429202039710348389562619130315553537707575046482386470482251227191241610226531230915720117967469137853161990319104382960414841513957599908331190213095323749622225348590581073608311578210545807389976605137362084220766040857030469010853164556990691494529248594640145675550384637803400248501327354469850684130416473810520804369047456881620028915416849520834148081884872090758736408875952911848102922149629089950786478291077693620614819079576413951085142451458982321455998737308766469323944663728833040952770518460999833391573513716417903050741827642900655760816888160228414736072453444989692184387425951416883413097425618758471281104815886071327235155823756808355850537856239135366715752720425048700059689401314214317953486645286157724780254965513524865094062614604628059053276726048618022231494971472110990054321987418936851548259451457483963147402232520753351650095978618153430465113764491758104059536004011824069884740121988359199664998675841421068445874339363079614873790809143955348984259446700947348010676884250743188933465907981467000184368770769806466802246166902615655239596646727689978406171032455642644318177363363440438212021913053864147446428842935609779468134955370613556869645601456012278500405376723570992004017477461295436502145940815513118028413173426539419144905829781567575365041533072434662157104665295386063799663078359913623657461391591154785656523137500371331470016766573143140492629216753745653703570416586845955414073481664250150587695675330311980114442805664338395831049064780338423792830916838453650564090981322037975927752534627752986249319217319395748030450562610415750747814661827291184777345787524723295769566136880473083435145484422101629691434268715490802514313717373066474420111704331040343338461356435269485141382126975484898919263331588738135087421429861847672579713227267766560709402250236829406035797942212666711959989194835306363634152081020985727775863879069161203444853543211442811969746485137999855050794488177194694513470538393021943087582957127008803465805642456750466205609269459033163275016789429976045045121173148421374419881399305572943871949686029136198479766931543344667467630260743237881722765881705742400842562988661755832024103146778796845141194251340846902512760289741649966072745923035400564767174782782077830237898980535632574214207737552732356897904623765855147892853824120971500700499156522398703268523687326524801979176572372710746613085040465323782611267005253615726951244599299890063653121589250933689753752511474359860004217651136624456344381585752327781605396376507820301227559126411262604670984660917927764071942986724079932767647804303010251539887704767908281544914233341679683520485958083744229468025586504922722392436183883132664516253515532065140185624786701801921527050282072794967229235473018518382723687475810473843098544325023210542055334142797287864262251743573020772870749738768283590314324546509322034283843428658607594691451301150484857479476043668272061837053879213374600626978966756080550202909853843794179558874990468776402108378696299400210697010476746187774651081350817541212811791552202931338823522396360871177683406039480602722185768877850187033049317827056584195126626038666638173706041941705949311771490180551465184696333169639013770644926018754234926477719114792408662864355755032235802479677799154918571753734179378448066510857765654890016300834583388628166998552234852850066397925015379234143012868957441665386292791554975984034335849535139290639564077243486843819503125426029875094254616247048904845164718839458588441968964622463206960456496488135293977153527624643874212488794653663465410618556708642285542137965832349624145448015771016287597011800876498200185796232395623165336306983818327485755944772471758799905983597876547039121258865313246885255609054231090574470178291920734952089431418340526067900472048305895351537769707100782860298462695898396522198281510389170331256502769018022428929282256706362280989687087013761841715466697127054929075340480241116048264236398222062277772914011568451537624698375806951994018810272339594053057862962615675605487357373806096990784369776631565170441468068076934426640001833256697600013460253453087022520674565669064935911815723064231193303305957143138277293891816458062829720320390331875128668090302265020466823701734803838427785507800168281850551679927334897674614390025295336341647839931072825210451396846094588897639388545796275253766960200439766292159513946008780875731267721952920936428685778017742858994947003719531870970425941634133619972446051581368718037193890559249981458664862202401421592920233308250229923472519817268679657150143824630795823616569748153127452631161532721410918979852634431434368213101976085579226926569443901269307607264265625654385395818652737588149027093401563804011230654505987031335426076423377405153757404233152902117560680514967714804910395985935371720901220536086534480854985920060940750638808570652043731268183511237982475735186725766849555251028875942171752090600163741527758422174403176672066594209485153212311089684063297517033293409334515656024994505351859081455294455943497652827712729754084832683542572879808125855690455064833361232845204040925590087158629892765281046956782263167628701658715257690464131968056738065731815681588989298192809141412061289414206078154407260178475376297248139197822358974183407634790378423171886852839012455979937785808586540434327183216453072559618481437539166228372349212800277762692270431554359320006227444677694904718354377631890523997681316822911091084474301549230445426347676403272445609613869387621740663623846985363432909732542150450359913470060077772883108610290473803237537046724167093494419488752170776670776658782751440027303067616188269806543828479784488135419572559677675118522699927925582722071723079667763780561986293701613449587835948539408424252682446964550569242539357567491085103920353884722217030454972641895528643563741372476341321030825166173357253631002449757269311801164587382905613714262992915918441173672386675882325273554112731480612430361099409289596954280516908481802566384273730794628642910617575665452439129533581356462811966014517759237242003286706417657723001438004797366948643432335849876194651320297293909707637937387930662309869741700040157411519454208521214251534583700991831047300643021121874972128455898607012527886120481797351463575160833435471994417339148432974431070549188938599338979613231449918334073887457763715643696616612882218217872285007963843149126023193096528810558594039315748772786887010788847744919926513984975740272232735878720450338703102646721109433469677940094753294290243765970682476479537790932198479739220854082542930210172049838939104142626922975627354250848813216024027394043893381303446740843485162619534056027236383557790062991004849621904653160201289191054633180955673077845776007742639681760400995376150167734866465730964547117155428946279221854755675990671365452528418363943364174868567126972181500173271887640414224325247537607446518613266025569486174164377362200368792005557050364303394270607562501887023918683128332959387218462839967327348583861203155443404061998382297861532325221529259695966245822584898221751796248243868440321848772035068759473015022423742978559653137845720553508435893510161729049058369235295219261612000846284260682143803657814848962111229204664916541175451189836929540494843926167154419628165834147966805460307164547058981878874366775757281968637685336144417667101863315193008701096765866211444510105473281870327689037016317332219564010691641076002856774419147660121412735018130390748687634675086121489578081634998277133111900702349087009176332373701740706799373871801985036777719785033464910557749525054550353931906434758287349484866056553844202481320765376677798931333339940305689004534988482841060037974682824084549822096199770724158554799301977876092049747480219904035125108944746357307621496451006515892287071545754815668565204379083783139326072394940690322370968456576642574156275203570988167423502447785314326236492560543158362117757952486012817732309873690612775196087568529920616495713218099492896662309947192928222386858046654032086547579996860633228975729953931572633952643328141089418338030333382852677081230542998029258718476368415887770384731616475556872156209797757318701037846033068182464316753723422994228358765859423066586378235732814018136276377006748976840360074836588230028442973181486149726416766168298381848046508819914055833612275919494286880774287966211982209533408860552883337551289316674259860086875905617893104952110068825060639759204962322485316053751419639089436171992756684213458976493276576755077503250277803810709654156766518129421479517001889056679353415292575941570988118134619982690389289866955866770771623870439183112206040062504927805301779616874074260905388638843212805498214439850153362048182279948763665368781440075186671595868759179655460935035755122455308995188337185821044265373646650937780400718018726097922284045104330991198817828212376375250927981616970904671408722316671613753692228929060181382078125730620597097150055830251392072361504217749644446849084650264045079205097177732494110745485405569565758215648514203679384899796747872665840629148990363030963418787372918384177484935218523131296021128684500655182101926585057286438011095963981812731502817258329528868786358163872448800493515111367670554591373940272751278852026436188035518656437138275027137681992226512666085073035115376022795240590685772483818833826651933510835333636705947467759869984726567287465926443923041165992873111200071022837219817762839075568631519657050468351474088017703363772940289433273390368821699271314022483116238269835501894106348997354443773318893407228103746779912345241126712295901679223185227101224284521312444113264636973972648390070613413097283455929427907059293852398677128393931795466482402441630481207663402125860634467357312069435733872751831583751454606447722640971017247531574676969256269961884923848813123766324353841787762218173036565802030162154636146367373972270672584039462531410466079073685605799484252842511624588178892419958824457360927075873243041332349472316473806809840226899458168751546035703164320287858809912779929737764042501209219187851909129812420285572143724497350382273077486898979098054117300311672529738518332146622274214792417239820642194933229181858232382355217166697730474078730990509617836562223345989104742064916487325790871951066946611648460973527978282913671135625739950572763575963848157669118012300712126270862741239293490219121966673008449248694206240231380074047233198768782966615220583012471362334182299712945466545039661396242045886918036204988726678435426282106938474163988716231252727820320186347729497910415442298104062026217386697692169861580085930784738585898388267604745313940478543285447730854004443646846242617817622564598823890042685218326650816981032774663668697272160033779146258342144106894813177288569516196665978829676662220994998008686867427655580397185442618254613910929483483807278450232985918745601258145506932594538086545464188364859996840876931775088868647096497528628658217246786428148405524987416134573541611607876673378735851954955848721388584884941429842642121133822966673159432026100962612717465181052728884312961036678080671862529357046564587015977896143237939377055997714283037434549755385515872272806616518684021133988735473959012276964052400706455992980614029961121367598070457104314169096342592023772909231290033506412989530549645509411169396926494934639880687460140010895269633272679289704923865258257495871176468342862624256366140064612875198537841388439260323293948768046139990957032452311160593771759979737663159619358003090549540910912137912983418432348248883949054436274699549161318967999538221769173587977212583269154080314167235760159682280416424312377868571837692242660636824708677401403183482341965902221764786706044625361212514702400431256233263422209147241556899216831534911578148662869585491643007913893549817934941411737502704851249652256944420918125868264569192234993753719590791615718525059086783695631113657924481796329516828684916148269089275947511111303513895145049285174429561147863362513131153046803901751931906240376774690231013597266183754960745307266032791607128368539375804758058943903843374529013986841318545615137016293045120388568144082741100354998405609109459112938213961357398860295088262276790372127294713111667128636325459175833221939971914401497074510239932313458467810304910663422053650390178001212664377068794186156033579740483888266788884700806480063702278733273581669231722310150046813113573477965360714082297829423314752855400485763592779885933417611649904365959370118115005933191441043127544413071582297135542659452874897832892474592423932127723550869919458524502798411178292894468490084941589127651770958806788807432103691493071276688809588602154773401164068817957057533304078887882899015724499079557469303608205340849875503803823248804352694403484500797702576044113546617475967663153919039964875174164628420570124936933304921256564338788043556097710569356638941167977802015336284769907354749514143621063507243944107234346190740657547366012042033161676031768835038745926985337519973755919563957247277312125016834297837501569819853408553595175180404012984573266844276369825560393014750570644157431982248149323259376319922580770953108969021481605504083182630936543274973855507336647116660081513235109088274010079700503931432516492528885116992915515684678140902769225542321376262778170669268415638644539565526296981056095283210924210855158439877668063923164624302904616530320722011171825289162881641676556481062816321512844942561557264551515229544569160082737883854010411298005644647959196284737378415185030269859022342736839094391372023839441297111071974775849332953656076766782296681503540743545779336114153471764671343740367526670824505661293374004649399818992231227250163863383169232437433471974891036112181765280118991412817975009285966580548029537388380423105304215292185896980803119019775029320957618318611096416839557764557560387496024204583113546157299102713673128802113846536018170403098776582547373851710488540037062106182700319218713804370164490852509895981502414975551706302784168050389868890989501717649227073902470769294573319979289585078814858384091475364344754786652193603294305291532250582262557568095357123122326008754485468021319151259188233519055690284243184068433678015082046466540699959957154093416384108513606699492675710811191834241585848532295635560553046701688253185254012533231120873166491549314411794805688619645824336122239506837139016909685272199748426943338701464854460809920395581196963611702158470086104439895724887803140301603818926932360020024314689206057983361057767454398084781149086918516853917148393218159027642224771216398747371366403827942720291241755043887096956734587332062132536589572043332928181064614705181389786910047182365700539202574960170129912176771355225648944419452867437476301184925527187481300830668717834094596535293118980872498451438491689554862896638590358359652815208293720978666845798827731030628489071018177742651507183367820999043571917792944906320858638533505822823388605763345453324205440190785548439964088547102083126299841647841679977860913852149386898840024118085653873840877837573977613543345182764666721366249977056334276754644788179777808704021411036411335754710138169728420296023055339671767035351652546338192333006927206739467497342851215044954996090442965001032315386843718431693205236036939841337196694273253042169364399929859279484803185257270795217597886408745448559863701881767176232247864814910443910087646120404169135658631546754344084002629044355021700505754441497856135933231447296520785295716702650531058535633049759085282788063855816346324072847360321503669817157168145527608416478129288149314673909775007869314737155257077973380467741639882419894050113128379356820032906278906968647086699602160269993231533141213456689434505360100835255192423666292648352404881748943098935745131294501382096320662720275105999063008121712954952264678063574167712555543620147005359933137957464179315682669792234798548911912822485548506007636252588044955700663810390558587563537297717975781922432506148298618446740329830428068569788812441697550078139800906714022361214471724268341416612331736595591338204154146417217293716888446530871965740688177500428720164735573654869649112130177234332363369580556951137215769145904943917332754411762983010858231590760477936293107717960301828972368569935475449443791215054998386683394662114514023244218213139017699769902714394012190690115940791424130298610426415913535801373858078652114644327988750807101525830932286096185271382946612509478880043630142136143096545649034299429564795193676648737318721185630813857905393754236009144825858753951708236887397742978960414118147548953147855961980320039230709368834229338996396397778900720753168907566608428927274932877075562322116293147578336205616171449282432435819381687511995783950222476557450348290334602888920170200721996237003134826247025883144206053544474811513400467033370152045036682667450731665013490971029515054497459964612880047556036398377385813033541168127314780571979241956820053748328412399812215315277403905500007110387515107879205274279612602468156880683192291681867372661012012304542400184608793224404538543614285323510036520736436540926680592909666978860611987086694670561883862071830390565107168596602746302723332073634471174211218501369418376286007288083544986045456976716550955659802542857112254092906573701068650360493237079601769868085968723145726055225449243456956472133204075235938589050490686200261593195529517753147107010113388060060937255438069271490618244674659643858687821481110220851176241364979497817903329384479570669182229700592075689801461767592254407742641729571706678748316334070698173220159143240982514743020902266978764281327759271746594007663086984764983778659762692421160354758453488316343048234101649299616997370725069091625489271749794631165742943100461443663682806935796238638717960931693792093932767033479195373616473655773256923964743706779490758419785489403622036086709540849644277976868731883510130388925349152839803275409408848080442337822672404752631784099418138624658605392723558088329810529608252562728390064017078229424730974607253986301217898557404911626013165445983414772798101993093758244675611401743507109124922915276963293587667332181856222634072689329238616564063173107275401866553997669164850004173323944423654166426281978197306720917466227616234925222286827622081029603333816818249180125393055912404340395340243119040418492794890698203946422847470659344095586281633331564995494609797752772834319136483595879810142164694047855881807119438744242875891356213519257003284386826344726921779199574553777206978862240408294145213348312985108318053022500153170973548351794619852491124190752000250524155946553447117569531525193654453366504438329293546370517494249949297190229984900807349987760572406245478147713876136701604472691337101714265577201200971028772229317614289277614224243343553147182605629469455502897289415089259913250879780557855187744218709534819156138206043636606513736045347294959051361352536632457589060085761399108539212167991115136746001237137777964672231295662165458549792591756832832823471161299017010334987483026453749909423344097365318423612493063565307038656518675359687926379844477571462536379600273141131962990687121641565253122180560376078148209151991818583484294548771395413979879033290048624204688756107942529757515804402304136979147688569193240793198176884097417511230929603682707956088031846584327072344939627119885788826830367278225532286796408984214633752071193606329336738776227701954250421567004007453497203028897820973306348228802766155147065406053508210124496984325585078760574856726418656267349210450083908730775870883605345300327223514616682078507515782501145432397694987027594059154229239750883150247095026187946985438742433151985148437675457509256816959297381670038139326387921797256352613489629171435625922803391414374658445137580600472323056646447610717451847497576477671507245694975128413642608850458071031115844433079603509384213231353288930416618741529651426321858808138251085951401889320879119784757753555903600540462614218621515139376795461485338184098589037177146284859324123022121495143805758462116045905422334619418807730150723197906869242413357268231525721515753906783047017200200231337429660101129175669035066650867133285143485449701268221521458509252784091774096648531775383680632203501446343357835716975157847967669501671645484645899811254326552159356158367200478611256636420809748073218965071692276791264918875587890836905909825812772319245619643920703048173788885005046082722901237108292273149712168795297607041431608986379603627823029161240701490829444341962174504259774857515324052224738705384153569090987393144616596145420563376091734166730500977306150781220167842514168584044184086320800641988725378655247203371614507108260122154328816218606579790444335156795625017273049371736716809851335046610944115114742880815297368975592430554870851642900556195084514043663324931311300644900893406190264249244894964757415130925218015428247288052797404204211687388500532744284845397980987898659771344234569407552424463813016171898250953698698281832159436795489232074428243082266283418603990739373285903821557016176295188818903343387416057660597807306896336772717263333290547283788064363432602223193921089920036517552646912730808634412125449935661364110243464850612913902479822949037023174023694726932903431011783586358350984709751674916924437515474886013387527117591205085773319043682950674287904680198075929871800501443528404580763094870027553922746046279795585529083961211849130754125462597115539303279672987578118594263429895039076608486960296174631822940912926429303674003341478240059308997880055920755039827346962496192843287184436913380825697912780745150939285507763154083485754183700808649518375351424547854529683787295365607813226897936922495879965265014274312360513790006931403074766403107793512824490160551041383614071536044963366381014312300867249194142933838928320914177134489562713478372521843781393593682776927585465595458994108640661928679783179823943637828933570333175977325155814321616881627416090966112055800114263804321017185420143694062406985382697754482345673005096673999697524398837002047201861515129365602722288198705167734688899584437856860900622360053560656101866892412120663786507610613005091518082156408716290802790177606297504291940249181662665756462757269631330963312117225762516845223362226629421789539529533637280118245170386302682737731243313846401271276424259098971875142669049524589063557214048032005226792305573894872172159084766449042991115455710967666675035408891691453024416380592121865471910975464365081175979046480859951840502735279378721616148629621525544904825029698667178300805531832842548371698456436574131235691319471280482713491352148012802123457197818136296104472322103909697847169044822526347712797772473555693879118412005728399582934288314291078989373986979670059221191353829018262249147711992784372998808691812877931468088150557197936254487927757854403166049811436818316336657106655605356238581970375734009521237988163055580234322109009740715612460411598262517902385794014109152047773579606767271946692980320990778388007671154842143854923042989719476422699599583012205707565046837278185998801362321923106840350982142622787190079943402034198959929092494095424309561170964502142872745426990970777473046258507959557769579812896958035655942361639182615253363333551869939757115444359793123847204382430854946843952808214822096788475682808784631099041013180765062601742697101373613661953475887835332888708749030206383266093929713025025445745826906227741726335432596691545776555319576283993960232995629807240558119220867855391181604850426148470687035216405707164728037644603689701590969208438445571460021170227552545855055315525681673379627698685889716426873291541652211432533096899530381041708395653263203672780221403240072996749784611986503092206097148905586932955538155618995369286315761009005594755447117353854037321870122786890468462071624665853061891048181662607878377496239321065016585730044825708622660357721232109063887293872921115916679895277751725826843721596159087000268790986250165939411434559946336574077181622209648204247236760793010379858937724697703706262457040334009502221341191404935517183819073987520322887858390568946232428918038639446963110989121833586889035585328413930989768613147333746255772478748320232324266369869358837534805455680538560947410884362114459125671479229406168941145931835968088186795741498748599423309983429351390291005137417532984286584435140715291743672586180406639006725263606561714983628239220008264594583648375243964056764192321094779499794482069649358349175142813917578826170957706752677230827244669662325501530006459855383333009841067141640986953263248328647165163851983888520552796538517543152998826599080875985160670190816582253354386287053000230782745817659905398150364523441247792914527386495644940499616766975975980472262484083373822664312959575722572348162135761454495435189852696569638829433068498179873574330513352194914658683813457373639913969990273172263582278074413745807830102593625510197651652369133654279573707786094783138735929725424629706782846625103257980569549741404123996785772733350284263177909232801781108373582463800408394924433873791322254157375489400604587779486265727966378114609126299034764025963068333256962825980693989606702045642316835130707872751193127470171246474558863735818302256408205996697892972313166984067832306853700396833975804284902024631569167514995146341562938656835058720266239760770572729046080241140697097028589112412492935632623203140496565803271502068074102689082144540518663972176456982494887244480799367426768489300042401214393263228083997234651885792486178189652778578889721205213363037601692284403620822273280722257902664605488183549102781222840999667795305866112620445279154092466611196677591450497155177746333923545299284723178448585379347890282876440434079179330481958598264788509999312032612793787419632918888354802088518903331502522712832398945892701717009864287144763206966081209863841339287711414618095933274745332400731409322194302547128347628793375857391792954694824308039840573103812505460420553855726608180103653139440187826373225713216133875462360371962288085904430363173829133719486984579003252330903597257196899389747888588842894166819201949193280112701534226277837092678931171344730872247994935278345770260356904247048114183071679750298129389545013371868485187156946960351570069700754384897770973838978677463207547710247478685537946893848106924303870952191825534583552690611882724281232802096435333407856188823649372723889824941523553694146007345997836030790239637470382010888331141436889734649052623664016710140004948000689224167612034348663713590219131029572698395849104019847069788804997395825707265168503351855147735034313518634813973962648572650883820342308013812101444166731590200211698875243511064422790053799361363113843305881072393477601744977338319862513614883094259137827077349988944449557233006265691516417223537472105168066817879010964660558072161490488269503446067904044685098560603490110394125522696938375810387651447365956547050574181740565532171153896757296177015178185225798628853473947789855625039749677670774418429846666570868415960723932171204750011376378329791719947022136750990763736126756165409564165737722996633983270498045385477792431189848730226212789046508229583503750899141164837179273805220105598898636029359276752800062289205850770467846298342826434799934648635953195145385384939653235111093763548473530981622704938441356198229887339662903878944334570391093988958095210399158566905825855164087969950211867094720011384251057250353987250509709989241430081501000260920154416515989421678450440620491031709490218880331257488826021723328834652952825261875459771900944159124015685220993159997121992551691143656932876422192237893103202351817667146328536902558950601979708565807259936816156427933489189882864943669001046905516039387321705154259743479870185711319510455746437108271421453457436257250614653996851376391499656079859391183388806832368447505019403372408842860528624976129417317383845469502065883435569380191976819419913316700191111294467067304833786602839585891716349436794433783147597101787631950149972493538272689415414715358879489501366366609988366862655195136751895955568844308532808236641735460117581292390646609404831642472370037825124993218680994784849520242291766769197563726711510497745742545603644747107760201795840094975902684786701418209268375397588175486227056219725173471316182437992437131768119934998261938105283693249645891320544781867862384715325339746109883390883987782823582590546715935888886696808598997961614332255697047300606807163651088095651459970519488270465415295011140210231632230146279413917687153553265963687800485894081735985534724703448098865025858069044482681995442805692524113116056469821956032836286822209406243019631687244756637575272561611045423086455920721663234592314837131807517747068678226935482850540730146906250850880444114076136802001176136625128934977790361011509271869677796295034785736931087433115368502453973610634939809597444728415670284514171699973333164213975659053139915113635611138087921332342850786792296443625857615719458395373355438461709023445369326334938988475452156171405509533387927423741170314680284990835724458508188454108325052231783822145222143671255586742995529204577016474359269839702530076576962630244666687981200892691039789571355997897920679028815927063426596596473635412446225917122662613594796064619578193611029190888665760072440552411860980368317541606983727229744351444395047165555354296668730545082336947806074712411939872193548625402773576332204929444243280550055590210400647841818554304717083779112686871986491682067320016254424264599471461540300875265288328856245644624097335502341593561098344762330284676144722178773711020372603307471497867211819028657993734047175876464886618635521039656646250510211947677572542168784171620391645784986969943840146116875298000578979753371082001441588217199229071960292769663920647602018921255650429344992026790573757980045415911767566996154290015588830008059732918792554190424407801265132642722978362839320590332000248158855888912066164672333414500900243845291950817865880221852237163401041860294714161830533697171807866683250864819852888681457178263336343079340141966212497993206667454859417213785615467934853864991084352887094809202776832635865461204019038639751130457807529772430598309861044558636915650671438067062145066043513999120493079665930939248848544937534935442762523455533206036200385139292092093763052509494321256249615552832443039545824084952705612151005128448622506176743563691732968689610311079903335377150428003173303867606187635651015633673998921910848670128995881937123059876261213595238036595115821872706045104931539486423055933508995296426864709348789590858828593135836568094237685828531861145979830935280846710075050426505209069976816970261130935630377070676927671708358246287085597411193632997373231982820329771958311002253905136739689178406555686490758379962932527309086937792690648239284652579368670286119296324302192549450241064257151163685495483608121877697149714694286618281200463457064587052899221756840520742827975056424513681902184069884968342761666583210847774368061596689824522503374740944282164405982328758098814207586128828223403783708339798577317013293800670308155363253639738768956257669264587515075234687042286243103796404279290034439276070515152571984875536962961191798820883934528001534720203813428757188968561912913133925093061077166498657013808075519684006862461382280509432140089803725631884762676499238693924262483686870421268407124249061653486203528337246822505621967205014306705814646118982611326661736301483587182076880077838747012797724120355724702472788711623739734192967894899468015490818911107814304806715751402598845148714967793948977037889333104945345261191137759125586365786570751060648398743122002494630257145184726495433403708718211869048452170327650074809681448633036645423390787763811867177969243116269470541006781756337938181245087542086078649019714619782112418101504875321535840094604839996829724543155371781189989434090512215389406105864819964721947052399374720164638133271538841877830528686056314659934603402384000607946644050943911161827568852687254080928464470535522746034608235842113011568867170482472214102831662739937921570759812156302100581421897663895427589622676754706907707098073781807751013699631262397145875168142906045063172179506429119592733814317902923269139997209845564496100043786895935470746771165039717158542387845396801646474592453134762534024551864145624286664823373349602482451211999321790111525283617252914204999057338672514202965925269741788457822333181220998379089127411474404608490358896707314757611237060835814762240648500111774292314610303261105932380909745433331947906530269735460147442346929017141094077341520802681863366001149469561932507593125908441559278023411385582716583550738537687087567182095608318634813642251832763897941164204785886959933523945024394049614442855194852181270851637755781940662352654491668835080301108304331451369476540073813942234267230628873206926665876023017963908259481880227899361373520758658195688979873416199221631058403944791146565928644072707706761935290303870801646883801383956828670994830277632644539665145113629182774610392580655142770974988126655727562873443598838042688913347650808231286011785278310176436013210936785894292451124728397752101514239594057081781752745502437266968071516216256070134086826435215328110603929507990152629654274503449110356560681929104691623818372337481630651523929455609951109143306429628975672714366657226296717614905716231473368287099121865828161617105960462256646508375817384040604943322693298380845431374480218337105577978064750197843031475238348001068621104292362538597577803526546240715302027139282794347578398312929753105381314230336714400903448588848951842616164600615918875316392031850709588937272048151505269584012097032289148438198069832048819380666583325283508019790390102517674910847906770608079522692449101205025841565419229495230025943941209452798430567944527673622737349763679885889421423460479015334486221816023005689790320344416917070148282626251248777237057069126852107048696169376248978480595259878566319392379092934380975092444157456942573520318580584564299753627960380502242144885423513412504070528167396281884222449681964562853439505782821268140092115644241075693296248583563898188171004089316160084790610680242319486560313182817900755688833580409704055559794124887992545324870944062889580129125596904593446506498875708396215353171925809375571307131957999922844686557400690000121762596111623112058664643919544748366458537659484323193620856641502218545315029245870169856154773945832783633597461804215118007121074617620655575901140960754502991118111458109241595099439987573738766877677190777044192783467973455759459706715513661705405390105927204553472895829126877789179136289837267442852502233285035601974318596553519687157781217757713602154453703689686721971531691237503116929635341557553082157209144102750067950419956692069940138098940892786668303474384442217690913774565802030999108332537965449029025716667732297042792413643230186079785152645006018218765435963093027278695719832727123598713222481629885959589616212899467923987464200869593374367499988882597212528519387912117671190508088584899807860344071029722471354485875112655760566086215798052719178214098582951346141753817505907132329981583175702112725650097309485770412403786348862149043295710334535294448931863998852465976430938505470119984486821278040961415970177045549374669277457026985700880566348349885235177494734100243097103632109472952694748677932028175549463113086434158889313722413877724868176871715680184300473194578308153791944630990366743982666075314439001649774521704138226475519090143771752455066049728835063695122232961856524962630983935168246636748366696955160796544674407519120386791760091113290222782865164949134073301783842432871941752693812132593571125596681862181490806072597503812019857322847039132479136905311324575737852403160443396997427036339433686533064797438789109147518698508130990548646251404611815320493555410685490140012078319911031842627813213366088733878925980302659980462915943207828523577591790199793824043829500658634856325116573623821485944989383395808353834044500261573203453090073882489074048416996218592792795769825192231570998473472869511674726700106565241459136459275470870986253958971987996160749756475722750785773400549741373659440303885890291053529576970272903490349070868655683401614901894805957669652711939169156136434818600648868804724423355235120744184655609883960331466668380220241668805213664496492434823517985268280749547476201215467606860913598663116124583980260122364287037110674324475040283983266075770558686561224169106456412993353294714866954582871379264119762230490233646858423787623068267522347869125775582867169754487683353056789938447835103240259286476213472766957381775414843525645333205454697852605053268832726410889456383108526846736583089053915009393558431181693805993186324339651532151008750713635747485079974581903226955497695172482708717449906369938580210292851107539168330013480578764612830738035582615533476915652402939241023756576877854902745871937023009906607625821232224394754438611548785116492270758874986770500743945591953893068142577144972632912027959554035997618594335504502733455845897006148333362922991355164190245000113083999564870657653751150448521079233641094985775613433529507210521452827368789228869953480354789699183870002817657637631525220741332742808311881535218589075804729144397935833072950378197030092926291950601808014909721906984189326498711737775764895505171387643747632772481273944086459544927187519491222503391932615015665002774476456435081440412119949801685017229406126340909424134884294691903824534179460169498486172192297281291097587317462219099428325532229772031126226604105892783630902561055504015116571186766855239991207153343024265187347930935158634363920765218956175340178106522155450816125944520090882186097782529765224915934191355299895555443536254343132147564224252220702929402648691519509756293514432232775232851859109378414197644357828701392220712622607206303729943609041715120868430946065977747450506628786707588875457443696677103624063762676773960785729086183456461497414200018332257886750489030190805774255920907798817349083807156387778212589801573713735841567105759708951383574925528858956483356740717610961487505072685169382456686846023048198711322798054950479626507800131716469422086383220636713381808861949866053358479763708424358031047066342012073179463339952549555859283451216535474488248947438995326026171305369315625071673283816463770262423381704489525936477006763086429146839274853864773621181005452426036512130101228452050873024813240341275340685239504727114118503627339623066334590212121880554699443161367778508335949706305895358091415992704024806321377823494510756686225653618096214826221781788181614307060099824248993576424073958108402475995092124414451091111703760973667183995538740064939424647955202379058585840115554884791473954482946409157230660303729789703853489395304550112129005121069330473750953944684778857093150914602439299198957225509299499075825160170529722773430188272937478393908924033698522441937931777519812353022748739438938362930084840310998958115079902368640474817729872067520737668611230131254259616379695686013269490413066588566874863722691035809454851694465416082819659956201448361349208694741018921367798293348492133576840376293998667832202093939236364502647199015295508264823378935757756544298677994435771038096548896442671885460335515991331496606085822029182835414729486352448137200739801437914501221477754349762336502307448288697749349547008379250614535683789797128428499566741025307858990270040111290559316796041079195215131551638062704251070636520275520027046934823660353185990634646690803630155855832805887279931113390036751732108787527838798104255434738460912046011860266879806808971026950944557342460651189296244597739663064035811620195766041559895910050455580250710307666220019532167328371363036786182676522205106297821044677075878077809354751060536276515682537229383913131618446298662176839193460564400555235499978033339193098691127340371794692543807000773634509601237511433809213067857044190406582891144060888768651147042074182894745652136981873890533206158375108793194415482879064968212949494013345892026192964733577992795749203608661205561800028678145434272416980650761394084382887108229018432433372926431962342412144509115684910730598143905722357074174432872970086993573112270126698619783736893070923591566521108908515941964789895232917884903055095498941764595479715239987075316038565074098771299216418292770410757855862442072974032129598860239530090823968384046126558378734403299260040896254981252593666503968401814196490509858131864023620615895329862507055195644204942735314588573249047055827463688306465905340625394734617676974095300741065996476485328689375049542823837297353799394113934091775283560799993124422967304843396582550043357116402263421612310215166881157073690742530298904889106899849627065258154894896533422492464540277735439508620495620377708764678447412842150776435911328013454284815731083959416542199067056158835342190633483034982952085226083344271016758187225826537923457029915737787240235718488052896113699928122931369508576143278626575348948802260779327380740926157258824108281123812187105519086300346370077152540983283272638602630458162467560150789751337437760800355320746775411938598586482493731008984908353913985448169668512215823640083669368521858012909565707940041699805036539697333481420344103206747027327277717385518589534909060277979782357017801609146864904754264191691388423026221897645514705075057244054426189705521548565943107863509700265717835267957654914107991382756734669378873266905485283873246473159980524000114885834518926444794208733141703955804479089110033976578088055160482929044453419253783902002485853847191534037511873827922875757083382336576440091420363167717126585541626420948444580532971015512514515959510697790395957651376216479666048769526971862763486982438439902561324341080036638044477645678410524823856276191407433868169946935424766350328911324995058097969339533847890333665657077329261402693352265493990222670787728783368201806864559099214943628210347931679423434848383880190996776027631060902386713652443868057097948806132372722566636288549238241487990715129413967736073793604415516995998143107686690763728120037824978886273098067618553572274574099610362088294199829589045135101323549206821657406592929760566570978794223271200119156974735883254793104726675270114348207265081151846964977758312339893933425015716021493636321801378886019437070535730608150614452621810647417943713064192101412718420358954538787536725765892087882589658975105709649544332580852946010661062388294878965143406694141592168226917877613057198660213184261793426569702099200643921043891161349463706054580049133920850834070953355261748649371075473705595921312951376409089577289926538153827951678064476740236191522468610949184693694137889259657617990181826354643415715855314340742607368069962760595645746091312445632338278047012887912350967179489163376455286599444444422914390523974865870432799614771209301007989260159130917146619656776799326354172075664271167466019593842610763689468665977566145995354222488712354685083678991376093221883764546537943898330805082325902345637510111642686231871940881273966587609591022743549171332978768718445707448074042124544905040873862066655302643576094239873553578618274995330081059286622223469604465358583919547680904148937897277448028304841546370989809203395516275278032223966585474224518314769905585747608958185345298095373097518008752859238853466508869266513385859458145466243108972077620118893999860588645481870161488820121465238692096830205896630695814323481926730394937829657475098259937127910004459966503918354206769168991640272006021202048051247573279769492403160313360291194238274564658359669728942490463147348891083278608199514842821062069584060586921886359911233318135702508340558733440601551807632531270803145142557107900105869186611174085700775696175671860081558927673375394987040322257064243011184655631741049860699668405441390920429651083375302992133914409077542656605025655770817052961099781232852567904164038487910271315147556617677919267719007580144549834270467437994512410227511844191967445477081194949046678667858606600610228068100907022565580416705088499847283280586285931556546441591207731135321486591280413714035112957906141585061915236521263494103114395110236389365709682237584611307072440023337844316398204642556440064382660152978341280482317323464090513200357062793474604895162606526210013818623640323135609136859960091693372940187724821080690343047647943157773673223706193465414388897936909815618536283819263856258014848269364593627709363863955464127121460986543444530342710176232119194266586215049942851092989380210474267001869218897043126019697520862807401664195329757681178411239986505838436150393219767253836259249047531539544895255892403247779806297483700702440427914060809799710755523692030582077419665102430213542563280580495001838054462385056281103162893089071821208870812467031333988422688776420558008026969914646227564980632341342648508477922196616467520409534875890317625887490415518046711216942776760815267567372851290451653234567634822781765077730369556719415162280712854532712285327797789727085561580790086857978180231571345226342794185277791334408375648435807693798512411581981866447235323989986706078427284283548943704290859638202775230572923836332225045697557003623841965147838218969938624378430141199166735862093041723401615054120367900144333366658105103875665718461408520043578540549170063363248168965346755615622983232144689565273130509965668882365209456981508268320111882786576933079614415607519745773666099214614166931090485417775304932969720277544514612680983407420539025404206415221198211640355161648624912620692285322414334742123803637604163935960952714056144067187653440691878448409605736241000253018871786574171395408410658273057088071867647598790763184939057505139158341700521368702298153752731071582607302799019847702390682439394919725998524465675781690595434792222959166189772096921066502739854800632808134807521348768351867109607377903658120392886265403721264967254024956453153980142780123247953271430965746308591031762772392290048749736327330661798518725067986821832710117162018038996947083165187768559668524282292846294209332271324492272622599139340150567326778065799298797282989225845229246222763796634883051791617491210595000669616356692656454016519771780878573918412085665927947305958028240286659291701075136088864043148426842347433550372521356032996438208317048929244575982118182679967652198475525072522713960386310933721140854014908150045283219756284773348978738935957689910652135451511892261307585966907285222581672948986706858713859635894647133529145182078681322844874934041290019807144730351693384143201122741410511361597661399583574537728640839847755332388513386688017755069740939148428983411935010409447297399922785568084166878286815036070130021524351617686600283929540344072706346378267975616338035998426060240425859272965175925511040357311432954210195367872607664375052271427619786637046966191442499297936649922808761038227886854094481428986188638420962053105789051317417406005624119335746618500592671701660598339049124958869482101600591679275035636164764587189836856900975474018553370804201065470882211370463730696764237729323424823482810291393141805618147931975784424151092670447147523916588899064406266670115405705191082147080598325261603619349951776451476368625563476231524852401867503137336623645429980770560990632894394069948003226592923560045818276298922165102238936127925849895374753940877097461962659804961223547678559835180272017590900975609242844893950768923187550085383963962475668104527707472999883476601538877507693236134004438506125175793940311191195816644172486945074082856111218695681292470200417821969861231550926508164343991383937777392535152969771145823816578168261511440313101488445102774808119550354942589046642395317560984954665280541058239534283982833420189858125508147278804549522329043064529958586425015381250365930329613880429039994727183796126599749708231768201916507734143692254495414345351357516933556909000889758778309784168205024302099613808692024064311313053418045171091785659160260075719856909103550155002399497531761823454163530338897238081830514631758586770736400421013205244048420800803918414147444933292078608378622395907648838640492769090717372856411930414312245198638039548746488534129725844737016142166668836709677748915684250420340804108637398711109492146670118416120307036773146545912093576196532122830446517005373035629013814311689393754905488625751116095386516268999338373928571947038503153485608846795138567123071416045390293102629412942707853797066036357968527121900185583884200531403441627406549286831832804454169508741295718445979268233119749323900554307187298015995593764273883158734520502841519291943478755870404701767566575977285769243905524803593695575686459914396331346892349304520625926081044596022096376500553739089262842921699458814918802703320750663040452422152412000696645089771340982865034637276865744963398624359789697097253658991215699579348482549183442703258064289621331776951231001985958006996307618751830779125443757384497409325007325600336414464871303171256926252082364370336280856746975117825644077844728346963328892743335028260235704233448048205724041486191634661001847555180028263100013321473212182666891544359791996701687026692077319718342853127375911837862162456041178754449476318579204617340106991241547154482534258623987844498555631978243161716497347350507175768242183410082916032942756680113690355206526342148772596019590517642115196209733121731548937620002635278341487164707409392494880377134049843313813411975734223276634208342336416581289626626456730024314766596324868710929510748886709617199052082312878378385589154245668095038310824916438907227462920335762936485707592676233853315655425575297253024179022958945073199821044941077923021699838631023588784906924576529681944310660238051812366895963468940035530145852777324533017499178218747842175729093999383812773546355049249473100595180831995141402802421399550501309914764421627042850042315801124659142454058780791175955751855205257707361022317589058851107438962040428647916038050564169658678702900898282669847564273999010416135704268538992095565319245247448624560173927188916154426100480299637575089837144419000059302405374901085966578936093746110848880185701744608566263280165282678053313718001781074460439053621170428420992329833199025705543484086468359345386138833539181490343273393533223191210809908257244023860504340421746570518288728680494635340237762664282758676218593950500604218568787578783873866315009960832453529210030592079183147111623877063408584199311013064414519779982852328157920484798397682989761554435182777230344988541108207172822334115410541151213269187880220086507213868164758738776900227762152945765560648732068236982620074379186069472531772207154301443940519040970841945547135690995503955411145592347627098668958366731654059779379076418614688937653480076829995959220072489563731436213138118773163880540374388961887667435813705347920529160113900757343063489516797596362683186359208174962804988668232450686535272763328058053058244065762517586075401719106540847825678356550489604571107475101837850083901331483772959028944137093008919565706019695920370702664065369936159447013421477617896171300213039569635967908761624607121494045772995356317156081917967815516837666590151680488567669467835154815939323940088815519333166869426259814633775089835501134363552584070834877943552302709510577674824033297042041656185106140806025216569650211891168434570019245766143821937527084497446078441808907791344764227318172039475640477635012618938182543581551275831855904343288924652062830191306130655986507625852430729713348239428851912165098572011466665014029405782118074390270336358493676694501764197824211307153772790605321998683196585359250552166767742828929776512101968233248641402831936955255278465170674984658322698497528926192014016014012537533159818173920873790221075427935623917744726448628181575375189603371340658786252663937471141712977076276275872956784334789885014879765887504858803745608637331441769308961221497988180961005672068057655034604253838285494286550040157794481428390479833277913139808971271802994288548638574516855598186836830010413699893096218820298986140614382185029150738679219089517559842323214352729684843273429898933251237779198847176857003054807461059275364288518729868491934768893748762490035111178257134857019416682477382262463221431598892757572406624553139688618243858906729241453178666728572351998451844230307762478531710728836261415227379414586153950943930640818302676245987352953486295935458457281530254251919775797185617428944661247858225664180353655019731562260054112453263122644099624864340572609108872051927183552488841542155267403636823262777621191280008269677252048004369243909205479671257524454084022727034629895289843195972222086906314640122987031478372689353723791305367868331227886596282198298045490761347516463095917148258227700782430588255528641260285932426810676221945611048977626944195386943411869503547687372362346404224771627299389414562894546054758042233426414967889528664903906515111447483506582268040909710441942443463821206934939053916449012085995799822833753248907305499203897898904754856480997894309254511050472132143181580688849389838788538083385228319603947939410915087426029738474581195840874800216500604586115936865108323583372536325701413696721964641280112558703887687399984936043979964112529996320944908204222412379557298309989433393802560401799717624216984944717095257125872822081073604977111437020777733165374277590018655155357870866162062845377731505704462859832235657207603262081389035194895974979796247819713545302873983213698197968482618329440653792193228308490272282411994336037478868634131185220814002821466052911464769483230077295684431066458424154152966197541361055279231927167096532603396375511636550987310730658165738095085059985814402766168268906636653218945947045021727479536472004825494443158512975138950405744670952410843001803434405587693636987046313110766788425429393524569557058182572624601511182421534740357135563895867753541709000246166076428946045342231702850294969844833608965483947445778119417014424579322391832029936499155052178683044477113030946879400470437572477018030699629487019569149554336432238809343413303696287742328351277193472773054940837675985871573293639849678896396763850741407577389966067215525208690701273423935861385882345748363216278550462639915818367916976331861392420734440236719836107459130305830922882077580911451371496129599894723680558440955395809532282193532418440638250777994652405407458154322411481229990107034719252589900538668049750499581855082285759011566467607184747113279596094165279184834986733226303881978128704667060530762259199906332562006009330080936480824096138438874731517662964281482930415685078283900681073943948165663066211153743197665016878750513352983925354350997449840004436418086399769118237298328720296576966199405716912284072111441970656520604697472777248280350483962556091465023968878205924895105127249289436866924101590353222571320584288486285648657842207488011533501161354976566840689152324124010815369881405043607216280913824015336896573929991277124365423318172943851064854545203699293063132732809495050357401194911178427666943776996269766115780922103536057795289357388553138060596006837951438910977593246399105708007169134288660505289050747794165938440095453562571093307621503358742279655798749702481947516909986457759764359848347783540378152689993858668525142403881804293625096206500055007069602876463842865925086515194328445508501856003665988706445250616678454426934292375064294312999449638062040735827446953453137544542425107375920674440969584882817535742296439907366015801139592441278247701018021386028608301888288157701646115277751158945015841334540163793130941838836506099655200519550123956279986606106239090251768566739268892767055162503237420562818687821183441081483199443255773073284289209294990794901462767066210227289697111371877057795598033241229313700189569384101241398069175861906248346192496019887720484403441571800408635170824246143761859883560141174199732242671585582373826361088795349402677508340096889025574043813427130152722696818756031454762096645886923283968340270176892258111205059595973920675065854355702172202705566556462260173672763445340633563399636554218584874408678224443986948958255884268293991136043216647625258391906469196725238257563432244981256020399684274405417835973757842124900399953815597429192527315265905434981868699847435440107161039172441482941799835822386257324948460331168834998037204095943782291718202610520782809793409394177227014377063013679325675880404786224293241276427118298445281103832789133633845985561786904677593289861917304532893594262385917627177641493489022323660237149207104564977917195438760164012871058114972381808345947743185584309658399964118026148298236025940526880497149793732386138062041493076014039628811767585531117426956068845317128186795363923438116469089806877115820462884239706894164696183627272551210212511030728131958869806633572635064826924160267610834200936841811515702150411579088342309146535043123357278984138264837159970820295735580889977827046579545673558986074129766652394143908817147588802736414426836549421005907887893820097200288154974630396467206714790128415627566605806864510143833382464006726431261196031665171646177924278525429326471250853021625356372845449680345663362720130106627504914685511590295926439976426951411625317124251720865018231250641243688662286143732341686537210504692944813354614894453534359233397948794250052653333197829471234537448029867282737708502046584635404214498133379077919206526260339856432913596503109638600066452001192313873611075150381397371269873588017443667786614879828669880448483404222546563517518134046050817571320838436775805566299296206164566483707749851873736847541907297253051610112189339807383319334771000003070642840914963696061488280180542495659453544909338101136928491659491265493311432082503266362607463474526286336792631944360328528956299971358193530173706169229096150108269964140454241002734176340586290122729557534423520254240514969842378873464487628235759694361903697363326058842854789686010017991348491266518871600812259153257615232500475997633355402560097176968557108385384734905321351124116930179779574279516435009798736380851285393416095750896030010213676266604274536931563993491747594380368568920453137182276964176914543454026150604048340062956559490191185277309508061285207409277627714365521083244693126954487772750556136713928198920443892713501961576549579338415217264139605613926555612416927321097499014527449285486876027738886029655753706839724353717832532149950454842201014105899917553392773210774833132963006414741570380634205925442334027652217526251302537096515676042598789648417180570539597487561844809265490719448169325034073370554263239980188188376479599354028994784114464882462033861203892691824416646135871997009928456973296516711236024958998319839615446266213596890664210289358680847225150530750376549576081676890792943062812255123107535978100649342727295657518561545375905664800003614865318754194526701776854552511912459026834678114759733513298104525041876183814194525423975241710563848946904573697657114307740339004017893189231514580226941421912532493140153482366998381735143594948388369357038236337365333079266861664477292441244027548365347430458244452411927438041682033930524132560442673749609713340833739997634290917919708180403114208456152363873794661593849483667814917220950844247699511939658508649191034885601398841064047004432021579035669141319556404122550846839750974727277511224311749864236240564681205727988124567516298363295349875583400969570571113267322618010242336479977529915565977815380213465538269388786396574710644995152339453826739281803392033340276203339727955657986834201933822798159486950220129238036582510050122032271183040137922483108659718205378262829713362943703944820021169846335559989606522519627873884657637472702275242371628297293837839599240213868810582915584922319008013674843530858819947172654882129385420056228930416066605144221946615039466439530360171728360449710431036410699267733554453388774859584224060759660942900416922645852801263268999176662068513120754275655387564411106223169048915468587092291694359261733013256159456454514818127151781480299921833751316269700263539258350184616050786113567508974035051669739725948596856582806251924731794472884624944377994532902249238024503425080884284716248179679900612870991703302896829905805001125121503146337734433259793866030204994139258919355323566757756168565826243484904611736459853867654177431101148749897137534871884303929010375864134008316574057964191302745430279749931978546525879316991950300881722544170713280007249333483575184357479027255280460733485885777817542989183453935202828121670737723249717651252713764188368909992244341829807450576626247222250772152486738430168821561047777321728746538391107011943491246658986754768331649699238878026329811010434925245178298831530829192495773484056849020082930929148835504654261980931088999924259234849510523538296919396867462166511222756906782483206451921541088780369253216027557273694838469067519903116585304159001925518674946494784676147396085560104978444343956972810516474902157101269918479722424237454662177941004856429621475119003450280310026654289487294127932950550891322575393264783070985081152415536715165450604373155672618061554606921930875626151519767322775150909043068700316407367917102857766707565620299291277056772301694292951328930824759722039630974097564344061117473976896809039374021095909041890147819094669356196604774302075461879545340295020878335499282739799898552210876305396741842820275342706195878494915574664072813475504289946564629083958668334576523028338874808497652138799350623701454630084057262092925450426017826271323419115029827755003311208368563924790865292370520115730767163374640051626051628889334436021712319569042543532360901408931520152982629907410297049622101243342461431967532743123363165498161535417890593499808691969660794134479277639598421440622372777048072348819609812868655622930214772717532111592616887026001788966992683111445717057682995375345692617759044361407703438106804565225555303996693637710961806749771472002344158505048587251051025031411272573487850597549418831319089826245265535840643667819266222305709275272308017739781547613807801424663324269593213784862658311943874446416954150766341847786516598354879833412526835972099408738919434952968091165596222503124942985726172731951446746699981801322584645885510055401088383672540398870066464665835452920271241900354838436210198345175495913386103732302874210375834484113833008446425417042561614534869668450905696541730646448231045730249762125429824961075299998811283536338200111687343413360519893325777005318186529994373965389569885752803302019732505325664338371738953746982478083099867008323676016345945156307589164079302117427793980732562321331183371639670487295643242294203408862819245560635360923531593698853821814085747823516595810499882617463267742790705904369857910444564533334016048942942787122593565709376799087538666332749356244263355074337357969077006485504574872546787391872467929550144294794766715892259885791983054045667770088848756264317104882324456406368957342087627636399460146013752160967072734809526635639388010943252398319949036650545660706331464776421901950789811415601216641785512386291142463819420306203860214022718429711920044559759602206067822005904923748793336453251637462930210808831839227481625332550974063157957434540697380947697831037981094190502155799159249602756275279121338747706926928820874625125127000914994427987452936613550910569091781373975201199569976720499262765850253789566167178361829434736345735858752207073184041262980139602313197546239395701846233123388564022416185292832499428191246220034043974985779636765788172077113698382324428064817335729627590824288155911568836222381165834265102421907841873832390783781963707391694519366043568662392862323549207439350331473572385359197234552191258625439205983986703004465796703865133899903928462233925853671630585023298593118625256118772104753694973714249735603126207562397273956318188073862463397098380010911184404957860453343178652290279428416986704697628584449256679594080347237462517554006825777716917694206656641717982361119131441598501966201872050522117990451209117099395720276188902235033874186292281800356995791847883309959146247141981101091769055250604428508904148920355309036413188765565402182195883283873479597327577168414332316815189482841345323547276309427994078621128709534318032097232327695157884557396312329796932383904866780116496024445281771009393127863516023543071777327596411272553807408138299605278198948176988780275669425607730069905051905413062283414671237759901326011355793531985062461850778204339486167903782912055876003290605729083334843657109371017749587363011567785322185971299612701681992962085020509130017124742106512047255115750690904966653051960320666271084648144283133477498089939754911927705478832377472932639359645317465506505031019877912586738760175950983958345488617200229639487776078197443679028205452113768859717818608526720257253315734780861834774594658780278288816346939987854440593745410290373703656119017217842601544602805432832949991342594626420022963441729742611796293686223753459987434353643069327042277784560153287004419702229831069243056510869235834630639252624535399031603249838968187410848951207577821902318486803747113902910776861107441405822063554320446521138309543889833331535685408387269107866450245144153302552972839533629957499572000891140097573396359112891355303044438930313747028036150980626977599464566097483371059553042381606229825115596840310431178739225230479967318340378829914771011800817017660826557017793652924366592808484081006258411016778783173374872643382941640910246293117803964644082305074023356138984304160722653139510729539936299401874283647902805274401452400674216541053041264674815881256676078608912359393647450531663689646361200654051299128217054330175768372375747988014698406953935116056228953343857944964693866268994399496734607844733310898384644431312390331687470647479262200358860634140324259656032620361577763714316274463630065103232410313404942855872420890191915171308025633262423824237063792597160656425356727187379630130226687572553216933396753677750362937444223378521677192534939688227462688971808928599527779819975287744483785090343545204385348396308786586635880281141838980986754765627544819612999845715423164512546593755856277713559602979756449200279394054836304145498001348794880812930254566989109738722735578619357643918065645603079471062375442275323324104288228200440272135402434887625781350658658985627663904023326261721906583615637920329156939733597335784783875963788871233301305624955419334697656405460278465561762591514865154932436295071327020444018478987544987886138456762885025610021665272582544231461929953967679055330989877557383430234603761256895527983606926626044024939427651074935567872498201127404170869801397793568113439598638398383770707294175182986670971774318956256472787147417474295726738880908449198278204258925910531716290877267546574938621626494774315817600274190253060658870489823597857643027517050665642066442872453158075592310617761515675800751809108332707002052863810464571214780601605501827234727767889903874833550930789062682084742364335713016427751436684597579098612449480851146625327336010983540463844670621923380901844647995812515056802823549739017896800013490177935765575145329746603907733173214432806545307330839551331934902945269944576814774709802666450968914896084458030630015208768403419804223621442121008649257061331584686409775968249218069352543155597752468017720338685983713614717323364440947259169772666998146169597453720716215701051370917774088849195124162193031023089989595385015464253831642009859551255769785932813467703160057418929934454828833151987461792908661420848996356724003612480803203646731445091183596493536450013503945187557553621680212940978183690372724108610913458466139978607115508070547563299941878279719660987856759129903233921888401104865410138087692930552968981090869801601189083825635216443922951440557297440157429926366529107046860542344767066813983493599173467550372965406995693960976786938339643535564401428944009330539341288093242899996502128958216680212338257695382288304634546035110067791415907055138705547502556165082861029347767322743322351622117589320683612552815758318381813769447437566162949319335216298265060194326583470692886278112845104490598586779846460890112685686816762504943840819684615594072656997595527456408991599010606162584916631917297521707781937218287847350279139451273612562716582807803096053843782880386480151442651820964245676994567663955083176229109453306121019983400028075945917972583936378731699648325118665622865502513130010692054755516953070241047402935086126787201693165040783913093145489874337143992013394267158615007338448925772399674000151777776953439881796506490874842082298650413932439568218576947531080291349618205813609694667681451526150895950931557795394358159779412073709785453621187251674271065045565953032304222002185795677345122495087878103277460782240708821064308525800927041766355564104094055705273213631785591961443048879300872496354618669902474616093209191904926196033484366858441814737210310628934437646154770875633126665588291503817840919360568427373531898523148942624233562190245199402534276867739057800220778294338431706321667937847328809805348872272202498580509285575792869604968877147313446480634997859461433079330241186144695323356690301135317615410855579408013068993025802881109952139480151662955162277134234466811433453412033087016022194067536385756269548753824629969848625132389656821203793417733325425387567273138433868514389884109556984626894100648342126559379746048456204650413420099279873284230919886420270695047224574793788082416764914588870375979278495773910589962703556302653789416756546943650420727770257500356662481817985273274151643389000721717008542950644966212430813283232692166370737715573717645149292089667030547563230776992646105702593905148886758337835499125483999571161343136716457565301371821990992976057815630758517179669396138455423871211102453772555164565526753684681560721763285958293816028294021050575238646133500198774989552174774374334766120410042027350254469134886097048202689853847360638822306038268676704563169197215315384499045492694076285590139135156326416936353867314759604250044944438037700048220990194712800000459314013256936086748542154537988861026318338805115001910674785075396858726630376660996714276201739625439950716017835419354396857604157552422997236781407119980994750100082126735449904908788900211336165642376728818854287780760358278853075137632877588813169237919599405505450667170397202531588445013103449776867380180861676805023594259031373954319310302725315628220604254536160332551996083267189986592935399526070008695184116591425459197670571302439606314367065373588155362367322482816554626718129249633216678267528606050541666803050163482519131131883313003881355994437129716873460682366160725135034434342264130154927792003913029646286011694943655528276216450947699498993438147709034153395409169812690299719941794375080148273352454952261078401350276188698573224480743713226377175535298803139711318187584223550005013992852974468051921666905056652527149683774899014306331280673931245320244980728328974725585107910543359051803585947846570416202548468431112230026220182453207445302444792373615701484354391266662773256491005006047497019823592192363681998398731915424779911020586591368335594784805320909520884923816129229818679515773443839293516800706144192029783729657988034830058259996932807284902706647338162480675995078611906665747409616082397696502647108409798934129637547805354653458734354772676650658837710744280872617429358743106118559361278133308837247258484638807259168776924335326400829261400874439032211341884832793420534689177927858995919088414025451710517194482495083538616704697598048653054933235176736621848972064343036790187633068038061697335007578777378459586532318260820568633774026072443878625747783083232060696658688693344131531115702091294815592256428009529071653015152790115403069729237610776840267151199830072108327620161443864635122105684963274162411738963134054206102802612709288613531718967305045909825768976869004473197413589265372041947813968873941669225511014095185135427862455753545049286994811976325748645565984592831113306642969279692529438452125925207117625918174528291396464480982619443120533008884852788677970622772728681988395998394581998370223023936770425150208948707500836491876917136503870558906659188569545062489252205402620369764468144653375652520889219264940056716263555165546928163324153215294458397943964081762656856148795877623736375979572461850591127176056935478616998947584107527214698656159551913441389705485911005228150920766557189133487280610554588417103984871158657819294603786804036439095714094949108348055127652128423130344637652288980194775570125424840173961907574182602634977625780462743934598013344044336864836048018964626945522750165656910364529434650934545354891778431212063759445131915038127294211066504378257486094509981801557983151458789118120616739698520388994763185776415026453704162983422983694414237176061641226760576645142928010554568446680632507296765830614284624805473476337320679308866068680856276379619818385216287564226073043612855746528100836513055076889540836182880420788604503410274476699363142777431539877043316785364130269579579576742748406368484616332002617217327641388847265169976842562888954697627525237955089525422677874503861327822104060307631152612885543878257281154951607246955515056543909797587170532264002419937639119860450132962946660780193920007454882781134680881476202623339244357306436731630020352416063976657497677233573478419488995962563530706247639137805161064821322597784787189378383941799450034906901232115705252029792035167146424797377318001618831952173574178137822196046206267637411602094277179640008685100771865475297446587803746792868301178032276707526102278654445765567790245513366748024267420847792542038175661214093414636534172817758114922922973476923279589981130323437083714750860753205743952439677856067694888028986410876625528777375644883430667495502356264114795670969622023353202281116142494251320655955855000769685201086031703330322043412792816620714191309975009880184503419565855732304578378879592033831535081535116607811821924813672678553421723790224338150970969279784376764807605625805826124652436057094985547620370006723453482935862519106970378784480812588824500380520339535244790554316882696277622636715910497448355488599663042244767660027741903005929527255213994153590917465695859594894854769376851832600476763093495122704954944385765576980571262192213879752626445500250881312046055843055003600058369931497408337162792801057282102216035322704558014568730566927363523061124954749209819184713293067230000753210310484133873035232172476952026490217754261237137933728263038541039576280078688047183737055276635319979121664831901566933227913405479129167913071505980231144402139154294596574617025785522197643234129419491281274439262135360034771657206295019204148078585350220826727548870217760001201087873889118156760410469265227218139692351216562871657492942984993527628171943963077461325710713627928123387208791023064197408273966858930285622763984021511914045077454700372307792848085294052480625053049920096112649288221090563998571055671925351315530459195564030466718809315351108362118322003799956011357830350328622556573090885973812433951486401449774552783330772165012788205140410365884382281855166826803193369758719397850766976778882330705391967361555498378363578711877850533914225566363772757218099450479767130213401128690787618886777822251767454652586061302311151046215444416305322768641648318628514921654445190765430619126321657053142368557709192218771715916325357982308652035855855542043920441991589504084043924790339475315119982221596891081153973231813889679883919250616888989924576829493309261338628459785102210456522080034638525122287808389517845081430869945012758628841259188181069515936731478522786817914053343776967700488470142842394212442464403552215691082723159361653231666775430873297631754574749732978561679462341713957322761830984728208845872993053088013009351181565036401613234937248389040737777016229566471369205924082735752734090769863900749496391185399644337510071640698793744097705203380886410387252523307045475511771978139636415511737080111626608217093008503305320061910010523126976156605795011067362073255943470237804218487957677862529378698751719700958049999397692943172176546699190629537547709733590999594259366794260068979589965531597051025413152933223117737837960385436087755737962319131201464738404953048950442854248786691212723737218696761974547350902011340078741233762408939427374364475131434111359832257523735890078388424007793481614553052896181512221539326507039372656682273338755411974771489507658644148932333904009193506520260010648532833152044868803030040700219860279182765508562655830491593147028093339947854548245343954453627024168125194113746224020499074348403543360996670210703774269640570194609933765270305935256038556352484929723919749351902815373910015101249413895974240906350707000844713602169629939124281659748476078272598485376082309453596503562076085924576186210499442763671479230256518244585571820272372815847646059421573130914368456100182638354315094116560254106898778057618381883454572222987529153760596115882826269942464594441143951181382319495724315827552430246459297976076629321620824650143186989312231415651579631177627559850244801633438494802490903423011116094765364199893795991728124715586851639866447287455483371585270464006554418374071554036231462400937455139273668399805285583617579769717182577550267152512279775518068362021518302085406721138211826628816483849971335142806735537709236220000275314026859922485351200631336920813337455852064667520658163286858262489488330380390158647387706602850933986105514343426112373358686701240336136411179874715613023787636793063215325723169523563206368288176454472854303777164917312621194578967771998696219310172405081622842192370805378979073841601822545723148366372223449648170636465422378164637516882312444083141310536044306135445921768953901604176777933282082022703330911931407207671991619412639990454580387365296813930230724840481412059009698641849991354218693502972447475800971201009117404535201522572624096676039980316754213904316302033043084936220804436170352672968138343313122002232255956885819735755859223400624432973670096553369118034436538463245053884902558104586566464671601597631094376783342656311640117441703552682887190531293939312261149404191717621561632342419470093985086255651476352781490550088914882108861120617525619983608853306609083443675711764320468275698341766625601630078528043470999695771949305942413137237452888399154537444667420828563716663110602085121275503922569928013499111708497503963272584510156869522893433544285475559805025873227795132649755053098641583292667532474386749291717968882493669562407168409632239837178397388436937653464028370907845758507852580720018293967635434271614312711978432586568449319348314914571711635805834657613437443589352371656633724001563855477617888170879409150053477428397283477902000207189147239406915498450906784433132056806898013534391235739317024597577015619929268441158574450674666099640674776763928471253426321515657924410125021102853108411046298760303087407329988983850983643439771474041989497014350067709780252227694103069573840170662447909071816836805280194879456894870648000187758501943464096341286527852810147299445974590479926777439177226462635244372784965424277729082402377439772496189197334558049558169499052508546363446855116965829968349279953060604105365090240742857364900196931251791988579635972531857293480515541001753322880205107629439966160571955399743116631951536078001487942691999526657958597640231549691643576308091487720821780874216181825973269804346717165460860068208347185798964227641715334166322816001323762048390161650520972991460085208514182671105669742800371105949904532339621196375043689169073279236509735821438358905080938049566438588607772817178884453780082690638487286042064117597737584486422682445385511872993904561207476289162332749275596142927294919782557056842053887967672658716454427446882435081909956151142704692388710296251366554157908078646192456383664870127632877918146254983237850538386990260832943323113437122289991737198750375514255009676141271987325604010051778248395339340567207481101071338281135697184499166091980007945563616611082029145777038303711244663938606261629362508903755006518272992737052897301482604184001660799948642199476097075433498209997183350008151959644098414763065388276573553917379309580304270993741349131065053622689113115798787015860012193771492566404583562434046803123830675981238914093945127423159707690950120450839748512146379417730953890169166882330673372025998464059140117335947713243128704106030633829917001461623665650525422788537611828594415786503815291765500878270529082516044296102541829545150486970621884251471596068074986712162720234186897572072601381576436321800477551802017458683797922015356152565544421191170325113152543846716144972414079980827463576245317338281610722921494146605251958129621585418631804295544132384089574804496874791669837969917508746196710988924676329525074633201930351993962482424661151375098943697259278620765996706911134386937091627897076028489980244153927765272058933587830174986608474221410553707194502515069055064285021313005114839650753812193480982259315622769510417222747182993440633850412884569266969341760443863714013630714890012897289373346427316646135612518871285494045529304005024715380744896638192312649995367837308770206662851407562410389744122140417342703813349292225898979696261038453818251724787487920485163634341305074924792808558253958315044772848229525384412385474803826037790249374490368097352533629039653932576412489149402957584147445252787857139333270359634195857884234336960065121410330492557831015809048205919656615289392884129306833410819579305125615483396379489070629423347079677684885342590209603080341958214346536219054508279910941962722621813859349937628877356859022473398133199631447591677391311126617400744049510929007776569954545976365948780313021149311060504824122739749061546506442156414036295144849040408917272150137581078942457305047765591406416157521285317040082307985773508358647665271650100831139212153186699527274255890069108364312307923894821525982540050709885433826732721597143111695367824721304249228305647387147350697214270441854509304923544889158735318682392782034602790871253852385065105052224783090410583388501317075262384406540931440494280058051349867501990232266985980736446917247711091726550036397652812554172144236734876631629249760370917729451220874347828537599716888093151453252293519484111123696931309442423313846384396784651381607671030232187543280763036205799780305675476342004647225692310246904998094245331839691958312663752740176996367657361850378767951019240736259211079078185331599775653344607058805660781116070326826224590545248067860956408166841158352132558373167714441550732267934374134731759413016122356034606528484662311604191284860790486729527931794675954034559644592019277726405537755194329191174600773823457159376621465555593957870971137237005478726366154562572684993801283704600178773317633469943797180707311663696249965717458325183757628799265139597976025206303282168668553316332506388578634937860929644086177405703072915150593970552580355586087490727155981756118831917565344409676716693361748605768235508586339772844163408670354035702880506652015469163088027320186603293678055333456820200223632100831068831511070135482110193203423056467814052281758849925737695668400768094231110815728699826643472628273237866274685708863840854411684166638680196684864430361212769353232973565176763401005979187647309942853583571373706476870352182474367621040663153882487473705528805847510705018637335778045128555874962586463933572510512852559643108379515597688731515147291489320521850679013841898838707016448343541356113095843495832255230637116209886732597124239746061384042526299748923948050075361765307313975774595725251971138320080721532376308436200962168756021537552194507323422235195700433374273548074094799459960121471275621594563336929599506954034365643559332952142872495898287658773127328616576763363214391332675821854026886274176508052854025592850768850211386767134884560282077891722580431751670802643038892251732699223207107457555072859297515481333887470820436714052562586384387200582786315532088590089894451841635287090712934594666518563742109522904389916393555890255849918831157273628269082322891029515991695504740641619765197438104857036982200794743944638039510871414321481931903896134304407933026696643420838608410989098278229805277787819829979151075949156373860783420607801353862413880751238831837520817810334888991580022390158723124520580360261763118731114704584630924072742073888158752663659544375401868391326099695766461517296803774058963730897084422807944691740401600970480793324644461649851261264553276898394121543992616886294354746283277486342741442293056628796848454669220697608619479073734719707262391948219273421162277498631817942355084604442234504492993673263725323949479461636411406243821527225682690689575406040696724849161634671389118288551215177033612341132380594966311769091590861952674808804660872929210909532813000403275328260483330611651021470683307636617091776193594090659481519988694894309507819304850670458987342861610191408147271337995684245081004130705255120467920992055927702350758549393599612394141040958219518123366740145596983058117106905873028216987875520907194741040170754448792365665166278845193515641926187009534568352999272487073060372023002262604386499919703034208544887764142764836044909492687245891832450606786246105287444893820674383273454698442261065106608080081225020977427831398165158169192209019418799508445064005605096670819354910572374192958689390877795053916743515327859897033711943510395693773371136291647116041245380746067029763014766328837700893768177383371621758988067342231700276572634409584749370472445158564020997608521101230346421726181480212194953408848936188111283274527444768309723017613052669808828191489794991178409953922769692015668013696772317457775320806438626903749058052865484754503097525160141450355012701303319929602408585341834818174895817476898863616752400250926126468869150817352772321950443303037950921371752930275877955265139469571444280915533071323013298519696559443180248374233133672334315568201914272878254174755131977951193100501247225407831726113987683654696620503584453842812763538343202652497666415049967654789746294512574329079610072089316322112396042391633978294150400359404670559673639607268312829997477618682504804049468389347668411880196462715443517557904329593382143644334327619320798387290656030873116098448505238870793016107907001962053241436507626227819243068507836765259939422316560517294751653074937783551899175877765992636278754005897647971896718433144198967327196589447645594556512254712505460284659798786091805121658196006018372064325672928235178617416564795321902284456721266280383866400914464760458244854140491265921753117000996446595002053042206522267908013754956892608128487845069509062235980154353409262528954124038979457623671693418758640030383341234157779123550555738370631186708892674415504016522828395519874427182141652101137614295924015491666361124635184941140933834781585108599591866815623717738774464877008970824439642855035680454982454225511760839329045410921054561844195511775414370387333299134073370016978568538482754835684513701534804457332073367512168087627419056847491207548133698121559181296528691938095718056444033005420655884307763804449698357270775892609282312584572266992022699649282027124015572058192649337413646350735856388314095640796705844099401408626142731394276369521832992997319733209566925239266508414149726701942314270393101560421847710496879142646042613407773756103305936601308022994525986423846826719393219143726868051298335106108792031271313275992728219498196003706473281046949478617496027243862637185359182060612258784250628722513050871647717516214488753558697807943686739999717658847905382752593739149296632047654007674845894055660644084049404734886633362294081527605771228271181722369254764733368388043231421330970631778883613751815055452853024682481070271296813128697594550531899393051023071768051609196423924097322500939755883102021092244583740521091170428595299440025599353692311169280435523790316749033130118098763037313204347556944702373548464387550859319535220557969045562441658874594569453750153785463950034799121514386515916781309298952484278655192823733464421290091318472802351097112494304555352156938492169086001354964845902346179793261780752449333590430522747804811096864818494430983367772969767033220905578461334331138512232684299298983441424081590808522142232233058114961640902124545064326704529807143093373645281162131999036412933639478364303738071794431695774085134561807981084164550591056692607277488574416805213746541519992606503961049269746999014177752605757377548082040963421596746363424978048382733229788134047555116273743236718931601612579748215385831232760394611864368193372497381798882146198047242338401526812399966489511152365522211883721172342254897965985969091204824183010754187894534152502823110886171792281975416733201079281620130203635942070623901275350446256882487119632728874457594185394744667360629321924100834048406076947710578847520095963480562238541705340174314207186723673296660063129818581472936782706801259055992643223437358893165010754356512654122601195474612679492758269550596863230959505855959585895512235586423069078122836785985472083212387545576700951125466778146489855588705089420627752038893498042358646135092860618359617545306704799593714154655211786825263776411062228283671398252177962484933629947195878222656064037265501419742126446031235901407109127893308046653328536656575129418611789877812363039781262295107860081595315796596090269244107897787880063073880723516985496687705745447588459579446726963773096036678181969354349020635772840772940383882357437322790069748786452398763310110586044910819352346816569659739285924584994717141011519844956155734663692337484569475154712433200522773927521521735739246156716731395120279893853918176554042230445006554305002433350778341110000959785987147853048250206781430767182500425988266478854173629468568919184198391660002597377137829980179582039328201498776293105233309923892163146060984624755237821547873996167971885575739026625780459760643231974771726908310791382136750907904508024070495986961864531560066297091804773661407412023217598283099707440848029222930226715796235962560888195034295326897240670204978995354508817005289587475036398991348205884742333290960308119787914034058547914845459564486167514732281545225544257488584471606330958817598218004978615681810951802985816777622311560993784654690270807185246042571534395322205313144083634953119753371739144579234309871767198162598181004042109336649512138110907708396123114177475759712972691727799202154985830722968000729434630214118492090628429293362739857635795457695055296493773572213143105370300527372167695675657577745113842155095317878084827450164091113575464059379654336156497359481796371548507146723861935034720381811178951650899279155138532576100738519221899284304138205830351891442661137178250848124082811623252092423463805584484179641692051997217074844108104337934074415143114160780682832985779240121232291698219981453388935212372598776788462351415070033188613338084623663609075818775579351373725511303820639229240688776111615048095436820550675983634318959031639914471878670473666587403804168091083163879716926339420460619604306331334148674007881925186337988560593252709657377756856894364078209847149199686853218574239723595437987296715409576964939124404058074512213087822956795215745528968022080864598837042151845165015246127780194641266384181457328423502218966953786149670663956654570942880349278138230108807153323159780948746652780195435899860560072830557421686311058715016057425445402351702970957127668216490914544697865797532418847942560915537269621267072641913440266696077195063854247200048953884468334414914371487787435750873950208922448684107546925064012086387699320726831261694382419426335530374998153131730356223177427426584515837748047297720059404824679375478725394286287726343962112113870424540045164666616218884738199242478171948999091700593143016632846421221247072925183231598259462350273901760798194184442968995238106025785547011259658463199194163962264010971835899030333880677015330283073372488428695251196741368419776831173104069527957476349658836141398736582333173180990501136718076778230454212524050089432991311207050703457374055290931970512407357546459430996839092084334981461896592904812255832155730683758015283993246609635826612373988363757824777166129267898203586971328508863215169908399334233595431609762281726569810176308946586395690678856055324496175856991350692396461473849707027593695832818527134497309773033648097957431184692084711590167934776412175780356281473743731685007759178608553990955817824700036447128205581375048517577604648473639433465594264854362049102598785384311799106193088078373534692733189229885849515590998253198800405579637168312244216893727468061935229695654643314625036246572344478036257807377801851505243142228467940226052382842765014556382209220695904590085315928049956342823189503320329623137202685912458586222413895563313868050013718283241207008683982350954478527430814738753430987463610523772009152086336542594747744566738857300207944785510400096641233495265932554220122545790187661328819061398765256631812124148691741188859026080017692054017690927883475218238585302026419671980012330149305374046297970476076114732392486434081719824395765545360815219554822988365654695182678575148640017554433088774377407504866899454029799096927584036676876981068718661326778423146879858510401603671254040114595947572174504709266362416006159491633041577620119962063417483694120387264624937462194349138880173684652794563019544471857034714530714006682266983009861654558396817065932261406869043508026279457714152833602852719027067494654188302912975806219927292333822135150052389105591892979039720463990424196269289579070422165934464135908407344696538641655843692841594206494237675517272972575675395453446676631567096271409747881799008222821808752836048540742642230218258422721928515621111956789332472080743286223481335162055065196296775218836777151270297761011660395072660823327958151725970003751508740897419491841226610583619267748264448001853227517121395832252140763856359394080925384569209690275418163312369907532982149943922765794647242083442033222487732300985747622727109003840961304950361986752882090180179125504124670442564105684133043068512043964359744184401250397790578827748069308689919311281792556322110346292869187266691928451242503187303763121167384721412231063951759213777868273463417936460079578803740960074554027143473414429132845100425897249031631585785363818690615047412560400599185227056234643115956679626480928262122332815379223169293471521746632410560222749485920433653915176227324107972746867297126892065507672272405636618907788118893777300357412326034622395074445634035119209061405965441169651515950899122435378362435257641892737563725762912545837125675345508478985061461915743069164482320782067684063781797754185348071500942119956506605454063893562144957186798728283662886499600215910466046142702393141674435121188561031506642445100291433190015042527833042528049516003789545102064893813279272190249945276727626329874242522283887581525007309692675856136723547306857484457379808889045292483139241996639556646871631309178423718515475009457122721617788465004024405219809393352726923319056524588950963559227173794439240129453363078739550624671612378482724782567971962410444431326030149564125422899916271947834313532042919277833066191800990484004351121715456160124465238407223514090674216095366763041458577063221662109987957538360590046165273131727733961742232757904368616848830892600211322233057725287181920976328909271377402194496671346454434625608333385475167879679105575411624658522711579551487538251939086329591028608848394591588581235000847366746539182002195247772552647737008825775722274404043502442600692427567661030157906654273881524170239569094148622947779651664370875230457113183074584228988796003985452405861197125711907448617569826854838790692091027926551391704291653727248207843969227880199495973791072228743939001832991579775217800086842821107758554760961817295171453399286191658872559151252003418155447815464216087490704161700896533500238200778849007404643322252082820336561929598163220184569868561775580726564443580763003191009729605096142138998519453009459461190449352344490801803691631581645092107800640444970756377104939505862577707036716256862424555003317827345795382849723493995878317679483784933033339577075516087968135092062853128777119935248552806254214275642848214841157406461842295119366738818704400127122174979577987207200971114507380013743430705897206639897971914354668143059304259487026081178383144424730392187773927822160338266284837508805791066990700970191465417240805863575378033839794952717252140456114276050026311420819943819814555922452463461693702393366055757710748192199806933531837233561894706045771295907389422462438909880484480473536234860253818375023636970093838774551297737952148323684987858389089075833262392005937571169831499780097009673080537165029798558847191714325876712131588365978944780944286681094034683140176920719398358657019111060998640559161468919611152701705470272731135639166374451910722900551137114349505392045538100913461080387046449994276984068000707496224264070572649849530689940736760643760417183981913185061680763640436736630721103668193609496822819950699154108441985419183165093384502860168266326384961855808568879662964281381813355760297189504406291335803588114120629539063768840089370666122202663182943340444319794898973654671311375236122706455011075683598965361195994555875101250161473568997753528771340463411892365508239452459096236145554545638404201772773687563736558002619203093375047674084118224080165214375603152928152412183935692257563529585761655461129355502170492574864990242575986599176093896480397830351092374361123597453228323788561208454797321993180071831849118222671363191431917996435969107680684067330191429576940498927288750807919927832190524466539928946908896984110068853350685469754040890797732598765850187284603209384918572144385102595454180289897416842590463400302971418070140548886191297093037716352234492730732863224279010499298171294962139751542649574213751691643767188430069888205634711398200948455943415319509216199593411250925999161413396251552466506915257269162291896098469539983435543732270814422325301810373343543459422448438478558517423448176496003699026678594817738407359770535474452809899128553955979784833479717883153803743355887677426801394383334660943856672160169424132009362052818266817329587651028801851207226144114663265419802695694814949791407580353805508736751575372906793726125343137080021252533882770189466514577472210405206194636112583955587105759247474489978075796149682228904982099238860806212072090280368903291685335043779675628319006709665789088501311436832225494537611528657660760179254489408226249187378235090585034214286002224637467266193470375382474531963352661721374649881624916621661334599753232569407119533316673684932091321279660881681022568923333716939440341865245802340829008432986909712783533133209648249437993287967534613527903737271940763897365004866178309965297341169495351770071440940251463176778773427438698170335331958008918900441699465197017768087425568298463434017567731018157116033612320576051138607842364327177221380679736850452552498304040890241091146964502577968198622705388995127972636492672618982423648258641663855055695971466418998706947161599506137332944338676695392104708332414362467497728546339973074664956699394117927788929602659268206664925885127897627348244990396269679753230027541214910271937692539453548179246839792345479161166573905460005936350013343868740247827213085817889511008135130504650492037497114625193316368468960183582663158806832778255987355160985745497146583825641335159473394936456522088643392499699851509257020785001908495537864793939055247927938914276558814120980297462532853739721222315817835771653052581663197380909590875766237537157355929703972993315063216376561399033092822811626548973433143454378364571875138738729452472002805122269901596293256145597751918172400733830400323859623847446834134391645449505390802287101800019478727558906882202643992396663483858467858394215714036095818004721150246990616646484541355372651153568398928666033009380309071124907466169965408554156304215439212488352447697686959609635511525817033825868052490022361496964770523640794476957095252271923005918279550208800559048735657912664515526720237186487179941808336083313153480379208860473243233025883491727909686908573150870587232975591401854076136316606878237814697423864179641029320075361519786456738931208838017247933665172865873081967866494913671234123043873576978953549708256943309607248136249521870010726205515933105109769970204922457503335986227248272587862592461799046496770864804641119085816690790293046408537214041671183970222824187461292876498021050321676050523511248127135227532214888603938108973517977574778913874239930613191034354539069590653855240526601103095177219445691170991712890503298478146577811878291122063801959536595442570308057305869846395418310600587373699681930564439871233340063145474698928689833498956055267356663100239850864772338682945911702907559265063514898296034722633495937359266709082552689991740654416579565497247701829440191518692767186806544207520904486305191450112325753094240526703033447429911723468523880476205151317587613552496486005691896966251476426999264088077358670534745760993530144123473678447265361162425359753587353602869799795606729319956243702055974429694616018779148686679312532915363262647148423310850153574692721135394013771896680035415474344350656291635281222578090367142107744891601745918888939050480206255934310883902762425953928751902922773787066621506076923345012313035533369520949221343140123701091775889430186344591095088221753122431939711537455715851659173157894584977845710102302875888051337331810274433568499874944382883015831119672450150762471972159485056746306830453048490301270061357196968377773815018182266667657332777601104813307680616404336008798462452830603587800720660114533079639962787966909488684424036294330401570326422075436003381220006075864886156424601770576609461807213862871279824875589330469094551650254361668597399463070222197702157398305549704860233175294981965746087582917196544086704463910525757299614466949884176340489445207511598383074020722277928637860163591342642797342979074035467675252307263546857023786166429746151115188064141013244616232870890044407185070744054493859787331481082451135450295807987483537290699330541279044450909071986630708207086980205874210973261022986679498992750615562308360940946058960896731393680621891188860321695744668381027343503218535172972470161876570285806966214307449089009544190772562593462225813174911766267275047802428602438032093906993817074056662320211276895622836541877411922944595198476581175295204200497174965988709255012015189356732953698654468562723016416655363318550154551764120709589359025275278789504396213405181339731895053986000565274332843383449662451370549361670356808066764427745812605802325520830212075685793243917021911517273828281056536577166264294666559034177775914799499968139542938026632325030916258004654746330109027537356694665953749246758568851548777472606343503600406545794640794961165508761291078409051571985161556157776216581191516863964655270178509724582727430810329150685621464224477928033031184067978463303299973994934639749932427577298444700573805234645744456542719794792460426759381832920122583887801920503009888315351842456929429627107867954391677587324506317977908759502912476457362878297793438114540675787887982396671550041997373700866961250000341180607666001030005157323939831613357178836716596654128569218445372633889255904100471475072625890856553280631933301022693546243706434291622834936408542784602840754175712221766388105091908390382551835038187141098233911108437961742007928226191290663236700530383216460672211829431709259840987975710780840643605899650916866056366525558406697280128041685568118617814018610866644926181601210530391441890176005439797508159056642795791760159562591042120279468933042334061624741724181527068909135254999756657348233181213826977907549217704197036922919136718474000935591676388989430236351710578349872477050656570885601531421276781289626395138628421332386524667319163824772907744142299464040372116931188667975438097961707648237120612186203055077509267862596454782291120495526817786800339157029308587757367153651112891039179190687782669232951215524590610115338482739203916110774790956998226862326113693699084119972208500632401565960517428095059521960485367356975401312414082212956050152790661678851408306694284168447314918687536576587018647226754618693472438624454284920896192568025787596287205034331297524676174788062088659649491202987261010845592320770280287195642351639662716545670384015185454769283061581700903608062573796835743524973239388098773485436644987082471830685453103058811733056502838665833898233684392716384769237231574781190063787357871375272385686436412436417546327345556425585031128434048788612184630438066457936150542726804048612826025586816821889193177242679722956611987665214743244238733880727062663271533184335961132647155865048862106633636790940078242949530240806223843036645937861619147100372819295497580374443218716271980536563863460498452329943488936265198105523392374301660598267989479351613140299421735904284215101313710673394219194182582652022708408265849920394764902464063678659624088539623825420148402370749705186543019853012673676104126781816200884908541378558303221495884186167986643461178857388405021234031747200548274915770824325077213041639935162776869707105869301683936261097567504774996024039564416923479739001967719616554400730533673024430186056230985702424523605707671712744751486105274106738241729298424911517850085899859881758665452994593905158143856092942888263359223741766967328967108361015970963272727650629421439411130938356832244998936172295924876019163560604030888915017253088829813426845943523894402585211844222788319199106915515231982225482026767397655340864494397922683155058338148465305629667024356872440730125613883894770804997276464342139237158800713552510813546202637469166947968021200709461634081769654197592521996671806026101134846662840406618243397655676076601010802996044211531805053260267002906148376187935473280739477457288239460213113657141279571535360971839351714159781446847017931064636829322540758781778842328229418090236787373226916955318598559418370960720709660620548323036942079773103140518710766261840341613693299772388095199810527177527752808736935525355967888666578756428305581994936464180645305794761354167337490695608402206242756051199307833177456507690985125801134731074157895068985847157261947881022308518877932251615213748307607549832797224731976599886777243854567923437045202999378285002176401270312179439711899312709167877014197459047345102663411958704569967912395040229845111600461129463791363968314475512018595026235162367353474936450566705718929463391628063910598567168824238619340044024983181888915495273491215149077968799409420103743667661789002281810964244579819065870061695474293335278662209307538257311340804350226397608097437878102865981478119087969271519075723447335189284370901517995630382192326349273983869899456019686264363544007234435489317511174874075154299902623028569846284991160966125205121559341279288946811935468986172956149094910678747751827144708258324734363864785074608345892253662475156929512440381284336802633873339864191634770281834521048731122185544942013255628302957804221356935085781354979121535204942313618046415917882479417935927789798657310406629590420372770657271635699155072965460480313053218524082580770152717729926131496329450697904428941778013060814716763871547488729006744656701932009513159971170760458820074687450279098813712017399311612471158815954415561822264333471857446093811695537045335409836033567570836322958520427252509057741899886665155914560391993158763443161948909612857740986601263196834851033263964181649118759147422244554366541605895876071376156808683788221280832021253204207131109895289794550679621518450677656023323530366968554553626567849844283297436247166449993539372836114936056049160272567030563091036287169825321431788426697936293462877460684337258075112807135901963822521019182847162882431591837795469542853096757779081491824592516750337480548124534293345951065375066316991577030680921214606401940234676225276699589588661106301970586631593134075102735546920637963556451306063299992957929379132840567121019017780919523001680795755705260269042769613663519567861422901899624007353632553282625232687937078727236600728211721941801717977896962455497323095478683456102638372342965973344657564784198397870070203378471190364000700974870133654269966480903791554461958471671056648480020654426130354186595340737333128634097334188773423048914522022388801907261728083018927107279855145261251690121705436428580563476082546098229927882484609151216078445023862980660519805597108338882429289051946444334566408559652839038495590800108486795874053759026213931143358981541236200824640412698099695999262149898300007327472351437673095198229152211975668185423187421790242597194145291641145106309149402751197246552722735963546476179784395481132530675797919672560425867564192992134901204885993620033136746724571192226843947182364679850391901047004659092818151436671464071709784420786724806248034602080403511152944113818565878236314375334372785186836595774791686911076916490960140018850126952656142764076264759926773274743400619285827371538213375252550183605502208723094420427940033464628587366509515150049043040978958670657448639848428711987345321529782340532058481948256041185599093073271389353473764040636730448953285831710730177769505555666528926563318851430622693120517638603650433611847758779241692100361552883919817440094122565157337719358125208981243184337399813985584616236669507884433485225480848286457494157822708155626232856411820873980767218572720133687336701043327633004487603976519324958844487865734021725945216098290941384397398544285360957911174351386138842019948481231576393406236633899574435086312826797953801180352568173239864087792062954785630281640795260373326622409816287146734022253127018772335142689354443276341106685377237918121535417595834192439151338844475523608388546867526927554777350495864119451952138972884898597289249053212450813121274260581311937352643212701464188103909510283194040001261909100476865619537181544546599847018978039192999565842310160373754858249388322286342058909701892879904150410853433335492385616789810391991042864577971203557057632438260819442528860055920564800947491244722568993317630303022638510590240216886527954406583575010619711025167132334487547650837280536766625588272714255466374354497981357667894444851604901433571993221481766018953894085641662196598975158152759002079347515364475470614648130924251641568455703258936348225818603343683465937581064600840832612662023448098121375401246839004088931010160759464816319815169582988253562885180371491077594093321764277892286635211542016117591525780466603805651922897207246331990039188420679931210607410948031818117128838410085443498021486878081824713233677343359845156242089448115926100807025736194576903923956710294550190787916389490593896919582565628104101904235337691615205217369666932342762898067929242098908207239879252075620100282015819406407422413548586236539983603927818437319692294386008085198798445706451306803590836175304867693210942807214135682693515816289956445189039093051370101037668810190891573857200058899907712008631593923594409487846518792488918706012328139142788555960624170878652603384767629639649142089490131549951173657145899169254763194571281232502706642225347448496583757144347485222006456092114419466947225953195125776392349285585888771260012952420801105442828534101939675200119487862784721623603332271422417417826383609330347881430193695599577123786681982449521567297830272731538826262669100139251847640009750128192023651465980046952867706693251521943167817010282994623068832083807296411486680422646140609331397469338173158481748749428005803245539187040425352268247736908501037965457613066497503410725046668180066097499442627187314119664241030134045749904619100406800308844258839991018190836982709837749906841018610902394016048373789578569079436171507368712556177024073528466424388139877079143528511729118994544686050707982223096560415039628903418498598209262041747377968293820311929737388684383570587392914802884233859666727630883428006310441234334974276092828781996830432117001881952710366155794620142202772225482588133188876394657967338441282075604862474289030831725501597650003215842187854413829984684263670129319332049434599329491473490017868543027403815716509592403893515561078617105750066975963589184088271247888347318242085628992782249549573073674052176681814598159634089419487715271137317315835995052032031216269481207769101002764366600622577694196534120160640781364715996646462570990674344273754820569500495381123200937525507647752178386642571539561191578083752994356617380412765112289851416692631605058158912146224997255584382555401764968894539046879586607872414322997207834688902664200066975314733742078552656090298756187018491910597050685534988076771906088352831965704958035166650333188994167494058875441375615987011514012727408594103777151932966976859085165485176205160248617114227187336669527187260505343202646329886151049074212197175767892049474718093772776389490133923606078833762696669556582398578105963381768505747852439830508320332057911205514493244911347122860724955511117672387713518952759228697685794371555482364446934295882940599151487925445149355716585883004150889179749768413400676821825247898594845076407477519071942779409521689169160027184988710868063136991942302039185245573384025199061903851003107672476059726036008180178742853086359743129275799619557367157068206092846768900103279203065068385990791503086738138140462050908431657648568477033526978660125320802010546768267516319714234456842466089503178329125840509158962918969739917432285378660471691748348234162165283556522382586659149171632083501283257157656743153302022923129014622388222772828964234088909315507740745252161523216454140945719164905410373060877608619098014625244612478849500024053196962926308570513992959287067565036761884472185493911810511192833247037002797018482664039724386800763886464028648336371144428679529246029147054191198598920861113337275468575603105974860632534815213550027577319145125422575308124952251243041394342873000385685005860667840480091468540955072629578652662068640350860704864263581541503943390788262426381876609260231214655111924019096477930277241174268554931719825990181601084107176969855374162939988116263378471984299979625013870003245143186910657683368174245670754965002654241521634433794664008477791844541411409929352921709024449059355519292594351390777594731840511506006819717775042987276901077562615208594430218669935924215711125415890072060574246747907726713192482562140626357304143573018100560818793066529894463485925441313215330061063113323866118256194936794389542278015846394247775196409850446001012172668875645556662888330947762072108233499110080910500567867889626425330637857423101893415768911461640270035564754502684715191936275048600000432771144926952383622475799428055587405956250285190189668059218792333503741170367441634373328483840129123686933670992680593618228512478624657772472872479551148225512455140948825152005470868830010136043692670749256930222832098270127243501373673751777482588808468848192899575262443271754324883559927639331761451366011154813135866664124222295756311400542569760017171993635792559604711270878862060552362847726801271291881875102578083513693812721504860982648532510549069151508785808312685877260800102490436141628359785738014230536025208671728481976285273877161767021608889244940829634623529522916575846825717022547692211390874141540581046270210187324491395489917457296849543117684201523372924543749376705139001490249780256026053311342614015172412093497409345225466334184785035357705979845464113142627382371033955915022349889021249823912658903794014356542123648771475664800899132936036040857118463165889655039810622861178559033949883033908014686687070107788361642853757611239098291888698307254955998230184092493387220027034807555850135042731566920581686423455789042484950939155760972949529564199833009908102777813426864007837501670337867607039082509011796407390939623639129512870821903535172209094785319140899241224274797523708406650984631071657118725137734950296572086149836052592578649636095740823086069601584854749610701965317280318743859505956725117306510333817229274686806130467694626433157925582938839550350633942773502412623644462848395638500349366716341011558328655343809125979943598858489008887373160250754009922165289028893927655855723413388051233649095430336037198763608585092082085211209238694213690308472881563414094644350326395559054892313051448011462238523715892539369320140231693463709897198768839961918065668868893457907655028994401150884468822009493084610033580504709602896721167238589360111884225551090834551871891822222902427236533885955847358799066327919418731569397241260644882267734902602660293113645576558265038141262522134140461285211583855822960736610002033182372842077652378939492216788860746690897131001568958747447446421964595356310939623742023961205842538750155189583796454989968350581259455734332857895913837528510570946641052718651824423807212356644499856621289287949190876210616532414256853096276086959698246026765517328392190852902485755794452750889091421960384233311786407517826718658298342048379452115252988330529844020937345037401817185576046946093581371940616852308239999133513539740179264001759012888357966424402679956539097163107092884174993346963354661101498141163632464977298751376048662603257016428199627792556791953990903800205963192714855108112164521220555139566988416570591968060287225626856742161346446289967798563579129410691007613901893491501152254107473669916050473700791926771041756458813940454580218697430158009299316968600895038364858409057447234763364530960141669946285129702729889107564942438750801958177626590971098038276291059606707926799493461078954858539102326377631398327611028681114392383219437681829448423241733874401080951207608872049838865034747830907892017098068735310762612164633016423471697134987821526300485968843002595707966841376133878533273031249706311481496503036282887360975587235895698138409480091149377884369620188174863103836813505480923896025795446842649018973147723594732990633172611562589687736845533903659359354701638058252518556359340481693808599204665879304521092336271931762578756386814529654623172114208542088830887471747377310097499236023231213049023120135623718502995522062689545127983815569287348770630985425982424691175050492781281920351223502637618951514927933350831148026745033067089179577200105718750461905004873562098214757043190286611080664955980474139526263789079801884352710653710691828314138453388270810534514066278720428089059637205800866291360496290118665946099024445369185214534262963333172237675611438550936572378911427082030823646180322181977978734570392447760630493402726495762716044826152312250531688638130016196074561645044619902951955825673550904523935647228936040359886980994526721665647674092663853514295087249113810264026393161298071935421023904476970549071287219600609804869829133470642506202380898346907493798485708620624975436143495565332605387340522611747115624768519022481390473789690684002561614542741512028547796883866959624278579452321759219336361395245286985972159353997026814802543211608356453784225701897475542193433802251869801800787483113066608740941022489697126280110231280799150695133933619448269993703940102341493300525116726639264810950694288354910400957760941528538722144695336712210670034662620490894599730502639206039693690586579107405711829119464922068784366398338148869795222387668744387375695377783510475193652601374405294092107886822233412704981331873886048304096421103713066114007870948890392907719923963777320488286080831262540539267927954072614807219191505769235474276526335015390973377173301265287312845397111735329516920876552453946785239715870669506421645321948021079098751019091415231067771296606430762275587264587863583390946155446873032292234485839141082525439426854868823756606339225085036302488544756414634336223455055251522457636872371715589226027309825255008134885235560588325182677597710297936102684306611937081625144504002314670146312686533380361810945603699047130867403001873958100680402748646523074433453557810768392732840858892055221367307343646683071614864160813134906887796093014725850091503435699082666109057116409697735282612256804528595280362787156033072853179816545190741566196859142365047018715264190971588808896671080658010224842610091357242798454265934370761456021702530828143602891252638532276028485449652928638190392889845056950732877115930222654864937287171217913374563864931248885515923744750825372400983514818008733556246826418614153745929054738606327077442269528159868285530823194596223768894359038541406657393424876385950674519860884166966723890789603357380954208831725906341022133784125409350053877531240938273300285525339375375802279605877852618776565386931150580331860911278521421943665056485990245527245075224537387775011348211228957284815523231528216899130350378634887954465835633709929605807605989733040864649996318135607903224983642323479536711211524717081499907353471289423398219453806820613165643646771907829990806208000539150641686866850295479279359336114650821374302991635773006670549180876626499703784406367656533551403787739176128780717957483021294829538032797508509800701186136514159024684890224753736669479924091978849241311342644115536749525555590990475240662547856618658178624471404373837936130728690120298323048368503201297292703397106802635600335339240730219062780684588408057964517952822910414537525597526655035028466643547807864194106847906682317432244164284258664848851941965075205165398659997943537249604336271963957775983709795896532921591064636130109775040216565647289278352283102956741923841549479538642346064955114630276095034556094199335033925505428085386558937310205474901412325250072487366031523370511650098356980170925632972384854844186757019352515745577488858618189878567919004425080945695774554917079265258828184567137514409979431116182801440578665973846011896852190638307945420880328368214013050357312779148131501686381942111224251923288439185606505772432412985438295822929122151247545153917547663446211081370832830739182743064777402629093024259564620576634518009891953336068461140319933392874233857362458144362584477075223792502233020323024175448901383912995466283410867741556916122360963077082423082098897534516175743358312285321726869967205359695731346858274195208300952870577020674014149819435418275853264721749482667982551779938992005377364963648756857519678583289923614576650054069184051014748671410892381856700479632420170531368298826559070051695779287227807650248544808785522451635815191324502546371469144647232472002258267249069030666932284271326243237155485867043101951528675182340520400707242964615390426452458776916084081438644452042765415793099116691494517497825904316996579468332801266764600922113749885052925876216641257476026463053630955880415483193764478094300426188177679930658616608020083338722544258990188705687449597905249551485557375419670325509282106560298977935743028397139016234861954909932223703301717428212078864159255120307813488886903612947710627450878677078972512118728879320330644631775465213983629659685548522907739149793509332205070906597989525715559971963744527461242016115650563816091680557719870474965118997786436258944144589688606305624095866261855119517882713279107321582876711861980270454229807076157521839197815379745022204807838967787358813889234611915874001877015265386524390767388444946862552266707640524253161190534329500304736285350805701666250427140011983919666920633830675691211948750480927281118050370673458824561458414008166580554404342589946014067486033269317629561014139773811406931515536878776897606902205494488087344278269643124233564552337139347144652027634695156289559899982250125127159730607223089129394408530321271709873584698750070672983626104025558947183706250585389500262958536463323005842784410044413341560826819579564477680523156253507156248890326426940492305631362570317336442032483641371982895053791827279890297176540590269626299211787331181015081783461178468144771254730318912557720143062166016789364585528385222071803389203936155126398953275118013898374217697676848944317694898866553667733801420510983590159782886718432045368498879023228769269949694648820977549775203609387376714714432956073177564451156856423029005036871956555455929481662875165133552437124604184080404114769357420591600284897683701571668022673846145696782506157963003386896352025924644793282607150341349722007000237219452787924036556132743757539851832969810699315098322492486145891533336891795531431718945572589974748493932951751921787074910624504246366832824752655395350488863207923244609546776105178901626260040049824622239093064800070158916748673461235330379514444390811342512717072136489885763503893314515037532055837814067008126220261492456903503881631804390979440450347646306592158318969297266282618529499219963929147270357095856523859703467319427583336663176903368991953299722164990690287053519820350910506670732284352381756883506812058023124301758436840474556086139884087176404511966146116857268188473937185592751127234901645512798064623510028478820981998662279605694656552323002160782090779694792975012241367637962877011358570337941295774943383979532409775727700585081920396594958573988066981005237076437031049197186411348843996990424838588714857197283998436906371839255356580476480005635460326208483513095223020807216368437165781648049558008863510583938401166442700752829136383908774701453647739973795402932567003312783400483808120113002336592097587590677554312985610916754597958375311964549844587834093643260858481474370261639442877336492095157046769298582769706481159258412724623110583946563984545353054059172114648514485057160958530257986152810264305085024759562082888964975908851674480465144847894055281115623318812554605600950803398727716807179784382650029740687743410216178284239961191108428044600936980137001335204068496160730708231815778748932983100390356981508955142037900975055111155030929819631721773415682075586113674298488746209881557561040246800434830103478248706788230512655082389657059350398550297002915133321580830817383400759255666027999553480821358532691821926474077079684738385656983298660110808993479988628162604969664231838899072040030066784023434562349621292180280287451057645666730253452449654553076419344962639380170379662605500614072596834963929100680438741219939736625613884223939551305163877953335592615142113462248266979947816162667475910828637012107128358319251629557830943273876804109244645414780232814027251141827834298687111981554406366897959653129372746777455034441016656791822511712386386299423983462212007262644578059100974311656067934526538242338664116540796157902902672567254635304179303301430439882363180841107589167202210350367628703188361832848147689960572061433475743591129337819552042730953928911682212829031690804088800752130493509229189507256268569638141374193484036746914008885015483939487641732307121099355914184800522007364657716602795173892279079135214450896188476029781094357383489032141252369053810087388471298912581641711566420721706085388205958984918311175330462891211443934037314764954002397603292678790837486648155812390297796839894397879857876467519924850990799824530791913799661469600278480962733769511451837394091514783429883341715047181440893447651343640532331173944111665207589376269357593310655764818457422510031421387700459687713281342200917677502911009732244826716275099081959603798088297190447514800173801646038124515596074873345541806450369956431223050775146629798765338575545026946341342656555224915293266269061416026300411974384018095418155563919222972414819308134069753908186005902243354894143295256176050401927037521258593682473768854874305687598789268078001091739589813146196649344755242337800227209102983219752718101414615007782413029396447991833955100957246840905679676586435217848339116423650891711378879019752964792828376085647463529594927305244528664968919503337398330358939043602803468886707177195511775641099818960728268929887032664928426016412634558144890028851009123761628567509301391662977677845029496107130961642389685744211301050926466976598700729215399085002285648339615810245500877262577990235887934359132117652612866043064081626188787535735712585614292369309831578709835174848085292252287126033501272602246485563767133551120157771284061571825426292708328545991394072525743162028052224123847063459037113788802924668017792248576937107930132704458984111847268843323300014972710190004382102797237784980258076184786857733378796896118375911350251793257619376474097352617529116682247605781673132002293893132870706229397012185417214708181868451044171218235058988491436389062904408354848202409310749777192409796942645426155769502938550105847441374305743423077880671256826674043560574967380791236325823088169029629659045675212673725403611088267118873376228444712838933819405843565571489694396272579637585239744200451634814861335896057339724023204708780526194954618616146486099981786343068005341665807395639624099147913894746653630057014487189726608258931322380338609302716552668899071331139323371599169699874582747251982725375183515542856021634498625962082545358009937941157590243012554669251546430313903065847193632168034030143386324954968495210147570243454900717470930661328102971574833386246825413292955522712923626270666962087894721265855233636643128535076885427270715592377367532812204460459269669029280951772588859530670211340279237474335962036999043737799794899268206069992670152595658312122175298834633562279769132151373642896789788692535808023185855431498237503208226164583151333513120617638704135488595318175972766636127431529666634879738535661398325003432637175461849839634740574873713033853852869136425119337648144154016553615258897248443486010774586802203392076688434560215416856237801912564619018378653542115059206207230253017499170816375619398602607223181267767435786546307727874253810236489571998438856554803042790562400405401748804607333950856492584611974598729280811438690753043978582702745957140020872678452276651294646871392905415573233599999520963978547558226798937937256999949728451481139822665331333642284313174803266778562157495047618380716496606519902740385106790425276390379087155334854625525341974398593409003810461008955467918744145824107638287180572145362339149371035470408627139660124955102787892965423129436130000626620465362788873741969000926922267127816096960670656009436923884875170544196927454319729188739540493990598994710569237576059975221168607585227632346449061789782189882435826240743038914039460346152470093829053471859823848249442150848563870094199614401566462098452447790467166731827117136084782913462110029797234579350243252314048565712031260816493892668099619346758900318228173982661980736630086088942314794745468953600495964541200824210841710330028751826123952523392772983451324096563294195951509927760879613410735839475511105128338490543016915612388115959407951667481424981083090514598997775814918097854954851771300286842394933779450916677768443859651631128933334865305235743871641272646111503363911737850761129554254345965478666452076533738822172947072542103093047630138202405586973520764526224369664011435133501230397070264543189823520817800070978285753139167725002260305549650034113648656802841862778238372444818941082282993224998506219449803390381647248112012541712520956657186445838667107919154026999354188592824131796376438082052413949663501963018461372044581902627268198890110058103691631380112605917091862976250625773461314579068855062279991338259104774234299249712180694674278895040027939362669989162536185841976599305589209168877491205766438437336596191844047037248206652599594727712492838481023415313963205734852856013807303253302797948063508896605806090202914462436153928483327058583320138236027612350940799017311040098588850993683315715849726979924505862288196269094607717043866674048626530129005193260141602203009166539698585356924548457972692809809460325218070316701558571739312215735592595185260269632318125690534011876376751941412218362345542545555378062623809007736803998367302837606515607317675984889512622806228589569347811915182068381432192186555133366805195832613716782376539140455967496901950827546328565438887382723437167122395796527866974657878057188504312925138022184978134006749506823232973850678272127779743758311344719632914898823751710843586239082288089194937028215120764936160243108961153990576228859288061937999813958882243833363447247420568182052719127824026781039329219396898760585524247556250169061504363048850796404725173384943988549013459806545181535946437786347641452646068110947511163567925046235261209307353891939983755224591515428280352115292191428417954975092177568285955371560284626252080338707834706969916202533884314357595893630652135772064949788007009925296155532600768138447067450685497107976902019254266575137754942394782943502816851607942923976318288057517676998680530873001695376155830044945390542539788874676478338551187370413145264601461553018966250584062989035606048589715324459631296951792811483863814249600595964580422333237870620563193210074422944390281252881240321569942666256885212662480850590770990414727843778570422136956115479419769461386622211353803065436617730412381899912081858402888690628431510859728940355220300204413656802083817901982303542647684632453468859602103190376585461257410660635253255895727264957040746498690555649471595832760877994378893683089852857229889085717387284085943195582582430492930387175414944427199630080078766842384629387055375561571654048168247470364203571687030409840769848304023642554226745792956800618039957728184674081146012415728372011546642575565828239802881371783162467073513146781536868687204127052754582342391346140847374327929599264589095216458101370141114978913813907494209044768157130146668047100668988260927956391776965957397425088152014937209835999305160432465878761504338608680756927191536197718368530423214724422145310816057707898208992506946574547087287408592734004256781018542408595505399106780844777412822307982693631310782469758818288369987566891127181078094995189743405873554763436784889609775580923396345992793150476330533526890730356656402110723246240897225053625609573111729207445030226022894553646064590429261132520939933551097458431752933789366267003152538550610289474076806174801816746987690668177575599210754291504818395661649410699470030224560776113099892825976208068912017942482120967737645904744755837685319246421523956937835523959903958033809510023767482312492288582757279344374886982867494406740967518748371958683337628856986536720157715899867359519728368306805055770698109465483415826703702281941193557193920481536025263200035882460092923253562922590153424107731740161780566677775585306032516984257265409372210959581104190021386021262016857427310458129921312321585827945652855761300888444554254857900524712481467250415299410708250287347009847811395619831920808121554825131360664377785900856380911502937905235445811972705417503244594190928846892063908175956705723744429933765822652235787031840971098627558331598649387010865260229528943175705840372390810328899978080587291725770685098185985793614299406411121154779835069182036058088411244613830520461856247709864143139775852727760541234183747058951500334145590323962687455690808983212810532969908170630437936641934243682859923418439005047608561670579048137533898457621771399232118550251676177278664685667000585537689096349049899153466671927203787186232368060766419675994050195395493662428053396474317756530832261508722373045054040942489720568509372267088115210921244048551637281546221252282096278083126213536352317466771308928323301739436521540601035652985211725340565079080190606114287919568912476481640838516812077212987028544293122291976761317618915212867504686240584481015909367440627955766017646314962999068117923587670484234093585878880503154437159934808455448768755217687367833268553324341238750697067315171631126640092795948823151807408823098518118296265768441442264061421725985753940529471958216971158921397388086575101941221452672556021702420193720031725640666677244070360929957993318529659654783977555487849703161260158784170828044614360949202014893789543131504456316523212745023270134503295378223907250787137065601512705401693446737574197426875382461200490265453680684970880483595185005373465877601709745401992698243406777667550468327919263683308534649575652305374739098190977026284553610536038584481061991501153736238564806378795493948047919778181037426976332249848227647464677903949328178469688523212046680785565367883613479892027961594218068740628447293729282904124707350290770595441398800738283930200981914089344797593047195567228365666596638533904991836063529043340113928385602938697729748128163675461036315832962677584979337445944161928667399739047793004204217810060435266960822618367281592733354079779744251897343172324712025771052555809706783388684250503201797277262074345481997980875713515889011793036940528227017052571904072150736801540449265144444173464815814888132599660028278092404641047484571349492426883293665597896269841378504575630182435618197782451539673028621787660839176907083894243496226250842129113067368381253511080654903632729958742976545208185041077232841861090061501453914871635324842231155820587987571060542804297575075255221145277044032182992121714342399835081669760552562328961804497429957171856119925803420014339967704982473874383076990898228905744360396327340716164033277186881865841296102836371742918018685023124066997722046495929247718988437261363100798888707504433443681938868492070027179956242180996024057315150916545635225831428909272147786875674556355981182636616924489450958943544039218737710884867536096241959272994289123578654284101370379773929194302224016107141243972011862624269250582895741302349281483694398401965330943400522648598123113090621120118934748120404190111631864123691073278377643932396664873070136390154969444025627132790844906303182736890345217936642728775616110189130432032492738526628661098298415455981716801378024306107116961071579060728983161342058100795490957021921872986044968553251135815736575422964752967109330066563200999217210155854646044250374479661282490397814169689236159893105380502836684411073715169387803906978280577612142317163708587951011844565389532974618591265597043891416030016884893629335799900859238573761246793796599591758919931600550901067827007309510294060538651241610732502878324958635594347572242672261702872424144435978131905412615455708946622161183155696494419510444564570887060208382121678469373498673831062806165993797917693103540703176142811865405856257776366077369386557203172555343941118482195305610386940070774349472300325932905080909496567991705647457104060329644920236569396790585256805617064613693774881741388696372692515078956697504481917579847727226018090214594121744301143852746803512095367164102482575918010947498732444300427519306642146060470613305401689162871437928033631298456453099570429875006931362332455108016246137804887251707943283462505767749545942278774792963600442606412453175430186622944566894884518378432612548516458720823951415651711482362986056332608509625947942364842660222065682088471907321636685626816443940946658333216166065672706176379512371529700689194860219324840234919173398909083744306732338522274666092331647406666128692737169730210794843308783978723800799392209310986158731774726535354572585093032261294140047981760461528587582894680013854705736615799417021499271221458009249733007020460645554710197846223114515907842708274190970172203120648795786686034840359540727750556063059136912016649471093250543747472049927869237523326784006377248739384428564155073399289336581404640954749073845168295390537046847318000668629174467240178011135978716740011055622411935204732198124591430356944041336469402107352737725656764719396448479550935162629518850103497403209339818356757004535224317883110342984510039506186058605772721750786673859185358656736869003303999514343031404893312551573845137782398456202713435404021003692403475715402552478219851295918913885145795561669605012476261378518155342416436866648853712506432559298201984731166596547442461073060578954819876208185292849136603573078674800312098432173408041953186148411440588564512837978689487259270776046833630864345064470025120755787409015447262704785469699547181722721565286807076484209643608243795710994668355551211202162421956997561138972386799840803318962906933166938128375842251920859217868814891316391247513816755035318342522456311697146956794055606368376499773853242002728388518227033732318156508032968349463281849849396493856642194941525361560000359628411855229099732432455764495504976187630495741275092478437177903509388955208357315734058317285400526932288959383662528357856893722403912633458298908406869504014877736648861190181003135483017637642083371652688501198621145880233395515705365226548347300784909905488597965205402302817448649889820400134242063027194866195520926013717053961522504842911323309901480700201760947725421672938337023280827980216342565872837331817135496036008266575824040835037687016994377674642405835125682950474926097433143121955554086845100070742806659156883483848437173145637052066092008378672536949451342016083577392303053044989199017139202740990918784486345241251696467763568584981148720476605054434608128740356512436132048835001755314289757353779332335823173234346576164951432205915487263738387947284906908600978941195486984619347831069034774629434906888975600205378378049228181100797188647726320885880264765934090643749346566461945840061577352256635527581418384837359838607432936302016699227597302088038570514013104568745782191628383997659036642692352067783192121164264957922569968181172011290035870667431044239887699251912185944429177166912680211779670494686668104582347809056454280727336753000044781675413463643834724971170681825869009389494490963825226152125172161441279572475366051413309526309736367360126476345464971785932226998138752315862797131770289762269655556985312573946680879811211883012055962293238810034191070680192453508742134136392849425853822900281761118501980059378399692408371779320854080488425826255901944680181598977103992310846098032095842118699965638187930886968961684630764254882509771392299675593868204591021661257744330801142968237260588854518632380085997274789877538651730164283934406958466710792304051600632447975138467770500241598342813086128280999102483165753996419501381895663456140047004448405467111311324527083155595305124386051400202227010755109588548674177751856006371405117811746637976625362067489925563751649700535391447111791693839705131086563046652240767480991724264106487348089577289399510071424762747369148488764929270313261652393542096621196502534083542384234196464881693401354768097935651068112647101867990193222444223592607789412180331139914195399099148747638300151885953606059109688160939294667838059824744676779384141118754719652430065207307214516472144823322063386444621256550985215569587454513181880284694175249835319309746730020456086257370825430186647427174434099114689707549417059795119335162001483671513287603981329825621688810865391091372614784659535120402343778514920982445124123518959479845648543506192120931816496781744894874293701448103819878001729503607543367090807644382982126687365359879715900691508803060069537257049922765495664077633641018662743939416377578027306543352530555079345101503174980373393808716612135040446011854889733426020247166199883268542890387855370780766873167415258263463967522474210489557025385353568343085934519573023590429085539924387805450374689892981909206159457644925468132871853571364414987312003772264559773223015543896374130393914181403587263324202240488819725741463650133373916333735288317904837360795399314022143701595957437275612576453678528236238808138437758129354620905388818540990479463135488428365504804621257823083334484668112017038466238877939735693778619134486231535701841435029751580805638375653123590205094070836656704685358682860976523367952830130701803254594943820521845555595780989130377908282761076259168271720078304597818842289135461503599338398102819192309896780898300670265057302638866567589363981058627112370267308817931204038661513081146776320126653047132987785405539434078170121836422135397530171634683717640335608321758014906705696185677265924226368484772668269782067310722856923168679330483685281123597160557765451474604518801936307786933731196744279372363867966403719982430814739475835729133249385186105770975295231060769325239613642032068209139319298415805766254501123026289777839559783898801281306885720944084988842068325258183315792304338749731639715680445103490099936079872216864826492504064239117351094000685142568313229528605906027858921528937346619096582863622673601737278100550173255232832791125665333456097466948677158765107819523812883768545726323208345588254324477571004133487119243357858224689154014435882086294297456180886945341230649926969940187313121454086325535365768124766248675599323693079952782925592809431773670165024844420679195923858571385815847900584719800286316452108882047152788623697099647211632103564596899111850901175083783355510121335188719392739310524868537208878577590492701044096325499554501012233759823026137450492834596083145602369192617054221895755017202721229088695566069722265384103804467311097235309033708269043626239506628727231763158240985508163857585908026540521825800526879602469156891641777774913870998793205116620376461579973721327650452627396767954972024705242090129560918252429971268971822850341784108706234709759526159529984984472207625742302278808572161553559786443862031036032951523768811080105122119078533134326479109040975373840150089459420122422029796439349334931994698349739666181670894460542308591260691775107535149772566658384134761019971136894902567856394667467797874292860376224678452616981327054707446465901971854132792702380970179771724916631603036933975876667402885925453676510763377505243160274983298671161591863476673659883741684802885263964301338671529921247320455298999702322587300266955641499163041960924064338920843633920136698496881088930635098127251804253403453069668991047025871061353710528208176299508266064557056887825925764379459286902411440330787595864973599153113432666014977877501663517588888815477860388659643569386952300708741938883867652496813624218417679725131478342148239918140958475216892725191101536348924219855784490701168758501349375151806150548344479673729395659869005533037297372112727278957518381882496098947943464746090128961505783344087563154007065687055216145933501965442307849114344137658679209150784594259431971170423340811094126777924833660976789880844726742772754629592078669503437367160525630337437072753307210246774613275349444623004029455399906444111059095200188064727371614444961301585491017155458790103301250811263087153882943169942485629134266259361653741269673438355606550055129685082174827033838775092645062336033601853417576988492245700989400405459517515543006557960260377684374241163653154529505514861765703852116610289244506359867641582742345799295828656097837001510950228747324171272230335467359246971191979215251039425977680312765815475733713976421899076950345781167371139595114171198288944930618536299846419147793466670161633383955130965300998341180839968386727134785053176565842485509193493306483650112526898841894312821581485720206881842559702081377333207850419640047759316491768028298363093859618619054110355608783446836701836967748946387818350962961387599141586818471970716797733287591187967616379804866241268982212195554206801339948157333326627532840484366764485382786299744370950810115836566045903875749129907649665697551218430699570369332770812234120445300757438617283163905919113229272059673009015915909389594502362294087435532629060332253184126947732602465526332484916677668925694805266172527713225512597718002860075677464922197877134713374363871812112565756418116776958546997836792614368741907900491353231442466820350075290262042909573806001620836414921664628150372464584717013365452828180323538354647699792408828190989661957956220118565887969612804311883403670083092658695219213306461849367343368556597715776650463004107423395177806409288147060188334144300829947237959682772892685234506883758576386559982901018544629598219229414207736899309626417484229132427566185446582855862811057065803701466746260940539115801069172999140553376171596481458570460913220837168397737798031262987306166236813053324905596480752175202729240049091308906264063739402538941807171010807271410566101021211263743414152080663014294822747865583836643656875996640766130754412398661924119905965136281407169433927614968764046942033199346267763594095822634901996117084421785250876550989328979646276598825940694953562462876887950155027482638162655224626023800688435739966059910379935966849969623767233484763422843620132898650329675337029409941751232998701103792545984218374430294063585110306688777896978768608942299880723489791201906494499780959922990128113022058812384687625134841826468879976536503036209971508029226501832983530580654033011781658483958420942905418085696130673960626197567190978238662561830851877740528314137176684385844357191131711534197413966827743836264105003304222165262386402084970157284519341230418501523767507978232101085067188281537725106860380637557436337980690162622717327467883997416601956965094933739349714392138359864299920612217332099562043831315844272408965152207786628439588757515052235469154389232134689823497707254889164130312558072304453873513889730873289259767969831716785138352337775436545373634740122184135463516601983149908793187973726077050748997281918196437752412551220256629208027745635886780874344615773881460370794690356870768777566408363816227249900048213412780529986006660790309376864714424969603802090994292601270044912200584615554737226671523047070999622006777731940714388332057035500922846235284757177168041808078120243600627389735346919489075495338411716535421066366101542688662347673347605416227434923655434433706995643078417653837752941854079664556162054764370344095823338327674082194552815305296465751378818858894734473413454999405500951405609155812980953721484020946506647134286989999664514651946865029226980498808561419631714411997069188785855629451504688599817874660997900152920697035176861541119955436459363431872306249403602563374481943875248155735622911683431854490087907950958055679250371907131096603355318809299395316566223839798324936322020939724858904468746597191984801878020938653639158004303898500815509547996670073284502507527594607616649469353851088755001030610841661328021752602890189343178606667427830826390625606400742728415208131337432308453038853017771625741971779382172862359924174631445287163082377029245187491809434559816239177838029199938945537978685584816876580588841988146585355353403319628431740596866929923559185736625909205443738956901561580625077504484860036850371656226568271134129749589223824902113933104774370736732734041975440084515729880493202326622430205888642870019650460093763950223928110731318387359948772020967045440164146303868120671507907907545450386791645965357781241570276323223055976038306680945306105305939647321613465094193972785860462775900571085702861858384106247182134629237572529479585201569350067156954109553731587999632824490983571755893609845371330571412428355144742998691782355736728898238665852171302753273376138393977949538157016109583145976342355763844359248055156936515461921178497439440129825530000468466130915862971854470122686079855366136927156363514762892681156253118964364055745650087392133647623776146916447017078239660744165803998817724189581974161177524856184076852571557042277719563275099783780230704976655307472787452093243310799044293768848847903287504643541156349445197535620418102845792159858202045956118870304986600781893327588880870763710044166459528810392675917360326439746970949702800856147521100044247764823477762173172958007720896514844475670174028421909985182636508873078441163568993149241465169215846266391652365123792727147292077533534580558702653538810292878580674690284832618584052348051929832172181154342684554438064681296384488516094269340703514195669522004140282700691018573847254101140271361307760351717323990647973590106132897587621508075962658312812818712910839162116231893682958485493422754723277710587643255444538636194386508748104478665083399501582086184638782806245213010031560365450750554180040853806896360782488224980900181519515434665263929131720092687056920882843692453760564232172140349890888929789522873692247098665277306012298056499826000044636924902193620523262046260419939302651113851787634935550827740983583978668506575838421679760899368676123783556429939406722432496559596115155720219938447707517967581582498641408143063740357157246902828075764640443036514954508188534110193833048958547320611372972100646940715208426373283932399889629137215683963395670232484231464460155631947120090319184614630835934960880132120960689534306856065258947134407137172424683082743561415201191184797171383485523803541426554371505024268812881517836999061191200597486417825989365672435928582109953392122787169701068665860845053481874625020644150446909805106961215003538526451691411423775492732754278248689761802849161544035457186311758205435222578320954654549757093256683737867681642049921316712608050688920166347828261796312109788356816455174953103893411949671034283762744917945174340568577573922449863851912765696747917714072837189244911856299146270619460302509853668764770204132927614098327846968072880787186069916364943734959355791876068918112128706649398409731700775510401965876001452819099286080288670872960331389158764733768329827833712347095924337852333268408269725235146374912944617931064895739673726207381824799445205650756635136448053695727051499123934177097078719866566906734160111801821994303187124889569747457669501391849111861816625271365976998783897155647375131089979147356588819358316880496765143906479053954547999967484164850448300708649412761262789467912607354874408414237954182886028676989134272302100273937344960732848296359380072026540767791275423934675859646977334340225243922091146311048348539100372179233665348081174150131499396971298809700197529227898980700129722758983385784684184109453576322176134386282008577379182543307871789446292941307197656917695069082531227714540589537093532428583511157099086686543958493828198260132534111925488828417707395220741631790231652791378256757359950448786285565496850703070241547709239427336572644336251396667832518645001752692782017514153391228834032826299750093517620689857598412470109395382800674458934508601264003186343392596238700611458296935826018081125383102057028003451069613943455693669230954341636160942182505600031199581735038430253718358827763155226442660870801440219893571367960645463724309876935728575378454920371996104990614959467690979618711166119902062659211529491441152182144836324778354272574706479654312331055083814537021903979085471101415482420867843445862093743905188758484644123844538444642154543695402326806289606300345659194523781004296208383699608688320892936067857192977655351735460867693262008826701539000182743030424517554043978122705336109971569570932924447712506487513026416405573698568463938067131027913611541807288571939735401988630128338817827287759113734527336749272081237379616578702555331665784932705356951069311634797435111742322952429913472868466229026247504028784112749683331108446486630194985130408872072309327058352528358322310700950326900295010373915912022939821961641657720397479929931027639110991530512328499438134849015379663860233303304977142613725988046462677233502115547198618249373621382035339540217420844078439746039134525935741663142030293217094864498668520922490497456163072776788326668567674173421152004515056430091855521671356493774410326703208167892294782196345280363040704677148306646619700394840739215801932499316308976178826090874750716331931154485058774753655158441013283046133296172260740546058210609376119106881428129602814938260530120502091387514767748030671999261496432297269069470861744612368134986079963131648123223738569869930715118552997499799688109813411283983098414163915924515253227253064178138538563764128623983555676223401178362026383113544783292628361477375610081669234531281274112881810154638607317037421396141727886090090086300433347685438974702027895620539406118874781225256197256912629245263157449355025756123495755970705355967173118758315140217589054155973258298694421664601887482608265992468153985510863195106803419597714612011654039557986413644239991766355741842189646821020216498381949111837868130574419151386240208237369686918852708147156702870879562332477854884775925996490762446322809185415255645222922818868344902305288815829366119024958801134749973065558685843224667775436597757501307567075261676571698731939824335290045807949936229624868329294213579599799691249422230470073892616190756062540599133473067270293140552183907319779846484488210348456947038763446763325276378078684269239644795213298663590516156385713703946646226094130658576061729605285195396223643461704283650889087526216642673762880192068110947667077165803046545707266102807004054828235242664962757409264000887888472724233607174614861156301304117428513137601381523512664041289603712400170761385079629728624453410397708314071598352582171671473903802372434437495336889610398610932140193652552376694354388915516540285993290395044276612253833480436899710949184773895010987860454126603505058227977791881409648331348196162581959630410269257690694176216548830135113063078606860635242032217238133852286941598651922915493242151530500585463130831514523484826854680401099560817655295617093287511289237212007926613064834771699858867667524492690637668728683536965330223977781556055695812932333444227154713431869108448360065066065198105959056135335773335451591717430168357663225611746369969870803687786062185954359067753470981280139917929125107517846270845531438167302919593224764768351835727389405505483435133992467478899796900573094149903070745183106465491131507563780113900653592211932235417443952250462832534710757248214328197519158259441098120496329426627539121300886483011387625850308628521230745815084999156019389214027033063969285081124149362834150642265706892568823654174787382713828207005542378820012121079967472558019925291977837529976912397437057438524705289901963294026914575971514941944622468795306758008781641814072665451117812416017275776729834547214219199083356330901505782061336189027649590995892886260597409231809784064294571827194849604025134254202935138765465443293542347981137558782163756314783182954913743099127274394266486768748698489272648701843646576276460490296682445561471563683028093604110596512574111850652514053834408949357639119524701620360864347167994314169232997950543609165368589285506712819497143053436932218591641475093488089927270103578677407902271840778239366410176874560635347665518065809808860257940686871505067069691765766956044895527636039485244065699361413264946223095441514908691602698398119166229108594241206769145956654103091224774630531350766591543262578310491801454290424988218761566532063951466304594520858590751289663826672570467332477869008523095899199158170452804379123443806350365521502305365493563607373594183968867605870630760829732080993737156144012055013113243544241941731214461513207270308737191253901350200336291749796433519298737610253657747326595754234410447219404488838643502381982773584027643809785560598542695588775493474057580191546417553675872183694721935986388626122723433816956069589160981880016114135114977445896454782041737075978092650001305113117084042174267362871213334101211945318411264053240091632940393882272836105184022085640999236388769092510290689998710778839165791527782583338130533491131954024818378670846308153908440847829497507919866901945336013367598552207849627142086893820887580113214603270692060613347254687388222050057737935264000103165264059636594556876740725395404013268180004613225662281254720416521250467597523125388983882635281873621848407292980732656960121489213186653404391169133180687034490668257281115812434142558657633105111689810526051864564190748084663943411672260568796554257414715128261877017494008860071981100560045239561683660339739662137609724945244221819425937341020879652430583273649280099470971286690732332448147537488727912911203140400193362276185324590094791674399224272027549824833711052661270867782898227730659029436303400890114586267919437446738753580036648297758850014626200245248686045109178734458302761181039036932664796653911360321403493214530726417422703671882556927428926253340732059780538136616101455366922600729077110885263633259233756080379900912748895404933557864398793892817434412007421163531639394018669821511067651988046312625147243117499654713198274709088038891164831087496991800450717734213142957172953373454377391603591463606497054800504161097024668787147036292087870982213349342520056579014894414660546123161431671668060122264885891917981966171598624049451721581435857736255146771171814919826851291502160181494744644213971277095283909374379363712589471546474422430762358765201585201854284306650841500486583582042198140617029755386530484016055235674073332314851298373276483445917966453634626282119441821025700390163598022549607327290818693005876174062742985014205023590218682106626752534434651853159302361041575899561229444301508570737535001421706179200990163395065239247113917101312820764885522995892825895208629076004786001018821919261333176249806077862141666907300996589095609637031369850573157807715596177519200202341844662923904910724539776037708117152902867172539054407338926232839349660924267584444031669362157613099562902498885233848188701304395587872805763479961153517747575829437750415217807382064107106914956727414030585592168381681100784709036727820988634138105711063099866101514675844316973168450296516384561012031601820499881997139315293477111290737131288385730173552152017010517024143442792831566688731538638139901861348319591859381848968407228781877741808679088336792985600637444101214329692613610012291098560103622372166916107822504051769214430410321748739199549981279733625305202302410278585196162440310759362907999674089424039869602433948203843430710132736001582734107152638936296387344829511317336973446687105182466571753816095735119407257287498866594637222924531659218116907241207597807034347820181972932642577888330001262702624827719038515630238038767141402421821851804425662929222874026371223439163265675405710346959770101529720672709734254780303509675590880538332709861921992353816732170098570195800679753537862013546294016125952802581030762696361770076428682470422131328122598720865012790392903001896863922115177380911842116212913950692041381347328021527231250753076794847821737482245968023414740557944792534379881415604923716392509392256311129492901575808551727076032847707102157168121947496637471907596145885769889592633877382947795670918170988236318224009806724557786563778686049599762455605076820243617057205366131335141679442307953897022211065703601437529810023127918255378187492250296414578280999700596394114319023226823391372784133193896591258876395498827782656672769630470402389609088953269478252489954707010168161746951811805260143768171311332010636279873714339825728836796971652065908101782151431675552806746736578965641066357032624610338741551524278596900392082731473579539831582732889075151407357350372583333945906176462387572509220335399316811904074484640893460680859025009716150508622933890750654911126545076392426320407147422415301043511576173509112305717032789685668743802590869524188313521195344114106882030144649856381610435196149420041285224311411057790450241307163410026962971915150369498355171768840942172235663186131902471567126630970098214592768794565677297221624981391425953712640630197192178523938109360425089985627085261953563020312768766776961684400143479958428368165564194299209301333835891387349060899839105405913049456886140776474861704564011696143003149909744823453437915480495808336451915655265115502855904710302163951059466982300664330260886430495089300913579391257381893455109879823898269463114197966531566099772462668028446009257957093368730466061414899980174064852165994425676367228726163434321317218176039956685758728495113372887002790394133486287559949113126721900596365314646741472706401411941885624850907700460869650168228187182488246276762807285079666826841057912456879602963591220156558774889001977684059515812147351486223907791486830374891729569811663411105008942914778105213091594005417142080209168115074869942406489193776932036928133367715676934626420958276769617688988732589086713036907265530318286264969381049453796404750459610586937849107321434063164384351917119890914198102073435390381332177190690128154603740003991023047985698966299873796281368109404303952643534760943438267955971619085750374552226605440569631600151407728360934334136406763501506846187695711362314779001210800958056594138337467919835626970130349705422742726834167900912848727623794434851418632561843871672595043756874185392004869826913296646889208408961611729405333024070475450088496692163024912768786560198076853892244423803361299339223952971953812955517671625091027694943639510742471518679357776293742142690020295837528774912548447906982748564571206828072060340034126247087258341987882485910126802527645982166962853875484530797267335232184108724632128204160076968573640728928569706359867891526941883736425369263117397376070880554969422886450241106506642645889564781588064814665931085458244295492633631527230521542945433340413767430583592812148521808783987478293736747037189135114702209319200893942108487713542871804650172911199780824249679506279276589204788215891285634889019146721719647191357180192350777144323833809199999816443366122555107677870135805586795008706033213546513856397004917622925428565196778342287703973445065396742184426720243954614628501309624822541804120527182358018092582630214547808019904996183125814404282953308576862518563704638733322588287373576814439771217876535404264448518165483288186043327745014232409577081179295757836531182792544283429885861203349764085560917807519420441002067589200146730575673843102115624847790817640472720633705461240686360141423243420285054054370509897666144356600646163201026988254001319749445211852777747943342762968945730001902349951394299187146476663541566690209122738267125732244858738570820888123755921812381360425519610169783724658746700955950409231222745559003845393906057452957561998185657042438099725481292565797294825842323618270011850591698728986030190583793020925014928156924294511568131424501565884287072423283228284785370710532340997167767477532275634417764194529183810350398171303508746179891923887729084285498968223672926181570758436814326782363396104554050249718714613688834209232459252294382346671734890765757243007542493099230957978381268970229648177849991427848753910219578255551309528136717562771072386335440021083401929578677456582681407625295987342783930936880125535015360590129580995983494433142739361621592167680647291669447632335267644800837688821036529586418950488097531935373267479775539824992115746091929852646200909280162767576266731776106791813765088155959231575950916555096261964050684109829044843862112463389154022886278347498453057039444876828644135434203356929219341775668418983366624454077203386514189800794297700403054285211315079128474176661882071322494322955043213134026576256134132840454223279317724982999992178659778558934833545869179798159428664192430764825455815502838574759359751903934892484589885793278140737904646674095257571798407661082955042784296969301643108746023349606523648773060368293578063798061580580281435226105038997974459512537759384357447026829549858312519426712314905505657851527885053075112651865206704354515987023706296558460504335396653035839365414267112334648684712110195976207797488737971835512709622996388935311464219090639402455730230362786022162086646232692822928862848198058275769941173088274575346791989321331956026767958261731259582114732675970009412601981988340673810963679155012258479700692685664559060335165410556964097531837812546673450133705153008284946643840156103667085852223812907391281249322303576907191469194264976439100163539856656909707609428840406076020276042680959728845781151459499711249218399375094079457647415030783566388219238405463568786843522595753485255040622555453892410362322908618006983774749241529792240716219546941684514847549665227400621896314799613987358871695385806064604300852036909759657764714429636214871030530598961379105157605207431730583346167140653678736975152120599387464544045822816870020066211967481421095716734092420673951077277896461878648075076602555700137222349465314772933247886177405996431995886960198401311410000296043259472472576906562291643333888130109799692804130362653141798290797158975145060941054309377187083724019585513896431849887648410455888927032255484876981623266487953313574307182209440014214798364812493507763519547044273434031707507243804677988881527211440632474610659329943610738110215223471402447547533038074652168834100665897768216654027001975860554553326071935130260679916638931023919302200054824949122938253461316743522123367307358221399672388312034149264421898898991221345245169411380822288233110394472860068282796521336577222300552537051285750971190319248709502095185501440044505784223619176687779858687013564519786735385504504173884771764368930192986683291059262153268119446928478455294748461706769297901507925268845013648366710754853526134108093389136307501936612990557874461181374222470291815480929956961008423530687834397700230977452200062743376269490260801753414470943551076011445335310439084545646660659936475574595277380652069631079054780386022331411274456465844482443272608952670504120321051793144023468511634758068809606896342543818920882390992803240658933461249815168761751941809627933947098867116416498737168632520420587989132456058283402271341306994527844942266989308625314230565890648214792500218552781945585960259195963094015477424708551628978599616351332537254588090327956749776480870520575612326665700449602555091018726692885350028661917310040780877077179051763863480997798725952341923599226683317389819430588337122310655570693713592834042749009029101286400980762169464307179498251646699563249511427680940433744792266917438474695104163549844742976771942103626340211979374308406837343789436468416231462992316187970867529533833999751656888902466902307593512712158824770431596664628642534426366002458761708183066718745487512617994260541342836922703787178154302519850730459576873460776118751278335649960644298187913988295782915995501340575001481274590774002237692034550713208802507526588792657245433452843484054941133713288663226039784242461995114616734588441480156120069772221256200087919779168247745865326115662215491037315833858422913492523015025238226706856616630737545400058687762175810599299442119949926759943616339284190421443134730664530267763155164183090502721295865363624519482419172148001339963692511304743039778872701614138618282270634115442742470769148445936403453981274828916594043368581549229546807014487136325239405570265141256925589492153631439636678250266859550557770691963427688250398758680290803256809282195398616809005128635141962399714732114927508754835154431423990214284462082163105667941895223523541013536104768359328996419943816377751749975218886908715359878902929401025653697953697913859025089022202354053414211723659721097687915898411409427378116468032462947362479362719955497731733291990621096313742772340415745728343401044063530164948568028335038909025631612223564344861372537881398599168544750430926447880074678201617935005546433780295650614080940802626933364215115147492758446301134677452341833403469974643280353859011534170646243073128800867505540459980535370864836737544471866914077677741005417239777393143774479741192016850563966589447890909976417018933951397755352537518591001679737180104109060906611079217370176726974297935168609057262129991493381731281825625924394351716322554069976121045359913249885459191279119748999502282302044259366809525823329668205089640713506960928933060269688375159826425370083809050813000627229054263853669743046708688483587423259524560057125253191973601678289839156299469631821535311962678560429719360444762510852207407404584000381606295848005510969800960492876571055426807077031005742047386788911395003420668515929668804557148974993181151471249455174583858030296136160606503638324777847266101842502273123301190501091401187489034388321248334185525693051936898752349209501093605346232105239006401308757823138715109272500394892663171235441799295719946697043504054333180042453299540075105303596640079878504412760601420219181447706230822794836988490841916264983828309755879725753705882435315738892938599604384491818374138126685761338211116204389842253305438426650471145533005142334095297647257558372231672293946628115859282757332965491152994264576956911278775261314541186048639974278439571866873289871649789996251965294381549110085086403448949316956479812825485528866511838007878933663024060608014500812109716653528270344729590172090722739792167262316795015392025943496157166234958715571250555931632694962242965075419313919650197757839704125549672978493766075693278721399526875105591607299935613330410314814018838725077515668485750718405438601936115404293918319024877357749001036205992497259715596936291366001277967470463948236837847779888470287540295311499954711475657756769973074633263295547689443352633136473460352036630477638127892826010236420668576821228789053960443459317875169309384060140494811446883941281812457846209158556204774302807741734852852084286205977050090652271656469848064090140558305932080912461580311248091306423417661023673922196909948173196153177327750401031097898554822348684663982457016125605344186659891461991807448202539253530960025336157034265805605707993637589032727187689862141384646189212077434540856104708282339578567617691056472797074475329833827402680237342317496533413419444925105280274057991206036956765939262219142502630657890967141081595604724440457386602723662582993096230648777630034186785232128499862481347999269220597889724354887028418929429260250624708032320711542935035777040025465750720206089397724818036999669135847165181735823937225998809010558259727569704207189584893155358790820174022550782520107571979490487234999613131450591048379885355572848993007972838880561360688537462848939643664308275615758489801553867176575888755409580114359187093440439519020858397734822229748243819116378316712753230595712915523873782732123242019861854451707331798863637238671517049193431914580149677682649783650297241507651561626003028470856983346977031357391549515984773628580471163882762231125931399793150061906903433611327104249283448306927048256988758291585722167620722049306907449932007992906230745085661376771463917886007329375844174684338592639743701707414710989420948828799111704682879843448269020895332097607120937698524650466891265603022174143568181252162449470054098716263904992558021750303342692390602247953761974835708932767796530239495184486579884411493531816388717484897914419048672129354818621534577061493888958690241353683727255674890636962890223574497411209197948178663729972984983765989023856620342063792751801616238053291328486398723467061707771868932385480847463192672050761044167437307288414669246514165041831442280239498242253438812020096583284914097011777584760374206488584792348843195177173130218608435982138037268140766963956170696571332707908201133025102016677603045693496735284577451342671580220534220145923206302871535893005703077303884076938276901743791603316679048670520738166623012238330897506736026072760294052159538692925477496448437318126482757685059901480129608358428451145791498736149411214905938289003646773812147279894085326032919926660772272722885595520521552031061333777714600688962424496485446516930602382324081154463857691306963542758287269837976134243258652141164133399258088728237342058877221618751461910194199566493084441873849430086658620734323605850330671564621746472430518670496841543916738536469306248852369519558172320289432775490673127061951310620768301195648403443957960741598150836637678903603442963251736626449566153051525348345988608259880995480924038546118235411285630763397679375968434905160395180637975786886692021947023001485610286504502575989262800233430830722789271182824513523297980454680920996066807416129567309786073574985750670500853284016313269469497520152663928574115762984999840802375960288036097738970863470941978232499527895781819733073055589024327616386477802569538721186350926637747432512317595576294890862418457912750090451909632617278850962165532322721383984485521119078743819298633682271911388632250212599191022959655253642072924622774739898628439648861626672553031237921741445634794586575420210017755027462421046791097603996986075707110658029192741064333474469023248275931632093458692811067614759934306250637961296836753745440762837717071851314052749039091919009386688416069264203407587628338871951999444682135180768726029069588703761680594275110206834464357791715192401148391532558899714309966053266871913967322665222708384111022345444608697769867629475199175709859725609760624079561538369372534033172105672765615035029805031078053948666588515008596987114415398104769573765295471223730990511802505333869230171183772745380866167003538524877669975802238683087217122800873110052056079441888018592102231183870805901660207556082423550613793154973010008437921653028713369891193868811942460741802101803849227562829167931355402525429448926264696909007220343450238229320160835466368179059626811221178866829953036151256971195105347907124949608751459035935303171146923496221506791160948786057543395423068159585279529134579572795874419154697292245620509290209062367076727121352830003473162483735456371382655123285550531830975181613766124246780813736286755961874493704010439920922712327686307567992087183022766862486459701428156579480792791198916038405778522006894762096260369040808160170683937102654298343002708497425142373738615120790685489024992725210390324759323997899823465589681217575532402774812843582615901956487871334584587386236543901564369353438374467573602585869993470384029622997268325756609456341966614050459154334909565337963202310203874686362145106412566084584557890438569644967610739135883692951507671386337560114827733938320290239431634242362178236725964220845175284269923887540636761790222139207992891123069847850768275335017544345611304796261642803618395454401358897484717568732627020485907796045796065292063960553647300586965779995463727077459974744220859692957393225070833583769321146318251618416966721312560968396214190829394718839370729056503318219203776006325117841044612016838520930241617716933971690207007800210916162388040934825866500084780693173845582402067657363779741213299754679751031133069795899475371173153031653563369677967002750336342217691398406573959326133612002469765362840643904572684846719448650424608464842687193532560296351515262401401742935526056712958378785582053547982593074871764005534884520645028194949542821815224396953863958423539529463498816865076936630939327802412229326854779606487754818716165801523465429392280448000092895670000036061510825199580886625255572577121679908079658486716918745809282085063284006007396131257884960851720069016539669308438882102134899941638420916283428328642730621658495594770344593793045237575215342006320579621528229866633434401588075887844589120672190514097772668282715727823304763096132448965820788682905378032591935978907250960603757981715228609584855621949832815283575437327038365679487737155156719337594848879262192689219787241519819842488045201770041367607542059701444194162919548369945523998070385176697390821923841966937556643932192413556195557642917565108139392491022607204012935920941449106695846654671841589729497538505325076183771596563975358166908362222202052329781427893595453466614268729342419302547282900954981385439238287456461640486764361218357584053738352002885976874484963666007754613874403853419172977301180870392074095217554174661277388933103245854378664958116944135815105780060393202097400128924975462166586817929429567056165739843097234368018654653448189881449736105801590521163291414758943271190500961630602161324668172668569217254644536194623150216153645699779201417092052999808728322522878845389724723006512013721862255539385375604023969648907649649673490820833157731965762774798881766004216129940803458782684159521725332603078445678191254512632537890483280441406945608775525446792397691416487360575317666840347480635277999484473129268095421600163224036408066310613921234111424959382547963436554653042476000705882633553874973457734535734195589632683407733356075986752633220470647389703844231468637296154752290720093338634261220484948392949657027169297479128852614681416340080102736717804173273910754536775010312276828287592893503722628735980223282374758783252106188721681259391819098859971151808096442924804035980635305968427097339987860993853390113178367670472464878942144800490267104302714621874855561070031858636519226789512444802608006276731503937103276980034000778092811235464326393059559404843867781739440883639976116424121882190991647315853570399418712410975183655156094286121063581471662835393399551845724527214549425967166811535896803342096938178695387162538221491571964464038252205048253823172362201876968284342321930906171562324120224681356447950317159518868545785880535831836274184505996286897098335372804820853004511109214360674793148851791738995080000330415889307151951037851158918071774098934904878909301865712570893949984748653349095949160208099819887083277752544132901594060637175147931264518410605183533674715964224901130808942266962472958520198923880427524533547592907359487345509775677728106536285675535060061307931870495286716277131149669211697489044020125653012168568454399198329173057364222125806802700751372410438152336929375643893908312309276932688854693624874804227058406514933142833446488557508339458058342740883145347613293766164284612528320735084453940364237764605714873388395741722692685057706498372500860445937280266318308429477356583713941024493951010495463104139292861562691580927792399883839291430203148254200165680458304178591853700078632296802527426603013363175916520858807609851942371529520175340932035409358035505208461614902583416341666816896671509628270808317988268664260862008895970633032952949742273217700958217908597076860956475405084845793897911219945025524678329466866490524255747022869825034357032910230589803605948647921488945447901871990798334997475519970796714828679408461746942485312812971142623464720340895894545193402660802922464328063129323981856935723717959844078434946814395072680518335770112975312263731975442878003007067742592956965307159766140351952640432533889250462713842920653564076269558949875125005675038699116962032588686582111196058183722088516783345264109602410278940465865749578069897226676294936771068544464451387947907353562381994685966023183909131828848058069491554043804006658174253186369317528390050584731437224960708067467332067829599592013399762303121308961414443629030225781435571291407794557057659160423527494594295020380397124204824738727466316722120930269823824086586222821232098881381289912644573705600870339275980175445721512260838754414507086793986909566715712001839215253947498318410490339974614405207256954984580524174438963034560578841121984074368437556699303144592291902481240327010767936222985556138896407341264028765651137723644544777194006911669278379028165357843351642183831065194440754587312919572082768572323009864248661563127991449827970351847429485689053428811469906693729017156126775719831169199988282268654653764211241270301765533312161717382221456214276467549706831278990018926530409456574891888235363702059553113857720383862132319955802039458774349703779260624690106480015062171224245947324178698648173762292673698971570326567461250652360973725569304639512329481495247551352378952815200173720277761198580372277673439844712827050684212629033469418149642898458484378966726440900497720444628138533175536971962314517843591641004508817468445933508037941040996913540812440271135493243064229859137539067232755171552331473103428477773542754070572270113052890360990842475985364549997468014612229334572068914185669697908952908449089655372299057670358321524847654970908893052566122148696825503871890059761341976891883499247775073875540065440531646261905264486022756769239469879392699724851645711323220141953366249721297995111619402249766645500175845160143593512836084566579704291704545303628111986404667812333081338306778345841655060018227281990023249169067940303550665118014315549088733979847363317282931506799028102640145280431458354313203894827862677708713734925461149201256839703844470247139532112145320759852314824552178030684380475238426700443357623655147453541531680855435842522285920143992125446343712315458840056373819807122559087738611670863570547223842207308259651959004597117697126615611026539474289135084126197211750897261275526944760726238495116981368636055489935265976161864048010890442705748345349334120679251297301507827908577710211717874711200204690519918455131815102254786135161993515378708666147271840272270917340216349703242256530482584258271366205323338809846922277118711572968207170461659898272918242036930798477126323470594349503220367096534396674517116106292604703974627033435619033083789890156265715176004530422448099683039208465606393385060046071903834605176967560184247235541199250347849435051469131598761493911342565846065201741216818694270859754445309634062047009756424480556730481130055496094244443620595159364563816194270578321543304750652066707729181771033720413423463841085689089871545524226135433330840640828184723666737225048093220968561908184831812153998778407627880410011618035746065655382497475444793270133895865703548112516852541795289325565774764980115558895995435334624677937932380594658947108724508660471159566613854497669390193899830126612870472943086155572966446996907268702888672919748248280699610634680838860681315536457634139652089153443076480775094661301818510442786607337562743939416815164503262549752642395641484249809231768595700838686372451624617899664513945380462974952050821040786152451590424535867382106214359410248797461217128044145540946005574831621128106278657132661176959413767258921896062008329028972432130148055866897856251891449228906181209248325295740287874671038828638265148829240182720855222883934417191729405278287820682739118928261376910170819207838102613562913795793570850359170538004226194679649672788327286990779634080165530010977578510639542772588162592503161158284077456187515474471707531599233567301436598465511271393783028951373961622712612414688887467519607587383601210558246798133948253690022706022560423231841528187494165560178964873857210753602815018193502909803047142167910897160632147505132735376281276392480711181412581771652298923504204302790575293110517914046185115142818655788550625184873408348872265569820644460262240137054002201996287963789794267073822713971738085838066730370480471517197238890510882502539148049714596987705412511282580246207464379283829528382981800524556944096912579004627628889380099542228965144685518621667885906060275172297495509306747419203777713942148839310326123648595180479206549358345098814252763808224649993152315558039249151568674543284648865384955638770078914088804659183903254081483701023994407962362309208245908810177740359033374851666475807853589959752770363074777442718439411458752617831793671927102876235502738696045403204996614643118185243588885625816118645914820485770137229729794646041890426627363965472288509857209660562156686692449434503040948550197013323365966936315233173476788996567015500543465167574310634096493259901020254952386370442379409883524937972036896549947713554783929739411823995710781790134033868857726008819314760681125629220007108806673582215195985128807042672461421107893384052129462200614119234400662564579520513420327221307392633266868358394649189871331351723568289311041634149076143830841190293277221817248115590042889282796286242041207917566823307808609984978204376249195864525971132409539481765810026364186097037565578007763079039782700748811182606830586632549066580459519015935082198708161351531460569604531898153448826745707770385260428832082093359871024416267621296543843434686082605647279874231517179888382071477442816529768898456241853740647377428079062920903428536205124212058981574733093421173159647905139820750623790635489898388047362850831148938962978371335354594193284736503500202650980767672905229845545165460565477480979803822731106933314687888451383656501516350753307921546172764576281850787833727402188466371691240721279071293314636348119723381366634766401248388226242684542989416851718379847049741645794542614451448269243406581341759014385100616340616205588366057649144824802944064235860132923312339385055021862116331765871140905294692010786664825546711658116431425112792198705238444898126731179295300104703124887974254218835378328556020647818013161683468491744604036116339293568475486649021832331010679602486456300596015629773130963862420850385345572815571166733091463278998922934315491632913077113468836522332034459872494207337278958721382662031144198029432424160156693439924647841151007263267376660202236269065885556616111000485915530068456537355429669484351917547875769932974229569109720519448984433736843880554972203014304431376292041544240829633032625928286426464289039202228890374065941297409410999698032405579315552721993475211991683998115078332555801024927689015525151236766601819326745503107461844283565762342016371924831470459845132991243869617241228061417185060749683772517456725737662858841187721151030422989608858428630914254970770164254972472294176843149389110411581915473815134565401857994730215120200020839384231370961690321436207576511033702300082954111939425990674229280478736272033835317846384125191977227654343438608810871050315937582371038977226631705332334632103684537134233744745703337906128922187207897165343762696028973297528778966529926678273149103865132047639753043657394710804584797647226395481086116525405743208481373595933933127085583723927031218444833530696778478370573013733771449447466086374605644139959194572548608992898139993622827396343756205448213615960062072235332093275034974060750348178708142521564973653643732035955421532801496238983983186834972893068637463977368107615753918965230605945897412132387516926258011308093181035515781063563394944097447634790429043265447517817562901008921279713483353954346933955750576373566739182558009773387095297581910397776555467759610655720478760375310915353202153944551542082863353855366397856147734165960198043909751508450068194110319493578911860094126078054554100943339473549487081105398821122559292211136739659857074078977554062933652491291437953437104077037862818464251328634692603710720561444027792579906119734428954641006353530750530465631766092553621119956197650281753784933447690669200511968597563124068497856971653228993843532939726011529521630308681744312212194100738014289046421755559290496700828582373746197209289146557277986726584214683131613160272955496356788923945186592628447151892056331843097251929265123527749763082172621176611021753426003848274214108472635843308124984531112573247947921823369615277886681908354221245860999334407936166997890444197255709639325328008510110460697402011302649360791994877564456041656194572928812838120463692108259605863119250476042948057352988486640939746304747552307879059637426589051304054426241739368552966866456887597478597129378625166226240865281276838463258752201002007531179376275871227546022124518085273046738233865075924329468700829619535882678877600172095494093963806183970089559180585450530574163367873520320853365884652967285662639287530920918881115475629651980656694884377841796284454969297784044032332692151207957649437402932530036690917723583856109735336398887942058288449238000807298733517878705129736651975756952350604263472252357662075552821863138521806026530156687831071546993024795596114739535460196062711644479564465368982284316392612661354851686610878510684396734057072530547803717517066623329889925276926088395035585367739775921821881932433880511346865848056949365003344247988189594911424224066115084726614197452966915195497506322158700483002907988107772553037641929444014373425236562430398792727771215271726862179389903954192153206717839817747617053839723167120037326962023460516476289568639934906438196543898001385234379194133047536987456662438778341439057870773778900525544797987130399182200613337624818241171021363246161550499187625353325675992677035761178586111435110758699988614232410609390815656975093023101416494283220559885507703912891850839852830154410699392362120212854038199019148364605836760750716558103198496870160695524270666993528314343146210209438093910088675637701486018027444152144087897397800153591233140791769484320314643920709980748905570511528846098081161555606942199591349729008053025880124937173973630288622335505459255353851124279568152899247914954709240374230106067462411196539197575780367815730794535817530155362418758040123793867457484520747558997614299430199915907870357527015320136924759728845357682936660265880901971146502148288794475348671497216995226715942060324282687808613347997598178857741027215294588979884887430745953784469571800598266522433494518524166906004615417224203318062018057163025202205174986547203731470437940416609278185208465254091026447836267523277571632677333462305074088392953128712050483303414706355166215560372660363064518554668757069589834701568119786579433421119151747895465856173380965894082512014603765487255139259041609898952923595851737698861566237761351689761585772142003114896869500052938515151617606132795295559633473722270756541838301329661438076007262148181173677252882902020660543521206055624408311752854555702079425255980287998344872402593334344353282323388386721386698963823524743512377920751193615467250904292902185605807804764909270984274622083035413075915555249249535932769832038352572499108802481968675513140164698896139895528390629270384299229393020406576668631316770075490353809451835343118115853869510759178395956236841953907028646290596358946129517038332247046855848729535505834170321578230638108761707078650267766224776128186436443698318142095054910175501391630945419164141320223793655352434675153024888630957331456897294060168000937473546290146533741946778140776613198963043212163013293008118406742512730897001672975899957795083945934105936176693080023812934402898393014035277042123364109214783642015038226774896051466460429491852260989721333270722581045251874876384492525653192076434561584900366501196080969355225731038184680716364734877416981558707912935589574880366490943606907832306771030046541505997077470193223273858762510175001027024068160280610482667944415779497687230495548532728164583354868372796186313322069046861743127201567708901722430037671612444836580201751140624822943772454230636618112233978785585070492102773130022320318583799906596765232293757890172748347692383067115232156275918160057250373800137921261574189572018432661588183565473308144702176202823867970926794637910071555341108223348212342654344185300186978385555945379762618136950925132096960554430876664962341683951595942754427120172301405804099965717015478718297242489274226313076184713907076164369323545252507337708561960748146360826980635110660269816573104652050839025159525931016590852377115677075216137729445909431991789416021676804428902236104299796231677255139180299597928417224127722280512703814019317885853560837355901259742636400655335124019017917624247962195440932911941596307108165695281371021620747243018619287257679953135387419201132488231489855883366148823295492062180769857729125996607574711933181549717851380870543060029566527203935486904542163363775901001669164047724700340691093880718764796708826742357796917931973790184109001529948471421408440334155521591512484983110776870547640397916345744331510785340834089527695515427196497281363961270610076449934821436570469182611076307872409448109708423133201321647996398904335286835380313505848384231520042467834671569752243874139362184699079073683965870139240333185543402169333839104742223822892900154758233306901921463843444069901067546941736211010947917595127293150193832732747826377887858365224408681195346751607396412288113361708517571421068624574418758724387605189138839739286108893895173537232247010420746772700877782427716490065452819483357454920799514055508085477041086961595489487377408126279423748312323821130090526438252719275771499384813289138033322920348369435614941689140455140601313584602675013533117146854907742445646373413401056493355200215796016506998915219560872682790377610705495729316622958680377726179618498163858211651034467982234645978922528110106873261981030818167141993671076005166820164501181237275718759104247198118094001010085585711342539442480083704335787305900521254716098710323390025685303041967341987745493424109794514163839390337361641146507266141878329774602760675716786182159853140808483316126607279596122979897575626702177644742117140396129924805648761221177378820111001946306367470794765361800425554910660059929834934813262076062443861128925838511776455486433192784280224320797570469015318338890741150231604173475284447773755455570770538956627362784647842426092771590954815646859262757739101883807237724863474779774948491407645561258174681147042807150563096723498412008586261316533813829866098954836373548859771181285814400480526893268728598308793969332714268597817443224554016141491382578130455823579709272660648918631647055229491445671834386525204107415731502661263702803020467994787161892496213396772079355675337464817371753420579803284082821770456390110690671032940492524576428756702777480004018175049728067583256010162159448057394148361972354624748427116955531891086857389320668921037427732711493771144281150731735972755630289136142471822171761489242388524273576937306756665190615721605381798580376144014744590416643923634088577630333795793306517637383805935283899966412819061244142155372096644794867594739645388293579883540032504845768566388592766702979851052634262644083481675947901610535214947851242210823541173744346128171162443508508909786236103171085460355811287498632745786334151906381174536587711362448856607223632703176207699923570248166373870477394180462490943139718748069633644867674114170768096145944895542804026230034757431782745673207029318619459434149666085198839182346732505387204756584497953407720832144211367973459534390328914321995823240560320513557244090750471390031715351457449464539566427913547667551834315217793646959645526480074811119981094064551969594062757793397593838460190329663306182326107087208095647948429988866255213854793601261514960062122184459378943370187283862599337084517449599311572222296194699325912920432325549268360258505300615286126166671519734723042427023283647827037353389954370413075226920937773219232482122243657155460854074031775694773027133003888700412963708802135181767298617766334910321615566124278491869564303741818637135386543770780021421768626865598942869104107621849821415700367008631794366138112101356112096518119829937293650816056751490368382419924608261484968278309313486325418354911491304523718385124639164161415197898806247202871028900247307001553347528458913108490808380248952088411656695872944680569920944506800618893409304083185106570810871679940591998635530182436001175109116971499528601009206254448154310294181228457042575166163029557074028756674837691124699176609637371454185189343932495883497419190707439786113027339021862324436758263435381562407722007487571188902668309710165191430494177226867341472953994358035887897982838534732139879501882118721403115126300396330943905452205226261939064805152452426446926608175043566292578224486631362915735205822000806287154898300720985809896402948099997520752351228663433566540784326619580712746400482334404472502957940655650553599347149082142106441038929681467848421810236320925133897270435701528970519128139594662397640828628919171203964067151964423106933668464115063527567761137473579024734443815679771301772498896159548329938210640842168944237514955085118363185652279613127417775527199691915630193369665716118489112448954069813880642874780972220358948692572635615601281835966039098475984944655913842375259294130029797353556125787422764505128366521758237875142136988473213949271506416255018032947728915494651792165354239481647270548792202982746694447106865723827416778903106937430982312400829800787495991653812838073655226179367361767291350495218470628963626313501587664808505343193785906488273867702048619426209415345068176474186626117780932946714928054444993140668177947143266835157104224678966165027867384184497264973132419639812004663048815545125720142854156372539710476487926565620645924076856084465744261894909123843391854989722644584720870337840001103694555801922052515903417194895318666321988914010958399667670119229621969844777494874940132099557811073190241257094571652610511506940595793758345498323338620022906689172430638325813754390606010556463228051754594539986742402698019907361604532520668397917329008059392928938558659242164096844092463546384096133955501670123374409075530939010014481056457842612070740375226743908069896129741417556512396180458750678509785731054735668716479724365363207460666123506829121617471839501436077278566737154396002975807354923595368132320955143123798140219175672334895470223481733282640310717588399091837436131097516488801713361399863922215161897765962434297894723375518778684255545618242130917705162444725489125445460265823164560261313213769568854574255261157406171889246001864271811084478905664386909285587402882390358043702176474986050931052920954335407442752947695010142977186266092747689633677647911799826622787677962221345503411036563612719765791962966808817818782380735935504842034218103489690815261803500457582335460721889123852186256418571450898186221286686544554774711656563262015558277565761364138453332581958791232443498974763864448527082651747464938076970951356303213450759666370683585548458974386376760519722741874930632198618398934183760422071520628673277074115143571403395987901231805987995854771303322785239416713513767474441892724573099906914433592774032356405593396934774733932489882571698364356499799827245850225123109967934810518969160785235735052526791468966741082471385584089205777814274509019704446709558659798153411005124992930428403897024954481631523140409120325668659345084812169915688635443557774540434725075747721558653497521488052855315241511871417448531096178275028433078543042039179194640612475985708778259360382342806867157627664861643399967179838540474934994965344575485993477642753525815990515488779248616528852745876173652138621441481409774395921850114562136110628776233714200096921960435821365490267608985745825737764809348289669274467591559634333769553384400546878203624964446573257289912884160383843500498152225906867689578431374603580450576564789100080349858062871062938250263092513784670872242378269394649982030541177516200788093516077587061085562721317656730651086215992872593493468766112477151578238855982032720560457916561144336352623150471607075449953012700153743657814462846855081225902497178420478259443272345659553717698457699389179134261018984393811416087295642536820926781463747681274138145988140594395664940651021769562412438547936193889812651311108999215604467399182762501016608314484840932496872893448551713274607924369320442439471532523171922482972943739224909011554727909607881444282895847917453810595766000623116993910805800443055887049569663238350414817711445403095034858545139452448975987379243382203673364741057091909400419782939951066541732462572701837320642940591865834544256579122100231606089890207463851647527652843186864354199652464354287908612279288034801499770471423310405252493462014936084786772586429772933035635701159447926230000604246683115547848896083814655323435294619020800528206245675407227239299766531613957627001481284769182201060866023948870289714149675806675683003574596715416892452346530623524751207391266336523236742591196165064660812050699077676576884071065419409817200343904627414879167512188690165788105139778988561515827097822651857640453178681681574454326143363307669890984114782658631661322600866438782836399816385103903046720191945398211990031750159063481317397712516564774403446595348578395633178735448728577277587418701720095297757044496001718020825845345849459227263446059525771252908349282592894928016651561431946355289022183669271170893919268099662752103133517601150178114848997915407531203667349333744929012591727929167683060431155426676379357571815031400538221723524222777985032514858158832303925964979066119130627511543009345672124616244778652772023505748183301364732108576854119958864674440717277029262701523490992708537735264236864115585971245107013954770492639150544106543792568140422827333550329903774010541018015640305928942832919986695591192361978908750580412040112247502965023696499421719866539478007981876323095308099756527405495267659512760507636239637509273098622529873285469700307398958096276636252683751093670926597767183436856597627698273842221102361586931121381679176947644710704159617135317828207246100708063808589058265965340800966464103846873317896235233739216985076824950500427599970187180281219884935668616292888874742684825439311287857096410658476102220731125766086019320555076917920663901299455004979172010623318837314614451642690383857625754948082626193293076730212430784532049392482520810295942983112289773962498532441912512103036337280355589753340614403451770040314957409211880652158691347695505989039115886372851481270686736898005909370549121879939789970558431355373734155982203060153882659280038859733718340577790576657940490990848871735583962460280850187878209999493569231509538542498851887388046931169752398597219715994110499818252464991391273205874435424045190999341588784078177642630894255060831540465411406047028726797620405215106475335621495059225743430953539199396260644857143912911907180701723988269079455398152990809899096970166165200671264373696362531112318328462914860691889089421165482396240377630502987925209556642677036895607620678503976635362775039895326989532121640461910939004172003800491655540155333664172566110166584578774101681808436062002628589462599250271675772949211511438020463035259310526528998228549257102465313389856633907633714202985103812456664276644787491481106179483402857300635494472851560077452080037504857436504754786796205658577196917550219851306207794700660892182702623303353132106653139211467914131702942051659184319580446637575687876866213990545141937647630416982573097008915686702274453384391902775244115415665840501577547258903665557886229933136250550371945852684853569291065480709295094798834770467397750526166891374107620150615589088393905810183886924428253429870784100908851885210211328448104503787739400768533233502804349690161126390431838606058145365454098606767102568274044050515201975641160040003432099503036270644971325386217268676203143624743884692699956886602685817430991675448645366566784643328654042481055756659506154706953766221134277858620163875031748197873581136053108952813026715827828866846967772752382247880687036542778244927059149641982576424998886020047780729050595172721192265801173987252327735311286083440510485320286144885518933832714227563513416981965876360421070553605487290483056943374614899025479723445526281313576734431705162703408402645057865815145235509449645713657356901189433750825501053335453937073602091445152091695970869861806588349215645317284803349281648652535943207870284273108707250310972606335244039502111665977589749569012789450198729189054129304950922679307074125414608880849895730902240485835392982238680618356666377313974018919630719924537683763228325567769651696908264750331507433823324769098616493531862045539443436388700976440198827198546963299196100429124441118930298359496696327818374577522326796057429185084577436034590527613743759497864338010968817023159410693539104988449106502909068577978443479480979317633452527471423840514990967506365121577610251140513567626602757709518996467051156958815585290707984508556343432218196226134500255979639566941403932174644148792176262650889574395760176245310972803228219348965849347549251171719202355080156266329963764480838536925748859682999775152104844925563399733031448675614365688370877582700931676300670056735396934614885104937370897432156078568581658980633416512503139426099517142758576699350768822857163669148388261166550159018718620751840856043270096936096527779261529747189005415384511996985230370358565143688195506559605063566887907915498989406869740022820212041750530636507480255876332832661725027971246227110855202892738032999659428620685290507962342919719457492012539532870712940304818299048726396178968374760003970305747354947695272823228695959917706052875744319000988242810943027823163758147262964341426464373355104422503094103073903683953189414733701045132863914785702564428783797229552236807229899653706894550299874352108463450510889642635510555309640979974714537331541438226456438111315141687481787889026330550651282027790169479934897912986334613770895067353046598371963304083328536296184812278791530957065914337023664977743906592697111820035461593806986196491076416887849039694774350371891999125590509568539279978450123303444146284987191481041682112794750569278418280106862780813693684961376759755622702083214722125101988976261493324110388282629359742357946764806258630607039919749563961001266355623185393279107214411842421805408808569307123447916664028502855448089713392660461615915799905581626694695926000227773942018933214688296772603440833040463436679354828504437984247045127733396647975384877558995586786689060960071314294135067502974990915989227119282093151023302421142993274413839011788703684072660605516025073675677319484524457172004288929745955507029745689106830444067489581113819307205980921676015354527033606366567017770235766185693299582515321879250703256567551455776487005447212149912000558237945520631601702017516932250862088597659785713469696576215512190781934182144164683895277902395116853503591214354123281105708658155441492656737205182298034116455726737312908571791234392118044268762040585085450162646035584766406116908448590218045326795782363328460197630613610484450816445584928089460578702459755770770175156980954049604054366790150446383434885449509698358518270171859591013558080117567788405390126573611464696059939824343349101048953758106117862796739939481752827932651683010293989823023001012641816585305258152369220649446885905824515873340823728039850409290878909162902938679993910759905578669388971497588559628226989067003461916630420086942617608000599934169794269903613836963681937422783363854355435009730434103290693969080531764625639647369052721102840252868603327285415415216839797217550693922925554684266954155042282002204410012804218777863965003910175946641688470293811446957145780551248470677726331490685862530390446232383175506266640881106999228731830168584921304694506458541796384043503565342293970809986665650028156212604442019221611723849340210405648308371610691064338252470253247799683415787196243471038536412982547657276178609466181179624583286673516161342756775780721281688610635269805122403606985155034358823915552068743761373365351879252850927170453768263691215638415657620686856234995501966131763344146602547542253966244046454208006241620021249578883959714949522669957363887468980918368560269354801635989223656787269565218169490037516251918827647180592701865300124725627800503849867115283303854793487916781458926192993462530276818377953390418631468075969664748856232550664320335624909111641012500625112840039271535478715839121346324245634323926389452808176207121627757969609134246471905667139039987641516926441305621305634182812008089121804152595526544288006299535480855831940117347442607322366469142503331744734291801979651497278065433520015706273851886418493020271174702570408968488917541589489601851690027270035663279636082776381557215345050011786283418409175017054028577985410409305571142891961804850953847765237242369210786097279218598657613623111532346646165940108625172134784553644240187958546136862991866867249297137534976495626430971601905335221907032683995144366899653542054186815451150010807128339754925801187589078851826709870928281420269131735546382202144813801329443844101289543479534684382596029133209348309156970299308429397739425633902875250594558534011846794371556361922108189032296385794114803480762512072784460204705872681333612012470764567589267863180074405666016650922690706534685406070736835653102502615440552343538702135584016483016511212460841266970053957490598222180832211719323008626766659790905377314347598169283371677323730255924259012161118637381963146210238006898480955976442401686671739051959550349046065397410675614882892574789498739200478483676138080592196621410926939601654456238234130657021668923676456756670848106019330842572308549003971901525288151459726802821941274008802054555926020377235884430105152523243533840579947498306599759654575452250869665698318070330196250634042076324730942257907559215503469658037650943305456183003493889820880810802273230156717866473610378210308723745295921026946388961435671653104713463416899016064368602883950372415643524516445070335328270073648906089286834158146934228790468634716613756302864846024105577907577898437000735051336493395040479876701287966932483827870748850750376540493237867797417049518920883558495086202494437804004999942336997785039516752665683390583046455979445687864717361715619277400446846764306095057884312858549250961705908355248397088586275450678848914310395403047366165913575031829559631262448152056274276425190039258233169039111236720842765489250832242112121145499701350670274629467348384902673471970512578523719562069625264857228646623429183661119626687628092661800238936274182979793736379459825509079684664267890743439371913647716923526243869292363411293139566245889761370848341436163677295310883837021701646453897468332335050137827606258342985881015732183583574696215544314232626843170638401959305413090282749188032773790973831836028190303152872135771201319489175631882230149213612201608404205224973713494178655296828276288821498668456874579678572194838231609027502773149517738394096158821146765569813475215986852008047224992988251941433110863058161573794842984738099482370367573007245394813511360156024498067236263213173469376279623716422227696852143137826338857825064132879786381076874821349925364431862109762240656707396836489540229245696264160832432743145709550675450468423325766343736864013395749747618330930557136960754984985156204760158120087523232338295910186135983670308516763238776990360643306552203974923123922633011941428799119123573133267274920862324625211369818062166878301374069065801673750756362553464879116969892995245245637968565535530154352698578653746247891484710359739868433057018407900456985461822273742700832817146465259321051199709320978886276408806436557128573903239591008030032200750138469367519728843871894604990248322726672205285467891059338541571261859484915504172944727357178305909680292385403852990731354778672894862600767561656745894465524341826712408921003724360955434602609333950381320194824137242342124642635618522224557801706887914009921976005853404340227235717176242947390576603050595143881600052906978925472405518558061706787886720415371610001754674838602165442620393597472220208012463443048596690578536096883830117872241329547563334833874690955373737463653021829365392035080145699356616720509452482317873377292523596527103231262764029292080971767632290585420917380353853855614985582715746157436464413637233694647554741359873462557751851600545235312221495331480721690454697916446687040467194624593981369174959715733815632632111726419798308724077813138163337466541010983877577796647318475450877296584551975198447570344267272894368076674256833172240545446530773326075652385463991597093760817590924341303099236547441828552235296820209598232783617454922379808049645165779412637323048199978467345179812816592484734384138491489359314919515981250025428501890389975061158950622501640148395071053541668094474686726815575852790255134091026870089861540412994076688476473347388906111744194494503486855627108938068739418565282992660714146956612517386467741440454095809698871315660936787405150237123540269652017738592362097896556283937333387551924757510142677569265747363129658731094601815631737470441612104859897366554109566354329921449456986683089010970513896490965537964234692037953422763923699638409097871257757789726194747305845344438781302332673820624066052444446382429800065647777295755248045103121319263096264618001541153581967179645112971451028902768859420412738415188710775003032613398296709180339244047416391849104728039436187478073197656728071227494550436956209579876359290309638234293818390824033785546402581873398879418947634188286808527254228751408665234142795875049797836771677301196676183092924696760567682427208387400487529886573658526124817010926290772207049651835076237688464769010041280519169705587677401381021913605607216297660973437175485436250964578793948195856972267485326254961549959887254743451572566438090155716733023344992243839572058949261502010514346285449072527419835051567450683054561955674053366956549070481880677610623857728688391840216828738802763187091140752689077015261992191816592646343115528538254354410052387615260050025579510085846673092292964511694473771419550682794184346343238646836440996026628527042003449858427825123351391289850544313825458916142041207364164487806218791435606425104313514522518283307156517732482070301612812649269227488510706737180187511173642918415661356348349148859597270345002910566340966402770954900108866873847552364310267591600224002572867341561169327285662030913077307943308028632387509959149654244627276273059066438535480399224898895190196214065188133700332298418480283903074171300843357596442849474015565807763327162606116220419171164522747111195227385027187226022927066483669339312579028246020452186157356389169716144388186749691949632830630294681634759148991741265023472083057936745730335728839273251743056644147626403823776919514103474441832534938036919628318647091061688725843836731801636565532752581114855295009954455593216216351030982578784411903600205653558922917120697791561217557454612035839905549365052799446487988432738159952689594708366959724442387804344227668614585001844644108882137960260900026385554664975906214354819828485730264921582955404866906814233597466181268552478416253091550449663463345463047944384125988427197195030579475126857978820251404102123149751665584052385189209269940388273628485328744716643817683519891980089657205677976181485993479378858173886807539320194653810222680823876027275406880464247457007777785882466764255025479106819563231950943247204545038723924206359831971764973548520248672359533253342544853294400049036308482521669841166136629716025577760552774703740504304557839558487753655785562974272432466933876591036887200112519323391031034166557154194272185903901780020678580301404074163665985313439632697153726720042492091797595602546274463598398622053406208967357904886965682200852665265902663056426649641026101186795584313056478794615029015803975488413663426232706530408309231725239479982911050734559478341564392612315468659315851274871845584188041425102067371095892514745822857839016223989368322521698085080397112938219271492821174814156546639782234446005331663107792755209717047683945356575941411018340747629141466462523527687295613330322712177394673848518098637298020472109061211811116125468701959368518715216506270139378163524044358815308817706603571137565047203387565405031501193235387607246920564390249197661645422890056572965005794324588746135064625187606678964789227660712760249297465115787968243946859545821365011946805088570397454422937743787333558506303151759456039192500401303083742354059237083714111791698229784217169607774600659486812079585404010240502977108907301652984686040712664448185614806060402746058584770115317962519293548450844393449947625848119558128697834945977548582064174887587456761443378795738901454903683932707874710804797780551166061847677618662524014529090802385735777817257496954959474586372548144280484257726879911850770081860552432242322193334866494606714153901316737240072475804070971828551223690990526842873046331587261380804505570535223015856230840270306542525621164767115251972116149490212158921072783322983467621631065937240699889712194686989140996439038202921024463972565657074097671915431099285459858970070552022713253330482248955254484518833573590062377366587846964770582820606991739688050103153542032628201601892961711790348788035219127827815939301874559086679684376372946126169621759766047084222164788160054596824074315822626373683291535648363767339801282041255815603040360502232503265203294166838566003415743017300695969813216273357708625550627484134970500347906350354575241175040190533225171722035400180915420636531231709276575214841365494122860549086738901118653675690314997597994099981841846809985359983945709692339937115037915601842225109332761936425356783796014370137106651924369176211310668894456668595782141772978877393059045440034836271308677172454344143720370793920748222678543416701046261304027841615152067053210268680234598655428274710263964478829659488005569556136346755557154136077675057239986246746876203256631692915926805359443104102040487617559719489849916488714799574872672579264203542339548184012298438421412614722551792147891688625246271801029583141766005298278288849467025931186260118632682778934580074441267102901307913283870314349048382001462927416322610826371581690337327455923436244908823144598647609476123978810431754638421023720687897164866525763325102016864934481168622348773265976144056281827396176726397614073125730721767071717100395822086620938668228255642471438388980434317545511111967500364623166009080181714205220848843783011998340219092699914847924940428335127944502493473487396604206538316084871977298780367691506043370991765242375985943268745053255208126182270377172280137145461551967924019197962077329469130560783284205971359897114312894724481547426442200724981653730475304289130527536017182469155200979563847698614808823193528853318736748829144477308143737637518508373698630793248935437103527806013254393574445522170868728192711764108278122142808413441298169731000998854168620381596677320714974073946398107768987917665631729422086250982165994199802096452217443105510594939825208045674028750824336491690865534677017023167594030409357540565772795225272857043794001095835005126933363895162692167307042534688856258343770882375628110190938524238637318608596974494560725132056440203570054700907260385582202364507579888806862475106104076741984415854593817156533407145488323580381557477213210403258543592891548627426035703370979238282974987288059013948489902813078753204511564762759567504431802768447230238317244260013359291278899560181208404699703799561570543602135723012139111540128917214867510888114568262193512864368896484010106353919590353320885716501102235550428110092696310503347278407778741143305250286423925140525077503077621779589875908698229151585892651506479848258350988764822097272867058845310513144666174693557200566650426353078224084031116556372571461525728486204229563427401679358949608259100230165596118591808025639189854003747909887666558566180439527633814405224440831186415889580452589129897255098356215934367765278249000893677729654399709980742198719454396895283987960396943246151380861912945140060062179447579873451782970825312883097991096971082088564683539612457121155492330864115835786136049117612220748121461822851184089858416561267667295610925101368918759718576584975415592953597943650839871016907736841518946736588380206752652025487365943509444181595540789175523210461837261394444670382401670979842388416777529833572236948876987340842463188093346644146633811748091811494108725731202468535579922913647043770639922049854057656315075998704455525862348312752577623064927017880951219731593335197741777858952755728690991887370028138016116702335657821026878928845620255116460413272562455820696973503739066321737750165143348379408458443537767054417675683530647143957212709687919445532252180105036679314682553185616206010552390935120455456868696193821957105293099611433717209478789603431548571718333958084458587353010243396702538938002133546754910746871503619221483340756428538135119922119682778779217828199018473555347541212202040603003224504874031491368063482014537730139058573818578018714161904281483873926664020345452063506042584640180655901255341510935851490013641447028838003514518395793369718351770586298135838426861833988350368497749727155516279913231712150724480624599085537671135280808257059312317436723378824973737388639204962960152877520824454712339245230038286925441323171190061717221827795002048063796789823142995835609907908002102659803028858772891244885236631956216774208852223307178637013100724507313653120050845501977333678493611901722054809351328481581910210207161144232489540895746950947318145754078263393094481733445737559071269310393845002682046599148746069045765381285980788233048564419511195367120959393252837905991834400148414243455418171571219214928892239843980262992624384788610947232466071772944215973162861565638595985610676557845432630563023621932406689178460897396446454080105596184491669294505140930010011046878560738632561783182848014838231956507701054572144759034660775607102103355850986424354741490463545930219357127975503163725014303139311944262055986529033438618255521639543958252534895254430053719200947860078465831392481008559174962141956649753233036096841443204934291574461671595810321336967857311457222561232632389892095651941423147819721984229762639536038450271521544246515295524427067190297567950071561508702373895840073818426273539563299907735293365586743708205355252522616856572489399078914528357216414782463004861212707189685818592168563201750595709767148627716106480024488952724190945988451992003197702830096862951232703432418898175233425714624157850324452823283014140555868649832714669612361015768178122439606554643134261409533933843838631457670003043080365082813471271451439307894223397932823497527925077968642797991014227667228963011300766606331293433034768718842231431002447185466555310815766190869142627381573605989053196295000004081680888279503738264742260539935589019219888350355139972369753552866318499711353768562040155813295859784706563299674432636074996743348315359991492443846394531734790178561505987016669240391236276917079617334590870028236927470097873636623760863823117852020631376046860067362547321836328009887847987624314812011089896152310185755314390094961161674169309799655055600276249070413603164076314411327578372790583942268749569765044738873471231362163202463638708428815497246830599224383932147442385431357264436480542703449744372049730923128257821521272269212945596932099686814610950615643364164097582200290480857109587544093024874697890919157113478405520156177463277171273427123638715368685198754188187336082686896133597097405890576243918413015425203739011834326823732715214598946991635143463721082677782132124409287882980288686956972308583380026562666996739540264529560713917857311989938577326842106996289441463120887593513875327124998107335750135041389324168095346701215757797940171770401289497104763189483462784558234757819862289153495391553784719329066506492781400298556833624987319194196313183857872354210398138869620534359512497655543089196837041635323638206219238246675665351997611945169091785059593525224305698237111557076418083900014385750012404833134604802837562019205768341481902870434758663745033167124408442155730660382272051506784196032701056869481258091897453939755144025169821137171956982078610087901453605353524400892938595929838212104233895307163444439888138918694194339679846612780465084849461438934461154587960285250401377924777269668167631559283673897584924812996735342982456518667878337533242806591355103989212077743392393442934090635273743445124821677091800038010895226636837783791960290902586281819513613125062415266428612784695145990460787719321777180630105462430529329791385124954587267206874811339422232328973121805027146767476285838529560823915955756366201959793471608542352386288773984592183185144933243279848321985111635739530830238474577224008980491323470289679579089563340744630327525338160019590622401466566008565601324398894969430625685685269799264412095389194752581943185849488027113801384158050447357539619214348918070733561939710531678388384757299477358602214392855547319689626275694130587144543572218703707202851018154980055477161726784773514056737631296973305414286465947212016685596503729661959332037643531794793164295044918498805692661885304374195875196345884347034073048789165337672393212712726545583810877068727001690219170123395478528564616605482746911056969579847691062494337291143065940911965423184324064834240369554645899851108461563749903984716577454004468470082595677894257898611659129557568512960885674189038533684299542845734673162612968785613279443828244714488028579956699115584498944407005422675948323731950529488571577853271668228008020138468013280809614743172179380123067784687019657100362530354152236612706341450289086716978851722770329486228730651023244067354978235360142149930925494414282179764610372561002979720917467042407591712832397967056421091814682274943488071881886506212256047683532322956907793853896427693958098320555564519645287964657795518830827861724196295392056521614219981551507954357818651964875088501892160433605283646490261830982752548287483547415206468169460480428200614022149414478594807847439416152655645884353118724820377593998650450020698142120349995677021187956594761852008354577533430765023206187663269312207721601625216674118418302223771636843529253858260409251905546040409589651366033805208951206064651707590082873372580573159336172830327496949501330274382598191309438480038884981844039698468844537536055051988529358103668885911546446540192441971902587377080899069012111341787594779399692658076170097449973166017084193328041904378177401867756768834981864003240742942797311075867088771286902255483781357288185654236603355867680696313411559708701181775392924965159415558815763048986193051166307112656844153899025152812421070615296319276625304910145580026682270518440345609034598743696451252550922847900126822171018236210311495174304041958003900327779296069920729159790349214709730170074261445071464042378267445872618326758367731040438047381868908014875757277011039690144620853718880532643434514790028490650951138546457490729109459127867641536706950316697939073558771823743358152018189192078061265321327107170209077947761381250134760016959998709164432794860517655866054944502409536456919827289706353603612296519667861212588684908760129867967860300051319758568330124380379294073319890175085752886698612832610962602844144318385860957526837510678457279976713730551368196354700465244364626927687617223729560226824817250668449178668754402341887813779042636874928655905954281194208778009997767468488760679822693572915620725753353159777983597201007592275409920904322728622768069771276210756337862185654928400534743871421442700683499441787225096943221246865562757240871843069084291339984507602856339224813732324992042166224508987464827677250070694796392354908585919079404087049585271821042009070191289111371350246120923276948334057868425515490803643870973576236437405767554533929368619290763912478486346302805393270310308224547061247817162224548961311490037746148355941696503356826689215864365148091888551511014669136927000534178374663759796925392297788887948232112750939852820766951161295955524256592988539008124738342986391334516372909462125813830306645306429617601051322607710192684610555297707832205807742932227661329944226482974628650881390726448464525517240941641989291850762037252376632438713188900467053299868360541049452425775406424954334514645442362267311648638837220504632298766023248599284606870815353282862649845664064805220287931262718402747467333731655729389602847673195282009139053235319862245903524330933250884426403801305706862764587907462868165905054512995677799691745842258410833580824924878408932814714058774490920713395068686926507438755201965327509118642522792673370467554045820087217299702777207187983548997172753669987913426213315923111909310471775987052580787847980358114227963616272703836008705037602372583968218520478384501002018035054345474568990514192762978297243516393328816869046162213514764401047672619725224254651716484826133091776991072826526480141778835745608938062514126280426813299277047237126444883330661485007394161867376514659256623563027360971880488360424490566011275134627545299758639259969660026209225549414374653252945514498306687632204831907585726649905122502863559730855995366703378343314606934945763337420456834363707573195002392282815562354840707250150475024711204307287529928643722202423801075260482370288316909155036304943608435029080752470929063116181834641222759477004390961087074593012538883130806766314700035955168289816780596358276615447625866977235225423749359943518172401294683513218737847184359401113964031925896977344150293192450999528673356889130890642951371996408973963462421459853356593485832551266272988357353898692787119354937064119608936480277272324308920271378738704042124866792319749951632814746855396901277927632677064070489022764639214000428679360246755092157233892754349951491858322228491113924869449556437413806979752491353648284153745763251325032519619966649415459499224372180123030019488350208606481161388516860991479845506234375247482829400789290052374395636943505197170990603734173979328764819188674734474180060688905168223756104762683274343896246167764493791591880954732451746022195765633434617376971005230356216341229684227037007720963020698959182213761619342657300390755206153636309293663645339858509752011967570009835979484700033627147279837243954628425658918283826619300145375693311799026180221509243908791326567443254588121600708043537548916981716870621715822572250465069794303423958813641717809927696109308638905949486132430799645987013588276177154143603969556320297480983926872309736140905184517726569942434945111013889703882845709132589281779420212055237279146941395740614969589366252149658085376105365753720227375443451532784096331247730080025015435710755069196383289837907253909194086633230509708495252588274788655929966939203550342686479574867631396581331772258559875552255628547900172597221341159953952183235451924478437760149106087310747445975996570192986718708139913652729894668692127453274545101246591946151260162396909667612906359316652367675412970798318296449335519044843448734203391380042254998906783409339218464459989673970794934931950323188933747713610785666493295558980689667985976269732359303382772705080445993014937033319378716597141781879300076827242162275560727997343498096745291065290025882170739197564577580843742045982376391242597799667763391819253159305738146901834160546138351849786142983542211479163206691016930677921744049924306298383858059620117235800945088624597450691271630457265763753663039777062155482557796981617277080488774231993710649765613144118519691642569691295254837610168837508872179257554557076094666632544313696657561624413823223436348384037285862785341421674233371715144025102761497034130340799383493855820486117981776042726157249671686739123415116407646498272862515488037119014712846597151395127557941844257181461618035167454363504158997604566386841980642428968986233383968769550593180522379957400828856719857537444324875751393601665449975212589362900341964448892735043983843110685493465932958852379183002229641473664257215237285877306542690782383081305985077897106997850709814870423439013859222699575442921007301495044462530732782520754414831088631340770956363878022263728398815011891254424793513806886200826121596510864278250436096847426116582136698600021105854928914067365684606285181866617346164744107108988918087423618512700508207510431047360418569755187474554518798210108936676347704486962363068720138640206492693112296143688640254876651454800159990447619618226294160886601013445841751298536264951783071474994955176357117052841479531188581519217668208131036110769973171519102716459514676871611980055342564845145462604202870415628179552810079942978651076937446086905043172560617077568209582771521114240669493679873957046431035301620571176050768804120589284980390747296676730717359304508466921969002086703243394680973994562889425299073351021838724753836279000757879741235965957142713679108425785172220047216716252245425314916880588194398404893947345928320015394134813065783706019432040441940848096254649287154188936334460695850134468936575359871269393494216605832133791431001566170184639654251802931943770892093382698687510689513876958914216447345655046578581643358735367602539230770147197621576759853487580014551185975489625876820303186087818368213348240123781225411971021263457773222249702519460175566568369248941495847527597930778868990657840340108523040344957551082188624101665815341950724925786384223210612671670364934382434967042794260219335098763111246024653272282601870358020750710923116338162331462054083833282404697132243824518089666307207978873800434991755620645834683214319857330399657056664656933466237602860524736944118170423788627893599802447690119769621964089240985556019773658509879602268665881531240974590910146759439999921951185772906931183777129040294120120172712810711424164487535357815442937796000875745355153823478459513601557191414650798483550937896264991411794019344901013016405273696674254077265989070141257509698337250368035406229080951547557573974403638355882269401923160707534408733403293044520068848017181621268069051781381313612188151920120442042170781751590426244171022936806349093475886356286735468336618400761181598894333329150964570225629736362708214637911705663510566688896354422586350986811058510535528434924284411519307718435230232631987217340025991046299599353064157830823723819774544664241176877414248649289269418251192538275023923922315474882896581484134340347328465078149282085574054475878070382343454857418234700883376133176461510850962371365995592898020054157926500074954263327468725715196138825901170522408935204510974074606305163859808342984739786983698233433025693413928857193745475057760189735147329329577932109235931549938102473805305443337621446156800303204915736572851453660192497868575344449861591448548077046051750189217798699187824920533481020155059242644023811545562127963082361574508714402765320913010663106868636168689529562248628410676786523415476397113637321052272320876391867394371458863158404007307251420448023299282968006220353791043010549540064603233527592906604706295936026650359768245151922078322559429854304621812707451675353010153432547754966690498735341590415592362466606476833334427278728544571442063779102860254244356223704952451107288327407341726119046052243365499126910555088824340483919109058295935015669042175696284603929038702600129180160169968767744798529989956506886585882191166500998467731046533340743311413915893480927025650000438199863498187216085762228206827080664603537341779435924806920702989203158439508137923634303792536393606897608971842132503792485938365653156664632436483917731463272053900825327665702939443428266442675993383502167561834167664685320744056103654388512894464868041465678344792970418427606500112793793440199337141823650758999613408146356271041785845331433771306381069517285603420027524283509295277191483605859858651510463954803693463169382626908086661124040202970656517745245794391713344663905499369247836754726349359753434139988144541397012925251133224631238376738702172702589488003245256757317324443526592823628374185948146718758546263056301062426492548322684977363094818668441547907504845028260543590703036301485225797160817177564048013425566947160954688702490939371710773518081954057127278416805114923624096887396331666497858800283637355280390315406851296852298644431713220619212993635339696946480689626147090842579184276479549602675835161269979176841918379524628202972636058717618599942298044223746411227460607331056864181898936135491554039495566210856431851642269088442310757438405771526058285337537219861903090117444793330480879802804330270070046068902194117169619303569770422094757150526628604557354106417147199823865015233095916416770964937028316346618104767550069136280036749548235991989474541790746608187045955421371354410346943406801295334154292249716260313531657296344670086993833235232979390307279119037172678849877704048133580302924854541382806498290559752530974611006092710948455970749313533517418569628776984153738994947487624005937559698513973952998474031261196364401238227999320954771604815463243011589832770845443288064325368717632959852860440701589456620796732183607145729932426829861966721246983630905686848688691921610866934904667369809438714421456796122506926427407500865615954658481335369205148113625023508763816246063135908070710929814317137884717275754789510200970277305408335522021897642077120657844365515298323325689410568663877721481505139335352612206073897101859110938236486083520420621683544951837435976832336570549853420838708114161313859594216853840509793646156911990009917494210276558368992187020882240931427281950835517842255285511723826503663650592370792139158184557868453159213642215046299697312296083526409374454340106707288214538108395216933649375796522271685957460239492056360176636889199220537494374373043340557059674912491381373426040921214331203224028556732444813929153990600962556167189096612067485773968731607415180466555518223590567722528772500984027365177838405390178209495584501975293759943048298124905932847144735717932737457645359664521565444017014296552655820418145509044595392485856454054237226528278687651921015778208819913827423610850830706130546760675691590584296276088760209768713357274068141661315017227732561076406456557205617487216410981947446701320115921164718550818172573129869770566041012312602558093107750795571419890054058598377400830749740180508772181274845904776847953571161305963580423894228109039287704516548997139263018977173897989036519303209514497655164389692705349204054056845752163321575541787747849010067704189263564877676324566127031399498682656039977241489221384626882977064503778017170201149682036257612286029629272882374008402990386456288134625088718721014048032739774468065295636912373921927017364113758242686732873739873962709593882931885819084144791550125524574441437047210602969391249433902451123951725334810198369673431102813866981838366277822518629478685241026664643487918944301941324602721724556624521898618843842591337949929096860629063350403328706034973844832199978902150289214784612340427946920631759810251366330358174740388653623675765572129723574958001517269997587294668918901037393228002261019817218687572225997816059109803920203017489204260229655525955113843440496927218133710936486339780023736287780369182342280966465442365440999433347122505785186691100935340425973578743959838243982339132011762134267527679260138854313323466949254385413044940821046284842433636260297224868223471552997691729287205613940208786034949951282115465667078696767249117908229492572836606881621652454851884745381415729109262331556687722314091446910384289428351631799940934629550912444939289851560160817091315147205442287185631250210845144895947027202025130987970652987443168618964275035790547618552507490506701193210333005298472288470854360809698503084888817242506967693239126347652711630839728870560589441308060585136505566757136780761171487773478469730576047765864297313012184187101956992761434900011256170759377154482064697624073834201803397152691626203365143300150629148739199321591166625452219807181281390245062722008575084945665293955693952636978507674882111876612062719536330547277470705851783620411378592199082357622550455020788820982931914190319541719656863229334668475653287735564753146860578850301260107997721265176606799909576870738944734551370851414078792863485198761088429759650068484872665678822193103895147223747512774849722114283660577608992778305532417091395741504712538989443799203313359243169077317877563371248617787640199436112587293280201069857707648584333343683335536753756559451606502333468503431832733312438649436427962569522441638218057470693472502304826282970913000288933176576146912587797164878794551494597136782664083572193808115482464604905400872560021514779746459681113165314181058758865872687637653010381862874055701713785610453254071000286103642329854059025877145729961304687123593898082402975670953924317449983311784157505170301820482896028067929661418547659447714511914126959440576962876466004659823809212472506275093953030024144503938857580185025581556541618215901642405363378389567425747258340565792015534297039600324418264263399399600582753981558540210526890818911406453837750442299151952581225616392084960432403607578771673126844510515822242048120116755953565518333043339369838931377758120381552354374215399731640035550400003174281869300346329394064133150563064487029818995307743105547441651498122173207818023858630108025916776157215036085119203769567192697389231847607303504876492394235328684902480942955671388022452145082666969254246504681500437238575292614862276071585106775761013914695979659479344507895359453615014232499023898560245073729315106438838683390816427253851773558935271498888373275406574543735046661716267656569776179978972281520745665711719455358628480637543184007854495580218314331473590936886915189728475217940946113749060025880595855967656111243731053024330477210190602239377619237325981201352691166104375653702250900847939948436794016075203975342376587028794926273018299321783091585402703870325598979389781327321621871504139907320127124688021271774782050448496065098127241621628161602390380861539331338765602947300466357913149038812336279470410711486083433104317756245336584934670259983540839943387383086904903654527570758726130078045769751087318057731285934090898196427119842976972729805876778327249848711240973520553331088977972373927746542158344346961298446534046983971341540842969503315224309400369916220092711008210322486327013345205574829676793260931525091558061370160136838679123852511617900351154848252026894858747910593925007052173475022978085721546420031744726540145057220836972325294011156679235310073521026828791723119548014003246916318989501180303979230923232101610722358618594373107713492480661103946204756253550055135346722588582348541267467614616379305668662069557065399108679996272468177273949667282428325970085107528243345277945502697688273278105850177863519639196990763681125584797242385152751511414473588038209084752652797586119639687747512836501244316398082514385360106137115926854173750097465175834033118602985758828177968447462146100129147648349871289107156864648895209259642086896429481635467045562638088302617320722057454165634091157276353905475230600021859403949295660377148280094094102066803148663407979067844375420318134700195543956668720662872863248330656468319749714587771637558919452569150956532004711023774922600853651829594221839403933467866536922720030646525536876787024793037894477413006808406528183931515173794191478096334756416618363114261720996657967144535137889448584569313437207228498429317120477684529918202750837456562061315075214177233132621177889197106542907666662081299267868638030283562757649676505359279929086577872307969155902785449153786872592349028570912513254267663427362273439772588523714631591771481208075467759941319895335323812741941660378857167121379240057087052903455916784807948753901186888744522388627722823876914992803774008441321954040439299422688610285110151340107816423444526076665123839223828538512294672481966733942808043357084808635288538357814158951314743855066553984070284077212971520092246706449061578097749108288981378791249717600420011231022347520083326326383811588001671117538708514280210973399352228490841731558010395387820307229105372982889325705367597951895201584889835758430396710864583365798646081981195093544038348965787598790125774257665958010927639340768717902014028550813234849916967317419182955132770962452232980089268340430092573847858138440736737311342056247767006901313164992185913063535757410715991833038321665401457250654045019729798150241098964955030508230353057150249383823103325204531213723667273967481306867945304654028966444079283719869803898434807719766926398198336786203337108601726502136495850457122316651830044766711587024427750601505479524895199948361055216880707599638935530224692441922611012139658234136450037059510383948027006316749895263060849533863949636324725191563719601645457005572790584136666899287962061299406287910659165371314344000623390309771545111208483218462741364766337211141603763107184550688315725844837296936907861497540365807842207055802425187369565099476245089306854403735660125114267622975405037747791876189231385366217336186183220936522469484875638809435505489830116889783510037387805754587248612424558030605536463779520974179209419794671801344279811712202280289045532199522873236406480752633165246047584505343623208367885442101115938064692444337529805700828670148442777204435585770004286849092893149047700372273290975070769296488229054246470205084608550641996047809059056217163220952652732916859859484153576111439105341032249804176716548779610696611428123528288769004038469332791150875982334165754458980473184827933149694998406177900804557044229483815698903502566376609883599627402674398616215933648346105024986036373880363522958396471262220857133160542768015105475790499277587261381397232529942967664325479889283655429772871258556917256234706763151208385704543949063259056062317985497846938594916145856065859929217242243875542290000798987393083897326949819171342672687791611073734931926781651326199399110147158903875269277322225393558919581680224594582732272276967573843910308109588447589192443593394078440117902474248093960548156878301794329949397085525208079492300370817742678204288219184392199808544765803135807673863087062814197652364868642898577479130419903559880045449388873859132757324195194931917420826790766095087224687245850734967554852304779680502517189730398312302690627005133882073703074341331887810055238879327520654823601568418132053747773306003743843011626197212935562261720078092438398558273640705513260249981918256364326468757881197731439474903797830956373427217587929260482850835392331914614275576231644405431284300921791831716237772212309638014377067565796536863205595470099793068406918767611605120365221517046097574790212556615524444491023617897667160285698725837188555354807592186690723397450607984321492135823569744544759369323812756129079857640082424143849602204099728960614277174806474246126833795852482260664605253908651709518088852422301517936576576860858854421695168549228050653240237490807694783418497121349356506189556474993218978128391899798627762530019483360208330552293417746530936350345413185428555875384554067173936275631139617993714257448290099605396630394917027626495574372850799832401382335559263226134336334566165142775748353810619154935682313613324162223625291938950522134446955791419154960508107046110902510101422190967870430104634713503072307512513019766433243336820544906941360318142885413394152759647529841093549105109461475255465967398131477812339786408669814632545245100828984844195979481387623225481088900709234584555182665005083663627832860872272308092859746446512976656797300118997296185104559769046634735113823775965050370964953287619137307816156070945603735583597583782121381585907660838266002346835003308397480543708464306717684865267360145891433181045707578382549097333908971371090833271459389160563327298503611318892612908931294812773115503370764283651728569448221422446166652686122683623228428548538212819349837950534700758624514649382432634998497374796751603599560431358704321202699312883345941768801933943764378017184936254983644526945223259479182496332803938147656004761671319396055733973193567206569355693256233408814114509715991068092403255340017874975896987533835916691420699931861428915626431013405998114113816671335033450694077245248331108697728212997557943842742087912718772427493798701356927379539350982825793207290740187559854566035448604206989176964016080882019641300548775904880138337996314084204401220283931921636302104760992096581646388514469149911220213974615126241788302205722802465637277418644451983778237534286277333999688440335535365112800405357586666387694268193654040524372717161702894352607341379945719768252555925425609311336938543932992665592379967393534230765042590357033990243250660661989278218555634469366331244321349053927150168571551261167111408439031024317709501603687913585537819858603344220443828287409060504444204205677799537150416505631105434843071051512097090681438357763636057856857868432810029686912428692542358591293629656847683729267512508935925108886295533212386639184930731874390237583435599938160761715352030725446269885405469849112438839844763738513970576730542789404977188509294122827720314454666932377038946335390035259126030830387202227410662513532228354089406588383103069504988963766066122672041844121922815362366704500059138951802541694340139789656027611350469621368496226198458181773335617658589741395046581954749904548085502194389338841102682994544442202252009940858312600303503259883193618256063114076956110848840012727994103888955455401695529474600124585298954855402869820694755313476239103740890522484269363916813194312400193738969335043873740756516427925813780109078418094868221258988029628274075292974153521956952944015639072039019473359387090151230816554639068299355510829138212764434500263183733336168867058847852187288384723019493781874555259434722430241697320391963232537647578637719820638414039937519362225263017361866072817875565581563537932698547961558583612732792243094494242526516850197392546126259459800766190588632164894560259506039177048659038488462261380035297181847187115740135243808866736720685438610230727909965057366908455175428825173661068558516576884688963800198285323257114539164625596688455986889284441062692113973894586178737418711587867446313172463671303104115752616391171941507069510881196323834773217087159940783973197461099892007644903011114791809954829391110118737358171323565716993234458935516431492581480599524661466454820369156355357028673898990774675324509918954375040497085212972058319071923161197926636791097629996935583266015616437045600648401286692647174727585243676862454372484194759812159430423875050981966810070547462407609301729333003046289821773860459480136203043737069629048631750624772224066737059211519145562023472487655797929647565596262388050703114312232505156462198371667693747386338991001508887325721628877055814725704474170330553269110897324875413960620282134919720462285667198733280075502779667428944533049001038706421257074091786781728880697864730657327378869731908303603600904224266156902472709094971651186155883728815096725613297658800528994970401989308145165502677023069130934365958692391867407980801168568048017319146649339875557514947250100178151804014483922726262156869456112955470581134208402674226068137432944622041021940926764247645277509908978302866494765429252484949926066690264640426365355754404891259881448172884509260801869489393220463322129762290755146235122786570256091449523852606495789560747467809489245363914254034360383842475066449113290925942627057790508197919948418025196498824630955507278457284743286129025336147302238665440140582122776037543730282528648649601310364474788626249702224964471847422648662151504589658847124811311187837393239382983192255561386910159928325973013909509183798108270874030547282096224199648332941048315635079854510913968718967297468014752535168044134300685042153515766159144398979765329794901463632053484321866089806239013238561760391631723373159507555150792914221632981368591352479366621374286271787987960969332785827697959171970478787214218188841963714851366263649119841543802331327902628078029631939953491532397215178210726864753473530354753940714155773377872397985199555331403848527786055297033791890039763027652660768045790411269557872989320047869250642107479165547140454862028353937224913467527800411119895922954289482611599451257335332979934251959939256451108404792363589848802951486942316413087566013827170609752792837993206644051563650382326699198549587091317345667447169962750865119941935231490100115641603126343581971307446961028044160671664257474738691538082468831486207560482490546492981000393982147327372857356715205872185451900919231160277938853720414370348513775671997619931036328135301967758019216302820686276198467287914414078441627922887140162838632683376273443443297723819259761188876756938753983504027678494327559218785397279789705770942474778394687149805920898804586777888275956126813339931425607070192220075024840495263387302007973083353017674391336367546537651820185920359532011200666148248195707202400719470138229322495267476260591811831523144254564290492315194437765210825671386188610069392157866947665366361194154756196680646297043872735635683129797134074271315215416354656652001547280148742101177026331570845053037513303378893704968417624935496701940495723264621739486358682196117701284685149308550269794017767818871858165235846223048934795463714811434800467998285071332952118031686008012141536315201353471557830338488965613760233958444328338457983507770642977202978800530547941497378169919946995134442829105688015652608648504248089633930630352095289235764611672343833811268304051925797271121890315224163296068184256762162441272187183662060729739309064153059406633968262805746417640129358608454020264188236160016520236514230392273800685999525072501659504933826726281653471437930314214430790529407081185548570797601173384559925250787095183691657017156113172164655579468817254202227652381223833741988645631541511538059326150693864805491615250170206341701930340276629914366262816050462133756794863076442883182039140814793437525847959757955164999949155505736777444042819546767861728402716013383920380259936141860925452617696131955096666416013389574331073484269099249895868590367158210543808630075008811341296918802895193704331903723559347733433581680072033602878361768983780840544811685775914397382527492915232746474679150331868049071768499723159299405397273605042538170532357799278645693497342616599717799591501229589721390126044684602965127554127884444255941180134054637989781907995421081589337431512672709209515901465839757602605223978141904555976777318556047476045274326678074833343087550001749628493669393316095048433123051456457391776803932859763029835736775052358608573694770347788145307612474335327913479461864018981010492633576736746459549756032164518219498605871960884142734168823989864556958114630616253023156238058579098339954518288146916111059247906307080833541102601941948487370927622947487460441943845386690527801565294975193095571208478204965352491097676573915158669599314973405838121547993586393618557483538890090759281308791167506407614034324386988888665311218784081483330547486539177531336284468009637886867822194424009969424223825883760863041265457180197747511718045985763914509368893835919299814192420528007404857687644018361050912486900081635964797784803024400398134233187397899456237622205512854320024805749140700014497062712639777456292135496724787265839523929264657417961849670089685789741577903105320339877624743015037620406442804730542688723589656594245831140626832754330350217648726818611902511205371290461217268524161835488461318612453269586004764652342424365236153411847870905087274025916437006878383702612538193301972874583564146368449955241201010651184209420858265718468894297058527968048842538446004720340902177983105630397795585661698542398189309987615429954057901990964833600689915739185906760612310773502159042434325735707210751973917619007189810006224837006993521035452313599601545324185634703060447757249887550604992062304784943088137466971369066144967043563995083209166541098652072472077763174234460420551161810126032219746407635309065133877149131155012081770567720602857819812311153614968160429968560008036195359282892704250862828693822849060328358145006301149612825957285628004982120624391851933314494132194117841529270141842873479759525224442254468927951391467882553586138291265762458261818275108890071921166683817940141099865744521469354582284773082121850779892141794000607969012676104786745043166009944094861709922490787385033263280623170410732369677882833804715901483197745242972003965931248241397349232856566984288629534169479721370552722226061009895557301872875924013397175339059010413430097233369018155835912815758376072070208901664746049442404719498492701791058184117688271548820282941275209172850170230152186323988686611840914822801964791744720564384248894479577028699306062779352073048835197267951556470826428437974293443001527451961850710665814921774068103168233673367080839165412290510697080265086389164313589503271562642026303643935565644577362048257980027222874031250708416369454086763796484589020487345766931047607988254405338932236170753656966613401370700236818357898080631874670748017585116748558049849041275154893186044627774797293332220958160016806235021327427420828051909107750865154759401418038008757965650492163804529338668581751917000037137511284986418827741988340740801037090508860680076248091360285964657626696674189795478523102536684056534898706701466396413522362351259692594372629800297475568413883069943901343441907516464524265490450047988583491315194569360926235752284841802865586647381580261517021180385241646386231938126271741188554732718753908970627483544588650114469150624918604196576149239238566047132895299246820160671919667725035340649924349414256256786822716721638121687554079964595612131743282878523301847323907237209204634913696439492221354624934778397078710845293160713838439806344255322033262012282527903179772643814496697645650496001981196218854645853406571754366833494467077565950560909784424665223932372203240168123054751747574615104840468389152085254094819336281401204807979480738520955139670162539363566490797714431181027387255286207888040186640042807924882930597709126751534426110709394950790913568242119314239444452641352398012777103917899144810980292880044365665090199624017486926776932178646101088417561186822870157703062261447043824052624604480598287014699846998372276591866606172891857216830996699418940955142211906351955920136109355582675868727855195975635912382551941141627673622480876182678322201590154074476837084246664355058650631127477556089428742384683274334289082599703097309063569914899617009890599618696764674830836153642897793064777887067305224656825030291232389249626037605560299762728435228754004491708281134910935788659635414356544105600006239687986746118175354123938294025766387692243921078500276900343646994293394704558469136335072178467729368401793997785927371927973656745543732318666951862924336632774338919141722723469776797036735275223173352715689906989804877264206614586800368171587366585445473738253968834776642474589208439151709639237173190720331736073945650408246367717555176521512241242078458560113880930687740184350715446361548307163691472331026827963448974012900359121810152227938425421622480709091738440292276282227348284835850008821226617116683827687140108004438618805330443468959769671307800005507746424758671810278100153680110174265293545045540575441459039388696774742586839849735189743752838686089510356580545040502674429367416173428391907153804815066766597301612759958969222075642195988319670432384138374863122703871466026253482241844517003947795225107426073447414773883734438715005572536190840780940608940382582378931737622498209391295651756356237165394188440439482245503564288774974003688732985256619153210692693777867113931132899267929155456739707346800628788531225871801694084185558260124438813356032050067921388650060233452380898211194297674962332395812037642185806059388993526327394477404771942684659568580037598700883501922377144945799675780308372896191662166199296882443200605312295348625944053760161221670803418073348802725380744723167717179084421534927890108383193201221249964653089237281600145770985729933398950680926992981238967582362382056917046533302880592907632589024161115150622052955777761385961381246903914469166263358382196660591563104259432188041569085977822115226705846523063794460678866448398176212744914105849708813292887393469474637446357849376846683674846942038986765417459179362893479166696092924109508176170308542151184396997488070908827668383952203756382873334697171719542694754347599363012494789539056552140473463563612417476790948106070486584971865152641399967263127567715137141470561982355251717251535298797672260709926206002113898320849941488602059532165342527516371878606888176867060577936428144714111189513950561536313960423981475579095403817721564830353154751404354003692427815058508159032772259316594949218659132854106565971635916893164264188194719086088505230450324810260789019093058629706137300195568948832432942448501377325638408216504754039145822554307811977257414981792195055009028680094970376531414990713257063012031259736712697848072430634970626783672094212555343753507592917045126613297100601128256860443436110063949056684056983149143131694386725220425903329360851460408897082744863183724660713610877723804719947356924253553445942253103023443909973063036623099885086440922072049358548354621440537766212919092520719999069005520044635127532105840805632243216747306759265690595944956052029937552594275252037761580450045623120973699011783214046875719169280285991409862964944882401207898924743992250298934970147822155031689903363420555345331724182038665956834464439172472294177260806663812839106565214468928050461287399486325085186639284985956983673215870987947865231716137266991169808743074538569086292946713663571535407389737514092055049018228752435668046358365285706177952757067667031870491211494062494825663938241698742880587317125556092324131123398965288924655856703606637836310346062667107403613607815758752561704905721158813956926150250328287106728349115349476743632048652736054981419427363488536907781519505626280428900096058443555841587269203643860256131502774717419093446058585274036752286029362793742189395778362518532135081124764407090087594594530263974454761443113740580400132770269409080093349835505772330481942478805114415354725171826173201346590705340281383748619347686888387578766440618606896229715620451559771765237229952657232168081734170159209430496280415414439260712497289060749127488945537537948006547124449942735299277607333432076685899135734221747626273599042144212987436348915236232869359327129485531241389977202434339768810967531347658893567101044946949275998355996531354260216192478170967922262800778722316255174503575370131561349379409156509445873961459615166529223510067866276217035275602660484186491924508366816453895016378565222721952834078107327186702310047245317643428907296633853922171567658620037546074460509431102012377626125474958225882884800422958631246560998554047609238823694472016595775981980066218917281648250438722613998370103138772845030235356584500760333511379963840372006510796808783631860619195373098764847488623412346353599308263440210579232329514423107359989115493713584369128000402115392102239958669373596105570093894869657907429421327355346490858944764078256326741169428275720851230253580176133003014825678838586415738836176207788609287333558099342933651166269407659836202985653844376717816904815359187180255538041862570001189547985988246666888216225532930426732322637051597136252016754673438961330457576233808450827328378496021682531810342979227550613053552409586704101900552723630589395869604330798302208193735347877164836206424339800230511841595440275436144334617240365367717739015748751006991949104613509081300728523682284451782428198504361776130927216623842030634812270782449982341448839294269987288065959523465394006562269135127697594979831567482779325158094185779636916251730167047046364657748290294692384319795038282278742216115707821629282658449476437028170974349604677077337185612524339098775067611635854392398523101993675741627880334789549314712914688921106955796120680379749619148307955604688002690886372864267152659786270788594092857865022535377940349687983029197323359679284290630123199568248883104722193453214302149348251016939910167555183193887007589170914560779293059091223469047991715772008246176039458526114653197507242708061560737756862543830892389227156789286544173459424128023780329269021769266029022330713480483482255803687773180239592838388080761503572620518639655541536247059945874749161893922397697875909144254407730489322620978795289878103408969946575894805483397561847432689643796904689722455715563984402803798853097271179072343161907313257534399251922191437430362551997772498829317295112747903043550953402663107954838768720960146752303944546766263095125180288318707568182356600019958697189541278518526766867255283156910564599996152370680924542402279010982752866711665082011992227150314804452721328582224553802641688274670917521958373769177194766687301288768216745697087199329691349736294553747988334982854905713848080900064114948410309451307297277303212048776646415751130472991020260468150577339919546679322228615072226306023846335337006403701227017187065568906271342986586242447726375028837139670639458128118678118546050154227468774828906408820102321752207778940135730229311101324025309281721493079541852256205023377033030926462263697083529036524726244629749101365582776790889087502890268981475453699069160344598768715307777790028085282490940518267056980107455844862260793967041283513103273134990827745179333538444707247261662576663057251827993323004322107161976047083607345724938414865839599544112287777051205407389064073091892296562887305161520888076865266279284432958425208582832788558791036262264479023405081300909469951906881706181219176134930869365255369241196191352882369475610763057907068606629026411085704583967894215787062563344449670070501836350043844729557082170184831731367201462418887172811190258898373886643727036041118782763593205128314867180747591384127110292570682391224528473340814621155137617461851013537038439961596454391655724830969515751675622534715430884954808316451529213513294732293582508556798329454089392926645128563886597780255606351362208738187331089884961154997114382243084079552938228941255788414569473840409900742975361608697754322943212692379021864108415890135884695814756976942016575412774275091708018191406691571767080021766813380242897760703300625022433187030463381595063343995125102746837619156005003130915330967349807348660191083150529962611297303885337140177179252817927085572128530035929416979088840649475035303136263579154681775061773802511236821602170042518350087710487606940690397766365660975651884992628913814242158311589382147740505491607959858108281651201616123214681343435895096361511824370024380098352941624421237068881016352253657168674874250755395908816221279587970281558043031221366572290723655590677647288117855501222637395729053012431062821516673640355211668143430113199148314947452331730156739007944111748461664496980179915724156721834704012649963421283473294299421071228089799275107865251833521941838928226618744290116168686742714208909492643486310689202092813596057027392085883282067251107286862009195278823209662867520265132506951126818984789688455541846821200454754306474345993193076378213664075794031906582097221590313091631184607255593765200368376488782554547572519987857087867513882262071159191576823031028761345303231079743646067557887130176117175143658878351365271581337958043861669271893357626328909879206135296910583515989033402289277164610749323057520231072884144780433650217471258756297166513882161761503597385499608665453044858710778965216830859430460717364620067406954390156138239316343709887500755486522300644551351000711628044365948396053057192829831811435744400724517422760447506948401411348494703047861763607113024899085876067065389823946523679813423555408790917038053096943857845080461177429603660410230300600464267231235627519910305883261250910427844731684242605562804491231751714219925375683173091438104186911905450926470785653841137203390494632587338440082309835300666968416817169082809656833267376963086363586269484657961304526909554629576101286000400227846732963284351717163792011577311142672883593315345463608061044861445304349959483483010258685965905172429422487991413319156232943857916793373558020199720600012189459868920927307456675613509759177653432171844090104994402639562352683259660202170824819049802878420561277656113853302299967796866098029603861540582870198619372316092811845752956367332278338558612855704811646925806390938945270976245366351633862527231088543232871831808610050252191735543411808538118028192196437986737867061523523510057464657867501879357854379792797613514013285697099772891395788672718586919247948575299417807922829135813127221002312602594743927491540139749184348887299845345951078910779799640132991167343326706347686391840385252518165093423461748405469182920142647698610171876821994553709621495268976707087327915024302458325844257631203178393365432356269139040939409229810970812701836103408383518062833898945249624327761276788348088206143556202426495773747746928635356348776959094476435882138055721980373841147027042204164276465248923060313690449167802566179215264303367603209661480501644547501579873074533631330628589627440301591264184581914518627507213625019460357335487728402056606813276030363575475488907332768086704917391866906228690805402178516505894302327803325740144324634752289023117285863550040322039483811593038055489031659920031442209684429673974043324589214130818791993969551597865395534849480390595820649846305181396947321675327165974099761164786662534317642339880639683219021169484169423781635099271598020339522625129319121243050860786013511975797835129023085653168697913770083586822452711886705510666428453515630118242951725830407087092029956512633956024389791273208925725375102269135998114635813774137255315800933049078276080475787129596121896056079588730001430140399937161087088051953424143873121934240141892242881821890923817121364437421743084145403298080195872502456383610311513700947679425358238113622678719837665675384416794563665274835115620768410983951685082477405712194339337618433208528628355871579993514952509202009996480832698893353074713714622705237086079781268380537362670895083762870913535532373873657673640663109599118635509510253775825169396466231350416491772749153648757445785046019340760291113954815630200777032672413179870445443236045624280940461687757395192269568913038495990507865034235213788804530209632925564308191577542163261901206947590209919224701473264983842202034826329911556434465547607983536967947815562418519260311821215654289458393661661938325084251866549362704171423912849069613156506556782355405672227651772258639329888352352529449596149114852882170532234659339513031395898670090750622286659121257342586245513138771186165008915738871229083189878323405757781312588579290215787158096292937782893719868264517612530160207444115153131982125435835867051107200215853852802038453846954405754696746446306569749318753822700794793240405983742497592346183156184032036092433169545991967465963431851733134938045955144520083788937141804846291375329466514836432602389222653604124909089783684223255729415476524493535450265667719225782492582669988523458609388392722686147348079055809851556457221929040992792326906709999476797293601351160369284721560450738859664312777920227226686502679848454646371100866206067193908105226340618111638003108592728929854845356609369296728226788268292252326553147848315796712174368387893445485389935684699578452724315180441692261139901489274231590326809890095526201575104824809898962112879131197402848276005306707090182551422890544681729889911909977590979757185080093973695995711837304602349472308520637885307073800624678957215461510935537827547708554437119941577778047284039475029018034082934437824350549630998940113799840776874733247022328571330462566049257713410365500590402229678251217222383155498837260397742112113755023748911299238008051788705145436059691233591326249736858213148712421809243948056863008649553144922682529602653351691547953900361862511770008215098888888921100451487853168736459580887274352538506940817441695416859284499269466867542229253783851638872870177864306136028448921878737380827105495370091730453639800888752277712778833909184782259294180163860431578495841257972740821001404060383579826618396511502882701760333419008022908272495577242065913181483009842746031021584780025200592206002447088530103874717026430294243871758163189959792915677514485335520734175745922332595655942744856775493598648779321158325032658928318198853133896527608251215824121482174868376748669931254475937059011953323694796206203165261088911597873030726780168226937170565470495766560332459290881638349834580076910783250551585783594975115104773636476914694784606031825441929639381988079823367268636839020709704998873363376438439352910228631548110638117173960345214737112427015229098983651124311512148736864307852292736700970061082392616527818802578731322417448690578952766725805746778433492403339043261201600683475016382234501863433175218049794933322190110707235940019215086213858079769369411449122972275187032914929321056012949224743877148425843619116050173995711019420073222974632259202965057126720961089924016809865149011122257694832834045597422138415378162112000606235498572932125570582219309691109411845251321468988546415439682710553171512105787906048364785464640429735723770426564049721137088626490457516993897562848279403955277693878522999927210518552429637884920473600584611280649254703542936355176270662792240888653225039816877219927708437272901476909098906792229737800948562332895280778662137068585619719526913964649944986034331034448923650006575146518295957639037648769674993751650191793219257946936489181670668840552972613678490694688657347372389572696224809979453404250089628973368374019238882483327601164295929023883557984765491073625738490344682620024469421910233175985379510177196253128558108935963208217330377639025543686794696742718498659933394498726303204616658622410245418672560662758266240963497053552103803944550350233392972536448372053930880730915924545863306067406725978505195401130552114788690045358506404483652525319739001286116668559963378860367917088009140998486792041598920069357375842296963678069554211578782282943740619561344818777659231414009765072117468633669851524899842237689993473797290252547838413969031699734120519269283146146443599196702664848506043026824761021594621422255298463986042919700351694558423715371817889423601572824691216112182477716650753369873358294227899717003984791071431261472169591773381861968881263587549308224841116650472782117468975285229205423768424669120214713130051300943958912846804887825563044849226431729616444491574292394572881896781418232000519419180086123054006338129593273733806152465448037754479564001419846594092951921263857355653633253530765259231617625782736074808688588248014442227610997574196415761855468253522819838892868074676351302897368142164628385961660050646035606492031018598011470825297230811048520221382470343653009011962717670614488807399727283925119523478366903910536852919616567889299252743001110335775460984499381617241407160262491266746206700856734756707706578565146830944786655873553353316478887712331862332413994564158398768344406683261554539150065813058388488192451326601972478815493651083057947372118445465774414871036412989061978131280886811479364588131248959543624553761877513900607289654473892413837653818212313328113734778123214041475359753050771459470368583758177584142344794146570295415724361483692925427150655911294405645570161787975884380719153525418147814285819494671863092587867738404727913375514046120483018551723213869028567353850160532264323920755041965264989103406581885262910535008556280002405467395187587625273716043012726333777138305250216774847616524882718815884790448508257257142142880048684160313003321963054968856855305516198132992108765511358534103307976562441830925828506184644421817551505563620272565740169200107509788576476009156806177036451454787349140386265812126608878372784508329390891701521744563281475170260778236099666958669988679823780542805149905695578239682200669047233254167182578861949913835998092116100585524396709395814354735991693721967349537343505413373113544886578362045366290902894584900292789290139784885783639223193543035490740388432683267128734081154310349509631574161914644554693143891018461977230555284597765826447631855933155153480543994633836236656994193487616270610545650859514140862269887339693316210279390742470795066126222616702582770640270432532509453160854615267838286926283251533740582427937812865707496479867668730683314139809167536950158444570854908906439493768383280034248256122842906413189081839736356604129371139740130810546511965740411211393860849490790009071753276654984179991499294646300654102601701472968686198918089720109402974777745782396063439152600487316633051386709163230575761679397734813808781551105454869622517185676284698377004835228026243194035862265430882370135581738257898680919556562980855638061323206151117438844837606634594508696255844929128519724125266666637153286343080095443458073439456331657738865513087229502164670529874452484157296789236884810040064691881024792956312408862916315788389707652160368051933948536448202966388083614739222866537579156524346859174400669540818544963543297843285652155848637596756073853705017429908145384952994814864712546255649388653441904478174826870850218813225025721571420986705998516967721982044198362632052503919004605258446012397817187655081163437507191016948951632161511553432492217435632583671735884908787249862536085722017026127188300400921203258009748117952252852435783241669209106278669114951516774129700845677783828566843466630616973131536376528886362585456482729030772246136098669077594394234261465942824666099477846722279093109444248228282056134915404430650008773177274833456487300258944103305016592385424485156481655599388788998249157991431294428833085240855920991875722321105147199199727365700032890213445221365026483236754326301825805215230290697509651785239337896673948665514143431822650436185863163710987621032409244280694057559794842707387143716283410796581590783740369401903636035919819926420947346790012567671864030724097046645037357488639762347379290101339260481812937510752849384708323566566613499290521912749248611491048939012625431219122107248356814477699893200623458262032171608486041113142975192319149670607020441738836007604295242123367526357682370264360651146126314780364034513863668670376441547913021994004945537268493118691329272238349175522260243423928938381916339858824722320858524825774761477501188374603871108484014926517614138872665507502419069335011082425332201380924846895378858534604692089328877293574780039368833952681826357032700161834392671536928727476842026499436697712533842091037083711516385157750433798818631477951180203278382038431361999547569655972659816052038054006467229441236954128259330003062130328705328184599277817921478006621765409669745555748700048877091913327542576506629065767280988316791510688073594828025299002035602030136329136307552125359475964888569625382730858793948172695267798369225209429110447668614131759831086437114094458178174003116342395276359293956178632004384988810372134102600672425501452504838120655482485934575874153515143926506647907379010234318455319844178397501442505466889585885520079905722577682964657385149435668669223180844057555852672723665910165629255290422109174894554881917732393790516833210552749475383179230942309865523376848343560685444650831402689613371573175406403913904835186503733807623187687051888210519554747875273033653385000650784745889235780554882141449606151228815208928963390979392025228291827588341646047851276441476182755242880960490722372153750637699211629917698740167071452820325797124308014086433125150414492276880438092588189021431225307703229823835694786417308882405127082643445918899397627203139378035539223340857437923740111409807291374720420886450068817072270571179144920453115497974394759988688802366091688418359769248557077936550490715118570778045982623987735200944261669361032182161388508827354097647623841820006320296608258883174819748789709848232591089096622657764075849982388121674343451424270133879268147031344949462626863258634797543076345043759576901789953133587275756421864248247454785462806570833204996938615121847477915740892316777039534251148433629479243044676784724733035731341599207616925338794823851437719666309215353625264362621511488087296833118601622216072983782194662347631037622085749823795882259448826663316743679200738848957681302131835154905190484942985321016567430582384881385982281047549128761533071772245976439326946435629174213984469270755601241171311777185335519550229163560290279838267410923111418273959164155412364935876880081613712864397501448066625531536186271911956678862526595828437949510539730736703944247806631549317765071258863451630887620327638124457433746927824925459433825653902855548025209193073236597405035614353339632743210425549438172068086606906526035247423174586582619028141601013256149797853131338203830341175976788652257022245607497213984737782375216745915685348815935075462574513701691462973212268425305245012538902274650221166328814226048229407235335254625388250841893606837050666469089795470017624765614815352213615445080195658446320733951123555534525586458986858220206489096251171651701447553865282736955998936534947745222658525600405714846360809291918490526540895999488365519191462477153304062859140937787240220075735342272123792750858040115438348932349259168622156997281895148497392934509231597899951304195555916983990591951886682618544553916443191731095311395679099379272836593766331169912691445331714753530830632643931952709915271046481711628888676920845363853452723184079205108358577098790268351930262853402662335281761770879523621415040439874569481346415400054528014317676283681646667211605455939160082595561033424958901784942720638272363030730155076823236065103360081326071371977715426197953418784658221372671496828084233362327359661540600945259219584235368093354183845189381050421508405496853522542026453068372043734394327218744727539909392247560572748599604244154077113404013699835078532195284001414405907807542099157403789224615486550080135816706158540800348652318490372842077327058864904146694569706417112122685006894195417838935941283616695046618532417275173552153659643442461434965669423229162804854306363634222343449201909440349297243522376838917534220272968919181208050311915468611383502797534884942389912541304707693804017979430770386823537369982967975204424321865494125462610741238869756873176593249980133500704250724908216327580231942521869667502881598333281715296926176238293036148246206999333351034154071656824628397297371804631685486909562734430402488995633519474251513890398091825698650100108151985903728436378915989467249742127522193355142369067824610545061633780589386788525921942149548676052375109908027505186140126067091418890421658264120537777834857919884891389831862229438173407159594756105260593163199735527505450844112044597489966289610498302925256344845342503066720447460275022152663812621336398843411948177105182030245004182069318683050175473164678612094877476270671949125060225740677505422938181056754378837242207251389562484116057638018749008146411514470254928398656117001739334824767900711705578078750265484538392149847548179038846850063116367343251529700834603595306022123790200840917393866572860117660148906566048664699752126733494769405324424894050732343541719484697982646344102819800732748763523135171227976415763914464623488909044396572459719603944107080829280551476181223686054386946215767186234612391089170299653380966604625696184637251037855485336952807304894485722584545790705807051495387991573974375874720441880278324410270102492514762340188391377878273213679210618849487657360820708024523970457032505364228273034468607520254154208704578287279506290190120271419746765254799618670038754297655467793835240119129539995009465029583619293230832563019173622813350004652811006661266776561504770927554244800167041643067062468676807062042897266872872487373590536456397418496163835278866038426826668218938341747165089487652071377211127377060920345107011030522969857867804578481268114447767441389747806709137505514267499314870122941743287261771883905050104159585174195062921749302192393782553566619288132777526575648715993495387815786195903809338755404911878847176847242002349459764546053687410829743198771242080449086029064071869218326922837546080494359953983397084202878093540209088203510481974345374398767324435983010815886288343310381258902277976570487085184660828624381437650490064623317758758090807214885730762086778232800480218849927674772571851811911792321079298688120416825904731669733799377352748499469796447000002329015269017103953041018772060626619025076062370338190977883552712916684634340770756546967014789066079010812309326472305697361506596909022064441882931427841860458945198364151545359184581611445591526220874505681693696409382922728194964068366703823279258579446412434570687937858687927166154757995339857264510692345676250318729515613842529870439817284379556673387158528358611591601449163872525333812769935642575832507245804282698703494269805970133992363223864670874973557817151369092410144247576909490042695252076924413805503585424119901765904193949298885834503247123574011137437727558516177939612452023766632589230802596254919754738232940126992360201456888784801149485791180542427522292932759331519434567365034972058017773535553260844898845374208348387235761263353362494195969813897716131950812375815566876518358749297980986820771561309529744058507751925521449881222709911578615968625240852010896634724104687047789094442051444321000766837217122976322966607594505356028938719804791866458820036925685240789194717962821771720478276880759730040557246451526754209708573913137683019617437415127123167160066620702404406257319938094636269595682062279659800267784836008500775584542045258925327448885287318610120450461675569475319663776488815977210257053738661791646664738689998676402918307524514778254214766186505115212937154860256027617379515222452178688213110537049539514424751654284226194683073184324088952540201799173401071619023744094320400303545492612629725158137907264672942778963487329459237807824008347459749856854573512615573873805379771559969253761935363947038368928456846050837306090680620301019690817575605963810562231840065161602715020285800641607239098990815126616499928682314747055251796985251200534246498055557870743894075264199006937496191093010117166919762214759673137220582297453176291086721571599509932306456765301005288544071596549517747912888379026666462349826304966126180728533118417704084637590167922322399711031436601850658171336199507604941426007921543811708623351942756468552041948891612266553573079879750667191619117220220481197706344293788933369885390843345602225998126548231340577590465577598436787036984309037021528250920080389973342050964667602408246010693080856739007869406066077988455515529545647732278554143934807572421186351988962942800697044165881236164502210610047342998430399170444429660176974773795849593033423063803126363666791062562666930049193253537839097978390319681289342735708050341433321847063756918079574383975325536519098960520652052498734083053371292871322882053285909700343160313553020228783580432751320102161527000101873843773118809135725387327472496927192023758750855736846379861467456751353873287391376365292611103132876382738883686424425946441539443360441102333503537290687225630724468312493662929894232672913163464520155376051929350383568295263384261482825662621201616878151816832285648048436265968709773899746678546550857713964392309612938582684843863952758061269724653613982648530739280135407311747246256638750932624879759083733998702866351010315311798290793923043251516463329837607362243280271200444009161980312854074681145244973283247500862808820346125572334571244371947746384524184404200954626748863156417402341310647429665156952896476799785562725163352905279188377616228908308911709763841813281703025559622425594405668344201019860433419260263251193916684952019832659305395798147635880367622233767926767284797520683252230266464064584318487028608048874616935411799451029782749758762068960637170307530265548601302239175854781457346860207308536444540689558001102098836544228529192999321554550241088475832745683004086902689513482252744721900651475048419463533223359989013928866680341964375794097634366915718727671805795831564615410936809534702694162301901109113606611757943030404636458512347245509870447478162572066866439503905712390951504097271148738203269377749113101121249347672495723280530502123889291769106700457707803365314264182127737516000303791309721013303453686821783258497828519789106632478899507016675904205427470100970359286697483175707907425520331020955003173098227650271775111149808143245483823248515899858066684192670297776392384703815399972064768094314095334857422341178905614254220849457438371670326898592611304103117645151860079721544823433946356040181147380308384586041060449106707751717845702111324244456273037381520756302768499145223912175816300877030331104728123428359814596307195591339826844693705002495992711086177561996957886751147017193170250064778631597089552374522669669043823969471896730897864390934046945931140649873100106223025573802048075953266488876185535423131955089898254287637653749149615907154495351244778146546354799361640389810535583268522078873353795424106142912981491746806776022377677629378597761412953630798465270338907579838366702219725244223190671332646889231333011243717451937517077098039319605234224667319081945592411098937750326144217337412474112898575778819462840618441777825678301513947703885823215131962327218419382896978138594252993742046422030131419073655300311828489852302863881960897624828204357945333562442492068262048944057372175221424405719107108832201571081400366645603214710271436831639109329594584508308919951016168317842146065927585446182975974840646238148199908232021962485384222617088537086367733765042520228430342665930098593164850150371275443858898568230564486841086154361824690585448454829999565389122514481462311884368612047711025806020825170847451640526990453785510038417892542732250895400755034496323877035266099652892436850759383843952657635882906055049769907322606028365081396187601500964661886293764172630820489615795000560300659728268468738906770180697373936737076350546812817806288862935255592476755222011117185850045925692577449585506863337322257782554496027814038489605278435673935700697100575987746949641516457300710645933437911023936710899363865460909489261553450266181699321868985834756611054478306516792225847623821961295959074387261323282564360460551234334121206915661164575997988751841853111864511541280834281524653859271794195274363042701177241461229021776969131600128551763708146009190694157712374269454806911372020365001630736893309047937476189515001614754288049730142055315105773306525080997598979881205864600652672881450991923945136395408610646554708791128920000130875371539525407677284337119344570062841989252427241687952082787371313437839500676743787748205804662034104104651755450176967430034513803036035995790768603362095080718134885221818771891366906091697434670133586724878332671604394935965953952681872985981549046039141429768077367449821983949485774496389445720102412566495049993152263779233758634796598334804551078627969951750520999427875536664653646906962712402870689338194884910091958983231662038916952651597058680974731857969452110729096881027768757026334113340844199150319826882249869873897704238859966383498984650490437008538925911733754858157199358842525120429011171944510425015025713401967467097628280528325784981032854221576772456724684645859825764035611997219040878067952850276052860554069932944978428715891343750461697667480054961909535513417574624760579845397085475923908660604594926531132609205029176683957160649337409216177177625156091868471809458365892198053235695145359721748268288453900717585219431302204462028856750375065595556462162660849212915045822929880819712180034807246713883763908397699264721565442178672091111087331809288381621133428298346926568269095390438903585432562929813905933551952473637596443143552819844140809555318448850742890894154284443554287590303248725103225281450349028014143958359845282449389450353685733498899242447867671673538066061178378364834318059770741298642269690403014115446279425787875231454609448682279300801390803900171625337863767179034805142294310363409888681726725940530408004695382209023682512808409002913193108897441503681605883805615555650683403352979643506168123671507092315400139548176106229825208227870789443251188637968287179914861151398852102864424686429552077296085903517153615904244307159196074270261413120793786059732055585058790392202405943789269845243044878194943048305961365900302890885019570105477591945718598920689618329296961741539233889065537927526213736938038642086972695300742353514688803841893233426239006417479490382807282573569098443345070162241827555775033027777185365762646730663908138194205902903990400635116177055604059838324611309867903649979390485735833281874915731382428420553425052797431550840193474067040837680045600001606989574302743365078277045803761185515095755348415688827541243336372734376380904953904899695437895235025938847127185201067507033727097178442808984481925164293903194639540570856313571288087750229625888179492747897438295143896776140899976243014502763773705123235293270062354174709094492227631689004918203706239698997877003798884660847551954782513343174453163472329081029400500105263605374223845197044204014668415349011536196523127012435414821277009343081845373229668478510206539449524467230862560083777141875292352174395123053484414125277616615477400830660178451828143932407813722709366484536871006123286108576019157403191043467189172217052201070367605547314648001938546444203431737351639313188432013923113588686760786905526226543728222232789231034983405956935762624229588306062358854483941348747956018649596272590285216488455134676743680351514557254866850200936349597649337643007028232379727619425774869862376362807729882846803722333341307302771491904101748914460638367730586548660466784558544115170456593670463417381382458222705409223191195082207362663726487417700075443252850710297082634475979344729446745375228786048916232271428190080615897902416303640582759427400184442516317013820943212647437209041796319495572576285700272980714192444016600654319361661064958910465843840682435077820347351653527003778846528634768272233431239368253396931994636349488951749914646383269868398589077349927539878205872754858714892871730388251378400282504719902694640619713855640214790557931323383054800143465244977139511399965790939229859114595775645694120043539973956800346162961498078306789371395266951223134312631823574420824500419000371101542542087136804225214568544631533260240616993169772145044700762557027560156637788925173296423884678245657915253962018346097914717301344631866093636252530185981285139696854608521395975098515701411032862273768281902413502193942237493384872694198764472580897434965059188404041244698020288240137818293815704610530701372845585061771571830943210277930125572032900524799976757622252218191379764427144707145382755811857499080221862656026647776332631552052205771841183460639225902661556993623347291418578628575748112487099650534848678284576057863669854909842130649932603999158833706456943584427887475111781050448739197432871475747729303073782760576472679368399250912659218632616516276699454629908105176159008428721027094167668733714171792825491900919950530766867139098836041430725705703878708928323155242788452019450259691934491620805408375672723580132826597765753934137999227144123537625357796427440752450328986105186630304904361394854580956585690433453676234167129342833313461960600869029265829883771772976873176527686943600173632415712949046868328539680139497089817355846677093442934160221125367069381946210692293658085068641049005269599069283649646341041413541191009329089787047110753757184427287959906691805497116091803494647879772380963924792278193972749628503204328558464153137851683381495382640789130088089642214047341869657476788398285336512760290524969125334960674785498840516459386767422623838697795682738771126812725666101232991684051440900836119590068915547355237374905225117225971032409902130038194535106039236654820205960526544623255310591258945557529396013123305167628019203655842866481933051095466249351345227383109464024671180859136973257372807295433482087030279612248077404633304493272148601433964664186716646408405845749577975291391062240930567636619867383374224021279218619899897696451902715729022323135155126962559613713375808572358484571359287221719854064264360733063185855150805613560758247328243795147360973456005488267419163839645607102055856736883862566811398989828454517354313645521540992135920092169805790267614303351940409747904626476794321060863908078295778173903249965261728413872144691803886141567261140471712070273398776380326559699458587108169644951306762779576796721568278157091348594436181354701051890638614193883563268524428739415356760797320468309437480337775634248285626703244233680643674577046891365399036197199321016677935543090032298209096055325661029399188107805804127433135776459111722874251571703761194073473517937081944914934330016184677435279842366781321092174715482630628333249413330205152148749948327854267251132038710031551612374555265289967249330407933731147427554077579291098381521720913155906605365740489989091902260752774564233912705659180086131304525624164652567596246496539802778257734684230069350189429894970223635349807799002772803048647436541050955857841095029183240420056793297175548874254781993832763549930616431088243356390721892432406040965505448437807956566543548873792111830763624892224800286056044592212732089888693204284332206760226102141950041447507029237404062261105407754971187603569934948670763112962237056599499075431461931660894557725519953429844654473510766459112934331609512789583660459937665382781289857496729310192224429673364998805733464010826156145426627307889572905737496017928154932837747344411440975708534621102629825314413906775539672208599667616523024123310935889050685033526511282425238267659587629066177037911818920357138047089917972114823704227489741713602604442693324005817253317473564506247128464389066857292606745639414303311923876354991708711116770175514876551344990257268066424725805026758219170038092446228392671042934067282291391818460273556418299905459099001274389442542240000299263476746315649021308800041359416296844969504760758781736780557703918254461626316109481446020718955775217258280829632619120157678009411135171233560123931072877107019942408901354489481717553542790730613245594088789277731803387840879810049170062236726922613786181663436703248109578564461442063178704639471980880132907986666247698608452860382511648607693983664680885398233759220463606870583901685094207137870668918151335866591913632669828812869949068922707129253170274787146829595503376781109067493451693544735283263980146801643661966459822397882078960181643970085422395476938728431230976077309424769354663078035073616910267957040835653004160633595379719356918899837526718000127970910585269122250305244177761737188501675760698856012953963540744455552438077260674689348971025311290057024490734526447421656978621124940372494860792658044337391319891710773797481722317441768318037253844751653937831486233597643870433427247174812756760731295349164937420117101663361750359077503729923034925622223594542016713441497620155265016728322310271108561894195635038767053222239529560035719143092638460051041638599638603697279215729301869033466852132865002018998283054503053798668612898302578810997369893356921614919105425771486343197677672717961684493144785575254291113331096025816313490691215957145588999123729902397491917948280654947154351881084927588566037217876641894073899683948313375203573518848032434807821795623194749728803398905934433306811151837220721290544987966074776688410609388901253532720090781394753971551539359117032956424535396512682587119558774151833375950834324386869224728272363664455357802825398638390104878242771025385450609558620167751849069403799621519303588639188981471839978923821301654304468154742004602809799347320790962280743939306896525995435590158537260664676561077761089056641088056900650053053511469124499230240843675560689626797209605134827369457383543942274434833567805590866149630208776935955411371413272211743249480967162292239198304260838320402068457366338383802916709444413552574709042234230037181992950967547311183192093177658379491235322351524835709278102288258299421678373474817307469926897754468914339069561638889848905895123958730642402310937625551288424188093003462266463103785000813564405447284026393929216840206551294240549635580116847275287202936575147976659886157359444979527719515210892005583025084496784319250506394916328675520551675421488074226497095016205032989665478266994902613978733032944679972415960914522400603445177954483561063710646916441053022137631727143352617811810492408425210669229719890263013857856160397060576597843099507177548776589454457738694564219433860873744425406702493457057622562343855324036939196928488495966870574688528303882440287620785721956355014892981383541169563485464503392828148210202420483094120135049424493945918263996315894990055253827066105855457075123192897374008128276659674138225958449115324211215677243544325947763177925932347714490607577157699576009298100673121832662217438530055511178186077942896524521235932584178129024289066097884227705940718449474839559120397852164711779420406544645771388283501251317492986572101266526335082180570934342298250136068062598616538665595796411492257078514008889651377881699068645436293329609278745924337502098380583332613739553579255626551593696821851481959535411084473872926877241500248617979177364963256863101935320930293813972156707689637985442214982826127016729320004031991854217936283485736487854957187932476434616385169156836100396794020158037928776403950716196806383680649243367128293609221235236165171376058859489994558726252246916610213568988512590035389208720403615750086193259070167433772821926209544969341702882029852908232259824522726538743717929419751577165057693068544106059864973218810206045069830024804926267855837443231486206105618016075857144461803870820460911441117291619898824244794674094950463783078422195052046007753627735521761327827077717414615397148339897067236753274550424227521004645074021593351260477431047856624576057437159862665924633100652151412608281970062033212267833493057877816635114439341965357565363256920335130782817912707938284179703975194412995167344893959993924773778066355134256771731748236532566930293171108069205545819059826387168691212233490400931610082523797712587701267436696644330128191936125916141800743512253716902638059207604228734608483975467214446827031333293148016891110701590814588997268686486095373771631417963556257730886084191668718113847681350423000600847954683039473109839603312925564713272059779018433784055054320130921214771824092227764103868902140552882945220686302729903807571096552319760955868290503116447606735366718122477257425980981859701578840420881052349691207107663950240274715753228414230724997510545766495036287406918603325914885880708294130258983435712442453779403023341583580713761138295338837015521049828904984451697951177732733126743465093969047599268603566890409524084429656915168920958581859208133071835248850186371868644444622279039897609655575250444945933460665612232236988967217546684416721498261440310613097578089061700615199932006528727029810056569683665987577872565521481584354067461691734533913119631360129224183447229139230096887725143972551527767089639297811574816593146355195987564342553652052030844474290586235838604824635140046388528568752355105079642280458801311341468747700542406558539845807553123063586042021472412095079308316500198755921979399307419302518404918689727366275379171827226911922937877629035581383355033464013239724568940475033074857669430144180123182447878602816251130276562114447765801355417523186969779428144542016803942942556497130258933564449202607326420979238845508325077650035361235101100246766473432260530824145700576168756886696182188732750586926931460942891783151914505814761187996581486228687882794786408495074568369651697361413562653553298223292923578457098259787250252238698409724642822012067237907615449296494054230294028281896733493559951809716069693851247304434336825531115668101571321688865365166651531205350040338361074682588075299216297309579858530289712000242823534395613500856588427578624930397744448416995931212692113133808946767632251391203882489032361653837551198959220683052448448396608384743582006252438195141617531385688812567699409936476754074328842815626703741355858616803508656081748891755557352270887355605111583420478449355489019228679605625753983229819330106121484170127191170766821432487624689567903342709610047558965688443456338338950567148213694008206140781570399824028382478017656527343046193463450231426946088701355590572499216508540004900309968439105106591361910321009651184413253353569813799085117653473305226940535679146976948407822620226688306285170114441154011169299663142359244284048035581741348861301633598015993123149882931675114961819206708314658321587263689884036416571440194684015495739822408374868868412067133814276908461705779920118329073454691905481628596037268225430518102529698787751834278970560372083907685764471195165744142037946302418316944040959421319387169196917156645343581188386607764410540961416630548861667462115785851397252457644723257142290152388377796677702316396374423703518558485802953733538955609549417779127387380336472837664803090913072315055964217055517504242237078804834486879775271881270523483771577854427233295252320680924517493751291968699479677032356751770900360071093962655415025336692301924086633902781317302955604991206857318818957177492262407988196522354446921081305625319940540496697268964767611546262532287209985095838354364144327641372176033014800230863368755828874254140370885441824177266348345024320966597144624382852798510343662844870854909086650997608196182415753418850321652390509174903454324676924835635117660242066103932321618027761618274648320332406484264903880017129964945449591533709890645325451491420476054156089868376842340546435165532376473377924718049896896769337470930947305522778911669306493294364272729344841822968611730226130833266085271200661679035938496716232966507332095874455354530645990633034743646495339355580820188214214277439126905132980977106179575019002022814144891280280378955695003121760960111145738923353975171362503896356038341771848326061544211249363861991659560031031443376137964094563528677909122368499761954318598764384298281461857324459623197454105512922021258709638958727508603235113061123790999374541916495861584067512418340621628733663687979905312236470616809866365606670584459225784017976036479044318506466480983357308640870429765941093971106933592879259994797738177910038417981365082245904867202645380681159753804183265999646727531417224909142793320952563258522901971685297187811236805381886179951389822823129134445211600426661854982719276481839948040493338884952801397694090397490562444968152694520881453058962134677980704116530278382901950412369035861795189880271738002504523673866949739884915059083087569464657586425408446207065810827939219444253339823231808981117255343549131143416855422936190120439646728005183754080057001329757469803613642605534439834436898378909225994660665265155656168710614132329668587919924491127592012214732756847480203064986825726297356135631496007423183533155732140277316789240329763280051094110019474259436403224710421584916159918588737796479113152841443297146724313534992602041155317520903409216671156657777132003545356722397691569403107181529371552966646566747959210078875525409673047868541286704537469932513723002035924294885877646131826565785737966632067967241779204819329088681180360983350807854383064847028546166741583141563956239149219785124837678351045150357845374532569838603926188273438551680355518791769936902923364657168352648599480078763502996783750607909836260282509177257267061570575786927455583851256909217894159853839564195776856436824131936940524575890043508175209489883299145537822659788696731853737563479366462102810793322224529777451305005124685400519486375178115416504331244131261376280697820568087732464254893473064454515600260277209723490686514401796005366139256176464160222079772496778343285651833809222716344811004582301934203944295709947384591256043657294848583735105702874765616903729157477155395777764078863406764866118272158916367551497352175195828911569147062691670032457036028714320754686037961484486360996532651431744493463314352359183803507914422098125038858110927350767507960189343669150127684998728585341778301144970188645411143605886077905131253473245802418661143829059383897055161076647079641672335450408763662129300575262577931223000220687965751440772549129379539243552212298542278968112964287932336426415145277123272925742625586362514635523609922367785931044728387050017216657342663985153256110769358231838829803275097350432297149567645783386565795676140651727926076539606031793736395238436011998375843076956568686870608405520599535181873679154753113840250915142591219414643089007195935346610744897484184798315755650414845827646187000274668706173079316429456643905973903523227441502952986184370707312552840187579104214458313353839497097220707985720536727632781664294585889716015345341803466341850040783735045074501515568570824392627026944545727350987834273074697646335276400706946199460496857183871415147108597939209495732675307334369922658621198960394350516833429172936101924762252926370296360391845908232004034795295156011971001168731894559400288322575470956401309194437578756562030962740260787588229151542892590957093635388964458638754192395212852395287739531302794734013788373739152027315407181646384229979768182729143233697064483999647038349122025906965553239760016118412704905749723488779342964477945507650307078768701324580374262858884316988803943335761057330848466091029413227273196444265285766667820853484190848977465571497103408914222058017698764783989126736728602671923773552619690095135250881498132791164317822917029158685928999510578564922208011075027696394858435716897766288938460931146858682355995168358618092717423172129837511049337303144744733799362930826318750170778266732271353524034147471432261751712003308658101795995268976130441831847648090053704911460752162635802363361868014164340973441581795354770770149530480235382322024364619779415022079120897929676902394493276203128753317508201337216639763163276297175895290319930250172031376243720019009895126879460266632284726176634835150870303764764082422222392499502098690073881501914755782076109340160152068203389063985134105106181631185184986321501858537272292930735439660121805403970051954101444418451612087618864487036831426989235847926940801519569103806321648107405365465013936926933741412750861130982778212898565777206651136868251593917894130059725241753063615540887879570366054573009631435848568776308723026616090023872993349170636651986702166782793992737862286482065906556342084437361723373281163366255331328494534908866397460332026941709537158118661614289713530610441024735308610482637132848796744896254882112393922874417122655842403783583516958827892074644780143182432296959561910634478263326482832138735260882852217174978430300721281063765190234132607068875439397685992977696760239490106163708930139904275881297857839510256720698467223306868265100999930292663123786855591119657577369802802312621328935816651906695951184488306989383664385372226682695351414490461815361253370745061664005233641331483634910548357779450618876988032790757698248479283176574169032360734194525593852389683678931751689077947701790236042415020029374995552781207751673917265604769264030503270349167398956022631955291870512501575741087324057852193395634754731365554691384450200967470460097726984763403167994145778511344721390849820695875822252226696825293879963413410758971146278934257454700143111753546015966614320562926575612309396276565895869659319152695437915399673464466203791644152738610947767441906420170810231048641512585865463535169158681165704314232221613844405918410789461694286293489977197698511153779395574471641038003116564290622524254880785187950029759527025739469460081454182200170634312753786070641992079948160898761301987332186238935617464396856906154561957428190236765193173382786683822318547283657416748056393505091941053149279882989673011279225396576781369547415950463278598085763920063112380790547920133544951567138521254090203006993499117271630568777929659298465642447611315044450147239627268204079102431490727674118916313977090575878756461567508103884301190784886446220653916603912257907438079014935138541485195596017008854851049442568607274987331789225291360945895582679376679171887153070812079511848600337909598788912042116715142835754748847726382241831243250123278056315366287657028177787113936482744315567634033195496924889196910991759738883794318310637139299850854602949180981091102089057511256165099117303356988581401257121747752598628931804762118477954375001664206079469643545475598489607669814800003444671872555864750710691168856984145800340622900588344061749360145137899401743363419517990148726890134152772153970282560209800195471437344967171847620586571474872308863957686639325026855718313704894021134736123396788480941782653075141291974758415516142593401907214936828737643046927189138264443158678100669617037797302294602320408506674613744611545168544247594866132113796802150172086395205062337319099457032198351101582540922812463538540697412645290573863406287729306163472099558528113340704251582863476398081918998417253627142478693255772551644046246117994958783221319492702780484525462958806271090819829925998918683314895873475103746452682747945342099547113377331157116367961791961380384923520704556090937681131057421676936692243203284294202539430930682110039474298222196720162304882873964208486506582069069789249014194684156946209149029950367632424282105518966047213664132654182773178086495191691212736630268852969151471502520795556328389895493429516342551895314156895910600514315143937713408534899304370986952920299654734405504890818529153410516233297777628220815060121985632434594464600276590400920280043872997134100677620499724518241706452518188394516676183349510706033004868846713455653001044923955795104951060114216840026307630328054077423562013118755555294789973307661739661228905384091216461307465550111172990841282837963865381418112697156808005119264389291795643696928633000134649082149580316002418895351066990418859346129997425544916124177347972320773805392687989062084075872011751321899440465920565813207925136928208628702323678920466708396443209243150103462081991779163471867606029266694022211390884094790255858853829175635136050201080774208742223710795272951200294603192814987372882883761426975247852354260822456672265505052377934103190049523040094608573374312244232131563896542664029728889096060796068719071798672731819637246028175878851458457721597318120526075344655226021827080804631285968840250028124587496996040579215080557267324635894248210205001973582151352676228801756978609700359274837376634973954968546630623516043438739169070244577540539134907702687013520936223796851668365495969761967970364413200123243477454446840026208401349701422544697818176437929254055156392578226573465725717962531190730179001798611957916233946242048227180723571759489761706158627174688009385555366593894922926018313946569562723854705601473225097919663975316170771153480508605506478890669001271197914655065970023884728025990497649264918644250906741845313045481033190811422749421494532295882898667082838595336038091443320625148878449211843837041514555817339408962808301729263575965873319655646316860265915283244360028409288676599319639300793876713845065602207655072352523539126363849187426944917790534821832888354302626138014819297951387251237918798322911493586166224078018796477254153578970075186315157396983901625946460525513044031898230294686192432801330786822327411223151353527021542714272168114584457014616006461360297994237837361777152222028876574081990824089423304289619800809195305889604669366732733072688394251018049996577953016914226734218129314049825136678004863723639208825347464319136006887781158102836791958999304847259934963554453896097415978543827096742087851847971543989314416060140298976187588278324281562097588572942476183714098575923247880683431865432751124133772991548744235542468216396619728675104703182078827265667712985868252046171465573125075273089512565358372764720541040934798909924767914153078043763846966059373602153985727824639129194417355344994914774080443769974917751296418095228477852783567480070944506269719872890457595979162042233103139809082692907717848801574211258054821412059457264194409834460569105232261248343245531009298916691758194616347548495479331422953256933984309593396097193461245711202374836280831039066369839113570815162434414202251856439043189303219741811120799494860360762648793773197499586415193136689347143199474292872897801221858179385526283888736687738584569160750330171758362470959040139836181339982383643955799255356135770468584923005973902099341438317722095310231569047350386290741895672975832906006188603951442695955033522722436716611714166104951618928205372817377331129685665160394329914069470657816249665724439791176150689501787522646734796287727944202879669376606100187795594523196254576602478171634386341524642212220704960240087692274145378798437004247275505068876616403759729127061361103740379296433919868856211144189552232829201492181255945356538686220639825381451191186167357646490653935873491774904814128618197940521642955927758229385401989561987528811301269517112439350712358867068581078969457060548441589194167106531854045257844643240509957533210491429222268888499378604847390091300142821395738071681919462590163514574649785709335024921360097041122797283769602931246098313653384547288999703275592817606785283036809482427081859578895504639957229130735649965444824469110616477634535168669331829516490207469228987678313620488249395995215324527370885426219041035889157195731365517614144229238854718466017514199855377187443427637534571278668122203030927267131693114311146711920303213183506130055735437913975531009970752977734151740377296894571661690676706937462087792640999368383314371831593266404544519775377655821720526680267950692071016240902423586216421704305494562202302659060682512139652303305249439109745813497201876841824754994851425222913768044105407185019047147962983486727719687467064229527055088643659789050354222238731123995384901299533387737036416962399440446687413488474011824244817604122959959783006066801873200407052390739587278240922184825360792088391655032404981813077044996667026767734371137118306567357835505935327078420947880554222443645595077877882658680764728890328326605592210096533666523536749636558288831091764023821444357568612397631037576168756264707391803266721518563839314779165533724312255654544845411150288255078343939512230980824908254743312053183329521377148459978955974007892573003097174073016813429639262709544215596145858466913789519708672066168726943486368940925120129085046134318247616044860696809452111049807841039624364705690436659615578684400627708919341456397253735648313410298771269414568419014192081821983066877527554058240994889411210504363411324312709212598164553301726550163800005696124676157224879658278986359082309272523716236239230042570447698377943572865577980397536810450181479669506349842218748383415649122125229463488338593224736784664871086433732477308147523504581580141136540829407048483407981114448935291676930427359210161009183530536074738601936954390537961548124978252803001533986958342536540664143508303672292735614667724177053294106022881641694447975208781713132051387330569919359910534379471794545107993322842789895628822744762966768071038098907173539798539525677533496712458436062034214277953800169697383986970206634015245360463330858228206366199880224063494331243333562910232914479459677809549468477811252404357887642574546014940784497527890089113436529184281966265257270460047944351231674292088119071677021823769875669947747764689372630305509458256645278871704783612297730398966554111505655501953951845422721050745975290703665937272110583186921067396095664102667861987746054372771632407417301504984644617555546673043190304165381725096683751334304941441306757861929571179973218601386946384923999393057889052878881814017850576469191108434402252777679048093661077617371448912963740500471943248674292943446338894019904723570734605693374641537693108313887728269555044504641768988790685983578969540096456837201215661849124291205192625571643572410511593228223135430201301368679124259754904976059721575203414469260390261029433059151156377327876454422135417968902397050927319034231869309909135942854726951711852048603351694473855192480023737249008953710797081780751008484226365983592910787207006489896890691564507149480422437116497244133437955241578779005561327569589480529605771000289235885338379225519099654793900885018008787202753669829602295258767014269609615574434758544470922907576492534701968852106905997105167857033519677043930323400429679343542072478636220141106066109598480007457404136310803920840133269778304692221712788064330888812419189122350601890942401778258482520878647214766385998252794401882262098958475907306232534359507814797338126315895687161040934649804078657880289773873709916844046841265882608687690434104045124510305693212014933583492612048123667599038555676503126451081889914360884278415622504584522791350792214824552309102097991891362782310277168849970645896869099143159792699473929090409478430249734498846061769147957588681378684152256581881623557275151140473677100483616339963032774836112183006843852019193026855244335816334741858592710875520985421280322135645974900936061674894142871362379289221967998142095537661330273463387221958044879260121822355550253118342630886370304084257960141794226207446272158640666778071903039427748333200182552821088051870499997381935280469355700227123389619435172242502074298986310839887417345480819199520047410164314755000367004864213366037741000625689441348146170665972715536605883204710605149203164934447793298707995771969451145917596916958729449885453156810552668316671818682583394904284456012606161446208083003945024426903004367945899881568957097774065107794049342055745080517093086982943337836492974323435793216830281155463330089970046034491293271598485548737440513001764225358808824465851108279620687660724996594334957071738284598507102006403167878362181981006247775197906342693044510143273813783437818813105651277715066394078813970092637162069095024507501497682693998361873641077645717151302176604653410344351781656246146923344504203727314971994748242496795855877492678978130374795187881705174358209477543572451986929041316534460895067317609483514170846864086265775012702047848803903603053194044804238649828172490827657602711715075638194343696245852371127331867334289873412086318387267753270994862083163452097155519098937967396227374789965969091951964334916909527284204942782488343926782273565691388389036728876898736582815751365397523155798319301984103922247700400055489173263520116175233259553401827410893947877579215695947337375969335557349776767982850679424846341973931565903887709964603214511585189396188727789591046631864980889596827434014661163949602294819518423418798810047925951614987511913590548332552101242787379579748508159627487107247359895751694740353229824946674776357652226990063511490150598323492190839511286734788518685507968762704007514107987857391529705171848422824372526909545086574941710484511650057909980904724590263129047039832705474617997051895577455219179658915590555793648589559308359224268532641394519093475655118396496938547823139612379205679601276025323840647307875469398347933093323153573103542219278088092598953355324257541506631751582787339005203991774712372826985176024131807659932692914155419406979502058491252330570219444426913099747077997812325759243844144329575826171564353115403624699008712162048921503557200302856040517543760939256176728046040985168802762519588624435738410100631248902553482800598508556575535666506302983921480988069853745907108431586791061249926535624879559177317641004116861654927227900104470901115480303799691275882489072748393425180709215228840071345143540311501329464886481856260078992613708529072735544600881415769575228994517089060204700721559511188584251776034208063829829981134184695022799572136451182487135253651312465025117401021292552433000035347161733049571072723761408484272707218888790964600248634126547311397081058176760512358461107457918245574844430479736056057547531889365951181235359825345117615228207000638673731881712909361995852026318217130353545357901809185552216571851774376881064871374894527231060784661876858629979611108717293011265521743747830729787630376939953361467484704091335232517855777721616809716519061856150409590655737044538793362088738146151102007174873883336824726142658647101153602722487476790180126074525399734398731199015141476480940790283053906682116757541392723300923056849825277381454482299993021746124366302497614884447162844401655863335921964931011753580829828021301645072188608154722679217469068887581662756267041045596217214521125017576989598414489069323800535968771822931691774018332234156618143893729447198938870268609747069583351278512351634600553668884834357570086041608837016385853537678271188601406433649151882834847726709747972564084414455506350748343647265058035403810933358364607233664081756227015149895036571516084966313842979373857687883753118258227789157951175352955748892860105989647727499669909791289500036661267136897087498114288237244452646786194768553076797534427324257710207649855782266172811133721445494049150976707241670964382829572351780452153470236013513990387903676015958101217019619355877504577970327497741128306276963155335069358230334504859479191588694628258135800469400898099381061884916706746624906208382227357653721865792874499558027553346836326749079062128774795629697976402359942810446025625439559001073939806203106151969622421071552292936449827705439052709312983192810658177874963595718111916863060612128417761383813890860218937596361525227689386664548789745825522252835537133165062179639466055815630424764396086541116518620065718187557726593569572517162253065351044261532633523503918053535833776475810327699578129247897387341719610745383116334218127986367081047630788186678892542838501031460862930253630129571195554373947339365631128544836680011057994380123276339902547765632581189555087076705184642082523901302383880524722742077825079853960985346919554515327289718259613413496273984857159042396234169976647659116348255547257439991471507644797834958191294016310040254622781659975214808500925106553525029046666186743494091729726299349672339440502877698336515724120460164385147915138034756769622456778311823223955753214881868164244864821469190615580024900723838431559627083749522088481718043087771138773518574960492903009257990674995185111802746359475057638603525188066789061323674817877749391237932777004655494025961908652590307481824102437747939781543604327499889283183924005845155000051831053830504666115529459238305783838175549207881670283416019217011523038288866758658707182624778330647274219361607818856750927584187170039873579079214141818548551504703585772451635530397146311693287652749506454502826951259502138667025051712746287299076447142200650213272214517524458326678269419885988342153643842051994693135029068308351408675183470536841280905032286181521179901337753887091819713103825040601809843300472623757961285725194920038890497949507948640416934363079225011371019287733850572980688822249335139869943214861681616464849844281729436490060077603177753651927440391178418055543947248545985397921882297066916123072308333639170707131197061624021513067555554789399854469620578420427879704450456825407626749776823429096482745717922104758514008867744399734579622753748193631304390414465381206724612985851254011557945427543268420944198725063135531636099789392601013284479409208008614729535845426201726238319947804470796957067181373166277076829253468904264814688044260044538501133685927466175927967299610396167138787171727182867791832459728024738275803384368025643157791814037611700387857860890997330501707789130772299189242892431827291062029199353642241247524092723046556864129171371858198788385656108098123864189053588416224979025866584234776717041704208099291358793172728233784085241462598413762761231454360392451348631212811154830173616336187025213429574640812895311724199689383052761372669778610848337600906097242558291865532946491518969884958388381277484296738340180918332172319931698668126981940577719480280570132969615194271506620067412419695710420445069717162619370599945097556163530296197026759143422652814445939397104998156173728190244215588880792281602912496888934992712404924693931717689077650852949091915162052699314429350520837001780936578458319735677387110019308417427053959010106760666940314331395110595930173033497083114456933255985370006838882856642634260096404501076759993004871832470541066311871107945201754716546677208313043503798738505696679961598322656344654367854371099101291236368291628999696334698672910744850557493559717103543770901500291814481413562615475190891112729665901733387563931623277655214034844433566444410675990890461660991737995563059846827349844596620386408716314331847031138447265165266722767694197402592035216075651424175290628053431183151464537057650274407436571209510188857365734685329130881433510173505832006179896178703914482259828044345531590687034566980092903903247299576609713346599836143955391603551652232210694604669066664980147299197011011806603456519228673170188739312742902871254251902588523279538050485767294934904000611600853326725840518019831368319518646819460706274100328767317210148708423875325510392514258956272294750602653202564235747460658990347556195172843358826269520019784919655274217788247904861141042058669021799485722230900655755513479441531289488007843974089394436762068658145718782659236484252334224791852419537229211910339704676212792655198982382756399437945946117844058958595282743595061005315083311297987377183736444213965747177765845160009061175037204164246506803158384865684097462001139664744634981629995508634487843679608025205701391236719547936689780553252294164256100194824135607045134943428016800813611588052459953782659789770449450695100106017001377790312410433165441021913697153251849237412909749292118551812146675810216297517422390987050381797906180678866211445675637393118918363105458019570741277036653490538866385747826321523956740100095128587830683924278745726407918495209273207415325216682172159721045172960665512623804129296056971006884337250756863227313764046913473093918264677199970207361745778243122634073149728890399027499007818718576463860863157363652693216412673893047828588219853056819029844116107449514803397791879661269039304896822245695419317935000500444661696448480178336290459934600938889036630456953000514717390588073274868851190927406478983118265810938589082562795576607739527868449389567771524982340894759175669617681423558174997536511008307678812563845610017540251370994516580300370437050514073370374652560066464902215514096951768738034610940510642447829214174346537076072927859165780294459428984045346042854986266056462874379191161584042694582069045823459472416119733459745070253248610660385557830206657343185468435550642188052778345014948957977139765821585913341754286510133007527016810891085809475074213223076018903044369496932085459546370211645328430269863349308586288939554057258163221847709054707017356477946580831507807734505565756208795201146141500031851321408149363410459632350401979354338819173207763410529550009647240379744858099782595340246271146548850236646191893023013585769672244896983601941730425554469124729037539963338764217004651725820231560882868559173769230322306665900814577325324525544799019827416742478614946486423899170986216601246523325214298209340555232872141995340157988585249280854670105452930002165058324944357641207739549066898423660367290182283304526169741165576954141027504024016512359436828662953069532930814472027401539042078053126691882152720068335754923818632142421360926055230739881440455853786917732720229118084084292319647257532083716258246292557588176922636918924651333598006762397609590513462307614564416532564949899121037306208865420123180357548860081330634817402262186648705266448267967265249686964644714711534776140767301172517826175271731693568586807294855716143320035813390319246531246213214555036556904663381274964613595519967154508308925933218266270196755963035863187644382757727215294414346898609091220794206335872943814322183871344702107288900518385129568244444433329306665801234271373503799829044714322125293222958198348681291340032271896614778105881939168865447783352040030744260728517880090823478902589120864437020898671943562509625633253126748961141414854120622376979937437076411468714770204930291699555557124926707526837785118457769532483779766251469509225239450377061042119828961249758860963451530127560959708979759676323144823914629529481787147712576203838018988146525318004857717069246087840439281863001222088920847656383314676377833409126573864143590273149330997501299830148898802729336876549198323148259998966706290428428515949838838172870177000548053002393942580737234258644603343077446233237472273371767896213141335948298908669116626862872378237508264965815694215400583588172016002714977706106080031689202343512228042397247174566117865631445379056729952936897220401159399648652977023774151774398476197773087077999895737111817919166723038840800556295753221516557708540358817826126741376352410131876081988705922617178652800993712987850729765924625486530516106823678356089922825617880006912883755320039729532486543254766323090014252524703265140733577926716325760271338095214751363527575777744474439727771167062336179859393116354218472215894148359953838500198064141963017983050066138770960348112482934016900485378880981450388212808208611762149395671468360128259047189852642944293907557265738705930165801171209889887622073413713655600534692463666499035681271507439721604148889804132073431129545787747203460172405889190319844453462957550654645165302238140562779359745946728944236254534779989582137496684682730537788045969433004995575605184011294773882314095909672972555499326165128196638229667473344301095895539006174008283231597714989238733864454444893206160900281192660568834970229501341364786147671373717821510907971347888270197609056976353127278549044555483240999087148601833176198046015134196064444970590141710257254032245207993163386035679356071007194146279915246089243571222374406841523871880098619751434042994219901579306661079271306384427769973437826448995859246113738368475320819239699216613862330510784155666491988938759909868338504481750683883475936023610080872740149972838364518443508814265750750957055406103936933349925632465919531593380457766915913706977717515663749188696735249376670033841632192124711988732470806412606150522692673113294896294968401291499390071031395203133859703644801166528562504329188693563247951591100948886638016440117406512472123221549187007627492979472034119683275098340631340102646047601010488773510596326832105156399578651273096324214625741066869462874628767015071194466516156530422216408255730423238684084213557808487181765330332323466111627514885068124171561175308191727667769165859531059438775764694893911095875966074037969725121106505438521052062079637164197639276767200454842254204035761827618520340838184473179567855352333048553955683213915938321734800944701010842226200972851063602267373981839607620493620923689737703711860228704496272226541393169636156760397709080629379891630637840543708483913381416777972334007630894854998786289230711741629780571464340356239881663630654540630741842540989476210437269429058430938344026503207154505902105603913555410123108228866334335157386584485019981660553340593789829058561018456910420819432265570733104572116632995694681010081763702554564257933218007797032016639532112193874216909464082175155441673455582299615101846026170366955765344177168606030657667062808883762564456015398775579268259857349217558325479808043103935010635689238914441617199905062673476259862265315937351642193521693895920616572209547392376981898403395577380150379532888896456965444242492229422068112664107248664838867992354065883438734749141441854173195812825089789087894103115976336422678301255340708666144112046470010785318128874134492183804947223156027869151035286841164978452586821019883887215568052432103946012640665264385917439653886914681006834988754559728408341725105707516880676259525869461897195267761801878596790051292138156219097866142118004696330115757929568669767689890225565330241299795537198028996756058291766095870997917108551674789274738720960545729804743441002044255876942969003613121170997694664441883744760281826686310240959011608029575822534856128976278842118516582331197714140057354429875005990830392743787079473539184812796208704972537000775535314052306154317965966066062440783088016475015829720519329497803538983926693407549590719619864298497615596988431684933339546484041506857296084031730228682528866046460563618223810386489351894926592943115063653475804972483324635567936768946780125831664793675658717622264709190542443442474580835028742460360646328998043475961408120538327554645325749252872076602655630571240383759508775767386991879080642185648760492053631339866921011262305959186389190048124404160858432895102613640510461343427142140377729034387807973828311406666971038778007018396024066209263059915721968336275665547417768566574001665198803500513744798436156099954617159433412790973133620551281678175626309038578453730298880814106523857440638713723691849684994538116832461056132694402803562750384367048963767786872074605528098294383029521708473677845688710082603074832413607164346743264744339883241519315498619120112163458598231757399652153403498546971507431146607218837339738969100107821539753320186369815851404853588651665580276848085005609707629713377291852431123926387063398701047944260108482726935141541625877781810344010549361012140794053118695535820307836158434131455576664386175830992375649087667379327387975917706073692782288610239382252169345836694550252923383055682587805866409930667853384804190628325354975283275412690875848711873757811325544162058184124685080509269978504454513859800613186577131451493600115130277850340119810944086489898363880341064846686785640733499755466083235487888578899322494370137062104314333746005212241008547313201169928861558607524059225132681875662256595261444390738373742323603090743599772915547671688011955929462864062977363791227866927089767817249247382290937808588065029982193649531952941430539600346334697311820754250963422139257955164520961083565493369250432335916345695576737837706793844702275690749584336665339356960972744103076774444036722082488207866677842773555984384166622632247098322327619123956408699601263092548528858381001331701406255478873911075907616578958069190288519501466507709160640018170018295532955489076166048542458022994261010182010669469801152247519060268571782482439142075568356014022299275507591896861951096826795636701164585346022292821243790058183173824600805727689041633299242762437511393624744633368651666976258746679434389690477608455500598200873886207393781720805046364435544297958077200594615320279114669210124275170192792013669997013247807630459681697631942853652927028454605671156475579574612991566592363468345700884517634506144339866624188307316866316197322552675659925072810354602490920751450933124826311412273584238284293249095179627822280750296995835441935727548444434966087420403735990444220343774008966963662890680630916622579828649989324316266328297521254123599570314319204985627602729674254543528128354072358200035470496055472717563692104975598680367328867572533841855466018505365768730493358498214542937398065705300866694344292388134515413553778003556811273560446013065961480461599556236624700821991345345150619735373472297718293550786538016806179645332188791101239809517717848526905170379149954141085167788592996369677515635766711133147779497136263875653960118410177625328689839353785100602904375062495738904284946513812348498175799391974712895492351172132955561914283751753911630574330939991772777743885412701246103651838279290879080458156525093568577338318990007252021098243741765927167373402073097491054715977750758146783188208838913777117717536079235201660968438401710973911417904036025150409464649022004445695054354849027182339591425449933860420569330468301420398546954699089843987237254928786584598144696203835087414510559621826611965898680738472049593709268791469588844820212819582475520115026685235087980047593823270289515362290906903669046929207872783958269926016955588026445335498743641543815629902260837741298248743199106168913776122858986477609183021838586520790651094236017317709763826385307950437160693858964300443901082293412105023386527916577391653456728454519739556137537830015495038297287590741185467981456531438777610973718796930502977296350583654557793154075454662316393043270815170694008653948009142949349860410789887710084305700678741187312384889356808647333300480159393681337816017341920630359281301822953759679552098018285681653189349100292029541723264048223259841478177354861059848507725418933152616066538916071470531256034845070440363714582830628198557390520648263625516026018202288381301678787739938211541943078194822921479804824769386196625817211391098286485611451898700547339372497107570396002290548435066485817030884146759196347650608795550460177072969928364921316150068546330443685207203912252330915691405780928335788659425056258418165383310166342885220280008036262157406144590056138754188671849829728916996711029797123432812040975659952512432805648501729071214909580295657356673228169662352937047799185628172120429015201794964640791494346078235520991899801450766666379320854494104086765745771244444394115029272965607773506456783149686120780055806330231797284342737130381272231996082565864342629106211918409885992347109568133889550378685776570924930945682981114675872209753868432156866157361675443752572809634485811328955164108258055058002131318522365546877715824879392853376220282277805297542633221070334139960422501795568620062610526973466514468427865341568053131335795424775684652502989765757418940719576617911774379388259595896629127392558142952545579573438304718945094757228127214258939955613474853982833164114191292560940239260834444866349989724621315087962282677749729503496210714546438518438750321956658507131260294402041039172053218490346935562840928562264324637324482386107538798779373651692468838706849650413278550641273235902191552352823563078518085314533794951756495358283497107186995482546231270718289160348610005340481436502876494564218936810360075651049778151970524302001752706677028720191479062106271394772462723802990600032163074610458009314308280436656672538288646522371666766341002261082894114512993472339590008822638067089956464506499003303534079176118295457026401881594848850643163538718143237396040000958771448868388706352651379422593586559086735513161368495962169243620111647133965541801682924965229943280397124324835681402022207698998854009278670099732353073123120081153485846514390718125568870206371375218712304722550998698064463696143082761805207815372475908980941222384818953836461473505007188054854360090193142494562016813746812338014755988259622308259951541285369756740818004659782138070739809994289786320706773790992740984067169848934520224754059928747240051236057892448893559037159005795977967114145353597286241133333940567232848959487646151637927003015107236129844650807348974672526622293259798163354179847071900730327221857713961802374196111756842586988123967591537439670621278699273392828896613190433743982311534966394729547522058408519081198552371013100259441119860596633728609724881242987740051049727500570672536562777268132522310832766647207802122122079963504103146496873038662637575939186260082149385139134055936331333705582691434650702463948309338099696380066236658253938946481862576382197278925498714911768490975880067850809646560432041866205300216089409544629685530547152557656635675500721628117435691661245693708193963962735614885396839352218783455039154917908565665892045681152090009141160250260815668095748861772035996221068373524899083647497776180190752317402107559170571238483125409405133235654548008189024319401506741210360530393075866830895124079248075826948656780958959370234070132150164526156656932262015892779570228183618852943066301894244506785638332073692217238057773780019603878171787800272035628639206101061787693822267354505331675568272723771603965375181980834431792045541183134030389307071588234724621888705938224608649656432304489336250740642394927625183314915619926162939202895416508576546149916880620735071311745661475117929140087463551941987975396309835604260194538793740346398315208924310392268707682612996198699309012085316504718703612219247088456002140992539734933981023703682946137717547932188246190008158565394231605548243030440603497662038922074892512708451566240672757036996088247361741386265705229393376258766271776595976119798169728289132127855218908667517920376815180251747313434805127717410002407610928479595671777471143501421761836008127154249875101023551686443557324763175131601572078909038538102370176583508598937229223312997128244784696921882814214007212216600482345693257508786873305570087040482572042957937354064725249287620085042089193468890320178677673588253186140161175804038305176333415550091839709759446809729329871234842663970747583771657428696343817329278171887751825473691141081102195208704211859318548117482893593298165377707059392637298611829560487025519906026789038192256860568727442360840559166824803910120172147837366652447676790082259048758053418092433924874975372825484051594710916736954056456796458967898767843877460004396743748143173971839392563624297127931226815573502858911695688465703890680702056569932738608107563696017594462351242014533744584018323509914256991224656758167365710632586459274326412997638170065640425941134774972996155922435282410995886484968547419704970902659780381726572312895706429492895248500558974115854546205565387952632817582432053342632991034204410264196549944422844278320670839562409179667411514296649559833691702097919437975436854734936732851067763663501530448210365102922144141183692831269808664954148851815734371632089029725342004925379919539670686131909952335229812607218007062562178195867198781425383478808609865393784268082517340940517998396041966132448266040608341087234994460972036073963492699340606779223465253143039386208428718807382768673061732073964491260667384839962996387511486684239383064055464982036600575034869638119652294417104970147420226075347173291542867452576373840190174142492289464034367829953553642048643245639334578343566867569176852577487962787185928254004068659750662874755660017284496856115480701777182665855577798751571978735047171064037408508263293107256715753544936102072564347688048356275269649006685031537769537135210606450979442262427919606478951219733491142467127466334534444488605693835333389884808969785007186404622279661068534384491658454954690959387278274966670611002672270202950471267015713720192542078594262859849066999103715909910628028835519645806045685007686904754127072893480004026665975666690877952640157541395459689069830043764445837153010299706722365196193937842903580221947285766740650145972059611313350157692814266973207607457723566937128959618922023309106502256346627697708696849788689282412708946086550964988238807943648315952120924600762978748285553366559774091780016867580938373457792883597108647048843055065292461777938350973118280458387976719686595563387725487752001056629620803124988770540651771825390433006971213597162306209909248388877746884265440636561613675960838303472653054393968430962248489058480409967471804023607069985914819577390020992220171562606205902698484787665232142748362625166959554843958671091063072929973747488257556432716958024126309690961613728062890291621859187892326568193504202539519138261934379647915062689049173124488392235698261386900669207300715829029470410730838517265704933147419621807036280835201420151874455978243593934987132670726531180920080440080260379769157202665340723620482519402707839278330580493163632676498501185486374224508931637792483524287303039802759732684599057030551029309941815748901634632497133953827238205084821571378405897249868805322413927463625253710304130354390613119592906664636226999768810176560912182568929232570455361876966159758722179516853626195404585937400516412383942288979237555317153485011460908591496527678174857288734626502719126348074023880338267874001640246285789716047154946340980772306418612197130956266988546509659420443442944175081882987321386321504165294104511094885173515776284386710172425520014226450127319356525934536439513960660761127340322335280815970316610685128808173934127465986202067289518538953836376413873293342587465985896240536553454198126407247000196669990405003066568715594637523485493564461722764285908103022611932094831286910295271514447949433635503341073279242984629939682593969886246442838367183626189958500952475718141226648039864927145982140849024354344298775782773277806257035899486308906597960370808739814558630915352788082918559961431654326957296380733115045295241630719597484529365302424724861067565890209245824980316179842524173390028656293843903245022025160757182030623932669645315887824250627524154190886253545015110665531894687442846594351662619217617725702689568062572493003270729492300058377246158281524676049093540943982071426897878088686269299425734431557406461479059222938655268811619213662175576417515487131030007864630668937234549589116132003527037661737275865432875212390143255556621380261747369276077300532602532287280167968763272016528622721641832532861312703476914138187889936575853538557129603035041650259968991672626681363656546006490783315352049208242699825362529619399631637380164331846362583425927052065165255464105519648924103359721520942271558114422372966195895693282657614238992498081065243042322053987213794212475412155321966024461355683022225071991229160903633850404059975324578029042376758201711756655590221494406446453799085951775150672963366605350399688139137529981811891493588657476229069116579120707290305285675089543291940154868984907694674655109197043410060136884205383909374430615950749101377048832506223780839170960566333170074884847049418477518708035325267780738443835338167594142710840211420608289174145009276619897252824202656292185509607081616867640340732597332582958975054146358587398388957004499992683488822578832027769867571561539053587601951603807630988906572015740128117279717390078318748512528456847249048850476442947356264902682214863162997472016477419569553720979458428057855303988686594882043312990097350628007064991189667736341459728444764565372046669527213142331548497503167000559076584887348271101673549176552510780088129037115231754103913882640448329206940699762642514147381311547176360725754750919929400572889109657183220038269039398034989008087370016045537049139941531067566587322002963352847511147722458640660607916291788798225164654650845645139501170153334530985111643083182404806789704666830346882689165146286677906614672880817856195947885245159848565346619483803561587845717352810258288540348255845586748960159050355219509954079094805307179754241574333720381662890492002979803412408137567937485112653800490572471719929347992242786401419119668489861250578816120629208844446324923300807328717039013833961339097100710501998672236648306139206333487206201759632360542424171269689418040787384230142981147277157018124874163595791704637139036663800141069311540027735747285549700653164830586183504968772186123921977336647287832718600455918356341645183999829647524944854025345916940504847652187969900882207368863306086926446453828168026715947868986398731838492065055420219038544534156582642634938425518028089306739261997737048101619694012488747132516041654090733765417626104163661257952765952094670983437819038315998118015366061111895023773802328417900869117946922895925327531967663631277180463828072329592786300754145852990841674078967653707539277523148176641159724542173652118934307064939691848949291885682088364649854635623209124006195348493737386283143275123315393817329374911413993075696141080713562945270262076779686295958774349393855449868768798059756723845466360641734305630766764051045038846091631569550263423548737663884874349188382044724756071459096741506253653889971423565612981931587354561379027221330693705550080558392571308055485636193847151474978492270733862025687404676249630469206307850241137750280713082717091048956158567910439657341867203147450119623304703207448003644974342066285456258152520297708793728225168630223785147634676969278162772332182964295598847429360076563972151029097561299028142080000721395234918971333315023206710897342362823168666527821772714503497608049416917938353372460780853435822093430924439804693839628169509959379486818197759267372547923553456693989255274203339711138173345076676492565493508512759586563314009250086914538286653012414181792090826860976025433644973786691638905471520830363113493514309542377391588229613865476251260948812535649671167915630497778905772335408123050812573457047553549873186881041650713118380589651243362044718851016967363105066776617928985232032503266728007464965688284677846857317014223741737978522762436715594501651141915872635259998198377195644311785705487604063484609899673692100745335108286223228018198698748274239435625969627835414327324426292789654596041999360021445950580672192381330036907484680852208024458953126473030845941122051621777467457415107613143630219642693290400977621953229240104973808993996396724454243230485707100424766201866665174395542639638632246042329904619696491937796131497794000366544421820048513781205642323965554486375038442713868424887796471538626723573027800380886791630907394839789128264388370356888149876502331857334860943681225330397602548493077857327812737851954454200867476947235765122553964780836425713241158201801319726463421077314286444818920600060629190107857546125917089792811882601214190807695603095476471231784852943107392644274405520595597011119452156258798064366750695650336778692346814970610856870488422336223030272178230474993785159210755151489278315549941110470824368066676262164777499539421596680609125428661399740518409275912520504705834045536759839366420294193736262187705843330396609764602996911422579805362095535793530594066762042452864139013940108662476201721563745422751843426347983654027263210804639073290770920354404200972885995667639001245989417937637560479546768258126170086257971611895855357013613381573271185509248980595521121951062697231178684496780957597618124078149998348221642666986802391067121392566416998485083153580897812197807278491174087363390623807865046358981425803808423419393306241279974253437476667872642878244639859813932890588992129874347447317204161147645159647955614006625053601858160991989405937496855015795697780647247560715008195856151471406877760104623414116010176084363009383528748999819298108183187219908115721637300407851791058784417329664507764752431514327419807907602004948737342563052241013753825215054669935249674452579010165468444999366003933651711223099834576297635055710053738765538968495577726637627271557049215907383566791390008494932617675558953166784253243131372629738178139080344001493984425461961197266932067544839774463320346148163853168877801006198260446439379689297092025899900236241749290062000840244039181081301267167858860406742720002718657059497453574361949919925949473559326035992955736074717388087984062510191507673087403266144367334350301038513593858218988190734706207226452297195993521553420900888778251799726882086451128332412023329160463835612648343719516770084106781608751867883780987732861229068915745373421669180974047816374174899975340358426299098217237383316358531114869857631022083928983666966647119286044762609516349497003909136404988753074781088964130587162207843973379721693176933076530752938509064376120153381341855478441848877004317217141372653101517437992316481402804162239060240031808372951052706975244848223791562158721651592521014991883940846193729791089926984624422739456079116043587655697035016960871282010684550331214027724084256525933863072982052062717566684836899230118295482475068028335183943611838627687803688174750309850531934923792785010223324932638816940640352173225443310940709893229419529806883108212049971591036110562012375141558977531752686408689158244731487217746718858176604708395698928985421863361865285522431167378854976407808714676142455442859919762137838604897988937981857029514834956169341935292510571529447103409239227629617633533169935614989584949443804485076385462323991125123370629004214970824437144744934407355963593958798851057234999905547413264465996322481149236905562401765149872374338018583745607477020899922579351806587653407406229922432888757362191381965668606448828886265860524849132860932331518283878222414306605352018106827200881842942711956844600891829704004310286096461276534001425533997175579202941573986569820679548332966643382770331195352217349159612068520982842449862430461243971759931560778496351553600988751866039170361252326024367734860994418962473827348774097726819711099645186223965947166035597775685327183457046787256237407041406893656873542267806933801078108438246988436753799954324538912383023909559153317897153207682255283229066639957466443483423609002007923512658935441867449818403441326898770800617749371932277336639377868523288201776420841131266982586879328047616431314330307998962855665692751095471932722506924891516108894935433182602444648972991721170589491360065689880734643820661140326679698498458155775663503857293954061512568092980839566622695120840358316419957167079542425376962419884822796383193479103280310373594972037286414391052344707158623628184293770767443354835291204273560447894928122533965074236163126474847562625374792001558009372565741652753224328518641190937881018433514990901395899479927805078460763707388926544890299692303592537285296977311596437356141463846972160260889372062327853089859241520372708637865195162668486137882936694244109099245986846258473089359785123178187557428620473634356912136955190466996181299525116183520580352483778059351130598779377618557788759843928241288654756168438334144354927190721474241264979911868562654565073188995758530923642086915303817388923056712347683316624124346300551783893611242240365266126784387619140809625998181719806137323326493402071465643699215336224005329493149407092259838956139538123508103763582670307773196759926096478200978420903213673057657974222418019085470002912263499588653856801760171310962668700287902882527162487048992910189287745998237492811405778594116109723431030943121591756916295047880329820170256772756320187149402981149763257240709100064137663813886904863484712191538890470715363325662168911994950427150522882650534735135913807148480871700153784550626911178638754451264189829902283129857668908853472384340727909821576078152550097429363278190063420768278626327441400891545816127677803897869451147587541465260926739363412894067834291300528918900908003802002340459165319488920929650089643367796209288752900941745947053463195207983035331940322630481547387638141181564881086978185905585871140838234197979864886522891446572005179516382342610146708555116406976370759437957570100718745964626768751869988497990769207283189845300526959719593682761157756999231908491026913687752141909424318810082265073817529716407185014655550142250696948631125419213147242795354025313267446157278934005621833083229298120237155965406859758478992245038288859354216032181901656803794550806367377200887505633882155533722574594251473623092711850093655507526639610384798864940009806501661250280029606229524802525864081779553915302152912074314321348475297263103779690704040298979172566476622645763538952122221169770023816805546036234612043150126667297656168835291857990182675279105974406204938514325278334414590497123162241596121395795452078129882457201278193774490371564268088000481552367922020537297473284073873367264982192292493136854180282484736073582712310823109741898632499270732646546379593140086367991182437847854049413320759068669059746195953206168582590089988396212610963482554573237924327141336581829283932960819471229088154569143737305502320616860203046554550620111543186016661195534791299161115601747662321116140252485133920203963786618367796296297537880192931053943161654912403323839884315551100764064813800566859200995696154849284054153224818399302124465457235085944796202319737531670704529415221675073515853774233251204317834432572364371275819763948067998592427374281395424925931534380537929761065934397266965205378303957340591386437663888644866607990397055827708962894994957192326628157275787515901013392600653648363967754894840083953002317524965755729337701143620360376384314272982173988059337148474860676336683301886436374477164916291392044597830316582586492278843714869124625103381202213056898909226685925499206740248417054871000198657225006717890773585839368179641678987032995133453682964983478854685674729563974544646084316568057326938847078463300811449969086602304251326099821907715632183113603054838377071653390679816915307536434924379713474676197953919334116186463977891728519692625615373937420074678215993272693435877327670431988473813002002646246173066975745144901493786750655326711149975621868657006327742606481259290280893911027777536341060191250270216369689394222704993771797461169586402252704851314747180382491747831323375101742589859094518819885106596147830263827116449844343627655092145374313093364186390249502311413558498902009406900504333703549912941428471982196645280747008170011877340764393101247803754073450995003585192916783828584393569954100169356726706746913431154549615485694267125413087378190017016370448700659485404624115682996936874925810873398782631966237051343242938414775578918416283521320450522110493097862552728711875122908414986874433243388510480783704781822445046263828786861623400671004815459735180975051929610409610954456216091467269837725973165909636728111130085601983178978989943158955270620480698506273417510611285879921608763171528654574292996436326579949109475699539580182852205315164816846103621111418270492717818146298326910818040550255947590736367133591311407927635770411256441732456999663001285060028169679425978799566510436554536740063114814635851682774518729938653980404839468500435236444110811191936802637006590647542366518615224483281548196820724694164633492739679060946834314588380967432392772596824779715442953936008423380761733106526757214315525058976326797878446911905366627481067951016491794791747124902890693792094246173239375427731201946509369268549241107181502706777641140190380680019219505941824072556626236493774012768353985756527605765255040552766216357371761066578520037746563990798705282707892552323536033932746134945373885009778918646201765461442684492124619014681396694178733404358083138734438075796172639415468739288097742367781086790799511345365100757783192763653007940647306410156471981478657897434093418624942017904564734467673854484041656417754150695234399468987259394068323621118164810499184881602701194042357710137289534976426870345715786554740091066305562992848140367744714478443793718146755190435034652162614019112226032096073163863580389274771928651386314702900510115724993308083253408722531039098552295777003461585466043141042162828997402200606598448980686693569480366900223182806286235599623964410333037801390043570084663328255459767288716171033661903168706749417491341168218820040850128029001287861024826048919587793412624700656486821831969628551046505642217717279697847534809422184585957170999032783495216738696161099822555414175896168650344611606067432169126164649885427509081897716126163028488694123226256153552354129973171112293464995445790633568359660030530463121284280829229391691644153160826715240056050877883173803522346829924428411449618764892026884296054873338701117246767371822037418723687197878086289439323157155426269834837751720923829506478051454720789593477298118744685433242985779859416082727675642556639774972098384430498741969637652972408175688883285690291966707324688616792986477696863649577333833084644899570068314038711604253001523403051116555068341813506487458446200686574834528224483398323290237480757159144568485012165021856682053702243602715876313704575687338778577465535401368893138340784962619233767923110991314734641982142495015619656109223378472830120784491765598266425442854239071466918867109994373003174976957394721349560426420425560402165615115750620349641748378746872111313748719800785915731249629719952530663302552285571054614388244299619301394777043100085474188298888900337338556886752486467697692601074135725217895518410181332843717119576267530955243769252750237979912182728508917583768333778105828510690395099928311414540271635997883981377571641967981172720914654010065171630440719832019469229272041074639444955496688949062951961368558801629634804829923442830575324359316023235367351266684606930006020515633895593074775995698226619382548318677056612640099912777585373710379153773767378786347547888394285446993433396756946304155904353787390380858010260589284533198670040420135729878538251550370578609232273995995609676071636621475150208964534976142545499802002797399868713639949986100516933258594513003610550569066785841500847773963251540706031674102574884720754265398041811617119072888849037970885047651445080445172114167700998048728498763368521750004391769595836463895301959160981256897816569454266511348263348681518250867311677625880300454823438624917069151328230331146053745800772042089449545226049733450919544902966390248817385030385745641549309251437618966280082850978177035386819112726321099138653369468126499657960503775535768577274851694880299693576044144939912103159659919731909297815064999865773183592043651290463094583251141207324370880736294375240252263676384543115243725985546136447082776966736495183152199137605618407853510953477575122255251120007247851302452441053459713987920718526516853647394923071196961458241034456224350649632956533470238079529392346526824596386196774102292535172522713746403199686643354461309383249829924341178111290296732281644852255551255649205672845553571798828161650024333427276932860912866965481546888846964871784900863559459845130732646027375082959346692333878256347066684125104877339439211020680748707503639865453876815725876146030988415567102010869179893179817056191542622949495067153427416274459455754941471667449367224023474940123643412153616545256040003184508548768308256917015407334824633336261078536772328582981217300820096610626768911170992878939473301955172555353136075063776224979048033427703588458772241384357732033921914067310409367185588567078751901831633808966607276759257929935194904864655240886451876534479534762250784802011320769353843556450323300199804855912246548368656949317793261321871011753746812241313764721554048431280129621102994120566072043738445503862678684722492560761268604253956836333015067393449233388707358960370846010903117996215257280153392002256825119519569139711749588316455955269234571430461900073516432147438655490294983495838490989031888741475925219763323153653838323655280204470311873048489060192639914371758509566281387526234986795477292977984667777699160103056779321968808326028480056624582344970665311610148992445609428540380440632266275540126331494395825415271504236307990892027721155367989867123084004723341608246639465026592692580627298200378417332603554891215802532804348785133416599903001563757696538872417500130811430521248810800689450804249365053706215471284386119496306805611679822254873865730993884460436583216068340902855196826793014501560298299792048299107321226018803879511049432380180708650856054975561777789431014784455897184722436691744966016954047595360747590505931925697584363022923755739844284475713736238393338190749365133960171674840520141617428931796325063080530508761820198016472911703942382375378559222345564697846272181516753160494403829925992930810775165188007413220387203041489092796339778740880082556210513920581181987406331073397394805917135279626685959154365163116533753686453109569603769600666938665688510238320098849784393464810283410261812469177573579364843030916959532195765977438758726108599901834983814451198611398759222731447001907388362326105390012721248831253665415370752266845782342090898625508577278093741245638015331341160973251755714034907316251543302171942023080219912534323841456307876817018898216922572234239906515873222889161807144280262432245170443443953973263128624055441522315308602657801580848557454805161708343088632903673661987985032833272886783686487110521102468967437901507629589569294150090910007416297670599819731112130995949601228483612565916224286807677376897530438511254752581857274385316180568398575067715118052769299816220066370388020532363775845747392530693606218390988021087091790899195736104921258464009165151918716381883134052541907066773517541644293906995111195814733640915490157644192931885702492425206753464192188052757293885089463238650112204389213451222047867420887175088372413271738824934937992817450500770107928958137845434283685734208332050333235379219535976820162695212351550878922443745708507618273742924892175843806118369183629309336376924026788408271882326963540299600318722019322157060389334504860146390977850888586694515922157632046876826137990354231006948950051430963405471549012651171852281772516018563640884939433657202761038344311895704988584170634075605774100439464440145067277689566987138705435220158835992421688903562081965896684099054371927781623020374743707594829523141008498288264567949927602973831732214449848398760937611956398325103716316852314933467019920952921098297176391671537296917978531594279727847144786257811633070770126324905062043028597283735833433214133094869304557190363039363682360383687986459588841204150973807879797000345274896532135784229331768699437453719114857275160795075410277022506240715558902182322748942260680359960024846705822558702826133316666995549526752248140337233540530931760441344389458632036106952804471669228075155530173803499685030754442401289399714535900886874500286525366409177982587937960345540046001101921477284528833974793014665283725330082310975999906751720934404140245081808850445235091417504017735810266816668952418911803488361279065726046991308114153362776939993096091415833448139259792984412679336368554229810292732115754937232190013460946989654822633877891687471682704248991278744777259871403958699500548603126416171012819938064450591985727700196249085270258393848050125182299712642666081158268437056664496124497856048399141618424556888961300832662075091180325861942549097610905511754505148956766255187633867778097539859665912354926089790290351357491879864227181238439077548029211646253172999559143622454035951192157651029782181488534193194586774115157166089959888314778106737327101507820092813520438790542053671346034840394572570096376142180041163650526370332604259116971693259484771492132778945047694673485978924134659216964790806131054865301698549880251357344509199783967088846088939269838922368017065142937559338369858118528728870810650864355668293540253364370231235089831560543721997455845698946897727187925404873182699778381269443612367976325931063565083609831015389141155713147090142907343186064716044666258729329390080533813919674387413325036994594006188152963578436845385774370700099818800806999186659204840279747523926620085793901848760578018808411175970426914677457661522866388957605289044618970272572371351866860547264031814511073824395940100923074474244936750420115968606694470248511814856814350865231686363301825653972348627864198620351944130077917377866574626336138747722783305026797456697746944326666452702094153777302717864869399572846194822514048528014569836877478964061442234913515913773527800057525889650973857218480217914578322153780020336307580353314370417048211058611051211254730474384161514472444232870169864594870784553009848203394209288985158608965476789948600901022876039164727004913349802930140983080014813435495941611972167715301816220873582952941632376411972044699346741356074219682396010421311080603473192880705227780534667887968959160191267085990409050378158878448238472896353532719952460477191111479865891427364579734932106844238706859187817681323208740007571736489426431130653872171824560801678053637636812152394810953671848093635245856393897119609985182849203625361943708675492805392422157753806503830597950774964640308446279854459818127597107242964991385320405080282077686506375906911072990091910521984006843861667180361917131674670827091242859120616499631895196165790777583317194033038724870272869928009571436126860170317587408229711655460159021735398937625736481018159336536714959332146912677531006917014230256438405081639112998152864617287880682558352192552789365732076456640748113403405838231895638988375244118408574158329867456023458157771748636934302583187247021223488760625138718763539045104117362278036823212210251938247438665284136308777054218664554091013552276171507332189804184737658700916745920773932011128326713418672275882192492805275509784731898300509107961181737742047958926182661968913080926823189994901249237718268302297431875988661465080599239767397390606909898680158367651132707881704788594489093917570781255241644098575906082455438506035104407108572425145560979108111151436082972588868559950572293273017819687607468035665017517551676250523874755777802203907046753113803961930256184412199311347353155193681428366090607801089509269325952089920945263517844358689060140118118786604153466117045043300398209414425067859233285210841692621191105420223365659181632925428182126620806906556794149627929670979773477121545255152354292904112850127452019619426902195585491008107234041432907665138386456167092079789445234861437732714952537777158836236536820428100446270256025097827187075110188194624402274500239203392424067990210925679517055022760023761598247963893646604265629917536361739161036931686698212532104299025530849620636357704184106430711280010995572692554171942363350964655585241739978236116943816384424059033303416957427314272157190646026914639126105758796309033618971560852660991615204998505719352901096247497606945529734365548635823317114675828323433329305207414317035157573091005018255512460692626412084617377866012699395709854121444080411165922555086705707660630493117344737830429222949161305449540106055905761177077046364996820702905720684873341975194422522569153327455770871124507841765138340548225901282822162028302518337803883533166014311637184108443871532814206260488187430863101482034567537158400463190891248839551981577000400821793166278280876130667619647875379917901212094561507371408428923582075241554631203029637027101560075435157761799984781256502317118403802376945920040930320383996129601259514972596024462859037354188255626040234170384160615962646413984060109984407860494621418488809745889650807566068140477073745140775708019536887731610938554331195453416769772916047817728913429612646764491335859877727388905583163907765695556409292448631266874223136128574198531825448082751366018848340117319690985503099738468061155924290537148576998502226821957357934259643096884953049212272472076494169339391803185510394782786401122808977909271275784788866729110195747740796252752796962868685447959564525457549939852589553113573958923018213742160390665645435346061907591149002328475798454355577040942024832329345449372520604716584982163997557376326419487733158265375237449343335059991871119125786403418948989110680153000286951002347217673970359380841917204030493478435160242179220765321413499716045798749922513245664574157733351064595800625619754846180136734908566849149873120167758814597189049085259142913485028563035825501377517453845459386617235476794896806451429674962514173271900030621674798888492599434333938579739327119390944684981066073060928125683585116551258439163408854206796230359753506921733873274403292616693358735555414783138427233512487898756273342755197401458098625989777091056829246354628484013222548934346241504635262818641175237566046395810846643356226563004925850174996211365934756171180714150598404545472045580869445151207057360921435845373085925380892877474061471249342924335894489524595776581772440010938510532567055358865925759750111593749967814411761827468480973816153585017525083814919383445225904632145044750421061534939987039860925484273690558169550950558418537490752457063156567257531783207865007834854834762692000191276944677576267183371011854484129824435545490320400932231414386176922261277471419600932466112475734627774189933555750026050379010015538511377812962242651834633802330674059374196344660297389355080831686565497851884022836343006247816584962991562456299082898437280674612980281138401427162301212166629869208565354723697391549741049197452175947984662323167380173429418985119143843156975608379387901038249821487708915128911286712120226814956278621642073896939616945943088523753630410366654741472897553101273528374150375974460943502465785937130325154073498481132300681202037821375271334484376105458387379886754177188911097827173209350256552434504592494968333795037417175591134631569467977000693874101853580497008828361357393873809774886445286683157917925786629620911842682569745696590373724299126046973194095754401490784287893652109326865461291490010840801552606790932100169897969464039747942865109232033737118162100264964319507025527108114958568197988935330358030621128153172851861874187879204003415123257057891792870388954459901580405379274832972363902391287359524762040438583309994936395285636263057240072583221205419690775752419556846866245991764684954410564946937197896343830320570126687678648127633179990388340738330120139794993834845023054690675065396999485136324758117386623328628422722890962195399040838596859612355627060654537311612671552787065950554172684517704414543007964442852765885685803819027593879030004248400230273363044024939911471971105372300150460362826127552789719978496070314433854071992396517792236154051487741402537335116801236593377563387001938120702380392148256073968869685733550115537743793077608456712352226477795399376873502957782788109957185174749780018606775542043380110971879653872235244319535313668730647287231846448424538204342405545715227927164782268356254696141410710293124836171358069997679235461349802380775796088534007245779178608710628092488007254522090402885032336720604568828898080434769857874628619219977038696218466060184135013989907150452499790081518499136510806916581424853968483315720473799275150343062631480190680153884140278799971420831888410265728290566552089972559392714075531460901430143232415201917469194387884761992008654637487314551494297440794682407583013418968154555036039170407228882616346690612439078078443434056488256823028802001111160387898403250130509497831064245514345989551118464129357534564326042564380386698360779150794525905140140219741746449177343771118584632256830959371851468900179411269666591510259318197432706146802113978548230974464198277943744492028965781739360988812583068905744836270141176261804689635919457821924175387772788681998651070334256553249571653481044137584486553556023344212199616953821968484684370003655060756636942469301914630859562584250753632416657393236183341446807601594615077957451929552391373515657654274769515018559317245212063992324977802568717352364419194833154203512552655932480149842884151627887908381752619355445343852267437547526114038013091179106848602263376952091329974577318667908196346998611662985079276359539367803538604122800918826472487795484111378024072610349372929889102630357340735449135092781555082900474604155619278467866810980004587017909727799347509086820653620120951985293323912018419514064943328034699785745450397067920695251628842927135428010631347958123758603234224582691290427355730188462934652577030009089508991723339778469431904824497183321472110208992253536951079352188974698402805969241159663539531691493531549347780414142273662189357368424814123452901754355194022606609100413731985752868917858496418482571046397694801170477753298831828259877988735593472893609629981009086099519103072550736644493351641146131776622655049959209799924796600067722546175006979178494779952815348252741874862705998345139026881632272012673556453142723879190867266502526801273022748177180634466942516155561927932526294096408648124006461935437561744446248737081052709326058482146218111860271228838007482078985713055811101181489719638126421409630373277423958329067432685875809857768647748456503287751901272083875314624952823182614547910644179243014622304678073540040563555361184399308598331309522153004360059646281175766935158701988627950298877309856696846439007082055316226990973713826011504599916986665368768977841394782638538743679311754569698220321248173902091060073564603560377990890749858971487125643542067162414283728313470539401305972862317903103670084188399573238586722928258905155151538693067571356672895459614564218531253538149511889662498146849548480221096972590272408558775320338335258534768723908121812876141414895064889653898003444267674907341238864602572973765749839776402978738539434136757098007687425817380546393129012365867797921378898781075715097413406678989762085241304128976166795602705078773910471272617944825266583901700399295950320883566500843110293608716754411180557411714360942990592247786741992917013344740445147916641108732151828141229109075956878226963532456331095293865692166248784093316216267752020176581904363673861322795680106875026827682485754942500670376899432447365796743994639901360550750046230765834992588820631010817732567375487678960703876635197013548175074418671245403374874494660807305559016218696646200766407333702171362914352933542485687361663939641884790710521548972558546947884599603776721058145120068155209625179494974172014023772473814952313357714458788830159841206894422037467626183614642434726182515396546712433872929569263447354025965022774223061205795268459357706678508738124237810525722517066968904701841294888920599714671708695873315430275218863474112174182284224561111734937158024699038431262232405836755277039669175382975403070849247788047481213288805973359691716225577669733802922350789474593856122506329104383273204302424505164669266688528183248751845326304899851264267789015463976322059556584974852770302816857921399626472822053612781175498802716608063668301578945950215426399125865314254206754942009209156238078300177473000668794662634175773994933224170726070954002603649722540408981293852422666578981679046785667258787120765190100517460272086886527103444939053475283224191576026496342328067403597724958171256620476737672547632578360480958355944317334812885814072234930914645708161286466159803376281279467002778565494278542775829378438436233662730172336103243124074655352030294116891255853860846585802444853640952960070112310861063062765251559023131883031471721254046390100248532387516298847528827721206679927342900710955175782733779761729740843321155716163121248193134509577840782125171534312288987103362976962231353153858886779940413261540110179763582659745814019925568688319906005915753836011532013564905127718422765785487186612906715995125113272823397231919051968855975435996618690959675786007712685342595847977539773812737888053089464937602898729450705628062787136755836517750424841959522214721723337359004053424729846720067398926657422978598924608869119449310693194756739961765705884869049084022433014800359046146726687399600864835503576382530965143400589388498058862206403517225857901237564112907205468274586511154471881531677271609990910674984429957987955910510069351711812502068271893419244922959184800914032726492684291311854788511405862589413842634588341994171134679875375075048729472074086390139962000507697920659439895873540912729161142647853880955585190722403100208171992984369152198050182260627988938282083290885888761153118885388351877489325017232211601151954580066249858164765685154946701024422588014144034625804042368629949586672183741722536451234908153771188145734302572132843413143827720436981058533595327174270937500134488901855605594812256636679795982408687484115286285804467360772110293286325553055711936886525445564688686942799580988576459285818089815527427791483326455663722589824092122656820109403326124260603536126245622369441312482171438848895638919351081839678105889913107339967740744434385530067113878955994914073961968114169796345858131817761330905644199945216985036769722009502871250359839826099339528802918969368190914158329986626487708258613608857232064078644596142197369310851656744603621150379965177643989473671231756327268795913975369386879437426560630073257840247524587808357844238181589991951896001847948851089965832983202158993270358893439196176492689008271733603513855279832324491349104256611581880346897517754281390019183383280714609816063396452508036797226530657136882436877252838099891192961620708820418497052639162625604931553315618889870297465510557755799791278940220372389375906660130926560333977592337856131631753040545765336139020440966588204325132605144359632465420762479470265757007417437336429034594266498257997191887455727529255115898628205794563833454577546784867075119485560202345209331644713060548668228179342050786173731068409232843254460951342788697912326740697375399666004432199009347436995927605647891035242257962310556429661170465966274357215538241965435940712358963066518997128613883394507500767662183452391436997000221878711421036708981263058396580904196450494141125477558420177891501625069752171474538000556110722133797892207196716428461905487486101392200566906470050271836591886629025979606614080636277770927297675239895238012341429456928448095240731719839842182794287348497315863345342455077246653694108393189966654291293726277683948403198290470136796445560582551765744383651760868280785221347690890671840496379711618780060874248330177274676224527621283457708057463841899224733372667390262395382883974541157517834453324978485867294517794596021140291005500422310318853417378879673289393577069581517074212768886014266281698401107516061114391763516041799920351480491551680732489744032062679937621299507629489184009960437343848099201856090799770522753514497087953545481148702332346882703055289970462401870374990189665579052348536069236477339476628603186463694394743041722314981641653844850677675501377415422492591068611128477212556555295443071427253196919343698386494027091313032905488246232509798662400403802884055843374841940961164146353428503351888051151452335424122165421856898225536914813887874903792458342648160570173841662259653971244893332808846145025926919788505445936952277522940287612052727151761292518169096412201250185654320810698980037325849034411120203303760950049148186637354107234402269619829490217563308416564402307002316597240007190394246097357989426436309110232265000725856353173776979296677504686862882942024460541612195062410743517828562367711208270924799104541355783332207227656563286614834477264975209799092588652719621674570684358432675574879636406652228661769073501320785250861203203973499104807091573946397550839654909657373326484025918883987268713422579141183309238690536713513597289255947123818273922575045302221853827463309424806397685261871210859594855848328084450503893978824112604179810882619533311314408502567407336008198666803402772228602747814881067137772036804572139040642404098097010101749112421661294589883571052508192214384746334584843805500905390272088263319259560899612363072705540823202615985143497546902587293577545403976426565468188294229773689843705108279741754908379422056528354152857409317345550527963881735838737708138339333546336471716125017484373126456118024842266380366496393159197029103113206160350425509029853200134942953036207011161827850869789307901323099304677339569858338994705161067578897468714359585572228722545836172246812967719831844345094206210603232540949891353632606174186377803678896818411196619357080163945394850676963893973457194549635106354690648446178851610264975650584111435462438839419452764479262802230005164628318492724653359902079351488891628554857627850843933153001933307779228511052783934153202913823844711985196157301671695655612111751083380680807082897379113068126938555908287045638906679962301340121223567186822455987290145092869774447949810017583039718525432975349090382688655752226054323745191626252571555904281388048675407246982128476000510849313855682922038719232224479751456047738419669779249022204393412777377343086320986944364772376990216544237724063835845811730372223163377055007347236939263369260077252898112884985236414296138700767880728127171568634537585375040813800239677671751546265995532399524645502603565740782614586913115172539523859533173322394156028449483569413728816774531678397046035071704947540975448809875840304148164794085020755364892898660633488722950590017870769590797005759953070164117207509414060001442759385970480307139261763597423897010735747709153692400244414942044870025673450680619009471582670124772751917713806858282630283501713786238983002597027966752460211143001494589515977592968091863329838609798144855618506763881564876258287632880433535617168764107842580316551082051829255902274779490459493451020979653489508551173728340205139027945287541017395837937714186541053185513960324702829814476493392367613776934665622626455880663044269208277063237217721734508286751596939293867467894420839625099071172179981530392159488216582513313003763310103643516296117119832435104901319469608804879413311715409280551615769521823084963059292474585821131599342436593572289267655569197955344295739501059120012882620002013790934115956389912416793655650737679266426559874741176210734224361856003613304531784712039882535487341134267528145160016319735559502832860515885828824707918347494621709032594760435459574914199911563575624841063453174242269887958248387019281953256574304400221525221319132901545898080321148480567302829093195239960316155360654315024961751832433023659561653147302168577576482004453571258459607348778639623413465521717964013344191938253682135315941261232335496080982116559202407320258285867721477567254650900715167988526601352718411811813544227396706137675548318514946972003307605553985572057307934460436889918275747275182972455813911040781266472307723155682839550681607277711726081431685590548801078895915399176895613203881931371910990289914967626327139666004129539920549915184999334572265559579794323727979557542330051822152196609369493628618918137994136524571542426566828847199074932012220575707391489883182509082682371414379848401654188033466907936554039432074977541222272628973861196889124480876341821128868338768766787947769461040855190010552830822028863368940558736004376381408515313415210148279860779314251833981227487993286049788621320257500162643786866848495668829202970106458678528023470366464900663930617010684532995776359159760445995018409134811788746422436918453385809287834726447488480915167442389587021242166258036122290984903331790532832358608155822317050152408760163600498063529614003256715479324755608815570371522873431268949766801655107806601896521795835218982549280074595328910016013548908767943020599694797844275530226042092792917627096124113714142327625290213000222532989162187148711085689278257049802009742685855822073126879722666556498317356016485580829029274113393816473106020259286355567208550117889889499217163141889654262368654135358550882511629269922473113630980442531224039367625008845087097889239684651699035932367718798533880713065842511465639898381298024168065323134480653161887848580325734935886839892451869112421269509514554758082646187906811471344208893122929884733167576976122500666724014681250544555766250133244914888271762500746173146118638627695028696399465646453598808656424793168075318038528295008556633570884692451792106858310523830267207048362236075629748851799778184429764156775002686815917116714988887236048141854530995461173618355941886981257785584837544922203953971559194378228068674074003841851628464779334686247478570123345193816812284756843078958791557231991513020526940717955529354889351123215952927648655323388590569023511014137831847190731359293692854992422721499427321888689970295951630248626894068893660158047455443888439550791453909036304965902771794849974697334341096448348058143858625582255036737768959083222124239391434058138189660681077824652312978743240577696314803536829515842089199737218601485821155863313912139887569576901266172871590375594565520990149892202475836165378445219084448513817118847765526623871204290440981970731652339091159994399056995715743599499272799010609178109026404481476312553407625833591743932095817635523996510273073268661063859467139997043571317663744072229614701818738750488557847602148491950915067670742794242372079867750797766600750478801454163659848446599913666560952458048982476000011606492658281698417250945263545509427268583152646777050837064099392689328689749748911780295663900981579501376320392953524136480602777482853882273628607956861638797578679107119861975911976277865702345661923855972949014591182760129444426666053960758461011856639887729548938698528985585413008777880255229735375034241445869351720077143599987337491917983072505435299135514933131517667980758594319791980982818498121671904545225765596092176164068512628764082406375068027686854323736134478774192929048061480909222276805549351454102396114622685284169006591029219085320732346226722206431489084009841458888922753010418907554552161307847902738601868283994485811949726441028825276714351493858963187147681917412437897821709034054499844024083699589769828623103356106354036110186036491175891890573221198855520366591325072413225936732949502355360070429774363506145620259153149577678452667507932557035964022952374971506863850817213814388804834364671543323242456562096758788260528921336818684171727946877238056611830540346605558770947549475449299325191657346760826838441433113122840944226628067738663563833061106908814738058010021527635649614288421781983906513661935514444362293235688787973602351519562582002139121893829582966924050784121619604430200009980078235770883206797829706297467127295848185082552826007647945741085950378022892040839879713961140166717040457182565477665946886485434233221677374245013185358258062658009049808200865351959834410008369961285180632630025765534987366410463093638408960372707590045378279765989357427454147721767280025326904269609895354083473636827055353284788775083720818750273619772972232326956190611325114061443986537679049724583103594085229077980359944064265088043269357736903516832078900153249128577144717898798397113672994166388010706664068859569396574344728915421216275902023371096751347214704381458229655667225841111590148431258225735499794469614431801703158569988341768242272497253031878818699183655068059383417016284067901107530399771330766119573601735506525439906257833819489981993987125455847927587499568537515854908157758123396943330631020516457654484609519142848489243186260850798269793020387545151132053134435123648189236842377044172285456235357078560287437912753072413814038600340157094165985893984468909327023458880881012189087169708237241494756970416992842191800995741835829731926451766579055814460463808367826985138415903691438082696625079035388598980316399613459650340188614732867613009706285707648142855155790494578938737707611579965456763424995614425706242126838685078717858175319539834296080233889696653080828908045097640112864589971017426203380162093764152786222799611897839607336464311432404298740224761939749506427450074433319202967418363765022838158063178897278532423782467889528462535794701361259253597515197078485933297653453460901404429034623321649054607200400246301122376066449270986828805764541645070072167445243716065952687509771308953712488201146686290362412922108331132696259891351706425541870535888061559212889911197610280090113610479570587765861396857011299051955807913539155584228273867467480540530662480744580239577331429029641847059054865695057930881036349998175595663079877989195013833031578800057342387157851407415698518175074126443838441268734416961349850626761774500021647368312295739839887745460270859134783841762105731001075688296354147800172022154627390064829403203533725865248351274919083691673196058583940582671253956095090466834233046419152621961350794025223200981397700415811723455216370923996861063010683615773720105000739181576918199881834150427625143208374787067245726171457545028699280928438596240944320774917531707917567734737245344920109333381453064865751285555823120614008549567076205909597909938913451507649278907644882570911800809984146014205092303880598757675191704171805712482602339227951146384909733086348241752827540450574970313125514973641637120443213001370411705151359682684168017739371719759089878235972314874627435777905884396190845062032976457480109628657901563021805365097485761705628120010256721172667558516412707231212530171813795636285029364507837130476992837787079705053016293165683904946128750646325085376389320145990717477203455538249974428296147275677418006819527184602140165119863165558471520873613336481455394775909951275257281387212833731670143624322254267251847466323329702116920193279646453657288030239845511697539186207735648964839460655100397363135359119696291328047496496342267429472862131016927046296213501260878436493128346703185177645853211443466150362575842700578791102662431941617522031111493163134053934670720747303306963602221016313031421011379373145924221121554683945372452926776191717392659056989634857022137864249518385872231734378165440945605784461399489018729384691223666534571098248877505498083312994277666611625894511996981667651569340200945087669624512133983613057339156121798963535762771432485492246260529052181151049526032073860677218259322496449989833154755344751326927063848199239465869979103690944535951782874035403636117055421783654663367310430625772087495417196338102553110641422156138880957037564819446098452231708204266797160933564946996117968743844664211467220549326416902295079529213779346632493247605399305280974911974096424710784709253733078214467069172370304404445830896873128471471731609259885835939134303400329157215134725951344853043032848124937787477185380171619474695797696402565896245292129664950102772208545950466363454933412907353591365699098295873474556971407529347842808980630818584599690489097568366175581735111692208467252754498657188949897941308988551936617539444045046999004556351524518889407550810502249118926771955926265200349267063718347421316713310921518965140253954632422865818172658361178247901959578923688474040327313764702494748518252279612442299144090340131906531827718040434629161032197925696216612053865411692047761384026428404664918034370172476700590021753584330405709794801833936829116543266991020371560751443335836433501545082520103413345120628282011353919381893695150349621184719363766371006982747925008211534053350850301157627850901009488756374291924986212462829606433372715714321701384040071630695298936942507112347747562391362578577009566136199844759588264770702025240650115984431289486180983539812938647358600269592925495582934897474166602122886174496592489124818941193527821687024559344040579831796032820635326241070889335938147135379856659552591248979673660596032639220194186814467727842944542750757570496237326216910629555668144198229826258991322778590965292628506557256265338437777306623768775176599158579567917480611613884196860723882384739298371034661900071883807065245521491996665094928071352462169001958385911760902898728340230911163012200764041297378437190825499277810698262438456761086337903592977779006573034499159222717896183528488859683841597699823742344483610865027700951550006322683833193800096210967800885737867790063687905726711608934385330662550303630395568645270161748607090197232091472944205975173992575061909692359138693178449490099239599953651598761456388111356716525477032902517196573399959869954517337760290672836754398997137641251508074343819025548946890859707561678979791016584931925674541494016876811296361786322034257586678545597124204410025827127214327950243295804115417776924249234642042577319578868253930651909348992443402364885368150606329858893353274967279782099762305945857088872154887001295691066167056430515863967079071381026161057247294718623542479948735363151268890686065182126667939865490292833379787122978365272567046529414981719986721392103442403154900344826402602560200486547328372493883213650276551136986181975472696113804798267314354767092027648867760301899498331603516859280348484980194927366982260502280363385360471336247791328856346669501271539070101165710914093028054542252957359757157438990265329811899706632669799930759203201721556121045212673564607870241039818366006998047674100489045533626642959403794458852479632484934803905914023557560160911403447656669464546260301377665438748799409854742692311967120040308225332933239541652902785062580163952066383489907872010155454187900901386064861681648505496814776965073471777114894340617613647177859618521344436663892609279787280857265721319404573292910537078792467177801118817717994295060519284740054912768845463400999487848900879192228947422805899730945704933610543129988636747550286891633057502361942339305909568798258272141458581958158284854660766076962982296394911375302151456225005126581091809944138907780128739270640628298187992132891628447416582468320158496831187900629375277432140078910804621035791383822367563068138335338913576343160305485856936713855433133344356244422483711367259465118212902058160011546492611384167341406274915788284832871903228188545249340005349153260609144592459147889348099659565365339558472297028859675953970592309795389150220369958497591163913139783378404292828082897437561083368771341826232382874654622621935957553253302037281900814616421294442638947101503840394582925152540708319419966051722262752344808538128385934376100751670996878219840978490035852409579385966164710414613827530267970507284287868476033897515880917263833884956241920493358497960953737983963639325568140689563849276172896245421097194387841943727381809830669406265097816174114136133597970104153541747257422490983375865734444416331959032468934375437605711690801575594360208898963750771992423356338218830922456650743903850436521042419994069897309443049337585204124724738080842001746918256862917355228501434582886952277889092776582560898350427544492148752401616737675437932313850342241376662231133832499283538125214373672638814666992076176159867055302013361786891162150102372771644522205601873427340086746942433945168020269523759455538404045584618153620269965784869489530491765115118938568742625736735961544588202188966276997588723694710634866741694332476512435283732103108160821460320555017805373535268079072160269758557591126276965687467254527639650286855784854589917500434868726769503024165374203206846436108501341493420012691262932849126919199299854903765734962797725641706707682524250744084146808768648479135294183252738300423625388866651489883782549655797770269779961084833851355735014741446760417801007848141570008493701443309866942741174576238174490686128478222790463980023160465957679302547373451180922517723323916954162336652180610223491477697277753722746877329118681170364918313617300396321752350903307357086261821047722632165306957749050428148231415365691701746849502256705311195283277544876992970041248688933267445011072521578107748771434423172076318778008970902660182101111108414029809110588395931295207000231466179889079271655409558971722623978581215885813551573938339973875718587666540086486701517407252759722363180260439849323500796881834726870266132099773210269270079966995158250541813732323924360167047044230137095413556035905066098562567176870984905235076752276857351547442171699943396224961134779058655807421656484220679856914052810578553750791542700807677260767074133541064336571673435284322693736908081901024972859326738340534830766974595598432657298359810397369707798849457313876964603763677074652176021666733543895234165388422650119667743509553594490366534185905020769381474789223410536927571517122404634361391183692886000035858369172453135206516103811163832600091244981906633108326840643995529843053013546068543200690206624342148155529107665467516163343964234070561249795806304634470586884794851534393698851630035201217488646655627140597409217863017393943009476603465649786965035397270316906685096188100226436670726009746588666202839053180822482472359544685730849778879215293907310296863376626895662053076880841685533465874141460271447611182552261584848415297770815683618169634624798101161910317032796619315356966069925940896381108033219700421253271967795156641336302175782684377709231473986842378604698290477315956301939086228722933396377923199931441648109698624903299240190145553997673349121860454226687517915443418470403884364251286284178527235541913793811881606708807032530191152152034568873815274683366011088923338396941722224333622935644920927288002665510309580543510484840527847992468690085660366388801222899781687636265470588643708569258343989926631615202876676888233900315779405123519327843568254062588588738194592308534225051808446120101594681810855058136446733513453136570680215465361947183639821565006902269300572037501549873811351725930094205811735138367932743346772019373852162506742642050281134694208315539147708782209663127899704070867536659323533332461336490207890926498284338329882421281514329002373070109310584132418978332036041818091957204053971495101531176175277696317674182825962104052815991642255602808261424080253191852698515817185276304162080377427746442021883715000589864270684730280798414176140414927116047629231295565785741147362958569341927884233593087083169666720882282381599872695161289739992082742935519090200649035971941102578848041707796815853031247130124005867287713468257876859990502193948075256363644523744494167302759921033068103049845295135217734354246545898806584854651883633594071964293433088620331436262774649643947761977360828175808487151255970063406327796885972163772047226026175101478137745300138915155566873218594910070475983603125954437543360857225126451331462270327061424639605390567216274442152819322152690431902497884674013141252210150465097972388054279471794209759111767819285068096927670383151744240091059917652331050214824132530385701475042994835745879810012471785923532767534873284255993185095113088905876356873594223774272687774885619377029864137002960563063343773837360494752229131185755533407355510707450869369684235445848488666687120045564759302305673074416773946704113624708458134038945981585589249221423565935330293540846823148625796852659457922709088562003713141786191286480326325766227213979632986520080183905739141045906093576342175661528034868840103093468808331274632249155245450453453887852086585467929715131424621075378887065756329421444065308132839054984935566920877190080402913879710779977002613692889680774665916792016326573709158090870358080320091215657352263906706674008109640719057777155035698604727822666427312533374757094705766862883706568400414230802374424128834975845340841840385915912048906671238354779776408442205636191477466177624498622198173220897505612617244635303730576038052077235853682640359351356019815110580101680551420138427385829220106701841849048021717994325280552640257025366742453674545261608588446128025699120060405093919538106462338752330948901919105477364347138613817457419260031062039944764905210824864062719737455932012146046512273075148918433034214615529672892178414851318898739177206903648414827568995214128791550572613523466087783415196282038731142462436232461669787981808630353223945848768212749280950114759465665476679509567704887117366187518019085728765383182300876382036610642224307611648302660689650623023287318728349092799632628182100391776582382238432251300168591137514667078153315303074227268290390149990053421012536462414100274477523102504370840860588499096339417655908413307182924253806660759976561357153603754986250442060470137648949278553697462430219142331010345780618984279976035447591399002327994771329523795130576848827493075950234748785495529787453124749407417290466100875989579725268016567368051456232953164165577938688185668199319243441451577181467019882263239278288103223478070660828868220352417538619451241907811416520318648559042315288139439422470514123333519631373149208418594505538221725146218020841775471875849317589298970036601005135270296237626981488555325741256439831385031910118024679451067339646417114727889557103436658855542066194373504234500163156299823842656236122881493441337132938509643399626543893847665743036644823900594538354507606242098542154100216391939402181933499836610862595830796466062961139736367632884019826259368989063457935175598106895843061789268914206523036340265421898158382314896483726477378781641602439221435948598250062970969923537455693327872703840632991263702365734601919939265860270409499736214467343925114595981392194728499721397048099938144095206177060522935661176435042341789739278402434332549008018840324598667946471666372853779682642044604544338978861784710971083244417632338199997975949166478199695326406606289572023477607849609476727098494441526847163870954555858044112498914477075770860906308565296186633450095809119103757137001769675410798777546965553683486267959734613704759526605382126649878097800113863347470733399921366833038389775947403301768261616288651862834225760709117804629517714822734716291105608295895439379081839518150084973875184056329873953357107577398355076129301562049096913251380086084494613238148318856052294840991808662352030562722102274735407895995236598842948393116147782103397857029860600554565016700025118868444908600960972327986547424277319975920051096548516941672773116486298441919644076182945455871046429812547809701094807911296393354965605747470483607702576198483141173926821287196820447719810657591497625337029485621303449659581843002335266364965534673183524892122740582104074331657872291212829540648344686204935620640026535358430402196267517168660222485203273790907488481973159122113575107126908741199292049915437069976708868018344238104711618411949993821725310968381694681722715186208086570490536346841692703209028947968269189445582181872796751782294610360845715997474647009513881268312727817497132533190315811760846429125164219564327883903473259454987456015519891377903319134428368510257856185055558051968823282680190549006493672215065925662040040012874569229064921710722318820589643936642454609824813599890873075401201242688976435320192856021692664962026004962276730886066625497882144350189092594613684004611758176431626748936973094975258421397080947195794339275967144127273111773848266250055304913570593367813918139946405987112006618680569448343976016331555516242833026480955028739827022979475389558821838306711386671074790594248289815825482044446749986889655424951097031725997082824956564054597358016879774919346558606297323138797467198693888746601777613590305174114431167746419833738327562900708683300809238083781453733690726543227532580323278436899036136508179720804187886722040800895233767662751050743779248936245921320746062953764249355660033469724103551130429166870368788179437013708668376694082111244460458745238051034852119578840355127618477747633542443792380746198921332570063351993063829989594697361329739143320826233510041184427246632273786278034197672393467142475311214308865701654367598838526496529159053152164638347843152563630312164836136029584930949251319572554017024845939561770587763726101440253918570129349641615258474405457100453040211240766857854962807550021398368531631002417700360113506024639134817974083035456750840422408320719592824155530199884380015333818369829834813068939346172870184125516717385323467011084163034001229760090684818353627557518747362003844442390339869001433703639253351589205384824128137955200563767031035284420809925372838014537055704884591207155121388169869298583953904234636410222338086822356279324545437555982492569938963148894845920800414937009085341410070690269601021673366764829823758029582505833141959659292684695280367041425408459297218473923294794244653002227175104588398513992070241853768097040182393590746598718042609509793184846319438676278951743226859232767831982091062975896913744021710060848883388806187233641510439045745640371127874934962318234167057712985596531173644314620045563062002578601392934277179498565779910438119582906143335249090471924256700090909086665206812042201445182394718247618097016696104872932358874825888833371341406119978872403954121030957717893846008899438444279873597693314495612272599618180492599249102486741064736164410175567811547647868495183270485908230204452512776288877423502377879134633172672498956293929632113316571104603098486552868733479306792249253538206209362731276961851725943908256557406563582844302550484753087537758008016965741822882327850955449327088731059464055308121820650730756377707975467749182016428215946430086211550523109933980928043884447158389236605572026945339817267598269267154121554605820815605657451978211918026365030009836358094390124378880073675320932440951811942071270287080922303048584506927490838341354901638689346279480337371663208434225170169083350954863661605658866964348979793593622069922734453279413151837519014924286487109025458672360377618901847056091196606005840286495698496753880039301333029778042271843790402079281331670720176516019389273070141075884073566425164026431719614210458806734757263172822337584233196015105411747045995975692427134516571736658368995596683021722377310428663830575229870266479496464904383515880407386248557885338820769509969120166178883730486187459566769476661300744707373181070634103289340389858864024908968241061034796153335232159183198120607316194017372075166178060761403022412874383285801683168316606296205179060031300154401241239113825375385756679455255600849330297974207413736508386400459687544797570705844794958384564444442511344052092039512684553691377729214059931734918256404449013415188907365217686203494556350400925798339706736101606289640754895503416459475747108543670590698653316435590287212279217730270331473750786034542425343687917589067107781395919241119879422970524151854852882441623283259972181264703504377879354875604872752784540165249354011848904997668313573198295944299901854148033938925592910372433448673454183460471763248381123562177865935391311253041063581867852574777551554074365114717073723707027726979369909168683506820508137553728825782828416575778687572345333591688021004261327418952638240069683645030368070033060626714392971803391467939069887468997563034424350367939594565147419000280376153694808140624211040110255408092291511551856822413650584215954729733909682709778153218165343798986668224242179432414477053280899008873553271815937167129370939810577440785109825502897757041922890693339739379364510299626556505256668602337402480586336791002272268184628618466003584840501801285695410961449470496219152195965110974235915079632365798356407370772083886473857196250730214423776979095978722455677722802004960460067841091693878496337782998952077659835340742469733877328454413212363450293176312742086012157290838931598192139953172630912912414208063863122375560195456065087291248883012429727458727236415543294629708208014830306359674208693705417225843843536775962018903418374582134878613361970995897134590658740318745799309788028697824726294799939698566649816794718125447233713049777757398888564478184249754817490487491914107101445304382091494208405442842948821593064053114762162685153036701257948238847454583880881965044401634844491505793359459958500985915807354675381078192856093009604320780249762134416436458613126717625221577479375695302742495173744024245256989911263408281194672948579536414706621055225877843658529496708828859281249317232406312227737249127180613587333823246920798484284758048042170642300023033833014336811131466869416329469548451438345850204784671524832027829375013585000156492874533723934041054318930171147748115860552435582671998724773872923607738338381894368701366556467829035041443445603237483295429359267991866536813389740187039287366062936044351560077522676252427311217817182253506892951036288956042619013460966122351402852643756719857433972393243221953120545672125225225851000739779374225803185500077653445307383472847898748996224850262291859807644504572268146958777792656487933156592176080021057976086727887044416800699883220967691637006685527010439065565018096363621494206135502379167373506795135847212936608128759987728608880709570099917871008605207028706644932670125171767191768289952634246219791411436120030694899959237417719706581276719595367839076936429535796177138120694954657200935227008827929653320905035877147740186123613330330913771282526991597616529693326413113037276272358005275139874656578750785574621221587473888286211212217019028947373066500904230087435978355393462866145081091063393981556502372334911017595783636174619873356750425792456234283620170491061502442855255867085585374830871445582392681402991102848240903744609927958321137388222991490444923974265004611931112893741884611404268599403503787322800801697135710263500762120641445925078157110560677729021188367023670654557822745491909039889417934726319405984149937166929721817731710366613515070065747486201237765674237655097292042677051205494481837997572704517768609555405153692808886799824584200079324308668030366950102875953935873023255013345190987287077690776991975314038563958707786859904863788183564817485701911393041162468202273167392823765714341185432770857802824583381714412022354104978709474354624262464645673586793191231624857792292065131220499916167962148958057835140208287309143061781766572965653305980522273266945954954766911351034276414145251506121999114716804211333757964383777151800384922911532300426174511054363865759691191949332068420175404241752134526829785006113517103464166238499570337560064493010691927482779232128305629110975145321516614492178453015385633862424693212128648909194109462603339938739971561318262115554162629185949809731818290774305831695860254589715960616859627275227443788458191603266454753695424732080698967956407552206320090863509074666095615558661767257760761953727017922360465361657013280995926404119444957676501403750127320347720298586887365717003639320096661634979412350627318620335847961483660103641718740481494135730991800248990046392196840018838802371534685522438167876109159216096262921945332567904725034612347701455166499312342845911485194392891399498154717607439026471134853749367907647390043930332639444741081484850531580694590703489623517063035974623432760861333163549046025625217444958990065145281133739753906211980546704340102904522063860432923383333782356159605377726550899727614363697810774571847013528713545181779323682637075577655571014880737241863843997401373412274692359656998554138497665014641868839362671718441684219108562986099874244744160148060845118346081220188847949398183325199755545990840665473661715199781541598844313531667754584998434837557046637005604723083053060021019604531550365630699651562559992356706186561035836636053138761107528203853311766965845223991800036605696358054903755695917721078269339177868800251572713014187104246633910595131265526226650814300543714179437347744123648163011732466855768566650434639518033552972317105620992737161534871472377515492432061595963739031033194233199300594782914343066217679368843154431631906616963647036776106701321759020721613968108266926497962921369562738154675976064514210626689275166604337513989896673104799045723543667481030386344203760099315321999747738216923662194167424380045715265333461564006757624208906159139311008518931510309542308296364866386928442221797730546255659396209360152246072346711199049017621194935701600423460653717652889795381739819080988293514966590853303580467047216746977903793635020318377071471789294544843407178499015250097591387409545630660753553232855432372631167764994177972834392333350892644086173066363763968077603953828729311776664378968878999662735030647333569836231309760284135723801667186586278992320589261174508475304408731832818092993190446672578451302063146361404224117028558134001163262025707161307822518681493095635670987424404159473923119005123173825618034258395427645599948919705862874386901420117127376347988535756882409619839241151303295406534982762202190523842367332523942780580305921080501023585927682958916305362986678985052095871635965031860616211151779302328825047899481768165719855062682981914090284544001875336829540267473402866503268114347396811698676846549897169439805197985873124189876832774739944389642146786892532143714721641769894849770385541768586141660133536490350332487121870269152373434472705656931836903306171564407197021080262648804007120981486425787953788330900482789383340934125714366683917755654470015949764656397683234939081712316263048591696870551431038658475065081396733472035723614301199930191723833839791117509729757611994400225098708161904505979761266568560986280576027154788097830303084110517671814429434620489552344557589482245710344467172313961499872712598465951352846859390693611346521032456592328744153921653431556447074346385853628145215643071102699576923316296446060977043925124998831307612626104278612651223512091211885709478885708991196994234877277375815686839762683506345910726535756444992056676268600202511591633686168710179113438290170657426607535639281692066241815392631382838379561370749192710808176387464835597843421208994300625858943580625432298452073420366021176153113887031582285993337480617908911174133473479019126982642845625931311982176226538862985456853654902141355587973057463292645028121149307981185578912239254573451701753845659271558158747911047421542277062626884941523766426214108566036837026140922090470170471505751411387922952314352829807904831858531219759511516521972126808513011909125410455810433144658444688236112288479359829835686880634672824487467901661443757654375477789517747876590425040909713528450569689912867027500295342484031720212790522721934710473828927669544057485344486002967518306354990801368960164307722084212647550196005329723919316192151890623892310229240392903594942966084219175483260084799011535056455848035150492475786935744369141391631457742267872993518655592611393327811365764068664807601147759395386345464305208805305547998152216925531235338920834146696249960075241553776915892260693138374624890657349289870176707635224414580576167331686771588286182861113016159775748962981736319225611631417668498121876236031663061694157028515580488705687262728209289389090228825691112680579833714578946465060188830204554377583076442325729890398460416971189760941198590509246624457957460251141486886619826845808885364984179019705949995004054933133981700435284067111298659450005874936933815852377914101059311900001482775889881100833679217666032663944315918395173873499533878632951134500227376029621958368751404353704006092783052878822732270438301414199167184436265663271044560487667632285946700878752684133666217958333830626870658022448705880370599239213820901429006689077190344868869032869772846482802910285144675573998199130850426613414825742867729196204829882847883066104810505123996208501070444943749987140553260254196136745767665633321249064655620794861067112502865394053541102051878337312879062935152921710403157090893282747403961022864960182094237443597683927107058196368497873843896706596714078734914973942969048082755315371504278878789580137815982967187349441589789364731196636403780779297257352037100089512122539008593853592500823973144943411107638661080814530360425315761266821984092042308146693557322881100691867007833527053108513149473917005918120506273926266136566520629135465697041344459070619299115110860818026507738481953159547333967465046535035566249472300029594453820669612699422494898357871761705334649754278348189198337586099013585333466413690385633618033863960403732266209440814389046089235564763463328193299412295557653454190140297844694525196439504324648597255499558884139305964748755542306985258286204517155560007142414201620639945557075191399487269582955493537513167239903308737245980781353226670106774888610641433422841795368449632740849061751795888751416636083161561802410270291471903925975173580021514572785189833646111243960354925654500106473443218735608510167742689207271698098978086282867095472135424392149248169057438913182797921573619863388652142500541093963200335478993748196935902486848296894257387063190406953550989903266872513245395219917286514745956824497688898688238485904483803321700183309958542575270989526300376283803918491526931538634295002415124775588358134326371818333367774268225997102465080232109022661563056033015382247074826706023159278718499092146884933592946534407871145272734585488111801868007075004810620598475122045066217146471290943301160931648776457389060235823874829866613206190132802736033825080597366437098576289329328863756684520558362981631380564263685867027823143578907050043851640085051171477957304238429943212636951854915315020662682669911411799444123636299272381809563923838178770901294399432998517160749447818154776293078473204827503246318935422459590859973299282848090629234951675973306212049938845350942645327460598578727707555029833834337104399315282456264358369050779227162381060732279529632674762009729183540205803300565840263599867801605812842939565004780271351827073462512202005715039086282723238836613702610719929398795533489730421643759204025948508230289393957540097823410630433085599445841341273434249608279690204605093303045838061643980414908076236404878835825669953800548726460681930688294943340168053926267744364052221998975921934117508295314685283077420327266228346505187845087436057846556558485120430885804242077204306672176121924365875964375418009970701532783800691887802155978540677631830240508619504651825856047637361557545815007781284710058118266616040713168003648098120743038282734282493021640160568363247098615467575677248769036182651290232587276165576978864530090893847841637510661506343131750469661976139848931916001379912237542859817570448230025347950471599890593548992345771431389464230980469868367256680203498694770913153874440861169972019694708491472548404268771814011587493455498246527860205784947181281993683477382822213018845872451956768027909281161574268540983657696068664342049679353690295677301447369454960757050538840175164891057269097263971967529239489926277726576472980116974895147787936881878027779589868392850844891501923501092243164010646956301405704077177113326421894162450335744868060793543932028528019682853620606934279840499885448929830333340147411609724905653199695781432169414190571096157947484541064179458476839480683479437947799024206143147771978916602195041750837836739274397665125809445904304627820451588281623897022522135591658164752887051408543142748477264312870495681909366635117579998775914567448237163012403041289043620531059621598054818345636878293383656438905256792039825503952818651696661919094575530427609955716746378650051056032846763800746193944959691990268098518772094480415542747319924204901603943021526241319450293889714158087283590524100180241128964691958785316293482844874632896137413470085462305548149787885750318653615164301437746529483314773371537800926694834909606517243438674007407577470410032715553202736577645795091401148730611407814290929376277379968150834781681836579916683257222233982665168543804254580452563043199364956834294711063502803899713736560745911080954223000506782312671372232877604399953451765765037175006437900501473459392268889093676143466446256620372777218177763484580838830487986793858118953554947169025260424682415850231944342847521800837110130043902247558665812475701521145434016186518358554496978960835819771835816574994151545428603502737070872757192623555124717213502540814981283460526916822716910558193357840685714429625470436761747914750599120937524360426363229768501229129186506895060100359400464576491016383319383008884677085008568466741635570378729132172223709370775091920203593014988629230416574920956987011231315665693616246484343164118867349152010894389601922788413727828667170993922790134988682849766431781657083143341716673864134561606258509961470957179710640475198005097595642811223130541410162131880777579642223951691403456061407910265566424881725706257693742589025508998855010032040417548268924823171774928335713580690931081812731142423853151875643863665945958518321366353960534831803304976039864011850106405243247210608458009531660152038459113179609359537195597132004213391447872478465386017243215965807149034498383132275629837721091906227092826617819175019024223792985067365178983998864104108979403780046640362932618894125930309010680953319435432041529893432589385960743053790941505110312247902767637719448027730278901455452093239074048903021966401375142930990276283644286191544743417378593420911583482355244294813433507078032484179246918843909302890276660294924420724795470624348536396622212447166450886485100821546631878957319517825205628819113915200718070077477589523326680067567424895300892069248433178612068779994004906569424122317231323486721533498660703257967711982245261557185262599860505884523570329313003681759529358825966131979024197182014785088631702424287783761520594272203514426016340449913971939479094334519672174998297742181145861081715886736273429079530525699921034467437669407837527961357483257337056659923854072030898437968443954492690961113641681359248760979565632734485039444262628939147101008270548600863721095825227021260174669527212308721419518638902511945123075511928315255498655508599957061101288981181638609695684263591568501980803733701427978941490473191112900862100695921325138211558519442091836711076704806695638322846721084065022639242370836919122576790311056728760472556862115202952973389581533576540446433972016216393654202277883603134012572031647970129677862203651657334828166077445396153865479796349424877753581820686081861191803741602781593829170128054283280332369162517380697291818067569329015055791780865619809558656925407321819422446806787689077576979618939123749510856709506772350507464755777360465908146635420859284555161198645959586978281489782909289053865361113262059203743616829067350001521594673998191696552224746176983197161331600711106481923738253853851203550003128168681969644435271526921515447083062041331124691540300066914134027167254767253660204181017361182318146253367433857826810263873166718302570142072569200316180125050574515161271076661763661683800594695396951132828746980526975019981965126676674207951209311543852198190877324833580400815314289993398536619481626853031398844893931933288649783441702319328120943966494749350897309068202784796397202612511821313228276853826140790409824210044107250072597408261445225346316011501278093542065249203624355943452470019621252828434573338509166439892907587423039879773215833857731792033915234885279510431606766662580083039980582928631406174191096781380854566022116473079783349599279284630990932200034028982900356214827531284744938732428561145553691825144999199201309884208880429123383880931655271741788140423396187898974301183996634081437818873080573086039996811490975551057721723529349508606701100926878912635819762037606930078447421521810157226086129977635772883445183914572135695960726160964204584020807783991286031619667715715140577746384946333729383233397210919878727526882701234277175714679058529379096323692667838714864681544042233202029084477320969292388342209820167204651708300736638824276980839408654161967578512403885750066949057572529821572569595318309212721402453584059663814741838438406270772066686834166588270081406544849217795020686210036993801724967912257423482599254098762208400414842857873521378128591432020206920633862075818421373335189202325480488551756028504907374488964051937683175626697901284597696188912763283948986791550190732596906549765897546890523968357001603191234170583174143446350817152646090350615628726846644083986117083388855329863985458402230955758083440577640126404027378973307106093676158546260616812193681808332539450858260418424988316099496670839704897155723971169594472444579650238955674584471691815186259161118920397896144118275210342327627956896064980345653029566831894522691396868695378315799697917847368877503615792288134194175523809194030479002880299127539193640734398659469059469378614799564721542806316909816930007459043942230315071471543921589460004152322084755872654003679789918463486499359770568357184358521942320500336787346816601323838627000244895602828163992037775469568321510465028688876006167270397047193451116429014261722375512169523653976825677348895658827422585970523576751775222114247574446063807554975831081372350778611780852162667365373523040505781322775221186361315009670871880762378357364844876186540400018332556743655937727880787259884416996725852110106339055526968286874635032627262676797634765024936830213813896715282187100226388967344380755321625858078853186371017166305575116279634567291363890722524497731836666774391687417896399529338147373699391142954200469558591514437773042214407061530881857763691052614279393272539942069809216545994753128642976316691535479043516028734695685643304849827719601799325280511405936169320039480679906974828199611611032509548768840491740833234076688662572232883206530435732385185190167952207977929198237362539361244332791629531577607022463942093247067391144512127550909156335901645466234342233328061663224075153044714120221870680826492911128331981041449661470875321574547563445321567404469449543523371522816868224942332183116517334009680524104070426825496743173083455103389675719569485512624173387191730370310361541577068934095935268735477965653545668601786206732881723044197094999178618245674468781590099475769345648683898149263778759358523427899824898797987352576842866733401446707592042439794151301305109295827130464620219597864777009180516245922388784215766055882368961196216340724984326967126274485459719787560175084501333364358068121396195292901407318045140454966991022081311603725050139941382817376081794035239734951269568733104051710946043024794239045062378588678928782683618486567647246499291748402625246585308396523934087218168731156248541037418146607211882244596564801258350051309372826366797815275217889686629994494041530210203426664592715730643911413276588040912532803772388582303434351692331832338857997311785539807882300926493019360765327806088063663554290206786238340251619171556792461483341217679216885478060039745894439425300592549421630808034170935852237838350255796507763875565678604073942731998425774130885786331248280074854252035437599680596598046716630691676120613697522655044103242241204842138719150365987114601896448728801460767387090322544238208554922854129054137599917242516559305229565825154592897152226781227312178142694969439485574198644872496854202123847075990087260224683856819412727574745284482121771542184444439282896675017336286177918733896441560073850905059275953451624716151106036292275448039741121599016720737852945801836435042574749112674652616714650743385075160623767082078664384930838786944360396148436605605743274657407514254119135412220066712883337187521522947899665773075520406373104501417359457421600610997445256450740910528700019273208120450635371160423994380809700631017369553440372279115584590652743867829085620708190749751020028258087788856059952253793840029192255141262409285622682870391526397929977713377246801547209937136081041561948592337807469882193283776630761003036403846499843209677505479277828794988708559007179590571916412261485557687170667350870916306702701937608282118326392355124669409972546064513696589774607816327641848897244566214657465035912567566235492571235165308589552348561458141101689062790049665965901716863131919039259215500048080780054081094396571430501040872086796082654260673833548196934747454312795785288629566482542035467903337182474574437071337328466859853910459114175536890599214866117599442565188485587664612776866886696947091159779238205494817901052064050274136370216160012347537188943690839480563193624865695362918650752974133944760998605257823131767740484489182781988259753359623350539391322644137581360581503680066662098373193216409905083313146674605194888271288107261359335841745801698671433323394655091376656190415683235702986374026252810647357881797405801081604215570648226809805585783672714408224090385306823826804831979181657166681109311944604601683156201324750646124530267085454854475265896352128313362949181655042950128550750641679573864871804132299081031683684726639279159426241336379747048988676476581295908151117246746345805075112787752995447737660328929632269086870321088280082952268983064984061509760566013999789088118167065084828488803348467666516584553793450984123465932232418709565052774748569901522810584864898703939755287493928947093426785661801506373603759717939398840265182673367735415472460722775760998911118025054780342857254614993605646268877243503036293194746349894653220947801728431746656259699589439972831051043046726197829087783480681853815241190700489286108321630159164926097053736013560492310939973395373078882808043550129323038240331969759622277836549451109802904135878558200497855209043395300295019440383799740113189356665716941142847873973948223991065815790373955103580417609928799256209490279242030719262010871272608018583710248506293245420780102894114601543829691027982118174434809084362741884033940954310771966265510925352780670593978226421595372419420582237036694868227546205556821788618084799601051416535060309986241206859392951517587255238501207615286521335468753986776859372016156218836676453405933941306204598529368728741804018044213021243034708008189922553064948373496103077342309860971544604303177981498532916340677239913780192755583342175867041489539163776545368943713541600661425817534228669736723696107296818896661856749861621805338823251046553416493017451327901610604571199326567728951618155050112646839809106383971901184171582169767482660809260714446773407527301310357065054637455713855697890624840977847217595731262190520226076853088469353957032598745023314798647566141511972944728777627278948697351443430830687619794179649164738977276442878447448187213268179193589564178376071779732736245643305474014691785135102401446796017270485268780571413580171927431810702030488130175728211656977905779699803340270576992541028193008764734246130955242372890178640860926801678352545021626605346048735431840115195229064477197793131599562123342560765792640491403395468478124947834410679174288094937273711869302415569461813273855582646853797309411842523784767828603739722217463172513319109630885453189128588455060613898021166740950217915675979459972576157927180367792412036011422551349625963400942422358090788693604630927227527967547359073417777512755904992414310715847376067475214692594806633091440194674793451876855271821546951081311940175653299814297475418829007703377704642736664329914492084484824505836329911974308803463672140084924239914663860889986749240469146576004084109956887759356492688900024405858319346061914380388103192062334446323816291650635543465941059071025977268152967785670214804539036944144400853567936280047120988395631043683236498347184632103147291155123641584419656204000788650962662718543577123367828524535022026729123359362996366023864326581969354614644770049673387016728513515757914272368463894649063726078468877043088404117382297064487143783717258447614149582535105998016856666595072548132282662879218201566288733298678704215477137609677560425295373163486122080846876296560215114180571257510237611346957767321509396351827919443668029893565598662479809165601820370120962333068745930157658331556988308173695476417532888289351116724008466624213338411363681994023669622162282418852238878388994981312690723657468354005077227705950221257471382492446891547985149569973593484438178183052754721415821559977503643562293832668785250080889582403763815922789696892793908021486518043800944497013771267461136739290222120292761338187365445876930682568385622431964502709127051388655965517820687215111238699071515395315824246421799392478272304699156583314091086826505922506606448803443899967917245482570716005226929701957043359862517962151935653321266574897818764597461870456530738345123677320488632532608316855290515288950945492013214562581857999978793583940488666973253962523058924225318630539266675652620685474997345229730666557043406196941215117380123716017050824588145578334780316042954421835615434727629867964950787897318133320656537961964974901575081659731359588695899131867365785674942362569435745842490615602640943725002815416920542605543991708391321705049400693475675764233516958010767285976626164640457508232505015860103513377349742922049926738744272541052766251116945069722529970137284950252294639629775495627343588729515351239347598617660119611555165003379901041120363454321269177175845783722367902079567765059503081199966246379892415044675741682540547316303399701428686338403568162867644322327847345065940502481032765828355700189080886948550860264835999145549660691253709535889550651831790974611963736625680019433441809770026026163135675798009771512784753444874682662875469562518881189322689821379785828902977367784135037858760744812663845346771492402141044947896661978394527291218495356682076966626537150500134805519167762920779960708230721799386550302767274410829813869555817080655683073667399131134678978869803715027697276019289642158833981381820506919897610425816342277002360374098325097201969754619829583802057241864728102286766235796766903575294222659786999607662233738283659940858311752272163362013455050593559923207534256127437253610101823843503010000878899584181220171870513974907811340292509578322308602140566999277220920090424880023387095616062553420369295078687228326003649598884056083073533305516627692229395325664081506260846469806118414959643737658222678137821664112953968919460439395567104161569798234678061984286211390118816700703946470787786586968551189613851869813129713297127065490971087165571269058506125590478118604646712430041889671598871364309609207905590600137694623036134160181431004733303891851061073706534038686069216943645445693510792928589675420911310093014963674802359153360633483135333587076572332963980405153736949023408780755334077859935882073781285266998389749098874655359378742508649595085923896385189029120414059026463718522039041303581212693620100263693214135920898250906836718441650937032256008688575756306184873298331958920855635605892270545353841021075304698156961660601873387705280962261932552856228536191068173829720335862661470938518383838281815119951532095673176143052650816223700430677126877722208072458054931727743882403445539055539643640704525178067572212819498110172211450118156784706751314571023654380576585824737379366566236880838570702960644701987276224391386397999153561150690184348535127767834965905115242254006215522509533247461551137472193911927266852527156150495762843373754754345799387084263111319851232453127856067790162223020939917156214917230023313615484033758340324410234389559749151920559981981846562739715343218422284660744417953641847249035960848551924533343320924403255285847424168600317264834562972434949699965478193313669262586926911908832886858172817298622497169305872419547945584603564704367609424845055504245455039149392323262704607787272035998494721711179684892879974012312025332652352973097786459453984171611635302431847542193633165101008494363691498407469060675110841974806478568967028058807815454913536069058486739891116203303545952047259557508018232756829492821344164028920696279381853211571068905246573857531983799949790137675496089963071533146310930432516825993650054121606761633542041850384751657637234354271032859383882468903770027633321048173224079812470952541409306834291690462370910478875585476224288439648628682636041895686989492648695714896312454001613686145958834973221134820334708410996756009194553605404824519148507405521355858712763208311842964505767250301169811181237986658192366973414896741644889364774067336376992033986152085528597418396363100338341627447162917938044052579098875158660635796739736813683457588691772615150093984371788072954581404893294987627103964819984282704758155276962748673667489187481218428022286083274342134907303608331882741245040510715724872947828088291548341677725966079505398433520988290879992177957151626422558798940977734400478922844727224854483476190144839327060130017342622048149891558722962287185472785618168696566026756139781225168213162651411364854221445706883024440010599979880565990531515380846079078437890536931166536728933670726894558646775919483490637361004572468593300115874033586582643132334246548032834668348823923531195645184361320400343871678857804340189208285251762539797565587341000035040776979249795320938890122419580345500084854703398883487869736738776267895519843511472833982186407454382860086393742866020400487393232605039121116441886399964348689859535936895487992493830370792690842018228799499394469855326658402197150118818139126306037014830524895743413568961713771199951918209876628919636585788317950967042333430522384551784703473073205505145039305991475640609458827735113735709604984943513511602965937495681178979744736153447528295940187524246602026037900326927922841064940416355464813364093398035431354613138019167197296020014635657914650203966166622114288734771226644242515007136662930661846749348997877066046185959921914640632086594725910633013979525419532705646004034618836127179212678719828903872136563034305780895084629701721441962065659016849148155514254111158887778178820687303108496104158835412263659939342920456918118017979301073678294362358243647515903247275013709266670655457409504057897782370592782995295284230686865715883077672059728333708123932531044831191400809606067686357573217888772152145398351939324724247102015027120851190669909055202575899855138322423495105364122705825124188019441443559516347767009734198862243425383181331165361929912604995021162226507116591836700708928312759475387055094668862619821329003388272571547987930770363738779318713051661626985935031447776716083929975631795762676384352776299416259014474150226565179825545927504894693136307714215541259991885203939222225370127706383068995826313385891859467456691955423698367021979305905374797245196508183470576562921392923771854295046800337412884122259895489150269573428841608815120036871688974912414181065582544787100922838039241313318036109331664616311691679419016275218772476935651850176691320442084408950534600212795449955249219669057518244281211281974954350173678990540682348863911331161118646441359672609685636893878868076657301714882779988906052146835541297376840004172987215609300077994870092624213637924145410663377309329132500571311114205622980424708267820646321342606051109374347483654795878824957011790404292174968147026686234931002003304501783813610638176516741165391566180074532849658803019290437726716028456679332978670140118327438360335219017162286154554155843143213612827958714753434459612587155682102328129819103089976941447797781409820856097130267900864068391600103893124851135752444678520596130181429095105488772671787058921262654990652682136800941120139331050786257510165438326267326292988804577634003315388840117253112272088350941571989739552830656148072008315671797914630808501037699683233534825696622812682118089190064447020744020269809817653944452274686861947989280989734438823233157565842632962742647144491845891295738639923404901274437423600457137371964532964135215185215077086993840822375478745464746145337923310806476065639987722479785138359483378411907481715039555736045183068492078497021439330623967812169704522442450943667523999600421472487691872942948463825333041109408228948006667002681771981958999817826373140799279650967070255529842395638719161435414559106650511196343509536260606391051086313912432339710582089269235098082130048271975017499491982724776093768589619869714494067663439319272010873534025154510374291195847672965279743064506638214328840451493051432042718368651157810325851308116678335777266098205859319007075294936909900992425750673514669012782910746960419790950859306151032419229138275922864814893260936393351254878372924254557217771441580419114033367027597270528072394584895096195318570214390075366442240969773471463262665201162037996926151866797889103592985923894649845492608291799566451151708305556008452505099972110373215740683744096164632849765173111215157945936715957894198273817893589330911893716417867294210734149195424082487748768101934514328493774289888222347185935587484539319031161317407658424543034836207786969897459701572178496555938239336613446246212330478366296574426437977678220732448463421315938721176963730857774344119105110321817472494116976662395178209481114699652689335103328200536691092163665329781693367342872330596230745849689642985191253672124951370227399879771241271621403337570445929331125543498952125333555781951143828740215213741372668858288735469788321506725290555481945133129504612198106618895541679449835378070401460870441540787383186819445570282225117191320357356345454519862953412030339415052377203718705411961449607090944219270273568260248490624264185477608894733748650140473676427369375326509059433712960605692859115904925999958891043710031910765456785855416739226346691024016015535369172690136090082877516102809326169856314319430861020884989501945602488464393245555483041272235461218080203276023247158301675611883992243761353634559317018090533335961559568271163795846726652116981044641364276232499733791347347768858427785960337855721688718455593802750045036015952105017873237176798823495796910762351016450931833746490522446982079649982427322065546742863127386258446938574686275369110418606694299238026439052163124836288288938054363584683109691233181447685080432799710161572538192175786348092322431035977906984426542038184905658826888479258256010305278839344218439178966702157069195958646435581672581007050467432438198599291728222877403622013728239463274214603737053292932766559758612228973163020280949346211309292582882160312511789765628797427301935303295395622521736860598084258645612566864097274080936743401505191884484489517495694501259156512240956750705994615698028740996803271837161769734749356635147443884514219211606730746588123775522829002597096135837078600337470415424945908921562700930850458972430143640180032582943604529806800342444495862320154113128937211315840898872358683878598558289962680186865805246386269292723296487051206993012869532256407676443727203816690576992617528571307314721659519178126076844853448514046816193611569213769806488468253723299831403798004048270885019731488740548942077890816666339316491829180706521146058812624610559943449112112533955347262297124877064990220731368688774172313185186770697519235748643759891443958754690708838680278501341058886082728820397010579088714656187806897984114753297288542644419124011262252578442399295447343360681956540134707557513546803687830294068383491205591260344980437612450709867821894768001009233798046748644461614718610609898050861801266675018825385971118756084700806149206970319036639487087613172265264330399651155573817690784437043412292415526094473944720365521780649953802828134946223143840319368307716120650319278217558570364052096523472368888089671912011376536314750811016696632910858626252405515672835153522097129348157732912135059848534228770583335816541647608886264280224635720715197757564265652933855163761815317128216501100495065267798508728670841409563631053762129270493145981631392929715930790053126428830028263006003074206495094184607474131675899262980128430789683266302607086327557843827001540382691760240896642282912569271763994013963600261998269716430336370228237102888448387062556606002012600238552117004904957935409558004559917783413082649244746565157503828552405045036252673018615012527526724746331260414233635609092111364254604983166991943219310345567547213019763636490633259485046594239028463625822193680713236521315704089279133908940404378434382809272516904967326462706681868620605862100940234228901389639542484224400489249016874200898640688754870449227585721134246573706732270325751593682195211612401182773602739758787328576933342447375798333561927702542364677026672181292831998515344553834535030647620111651568992493686632053305675943783511575295689427107867588998121819703499242087080260647753663355170800822580734293349736644303191004978692623591180847021573652333360772498824023909445164808762061662717616057993433803242932630052255780978372862424060136075016281065539483365489387634656301502068765210920148257409975768711888646282392819255714196788019745840099839879353426436315260542228898361504054991035475372526311881030592635333041581403950638519809196258403006731009739153458218338558972865893876675153731717005687033762037460039724258520161984875614776395685861614751253192061586005148866116737442132230736264217202600931441170881086448053364222100884379336424241464431598846799776650183496884336050751196065575202773809314847410200146384923913183744989093884147792778826206977250678104125085848183417117764351356039829405414250180937469086909735246841159475558120711693579115782970299685794026689953067680973501427472719299128838668830487184315612290209259951939954313122415806287535002574598925404084874499362578165613333235536600540777845093064463562122940130247254354443555369721823190215421442215373752435746483906647714918125480110140366785378386202850561899430803155226398186896074248554992495280835094164095635262405096660225446204203208443718258205847452441656238443897010798299270725836797739904971478667531779418074984706369460197272913539839492419593367400853374975496950636255444648454619988356982718108319473370102549086823917989468780214084361094717614990918424952902601589661481268550347847160632632851603421667667345751151267719951654100830607333521287944671752609308029127287605685022820080549550097491984256519714150967820366539295132722071577068187876131722811008601141168377168711364073634572599917112083546282287499041942047581664571144940271573862601120610790914518410544804243942176508091414252943723921374975014405841150682602307204337120019417882729345155291868619842001733739618084323399706671765567415049105689948673804978608430960343378193827507439558464055026578084567723004053921481812611238796033016002843094095057491813429377625780749321768001137728026983317605062321217535425132185329193573589550303193028618995567980832207671844818384221800726772996780367938740189396525662500570485892358146092025806689054578232905160058457319193478892280222870773431057184678074065770749901644857891920578015921990495651977408237831295476645299004339441097587522432571444893974170300969245931360226653337712432292184476632833880380170017258701585835964771010689066044268046099658234432630630048747581541711555269601739093456295213829769919262784887400315183822748042889373523546437821428553242157064433549075190231640480019295285714219474619814006019839144994066650166031812437190935890570213506407651324125139186229557157501746276166868636670494363526786879705435277233450835800715940025108775606521129808614587852321770642584472270041711541249580213085162821972299399627041834664267745921996739910385839463319328125657584147279325067504414156781900833627494470840652050565225620476354120006448728125191678831034656772306442153579702153844347461899771330630183127147305005868997680457685223213955889365334323770322170061872446202473926657142903583298804830368614918789798131531727948775290405967497489645360803369962570005216736229801678032170995855078937937380684859803926442084664596389278171161749610122760575626445876032477345756779105901477927970107786465172479562148661065061210501614551224380308512741199788157064702884627729760711696075597572177131810750245908700159756151545921925102702795512287749735396075268013778472724184874637992395733692801126928692934926699769566459257855569279227539389633065537892560162875182892304608734100844913940787237952408671861413942458001880495478028389789747580485284259517632472740681454189477055117775496435423239492977736490891324824577012738682120104668152975379883715890294235179405545062906275738340192430723037200435981745104766371932654059561578171962888917123891701581350616069024969733536173777964142026782152191706694200600086351758678650890990883964987897869350448950607694191892908495109636277228318748720094050783326199560883886693266752450816646877157724342733547324948037934787173796161743849887930486958515165540073978177594389592093077377739498230701271509177816067412882510030279425792082819691382265283051751368084228014148709023343474583418122482267547502118066957577673985484713598228906712128969351590128115825442671576354887898884479517676610440211881128249037916523152275415808044682951807187555537900542823493561701822180201987469975823945315285511722577634697845949064330461900676942410151964434408224244154482643774562531590610339295303123074596428191528119199179067816082835359155715146943678134699323940751598568222809560379405667411943846603516700549045799675377749379682202954629544909770601215439769005890466820985794843103823959353116594036802572274319856831425575573904137575180062795438896095137298249399227698060411434318164059509983012160317969080504347698760223402825568734898180986163506369232225165692862303544939921568716292148126216006433812192584258463197036730775133251848299338949682827562639506310854110108526515133928373523209872932728168132814186881520698519440922011605357678407548286040230821132872489392735165918030425651064418491890324445711777138829840925241084432217445079827526516835307269142557617045915489768685857673521510721702424101597066729744250907285917836971377493416092637805072633007946593315761052429408541958661013225443549979950540644307731293296710482354248732192852487360415143294814300084245012500539557203302900184034988149877917671840202757645819349234011163012227267710490684764000753202365832412881706497708703484668714240697391616912729608751034871032711097403263127122531526402275455424777473003158931974082186067569817416063668234572427666810125387695485134905570483300772328596609533648970674777248053910026055815397744118462751237276282140973190051935599763264647629805311326507475052760636522977038137140905950552487978158825678953801455625380580939131141837582820495969711513556290091502919287225003370708693502931133571312504099369893029861974944214487363939608112312292219367765882630138006889889158354844607796266858989412301713720758809154703122972141604761321625732757390694430615594388975566125689338685176188925509493677669430252388087087399664460735158212310404419661305092564301775582649718429273693013855722307272830853326458209849141851226979377459981878433866943140208430253845683524145716228096705511532315807654663676616047751609430363631931949310411298004723138663288305047325898960832162432576383460950232417655812805155611335447854745235954313448324763649561182826804930092404218785824981384451188487639712976134028326762659920187007288713086690169157809345196460036972113133714142164846952815637081234533543572654001356069273499518094808409314734548445689911085225348660332093421899137043854660975966235485072021908475499284793592410231711300529860852292323881688761563313665900988946891434243230371119287542728825949335514401900886461167375881865069842877876988065058120060144948875831035930037727232953566491789025211579397334809155125343405275796328201068804300112488793965908069110129375046578895036800445615254673557629803969946871960140087573554240753280925513781531175638345889558313660257934528755466486824503287141212498902503884735308019643698064923201916995421386206471205322677873402025838933829866346433039106770048879087751941886144500980944533607729347527193908437159064628927454631354191354373790459645555367643815664375233080427202144584718634626770784382270049596648681918876222541165080708853733125856939774277541823951150557807550807279690839369608213982980131959711665515901244314694034141631365968479699046132843587461352188973153945936542411284570104528099476902113667142870101130253737497565229601877598570220936147632518576771280851143775899259677999147421174028263942361216690757331718344079532734755867816523991167022401203446776192682956813300234355855307650387737226041139499283126668445833930697515548199143719075073320021004738486535555996617792435725031519219631159896515486432793986549298468050373750734344760442970669395349227939159738944348292340131498498303790441238342468228079594671482752796269529347792221026101547272592480757032611142787833256581391024199961040562796389820877110143012775851555069280189371912237135259510149494439480755643531046170026755027008165040792909600028149340182520041357561740744820691094924052410095955983504780762887826079409512961559731419220848011488500183536712376438206742169835815231793796838845749741253826970855303062060539494874799342906302364919778825677758307684067531677050952593506850729489439233471805621886842848935947932459531221193922290714721701244081747730281886329562554836064814190623360561704839911252180810608465633398662773446417519923150240631956267497297367250797119419354301251436967262784840139878945981080611299187122389617841001532344931597223749669490232639370289742872988843258881215889051725338747954822277434809857959659951516561617514136888837108386019693121992450869550900826842588493686993102611232864406225746073981510605169424196936866371346155714828986574633129549504638493918896452298043654697569208947338751231908463629324659096946749065921750211827659803098398175259994826970603810913628730303146856952264131942908258746146991478420972545774345290979590089557737136444403952271572939765420695374428596966609734630906400839837492675783933692662424887182354415117615436246981463396078922620702943886228707802989447431309153290619541529897531975881408460037698676969167648246153633689306022872066827542323960729784138444687528241417357958684158577838166091327875808162049321404329300325922826250015646918740089369303500009510992732112088899164646906424619218782009996816349000134679525520042478836951371556515948949307493156379632184932520203068699713935330840484902455849248630909016250087242776378342568579763547229487303803581459624477506795693170982456371901095925369489418782464046153271792732545712048471169947174009205054475976656447346067267874076810627996815796816145868137520938674010844199878660804599123577392861427997313338891926243775307191532746868825000908839350372763334561298118641911720623616543563179288067261576015741039733201737850029549476787892705374835334763277864091997474579624960380457938454902124426843968642477086342487251017122398596156505692988609439350754486218938009440508576301595487052137721531167264447947579814744769460464244427638845742487164979184183121658686171693689868390663950362747618073075636946175624076319959818444786048982741190507909992939919948100852065385072502593812991119811209166217342452596740788511238656252873859025652638539387626841951091575205330178499044675087474256777857166581503809302937470207608439293969367624256627160731730654333132326938053912122803326223493964657656823199587622033540534510411115427681683314108280493081707442578094525964933967325671837495771872851849138189058121606958044561045183632473602775211964156514745494726986724833802436616801522308141685697262011810936611547933546901981343157665198706009691290557011589242774637356485081505368258461019065237376936567064528120646036750225311257601609697723727166907282660796691225356203704470870992993201113208023195648274592379063833153777909123968978973591094765705884430444921598771741860060637118782458103919191798331208517601078441472515129733514722663105055125957679446681749546024561944358267097568454404593974904767847851798929182746268551913147619577599781672499844443040760011022546545303052354689797984357262028938433989834271946464185437426397870709558345718905919118627632654924726237828188887892242923911768324125885729964371086569084447265479634487304375086023695292249052985760368598274250322077152247126522900021133473987361429733350948189183942995983135130238848405662640197784607173397582206840807315527237645554521109107381981455370448291354556599480435332495070358724153753976873158130711352597099832968686451363644594241117190464762396134910644676163167412743796605518484087530585301196021100469258158420662789317416767493832760597129846513779830159955018047168480872575504934227605515835323167122325700348426824682357755066430702068756758678344479346429858555499414155035122752317064788994834051919221234811060004699811647134176992374422674304645774439839811019727607252871832080901871681976132288904261161588313455032758655187020902314886619380023775149768429244864219587635491400874838033289193915860043809616034227796829648475062705954831434033788956397148315513831354287455442516676993193850320375794294043244721840648181743934782132111829647490864605163616495244220662755864174823496243547841347673904592890666728783019107445212139827479088228121395991654403435583095700404449607649440804411153782458737144409874869768287611178974140305640676006737769567192975162380719076379846129634602425418032683625132052819633046924515990884135943739069229514188839741922527974241782289688664765183468288365586018886380815607784756347259099247584618872356292200293306452483372266895867165290899962839769913089545358173650448822154797147596755495730529300074959347365753498513101284332689052904156993806989651769929476449366039420398774975948601502163534939554634622314489913806039185232803904402823325255244636448004524949354746347116822650695190409295913040724517577574598614244689322916856776112170666000639755071900969729734902965927805135230197176050190133768578142435117012452685099346018559185097064103596352452162510690006874986432664655063211271128714839175442126954223599181204984507503906247014874808888494822404019982182305682903517533450373422843850144932173305202337031800656487241514814140052772317552096914726265235705059160286968939209076336704375716846147636915653288056687997515147851983912741659390791182585588060190419959445659352178200520472604801217817607139712309041498363911118509081145815736913474860472540213465512034457956169088488923500177926570670312308972764730710949742157621617068609381648975152122054996646403160191141946408819552372492168816945931603757031106568761073158141251660891368398422092390626755224152732414655057812604994284121003793701101677962560623398260312537340630999511346582865679920230122773196347327820203917896872507619656639596252402481051024466563049120699431597218388868315163598928030656719283787781156884394279631700311529731191441266905850662169358663193047442183849489329979037707117004266998684412145995290587827448501894674067167008357377780873299208301202826853115423609896066917446539488538676852917412148265663123980070384809521684222138693541665996924338417501217245286517225483351708294175292648780371009120520658819132263038076391590477702133393640786654514710582207613839543168772895195553647178226568046000064530786271381695829718116154027510827211914810819259066056936026080107681422232905771842375048923299970142182649096464276291612147809872469656606575632276867404647079088875750232753299586741738491236786283010476451834376925220753699082720805580588892574177072027192319595207160510565171847595407384000622456803259682084311490718175404598963823613224701218242244532939879240807201494833384673809748810430254779842522080777218088919253932859501230131394914602665785267567548408655922905930863597308445764275000308543869203964215613419526065235616908777238943438700587855265729910348077145791646367189615714966369995095477808619159145793876261936078584264109489096921935779453046052453107338748334976886409965535901491159655102182592140414438045776280432147701261126789169444243614830420668522131159288278924169995342321607409619536018853184491838703003650719818868961222702866413257135656523438098017461038385608846613440379397495732186128522655034580209597325406072884537343632687877192424574815554677299119235303892507348620527004996083977932892955973051363247105230381796635492964819890203925682477302786153233163336388344570887194639775080892677212652033129661226150007436246796363125306667832432043415173524227170563971423510232639191807117189525223358434194696111865155273775761740958092956260349972000275306933642584904835642435747445924981069257931953772270349919784123963811268382409922151144642864507166744262855010428972551734780863290911588933398015574948335690317248715036876311422710598489384630110775990356591237178874071608829484249121644865738466642361322107421682003052431625300014450824693755397453397977274420054139155401705941067623626166025164208095158004489033873946956575896409316761447576723166428192122249157746329691722348695881809573425265234962885463810281023209579637720879870205750487978972609209287228184361702151374703181164914452472265363300830480246519284865323980070146400557367050739497809082261153316656148627466481760662731295880705673498126409396775450005813306611076119827435817701144893073374374437231924506432878003642617516006680602261206557329827011990684126011592027469712066756444030323792783067067868692829667709964536296185707585018331890615139854210573748508041259421931339058765351338319349729538657204056345573916593328961392381286631518357549996753543165511853248181881610178796880501240938665448340948179033824452704143737871383256739844549072152952370077149745725091469523386168877513509634199340174585401598934551641835730190596964785449908988274481911872873873329246147119454936597975195211631023009958602776663569198411922624625692607596201599517256072629885304163447157956699766497109304460146046295081078905866857155813196972387598083301786299624808986386246494350800276832006345450969239353201567895633830718734384459690784299808652775613531018439093242330910723166094848544327214945623226592613623318077066224293762518824374710743479492492565481992862649487275855804456919270670900957966947104789799089893789558654913554220607320426218052086872674832587849409096019739091077421166202231739853511598973252094013737511315946234191221227837784277875304995144635865528266447976557308756393367772728098306957715677184169658997453794668960772203965357393321701938097294592154378843496408810956651749510182240666361671021155552218477574422791462020077254865681759503594580646811409930236002228385174262650210332427254505292947784921621813429337089168409501773810281890415157851589958215581154370538766705801946048359419563266772048683317262504179022020952979305610317958350795235222505548019246196419980775684249704525276626072847081038706948487382119063631612015889634909963523874281931899114007472545123270284645944304926053507469161747603499298088426906118429733123280127448900698960699156473892931396108533534001535085233627472250955847087249587052148160673889847040325314690864341151605973553955964789628182628558926700530483853422447747120375595261578483867351749706959359219727270254575277664214912795774892044368497713666579549524117788765305187189540660909361089913250359855670967629703663047916194368110031576698360625572024155681542973608530736368129000756662056055620139597305507027774120550910625155109270545876877944200705513048484772703686132963828631326312297482037594378802914166978066464567293514196309835792845259340678306311899002047936725267673058397474415742730240841835373878031355920690776474361938087489069703519331611832770895490654076871984733637146824503019806338186807028962845110202888068199448605898783965767165523310871531461673680112389493314395302713099309492034164375033172042037783914043834180933522862426468871020820955857462580038419973312722322812291487682305840101233444039606632714898434546321308222478952720555216339040095121431694383433520203425495006326263085428627787160049612189770600066084711832386441817144887475893675290079194774093848779943153391629459245324755017062197308469847414075117885473290343635840532135460350089170214468927040505277687807996708206916199885924449551574777798118002791513381225455272790399393963928510759207317826531407680035883883773495827699724425626004769111700737034821581306239530725511395573520286624289352107906691287526546036757986601166468491925514050427467463422566612267795162537464023301708728313291549875513259449487227733906515197488032628547095925967549048857867458694667610064552394337488179196235499157635037006485615977634755374124933907909734045388580910196648948556546172775688324740980663656600481294495384981544828206185060413718800484095768751818784793923354220971764587709382099293411593488917611681781584284371912580302589308813687854086930838026059040315025168343865872777967762046800780929517781504382029215673727935823353877114742184055782715509052716938234588337747150168916400555086769738230584233243042303019268165941637413445093432716293956491734107090580033097652698885952003595693664809410669032833814266046974609196122465014604998124882672943682164774222310763902407118960778706249105218075216887538267843901969121499245708569668421773544178950171809647745966758498556182118669561658816166136157765120041534351747791225555445723832733652487613891301287441153068521014553314945888485682267898952417062644132352898929264926963973700904557783487430501096782401882433927107263457128541868172173839149115753421732897282244746518562848631946519998747430716732700000253006377322757595769822313990062560293079402614719378441191821142929945787017711966901950505912285213598258138629666813423468118082417056109758858049155190347587561681984610041439170229210224148374931759722214622219468781775764929129342201751088031802825700606917546524868236184481218441261928633101626386189989438351231361917260796478581363716263671701807537259627897198361512069991350921825491058587396620589697864396803775996130436663813614090728862370610378499636923506659398584458147781859207842010988056695049575367894057183110615784201523219657219462092361810486960211212923139535113991682236537682364998152926141516714453324307410402354512626945260527497172115452756342656938738639334612074489478261853122818415534937199223255728498352048216655939710611133542276920183191735414474496618639471438757237278441746158143891796655411560310803863749871479541867492751454241580182972389057443548866230236366309387196717932082488604186902794429561893416256004043357963166903432287418716024288128659289360333103175126511285910879757331097225204437399479096758206230731055646252868196946062149929845624366893802750242269178366648871408322359755581951573168174218851252651626893621407243942780568891479140248460225372402093207740871909457313059987684084013292820692632359778822820229069255842702312193991612655549792104869002390041261684317834287816236038292326357586318613408761332678691928934122099875434261305723080566406711790882908585429575504419055343910855624627909868806746063802137634859063320523246569672137683961744302938847267938394612871742946268134692102384873176130809265573655885472864235896967852826420552268278839478912381646377245178957122585806111308012156020372468570395924209352682315223790778294917759467239104560844423144742348828834314977045803267550023720978096906330408627169298557046357495891554777156973284962216705012896753080591087884758101857591833134502868029462858783242380000101359787708795257280016031068160923032820472291938047574944020893374696585771882554287869250599009391949399319380700708456788356827129459912340302321886368274091500571495192533384977239868749974035138271395649405777595441776147570561334762278884367431764762376226417075318526290048488826540835229935973719156343598083484951461901245140659233003019034636136870882153758393633304679764794033117277693657286214099254619355692482717017906476411824626365160140490664815435900945554081845505217250284852487472775178634288773605451173938006762022458703223395597650951912768855632034604494034572955026408320416096825152239395322391442300956845459625897140586544222526631240868461094482508841035457195324511735242509037599825114564413974874952656552670241693263653415448062678466317466331880636547570827367488149990878380454729129180347572759897887354502639753464999963219675803350640700138244715949267429213581357806655873023230969036734749265973737770075136277282691798311030636461900710387654180012289341603423946524995473622012997311582715834277953844587108604625738012709427781317365718575234238121320162246697225655888586004249874347492654763723610808262980360545663571076920618728875756108089838688171400677772332008016420502824327119601085507406630655949079840112266618694490992130348337642304356756897639306942772789954824353909273993044399228063964346739072078527668925745509154222901159342996154995954491628365126183889907838532271358596732833134660398580638263093482170708706324122624203210502810008388776852576193135604764645505312668036955954597066374803469575700324045508868721973399215812737214775897931137773565360486946371529885094028107677957291899684053401446514963238783935847150057325419534301172406861711208890012102511777033826462983452014914145367263923619673742410876658066651239638596062086295101639259795227522949243054845225480272135708674732771971066596276462158236478333125414883320845142758432283741408337788915422116814883935964049722253606575936100424702000321073760297434545820669466141478296449038119835613343828159352334039935894808184442500110597992341005456627590158019226755034854197902274549354617972518761667636321976849170312238971079346610783013405845691429599203821647201648962746233765094221996132617983224999897298419910342647307248897199310619194945587269407054423374437326066476038706408779508302338151901066628274115149182137828242741448437846838217340688755447927674647719337576919195211095819693166835617972763869204242651183856461490956283966130763747031739863280371801599460411358155027435988352557250829705623781987476433393507283069203331251086429042419650304102169025499072037402957335156986997696122119515197297862703806049901947733780806106415617263234580681236559450676388830314326538314257961894056032911854533043651566943491292400603149076677229865252988553727182136853479548094059935827123407161434806414499358403854169303095806784190480280550275221226328325449407846841764716280744567252572123825191640700778378416270019763327443663042795450726148600975763542589358830103014435093488974463775329750832685669008150961085071802447449047384877508657941437006092627289692300187678088904028180503905187135959494345870691205120009708438443875697526186748160340292593831126847396157476079390143309539167145619713653571421108862157658871530270316172766741863212020862641117767760543112131772774860768052818862255982319524341267955210649422268336162978272707806761012872767346368226878137129139349237328441743526058489466371584050815363011148620658274474856382674931126016483272178146196010367878904612339694738731923606758708527531050647689286653308331225380893147772339062077009609005266507606748631565140061555032100158969843616236901185151990585145667881195313287588294538153938999888566984562680130091189671336912022381800319816328598154390230683900815166122203422741064059289978450877264837262367074052625693114226427195936609979087428284411843853422478795865281151521465682714949241408122753275412847219965740807138792366922837707131661072566527645847955479135269655178990820946340377471557260723201175661013650143445898310826168901771527536588343234802706464772463353953167741851534569230396689106465002663105921628139909393222890078735989443074807818023866231820869106076753388450431990234025979710875961930145671841812075222146529349801004225590369887470743795211188735051206325399102111579540878456575550433979252470355165568336494527351335841326296139235253529482941513026329042762220983882123292285675482216702439005198032874871344085416795354696934324009756963448633399401353109964604078242957206736527266470043814710426004731674579294761012380601967663291167959401129645109233311628311868366218016099958043656381469540496092540708590490352371394125907893372897474454423391679251707095803195885497599856712267979118877177463132509726995732606124355046217562751158608158571542936468838128573398833089464512741143924681848196963395080833625089468445403834222333205612511956118462398135658494190341908825731708135215936359205203465081240477831299507117565068839116740645351657649257949195051124695565628139470531593238307102248918512012203180948237029491874134837112591296422283126761530151191617107778117370514785125476396765092549136995163621204697016453985304340594113034795860638165703233143701443986752221160361621965333284332320704152594420783874986068153511903860745716222658811866576874633119741159414640519190249181850253697882364724897422105534858487931098447269272356741498846162748916974437941020683026150743201473965909507197337455499294779944306247175087622810359939690443492866834460280284967723204269570510571125809741088358724685477024982488491437368327145787525146053190415523792214154592650555570221199182264218368514113879635859785182942610142071063077978995796783995244615311282911847529954111215961923540528133015677574511845953300578746890414338325474900545671052745160025821347306129931727319252202945074963169093730558792173382430295819005100329893096416047416442622186081018940481622609952267321825015567687669637619231805780390585054658601821317652408273930482087544353406517846277537649517071087063153049907398494551334488857298240177691752062150696870708110293905001519341712719312491585081634718868656909363010600744246723819289215978992973887898875933902808796792880720186109153233703311079344569002436036252615636116281825705733619732569115236746351294539180816166893456570260070878965221740017820935060801190673495045446729705269779404394786810486161940373823097518259156425746130636348594661174469902090709562098144497950157461006654572467857864398293319033685300949657406746269715478952820000039511075467495078892106916174231679514305874248850316294480247540995888126814724588447830014405437242716080693594371432178787017393298619396697142762525893006327180205990935264636574344811146445671300872943458591084816139143976918822810691234386334579471267093087199721289708875799544070262814732295968475127752307905271558535351435131710228399773607442330702756113589735442118388016113731840965789989134227118676459885648472000448512376768718822865161996040185637166004951801230562835314147872175212105996794679116542119704909595023977341594220479225821266809811629817584449851711484459537457107223506657808388034930109829240346410392718818297671267720707751109015837604567778010560694566769011840308017351351155038539226079415141517593859726428386015495027535082778980721469505964727081673422827319080952875010844260891280841278276721551107423638089295660173433506755515956334129850031130686286924839034645612586569529147445899493618803687244839003462853655795294794269885481984394843370083749971877510512759018934311668431394827833444998477735649114994876049096775179903357169346129702483634179502549987475871616198676659973113109913401379305894117866899189293004788448396700949656517389353767496321035549249080781154912103054581882666582818913171899729088084988643054448662384239740901880923336353075904711190711793849578509689955440868001863450581706490216626977367940272856898718717935535783409218313603467649892415706889083438808202216786824180333409943037001505607743555406566748877572871499800792794622254351212422387144194804153733258779919930446472589376911470023447201686655439506370716731814615781582771212903069210955495779667620493899648531119216893888879806371080983686892969459011613708502437125729588299591893055792939469312363787559818451756099647401659607387346549493329587134013781020642103403851686239120967026809358088126273881881712080331672702296234361100330131583128355023815548341207680410460972621728839830934225260817932537871178460405199334291011985188232027727082790215921230263826797355260496790060628622729874508676634983431791306738429464781797632569785895085885733810789682282860132020451013531917899637930641827014532813868244686615193024855551396153115617703169385713630667984749604608058086994697256412915957327786754892712645718894925837562670671757485272133227132107473217680072013608674024619832736187587030363355618355612260018223493590830560637627640027469497986664050454081102272207571040237496787849016744123593752310364974608303162504581376273895228295250289868589814251341730183504425291521838763453534341320908676698580460067563250782304924783463810978073574283102184238795168163498319362350239950851046528297024021615226945561444963600362512716048318392532390505932378804385707893182011616208058171309749304237252155860296292395158281061284810941046565045072193483699395597737085351639854427171363712896192824403889512553325827821924863391254958242850318922940259335156210627674840271513183692200995130135180690979163062983863340718479950180344111818522039039990786814399208503445305038985422829193533216435004515182996135690698167609894637436969595431594524468326658001452208095984190423392653245172153155897744165548970266423356700588027684015676047398659798939376101002561790035851529294131514017933835184103240341814754756406685171669042602243494355596385977858852608265757489825652666394303913595672450883490107819690527988513858361085147865996815209790826104464274531099391022045734386813359298085539813157074381682969167960777571781315616467998043215853091009274269348576033658589215981647408512119910499086559605331838054709049052809841370183136380203668823419229380742324664736023672010653145573763301293309983958412265319350574254260499393066091731546057349715034659539894283192561955021035915615735681067348539272701814187359915175299973220427754407038211320581348144878104584321462683525853463936886009345818276539773615095041739445282449789958981914476267515278063067319907329232521019424554005079173478695746003343232057329356965932732808067597719994273835610100638306612241644667609232951080321255421608839843456194798513343222383145577962849845730797193525299637441612348215122187765306044633827635989660948411260320458735093393458707996413807606840818167674417922424482899752597659148260534572884419679396324378260083989655500311289932411353479165936143446230219355669393427935074490142849013674173970113383034422248822050037198372153052386404564416519531824933760351040963507527733114032343406199977000014440080324622949735828675993173238312029771350482912442550028389127475201262093623016159331530696529688571716568146547385211088430053893692774324906854605915345057490206268959648311953266361277969413062841473372611302181858240360149105113852246242133506922196791902751802025526202281191086651535114600355716992382932243861422652623617810370491418507569716119814152130945777012512108654931007918176264022900975932418265604318783465123524863513563187340121583754250447058895148181257572127242000631457862765927620074737783117973355820179271526208281729102976722596952825429250509878033317990870695880578703013289318917847457331755641547562483693191350979077552296862241183188532245215963470323480943663941234445654081895930621600979311870846836967406075116251474623824260451359526144389022660576030317089055966139477417095338887183718457652895160658957433309839951215020868984843767404763324948663283051228858533597750796841994408201867345434546030755628731027954384004706040049355547278700917801038173584724227300938792267086200585650623198673843142675773250227519353093461549876915454538701676990765005848738038063316855666624724322577765745293960811630631200814810095072664641775549652875440678808839473773496876794445350025770686579705429023117724292297664864754735861196323889929928051669049582664772018347702925563262803260815618404277468589192084261611165347645399094245753327508308572243627593620732760060714332520767977849833110179605384359267576380113057592714055714850868974122296609888477359125313921239742321828826901156811131162648649604727880752391141090090474320817524297577845680373162499878375238296471766207819546943128933582103776050068220710032587923849021124634963363079755718354786836749928202085894490379684399969276956587899511076901427920446041861064469972307589470301505349173639928307012966887181121154987665779769132302883093860546105200948413010990992409779038817069253819279412706405877902518473074170044665861956141011675241473811404229003108980848010392429178547941840819095928891735726807998317063853385429901491973831904216973489535778752442624491053697923540264534364162575377860776032457068015462403114830476292735674414264911359934082149360638290876775021930351498236223333153832907371010728009523253863306814822914918155772756544241591004664355096190089271288260035062782987693525739077710511885721833027094811959067745560143435876504169981633792712133926839602399052303715325714643854308774270384653488261594391571361033538270363672607462347534385818023290048964152058325258419230300926869240595749388821940605815368245892865292456248856062669669042843245545236794173297623793136469487732648045181707958908032740858780347627445715486824257259175904080108176949803739915305116824477360827233934353325788728707834947595272039664954705306387971833399350109818904806990771559371073393140529540836790222830329317113251897283858778565809452565394684070343234455026388137217837864492233273756552472450804524163044549100774538107402484063944558540801963554736322022053070748166235815955256177346416536849956072585390124692019636780909778006616102685336040135623887929504202187583388807231451871024253934339827780201915115983393040406113294773974607996997670063384084993011184470161238592658917902054176638223058825330262452665097298908841988399150125845666284725524455905801006261690011050876082052332117378107887730912051255741119282355799703555647588613938584756163753061137194871666916646199075010964400613380827753592815761862984326891211358469649161993158065453152684701524811078017085163475001186740403453195193171714416620846698876973038576549710763675827635978769345790774223078835389786546048889371415992671428546708240290901365294241369111405489954524336098622246207636750381067836228358338060102165387979629584377170747086066127933118426847139316039160276706748716088877350783056578774896967915712714499622095514571309104055337100536183021543768422209412348421540106598698196213379777191976878278281327301175572758527603195025739921483334604939427583529290670617988919796922311701370944706156791817711474611291735613558307846008864244828474846660578159974763625143422402801363386209913477456276391424574822472041428467440040296848746456378296781464353531644584410386606287697876624443447102637515244859430442221919399138318087213944476743372187265887187993517312212255151147685062940773643476701329696672770525779457861940442443793558751423925727681230759732357063167496358830147727473061841444479720432150216006831469395332129158169666386901884059065035176225021205579754054905050063826970937655784359118653435657084943706670336802656062509023579353804176116539166679129903294830683056072190642768683795394535360440210700454637717741847265575244644763709887900441177592026928078322482204076142422231232436817120008558959791338450525823160456490169713705536444970820105671418337281693035055545987498973603841851534899600893155524369910674205046456868632366427649592606518262825781682152412123463209099877571670598605571319375770179422145021886260957064225888383734307088988534448935324605254445188085192493338646403461408521904762766649696484907425028887089200924637743663847458009248323311755507978111237050338604057778557800628860744021340962625575842877852085372880446994202196209895880049928127385547692323408909115992371314335365986699129972104374661654679840886437140429912485085017927691378727347829927512698839853582539824011697331352011784065789930244179069463923232676320043947188545284132595123682939152670791659378948000639155362574380194070298882316203145194903607863904528887902581860427886311721203287688276695204520110624799568043308138796694956888236398989474697719672057935183935486047570494376549375456244662812993328206434448152561023360894530272685837602722989712021420585445081260728184654194783423140201249743895834201082677936249517971769916248706548645442847719597103822960660067928001068170186771352434584549032982465073887501571729252297333538197194127972428775109807103104969240553238256530855585708889297920373087649793486252398879992671684462334109015780248852867718150420262219173888058843862699173155252313231380975915912368162922325917630109932522590616266021672874977025969115877358150815437856301929752013720957263701789770280775458143457375040665760073367974871188074032303059693246302157617083465924317045749399146790539075197168121634409877957832856054867764704261963934088939873462319114424166413461907972642484879960921359210824846321135186236510138587712416736877130000350721097615461446184089127997658517538738434346867992867687046211086551810400305805975934694596740699272609986330961692581558795717476493018429234470695074908274875646143782121913558704091384641292076253709009637851976824881644149105501959127658544393322277979941707353585024384868905238054071085629277433381756483080079258276724232090626601765019772242557710971638554904911371121137906839282282072110446320410154250646550897054855977947707220038692279944125920289944361719771877948873918752508719143721663062122197971344011083298448723993919091163842875143063700222601716903416890363842697213335171595440310977556239358682411709738175885413651093619727046326969359713720451480459817433261507933021735083201864977504832576412976562482907093377899877562944285580055274528473921209164784215649410690124840233007090650664596959541207935813032348490183684856625986116457884732973090732930461324412405295562521660191074183835181038505800690853071121464733899027293848630267901773045088773327161497266768095378781050527761241928418232221695840109326768690959426498005375054080754854262136820245983162567889140294744445551705472059678939168896423015137824503075813015308543266672715988550174386410310309473299346334909249987746188197915028407786367510873908130771041697990490137822547171230900251465920621968437610568133387956252526681336865597291891606742051496446300658961308834924269241274607487701212944475747800199756057059613827778525823469985718818320908281696264284760575527333501526567314299978578329212108501561644456208044215627455525749529622539021946789214361049094971264905275131524565753421946644308290676108909518491391706940484860422286775893221801910262726776738276958582778307516619524870627814290523886836285036014523460179847581955552185552495675302637677582626312491577283147624326770932933374547858446262047796671144690690127712021341375823191209662764011476936494553218758772116975369058133653464654661445109076123203579014056231664375225987316464173215238556117291651980642074769336199333352968518400832445906451292100508489592374112225761194290351498109914124670724227156304665631484391267389463243539725905980582306742427285381880299569393936362146318154953170967140887537413378302388105898943771489112192912077258752988964207300645526468073663344842346827486682699438916985401697781557690062757790856872647062405883627550705330077485179470030348728192523535457721183833940982689394687804312521837709459034853130857583788746077579029478666081797935216985272506029778481465229862574297787625242841540454714152618105601648515667047716446910526909477632932141608728682359781973100857891955643710123291632334336752078186556534804811269344595250886644632204599339102286353487545488286654434905752009105638525414617203430887481210647432288050463157387724133549951401498635777087723194308287981589014930241402993708278174856998272021654290761831676364469123861638199911757443549333397535785177768710602386311276603412507819721300488121546963528214545234498342112223516476753688790018758739447873828798855488588905511385631878113128034590281407006669645388058993885344359055143950810455818138737304984822339219450923530184154413819845805286367573720686929928273731374206119876241018967715563686976148251680064474227739562495375161825167193852008224549359575236657348650068455951116775552621316196955457923685234284823195673033001472770305590057693467880403311402873295581981412975307637281285795816682144903440977142443069289332739464845003831624812426638225492772971627155487848187813398059345273231034283619755843893457689857321905367153818286525537579537121589372584977107608692214933730089183655877128176096214567126281771734038228180273778439719968274312862188489737938655166568656971289520232817424980622613214865764044699463206296837832704456646364577051798381570361852674114208835671182410303356670177667358525775699819810356104925371473988314689771526946189982686352305041634064619866211359177454052051276081122618818334566751887961941348685287649524161437916912476384274870793528259003669113507023299088377313033226912694860494092248252869772863486515422152269822394579120784578137565368988998582803634444042811404880110271265316066225586136250951831664175404427145544076244300910264113295144578703453836519471788209465777227497780740210759422128629281716028618890219446213022088414078480556837371068635343662920243553034974685671053396575289170804488000414792651186637737131230452129154533313598407004976092892429651188304713694406294561448188309475728274792922037819759658437391644652096233418618582602019207127975500727158709013262270243570632531867099855391449918943989862655942504911304321481929466733259192921864909714148234934989252018009013406963831646996356404522637355262739320104724134487658390544215988618399693270460370178213942874084389873043975341206448200404751193033729193315381841045310858494036538784516236118742141185750578631433731907968765410901651355706257872843124252028518718663818661290682671763326095628258197030676225381016363028240828679711313772836559943717196419586645598790309250580544936679963733738108996725058559013285403423389054746604534798625736397641227346566018301356945619994992995354694599496687608869939988318920662448763686536204782544400521992834560261220515403697998709969642065177392224390358790573169982623658992954074045505231227620981938891926273323991090621254901468986341710953044735615581646221455377783421259448309514468123667576694030873364061715202367127685178462904582483079695932053545650142178496163904162598456516671417675143892543885277400459232600674910051346617907967573389609186017227333046155649036945436702152741587109668655198596250404777386400547665849608039363578218654085304809332433533617674701891451519564537883658295668116912289049916158341541172935204656900730945117579644876254073459418313780106784475019208035995273734660788869363034788379627777983152982988184901938989125004253040592746661283581748764090085361875342238529805547160675879512521441090712065263015641476625213349828525437664026453961566521045550080312827368657568119453462281353227368747143884948261246209858039329053277571390363746612258814017126463708623630946219966130568705386099497788495741779950919355744795973167785153677206504709885467381406881694022229481098693467566524208599765891618561284926048437212922873458135227580527335273192679876441037062190867073494451876215819103901302856767578632249412614997213081038812433867652115547655229708922451347573286265724862444717453406990406527591143180596850474534467066930092759983638507355261932411739285424478401682090342781856975039690296605960118866644789174994357397190727244020882541269185590470366096607680387703780659474065896893116175285476330217991579305930215728615264398217501843204100964422863061612708153894515544848024957874538159626469083251824076718624756316943016353094822404475714954540418863086261909721050532624648308224273570933900282418495858189023002819958265917555868705121407314997791120331791931724767509922912233692044163043778355495970165591045915881275423262658300874586081460137651982717922744541859549806902855717782893716315666083588155102285361616047512376477120402984273236371693365927931991561111087210039146862802046494407705802707857031287009705644774558847598009952088095537547728200710784738495918244973396229684440899109270304974891352602234030835431288831667174179119370858416218221234053272363909161046280814692399070412424486098089333865782028914838000310047212226208585563809000658294359809034602978518251239124722840764879606158338929117030465059149821552447855421777519588969604438374291185586396625587306451229791183235361263680080232943086698657939153637792101836999148312477333844699072159965153971956183959228170769257568933824857632641515478943520346347212548267271021942750911638052687668781179364713972296403100465075167244443379214829513213285124662900451455603590582593677365176992641489203417338734613183519072418337286025654559240236317465742373568725211418116978321800935879274076975983141270891418012801652551677267731189357978944925807343842037548266653449490934457534797982616433757037574511389150780616622352328282125368304670580931054084542498913251066387599866384759043996527851914656479094633988691999965788173447890359549111637730451460349064898167013366764826577442409599103394399062273716383495652326335012301678664350356135638297868043307653853403820717339390195416896922312340948825000137740260675957435191593447769012307253453141802818002484526068497456480788337104380980184981898252132951696496066725862203607031578184958943833035941123647806751913785510104438963131159447936803871519631393244787448568279975526127626373461457110212733482376639485973947313165468227240888694697664828232983723499893601034791900702062208971559695376382339706966392100909677286749400800561332051947973950847573279502183652190978318364074176105415250592906186826867628630531285876229621439555900486949944706785476878677460419554021547321527818326384746228697366954024330292936472816161123005843224480445807582110368522548855901795975263360996480236152043399192930026825171882925148573910181706331580386008313456523061481129516124810253596673021268431462230918099676939894003143510315313640447914054660043692876466331660163645031289879093348434154253319742416427203327388562842549306540466212810663528910074519876394733946268647471613644843003506037779258907688480121640140375087059519536740787972586370056921776652947675700447702816248100353563127161901124118125575154131642820662641432219154822247365325131672401262956619289892582687765260344665700881306168673559057719908010163851689618314878702671739585895197980030111011735263706131928539292639412397697710074390007105739940263038272375529767290774943541638099893282281807620931785027810358332295365351099370320969261469355386522927376679349673381823573657703198538286801124437738075028072075693704407059093355585815183220875271041871866559464190152471775433186013002695860947239190998467968649275074027394598235203324492126860627879314168206684043631914745275127849880481892228347895543104788956903097005937346740156635551168970672334004796666212690153582830683980039738065901272385624648304208693259817413317161333675203289153404168494666982504449109225789227573893905861498024955877196146164544477942403568449955298404488447160406152489984925901908690813657560943614855245751397132829051623890465187146587684733207260431779889843429053548562208052497261786537472723641422372361252121366950641258956226309028412215657182461945727969464100647960133724055077587678701444201074128525919227861526576955192757642554816818700640694380952544652730447385292520586961608755976228717951150925003522978421283645238792390750156090240385908568371038069932579322750307613057153587378999699830265009933951047641476231615381257042702780093608165760265824318908195284464869974893456019048736534377262107433318350403091696405679801062827425821094455895905011149908478794101448293289335775292231614702898043235301363493613125423681729848503589211534384244070681530474907556817040199200786232974377361824642912354595037357811495943545865168637390460939676664786116210682718377349552169546350353485390892423073838449005003767109471195181883863570391248157287760318058000707897245965763597578925982293423099503287055030354078786291844966528196399035855263911488924631880825111808551428470882814806336035846987956125732674015194791707060228001729799920535457929519670224098893831943465264679525939038794450696259772027117827691437827328108576059379188156732500673547321887228403442534367718130956861724436419861452985903280834610384088760017067412966463422173050813184722082163380202950555433528619372405475385144420933401278304514028042485284316501367827641501150937358487597038491769589600270235434899090330530161850621577854353266579161764445185644139042030561437600716718111334125138214965733374403746666301468035968444049281512139677152560359953243985842655986510430537702189517571063093149725430066469803377564538614642861588817924400530743342329014192460103601183970394006690503670206930132708349132375184076008135069506464357199178790464029083704767908050723685970256038214991151615169609289561906993692883470799150047647685950712368747321269178073306693972312382067408484847606371964062095621576587122113900484160403130300498422884453644595935338358661123036578375026250459639142367382846055333164285952479787690626606740747528260594488186132341243678254293537684456521786047370326940892050831849870866921724783693897385360739321437530042566120886729008593490230614054091113171734195032220889687568871747242508850267526952918820067666892574488277605065801287037129674188040520031303163266757860614855307517556611326245499363424441163780974939649441863783217355442065709162512506790036322117292363551219650669603161675918073118584853811055905174079165161178506037666650325609681469862379945340535764456978505472353046970603025019479371037814212664222916588897906669852211748255655315711394301372340718525558981626115044063240752349794831714221237513073642693484098150170791449495030680606502303210518815813570053590950799757172220513845844094993890719203065158417842737650475755368029037937771490057249603041510365488497753246214836833728782509359225413220528160683302575998106682405971519497470137291068493008408325663171444893153485843109676255191520492770459214534227642910272704186771359291473890440685378623183262132112398059198832456986896661032013017519612539385725791454294384094416058995056205434330598485542479912220908093908049017444547116073147221906363890661088393894783372200339892819525685325281751111908163254502729315415192387045611490039088333114876440627430445366174442901928629118716193695980870893625438932756945843399042998418247826536206151225553556827879349240619331319978940698894668610236618140007129207572519482848289153367343180120855620987464759000902027664834104224319583570224261631076039852140587118945653095140296497299096414256078676015863823600746673635642682132220686090823833332775151551932506968717171015105318360544977954094623831604117418741142020355104218843569411819184170106472548854786624474732341407870422385155992993619279259785254889821613278060426141765378671843226512506137514192519406980540356679135163072288933821248411662183893206550040167615841897138795482157738230266559708185470481488139637251796402500518185507577687485020968254731038882000508344314252215362599592095890797196416316664327109433573046904149298812117414393887425145638760888652203854020247885234694338361584407226886148503007809924789210824052147575513311834000015691749996797584990694430148671626331622514099712217480218274582224490756726909414337458904217173757141330731650033584129033080839493680173168681899885458101702130925412957318317399799310478908435072523026581271292715599586058987029317776021623749564063291056316857194305666226353643160204734140669514310947835690754061584398521121678882972951248513260168123597915503463090924519206878446649454741048868646162150841116703097593747958355684615501114178408771086938308800650419358321395709567131709139040462025645937751852831387022483564189531168518190239253909885494604259031017526516650354076340768761077404727393920251157828047913050681540929443886879010143987149744761465990966155725635190444845946745240347782184316850903250315320131336889545236428462824866081524853737439803383298380392983710063189003638911734801036023960365096190209588363937384249098133173760359082855199049645861028110859333354103162690693758562308051727021056737823422552685330571543167267372729347939529600408146625268733792601836578900084000225602555397268001147900692037469687279703516198976019367285008452066074432277651026420804530811390031816869241186051505820125284764014914121359064739716001695955280781103659637868981940060375708354626023017429960666820664609982222330179022530633946300413557068109135341051923586452198328610539779761039783925526851316370456990261164559216925972269354635359592697442115519206436048188196221624146006443522856981965349678169513313718967643255263782719638441587053869883577971550474344429318144930811532130619058846338571848313449113511634066196311818782920145737889942469640519924006853985717642212342551188972608683590074218851005318037197855773781273668170577589464756344735346565677220384561694781423874354346156083126724395250097458544720794722589803840035729137127265905675750003706920464821980959561648136085602710548318931388035597322810137024114747259013728644077035356979388314086826155762648445114108009418013196195014685796521795917363388399943763183651398920515944956597658855289409287335195273277965245874404340502952860939431265016722633318765492416650880784822513230648733840786242820375367067844370272778099684711258977021631634935759114072373822764613280133945367528102177257082520703977794620386848087554855995547365633983901881744071329740339490727821410181724273049490381394540645378309914151411526935514459222137020076109931377900739467124592640061872818906517515125810759546993953755765369147608423966304222125648393372082927565415793146198769570886094825822095650765968080167572823613475558688582515903476319544988119593001268448696246673648163985986948550853025239492281358649555231141675765717485696262959762619470336258599371181156918634975102935258795748966508657643107140508155266363300521121026344703061245233358954943931155597186435151723851674927172227076970486234793959744392016019104809835567382967356149308149708611989429235637060787824630446415565960437724770387338479165611993488543816804405746536661905024493393538105149274612473256576901633999167515598468786495099830676588595540162594420003615176517603297736308984884849282890966163694703360496518210299148270319630671495536454005308100097655115914811981721338616796754113974947314460685497064435323642097258064898160960908220771353448455237735588472338446448290405475059999813103862793613268433168003076633888829381361634563267052113958602141258176092401158444403530049801719908894550057573535534589629310500372075941346208769764372182149811593099272150908061006273701063787447752334506860743389590925871272156668867805240931310162824967526359904882604525517128006290708260100933785110859740038753136499864444278537792405701373315941392144237390902437549294166460496344986983432499949902951990186196028446959555142097731333020830157117288926251749355251173776653231898064606111223611395297939985551116821616848324201112162065078506652997419426582286669681074249716744329926570705384587112879280674795824478486663795959198997468735054056512786098547652810520045458787296558618902210463055874757073626588845772687539790244710480912339589459980779612628529411732570459830384120521943670184701422139627244996407981346700316905821538785267902313121809784040964957878047463753728868800255434815461674977922570537468071245752018649805438404799738121340359023081725747179400282814391908484625327687003783334726028952000712101024666129631789138325059865631589228955754283105238671778461216880902275024376395115620526786794015881421042469378004885662839696269828091982306782962261367190938354692221821453601315361394188079936801857070658979624597267819164703256589489574385076184865541807654933796363040089191955079036353005165363734779978358463788565670839098106328379023584911250765072862847664693866693982647109252078377306836960377310216727668371435550607315369395347930915104448928460226500086829812258973445111462813494108432437358592059776058758577838626990209868349844475771298166744127302384788204713450237607016647499522847629969583009864253812228292285727554600634245880932650756789823083159914046641090399962207265450802495439682689838515502256585409070169699494269313642714625179239042492518113516437430089940227146920359717511793563161211592276585819637156707817705820729971142317088578301346867516821777631128551911244555567413975665783513679221172536613256260535740659602542528718191919009647335295649049601264114691090198012428357966619568476635500476022005643137537308564740068332501211900167667266411056244962959838274821787885468894000401036018681408303820680157776246294611899434898339215176350159164057440045451994718869521787942441531780571959698766039317072471564194990159680412828548763332915558802677430083133654549066230223497999728259502830891455469330763206414629528711057479967990013642729420614741492621623194617863452323174087346194142860589914063821640022789317995059908638238053471520907709260701788798064426245185562812351806405471630137755484724542272546969703577077271582475299682525372936788927564274247614121569057424619948574510743156631744490461886040280496231754414414058016082332577166732901585068531553272044243643333400665775682308499641296176173336020377639201135053186213505439226717599316523495354322025583291407873700497982387069980511246883832522932849885027350517282758896088252246589287695985912468477712335060140634090106715515759646321518695142616236734242345057241527341787372159667736964369539941748852896485898048438356959654913373571659290716790461457034539460826937063676015220898414276527281387078258995167652003627236593609103808992865880501178456495398828211352073943024501366712799805446900679260340843004186324632524295315603926128277874969324225422855362441632074273713972173350541545699704823406569049677874304748807483275528817446337371178623997792147481648166006747582370638513851557807489808436149552463722639660027759454084374078882473499907936940584055953849731273803834086838484994383236444344773083977264399910043512812219431326342976222832941670915238690205764238138921147599917312836706335628889010104436053776597262487825789947523808377324225685161473803026517568325328037643242248873593789788022498996635021978559336031689983332151003946168210969356265594042159420676126772056286902176585738905816433238723695835977231612895852926627263026469061340562665750976673975036662269500853584748888998991614745974580616611144513059085987597055240768906905574235008001473514260354399689504927762411415887454272165565257564370721474155057194871244854058769666133675336241547368905935711932271397048208558432307215969237618328175623821884861903966368465726610877654878045408624471016730486715870061464179713682431850920915029076495746159256092797841456638744368857206076608039655317468893937847468895062749103501511914647866694040501558032659308301470077452185487046310996453273700865658090687001789878653684958856906180015852580781511716059040311008633968614544049367580955191124177779881818987313570241460998801859794576187782010328624226617123046523112977927090670026849447003117732918997119146366363984339964100331137686031750829125137000531170907441899348485843800606556016642084901211324535556576505823131411523158151803930441073674159854337509104745582870572621408891049031003178523413853903192412777349626534139330161023196006334707672827270210245997424198110997151961363994700358727668020323437429024030563912966511473369704305821444910957236962736136121762115201033126816454857652256253874972487258825399685734824775169856088636955306425006045003873010425991334072934819600413509893585442607138539134823466448249307822873918661306540995444770223408130306494878126144287135006800590800105598515060568227186934880150800564611722111325234136234384660856968234848337042449251705913490852155153875049009261330816513832228734634780100206009666636483883419860857226027238479091937595244065449981984966153689510887542368878856453582201692135049370540279865118791510776616641995172829550799706913222276648830892492817308980305769271721889439304532368169629615732822212907060701732829765071556826285585644934181767008839692402095932615165031612626040872679509431416426811493414062731002033165270367276872529793091151290070384310876700171352995277867110336463348456463100976360989897687920788425910640704723828852003462382663272998129286258442914779804948146848014332755780453908145709587803588028379799320877223983962514723418463020958928800572852534849114660970500493281388171210051020960813878255836104670404531267372911124589642905015706190186015923995317506811714880733917871558685816314773610237909863648229948323033083828155824685152736955908872732034741814766634068525329476866054944328856575833613152507796142008387844776351673778442420885963021176312199886165251648305889051833977175991730538842304504343700617972292694133965509677119711684838199283984865858156872709787350450799156141427171812349033140114236551098933579464938364382099101617610528711266689056174065975372793930162664578368297481179665785189690265365155641062685255178043959640408716324661693454872572403803731272678505980830598801464518290098799151543730918020958611863497433719944479421537190826111230938225244284788709580182740749326334686825998821403159120051992782235764954186552823785726924462598744658578908786354571924500297607361486786498536537546761020681331157695025559808221682762639274527180519094153910674860297171742937547831533845433412544886814197781124784040990949435336216843053633569704914467793264779407866792194446594571563399288751902102038923181973918739782639260584996389848615372961976541413106565893216556061651949725038180229052537203955050151338862400516731024660067028644982395687095550728450756341004032112321056472835131395113466378234571454845470747499664130022404111694051425155187264955648837695851957204002912392079773288022448203052758200780835469355660267714768049143537949045733079409404759086315629798000032464056351946876273111145973523299944847211175883725851070852254005238782143148270478579772883521705509411815848035874500250328919301661761763408377396764791386057204980467384060546159345300831169169431956560832815716034698412197181233247985891577089829532972617166053997173065333627472185926565356136639398450615394552275572006942670129865160348768141325499171449533171939830471815710741952603780311691323478120687063647689359477088384260406274858272026319659797591160183738504690198497096412614230610001578543365272035300734781329346153136630784244886801036751046115631631266881052722856058109617536085503740698321411772856707473751841017057584786175728595129439909054666101066302947801437576083688957296184812140743032820809943454705494522053423474825169079825272839581903111796342552770638021691272157290313264842450695264466225101822603876515453027349703214497423364395705145912880255467924275934792850065243384288225042929578895836452869009354686020523922059099916959068131104512170185373377172586572434486659205166963013419437847637421295690365147799069034451221166394309305373628192610242397602547331513016621645916945125256523705403690139782763717858264742065084975353106794718100216375928051553621947934612669329317247599185494287865539916380614348828596574322316803474980123564529472509813188623699227805462692252721365222898087533323418077494022124509719288404422552150283764035417077314608968582281829790489195036347870320330757126440355912222238367164891052738702120200264499190314465188516645529621601849831168453704030248633929110193273101352872508617596247029005801322643394591905845567511918024378050166032940458914810590134853834838563409246646755237172794902994995250572155936069788209465890791501934121075408951054256221228789480818298002511882167187576564050607753670031075786441255654218512200838919784385739412211706587360198263096235088758218564258344992138103383325489246989838322293344471812355616125900844657109551930390399804531185155425516460091576006820160244316085886133768173334931844447040664499286512999014260513107340460839290153784373419170808503981000596244903065950015353051816356806340569162172710693757275562686258663714044746900355949938834921509275577557703720210483938900419479415528543328489033614839965510518339484642906025983223053400207716351480553111983665922869939523005780536091510188979543676456874767124856191954928553722291197775428572390860799429622312353606386195168722722160417918480734764810175160704576169311119338147971697535424078372477554706415944712647658438820937854079554327773877252515958778043554635709567846125530118730379107837113424059346605794062646791604773415755112908341848412669291680682911100905154930530506236047001651402214140721069705856490964531494890438211711471107503305755832133710720654715253027394034465413085824195104619944691014359736972511628639970943476909909329163072377659727719423512561231841397631251957870441238188019041517753292328431997189393539139532916924565469207738872300345522708348750270552121829472212558053261361814269822692296155009193403074306251372264057636512460175146749338098175339974477865761516507560786096027523978243326300095562376574119037627102840290446535648140375189156960413484233177119111294128864396749152384322681180259129360568786519547976207413365348606623184401277599705239103992117514687861842855707074762050430939927426235370149419010891738575866969458963576649739172667256574960230211816751464726786710531092257411483797586847094870012681444287109188604002177290632547346317875937825461328097992666235259249826358811777636022868425555213741731623339803490784634355372299923166872717758463048513650231906859261224134632814936162892846891969810311152706871732776969244823822646346590646960367841204203389982295002790942617294484675121156361106753882157399161653081966131112521733141213165644024889383295712298206758831877137459558856737016214413528821656665049951995104563340768472906992687294829862416225950321088784585064924177543573455956881144075327376590763002277526494666779401097740268201771956106784064537561420452252245644559853765066499021967668414728469346350957704522579441396090400407784300304427805034068616769352748822755388051510699482938526232349807627990169604007422940876830072313034541441600854324894317347293490529579968392172758494442694613681232009590659446370417537513294555788929817349963623677347353013231793355517946426900685639803865172716603311038769999545948074791709855237801796304585070513037047515552638752840325834829361508163405852051290119708313417595583042740517215613842412365395442171254454639462726444872836153038098226896033606389886422341629960200324726560608282523712122430974378436801375866351009305838129259811298319605178753364944348442009449159222444078449579851498136206460854918145271766952122817534978151760858444715377756849232023793149710737810004782753277626380903440218762042011563232765470643620776832827161964643299143758656733079953288913301533539966928117137828360548125322354480447969025170754273956723058385381178533188182687958981653234955706137394606375025054361397509627955252520592485960107035542833279819151414709374346804258364859702986456380240636309140473942002555644417783759578662254702886168819374566275591670440980787319003287699635671114098525548818760193589295921384865858788764739042902670192323672244780728609632038887088892411629431854272130414777762325325782283724580166264966150709495124376924855662869089269371120344689131956731068311785993668100053771421859001619899279121672754616742397655965982457145461389353928920846811463688125952187235389809967768650298546666733068786824400619672306753063478649612900888649518624399883338528903591568609545992839935742924372777379849180902540752057849049111159672080565576872506964963772022228836509199358438934393666122448846975746671491468648909359810997509680590013585849871718719443075572627071163088549280840655037868361971705621278761277578933832136083573170966361772178517647877452554829667032406687983372154827225422784689080185162331825309573280579335084467683262357430129549125183026103332554428838106917925094870959469170063440942343789105618889283354885576466058158742757065269140175241501580825645404523258077399150593306988649911132747511957507905592902843055830272670835997873570544867691969988759983694899482347344109327748091018873261271958026698154006880617336101040089672884347602918638941445477389045424282010254672694507991613326300177551944588761318458359144449883237627361787305690137965605826951581686719050087435660830780401568757114709076864199309988920843149537533550616494042220018567560313985610574616592615786112631293664487658038040144095785203115320338975550573376723951216726019253473394414426440726308046316778547673937393359532306862746321499039055101675973246033790634482603373033672919571061541251438290146536887320005646780646385387531504981006410658268416582520643676966900117400105999870634070582610222710013475060545138239602898467935277161145802459112806820208129318397673515615214076768622784364210064216436650847180669947036122873659318072734959485131975223800930442963455225141601938534775384669795562773910847354991822348971064165227263347316872493146357411168725953766350042560820804342958251863521174961158852007045641505385384728564133495293402883965701728419470296566587350281850916585014037739115860825720408690042945070252626164689101032498532198633262229096524431849469396851808580294464516368403457184242401520377353674123000925502726990225069462558721668390297337385377649078841372771203186927595778750050000582315630747405543805160748524805276810434986792048237358663258858754911918411610744998260299151390772127535868152354610386863359677348301279497839776371994222841779869291574861667104352041849509774240673833444936094250086626089601311218209386264304125103750355364204689216773296152411497468591857860778205319013609840979913957434577239409902161012262661768147156897917503652076847329233279140875499577003261179836420905222938913763792388641435451816778187174241177541529051903830330701152732118141604911772170212761019835359837490101670537941429352304635540954963185287411730101691126298689449140530950483827146994290796078970695091920368542350050745815539747857799425983496675510808785604564573359303398221552262830175476327961444699585602418603879239879403946258568919216810808792911489088184965131207758613663407436617486165524706650618289282052051954620819459878719810778318137741043155397054408360308717098555006213789428607301894532459344570428481421416637278502267960941015370573423729021641059777454045110633401752299582287441529237458815563170825570359791195423609413721425355355282974560035676754279211566958586648187593267160873651777503209980335815168463628665485668097042299877314656289398328240739482871470060996628207930199403244935270950665305702190905120331860162520547854526690129281697442540875713061916234828824998875071681951433986602530378425037522808846750939603115440893043310743290624837649533525682870392991716827249973511509302306243230237804558759042003657303932526920857905421575075874100481486256312620860877941709181885700751729822922941710385971192544613594137400281294641046367752316903207677738091833513796419524780910889412373563265442061075976552492517705104029948600120687768716790745638979334664535343777254974997403208019289644114252275126664004910141329761881687873009396728273508531048439284756830575871411294258798459152913813539629977505133442550641866820164795115324436034568863637938046892654273003111709966219343896918511565362772198708045493897814315133997496996981158904222197626860682212929067766576381057203216313723568282565004031475749530227669208987721907758860851433486778808168160796551030688878538775775233479664868835130561611393885536780852031915653831399587601592264694099943890526290457103423862490162312115016712134872424656904390711757453704387335957197251224541747853759838493595112976867973812040629922786559334292546442561792867468562912049625907164305447339175395984826529903903268455560360724382189845665154460936994507786266685487921429456053219592254370277218573084527327200925175781164303399929470884847961086623971206798179576070929993491848428073191610766965213093269703067037422758087313758331324238538256018873001039467436054132742718393948277423516454706077631232692555666797675724244854151760707947207417771950207578467354056409924985214867804359721586307141441825685846292522362240901570281038132234952474190552208436809607089727757736292172658366277677676377012284372548076430617292938671791751638418326410757548685700825004761654000188155720993894589639259564476099590228538213090957305265347149192982196711470291870801091631690714415216937562936279279851876220265300007389246730450823052854975634898579920750246549848961982207500269377139534238655217941363770221097407416037978579166542322832338186370789794615955575378371838675387650676117509067598532318354619871560587177478967146717094483863347412873618636220696227758892823365777687001658567046373540113511910830474826940756100662455600808412652962897772313622394170974632209169753743912403314815426233449266059012135132790407418188712105835696259865218697685373341272438142263756490405194064305226882388660538147585832542444563108480056657608718608766069051302955867611685376805205863000149737482608909064758146127801918614716268028891418161957778400524608440989118924031325505063787330067737733131978273025822679939696632490349556632068531532590141828757850872283099377852405494282096649407788131395771003548529004657636309370313790871066202746545983262157348345513453617497115474770369665580774137073115623150566660875692547668463268479034398574795589575377406537738886519615822981771229835509805527323202697792842831916439955876149617515835146853811442974387866764627947654207647542128083211570912676644875070433554890934032073493002431547736170174368282702544658031831675603036213932799099067361724724934820405704779711809272714581603497782457917330322420428751955076051805291955172932390160541056283915271865366466202620861475533150513541153598117962750292294846839930887434405020777293399729935616009870067537936538308043830256819512196049773941912106384808990644929421078821856423187545105208275828924184371217387764226068634229350691380560767009632923111312608255431374870794832121847084064787901447017732493462475425432988773988512186466835707183785848443228295402636853658859048467989610295308085303142443291924761703289553839413263623369282365921668688866746539504380178105532434215872303071164092120524711705358262085870065724478412284495804694391247615062293347155414432922891183742830083862951413182027469627684639298375564541130027012902663545937530283478593618233661291455318768264197601366241536759324027442952548924984991074403789709151234820773762743381101181579090747280905685769572818289266328393043171441644270858653399878777565026294564357824365111338576815729379444676527335487483187281232707270389246977806946012818147161350835982001559919260907947453455468648210171290355366272597307565807283422153699289814305196898870436377356838963210349836324570034142951370626877579090881340966254772712629458258020227451415061228486371232198698849098773064306590478567511681286285619750574839123519172111531758843659063067993811364306164607802384412432449190126292754175760157652471606765739851153817546327421853594976939300824496942238235724833426198718755619380854474406651396226165051767279717606664566533956070039948587890592317867061679756584614753658863296411489205973599115716147985538512070026087358709861299198031867462580121571062936666628799122663496990200127115141929412082290135175396759845238293966773530863691437777496779799393283319852348205459242144188449092719112214002007697333410888735608723385331988971595547131473010345609592586394643521977177458038502005162823465768161122869332410419099139098325815485383408623679399479804788435718534923460540431544617012186824991861968455369736555411547858977419038797122799626058153662745182060482354548515541511789332933232707163017339436462161319748349225100717531076501518583633561061778516961021917752173474573126647973267233853845828966444312086888534257707107623496986479970836842197501760635142346203300470376369805192776849904670877727131742784877792558690508654441217858959072707417284841798166801709923519301766461489953050644527912138075797999128254248333661361036975699868414582339293419721124911117422096995672709442899546475867741296832628081978850202154110860439747200537977710903282785662693722477091486253094315936005532406897784827650516082790670339713224388784865032899990082036244309540493654344700686341815039182394173810746463332327537838451776484923672363369268241337957458505650087333942927372153668868607198301034943499469420895460397017572291968633595732106968480149009084439739205138602715106843700644543961031061085651189872385920042476212761080358943655916361321386843782368527383545941226917142348838425257351135176477116509776513328063787337016022675567447350098731735397905854727233013144788572081020906523033927245432306363355379699415731877638027138672823533403626490542750834957042184854433785682850552594023177794291758610545758920941315495009174668959710138292315709490573136198212722615386919201572243964842186769112698032035787630587219090137148589610050492221766114728467368857161386182715461945255723891780693364529448363499165952386013690159686544626758769608534852965718298752790645554026842062167428108389624883538935910717340801103001146314600937981013884587824263229528605265281376531479292870334751707018488214979925613238761061948668835903689364030503548040750411799680534384594687414516290517423112329279378889689835057309681965488774203176067658651447186373423660331175012908223751892289782955096821080075562402962530654304064658023121978272442572136638905006724808812772580615609436480790485280805500311919123330196519551509888323253367749612894442288255691251699740363716477985355436722135743470242182191616632172110892094832769498758127832321947444079150937359945444799527670944449212589133902725156992387300192894393936892637464298389988428091068230012390956113200123998344745353035767891869567792658360844812644178026694153985806560441717586310087870597923274884052099482494154404687340614110228718589050589797481116711414417218710389813106759363777074955808952636636654057785477670932905490345249148199807329491147715232544248822449005425650398854661323197790469223947997333788665937638505133386488066276032992620353403241982559901953603759595023915235352114076527136511411189008623425334697680633806350146148406170819183432643957374010896818715067084777009123304839407041048154694133806586811856669775639434435919652601725414681427205210002044262613716524239200250642410083118169936965863971428039644065683336976568475480037600763217171267371093103837258021604753432293841953958703188676472910084026751754540107412956781451917597033354447319145305399056744344199682150867054192854810930272113699766474759448167863745835269999431804161995184780814599425953666043490834453848853522106582057316892667259684368317104729363924746078703549873693185054632990503670591048001192470149583853828506540634077708737332970618362970729478929420032236879588189053145757323659802946009537286232251096003889576281761190931311319301847920500672585848840833049541983622542962276502601198649920224387868238282372759743587365513308558925037754095530440378152030893676621866307012390486443554223361452979842406509657860025734946749094868899480721251523208924023586913411786265570583705752075584370255639622999968807759325709254438435322159359864838114806151933247405283504206341576796102328659208364778847894545123300575273873533075543545799897883560079966809379183166942057411650158331776583023359159144275050525242517271245455298564988076757794563641209935588345954441959727097907015411108932001663433587034368143492630947008490581355657794423400051397944929636726528716194702742303395886148378152739669089949846599646990402349955135686655869374932028289561917716065093116105541980217458062419465412623453511936385766008753234312624113353742120782707678289218975275750634264600923679272444926066606668549699364201442270257102781511400107731464307562752747753688697865706419017863150161989202945508208117364522521282615779494909728125780522513975051061555891076767555176133692044490805572875124446081303293767546256649971593299984685558660124901800559240988828438082702985400509493505991771865892889839391422066312019713710299919509206281076260045023339511656684515377033756368911340761407747303514607332779618413551677463593118514198078509385110309569269630284269354832288745030814216318790241496197762940740179661844477001341879070734118194970930702860003953730424427884651093221282203605300211921188066064955572560828654801317870282675079589219052222002896846328846763751960868637012673285024216364964175314258483599411192332603897897697537960276623985463054769574314706394338386924821215009851180427497980932131361023989453166623038901146625776329039425240447152301453789959359044997752637465526523072214243790220022899068163671946679020779238100616430894384397375036222788348729220460599931778038503919924646298434061587802236674213384908449487143920189914410245049642446312036386692576928408963207034986311203639619063098646181339485025135285427314139876686145245014232421392220447162027337310824400084307634726012865510707004585890829197016283111596978393145124272868774831465277481424413726167653289376569571193064319761823606412277777248373943641217815775500185835540226596972683669817916015488020269368111878088467821928015473364803248493186037964126980986858603745484986261266987755271091309524166056228048657906873907441260896006908156515707520328682048319736145137819544040734232005375021048847626308923427912400807874239058228706947048928960744114587143124548691631523294814984092230105685104369272348299324999694973449433280597694779591996349816730547820278413507106435190179928142271842534630551238396139647557743084244172711815725088123074986858844445397414945246884385828040996312940074138997107229904248255558100914947937522084921612658727096043904002483362049736126642924494598027441842233998363002634559649575033994678892684705554863501792326310984760143169264373687614882066020618249733542956021994358885191742233894644250018558441835696679565558005849935227800597685002668956631013522481727589096982111203516200190195447064654474733332435580797386944876136423273899020593530901419537498130603820413433323228694469242840920642027378555019460672325095444624277689637163059492109120793830555589196653408124521213789618978535529402230658847996029226923705373698132258900382716566519021513888637065014700737795452497388071812826295658677158526238228841702154309099365808219117230704751154040398078873832888657412361531729685493114619618176249241117743460133076661402384683141830218759675909913773861330961577178710934187583684730431546619347820295906531482437352060552536596589835125340807598824243569381166443239380269695416787007323942309613324123244421862120342947057773146087793234920279407973797296017324583360325210294254556303745705482897435756846352669763974224413509417456112142817072146517703965971156728640131609582638001652378975867923908439198398760144566995876194474629663646381395820367875099599289037169528257068330345526791263855879495659426725632676750777802961294608568612649214463793151355163044026578183877868193454442967317071900839010988263152280729903604879065153969680214471660886842640222763971996254557014953217453034075529553341990914083894151291446399466370650924141441939480645884148731066929071885997434527081953054267319997183089296627224958422753162768289510381119564239176140828475882901081286731603415351269102920162866193134830226672495084173630521390482622186581518405602899587630529194338009882449103549899709226423742646883523786882703299389134046340143125940424125926866754994272834671058523133128907801378672451601733980258752379680128246432486069100229852909047636044248250912380545240711699829759363569826948906809731311093617507074012009855555091876933420560086145295276255460393979004720416682596156481281967615153265003822273584622927202415365275696051018753778530709500056829138480358320038404765008942113483030022458030869571157371777865562556414958531650803890275941874307865549114910120587266737859304904311776564730799643038836419539616255050702893079540564224210310603837150889347315546853074882420833069166150178908647381774213792835225630394451523859202503477209564505972323765863505785845762043316383257366467016369774652374105506852784760704715065062616798085724522739943389947808654607693430131551644742015918731180565515467547180101649225112312919667195066541769866745208734833732351600971174995419993917807914129261306026177668234183283720556413119331073014309391685799194981277247459073455400580905501141717708701726061256711133281757230842186427100019985799990364885248445307839031455682936861838541787255577530621078464988144737777134922973602890232590987992971354733332385128588807075581938847426308234460620828276609801371373126183988852232350042558479716247247620892528269344214457137279951582115172242253961192982974923071826538939403837410560970639165492515635188807541003754461498549969529697101679718040887127368766315966008315511165109891678980542478836125743769705126323662098094561604005171441279665759345216639489468681281718699877375655853994085887954002828393743556302355486712356307330583267543966969077004207724541628894440751457367993921669575684927959287667850651485244932628907472211426548273712156222867631870076914059744009905846357563592288662548011481047593806042634260979235180629168134090551965700127410412177520696105963551066347935466148912758501341619737645232583395785628057976474389814014824136411435609937137772350093721977549140002917927553070768267539447767106576298309956906205890821955756818918585235757184690525467663750011445392740429717798176691574455726201075033987407660229206543955915244651983320623417279871224726942169296130468415255686503612742038272470892235980011921866518755231707797780738625819343914123285183509587521895215986366892508151356445917278657784306411321465977214719787721187479182899458172874554193307633695450961981917145208025161817809553826818135178034278769967462703926339733069526365353606237978471807002551292401001518346266111612733316436746226286411182774345146480579730598074243643894749800575955885051344993715091583946019861896033152142563450221823043558491852063774838395690343643756959484825875898503118018263325109665492950066269459288129556867711996249535403794254522057805866125366153295753744710583221920634865745574954143420351848105262558478757856818916657716858796929209997119736840604219459242093846606606771489601174028954854322369694123891483503486133587560485489998625489523444971190869389537059448095544255516504920492356253651863556211395110759098037867277623291567775039792186430802704362726406864974979567345917371605453350314313020396362319131899631075214601866842806741504506517474021711921710675017259094995052019003115627178831737650319798181342227324192087909160690350187899490050924629622938698178558713723815078410773179365661567720599661456050837333515238784994652404133488254128661396953924796995729150604480390112977128369480761153970070527266527497237725167712596763700020253352852614778517682139875311507020198102709800290598977289780322127934308021239791728122041665907358193352775394364758882119507421577555744335142571454506258519818737295569834655850547276864090484364540985042521888267748851819115428458006444584538886999095214663209679009086850183133864465073858189691342605188397943383300605305581717573992374922928397769073795312622628765944197722508837890958724187708185642241713680643185341401697197893097363939509514567304864238851057853993920570498051579385784916695580073898317327616174009643310583794269968716137704660202596348155605799241894944063533584459381164242519747988043075211210414624570818634180534860846093718061741167197065400887035742602381444460595937447757988535813825995733251993456977319606087725377280262643246335000316729059484590686105309086318839533792272761217785705309566421808700424270872114953128851963174602028045202348322603500512715479153391824351002482222548726162718319427650470525170165463841865496205080814557871369183097921776705674632188668321035406539739943861539090080071916027013534918033881358710563299977810251122466206259540561606953935616174235704994595854672966487438810639595025542492477407750045006723862487205821329134624494479166595151805648902475139838277219059684049953182910140465045457136435049407294543802941787826900704065896235799906758754759317676439715366732426032415041613025374620101832942089072407786095617506771033551000642148230696051143903829695324222416059068826903992635844826817739787835370134543831088122557775837402129983964928210701837189660312931582223865904489948610412837125652293292564456418588836592585813320680699229466367864921913869197333835151695551945274990400131795526526515228451239504560912905736965047499248799776121531070788187356644787864708417341753188787110531610289143481802913629344210698246514598226209767330561298989522946204510548725337051581895330506630322194546965166940604367970958552752609301822996986075137790534303947375335364615991206845873143390180435711647330168978549802743661197017016746635025867729097685074216676336826053880799307296952230079626679059878951869152661571448455820600083685044607152780969654984909562066722383927856039494826374523586282645767928734991377827256632701744824163791408501390114016960009679035251151000020832926463931432897465169980528933623980635568648198712847835226304828641837263906595870701266112479515481356765869036078091654996900813820359233622583887865715541841268463912627466003398535764650649088830938945949828410485828749118453944271043992150094738858263691238843020052393803173342443037829963184619049171645289439281786628041804193030778243858973657058399444971517230228276761424693269087365531110691772821045722154077359053362406380327912858685912400569487383344826049399799942377553267595837329252175338751068402513595557837172942129525498511901284625037699511041828009104287448360812303933117275405148204511919210421875725220748836964799309998018873249298811656610706981405415532176706692918245841627083460636943758954533923280274147941080379204063094800568216247066828452576708317036315793625233844722532026207064837005626673121490428766818315406437584136353956968614540140997624670283443862828365092886168627908944674352337352715824279614470423304141757277817406914041403695597400135098263273720178553997491037136963983651858582896721264771979940615112554896618490092412024790048236036384198753278886945815828176124918534301548147417017142342115955113493977397114620860858754200483824009166692227862381596644563223444812206112638056723919914825284271884426436929413669043399990947827073910271548470735695085911344804381102318408252219998831415812100156111594578421931564707422883100463138512002003322987244340647504822770396832799193424784826575783531373666749593964527449776040915305902514067212906042096546710651262241639811578372624583925787627243390122718410141819181823703991544648058297201201001262751219572064476137438951895196623118374579102228245104536267836575474702302022404372401881571814622364148103025522868120928969062737869512667517814090027922886273575131778164544596290797275821353534630308160132200064004092461961395763049489017050310419974977105952470429626797910384915790962678671676139987458579062572684495728723484346017749258309976916200602216526126496343947945965870360200651500321810315763457987536563276665276692074858069584130203920724305722601384777285878621503886179397413840388558672014989826755898544460983785730438618367990318429425830013125821184428318827766376313177737056716881832361150421976806173005274777225537318578690087896214349341645345294489435840433436524443235735999483126034517490240342798920782048679248761060105001267056584567613180372793371444979600510049429774374395856615949685479178101821094716487907621771234157802135967705659942226906989805588350873379895010594597732007209425775182490856369613070084104923713066139472885444367777841866717413986288065558471592873747727730266885670317970740437917854356009205222379009176207290433267579004144371110984509777734400462990461486342572994600732421766940084574425836485094831266204353985721509964329731892119045213590856425239010681759498997607575156415066822280697175797073663159957792474941622165196014725889082100962938777422379404751982553893619920472561489791626583992381120026137364619817015474957976537285912922097227043832054171115831010060363665704729249886567504945557014558976408397501868214555184424118201548319533810997709030138371825615799182918332019871304142291544425072821112959538774812437150031965363158367806665954192159595460895244566215572715370226830865565570630980433359129451365687976835677628547387860774017048838972483345396148447946933313954261554851529470211011579663309912673923493250994257659032976102826187117731912445306156410936379373371258677256381898085794213527562230081547574393066764247600642103510270600938865869408363924442597282238709672338302437013472173260097822644644392785548502305229351200209693593003759796774256748169460810834374027178463359547152913335637098780463799602136544179980321875628198879691875413472715395027697728243560880428419348657294183082149858936351600467020803057343196609158730302810602528767031944573989930625894939244241889220174912021098151935290616718926093136416293792737638267327572169544682469944487247819640779772135655773100374260173266746159646795258384867079832792993715882839545793296158980848838345063839154629208458689337137724397405942783751971305017914927383514806186963412268324189220346844198528764926010501943528766628980779689680984835594592781356574060663550419661451208886910505130308421086091579074351075375404129241494807585815231087686601891888518553071440456823928937197217800004621575716845148467888673229591490195454470478507056844010284784938066325842687669257361261445247240007561147041978144118904226601223444531576133872913572308163286296889308140109255301318484180551448227694063916755125368022668527577862270808073353353336686618849591543260264289746510085727786948137575755904088340187328000311181320660551866004803206906727963167310184417480896163662312915023030318617957473761152023434133043122073136235065983886917923151000890122491073795200218844401199090038746960700230857208685376870430207296516152414194433651758481608883752135349850715725092239187245248828267971177656282386529608393194006903250016360448474053334496233695386985899368486992645059838910658172847004905505165559661357136502447774334970646440915956116040779596508964073709653127159989672759145033205678079347137165166510321732630073026906041175043773041934113700382395619467987830185779647535696759037405616871525208392898721240187509147618107720064653547270610306192024430501386804270607233315216032655013527851345922137052179450483707522158279935057664936850638173093937076293376108545459791523366220322819365818744482887251895689261733916031265766454098128866797132784574491074444908454094479046961458620001164188988621815900183303635752613247730549173178215024174703654041358158937695716865302327366889980543939515927936945622952125920333721977794639365959865365989923994472998196853549684812502438803455067458098189879153099460096311391106656302206354859733669215394403738725844215438124019025298881195580148201065515998602488434058744976371512441234727132351270734007246718782286815425047514657032974364068892698972289210933912582455007210330209678199637792359617188905265782361476895125303014265510071494773581051219256136134564515263738336955037923086345533270333945975974318116407404855193555369527995436676157943293998404222667627147098133455997190599337940671375674332417950492050449872685133147073292602780259529095748213971346030044945610325034367565515939935130419155531888089835878419727366559186220860534960950495962912052732501121430260490933741071154383853861305379053783507193666130187148832274393948639418902739487837058328575385282763092600465247004056614795176732028990483224416295430212970669508520274721008101709086401241887958207179636803569655435504800225699292691805001711260272709746957059510494382386914849788600815112461873910355490856939621435774900414073471402415243021965628203392652392678100041185249013975371925701661612586296729498099096065686045179419790300373109407990686804327510276791804526765185745207460425354459267367768749622362775669046937472345902872094527864121886477894341870753700196567220818904413779599607446856085348691622267680348451694102861442198190177806889342980215942619528631372702605477532799418726332029285584625719511108730926459956178557292367807032258053212527566352568759473714848747876992420950045663043719644161418038981346445323224097861025821412940570136823118039553703435496096069860289541322055424645422026027623518619434136355750283512138409692943700005788100516812750825220286404451756780168388235253203304902175814381428412620584660577523978133915112545874820542350318368511090147363892722110374913831297935246337599435233534273861203509665883770082526030201187028080837243510196574128650515349755794880153933737945805543832494112189184170749927219504873598776297416004708542757758800476717215667674917939300816666640177855207102262817720960657441112329660000172186001093306516981551868262111685340729120290245740523172049040575917535383893427271583075754100112942296549413070408795684551168676692640952482293471089476391053939381819084469080161928981933580381325964839374704546943909368291962387359828179316330042090254167558336089527316457150493042120175013439568808951964272245214614644776932711386191539446175224220159504650729371787436738570864321632899752278367959551866695485157327334867974768723904384697123446472022689776972524986829463331191462946621441221474989139740984313372200899022152049383021884896228620369017970084627048323103009460696348376343534648346571595987175335955545292558973192320574004355178265044349991453040461181234610687814195926226148266916014724360826838854892184961159952472130220685404772639420062958779765100630914550062851595748451284276426663317324442755320934412734466408446806862141992176988501292429644310490510775689917817646190183949930981464160525491834057623249915385510218575065499411432851747756623840933270067222980107780190940980875626646883419737704851018960234621905262042680383496268816477374006911361908589941866817103170521854020100697537234005086796525106924603884236287045039924179288216094148574815367420538538244392591499004036634858502383895320905195291186782224230240038344983220583033491802951101639121479604092039841117183015482384026550573517121527074838411425523341091493487260586419804285669615379577995718396640338912522296766594938808926994551158651766193813455994368345932306980548724976692578092918681771383789290937905574658051038382499752078842344933874232421432470833373198667802342867546904395611159430699647661692444415266459331836480364165315864800817875852477564210384443031469970831597942952222079005809874324914573754827898322478850564841964792837619758448956709430868203459532099234400197948448565338717781742570306853427944016923236892878510731388574358897696568020766789853267635796052389804444723657202486134113611192845220853638173611040862649825008160617378215893508309891769051062510452938009862799478407866670129171403450139286419847845178287716121655698804181366069729573560358309283748047471339991353287102842376795791751904372666365218328330662522675159595771242086569585771798796365402174551673886303293165474112064669954661402633519912414943140355456195091794289662565096239095866071429057709448126415937640782222555322749242759022084197589293783485990920282103257306441651269927545111130173961120402189508699264591539973267211855242955183132700455183806409942074776769746789691849308487072886885604124115785307737725850854587006794982235547820172821773971802882259623231295177798483056809297397693802779318957697858983615038841322927115528713081836918753471210257969325462085986788219719916592895955942306754707729115468359278003467340650161695655573407822674981323950107713899275450231871945705650638150524426943213121392921952570872037739918562512689381568367797969030513165221182936697079051374205141309254527026022070119508975647994401046448811534748154408529943345978742926957934094356344218530492679659109376987754328533817967660806505736704881966322210385207621493986885996327821263420141341782372964940575676268866500910143068828155487737114016332868300764289330228961175955190514312427633214566414022254429260970915525552449242657140849915695459541614415939173211134093443449283901385571340074826517631893442709122351835513314334676460151174992143297512562348605859580976525814608303171736229194489551700387774092015814054869258741048329739590463026900417689344389343790240011843302489417161068839544741773053293746353480459540536589873561615548599703155938298912856482009189167593234452034707394461819112085785082389596020986170379043530160372334367400797272016597466636418540640374664345236647692850492413796643260880555597017688362429402216126670262230067655945924517677716459683253551935624666627953385147307689625092796545571597184287741749754009574589711241195831964857402208149910279429964540895874683754484695483147576542311130317858475951298782041161606350443149516107498142240110330619743456861030542499490058837532592876251214132848195909688078139140321018334220734342860006162129014299539540193931967495528917893169928497849671576584494560914196919248065279152028478261771390474747714966999959592114288928192663106113552808275727397429796191568012661555275021715441012913713240126507371871555563391286581675765220448772187492229820195304143126554750554554326203238789587275960573062537881178727157003732112262611889093097647863299795374548550956776377325504318168092014003449269411844332759259468106942145891819335090705975818439689969945358973986029204405999323207985881932928305896653299963228771084856212283322272209930246102183935328901689237064557566757906371873935917487589193806947320237095525208103477749064683708031093358719863767330923583521360923457829144634392547260204524285745850235778118086486750298754407657025299819126573481080032129025859764256488564945945086894270422878328187165298380998750793261555099214933492986992692627649433335080829271105611750187229403078777605822051849175865611856344270500741171137855614884024261897941590282763553081765964235637389691552316154734361189341544596067918817054320247315546729026290316278585933523215778913770218021019649055515280341940404091969699515094426738459497234758102743841054457605087839715235620135702914633414718340628728235894517927370322083700767660791576196389248252441854007175074860770173560769736509379820791196519800718673293228080427850726091137864006332118670665536866057219087018755334624501630597214602856883312730422531344763694641219839833141736004354973730864309065664455018695072376510360699628678860274491378505822396522326974356316853097809984231339090663260361451042728241125394123537577272391890938624503426572585101590558278310354271615150722429225593338809529721362099941640461272798462475001366303110181471172567720940706331669020651205542574313982029910284699414962280855340222972354630581763565686862109447598926963582324575508581532877532492636817605048228748284900473895165238510604802775356998728588442975432853954030913583061274189195135726990343210089963409958574176556178480494874985647281031307995262045499652739046243565375785617227510494363553639144315673936282996367317194433677368875662751739166049447581672868088671768985598551495512112079681943654599303806940604342720639767237647855075784074415109721658437346262505985742457629558667679926056623406417555605216565274758932083922596418082182944102709439862536375886687436910443404141584904925172042742799092512964658323808259412777067693391331226098478770744529289204498096475203706621793647427733864330172260782132115397389178421315664825900065737774820033434565033013181976483904322941208231904288573057074180114113402924247180762286197348291900666241056751696060643491194317032954536085915493172477951622235907050677227264075996030326406741590642009008196236676653974989942398411628456673487199949661739471045558184178101214905457678605563777566553887363807958689467416589326599995730292505821615302859630245816258671445478892604263152135771029994279722499133518766548757487294944729111037437399998266572301644340731190163936447213033381494886959905225463224320698158325963445684025379532726346788094462462059811872694405974902235000990381539936226865445649592708452973916850692995271894844181601451903946672901846884200705318911006918687893039600116916342520310713882901568803803454360088785158553322848137830872637185924494712637481191038689673782764548502194565638061063019888395714606779825152133377857773557698834524121255726983043789439407191244346041142259504291036317250546623671005593536011457911530637013679883316421522106444757934013121118846747409121883870912841255124304114652145454009562334546207591094420898415208535178376325272704469813497512462563444703929015504481344628508007226414936590115453177476425063341833042629373323045005942531807302352467538912687105164275911018487574968994998951559889044038340590544584010143910095818318182074773136492004312656167372309924563810025486959442477996179903570485456376672246451923507596000488610439535138854650433999396265091390249122857030798392955965916559072169879522112878489765796708556994489890552323453219947205848711716395429782581163369948202636385879516868412681987594017018413044819196707889247445720438438289125180006901091811858741471902798664641921892133248506173011469097796479144808640394051567097035551427036148351180166276430715014117860814909072933549385761154995762948122726665204856180510613840655925586978167919044154753143022971968618200015539421296563305959640873971465125828684759284131463168105221124738249872355682939431506001764787488439994040733948598291095344709840904946192787055994649261038074395816936921931553886705640834825347773988265158181177764659827391862436684039247504332277857825464215098700600380746791236990113452784782538542774223275000497234836145033585192918854114576279653582207690135019938293384390663234517714055672576976798173782087701176005784817255252095731738032158699244787359207754655249627629400891082588266865076003791814197832492185046571926787233202678293175853743408324903461803696341190355738671001225178159191047882534638407084121793569483563051956371538277114731494334575985293124457313119159966648412063854611817547310176007520852996105875103874288939930005581602370057360421061463187012427163651427094343898215402234020093272252654250454150863387356638756024441151207157798966607581965129382880547615064960001628432919649476862956763021993944783840067737265696083471497003407683003472271815188524930040078349841771676856624994322664648643405434801412800665409561790932786588728857689252223875888357279138086109392803789171663438801030578270531111922452991000100436359969649943594061247475907392136330310933962677232955229865575981840839560471775328772891337663101263807216681165818585201561772775759154165362346810493872312504439628647975081349028200709909338040823348380944711528811385651636778210485656783498089973714700212375661610765145975596351903994242690854526641286693518709474617664436266447219629752996226348624484329057571052249739348193962382099669081623920458393790407580286990963172428318105329759621721653741231942292310319903502814427688362722669579576821939236766277365314544006482140246634326396807665287250005322393726250794630752929649974171182204151961048393005454356266600433015543959384164138154785308212078258137615177759859294939651381307193375454774025542716645331367636744892434106245910461946278368453177408360553216649505946257213869306017221913301604063394758209907751655144068203594531333724082479397462165384968951052484255908832470838253645568697178566385625135851522827120224021708777037447223377330878818380712264937989768568021260979328938651584869906971352455190913925595029680001977348502702310543039182789971073556659192475180247514744245910402789536122148284794929505165532912742138769489013111712532336584334844316940778946301170943032000429410435957774968121773167318245129022361978741959405398593500907806331605005667016165630953139678560500862850470341919340026496793502324932583979866592772440460484081250063363708008061607225401673201754009022916959937580097115285859148760194945129038720803970274479554231229184626283109112053872817713723530828617059634250817696414827347823654138470856854883497114789561924428432371796156910959953152540696771244435049082356401935559016678481793681156514933443115833931367757917746915719731238114582313928584088219718131603345273690571940513981076220477578792579580292684398743428152062423378618103848953303260174010297245864465638439654177344055113982884143640334064872935589224439717901805691112049579625306677756643285148395613343108693474511733898422406187225610334614353585391948195274606016592710699239442296302211214729426322515268559926215160319830728043523013709838114420870566089419842630515976834113223877839750822514440278645664912952624589481162710253692689739265809798095417278136080993365937987602934376661838243901885711223380534925951241127276132189893503292936833337514619742275132657361215105740370676476777637526605230562609086427543680124726764994397816934610401018032478288525193869016884086372099669062894780215192820049182149711885221755425998378646416880224934305608636963361593230127198597380492133189185476426719339290751618397448227736167749046572256061774392165573648619513174877534001434708205025807864302208319916717867023121939754378686935645788261106900226800354418410967666353123111453121006952820015025891798740693156468481318495525295067892316328086044844029812309732354887781201925664053100046023259200066349879659431775676384318039138060484711695705326189391902794125722255465088549171682801639972199797174876083618744254833148996599875006214733087773679748057490455693949909055569812928025582577867325531040975311270590083553321383789097300268293302954458371997165743876186612503868256037257508943849850469634341630975050804558023198228096635242659280137438661986020760652933658308006410623946099389053388280079848857289836139360764316037904384200205372012865711033721945292563996187762397394892803861456868556751950716917341277006642499128510357029688587629334163627239740453529721627631793194999816544914351630925584969716752283004816821019994837856390085873619861298567513257514496388517373406799781119048130876369531203762769102575288367716968613993259622885451587081368806283492396534174859666628412351780989891939781715749485838011105181550980658134024093904317534338502022879555478483819716810871066196038130210078259504994127432387108289408487657362424030553856118270851578057907459256209589485483557676684664658851322086747818779578311197277278879631971346315259492009028497229805666646157017276978314905000710139431895833757963756515476973212465670792211182174182429541872153722441638064011295740859227066648365387161685963311848374507639922914094521220722024258913867886763944862864350044252894196691290867611618558829236805156913516105223067974086733025487898781804450139248694108139533599836967850212028024945366283638076951548444071399760821305936099457426556034802945911397981363774284512800239858624569537994715286488152150241772026748962366306585444537115837117175638783421742527528359466357887125040044013906685132594115023775438787223015869824293128692149427332922910056641554727361816668523504077722632147242677531688638659525240950407495508425612862643299328365614119947945889718397089595105537417166334259371296220253403608182020874380267199487269865552160414986495843533701365103082868203206689768451605892273012943766409750934481991303512029983950147197034650906112344713057964780201853695543651720836383225941986875398599354654740550485916738060972516880012122974605195990091095199448896525898434703442148429997396573972429722590154916468823331833190087733782076769431241129849961344158475450123224067125814167252494036900611392003646797979952262183810805906435363146499937402716436534303301260415806101463755175509312011264132667171509190766500034251189630831619088086187374413101041093643823559247118010056306487262163073943439463220027906904845450444827463962332582333032984900900688805754489752047341532120094261737179965511216482590127036713354948856012682646360808990956155824874648457723887671987972282070997904963171845832001022594652487375196445883050233586062431386054579864158048221460091586584984190956553871452035658607244981931102258439688372888163162123911046583961398254860759980472036350384805313468109566436300476372033696600075658243789467499322183600973351333424669943891882625521909093277569329490827253978894937271388436329038035176251803603969893378955869779704242872585268552773988789361965525530088116579898596761213366261290963432166623126988065608559225235158258754135477595387693176136981725078502153147565848230371199086643792940946972725047475583927980723852294587201399403875467502099500753168825008117466609415318145497052563954212968256296631973960825140833526293663825917052710377392015463790278499123034169752932487347975763452812893972034162166898935751921880241068092443070629270215916389995619094410831781297184886977139667832164607764606556244747197502388018947947974924471476553946642468179209893296692079931702119921238124052244248244558731456534829278357815816696592575710497016633097772511746055648800917088587678697528852461642479768423443943868225011233599009804087602222325325197693375721648035230012178838629211381764400073679965127207473313526655628526064043576450452582796949518228274099732247498172975713141690280369333022845374257687457003072130374108363642417873440687573885049893546189552405956121902699261594699083789408327970185693240915678823332273990770239381333546648587740635051609357027543770459494256958801507493148327773645301893683577654615431305191084473820721839459252202932127477621835163113408995783702751097279540129494590495374233436870184528324991331404729468713905844557308758178515792956612641420758812969285996860088148091154316860792812534505801968842063998863116197087495169930264321817433762938469948935210619265961740477966057466515054303396190149041087602120234517246934500501004760479733119295713645406541727177064159459302622641069294215283213370691507019216948456510159795970292284335757950666178582984548122604560367038751151991234590709144562324965330422029835396097544803100697928964307407990645728980322616561821312011006082988159150619175439973524291310594659302683263621116686869861479972960459858739582827664622515721498813116076976651346794222303425815196468215223013422006915986925163778338899512151763909462345725873835148518319228606015493395588237279195945757966338538046759859122211191148057391639216603193126664840835098507586805766921893068112243956493404841520928831667717976535362291318762426203265984400372345511941958387439150823600189848279880307259783843252521512250529988225387626889405119097140779674941201405471209988579097618442445945720722580365773136253871517875983841252126578284702200993899297971870514657182866039840399149250009236068218106154849127005286790381463413356551161289966310492245590444652772337706683877308901987853552329259083500136735980370769209111466570112060399475516021690991094158448843601303428046557909719166876758876778381272996840479493157226499623552747068770342810966724168207009278215549549825298974541443825928783740920472351769482593087656543456037171233548257365998314585773015033455358774822601082517296949667493522584574751561967064520378701120983313124315581780695353624682734459558218150281509626628231157563804850942400473119263547526677650927088126336249869418025836856619839063586852970174204435360975362788647483659004819888812622700760661656154477515751800825168676428503074676431383749333007246262931445871569363248406096752890204472863955569131125506408256683194408205797845931681340901717312344022106347427789284478999103320316543258215982038399582941830421571457180707528028632094887030471307921959332310044939457772618339167897887598722781533835299695273505286488839691833188143254551260371894018124047968944515109855408163009190296695870106540538159336005803161255013745276782156289752149546329517745169458341093923983981951082808673729674334149248382930037648373433167967518811490810662735215386001714025224275313647900880684748761725805705117024615619752526774565910230127515237815357543540546585749984284283831563884691010963617926725366701984307968596471929048080950322050018058858906751510265520899211494155835267934084248897614837044094873786708362675895459176173240623008025862387333628258354171852584851921242232114846122610193742532564110289838596323884864784872245328804467789171316408314128885327651698432837425719742962912677674658826290221691953275195952975805075923661556036224300474275639069985671002517590034258196997916190129796802194105675881461539067975021096640111951662103299004735419596125986386148203694404751116597009959848147259358291966217768474983259141878792519459000949869766681910345613310138696527692735335762851065470947034889975985404870297261502587746824127638177257168075523321219784997871321313565068900042252747037304075659971079404263374840970583061856110935384137011822130250123293199333938083332036200795525606782855346209818286540000162327168112060348167793803725226735553087130440654029232371078952633312985546800823283591173629261862848534112734536831857580161231041833142633044111328650335534094501791889396747439538962732746117660493718752967500950196385940612003215407322929650359150019895435892691316443568055676873752168503474690884872226503054313407710562179337063198981867097566577036106696787014765942038895395520843355700795737471004189375370630329622622959180714727044385798477356360653553177240330663543151426152542411215335833390469657462074939856437045596037802799896229416742883397698528724389811671020034174924372783129127466788599769439135342546499284477845471626702635956102841621210532060173876863045091931675514512796435992923943633630724765394276001210391709113828298889308221643840674286408335863700592808974587156319092528704504961282339902011323441472075607755051376415654498851817598867521225883089861702270473353010405668434594807750544982200740380817205556662123192276967837037913581150743432676218633147566808679496325202294638797742514042031765566366131951067764464406286253759863452763451531346268147168994146594003227796102925901990899469826817471160283621794700617391975590131157645137743921206176356685832799927695359894190014193660898191455491610318358852333392802737664728229049069436120542618554143001952661759422548398247100237558456783157175520145262552873800445726426603879712812250791055564874417982412584911567505297840644227430956411633123722342897388218461190725751379073061222454025811223771533751278143640571171249686510537190881049619145443807360882048831975615894077163426961918406283109822842773156007415783588081116105062692406667909316708900436965082296153936293198151017753663432199953672004182763583929475221168539946283308412657901962717185204384183132227291923572626079174014231905072388955257735858394125278159284842480163963099419888062257437096675675295798149840241535227050066927593393419896672930554226075750898192516156818535932502131092906648884190043810920217473681786802109599494621618425705456377812103422260754308171869705426466037040075981820504872904454530538669550729438499362569889047347955911343993080269792067478327511544542468003347183025467416324876026190742711547253720712849773099084903551742581941070665760495442929394223187271300723140304316360976570953957581594431828565474381417470533572276213756441597864003849189034445738785299865454808681823696779549602172907126271360775406939557921167804239371159189631534115973167678676228501192810146054477575759095810513490969266948970467561589465067610259556129867762232822493355443220352229638391726952998366419090639095741005915718940329238569304992396628742086397431740015980944651164210974203437699943772062311925919646949805265481099094050335501694693776884362404085334451841697836692335770785416498621036263048773743633647170806056151852636259212484529542358849281324413408227802904114421536411010690673471828712260077194711808941366515687602866310978811524221406477156998505562406481144250107658781605733901765999964240795802905635311563861384796114165630285164258586150427160776381992359214888405939609042855933038087239934480601368599557323718953017158644679104226079035107224231124629665358724275508818315686227507920514201705721545605020692259573242992905698834717256763978110033272975387142486191151732875978498547891973254065586321864701654318457800809585758199877435126928563848343591451218400759881597525622208259967588104678133864711993576348070042198801045132745778942580775754560018961652128260582280336174075646362917780768433119758343907175785463817814538895601723426382670263819287899960108512039750218555933121980758874427139618340179002213986926985751817054656087330700308600042668833515123615439274408240165652427868152889325889830545137149215403702180820494728291211520316274018330849396360115316974113940349202428666080408325772397293725152620211866985984181954831612437605223554878883907165278363145920515284965844329672692839106389862694795441181460855950896983550326956409520512344917519857447258513293628546107863799158825856957270982428875602443932146690255168856665991020374510295675274628508343045330265793728113079768592508878215975293133515336814697091475586017660828130957101906607545356669408510695311646251993274797390680072470108548850895787736051066693778323498700422702677151758936369435146191718393339796604195821767763954478933535103344191566823555086292034408659298959018013460951637315047574340148272108219488609858165310260675557148553664364066718875601211431916261542210154072294350668666854018591754672459481296921581569147865441728237370631047798254812697678927490314756906557018576537022091091579622079516995889054332229351411768317315784841581884850054008025535687626457220540086182727129032202427962577169548093525134127765291330534629952570240532504015555501654246078070728011621043345246181468342908372353445014870389523996750868225208273979096826827489396244357105717039199101304910151466895830959061448191544520077773362596172878942596294531320808469437089675771165266083367568115719472333115180785397889011016472925639217570821473738758904668903561222845356414359137721178215298201819030222208774972384070361511659158267430233791462455300775914686868537237358677796087135797304601862033450386770491437263125451090422147280029116999742455025279598552953943309874436608406336219788881639358405363442966434634278732990281989776851180574600997490118386665382902257612542092229060788020685757111785964317154008784044124460083785602597292441645336243038439463945818405372665780398947539003014526627020474259241526112003816812050209560103883119368726648608128104690975452554318707058686192959167494361631366500673703762295124957518959592507698413703018488554083877551221452585807546765100455793900136497506777987006192459431604232758609046191228989383385480263975640807758326317489394558369232613487213786421654615247504618475394274102846110287014558458596050124569499554750730119446726924567958289883437073631092100469347359314328523435545766127372395266463186339255951092750836154691667404077161873658801798494324392950934592850664758782137260428353696812063660033833245426207430341502882976678388810450198998087610761412083354195658566008114497044496168552611523465218249329159628759650618126278828230540417531626938277371156654803856906106876798388315049542341967840501408355027385970804455697971273013657000641615690264388334034890951205761174923685993720643298451015616871961928956300879540111583722780444752996009317156940250717504455096905304138436361938996900277422102759666250668470183481144754084165987260119696137588469770849866411332887214529980300469288533822333258946486485799802390147682752896812587318769500453110566226799289063594603316588917136464667990851609228641529280264074408993441541143184771234574319013999465875393191873824311675492887920608911049336213659940521376618720720498956024616149455641463844649454019299903240553160011964121736921410509043319684101867603032322560640033689445916466851676051175491928781932388569743393660862357469224383295933497481789166493125694503100855752446027245598557062173815937659212345947883233590401200906440863456472796097628777390486974446310663263473754909130609817132752610274211001239555470895993049051826627363763164689441836577296564498791816691238377809839182617532864286492370294976451612923931817376077774045867855077830000286300963563027506608736129399356877273056740680718797797604637837283637645593853794984527438776654042735320954453284635366855954583905835483279171022125199934649277762657355172405927385425056043554191717929085649196052973917050666324687165613720907271953238382434264177711500475173992896367924735158125937157491951556973832215148179914671007141702836227101273953623535643637180967061638586506072323386986290144382381048542376334512755536341577991160696023641442215875217274197826773170564826419131465181435107328501822954380164096410444506473309455049690375742190335116014565879131782759068643709618440086269073107581274043944345518991114177711945153367968575461736654100628814490729792228072441592684847469359091443857206230950397029709357005399711425231416856410241285117054575936307027723469377202649526193118422756995079951933117474606096649854864339678241530291473409356708535966171885640978969542642132246712017525152460992580019805788195934984280814461964322459737741814717242624745661870551199411946083350009820572843259222547057056540888618821586400096037735631728226858917041895379071984099373029400688642268227901088403320458470804230154284097867021377159254198287970460891285136196434836464754945700796560506879716316581253315541603917315835987678309934085012678814703142575175852027835040378671544883273356050969320779544668603783316254639984582697674513244047101906352265498329720045581706134207879442585349731159052995897464000626991823846748921572762399828184787859754455904392505790322324854434817386131418994923847374165733912988698688317449511893925933539970982566808334055492438652562398778328379513356262785777761935106513291187009778408616569569978398174716706977674588227856058511562258250575294834019925013742179996259322479419065892254891544701535041584086319264271831447464811001321233694133272714272529644055899409637291526836846294618584148184872257444336732871111930507357266933879634395891694487363065663831385045635822539773015814733681759962530663684175942176354095608513057790702723425185482839116121996207159784493291917941438135682817735611348902653145599601166576202353496817062473013243836493606749175042849209222539121299024569050927674208168725511327724207854951010386898917649717377623822063571190049930647978227889017986209665225081254676850723759182818232482256940256873060744498265725875794821857101221426466670821414006629224105165843604269783811884626886469911302998566836949811987997808811199445729872919944725244679447563966265790939557031992781194406881659453829070117074839457146800779349336780797571809968273729641844319247356382605641677532840094146823510836813412379167148340647707759161233755251442779984358107182343125432342744995097102291576411683793109388744882601511185941078114400390659858882969775039091226949950465250437355426549423378170858119428455125354589609875466584404120889963200148916902579571920186491679788349183127515969690514916243882372352774903399765570897835264505483141195411832166175155539196687088022761371365768855681619174276761422472378570700721056898491077830140265739847199513742447790558497901697477149716617172675216907959910858223882061629644294547985353345147356843213012434144564106508266137980060293281657576230849742300337927583539959539769155776132407799424656299096985004164527380014656364229383892106144193523626725186524673104125333902342464109064730921441950148385798894330783943332117519256328099713229337433119237994309714712390452607152325924169188923254335714829785011066476928297508916686063059375953714966507511848586352821195987084607074967363900405530302520837344794477622631096479717193282057702948207111289547960105427135569259234327485681224370570488253581372822623965265587235474594233519878016029352994634628498976066505199094762185888620378292213068955744175200055865267169802778083473592093994182832668860809914981891317251293366404586954419134217776963716927605990521092559079405262503025610138513521465754153718006484151301431770293300601556342381354216095365058447616117093099925715306924312442104028894421931248459125549743640920580887747804153774097836198542269665521537976221971306289178168533123504588381475316307269030080720829990264582575934590404553709936913811907976273548189911786368085821367527750547946321404423095404006608608587970373800049335051522436418647543907930088319888752256339015592241052578004086223248422090891976446517745965289934604141378385914116116341123843907200263240336273562158817909729740686762636286443305772266400575290992451597939070735785848558467861476327113235184519983361867440235274652072052108296712239020317497619824249420493874933417124685273321434495259874660898073859161208354957314878592324191858908630242603717451924833586909272631666142233131371825656959690692808490148947259361404513135410367052543733215779679821792071384422081014844712752499886348747259431483107883057962963033678424307529246735538247018181636570268148356288823427927624997404205092878893626786553202384746584687381160033543024110547550342361148359958706515133500076839246197138963533376313992668936975915887370004467751311563536511060827748879414462915529442726265596400770710230544795665462359349814218850545698347892349182115814502348714666017252539715228072104933113690856732343813855101370930821018770513806034011297260520030795618229068940966049856898418903794670775663155129875381350818648465730736118751384066423488274066449760405737708721156721144815961709192744251326724829346108292697562762112541118875873272730211663575672279522865701800376414746852461316284839923877497017734149818225101238747909764272360788792612402039658492200472698707890242129385173998120711277335271194549754139771295270211955686143170408158922848836438437465894084239004839084476291579926399053856639349568879766958894728724686242105664917621987122663032854354786706849183324918854686871438883160494044701949128799123965631156467725251211558412930403930798067215283000237370444798604553705528819622398606103867431482543190450170110672323598440938855363493639742919894266778182997345489574821593946853929833048127252352694284194577259191668135087476821152449248132833882171867024258053955987936177925916460012150631870195382635754053542467338171156708455850483078386851887208715849384066459883408965487394386910251315120970009342785461509690688919721441538798330433208161845418450885203725836863472314934191976626741206346134029817665031200449515074807587650605045063187224907102843744235381847120630167662250743608390046469012223964698706005736926759174181190220377262781360923600274070095139620643031055639542954063138977546807605945876888132885373681046950478426072301883828480813712712339900716461546882404157659882811537271012948015997466188333029150021108600962047509997473246656221367901962768111119094705083195467452750040071191604808935158854745773323630554021827106844089125062040171014517560430694120260390511237190565524187543145288264262038969257163274581221798392294646246637973748634487949545341480724251282414676902064931732052726763585004492721907191613905949219458644365647432572770690243386008255125293439754732220689161094097284622444695448414813821614151882274737398214987256981690348305871724348489547990031177326794722540423381824452115419246522965761387054951753806748601813516923051998996625310350941527524384960210694152850586028186893344899998884671170020722992060075059579766771925854409264481452491416159773750376252070220938878235634770578723398835084868488755575897264865870893243121771881722924283390568110492854442991357201916741127555291746571259372572090773086308522113237328916787422661211405606550060320706894380493498517819529747359288463092922053750050578921297438439245522474064851430885868914420347513159648692130032649662376967966232140838613821874189174962825320175074051740344584584843524776489845387048209561075550275943858402204130857535396605139558416037280182096662244701770848615263969392000843148770524596090197372858867187682603481144388298531906086782048359404100663219702893990829851355519455212358813964809476831235478691871958815194985204110473957734894875958463873062970612756017015371276221463578968589268304240737616922329916938520669733411531389273208631874766720062745605958260181381987784558337066007460048825610651098130006871475606579061864611105445852433897167972370769218612404307711024725945662989307615985435464784689116753028978023593446146363754320317106153390764445264807680656048294053100699509812022602930427893735441861826826618780800202993320002631276459208676496295826746800684781056154491384630648331204821219653822829473574209419680770993027620186813429779186031012034200610218180969733773001678200183845236122119636423290649283772326694461037223399141317435853817071901859976438585507129595218136090705497923578091193254010030190682677404997836412456470386310703964926598030820444990297109885508572153823627087637345035937993594422173755784555081055564546607756910018552087314251653117082402103994825561051675594826044509270455432547279613024364676806342614369687142283961356036009891700482773327200955551644381165820978710658385050753500106850797169374350322728459460794191110295424875610818724129545105903911826292066794830093680803555394635842043056599436515872563288683019467988846902925224947898547075495589076990645160232046931814955415415367019483584067307905631904314929420533734927852207033693029061398353476723355301100846273691377185324574668541096525493944069235946231098825553885224691417679099331410191803374562698962628327279665744522999285009155570084421161762825916287407298626086723924286708482297034249114360031682253642593986416352209645760164514561166364486171672125643384086830684081794305378465111019254198111559931376562364903351783297881085725541961694995131877575163590086502546724708633708477494416781755549240940301062263979296221140286212884614470153209654546467762995304056669354719837532650939762528225794760271897651068738280703113471803280021858643678297380607276432590322799424570581627765828570315748509557205735476784119103252599382160383655634771633409638248407351294913785426553587857281032950829047655782304885543664210518914515813317178077295895379860274499380198027231363765211038981422413367747828535549571730867345850489142832750134083560964879261658883568693718670181376318568361712316503500984045111436303611451252502172465945020458579008312470228986393074797809233019246415453937817019950515497983285312795326154142823960613239820796296209606198295940970434732422703214043896874287230128141011436085836552135580308243892843153164781635658377807686358903275683775734456918102513083201827021843357407787334523625333710115274445670958249706280498546601103946505520476469460936692541923042130712099823738011781265069873121489464006255644392900221760305231695530302878795677008313370428932801384751035588155142787815677251196805952528077848072724312169422194398484676524563768969741072548505299363164875309780003001425133425711355615221964626697066177551238152711532987324545067941075295684448397737576703508494995031124455441726121353244225571028999778467223168223998365210210006537670870325856329705404721995264422079370078077460670735994035259576822096592195257545446779451397122703952158969312824963523919210217522622218227535302369283049049556607459036700043894513785456358474571158822652925647459290338318162617756078300689808438446857943822241657736288443696829163635663429670435266069394361539232479862008981495075338519011144138082343838520361012517900149614311486629239011460549680694267245511512122895588163913289152420624824501240269008646369287420788670777523073725789927832508097383792774669291597154093385723947609775542730799789064951631238368358265976028856264941673967084157698045675073891693341474586491502566006663091459005695856520666988831593347202835061119704937688257686751646178660746611900241760677692871881607657526381669526903014781085588626048694865168415027229454648253207744179599388389907140744080256591955520890925661990232319278095890225380208994262775846818943546106396716897133676731335146079266472826967953646049406875751046126544014684544729281384570994081969431446352842727703539085594726280826950484392339744820636082666753002915617368964073465234583738906601396955615709324887888378724482840936858058807484548972339310726348352607953489747526377010328954045497517527907669376997689314522320325251221177303465884166747783703999802753782617531865298936564024999289005265223383151509514123979268395419518993593638164236418266489431033705001057474426756302829122044267614401559663745505565953154992987277739675396964441357708847410506251887687112864706957205710917894962824832836194689980310707810339236487552778018439590787237593245120646103662466791274645762460840301014573326271520971258925763683392263781962351988845343907403933434217698634706343384940142351120742382852517464516314419769165085064285612616828892944787652910021466931160793900401084737005353830181122456874777987167873216588474397605342772681050295835160682345320247455920246031399093951648390302505091108432083902229433834179817353186343952545791080561126480775453927282954597428838596172126144889284564719997803258012833563511917789177804003989690675109652487893924390747223641695377507820080121941505919808416077898763856968951878911666951070308058721165976019043740575257090341464234134911560425563537220427277784363079462135426008496349386130120624628035149900217200710718755967117370386629247695143630959487591299543709927705682370608436132909086135615500444678913177959424139885667303787507398754779312725484877230117476310701346733370979316035294162924084623210179400578317161031578590293164302930112724467602433284515057654224843860521384822214973259268221752399717311057093284060061556216256565994196258921788096171720428198698350908364312514186202660116277954332549443394032835958201048635990161747090702419108497210161563397727883238306881080808603908675763181774889018164393646031593797863517286393971497151488510065115985323790000106423813427839164587292817078104925492208653616590406001226635362515120613926198102683754212382993850527657858147537715082226919719843349362323356362950078808081669967130611712972438910529270815350496808939507046389512432130736145446937473911002209734330220192928146976427636070230758639936828958115846849028682451008510627055964880928794373090454517214015709662815047453956914247225735311618030073460343720183556572530911160125411416638013165747186271609594264556764266523391993846510984390528432516360501003848779120927491407589130884147749313580659301355137738024811897865979972642141982420011342655728099515455409906438966900012675460944451381803000373209876152280177112147856710272592302347085850541360265625990227735760651773337459458018887968564092879733013588791269680858322140688485894972295986604204995128845458780251965294156572737026703680354041458300025964313057516882635609857003423159191303790961801673133227473257905187908221144402415780469453729870704149058904421205611093389552536310453233064394005327733511159623361587844475569639882056109938688865767293302170477810326890774996618814035185391533361221376979703739767161972282309553687956664127421889161494613400274047639661555940159950071799166620602118806024136283907393257472523835259953082122797343450973612256671551791653333086670445096881698557810162492192335274232712161805865295708717632860801592346843787961973690197460426171651857345419472112886999544312415956239203146711578452627644688409105692394117433167743555921716017389637437090446944584581325976829062202744840073585106843710309429176725268529528372460353564514335446356117526888768951818134867052106915837382248559926061298639386397243771369997882634816583573325971597649046933488304761917303362848082598183512392006496740436141522108780630760139452739484820620723874928214099273345430323232105129085729516325808108908792361825877434648764380737536868294618519936168611767226165085438267319906060487628925068118769885235586977459523874652906262586754763440144175240753708818669475810282713404471334577623062297636439528674229565539991969597933678277256466169870803174866480348991072669036357895543066401200792040860139688803978700546548453905201924434794976833625970600866320993728262945982412346414101890564221185235704169442150185417163918232102587872753002831083829163071131511187895422223877880722572454354399385774771711645036059638852195675946664596008718178747412806168305915121164334676442721186239291675565644273545703787891530642337881918774478923019731436921269584294782304257273928140280586478001688044604979057683651719405483914306820435810922389842338761171357706941864428591109740031399860729861325512844295215004362885510538044134999327597333076927202891671590194492226041519444510475905766523866915165377287968460048316328882940958231979931201940954193109445328765480371542558166670197424302881239022910736529561716300712046461571959124078096439672721963061156490512299945437807573212921405877317416392833867650269418985343471409254002393438021497225488217593773110333344109288458999331315838146336717343098310663767391844437856147964723128152189061175750174026215205835070079421970405222600974447700400917465060013428894625257498256527760612118539284895775407868430369709324561803299451179159864875821507480011859878006340676367687285102066640710420447641119319632780225602500010983741620771276559002905453478716698003391825887264590467212423002829746267840007353364730526810707852524877798410599095078621743233455193400834607853001979970127116827344778296800270664459800721008582972515642868116651934320505566206185914893785475068895051257175771022722063099903176157079907444155114162562177466576500529413606059488963370433100372042843856482516897259314037014148214955748188144165230532521916650919328741309286690711521154389467584999351667566338023438066558691137334581978007290153923432182118854930740125871513902295495101359240955386294726065633489075152960181222487600129591810209550408878160951020074684635982061104376653349635435542361700709883775649758013091207207080426206637058143796666698190031392438999976291466201779384417956805283305134198328005179137719800602800029810590856920649611064793656035412980371642816985184998461578936856374114616886849612077345950960942010565003617131904766701189221455271935357825042169885916578884400667065293193822424310320848687104428879260565470977896294183826223517361991506113282229580302847175354491130661913422654848842075789562389979804286337843541722037346796797393121632960559082223606847946654813217287435241884027557345286822683075515257149325036807263490157357731764458569861993270495282573698653600108221247707175377617035054510864680994332955746908581343347884524031677753938313276053970157325775651460701190159285632356751527676340376114370255370854627473264227608968316651608813816428315744925062451866625295049755488959723504404978332882884315562694974224491381578045139253742516335052140602546442052146713418949969127691876038950467766410640675713228942039370413599310215545718275593990660741800272415351131083692290051802328053527833239114513307263025758444559600377525043947929804744051624480978764699153334073700581224831008728216591119972740464331555151919054974594700163161927844478525307506484950268056566428568681310535913269297169985059647569119241837019214724947535001365076665821554583207645388655845551117282446911519735620771451988784482262973281088749997545267978200543180188222530596620237053541446404278005832914204748354874877775654382823841589854031239005892994262126682892355901736201985582577869392597079159586475395070384402489699262078754392556772913404094579030970074118448168319996148215556622044545800488221278975106762738571129081224079227749946058139857674882858424920666621355631047319459662635860636870705121354538934686786384281204464047664155034838657383055472502285414255473431855909999413219419594412833046898672481372247766665186921851592889971836933071849464065209559000042109167714496418957954736881018272486992534732402029911382354988594760159524852369457689525646206148395804712464337429673219884830885018377044336951367033021750382300198607403653334721326329161497751720943987825888827185474977440697760085727164550720897217744698095643605051756909930212496350278047062849253484843268890048819788447440175514289676148649067504249904113250101415568836079016932747047847472118598705749280512914901956788477534977420440859479714052999681999843773187468336366103379573491500876406239249504559722186875997424207461066052373661695825679257709205430567827633705486732366639436825591995961997728058628357423454301616920329635999448757305361322607509406039429257237258561946798442296466908877853481245779500503760425963189890840515581121306311783492962255923409324261076024004965446629088437911312852884308961584115743984404055747918761056558541688548142560370295795436365327039662335635517797858418577724115408393148723975140049473093459998770464842384690107033638448557588278967846147964836814151161158349729090912056840717765272545246439414041099675286817640296306352042064903317696484630981768792478076205778327530764261057675610109980093982063280368437055131787359258180767210062401337920780360882404597953853378963937122544015834812054311968912388574685730137657014806275834981836368019083535046834227840114915377418483490253093336555586563512704213192368274863002354041168000375500019326049603116078078109242109732321038179697273721496498209217987719413059947331571229020199257906831490916366759917445010418551742326562513219023232657012172911778092484889454803627745048581997974233484379105749393650539909061817858762292325356973468296593671176273039505876592134143382886476000194636787543313334126944079700299862882573675399532223240933180308643574821103521830849768186991186530510631782562821521586161622806446955384402422465456450598639117000198155264894819515087513990743680073179820408292660164828848973103306598416473320250358855960047359169923639611026263093243194148113891833707474026594281003738884012815626294253288191188675666147197412359659983209855047875502629222593568044854155859357401897631584574920168478321192929877379431253481802938920262951365942922275926760229408869458784440475453790309586520997381452789192141505160456802265240970433680781598708562156594796579077458908824218386905682188397423226656670000538668939202905446116407208696563123160024325856748164499031697234361589472319355693895287970143901320230885156902536560800441974688985851912158503978713530158374186467016276609606834120275223519641879347005749135396394393697913242153301632960679728058343738994136974137313928798265179851431061761829971830999610393340931152899511526443799898154728148879017807524117908822135526329214823321008734989715914499463044142944239686471500071173677842949251882692805920478578555225815598233358218247081642438688729775050086665444769740373079628791051521662637290757368549428245162231274671433858260900507104084877582834883507485131146511711938077543192128911516614400143804614942877986645719898237344901165130197489630233320054003295129039214164023477395320749905486943241725964829615449059935004459805862251677369303691588457729657635995946187785127924911935457989439114717857984818261868002019794473487432092115646556313007086484191194958682346958643457098513495332348855553755018973661634814857420511114864880241372816227006460357691003084338814637559258687008446436658802290346788460524233189139171607800218486894491883191691586636878092684306419160363338770695586808175945704630546369245008485185114039822201068743918891271519463802274353851985830098680915236197812828162711863563984419858105873738556910188016913530060370734986590210498753712616199656427622815541573188378918738469068583974229803524113890972349756568382447832940772258654227823717650727199201240145784240510124636898029976550246029059116310928448201148322260811928511048584496013744315971827915491585428657744496415696972895985886263283259923287394877097970768141251155292026705515517206482610225974396346631247238686818089164101870877838747117593305493781648507314805945088724030100413879635357326898506122388470676915536020826031057428535834688393859260463489856853688738678353298658274613129624229762132068880470077614060637704946257422978660791947537792796331401400115158975396591556005957061893500382738128574155216424085647171730601985745759174391281980987245991559112440906411033694129522071419732188294852777766280704622390183749789884692108838557077593620008436346250261814108720493033250383407182720521435634678533353967644892365125283540621282689324733594392809502741383748274669103005129821704362046505723482495518156917312024625350556863170569342687615207253862263865513006233748532800744736432957663187508411117717929352522431793328567162123843504286019115356664644642809602982900185726340365194209981217160752475498951392608752280486780594109242501748646640277215597501112479562047491898532848181019118873818873662302620109306739438556519285390374508204390457053924597421574764328699115566567314693550807930545381009044975212831505396024065793433898662864286473742507851832601315758618638956549254014713390622086958790620430217458784626925600145256174926751132746570819419533717694174173786674692471434408836504994249391913262196954916103111054699751850821789993860997743415025766889860533820299463646810518028491535345043947625501218388337355949557692629073312515425683039876094104947278259768045370979599182757657772871834371838942720790992221621072470317403340783244097340084241371413525934760894536186432059189069387126041710935229552571698976115716666325161023143700675434859066242023902537407220694915789595955602924113983531929142991962738043244382656038946051576338636983953069922595666634195378414879093321395197249790248532925293747050292189085881836628809782813884117060370774571854835680067751605708100309121356681220422532131735129573146296726313685287672715191229542291042389862741527787900618162863549059529997943472878826647708899266235051843590396033500613971372376453662257812541395046626527719167985242176818277558442907304834526943458559291022725665166706451343663431205283706902647573168865090106664421346754862608271329870721421708554427574469382302730629411930712127400149974307609712613981547524957173773566289914252523436064972802706892398571688210995355518896202559050657140188327086701314496909336460429861892106719730003622259519315860519969658739579736598689859635725476316862071410259562418784414959063150135935296344591721360485671361781446558126376983449956950819709095812939824740942119250703706278364177610334934004130562912131680384294050721755594497142045634284741794865960673275674489499019589346531102770545862780103248310627932105473804920409594084516095527255704596352887393432562634965559011587358835960281874843898075685591795034744217014046809084573584092508398308990934992523693386002896150840324762302073169803745378677897768853771454697927083441682319912601690353498867095734829104743680456632038050315265451865649900911759227633603281700162662445916631518411611098527298458046163221303029897556265088340807230204840836409817277106441767420162222907811054727320175774325234886988308213188775491399049305057049296563508217568109292466337209448147472697823541297419149591312525515123403155528540115853997897182110886419723995938639350927550835568433190726820461680873971540539825963856549998672005326865620507930774984852388857959598487906138689657759525113123809666910612161391647111455672870972689629255293456873753930493845767334236360347197782099920661314353674990621204514669781631263892669612175470289685256373127444752488176526776429985732017767548853605045847760905604081431378184200650126656106484234263400343703262070008146366367628052764939483343838043253838756106961192472276113890387329605767855762279502043729506090307955276170635223500625102755693743170029643828679428141155953142980088388878310481501004962728306424662550834114300421075817508140046923194563006871541296823152649996007604677490866547776009826357195745883482938422180061296534635629059854145925782906234271434968321229360536767413802356574248764791953551534728148549256027954705358213016445623403815202330991169501863975710990986421263887555853749480186642818425397004382094198896786154791728928874593553004283008375694915055066816896709761791090872842609963241987640656326060441291388451924640157358968735550116937743351088837145884178611845866301384833289226348852962605068963695302816227781523387078111539849571566574322820856331136762321541069779086149813927442622689826783039035436445465082977466357157937247691338608414376845261254710732144014077029014752607213756154235462975222828211100559343355220434829596543774056179253192815082130809189803792423673265394147682320359636943632735421121031875985874671254122030113637606130966987739228682037545167498244771329910527649077262091185026531140769686234743942597688390009876119265176972456626298278996037668799960680155523647928032978838949166863679800747345620117333466734035207887570346745659277685099757931498390593913245472842192970441129662394182025216224719683093676524039881962888519240723385866979743802492755353317436086252634916347608838384405133531813667540402098996863077540353632845997166124550719340709099020006866893067570164585702303875376444071182386960638613036569260609561652645795062590487204008146248403121782888136874991404522863667383429630550847764202123085944038100801933073439823031837525831401244836121753779404433847333338312073062889623817583511171327667743311962408128109775129622759081984978985962841258039952162313094856662112287027580863343893056436190363016972663243680617322378243887322428422904481230012060375311399705479892399826686107208652662678017310008623984982307344572799567642457556294381117600213607006248571553428733594496609260131271638998201805863382812403313356220443597649347441116964053182117420464881530447824255687597675395710109012383818620486945575069915568040405441663196815999112330602261178824575162574849361766318647246891106642636471084172010190090905138977716456907097840827225853777729370188470253526202969126516089569918599370067306742897798641213573459967657180573481832930170902731934707395641679069068878632750732392804931066392127365858530114294825651697883130910047477970499147757245030435933097533137243368947159666585310453968441783139285928234060574264191812509947849397726815442810327207420806407565424235113419150108106379175645725055066753679369505294162821289756353085063694388517878841259342400517599506574043198678285407162128684206213310454246854932783713412967899647357083289736775771028029563260809853665761745509553056031461669769716452284891655715620587134928801488572753789209607135605049124226892580509048363114563669694597295210847200136769191614973912624901893542703321954083104431210397199028086751328917593060917833116824777402386899021336794011167515845913291653844952995795351613525518498862540683879006363993051521518053641655437317529351231075404244346218152842057270189774874280664630621178836775665320895864197184028025382098246541470400703171934447975656961787468924976835011736135369931516314129648775094930764848380105673569508806339299634859613356431298620988703568210603165857728597211765626687264365359860426288177393745886363867163692750037074927528688605876397591253080727378882350120136264811634883661837311487568865253415093229389854881558209868088901691382883061383397054011253217979593667939708700812117486539149432337519326996327826926752774666528116712009613717875111173176465563089967857392331216661478169856504646664299824905115717289087366613041222126438564840185277128616406181572939419567441961627736286158977758109889976102036779776445409356888334996522683809901049064624802731895521202097323943804067029082084937729817806017762130645732034513140906083394895855987992864861083203824711337997471745698267070981184492582901389514505153191321167799450728830906463875799385053741328330998370634191644947728361046517495715434874128142355940029995955919019340902247922387935589319456754862127216097384491281367902037482449807521511864930343632847097764935610146529394276555840225119304195897451062277375173588006542673441049536549286671928092163151736176888933478978150607839865417984471797932860433508807329029840998927599419117027808135712496297771840987512206832886664584181059278976031474844170522983353445521182268258871036379035125609898892098429090507669759953763908720522182334715799054165196853634355776912796767260598401479099523014870368351607457243761393322724706914369779985911455270757821853851690922918409296028309329547994131224123142208526610122690928260002311890822551744348135472302248541744566224677883181950948442173914981489732510622276011495934071803356315537762995775905335075565636879429705208461098633740736137403532557032788047184822133040351741517378579789766939846326105812524801871848812978824140890908074483755431938543589998918779248032410259997760454402170289757815720200735517784635736711684315172780683541326450693660380066484823735793826819750614979385038772386972033082275729959762424063995183089662598471239882037010335170296362241983730967246450213044002676976260325005886805391615537455226268811524821519796969089435309227822696657312489511244334423814761920511224673235500794830244900198406316036390753280088710304118139943102142283765246132691396652097921183497940635200196914717778218705190688065759937749929556241710372318639853810315235948186784789314281158953940646550781407779703390858208751027668317646933071563044907651208152625455483077740647061255893570258305144038008957340729897471931472122069002125634570371894352933380967442464558213112545614612725074929525240132214414536851652424419659801953581030886871395124069299890781269385111528530034042944474385873329209605711066104178495020254407521812226285079138562167529662510903877820678123332210870472243027395635804111089993192014551980327547421040023611110351578157680193166603450877411004391885892783012121692368966712880112855577956653922852247377271581321412161351356762124643510679151882361719982031358329870209849477640799727353556228436157918046430448006354807556166581474462820298403158372112662956295759728322004116076734196406592207617433638762011987379298564695038943945023261818746969112176398374631381666887899687631944112331764362522067789341293050030673760118438956728608077303115157187374120975370366670832189962065652349473190254385305050387696151311985424634682914778021077188843514355076905321826194034922813954041774755257090927992828985583358127392007330824704254752288489368868875206774520206921435448063102800807808303570409137867750787204579844491154927183587703554018036523850085965541453269933025427347487480421885516043478037643757732406197575123130839462895159803502977896452094656535449783835215284142081765554446176196478781265146162865688081351954176866015271628656704609705651371271789986329325320723238319149575147003125324899767357651409436172326936331669015222605564778825081139188222012582306605862127895515414453350456687171297945603715644061424568421829785328757516472737207232919610101052204923052571334713108041113267626506887364289279264868961210087915622297345790051935591150857685214914101923999349986999614193529989877393241511340703242480293633887103805980519786643577905054316719258133195779132016476157878787780366695478802191688372863572391306809020293010731563451888546225300674404423507028120543910777458941362850419813764447088758353737793842489294030874033359393149108089846958140615376765438137252440709790230352325879822204591290091284728706826587064871407455698620288997125867352302813709729819034903445141239544938790748464738623347432777930219894954147707843986554273689554730499214611089969130891333639783008414539539126556851626136183959483296671520203829870475959951034397669883068514606524255979752413495928095330252274792403897189807307194655702112021346034446280881579492683772325175808310387177294156942497274598274514337079080849001590385583085354468444362434220627608411861892355058233321677274606382310030811957106662399461026085906082023509180501931029279271947790858387202997791769413184282811009359496655213273620261357649323580501315802287224902892178495214919969604742215809383946165703390550290907264963956533831126304179800890960085120663581417293164790173062029874242546011567785848063470117382273528385634209228822461380561194638496582119594203649130296722887655996708035825750800943676744547594785022995506663638828439339392415620375989617905667987885519041264607884596106772027415517222844557612978559068769320075628789831967700598081955123012156162047630232797328116882647921322726163089110676754604092830229166804868646448686213107571220105562317265627555293218580353583292834691657776147576780987461974623212258139012646346213860636232560783786555266527639078895420261697367010128932480250060780370136487330957767895718312744280909178999143330914890201781420716034868602860253864026312463551856116118597784909269728241374604992743015557030678667789222387175545896775186506655778810780034738631580569303723671366872783256666376745604743531956377828080265837277225009744973243583871017409238340984629756181682186674916968889081885379465149422295961371130708785809244723096588742523735181586398662112976347709588144877529380399937171522186233530598210537505140031400721994508503384244044340922139186000366267789499401855262558811252563056597206247078154756629195043942642288302605793518494556843796552933919415080144268584778681337612595527696141641122125510087628310846682164425234417625933723607987297123330536718676707968535168550357871315604639556699997341633420441736376743286438829190993318453928871629281482668379364775537095386445424764439119963132003214355786339590170102949607466762256703598589722686731656876040338812354653144515598362812433597162697178595408893988674385613171102736585168159183294314533856825261744818029966001254048681099451918375898938655457480827752828456333998694268559590080526895642562704638276197758597217327017909296761269790734298850785726628175282266063509413215124617841257869778544124346168259077536606295577125716439341353273185566895819996412634451477896074644467794037259452101552882992655040315025770026252923330256916545335205463527638158800517338479566874308012031327874025003362246440021399053709936058113737339227578825713540826911526994301244451608652482444343718467424483234830302030674212443140183340318954348651387429367905182455436506688251417503121136671435776638992237559172032704817235579978636470390157596043419607699092343087386767309389242018835444554088542390912857891554080197424411974871187048950081664253789970232803911151730534793576462299408458191905215395318042958661231853528943140477360549321092884550510294481069344924393303871634933998677334763052441601235312388468621474268613633540692073932110068060323820695866767992435713272523162475473151278517490938049357953617277229887267714279787329474328645682310166508459279094270523822457683836918486271114599586987825726817337245445800000979100989652355216070129961876729185325722972877497766213687900049093308532849616450104061097586402699991409694827604769922695544887731789360564222940270962097366385594526946249766616526787848797995975212140665414433833555211866642171959998874581103743364951279030284112263326509722927635742861501835585669520098210958013529287019009699039183116822232849186528838660214033305099172722517382021176516569741920451235649268326575259490134585165018489253377066140131711093694810565866733086833961200124313268889971767889382626632193960372204665637537499005590335063200746127230202873355343680239768761879065084415791060026308978349562745393210811572084624585543738899573542531312377301029498572034604215649743331693022472993216899592315296843514933505816768937626135247152427640166353020998498086583938114624252366195234517481599677254660641056298312445904268076691851206038579470238018403738936604113003168744809881899339740959855276923693435836020318041182988318114670724181912730056110278546905156438781267172835115399629299179721537596879859482199089002831534461129143478410917820282850199918252149374753189788725036547913354588911175701879885653187739047223341503886064279152124292339925810864767848654521536045925637235856005382393845940663189716335301071467843542090071925024394328048711800444270471940778974386166203847870934142561155432312799226679146021147969657516471815928852122857052788723347544705021782382669655118243677160002392370568610396105698384304179160763554250956184030252575948125307841032719604255935972672679712876002280322853465742051157640554777065472704905523344835158210958911244322372800816781875161226275956173475862040823611907385842535170249301925189126320566855684049449843205094474050054919016888270685596015045595116256035567127066208329200730735261200207775673626123071400644840205989925172618191105103760956498285483777134969468358292218007157994316701638754179805868096536757920692595657093038452694632113614376413101393114592755883846821040497935776292020336497671059018291648680077271060294636244487986038700197994763580499163409468711853555050601237138022303281704167651357947814700884125591693325180176685497274519130448790507561100548179647695003490165363659219611287053777783669974842602506476987190997178615007617279039723318338462286464568875480911728688402882653247979717858051553745377244745513239276345208966579067017815754582839880744908421760615516243689492022140904343925467629531625044477328309557166536869705246991422490151619839479638837825642716004034790939794560642992979276545284122065541238308137764517358179922726128457689752539647925924453351546608885933319085156811004207238376989716508163860585874556052508526828018694125535138051477426387465181441371851877635994378796412833879544299491188006632279927451082029195777683363285546330179053136888160160363595340753937420520404382612418052158598131216971873552586149168327323918922968735282976609402027344016311584743155685870231361701076894868620830103176449196801089196484003867654707358574373138184008370897536553749296783532572482824783460167372255060736579154093210565794873107061286046868203129606195496408767669481250757155358347198156497848442169036044607702911892311174969399422874754943187767117988425061739441891975203145941474456849173954474887833632556149899370573418161898082343552648074576749710377378388272300409290473714110221257430802420664695497475088579308336139317621476110729943273252648704977797652777710050463534688354687436275784706390802215379100500594043547844758621349332864888942387527797992123728496714487992524803015370156707226849985095875113019380672349125589467164142450267668175111110789243645806334614186511413818044592753594489319326071299678716152948662740616334621224182826257509051110395595704555240302836529116469769524104091801998883672417516777700624617744681725524393039281402609091306241026602924699477598560979079927978600580839180306876375046629249418128730908707387827727511560983829446068250641906496874485872785063805070890505553752607338021715385865121681032282521189578284561648522757462541265949224216463438609696599582432822920254054364023674363342563386615223531499091191946400271241648570239698818537164733453539684808999372227422188087404303601021837397181018490006876764587540416942915794016726926727379573599347761232774927058380929457414524454064381410115517910142688126862886939349955298196095784466000178684507604824741765904410940782711103217252352203038957854628380613071707771749674902402658866606764525796273907423457481859898091278554406469715398288801239987340535875074490443772888262137324850357062629980824399517473661817163967504082983569582982954652184186882041602496005036383755228215534142211621831413278665390116398417446473726486947055966157790177739269847975596487634560642614169768394991661323432399573942829738202328785088957032896162650702537111457743494583954740841120785189155548414104993469787651045948005894090257558425869327314452753000135398974468753560522232538021645965211343467021654395747237823237648806604725505499474773761839261339275998535511600290557430170769927378054075003968806575492534153765934305127872331656155221725499717975761595789970898005268990695272114305954711433069369349185489595187557355439646446793904046641192540998613530231207671137082866638360171751784245650260912187346437842725964404616457914425870359007845351774903582917761224043113919080857800323109152786401001771960778687550913786552779780713461015404599980917045156297537805550357611750575394955995280500276640987890443010491692444861627666244936798357115222698812553747722254395353656529674797577317883409514189103291886048364862034848218903388582033476567227051636101281850063227412168460255601934244726674805341188965416912727726104602674230435672046503323779667720298654636002224396187849436097620842691576155180317306152379569866473665158063372053075270804617382827638184689805141232388341081807342392820734390538548087570727950366076128594307191634691045253074029264701288831064150362881728586599285979837569499171464070516379882798722689947729995590825492217142257770454518450106990032767659638726105182722038526450815873075996579914195662100174072658873508488082075645255095032041252227299309616440842272820443543080522384945026697902780507186456768674103794981551311874859219532277197495626191242580971624589890385491240856372126579470011044332743161466932994966755228359291931597406097969574069741440093298422938206139219906830394100051097642383674390458926365313829058068283163937318967255209857949892628013543364877457315598889383372351639356275937222499347299912255071800822984871098700475189677893160078118406186228737139986111425145085576433329333645018571632272716814329037882747747019597305583823797441271051425197333208558633953119634272723181710201051862862621445432603642404314658294910355594374856564839774548332639411805125847538397067316394788345252861150159033534070820240837740390666494260392415183148777451603142071623973170623751319501891860981532692710485318261744534028899973050800245585070108163556317001463243878926059760589202061780252050843982245338322675783097356398391634864569978547104505750366102629949648943659355599278538940800085449498897379401680991184093119485759549867002748538013613179960219205800762040354936957862964843307897302158501740550463643727311366681260827924529084248986060611798731159694724437289493908422360935170004748588664505346759959625375032027307961456676910239500209702947392445959772628996383913498552430138125226334246569767969561364305503755870069084581243837891428181196437825413533675328720000367511109801795467633688294325506230911414902032811873700774732466611869830997315218933010223058820921705318173719280691030948825166970024193195683088677071762487811326581418702524448664467575691450905154087455540405481158317370422388289656132094511881655320448453988649567193430446249917788675816032795051029931008855719914202375799138549937026545494906970448712973737764813540110298704088583419928241615434315767794285264713403959128724849116334766171916386148897523454109070166366752703788465269799678915064236378998916011708367838299338802217973819672303716313443916594726567924167176999067985855240852326106324923234665180051271722053274875438958202270373289787021799691850109159948131303969821803217071469193483201520198991101029679539703510247519394635452337972887925239642453177970050026751824942433796250143992865033650661979640787712978819179552317654783538399096123737552541018830705031277159567348090562864033582418520027460645502896246724268290613389897794754339644419132435238800116218414136135174677106716371053582170945343747343627756770915750391911782690091896760411777564593051608088090315848183091253535214593549877083308009066900392824146931903650557757063480854026281403621132906500730614947709976354484835904368983989858359177476907901850312304026851863550390953430991984776316632109070115402562707534208432728721891981397427264681423803755954046378724802939803555514570911270199196134238903000349910008655202992141279088477012120318113078379095117313771031069897006794930861394828001206421977118331591147953452428157687093465619681888708834178746750852639704042439137672024338227229207560406578448458376555104361246757060781345714170282993191805140992319398902054734785974706410828554026354683360475825462714813395677912270350758412460716544198452895970693204005774994669089183507774868633513148249207161659227990084262935595782662758933953846476984385517366014147240392780295457040921018544763351508950409735135670498673359486382027194612230811249909799853855038922423711482760759511024258689361167677028876448550013203915083465082270329352638659603123068756303089970876148132985555875327409887833236285241399040848628166006602180471257761322937639388637554076674582979707205603928730573289933690380841616488742000768407793795981919143616656499769197297088271677221129038197491054441111774638749757208284343855752706418886777217443565584538410256091393901880449036740933140906445318263408217427876875153737215021656083449457436961818908772730802186910949953221655129172955963128812655158657645090148134186522786239351243889665856674644101867920175212203948423411581052815341622348615343247820049185238013927699147996141669739828860926849290180193377355273704828913566928887046029238025752993904262771523309898258161725249000733572279255951278028924579204449266799937111524134585748055434138872786978163984358482108402585967715147642343759229678869075793058241634038838722648867042134901669081016061670207728334814702857057451417977826892279048195463205208387253563666291871648773225392252757534130658388179350079516418393162435208659145540716896810244489027276856316101003507327000621701230825524515796663652215881790839653161473729926807382778439986883353773527813854976474623489199355471144409918001777135328333248980986019164390016223184898383924106228005839169660709754251314436227889994384266355601305119184430368220584379782294322651988595713063350923469573863934830802445200338266609806191817036667131695716117296140509239110370353853558241411154172656480609699640713628617397338541147135004849959999188469005609000195998691578441949406006045510454510611244182240170051799330081078955391731259536017237590861644895942249928064615269111155925340200435232902773920891036806725519226604116389968703124744853874388657503678212856403369207262269243805016376434615937854801053469926862648687862504488693742944338279082524594132398942296786674548147458357150281792976124211474407447531145472730919502106547966528091011059143215737150301068504375386522224946934332576305340519428224843187402015736490848369991845829723102318363207490318569571805030424263390653933014472886291038130713317735348654071514012162779591684003294108135641605405871418110333823438740166073488141567979734440246804999640803117004161272339034676255593662982868395312735237882756005599171043983237634437285567367031777069669128373725201488061785227317044418356608205517758779424866720618744921210746129757565211848594973514941331108448967597223687831591616032970565190555235621247591964561795365454217611731443155059243929041061068260895177907347470652941382035603064380704906863615842498808048284694952409386872986226456366865562323928504195761462186973005965924108138158224142795233151961534992418995199068824266506243183026082307858253132171798237507604205560487704503105553824490769853938095668946210237096594969473123092466379171944431742059361344292848377024181205500831386427180067457035493371351751799406693944951476146875092017249455696856227357309290764856661807420343187682467062431560424477996632730466416762968165280862417514498259826268275600841800992064287518568177906193881612153791594787305533418477911059641550217607144820618850246108235403726869729235285060613269109019602827486626718711038894796598459190082619912987822880746993232370015823758326492443720999545364858232967507503039082235174850014996005460353786266033548194369271308024719543700188464643831108495149366397861004464746243728458715279861712454379235859359753767731173465482114783244333342362605861275432760493756935868939360149135879065600956545522911270386923537869786494903679588640815059695051863396886241559019379598002178901896633273258241405430314833322702386341319948187278615767878058322971597786433299001680614491455951389949386563856539658528446594863848824562649981740548923929989796940241716929503300457997446498039746844398289155413263929816887362065719097426602595551737988713468089338466539973021376848466041853034699406363781466859835542780158268318830651294101776224388312148368567828639080487935852776193231143983781681377460361847387439487755118273026586634893621200718823935630694060042667813552055492110671218280093934534639697753760652317574877602252609725884244313448854823164894777579570634040295993461010111543814313099438354101326141835749949732389002033814834846260644896215621520434778424509781207552930307181393373963237842485519712188998918022077739624723433840594764747759426105097315983228305917079650311403017336226747495575353107826472211934050367331604571917833450785953267796389370498512392253639587666355443946684482836112543462573605794736214205513839870396160789404106517791917561784405556678549779086425207737202003195186499737922746216132336101619208520393326460601978568534285704742990697868694787955243988572246823300987633608348120100010599796843616431668098821253493075746776860414628848768677911457307435125160028273503256759630872327982837166670962744309279889482696408017261394365770095548068615889570691493062325123919489885001456904379737374227566336372595038000772673434119451509659009759039672006450168231550244686979331868364274418367609361131389494954390666217042809554975642940655166287738766357368768262864257887830993974047795591417467446224413859919470626999824580055426142265670769748597240115879135378605089741302240376386302054923280553804327278856140501932412268949734363957776604464010568222021580769509787227537969125575390794448409442247546544244446802507189682690244574894265817905381582126992099835897271777054354809187612581143447001896789723834684446044023344523383701275104509582329928629070824837851066228546962693565261930516422974485976556509582863063126036708326526553510723555047369825842649163979138250793870070016386516217229068595577219046611359061582022630507957522195683641801113565006855483262976399445668085827259197210210967286631761760966135725037975513006991598470687559754911949404821024816601991620345863625409595772025488659564942547677662368634089201942446787936660046085632517534914435034719110066282487709108630916664666003282072926317093749161314944168436198285767448846702586040513272712617439331056167338617893747644350946092455889535436183726762599207252420121051720608734091262449584003010256657477623449017157625095114098935649198724688890341855906410831288884503728749124946242803374597830811929420443175283915877264181953615918335565173683601919059494107707278647998095599161656281840333330634577872449211845646172598560427105477563963792368490166853118570774454754381399062780654536791529940034691605267358045071530783908313133587221032593904584058645610210332139899038127501114866524594410868618490904940504086940373971541327573907907073667207564428508173450213112688999901801049512417400156169617605340778781449160998148468314450641147402086062659367312961384398550495613145414590277745127910695186275500565176341011335610861930313696561278783154937539335023217125522785795028677461694401120578437722224275884619111328023744647463687979322309550016914153520577222746370666195703805846644794666063196519400448809956647739719668469402593266309591656038934631118851965133191779514139769227816221859365972826261620138627588375194311015842335100858252877504192115024011463748484023228035055648718816836640297254970259646602688895390187702830748165703030326453998619606994736840809427512378419509666298310675388578013642234363568083654303312457216703775265233413436387528291676129078326212158775929199874592289404678231164322596964936094941514410932574839591186375785756546251190387931013636972249650195619081308157003773120519942354168524172934809437053906865960016600180108696273671620016000884664458859718391522737684053755270476491412429726795255242639118822704643143306173211483898902130539242421618500674348058090916902663171878991318918213141883593155480059656893361799008699625604570660655367683449456278828262740346966580826559771846505067686483597678124092549635207847054234028318930078795752180391322499922904616601399194771994806723433347569297529860483434065905142973250718141362986516329785267787046262532582236135480305403632766142635837146335508415472718145984814619519309510684482342867951996459987562411874709046190924234052477352089936631642736067354711689227355671771992373165836652116064742920312098935038873705015471756625038227169873905452530683759998325729791113293810526101503407054614688941353699083934841879284170314663677948704946725099700515379361494921640007445704080254290886380714869173534555385040259433951352064382373995621193770928527191432998161021042040883917379771114625783195561617622739871011006076168729166525464782537605435420879730805998754000388324146622916490934675100848758266894943044724505427892213448480279182096480872699343239135697091205351971523047896780448311823667642572366881532660275917038383865276504729929713394585348028420761020271133393518039150998470259685845043254923124499791030557424471263140512356682449413313791324126984371213313439053542095115542056735131624861772010354292399471335559373142156231531255363463128754491543863872613528573523846852912646107825751574153291898062080536730027982981321303934752386607110896310154380494004845950168298020339734686402467122646236702566509077156131516911640058542777808599614697182928540394401756277948348992009545388987856701799539361281715134170523003298969404368480269711463058905958397194236217235103468779989149501906608006139946824500679190207134222448794205631422586953413041943470118010670917982185506538087700849251055813888111315553331793252822458945765563828685327867196298784047946323889429533922542489900155585652320353875497492424922832707164637345634760075481746822748516738581888875236491056415390134342080435707027278217070202406610715730453076677980720772126294971691121544518505590787359272091052526725915127955364081091341971076120085478192343536969778054971378531980326924895092176719130845666308438057465567169437662832995732239280616014382234687118386757483683725608035345301092334447281263409558279103363395487775345995796657715093735423342892758895282023511096372084966519872877744960802574744480421160485743567723156227767589982419185195550752353868069030001179691589894012798973188605268174767418788230456701821227289636365650874039838620994385956334156317501571598252822455949192431207000836887961091361106641895045347526589555147908216724424188496923645200433301601448445049989463480104362144259771379898007917232296128991541911580317559588701261810317339023092371963518850018503532317559485754469760959446943749762666129736133267779605755708546291615019277864950518622746626652394260649189739147250954842494540372170476517779253411803918880446594567558823702848673647766995185857751298087079848794366623495551080625184605809808382735007346550020980444495572306611403438222199327797503391417961343263109207620803173169692493099357855488018888596720472209088310008341112397391618246692652537238713732325446250384529211404294754553814012665943111453418091109319051243563993879411291298488557686500834719554301337077951145852914548924740246046686267393051042799253949523369781443535924708564950383002287997848138929008438412792046443327057561899724118815955947194555929949253954463181905807665458522960623777807468532994295248368593245338919477326387901966158273144352663648416943244632121739031957442592645391588387993464719036487238642799576632207505405662412242315143136955551299175717225378835375835155010170049865887607223066910941986298803294797406904167811791320800357933594685712236157921827090181337519907061688810306853848099524378583659174584836392946280598814354569203881722195072063290693225272513083813795274185054625672872609210890099238894072804868208335559300333895976762116957977026423176076369548311960162387116207030822170125888697892540698764572463707231200113157235885601962976755853319393367147007472605205310255132073394619424887625231766484959904151219244011987172574084905320251420657181193456011504910422079697932692258708897808477820706445785338646031588507276102851989933463255005720793731516241810597151522432007441186196669653898958878661478218601921029717388870190656339320283183417275971383207680209743580569869904406133365201231242845791925299606160293520179017976850286501619483240223975905624296600998953845218282909429651190728952199581522317920518042900754049826736749330655401821998302975553477827982218659628968505705949854120810930481548354660978562821361508028862522380682562086923847680733138649993626880499377417437237116513073700165579808143258155109398031096463573388648892012183383802187313250797486307771180627390033023730071686816302649175988939975388707065316203294118046033793538548938618117667022359263269157680056470964991586981478025078748598296844707049725846848118390931104500198008976937544737922670761406488683995228665836076794345977942299329954013064261769762365528462472874357374315686137305994702421754096562369986513507410518246871061146445197500277991440097512103253071157000949099714081034086673696562131653154894818844934332501222972105861342893168218257297618955942264505447147276257160540051954625604949506389553109511212859919984675003822238900707138072521778418070238789793863655792945170623573388734043959750127221423152246773674877213832888488360015425742274397245795184495737678775734510931645440197378223403918177947251731418498034111529253218820190365927218595926712821446573785816408874526921021787351472408917888089725690400643498549292328262595599580085945002886958296353032490019435462896743785850694600804198604166591892343618119113898803385925590424302344630233604418939319048599542664654697348864352240501755656486787094949340831653149686605505011757059363215059971371080624676391765514144883888108058819312885710679987029166440589291279914243232230549828568852705147636586418351008944966768984050876693484368281361476097491710217185672237967726281975920586328778252927074820374031311116989587204545694778801519760602056548475316659689048395596724734465982479358457606501342018153335449575511441160267517964632520745871986189795735069106858211673743315942799899702654954049300183544632280678465615216181572379009292492177403075873399030743804245720537807464677072728123127509255562804446584280822918386671419499075402901043297342838267772392403203165917307867131391191901597576822057822929818859997431979467164536735606455186536676957640640138176568649328402429417190721435608659956452205283989805787323968883420131877206029909136670767691300021377869706318814426960063519532758876063616783263366240678548856359084909243184129461042046393687893055825896504567264494768837481091567292737991264850861999876761853444322061724887325495632780827834122633314220701157765374741647007768437416874092896125775880598089442942304332686078355101060042143922465846819971564318846236822570677928567100319123693080304422587357121339532001615060408921056785361797191074789777664189263705735623456526883689997227542182407297169085645913996164727045669148541959406176527042341220917709150498916551096386520193669562195173993919569025471165446419279555203492770461631601391284873220023905123344828648166024919865037066086814005100249480379314469128395947413863730453362513860201934358793624399244201121415719868839226357051435762696288662604850922326019380397091020528324449849691238483678010546823316923103666904178920539018968497540804262699588449858213207408507415864583929709804446703957588632798232611806945722519490361251728972080231216705920994562516745931211921405554379471382099874991202987471434882426522595004504103011160012915681634886719208674853957311483335674609543797788250429824239439817250353690491595496178846780491700058755237860307020205290154647086267036137246980421504614945478547975239188662627760800340017639624358936194901387382475854287114848722315786604258944963073159340672223686431277886668779643979812515464030061202313598348748397874626570340942743278567765729360535043612846306394834145012655610350488881466133651198113734600306354433513818664854744545231504154454384502768692642509754422061306648716131664240130514943088396467581917191106042828084978012416457370741843852847745456467194740291341217899583301274085440399472949492060378225594409601780831612456494784717312639416852541495099779161628968306525053446829554097664242637819714546049571108691341312673539114965020007535084782249047840927249459406134833784172882577272713888852503084076293946341868826281337359801706924734043286096199285324426484076483632730966096953724465938451038000685915470211923678202200682499640294954537284185904677932559711600035639372984474287159601938298766428552218145383774621048012614117171464456808473165917859565693875060554381980666027592852166331168427725406865192568385078318873369822276890536803065281189812564708067419130716213829396065235942401896002516460815620112898049386094171155880887208994586816125282004694571346530811531661866564165423131414842096160808627162590388864344507517939769094805268716566311901150720663706792416652964069913971557497953818665628517109548989748293978735183547998676027522842531093684562641591741147040176727466021061329410552547597050485566940208735965108813857751578187469867780113253882471854753991030777665282128802646069796460102949316837935782421220285974651080232624564527043032908546601317730104242197711656320107161714124249922105631318106768053758890134754744569143333220595273346197674999975210945364068574603744574433103233014861743822917587070096122148805705021666975918068732405316103201238923862431355091492501956087766304703858154567000973393386870501295889987898434510853665934403081523455591352477254579871353481377873066056678977463350978847050288989113077291294502613563262328568450680132847399258215413237932904473843634727923172161049362608372563479918192990917323305615789628155454579261015461504992912197924874176477185619722511071616686936158082560470555591395222299814006603511268425492706132383312101345152488050025840021214125401698527722891891482481156600784612451435771755672736489958543465569749161156193370401626907496673170756067354066719890039935289355344689686207373327809150310439171418630091948442414416023819874056279624552595208357526952567738022067471758773174899085760500866567029193999749473653808919086206634744132222160925103449179509740109585436846044969075366082762412004609759808585451186555608980785155705719275362574183717736211783336698222554136117244913022022370905232070139555135705500925217316273206521282421750933159727185473829360543046575262231312568474539013404011908079144323399608112939709718340750575915188929991306674495489967782848507379581220171896323087958119905056059125558449236259140364705898520950432011759313373061827665749164895808209754963409465566475907697564763165091419010578758206093393751403916621997592666898499619501935882495003064704334350499939710125280921687541411015182441301023954938455954544053811273266017914857206294171717739795477296913323297739570564070854627012278289290374216166737484170300184393822659060155661270320235677764607926211668689359492085603230802681224842671686139753753075155600294327210046676392533358777747397069684035900548967508441135340550434245766808850520173221687989878270080234675139392673014865687659251354904608872459786645714114146997231489037921005619169616894895683886888039579761403412266096216000274318325357730579656663235438799075130623661286518611771477104574581518898569377982304705134829439423746966378569117610743447074186240227961098107449963375827444273563365667708985516434906071791724479366571162522601730889177732701384454073279373514776617186777844157788677694143566892258710718785211742012515809021099038191948221113729797063384808376023414374309351866324967438462122522168007048491077284688093933118579836417343503208649934515641579595632706601753169903444051477539648280994946869783890999315074856379384272811345451261317811201099255359154853838208958244913328429556845136033147034511140913759792244961290017006719784744825422386492561658527596639386166069891235404620225281654459369760229446592422885972622039882438253414180474057868406544741098367429275120623556903305035526797924073500596874941562319753834092513293226101531990622794501889663494791022821426832446216648531359013516907722559828130147320284570623726838688963619745910597019304164550368660077684776511282490044467904598143726371715325268966013485581896804790948603076632007519103166223196506365179555822855789327939605821830267542375531083844788217757940700752950453817514306961918754213368752345628323395579070811775112411913368599459589600040908668238852828037926517338173785070706747493425711413805395975151001128726840113258941704774006885201802548850661662529993196132577751179369584665711165984317592582714237605188043966294130680531004656787132168040890216236998109892239826239262145419111866283945011268453204695172128157044987829131368254966520448321159216381359306245485533419476478482784873430018975465516594394448253419711383438415165993744409606460680894721543028347167998099755597684783795389626181494919893145103723944015009679971279199005096074642990016817353924867186059844796324472287200391452431418816938721068345594084608851526937205061989586565704698604901044652032242221857324310810248574819583553669790502689436276625570280511385907268101838413771827275357999807541416627732462697251052713974707209114130523790625223445613306534558923381898967011679712279216986633329836020763575105871900966415329604997746270342288337016306277859153787372886805090830041938925705311230045707971302024856491394572317786747385678602066991454978074029928383222890766500791853357782097735109233340959963680828382765625427631383874250988526579425184390807325551287151397931629196829604925629871782028188789198241242716005113621628013909101616265854159424509792535319617021439648211326487514156538232208377028099285016163342639554969548190837219351652235222458863012367503704076159004941662250387664141392190329889658261948288417940648370367028717458683619212470396933666220596557088796701740129425878577041311843812191386837773127406038723821036681685122092988433175010984840396464490065595786260573167360916804343621892368943684063199978491956257778082446773517367797786780702806725474667283462885250473507373499159971127942492715763409462986101827504618720812138691133385679043095397580388974224606823653297011910061417900883527553808998265885348745475415396886188808735816903974545839437836113646375050485621777943230958443586118383744875196129989660324941611502177656082914486591246554106615437712077714222370727703948165816776895620324478807457524586175874880805570589413915307179310622883726275877955296594652007467841990606525751917089943988219949803357423370907422431435413637982795321948412386129774106094045738180839518628436228473583845521530542773718275553607264471192976237537697480967875895285628967151344646212093972002062885013510852275530964867276770921335778233227480667873933871938036336285479152894246964596819336576261757123397363497812609917662578368688536252022028483868718980267375592584478999922472274529847554639793028794941663462091237465266868997401045271665041952955264092709271673369085222538298024822951466070830742675361529835829492801988154730761678018437705089807765037299002099676434116999860145058183809847338522232012513778781850499493417971946628592329871481215696438664034176172230782006288066029648491482101720133356653283889063113356739308487383967469782812447824319450023850419823393752430975701038646825339320202089260825344496378599914570696137261935579783978086140201099412376339158637859390629015388336660233417872522395869916385161195259532576978073988223424293796377515128363602769406806665507155780773858173523651673852162208485763259544637970255020603741441314448923535226577956846475211666634369649374506182959629684363718771858613570611175304544988811663430034722219649883156014021073243575010824683681890565900287289870345600487521114989941834794052509712145414201811314381120652031164422851970446791603462988959648312875323566471639611433423687918509915994475064428140699691046553364397543285715383144171137007934287314555543833017317357482358538219631549880738916940711431060478615360719774701987051088822003384884950409483116579968822241396365491627664619977613657766528335810866695900481848449928361160072660450125579655798063448211674217299435079884240186292332016674855695177212130379791221402468023498425624702323886483726604595019224826122191489240263164600726209804094840778671683184269328989444234236537536714241024540543945033425711479273068396687099780889110216051502787798109566160625070189406323151654194796040664214778135883366405368315193697514171526931332632608665279937928094709115957417277670782168608250782920921643167173159672006904670305826502465054183925392975596510795065300706943047613704208977537172584596926114583427333807441855538496955909624391113918825091759253095358977670529678246784570537297574210140441352949908985636788045589955838923671310015333430737177769108479648412779907669021111094852467171186220896602970859592158939175367743303826877567140080644075606323507863935450273723679300980219503368042985465905563621551045142965516199645804818011534037358799237616089520847804380950119624800571021296070604406725042160021432464301702716484494105597647874153883289152153764459212069928572277066912734648435311442476728060322170707764971532002673636437600746029897225884906057578608642751788389198093821299416466334620682414972345837769250881151771216714564035029636446974311560980301991710350567775790170903040746341854117444318137129439313352591150840956047524516792525072278488506878664183413096728980104686012253916235086309429597154769345696385588998688841399259766389317068471575461764540731148573774312194272234784540260145403482411830787216731328462413648662786747653530358978825734243660987197256098256969348590684242559891319290238305100951827257421456951836006009957618007789002869440965418097967992995062833390009548202921611205928453975523242823183260812907417300099717672668400479036534420136180859071084534108994505439411673657022205342117426091136289473412016347987512283652408172285363859956003849366474777893164619244422945406974071409713056381285122772656761097766760035861400084378109791386506054836640264782983136803821647044437963404706147013253057702842188597826294587415245965428905877292678440589236471146817418287480959428683678043226752442820833045534599213966709155447718675936489844828136840411012988214694320516784782852998191049909824864385017124813814842481248905531017427800526110327901281442837425593824952860201684625470902613431047194239969382879420281631612512371288948511081329972812864208928354027877558184695507151772899862151060008571135144960742362458795048869184352949060680666616780346741918105151687624863688796483308698382108138620243464888864952523766260672977035327589193357342062697499759634788061322400892117913014678638234219278515632174535405069083737571142356964250397906080316119949678712644881648034094259596122326876423281240760177864412889279055772274625225238270439439555865448265199338356990738242885918369815207241426657226574739861489726651550693383732935980713806876170954770211473906392168085457386362382575264657628169739331887406237254643794612124961895800416102431609558754965965822704898626997967945111505492980088165472000975710664055207670917425464415600698361190618624107703140300791951531628537293983047684602849310087224364286927608085934561340637096328186880783508968927010468562246695797996582627963873452406625645389224375026562353421908541486732835834186252166793825235439805276301691111084709467399947473964389634843910078529239349482227717995466974877438506245772288407445534406472798721637679682222234404477103990853886602219931438494607789302333938053566037057816053842655202405649703448926694046675040695806010279736567278178674930069849038541724232790171847797743199925294988798131385414123216766128903371304119739269174354522584307899597288312373487084676383817453288336770581129958090482558544617678114367042648913071117095890332013905513085240669384670382045308770281238962304450797547263438352815784927914410557773431542845205829456384626763762143894015976642643456132884781149495593408416658933780917319923224191017911586496376146147086847587410352309359669118532966344524438559969024103809937235054580602953920950360174466618629532734449527126379106044299957507783194393554377606032088631546853436115374614815087662069959675535569645874962741782540758705378397708283859098570049081430744903895193734662122600166191212231923180731610729144449614250251073185386509616057021814988256542885444127482021874337714457075193409736143272640403513102156273582859528909349011784713136578850526994903435715983957619699068347600953483324143209915466770189575075084532509367045472028362011792520799009921178626215291275061722326258076444867408257645596581114960454822819514482149194005411981117248684276186463559959626501980872329836682617521129857465928145428804370150581265861276682713000504174881136484995184039311755882105911395181753455770307016896143561998120561174857736150528657961704553387551748915127833520369408458604088322120351433119723595276333190856078688155063622814989705332891594817179311092519091262062568480427020396963987720468718070102491000263127447614464562013968185099419916789302854794961718877332196869671287487038023629193672167413128019108138935933542533894102241344535119800899915677168884379800461594802633876151316487414014426966367144567885905550899626726016081048255065011399016329671890744665997017853698133343750233545699091977951565870443498338727183793605452289517579227484879726901025975241725841817083500177278337911281197942716902440360861454181895539432172045875683795002249497623500976104778096684603298474808217734206589655012271403746031612233529353804901109447861091901584907154655196476068721814068329174514715785310539623245307682427558999356172557467035965733279976729014219430812922624586188344768956116090016042413734968321440470053800551515814876670030121070908705666235588116854913159577787856049430283655850222945422068862440141595916374091426449222853525920471080796998344450195307263168200530419338955302566712151301908588319343610825467471981091383870401667745683287405121680292978673452609541707590792823645660248221277898710321531406229906239411172206653377050538876684545451202481074002889107771224394330213080408097062276569989855932427328917599509694556677244778631216388769269048692513388326862125934208944147629566306751560304678162508792014048026067426351933298398625845011926892975876569633218404319652346257292722410941927172018209226718892764198145382215697983314959993436212571576714141012640263767304144605436709048939614640002973506708091362673812355206405058812189365179084877187266728814663142608647288903671930533426650166237825218180864546969829905599106031884105492257960396253442939792674029204527693452750007960023486181616291346927587084477124157459917304506962083567915938701121883596394976714748615372865279551101073459360077397337449046721937097026529848588197891553235129596295294049093044350422372154347973925055113228336797694490075932022809619225598563193759479186052418367757309578541772133988869458055260514316259718695263132347754440291200705920957710584973979683132980064152534691524312796693246366349669010028381647081151513066610005160957311402493903609545001649751363027076066141042140413626761964342985028392381224522458302221727421555077123151796002681058334348366357586215677900582578212070677878003384992706293990405661826254005967530098954488329562899735705966813053898144170225421390581805894343721676876760856800116876157587974237867878068691189386381483787464936027750912166902641232513517236146203399495234765118727258570520473638538381550736680098888266765783746028504120155912867579022998125054528565587546387412993294186611627491177981462835979188255837836960484788821019979078436478560570292725008511451018895758029415463273483086619186038143317670999474551794650105913587617981764446381189448877621877988031849549761979573990790732189687894519993037512113118422490192106427696268891304284271402631148022785108327293032849959041242428857193385498970044559834925638718133039497126288817603277062242649783450369600454457796031625235783194316360977563622203483669025491388820673491476248519107113792814443980131862582264002791693521734825327910383274359999681305881978405366324357815686717829400965528867454828779247151076847581187381127084434065978707419350399519563504258119079074251487284626481273942902138629446419561061002645262887232808955728105798820884165629158599123426268302170655869564052829400580411066119511120352637272630015346258823796291771496399205618997463997768945911921000478528808794496217126274177328262970426407312184949249581088696320871281294205972365187248606922919997690438532369585867185628950647475079839546354893863104904431304333839809683294337289445925546968043936280271565098296123964253038890899255526757587289693310376223293313621003412959034726913856856824332722307305660727092708016190198393211205704504236479657534466687417798831073509572605708001834481427609825216548799836977548648109820879874597375696053456859369155049823554498533008644913632775658226215978520809901062407437380633794507376139282312344225250334754801464589177590687834096938974176900282790569219393419139872554199282888490555371754472544073094069074104525485290056590548247097392998115596629196167241682281850725354864599481478127198487880703151189555020612311644534966481757458074674346170448602886744370414430272906457157354307990612559312476692508862277259466432481387032975455222906128115786795689000396461891703830774657126222336538618965891986132047060217958350319355791824531697726941060473565674093484229775509562147956975052072100318582607316090139990027878839372808472463353582438469818992892791358857512032078779700425942392120244877347013759498086395449122187010726412577621899457273819725107961576129922501684930731246022047207958134309636695272009385630459611309241689573973273667732389604272773562808457362512356450197274592256082506854690809835998687715196496325720773713585930760953494997006500199078168111558604134935008265574710961423759721124631598344527241867868464577608036450646241693137105450502861153264301476610947891307060722110579129591778218752642366012474337499487415889152146943997215690487555071094846063585584266285652813476232676577419051452238596780313720993734486620703583756230359255312687333033535787039368915332830959677315636327126442995532357211843778306155653368117065829598904045773573401371311264274400132419880347407780109460584232573759592401997244962621601059747737539889837745530623819527678800927026666244033698422953176208783241846554224256075522713792511582765286895972256912494801289474294646063098884272358704835173200550977242561733818932945509711782653816190850125561536761401910574716082165398281265924824432842843553668274743573528057850510962704743711364752518980299294008188315697079744432541689728817522087616993364888061691748631249903154456622529973115588272805464185564222535680745005630049923537713842006380402705793593747266866452063559293927464654814635157538107547549992864637037478251107808600406510649620729649519308265178462377197910445302256066348181202696344809389419544785147193807779193875808540578627937672086698521521540561639775201490726737337416132664674770673687732379306965633037926177928091650244008540320780764604145993400554916821274162876124944550805525344196341018092753852428172673961604369441759707809904860864373269023800185275262353310918284501769412859252412451842464112266011076353998205870456884283812455614542910752180397619396683109907284798322741331758396629286411070010835149781530944655978314312135974133831377606802309973977276459633083752191768604726098837510895059355500016049097427736048977623812789381040909143712922775440156335594428647294103576881652990779334781737757362280627703570023198697003102187449192457734109702950743350857621263086730424807576227226148209251175167594347118817683823760093810894885838466088729300644353045922276764564342154814246301960983593791586148371542171059723719154544580864402012158999980011303754553381329478392740763863817902339816863578295367353494303906595261338487172651521802021755223954576875147290124996292220537807705512188414615989070171006007351067143359150467214204299852496514752689856727030734141033393386718349357785502276728556863261315727202973718825251489244154642081795163881788611605415514642988410882786857124767326042615329286153144090332629291428686358130851995514437089890492684092939142059426324262249733968342408056380639314488429619398744424259487174363907898242076725361642976503704246151684398889669382144317961792773077371110095028844673853428116011807164992105821715651861539824844126934695335393591331360804086315450037179494937789030038526067283523292045899009531446814394752697855602690231164426134176303912400791567186569191524806813092194268990730697652347845643378515422636309191176563484513613862003333864511462506726410796531384884833150965087799283760377731893907464197843166033920466103601819656769620608651582952679114858352260479032213087918318361287496797046600088600408542097686477493723759549523739681324906071316595065354249101127116512364176753769250805972395406004868253520804374001103908847993154195267707536890718282426133260953812042071405355702605219610860466652901150830128226826661727512406757365758543105690200207996055326976837003451405775831460158583483098537161863167706538290083175719247908012461992659622655120326133505549242153512136118177220209175181827078020578973982804615782742575480970660686695410955679983674328202708276599722450540829645286275390843513589918003120990003124873766795401281285830638299230606100683817108490846540499039510110813444163487669093660820765960130594096018238415647535736745554687763617547821137397887981701411462545452983355248066406827766579624300309570160213479258783803295595021495055547749419081882806315780117340942421848755388075376020514144417426416434070107194219286634147757483414336349592575104649985110603148924274126471819292685112905989776199305202509279416001002993687758071550506213447574433814036264461623064583447550932774169818648018336495681038625325962032632621753220571907334814985170765039729529965113926437664822131538370567358396678176772255713188816672995072724539135044417242382905511048410640226626731051410040448531165346109156680793147828072869995062944159807941907673962034376382785430923897695062099794666734206457583996252671226902914610970925172377100254088070726328799506187876190317309630677575152998260734967574074578612672156869697886202446242973179157141365097110789409634533018607113590656300330619075844730906230998296513726317058063817302678512690170284651785577076534553942038989729562069955691114441568971161158281399314398384602867802352806121283359779307271496619658720037641879005789591827279920176600779095788830688416600460271052886533127494581112544079190278773638722798401685117563779990887615428079789973119598496315204058847104334684425876036417299119121996592297439719213408870980729186453253799676221129792553978778929337911423472645555934714213901853485771626601430298410633245657761461922657545397327994446901327570470545232658834500009465472155037398281474400350859669651574683925593886879047636552298030395710714372804197128502008057512931393203329663397233454911314673275721919649726696095047560177661336938647269822827071505698363394836763948628727496627434098664573235523501637328521033977566002619447238281389791214868602979205975628084049408276843417181795370077732602829587370944896643377323670321553349512367733760025219770518060188971387778696851083391319174614740168644330412797632981539956961200205542558995129358926469991971771796851648281490571142263819344038172635390936834957133594268930458458472932091934709040771105892440277866208211121510947722556325168242142681347124715589634451099836478057187361239248557748969718672356924141116893286795040070459322740158876900696506305075378189143918365145933611685933230376380243801880291608054456568791709478878876121776860640854131909560880611878438741990712062803363663384707296996763620794739252665719639136963349149288589244564322081647187610080875322486350891831747284740385401762717663316891891395504177069199556947457974623760339910247213320144033289230014622598259642614596005378076194655926604178085452732323302611200565112056282376957129706970442392439381393569153275611574979164703036662845823332146625541413480995367742811799225636162116909472961287150753352405709113059492999462658746765608730243401816946282267898661469979838574418245007715848660314005383980647419650140163171852395569109421640807225577022200918533028211628440240042280142193180092886936385868838207062889612064467078192863706217090911481500657094092877173414022138157207448788087028230832868933942816049921922654143725719534040214594621008967047971104596019902947466931986180434360526385440683550242433255308297714889617120602310727134123241956481983953672827622913532312119893067774261991313918269339794313889602616680047863007385358709183895945155531947786394465285739296958503106751840129526086618140521007980037254572508030652020243365720178048217624943760142535151355661571910130277590155531162357986104428309113952071619184906945392789308045439595945540050903353438158386054034294200685249724366310223417707403499966524541904590662107358507402151414378970274456983509161953765838700432738238122550412432477350608833136712360651765557403481960753467194871075736134231854704384882934373441121362174012649230379110030501541181584823047641943466816003171175614599831553267885699705885385021142258060938802469945863704838930510770676336915621440213852998739286801052054654587152713280923927814824266256690876063818590148069145064538391975414486211790748653821504902891107254538300625117078319064154514585118363417097226731183317701394374261428086074732628265689415028063647998068954529629055785485517108609444773246480903026085565475941233100322554846282011179186260499129158535323246655953245308143567902465194138434020795664208996023629783754035818828890968097016342430986984389895549964202129415004856064719165315416874689798623500135210368855412945956120117999442629169647765271267955778089237620005207661018615082985104355144269920615883738613936899886992252950284394361728709547818644833139102718035841927425690344203972329241831543102544799582923770244730185912247176573676645443442436866028152869702479910884422735537561142377973944559312695620193906001013171627078829167695813161268252210349370234912291722135497820717326554325936295673395144682627915378550213012182611293252188624872044854220202222187192630126389800815234754852513364586484879020957355842244573711823801976251763802557081214665596728805742410953222276079247277678650190033422326499318109680136533090497794528100648520945601698519229718137910354526337166795667242270966540357808136410490576306979315493144219728138450921579862322604422920044812810926397577398943567841962939575283348798858303087416386587738459235572422055758834057956818678317418938246885977473133860386173928529577159306028300151345432180183876299740572635324056065643949943220890074452052392530718900480993105129867104684474686164361465187084169551983832155528412958330776251154418618697499282575845609739579476880501186543939402602740222004971839971591366687669998736193568048424844855209953825541747790492008688621869989387203672500471301074283043917993949665955291533443648660203876302070836649255410947494265253968018185675160098631396609680986024298352516200768315205791286710770811517892514601899948777388102463255021896619258618763810890887462868431977937422531937193077515265562164656028957477062169992039429450414705514507315983107919737669390420309611694008396473328737368973838722358933714517021304884504409303449887002322435567012304531010261111618296931214698357514784968440112772998381624071917998687064644561893655486474266442856038719816505259414051432594755883936850901864511949840098729326068303445651423465324782390840236417454691214837954586882441200434050883510789036193995613619962525961425873479368965433403985797400437820113140974313853570806950616155031032405907627595535428805272270534223431776333194168271109498375298370661423300895338988753480601321623101289095934149099607657159352372324103152538887747561972353584171031185958204108873192612772675464444122870532130561642492411686687115480697519796615363027916509854716840966482949325820435110687694225801566718222349018472403247038388189421953368188410288450723008334177605383620962553235661499695958819139398697595833464028461777335611406035982821835444738271413811083317746167805769399995144536182818403223703144596756083740550131263441043996127011881111394732044148031858883973701784990500591153414347500496026693910868948227431423979504459277638779442616839353928649170161039328483581140257695119842633806269433150235701815371401589705287236620868891043586303683352861897612347139718268361579837298266804943100487916812887512014514429020900100481593929002825486797663797200421823278437415652126277553640591063859402750657541407503536206826534676095758968220983061528300630799889151758519049097459713306149286689237698539788293634603051521359927627899653635796811083679441990251232267664164936613808435914188805291737405739501871719060387836464097797258361330256130023755506510580442270435132563211568050858055542151249835957170186949580332517779874365100763552751301724569730885801906911243085793852364354489814196764267290396998686476468190707939820649503510680258967391141855105325367638817322923317595718199597434363903183789657341204824055312537439872111121581556663177225830961652910675808516177161806463777044781113020790098703191268440902667003827216259583914493472030856274626918856213301309756473645598578048895351452766602686558096403516621738582683429288401182511733437817392584612431439064636401216625880929640465548748473344133601272919274525255679472196918373323683402945206383442911557880533560740369113121313947912395246246219883002621810728212988187403686334868387082907027782444114225441734746715684734360415643327464261380777156299977670088426758904780255469640786320573800988438598354100093803866717809304766169766674783904185110768924519488662189731336486751924199665682644410573190432555902599687423801113940354590051748682705312351257351757048103536139652127733101272504313239421481639092497843505481819017908911044546894810351085514877469969748537242987289689960399529156739065621009205517034258797529562087545379120372532934374588902356105724031403138811143014432763931792388921750939168286844584242181648337410009478992304480386870914761852180743267911710670841221775752687890284731794465945141463475331162540579085966577463112005227089197353863802250621331040999077371347629968649582629297936726212280108783561847535114692407085239192570001318477634891834514192881847488416344717766979699844197632393784089208880742564732032413797610520642420195106716694800954258414379088696352909134780017883163758484211066329047575153042732103942697599606187549948519144466939195409201259883804716204517669405979856522556652214644774605747260169400554638179477958660262088764601610584287066836618278263561451136625029507502046466519769140160991893833691759755172437868880500148267738290759566240031311434227960788760978534150969410348364592433777157357017560983320065966460098620889156795051242369416449467633034888556513348510194094044216258879358261913825880727962584491812475413666231786467196054097017762315178438529049604619070836036683780326907017473485025006376580937641028867041705177570873649680532761913792013649050484199068741865547640474794883984867719220252937622316355844328886347529285185216078301299076918818187846214567165458794345611153300757057572285792559786482715074387615301676729750400403464588473782617664525517485882281837254852249803893612358669172443428478889967501178843961595835273115791495006874799835447844204411627407217952412357259170419709872429230731139662809923101489123549492186872321763084843516999976927886931564822374672764962175794268367237772623816796704811780208932032192877852179045276886058694055536161873914374736475306797452343191691844074257975690939480984308394280117130628315727424711370656885582413788268079139291722342529944427633621866710376010701559494845791758503401533892968568026771399772537305357473401424762984138221793304211088131686823567684106557308416734983018416936257829912107614755226661158694565395211156927374183239690687289128285464213925191441439618763251258035422447844742047696406755625386316917137637795695656095763938813464664878124252648853593832739021282056682119547556851191199715330188944551640636621892240372774271300061875036286914850976999364176773894560148834045227663886250801960397418978102686401497349358354533538020149942479291185111144376310168949289223684363587598098848900878557267413484069217998069390620408518026368334657005644355451808493273914807509162772822530840919549002877655240046680617990393165169524316670757136106046047197157047053189895878088546295149615953086707381059241233443647188085744166369089161955920181085408116176004720770111261236229647924912077289891924219768431591406420458518958857986709723531141425954053168826351105397512429321159865809970556425600001734379587319463553301880047258428109985228401952924823497379756362019985518299149836807031839281589148223736537246724356608845120898226271617271632467034368490068059195271101576589069577057501916399220987496216136943786594476087571142767784735078503535927528761822508563770073750008710626757279946577808417045737274840999657630679487027690917656458086488239137398167124602643861573760144254571475956565226083399085033140767649045289557406869539444713061095392302492105615671570871886313629007848282690835037572867122596250900627617741856359173363153078969319736610500477521465842714100361810758138655928051364842415705977138938557300755916306727196478594026264638563477556765243088907976207000890725822845176764141197296810133005449155660376474317499101789138872781601737605871930093472467279092120929034472214928818970587187873911874440795092975160691494238383991821318142873564349478064661186375676130448939314550381664115757322827290610125871997740538956868818396172989641885232552662876373472282920108367740158086871442237866947878562946181033194557362846720158971045859616824746114623521324340661915057241401535220183241085878836760523980168145860431738757095927629329742678638560549042373455213198507799832603556055511221768665953634086104056894588412788634799832093117778923875196462615478094277823818397877136492351657524300203759343215701499505918189037545241549506358304292730491890311988102390794558502596627353118546871295670393787835806054912343105953409512823234990573239672435428548078219195690503185728543671944010256967593852723493546096476635786346835527771947436892148875748802382915935876015213506777703636769226290016410069983710517592767237660153802263604918694243776087542147653483668585710412600792744378471870259951584567316152934372860712005870113231926376083313422382150137852101518178310630973070284238390334660926132563558106780589548868238028439093425497111102099523826311295559249884488854869300025848533592978468565136792110342018068492159270666815644985155193692211027781955519381791190581901170340407807719456051287765815584621368000037444837989673277685878860348353394943539186379440073807742116412582916562998667389568878700610325612557503706043063273216659501315496241857568687535354799386162664950786305288423888180870392800422193904762855562489325672598728114492295819051341671146255984684014071977558445652120669159204726579119039190367168800235065421960952636994028226707416242890420326267970028273118276009409845741179535415837057724056619381888735784735123131792227688637172112911563532705396597922498418736599483923564247352408988907097985801300253885273767882255361421852086503198098050412155030786645053891769263148685700019638712281358274608882110765165347474204535434278300968587896163859925440826141094898020752217913821402226609672218292654818800474927176896123298161914036903454686301395334470593552332025179621146980526015373705196087586343962402990342478396452293686726930361181835658186776394780210871254547713590892296792879526811428707244597437729376965167001073268693246762461069309515466297010791726758137576155400219778928920796860191481614761825990955930683328414731364411965658008076099278780612099860416259632934741209658327945660096005753129000350836913537945264388636427951523546847990756730320489019130337094829142563660823994508832274422341681127588606258172776239415877209641053747184455063658220035853470892924587511247112099995253401310819933710767042456577969480037706788819611211103521629266286922182771545049253393526633401942232870573376309874476637920318214007934770377839336796607107552265838242811941128545912937778065541590115207459141707654315232188303597445181263715734227266609695460133070798058650064605729715508671802975085980295267860083239345769142261484900298719857590533413732526399909648049704671487151172500409008717410349332488004560226855583501641399713557944811869579620635842571908782552013787500511052006054836714450200186650151495826902046957668345480666895599467786482736309127335110215920322276198839676770505855849391816355741859302394728536281829828728268482923841135927156918691197208545139751278522750916059256384683864067687265977216908324811094875909848543864623122587198907626907267172636206337488835301042555703538931467328308378374431976373047364211788541428086632069953138939393486978054686252975963701801495089043173206741693515245481450810316699405690253096225441754746952490567650923063059668292741424226643231832884177763013438735105597200919449774788077798737332176337170927846245421842801020159299095268023394276579357542220751720731556250133806368783218740741522060393432889104876390259140933679842586648361470349255918141244259345107921158760967813376568974833451438530537547206912873597336790636977516225291482206992075007560122121167289969632063095680432833748530134924411917680924961549917495984178375186838788077361743015039048711425680912111409486357611254414192212894890715288528422772200658818362864986449926264888486233081442026451576019499686737665011008918743411823455785577446028190782210866342711170977501855602992556476481373649090665863967516552499933589290829687629305385302570961406110090835437625729968835679375424188899953644368416099690535534422986679043860502522016815005765700557855219803196753094458666833026456772109639614517338632663063825610963426885308219895932658247202696278049782355518992537990939222245205084253489079557882058483014901001647862763245379336288909391493797757607221108245579324510115846424629466103056814103213698879434965898126423336659974138372071147004133682249194834688522609654146639395105881194078690894272290107321405874000261838073743059544158152379119414347191599666041566233278223218054556251390273511629390360126135591151279754661714549798547012968528375671563486192197388653895542935999486426306373696482774175389608045578064986886354967069763372944608530411829915549689492499629222911648075531026810906019033886377575408180138353822900153191208921144056417054797248388822590521323646200262087829863542150192689886067355744098595036921333646891942920854581686055441030356657914365520217617297083534374924752306248761257792054038335784784315758609585582824068081043251570002338315333455814409401185414789522188977934374797010573094947947501848115699103185778609688978221825079641684652452114458990356623921777345361281807819557569290831976216071905314663429752866881838109335267212902570829670610546202771277267430553130228329643218300580632556991208152474448371056672377650626146381299694791063081117925073082225000713422395660987183574534135705988109248268228827788125641142335460444550924817244900845143666997317107808997530301522656568000816552193736722665387714298601216899877437020949099092002552223989554865015145730802552449058642193011466259486423665158573805078167046755293893035225095451826377943954028447264972337828628682562194453880208323312081315046898869404554808922417469841070914628663145390788854880435130312845339940573552687693825351569403759525519023033173735709495367030220946975192759493581679416183447201507660879923909319261757946756107516666277062462376239488913267669363803749806446188689245819294180658596566798437989367749879302491548260032640724556050552553176676538868885703967532453468956318202969363971237099746756128590157619440009646443074823236212079838447814935724675563530143853427964434119953108901807923531864452698622788749784465818364519508956555768298275762213410255019858797593436144915329861136981769612996923259680110509365690294325930270201151399464563952271331263691196379854331530341710031139577147343169822906597398828090784380568303794378884084397113914062753089948794064562400645427694932180055812342778417998955789948169583901500444961409492221960314251254736280767881223239152413277271836445353545717727459550284740185242882704804248227799615486260706290990240122446211417671150967886822459062069189162943603601058265202713291716146803215500788152293160132544458586720427479725502697001958683284095729244578629280143131984153981123548314249487869260712528287032208366305219016546199268494642436444913499714980736351216482422749911257671569894821073551144984623833481055402909279262779231673221633775421563665758595603098111450908826103700362039536341327317261022439585319884687756560162967838564433891609508768087546265174289564428027986392382455235253035411830025197715515374048045055201628391906758448044260117882371684645699408682831300491442353891018719582381657654201083470263458904539763900615823264280194079944054812040001621363590032514139636752480222162594142723412080942373140522623988795052519314075064002850140773788525519198058959056874979593969085974974811657364772241515494261033939331683638042541647787547197825613392726551996726218297296282316783752908873721225816228780557589526169774129761577621287684932486802659124142360408481503150716995624066687652421837640355251940562667360053151819254440619879417289032854903896099920082709113727056137576745334911192953235208850100236760901621022948213547893637637215242687316012166817084822534865345674273467583027920508782801599668005251873742460970125660821199487655278736163366649303381141821514416993228187084846084279882921367621555181676930117715445555388927350330571930304309720887900356344952966312018820475766157392638942725286122061993114245774387605432000341729461312173424951608282744030685457036711157821375992900553011211743141679576445072768378124314273364020814803500427159148718057133777915472978897628886851846015933060378008799154496287907908169052129645033060660699606253266187244887215538977063152951864856676257030422217674247357284395128372107449538640728122574960191441201479683694396019231989439226259260543131924944139463277396672297761122246674671159692665431195601074978253317503337151497686141393491346962367605303015950751565079649436437775281505891323912757616046338409367715705542478183437444053480561341045753981587891024791173329567185010326724509332361578677842136224206780003115472129531233283412186900841905049576568108765985968829132150774114337503706841079033747104382072963953599893809439540180665422609335423382237009054693674692872205137389038898021118663439643668921316550262826076299119249258153347345588100580794035120526160957464757137386110805235839064990437910166047812397306019436589162162480974485469300597084699976876001393023785410141689855304303302301657130152440444777710765347485974585793204983941250296510900634079901789368279361839197781247987970560787391019866111150409174866135842112789724490015287288447637764954524898558958611473760370096561825743986393554604988452596941556994023681618692058507849664681158561173865453299222451064411560426993039766733457945859370548076109451768618359160354224950823761739010485321468897781966316868850531524384065261745001767294990915256708654194868224546111604171351964045926743629027572364069544288573174028946993112879417566569619979720349414941605390129191446103944609365882845539446928838568205269329769402015961830814433541994484463766159711240482298233614403484548711477240081904748974794157183544147019845118094315520105122947406842936931224936356372753456736217299508820115620602849568768807096623509621372604061636273718888548950447510914345784889390548219544487546179930607435721241358840015592928051252698665448817379555134123684920677695210487410958394173792737145755493171872135577313918686836161961722162507947027718051990066356108114436066118489675459583174357321358741931841609532105733483176369919044801122896269585079559629446499123326581249927688267142880707188727243288746004103694897766325826496054518739841273895966088654162404414126134592571288964289243645976784103303499664231983987135013904593594734193528726130719697062644634582608750085782174573204273633245488525055003008447454988364197566463080490383345912915787643869868081276018186296857486603779162031870467839894078561117629513717984624938288832845601770373556499924258284974244906469911587636554954935353772766790684556246128971138935990029678333802079429824911017789203070396039310120533114194717205080659666515434056768802346534217530655195777832981853486060629029903425742091425818159863786216257487090099241977245781059187107242846280690201399039756669243175064749747474543801743847276175709435846303323375438254960879964525667554548546726260111364094848319158931754577813877179381176392502387764551285457178800760423386163619467992576620665296772610786363726655244739003989933685085853468981111192725715369299732164203422675074244522003769442067454675910109584909962581526376678260544768229585800776931807797458091154849979782907822087006078068170527616859295046267439841630549681716326281634241348483600811027383342482662975138542714828788090854835615318672261009945219240693100861656668668718706793227833734789798990519649939986609173885944304391452221523454366208854092948252795410015768837226176393951173090193266368468618350872546151702960450531094225866817724831463474273500823786573374550465754200609273840078036802211741462106557607673893611690754755423220875965252714935101330960252405286582629148531616092575956968809244231746980766818896216240884331353923069741913678683706349860538178160098883456203593126039281253096462374957710679353182688419088068831593917491281389289945905529916442729938397001147432367776204371874880073837908686774683184694703290370505855828098288104352574910530488337199641416645546000009976182518703255735282639622069627932780553678718952069015108026858403950886011416986190205014441408524284792221163124008679626445222225202900983997089056663068658768877138450944636507816320135112231289879295771882988460998447854706164493737980267188611465554467867333146370266479376228041275120584975793482889700151786464408750328480854352344982574295557910345834768608324469478139103106187083407670825982302013434280738765772953996061746906903890358051615335637716087095009582711769196784161323099652222403826023632507202831739234838380080746561163151427656477695398496279005400166320640240064007838626458403532020525257978340301532787402861610518669613679648910141616918109600271076104387327732654991781087474718405270621300439783829252516296250477200582625782819036644134448822187495583426603137466487892242002966775348919240551045375726970946628420539131900912233116234635537396163540337216450244358123665443949934291920529664160761284319412800664410151132042075118642256486775134654718017818213768497830356269699361876464962853589875935358033354128147713152395748137683263160910937459334122212524952397297865921447628688563070279540880188515832142416182087076770535447567254461973527034120786266013648211652668137199120798407711262359387481201710080987305261058790969425335627425806853670935207805955749033381555024340240182718912031683352242844775829564922849597686811015334608564546534232302514110655656153513142631631396666353451584076309241828973864567352547854381674294920438607383518534064103389190847989324970059322603059540557670564930126297114405328613895509476988427076497105459641843963966833907025080553409471814900314818577216108558972685189197115544430650802976319730721467209764868680774950185759124922738419009329291704573286972609688190471863488184645282957326204732082196898138573283220740232468871926001375853800091208894877225984757569266399949448376486725043505422294376900889635650857805986605792382310836362752059293890170285541288876227151199082002054427667615963935396338214579239147766693167881733151217179600367150251450382447304027732570389846978514404349592713830547509657787984663288141431358471427267491133165484758218703765961772499702604998449769212557487272460494145369316726776606808079655453763281421201347915510835668712065534369400152463637641646380823001266638479102603853687798356109735775092632187463672302185188108410053782492510011802938389910148536683295654679100405256471228831321326639026501390202005158891304446271671656557881942389133178423923397992251702427798644509069430653039765669746220685958097388360930359722137485999817709235516414756850421616181341965372068354001584198927042302202133605910121291763376860821045254848693348649235675703836234674195927441841651262877459545104744287112223235575507103837187527325364971900335260314833587540858263742879496282118515379235668806168198955721617585007370388870475461596917189789076066342143906684806130054754140305340498710031111210599219638457218421434484126903623332371247029878647399804366401734276556970768007790918318667204765189762352612374855354569034408598530331261368808894375636978247785774248915390129312650917485657863392690629790844559355950925981896936160840466025269022315286893212331153265256228570003792060955750581782257240046545947132530739111051296905749824803571665490157367993130778002719821385450521631180220601503701654481739180571894338532705383021778932227065273871336133003784757043125485004809102744331156805711202678797895667490864363918388291841119162916182841612783441413708016450052570469330103634142598127885561308631037284041835754308860968999748573160073847123481760059200231196825287872430581437998024184761326154071812483215024176870094509430982460098792119504473802900958442182347004908938987441090477291465083081365178855060214714506845495560997969441048984215585346266846787170006043780245296099046097993371073655071909648419046047310979536941230599749071501078490232519536396940472154024680672676640765495995552789464433841716617531809917924978882308101269129464374768297769503318859441883283251385223961234423426760079191067923009020582162148577032244317950093682779838539698116610376283257228800734488734896036181014286601838102793652169735522218426270561009502673115527293470647177268988960833709858064395107129854822048161844643413003592109017805073989985623260112334451049005486382539183495076166484286388674828683817744650659927462244224582647602037570386799874380457881236395497863680708088736790549602898089658597258525384445597416238996939215231068276368940518500256308317045653808496413917991803235607598500781502748511164633283788315183234293353354638658700369272665516246369902376366199548228585339356473561155343282191641641430749399608835973239078887461306078712257568484055900105666977842024725757652029142867161816131118060664335921378415086854955919543219577162079326230394180962091809881157324351509841913041711111352897267946703021267146072705902950220621269975476469926734073898483051533317062564397728822147723852427834660893762507912291230960795893474357395364431559153290427306504349010488044069877084289049466692691713538936473611168516163749474397550667849403366717266869513868483056977016974721267952795207662985873737929722175414940164490515855478371832091932135742144680214749611110463534348826379279463181519715521922863447885268860334139598047938791906090657087465491150987333636428485889642337159838595373206503013783756470019323310527370229648938192676523398111283960557511334545612022152546945169826279005704203231910552683335131714945345244291704462911969159983660463898445752650457408599193996855037009123498203120579922664334142201727900629019646222789516484546467158113411363116915248736104290859646049580958330905146891156470573120641961095022584794851440497538027399564238203924285821991840629168578147318049451808201507817420841476966353994485552962196552035765586126588212333378464388716184371255307990405566374668688499860713328825135105382344599410734863364841116005420962914466207997135225004505055982791264031547824845504742682593900867816310933244238023154979275385076275407117153002299791551241736787303359828904210310948678646135466565108452838150638425065646314868263410775401525077181210294224724116280154142439120175338151885209056470745281263834839962158016816932393999246586783214203775611726607026625904718592250435755196490846413057110267122345458233695243486884455608515373134701319290249398875846899857195897625688323587540286618030691415265514440616745582831500179962424198757245507555416795680530840395837838217161626763082397632770854596449591243586753295786433700110826778198207878606204324328058533927958503479157196524019606827902574180199049483351400133386370443220167697721532365131092499688001024095987224008220584990215050957555335030471955934688998466463557340879330214349061513529448621546368782326071230474221958971382474440475187245013756164814435066089310436147874545286244392948282859529614836609452335104845538459910408853499263337564252559699216029819845918743317935316276009793809045102540213390089591437560624352317928455545530333872847781102251280694919509413362748324655944478856996373586512801634126654863524624620851308883635499523692652597935499555417628324238370297269012649652420028938811933170060235047926668517241615065213450711990575477798256683791492340418955158746602711508691164275576719841320425538008884628320873153358740252639792105026788068341900955201542323158272545475663062614499786776899218212060941632375846059952190047056021463660180050603676069368550609226152585760967961499828087989896737878146664459860109182530060211730706467352286580581613365145881262562817251062921908345112589391429594807592082489409551455442223320243678540337371449651892604697812195765341173929327520201494882180910292880036589595142594303156247290913983017135339948693507387483324237223936643213515933043187990249681221718793568325162858225701361855144262846259387217943826656376045710184256657268701891366396958645196547876616815951629571596937861596694639399462087254828236812267668534580456499071063233760232272751757167268655096175546519779978205922357266891912533995913818966198166679512337335594450920460391740269096024438693099595157768896027494308112223941992648156138697675795835404381235848968431707750220664476025405156309204931793923158571818483824576802966912457304442780874723511533347144495820694917437463470999519197621252642124402767927849756206917469000751547021092008102832939352279697756070455344209926755204115804071514058706961730021933814553877663887435632727179246096125956057065561865299334716381455198721131466948338008842010235145860831721213014912716165196061749816040494741483981107692990903320939058506568428271483829749110319426513019121820990101085534418822919945843366242422674700362460218979651568912192551428806570874754351736847685070301993564361191698133028759470117564794531747686479551820392212947089468983368604969065800840557287509863471124608829493964564239228210474354405333213453387910680108043742786230680929151623739107956144910591302613181604599560075949546115931578302733876517770668351947181214625766828781152483704609041897504972012375124937810872863243018658703374425873208813004671185365805156411563929592687833750343557611006440866245766739988872076181311729452604959853931544184970460423824841676238458565837214146368947990859868018034115676179040636720515267115070038031729126148333891130008663507983746321386370993458280952121432068480764280350393563001725236662528722915304862560601883571438486514141997445651204090032856700625053857817296682766485630603074228055223827891537715857404215687106127547997980675695602407315224074310407692990015411333414542689366568391434442162542388175366827265172355305813965577918394180758159411783649531705283604693114338398045130580148285959489819588101831185514758832533963402479314580725932908869493503088109689267527400438934351905218032548042236846761818751148192045609108455948690753997370460796228889334966146743439017985028010145457012861082249958434240546545962084387192790939768702401777514655940560957397165035973818911732799076575627459457357559130161765862773704894931452488212861939771816807242658449476222389038658369013705377186938852750169036934186067942901307128628260893860786326024550601475871455093485456537096897166757900185763889765383838230448041302407788662913454529236324709052253782823947608746143869509798470106158662972346047224273263612254895869548633431557221678032028718330829936516478019579950513767566642718128048195383859644123602802814257730227559946971634532791256900593938817231182748517533213887532007108879767381461912675395986859327036731343870712338892804376215018985725021685103280098721652409474834207081784945218279813629711278909806744323367428208121658032689748818968538553324199585270223927659486233037064564352801066515450231181325989062054867279369972219667063725154620805206218384984924291449191845405655787039828160653407180853668601895245415549209168622949164454154691051602740970404693818702242291125750683023103399058910224066044802986163196511363028096754175874516385399408554861478292741464879260317153062546591583024648689357412042497069145880292048945528327981303440242699137952649590523916264076961026968840831974128030950514583969476154278070973070150595290486301110202898856683414233709374086865611967300259694616472561291972864798995130630129242281687881352811628822978407508756588953323486706604377992895885845867313321189386589403086494466411259227973802403553353081248261363779775571700070859855143894950403440346995436418532495558403459824728014343353267168576855381424600986817387651237420047644786080907159148162198850396831633156503621891398029827225939176912961356768286091846195153494027416295897473160080435202678222949873457439227438100453489387002720871358286045860346911369954956518242859295801777547163437295423021108767993752672182198787288215064674373940891137592164485280869698856548643913398755342781617076851524979118280448548013066858513097738824140595745194414394898871354025079719643874312706180414573994476109118925733513118695657983757850618992648263645896731353889122174336454957542671990207201549597735870287152635374618969840667164463325751212865010383872354199799881967536539572440358540337465943605351275563873626307577065564896414393039661068067428310954553260283624874629951934249496242096800190188165731893836552917434371556847597446272174715894051119701041109708217023154777563157096994511888643639673556932583489125920670329609417644858388503871237670799192651201861292821450120641326505717144917380909097411123690943785781954888641073918255019932385159442035225282568655601788294783509030382222893843626569046978467797772005157836664707705279889366829945585617066360923623137095586187113875938339520529369033516442408661285200369323890031940721735653769391885459458382185796047525261623153633030497857060519042203669835786682500213417423603566073584310113709764714111265529054455354021806288733652241449686911850340499860437389539734420285075011665022062019888243990246099076715973379895366134618084989139616685164981222782964596033711417387620737822159323566870996026663615866472335147333022927252482788650152736714501291355239195443056906156794694652506991865397540713883731495363987894111113448555784038212982172750906327692484375485775423826816755292870012729268241651443866953244980809997040794381962294601278077855011330404345369079823275296054898642998161185183665105936858159597299403818223637464311731786651444502720888809717856630487249977689897623776142980227976209616917603286783752186504557636847026692509975929250663909571866140002969344378336458610383275547629398972844735607883541685897489799309310009517037593999282168627186593730054778778337820924941458822164531194318291086941618106164177338432883168597849054519790259228003473899446702058479419150139964610870196113784410166984792150903348024682483156044217289137668767069436923087482587003014760758508269558266498449131309747275272763269143513435128864448144665257688745375232614652829385597452572572757112384539254543341371295026843624542162979021355307438752406003349919051940721571730306971540446332400267259752871593502328961600476839444149148482277650659677710008728768963779873874898353477946865446691232959439432303103839690554750971718878101948805287232379369726675440580793436280175583950294920094194427366688924359285432288340273133513668988488564114028098460564103562320166720558359241061540425840948532580940050593882011386078640242236058222494650296954281621199450302465269773492731549064680155291311366416457605276811381335743021507587123100329012587181286362019471444485902230709579046117916328275788932192252981654905578626466936966545118413753927362487026424926667926501274019799173993692340938559582325664442282400788581546230118181828487934931550992439594763780787764367360239717555687807931492469230369361957193599814368417643218682791372395226149782332798419887696691803559217842366771544685131751480209571857811326651181921521273183342919452933085024523035105007564901013075919879615791537803149500347556149406922207670495293051077532113700760310255484501401158001481815997242083987940490599160852961479862106884624337846848649998683404146109223565741169155731725112032243632102510651123233982900980743601504908552140750424981130267819315950823737065465040920971425570401907011802324707849261418040956339511931590189291694616241280228925354211573777550716443917164391243225711624484322587146489345026459584475266133940764637089175121525732794602045294199398576444147080024001370278344614053840793908057244628283886791513106935963247055706472573016559369769314943512151014636465890503410428736112084721066170936488753181108482850340426635925368105958053352687914702330351814702348520131902155367185569118732364619496417547733637053075820772768052212040905157874694353176000154942648220271307143058239939771200208615383247512250137009095072078091990788995430718252694995701506633992533802486717769137952590589585463691335602222256431136259728972212317925018718798019365801572212023128388262892863239956428628357428846797824936924170739374793735737528855649206719529608217338800562868656726028915145539179306826519885054086297108715606013253040531710626584949452430513673496581614712452051132756943263847830519612407494725782308658532516177679654328053309872764875018669651486882304470275846828265317657366986871323006512239506171214703531880216728139324857721325406713228626742503176757876038637829159384283267847910906796307636639673814513552430852758403699946643029744722157848117416496100945638429956738761612535360952450181022957018489699342671207905730556062548343963550896073797324336373383365078841606156930854051225425299821556681982075048198646868663760701035403732182517811269815191173100390744230711944491912276712434680855381511984967545400496227877821779067267086624891154345359296494473245265884376533887336580414303720808684934431727230330033949365960763850903718202406846912268288042209978164125081748721862860732679317418988741734474594074132636766288461313945662816433770522576498028681074483285709403669078904285719366484084888828922003404351001291383619477106120476470544056277524069670788592673800870421172155795551326156963013967935374598052368110687509592856072934898292591356810630925283996665300807717474994686000292898373401095931882201832207904362406453804221644495851921534242300498754501914446517578252819864963962587428763301046451381051160428251369074814568469816483481019114690423118452760131638910361091142818926156754719855992158549651234784405067275286995225717257208781045836274309986851322092567366064165106601883339937345564998263439090707467400179547300167921318383322623193551531836794654100233238702077275227136685090906891932376236986908803463141311298563409312691923034228053007735237072796843258234786457049668299993981754371396845826690484402861464440001623008595951844394027184227220864182029595972201073375637564807951010089033647777355793251424083007758429092063828269048434678058084543344543282156306871565159161231737770416586422821594992501258225302519334172833442578740102662395882590427761658224863379723873135412848751430861245757795429507681926359762614264044496464703253295912947079048955736305920608332708379262764535240144121286465854718061599464472950949035957922791931386153634018841492455048293814671895667465694294186169679578317886821133374523674307669698946496813963638019294682980950623084109804031049948672928542269556051535161904242563056700513659771652224188245744151194189759938721225509495771897261935043609831559779856400211354460378233938980083234754664272097820078582351015721742812274580656528408572252362334422105871191841941250945864264480103909396126527791026620513095266584339529042468788409572411577863329371334678690374556686888224851586041256131894233808306797771382058389097927994928508003787751224837389196461021344519223189025073919263948621857122765040606387396542338292130693761044831912772929987565481473061771673555981118303283943079661071579537069677124094861998606524943138616674683152819144801049491225957384436529504406016880963711632834840133774917285902414072012832332722437587512282405420920748684338280854789463155241765494756723530613591742405813230686923947251745708956741318108358526794879958321361237029464258079022415428908707850040353392866268351301854095714724711928499233494580015643006556123178179642029316738837714001526568122239882015288905329653092007934818211299605396129939180431147415455151460230740149583933840882157402261922405676093320102729997570790944746265427044508379412720375351529414261286106081389935505396826419627013979125802957143394545180087364454885918366903890545020942618421322377897902834799346634606296504313571706336955968734332479649753635611121091647264347655601678584706195467393561478266784519334943887467784478440150648960893268264677775282077346600023508971299553008127301281225151298382334959909965442804135176510972977208957134031688682738221849084959744976088798644209369066821130981943346814661040262768174527479757846904994651749881296727760391201617548334160131202472394281175731082270732133104207769604991872051197772870576793126413011913694389683874650044383198262343376823790519037751878410096945305437161494760515241231270034580000072349355070959220261203670836927888937909219470693505313356117548441314301879503048740792725446577773111587572223395046420472263242697424520251991667639976720702016225150616226647664177978015687243358965660772696857631629874994919666949064579550671721077520608561988472741907963973272494309914177850025515486871741433465454766106666788176375199777469173381297340951314137170449841701183600142417615259890197364865543232992032448819113300982060193635359013517802614065302207529767356110294649172676385965998551201855997249603189362040452214299168989775600054714838975291075710314423204672535236468839363824259495430642762165291274768093754699556975312331203313347296504944417432027427470306500586698928461806869129236674563568096352309837756866218721551659119732131922117821463276039167917294595821956795091114472057105905207380559298507231044941495225715671860135937904675102860562712740744141182521570886136755577528993710386496343915647205635233463455717712230993012995227649298282896938109678543150117781405972284863868276356894265860619923391881003807218143851755287956635336884350413172732715337651533148998576658086540178368293597507775813176217854107387871411406015469883875341695288410367062454009626840656661034960775141524998993273150679109021536849862602871940096550779910115348979495332505474047530754069392695708503659240482785144713958053445356146431134089885710363963478932114268356485218778251728882321360657489824972927953569571794527492769319691802989572166938643260423725953385527337094919282380390396070144133492650532364449919133697261247077150506731406097782821232297886733737179061802911531135544796027784830345706881007977052617956369847876494475743550445028311606723493405687900632743670511013381310152648026899807635118184777635383063480786398836748970677945084345920589876646139545296913291345672925976549339375303451809806627740299343961225429994080603811421762226834903902888978707883678057446680361026836851309382457801516584052835021985726406994090103572345356288925124332947101000378738724757990915554431209435463760558580410796860891154959330027684582286179841020093187045489399079225019019359541841990040943383540641000715765955753935629624570052747595442189367718005075808302727984371622065993454098306734804536598151707958318138831456528003659288230465640975655372255691253453080534865724843801873031179854931546054388316619367392190910946859510752092658351464572756746133991218702825670959835147545191541904262668543053467482547098519195849514337873785396593144217944979083671980886713067355901942066241502171546733850585955584959384614096762895858778144402951881996080576057537410647396228020310013149625603454624432317254886350735175180578593653032933049262648373283838443555117649604526170399156341851560566177679622403928692166989110528943442478382079761872327069196036462766100144378682565498618752789617118959103915657222276118545023128453131030402682403029425044349228905580326512186884691722637490386906159445929828245888670835019320467696529982761806251235789356259015989250909270624359324381352218762084381387886109634358234473423107751849161030930246725923584137530826053665155452772355629946698973368049624470955085290588535012174824003088810769748922101747793325178733774586398497405376302317409394225776726034177071873517981610882701573728607166900752955767351406105801483851892864483516420165698487190945907181639780562733006706507698556861153992194123880890373984720675299208660295725668440918019059240802880363921158105423592899079665076562637146838497493260530042681134247368463754288401852642589401156592469560452330751015335798417800699214968195899007381773275554695104830870997177405773024997802900530693613025581973490616501334640278153070789587164227108727303148110476270727555243452734452825351580781386796594750584964951205097582773620550010397332513962007523776952702804736221320406057240059560046526460814657018452261474644889606508039429047724993762775283250202890831130876743750402344961898713010394893122437703728906999041577296676826493634247947044853798574997518585613939725560506340207354068573541198633791454961069315446938187512823384816102592274927482046966141706587277869548119124915573051454400621875869940685888193524114335799013722408362439044318341825285847399818169986332256291908958416537351146761697656827454183742813300580580736824000239524526204016530456627150808225324380435176395925572297226102512998523310390354666349284337186580437641639272155414544530329882642137413205508904816158017172202604690713228001835504021889354786160182985251060188899144794744347031333785382354764606821257643284695659542138565734565679151473904569165676804849962273483532556153095011307945325788031484745768200913310893726029305262455369321531002256266288995452879631791992394912920563462964199194387457627668291658229516307951695066890956861852523512649708526304914635369904554362545722141300583405440376465841540123993175250112573610486381438631562925344623392184961772033178663813758525137632825184535335616247206618949552665208612410533953928729905081809247789495278899293363183329269048867171603895415177067388265973650206014358469035696270029723141461425573267631105053043352784360754436394518878590978585361790536634512009665358207087092526472083781870683095643775951999669101084319259504084758455081791507257476405879604802320072722887070250199771331495659390055715045795368882986703927353808512664018644946380743548662599648014720512210178172790712600511700913460552152643910713013438446858054179087098557461645529377388870183961476980792148426206576085417141192175916413051450710662726975043899367321221305405712441172387328953714905136878340199998778901862501074991994311861671999890667713656531670260858996254090868639768361435405027801498842204177151302102775517067246351041172237096980680901083155665066633825621551277793872363216327249298121426237334298961437602443181335900972936659058369418931835021817455941741747399740556190877427940863484196652508710886017246796414950012447874991056597957031855981721975916211309068042987179409265437097102447558339489738612545693227324162217194936544075363218035490809049422981707579253146915620073955732855797366544352809878277479548176413551539978022176286378296389116197464863554685260276190065838161497106637417235695570024639336348500553205723116043798488692265622834318738391890181694712640636303519552295284096505078711924352942670191234628644892740831051312891218806763362137034241176601435199379657380888750520719747573418669532714480567252246858592162412695162745969125466902828409218817470159012107768086350780498839916409331908490276502639801424601877019368132608607050686649563873228530147845126111361377008867248603101073722072130654857795540253292113662159731055753996094972579707497644218251410350449845944995584465069145698248131855122542370228099760455830779374665344112204223849719315561464762642338170335762754717677361507109011558645259557440177331837551523058312944021174251992847205357019538373279996127047619111349526515503934965327618730379980830654058128681331312922028779402378355464736119782051555466020339234984995079168970889439083952064363431870588145992565251308921003058130010244329698536800278029036279775746953216581937041208222380144425460829964201574542999588564240872214204028250290599268896143379196903244146675042237318083074353762432300550306950105018627780261142800055187432864928043997286461589278592290922986396002977281367113731509134676432047578484401175890712186522705014068359315232284039205638647693523406369037921313956363417153448166583277806300037987462045132904487206209752022444654416716590600304765507290151765847554616039609260058911181843772368124158451144951133295047922359078186592197888256269890033661304693805969305655027296210967109521539438581290111923900839667184125703922616611353369812444589113785213515602661242042328731770476186858976587596011726420574974262913213347956783482519108283890327923946495260526771702630988280465561537943768770616221146916328849932435452698890701579114123319531975049431816425899695649152031188142381445962103584711646617238795694895881388706495174201840935014446392639728886726212348874583396466656448190539752095570844423009160128798786199046393866461558925141711100987600875610176461118276910037113597451683776790279564117878245360810779267491672193822841129638288493981582193954446418249217213920791890566357401769402531426121898401606421414901286104845163010908778515638414633877928929000339527131767247382041654063903298409275861661400407047023174563107857105342910159067955899797107176535278981003497552123364632656739586952738179494084424959280586749471539841571296012040733083990574199848625741879954922717184596530079329087734421635384774149283651681999247443360754840543889849631728191053273823893220607614322253228010364203750935575118814529539015789993014244968480372361851361907899323008747951476913016433999205648597209247394152824886228113800927537679975926612363444490517507735801635239715214314006280343154957193008552974109516787660801018691383676547336896725867555633565245653493951694567926183822788608859048071039505892325817611987227593125366368307836678053764436786795856004365442669682856832521394444997316286044281653944518509078830631419454999347502517551848111562033991174673000198101456157009059339683250488723728399664910695772861020490682253412020406910985225796690817036341927934612682282831463150984864996810802039609283828726452577743198925762608183015252460885051840382555686282934115860838957074166719156276112668697831384732485365764912772605287211945480435391420994641570306843771972545242462546679362306505236171129278330748439316435830772644974429028212811997466469374658515917473728107875900831633968765207154027292545915016377421391924189033584615322415032852749197421640671097472872834928176923070536612744214655494866625702522826098113034690437679258252603894450715606131763856604923319674978126475455780960372162579629606410360414557973782146616427324440400458614607679241628856048428775158554554936097459967846490085961815743343653875779680490706621226535954932870837708427560842926240977876683461827287384238522459133568165822664482816847764177419230600019052731822415073273362300144260668551220501600075752879589012544748159913913335827121391548899778787230738726462424118738742197564091419549032863183632166039458752590821150177618259441587897148848142314723094814982600163224055497808696155496553916872229094311173593437104020523278006817796676034433585572138693364913138782290241695660829528438850866134457775775563297326538944387593625055585649494780347118784839029356488858542717258079623866881630506736176761568060427648891429061636214446900617823392603831882365041746007647528810516875129496838366847132455752389092813186124753908595509468672019479138870095255017890188209496378740741637515988842888325439474378048248669096419918106366069887347413736866024672013832034443671815566075779716661146804821577256228276826961224441272696649813792307157469155325665678174863280574893937185429767925233435629946851737888217928844993060330597032750829129800459307894228203385144753549084430044010073237751249871976641625555429870341225577589881229664927472721477526121374942074743565404922047601754098748349551730087262537910832044865292376631096746830300429514008242275935042482405655941491584655418909944332045399243233261485432575566508110497715483057878519581497698486676610986946932818231438296135981402638680452788799316838556621112020585322969754603191220974024898515487037539094817192269111740240355068624811937130083763136634979581210797963103554820821919114859754876305192937286555520548314033676103692779013773523247739068707535470842489143539550223979110239997449603728947731761901693994305048395082504245336188037863112348199651113704281454529109876044208936732693868475886983242321987646509998806075486735755484047994926871200546815408784551149413472920623982408894472899733452689820500807936241625460291908210848850096242237523204966294994086430993874897323005383964486738073005595631656423331493035510012502561084666693767719713833895283461237329129756135557688994243862083374462881546136923802541057727390128601210806340350205304807800805802459163341156818545422159181931161808471552934655265827835999390505656895057833857621507614539803384323211805304312662019595926860439036253776301260764567638462651314590971536683968713651007773506032733862299940743916581389447909814745272955337177229976530744410641856737933979863587243251917644296061721965458101893628854014359774896938507963103191215621736107955255430316562981117913323261228423593760032784286583517909444959446563373602309864303169196600942819336910088070287280651578465025828569809081582071159718839391516303696550823139984138909446192886713894065359834280115945749271947752503834429683343232725126058791395379020970368856581275228547797273373808050403613660687233621396517444050613701599578259822687560499224101355351398626541346269262850956178476825662482758703156057656363095438528280896253984908027858841225634551921000060581730213114135502470883122495213655821390211090918491226447621087031067579328853498831673730914117140827887366137918713262984442696384657804492753571937599357866124001409107843753702859604218443680315070719085572624223151767077713560057490507200177051462199954888781818101269913779713298630812316292486670899326670823123421150775986827828884361622978778028238839106961584085212321362792614168252423617450327187998445859153788903401207776662857875094210916696622435355390368902021979367616984722546700382925780737558342520799782852083367366537590726766109970837507438996547615955055991913802763276812355743552266037925729441655531797865043808940011560179514016805092526597585094666580517162552750576337146606520899947135824801677125411861245932147449539975196733554962719429132922388860476143576888274319214436740438618927585806928929649366065041869622304118626207913926564182661727235892065323428804151641883354821985051668014663563633742947702847352813738634660137037051309656498649669397158517222074334591061304780693199701008951434267123727791377311421596494224149347644492144862111520943000211766165480228095806411473794586080518215477982373248462488340074511721048303724258933594767324733453060230532566216037938840043124648688683715273033726281175238752169192053464396568511441570108897308888294036528548865154252425075617443878527558173401976802201456813582173703571241841651029966839875659863592017560173329566716482671815008160467093900894379951603594826547727936781141886482154328105942122883587989005415119952114187851350660612861165525330735794992424355898476412080664138702308961415676048683763733643359805883312109192770231683823076337134319643062911061752156056375218399744586323732501549661575298454987297846422017834556591808170492481023508973731688374767159175681954048683443521518479222198831157194399429303352479736235041389517391352039002301030258958829184332665786969936256605727317168831799633321972136584448825053569175920654371589953793793648153555251699542608576799210506558839984604222553329687659100850943737378417980592560752697863793317735805210292922107005854273253110075041325694238311658518060148887276566216074502347246950296691014951150341342314051355477572880634744728016283594840704464318796370356681867918138347361494792511132340388859316132937903010340911497224948201367110478399323811559299998714512230953478008627267053915377905107861880718546737953549701468144820676375352312132798605766263799519812274115166922656579159768631011488258150722086473622173461858563970025354345646198185021714287302474255132503931854645403909856356315193766028665137222706115644773910166513323909980139000720281699197354883109733269952981243684709920240704287391053184860474762002217025658962919524201205640678929262102104923816783722545683966839960715122363306886814967920010234774955472138949358941315486337695227572682914464172640074270956583327201250612430602392548062011863250329251318619287442324460441034454618997349155318656310098191330134299523778686693326946012411584687161727631895738221102312723853466795305410296493697028209187828837031168684440430612930968705449773032313148049815248621892791982859880692106247236363654733109546938186141245647877451601900989496693200145797628199852741876809831646535172748602931231217545734009626280903418731153750547655446557555169323135663222575168391382609536408106350855835024293806830673792058835087331698540462505845256037465988000488268327073741071785617722823982595766688099586513452695595689538934621705789798979017843946020849649796577279649432493638162814083287099664070058909151057840855553052667637808447073426054483466530977799413107071648636614835628244847301354012642028214363954589388092469094517176397621816125450499568239021427329129317789689885249516764257568570872619148664037907281041041920865095114193878082830955637882801270526635301173032000820399498172287990174240844941119188986035239510075050901575663525656079259672879455610768852776238914623637876734623934781547254869009998959093329847012064090901521482564889859750158548022641441250982673964584660462159824939124527140632388489268328674485832524566936312177538201014169234747718289096220411733955864258082154222749903364067204247975700072023924488887521765956840144822076148011103020048475729873552365430418440359612202236522652111433177784472345797844056927293734269081082017470178904916147664761977383771051183930924193352968374895057536139700234062987102876563054809839081800404203528680203932474650558618036907308733859048208495388396394987692992468048080766778121431570740036436165861715496988346565087946044447746728029655380665369998763616671976041744165243268259960924275077466396078929537562482606058670341830383440916520669274600957487850170859924661919302539178547925565974756458710065263096807336437695392270765473807706294268687694779468799989914509954389515917254719933376484418300825757406506928726327902787789373032679191341486519036193203652280266640580018900835908892319866583020200806024182543816766170267890904460972306675690889014133517692843854465982725884731102945688518245965911123024144295145440854463725017178672664149847343817594002090375224932364439894454319307202124581665104125586055069018180680690466562987400820319256982667393685880445874273021646980407803918663132279933104363022981119462450737446745735751414984599523637545372439877130902257794142262573664831035150928815132317918460356200835487325619102333245928815881944774732441261818478025833039149099305719899208347742978306207832398514196287648778188724656492336023067466657471235547597377669822461746362102665919619683239769957469457848403667071269747092356947259641399665873986518428670314226299903899972269432309906171384002513531200601696162742004650006305213877322556466913819018427197993013880952405149016445221909244966984749021112097137944639217084145093424366212074096877233717225570204677466941730555640544374495950001051033759934290095299429334475149374342658635237238623223024460622545338171287158561886871732331175361960934224622262858848940220671553961647333183554603198071999155392620196545769147903627898890038610107571650787200302695052568994944622245876965626476497465112311376137639448584534844546257639067239524343894311014101796753880429303915725757582641925546251472881910943498059473789935794877657566467192544139753687711125455537178698023543822845587046749638553832844974252685074073459181004007286145485252623644207900102689976390266343218058341021609104550611006591331134915572237867479489041520817764265887772125876667964837739334090761820995376686657956073250107494385129440000701222751178046244510678654167905425211165859653780161581640824807377158810874020316233711800217041348730670620555477355724443860523182415075135886474526006394496549773206770425585798069148732748387421053289008952432431400463202983799795552039617119522138024811438304987740847203410674487305858098020732086674850921452146084611394284018243450216099981745313603030253036084759205954249024245067654486697481021994907553598122403510772617078062384146065883339181464622295402956640124990135465505351264613070374516784692912171932238714824035978460441616614190611100701399870261036545821592447276769602387825348262624421492654498636750890312701456418448230236346773040237543378907392358409640100229497265991018112721016120157835489763253118172443784029571813385483288519913810568579596824544346931455181125032917812617293703058008036351988230965920500599277853927336154303444307455519913975514743770612287656959778660824167259179693195039746570229675737890116935332712911789134067442924610652538946635014179286593847894071756817481533331354671242242738461930065210837488736422779938244032741622098480549288965951674394299991900386627030199477633629327856702155204879038128566683952013327956127828627548270361690877682448678230855473367740837356405481475459813196350856401252477126186510078555377153304479354858570154040863734807797023504028000390617566479504098010521959156257246944925298025368303312740423622465043920555013652541723440440148043667633036478659781988780447297161300036527880839792435912672276523434375030587700269550387295746690492577331965288777277772046631775494144072040651392192699881236779185831041643739541597275831920321687788667689430033025955592076886589259127546855777833349419712522983948011684908913148557262937760450196837536926008868760825147236459973647274979104961119396517371552884571532396220551638377178998307850821720848329153607836714602023880069711280526515448119435541589322086929538624203088367985371162591223365372593260244768750855964757516455292544927978956712431480197949200238077990123408326831115005605977614569128603971774652163601484230637648144677527656562581054900004856698857881779207336160136775003507760393405758450632026912859296870643668223159611063489770949878290250647653898305776955571333082208572118707092605498219434204631588024511687195599769011647875212499004015700231632678714472309376059816895804457300936796231170937132779741145955020328816982355209383604541453379528268283572255559375430271931252081392520726293319555764412539990108172835533942656545210592136381117647428300074259453613797572497792777171411893818316113957018301584541334169890168021294976824200951365239546314402682084080086651263116693052449722118263270820844185031332706449331684858329805602807110830987500450387173910427059901643725434489637037168833562880743108650874844028962810183895403071317622593310324608079653033094264833824109490625479356179487833702957696162954794824628781111075141960995392035003189148635879541826483756048215140795011765019008433319750291403604436895909925279339441139438709521541197493020588197302940542617065453577802783364356194477092315368341824828687514057985648468004492973951485444244037541338933386169870332963214795560711127812801202805066970938464567171999351201326784099653369372325668003308390403352482015459322890757924782008412447407585403741606446958892092542078066351657330434600358470639715398092836408255202422100211829014115809795984771480982994574882627800834449244994783485648173911950280200235883927281802814897203626890648317019316575790073016095364158206803653105979489402040543051392866384926932324002668023057877896958696001721262195443006363375591179863256610783610965480330129719085194011214884832734973264701361487466445665152964670015758310009734294881231869567811903108456504642753401300981982155895631286650928494863220594282782548477160540493364108736980623746143025154461262543340039009778907791451809109763353926147045015338658553078935703926939949812828472531075174955956610622001722417264771653743724170227247430249612079608308463269551425470755923514826112872660845115834982818536750830354975723122467469903695368998766378214859707672155906717761286503117879922393872642055108563162526123786273432105771467596999867657638055651053894315612101715533835911336240460045972416904526112894351606896416223493085081902269859936724793836262811446502225640698081643095003014423557918043297449637887118104441260362684187022908745691090800585677983783257868891472747151705575033645084452034141533952745001919839441409186548350017099853033974936615445301063598877984082576998623215028186239992182991869787485106331722825707547409720206294196764531563098166934461418547004297228348606016808170620261833474028692424174485089990132013849188505538031543634522252456862377756133589771829856932801669823252040342759964175319796620586833116159018141500505672048459711177509558535505824423757096952306810037256215853354105565521615833102597468036119443687539327858346147423744629370185198415713269127479180833367429140097408845625718571219601181140320722366413326060601110003539220616390207077807896902297268811015189874080518171805660284682877750405617494056715114420791088138935034087528975120886577589206662451355501782726086574476514393631796385224332903750752065306692385960057639885927242376554717496703640602803708287029728223685640309270092354692400871172393027836983042104080105242905679275371090782862985488460541893067185080049411874398120496905260802977907850391695957866138395255177987717398423011129947139709644266720850911549166488521203828750438205854111045525709228364131363912874949225024927702266687193473965347291101705136906095140471606120022989490845318006018134284281761441670534101094096603442355073577184818022854459878475894412626881388026141840887314473488498970514413552923353442161709419082687735446176971077045626408134509319366710309000646736783150799544024564480667626825311213655235216358955543554679383603138219651198835663376615795437722137167234294781312963479391984608849658538254129950519950704589536185987644285302225190671791723398145314097552451904990074053149134507392372495112115661694141139901584888657362826783300913136928263604484872191390493776456491295240732160780413068138143976300032002800443899386384873653076092945622769489560776260862786170774762838737545150027844634487506047674178305435936896403164332715333200481803000171289344369308698945271152081878883154633892630821045819897195051277191542533729959532035077376595712486473846661483817723886329180794476118653487905800208027232197778339860211690994836664355625216218635312895738742891072038980744621448288089765346050965969384750140549220079671669257657816245995300463489368749043763768916373894790222703401139375298782611937039749843420978004002206386014513838709763175005217602841363019295870417089610129347842891033481993094239659601231994061142276047310652791179852078107611177042720032198475182931328078124408926327753527237046791381263788136148241893346536073598440321950354165248156605072656442194923264431185307275294031782292483977209608867002498267386411796817658939146559406061865357626518200206248868223783625371017995239511733482563573748837373302002114434176872689895054370522006375797108807069695243489910764345362821461160398828116473375913498094159687873421037490642345748701701207380487929006334950772555415282428856265648364123331903774413241189960985626708034730303745459250608851954732066252963413603310678803627651378276484988974819177748249744304115234037586219977423103913348550991204270922655573172184281661017686700463882565092059873552839175880767697090600076235499017986046390499075742364034841500977068623056842308787832544514208023412794638135215062931837269123359611280462728613381764171727312281296125851735267347654760028327938212205822802887036248149953055152297352738665368420219844016099761255731556153645405846288880534633621157587069164224676450828995330889362378634866292418228701368644922827446080032159731481304716270193886017973354728756537884062131538198004977875434166214286912907108457647161798450927077178323555323255343148573816881580846112272949564209477142882146936199659970573071714315208876279029305759235935093799155661684271833430545229013161513224296079137262095594501535536125231780818183514327996400014159853869261039458052583025236542689253106270862166530054238990813109098044284176889058295649570191132716875599219922398617768934412276104684610264304699668923817907266834554172731331959236171594622564963893992032158517901035781930947655296708635973286472659486072820693486261478110492631619967317605508801101924919257001636297141516982967104626595249330290059891459969622549305309294264797673512316720438777644760421598391449836091108737560441961301213726316558648821240286804258268643465843638117948190673358744756033464532375348249584476957193487431576090383485785082353038850550227804975160129353520882422657658203678018140085324851580881835619381235226858715873180047302860102378380015017427593394652939262556527807134967470630592073236034741296043795433120755821586712887609331084879648525677721297173108723827787987007493528114458476821805179428607440430153660283382631090530293012553284662339885667913342655963578057768909373228325652888789257792309857290743887612547492853166669735980562427251710480906395324559728473148466338943657431083230220972374749639480908534145967213425598518665505822787824050994599374713984736370228961101123161980622939747403067928585744142723762612740873397526673304652848223925069384668334438737296927912076996454971297072399550185826392661239166234445128405422795552433488495041381393924080840764973782425011477347970968405611952904823056036531424342641257998441822731088276662733581612199146741449465663827660025495709384190747737840170880164805961496487320780536301812663180924564153584190500956896915952992002712459086411480430143244713750812921234972837809075857696798312064250649586406793289767485481329924501770693543361261324758669281103730294371485781718387073737841603649953429606460610738946864722153631641917329681632956966451178670987902353664921628731827572205180440908674516094449627085091539509455306483044041857157432552703898331872967485108131281158504553776522246127432869899913803746395069624964909181626836766687610129667359561185057939385887776770693673189535537506102323104358007187655554372500425755950829305837912003044201599050711720261936003730447903522013184705958102815770733751343822914063323335386140060230464343000609777532731554491653131025006832067768289457110650533347822446801532600590581802462155001169495723546126647038035937197666125384099371406718657792741014819692736445295711306693960726387559409985517455315082710390404331725982209345175319615393369912819883250913367165373873834906411317212959186617885491613263762946206785589405188318930810005670785281350373513375384831155490281332932432251061783270521254291805217082854892485807285836473111507799152482543987034000236372913639491121829243277732227618372257638451791897923515953292933061623007223794789513313202210473163687139798304329665819941711753356931221454279127185903795116372775633700154929914130897742659366110372935908427215878851199890617270540044061534872000808039542354245781949852877262354819393487398528762296686420836921982868917916180185328889685091634530630472654765907494018153995040900985530344927550232613913084359038870684170956959777840295766264581858318611447246927876679656226897111722962449100759202545907718535249838253119458158320948157522488901119698948524154855644587428932916552463652966971530264043067261705392048980441536141297051794263652174414008423377073854468060741612103586667507518748391929222072813998429017441077118666356378323481947721666495068891439129131721044906421449816198058023155393502574529398648106466976641710523460381023547494911579151257414071100960740775015001741807277951586479033685273116005960737219668118134206501773196529094518474419781358344686882418514036166292700927177322788289618135022716732032956974891983042349164325611128187925310223976333490765953881299102841970025461500072195958631077449161524583346954698928397657100703981808809069283615039426922552195536934658768922951455311798020186942997611304488525687944233018217856749197999540521715904011272793849899714378309818047021369290493246049786545197010872462805215515013422601870572111251411713412699829346464421418793941912089071320548101989855254262066840648027988139304390527786549635312922078429032394467926156594550884846783926871911000350309448353142921265576358323104465382141848814936939384016911423076941432909748024893755028445900026944844333665136817272374790101608560331839039993940277777262103834481967353051020540932241441338085090552877693714142591276771471925199362996781900137067807568458377114549760196362664945804530959210560793751497109920402215534025330688979095151045392374902649713289383383081688947477441831179537876492899628820889094839722389255755351064312676329543432826339637058479863236628882834274032909735730330229964705604308215788340127110009941913965739017474416958775964785432204817443749870151164196325607783365636754881963245056810214063980738375604603729374578103925677830075034819111697848208750384386011033428605319293063539734501587626507249029233749437736113269544770593045172281582519726765947759313641203588658451798012739480453636084299279230168451325764712896112393691798118317559561378073619314876831959629424152928487380380036508399006348053777639551195778839552278432775561405447513235583571053173844833190437156797312301500154773944455960515468693913068832953927607978053837292793273424098494332325241387383666913362829711692567376710956084580183447125368785541349380963842277678236224000673560019317062117740390067611666464068394074477663662685013683738353757442925430869792961446257337991496984752520852597490758456092870337878732735690094928365514050900802125796849050625504110499842674086189138361579407626606296534296923957685631646303444976692950833405478815402523220376940667043634570133498424553781668814417170277173845464825908988639213444702695557483275934335596887710877185699349959858080311214826375335390197464162554032216830781137321097812545743830991634965493220245452779902511573381402574607373436125853177429083337453994691903827848468255101742218898813453588456377566552361887283685113358301267210183435971279714524120780865503613163866369555405181832810410683982768703000601700412024041524000510894230390366999670958630406211575022690655182965933842688248051901042837463212902871799721284984772172187823446670178045281142211709468477208952810843027752417787030484454865252163215712691861625378484722469133101078453109453653797909299807075691611003417759020875600867017108870625695709734303018532920786845804219364956887418186601454970068103351650223405070308322253254983402473591305764028643686475495409544244498492196295206447110877493010522506404029720955861847555180766492768112868150285116465829419020709560289764292409390065080202875052551751398286188584659432629752761875895214513147115023895537675978319622190142403327040294165469032531309111599090799056983152688809461290209363691966645924580296765268959394488007716917669976882785523360696703499053911023297521546378498219716281616432957435074596484756248442218105935142909578890507456836142308598354288322024050438473787920513725346580708007225074714694010063357889738012104169627096941912052813585011267273573581168244889495679692923132390476275823719287694524616883616644658817701972853240355082870245647678771414671415697644812340244119680998709410674294465513358607428090677960462298513889603186202175132454811225807318246427976493100682998512586530752352993985630476112827613997241203967974611024388070846919215256637690404748773706563358106305490919224355045578951201626900638203198829995762014951247933458930699003206954649009972409300423729278445738054970551491222026641693189197155712452026620904671460669142514443973108009454416338473273309266309295598070550079730630960407282981959530682568235109861065813849837720070548035478606666651429245987393899642547529890414852271789170139061486324031018426754608194031799567803857800003022856098682260409896343695918728897390009068983790325783844249691622018187363055568791621989466580668845113881608799860616331901503008431827868414592019136656745519844439147296688359719502311808159038619745961220085082882207988954885456022205446261744939476803743958572396884655474771096125192954063296879194458010894511405567825971111888683201965161881243743972018308787253307425830805806292590778403806807835592649339589474340732374170532012455588684286410728281798899647486026540126990009190937333649008043006328772553917832332707483610321508729721581022033999504928469814530206439927073064806292028869991013443493042053113320988317058652963391842238646451401936606471826642712821837745472884711215794070616888714445510771427252563155154965056116065015237185614589047495945311911132251587966183454878872796632572156095967641369329713895834266497907716466796899077829401062738769896994665216598991515064433547236574983546408019091713449191870818880476671380904685327178372828269739389723720077796705163073267485453400945931889521880486109055828604425319991082189371261134171533907161750383113474997753251178081045187375713234073352647632832854990759414236540031852714717885550497997739604593405915551687723702805981376634568951104395957260838821673850726801550174419781149033953840933858770629179778660046480389867816143797164745257409801517015840336839707441243560212993820922285527879281856061967081835316917843578714572309137898645561913985727556584982612389340834845050731146197635027871665584407975377332736001605008250088564076933718306976738933020108433895009781000585254226828578281706230433542650169883753742883020142901781227385491158105715761885573065104150875131096894976562354695777108327218949803725351639094026998276482504436929092434267302164896113095522899660755485014574416314541390848880918404036734132941690805202484836595151858663945449372570170805338884420241565946860948766496375800569069848977484912270172943686482014832106227685612502289115066126175900706039634460027798620726899256631936198210646090690671201254630592203172689200948180534220884942292966466282577443995677840167222019225908892391987927083759893977443191256258893166296612894283088324686580899487012668449839228165928205580481155953084858822803560363456876894413302420589208040948712087466586484899572114666369529197465832587903921402374291263153616533912280470522889374452941653454758859250892850942309540384611236092657819001249190826483446400828811625574726235856701187950327068534133981981043069963398999342817109283553870783621340324051721273040146966659443663982390916929313714900180084863640437750504203950202882289996146048419995340611911891390834841673771997476252293772964548210340480635564714086856875190956302586759209398591764202055328498675360474673075341555257684064860670712509461324762844619759168693273773485908147217102471831068915720569379658139987340085636121565943132081829920773611700388768932217029296465912069398934434353702661491103406102561699236211390661493092557643152181959846233875617132517331356970750984594863952797842756529890740768355058071234760665903686815426682766936466264953589345626095828369650720251424288245951337499866849714593410897854604413123564750120415695969457883664894504536483368575609344947431180756524132912546429560130673142156741676335916256399663123694692855524393831548580996690547707138413511774784363115930025283320015376452456195445036013257790051046522990603555385952710240282590957859115933522096639776146696712398528555309356724553835587939899479659484882622956799694902201671868182219405933229353523707687501499391728385296031667051253532720286736630870495036082851488174641056843051205080537133096573021431400881178516645911550149407915319303730590548178956038186422521119216340157680818906082863861898788926638613106622915222494758290802779150683625012657612171496810408509179541542880497331099336467327901871580170929744313894839450955023498060481273214425299201141537122415531208292839074768523106666692723217522325602377344090142292189687598140381699972312157153907582602875014438055942001353190517353746111762123013003597150081774046986802246568085870420082738230788393491941527244459748712296200212454743357920664676901446139449609473081045373936938194903010464292815996996822730244372910614819081142064591230244727316088403078593172068868127730177219102580356867380034810104759482695775488220847134126579735870051892734736131569036004870858066278446001082243749059228151606236906773664930093330957301091344885361972355234955481232690525974954185327482288013631254857828678496887703398646442366677320890652710619039014692276656891579563379846181442942017295679094835646788052834957977446977823836861553648211652358553005452875788555279125762308563569450580322667730487360254932162911591914255020767802595060336990319482201784023170222072174108555172685001084366361577704861346798671745341833904328055686242255026725620073510637126262295753516449284393733996234828826173602066513262543929561931230716644050214518623527006875418534089885708857345684142581836369788879966497527901940977380444462878563730909783343358696414370111963664403205260804697770547582328818741872753729593919741328220691831998360852246797155161097655341531770233945148975122290866313192714786885560023804540789785009949441194913692241689710418946959180240004088928226129672361754113951448849389461177473815014953865286670490083137742236913715370904871339012081802818246488752428725235062429424821420866884256267503992363898890496641849492822626057149564853403216629158248452467383886509490585538862560430116223298623158133767987496802876788898383551114113971366918234624363028939429128023850807083129910114820119102893115295319989204200527148166645797970331533705807920935443875217936388133768860423508040350132148739096734353275916015613543352182751907330263964759499415900105425088268990605076755128763048512170702575125429672117563119222711518152118261074780716430284834707060470195297992447923055542081687291281048534681089317226208871733257703488109961255481463335924467023275791505425331809097725833860750408670105093104735283781885747437058386695576242236379762245484581125039947527614156275996855790259413537314714282149349033570443764164927186155191237172176247827880606803047312637699807108739093524528349384719592593938639871388465012101979444938769323575572603684152268167205217772963912734841073787056353716399471085776295809984983322787376065911504308547733299298133950903834363448140733449773721800273566252667091769265864294396900555651732792847780889188225344810360035370236529113462771330881238585609732512198349960147547885355847713623894399202903491616933732766187459186988064493873085071578656148749481255697647360135026338429999193349732861518194814819111055096592777304775761933310902214980229565233182515870968422704115995505380853231028050302319737250874831684919932368863643233058576961647058860167175678068617030777731547089725178310556679733289513405738546759540981831645508801738724923684488402972463701459638637118321847566775640727494982366689759514533770798359264330057709000214516763539602208898502621117513458916400122194908594594819064971171279750375348699251343121372438699848205120266386910971572448631364803145078882775293104481050163333490950878521950975690286954651650137666284115358472059869469647904504836367905816836938915138275424812931970085994533870684219851429482640717606559483802960063126098788047648850496513092760321873678101684516953360445781430087207007583916685140242068919344856119639150322834738262346946522486259334242654841057609058048262535779584214860082515897445327246923217734274443378212966182442307681070042858863234023686913314887071419052950430073030181728121429850215264921262871082063792849465779970427324240387796125055760196812346059456523231267315645192916078801254437758779823711044363745485545147762690166428314330976543822621516368830456061869425098615720028358805195677979497646391070208085510228769949887859407704956320474104992132054567066389293628630387227741432474238617991359007981723778825309500509412385228689159421119730962291260256972751439801275603940629668878945787474163798740815422596755268876023046570662474867018707442064499264527922983610335301222707231376677563373348160005910789868488464819140841829581393555321189991736684483185286774634117082589803680959464804299633483772271472668742589064630079811607276373947339696179982905298350159963394626930615716454806438884761970389204122483067436259715065097261589802969796355396130706093947781716585917480803728355232920771737059310887749583266169432297414861952097949626520317124626294094247495506373166606408164058316312486845212424409903964813991703513157640102035230658044359921098981742839869728564338457659843267374507100127583159576691832384436474392628470555394060781807177961289544601847107241971794905678720826572544142814899788358702546614360362049944869951327200017717971883367829531759740120819551967706521382925816658816614902639142129275702476444972042143329813220320049893809494754296086760258278072226828633776049729702881174229472410878518025045976918949586559323719092252678627990900311918440240134405326671955749085787984780140679692689335485143942926526010043618927388569601807785049407430001113749237335017490438570356808968687540578635554035581870120486590969771651546483994141585408509475126610409138040942579601499765363553591924522279684892576621449676215011901376530320235775180861526479316540553704820819646268601158940900779806149307559466809137172788104350210529586892765728182756435115641610454689769500155877302546063123221881261102658258834121404070656130891636355896095641629980083820568856380932857207849011770286542230173344935552471717241841091573236907972863611682428069024667727231539768317614129220262080566133859561421306531384718217058729291858925537838939350477186951712759097732672107461082479666131917322678812381171772198940940524270045497571578794853054729149635806653892116074523877537930252502671589423054750550902178694106264615929339202766678006513572823950231549198304440795968129419074499952498006742443919306667098208852237610293517936325355380266538958294719802752846494098143789889314280565275496731539167959167162693160736046041391282845628783594280534954335013836038300888691857931365417137969013086544878533285881517402934459528025596376292918584318193385428523957896890022011477611271422977520126820622255039997209143659880196316948089623834778104180512882996581525235291625472751351447419170789821780111739809816771835991495571563641155703255084317860659961466164581318499285453722865913254733008848623459686172674542918516035357343571294832769333848578978027770319504186717873465199764782379964690769568143665613520289122681873336817224902662675023658678897028180419702568159828666357490781112498620940433860921847791420225498551953608414842455983512949250087293580372550304919853779249410114580988360841142265316529006436205446094334442206474935473995183471892008265502795054023120135530131142860707317645378438244499561791608788000944149223962017580209883770701417336785077493606658067260501776952527996547241371637113237510187571894526924684483862897186874945766980479257210979127783348183515595045028269701546476571052065934319117735175941615977596471479489805986092997929553022396454496771201258872512741804953300442210251647432816552138749260683267636773243916219527012734477099050427171685748235834568224809081844659742471071170197654488403924673105655501458192595125078217157670139476903925021770279914425356247371180566180552686173295705284161288304041342111648516365628869257987467970057136108057687014839920974047354786282512658995196179478672415973199943068539117888288091272914127400587567897342333959905968464391666364228756673057433703870741744560911974635082835843981972021927652640481375237330660953147357555956551137677484394916032208970445733894509574249609685406991676593659681594601539100782496309447270392600499802445597504043639813858560167629477096205567811459692862858513992932057462514095586293361052627115737055754649904692132775691978108580088078996087362818350571434740332767368786161110364034934108318404030516310928922033477739425826811739720048939518192451744660346231416902734625040438796854702758995232275426883147145141028570012321226835075913047398106812712846401244615285914459474683387956948088305762069605129886216132895232227977911918204285802593737987612184267506334241312611552150195778497845078728029520930487845509918036060707991885096625490551906448893254770865177706609940026674455413972179054720270937763887505113533064442028012718833863263610063354035554119098721368141499552041255855544804951966728555778645881666122098812187818071239503144461626670722217710680270582971288759848394558871751886585390384999949569446156560214841517423077720032738614610711081523729341657696566688686215615029567232136099353156230122554469935290993331827955495217188003075710167195839585577233821379280286138889029234100284373271590379498127810146751505256617778794529336168936953846147575508415087227346331183210572476427382667935167417343712156535864983077069635665448321899715020094933281125368190815886265448436340263861994201323249697095528999917271763929454171503562961100884792959119139016325458509081846168265822158374885109006292513835265096963882163544366085194249477648142143530730605283780344250919148087786497058873516334825623288668551997572795572439373659478073971835027002603714192375806701774650252609431565672422927761898416792497168842337700704828822708653046291802666434269402971552599728722894929058132870911256909229683761732035491043779178743467362175084687662462008142821366532554944386887373103040032311871025501576347762380720809799925432405466425086330598967666050958076888564564343109657787204207510849667107341333802541221967211113995221585896188929619760118439255382999094805271117109434033747190985747203435250837960545109898352865669989614975227134621349520050560714468308086243044809316645111415946696277126803541430964108491701009332397514499332727836967061192487939629353478040300153546826385264286762134051042450042203873063573915152881824570444498234712069199506910409817877521486810676340900345343878422087200807851213196725492179027582703042408619531159568739987770105530922021131261661907317719270538129198276866102731814214102663012807543398534187834199757199615998826112464248439279155055861334424653745584679783859628108125740037114403355221989879700401264866942251713914634189983807050567004781375111520917726166078268294837893261102741183333903821920270402128136535207114243483766925325497403688510302194019865365062616176339980877174686323492153241194859784254382402406019702230411026674731671425753185937151479250316752688084685360352091852801567527236721424416104155189601631254611265421184124455201619167692383972508032305644586402608568209087261339241647457864908051766281720161003315856537095280943626153162173942636834029454279397599794805911161228983657252788721668589371770113569675649105490647026028436667147946887559538547965033315644183293068141088631496037733422702010248243730802073188218113640113359044579213283607413772447653211519979480147614723461387282855320226372005295015600498365677782943895371052376421409785925234617245560773205513776326091657588709200883672520081356598778308131486713478428830670045912840077852529674394930088601120160471382531852349647029237663018778471202228722779375558501486827945168023712883366597681401071822879674074993015741329603701467913669041482207973488679303734505409069177234376356002049566367524748473306697354445007682903615383503289878271393396786685605930207260400027758668635994561799353672944678567098024015228784798474741161836578667956022327548769128317095037882813818761575263464308464951145408795975044004881099235165204870689651202119664187970875752253136278998799275463674688274114783133210618253995488608614751664156177533590458154293817967003549345317453525336047920144437163760683746134161524613429212591608724435459772031466607093348620732415515225289319816080123256482045350320004606165760964027006633475695640068158520730237624218855592783404161993822437829767657506339782382378475518955974043422353649795507807794012044228585066060449587752080547011034162028722594093555865838333313538033606535070628607270235878836756648492502640586621129261888317006758371175307767261404470603713633287674362010429312952130958377489029340057899898427576933733290652071212382639142903742782857471519018950866187706164817466534215784140056152228880031221142546067607174959090369500692766482263082093214593726238475113659495503670622685150535661918045695021621795268023063714491551353183238301952988469288984543853791376588928332172051294420035209416693871731491525889038622121028649380454370765514751359816435820889036557215169297973160656404399378204800722271886507245051138913667773238014212715357734505280402949563410048641448724296988109079294434419734310888157683074572591702317438748333112627038253985368029237601600330987982709881591427968337352520980453426151503307736486237752220112426246906257976192779719116549230037126029789407323038099073105657022199098615276518201987909974177925730925455524969891994945902712262763749385104001725710179992003964517904837837402144138943166426810536565009099350225593504786062457572260025524119186709119148940124188258105520046280718205668696903137503810636982598670776518390221348707074180430229358299460256525911736460384772560898137973943115012535434274288577860086746172656020350237719345620509681603967877100279123181774183026837916955613598229129032461585404382384805719532543833967579381405762631422654235175442314788462625206341703131844631696544607093604487419000316037090623806671300342885917246298734178959730016402208418344721240382520030812880880457481557826456200773219678198269878471017329082211181608064167273212903176379301894385740160377053705256205430171010882119286430013917306096254830977161610798747583273128289892427010575910052969784972911144893411807363055204905648547430138280379361457320825883170664602560534507058407786910348039819952841871904102571332868650409032312402923828903031544970731579344656569666830918956830118452628684537944267732310197170631551224028733535425219879359665414540686998395955388746976376230245741803880845335586539881529223296466113511067983598702749413169102481663350832801032870802526575805404440544630577698203307280171322720704556041943697313251284781908803043583232822852550495041603520455567175231489929280642536062692258001294551006407899597925641828068842568946870241478610107261127498038824397271805846467775504755372201481089551640411275667269021634586063191584763808580257950846181086872581305975095790110417879944396949487175181816468005331168112672418511022897659894608267940507830024327750002301183131372076387022626667189450022201290450160831919732923808517367612508503994655412761021353812905669209053871317737835409933292856073134651052743640961625638847101172535277549713740931749832108817136765254596092946630157911565756745955696221357606147420386829847220030200866373506081200545816475161019875913223309385547375364718805365652808283686118889187782033732661812541436534663642813848668919827936538669836717063087073060462546044388418233474853950228203513486509377783999788666925709896791284251749794842341788808997031181083067005755177165443143943126052258542950964546432924242175693025071270502129538614710522970558810571688617052922024431053130507902597316874438627247767922498104509056978809977484392265091514093815231921116064715314864892182027936537899011986062213674078467930188157120467552193655569899489196128376771649696026983848663927637133116464892669733531642462143524220957457378235555867303359617821631564396927359600251817211026759489895355264107483288506190471113137036945680666054579323788517580105480226923060750727429367108018372887328799749356279169741993707638121014225709207893970963071253406521479205214037706503164675690440867763320151303037657610965911919894161127975541144733076787743914540643898612628820303186328620650658338873181054652601107894605297559162371844828430641549577005532718057660205870121138461909575179207683364784386043994891066889584847338593283082534245320582113515700552049822006226748744169149730352392646733051628083667004598661923512245549670485344479651170193943261094092314816862570484160758848610986346080478108798920955756222771037903225826055630019493175928955176972472847882712036235339711137955043366922249553061263048554642257064161716695922806347765917686920308388710991142282301223978766885051898766401684414396402267024652480558587234992213447583813852797306178173620313074324448490238826850486810962448787433695354387063732439722125849726086279356506265119930929335384762581299646712067485264078581061064438744533859199445940692777091914978230660019155537961632292266460396521109886543344542419549716097025620324282152412664070608066017980484136621897256200953493527395263059565327578264350404335182776310003774087258961125518756075480781081182739410535783857830438026196647314163052722712010256390251098836216462484893699151164188744503507674075322807416946897529729308775547728598330134385128522776975361307702019517806899147684438927236229284986537702528564737681778420428513434786373664878508506626478679162395895716247056931123161336843111203048723083178801244340613760256039682038541137330146065713915452954801837737086381563173431791648749200706443576211269623602373784247891519294102075589866246151400204649005123553647634322020850640350060489946348916120755141904425462439264776928343731187160968583784650034508485933407235664361609881201907159235676987297084742103003869460283788664202238691684130265642995201687262587776926681444134602154655084271425483706100295698682206097457598662082461060330235219073605483081716475430810959749751858026713402462702497792032684900585309354893748092365814763006084075341784490849764091115460243698669340424761516666168564494230249279296363761421207377192035604532309392496623548384511919677296963917543869652031436200914593070252847771377198999731551289880844986381393125633186959359991404410617070135869639552879950322299399683564284945006726557001150349375373469410832507157820348167927873405782506316635424155706252044153437526189579312016207742852104578368440255447885954972788295711316680353050325728949645029791567919640710719639692081206009901153863827453697653795271000073644966532605488840536597913174515867928120872447945738831406853474559710909912843680806784307582019986100414611580955357520023784152128935859424049524338705077385881262061106676061220520125537776249154522214479183854139483407176953049315183905440813798559059099929217545044769288355563978496741208090370958841341839962451778971357384816949127444598852972391448758531922810829989571990139054953413295036072839273770408170099005967553910731428267029898130132687213240177107850195942932398500104479322578332344305096504862015213603069214142715789816607637132344539193042046473086708784476364764813175536849423243897975476622840746750736073560143463193740240513565447668639142922737255367928397748550484611031621438323899840689178644087588075180469832013146337786761631921773679696153855049449306044913702856931590101844310225973856206277735187723444511838250231782525439356242805285534924856928134537444106381310004889603574470743824699024020786957964272147722717913722845612176253545372330840444797635820001552825752501001871298202521361088221874909220674038876453792672376425752339439566983941783735906571877515312780188159571814450711161675378302476139310111475514936847352397372427198851744316684162737988805234505969225726624402645412883179636168391417645375454857288696572150724968157065423230413529196540947205275702982756419027476421948144580027178166738249420998299510351046779043890488435193922293609475219423067619108960278563717583543913332195754403810404008338096264300968170686012346796325395802310129690833247395881706900123701647199169488535969927907494561957479675145890734505154820136511933686077451874713798912433566414073859756960395294454617642800602874090618821015207686104019372164559467675165884648075364970623181717309620456665041463271237075557569348125565486601752181095714065288711220771752289304651298808931657738623989522056519699977453049728786313685110773584503218399091267729607382762284252928413612106344997563712394252393942283609459593460652450776300875571609769660248827430531432085319485474365610846788444599522190049106034102129748683760210605055479965714449096697828430479259952567194323920333914652332078010769833658518258038375484551174714400637863675709721855273155831502607241906330721131511742897274846229657188067941426686105995497722643372918021192438315895554631416679336023411862788318265695049245896559421427933374031566590116959269282628270471118748157120727589216664742434949414956883040537100524615181919189109510697152773151979968381491322438532944673335224985599109866523184788511379815308353553083762808780185623694029256810316465389812869804824788579773329307199906710038431992707822228538205150360144823783998685226312677698442813624764713404373629376934872829717600637143896581825571093702288268584106493039386015395519447802658446106843100897182716771844420742676383194121828410171751127742567521509297358839533762896811860286257930718955796676155735590995884477589977058796658471854592364900129853166168348040247862074793583327033563593261691337229988713157854516467954316287474063762672639330515627736738555007958733172090446332172929765356551106204799471177710729922529445189948279353947674570141337568776195061580439947357622604861993278128644290550987921765354756643153865387984197528262798861713789311417301225160233459769944251709773670842623287256683710865471076901293737526808129167291861890801967270973934788171323726130112597332096693157586788153950278219691798319847883684343648811737675677544648413235494709673960811218636231505048292885623952303378751500493351810072184365282897560954373214406991108023300982775640042183711757646581320397681728962885427748584463525628193295051829468465700260860691145667284698964333430145056547739924737727869042628692852644560343381733800654760721660050477760804628244188875703168240316152029382814409284133870051592824383355362241211190126064383195446955664156889178539228501130366176389031035354365460371987970018461110897464504323709810592092630848208348136792339440604047432850618443321109056705899944090024456052717932955191415824041069013191398656467529605096154824155413676094254480261700543499391641596101409203145979056792426188961641030414520056592797672899597676970156035143471488142936116056629629393071587148882448175011003441113581932528474709355709822263028140353345380448267790569170953772977853844947488243941104198010224958658971303705438264037341202769169507888558523212208754173902337841312363719487619982780617961764587805833701805783608810236244883553113561938118612251664992459883269701104131516251290407744604169810692316900705469413483727177698092626141795747835715358676212876528658579500081369598355336694532085535919826461556805728268570162992866954544612094123795862283308776497790268598214308704515609606868839454354435226882736223110899067026498288727078371787480595977254097152171588320884894968152889423336489519585760245026282194500738695141151548747810995528360006320609622461714733396942544300678007837666287960334148022215133744889087083410661521774789718026433247258349891787080702190392350115305972082212159063079895044588159394004300956530654139711769156164053037761704794898764281761513958078177306927905982762223746924704589791571709847144538738044744893317581681015275995712267008668261090578402016335657597511468425384421987266630101967717694042281983324189374589648365312046439554896745968749874133111624380049879178070789018481536839989373900572700834091708239374612970966695457931375174090892525009266523089267198653306566329294140629144293299149602630009219386745072239811286417541472582418167191041030854121894327562477038922746958263005321726144312626176453407913820157844590031731637841657058222418112450680778079987522414088011659464889615247531237404172875466927719340863178315734809177513642800637738434470991009934046366385801308686282002245527068193228916423405275713523791291274983006173162100491197152273625195348970043864173852596750728509600640520028567090028969419071182102087479448321205092119447770972951272567088251109807511775847251169056415708921625408489593127137229004650997922785327984021586648643797300924163823209260087963479694458299858099518541898749028972895586716681560749689209464495714245421726373091473719220762994788070028366622016974410925653253981404595042378759716406386953466869247666624040777338493209125425356527078436308874189472289531987375446668393210617001980177801745132435391417058947329961856727455539154387181166545096286236260594629102332207441209813868188595019345994019960012078811933758017529913024158274101258896233156993626702838487245825033846340498699170625347764853309684533201851739036605876227477145555098633125944198938857308436516721519215644210346795554042249032287523524014155623013070374684855706612952433923414020345055901887873419928809921572089037020146791648374872375564913748079687104738861741741194109652654107372334387573192804270825725304943817892435605750107877796004083525898069816138628072425659791402355078616629498838558001705602616061011800974478056707453471297779663098615191627263255745853076498262725466222452551647234753293883440737128858472528990305460166717155837200733220808096065574977921130162134622655483002346504339463536252535581891195081364681428445047111967411888642299719501323184348930557380722506047986444256662655517074651848533658210515662503134774293003571538655832711931049300404201362281232210557598869567128366332759623228451457835636251848066359038983354078044767425311767645353136291976779962366252125418686010681657035778805815510339634339256402214170108805403849309624174587800621273019775111666219077944831487417950876518342945596635372697774185700416595719249047017299099239694207855632490215453865892105780709281349503877651247499844777073227515585364890201680603672718730301746080475698467320205537834927058237878079480237120322203048190108838273407128237475905652153816916056820210629450055092472964778732692242275084594779008809569091288137039655624774607782736359242360105068442364304088155941560540579659826719879106170403095081554322897816423439143350881909594807224832907974550337419816550627781550005531901909181554069364689061376604124480462579593165661540490349103917444368660401319249586510141873083940850202144655562516204026956473877785236295899089014316660847952389770470733704123008157696929529222633986996087801983691188795445984691205031991127138015338157222818882330063688908784518004926797118567899816520150132271924854014840783479763113603880029653426262768858479152398015476888874449621530728571029043615831911121929211913018971085643660854333632542403266160309128210983867721143148709954141617594773245270613724593976386612430239172341342994042169535035546090008643508716967109248779747065568768381606984115905212432887347145308690443461013493988829905653183720026030488663024256459846467134490851340924888351396900262873669261349546555757923613655062821551531852741856408971798831310788568320514457645432705281305500182162579071015518583510427106816991761434614164437062715014368422648826016441760843047763702801378328061800770667490992876687729677490462481900509250421515239815404474842008060821937399039339360231685582310923125025144644391491782320592635538023641156270625160778182983099648592850377976890893062882451267202775246093240401057178779191245931011992253400857690669293753372990420799586737965740709622055433970273934239676011422647152941197280130821648769880282622276653731008974020057690546128842387566520176079655422305306138818520519339519890415798462191562149670110012293310044551356834877433213471751117715913104454140986012557881502450504402750169297256532786912687205261669824138709421124208801243146403553566689802821717448487380004360720847501283835407761639275735064248582164690335718975305134885797372334414903283062354946454528306185475406244066859721723350260743573088944133049489835754937587432796661851017469031448379358131927830420303826893439305650837683776971666351161870948580135865218927331974334575092792331375757794867010354202604635520681373470668270041129437437729922086302051350784159767552170719371104962210027602612172883357447173900415690909735819833317587834467739018392520046583261810365635102333734027134318844077191089079032975570884557924520573258670215769206228471009853948479610303044240661523439828460973766260888183174876932404299607694423054215518040376174372662124106241026466149598506560137371969513337560610616407952911496903988497203338259781495788417105952672617907970654243122599337564443290298959192959262179337923455374228536875984043648702509100279295375310855739805908157756653681084385981068414537822187876936610565345375390849024837162863207777634298386115054510077252801240363230923949714650590377794651865807195968919389184180272791267516943263668543704157105897820206219754399514639289073996311297042612857656692929382059141506223394383859176042340496364498310657036059176475109643497809248606322963870590858753299717994143431580440883846375464664666411404768434058639092952048327307734392544623230382749996694853337618958118343072087060912863451472283526110411407760658385827893165840628114276880971657423322440518111995121953326199683730147286964243057594391153614450919212178531012358779790987797128981701327974212113601303324479613901546636935338352939076420172012000568470928343676410434070767734322401976873224841186116019319318103806417297256493357124311845331805679938082974359400248062319378682461782422928194832519158863604492622318193164918075366308208775748449839408372055184795518143742992556852427303049443694414889540191483723159343200407126722673495535757085791009442570856363790752230595942921881311404392673241352595651787210998043137298309784934115655740264415943623201135673927665906735927203579061568933754473035168777790682309190010710885747008888583833375636549707558702528586111878162556806484214942186323271602059182201011914553509284870548668091754705371967212206501019313117508011115746315575432836554740850979374726666272961143268063080162683973379011585381930621090515717950407453891930179335525997723116005739487939523270430739629558899552846549423793584954825198029373584342099046166587353409223410044259269319127157802597778791821268483149545479022828596421003942616499543355267797568742534853893078275610071192531063536962057772985321898023359784035078564416130044176360666065556663698600123000063401200730862140154588969004784231816026472621923025457639425117917851142515622058120416219588378573153194303416442596139434113134017513300342157419445153573432884557013495736101832477097278235960180968468201607411993745086603523841483210765306506560822457261416317190026035485598709082339575733535570044156181754688180793881344969096549206754771626876675550956009292772241813957148894562440194213418709224272201959176645225378522014736146629005170811128870552392156373438688761316361101935274276172743455920696596879451827232562110766463183853126763732574981318535610315099518043493318160995077105303011527526611939530608340087402910566780139429839861966109091082706219108889496027389163388413236753726979253500300343975121558613436938461078906869172397625045326373080616938455477209646547278050883543565535851084856079313120965664220444973703253344038806145782546018254054320754871025347750061457878394607067935837347088699417006008277554594669459390002376063514814018234170845174231208828857039794630325701981704229043280510042066508062836244251180148186034648006101045112826066539352788471086947614602454352771642973445868339876536126860108939287603216542987329111261975902083320157612960931771559139534803790576226445333305470225549731542441629497833303453835255071881676318115206494254025000057116577607378219698903614792662609875081697971108900708006862130585204081664770901947629197288918242370950868814541936780224440455186253009387484242749141394820981435539278287930399797414940716408299077115938711783009465914470891654643551438892643673833089068525498693402002692978428258188716928303035621499571395008837867843796974994943947400803221186193878315838784743271856847990225561442932616492909885902975572138522784763755419855591771750694734199489543604395401735358166302762559644337536151102681290039412510005420626776437349623169838220348834052588771337623914447114129960795436315056869274617402786661151439933240337846311031795339870734606791800153047198294876695470560886485485277803246976703700498546775000066911137999723442895347768561471092384254666052805088750058840835146669460760764249567029850194343532216445754438717721740382167600389924736093056716854738232826040143799413691112288269596212446004278686828543005512708007552867234704564093771726678174563942493565272635626360785308804498223428744601101314425386410232624580682508644530002219182699718595093451676025722980132646179534681220331595076976011988625323005915813819314755886741598817737982541264037530685475726604052616063223730625287162148731408999660701033269067275574712495913217606528429551083813204177110495061313288657602686151953324883768604384398932051360156126033440103906890126202618128574526682878417642725088153671988473592569831529905361748141012255252710807642345557963712920099381185967289329818813613623935078882256219702600395858576975177090847862899964354839650802011343282202740818167288629966124021154632279712569428272232198536849470476678895128885517736724364141399498975181649895996185904629560305577368567450648736084031925171883232092081348455408344024187978624752156266775179813415142438580407739229712091469776727977702200227621511567016682805816896433351783296012391496522363310879336130875922874489095784167147035425748555476833965997188081978141655700350636976780050222973112704034560632631690277801822302044364823173014684200545603426620004451646615660726537419096313603921082083684412533063761466922001061248434803534045202765967373324652960588087290535320364603426038614549903350848154888684295830737235556262379983469296384809319789558322847042917426262142789371923992151557250384336828702955780158408887549777375138817180035552162316555868437505383192807509773957193626838855297485994391319603262698153226124192844048109370255654607474439977534942629463716435834302465867056330126886074287788412457239354350327930852692094699951429347361250371445260518886237543040302830676495229884127494931538351676033295570217875693265528485738443141742235944207875067539166637339117468763306029278761806591263136036172877465658252544111924827482797954395018862837611141999932364184877411846292697412947311808216822946834093324572238759240878606806940251621786236510033450736705870277280585398031042112715406624374908084861905355930265957934520943288888764783651845030532820438414710766070130393220136762389238533912995634298546657040100364300603498115924272813470797856168402109994263363189195816674350028190710927811169881742307117003428082759527894909196823045347068143513724649518955074033251921057532324428282584067513946558962975929357802592948180747303272343932550002525576006373375259503369011509554422934484206712458270277405334507490024713773262679719142801397356467729024439478507499213689460587591234876840833817201172657473326811382705070155883737814379501033490020119229635184571493346703954997581395273536533745076621424338615106117698110962298028913104103720282776218114576044918385774906423272965082120880551893947211533753104840796429208306398719844042367002614119975864702095714924459922651894387663609435324882163361270740687190010077225319291819118641213426816225225436980999857057301797168356855973216596143343061650906601084179494241986285748241273773895990849451641134468352499358448137369553156560965756470185565945277968119738815055903215355447130395918404160628462502215465001349638174933800403852800754236118333338585502052998990417167860320326395293395197888683075076128674619128781325745436805645267562316838894597715654687049602514114108095116877039794153821523378485125244689924556566141214582650691425904665396216279898622930586047710693830973171871800800975116034617870473992428853473645507573514002419234387338884284068201898023206493775434139034859924564340389973420903218264865849612881350622948003527892309929534257807699175418946830108629428144066611297939860962052142917341868906227629544426011901878286948434059048134484220610974903250412742722649023667364033738834543514134775478069272913340412139561505239557362251712354045574851723671698852085114370887642296890237716131841734288491392020046172746931260086439272539462886375231677522814866307085352151606602718446341980571475256698632011146914534658627145273453921084625878576583742190722263232043463128759345299414257857192182503716473408656373042551620237011454081849754425134479729139375492470643957081434722886882059383640455505784130601490057999404993872715082563428560917455551726539375925904417175134385440740712907742286888172681600245662966657274453846706243236661175481583828125749493541156630295257700874115001117759732022552824927298771728424853531922905249596744798760488497287929476056877514735239760034904722017036011553568947055296777308785287694936625161768503704948882550593333983807960787030317110435034785093875798918015172569188719817318199495279963275015385282236628367300513112524239704360061250176410085360537444409897022769580550542137803307756647202343673571899233609255916402822708946894056496738651463727497426763437466336277919024152861564964317994869770759659163637964909524605382814040246582405883139912474734368293628521453350098247477162525597403388862639382938159561605347067308520649894502919743638864234787396801247537119794411699706418282384993988253634935708077263765594014077459371992503963258554836001593369646288438941195568838203600438522419079569130284056437822213874893490804968927379726661807355594279627245016875834617620918595474209450302716702142220622246690600424576827670410826076287767692517825707224268342169881633836711827804761715608030689069358759407014065355346284910411251333696351014228841444106507743996310589536527982311799678096830714959265640514110929762018504988589460602807607268361534132122884525003321176559227959195216727837969835576515287608036263939199489706890792843438867910193822673573119788463810535016091905600741979831850386922101049961893635204727201755192216203113271747803346554903223937591112737674909010266721185432532108304569888188085867411676607921720328161026922224152740219519905525182910374908472242415844836867944398778621170886598362372633117438188196242250080785504422507139271670203855871561797767022827494433941121501263806168704996262473400233847967358830115522003195144455788523363456896835972601485912680102898277039662390964184227787831912688502012906703212189331208521722692763053656952631660109844683303155184846090384032153597250764133878714558328076505476173550151067304752732008269264080152110363398151591457385258508745750124257218489018447142287660749502206105500942088726305932770795987985212717555190317887031981930694152712417314468082920280903228182062849504186463207313427460303977152904849695013918138399015383257052536755356479614715571960409336965031779584857910755817563813294460988172986959562972557012831008434171413592741661766059835951397164848735237387304487032537642863309000638347915044913756474146844078053362568747645746357072107920498528648431209234008281378777495325084748941158029281408908404034339078272454359631115738864880843908272019713895019045383141936478901092571954763603838526171705802410218052282272151899738199375971162478369201582184264031730500145908180545269573495999369128755855321884076825764052837942376268257226333001384783455575268385118763767121254860271644080946977270034509316699815086526113087873105638650250963382292833728306523659444717566228574259468851728523053070734423891748425586961520117667613362092839714374022283179658012594577308801338904246891436819053186428679563860469903676691620171402690162366042815677735201393509707220898118507565077620075374869749111623865029815186654953117589960619318148740706978179990098313569038051844990978195862746250322620669964503646205105475501987263120787704012969908984797470605420203823539884501018695414454656327152666505993447927062636030014775478152810822619212726784076408578844986010953250229818642791924569863513796138574720770606637147753727299225720292456410227003987541919769855030122787505558204384608917667408839395226630271227732325593933198836223999920449728441543177450771169010856996075049870315641089689044681010366105349172604219586522783381923554456908355599868608671323187766466932420014769123698364897824063906458578435057478583358777371233727068949140054396521349429313933207967287085531959796977084313931289002017545864386416960639836532194514317852107408818888646831189412777590791365665820832098379205841170588712582961734039311715903772936952091791936922303661965661620902359103708182849457477550236422142571546740877947381209958985394955588322871412630065847498267544030730763269122776467465454844489640475943221883062763858160142237166683531898648742241735408438913035823962010614026544804471821377336555563751168364227882830647119468674433208591815215993831622118827034031319089783184565961792561447511152279867758150589531010396369166389931044548684719693860130388309628383789151528355296764442635701805524901760418664717344795858337365702314235854426852307699559593314223153625222499830581084078078559934393571521686005252409001026459877105510680027115494301538695909171838219624913898875088519146169103104715609557469705493671440635984121606260854735300162047135991031590277471445799794939509771188055408323032745449125129797204375313512499073585324435032990145805022655418870588931868061612990416274886672455186266738405414470153804777632817255669321864165942302644698628391597135540339214051189772344348026113589945880879800413641738294778089157767582664776356415672774234173604173790670632496751274276178044751482036942524203388641856275347824644263786207881641074978084782057891024003474828239489834023418517266040161853393783863231937616092490835338608236572129024080309050353214591117253401936828271676922243951989988593602633209085226287365740530145017284203026222530712726063910360576758871130179479835346529195095806566847691179880898913755463691486993762763951409853636060850640525998612911718392037948848099179376939557308134551015949334001388015711282549691305389259922404865794141025865744388914348533774336513480171607538672385322857257668876425593641272516326453082607749718362530534159958163092585643043418595989593473983026327620789823925048927146293220172109520360818855723208451481683821945221423769804738975818001000460767924892521930410528920800301496523419869106366345622084204730139134413782576378095646463166221224225975241057841098780024844143669267295284973206408954120794544127548103888675408581641137114545684339602472947915958970091254987744074419154652286808608945037555992264841311828646793736660917425330723127087511039408508576824997909794058170801444869811576690669743541351150680095938179671827806858513681277569737725554840196138399863072369169818310272083614075824198345767394983652232010140077081155649949680336857961353463909646000805589104849099721220721174809602670761956486594611240737231519536790229539100134360546517810649832956690045936933235995556259145561755628666459634637803114730881702538275102163668553271532609963750749599986027886840453661293189209036732833216788301430828019783342324214836374842193148870575629650081064088865633725753841506779154562708938952436089793450704680521195000961104331850480522575349903628701092293998471304977220951115738884547464685666493185542710619953097171263244966804133286456033384098758729720180402882929166692236753282030738641542694785844724266877038823722029523198909878092051386027394676353106969221428383678790178306436105086080505806777689318916211961977845695013454002555614919821077800543791761437556343923265025659588335374393198140815928953588127525087618531058202670383095534407075838870519903445074194641280504657750396762906565098702838369135999920083583496022475135715592146090612494650058824046319737198668642325944345504285082758507970621835532203177113840940571082570130902316849631490232105306894479018224231980368423823224292326689754230237405706644444590422179462223935885540613819775338526916429627025580348494911831212919414231286026736298869121884693750536793774276184221638803871415580643518660480924114480697587165014246953493321523737067240297215590289436376633854453956229351358490337650688959789176723846626079002916937488421187843949429142802080134703815610136129724440386481442719898906709766513680999580535008609761994822981545396590181773029523840562813635710288850747167893180876493342287955616044516481533988659642999525034519548305813893213853158763349811623071671233030552706499156193927242996766132373915163671529483768397113525509188454024984846793461792163425772983234879745099176987819794043198501849986390357411640391990099728623835029023741044307229372716366053766555546456104556864929516179935120767037335773795468093810054654332166347882295157444086579528546365717939513128813422877141611502483585712191600691956424185235788415308515235625313482037319127107619509933893049247022895746776990650599692996499661898386787495724339189234510557250231551844942588762126508745275596108293985807544908887058760029628754062885195624191489564003781933102343932582342652985783595310748651999647786371651687757051980436258637668190249044833285947467310244571939321275336464106831678674283118502006322165179429355061469681821125673387181457558092420730275990809041710909198133420982439691767584690553946513551499991721889295893494356119044448732005340743485059749895188303560640274255892882306443972160286103023639550050083556287348789468591992568033161031870215190160771366939652244343415319485363430254873484353663851229844528151497717967301988609230265416599236597937271566654762623127452686677229083572176555290025797107673924479212425299567091879025573403602994347928331953499441583857896525099229525050392548476632820217499708244044960381428711390585610315185776772371280387466462779460059286329733881034101635157031077758123124403693991864333270471346108505249340394354931955149148229478330074108429077475208427689574251303299583040388894208569606344962384011916156028847189943824344788134546263452319745365468184109533150196599634067157628017921780197843536322733646721256571496000352593759141720663409237495741934875991851697611487639558262688367038253390159709540390739595053081262485190940205688830060595951752704764476790568924400418977501638487468817010988871780861621347506854074191802231216731143632192048727904486887486394809781718982307599098711360249708314771628723483602447479220180472123239208116665340676757151388271652360377766268014467484082640183174594473377814315658977857969539904849611044491295677083932546686562875981615660341404215293671778076234209968115754209402689784774000251059473273417695791280167472188786148261176692053571921056972130674649040697174990290140494631581913867817096748261419769745033577519168797987844247017861948266409045081042315003890308513542044371449471339528786191630964218908979334606435016411704763811092001165484833558267285064452503431507736357668133324304096209407520225803000141465413960333745543784760424085707200490308831711160209614508322849765729787688501178327299842009420426438928104460320942313829443322842449106690251606957176227276055662442473416041337305075832157023575413181483550420724557718208284330273431597879488688499440528367147224210728248510809596568327978222606255534033436812085075307856180598632501892622090588046480286126538921733648899622959401581320057845737971710059991502534409422498338759811588414337480677594686642821571689899364057374236094549530361516118145607712494618434381435113537781524250999444992468019220942125345576359280377393900349735409158503267732113785623145057113956635654973565094640132257424738207908624489988673218323090190288705207028755809668182770395975380244360504230845278782420112031298035958722554894638545210897677044034335715475618338473724482508273013653671859027068652964543516675150525780611412372530138764181692593083593764001924579331744648438637546271514939265519530582118671531085270844613038987123086738160724035855374597501340639095755182784817600297815166559365992545284722436805504660139321038607662721405092203908068682995503263538081663418206301629756190660273288302905788323707618257802693865348734982859953525814457217637458941135898634579947198236189301484855993557917061867051304521076549937844736288866735119734118426470465429214305704240335727147002154238544664126270598806780455928936663491112789991269526365355563931148004910861287526311308154921511943753416783110062147172927414439425002172313019611343578898318523516191446522688742990404608716255850379019041210600458543168533972365790005354058994472652114467946507573280419308688048712354528462197514053621842722447045298569290237724611285499125219830583623814107767565981148775081504737821805563019329181804728528991610240557031172364225918208179197240603642184276674943534243914518146702893278173283422606132488481861460059218140978145630794763488060345182263588210324538408312562502601842368083699573543743537500113230788614627696763092222124033331334437737501253523677729649811077784618677971735978476401778025534835787507553030241916750236699731121535761627332979485925265335652022028540585561386641966169739069976564759589585999316433832063001734959206858510249648328552650664562983694176754578386407951951976183542626788728666690932831756616395848990615594365213757373367426874364911079923870932060125630705453553466350071387511768736712460780724639980796066995540056118614657372852706712094990822338649622091883081261223017124530283007341940989218560018633941531471895461891597145960394656398039613754756951443705953696205338044142597388888271119133719233797458935478069900379920151039740854869155038443216930492576648605348827022670645258932989914701207299303556038503527632434590918721489161845526840363964647633377555071178538170409572193451985782057967920787536899970309234774845608266935960940834857012373552086325853555027122849661038390399947622602646261374982070307047428255520674221089613502497008369541374141071246810689195790562908933208366603764737433708871995659106938436734679084352125836509336639505665409914650995060368954911371657798750085414672775982884339099855844957395959320590412475002784291720906063798602308510608042462961386726823865381004546215580372689114421835859055993340579635423243434919991777384918177375317849924029490647214412117440249418791568847037548304650438760367243647330412670215639384755580098509451877202121923939121037705044310306128789799655255212532928416206224596053386515762960191357200457048619112496167758615433998121589518414737216654856441623536592257184292140251035470988496863528279884096207590779247109842883548487379034971718345789817831671141750182502087202147066684493211343112693526394513606991572164541901895986451740606423626055358587616613994054281373592925403309698132686724794528461879412733439262836022639862625069566718713717459601445857447368048005648441778650499733036462284444530948286147755859283919818621697403452887234632473494587878711357515423364064165823606357413025421080861968115322655363843114843105242470294505802048822963903675479375933295704691587816057959672980680777496751030329861969947904787382966885846863531465186507455114036263743413749113878898127871489557792776205833282891683567192971886255310080507904051398772094217578731922958215375933139769759358310831055247841537526252565966005137008230594730688846120924210818600623891708271280479218970715997080017653831673729642176718140711880726304531523605358876602407461358027212538303212145496422120376624268544709778066735693363722733493782853250070005269313862931801191044560094435886573271242903213505286197145337031196237905126641109039031525365186789149090816379887295884408849096518878101556782558620728624261257844492320608025306311351221149763119297334120687285352662407194722967955459777730062787579439557364137107812325305390136253840207170618872573391844871072860037342476944088129518658124580124872997807381486728006028742003126169037099326911342784562459717339831257361546947013539689536579254445388351274345665708115518544850493063696604868042406911808398213456893472466633006900604289875935949780817985242340607382401564268295481379105549495673600752468674869006665240597722087692488548549842940224774148712996957159142535792362201174613558242384030416320803722464821902769776525152853096379094738449791786400016350934147277136699258479284028938194058182259221571298098148495239526899664768511990063859836840851962584622973013300834039343137957922200782665641089936028970986674738406064539956765756790371805252282283958588183825516013350288857859829824515529548681838029261129343553433007531728031626566733780931679267531848126468974348875012554854456548160982320912045232130588659407280210277165315988720252138654291289460549722350670894914943697554476606122371615988540594669119366762863560123999902983563189609114885657559039664222749347795502281986339069677356321631932783663691717544666925834363756262976852531040140083082532716619974645393357980603460726816440488598891730313201354878092419349800879931348655164970189473601292485004814083354983247111875817665824973213981903030715083764841896671123317992700777113246448906484054045745296456851694626921076040631705184621592146837385310907188978282332133301475770706015057825944075669178301247160584910892852020700807812930811198264806312137842579683850231753480978836015343061666172105328511790636172740136507063193763681643534965102171455131965649669581503973604974237836952050286471027859677732996213313746641698953902357286788625468917783185254370749972008190312536858142560483302693875205348968974179319022611324456103100217137350010275034771876553142543600656160143590843825575193548458695084584930887417859209586438135052705296385594757154892148154129717535709726221411150836425624605666101701143198810057544409504044470906207172837047037355930647989946424266122084688519276570831778166446269819371373797497725974217216370789825832311447950782652872964023329568167916147903442409977275957689299089671480875701925935827913712730759608205152346576296807110487683319591967722675244040376082781387422218460685746402902725297699858020365928472015519538468363817318407623816304668611200600118159492380614883106256309180754307932242802860477744225876294610166417825659850111650749950042474396076244348181073298497714376657591416694658862003224369790169220571994276111157434063886383905657802454488435846106921388772534588593422147162450601185758629713948906107390396113607244556687017899566692384921673474817655330849884097399685137960710496541991071536015082102309979010091415442013764756278935344011220091225922837792649688856965286353892856767547336352320654961881799403411693724500344169978161000467669281071454131649832420091247986274003668740872171034352413774610137333705921001638801804634422345801644272116571064795438490803360263505037160218171853270768649034455288328054638848676972160336271881278329384503072524260120339724952839080428691947025630323436688052147851409989654692556823123774635282070299997730631988240838524937581319575869882560664914281596522269776261713281323751105123817307429244297898727605905978350377416980922480909654075107612082343724062329302246503758763468351192370452261005856520100965162406232336614665617954651045977706510809837649165375054128453342983560814394339615463301744970834107455287494378100578913512479016516593610442300614276744041040521357818853359366858171202499024487030923162162113932722977111931366143776637254045654432416561258338974355620162219594556450688996764155321014579004993248507532685383614541427868561479024739087011423378799988075786104584257729060168832917599532759563882984299627729739468708573400815921368828284470362647663078517363635395860536665379583953284413139945811541838222501305719867534085543584593780889032064590594510151825620916598999807953020665666591943767058605970562666711838336995480259398181400533031941377858846331547697452367905344280366922404065670161649500098800379761565439871685209482422568517884805225698987129529345844008660825680643032908074102849513504012553717107191005964841853019184526405674815809720730797282461708243166905296585753614544432702598840410723646835965634378603029296124375219436214281949914587855801111763559213508022397083721745979190068658737701340948293700358119891407917131947013881447549776349123268476106894993493727140158062139937298882908343704828021841785474038780051831704292952957641133785591133176298441510663635711364047562919778211786164224217342375471227621644610102374528154448329706906132491148220288119257633366047045752986456413359148180808866847160013112105099734808300708559514223007714882255488555244769012647987290747399038522954806520236220063131301064397870825120415125734150618290226506480061059669922718796091101057777089609984149458241770570531201923189264426879955322799498300079884699483614476699835938331558543994017097119431764036397803236074871516477560843906088403877278765351830621160964614799762965011725012652369453687042916718494740777985495435470286357751685262760640197847049136470944220877474711172059900021026786625594422974418645709463578840700739327024732607051954572976087537009150056907328701827375903291343025628679621616354337229132818538938225812315879987752242053759435492968109726840401656477868026356203760210944092425725468593377267729882579544818855598999621999394253887195092915398835651965009538504831766804909325106559453817187323643197008766620719225158207605253002490240204630391060103785866797462515640188095541801241412877812991297167357916600404954722277834043029916124666760657482963538802271598579827351042734249054687506252079186230652851023111932190810994932079609805448955960052786070606607215337784507806769773452495337807236404203210520332928325270100967447619116308402628772050506383751346349380718798588106151221125701116826733889420829108995071414504093322064866552157605138646173437497755028349283947426914109540073246855806172688334601259632490975173761169746163984347675247497525826585061981898820657652170130576451940121119057261972924247547077168833282835256474742857790160449546412672938870829798174851354092554033687023977474842060565321228341331750772520217320772975322068217935413066339035250511141831809724977827971189022934309187173186164630975677011339173327876919955315705335073230093801036450097857963799444723349955961021408877794530071256210845530014722268616799026535616634478824723164013428971626651689208131432591071962762013569202722549556722639439957535402945819768597751906135199655003489077759249769056226764540939886675170997241807895596056714374964751490314826998977614384981015308222943963539433104815605354247333307260014460325354766308653108034267532990214952253445705920402195834620717314496076862788471737160050144918949046792602481321125806145958452480539850411222178341848016457764644888964759687228830345430953929303906282859079722008296347561478468409824826769614224173490326903911000702116754316361052704371269932666872330411463978669419483043991564714884129329115956331899998427545976411268565797615263912759800576072022037130268042173298461030173361418937304504358450306820701305757954305224496225137265093144933087185164830619773396580862534592464175258610323125065819905501873542984684633241437222448175247800643078892927592013168888446722734963875553951356126163833932531504379966785449591618672359525672969253823316824297640034729327171449314290300026484957587821632537559513526694999479191144499536354383178930853341790509084541049682051581669269403843360289902607876605659816715507490073368085022686469757499971604380931242295120620301488307836212312581508803929383775466863452337552003856050714891766070433378845410477916033323442705269573820445184006460665541416194973977838335161346758213780382692512038484199007495190323056956420883630990068234470544786062497019948996063455351593882906697526031384153667930798081759765758949214923240619317007092269400318544900059534206680123991509906239359444598560101154164579009344996949352161676814821444333636431996731980195710303955174008461299759898150346864809657580957927739085801404785348294329147432721503832361495760276336853749211381114865577673994088736536915977087648239017948257245628642598778421208851196817871985890783849688076766822401981485951912660921495623364463240176168517262899325729207885798361370510864276321375858953083395195461350956025428337156738431420629097399211414170254292351309538177388838334524338942052499723143638434154606415487780841483919157100541944868990063024733750924194365654730714489434613041988550879334719056375407037134006632715228495546531881267294820898043612768774029382795485034534700887234976767745750740711824292371034029308201495968548483938074719417458345826784299080452657406465653520163298048776917438196407232624485231130255897678308032564941291849067594515879835379676040027307032057321436099430792715818093961299948926106865770628332674382265647441634723446478020967265002176573345467590237219819612628394662705606541213500267236775059425950534801772774325034761472624417209472868462889700825016118179571501802218966107542832137893026664435839377299238034392202996041019936092790517105383666667912150559801500413447981892549373872905264676200898461943195190438713842590347946490960525175447043327230577552653678898162967933996843783372646762524644008778130283008918353415069334198495347343285582186769993926503919892657780224799188799454101133121360294726403374651445405222212584980448812947102917630329818458553222040219655697430971320914847030432661519755395591988755070001086295864895001426441170693937416714263053392956477620997456176715174204206643470476610302257659600178333519666115299682719651165276251742232696698532569611887089457944980477748273687683143405480067135266713018454455541504178971838146961034146337844206187492692938496468853165619588699599778553501525349772834534165025788101890223790329467488607406927984305996343004244303263771539875760663919070266353676559479636090403982075488033850742879194476641779925455968416649364048244213981297134882520498763417632349614636819774764454763077610368198650878638557642859886216724426556426360831136867819346950523082885190187133546134299439111549228128383127732767142627332847634789556957079073625672789058368517033058923859865825615611435241818662525117288024208786613097286967302363441532500585450884807183894647408368756460650891791385936453905515223469233635768573272473243731827100408686106105464974632507064248177065918862451421535013400384301408283982640440458308462327717098535263502274238874494862477984512934860551468346117461566854957040296541461926579603999193036052903028167033491259903439304189361567043673080487815618775061518296453713296535313097946568611538202193201775284032718855074495116180972087066567807617478660269696527115575309957182003613752888556348935375663441388292152579723396358641221355607339074388677908672960950403555863369957872906703139275446157166704504130239782033592314634412048037075629804485021377994516048703542605828109137410413289135434465512673612726289856705859343738858161932237313006711960455268658714638536492793059532445053330825490280262028609338987345678456886410670547734960466057064892131822654149531715262540773717157086582041397890092556127376020667845204028575324063988655112096705260392373334116825227087762887650842647319439360006343553712976757634215446845356471563736066677233608863337965471919221008857266964247089871079668652363278840447043705467644124149741007583122262585251889248428826369980130730410235616160253305011681949276567591183499202872619302053521508924088102262078490187561278935863659655243434739769410914632661759936775907959354408615710137983835405640031954920211528303396200485142352224814198745685970979992196753120041396418721187889313285189387538871244422857711616414855939780129867262169614459763554185866170972240125117943930131382720872292692585348765833879493385252762460758225945266138443884724429696379558225989019199509795598980438767423319956765179481549217450585641455337409330969373420868088894711862765978569159562846599301692891200712243777129929935355164844330240925085155296114511687252041941229823580236260359965979095546463274641059706033533018712988212503610717950916096085103888066636835928685471293707973491889265463852894769396817951683992593498162696471194500872046582102179892823728726368205607433911750762633200978396105368884214522704484366604212426425506740950695767943972001574702648610100654255287567651158104210994731418289554946827436046704100308929806207160008783853778723016249364568400239245688723954927513530651427720638335533239919947509067327527948427647843149214311771283499730897565418221330728557386635206366360410318019951641406671131051684675913155206273075634020732230435497568751360676518537701471481534271690459501019503523442957648860604986408571091657814450511614966360546478621547634120407899343582059805943599206054473248528837553576292428741264885664657330347354625943903233469008951540517534226352128639569834113114155228225186708519316397693448705487572531463539124544486842893923062209822907011148434498591280501952283943037720363276094823935415308668591238433596429478593106269420686242441132076099497554509238087169905205869011767382463863368508103037953705760929834679186123841654850215036129571493967032867025977571628787640437034797591435177044516053199286855915859185680609067067631338761293088239137722624173819487747301768892846532723170679526612118736635060734969813733047991244904826012413204390901033065806713574214238005250606455718352737410384373054956346513027280337258506698938198475118901951713871065305530692374858508990890952855646064514924590752669927016699053660862848878526874416791502921733657920542724290787039077282741328020046435319026197384805757530039019992910293634261503568846021693393297028814355040580743132978703585881598049917837433328276319314185165258346354005609402140141869369047712743334734452336031538656744150024722099627283915033778597282952375961293577084336908042733317534284714825058919709798414270900031771840809424302265909688636860553624637522930063277948407878210959471983601832084433095875853572017426168655190112975748355576212345046044442732161280510603654219217471833047516853599609176205832256200764768970966552292549246390966831761635632966622195310484082631157064579248575461899052856336624627089268404371901615104558301611218122107027869105306676018908059717109782296341857543146700590405049314001574453729798036266105786453155066782390733224534102596956655702710350569770661525213040719542537848695517004511229599752582706700859378317904913522306182116048838740274356185652561764813054641415058683086590993356976099911197134452902544108341880146085726140792495833652373249702131334792092719136289871672119879216705247802505994729219958552046213724303350152442618757665747485140167145076200880294261777989335902538583129608601427890704706648197347799206087892286328125357620939867477460370319309485414478801400954257915004364172121246010099981223566644965390113892697949163923807892994709339708923885030814579400017156757295656484374014469075844760987122900553244904920176330869335396715143318979997907404285759168404449736933341797574642996387531039359131291781787336248336082729475721675588040678518690059847635001373467582765384462386436470282206043987942170082707415039589285900052727893864062208501195261969534001346204995297687042023265032112554161470450579399603160783266963953395397101967410818870042056865034307488079440936319935860772923548210640944597171429131286877628365725971547908764904657857725189803439043190911042004156420383973720563284995947082759549170262845739705412428310798852309830312211375575469435468043752099751910597302831312182625294946708332162505511341803213133722378518256607931687758742227207012095135947041533682535568671193267152667757926647829964777155948732878873426001360615547924467371871485720159300913703568631706069101251577158465639001832775716932364876411143433851362870708478676687662925825193908840993604576822215949320622693479529210197558879505051801000894146079040293294920806954452778458041508202801050962696807096810604305370995717974918663245357505059025682317568038635750994476620302065327451957689654910493821328373802614786666784777983185732564008494527149000856115214668324487131915040592197683593684122166335108752465965148557141178254331354490761931587163773399222008862539114981684858611751449775153454932105274184325679547276533799155566723347984295318554383771628434513034692557100760506060228360070427075218833397338443213669800776510999927637445241156202469118126218767752142161150756434814779568295279225968853423219640840719915951352505478490980860294892066241012128165211095057279369139624841328903854515547287255818739541088297922217109931551679461923931557361786255577710025776358029492433927846378347367498359269680815623024088697266804914261597659135251434619479862318345547226801147895318800204234297291232932653278669005987615947869535604555122489416905990852539731747383384948220264768605703617959216835617096532157784975526719828015745058870920700791193351673779884480179422168996441485138441369856950142055939694522154205083424991052515188446579091843159603124438296451938479784470408625193967703593914553594762951417062823472492867868951060046285848477808635717387991008160913428187289597450902398283627490632111376640376949952932920708129578697466742158878399686621979022415451302980063683859691021854846456628854924684647223656441024672868353395905297907826248393898558944057205176890713936819197642614892729341060295186600361337525225154739042949545464697912051689400780466278358633911099796442342730094190199005081113557185579117789006060843650547950537024331846062513115991627707267237944107047718019647710388832909220112585375817076216646876403267533803880713512344210502392748937509203518716189967740057982606446240969787005808993096230374137519608931460551877492061020555861086674425473072697235507285473155405544478194405780880398689822827989601627541751960609495154146472091949919130663557157735272878295096491874970415141811454174577946794368520126221069618582381382096042875395994500234646550115687420320624291536271710588364369355026919862323729969689294232881362913817953131209235133269966251184023603805765664586695635941828753463376364108672889226300129554255250877296054647293686425781484123424663801243861685127994642290154988811259040937637986016914092151263454964085219212531439723709651691309788145169891704515451845263070510221547953744964449410761158299714152040284475057073603926049308654143116437369934336594543396322507714169424068597026395889334515450620039482472328780179612233968448838199557830906342936052745896957039809089964237134900836827437925260157726411397547121099477122094824223320245837567999878373870062144120109307123932091764741673257388553022935980031073015949782164941145910839289273549418876288010174730786958112258337654439110122535148422499998595099407741263198865271843545947827174157118797618659289627632248828517586513046148361665996188397977569489299379500411921867536460212827311149772175398400304839697863324120503764340999215168267663797112295879824714492121049314091421551852913957941230017772186581918570069646819373014995175112115025900258735496134927264456992801710710951171030685989762765989164461758775988437722523529813363263820544820519179630363682259254016959223128839766144715091150218327504755163393148193730691814482592800585624964874413450034811583245508727116935733420808415579287371724493125902947366686458155702787620850734825168605711563515498513260701064305924175514626519552982651132676258757582470449387515907796330306911345338067062083914250812472344497054244582942759805821457260940986280977159199746884562838212514385071413186904117662057801231260448510349253859877794439288902208854031403690537778864432333150081860465065266973334903839684672424763572566540021397859987349355902133836317236519361439082940149115838033184540222346679294358473600229840523017372526568730704350446437538217348947338700311424940646255743633149521750281562789724548436164065000633903463634592346045042135254262796152360374204281010190406228222903852526616927830513947366374873961210233167431669371319617315739214802746416068806142216147333522817761175593438501921708776688611541123004826701715717111135925615564557456325810457950813850163521182509672416264965455444041578351434586277661076896676056045965441381599917721105789390930396030814939713410674292778917265164992291441538730299041377632590299189243014177034301863833955061499715002338925748658787406603441290963204115357089827130983018718293132289678300842369180059120073804851159581536624012463987621547156825468093330155844661814054110341112184340475407375751870939248687633957858153120496275769239610197221827733912223204773319132548854753899577218319427649094668799940950337378960883983356136088548113758243214120684044578985784433127878514126273811773136184822121687743811135496686863479547488288043041139192461650124568844082526607178207875992835523806025964017987418002745789754503064184861350690940678926393353896073508523976554370474620696212891890390494209023882003619477911898105394890251843073339319971028542251850901429448871718229449462386731505795306388719490249298171569233549890808669280735555391346519223411355762929735037053863628475651193747433767308336859586935123421217251543823447132201685872985446014727203966567159838866035349003501356620324101178101890473942242691232150884649153032985269306059746486627988291574397877069383058603993869393229804664212678058856376103290961283915968641367677504887692195617197201709308150827699066791180435965923110786785870676703237190279119340695690210965794787776150531530003009941969313265844202971271445068753474603072451900721978264372040142866134844991461659637323393078736278962677227183917407701900515026397165688996888079903175808810353225473837340860681934160045853805045339489048725790987272268203968813572109749308638838485583757970427740971527166907944329364785425507708957325082580419279308652658361905893423133738307465784259361540686176742340891027153776953906862842071248286718879620646846336543273599479442711721908080910719644437967308870978054431775703410117811393788772686124846196801136258578969289972518216976916887043066747452824107815444475842381391951116310367525797337882354235705769538707790291463715611066317275131786828851314429949326259031833310016799031091560869038503633031237855825480331187551679666917723614508176735880567357970149058060601643423191106167978706342206231091887223563892334834845906279139037828675882192651185954628001069002975144711619676156254789568278093666072931785527033867093557073072949321736085172351550956552118620387258880420340738595647271807934122866879865469874332207270449521794253949948066650057514084000682372970426248046182369476531156872634496514856938634938140293960901348818950946652246948911426801394032724093908051986953649583823915151606694133232996483692341610753956919972599770554318257343634327704516267687111677751321690190103316949930490313976177507950481699050779483135364230711749085638978317636484936212875986467849115148371373332277355713518376721721542472646244590391885290243963801673457738269687973165381007981095499620377387140259325845167270723325273768419932649984255920356547146271544664534469817216104355525130169106838548358610126619518116734112397924151225246285669562863483711843841209486936399567849347989421715699522418898076427929791908368966613941219392731700919079935955283978403607824356525504105773062015247969343986971941126079355044268540648245180533618270897717997241311413329957381609573794566850699373054796152845152751391481630410432566950342395869488089147904023488447668107770542838779535030798755176979594800740495486664964682722444807623603509237313227197173784275469020574477130970961090143812515314088825439167820106934939429992820664672127914036494042293693180325309835022418993349154033409210339421595755182277309743581883793921167044416927133856353960008419102328185719154233504247822340878768643110584822463189677208302705199095584173948626368822633267994594775785038551853312958543907558179697238397952358086824208464448280203373069251964581040169326611965577181532432275050125571968231114582836177236682407431311188279330711116753084088386704617550765055425615107642292709594874242783016982347304260585492355612540025989509957419418703497450603370675083110778176019238708399545729169639457548539154195165743000381456699692552789457810304193197448750656632697807951906811893094777297006345487411830842304332541697369392189388689045569231088298245782864545515045799986668812793378401384753316335948755422965712201610152809906602957026684022676375713807457246645212458878537524391635780180708613094161406994844386600323890974233071985614800912769099285488885263023871497467867653309781157796360492502179415778697690694725186868162141302062469362617234755343265725697193474450227521986335710937907534886754406162660331841543880055602708102776090603312556854250847098519062079939409042752719665274271019477190382893336000588020261104621378813374491630037173676256299118696281428682367930319868111152079965006056305642122376749769709896870714714917062241684763986965846504317305288742891430264449172269726815398939553102584906946824313457624409642840522582207255465936294747333071060145500346215398758251757151241842755766342605295727102847817449005457053756608502515046583426754447354422860089521100744098339220949294064370128421295956605125870941412814930041074941293470088067967259045601452530778462215966870734756585260289954019000509238204610610490981928543649776961355016615169623598524390506184649396450650749951819306687753665534681650094038703734599168794700304075171924143877995153780941020860638024799183619884394852313597713960770461106981705972692284394331474583842044236145652815929641263695716216319112968548583546786402291692947140057374348241086581682724844134550671710999422084204794851350019645502476267904196229584479407998607601084680241860038469682771965511695424328360332154427760050271401410394102024086190581604212304593998433560100810225246746560570795033774526370314569668238608800420307888632524225411283859125194547570607404902479464144546843662022182725935726415767455519455510909390400133987330392865067359809771123625629550112122265396837204955504589524446562999677818464843736541091645548418294073021700878037681224320840088182358064510766841121900661752109943540862824054384951887335035809842368877645719436189443524031236669239531894010674328087856337016662129469385754307070812725692475706585830349330276214105627483094875210757710726853707716333340062238561125079817128102531388373721124068756104740397039077875677235086873768992841212718518729705666525503747690824931827417157533802053793073526255405549650578448659965341969984062169336575354494787984727705759709176834785620408181917747347394927962437443867350125422459021080790212243052304436183190833239739999948739641932943679864270004464381105370975090240778086172990183670977060625608636119263042608090865491037614502652414541629810139754606417190991528712094167482718622744544593849385312644345741593856550287021372435537439054335163728980875153467450986443484418022913692206615043504044185152547086780508044453342302093831466865239446976555071859563421213492774756535906960113490094140492008843733787852037316520046404343714071263513318611677133050898317460379677874487416388733540598128694588268742272371333574831688858019885031978979871073630860051641884133240687168881473187682508397371225882276233792628706468468216711443984223802136222072964872081152379657328479554734899604538601255568123739968862973307190407175858558990586308219028750480940274576764157687960451760415352066865240978807508462594117578068539046150015159601277342978995296357921533284744891763045283606138578267832325549740226776340624060245168236929133668396411435586041910626346159153660950862727790655338112440663991748579902664116704205459379672308198572512219130479150736827804648598650747939589817386894983570422883103569807009637549777456288274852452824303948252039096702744172081033083242121444372885324477339789613906378118659987002554287367460264052814206683556085577491171600785576774646577150245270482723488176835276167665401073523944584414025278929188649931145632807874647899478653234371942266760429072387028730779953617824012378985537520659761588378293303211594456160865586760270913596819805150528821966131570117053219850294812762828308291063109198933807030243419427240774311986795489937363041514540264507174659631208737368679158090641993950379119394201437212636894306840644101509419895469825770953027307279031066777458912152329196437848784545969784134003197652950613262756598753288341832096916403211876939682465465915084651915385019984955046229206313364201534781735605501933575631356536800848361337634291625568320777000387225357055199670712003332920070646742354980521788939895025506919843566569534454743554460312278583687154438990229605823728658062187024836614133734642936035448730585492542481930454914803698262020683011832646356434569949962210719287790928851511047253965791891776028748448012046847610479595412297027257568901308190605773051713062510310552628160828089532786159516849761738589160098344739219845054020611885161267736878590345169762929259174714366800694675201852123875544229558212233074367043194915897973553669403122921473649713659209582198649549425692472558718834659509374710527077467256300807373183370726554300727247868004157452795786229014813813123251494846628215203045230976300308339726060240408236560856509810424592131208163456779498724260747790423307325191103478243692032265831006118039923515814033734249342750547692623259234309976122126009635542253465734746017454914738924477723460826562309230627487527075432220999571977499361844765259996729296298811209810034053962199579145309994465135096766789684706440521515097388828404979295383795156255858549487126808970808593215810175587642399662017482667749613452269334941286424234462134040803580153673734740256265397736929559543158435599393833007701933074146868578425028265524018764829332284672312783462366200696566159291473990001996402920509226203312729697083650211779714655240637208625520449066419197112371712387845712286403402053229058594961299014562595194246481125094313499708846675412413687613706936942739423139604258153719333784628440478831025840313418465616027439070872382628295188807535149323368002127355250006289173210542978068750314600511823880226687373049503832022875662813661458144920051343908641749977741599636379704529031415965280781707283931894786722762865241605958878002847800814517128309261190229218717374170982983792812556253475107039962361222704717325868115850120965484426821346082194654840069272133897824971168879165037306162379220590855640058291146031891337396568391376931719388120050825476983618868866901456167072925737048488391513699010263707152166558405968319042019186552564914531490576373131922850984442433943336958423985513991099216975287236397923284030225249090821490096703376433083392626505844938320715796271091157401691888159963872552592682460518826357268229068507315294213184380571343090478759397465201386416230812278176453902438545290182234748809768506700243261092212701654211635690943343588789473549664610420937024087325767131888329205023341404447677723905393491602305440056373577154573821346854701902334513672888395257353222045531081594994185027791348108918653635824876053928426442272356681904184857699957806277021132793606437411225156401184935252123787421237260145154462856822784575415999602636319373105260767540988039875985541028156924529877792787275211448994101647166245734404463738754330905043666905103995316778986858614770350610112408935950231483308433107796476404245706057212688501865267164548066003995260001193787749137273822372001162036933689473076367422919940957669101145840268584526479555765238873776795146938871438234190415517863987716600980860107201808426897745876104798204482514233447674912003970142528131018012197530587714067063418015535521936850911087189165304541835280718628016560031012479828312581138397827616044175453739202531518905144260658648189608249979909441284085881077305698602294280370862651285074030400087522989522403007338219714229989051252808991863612129004913696360404219765321524291206448551832400735485090376917929917257557334800890011224404272547433789665503924082592114353072785595529723328775511912081821075970017440370663498890905709870190523995483688242294050434852011985671637270031727002039229882704965693447564560339669863199248449737106259843181821295560012955778425740545405768815445272991299565315522473403282368846168189989741220559354451154391850224532292837152785270631511958966432993200770108499611978093771041435373420159664206647780103982212947065858961206689772741065644354723067521011573147047869010480020520911651763527585844862263641308879691326745591298959060791460765327949074222567939930252949308414255003674393221712890164046030167451038724634135999217132847430552072606387512301457869495844417126801475971232209629650124518679251337997022107942507583432045937486943025446916105643213068753335673315347737035113312636949045435469180593923627187351893704039197568701384924237190756472492315809714088813838140174380576014196207710991013015034066314380727798429181184858234470909944581887948889196405464540209903536169327543190176196675009123441050622879436028323973582498274175315963066718878207638637388914283664219225713511447524236925896196149013946981318621909241719252548507177426112819001378315191222996819982514534951836684655757966511728055477957252660994055093008009610566418936721750183219825547204948046560027281635923624561517158427420631321491676750090128376070892183900560271325483500616416168626121700926215694358512274359083561095920346108687355017205361088861428312283096781267274958673618491460129890379297639086798507769684318012228812440095099327871430947413883563611030457742534566642969350823978570780096634207163841608735101554754057194626403240812521608464597891983434121087507665778576369652851693683697430229934835701664566014129247865178332197324558893720283951098942416632100625052546721107845070390477867228885193199583218941243097223749968095173359582413774911501122061453479976053280840940060739524727216078305575141394803478435292386865050456769775134862532840358232529915921751553196675787707936095104496100641001712261461060580229002109903946721764104427236777374387909695805924596408503735437132344859629593321337754626449727724839507770338272277048576044900276732649650944152892711058154513144328173041799954898350530563493271478094130402727347651669192352673552804122598874352183887250029672289425120466391553315899753770292335439574567129377899601846354293891275993251802034513184333365047366917901268016164684864435239627035466579610737583666975783673447928678915192579130949419724921157570103338571750609088900251352449929692108522618159971034081291294491324830394805957318444877081808528816305376506473358574803417417348588597866437859813370674677073664203809146707930639085002721586766906337365820375772709979580997949179689554811301516503803022662169521710553005216892589600973135038065773593519905294459954675096810272094893230051336664589318079661072829693758210103646434151789756165726885246772730140105809052260926887803985614366928153088929025311264513686594786686868473789249146380519477699558414341519444765302404629647351785574487384027689038960000819583458634575313066411645003460907883681051436591312364959925721285076516059601111622629596960942228956653036764675159458414658402795095693638097718256174535204333721918839750090867852769097310438814223756554633302657455662335923896156278873702941503202427012914251809350848434680109327407610240207375719770461931597329746781295790873827393843089937736574369356670268919520995521118871396338599219204869800564237384043452527342317752542168228816786879093737885420811971382941196346397890622332801816502443677744513741593291077237286593462179809270180070825243120085763080366872183478988873063182067591541591146381429402384922513120430701917289544339786012458455611878691865268542725418057940707795052032885971806311323494023809467462914820721883673728610833763460217502566817185882293292019089855963427013774288904614362598220661843429933236016985260027026060285914133625024193251057700396451413701140963053681631063504212851654043736677324737421578183716440987042991896492725503401748820410186462231263712578702601468749199659370144849312280278547725189675149981187747091155296296607410642662365204879719187700535493942318331804465165888636863359489519859116006859182117780188387448704181628830154749646185957937772989455926031491707764631863801650095962892600807314343663120110165499906937191151204946324345878890089443298591926014804662998209385685400538738108589363544242723377856382049371975572415893858198772601007815165914708023435447314957147500168221642555353844590226240394215880187981139856351872883027669404766116119717087598851282461964198047424872643334628582889257482516748134313670821603600278509061764084303063976493648974749887661740583158181996318253971522508352575867308597912951185651861672085983753851392392282259170152614959948243595858889933643272988386040430686373061615658550176136209465498124668535745650358893985160333733472978976431335613432443675347143677140587637351510485818125127341260946938074750241735117945748434471619035890421013865235995147367079114115904128014957863483174286021612772412628722250889191637224038760491613514157165411860226846419040411638833079417097177557613619021802448317465407857445640091925288071751488590903397258956440849388986867236070881548516952845795483618219380410117587828297227090403296471886195854532822163872269804154561815402800305559219081554918624017462007509498440669768557592170442014320379368519436982457029504867870255602121996528565710368944897543625301552655795222944515848609859308169300216954682348500936175813461434269411311086840685317940797059929102834987532986208408707747774249505339509126121259537048972600029659465096355811696584862252233249542455254115363067502634312063669508374442592179431746197547670549818279658729526450156494267183157366527621955162882796296607258761337999317334331049416510480350408653980333357057433827562815565208050828175687208486677634092031267611361603484638814185684591353266264362961324006394623974839378369002986777221264655888846113645126957237606471408364552836914820357342687427938279219592157387279698418395310716829924440221478056944585856341645500268106941417857312331513658177061175186917524647436705529803458092702643295237249656989191614254287604779544544794102578036876999123831026163597816738655162970788641592193253208421791095995537599605678220740672084872570263469496884213602669214543485876114447246552598788304897628970007776729218391213850547444676993557653057217158297137470552512245545871900321697686127925008097883633405066248601677948889829143727926059446752733656039300530482745190606037569433732382245609866806058704226977772945965100864942936071153009957174674551612212944158729720083518576410389524973140683456512832702202087675347219191679733449481728039429816903271103326712869108797757215988753744446139950809818919918153106010745029915146375397346885753472322837256707080586827961465936056779029719627368567292205704317310755691474789809988513871213118327892978057955909468518058580369914866020555560803138625821752782345923956184013012011625032208713449173197491179409303683382903932475985658860772195558259279333746135205871978346681221340605237712937969981385729662966348650439772930970100640340571255952562397362412766795427562271713383412222719154755798898989958839699104896005626472563927826223749869570305173457743797402514471643290887415271432048801173557976837863416823939003669767697858700373795358832812023563770012103081481054569561698334252661340025402249420554750839519189987867040915084092551601348543708717027327845834076139776991199036347975613175100165269652000379123140916966125897106571414922159623196888705026936539684829816619151358942637620055386679333074232992312247916290990228308687179056375409286233243048507722423021344194233276749972219918551692635962596531522523763514389555804696322246778840123812592566793468698192916536222141498984115961895170435011475214867776457449618419378186509162245938010206140706214207159996711571101398584174958844164153390443641053295747118101745594122757492052521764993665644105612212458301781383210608911235831564516697934803341932192772457011250821793771840629479987912309849981385227110454364667678134881957933131061678166758313307870657871068074460040256237860836973845500110262799175969321374627944874456151701392181681923354300714042759338612632463571534255585890895010339742024035062608621810169963033723482533362246315458137313429260109314368170823293319070021225134066549946501369494472744331056061830282593585812406986428068154352704779731427057687010281909837473342382186770535590469451315035559026045197663388771656225368745783082003197389363896381468770516500505615960883635050859526626421320951750703074757798904493064102689165229632972075029079649999601702252824267527051453339452003454198846439412705459218156708459077662726498021355847910959094444431936580625482948043347818870698534267318941307324450583445128394026023756139416904590241905783509967432924897801711064465544008249175128933711758077479337794404692022328990962164429512265429460861863466646241093586922269945737900885053152093873157154544508708693022220366868198065290571651739249255577592889703394944504357299454605529763478467152423838042203065477711345452442076127681405607415083997751822292021900841463106235901186467763321199508443460887820617293357490325151749426625403050317559799113014212117246397014816547030412458647013751743824495679814251169961798184328361075076117036820972291306124843450012454530598562622140985743949258643434749288093675086322442660940147724355310289702679516412946904154773287100065328799918883666477625853060938289746750919235977663632600229420259481383140677345557519968702375060812294304552978527587943083299328487776609813589954222414251315233571726044925928783313501327924077657857592334164126285577045522420286663266349492038393083685082344465416148294042696199940966442801334237330162864363803779063513876256585826816023944749098359242698127606154614628443802349278840105923176867181058486513044924229094439757260767498145197358445250017581213214302051354064689223303429540340226760449387932371777504853863805978983080469833532706489639144859137984305385990248761446069218987159144670562945014953687452225318445689177548423960229056662478960630071317787939415748737118125272393674020563330951258954562628039342833487763238022299203256650397999883573774676963382212052255098531216123585438663396976519176065891728650580120206483836950144373251545019032558377268726138222523783458243342941010162346560285036562987134339007702862674757326718391161154977401004796510298273755128377343529417357004226815099135367397277104357581448544069125702917059820981602694940485552897106189398775102511885186503305163312031287871034904864724059408277883716306184332987673323217211817369221893051877300506046507589030294710673815006187722659542475675121949748512229402345811506630303692778093575004398986741957718996792013671287375461253283657286758749146134184928838309241916884209396418178203347591623859138117775264904928121447637275101303479025929942432268992929260096894950151943381851571246410569615606385484480929803660924228762902860241453198010023678861444671796561616772500585472029626239894564164138592834929096643300546578185051979720749997490694411655136001126795760633734816512388346225061487981208921237632200177804016277682911236837452980103281697353557297390776937136020134504543223384394287350516005241010132236050035714101682721177126263692135975041449963961293234026206757698542072387493758677735297874388777141263147671086447568642629257867208575004154410499332857959636202695392797471483099228935607203083366914824136959913193300905905264048609014129555486496624969403349730905513701488447847112523742788703448253623344197837883068124334895088398727596346997495542445594386558645060181962127721219534520154272926657645873791593315583416557833397708358731531433677362914135745233222213036553606487848566165240916893314215519125807442379692010957332858652892523975175075541512894670350251734253379157134570086451438986964556779583719011462221828554668477774565373711037568019633594468475797729995875308046224920875770409689567025510283663108370039189350961587181275229410305141616889284019554196115632313732467121859630050188604322363404995988160982123990188257092224583023285829201712795443194105075404642193773189456043458084394474241804815140226771601013054138527575606130015854862385072572724197331838149169142510129972828490788363637234084954796953328115423164360902949884736565302247341570127353487546210393004012856836674025780925008467026365896903393250811117496353401281112733742829547347295631123833691740292584990585769934591303743035018126799604756644940624535361912378086353325381117825661545252163076501763154627553451921034820385652005590253745740556283650435536715399492535426143703417321092006418353455754224616190499987265856014443478348171299723071872266697210445435999539874505688470317011067211620535963736426789035260735339532341114008293102207200224626364649947704392034398211538995547159588904949310839237635437449174302481970857447172220249290612919177836068477669606426933812767397959297405824348424912874106253621892749712120563411524940443277062036848158722945306746819702921718796815560574958655591251997157770359525568861788736137473759420933937660095040226010417821725909998325006784888672958209993066343921780796253240910178792634717005816144117570494356878110007144405687684559390427757122169562512047048760764322383320936175436147488869477717043719857371190404838644159256272896503899505406143360063312423895235129653149371742810316090555770332889431982448040708809153886576170369680979840610187945197643770875174222735595976441861737810504753981422792087439346151713490326224100777611473128513093804535414887639217911600713198328813735985584045587605371737443860073127321805361335202998084779292827254795049283115111578702911057880078449915743748336410292716474111292475791543499309462153119269223290596080200049878300608977234661656484570065538868839201480827876996769028424615850404591158788222621405313565955988093028222513843625995688050943518905003917848738742731197591353594742281735928070182603443944289274291769526671019402631883425938937004792726615899404257283385615807056317352491626920660411930335506943333807177474456312242732646789190036402069494265631128400284705881387119640061871070425370821938649564971295947500669649130525933896270769751385963345107268067341158503401136143013294033950283840295309293724995303633779296998882890506203297668098290430674133678837711412595426718438047918195963113732621183358436259692116545757779416221183296784771307820852215371812708702278295333136976544067570450575431423987406730298344865882947758797633954752693933229818807824848981758854642255342407879731277831029973385198420689531227181069538659141050102040911986216091059106967932072695882656604853808901379081088543881524565651599290296343100894157823744672519556468132372934915361015397972364945694667267809877362393510087347512701398652693609391935723209050356661930349671955974639801672208055760624054239497759665345598879187011513441006731960563774754871595480834966869680605907052646821717661907635916977675407079960534020835308545560208716452369671787035732484456141432485799105119725880430112704593902694677477885330560007055125189827936895040481390519524923828801769260883278893311697630391175913913974585073530420697107159873315379209575373155786540112332550226055647644950052895055828346985965424993169829586089581114097362253578773707591802715688295786308809943082622839687775489277884686821489859340537702105288756676197766452265361957479754526353401217515835599063133267584830591564331695853166254334033534306160039433435735697455511903105371516624775803325625790965483103310470426143119864090081195932705451194368100714714515982570633807183608602547329263630997433389399480127357274905862893669090377584354586916917954180221386521008233512889295290896948026502707147334508253620997013959110496858790789200174898212633437938241488008287656041835152802988347118206644950440384856073439165647527888800461495173446302449498830803857553271640970875953265364177921703795064247622576091935943135348108484923898489677144552572505299294488701364912386119798834712080454541797252958771273585627792356411091266214028038341812988471476073011321088206674632037381309171365651243430197931763368808547474612696752522454014030294250709906031732779817776358649920006726132809444360008755438421730143785732923145228900258752205371405137753022398534060436663678159312499133958038021962621905011072635098501685852321122167107487147631973893941348508412658542657570955421366111243230778288608555867318692031414853812847564232595643319006263352011790103632038617344600613339097439704913690678153050312307783851144538300552899299033132395694546554622516965671005075699290501941221956802446453794558304836428747862869273243982659793159086681916663265222536152296846422743416219413741823525392480598289682389584288863805029356068419640519341864299027243497944615506366280176275431837599259451085856615698946760402795563967917665079110063616630087727122638217455688938273673410185506532522000760771372235979990427486641753358014520882225470337100328941350630674633759029134036439489000293314217696050995411370384428155867490754848088834098531952539300709304025362500170503623757023864313402566345971515193655959319034278942146713159986096901611849285063851056456111603418262600273046014581258832988301761571543926673559398031889856662589701031580396530438664092703200911105706369784755408783782807328595601194797792173330685378705290950384390265608967288364548242450714842649121998606206770814499146185418503225476713355924406299316339450223701902128197400152627075262726683899168319589863440195942356372412254860815812351007799326616798982290093597447775823007248039999474729435246596394594931299294854813209039445901202765923754760214946993733556739411655045046303484840990008996974077853440215886026502832537219645626351652987568578387717424342561684068687052637257160175602391523299204109718423714243471439602909540878137375777632686809766093990103586946622473528683626647244282030062598758836203919613630161827445729294998312058509757136764820529620413010647082664802738422263847787347821648876050484206007215706041786818833955887718228002403923586464853873231928429516980070401544756442435757916812912987785498835585539032409899518357838483159818222628710641613643613834651313511873350513601000559387872411016740880715792102323081675357682923729486292814852120451639684214700809743610876567750010569458170000072842927030968329125265040356210082011435998293713668732294321138827836456198060981756866212608973725300204249854706090251302021449460574563117834163352044492079202813021583952438229116189703739789695315279820710734197940538633240113330740592019244254507919542595309577233734965993214655473782481823360857179542933682415300942310153869898802205836254899513607006589712786719016366176309619864438534327612069479632816438761820991152429432669440916818153664207360038975082502572039804548245862664556413348170371326415439584064686916803583188438339184995729624093463653466887433015773679296899248805082044840623344066825481160362931726029206898740093113360154863735934071758457578258644783394823235056530793876845434128805734637178900143208005518787416915578812782479867197418853931968395795708912772627995886877513575730360254379190934029101173727135596826106746006191121642107937075208947605683119955462107306974860367013427611669820652346827860779489475925772988436136915433047637851008296701771021248927353702381781711764704612972135250944359440667998288397044834137344859254085378511984352390890305430960615297576974015503740964573399615062468956661068898512694253950784038360647522031336123935917247745248004856086529563918013742250587233378368550648405131701497819578973864482720920695432061717765021777717455816001520301358177493477929726399546633814754688075096503137161377230892911603442950658333688490752022083800243156796308683468353070674264329980018691695019639968933263150645151230595256065845586536682583493940608203607875193064319583908228868824492556745472692961779282696044365835805784963927154203537155435714593060631187511329249804417271861824586101629912863347701151853502624814548524186803719020742774087064834188210744798417262015652138796349229800058918836252470351902601638397791846747034464399021498578265949652475169602466192805336156750612804967606834156834122269698533723393030023781137845707636463563729865410134545378552551388707169354263360677945606085912460025234321582597049224092547121271310476877893543101045744662584881107377676995196518000476657357766521122919598833660992989257893184136706687192246854816074892104721075981548401264940131260173432192456553139977909022438049518667416850002027662894245865681836889817049904126686167538169725376627054571598532845265911793329813097366222802283019358081632638207528775890434686726234144810989327464870949218334573543029519943127354094644261349281524562864601946272886158714722156031919884588880139549668210713945601654799611007768923531144431654959980619892985503017598549804917579606440510864335527381725685814041315282791205074335628236173402011441859531857517448123435487328384921046702672152661306570561496401970781043333219401266063388055334386355694368667755682301371257645999139987458525562735206716558762120906245874572522794453999877358473890618524788336221200475653384930278418297894911248840730735274018952458590315230042148103570918434584320086514546720450403983052130059201146722278766397408407952135339914729070927620078872552637722454637636196832611873617612004603462080669452510209227192558565275637478255373065402955147613710356180923195391828404383426502752566099073828507303078132521337354790837190983183584236057483401982286525816252933979964097227027449279968222139561366245814104901839535103483525524778174048148748003753502382206494853101955257603055747337569329995211783158258537993246583601801945184681800332883495870368692426469809778853223545509824440598265839589208073469556381504524414384234660170502059126941941118342046554417230805769764079651280032773418160007806704479067630955669191416477758617633028487373433819277900121640366215638993703040193687688932351892482166784591773890060077149826581125571454097244281720203834414109805551778836182244355560837797870357205438718593320532850740110940959793517804499395812258526116758521928762803245368460253087543066246889863260468226549074392084322850693216423020617523281026760291322445750159114701372254912455775897455696510778808179664037106209474398884691506171773361576459793792395671153019591483685696673172700460645570834365473771271951078464455581612919653870925235386513111012843331201621426377655811132508790210516991626792649260484364080577315270159252436057911695152185872228443200289212436015690728358983772834539917705115935849783304641243297593633067181011001157093885359322462357144238293748660724934879273204731857212335653053119810464406179257000493035163690885263471226973333674508019956270381693978638207322156457820160578318998667314340029870314198815215098021593773288342131620178991422192957978041735909751733808159565143284995384013413224153697366267373498987347072069332939528695980945643891052096366136780188328047398149463149351178547993676086178485485937446745238646056982417711734916184293176795245575027817282408032911155030985722571659984031738421737662969579655661414199179836934770235872773058507397021457547383595891092850587412172275036545441249129379062502172061610897425058521861266321798324435965273218148307920504447404437108080348502510888484260352802661252361785355700104812187430387261670357441169518376037043723869452073687740836447631293446301308533207174268533343473825425350644401775445166106043792564164088728118363472709219875666121104586283554160426883336934198672580819374356845368181576637496476805251657313972448788777441418603456310530154113359630378757170713936809612564719850280156146557491449204125347645458034274438180864907158551137721560480760389716283894312449021070412111085465092639753484841462853338501990974496566293922140198030318735203303940400314558737571574152844391027403809093319015637070117511915615230330515746505062113693924807748335660183355065169260844851937021230970313706229083846576671325940622986034926973342755641207556511211705969049213432528149600089515864933440758485684992474271519634393806153147444736813656587617821774176580281554253468414223567005140582841438168995425105686229247045339164718293024518405542185512444783764936910138247670723803329078541936070412335397618608059146100716457727440887928106649767243043444539606538025648370068232914936565995887877900718404551372147517766044975616875524998618109956056868761096047316782736490859724613496984598844760659257444845357470725497744894289323703135440083084223914988863548952186474715352243462773472082955504762619009880939708322061383133410381391820258057653314202581027617227906626685094201463725811935947275494097872085736658481644524846072358957682343616133106966941425660983254735677063055308996182814569164453594920237871084016343311610398308572287088640057474869537001401938287935306342510272051404986847169362568177003566292719092551179197719099336383020451898856382904124698399075704068860997694526336279891497589790254244261680618765940897138714191269389029645345991642893473491133281400532861780023473242119600597738633516876093122379181437802422601708864724918168325778969528570408400605332830819878712938978379415965270289283447033214427018397248869795728966140216021446500514798310378768399263380816525059268684208759804050539862771688778198319424985663411600896420848192067375073828482924694481119301222639903810640024052018687051918375716030517342464264646612669063705966964321412391921138774508098309762440132650371828250201021024803166785833062295733549191593540984823681520869160267252615787459241766353650209758226172332000835483793671134341006552687989377014390122892553522817072539008336744153951897697754778241356681957636195407899818611050911710788625496766730802500838065196520155273823271173022078739394205796104981072872018058560644660352837950361850010838146718740570893098097771050657265074766307024956570910970222590517022081442738214151024041309445770158066247620536203227641835389803828929424159330976004025345227385373893642420641851691148265565973537189126311866329465348743877827130073849598303168414767051489869711136249140896990858516298747891773893948401320416402024375806984842379032003083986088455633797506042057579383298398716573581428927048171164666720734146328325080035698258764144434249161623221182057269922821339470194767628331074076708212025894181059666233070497570033399959973184173621047198277682246389892131310194420820782126628962936038200729544079876873786705170102418934523498125601140288679988370594604565802814800782760106012447185278963980453447359688716954596880279209017084134999162919659267228526923605530107340489115113570948528913633714685637711565054433904925786114483433185200054229410681387427573682594340428805229957044385370939477338388442677565626537287825373629223778666008982088960373980413986601824343423800215451627815286922609847997360180312263030444454420477412152023494782303272303599437303251568797322544404113433565530495353963975632705038701078924724266427965952127983911322342701644158166551167084279589479617578184905997204827329885518573347376530922784971118659781035817367923145456868577622225270328759772374582320172510535704544253471836434656373832478741568331420488363638887350663030699128515927012452049145456938995437617851334048671012401874344848979622728976570570888117286770102191533691343013898701890783207159462619249868902823942444057764386269869368014032969754168756500438075074779121480248449979463917794646340505853475338296171882065664350588162073116876268864541322271772908997381191583743012975719200645410397222784782856655912498081691972006104674808692717625832908106419393050383442923168308907488801921719093074822489170523261441916770278133135683736515176081032504519034541320619083748104876893905479329676583873195804712287064027265510778912942235583196699427571113761504870181652441112539625774137923553828398996426627033514011882753814094519403480061830618450514096172282129131089900250196979926148794792332943558768786991557169891697711327924615282959223302956723956018259603202955304939379544491928396410154551421067500289292226087130926225364895761331908741174186865003932168326949319576498301402511172826609939469559919447729355316928897203424146106976840622126954033518634578119706367478802882803158768040286636700683485971230147393847435399214119969520865122023757393836460960369926971655422310633036964646516386351468363005041784171290374323752598852243027321965031908088249605983397694643630083689100331124970822534877081645017766888344599042153416115394196684706721690002745932117092697807315777181860249387156911612164089016028560778921769382099443579290759253468028046756566864179876869679144505693522568016589493280177600044494928741274741103323992922446858194953548910152097594688406127211333241424667988142862633865294623100089465773008945691436410025480338439349378096568533277017032988032556599600462909574417787643792376079815320809978772863008575783573716469534983906322162409342980952341447920426613106964178000426181406058505519831018078804053119360163225580338554497404439574609614807110527659265622238571597550503012321394145459833307376079673587548325094863209713981199703358242784251121481539126130656932546945080915748849130341403649247080817117720162481935786478858218175187155232264831265452564358795797800692421986995722418184677605192521363550126766016958410849852718235803390972515115756418516172463555495140003434196488595501525315808876445222003992723416481724644301051634651379808598655047005726669441712416087721535780565067902233694142246381461814965660623662085466618900146951250101329506362069262224970278821641741688453467867490076226351278447176905617842645678393755111032860678638379315715357850839754241970873072992210092278527654523231749863589482560156551501306857765859297453862534570410693534794395330736419070800393622737206063790272568101446147844221494070975893031392138699425300386550534900481893767576375521538073678653284912469353379710022080387922520156491069955285733571654191272038271182370381419820095427053184871222977828556325347489060879863293947228281641642104940283003862442045098256117318607807483566549764560235463202091905431025693814833175579394375562806770396153697376426619063556579959064008878062282412315329751393843172892616218635987370057896110446518159233122488520914490717269350518205728631866935391700860532006210421058573080803922676017499139874804196055478969484718581699629924795701256195865815214028441321435357747649207741375423548972104768494837007180584584613759910499955167732424033284235843684972946154871891640271965331657573937186862827636349951149790197787192790159627379488900657205443965642574306886948720430552913095167138163626373937363295800568865181162064131053357898106964389266021501169069603674020675886193732945715909263173570583251979882579710124521243110581756335043031738641811413363933090813855788963415082959684429933014895087078399066058713581542038848580542590383534852434459662675063307085839990399922606185439223996594238736244308842485715193708364419147219139809887791155193245433300515982967079998002531582182453481593968882319142325741387125955848961845313864577741186245644838161839288062178520741183633053085599367364356966493675483460423339011755780329407347878123355614215077154150844456025342704058006092932494237022017509976291769971252406383590972545185985900624458920548316291145593164066171558721454080582666618281498721670877304505070336544070431086572753008956485378501885987450586469038386957702537582931518183581690528260989519592480287308553762198153644034973653197933830361866185125450648814079902895689352454947508361372149741116655167654543804122681832448069267537432700195334656796431633778427230478233045479899041195857203810962107415216781217575159027776063979550688672749629017952467570708904875978929122476278005259292108022444989383079594609187990860971704656883051467358802229293510454106953824828050621962528512501005309351495472760540505647799641451152311849971674405832022862553766615644055779640213916434869767482525100455882032974908468997585608834626377483974149298230868979145385883647091089195328767263622907855402214832308892667416194101991811478313876210680085262519413498072546066703515216924771772817492746901608653097978858631403136167726250778623691000694417831201385296253225779315868301213460058399626268747214217530476964079703762288171360135704440526650276458641569408063845388842071682369958032558837576152131817778221800480674028014624696018926967516652775198691049983435964952617887731931354401420376003187862579032041943078560682353546246722607950095535022876142567121248737609629516735306664876195393787618181622953434675283589812892727625690962189693623922397866302905597493006586612835635918630379801240117990651493997511049122014026850618484072369936979219773555203976287830943408368004240231050407309770623578267344299396059094477231891253298626694473118187829450890037907980601338951422833563666976836567230740787468822395327584078401846767108574202472329628888738008492821634833500442818199504614292955519928529478173288921694915317405845793127029395549922248215360051643352012674326630270945102843692917656211173666641040344306228090492926618317703611520266267727333331974914281540213044542583436665056247654787136911769671651650121323196018550299868287052570138914731004395959285639379041086965993242261979583724481629213525221978101462512786088131643408573346459211720693902319058067875019325505949212771099311776312707945378690448498571378700700995976683234176442901330234140802196037756101222008795958137583917867416667602466853110670875843021817249079074613748346006392609414528839685639021756827818250092850401204537713400941372368015209223088874137680384956211108667126242738533699556233690954962327001369017079414873542133083555428895281587500299620160369612518603122938786442214310776096832432587767833465996195007674165432960696503703058676833437475277728784827173419863269310682277973953763185360549847011153783007947702951088482113865094821023538055800250498706415005285590016837398899403674479396059986384100234751212774813439655746081654617649030854185314823087331260276024412342627606173121549872296965281635743951831259781462005468737352245535705206775277599423515669802070814780094579777495764430306434723708681099283559497133203998215478107249360958844313189288905618442603153975410366947606897703952154455994669486858344656943739921708880127972069441844584954942726485889417402303407626874955918980737114700553654917865741429479447981894976207659981825562816926299653641699896666922870969499802677514644869867674878189502691053275595971475420761039138044373459889764886049365695653923622479564678796201450956971620662099816448479431229016320056238368458252219232771412748010326387236468310816143733562738057226505492827569615054928476876842811182164595013930139021041529624966761351945874049725170174574002441312338052542880270219156429394758408550041909365816573088460863582139850582992805867610191858924126947951969962839342442548400592457643851967465821509931601821583387204091170227709482345716837439458551812540986555046418978872429028747796213065802562225022069964053856679611745124562191773070081198550548494217347414699809482608324609249730997153918763072904025177988432812571543756244656865137030984891644062421058098824862636566412795708834713740564844467655399312253057723922242690260401775481817518266384971459115563664429454825683721769870612147617581313492647450994304259255651690579579785877872360446174499187531107703712626599459661593942594657417899327061540541572808921255655692847381030323763881131777264809156567508607642875033258074519344772069916310502856225680717020161591451269159032221853476763909461192111339111850593305733067368438943181513318870205267711321707911146169945960163930313074862745667688391559920845138164028669424634997023116910164593724754876018824597750933810102656738506706548850502540362095402840840285658631382759505041730430884111151863570909454040351370130820409116229531241329615427368867013310698160912885990657445064873558900037721229621256040786874301112877894303224976678321756345723029479502359777680176839912007754886440615105647715730323867232881783658458877790181531808466524574535418119742825191776021400463780113468506997880281939029750696052856926097740385473405774110975148759600853120994233451751950592043420425691214292626219425082510152016388763281821908934331892634016997038993196167705928274680799341777819241404895784643180636401201508997818718377607571224084155231187462202311142605195247170418351909807469212633583703908245950694633519294728632899121976187285558782100627067172904364836840774118518940573575511271236522004961193162186907081725235412914074188252463860572995454510391508658630715341239615921677516354770267581129835688445271856606084511860247309556314807248885415017861987034236376977300346189593946652524537580103318577053394375651299455821549055548023498092627037240763628748128489677468159311876315877795900160111041359174375310971871509088742174006217522586782354252561877331923052418854472033322431203737302810724767713597303442072478460864235134170683779341047892528548092656011411404518542643494850659446375055040408431594150586706683743230589028020298162956680458125198622912019629514559992713899804687391251660557188893752039450948938109458420937184856123554082313322720779941738814832553049154642828314982847677338177600818305048780165610732336200001807151351867052678518355724362967469960341679095880615628777938370268195414863943727109261694469427929628117853645936765849693993143216883222123337460897726396339430024064686430163082827867489384395081353606118797098450310753963019020132965435149236833623013107375320956781350298552972705692066431450192394395293389690667275132084915030511733933177808017540113999326740580660593744554453028978462207875130270623688335494490885454838673249602972857385085386008268466846935069581869410254047630372205584902485366044118352314777377852380928305890394658254556327173815071640041217630535455560900433627233106488379614495217996281119829230107590929631044644108233795188843368930609069680324806458359650324043789257198110965665563073512834404466952418604836138701870992028354730139465396024298368764572764621439400705099879625259485176296938836355111863552509159776938501144192186661580874538373540948885725309455826672776053264041187248453234812311725041104793837530827416243020905792811979415926974536266427108048023034799116866020011532891109946053063944758478393797802531633115512587156422812149058529880764739755207967800512233015077098504109471228839032886983398278808557143897004543359840872176886095265956376216703150399373470801993278963922016511789854972711815381403781762797376916813154100951498243877464509277896572918768815461472784679065022716380104762347606627887289417259689428822072532228133552028194146580211776581789288276979998803332828717726899840400930012752278431493131681332730452041490894174078476655566622473252817003698813458240759178690460515748398550703139604999449758199587513933828552849318615767852551352086203950654282280170627239388759365596995916714133960023288772865788016831852615117857369370814359964997703090658846011024503514077741061434592415151233564653054712503923190656835050135145132038632636101439871756435331241725485657924041365142319940074231479264555684823609226346425737336524543867137523250589523611694120250206054858876364584719470177762993023573247672557061290012933478562513367339596933414573739721654460089489471833611653093363149294902807248999258314784995287274291300028761420237018645108582739197272478723246981734096163012961071602436130211800402278467268547765358325291151621891509167763968512447760066951338546176118842432991145953900603164743385150649815171878828063523317052410273460092972050506826201214042009386049572425140740601141385108866314458944663638785192870542228761321645035888010765426702365498940637373256974103369566688418675760510536458933869217012463879298581269651297994364358329369493759075445283851073139885018922240948652320353090948126906524384248544654432798576912634573118098967871881738101919790973750545024385646463208021061421607113739829683005514438358598222933280525949809887113182898761151760575042503987242051294044018106835916382023042017722187888997882745552853652330964706643993930315886852877461133324284295572835757742525965237194065472778058112086533074867638680766999161873204837431206012750995590803067750282642742984881300524999801091567388822459228337400947576601531048497315815296646717433714844512190095112754643583149389558954078325067013553576496822655786231023012526804203294795042046393853279885525505481914323202694458555793518293815010115924746157578457312934854313272166959578796681453851270121684751210433379461552950120474450820153147168014986121123716696531706446357464965656623119531703762080442958532313646219512995694001508184777350964736849953034902763534554599910722331871980306130026262368898345043358975148477356297468259205303996706370424253766104590416980567961295550857760339668722130086076401196278279006085585375477977772968868277308375896181657642130472759127086802041282986941187221629775052792159810154678354264256575435508550413733792164055380747434035862386259767318696024449459904533775350396996079974796414939633076019099928584754818519103867569349046594558479911132712370640288541671314921255758239992913321230584452796963820854915203320254285957522893529727816726058447761578829470866046145585386252095080270981853109731503715046821663620677481245948368412098521819385058306795067025422667991326691520479055486281491462340499435297764543466221083932888506704369031703117502245384349325538710368245897523739514110698643019688717867572502210756151276807070217972353958926833933322420886811615004739613573571019870844278682197795931772917049020430313528297862116810103220698572639866631828347825794866966497468123698313452832312310410561409037393018719307065917860222711625199147236631054176283946802530273125802571845541659668187065190359167922348756441924893931623247766652176524847072350754841080910828143127295508822646808759531579408638145607569675120492577650113464204579024555127045333527059162158140493468738360710381903812268202945036508893424547649879716465349372220641852533954936443678889248657155273436099221026575072031476319940083469715335652244492860585782110378756815453440842622788645099666425280773390584105602760989577571016040723780394733769751716432300336778761815380513934068639459167964872782433945939855605035863592655579594194358604376709555083079887468999763373034091823908164757769018003954279575874988387485528606855578955710833216285785448149409005594128533238996789562863333786896140594882601841329364851446114157874477411966513710458871227946616494306422129856641786792623895025389975814904528066888544226313499636239035046482961289222097475958919238700684421488570083921688791965045158578338437794654870530315977626297792964367200185139892784949049339077531719787461852893720376230766130697924671695785698644593544461467529311336408007642404328044927794433697245123347504041156884371363301193208810251072961800861472440679918048617211569602540842407039694666750594197215575843903841372257812692642054540218841136909657652321370149468980775538509909251369508771159007275877844558092379404808367330244167499403946133982079179565417376370387238395191184444736854841088973232382750887888602638993339136051580914058656308742311809231066843363597894786791621248801566684618117592730561665232003277890554060122802118789036555664197956127108679456358575995983752237576706183345087217618125427173492256268726024258860694718954078670641393582334960046136947977223026600700589885562039838886103372543491103795169388910770837710187529241020258683465398490482319428395275765485837807854241213170303347529788129967477715011322132045551689473049085010986199321073567697424743866224826541079647503971509303198679455043707744068242269483151090123394878253566037328139629362225488932111435266220310670673280802612994585167265417279872818169024509829497762706829835092846939522333848429899741998551263126011932115842513024643369858428000878431004612675590395824004278154533895058955202291349798774571992528818849123887051897388346727084879754637068978809677871473113991714743867185743764003694192598979713862923022760539240953675013707865771486101294483305506622876088366604195092983469154065099765008412708204993267664751172091087021794910158331852843789705837175649698994216638712120955867735010284605138148450340281660491235587471056614493169380989125618387777498091249843814342459531687931452392422632422994449164508143862173707301512478076726693918027603659738100797839376029082137448790169848499430459211962016446929481567109500000655782237192378006991047592613811185942186054856674029858612458556427057429823175375909506506848081302098115478273556005553361887343146363975751719844110813396674765076404170144216469878090842608257556303204760010475109453683666204414261377429402182247113140840291500000436894129932793101684224767297148764923620164466409165390152863077369685144038920738504460641402865155776585660837764501552076889765725879414036850333399991750450420676512339759518297206489854647873289698914453079481939454699984808639806854914863076894070472554189463309895735275332919991836044209125473123636614674311050077125333557064710194779037268638567437848309456870976663646949169154488228567077618291904929237529465747139997085456983283716467865171107314515761278595350571295693723523121043480479811664404833123630671324370339158789299748900032963956393602946119619138198339416569141369772326267060510941996753699791702143102284363275647705335409144408044504799164532670867743722913817794632792428087144768710717359789524634626497412715871026784192962278377746064551596704984302352691609329330863896506009324787753283615076347592415714294039190170042681012357038960059700442160463196514815240829529698085284912325643711584746178627725462015028642130952716308872399610817756331398347670507288967509769229582631853458708846450725882349423178521657048524436329620685972259718976943874615161396162368601239159976916555580912132833389566614573199883914468231702129495747762591834902876438153353982068120559630687037314114014097003615785178556541447330835009592087053382532370734875044320849827290154662705777923408230788760710539765407733085188486082264716743332061264462077109024902498860829384239688276339439050455646853172859352324220098279030362133899698182140204975171963401129318449702355641291389455231252460603680572835079556685054928057627990718746741392307769474162402944510178493161270889930761770390224196089736078307525112243548176940293796254414048595047086487856963446231771821778192580087031097258674767091275615142921004278599991835664958133285562931888561029208179219789217126145971349836991894006300986516851816096985096315386514590876986182814451048878929475047260579688393064342485700141972341297082131121531665733863304883869401711800821870853680283712630522028697143597861115893500606440278838993436578745562487376669893252313043599925284344386191606522942558452652132506180124372327016857937600258384038692459705143373648705036127503307663008054188849294411683973166379540410471879065552879917942018998702116543050876050155111891685366950485118917355945956676671436027973127087295659228219431353120754266202342856617059098029781230915080464387701517291657764970189939198298591431825519964891384143160857246860663715385101070598094098177250149004018771374860316834333984477663352905431899141097394045542223113224606652248963653262026613897816971838700580390067146211749668898446072639644265046859973362971253587924912438217586411294187510896785942852889073016814849785608958888400292361735336415628092293688878166896580290218558350506874171579822649420482519820043352273763731304014630406296570937882031918189878625893969794650056845123359694024448824704402384121191807172679143045584940310071842329636731965330033963799352670221314184559726681302965436632525172681657307843529936118773491404955052077441408795034467084307398403112219458296542093987527653484295003947027577249164942333496268662350076415138582685167150597600458717673444305464953799440313238364675140165503386083368632105491992749502529395918106859085408326034076370809965705026607046492280912352891278122749332049704614112215177721557591096658124844571941877434931405822046090337062081716430541175480632512683699565095013013823754118871795112386664040525958448965293093564463766860345583333513583312632148601402284851779389314768584456468455543532239176426654752876066123998779109718027958293026280566977375080630430325582979801459848505844306409756744342764775709044254937289760500071684589804476879595195812643356784892408550703617551678194021565363607785309885266424324826157726839755338790927463733130611722399440708775331799684686717064500820968869722258366455098868365190602330661232475249997966024772659834966810653764940892960717741514597432061326854705904082080959092160846078837465324940047738564108042902222817310878331110522610131018000873069447018270738560821586831429747616637728128118549753810105507000448450060763421580438445280669243596114459595397855039414021270007415273132725082646011221830829902597990074740677817780194822566710174981777336600321202069120416305505495515094727001926875364329854455551848675829272803910513463380360753709111633789228841992287645527364252145055400344605255726675711027286528284356072733780457209620022168809431960858736407094620100899986960005321081363833615920862360205818879357394066311167427848881779398947535733852607794271965595251472067439871308509748549504389727840674272065389584676693083945895165911301094715971017955041200027817697094487676160301155104868369258683077871138732479069337468604566857851327623054323781910180506596060641429465788897386462159466210748923664758612216346923008670946695847884168199003305942009815712127376661192596620045815078315795003722719320686017860219601849838070093926516475662611738031327897780902673830764351019075572850445034315460598531820273896240292160314420618336821941697556746736940604273485071796950681103796382707839914378251307411084900575690118531378711424658265035108875382007159929042001409669437940143693002690869208152466254709871425925252591737423200946121636142765479307640750284683757930831058019284767522184883209541989847311482743780082945615233164054489228095435534388883186602117724992780227301490447229604749234383545741235194708368896548242204241888629952838610768636390218547889892181841648406202494134141892043255552721315698966147314059157787290756366972176240169315342835461596834695129489510264899961687772125867346027575764522785093368393527196828886675502913558233500214958180332937943378349045541158895934760638795077813637647045506023958052752295642905524821907248867675664614144912441635307624667690118144935583208599140240622037941005507179704010372086092013880884090803137364553217280622882113616129918970830604042970020157917154744720024824598576547824995831254745448258414766420279002597080727428279275408337183810328559541198103503924996746810423460286768013544215785023356910752412311800805198878519396336061205364922356076966726041601660379625549785960854445056110205999259926976534636282329347603392900036977499382491250579453845600010172035938484597638300905186443946301301250879426306903883110343095590113390054609941595902284551172407140432773669270083813160973720021863228318892923165539905080908595039225197339516880056193789961785731309842042218496011875179568931467283185217329912103951919351965660173195024208692563614407731656801148616507618663616096192534597510920366910935943771086210286808859356871772199674076688937702771897296947862156379378429493626028031590834236686167278586890074875202005317011061615175157462710737090452607203049940109741086453924168884772823712447873768356691187547893348477263535929064376010606928772229387113452504143083965368484401715944630673219937411092373951661649133727077651287562173001045142865094026212373229039931384763099548859576460310278209419101485659872565060584583623528219862861123258079022435330712697748824107068437328611016944449326747192565198651400815519998951692220891479149351260764205209261600092428706640469106452242890642107821114430573725362668329729417242450047279608034507138137677237158106369605066040492070050425718587192867981968169369895186164000915379401258474321576004701648193053811238665855691275931581414458416026091748705995859481554029486180680475597760818835134284533532857149847651494221705954659664701881793979696864474392173348617135565982843897859200441355963187332800275366656750603325869060365504832145777863588217706269355472971788580554221539561133981714516582400916709280027791298472867246242785972197774901540601748955845172023482555273321596702518857214058185143865891431799205979683351644286955289775455416901039988006482625977742390766165066481971716978350900302110137013027545037610577071166381442051795149946878368291474429234433480103259772990833334214708300025784276018515264563406094045689322690282708032834944416483824403994231479215485030739578941809296249536529418478990094638352149912637893400355188835791648624739962160918005466419476084406059912652060635622295027187028333558817874133488342843575479738430867037276550770842783855627534339926870634203313457341723688513959164052937090918967352032081322543226698655038131454524609776284308592580162005538792852319604308500458719938356933677659263196865834010426441873835721302376211456768851430961110862738519608078597465343720516950074535992123578685034640454586680671812512737312041004903658360783931749307215349419725450898849654764144633966297116214168850266936884134361164893484700220334203456835669214673487321396878210049100439710675669537823267266261723259649158458453572020713319641503420070959413216228082992470078852111375049152222155131182282024917557063403142085833897974864120724562066534631682556515408219265554371434643949348402412294434055146352300969587649659495975599242217779663766715738485318577205553911515759314378301197915011062145493309230188379056578287711077541954382713899848142948293362821495029274467488896261019915888762018905340843967434377003050006594035416438747429623986326047346126957072898668972609285471212949404939210797171366600297035734030727559932341065197898226517847789396881364422660408692329013716529361525354249361738864578354902924170094321964329758777783408227928605020994232173703103431043827740580058394906079581293563128015010594247283434857366645861179749691885830123998225006851032427720184183166518026435130773889988951520496403435604215101329191150794398648256216449166701429927651589544695984805625333867266087989001391814493608563823505611937225833415840768599440906510352199234144094493198883214683291609556324600102963762599541004650165554503155023957919561351816876545289257321153238260444128618899765476373345773892077801806011596634943152766574404505963831008349622756601952673247920954199283037306414063510848002765745227570262505860991035125661154041417684038348875879023208734779644232040516091703641150858646526511860844808473839127496156623933823924768311775155211904970696094785847022821247097331500186782971150190968899871900331478364069200897576901648347428473526589368357566531900535138235998716971669530704843613824027793259292432708388571495869253109642369906151398465283431239689834538064312601091199243140980682399703357997294116707306401459722998101402854737321193297956349110418015357009148605271582630126566238684964770521600069240372420193452925650730475374611191025198293777956303582753644057211792790924861356711076678237901739519546816065983630504148979940956528516036720835688575074888504014296884888917688013608175858764105984833257390053991564869794712211536546041312396374519751328264824256037553884399922132128000283446955185390140341755799121639096489696718314477361569773910902381465909219467093620994811755621220655525397642931634229206673454337983180399998364450093494953015743317451412343322828439576180795932988166369321138704600366008848942887669940313945530471452547959425213733525335030887544732835598355429873458668987097948978876213421897383491390619016741591296830591178843495280840381894528788522760934278565423622414627882758416959377332800212668266079031690111954215679475508889171893849499093952150770516593504734430665632942372025857587272948383883805581895183038613744762513670445517581035127005730580313379117982422212268315573901970393326199525870367020219061152289455786292636429703857700312771853187341621935794777070879527777566620785944824629438886434799762563934564143735865126380258147156862608910345681034505173308615040964570966932434230025300799912797358641231923575846662029389342037265548241257288856846363585687194950131053938478089883217375603174795416618222023328753536411333594965045328604508905763139818872253502804673340518678009064148958275064879992918509500360175369371278237024400462373845027860601420706881767482224797423527604284974658660633022571913563248722302652114401927885312183433928312324363160188387316517972641114955578094016539589250400566149880838725054717431571320336899521729395661406605149279537469211950584365444895000981005755390763765630521088330060259415909769047554242880978799267155507802305926253279900504597282584671134808898058031620245546201050976979859723052459652681472176670109421767409700352079025328497275992607541151824706490970936220957663354302387311284723918681308442236744616128149489708139923578246158238186720140552732821710028289986222654893293358777679171191720807917356086633110519728393829864024408462821674170471567431476784044702996030945865278356417851792691584295186506598437447448496852235391283675664469649103945268232875403445390686025797171203436755865218742330287432967513502141661801291780184501402393224712635633334516033129362280351719008293730664212320422587142759142089036798183701851979653090737499983277236382881350622209134409179852237324863083106812353181262510930445338572164935660668537569227325022706746452611060511200784158679647122830600066594183836575353026845143424953401173494139053211571767695885299471487663825962958341847582489262565981749341563691979789321244287603204077771244489800473469022404970651980640510521226975565531182689065482310044164993332545078882862282615339181491215629111674451263224994442344715530358929123242720118430925749943968357934907797175937407200464662820047583351711253834952832583538541470835321606735469278663359421381372207235748824621424235842295083488006376787411918284351908969406780224984949964735983308106084110070391235760711797390795978271775736846632136251235770440051453917462158481152559416765584052173368923881209388298847554789503811606197106762821909452238180246562852133517689539872588250226734838307566276437630313592773957796158869432886242910046197815426576473282427155005825830574720636116269340558202470701035412856649965100851091478382661119223339496627280585905722122330385335078094019528373198177786362760204493234284166471406175395768961489195869824698919025763517446403686802839892801996611611117174997367833245671050256907461453300259590370004623936461126198531516098800551733642939677535669155046503126157063252307431460046279091795381675585588269127318843560122980339061580481799476229087259917864387239848928949593808809414407173160858195387093559745653634547304333763150154181992394598148570163528917162834336144626112431059923375773706282484796592171609817343626115147360652686279204698155436914465331033572844964253954731376982371470653312813253208242691462637768829762917572090605290665396393423022162033495560278650286811466419446608448175065183034845106424204391223208846723625949230994431117480304159173170604864338718118858312169739289529360885177817737437455830826108742965123599162171298474019624813489097396372345215871678731024577341226580977349939359087964723065367868907842565817329742572109055040312798338416068371942835874926535830455403195264496705488180641291232518134557296362157736447120710423807551333607179308856256320458646066509992116837329476038062025645316057501017014647166025602445773042474893127875796887008604205990169865929553099547073460853314879676356233980823192962044399044586788596094478560517942784229536676078946351624923515739639556971962541436950588793233097055429196509518729249701356880484364668496510067836946504059695330691367621865484808236440026964562885986825861724807292508735867358543243235378745579914965858080487785188726037864415253012870519275713850531982265032245000758089007785039270316380005815002721346020557040028134110997491974602472426120854219116164558436827487605741467195343732870670017750735718379206587532266228783368215316562808282255342475618936515711827643804711890088629846162119404261044334262568674462043509077102610248874426357514644110821821262864399469034306472710521489137937458605982364975631473363102292640086340759874235844713381144960046048978065490567997737921677300812795688353194684746338577369219590597505849115334425056237395392906128363080754062746890967565493178931163350337509286273241129231013018069797420010120619668833122703208154327676186380486403555612542159662672397967071664782404631483743646266949438036141429971266249621266313284083562595431599742882930704281260075599001042011146146421823980926303360641416064066462867806736032297058272156867123005213412041940741538385905547416257859913559788803248901535253493085249940525428787339602970626709475033764621235318386103539129980981516204228244363559896769891814315729842001630983008122341397707000965904242393841797123187520834045233090858285684215321490937141426748778654375439831611602145079032317654401516243886436141915127936001605636048192304708164033264721382415655078480752907912196715109940264378838909311742100755483123191370464240812058813500990262164282934365211312784634754190569843403329795095586265716116084223721823044419815116616721554015168735107327965358652236786331142698004309318225355490795447044406255657384807884414204132960393555868719855494133392552231705165584109419724046442430290164819397390250196727162056320849116062296088048353250860999965808538854975380662453468943175099162978796869497261293807483040132387180175290419957044024239400200594266891968457976424894677513997375281250736850783177083775473973287517884686857426841363198096218104785309051874738190528252195548802139643819389067981860320385216938092442501280607866658864111071449414327898574069524740472086943672877796943369153739537426795207929764561470270176920220530748431202511934694006357341320359276066335942131631411342669774332626307813143853315758061057379629466963213897326477411827183596340491047255793494316467169299943178800653295425465050072220476743744285059872346794432408761748266801504145973092557892501978502542427635572373585051105107706991034025603558008977388910179418036341408645712979672681864548413018465235887770678027113220794881567931596141779628470091466939136885598151736159613501836743239095226393523302516858185169077086641530985118819524924071426883748163612421926074318979353314418692712577537650512340788081602524826113566966666606140157135368467981890427726463663103955108556193706972528370542484936320016560865813495905133333974501918293876697705430025351153971362983458717971371501174208741337605546676258654362776080831427373669768875245927598158303374623104271967809446682082245170658586268761569597518359237224682959303958577541835675588854022170008211247310240688604555303455919799439146774819904447384963130142342097455538231296127082680331314077777327763982002919906635365297258647980833289463793630175292612333611233350537603525161730184442768907525193222639654780476013022895141888398842068323015974982930529510713411243070004253999450741410798649779294931253523243129299115042212561438446414828724195396533906267957132470829655475366122489056573305531706677187996758847613295463112933413166033739031271084343632495043234833487887283620813833103097484406837808445228346420785313850954711702743136974499122830382999637375155171465221060304087326579653704695567386641080458354950899424991498340812047909581408861438715804267809782213148405347812967463418697322275762990981289181488742852306973942539066670545597507934597478695928446123387059503194493084528173290239696043904371650478320050792310973586236695708773305550301479960932977087671968251476779258287653183601323281784671166221272475999665487836593787105877782259985971474339029547199694741481783076250856184769486617542085713537776917921146914931174497819768983016407519968741134775817694525149175422318066869755855956025438418101101875212471795789276425434871899690910806444652544226898314654611743774365214478309806537343084690192677887395993138457180113711836517416057483314438493711775817864807430712903973791020740119488651105746749894606236010381456107281044885138615653135493622813793356968916352831347159970421138081641507051074533914650418986807922132358876790557785066687306916427088944962384397451537111955582925958936316101660934161811828147382166936755312039106635702832010084927001546493042776689771651917515669692724885499670873223142886967104618200424223722550729603595980350132089185282473427967535992199819024965154506475766026245046427448515936785878484589936281170244600138595450071559370477958432776841892704093096811231907974195904245375364076385114991427415754373452141766141192155356289567251432894264646332019747682488301923794902572989671642628139900319879167465588263938699089982832842489783922681587965319256501219331487250658169091664051212817263457856738252263701254415092316645800974169343854147139016425600800512206109941761635301216499355291127424043104777787038177210758869939497494618378183298695960985512404192289719345407703699486977890885587288087865537537256284640856093140261955021157739191960861788540597698995459674720480396657694469205528032634711200330424213448679518478725785550873426510644939990611605580311308281135059781103693459157036395733585384252305262643457724404485693361687862296327176845138683624883361310922055448162691521637833747795696217623463163966385893840110810892925830284292060122170959731370340357865717517797261432294444422320124044406896880722800922061357999142700923471262032773215428734693727098077775462106605695125492383333343334355159267907550169713248569228686391198293397770250580637469998753661787812833583566840806989382165254116318769614011602401757578009711936868203606388385821242283575767668306393610933899501291489174956515460840302402947096518638601977071787495840833686331109657938118780362772755025463513203150459240193294788538511642139331706567898550148846145150394401566190989430012832718571717477670339304845811235131236124595342905751586897909828137111724432234248263662120164832516429243147944121216253108760778927784133375542424457262822003008100801949971326243888121935318243705922289366548970792165973145205172160082121088897705938389495015792024032971464082838958574489584407558272289227506192401306642359804161857715883175801164677327211044229900047876616035989695821887910179083237911151553808473261793900366733915248673687118622354746486703313937628225948005028460695969110767437816953096025002074972744268824869890426947941719979584656673296798628129860635184500515490870530426559308027628199648268176490213076326031226662181274041844217992957159627990646779164350153713933748007032483259663750881144365252269510264763842600286326734552967056094660591168353539981901691840069477478754433029217469459255570878325756158116339529276636532131813783541347731854985601338734944371580267045408043946560793974974996632916944189552651593016862312171540044068944416450424583697864586426298948364580457322315849224036264581395080350795872733314837253055630029403682224085408791520643750169854648997550162460823599297990002964621459137148950791600171457060633205331142111493008980826020943952114916178614929640460474175227471788911855501669830309747972457304113180889666054524593174068279233242532005042345864369596388783006293494831069722573671149695540658328652487967922495750004844753820782923536095451018077910730561546913726033741118315467887660008674134229593391789388251526737274751313711183578647123569810630056322445812559740381767130926198003445647711170232525690479963419809406351513335873262532474658320077521248665047061939670387046711493853927524038735980913338933642308091362864528202052986793642270707575506133511165363665456819584184868463424323806798296861502135507632388148728614243978913178748141270565081529348526944427786879113591639034592111883824067783961997445021977294690011159641770708813825632621211384280388568215332107739199524632265287990201879759178783199535656586084331342873963473097379586856912249544064191587928858274925539433073859349692531066112186272617652199655100016571863097769798053343095863855969015774338345222690005167456501585790582279560091460640061731037836971816548389739851294622742091842572809724508204858597938988877998400938271261578778957809427608971138641442626593943333043420924938877803796292750252392392282225374601501167886002510872030301589094494096992158281107870986430325225172871329192533762802973811812347479230194932361223832264974039273229468903125301872892206928871572748801903245309427664299063439402913229868930335503246395247690996883411118976391217197232311645227756401594954953759462085078197758117105138718247209636202032590371353281089840549925560779480671672472352269595013622537584423883086334371554332541980956302052520162384498058762623540353446636676279864691724444596967811446447571802390750166320061943641812446095963645863762571855653448535512097434785220546997658829750964184829625733489418440187753310507264685711103283569963833211158754044721808923542580268540492635916262561893835931556505109799673045342680411414570893069264522993948187697828319448801317856464415010648460795903709399676306683467730331034365671227530708475613813463011694605156140008737264447583571397508170413620862549974741671914550496045577075736602631580419153986695968613655726098201283078784851639635832384009128691585763323042859839349350725427851874925447592452875921394260144958821185092504907706425990482578568021229454123029197887473854441493840438361309641554705932673592931114264953658801388527115912738331534671462392456931401586517700314079777289985910004107966537954980870307115858815055360959234758325005371833917184865313663654567089811468520414151119423900758044026828995447209873472680794684069062063423187889936774873329150201799985982131076258438892735366410011871567601081702119714325902204121905073235802079574734109824141489867473863391483872273983925058496525490498404401661233194498856318986078769862961610384107533805724422410065983731090367245336232127546411203865763994697620904961709968081961592870038334916618962202711940818710237980437915682148233034331823743718204113814083294426073095940145528208956758260336778878667152931694283808579362655753849808639118029596997167352701076645540567354351929241553925775373623119494136180286986852095595018371674324772586265909788971398536106852924341215666780081375680359222964969601667932573313077245919426323373735712767750147048498640164953372627113593357455183724696842009202810679756876434124243646524105211110841575275652783233826655828070613504888658871199973052016181995985779056261913393056664478416895896264241507752337732260524760685593880951344823187192372887775131090386044907127658474007780782520983848084183148110108700022382124230637608269810697774784575968448963467835130916015412725836995598853818248420592722381697889780200462119019017759839004077961801373733795172703826478377804223421526838453407208539460875357977765115860348853723550572044597690400551623922538139827606928357478975152082229235580320686315888541667691433144819610645136621994141494118262624143167737446727939791810829432187050549208117025162185330499910705696713199337430768591602928651049262423127749090957360897631455360885253261872474025480173547928172015441797809147834891945503863940152748735692101514142024470724359241718552131213237249969388353588538213607965729969871049143735102720088080646835293995988852516643060345296913503845348424740373562771034157939806996720452227580737106741866129201372804552799804408774558465224810064759584766324535925743467864017094283107584341044099184012150139417506047052461779701797063487748302444363252097262755022106928847780535267192688393269238307753671757471917257558145618572289783160178030447874128788540498563487986684111772448833791507057032672246461570101457604163953095139551739838988994233076769096530548164022071192889530215219888458876147646410101799322716441597386744765021636172653734797868253102618203170417388393279727302259992913315805888414851050531057900499733524404779068029134963585796956550017169893234026125675586740230422153937734562192966943760993258675212251065930956226622340880861978089129319320585400748431554046138169521921818274720532197289160753935273419103998868233993959428345117837404427203603482936377808303127985883112126223795959263827736998260546638392490009073263528331153848360515287399442108936714238936061477888544377263326525719347946841414683959688791317016103801599140796495310420537692535248038936220763785980010215367518390415104251757531699391100448086473353474007994730877183247933724315394896820379008732350417037343599562345554797623354694045886657918882725637000433716344977981734167336109369903607223335406986929247557389133540587658989052596399112853449095232741942301170889080270769654998325863858291980058535500141489553251821036266303108275918103489276141900990565209942363693644465204485595380719406498310770931722070181221040199698368972419293256417368598812486420964497176085840751030070117661908118019229303381393411913669013814304084975388612762827867886711581881594788999594527596494679616279254912018187097149500420253504899076028399200012333713210883850258498494697810894458054093618662274488873150693395923987004751336903523383361075427397350834524195385245060644007137584609707606585586304980276213054229683850530020153163491269993155575387840123868000758069547368159442876541027482169770530093723788436028153149046707978347436299941440502109241784837409416656170166739942043708671675885325356224471301352487671584094784541481521171304295608421621099731242686493233694484174246417678629698804285263228832458405660528511557159551008828343202163966930395420509587525521836609194570954483887877940565387062005358639152212088563841489645455976492385777438874849103868485504025409208225810016105775832097511094497994411665809368850273952564578267475410369775942889125491661448079525122147036327934102137216668600606643390595105392604520765505763595402869425131008575259361808886702629270076730206457668708260543868816554870142233341488076301939376704341316877553514176404597607699676005405585515827956575441271780385039246629221478464533095594283715495841435130892374710960184324733189072813528024746480033605694417903766456460946496500717487139196367072950594967858056763202027184394138663767271200016224866674924875824171965796806737946411878791993733244612363629727686817416747099284927094406038484655395218044041580028022088200539763747672463193758491146843288963648058159221896169639441248102044581695537669664478104037038769187724928108472723648545842050334048489093141565066234458651329132547807772736255487204623814675686404839458974412689546103500766353688424907816742927069129272421665182451313236244769866172186079927602722680834276762783514645551707728194319907832668238780368543828844751986256796347547281742277680650090915620724873584795816979881694273132607197944835484233846758143492158437573618767134979262664204355905802884721304156324496415297208497475878159322356473822802386908880933466550888140722125306380781422379813047460601974325515379098521858914746264738943090345557129170129850326636004310134208829621708172279724866599173329784372136019563440250477376671661228513673050883990725309941153738244573519669232810497467513176906836314706894226587148517912175702238853333105751971103325167058926344767392880116605523742612378775705139445620312802880891562224638189802318095248319889088906334841066497758638689911019170457538109145423239652459456496356030329279017387103997167286810137295273638045730341056665446168723699617308354727359608765050735971795979258539443843617165314675146888022563942353322568033801266659920996921193530045300588951349940086514870789095248537207519418660557574017107921069404630839454096922025693224060941965993869403390642681987360009346313753331189161084455459439178388085804186087657405602028979227908719819486280867351176421327501884618497808311561911210141422127247017263000084548157206061246303862440279276508286059177610433789997960722077583928214632383339453497664001308947818349468665372108199968896695603401173393512684700708301848593584930581906207659452052177415551410323959329394767857607087375452758624896776614642872782109392046213089411236073806520256892876738759573935626282838851371884500932177354371310715126127735216231813217518071991490495772307527748188703715436700340761090088488032008829623215423392247309429232049191807894862838823225054229267991517429443894069536387796195333339174568544082411014152398635983233987394080832180975512427667798262403799855497723555703984138780832256425846043032675949392444702437080083601471170502348051248236051772860109676265988441162809567073844657669361360664231706006005953431975510869767974730552526406465027394010594631657382837102870643929744949989269175926683747268182626676265824137943929210728626858582504240344243252465003921482041336353835316416577903795433817737433542064395633325778062499707926539984623341749434740046889568431669185497153614677689724196504068756310220933330272645994515753761505164908853362668404538940376416214893433973014202666256525486780725162580116298579727783387622768399286483332686559350468571229625248135028585688527859133777429536578702492200362143040479664227623340541967756308003450262030213310578946561361008912755261362179125754951779139568686646576057126521312648401893655307490370643447104360617535178967257322861530481641900053563515733995400000572092190132932970047286929743367265505971422936164121481501627446855268146195153648587189552024356211373510143745524693703949645578887984732075243008769056261946946251979502711382380238423393349679845861580652726263964658292064277395161858606697857463824106745879269065132851796372394442505790025893130815153967307263859672160062530744735280317276184159709797306857609533857242758119560632846087040285248846816669336489642085192529701447945913572551809942389487236156415100297864265799201796163567403263695914083420027792287617176229063924583012210506364745568447049043042256035028714792640966747285388454085329439863549517386449063889980461000084669843567735854300195583967863403039255403229272234672890898896079650456264745745894061005305744626191931648416787196477493496271496321572836528509325735220171830006918871902248455168601578954344496779363433650663554969406562440754151761919479674666165613618809741411525717245145276163341721682907848979082026445131760720584660567498603155656072241996373166465261611945070758923149393341036614336671430198122544957306983387801599047647312737507861289851751231443248331848222708993715001260437047748037415253390334917324708898366878897203417155740709962421022698428289974616009835172125297486645656076127874644668571868579294981898461110548785288365980817360305149068123964777875193458717550078817960571990464992227140380379237978671577440938279651613385285781235050820510142497627944249862019642328163124463070887235243382876895175778305965132023264569579142129713232636841674203816514357980955389322045814973318144761278585723941548614808514737012582344344481124211056634991403882794929879561502652442477856919434009143741795208806224797036897668665562809881173279322575825574425390077844308644527290735243968041712823374606237654253561155755562791914894506717943043605553007149265346407998162831021731370689605043634117855706398683537308753165642852222663192998092833674795041958833482024397268435791934360150817253993376153701559067717134525535959286486629888979042847321969528744268210894653792633459859937123662079043218448164378741085047260117889830252237531797550591577026475754626170480376552951215156203646314970070975249434405160600613393857894138035022906931327716880842117749548599866045686230266493493240976136032755704622326239679005076799034197671943426640737840248940440349986979489636105478730804847807001749122288373449635872560862451974990287221758227587734423324212037916125128482513948846153245021938932074780083198585016669355734354355626903045927922414215083958526425807503261620970910786305473716481014709885229782335859879156334106378287761844807729536039285196489044131552519705891182859196460567175434624919233189700354281454171395260274133057336734653062492950665374546612282657627761012072904452674897300006350495966553975818392446763146981104068459091303199163505506614766826794758090017425908343107446601952045302990816128927214245811814666815323577812575385814286486998384759287578862990306822358743498319831479201868263196210733594401889474454822441361815847107501502451751485979521792476300354795338711413576582035297205230575710523431215970864560118135004748813576760658087485331183869147061747813501225958617583502334188813409377691492145183466430821188608808833647483675549081137668434531605047677698543257769483402032778093305918621016540140744481817118027451057149425597107341756214263694242186800249732210692171635583397656874605277420149013889469558792513350539962570589239892791063640328916040590246836710858780557818374738042304289376836837080701334002019065144726895749056717041382464503353244213156902856362074019472582346972063499231704379405628219021112579375483978325964564880803189412793251831189747305597814015638049097673113814043620883002115887866622030137979855490722462424618485094484380959712495914702426197869521189986949248089128968786860448276869716484655602232190525894602568926696699774580946853965957883888500111532341640056099714366706610524518160689832006426736585437894122838125266758869445842690284889101415123111551914368890206700992485744006092843078428501068223704541918793256921323398139770852708667728952575991174626881537817177401645483952635691705032371307451378697716956543006030969803743048521823150345881539553246533868295680641182344832895681942609778410682480222216027179009814119559511269081786094266622749075184105905763782226752973913178430225160980389635189588340798355960752798980254499504868329583203839491582483343391185579418661417655957081429516250874058477299634225058907571840348535022499942881166724782848069390148299617621818312288187113886810395674031363277058771686525045489576657819554213540532905511856142318871230404895516727836204570772807173762945682829737774884274704066500485863407539588148006127127378620411853487887711928490299024340858142009182886482748829820017306647421676162169904658514957748386135769352027135915625815877789465307955842758468245430688769133898275360488370268914623385536391062089934144867253779529231350704825725088991954666123122288435322765003981742140210431681702113332060034845432137080629755360976567898405367108920452863411126958283587006032253321929559325944217192696745499605321734813175171531937119214136861634793412610047253246345470499612905507684448565216966441361321006666282930579085215309296280743193389102701054400817969470942754227330392618180407182789518867524450249186942131398283667264377017534483319494977956130180759497299646498400055283329133152950660905953803422622690508048433952121663490150236948754738608510994748486601431450695088412138911418971417890576315690503966037584133018868795603347675931226525201051368242053588120883478227286615530057931926996876995935262837943763333677353012894590351641424878924622542074567538038465067991175001672665376965259061441200953669727914936903606827013372087048644925154151749139791194634338157259437570394167826334767703184483592754526264402970522378232276201112612471098524098699957856504812493368320437661534504726979936368118120599593636683539648693146115097378897722460760483674910395450355870693409424250174756340421120189254346882252470340668817332627878768334545753891740901005179040539675464707955256551600593010844442173376062933583295416045008062909519756445510212260006992892224951035600482889790756673900334644743697999034633412441125660577471781352873656879591605461859547219388403596756443652547887859502521598802359416185201258373439220724423742208495776728271509236755180452803527539287564758225705698701511743896349817552185435264443042289420422493376484672880293983110023152538143430303191609927995439195135721210867582407943480078852176999750842391268167968334407631598702162888213666477795997227810892179284571366248548865525560886284342618520552240295646739683185158881402723219318105966098615150577828172500922687944754027103106236539144109700311719674187506293240009876148969100737438223704049347391695026378582782711248278786770545121751579182967932061218897252758960527636265369146611201474037271250060013111880948188284743869989925227366846535015437984956004402190508407918086744416800344850799304012326426343708484097389553456985130128045432876308713545287228578757590280495103136469605753563804111301213794565799241794751776786888401028155695645294049354043269501248432496650647203842570066976164607692503792366918774056209896181449452646024297226818423127716702945504127981035362763340677894798437130376237695274223194161639505886464210451633824452148036153695544794959341655071441348064168944129053034023144012595685856579320096078922797612826092160040746086216669949406823439324017482081654541900697247965272561561905160981098236283508175177798912612999859836020541624610371205999737795158003082969277083136922765317699988325943175919840397041735435477141609621667774324250128139664882886683849631122614646797382362736391310829427205958581201890728853238902148013054141648792283568016730964983431305417455662641477903487000264644261081168921847899623471301519864099746163732295050073550684733160642748208226345977273399581123013555932040656199532127940728566261528809463683982026900903697603807774001204286977450567635277507097269530085428626564832549704210166956570584001038227839011584861362365732397911427212193376095971263352798403395909998109219389970483727550626392919465350285306715866426076751577791742727719177965489851741137382809848161230465376262264660224512169254496378527154283767727059637716350927189418575035059169323841803001243919948135548034250828203607811763312967634904661646754634294199058239775655494520394164979320473328013133429522240274853899666696207333236151060220353574998264862512790409484805809024391204909609545896940510951038844644122804508856624245096994910493250797125160098204531189254177898514292264357359004867439937845935635965056107047396283924606010019931887021019521862952568969774161951935805445887612031814083923920740654605768004421071700718040521917118795538684189208769503858866087278470346175696824236799567483600494597153680904315179748487770391435823568163406498515256562833733159833677130539695815379079893418153614041189062982291931069391615032048255187773515326735162468265952870817333703009376666165930781049476385803538289824865341729105934467098554568901189202976851154128244936012676958836888445937498203874286721782865871446589983372693336563124784458441285914924320280243745988156417152620358037588109086346915768122322354854552033404696945419423048342030356156720352182290770513090276889431002230878959169919328781085373957711399543325168242653730650172032952378809143998323880254557104592157662659655365423960958310073019305972559799207214355298189554080149224113308345791477283208217911314414076176467085645817481961905982254886877449628882108168347550212637932666827337437810623360826738534103893392009671459062747436561606463958818466930042149478098742695167805593463999038617081153559598083195871911945365942760255076259070163705905750752951449925542430438556964452129649004822642130523476913117371264091928315467058678723508094523167714244748595074752551837278828205410593981851509279238882895752769325046311731435093804119181798334987340498093799840810290895041159872867011220765972691512776721721773446517353127279925118284742519896858043279560232843777277835304063251689969546785116114954140389362445377336647907976932355538480766565448586003340619431646835427321772088810221249416756537359016464794570528093303229515879692002612537867110495106737453116088054635574810391026728547799505926149608004596348333286148382616075906624935495744966816396654416880600093107955453286303522665257151210170980004928268332243419072681675998261505280906285211860823373533258603719990790773298045904156091824072801205289034338118878426724805453397597682933322316878930053950099640564031778807277685328528533219964351433412563818020679951916659937963463266062635392569512467029500190971566550571108693015130408606049049755934794425390779984657690249247770058134759321668034917722563045728622222521408695543059822566124475959168100031507126416945517272957858001248564565095675802639659061290363790039612183120795268695980588120181624249457831071792400161759186072808424183338434193796308047860790013971654984091986057257790643251896422478898725845717445588511097489760305763458055482017570633505837553125837884630329770380081368608988913967391710877638278235597470971381031376879810197815376218562987030971915415869951326228401767424701527576417585216850577891984412543339107960336674238870850630841044707895940598099644261470603342684296719943732194156694946687953420888940068297427007509328943307490203876405137970248126374114255897479132424611646265004335979149580642778157766493338462624344185821448327517454022675139280829219857962812255894718586897435215199461720796637564337623893711012233174343420494476096578384731379382343112051479840897307594024999270532039238587727926060156871246695422344953301689043653468091072759331639686724864362067314583465816104093386208187933141905561144077652015460677825440113132437999562442556584390809175672217777100028896241510341429925416580549095502043905674168705412525829501646912298908096062421197893507130366203691781438058316708727720697204174163917529870120890767785017495432489281797078484121223563915711250400590319717704117253398718337759888533256475920137807904289339096722969630086786980646741281593840313967667839402242627507768997018650245655474360873969339835867025359378721487226493990580258787604547964704716738186265609643311856766774473180021640425433895198097013688282639611156182357937226369557582124506707179097460321363322536402336768168848664102892670039760255345539483719111326849451772104382649941272932954110955623673304285572243113173159236528614063433913528070561685759200176177458329275326260029473352678469687456830503300540146643927027426500554348103465356830964690153642959370729008436192067209024060327036791158192055133989065557530571341634516684408893569081980658552378929680008106247368218222277935945794303954674963048719041749054529272446042263978202961731286549714245025582038875600052602586021964389825094289455761537549324336233282570347966263511147482949362396242754597580190347833634922225102184680866350042612095206877905762448960053334962445056133655707642337964725773744093342481387129737311235582788745715779902561261679520332759669794972263459091188764651218376950498932482182290409394662255818273765307959260422276587036366495819400796147433690282541056910495710918918585809160641522444060283390366206513093456133176868442621006601118854396682094227368888723785984341564008566923894501649553198924268159684808390986668691887400922559305811328052464402862985904180705697301210247295855723251091689760043483097269970491695838331886777043506667575846517375920706912398141214973126043919896100010283435534089186065516129061926974200626993109392280730964207092172647454875542474919715130495064569369613486000759592873207847817135742214567096696987995339647526167707395222867754428274951354287480147541342393928281747589778348373512888291038336244521751301445398144133509530514432417765291390774488964987946504929866666582096847405775799827992530441101388953447401848146230210822039912131418366591011434222992454082244733833803605291690441976006718014415734085293469711873924599847307179003957169264302682528025013960080675854855830408114806843360217532792019805843789285700667490707994047613042619323656716363203292615844252872805127607558810110606042324141283088915299625122173059511527072117395326208778294097886797171768912335493091326285277332045759843705655383660825970126712163115851654878315000688029173825986420475433594719794119165567337606214994157751183981954398279085122858432896552562762947876354883917642090539659081005212637863017962647704832962438188693170637309209104048809478569268633936113668901841583159313219409301160630986845056787089860938265022648363376548485467429584032908407047810459142632501585851579168263230437787334691282863724610560250423199300655119940724173973802378889091373514136786391648794736215216321548094823067034412790083524940063297354400063036016415061183355368783837289406553243033630254014263512255738811816692152202297774237214671415850753049190897409522285623035666381841012519215498489624879103234824595264851440100821878030263680411396956468890252261119665949571748246523680838374168124204530901719605187956607863414091745354533153392562298062334326675078641950210431812217489164280770737157590675053565599347400772219886207601625747659972801866501062012288586961993019046695156102765266116832213727368658702645778695940379645799142289088640812773437980455095345723071670434806155641235793550160808224399570281741599259595593195550320477776062602870470266934671479960353241497293238347095020243502917329743239403462872118900792281156885279913814465938100886763721327019910618983630207057519778097044131416416082510876051191897949729559556312784286368600332675886565522396327671640372398369546236120707948809413321215666917533123612090831501697588788469290078010580579218218034449504896619173009852698374091971739618025992554560293734903631296304998661208948073058427726455212184268943437992343539056171531251776915677114663031383623424705354792616392526562892534999829878522565531594806316828321957005364747286061765494310386952534317859372358002266593621541576639618340279505659854601693441647856538710951835461076457944534410690932482391358918828529899834867925459499556262926370464106729712345652122748491506476113933563514178813024868251145431370181361864885948721344212156774836985122587541211698087026943423778884986011089599087159143221154115920150888726611536604359746960435897683068369626454486270743787601034100234646589807691185491850422597731739904896008606345978817190598168064454680799073683733851051712745829396923091644300921937043557499923556235693460759997053008239155741198377597436340312557179971191873990394032236191459255588021419305518648248486645866817783545896827514678347582967539151312323142461312264260868845365901983879088769839844086048775295916029872715279112984221744527616371724203628656334719919421063856652939059104779124918571893649010278657007554340563328587646280534242673926914321349492058330202976263304985870056797208056754911613391933509861348394302357885304459255529878605919299225702053491739633599209396137872262014197404340329613207644809935727279068440377756520945704358617559376094647919375673415388035077131593611857752625116000871192664397283668879890587227916057178260874268134024713414680187006098497231922239869445655198770457653661338836895737870480717930574808464225031917222713270931689484846219076877990752216406856160660278190421472645525240388456520092327688486388111815586949824359751613724626424050885693705509294000500061425836701406482536806383713860859347956952169841348759954241943468933746104250538024240604494425702923412727292657513529577962950446237016010435045085201527879927802754204794873244397249878371997773145726136761647552398564567546724727026051934988466129162541859486192667467622539505689641900876220500081604088882412230303757374725240467776924352650647639704885976590895250798093815619700570633169180454633337283392090748531545877994421234557337737423257894597535121313379699617236378893230681331667697987268067836977010687808603321103679809352887929379166804605450579258347036466977495915443579816292268132974776947787128555611740573446256980429601855068026747872487479086311161871809342375353846681947319054678442280670793343007157754922465891230354896249944865089281116110299256096948228598551476159670589324219261137281946617258751104512941717110263548767584049039253268245754273989596844224917799928117878661010197966104586007911567815268757245800448046774499137388072406155445767567398514272473157340671709843721425659719715653664566575550359637617381169797305988114200664597982888955218812972673452973734024450447774307880525869827369425464160676302843007668439579568944853414434394344553454097191222717686723170595418382975393374148979778379961587679059104830452820248479221242874198345205165478124681084943143526787560691014356525230739874972941603206222764463338616978166147219131309372833649647576672662354162975199176873917249362048840242322174156072445539622052034061555053448543083344857216819102599001080704501255003985677102015248536935110096502201812840497977681999835901440965648937305081183339256535184804804510905779981007177250813348968914202496610902130368996141882754393670647223428318726332385102143011800914063529690284181108139091434275013106155670804427194637199969378133805957794181947037166677951155460485262193829680595655736393401578781497559167905683786043062284922442398739745574563229382784227862177949758338659301237587362890091883798435841721688819285055462435098087463923610790882070913214313032049738501531775822500717541666376390038757720440528540694462474296565698882799941481802962476127995075448729130012100042493741643044537253066958517552236999475369431723711478855856758484721996632866242664172163861559879363600243319427267307307978245000486755386657687687958825982852614046517143130314709268459261023201735366464622316832944996983816220532373453452239621950552834440951399885434038960156530223530908789565319732969009288407645611144203312162670674407221876938838052416185649982199004423694763910468536038801126687046078393218721658870665569622060724435520751163819556012729318499718281494029343180495621161965071445451270347362256967986277464273758351332338029846041073955676842111092188096966226978927922765322458820790255562550528173235288957657856661808571908817152440595630041032742668861037225034220215216230222600453646373450468008609758842807407116319320120347912964059115982744361896569790077661239339913668935886418640300732358862543943573586745939955710003986848267654888310106802853558757091905729183992600052465236401107950601881030672045970288311457610342809210797573343125367115403669686121797777119225805952088074928343210260651595020062801427636715045513350186604694099736981185027352035410443728737508589323020780833154050538013387634540926302096766860009011168308180744967498933879782921085883635722759638396220117386857231460851888412835651677839769079133125408851122844772842559911159198231671696048886486474996298126966131146575578751626786666296152468421789049316229645858532121669845984271848195939466812813629196575809175135443722910334878650594292216112699765373940930860387770014379229234967564621237788260566513540072650348231348095053487380411928611553959671202220342102961009284983089686006553571714345300886382979759580609952325727600022800386778745764730023302349224873595408158876499937548129712269310951437545800110616875139404978150676103998887554717181960400827610458586886944513297124793061758765972178358805696672670048709055214741653327044433808342269136275135859483887006803063718267919866472517155491400843406794417784249465344722494380121459136598552334392365301782607660312951961389353698373373689026311269664189360169625243156651326717554281751851280636389770838657953112963294450002254974463520987812628720707488259123056765754253039562813941980129491543888967021184193894516567534286332254837806712046396416611713923468924441589992995883988236464121533579721056219548472741375932323186954549487965101734721478342719483546315594092990200880870292818184988300281939958376234863387284549925428912543799787653106128223575926533490409499708317180277159097597524490408291306563931139753608122606065491190946920160808333618519812156516799999517524346859997788095475777630132725367550382268584098967683767827507964929265702009304674589584361416176579683647968412536230193420371380611376107145274975233749767666203274112791642597345269976586206718911677988461808265215319505963893062759282053759017353623305370017678517033918549446587505175244623942117726160503737805670758458249783208786763914958759623277828285349057843135216715993320616742586060072640479472005679264008126553503756939051319739829409110171794053464083499516559081409181554666858475698407579409242220844362412644070880929513622041842877877898525806492555144942352257417596065567629323854206871798127856071920733593355981264443737641912408024076729724865032012558494695478457394709598612159172693014483396530665263386978585322456404705784536855776282275579348579610039371150615987235990478620887720605402669593873139583860648536672039341811916728532398234706901851744267273185833057972460456051194451095638116471783218091472006812320802313904247691772343939710092927659646857889576874554707386316685141010195620726491657668266820405043192511517013454849423380560745690079554448780906714396992755137853194233546305326184679922571965624460829449810513127169023375313159445203397169645533602841557718119835503473713091085856907895831284656087862997809478295838736409658874694526802486067262278752842237195081247027868627079397624521294774341163656678099464369529098826017148122224117788169374409461132505118731164913966905576128485404739272119860052566424079602585505559206611426023669404086781196010869797154655989961812729147158537381777388848389108093432007008169587545513034603985998929242770468787752235026862491105838197144457191538501926212022974933561083889718495122178575656333337988214022833487999012317053370690900449324659006016668531910242720955910906847384166429406955474565070550083264516184353825186482368081358511528699920354489388440259268763089450075144048743372590851109082480515380354929472314355803806352706726030423640418539110820173270653785595392876633993530837349347707365033272574371541853054882447285615060463317491857208496790956086271678586836650668926984422545010632327140837959357316469418813394240178622586035757593348296446338092708231645148398341341061979868336385955857122394583940054623442724743471322117620044183582458439754702074812309825730488641812859361288100571410197465876727792044054075218172772419810732425996886689919373096993814638061953331940419624240532436036103443491614481410208319583087840556235860287029230485628764797446560178744297979047032546062371427721250483330071652817267169594814223775394099714187525515395394452241243985380153696967391290348921181595335454258801859168787615647799041444977019008947745795884754441527251033096908174192339119763093435614382698528538891923224859358069358793685403941700249903618617295138503450979043013462150039902895910778721452967386129128737568835358144496628965934935869227211543808371717583169208150224327080528818142026564557427070534743450471643651871460662941423964918143649953195739809897282642972637649204422043868397229201720180558018217523023198701174322648851911818486244860835059938633615966615449278132302625882099255782296583856873965481767557602268477492418406945000880351064735520704454292172865208130248256134003559105559126472813335404529336347127276247494630424370839928845900700960802015411551905186101619944896034447218574768058354573701838419287376241552845236288978777807852337056576664485016931093332897795737124727907636090005594090731715874995996852938524105203204465049718894008353092828744969964668679654925474452487951713951830510277435377107581712055687191412605169294127578596628445333780201709660537058444367244019717927691952654364533902302716753284711091820348428669329733912950067949424106601782744093234989117037553716003410698058263829853594254570652692962728023815864951115321691363420384320463478999702528239498225200916769204067066853455185760557630994462937698399618978800915453495427335874998635051307797041491221945409575943580293103691913328093712901959806950541168153142282290750196339589321536972907184112019134570739465712860874569672848813403762022482224239396394306867152889717404417357771140076161693526963344947526243739678122087947222046414004573914831449497806401551564598357039938674155365016831156556228657434272539251911762710625705630556229732702035094492549637884703081930544181902651995842724486461216833041359133079436082750157897756102781586356682448484242020814855788964667802852711307885514119513490802653348008584419100753846189242016890598899117067364590622591138836755039534634332041837946334945303189463643994552076421828883468674232605285851533551606853970124317041305584170783742946790011246437817776986980906611285789019183170458533281454106843942649217057453242356222720739438740042449221950919592659182142313547204149261648340165691332747024696637199086095644014339556514885119370904697249498626469490976625366754466023208843464962623192695363778017677449746711936930594875601937357758682700391353568787453060540074584338949487819565687286709645929862821116544795579299277926138556293642614700405086534132007747477039288459871868087530941182862308711926581842755764543688572109959086294090021703788947139908914122132483907376876642432891769921670461693381033820999316052796303290588162255493311619900881414883820773098276742952242612538577074223628497244920915114716704226143776717009661127837320927081413849701911682058599374815274089192756535237627091743215480258186705682836013050200922605963826670747518444100429797765269757394593727360595397599576161811610812489003445443454373750265873792629347099859759977448275211279173445713532009848643008690495961159949521258472979601640157411085597009072754537463910934552296584263662320349877312144400788708623928843082493403708760183182499230633885893164674070430843220330822336021014318182347684016584292526900618390433723802168099084780079132804926674842056089600225965571975000352470783883707452466788676708018731970417947133992217561663678004076116040835689266646733849255089485353406981703708549104695628117025769361561379233013983178446141962594577711426279299989786239970769563096150691750032889430520249836907505841350966444531872201027087093365910268217622316510127218587121543500556980489883223407324209827381455695652237078336564019360462578748279205705219738039895072563763311465203036643440202092311220310262804158389837679629282718275078428602352996540508747225814291877111006952662695167750194229260828878401388853935260117855193044270694480863592700571850881862823192604733450837979378582814066282428474907082659270263692703231836929521996765289088885013215493043940175093329027957205562982544223534328379554159634548573918748976313063746129323400147630315812823483093954607760668295233755918671777779698990894508076477608576017559592715700084404947869378607112169387643373538293046199698303120201885917730718356527230300494257070096991452007652282195779441991084995895398366816968037938013419513502601801014091753402723673639926750477030338375675505713211507208019185992217900561761143219314511469130892294212210164298718770099224336187347900243260434058898980922702234746245004439597907885770185248283231784746165320020032414319330425433674232574644680378144378099282745936815850180962840513724106447630532628757753292099689624986161708389455795760713697060855232355640260461543943691907840091607968664466107164933567830833874992055987478541385254524018087358753164153267980471248788692548505238313336905493499438322758922425327671654746660362778926430299523290610662007663537602997967939201236816538665505454256431417987594809135990762263879990710811954230798514684952652858214407349138034888381569761468711976098261148495544593983038347047867518396105211107064680257037358483696486355714991600321960857128678008423154468384507011861859490186388336909073572908861574373050738742015456504450227782684983491770654442004767651694567567307866095240349981878506644267490688603826901527753856671395772833423602049582541826566989427999882096595284623233685216536718372486319774403758220169289633108606994333198300113802361409262967870964433937128498625861329100967080610980175987920614509457406274122579684264176772777418104625785571529766735872194016629363202541671319839237886671437085252514824016494919213027624177380966785579852679663592378346687927718628838616617464994015695488226392062801360432709018610059788123896534615441126812540468963285696642325816717036638880469731224685466369174308569919500449763731359472741255673949727657433408260218959460301800352723382713745259959452385573308739064347425450837423343000407248514366888985873343468972361061654559897791609952876340084934364412902035415387688918753560341306168731198956691364702022353545784088418026036090250193960102810602600524908925707773689213636499267952903460134248169143866574110346350931420346876390059371893456973851069837624468539041533480688243812737505115565733882396057356224311071607755184375242685523483302414349450973317673253526519649627459108345679657725401431617306791998047099946921849910304404264237432136809393895938728448593712156149052189573527264354500880950936508671833507963654389660275093126448802950799742853629103834963363951672112752204802926567779785032940522456134157714929571162010834165189472223396862288270799504275289986369087921579829827261466131771838525310175332882616665684953969917851253354980208586454392230028371466711593087243383825727511353117613480062705148476625693746769721591417082960733072528772902751105242172945468899013943041298665810697989026736008266709224213453579107435311050856975213560676595184017517632236022031021846829950683201574576045268127210038271519644293127023085248070116575425034585094002570086559501534117769053406995950319974534418743568314911299776025119734829229760802312853996901134774259914005687544985213678858778040326308448200166840270828290434612886093630743377434354315760469064100468884817204205342490858325493526887086261779720451353640229439084991925542461404431006773839831314949004955406880426351511402141645528040233872454234067596184356682273340556489945009695477309612729789763821447609225071227336055574729435356855867796588336825732216642539828322259812336907708403640549201016650563281695370537166148427829157523294866202354233521889351594091764006129930137078879323774751747254317189421015011383373320324683922272505237602509626021662502766082332388536037996590294056371491560665864040619109036126872477206749199410756290250446594070406417600088722715985717684809024535578185813374864471816758110353060637585149335521919324643877702860448533644085760624748512388420017580542110180418193175214463691428125289592549342986569174974751617471525686988732693374161480250142917178152372412246981911914561195090783792368201982648853069405182281576283419605333386021967395424103111686760577248382012404539652675606495872404845787689976042903024499918387872427067829734870158133618858553713401036647888034090003769068704768171471898291173602264865139622089361618462635945552937528363602768163102552124634453489886442491342207668301691944390431659856501092629357832421506288279062396378187490152652890094180947156344185952123529391771996529700012121589606981907856696200400344912667216495932694774789124503382836976303849821113291216760201640021575558690383100718958010792556053712889700087652647072091700171104100947770775600980699188749275634030948072299514810060357878816355634491598759974105223200256632019188835779724742221766196849848659922899689427154887588082398986995831276524735690735210367983474224419989991525040233450440836732707424588850649110243764122709165515780660547280525263544001411846843513480033300366670381406777855183556564693712159181786912696644790181419413549452667484361592245055734588634318241551725555944875081679328891691006144343681720746794005128386455271200581488214569885470571703970919170162793310456937246077191597241068850337696682066011861495912086599849406772105323742733867239642451044983766996013137275950071837539713505947193652823304543995434403622226907334351894083990247534625988302814451841289653034034499612815699155684773806799690592760303654778581020113905228749149825054320341539157576158134764943437747879811888698652419030742411712981790448782390803868646971727834568153595031965335002316989259894174982118027681433680895670067606836680083344338144589006857612301665589782142586675515516600661090748710390959124575116444665795370780919980224193615114470499269553464425960117392252712051496304740994957617601890540717736427466411784647658440790935863373042431763546119896645872292000527875923339437821952980046505931037999704130126402719356014848185925100298539924957387572189689395147677374299294007449118328658104134827942041747965887288560215610218815398634342597115369445387571857458116026060575974700023696700205474551143037966230746164282532871023795470897734460698241940185510049111420205303655649847265021346693321350584645267501051759055448032273481256238838763546367787581210135788007884641009050147839335605317435705212540986588293819449622590228237003557530870846912517016567528432358524789183143784570367961609765184982823764006173641420211788865416922734395707225302839348623795852196232332502453127660171205048507798742037049120838275527639548553223976583405688749184040779394090896206588658489527413162290437013501558144725053274824269805125980298445067240078993767550557904425979546697122216783071900855392582080833826784470939183092871120722465003815769699460125328231625516966071407611999658222929312606905381122992996539378352428615815600608104815404958767324325715260736667367612848855157830615373191658090048395921018455815642187539446083499986499885175203101301538906925933564089061701922223426097841911595450690721150859918017626353693046434131874444450839363840381907957399139489833103456311252215783744768402055056656040114591187173497080565689938462344046355973117323616075343287278900836406318979867590871170196631842676711589719165326414938369816778356668007164030304766236504833158001349721430262971917053465506135556069268572832463937063813616956128399776816856047369411264931711367317793668903766685517535977625791125434093875799943617875522335654482371141608090966917587500634824520768407530105394926083600696214731228779239691076657611349882371042995327787235604914024109582713252979521091670231325871127309828500960910139058745187648446350011742024733584767456129186900879825598048067994792800489671636375865145338385970314553111290226730789086118160756363667665712092363399179055018659595991856372499298020708841303153563373817296159099329572273879875140377128768526419847020609436627316568082084929981273645011450197150907354559070958262093882115889023426587085392648038869182300756044897208698354307469607982532446116588251261537432531832465773165442973421465692353067662620312359244430257755142796582383101344781316877276111493713421189267555923004450719205255280838423086622902473210155421230272789482063978242628419460494963228500246999379084112124510638213747347859876865423465219460637439302968202748775215596872319069650984235920363279467443758731283193926866985639066149176443079660968980221712258924067429197200893658531166333787101377701487454501855536923345014957925222110021525876240934123566951239366241034501686547808032830820817879931787885011596052609760994632301152916350970313226774847442280478300056723682855655123227800400631336805371489611254812007735060334354524255035573606239109691937160050980686806967442595418617601259481651367148276734461530229222199462173289480619318375548820010474040212936156558500066812453666298202067421937958265349562765099493777313142516302325899957487116764103218165410296274886664409754534703167903929723007792774476768175961886319841419170759964205166975626483982288786840446552265168534927975598412720706393913087894514904110087885956227722643707954318024961365706517390848472101198339868450455330159596858248450906608765214453937777821618528879249790492257359191665146098875221625842577260284640759004278486144566333224114002494575251388423800868830366699120947208621476986429389461211591734432820011606863870667312685941773970396467267554542862433504709839233450683194497917786990602327848276687647052130988684495537611463860406768226650047566553262903792968032511175836880019974822378326940869137891598773254415355610983181740833447275716610659830951141363430164174224352961841079165853008143382704781216052979174583856491200934065694900172816492029878861041731436963367626358092601966159217675132491984813107048871248222933729459916559657904986899951159499224686933296640958543898981664583687833983277888490292721086902812453417974853464485151282102269743297193607552511643805500625455862015384337108026303565765685616033768361777633018597900156449055665067995647219913797605751151666397950003561666469314602657196583326338265125422772877130922812704849111329493212131036131106427631750030832339942392503919799375018527487909785820780385219654156531779370911938279176725437208026855561308288165064159689363156164036434426863337981348179521481264472691417115685122619953408771659472619085383429687717811171335478736045438751595725723049752565505759628874933807755411324994745564418867149143308693334509933744058053681606161171660508701687692964903233341339898299861880605703722073244881280914914952545046717647551640353751039555475389483658064326287299701846204295105453820465876875360265741567146046760153611176907760205225083686606322190523621998532271643514760298874368222597088383155828755804022713916066451020716542542344873881105759766104041490158206581735534502578630957530494935025277793081920369990005855231377865720443654512492399164634984654461049002277902165358495552460304499172373120626910337090380919953746940385048134442032805652488217093784681167355537412451637658344229055401514497103392182446815906265719761882975686810627726901421084247338881952847753076753862732361562542226765202890852271454016313718093370373340832476711288770303976362391389603510877123055776809055337779354045839130475657883857007171897405985105680710863355504056754311896783324794675128971352467343151125202890578166692251002715225460328800580768234760046819139667004185679816589142324407466883799464636778232576664301540063510887566408837839601449345707168623035510477912653032975442913775649513839368206987930516863776451693254861541802299970020343656407565361260636905052043903633989841238852951059877921200598345650199912492626752538617281087591920165057396434920075920632990892035274346724439396799449696651300994259893631159808828319038415750199712000038651350226817715902609894198341703396111956236383614908058407263054205309646271407447178844015610683694995142588020822715541313474933489630711170324114381677048774122417601802317719770569197568898980130085043955654328710711069287788655150901162773160696475825114986373096903734369272286934516184356653641347989157762653723505905671443420947972072508712354458148023802707434285795037377752045946650306478005553846093987675359248419038788540861536242235842504118410357385155761124043085420555430444137910402346934148910996896652569024438711848239885871395079009406504975279723980179223441862407157132693777652355619335370241510231986089942075317905041039383191173585100869815392003430841766015072411443381883545339264300237313173589557068379014582201647939660089708387945487126855497744886931091233032486049438654021962042674701502584988361593777483144151856357178386385164927651387419713232729762582940973831152943890104587270762874417726569348654910622130350977795100776651433801763876095897354549675682928607379317132063078031806662731590159293421505151817676257873557027880887749701245216341298562442803236573478171488802127168982712107967816922037222864959661121000058521752425508933400575719576369226501422812243525215923722286166871807271233659088900165775888288253661307392622712208551041157438486506810478034044382837622123495709841125576933524027947915249750251387993996069048205334440766820688869522897254572114108146663696359942595583466571179078345328829755432029894609958452596857034178205387135518909563649732186222569925711520894526394112884851266689851357432228875502167605842728700536569756694582759567624053802059166335558365689914125614070147080561077241823968205719289725944078168096319724859150806030192713369618237130979728514536594448043065434566346631705087355923726577642163013795264448517485802593418652157801607409479870941559150668422208856899165404907611916092858956022877349943724196125987854682472649839911938440553908968093000873062068832775631291394279660602562453107145511418989131127410605530485057498488753216327869212858913658910857090778277091808442299968032204495625033889588404806148070017256182856103212198088834827853024681835765136507554623286645897554122115696739515419943318753157882508659177839504367411003686797650672970432975216216441111592480791680925752892643191523937548460675861938418046568153587687627618604460786571729294636961953674581357978593117987783173836672203301906170410621190170034714543222350767044319355007809632286376091962183976763038882858411212587590226775285290622726566884035099473559991726032718104979267653776286691759871653623796680864302551902596717272224927962751997663513786392290476336197757678321006295945265465285604373352319822769506687004198543787450057843080458785575346084345953956487824949249580118773172413619621284505337561968333349682054584173723035056385564759075486556874787456762617534860132749454038894005031763031755069548064472102213152371465584049496617034374373535936405389131494750606306845497049438458178472304631720888144173485662622764840289595689130069434406512857635491098592068171082004312474179344072752101280107188475169378830651840187775013512312658555988713583047151782385718707890848268109899427427158494380840352566377245405075692049138932284458456137284286955390689914686912332784608573932184477565230201866800225776008806932923920655424765601917312126477568184897879981489478732620221583598886122229876828846380908879488268374943915902955723787805434125219271956620686274087319281684775233233502066617981478150148322110792194237572263641442892165238806617889147456701087772900026025730930540820665396987947586890158688567976396473296498268394410613352991006672795581444560347009744953873284267120129670808085125730977001947355840319812135141338520023952872329363372295589441170128275548124582309889622505620553289519886932386130642056655848149188875961808523802568633488596854937955611921420460082791172578657068814882345336583418139880798944422038900696650699176460399927763694185922788845034152538321555908051276391574029607963566332492721740625101958152210371858336753580972080299524697309402094340383825933642341761841550767609815738247477218378979104606078965618597040242928131444544502148261216853084027030449097282398569495089748254580910874279294863218335936650454180351598036532425370353239268456633703796881729311565274132092921325396376233746935392085014341792489103394432189709972381509786734166092903791008799011569876188404596628850040516591141253021848253159459965715715047967477719096095339260451307508479837210664682811984343677618710958081685447475937976602990440283865500919054905652623587834669958855109802644149193109557895313767956813181810696986008553922179224558575989575625028675809937258088770103897878486060312758695951565671409983892027119000821009178220784199000005275607326104789932347697532831383252358175825683296563425746902380287834415201763833126870360386066052075914529722394973053139930280251661569129578754687277432790289666463937561232558184315073992246572367541401710672322333420215807939106615320156247317528775125500354310008438033292362760739576431520023631938106925691102650732886228664328887113140511685019691957006700627418066732969189520247446718046889749135396764489520231786214839604303286087945833368814291863703818355774129770698598092913942500695967487783539702374678574002337417638364626297991620240764390193692475990528431184692804764412963787086807107292602462871578399660682076802639068575622002602769302993288595712177490426999285118768270582648303601628620049261320094232281424791029163867378769700761635748512609191942557281234458632455895979981886399214390157544881395950619147049568438727496550711124980951759748466716953883478349636002670317810403909375065980258162938003728105112776897039809827352552513283136150028319415399922015870145226293827511464966976038158185943127034623506743203560063833820345795015498947202444373236900892464199768230099239022565094842757020871599430682795002975641860112015100269381010181418690227842316182111628698221898736634472702501026366372777875579005705455431954082627695403130932764103649554233333526638626777007552929682451467993573405954640716387246406727485542025104311185851536129859468511458206254230707629764036636528605228407801461468904346502959068189153147589021243066990088284661844416105929737987720297355080317590375352733358257234362775878730305746391519699804582457372384169953630512519044112277641821652683306103433627468764324112204012916661435696625527000165322174230658332718787626565390717947295756047477541296481911819500536908008020469864159528122713280333357262401624113029877161655184306277173907671040683678635399443085315549414050626156422668470275256774498822437742994129511947354652585731199405731659342393857206764118731953238362936799538939896111101850919417361321179215901453184923873744434553855212778399117866059891550925572923395343841485892913643088714467345782502208462001425899613247390930894171205586206804461048242484266401612499591233299315237969955395583956396293860087871847803449563760134854241474802133114542546266014802531685268562866229448362375522735253362747767403154960894545541248802232569774340622990433668222340966453416708281049996618922336714712791607246584474036629631838414369122486487595404676315667209774878167777520674236473635204571437399806401718177080051359741880267392095692350551635401661399268680990084022584185117386421290668993144070860595644801899039200868800326236301430107108636593314791920920939258020448965088851472993396640997589513079283758411385260048887110197389207558423276667046027741672084869499980414823308974676597867467696148280493414710715387966516213181903590785232707027515497728716114311106986590034538298979467320012902344406755517937221422372021582255203901595392383229959255416425700595635908836632750365814535199319649733418372003349466519567028991173949956609868608624451580606637092347518850506066215517184476533125625752581716842666316713116047213950032333088759071359828920627607706287240567588278753646732238675412079172917031746427574622045089001726354514788746753105361499454663022365609579482239342188002829652233325173660911245971912658553281123396840324393095885065541259607454314146435775729423945908603913490732119567912099291901261792422851117141440986220519225264236604559797254523500873832543415305980418564147935039369154977688943751046444969044391423329313698403000983732029136732659455566409185078715168273615571434738998584980191042210497295029097032677689052808196542368413423996195987445821723356133016632326952495783636310838294692376971973771888984010062387348441417833489173512491029522577026609380644035361766982977436594368651953047113445923200682723049070124858399144260112724218616224430483912720767621834447548522797895948038876529574879101089495068013550148860607794629563626458348667709276617647048295690163823346283440869918253510150748037514080947109462668730211755174017280215829555375838810825740018981378479223634217310341227690177749275253749908546959286048686075088596072686319312229274785693742629229360742921140584378136899158300841933597692248817142947298469512072728705785906123103230084326761777356091638592795178591149076498797293918374336199473690784008272975897901942815994732514346517380192360087759116725766423579490231995113421199220635495876262684581040361621075407990345417538773974566733243362285854170877977088038683926170315894162462534269362906255733964923975374498543404348333096655894220923280585896298442983498169225377980394969096145321468821427684643403641522213826313304958358562939951293489308189627438675915586691189852301964018551774656063476751999322380388854656017746398362145091889701631154796947155753026194908367383087624054942078838596986954963876806378237539768924052331036670018675827891713157546189386603739559148273737086709023706180546356270534640001820475960056332115555842818890377318036460210027957744757507347912457646065773157930889600100586172878150111786321082593278226128892605892366504117505500259016863088074312818040409118933949154216200879477713190958510294520404779008275445219354437866367743183614726815724754765962898221565938805798698264765168134560988230688102518277761442714578383374053823376668225478348847301790736686892069863486322242208262517956210090746264648439413348927557927555303308688749140088627814544389612422115299772791697675678419503622568091931238463157335750239045385927973236091370841979085547119400490059216795034119178645189448381464367148675505508443470092515978569048776801105244934429345734864210248070810746587641906965859706947755629290482983888050604307047673563681666535932710818405276476884728650545563764047965540779338197369852959546878511308814374512016394950218683576787946506052260578753199674858101190860285995237325308297360999496787556314015131550046360418959954570633532361925855563339210849836932347145173955112036877933307096045136851850150517786893137218359859935481870273726531806201050010255282900956227025316939389628236370396046507855507397086306001562326273590390763688090940879907735347627858673287478391074292001488900241201600014005869599424904572646045482838862772771543543408861097693527050615464200938981137039658102674906545138537734462795989122154380651544445927746728269781426824407974268880332609388324744964159352263307254512202098891796906050522140135607547933150096359416954453357111434550774695821384428233535233403296661164665396591043165892678910240788572020490255150256686978545496520434789693710735448913800698802914010338051490308059449339181910270057414911886045413682720983751621302643457439568174270633822918618905908636730739020955458346504755884736558587175939112516745843879732817863658159204127241530121727572777739879870218822683596935736002294471411556179231156627647501652802864914165031111395257987667351526977361018080092954586731380824822015794753090519393732093441725862909306237266951269529360694003618839588260935060141911720994210257724876310860892918279244830979376197047204726172826521323711714978915185478534524546691867549149571930704315077676541470856367834035474301793484379786950745768176136549862498807239367741298824419227209065917663540511214075751315555004060772703309911736909055572356433313443726714921174905394832237094158322240595933567696648061307887606828003975242595882859040244091824287316705322911955557677321241557767324072839218544593516741877111161901507137540123034456152257190101265271940734501640485405200368747872197665706965395519135130362071471867953607747524756009869016924961156396782971961773691736460879498284639546454094072579973392110869022267568801714996232569356595423464464878363183443596749096563051443373851386725384609522749763905515621320487534349946866932668648766726847271245246382157673481972935706241381282391818989555617746815700896658785395180234865795251926781484734459069591139990992513862572048368997959005642543220626170048187303791230780125538100954916162130264938816781249713403702640158625438145645930896182717134359073391860688690611699724019851458234853307481938510786130930032962779989583261954409602259088652802444147654582094124892885094789989161256565536297867226996954878204271999036160277022859735102465495761090848623918985383866660182715821987141000511708099863878589613677250668368728654667621162473529285258667814833028622081558392015550917527991328928002207888302445554013702695976022057209758956092156483229799383851190117675862604521758811052958278372530169520798907597423686290810812945484448616046103251209996975974204951851339240766418203939127518866084324442910183863188803340454079500877863887289031178245628214156076080533956101152714618727340392005498026956530372596180030507824279706988193874363016220535840042123553578570765437643393238607868831919237582941536581372308367362933065422598781435802318026130244019488396377668605776858440385611672222385645160980531407409482293888713532040959908267635932446723817893847151865407376941512501198245936165844558115867092320705011109990969094030226418583594938203974632078049656720076459641943890862666836927920189803251069290979529056119173872616115333403137830331159516401520472513360083330713464339816192007517123336860969107712040599253352897163833441086660177943694545719144659889322947849602155747378422758906428582870272261642782367014618392659794738183341822275693760426684380969722908829779930576855208535130612286719390316371639004197550606005311711938002237094757298924737451671104916343754552284762011125478143228897846945671932110334908053552892071479542420305185698969941393989440532777669816915461919825785794134557707474460533796803381977257155153062328493550893406337139383566283362837400494831116254933226515304790914784808632449426720552090416572016555442056035020318797484794975777743317128305422049955914996330185088427157482021502286752288745159612453741467268579455936389974196229072412292635500085361763996053714508563155755340704211237217667008886842064105299371970817222893023349050847079745063610662921103572855223554759175572833326628527319047781160616543182797918664492593951849506955585129617410843602859056839087960697452654239810260980952344184591541170716045789644793615817142380651177155123704071597925383078557872847528771491815290186510506861804879638366131085343663040689847517305350422544062358184422843246843829914071677420986094943750722364702471135515425752592545833602015637363936595703472242356956021013405736935354174228332338235546174680766636939092119696754334100634812795757358035747913897752715921970879213843778099179265071807012581254004558667084749824713791398999860919568575583325935745003377699080247712611966140034923390114806583065204228376623376427074539559894345857819485352631380381210619828343041106681012863392287974065445696182905872620824218193222023737475966662588420119284280591517757128491619198156309284743978881186839477812972519729061858001623861258359709982417951872457432470825784993971762797208268342710861948010906903866864287322871645776113941166593039603908113007745854688918705817442199662121733643624066187024688006949699744796442013975370282903266193776579623989167646916926692819623963922996548213307153447405054723735050784588407173039794417281720240499254361220726309234328331524933649478378879459098384896826268090495315300357125059342862504878053512132328698201479500328808430202661857366961368180545376236951849587601750021188995594021733663225904420194095204026447052775852284297515117312632935327299370520556412491064153235212144741001796983724187499189571265072802810596175969173833066007410587014878826515462110813266247399986682160533615836488886358557155013057705525265240919188653308679235957070253388667452918605497876256895027730681301513432394052005556181960417319967129764392280321450656636810041397971972294231200324331647174995379863010664587193544182936010366199480128537882361813840675752598925292482280282501980624362727706151550251795802511272249609761790659572378214000416988519328421253945536282984839255285000690320868457891055293409061687909140461163224048210170828634979110093849900973096590178662276892143443991030642277004530689662455837679566540494891129350752097172181711294795896590783194489866827464158397478186489978353829911562157822911639547639665478119683216712239190141045520994053630660619418984204473568521508082036793230788521226566311848868476319441685324395501608250498914625087471825432218255126095844680299784158381494996571493241473497029017821282813505350427313764741324373106583527571715035560439482126253859677752378692316090961239546591282888092052703180908885151910380256093668377052243202711487054395040399270522792149251204903804274467680876043668914230147855652899502500847514911320209250434676714341350355644849261538362694400321957234083552923162595669975913032637434383990130887441609991229062819400062282715951491781091922711653640694784273837868169427609970605154779884403739383989836334553453787473510649606719317006500215088641204379605776453075190054793550690220446372012858742006607101183449734021646119814178737098734161106942126907836255281737903134596553119536958821907387431047616181545623566939691926694215871791852117189466282805229534134459131167711308740470262073382259597677551047034615318475175878381922458966595282226528282060678033198066973153983798584426750972989159922459385342211921740715815356786467040944514573541161361447257846857751315346485495120901334361865314799587482835734701999713900624639013525655789519317320848578284514068595447875834511980126426491902423192233717473334172814257201638462008822804372487342199416850920080800162503849975915317336501394174769675929568874521060496663331346895995881408969354292732190655020359812233700170776800555384669517334615571142676681344322046304893264337963077282726898061477209556591432723137095526514592855517648206461350457696723274328450859979672980774628810451173226184990074996441431688834237921849130986449833769548808657142342301799487177103548782164019553868223682335786752210077160621969108045800192732360335990811857143040530624644170523436003820691048096538196532576793917926812539129406248396904602936137987701969861243963210969155124768967359474681963290349039008930842620057484691115324754521240762904022107294479819771537498930023842539276497029468447823927668188159344007508614433056830835329312563894000123428808908077703532316838171382632426168243665055649525635939647030666920146123416761576470403025452925841801171277100292234194094999400702573174772786596732770618641018819598811565199827834882137238954237018743158677961506644139489283518054812282119251250995604259358477972922445456519694665140466783778263541484931412317363549510005059731542928316739814685800122136463292243180665570931218745636697963089098752231431228110643847643788608012069618870129504547273382108626590741378642783381480572558426494442195603546471280716392527006121383208102147000794975573796232906675847621748229447137037671768259287866271726818381307162476614188532215709540751656158656029044346767674363450574096639044498248891044678694178768588504574273362861852402755499050838821671294846083255420121197972731861166361830219739301889445444417161948162900074069874218042582505651035873945596497087940474704504681003647170687653199650068997086799178209151587705676891071271397689923009580525123489595819109392530087859026772074329693193779014831506601923470726802765598176080712247539147030926253138639899518626981078399729510961233497718844273990646110981384808799842031531741258488379929791822052628440402635543017918301378536794029666931177247857200232911314311333168365119699524363782079384080528640423110264604962488887591293607593741456610463088061225262885444954991303739347775351626622573474076941748260208357495277816069700954677344141861524588001629922422999666867934671333087657677673215625359778200246123159587609275698850606390405947892567633167460639533419376523927248855019870732169695846606185439946454369299781222757185133207822310686184553084659176622511621037862557682813219034442190571305449339258848284527637836822963031855875088159262638331595710189338685452275459828963131093855696491880666830513171974411015437511520057899880104556871119586182848401544805369741838721291194252415923269798713670038693278023986889755115075337820819888764257308323398468230448576999042787154800124702884929142330806834972394859277124466386687444962150825448093600691647966873354327097850926039624108773961984935695328867381259452510770814929652059424750102956064834248160324932061721899200484162705137437537783162132244198964618521069175766342281313150013245218271317763631753431892540478347016666488232778460716181711737208153043205846966095654434117558929561112267226412685417923874365731042536434391092696375443859241464757143626174545077741009837759206966015747759403064387725238156038079392054505222883093560758680165684273771637558036146812865850674753611728343708087169730864870173479338737379496299120543224605658412797480187889380154672804438622206277828355038302765852215205236022549868487897927871225878815508052483139123129405079033243343391783346930516824476612985023873072023678437000045268203945799209139415005125104030611696395427284667246897315988509371855019721691466045430622008980534655241605936521881622225557104580113676240924651690570682944787414277211246932843573597579318075121238165362390190283979117908222438691545400763563494030830794484878662550147918469274502585764151005058693554782130682741315930167948235886186187312503965541482539666293033032798989802849875902097551017933939662513112600545838029349730033276140700119785591198709590371495289830875951682851287571245161796216595957917642929384478446973916671421972448023028454715326256804978086579416439906255439663114889052239759091105893436715755962591827617626472370629163007619421560601190102837287413790510557857875153919492713714747308669892381049206951764133275994637554660756051855698991931673882917830656930168119111109941296010660479954973016951419961875802439511046509299634316041014303453331544803907472120360230389018262121317129112393197455321452134308046073812378305781759420501780227155915382781560482722078607602147670853011665623096933924064338290347280485602263552141746921184802481756087729991544641724690329662579849249783854270790751509267131645824303707836724933471534439906960415681141124188022493459024061995957512944122635359249200300772905044940628085983596200975044380303122044280040863067996634650773306303724030662538202160053128415295635163029673314027746834812116046929565992506206419801860242690952685331455101726338349619246107528989887635161740997392851574292036963897026219886754011230185267860500512830587272499146264961128948652428236049816744811169576005862076531653304808031465933017125084952430841308790393847466252264722966367850700622403677516655299990198612032993554603441378292699343227152234688548211283446824059516936835897865387274915721310278600003671649253606022742419231298656395036284187656168396005457367214452863553268895927169980703907449626373526768106250771597073390889341856853782522158197775937461928010483374757556055232206778853874851457544097396887515742619254610724480229327850911995657700271933074852384968464952036747689329373349020486809021208549883445116872849745769428672044102519745547335566749783939530933607951882236295458930967092706170460701645828411044747481791566766918155489376097054127624030587261482418968211678928349300162721012976988174997335939516306323901133558933110759317282760118209417779764297909933113048766167831234152980516835310536546900460744026700213132373539374490915858859601337091594096607056705514386261966388474326379903490756608239500520631711175285895107804104599876136158123236246358591635091042200596363162701756788772677470105928835799497222289769414280235524691158621016312652686892741573391109333542492471481549355423805348522433720488427090263921494528934101830645084783719838374097953317242650372068868600776395757451374312611805025614341972851756117894560710517443398165281620009584556916059415711854102744249202549300664880250153300825116484316247473321187020416505455144960573515711799116591459539549986379331767731751531340184421003967476317485740445981395050823119542564895282717705766520793087395168945942419771567424179889972104807106486692271920936681205940781441743512718502550971711061624027653465063534785157474351622831512296701473285935102746259398820810400230806849018651328771391968275411236463280952028393228976798004173319027574859365520534497290455061068943397718113389313949048344003374227167706628273588120354600320487259964343981849829741616323886889740011415398068777571724936172901811486182187273456409969052796124682445582086004996472190752049066540049518455130970284753172134387495484739644955851761977215834995534573431058719272232933520875933282222370520806647738087829068710526277084136285200245125313783931103031682333395357850531589200068850831882122432118807648795756989335654746883053560099101638016589076767667567844386108404042263168835219245163242058399954783681270060814943139200465436877490710484077328662218814548999972534793846654985583768003094022494895556439201887625631765264733461830443086357147186334316025478770814303644852387843926147288384973496557308587777365746725021668646133255893447247261700440137293554758554321423377498412592462940932898077123341457854148009566931510355699326859499222696107741551717213743429341981870702870486058398501091403853189780890767407654928303633722486466475624914172344776527996161400534209882894877735134374634017960700856902952596297546086848773738900348972865668021162618054538289421979868957960689838003810366747912130829178575882705574673842132569851149051361762081004047958622497729778159435563879863174597892939432790735140124960885574650784969876286862640016804885583387337005080162303293721735044252160824232726501967817553572232513257472118192463890111592532054416990912500077667276984468969321231013706903809786805843986045745524751605402690055021425412630948557478673472622411736640933623944242904661693457216335143863883774957173610435899739610241598011644044523376031285572233234922544531109946704215882235715102354383723700048907557429797311899440074329324027318348838828072493600699748547244664401952286595405411127049210142613835552551566802523815773812709538383981119013090230546966355041469829839096988916120625405905728523081211539006236139644805505853646174241363313749884593280277929684878517916494578624053267461798462305140553975003111016795644717328386653848106531708622298054377917886810994047991552151163437022617498821505104391899716542756170498236015922800604429687044380752821033078532537733716492017732583860605344281767322200413130590813648779187210222837263336774310489264398001852345881177505839022632132110575191969050708770795712219825063693970309428292069031856675571104251880148706353708225578500072729501610859703166931272294441014279859359467395681881032437469179116646966849790103141435526124145887506984166987018003022363603911430957766742293493629561844457701111756242559297015326597155294981219091073993431045705601169584243470256014069034885756690775319402949780104114639792914252484981761869950193280827032792402813859784825781569366788353052712566954332702387456082564448395409004981037297435562197061026992394243440390808045054270491427465963618821101557769873618176938548049827385061775932935327301484193678107356394255135568782031462993337711842146418824534285535381027922417931821517361948036880729048109272859237476240819328674932076868332074115337645021527567243580352526323114170096715028636191995010993318333351300421466959054404465363559964376545470385983964748283412007943619601080982284953690083725194245731662101339926307749711049761268635778620204176987432386867158907963498167690015237847230056775932487417454648603841793827210481176777518460159482693223722109703372745262253925408399147173194247779700836154574646454424107164743604530602661949849702950279563370057882641704222844929327152007256485424330577791828688843190748572922713184686415184688916348758104436746965014554762206887776082272659562206560889791689747841363241321016056675734217754449621903621598970158647934450003476539274378582314449466822565541487074424171506285427907668246424205612436487424386067744315838144748769861635038818583127530165916245516485670464835521014593605310035608153382215273321415259995569550481981504482085590868638327835020541434676485779429596237365777536745765678165224390728763061857893557310536001980328904172076931559422137692385598111448447400874480950962753252560702817573555691320375907492669021206113557120568459180459902143649919606481158917248402683607324605865101411901388367421304947729922945453699733735250130151830992096901005580515116887861158338781734958986765055508550921569157725790987731791915060229338670313616779981962647694002373398941001663555418136480315725782725580772734956565413201194286548925498234549146184029770722520719368140631273445199186784169071550488429454539044697898934556115676960333119317159936071997923703017179843474984724549274693361548180127660253322534720435314757209315514884417831492261212316205523542753373697573176048095635159688119399122306608462833303486168240631996625648531369745011877378545295825303444684920309751657798123348064089849139391390394514826456164323342167655509619087616522196425146320494534924230648584307686428756085729106500182223094870509128671422977897884255986934149990892781785144291211547219417650160365305338684058303905768941580759548049176737608301302503425936093443860804874092038611116245860720897340595500684375542077354652314598733048326373316360133465927618827632762297080376742269819744690376012431775127111631020809223996187519637292725988121241846708625820437692283316942279092306779209342469915908141287716870482742301562146237292442099382058491110716286233151407765961009265244632414852217335225917104315740442359055879947416433504296015289045417758847864539951044209799173170930304803171620534353209365496530207868295212961604554612537234988458523460354567857272740138242340565192479055973353365357689335128296159790087948530590145162634371964649258473985840607561279264294107186398252918248465450838419322478078831679649770825974274578170871586402244482588650381805356638763380977010844075091148522758908374663789756708063409556889093192344668755461318079007162616784175703995541236261961434733336453891768151869640863442169675232200979844112004547862857241697255335912873166246936078366806864036029804309118532615616172579748226640546893870145894068630285928617828602801706007812625756041699264432076810169873758483865004466668537390432790604508348404227159999834566405711543862249550268468431226474496454857998385708688990117948061351353326604416702943483600040368237252210875881313130436399297787062039179618466764209589788863385994529097633382659012446128916441681482651847901882052193956543208656870968415762804431581734432069556515439020585211367763483913161168689493249208326677396409020811280183006485696821391728326491460930596996698538010861918898025587020697125805372442147269323266320968955244811097068582317582583511693103868605262579413226308311546162249039701962533196734393268866222728989171724317729467311009201812753629961498303197487248993280486337953373108565490046635114661769671856128293975451513365126932522098592786346502699375551941036188200078149668514428741215459659428140369110422446578542792632903341603771363333736797061810023049962325683822947447494071857068357701579050799069802725679075395079304795696593237119782352309570474461580610120904625860012311505109685896669314507247035558963158621335490725953857505269754377181227249228649371854182060651629131792668258462568752860437517535136198686014207565734523141194465919751876053012167348397587706485072050241740148515033751339632155676897403028656756324059883336703338225071501806990584860172099664517935043044921094174510239749923723705675141785498528420294838425515853433244866585015165452295949310452676983623153530806599535176783331052359334685017821816268258620490702336737418009462537260629977900923866445049675212725402473590496480815969530772847827122368304151290581743148597874949438398270288260297050294641506167875471393881880726300720115442065482925037110995579178815296186186056787646910796848904873731751628362122293728017719937259884762212117167619259823253410122183893251796656354782358060905213684728127818990102211445165529558685922913293073090872152126392743431166419158189113424625542927764869640301702928496110372647646212578974691620957181680290865312197623604045368891137735341740792260197816258860553847961215826116671285180422984205456276319995067403377954051196059958225293261153408546664316703124436361814623879290052589931758934153691382318361112737982946484001468114365474371147455218177470836427169324145178922259999883982092473350848501423087651716673213616279435243749457797498577149268069357323685175601350112164781932450615612728315439437742456105584973825050686743971203427905953070494526314661992023479738122812111978281863671415348440813225914247933838771633585430415137880562542838024853458835966669924827438496987194143701636092086135307247782859609451968472777851448670254777366982749423103853262882950678050200402234213368865996188813523697234988306358331269298577710085065399638814671439611415944924007887632186333338244917166854716022336313559413425659812585784967253672022688089546502683693655675055414346098078654079267341661638041264056506635628567297640390991121429012139756714157616435007685462162252708005814069446905109188457826375809191175687750803033254077640658834174385835563608777757031003593369039021503247699516759265151764060612719194382412014668075913708864001620396407982651221373615585990870418698653081568577341379156963410045559308037857693011735992801765213167761612132013862214827486800984606963040814055531619636817833441823464330417273022910991342637118252148190763763148487056590264828239617793112757379023430083366429387834757050359197316003255946440725495331989462186406776404325716381735683497063554573561852028808170599710331066790480998226833414247547074754955710889837033818471341377550016859301650781864701350677506552120376224008516271259759281361703124585169343114808133023657378064067822651616084902548053860698986173909246344425783479918302360256836798449869289941981564655659568952792637726334369664752422737586733310857835091077770881561241676031222286965080919808508509082366949083389992559016378935242033495066870785890444990191197828287015053455700425717849038508286073878511721262299141253385426807602445905002636613906844084598949070185619262055437636418261374964645675424099490411121953157539535929884655260433016034758347131923905639808841885001880505598468417060225841614281547266034398041106775015135124687767688663911156142817809103672325103936385777304241555439401676754763935160430028726321101216988168396589174903789442431949810607070087641160907095833780848400354549284179355126173685723680424067454111204597713166859581370706176178199725417794661358121346137142432228896314406100925907258792834377891123336293351788647007276088686347386597429817016012200045424673621426567150861376289449260605148716994274868500638956947491273061763430829548806166256199360091097087319979587345986302786178119959815054959544010297226170505075898270180229803912501102885436416930420592858005861760740479355170273876749441912369107654494463745802198731015217835441839885134472529685226415445869613234184076535846882002780603687658769425538835134473622007953778592266067660301052788721074717651066619309031669311524347787769036051160647407512746246264440834363819763198523377455963071973119476376601312584874077541383014096348431230452584879039613571163173620179296466598069867880056772549179340237745719997135792342762028250712746248541791703319334896172354164026211781730102462756268036692958970992919404640422844327996197866897231082617204775829724189322957128845540872962353361796442182133732594789454852720168917557627082628335924221732674651645304408355936372173031942255114646535432275641102334042100234714998703734726724579014934619893701651484879527332058267683605816904558219135269390462497246357343550824104387164080110535112958990315374511782545056002338477908514839605517387284709645723746072500349959282651789766133607091203012017645177369650006137076848375239793002132058830497642294272443030829635690256286822968436932824819211798335164082753484134523303824854718794056852429587959043684376467107353896223458812918943937484085311558640731087663017604648800531129559662819166033536170237928234129734236534954505380115318087031719131276909552120702732195952912925726149086189639543946965634685277595018704630350116723239464343292835720617079111282427393326906659823798711451150729693460977328002289963587132104693609579370208876639649076485650151731357972703089193924598488977173613614579323403967375483515318674834128971696232123141367688046644306660757010243184129211284281811425568589761469898454510165996004901949618150074767674611539157150937622366675570820746692450424430373647491183106639317849365163717942431001675202743634479897694647585568762247773551788851102700128022324571136390565602005489890328103698953191400716221490544633682478727407427291359281755700771837491978783217712771640263961199690642969728050684409968574017397035537798293635189773177336817121728318000601449064513445481115660808053373081317354891498237210803286894065380268221891177304003983384905899298371118329084247015447795581588796930311504006656862128433558489167858889764032445857526537014559117992337011587955405163640493340236338735920712508565285161828971373247269984298873052427563254205116294625945327652973461288208383516658791231235721118949840455162039432142246055445660166981250273099339490694533101822475696857507659491960251858111636097066704610581905595435626149387105145618529982349550603803685331916732073019355964858455704228154667844598678224090248935016188303715249574056444751262852774061877486049641591757284218506297700671734956729461338219925919344716040314672729326269167184140741575644387359519041900666483878113428241648890918708216020043938944399666426813956270088234718106328484116709525733043238487321383020335158687322889476740057071585427100091314630249022761666473578041003424410567080951394628379348234211964916986560316905133690312206012528098547444410059251297519903072747899704316448348462555557462598691262647422050181216712929721509949722390671884746021346139639944338208768222474901098629552599582811930889523716908921185105210099469498504092345187557020538232380122110984516939310214076802603316744488874473107696930872891842690027019467144607688535379735550999754761835156304656650199366416779518250820141883635930830828078533287069352611270679268012084063196945944834783381564429280799969500822550938840447306264110112792531825057668629857793365890041846563521494290678313634643778201465299959844698740879627496597675002205322592460653106447640662391447597417147407979530597791916100012396623871700855707645700604826265929164146748988560731138374977683521498040141315600042557524358729788771417498586463931664624597821382322052013777278536396291777162100751834808540904752569873304178504005212208280144426533940503480283952040110993735897451550783060172576369060028909589724254316194211036881701436609069552422074347904177937535538960887872810443349189306239904888270419186186931641071036015880689642876125100100702174133674254240280821646160337226857293285313160383690233140534127209926145364191411493900857389875004352954122566271450267647807674167149877991939740762698466898710723415361810019396881021295172560584203620343531271751862647773246574105771715982862201200395563540258537761856547526500345867797508511849923439158037669662215514726815574874477473000131746507611429515986910293680890241690568511638335237003588992190514473784780960416255798448465109115928900329963902582041451433538134365121441466750815349014976154416158806095443469791945894355863023967901964562551890188408908799260455295008933585300928823513182680341326038297777783007896270038841387876580196417203138678228440935495234133344838187606101018584412841949841484194504077931251321073174672463874869999896770087138091502083973913834805680681644341682462224439046577431609006391135219028098789827508795499841930891818298322332830403219849341544465651962119167104533260983154999797239351738506902570794873458865628219156677635849495890084619319244444938560631397827513686045387385096645965129077385984561062329609373155588408897063290452523585683773152634016056677693603852299814804189640007252623773449067486551454873724946161399644607374696355589096020060561768186471107857594484597065307686807693847600839105308092182581510211185543925785065476314384549740490645085576429190701589261212469653407327930037060961039542862263538095109790804580498306980277870500731014266053392124014030925569875469202746319583029297015178973400783142741601480026549084447130725398876541447736486645337330828042840812355773609692131802020709990576172855688726893341961719124979970965189003178247139199069475919277380508015688520021288715561860226728652464492077598581086930989186170000259216547903158118846503176071002385594914112952884381288451758387582749636174794914553816004205616299381202799984946485204610484021142237755999991236606580273811985253598756410426804205855044606838517634006113799321433956208163720055558200024250703733788779273022898203808939371852952838159979346628624647767503497612369846093152005170678831884174568605451074567830311742709932164404187785181708484605271704513274989566658239391578252098300273625261173683179368256410596124963019589539771024217997873360312945528455935333842669189897823566751986666171714578695900441241820490493648871163640237376122522669041503777031231582012957136475748102878268289283575005339289302690707039819586931745258897585437581255659177739265907017434055450243520429396172818746342813833888379607456444696178120118517997343961766635690723041496678625964466157444083052047583992002024979115583272072894871016727902071758451607277998843627401712297883292451239544469795885285199933264171060072302121381969628610087042580155328652148722743652549251254929424405197908004307581190578927673053951956376139090997778060681816867558020656347489146915430051099267165505268393498409888723759007681357470563437989031322720175326947421080616681811573465392599487899118065964755853199130028377332799770572836732943674453996825866492016265041748179139800975208468657146710875596109891431401858422624734343083455032482795828886345176884840991058792912303471545153020704918825367751330414977828440079377396676922950371613457591287236683633096338224818248546423526623869811703512093893447141747189223225190103598960822081700861650718103528195890034716410358137344249528654378120729285979031890407908002375407014415092957885225184129134277091038401023118573829176239790979759795050306141883958034380550615290769939333570751317470876155714818175344096921651754776353853441637447586595589713454305712630763699714329006498048809542307205711164544335619474523211040059799576565263189822236305589191367686033910813367600288203070428831868372978675084029900380074556198759595779819649874016508048676299892105002917152684203041360197081677280338740420281842752081233013936276681127688243161628638219792114547439151750727156261468077301121033039570121224987805187430565786901517775609180000779357518962348197489895419969607609805540606626152411663438456487934311494166096876504397020209996788136676240777980775044065912582687000112444168514657843130774133495159622497264714791728067398405348410709970197688886505705853650795800792125960839712488700453151630391235172600083895920186031369407303892587118408306458444660891999634006438214001387539926200536798717168071425861614135334648476124768362743699208523579097707136213121849874544284430315624481971769723262475157454589235179074628963281366744383048454690141397301401935036869840887804344399146334960000131002531644831008663647828067503379122055303476732439703882422544187132980715175436536771535596521260669572298360852315444410836016300773237712992898707775316554428577187931258932253596001454867696024744533325724093526701738652017012571763268919515957735709446996913061244282639662773166250161440437829775374994897262108000571038847677369182854607847179631612382645211575943432334918700614342102334560065473912994909710944281974911041101072445987101690362517140026739407225010534823480820632369696099000669881268543313809252574692701528547142429479438640808920660524912231444539326398731483793378952408657429073768885208323937154014283479578805420628582585824655626744487663780048160115477712662116806102273723317841851596617848123261224988840618052296152792426141250243556996340330140607463896483750668684043350566370938057089226039785615291140371115314021781879927313701780824673954529764062578998116524930283002137889612485066502796747437045003552322248611237719805123178500181248379685183536564372075988994324907203842485778046984083961955136761831902156939448782761983549463452827984662556422252945539891759235242524251093191507333664245460055637507969755007082596227173832162562931911097462930419962482823902808494623640195008347735167309431234531512592268375003802089562722833091785377776837488188555512140819512718789062388012351224310753308305211478478505286963954906725030158483958611647055707610024169972110315529815402121655287424019237446547526427863343868450104148545866704262800500012471278056504254117968185865418528986418738075987673536090489003808720532473321979828507260143786442264497767040542843284938831143230896799930789247232930092944077194682935762870235255575565623721359478681645995410940714098318418612989684090241833359212263877314801293879178862837013753229329179171984432410473853183402601147302200813758441075599708305728687415000856973351215963830727119881106286656026154318595249933615679748571197728445894431468107106236305675341407294410671507715505743605830241884544997116102136951958952933537667503355563233283720748707209627787187611715826965604953237904283222619698648351846821707917645978911956777093422389797953833733637088395152931594482425623306175267986989959377929589576667885197748289679703562448770062471116567511916383402677004828093395629739626176111891409130301939351569249339584540952490949069953391009317809003024054178546458347841353826242523388421394031659031333019766714542260315294528200995854057855094002829994962014171703319885440772486552822455829390379629741351683115702609215853812678483893078809827383990703947941362602646658125596649512861349862388833038630327824433604234468963526720309536280186601718411599075082171640579837515785668374522328431251040071162660278265376878095953898614220499524079824600648911449723398118359106666113795257988703384040748895649399662817847444420154143081445995806330761881159815511780016735345349074748384247747898206774692497594515786930257209915102877843939167748250327419467678640090925591325970048389552324367365009824086754655989776403678763950725434240147793515324558324263954981041260875670155429034759170287396670296651234752227540397821515518333225582397436311034371334857695141264143134526054200752108670592508882802865283422558387325624797582182080394247086240311950580963246508920294215326795286000156211652371527439734090869816595435123725385316735444611997732051954663787548260285617966240162619985469524115890098010310772170411041555247891270243922080187176317567012607229186330134660289919217364106735452774146177206076712319437797589132221333283734664560437140626448599317684032599480091892008500784582570035662545998849071501775946826666647478392962900563470651315782542540385361318422772023474274757914339507681212210859054814307014728646802136978788835903322880149765564672296354674374440372549725131899755453464581953366979964370081245373725095279430334444466777441913991645475380998965981476332145300773197980167441767301002889052919584308411941693654192303894758710461187083343698009787354707744831966159359733891510450041294773247367439491164280926564065403298908640376701400199609046208521812348968045598722513111291504033740034469774611721402962984452470309672230830324060888300698146373829801071999829250532177012985270085079792736140871666018314993921335296809495641869874341385129212154870862773586850039866344483637480713767568427250021278853776884170720348981781739465053811194452290522197064845933101838596923846420333460772606511256862767815019095903793518997821933399112613031908144487480232149013903853100400061884780111692119998467930478831351132263765125249200959907442695329456383287666877409998448499336186734188950935171883771120577666296402088553315472138394009591817481499398330639639871548079690655398336802857357452605355354764603882348034207307563759278572519814576356571329777121123003672332946633575223305035392553113866323231089748217989427378350220918978734517759350833416594801566100307333383227666154093405438857677307554126729633616187781079321667309216268608551685748832921612254880203286693882663787868113331194196984573408043107180485870004848033573312212706315751882378915688302930350696593349444108979263538205942131462655005679657953779284681795953415919520074612550702756222469272745658828266151000848023162609217354268219266309928248443258821794875856614143678515000068909362801913051660529477070006413172329516972525911641105348114294052535953298929812836783723458915720651841068391058490593079406168592041552361483263765465367434470353510302401631864261663400620032771572147940469770313183764477708966429540747480658786775784293195410036004781954141029253993696019877805931186274427088441555875629675132905925607237398790887035950067061916014514924276933019163413856030817513359055928524220398587524178371795855345151099134846622627740475486653838494757067937574941190711606712239337532435916264452876097965202892190495068410941380429348107292163454579404912586592426704115055768647698218135288699500986088566987963752567369119185216143991195700707664276166546285821339941795897994220209256593927803912090277716986941134094619486951992288666669852975773073119979815143649826853942750951986415693613675712466759716782160131548063934901426596285626985613032406741150256075328025878705799990596689861305714284010346310883396798702032805698028240735722910066673212539749551106895938681444393146396110982294876251741451269085102238016028019094785017237957986121017304376160755130868324032738930492629798793129992760628944513581706351884200755736802727095557089141705755664508887160637609427222262898314679936500965925723865760607562815642928236616023236896593716636610040773833847139776180868785690402509910770097044454437442127401292309402950688994874731887286436582931725573552769756654338361453309337149391663213771229538199364627370933526961481303529540308334566004238101951308598957148339507935311743745326960087653024213314987307291337942782014576645217908489792488815378857438799493754275978192580328700972885123261736662640147332845789805623102961244207960279509701378275204409046953058309312448223399247908921209259101581900382413503961213342982129005556717658213300405341485929867586913415616635826622454977488193154011712518629456199843708266863428040549197837225935676304130493275282864506388800296771850573547020520463717302464455187049146961207848508945916617154528620409953363963539714825716785160267155378221225885448510139596325421998743056795993803178774706889152103678706831975588494155691181698189769168881491980086164302019720077886491670136538819754428897755925076102267267918434912177923415111343931256874124252098230405157692070485965139992970662075661149363353232886597116528789174722898425392122958355464955316707795992554187174114585976048966950022682073431670123215319809042264172500597108845810304979152812649958971663292649099490633148124305918913403660466333347280533591650239062342444510065381757612489111476386147611347945677899809652380885012028642236398907226047706641888404860883646270452929131358481265020886351478643094964876708547475344793359314048556575009574032064066348434181754534768788837639482460021732237414304860989330481876745166396211435238010284949968506288845016787616426354227915552480410589261006720228197702475779112196723952422230941921458112680397972281882588924364618016909519523287220367278855609414696789112298921772947003656098072301463647590932096290175280209015723093248679194687171037603055055457379124040120063706305459470276213332956234118006899157801469454916513060123505259363182033135599316270817358529309628252713271214172106188475570645367641481469873250220932940184481271107181049773811528828483408087079723653680172138355142472977248788935630527752633146886437764194949827960586027100098725986835386786520473333242886402533903234092322849215540638185939329912425517613808707417525529324203902718471973889023943651742925824137704138727142503997325402807504966997146074659807306129746464020438492836545232712272854327362197286933729329361137553515223752977657395894781473561013514798024932779954144767062022961931951082119978519488388223714819887898366155219996912346896846629369257323205169672877143816289912589975508517554047150967216228862176316917992990224638530629950440167238258633582082038406543978365059344881473438414458259425661126112767662836873961750933131228914538105347566448280288748296758532574723255551448911720253270971472907522273304813927161946044597932946905749729179416028978053086809132052112978942789158575802009816212186355450399238117051065242500216862685049603380486538999019407052637795228049958413468323954566459890712456770020646371041996467451195537491482674098721615333499944642526957595972557364577545877369594152383538092873650440835452587132407351244912737721059055231206783531557656634151513877232117873597432204376820888554723019890355031177721963418875737520009964357540893371919898131830477820120091957525737231423902005097702215935004644398205448285342763074242120407240727326154282036626533443620664257642383785897338409852112466314845696951753519268207373068507749176420698495223436619216577212925255836319108683986422554077468189896891230505657182507139448698655786719670683716027658024974810054565378095011542726648808500368883888799941081122101197237900565134538404106646078159258057527306440090018706809272313454439276202121344142946936055453445628965284739345699334626830043739391648253144145826911378774057782224131920946876180252027046224760888249497944264240596320786045679498220089446517903018573747947422671759047132635119476110019835555904581579711075261605777749012708435497582592734056036544333965705564199083047993349157463876397820042907230885397278766060367087125347023136404432751502637936609256439248739544541791991364508174430792771378114451200864377003867282043231851112788612064089126942798703772568887687505781745075506919450827702154327318022684447070963933553930060114771335798972955694733877226949619105487092732910164953988473880355183347953828764141696054892857566388519843445892011375969398498702971049497474172536771544757515880076162515728734728713924559865547632941608163543233247437778290498407062314801760217984904950219181174101475766775627127642844911007501219455138682044517993319438336491531833048129416839349583413592646943140354041928246018593149839611907267515579552288411010223729165855390165608861068686402101601479354413322286775356283666721957998356531302451382023716559355332166687658581380927473097501644432195144016209235975759478316971139068440793745067429351735794824405442925428205111494594817405095549750054232128617395908953785233970798935501388639529737301415869525644802123468195374759988356663077987667261559446067321248314476198065199685440158245911251772864714854434930738815377761576927076475098293767691422332566020011899751788090563173317141179533991057075962525773825339835581956906599055624815041045296888527750766106932922826076543432422988967466034505375410827213348664821845285850026950485014843490834626439601265404370703480562825008831803059103116136111262992548011551383243694787931598441463587431168925386841321376665893271121940585107934155341572223510230053499136768208551434839071970767191454610308184736418802902629697500279013875764486684870595199290712808403698248627199781619562389141979126315734207117997007092084711714072839040961633090205454629405071397796990985229787519295024404367814528132302514206931168288811056461700079882210212640377729669761473153833174270272567571086693403325593252968436712097797452127032824093283562476208186768831079507341633120273106574877271423361944457952106897034475780766333646901437657216574144059864508704873330404268895764695846247937857508453870953444220517580092453481333248482482463989081144321833265978427886776895013866165466760364970137941507150568994607000313319128079694371648340854616306786453527694213116577219905092607951320252385228533778162337015458842498149235478988448033712428832752713987935512741107663549864685126807220617160686826364251867874930802888554597301056809119010831308206434764022662884194213418485896734299103697569779461574380665559493658529682215352999738508519308565135788558061631228049503031005977332859727402941024183031253603178424517195073764465326892895073084728969845776319098842734077205409997921783518650105748677683114689299876171752083131920240753240165132587852785821752952596334427845064892490926402796804253210264809728986968084410877358615059240093080445177098205919005970193707307396653328006664434314282111824671646912251373915846020031549493776782641913629090788932363114940372536319139434243656432898995928527378551008242142529200284528761294304512185208618628188552744480032245994475425750732885425312881711671682857572785375367353561085540078264301795103100688226382036190445487893189385262769895078981020218136281586974750944775324779753174364995874553719981359410334486745491239565024597106032202196262454195449353192736596777514848773258905853712549623430051628865782748169232279969845382250119429612760788042141845020862130021125748388103098392194662641643543546866055764458710719370742292016832842291553769553769608712120205736568638730572864140834944651074862122138343916626962630564236328301690655126330420290812997839924696465263577479871322438896136751895039746927176392343950043093631235586665063754739926123892293657178969295924320837440279716672010027312972847737396123589334254777747344085630118173950345503699252435551774739465435795835809009643849896693955749799219217671785297897537659286214971122038119166324935246355785022916994824046769599924834755955964150126711446859673751278141280400519053756631637915076828976416407437784750494051567394686379499481376067621141747791440273992781154493582161383222774214567892823108240298030605354985491578202780031653894516829597345213715637237956941176977094468852075223421224996252737814366743275608875271934099527757908165311814830474191764196195180282718256618112795547579464033353276973630013258109762816918105916207276478399155793346834586738190596042971278002343797808719626990877521609255063468632272100103273953449896864056006266596573211932455484028209647109059617032023823671443654170672195805161469086111475943727450236565972676089620865889445901871169503177548921040806613066466080510715429974543356485529407765776329215471524657203069221496932850895185980650408200580372067509884589285047754980896647161251457726187369294430426621460778085698579345216662835553106799679695164905204053987688715363597620388217380512686229847898376163439224292464322097361725004418573212800788024349267654861735059105553759095810385790264546620701306811709589384386211272515074076772145365816382841280854910105314504284991799900500368140619458602740453239492963090077745870156468277644981657207530927671787545280415259414233192473279344027079391828775294349299326935879962191479507891528404775534650434338197019964519170447141353528016551358785770356309867960598115825976217684537588250997735921413504329005745910284892483299129020141134486838442532987123308214456061551058680295368603928704086018715623753145619389874315450378836455780940113488773765423239018957979712627102011338993126012545152566890858180224480958286437635812887746475922459837197037382470885514774659351708888931802509822315704783970415774995320952992126826193750902325851250623732129200591458066525637456197943120978328267619763416618723657520330077976360747314408534953954305783466588721870667693428155696161088987967549816594906113842544164105859437152734706332755042822323641475734735041655886079767674892386188899384157969878315982982538535763813523730173859761828725455959166556901844552521491756704160324787638364517792824248174282198636505240740894457036898335465300068545301797438315585769145577085525376285891448523508416745986328310557897225648320093908125634997960983516059473073406690800310943601537536902950166535071453727477138824991802083726952653231094225487593382813745682276080159831409265882239000646606133665288323224231436798914427907205745851677249866834036940945995189580829520172511257190363960324966091636869393293724163887888344373151633782250804466515241522307365463239551033666864123456810442609363416653290428241058482954865841224309712554079193640330754692696211931216609328298802875152212928417976451038031362790792372995365624452819870391785682868580177706814139256133572689958513298335381481198459929081871665519722779233289662363819946963232854785650248649081722255081029151105700588218072118807580907078556734442378538805581952639729547375499849707216389647062211411314304523828647363135233330103282990459997339521169235386590912382743035303998499372568696473496764767937293023321111859462290940184288090188583697905546136971816668523374882225563814679120805125575629060972987846281710073521895965903010316274627174218963321678572361824030365517922896957736652336184246376620449001345959905945677350960215394627188518548243770425609541993233709827866529004616886875897003796449582477514628332960936305329254844168298692521474983031989917607851712582474939703485326591419162194248590355983300989546637558073495722055431998581031206086375810590715989743086766677690976920309313256123373180315485258722013378968955721098510712105106678668459504670369690320737728123035980787204951437843315023960817655441178527564256850354622660252915949094984155364200235726425143789968555443959745814812728615529581578918626739654258787931902052514524044074361843298379073905599326957696575055039482466108302373667888057386261068641744254929571716265166801708147165141694881006366462608248056600186661783446693264716860198266974327088881942783689051864774284240883525599437178710376907438333896512820150808341052231766703671317688599382818867271330977379043585056902986250051836526426106500282983297200460163156927864692760593617739114467782837410514178821627447363396694546080178374096216722206618694528704172609422639492450135585507837255213039859334176947818291853712002062582735413123084736363672012204313768025648305005131862131250827729900952747022415869276315990272842654969988555035430230408077625861606373471316412861888412914025958758553401030955581557433412135904982879077913555099668900004436789226058571533630867670412517985958921853731125920330950733685343162333072929302032080023258217887503531590667584675272898523440871324482356048008691687421569645923622354960113766148169421898512075345229422312093949973148618526660951632965214055919397217418015473437420235531670407316596893493282350015305597801399688247734108012702518717483191411527701986454437917541477021844535443980759075329885349493126875225166244862768262827148852339402008655515819702146592468681677848368578647305009350003421349024002978364184470842612732895473486428900642169602144229569540641499154355577725670429472178584467092580974096958786165689136540530508560693866530372103119104183218388430514182155965770694655027804594068854081615615784198485770499974185843961112004698852703852175874279528730523577220050320006188145688130012525925700661474026689824712751437642294711302007616736409051292541562729616495775848818291508032790513566528491218846445348852515037760287311240707739814903339234469435927348568412769941717394925255122837853473921800901151403024765315531883870643697632060742683956626215832836710887546940869331767101932967994321956442056760413075824539616342144388410944125037590944777342507988038956231420379026172043465246723052823161240440042849117577222250492775318928103924889450099758539463372042748816064941921762244654261834134467351152760831192966252256248351521495356837044517686650774165184317494802669852387362507290974266260446651065178159037772786141224779963189707956685242170610672648587939108201901589370366538430895827662926031577760708428231323027578249172331761821465429501735313853651073825352732153574073558927375708709683626058798309695949651993878819984198222327051632929549300267809434945666138414710708235571132006131499816217732380792770288569278860927656415059717482114637598190764503802204592252884621629459797054959579594138262247136571970878512172491377314809880905039129704596744982157195037980937317028986754081460515885912652069551318058512120728536933962029296175810708258955910576485946213928613849908527067561235477950545515907469373302221671263342502877131432300769374320182476290230995238277083540658547441967030574792272374573255647937037156482297752710536002791809891968191349238868731805947351612117809446497751359791206123849944620563002391565711385689454917673250185540920219472565377205055396236646489925843854664767154933969201174804004013409077563016729465521356502070560162859585957945929046637546710453655795428911508271005706189155576671248975580439801179105521810079576898804708918254898291321679575417318539996783340398057889615309681533920835738814973750515785115149466739089180664092558138826478460939756266920746898030649249440929429559988962228766346344589764679799668562981324520336835860209151587475420044489756607538918450579306112695654818123362534461213861326422248629036772220493706275811337221425421425029267632942359042376418750211701544740872080431154281126822915355873646948990443148529486311327510544140850952769931073627062708198739031656554582638251473740862187656688590878820627490081561817807986579961707749569084239789310560880060855986170100895088404311221715713288364312405130397889255614277116637893340009231427974836903443976685078027785881843002371148121523962415727682022893797583022783592908337216076008170814446612689755819693387568936143469533807560477691495871719101237923000939476074176124440714514488002822463156395276378914749720959582702743715247843279053250996507952595727900695523808098503304188950051218954676068790915477189603635121410648814324213579896719905991935608456419348949306279609245639564508667524487553956416486332895756049513942574830673824986252826230153593358326004257878035188751594722758440205357858365387066106193914907090891402114592353661265113892420983176120781576263538377679988751068832825931722888339742703914799838337778914466816034152986448143005433920663134179165517765242741354930866229476565249229028466615506986525531326828805594050940499574543108254245839326452263921942686579569126918451478472989452729332831471261931200694783384452408504334238487400616637977607905044052650333538951108163342106508015609816795843410385045944859798652723283447196983655828710679388138767984853371576866405068806460627276301168610031869662658589392014252227552831701994493445272147267411798307821642381053501219532792928382812120372232882151250236281880028001245313971713067512766092653511518065640825734505108113563466245346922932534686718790003654049695422793243510415233696891442309548190824797338801666029661837642514391289502657910261511414260078542032110234701545984661750339751854593429623560277079288261286303125907151877719228303833478113330612311099187040820606840981724786055278720550855352208405118929619463087198155642118829460197125354710629917670104489856463178745432766571970762980283178769604998661374651680908408707083286290657998778111868354210453089935184145576199833859740654562965817341753287751765840370546302791227248511648845743368519317521141007061463970699456597513174351082483257947835020245487665698393643896062903328045928786714109052181212884655254335289667311636105702799841527293781573551843487371128325057293979706890489745532590922240013790901016132086116150706343785960718904841007910654007504396210927808651831573677385260752866373920136144203232773843419366845105710222105299529927287989543865899254570237139469259386193027308503664727990698596971460298457758302385630068362201010321065913678194206053862050205178752956051488823472152219852299840117134620129948970212182954062886393094609090682053462212525382309123013976338862655788878251665187109848288634325629603217432930960836822548918889021874597473928839653350911532195973167972245282630179399931949997192253375951325199841223073848632859783286008797991649225310719451430827543277145819806379285570777456200579261969871134210898334679716869858251200778720155994911725556882375338531410323153463567445083767547857149286724649078950645797693777575550703414835637275181701087850031209913475188935492579989192654514977836434995413265280880381582284710412247461418821745362937880094355034070343195902438817569517293957849839427888608408737849075688171801157696892528962272850126540303298631986097267425723615262271915692836203354155071597224711662373488032765101508488481952081399116801408228821444284585651035855497440475921505136836658811940491257801651704068423178368190430859102433905875836168544224983912927336176614366529922807606474494621758705566245795405392057181352886018677522671536670031136547646660693791496287858867248540610408578278787024381325930054088942635041121100406932852153638756321129181109465292194565366174499739377488661926163859428151504293086550687294828493844089924112832876677067895792779555107146553197917614536875683388859846455929444446216384183510887228125218713277300182631905259770841749801131996465896558678770186366453739732398482530765307996051867067798770676661135470887720334512892416991084775594275166504945656397706408212994667945285097974606625234609179616503250659331758716807266697381925952958974772451901472501531616058491312071749010517909998762911665262915337137860303306204446098792371975428880123929429961949214463670098998720837558620224385417086704002113284618027960268288121128974784515570322682626487990384565832654897614389914448441702599159946205608420698577419248067100489476942660852984497915069420728093329105622333222695807444139762949405485315320319356038995497398649191119173392721126122871354156919716765644199101735286077555265397838425886287888033145256873188105460050153491139233428579539238140755069824050939476711005421256377990350204746928769631929575578520802634159967046355336461917479794790982513044601252600122271407519826931072611846960429923976676993090557777506773014928177113812061962327017991436662643004961893142301590409069252257400170172742568813957116728765835830946040401152701390639561507806966259566246626600638083007254582860753689939602757101830291885940435021507874292454523580808789952232079749612253616844228164235531927349327522452800545335940742915409495696224681526453801085775934758693107410873668164687133726903003544798113499942523039313576927451572009969110474564748628241238335287467868474348988010559270331298850441343303183828494658561344820971983733163634899353784477231031532561719083611770278790303100690580830370438356568857971519021340028147718178496942941014890394168976443825237571364921013757657136821698853638944113658054538987331214223368648906652839840154482489344474886055475909491633443165036045618431136484332091561689143717463492249508669203796719657659915549152487172195622092330189804974880874046189434702826935017484853859489078237438660787861608171325171927713149594628272628889774699713183608650582308367880761245300407469612424619899766007421707212595885710260555046084542261809387952056793967078108066454680527155384610604661719053649852005382292495643165099451519091962211101100721632857768249894182568086810359118301054917881938093732143423599602109596329341826475454329056729957378683894759129185397661899007262895201057798411819727655400005555149190069769769497853175093430026218485515828910370174433324590144280635884558838451853512290343902596500356334621785800858148176366689429965551682881151919237284660330281809300634426096282475493358135849601744361941179335161187582846410735727729187504548676758406577769941301937815614926787638897401819712837205873524372662098120115891310503261815792061232549267256111992348283099153988145118951091222835890097014756948089513669799793618884453338642282372370686654087460517818756850124673784500427577779483758791225780636518527867964042655976081806603834245619300544064339785053855895316442376017468844852437047143744819542882684504422357437898327520712013971540031165020284875918530929066287472529955722823559303404439449473948041755763574644921526426930299853395796063994678131267759764815191141574313101211298877930281318828968100534963802426358372732411032014010536402655889064179846125002639381294408352906265370911114762476500899434808070392040299941869696912404913712994057596125082568123490231426070063158431941640176934604834009056204275785046282938534533782243370866719086126432764209139953204523542976108773299390072047547960608235321277348547438739827560290045551639416171554106465946527576967615316187578280311761123034192979671231569828985464122158955996464441985373347561430910223289089893291045125159300283900868854890856560486226533846273000360772107429648355205669839196490181075490204441381406021165895128904154363075222128224292106455057542627414743341301305353342277356898378922766157882806260195034634901542807661608590544121988118349343035827876305275953698671470387569501226935408377736920938120692851196887124730782502612311101633469584793211256477361935835690029289423078362460273841827013586996998271730677997984423118782105931499592650687562187976683902595246629242519175605988429992188141339419769083611003663931652509697839947966185538656268372533097951922430913339427726391600458675277762767243153143534355529832972976186734946366490502375318178004905713007808004294264225116188066953317858541857144144336451795766866889947915812493977144051943824439990394456128780464296720865240108417661717601215126905587349923915326847972985853476373828406311632752119091685338664350797550258163483082277601440638187373117738747142355218195161312401826967086353774602950790324926163071435853260308266459728164487140607259359791347797930258514823415254357323051179107167708868115897337599623711683322102472534157213037937596914353271301974825502265193349205533071703908440848498179575303134462271396471240944842153585532149124855073141970735926024224461830910536060662070655067229355368333210867791991973951290188620273718343536818494927740767706000176270983488386747792064426662734653909427578725869129366683467478175248484242407948644924612889072700945748833419172794739706302770978752009833168384466075513951419296064510973993658141897396956423864511360884672099465364615243925746308545852534048795898938258103389570625809473454577763123355175998029420776955653295497208451574477989272213959005369280246035173612045507669536870647600078208493082982630990236059733198247414393964605671010518785679311667566181556381190132081153910079185185026790083233651545992266386307043684297251468407748633103980941627284965361604546191810330254854882840421206602887457646404521736004995667655997084549066706219037352839425284232717325299275855169810647068469999355859683128591482745126479267666806822529915715332326449905797779744147978617146514483052259377368020993743276204778919140304915224474974744135606004405439970499766729391219359995707612246911595227750911079883699060451827261561013632391077625858581654453685855908479908888668585446319875216118361221113537514833398015670673836730203493300835956274365014952663271493637163961980192601929928418692303782001269566103414483061235250117836083475311663057592986974859541725698397320619631240836979084542422124830373937033120223660513189562341870918162869524604839498401972256208163247691106221953943241194935052566018733921749090327741599036418858600470566872612353937481908860604152487298340467040533918266718458240290755196509003201791506493297692777457254156265331523970063690038065637399414091319509982045156809221764583132212530049037869728196443757566894556293835071419629919727571971348883425442070158907418047203796490016366257920583807713424813932809473149138396642177318507086632678413287411008724980277145329089879231917057811064372362623191378521687839874929518059121539058350332112097046862952267079511333834266268676788186751002027296512132255268074816379051458399460464044856640899219183302320062307021472357840174845157222737220109532890045805105587071355339465826921794470964654452586780413470792918094386014458540046525773489995654583662052927293169160186248028189305111069591103121039787310870201788610566145605875579958055173997246307057712265734823685387608648890744842068751986660070732613419985171607199930222000157874314124019692724777714424686570974989351942286085816179456719555212958892666691034816388708390462013461173107207671967274488450293411742749906965791265462988127411769475677792089937530346411552997978838804569696527251883883193477625755953029237345257864692262022128604705580244407830777500441580255069897359177760993087156205280572148115959567106490823260193338896756685935509083500177581436190264556071362922234119654494350473565511657254614527281119606167516380833889322305494087602467181583310433908234035028343953445913407407518920653686097114403058828926462657175681584071354572577798126629475592205006232823851301031589853617628288448330223019385818939514614665227685557941664759788782839704772533308263617995179383889729821525054475741485168442226425165818657903970094912559476552729441934250326786484851088109061357202736325186587150138979828765657676397785859269186384493575860649729362712947522933132041006572266985309123646134333013529909316909316024889688681976950609229199364760834399082574839302838147623873343385611455847135577647633889119817204629074869352426789717572240008431821768331715145008440785572973749676661144643214354311688565024278428130441684321670639751210903041581394585431817458552662722699930825842006508458560768382037380132949105416464010728659294519512684594738366545820097718376787319956323370101429788568042049364054939208582640666968699270864714270937275828220370143285315106433010337658086121336949263748365851472807995012627695924600988222120745019981778722701126812075796170611407918152570418135706357977908478546033344736798316930968639315408945801094530827114783065511280856235079380044046049117214254004561490997377907264864425323103035602397242666122166443112690987718354130192071708075453257912740141667608082248997638264314553969179433786888963834307535130889014726866253425521438418210292465608599248099689040281423866423826116809995565168883861214529340366943156691003115449060549365696271673914551091451307644691108667620854110551584640223412971192444646232953871722546797209981947896410050041755057782454472749178106577236574082436353871536982266109923149897918971012016135727012311463847441531114597257052025246974714314567853200276513506013392574899325550713632609920442433182283247229915002785563651622174650715481531155031132929637164278023099765105948937369219095749205651428343893670479278964476631085214534106927252684318306713491405423234091302760059040546615074536409189756679395496706748832016496115967924174387145146784339353032587432722878964897461329043465338956553548284312350275292445486690131385138323386196527302764710776071546680632539027772883609700475240296596677407612335883393132515726127646758638964654948224297501513533249203309866193779995325486667470796789909093323230950211380311197487630334034896114946736034285406261345107475780942518529667987158285146077599687239186566528733388087565509809309089464853749574380940339262066714479465366660748017897789313816281217035795211944883660309830469161811497121920717944608239332100201780804053046005871592861739059227251041054540318889152334388699280466017535728153496448217175802345192833933524502010323195864661492844979373742763551665588748722016696265922866399447551119434451667455004409796755033726608824126126185224882363845401855710312936994500432322154408966440625841968508848494551713049624102949954192237911818891240454395257267737280023139804153810228334302018482656807137224562573734522714054193195328163691594152616190163895077966319225726028326619336114042284316610092267147009933321389296473472766381711190951020510114611035512718714147473004641130707337772983527258939261150779697121348256707141661252718276553765821630643625232635442514215213124580032370674486905128358466017286244954139722888653481609618858681042281043367866027993690165335683148861041099187466331123167878706267117258331430343807022680589940701096530761955633576743039189173543421094184128312605822690316109656639981756827086596239831571711166487947367938348696784732372931021562987435472630088714840504056075983078170325387947750732661076347169401542473857261503495723562258908270508843385686408965007801482983798113559551553175154857784218609898755521911255033894977515181675180658110494975300384782364196740108224356765936943720667012045553861868659011920704806283467161544167244412230679046138748836066238999434369319885271509323678781331478807936322002089144411416696092138595523774922447879938497933082345363525685333588967942272718414680542616538683791798376843761907071356150154328751843206292465325333563639365499737339190768723751318350098533822936063169198672505786355962730102453280138775482011345476785498288553191111661503552571368589286312306669377867159609135735153720950415896461527653320235819729113933743951230116289607889910180313695100440245176675026905652738349598183297825722380098905276871266960971202180816037836528491950536111005118057590492652224978309533654498881517306384696907004775420228139610902506914663609828803631209726022844747705688396433751950313770056636321068528649099553840039889764803002517301383942130944942338035494389896083321978049381162737008668525155446998345398112554467472711451251699577220586487370328908535488183805641496334283713070379622752338882931778174009505576136502961887259904989334381937405329730796488567055374142723832929595122893985209721246466367523492654003193648390780165599281355047181696412842179737431324312872099023140566449224342805362345341978292835763459933833915192093786160609184876053321919503941468365620208019123361854997074625008205999677638091895088589525719928692013063350867299884091434264384863243679099106901556911330770686803251924978993483079232197388117081696855561524979172251413066697601674254311483219230280057704754731901717835990073111728871060532860371985275714637566439862678813761692313471228740323708366816963580287619763522248358322678637768544558506106304288344301238492678325878542673453437607240386187267278453168432812695419799276706453807821329278754765616870902638029578861518308800170132821549858627953826388131260920994009738836209540221621986284246830701320448323837309167291534680388008799210600641044542608559081908076306844776621103731696526010951714197607249916494764003977785670081383668993136824123186089076174768657339539626797929375766763977285337487116766612970645505759611251389382663284005033588751491392123195337305522257483016771481940961255719216591401467159686220730161359691773234044313959549971183115495682817682216115451195900515694288766336432388269493376365983259388524406849644854048838664856484767863175288784270418602294035469494237267223694517261726517524994705756383103104307260226738653705788770901915766194943042557669564643651606187395055602033657006925163621474390427883650892295411894816322657151084832888272300835881903757114869697868898588013618476293166826153797114256840726675051140089180755058913154502074573877248235084213202538947930668783254270364558033130679243336144462312811779213347124365845179795636526622036517582134219822512582463071414382150213099490447821006824694776745549884084795051104534482759400081276900542142839267641319845071507828461868438206015504729155621613943151760305410405155874503433357429617034504540871150540266732179546937131537547481855724533473540018463631699511951992420539927570472634136023820784141999167611456379779569555923826949384564159011825798236236900086600552091033908403718207375383010335955681864381080636431865174803685168295621216263994684253061318005640649720241466418794279834758636341726958364436474616221100834470055858078298654036716659668948560187017468893522430159000468245347893088056389155855318898573911586936426481090373258019179665188242532135917299807170942425365239593240543137365746427420305846587387769769814700494779190223916819245089888277744200868369943328806664014561268977014209813826598566216045667275699906587531491711596494522590966763410541356028624616987859582481890810652846611527480409972219860526539306059612867394441394920382133084539500212520723948123686794787623861388682086260607346124981457810610486698928561605022902190464865450199585060267645007604950462692556681328201647983647383441408732356476540595860452690658780716301324050521755905730265334650679751207052081268350347448199597938451997126849475376416747435051364526159734262432811833247025477676175949155732910947814482111531840981482891084668248670843278120838662017460205795726850986010658133709632154794277147934120865183282362627041154956283408324853478128666796337645336202416140030889946617498068876357443024540161635024389554473420144005062215205174944686368674346222694884322607793930131086621905266873850559396678882996518565161129287174494557950651451263764793342605117187374519714281212028418553422975111930008889655244544672333972850324557306963623136708356958792868046434312153445432360225729060275535042871644554090097701852207172029922811880462474760841637144358448877263393731241170085542715991489221879528393983369690035342491964097659071953525404294761468367890993983324713770836892317021584879724029176430222817257457814487821469082841679119277963750258215551722691847234580003082146121576967283456456825594874049299370907925967986618612439943683189109920150920974398608284783852536819174347817273925892782917430677328671641441914223737180985853671178498070349079590550423188236223920685595332910512702205033017948237775246653381672485037850283050974847643595515898607283435364084370802712322984701347662543733330446014657124665507420353335886905180906319570983623180211368163279222693623763119760658199948392403663007180907496592436897111071150691745428275701781201132050721398406599840926318084316420315404388891307986772789228812760553952268650754470093907613674081194670714117878649041976035223261930228467489144561312794172123243909749382034787352003200952496656142364266085501100079142622138714237101531005004365703827543926318052748117968906786569029052210255779656832303865236005091878179643398235507546930118212988952846802487137700182238720524224935309225983787782841104699327219420697210832406468583583455934366608863279985897687857785918464073801006535650679779792488157459469995989976421463297802919187290872400797283458522233502733256949462532414712142581755608081032541000574502208421271747457855037059500534557484683129304784426421095283947115099715074849821008506983071063727165194614194965696669691957597645104307706300564026185930416072160823008527812645843189684808896152361708988604766892685677561891029298193477723361673609640067167758652913990074372994826059935901920058670522313752416862562469283606788915570426095793216077438343295595558300106869846641353171692814513792366821968991451879983161999555875260458311220610568224558908672653885980363441489609737848809267232276437223514483734033930238638180388969559735582734494365632822903779430359852955026158342958760519683774322447696679903032508142276981907755404555285485824265856594719401079697868999644753929280036303890734868213076385894550023343163862175340235636484286904335547401674630159793059009568622958087746167280386646214639122209779816426582437729194561676311188812509094542667090209339298758757898224999215933159656228379286977043741258425603377539292866150520908785932713332575226633867246691055900132285960685541835617845736630973544381419273216285662632096934457842023890835927711500801572396360933029734947187479493945750434241673893496042137878696002965023977768874255820910404336776101057564164622290700538239835104796586226908748572634726389028141658300782270388493483432256359305579932824763634890749073374116894293843333479100095083273425702970585068907159966847184256437327375893408737699394336031386952609256727245320448106611357175924045088612003430555918266842980322835744668208151252651382029259015114574374303444743275224976795062733935647876833918160729302661931108784949050797503615976663066686912481513951655670129500084084454483179520204781837597731164826843308925506767799967161441475931588008547554994084294509355432922851108924852887948054008245018825359604235312791403015298591373777699685877104170240377468286041302547418122067447751506530760336744531713792745015463477202170607271737484816335768014734442721360243554932955551245035035799130760515748896066737922304458395219253582491308686505685856529591328798571754466595409682007628168754111588730548788805872344844765474750900515431652543856763007801211669502622472816306016797033066063630102317046722541460423823423843886666553752654833841493174571952593253846099906725803789504020947468297131554312189308713619623059941043704679408656109067789856307366573380413120712099973757584864680151554006464010527940808282363707052721640538241486272593169027724672594733353052271013880453783742111739024730841760641901561991700959404244543753393943475011314659811232342766058043743631287249091357436676405023332064847001971893652124803973242180298828855469122455592524594812334542053337780257543299491098344038664055903370075123261266721568423524619385239312747626416003987127279073948223733338868547035410294860649272169161490045879872478440775584154183518034117511389135445971645834292702847560205776992178177693332602930987686039225288088743021193873413712078884053270086747986442525057504430260902412274270926073815519214183755882908306233249749141027185894050810213005661005594705922802652407337533230729836687786283606793966881268503305243692688004728564885187396482709510213427805220079902542206346025571148854389293776272606874152576658535126108137890387182873944400274662718894552101423173218085109821364751093420445198542898688999969464898802988533560791287548493551774655837179892540084909708943829913553377818548088444772859635764029181277129451397312280742574080646607979862052341770127074443322297533231703072482117556178408762724464751808126468054280509760850065850891702141210363822794548498463415897141534035190635867422087402959984863004893778336603754377642176274501219216306696071991614127436984937619828349539331978897494069734378496799177242948693199963766564372726680061266351247131142308442806867667933711269213406233817904289629940609977751139928652437558783073715881068474884650200890291003574792942577266918980264592463175688468522106108197098326611609556326957585502795679204162066897620576235676138186315935250204194959193713700453858415203506846668469395369328351227065928175202038234341999206922415194831150972111093744923043780110942154085651033545476216711225325087603155159947809826670222111076266488871219991740351752173238325530501744672132992639458384547418899509226829558839969839159623265960455256866157218242474901318063095985125328178086003086840089084999691897582712609014260270326109119923204042040246930306849143611081638792002723142684175060228384567852936038532124544497310157067912839198057583182477652688837860039022642780421119272573986046971455401378617917316106287727850236733539754408009460815393616628372822594675710977703399619513789330092879418431467413577161029363372419215425759117747024191475951868282278006564090494500586418813685579236381620933277334156473101457972310555907267341081430741189524019887140527203032546121541578217012391814076794437504884342091709734673717417058596531181565119511886070169222792184079712043947127617457034165424466262713762641570768065186305753404441581145949286577990790786312680491675757016452006516430011834259248481368908502488647211296919469422572713673197702826365685939498510043617780950033914649533893447018235828352217390663193075975264119666544718472534664000948926611866901672505864361457173590657149878058733175729151223994795982902658108634302911930222813822212002468042792587268159558763353776074663072878928485834004466248653233839790462711931159703120772314231367912161532313907224979732354010756549503743825589756193491483517291398640065754006862303865834592826844395706481598819057009349866200659411578714264212968069087023507925925100377638650229878850723498804690902661069728824705635075297348404422185318935146617813252697441735877580625669580454952292485796607836882564903582769201513857387389592436443217439910423193637238631738861030455820086050454877458747696840679136938742964151806204917863637437954857855178784604442301219895030701851778977557531425116640629887045966835152011249453903988540694789480316487611593613049146666926033697081485792569959147709020657154375392802840273856469998470192105147655546906888818399873262438326793709418506763283547139169371666790676257984206663702424841364254822580385814846169052467106619849497476359930459050965703012518673174031449947068461010547147359173223917090245415172894350821745602481498011230496002268820401628506954456574893153256396699190422374484866269667553372003069530984367487243196317715451287674664608944090585119507677038698123446504293744372717862421897083698664510776255167921088033193381659441512089871448878332499451535344304938807705972369353651266487411929175346272656362054698267134644631996173505272308386000352263140455242276077804435240125982591356864805552976517740939549375627464825429041383851859576793187908116483251304283245920432477317333619635529424752356394959780047186280870679041924548041992499548252042674143377306953019766614119101565178553625289799169124095583627510103682038800314403693589168726713267584586857780783118284768089364558710462609560713211781504480487685625028621669892437952310573334658609389926560641588334715442994988525344276231704146838466086324853128829880719417190482443080872835332041096395804428279151898581627983290706380366065506914852789134139025192577264736042245636103516554993243624841999163666599794246586425654537174695278548071459096525112972878459123857043861428449099566152770464921019164410342636800374127955493285659051514220143901528931243086470198753352071684773501861775103877181326951161845158931976652148086229596605442253765496939153281931587510866897021726538873166297457769879921221188890843698566908317247413597573544537783908068411888752498329193764447331139165723183674579074443676857225837078421961489279303120113674470735148322249595436836226396375279966348062491191831254858428496645240391358968095893032884782453910073964398339423581447195558561628178748807197822608828254420637388942478731378128747317071595835834550865034639211099343014764453035741701746298383978756702313022956585870920162666458662452354703477657389961816400977117474967242764923563685735945042351900838128864325399523912710868417065107986928211649118665183238850489252604804503614729951674082698527861919109756521587387657919708189949734596866207032332754729254062294475427853047060873676204386266065615439588036190240241402984172834064127363520792459372479964153103713778013521363589301120253224247991606255065909243351727118597875209470358875762344712022178107452568135453634598186635422213936290387905978603910343391625617986604152824834368549631752937658117522039796087615542792361953200741342221994663909503466360724131138604376575147454431897000181090176316605206652071797984185815573274353006229366653882504218650906620328608824740489709923982639608300781991032547751669286309259064550469470299544165601843960258506248888444191104255186195786297239905731486818391659321543790289499823068407690665962275764009383578024113006234331834046033471741920396554580143704389823934035076747781804240158911345869005749690179526134104751686320394679524768120488436696088769946350333123172356138538520509885305914860278436433872188853018868513947526137828499139225918523776216328837323153906133621588864241844755534627628717534663249891597739333314730860324889457476673729908183161683370962502790417330760497157629515231225211546593283838448161401916544396341564189074213381721091926847650401616999624398738065822865275834319687338980349145399545103973166703877490484824420254046330570059319017565549803030062152500022736906349037779542134955464970633017010511127565314170497059478221817670202836400000274133411893265209905845375729688421030155166795073657126969867828409210620561611557771709804183615910855553386255847932396994426922945449063295656335115554725842438348612091273927208029466925350322001263249149365442512894967889682875211377732647059799461709953278671971984311754669582611041905852195859711030949718674072972976050346829090365146529554512565496541482662332009999479302490058748145199530586928993179455179320597851697260014649355575060247727835925751084988911271577722705192887551419811028382539179298226740121091814380162824652956002635791166225508594334643520395844248070900796770265428481631875100612459204335782897716488393894845472203402221648622739082444031509084115783659256903327464433902751521890153508669860516000302973362474769265799014329137081539861873622598042079654650282886470389676661631533954749228307401877332118094387017310824794803506540839039126173074840931038346648415614522986285132150957378830351563298079854394275514542136458343138783072247548331640751143313811123892951832190718128022534184115914954317919062656241490782958279315279724366305700767365861777840115418259358461792363060048391650328844225187381318541183176615885549208028569057487410339832852280495628678489310995169428390667410026261625302451717360856410945537842087239568906202442049049079954471541279874245877465352128814435684544546857031332058029642652470198438318201233716255359288144048478264421344744011777457910293836159225966772000716029989653568695141540429329407613102851734590849903493742314733288414527539906167354168549397484359150145336777566451963734613667142885842875470660197323760395273119192197144729307092181306589603773290227621515241766381931088657075353388552644750662773657308666504127959031844262348868418930172576764413235227419338951189377228901624675057087405946831585743760966004079591795841043678330725205502005459830273035179552402532297665371332265827960860695787988530384449577477793318989259479855933090270250448130737720187196819146269328146864364248603012724018560874174601895619692949883441159267625921119441807970988921697800513512838389253435027067090886674935262819207484483740664448462154636485079507606340073470686297560749778841900393573693088580778116222482159892279365001567878519827813024946387988323341158362516148987979626487478485465051805025750010249635519936449865767768521009464420863331811841822121136884677853946084763416812234992618628760780948507846324307018586632178012539007699634462352877177930898972426539864595084241399794203831887836762857889671466507648657726375653912769644536849041626959531319111121347164613108783740968951267215242171667415896441240233805581729400029609935934379428802877005555860286739165381458483701167990380903961008619042736921323738934557282128425041032890667459181196062290966625075898410160847590958787946938843851410925778447188749124875744383536265360627683993833666677297356259688163443367017217509035874765934937983410937769003673292369648989631801313845896555910323696365135436029011690605025949560048112606505751064834450588068948103147440516575748143852766981259509558087907135193412059564249420366950495412482693430677748085681482168451242935778188277630558470806367688437518600134831755808187090661173619889021725994881050128557423707034125206472229718442872786386195431540372248577720690843218170131073054417491234918095110759211619665394022304708836417119892300067168894976591679677480736330202750255230784429294264122120303202016917723122310464076147241112245558658626176310122017418961619641456011650734222993959718021384622774196413458746204888649508555467750834599679829427465590139942892066580828282960837636619182020414507448013007658244757974372807858900398542669546811039918470357629400606957655159750633728993527101246161524360845001587913299944395609377742662902357988756249678882203650974027603415408319942691724605698605194761981749303167440672809614586667535868156934826463277504349016549643062513049594242877249488537532069632466084259192243600090054384141846655771769908032320832262134541304793276680561407442568633625296271742355471897032045322333760563239319413762912279150532411785556918444106073102112222676766708179837871741856522220720648682220829118049904872555709588000189074242043918903958219364751011473349338488907616212104760931279642715947989505757217315918807042099906062160428422819236002510297131186875342514356224015685562140494413263534871536425557658002561648566995574629219264336092804199897129055117606985034682459902108225465647447345686227318445084982229706624041650588624707461965994102130279378352860175930176780093357757731804401576056241953345320147124719291600421521267089553842683047025333667591775488068197426064343111040376289388453609799665254521733706550962110264829735854811493808705000390462820581329303205207527380696587719296781513764510484728037460133081029268444096966569762406188832588421718078032138004312837624214986879179710072208746210465422981836908583048514527842573592483283158183114502742403966464556932934223866910887573016961216835846871836169237748538458633709482487803964015019634484774963821355676515367929358313135548082678436761458064986334163294895807564761190732747207772167451476254639970083643732829262559483218828067466682574405795144560323895002640283508526733068445368360487003706551919143391054105274176969771158300146124098571632954245939164497903934223342205589119073035447111408149507432011963924883865852050480037109275452498581550586335181313082337605522782421493964753749055352830860423175360424364036184227995485796124047881251858105464652199748534146406055280764757626276983163235670642730509992298223732230988970328213272499476184582093625358861412894411653602146737423586418882839176250039130046108144552798953212366799566929814208887789386655979510446734768302725685794561261293482216867099811346079485213589302441351092328820245895636925874357511388240402447739465489195051242418858822416726049548637073960185414304328567573493326493060066693425654229470365963204608720576408590943553318124553308151578320600639815888736695586213478272729103589372365118412199849111515967260053442685295810519258009863342783286189779213086555517396301051172569921357901642511356092523110115288116916669181192452105246346783174355140603399260400859041253232038857076745826618331229916103554915863940870510302611853799018070684089103323498492591074927447104623863241594665790228162017723322240523587624471490702668849979771368464925949280242746660280822530905761240583424915614175956228715413962410118131400670336527507927628287302873624725214247798000119764511992833347737824787730037206674159869265854174939847624534174564185303717473755146927062968794383506757336135983387107182877923298479406301423070244190905022677023557849379488333822399380025517648424394694005798024443901920673038953364797132010300286804413133379902802057868429962242432172020693490418296536146798845927036517433362338803375183637730559716583536954075216351220339564517350986304864315972664274474316787239033910086372202170127151267154793459815035877091597125967623996300548655657683007939318971465782656561776443475514798954343451067823042375991778259147184744658939114840261529886394597720788073677031827263654166552011148195400411734451945564771516251979520542428707172255005316560041159553193464140056096627924339689501446954071272470337812460684423878260693922031540770940368292464073122642358403504382391822334943541171105718862285730855971433011686134368605728485098406623899475750746373291351945201115411015980073810539480476089093042964879190235250757517977036707015663074897614216252633818472919428331863605657199364161462254842003627468555726339187808279767781657334800569853484923794186518035304470041690682671014044643739704076943098522408375107373196506828517568841912139600386850451113746307709151568666107558377410004475029815464065934443001636195204572594297361926054851621152750187614651170580737046157631125130629526255171479906220428803239661046110280352430480679245682015950632149656745838451396236869369905022031217324466415844930360525912651336938997770526195907076000059977130409583456405423014588674907697688672736003464206479130927366943742890720876576648174743465981368839977619487563349406291025880324727593555486298840425102508779453973149258215351338404994378314402547515735165171741222562679943508577228688410116976246306655466785401938602218212117921686345624933558430936553723568354776732037059577481958263439621494725297666016603664131844219843389421228617330755597465026487945706592658463632875761223722732382880976702266793784702220060071208221211085814605659807107974075834506723059278683630936227593500791804650667877454839836161983324452580844480555209605689248721011944200572088122427744512635709923332059248652357530215269649225031644745510742090260669679503260076280950896147613517303410121654819441565545401798299808432781051064849293164721517692391326051947683696511404885157586370785236684063911619459956689772900484553356058532729807145113530772058057591731244553132408590158509482758009370284103882807005497899629094700562038625192378626047233965492576402883816126671084356592106371577792004793334365251772679419972599979136723693545040224823059651357600927938003122041548934699188467354734104236968347755041851864692797625008836873909765384052100328495090567564487085321598596366602234805841967178286076662426793505142203336606693675854959947123007518004130053635054881643879205932133237385758262978410923146615644674693236414478357213310262634372015507223025615309395429233809279328677545398741879890969962334929132011902993627626423073993914498480444082567532207437493859222156271856259000432209524004961489641661178305952180147017555813968539093879323657946912328328596811162191028691165021384630722417225479627994751055397329187712215004407654180137796388677044218935959399798202084885822453466247725119465264098535254245294936277555674924325252128240108398595842937655658896327392918348607570944987858582944622795989578800363042156538357924841570282017532490281251700910482940782617953276102170651896798545274762907560064270061840519891135482847211903196324498778268187370122317854308309250456941273257729404221736703831496908924850277498872296573149460151141540169615126878443974656808546127889781706346513480519703572428992973985310066291713282416268325597644185664141105851217165831125869724892874243932728672863284199405907772172089465999684354894455599240085890575003058637398183030306376942998696938245299627711734504014232557235102839670349075173921984406862070838877561685706837028112467716398416562414205432081128676720953848652345908506071537912710705978500973825506513079339358519108988946639492128009314436815713583086635758822095276801341988932467649141357697008433647567002267172568663846381293613244588303659531750230353785199461439516427476935728414388824073441634659787678318366021104696549449246898126029506149862016949466721048486819729847847680556953423650900813453536393733907516234776315324166555882453709065684550818994177103505305073939803240810075952443342420045954992361477669909382641410645677978344382340444336984131614749588500956697076046425980012248825278699435304693320684634400099668053104526657185972541585801122600562388767008024658142749928753786758406607335405578289049465621800125561570326259343330684775783073813791363098323733687631316443864406310712753337221242303142857356177726543321134281432637135067150228389167794668641739001206469484759498695917758038540924718448631464637441370833016984077104356429475951270459749541351089716336322436144038181556376939995927736889669951019864471642544989041878805382824887843842516074990211777148645535476801302340483066171458121958088455436954530615474256707832558793635984774558955638476785474347937814343343666931462332020407997814778571732545753237404014657969668038293943729049537652898836509687634808544286267479911609777807677566313511697373026790285638618087514285110520751202819631499432654262662862813905447444774626914860883487799774011640061047438492397308679400492145529957953860128260241782414284784074369119166738621650765787190449339432237511365169259950603309228754042526517682735626379402081547294900385072500033132461565076172923156867973557087929731447686935656663688686894655321762688054070202909671531874083439526196317618026977056971348595556560659878594937794623291673972720154162369170763757675328754400749188346550154947263964825411675304303877365613557881209226691270102619173433659221490130900686113820432774389225966582508993527587953646031277911759920589350528133667639183158926663803396799302715581306761652316173661444001236225915767139073561488394106940667803971640814758163673703832358390007607234583348531368990210069283551136968345051612300535479297996782310315766520941303282707801524727056356992682801420768724049030450602158095993247111621950853248147469909760803267345658918901432554882205614624207009466002176433119928631252941104480430527723269986161154252641949744204411283043949672742424826138002190382541451130861763482192488150490377248963132865326993059402454794906923284932137468655024512682461305987148038620416756556987051252105512664635689321862013428050853407877556859421018506619466483330756592217098284943059796205561939156551593497452527950319624949491798561788218362307379383035915371767196204336121512930240060436749626487626461644522560072715232644153811447938394119505455060033261379539650871452376758814634259933520026374178554148241236525042186746050683722794693935722169961492104030092245608474562602284764047846301775790456417798341543893515524905453163859658998243059884433685655029251378802984510875036843681620058428607561461160606829955824624832845846819986924581458212234396273973292573763719230618084259849564072920977995196236442456165414100383248046343706838950726439366558835700296196465138322273796258279977793583847675226359545726609730834896541125437143372056438329057038051609343120303261741287510523953038511185054253033555506852197994328860186143634323530934012548013925355719891841349878905875202167193359845321468326412057755154649876122289195904375936801801598737403133652260109329792204744975409320988263609356231968766859237023456527215948133114119045196104254873664066041136993480939852657332225716491174371164457265841181169235835472598018811787482484568389648976310826203124067762172858214933814914870021132278505397765599972653046708876960279476754379253070278340273266528657338794533050895971274547648525978799132125920198270149974283423239420653929704780005757383097110181595599923565247721693814750005338014934247688930136127320061017363390782943336388629417008755515318173995586327622025762407401610986662855227635654575313893284775353085414568300948908258656963073302050003308706254804669295051934191875124669249707421727699566724982599390172229253036632316570760436340497719925699980417880327686035380867424920212685193270259245700671920725447437121030016825520127479119774168250865829831094883638186925504858805033873683168173744369494972785193380066445585547739128637693522582899044226337521329693908938122482398315539552306411339187502010400588402464422921528706709483621213578672627777439365526483475495215111398127984016193272330084219106984352421020623446160235570709109901679352290433188407786092520947991803186838891442815304102356769502403441126686094139953618690093650190507270969435683659411293275961897364297858609417422392143712162302393939620868675383503727686047111102486555248690053959040761138517013009449595179643762563968416429399372811394436495061104101969685320753918031199712878328781780384106218859153430036398953915115928906655253280222430661604847729778249928587563876754493150824249329888320050742226838560744356999639037947599713845918037534190676132886448048283134119519912218610112886928264702881021192766996623036602622138929520299294264001021197327837701754211100847226436849687158347691659598952516943704465472700080827535923302965185457733976034604301000018885005831632167345498033949714236046662428878113540838688506178024596917552940822997943336866251913833559752513034868574417351272257927169681946437097304465940152140941029446305471589297755293460817700367313922479107487605071034601155343591136813782623265267744238516475093746360254342363330041878306847896504591776892742190721086468674067542495874748483260487058135712924045574801029536994700814416994723756994922012175468166389162196748455506539096887324375731739459893176612831509977586431457261210206381672948145103588314685771867289285042134404573876767550746977731614691287602281287266874899611939226164218716106141783881927811256595900724025361845998097401170789072398417733129775521269262862458469998200579864248956116812285653638298331687583121672232694084847258377810439015795437146394481870453181953626984128901543349804243893964660460216396287769638399792242992733570453348382123476034861295914965680505696318493899893192226028541706472035795036601868659550745192688110053285358760082636578583634173526550118499649738248277257219305348720903543213821758625184637119025556804099430373900798078573375296876421491856465119190289554213160689121562468362067535982161917281367220241669553329277477809154843447790066911433501215473735678973457507520011584307898642729017052372455696543824986647312274910392551614359638592889903961753390777926674717255259625950718213834247673441748416746696496617196824736737191223342306113979495276424018848354584752761016776064650579157005774065585608219526402549806664363588519406974301664911290269220761413494587611734193102635263284521337968774089445784286162392157804168435990375517176496098391928881732783234163836170011795188474605781137160119379992601744947300363640979144888601738954746108857873731987190862711867120865674237741353849356604823539098063313142677648176782962568027673722495221753408743539375906914913149767387663338536273358970579368150545731298770076703315686316190289523881815665863514566906048902248584295407456560867940900014625511576670164592580832714191289354298864301635932993409650123464164233935159634113959675484841999758366249765906510432299691893496639429984947763874789921925753519386757693631052440185130805844563824982473218261940325404427404004230788958984676828911022121414677737515123429577407293447637398158642119994136738755105138820882559353396193419527716796554601855584964425846830560385928494728491417135343790567738346070517326474400210452823676096567457377702404197933153767835557854702330951569033774900796763145304008216937361887754846737059089340930020152593661880877970369793689323323942102441260188952244044947082074552044875748599236539809734558656978539884224453489615003147337357984966220873419699388852359774977641583734889539226662808752346008557193231529914284130194744408663228696130584056073906565677372227566713477171750501253365500823909559925920269121297407978946594021255680505472025310622215849826254969946236086671064307335657183409176795026034282831718079030467929929999621981819683794309961186876833093489289181979714137752900441590350912507242238421613129800640814999862937118884411043253183716078031714810523598684447213240762373802492820216040829608059558473982993307655262375813250134487834121394876520726472297818840869055516607991199375418660386036692432057208529151385075945147694542854653700724714629746622334480841022272819874055180742676187744037387341614885005632369654493405745160136071902769678794703278627123951067743773773917005981109451490037653071751018554395996778325441360136701822270225421960462772495682234700831754299722953870239539360849243216485928948794017803382426812672524924837813624847245743329605958825087646935210930147943468678656846067880597289293211997185312853977202445277095608883136521280803463919815091861456123357720250895931232087350064963930420220707371342628307798794196995298219020009674155135909748847557903178627748640329912857623125134557823195410268008964283631351078458039854599549574518501969460292898867593823479195641446588856978404455159025881214890750340969665141573648840194879206586730999037037356355852355271336549121286010995541878722273982948937802564187062713435389114836768697213841108772191693516285226490577219283221871742827155393129474171370012110738806657903797441401536144644933666756413846104170633116366681408146399201544477171822866282865895887770196989234418757265779999757546238871051355491661747689704435812815564463169427712095728291611824231377146723058650721183438146161999757853318546721449912874320862064565695415711919510674954759169015411578689813975516148664987337159724807288568209304691221412327802790903145394431962437878523085122138118278227878540673011301773233192279820774226882116770364431057941239519269079717912862603197739074655696821466720838774564166627982731949594683620477131297944788207261853149137901711022504625119213021009984851105513316257982083101241894648251490398437705398114292638013552904332282706836943132197321268862261306465591386717171469778305456719829435387743305447934501622118899315824674664584398394644159128592362327049113526909490061923541505151941007238892162790116840826941239342567272130923012030169792924561207150164300985454373856105120377877249514196566714116411083182948515879458510423390184490678772292895016067817065269969015411713924843826159589245308310676109714780814483936241829019095502735046812372504890772728372518101532582030822504216404832812633148917698905187264305554280413979246531588524329772593974850718287379068378141343681115774548407666390518069259427451684747730183865191469324846824397567482197887308252736063030066607052880001031198574660342455722921138132708083315114960158644815994510167126196800744086742428019465756142880685600152306311875279811635157706288400402086884504799660197127212887268509207889449315865878408742907255339779489563084802237221846064882051857989626165551622895327450086583324253918709161645670720563828783213960315226065930394105088331347966354693839931238021245017814472151812061916488534361841223992143694057013532515736041354328455071598272482795286723870712121102992885899825146302508920568063039223863434014921884123410075193509974505409859732960391110109403591021819083290335837978267507414380164088122293459118737892138889745347475598762836819043677066919906516785909693877806805183587812213472472529067531857357355417709739050888848838818705322392572738871856152239423264085403021362099145830282858616668619127185612848605931783664506700850583439099136539646688526415563786470212875772197683815023510166220047739979910213476320204586596527742796867477493034540941213962884324635247645854390215964583428204154681008646293989868427952630098298814616911671614056413616139193488322930630475035552546605103361517164449053910169295419236662289610243416961189789224562258972647779802083430118256826136136714258128473746747641742461432467907927958629646775465120350172489324729026613267299061569441008187530245197843816822365472168166515744470387915174376141443918242402419837647212714640057177918110034520206208901940239725156804828127353736052731677803722753048669827860004827044338086326204727571952972499353336048272841217080580601762102707414331184724123120294649636962464144561758867690121489623928458014943263850830693971515072192132005211470935299749435201806221913807922426183404806262289385777128163638063360447517159972546693083901241937709972518001420455369907908802629945618669833769141186708547058533194010471590772395707919218693695567376237583097498864583010190494168496413831786377398470756815972450442021567458244961294802812557238255887115081820133923424676929357194480681383734424283376227856850243552021183729886002470788651982193578932062905488527241766396640599947835437769478932285575075944294937017366204078426144055893213462798004310005081518667274532312219507736870798878572852705372588100118308633870184340013670313261190380457224970511377353289612100041737351457850077580613502438947309401607260613690228316926431824217109931335955085377777492219536070203215807881275249125728802346621591207229637555956450732557287919406969535111649218141485623978397046536696694616117483123492603067489877047473779790285008070916585437230663704523209944330681544018364104460946893944014404804771435298411435680648117831725538910575366233419585364991029447543185673247422588582474902536112229894607900221029930109884732140499611910702936935455460492618148159901859835250434981557434779144063772324912664074478742746448307692888940129124343827097281520790115121218903133455129452576119406483300257693819549476485606260514151963527566246381813379735636264609846512470876385116843695209245838335944749340048838112432625383437775335480491422649531292764895480378244909603774433122106957514875593297296666503017659576133429846492783756397389080016701828938343154191626243833690470867722251187858872225227381414151125409377085898877430995122297087064027897889123769875542312832104427630930033940955330367690801286495282492761084089716487326954366542026497521111021803817724815150462811930822060800811620579078472446070111713499831233838453432113533377604469820624050027574885984843292921413290255255741973002921698843561716455931462918654413604415340087765674469823229970424378034381248479083760013848231759817082926236932399738939921805292364613588773907385419504522593667515078646471794961364909071347295715170770836245092966087437024624539289863690497871013007925949318546953351584879994360618849325973189759832235992791485860774451048325909207161373168593743661576966189523116749393354216415457898635544185221646153912565390604414231319976527125910871219157338871375141686831972962164799660460785119730493881749520056275716706696889501587121025475771946640923943827540016093411766019004225134118727342662689166709963418919299061359317979945587708379165020177893935273693607356288164291321604636091934158104819599204813811686626219488951164541296801174790683090402348216492479699557876942745737429894554839980204059031996623815555401859313146102604290686189231007884411912880049724292389262273805447784120664836016674315484595825322567926489657559977045483185984667765095314551740767395271205063062591782504854274819696911199676077731728679679305744802114254120634989403709687797317668490234696059868213809104063998696537289820351506509261517485459668351622463854939352053381818321853168517088861947292697494156429474260473721179327291329123963187864414909045751902639491481964273622824421617367496051494840510944808808476407698834232210734994273597209118112201753560262012738055967148043786600605561998820755549731472588940121935432003757967544276523822917675246864103923985275881408632884960102834854788325096912045536153924314090400141508837672282742155624315675866191332739493095854688189530609834519163917164847343447943196546856664961308248038112551926662420097077300136951479152715195109796181519287102626516138917764317625133972731354911910423834184266494530284094568540660904488208784112168687810794848024133121465139586389498312328045370782255201120268359598948547709667780978515091932377216003981711154470957503948856531166197521226725738843629191302614170616233488252287627884344956026563795406343704061871254517624614278177988096748932974601943035346964746008512251818082291064026956380123200400570790081595480955594015014291656622659457619292672969382613421811135584225900806847020292433615744422326769288885741717173444472919941439809497107410475626668068502176739743752248983069068194493298553714148313056962075944543913831862859922934617979260074856698604545205128966338057144998492502978233967314754795171909680027187529063590850719115062269155108762871586199821194441924539895924096217226299035431682048666537161186554466944481941839331586064905370565933693791866641982971471892404777447980957418390999879100305195051181504306436137084700226766648869784678264103936936925131528512744817060527314414594420120341106822066295064423450309623171704376213005867849449316646629506587377515440028206373969657745146847578714142620208055785143558086036338159660200882928497688554573609046167219892731263216483330310779937633890509567296965748288636843535416093809227858954612417459991951298530835332956454629059451097150971099393100535425051306826508978719845127703599403899310492449950657914181880981798565548305290920819101299445721207888830427958618113131205746840227270358661156334050300288150099883041992709398540997823348701191847441964556722031251303492889583694815873108690809488617430681175372368255043951693329968354474639082107871411144891489043203173137627215934745409231860304827074431046197074018898916311348430036834251134222296667228427294729218975150520315545253709806369114567157061143470985338083448299638448539081516184366373496061838362024836134794950763482876253866183137995689193943399101590305110628948632404398022286545762172713649802874977278831324762907191163581999312267320372176525502912060401980035002842487634236722618905735963159016369234496583454361797182832946452963637969978655730375828507944040233616544060837019384278693444172184627527322612498065607471108028008817474539107841804079798390158315393422520821690267167539890317627420266857986650387316296148476957381319197188252281634653652363243214335277811917160460833445812485958595996307827468727041273689170589697020568253145753955250020093226339379599829578706472902642425366299808059428860358633053006503996348704338621744445551325403392631848334335185791636764452473568821932002119063954434805225457550910643140709450058117109265065203107644308413546831989474833186482267424258302133401975882853354770345569593431246524258975366446189730403281364749862107773034881753537342104076661042195977204177236658824749309075446339271799505976061522086824128511916450003441324205209464121936792459909671362127099303654921408835690192445586553977185144319016982232658904576376303739439548072854283994776492918741260990513251776062081238433909255057276712952909767564737788778497382422956058906354696676475558909780084156780949263024170283430349373002348099931365766776359430584246350445980834521315904348473273073714952317384357126799250285591724397810222492159939372485872127669499283669454107903676128043068305112638284668321785004282701143609027214040668135398553315574377529938909859125855786838743547334754455001930182172888648298348894655952608962918832777677050547759846508522112747478152912397691704638888125248855829026519556950833048739820790908279742996020870164209585559221912707131509707269411815656636622289836369512557760612958443009734830134005487886998996938857835847318623676978274872046973129405138438773759065533302078258487678156341761804565438676825226745063305188016526925216126060868972076775414839149161570583121295501687623437757653551422400182358800567076039844549343929624159383480664361806295564079342794602384050580606071667568993897017741692087131925617914803774270107186119069759256544556397115411723953870423799386397657072322342834546327479442976550991615742179496501831505837012888512940229356190588532908762941912094798335854372812343470192099475912166843631082038246130343361856334000230333499230044978009386724385980217369607854742226318977389206304072153638061189572389004668833916955357877443151208296876858435322054173831325775939058264379071842682623391911323914162943526652186038463708263263942359098919052319914665078392970924726078514941944721559830235809659371595923952101121716000501399803514292796583378207197071377392859110289624269817597356376779488809759445264510266687469289657614135379196291352716664855945396918366511337361498542915073109806668030216469819248530980926541998571130188487646685428900495026659760310935605662371591623951519247407187954453772587077481177158111246573653622678241045718952168241324224806336564186439267174661805897972259341166987454884850873238031837407711678104706978717063766369256929128213314563167152491338245113081214096883818055069253787261766167130658988941010836332078162052933225733320545525407254476138767771773537433254198216932614346362509033915055812179448733462229192267197877182122874909938865253397124246273124439140416878149148238191027215838129964218009387723911301955149494809301800375490811411029402593651615003627247662349563875001654800748821036439302800932305207091941616308614670208100694682303312834792820108276547257037764601965914940413057116557478861182916403882804685129588745176290567745800635074531112879509971432553741976502416986187155056039588889930862047984893820686944057097823203337810227627142742580603348566794389578235996136337366702962171302181344671415715416476636382860710620049692161066255431120126553281721370675232630517328877450632461614784301832714598024784681328831223517910315741130103299055305600340051219632035012715240282128573499403489530867901501240859216458782892948022384733523340068812600311389631813636109262515942696620500030116906575964786791440472269847131643144398039121215626745033237339363592321130582504446511105357763933054247576585729350180267171354152047605383219817081284857849199817482063513031438626330633802133194723141050691649111793010863401241597348843774548976671444958093584341771947341958902893961358164232099647077969422968319790291296879470175346121727423833984041405052976435377626589466961792098287836422815363416398854456990370161059818724145396347849960334674096851092283007707198788819574455670270287490687723127078018695158653078107756619203625375388610040984061172918078108491910573657299439274069301581897341138555032576264204392752164956879831607534219156426986605310409513427275632807385266348506790639689937094381913390758077446472339517879504905046175757935962103094072258255639512833107414243067748123137575868311689291605668346258853425197983224692303727275674361624620915339042401026637982805205707216394677018722922859050486509537853554625244553690031070289713965118060711427763565288942303143026640458497401571089242877329574897490273717110795843360658936633685407033969863746139706348669808588336436347948414473290245435995845696779697964868672469673775496436384202782015526630758278869897949900869094281328170758884524411008324283894611701892573061704721536450204077353744403882654569993563989238651504714970305076336767170354764939890871976586816081789188110246119851786603096847490086228394009045674285402969117659566133851771651216462158867291622620169158771771663757131873034435747567154808579119512386832467774607396663071062857301497871855818276278084459006834052915594774873388241320044284528347156776814843077752338084058573874016842332653703953162030133261398039225562461794887743139597479880790825800991271677405860144968578695883096940927564973787341556612208271629673048093573415707957439850196740292178693948042367009461584892297809511872061346815291763210463750576589528272973428559582915022824376982106947060489488955135465760482337721486560829313517364092382643280392688156334958560775595315141593571071794931374016203229142285640274158408006134199915908718160155295565739937093184545990720905096950320548600381901378203114100905053506966546368570847799031574879922848126831833098000593349858398717672191326193107898437988014889553908467300271859732967920520050594893611041752539074726182801803947974312430486352832220395900296318365598290616650890010538216572795853439772818116009757597552522709202274421008774005772317280527769085939055552502107767422807227117931788116549346682563103106773321661520294349669901857062702147889981013563730547167040310959495969226013281227442374117667242572526391279109214281693726935088392803288546384560405594034041289498538856493480494896941788687854427305018869441867932641972040340712587657347582902305327738441922889216058873263253913164460554334802406792976680998766888588112731391707177806443540592992993219183908988991759358246882241765175299499724561440483972614722804308975863698747278376406798002675842389628029787832448096800678668044126934872609158441491194359747116772497605951578146770104170968123556017263417537470989762916784349896737676263316509366668038830486281444373915334330100432509645930479008811068088285422614764792470558461010350569866596584884783298139063749318636263289674959627016804207681653470053420794579660434154039220817728207903740734700312870064817603967175816724579294624175374812291723147390609998763181414204907646180383438938437271522213793283426275716946829320873503444867095070450651795724669091827629083121868548675893243023826246742229986352638065074823297487062953653078451231093785018466976346421062569160310130165625462308702003610670285613423367470549620963231113874563066085902740455472902291681281315610553530747097801176457175772697791599025597358579421901564627272158481026836695397588809858603936394636929728846657226204348607619654514355397560700341640369547377389346937026221598044638628368676211328355766686353292323716567429527318513469591899467900764681505213272969736594460314530788560367872828904650941074889851765825195407426174382404236633225793407604480963078997436043367479933141119911141142881926781287289298990511832807669332064392067712808256128465516446867463450594507165018050543191816478129049972249437949919156005949810142593455270204438597105183085761840412314741480871703604585523530590063587259279507488214486302731715994458609133012915401699703544596492047110435172221535566295269842717547746930336441207417870213972706754962299242617321418570359378068927107782052791720913552454297830629300562889919879270092837674494938371865923394061349509937130543746013158769472155058262643244300390851380997272559948965372127599297427692611789183610023776575968631475011180635742634401324826583861451400443625239436400925427255752165854327874014713192413625825020906503578470069231919464286954283620780222870620388257780485622173565368344142099830141255997871336992690620441452195127138277848039823734225394292162813627153206633561067745000675094260402378362409473636662429964760573918562372481316981975393493312786036485647753294161468484634351758422645040496019666065458524790877089239666076747996740658038844569030895887837272171006266468862223541823105519750522408114804923617182409777833546194158890613513978337649290222888267276931899321871691015703748829951513862497196743540455536353185265551682878677497508909489406808459513266706072503323204281558637706432365895961653704088745801326804490922729207026937262946806960491032853083619254033540083239269207189041350328106845290402870866345618759614035678931478742316660641631555656506306307439922244335209202586326281662126991661540168535926753659179907068854238634898515130567795866187679054178548630353272163126043027363265494793908576900653224220555570342818365784533466313741229750633297065275202025368518965368336795386325450807756298906805140897831511095061561372992646132592718850346671161439494888069233080362056836741084375548802378816043995746102616035308396287401647520564530076817891633516498511072392683810800679182040848977806937355212895097955724263424910158748238637806785004784684863648320449591645875590652308190003211630371826278594542034224668502658024763048446437207756824022564455664522065010370704981303487126164350567865957344326203440621476329834611991069336619188478578799094113685662525737482465873950520583467272421438379950194369504592292199614727290776882425309722191488594046981192487174634243504248533404708214341734829397720855894239528049299268925428965773021172598313348557353017294051050458758617620539198170717216089284117090133781912894612793014468792507402850906273902168783443255229906952527139631452188035047598579765319502112637041211613133016136791778664578159518558305225358191777128084211013498228504634718444263966953218868355102999155664895091909929424801147887180361623355888021385496259295040767154442640622355401257092673949084980585295022945162331210885374466041718568060137749908381890100582754792036070947996012446888317991598962386327752086478998352098106032470163789781563624428565915310452914466094962468127328050747238867171149716071533064955610456117834815966693768146068975148418176198504933874804301256243113083250474310240495153005241231032909363384127229460688514052264848460882997202557639486620570318425246749184324033154791215005385756317577411585735155268363937071842863246700592826845523191121973702444112234285117805276952673863951397747298263410774176331829285206920490343651955930022650978794649309784824241812405249049266672131503154234395786230904800018217034652304058342856007327147275844426592251974572966179032484111584115150319290243913828689941940116021692130180044232383150311438123556107066921532868138043585581111374777682269746593156342813660410986745477774367623271354451409622980440717704205024009101912164519219604487121335746041555922034938243470043226252459941019753056945217712992202578401785931176123584281235745842429077874147338055010357631513353201273798929052081385472005401825393067554738557058922784712347611704725252515081371173417755230618645204136433196126142093642293594610930497556803122003586474927260644816489114908816548606135475164434169423520156294588930296068874428845918233345300834927523159653012868916395363517973047658743039439269427316022756205919042412522711795485926028104052082033117329965288252325395349173137639525777279368485918942136549716811292745316760735167888074063246888138488084620483703169558271841535271868953492521652172675505302560837484143010470385709532412729565676815441765540914465195831942434515422368629511207348922067448013361769922620548570336081190759667374466896810948227215942781985492573298706076896383069869868545218217440371043065238818832919615623692941479164599753828534568089324448553546022875972271457470570003945337281543344408016879315837433361398746443686601882010687968561680916452226507057146557149722909769408355809416536366117844182504997852286338986189652248369428346041044311807467715024383702407109713890446872093597928267890548801771856385290088437449573652482508415368043120041248151772100218044059709421773454160560322485387718799587016288229390167151808391983730285472257272454258208940109298119539705763962374023120502712124582004943103364615351798384537297467550866622169368531659469740468738956029728478895016897238223472293120576017611440665932868189075091341263252038493414208644860415008820057969598075820800092758000936146597005147319988225076347292404586762124455920061323637719511675516624289108309255879396358313020261647972062146817749571887368464720380825507483822435979101616363119782673294802316325083152458904626841929981381045319328758699704599821836524754863673995834660624673863741975206307483781820253269802508311609353373509644800583087377111900977294998804451697797578431269624393328097760344374596153747571633671124503448829531055008685110453841062837457293345242560250912864798497955681488483923352505433944288675243079183032419576591977818564686463088644594319507486648095330941688343959402916711537655237454957802125461206444799146457245984717391015734074679495076943975516126768170895910025048977190171942638315718289269690187657874890717693112597959690560843385627502756306848398767340605486859655837670618660222466955679974797653990015590793436641343575557475663096499433026049320373925643022566539261267664009309130284457599817705568459437131927642656669051136209481006867841162400105528559215374189491168639650674835233056015119381120643601607638821655591600682511832894635268613503903600230685865147874949985573352974956755020008126497231461726637150724871507687858458227967177245836082880485487179244332459740338316458480876586253251207360919209165774833117890547915650189604743471028389036268056778132821244705031076516243354132673464037448868086357593561649567754184183815610262513807531280699977053936125446156329737623988692788092650880338521071487074307088933976749837568478567234642620087416989340793197327905601400669797645644374893006890548056955541332901006531427601653227450994832467632118004324264137981972463513752074034790892525301077645960952478074218401759960485179563958001262316992842937666191899666009853544900090378232475671000065854841279606182271611500535575744035159094750689983981009990578227748528763056856507231360442494955377873398632012352824905628148922321757012246620999629487107950914635646556743226760709472843597982621848256953459170390523133374922685991472623288354748650496333078524384108199127813291813435139575490928474031529658453655028694871248928266901910870511252731452812953519293227257449972448654063526221105770214373834347887191337838968780385809090068033976392935635392676144524186967471494219764575913647111121768796666097187947968864922433995447787362033848834470371337136943384274988104115714089087894692531785491712098993026642732885981491646800894780958302754642390702086177274925261642281369890053717917909384643100301151442130423926018620427347722875460637323907451613302631911584819822207480729919565072068218475098725140643197008346786651521128559568703704145418458465608998438214099875751897115415590050396527875215182576148506577775945821769700259615657557453617433816410266805317326718404333860921855461072105504298603382550368436416028198090474857547714026357808317865256604412447963442622434676262840075045065617169206459242640511956043545801640204370148694841828121747172191764680020004469259442814060743926922237016962366620936340005123668205254374313300971641776414501289557515273424028563801395859896272200029794627995974256372255357804068451004036555191904059827619069884610687871465439113278001777943023811136969953565525763165764486305130428469176139588159836315671045602152516207877065419406744810841857868793194216732982065853205896602622942032117892093265129052675727595979146317719595293850265213272248991492430015955922805031860765965800052922353120025203938047561992692710378724983067735090133520908377297506871844594054848586925525288749997399284107054251762652891108409525044695993304513212573007891529868298715944468112975770795150057761056780855737789361967568668705517767949352107866126137832755730767589054104487742873444880440510132726897612237810300026599257563499266662203943927229828761092899583100895140876711739440118629062949300985028415303106289267758565029208092142274610669376236069977090223760786534152313789458917134347151376272466002604433788351178360745201744003985819976569212359724913160139917063066696099281232046911437774936897219504359125954336883464054519592131929875333212398652490981478197984684805786365030320022459386353859643219224509405501961273482844574214556332554424157136805128610352810957879413818760610840730489954021190029882153252752796503174959663213271700671817626378502711197039532858708637952920481121235266900777507226369263262018716020243658659040924817648392551216144101752110506978207706410655682677883619814128158135181359316033230768432334210848324256622192961727379035648411633749462798356813408102479947512496671041814210630535653317409532613748611126355711072129681717082247065357616375132179809774069574169023788850230960243839424436997572929732774166825171229274002929546094165021145263944762942445440772248803477826065723396969296760146164777267979882931463077966719235479229868749732129129662509630309249449715182764855823857339319297534472885783874147183950821604355101166761324504690355580889985869192724160790682104249235185614906265366341029324047374607019932189479788959381411626954889625769736592773393141811959208473966862023015464678194429726330169615994060133595161844780158772626420316797269815145548119495417939806573493074129485636766103883235269186206015101751028176954402325308216995801009577809820360401533907065859418191574063497628324737588144859245520539191768548295582623605977854035285973351042569314826095184374345708032827718265162524520023726325447911187457253933512969371024772441235875174665540208277716072051212629854275497965195713316908246883302396536348376497710544528904160679689957596111906090064361911443614302643263331152512119111520205923010998579911924313562674330542588960895287434842872715835969922247554474655520176875301443854493555837580348045388899351340743548077063209378623549824670450731376447314177248319467678859498931780954670541607779835426326107242511661063486604815661731752793571070243125747034725517499637583081050162471398650193324097208541598370250510969815907867623232668883085608139144716301496964208408903364139441926885804020507674084349516951279215436087709214418192029616563781916649484194161349618053177259668250168179492631654359884039195069958020007782682326877885368340423686801375546952513606476775739149548937821320102194403695333352241179587926747966349480005616357882048576294333002134536500277196562948261860188296405575358171825590712210779103720078982589765531998016918909798938524838917452796831022749908355119114652744518223178772289852667960750961212510851015944694354133639626358732784568479058731378434268405924260773740004280439314753829077418435485316751030963736531632792808847319954191339729335349705542108771470328122181213682115900723881868497523432328557515939135930294698819029821719666965149136106096938518595493002719053809141115167276341748542081633621798179550747210207755570152503337227834539541521907394545355107694141183167810068734660293964684450477035624178365427160784805249387800856889003171469032126143754711744992948250994720250011330443672715166303802776084525437147818441088322344424222326537917727987726497801357022168591492042748784537939013472782237875567358280036334012345566156531661791932880934994113260951097408241898922411304806022050976271612162800384967382837571407372341937238151925300400727914032168386572148485724998483868492969671498039083439655985208099945212860214616030170360198298094347714143003993718104791130514376762189984833434399836133519550279387769894446012179188971701658158073396796530211158362869547712164275483734225614219972033514805531668045109174578662985594892739706590768650377249094480939273280569191315648393787535231987721336246372344841704351005662106510071984050530389966520013738657807940755425053542684801887612030414468887790373544281050514825043074046931919702371355333502853166259957229987034411345417716166328429833723211831152682420278146692874292341733818728372905848547721706683452580379578611898299180952032318719339724503848376497991587556181616006236054144519729975226343862724625810051748641926376068481801310475492490860328841761206694762479992559018394125244148150772020271539435105341664265818959846949179537378645471159639548801022257665972104844792183505044554054617148541589802063550977046273048666191900242600394469174732341196552837028665213903379133176797496949525042829141926948231010874424456398763679813393127840359224166405286750671262217463444869715588158354934700120226629670049681310523924341099764399137265087547563776665441140048477383961714344273357210459871702480905645709020954423390550445671017303160710235903823240905288058220422297388329318539777284855287312143272796435043806324693087184539104006565599399987724032380702826710845295715042161510303770343843511663203436254281103027209207671563663473003680315717035971854932727401257562215209779716829333787357001532498462479481809238305184401618781880900190363529009735472761604579679345790800334830338264353605233798318881756003436255918282026278840660988708442570920700453698550547686083730056959895248760309150363343782199666721252299334097047542095139375744564609210523692029105767613327585248350509776107944356124641938009599334661583281995604432134120225274589260637515573697607159158422368717464494159529527092624787469886439174248886402986165214308025863195188582950631331981521906212508393999032693995352822697736988198267030465076750055004678994936441516540860571936207345874300388584207713492862595006819699716518038260360321853942042130496944311405337345499808754416696905274629586202785279599454248571425152505314342917628571433640587508020707139691219557285841439828960094116308158696517937881129760124931499647664195976306625857789698283902139850728025275506061228565594823859443145387707548795582523165896646286159665967679724499753615792484638331535787191168794385427869987226490543782668298291592031495395170769178112628234750573778111636101512996357032921011071308401043117747400658921511969642135288611125999544169548575497939461030173219016443853720314323754461313790061009947048013275082358370787513753078409172839225585646755785429237404088564854234261450944159466510229935907575444076942204374919548826565546227976181937742316191274314726803017099472640940832277928477034971995717508125019979248834354369128253995551132541261015186068896509513265294545903743640522489074666391966108340536752409855973354581004903057511678083188678476173850365357909846158607053553538866275264201488693795818618932418932068923349064683513394619891727102794863396211463162504943305018464310136251935100126196974403679382512253639512373761658370415365322120968137811072330874310036019154560462433933295915705642598648321302128772049827275688080787546874940422191494127944957534817986466906558695010781087570763755701826713445015342606553170620333006065613271752545855683729301745682201417793884742465384668455633448196696356034257846767611519480408594005665344642292902514453931027639204534067221938214187162999866399500919959845840049709092539605855713817283234935368575713016171021686583138557481985338336824540107369273941496857632897502990040527122770901831860397916418405568067229999795329207489381491534339557481938854313401121564078290409641742458648182409424083528127178777073237078309016131637635490153512338241716591954318489719185615783294524992176509036183211492744124348033717122599873037084174771969124783331318535945086299129933961319830049298556535164845033794865016449319356300976403859643879611885891006541213047120196448323579701265888353758089063174654238850920583965367723267479902468731495355787742695081371223532966815443928106665827903533072678582462165118563080174950166876321085623002395837127462369755260786181946253207845155309210193106826301939179335978199158701546076859655607149573841929797252607358842582991070607699174146087398814257902457070666780919462564528767967113724359965547451850147119218272440193840020589886953042000518881794789141591823617439181995385866757105283230460340757105018177177420310789531739979233412514880516172956274398183070784212354353520944962919509159575240810230587904111514383307731289873616964755830473038897781044871152621669040256475034064025127956537504769632249536133747043151476979116741489176010670958151751523850501457074517510850921721667670334309095492251075501344633042645820435183964101926262076402037816013955081637918056099390540310895276845208825642344191330924651290565963151781280240831250433113993264811223476593879745216718498331059215429207572906413060243142981294154970118242357657311325235349981604270029910859445285836756146469329142539012936408549126714188680533619622717549294264853259034812768334500523226296106309789853940959719858933146667486800002480890884779790927840975838657548809431695822910052007649980339744325737252649149429744780525250369062505342700498332702155319222816790515849167787112437901163864760293578429218542278556899648361714456242737177618091090091780108724319453818662157906545565391143854873660237392059662224983303315742360694217232878616894469310127506128602308223560227657220963169668871890427353497170683211424192808548502813365071054017842987132267731788536026277547285973438404067397206088544514827587503362184802716582179959786401657441737494997678392301411070409157137966325514942075334451658602245913223092680134259081921623208669831005859690174673038333068303959751762223689222855551082074966574025106089453819845232138566473828893804418086453720195791225028264540174168133102623436986278128804511078233150664635409832796054300607034468466959531608114945344042784190350068279230176198033807426437507864355212086398189494327695883038521650539687801022211413044142649927744216178005641054790542271431222739582299830290123638440502015986281935151892359450631712940490658888314140719690609836096095668930439473854297593680921072743828345822130610848647375513356871783131894808932456869842219138594041673004084122609873579138616982772252843776517453603366226683078905994615620106295326786671039607081012397578747236476268999801205172499850517955359203379121159547532150295621823331995585758291330436941459713252204186744934979682412434535741273830181327395568788811950261562470102653994685508292120835088684579288246617525675626811504424402626483864235823111901375599423906689223271700155609702258953651643445441090095799147200459307195663684613571356371559533117177294822493308019190939262438021520554337557581224834852625712924541204465928415594691891954271293304173824279051010737874325163082962487061422158138503344332383674215464751090670586649776328991107000885934046172790256711837299365660011572789108498320590785358488292602863591240804357970237008492186655839046173706943983288929881154427698385564120520054434108025049494803103611694101270555574500951263178055150119715465175481137803835942197984829479497484727489778562877888862999074035172410326618698409960113650957337146751624970452934487396843260197504709038850759155784270927534306692793428899765282798121319245025709556807122438320018709945302175046281320787606946326536072435755170873671947893168831506223167622666828117228938374659422056854698279622149829136954973433894488460061345794948619734678025486473159515336180924850905160084747468667383616878654936401594538880449600074308571764463872878809801419654532606284935654360130566893840324624455821235037607583305114584984326204162197195467430327178679685989967877478317037740381968891507756020499545209629654589703321522162506213615990789093041680623350884888436859420914151527940323375889850883756107263261051782240042276525049440753607017736564378971034815836793230460693705808844233461258302923977190471954488972751932023175312567023839790963936873103816189269618466376369890949643625806182610907733105914622308001438441238240952670041306583661160556413577207810383809308340356791861328497768525477818778743691833017380309089860837606714908322631156006843252922452771065375763448247585333057076355785293778963730936401502369878964956604051190701417755867013790180536618127225907430031652433241503058626414000794770210145094419386483554768710087248023153522682427663209074563591463686823978434098530548729896703377083971674258382665923261070293545275244133433697340232170344371583471265865728122065332466570547421475118931783147520078975120322952049477023602100254187667671156741315673899255972260538230910711905178740490343442324634704080515185803811354199290608620755011789800666176446884978046423832446624298272406451123897174682385555311001847645541852816619277044849500235288173538469801479002890429936585558042162111624536247349277140692902824176493014472246804651658665558663168059614652457087050778872704352139540083111073018320427982075783598744505187327589236805602090870370787635326020899897862909680751129179180387935782574070038325608223271211653740443438485405150311860150413083152398461852058772496158307131961948981642229110850007065435258163952107659398024563755012900519789552450467032956185967890014486724250387601902278112672230433691247961834532827505425356683393211259924511606294683984803218527767171004110321780746014683948511836064447857107824899871361877509187492717077314601371375008250727944676755038491708939217360339951175695983139862886863013093078386491560786070508369534937229640991680850114528997059743132951803841879091900252400620413179604115831322059674009307185572869482957624192777708246834182833578759223882149436471015442415443070772768967599113911606181923592352900439013275373990310917392183558803112303936183715619824721573757394170836500232224050090351699192472417400422039539508140932412648168429217614076901656484316357668725651627077441022918055231004490649451474500610782951614024222532482805296599590007138757117403053992741953282050497936676796006916019148957162219854310384456373629289071893478950181499941480586755683074674437944153697251601837793568065491022402351728978143162451994860208804901413290243490969127477138738429357316405746433082269229794706568354551850801789254902918148653368048790717429587978442414936464240315862613848055380234429725945772139726394115300816742970413663128335283668224983811627625191684965290117689794930536352416147809040710340728950722328096048114924035132660121840734573833179855190266821656776277811920849383492522921757398227090117068648604796783338803831216581200102198721755775487088938936570245919039374577374019805966345769436460523769370959485854346648150065448836235799998625177586720547721666401239674575052578720379026006754479497726712173131817006608510277197217845953327523739102599369862667482362696889497684808008367490201301744986024459085341620201530379428236244812455822642815181652304534871357562523584613990586118288182572067627369315322582526709106508067056820756874192300208440848658977988185964647264603946431404557177810886313428003194784673191928243969926132455118415649246308641252272762962064186697084914494833500211679715594403085899825649190254443691244856670833444493635141484860186476509624759007185131235701413398295647651934283527501184226136050011830257931608213926895317289267229762459804095781764715039651303292944307692805001638215196943540335005790143494984735645145234572749052592751239909374655750064112832852003389246640050107140300147935890740407322916200190604203573827528798455502056505837292633603697804522842498032774588472918885194163569246868693708003038634001432527560676968748206575344345327062904883871425700223045297126656062006495852512628558394401433414890578161051401048033232780693980093441023488849538531841252553825288746158791946874260562041621370468200136267327829962237798872852759500389861415816845372471232561389994407960069143447027101491312175515747459663975687321041325645014035125077352066672731038094582772405475886241166078262327414059948458135672951285760888514448313587972420748944682726826918173129334835750327951591249366021473264364785448625621485811359231236355250613339504506034615564544831971879072876901142297149843359938458088490226314028587734761321531596789548161422547153035572590961005876476531491018647574354671560790110191194966820426713430939405243825471670627308624377892564572186737118934700791449722815634957768615013803453776738243412614815693235829163174206095968958096013502512486651522023642872128617268623196584783974060051308176964812715553774337720943045669457758543741929972496342140180047851246359655342146665903337596600144651120562347597894999640715874726345872029589672144830426189276080605662513765502365043649272661608963530124625151110071948241636884281481774566396871436740218689979074423844396325088745990178993881956337911177539429819507805204104034542197586824050299025548136241414603189207181830154652727256605737184829470872697921042489520712646426834116997933541415508606782945770701267621722287744059649346501769742869280819147256518066881677246061212437451626879979832768723356476305288329307660804957849001817497112971990572824277033835403288789919403179343937460060256770645645153223534608919308176494568987649386098611609104529355585378075342023527956247945807793779125463663410056061073830612691361849810832632956943846140617151761617416289322794798720582490620025853116655515975832157622350077577775674929021612315851446390474605515547563465453571065064029393780620090818714629136630359337008909933667797727794298440737463271677054238194988722131649234145626227041491249084178316221062774116774594632156741858390344662074368162532010767570664542709107551282924364107292659206509608926176726004291987003192926420690579165291193269281728198057386396123806064934503854689256029417131929839510601785966093293183862914418428278378027247736254106257173372783455732051950989667055356292169225012445204004261228194849434409785596165075021872782315960358955160638219047265175347218333848257853628056814249188334882520153376623127688145625887937920296315399213701363636160567470201856345876470866302353930404224847607315080752785764219668983728320611267640450307737772848687332778831941354668007717168225538043123069086751356891923612700139537485619975742878027117580837319803776213364926845079206662284489496728567621100198839929154271867745421460156397248568581281984273638538269251380582648132509355404378916929836367680344016522939708789624009471043753999139153063806919420391564533194091049629143402157827839303497553875169463199942450660688579822323240001127176617137425833010237503113575043204866914711356569261116354423988338824824871966873867642948189854469438580310316505620704600066001027130085135468997678340586734836278659542890601865847928739226293709502028632910188392820672548974815884812405182444140687898897979335657723860677938114605393610501687268658033565647013231830445367618583063664749717651385924132354728419670961692919721933535605826633690904226012826039770097671110787847288563446556267053319359713713285481685908573856092682716562334692190426254138829440648617889010371908286446586788395948835341795157276845288020277517036138114630786509398636845244921406880740433081409879408583302728042415581765285703278045298631007356797198710609528912952815090606741231836319103203798734996597069035751971272864560039814693668117658498140246836393990665611615995733052460705028573722978781499124549517435893244364512541619968700074310370112152332941318406162054643305809397201659784563893981031652133032766685359965837817623798766702978170844199323751523293984848494296683050500895283425522608625682944002245469133604487314481041179207320387283761472976241110922913618479916027708473494173199812521378489295607880783018244127482613318039070966627068058388691114034045109860471755007260104051831465230981320214980413009948534804828233330595748631116349570592965729796179340455831644506623171509464864487337735034890677756617036071883547435909630912317976326679890318237869945667656363586844331120536828952237356599414521968289360620369115334377505062055754144128851231384848811748578225832725119133533996915400241422873286230447457038183540946799855274886482382840893823078697006891558284748736204811425785311057716874636207605205507853976340077717601995297797228584250564225225361298291431979087381902844776507685595677021300142825846722957369428552006418342930318905401949839815212159626431249373209459520716275908260315492411382906990682399008872784436859535421386695059160014544043754611129345912483698094737252468898768466891532414871808247880725330963574086689363818031050441811267650713294606709945599437090502501765045967107726608215886618935788397909680020940905889731549042746776723987355459436330427956723740254456962828442489670182439307416163813178465107238538039561902389061601347011178593643468365101427666191595194201919767065897889902487803796999644169343996874353888369841789601882074612994229353379196535168104222829279865860577199180273779374810930035470452396327801089277240554608211234939694818590628248455631989314536107826508276891532791234884716482281594149384436728632270901556777480684693646845901753447292529885527984237415103815583483474651771987719177495565295816513438808304814484716474389552156191676764051223419666222259699732411193420360589059480251726003403677288925774283605005361910411571221662031154414752546894514958852057278379178569597864393532453854900856973350224707532718450079532852801451663580464782729339254128000705650994700107423825571423360679883447281071777231670611716882315413566351916699208746025180440355447653346636905289658404074144791871306328318179737812925877243779196636167367559635975044899326789658784880613380651782080846400765012331681138827856113140275989014105638002485946750916253292551795081705491523093669192019183149099965599150366019228156947252436456997283599750507054597837789603937765081408227937955802954185792494089734722475562140719667814088888621829708764837380621085939098368050744143953309049858987276483895071586183117622936713528967177463113462203658487658780261288694579529616138562640616837471932288896940771127435515872031514235454204822709912524614770267492586709377838921711832495834523125923774002196946061970761067389187867486627061325120634403922450025477506299535949245393267986685526851661248739065116643785080570148097733573893167267134909339722245124291621576211513640280124412601483435906560539467739400892615899129660504270671314871501630911623252890352280479102163948975215377626948479124892636282714438507672859740415277891609252247902889665969467093671079787017018345494185148569767952813009750860852917982400257779184079093540252156448518660557041940309274833198172060580383079279927395743097397158911736489115682907214777090372758527116534958653845883216658506147722017349292598849614852356844301476125951958681263866059052490174185993155027461066004000421615461517645845795320767954794253159404327405163141740719857605717384098893811122658693554439926033143331043197433753668993010317559662132384095274978381756651303195690279625124392715789257119143913958494492681718078117252849708546571864508285448064145415214441725257662072765079184410252552049441558439062114723673911447884096486772783952506138169657697341139664515932612454134387859187506287927558307320448444242089463166352288626098523032111137717674141034282422304954786277198048776981586993697446741689631878353394315741838279671563373195324213729292320453588412342263594650766536166213627415691014702511950357516818015080668022170916935882690250767614370303772180307456154272999075816328617268111399572162382517839746448965381585243800263689107769373436358797171792164916466156109431266191764497768615218796677536467707167565399062571607138248426428580779739807669914733057512173834590220688757442690096417533528221831928444101949212113580281637372670625843644984063648638350337961480609079462124574367145194307422953177668289404048140015775916464646248079934588062740919092631539179852449599982970082281150833495084723527155200177844163311850207471363517215406083253670700128756885557341037206826339465196597265145244058183302187919195959216123781278902656066025556680966198300633559664740160752579134802875758629997945376290847942508639377997028358647584463898518876247288938952654140072806502091591031691546973976069797257012954590494924052609526808755120192640321703417916010477990622665768779439365601730752362891839019018054363126182940298820826437335577835765857667467382842222779168742065338062960652256410111446078215484307533247673020862005804991560114698515934648445060364795950985828778010597484731499614649179232345678339356915845078557390012783110853307238453605230107746274532336388357708675642252827763984222040211873028231461808935582540263622188310248833018794231164246190241191475706651667464177599325895682817520167828382472518382570463973706816369922373295292075013007818578856395771602560552254627210217544861409517299109783329231290083667648123912346964904759253101435267589393006251786106729778059530037110721071527716001657450327953212432653343121925563771612327371836670870838043816436211866428125194932682749287898882704991426755894340703849287637508597658480119322626509698138819149826497737944808191106661813245792866451927323020924489155999190975037436832199397489450991547412439672332059930189578806468205911097065728018820230913934739084462706733105864342811750396019811147961172752980471050924970894384366017959844110566753956832086772546232163019893715683043127866245528270930923975515077841089198815682147981823459040425149731471502817275672544208168629492301866720973774813246645210138119454163191957343322233261245061439062249596351434897910744641469196192719502519481236033671237381802746800596575404553309870483253620336444233102874156902293092321921640696707355496889541584787899290911501752825073425851469756112957844673255172240719935106150140210610437326546010669033471258061042601642180798692814589127054930399062243726988673230868993792852679501184429592872027254595544390293841733894467780794145081463975831018098048207291272486934342291223973469065685454274109813623984433366869734653691671813984828440282682990196300879729209766813065605251186180539194467874021708248780797743254286890084004053682354093935017590704350323711848905242284892546126613717672071734611415163638919101643112871074118078034825989288601534085599745610714257654394898925524479857947778265955186640378721968311721134155699473739481733725251382852511059402057156593942329359265613321557617292788258732452147138628067077099517037635311370554080892053592118687972990735247185632350174770978384283855577579489566269921764456631624032296792740537737562609322189897929479341944701258158430125940433093223613446166313975145187271758484597705255817797756841278675153349857396411246320988461622739443294553982762365727557742470233882730248291105767551862244367969435878955417695639165119443263113794086164329447726201647564297230778172126117698970327907986596737987067303596747807795387945499092401694653438131235444257306635132824910563793722179012466499049870947297614765808741074379418885434996433800156668170884925733266599545296881356410388202065331321376341142416748060840432734607074269512235233088899563781783414109762451868636654030654451828119788584085538160646034604745258049028118917485404882658119199271301449444057714456653893157626284220668388761520966843194842964304554158599886395354247996637526624736519741894103656161044440357678337658524981144198139859652724348307144107902952588102044484628518994677928528601831405038458915571397586357551644330455188762544860048423331442289956931823949062484953215893008542277716327198626479829417224453951805613472759630061249431722474425650215299653070003550614259144413693981196232986538903184200445392283865794126836474643242118490327391351342618746344310874127014731973398400671414637387007035586364062871139846925563764562326408464771197014333559969127524003151459473671266720885345858248976335652495709957057639618638631399392781321907943348386558163644710741117964946413997326843025407580035164081582911735025160908300569844667590307039275986249644901341794001368912467740980650664767295039758673785305387316729264781729995924209669455037681609194480643115332636768469311938546905026782772387299490305874671578657027196486357396552386658249465719507279829115310872387131407761906137802922492964194212285944844299914210933249427932439391956163465606311421348509438192803596773916739390092040709485830079504787074942394639762995147892814235988731125021715147922397171435253263205181078805478785705701438923131511206953971420263917907996164458517086697180393966288574535655135153406624622799355573743040237212410580415315776675705827923142444454648769488857454107118682214795475179965509574423624702307215874802581151803356874230235495986250045624781188320011257250847182695686880330719047387400062334452755503403915159022385233308985293510492561373266503802831524584548441060666322116498765105693790295734941742855797937338290528570942715102496351217109327275595125096657487959925076348770841802706357610210549729886228208165281788880527422980631768686857081116896988296169686909641727913369187501077221118431878612415543740418787549851144023551793891811790643979821359940637961346630918628515598251785643067736462932350846045543997050121037112792829163227347728220867612372905886380949116204134718226999405968679258635592034609107509271685391854763463705505305461801461146864202426365923910586460861654906739731027087831736680386958824985849919274344021271563629213976030291591016314358073848691395843292468929633558740823780419013745832117879447522603795417238793374021547901514888424986102157321202706575598231294670479562889515191719353000037408406448446754565888496783058197378545990884576712639422604193250709894101385265008129258725110554884888585395844622691052499275545954505212077934008172447907973415641086694690273530089740878874572417605909254607252549527971682657140730280385674798607247606886494146789809257926781786711776817868167069539937306877721554293811413256421465087993573055334628255061862821676981652726501438516238251615687855451418353738802612380449013946764700360963537590267932179626568721205171125336549294763566493950511550982455474670434277788847014512853507772062637183923227719159582139905881332650821957360315643946247105723550860614458467424453620488234978094491595243605212012720693081254019538383042864363241627603813928839249012627709393314109435260749677272854317170369488726349851308108144323845769669682085951914069002140390147289443180950194786295283281986243222931984855600096782502881234535930751708265754127812700774957714992113766696309013631822890290835826924637503327989380527513852819555254363350273126820222873994646082147672158599947904758568505173363181268171020041991061028227528207867813210747444159223206725070293501772255213281473841576601059939085576964571174182926400070534726270697975038855565830206504805967585498695247454182284963938450530731477962618951911657696176135434449035396179993275951139270313555482557511032572556653103245599988500004306100270749508712749496497459548146303180834029755681721370867996022944628087391207302087043913703437707315980555340007599768978989763759727905860282718022117873882356453031333085303308946936294731306334312602646604390517513075507746233130058270632339982297731349267192860550248293927228476722121541284021301470059702342358992248287859079526978455574009935478526413134864916809785686268621886855395230819958224719231605743001989146810611423110596007682742973603101926497518000544838882357865727417629797047250591597614540982568997127575794881111713358434050340577542563993906369610120876637484020430631789330502930587844175693109168334631516222752387866120706171328935785502245240869954243861850932260694758868214322645012416251110142515085270855468260601638813495131372355828381647536765377706458012036043775842562229532034267328209702938136457501900995643165439633407087042100587672566670821841394083249483667120696005181036284585677504911138761876940518497257346986628764183824539321861411745028043842626597939790756536596636322934037096592451958672361820791973201734360643318900942549006896405528573753121176321191136912413103208283652942241717153880898556308211216445302335499631327739428138332655565969627126799814025306702630181718241083238691395264159630485610150775100332789193176497148245624726578258096550508397804493593455551756756779283482451049926467628972288493148631974940403771230324513632882882024706998107675597614153279571273105242382627103715627250310076512761777482002298249077001928923949764480289154163676606167686046721735696050495787866152576863023444321477026924798276688713126480016507487724389158551565891043010681263197850703421478232668430238423430628557545006536697825941757233097470021065689563510570322327321258825442772710944289489001170037110882749341111073424813688078649921384164631285469383703411710486695676345474021801920550029853172152608582265589189604628569403456100708540087170687963301242817933708045259282225169686804692762162381836360509424036581638267141102413716947209457621112433188838437131107087276224720585510478895972628016402585911151385312023771521924599467971215182798312047734981834820275107180659497414054801669382999065485415501661713981312527725576825126397178659837599434158825252763294938612980763667092863881168988272348932307297725449557888650237079455939170270134715740656026324166240246759783008018524284831735908809778624339617351166329392065504318709000584070131809154156256536175177618833602719605160571736353669159370298963614995873578365381984759550044125820411161691268511501917980881360619195934917411110911345953920082831698771812189073753484372037421069093419979502350991357914586434853223712646807149813577934533182964034411981586177221658172763065935954428378207895437513518793179434159457005665646585777063793652169986811412886515185941436772434709481221572533635353208444197434097016537282844660444697531939235185603487145360282422480870562257072170278204151503359119089993272898114272606483578889081429472500531322598557453488723756468711442024691994411842568901055792220022764207499591076188020045620406553151961687294606395951268896386515779152272259675932390086904436200278651938125460899717757291048978284398125138133169733146991478970467321294419463860442127888029065678803358937890748984317621226040909342837895563735536314754586616156737173136819030316952172820350988022679906307283798362063331356911547152760770390477595715520608224656179926757525242965707232706716147664460566131285643310137807627713441859120904767918243313570274796192027979152199790091734517727314185515365146245087997374741208481133898965414548139523335197772678721255342677490135787051670596491287736171343176441472921507042954232122778899287271428678268517285944295691665951105510480483695268931670943708065171596850679435231800623385561513417958039166342792301454864487151243142135894955420452393200645114560799105043199058647600110946339503004970164065451276708190799029626078093060964252526082994392801889121953142826001302744021530695712959563841390150922870911937975783605319662726490163462334056125706734082550699409185271865365813691599762489594382264409842549929652430839248272262593399249193860056898905756175993171292307999547735961870237780751576722714368545962367867573040619517127501588731960868004649510689096588774108507502953096955254439373636306371653882276457121961807237179221107113749706893875702610188215636207216799339371911055866963687993442642168214903518069703072366673535571816324319683834817725346305771624638678984805489504408807307711527353296473129089863008757852662280655222180466156630220152189615783741352744677345321519361654493259740135908791289528668704246010354484694876369030090378502091379133533695241353951712808666098271722816295604852285799913324856835642737513523347997252615037068372072262291481794365789737926171955489072088213860944316776661027208862044049499338984537027699002652760731178268829412972155187764787611374551210961869725731495966490060667710593955405635550842618106617067596837990954268701600915669497616047416299256923445134026303750258157275291753630670583433599532158074143794300353145913872406983795519927594157439431202082820554029056661749843851193985173141746932936769741441589676793537525844667777635224035153274891517811772943914645211151540318926719167191591941549351673061775495660843617299499217223635395303145924236119160008647763302577378375912422489934495874252186342585809654618543228176110693431784208236649138429502126180998061479094873951959959269716424655381773543298325540197550820631380492581882050962233155979588411179116269426776625705497869094007770737782033995819592226873888077724967967236577286530878717102363627008505431513644352368189621923872049318140990762248633984738212985149751376876618347688001428452672675173132045932490292001521442783197127934919073629526557382087281179548289048146510990285281699934813840475100018951169229158132367008124798784283061469235161939377224341912729968585905708260721005096481869999259523288449267265528949469542380505005976254201310531008098663965776184470588194955277626064373581729820234023178527007491560500144396638347838743198942290947473311644337770688583987365501386106049110919814504577639180248943818608626054657794192670721361736825425705158518727466091408866379802131244570131622364348528558746864576248458730941710102080992704256727135749095003137311463949435924919350000669680704422125374881676536008328305824840184005145528957679539392631223929686203991124485655581997930329526292635731979521027458720245491864087829845797045502594504931017426490141777202335108308512834639973005742625495153377668466197260268704486615455706717882673976518534327269758333329536356622209540092756875264264485627671309055154851348531891736860531360732657156861151720879684806298812404475936136944723321542872661939091615203618853370469872416940587986702559108661890898065664098454858295031615264728499575880130087661883905145781365790074389195571332731783541002980182131940073268613675079944958492466899773403201171198573975540405630007106665432189370616037283036712192008191583713739720319610825577770021004869434431366280802397935458392631262429366401859755021750059818525884885827239664320038568415033556208910415387199947931012939872761902768266071984452814433215893467847639295448284972724894390831268832705039372621421956684877724029085383032879579119472241373570656612422757272445404528972371560797713817604165595855245072923761504929936784966711678041843358064063153040601005077856461738573447503433302767390760845828529988900495746825325722109578415644320660510811502243718976674392471790800292505546905745981651231770616141690868042556026517600276766342846266715763734548621713864940896790492534833854791028947029388796851404945165352436531779100761734861987961799700672842822011555169629282551145294337437681645264402235291863312812553571989343061834029371437768752197802886689237039719967267311972050091297221409112713598655321285011204029745820818401794221814515224140177675251519536676101227899676455531513869325538610814335875763796304121969795312957101387293688342405297370504555806591761355946619348264426600083545641465328635731364631408807267787829230127262817265513116768241502706658350655096092242222566737356791912522769496617444296259303945999879270425606297161088532910856922920726431683105164427499368466948132379749764722844651292002761843583948920338660336145299607918141092505515807825236835904379345451882272248999231519367794023442662312614986594864305103801350976843529521944198500303609721623515029409627518525758622633031246717995715835555392836565826881684425613266713894696679946856114336365585226006719938195318077663879256557275432257366279693563963710165154384107081049172452932084440144003798445470424186589815420175950047896264826660262667026441271197790689933118397840323915529319829054083497685181167453990841264409071791082323333343573197366763061627933949881277073930359021789842442245234457519481646464953978617963854244857583106565213748581288998047889413441184627714386126013864826350366028596458175662843445020479486744494203607397806575318717782746545188600729795827731942225503457047679789277331226186103481123613159878164154955521963811374960008982893085547857620296389525937526686878430702100314612601393363882400608360672638641681817114185638943598174719844421490446225999949189630381104886346760158967669040151527764251386708653389217868582957964696674980646322302895279615749775135110772610749213620429044858597434499674812396256713627141067832667509189218635130267717314108141340107852047632755629700410339448573233782507832517002277476822374207559381658009504862708531735904372286507469759661973856740070708053708726712999005913523406184919074122316574686167781608707287119826288995643924815900561615436259270716124286099626662225608353388558310622412958245276102257394072184730241926552453214240098385062843659085181188908407728312976475101021166962813737300416594992268768411140662092997770047428449911290115629077603677868659567737327251729001438464282153745774736676300972584805183967579888784599316322289860815444285487695657386861652999636155670472951449095469528996654167940638527779631842429383813780610802905519207462617074532108419326550044057137607328702207542125753846248463560699938601245156531600880472994726545374807530019690055413838641324918814442478111985553156217721573213806940492979705242694012537790345895245087520062701858600860617024209814137062793621642177202885988851173746476240546242628503106238656359897714608449302103337710583091998683430997700975815403097256484703756521899083944619137650237448846195852096614660519489589767620930390022573255949726028623831405071300576666879931421665165092495375981775230001743382193209061505975552174163703712962986511101620151107172640176284911827410189162202319932976834587616318546484952882207255241343370808397864600756888379745979815221318262801808844013039462573642565810665733639326598058940674533628736140560970998153549297960668891029847396650184228714045025907505444959810936605477913119196758533636746715809437348578388286793491687893349205148661401037366791085150577564441174491943573567173022123852469594650540004854107793605579775260797270967703658745181540531879826976038674243265514055431500434101878176928778174061052715362229629536047623856843561058011681042157389630103529821867199851588410611463113360525705751192446841984884193483593916009046333167145236542043751820432448874019435337650671294429726282945458615176494137758069649474200934797383623389628668957519923281990322068109125713062352870165391415935880066896553036126156878814131529714034347204119891720276663561455985746112281325870171400157602068659506894184751014623057678747557019031337740623910290573640499703675678996305929725014949124609137867057092611996451633549532388440250534818449522019391214757834487242808721002131102711878999265305615244617068042430436368299487950011437227363212581908901327242885851260720741638319380241058037686274554922534439400098877849080774012823450196287010209336747026300698673259501263671315230408856077491603474595415535828669249570775787847682935312374593869664419937159198377855049957469990006533628778285470078947788351454366349238503991900538199208464822575413241894094079436421911219626074352221882958169688394199395142320987093952938730521721504594490111065818629548761510099936969517724049028801585608233470300848123229353110879281663490661986456216814566426990342943538285108768707665177924555781232606672404409649193046757692617526110550789708956488195247951905282215855728480530341379777909684008275480305945989434055859768565170036106114890975618815511012129076509964252454084637664943670259528511001497478965914343045925153360597012098869774321658145410229175683932792119782584045141140409468102753576841992240173337688847256543139095765778307107218504859648639768902173333024695425573287941187923177938630102101047232774792477838557888851572403076281891028989974774118162860654070099949401766431143034891684424695739773431542776229879134332213883267628294434518895846310900799291983126960688761649506894813527843775686915171031505598576824941556174766493142258593703683537204540739117631818445120897677473916496601517842594504442449456888983767850175434704418636063649102255158643420125526206055002705195711304596814210956703684200553608598158982642502660760806118173809626452952335187102397990417144968119585265582351565406599784482884860130409848396440111467658515147935245639706982297867097825945226776500525135730928053926828683443637377968419628804496770736763019452043610846948106212915419806180378128662432226798409025164226645723703613578858573004384399016909450406463042496928671400606953245115381519966918119948969166594833247702176062810060112559003929282684460685404563698404496169388491044653649764922135002057247710103810487770194200010938154284852491615381778432503670254475888777916717155299586438277294565312623960042848224122958521729090729524746836173139214361893553809616019653228998165642401640476864218410022815535465677142453316806815967076536641469638678868688512514348130202164797497685151290844883872208879907735780657246609399413687695235543452225594983480555384783523610381478493057535629930005989309860035338882332388159453239336764352851589276643451501734464993027249842881314951592032533655656697588940497993707305643366664580854197738295257614888617336971157055774812157423963185198879237309462101567482631760737031016034642174926588131008749510136461244473793280727327549907497763151128138217460344089228538647782086054823484011093671190362353421996316975576038384130622399953769785755489034291977875701930959949964520162501512541270018143955377110174797954114912869801626486228949484480905993857468976509171472328467297694902846088802477311119486936275824780828296482133836617798655645753846434623358902621545748304213960195461863437631331781076466846181987379653333965917597952049310476120863656472510868512895054561851234404536502027754160940390786075495035509323845035352204803892231378588215119025112819879742223004235342918415509337945135710515317294108825589910890829485677254249119462158978459745120638641180827079377050659483625260938948983275650076805083072176002767746853461881620767300210344169056957610600910780899049799675652064993477961797387667324349838955704917988886591807934965180532103037854828437430911647809666686277688827949217085835758011417850923646166257705845957146657646277514353469240899441035279579647426545757709208242361084832554121413675287616850366030188683037200095472541999292107576173798750876795607040678895233161918434798452971867685935939570120914897871307634172531839293827213364032831060491917008379419357058931876902334332491570848971647916004595642379468798523801788803911751663897722527931316925566087794073536721794484818822624955055299570845625521406197029711716758528369436943369210297607863395060932479218169302205655424825543890077790370739081856532246043245094763362907325681602846761356073984388453797488736134494043961987231191205067333407246996788121313623493218258344633499426764356588192085748685838838932336342272035375632446656656238861012164892630119113717324381528582254562696375894290946044366343027841124490897673097451736483541194369468068085812684428508047386154226425478717360911828644273744812469330820155400048676374101383166283604086338780419118463041605669448049891365660616199366875327122106887682217477953354682217290062540606312502502631011128050118880596223263878470480388069809316211951937371053576171329046398206174537402767804140092564127732339154745228903230141784844568701474668668140447120267788911750708965367655710938591649652338035185999651157611394004204296567358081678357398852708468730556313584670868874576874723687023625086730375361377663906681926536010556406662908564647311272620531343539933667152808359953632653966577866627929952590032978357445302795568298187390812321988650851031860172553143489356980698551002138028044244236732758527057449478818058741050786986521554866906401866938873521296121326968299245682317814365141985870351284470366289488650430338473684450023895011392918465878618507746572552192138552006402445814868439837279985214305972338143452157234544211732127734702110397374521640468644350411179981665733894994433461600181034652784043110300895758066823189996308344256143427437790602280599665738962784733234357572404482989377003455605668542382915626710223645710393579594253044601083537568535404578924316799052995488470124554300521752329531934725018380160401475207730096944074918720170632559278134229552283027112248448324093533771310601174923133230430782765324231539874681555007961250156003692082657102598460394202254853026895359263399311269445198980243605608837127207116392704217845329428248159044498743548802248780521362042832872491208576871570278483571732900852433307186732238292800954632138912734303317037074702066107812331671707955270233703195434292142959222567921474149127210770397022556883377596451849963312773215995940007879970750450951608033170028695437339080951979607149862177373138610215445448718921543232494661613700040041474934988713247551135515171408219508004098054003513902558451502377536459414515114378177531099494496742695570518449782642434239494674118522732260638259834220732977510129663460585007783013371213848366296540420400915763782177989774827366447046815139535828202250354458576454659022232842163458209621662633982468150895391225771039932194007717894657069128544612900115135197990753532808254439814416847054900618620216549400194164576318928237725712587187989606137292886680762385973257360993498163719972824695383776939624275997620373058312236978009697542898165262485087133700222087218424963464663353803274218702821948830183077688463993516023273531125677151639017276767540203909734962132409710982320316234392854140006861095034940908325817174774441924923143492503429941122107019501009992051381179772849553001035219205088082199146075432327137268531565234139284291792467752018964644290333328210089715823379335898701330014560483513846986802447446058514001972031696697806648359963484240610404802186578126848773355447162181874270500478209845435206925993527740546468761291487563958321189522981944583446943820337089280429163829692225693147694265357155084969125284249521424125680918127164064833223354901549881658312823577056129113981444774144332618282339567925821102304105473733883687710851161282186089987697436552895034133230791125242629625621283322146093445755936903372805776741053120363211450296458243339846798179422007209707654158491898392556209928799752356057594990508934537159464096086946395960275728628753885659977903152163582271474627511776438836084015221337738442328952660712774587342265137237013706874583585308197479849086166608676292464244525184747092565872585975464806518353365428420041990324195648576307032358456508065805582106671966293548496772230131280039215239398994220940463592561394307214801934649103913379673718097331802591540552932467704106126498466390064661488180006397096675002649223839496292654159547614266957063660090735373826346742761769136417393269216519016154500884056502268150977784268384177947203895939954300918238400074497678510395384284371774916115775923756410093260316313384886293606136810097953163809348861757669330797365372242815384394847300839381689197156272215258693070611916757451784545722346011065549645908590282310686530634342843484366454182013674258812884252324287024638905509185255917012836829049109541222942394763761414539187614966225918124654352193825046681252639563204109042936395297995288940848235036703247266097338295780808350338617140382194376844304846703615315343909213444866372588959877497689653357916592414154595013152484239999796552020482994962653910964104112070917304213322789801472415472152474785183901994831575368173241022153837101349094443222081524022586437557768284292140476543323285072365435467905220592266770168844109533592710042684988151215166889552972769555696287927027922125876485569053986338720222032306012340451414621228221171715514158425463373414523008550610545274252972326706784060052057846682786199852630727316887401557611225442252864145180451791730984521985935453220367667594335669638584332011311114666955785928849584536152210418329366844535323627975425149414518699037241930416723376628932433165274922021603240685621876036193346908470901841661776145407528322865397128912445556812841481328367720574121582781122629020790695922516301925452659589506885348813387911060366417697330955707571382171974835596478013863286784606161611536810816124993818404396699613544765541810759092859288981258646214697677776824333523809388596049842683915066559328333165991076357238164430533760821123103840291718744705066413167601922652770473764022069087850034300171456105295839174064259484904324782179085276175019353584501005408361033119881365499598283254801573122881761369821780078299952796313257170497684000083554844722853057757234066394124633367684692036169437272493706222481161151887003855042974058440944134351095616876365101350997737141475688298527879898566159261949681706048754335504130640266689363647470806271344665616672136991420089701486122138093385195460233094626072419361366158084699854973431592717036807486615941987112088004966302352089059050200381161336473479838958767829157807009723078987499770527443407201644929118743493918495627398680977918720589662296444890540433703508629120647474169587373358953333403371838266566465748937896001605208128937123205094006541869483849931833296549609617937722302210985738387980838135140558766243775256813401338161973265358019529390734533336705446493741375958039981017430970296470474535970707867436428994043389310219042071313240382623994787690783932607924184978439452114636848040774266434329733601262909571658594096811488122253985617031726475736473763917636693260902289489409278932198128193730435691193859443192580189895460470947664215370861838807982801499717205969341395015295571835109616735904164716631163749768942783403393366802907407960626695251634944387228418644853209017701976991892141086841727508267253360472964169525947898638891916679633405315882225011831986896656626523882166297778998333214333690770714027967201834229311000537832128563203066910931465133590171829577042136847231396985728479088423752862257871625256728952431534694731255246650059872226148231120306211600208955664480222415269195550101695611223461207614137144277604974453038733495656507477348513471138803216036545247801552002149233135668739831344825631212348337465607658332378598846210727007476091446067410531489258090369130393931624876276602295400605019030051750695253171750297459692731045524097084971034699530098078626135385827336694602255119676366052684746593853214988895112322735333146271845554582727649763577014617152605707918431360059039379567302043090531591741232852271251820419216001379281661165579654348285941920232580760758890596076480391499465445433877030280054218957491889265476420935357054984133864579441319652936118764318847916738785437788912760716588980801522394812540410820426117659085117894453780704898541833710143284952352655301406636850737665914407870136518029673510882257348709706227393060579786762693085179459127912535637928703205219718533016742568412393842749144852966079798810279670048036904175217269752342824383278235420190822848834701306321763539817449696394375491316836945758054585162705457023420096986100498844674684255660528360362811546675089686575988072266188530440206154708020484785681701855840900231089704955042425549537586230657473485858565756427162709815247219790041566080779217095569056716686940080839518635313614518585735607970426636732130767934151169387342536527024023061667139451482686147437658394969028766740404231353311043634464615012117085388345321841853204997952034147506762568793257138443688293663116481533750175182169488394259782691056296366067334525326879204955498377437787526585914542895352025686485231679895547735548437252839974584031346033449590459209471726385470204375906884472955097924476128879811930139406950400141343739274829290068368918137768306688390632352032480103632976528573752178141986095585302680885826021435099919019090453079461274876481998522385193648104115249116270934568985891899398012039173502625334124728124866866147983499401967365232126705870263502187457028621432558479421104208282947506315283538986035378871766379098965851236885955131808130195628409438783028590876800110065133022859359531872005659861848252220603667503156979209116783043482496303380285192492733923330616229872707688307296738005290762102709617259064504129852670358609050468707514306081452085876529638873849699416852444647114283032753157692171979926101320822706558862913389753698524258309459653420645972810662940023100837097945383028267224198747379336269437023601069745822904309945773997029948931254806064749359697969242726907923584721914644661726232317319691661042898935384579812295651847665037302504278522106858477928857788448067789583345583625335372405533786483484469039107242581809898221725406072247077265421339982353194158683256828623966005523837179835388272342694617868886618470118776058959352047888345106877719788287994910948968323859262682915039556328215590644889615291010389862298046153003614417125151657387671907080731247212055495136779034428273573785429429953810118242481443824819922587610190272731454144994037502627487099660981336268462213604870964312779903783831736601004821972708059760191814769589989003696007851233445987095563701068335053881149997039511898393133299820607870063164184048302237412488598653857765255845527555359821982866024337837429530029022478418776894200904994819322461809166100557281252160263340650651297481968418518518365184356739520812812927196678141331843621457720814166573779083395535179954537263820845685208027684320287233152257048747334861927993135849794705651059344272972203725295073224891875442417068566101167321780612036805800499984362532860491382506875105277622670515941905985235877003930144687703017933146178885680396725177236411734554490269012643971175104445435309996816510233320638653448602450080639916526872724926960754032926873366797830970671382290803276061915316869905028987785856655378110891887996277074325832089664589482070375353896526903917358838373847416907944534342625686819406437550235585371994798520537410140684046892120427462904321482110142091456027808285707779537444125446539549381100813709072533752253321663483969444172571591617023206529181167937800407793706889662551665053647598813791095946552871356428775582801113735753162112154570507274158878781244869542755511857250506048836249189577749244054620431783228146817519688924949340525687546107036282183935913728234210482137377942310293294030913001993278636527149486117563706195961242328559422435354944993372770149429202759171403748324764072483726577656672387587933838415254030735570786586999131639981713000892157403650577962183012838764017881210327326037607425438201541371386256091640091937387733802506506887637173781260826292538822030008798965404352027257614332184640969705839651252089886907167157214672759831039270108326448620529136527124781396600653205663603802310755380219791947138893479403717097743608345659391851931374393657500035813886908738258664165342422690702406892658666599879894891719991121580023056703767861807180777628563576170840322362041880196465282959734882657463200309786995953175674087587608345455237538998841066182922814137221735578539517249404183937660089859276327261810591278095797427352324405946923886741690479884649895920710680383731969091206684686540485612424779579484651681255259497067598115629242168709746856161851622946575453517180534238696241645660569504017548220230698077699317016680337083709230874072904312644586726319141049689367880767703008330613579609164241021889890949818185839912623956100839967648807057191015052990526862050317809063453003997658517254140390624721948828922671380883118912667115024570857069022305287881231483787900394853884966128821982257626469536237614511603595904367759461774272230470851857219672479316275000902519726390842021186711224251907038568480082706683483820919242864011948055556720974679854212550662019142372772646053688457305946825594799747372848103559537016387252712488963012760244727788945383836302424276297978459598639418402821321682708336864736572147630434557167691179508776412428851846903535773556753761145158823939143606076745607877173166166988820294522295640274400451514516825047646986940293810657513785634118757136630481601345809988182063930421366792096908262715430640279829231655517369505676624280266178839016503214455360633972756696732798376588683911334727204393626975886658192342741313494966755026021584302249406479762512463880959043945963986825131628476324886551180049144726295666140094558215047364904022627152746519132145572988713484202623467087821076498758039907317837094826642098717260116115122722621120443324658305966780121674329181737934576525931834201646211648644319792392367094014163493502016588501666836720350648562462257835597522320558316726646640045287306223592809293514437198494995273582309684410759185875807131389595426400478523171737348355720045082655482109270361908517666436006648625268741110625707295583780647257314005797320290870538880620147699116640826111373003435817654928510798336111380087409231308760783093191881453619105168403628837823220976810914087900079326572616428969672549861175628414217527248573964587914056754142850597512471466150433484291729547601126459501674904607216810131750290216981701986982060069581860185134836876777043869756287648939094736283942072187723669571567110527272548384811299107707261187067926315572743469227132872165787531194265869532613894217718419156966103913730908789650422572949635324971097175005035243508257917517086587100474054312250786021094974780183464186633890420956761167521830203823850580394457182956272254230987046044437157068086816084047126793005771828451490870586134828653177262374236817506392637091548735419956473262456561759995938631181354661317309276581260632447093378073789164326840856336595570325224595850992851697314593944216236668954497515732612016173500805432448291320692773400971595417085569181523235170436786668446788284554535827845335340463178179846422433519203437700258599776706850573868622316385610714152803849482762770775905801249399190031520326393355945324704947705258236410422139275946536851663308389852879946480913251425255727121476298911280607367015518532827187713114251849108620173393877060139912528390593060947168987347236985765792782519736417620548711367866754226111332155349126935512860658088928565891985861758771530267860042574873522987732574755317659038159807624395694482677412380811843212903869250764671672308069785336583916460070369051852995563199801699136172732699864365281821467793570103831805842026342839765304096421598894487853946165693441331529168590707653877712662786439625695265539346142667203456137915999879527441736068548127586331566387872387133109632817623674197507797281221099817397844385061887960920403143323337239259591738110048120133141194661257809952818837527760449613346943155108291547521367820984702401829818982645197636042657239442246624918793604238242507050634091639954514728185973893152222384602667511391500945318885475200303323464161678057648853762603925576891997836750422652287619592135855538374322154311494928079067749811899500093867750710117239553220319140257124393798329292454456562474658107039255004347214094318504242786402130730346935087386748301207045792113491911756683497687078952777706423135659764485205666977157657690376960181043868436382443748916096189747758314961722794528992624983955960543455439252362519071127016309893592923569579110691430621738649574144375216076796071879092754948853269151198394262571593960199959330716368642287006484826365571785280316054331967520331795909935557777032985231995908672208831686358864270998928165666737533997141121793485869884842610018919018501968759065973636287515493604776924087934673143976901021434931380592226284239346086517189857679403125600818823609498982889255947724711206980852040373121102384286776515961943038594431918093082794535774928321052822791722106219420232223680565593609410084086113658231059485647697291166064081444375818378554566648430495965203471327431246260737095143234576400078928505634373185406303148714809972902182564795694782096696298421840912298623564277923840404957206725233141156696521524868052054455088529450556749280329927006774228013324434578180062916225169940781107167600493189903958462804325877757126965956359367960476978724665971912596781550153362938047421482780865018977547823940711846753800971655309784314125766570117469310608725580114060434107896853112042932777905360141310010062814074531048895050143052061460959647764643664318879386043050184089918996943768120700462090730600221445536663699273754779368193976074100627496409044880799913811134209520749521559852447592134917225829476485583886839249880804753999611327733474170553349811717466022970814529995019615906354472172341203518704301028172184161649947350757179352948343486966315003542305183862095117855516036881450883720502799557146807877953882050241393856124715930758762646008962491499149221447090758889564861410665989104418870538063909750846529633571697158317285990670436993778124706201599421004025857011911173381470255140352706590314543008002831291396573577523052065227274097803503451880783038942876736010478306860580826974488426594580450066569242227132109674008319216296477440473934347591753348344469290110331572099747055581512432701086835838296662213976635356411720425566545063696478201684394678572665371506710712777534055372274158188838870831463224259164130182442456810212440359703928964847993170450399089065442258965046415084661736611925820735431376833245461785683538562132034132960070390230708427706278941527094713827956936684278625345230416467139438741730212334571633585457069459597443420847275450389669807185295747879933260229332903032501484606591421554958679666672373381015280968145250280438731420600451856328016701251259333918330220360317391464323889346722551190552655799251568866697313325931476515227740357883261326499533879421582309964653895365108096910465874363068405911299165625253295672921414031781498726995433380837446704026463500305225080939165039382507844798792564746203329279440153575057410569938408142828780781011842362916357418128329122879918218234621128356919146741491996840488139784729459133484950101111119035754315845396012541538768195271406355532093306908004171123689198532052339870428326506449577682484238647023837398290595334270770979437453253425661126679541727072386798938299487376128996847972473609965843205106340722556548048402925158425767347740445787631163072672137019950622296892492463058545986615617284790978080246946202038087060556924102352935571093818330458685851197868715420049803665473656147897246676811757548211832798627673974675285574004377996664861863772687649551490374629368287836927639888030345639190763481389584622982009423982450856769343518177216100366711603722415476444801122763940280399501184463316154359542819803175436053117988010875564595236614272179624161675462738388507965936110200836358308534549063315116745777462548411326863285269645340663249572309624629320807670779817023418663165608804003803103346929430941629000927279386114536006355661191115978681326502135370890297692586029139725962127998937113887694480808955615213225479241008712315866314293252290718728138593567012301803219239269194552357667965506001573667327390404580234334862194351729328796390086974535462690787913834343987761487030222776571652044246695976368317024956932106843048760137245275281496863075009216680602849590996818778537800330985768964648100483596456814665669099731754560910849000758140614128889306509894417714719673111037880503728113200276658185029639448875311588956510440513362063463864537039951943350381172113178043851353216573010396515303975692611953147133086342324381844261102288868186932894594299555445460359783007142780620667164273235064281993402935112118111589233237612808920190972460383521704857749824651112326754708639473389595237275337280775698182610621252225606643766544496058565178294107997685780356216720471483415771857220483067260679812003261871115136078362944175172529279948309069196075865810340708681186082868025152103307280075941614570652423112846110900369911012677771433756815685126281078968278325878534674333557748631579158535029352176160607712919897387731006973773452423115713141537099796743472127355869089373428581383118691669598795260392205653990395993960628508431031424849162513545583199696046030614946720420454131496929163590566262542439367123433461754305254008425367718050959448150486840945531588538146731602813810408017013322462912261131535453767891025246376699823407529201084493541302168487132053350807049378695367659239116928426759004436212650525166686853054573038314024800575646070727534415850209874404677570703266867968517067644485077467474051093749791345926285552914617004948881108497094781831405738279009116806395194648632471184079624117528860644350389464384088063379407452959173803249877080994850418770404274436384190221611046803285972332955537884196529213861295265047591548683016826581756045339207863572578282975582671920208137753884435622542266875837765493183215112212916023112238659505977227066772277118225501577178210822176956683722150021108578647053743720431461589574486348096102819147688500207498078376161563797628227561716341152926440697694009835492953305434305574753953298692531224019644722401291960930197274169694179335066950162486159243502732572334038390998731245145988542364930222676934877764396449442035484363480308943227241442117870724916831458394325419337854836161323610985713779568402782388367661535930412647745106522472382291402982938277909658468258391103173000119070636206380464309280764341571568180783747461112454234610126729953342441923044309328926917906445186309015959648525255949518961198363231469258963186651985385813110792751880592106055956991466882598661072186947392542173228275850318759591534140647901506524714156231744549570444705659786748705562625023480165401895812080240237137518143646238058884251883979340369242461496292322483141122267705934426985279318211852433626254005915442559879264050738815595895686830699923135308745085443835146107629372027636406648204169784543474350296081062617231052870345465316273643499304387272525211275291892812839236266469920933135696574210978452721028625225428776585129372023303840991245105449245640892023330401735898856113351352105737477514285587560138295545087212814263274708180473996967295833440836998440009812097617853991530943467474380165537597380467791381925915299322788567871965549898519299234581720808305965215475194223455564549105589852408508781975084987849155329601268631889224218051919591119357521382071561972049969121635994452450485748657782259913983232808764140579059622695590145580388692968296216730418398036423685945639792820005867893367448872203633421678752425049209756525609371516085939977978656095385116829801726252139973090066217849831334695253773137076763828856908813109994551491200035316974322169785838310045397017689078552097731247215260745461907751738119756657579194198533820437418388376986534195354447465753503264874544522710960922164647598949412047115189667364273553695785279983751139963857295798398946631715885038327225905385565686628318174021190286918935706766030351452599821500126774401516422415383871635553027850351876982158834035259114430379445657216898794664985620952341008413102814079049964009736545341486435163036663986900361933509568486414348115956927428605127843521010166980151863426013952850783214458342337372122890710607604545027728145719255624061502319404180015340041667359198232914501903360206482746675053462406881519959947819911630500556574482316687842579672163763265582644885305535793052456475785578335195334961925902580943451800052279872633670378202161098715811862351876129430912957453949647985187288461168346436909124435021658713271257112068572521495184013096017242991849368765723558185760317451000885416585122678965473259158015907891325326479269348931211062531532305238417344424828061830047686982668069607944266343019984299994832407221101005740769178766388691190865273436879604293432668200529806556929875157465258605316744451428597374599978579827331158861620311063708149470042618529578511117272141646626231000802395856062163158261730552477590977338366894667279437003363661000313938718368050543720135313597687057726878788124443180706365742652057691748113557776010490501451222624327675235590960718531778820848271894546334599907869114267649845701629355505751992658246897680200383057890533846167845316292416240736689095396848349810201852243313000332986231121822499954463047856926248092618727177070628626774199363341026533637029010405010572183633224535103163479273117194385062317505426959001797601134207435472282668891746501803074100395438179761606210348882091885153694496859462735909036384832819635150243927049554138712543211025735325080810283101979486298300406822078327220900339278460981843496997379587979537223860805538424214097216250728559747468890815404101446314527117602541879634593679345000459015927583119424668272738474598626491531645206126512751285201491987240164525128787046566513697642547047147007044343789125311001947950079948219345738851614403440938248080995394928270778308908860183653344858121573079726069736813264191365551136372848108910926818974601153072458102893247897845234733676395339985328763969974181671692173034419405888194666340167141191919700142177714889789336800194803661001298762097529978187536807023959236509542929610072362580744820161740871331441989515289648733039930592865216412702300868370419102409337973919002230783539387669056251762974486401826998005748843604512812671572377799129328939327981972358257126516056722076443541690921407802216348214642264779124890395361806824146223679244057910872319852201371040413172593713860416838302818982132147277604269889458604690977682036933856756810155296283079070076142950177246555435606992143254704862640475087620399166569791163192609321528037430499799530929154071559042416780017638977940188749281727690002415957924864053913097282470118062732247360964413011332651582800069061077093343265064042735493622987322489315775830226659616374982838518473150302240142965615620898974217996925409922612743009243329511939290823069666045520418797945951508617313625828598225714151723380367916362233159193980840288303508753827830584478401699878966595929509964235613158552726017979242988142886571153202471674215071379060472313007990012881749051954483686190357663520450737466279658794254607712811352936280259458687381674368229424642939248534553580879917274101114493047141067078454327903622340477487830406761296778732976508979797577101802201537187010603848607271251092571869191898906221268204407043818232100539119849384819181488940406807710487827762021536301712122029446842856980626481974348418151124085006738278700986241816146518992336643937115579703197913319885471041376195384871536762449539400194427521677272896113276497108041362816323289353979677765942497569340748790983847219853352630032584262441663769831224170532301191178234528091087858782004017915740480665770268581418460245969215853750660374412502599058207509451968028259746137603274200738234000728764234465199498588362052380735553403611987341984583592618483545289390728995213750248540052985140827141990487908337584366710991281688636809744175788060955992941461612736293130528056385587790613858174514799276641315672417856030422958164142926855047198203786484151133275576069214019782885904844334462251481409207782187408212420668143730157438785529282432374847337108012486616678542004420985651047919637508954685447621055774350644788858373341195573235202397544411920953102380302661072653653293296747562048389814332176455007403592030305038926320075328016735644769216763348317912343783049293409274956342389571872125397988040950659584926988391325580860094513867011881565061350342925458552433712398368214783585964947080394081340537595227658054547382589318009298393913994660828056260383950699212928305716210173537379321727374767997627704768415076205812503903710615926706963008672591865541452558583296736266182444563448266033988964300031456740214517453403091320185852266178055727403332599709201859685371529733554370607025945474914933707479098695825959431067214866591836521229992210550431376455374192836864521457191665888546287447607890851512706649047859584972306340393012608675243341905842452288255304553321559040149221117928086285734379098916584569045145829313553332607209584322198320380114170012444000642672719230359974036357263563343509533413470671173049467186610897950949502184464632015963477030570665181453553516789880195168472008216800905405590645124940283243534395096266509534649912367061369389821101866816322510334219521596250365532802777215680287653119823073519859823776957877461259296334984673408551756445937769545600527470742794446960396103659832434965044124117056423012529432795905152467344907859561037367939214976227193000671556579977091786964072282561443490216785312772109981427940279503546756853735614552780063908341604904360530221991840038392114833877771009898099813086244334718392655717579254375263963561656500541292038127210649169705303514777643395203998369361509147579257212037806402640743250564968150640946437216220578904159096459760107883350301929336196040790944749507108960376765676736029354081980655944043953239603191738113205077496554384133853292095623970357677338756919849692891656994277490302285292047237681968778418215333305758389842518542458302380921849190841952953517467411044129464575457399179411518968296315303731685114805738252731129322612188130620532137866827394606672023959966061399277802476285727907604478952157479034860454663542002662237509057022690736746635811126826681506585248824719351441557641126989914335936181619186908392239990552052957550004165200333570798552799505915686317809006624899599826358611751873426202868826695918537712006945545935795963850147641325245090707666432928107729465557025422174711066340012841195465380314536072055873707782008822686856970605270389952456655728195520282771983685313931865888527608777658212792167360086235580887185684006632219679911889670130200172815440058563003506156997198587024935024552844104661275579041695037042078509323027049455745079488514111312563621608074913208850429854995712817859470955002632236584388644549962614062566927877074084403519142440832722660257540115508620175011380746442692271584292486633998232644781807797213188848774105918603216899920423097685537374678298646687871845635038321381177703894620914499317201858210345145150629807038605582328314324480574923891581528414709037455257666786933428836564906485902064108586107188987434946636717873569639356125969489648281216141052337043030808499667882573481062739997487414588139308173672976670910803213992919563774019879864467831919175904128530027498794914526099002528968568820614228379682445289370052329121426695822815711336557432766075497564734704981269014971268376882199032809889545078764509258418416687445054400925320490753399524791992939145228438659989532709263474294350938672155001019154338621109976583934490375121189356764320462885961444777826067525227248293376582022011962344434784585609704585299285883231450021127426515011925339264496727415452501832249483346908909293053296369372719524737702268437798861340807579554642617741995808993459838060188213044673944824126508539438726342642873461319229364044983845813833030409598621518986030451606089417873407013596264011607042036682140069543997777874294992052681676464167914749659102365138344155878043455143489811633149310111787805167965667505867652644088672262726870166311601705587476671140875244842215774471894561836433317066201279433895499350351201149007399597675320400916090410272322643956908362536779215625912372986968191193690501736358017958834283442258822136536773936275635354243863828390326443703125406587972193763440790863181727743050959379428196070416788939291615216975596687651873957212880501697341085869618137512301874817771527950507928712651803051542854539045601889866052208886502120967359798715442243136877132729315071231582022696073705034188306629735996030414189008404228871606149659603611187576216072453987561617416301263713718321307362122407843865800774663876597625337128896729450454513129142871895817349148256165685834404335893890553821243133525562695752057115106975730059831728565790925077261083869219520287393775298482265560307619465952879759327020123237499588117018627294293824490273699752598542890666161446624197944825251347377304305216774538716693232466708392824009168982382043430993287620347046029981755698949045970185983403142005239532997129969762147784946207905810155860794133976681166524803062536543410500616244348452864497962008087562838949133219908445140248281877906450065213560272038024390591757304029650297914800295020639370363321728553134608095623994565091426054597166648728195387853933099128906251917019308850270315647259234964754517714451930099107594684464463290707476263729629315792934005163271196033324796651780077097791342415600746095382309596309149595218865860913424666803181416512873569227240103617763903487808481666755042558145978706013661104230237123953531676680758182885924852142946413369764007521252106043761936176116579611445720321944300159229142664861306535986024617628407335183278766832738720733535653496557843543916663359620671135374468570679829878700975005330653227294224846519342187000678966285015912864993596124287645532191335398905394918452487342799412205168051477015226500741416229101447120524846890242225933291885049186773436440473396974867304150425927371879489089678161062180223979041293064605686588809753241011952137200017605980513738206860037133484254107700245251657652216774589014781059873143518372098111355157952397342438303696881512367414646946155031503684478990182817911202289444615894890860998110851556835568198898438013028053526733143528282711793860438020858352406597249574970239881530390101449476805412582671715283444511239968697607349825399140728635618668439647098482799907383941741636958821240491069960317800546126356420381629890442255201704889270523208654494492686838105777750672780819755890380393242384050450315501644484662349817054340841824164608397937485865127618519388027328251918278637606982413343200139614085511686945341241130552229339000956568931604750961083611940090477845804603631210483276157052532683595713862660000718328858779759770758763512875263080358398955791421869543037801605494312983796329515854481753976802648505206650768541674758309388611669155848726787454778999327186990623533879832853081318255350233451357632616996597272868526525796703793960119972336167796398503484404014022744962499152142328501790294622977002451641946599271853673812566901503343705445421898007440429118039682325375233079248359771679137348875383226246670441256400036941272799994139277390321123836842220407375453597377495920587367956360284852084992146869683583054263834060205622590626320386624703997833190431844538305920771799481545721148239663678706325185703793041837615978387483310115376545680582578537843693287555157714400574048181658706362340919655903212841266585826438295794759788369769418126537610982072579600079743953868028700399672818805234808284008684961196016377210148188234758224457461777113032849194677430994967996012717603154236678133781480233570499673277337441824625815513103348314473531577944448403033599102171439478090994438100022024565085408377033923699012347358251451191893218504402910071024546378561270903267137579644425776744970303466888513479957685909545611408703101505978446637821334104911266380041963068524446144112145667178181531977513691661044304492214993379944372633591777073462373425475635589189966905590627612594544450540288919164466589864176125948643057152115162886022786123491836204794391326300302129830881266443402172394060868961961970549411921999075338869074936778336221804699268349684403930403010407611670613120923518573258924179312881060877775209243845877413099730013878277071533880854832961471079997207329643263404631212025781995874766408669009488519642327699191402336798994679978734851247902064914387657835482742835351420149682639083855594310183737916278429767534629343437503681682578559268538991948007988927395299279434622652246731877482495067406557506754943239079469395096040038797184181484506056609910259395295066636872907539763146936176969561348886311795592886732971049056755383918567973053599255779642637644311153873731039363945996349024315350548961045287512872207246768320363500123662444239594088158143567900310061636970165656818993466985936844996587978125446240965301978151851370676540174323256949539082427787978758020896195779206872665655065152178549485225781888056487592048777654497558022195597465030237518213290597187422369132482018633412825804376355894569470424323701634672976878035244091945656308903279332955412255521366322101880392276779584535666735342915783138380747910547972228292466801989180322247793221901456689006812949139836609518170895591355393982990751725414746597242424396303466105097925910908333727384472252140999566311246494197464644986017777507112808366082191392123322234763298581139332111020260851939791548422738027843145619979899428168148880550810945487809726847349769903996333958246444302392549258080136767207388035227555050239678395116678693440588143934644196607266238720403070606773842708388863975811006425492609279148447656971601600192612430568970684902140652100925785378031976048003025405617804858320472992678531759116907145259087873616788300334959459024992014026696528624862836778351019265129656441300959017944079862547239659788784897740302556973644347900546468062753915114607990473855258482490802315881339219587609117962589503300133809175105576991415070944215625189628469440581468557863361211257861426088729439738836642348113498966120095527072621049355054059222564839122656136937215311876922541745204451051317439323652371284724801097751466464399153248219830365067305378745408694635427379225741038802273996440253720213448000482708667029065513274684264837250207426881701244854800687727623512121905675289796760546304490382934408104442087040212382243807483148290453969493876092647977281852545902533671428954519971072347912531772051350403862473646344366694431197493981984841183960079796533331594244859255785746818055788338974973603540489212770766281271366880124286238456082743211760266116958546972355745276155401565825114092078318076202375361282202535744571755552525039707691018606104742670739250401439191225227903273673726861495382026100346978029844645584603004817131022529778508427646016330501090148605162467699142978431826688744220328400540391465860802737722315796102937714683008210973564885256761545758495274370726056978989604281483327461839254023451308262372026239669865273696413477293269146569912486714967451187218378541769381059967205508787913990012654344830119238307322325206709893399145737061658578955737672059908004303888221068718605033276014043114257668330857318251102759434072412859329135859434494969635064399750562576868556138863334106103580097635167403664674303115576031641287584170064942826097132720594949310020117493296539346500978625723831365542353135658925564248271300741427180473199536635314058937226946401507723696580198899638143138186742419333240794246369834748060429919145338816354118366078641848918154836650192951260891006411981926969206337514715801778254269634673220102037060813530637037135918931786454476129490834226003312011870777200995447270300701983104296424135907175097450203472808217749270422102546730736980484411483589980315391096507240942332020677123195912552687674564518793411338061842296593367349095075403958272898721497215654445786418296309088675307328032976686450787583364445192578393724886541614990178489331109836925664639669195155376350041720588556625720344292155054116922152988876492946361545143511786647275173990982077399643633891151486663555990008987485178181476585482423362962879440063795769846826404892972784563130737096596053509226127586022192504364578385499245862836798196411836350448139256304093038777261007361934147727701262460871434295562118712648184468099464144833862061738492536303508880241050065984112133792604120031465455888777400876116021649348025686124656882246997906019464318419130955450055797008605533052071134854567985107092178231757214284290560244004844807462197472096106376110259607517161328962270787427163090039911352917838849517935747659160111592217022825918173013432036048774002569294896734765456689427555565573285895655394270409702461814930581366233000688021352258204160064482885770289799289118086996589484003709608181132118813123079891377131546304655222649036168318218787621215143639432625267286119216072884273252909422341337428643635130786850722271154543953018875497535090684117684944970793114705180254618697771226754703128809666556285952467591170906441075239592008496670389274777062075821444777732219227006269574588875010397537972994646652230548589410934925144298669898062600966504975572989584606926585918761054979576597401013648889942064751863747761086536785416511122054628407268273681275206862471326915645448714940251722321361485220724381362599546554424839264006743153950679500439388264876312063952041640409915559807401027096071426889268875661449397752532710506133726669318887082743457792898484287552929736829535568624748089301992462038716563030634334463263544923095300795412383274386230700497492317439632710674173098791247078088433097855223408938130235630725327359934648378172062306200557851104753522601671664961579919083479260382297407956775802324388054847576218995629022571485536297419921715953078015422511666544237746731835599432415422545945815400343801648221946145841596945021617315613333041141711364388714285983434679688744448831388381305132101363518139234831518875971060641380634629616292461723610363935133633953942786460964659241779890209675585604426022119453255040576458167484765219848347185232408777276915422864616650091184689264085577543463290595631481914230935612961296203428687390537824971522633346762965922033060738701237472930262863528790972202422856052388398146096555990873361021225337142750719303069741868669704306462749136515144528258396086098095404147642536453674314517439062558836988679059346627096942219741875121396402004496709507324300219675480853765641070661703383708194779801932514983140242743582625213699050708871418394204598354428430350015979729930177012380668866747756323415808332507417348942559363213936267254743781710380048988717953896122308433919527670958145011473295606433194081050579169530988241408912596943602222131591056949572028212479424433240817744615317286582839826012920524453355987175681742462295881407511932464430194570811799241296644972328676951027820882864922357229867558488321728270128671132034943689722899169723719707561132373163248708423498575730927566146692583932212419815520000422872475534001077914143280583168347891996680653479603101711400791275312341221210938727341428136328176886980266191662577259181134744510188979763894041679946442557968606482013013094900631402697211356287361110673791620514025678327349623009713709299966857323183973646627299478736052369608806428642581000994070210296467965000067986117582436631355789457811745813403484748807216482838533705957948820548952281898609799301490425889435074064022578330976591879109432193115484059760400878206501975892012295425919226679585508295680941561710841443646633436764339653967106647035516940602727249908848653965605360058117284140786409573451954371631144253486277016840853536058852216807511455095427836778340278959602316258494205638206232260676598886811556495548064549890813709453651741328061435067804380303724904221021050134239032228037427518212771942680439267778991370462118883450974334548278115463023819995128175131245967622034951437426691872718006353183964176574648150113639271300259957580719392070436070890974654421280408106134590745216795649934764872205901886330935854169420417539871030693542787560240974586550050080796000580855980995881147443031560474594343136304094907971160397681983199680668930796623391510991908535417962695404147117841932798108999816900842462761646259667879280951472438269665590836374564584532152836662029120279414772626848477615812973589128458114450383245866662986452235019405621741792879899017898336193582733581100749343203581080519928223898695309279407330056421407580897770707975915506712175584316233208547238732962513601793005977891266569716215374947506208148416358138146837635215842685508426511808826850923970576553734942294281697981605175750023346842526277205885273441983036203927581971917340332209914503679450909925311732431215435764263401712369783479768530758722532410685763544196697531909323693969457603508084366925424382838474580627188688026444572239786348420350479305770095274168704494068512341062544319210182382836066483634122908067220808814908440731143158431815002283952094859619907921624429752784829990342136659103561962820031729186956982046958501161955070670183836061435272225460792684545008445458942048454681666171781828017733455766437617981108333455228529821873113164439029575511711295099062512024175175849726343379316026818983344720483179589353551076439100814623278546526771413856731035464806221801448102719101335136022262593564363792265501172281511293885165634125402197968811795634055233418431164621809523284066986467675781132447741164680761068577615892370002180680592292707359550879696557874737272408374693753525923161224739433836181737853450010292197667398206377204732184883199895865855981066981510528761413101157845038918994482247405623440036436777896351576874643039057587492886993625669483942829426795717163366205124491992167104799161199503545364591814212106908901286882234220265556986918293304709217291338952674714864311527231376251509597361896044207039720320302137467083324157454851013701570435947454929375142413578855887815061468671353779060162827570511207830316692862105033958147079727848763526950087674076611988524027242761158027885379266361267080783392688130576718157647550147137812537831567659042890080904685378805486953680874403604414149747145293589007765815902029988828705471903270255398266338785213427755117269237129813335511826053800438141116616378466142642837469267324775705886248360604014479948925565647490550367550537904589502621868694257295032461202178863408069096667748354609352099377067200807095138378530006028903293691166654547929587502447221974047388359389654584425897034725596923419249684550213770020871027366240862037274297258361152241384484475877579151687447160143515409726900482159113303798010933636080802492145581408907033698743303740497399395024693096874867274880083042912473497891767694300257419558658432783595580469406409772355752033207957717073063967896455122522491379756353819493649545836290527060187367558060597211036051508757466998280873538384258231875531956949438264324934332679052800851394412788618331926990913679308770896436456777233713155821423645295940620726353595535293297968911702540603847149515421464029674518458498258559167629946824572212074268377833093702803323735740521268257096004991753386999984151271243109337115087064082766509076361125250966514590869870654848591386359871759506246616416714719791334417438468535058439013995904322568023361656844126470877338969691844384003140445725840245106884521993609950536092741453935756701576995090819556580657086233604010421910218892623412148387481926185685926603732409615560509381831930894713108604919146793672182778378208817665216073220611459399937120191663226205000962396446458358019536095280410955548499645947250669805461050634221061863710007563020302451153788964640403387118658474526759702692333823617481162239678204452882038028248423056668830827693076354136029258660822635263536468174688916502634977259238881189046155735437810525767794909496326349551476733150893201301488506545940448728440671426187372503110201305337703430051402024722985089771780107499176849785308196472779492402088968770462514160447322088533668343638301201991537079172642399376524912537402491267128118992788451943812368622158453769596236947271572290035301231174721186930557290833334074416332789151571384702699841832043606190391822964647154537829408028146746659629274432769322336420981195305845186780636364890563317026867844746396695255739627719752899487854715853176368172965253627256080389080426339972449251058514620368657111282080695981370163019491645967371218899806803137203639725078088972698812649340867645932087095623561242166492556933923967273905541439306294891058297803921615129798159935789020435994583143525289730087290207861927848679926604108816223095235275619781543356452444705210802401989658894800124456269331697950591742882428508011403790315676011202577551144752272046345152544923856191877189776678739465813221984773463363869853505833658486426724206947575005177512461138738336367044368478040658862893600996210655313490909811704703845396341805400630966391946350314567576149449414569242204340741061475970782174959594373777365305446620059276249887445230540819771413085157320489313518171417314951934884020390241061080590541958419219669673510443906948871401377899992471192814757712721489754662241486730773161610338540866025177287721389180373196925544439692939956359563810565161895300144321195033461297459071106801480351211692703716474572440479463750578869721208342545871114613415954029934130058943906772580835884327866624683219001826032847951675359914574155468018938118257163232740435776758397334794082692549651690912387708195335078004776459189443051964962460854555780059678197327600701761061115431302358052900262655729055756605754228575589934702652757191696764548715184897380839593489411371404310642214534466118894435130292420077016062737882562847252684652655607882777061908958187273949857142107137414117562614670433668834400063679174162389458630312693314277157634678853651562590363178798764487447791526585962298392103370576885053887167404244319307095147070803823939279222668757667033731686017846163842177273291597804869271412679091083652230150124978524732564759816051694824298283225222028999685345778014597220414221623064026365570107100240116395591657015694211309754279535828275096166816482269893847298809989522357240249081044613746464516033303956492039689659434575971733204378921047826797282128523883447907071814420227138645976292068313527879899693432604510839101277893892400736367568001678394621193630897676517011063782100161154188159005987339298234168248362852279243487944836849072969386663601815292287095166101940007196748223865346914599091959197856553508761851293383686799160273396390882842350160199432118493667184060545435854223467838327471903655462119091169174818425883515105904256633233843454877862281918205458639632517582751669242643769565589816816609628125993586821876856149695818824087980762529174919595135467991438558922172074257454969767982723892032308606092091397714102070148599609953841888637536577646947751204999632669008887073794143384962768209998765819108270297644114787303084245544651425761911937749466216835379815365589740466380290593383915993535482840508623737201105536344684670062972227714840506374702662223188986702952446434231683387941118736710928393814006770588614839588645347627073203523288217790609289301021701802513732968298705292311276507622248322601970263027358927799309016751100601539744548083516373646234094236935765811896992234528528404912531803384072035982777404390549093451943978338235123763266819341748628848001933600967643691093776695018757861729007127306828826457259607685873507925290737738563161520231247366666630955343491448638154807993191105111766296085192662241715825235580415747176851305560854054726923280847335833554479301915917387154360552679763984727258472140429584001018081715471403238023979736781347694126934248084459319108150668543318278754936806652103166492720851603561317175646159533590831834007778178686420068823314558631423809960783872969925553751399867306693223636010964530465186388122554557496163696623633411102614269593785413520987986168253188308809754630046581667766206864639203624446812401838318307093731375985472339130661016404314597048601522277067384811149912216038455519831570443825078975108771454049014147196880360888136531973253346595263468445816326863431235358223163302818524421123462196414431038154566678948113511517870339165568851799276379269665911267523810915758623853118270435974739313136637201255192895403412234786647998779090468564424996011942757125237815818431045893069389968899981324898228216869018384710626515720772050593317418758189349734359975276581837298860745240032313055560251079732332688680142458550634537256518881686596281986555478300772916415039174268359815334430430932644749148735556209756619058141759477186308708852953220942390720463185692830797018067202137620755599613669173694180329592696368333148554152244197458653866578675719402711079354337913543925629412556170206975949930260512181205523688534502108683101349428532482844744182038274768597103628273516215239330961453001759782884321689538633639439452439328945299393116457213715139034457380543020690856065403793863447457637992601045478220478166360893614854892706842130231878085230330714483485063947602819544789257405962716453878091423813586649972468648566721173942371282922596827160447006093190666408499905999974387913530599925605272313244343944218367116383791601977654137714263685216954379633639047727021501306516658945009598023734097966396331796086587676396776705929355616227381930896842174466227918234755891828281380166271016209809938783806124554887247642928083004031831626807859029686037232017033655436942171225763314469201723629719038939630360982480932229510986144358385522125891947526520555765231299070904768822259657455494893030247697087662637592695774179608527495442313018838547601997495951472710189594057705582840396371005598250292496331708293956394879690497909597274973142760028583272857745728854352610635485858743794911333348090102580203679345740596562689801010587636176076178476979312869766293752810484813487752826039175301865464968137125718339211327302689975046125051227234780849687228354405754151819951293422432899191562454690207782543570017933934316879954679832806333963723556636747241166895550238984694799946485811874842551182782158076809901790571574259046018451357983870449347825336061701018565199941443122087925077123239619236269118811334801490310294769940628569892670765091856154397444831743048676544101810473641121788490003654044523094421267393846504232230547729082870440884325567184226908459347976265639673820359766338938047531747307775469299840610244068211223057761753035582081496659968639870523564779815588684696616624935877656514054250927300578920935917501799953960054684941738417491962825162849983314854282456574862344291122701067559799590900269046575617772335161020218070759770605808819269576572997056320964294038404445700909937072641414827994736644913648982539111284676356025767278068019161197770375065126289259706769470974143017950796778724484075233393805480692657908217990049519754339843861387284723840201840696956669696386094401450295001440377361075809374406694765957857400598819439110748053865151686140488118890306763580564210834343255360081911829021286995325992423357640955582985951302734394940966745373342484691675201980845076885555115182644083697001329443908508753600532944919910448478683919624725374071041880868391654282155357810948639123757717481614914541597545064698582113465955723864566847612228696670459211353740052826904106802833578690582706499136458413684983863589201936413684462343501550143897862990205547331271710742292330364082732405823612486739863192974925421171711010312110059387577888142802501566590820312202861630479447034531507932768907799301978097784246733142865646353233411946634444757493027217667764584736460143045532404685431770120389155472628080456890960293666252748144263580601833504364365937713949186351926459948185888007918337816542524742743885425686390379594821113351905927250039995077480115487400843249634109456359697948824436479371431921066145512663170772073466050781266561733342586596036382822086495855528625426710352402492733735801721152714561325037261209152558416173816520797552330842869797633112000363314836766354730722359095234450815976186161648023034627459668729520941789462255110005656192780439918312346469934932754018476177987874197159555140200497076211072290607183166981096904285857667110710349387633866641607999247102786830541006273251432179854895276367471627935961316787413073861782130487912679978109341689189195864162744314341271671055469316402900235124154754162166743826491387516295529459953851607740038326505839532202017212976813135133136361882901907775073512168464889996959277273932338541715025509680608757713824281704442937303625913435459827008172422691881474170818404468319356065589692843404920985250229849974769900907643684864808888608381265859742653680574952757361216941448483559890000709074252539421775695185314415339220129210055062001921815571666165342618097530576353144006891984989823466360373104796656652872104235520127625833662750268803946900006606746034645830777140830491828175902668409873375021539214637027030382565047951171510369018257958508077839677968922723007642361510777994321447318320668460000175415753569349814965506906250104195245617705766451703784522416663263974850813586704021676047501228102168592912308260871892534997973237615766508623990021696712317600295080860583098048840434576276341950218656011595589101878832256897582132048703568629757915416802871530689846683914653945052830071100560310312039324400217874493138550479154805791360913006520030890975304385518680916989462114478713735411818056437970574020301375550864195619272509208137151125845973237785774455096845822786228769935682521938429396803512558457227338604291961487514777026658721349353610888397858167916605040261441530437979889709037828438899978191993587176436489971911045901036370142760009722971480701764502885254758522103603389526688349750904458527856752836712329094530359489530749502782304724260224907402610966346285558705650539485633072938373390604027192946941107834489496591739602479731818604691602273880413885594630341099674240669871979428941862137402358172378386055848609061358330473891861865095668234636148012313655544051133700295587863804570004261480543658824424421474660004966794161827051328724197120185337183432563186445162863550684576402702448643257893180879070191976438286066081618557606170689361760315083626131900088639429559403426890266652733142595438638501240210068453966467662521418956790264308007472081149545792211685113574311489973504015656818627201611736740862324656161232508304331847708648878230849168278361670973197604603046288439678543434532750849962383986291327656715930373898500643574988334686452080815270008058792623527093103514278004630401099047547923323361578831842241332874113507912272202644868261235330453640412149378038401002433675464936936215834190246495484312714419658658573154458243014734965684569144981202975059288155969426578892942836262527429327803964710950932468035576922224608107253270550636393825045617000534609366029052374458654131956584420865459511088488854737315026250457146398833935043425615152801058879526108822672072432557717452110378483455591656058815824185783385364260316010829445088692507673599620459941995115244593885878588585777856982611230282174604643647973160089985899570715106945065119825470394387898541442320128156540798713149030663668739903737117853740319701657609544972448821621458047701180636685698366441145348753300825010971152806112416205548355006920658675951910937088440875526128915085204085038565126589825818741226030521770056688628931501469733475441877263967451791433081802909981320201835542465387853382265265658336251610405542475002868283684710277605112628578875623141878830793438998089484673657942125177267201830420428828606402158869448734425025405744812676286566799505077548245667980179018779133512876289364131836965458541658839694290728019647838102760306555759937896239782162202934526284885708978342371705202599904799447670194299532973828766817483346224749756233595079999647053278309072140413235197829893271441518586196937698809264862186560417847455965569767769427120201165159203461127617258150205144185021311194771317975401297124753586383436673792763894709636643690709978254111532458604351466927456220104013856743839403279160155944715624814620432792207741816909203547122196003188227390583325637017848255213075923255656480335134976927015827121089745634420119501633297562187208877804847703654125042547422937720027003118826126150437248936045543451591389971200161778557218973848256285432772880109385568228193130493760040956675156427294957113896295401491216034965437890925263578581667059243020576385562859578975977468705559368968208467141539598742545198720891080347343721012225760720262654846364481858533444272784941531360573602065432281836571693679127135621596665960660133024517690683372132679539125462344300129726707396353897970925460906786413127372601495437255765720909559232895734284335950765541728488404426958396504562290096697589490833983799787321672530881636547099008876369706021002187847030457011142437241554899361982432375521147261947508400775731326102381376457820069750932738487975500071388017892559093530586090339105822203061111413786748621159125151123831652333605874955350953939255708173135293389467335395804690676762466548728485468009867374131676707517960020950111065738914179705171518438507664788998493531792668830156724177862811826587740772692177494946272874468359144652300871947230693307830487284863651923883082652701383763975532583801717183900216415012013256904869278518750061195741607314298751151824806654066254864811934254488431329924130414687467169605398759515421375365828563140732105263441270177156294303299748325122123028479401103093220805901312947274761249216787488729789151267297079372187306182948432613520245254953903558371417986088706174114233377667992456440037189296142545788299879060718667532688629617163015932237872959097457388973059246059914403525947181513437204233174926955474282630131183969332401889430646449080827184056343632109480188157214281613683544756026752880259139514594283708422305009555393072143571662553885181151306153655090717772402145858246330610505351505013609213640781761610068845999466463592624333195124438337358688928255481793939006564880841245064484271543082584289249065450660998262389926850851582614677495989338722234152825530592062023079219771385768175020704103870025948263337419463915111057737941571086449222601972897150602972264664971486186768468559697285027373289711800477897389150033606792650791967308612636633938264085277730849027798316836232057261625041478763611704912134096147179750663173154687279013026198800570796474012185118176717366957905304185944801896562829474906408479642000000469436952682961171822131881138527688794230656158826492853670997666517774118679434103978114955769590511562931966789988361952641752265060055296679144804526465026685168235488816480036158550307757353586250052153371723125518989110661738634978561728706653938220526516878729217679734778438740163766723435616485254301924949185771601607887228904338956440409468086172601130703840318729695526732632227039132995498212637084222534591606251699628299042349019287813553935395604547194716365833160813037432084761881390887600897291882789598927024626933838326514831548553939430941180973961174122161351845326833247314205823110161799620991348590137219171093806408134038933431868716156492037545051147999053274232173216065855342513580717560075147690951540179434831476946963798590147024659692594108505588726296500331561736447608917167452816588094425180569895097523648854122165407181710382250163300537659896809505763353696831122693345691131664222478332914035985797421630239484044781742605364432755624327761477075288615686418558523361111903095490319477131208975210716128682844982167823713465605907071202571668074006472274282771476749051397582924774374575490602594696126788062547062243489453660635559282426420482943090622242105310805718345274460629433017791072322539779689545547286307282780773224257921191266650564852470779735698490729422681953115990523942625135325164629609342166049850209941203858870142017434128444898076557711834326775716510360855122252985893667736612393025012533543160323131355536576088164047336552163586502681464572800009389570342248021557262046169958888523976312347097793536339780849934828672659860980187042417889654554668473074178159759744225931207533416741206163053658648879366322687077220592189891286666643604498818706003847040508544433538130133850324067291971328533970771211984244926657899553979836962220860074504672244812062149238631338615751874338453033355349787929783885676469362244005004864890453614799793746460075678124984302545139392289834968885225504765476174753874068623781661694908307985536085372338238043235019398719669612488493167817339561289478392200504916259567747633979350032276155736730990737454400376098716945867639473066173618627101644925078308580329881342680115944265191155532956010735544214818413237699075115753923545183595327526661934010051563765471699399322399318386883549639037018532586293779691560134932066124865471920055470188383800588569009165785930892462619292403671246033354651981028812734225851126210764558369835717474930864923137755193961977180127681453566379667867360794637897054305295245215600771555786011074005439044257944651308424842627912367487134818457449620727028029418192538148415020695834336058875761177292663930576479748917165462086124181843826072298777597708671102820690292472731827132607061214010308472720689543814005958519320552825534090426976538105274275610439533977594088465467947052060830852264202484219736062204323735652355993198957889745019532273863394966092493198948251107923247048340922300110034744621805552803318492079515621949890976863207994933629821632679636271906925472963077140389652577366068585280801768263806600457457871285865105322039399652698310099781920204614275799095801287936750163116216697026368236634550207448160976281276593061707502819283617658567452354258753130802712924838710161217496137680790274236233561021104171200131618152002703948775079095807301855246740564190927264816702410269175265544896007352839260835491015431858685208503720008696842171926010830684948205405836794837777502856887589411566354275132996713504180628141758637217594931284134516934400927179220513782169041946090437913377916155777004011681915032888270013971664234406075375058686821757097821459294951206511892229958565690809938923862518518704612548814078046072911449876598668147521550385627826260523574093618384269440564605361125525345000819063790120838639049887396904659528713142961514972572917113674357767358951423128155459917405219355311909404347964169121691415900399427506732675331411456509012202064599752836002290244955631586146844833786561601674515110843090575164586722171875763655986806048796093337152024956153892618226065984319893166252120281580913957712715519652818918891603880830932814504030123116798634069661875514764699086175847874277186612724806451376106719640888309462415554876045518086408170409757307608226973207240752668154362138546655203105837297221495409902651030582700946264230970637354723489702187869888889196817535442062910575127915744346335279246145534384930556933836536458294114791014148707730837133957638895610774847971279732648905742733525571184654286240812921386099895575186416799053617740955238610191451047499282490660466400279558328987309510533029979639685102104648835523481163010508556673361685865889481615648222299000555943803734599143855978996715894378615009344478028005912370184701765973177488380473957623475225538429891454754768635899787323869741768258770063092907770535691582069644013840507955796684328102733768454316277838097931113461807390820444770343539494430279075112761661452974260015373885275022017527591576394054563369631309845891762802772212914995247832294095149004427306806726856095871776949004302882333655663038881736748968256754433338240992337989799548424099675385496771582880483464634284874613969358732932583273037161468783876188776739525437445215465537530468105865574295596514965046434012119036868017368409410459274658736371057817041748845997826255977093058555252216106242542376384565775757326720209806261214139317910149417244573114498352560366364290761531109389140971289681006259894929250564519843033280232858599360117724795090548243624507806234016959204992660838723937294447462078455735254519355292364817251599880637305095752929020121745435387831890593184975606060921748167965004050775855549870110749127701059886844005896250047549504137140833253961204505750779991816581912783532614094746779001425790326160321359812002754067804034847840489478709253881364064854191360441189228703174469844158026373080479150569586248549543688946501470424086856708806976678378545745362425513146076276658635308571353878665905903424187160980727434651543874296702572799349277179782002392495554439365382824403991131000154172511192391886721736458774130569816950897957400444698939948868155925151683686620495313659139265234946159807331659739926469839644644356858846409740366476725430280291420978867231146750334007608104121472321628760628580949762997957418860974864712823544437253545445432711572417477917100307416809264731424502193431063503648175220940853102867551627420962473863871885272366932813385811703364749139758773579915210178150047199128834244028708643029132243452613521695175854242312843033387777731145583935392991730109154334704586252953547305180439741334951216795165211286802754432406666430147934460833311355875010636927450926063892882592637202744100440644221618780053834525255395784304065599891465655024412143861996434117205880851397091960009532571681994732515516527851729212591767617965939037434235678436056392010457846180017332825524322616012422132490362982494268761695880945447703065448270169605196225274379118912184746236828285579098087732834434558349664488366753739976948613867539396558563403068301807564801415079936566197118120212087996440825639376822684236052104358073325655051860934669092476864501962892449017239131164146963456334797097684599863197542316362563711104986169222851969862357415010035583534243657362050500642909407637584768956189467334436886695802354970963451529460385790283988755180320502478890950706925698998336567736678699084488153468807177971484586929556253504777060127983036291320747539157813294663610550077156195598141061487057903374091053197662800137424250218769613566150470219529997417567123193586604325953173731247363809443042547252131995543829455688206605086268824149717016221140998988201962512458693680499495515917032211289718186343329494062695252609102202524581755941115541785322081106580410450616252415081911367777148309269008938322829150612657612218937798899142808988997121620853503131975026643088519865537457902428050269755602565691192872377632113742210526243514047793009518997618238715122112683381338167139113970242506337997356553436452033741624129832396646800719227616658327103902143460090263297715895129913975805656317663746252023921332194504185523985884270968555066365555398107478998877283107398657454699407945221965855087824816108172191426164730101066775721015405632025178508294542585341548321183460607125992331572464531649934737189293669167528936841122135247075121912387585451062973695422883292636236676136653519934780724540600576819678283669673067014402923174475224746409990881934006054322202190836417104976699538715434510075863792733035323928784856742708479010207871619474709717407123251305339261440622445773728308494436501556980810102609619956934995016605845010271920502168738422267623724258860833642440626413958088521705034490162531147824720331870810098262182017808065899479223406005093000476430758408038181858079778887589523670967687171570777430556230491242807839911679565320823442677635845724295318193790391431605221655067718803861972404629280467518597465713634335923335042664136196859645368975259454949826214522712333878331627808325339387672269599550313860482751132523861219918403187781593845795579104188134003678252908478911555878262476970194482237364687651951326399215890270297540878030408773537491442307086211425320624529893773181219611309405030037078416344859571662514849015328505276817199319021123025247632037574446439740962685628402043280856056945257228399809001813243758226629081937211254749604359944257987520274206003114858394472318061877588911076881485727436398481376412347386788495599602841653747367292591215662127447663004377544919416396242924805507034713404491001235084671607321089840988046911642866527282603649311321704791490756089019412990958082164750129538080490065661996316010215542207847248023826524143105242992465957010331149862801989077200193855343397562287164095247526616923731858662926084525301522668764101259151870708488312906584408626766052517680005685155351246357559904715695963780873604842351523891182122366581957362659274979198553308127470933618418324125587420357987359913741890554691245647403014436371388962720450081561184624612758606240780944571872391090960279450041083372628685142262645600396337263822707557400289141649196004463723753210696149340752796935612612142328411690154969150060151692060197518889847560358606200051522734731747439930743261800244006890838784543265251524806640279376802629944474782961680403261545000218880580599285408007635628811027266540252680631064930472489708207120715145925618380550659655160773040539733208581016831033436513693322783214959847683598328833988489799244715385621054581095965081242884174445088496804774307237484360537302288220722083018415605133677375775454316210883851798436599859326611753506087523609228859606235864377616526495888115005797339346835524644778865982978856479742627476425197298867607296770324078504818111426084506797464831310231291654629281349353046439532696663205692711434351717579519172894193702331206486082598537148696146705881572729441553455147410727602476243098753336905386568005502628272242737855349700315850950077345688171414802370739273035713811826646934011670691768644388151477066459463561795333229542206415389371418076661980851341313563623298229868856667416250104611879573403033153508856038501439742977941059498087170017552724316262946963505255885043761220319148766521861526849905900296095835871967589378762233590968607772508211668737587096982261472541163783601075718496088887703590214424148682137296087968372431440634186833261831214285153828806145686249696221798269050837682066808005515133867286680896322367400975644920972980970535889511734566420406195130137976436279841452125016189381243390998222269473481851588983423867310906359411859508152038531314290251336687340145579803473663828753751651415554456106820333014526513537042904180017498468136173859452887163517216680340472689970926987456916670635082688199852293627699367130731243445268343989063200691115566103129338394146103299861184036876411946468494161429382797846248294760410862113872894962702797564185101746633410040775399784572945816660823439174306805296536966650319094701568255621733321295484214316213078900324130094771110340140823568912721179869511270412331210141187202603235245006752656896963561091908666972903981095080086748698298050134977555533561585390821078308295306847268872865220848193009008517282506917207916386861987888980579591676016606214536128838250746903698923167606026598921517306943206002720991365066311539396610306122415270352374366818797822319162096361213985763223379563598489973087574440119744780925976466311170742503807664562358008217185041014344856877562486089611338400340449837863016729264532886284764760824607238129684723210834794482058834208200137954270268649895599469036452292361558763303514269520004174098499280261651485253009902242343665785200980518116054475558873237063923179804695131770512479544861697103710426970320472101873990736203034336188302617743639411933872397351148077532474367723024787437533359917084380716474349200877262541478932261255353876518026275287810888229474771285115943900660660256704951019554819521324586131586676834360420329515791448934462010672378906577981465319171943413312458755838722051732851880609158607831475144642323662547208810346322704707551587413463166379521699855720501574979182082307034684630263797519099386216885442114488553994045162306864870406361519875194324017077284876903738606718632881973896983139075143999416155755471678960196923615851064583022255482536700813748955046494453040879166207443795014425495388381820588910607015220530501789115104719211386883585843224309654149715918799342037587239002519094026118767099889496367391527053173840538980488046108607854820657309645570202150830313743005464441513892169279940967175651628919114020461974602853402268066740189035523433988887461645355382352508040468927838462729012776182001866870590783784984883924642076023525978098725604772875682372661006373059382497468366904333731575281999053800242249113259214583190510514421583819332449550656140678144112271685052188632180084488272443517756291363466686847731316101740621368711416043641286309942809827435984894542371760284581390988545439314661286494452565091553835534220561134975913429283716263250696986026719354200816426476020575747308925996664665310586986284732073047664546345406329705222507525651172253050616291256960712346605007326821409795528213867371424629238957607598827826830404034688546953333433634645889485372888526699889574143701432758187448844283154267406806481250036147742582465842902581841041981240378809247929285596922484266809351556065323369420674583015118248645647147240628995582211943299580882661321792895694842342982759555517703382878709023806525002180843625684463024106680164276217322587763146778539395106310644158923160924668267459683406312344542754143891398284293905265244507958750737689595709054845764250722229997530486637341824600448983636708844086562794104600126009376537847372440999243964919360535366463825338793873007594219629147451898088031873956644393716167055522530426744441509607043894846307121076415790563346726826269676833468197803364892422776997947251329744347250433591357259093389426986928307556776396147935988963706057066506896118738829099894535431682629497881745718834958935932756357028272912982947390029387195482129818274446345642825874188820765823635858320382847854301515728453697991134496973510382355098068241894787208103119267951047674236127106756656799857894741758765145198428531848189139266534851036786417498484527896566883353701299530720744683569374509932016637673338277939436961472175782236391650271175562904013177861720071678171899503743099832921641201346464542769922337681666969778225480713650155801747897224549825614253320651517124322266744375850811599900083869424267219174277293967890602196798771593948476320159004726324828569882364120584273838676445576538697600988024454473340728975980877485171325751037026605678030635824537329823806567458971550153837328904695739225639496715543182926227552624916995278257168152840844636995839634351008172744383680098330421245005890409925231465283669177313800225740529821865164747127956167551994913058766211032305718373960635161309799659519848616293765261595339474747623794485802208174847598195163127918255814606476471536015260056244345834703257457144906643416442988415569321486686705703664253853478611002097966530255929075534829985918160757624781674744694709464895268191718749300406151927924518477117155610325004461452484240233541705066851006017060206522218375996609014163888476987987522493039615805014956495802873439997794616694863409572539566474097718420660391459718034049887540614226024618570681528055277033337993761878220135022428182883475256589334032070649578087049768459107171646200608501367679608758975377830267811041205100097499046899766417272077611017390905409287064249977060560780258274818081632435631374637286338362647667954386235182288814375029568875540161252985304054732059968166830881379857490879961690193900750183865779167048151244319484486612444684110570484139311918872934534094411099736018717738249525282396316597365659836512338056117986109790264160655879274562597213272222571438900668997314803614528106263786214349066247256283213276104904832308903521409669072283330177550970884238262031674910342318345567998752604306801981071729240068688592714638598699503277401249895768786612085057612431257425694233278746564595527251380258509567901647341555397157428034263683916762978564489849284726049500220430477403019364166208416708508028248651793918065051478059473618061469666749480262315734672627136814806682066682769187030939920068283267426570915841714017292177226058310265344934137974476502287563426893373608879406913597007585044288207375540203267830271304808319516832361229012305993817219535092610463161156040265181475520552234837721796433622140940106602863924263770208832142143291634163094523205756547429792600307081679242437066447840461264737594518982990225143219599423407372980520703196452263201416406763807924415406245009692060055534942456085067661160165492523026243829047734543290976699784559016956928212622061002463645100078431311426317371423205222094642412702074217416361496592557301819357639897227192091868890920929964473804557855010565990602759587307492263076071628592878230209269365820663924712942429096862276470472156077865076975371837357759444016540333529191559673506178699221614135083277350447451255871860458474320669093374860754806117155937986088521303731363277786063808066079065024065406330219361434873817585915526983948224552735377552356601868964124072364402174785729945613624642550803892782064668280438014692849361663110058025677333248046143044064017073282066146066695122300458270986602502045588995682844103352433945818338529605722122918071799179296972656296634699440152474785008495677277220070730103401060129553237455271581075637541819140645046784503300619468492075262574427417425793799358799113957769771209892436798205328610014684317948460726601430836868534450098732943672224819213913341097904800694799863809820707850961420353056863317639256451701519488968049922426015297445143412467988122320665024597876960601306023961687511391334875231495359860006811361681311756189860301982701792481057136794050493231228471578150952871511742704077139497870387978872340950554685294405859025854823721782413494186040520151338225651637345292821548392896914335603396836155289554375419723065751363292872768553750703895453794969216423060863220796101396987370681689682584574343465498114082065622526038489046816730829283976024830206794438765863900367955428652086476988330073849622681147858819104655176026054166341000284730247439974137242855437546503048814836129977909322626350938063928575500197489993084408997770684035549274413563749501857167500647753008480808253152808192731579104754601061805017430593274330806650330771595938755335164614239006827691006859209490034189516320224554041851265518240201888984160882641354205161893917671731236989616073877526205209896163703987836661721770626342744652993205177047852468311690230726975291087171211963017654508050482623968481895675205215576885988819651581474412435786377899034899871956831881212574805924727672293655363310199296431363375507004554344250170293005478422456656194930831142374391065321757531730827089842503160309540290686930014786979543345108883585651877442745366549132954307152720345737183442209463209748410051026099537324380324304878891702553617212425956728288473505228542534373628960427521496686913740103425793657518553764005865342000263404821741140140295310167269935947723910034009709154438667324280875144293686024837860794413393575910438996636708675874972312184863313901104698880452307159910993779687106591514410148672406818059092649999233226214417922706649909953354914602379367890179404782454486633328045227969018552126091786287604155807426003012521358936354301542347916323173741351070064131993974554385314830165733790993767854294235512509012007502811917535165528857951655022562974042649621450249561597618236401862435689603254454793824685667988706380014561088138006692186568620162322913999337221791353213786592183667897606974144444317153046171247060657345854722909339980404516426392850242516439554443764944832534143800123896721397179793313468093873130403262996311310992422968822821813287204597447058523426277088430875682758157149450575829586925622450879944794286133966565973557096104410368044018189825655609884920020517567031729458480615316308680755079158758530523972900988055846637991126795133350799974571987539020685020864406861505849591697708967315223253464772178569312797991539400685064256232190220148584195475406048411608553879733045911657857344813318333831102616992267072041701832187352448683320558187449815586324566700296256591902617597446426205362017488166350663395129748837628810365620153896489160584582772359991741029457181952365791210136780014663170806881749967047288245856916111822558666376402731929130487743067363693113497631267694046259925625524487623872544124297157729667681627157569740477706371611386885301040090735187038860891090959604905724362557576257163881266892257456570503108670316756164423715023446244452131643622835930513219533429622074626822109336181121231778695563633286694545511476421468658623589380303042349030113185028532822164831456491581611570669476653086880860495282422702524740195591930659912442874216845833765592829792664851331368998492664159552833302979193548242285992316352786042502610810676427648134989496865877094175516902893794921610410369869720964071319450020571638139504968502918532534596416878759273448234534791173572043376304725796917066106797700122816880212762294067293675037223227280973172425521069106796931104172010014267511149663185650520329828735504792407299098760374289663607056030370596897901544576818474478481571414345771205353907150584363765729438434939238694089104419559152127403700026909311391152746962631948528387423168514837352703521570867115210095159545640513681151073945291768943307840940166621277381156356969101332045573698959289146609813107495726110715005255949166963973538869004263557809916519876007096046059674608216027083199699505649941090767443330432748694395147878878824895519479583624143529640001407972936964762964920754305409248995372157815520062477006588448049742388323995507403216048397815772971004956765396282046193354242734548262664500709341399855007499278807150545341419215182692026615883637253434936326645236923810156806659834735970159731440372179814656728781659956494537325822334442017661790384315887968725418744988528841910929025870038368139964313695716606148550335493069693659700976364653238576140513451568981594138596966511926686562601812716830338877144307410534994270996036719859007766438412241692916299291212889699357773758384088582854172420450286369412380402057324977275562143076575994127883542334599734772658739843038147264712221641209845312977348263706226027254315687762581294596952660483748784060498505007331011294856316874159512379759184852086147382906092783973305876770298616149523061675878326400363129928374310984619483487138305382108244946253066524600916787287071903191166537253890502410560333670200773396671420273827998385233309406264159114701030900380876564539350955616831691720279379616732125083847149104250372350091005988950715678952373932528753260186278859239618752068507924766048634524074575469555965569844364889239594739669204029596159711041503665913382539013221953648412304041852423989292988740061931491171620489126334889762587253878061242422633499541335335383209764360469408565615853620167417325682366570765835851022076736797268623865588403312093058057578294437823337615517516863577938577515690604809722265267993355412867651386365917267365673445372711659313452783122026595853250630682245958049382704262085437423732266727941739593505111508158283887432630079065285449773448029092584209995956897681203694634501403130505438214702733909570020242578184927799398284043637816210607300533240315194992351700818644754917359279554706435189895542394966511496383799053000114456123089677385359061301233787996531615448751825190113169210298417250187548687350373267300678657232961461290304782288575942067040886000945221555155109105891986989127623496970362854233833271439675812652742894752147934848053309919913411015481255265591691397443094152813621264243959568562066345753323856994298853414713361016790403219869745172615447699858895674306846929175120060645951329960595901160629183687925067977422682011541841536718685839010346370294947527775761466516383989546607736419133315597375079610430438110170933081447539764052194385769219338024668629270346216333244381675733349258358847878115316905831550743727642029236837536483981711719221700635954062572602006085976874337384998146750226845570087803150456334519155567406944540437592846053399278821813971501910410757232791169141960561320715041715540795236134007161519869591412981967910447559216423099265743862746270510491951587171763943705264074041015158825297681928601234420747414331622989473125533221364006478222158674562179138053405161592601561139906516023101149663507575641565016988934538516110362303426850324423090261472913122715085629954615645491731797213619006256435130504760489388799644770556898745675479726915741064343875361509998280054214102781855501265448288528139354267974828454460561847826883809157736279263974282947482248378575820247725265496570122966139413186090147758610095376695168055410834518745772707860942213423036446628543628236329542556691925795189712446585180154994860345563118523856710722096961057989027703199093456377221843582541777166487362917608015160743497470387069718503165875588524399571027887123277416995197129750597982995628374475989233069615938899704473782364397365580579443246743063068782224817500724193993760617515970427829900162838661000473270763610988734475943912957559763143484342368607546479367336057131597313191002285900643862018664724050943062092267152429838957061976332317223388201957116682623128264236822258829286945801994342327148012565502519809134028498773142292122877368298388261983442196096257774348515691124443790290820728967463200319573242108191023065599871682382542822837358520808349291617543822353150536001607218043770718131722273392828842541609868084411370209866130549084529920101308343139018446178272111223163376625099467737144515490558434190396670291570287812929121847811374408915833496873275158353385908954438991637583856373063567729279709740939075712980807283587358498999721951387508469440074767616682792924366347162736112351131454214350051121932081910640947842767862376809165553051634586383041710921580624724253654637616911078307415534002808481795522857164877885485039820933178247490101375224737012440173581839882149884395947669091808467380163621784772873856450190737310713059754336965336358958933579164207995594579961892395407750457044954772451295698641895578856395284170044882883381651761473248780886133033371638707545406939759928170967950340387210608833740178606380486809162287078635089596801528878407517465018760229481518751101867128623985695139288796468266773446797198934698000627031918534267269585164219231419323543490731924036389423056761892142039632605691838198099911284963226711162787408020758784181949876754416678605787525091316039220436135107216894712038468497569743263032708021461302928213315920848394965504667229935926850130564556095600832603484668028814043073950266620552739612353788853687394254335805117700764786627201850641388235288320961626740726467716513288008632752831749649266803057169851425967481823126989663299407685334023298863143832815891338279827040544527774281787791228293938261578199525339884738881095668388983358613078689995798570627675145044897832289536354442420383302158382378212686249526775742960509367233231427285187576693180769369558430874911862347727793687459970050475064414997276035495679220842631058319458558900016039532590520557397283819634728993860162519703848164710705263552212718846188798601821521365257771196790140196806459101870915654184753929912973255081672098300383078734498099516063203588917566324155396208421021184944098759629831921242399843061176466431727948869742441985765888910086816784352108515957936180816385317561280834176503466151586012719705800507439142912079265466270225445538194725908825755776100986060827410173709353444067997488748839565666210881088212567506621763901118876775130493456539659760036500714340520071980526656105786570512024730629044185241895386497005247559981555108275596827679011715914187728262157508083612930694488784568290493480747216898855194298744894300903913592199136359968473835463202769371848344048523831831783469649171498951601860517282110240096379521868510474438315102991324393130813787319964381564194168634749646104719606485969650673307027605725092549713636938058286117423828655059276593300720254561638000336179512564716999307275328347026671756858524877472071900126931385334218181829536863739690451950954622855331362804661368099908125404600707865897048616912195479104554516271637299547989936414844693562853537087463566211192523239220153326553344444705524507500048835922579021550281746127319339871456818334926109270041980298838722385571909506129237795945273413911804441352419262956788414232282098446322036931498860117375350628380363945391958640420973848204318801736168373079815560747551890669328996419426202565027957129726204953342562721982749919021632221213955132335625744255932414518176273073487671084181209131591386933484617821913784267512260406125090389438854807485649915455051790791893553977525110836695430640232283136466519234192184938461300662415006358099330479828556837050968907711212498464413439528497111448117613589842286420874893049437342294273350147630261670444781940848272554384733899398107367332949945476155739509225509788584205157147184085120466817939972062854267018503168032966187883288313984283665768721460745471486980451213656471632216419536751155300353071322692450482302271647790725728535357209554409973368653281896141517778276093417138524491881977280813355617096454174074178967080752429260628768090180614588326522454336728259182330636815713410457582867664791956382171899123660611250101165015913912971514455214940391919849143173978553147336192814572020891105270555682863960941263002899200653679567753243383586539207050285313379310402238661072105934399723279298762363584042849309540245112161084257882117314504748928449953807757015131410870292106705246147033544795441066590717227105587152878065735784092741968126874655181885905509696133216729793726121664261512519273611744220447080762929712353785596600616643280354769753398565378021132936886069719449373178359641854289493473626902133289849320272355221440857369917958772277287610246404133860893477002544914400936119710133514399229224299590365639364118226379721860925177188216599924690313759754777001809159828174784870286383586852803329963132417581361234836423538829780216772894312210176132031559252620632687021802389670197976636238723412453450356098837785250017019455523535916933758483073649225405596998621446587218942424951103580942950041626144754155668186260807323673208138714050133145507648404476227992011615158499282793413891734647163076808717710460330114452283128995118483126842905968556439685259306404220429086773146310808128805312345917487322398903312568911212649543574065376863184814998278378417162304023717411952864403624932446224524411963474231855677899238676825147132732475633796655202564663906958088201397922054543078209288066107160898990542728706074068023762851480089433763202739152049111194840354549393330723047371763409690415244732467747121742848908202859867554394566632938947335474502290802564645168903463952967170313149437501001139068373095225286271318493154285308551229400374348177163098669320784443192044069869671843865486966900356843431516341605676431850727896236745020654984185194046824490221734635863087835838056245629330729137972181086892345937735022431591746160242276109086992783170280571339488258273721718757732683005913904293522405696400267258001891879498577740505247398796084909637393574190458668686017405832674132398640222125278787091146800987402761797774553792108950576747625679424495303206362427698411981275396716045000785962273622927745168597849140465449905046494691334225526093085271293923801555622481242843451342419590833182841669098196932004340166461319338030707366043343697346791672500432029070694131155800131433470464466946483181171991622376160701586546666817624904931767268991119057515677058980241215387535675788482608227306194866149754678079034721643291755314471641999588899154738321926963668094189616811084728519672730022402381009922178881023854021327722147787062048729666169616993731852649151697976399375452625705469536245115061705009229758715917435586047081235058987666032159518710710274011597324134866420329685183917247083158235350879339445157888666244799870563090064331418593485258887530829510796186943646213708821197812764054981565086362376579243823352057458219984282225520653641164955676115577961289611940826844774105996254059997276345105018406693376290497813618088524038747397100584029569668177899890618158551901458313126928957887050261254656081043168219307484618846510875318840565849615412254957285361120345720140905954622433833049392676513126960889734012108785008320337447990277631161051658421746951943299690841476915598695446383035673654885484778691394970546623292371426658509979877246887262983079571459208828942250530862582208280006223917157325761558098102907778620555402974935313458800085691308003281196959524776836521070071157950487484893288178590495085104083852074298489798388707508022907926034064582076997845547266859904664067664757946851087690950235692623459509190143634723293967023196783571487129002060915989968765823210492453841930030478770337535730857257557933731758489281090369603943486213742282099385117184022295387938405454233727885197779817901753708560694384515940718669618517334649807571649769693643624006712861827476850507024901496414135885538061734068736162424640605600883158691592835562875983089053082647008306215819305646190702241752457929102110474891662076705243313679337483264444868955070422716534063277709729726311972534694312087278553417751331276627721470160115419647603931097222463202941857581317919356133392859483664294538538727814108101602031557157353061018252109040931435193538856867953018911534537034628327203244097343536943485440630400215934718122840018759388821596588566378979058032464713426984686424345400695903067974484196128379542763294978704386489319785988166430588055853458312956049222966965999766928351602611100419528656266310953486460016079066492707106552650584377858050964170949195796215716228031799794223166112257903120819010731574967619561379402481860685663873787388612115699328079759927396373379642535584201804687553244265540708956578094010580979475107361873903623943425906291426213867710422034560853387562092507960746830019763709653386364394916870110925527560637653357812354773850265157778835275910069807627827388520417815515497655142261485861572972022548232244686899788609554002305871713135665971572058339993153592707272601970095936993781381569075809873809398773336810222989168937859248219339070402600487772948848733246364204852129200360902127494940619664913732222379863382999121600682383300356398150495193951663790429008580185623327282283402597000955884046446379647575180781565431097185305324443546339347062996257097324987429465746817055477971451308856404353283590750876543148641685122365137241465703412437567332080227348290536065905899664929028699222510162838607351486219235110524398934275458366759327922944646829376284959404395580225113813000134816018129133897571595761164828392050924711789701812423878899884822788703330539418305912329436095875038050348161519581534578583597061971242891787651628303130780489653541227750003067972036181446923708249059624918978114713179683165695302084175541158303954142152171140043333070953682892260208791059830367729321275516742031982997693772423593005372149718698933482154353792783379488141084632191414313235431406175791531398741429545232809823213141233795293494829975810219765373022831370016405215173730298483360753383268872122772372528556159387900878570099094012924136671894526368385975230374879915588310197173925991963212586283761115712237466553914248640142072443130917424479004703421600712484699247203505578901721862163215016485616095170378024957400237309001250444768449830596144610475642718131951307228488905313799068287559271067080852963738981037227617724937006194614107202457385792520108355528661121273142078480023510234966824182692342026284534678140069213007507135585811324421601910950791475208904177665605434361395753523813949985863046585381581400329604282667878864915301071903675732913820032782207444535402395387157036392399285577540208720620289083082431008008868560442417241206046280397921430441971820654435286526257121893696749505628903128735346033147011546356715669665449911641212472679076346163320537625483581020936021895684379385167427017433645047889285288029701361789761958261066568219917883201849916009819365239895389876349458458210424785908583003657443384920757955685084997777739470602971272282919302631790066457149927329293704285408899662440380672585098570790379691426071031876325051008005330880955756242629071619049889780438863850547176311344128405509601626714972807523926993416890177798632724642335563224983303523242029397924023156004923692301654523371448813364868674428269928161996626330514827654639537295109707612678646437422115286032050938908456814787163740846010958848878844569784448385863827222305260787410486696638187894559304651495166121552136760486899978668067954575761868091761043211118599449618400115014233652627666139256796424599146844461226487948520811128567031743690879094683694207158524412031748943115890154411342794932728660153426831858090694372378558421420496294733275389255002566418665665028121200351225361182359010861144640920704966186081054821756325952619439210493033028324226613013362092226503138860191291501181618084019656981864443037492475923336261503467300957129184789551023716566342461043412875969807466433985250027916085547942413369805209234340230794694768986577724249476685908798474727320499442311302250606130762119235186912130053628939868153564091728136209393934671549409711585095909317402396465990720065708552574045289740716625804849719253616696679487947397797898910503095016219690194033614401736205013445368097950886850657350935971477889083005746182626107078102193127070821011639733066074002629494005934550427280223695230944063188912121829976389574798514856430857186127191585535680359279858642614028043857057667797066476579092726802137304249642012735851282074591761463262516946263442147750872318289204270149645409013949963342245516667961079758814902000187903081430721999627778260615866196270601208838658890009489265540336253421053639016249869205919567612612130241840152211561508081606143766203267020064087675855771448344418888223837546380732925863447825931608313476135485730393032216506641191164752589507582339963404461021245612424799429444495250092985384115539896456419867188019266182869110091811455080446810927402613885666977480740402864517376244455310217759505413296094006000629167040608847713525829611447745533059668174096071385766663286570201825174050915096637755553878859862859384816099662878917716936231854829616006771211974000862112982776631049136408481756644061451087321673099754739637458305254875737693030667817930322666005389877397245274898437005487334866091691706121895989953920557180577713386876359864404885765619919376943782619092641530330053846576731523904976206203442449857060827314526030947134334510849741123045464216229441047594813246981038762731682837049950722028570779213284326723242860277139029576290487780462139171257504186534969600617871409465337196843017745765951927635460001291517789321993153442570756804776812809883158478154228594441278100925581588495273683128040147734240865620886220040178387395951542742806282502942191230015678402530897275571898492247327825706628152544152894322636411240338771260462110393241631552507516394037600752900172300743556958311692361577413986923655134218895947921790236049909649014614466718944557984630094842302112210964345966053325779201530586407135081076886257505916931077579920150817386153615008819479875152379150373211993735794337635303414188656081478631854873590089912528968910208750513364464902704239318343907762729280680943161155209700087661485942298789298452270902706759281460309703022568650440841908605438450899693977566727636713386071315870475206862964993672553661055988686735190950914485671211919426643943001350707115734546559275842324644641650717483742198693054145101335713589098949953600082828286931279361951051649552762022286520833979542785349938565133937292856167817144692224124268673000767454972210937325621371485386447705084000817693877476524005052081305646387779748734158618478106667834593080043773011513391876256500715692277364903279648240085581209524642305972164469186147623007227772674408550723973103028431927343730286563652081220216105005895335063161615399908562316880324894255875600209243429351449764591727119362839123760488275381420158914803853816657934963694006688624963621020265343456245485063924652962554557152517068767844208228343709133404067359253172098464039844528984413919373348184812146533364654848810419449790145357393392331766637358503156170274136447944614171239369183323317449158482351353054998825774973187866347352795137689152276037930078939270251072517055353099157029883415480341791502094054617670501972427803253160798467701073694527719060672864555781817666654844627828297730708725488355802293270652332085471892559101667238627136583602214727977550358113770158637994004012758943313597330036801305988187034547939661370977712112095033928517937429315032396752865904521170222076669676306897825493268763209559461668300190794355926586463977935448246334253303355210500755870215879931475111493517673790157310480458478400466921877998958464507468142988978046192451771992670144815671979385127611148494209750223275123886926905107999707796774190939585709183090038084793945690512401202523415834677380870349988821944455106682637521397079945098581618656428741384113915697525612502179186495263880986651996087293294727460867560435317944574075474552465953273078973395362550041291633977958042556599565777465577298721169204839591865064518729923408803720435129145375571205724267277957511999726405657642469663940863378585360738960153806419014074949633424917489657384067063048125566377668071015834017979899570206560522563958930655450800380678646667313017083319869025921502277105030954818387089681425913533743085444586923361353504723397744196137764138668522214633325887657289002551735278772201533410382362954822602106877947063994695518858170398125204701165948392855696666132459381998004238219549887027844160447510323305909168085435005896425651734464352872955437785849133554925730398370141783330354379966385150327544586074381317652892598875362931092616983391011067163173815956246964761150892545724089328002712390395307626637792829460920280214740897676193092939235926710044272924139507947595070387317964726384758182079743055781182030397093391678568064882566517206046175416166502225459174653984776466960241581391544937653399564978111933148985758491938432768230467881400071946718132020603781487153049652449035134995910220102054578827448908572439836553571444783931337986907392656855591696358173303980861625476889747938271879828303098283197732359188151850354849717403641632872637156808556398063891124903194799624774451562275147399241440452114380821981040324218450550312083944083164895427514955447618149790271865182898301114040127753241587904042144724507441189116434684543421132215143513545906644070473950633428478915328336971747697683314517066265423305734743386137312371984007621975768129061805278855201591375111793944677737675750157063306701919664040917762289731416972062152456838132101817867011653806747947798049524084182582543320417752585889566834075071651048147603416239752085137535390323045048009069666610170120081195085242962571865395060530685125193743420421708319865185417986655743136953413836263152167170214118199012850558429289110633514523329889830578849361943608055475469196828357461092853174262447962459441929202949582749486250432494714353946518095318792838695012891458959016126734924364923972700159777309204860092320584572884699738577331069193886242013196540521496705115372932549667256336384976896883308009628493591776892665083102914402580151891379519335607174881916571796372018234951943070646197397980149984994799122570856625287251478279845649857261973380590857112152300641887906482779321778817858167800768002014230196451257330442036381227019786175807852242776995626692516120721607102812589809064098115746964097278965337428593334020217173986818550836627096087108233535942667225649248446414845529912803562184223886275189511326107240352783235867192935461710641038208809786664228955363151166191491971301394635629219776276752466917519923672116955466352141509373837760281414594865152792466796255246820091720333254519506026408880763872262866103966118422703438556062638306101131136688676876429851038453618871470578110305474315308860911639375197124365918497261029228127763370086708153894747451946832863663081019525640565888176902772089503479074442571669684975333545925007323625062489279263200591386527029730899462157627687208097317221185551714925636294690883297535140751673151881640740181173058193500119014405983138264698103102748999877432178307844880433039324021203525333725308963039003601284811173286739792190165999377938098335804690153311916045623039554743283803997219759110467280545441324192666171694492666767546301949950179490240366081663058841266662691775413821590040022218342575133187956227237787523709087533470579096089034181558155740442605810079594708039997494094581816571269229533510453121640573316736768686848174356080404409665681522782554495245797469611427612596847571096759670993842813269304835734608781346554884037073160524839633082939228804338964645974176831543652805652992976951469066702089031561947336611454227799772455167878120618172297260020117900553173276116834045720366669794397025428383283018236188254202391245066587940779493886013062053348965745934221245313624749574310516456217595847642800980481039770167376877257570812012422104612642522167169739850933184864342214604779516884279211484739978341772719433760945582428581383394618403456636062273363374094360887921146376625472378699002329100613859374222461638559264682431527144338596371167303904243501894925424438820750703781827826682097275396800965520070108886027640107582437758664866961223725195761479125334788433933123176195999164940433592222388816796702064404805659867526060591217607839240818299189349930343746253676129095944428849311153601503799281376395493481467079147879147983221737840891646200565759855628856943553452283565156555164193931627160405009357847234176726470866633757159140309502221544123496731392925476803264884748361562559790308174939918150448873338469820543097135967850920936676036757069004009438805435593593202548902913608288402567841337202830699282274660479597299101596049741672908685657976233136636965922818036226666160848252734772499099378984079508772714474811590462277997965922199364952786965446872404310485760071544498216598476247289386862230478756775799208358243590275735460712424016919384860667634545152868979453816922926419694506338550189725313607045130592964870702550220139634874361000433018159011918698049354919778639064867329334275847498959130288491081594248087083327221144803861171998530499367878112064849202471386798476023878618714919537105659585490173260566046158235474172004781202948975095113768241485167814839060545883047927509132010372592875021370061603630882862816056294006191297833975823190276639928649188492582683091468389393703452194841379944822950912087624888451552231072602472490547811550861552542952459717651435086825088895612406889840074189897717732111954809474463308758820061836782017618513230639347155577152042180092004839974712664448129406619614547057231407166196048399227460056320433047987594125440671197662621512257892014137664856274402713799197063290357841242606719178245630058819610211030151106556010559030132088022570526329645136298078806357512748422864463688216786469670730274998120289332016986443675596935879764925380823687523287979951153982160999585362311963279706271113874674336494600636920420702955585068172335781088645564435436124338678444479857545200949505062712199052565750367114279977956024704746743536817850482507160903396579104989635427617024068939945892191188191795195210165729515808739079332910057101905774801440518243508430557947403590735063901490579041444941657315374550000360400354394405391920914761696953019704609600756969903521757337122637471802138306950326134954799247160806663376234174142747380168162494193227786114111445589116824868116871599199050345112342978181990531280866738459216099970619146184443169697918516860755276072564261946533225692931777763055585102270129543281554684307091394232971374635861492635646783189953943878252498435562326793351286813742058603942345646536700762751630466999501062540078714052223181031910320118016219214769668181298909912425391104927383283448010056550451875381778907248908543888379133566437845703509748902590232382547873570919899500233172738588330787213504971191504585293318734897026499283286514824168216761171798041907924268639794819612134295061832100463263410960992472542485391250429058600875886803987503526934130717124661438294534267981214810979329186604165844852092751453351912496699874257345427805494646593914108544579741342384693258943246859727399449074987752225154985201125271394936960426902097427270750655821367644786257988585700449936899875506720048051235956943899991383444173007053129292638759494136539367595062302551059200250680300687364599143303064600816477554245538762253056854580031539500190983033296892491003918869141259806192733463541846417141870606826552620642562261079892210598532288964435730154564804069795082726561113489447007945838307508548732511104578919387317053922131086326100455408800049667298884701096448785854885632891720847380283172984835442062600874621627591790991131620473365785057337958156633621968445821504520608775693968287055323233615693651438212874806917709843283021903550264791164561405312764730699135269597637626722593860752293669647552154668941826520101022681622061208635038633548496827649907543995297977177610281407417902660340795667714560363140754820902220175843918769705488308029981652546770453099429037574520983618088356373660371191381974791478897628922745452025921700533101655013962082540514958285113486976098498047849754339218940471701586077028902422912835663562272182768826791102752971241506638236524755781519533289088923602936436715283390297335455030610521144789614728833930724347368435191199355279734030908129193899651885886459576067700334935780876359055148492230855240150390153111873725947391405969029253714159408320326214908981334300707807105732401501858358945241924384897409685643654929365174715341232017570063183308424574772927087248545607131731873173974971507885236402111791057755086612012553398012701140825182250034970092137039398696835902459049456260391004056728562592074744776978053530074405220156076363602332985972440241455225912782074066126881946261228604074929574593432216773926808146633889989777057632251068217783293640162573879745854737297229651618993883575259558508277182719144021334656815903368804294936056120621468946995801556155370514896772789942170827668516799736254843922184854557996005989952576566205994364343556794147693717208357396498380465954325051622465972347754877809254170805639387589873706111187785748614708817744674080898945128465892097138428449238951709296025935125261056539883369088116060915897563491568060746809144647175174342242118523324350766362122530966327752609370878461472928719905539602150417934781384920609554234771287633250100193934963735119516836728052657824438520433045768230041205877795061875756696242360339638695193471122941891901163377561744536948880394699330966865153755857982153578129842715313549791943673088818830597705301276340512180925595832088496574029437118610236344242399414708469808800173948338593123205623386209017065003380203823921585387289329306402845852154318537295729677031226221155655190775840393773801062939366290413086719920193582057074931259578840021987653967864748503531253459135009725669790302571585084966520118419985707331388320740643250941591504064656259779419279208951524700528470126171958809921484894591017289381777218543672307170390358670620308050866031269513186734958574969645994187700777976414057633677238285037320628327721240590032779318984904938575636350887715605186447952422692468277033525569000077098718633995453503956718948982615136189814773530953365684115360321080961336664781189335033911440978150725392122092374435458842493584228654740048056328402357804390363600819497183261643929485389456979293351395297513277632141338278138653164689586308577000178496832937545672839642685280853062790792814743235188535695799890374263717368324197360689600215566767284945797246949140741072209605845511521476963393277923609600980342449067018823695060988385120931823594536290416387217688161167116296704179599506057496146209956520327907378463810686719425737841614423067894061552405525206432733759454143747555453068454972602049028425908486644288676917560968760914059578960411328209303636813244226664878166573258315865014149501145929686579824442091185881981098412511971980890246662220729108675730566632302154010319018794928362934858486267580757347057151287365352921817309045147934796514124641008557898791501103569664241593902143560432248745966419548961229812819233007293690256778682288658026710950501447017860760845832205278086158707314294348317650803193019172205857979048207798453099272268544486071014731804692081800646134314934389564992109320459837023634042490860463099274997298571224362879434371902231872360873476488089591964473400923151050398934150237062538085488579554185407304833058162600277577765236658122291563915601552225269894732351389256794456802774058292331788171285305566993828954614725965863511498362082963735162912002960765148928696244328545293837592113757350821694902970047697958941017674589107947245302405724932115113212883006376050889105993506359321416413463842779650660638040898668843229373946004946417576372378337497297495546267930465930765913543800632081781341288107899237530556227901488079255851550938427424578039073095402585864787530504811555980036271267282221250808516078718628710550965565298672853799784952623803148367096457602770215569298867170445221836661678991918128264834123135908302863607729832972615991689862220490052720149739468891142265873309702004723329106539238675056666562961587429509924922526726354132941307054236378852741497041965334917582082765245934750707100207334115150911961867425800667228999098035988694701926305592223405222912428379115469382824913346968999683702714415801543178487707907131315761542104494594914453060354951906562446931537382913017472590808425425294562239227468281980498942703896363908062241012359607049589442864548826771243560115417877949721390397947193473501371501491680815674060888159477661789227711672355385950828564345289794865713933602453222900252478050028772887142502658299332479169457445395516040035562816735138780937347242827301158966099573857040417905620381379326680436575943664119993105050878213229810776398699286753214852717844540381131719220029655782118447404075456362819785430171068112054039861720128642274027255748375717917277385534497734059400157590097110904095041348145774738062355665804709015181342165406599365030684500057195967881255965796739800882046063943526277532818995600212229313243427925799093442045388026059765292167641484970563557919086411452293556053896537288291559657775448306375480714298437717638069539586924666658820111877305684924008815921612901057131724905629436992611912343651855295941762016569042098274541389575353513788551084952440766295526366303468182624136011816208555562733705343830720898571482421495766359488692584997984983627533239233396102320892233318764819243738312463823518708837469365850652334428807951566873585625960045128872691502581833074752526820363987591615847655397029007762491345762749410792957463351515930456074216553668947074085095085088335418156992534801298699206693920255444773985971376117930732286772316607914197759773334007923246326018300556090526737053763808328441312660741703758474181828195699520593465173707039338402925388613126167611642559317345073698247877432620709514876003173192960234226656199803216263227839953799514571029094415496783190811446706968065215931393214948907442393242844861815946184215636828785565940544294748187965466096911433380156257406353719821477512683325081664151277121646879313627990856067276655749293462920943066130888813613947593385234597328511226932719163404791432262888923512151923856939569395986787780228924424417963630731271385135726393474749712536065346128666268925467802655691848510190153505358339699337909896248969558197871275849582810661755853306331919480362679206604517454515711443552573204464230766912830360694095611134236644476387036912023198920699210987856276203293140818177764804914836989492007062494605631288469067619451421162728673311765295194045043940227341286409923017626415889962492347786508262954152678035981847342891669092776662200919037803733748210799893752685594928050390779110620132408202051929163942879597162714544920844117787692633272134805498312045421615611059532662197061958320383606660998806574174758401614316914826303142929120284706535154211387978055424253678096248964747887942131269960827816469203588402048819374198035023266954763079918821735617286422378758992812322701374266090477885698545710493410007954813082829063261448996945705730567982376121619086557281492928591454560003292738431708528740356684786319031146259981518496956022894384813265111887366586925370917543310144199970593620858025485455807877334660178683584850395657187458866364719527188970423307121441092780191078517438659150021709441969034919010420077605398556274451675707018390674317662279049320758735202099352553418870122519884363036699518363329559547308817672982189129029956129941345045420368369042113127102963142800950471175099522179129339655449908069472027202697544828432484047967952617728204331241701326451604764062403716314823861878251014883682560698147689711356654621105727432553165739894214521343746135560114012710322600441710861603794181487661943019585645713619612127346302167301567243895387855315802239032294713102738217172285099449794187076540955551637918248158687724880352534603156863096274670878943952531491326664153494043946475065513223736779144475955719468104928001836406671466770766404101041494426952341703901116169756076672401478041718246146541444733299402928177194213993779076572686384137945435082540159933615444265825344833804651393529661703484373886627820747113543736128695104379855923350782214902520951512012589509453120088959908982671708167283351040577678306193016788023165254690076444656733712539847025839205673640910216360099453244425126472535333939164500426349880767561407232271079382458506125148376391230966307924574410354506163097109486805159808084785100591976085143046383120578099468478283826764176991603059523091230691023872252064220636691900197392538153408363307715574379128563864114382284423266865785798797336156984025397250534460002248020359098053455340740068329244776243283024414152541127227812205981164468893264890168461041009214054954249741774647732634364025705240721847084570473940414641142911868619258416919371228756178507718889039777686568014116575457254645449032640174765549427912702256043091319117229204762852709282380887894548626084799898357383679522385846957937816571080594299580433716195519176622700495552509561876015885741346852722153057833676024636260154739433362460622767259373196550851029782823364231183284906242820306823594597124624519918796397008202177057824917507860286635513229942244683795127157114838137216361139290154288512012407772920142768636320924855066239571261078616978975308510535894149293017626316823323826720357425627326686794347095725335370315932732005216293719983217916015719012572140964819376201670856029508177349863903870042906742914539494567653986637184547193260094279755143066774532221942762785232078323628598870528140274544066528710763284223334794137300974717357245868802340276297378421962939984906146596861367340170602003950596418618261979138538311877990622868487260847289776087782149317799165446270090900929116574075742279239693096699791961069848166695279656699497289786114692826462785305615875955432756967446052778878475143839725138099409424407940300377695341214387312423841061426815884009076088024931100626740110954606776982119661118618173116474965007186589641758446417342699520063361838306141531222666661231458732330352415899759803412832381316942709534103637724137567433304917162933252113672648506758033459848310808468374154580675354627565565934624110698752102695810791995564674767802447677742375220756380651016363982588130639561512319406926253760364652319915256824174610717512115361811594589226561959084932923866754989759397770887589762225371639624320168328186848284848544553847353256021895642471278145002144042756481804059048076201628165004931357250397211042635463721562247878042446611154215412309700255605925951485678297342347198821310936365924994368522920335552444715670334037071785108675877038985596699097350975509806928055001295933756981203313252732355804666345204462765587387051520276875878446479725457186633781598405911434564401190853089973183805020141488326328454683838397972407625225670612285838765457062375890442960396365076791468746929360147233084567821120622166653748549578884892850192181505774344434961348959389229323964893039449159568282730252478208562139675240671980929835232420615475883083486602509932733765171325883568123501473454904065335934113502141310497457871919120611132866186885174074121803872362713652808473267740260806655099125733390457871150254956105947529482567360106306548471464704959911303789475876299521288353154399745518475330595642016979170505255389748558313496977671475116299850725626067842437579809883593725200436839968480122352847034899542524683181949415219437574124214150749360529488328322742085229349603038224070573842578679351069695225178042827859532833150895652291203369211001528583256894792622972983031814245638363460503077320615998764608628620792212042703019195190683839567612875126058535067821802783442244186732543088249333883827908229928193544398133309608405811874757536794742305373104482118972897862024843399853383539857709319770668538528522396201491586389814842212786733729735096297625659966082654440181061743930283090880791870894419254202456753515579260797387769677791349018790881269876352195848040717755132553026217243127007740751951329836254981334877333577156053389756333940581702837616306004618684287298703250242381311926400153209804253260384781134389600443870447734351237212714751089167814760302922964413174549540190462586849598106991536880910765220055981819127483111970963923097311490307985153957460204758638911998748364118989899036551736890561394788554593607063095643654874822778007328541213388959525008903230784762757877691004192447011242062065477602235299983427004748742244752257060833403044470451106034100402620327925516985539375391778393349015135087069998222086123780375274930285680331315791536026721745871688564611678049046779347530450348644863159998655441557797656136465995819208249915924439155869205966232512840852541795156685230867605617910121818427259139351797485250854678443063238526288640581938420180138663835550011804977982156470771820092589321954868167861051412405386198863967394759210948555869740362031127929632249430020862415859157974211089352764957035406942477774277978397304630624696003368621665122514955320159452844701886340362066652875963949057818119939533463815327343356989514544361376613744185265012521133833415904942357491186956146920870438260882500884010024314902667532512042890144048687171471467151172851186698565871987407809758911287852881365792723980849814363172512139529283999276208771660844086154104287669268752020391262563699739256102993010576930812594242234235064887126578858741347331458741757901526867175382574860237934563968678204888174307139661103718958305101443880290900392745492106446295859822231281889220536883977460871118576557056247962180675575212076716517127002726517426512023837213678411822914899798496199661773472047373003592800987085128813776285299413722039128242393223472786349856854322448936811493170179342328493360593254657031285314387046711506280746170852450078450738437197763380676796654113186048653588333309008362607804887904085135756785259515947190191206883732643095195373697367723118621967595668968710725008262497814619116114345462314641225325607585590834471531153369878611556002641534808113955737048221851203080763194929313748444474584330406581882891333807730287888993060019730473778901454714373615776532444935428090447532403475488656954003733393226464943105270448427518661756339392836633145884999290845538046708201458325856873893303512619999100902857126337798761125969162151745116787036506747999665636821170228511745957845406651207191317640670687538382965149270674641654723854401258121992615034119786197863599806731205437877164308159487123814582380965251976188354196684433219806573861712469842517094252126146410834952959940743644041896824662575423839568197196804197306270284135042050808736062882111509289318016375510263124927990249885445785633724095612641773285907305759340277723133896817557464767222895947319061326073607372156496481012531028459529233292005917968604908835411905827422898367961398801197156192817941894064503894380280065172291401938971224093320984940860973795016523032095813755277299845524706703627923409238032783868306446509965089266890970979770084512140249215869831494596582459088633267382850972947924220851266904719717257505019036022965359736385282895128085224634235173394166273341894890922827841243855540476984183550112786915573268953505098285141512208169986735784171644262208185611832387070764954859558593461105577881180262739368999894044624777260857936582283528258730770899162549952935224521502093605823903023957513802081720449228273161503336652707727071346436953277026861057737668606292942276772063006550238515692301972523905861433681420743261598612582585958075398911078267189005069314792216157636891359348294223842190000179285698911000220249513792177634712031184267591080323842877734493923122206105009273819291515832777079699729709889201652602435871592051279097643570770293060637347207755315329435513368076123196661271498365451597619521356665007240128556219936863255324706435906589591282457727544756048556285161573374288422219546182552966591149806126822617919446635598984707459814409769203329930958331107472671773200119346230062854612061932338411865708874305214070812991325566016853004444713821446123439620651037725936370941802526270190302028221523163073610444541758169530084150242302726952070914323872561796820714167106956813092134639474783505485690546333732750504865710300460871826406044351528218108186280303758706209985581664887510184224820839457238764023552906988760055378261374205941234347241740283462894975255023323952202616599703090460571204629582040232481351781551713666660442213976667313434242313992071984091673700906074474599811305619924349658473358363399680080421672745158466542378945368268788194138831836748228342160444808692166318124692656125066677438065427445372521114852484079189930198147724653434916091007208440026294679964379943590379729235612795819665626148235428084061463492893369030321747451369901450243625109567211546709463093726261980905589002731417918330311482990853270759610048104419974984738658185464013944156462544889858372485841049184031177884060587943969731149718085893941026174823686382789449180145943222153679653825171473317332300997113843044890291601906292835768920208862469808526567190048524246910509251012795745901944984759959937585102832903937437410782941085051019511272815313126355486370208478644865560182464353910494547616457573269721005695749801244211724614915799818173001380887050863728169298023714096876344382480463843948489547637294320379681716761283352728313544842104502398755185464801293727908402897161560142310455284944299654930902082121786958668550928119674380619960195066184246442069055194158930713220191226759022312325018407230707978211166682384896758867611129585213153808962581289496661393716665170521314151512794274717695729003453451054025286461661028119984285964620801045838499479448620851730507091354752578710510234343180664417044866987712709838549384153905590885757617604900005632861680033730191252885111080695911940964785253158875096388039557246891953152351245472512639323277826231186166416058103062884069010510508512307923197075993550783535499231765747763435750373763097905747207076334986923945865432042804287531975653762153344047202945892271803901935672117389522197584150586353617721327258503951253800490067559196157323735415736893401874058756700556989060750008084873633030704080734366210470124951346914998418515684927202199979030809955538801335742814025019989634545272922820889809569315239006015558049651671173715182649397171866805969806565564971091121664278212619667416936027281706083945546607374807965696078878106123902570766986783535729339040599645264335886227846305168239286834023005490988816853772371691389153193347001022714372971619868438377639030004527244094420684739616956787437598297393177651491961362542166868325772346389998318928616548442937072847758904405608352013167537330958397012422312626039094511749942567970189219101253179448431416428399333452246185916287524275004170794689892148224242724724483849462110572960861704699739961719735670304210327111709610452435016547837093923266333805543777383624466897157661417842160520748193540303837544524265551817235343165342180141900239990804373557623182381618824736100797128017895300236667572242759548084756856021771518353497385918881392180949348407415289089511747204598554656297885977309147552600401020910053789714516258695598124373689661627080891572593430094036843861472061555379779671651474883887215708228828938968971077767272817084809746516460591317686935109694011621747153794852598728810944789680425102915248564487740207025135932496432314503292305406942137911710772707785612654190297284370205546494761646600100272043074149805884842746105814347063101976077263435140084846810167649081990428867989077117956162392120377183032141000198668559250944218767359514135035048594781205322515646229609699351926466829208302514454965017239904658656656771972473620902827265323953702212116685680791565509575960447550909437643840640293874477836975020692481631882458449485344441042658720795132205113113983071589121935972578703565837174449910401694107473938642382264401235652812779315836686680779401424382900210277200035262465849613030107148481963013350530551990434710512737442654153084507748622414566457377012986716491960192731983999389968086898665921796090919551288527678635101051075959936910930024305051489498269092673205350133289608381282015851133862749962783625349288978974786732190375994673306973612378989343129606698796279991854597115801776895940914234632102780170958734782101386324842455507598816992403741916400305513491055443576923690820261214983049466665272424504970981184216031492839158726482386093970462654393279117782914000779462343396435089793047291940187422495068472179130960927111067725379895415508291890786785356386457788083072330941204356707439934727488575771225834798610613249891864158352378916398386739091231535472882252488244819535776117118968121294602920163845983689878545609086153621963008473365535480243108075576161025636579984241891936452810940987658646293776449295442150980677256483514889275280573103111838713085507762902932822103788530114048551391682993637134808639312840673772927428959372996127955894516813090642189076492925826378843313215717494228039136839640100088919904050694227154885848374620375104406755903791874937606257486540205745781687554927341198682629555646143124773781991148051957014918699293970022222180562295335972057310467928574925391133465072557050390216742634972719174368702925889181957066206820781023099868764662644085087857352666101904843373086406070240282207852426012080085794789593096650078696752786955580579317551247470423296843451318827169888915669720048110139024114527371141350346636198382858460148240172447112129249469910628057044687603684149491639173065483980096811468207050451211595111245077587334674226701815368659019910976921816578372940881150814866494053709494020909749011737909457806555785478944368224892644912832776858464718634376020677188266083234172933206233143677532013333110099462482173358074944898997577566085485013436923927740381817388612011170282148590365266180355855233932684870979940849737555116354562805904909122928393335387312238403978336483319287059226352136517015860262799217323168485930152242910147846529055216888345404083949343842063435807959104950989150694946770976933288568241140145044370476522596137412649696978071584715614892436575240949652929831154951907678727151728264409014921674293923438400420552428624020980127233952035954959352972643373342977748985630454618571432659858735576842568536295933748899581513775279623550830375698265729105395311009463156693148818497491795266531287684045966568839337033760035916721039621875610413681685009220374443903660234568129580597630557663905031415675784462334484629479725733570089749067039664919371348927415014910950510002374637658459169745495799484875067376256708494721362837370263193609596962862980898055361117148120352706033840601848169963971293547890944328194165976041073710520542160236331351543642597244373662506277789605202105692929230089355936385299770504310938694159797409883686247549563744749304515595784207571240457506329866273469920044124397695354847438078113876451454099381751267529726069269502219466721239129798032171773119101270992861196426010107276132298934242443778087569426194771156688504893758362929867871132580163433649043469707316301949715814883924871030031841964013686062626558532680851684587529560873971488091821643662671581548428213482325182105560614215822855278641392164690610254063553493489185118105060189611129508765223099868363162509316561506110143937638142209451244941067380057627894405209744932516442655493833982734993941196940277283918441456602075834206504957427583083602776650185573420266461913595274417971239378689864389490949625719595661685077237723190399567011827396854878257918471332100452720641727707079086421421776889586576825954509622378991285817441842878863859104833583382472588599076288918957297736325043981164995357064411371798054297371193230296544121533933610686632131147477666793654887475246282679441026367431530400182559958990069522415668726288181903623058826655329093875182158331971594511245938655804293190616586797494106538902076121680811701524553503828854841152474518959560740118501220952488361958782827590862273984483215861456890337793929877708637503644638570357343259575793443600653629761342997668719113460920355893926838973190228370111145945388653965588721883995115898504108671693267262422316549025501389681644637266563119907806768511245752668587372592170596778523442309956479267023858728707372407887914182377186132072029350336936307823880552656779898891540909069236939372312743181978627292266333584860347690761017905713847179462634197190925082503524297972239935989121279740225842884436483503077301270828295561145733112734820266833501031624965058533875691585626784863869972273836250554174432030552997709988273202036370932261216493851175038273059963605915840027979102392529904843690485286215161261633834851182795375819549097797088604977262572593507434326029350638159427280730187782587186521392431279750035879910508320497287483508296974285921828632470805427570561833211003562900833965440377396280891819049521493506701543006840132097524404563197897476792152102141170597029363802495697738179679679860319123901626899865903842508304805842422528269009546784728313978439221619551644201491225583695578482593814449397624874042479522938330562168667194197746551917670843842060128184444786083048992434717759430874780513261671339563284184053313531636272655622064685880233826645779972460799272697760587112175060767129374943111647885472746033040913903236569807490423747109749466514448171779881936708241600507720699573991238318408229125770531430932168890865304553847330156894680233357994216810887054963567029386059719409928747114412923150148198112088362900885731059781844547912201951168072146998180597837954122874476540814341026002647569205254180586505704067376445408226241573493001779887171451782995446379548241184023329917765791310942600967334823337264420238739734316410478795095586028025517378576387924930181626183958120703591141405556601602124628346461273738596254097390644214008097756937972255219463091892337966989413905857983951858991884854621095426395012242783008024160580483063461857512290058805056371126970734094330759380034791420584974756882213487630027238862309030761382785589222770593832491552171324360531454672515189515732302597302911970407326279235102756100870000552525451163623466739627838985046287131321827915266660889263718858607693102132244489429264921421093119337546851720548809904087642809566958894572046238836192267491050041971989326930500460578036924561784705792431207645044354981868048715695380176173882752947591991005665568743188322775123139178022651793046098806965723787619053267845490342519147623727975897127557545550085614706151312200865699312820806147917251544854102289277484120039313213551620682002773023962471994982153309154536035834923317434041094263781187941210674627789917455331727114457117410579092927703558063955084718391973935102841382964466893500484344606354978192469362122762887322251731537999808817860695753934803531670632379902581224190007937335626296740281174378490561282959585146008345739888438464036945139228821423352295369692135044794805784851937025592224380299898353789579259022062711571346683874056945056171356428702684091803570523594580848094941772269648239246635132154494044698379123738409408184884543026517630768007483066423920785564196729209961873689650263695996574290080456235428454572650306549576491737008071160529631044262038924946884177926111510515228522353664380962600930901372731192848926573680994855054019477920133685813163618123409694353113587641403016146750047378912488150146640868272409337023547375720537183833742539151559142311656080487379549191186005043062409354913003078704261657475528478585763411517256582938183295539582616788136525189975983277589775757794116602340794127272363258999704257174011932317908178132806578003153038998980481411789212954158951980458969597155492180066660300189682230189624684185631571333610234538045613149585411614536955569660047657984736673404713653605574183070885594064599790963162470698473036404818503572208809117909804070876625571396074973007397633635219144868862949115371185796158439387108105931895159243897168874990936304979181104703803996252768162629190358091897066412099002400728049551265702705999615571244552131087911835062212503269801259006533674949477588416394145018757668269720923992917141658764245068413978963692730666135487313351969583587225885199629643552680500678900632351803786908047181096731668096869521707492192390313481251618214571906000357320104888650664922477582830283136968945944674563333083738131712662537455443458842789006443980535336216790657490324006944002664542844517298760301992873874255913833153563926153189880950255470548624449982615615914156860078351407482724835163533029774582739946286919606628158252334847601686407699563968509737431757614164485912765113551905410350354791731246862386979184413983117785358247587974895741984152834679148159219855274977102808188086821454354974119223600980710564791214213297300440340060189880760061321105689198675979940252986927279120314842965576842548964722981786464952145979260990799093498665103446472246712886637991629583773721956138310807712169315051609519423233146428296268089037740218557643016809792719172092730475159262888740839623856980680218590549490981903273948231144836534049091407643273917830234998746965732309240691646160977004365570200071739837396866992182263979544426969635437131823040189553834773840029716494056288939078976173514967773366087263906308911701467569847606317901367400397759537533485151735347134315645951614043168255123061645959665058751204986288245167319599512885956764822459754092464734020765062726813312260024843787482365764545042421866852224886503203340104029248787965129408114251691122185425280098987797526257090276270274408469531284323258110561872346606653908338569301842684834285331677380405844526421110559834883960370472625542022297617034762423642241926074031242275832404413049564531368182693119982352688404220399456266117758093023778577146515894351794443417676484547260122884620721257493584488995074218961682920118183051538687446984163503161981872979635769497441260309432513677833423716864858791744107977236324526986043134042691658740969573804041360058332935533093168569529047668253154258970820605815278991596921107694118430464477599553650125127960513232837630482429066693170624434575897081926612318962994399770661215306849229276103747104276147997255138557525176624917937304711965105867205407977294048800727905456334358780609789125240793282731243683730200990770076526940848309085119271693588952774395523566213072409500351829504352658617398353370671808841211511321664625014130781778273955223909412702300972565915608659310551657494713299113364684533042783269550635070094823566829659107462365741272575782391796660240489148561506177002113703918746340326389033594318028273149597503856348014018094696479395953590530968638195608969140936208103493035178937380338868620786487709809749223105338837104787094116392878801130005433721893329675665300367866106213741680305090640797424018598776544270170703510734793136478321736852818672839106490309917300459544472334527220900407944532038317544764892493083272473867042649777835619230834862523129438159794064582207647965674992196528212042967003651385806188074335010250426410493704717471243799433756432981985479899525116912075657728518718846057001895076910241238258395053322046944185059941640490791802046341277734321421310475866308501838772358223157211619641784405447346075952169314762965157426293533176831999840801843370145394121140575340825827400358318333040108655947704430514413706690086902390855790631476075304363132784376977222851205708412382026614364441734390068084920914393413567499865773370304941619743893989051259562898309077732383037615228998804819748305858493801040923741301298379139959442960212592290149878519037336223430620093816891782886434114383765163257864521780435250626637096804543740649962141951694201929223001293396957199507068604301802719875459844495871188423300088747314417174622565279319158092470822182466088153756988961127693008701881179965354573698491206944761913717039896323856802934747503353196878570932834703052506359122873265599070989437416963297169965818985911336002364131821110465795673169205455256016552868078824620074666235499837974052710748486293319231372229336515097937150870934942545727915503258601139959429038325039825810465846831144639473177936713047754668247352629509173134871453179147176534336889943407042430804853264318964398331782887313632637104775024055631141712283479518113208665725354983297568702547722064511730589936304428612043618574647400080971637371485457430255079238634536292863249058144198452290262887905563527151174122714977038348264676030113202805415479765222067616787607745318300965034015652294586729107528079241174255518886162253446311580369887371094084149420571267841602772002538197835109238306742121557913071518015130070866432646145091316439212228549253340149147119601629469774338832958344335765990473208949309104698738859909672662488562322062668134558787978793463930034541222985816030087485209804666604846799181112660196357461222995779835834042141258775929795315840116564426152624535269789619661361259388798451177419663416585629167189357215500635712029221318145289805416213928625585594372709427883171080360815385908303038375004845391456740647602440173824829666699750612300776683023274371192739818865435545468841313880323128253170046056452516858687330501342600199077795434057808983605236254272701745420402990120676490559285197290842746389126490683059809986314809260489386226383877855216746925349226017200170051047360733708628972723958050832652490230517590351612143329924055915564576348194563311568252273008738851595097689321830762140593465592652569125898035726129113121925888954227846028270572249061459207280491944613611840051380253652115495376502503877856432480696743348099862568375019361620084296604197263484992048537084201621478795526487677390655540874334571120662663661709676194950701492242142783432759205179889792110344817197782972065142257041071923097813960642326765016723979144451397864305538284722220661640281562509333127781737406203516827296355951519631155200491015858529603359220844387357662890290762930301770134217691406966281800027782317598489069477525844226743992648384351179571523177415784925833036688901399229743880621533135627988179252786176352348952807888197504694420784076663569434943234640222431258658016936778262640429811384831497659199157847581277046534496356340383486002298023876188533875931214438749628974035026536496483530995748880715860911591968440879813420143556295069150445470349837137440130075040672551810698273585255430957634158905750506502175367046464841913224351944321889155084091697715773174802419679676190359864094069250203809568433195365847456250884031975217907023743670735504105298549154667311307935542795852179640209814224130553531561409896616478141623115829894999486617629069728576607286792825158080051762855132447911929651436985294598673466020025553943262172163203275254059793787759256319010686500733939400561267324842146430589075557563899433277393890034242161166747604317381870368206225859913021750106516034482713797728824430244494914451829451916507630636440957490310291766814984569323111087095848048610071753041469348160051623631482319270839110768288479638190813864537975794162867985610070033813873356545259954238175631514557430187015602518538053240000434003066756319794549596115692857231312235655499939145642859250909891005284816706132037688983075310940400484801967991131239149242856830236949251711073236720356795083031497316715777301394101826307327092681961148033456298587188581946185608045190011683227262890901394384151744977713148010055219467704260617980750762440369455324351364941799564353220122853042612695369086138513786304976121361261837244340288822046480580699109170516374941061477842020497232896690384988350509015460582257532829976541188201753764021315694102623074287051178950923824504568838702387865143102963478331945828773285508624599938930865857748790341454163860944232577487889618315331001577654949226930545408304997362802350058277378258750827597703064061512824800523082567357563758948923995710168180104904942592487540350471561061323770634273764144668773276871818290275775808560156716267506714984629219923843970631633588623335633192095480478072665062724274931241862168505621657930020794114313995400513753250172985272557668955180431728319794560071640123931725744182632721862990835532003907589298676568264872674903383556777426792673612351033704069788901866724361553443144380179742874308321852027380901144316694743969781961827754956969186058167485440598837770486946369495387109051566920924535804429696629970852746286709064815941302741657056118964193813723687197088894913371774916713026915958937243186699171074399839650102175998390002696158981097236067401206464880320693087166230842596761842742851715642770574765367122254771833089989591402079389570432457784761281830056196527430922653143598274399852855941529313301961761781145208014392931613067717551583015003399556702293076090630020205846710736203158290264499983344991466851815554534888974871524454171211575928973039949141473993243889512619990015210329823333793675548500998173663446694460399221704102860511116362251745587273392836232620002897914406537399481491470934208563466524784587461309711803687362532102987230573601965331613813425706672368882619876055266700807050682039340127363695852739721702785467525569279895004338758879536221257805016691069737871180447495582012891935755459439839469534583921294879079774769508378836038556835438206751795494336683883961651190560542754059976288111110582636105873345356536837777734774807022039056198715118826467160295436186953461438371300750717805620389907133949361638122228630200723486879713090621526799626946588705238864689937910599798846545501192528054606055867439619521597962868398836273761720194896262990683078322575923297232787171661275319955571180374760276359040854859252935806415676450672236701939414449670226138585163938389071974527860872618814866080211190749840588014581819456449114735950905461143987074332320601354085734552744455499812698270842231734619960752357862205195818445337090792662971105968728495797788095160924963673591074412689705278974182819507012408237341295229781073804684113015628269415869390709008144742461210923146833384490974551866302836684237285809979324036082737398305070765698797585966529332622810240155296556634758148426805679486454971553611276144819847365182563033767927327924674184638190238764143450156027112640748898811195413877836176536758942238939649799457718979255666274702131846356574245022217668538310944105824838229825806427420966954501333326214683757195721901517661272755469347735016737701630315537215109917763584475869852531829804054232847890006835566295191950597531651863437777852146083358785415465133234122260493778642900050363077588651222273392256865076331626853518252987616747118655265765963211123106787907761743516717466029398971878652882490699845349074492629417125018528213396051296920771391525057274631063394900844910071007709960083932247129245521218601666463481079576167699331273073418708065644370794126410993483125484600792925403862288336652797119115364034770323399289227131640898854632203079663538342305686592216781965268049059400215228459829142150399450828163125747348834734141896829909428932079195825993047149751801421725369557639303403012213296780687081423154298695383445694881157749775221963138187151454074956560111002002900261987218137248508837873444608024077005787602067290035526732438612609748457457187869887324392505622596882149487364539898282238730394326061296365669942072008537487203790539388287150752605993260079835975997777192930820800732541691689191721508743448106964825155679273896842207662914756188253858352313069559242244105514378777260227460566863912386465173447159508206866425047032356800294163577014336362190280425661722625331993474484136803391293470346111799915996084788200347357611672199014002240581879123191996248765889830604889515798009146342624082577453026715387645655070761513588109488601934670041846436202933135400522040029297220685999327064917640287405359702097938965213272464761855347859318746936844995786736532256931025394882340161012820419128779831355703406939781889051978366399231638760208949480765588000781819840032292969157673285647071108543518695273453934321140235143745354949403590710527552279933293152415251794492210467411118404017863321872626786950890237664970465502365157713100536851795336136339729101435845786845016162271058575023008320837008530334573482898701475460811383555748602779186847990583688723689593737729572697073337378101323762874522261643780433121566584164482092112936936766196263147760975038313462677625120990849148679132354924588081637889134039508051208879974897664089359764788863939736108390279922301376455123493075738022051335578904985134385144369967592487655865066604583633988012327909325681947538091952417886897831421156760818927045657849259015628498024043977742668885596367620410214411293042341645793814285394701555666279827946122985660523130514194087221732118417037939677265819172564631709466644937803607087853967197710207363674225877745788937583158537838387808383491316339147385609990176499311626921534460991697183283287006361848898646749037100541898347878254070409705007085295076646918081136026079234726485184689445865633955969729987555764208862547371984060147999961764850909466290979869415510878819459438044806686351824236366137419551089447945621360483929017900219379004856877021129796581698802453395088836195904231804529731852588521821318525224557411210647681787074213165048583846632663847286648412946991509017070827551507483193626287089600029262715454619119521022339187482212521679663372465428452652250421895202269182942555936911807615461033492310051230291886470974155644881633411578695160184244257967926191297138305307297176675885986305714772378937436944831172279291290705664320767261415327940844959128574786128072905050347382151127823946582704147950192053829704995260276483901899419458550144249516734181220733823317455046676760458466924135637542907832051404373390069769272810296102693562089631656774004775679593791178155423147117298995093969857420594506504441146331237068626971058424780243373624360732080686081872630480218709993280959077892640302298349803546011985901214620053484091326852879822757864636458747310124286715283382335349495816355614310040058022857420700181400447558086584569738402734623213635833420294513680895917536255194833111580915735518377973412750543377192376907836083683148473090994428773730392904277625849821003609410733452609430304929659393274312508925146955176510636713611227752352306511477358617589609396457852748160634762951561253971525644355096111471229765258123241748673348897860067704371293150188430623246218945719168275849160138132151399173181930480056094962251895304006992177527739141803807434828155041134093847395483286245251200186960560455215827971707621562595436592269657268478624188168099904402491266595014281077824469961445311809008884616940522875798403795648584788844339358426021887002860012013147747954506818326214757291805041954249755148580938344171161039349245659689291825978472728206082393824151402975654089573380320571304119591447750417318291733161157317264010294614987719248908048493576676134134599775378260369656112230206897252539772415395831310271238244207910275642811006185517138992247393110350401595351886746054860134288689944524258955223331660854349025072535518316573255708018228873767141065932031435103779774153210259393121059804605860973228580083766006494219132215793225084240245089034821995023656359174507847688985297045636829206229505377390249595561552778177171598929234254311597571352908459392178232178274431431876801990601715202934151990341283274439583188417789602877516136724086214048319623299356718326227004121608271587683494795082055914982011631568396193465943319154804573426761410896172373530818102319571922831729739784875774930796166807518795721153831860259214681660198287020868644307940776894081030157493034537727516239427035501947192165362879939476889185986301700541981393438590755615794308653342418584253841792807258320507692439412913750557842514404952481320622026956865625140623428147702670946596157565858709890313893061480035674589866828530612912585143849036839808741503571680786002581685434795640188850714016450090658796929164753830550174186580296278216258522443380720496868867404547719541885330559405752814442960657755662025900818336717616270795104386869797482521192167129022826319184790195341316096876135152537104579621818514741207400097930237533370436811304983010362557891962775871277710941483556434398138491158974037031797485019082302291382706792090718356330278561334350497285404374277768266141615334104385683609571444790105618816679228483956816740948632233917316571668180128468843357107211516527173487046276863612281867708257046534920173094915634393011923661926661965468394406479309063508539619682011999630169576685760283209040341898852270567693512897708450787396121448403430854758397869952760044372366339400126937214634901972563855657969147840304351223565468740847795865852202790113909967345396431379234509097492565761786103245763336487563737593281966503287477341804438676477012641404280426574102923476579021672687716069990985040871930097059347220859131090484566334521068185009330213734905852074339868383272284480893799221759898590058956138010669680499563227036733519567894136834246759031607481439051489953856977780611169409005830071403368767965353245631983158685717952327878302380825010250833468961533928646991870006904246757701423871527160279446045178443358530453921901151646234562836007737272821069205363249390406514539509188641551281452342244933001040781804237296772601601431323158946341358664368548185095124405556138908974118816719826699657726405719164068718915306309235627527934649691623874562530737565380842655818287520047447282464829199783559528061186948770117641833725814106274746642224033177339056003862586552694619782509363350675075194290151286843294113985025314281189047407070036699357860236063621927083162003901905572069134653408762928923079466533956842096928010042836813803502119719096495043787788749543149635168764400490962037070357813947698297140658891732239676469649623314291956979119192458384418951119520315691010551257245566174300447619641926875030374939218869839425535918849001421093132602471673486847971075938459661626332836304390147821711953104678645183614191962970087564977867341123985378701906921484703009976255919307192847692336365065496778613362512037130480366588326401883743959039420030203384928972785521311081883845333978743728000630807900476072969826836304772287187304503402119877166721929914748002865646978215070115665929602126249919747078562186452665117465532198695494930299725288493631165032355706701495428835516413800189615184861890111197523915397847075687240295959443561722880383333041405420376361232896514257848980988809073071416250902757274355422577425427387365871468993978971660775559097118778831682351149768487159254858820374395972349820148356078111504089265849778478272288487260492028575312484851892802188777192750461102401431795437298891412876665023199279330118996882569690693821990474087899637877278484877802535540474942663473452782304876833651517152228655408267296689483775015747711912100838168356285420751937717778933754549554373906636505040056813404124264210918823575006415443175186203924045209464747423441488083937932243303727571358421886655819498132120840479651785576801277924730701775855368853845253277033114491414848112674223247361521385926125906129671539007615961287893392871225926542451215603997001030178159116090112075266867051831770111753302043784650642234480603567817684973169705099942058767668816023301245957744177451151194400208076996593565605183563758212671898911102866280508205291364572054013538816554545479944423324804218608683956753683150757154020855926129717276128586500807526335701994629506940988650259835770340264987363927864083330323197453861870175905362832248959552730150461079627647661685303138447055832947225742119749865184665300776510159444037261790404729199364520913931931331308529256784769156891006545010357705638103144251822418145191693898350050383202301279014270547491912794296087633334143811311518284664869142888504587267817085174277003399804064186406680503506780559639264920965086349364759474897354494524870897462380486728919380342004499833209038154137579133752273785250008600614060507048754488532836764732644658952522258410343399083447618194743076379675808149667306450823740799161830758843024045743039062647457179626061350896008866563387161856526473331653385390153974076643934965577459677890580543484729560733085907067560392836522642106797594956093793774965556274226265277477945640360765358584603485719965073011299771755410004022774097737804739134220720842442786732816415666025208069540909376039885875166237556885687875976879861403624974250330816921659071945417722002196539210895443103978305723945195165897664582742868581942266540171895837399966046247027027374950982062985254729462208273833054266865159401532263481221119079952163007962219371888907073006462638561126156124465450486785524840103619824794532232306969910281629881330436228939087804407944831307418502802011336047636328273916626547387611620027683942819066996201863455318929283043284444873278887751815478846524570765231549588988890564901343502593233573074606673633052698619030016109921991871983619142113468603827445276689280571069873020150168225495409763056445418619034762310264894666541323825197486509078680910269582079027183240708389251125646339991592287131606510682228713733933477176064543425946073414744823847632189812520059912861920636066921212031721644346897581703704674843295592307095350162709865403058096809617425715660204394920298063448760057832599920686645661184476328741476195635554971846540907262835429113404558115451667796879177710715202323939531727403691043425154539409469904817791103753910235569614873379461017328486623547661307328769507787196611020993206305878072874656020062460682523809511704438532287156092311226689494373758218496071519185902507717955078601565677451931615894574527625280096997351300403527090940127267550008965762324201811692953305735194007289839564495712145852024911266070787979702951468481254545792774402168426480600227615719497412104213812279768825274705421978069294261116666945909819041012830431773978423341215663300756867619851643558248038270394875582996381958571857174760499259292383916093482665431913505998752208221575046374402918119866368439099115039466475870878533540744148369757958843634684717145159894402603115733331549206185232919616559311831214969705520333728130337152707039514832005116929647060488429638197699721888323600638287814928639495313129662358824352919029502236681985432140517066567214300817529518272301736041517558303205480851598619167145626403285306477485987141755883632803886823245091667147373432468598547394853762977317230050421005966407892967239976400823417671065818187708944649800623677571047125098760046185565328639987043866547636937646689812862530600105164223038178019640952623530089968364486346642062205612511038813971160003058100164851800434105550996566006624509779097676861148061661576084256796204199770924307412564407812343639032364983037958526928463275584463644999863448207607057871582799588272433620174305891308695115347622089184034374747812363478362299631228592619306988518942464278668179623844005582953802039570483544608126806541709797542725541814107195238711346928036912104961929997516253326217676983664405791342016970271756684635450359253162209731636131264623895329675234190766601842333117502183664960766784721216121060113283034215191326634748712692436573562818998762266362589046137687781460786920857274920870926225920590508638747943471413744292956965352853152918018173476681407852289374365959197681887094808919900079280890092426628489959198164553490518070464140927947988054781561106737672388223401819207712059717150103851262482015463072111794266511989683388125633560942853471304919627431686084077506660166065980227284245724762488199901125563751123967469898340660616298369024028034754307928086562634678760446772173475931157488344917624466059276917423780682955619724233463508678197622560213449507994928857096818466133108966398545473702632647904479300258462144878478401688224813424473992089367872544540987751060769641169414099330460954869112817809014276522461152128939067989408746854291468300600129339169314174101008037007468421951461079272959143507880265081747450106851854391529531884408140841864583136064682683251860825537868571543216074424063690937174645955923488680587475271508938779277156958792901328955117055892324156461853890397661748067655662939562044255246016293342394806042173360550159343116242216039563573094094701481971385532860928232370581329300548976298717247288384544744100010476659053190163330753726574147105271996283104403685150368915560907521043013900957104814149984961053365534270574967523714373956266379516446346129980228358056635390146849600429655441964863243809669032319574241174692488953140059288302646377052452241439598575476234691066387584245626339396575956404224683249274616319969032193098703893153815427861980474324674999854242538112414499658356285612688800944309408112815931802582076480318708294209468513030263628841145434305267660430789175419140824119113336813613534271564733673281489829951836402850316003413987599900136926333506482441820593959013983160448775823945844727028556195380061989620080337750478346440065591312857424795083587117138955558052644288437638428932734642668462377353642902415991243801382004054802191138730257338812421625156356771843829706852342197363272248475603301675047282303216398003209739533996857814832057560127004543735020177390114690294841018326654661913730196027861376886862917963691942399589576705778954468863882563445614033636507170872962427776504357750522743677720610486773172887843222123661323282330076517733711990697583078514611999854284309096349482054932687883844363279900072007123734507037382815675021506396264357654069622996789927913276823141082991717523698317610470578269564708973840953315532467161879091203431073650541842627244042112846582719341124761614185978027132817657937808413242131758645080093728379533344106685071459881364561637659953089980828554133717271761511594758621990765983168226313378782175750438488461764595675776160628019850058244799757896676754158792353830396627672658355871380292002101638152420633097892132250065469603506519587608841696833292974745473984874628280658030480449596365196579838331774789677556085669192247427721355340688723543097965168348476671125302188276823296480901826419156459908364150039564871244394255224209069298608897716652327705142557533859981500079049283411712595286817553145584688752490553256376665577217465561990306366024678944370616871822377177440605206891431865183590604865515075461886789909751852854696463099065434843454614391942797813871945915941253278776100954684843557363461266939505170778673429767276015315258648377255294246395713584708101630017548645852328980005034950429816152355683613227997903122511499096998403323652842148805859844818164595127734865073349266459971679729465312409725430311630814603126754912589352916712723289003317074296142028386438198578356299988662632685147993206458653135571576385629123645779281866791774331134738361821912693727240134778687391031074329668671153007969093938775513012914504575136933919611250981085275540116232204801410476148085975210522925123646078118657199300194220202345093606750419693064524249670066208141989570010685726808350892551841311023192295614352208481300441608861068463295781299589221149279013675955090063772345379042584303718030323016913320473711736247562861902969483224128021126312119734665137774340198646038598349604809215585658039798279218902988398019439489905461297465307066830224819112827955960607131817035746006231815887369227970489717909839556119372527555016935355431721458412350201433021300750401757452800462267917616302738497015076688276513960668475430521304209619581072277780365796450264294403616170610148483194120317849141077656032666641492054279874879495821463370844424825068921209272790089074408428798915753592649415975119899427807415764255470017831928049631011541485375380016454120474451830310520086039684144503620260244086714845707435397167106909556791327091585421009923679536632130478214279779203514682785553438367199604849642838235283317761406961347194363343295771495057873284649736222356066520139533845688507450258717705859183654484105736116593101998730432407397310835531092130090619873961877051468827109696458883962075231235131278446013769030608515671049868419142963736611799641025945663911166659200136427579368392579482560956369588650930205753632033973514144453587993123900231642911181051489612296042614516131694104723829487094610942658644963130906638992616431308187264897877608029289901867043286402572134088647415361684363682166377744990724747195346715768012208588296319430366271960161554822739656002911957350872750576841173579293782331570302901150284051938423125314656700207917210705348069298445190440386509858011719223249716867094048802023810195409198054956241126370355270241297475029003601479172853417819344458755157261642491805302760475575139886693935813556540367054839733535324795867004776929883544372281899269677753924184660530420844822618548199133459796783778558849402722546103905711346691710108177032530258684915809644542491809004106413083243461143687781782286139368277496214992678976800517735773209960109558708792464418541755918891827287105415403734751974598799335252321735474503184698309840928447495991188003250659359445791846533423322417186247264567831316719143641032483479936585050947863991213050133710761187632202759088861044207077930852804286317712769172075389495494841342899585011634623663454814589959721707472795313646533043694033405487553209051124182617763683168976890558671774023414055476457886072349560914458264689928343518633956312498234327849036537191986954461770558484274379194222267436154203423079133800126333217193787908251903258707540770584274996246993958349343107422073712572345166916972435422467458200614772977950744832312860096313426504480476951188940144185406047949717424457803324616514018138627049929415476864525480057872240592654296212578161658612868038681591968461218116640277512176126181365046990580443449503201506943051840848233529549757949703023661148727341859121828893948428589692409733895295137474040569141328038514428196504116783933084528891370878964019203390299784351844674541806973033839986727532514104088337328974544927985629903990329943556935486902567731120302342893999600271561928940893226249860015055960054180821669722164955404819462986837207161508617447731725242788196845772710314731687440916055893482282770876613984277535455326328458260545579213199115028684765551543985556934884743691748193863979783432911159073935258952136072890194896657205925830994430102868411870584563218914658812119635817196411440358971779983748957456420327878592209885076091410254443706756321342449751091611166871898622943055795342082396664711281870059346271920506608802308040887666700007451649713277813765182968810109407116375574462065135179978300275672885469024284410991909198713494604115315788919701764611706251090777520199965345765015011477674022337360598926262779912185028854289476178607747094740646410109883367885231336770253309361409657168252645476434306843768798115020869787516465406741259052453309192984648563004943241199466437441896042271075092938316901677501917630968872009967531385169638247631602049648686750046601070166963092860370268200385511225270631730588547578014486569589411607731898180548856327201701289679791292837493556755901427837517066096162821831897814580365375182776117650157631692576354867930605080415365132433856792812791094431445798214416227318451414940001077059914504124919105643014526062496481466869595454412393034785480723263127231481420929955465587700787400562776229652503271939437045352996028258487590188529252500744152948601636920234449200243420441511136633538128005032838134624001708043423009943953865189383680260832739783871932517795191025449882007323398636468540212669128836793962278401122116861294353526680792179072558286209858526401865215030715910137722504872330469755749100643815604713113144902735142817498019943883078640954406363653575689699234249998716183665202933337186415400761036803930630779299849597068079003658909374243345914954223547501624415996843099485391056907486348598393923622760881807341726816813625922817252421539234986498471181110145782969911211340746374584531068434616321238172137439190102694602800773794038855462284018393172642948046495773614560205146066001578005498651695075352883695225138026307631084842374129311247228033623462497457307021348445479671170467170237771810874120279025856004480516465493196695983778146405008591840453452752128395368466951711139806503381050023254269463394610760001229808598193477923492329986957716131358063717845721602679794647111814527037291725598415847456857185706150230391225861555836702510410495253469605528742159495090892494839605864081644535187606078739855390538229971838530941102901627894222279654176600368474036730219998426423741156714302808451870364080538269465227746831225671222766747220281671537901477375654954407888681363989771889902042596844335282854369948201432606951145131351632458852648167927740663745294333004845894492636574022547681496140074570492144664195567817862836848820028708248249671413372593449310701362230479410991982072683951336065616861173866683774068992431985017235748179920086702972357159028426851312892967216494300526555001731856106192865133441938837141820521423893334997828856949321191818728148591072251896127923871297363453011997248297777774603533350721385383289582227030299268402317375054043736887879159970604476774236030731106629517826036712827985315249648482093385662866627317761461391986852398407449790911381387305245258309616690409808985297415326574985768454486043464771387897081534632210492881609240412788533600906950625936213528650705289982945787883294177310927101167180187624583305721064052422299936853414949252029949821674045655217480399344837857025721975059603425933598408742218155368430332471401571321215347608292779498745146820684450101719713412447449654474107549337577051319226057347250007772144599872293546917990145278575498567751480931817382364028389435307881040764041365904537963997138131343283487907712213721220985349019986668697290580138513773183342613555594786918268547861285700785573613885817861632317136666300977260219274847671737213983840389433649527650059834438988029493329760360445779019154215916541136638434934810109359275866515388829985471374967505810992150050470254918729515954720581469725840527361679679106941228849277843720946096785893047427027898963421660907515895106953814480955524248970637551848344171589097208221569344300979674082453500320680800619456426190013657239651841708765998443609950163285531342386362561893035161027151450874938905055078654657137467088656228913973439517866718371916107434011166180303478316481151018194984543768044792242498306661056855635658642441162483944129306715606033383941760881957564385144497321471899566769594478916564676001646220674998567604925638526648435274749602599202851097744015821589934175844352614131037146411941809677897563857583806385717260128791885251666807262500562440507643412981027660275490416704895713924436404601367229657946505003907827078419326998453427841735990431180784725583870170223163092944774528290230097852247015372502732226961883253063542912915810780921435578404029596542456518453344735484460256908964643115855424891286823736345856416044509040804503656633212721366667601619451337796146659999636220956142763742477732420856535182660199211761740327319476708573158144815954463319529969205195586697766028837909995604485476686169756700614438161387060729219524598723394667987123355323517174579967301121635460165846897860925234510054943489811146689951451357069447509717707738909684328884912691455373744746071631736005287793746688446575882411281020145327479099593137693577907887603219474228462528091296330468915375014312605770805781196305782238341811094102086447835967769348433656997859477192445109238007627164041714909298443256896624459590870468755560532050702415697645358181240861032814892861650280670319452737162783634989389742816324951046133712635009380434818535013042659593156779499079066577237548297525141039777892274560424882711093533138457774030382171542246065569598200610644491347166388518551936760785125994477958063976822676544861479691012788057821237284909740594774693446187255638669878630188685005830657593459608856307844015203756044540857747317178245368940696325104190826277736073267742806919079103588827168691338925521859324035885106699327324849014694853179174809338479054862318623792729611703143466031561645300179522747232730682548452356167051468273194652604294520482867237210831801531038114882747528211601793712261054633190368602534954951409842482014749104924178928348779084362849100586771560986570061481142229864533119193331324386371584417144164861378737848828771345963678258868222288738365956782918909352833180223706040257519942260544113796753427893731534453626401202305438404438368088638737371116124044643079827744712917240114938339315303741353535140989957414359963501917756829757821471624000906767230789016493538368026318317630713510811973189722519874904781490113631550493368007922211655033789765662306681032778492101503754698915932566921550486467563478144353923473634904323139220084255211194438434428476304257901731376346957683379305679335184984042315120964498113983363609063952708549363676249468930492594335623288213670998261538018471751650966836036049807878715692142294143766338367080212475824129686474090675602049447441379334266478096176844653427175988189997600258055378278705271405019602968353329144660125698445583117016349113808058985122645840682309684322180137043425510602519899982004765997946915596768865558747178903159810023869767126965236374215988063949187386748248593622604733903099628673201815796772375588457965241234470476588072445846292877980421584791282346774297004143976228835203756754988617165073042685015438050513702773440372254549237365707726781948750520034132994028315341115693616716868020224941172183664862267268604802261425793921395446982948979084546556908269534534354193675000224889278577348270364926946827610134911462329032673832940978720654936673423668833438009948543413256429045374357939579852679062208086048964437686810463748385508415022576766479151862626748413197994158916912431335973784053643428365990949557103339930881628163760586858471667375114281719308983971450251212342467300896165795704897839286871801712168777434211237980714845498647450736289568267060076130717203167753245201588718163542248375579879071819831716487584031017709041724784140062716948938285654210813459414385838393275224005399444355450803764777249849733045099233365881005900282319916546311038600485793899273204180504279693641239582950972308849531463830853850777114741914711137453026901855466588632049522973259057026574131673922661217592807630619894721096168403399591100506081734596756861320130003930361781410620024725513577841604978822901169770600446343217386693974085284984011854191509266386595925851985556606653635433675056655741086336523785485947219968560221234222593493843071239986650147465991462780546448206262949985492490150589903571440045522213282089747262557433837987419695959911143072262756639314066696982438482802925525682518646977967445059367858694977678759106182609229357372980910440634276371414263812218548845990469808119114689287005786897482468204306506249800216344484052198858768593951978579365886478198509986984138802945796725430597973660366156150730077580419546682764503799488686178268595000370190658190617182031498821449130963563094538831325611013346926839903938458535047880005371264527102557684074150851112159133912636649152908956546593470115600612494989626725895180237862218958213246515763979903958162632771373936062465869004769723677677219649133161064845201680225657708149406987407284590101454089950016793187476965388936993297417469550055375637360727691065570825163075589881917846318896416429283935927322084397397249900583423844061053618304886249129946754460773667696886956827917544409905826786956213748431696382275439569797691931799925389512544057030463020231850084543173299882151470360795550427201014874508777809156609849748485519830174238925226025903711934618427494702334242394946798287228306703026598046069949291712252183005212069302451571376500572819460065453259378989467028946961705620884834334085026639505451414516978194156624272647477394106403733361194244730343499096791490717158393000282193031790119730136054631519484403181492270474215865906202169183173957117783433739745875839962968856799533004845626956581551630975720764118987158429328536339609012235916397567137691962878332054722428757245290382451143670523962240162054504895276480977118013436759468392887203394808812609306579370360187158849256144515292319806367777320905368500964085696917989579954380843803817242165262310793109552364435562993653800490936858377326067719818660084822112235072481096783339702627601162380943937004277138515562721427071263043408376258902965883823538827443321800215254303949855435732684215030570050698524159512188623284615585544267973934781231035165559501612402474952929067922004858545750721708912595934940091166877105428504657945148215350965998439389145352746389360636321363488860748935104646252727613228896163033350656586150406526945754602869470672461057287855222530812260532242064224640396993592409468816567404190620990299712834840870840615961689330077259510660072329005034297636801283627659240624567748064984640532830136797160704060063016460391279618951493321445510560224250726518483099300155805408459490679405946784922070488521835189915238674582087376640115746380274098877510025024282774582533225379535883168560945704307383953993122879998069171185066731297684835098189179768504639109117540875312566295297858011715472572864108413572374065643175029109183348233735340860190693114760458976823353176674233231874056876207302025951660697826003393166274849533182939169461546417470519325149132469056470474466089356980323009081103855760805878900015951779098983166057610403016216969742317974954259907767279273089988986728990760933271987567577383727126829458508762236735191847474515366697497448305882313931405546465308765970590093994305632206429108695839478895716097002142791477851370637424135719844737994530391635752417008807907598651744843971330313296613421408101879370906913050502406149730130405809980852730094359641588006103788862007843166773427011295618483160695306466083119870378971803174716265029524251766554585783460748281197183810665249926504633554693948873872928875891965748448886572563359575179012964529150903818952852483703572612506346295546553132756457468020956037984240789990459010287843825022866149493566531697350800419129339852326172900257934044541493535399181347630086770275100865209581343559151931451085234842520626006867185796033499786338862477602496556931363773472111679486853229788151988014756369655679796436659902632738619656137242442395104956517196324747449863395601151742149725614583324153134433606507648829297113321500331909026478711888250061575378976385583722012674006500555149336802951441581629888153018883510752982771092615871069113253933045392842944990601443893650469222815981974553810578866372324604340327551893606527044085929398822890207176276309206296854618761754240027818563374723604021653633955748505726026551890810693790184010623822769479881073867958977534704455063356222471770834387239076715853425513836865073766028532550197939362186921765861684246675820367779358396461464753607675920677418110770683164420250355791981740743527725320571471218343246526464961218233480334448706586809999038187058922872240726045577462064804905773673643458601330421790131272686912479915247534737820302152302443518049544480262202054811472243794138363835616874901095185894656246664833446266787819801675938368276329358847283981044615148484950744706078117855957590407544686701472662854185163056966045815948010537647772322881991018044827147183048516994669522815138944209260463271711637604213238872712525637290675910403329991158521507212425893347909927373688242359860250252336980639456060053860508903062899178322612935510233722345981763769965924680225561024993791368219774636209801942452590366482706044682408854967286347784065529503745449652782033912687983981191437901121640916825600272930040389164367583159918231138256663891495275153671797043942702146140324759911864742468806050324426329123368885544212786664463822965291478771807551273729911078234658452593602542573877923905874776547496451773013347125942548544774424947164464644236577694541006195491913800045192358165381600668536311267033238598807268026028307736376514129832939377746265626952552155616632645785703994301977518329443030420788136160815692834319994328028716703626674516550493456213755383021771325081823814434092815300141124719588453008984758618787509813644847302517397486497185844608902749359305964754988548136315272954050292210804256399891216869713644438550652151641111412945559814110441059513617547596943918794385755967332915427888491381798506407490622117847438580854943168083496954074824750887207299857965943436507930082302110234069925731918390485115325273968270221860483303177738545128165414121884410360624782197699026586615950145048104961716892738382531383542603757526897849466876336420444947320956822153491497421723294505848555962419567183008174697342984296889552325421235458003229932820598692361695043036799185654676849810485080445577053344358530957098351123163778102961210500462987559402385666769255360300571182859118277812169800871850944625259541699848629247677832903131905298740299873657463477239046084907252304603254863739634961742482401499639832531391392776833254197508786617256917724216587407729771794229725985171588698435205994622166379033264695579880529391429214248943186567240141724529554088439174030112643553747911944229767802917795751894701248535222716451567152728274167097920627246962593695835447222683287972750541992180610455147752594887802739173423541360477809585528209459126468044443434690654677668979245300164089467960677205057120992762397372333847674750068856896674139316191620833489335911723982525206663300489756261913418626429868875086197173090145108267237889327595029093897894688095921115152634918747334899183845745211235674661099620823986246784651005161138510603904966713952982371812688134952989695231147930046339720133702540704074595453093099358511891667446182941453840764824000547266401949950362008548915812204708272485830446973600212875699891989040080706241282560050916821324631850533633297653903010730838892967368832024851837488008004853905931910643186093372273615180008366277387674271048909127891363666491743225454058566878768617933053262133081082640375721452896242521234545347310547606498631760195982162985938941908652141875657283781771762989728728723209803998917260468653878642332228945151185379515866635886436084655469666578502535794944111108131889193989823849022346947103418210041959092242741505238564619395027604518120690864175363470977320475951512606474050996401738683114360009419146653295141201498856220861826101190578756167532025868008129406082231555553631334298260898966756826898507467369449749632879901284471658370969176754619597164034634573292286712831252639322529296101815624297884351981989898019508150843649807669323752856528820777476802297127870568751013739892744008194763299231706530650554136974626752645759219345305215176334687892671531190560769294120028888961656695719684505046094972067833710933575789452519099134944794016665160865536374559767916141975127257472939203992601432621823559120516962256233937959209154363763265592933410266918861263292868671478375370563073449020690288705086493491652007618427557426021004038284545146105228022307660831784787752278303181070913169547910811778624279717484858049850832657909755677770083087882552904941305003698058589297813737596210723839741793918035421586542162425298318533581251214063728387262443766825188607732242634787487864232972425644279817684817338275996699762673865109541091286088555795971558777816568744008265781935155262174155048989661584193268306360454167401528608082549327613654208393774993308450333348374990932862456080440123736770806697869212110408987722311547515397052393089236155624568205122692297498632711783912491726189669805167283444945269366886755686913276827115932033522742202746050592391814039517248645076373952997483746181183902840288270594297967808335077609810176463512396620675038149074172360871494917586056430705416680498090938915049990266652754233273560459340947330200539671349434521082799067375449234852292662203075530057889106909906518281518106022414576243620340781055805371022103696452127118589873349760136448653559441757333088557120924772997799770720206893082375842508527095187857228610374437623979834005693515879871301175472466797650665808547825133612763514771102048814193079410680955067439738827790887520577288262150189088157933875064134853666621676904628584593961006466241412771180932501905427048659667841452194897287877100988225241377559103144313480349820569010667130729628295025988231466068847325104378983623018816504286528157597827093637953169390433785972475644534067203902364847365070793128758071895045027700417172594606706633963813089181514951984197173268480937913279755633194006265831526855283191268479678710306719056208941531871618632816107417184118364518923538270340459833949144614494304037139336726278412607539855145474338277032056119952264387400460267567878692336235866734840855226942949886199459371045296628022823995608465316146630987918707755444765177584482070791281050870961279691515255528247608061187761583385191029926540898064175890166475695984603649959699944772152291872648087764716736104626603159416642061790242476837163362201313055404152073368008547600880701307137951886567895378255315914830360179303651490424478696770536251126630625977878534380586940107611538945671900730390419175048967115768079468582801930292305978825074938773234036855887110267968057473268541157755606788822241625425513653060744692299199161619874460892883270534734024791504323206062856611444339592871033121843512560065113400750954243503008004291158395475981594388018514710168623440662772043031210271399937246630699733751144235289665544580609680311480771801177909309410467566730025692914971117910337381719441332414495607905721310429701714381391750363121755603194867320873276516278364582086779538888289023501182324215218268828030844466705711842386420110763378397309668412396515197475248198069479358096973861931430908364101772302510860118938171649001711660922745991842221665053477645952387113616378837197791461590571285911378644086868206230150559034711810297083857681666512953648777775987088476756392760055305817155144204264648104097408147377787916058865083379460975394430770972747419648027488673391843613154485244680972809453859452563577906398968790998859505116815903972658853457679396400760735567251818148781018641179445809366326293630317891940373130342413233977185924766748401820758213135680823082984686580951612300229840841758518522133936373980346804836797259509489982151517451270275064742867626450804894432810406134280772859181859459987829611633915584540299742655360933134058957249993426547892891977210244866049534796529584976481269111223568850975897561810238998929694700068319574468636302656418971201048450847862796268743122529077460702858806826564014764413791485913676649504531800594479303384582856304415141286602239518038895780930230718572133085526303190429806312902739865584695336536075926102584577735265433299984354946835073999307936341544011578103243032844970388778720120115255934016261315862530552888022785288161904742531227738518441329294865143390580697989375575819871055649526130833269837817840567338216331145265526598473909742136216745806201588215829671969137960499699123044431578700472342445072567244259611470422336948622908473732565432920310932824889317529744200065656301319902623237936872879054287563325499047003720799181933112347773181265194985204328387788784787099608764414539505563025508039620081772569575155388424512757320157478074744524991410088814360307166345311419725659787396844607369105162261449704871736964590099401121605589364805762599517587848495138556928298400744277193323671984133659476879359343895812442891014115476338726873828287100002996664135294605180965976708181939411919432786248574810333434668073951225861193059820671741762056752801910187809394941236809202490063470457028975343564751509714622487133110765842030922393545694347216371318932940278959252639033149962331345713908189989039480789830157056731009336969223491106252808896550971156083217030192816880519815682161877632878255310137377472028565302279164274770445271994003687966880891488593723785944591945335494688823661402000753734755542491575352676398391661299768695502471179517254268983869676009445016241724133382985176429763933655916784529137833665682671327277970936785038055750066396120765773745750833277863969536250938972511696773842919325781503700182354747929147319968952878728225785193225500470225933888787868998838216959897602600547020227992385937742827392627956952768950517649367803182950308494659977294569504962970924849287319879882225888537860101011398722457761834394567366245673564541158770550746008273450079200431900904326184833989929969776621589411669150324433392915201381596749353142159064163779748250752360581411174986031067804814603381412405305238915413803501021816457675691561839571310198830926509133633969297981134352648864244703816180232120796930544896257075779927446926881674814990651957803306181574072278428696226433015429245570414622120800302220514395387038386686276651751506222897441007194876301307423401578162469375647868663390766595661940395713162641960158944938324933557501356665146892046687374380451982578054733685765311592403315889859377037114198848578335919713290053416964476947657465719550238684398860166497430350390226131736352413117913104140640973155114819044619309018056221258752656749946645153951754099884469516800938125458926079967030631822407280972700674275150306497177257404953218172039225058837966696345411953683890952352562080394202534534279807118599283723146033422719971816730894303367844434652415458103366224266247265613815312236716984117123618058875926856897564607286789501224869784768314419225090860182638989968683357046010563414652885874277207534619557074575665355418966744430360669892939891710354476142410532836488317552733119659427379826306652406238973408769432571191646340119059329963635123910090660714646726937461205197063888004636105608433371937845889546569443104085900908182879332390830491992671930691573941208935102550508815750011975848167399472679272606045481524023783122071770102140477906229369884348694296630975422307537172521587039692247135874320039797430211633238010453944000420492864345275119805043238022574978402672728329190681885824536379946045795225085621693072986709806284732385109884862274916248411266007841288953291102668726552461249603623847849989737531675008489223853789642819489734992327855640535819305484920021442810062963747272819499790300163822871993962413094373045225900375086722702830345152138120161656378060036009383303378011659124537543414975117684398948015861996032850640202396454829121438892614108705474429398233519024349744320613234135736303679279118513353149373147199368223214955497991689001575956059441386899323805924597447083870127177260237104397859955297636165486463812894282429839488608878728844798774888997950325223966767738042328580681303730401486251920368751522258326928125185735292461124736713773618040153245331381641839787057124147815615244903804641344373702365017952014517998423098130169371648032134597740075571329718865991226861118214534327183882899528205025086266652330279172212910285712802377144112472975298598685043163062848639646557187070749554694261903945937682423850321319857269847755031163965832898080697892595235783171355376628978387804126147043679154852152425837939533688978822634138402288282665928401305713015611947473732145151615615689234797877697399680656895107214937120918516204759484631987629652634534487882761990602040186802271202951847889966146023624046185609379721115537929033332928698089411168773704520625900446880420426767794388543604799665165342215832921717175163977870886973637440876490442138611808191418515972588517572037033298863745585853945359132507515761274008954084578739732733297035112597628066323906974423886313764716876822499465718121283792123216320726329862611118679537912711216387999122451909936207765480719006447364198694752457254540048222380342837955675017864777364204336771497516423558898578243200946455146943197792494753776186215215633841953255474180666193125864115416197839969492931907928503758833984122874006335349450599317813156064508346876141316058514895058537720461453886941329775603894316152571091808915587349500794005979398486767074559223850567165948892425597090547915579403250071686362270077715805998824326033570866772849395527829059806467875322616184167137996057787686978432271773029787570277878493455318452192018345873862916656486447732887724057192394693625337567677041317852646683013533253760298917232941296215626958206173779026723391945284087950853824166846841349163839654698273734925458168658248760922430353527812366336333161218591907603273440060961535763216636168834060889227456856961789924151065065159326303742025914236343839581949968323432016766036514179542783182504767692392158591948031794288558144492435343918341815202445275850500793144994377412477861705868467977949320765899357378520701375484326813699229430459825708829210988215166298965183872942879979628425254109574259947487882532165635047733818291344419768017530184565191643228294384332954011775880547651979856743632998737818142658293768112744507957854431986920611546655599172565043950335161785159617221612060151918585223941456904150679450309793870956693292639136402893216884403918169734401831301321331521096398802258198080642071597649875009025850004754299260046186906186073172069383036996266745898262991764222509662838310230212372535936782099375044435363653996628268253117236828793323641818888142235409208024260647747216795590610272655865839522360528022335525652095638663521400770809760511045410331041325312198547105591984547608833887803566324441318075730074776271433594776102462058904112598513979491912036663088660682654825468958404447552280945747910785405814989165653730914862205327287969781933547758912815638546484004083502718298395475271668843862323304614609061451448889396237802941401051383579963782350680606429283475716535816908238705263622399697682850186164745261220681503348044899614120778804535747882271193769074738484327607969499446094422631329177700464528004897330443651746648119680557412790143961020848373652087137652807856977517204621722106163595720269082575721920360461715829343790752967915309864777750133503962672324207081938935695321353353217356393666124698991895216011503161515649586545240785001297097030567276578328904415432485118513508701219329461511173990356277880714574361767037134968839443568611322671694872748218121342658948754858545912022139453658114718292704372733427253179032762822562699960111819388514202593927248553965992241936085777797540485625719207250821766389094612741878114794285724297567871797353560880743254122914215276252131838099009831956983050590668925581804392722015777331814393654444190933437311065058377971565175473630635142753417504245709819741133761823136168151038319467013187146470394284327302080567833105597166432463516552168254139167843021051284932685531464156160921177765871838554413153155310602056244266720602288768317284927709950017737913518486345170848997284799940559083948543799575628547991456041729686850550086740098285984583836005362895070137660577806908730916555781363548242139011864914079591162325463582684562387549384839352117512248985905396080098307626254326524131335015203865595982388272321658950676111611131173539224798678388974097530702832383060165769577733338084806431968566580921694616182260258835695165305985657574079006407790536690077269970183648110967473806804493569885225390860115472462913301169786134148194182860737993189045462217817406789569069766025765402078645394547798972140579478741591922175983735255926079177062580320772235722427067424171332596110077645410082996782033543015030024192494619451708192136808480849051743917236672627475980291696636249889995171122558933930312674764271355876167791920591372305730258163379742300926447025489543415505114801276442752174899533415335753975688037539929348038233253371894343000168657317841736924895628519657277169642375691150772780336057968200289016732449367267193962802335026842745095276510032463059154162265311527320418717156645273407966902395679257946631889305927887703510645651008096791405700513679271768741287354843885613169008650695735183340049760841058562194069095036108858989266049007100907062122093171718773165696516770288536553719870395139370269025951560832530051441752145072137544951599347380713187007465133934724439926727548495856955024327182375617381853399085715636410279084158979583149142318252073075603853819835340190696287335436878919496268953172063186783214190598984735785220344710196885162045009790508762248058747406421472828160276770479389565871403851150323361263170325356371153848384687849791402679375499593379453226292620472529067926513497939849695620316262501170253393707554056319528169294252953516243228921979578138324743452060010508437519975784567110052654324423183435899642820658571541912663360484861397014485390730119979243169640151522445943196990428766604406165637583425456878997374855741266509986973048468385030148057630410189774885129558380275601433580611431835105120872935574903040135005111366454471330166063321836582656238941099748135725137511725563152466970783832169185456771109243282149718763111565476321844819691576095387720952643614333888125784450061561147187160805977797086066373477634961818350925597360351000716521859891410798994090287993565104248537150039617895821166655480363647233946722899916314048780312783811626021524645463097678933965137185549908351183175779273714308352263914424664971279658484013581291521521351870212960410147711063531927985426383534561260067883811874667184747892484977281545619947145919407714450304988869598723596441709169811468072607829682430176846469672327454548983079902778231944123814561971763029362945328409585747072448561193833699751766366161478827684051228511647193328290030865433571743849862547881708928986395098872921762802126174744756841570527047870778198891652195523179484783217062185048890695778334629781766878853391380473436262859187119160455524529357748725245980029121699128983648871909489774753617560644236748333192440898414770074886685620418399902158258500271245192240237199093967983713944234046858874729284175840581181083849130132879031463869315316966737858115161386044234096639687115316201754764350841572879016261072651167061826672860882993216669286354969945945961876946796568054649442306353022617315725556701632423550618153018357571561507361825953102820449968857990021797224717403553468432560708859053411891647921433618465859475755837783365219752151907948762698897436328624694795731672245025426114330839410300079529602637993912974429656829847192102374847113395277074732803665707774299703928890281894767632450858237443705900633680231310776090464422597061335648590291939526845663652427898489982380703471184492830756621253253555718246334644748916353421923900842724964071803288194779508739188405728401397336369143083784084335762260349620441792270078894785087469863650593267641775586691456786362622102802077683838631505796437593371673224750476360664706670819235958994414617301554020173902822081080116485572778821654427620955142899707587135978008949598606854256360485120007855751618643559587086707917791359503365689862402966881183949411944217281630234489355591892055457246244959488167456012772247095561605510701268854301792561593186384792543252796117807801779743987495819660356230015732224333591266330988093665931197761008517833245879994845965043654148021823527466643099014308495617186354253876562475437793163521689812530559955554554591968459665837517437128586045997941389287474383448248319638086806455922317518427229556533253771488591965949225670358460347552927471810552861484891131875372133903855333973664788498250589554705950643294118804279958550120216527020257120909673410230912723951734313782650890148242472832645919383220183099250449750950980211827310005980008315381339898647381628927226300741240060845706035774597768486585249611125880759417912825873489238539030922992210059514965440175814317149030617214703077315072373341167371208540421411066888346890144157481448223252699826292487043068299980694397950002188764539791841236081084935350758047818570424984849496946430440191312995266893824546658885804297345633694266856526263684989942280497590746097318446528790414488532563136867759509832225920553216633412587532150875587394234005546710183730519012132163790355931830385894657113026547740839997402054140334561423752653563203626561934978692668843551418560761817485658034488415316130888991125400551089786551877173260594591774936940692267888510418686091667833931292662238630372975891421037597134326494355510082081269531709912467352349701392686509112359097578117473122016291565455305065430128609053477460597033247720321340020898681229723142585057079024988004724870459957417066629285841058078282887896411370934103625597551813492450082535626093559520897088566420904971531576834893255961851276104038214627891233202544714914856601672127019118743578042846242285668322023790084203767701632573796115361305359072407635042813696792453002053835871765218679554866338970621002222798249168744952681352823162440816334659924250383153983150293229955535433946060646538452873235254120101446043060167206025747990397631464031865716457977830738725186470696985849369538708238746261411625943639563229577681690127383761686638590288502783437695442757480169384840357368090522044323607723828893945290804058553031264318890187244338876014361921646585317929529963864525191749384397695867911638468795978956723221254791619271701451307799241297640303698777219484441473802857483963011229632564689502106147570130966737621516883007559301004703620289191356320187321757624713169775386454148083098228565044490805776995672164784272470463069892266865917274850939369900746872287756502000687229822239829174040416538313860008648701651778598708508499092958940612303421452411297223577260591289559496758009495635386562927607872063484142338558022342499924050785428102250318608396130149897280097687564159690676962619245916973283198311872590745596064251414628024784291308776180763238179368275913366283206666439741489316999414356329039571667558526286257093452990124216929311284777501567679308751909452421287842393361779660822240705513555879464221331303478781239613827540654010153888321543858727349751758263823155175176016154699142755736191727543921867231957340363914486203548342166949513638379684051618610549430722229561422232361582287023134046368501325042502819190387822011823725429165568046174421791256712354089551743236544975075119250514523752248998137158203194456094622108576944043594043148028185917266594021575103280040839934401597334207192552222619547171543367711319723869388190903678707433888299166505356656120653334497833118887709025979964009176327074080793526227533696049228873725900852715840372785579948993598403380685789210661916976179355460069029676530508831556097961791568385845555550358625191174987543508443176893813883144834689208468102235383800179888363348863196009532778983900811872701801416419664139344918961780014897094963939160015302825537414272313141982596135033940877790208564450050305859636604754999208673168089128096314375209627731828525044019507842671509925684106501699832592423818782008672110513500063640649378635905925015395025003280459950295926833649579501398127516250673711029877251611872074135245075529271656188973082570829228320737676137415852780110891988563188547093527067328278357515920826985382378116806713491501599625595450768307893020962400035124935246994628403128573721592615607837867199219949470471896486877602380738136917570247243973172085787143122587036093421455529759819860791958477739248268779379690856696524782563646948347896605749788638697461901360885365443988313991489820318621274006199053782353647708352785549772209883974982554197997636185789538758019156913343794654243268000700064484855253325193479007070708380073844752682294977717970690113103218771178656729605679838089307482410839391760787748124142639342068202340850341520118626641518459424233838115784308207529634826052207433871295453811966735225681769479309896289151163734619338224544963846781622809497026942408470387967340189877248107371292062218919369915904794227080147003328737651302516533153557234291059083058418699276413800700831029692241732275755538171193947037830919213373364046889393670088607292817312590675468259580216423471617596087721780530319988788012327028139120702744740275121557431529602016238347959972660652838536678658709426550810374357504725946087594382550033107685814289052394747051112718282477546037190442931299081082890105143087803094152201469890690890797732101093373610864926532289388123066912025932850794741930157380834873466047228555330079149177242892869152802516785663400212820191313370882736094207643249469467173264313002722745728382909420987054300332760193172544166568847717975264350068530807049859304744866778420165942099617004873564686991021200777555963771563525242123188805677314858894399848794000516769852724689924190912471883133326130075538708074535636340161879717437576043375221015110533958956740921256275661958768685313305609727589105113877772345505942488359689616567920419209873646328644251756305011924223595386300184943458036470134776095418806739322529346206676083059058929933541673630745553940084733881083160203377589129124921507729814172357656274017728024540053240334624992122870591665168601332520753032531950191626903553678402048314721268308530959241991590241825839448300799420848408030350750127416838473424907352696608429046617473690979270095658530125920096000507422267815147097205217560099892702276826454818688805457095943307006264034442615591839251397278817349130920021963700997772753656964879427526853340753722770445387547188804323789383937192959419508082748829125105983470316813597900913458854422451112180662288711450812452438251937620249284606590958064020135197630444850830038431287989692538541436637439882647772759063904166913894913628586471351612118356826261232530369876956252884037108816930798204810336034000562550519503850438960196223344532390852535884084716307515514673293197270510434509036752904748448967173628702950505770669745316072365763211715186754525361690940874522478900725305033310402905847041844128403082735622888657297954720981564234402260650742225408023087237359009956923437674574881621080256347400559197782612117836660982979765809896457579723951555810558209475071507851111937333629677678836786993341764788538226388414160139143639227959507575501387761729306129944051227210997910700602957462942796369866465206411066064488481136254134955779027315598521224748048111956434116409465212951799412148078157943018227182337066108654477368959898632566973192286309254575927354009307588311624602906414709797654461258264438895475288095327283851847030830205889000236431899742527774702234387888380448056283189173675489027629857749468837259350516562375050898271242750846381536827336618864279321395911173873870467082075431596941164881407683661600199064850735251231978693799183491456231042981429745729213515526213392548543888939782252436440981362073456794427470995968519468843978527507498950292032045562231695268119567670870957287720502215851724589485390802503252987113514609621010577114811378943298524198363983536577205449429751244877252661626454901425319448354247411807800067810614665131192521639512214547373920438255631821220175546916107503283716383476863464923553394220502930834123116383756419038739477245300823576864487534008771365070378628867102230661994726569092034057085997139605997057429091106822457284624974796321076373359544267316851427769717265670273458055090736534013226290838783870929496129146675622099839374900490027938115780953142863872535810539042444593073514358771820995177277151967093462863708360306970938450890934695937671788313593821391565759630426429108288298727307958350534928965423537751315022432417142369401577750886133815666727906765098667910961160818659248374068766287537066958750746958244998472246311022283400058546681159939213819937556638979765852900537240648157198580532568506491434107755733610084833743275986008923264878405388659871922541940862787387074064590371530984586786131038134244408421648750957193307890678258608678435358325421984919390730244190595515596666323580872134350456985613431762871145587941357746407266779726428781063890837980045976185164012547048251539943502940921556011889944325407808348367470185344598015198163471174432990461935653835300442607468608004099291574415255042281513953809417506064286447970924149114769199067885185026601239412919990414476919963268292056553692793817263481055552654191283461278109213751801931635863618071866083868918480823763612846007709409419385330790612671074950525443056214312964664683557767595727191731476942525755280666086375061001570265368731489931920181873212384802712536455502725346934669119010412201217901850985575678730892242464035090738633230277071222727703037047502355897337511991846628324240443330847567621953003580397542532798937273441113989370124690656212517644761857249596963136307288083609376485818193207664375049393198241959147921310106170549572757639803828904630811831760053895653177928513273188506603114064389386014336299619334027961827619365908675833110646975024638529517406534688656122877994805025993222245300971488611550980570720119758914614245844892311493275922344487900359263261406127658630199108372305989113474344931092672858620798742537807616229212804579045798410548485566936641073774910614993054138614714899356681771065564247660090982428934347557131113174287965571432076469419128538696561980025953459296855287171157076871297201785063296891128829901728376990265507160412549620275616535812392655124817194666136547917248583299384619876440715442944233113422438967727327466446140098500616479921236236434595436863307231494289412935313550992145510893027564395098729667762093447906309028513535544389857884332263404339840867100194337343724690682763963289709271250864675089847425764377550684406340913251357081401755398156549733180371877072994719887731952186978674823421043315729987792463400282085396756352874681122193567569007641753095421814326191999968859904326129093450189979974851781796286876895483525331583941640986430536961225159065434816345829565059360569477418754288245186708623352580881261824449631359049963078057842210530078456720947788211963530702503416809508253414333701845073809657332843311175374539211950484194367444430318481512970756107739702088805186457104256173710720599363567657981788396361442554720498558582078083360524593178720007474368008387201939916214325285585606829371912227773693895431021356398684545199724862953504638080415050829945757333759974110804935010307241226860575950046659860130612497185070687334345309801098820553190846520961512520273555462681101181768864517355388505457289858972954883051413898485926281688336193725107619590317592237030383661628250393307398043423178366423289580540205333088378990688576096440902134774204031747137055554831572156850099206263682340996444799419646335210565218307246775483432774675950582444452188174632933025494149991532169862852687050818694003990822988051098457547761319715410643393428004044933950655113427855086592070715782808235537085775803778588478082658268913015729701767390108971020071974555615726728690976084139320384535270820675170069453384302915486755306352399209461557689220721823905763519509841592675467785287327357123566424903551701236985586849161339680284816216624226377758022696995715843298758720593207619154166708366576570668253802588378865294224122884438501192306473780756862003973892498578676904913302235939061845851348478675996925852815602167924893855089297640722131888535121717140386360680559529995050891622721239805174289122367188691254525190370612871694230605112613694903804822560348307597406630203741591326893049518402877814409265850034669981764692983243931185647427973432527084140337452356659862127737014976464902653974972681634203398610160388073553430329378436082188078168895669492904194143608592611498621092505498309140624610586332893909022979880324723821566390079645026486318751448243310760137325790435488610443553552258031013675654753165270952247310553819025813186769232804014654038348692359601727775161700031737905900890634927690709185964449336293374720191045445903542553094320313206118714795661300259459515876591930186054461891612600489229305665102686445361513583476447332404763211218631579169235015472158189074397839901472986493256529819368857625196218224327290075183790235023909021101738475966017818985228236389912724486289468903225076812050777626485718100075214889562960056544939851645164086158309809454717447688522748711674219436469920094179237078820664987024293256382207122659341118334025446274131914564155835749016872741982948601455896164911474986655527574910734431367693786854589241732072466424321621399981915227623497934845283900756365774252210219386600768297125116385819126659648009900410909632088293303394256073715957285679790592567823858933884390193642464275752860429381881198701260222164574370002340940589855365779075960777810032086144702222627937156836240659063359971904031607468921505477277311138304800631356196475786433920776728269120615940748096910785170678521128782681938168011293245870483049022019267704550286535219057279446128793602451546754612663073849242549237029164879237169551257201283064489589385084740942046403282916892858331255504241840149109184279556217392950619728976021833808610177022175493541017539292924185925525582990541392324384317998027531598063669871253948358866755637224998377512883397077028786812149944199757916935558134060568310056157999739777806648910162741282202273590413361779495566421852812340366889170785831531752769780504898281823814574602394024523060990826060044644567061520369183254302408763947816729438858946906824010707210320668241832435423687503434826395259731920730946382675792497457270292100687648252115165356384324164655286895159426496139196900271667318308281155675057556074599636834031354921631384186289777419579794690505555008093700625786061331704705572825545355333138724452710761095131836717665812654018830208941007298768282309151767373052072098812699240102401156875493125151202852776926403880270666025107465849109999089799079449249938765365913059170185124148988797532205230842582788918333818984376899870395262442386703550275506227242045883661636171449274667066428187022687367303094014233852645511145555313855051471517668485016419186557562337546204647460769538172841589373182770095307474750721612719251158486479319877898174853351081756878616405724160491252368032488478135349835745652166405007053678400209197486949362938777023231108058824024354410219225795268819344860311487007493433285746744617690839393527306681683814641567463838547826728661649524748158069473868193429402630837324892004722431712738931003268955639147664471027730313436200481636113903606730069976807350431454502190372529358425981108632904092041785028491440790097444780071152033022355613786484552157760664913072026317829834716773571742212280881448424759853079998234836930184449252947728101060765284607283040816759917661581868363538255576472388680376854470761344168961699942827614468402577716879832069151714707041420991854697354269518516720086015510384202778180379418441399663752561703803321282757547933927460941615507059706132785869097553193673657920490558327945357568419567187458967298086541719677432299985741763267798626056663038284283947613376320709544516911237596108128193490436441389996076039646922941534642001364355569505364211693231921721314928028373768371800510350750464547036347530842453506835337139444570653276765124972228438543084224864806468992021190428975733038998383651391784715295891311833549460665805587529987979930207571073493254882521365734777812221719465021702712379055515797241785462218051898360642784372338593913977379933775432610191802525270937771122215981938642271866113646126859547692329433415727587426556761871076880819289646488250859774497202751335063924277939895267532487637794061233363719064111222617298546337106357286239899189452058521859743060102743789334893254368678589414265086746350857486334801476796625354873264175084629163120871947189725576770926970044900475991374963365099826357306403578224403945721025655081977918218940772679310709753969197155580436491065363668200797899951179066376624040267900176822326241507898150977942596599423111770463222110634179060646580994684955678064571032538248143779897780917485763490822297306159000675322957080087973448799537437163047638248822761086135336448549440312247010676336577550506751111034378678301445236957984206205830154828139744412230347497967930962222695060291459620952885415120857837584995925336440124475243175428488335787531237680109329968547565231728583432942083812132654966100667283399907235617425722355086736063679687377337808218389950245477069464815284177203018857038225283468924094777204430519026453887105632841979057398398605791413752339780324724204900537301027908554340363075474138230632885443651562768791312642995537012892196850979438230596372092750192574441489233203714382647437446161041943434751906196442583758449975836134570293117756132250613024492251565563385193452711945179434789480243953250897826334709487926275708397867643466907876910727160658346512721637425181543240601427324363395794707185111501099687726678103291826934594993450688723220237374841484269065116557083999039181301593526274069728490270851446725898841594954842130310248413399637812020107115900226785476938168444224188539258205608792303056329180152219832598073808485319936533293153414064377905104458805257941077770106382071832010277323528206665579637110015622060456096199558172127887489883612112089604735654278315534363797769086048474171697633571500686728186343157146102608278002343862965576747226944601534924332085722312300994400987423545262572742371837456623591999416162015938765925167927296574570644132640938640202595276043515025689498806848415936641198868261360539511073669698239015740042239465618558671436710217639142100264862468339028690293878857366515016101461812565209368417492411283759675686215200294856100394614176894424157900028097329185044279795413989740150770224879283389909343241456189771079751083915962074491236792803406422450184248131870893855035303564308024792396218932617104932344212269692421856067590270310744447998746054950795750689302849394401913700868010234717723738725006261190662802760868225983622390575986020822379542106700411410243721066244694982448601644055490447935612689530568518753965888641434540807370354014068600401334729726973104112304434904484546759810473935639306445518833729407639933821563303946793904600216400551847472533675039185026238378243558837324311430430065072459130232060290817557789947064640102640989169872915995036078348019248704286326415879800319232971047674638792631993472563779116110927396479329102394022955088287119338501568842277528091590543523241913836329052985464152984263642325210509410608960614829523586620180137234525168444695799605624396539368528072874914144327280175782285236180741810504990253823363192041655477924584975876747669107643638050837210212884662419052148219561109212116316947754778058176387589694955997706425095842633400680078819986536606521905476358698901023787785194705005325062564607725355506151470360525814018287448761618639846181415348987064633484344240654737583915280182852923797854474215177771050765253270373918767147419596263201603893991187664538201178873750009351772204503249222485893771868511915649499497757809888971043220255940138631814427119244145154861725119413256370060865970019582034200765567449452184257629614633605584607084289242231556479191214640073330459318675049308173053890939872611206088141065116792035401015659258634335236173987856555434618176782596105625108033230532732012536737823222595599447687808645250504494612663233696241067768729523874930476612631552586528764709821165497065499090444288572061120149602920043090538925840812158310482776519807927057086982463694992471033385639888214323308465993151407072304837102780921826089090838123978414508311854994337353926218730647295062162284025134611321194503092174956750215849513519347841338828365624791287497347299821876258308379402607837829044522177430073313781609267395722139064366221894756036556378872582947891470962107897630809752468733211504505423943416092766059580141767258799420053460839196296303863310681553311484029658222338656871112278282302110084646808532170283625640242696881818112454274440262489636992784070146497628498973890786767261035723260602209661882424394180798994542775315803400125835393346936775769946398167582303470381616187468342546686195922537015164974487467212063108791532572487926891053915988792844261650078453734378484007479065006240816294553083808628642228936669779263174750557682962241686786378268976757536090094308015219058271889440480548410595522127048628120748872051838288382310307399824846941743656542543489379864453111335624142970536342866646969150053952448911261360143905405979505304984294723105009048889539948646559716310398639875929031395522870974197321635756716676603601610846785512729839409819026136307638534283340095033065108872374764429134227301175310588876302260877678370109764551284266943361056307224471396875495228339444797741043302239037247927375911328045099817004189280898559144349603502248254537155858396535012298450262410733319874419994352518850661934923808473787660647660676346494876296018512203678032761683328015703974973107377116136365148826195459550903757735986877189993158253527772869003811733866636546717639608915062522134083184116800927390706027999209555214982122268336478980834277944095063705945824152155625174825273675991929771899710789609349327408698013528733194926206172504864477635007973035667278152971599327633233298369381434238194855253440268762951096973318069848583635956406201397639949735646680565897521904303841520506153600079819617972183055046169711931131743629350241512030265657776235198053337496137641513230603161626089384157349921590287224752207800953790341128355017376798257135624480339622283777638953216236373501060518893158301533938861736835207100171690076877190972991349541492358512133130999186276460808030366508669251901830232061758102168665773422089378945235786441368190912026829840111837263232317244513416807380703516512938142369230154007071368551372254725410868044437745041436639366318649823646476793181148503695210258489503899620663805834406538741605966261462417668943653987397709528394732937310498013571798861058164023133957783739266237096413012299418094539019100276601815504831526690037920866623028810776330859769869204617179020914228847038831538211246403627491760545804541717533989762425767733054442725465056904384705910271825382219396037730430644164414734677393149917800812588280667918793930984262241905499372586162581961119129836851113601530035888637444754249467320874072491925719971760864762906454813875843336515400733946835972128784179752184223508924772069073494980195215324811931897969270805538618801932064723342236686388276825761288443220562621700415299462851288767418296789104536473064466247162546184423116223445986042162977526195471040129942425178024161884179275808579778262497293402640474091004756088243312743088602092070864630484183168678705723596253970535910932141910803436496042176591708724569301984645622561251863265995631052553129200719115652582227431023372133701983115007103496846207742237027300461042336881750665422504078876831195385603741449686851803580116605344631628567515513217365595942313997042160889336216531014347772579292162797469090487627998332970242305656611466305706146092485535176322986556722123724735511943755948483001090178500958007285026535834637672955042151125289651557138053161540051505172136557514520056300821904439832737758600192787595024948981198378849306853253780391460525572258045907063194593654602362796297214320369473381054138585711768608381686513643178654429623078255903654468130934628222913267590606125808325989692497763847171372645421186637412580784313337803948067997177328995929246816902819158882562939091730238361905363113782061620278492197285256149274883838795635660942994931938194699578953860054848451975529436109699408930667490599758858055671279655493072286530172042307682738579336201406763496039355747204194711701376977318318282082654451748516381776599721588429306471052977431798559730596487179004583943214068056851338997030682167318178175876847516004073747918008582038988946501563805131800167500379713254266211470495227211729285703408761823322456134451938825800566231744447517055695550707565703981153349331681797084307955236928842007257869401634470826608538601557448843747821026756949192648465684463703581599423481678896044549044567783987819454569708858351965800346596707483215791386504876239096629293389324893803864451289592879793727283601150086761854763181014308714673976520177777889691843659331009187811491677708296097222890314188973432627373350153208506390012541834062101426296973545517210020702263141302857943738373065146880954238820832189710567794725767944491717951354552161398019760740018544871968557416713760466590537276337286191610290580455088985872006026098331385466651284239277726753252972129448174010065872051907889900988103399740793149878844934480269051262169121572402842076839531268191243950564424798728382977101076300946672462492597983828787994677495830383563970083849205026978096098801920465733431555357134158051000562844330748416596623379146915398158974486681400823595477840141271063520127387921881396039723193200105112769801884746139623964787227087300524690724214792589778252681579356018254280605512615029510142538580221038166436828128719684673260124596466781449090581504264676052454076793875054783615295760980871670678021964217968428579328039799766572553764354393059876194889699798037038686035104361046072421588570276128795401281393931688542967319750261285480546355213738398597000612167831054788835288885661402337799936705191506647169858072532970656034499835651690333645632808553056529834189326318293515076499170359475298026798914385222042922176614146729551040299333690221057749951445372313837397792660970937384927626153332467108789988740930225387854452194436236162040119867400699670323961720924902326950182844087187000462925526364993921067914684882960665465077842516893749928559853310989495878066629361648218763680699158566021097159004453136089773599505872307944590918160726185890226061235645758938389622033726915967932542250189913547169761889047677348439837121714892199400294311795149871420899157665907387838068725590879288871571121095128819596980288178864290943745114256683819245590837403571891100156448663656971868329864780657773703206639915413192758905692370192577386800655273024113630686639273952451082806338953886805318389066814419833374823056411902570629483017369625580484226696035285215232568740322830372627276386751121596214511208684095874755748150709427108051791489603392346723318644898595115173902946936086714325504865261952733140061756154854862116537826647890955680390250463177290165921512574902153210785342659672996736312790639078650456720011790483783359435207411812119212295478070266455629413819890664569829262721535686056051037179154931277824556202712522968659114585428028321422829370822226869375912552584244960302797837543064987665246893389992534917186322562435762858334300931377893567647627794986564114302587179316374073291330162796569038997956099339716814455562814869223898136317031571483568251642659728075775655665201707207930826816856443560356094015963628283012799566630777602392829753194721341861290621125942889786240373849721195952848987879472978212388870148299744577861286124005967561232382276590739525017750148992003212832653060298291582113936609273634589513752389558058057857611909524281098231631728271911574156354398342236326312186255054458238759649421748644636707409994137951962810269631548523771881813122403125879744946418705807677454405898288195651630559731985406124878807363295503199024587175600118981047638619375824044816621349409092527403360300656225950710721394333896988487234597248905037065947115472467886524956778343032060466326709050155046669071858659588871779380828327750425302542181171063219871530714153803219947081721003990055639872166670571503745330053697871714560049538331570873848230921263246361997037614054539779468312145420679077858436701725634498772236492232785766039580079020584691037255072934594505480398812856489741640072148776939163039193104403340713916409405991865755676092825023852139114557334789223692327151557611905001701138951494586927095774377244129967556753139334201253134880598012517397361323360002717024884233491961024023042532785032742576195168555004052527438326180158183604301028869434127695142938837742540593684465954281255572546523569789531789124059513551936411778037559069557875083526448658436686654856454180311864856556630622884770899287659856383987421518370232008255578720646885378160347124710452813210770387442280484452402526690318502772585266717629923245497702996683869110322681045568537535834814256703470084153775164032749113327203905235588266752657663843110008128518060749030792587653050905342278767829095471871625555829133734315683995148632190780903891673375103542688159475849565037954028412275798998951211993834819607505055833019837843229952061294914354512382273738699291840108444924304398528544735949979311179297682305428208719995692837346188096075542461083858864086824666290412467686113552672598926592944245613420635989607697397800817758288324378433524573589181848048929748714111138600782746725598076437991785398013220692799753502830967741776820877857314209859947856817758440780046162037958400231011855898976221521466038216551463024759059217202315335795338437319461773443094302030660160509226222642434857439026515000408634576552243956796956245207216661137684671821758075398380450023667079572640313945477994815087986716280713767688146496578908908289178847807488311925064362032711477387144068289534174663557856233038472805610062681389019244668085530462480599474722486429630652431641527594113394383740410895163233332213465523431129387303298458360893296628856325869068644220833397260617463226719970405505339270381348580228413354567618881769426836081562640827548981824985354067281607965245326539412411160733808071160661179062096451175812133929627416377695663358989157509146501688164807585488831948133823444754857558200004828637245503951786535689159464050944779392652845845384563840909738138326113440642776033023882212288763691351478627818785709804078697419723977863417464936648018480981028703810191920645919192913582619777851144238536684814892579203642415100814788173164140251114480799568374705836075683973224855311666973564808989483790467107113366461026565734244406524169513520970620720696184984200422832924526919675329301797813536891823703893237042874154677188980783973617127777780699222123948803628398120605842837172566849458318197831062621969747692569921751058454764645881948611694020588214720314217800565653912012149278797742578409668399810549962250691687851394130669156712450207335790323881374410778261719873262878104816821824269868758734887460263390315989750021551331102240117893076223460883082806396706383268728029093263002858497961996966091071140878578029341013388553179437174452824374858094587404780808599622384286956270501020474314598732847952811468299368938340218864939583737621659414655880293642283643511774629921588394816449522291019818670254142188920314790779122299388015918156638243784980594005092240801262763484945896948043039630117147584076031864528143029715959288700959710135393040939450177302091527395588660968866487627113979201666644604861328470764914493393641181357710200889979982777220318883363735916480955918138714386724264273531791087131625589500155353348556781363384483794851188137951345354539598737410202024807849702453705296899620507623141413313857032402279828365810654036579331815606744014186642726017361443608230903667939104517511708842758944661310950389869908942108036655127948859212235867349442847101944536235469691546043618467868620948830337033667982788640701676921022446896623071852817333756367187135637370508707577018447578397751097925160545876972168207087684006844591348949134747068843062873316781029784503564216488388159861491868903653887302844214252200600478833302942568395174458852180042241321204139137439406209645298993927437364154738245999518919494600835880592419217098520401500299200390072098903533585653027899563450107948690450286113441959868572399827895736658161568845227280898604660358311362478987625305040302519600759419205018887240746622249542875693052536749650912958524006487504591325055689693513631419802383397317831992991458117214353041659588131569548953719398803003463241362857149190726760987450690072136341561018886676079678202287724341538450278236887222855441208162732668554244099642396991608177798830185738284942300375092920559940684418127318979459797311028527343090916809998129856441991711272333415164793266779832672349204203022539555504932218567291296597710740719459140860543470898736705330286552706124264144940397809685968480998664397344689785777124527186206744439289058249624984853015454612861635083253357608793877946168620306784085727467429062376535366560289992465064024631541089623332253427831966367535914311523563401149285582115435036097686057418194882671539383785744027315295073206872158228434523703591064435072834218412838005833168217570803196737776993003762080881185040833693938863933038049370441590357786899441787799621081215940883032092139495693971572165774086480818817404200803400358469557618452502428274634036547620704738530019913838422370495383276511011668691336183999952041683212335447157941852779469739451779711853677615639938589501897420206947626150004559371538894757923260037304568648300238757148406483497068426352040421124973005555117671757554574430460986516405792642163456667659177059103476416798197794689720714076555759683746944002820505072707967684768289577376242283646749221983540912053283565093257354663134403505336386878734996275390783057149710824490335275175938728298471856857918843800140350139082362557872856023359932817827142850848715033765396647587951980973100136348992582983515587083037224740839432981206171480519067661401814421843054673383577595757652287256143708319696121316526864791205526490295215732811779172723561319899384847905431045682140367213160038009510321432564774183019636523943340178632878047440394315611280205848028890234451229332738575827753876439076586336709111705691478593722738489609764945656111044991622054904072757832990752133449164156938202551550156305740715291611977005769377995415990187985414633435424456234177712322078990654845977916984816211518867549585963634498398212410790440250488619329748773441146912539868120839033107124209275957529950985233391585915980957379972874088213957659260547794731522724692300361654734729757475748071016311022209365071305681093399458110557328536546207102139775709304604013831676260199236675993082041353562539302679687322326580626236760184720900845713375148235420640100495567347081386633702195427684519141979765958979537911528577484076601070789992997705404920454301716423105611965199601714488108115630092804201634001305238441167992151157471229797569711242190797177556408742206990977048417252708192604152735169570131628379425075194310474278050938623206169305804336243758791794665215406945680281937487604572695655780320420909738520615223105687178297707189567342819887212669723266936662968903077421270484359856886420512863326967014606222017780972726589156168437048988633236590391634908053470345279036447012907719619849539607850267939992869959851721025081526752989086265112708691757877348008014967934227296520734874558401996143422314589722771106978533317033694336108051962386541782612523016143004735708195468508863350004769436692698323030348843260932695997189054247529748058954454827984217104379170928596079701066682050252867267859677909749871153185865098770827840226579964707959819845410390501243691499686125157831547592094713082503412172182234704806115884694232389441488498627762253332848068011942424350463408245555440769235440265318763343154142185131594771997974703743102355328010866658967758786179155132338372422770523844417452221932520921834708538494297601447166179688810331873678676774248984599935725411190549834297820230715345736981127906251924237798624544620724007722349934992612349873522523923696877647816363110331803726791115174713940565491589937983257468278198064773876114904020891526578607287657062973290687784626002462110951244788861617436095172032410146359950417870932643981756781340522684884423836322502325813459048428155379762714229178732980585566275292109682184903302793809381076641995571535240324361509621275587174732582290612739909948183012176042214509305637673640296341534335185233086821853096538169876675085232610268698150813484274169094195353240935199225972494254454070015261463601851680070714385639962642322744376584350243626915722511399443831804574529937839096054289903353143772409499414328533067582404371965134246626295914361464172338247948205056177014523223257574738264558311140034327190291724419656658734019716335331980667696097542104998531828022977444958538413509896506541554566686400574047127456958688576515348287019677853871660412537589127581607923380019493217246029949291061625425817284569306226792085902492656636291067894393047898135071138072620727865338128967287036244311754830172180513376971293318175053922819735750919827495262011109185594012439580549424905998853633079161715311021904632792235038593312391224106556675754841953287900378288394787966385698099430191373629806531611869106531331420924188824430536101855795401879678704788016524162226812107278104497588052510706462582491225780789849493308367450924683018195761013745034706363195575141152386932903649629268151895118135090442056983788398599128130151305513561294075275505243177592722761165221489889953360981505696953413911418747933322508237821381043812358563303729074842186610173189493284399758537165042960258993253993413872445804562149006663988407820780847779940225750177953433569349127564682590154978567693819673747929952573429070081711168336011056043794497924804288100652348767481689097545222934834232454141231291872234861582825262165127170681139074489362438285378623696211727927273344177117744419674686129656160114919990047995090020063937345342240491719275222732303443390417995505897232533104631095843513774564196319349624194525252844745467621319791987570253570860313332456696660983597806579041711487251081297883201735130563592611467727630857306038547975781268337378552874617606402259320088160890622195376456352581251766570371694480545547339730224515891536580917340347911929742007628095901154818654842942450824836083971584655959066050574174381239886593785093360626981806586692555911670047383608372730009341661833455617744464317961882148233193902750236480018353806152062333617116929371667966792561194529447305469480924176254465639374271821542444660268474231077806561983539734826857120016124517171231679518219054877883938908991335999210412591561860289759488573957713189929875823335460568565469571001316723685501618969762851770866954917206333457733020759983565922504619692838637116072468353552996720381842148753503578505969845792770807528827561914235833158522628346717521970974446926191807237305992950001490843555266926352016481586191038304600285514718000982676850700612012892194400077810501641627337091796947271279971912935975274319726100338029818406082811293838005312202125102067981137883758158533065985159852281062773242012674300142977263353383706175086921141368018652482080332951752341940516913896128258882559339514590525435946058967539328049425130288230450804322176938644772828420717287771461697661528947269139217276460976520992561874600569424757613222190818997838116367422659224071679178123895898505614588867803882015122632291551891109627850665522086294882124621944354692165868881206156059215185906713697439491223191230021614901382716209566913669972819027842518686764842082394222444319520033322548939079521130629018378937909636966806809966204332937925397011242804787774054937108363561087466867521447207733639088138303668159213207494408178394959377818240483138271775290015779404541172128760749674969351576426985742212874704897091138757987504264775759729412249257940339093876394510878382813344945878888543882551287234754603801445636191613192677981243457609716707895026957058167220914473063652955314754805527135720066964966260532036499533650888481822887681940327143660547309170350868112664995966961821267975815629355016509331010066019542284440112730752503524920550078343234528851949420318039381578099139557430055335534792558358029056127674286923417815774097862003302644184773622215389650230671010370881542136359880066275742812764795905777269279712791319311645447537888356920905339248969717704921730549081818470890443399317915804372343179001926729976441539394865015480413072455600675535434113977173434953373206279570911358477067526713663179894302816275234248004843465439923121032267001465685131876565310167784122261238612190822779552804561921202687223468343896029803186640698737092655990803739718921823034242415433537096602893485219438000016961003818859228717863023115261093879222073619134315643592554374846953044707532351394244996384972210780341673768664804342704454186155971153483569616198775438670730042859656699954845294983474499892324346975871061972187966507541960643133635954385011609781539846959085375803579380620695836936265034557764078475764931512648358389470925838738790798458544397828252763048817456451282923552677487887158313656178678647740803864428319593452479570888542049007303946526314037940110371819480413596312113213594685314141192420945674540311451650117613179658188885866639723931727647320586444874146287327886970555244250490338953057098642716726145003685578057730703461523380976529966901691022577643343869589921049630810700497616719471736138617722654804436251170041524723749082010230907270416785812234114927539162759926970536684382736580672398099152718143246470508794427771596222585531570418105194187001171320135492242016825238053360568935541316772707027985504485843421176223995526759108754354010385776560639962240415965809228947819858111680543025588799855792489018725404965869930926114857792844463239318313724887406267529362753946537619664759257893153901537286744144045927667861536448702948577012380135527738634297604712206561178133614250783185787706440786636839468100069556436485454110915506545462773722164692027775518293385233183486053899979180418407845810496853469832170355734699090902037753055392876910340345485650999457394796990730880087098680437431969235162948156414037060648934066076532613539599703963345819494437690690625143417736556462422359734275928024648861340958819465363510090060258290059194054426974325615063261352296361508109610347178434093920843042130929444949911327470343294084928849528453509998588834705170514618303149823001693194236571319890289211302501659702530211474981413067011189906346248859947031763851620393778748459455406488192107347930894503400035440049625983062641198822043074618178931094399295817083830867148823991436596790372082363653248144482847256318911940239188161733223032667058947816668391472304023208185704951600169328091627188332489006909784126213755871027791269068049239927303188567464491682586010062201694024720505676010593725263679422249943069152935917804194159516228830489553185538334710421381874709149857533612061887434976603406597378544807115201325922778724006430774939166839197039356621791233351697042857271047184793251043760080464891984386672411088100288375822707912816333871886117327202609744985557864727460966537865245971633602869675541178459815288900107356696787449048052576227298202101852834098392798237709054265870570250030755520959300759161710610916832282508520966021496423107988863951552163992805314374068521244975190525251470674246338091397195149082944551835963196521706384631381343088616320700643754195994637374934724318861917828201102794358764733624519947747649590420355012883949309299062067185760518913983146583673019588754839306347583037202069510588035673226668606991905515607699303014590968504213653914662095136658713826861524035784971930507726073494422888402676054622049313254738543523265110809508122809405300882714752970030161582151782322778055716324555754430825408112804269863796679519424727198810931757411510196388464530725333568661884383010744154580069973969754587446887536064281675041628771282918573860258525251208997106617752082161551011226377381300428812458950491922662597768968871969496941431063479601636044530144156499874014369634355583283612343282556970381407416174089555964991509124963110020880650817362670748149415543919052806506367667674074397304357725174379599153926983947965093956065321206686981532213092165652178878372808717726080402431623215661355390894907851361277199835741467518348788925686928865422805502101121377977300639414398920502857278115672068002367509094924910528602453813150649502256288280155901504221843696173383968072502712839870949633776557589473103002280577663369993480162302955265170940777101324985123665844333108593882435286799150945691021769065525968098201982961843663095471088831462212854771649497662359711911961434645054431250099388245445282699916651851173208626058502413862844616306311016211952773488166748054857517670621993526147292741068656960477486860449298818675919084786040977598823614411803380831016116110027743767715474621852468494857281739030692823568119902604171574966686936453073974731552373353015656393388609064028540495809851637963136613888516968684289568280985607950073990759112348154124880003240520953816890324523446575359638309566061363471439328127516260762263089371899971715980370180708802766123477268518597984300581636510099389395266853870564779534677587513810271771149026675535429120914341190983212935011364138612806871874089729954235457396142621928120511522084968507043879225627505061505337532833982990742382177160721685812411334702421182261473870242711767842845987785281876054607080449760691452544842697110991915840805893111267632021266361508422805021007001821566881115010746056308273133055492590891406374689476547410452408376906870187192978530507749713603737554740288762277797386205968193364069709736019941083589492681165237586921900907066690099054010717204272289478822817738614504130790045138560544358183129675161173752297078378692254991002387609802040146371562669976846648416890714614144198330923355872083125178514598351486061708346627483615283107033014921018045334634723740130867650662614680598285611345035520185367147887997845116847877070711734439660557341445101264627581689408680913986534969089133940680001865441913494743255802067100464485553096241689405035721709110338366533433202301174950553089961521574773056014514393267150507048862391176409279751339293777095077812230369269574751907856503312578900667568800583916659224592176227288065944470071706523574615320035806965779264565063176646873653312474482366006654604577902845860066383305248621135255823573863789791161291367974191335631765072085702690736886061272423692177107264638887220491602528467752713449217374105315591136297306905415248065870676614077503091283204627908627643077724122051900081999637623736119464777571900443789631916462243906784317495030420483541150470906723446827176337712828174010310576623200905190211413970621389249563974852936978243351814468702751317455381339522787621637074078839437720628993679136919560470960644765779894602813215359596658214541334594834553541296835816939199451097646643003645775762473053174290461992187887219847922103204774320898530920940956626345227670777059769010865078832538529681371501298084481999919750835056292157417991892152330989359207636479823692640838795112061941593325821861767522735310826075178289620359891113753246039211913642585613687734321610366416090781310790785566981162569591982912874602832963320910939349391851074643111579990155226460896443716169207372141116177921184610197263762226101028251203331808684963104860779491704960122099895369400970351304150256473088408838159392429569761568436523153678652791623068763225884330412595919539954948025625203896553988328793453517637304974229304997999419851720434249762034905041570869333034169213074553484339059216710254841041243094060896317595397850457754426367774533577241069938567374072811271254702169386834487944920167332837834158319531974033979727140325260172313281562847458214229216746013858241226999999085863272839750897230533731963454173540693289057800134728621988714832589395277174203410115712178606223002858193016862856768718433910451076423999067161160097253176917144119302731898141979207765975961883078847624111229146309074842255582798037701850230260336364646566864976019698729031918612921321332279496880623178787519857777233795756725080135909069799407401252620756146165993589904422565378284398959716936983494809579317592590768902054190585856924713533892229818850608849261523130652605079584743010997977182253094023746145119703333599103142713806476004463652290526731914624457451383338442217532279768668614411715836720350277415108342680737189240270294406392965023367303348227859824915987992560198708422734409763238045924101806124128781927995632888078592403602405556245858760580635579356362562456475958124355474753800955330071822015505718603465868337863357610075011353772741153846784745863393937524892211459003115272416832781225450464409977334026139271832077107233618369075412278109281870086460249043712439693062539439447842338308326768805224879963560761862824146356852770053596119341206009423675351024092681710627668919878116660980785078358252670102097440577999708985020881126836972211159861217103116577513368523226286017068600853764289041798526357977453741577194584675935659196022357895186209205262429803562306949284820446963829677290471242120976245958140697715462402838960389217561902607056153846297903862836150477157337501055470036305615344038281697316629638019335635252955567041960607666914823721394059368922461390525130541050593226046336484533534040718983991438229764121873690037374684298976169677879380921544889453526716631744090298417931375496389821588647759651930698106273184589206980327428463978178610267552355444201980623386143489653409088135572050109632326027821986899326341364717661665946336337332887696566593854723153815512063306597627446286939663908716867358249898873860489802721650692107488822852513336723406614907884162541087023129181423478322949721930006431240457410641956476585569775925435193768795585016521348653273539988418937246565684061570044783875073121799610540758469812098144770343157879329788036290278101838043505450339170422398952802422501599888128193849841797056956628110748011141730976980801999790760810778679488720557256271388122291350004172307980619230311097947183152624084578130799580146003111912518600200517700550471701969665944666997218850055034426172340051577322201705466432840305258805414550957465613992608536262825642441829499595935361403458686465834821290686783175840073055454085142418999462000309567092556828251650219306762960902368084204348459674989378806902311933360574910559917616370185332907348162882215334604131634472266582005773960189258680614876071706290551346722677079245053600662120365893894541428275753667505851243529179381981026529997804105018201337950207791710656566453228540597155214052505482513062154148015959913296988960721140521922199811873391953162430313615898900534630319649228169632768537178342613252120558995972361318844379724972822231959621441964661530167963790635944769595882559777706442203134554052162962751992319099038279759046804673189229449177434272329546568695438839729413081725091296485625836371305720325577938275546078929881408317732699851921558660541820199481522854728836060922581585769057068130180073266707332399626450550630882965717894320701303000021691445458542120289181639613637927962036197800997521747648877554720243853406612872251158551204887423804150679142112726342074023028281168392625510391018155967751950229833075377474912355363780370648542648479422072655440767834522521495480729788651543618119354822338078351902230108006996800034812609517051070263269135984379703125432097555585642370881723279476419238381230320205502059320474328367068750050308561576399654626860477842448647390538240449363217612076634420913238119289407016269583794412276423476740077842421612769344474417862115084329400465420131606644331277678977682589903613710575056716330730519855592987037010341551194153664008685237426016001794491105086650259113864905438459696679481152728078989787422023937750105926377708586140236340331470005454046685998735829686522474498143390867126479682043522295203437622321985596757885988425723877899011597865779669902421778538710722089487137688210452172746865617924808074769703317765858253884408571642417865377151313602748216244248400426459652375548244654708904241119996276926044357221860635821156351889407902052748082179158831408164051975873860435720855448563740386386634704231128610483853893711243492229701094206173813296888275237546749692523427449913283609440446989291735904277756834617037842893649185075376642619005632753441216696024694808869935955007431363903263560744207364713337662790058438376693865446666553359823318583975015779308168378281443579700930507661598976940960375206201420905848969085760744677457146253656951668868866093781085071011297239812090935946146077922758602792473218067220700186715575527754814357541929258847623001243543946430987727904958992885173556708528991810764308014328851060790493451439605230325775748164874463887168016866790103134607518026414842565856962975244416387629203977600841575871836533969783673844760652621664752722090342428661695643861054762656314390961836865144599270360574153436510938992398247722224096343424948778544805706406028447488690664283368257261415723824985723490601629556208886810668324025108008863310264870112583379117349444675160677233108932872586154495766216135334551212528025715005570601819359458550389294499313485980859420241570317787862647636933535737937996551680277223187219172978890001793437555964278944662398113442854272850655641282397447912899443419469447758970127700052377750639646032513280392055848556602850128501378873752131868349419192635170013402251444086896012285940901473850131878875092392346007913684853162413849176275689573842141906745087144848718896911417778859247689367413285377767155608750134079910741663913253761536803274010016892157454907773219640215469165402610456562478346395578309854054901202596629377602121025125092654530113129876534603929408082658492942284722778839886569912025153633144510824712313849253433936682874306569950780103443193810033663621939557855611265404943284972109464152888498023922235032062904000947143023036003825214251147943919296246583534142934679306927268346147742093340424683947226140340974537305404091580741522959664197233054995748937510200871122838275945421458389253529789513045411448904453991562148999810375823942832509084970700803879390364867341889902300943269289974302601785613243625104724281963028017170881230101044435612871855969630783730194687113780752669048913886829066500171392119311077357535026099395584107423611741192025837296252156662463431952584563823453313415169976486917511444079601127522645737851942718775036665739897949017280807873773322878696359378087785260594996893541095765346511983846266180992800037301844274502869974993980600066678540201656094160695726436069437850674352731013403742875546955340564769132280849234122172583729852072881138434780193790094253517574477682329145852599289302882769722136588655239051352207714584461823517269792479545355762490698463364875882218740579033609696131204602922166549852591400105379169972207590829815792586916812678720741647927110698549189558596885852228235188291022747335635201485613594924013076222477045217864743605285529219059853606217895623478045997643724418993698676754871243968698984035447099488490054555036217832021670849352568417621151505052605133699434754900902395320105830881929817275671742998730265765402405578139508319329010239047439677885765078873860691693011655052346619921794758759356094332798221456379907926241098558304726850425133596081324960078260598611244969376364010619968970122674591759720646286709804883412375104086810040639545511913412826094014094248267577205225512489572681256463622718705184154745145146717088871219551012206384001553787302792197753753622355147036198069366015402755991658494090235069038997052024427045779667782812558343999751629892155006130231541256393921682503433035988256890450633233530241594646207827933550398630903824354868752456790852563667484064393304392995426235088794829928052497868010937988786195577334892883425196073195378575496430984142514436565589455431981542341178678973678086442501808021208462612178353556898449425217479411380538966986434838186678984320389424755346156624347810818387793205636017108816963099386119455796907606711437286375382177983421595844226377705016335270096310073847511735029626184673147738338385679755860938589116831190337798702740017132992388037026311239945378673988702318561918339335646738531023431575750043165532546918168535025024979947125289312811956930211843936783687860868376916415170465354553786553945668878747384569819860793547953462830763372250918457201799501742669684231538653672687724454739014210151888057192818724551286748408083923579823058324583837983822876180297155875820072656858269895235644958973256614284544260303688071618173698419208134300803557803012785509928475582728368783201109104153323807037495135995176405797260768678076102652257906264481702270589104875002768471446063407272954369679850787378480175896617767882416306529225249366708222542925971377352722431048084934592303173702340083339137615447830640430814725793908666590849600076619886361763042626942546574703441645809357491325992465611920131272818393585892856272055098336877880148351546037876830637918557106348322244684619832188031789763519904427132048785210017071201716655846028193824377133718748135227821020310330868869326948051339755675332340602529059660854529635158768321994621026751792444389051819043989812024438493610657678219288248840179702370722283718110059495012749209076652599316458682935961536579457866255326193627460951110112085142769381140133803818588550604194361251731743435299650972116900844670553375912083909738938336024442634143670066721406657468917697459558828429997837782231790045969239428989881566024276489479717319232866826899113180592116688142155648312159154909986041430230182645064021103742644954339743665784074028836482907439682107069101279784641921520812422653450024300611880053255680941773043033774994996844337587108499304711629562175363998005406987603100945291845835219444953328562126049900455839008005669494145857153391749699888993360764446131547381544951945829846094187762907461794615454125660757155673923409422472375051338419341003262826267641463991630077621890344067733547844245293964293125460900810637412569201314241016505293753343361420283290093541683325667045721578477875770223912701752738990430109090581645720957557758184537747585127334420746130922170946022307218084348769143272379250866792546428492949253604175430183208589924451524034389773106605959106786886900850501648185787637705177751214796704519407510930010906463002200777698583871769656571748539992200803947006321527495206099755151084316984259194825837551280215514276687529249324209987395216766925635931177552533260164693392425110125971612368491499764380400753152999930634976576590324752021688527089589975650000808812735801948294080334651872164425323384835358681580267968893151665097450521154838340157535124601282207459499075930718193090760612584634069152838442589471014791011032297670000001943307983338961755457769428545126153329830787912105332368393885977803033609131309743090629858363549865903919999494234919965503149132798717981922752299597782655889534729736886311417042769830036637350897946010366008095382844001270883831020283628865975184247359293860713668417419137811786978850896586632763642187750510844557890321756842842364958153634947406038440184943914564360758537543481588735300241332647999893603746198862084790049296574502518915983950749491766300601094380770846952783185047413385203979517554083813808320808908261082293754391311487581086931380904073906255817984718711947141195219772706207293877094285332737894268290231705432243155511838396807104060391139529573725201787841999970489266349286923446790156273143957726663747384356379889516082865858044706052187414918371611725675385042221022381633550523560348627088715118322877244467876767323285931961561534882658326742012909279896841021241583991846299116728566350804819310773540004012062513571422402729330913135665372933924981546829354207741999272348055408147365588056297495764333921684313172693358276245247488442730187099722810515075658219258395344176922656272446037352873881616345555693145577744784158286521320825238561326093957217804337132459487361512124159722035304765613664441232987090003607640535040260387274392074714218570430966587481100096701637153349725618620114806566802551197748397290640100760147886654845543220248314469942369054327793211610470045258519092850625381962648239576530319543368574008798264519495910893317101614100105424738884934453182202713962734115370994901328910119430704856385331222498319807609387198148735965537902966213088434254538670035526993731842076344640255208350464185882672400359710869028022296113439110949402033403207131480154323327002041252689713702509317553996808342351511269226639992698435439959390786517640145708719995606545565272294596605116241180808467992528683844074780568685769768670160941431805854586705718872347637910997141514922342166422598532609471997828251424755053875820114695151328969071073989485294461294731668012566932403948502067161072292049375215655788185258458566234995722658382012967855975405747572756208317084141463606973391815613895792960928481882467389492507100265211624378725616085524881386413146258318155136882008171980331592217045371941101959327479145295197786924793441289546849344240954663762154030396157228606857351162231409828110314017808953585994608626577452349368525405234849042764868000546487726035706140317810738998621599979628118764852186045961839148042666960684305411228008978076455674654973025624288384642422097312058442094635886308639944042830984979804071031144984152134333239502905646316102989995367211358388213264465840367704404403170476760771176512615058816661818795417228024554072771315202646006890545107305504070089122166370055740691086726309332593057644274747284266360293580815334841957143237194924502169768171593025343276107642816463299171297301608487370660061522502557567922222344083248907621081408965963650936754673588126508715736484277722188481138245543101629278072082590295441906556954503202098800954491207168580888691197040929700781157240313404657348131559048263133521635350160576657741605383667199200564607378318037684789505892032379624798323178748236731727537292704521538765900373009449408366581459322606493616180152789847334851417544674223242596297802337954723132192628031706081683666507470963077745413706453692715375093515900613592175787361152838102949858817333110128264512378952958632554326296711410246957497073460817524013469120474278346194341771582904196468506411553013660336672965429358248617951318059539956567825882527916351342378529902219187549692045627517304643309926459726457795977536328402948929538489070838832524958455078831695505785088027217514838825603402345297437824815287170142789658924039098752538968536215743967875357437079633771165800573322490383110314068379563031137085160680199227494386177734796688182278349355125352286914018203978409292105867850977970149825941772371331254438469389149082001469125263777470663420327177761819248850020692965157816435526990874824249821119410495442814666598977640538920081032186724097089443174348837956478551856733719309875666665816129823886952054282885516268881655322324290096500763608022349672310920644341603948756960187865766657418300679348420673954556288501092613572959562139922386704979517830221207387990246895553485448763305768333559497831768352609036366450361583109981874449718595205546209970023682987178411906087336688996406828000500923322068424488462069514442158489501565600585765875724594010898844574947573871302578371085993946291182920679051207211549867673914989780775650432933363531629209760662550860065570688448449059240243116838551620644637918373010289502404130704777488768095199977092102115891856863212558259413138948666987368556356035458958030038510623752942183441579501346058937599643540966543035418618425556157652861317650570123362837247334470815770210878905615783920305509804734864002186359474841921044868086300093446405139205721465055717219094891656969646534259137233588233470272784999123088226561760837761564197440657450441281763634533143097078146855932615518797718153450327235783225053384128211506577815726378798208234194440231490885617090230427259518809353199122797483516245539819834387374354958327105371129391383070951356622241305616986009165726636349967358491732807334210635813637794570190776684468012124701656652692290706936088756905089547274877880260391878886716292519982928781300380824341022988902240123800332927312482247140780911771360250147671014867737633208411908288414424777797938132660595147592728217000097912198218792472308429961049940976365148336361894040950460014295025959722152496314746435866180135203243361158973144218478339080021639752485340362013341787502698587095481961718817734136273948358972826300742657759681090189653127289578837500115035831601507734422798006733372994238668712072014730902429081131519820490568903849664174927280307994569451957259642103233943468306186998618975426080272155588221580663998826308924175140658849857868686488815884112198320029403349890937119697277615738970392672198674527595012796717692511592916321275324369633690647681406873443420994997381989711568402338399916353722194530151490404545623644884862796134272248013716079682257445009240619747435899721066453725035114679978797410685175634789214298571008144881392942275471385797614408163254961257361690702617090935681614295482835698570811309023567671141122428499357695437842803256022525755525248551005495260897830294290837140110844126080551833216288799529078182318541852707305503660435583789784495172721146898343275676157678954701269878998709548987605263518016837364141336542845321679159281487149243428956536987050036315194083309464571355472856734275068384873226673949746900125156935501754261688101943758161877262182919014620797991655457726918825735062408092884031678783982455001146620671114805659785374302706960308500286480513122020423434237816848974182421834231280091278570416287493731399140383047910475588325273169132997766010591496127896122575417871947551488194712300907250986569545748556220442947626190267152652688155393896044475187933878429983196089197474205737921847660539888889025229780935473429369887797774885087600921053896161878705560276197871981670400929113907250962163191049396063190865231148882063016005640848133630089220299118897560457557590486047591361090508152128354277720736316125794950298432444017505280064781148698520437103563777552518570793147662066017481933344553727991248880009272806692194817339978341280142439074566534409933682100548388416395588375961520833292176088257277282228075909934709053417509472420076962179049163719091870465126068072223426158435227203712653905816917620742506657462860761025335885096285182248533855192879447177395852382080465967035646928306449972501938671142247823567120666937362102257652692684025107986560033539143076577237498835905586003443692805431246939287365905057016715108410402646032618506112791941607387105807002890620075482320974376128421443433941786383667542636231506514566708287834273416016194217621220409186676937233848125823216893715837082773235939440119039115461751647638585691367545343215058416856159681716848483946067314597757111269765389825240530081627272271280313638897246897901920517690389358966530350115287121599186135564857371497403857105085506316720811083665038058792151821999047616556613389150755550567085597412752492490282103973310270077071171989715905211336908266729159997746025848370714714359350225962332842782717755606574665257657671754942171533837798629379682306082271135185409902345210585217578126053258668633349916377770331351549900111187853587778503150706035248609473419267550968343568183070337218422706296961730607078850959047716452441296883471809599884694287988715992730496735504749971656826703694287150252426067638131666705063541811059976937770066179634985550599699030036281042561257403610088283505038082079148690143222048144683668069153679952232471124663058829789113351386360993652495646249440282506968319723889560205971726040952705187741832038424615576445469968876868236914081569002383238931450983796663610012184115846690149873115180223001591284518398731588679149449157205568160369734352494109348334463629919423456408422718256060507376652287945903788055257061059004732760194182929595468274077394886973931015563786884764649343389904751748641817063611418272472416712279979392087705726939469748134333201366885125616446439633277214637448077778594880081809510597677275312259946933488887354050953247091634081814231681557780589267739084927271311632895627626802543022536074404502915339716366124731942144049941472160132553275134065718478932187370249185723933567208721122776142524812083851576823469179165860827317245665920586018471938049850147829277037359662964909308856322780777313575470682869863366690404734367615539127000063146030921442605542775579024008868026712019524091303531804340204608611927057372646267137702142329774505302083234939615352338267567735459333911359607486471121139852061756870783719849868252482586776519081252537040020700781614683574402555188191850974015330931482382670960069091874763800807912064529424836247260751013930599030779908948064772497856360143467360935681813508789926360392242511018282915321807948480359529025450719726296448293017321240566271885978420902016186659451543524557246007189407454860051484946985472618105615507704951178977172848817021534298877967684881662385479348003416096045765142303172275819728198074044112967277463573022827407061265617884964425607332783900317399161838235721059688641258448766614258759183847331053707335495854638883906199431479866586403038574726929917143519369256905505566328210490316051211109694883324234698230706475525372538871723818764598743746550282746843656627808050081966654781944197727336916500699352260732620888556534018299757538475419827900774252400888308051700833583018342393568715521913450190661535174501899339588226601116759798879949629653646848691921844527878202836291022205152210270722466210936804025894030660361714332433855490296288502477842451762487015940262611379192859716201213470319141001050350931302289254011346680211876801259810242576824020735721600735447863583624735367590588511645324123724531722697516926753632131895562667972950371738208547946681784485231040208508329794677287505156091516322874568301441487411570983645133372738976375623653797563346640488141661317019162319336375371617786988205647063901137881674895722267859843643668657647220485016281152525916593018499816620244751614416320676749203305873541866982015900853633469360549603496043684006644199680624187639638925572837884719125927178376200095180284402527020013173333208789461115912854155694267345363507809673662205209743777313003125344650964586668270301023334345984927505970384692536625121900195542649264834319518933171500697262752132190601915027876776332288501055396444251603108613412463654855341940062184360998111477346763435387759917792404285131788977235830147559155731967212309722995842018073678332257561623824871251681868373582208820889325059502810326106187637191169386858465313829075349878399669104589150996140855852417520938066247889300433188723694354442832113181266414304632992447117476588314860699423467208834593188314653970257044449201766423453663811088606548850511932488939850269098682620769085471371875572340850920754780769944010837240870679521866308131116160170114170323718122780699934931663437680092450700279090484246769234391614276632447284183182225988886681213352952358928422245918983170965321735006070853074208533904009194995457046211935300153484213568605748790359681239879077227598264561479221005732199203800690030130954806471832259494818483788165559876511677128148423476400852111532324738353917406419189049461668117361395845999253137804370709657127768803272207943461627995574657091525167134379633448377208101919068202318425508410960740383562545154786194369632257418027280241202797978725956284120615489457692746342659240762927513260580735482242051198590767686658028585114595979629592862486336019083436511894806630912316205388641780715331376218789859705196828685422927323361700225245217120509171734629334881117633687711569648011046934604995514740254550960508019658552752582626474131740661823918204311014469947645854661028976831721896749090533847867713459603981482833815635547917370614208215507674660032444408560514343645649241426822344782517551678885812953854495114666990768076164479814047583830274225122636369782299637662111664375000872508774277646400702873431602562238733005372035277297835111171282130681441697963362401129138342259214130626083449105498120957719906316397693226141690191894880855986848409001643300632946045712644651778932579633126844990282776831053687447510147899957474525349738590325651177083240230052899694331357678286883780418851821511699758139501330833938662748666235766552164289018507510254769142753167519642483039119097726817187091015236682184823518671204101844760248281380799591326360066925355979607350083703375671166707306344304992044673221442610256258794530945045868404367022454385100987520592963629028798083206788487681061057998290563820194961788274781679773209582448927534178779483619937481574918999765773676425753415631477726108644284927291743326963591790843848947542379615188622957974439201207979804329426285065342253438642551704187429804067881620692013908755932102738989025367820373406788161935252161190846032813049218379639619134026638232159616056917463951290886051774971757872384884152434775304735028930725972180722624546545129986917331083405565377098584378150594028326704720753281478162290841965495651132846034479821643770706459783716669873480933809221607241909561975353193763111062745922957265235533864150138096798678980732600187086102782113411832505168776351982168148359109811652076026260379568317936325799595715737465681063522026086545686394720049545169745121418343509958211219069214522651438078251404808671777956206081133352946254068781643356913296665916755734005242201520042088297553871206926496855300566087576319978394109163259147902705883699482473316670758918626848184250426593671096899822162814619940893019044772009994072526502866150010987323723557371374834864012573820077490133761741834515088408858285356582529272294567360450375579113475948001339317271978869384927628217194535459614767352412488670746878230239603657794592365755650926647302729687090047662422206649124595764639905605989000070224272607432543124008857284438836107898579456317902069776455747500687756292989444425516104698036608806167946512293917961463734783131809640267298380723766305941335499247395314375578229375850557534515761818464228853852717932314399347421684601739710633615607617039432525375735456188509129758233510344333396168669359903368840232779081719045209844096967288566649976339139830604025177334575328559105241158844023785957880482280653449765743013257070339887235053602382130404279121454964046364724336220070686049358812007504059899086847425523764094390396565557261508392679329395292695059645583460058999725877978276337301395015617938725419262630891921599683428438622809939270209482317462072018575129158278911485388869843382716590828759424169316154799429957785464102635352402666010408026253611280689579289994558311619478200954379852723714344269999927388038333545145213853098019594545344007154587257883397073972422409718605343578443651572732692790566501785770568892893018620958533361347331060122451275079255268658100606997459319377596046086643034741791308902807709951690312832273494742167260128628055452032049004073703404747461282572076414047649289638158189981248159859241509544386573384555644762079782865802442279200894514223691009722051344251507476397546792192106813730314167309721666793857110570639533284882727767254050693333264024154845152555346136136174196643374706180704772426015616706577683134157457630902347835846720153129957215821840873881968068050489971520588326766111500148369528592628370845202330967311297892797547525775425018415980970537994523152897676326290644928785169602362392142102809752387861638443311405716041462770403399409549980307335071656231099260156961175033925399635260392266924786295108868371422007042131392800456521142714914370597961153062893107047011680358331797973766934021892118019417714320973643491600299774552281245231079317935825488058307658394389649790759065597995953780123597806479753621469036814623079070396870292430981190692490957406724940400722417173608867897230347025398736023615750814094323479836987123119107687617961553369934883435746620872012425860157734702153692691852317981623013367888829622380171736633637419745676658378093330224604975884859037363125036212897090030524868205113679195486331533097125291354835931798222627959156027485869757916700616863793684363542079573334190996348645231039841547587167422649460360182514481324994212854632158159488548458056821339291754698511152347849730608721762366537966472087149963753961889902850013182230350217427944220445251738734940559112973033465150934243197193870576955366379241995424310788919200926868875062315651937755761855820177884473792947962540157248273977097983085807456056307962585161277686969246471176601424415044610814574523109385749672782884728792074617026413871821530722462766521781415303147172066808484737049419173820345649789858440857919820748660155779340765094483216460483704228750757430801295168925403129078398844035798779207581185800179845194955362002740741987984504224695739440227343648610213950378160219616894689014784565728989036322559031598069013736643169476903474608838374138774585171599983851563101986984938008660893502598131689251710411283186043185035739627815605399742604153740883548179244506992996584405568948718991511666669598391488584425779106238145893290276102525358053718345123138750159609885093991844119775718133467001830984942332854162628997078635264162138832778891821761770016682537998397134349949967184250050819453364067314094536521364248231361319670039298144687700612402433207345969970319543373897804454083999096524633686007395252221431855086572373433869824970734574734276864734631440210999533245200302666976909191085545656164769948381299192861489307418086507777831647922621545112526613202935413021522694325229413200926955126425488056054888107484924915529204306046308837931221637469965340493818879547412255551452211196136496028985017966653673852468451761158059657051288144205635305533454699249579044679809805462156307259357768368014610226913165058499640284991705895642526261348768890647441615768967863028491232916704543795186209036326193308334634033984734886777411290383941310478144934283740382182811667441799789020692426278964637628446334568556840020109227428576992328697316678312153712673823837338059732410364996503728426334668439130111903806742295500572035519988014213775592218706903302550261958872100596093075949623661131596327443140770980533868747306670244693200884606138123757493322935440381592045173155049327883939238805810250297503591393024953451294401236227443601563021928929048073620621917760524213219741485317379776434414035564678802272233555299990475429258889657468011281465637094207080585021875823882488809888902907484690030135865456988365700220108248983361440666080299677741348301943172768539012726134686897722634678853769406014374407305195154155499368942178213389649658724859642119791879430963771511143414268968337157365626689248798602589000766441820369501263556705162512883063010060840700210417276824445467719886834869761323735308046117198472992497368885972320530863756799858478807943640278705535177356093982920639053278244644379698216744419304600801934868584986553675640645859705963117992743326237383833401206452433598376291777152318542098923480417708282637320874284791996569846296690814780264163346639191466873999990031782897612134452219946312086242154297659841673046536123153804185743326052677422247480416942812175169382172809047990480397731537049317322634461597233424423040669875337282817885786739604434099107258332342853581674776887069628930657651961167235912492027664705993459238645802359188977911046706389970928880338546985152938779417903236433195941285593219655409968575731526562000057837859537162022390655509034169292603751364186323903186305471666218598645928096844543304946057992101580537610867620638607209559874926827722828278010901066853641161549451455129560849882019758183342597748424937072372014696626057642189305047959936252454269627094728263460432248173448877376211329963335220608849818245502049101938079345244409397468887636547445855961399493463214511015610751814755137651740524850681494503755304032979032379974283269609149432750807262195203859687692023121079100931744614438244322205944927850803550460504151479625499765258076337965681513419954704273331008120350860137612785319206512673797848893726145589231753070783596376075699008610240420651226918619029561990921166778046963672594610539533204526485697130438433832955987792578610230026975353186887967431898656182427216710408812713864901770363786875070376986767487432466992277461474156278126271752373556844747617650478406555175235959776540178425734316893145625331276160328506969366140332229077064306755194326729294089942019382781888449661726382840080208413548387402381213355021553153847706409337153019557219997952590853329657949417531014920749761143217014436524519669089568936732828336382524790747033114303826500955511462491457727441315862092699241886392405959498140104002363100639763382942302811122371723300945506068370780301171555379140076972703874701252469259955993943003403161703954464961827544359903808374511822466126371984032040255698521803109103535848728393897278021418362569273763443514297156733504841542952688688576263856569259665915914377886096903208909016677939417151189645355764381538195216609517500209217940241018058788241837321338322226838763081966210233459295169904459207865466785419677604220934918150284818360528378425300755585474143630092096114192651612021495309614815545306067457735818383514653001893117007144009283470056097751032634989284676843897010790290898398149239809960225910983650308359191571066304726288347967711157434633109587232496816586618361551838850272297741488415738310385168523715569272975854025656589838950253097370599008232832749196148902694819366107212526240874141196819546014129216969531189062915062642356356581704479257294268738291426212553510613399714147442261871934059526315570773895570349448768328339445689444056754420284751327684744450772876285376000686991703668629189741844067678738503743527679289084055447725397516638142785197064975672389322119656176593919914293118029856568481883211140920214110985536149550831497303874903336605986535590192515681753832803046051659380772653859774106321893015977757285139468208921025919949027199901953003737889240276050244164944481604244043812825208720455868691009437972163998980582386673739918201868309435975129693584497478644210550346395075637110956515258993772258328217704523423038411080172407051705354911505445696106623336130716116242501069220096066714603759747616815416869690570507431577440894837975766514062300169356978888071007780220256618481322311186755213242578514532632376292672674590194140119528275039830757414941968011146235594645563692282938970838540042077889282650313507167998352626664660536484321769397912318678004441524208283699902723814069291984647815943341228776069598797776951690829036218229863259768139745325616269110917712965598938646744600227763633623946422817950212035993651088335572668496323447966427033137833475800123288530345831513567968001341065463447337703297249743050569587026094274374866632819457187213698632595125470241008919677956141221938947798404105736358290112573238316257109817594386168928250585834017025224529310062044283227917523487359488475650931241773566150308198122564327373277697371137977512967884618659809345626236175601045346310729550725168017749949918535211830379048037981258563431694829308996435494715383293667749046751757633464891851699641209612747753330105489824749965822020961564103642177106560470486502793431143701739344605555486068307873670172207898479726198264814106933434250876601381503262063430437179658745809536139068774312717310991961726237133313641569381858494459414708911525123235384606827040856597956296234593785172492367270930086762254909560496658663784388212840787277476315211937671152725874625235239367724408805392098773830059754338425891958382742284468767879246230296665121753144902791840302838378578952325251655286018328833459059215903553856702946715687711056090424805633335048739819564776008272512316971940536337105675481419465552078808935768294892586589596209943011695633881513881971795923307745171163841550595319793824282400466792355842780147156469056446445181792637300016077535612201940409030739134880962621150000906816528795841948687253024790477983863545826621351058137283931065440971525987624627484277197718383516671498907935935532724264580014766217743672141065583567442864211186200642116529094272555200405293886314859192411712556916525611006111200794869107669880670434868281968179930973856839937613863352453910292265498975490900875066752132063578022675425871361026695051409020464646702839595236270658393410984634924669029615755507321095800316803793983454838714738806243899145520037000457949757580909642810117533358352063492032230821378871256092036728445895260119970636413189562045406768058418826006249533000059550715300946573391035659980408547065151970077652275979334597495153676260937513677685215809105865662637751023612344914396872575621186260890818011298336576809806269263320861152904398225632262176554225574149497013567437140171946233981458382283654375389198876771706208616736651626981236084617219164186060995701802582654893312359929525117430238912276041153456260243587259886337073472551748220982565716484651042228714053980550932194638398625468116429324329880409607770168867934068797762646638934329032149709141132608923622627740962906611127535608303705117817158317288837679520643742410719044104447347060860668642386224237100168969747767376102309022517088608725818058294903404942994387758907751480418325342375918538418396695382758377466324482784243682876029059632044458197562475624980717954338536980616326902607184759288529789825329202585315274388012878191341825598306227919080388108806117646884716504789849641336899804239258778642691308767538378902518956545082087037800138178027229897723468923021209735281221132402937298564156877409204224668441566307018754586835275629222345271788007486643981848816201082616584567896235424622014775547509872317770943936006464619873402086790956751440783982372330411786042660930008810110861474749343717227958585091533371897363546992477861747428197222717639205063047917762223902594204889943025623990230221079753999418334390940282230197344141497699967088831487092578677477249352837856165250782473116418301782523000399489662706742884831479379424067308364234337863653370428004619586099547777579974837266044391783734317993347165546510964785018194994728836991414270068872420019311329246196497154831827641852287476013284829101019223467686020218297256644961540952942441289637472132350770477270924964134162430147436919732678211941190853386130413027130379684184902605972417256548680722536710521476639099945115249788123395071022320448024773643797234293930261985164144209916380881867025238973127297322625438345856501785531444819588745161234426678302772146880813716724287758685339027255514699237081082739743091286417137744533301843187708147504388389416774835045721447485213904131018879409483220345134802227369976264451707019037663363587533253690314935618925511847102298240213086624586646442473705668682457398805151622590776253418762121368226851630198937475730758618616610029514495373017057627492138710515084892650119110779706439274750794403331086414343825842648602853808104591835341850405126068151129537641873836831076729843187777212151276187367007076691401625304802973422992936360149885264040156414747965583034502124896453148414338179544625248715832309187731819724015913894703541895902298679906795374945335591782024586677679597466033353137461849175637172622697441134984577981078430528816835472933220678685343568422750147863076120434878968637327760684718330159476871277659653214710868807102628987706854063565479849600297881581956504160602453879306234287447012637885842901109549577976758361772511877020652540594333313240783642020697951109311146110734860983724703385292169462933328040598834364155406660425511721015650203757932394001577058196085927881649413838781580520133072144952162245685880062286978833604415456892091141098821240303164208174509282943126564636040406668615786047229833499896535732797413186101698449730794129905676343060011832193820973382857992313667386038549298141046100547123551502566993611810206261802542422576513484017929389139821075136333912189313570893053244473968942980853476332419292927028874114269368732214180878326271195233207216340545607000702716294273859335842810303747254478909423900340795483475671836541670187655985826004429959156920870124640865983497227311508030296655977966112906340309530396031184013397215794987327076074367671205717755233046675656881208115583021847524937481539860919731695067589422608682681187953537866421450520673324482221467964812891365389152054501984223996731317270918556057704854548884679243879176355931674778478357411661070567262467177256231286460267486286015113134817242638461976167815977946425665288126038589610133747142406380428880515799942933639762467957197838633191307383681393797207189185680217247440824378522018014655231051226326938299608735043726087820275595475867565967749084796351421230118476618814142655047603121084260159742376097440661853362509093891617055195282172028673277009697534996985680385048909793510606745521918210251655108121613696298602787645001358481319036727328293375447503439316681065329120717704919475077393579735708252823601885353833333950637897575127150665849862406131378360779001549660286134979442074329338029054814367415120121461401503893741079663896605910730765721608872784466462306676249968001385635430552876482157472535639812029531901157229018740619539600966361230696446377535381362163008605217847002396466763463475721373485271902883580289787526396838035321236530130565290160516220905612695394606730421710646997927315508245629350433072603015774431360010095313617461332168846707331065405756253149516425360298838375121947212815106168680327705959292970621829221309880444480968811585334955722866116300197197912888271907764003372002785670803792971033552412003005640864993923616397233827600934055083291875707171305358578821512524960752768120105974431017899604405032504239299061939174939590680333773169404034380998312206940345501319601061533230035310319285385438526873649411963949317406544217675037056077402778370607083733682156714216511022977854406109427913112613060352720747009594967537028593406110661961079865489808203865798521138918888076155438908173979836673299001975669764673260807323340834126740281213263439111198585494256111935934395032602141572070389424273388171667976198719099564104930878690236891115428167770358857803929461159944609410708295762332542697195842120940368557529914210941946362214624575532747987672698031070705616703275004595529464738375115442858391126982840378387305693455267644590391673209603524730733434066140396030060813036716904155603818659741462147656727515359189906163044968596811592189416815636776357856557271130641624922293301733076524770454863791745098907226178748678943133319097859974949807717454051825990975854695125601137929186057530506641610352186384535037227759332356346711315019283567193083454859881101206760578389592016234137837869373461083614871512198537819278592222020010355147426598758867103266701864180671653048008775124119623742975535099161047161530903615044920241766227001591637144461471816417815932021178264602943772420834490437332550350172270734214931921869626758125751456408545127267585266451528933173818169758518600679065509289238538739551142667802423850737576489932890098058967778574998763169057369930447312673967550777346923735204440912717556372351338021514183075188590371750747907288873854088256786300654328320502814581389078329816939072756729915167897805325116430223769359086348222219707019918935919929605611621580700255421442579298672454676472700736014214429285224962372790019226077014533562685900723926055726753963762212526613526159215262552513009981478622282374562227858493289483930021099201543487701815489812253084760685107089676129817180539715385570328159817708117359501274806079645450209759075653085618275466925695767834795903600190979365563090499355530389865088132309924689183255931524414983531115057387289560019061273183031262807569540853508294342333123624028289826635276005600213676033029981257160019439645210539261406904080355640673864090386329231792726281818884260749609177169585781541457450708194626561327896392035248056130567152775853269626514099778705654293614481655199311119725882430600507399326482023504887288830900600133839834002103375623446364478986968502133099611105993421268749485075667117804068049585194796906294639964473135546634598355919165350640725426773118940835513104369470450532210084649222236633702468744927089761312221279209018839753828668989121525688510249932987206540283372925439595425172351583440092590687608862982312980758587955462958278400534263458855964545286330346588917837965789037997697671326438618369658424568095190968249181629350164175915063647397542634716730859781310941079098842795318921754434037568425634581793810104117625261897464736876416102357207089950468693766879397781068325487400474869807605596465315103804246361110583097736457508345604999650730224247693906569142849354844503321139583244346252875222541750251879987638720480975260358273788362783713595463075838071555594630539616280679523114801514899492737814830821660687524814776392413853007740288529157909172063329873405345289974684000102917272324884861640178891740889929236233192529876808916202075888316671993883716136317554171586950801280157587226509822267312417042357331055913053155373271080733557960746140505761179168587403684482203930814896900658320132349965088173610456681732768606978509573336363762846226863901933779047574902044969923641189400201794599392824900001120292063826253971447950691510547447741885501271903488985461178992442578955143463439497372049915903799080828318472224163902713011871225464236076478821929953239794942222742184607648770305148188863610873206904747551391094786598510841069848349362399916839774720177213951992970114416058411380350856461648822227800806645525275105421319797686420089823052764527187622676170672731072427471822218895384330930609886407667137094757383886262433915022467937982293576054018653977796077770776505895946046696692930895192137453567123909134951466352216175262507602648489623501239259899718258614174006241290493634806233785081745482403734176706686176303860577011272882695765215439989243387302723510809561213967593729986770198716576518415557064428146264202339377034692070512258185870542109582110151925891455744674956394508171752276094443104192937923991058813772450075406822316356997213153652320962978798933954221542846816065456097045380679078245092758882762147625809216185215679782189692508391887804489101637531482116777350300367423720646300387891080274557133068970016271550626872294241120911290075428896570984530534304935762431173645891692586060660926787999539203730398694688868050310904022337015659929548955805547602079435418991564660035900801600517818650202412970371450178786184316821619593366107468497383375086516050276648314205175611142934597167478526458172083684802216844068218879340695281710920619748299409850530565290690725250012589751090370739138783047639506868154589100465277623080668329246052185003800753216451826916240082192642795889972954363690004155289890754610778937777512740363182399579890714205896206528162670217479582177492928069133646462458159544609504525354148439329677704605078305350712620634894750071618171505233277931175663660473465886205560906626658657014553151451110486457758301454102551985516790015842980721144201879770525118493755523250270449523116102833690285112279849191895357612043507197219963898789043614597887675685488613454029542565868525416753144534122713314332402623062306653135598840104997509157572629220964992458487856030026977364250997534067876021788811623847285425618187295229008328133689235898775673998584407055490736214848267540189750890878409343097657127014858679075884772405136110442938350878694384005759627890825804727215918566138577049591451061784171836034100194420335771709278530587121783702275885801495826577738011126428595638084423743501161814289821275889315229789832603136535630775758839746028500708995979642073832035929178696334084666222862821171911966403455227504659191157345627276719072530089066448076573814610537006913323719469690679428331008652238119339556788145634892700607321601966863291747568949315011966614787604031622104375473537528211576709537480316598632529152996060560906943578491427228858182132601590514452120058991413868011989464680480817664674295091865955017251264426539960967543213469950270624424520291198468595650622434677254745921466334274800437102384420130863384738315390904768905826645990204298692291182996806347049106188790356165132722085364550581824302865103004717209131558460940674677985886530699632907728819124476321690219798348783933150602802663817304841833559826944915390096017978241250341652273780680681272730853983692180709060064640475448907965747075554289954280484898985963995751236239835190279281127734255737579739963642084945142240309199597295957662757553606301113254951557681497791605243129956152777898307435630913461234552370187891134224665620239182186930327248780552090774565506553466397460322125872612198707606552033925787636752029781216491290312705744893371729026284846349235080243335944580173307334520518564849916583898927563159014686259473929268770020407783071475334669468320074312009726618040249623061498103751177119587120268708098656568116059297883037769765567823619404736839193015649939821135165400612768357905829181654864265786940242647320761617348218381152067249671271745004813712355630881330029743206636699166401538972369087094298071975380378890663088465503469638743830565406459661846863078408281252805765582036515029864323779093161164053453456448983373618664542315021245743582250827088500906463456721854629498058681781288471511646854606371606206365166637362918944406985828261940695975743028999966706844157608326447350442481957809395006297657042136992252077231326805028625324528083200080065386851957630949896572572872865343467653135747551643230342767027822557345097009260018542384821535237906455572860256827537301760823323218690243870714056858257160636616648662414595783413319986816855059575373946149517007455789366170414712951777747699868880259217586648051145216338388855363711920576813465246086591169726592412287841763052800946554224908084821716442162728544692606514477161327918138737952307740665248747489055957936554609378329990030106180466793085908745208871768297086563677488105693016024382705552166457622862788926571910477674850214874137777065797161718192790453488049988567041603938217965701646972645657550945282519770234502228376498164966931685503203797170611955444309970275540172941005966567629977221330300174105316407470286670437888757805106916943488440610999801358451203475873223563568092250382624151745721725512180491227339681450969601258346143669883644625355488244673045458285327822440311139804471136193565158298179091041378264582175589019041100176169270008895468487084533328748057111833291351314818739569228850259095960914046746940450473034700497454649369929334074397963962027476627285784387746730221220971694638269927615575658082016577769782441418885340222956798092907138426131877443311057060995000255338109010574485842393538018552193580154764181788335550028433175101145416062846792490029086517354648438019651046523596687105077078329926362507129672571272444130627304732715299453548657893854346035093499607360062897532665476001018227659899666447031484723005738041711749439377359954521988355418012438173844655983179728048888611397445032118945597345383331589909338626516429201932054398394570849139271109352290094566217335922190668543712631809674965369593606433311671709480765012600654751085440690897036056814239746395018023015750566561524127372800946344784523984121650701456541894820217612988504683838464666260196552758721789855581444252751381109831551653588673316649327001497607367903359939664642033845055418431030360876421333302182599252942725707876543561315146360425205194791102824483406643633454468437775690121912603477421935267675749660171367710478259014679370036360839646725847908694492581601931998080049715098463138710463399883447823350323975624698790365579794624094322304079563649999510484736019697432374971491643236039222602089994941455689829918003971205164329256484187534040285641341476445041446649218380174351830372828618906818187166652411442261306081986270681224886406678264726271422642521458625389767377674638459496692472547878858671371224779394872682038040258061376472830374533877749001655076930967683836294365070421927315253154200431769472500365920150347859578860740730299150387862924018185207315602223937585255933753605036929029619391688165846539260564794038393224310089492983030553031167353056097159105452309724377332884988762036132909431700152549230994278329656682148817118216395454885587133454859855163088442058219950432564349656463726250966294835733199791879012921477859584035509811328424236006206420216523398113348310121748429707149497256995302443433207138553208125406975103262217495968442967280299762340370956355425806843623824164899340786888378999520968186202516200932234969921082384834633094729140253368288162274184732025583622400922120547928928961021819496525082824038050513078854777841217062147754298827066627482068054905529154006895625700432718422608991665661478299731544458709246633211937967480187528969495772087219431356966086466128736627174505875739233760745554544963795150597202413964041160293846366887213671328430046645839565823226320807666157514423470575568797879974460905821405900638198162775350913141888171867353050392986316319594416569043916870718329433343806648339543266067981192206965964732284025160367281501150801052366939165362794051998423391454180645645570921167111527198610184258452295503876738831220574683075894618824239388242047487383560588149194145561128253967884522365428504486520267203214007519494589081995895450230470367482803634360668686340158536587068495248698860109441057537636323569665633375778491646784193492970666671124285390931378100087139683242661682688314703144238233306601866427958405779571516074218791225519030909357148462519443131481671740397495679331147997715674323656319706173016448027286980418555309344010277248149776411390652315567636457810279303393893989797429632994179319555805855018147970350890253021245358206421357267083415382088247493609632231389591110185067636249825631670484213300532716217077520340384710935386841615136827062723991090485733683423785381603545615681754591564068332614401553211524861611214453504638379436389610739720330087813792079788249058397699824921272749159836597640856003953056130533277276424120683072999827171418355243781020971534833174417045362499437210331798376768740213428915517136915210879940055277627752125922249885315537688691905113504664602593005567409714594509944760488729170108663052134834861823159472712722317509788310123259722393260695384792964958063057710595118394645250900890035389807034848405567868430134683478115611328981378410561145746402978609300116137958764090399284303816326089787869079318579577395188304846971216128246146979680145180071702149230278096799191018511849195837475210457736393024516769106113506469146593971980560474195826981639688253355963974918481908228820386440460855550604914126584915006238829299055476926332991445259954717309480870371285263707492708449307186862407786672225268564508889289821798967000120718985348929614405578112662151330393140017456023910215998426484355526368676956225724695480612595569612283610156997184970949073974156722198779894291663807547204132609037482439571987075787455844917204753995918380528187769552626802816019350352415944481625237061468833834190279479207942690283053693115160732035034204807606154223868378926659962054508661950418975943260089312728466917073414400866427466538690406163870426166734279917060869671464047878841996151800044093215252723906274930668647797206314542447984117962429028680300462064962974113260320450865484688736780360118567293830266173800429400399695985274784634477491409429651421248958089037822238268260216853493651950833233028771243109020355219326397698688022507668775214051615502382910788215848770143067310905987524676705705445561722519660793778493144844383585791555486249804137445454736027756344570154854988167915443396854264068690919201431972453275486828707005898338999870807803433499360752006403980062664371546715302671290494927686211315786717579903066807976594282644376535843142791783969902612995316523663102131478055524016327242559230613014186366236895041885194951573580220925891545439306715682185283432695532646304801784892747779213570633095311607539521384089453312575221966659826588096941223404315602180610568742176186012121691856801248879566528777166962495559222996439751668951056780252478220008196983170288860832302312657383087302437887332896957644622731568926751953441393950829930811906097986800295887889431240479496232628705638975900556564438438962084038544124776909005343535613651431384360936622677907691282844216230301144769956418341598222303865958944679323442145291001565609168719237889792893971963005982942059514927742515330775724390804650722941857873196452270038637433814302133664809029398073143983245520332824264871147810726452950342714376617304592229774343066123309214715930065505807099703940054146254954323724681722835073619789997056063059810329365323255263420242103527707235888670128852756686275150270330401989343810201324949974541054105674708939007700025522843665958951576017253568058041982490284990240814973997600825794958714521604085504170302141844202785752680157628990098286955346914693968903659291783058492226627385951199701226902739217399620059341199024772299166398559245915127873283128618976166840191960392254542102858177511360497640974543589182632547941664523862080405254927117441710515293544298310996946306000447490175886021219265999632823814479214690468410765052703572526060075355792710086796005482405189854118222039307328420020773439966602838024590333582176822899986711849816298693013784436396472213793679603902149874134803368206955331815569548718611942089367775106807375557647560834202481309440151303165712111611288542761396456048599335275846711671993596132262835554748587529896335640428546744778053167992712904263988558593724854232448767372616480454767281712171004537619811079873783291002034185902574274398328889491044951348811209994402093086578844691617134096769453021227692556627322082630937959712280519316056675633370367041211290675765489022554073239450958789310524688869335743197161362568448151035358197363098697441496570536284252533192256262144550723913056924431485765248828446804517023483641939997933827513611741866632740699743377241983818521635616775363961964003078577332932469886644554818924183646327042650162739600972834939221905954903661544575435271463292942610152160303234867205062968343332483480921063848414814391456967553772100132524002537339795997726165606518722095887395990822880552860617988292754881877776130752164213496027972535203595765249481752814771522091098803805061096723724121962507967745021056783760880431147334445135363247671563627361488643651400787807429758474175199141162041812535578833960455762873805284780664500774271618346262670786975782192451737127344717245865656218751764686421706361607794740883916424352935029823828667360018585206694450420017987837195041830931548158044230097864185587517701576488556363130962403971061373950591917030185819415179682463152947312990548380205807221512613076080381328539213835284975339153948048871093939161471073452025517594879994968211823215259780870855767399771280985203560490999746381252006584761677144711106002036877635560753651452655268431531289004091656807084857288832667113611974997843091948677718993662409723191811574134967081847680716566513581030786701094685620707426625044329295933357336743440920691930773849305517123573709583066552692645398197924350978446096827948335547489100928703316906881549323758652806055950210569488114259948785509766630210850684337939517236781172706743598175505269002304676395046249527748715066227028923041054992472795699491020797617844997072917770987079974561477788405946555191583424404741437580153532205578797978670936766396988838328070733702776243525920211780869497195289784557062680442252207751070663085503693828895493533894969763190796961386993682473879020241984061936720898799800131871537313084374335622589506428289892784181911660020291363521786146290733481412364374329173040396468674371464223838758876434891161554967740930897008513679232814229370104013633784083371155940435245694325899053298933992204348714768012601343954865868218665045956255558214622915439239609025045058343706014806139101607633604518402834951172817532915946787153643661482612182815838315459074595064659835709452341607882672573338687871472343424172317996534651997118290280162533486529781537863207079194251215319249656703794508702458579520174829968023833264578871169902869514752021697079119202942685576793290606759097366782677142479889450307960648245656864016018629772673709327709948657164047378845210056552903490702279725486362917331613367382537059583358670078525950449569630769693350988437247240500672107476934715170511263076234480819644524622521287896823387515671786328456569451769012272296428050046108734414149709151848826734371146343001267343131701436694072803615284085187313764747281375548575448598283819666154646466635701309777071525009642448041419754311185177155125137724672864309349040248619005140369601342587216560126509736232526249833029957553017081852338986274181446773280160054683132110300154335577728059549672871714120160037588094765570983340542695155446748453176024996582289829022164698082131421851985510809601140940129747478909794165490519481314642239759315345748806591013377434936695415190891256349559354771178986471217515825610856732392637961890078824674825003487988587151852042820867829604012803804918316471056614548614477697948382935153827720974875049467087788766825276816861635762829385392131883674178146426511299828209008037286764843228677463213583554321236568875432782640729370713740976508677542861628689918496758772399883624526040973545089945472681846056641621309051778815361344871047219451032981799001967332236389011020412019803817320830351508960883673056465416731133803998161751961028777613145893366919465220954113836872286620181212600632290558560823609542561446808581108588741202236475439648265392031849761785578093229211662506119085439879057445793103617963978679140574962411135745084411079123020983029300385953667858268621603090222469269076830712297127492347159374415027582160541559222303544550843907314594271310951760242163933705394494010038953990671501819133963853665243616576065019227522235476243244886374935936428837100255282726075744426218801122117059106200938637658876263854673797109518366123296899386139795094383404630896357410282761301486677054676093138893247729728998124727738442168936894872590857286469494554768349111881599332710859708869363815553684399196966572116263994931746571194894042145835663295130615710038086825663789812384189366845379157434039794158611583612417729792248013243794044780882467106555815499500901669765816881330636480196250776615733441393977289446919704425447027044284913778822830411402872474853072826547765262480220201166043663238207559261723113976318085049243149366213182268792843608342247948228450051684758591394180163500387552124389950759355671971125144249555155420353314850540964987968720537445789058513608294515500697440733302930359152200835423458135791758493270136295142676364213315956745103626592499489353356039014395982716622730458532799271705697567190536195782257439851040153571894984665232905960132405567224567653145174387203679619684710410965248026561597962427603285826240267161479646930865774560871554467581547394342695312265864855360177920465146960728530978457729772165908015924124452383792911453065278411932370053296815126409369621011756914268109258870703228964863413650058307520636710193376167797900900867155685345887238382908083524232557164060631120984299533290022154782365946954496880393934146887355501648758585956710561293014547793908001948616752702299439317544235153251857847705743209596846544329894716139189172704260827355231309074484003685383881924586903654044620219233086800272541321176227955460758835916406868091436722863422933940219167728236409965729192011513386904428273483569129357319380723211753918900869693373290457078323244201953885020622102015740523966465810144856097600050542835020589266700467653358326394035769986158660870137199820466709223054359874261762417547303122397328108478110644200622643362850831095102814834480128213578714548551532149413312569879868685577733153399815997572110389941359699856969663409666209533481369183100601647453213124161664753369475691423944139993639945567830075684431119794241519393132104643903311177744164901002334650232406972696206278159641830783763598974233989777890015929231158023456685126948755904165155249026221373487580391486825484616470287517432396616606092743149073561844048034745942193284299283012478224198280255546545986094435466281790103065551901132840978794825684052613561084872054619597473138010588608054802629553054446869161433345071698933543253740574744955587060980508803592479093192054109255566932471612630812566762594136001705757021336993338444301825864831597774453664426115726390289736861327173461468728128839268196741478772357689620237049966051078571431435526775966290791559371629563718629463750700890314864137951302969535176748584345527658371870937691917449023805962922066242801280787671352664400509160013451199037047444676660559088963710494925504569354870693805159437637405988823130280316741207093719060595044821093715837047757159540310943564149940146959374431713304733817346884121921355302644891236292692556026752891606942509197745927502739862799359566089998304108246315923613022687814278487260604891387628740666900541390624585694065744081594438727068193375141178380446197798169770194045935602980914703443668147200223929269574979837658736276497662156818965820140367331146807872627333779511138612910649670416954430123383820485135129407743651894335121340581944334590759148205509588079121615691357571572882781341738060377813364448094557565153950916385904564599494138900996911665570830569353390587671048765791044973397084774741377246391433001658537804336274417418124907814288399357947675202829064141812556728072029611693860991060664119153596957657967228502825913280545632127239921008137971703639663108375998745218560077301278955363458511081643975819126403768065765462504867202903634824183203350672850432388052488314817215834172325463131236464121230372569269024518450409596779680933719170811086548568846970171308759861931482204282778868252247141124295663878855406308002050997915579017676461522107083368469325455577257474152847212682967761984432401864783474511347827236732778074051291173789438821255809411098466159096548999719979866213052983295111567485597552650616726372771586464214168951057115734956374848696336989036528488868019408079707694593073100402798788053075371830055221857407418441188299452337774644864985097170034260132598300818738515459512622926203843577054847599525043700235160697084776470614453423981452794126067444864534003796779077944072842738375987311647812017147167575195111139980446717005437484156074244310407942389766158927109201533296206934197623890127283381463835954677693987870011719083229214891071485543965151833065603206998493038067133525413961617361971080733311225227157362810197577687029768730055640679708571551843708488082505947981196424186450568374288006098782889669997796004892838609735652043236193313220827064776567766641657312386143101858859091412373925063086916452724753970862269231145006391921978811860400947984872115250511138119623794083755334360910272921826115869416105393408872533735234705665087440515078192009792763004433817440883979589262262060344877997330381577853381613071976879290174860312618398110434780220045119881821479210166360149528386234804183050784810073647289066988353146389995490701923899627638367089433330774262441455323782447582400536899633619697592802512093334332237589744773403713902910633765875692135296829603815668815295736633393672866607890127139496971292282464289943205753085356390568124456897881981817338718816521454494232415245375596610701481404926065061903262044716223807018173132763460284758840778093877679543543214111004542606103689460173770471785900609266616608712522710559912600317721641942107996775001865883808019313317288303094182851105519142463191685103185481438995187530400184321333450899564066769745928909502189987199260958992759399294179887239171757753572316460847092238863095461041738491134140784075995282079803482308868911187719631011437461569992002188323887532155085514281512161977917522410879369586144879479145041438314095131324932330328230382236908454783659426632964241959668170359200792198521017684287157078544906448150732793932065687109594219292687836448758667159703345016873991334601671038894756896418763934314132455109818347903059386797572909927085738510618568489732705623218430463603365962292661139553045542535535644332688253559273294380644950591346680057664602528131764070260166190399336635230056853901833692088178696097839282557973174978480565741012793738599462986295557038146165120928795159898108388988610378926211985248234829534932615788055174727780031330490886469073542729705979252478103159075888881685403964859798556874048914728819121476422805627661187480536556703708718497425248851930536749176546927441134604784941680563589525421925154534931832300869828652868174874870238502544929047449267893013317196163827731403676807846704722426487937480535540319506311005378889691061275995716892175345946984150805376172601174774900670757682339005952175971975505045201326861502113735014617521978743716291797091635248985956564109782173927679969934264146191495978072298871127099540547039785086117603871068220809093155348246872540166187730290973442568191780323568111061456506486590875699432445450673948369694517435753598021537579552992188539609383136813897875679587148941175336790696974975614896722561082760590168060701745544768686675401672038596775447971815291758264320802446761072582409677863134376936116736340297225195579777145945847713394793703429616138037580204474842577994183980909043898290508922696070204656585711403767592272211613895071940776976632662983879136912074082038043006047878419281647054605885911404865328239650335423925253841576372159595948725958646789056861004485685295584633976190496010597414062638354736382252726918292653555867605228626406828504230878259158874176629385250201457910526222587684463701564714011348447865215185083998969983341792310853466574631688575149965122532215908778839717466956863192654330435626061578325512992713796192045744969440060150068522472665578421713327669727566789447375779206357984002056638797468963535740029585639901509331541382948776335860943189249163335757948837929326744788567854400886769975984573469743822359135855372788555563602964861277235495405221905225364178293867760424519099349249775538624099488604046888972795113633091165327962788730494539090214483969426360518129196640401674215528137488320697036164438841334661918539846621016135060131876456110090818702164176658524838355362939566923236627970013966991070535150726079184707239743324730994485037751403406349928800306828548646028266153431666975370300826486801044000833660795792582292463127227427435480920096826140321114875232140072404549164138390197312150263604904807199675619711218792883581325781896265953047405014667320241843926401010660571559843708500242446482351162668835599665705447823140605571804295891347613242551157654135336958396764192705862310360997470860339031196646550378748911136389694381876859249744014545433991774566106344419552059960950968804222484610122613005736559772871417447938631089041293867799131298821881096951798012480339201058217825360956205901034928819069844914079179748759416866152160431845963913716725589848581912190585054708476292308944240219846195553397792526835665826944523447058196891210843082940914730184072546452760169638424229282899263539153590486464681601071082562904333374549857362211789597229418988006410638233849181482369939445663622063674629373748988650516253940957065329513796486647797985521785309779001953204284212756951660990271921145313368395832980681990704347699038766393413238501859306467803306999282990892528975483208971685721304209794897320758000694904928977789990502398642373370137463437280081529633993621320876446982231007640194167520695157826166924696407046163448736990009845903397282808866076532355305233634789902976163649529035738815121229353234773923791547254965076714603176387452302820469320439049643216252798215045909186844226916047562414917455861459047846621495761454508373488378052896945311100976552497013739768418545272677683195692353271389068222275850974832753854642087025835472221517770947068162029633624069904664439474858665239211498187137624358740633658648134412166940202141488278417313052088847701928092171778142745858659204652666236568133589570162275848329283630692367264712122409980132023436930590433961047153540266733979190019945222242859602016181573704893267161146340131248467659777463093619658445517930473232196714833202907605034096503729885071785143518971834118838537670382818598482843139142029168179326981103893315033061316895749353216752666404557103283864920030583462855709009079564526520230058163484679544399790938528714724055047249002383648840886730681666386471856208396818378966186313906093268635454454325699676404605793556837531886887757986524362641374528073843184443772308916572795221498292680245542640744117049359279230571447343648068787510011139976876960805162680748169754538133004372736909098806534569321782407764332086940972070454362738011942725505349135264303462057488761787079007667060166932486930735657820805387116060659778228338226711736736776212106443774487992991429110465224549252939391410058471740208398402620491353869220473345606728631424764047463304666904571840197227709854858491150877299210664149368956034301269719080181609672671565296865104889875527459948086983201772139655656156585433160449965329582757201998666281871185768342191524641922662103797970357239415360504246350240092119631390583103885668524490448556095542290322668063821869707925375531684797117662458889000389468600101593023045166073560767601717554016876483807917014556001879803348051657084691162268929483217981936592226578272601508722495771735633944134227301500170617134000681461688636353987955743641002229921828660831158545352150324717085668004434425134142605922579665363454258231277028343184035118186141526095962538550829296962477940138145241701697063643575861275295762906614190695293260734440524888187787466317507077742992140759509784568789313512749296039850558649325110060840624521370710690274569262461730948573511564471976478193119165874545139434648640289668747854564319965736171290592577768259882919107882748815649493610950343013198804784686037018884610957164214683437037840348536215836944389202335101107556691649580827312325062940060004108389221889353800272152682405767378210082351044739740971136747980397185019266886138578840122537638340601007749574405487951488350922240223478625897082653631045195067200877992126073289111668013225132179995701081224532245031597914440797633102200999958350762741672786737009427593445301571052580905772819173521784210994776678118072610848952621785181433297590447186496516487521698173539934585150834999593911565852014338149979648021190186481805462156332853842620600924613513911045629982681809379522308767185670638952479273546023418464220689073236477442895678152361945216463627780752410913685196006556484463765727954085363290459501234060108279205181669229881286806094375070035471058040329129940609462029700284416033334021898126357885397187828323339677819446430019664894599297987330105968007167426950593999154143549935474624864980301564487360063857186102123460845276275370351486237000702820426866849590341428930283368913259771999488510222426864860972747319603968118437741130377675731796009676096448071885618959649421136133268855468970944668125944003589075207974250960494808088061740295476315178249687369434858852938936526114410091693247154318473609257563397268896720848026334352074995465215475979096494438474478326336085051747078067091331042932456100378027564510758036021185876216265760334449740804835161994381220903052987345394224979986723046581323149374161042725895630173766929944887067464463304409942360308216478379143788393608584722827256412525700850581256012006851730484916577199805557845734360773624104119298129708312940133366600605959959495989901618980956557742357920765856975451188956882992302843660243566765758429897686297966374173150075456839651100627859234660821415162254712383923800676744774395898738926104521498023518400429985481409397131706132816917670409218168080578828474375594344333035327091794624912572114796749889957281141572274287789733903664723404572385494508329066939861936189383276769591748036779857851323817633217691897051198930261600737905455370474332286149601153290145203157429785639202635881760041841009720277775477741508534083253612935453129918946078517760857528558527308870728442856355829056680792784196955428403136266324460633946995186077110821407971467352323869643301473848788994623674361998497600113252199642728368765612146519849875944969663431080927138166033205078167482395405866700931256120460228351729956315129243297873810414699929496645074242375794735993638660552311296335155292608143553239330486696860926548026381297909880647401913407780845673808477551644280269556495217287938155396086732812763416606971747530772982917752089733803196924081517873878141714477301786980116349646278150698728112047165437405472845805417223161901020694922845875932546496909023338149125860784768224181748064308731625085031214044334477452254186601858559910329403648296983892026315243313053199383687597482967697308043137575260712649948114906864708341966042712555044225266908204606048598375841687813056960434281377326542536987112397192202138639529917602600918556955400338474313104869048427602648034439366225128184535950250016486833798786992868125908344809630699294902596878867612354984157759235789583644636336719926839642697080239300664597157022186780597519312934714334656457580007775174592850962239814579486318962471235510272560012788899528580012845756748620082623115852547852735777830005142652816399123994961017674564788872114630437274402179417984396066294782051045838198666065419392616061293540265326126508747155250522801569424323440154295294307613674533158912340115871897187282745184788714938661943305409206776051046079350768911811480891551958927135421336539776526385527307724893588061839602659194398590617220192600072764159025604927243826200993745468454331121955625386573355791368104755235718611889281521783144018149110480574885373193952810428011904231384478092213329293240038621855776480528257858078854520033813650398641972191852149198343392568914894386378077282595483304261281714437150627976489999287979451321206266902850199483988546054358276983564640899442611962203764179079004223410747190500918274904810334910264659023707330409281848332809728457664624638719779080894674507434981612171419294148433419096240227915588865407538353608709388100707699110719522196847425401472923690651455647092053329845190670136699273356529232310687628001739781560625640331974108907581305388372926732674410852024654823630535555821952038152492535228945312647303773225443480041616035695253261603505344636480496371573084551588329359982137944811174089156813454602675119577103688359098162810735065119766114845126353066678599254323539389894307232501593262535483437268383893580957608323986041426818990571899779481503379168626669200322836519746302063826675045763283078950019487269948873900114917846432048154571194557155368652468873890547577635798780961597771625610202040909149872770634960562819234822720985989204878920556858094004230594807663041337556635510719037654077126740751144677989798238854486250483009277346841103585444421230602011148174982566518623736244956207418949591702401787710638017565432625230788130159017006431715756464286393397407791428002919701334462703794242483677136799763451925807129917850219611652977332844129926014217021783037479181439841756982365324352253757489576199944518726551347996772034542630452326173823269014650631605389161004316129574692900556202191757600933428195351315875428106782695254137666031540706305817291197331874914801980511709927287394605951524347576895281476668486508330309623125854856707293353266307221994160813643116157791405674283694558411669702304928396406622698297503657646809470271316709909373654028818096406033926256101539353056802838530926671981917059335069417643002964474477457267832767815564399189514462731999154955856802478273443773813794213860140590240366233144364834442898992771985281166852681558484203049354184671855297906162846627086163910610641723849234232554880081715662237326453126043831953089868159950860574209490321068329225796569721544368860570635468426325395173826468859313929218998217181342403828151723410161088972457927067021181426659922397490587331186291552656951211857534710896098491985423741710132806848410621500483640228629362052356869453420567680059074516741252724816390400248831954147384774029541685299482355260190653927014666283462452586904361349009520821975362894048420594078033838170266694446100373568190202316403084557989196714071410728315164611316491689259825277413461691461850617144249041099087416865979448587322431536482062826532737066798324666324292954203920559823008412077202057316921341403463165650295667736442376973190942426300071688902563411225668220002777266008782426771183526412891228844415569366350811680685791541212034635395199260000588072074649187479650294740277649830383915083232416491941756972172278163735440597534472250322268251084463009274420163705017792086442831565168095834419709890854545973111960750763737424361002549920416371817053674266192002673880221889226137832138005711353464176397757441980087087775935520363924155653492089164253991384921497392773879908851629858051912715552839666159551933798898925417830960728742163110329475065041238930928452624988929524873661442205244805332449389659003485747330318551601912570408997189319717675720426692276475591041989160855647862841957078050718211120163794967173805108589780551625703939608358630089469044886236781206248220260012736444236783796678866231122677983597590261204389140080203444235315401681136873026426104445723815453773659936071211407492070946132076839147151355972920541125009580761552729865238382169687729019070489959291500305464961900594401883719415546976669876307711865131288635063255149515510120463543927632856690345484153349874191150799724378722680532738445227913837172889724200242056853453254208140272194800941690653009260336291216712500176308562045030125303600577218274555096685070987363310844759906343609897768650251910104327869480441411076672141856368922752996751146366780708216640313098654388617746178258944270350952648413548883642371392751458136008744379259907138115624992873567078735946646432819193629630016621760162203762292026910545220492783566556299507333274938345563342100831022183531372812939364615993747127921608127959546732687593672914914918748564929821873580106743764887482798745625746693746654057545448522022262637161703396536121874934134230709283676916982434473346447414528910671583010871442351298987242186432446617827629896979765430080468529689229938792851686970132723322934599747458053651102849995304095112965157548613672716296780327074459182252459918446943225704691371986770863205135707616361440655359104974077339477979707944158094446723020884753664263594963501829991900233722504568737012034294191175541560202518906635804675078325057338168605231488697675800275552357047096034379922106179850357734365991645079470902265407791349029654010596685853342725078328089892353516406566124560771034290589403421135675388755919117440725401071724275147814685857421332914833375687083831392558762954615272223097468985006805649154449975658638515733488862870035633127520913801063747932478025192005718918300326470741364324993760121384958704533220126609842736818358961518374787851915173513105906680192587502915499498901496656897207490023389558793513556579506130133890011954498635485113287280951126627016328465406669842054951383117852018388088840483807064020791349343789764496037979665040845705606193880086934147019731931595043115436924296597211659834444985874535138858537235294130331533235527896736016785735547012585141005939656959850152013779226240725739602945461147055246610160502050025091406929098880340519711985589505385496232655958840707042751938159890908844990509387970957720950772250197710969955689927441313457370831432578175270442699619398407802669664519031425505048960140123278425200883207954288699071071499755927651012617249207652355143413492436731916326780655012370505572271322090420886315512516448394233960675074213810554638126395940566769243725031154851133253388749621582798622563512694107726353914998683002433351868572084982770173506829024435891546684315055720859925665730555822087153511959043894877386450777768435808301335143909036837131474303119004965416433797332632433154269700066154868143370321889495299299045655168653686518227372805371347477229460516751425556262110282301301366591372046860559988430986812907303139154372507839508890046958594775052835209645931709905508418312033954118283285130617232685460655770924197371494718393268378461605162647066500441002120379906808016482524428367305724448030801007621046061664469462488499201815908685420687669329183175702541776460989213849549095075528001104847387615590647570195839667315737561063683193690837459283686825520900735989903439087335327566630905564410049934305336807191882864014878726153509399423774953306899580899750838841505601731112053578428108672502632405081554539316970705224046072714978802408307336372707278057107810108240892725484816571583295057241798543692956057178953194347880730045382893654064331895278089016612700965389180649458608123784741662604604301420341120346686775871721390816491636984998240023404243964370423874072276114128199691998071266498779583124831055412332012522606788287215670407600192852803193569300887109924522597293506366932121427571280268471945533102437858349952631076660981187976231299864905342577464272004074225138587921924618964540017915900036539608109652612816747503012316783480243673002158700294854155618812724749665102011547991361439577990347956911949771795038461551742499204298986368171914741068217546131941772779446815245337680917358165428873942758995262201352464477122137832533315816913623980720565353494177577494315262853265364507851766187219218736603106833041198197355661559996349949682111163641703740576432960598838640241973034244755324816184008981254190639076460378650319490484655533535772368561474966307721669665697814504846006839006790165942758436052344961756156105786992039041784836006916586038485660280521422901464738409651647016853718293071684283426530861475390284315552187007826527792940543293017084292711727870646947866953948504410759558813519942238834344220541191234900553862871735297106873137025573965579601523329172262254308991705200638559779334649786745613811520871019003318470458657110072781803127026411209212825694779674925292784781556444779992995201858455282675874143033117132323000528027493183997170326693415409007743095172454965478262561846601748273935905831852939993037744811746300524923968128757203435360349836960410162063163982602944886678318224597626025811313971852737973378167713150717446650829356777240084238987458407311845221834194796451251737894600735971313646775024856382282384287814499453303349733288061552886577513049790407621327101134007177575376168179556351397184695715157832667988621676074510744095268941157674037309598949289543910597009965165405605719378133805698679627601452843185157332220640043609216147013333725023868654413268687918575859363976802630224941810197141821569899102491940262219414514725250655061395066105337184834532143042049686019868887739499914736290052545316433118828404287059159883542472191122120782971848701864023857099055158237312163391339266919185084581137243492043256296443554001969697193314492913251970446861606545412028843542887234084228147120005274324305234370452755455341206909655694003285440150161614050480823766498077570372289873967877587987927095559796201322385922780953113565752465477117809935698405952072177189313038920505673849848550050022112986303517465520078598503430904894019003683043994293045224538930061608181978941507674384667202486346937749613300800195025918038002828996245838891793486639088442513788761125719186760770245290762858181768533879997072839835197334878880333956247745301469670229305826067078085413493404131672985630944245117325323708402468719661607672133270492641972863818127235372751293009479679205481530346209316264795006704696612198986559773723201514906501886759554436930478013757778783960262836918589481898984888215945002746791713169347066982792962910292319907580356670631679853352844737665038521367391369760590838235590709579025670014544236235587236280701481039875908977531150101959443243717846316744501771615138219747513161572811216338070101594733203613959963137234637218356281853915867629279714646773675310562106470056526923213802724662592452014361272814724249051733255688654564683187751811417097104762645993612802102876006125291153577659980699718282789507151616615908535699432570329810868772612592534056701751781986034043232250821132772937086418480531903852479877293643941171657163257076252978624171486409761334751787785609771050427062166222440590294415926732251158831944652370271299526751858500064504200404244519427737563603308489977156657209253538638457969832879778871795217471601657675088940460177563454851735980628618153644087363278989520011785898892257412456156726825605685463428690938317213642860880844840743091201653513661518459016485328769944562606132357244745433634782984809837698832172183114345343179575270294881638703083771423758818070330630940418203026507015447306863688748015866175371777363649877838364260755919774784166830656341657689613451855409882523113321973403075518267834841434924904064391908870995066817406413729362476319975361753612489389921332008489809109995687520383311185093249898498028925604376382269681482750627846753737322333597811425136697797807464828881323683956857278275356537419906043908319803036245697690546689532673742997823088144793294061633004010778942651963963210287174370453337098446489624741240759095149154588889061508139818403058381507431400280492030453271443903221169375356393936111583739484749440213008142414384118918267829180007196852484608006724921955055204176831322903236463706484765870438789389707373856479881290892804146832665359259343100851431696012778443959896407992663603502400566022281473052594841093231733747013861650832406721080754443430302625213516840667192328121635366598870398896005470543907574425440314275070062017747348963592599061834511157957142820167400002197806974089395627093909788630604211035624805665158998993751237787272400236317755631310135514193128496611231309125237928603617668478403692041446281072407906818610300128700972139707643290350101335290195588735617894532258635096938838659412908476428194289043472781275434646107454549051992908577505866226263719496587715331195808290400547225213214123861528350985172354745168964796288603681947016675335220195390824906642550803133480279152772665224613028230399355047876670344013021831293036515374963875412726718025360304709450295542644228038976237798626813641796520744470218638315853965187173025903001715274193148633069460878459141162062816300967523231564526376573343937287810144319042100354586053510940825306921834519718606045347336585702823875915374133073021508298876118900599165891540074999178473810520106418133971003990594965484071348803704480398509672058479778420524464583348603235323767881671280388029142204544679198915562641902558471456178809287801114347316732269120791327901461499329459489941087178462415262244917572851594385626681750340706582459010339056102539420161598330860534282116735808924149996254619640779946227185672325994841995902890715394062298480791600274912388665520681388048162448877986882188128017044225369389412317663546003072011031455782242073052869195828076076580010039281281859648101178846298769041540296884896651555127175229401578554601634182406261724629364487274467095458900733121879056981867965787570730441614091368419064918600712959107484773963835891483095746438398219998701737277939159034746471795003369039139208720888899194479585954205331147646775950566365080153549856702608836410515575486847927005141296657604227360575800753855789657144350469291060682514417084936485774595622649755495340026396275886481160597274178940419485612689936647576100760990152909639332971338318407411530793828786021839969823038908550664610723251725746915454227860365892365527368703554231072158848659555924343464719652682391933604615958633890711273549546259386364556052115517166310206567876815659817766328739171387856117301165311718873322968505401745257136770399145098533492875165883874663947107472906250040575475605252240474758802946824906771914873336388459956420590393682581222378974858729114222118465790954434093846199779464705116157677040119520076962122548186798993899690939243605249117977276475578522543771973200084334494580985813030356967015821455218288588935479708152166978012340948577609774340358546834296637741658712069898693887703775865698293003081452474015083405294961560653810036121016763224913883476902558035738802295597856467039672155116769029519450410668840406469227995491216559228449685296578935948044565495305976101604878403261444313216228193628146846669560986142311415077406272714630885664440712289339489526859030268194898706607260504102413358839021876517429885947723282985409331392346929424084759325688176933692306131850876242382556716528480590804900821283832885339186504115393130865380293347564149272070324845176376061956662672435883246197779899899498827640051801620965190442020161638304637708996685945963839462449364730834648258984536583230588548854780002211109940168515032270582756273474035591623136895664365156659354838780459271350585933985405266702446378317252075657140443273352068924538101940973695676855055247829035928146766309889531637583492559067284477966319339948677429496280587244515632425164423293733081566462361843669218436721987366098222978209044318355886150342992392734402495231441951677225433992872044307729800666898559583996493460267422790591102462117522496170533537746652718129167754586800884850289212899891557330500979359514908441185773935515754784160919398947144965784155283942094165389658828582021256521457507863518733907164341965902120296945385949328645886112496818432893269920534013042249284841665428230448108997212140727648159650238258155355786877825912037576670950596966134746588093106690573482056348465009234179374640034683860258572357831859502877860769772510837933085450021663429943916959320788372620214042769191740263885884951057378086841292325842970860967881905872614761464543580140839782118208002623004732753148677815711602332178466927690532517021435458423187389086724166375280215128627192703989620712248643632522172206316751355227291225255212232729865827443387332286988003542381386902267293036650716760892685376561155257043785490684695103484277530940734299882146800129852693591373620918610926549925785746733170241028371644652204231295777900619631297643575482382672529376552079281967511130421333529204002571341856464111938922633066506058787794717714397005479486902052080511124429397548496837826332402496152881171837678909115983584098846840489026882211707746142559575102718502507401748361959423762269296758264851520329339695087693385538087483183038726755102589310621677018786107664369781928619284008560971047522115604729370328767391868367858679400922201325481071748768030666844534058762556530068526193683516620378645967534411379682023265302510045908136760541359365657596340128571999456436519547436050767680915218338867911403597445156357585663226435594548950263189154986139110553942287952504386869214706518496007690553087042258848526130176965106188759730936008596616693037512126533571470846163737927745844879948566312548252759828938601232178824207407763055444121358505458328950734818646746279422200451917842252886981486274916620938295859004529386481230869607571294497550609498683257070676136039341598389043515710402895767693256650484711462610982834367631835345487787984444997627496096371376206414173413785873838816341977728669586922590762794517862686420867358029431775792977786372873693482863673976230199099841952618258450900436637655658387539927499995671214211265158395267674611775187351855494981071101394336202034797757730068050116037623625259857769581633141291698398379843375070943781829368034176429614907925181634896678625175353484073581815298184835795680411934035003184512768918087893244842439869978641941732199880444486391395034186202137149333366506106936557551758796217093701318157010867961042771151513507179555465534306493781594420172319287157941301716149915741411407596320679799835684435592392523399862794946796603574981686819939062960528961307408311185257957286947426024438990175879946059667068194399803258170444742490645847418253168012058891605672063775030036820719352382310565570390322407007298463321994694911820554954743541012129149904189382517536078624737367612166317634934354262074520684566921390096188646141141119464641404224274952836784622480589359353977076744069253802455534318482792524893595521386211366490506810192746177487580919421504613924850391767171392160753511471503808959128865238607768849730919705239323177639923235272768585459492708750156754427239655050802639396051667332272895296802307022013384968362224943883426646398228231607268424171719043845341610112645833268257066068355468546856919162421536457645614546035748949538975834532511634031431766358781870350664167980670848188414972760486646765247649416005160991207043707188212729936201711080979774167342223823186146340857248488856197784408469111354149978121383671848093375292698583024440468247955548170297078363324792480850518621728803640137969598682401439802640555299877455852806270852482840952892121173916721223178856999290473490307983615228524711607335011550519107043725433507688600823817792909219585747879209303402038824609212615003413083049877725825295705682974979417661344251618787001805142764111287447612017450772948795806761115658293282100260392235803867601535260585394171182109217944378687509263341862425048924501724369361128444736664116559342810581454239535008828424031056430599460781859997607964239708346221885892077302313362494856928920271625772261183944896545193251393243147385221505890388355141201120971502882860157811344408002665958823905797211582119579826691709634950672448339383730701861335075294237863814363951218015736602490661083876200514376051974815801051733115362715074863563948964903509246940453113991138234333325091835637339273346893232573114265597145580657445838908454432297956420566810822741142802162575607055926721349291619231067735362876956187824534580260774367282543022879851231346214187119411800639498124588759086130594358459037364118889611483551302720285338079031194357960175679209115734478241322628032237146843158238669130361701029601201660250146749790806537599171337717391780734437595357725703214839960349115246788591786429308883700397757730950835075269456563565724053288037404636825015398049175766654929669731585396907740732030194063236596916805424303684948527753514503596722211466412605946581558105989991077793544805892901579774780798386898725700422177746794659000295381996898160850507064474965327610966036024213404186614254747882756321869569863404004521610802064444398622820074622989176466411755629731496438397749721203639885526339638699523753727146731717592832755828014426055359458857212104529647168413046664647572945569093219856977358488703105605097715867234111585645648748021367798986116251035389655704894808204107408661406317404712657014092939156184734424753964704900202379162757321695258341078391897674159489835666348039158571568097159005262967837284693857730715090279405184428260767264414867640965667163839763608612866271883194344816362014377313565126732490777383996431119029406937792867558278136605314339865964261867752421601477830244060074396318826071270723943476432347489661578156626513072149144722268250979939349482009933534063922233483382839114580579909015520642818570495568074880579374909123297935011908451345253396023094297310484088621922599686160308282697095274948953303053330777327466004910691287006350449876493013858065702169054013798792120151882180189958490708992703383774916699857846521230191783942725498430119809550288140371082337013984646516769511641338570269433650601407435471166731501923093159889700449426997152956884401066488014014791794754106181346841215158819361990538174345491849105303342967345304780318286168612611656605903095929285365638463957370073055419495848190112834883566905931266408285339456505398177611765606707484745823182127508754292925381414194955085257141186380098900456572121888114983890639694176126153259194985233646846550013175200628146423168871203000093859122143760643239879672254554035586543101063406304422887229010167158985234841499238871609999496153075871700787601594944353297536452081615126961358344897276890805645144351808115464991995687893152072396038871913575001473545440075484475764106559046090880882448986706086627329528727456597021873991239098258197461372382921914117649666691142834885354420969036211770525619907714326747299112332152439936105977918872305118411839851349858982240881260581443058973085266930307040386006375943420529879828745926725435369879591435943072211425811302239112504064414882614334130076594856536806968137521099029362012491642091046556338299088454543765946344780948230671314919128366162798365309122137936450458713522205580709212724881735649303259833761479979035616974256374466806664598040961345392040245165539023166724204135199018023296501657843340371127268353532098582698368373318408257828423713410874251722636883067687595785505974548973693613546984128513613923486211301879262538523504564719897078156551937557711368326118494384591384898880093187905792819208566056968363386832140491346303301580361773512546182572413292691276961734485123102271237595653855102739406000026988646202235157600462209677363379744845690740846150976975270711629620821808004675723236011372190766472323044096956977767884376968529134826390357301754734115608730574749059294422169701389717582135487151192208925929245252422872119489610319248328058041153710682592244306218263455405846287372446869320654918306925236814894602953909957961559814024227377421935449393279630926906774239241563708248609160937043699558434777801909221559188339149393700741056949578638646445947752970515702879178382945494892078649127265043510741413682607129847371970911581055962271037123945550192028809479267151057218185933135499973142917026156474146523237466421242543636914926242569352208983559632292118712673878808653655563596936228454751595014223454954412297881257780810591227431798407873246434229964394181733512801742478827197891677562137732075043287754096186611310927427390411100402990934911498325700769000344769642200931900978421727540636349355612046795834855408405739538238705431567574924605248181938060739848399830972074289607607010349347485940436617444283761827743819106017763867242608773979761126303755023738710338784029485927158382274422277575952376568554578454402305535169738998681644495965491546741880989449508551105505434828043056107172179580500736401753352837496374813504483216477921744258996609662085222694750963390233225008516050838880800112719257549001513222394017206599658476590756857647002226717083732807782501817806919301646425548912833513114446092168295896650948427144700805363437801432552904861145756014429972407006677605150956386630954315636912222499227145635722244650234013126591899469412814183439358670843564082424506473470520847837551933188053256700838293194961332059201445988677917678352094821555961961646080073208135542159113733001244451142040737971712001484839869140218080233579996306355485581261688105728837630606832245992295649290963308647180214161956881448129081196679460124767072330350071829573802772643462514494557024614296865893233497770448066637658554436450954468239849979604935364879199996029013162842984177823671351483082844015443609040766493752566395945570268659351900557299574829650922230726634453466092761963719742421291807796718784501924432989373274404249420918391642550082793580946391821632075499669838699723584716711354887513678475204982927884897702390475992024208606029299683277186869152267075373776308308914330423067001579094095303543228272125053374304318248321553390599579541170504822149876515844212741464690989369026929560424403312406286659505303129676212568401677629788698553402350376467799095578536557812346526118668132030273580218151762686107130405124082516951973909863728008556465495033593515285294276870931946141442329387749847054888828757308275301637452879451202461404585310558724565987591193424651652749030525379928910958679970677504251881595159076056986992813486006739375776569132540530258065469862845899493717763576926773759157862388432653128621284897419351891953338248466601260194718688909205790847180999931293289744138127398855143440357059277507458939645929304992998026912185651383770483104889653710936072614760508031601256097246810221718957680766752238366699367482136402082049622873764774474175266389202104265622111623403296184217525643461967762474816381952673996765915873555953692053861613270307760433981627360546622884651586956582527864542111483765088790256913739946434332574225245742963196187517640085236001861648725152222568199317540156905800111805963234265947658992032189104351077246504083592563774980064281776954429137221981105088830603989741677983315717744387270708539836826769213017323292957561048109762650740541632509030048723474358914134056074206855861516069131543741786871098318942448374985532846956414295355343763008943979413576072850993000298191628589696813431025628580467228657280388670242956252037424877741304980221431946041647585091664815729339203007468529544597330555618989782286341842255209847531606008118085812249066984837201210455205208900925147948044793228352782214747588292085785424738621834904022483638529738060074232665419720840148681011977863617271794125616445450379261576053632346320372157437736586404663902510962111285015299551846088503678849626025581187247856185730741985845914663297188455951852139297053756230202960753934184216694720225570967605587231430976552050709518809017732864344900024817284260972734967796661326416069751645576603992888474688963486861849512300993115619666130268941345795462521159734899215177791932857636536505407993123676764809790182294018257862805482267849825352990417156003737976024635210439414026999943580413979218602100403372083262728023222630174660142831218746438639476774747612033067840959408082657411133995387454926283009506195400778130072821733367566594324270529466270721730708175108276347095062386396479712129262490521397960589528810138805316342969563368294440436247822071666484454837516972448701997376768405304956065660052923531760538365959992479250768322014967125583035200231580005545482614327484669361720514253220105679674685276997453140298589646116703449124670826157283863806529366385026692355755244409967004849479072350110048686188860609499504582226301499233271251160049809721204857289819537154103328818727373702239218966824479647891319660076696925263140587819991075573860506379028417978202008669524789734662738321913394020978097915296860123622882283353222155371566174735151526940449436868813048263664552849492915502720274653722619054031099856061789947711805554099307748169775693330015326696057256879917061441974141159742940915110391930274508070407712011315656372671651819145175056688894462615265813352298669995740104615967268173656961968574320898865438007195217197893214524044978107875786017904071985516005712437583380483496794798754478183035148787504261255026427247851062862580371299832802403836676555614246295627210736890685457897440135857944010743012403537674002138989499122156494383691137393972837421996476917941884932341660448502747266640901984803784350053387069920285689961329992958497807589637117486303538193225981041761692320061515958150283761062638644761459792628631949355096780646879744754110516118143151054069093682840966151800173888591919350836690956405710207653643407739374048381549451035744201255811538716797408758375845581292988126852077949867808194063874725847284906496824888971234749509458553425130084628532267290667452864970410453399823938326902147795208752001820216109181149893944305597410814195373620495485926722716794213231949965013741587221320185447229957363124634488726733643626158617950845643863699152781656321698279555023763626932677701100712980690766202894626888554084051549132555447891825565890137374466732567745737574546366155285719690563367665943906751274340022503003800132926001667562516651028916728384344355340404930876719849292358766161040677364052653839399377342458023893683184443557271927371227894936207668294907050633375891672073274558097400567716708817914448998136265319683245392295734214427974084040927983498405513844464348472890188544239817559532289492968751587717785050106948556174463457144481395841313858891154365202150565608130688285316808642890208043879121615568820155152749340080360348997590723257820703917067534063128571567332667121189828761473217369222685928535898083298016659986164725363506390892278221437821001677342007134309454454201412115079899715948001872608915182122108566795712525595791583436138926269363014591989761217855345039014646974328530205087053762112556860511916989350423748712183238412078162578727697817443141841112323183585718545806311124504756710261150665384018220990662827422561905643741683176586871740559013815141810778068032525814107934551768902889542933601250586338433626831930231578096245222165096476696488572136644168265498422564054565790755830892918996038382950242619688869276342595121572058456273796159691921940673500475300140257605406057466966032943014905692802630013045376284473503951218833237676805556003124284291877448829817238733951411616882653209827714916768338845007653920535226852923200674522011095467885945014980456485103540330949138583119717868733978065183404690882374198146518755449142155954280765099156507803689354013981229628147281881771939387960736402356694663210886216456641370799365119441187710427937369815730473413894597336530199328005519303273885918116294404015416280340738368315710286674179657503472577764799002992430502513397090880385656430318789003648641707374347251420176088339951218622584824038448889805992516378033869481751013633026345683359507277268086212254774263131327970140570709059775937758721963492689101869487649755605003366214879015459296082951781279892962997664291057725123341881063221366243950890223034493217550809467056217337260378642372944174302151742311794288707496200543835133865335653232612154754665484381323328536331215127639799182611520885022165548867757499884497578245416505957834132693133775789056009544462795694767797842794527605523883752123991287092366967820331722882853710114337413574827879525805747150794838642273255707494744819764138536714815945890334444226590991114458328337240191630031553891141222379898662511269926091380820853148474932844203644337564906824267978553712707363185499842464931129345084829317109897003535245232236911524270231748619674893190942336944157045390876203815994551679913179410103825715279749856676655120533811636953112677921198365247380917540982809011197513496977287744206453102871344196546965810947997289906827674806165373148085224255060918072125497154246537166239337130663958010432334260048405695002964811667774677920990993149677110774361222329307334590142458862239573160052252705299779072500695079549978978197289137099364467835258384455805971461564348201915503483744443950842867491775981130010083290387550460508343389570497760189299066288474268149714929607132847402896266727746336364526434966123313858390785533001724169229774282525327905827385880174588009960410389822620785720829112305104889748674319665834817627050811947982612246350523970196754825619420743731239585734337330719805928368750771743018938966125514615888731502197669110336827412235292594177403907930803824787003487988334708004886679112092400652402061255907969358717697936700349962533916611887018538280599176253539543896201286028029281431005973178933394034836776770332567053922290975281526520089427579752245089602143003630717527021076212346808794742782226507807977528946678276489981742044484310597502424395967045343696549660656062330551542946747215838411444632289929780017141707560064757334067735488980043844167951675263005947484641093092142359742170723786072835698830482511605155884983450844704723433276766801704652727134366267188165438938544960229997791631646612287400523684980070248961836427929539154219995808846240927102550461338318193983920666556068313416726400209560704800493490610824883361714732455974667069090436993875086687713312944733268274807741521801539301906223855211774966883810876263916505758177818451200616672911014430099193157272380353028588893889822111725534177351256820255667541478939975647041506266241685085174005684991866975557622880378894058842379434963089209618641113903102335020011285906020230609732992570054593361249908657899247864352453005271330705025952905310616583378607199729993723684930285128045480924098356800724500350719992568241612706335827282464166600287546737237498911429424642656590245700101942844436281509910721040671710095861894071568366594615094079838128676906484243005306802536275243591781484324802064107639365750686105033707629678125683182486727801158991504142138698842711873771331532988336916824793165500447725641496536795296523329758835944522431865363659689321833908557048713141136270997865150192985807619826543952710907709411087069105108788345696093943791036981124058872487326423478796808507032416726999319473712314974851342713313585617330530467904157643181089578717478350110954678849302443821261153236944739892358834220817895914720289130424124505819981573794154889176185719783051219150352643559846297683186587119267543696533418209757593733672062852422984956992909801637089746674535751530361663357357398060688673317039743262968745531273270598025588860039225953321956690002012416725129460333911671264667996241809963805244472056527750453871084410694788796220657634091397702104521293164300458178465661445500614705911919860800860824856624091107640007964385516487785507198238379079726082271419789924054459866762082446827144647696760437927152023468534083097246055797693790224721272223314580688673023343814094629627000931500988244959320910725823485188241263274236643567509717634470626866526593971060408733746773273284894084336664608158683439284801621978097240240126453641254038025044424193074761244858717330415322450893331226099875378330666611685019171494761988250120635327043016986914100039720929851083057300017136350377732968498127494447133819079350709414198554698955206897261413236334338819115360091092127016945765979750413545708418679985050844148633600054289677110742562172372420065906386055922502199615114957341270706268416302454251565560654877712901204756033971426355926660074530050074445126583745587565557571580620185439617950331454835806160433046726601271080170691612392139586578961573733503250749344739333419472229472542737626752719546532059388905366800348081849978535222810888532875148624519501536958879917919358387194184699823482383862112352306955245943992517909871171707933931651818809620488014787048957019769159481310924475082372666288464004598991557506656726854663698247366085006538242276701808588952597979022939681643780668631689057860620312810721990028787969510418656621112157671453181760692277668386850899415327875444511369888642170116473926002066491629443256931750204195307763503912134040190382035086892013660505654031353373534313868517446616579652848159904702640697351855548728411937432116312370120874978386426350703035182376982313004443975182230809679992963491192225512698852788136996213239484146981057899324618031317546115122465365524084444054465469455459960417458950631178109595681904900483772968792870676904650244717960057741613144724452049647830806914044715722682033122723806682217414781837475937578466295718104674234764012313156488557953054899565784215836756202954173437946975789407481826162840315473655178709601857430015426847597398599852911755532417965901259103591699390035229036858533305490137829370088674796827270641664438001822861846738650907516972130009332294705393350749010576121475214721370922653397991248446482631522550147220073293189025620789132322347305561149516590884657834579874945819283930414974331884966396970768861195846963985644564020741343612920775407089682793701161281183232570026197991442683871460737863168446583204202531135719333868369442181514159002942472353462783634144197266677875378849743169184312968609557029924341539536871169693092830586173573621767363260780016624699608015440223977707217526444553112344168101562217118284056232826706694856818230420714138565201087495183853349983293920960145584032277354905844273365738379497205226296034562430858250849217619887043666820264294271849408438004058619018892224136680755610286101165924054966438969201708475962748680565345707742016551959255186805404286638162126445457955574468696404687431418386708375357966935889788690131265218589344058478799315176260899287625065859110953087485464175085589659422026127158662589514842125964572463269161917702321963900298032585560843554070528832245236662384503781754194849376209531564399834589223737490270709172485934887842136458420245374438760520535730574101464518521418331415526769298397912433148397794877467318732470652265464955386588446433472344495745005331269242959585871968238043980505151298988571108973203564541680697432289863126852832943321580929732514721991058347522674298069230693255312617640536550523465218161349028554364414236066472568552653692435894615721149350492352793927436974659625035345273813227477333820640487873547113458084294471683049827869436920688271169549910445567132740081464061607276035761322141347374499387788544496479848380752253389200665058680377291669733710617891594042851606763782051552542028070793301710492496797922842743052382379415380956179669861032471418489140811824227538952187806773379738999175969975412985167083108993320430084145863278764588622052848338131241394474539506217017552030977682159289252290150776215850188852121915723741327739626754902096112412442137079334285382460604988177019953441121686843884275050906135464669896286678142974824329804213922353320872123975947673302304273589310699112715264785541448894811225941684514118750178180076197105572104305919337032676754535233336275087696907037067800855364883534327765856798750210979435882449599666987909123595615250602502291848532564951397323816885712814388452676429508139103588337421063914289051018016383776236923237611085291762729184995636822551669960268306339741464565057328768377917023552432428808887728717912441664506487209273958400748470099675260250424975969117964887863443716446681329288978186638601448098698771328447460460582093463972738464475784793850254450027970551766814009082706902048091925820979841628526089515820488901771857930622135777728872249382854466355164671695292190028597267095887432936886410032240949418471267549611202140899279580396006337998151708941281221299595802143177173057420220761450769154810634193440360282689183747910002884231848532411188398203422968531178273691557549943976347397841726039922925607656058871246644422394668250643447325472705551152776512522278636161035574747902037291464234525487971791538798851444276703409767553555068668671199508220833246457892018183630888755695488798633475902751040954647639174692307672909041640679481686238439853502375218471644809701490060585151632481984507001556715139949615076879078670601676339392170700171691207476397322656087327588103063301415113343679842570261618153015841552606648296845134699570511839945920587892030410399488925571582826391073544143913001682069057352111478425830884370177111272569775764404699442519520528399785122250719475802798794999948924969919197168865842317901067436079007037122696529351180521004956113084409527338489464190758441265337808197761050448281670273602301239353355387718199884079916968800210104606538816458371821033887680571647417253551927180634698492796169639298465802860176609370119199953625973601972213596101657793175554212369703454143735260182491880185343626339889812797607874147016765483476663403162484461832906211375216999304189767963912138685066871326215004571944502016399337675262065439904287130241825234611757447372583730562178743230428012717596287161200280760624350482046467605878652924301327230489871405205255534585534194754784297124888775087238517464752259157698618687110496035512694920028071352187939591653228725716916914929852704695543102662932475549271714247213504411890519003781047923283682335928542244255631613302267789765584940575551839660135941641736171109223468153400376811413995952195133458689974423728449668422991757504979527068188300695579096427047020315329923656959861497304262907336425280910851246335344590769847886291369821819794803511280624791709853264858603553645965502597114374318175175952521732242821330842763039865768475209525533070096504959377117401192134096856855872909907935887879975913885427576933525969503772253979171684465962342609714255984793650028021135646818719269093810740800799409311821147425924088260727579492118893616434017215332534807697288269062901136231812729871242690471701399081825809522092262889873852197186706541882661265081800495831444641205105050696826339180807557380017316299298644807269154962330084779125741484539063138663632681199203980930005837422776466811782032030404250809931431651252104662842815206383516884645526396436035070572710367555158086537319116354492923834047534038359547956783243281372772057914615595523096160757658789143694602298109236085959411180590060937253990395370196805356623424775450454903286085078887606574822751264061399991090525829195960145618223664289649503817883883354710153630956920896279856539100857616686430967293107624439934017961275991060679193289612228743955517497817244093573447370503322607071858958792180513472467961407957624121901373646933697682848164100502305124029976974942606856117571152966049088345451410081910030220006645109895770407732053506505907421429483083256830606299412216955857915689952463169326327551106109760198756054343914406254257166601020919276721071944201592723435597452988077066902975123623518009532002179625012368911832940071032825814230338087664197454414771987326751393088071138208844265305956823045910409801428307380302513801836406650300210493627106090804169570971673035898488869176828570739141321231160141254500494668546042079627585154408167510011064172372891470938213027201003835768039124556167579167490040322138252515276122574268913217577931884433301613120114365892783221801767678352434087114628464636955355800616841899964018346033333376383634169439260934962555074696770559547242892852066778505088272794302545907090031811427390008532889818801496630818030188447502503248624528160473848905922946792123243432422694136579125210460751766320605557998546825828769006579427702373592311671401569483735263946460808111638735995820013822068787749877387979268902101929443965952494429781507564546930292695757872863556891496673844820752355438675967201308999622921467945465279915718447237291123140175273508565718967845355930244695161192039971204794392052938377852131747109085138661011021719440099436667630042379751151870172327628770914367939806237577684977986941278473974926295611580116738408235629003525803057260845690585908000567623441960143768660035410169721203821652770176718947225194010985026345171387672602810781825685679251393137033310015443429494828854926950885576482825544590315010152031561076689952685715404221801791237595248348650511126776639659017800157274696953606371586704138536079435192041263027085551766235967371588043869283185435563124526856344676286015544846811447368516955148930067674379755255080131406515387399676733376351561066601639623378283133217258610929071139205463100845895187092334750430209821755069040250450482652063499176382806536443127262522223390505178683907653187224634964811772919683447828936225122604331532248895782229770285652082622513534820706936163095238653682069372718993225030320735097583226272006579755363134354063794927227196567607486275948507898000465150023474047160372615578860942031472010629452727424249409804800822666907601329287168016071119801113733557130026122477538699755264947968410603669906259509616496310525998390845031561149987455184747428032551255808800192184225799104276693157063691688958398831194806350053953775493804585229518367099107243550307984806402051852623162640748028096699289972411446098508575270424064015835597632964644174326264546835079226876754520146300200343723716498752372987205830998211442449413433405535264777434969001400597608734028036712876296187258796693635833757911026420079076886804909635444821253344649630194804256147406656666970577641598753164029991679361357575713972764280320278818829369107807387470356406480716435446645808476110571170975020327928751633074441493267806522125488967120192075934031754643344228829827062272074184863842783739561643065242505952680055220590423237301852718932291972590254826915949102805743402240914270123144117686766040345142022770632539816761176680882806011338967175202987394972335879533598593148223320695802418194833811034439212435488799969550441398062000291404409713315730439283298759664172450242178795374169228002531654696879490975816240420850086362749867435164247268712372600950887314599419999192603319580816805919246191986548377305241205307705410410900267546804409792990991866884739394643327506575980128924584041406604117319720272512229043841962478356526903389643430216796321753186247757967783904240036950842638363122571173765744527992032690500331533503123561586773966015670983097624787030306824128673375734348097429886860549251900080528297593042008190129621390314724677336200509939977147016690872206647129594822499004544533598272878754522646079248726418654086612658785603641027178518056934540798254561479388530255554105875012911792413520965540696825651004577553958800833769906918705655094353208115514704090187304407541552539788237461154308278432592318306305260156871283933847310847537806116859781084072186608959307964788453695764046007832875533621837228886495079085232002786645979125066844311269080150464134598180378884013927164990693604476409128237024461111973785845272559615748734909186867680131111517493397893807859481281137233171275662235155560829809389123930666979188426574851142650546057702269174981771894995040905796058533093907934071724247579768192139440538027570571153828985813575687271965516301858025179333178158197684167435814505038475217578300092190357968266955285879439665352694774822647640165174973737882074187561021307823841183462336185895289573085020257413064273118696970072725098346835841925671601841478024349808175985504939892953268446786741860929186259681633392535131255631448652079431807746338778246187860992276247080071207581491392970146389339084776613278174257791048656911683913162174546718404653615414433496698493870195167377789142350979021247424974359961545250133956810598378191528329045840382620387547064058331686347412829803225654109470236305544066739250761459201466980486385044949456114584569668448140604446081571187290822809059889480187195944668351609515952412076420047752222011298363579846714532957021896658827190871207686661413086059176938664116990648937221235249621926758260938612756319660193869874901355961774892977777119041238453281681481436842668739966281269302908102555641395059551420579166435595074857350518907540240234036988214840034688429351866261725790729430300761300541781154296868256066884690667293429323613693307577811673382340268079630600131027891591426434045278769896289762173132639375348193369974525376092510297551110827029981792877149969108824052170764776496382524012231214042176025231351974309175536056099375635813557771118252306322812352665630161295778320065140184062139671893400534158804206543556716429906236512825467905769996858316882350850007653738938464530362049518394917384288515083464405211275169354869373819936510630082417988617421415021043484813941886672931423330432067974374614519347038444822286529808459022209960828371206765990993926777916111964080576625461641067957627837676212970914626626885779775644567234399211688355452523173181932598239256435972173769533899162693942317737103826244943188641682677742076132835330342758167641771475448545985927628123165992106753102056571155800010176921960488626108642540778114224133520216203525239838205675656356135333053919140379451388307669243541284779567093779095560654249146601038001556748941470519300987060648498550668865729938953194389364002471372738739860020546351490337379502378185121054562120543811755818568761278585161125469950244488710148811493297399275959074443447115854947914616550725191686689003758114897161721474980719003266426860966841440209099782125050523996533183451301609151608335385754375283356218504929650027875781931745391007732649611678122216456111183740938842679446309800999398854813425156865784039060240767123071347208196055914196434701238433049713754468747959097962817582557858503526963127209406522247982003645900451241818997994268655431083725521326139245014449440098522764777961455608968876296501887327155075559330911212357040070019056269774009621244263915249048903628640017608335015602192900115964275159417024957501681014721914629272824465181169196093788913062619476848616993254229801965312764080080048109504096634372179191803155643872668522811735261980305670269744815114704956118488690152102044831058403950336711175309509720151641380756618539808985568085356675196646097194551489043590334252512566490803348432533748889713524591193727183136149681561266425651666980434440105543646046757210174765207063048172884807966798076991909663110390853750996934740737170612335023535345107214303893310122920154244944850653213343165821193973143459924901361556274104798429510711782260344800038332848601874051068853407105877274417492506354541186090347021218317090271733984278172410191207011876791177969282436535469027255178057301824001921844026451492596624858218494675817590566050710054245407502900010396873579102153447123121224630263204268427485440122795328701365542121010059784874214590276021573416496471871016265091406124215665026285088643047933373495982093153322173030838488067703032674170489030978106330683265177876047725350073485646143139143076216437270808321837954233038862591841735206728209229682659254548290840954720936406936251041477079610238509182424650921153542220464415342834716411275021338307322105922660344526548051493810737029112288165428213834429291604531782771702086473506613762914775512881814289566457135045851756435630473528709608494608646781744352714169673966663097996293564636945751799603623265175538187200206826093960586924064285826984306705125004012747289797692449045087056242983105181740613078456296887603822189357261126169566250207844236174516234649870150145385837074909710684449127526059626822292605409709752715298295522715420042066639784371368029520953765100733431271633464737663366549269275140284405851642774472999011436691643932601682859443082644360270986335451782620697387097658766078719979111017718616555312137104908652232871338087864008530067905125356566963409352060205261635959817093076020357018319882036382202249603677252130881309621989864995902920746691419673348489629011222682828853402309007696626511880578297956186380382537364326913578941599103073215190355615531110564445011819017844396876059399904118757322737841977384154341600230985852032810908064901620170338103790627229679920901491101147091115873335166032920596752690346486288849046278932357184339992767308962761309182636011950930758594087495254240390576535452500760181474071640856042475053776190557265120179714624557982515232935601974492375496192886801397737228177380784233262695919803872201151668323543319730650405300197829353556760605647722703334667731318408092889870503903375833742707043095937175306960374074208204345943689116014972833038460869142316533891882160398399073242593109474383513315055798964285626030807789393573844410803393675465677368784112176653721365115241366609200008072893938357095593146102744288343832915221200202386891435583919547882565756725660441822414807359549991435881591711085758240222341693038578036328881382453485111162484927643554157375831181220591108373396376863938903645189462314980514891513277378142264575134952146415073784279109808656659665805091885793869882812088121551271813219409780959670079424308574810132499515707869768449713157283012725888956570018455303728474674313327544971229970482454316362692621924677151599379233291665007367754415660829782585060902852096382255439623514925800958563426640591742363395279700683566170919396147674983419121665203048294599851725383004202138341182574135352881543639333322069180772318292873025554697432115995489664246994318509137467389340810290121789221377108777736368615305377270054238464208177895842364549492083894892246863033814384400439964812158507888300672183279772053801428965577237941086271456004925488071739412100065082996711335361249472025865328411086113858821628434158422715443084200271684170985430873595778223410702297604708144191757461032273143879537389888447808669003207058104638256596986006359254120076095753806106674673873423022621466170055069188918053220146448101909456897168190824539661496004039797605725866159511938619880505970327099606972250081630770850204415280163484950916233440275779567947110077901974983033275234643811751732718719176869005964933206191842120769444118711431290452216745200216287740254302819150486476193643728880189370035884651758548384354024662532087623637202457186409522358960392726978978682613945271630668672754124616387948835782121825245347020760634378194024343661411501599457697579751615982538557644348914394081714146106415392966856769104241156523270505967765874590229071403618961122903604190965864751996462876282360145067880320705435027083933960977681041292354329626399090809219257141385155126263221521257388350179814594351060259090954107396994524282064541521048545762582114523040792685392716092055647390229402935372798713088412949941876270898129308736796062624425995198486975092607258649042243064957062006889206727064886092604295106389398878986314270201520333156392383559170597017639429970309001770975928012147704288459742089399950444931291693268809783914194949756879971324689089302102353898918034382717719808658970909001611994118761364376077029891729728413747773126548873521918910894400884308347549620951111782958980739810075574912260511957301940364739418982926802896854578198099827119427987938029779063695624478263149267204833305694848525173469428479898092181386100963652205437927469567122636963345029923613489904423577565846040601511175031400489147244144900721449111257813592348497131055928693226568575056707645084640189988108979440743940012437195382997913898342966343745250292026224119595848694088236826442495746297287994852829202642170196588645407607761751809965427901202887127729306837097162329784487576566323535980352359476600560243845065387402501446067628315551458444821345170527285831834827318750907616841867106362031232299326682452463013260181834965727667771329561738464695944245717393251521030226459199583119111909463828483270315238111740948489535462785159593425397152498216920332939879301279332517509755579645686418034131109035331584795041027285103881208058836785098854188717877849591578403730885756402537794117460793970414029251367641817172761728628191706305231891711598242716943826692701966421432055528686047154794629722794991876921789936723484649812502113738600797865051903065250398932751711738681963690320553282673283730415242290297080085030706442062096514066982212824650185610886804229532347034893981660808102183275200822087401120806398836391630513551164904693494812765079051353917201654766135125427229332354285430162640772497273454406018827349971981948381301604320703431237188985441650366366227318784876890984277247609738843072331820286318026035938145850658726898000350973528071653844799540471390023356176875391845750753944041876155534403464086924945846382013085766056685266179174557683159214036063439869145343392214983702037605379358076093588599041004338578478629287193588319491750162727041859161141496805169879179802708195875154074874667849572762103025584570477624474380567359086322192009952491432640567014699467390929044105568519574937978425940062133592562852179437280968316445121324830225963227312846840859130315996562433431642939214499797682307052980425524477908401599667832530735830502364418222361912740523006958676406435356968785699899632888056439686528974170150030975249965129989621285754599552788274059105016801749364377323309480676763463723565945135796101590848181487434567100676665745765301621203249238219868816551522171156407964754499075249922475805967703495644831945719506166318532747224265386983479208022652232094683633052583296768602099359808047696195983182103155610871904786074170295786960898413509912930664482140515444467321266227880228734441229117927903623760201882974723074620878373486006519790761468242333295502294050036619959974175611959262080052218482335186076145164739243956478859755564005044272669462781320812991088714444818651977481541306188704453132532313005774769403081719953106884976801843526103104387934152907741792066368621200948821550518318314711088928090033308056690880136635442179007368543085655830234408077941337597904263244487131168390602600721195157493248798185737139793799799155696358413214721687251796315577460531109850497542838484042513447663847908858801048815000069846940116119506552773816386644541763447624774324102665624012259253965247867201156611414087946890736633899134583455996004401583379986955977878437914170289080549552616340343378937194893024865128832266522643700480196595397376469529375024573255375677776974749927416591848359449003985452575077482283174561583032946399813067098638465187242278673656640736872033706080675178406268745678562013626619909181735067023985736314499924868412121462729103229059268775102629800607591423874777528997401129189952171343640334148223062027948467818960708044884730527940615757939177821461915488006236723040852654377760127685258509932498845740332856033792316784972668937846411319194708583477889152553687253934470952124719450439329533437446095302569875847595301696746668621546932784684574620286738908335853350110537811217306100130042180359591090854653840384715042806179270144862592303887073636419878826772935654042681481990134148549895636119805568894832702210831705712982456472436929661947337014762649478185973647577799238741365328033303498118159284801202755747000580696235066684582677333355874820047347642259194151349268371733811883046369939177714775114542255058162774713562508017486803366195687619320273706412189246936872279407346230797429468106503897849815089905288400644073010962670370471134620281669870005924946852039968212541689447936937290104426607082063211782371906905946503382935431822088169307554583512221364851808339947725214846692827913077706499390716859851826324212761012433175036573474531775663776511095464454391534595375970329010731541911002612900805354140626008860366261014222928212281211326070104173219431241440460873302046231454238877695014786059017188722401543360771509943988017474134431399557776445171043511716356886650917841208756314598230801615004295231796604335686152606216314099508348265517944284712007711774400801417092716179953557586008879709599868558362368619273586218392564008138625849779540288914113850782254145245250356994905311131639306766493660901191426432524786495763694624531827836533611823448471314197687778435573744039783964684058093014535777055681601024487244788266400047141848619428122900070252882534217104078680735483348220947580759997555652886353938282946492986862344739516606546853229793914566331560997176128632831326594803852612570688510674930486077094277379102709217929400316471603897473600152875319910562064530524289680050100886303226441102313827829982870978623734288548879742024845246399247092666380293230322580346793615573683596619958527551341892337695672203908588121964867454477405307740838282804914511721107601940736005380710077181764684640643383265622900464911399654548046049974478987222609159099174713576570491269620254143890698568392262589817872910397102719037867514564994327883674284055315167842213679093335436538378119947698979021198658260785211218948430305934927571309519994346500852312314713494220418128975092363549630807930026751563481530700166792232358518471432701361284847890725937328303116684434331216777224546464845157826976492636232587102769070239164058928359632381807918408715443675259063209891143225616619426877057907401078908806477605954230557429855725218019416873860835385911249531565973813255960334708759217838329674870089285973179523937932345846846718464641342662410119542690444977239624768305739154702109200831738589108418686507465862257530614006754403531087239837463393403020572959986421713069858598216231328945481347079571289682297162049928528969924201293224269620949705253845689783213460180270856829313722566449970843663634426434607329432601669508527096822606951613923473018183454397991627091084670417181550295763078561073000007312913145785882992469054593466580772430325401905508652878592643482809121122024927514316254710469932635709292169603189688673070438974705548513618365382017771177378673709343712674028307716501264885523119595453911752679861015640508930907809834569142773829423558789830520936119815472075724497534670571591942473155635165029737984926435652865636680625210240891829861630474894880713186621796901374935015278499279008080842101611985586574936123874761940544344957123132420556837012079210876107903686599823087439308293864964062038114075162677370323441215487290370291138194814624668003002840602205754522380501739223849031085723930828342263544087696130339255460748613688403560564254667058929119072642268041247613361090625070918794557652035459141274378978569937770832849832012733087516092955532569941806794084639536554240669949950503566795386109048009701870851025895554296073866684953946318756535029379634523664268618367947672716762089701685653612464799388218166424611301650267269056279302558827658718717380092595521345557217672304462191605908487076682475206096310284134456795594315714556130568702878987836236055440107351652096756976312378582808919135475197479954738307894164877246083870863566683928887062764048359747967209206304715153856242778696000584938768815476176938275585863732069991109943196027104039979453042385223192078757485456214216970654996825400583958094608413413368900827683697303494804085964472119890068831981440465701794817952681964831437209328570405526524570472889665591082975013664583799737125990693396502663990574481990623922124877620478941875012601478878555003819057083642975851936395162020912528501452725681779471662521283512477354975789093937240451368107872770080805886092729938972603784246684277550616338521320183948021431476095661363491098137580301016789630243601578890253505557413806570658954852264531140265450221240940505900365816950016337221431801618936850567556169311236603158235211778373614311234681133363002157646857886492090197357991813837275629772696580560993675244653790039683325249544980658577200096532662509015312270617719628263989043150947209622812669554170805948139225223836883674675924398674034365613906352335928223951971246875482388921216966813126669811357568498389569737203836771349961823801907796417696479466318000335050580549875684326626827198006258691432014271416944040189535523810116402461650358673438390734439934150621468342527122009276564124892651742725489388316933785583872498371649023896715659591463248891121229897276752663024383611915631798644914299464394581304946914694240286873600856657329487731378042212937241639359276542560731368898415877409934296803244615121932680133979187207614787164316888768134705910441039444092904801852315571924511762055430066002481956549867959699967454333848497202025681314333712261887373540973335935279490029954347111016578376852871357165808203368597832069230312026769777701720852422029664399279201540023932441314448017987479463626008675707714861727104132062214190852338896374427079620246918527111338319090117122572016083121470155255458347206735144712178172740775833998111724287246479319519429605536870718591997687856215390240630094763437134372404206183528894472075154346562854556699039462051074358556325946056744550959646588046438016709003511979189420731224834563183173490059130335837389013211288572435015628171388185859126465935262831746998165799684327586659511504534779894841567294989900444309540436606351536189953065421839540445646367512804982977272826814156529183210033419354517323436780912775776420586832590028557918820199775886241229371447778490708205449184693368967691754840602634460891854903128928325729278697190338357614199082061251178065510231750543529228507697110115591130800925180574039426199839126366196063392552245323115880342518233106830199730181490724563926021044082860968927649122451305344780383084481534299638294514016559665814870799764531004790757414933794790823263341557995527085125179631251575713003946012460620535079341638745023846987164586722773168652278801496841627851832359606671433822174681162132293514502399114108712657148529450580237326042078887767660847263307096817132351371954575514962367323342019109942471419944075557800406207032789154469991940433544452921338301977828347550258081063454458178989618204733650386854766439526394683575179888366766966564610028219855487452690878292812294671005135819831235368999449578242611715589445065604275526386826912421368412040100871511381867632825266760865250245260081624266598661430202923209801914752485657740984001436427719491613374248880394800467040720192052615510936119981676248638939717744345573386068772577014759161737960504590911031780443957972602592770163568570844139431873732178994739298304476053133186699900763329196106131094798662699182668354078765201574404455021443651748103985190647983756193124608206192075932667098053991207202603822704153488825584332134025239939107441528568109801305904754930516168706845838224391176968212234165043202302859676139279797413469767379217155884628066736703253286828864725479221410977694282569843792545263573359577179812290286699727622095322614561836653920950634802059090971676035776699242772084306006062709814169105596478105401028641198488151167588614867067338553693962329861099549425706464492106868177976232281317239040357001130691891287459552675314527927731002243562082657284868188784250678837216178628144210703117532269887274311732227902096186674765257824921433531479514974517017109765842888834611760025302248138584843407325558981358340221331102243908151740389381766354820021182746933133743747315904821826330937635354641489421714792000397967424839598341856846142702928469886361776861782017411452805401970425711560607765087328333301322313000527111584244165265883480547810227148265804532574012532356770985635657907279860488143618859626822916030905019811079647558826363450883516434359859618023074559842190718093770130632922059915200909903775704076350152701426573319382460717662269497985351949126249969668131546076013975998599006330739506127305197866214042854602485567017627567276238805980192990632182242408578788383792558136344620487475667449982857157550000796450982605432067682285479587833762673877821646048562728068049223179785123937730376964880451645531133697810519679309241170147713756825829121610476495024921303626904593503970203851203651329433911750150536797156866035352501495478820113968911015870169076091867096397479528130376238773919413893073750317313340566162643608978967094271512200082118942031443381937426598337326571685148579123565237037159343969421993878819059215405449599617542840368077206892067890368689616099849597408297999734679107083994307151047165394722182796504406604886947179809586615877793207390961378875943808140476435922791340514581002321739449083927240723800704211842304879235514088029314554926373436634688732008518763687093389782994639704110888127387597749982092763578668646577039589302407431330065014828924123625942928334625438061770248774177182789028468602258551809781587297394217501571046528791049880487626623767085767508291320781279898924410266760658031866190127467885115080371682774275603728682179958648039130323897065067861682501455125000312279707013001442090622125172081782516992502357921380010657814365297227148536998215508466322291380816844413186270805231127929884543302968870807549019438264052002546201588049310769383168113068978295447452133552099143570348122921714636014522820642931186575360089838126708654218846608990594043451546380370766446051322362072477174777548558669599542069700715859588451856733152723816197819804523523708693801286791707102895083486171493809766226854089395370184851735388596310340201508284270261460891478332446146772835757625625757530301458699402999417281144467672333370047713890642171775308373375759300578169245388992131386008042364426169938651021949892251705328907609846000246261385774877739953311938653419918763133285253143352951447317720311383601454297914665118597243975762760600195414521283328299033692090782466222901391893225289046699339733491831656980989037100061223418166212135719170764763795551463506694476257530349508744027303110769696602475615603192340889713546788314945551628083234181552821411747332360366433311039199105698678972040741520832473523183488982961657354588010649734027951626679224087890174247761514610650538256393194345599896094930105043808017693927676222449866205669458102149619670106926955234809841237478552339205313400629818116876267703917654294470853911796227699450387787380963475294195358868809517927989357020481144561263737799999988608384634122388898889868600954496594528053736839015775482787041720709755640513623574095731462278852515756496493475019688783505704508130729179028889950655213335626383746558104182634464735376344021913340399165883697426684230996401054405481566996190047805100508016134604882716716008160985360037585933365620460954592585507786462158240365018286049078987073237896743693629660737602125918852677722149331616880923412940021350161617693548814383843525243490215565828740155991086070782227814029110916884250235504951283666584423131227183676714623877314840910784978345671815476163851439048845192980598337189374418703128385784872744420488279843073595278207735448167118011555661627062069077466836039742712805952203522244015427543795499172279737011116938753409013989075261654090165436609518449536377427751812497598953234938430845902439164577158074014719868530761413417945164151458046383618804254277462003271551758447487649700208632912546576651711983434926979621008340938479004423629075256523130380548201618381540409660026895860972720915653357942740636525891407910571176157733960676248065494527576232761018812508841369960748048293411304241104402666951200861455163990741394658620696044320837959623689570768061294439929934088645909719762305883604061105095724598779078943961081635713371488371090999775027048178779181087654842875935415055639471785914292448113322636674886332320936757399913548777503414364006186869109089523082038909683197877450761248663445173766479030527710210845145214809737784891492062968622712421752689966855855615948982348148015305337026840087219615443137544661267632443541655766147148019072537152424468972266615230480603745815780860411538229916623099889378910593478592645187883247088856380495133614655030020386852763912249663350615647942936263822161811349680609637887913822495838485360385760976543965529260955381360235995835769871021409546636243807687084921895873900365695517547754037672730339905383490313552517788332284076551570606831125506139203075091003158727057875825919414005016449918321143871584142000212020002511710687254393306875999194965029007053716951138629586855349900538425476790528817520711623455964725183568725016766733843475660484192855334946791278182115310398666638320997194754102266888655498723069133757327826254497546590159922875310217885859530630627935790819031362373093222599747429541044326385297519528701629992202935392791942180132110576049378674144752123091357202509681789420355968995276068205647355160099560087072021046004135893165699520880550310890964899603740471228605150288915695332926997658907638546248288623223500089325978444007549452062563747366096662487463745275334573648696112712534884396396113837457900078111372719122719007874464704538047088078642953476891231192650984426625255440916714582578066266055504178773267820718463050499963331317712925729671758399618474255354638931069149995487640711237522976264745984002673885015124129671477372217708745632348470906560131598230344943849663648807760286581043775805493557997701445243705593133081222658303081202768081794170332588416777240392620608880135723698223152160834420025155527090618724585813009876601960214444452553158364561920909990574277778314076574310610754010290032200933453988576739489076152872352186126699037547772087391772292212405734132271292907424684784333661878519695116640751415437537708561745813148749859206683538959045223460076904698499938899630404066675552469623442026213171510688609140683680626608328247902692817399550401907674447379802888945281831497867451283272623724923702671827631172581041228183199165054014785309860658331505548041617807576579233008048227822439289448090083032791038643192050416469821450827735666844315275688978439861705781875224002766473014279425507368610877104562356021216723929193662747428872861801453758190269838596373433692826339698456097497458845974606685985718013161800139093960800427739550847891695097940338691238159855481309111168020104886215980218745711543043532359171837333124393286569346265917660542700477470645921472546002538501579920163512938699757231278357654404489308793287215820678389955536086224599032586811060129712399498958846808504771912028222446643414385175362871290145037493093402313796560588960677587408016736372715218984997305600700098027546208642618234166562605968689116300196792957636092249264325261016963686114029429351821157895663216790374078958121968540331885695120569214392998066891989580941680883710196102394047008756004762357639351319016281225158468285113355082137562903508167515073088648602918430717353590144223243339759083295679452459346918217010724797834152640866312218037744281896280664851853049252335043669856775064294884508225422001503794816376288212904588965741512929084228427396761537821919817749533548727710205213216449520799580944783557696997132235483488177624362953454429615845514764652664036289833698073091126434644382916768567698919350755374551619011923362278813995626240558320342996218485265818100210229029826324742110218668890749674462809970652529785283694416381609768460622643030110470485383512745004813842603777932672872843158249894630092169627132486217386049807123785982945534265341240087699652498342121321467889820217480910339613885149295050132884989229359247642148649183259393498542883038979390250424868781380594327127841540978936981260899052233955586098971042836516783059383263518082851906984288775242175656199201294003901573899621673084112520352024951023281485231541207383041134348322538686368987356591202587603332995569847498813524273109022881297746597760205595473868825118434445115095843602083151347082518621693741597928809581001703875192646551406127052189553876689991656235057126153774569956986056358258675156205771063299901856927948767727633266901830771758752114121468835454438039421363689115936594843798514269585558536341790873071015047334226684565628320161350442957588354526869801578360757627537609291181035048959410382511385098747491594279405144561023446161790091347431455486156081113918149226686257929876399202371100634059578105329610646483657652735879896227056007962100446191080502132115881696645781651623708919858763280678972956946766109624911868852782015400863440030748353487209859942127124611040907334200460408426544158691379341791613818645422307267569651815254603048378945194236689060526145674958221122972599697360862481806380430533667463698095055893212895877497718870861960363501436522371559570854448949642549136394161828797980798927529750369100861378634386772332279748329756193925556464580174029426912862067511914003973790644444107496424473551223194702515888785219171837547944396184773288105630473408459480618827435822770611582688137134922229683943952513600074538687893639077762236342224758645686991283655121504316531508842909030478133586478156113670766718200696734512593576886365527324177559061912449056775308447818273935067098378969918402160979150046219451774857414123570760198558152036033759610263581536452848408425760868620671471343663906947456552870995678323256860118590370652999839221775393993619409422579630457955478517425864147405527580439683029253942001580549942609521216108291585616675818439154396413326826260277121369372014658067880826734838509736017322688107085178500627503429217942342932056192179622086448704350511992327808034426415334620350303042663929036136180812374630049165772615084719109989774230990738497565624247945327811283872365673773671312293739018320247019640328766475817576073451786975799844880337015402874537093281658589734107279036575269215544128063491092484051586500222342082667093380177993518602214637713760215037428853612988470074458909478319840705419171388192749094198733991668612913455561132448330551265533962923895496800735512358114430642043612296377358383222474629514916897218610938346469846009537080426524367764435340194325598589279181767500989280054404763261245690667658307563526277411752212322200409342223907636512617270227630086023998864476643368218459272093769677694958213799184226918228560042184390729858630071278934574237424605461464178904286309220981481844081145282323723809648647430857768171237396144741210726648367440596524537703685649794471912307942482074671692825814550996174375921558942535036107722342105282206180465982173253360378525226267920328390065145545853508123022337011628396820984009305952353221288873018736323290362352140723054665168579924830982189378427308049166595900295102736769938665648724715564412527267496074985890366309556310368633267846345693575209657764883480283310075428875166751096756318043081649406907821669400256160054994572295473689369083074060340035032166042470475535156277276471717256833285508755576396152759402093118831481077267180060977135084783948741585430665957400678729469448545846736982544839838789704299820477948420181300942375049844935882914165471783795103375973281511890860449394815217594486460891377629870438550861820750031342120291650554839265715996187896378757178433520263751579021067104463219941566702135279598848010459761220106679469830758935376327796663665243480118997685777179632103747509357907869578521477404369762956981420584262774633907441297786489322825867926467249878890092220656901527625218185622959874192668393273793212222145644388561618781552589568354293438889251461058380399945937044701790524504463228223637479345248361333672571563704447394686855342244225411548624410565350699433753812610343752728250192707992566864554935470715226614424780473099453397279292007841567888435317886390981163189044248943835357815480250479878458496769132861020074249440255245464267174146519689900091412721336969591186605803833097207404082165595610570569810072340688021316386895330943597381138499224134520195907822346874334634284723782260382850300302363824329633792897201953075773927271592512514818113818965281725733942630997260643679277310426243501503330129041321429779389919468111679523904426714320712498989198425077920567559396437130846123263929615146551688840901837814272695544155287197826283498416985166038880701585224396705199589862633988169058024096231536673591010080417492029172095713704580174820420505065481374549746125124987070650994171762559777776647470797671488824063369853228135648883926979681535332125201421993474175264688499192075993594014374282611497936345070405705267938029158909756723393495719084843123165858247737246109620655556972041358389408843592764491606898767110479357129466719649862018465198809849498640628285535015778747782498682457501559744747329241138747038978374869651495561421689494932984650131602850034023977725751676879133667389630706160943814731564342242819391142647534868377204045292701892385713713891692149879789043796394411476788845372142987805363797263737319862990564605303125586524778733074504783709857069751833324596549686056883563759991799815471685110645530423718260768700986726587885065277894069231131059550532795188797663752163877971029019223781066059529097845158422963666021496211141584365938830534930092033172084381498195475748671034720840049417526231377171760441139786938689328004166795219102386372236266625934945106454276903721859318288413032864970652737794806678918197438405038106983706875077205149240455338356394692675274053227285133289970227787815706561950522652895927254622944463318317706384068750719548950720601076761998701496080230995196303715906014989750381290842828399006110206900633428938515572207929880040006277439062045075201560945005379546477376447239491593631310011979662909584298538434745817594969723495790989248617771236432092929333163445236571254617465613568449786352700352257748376743841116554486847334404067625305115367178852541087197826193805658024162052354508149902199760342679386914378561088534912324187316906622470719873734966301168155677040995305335354742069283238097924309337330283900699338512119993423841447155001702949811451424513746588612677113106039738081155996815551339715077860011321633304361252618154686276949860213143600262573057771173771083172175519029232998351545978697117850307590608827577830064579917183035053478406681079561609884820513551699114945503544638754273992883827972031954846634963097742721990139670238432707625350771493099666487594291706309406538884186579664553044685810613970555193870006728523701234715051167976155580016488377666556671379359387953183397372050007074661966846571202056871750792185837214714218903393251454898347555336783773947840008208733906807982964289934658444310872373732122436906276114517331484375306552952350725182018815239571056748274721874947786725401714668418331776973841409974270563939171989860610695006826915680446856897990879920159675654400713695842598476088650012835114403412876240801736774722573485378031733634866842663104917275404195875963944002877737790470871001645498437164692925883215010058388600930977162893922369088897132810651968620481818937048883569921149390575230287064871473904380542169403968170149551761042195973522733303924258486631970375019841734120123344504885126481148512218666289898517541740512271530516887373517133379305314876484981511722934952024222731096081780030653517983077529462755284947568658512045517449484567351773854231434237778978101258034911514821449828366120200031317380817783457787840358600782959890662532951530060924178638055496063213304181854680002078597614474577476620531284807277216248839081327856074719114405695514245393870385557322348030313537372520045012024752401902473037144531716455290656587285577280556136962071106287248094549978598745777086513384439537547515776863659073942301491533751180603574551013976053432225374921810170148250660638895453385510140908925740006614469958260509034652650234658689180527906063932888667558169651230114510480384651789367918530152203325392713240612583375851569725183573386087832510908433725941634468310183504971293205682355084623173618458657154190960512754209183539699186699022040698643131467259893820785987348480942987462095786194927146630604319265883471109968350352981527746326275491700729597571301214763054680348444070147745971693947349774244536876978096272183791046290257134024618495094478288163190521041261092203357507435713095273592762970287688967441976834553217078741559932919313826759289315936022102909150516228947555487283546291626126689075548419051831285906304898897367355750358959171092930151940764438220644119611013897987936429424771536604640878686798438070719206015403445362319854255403458850600562871710418797744758890083061607562701597071787765694415961553897989088185594094702216136269181365732643882800267315182025090891235983767519165711646741945365802035718911737547871595705219410447817806450827455051609572154652939263506562925703479116693441248099715941489554186814682065952477286500479265654917328563365127997102829728056277691149869748374014518825356271565133655686410877245097735393822141426064078092943442459896897213973510202454702452175364391786801271082808252769995869494105475868547609798658412554617748048493076789479650891968949170423426740896624638735577861642988783208700870408925575831557760161908023210365489600793897851815148429637366694524815354465439859904345473860938470361910998583400816592305237208627394565234402811931926720884669906567352269505015536270278756023824728845025062223582125106335617401284373439259028887429300030880181701174830034472591094290448216672512614085145848308388294509018834321491207602875878381476184570874674704928749113355295897963844264496778860379501482161727856151336628287390992394421170795695057064078582224464161950516191774278048187710451402150919632656255010176428569020626853210786756185231629478659845473516664558594899405225091838508082134050789441838983651355381686510983433078992520266457045140069809188813338544442557271441999886726384674186766493221947442266254997826022546310337985182317678500069647487239497215522554137743965635911897961352065453297478799504087418015257983507088004295810681198312445116913980056200079586400847664724062578799339252520146877546457730393739410116734024588635160472499051768383940094622728811253127166359530689344723382541729893152109624816083422572848002147673794391637019969201030959579592994921162305409641558153037409965677537998453832702710152170181862889398633765070718038677098071082499388151482499815358024515359120740482755083191080741856532499900129670990373387047216196896053922737160453501418734628460282199765916317066655140793750574114006357964929609764518294097863947774082294823333094065288140754150953821816587161772253278834887738403445623632097959459159492245158862536371047098693001147331208899304746833162523232969091219303654928903701935302513601211487040731569314221665097033186638319640320973516057599393011838155406665780051850258644594800776236930008864833015081442026515792003573365762929283460698727038866920057789692512866934216197520446778361145248426877396140485343134541934650582262622460893885201148322318344546813638095555288934313039488693375819928056701432905526029297318761244644103472730772611171295536952598268732132692540860210392501128508223533824582657039278725537994996903962941003602867978101150581917232185800158944795905886965548521800899892510616744032832712860077068034167328294623642240917641178567637782571833869523243201585358112879917403170227688555386720702929344038466223843303834507249649229733821477038395635446630227737831712516579179532925045013448468112641065978413573815783603143115468285674986130324323761410945604626870077466571631255081319118911783573308457416119266708156203756157853332336781176147696544529447561594789192448502521704250479898752461472271037819553882230714925244366552459997943260449416616199460765527713769094811837007302695469483066485151051740686103090330826263184173979148677793643155308791143283383448799905624422089828712841420887072296384067066736247187672185712176498190429600275368440599322753626771367053097622248042581563530867256604377712878460575290693837736804010723356796922212344314963481248665559757653297438470126474389958521678334112624656191202115527539523047657743954375503417560594580239617394823503047467021146069601991361476656262664383206316958432466295517111135668162448709198155150551604673095636514489602333663813608552976968712528101210771235255307746123126492708756059110082366470821442908192060961551428982253376545608509635056230491025980530064706812447711816216825746283230332281033307295574824806228228246277742731130649499335406458343519179580424437660696076187585105106683257275482160507261685990567817019702822447534142542971012908599830351296282531965863021298492550339112354526689804300416199667520389747174297515089337993954820012987098013752877501322738081023768687697469090787956147021542645233264364204584474699450420312956673344500417796436299718754249334478297102240847517813539915427812458144258663256937208903781856283058967635282656271005784796814954441973929591438556135170999221639211072312701972207151099184133377329822243063660860724521532622910524357517750820776908548651923654020006614396384463099680432918855920936605297199317091095671459761140805629758143329904816031799898714019915963936517474736986778824968877629645586334661869746399298867448602193157691314069924146838594593001143037863006135677164235799565854515384541664460458457428543802353516701117244949718058881970345154997695439267280155267465542106653981547772004059048077484549960958894223237285245390090592909082443125082734319999979905351346421187400336533464584954073764355593240473931105098079105706014264121986010319868678891267262585571330849623796309983577885127034627264519721687952739846886379336725363164134698334896361819250585712568183914958889526477888888059056087518241695134337748787928318360407997591757640722054791157918749173864238994209566242880380646082117979193747310388195438725866259421312109827966704914127037468840302344715259959345444934290450901675522426282123772022615078134296652985155004685329759546794413786611353508365165683460690372409642731629749159879264745140801785339481482797598805458491350424515014479519530262117351746894316184737316715941791821166094354064304561961549001489205309929634961334000567428237929603799742443444615126450657990906075775016517787518031260474033849773397818128987072370859250907834209915533419906548316694290972211648952279975621170610043043560508383834226588961309297014838915226672684953122277525722736645071037429575494667085502476228413354526330854404458104309259410602393978138004910029780550552924773830527132290741407980544343674045397746470854584256554682527741777457387815997966691757404492850151744952291790346879775349125797185221925204508474277110002854565301817357366489147197911885355306721390217904452360944064213407393513430530894002337262501506873870944757817342498138227537851733860454368534742330649122575767041983689534578184420182376204774085759583096889075247703448219091282838891987147728199653087760154223108501357942230980683550946482112861297904244945442690940292960987367495452353423638262549209286511324879922316402118936728253727687780349103025630263092797539032568300574947517642043787640119197189587455057596018595281295108538429963066099590027103457560853339635812301053213023495962332992775568926669673412162413387216209860197936031848233621188808224477280410087303903051990170750327774738588275174975435693345925688545602958039912548334956898328949055836021435305362244031446326878937163084678670379742246749867085543363297224797203839185591735345661524721999649899297728197146090940102856158524381169766365207499684358771949007945953372912593892935455216032077687697157612683173559473558490883128724446614918227705912670973574716446937685760431761573235648108820856097997456202597690147692104516884172856565612576819765371293704730023915312162296766768349130836758655826812105142016557805017162510727354012830839747455600883017147113073391064396148647223255140781713110105845955057726190198135283067553191303349913201548761829816645033126389986508618626221969048351986797461897977439764653661012878445523799190036365988375349037103229623575584935951892251956326305327356299832974391854365382015367065650793860166406034140141724546008007079364171101893742655376577116620044970990986262683938533785530819403840078420049391892637034892776900439195247681806144713495673753020258259732932577159891850392345799119032322432556019210720940342875697732196276377815861291874420701134248633668977185099301529042505817368586262819221937379633085479705068269675520493921317387381426920784124755314407497861526700477261166635047493585825339755307998140532779831506757948635672090505062599767027192358757260497079715989477931533461929899194598921275807867901329220410619607826431256715834703838717342899610436184405227799961707754603091608581110676819118536662324170508047853582381358117313653300593809982831150884028017748095355354925547274007561058075343212053443593496089404232555008249787425121484183004910347999139594799673413626505485778563785877063607028317961635010369116286250937269577765927597123640799227478887821972973596189385469558401884205812483168294039496079143329705043456989001463227801937555811756153148515137244844219805798451245139804302966230040596175190010469445398349596439810565319346297651048204365988206067987411066537798336717923150125880074988964326320013861644874697943337926817496610974252069300138275855021512302273177219588785154970392884421035321210390839483067158693890651600010153807656435410627130961919931119146050895584276610479168391992173029392213466494665713834878254666041394104139887534037585002713484586415095068341201411121832387155155306954295525370361258933184520243638571952461579968502684864069777688332835477408985802948360232438117266571053862543606626576513333339836755012506577607542654839265954697061098625568538776963018735600340055305190406341273382797618775945622034248646148819693094992498869301441080379305646630993048244189283199868874731900761403728955444970981591020568858263281276238059662870069893411276976043212753351572121555661105435215057801938046779557228642180894567960359277591849274189336238941960484388346838776046685597128606615856490252171539504863767227044387722524425840984998707084088264355189806364029064611126440760965836795277025844097079199586381568464267642252221905957442800671552396632656320339564025071857086565671512976598495926713191326077373255214175902532589889007607968590639794571984940719852714574736939952054998880039993110806586992395823902527372525011270911552095541721526310507766606436033246815184093480415130998560019875414385777641754591220755348117623573957798039301697634402909846043899875878248922790076650979347329021795870103485166929161223415102631211211355999042363735499252497531208553665947514930545621616995101422248533672613085729211172885467328440798878414275555898959713601673751985040118337031751532122545001708964214841146402692126431202837474590856277447025689534615028644330438659001437208565222357152448831276281787169008375475842613232869398088105448530139921097787449829737166130122373028601712942995511258975077436127541392135087832619395503802013645143382079770608968807216898472384403814010912057368210735696059601264410788169338912214682528726928274315945650235258139804235183890563639975356716034743608192579903093831509840410946541990311376021512680281404873234963543987714425831290447201125555645314324246234294320344877800818052027321602639546007896805884166483042470730735853131922595897226427770245784429112681022734443994704909928039022924802547788634455550944434930298113743413535735420561464901633067127274790933636381135385485739588021757183415632183535978621528639607256622415168356472302588779882406222196757703222054306623016720765419083755314563685717721265304505658717579053826351539316712001476245020723603444957436018394568784564454901470623237410977964713524172709023177439681132819623888600870162199679498508711998982770159775943665858149051233483760812804057945755650176844487024579093679112814737037307279297426960661185592704613477925542331382408742805303976780944033449026651439849146546215012056238335579769865897326309891172180888442530273592147098895594787893888883816563206123495893587584931611048431019300725692831260394754775317010452113601544994505856987103489836317788382162085412352157300034107149450163399468146313286718731181724583564540520646906085299957847753200759165002641439972893505998061844039342205191440023924437294371953048561823039156224072902225450742673841914409731418781749168920629062987329861308128104708591597700881883097865670924879574918269731708578524915924075426417791276731792956257918926076013083341683298368079267136560042454101681347719191383514615727510586087635716792792833200339390741290205246761188826087211131542018998543484409657204848095972509523788929872101966858745224197283867292986446751091564843793212758535544748734811516922910133818290139243630143716135515233186584327293507653023354986942531419458364924468393170337783653755047352803724743871207487605272894584907282553525691154710395798952212932592633922382234065282388033226189332536337667022787491705282918241891633600693613815908720526894356536787488063777095040125598650401756793862841514184175012668992162742519563960621130340680458350661991807339952009597247505226814626690312243595716010133158878742761739506983874595492501293431762646396836542044994303874715043620390436436040053753182266006926148691687212938014149341319207521360928167854044503148210723210899720628825798865675721696666997642139609309044415976553839025584141009719792822027848615569462836774996440412453933073508703899227923547814968047292338668635237043341600883827308857674651922999270172360105518865883536627941181365092352532581843132928693124531837280459460360617137396944265773115504900906149204407020470441586731205759002174169412225845405205121896231488647131257921218058209548992860977639739847192323505308246410918403293039782068888721277555767006040646880374260751063424106733996078483021275174755311904662248323276693551941534778666313624165186748656058854900233867733019769304571919790655618111850830012171618730069234687898911304429061473229657429888044393344421417263194205132475925093089509133229823797281268521570726207288035311272787247917906616493128127012742993690089398418245540129504872334828201565550784233948211283072127642094180042548762485837220417092855751603533876829820541439031966745841270447878540503285844692021249373343481126495464713732388921044137147643126409340898272392011449483976165230905250841074309298146231882258875988740609855740124758416227214732984529434231434784471407275317729194471665074065719574366595758348969679274911051204911777691817300069831700151961107173953145381860108868992241646369341328776601574683813475063335910709148701494365521490324132219890034687560192168109670696908362422202182615966461761397646589503363805050006780558199639792469961353891781233000089306376185627094974481503711466108628374058369182483871730022143855539544620114234278678637606644064842008635873748584167305389815294172712448254833847241380183728398713571017535275050905109397463723746570802421651735879260206114616380666420024070044439515545289770196465854770457612406258639290234269659347665625120613440112458120181364587679706366881070388200298146857280954667101929552887280240017855197424056231610424202681151251316876647460635067935372713140783479173685896849033730461627440391517813408519582992980764386351210023954138031442051098798638146455748281133199384733632195640563482148900468047404188120165928676627474144959877338155533982222573820534083975545291982417502783982221354895318339856471384918702500488537827153524057681635668806389912824132702897611974490650930137842465245135067910808512510890093190596960530340969000626308069934677050984086006290600651487619239982240515160337720409954113979730810110303761770143326551016826520795950779858177780815362026661340704924268718578219707958890730128983488656342150193507115398780474592722187993408371402842835609457671390064734219731417292614882919625796302932559580493192933878635500510959914723241464888383723988720744926956986961673517957234273513325141228584803438108830323442705877395632287965050928371473731774989473873261588118280231936892357837345453264399777202855812549622901381691966059560923228590329999048927971611813750526186809546156259123690092092908958340617358682315560270533102359265652285055089602831896042858929021617151328905666508613457193666981932670019910607791780947536814986458763656386753627934425635408531999482900973684290221816963596445677081646596840467054516907717608206666366930219074469577292992983973674715542959388375419960211547338712720812066717664674723614562014033438368170917622322202492312273298615547320440060863444654648094152441466903485140261867911733844348829902937033580090720890686552481797177719368303634767269143550143390921857291987830521431633571545883398131763164023230730909875385319157484217048459807622663745647163873689195102102345107170753496749436802580529154358724279448076763806838909048191729252763789482206176052133667910343252606884434720525589876762325376185428729823806334681741712182950967866633341751295697096384242587558690679092680851066233530988047850183002587683753895722700829919900976268111048893900606551515952631361011505572752148000543068235074747307256924153315895641068957239027511944386262864521247405496599853874678024215899962772918896730721168257210883337546318367829647224902705670629178768454246352077306103740241879026335808090731418101584778569118278677193483615312301536486932359842308727737036286492491860650618764584368694816292169505616572204598296640615278494156410878770320050084506112558912615974148337312071553703447654864311140800519014320365530557229226990253916193674890407742973947563795170711511528392006309139998463799240607798617337161250685314577497221985496764362034808090946442677828128438686876954758703002560997546054722966591893487741002593089434162228161855361914073910866419572606368053745482675377777947271425763949878584262663919288398737868328852353204686046611005402545421203016114954766119131637673300032556540792098454750225711436144312032920465107023415174135000217947625904594926080248276485316962200027899341555871831359124091569372398052138614746594474468404473869528058749386488861708658516828834039284903391917489505568779441983957391108815747156739463906472002129110319825089518152034600358187735482076648896293460283208988710184485451509581554514843515999886819365565090694823880676419139082955235972914511930169326045127064107201366964060589886162419666910742057783426429052183229328038382780716861253899532053949377474083888756993140400005287553875780453177776092236672109794395504024570785947176258778023710448383236525023766636932967435195866423498085193088941201360729086916000129553769827960176944609536787858312539216568161467297570871740876406548477193272719908801394874791575044422438972916859596699643432087428630164436603198070203375851582405073502629512953249882037454956389437653743231593485518037464678421400013206083999428540831315786221769548591704007560105101021127451300919458621459672738144593400616970260177619249811481962156744059426346472481593328085308056560553663092820440318339582384877014083641841043226186209371103228694369081790177838418717314632933081754222719513690552698083957914592665111601572735459128002944740152329417822200626028250688277663255340307027985285384656254990614843064445695999225815935702715188485930260632101992047557910724832645935157875737814844302257757586266654320108924784015939218984748028694360703177710940613437249270502338087073455325974570319695038389949588236336341506328785113723009356341487861435480723550132570883614731654753291310025932516908098432751145138769787423923806743633952719325764094860320602631596738628817146127434032088359846480759286905156086788547426640757717123729932542324479582295543782748806435075352525341758170568366796362520285189002479523528607699885377361938001356027311978553098789293191599833296084773813745850122791116253889338807942901787397649264024479105523611880536991533461439158623189377643420488074494323485616318840569480254059765965506973694028684514734497583924300137189342030433838645179781902211691294590345632201325305785940538883939294615582808135747406617918147179740001688140012781753650644796809573119538977129065423232335781594344061092761449626752013474924355600592338177194957065498352823315631481395720912196386158896386846940776637455093379384375628622316423657732469797904146232894842412414171218764923326486927842277156623547996576564781397704688354156991259017963611841329226239900128867886917252140442761231325043772698532203738050298675023638688714560249069498942461631813487488250098005760320494577481060448741323297527621162820137295651423794656330302885340883944280184845222174153373400965101456603591669012741697527624320162857238578065455888261766820341054334757146266432178590152555892456084063327089137770495371663976503131858642648695102750023106195367952437326412941559578369606387369469607472786601540120602243106712787867496742511179093428777104907504382444252656282298954773986370158544288121579082404146459649888542907553704381186980049442717542867861533932346477630520502622687480212585054335232526061353879141359321507366019373502803129540017885812435663943455398504948294082725221969073985980336127500864290765007282115750445262690049573968041231117623502505569792334669105003596727259788136695572822254823481676830497469835526225590113567127173980430080031938222901945420596635811004445064435693850757586330264738527632556285842491239883135396934514099309279734948279700010952572852856682967375303012480408096331331814713726855771559823254179709258182013246243876550193707534577724742256588639838376799430979233434431229111484586986134250555147056396145394952881093392360162032662046591746112421086841942188831733991000897605697551931272795570552109653569500766249289046383652556173770207862840756559427914930154669008794536901909767284124928693853646948547511433439234385232627316049088730572215833967562022791933781151808559920058183126305842934956724911116335352885577359027770282020523678206212587553101339078762113531299688526975321061781562516957013102055717690953274417027848861745374301362322283322327556052718146113360660895063616281964403305021703766665485139510313528425090395682444312489367257812211221057880200801063615622268323011717934849583124952522207520949795955324879986005663634330745316811590320967911606753878068936104279815500160876440513153856214570231182263994057328413389618783750140917245839940772228636203235031604261483241368515306531161486986148877405277053733161666900379585866949329224908032995742464454147885042359252035897309992186656380235614051899929817590258202426471895927571167022593592046305448912450987274775323643193115506673538351272078250358297858616881340780765480165043388336850313584913177785947277511430378792772541296143191522929429074222360161347401576288160184652534342876990333119870896164384706406274614065705991500219381220556869726773396000637806234236741405205722291271767871986624821649301069645608836463631158723838229972780054127432499489648060681967697204854232647375188175460848692485428101265212073551405713591268497407743927291492983383167543514827450492313805645781434662114927635085555345101047986518001730385262397043094286634592978907169758846815529969472909818528484286597209180028399133996031237855112935610383723129621414246562675308519455719616485519979430683035454296712760201064192882770244047254682959037221175890150396051646878680406618744911269157443562561982541698549676355263737212173503485552508330497625862987760946528797961861522136291798727502771056607764582509583083842575885224693304464846979576040275102385974859912926544312070310345405178421522548341080324938043769013606261454384358569452178786628560414136095683790551099533626390724085703606606044813893709859862379779916518038747695173802336719664142322860277101154396448592111226018916716339057661172759463490396578993958717372899162262305894691502783325482070529602754936005226420291789707018776984023212818239599384459087697306115158629967977635592702250156045455099916692281949802824419393426613638346395181132083621190279848569167936641289403658655767641223163743332241683809472786088930059719162697565819149347457770429616282200786796840316281134841219738034096441279973388903338661856188568028187380444973033505950551509746157235412630494775559513872076769427594818707203702288152438203257538478796411903198926713599920688820590697879982354424246932134419567277870540031333049507317835103665969771272546729554042369842883541777601520575502812567819259436009221695306043630398843834658298518995703217258166074691306654590856578205012330516694783607871863117481469087674855433512791993886123975827283272579446993812196929526497951097749363445851641328183241297412940852492671262335768291253230176161862432279733274533231632657853582466918095494274108764777926066210657485806981760129263096735143267037498482929246955313766949492165965483068579222614233274453487828953666453570843611630494067794523861199422171406109588019350222098348921261024015310374009651303648968825515575374955365637429217174592457930302235592008582333156375282374501972326351650025226038648712687196743830054216157402670632387447506428317756079646397664844837104174499622891248902559277508815729677227152819105557261739839397665184542297035322961398146556724045649543679950079465498791866105482818033524157884821464393044631486188075091805377057620078467091087365394445312055226143122015257522558676671670334841135011417426539064927909294575893916285633479558163635420658037254023466676754868922673256891149479167104798871563433688444680162982229627580188261198694651652763299742736359257229807046072566397786442015757471071912833272222274321953744285170407677384531167432410293564573237802471942377343149585942763857596161171112720736788303216999262674510651561806843810765316434372600982384613281262989353740879794545903062761858973606435757612663270683845099791881486370213582078140184066036492598715875319362530250973745002088829135564143051427238698757113328100307915659560278803222392723768523529828423493566886944522164990219578891341174545524913643573727887016166433656921445347306576171579550113325283194044154893198382961346335214132391515949491087545184320304633351503374797036073690129150291567144824180231164677303502130289841880329090418117886360975774590588535550384594733453855337257185410111470680836247469201590768940451280394716012976318174015772609838529112146426835270060993108402568891473488504990262376925126775698512296558867132239147030129430827239869761813820099666650322574950174425902398403680958585985884388950433678976909546089820515667909651338268391850957606258232332830793849851009979255595854889423451564652593769065289812517748199766083831223081335548743659383953778465833230176329793039393443014865778650549831486611121189990198582797602208509027020872822100571021780711332768952978244229323204776808300963030461413828198556123469709431800768985716659679337066973202403702165306040688088098356908416939154109584647397083889841877891647047900926762334177004469526401021811573868681714397343566044699520882983039764943086670351404844511785029503681808955932646663455205381971985350745177310285155693342061101137406981295940339792595012160629903828394199237081472943281522730930306256251812406207054284668169927505532124047220933005424382411751741927045004189480679024660492964218149879138736223350095109165604034142444038862479280802808033369083318706401661205045988135505575964196596872029699158885497617695774498583565675162536061466398636982820127235056018436339456209331884722856321997660643283261662122856090352099189668158492949659567990832577407230575530475228052285389847597566446489529070119448330947590272161558642760784576519869201115841017125556923573841000216718927873327857712485380784284313102980629174805839559779940428421695106623126391869978593095261621354483392173392107450933048526276880802709295401224005627199036529735986706533894699834064431116982738797062071949011035141978118461937879504738569889567765806491188903030425801794945634476171762546690742407903465119962046355675260346994039425713731439101465265118572415519271935993477376615739737192442042183098494423007968284019294671578517283262516786786227351127432855829905124505395843553960217259043387337403077235275854125585917548446528272804646815374891842226879528140106577977219216642820803218279552650775012502573036058949481846185337305294474186516606029058285072827698109112628870009259178684494679296953734977782757586184302860212036886876824894467624804920754028389425454837562939683304590272043018691347311777527126181495930309995609366750724101449016245012125396197692734048480244072723028457811825279097707389057252211146608243708193570332630515077051218870382607087488454257474495482394076559677313700884071779511447434564085873423348889068063246464120017150563237738013227935011418727374946049837699273830017422185137090299982784333653392563707541886631652554363418531604126292454918964258040774121839744292490079088239981350932624101990549621922837285992949432557355301080754460514697507359702470258116360779873077521730804513106566701699652745107223808367215723231350608303621387608298409112458133693489331944402510943452394397593710404024861079870383240042078528081863729944319847975757495601001699982285258559089532803755514810923177536120938262766569130761981859118492704517106865533648252197393025874981190818948521957419332994886224966654071978215126156354310761493405608162772493888943582529316498386540058792131977141013607683179980750725479056762261597946169862202601322739129623305165439731863858340094726742556192292657838607074462112556706474180304690341340076545432757766408047688152136103865118869927724307318680300016460440016069337258539975856789154989621443170900872239269795918903172496276521289345918280213850405360774180530405658286508139628094601758912283067751897072804737758688619963834036184816341383949809039974724184846183781939206822087514198987956444494802056955738188296326278473820165647615078226870485675669524136325566398974594812945565324060563100048282826138588144596890076883126737525496329424331158730778098880009008369216866921161275583995762446410307392315427855682711040081433328995425713612166062287343873327972777557552980744346202137917632434953816053461203778129956042965324213810079714875467598200524872329499812752723655229924355954277777608459671764501923516465695148341875380478492840676457265464690504229035280760736794533110328670598524568409727643712432591087465127502825527700435250285934434727238549677354327438510201957997680339734349715609860391367407921982076300606262918343016583364891323630094098948156701695188452847185171505430983644651484840430250925903653569388829052976547316701447600813813947237601151914918750066849177650718668914706307090187994106704557268337822398401918042903463033465862791010504008732585933934038070606043985499830643021175404780566559445174904838480658668935809497057392418976125051131570646160179552862214771236634038520608770266154799634675018331173190547594918191527668015244521472940213333474595222166787045441922671219939004587496637481110180819198213810641133847334181132148703895035446179200114449729653928555338770451827893035463407490910616709733984298226592329157647216494740175564118434637738245720792425605330419135831894551366343053859013192397507044626632725463757570097229208329803103521294698745193474138608312790721375662758221679300760606718536199547256544422093042965817729113212765886221265827080983271101790956461134569337105611993391598233147060987411053854991553157448316726080744313258630501931070016966273744105705587142922471413644338150757316706943250166836896794703119279086677069567274054446802058270689841145854987490816776570620458212788493477354340745813094673060997836572982989828028386643840441706351138403332830044388439934049673931195936354321352836556080434046173143404196163508357277050183308260693614442223047542110398666027607086794615914606414581086640170583414915786764581244159403400982486188471496034868734506123805038468864662666993459709735777485906267307875285672770372835619843082874201110318466229423459442895344822276804378891180425862153099195611377894619153636934981183834174523730779897973082507269524841645254011485370047968867116152513098879604954840309310575568235088307718559642282789478331506591117029309161180008847001490970337532195993908340564323556182781760119611446319753874229158646689192452165995519826072975044191460969972319887697527504248123981679298390478613682958979814486256407125901968389448141895838900021892884859690825800031127331854081003540640259813046462989194166555373849418075411074532204927190403450671959178114540742625625063561609576227661184848528769776903588032038818219497044622762535857724241063361487979824899401472509640018263693369496055200985081369360533606199035394902083752725976214832638035024913685675151686947662853116717990061210166205916951423449565163730273607663083202679670147703650198582635883784889568003681976659578049771731180903635889677354733110296301075342103673135371139183599513448566875226208635632525767283836550540371261849245981394219512357695476401703459585669095318655020468537603287781924116928808328294243905947578561964636018935474762467626357841009003236010551092739774498243495858590541393175234710096270938179450212765321594506791418743577087959928971016028592756620695525449412820653393186536835826261437022965924988533547570775997089868661801321548421064017632572335752880360616176618361288197222844817785506449470836743184951992495682531805816645224761392501955750669262957152112930818921799001506965300969372121116843400401608392437761638104264382275402015663846960287758792493726845781998629201507145767856790382529785511036646916481196313583376807911630213328387792910263017938800252463798086497823232530769146880080399986659625655881266459093080239342999903724826722352950698845913011307980024762631446256815574032302784582845417680899703638253993950409271963792623104457299418143896941985233186927493359848763827398653754529962806185582091293987824860095006788841839818050760061878984508568712007544465287673649660261924701025336915160331451527117421995347393342822068491172260577317316041321122728482050565604031604892953499671212255474593989736654052291263970378971925864366834330977939860847418531984499067705177360039266542866872028547918925162342774667639783773619585905727318589459673255252541570812791179572090747610821042264934778857720505827833411666743510216532074514843640215552417164747889722898164846708608808841051956434121565283603111707044921076321615527022646225587088431059061479928266864102772689721768405527957842247295092320334863801455317586559007762354278562825956313912165460561221798295836733266428163544522074860185655166430474256575193533488419121011422964536834634474065710160926619562277300956184109749218739367664521077987987954468766764217961241514320163452631105111005004004910430344475690165263160135763839102300782746180980103063640427564905933594765215441621382418676428176510827573427146823413839874977664427606179582202161492904486280756656813187199308280177025345304484360457927350492508041559585515948562793024945984989257375242680728910728518824497869201397302120755176024547312016885518182859174862272862032883274858950253448688221778617110104260071049834014682391259395248939080829524384053184564685023101030508966179729422367081198827005590422984776946851196437868519725200880528870570408216133538558566466014182873559842918202628041454985857707971389155769484853727177901187377168381070699527409761812309044580184025907516753191879871185887980389637947632256924901179082170088847055117238225862240332390386469846687683285277302039414142958318931603646699584866742594769695834187111603495029006562059997826640558521727924582263162797473939386178503699887759855110402444817092734640398733849836862574138188023328949845034453862248185140830939966236658230193071073535247947027545763149351228466972221052977102476962896434655441027084789910314212234307202708439820245052333554924987166262705514465625644530208775527462951015753290775552089648999453803537764348890806974412100520727539359467899374635230940864109080190974469456654666231220906670720951216619290802909172206643814046740004215507275426938977387580759554631351836050218860468114073352047677830716820721796872766444843941626570121972416347871973107406272931763415075431373173879159260638069591681512731238700548191816484224793419744205962018639632726617890974755543242602527736361884726357281776481111734830610425834208543522740386395665702677760749003199266474501608202754461338330521740177793772108282764943564662958871168905034140661477907577075965296745819958923746150654137782266517684251888940036211884544212771571954548502350569049978852657920283513262673027789958913891258521265991233510184774502645476703178377047772089538385064916207232567869657384578507900099021153461539102241864877387070341680692991089601490686059037114918587929159752469013124277128872237307683697409619512280170476907830556590305328490980826432412894155092967420730823820973658500317612154173337687197943780421809459948116139940229733279820052867241017785206914550705249189902106828359235935775520557948052434252095565304967692388451408689645654109507137054368665859884678031698136193398349479082311676388386892516062714398933831386868742285485657224162185600451452619848869488729371114053624678432741066303016292363371834028674289124704264771114172954099460964470550405172026888543916801236612879958710321027408885879624635184493911748658100770571365014779439780289685728330203306131101168585815621437819758934542493558531901943483576204026962739570054283369031839942403123545402455088846435141320383504052530253891763434563160241044784975156514573777141231195745284142217779801538844271856387074065066691679695448374243396924351171591449290465767757689014707274487697511251828610398847693896945361627373086382634132954535435579403831701333996952308428217516693022740281052396346326155701842527454535586488830531868643449211375772293537037415494973288686521784059655516645012797993498113781552864984525364762175474314162264660687626742144253488670345231503992606333665498923859801714938918766987651770931550174023717635859870759931947709437428299034859364149338213453767169209409682595212842569090085827607873886464440055183565889162205720116382897673890021946678119030345468442616180218885077810228898623946791807647101236610753421013350173578331901884882865947197813221045473389961776409446427985706844781232826886571701780198689873686699222825129040345051243138874077316093338124236628945369712564505040295130425497433787859900788816682023616999978772222475474128515601246074077614055615664710947020180912754602084857651239985072277531975786487577462587905814830246517543565088520791553399703855649347172752434018110289546214034664955777319230532502164885491934903594125349930053437442076123370314053342920113804107598707686038316745976514870384602322056306534441808439075681403167065863201247279227921487699607965878777614539473185752262046608222087102086605722484449089027028455021510251814408907645477625221622082433760331707756634695272990307764016593138343245472447322751396157507709284418554154152022314686463840388156630994610529038392780070631672363328505404709970385569936180511755989063499988408099082117988451871326435096901276168383866460968561332436652915245845367727072739365637758905999226735393025628502743897233584884221242297835826259810854623807778564716651664624048712276481329875746790644530233867016532009773667328660089266295970306602065982000310987921804024675475130001078744173058460234602661819631717146249659248857298012228218390483808456003223838810677291782857908814386691958669920190336339142497496546514161408118062183206840252639576266326315403891265621583753496048256399074865411439706056566595787663922970177069830024113437597853208370937094408998070500324200773313983977901730528605526611030725096376240874525217915559784571616343232480088175519239482663925852170205029961059358055883785175441721737890635737652628978795131112770552117203158174539598786468540168585893081211933386213511734738629756203794608807512385337334750040881483311450890716119770967076612542231349592009160825013319255913380682267580526581400533327869799452971726933900446128434391389997395051943217053152384068988568780731120429410656727323847618324705113678390701244602563236357581865190420787793292589236603744018586032278754116553801676177924760717044126931811494869367544463369879906416718981030767421767268740403971921937107355718714915879203963886197995171071195904462129603307535585688632395814543232669857218703370623442844283884358149480242359455837816546820346480544152797792892522705083880443742334770305961390227098550935005479038321654997350145063931762693074517133580531822577413971000413971785710708536834461902052183186429397517801804501240666387499407629388066132344828059167897722130790061419393102900739336150224764583437249053145174574609075270682790352128893962704114158985094028597374801307465422291891125085896155451688068371673372993594200742046331261534102522041051678978889454231495560055612783168786161588386435730829623847725956478701895748388867051544751845478363229682017820779109976187620142183344390008101756708490633405611584099784012707538717881847995190361036227801562476634477317448432059397818295425144749087832786732827922848198457383144676126393844751659579542919993906229299685079070619709728130097271822400568539993320034851018371840766608791262286166104108746586246485398025072733959019420606286746798871013311182682458812820910682981238654268771812617562275805760019233502484657593336263017566363134574221044427114722163567339756159341698402835947596006566628142429628405012442907346378677107116852508638490685875546034247454648738074591385042992308188910502733530256248116257795501589353585480666561276184323128092342043387792464334344893588294234990221116131490686396073537965830039735643611726377762384317187637077502462670883210934100894468212865719299482341280390789947931230226056461657664630064953332208008211818966262874512905729935706181744361258315276293144118455727331496018670523914086941855513685622663115914030047763319336034175582325662070653575186608334151633670127589687937918579384614226616003143730763898541180153272882356384035196522796112201025449948823255812752557772122784200242468940435399835035146144751592422752006520759398875671590878511504878981310388257461523709772885482928188265362798629353445179450898371108608454439285185421146526407278961461538132194972673519961591563034333458417698780337131177062882904278123988647522396841052436000649194956155557416363471806631458708430353791797123227937127605515924564523913393885819191428230128749952134732307259445547363256213523159573451092193090594036733506319273507134884674799863853277112899575276144174527315860286789823334505763459411784152231835291425534278858370536974981895085812652887854138759876935612126115749918352653364774964902875005590067850300096643130147660654388929400402953592500822434363177898992350843165556718925609061540716568147339602372340176047434547682035851293156825947226919832114382991480502408970792807123970984591491186191693582602190486963987871175299039011874565930455563637931300849170908495661100375180859593743503347464790218692070266206525564756697308128042988260947249777091417202132542367088414325365727663970169919429699456940511443763168581262235497646012992168903970649067929774216152244995456103468467595388531933422999861757863693579882772537374487461165296510811722412303551563867503387312867420639905692352795791340505981506652049147317317088046891414914187717093873481827543287452826015873093136978537165174797062349867395166534721767946324315184862303149586429173835777818789211044810711281765675931680060645605194889888557884613681365125331389996778366024980832687521623261750650646054158170023486876051514654526482384329981267636184003103736353971266649071566281778940700317098041473957652474920912906181677088199796454978347325371274248958387576989550252287878670123463281678163801617526838220759167020806403656455517099076048305105483352317049144850798108975646565863406537795078584396855901268014302467551555700869291534354812322266217180759742429191293117322506492705581306130410865096512565302513870263126206976468217884949438369720756399396496623434878818166304662457456178549474304419044753689654619246855927453716762955471134127794359192702289102850709554845970397145695858215316367382524143315365285163319482768527861568399818108813218757740442240166789554533348957065014037687960672476003473561641471293668023343797747993448964351379727266346229833901589884424702031524921027561072098446921046464571671837263970478568670372509685241381617755307527690650285168967479020857366038340712431223690923625083341316454408446748485663677604107850261739322681041852617737071302621847371144164334320443834165324451739546090204689980599364955004717211840648525668982100577190639505649196658198574860500559970424453942965396790140743387522501053450327406607635034141839353785182166278064487307633241522764781500592841531473327612003109885396152658363617605638083796000556480229142571539530037211818854714937624767624390775075860555857248102921864020135238838633450506786412125926073405152912422495298295588390809738722278299976804650409152701308061407527574711082336673815481724675754685390391934018132305037497648871241117683500839804555999134861836342248065410780281862766264176720232148349166980800553691646568417014573687828876003821102550749703282726321809663520585119372109317053373997536065266067082917779690141908361363075582133403606758555142553925535683392365326047743110511611261439975771028781452134744594230279760144046907643182070125952835689770161089475643880375531462921805078854197032561048731924538412365725515556648055863062287774912263632428590756956295371372565730588812425053851827837671018944223644639229692026730768313342540935554535523167771617505570492772563149832568021927719169572350038072448840190230516059966568276028943763409015376556805509846856716618636485074517766773899464339599190859738404895993972034872561330194463281241407235785708691209794983173552947574678146479989072486587421264465900076878635316286492433773670552312385473768998055059205059751903433933104697933664036920046782759623331343610850675210111861881930121875966079185754389904706309504551007073000901163800080444090821550696423542416304390524724512085505678908701063042936537727656185641951208589417359968669147380670662303262166728933132283768274582821732417069762755619421379568843397983633002269755441820115216443586861822773270528790294488440832735187114803029339391731511385819508979227640543816432811324599416940700202666388913525889156343018144284823718420488403207989501290798615761905525392305439757691767326645922035297828784022163309259704051392818318707182828104822722555771642501600739494878093087777339041143629610270928717811621256573393327830217212501305948026296047878618225082761781635292858780550592747004590975313250333561053221129262900299647071109854365387390286468100080823008540650824812855797022888895643296367137721122487910818164435224568372720456828590616542088655385656573141756932797065818896145652081374675500959860212404484384774571834000016521346652065885755017383003109813797559800976091702410517465546905244094474717008187287293894056069947298884837373364794818088159063132645115531495627697364987776580061960544031790325270334275745391169886992315070269096194104020360777899127469473996362958807046847436737585650569546570010604602962904656394578581984411535848762119579017827994638353620769228834816462349475265747649034885776277296259814788026955411812623451099035516277533329482866895863318686366571220595279400087237666602180199713399046583623921066944530326048591512475449192087365165539606504317613054822644560321670737678433395070603436163356704640921718233551959866321021284620751855795776404728321466665557326427446003811264536513494000319924590767170062996836705199717247738815968320801623071794361983052275046330299571139160758254693831872241967844670130882055418689622959610387054861585937474712828063980723517097661462592150339399633810921106352517192268226075445293982387474073208021950467393008455980020871184560513593527320960321515315060034543970558662251571436140042164845653964618935630996035272570816711777968223524952916061062790767045520841475969577736256796575762894425870316441905208702076778157669337017618960306388036211955505256909516435219175289652300811993596056894244093257905300357701594009660494676757728995749308730790391953663359418474010761192157894006608176100394767450137409514157901398730398500769490372355544626886744389247580903810502777661167687797033310224114503768622638378153865212543863720243493540944277093313950712215223677649541485523219260380776869027154466835895734123770734845398535814018455765996537705265854478361840845908319343259112833498896478416885100674451115419626718172452300803002487383234929958753607086193619413923858347557532900683878190973524408015648155349402021349561672060200246691824547304134353701781753513754388043204562960579278566073607435626762347584093390604176054509174875038383411867931517143400478005082510617196426897969815201083060388111631270552060544337883476639715520406242340116790500371268030743722253824287694029577304542726118137873379517318280124364226749616453367861295551109844845416968231523219349508583479693659272183263703219751560572705144216391464109976956022483828733078807879534068006366043393673559005218215491424459338990762040221001285293195375901836358696703616879993602211775764461995254699428353317306141179352678030538374716893045823945259411432598567907042657020830221538774069623149379364365219209778736383863712897524938687345336939197452951384537567609987652630146252996631246805058000741502086960532635432367590081075805504888637449910309259547254665732015017489254243285581545126950861315218926114287090245725231717812107609464575325465238808021902054694434933681221341672498519986861425787155783927497627022224932444538803704171956023985284373437360266127786767422019180203052853731745313731585667568396094460974026754161846896207511587343117522365591438955337324792356236968986656180396943646964147111798821157020094028424514617659622251109945373170521477888463682038618433224518825968590901336012929624091596084181800306615029162755859202973106960678622555710582907381752785717289524309795759716539124604821585447759759331960979736312307788458651491725627438965188257481468601964200819155066300912630216250307500417211455075593819663134904557847906748731336196227419854575153982199892345611092187516252974827970744870174090791389978704494001027614133874878422805181687862647499104101907056545464031533716924668040799888583026938542971938110644692541218848123784007564148397800047812639491310761386519882108311086903552724448986974643039068509856886465555859240735943734611073007032679910258415432454290886232307602121450197852841545911162565821662268350905000535454666684470577137337758637677122165024808250354088766533276976866153912452893622021520751944562251074609228637402047577897098117151290911059757876467285148711404340213806591712623710069567980155486377986672116950827565951129772919170897094770473841350929714602664951915083022070208567684729125171922387456563549518058586471041752204235216305465936225727890882726787465653264493094467450095030114994173647912635001282909848797454006233796616512090821447072815494338022841306932563116459470180937661268729215847794148972549806767313821105479580994634495537175216660946079045763220580076787677878565045271441853012744450186276563502419386772469192525283956680562116901823493075039279319962504889380080536087327209219862430367342849418887776192907120049956721130476123414093846620256219542298889685815013124807966152642063970753862961176600636694947894802280069029266413147741014415084116211687251681993330091594050603959280032091889847561918205712146768410846778085573040399624241271135806362941970636066378721909939721921393697172005972348043063210551330227456501204054450001975102057472513221458004264342606064612019018952195324575107584512081899447298715999516271509854481143670243687090045854553226823029223885351636635463076084504178717532674729435130086701764452566662137692674141706967349205511347645968098118405775843556075052900333700658464563733276328425151036790668101144309323916031474342325083188688895265411932296789138367416034608977616152901437283748602772120895029517276320082594397942899787693617369257518441046427041663903544846433642351178513052864113932622547574859091844423897043049537422963544601443762949847390048531639948773193460329380517231507835747524856001613997948097106565540419914030633016283196949197679994744381705099549782579566619337806852851829139800050196307004023226233662619467764741482310677676602750447840995197439763001916370758445288903755972328584737345464264604763359256178833469774291543269550739261014152637037214619958764581019990672922347439944525996465454832417229933005193790878515224811943414618888026670414008499385910168649606457483442346153382030021167187248240397191624228345925516335848211093702635377570302264787603593418971727158184194336961392079658668148755381271457838656322502492185627658248076128780480578659471688301229921750088449469906291824948765468027522503836924211278401462721397758068814682605806133312235918848692250471991412757687260582339141767744241285422462632623086657630995070281679172962416269914581119833311935511215718861684596772845261436920748733962391621242026792713793448510929914293389324677415261766668635418152225310698215539856067520030191453835690825468424023139512894074289017996723886511091819378737938132482460351016095491499855477639457661697746188884931492137586536661860732577091025902372389263415559956737350114562736375817462940774011351896153539184377960043581377384539894455566874051559510806154784735777373134186647674546313978679993842810296975907653619262986859197365741892891249959038201650143550166345752017050333932862640737481257855085936440464310845853295043148825084043346815408737433522050470311473470890107078006784315629164807379990994704007182583173421616258215665747840389703840683370740461659315957039616033900891302569164738645854603853332930457423575804437795013676391606385870555305358686834655043492247104328048807954488474995272969346756752612087682562999793822820944092130372762826908228480119589822291303056405415958432373053787984679031437354149411061786116068442174060854215329802090851895311476324988916861168262921269552919662881504765874020606378920194848218346844412660579278274954016137718640218426637527544431316503423669055326674335934773688718570268421776377804885906448504887550296325475194826780535594730758431872446390781061071125886575187275330900127748659817034385530386018459730821680040998143956643179728352859115038781416801986522784524336090052194288441247786837894588250176231089687998158547098696596808317480538126476080063300040661580441123172205848834035080509284509656739327962076295193430266751351927415238654873383529342374696942544872733825294384737808562543589715714574656504160083304776827544425701264256118116380834915497345912755105361058478577972954056916997915774172374719518614204795681686373733365265243338180189464504518489567051727413350699378387171863653513942660068104673506074233354510595454455179775865927812051288091440640929910582135434159325727674106062781456051099725014597859440540976292868686136078179718241664612316989725515888704672945866812900388588635190129892400395180506736973456821412555451747870385091184821100485255960581356496951810715126641366806238524551948119013409194154805795755442056780440057263106421028512514972032025838481802824207722268716315373192245439816552250417676932090908213983298464288036651509341070155060757486158265977984579711042908394000772521403447833538777397437855443316476629466633883280365271041395546592804889034274502411016656114626763754750628761919068684623956663593784731163235002138822986568096260086284490103960985645883847261871950530461232621474160974283666985753326985054384557568674598937251312840540485685931858382823268380588088206201158628272124568671022722629137869514397883392129009107382912147870881398195270178896415617884230728198214383354932924239832267126894082980337322513127454345127618589327735060289115231052925811979879963218623630926869615022018201424020154988446955188260012658663256543706445455974931323460326549646049829194119473390167649578750117880408943750782423401798714518219084083041911104632548791973565812919881817172933810400845792027120001573938251713972072638013904861764696185001392882607759904480199639223059351182890020320928650266894088646826876861049516491231040293194835567459007789755079410088846462136302650261650074312884170439001593362858790350677954316494236962434468352117359901034354338736602734821865763223407774939526543549094654954052676003128113194583793942548237275291666614572712161826312306571701114976675902432868660653479487778662170022148663795984083831537155484277023558624504429140172548569375787132955240275486683899590781578215672862977721463062353714650933513976744382350484587613915600164075164792103165769686021944502501313458190764782008290452108288611372626990567148174421439924443994447731082185273924478560067403497173387070573713147036562494224459330884780199830550052406736893236935110121334340338430312790457635103515847826651398149858716824906057288595571101676350693613977654203272663573955841276634945896661822237817252129070974600808344363656646039356649239944149814971044839997488885514306238739733746508192166983714697841001556087861036620509079266302602403523202005654421946028362524434407470388194503814533136231764505496463739136681286641704815446356767609279955558965017000263567434142982772049889150589956771042584694005367153646805372881235828741821342517612648789503668485180831991295069090843534999544024609601518830364146441704871812945997882739506360604844163086277309643300088580041566889406094998754794679522943251743452659658988197168817709130886423680878826254685426076026203778584360370912715242513869364223753571020516867693542622872666212094747308505333802124139550299196642013177289161447064686840821087522274140013370110626886447868586671230573096955989191987206580377737393100325417421441618378637732439751244811126305428976915020587298595117451722689472356632651893243167392073466309709698229393983887221591930675760697756717641636732905277728078288362131548323156727579247058642428050017514962949734105481042469230155177846074771913386142576846616170970491941623212614316085538847356645463320455907310266963841029724801625195702595505146811212037469839176181024834987786967073103227251031761183696737997133283895481331616366128455471322205453374691373291191085530507995307694933637508530752080349453510690483599643043151500089384912620218789374305141842067820129368205911131801493944626365324838060686107417647030051009370473410799711452094654074252897412019759963044882879390410930804172055425965481340280178587066853962569336064583265194334573624545513717319052802303744063326257211722801736345274520765220198799370773960073549657572517859536180816894376573873885549904818537039615792095407668997563749807852935792695437592465912240208992464349222850300972853447715905340174320549529063518969408203923985556146343668357808830423555607837169845238078392668726528356586082585038825313555295881042366484020217322918759349189901411042190442665410825192223393159707260883576723925318976016410611736121205636436305344399948718005704552039437445997021933321645454016092399629037849525721173403896456947722754569812933476770735495384374538745141584700092148677394838247583001921559359291893009966313739857810046644463466252497622094268094829639585346756028257562715231863706896357250943846707710273152879377339710920841155263686117815210318215091127753290492620071271892856159685176670850710427462084548603263695271126543256213125120262255479326583668120536392965190456116790916101284803339499942577047424697611244760780038041185115607553806466053808438741179521881024994629512720980746918397176887724140581693039190319843169445139995302063845108564665270743493890779867218423103243394289094839827108858332962063010092766257685687291112835950033545825247386670150162061914226989160331273933320615304100955527764077297133674644669362827107189464869236526018374636284564799330434554982554600041745775232026499735305953809752823471900203300368184100118063697064871342610351444061372128326133973779121440241529395666629263034344653658781448311797083330011286125021667221076151941768825835958041135157702249755555205475469342539228903746996944813054386441126808693027142109060125165477819919779549164793035761582284318320145097818266723297029940833387408562625006922919849637578145007208072949421355927543059905168564468690547341005731243735029232559991488585191147020741495529305137972823099196713113729872335441138270755049059890064868182464662228811720074458127620870295003431950127278070496271906183268466284122784547575205132148520016970204646219962381366136867555933685142898790774379538428929894683309015358790417061537577340548805019233308504419548409573961925863944178778244786332696795131123568292325427468712068949706998355818302758549900820009599644822002244163129564784952569485123554379746572627159710620183933999687366548624372091950327344000909550828169208031435716561224776876615845870752750516823556151836798270829281873796795587584050110941095945831420366634716718800033853678122043666137970743029517565679996575806275637668787342885579100285306703055218391293493356015273566425792226295099671404938219629492610791884524555807760634892551830048095928115180096672174905177577344095648978153998188752686122519281096944870787114150730178162170975960007393636739092390263372725337723741962543071599559487357617396120173657171417859829704989283826862999181319599324581950324960897936728968425695523254658157869726048083978888901686161941506218943995733794468909003534443379987327456147897040668762222539984385061309358649808855567824822487844870518610919201512805329647212710348599066973133199125867832844954076886547546348781545361943634435028421261802442151059876283367416996252171432824356476573638433287704907061357313552704295877915487859680874628290047445049075378448741685440503053692468208533954325849890328288655505926732372619555686214193142832540962943171218492967405248141574388331209286041894863794524597578780610151027525645383712937420578643599484465381025712172208110486609339609298827588482006825150599546344056112216621106393695303334041202702543436652056811728580020883821678270912281871057107932076470695416062459004837925527691720293266235748952180709366734155776734727483315874778698829559900456540858743196687554030217500381150383793195157542382373906843427701641922939322521613146215847475785833587223644962238078719738134841921020319647889189357405056321004787031240728190862789995953572466462817132887522955644186975442568464870942870291336749195014536809396097947529624806510014897898888135930591317341311092843283163810683639536581239901028214012840850232456991379871928719267238505328716457039813074977908476485897388456156006956397843442186408590990795557177113189489025244333212681157198089199620563650443351443060574124111330234374959856032336176804973310968905826463847608005402792088003677176061902893683241712106124287586704905885914912581178862394344793787787613165225757051081702857160828463440024937528266041684076372929332683617337986715320241356473539660210415551679025618437198760243044136148301553822333548529496359785872390240877107753593519759743494645294177625604274535228006498918648965591885058714013840015330376275518083710517372165603462242810710788465763727534941084662729567781819847831385538339547700920331679702388362003027794323690348710235240466931261454921291073990997950362834514129821474658209738305750705878811628557518667806176128703857941159734923284101615613263674153434228040833223738523907819716754771802773791225319137359121853461708471609042389337589299373302302616743899953481088550923348416958689148932404017572921674748662529388558631320872137412456926306910586424783554544771670598622931690669101197446812062335295437056431729019842176436873538623140316871338429460441536747027341144242370554772881794770950523093982286927693585839966158680945391880388640324926436731203203385928181055170882666330863076474985364920383879945789138436690059693398917010431234439772110434535876095541127395834388814040434803423911176662290550725955403698005968681367269312659312380057027017949359200689261328637809755629311158621976729029042074259041914816424679524331341622213702547574791752655896315243954529457434431924605335459977292486153644279073414366493599553990852948342178122048242115737724108325545666401770181190746986054019335627866135120766666859632846123234158331103180232312167815497169997251520043250801611824321627770998147231759247007335731510829040204170280942758019590584403014937872322777406424849513588643500875076036739819410366208544643252746771892893999084703413053342226921128006145356157111486795831295366323013353006757607926542866614050670867208212285853617012531998583444750745259197468144547941340430658900072504496098337627523865636845622678416638868835400336971699335546174289716325331576298817532446577459910912535608556776998993997506936280736348101920009403127759472724462350687846832719512950845570481362580752553728241858757089366617824617302059295993411006648634382870877898458623548495653510266476661401637074457975633943623140269338785345683582030398634655204614303478348957925918791530599239410030179878779877506734607160077729557017341002460439093438816818420384597471924051299957233638464823862519831326024706511154634393215235745420742926919343950938485340902873381463947923814980813278528356784112811617478286734351528412130972922895120954969218593836961625338822192154247788509389113178796009161514852733161107120295300039679473487368737559292186231869679003658001937260862759682346712060678130247327552188513395839701438688721679145109802624856178761457067183016766222100832894053396157627093199350436361092496522608206888215217610883000318105713801412008036557857036441360021697373066197843301985598608578858822018024433208928936757234364297259380101567292780245442085833313594716450352646589007959410553261131209163073896551499738499009841117029096682241132767490423782503230690021583688011328434624616409800861323851557004982998980272799914692077141738235304607203701692119528976939540023072366652304909406399854389617266516590775356771744215468231523761945029097954606864169894513805003379328811006636681222820370453103379372731234831226299795016740344545856563455363021564689586898046758436589648444411425085206892794771812793139127377886660369875912773524414830195792570740845454691241833641179768196157046619308886190844578136623211917834046215803935480309844489411078867691505475089747952822008322699054378189992231875097331768628279178089326327724903155661036708572724374649421945258356219992287581945821179816878973193412723559929432306680855977147841249209844931473263714330952693619400630983834141998729087742469515032621127446255752719235537932945205856258253453587495953332457855689718842714742719515799239045926493170032248453569339470184215352210008916515713743513368779594694610767094467792687995790520974340534596424544365999805161860038458873407528604710398242401052910052562148645286166483365427568027198031641240743469470650148045877013648277059918735641377248633227686071596864191089630839625419714819722321242480184784154204215305428920948924994628200900147907979916335832080849221426456178502912649682214755564136078985657193351866422775293597610424028562568419106269604199771558871004334024813841906179958664906548964986332084197058460270612444451994226857433266334352440998906039458495238351675632564207833743999536309778740152431590177195285472152521466761962140881536107622067762015171935003121624219090516876126366446704248252973857944433415550505499591202222183920773978440842321323129345088722334720622224387636322918272297408887128928977887678628323835266122339163998432367387340050784052782635075318624553786702207296196737746090761255494825855945756135921602386358696180919375336323719969196450992004618986432114178465898506514091937951617517255736618472891986228949114222482493871981926305768156875595052556702938394490283168654211859212820644994256329514729150645998644572694471678183778119756901191274101666173040155932216731363848394966243696815988084533170326261046815624530729029736651594147151850991682475908601962789709184369884602836417168246711111558159586904975698347958836832466700146156202149406318526064764199839635833467808617684317349628724387791640410431215126820750319686322002588962128103271220874440377684943081735814678398085663684224058177563005526422512534294812577091332440875752022293971237928226163980816096121174117745600639534225398926208265869380147911051495043787217424811104331255327167679460227581774961989305561262752155331907993941989527533366530444411164578315221374967150296576094383593716878818966234279201327329768057512484876848291202918396331141286565591260659101458366580516732874827720675285058249404219760411895415867875796027333515725133684465392825931959473771825949783023577728360021840587262565521123118298074513815954280065270796529435513030499916377314291878276167816306224338376018830729019042828793277812203421626197665716411716928582769100660782846939685685016375355417078154118446731353525361439058650032288634588611703777428702232648244437218534872052491792526421297382381043542709311720747249427627907206974038464497181814447901333755144044726756649564672872970226714979139594731429458335572748308229182296375984302508727663722239878186465432732034259556326409342819526977325328340317583763158527213308159651032826173679761263555861950442439305622574669577228247252453682400535786338759895214165951913515721758040345710900916422215221921763256880789824073372525017724583881678566740205880510183684325744146077902414548864039427590613925244802625454742418859705071831387443588930534481493963416735282370277653836789412541428623798771303023394151312466561314895375926218347357247612460190576737361428540467530930437719470033776832181525739998306582679248610148851912573296161334079461714073483627471090618892278240833943262969942375337566556416726594082903833656968711240174016616404339919296537914854022220974638856420155985935588098963562043511645088581335726858562500486548339534219234469567064770335170150099666281110703046204080328875099496230087899070390396226691999420857009394628963561873033635748789413265193396141302199345418648360281868529713241582690890827669964123781813746437608378459268901167642911025020008394210934213728350490261361824180528104535060608895687059383828863463076383564566408746305775259620610012068791606807757074953182894050075325153907119958849351487177824801323927752608615468104908813127725905371865408861275972986105448724749675810679377549125783539778147373375473666021116205139227220950031598036346609439990658412629027344265277630267629935885320909027231269486518612512973256481459598132416338099005676127514952577970568653474584680375060970628039354918623208262243016076343470824050891783939862549463761282801888138779098561061428441697675145390995689441205325855882714906580217306743386059822827241748742380238117655021737050284493119121029132886328499139658787778116599777576393288352140315475201995098560652930302335480686594173345180975361578307302098141676929412743283498269246886799305832060718168691958137853030491071095568091192489165215910791822511595250315151760768541721469012527414565083805760128066457663919734186527473116992129642964708641320819549741888362051047447077125985765377444023173617063720520170183804016199603100511962284928101936392109609316948551109870284286901425992834970960987402615817851069580905903657107986228117577358702176590944161484910604155909524268944605527890893592349562405302312901990556825246034723973676867383689864668681405788819718422296899971168639870893667702486062334567661933682825300412150460204256723607885496593116221283561996458768042987667941715530228839399793107748809503959061956201240242679344081494997079874758914901354843303655436720035192202872576674205652417779854573869082765847886962580211983436389688989649062171208286351252598876622820206623050818270630797809723874273776183751370613935614891483364377534572300812813461041982981673440370841250202200525234662678437373177813304867395074511986378156910391009886952168095656002331408298015205823163882960757471821827308343239352545767869129770722220189265974574039750335704104738654281799829725380393784163367815729915508014516854997768282952276202539181357741398724406952185653424215439457018141535250457556107641193765587444574346921671089688474184269087073628698670066477856326623688575646874588625855770427713272288918910611566933419832521366560486716454276013038471277013646368902524574722293894792706109403913758762391814035250903369998661886976850079399477432073784901113891767361654108975639021541456837713418255248746843603688559194234743978943098170263542138466180263811906453666072986520666381948476466789707416748424351796111365269020522144630029306688463349367839233182487477213090997987258811535644210732223423588384590507565544802670307545779945306048335396492170570345446497394655946493320142865690006967124816714840368701862070988639483719331501245939462181584354141463498705586188786870315294526993920681806719681660217546126801617253913546049115833772742861251181869661974804927627171218775208939265883092680655830649146722456581017237616680355367074326291671311672823627272947954232496883469343592323429289221042581237438409677770755934938412268457904626643222793218250599292253926787898847422968123393220832846553782183517221388813807563828717571668081280961220596547794021216757853998449946276119818942545547156175372584864535199963168517835195465355379337806550504352966872432742097775355674632545698409349977272452377903026634469690537149578650602473015899258625980252381590845635449810246755795615004568459879506342542123390562128649179834298845070670856516877817132151918224577647421528721101447957809744800715479930413141972188378818597388083378984292186887673043594792768396596595758437936177618938923926300953608635880151977868644840175803174675919783209712247070734425531247048686937016552963465633654096084190754985879836313424893133797044306318880209429382695930537928390235906503884269605788155531618888869115836757015733504439743603860716311621718120506650328942267574706757268488101389482900872252947023371483443965907136082667463339455557448048231270537552747602223448025051413975378605295447006432785776305292115648638768751159938328427488868215459121711672059252183316887963621489021589959274687116021884619865913223005156949118103515491042031105694743265293509905908294958395862805652651703794560064998647237176301543021732146952455867247071396593704797246158415781084459282273853164224317591233054074584188088098960260337261162471732468616458147281304295936679864155526007776414010586098365534435001680929729114281731424562332267125523384175961026711795860930816752648482434922010849388054948419321647868437153297129939834902447905629774407754927901457306660511288685591523270943896588789736965126469102538247746210505217697095162157829698588418270813487869205677469312427140765846706408294869660346684092282969161746296705201657582296639736886593100115954828754907158584886221531952457333391997420524408184197024691606804488041994205677463880250846115228029135072902524779090889206430945197778206574930218830701135354685086721679388922298886910197119839555513123596800095018575319256128985621564210639764097359951940500058866837810333732531645303285325373708780538791929985508428705824684867498789121606196601569699010245655836103437835482529800892479473944670102398804739733508106035853765255355369916568858770127661122965830604221920072284162565092113842190020057694731275371475157478323419382775982258661478921772968841560998593004037988070284743675409270444552618619370917758175668755096313952488599113649941770720181717930196842200130493174649686360927143048668827948306549101580140847873630830509161471537865316917033928043193675700950486601381328703547765958874632547307577155583084200547913934373103756193408073057222448608459709177810926492143653546578910136091511012822929731770970009737001822473152362222549623906926806946148953705826415259073294560601121361163720113752344264375069921432452124742500372915976153784101777709681479443249442334603454678736802779978983388990220088110197981635240591624065314427491091132790357943901433388005733339429463014304661763465153751608576875485742710503933730406179639841035362943852538270311245403746019128032173982920161792154944708192406076100250340859188861859023150720074348094517110445128111680220777042168548833386838650726254304731989611260710249223548770418306592638731442681778089842402536524985647491436186417619213732309810330593612509700517596749600542402966027533641306316599503473035599452369726203741769301563975316149404244319852593768516996955959755622866630101478277293054070511264671529126108387217910701882215214320554426348574573346658056865905446058082170829996091906618412118231606752950789888578520454085209111908799905634255085606690166816511468982283934248964707811469687536756751488939921624054588021379339313279060772217236993177433680066074184684595828811805484892806858940068761437016217463490247832337700896899134626768688121692964915562888665065549986307113868916737883915227086861169799359179591943587646073810442986204229364305830218783857405285851276487195940268760318582886179873124782915710594544466699149573426631737230303647848079146879638968229391649112528449498079195931651217272847624545988900205123102304327331618875967892135820887265425412305924731507188637168481045056180476951573533481217317481606106846099054948544631966754297718462140442844859234311757858150359316966728189685955599428786194576405271494528318354136568250739629734991115683837432892768295823917848821989229145260949078928531125406754503490999081860334510771837442656992750660463323089036922797917516119543839419126274049446904733151511432947505722169358003014898985824437320965735056776684301886486859498890666769090276435507334482217265444472614532750228709316136906304534350856706146573945260387916333896316235714195598490110300593672454302154522480817359328182254638330865838545912670709858548028157062737851339290671506685780644661820144294618537583503936815062338324124140379832111953057170775715851450110544031771917867883202343507894192763502361436856006397784945550076090705991837941169011324212406270818102889575397216186429823113026976416021459112820200043640862588442054160736411226267231084540783312821340793727129453093786627904262835963123019823989208235002041345863532276364809379626737555011368658339789402560365090790406898827208748218866865837458010310905077999261848898472727439930917043010709069538028722492235933201661958064474284584949735584405631782178162861909720911043214661658502460268217922975985834377338582389574297343777107536698503234893301410035749131424754967079090023849571067023356761429420827473509347640681631199023247091213659630889335015869456996389059129688726131871134863243345639978813559382595037505954653060692754102383273596632597734178165286988933239029286748485460417119887417995821750545520117829646218605045905709415292814295109024203060458689758404620594339149782842849617223711973428735472344738324221678191650680863411242741638510149427449187807635576018766530781885763705265190721282264447970009274285191918017637766201183816653186419344423384177657253759135602519412107359659825435442897061436236702492551432946246665593006113649985992791100455990542006148904097169796218480451451122681015886431344911771654836936554183383172526574211435866414424027471370163248694800264427722371553213962096894846953097094812075026582382700491371418880957423055527067340616050371323263815789999813932894572535824913391246283732994908856594553288683379848710920497720577121766620485855504614671309224381462844249448627309389997074707002844039299126465322835626027027857201056405447751476674618605895143184045588359061236162425268777571230041894252085847320997652330023518622020950754578807751583693863407865559319787616763678319860517781895955129395963763783558161137251241865022911807832116884070194145811497693176475442109658984536361532909244141375946250651277944883006163136111552719799683083581143816246133159706693262333104404044337183207266978475886966662597182848638248400884279927768141908391600658872298854590109461650667073434162530933380123517093891504655654440933556536319441078357528323286758391135873806636648446836927133340318986737955887715434741880379331302693942256799997842994371883340068974453535881187783038732247826910277332388116200060133635772466380174548687239025313554483299371954194361249206368655502001334435000721200310276730230427209025793976969373750916190357675784225053663095339622724538745782382593969443614848301074256672338789801403066223038359775166525545224947128136368877490251241962355418852701504821766430008576433663957474531807065104368706705110043224306693132003405350266855620060668565691671765953356894709456209135332896074309448098739653518742302749387477357359659548553010711995832967714182447872360734041055573066347268306287925626316147021640290836732717494091077061970430195558583657856400658496546982176691714604990975252667752694578032635758497228867915992439771377036174515880772339942302152785738778834889631425430816605352113577368744792012294945424387887670841006467593948795605307904535047663628943530867545493204365815091938170276104536453456188762452634486662835238082030036838536837893931758826505591198559406854161280560472509448630846304130262067850038295789872956377686971974555177196077394320676420663051536701893614954160794257626968550252208228401086232384688202465875394680466684338228272709656741318609407609205802436031834442631523895696633389199960105335327252932428198011252821601795450879010693251881970062296288271697310155846962691300596714691860408065016407577698734546048433668719415726162201827423756201637703939650365727538691443158065207631371314848003693547606453382853099834859256575246670165985497007469895478993859121820203068864940236603744379474084520918383219496105283137737323688789907387240708532332823142186042261672902078179571146079077650564645156256547744271535641934669344866873224981955436253698932076723036971782344439461150160934020500712941971726844675036247875465989265727992894205707623911286717645484193088677811451201115091571512283497699845992028321554321860726810472233959140940896875169166020578767168808486937723000737005569696765703807564771517516935558842830646293129149757673743305632814708410625741024606483423768307326367900247922066631890078563310594758040327477274339952419496606252388298738420666237796623333637571321827662632510860251820413950205541511543372914638289574744768753927834014769762913995230304719531631429293949558838082552346726668861189134887770188427275516469636625892937036837760887674367353977280869648611496555203105485287377813857871418746524240626091757232713186252855761540520787154411242996030197107659396242897263000944365432095107374513889351620234891598901547415637964610873601434083312792185302728818285503978882328415365555774869509078588096795868379583735509367205294239790260654642410295236681471678487965001925184050360259608705290334400843963566224204969372206102521928572484025904744207325599618686329580536513440175047978843097096511052846214644889434941562691035004088919393071914905109564978310139990273646631045159017741468733410704188397555532180283555806495033739454205960233526223354430476336744082827969922786018146123313523460023116738392130206075452471079393002450299713917108980368380341356321233001660580631047801596478441890052305686880088996767649975575299241632832946099431966120656215355817536841692670647304271332956491945514475789126764729606306879921387685917324290040153281281303153731973696899540029301617119062420515371396781930362254219798987156484041926725814237901550174463221347416520260270835915779024143596541922322604039880437822848241597228049185324688683734636552329132596891583066423229584381272947044075838138305939355148360110974239023650682467720161123193307179290662176166824362846599162364996439464639241938173683907936657964284240761375576197393543706558029949549875680807201928749575070595794100641516242740208915085807492360665839969372610980783013513351990339973609186915360863351722354348305862282719686353558905009543579405115359193379732460502878417606429828858519193436611778879126525447598406123326167930645095131757258884936749966451376368020368098719774049247559395982290411695905539015734043829362625600653188012026292898597222709718145047412092462734425196918081787977949853465387199463322592135885145489368726271250499706047444356921882072785647357636780642932351745688949771626540777127672572065861587548348420965305809353964080165224257320576709087619560618660273464852958752506755835419250168838851055639694112844219790424308943457463032291113704618038190736446681021276237522399701444483568466927335000480153138166836339812886279561625067497515429378737899092856334924626097330811490464561867979155443496162603399643148879808462344946394703131883988687867755983607968466816776304811199183591406252045116743354513098126704173556169668699259773319459776666836754722609770503229609766579725340044742482608366497371477617191392864199952009404308224119491723222609130091933031298116855949443676541597835486163142315069201577724335870274346178185484851600585069023926952914489340226976778241242315921042150900837011338670860566758078301360963704119804616211170118572384766591501878142075894523160389596528450723745138614721343931252115598821695464551071389380241160106250262964923593021065109422950281687396925252049089465606485032740672705382015085685320499553731368830898982681187380265118117198551850701821045498512791288552054755757256131743187793345719958612852709574401081824399969795764312926581851971206234131849860160879496327071263552716840516268058210023152332387277200242680589314762348700087528513836921348032270239305149939259727891040478555184465826872903856518878689608544667986798676216036709725792750786321086230796853760575111406369227577025039922633926118779908699441468055920235377888061024625557131065385103811651984670503777451482148393507255911055345623953226549828757963204655289485652684185159516852848279315628685679389674297417041978636862746017701482093359068766717713514335763110420193094620570160000963170622392763455971816779692669711095726749314546349264504783517094417452259644488693528351959987096899241433198281309244044720079411329108634847662472795067934302649369375951790640773838112940515814143876836680090073485394293329381408371469347961239426589432416840132381196740247547790118153642536581809025258355087662497062873005712408595714419769218658403310000943121513615842897667601637506938649216200407763517668814508024104663422885375972773468836046571123776130418526146180573575258807965145703301950006332188351258457630802769911587318166050004209921317084446980252298261181014277307446209239898684558205689802125262936964933828899838554331846017161777980308258803964485522166481853174776276508945575634117352342696347360773848302189633238307423775825675167826749506963196073856878170231494811956003714219605444061730018520291986521864525222511816977147261794944547021117835795764812452694208039163584579130872400770294467001441877105762792936387756578528654197307375867760110196371833125021996005645397418025417373770894423624127890827448422610556056648827313647645479034920863099998570514597395253762238992463275624837254421762613465695572583536661747750379486506362825112918734079515405032109792828762155688568949526008650718647522291905526356801735939530964628656060790094838353943233556965896296085648732925228290059945674658686596564301100032086895115484626885235457501226931059594468677373896594151514545244414485778791032378646003967005366245709363243068326008408395779449609298571387200301487722398961117556581211461703904394513004694998066456092210020146938206427214485848417199279624275456827352069919953286173320944412896164082458500518414881770169877881650550164644482280951024475730271799522803095946167952899877726473889127378203961222274495668400259783434069982577591665163163116509006641239249182233866475463079551371013265447514557786424427070031585263608052109295971712864666485332426888560070568581488448738992919892090950201537888972695249330236424138805439828080619484682549902385184430153454903200036738310001965742854830346221706832105700789546758365513367364791203443759796278067922141902558134413016733953448372211625160361358829799921796598167362957083255386068285928706929610442507763802300309549683667347446333577202843595693264794662264187746271888221641756250102092316318575712498460605383617182979517578987770914156399825957817364669556162144817040849991478764405562074132496867117010697806776849084990152739142979824352881846393503448301457513972095154144624502441720374637429110278320820881429757049445534433037439098807357654192717631623875561235310152000801045028487082191593296667012741356767202656880998059761904649100852424051371247890025815024303824871537262176058579173321889064455107885172409982622663923195915821260763016987879710357192000242336295307785625802591525803775178841790940047008712278733712900716034863720205996887733231553735628485168926070368519059967717102032871342785903099217685152575872457787042596369266160728931584932945650964058210542062996257309408626366820563717697426463844583302305545144753167692507036259323176684397277305317854420553886234343256484797333313810461768276889491897502458897044849613541192928212303981056279016034844419333523867162966950935374872769360468184148448409711069774666107120975348026031882664477249592592092650471440510004510403498518117022678215004667965606744808166993373035250791376366967184035053012414375106026400352712262312916151258077993948357261587448580161041052795124272357480951108360686318672849853278666188830281397203969606896495181057134084327811136084290424708835216769862460909256126161249485769500086356263153911305478129077481631733988437174132691121777166205251970208246927288915345148879708484119358038760257167572934746934426265106819305128348682054472227183465069043156705809341346203480471159644907973163343841922570988665004031834544697835070666745219771147430407962521952425964203956739187126487018966152722948616644328679403265795365321546942798358563611367369848815272956938812542723787158238241312922637984273177544229075419244961651093614378933915343562397625536455043485274491481303155120647682078950327638521475976789526232791505891363309450132050791771066333238162873159238855460312807403724175368888629073995385684421199707643281980086793353281621223074339198440315486912589044186361915741161079251817016279922108549153154168297668210055529897294303206969471731466292341469555523413053276576510862544546532768470358793489202691907825451233772107957150106836545286555018926561086466723685939479714786343147888565293324199678594526078329749896551701128166791538351869077125777326949497418788490403451158408710978490864165936070830873634079466700860128400383308093029702700001230400618391015485418656199137231328029711955060858406456318367681548983691965791074186703532021678291392319351148307244957620986783218651454871426206564116118023363052982906177064066528174263117965318480937337173433634563321116462485261779939366861951795846245821966146229866241041736816565511902517646917065644462805037479817634388225469684419433641005980070934058991415717027504554475022269910191023408051126184164151151798504823498843702591478381100865997120545668808026414417828620061876112755936993448557216150503893821042013146850054023090663252209716286039433829007697113226931473721023379359000572874487005233005962363354039041921069608775915267758881455990476357223115603985626108906252488706062296498114076199095181695173397777259964325110774916980182714981136298255941106808454282057728412313492000438829645719580972139336658581521702326561855527458861763521425092729747024274484504868480874719034395863780115645509894777846264949759292639169907032727867558780024651615483673766414715270251831516437302490704345346634916354657869705381860704876053791466916735912654529345560808033660262032882634694183684285413363765706584810872122345221831143373826667115037867937177841855654018901581821346806131439615915798653944696020074216021051408399091604808515475044381463646224024474866764409810201107514472507416541772653255691887480213683757818091841401758471298603726797716148987722387011437539387703868794500728793350132968876115923855805467068241304023200079247734063250512297484532350471331582387708007380740834288638891837182346858501161653675923151067538999114385599771876280624819345147728449225728321480402146035376145600907520699458301735172480301109576948172262955707495110751945097346342436193387727598944950577108671129751392262450344415740294252602019916205389020712956085555039058084873900664027388422637791251743829135182051897072519860321739503401339353784988311109819350706079851254025984817695920253172164357539726264115602589743756068359248751463880586750802218560302136000721121939834995122290156373912820704069201818064558159405168874503238927743462878355519747150995001672083194355593797626887597329840318843267513336599185351338342322811343107758143291212321383870206318369626167014215957877474816320761914944501538085757023638257840998897411724976000997459469738160357751519589146623732411097961464842032785424246381680993854244294877109706152601003501838377162362295765338967614557953372259319217680283496690422333502742156509201309170899862167664834729419675091618587998158450711347549850934966612677455267423673998935720895721823015350752023162211597892765934383821564463039835368579205176141551721846861827933724101954696397903771859727967910695170057399214876956463348673417464392372161660573034706646762138408689771241910187553421248399316038264555709933752986898526253302804895949233826023339953529208019435726345756363400056678648624338584485812005472120159514844543085710546433458594623756976472016004888557770285944052468219299277461082801475355115111734018303868943184440968205658762739498263161450870315878988738800483780748675544440469003559573464310659206731766533108991071702635078821421423157473668864417044290457002005330775307737389770627581491487559036886458801463794760695732408999997367798166840489025052596455827544235703476795770906283297138250412632080744401349574137261704333431764790621965449068493189814867686410829601758266150234018380761919115392525840467355616909643739036870428592329578201210545763203795030730673613750709462081687607508868094226883163300214593254866764844460045880729804528166632303262287360700690116435221831892216812630902711101976454451219485292099558833090860911444669896417593063292168368284503330422069329286725763430645658445075216819086737260663246293621558239866925681316815325393278395898428926246840604564189664247093007380251404887629907957406465064331448031819564846352350732662622261285007472230214116221821511042413426974896476043495258539115349822023788531051303224877581000242901290348450117031702481647877712111479032933701746329051441105238360180057643743447563226778470864147935713989315265955135534530836401907951354584253369409379817501115985829325549647177095005078272278747470496789973184324743404109642673454506218004996692364520316407438422869286943441692998704358272528556776975977141105857580678151932927157911059350361858323976767304370681284771351122443434246499488577240119022869249022024890903822929783735909369602895362142721862118135144772066815850895834795193317220261612264757320029717228576048722260326512386398786842939234742804212868621183959863721998607161606698313235220557898852541352221752142212190150756976208749330457628082785992936756726706252514699732647648969830319335885868979602064375786456669479509471133774116710800000074772705937238328624209623981830316600198771687187143401446556057144114444076639737241274602672227155571473991682769918169562827324323144955607835135115395894494144009073075827945861620639047861539377405563163681666862446234361900100270585382283748630398013153549104669463923206838480657387191461409332737775591548458865583515316533349391046215901196247491988664881408637942412373399903721128919482061921672155432540259551954705718270240567503191423670481009563413795725575532159584221678479416682285153773034059052505391125803748675739153819591210065403042656210337841002796697425220130368273438339476119688361555140908476891460024843763543606611234982374612899064356508678293812144678841932721772386305736764696345313145572202449003691616917832046046463698142387187534852153831787620219958912300911986130331035687407883326904234559616123208457117435419413097876282691538519084822655482495502375941914909335493356422155801420571797190483880615950596795519293568257088636830017016457526247942796875711795418525252301501009008268934223288346926518636853642570222337736499223936401735484957138632876152939180186684635298257491869371426625871663527486217800653676459565023898251446286414684023701082259453769297905822393732227688335685179966968768412970791726865714360239932550282357651506129435151146289684817866819670689068258047315224904316236696441108024431779177198166194198618863704343567975973642644391605643047797533556378706544584846794673296875673076831968561409450129118717211555123235136577858995934228832972973192842684291980996672555158876303959509810421841580357617087511393385584086900760592066412583525528630914064017909658744848019807431979614658674260690630428960251975131601116881447984702896988480062349097934213503444292921097291359551696429957174553137674033569627578020867787163185455264411071219493838130675507386510104483809719013539496497243600607783222102185561549492208689445080835249366979619679459748985640353654700552398024367021578097279652578968369129262624834853983199751507673668988642878351029281751351375866733938243196110577247634987763559626501283042697448221965659151159983526555622249747563742661168076432609068265994433241716777316452670162671251176399957298725575239952564149722072780290387779935821880499122720799851374197663716430667314786955104718100507934442235425493899696878525420380101829063244604139911830282293161163407372814493913989921043980005049796574432149082542045362378783204717071922946472576319932575907759531452061100603280801928018274489740803504177681983744578827477389674956287449107061184073246123750925377590510262496816266349307555449785107515360789975054621559277830942396933520514918092323797940315044754735911831424196568751483851007541429997360970907595914224452029593480425379075231192180309625467884610079848231699633458836639174412028841443909299683128822678280712003285464584035248941883442934013530981387960190559528652008209039621652478309032845501675878718314229329884391473334187899636393216509282334742711213154752263497324157756158370737415820134072839162367095455168725043364938077534827411079890479042810593768966820319991546682462026212824409712288258167489279830850830637872728296274187687657312152904755819057589663365837810781754418060616058307934625674704277858897239556868894498235683405147738102926416715645060822800728154914373158396241138471794085284924669678025963485408788305737335154973937470289915794917124153233474628012270181198155899160040944473674163927840490075365701878089684949683847390140726940193560714885475603820102258888558927609479907118617476170655309506297736292615627575829841585052928884168608211456282877854413017747747398807919583099493494733766217407408583189391285669173325380840439488008316279178954968971154387993638719702394566091000621129615119552497579807022921111238694928512495384105337601124847901934641096645541610663750980023810776249025979972417713722886851007186919146087091874092921502893450171689226044758466544292530332161682139213662824984473824617067186148894353431639202334707796273286594499186466821455350213638813596632234394166834853509504208990938532717684685621565128065677848389997277426000999289364846045020187317240175279246020857103370315459121522395974487456545241472389851239864505168013549501207848991912664669594798318410028918537910967165588903851740353509865096684677433119118676793893000493070754288980735665478796546404332262306240344523839970925206024879428759408819737698404759199921890852433714514359116822326704837451354040257866512692298190855052082081446257878026672236440206162526435403426670714234668938348765001513473529022522316025912919504536753776530396723514191591383794077605683169236540516456994930248719834108018627776157362372842365186598743290200093744511168581633636024130747623539062390613076349685849653492813163474939348651726317324079924512644696864348931852498061779357136776824935666884194535312341048780098978220874992526413961625985039511605136601607145517479958192651422249665985379784543486146192871753877443006810797559775959729290891622955084198507711295900403492191136809889400892295659349929634534600022314523400044995080626129990608134594470426544122476433803909693440404577157525466680836437110106022088323986667100747412123918657784646897127136054062811618981526368930263429292810181389420724365541695187843472175094018117910835491027523428503706285559615864357563703529823420552152020134621064794029050123159798930108583327547679559523270996129421584012109246108517335431557778071574341064558168608508157840076712892564848941895079508652244147551344331328468370605389921628536305592088907970528967420056324760866191913719285453315170776244742837988433738813071902538176718408996790930754483263072292494144252736500345364416644310264828019556141310214334520888423549853124784707400003969401609199732857292893038510545538822614682604602804634472742874703882404351692722629889715318342167529942803199113360940932956078105835037311881668281774415020455547536885450610823364074534688004551228151741933167246058627228790530623449993970551459064395884370843548763346647161144963859432065126546008641355198162062011697971152211883797912104158568567870754956189967474271576411715638456820570230756369032626727568729840790377686643025271047215105323038559438181593945186647053865052919992745104530095334876728863040536881850585941166054350093303706848328475113873408558520261598163859151408899970573045673317712489918567611302469539613658310667576347410540659012424038936595485509913599810641294699776059084443616256560337278270909370624573683630576421666047672045845021663702356613678749280973626383853393933883910207522731040003531237511876976095208094669582153968428408707437165434076622512920129457840827067376667647459856020484582375858761978051803385264383827436220117958680756208163572228233887789910353140396710593578136397240619655026820987467793252288612216611450125116370306524142313629579302476245831026449683900871428517566127642234785903591841066130233107836246975719253838718126578628268540232317842151819905703741298462349195237183712747707117349765428007608308925946980209876778318212288625513206505336230528849169205171906222540666028738056960927468816279029673329725495414594185176621061940676097676320828179526442172359871572549134012152161159885708786064820146233701825891651673988775209885923748323403693227816515553005624076185214598721445946726747993160602292086916823295762617102745371555315437567843583428795361011873837374322792632718902651620626744492377597731702365309430050562124634113240058131391694743703981013878391459330369599706116555769462258569698233460930278822062586557393673418137143176473230251144696009102072506837142394141486848182179488851535665530457217701474755885370796540729274480647732020636292404510264689941308609515208604142839411188772494583210872553798349872825642341487628973783183084799592498863337758833741117602478828933328515777830040757935998550920356513770265167756799898772451557727039321715854829742864746773617227754562766741225814960837016249226138530484283767495918974383989300371824181836988352628911822510432214254427849566025090365450363335368383450640878365243358091929034747012387085267221377721521664739580053476628489989206052289569217141139953885837853444142813361407649481911897875745093621825929783806168282708703932335623734394372935000706812381891605260633663765447768711682373821189713466518651523385773866964150814575197978446031453990450348960614926519090734549264890225160497670171630706101268968658990654076320456785480879974866079980683392072391265977928765055224558109302236635603327298917848045197126579843052416523768049369838311160507102148051086658256263684039004989041749178166657038161858564604623154086401061193625851135178778193753263047777417483393343540418581757003160552243747056029204719955915599332031649495518407190559163774217073396071591701368074773984069022468997605225578661737942336468102236209911122208205180021575004909076905872982943829007147946371742089935758617307693158481301020861814666316601969772221356835320599051067569584963910345023199281291038507299427187380187197152554413753604748926204578248442645936278587248821274257177798918475692149776165046285823215298386191936936595084177582795170880206208427052566057157589770670113366352499981447114658566506783468871712570828525261508498523452141712495461457968225250193071999641328802452780073441466824231026920211914767470458145540905000895711543561879705892403759762765372535797455947893841128231902713597419841477997881780640110392395055103875742880657568605074104576156968419523181160182677840699689180302190000057094873536721419891995798660431391940227530147879726936417716147835457760884429096395326605286451812114396588233198539941316158023508807777236386588292381004800492229509305091566240658026272092150534891387496550968081523552229488462488659836141644843634520173480113526968013277659295439377130935691627937412243720550836737106777204881368706350929688491711227729786648294184704000471457963765099612371336680229728923797919000536160432659125624363599031288456916719445275579454464044465791344599961258434340681931935165671038475000625546385903614535611134855732437321265919799116795769994590283540697443103129212749352220056949988490569817559736859730940065376863881862067555299848947853837327159614778146502930068659422398619645298324306519240859296409858555333249907329304349616894113837347665063078293702761175193265781163007174129345313723161254161447472507968651216828006786760048474365707390399428591586136656947869502528574046112381678337577529785235278185601301838783708044180172801950103740468168725111032273696785528135388196455609450268296970714830704593536355200858387122642825695096409721867648450563484524357548953370033795383197984857125064128702202777121504940189353394286229900572376381468712329511545167001586106702463329939834330975161622604477401201467188515674750161811804587704351499232115459932304452549999016765276624531674436115872629677717431418686545051152226353868911397620596635649650833083892181247158710707152909506084424356702426880353315925538198354109908754754599497733076102529136943291184384576241903860181135845351777465820557634673151459550957672973342738573645410372894654044470352667220743634548232919318735966814953724590762346083193918482693877300719979233120239943962579944700661757745270435722446302104564049673470450439312322016063791258628358890103411438596961126943364059022768414734588980821103321319926652244899586528700687283995133813722717175276028429386449630652655031813355399567207635536651109390781077563198341753442590982593284922301092745208443380897570144370217915158876336832682267909471314907612931275395726841914164715329671891767216431424958005906403414426689345287184488311233577132581440125164969601603582571378035695153552774975729164232519258424743802031570882173089926423808768534950696999038251489060079379971837938285623792984222213802406786118035750939739174520959553978131775287209307548374713959411542192863340098613711832504670973485486253797099145374559620572167458107641534385603308413110302226496899675358393282132082693349470049924560572703792533075976090127060983536388153988996777623766446605781743537737219680162342293031845362212382486693821064501238949915291830505391863108358733747554880708390950695741717168275027005519431240100608415117892271738710726429509119444589938426093283242028270057177109961056476787342156116804064592308972620140984637374971047451387175708270208946454915258783186907317984102535738949637309754729272692070815236060695822908700462058012634308808131317000987367788836895657398312586288902201232636179936986307538979442638580435638601974393638373547215640255122185163563089295957514407931689491155627243294219825098484176179307386299397710597902045043610170030636951851137498463633468134149747971412891387546649393452730452942452233787316007061034897183518438194396813554129972218322667539337081136225322006161160881022450745221453449182642791833220201835042942574925636727803307165537443536278902185382414837165225207578162607606918233838412243444736677318370657642338450001094099160344355418540613079232654935787912851143371528775389523609405151244138932631257891254424083634441974654653754243190921134630170160520758114554201835068212842587325410779035255713976756982249408468947693960155541054183841216187346456947237565977787626259774594028646033042003922231227296724816750520179359642879031742847457445367671018100053347895137567758615763900139723177827109995417504906315081713188562365838985470607351465718153449163930624345875229833220947526066411516436501376424600273569100940256428498188973844006906079209082602341958788930478317408101726416936205548204212330458882061359543964107178813435666321219272464664790587120913452274389008975735173622196560581733741219806293677545848219747843544818190658217929392989717103793897420492114956163961768624658541699630042791932229829743718763735656027871569434652892604097324143247969595710733670702187596929285596513344712943018553103158727498162128936002138462365746936578972612282050646820755601918452483909337138195518074753794623926452884993885379402821295252334795825893891465962471463944510447558036539089847687606591750235696369453143995531176282256790522158951446095252042008101508563170190047140797199781433010085132263369661514704576686667470699905335115392688435846081614484603371376774127052207074304252628305598424176038643256394708464304126680941747017567843162285618561968829434659272531272288927449265656336635186312218140517597490863955380628610638476301963713871831472883416012106709549969060334274492543622286851997010549106771511862679860998507224741003857202228086781511630284381066422077669220917159102912770411742820490465173293172908074560326568595531657647435829555531892155246413198036375253197532572413516445742270491590524493084153538769984223867419608862510127117757056712997780661425613365603799625467991962795271062886469178608282564054152815568852867949490190994689242093852545941974821158328150835244571159373403822062379787478436204608962205132758269062410124317318082144093875519335045025284246328410385857623986951377054352017345752639458240886399766679305111477452432748604230933149043562863653742588161457217704066580070625147267047899396441792955423272775939818458838114100612629842585759375851432675826526260420148219569676691311681136811920612614118002861814448008663697489323126365735508427477230962101716348096758339636104347151466277960277928735333193510570557721054702285207704578542233241825066615063869604638950612380245050709381469298992807277869137464821321746889694792500574016425811487068726553374539938978370085638234600305364954921753310918387986495595676454613267694194134459805917383910130075289534906398768211637438292482018576179650242722577874353843099795530775623647577107184306770803681430006895659806821463902105160348870717383965050161279500177979463876621636740320592468988832596429886473460171033409031386268356116627659227629170779200661707528892288886207533552769351867564907760663081147362638529268327862458318325815578977500951301797946528620075752078064129201220891763526869602998953642633048269508273654921769316675504558457679312060175679908428795826693709835315292055067190569629166545886376685233214049253701952592981843924245932630540090580110804543501915810333397678802064632596462032217963895175674666784628057729421624128785423309275606956978271672062139969493093514928809998054266592791360044980712379816600869259012795570521642359095842086744977259954835183305777225546116618632360497316664211341752049241702216504177493498610132431437488255637164403531884928254548766204479363389182236720372610176373343409182503939260435431705049607570929129360425565443218458697140802875273023878083291611830763199821681160250417732383689659262200905170727808186974404953958142994767912875931769670835539498351612837817041915833053698351237416885374704700448927815079802811967855297485205550870929634641369620158964546875251145547944913465406778203100930938414884873458803120981444457189389086536927230706257341705650909041458813688311926201964757389920971030981544173120280222927783826063026031768985218537852302129303777658693460717596086084563946559266710560183688566687246921689968947273276668072972039698438516731474284168127477927982850951422740424385765581789438360446937034899948468445882735844782585229770273584841895311910037012006671324113593877502261557170138177044152827703915759660623848842085980135466293250354442856522575218714749505528008994394554742001502966300481047385894967742759746119747304780686728356105371117759518718046585343120212910147873713424655699382557154407126893067600526607548531423597161223654438526356193731455080543918366966589515265095749737568023131725448287790495024279045007072017449787015323714610180952949304827281240767937004120272284430700896678132202552799131556062759932456248726525643478110959258833125725632802609531569715416360898347332462821404573938808960360767646590757563043760292859378232789672894046743594280761035625280975224231171452210264826592115913070658589545486329827124070032611319648191489836644334598996438382426561671888448056942878145147558665681885623697379331511800914620123017779612670802103777442744396529469203370563698252144845708656653132991290093713518176194718882883387513615188415925669950021012224237737532074878746519808278680041160098196002134513039634580583158745398458604093906967145846602046982775938093590701086018960467605793506443390264753091863459028891363533872188910718598705813750939019182112446910354503806022050883035968389605403117889300877194117349628802658547666225463102660788862656202308146974413178793614396699832020257984206605762112126897760994348826714122445000334908229654402007441524383923737340300358585048286378429260543723531981773462956055258910460259160944614182592573015652547367433142007850319469640543376597847021758583054612028939341858106373902001530471676739915758891857972182051326685256693822675551343700740251708132811339058220026038407841542868369864135051021885039681029799969518864557318275413525673490590103800745524571102010248714375164559800113228603928396282577607195500266888494333909252034857831769994733522403536011047784108433351699296538918003682385772756016791835088045448797457344488557514064469237433425492809325084784612125546401576974676373240851511712775951468655357069007298059092275042367855930384604989098777590911592802276141754670826392735014113873488865539791340969005178546164568345161914454126242669004965482392439543075619658682106198363596712332992072143006289971362067087136901199343963066106846238367010796663727246320310782895722050366529348282322327776530569588472135326862572376486332198150992563892393543523320037547558755660565898572438541562307302956064759358614770313317063100810475380523791467988844051186305236451059030928635930233517559499325244902269096135473759536811775882114975213063962403618334712977958188752323888658813243163930173536239419949640743791064969873628214269026797388189486365339012515954432218173015776806165619955823905277367992976740199394139667120159446648901861146985071508910481157804306868892353299543756922412001813216976978340670146323820917512600764436878629041572261799341474682323581226673773712612305085297362686743086937255432097950734939963185182333457972955487762895590165004023389879143320340670686275777643556009493134651108524441729328155637038855129673924583693887501482153204312164869385769934887081783773163300768668171751119367134525775713468244640899547018096956498620946044047473713618827774397129825490559616988664026638501753413068789082988999668933660773218727151725954020881974377041432679716611227145014520688515572466776798389599058748570715423085792877191661216523214783064689575257947955492367265340593508465176911978700170456635319847184466824485122937170270360443612280697067227710174848593394234635095726636909655836848550707042367246438958656464941490764714620785806944622646420934964971955166727270413501519523683436932018433622215733738240239526258008492171101392249339178128439828613031300251776942130414951429797701240663320630446989239482266213639785678078764414193151962365602873343919880484459673200181054117087002180160838641433704637514905363744994677744230126040208679024357534579501859955960380558824664078614625211460619520017223361983083148871286160677337656441175295805040420250911083331478366203454865213847205280330742195292607594947118432276884759874286386074116687455137128430647020696799037954470828431933803925546154829904726922944688322279433737698804958414259513735763521750390860332244342957283796858427985437948649632808251486806387703917692631102069522438473477458546664116061160443733057595233007898052924995807722744120482004165012358102359602433977221966894089460365690993826760129655833790411514534076545725122264897423366444504801272370996301386516430107424029573967351020364161999502698658744523782418815606450913195233281709978835478905877018345288715886724268318924879698034856990917032688233154395080774748093698271156373546699274465169680244528860556788450769221452680153645438759911172182549240367954320780763848994428328249727573306281889537415040880218802882200032892551558684844179824816443382484358594705649032251341922273153732665442337423509285201908450635854040610824594468646177037829720264320625932776000318785617067581427623785786679375542515531112080220014367335495398241742866892926650195790793055491699040630902089345135702127231545036820929056667230638119477924692655765261160858896908947016294322416546874735325070795987069628929921907372480602446488852410406546879208808665541265356879297500953822088698911494103060960159741138094286261424087261142725875978624659741397268720742743374950943824213370308839273889093866863009083062351869411454544136991392464514528758188521687395363279097301992737945200505163200366386479590637352757628901545863850779709822087065805664264309011197363098821545582605330325995324873406472740905277217544388253856315879694179418825859578586105365634029270122236862466748734277493803520723971446960928831956745466057449036731962346580045190845047773156695963120206410817090654099181525069129037412316562384498328137775508884538441574265215009951917848210899186003915879201999734669752613509458758045192479063164188040603823739953730759030235125517340548465038960957460582016931763877364721351467712742409932222698988718317694192245550934434753704915787580394279927336832020580000194150848426624880858803123800031337843915694234143768684062307597717803478177007752957840937297429562491956122504914809346773385180817769538247775139907656086712198259755414261396802442636471592133391548512999211042141507893212144486887896025884545492944016810289485794258737694325070658518166436230190246228219408954345511416068293397437833389341350335142245011646291444251322251280919400484560819735677900287622347625454579120794905534795266176027451628524246219689359300058306066732999307291359599400894402586685004791015903086572862969997023491437643873412814979395984537652374576824160308012668493756263909150201561798242012066316799039458065128473886602656237969012414971430403241678459101710721736526139477180503809189076815786144170131718265279813894419209312280861711297037329495171272808214518978264465547426164781578538100238765629847145756649917734631398909402285016222489001657334357064720807443379956835484924915598572724519611820683753375028559479787424060531420376282807823825839087376028540558741422961172410431674792548415391104732267244527716682643242382124627209816957323346980837707509099855828525986658269195495112777886450037416308520795319483020344115346440709569178054563336256941896345465882677785219820222184123943207096657004788593576441145356183808227079862899571680137584681755274019065602782352864323866159746502450459554486450844042172379788669435039883898283456912946420041926685628975851644538876273001593943187752721183452278423432509714378545436080511180182908367613926048217540463626333132983586491532232246406654862493865249963064524060545998061667498772186943316118833327821807476261852439106749473978367231629097871813536946485874326161463836886627105264946215900122021228948247701980844798033048699891561626063720551735484987250526929752900338518342620734265278157451605311551677721303940960311477504188874073069726688006200459982402481869133178812604833469051883465083671261766817856533603436352614080237659078659032352271674021321096192847946257964319181846650601528267997299008268593178416529569176504869515211505326253147934861043601444555728774962544855065443832754631587450006995132594477872566717258207935948274520672796838396504428404908149776624151371130806648832472345014287799378554947991245703539752062410348991488949786907046643946064911771395338289727535030016720479699245055506744333482153371882605154228755368860860280627262204380798088362581024746462687108764212404021677957175826236114261679148664531713645687842051077276824349312061113707961936008319852482495946997677043413713838317792261658950444032712692809987827482956893999754285928684719179326912115775453244843929106643901077473392050365781364415250889661414382019431907625955542509743381121136112554488343631041970406305079078214872450423499887179684018044448621686243108973564672068121999451204982715624859895458783145091393876122324510892772621969412045065381993955670968479936812371070986892696748248998597564530586975452532370894961387413279721910969166109475758893240006782996555696243565684848917130226863911026663803004549108864737353124646943878289103124743753298632370632592088306994627755240150781084399621187601497344529531921980857647749358013618520910942213604921244969704602316724231575105725716449911738338899523497552003040854277917041947883314695101088971814307500134576737208218276066542612191949000248103279831253811644146622289752544553749131902066418863114838869806461858244811109270673351130474151025483605073628672709579201292945369476705085019151338588507031293783199336195455254476166594273187466497761720820869929959034335663314598031795806036317277171559858136706838696972857296556654786841093877994422691953610970964488595487146357024117385729508372225774669063254730857228050660551237060714459766308812696391255574878884914209639434833787193316092559052131403617198937855695452026004771507826608841691574127885300445006670285361688883835174809473610568040647562408695190313871478859784323131574462777826860664127634284598794020397123709855789279283653753870875664202047929326722702946882359912104117839064614933725264160884345516011337740810233949585901048703834536610359116843949922612139850915118348496908021245736320944977566881041291886698851185037735260622377394752382272678562815822064622921546399564260434926306011500319612107787131837337261734289654670350940755580652009341840661734364234062759287903558207518843784433956099767818772038677516852565087079460535866791772404302063655575210688772721476279490478803510706335800476646668383326956612555358399031774875926146277772058154994801460188497411428992132306836733489632691230531754865342692357456784157855129411072911742414667487022925198730318466473874045835321642042146878361750369019703102640081805935629215710807791979529226695346427472506095793424063610539900958434172738573310826702126314513536615814353450411133941659469064920012041075387126133190263440687991974022290169518332532759734527243984043419999968326712957310778274763982219823946531372678983422198219507585338135681059326754028116212688324868992250195269962348632177770975786931023177486881291505393637179542418694450990891522726519495801012309944844500707266440302254609830256961596507238380032190517519796808361605467308543458155367847849773252753529871924259988458818313703043337018939516690556495070700196561591436784209637990325102324297158058980438987897579789016730317611361126738995108993263372100948978037442345631164976139264014110689753316228487641742093174129079560515337146527136677067931787886060716889270823265459223663797504636545655163488607417865257972058509203336641007191147880027950526703008222721643751031985642960529563752089542642455701308639063391670074694604713923360161680187574546166127725388431742267923910997486600014600726563235768856232479883082236258969131926653327805085572680045496351855495712098123589487628709404346624795483244958391213648265803377485019083941682593436407222414001512880148011919594468595032472475777033506450356085830441320507726643506122859967554827807514266807599748740846467914786873536645012587162712931912943222288833358531969935763100140743929801111832745222013154150599029765609591004647003047699111839341631361594523043784042213417862559696248751911812313955854095875614578462967164420919711987844586352802854610346348302692889463134356906776245569264299187501249155507808468337109753916855108216470068825968981389126789982270760820275986447357500614641554587500368384720023290483836047952643373125341712517993418531231679013104145552514836241058154543777995050580546020370446586438181976066488043091216829341582916963124499910302587361302873843508088967212267978426642882444259058900904774645984728008880919956278489008700456773289745577451107678876483960201504778167083147742391092914736652967933134085461370940995152289895355138251621031304707563729075131211405162966550152747042711797271933137984159357067963009296957801025423286009539849825947371844011759354110232228981321311406474274992521102944375232960853196047512873838004069938138992176167321637207196169729944099758401149361316291064415170848167039953354932470576692654108395032614720650325078052829220251595888841971479791986397397102811601913879304793848902728605656326959933629921392351388588604536647714405454965516485799207943409165035784755892577517781565325113703037240270366956560028707602715158985516186307056597670448441363359234015115610864840406741991575719961839504952385866045048924237719695983424877691754873641807781307833591588833758814371526492112327226608975873240532818442048647923644637871908765912212728910691962080546874884831883500524178260089307499056169078641029332437726216294144659572227613532643454460366988366091158256269057941593677216658080043756804716256018712197318390235869077984870928720431324421839558072896740687059154030250224121350119880885234450866251029046269881522713276266160189341122267812143847761599174938662208956325966290735132047387420270608510209693358422686998816945764107581228253494100769447366509639189444055779697180184974094626849062355988493766039273601106159419648443926900789780929129685278823743680821756172912216776472024883133682284120860739014328284404680977782714913082131189828100301720486941518998686935139401036216615588509028104367984511993754754346485181080427298160623299799835485026035528912670224916160608565197450404125800349669036632790913925225998608775860993483279373160646693437365179645604373841951261725570978509380437421942486333536131414653395560250258481853477417937615793440672838468358051170101524065146922106195625432777361133689270177431212081844434638261923273559031396187217639720542733698230422116888277731771776476001400787938777734878724009994617011828725374520998692461726875900902950429382817409714918396409195941711821263674882725732545914253666914749282577153780923954284889724984810543125452719389156544839273741755709466045387408448434679741741876748059556133937390115907460498146055822169532141597599462589653902937745024879516826740367230515049005767845895828648084582322304180418374898264937665608476179261942745753753038026839851279007325095173384218454846474462485170155215813280148765757436805029816970597672501870429239204315184512990321001188877689891743992713747156036084869942377665847113787526104064017455118903973656158866423434729201069498692511085281774921908360002961925164874664368235599020011727998790001158744579690720757362634590532536043627563749324050829534961606168494291143063086459742920248985311102341378041074566996633606537772889209428238476708775214702841153283869783536198983219716876543567684662443447183364262969890089719410337547519684669193532485003229325673049215756425282277672975339862562486051554560498664774093544663067878063319974949522594892073413921368435093310725088210869564410223950356342222455461978977557029721634960869374090173177338985357625143148531656305726140996988726953566241588308654702527343050627529741397415353173034205678735036288434125236275319295646120109026385483158783905215372975751068442863615303567936942240178937577763808343032660843032455360898106184589855832730969455121684983039639266248064290329063657825672225248093171549272664296016146211984902371959753911013183107931345871202449808932624396834734252171210177467324928852579215562802415101836485027736919673235311095989653714926160990414807640290000184003511493452213757087692025108501137571070911750943149496270654692244364237924610537363778178754366232150508422315067007413258398817551343649672174496910037473301101728556586591491827612586770572063616210651299836672448106657848411470501243412181826621782087172732448069944889749797502063689158569531277383837643073848142154497551904442795829562985075699299177614450155587699316853775609322504023015352467383131835737654829219793760178782331234869772990826557717539941292943429126014620784811393290289068775063450569318808146901686627523163546502394631439170944358861980313126276683949452997911823567411723050016525099380097994506309716155497841246702924490949884399270247453460923538938813362434869426622186928383103450138606601285721744233345039134029011827342421558719806401055859429844166762888508380224104445226126994899939487247315080134996029368270338709612045869084470321238977494904594408838706712427423292820133977373326481741542380284185096261860130606704300088072354341550437592902400138004559227564256060149235984394489835682113880641839661657725966960157574111829475659529643100978449825048996014412225723327302493133310921027597775254358910122781386945199894436422910762199288150869750181826100349890673421483490409912681425468431373093321733224195531194151319931135748486716529401777505194165146577669658837189298076084568289471090554978818863611325781334063936512162015618474714179009897786039017705368760502684308643705971462219395902899515320458020843740501728896397157018313000482753979855279856793865413670952361847381909044865778440073972413905396349432344153233577636895237857277204328828537001105356749740371139703834934484601867686793922146686092084867399918039711922355657385093554017434223811402976226868793555643193949795215502307784966303046832451222692995789154298213311800426101956326425008297546932288834580913104603709226670407951914680500133682347649925427551800782584762751406631279858665095652727609170563121811073797706674782010995266311732043533938612613575693145964882292218388466801380321638305745170029394101421909385595857403327260039850208860578757693510504039871286029786101709595983772582394384220130801711200275691225301531510092277151726074471576442731704723687362801328885561448519707295149104340487006449857125054776965353258666589598918176994854546362592640419609217598349105346097576294566482651697580292950705392216934233348589119552040594565381882369626286064748614666256494166391795522397876361159144322739222608857851021426515110740205264054092046778221123248974266725285860430217330799642013684477576031164681069868178384451698682975693815829377718810669937990861228856814016682764306947445822014595341813800943684571178165568969673511473006010117069693631305242555109992161529009753163316249489658243371906684913284826731323930745102490689311677893234821959922048555482430390474174669045710971583677725322129934047899103592247457115075113617465702723973470085358076536208753738317638183325779226520000209704732161053307577269304031285622255978742865914200686583526570061657842145059945802447386390236128423434654284763346846555534175786140876178824359843043749031089199070539823567034000157399773379477242179569702075999852355151614100659912411969412388010516745020525241573797571200427597595333597421973083651882481809861818353236497234585726255586424045532610411059394987401106698239284448029337550297364787086594175932989537143167874048338544289224213167315973596422768935251751725639451574133624755174769126211701324551824759847849080294858399690122672306746423201286886765232896905407699857795170159862481363267721474184135894614824270359194770692815107745945582546972016993441517619089377470038000915560475961088346513410829406395721984868201605319247463651513988945008065204626248299930026263421649379181293279528134705494885769317589315482636154942203657763090700876029006192521039106953127225321232945734909166198932131566076220472860257066845858343595224718980499989888167595281550584954348393620816497651044291057593040533820976609147206287397409546494054282715178015825641979195861468424967511129868313457952737732541694432473681247445152258897655942441128330526354521594091077475823628968114556128253572233757559575015338987959838104367773442653166407542310217732727630116871115229037616171205658433479803725349693206805532912180478740194295246697035710962667385007493934534455835453850695393372817557140546407902822068755724887081050042092503380345792668089924419888721761071765557311924250855263758747390116438928261022589615271953716995285957885576437092922859195443693451104075981199761188596305879868961367088090717956163251569284525922542284659929011332171085848201580949258286153004967798580159459642864844333846037282320059785046943209689201448282190122334771949985533224624356910832520781028001414216106301427448200486714220710162667097294373091572085063785341182303208175207395659084378730801446673246343999389004248198401323560121159027079987529548372482064903023678882612454570475472621754106555750905088233374322164593143207036519948407989464667819808029738829306357021255279330950337850010652058504118407704247274270022194928295095578341306698095337706571830229057262656423378076679598772187039057837077610889183200532819892135142245921302689036160047837919553664822319842906766801817929410324973328163802144104145040407810175734013389295529457289943897480415635085788752377861382338801111431684947034265005032802466953872807999559938929579494968765230822125788343667882340501736187068264825971665908017644379579591946920030974440070179808497787237360210463089694074374103211783481430091599873068667130850654050172833253268821683140645302164251625625160624414959031170601139094072328338664133041336146911002886292071036273607493859463848870679030808224273676133971592036469984872811931744130903676463357844374846100328705384328442202419294691339501762521336158336986138276215147677327928478835732714966606826742939080435757497708219873588830361613995138346048607913363895605331853399428983844898009530232132955966881362966290483698971157762452970154177443003336238973897433972771447063436837653922552697580835257205310569892445535532009718995708369833545377296204035839966749282804690164729990929345041669169954829400351758940638873693582767494995403882059069205288789023612552634182158143528502239578752370638880125619753964717337070879754314590466503975899584892108895412647099612453636963076329373272940903946445165310410892568806225770914382913691522208339791523578655310520852386990811806337738702450807278091020648498122611814683792028225273643125547980480844158309482220125511355049530177711699540330149955859271194319445878257306095310451197236953636718179101525659545070799583519843156443330314256183228780231795879312500689140504902541415697126847277233766262329552230819688464375082652203264937784046966056862913738984127076198733218628182100202655173626230958428659954027128895345793952371043501010772673933659732815550518164283871292141267108949314879853207199741994778829273254160770759097721878156793292487478819582859564469134691566703960770460928562287421000373913308500193222332320074471333416373197238918083914996084845459752185849335051782068643879950849107005426549462335302599558539584697134411449146892593173976409031171427943419324272799295058447073366356874809610243014384440050754472735702513600759630269301030994340626948869969787053238017117229353744089153302509357961489725546211278712356498363018928952759058529257438259189005180872257250307334729047551148399473827177204834906825217206240628826567582495137874966071450151859376795079054964346185603953151852005234034182089022802757949866500196468149742430155079908063074580311886355804233958410081738991944130311853407747658963921277718816698206094257861240940851446826776941917926876776947305730356825254599225083702590599247429400844559383999207950246648666409491895388906728641120613340305036121257702396735990496579715348930093605478755531512671528408381066014749597079089120626475376120354406871979754341865471533064206890644702315855253394159980940672112094560817199542645473525621546046609646486210324810830908780351354208734838528661662759906181656381304416001948732961793623428467157689161261022278892964855617830577202298112510174753156699249446650800698173019682852775533705200960171980092637186182573487731425785922239949815017917753856207378658733642737691657148325505127812420203481630548009618971697523285545871763238107454479502061052194615056034791449771261252071021821458977210201642010051258781556961049171534065364417696879879966556089567784248548425796495696444498569664536517374070888998159086154597492542953462246475159584075188091684966728277373338319561847874908650828559408368791059907716368760591623078624758550334691261263326746946793833005590605839880063932729454051851316952113462999900147813629505527589452697458272156395683671733515448167713922649740650149811747838283470819400562775124177660030363467537782626438624583651992259694399825944371118539212364903969953926250065338083318484156802360897989700291382009316337186414924241109635731494804904825541849923363933761346133049077241540237999165256466740561637162475433580208930537769952093449814569469481633400356746242450789726724269421948970817719835551063322529008385929657310566713769671950908796455047515648019305702745903711475737248716795613733383619893864878633576122993357587363457909405140453937942842643933233357658326906733190688841706492567038509138303908242773929131170928741037085370256594024678646343312080417318474896700546685914670442347498385985558352197602510353016208945796671188274072524046725288759390364762504930794075111169134049495397083525758656521627187792915405878377257122558079808543599408165963742761690173526905454782469372893448772312510151757787530405027710696727985163335352908530354683972408849095211126861131177050693182042655145657065580168793096005963542256573101741834034712408255420979286083466220521745728544878393670788547980134653131852173749643070000808996579910880377378616604708614518331571511386636879622749745034338097550226701477719765247930952877084275980072557583399020532249799689609903495904977200886273033679458153207416508126215453895619383405853235210130864374126770410250006721487005234661279586420647438133984473116365889842234972738889280643410769549196267317691053678035768105729556180101185395854365495357008808301959591055238675562891420716127374619199785804495692374775164918349958564328166746007550381834617198172745122554245995379007851704116955502991325664766563516234945067952211631946878623019990570060594023154503968480563880826742470928918623444146021174587690400664254605391012908735311137974195423408127398195163179948772634092844264660814215733551017033577197342491209407066923365178572628423102648629690112095332781488870854219610404623221285784314940740336176227447810794702899117029695523896529625623957887397128174253804996114867909451908646103796915106429887254170466692723569837580057182365011453531759150045294350892176230893150676012723779167698609496099087247929178634736363256769781193919496462641066486068961940351467834582881982848771175084659244714932812957683249709447738121316402508326227348301930909363217623060901632704719184647925502324726431516143890084427757478361845208325899092440078175078914016928678326696948628089561452203674967769492722273959925156847471414291898587826895002115116522919069515369763683295435427076972768982263913764977304997539939497440945018542799399942233196886716730825717120899623781315365406078265838713236389898956921292499791146917376440829231299622602040405449383912298638528102051022924651403902129882514495551130433507275473713439276613996509352104087149883143966758069957376691995524862703974207624783391818521576451878367953400803031032813102717258337892813911956910416701185844708674592646795838950720666496747010156132904111232003371378585988678242028041537896302780405448685702159697920213748829622091479684038243455232480766304485273239715901136044862916317526404547604900042009136076173177605247339970235929893601393138365924209127864315558291284492643329938149346915321558199794290855431612637730700671103958888546089630463836779595322146645433643261525196880199626793339043267190556418527438594630489319307635074781364200821442945059858415734804836319024156572863418822171815966702631666421340497746321096510670616916326032435178422936585988520392361021728530436150076872790315893062091915591472728643054105615709015661694299974950064539095999118930677376647181555088976485515609502829984988450815154565285934411916136383323097006830801245658291214708549829473159513539724283150778954245665325526354792517277413644450846973299591959133531185951661319198498957341108969424121550335764044038395617849540231429457654994677432510178828959801475493503508936633389701110281207294998520893363009036086135663609122822125045533999969324828009108629886450510977832248613969802924666157519003956449285257402432099314151573248856299927739585331601893858285328394355736179405673260630923460140224026595178643467968617866237906792628498410562208831989944474818418669632554980627541064224340432647451191135732627539995506624890567500440089822626042493021585866565128767263966058782623335862742688888051433556810154083005439272586165465587690442510139387685632164453313245045760205850006008067696163567465789842344625364548395592938345708317938976589622215172102171371879261553033532982642938743425229653235222399000491244483470846561491418252458007922339913290144822623502676896602779533226843458084602925912938795949810703713598611467129825047494987913833624465238840274959008484313464156610898856244296593306226868475406864303723457307096591356519787432762787922054904780935381376607267984663656128503356078266487398176714767359731753320348080745096128038741317045841411988109249337619167012906301240681478566414215304989667260504813970823957813675472076678108312387268699442185835448208603629320738876054873218562223587700943441410546171448745194211244033092378752897935462738205390579625730504221295890535384920533980046046515045583570810615862888973837780258286160881480597389104572450241651103081548192286953083492398757782403561721675679109149448060081891633282226342991041109479330955338700233433203995866358020765822562174664776472654175501546962956605707844875466672190337545941111397501990880408813315193226221591003221292187992672613794603379827032699161801283424408850987688797721855501513649463375251614560590941903466648031953233394182538645914512427951455920829953577996394828937972383429304860667487621975522377494093917130690696413484229440135162079067861068122978282990204338534022158107051815224894926663452331386066946904166211068537526962854802712692450985060083056171242172373340050773590586193081343338781092097562151330949606083140295692143509071873055588448429694530987803763066948571845798800606753578966878736668630383124209553007006315479278370420841788941644099107664205896108774063301840798306272520745151047810574929331477451112556661254896823171492787169257422107656427019085871863446882837030611740656939988727833647667728315577950005693157801001831871921310563276741268482105315126605116751557802787206427872169743861649201884678716969817313179142349839078007416706519294237645298576851421419153186521950065017546456072069847821097748496741466024773086235061415133093959109282873621237666448638792292908853044305010865685001933917996159518802686626295367927060181013380204828816525711588161408267911187581989523271446750043098740330563149938236860355716064741664011944396883836325394531107632925382726606929302052884800197346485108774328919992682333836386430207276372450554002531768365231592347232263705766856655767998031845368262121237851555935919373098437862375360015342987468086291377439755786445036701406991086535034040776979729845877675459455346366023195459032713916604041471568522779528914180393479557258293299369060834140598674632959757121314207645509592429733933811129313261965074434907338466536123753224374545793358044003818401806596507824276322697475591379467941930063138214320388318674543763121357240038643911665393429838718412593791399548395793633718709568156316592513054339521686764883701279753218854923548155842708003845698633748901408297965444412161679133473815407757018490364812438116618504662880134887990784928032064495225543746117364224351135186633271152415160293867458140245692103035074950360414044102167856235301819738446645071511723945290124848031035594249790871949632362500168745422541116684965758945524730868121571304985411473793997227528860010423604886106944457627474824446919518003263974845568289783614648214357616631702770183326854989834391851204226812718262219920962605822593255401985544835806840917115005352230468279822197156837904582239983056429959494307439280871780115771425556904494448805576134607633162954302522083334440343563127928783859520862938966523886530234689591084925422656103799656434860839165380741744577685477618853413415086338319390964980951141354758078035598941926021676732164126913169533420994218263744558498058453994004089203505436619977350775013523494772352593447462242341917815189091225236363992677774987715727433385191685448505779683802036920350378909022628873751985713939184574784362463367014861936298838046152994809114203442950854144010411665859871129308510505942766249286829537474990570651028593365869447877401484800180483689932237091040620694458689558165353288530724587294457251571489953605089087711037815686100673404835400386387924624885355131578453381478323239651152981735928664646947621516561060351286197696575514463168788061274564644904238256269252606047862415939369585902594278335156467938790122381238432935014673052600876350288163955164546019772317997823928921751409618674155032691163311772315870361701232820684899758740795325809113399833030207115329382710850211634722813464348453653003440552846041434462283143895832522199864794370815531565226014908938723568994990749648731518084989338018541058661171780276747885808303719255355871789627857985278226678103000129451860358258227052676015364698919045755205660948261735996234163043435144337938204889848184833042817108982541042138004505799631173167393938617339089371808683434263220123895345720013661013462489998763010118868407296680744579495852714246665380790763883170076601215039281836729312358496903367044217577506776878391583716882566816375293406521983599512870384058814789674661578972199782934945304283864584299765886003358876941565787384375380527359184874921589724726136520735335972472898652072995483454012860375108502933194861894930440218102571833276101504130402796296604237016510034799342875514545873928814857098954366553481043534200694614434675854667695616976983634632067153147142216024270869047459533852861419324078007723283810341681171655618113278027821335628990605155232791986038650662577725325638833359000641481085881759257489518948058907835816381301923276188095483402897509688228744114470592345101422042485652234133349743457447657700397413781646534717154851823322525138312656576762553765196490586154095043791775932746856653170263243008543181984650423664537470314967261959188974040331715098017428613123426861933816475838903085644705424023611683067985878271501991306135772547314374827290011175925251250483165989914499670270433956720423655187956592166048030501299759567976795873145285560808197183355410897643129405588842692502991840015023023952204261567520301239307145250340548999291553271406965904304191549318961968556158994239758065032661995022615486447770348173706809788413880859647346044168488052112112590770593164383247909152527926463489617351438974171020111106485957346174767353107011053336997625707941144835181162830731156420239713051704202178990323898669261567288613640333716183886806805734008285183048455762766997614128000459171539989595505279882349675158545458935079954996315623638311638045083490636403307502180038226681668207175347156295370146690589331108511927028440909241439739711283447028298700002679226713852638240712262154189812758933547530304557722841260752997233087512136723862168011605910741139658946303569675187185827989616666385172519614103187380281274452295407047837213350429497829110261769027798596438578688234665197299255324777275013685601495204340229565831562132051404209750986805989209724479631525242646564675412138898177833451392028732246721650818339740661242639857654569116655720925045058811500761033192899308384026517610910452498774934035061055201837767228247020860021508995959706500165957250088189773139727194114081493471001864876400214120150086055699345181243173250572267143631397871621631569013643483369077230454022681863564907377208939819081269722799174755988833245105472132077158478028322724969547705993549940333987274392913706073454092233101763498412193559096198677184117365365806075349947756546961274140175204371164233764521193316048496555730469327393132749932684944406726549083236471233336938077743850363653002509929426446550443355899735488983974997444335206568004269806572927034768255048299154951195779488639612271136985310535492120447934507010220136199601263696065316817319097129081971425538276874209149736374802236285898333883154804532760232313179702970250246881494863770979296365679605739639163863981177774394200536887415574669717952818997151258064964619511876494845172779076090401805980566275585034042228003411339710345894122212303551728430115575304574611240197017311605349081203725807278629299921553297214925667417316273778495925991807543856724568486844505351556729627561103613255166021047599689153375280573811195212331015226382809177239464435694657084498808300870126249800733998187313455550436159679160306557359733748429280916682742017495229701695990684826381036282796883040886982835675918967517067809523806211411599364876601763961131367093356608810329694850830464230910784411003404846973058510811502429428281544060588044417484460685119242088351541132172674331854739768148302021182714273843151497545150501628682289468325792578241956785042174829092922257257032927412637225426734608999441188371057217783000095318633805531747878671642368308644896014381776403637216032641406713859765668529313917768644294622536357955552735906409564936551839993102492426810258903202029321802252884615541256582601025220783919271773845930874670818867724524559603492995349712112390178886515049038122138662430852327645597099091400040201842236940227624466559953380738347585463619617330915637891484439335005653754662238499096353764352414478592665281789335820567328912511724071294457421982346746180784400986307043273981690360995914507344059800211999521413801625951622590588145994077967379973479775106751377401810869100076803739610389627122815402989286966434974017766796277648883816139715875357435307502603457367283411079231982407421170062814165567826053863183190428903230475978670296358852804739780838188396786642646542028302341005615956648180784922608852364469928595241383757715678019359597089878420946245933673095536343439527183403308556166062116958173017462322391555128852034586990263871682296254317358970680602756654652524022284406882897827774965733906683814277257692225422232936750222586463391848100975468744230362233903293625454521686695159551005368259260561165585496045029030845605677806795152984634408833447212541215341502773378674397683207501774116577686128694494002132438240481980313221616110380660585704002238028698492424847932636943891698426993273025931867536625763716037435028900350512519812299112378463038317353743303870288868223857559928552750897294970089918391308549615085463287483561687023502679081848767407640457838803274785029668264051206859874490073710665819132290986873892717807875063018315049063058470204633425820121078727642085041050155753718792693286236460898912525064048065601296375194590133677474415470023655252884052920583600181924285091580015019568702293458525557500793226217102388605156964649359797581226689464329952643990969553599954389420119270983318030307551198379080771911561563935093625338567642471624478188478175275863839523786034961309926121667311419071942736032809603812503159033471520342377967683596836244695924817647275133813883650463902497595433927076753829617406274467017697392187427920614545368149120338634442422036806228936255959154097437083420899192281805058319353682047501255984156286877654550661902396449054869528018215332628069501543824767717464131970599178217682980031268361301096111996005485526139567274714958114048699345493578366270762635783009514961749786803196206978791311305644904200612666889134942088330138488206002105221247403480584005935535319991718566203249884115931468508444752939169771700934536716951802839808652204153608412802058374730223083088663131334659892300440225635471779569329808458079573289399228090243651026819552490175913813109840156823400461279955814159178097441802486407148151980220692225265399072929213583185173290473119512637046772138420331468502485693005575258736501563047297796497124727304873062045419220036617828475509750502508911549781533045272837672879330879567671270634864649606227730173947419827408561894359182208983362902677262916924498240269727444771960804839026988361047178698750747109969980769678762788333364907361522561507055974483462604761679241958160245590834963307818904954581641046462244393246701162275796676145294952622576759867494202332444929003585318497369072493381660151212447926054168077589624968218056483334931786587906249282540896025466041487845721801216426354156198893864253715451160909054314357512278929584260075593761171934038076560893132542089432728972155436767258873275338408043715653144944748013300005179912859128265198318994024672758877417151677217244664145353078458249826058683272607677016291547470720045210675096213212437367634740953913792185253247654439439181760968984711804883001917963304298632074413759477221442080897263098191464078996872198044447197391798247800885151379649040883140551416634735944818529576867303512695625169429312300277683575649133044726120881369928176142078189323543908079345179675296964540864126173082640810888653900297100296894953936880919007574362751909843801928974832236966832841830890503371540923971107760209251677860686381779515287216124025598920101522991985812215810963239852099097019413921716534604585583336298224925841613945360648461882678290288945988899997876251374895362840401799852918685454167082428751621945287376798495652332012180467762447794216984330319726093422041332739034064131975078675930656918978199918644821160195913071684781000483288831579594648384954437899227373103217232614457112239160444875217622525227125633010884919962574489618384458269801520908649043425702809193490756124651227019430098343089852532973849324989714095933444205258180128159973727417883168753096366987105450388325352644660717657843018259691704795187324044436981513864774119962330500815005917676410660922503758640033729062880473553900371130307573928719085281598118711975060853812910429502336610565814754781023604867512347668555008716035662036076816042739122282373745968583395799433964557397852106960701986532326644485592531516384639635447200116223291188782587431160004522520497042321151189251380811150907689965612198246450816665063816341102001650259887879760371780993927429817040551888498230700711643406605968781728259512802789734914392913763778710084644568304778909317899706100870410643487509470685376612533532168923890453639451569817293153622653121313413152108757838048979117520108046452736097242489193176472265405127527473531997085199793843707731849146948801856976639028910568592140286314713199122663284640082535829978324883102223557437600836341921963567147694182208161921759343439217809561641043382587172803859259439116463765847611996980059594204765918779299046802997179490442376032328927974634366330510188906910736695587682369144162781267458884147560758800579331294344615207887611053797602806816886738826858848983565510548866659169116928431445530273581360337814211393067269062446334763830391331188977314780373501535311554744106491807006057401463436912371969461246257948858791865446840717142103308023770196422700772661785008378324348789842639716934068175387863771625678883095273124657797036168312894158276769527231589900083779527200356270280672342330075459761051363604185108316106375879767257290149823244735689526115110466886689028319156502888547991243449262739623440676205260199286246926190785008648524905439609809778220835853270196909317243967078985974414632964292805555614763041859335243597118119917201054180456913797934863056373432274732025369388625657844855089322548859626367018871732888889062103426837149625927553936137985815840954287624270975868057849773874860282183327869255143412026372917168196098765348419148988844528512270478127317240415064122709946356963140687943545704179257946509764213597603548976288882550198692589487629535177347331313567025956490400164991121152391946902907489841574181206829875346771621829255372312835505199600264249405743767029623647694610076606569314946532883813466697560683090473069022652778695313385738685996925522471592876927391664838398119641257483496433355222744041409887101827506415021486612682694280272133216966854722349918991240422737223984380102142990784535278948939583684860757312191254860562900477423688462330353916325283330386777634917320778010628752364040781124968544409546694806775653887306892145963494271880097829310554126581416410226969261981587206495446576895371840610195439220735003994096011882481913591152893556957970010831424308812898102043128232837863890715298486673138579582093228350394012252170309846397126964367509392965910989738886650359797320483499500514308779147140189895896751262866832100594644668814628322705124802702182922862656068533387815401816510294869814349038543731409848907647148642512829262610467832471493873157498375958772766928799635916007069668269412722549460768621516763714233996740919111390211456225688316515982566409918058627368762594275977348538496317178741296915885622032795204506308962699922908169786410541417818792133548765471647425685394169418777386743339079471001814916971559758935793957456116350761359056243364082052817217127112172827201390612211391276612374870082803634526509400957794496505339373124246688165449911684335251091246666190606702584881102183063788489382212087982071662347162912682076789493436864453245899715928010456840789761810340471401099303942900706910334698518400285394050483404718172715799435304357414574647325280317597065227806895459523148461469290423636858109605569260293416956509042390620810087040936800495766553950856589351521819840452558898936735262318003345499382601319465611291318076491756084435269465580641801622407993656825225360511099626241151029876192932494295204244099376532933932533397460497138463526870905766384453013621848725450578564900799166545857764126568548913177425337090823753648893331709942435715290028059722672796115217620084072907419568202511615956483134939296947448824754495542943029531335209738038697617346136655631879037855675556137639949225918704595372190796476494604498401926135467545894374318477164436543910281671282867128473106295197486560435191166348500243407788315223038706379619176331844921028490170407361199769527667924885068109642433214137137409856185938565375457426554643429218005073311243729439224030435251269178669899234682619346383496461075511705468796674087618268883765382884094867327841215216693577160554128057350641139423277199399833032910719180563697470511717240487835664221090994609463632869484059907651859129540498793493024737220845675128716229854026135231986003247807739923280861594595217525326549197755566329563855248555383656051644658086317418133579708365954793186812482451434303874414790254336384099443605412968849727605687839763815254556769660453901262892932798127705968106451302298111220558268547274163575569684147878233664456867093149172561523545525883517019302182179238183285095622001698785434714414743769640593207339313278011258518071548265081915167257242449653080126601777941022786188923621078514381239523502567579894908990171583504477320219904238403137485524838613408245865376508890425338654673649963317870845923500416078796117863872365209102008875155321078627234586128071651739788717943444135038809922875666284689131293516491007705109015226064691714579824540783248439385837132550039683797160939792449466106576270106570843738058901466117039691793928799140816524683816299967077051620487386670085831287611708770919505595474933156631504041191733049486201013753200758369466384529000666931830633215108710823244082974406639977657598603106485609609195264798983064146599551504942198030324342089182580303838907309522278885212263647108776870095628376907442205404580838943996163733361824977705077066002634673404066794764997663241601205658123982720700717669087600989346671502041116422621638429027124943185309404452021967888334214963829225899950277643895061135678537760740903436170983293452565211857839067848151458642343798744753827755843902085869301466106755658843947480172957385511514706807869596297689171708439826184658059323207765802730991012374692771239024207195003262403529890306505273991548764883133652303096558799239911089649509876487956243065332335490342954210082144199363965206673943426765770778963886166074312724498679504748044774475670973406756147971518424998046814992022611977871282934276554276868489710973912255402153657721508641042297974381032737832732011658920660742296879975073729671571259925085282812038646034597845568797015179694263365283449889599867124946058080029404342257216798407308121579695909972480280872072330638834497296671829885253413881484410638178794929055369399736251885273724493987251939351222284226637974025584660431266297824345905220198323232837373072597686672487979770612614357917049531273930436586869238337070269370027284707118940281169082434040862685538162163642455044172390121975126707685098736492531042068726239460500747035067546203538332497994548133489178438266444234495235602045059988081424068510153975091937014029589391759469847696048389333141921510304061384208825298162502195093127958175495135292158498841504089903766215775727435432390566616437091822256747917943688489770165024949280442311790861536909579588591581479073306338812425342802918828279777694008461516454787269467292424955798867192851254758609645478221877240786272664303952291805871851572644059322560348819224804760840060657586575047970348839974164908019042520484671592259566851531239411722702148807258573772476287679683295630520544783417211216398845060417289238709553855980509049505624336119931966979482274457855850309178605716916464688357502258426974276879514569345795524562080844816361173455172746747374511670374161307012705226986419839831769765756956948084891615072400860310244849998247034275806835905562012703002587265649909242166504848414290588405876162334948143204147737560310116795790107173457796207562737506037655780081528257478009901082068649270538004361554113492603936725373181283055102790417922810331352831538575340063137570163065611432549669619241157014554328963445771689293111029530416679517804703029531946408668230138141902666215257307461456394287725969170641290698624688604195887334248472789554604360461842362929487022783855401646531919710519410215678665166991470992552833358922006268126107353103439921250809085885583674780212724658476637225032487455925995780864635534933107438189089566165521843423993339264528827700772901651155933598708223481640071566981485407101323703222293461185407448435743654358757805074485737529203417159585229729667597852538564484377131232215210140519516213449231026481023599263346755335106890857076856883131239521041429734434879039061435478057000275048610587087166900897384589377412214486839903002959153599984987710890247952532777160245921807679105754015690642245242998484555765703649668478113697640151405147778861254425585263213888885413741055136517761163529223734802862180914974383461253104968675910021913103875432899783469915595668763370786319717247052404118631929811973938684143307840308963577251398874991788414121093737326993250742527809889130984601103527034696583033161396397367709048107450374780886328242724922315906063775681487940013689224192208862406028103106459126637161225599489741375372113988239049762588821804028544325333327753463349963475267985390272591602657645154794299493762354875721022775288329980135267201793728742634966627082387807020170514401343705397750756008942253711773498530772179957808286892001340169324574535078825101739666489962999124259189593598381685027471953582595024450742942385066236385006060457223091872670127737195858914284313011462102080237249627764959635081196428325258284516677370269219612040402762594915785331631222559415135661768832540720736850071671299949464043427473260700433241248610573744681982478103513947654031319074183634382663736858068126937656287984892323714280785893735789677356166233481250934963265150083362364297662880018020771311596822784304757689486586417285333595749806922559135829066863302762817720154768849078093022763228181235223156739073747299496089210522570253017075465820419892290297743374828412302311167185067747799654448765214676612993878812961153516126787297740799009433846950905272636557062453573703799367620320754255966372898750867964476673073437875707357975284257441951579895469009695804478981556588448149995598419549341768904475713952647861412462919303805636062945136565970616714845159384370181131273768678660229593772107027642587606730823102010147988703428402166578435493573873199103275483234602334471784896773812337033792849053821524064393415936514838943011909087714337889850909748552455810120253962791107349492591410114209410458841669233927854515830126826127383720684072683347516645971664194079239047802740462841257599845556984125736737767545411183871498087521435252255009547462244648799175467874005153323159541534506057245299057700022435878482166159152253008749928356576575701034954975352342844335198735393077806203832135698709432277344878061780560749081455147858907173444493651192725081204453474124068070335470416758717717590173531181745601492124039329322102416013529550282273252895270165821309759266213450874572519449868870318327901332489990091265967554275039274172351932628250996648289290500595284974169750868077242381776676341409153568714559323112755506563145383800286693856107975463427155181202516531469300325981524052926060477083200086290669596295977549407249697836870248122660279716703528018080596238704921672728545969031859301237203350123130298688698913529570026942008021951467475472720799144713060829783371917772316790967994737951645166431128956113166214616173183430863402942652000836465668675936591611111474836237071550603404763647863382087367359761686353671846605086759365737666564356267327519974831999812805294545571261155507290435637407701661897907838949867569182118478001304041352591999109991687363168414821873425041382846468588633996488960777992854060926525680651021532345437344361126869490884513568717564335857143132404031767641935066179197708548733974840686442193708915807503340650731420283834787306858390054933710157924873352892337260943314712450322554616558601462587484633339154426263471363135754268553242474982448657236032888021727924514151419781946744576032618687492274984337015335566899498682584757724356375489496501841549098693275107589578443049779846689634398610878474830675088000458922419532531142847141946585659829539540696189471044934004630938803464501856829229663032046055758760719110598412283258955719564012713279568950032756811815546257562357901795768694642283795151022865224618805486390936321135185225004724422762047949418197655318492331382012834708190000699981548534838912439713629432992370406080128529199283717374627085465660093627653952104682069204864157964013256273347453029539723171698660802403143333836096321529440610499922106613491986938579401880359486418043562330434049081388714208344356498649649817056492192302147038823916585971614742080664236453499616632709178725278159971496485451931043263764000959014061413206321384750303333745849278183288165037281810692989451393960087994365365954681691590560759368293544086809180937826400146006817997125378438565665822869232146086992005973587716616503797790717730088422392619012257616648012414618986664762751002411746911675312271318038109543997609805378560973368179448500309581204833835949914829698571695723870525207463116224791273824086314549606838766282336205951375834328267825804904395326009551852048015120922318606764569880512375690286625375497792397160768711576277864892688025132403093201735486626770620858984197070088793325578267603570881374437105006171496420988785341496752811595635059035464804058781195890565164995332550010964622664757716329775771948234079232344972097269649750762975642529741623345674221785276659570555415424656791261412882410233866376142614851905357184854369561003301283996559836030409775457473705842618883172348812121009523257651399263356205788911462760270205034299793854442402646335571279208667184901817188867177668204148734537224685808578952543971315034535270768352425357255320141019304300302814327978363084838097425864714709537117376136031556366504565131426895170882902815229417262986863491322545171856804158855928688079581926824996506834403158101954668150736630326929774927525395923483337929890528282925915524191198442702360956756994463317790236284670216719430817224115345583238886690282890162932731285193007370858848031968460878900553098659280269406230419190499945177894575484648440190850444221401224115917568634793985728310165391098612322090432721366044183996354946334888973287479674653548722326610851223744211346772202408547557273126963633806669164390915290320717871229382042602075336014858690306263537852786824426284091760047581597536219306183151926252035542409331209619911879750680102521748682100915776084933818014030401520690303167045874070524687801831444592631746539124039165471854933443308313239717529474364356717732244328252216120972475604456797751981178986819985896829864571948913964206383355796700403162092052491530494439258757011686590319459757993844805877359025595293406178434066014106360083649048634813421367023608509907446704497908394563600374088140619273529180802900745272057192692511474997515292836080136416131802868175391794628751953685451862151672483368698532929839330191381874399230137053222180516868140303353795249359157388093700388203921300291352765600343513791421105685555779581764683522298334346747487680062121652135451924806761393118232107178031085291626727166483355689115923939638674249649055673033122835470051458526375542000622833885864598725755641092586561790574465206740892181057294348602192169404480344944606344837129722860706111139468786308714589821206602239282748993492602771404121477245892249010634605292791654224355309900635887659721326175294068358546369359089281031522487770972299719148054528221703010904677286869488227950695059891730478304166992279587252581876002239970981587529102947591535450809268714462388111031571677828510414043995935807464500863722097717717229086253999965774200195820955281702328893305524145457775100794200300466711263553885254394501374929625063567022901447256666318266142995650497529304151352734487323376711361358798964394122968026936627981579712392519396768073962326775913659364512339368898887615396189126279045146695934189908008826527188330048799021541119077596487672435568044113009911068604986997048878005635292907112108462780928335789748949995101667389438439905472215215816181963981572468631071444016776278053291831179300636473922196409833751727726132948356886324197042751732073806896266381027398068482636310487202121295740784074711671719119289599633490489868734973869009986559053441479927066498914219026798478328684943492108648930962198485643923767128425289438873706529215808396597910526611241751801326890458218719848447589276038316950210293359998294385410696873627766009605105094044093511767330473988785160112762021899473356628148050148392121399871908430264353398042766238466140278422195396129983682445810865853764788928601686347323842904366332621087992859536582272710758282815640965787736471382660511356612752075991773183719555975020248927244473806757227065592694154105105317960580237302275651808620840638932407456399347335291345422461686990604002919607194622735685339249442739107093303388406864522421362911613209972600999764563948368427810782999560567044071027766334776719238630767178483842884756335876547718313809624325810184348948466388990592941807383562442925100202430251559288589793190304432378095985606317467271212557106442678871283036503337148953407228848871277043920745736190492071669871681180764577183698392816950741577937579937489195165963393255177976464458596165803451416823462669261626812766240223165294156971296699832434801572647951090995316293006240861213593764280365393964545879067568387255561079872959211596323092183985894837808712689409137579918656312082540147570432378551610778039126880890430759750558015846454756737676735925198082786479340123310831484006467628772144592461072491967973844677720123151530917372794092272852824387828185476585090209868322423260528655847633787045235007392243800204066205354520309807576379367120413432453657313949723014062696341057465358754395802690178456961915616983929376670692599114103249555990423114530220070765239271016439057279101930745527640622966463247037457279507457875630829926950767638180506417331868117855666370948531450153555880455055408581901185179806594928341277383285844296070668293406252487471457590052854851759637354604801323203705983162431191975602726167492068159574920000263053220185320590707173448751544821336778987069769443673612044465559945664851113522842287650673294128165772055843149514460859215318599543664846880643746812340941850361322921789879036885898653350749038339688705696194819530166053720587451876042061554799471673763225920450297479876589417055119903828812163817285780666472946868610995150337658835129834623197626553383779413358180890486354109696387721293239819303812127891135579145536283947703040546711338221901687539965082742318358312639339852481895316193921475633192004247903181793972997238225575606873176358618959158401375447627518403383120926725733435959686549656343339135460235333045118268090698490175249543481580486481905578989378351259689737590683076720701414093600342461957945310672251331968426333314369542660559288924448509882615345573979851073189765466394461681655985490335065378675855889590235510735080173846167494479774676241687592614862456364874596411869944408405090018436415367395946790388138275202217941715988070005043244456042595070574741359513818903643596312958342036600760203521644524964606392751125671337767864929466066064703101219326367858454264008501846431960447051413776882857257085348023412025830723227873583286066275370086972623538989892190923146487979351904511184338242176802907969533460916273150696511867073620818729533276435147755001527888427369864294579919651594097244215562157205067392645079953107674545399843959077132985042185833429903238325752116069330717832647425524623214149088023345769402001950868839475652753831802960418645952287746605502435204488565618275595640780476787979856506382301119143237660587198800758145510869023513312665776084757764153195555905642679681708718092378942471818288095148494945644074138612550103820090797184031397811394097222197501883706974833531768605095367664655249039803931567102298291412899778269356534247866635874028424209167166660553563635411950860032619338572357189315281060828803322261765941844460011946144351483709870660048581555271866757982370405916363999132209744199579006566194086101823643858081894922230367783141015533645688894322940655505452770901658744194135953122138855605149885469598323756354103705980519633487225204972124412050948027943074435675286533438514655602205586314190948072258495981013577214744751528076268856597820424961021758462910104157534271310997605245962097114398334500213865446432041223406135339751867043144017950958974071701205338433738474925252078197099403376910509961566671004749819866010284447661870796352399993641455139671108493863751406163686381617927525461307350659491654946078550142384899135953973098185316631248387925845301799699935347910744475464505827848156304830605724694841033086696433716265698384943621180598913307431367312781621483909373628833230673403814648385542527876573656886554069693575674501952299164076662113406866500401213474243013898250664542830654450356900019761206106343370401637302590897599610627857829314380047308047801948394574084498842471717288914464254110187331123910747849221704655783527955996885329990840956490561268087813413712183228231806689115395455228768531766201940551120315187193595642837185784492064070205242015433310581813515835830757086300591924162923312892417295010889089660169026777428536497394174899873460821321031996860253869107465117787946778267719430392824976272524279385898113265789644543209453784365757284253360969739115831047681811699100609542383814439601691014063315395296966283392423874018586831048093398091274966878387671453937620939724838856169987231267110227337187723672967739690223763548272818374850336478610559374406346056534800389989074412596851519326587285269550952435721666531862539899572350933931551043626174851248071680736812369739652932142197102333949729160208990407391080178597802116589986664173060887962095374338291082413381883047115346961357710701764112517023928982656055862741452305259914800743153924459639189936898769809862554508865703423689325111829819308833691417793932082457559350510908972494336144196418994629579440391146333924748269839846884870385616396214218620365728359460879080984749844359588591431935121640627823890858384573599430383334329170723450378787725805547207022393859667438915770042168224529454614880837562423513572905628918476250253071116882222338224586313196892146147173389119673993630982684784241014947766366481590165377905867181365710597777599697723107043161331509298937438801337541097064506894449973185750374237435313216700310090898218120694304024675620393775806382358402144009289802697854171670489644332635075429018917417564023683754099611197066368119113372574170485686601605441910332585097446786059380280064289680650304542676010517719028846602772736113435066077273382742023018188866237658435804083161156615077679483603595218371292163461124790587179708886135655082695762301482086130910924059856741346808101665557373027890832111709105781706098122338997494881745957585083127816779121122297887789681074726441460026782709463195125696528386671458424986601463415722432082981968798568815695905867828307144421267893935653199057378153875505467093124108372988069894905721958245588034292224438771044587561029950072188633599914495809426845588296969835509638889401545936659683110689941952423073537343501776708561147072824775894250013076086999973136262918004280425532802968832601729121619407142223098929749755736932230646177448089665005674427110043157495554489180727182341672039057925283897895600134147531826704285479939611790415678133535002264059001214636451393026129782883514507048022389614902195423854941418035593367703471830839376845575758270037613921951961391328677451851665785716814450902895204908710837816147488759002302725022090359570578913684723497663929254770641660843566874991085091555616918416815348734235471469590222032985323452309702221462311132866464094045884629085347809884708178754376815944179696217762983105414644983764325397756222494388936734015489315892478642517543601849602735386844490280602994135587374024279779634393843541823715785947247729320570483976567202983108262066619408904177000745969964524160872044839157123694433698328340030190935551658410908578063807123665294139897177867918030999928949316942754702644556061880551595398206903971970553982687632735443277552226672499636332950225346716118983989990359617723395450720121928527192644042864611371553397357787086284194381500110014893858132843152464168039619944181698303279710773851182600364104078336687728186440940542631398622240635230709086250157726809015342852364231057285310507482024294679546582085302102916757431606117778704241033544993774622986332502021222106282536222921267813048578229537239469346377933606847557259538688347388481997912964019130498596117927584126860472127134531756132426354034544663089991010144056571103873665082146395676277413663717473748442652519044332547888671221808612229995633042087435945879828184347371473544069139921654929152307507266477769592078595738901202370189197427896618171598608981279850672103863860086315184998142885014169372525661324073485661649731832650193352241759614328280213465274793925824652035639326576511854006291128823199843302392752003394967238680351361596412993890633943141344823601598973471212399218478838614329340672944961671431387767873725747882346430414249500047300737300749004958237816157183473557352147789402203426246718651286524710479993370461875646910308835574081372724724018718514838107980796025318019165234056189814829814944942133616294891790935474545164571469897888695090360820519751561588778560484618467601299274812676894586610650952200615810883780501742557176546481373999581928499307659217887129409622871223632020060570690765528266875363099157204148093350547519566781362122588023932369316792143649349142292402545127378864991009761833964486687056122626414237015295734060219551577290414626817602509462281380633282617672830736421296481170517702918048389293664617797395673063879622725457446752002363531178362222721856903441918312009330587586530615974053093488274086426607698947648929194981034283998957307980320681058427273173720182050268830103326029162507542765550871871255579061409992539657415160767927363004080030059147337449108339834516468492607242667774894031310841058996156488058991255376603057710275795244473545440840726592388326167464078249221407371173331501583812780441673599982456953398418459137318044949621375444436756423983984357087162092595529611264956799855145411270756877756653553475484781942136221958411120445335007211296610108496780795187234991026848085430074948620263971407986562294370644223159964924868643895634590610787214929173655536385952860929916484571383940213093443158830263048102358225210131910591939524652558085839900698175762666757949197954203564326046124604598518097984464448380650934174079790479683155075561202472551928761234774328278304116694930060987946845686424662726427136215876474320368345502478939032141659708865562728610556214880733121385985441215224297902997147362925103669711273147491357007311054284208626090280757140024054067224729459950843290078650994935404171797573385461436778797121013106581683912453630858457555681374974442249988893823286382001519631569600606266525668453286553944852139791035360861838813839181127022067892797193131945406535795562202955412022786459866216092827988846420360861560082062897956873437169475480870467734070342859025664182590993227132055181592145909538849127571397608446133709506591456452656546029699977162391269683955390327324695117559710455711292027477862634386835872128964572819579075318526239766381382556006894200770652536592593235195971589715177591401211930965837518438241323873774989741615715059817034703556532456921888594601525447939696474451411651625091350651293465806384897418894017989691159849310018736078844405610117719480083731978034466329858897492331180157647022816338536182338165390717082035084799136255192010522859513998888555737598533701469270477845114231289342658655314352061926839086067729101462480499684909170433232129071610019529034411942975240603223866176487404501715473799418245681490947964595105095630386031094027018654563812008287835912532227210951995810220071905856147945970214248621262619069187938253205014678190904189816402464452697771854851366263776442826269463035128812912375499480001599403833756155872770957825865533241112263734686917060354106671366791742709482378776882011104489270034047723570037375130073378731827548351187986771471478034098528270054218827276353164741884689431932869129888042286362585855130273426528567665035819049419848006385947109139983930069423363467704455656242235092104873550426653301754162629473568530254676417903425209003078079629595668144825760558628591915113022420902188179034948468091988279988609232507646292834150417779098796510249240671124243577420101649133250694181725585522544603096261904682555657451739528672541077603233582222656620470629346967607249426981773854191979235584354825271630773670257972682956923563317994727218935264487372302072519485592464695453255145373906002771316655301764694821089883937268753178742782375255938395603591080169087313145202754698102107327370508721540510523304908916855384159780545810576913465092115805085774783895639003864282980523797834566238798024251436741324502609154973514052207711720079678279971404034280492225188722970899260967909846043263163133274844002121846697414514823769484241743954246431932617361963203651699559536535657948502538927415763407163809617195273706472691436593813904881620201714638497262882026432053959555489875710734550272515698310238285269518479950234827378123426722850016684258319727294277886749299967318914667930558671132501812935349515897108289160253564764100318412697011649560567747603495620182959625274680387487299702673931708232034771024397048787127474455830457052682936090786422479625695521478726807584303947851160274738772131461113989753480788996124266277047970554712615699908176303248373846348946407279952894299578596400560690913602737665799799928994870029150979744138155332431939832141923987713436713419566221451859712213495766213947270851020729023423053026672004170521189725231464635042251222596117886644064712654218624862128483638418673146138143772601256898029888913653547313569846759169773082341517769502277403152680777220165851701536694210279832215322362466471521916931734567717362437059578065620957191660317049932523332410821197354670135454712252753089884557926037561324115160209447181492564688851334903127373592183654742678919180011211014326125171962816457612274775309551254966716876963514475660254419713530827610551425346909106688562182204308925118482489643061951683644384959237911685836304960915146978489736425736791788911272583321244669621391763633893389433613185437975995230652458105986148232233969874170077431073737103412460388852792659189705110522023296283327593655442173964692940164160545031180439224748286543821176087974841561079087250851687357355190820719369144212027268125567607027884398318395088304391360257468503360091899595552390003837423266709282675702151311953898987857783701712414660541598464570026953543581558291093306741048354170910923435938809831758947003595616781136029316986700252610362080244351970842321254274801832616501808548202026304411036511993888934568220849486340886580521371038767499241090635261931234509474930154649671292332218722671556580835736874478012378893077211687098674789219901121249726601433365765995607712573843260717820629288797657334281770021925705549442118954858036916691027428284838765252420029216778680045166686586618114536689462463874220231863623509203655143357579215716826769244512139913433797334191860552632620282203165581908307156116527079171894775200907956600958530695078778201825779928541797747001569579742199316724052080917220470458183842065817530940487282539962752837879664664051214731034659139602089287436155634820845044237136750864724546683493625448295988884612709519536425845108699701828927844254935611641121271005463664977524140508121302413744249958233898921966482636591306159134241736321882670521021050652231963064919431707295440308428883598217352455251232515590963487048829601947201325224928093123318335456762616584619899949814146108778581488172211572383072443663864305201764714978258774182770225348063183439653281724515192705688318827111863136236195666245642738541132809071018459273388706843547800602561696248175367641162317110518303908482261726403098238822025264214552288912330807446683970787319906094101559205136817873675622213091120292437060504673887517732180657544717649799777842266964755301284332692332971470768141482104806020716960773472670046459846433346101729111202674599220118915035292301276691205603157466534942172396721352956333577192533770149630545691750145028436517652984124773354578296792031621705043563583545776440788921666082729711572930673403958204538648730593061650797042727107435546191986747661076495283523169801811110526776683849789625365178054243711294534535544573170934204388576431526537827858754050237959010186736173692044913716679934212995965304315591765703712900982670759756917104864238518747312306578443792744176927165620855882455197504499357592888849535116210915170248093528944773038669391376903156643687129419666079495580321825855393320702397200905050649402052971960226177123012972823097156149705469373255564318434889403145248548451807009286423259581607241572468839041627201527794752499550359882827156408753981058989640829645141343670766140880189583556389189415115402494791120416723378786312302888337127299601299329353495117796471107529692077065955403108885270758206529140324767308963686595543821430010182008480898358645549974257091610708147678749672529131053699555772814879573712940808963991280789256334066999377088571237548149949589592776207765215664449105799283921995683603657254420366434036486258069902096240085457836174096992280508704446618807175496705365678073868199474990643643284831027086415340700043034326590053200936614624347414778671264427808109057046985811287923759124157055562896886186600671773024375883395094895011000401354090951152009645084022433209358731096430319517941166443458416412530252333769888196765450785763259396538069500018965741284330189644013210677139394994252078486311669603680896139318589027319102767583210475578086815426049548727596763403340057112029698189492363468543380565023121518256372906730769404617168964207214163738819859047403802574377251707007779033374474241100532808194985073603454025381130234473742002488178494964928699643404269956453213953055981355706120083063370882059959389756401085794339361821095895979154696545812228056669797840960964827726819306069992242066358756404614892673805422933706245861016814535759293559652953958223233428715853474562738591105232167459921513508258780259350850791246968142315722272810223264033630128386608111111674789350287737163905968159689223795726842356858743177329690239109281346587460975771871406736917375129657231603593134140451795656996825588722468875489460429326886321182862005137279133581357071380628555778067589363242760061044376651665915507009388441179866988320738837383419158125462412785077254826318054752102502794803680442088703717159627671990445026553339806716143517118730036562813744271383301218500415447324629331804474210477246417104148407912164401045899169284349851431205203087395044762698942673816891554070552385382295329111344972318934060402478226475834755593312178717034274208900829783016065200156284232763021083159154295494622282549359458598394516841981317941694630613015819748938717344268087325293069051834301599830862786666042374842404144728407775340704931720760942979922312437659437553478671073245759153229243922192756571837504689316686425150105801152259703847595017007000161545938448130785715381497765541303035588975573679736374520051495126634085472706918895328760170534555393416221700748436643972460627285393212505567197579962160096430317097920411437751874371045510023295836805719735415100405086051231250117081057831598519258545261701904680130860566998696023526585225301078022867944594947058841888236331382991437650008145878030392436748426449208816215756234878318052571412499845091205572238939318745662289909901098255615602823414335429408169484981103090194068015657730531733211188511324971767745451275478676670989956249759755260812148774773852219671299379994921400144857530479867621062265864371780621554844262361753540785682062397194938332453740460392461619275741336263633663312030984339423631392590073032320358789977526092704786422591315801687767260572614370157942825584779892528524862921080082728292836791459011290344777749698756200787474535309529328774890829534381840221817331695480407579887407064691167033955844236680711897967463019684398410760408759051121564101347353697678559990250309035906890932088000960123412299003707279570817953526632901583701830069304964053558096570836487893134780224181060613252250323682553401158393902912610247326014361078840907446186966639414249634551516475310827323331784702279795633615006816606118390343933338479670352873900805240533358530494784061070361797974918532491038622858383760445154471675626307797120535785333973757946643735231613603467840669791217911300335168518340159594303616321255487883588485655860936866895668357779832836348150709226187500419398977083047987525849120142047177167178467821556855435757802878022269296828998828857837459151476833584251379422536913551188958325014626342098084178690728943064539630779560709940837212740727985123722920631245345407896262923287237406844080479990139392133449617269654344643212365322797854736982019293572007248302284172280508160646441938441876298809210912644167091772705352794738595739867754012216591096538811106264812549258866061337605050532436383045974252982754571510256331663976052070593861726614035492367693125950409986141142408007210773214603042226884546170691187500321188631992067451628049888094245318824134365445586225233066330944326102351081579978104986325732706109900341468279069732734584764303900560474313116449460094060480274066823358783683209416986946849136820693973083742508011098635783684805720165476203031085902710377350273121714612798334261270236143014959854388428614899917914962381568202293564822432124951115758683094155790518178355929378624554700356282497224459143572494669939178917239847920705379530658259534305447946067844702782021035986519705094446735338727821857124584810262013457021074979388461274967405437174010362727648049760171124395107147271837820542307590591076196707351209937291007365490006035798555450122202653876517081208058356152628544678170878868025853212833689712141780889631253535973890549307427543768360908496045709176365979612138246279760683166749251998901701735223553022777244963555149105396506019526582151100253091479235608433304357774158083254618831998548951501429587347825386766447627579731610099892681576291409215869737146604255675006589067567788261945295734695223491939124004029827733250668416399047794842579537071195098221955383212832890825765330245209121690867640407889709964354039023964250585195929024050024716255475577237612909676835703570753536014598184489300989783350116964793269350702853647098976678359015831601358924287945067391070856360288079852689394478594603504471359299261549646354582055313012726482846426259596891467014415468813478831353841264183756532819449849316618169862129546003397596141612776785079219850241991832032530442306634616375756776993438826240238482805820019489199406371443149216471894925964531803519425709371861999492676814070534184740669420303390714742717855000748222052956798295513824587503866183354355785647278713733073508692054962544832711625126753402160177500576191372394762618183260632577351679780256474451284583753666255870672235074949377034120674228295895345624918291706828260445982173952406179076673496571078840155081747354088356480723317224224073527361896203719753713688571520681686577603517593283476907532652356781870404654339021772469511617596463888516300350058397407263278281934927474243437793158296513278282142507867314435883428881226714994803304703077070823568232781407615697625318583579429677379211488266400656312885434556647632113003260885963821681024521111144891717179904269973854005112252896905414318340918661641982162624312078604045033913567483627164103941532784227762728735327559553475561739017375243837964807730893407928378064580427589611166886089761275327582132407319037728146943938557695676546915194723285406321249688601268448777353398107959652236315539475702336345067693026143702227102564290019241637960536415362970741107761778273890384141505820754581645070171106034209216318197971519835981943938018946072797086888891376786485330879321380939030456220027637645433327407650816844236451750259504081594456516467303317571351251901359451466771667797458798632988448032442863956931412219401545301400743456868650765814426037940680397171992834606582057420466446836844626075104136502867077273158545458803134020862211703610888907069341742192845111154484358519608995475869874404353175470070938008888510577169979274364648886148571613876726393420546169050849626454077809954510562130419571975233612261483809927416016282520910565352795188814655036321153048117919727376251553667267721421985885694397929137392321631293727388950712867042294647216438167132598233073433807404952364073749137215930573101086395930009311519160685561082563978708683500342951727308837191724293551243894002771389023295254605500354332280657667673450406174072281912489536895532375584392472001681051269465170384758233123716470035146279839339060022036443481778822988074109775406359395688624703893395651423072797373041268782523249296915420643802164862383763666677124759502087333025070793790733359896158756318065036562930156978715986139753863448849215732481031645221157666309785840261879866696531590739303644636675268460379122682615667052483603891123723133398115547311356101661663785827452110857427243562819836641661514579163310023703607326582613705975458566868030574189335139792456504053663467674976495656353916343614503999619493272603601670478934387773295935431917946677918453764338743122649253613438911288618450379053405506468413520516095749942624744879322337136960780541863266596430878077420583367393528755073251974638988768355585287130761158056729587921935940424501705353579393648360106805711527223285349883734676136320100959676023003403497546160929072828045570582080593689507674905079774829844749515267515930342813563468667572504994251289853738660835860481157750731118427493190862555464604097414864494791271952086291717406725653269661712497357780792378614286311857205898256864483264831166737629078334221420294131547934647555418259156630548190288584529559697232897538067664472081223236940010103068979886255892866512847701398591043563700715891981655187059895949959903482896065345075134156578917446659685275662814397492505184208764571853027533833585871948482783365146422772346641695983062683087379112063955725851505426079602388720716329226306802675135935167093325104668135596325200645095503370428145753275462234153727074270790113101203620348772819596776031630512513193178919933269781418174592396204927884379605400223679782972929356461810991737672275781835957599800073597024567334126765898008451122014877305905618008011954412320760355103941771823571688633906935599507873933703249015731905371661323456797305683378305787344418317795142792980605126849102792231923381066993335323418792684057629061365703017094278362538870270448335664725309406707720370871823743861528161374379506031576655267109510608684675915197969429121621596431534921905829703981390989698939000688512595333404174298302345155122787849093728881271167158134996668714217814234182619081412589278177345310236723859484318748967957523790210541542741382056511513846030522165334696494133002107878663160589465648998769839102581282221423902146274503149317467691941322531376848444394888983194223833117488898335815432392755578180253366448656229731810834057355549623798105755346641670736375812384368430889450511900658591530964669734965541167758711838356866143689240930642921759063127791006949341084219057171911664717006571397857215137843637504499997559540055907986925644394009473461965162690296714905623515873849432237806749476402609572727799625918090424625120485349280379469602772301670860941908401625255776980030362121020353050383267397022026518124056304096660359523524412358071967409053642461477251589999028778199200481785776071997104616340560328020708665479839074520257284808105629624054989171176003199924028910977301054296456303644186327532543584362586126008142248756842565234768449007392281331810053491274831732546757408547755841478705134075035009564945710435202663164510916277470526096672071424569743273565728579341816776795200279744105265650515218917710637863887048323474676483119240015108731851640941753033244772968375720445413493950715163737566472409742155350214089229261661811108425658717016985971997182876728098317108585063810986657025657130140637866758530166601235898658447579098818566866794528049358616820943226519223820068149850182611001185535451186064053881452703174160547735090776456179544777295896567082332223228763855943166298162169284545831295083822218183267611380629393297973361719427962683461311878135694038781035991734791842438546960766130213215762006697074553492085404919966279701946130789431167835312579652284656990043065232384152893315356062644145373752485550228545054565711014391278341849369722837940155980771603798206328607040730538832390833020803010921690273581149182247741181012389602068786733422523490720050594050062963796944059762868465348518673820537710043342648972424884937299324888964081371656659328867673263721737806860877614890837074355746812703354361332633609160580497618875685889793108179069331368098723325988283381960263587778956583123294206740384264601558045893216674410104720151763460271529730765242516625534933143393795067216753657360062831823555556648819396572882092969931150431930610055550587049535639429395414234194284460584842022951565363780555590070138789010703152956335208370570447972123726731465782428314960142988698356584205628009450207567305198556839794339633774363270937591505184280173452306721407358281869734706168443945779753887196298519837821730612885634779834782564173524976924999729121294252684561177413625543817140869907212955787014378563609679825052424182489322298133941302060524578870567902290442272545397307043152613246387845055206187067555168648304892390368635892692513187558743244746462568863642739895471565236669484992366076240886955584348437062199777524443073891568318912309786965617485107152897487155255867119855318352059058590981311623979082126727847197203206557220781118830696570064675260873228379697093130406445285412936894012472533114101266452849780964879663184425695211379233196074476037038431384627847588164464260716625875643444417380731885356425775037753332371782247194324561311191862021782436137125611784109974989171619170413032804846725387405153657947913876221073513091190923346617388606750927011911684288073929638000162177669429477711553738344920995880338216388542839634932615924499528217546336662625848036847951957526838809890005465088750162490404308074276707924768090302811307834220758025425528548638535200186615886261063465327820774541472688294432662496367302510748269089106470183747283879594628108470593639553832257448976465022889686027136660484549965002377825463418462288072605751447639215288474900144781256968297323402698334972786772458079241305139589959727009922667717829230723705927399602862082267170281790243095271441382362915510559363327354788571065385755507802479434554705627021007509888239172448423020768806449232468231523532109230487433023390000312678829635810385372123397651085728678237376272711008882959382508808924175643199275148195763181832014424737610768593506264216762039500595921998774841496885312522427517034375483332159745012514452561435516239445735376870056586342603623290809113245394778251286900273382529492855125553727076675723851310300995985932691930856175383189656894255630157944363889650216133454726841923717585320119076841899732169451827369023561258589531998566195244075139995422388007129214593670899260210510065297965525526557486183625502969413276238258847242302027544092997501496124835047402752138222910614269195147704918706207950852187899420338501757505067818605551219303282423061778041760467170726896111057399576425573790545881654079885125910991873315357951470841713171454529356170833570023115675078143040102659654836849987677191597716254928685908126163055885437387089401244429195620715104787466708330743825992058002038120647889553500190021129033773780189866080065683786474919057456243979925167058323641653869056384478212202944156312834840008657603683405860896536887767358212385525806189983929341289665762974715849732673987616828068628896289455736417591718464487157324228026672822074692802773752609779073455447924835823306890369763947257681816449441314009952784953073888934262401048095271080504782972816359031484977687372222639458290399417736682863349086932835852513746998306259860735911626410487486470952954216742361539604338936124779399813023733423091358034305261949789345593377485135094977560754845701529331178059134555106740481179650946911344141777605767818678977188815747389075020641629227791179915935256295562187913117602939587310473705496496044210962657988514466702935952444095554610135656330583920117753734383180949323089310117974547920067825782979937299349493817706666505478113730398990388838895277122152353873087824708640647521317646407407826260960176297417697342356059754482152565551962918783777594808623625490857519315512144303599748548456029769941158974491495597975995480611848276637934801430971736225067719654584702300076948984750653834579674716866487568817902723475536717028417145812559501032917483840943811981102597159574250151451026540752864667396874649547406005083800520787964782969702928110818094996824001161340989872138926054061467074207785020432216214607259994968508646624543516303325380846420407137811040708515937504146013111195415554148486311086670566105846204586869027752455593014344880120084420520667941491955034009371681911563180342284322149087500115126271666269427696655262370394031969636977079136483303152723685159369067137701423585201528328276476630763306650941685315097322946743887429456704724963264062341733158381398112403130333314856369379884912566543814043459612312423835579856534767332991368060571286836059054304172071918125855858645824678221637229593574217455466879531213708911679530378967780688887884766693393763543422767920272261314992659691777856390726043692702749322241178344981459272218700426841607392136643297596844111649613473685980708108097348690856413382856649302624369855263300125391224340354822221654997755787759546222581064311560834285870913926792726017549821800658863611082721415638505716039129194291529171119545316599607837863728709759350766968626357026878913606989028434550164301309507954404403669909652116996318671878071462891467011908900771551470764934361086599443057600211854934520727209130024006052098194729846502587070863836991576858871411212880038513439572120986340674301094374873465415358850392675939267935301670772196726091963920070273323309799820373705714276704052070358360455832233021407118638594925094652162517722010946210409581593110508453492073508052992145264860446686551651009249695201181389775119377227816497478459751311320067362412642492293267616360435787579041694577443967975339204305504542819373969182454777420824765263507420693734205529369129624756133477158471068183584650376326886160318081326007415448012540198289924001998466135724509836753885007777076491413866787768045173093662092822833977576825184346890554625137981027165315244594116529408813541376435747978642589301791490617889612374313846749792312756931129359729997642572543460191251163894931955568234697616589005008330723430397874831327754260071007051945070452771299890467350388143424822697830573924678233559869384846125083592672362321067817574614646156969717554991965144706765942619793047500352370112768940330061169409517662782475313239913173424343279222618011872239849520517037808825513314039734700266675627150542083427650718054117677049290550892952328320070698344912724620396245015865359020333461534009944329774902371303488350348720569554076971566363398715595902813925640311157924411517085512061996182061222155375735780925130227941511999252265682024019324368653123661587163845234934949250880749105019959439325622147472880295978747640085205960266012574430050673183970155864328637794728221429899824283879546641688530469784842787272676966880324688707919310047207692250744328954240019312567885365631735334539391950168418627996441402481916801515628079688282374127394691760367407278983261201304518835469108855382001885088638564695745708459837653575210546530392104239976064864063658524646262382218308113784602750448274594519159341517237406864285476182471848870192563156358309073142351161725224791853353184616692854813405795388886343058497061820642176197182939575113151505330889851822425541213344202255153049488595664572659233842646184145652249649743960057889006842267265910147339975796972079317472907466485240244722382680924825907006633278173610933406775353965752858794212107623837571846095471798679785140156420502532159907389017471008454915159020242100722903270327729516327571492278208502655873498058207781938013354358070634714442469291224744299264880380493722502865432980415452034146299151970740394282544667246276168448225877476670359485998719446521897983608239663448456631288285856421671623278676972182995050684478074781004345426482062587256241152209234949049996442426644802866009729869945891002769336301292761610623361461519304410781112657035417526358256424623530535577413988111186205527016797776242542958976024242885295756576529740990071832699968916118247540833063506526716717695685353610243564304927886871106992256664011597735141727081334747220662153126888039214776703238791151975523079307000749165917551330787258567814123624904858997153992689457609868552696236413671758051893657330402340469753158773959890188000476465818546327943938558382478664217997426866544199409424852767928802301911416010000638253196097078123910053541120833108068015823423427953558834539122259450532893959905769932853038340053021619495112046576546056067858784329767942192529587372922036674804992615783330053122993060215724999010469206707108055384295504079453057958348958586783963206158969301531375024515976756153694790949180273215117795935505475906743296630176136213622164436167733736211209719722273981137061128604880287367897175449906300279969898160812752110970249983011945521032469961980761210919750610913561376310214462778183536959700323048740130410013967740106148857610110310054074296025687996446419876258114704529268220222244947602853426708437067297465836611032224585814874126682578969433235950715240326743484990801105740405201859593322449698696715547377671193310236303158243949263969676524689953597686613221132910834804231500441167890739982806099601189559077271151997811969083517049060929234614444580588285919893269064936684747832247478902516757715379877475203274395802020119817613742934139994185957480695812819308932076848756079935171108474753030741511747640130554230837079550691497119908344062632649806793987694129961798662369323430339106183219158910656619308954526505547050870113015401355784157475675280452879780477824921551768184000956546316940362829131342112937311407554893440197152681066967293035190661590417667073041375185838357035416842191507437986196958197969727565676669824403322981694158500708613161903912441884940797303882529484256184258270879024620877962053603092391609216252702302224688722762709585821052234127096507926245736138438560230328304158191432736006839092765449370978108399247336009889722376751655795919595102717309066447934235542244992170499727217299412188884459736291092388899397627308074005290559775930004595743843789734142973180528607420581394948111744809043952526073717339206484079507441667746423277120900060441868692153724390558750011565288897073970951014485985212699199143718002455633912917864013515775977227485638708914490428264883020439163188771401950465523112000003227641848542747829385195283745102757253095821112105775494818048664064120518270653974986743671723309356607504896341866801334294366888419446300129052843562763919881735098161329721344058164754655275003127110508385532814891619338894667422434220498799435666895515915288567983181807302574573072217194976523450496853426317499427888962138870591000212656792989442471622264837853785594652849773794339747221373140961243575634894479434469660481892308377641631276734393393826279635493366203763124959177597481509293360551214042658996567470651579086696197467254770754987793849100881540969117408465412711314179770715683035000198587649733924909787917609381941932990752849004148705163003624784830953364798773256567359675063213957455002749512250573728454789783535144253255367451328282646694621381964907133665951313594749804212103883063455113801904911477981447877408343847437503559760940985175300906300654489916788606932622811295895950544721862671378771011761099297309453486396753898607275928902028781785885438305163113548939686884177157934709000077017665160396676649309760666339233490801710325153382195710346298164761261665949982507611175826721621538268438037758890211884593781520147673051109700637660447545625001333743435006026844674259886247821778648940170036063669057577058364522196859786628216242442932060705956241095569053086453174083104498287812933517210932935107495459174435206036380748600770194256345449869825983196109901947121224283465231692505793208907075718060652276622056483103259130175815489373585597062796483831573445072235402364010690317565942730266214609440229533628904866982978294781643339809311673589568077144743247198840120312594598579886457753936362097157963392816415316353960396452348636273653190765889671854725442938562937892635334270089445071296863608534683763464011811128665270002215640105082510201445316012056970510948331626959661093659630767977464529547905341219271756588436124436882376854982509285590785323103810797815232485007189588110470098768888626647008820445024595765380038940044400959562008346508966368053112976640484041177481336711738459986859854507336437398069215473220607043336382111768714365254931884819487592045738059556980142787918952828135427312969630005328596963214615737611376774103674653096310503325128077434323713425927239658988895228206959519334433159249444609281218241700802360331165927952761339734126148793475638640721489042151412841237178024544196032590175894422588445485489136187278546215007090378612040343179727672969576932590680047923952792535897734395338026555501287342941434441407425745163832436402929737057010275679514497233408987313739402083923006881527779740138104242333583426852799122827266253286920066929581589758765312078547696674317684754384729707996372154656053750529807376927124237630567761696268598012464197504677687817475271065085454780694034716513686132668670430514212860568306643575408249969397456688749129623090852772364576926444518025022902203543521698829481659255924905546033427105163104639064112121964475115953213742737468146830358575653088665447518053980207905717253037753906811506950151390103312921827841019025209814697468554121375185001603263801930492285820592800639853556307378061336923111944187940364826679871379960760038825815835922704852927238004671148585981546906559147784464164129193203566847060406923539382087016189549838190832961841663865256415735417661675995552284278961826944862266685786226145274866208451484295882396758772274910123432530544128606072123329269535792621098978505070774828472246255704543915075608045565001306121748501916775476318709529546477720317750853532026874477032446938321784865503985020438579645557138579651951947395788375795256080738582248251304213790276958718570075270577593549955244826129363240423502871251410315061491133032669381606470455810441767500768569823947555888988724294348955514476684973970246120332070572624413549457349647503760535581593293797973461397611818196997155448799523085818043680997503739773137932580313432447778431109836159316352861937243188035248631164322518854919646355799605876131436358007027999060379575034078209993511562714800151937608871247351356137999628420303778647055492721819887157791042109467051666259675171702547867548251754314511035427551640838439825489765690996003960328315410368228995257974443257509572145820311886469177022394250451382483920723783429105784086464519227009011225073821813027408342829689552018120846145459313723363588849031148946133227608401426263879967763329239186334043641413321512502884729053864587869143842918639732327007505385084775026094872984694676523808636396130375396638869237102206869890651665521463555002583987089678847113162665223855657227991797123983116396917385874318750406552885759010223625786658974784112565195840906105615360110312895126611477441533963406114910100215256212788377658179357264957987582097027807015023961635944588887135147250919753618782806675913582751645259924346900428610699108291259122062800155017341900540390446977638441762301286784037108448031798862130749287447523501666760139264078284440758829385516085482463706863705706537958965832116190365910440263018298674634674479933641142463147392310822155567172696774801716368708380122712808888360846412536727741793250407750373339966473727761380359003384943253061438609166715766650991126982424670369115528285961233955611338604841989345581645972953613796172563109504203512009491073655602892463495773620771628347356771367018824330094840745445791512754062407240561549232280225172294797314899494866527609120141801287636795210334440358095723082574313712739625945138436794965579618786480905346504849578569658740022138311606865583250483612106163567758108885298146111098187028273328117911787748856676811250537376581291154471963194759544399249557119178935798793596564780791578056340692383987188840609051462531966923112117228621306501857341156638398379123116749880801412094120396560278546724707752146322024731696725900683171266877714613768085916882831665319708303294190985858717779977244782664426213553345543173510058256733427260036058446410920103984951307207592257543565279728551974565315894769205389034984385321102688315738913338316224881648102443907570195997440350193384497167512393729048696143829277680721234083214844634090579817469327514732251127621332022915457592262621945667734760525356305174152288337033203856115939215091510101671146023682154631156808956634871921247196277886725907148629700425427825080767884300318680148273156429329635988674661657511709867945158430253199325601775154075334948931223814855121841862672787434826360189378130386185906321887292690163296985621789255376270565827124863175899047069544357294610214067379794035128488104247102620269476201540835026256651824550903838493787967203686680776503979762538552011570560447475601225348147238489681124701850163313467784929557674402767958683811641710083719100581341174295708426081414906708495403134044771115118324059231790167927856743469293925283561347270628750748102549857141719451577899882196614506514170370939079641212613039406466569293707922974561913415862793075016082726660704559416979430892000619814358324794833542056834571688318013630166772613266278919211738921807788430114359674263270817278654794183657129962524581089992993802147929343777866410602199317723659489780476202162926810678089668014837872921843960231200874166424776010212110130417722143359409386908037331147374614498587586256316959954715449142627488818777579470867484972942433657786452801616260514459068456214158830806088495320042552629807309317765956460588121185727248910181763777749565482311711207463722894808014190066337915371282924935687188171504379368651374873348590450389328576036256756905966708982242263507713320130342044051577506353175484281087874304899052691162915274454041447081622405634647510860343824254835062917495529945062721249402400350443321280617608396422358223226058870316293564860945608533267680975334420498785431196682958474944792047248425246882240350778510875389754936948792083288546054080631437067854388425517403212792044413458338588493623704362821801315038720788980373111621807225329569610242327713240742649707543160937434083466916222349754919535509998462174188548004057114695954855314953525985232363367785284250576834779541166050673939760588698501586903373627995748747532440993705825658014074372359705658659792805602121958021665550317298530612286054944529417147691187529972553828825823334873143211340299166024189065278912243740183072016869644920970585827551834112742877475341652727726927511508929418865700251527701925584985896661950038754031222763349259781833699177542410480782072710499608712113446171707657186902761923714168702158032275660312505238552617426586114555226119562759766001647102903978285901247455433918861714408712114401471397709906620247941638395387412323480616165033632781364712449712579865452786245808064553740486350955404262303173764281894468769455508040679582360678778784041024655031909488270422677316137296789836650082359612967775128615567637833373215235294202728630582151253394316729753983097612570382989069348750634335226254177584073128972931312414806824046594521569678123755058043938908422338176483441935677673848366845975739053337878461996338407632901971911506529695979622197691160553168429241973216011718815717304541232469641675833653294114003743902961885195845985447010597669724577646135399871390622282979661029487848059288883080970785167365097461600749328384767427529413215234976456350085755444450709988676418511025163245985580659915328220712717871454097759589854372495816443170232126226973881033819313579425734372782651360273028963242449636070315501048889918766670943930202217050602630603408107017583212665544416419201365631631344729419754754794408731139359134167826342261573165694099997320991360387298410627343504329859646757116983269816100620951541789901776388562342406762146418408209578823080526455492817447142449704977741100081867052060084397434400563371914605035408009868484466106283608399611955379369487888709778271996651153620836522847102074837812930099938571180985691681602860256198902252037146708299872849408632128604870237714146308108263025672219030248527731030045807671354908182799198186041247475810593833402382867202215089806666623139484889907907762842815112970280378920048919783923387385131441868654341430622582005195997131965982317404231623892853676177173495612795122186310285422659358777310502069043878946586067350731593024703469995173951338771343434411114310398119222694718232185189267049181393804295502384476842252567677595391708254794373610522179448778238738022196856571426674637119465889576195781914801661378530597152237826793702513023859833156006588503434111356503088521165756115855917932130296094619888151142399352078020441219654144807776699754577180714581162742638735879422974169581836756973419963240441924163139387942197376437521559509630376022379985861737342135989176970471158180192793762024438232743235641596317892714896139317228165106314445397113291320453013682180344379810035377702682833154420743372303219138722681684854640712597874775806047584448152227307790216598221628425071876432667474385422089954326411467726970325045758329370286612920811133761069637614510317925436716246859416044086408229811464699864662821303611515520260080423888731059072319562749566472407601134279500790763970681446019647218418286345423988762497269923006201050614929265244508167745471875641552515997606867902601999551251849639273967081056738370188919081681247933078944084721062760769644268689578027923847238138711922859395269881401097043128017641230083762343997448704610228993783931817998510013599342281505522229261010258908847152215588934511335377968940221159663260461288901994184749130090512925742301892244803636160494503051648141262867767212205355446058396201043935655109831538443092164214696940305574257526337428028671045811004435586582311441927447426876515247470902468186073424126761962670338197655782099880165969036242010261000111551884342252835040816597253084068643494981270530419317788883121473872333383735879514423832544234768707861040843889241324231888501343370673799145398968700109639611932115566223822974099537435611678287810759014373432968564883873855837689341321677921602538949994113868069737485519421146667006180996610040150203803328716330357298604572919709926079822597328391357827465677629281177839467296382074398359589080486867165554050855311546950109105745250876462747395165635099285518758993356577356756535641654651940692927272092362869830282212432715044193151407275751905399117562464158512079981965268136842977443370126094580238602497088812021590753498791731753865671941311109498560176017270342865387992401983954861388173995244314675198830469297938667867452385363145795870068809940657192240584515637089344175945776248846934505800436979920397729491457475041968180206778719231677624821881106340234903512610119573192304286506269543479183395927375881342189953097184582943789109338274278118695954780619653192279502197375547550983123912412941305387717883526899994927384910732868059763888670151326016297213147149808824594734408218490100301660569381499366175072994820997395025199087347550655226096014483620012738434000915630165705683956733434519044363432485565110299169168406001484574378926313110809191246206884961940691874369141586431150452700118684166046387111261134175427149591303770028852147875920226706933648578923758137871073400640753349479833587054313778582458253386936630573933402800576902753945020059603770715967285737087559196838847648345927674276063314917703954293218117336713517688564959693575370742028450357872456444959378100118441996588767907638313777144476982840821729351042349960654590652787785486629150776468496881293949539954026036608227697254460657994977948826565714234700324519965240652616088008267043064822577270154886388594787386001308183739349242390099563469917539306963209638201123978128398903711532323200674593604631819872390256696541408823012120211342972790109618754652336820797075989959921120751366531895690007166854044686798560028229981745765299695370142624152871791646251190612479609521264984410347914517380243716358295427981829602858346395987986356638493433395847021234836748363561765740511862284628238162496019310382638682452700451182007731922781326509594236798453056903971178249206120710592977447993769068723901792867339663854069884883010076542783909547445304366577540742976004595675937800140764831359381868196070592861099115554035107256272720123377875074577407107306487678365275133034169563212008383929919344405557749243778196168355018556004133181447423285649390309916369458163123163927537190450984520808641970737776670184168945127303265040031949393933496822477759478492298962169332522143485059178829842598330308105718568168738053575021715448840801397821005866966159157607589540651914011489011489910560694227806735923326983102838844337784928941478810380486835195427727979104093196253919053257646710182752341155608016725087828104574539959634750482766366389539703986568990303600457693137285937409044238658596098310464088046560880385434362655688431607172612795638456274456097708278261815242208682449855161209144913777637442692965594848357268369234761021183708018997774978275477578407580406396791811880472463708887361304966617920687238804363438229917859103730435587250916449144919624925151374859318713203983786352023598058471342128172890583375704501889667967214727657964002131413156740309185219988364182771342925408976063764238382823799232483652713402835263728246783564839804279435698393995101727188888692365979995131978945401707091321211626234053204019568182601954193923168699494832502819124706694178047713905860844558651899726321966744419787275044262660415143717921492275914770244660359610802959269383441311866676013986162228539360254490500027160993942794057036784202888444914139668403241733332626515827299070984380003607038572252718421692673702089034244233192151875880646212829752146815969483995487964206948648883396032566187509314663345234417103085901080788468635226564751430006151278101267005980317997138725478082169078441532450551575541582302039091795288049732571823139423203549979745733009249268712746656703153710153056779100996243888392805915641395399927355954481202471911678544206810798388726306686435066084095427022601137539555806187438243642590214681188582426996225775306814374891237811949885909156249543534962611601688333876329665689348373058270873424647200763642002420002182968445247382910835643903558663100755890885172655364115327145988297188848056581721527693029763787803282536493262859904233814455693272779348602042660821081697097057257034207570110786363347800860666633288828021336948205832259818153678066990781856109807598359681783496838935407183046088538417240757301473597191271431232309317537386609411465930760723094011802733986432356464892042244531776178282968779419660348347876804968079431988110785212118119354043881608615146877615689487546389002488119791560343429171808614807917876367384892100811803723359731860452770992581061960157855102493505880416111364400031779835944450017624150002930855047965821975213591581807615734342347894367952814323756211023427601711957238524915025312337293325246727876752002248163414200474699817902156533414508604572285856483136010981982192981041279237322068056212741804439989542688440739249339880854195313056733976555444276622538775659645912658295674284116006592180171490884610668566584700386929654719021677162784439454667957554011982708924780606908206480750626641323308253456337956770263477083033275230782439285447860851208699784343905972215394682899045981135373322394589108505346659682549421759547525508995497147803468828436223464258552920998411922317676362369870291009421271615262375416955076348156249885946670746116655064820774910787139840170771025270228426403913952043061592199516823078408758353308941484578012673714028257454611136966221435642860560160987087861762930617948068297122242233049568019713532637189134739208135446364891347460122288837072432086140740559885120445615685981946329308733743167758884368388266008980030738275117505109466797900656370284550287339084253100305507415860925665382264740151686698931398174761828492155645750534365474812952474853641234549143677084334901983689189022936349221854191011349813263927742217033575539526198858951958577334860538936057880806478222835968184237181383720159356488181699894476682331024172618286219934583368944638624152961881778588536199466177457628000248293193596671495410551748903393451979081404804919663199677566507673748422629922371108182949292522872632217709917531374760257771144325215360257628093549622587971445951851439323252258318387524588634149624440198592463864949118993706947911156625670790230112574282449094197714538661927788182068875248560872234326432236117622592263274529726060290422508393196673007801013349249557545520905885923590311693685465579735185155339758691347771784872144423647037499744102334979724309214304974159691890651652267737393958428864484250579410639793613315018809671347201759823020839063954377405841977399743844353135122985141959043224228537736235462366356283312683205696892666288541683763378021993136675988064493778115068147231501555376107651056075753335599729836467592845857236729455990105377021373044996551092147816110204864321820108347610265039093264236234420793213707987781993072761229382827681305077880020772163447285032093488846292373743478960972216053302231771325919297678863186052168533501087675049462455929163077648997439814819654653384970835987625863424638120400359713224467078234527538283744043588544529018492019826698094714020969179033624669873231125679053739251630274771922009786730151601503499234490732447245446317778125040776171209546039523226087441910570318621725357944791242263195456883939829236260385681557071583164115711875010312398288792585973227346738065563823393590245424553586305355401982107152961581667286616255024121732990651640345453601661819778348238046576820303517080793870478464649712286210733189560579971590614195946762674535843253201346776000959796980172043171128347259150715192221185240078587485689248153949758176244376040929934130197538347674510788954118570402416650007404444745084562714926654223244193074594873653520856716707015692600005180869416718720128454026376176454239510938213862513439661258345136349323954310874982637035789810376124519239106910213467700463451545133041873877846160050359557192425088584918569701948578090318812249919727453790961055522066005160235815086818513375348322473764357547451776047230830456873660712077874662017894667339534342857380584652286688565523458191821815099761273401396727557354220312642861386854796037607395377801632338552307927415713698217703024213545024933379073245822183968024238110143954787230394159875193263321976397467403778565634378447712262579278077611495587229041189871504717521226997258711082315298129099067145559874229440261495925609203724678067743948945623771025657074515653718069315816664805757847315283742567151985194183612439821909380996368234028628445078121351147603264990694968521760770181901912230777719746823404142028276867108159520837246176688777291915602900024950830954788371207132978874250384859911334138019016466007451884265692774318764256519900164892319219121572534223091590602439249756272309627085183676647361594605443573122475510017165181232111977678824543025319106074988885339063318799738716582062204511799189868970206987961781625809678525967212696341287817049854871354019554144773006243082521053539371560916934943157671497014130817275816952333224885700883981459363728297797794818857980351989587572606036359463227538572045505574943639977491699078486084539740669183493059836684851305623128332549110483320674845378614380859721438111699353157547736010386410635327007567229048738243739815600135902024733087147381288394540421386236439519920577544666445455229226619483380494593971109369104771173519017165487598034018675549564020169630827722526950185665914175732742036506564295221491910525270789502729794904749116278575716005297854826454823600484468602372675171694705339999208029768393682438228676463748861703818690362152853126336491728438837051413381964263442013688153166617779373874868847703160015019306002335915795813929470770121766251945896929595555298466973917220091709995389838158445165426136593093845837573462885833844096528369970166936313523742183367406475991258699122808523152172760171541742144710893211250670390088095418466058451081473674150626982609491125509004169103599744772491079017203308846036872639988567714606241380567662003956043010081175747076710762280198871928533789913999201374383850303674482948837654405641864958704551238681960304218972431033503182492108350000478979985226071572839663146257343179617631732903553333244294148665828631898286464517893447651902796586418500481330009466572386408541457231452035136953768718379941118316654823832874249836613140214620650867610692467033214826971234498237290126085922633859402343957448578816053563401486833534459561889270306710933155318344124203849667137796533943272730997846674086980320219717425536713045546254241143586487707726266656524152871907771250906746383835878770071245349056888263387813013990908335387460310511736359300249542750155636105870330689973425855666811794633955129803550461733798179445941818125955035257412451408680569672301256356159081700684785798760403803158741905372142404786215874389686703924072406235735395187518563995454318255184897583750735315289248871986345377911815149124104582558057424792628175988288826917994763937649236230126014759610033291473288585108869999169945175067794972498116416854701246963946024861161728879090510063668182536511432352877344295656646952953385577870807313738675324613943961515746620107779924944558760675726959267003680586853106325567330957218564858168074117169917882314171564536975622722374804128455190700503948122494891573299733707107903978312819096029343598154048662015304346439133016980502077585701481454387900718873566683963437638312386263654453349809226612783424912596961485166218154173609046076012428957038981612862257643501726194596201514530311551673545288750153002366412910111116285580492068993156949257879149775426067372321654798456675954129890398047834235117650639690034554320499690674760032652358000116116917731841301541817603205103274539790608528080085950183838068410282409882271045751321859663684432060373044571794066275943416052121509424903898999756520745649093293808877253565465651380988068212282146205754905997073156819384875342699052627373986024154994999860639184231623744763804214689124650166503761124702129711024394988718023672926237986272732915908744074190955953549841921457369430266877677404132153940463510735596189200747199171823510756506239028810683279915813474647544389490872199828372235547347887964413507676933860610254835460206986958920324251109398572051774806115158171432082235733231863859021186990284035463747721566374574872439242340136130074989326010628023248904963868403379430772076423127293158799030163828466329515271609844830254388638082665307775986725166103296433761887279506157422039857645638148957583965368591216817005066670927516185341407384224499443478149406221170189436162432428172509339933106543647530944459498564741030510163645081500391383257893594141709666952932318158216814923688359770824687973616855302863610423148922737636208998031667740908316289413492425532779970028067921874413959937607988064482921228466967845356315359642871383138238589315200916099745258253393429152222302950931423252641946693246177884438004726284950123088855387563227732876345938206559802503244813939847041437873124818980409657257810820452206799103346227305889602183540208204558550244371907396020686289831641813990640927667944937585403616998211182430161966412878683843803494693182623334134543602373118147127705323033755011027565490300837383129819589115757425018135991175579010698148704926138657453808790950335312043802780526491676501051696238463196623157927139797631862035287264196110412246023725485719044187644299596494216816173739346442139554089980366718301373907596111472956480666223207405981308143739459659806873373888982862635723953023339262042481124902043970020924055295605913013117912845225379025172643299906417912625608329867212599846869217349190720757027092014445757159518544104388147252553902466391139408756926029634396493447926578486041401787850118807745168413736633561374137572016671316489240103415274304431877075915737568050086008845800790653190222667700517590501677632356034839452884939753061194702258920997742973061586238538084187638153303177212199289293417760052708636222584707422529867893628651862996266058070207743127991766432667828559178157802502343603019375222291197994624625969957193826039486838079855882922213190464979572321374925506878844812119625965255578369267333101055698962737725982898756255347177489769071792277074905653327961403373946117338125800301726057595714233546652286225114646772234674267393976427425131111876589198654974018668327147640218877041990381479761713227624518432525924409559703108030385595590531046211109551514657705783842699310072185892530077760055639518637080478925623193573892094095010400241775230268814220840643229757253456627176173887145876745082730729793282569209519007262294048111834200787856847797042062905920998756912883085432779053139362421214709708282686911435911186494319908685576343750500511568519901609824181089469876441620509239797049733431336322215763808395652012493988008047241253576348672794118091374922299619414576315438645379605147988820896738818678607396913799704547146010880086688014172288501495171115702113736554823440285338184889967568037698687976498375984243812209259917973910950741128557533534398307881256746513064796145532513779255956929764410142560250587322358857327121427889253118350300486250633324639261451307755527271620738874274095714299563844940363806166293137545065733934801073455017470275255474926669155380237049739273818609742646908602025370127772229258065501560128180574383325267687445415694027840197310185033535688260909117082285031357119930789424552080786889878087973342595417088046232908497160311863394952830121676637638458246008423805445192989268687368607181407628946599368166110202898327633347008582963571880072669866773044572808804932519116835920965120267511943638226168172346195995096982207513411879148967130121343248022568873465024505411791325799032321912253137853677410229093477868648917229227347518873534950618721171329350195619780749625623944854840948625992367469439554656520442334521124542469108310247513196623361697923776331269376154928531085550825247371106036606318559845885471069133091059815084585353140957728536307858846928561500626135385746889262214837308701568620745219481797083849753527711981083313130799381665788463811427312021139767601585950630385920192502669763103372863537355136328157043896999622111784160623577132233126090420470955990273586474380154416476865975028356060656452911304933544186452113001622024224348696668277723832508239549547903584865004128191200714741461691154796158940613508867556728327562292371957758694674082873654498279391464753270158685594674750098790749214836609487308650437546169436080842130454132433603789270328230053598534954872269305697709046907502140976123576192978162101099674834976808429999103163198088522338125517900383205471172549996007186396089792739364189266443476250683989442735374554315981895146791524845921767930869655054540628951909524759660300491186153938976136869172843092023836370026494670327878265153237842733527523144135606310605976113283294022484391361428336172803927027398722511248740396278037433275112662356192210487359943372799458815389893177826405341270678889340091788710215963604161499271582916252293001290331877728491226270718302767837740290641625737151028009755765941492698989265893266444469106236621432396332550046631528785378721602045643124122566621254783058856122530386603182960345758403834475702047129879513817457049154204263689718819464590369922558794026088132417375267688553676427491804724255740530165868157649654431895180041013263916446079306665191234109751519151885165681630992526783432441905017478892992369201943047340061012357625001071479626890032212816703730311703067997255990116957767006388171368302917783336767518881736497080144245036638845997300016408098953392480460309515207360910040901187106789084740804684715924782432129876332623822980645818886785184179377077560904286254369330256304837701205333952935663300916370544497164943128481231876126702104137745196982875993317243852067025182596026637762593521785573705898099883133446324767182148782657303743685751521139624461251953372158037340693333313684406454881686795346556376543228476155588135796084796253601370019822266691683557162644679950728580280228594762228422125351855388910109583886443986731217296061920718243983570718891360871262016771708204833504510355753712554441381872886404118881595729619518649425530608880779980527190203069986424538325285997281154812730977627875797475563546394739577565531769277209851148696203199980565955494878922478857886504966700907409728264804747036557938417544605908631738431232403545061616388277859848852514540610038185245915770099366458886742025060473529605339241954299601942357944294823402775222172730056917755400026951446243226325406504283384503120179174433795617549909096148246809197430240027873922706532489197273247428113408523901764479990059428131933443420383520850857739620675363726782169001510679351661705000101125243214630270506198929829926009345023985951794123574143081999966700780995379268230891779548185087958856873438618278123820349927794492561313708754947614351842703951606872945811331528048905049566995353666776346463237260602918638048606267955194951242649545311621296097849139743737057441530046883858006939519610843432936850664237901832263834490597332495205398758531131793350210148576442725893130568555783773806842992712262152738882690076522231806490749454002333082721036921717931003365927110098600103687854864676120981750476446304685824537182870624182532166322813136030333829618861702684098503059138851527729180098983594878628041301267293486499578155019869723969361227998696228283842483141801651355651205607061917862003459311854153842681637604622097852068014752278304568333610348384925104043406714528552900003465122179123985187651382066062788407218726941449687803887933594226217076682170806622067261601806106990253755332921443173320344868038490043325562728431074300371617313055253248471296101430961854975443890807085337721681925023831801944311492359737554166589214412774044702912340547254810279456345036943457286214074724808304687398993755807976478535769405984237664722056360429092552219146997330145448121353270681166607496874040102863012215242385542993839944267491740611609934058687617932425093994701693337650373316278047517240959310237175845300280669355355110564949640524904217642357829073843898151100517050839038944967236371813920568379992101734138553357237328048411471071317131104303096261049289252258380876390798962288174183155168815370473596810805246037809069292914066500458085437890721138348262111306658704495311713006727032357533880704421390345307761219395181910610978600336392366683218064634144006195287463131549577936868955268130202045609784269908134817716870939570524366565672010472973564515922524919326098380523469120435691865374637859833528541666112596527762984478610672094205994587283573649369006802199485466395689744154567706275544858728552811784950974842190274920672326405315971401821215971342951297481523195955124512653767909968209196092915004323921798653770537313098701308285496115693624580376526245489584345936633507710518306904245151481991567184457024287169832346268156779690990422223742255378221744622590583550256936175515158828361791358498341017242956519300038534924187509361268438295790025253802114999601296293073850362524125032741989795153081002504682962435282205812577444236163713944774697645345064864752289534383126046258310164304529990148963241678938833979050609389536660299846110573908002391572128005990771335474551712738254889166532701277296294337693077153132081681603653090085411643532217396860657869140278251386911779248976547498903387220661735101624998691472810984183364437852250560797431376944454786287158130795220198398792323113460402659332590473739049569407375362297584792969050317185462795791332417186085523970351358261795611669426665079928793834546742774596710622976588369653331743794474803529316309645090204337279020154166162364580715886378122227503621302368577720505354419329174807308172328514550723783113503166986894651063286245932632169056515627275222689157388760144072229779338132600391144903601191650451416499575736909919570544398749899259270461921188173048723131103702059216133336210464140820832004261212129191495660709578777484872350049454130508135658361522773539014911645639646098916369036921951096303866591236780827302579784886281359130160918072687979398764480991788743651986058441887167732672070756976209360268903126386501161155761524427226115527228373397848545593215110178538795404425446849535327106344466432217512624725379949558197439218358614312878594211462420824238567882758948812553997327676887985849651013707921268982721618862227642884954350562799720484429706194811911958671848118008940658612475138773551371832931367319683166242099560234371814515958283453275920571300095672458657600247985813492079896207099368294005737720307822774968667915244470792560085704961422689823578410578859947085799350324400637623372180421612859634288523448587716791460688084821305083213212727173188402942215110478554013690481601788082406975046564259544965538432543826478160652929475007123066690270294154006805483236208470076621767426047777298026021518788476446603011997233800594319879792433699939832282119886181029784996416171234362364499975387908039963058897185204699938060029846584334404381260695134807235187598217289064239832965765011897199574313840484976815793970808372694810241441809757386020380780354483911064277636576455576811315020425252317769223548216587123854265341215864793659596207954158087246969265384245552398021431530582876277220419694496092832907242478687502119324123814336349655278835863125289003139932746622364899471987321129829013505709366278370477987283165174007898798172110362072196207849709901455509010475475117655644843267380571873547330226417117346042466649727432052088868187847986757378264721822241864592646079959214986811095663993324862139055616819078000314799881391715519180801938229198099665942655359373335480297142686715611024785180190612993859543442881504739383424471778164912918558694367630675539016036529291601440977396973960902391400119199262195540094364147516558658978109802569722596603091466113476434107097675856735395445036243710136265317119669615322645161688507159253138399252955160291494159719615815179736788251356461393436300332074897749781203900091498068860516694518645623936137968533530690033669771105453411280660340636551109824879512595537841489264348663419265074568641831183796283699422915531951861678607807424657720354689560544260726831403904417072565757447511360406307274962235030102308546327723826793341314848566853763681427463164888510419917323859593336763626897219819188555039758956579834112755447985039148891520435198861888214238672220122750972238286818741515979951876082758294007368558126840211542513138740885948754516711963380244159159727000617164869694608003925431797352059863457286023842321044518354365972104856281554215469366418064297268628153631059898373095200902075958971200857794762530468766413112038934446014350901231365917715082328223806105693971579681493418411690207369333340644971507160370109633260867775228863614144671906865452483621404745647119289976502390329582831547357137657218667278985013915463698813579969750826648376398493067720257440004394015066769533988676911421083205441591708551367928684209886739355526887412340564530030701677505430862726992528665407170951036681418296676174945271708969621900462352522399712174311780083513402905400508024386094082659325510739157862184238379928055823169303308453731605302370974131397667429102017996784786424611107879460059144186267297889840155607415260865996018845951190852398617067871172539460351226540577558211946896788551080330981722993775567171862993749123502343462262067070202024209761776719438131031462428988339524387454072058296317286142970931953058051642350175200431084240218472553885207802603345089394902187178765644257390588609971286646108664833846081840196545569721187017927522901675906147421233521886739341319840087885622955085306509528526795245536616507839239386358453156865917787440708981190204705715416181600054194999049176176995160120847455712645299681424547433776325090278396244956390098012352050213026578023672917920839224969044578849464710071518594458837716811714338991975790637032632150231992270677492044236173255452574120892707726659131319019031957350858111181251705814866629899350593557566111891746215739577405862769724071425861339953518081592556533362684132700027377555832906547835250762966974761005250977958347070893728299123355566650470197452648408025936954850953169072523812925478619884854955100819826174375499228087221925019192874900308738034596080537825941578371780033233372747054547040312471332782984083575806584733324098925261316577365571945186215701418267643433034359790018410433532265585813395398082536978029273415676710251316129084829089220656911897604436842262383716729959553970028958082904718103105563231374586378093111540958907812821413379331335184275048988575977588843773533009717473335476952889785135015411507172637372922846424902465080391419080775891799464816826148357219482276818987292990972847312912950423774482048101221064655483556322754364615807887392876065657025580763665961762839721550445324174105185917257479886432253086766554855824017687105820721544735929972913739174847107926196407682648467178380681213564753926393701494980130796654965790107934556441953214044353015661758358832589673522112883387838834903537331825430523447945325538609338067300244642154676046196729793004051011902484758026738498256946659849494549660327910277990158377879266987404942425243921264524841273148178758234275673645301010645659859093864944173086106767589596859351187355231922782613311199174679112600371602639706760615452184017391653074881104175001229745548035390531682370711839920319820357298434099266435799182156177514139158747258419485748593812383076475826971447260774745318696240356418375402092934872845162411104207293230594727830311654928861364499663402168950259773555574576393954327347424413251375400811199288701616676207363264808846193871590853427816747275269329287336898444623473308691985020553326321055173807016233894549565824968223754965531216199509018618292493936901323056567144256056975481665705471853938137167224451602446413714364557461754301420294756252601079713819606618733253516308307048182012832323340658277824244591207018607883628775792295276405233503225575482149223772220710149265260062231898384751783751625440680022206624581191515797139749727554266519659589247330467913584807499371852392855528405402657014913644255992724428039822066901720512210676499535302771029095112441340084386909258420953010915723910667640226998790218885557461904174074492195852765362045430832103466226812793758440551007733413344821822553159814774448937530181224119943828107064298621138269538227213963998694419186661140203444559841423801348966571293340075479802724940490395022151125147896421532308692068526870076375254692944468823396112675913749963715900766083860539480461837535437970547828388488329705740866680013383231905468413451116736641924470066025124024561999221708720151325463760102317547300538876553801555119178350576570569556287075074600075095276808774153562040734585392931734497183701160219825594634923724679977996219021161215322169912944795953463183244637640853545302849993470722710964223211110320354582782739174711848968186993260754276225592406699193659765945567748779295493163795666766692994738974034039798581282377420572526154532411098323905260139852891709789131890434393999960234774858614033034875110642927419088957147169979263527503781461233130037563261209538004605147554761525691676873625855068631820997823444817192751354660875648334472758090032111718506558182780582142559006058984531484754022659217603439676176263628208252944765665327987709109428359968802235353809599195165071614806323166235973484335196498160264679507364634707317942740233643992150436589260014813739847690850964620478819528579389499830949850844718095834750552235176987744667655581664908160556972884909999124495824045170122451185398585708655201087726850759772318079916761094602152788666224246852143049926254253599040838359365701974532203931625619265907822978670380650083950504062304494477831627167802159263029472356001799989660071648278117513585564266766931287199549488794064696333310068166735350467918754664277723667188217276121576855871841177545644296034348491233909525594166167728538846623441288275988978386339999362668506960813947129009782583319558912315798057237027409284773694663637435765838142674458889980095536045940466047556522009517867318165427120521904658600540424524440135440302057862970853050817713314079341994865145902374538011707985020851902691611754146723560755310917190116834748292393920567848292285536099337130607731797629840261795542843836980983862241155182608234912232218065772728329812763944564458722076388249511596076761597408110056651671578729309572341419672755331597791689560993110886481414722227678530944563344819099688610346874214105110388084349388472017617268783242935306013167970339981082242159523534348746902594398954697239753576446338390801086151313463063359092955530356761339762811841580890060976126220958117507257308748757803122718281001095677986528806672739639988665066498916751405007619176101150176816764440181256082961699058855374376206117866067035381566257970241896891657773911813194202224932626366719945749700053415890681038072180598276628343945940904860862024825852564125663971808151759221933565245804897894087217855543536714299492497402421915654491360829536394602087567517768965172459051971443087930595589909637514873334566625179181039023157451627363806738344297822786956030824731907247982551147292318226907104260865831104729593484453122510281982916035220261140120260034871891375866494778135974253294417228674853831770236977736095118472392267023654944298301219109134195014188084822718243807580178109808572112605479206222824065963363197271502837785931252205650112368402283873419762521039380848291854125049289336608997803139351258256451751363983528773651211111779132583605338715303504665133012250366086498486823928993597446617542294031609684030982572998508845292691760466227320649865709872012024466455767678626453107769848415978213754510541261758230620969768775252538891770495766543251786389668645650158389631966581973154919628516237948227974307164886932477421424402385782799774105381933570959212278083674413646513946102203556020659638022412951141131687353651372303214983310686849597482857622065964864997016562812970917031753409295064622043387241987558873013581679764247558264301027954348570864462874367170360610358827725478275168631076711441003737844584542197734113867461893217109120802590439812553241790327127741145621415522473621344939498167233922100104604143642379649777970647553597332227454914791470807686284666672280404603233944660157385690629209235387850066443662501792435161991078386874727063800278228046392268577990111582886597220312641920945584703460265671783239450522957361142759656806293069414436444341359745926734164961207991939906633010060207178978006037191329058544746086114901359227884021361931869885075762630468055718508880522825854959991740184373135037972526148963947929375607533361533759697698070990258524668245054036086437603648467293887729816989308024596472246137695261593294848703379131194882227060413648248414835882498557761311519005679495094239102099380581253141154970960452147860106284839786759833586626695064886909436842758395449825629934022370365364886478464457536747574022495390624855808219197869572000935167646277443831184317629170057659747345300543231319397101935208045680946490089794022641412379877145017435994715972168491253961508998700029030540660724441224108601870968184410635386611380624641988327755728174583222951087594749685948660359986308159715715309594901972967203453407006209660588617872169069784015082997864048239626621896415514371384747684774671454500962512512887965680139113909678250908072065972504721829162788515178905745243255599719423519088882717138390041067025113032450187598676282687484502098112092185370522433536146119294794698007048780548660439659084929758530155085417182790348105835177891492917669516809015174378201523274333220232382951460687337223158609375389275086888999560597952461599518480339230758840315202774640340948431984591317681553644344313335849607414339324491129906666917120734912305535402031606323782119476770879938869282635963403843635649227261519177773436582184249982153691522680790291548112051741618440430283936185497089580175290451592473842714147111203379716259527864689343292465142363955081368193197438188702025986678279632603985784145707348907797073349276636477598730734080798863402546786035885862084004413875689899017965196294040865393267066510434073029060013524126652612717735527440953613648255601486985893726027289513992089333358682053934173697370960110065804360832554573728791920657889941395094935581335301440622886274266472452886700155887496721167887177384052265755194773283727004365621304020302876588552597094255297806268778086080001323724291555348772373893400377097614521422054363852784005656951986082263885190521464111481202985234073026262002851888097828411858485227719380264528385173005341288871847298836551220326707466815818478695239698672757658450657216366611751007733252253183400635071204190058695364953809271942724657776378186707266248275437899952784486280697234227839952629597892867040437681214043600656205702878816363413035772103078150600157599196514086954306589652889431835548483479925484126800242019474806178126856854152475927437557113829886201771396762981159569858682218317770153642923611939442806185885115711015624918096594533012392142803581969403241555780691703549834449663023533891296726738741577671472888140690316129326425163787611752308183582190286990715395211145976316685192993115242594469487457127790226867901474892346877079589147942895510025830611167702807820234275197047149877471219569665865056655859816768147754222841468370097747329181318233215868717564686151505781549738127893807670069552106938943388814515287959588990536001709983311599245927012804188625470627564694705439516971986936507213244514737367232465907753035197431259015768253028951855108071719752807481713413692795342875981917125420554917271166236235171109573903944862258778696735608431014598571039906934317766642709941044999726070621577135245459138624285831825618839198044180864469495252463402025175653420738923127395325702359508403576378993781568484347601043867136379882022586057874653594577156542634887189271692106843287338436365269622195385069972147504309600789600742432338877234341924404804465421817529021360003930785122690500766642453215538723907738090028356900788343727379033552859062925222457935343490275503081187087815073652293144784571183839190214755355116274584385767527058095817891900263092422789211065228716678710653239560478202665399770818170142231299052939864209355611355722281132874313708909491391576719626412548417526611155593120853081158499894741603632208445943424284229540017719113309436968733678309090631602248824565007442366479280401025246144232147636124083878163748664170045274052778410218048189310543996061206000684886750806415551064271640312705353007309619943174188178704390669397343237239888349055637029946145036057279580498161824024930910842345224228144920106487594019658588422876215697436910884338922271231905274889472979646680089502224410232450958899598898832463785731899114231784474788289351249524682557168996747053749729243431686872198546649935065662615997957165235993028809162161817466076105433884090030062700292686917147236993955279208662578701174903784672059648822773814725457575335815902596116891663940127281051607405341640687470982157218202809495767749580261489699750171047717839035363027188464115330148288794261121871626944224708956104200553810532254900180889429244834585669883876252774583202033778978256254323917680536256679063722872161505256788049475239458546345871931487053351603074960924741019322526913532737795352676965654407882170301852480992988499734882273936222825987971480829358126561716197916625927863439434301065661833140909748004489857466716469258465543448620722741890711509700475589087845421723463608618496604597935131176848702482285603625549652399468472857850007739401115796589714879054308700987875104115273569129110964837219272332470957659110816657020985841574119586170625466441280897553776795388017229079638423351811058022941650613300893516806110806756202921497516216773513015695330983002217383770047749510941722829964853473576960798313399583401561886466561606863106982506242383928875272465907972399220832142940154161072335538190274562109284458874156400241158950781045433467155403921576617294105164053900494367099157154708141187024263156271060813548376070492590762574601706198175744981578710894542352198469698668179083396447402171903472200522912558894380443981823207075075684416589125798817022229188160433728410964227466087396755876380262052829676802910249594918190577628063990584161018313271664832945275271359936109269919074635532669618299752161082334337733742780620594459399329415781797433202113511327595812922508011909027823286587411732934024051587885212778190420054082779687739535930347130793380795017642776299303674899368826654654342399338025166154385563071495826954940766152143190574639452752516398497737327712063269638676400317941246201845947463719745692435465776822860371397172533236844354861612394430395757997291336213661102662256175668840900343405697710693034687804152905132202609811680851527654400141257133380400297349126596296766425716341753029706300544967167839645639686125428478879977941814157898371501851923180422392634955559998552172232384355124921785759869531602090385635853571580667106106984894712422857300817811328033680550347817257479475854934599467927485876150255514856831496430347655753465790926089953199568220341042050462543048142753677420065298077614669693072168627144999463397687873568029154737938107049874588692951953914180847098288676621992102907264369607878303421028288541112133726600966274669925473793887944369964439352633394144627329850231203225111841279363869210348671942678126771794519177587829548146054249753655920900139848456103347216692435188053564151173688198483644168749609973206316160596552116872313361175442223258471401574068400826661111210385783718496475494158270221741188146424704041619595884428828577356087370921477233221558656216136028255486704319430529949933465395038587842437605665589972615824861123218746065901664747063024275122072474673520500485532541024409860295844568424683677916494778214437863553438957635260838612047127706633322578741050133689052180583795396274041762455572694370772976074539734530840749634136495868142204560591326159158183816294363306043294208334715469283937855925041487391019040784147165378076242709326672213454031739369859357508314964764860310466344585000961193418033034108001024403938815671985940429588508564736770412928001085761036650685608348933019701026613907612043918330261195376373523119026031046057704960554541002133153006053137626141342328045169719823898343049071850375228899184577954279380208578065462127069494503464376102662498088456275294343376596034638879828056753157220520742033310625964427402505265890796512711757504928799230929953112469477664480321728422981473832483086265185291354094067490224743837204724431900629979433849951920238545464498925148531951530965644318964637735951196563813555686183748825510125256623017129900954673229246380390606837930503441026607727865607502191431807366241981570507667784822794913465731350394470885522039597000503894353359762882303416277855624201953014977726198850375315183047509337714472562206144216504353059912163572161510294519963788460984215593259228762623949997712977817660820801620500898473082887938056593892855400037194928124052575445528475132898697480041870308740250502620339276426396428050715144318643277572886353327114464351984285431080998745447330090191387793501120678571228389338435315940722899249672206447423036670373423071763348907915681007987023037738521802635696632314070744110602097200060105497740887779657853018687153303940729856922586947553460000132472113344077193774571778642453695255662347179477033997817541397525232933546442148896534957994929335698742404057231626750336145466986256400089622126529106545027033124303133766779722317613361867480488585499958466995598954221303372608146286837971570467931495445413049112312673524829815647235695114656155632147796010366387797598561383364733118696388889457124132948474490576885511073431437539555982855496852382149926358966654375110637396801661992217642048839332092114544471727178303831492672396051614122792381055357287418075319135422056025974801868665713239210068123828946639801160120969976345920286424015680343883696425747084289477088535678270955489625218461469429497049249100531667593753213350522629882565400837700050672642256102091907558313535738300812301515600742131195504421849913928290713337926356266337667585962448148334385589782423379652109016819870943293750420212055724427041093204800819474451987049220700857808826398560005501489253119642622625014956831758644724971557717400840257876284189689175762563045989120443635057632795792606379315555068689885502594075224148026439377306728983588311716362048660574560475996879059617762679865238309791918049861017859039619828719402496648914199894596885489424438759498863755573154123707886662175947074292980925243202037822157894985501748044796824063161720673338287153805630123171089561533746490481772342739758332478466012486199231082661312158193867616636558354604128467985525975715990088093783781838210008794236770343594985459414451694756797133659907826107834242574673860931848025329039649609365373234313231499866739136079166899605716958741856105341802007906842050265469676406611281198142348245799026699483712080765000861577326259712067062583582630834999188483748677099953068744267749655835901037558288925088743062278707783596099520787805525341212124212167262033197858330815149586304071538086518287398069619073604054032712910782012395869886735749882821616722083313080972537167884758561765961950510296726008100298845533577184998493632551762552389189825297021009418511627506471610503750693808769660485336062981088219780803843106841958790620353124826979569743665427559141483867610621088272907772241326761544713372592438364711212185509907472050406138721434782903291844522546064649418457365614437733023727856614758747158224135507606081412609421540007117729662417744527308356059577682449951384030536096326841316450467202281244138931023237621402135933407496791589430290841563356830357354097418413398842527540647501020633554748182027368227997051767829204254944039817328753856557665032177664870821822762906549373471127769939241268437719659393756302600865704036538749502977372124276590540102837633143583701965379461967862364824145395626144058623536946727728070688891616613012674750879206259200851551071057684615992582752633011993681333443352113951456889817979852613613005985716635932822447309269788158863844547011558299640367916111833870775803317854639675784032289796645023478745304862076278048761960794931641399758929936656692030398513969507822169195203736164221995355135208161166073207270156438734336297553194135822408018777409151095654065097053535191556428998044454254043640822940071493488328476700078706271190344740427009327829583665614202466985829486860513919538694879545437870125227722173870411081475139903391173971630272281506062457048580033004007714049199371361383761131300848693891780673109840583721081092348252066138713067866610884426711366306166425372831405287434890698842262906771750223633361491463003494300541146597255590199707346780201530400755624046670209524053274161330887066089438117541556783996198354374192226471942743046278249097761412318855351095848361529283717123711780960649457874590542050668271703832937999301339504854363423200265268672090131242881173693143673687232289609854547337434296740692762416091349237733138605443411773898126245927712602959387593811817111227046055714375252861371669101775479793583113123608802505802259637749815575734090851158080758281371376229795168612863777584206478371669365064268625881285745335244290821877961909942100087358248422101082606581475455390220650727082272726886859116130076579870271497725501349225632266407821944684774069636739179968986456714216795970654352178108548153326460764628796510732221645304671653782596939940426949471914865456434368400951999498763419991009556773928173056460456344792654994730410551442661873564386482130986198110648011277839856510629612334746221757074498524823849218373543965923821754898184692231419547114923346077845389997291506997095524404954748599670888713464628212261955227387381043271659653207508782348382907652858471835835794348593162864042078997825657576044074040755223673982705766794268962080643068039178619841355666154247334264250294217125616639875243006887167597689670201671351533916719048000340299054648722622551775077045686604547978457065455670187707744356735816225915836912660813540754450162962372075693332230375324451558951460586060487204407221524829030939157001934886950099875842334347741946915133569235052364447236971537195617459757516074664231836324251598644724053354893304094025066753690560893642131134617801056587793652321378777775346101119343367131362143860366159395814333637674958375343747820914416442824122218553852185546109595315951503368723717258346879806157868676335070707816898224124263353515112121024211290023018649387548189356200370050906500204099194886300333514192037962715647840860610731526724593313336658587631695029596300783752477961958603840791629331201457321943982391351811168867767727326859377560070910020192169812259205412860805337888842623754624642125768759749615447357822612671044349326328771063233063999455591062778714535768476271973139970276940268764713612577034313668128639921587810604398130206270201788622571649314193546224779401559596903374791747504599908876387367819572052064289788099722962030391785344274099517418739831698734431052773093045235995574127065275329147259970630766896741852295793250119277403943780814478741691417264062392481298373222608293582318040491810068619982616538959543154545157324689761057839980547111476296206567377151442691899309603027176166995134884635022546860564928057207284907010593078849696544601926393751716235735436736954932421919964261797251924445429957949968674627361882857250806252169794143335245323567179036707072298832091305889089119279385546067843965827250669851972830042692555123927239172973480404483481926184602979827471591208652208687091248977105460283732778862038017354367197569764229232840467055330613305422843499130063313652731212918693275306545964747444110311390638983411031578293240286776971940113875206924147621294145162239344207322214123769266431759555304784010750132830422100037397148907836594833465176837222626599774414701284504537444762808327706067503198979651335663587254277041927988710093061102151872238535035528091726402154979155481659348833625317773569722406436324497120721360691599382808113971514915408197776221543954654561268276493097761037262663072908936598840620668988459433744268047856041058456241990606745695005879584911154389889511251346364062266181907827934643657969193584715921047307630464652388770492866332101538833689166068748507711767910329663021081340988609127941754287514021001701724782443242350713831511442206697351394898143290421791733646190951441349138393737782505452807074105181381369495915018716520775690863950920758596561752942291934802770088668282325886788734759629343315947103933410959755657214975495106082123766906929653973035684269507110141268256549613411664422454480882885426640002100949171689082744462067427061881716875386455922525048241321578667327877394511572702791875161955410316031430848501464726890997549369308385709017226780807865564877206725409615239028003533983986590594033075896898781330685302610382521645013599434154139961686966644177823815333595960810507840752683324933882262713759258017175001219922703661671002067828523129920025067044790118175027389799098326496612241876249359235496583414816450208971351424882717211112833584116110872867062027474677688339361340864755232546521338118362789731185928125367150706913627605004014694140286858536333313271582656306022500846938807789576041302656897501403919624145144963733972952303467077012560650112472557112313493256340415662949927745583202104608002467072227191271294828970642154288302365856028073085687199450843860459158827833396101077880077719562772550914378721240882216227266762219468230988090884652981106863363594583777116883452503448047519338483600530467227624829726827431483378588549392814396235435025189321610648586701719494517895952951792855420811922869427617113090711119466348218327664726280560523279938354322970326449261447544016095001962416657277563682718445658546425979283684694953291119829458343449588074660576945463463899563817318347635251384763807908066901014241201135689076131776521890313831159199722891692331375600971142336216676599518671138679505074689749408972738760853898092353987410062292791724892296365244133229139253344422858696581103499603423555416154507060319844744723777979339152165938071480250080076297598833584204825392176480986322207615623218870564026155156414557740778144682705650506068743994386505418677380637954883630421867070796703017801625946065483417435204880354543793097794384366944620438954159615628700939734486602820402931553411051790883245526903758583318780074086375318432281452259128437804488776905594395077058773235163834724283918766392486027730160573762673929778160983102050932535370212356341146007351799989033900997668229301278548483286893520514769485934031319434582718603259669125729715855483625185536522408408444766903815945987365672844499071785066287857781877896573411011710108375867481502474776207603876687047723687861848400939544352598929873170149295983267173845288268546977259500223185715984812062778615291122727935023722949434950093926749300064350098526615983039311827824219643024208535548554406234574080941413892505615021923062668298233095611878839283348449840383490817609843529946092052311036589134938289817890744923035966437851797010894421096600312531003480696029528882200714485071693153885764089122520196481698049108274842424621838621270480873496894815039429445654940556108366037694030277015684480591000138922900163073214169832756196007327616606620271165414742113478692031973670253683286212649658398407655380429746377175612150973608113725289224369832741284924932046770727843497724158775948531443301534634696177415172271556407675406867220792068589644511280860142207222103115324741942563798109521425416084401798538764501364279942610468253125699763792057878453101025142735809861231474578469405940337119622764513146343403684217249368440218629872629179074989174811500083856763855524284054187088921372391733812763551920130152625058924068072393504802817723756195456681598654432558986311358112526286324291248470365355195171988807400193247366656150633155386312061291912525395223501778965467175526696301947562091429711760613264286297346358542738572559908713562443032503673830982455115526885081560194121959492579234009133142975296433747918504032013722657969635344744590208736817790651131970686138213445928614995790801220375235722480026101347340600581996299936785194428750439195992937802148710980738540844976155776206306658361502686360477769617545688845364654912764879903811835666133046085940798072963855796622160988987582834108488842019162215698713775878818776656650256517371790819244295030866994991056542410612955768131699338763534391765419062861053896664373541539979580167595360563715245960618378192717403009210449369974306524543229362069256249941923749149464806375220615985790224950448515302455680880408581117521957787637635224846903002845727906075376082986425152968493666417937329887965737975899396413458504450893990127266797816626197473673708259026808343819231919747825514478331778165004009498715303040471147218842083414752245119631866558392786593706418652283255619172882459692831636674526980816967660706229008721841699237157103395483890617225664824185140469843345813488241386483089383486026269989893144597956338736491061161035110075099601853638802059285700248419267532346258933098856253920359934985155603552221625563528041118063610656263336956973930126710516826909722921085437331780829760639858105836384639508073699141883750649745362663962058197689332184429591507551514624674997369107567723055350329397944670598819609326850588940131892121795195481437662232842454375229299392209599416763335349748897366065853297902108816962905931489351028314260826606589374571460471902627069576206539530030342913447817184241385150421888728236191278374666134036056099214700755445526542488461988216314098075435946606098375077228776552847578973676709852086665890029820333057955777303005036418599530897979527202616434032060029646980819090437246533626398205119391355781177210886220672020503759289371541639535914979935044476206264953105385488210907105997834185446843007945318704734997364680619788894858272907113708398203834014301796644736518211880647980902224088889310182312430500146027096847170056189200601551421624262721100540685737394748785564571193385549606301759409216688470716979947648212900447302749388521195697183866550501486215892988680325109003938164739109353390148621355133246910384126089555082707326615702948971552430035532236337950455176496002804331649058534705644140005323826769973892383262589693170248593063429756206823301435881944697701562113408891657794983102065206153111957745390982136843950919454271655340223596678991346920199976338731321636477533112568985264840596510167115740269393705240639092506310739355525115988747018320943563981507281952681957434684057010042559808301023700049355778810275798750379506432989198221178716921505326920810311417480625097317140817704528882678855507379196299283198438883780245314128695957010135220689282862084524626902632137025686645581991911280059120817009930365205667398069549020465090325354610652493810340655274830000471233606578858517389881197797228825019744619746831301751660551139823270753546847849599072474500153882067632585657853704323766925392778094534046600820770821461005907053684210715005807709518954410548421893554741300076436839541081971474822690368887862850121586334194468098728660220697693519943583639798146914527484273768677803704232405170251266804596585523404502241726700529832409215747936511139415313386874083220419299151241980682813196087805046463142739666497702401835778039804083082345093865896045789062351408958873780047624841772864764882659255089265109469116978786636708598145682153050844265047580313780418661419805032154288759833680390781036141318926902392701870454261583089702397785139304984593358740922784203256619440551158114810830153342884486059450694006162983317086124398541673554583550961624840353018904896581180192852666871566547152433730801703374982263890101569138542756112048195354257939308823948430242829720027509680517230681106785620842841740976551746157841517700196139549811524520748990981021622964187331789671842900684350933923717209395908764279569120430047947636782299937401653070237942989521720314874005733074047201378094877157879612191129821260759636584513601521218363534993441349381924696931554320805517259080713575296556319060457254551049212625887600533263814272221845821554123333057640626467849371743415757084135017011430048416551231005902867114104619792513710914755558824996780919458443730545400294780006328984461847437149834321839677151516353004949475567477514289986655961397359017430466725810017851720105865054123997447586878332039160458931660928547100528344964563042612456203819971562323980964623923359800952229991386568447183785730321438242897075557947426843787457264281824050905614926752878046726105767177848170420744433220323174035259534170226624740236749413556113789157539479447502263347505657069970107739336024940749434170334779541379599099859899727576502569733056050274043770475539982399246878009283314936620890156646107327755848972408233043022012549787514275158593984027784731390870259498546104220491977120606465138489596932965940981612793382443745233332319320180756328545090499658574513506549224193535698276101080744437320966832958560468850365880385085182880869739597053190119098467653083612616934499706751806569847395292601721756508936631830952532258800761592715558249658952861844011518064887984746895160170244392037474362256749088144694565987421498250954666970837104602456445336051757919080312464844526559463478678808173318871734200287437994913550374137761137457165553682405584343288717175182589475995586645769515927509946301989662915704618966804027858941579390547139055236903222937685954232558834197000434115139982326500999654239850001482267582538532976471353140350521007941403336625100093123768007474192065578186120214292928431549047903647280064113918417701020089803882127968307677958167253433682965002470298044662660802470921816789738650765573603774170510014514372660283489419409619728849229362523561642373014458037284680305560553194863633442403971242556019754174775590817465829990719688417797119865510094549117903464858289136823434951943293089510230459395121849790913307101921035362390281063635037526297803041719403512288010391282242909981733580239490514915565761817114758202401734986489523201889402570834481991466799680967732369426381433662491069865746416555018197513922146455960574147421423308470193708930867862054987317341694205750881836071483542505679899246120818427529190255070278958868214071588631144517079689962544808705110342725481778382655020358221252808632276310693391357687828214711543702257219126073643553864912143263191862963587465914134632412756292234872356071831889346023658553003789826589581237464338119939608129699876305397366799020385165414239099360368031719129976744756877481955249279587401434709016034643685493534733618452481043759024704277405320052406698694157602392649023481034637916029359189001168315937709529127826150958573691357010327015900684987605892135756890209442622299518967405256050450278545116553978458930949496397339023335003175911467736063401873836174611546599162567223415047000773079079215853678098157878724832720273801289272129752407391670051508789073257459868973964541800695617370104424723280562465808983975027338031320001170957737653319958789322878253960582618130984262709258805007778085539194901443624732182524167585628387791018457680671807649552483229166018573556726877080317220336983505005109303574053131493229509734716465650563458285659127873080838020047388103555005192350739152419510666760754670822037985975259494755670231868260460792341566231160322571172289338978199477017568250871224020550533460404632153696799319051915701983944362289338141660352930727113210880747869711879445398906895057342745816603314737701880219346257933572959676888942875325292351345425411850108654898350822795402540600763116791635036221906030681450386047365741326981530829603489644645573867835309907978881023111070722633444050507075955358976564609178674851765068466938206016333298229289667859073237322286076182316725246914837847800680033702816095291978784977810336980714524002393698738266530276787034631387083868076504516939205635727526980254014870630599259365750877710686476188461726276503891555041407275721439626210372032900555957264433184392154220344319873645064588350725866181249354142920483660070700291989713154774653975382862376665385498227288683902686351058369665220912883796394353459373884933984403836696720863056410589118526040419418956654020843599343886297300844580444823677399051894779627195329158228458223688999453185543369317341931583370501226377821069652982459734857247944851864629628936736779955182568490589813534221738830339057642714075117748983752861645857388779938563088793551445745782475473953559008040296146886443062609794224304578724005558885777154840687992261231203771850347921994432445002939336489616600315527046013364497427864121573773566560963105713772569094954019012469427803422447954936287959554854465906766611120076158506016321569466701800244530825572762076388089454049519959989375614449927122318558341237259322796943985146315440160221045188082664961622226939981225007028540858593218258793406905117031901960910956921066571327015961950185142301335100538030135472893356036368712301441267084719923066111281731632513128083093817758214116040909841302454660134149447978307884901604819968337868930433384139795404746570962620966329647119886356109296338020630992108051235514199282820711847827495940717926786611532591409226586477033599236535057026564976937942785813391895963788761817204045242147461169807903432637826822434622773811903406689529553353130735621579049332154463259219417851131861360052489064407335907718458086092105781901391094087978849387513317681084457347202160545327328511679091658669091894066779412099447139952243601529428275283772136339002412228761345886021241096411961973003818921291918872138428513465808403403319054148311148881703462082189952647028590087944287425286477462468513401940628683892406779504567269965376493686851723698724203125064082143593435345388477978810289143776882404297943164059254980453787856578433887165972866343483130307423108620292941825078114384670325768963167108989825443807031463094968771250619097143691172308360553236420456612560754441728911509074265901725139613650342634721793794366490024176131228304194904307291584580617986946392800649983337572406570243556626044982603240959357410446717026493409501720337112275400650741958333897003959725809426114280095400001654164686588915302746300853277106011028042846064776507680662988263929584701209726659732809800600844908067500672428027030607397801911437380552468590035490127247678741544219274491231974947067883960228331467234398744718373195561534353127517454117205899552746701961740848382224196094877181836385374429029772269856576033354887875597708024296697874101830483415669254467475171960792165452858943739536007171770841925495284129203888208955458848339489975779074395501627328569500430805801683851081299545264668285161043859951856637142730706025784905822378757743079410239772066485598862662673998933052016954569419991853441533558979611835266586120868457871234054636332890915317309950554302198947608345811096394516463225111060672050153878280394595884855757185028132366176383954935316755233093149789407896794855919145872143264902330098706915905057124225499907354254302548687930580588734221678785800718762965663826679898571268319547479409082095464700234928131476989535208363935792821246552196924670453958078978962128603546137626054148185422138661930511960917619328464429634156717702419022559554043157561407505756190578002810971419308828477933693538054526275605763061156555677403723711521759422968409494209143246655068488889129009567096490374790297074383331100396156057326813265321578298887876286622021918783323808576850276353978644800798373935777531640384165181491845122712012892132618570327858797880327421838681126754585135080294481706202676698361934248680462604386437728123127387551733895832639047107994708962156903209259630120757443663880503768651200296002343108689334846260806437057485917020892830903911858745318933060050489507896006985374661246624227776709432880890373908767837783896492103142992095505693338058634416649450625653268049279404759219447291349737105697625001059378253864995344549227119284210155080256114812289526436745259470551030169941050318805924844240102001723240868816400146577810062304182297545078205172965895593960497068304450322875968018117514012902993339612616904669904376329819525668165946664402393336765043822550739132413891420428892004889848236998179056641955480296210230323120091274305396861799601037799830865483106430524020876303298826457350246305780615963082183622445745184462265705603735550916422409583608110063445013419191601386054310662732801477096051361303244784666606582213307889819731635782366246496523253418462972158758348592263108129859818457073315737019616817756575906625908380613967542708886391492236485562596810371946911103420348823288859735503086779726320867729535207577500346312074934268673384487923472063649464086079933178369766770539122883251920891113496058160474070201336884303246194943295450338601940564345956971076503450846723571767440790795353771395674061575294904927315648095054325514325288205082134698529620348342129476190559649146223091948856701966124204934650196111128215698104031415877644880557555132337233819469733649974584174544533468307459753885387930915493986163939654722027651380513031457279857913785784927929721145489353294763423964620317845888794791646452895566668324200597496763697483717872451424674444481464855396062674377009248263851512850356135518277768049404529783353256734349144884344196577949217255038292333677655942448755862185798111888123004790743745560908648030192464239680396399668688901157983083165348328036995008560992937746029575906184050572693678050190066725203462565433675270825460000643663243122981627877567385201828615553474968120876600876564549553046899210081484248756053775136392040764321596117488667804168100209092345853511510456733855117944100549487378366119615806179186766170810337229777001625795808725015208701973229233978157177615161553951250485133480612153050500072448940518359512168257995207738298722105085211113362812072943168478222909458747183033584385374984595632866710054512139006584355027431889920017780298111313963327094834783756726691106947339268432422031182469838785506001581636026549615241166573762634147612041853764882756510681143058925372191269139958380183976762544087763569778528873598114384027359592159661573627804198977939698743221411217652388079990870222384648586868446766184523156249920343898784974830507698098442790168216408906273234675114619914998980268139795354878949633862805750339220163572340529332132302327655133253363131395468886293430932946829031253156552109306165645325337166290183373736651594562829447129476073090794265018237532480211758884351672288757627773025395748789034923863414713218364536815593174028079385744548422152111515637400009377642128826291787022094852901384218574834346882613401068194445490013402990152639366695362047558901820344661817887524701922101404965223568531865045053979523481576313281965394127456164283459424594000924625615375962918473330691372109918482867635990521090316692007334767971017160528401254299259953763819326176159507829470359431600669660361242559376363798004381911044494822546912518560709412024756226767454504972542590106313404822093305287428321551367758713171616442311383607404550283811815364460512935381905298860766063214466384026410049883474303063500489774585837048637849284373530170216212398195285678926627523215660946787230775327994437896795826467847579046376532384596504580840678360919754769507529191759524810287907967241698984608709148670121363059505069581723701511520518412849309527794402001225218561275703702617329521739204837447400560749418605787598620245654850854102134157654885546871925159987021300766643903828538178326917431269640461217254141172803793609322111565951625347908143279850702077495519787298492292026457811342169722861227102123134277036231553695942575421282824215730966369701150150105929659422926953433346699341817932242943768567709345419358628515716455149276247528608420554217150317202922156442703181336555119186567776112531474692219964400098317104401672918307467395589343065619910423866342726333396271083192214136734006825946951843702251831315139391322225100103774873205645854022730985650685564541126909500787600359164778928627905191648196389246326004085580607629840651370136117252697879257836029076359905095143601349141105264733989912276427576269512689888594695575113476960010086270237387739574963061274959212778409970172761847745873148085758456810647561927024588624769541646096875541845201111699975977218124876860349102020174615020968750770854412667373028147450945975011364651801973558737883716087460458173876916519430252526123500596886568625281686338327739532741687366736637882879172957979561629122650105340979102421369807851786140202317719605208095952284723373918581548346789044295007242365756848192587352643508095146808666159396825613231855706445922228068003311340193438180646185188892871168548975873880419071065832195861053767829320943042498598557063071772839344904755938241012793155700318359546801735799912488387326337703480243207794011687020466632265330385763188737983569064444910046771623000853879212847368325313463680009011862308101764671857068700320760519280466148613712149494861314014469497503771741782319969871509372674919110060675531445370487793958082393007000958926703843548933268437188439599806812598342454333158395818145701843960110043590726467677328301654659167004125376317981709555281668527701177079746321207018573060416717051014143171443558609007566878499380923862122518105787749060098878609815781875051766759063629997898522964504924712118005173289484884422734894965321395197913536631014907902971172560391069284342404347877974695320025676026426669664539073977786240399775832652058856347597541253225621953795504137561311402170901833517740299663729354826115524370178459481024014416984909584246722317057705557151316896077841498982873385340743748577044624963780365577976394078580596187837897464681180333576733117198369931512834501315451086386788574647189074877872581042314359539131566253918847111475328118620436331964558954970959885792947836266218343542114300370117327621230861061649527432830129605346482425221494147030696628280111676146457160247382817807163594793454956337577400686242424870378871309522709155842516981576324101941699989956215453224525745547269354886863251570790774435621682574683001243152955818798232296752184403233511841931045018931187702681445784627703851824944565977698260279563023234190814217655122690223087567892486758025684851913094506502187829007773341417327322741136090448327818839846047607662892101771397237458055927716859943154727540106349272084786657058428053561262215511849658288336663366320219463642690043313058181496800370055577175824490230410012695803504018725554810624784618091011144434248975129404845314667028356162787518039869521469384043296831206975157946618186817736021823903642678375478243862542245238830826924469148686370041721402099492512354696212919802104484165801612666709762640494684707682075021086195559196967960265791076135389740977663899039327379108725529489022130603916530071561966553856755761891977764910600230131780770878109631436261840067301904095559159262006774204057200920873978459704479345807845236195551806656283373748164569654256913959187608508683498629874017422542906806478387202318855067113249773405639242989054064109941615788692663505242006931756539768092915739962445972136646364010417049872576524603574073371476310466447181114592220773177930147081196013268206784360715749245639057978056246180840492077099044301080713324765025955785438864276821275690434495372700720769172489116949795256963992943649383377024991530198895055892278776404144410660688479300870888547137941175049249171561049046322796242943050902686447007366529156521657950441988811929783567752623331243099667655930872711520371671906172943307062327238060220362392958866299866435434221087374891201278775966104280646659922121288892175358519230392099787261475743055689973381108731898644125211959974678694237825438329884928444717701972791208703656919448346110729443800839641447824590159914962181838259730116693927800798698484620624730875479691415514187202445519585287508105820847180358032349577259529568450916667206536983412756074995021925319064145904224480304692489381451684667607345326888975276483913344132626962852087654660515597611578388312960271565791337793644287400709978761580455179117106592182790387239746164352150076627632583897474862351034334664711473136573678086942472433296167726669178789040993821125754762243678627921594620172174612798483963104181685728589550339489836609861073877170005881715843373033587877256909544904887301904930855650644439471644318794410543248430084415198690413559365208523601681251675880493879370724337062906219467463318457995743966863649491194748459230999480459779577774277353828557302609587840358961534274995818667483567388537018633419469217931036804956731631218762034670343900781356208335476802322070354907408339050849738782957853961948806721555064809115054489148277269571133399188852178719880032941271594104586735078710349765680835197417785232526169280215740819107278489029291027619175533502613950217838488053403597949297563986350364025924909811329661545824604679281147068209142445350619232136925839469240960370976455526144261713932404978059833791211319754699794586925290162813528728515329895202118881551194240638609845076330398855688279443395541180928578586411498495649008897762474063940319045576442565014103944623006788769281147162394479796946213210054442232214963149826305887595143252581730576004739987375011876133504897214111958881553026906348143330643155689989944240660090593334861086065203899690688411043120012775291065468939409785895053704077852154477142223567845142031874590879691046220082665303577863369439635818565846490064436596914814299156713469547263361778890830953943794449347965114648892046614038442320590481892485201138664092594911896393997245460700593016897432557804593374397232790287233688364664457387906214965911062753437062535517851013641194241431542760732757408263396420568863539325445101707882045595577528243382499384235985698833689160924663307450293114446241134987356990593048152271551966919114140816943124560232369786913005951821669004056396754872746480203331644492978605927420228315421737525231205470235609418861199284238167285226508268485275831985243409617655439041109828237891737596113136682440875305275492986673748402999117883046010026123932828891613194287804272662302449050877741530956485927289952231444240136229891679836803367443800019399070907961466005293815787657624825447755471495729941260593945990877514244325536417142610885748571989685028226898035376052449777219063284537434822099804138454697030097446177214146762543627717509938599028891209852101224613123384835579932627013729656292171595835919485110053858608777899658806194832208546387426307430482613144341056196700889399428947485316418041071053410820296022660435020312556858333918423071024635140446210949481739682761532723240889673333667841809447219742450017322403979023602272493819010561677226578018358278461374912654573329460170127426567457903749749923189999644910251271357619154088187303889011619284822801690614354997741000316754478901933331728512028657741463303178028079202883636272921349021669011601586843256846359748349062785751051884996288486123879890542587587704802414145259738559601870265899712186448507951639526757111571956581280545681582028927574255722596138978907197536299997049212031171364440834894679404456421744383212387595347534091547737576341952115366063972284486481616233659609604311540857305067529058892195147690682953189733148672844315166409523236422544726506510348711722945007296622276903073431235000765561501226176508917019931601753502297760143571077208227326426506367119861339727507533135646915837027727214361389510830831183897901231341259241480359869839687359632992271356593448567514863025964350859131206172115229993421278507933971504313365112513107745604145258516380467649650111199383242166356845682380623537230661478984948391682757957937086519835598044303205464203032138078439854571000471987124825247135483462386840459136600085617911385781260906936538418580888775032225550824149306669214633059051045560438889639443801428013845220241926666782662080990652218240732839746725729956690353131980956190791980957095333622115441392257451559736747509740109075327865533041849875833305664438446667924446323285108275818950147529035951177260489584576698463167302236802349693153030404486209516192770092537528513927904808391628727788824613563411263568060982800889935664669013227318755498286971733017051232404127794259580661136185093927389685470170643641984640255452300120177248200168349952620661632513491097689712388517559249440127661974142274451051634936925868824808078524279119604485488727363336502530764471228177012069923240098711821871006689888170489761391449012895270644596247596331462976571660761833851360582208815737798672628078262040599853921064531269088065745192674011978466761417449112318504386508960226683978263718631886555047066554171761174997015591934048098416872730242373428506141941411785472986050608361147397625686676111441756614261411087670664111460325939783653151120497149497920772964548262722102254485285150176660228121161310325787775339596672995299458838308057911087830033988409607308931588332368394626928939328269151863929169335904498302323477147364734736654394702462755124017504194341067789957407898547550999817024241521381834611443817833698496994717868596963986637080965712448376003373134095010379581026733756260533928680064256601413823211034926962902343848417732393685561495938339987242809859915723275064974484831675119993704678024244717761885432550295628893241442782568761065648804484168067157764564816061344524797751163813715005582424705925217769339326538956554332829831680322883526571611031431416695172504611144835660758476363326332458132218791646119079706270279302699848776752692844934948704484007694231443833368016841015675702817479254764174447949792333321272818920209361641043623963123393781991713477777818103872538299699911897531268555257783084514849607941373129174015100623100809666663778022466314102998262349057494097992211343685391403817276561582902504794696264520460605714822328614332806001169857719523256049995147818235348950693755842116400517471972447937975610583429062597118067659302411198168342174614862693394497464261972735015279822667510235374512420578328395069467219468622092016146677148263398270845463742783393555309814642041837789295894722569600044680161504232103308584612080235290029157929415137034562874667287529065303612877145464479756882850588644376167195627833306413048074987439651416220781132673843583469577024894851039396681869213181305309467670304023627735221400365774198956727924910702036611237556184701433728740716179365291894971290917883182185303924854586333513817533392795767789249063410204367163338317511111410725955093568628647750349624773216010661810701747636668627983660139139603379373269659406466829444037112204649372281055671850255904441409129112356093077596933589009509020751478627875623520980146953247162114783904160484687660798492424298682146706456989188994271592484891914805473619750495827413206862797868616530526406585635202744620189351822978899684554617957177104576743375529937021877788604364074156294637187346309451945991100143549683137253032677470955631196595344781960306729137597498221507249561337188817211268945876537160859560924540328247244099968068083306275032460552751220175182509891195553289942847558006218265914892795168739431422740010540515790396032878874823765963471166818628437612090984012387748052587370073329915978790777210174293911581513734863054014538272218342104554556800715705127768800108033655990612912330148200985977341301177940697514629121392560043725296987636830063578564865635935407650417820028209699126578525596883231895650351006828489579875332008623541451204531865566258151806297477302900703287099900205487079894608816467872872276628584279077312372984964382750235457700308110570980564496711572097090808491661743566232924692228120417003081666602676180570262801680954620917579897124184083676593926713871252624960791577268314612520407063340410883471300890679207360579370523929695060858217266736141942552277705190147517599088034060763622657622286993658714838006821426108776878023912027203653498354136637420469029347128865917271699707634968905593086409279985420403206264385256436828401932444518972386650021764984998927089928142471480725998714572073878551866860005149814685689929608928801056326204778475425136210535451054830980029654328435464406426532959387564414854489458931871036350120974487643328653982801702339040163375807569011728767153674545384665255756246631808330870460746592840567802564851940226446162314456722596748279859365192240775090115601037905288687712197014415321149641980447312980021539262098669929200095111098560690826603851189301851094174938926909834931383388407991218746569475185402653413982773465123820080118546733338212061378285891658466338793251725627279029062400859953420787750552759678586484316060768312844539842580989919894684382470339098729995390797585820255208862158289410530304950457705623466554949715099057477854837254369657148141825294165119260277034436710199104205706037196420038205888350422332443307375181828407568512328071671635563346998498343679718794498232298558399066638759285335767089980378472513074652832372589746276584249075550118778940786434448158665450014566793904284070078923587503643622939783887972435202602951710580532796978011377643116199576874125520949108414885223821063410837735363233257245824543330708461394814806222989883977800264132135056784949415426925798375768597740311314406913807632287839242737118313477449271913944956827463894316536548670068995889410401557370322500124351037447119850797728736041430955557713796337809583892844361331428625548925228350396804248248154105967495120737087899551642813180348767952347006928316557106653982086355743198696804239386198675994409595131576749166603545579063533080773688738554073248891397284669440987974261388685383243412923551879167992991521565516419225934650971174127848065504651235123342823206512102486502658663778578475833104143825737080036157500456812238699046615240076194575428455789875900286252978475793942565065647958882498387843276633953737379957057622392817017358955910794302036594858062236152536919579202730600830819482300207193708846550444603763473283611120351779893152655050949220083570027042901408492334008667197971792491918055165581406731667863618512149012092182133585313009493486010138699327146942272560907024779094556013119327909804778805226734043198504307824077473551029674935064773017795534341144128316166994798324261406068196191075314142512496224738332331744871549768473889212757791980437929476973493902373139847298637459033862210331631936158555320697145272715975991926467354028579685289268424593127559144018287783940497886907817047786005124219287307035175932043965363643552379361214796099969241573812239530945451602382740841120321245218241576045123933291061892998441438110064475306814788895612802778726869599134344298202831963916413180390160634998218334666716392544358175746129689342964931506762088476581621618066684769053300543672888944451191694901347396379652492618409304725700934468033866050082697770869691505680324252593579265405203008271558176125752961201017246938252584314349114527885048288382333369137581120825820808410993176889974882861980085634652894695611790964829942873910724117709718159920150036707763810078631799658844215731816254719652324207697444078039201451322028834663994178607871268216721508683080805419411513564263240944637035203759551007064592465770716631217037895271451254380367099417583474396424805568895322793342376023943933607226264748995107931356497507466140741263451096532667319044944024970585252059560488182841003632047927275903291019675783713702354441719107286924759279220714584329166811594823831556983255315147229948017734992316481882649022457968607468219786431313096149064868615056877440107339962469196383421093015365448793059849085167380839198348073520809177825527544408529143871138554697115096748354381420597906907150586968974678451614874242994960757184708610940820545184724348437421102510735544980904823800576425686591148422766434548248261838947329318150793681664987577159135086446893176091785730239306151885400966304742057188433646064043099601262664978129672818317582246527948804031141481590560973070170673596840531856780798591023508607902295521616708233964560313662477800899277488449154880011590440823437669526088748092044793864437678412116614290464650668347335864873308625272672419471275587866593025656111365481241578374742384062764822933312934762239198960664984216956284139406409650767943926883740223637194151548094022857258569678181537023541313587085385033286465361246859918779423412142754173076698427449039646603099417345895299303921825342508167884976721216120474476912134521267447920365868413493634364564054320375262973160641478783735872100844998317349002932912902781774166115414128976924746019244447706178171014795030854712651289133353762446088621927209113386762694308502191308929892213139078489135328902117539914612593036538124888996290370142553983895318754540738499443821740176633737227102514641047995468642478315570988174388445977557317984569285037740024875524450775035804891025949476530505365365603559985630561668417569589451177722318157969928653384439776418977312268808109704214183329007429784662049678653172807266750785255374262573317981014664396658709380460965354588964188008692131388774945699277910834358438960095922452688073572263631744688974827445146911815244660872074711492401154345260606960455580166270244909710849701296504138044336776099924378327042548966544594942474560371835645073660689796312363797567414079987947133079834609492519068244472362966616140046390761581836070667180762067681949944040079605545646898961321802697479680635738451160490825180117044466140937337702434781393735135427214232797142410049112172293983688809049000761194570070807184376958617860542432313254515816032626008390440015058091856601159241687372566989789877652349652278432075550409514452816459440016338525603611436782887588116627861403527876060671931878009769459351909440880434182882082657986406999988694299393731739710672372896370797459072332793439134574864526967706488410854355389387043797394780116569512801521530524062193352762478799971847143127456496765414094284633449209492362394414434961796912800505866892372850576738376640573820891316490387674941053595402949731918388824664819828062936518143315665979874579882756947302417639396024427004434913355643938610086458765501720568507166106827463369413832131692911737137943431933240637663995930105264748193796442430382849327518384662060441003356636231886686453191659297258186196498626939319740865236986683556094008019693290578922010374464568023856028403986124111147790864117860349969929567649851803145225621566117445028176334807536626363300927837237723410856704351192689067378541125037456145366837247842276682772261537241692929611995526507422589037495740618507169410536391829167869912207574467977539236032159096807385296458068574664901754946746632171134285174328742272298368453987527479826536142480045085816376179695747400457939013246936970426739186949997785361144378411070256927336372333632719665044354144848935878169977751078829678766855285000853937300509363819598987354231971589061624983320918387226355888273629936448413041575801441438095209847336356110138273005911896262604063756117729208423371434816240988626959871769823688190880124144270193382104548026940584444819692564181231294549099720621154003629525986563767752419897840696610310742061743290019397824883636102520766743388220884444177296761575208314453149470990651253929889718433737670933245970129572369010694190291884366403748650611065539327043049533754908793528607777151281940904421318780900255411248711482900404386268654386943457038760117469366453822043180062406005077980810280512613309952562010994641422401985711958410382140451543535264898020150060673302580904131964722205253311590193181512871405521479524152205649895755030267884050224314435292464244059825411921772420221590965453498270576474344328642221876050889935318563973414816133685174892064362554568218311888924575266887475968718823661727854010468349663858331387140879381935130435465178928607787340157593946338161512404632123229568410134502268682621428994461334995429518403566800275369291575773385358010465434830501199715272819272831846559628553296341567949818326508336616314457765187701054663300196662174368956725128545503101154761496393294183437072826447524921855908081053069547967700126478781152896466303050369930370696016552870183246289997129396064827459281554585885429464244016644499290577559017233155987162742831204457313982114247562258296390904517648663199645930879997961152099290280106886253857589731754796188803420034295423816205155434175853387161270254592430470467649991519008869038835260116023641036807858986073251430242572627548370169277700537802514231336049214425263821833310329652987876235569426113949916045353104426390918534792375933375679079303645326744548816391122165396362951929042530770929724242470824331635558319019644482469910726592002739045844269082658466045628429485883675695535193785839500885772022710278344488463484128588411530393425151395597984236933459409490569714041267391050865152611487311983028186984667363971220999682177937027698866447960806342783105311047859399596744957971507403882971208462748897946043080133646410858223281377079298270062686441545519154882104450141695030443543919917994088329109515178813184832484145956328798338737502707666725134039012551175005153656400219853204252265010211260872536751918487930273194080988348842343337371803817439551792170166777129422919201279718942837035544534266361315271591744215934811134779910080765130664568281353213641123964138177519541298383384827748071329939179577129458615345458440832219054818956265987673257016080427972161469592757403230989085684209233095462200196494086593036187925546281839778089165057519582867969987523600072591971017272495976239724566901465239131644083303394849312053998724054306338792730627690369813134018647170256715274147219293933435728179517782231168691439200445670181872553700453755724895457025089751537094172268060245054518748808585233486721778300341452587466685296446206178005157088154312331929577904599352764866341534694476615671539905968360476287132399278486145256597916365071602167612309414504722204896561167408584865359174574116430291011556790819954754700464577436217260981991192416596665681630175468424369200368540785025238860321914147075328352353819098062872869487503934390468490000612256334882352798107660688700957052756497685235261049464281879520348048569238215700090097683747795807714100090625172147865438387172546503823739909861093751579091118053605267592600308646403250957242070501517793229162209521112636945116137793925667804189442661092645845944629488343700538962246289201019585267564738715285828598135483462214668855025175357075655138879924841909514220610700056628965196314324764723164668754146424258894272882518252298990640858626380058119341142566047638950598473777740738241540235024138004117261756027273330410157921368266119823135626673932527743100392014535143258254022141599458657600214568430129337111037196818431841846291297047518703655885512066625662599592763261471869546926327455491481051543991297511489723723691520895164970611739533006235113710113719358126764190499793824597621118113951017040590323742905015180026461801290651947204041909297226259986341467811163215272487759614665770404791065031185692864901408689263438489202903075344515656687694489713340322053738928124308408819853084190462094166947452485599190621304030373067806317332446843626915344156378440221113440595332343624318246450867437877957532882114696661407867861634807776513148230947763323346953698002723360315807520524605064021488048500771312926170405761279662948182662403413369868746572955969943951710612320838242171215209254538018182263681284333277737937834855950983383619397447976057081656279645030974146135318055350755433530876500616173092783044895354553891071299183396165926078239583300082885075462462813967890040227151742004390006931612848985888889182259913218114461396231838649781862897670824961793700118594649945076179513102245311596931493227834643282490616972126329106251416895032805046767128625820641947118991342653415559124041826825602528533149104860054827598501067113655182777994841408361052774191248190221124206239805752337584704654699590407927492282251726396012997710712383573151448561505704950991119031288493844112375127838275967765992249728431354874048116058106881095639642620216507643545499402574158039284231582279799488288081575407399112467861153128287760607568373824420606945860147487646062207612464947726035668380372985063404646225120655177939607243808500680153232383432683753666948054088951924938122846323110407910147753356464558841855678762657923363111381557026006255639303542288985417818855202005446222378243109797087855802544851718546778874431793439268936173998604340999891802349248256125519335238347313426859036695541731036515251097631451894196788608187982833837138493363405110719731764091112552252475322535052166448463352575968814747911227172465553247502407342807421804914618201773744268724485503255332430571909078101047263650990697784423129982321832362033466164920362169392616738063105266333621274480521164761370028463212186629732295693423009322607976891643503045953181165225824942080238104538158652417556946284416404692369562462612624548420003252105586485898877596684612652541906076531041620658402493859098921841785931440217086058619434243319907227155323037325866748895301119671817079134319029599762665954779009155510889514397367126392832054748922762723821220379934732408740297697306057198132413783476954157320796514474833907121651031015789894883311282771233283320080868529348593838988891059559662704321273839838913205379673777160514333788748058963136782695855401564227266358542583629081925467266526861871400464933868874656036191367113880803745593451561636440506450302922243937544169348420891064517615485310816936746189557147543523521330071422508137959654637222209114218147720976917084721120423137352133805423565856221394212351615100052072833839003681766351169499446505488017340299576514568344799741785127693196888852395084322044083539891803235587678132883062260147531529601874151334886246596040791615676509015267209146965735810449666997607090355402147233522266203452692249511933058581475400354487668292837717372352042001692448986116797823243545344528631194157455049070797078998307433501243143664646014354370193593195166662274058688905212487873904952110053733096890830986951647574433119693814037953383958825203695216699817210177444296967508575473857728823829806192073758008344281226222644112815857565670417283641312980016271739256226373238310782804881267144936834718696708380633397231446691447507470392388006547382340560133948824732993672231429066743426294413451582601757662536603143463271442438422870883173175274206542109348402943890519294354155419958121600099497343348468381578091121508705691090746000487676248674838984682076430343104489578970528804231753228836112701443760876098403063394440958699322641448979193808944137399301352846930339303229830985510861987662171549807809581854174271594148143394063473089990217777391597577669715654469535871154001175581977430616455226586195094250673473429424070093972723414037390994294030866469469398849316444340349283755843686081362117932802434268553984195031459084657050305911111123459262353053835882443761040851833640470274113365515394733100343579811019144996893772656925264684498326208869123923552744209112709823271498770415584803116821870312618335859118711861807007646420804216519565335691404110972343969758954290751110265877824079245902014428136849581872628538553280012253277445650844340099461376663154862613437829451120220202938972441271395199233985123051671532539596925944169422434654143337617126472042124009897179230031850370670296581091078446531883286904252369896551809896903891043634830379754214499965548406558885274661972005245403020634660786540411082232887006159276307296274286602915465011884283921235577205572731122382130711721455704846461650814468032934850879207322672115238270368035236546557398645859315278770241138491212129538687265235596317171305766933637479909133139971453687463740935311991817594840985402802527218028807819914144333798413827492088881183081008091504131784363787860694512285931141003910824340892447975025115483239234496276371949387514897089511446440858465399700328501394958477846869792176788524980385187704313716617596812176768267522733741356745137856869832318799394513594525111579861193929910327874247962654139457257554432060603257028742934571591678426629194839598754022511712499250320746578318273319465248269861112134642007181194654818675252274080688440441572841791589849097362511258569280187886800383257792232230302861960530393169873074015493207960950912029780374727298571220988358662857805248843137265851082010271713892207871527317495602432669060605166600788377370296742349432640566811634500034344271497776066990985861904768998463134234691638872139395673452774841810587163707625631716855785763941203263772854907343092007409275026936774410123358387298244861997334587244288863619782261877383031984679350301294525291282478934760055169663340409765507614980127556505871670167184498764820130849023404083924593120171257321661576674758814894046749779139663142148941151836456019678412175771083154761243810582162597030917165842722519998262765981682994911140396484360797993845416365931486511255104265400156721091263782615273877166480955210026125276759884241875473719176982140849826268286167688427980727775331646337205385559231755912173462155459477748479030659800734389865076533962964348579529471003092354087761310157642255365615532340066751573196670922285147243339639266435671801863722435492150112699581894593973195668249284576503177194545477879226258861290525695024917204604997369547957337005411672210988832738102097803046732180774464754252912220314407623770071170641508393849933454520927708873297027064070119076331933574185846097055818810438553388166074776056000472341644913709909484850461266819010769573822376976494506682105860502370514964606452813474567744443762100324064472126567514710785556165144419181345489657199055612464068232276760438554536891201522353751215539719596455757416565696221889848793727642061757779435829445918165389502922820880826288919827548997761227611659475634331912143070377334980591390822154466279586284039625622298064855928527819735215071438068628716097357924791957594743251389982770646260292131071320058658776651310098332838098696154132320808836771532870923208775976233186827993374612587687944648096113268092164783326726614097153214366450994434414844467952848354429745720590905394034798906438900320808543277875844396402153179045917687671048791270381734342498965378624148065503132859291416962785781630151113957536465602771735034613637314807850214381459473819195958372030838631097025316915322203354125111955434639465191333839258719258656611090842945690803717176484086908024216478069547267093181698495422056734326903550717943241064528501395323252436930070204144076287409454567883822574815578956970281701494951752007107103096156103062630887029363329684215469362191236369982303680291557132211204078122244547408160582227791127499785829253129898641091033085961023853253029597111845357093649488654669709691652974694654686540291613968201179379704032529966172094646488066470900373117466465659821766126014753655683051120704237379388397636607685274950776133595991834226979852677226260164630965114135630667235040313666054050729250381932692512426495341121282262155810651001924619709750780370963999442010222377926434163465610495684075940177523237653436915127194308802451260139880320834769893811516510010159963120740851091577572370280213422461847696072772651347519354305562571233715663653489596027331196029201678804958373119347659770800507743206591311487031074555484749635427277841381310327168117822445439418059208168285578066216611722003991770437371145865089174666112540249971171249385903996360011243706887169091057698446319016258246630832822543100463831164697843515934568568955949233584771728317858053657749687678365395811996289498811506936963008369003893255465699399203831619519401428853624075928641407447707063967249645067752109323877921574072409739046130222339810943747434090814585125090138835549763983282217611479166170049448436758970267614612252729575154926564895520333775905470612642890248661653297780532597313040773516235082071751647096760796888924188873876886027594139554684380231698442225152589061207504728243980335329556230516157530161929583481852760902629312252748328727870382931766943938659858333452124373250355269344029748807963561363928964538934991975394880811873091860474759566616240315227304117441448324139215518924879323708586403232047165993614517442801809280802194605919406296048525910774900708370084657900441668937100365014901451870717430126679343578547688369665319809275596402370758927359631537591507940494263472844717114051035053648448945116043991316166755559038475478767465337444137305231183828089104844568611039694078658298005688835060369358645184397824551435089453667225389881407588537961594430555565093857032024411561696915999270866733884522108997891595598262724660637558499147521147316161690870699084978912745703476349803733980700793766683929840843018255226635949061140326443937228252037550880956101927922555881363295004680381121481035323926965940448376114093707543885458263429951213047713272457433264832016092817939391880808056003346089503352968500553816145181176591917946942376123572239956597968622665252736569657468280752115048819127636679627561978741784536490324673501751619335392503762172494391751835332198528472368722621864562636958596496443781063036032152989652805117484571546661451355527402425864423124469442206689864919606698365410913249072604332357513340432200057075686394696951245024408669810650081101407172031130302147787584361205863324782286841907239481033010541731660884176933082090920575633194647271038146088284083154551488960238895326279505628035387836237947772961086685487347278922212000274522053770668628675106255941406090866550653128085213240909779296598919606552376865199456211786482717243348771181525054451513533457993999761842981565445483538948309099759491325069957062750647678899039748466011194168132908910604102917677080313083573758798046846304058721637993102360115650939830930963550014178650841384248174002059326312444601800440590866855166579322204216116608940045506383233872841465439534133438744962106698706265924095492220031275735805321682389614281183366869538289345708575381767368599126138640653425960606144017060172918451257866086307114074003241209360261400833067859741753448987546068287794972653033536646051162633815587907822403703525783952107151570258857759971647827477571323085899694425213553081641708863300593994871245147510455976287551404031058868188332752929464782325914796477230136397024573418133397658310701988105977870788954390857098212349185450168618991714473355857865034784293214307727389209875713407121561820210037951043710141201238284785261979596202041910431101885586260069117118820680139804909071515898521066215983152427369079201676463444268052671404488105931218312887648717746903340958882597899336918785658416619511611977185740688705524331417790691545222767752922417269046285937849619466233100026790089175217720015747124405453039436790509441048331654912659823760352393138512419635788048327680995869682804402293627154937473428344958059033211077670714497026819929863444560301871194628493903736896131154214962410795394276740860225192597911405689949176713570029856932762468331781663829230836327824921687349520863524228341168833510800199163975970023903858361011574784754190889432163982692029305976644824425780753826823056054336909956458637162361834859169469714714432333808480743659242336830491672280131434235894315620000422585213218028938928278028037153763519114262598119565169368055453806158102302665444045937003340797560025090851741418847161042485428333906948661063754691819718246074374392090658552141437916666887233849806061811369773603251925022784736031341037093855028665438721887291915280388792832146261617244441573424348324886300458569408683155770361461620564681595743325148136392473991319688485359728109926698279772727545535382329202131426659095997592943412668186342673927870155114138217800760315866619515565345986163257052230298720926834100553793676379209381706002126835059233738910495149436995582424148692459401978621115091010006965055562995801380165558793190683251451518584655639342618210236394864725943179820705248596879755479461294574283756983939767612587350725282808835157670551741459900629523877749855634309437112967949480827347071240275157308382860572903169463400763423908094996150825160458671339482300428547852571945386103153447485279748984831769777682957279542759551505295057881089250874257442955603212275889414292525823401993900111227496471854406354935148490270248990951796636189182440835528936434535825793647494180619405182781014246054753479079095326714935928412223933170823646997909669726540348251805411060424422508091538750877635284550136272115081467210132316658108597791941587196765255832477460697978864007302080106939475180684484571340660013885940405630358534812911177277459520251082759393852255106269343550797873784712264922927833727049191952897810569347994333723478626059676215978190659881272521961275399046505658470173346850091718917268875110031943769690062802131060408922020960502725617051233756532158536238517800112003453309983549595128132489085783557774438910679486709457266802330666726073289112729688155631872205434392451570520336704095641757464053009497587908328216806521866691943405224738282375551186126725711511662582119284281939460032030204270960666710841240492907082404599008553128977083404691785941741015181240403225347193126072734017404755516275410134510473559579373846383683113724469187906407283979067844146918928059585913557872099693981387489423176121913137787291692928896552682092509625853673834949004090206359852549209287134100400376155890653815717610096393532057171619344108353841102541451171187518757806872042698608457260642087894544955426086354012410133170007384600855306349960090794013497380223163675129430714271872994337749424451203438222630018382301752793796850616462916804945353103278753581273065725563624707681514309425962694356656214410226645558013039702250380515581333305048402152701206320408263105747292358505847319152902886962908817361105823037518383799583185104554158547208571072719740314062828041447120542852564083182423177398746491612137988480601103326366768208550761968777151508765220951767444857350135147068805227187696594122118729806656111949076531316981820360130965561192358842028640343843699920290066086678922009726850896024010400785650517699361164976294272803612111307638775613351490258170929693238645739980325595457440098617351726957383510036343094251679996538325259630051463297174185054218346948527667445671836592999931758538179487134187672992710557409700598153488300156110520267828468793799653702053341605745693172462916509709194344898593567553665042998691371687534574243978194874390709359626425989411479479123438305517776909193299338427121319774476032639729929509663202970048049875968324039704000600998114139123079950540261048014737468289978480686772827040104455025901126835060219305968547338036532543405597501439870167293897741173663455078965824331580247281632661205675934508414535599555809727841945976212919248041488985923987539082514296061066180827680557459295840991422960301849067097876580028928685595359717460468629248792147001963070769405323040565988471198746944922267430407041517460906758915817402776693202524442169099028381172793763166600049800963734229313454993790307219514307524297910969235428886902643957366704115361274958218134202446300501423824964958821618228649430611813830922664623405884403678328718671829365619921762696570965002971272162105393289624874495387468706264595904305740891999277532909880770566521541800375529074636020457714584681236522476696310095333319536938345472061440192489746829439929338202906416246008182712487029579110688180180800156279667528058737472735546867425172625417346658115240957695043602426771725191905670877107702544975216399023059394125170586498541766678737445121967434791407250257820921113778481121148883947485150348814916943520866937271947288572094580788347318459408668384750902734064737279404549164229725136848736627953331733945239486323920469044031042040564625581314697838756779980083923414110836667543358844999540019747236548254815885268059880821640781940112729990950591495023040352958421407837820238833268694483715188209794145856414643518837952362343584316610462698513933039561515787937013716789799532688518180904191812443531999586163782668955011743988973606895356726960666245071902721679516820473012614282051982498277347837326283784453230553169925420540029815999377387761297545235864254578762177561310717385786571255554386909876182551113372434349309746190337622211994907038056111265552406662084425617293544019105373209041575161294423097684303644003446514747206437895975990134330735498758549043583588293676365672259632588052108064391013501116181269014702053619502464400246475665474527578830614224501680089122243459328201834302514695604808435069099932543040562591353252838289045773517082218966110788180087396962254286745576407610265239131740721525135099937214343628618190867525130986021927662195949938482094207872244738069448587075267407833795359654569876049761766320753627950337645389599817042750111623622777042410976600533157242129599517115001285817101694348970161136060561720394079184026875447831975440445770517822620643983274856988231137980956186391398582707129410237985305336697702466869890124527073715451708403299474024597371211555479707184821413521056744746904980123237003435413537979427349076013277789844618234796597272932383817997308203896873727457984782469665890041718912646750729961276110625310734449866012483399344251144861397783169069701446813585350387313776505630951269422870263945018725249904629441949476002491665772579703638617656887391525917137158587753747328722141734396645177223193164449823212276107433027702150505771663694604867663001058092213594812150959272075720178765305803686508302552585474080279328137429321460432493010603531286526619378780735024569695616428836299467157524289073019748189827066428420899593594666829414444789818450906200054033262139178563987695303861624700192095936692103057433716436020151595912706285761455373378694082778106008095873107479548898821508370650206034037951790609118772800035065187663091401395382886993357982963595924837747201778530411344311126006071491177489858543865796363923781786683948746568499090748675140100896764575754135890035455994348069113448487312852166536562034688396235669549156008344306874156852987082107589441793162444676053085767850890910695477791582173357609945780954176347590253251683053811795349971899896796028947741616115240618150724231532486213187430038267561796777585748288805167421339113199633874348298216746753616512465227864144435500950009615185285363100283925037993540187013986400190613774279126906168298429312452831783716663688401701412447058422438421331624236000305398802756610301053709065573505700202688381059990461437395592914632223313078822704950752317848430842867767011351374467175029635239947354270344673998634499487234804339613850229144401870082016805796873316624388632275807610197686961615367484222314401577468796601874337954594564770714745396386993012627829554358318668201600022992867546278672711558368169704585605887401458481003220633198871729358538135990150717849815203113096993504370940744999214696780422453601740574495264625410073571001487096798958988167854178971807925287873006110775647916416095620600110164077158634302024222987004082952715085086488046061474280344413178163494594819250598870859818961185303978902106477144175046073673447819984720454666045629328609391881061415297346736705043346724999207441616555574167959919335736240266527789762784746619658728887576539480462890781878393252790556010155728199536673463285191896949993533833297226028966329959619492747205495101650273688695626495651086201562660243441262581311614175907212211433641949271203956346739455100516559045804414234826662136392403776054617711496233270155818372665661837322648369201142154702167498510985177705763857261137829861201996975910386537500478980397828389246178045997389494618180864434582959566092021504813534826603293312424411053788812426429071589936979014426827987533758449601749222628962847016393051837275134592828805185100494937025804800935029876525602929422170749084407073165769594756430701887248813231645447603261185740079582571808450132595064057126158001540836442138397960991925073850890741132585245317140981592426435667278687607975327934613799984915144731141821228477400601495998702875381844460174569490099624699090223651474008709654538780109049223887050806137221536172512647331798771455141834506643864728428382842071168858880417863486742340156032428354248188744134357345082119320524092053725686658746271602905168743453834667171793101378900163670846587930311109013886203387249218921046900840731046301511807996862469848727493522450158329926642521919275834738388918974670394592612320530812524340179331398869362599195899225172736661421667125947264505533988113590535224568523766082094335561689751417817296031348119725846509322201347709289780242712762428935104687639898072634389869031481280448849325608504450424406177105615230609172507120227120652345477504535700580549675310272755675592134781860060351648548443836457129548050456521049436271187708493371538608897800434621336550078272508124349395944756404332353910036738293600434410723743470832465949551755113472640993671546072545532783560642372599025288601774916280981091518125902117281349397958439075921952565787771944466087956005753323348498474940661932575552147901299175082597951874543380246661148912009130831029683827024259973233408108114939377586160727925111652500685370561617149962235243020843044673732431080354400409004263574850601209878351843272139415216382973558211077452809115354589457379993537557275179948836781538976498574600776226963915193836008936214396007246543848205212456474459325708885166776066613408963714133162321196085965192104265931584703460567564591165923835397796225799578473710915447816849141709438148837346403003941806342301895106768392299927963597135499978157197260810305410808839868478001221050805356577251455968309221747758185108447654538543717244137128245950559233483592310779507441767059508467383265099859431845056119888723433288845757263800926540055088380655878578967302846989042059380408887659954396786576017602696373681164651302701404729958763859901751967068702458082357425979293683827349283363316492155092649247294762411930605900228687948064415292935088674526646984622317023735442034027060921990390728423140148593884227991550919674332775689051358640599970667177951099317052931166072719276156935657901037401833785231214531172312719677345229408522682866370081545947232911056212119135935049710503455080059209878654260964351287859457909187656531369398521314335365083766032873006352779345205059443821239892813705145158665294190783653360328655395058642780916287039249256108157646304036448221581959425269850101487096737900677919428280046424139453051125870960546746973078661812347410046110290101009245372282815221964786360046689961352044830385944070665774225751927217442653687045112048728939201503125573600064219461314547353307421800616181537835503233211878283783470729624482421584836303013053856863413011983853211889235385681973869727347506636044217052720622177755938088552503506669945163041270012092587959913165139076617837176038809139909515346982869117999652566009765695640002314079344571357616066849874682816158672855311036109890690167509806701207648743676667720944645183139604825755663193198592094647582624128925300636315982175388617322479725922994962266034800701117383041365637249642585620814041941753107957674405161384936694490958591388370950144984438267876438907746641673975214797692982208157693034394118827240680560677453414675673914935602810263655150123843169932147545402991673757141204511127735358235396301823766745374606592462578514390012865951650929758013464468782569008651771797660086909237756940771964348107174718038904081173487236264436964097300696981174569473128035515042068395445758252454349112961459019676680184941157696885379931791784777679691004086692950422551790606625347554778003262158584701956909234720986312115703477519016170074641270466480479918167560259688474679658847023422928616849145670290869676243295315560410196796443456081139734557359822174127014730920739228395639616350224476551286817707011515705715380190461577105252634472310397856966081541997823883849279258471916490892357387873989053548696781314295226950814897773187553321476312698633374824754987400297499933347730668736253331062839827563849892898137299297094468922073492393573262089999477512705861121585954409251922140531591543021283074264132465246408563659372722499468360024215985600575053028631703579560510451596146387634700784698154182959511489437283299248012152618572019945908164467166147300544022721778086333028432461147904445615872238641145996126751450736302373793683342068221956651886353952025376963144956361118062954763117011315877876313547868112301055314363853858910893157313802636300661552898988018239072953156847082397990415559332934694661879086519239465185624488701618991240663391456864072510311807406740742455789894466329389863390057259849769187955104839326950339972021403961989948618976263588460767712526771095900692715055885333069562551517538255885864950092731624920705496822603538813375384038758779130220898275192989689439835914942181358593858402310915066129105503567449549409115610825559731616694575991113946131122122261870870263715158190689232032784509071676724843366501411267201384762228460750682530772188997648425483415451480616610128170354726934213774652199616317382379998962773077395445352115430198740545217558519103464939283551771204197360641413053991114306296110153844830607847875146175749458047747818865010986434459560391592077773560311622278441684950986297065861862436265782431267500778422561552815477325170958686250833117351077524215597604364187434640414745561531555206933507162203095010330439418997808296093669177640124873566449460812203404907506608323554645478244459015609265188395948091847241474028630456702698088939564929498589508391130124225408407176431655314751475092658089618429831247469546501479146971431573048092910712734072795780378312143577989279535230952811190242000682895438228777145806071192308872416402271023852705806009811011662704145601205832506698057669598533492812128289667997570827305888161927321629486124680584743032390201108197691655108015839815252170661562293254392036593177408478743465817142300351193594165536347425426773829068613736367522370900559242349446014119558736424280526666330957537925518297706548812688247817389655733572290691281985084652683855830474279720947267944771711548856109213656208037033583465058118187352787415491177452288573897697579176538451913974972274467767384145663075626327260894458590295979534190119174655857063272139440186340375437083593954610546277564605890518305380353122301361283132576376960920741751188145858453192973048779674989711100326637841114107091870470195962916015015447779953937094855168170614998706125492344288817135466093321416994853864332600447042311117956861204766509346049778204854128825054906112310915684812317603305350600580159056002704302721038100922373809488919836481232985419427379685883166953878265016519727862351475765429169406037151324458723623147669799310663419297832103909157672577179170567982300164012376739342240860268881558369670851080078544805045326667360319401191471008385271747805009757884112073614335501928714686416090917611066890115411731836174523464269240246529690881192263018531945117970621810053969590319694324570656738114179772525187159058197492806676549521527849231515333962536974761321315910229311739354188260341444741768687977024672124550810979605165153704694097409304471179892632071968973443321285574212123136649991260828154078308334636146632775989837395102508915567610415462994799282876529813217441262542996746383187191999163793102160584064317991571464550002071737912631411732178981020348408014457192505276372339414858722889825641452981056022617367188202796989923074479011631443981117203066217486287337858891819385037610386968576582324725862385898327027629938254621964887206571525592415190485732494514782433699920036867855799872709755170062308852814003934468219147452966251275721679679760807733827260817034708977988933242273770357696869306326055227571395718552349154000981764227556730079913791633845995262053948631609374395176952283146734297148743924941403816235328816869522754019520263569046277619348527427633045811383904832783230330213404117555670665842434611196482055135450518874965906688093879258880534925659080248551330218161915266425231539675484339580122593707136056238138099524603364436819426668452898644966240986317532501429130843949397250978541982846735659531352983993999767273762418332426259098704124175898726611205097761577305514671898614333937767691848742145495460621847275513810490373634178423286548759132195252879047902937418012786129555920149915893459432683563739200600608269550409220689764170892630920274358255454933655533101515683068477138137180708440713776172445929367281539424971919587173376136490956097234682817253033832306560320017436795056074603996105932974131541725334248084434990162186308882738552796765575237769873516189349207338306766260288707037258684525424109206711013222605661142849048418008127086540636598184765824753223551233375665985369975950342771920657570083710039988643530828641092293395487543499586955943431422081884526408400326394932493623552828597840748238049538373334348959338167583982806762196717882306018274625986501454531942103678756436854683773275312553263822214784589332150894831117883328008338495474549217207642868681500927978666361415727756986869518569968573077529587727828333577442504173460493516231892152866882795614501190411245094109846401285597578688368695344579971391621514037087937737986446812147656647873461275220640068550489269896343211829393334551472368698888083257553177622357148244764890212095043524617221655529241650781663880961636683903232593131529331138227069191245684432316100163829652243937107093064702703178307629692100327845261840955542492796900744627298624883518367683491836351201605181311564873908996803717498598148556881965579082094516947805246246128584351231577162268446552904574297278449629971935283608345504129687748762221480541396734883677824850801278253369836162220694477565358038764033898612141654906723127096863973953678114750798832753994493341583034342312765084134561329994158439812044593213181731798619456396620797169552550408045256661334673005375381904575119050807757001095096086725291405183062225507288824789172193628943047036817495731636018384197069438909398460761009639294163917010127164287875441286081948674512550754960803640775105601941304115539644767312278657475245109084577890601077046756123530456763956672117244680646132708271398646412425277299444324534044684419704264175900686871073007199449069289692617882954905487552348961562892938112341345437026003219307302487115995950315613528335859817747870480620312307963584946356856841359275572795036701974811152551020000950226982082136686376800992380438483250615908808046595035686674614336228738965159318980173447407404663525397757416628134821372625130618057503396777925892969510373541150938545252799952190962446617534686274930235314419367125313376098067498773563837282695402734416296330605332194533869939351066608493205963020855996742535435464611974210602817286109763859395891057541140962774968599288477056271521267904109187524867220130591326615830004854487881053898439966994755666420279095273938127933015106557357013069835110988868861837349319903665029086449721961572957008422815637848622128124202937471373810535398747429447293956644248976478840725658672599473471008082500220336925217820995018916714269655994653240863685522370585588551352390384995329590515019294727104223119714646889048673049345287777151478628114010296545945222487194055946678932829610761329966672429281267353915294907289702445089372136296052795432162185502742728820302254070706210670472925340314515684491959968762696264955865351017334422594173517707108583315523641949074514194268553339611315807676502423593503377750394327613593900899550727013788097408967974694438807424712747169040543552792161482274384025427216269245232571731259921092842056503698832940396419091579528924799106356932599493566227384374131567543455187788949478302898233823481698364146346729995798546384459961585908381971261292676184698795572856383760597049993796427297669700850791900196590530225393213787870108294975488377369991200219593667150843313331762276292866912637689576866318301393949786839222010677879704656143960606485586296392999108304225392820831818104946321458763248099323857486159203775699271129642684663825879570017364475305731856945995531395460995857927774033975761631545396383708045597857803031102367097612889785914458419306046147343252661775643349649505898574633018779249576646371740157749628721546737303815578616295270493907496109087849594008125223804168431893423495341826780192114986533201846368922311661359438064741236913002566523513113045107482468812616950642000653717723867379541245197717055734302694458046125682462017973120137462675399807866677452064790196491436010017374700189746487548652718205835593097229254836488462278108201006668422389757294186865319374390161941877166128171503177261183796604494289639106802492093177101802513039307663639558182120971113928243298151217645773242965075614026095033554348012545858735290009533026850572297320260086480007936750291507265626292994075251217675292374479288090503726613153443174099859093935629754509260184203455026432220610532491812858886746505670973510860003078811022987051145751915010560912574840843202402706651552378292986409276813928210112707382475665638659784718965874126527055509439433891610045254433674328472170914586052580728604175581260785843945189118818458467139272561495259486652343833615164194248095492993949278790847630984692812712217577031731752567809563914251924742079147059163708905622471407309859221479243868843524635503309283347249139156218919665036054525080562608973338133708366189811043020944669726199036715195701851271020394807142337868875533198597034472954120072162049880282533712401132988288965289075533119458342924428296532036385029852801393669773538338585437964460332499421671042261783867848954725553750070844000240120090709706372660817939714750361201591705715641431862153626396343916340237563685375501500893030616273546019919694309204031632875791684134644598643974168256999081021284094223496508392552990580782042903890044937587147386087798506012718213259664599189123858781025612838216631500626371687164101864864185748042789677306586253897425207811987191768317662223857115006917335436857347860466653018332996828781804240452845228809512941348067689922717276363877222180075906076902299839133950903273879181347845718775513102050173647972464551418850763482814091938279951167958605780029117451600603760528311905598711038824058325050986303895734796344193347149624629811397512573166177853749631682399963054298855247779960462325463116006545931750909505617968828298539493798432777460551551535825469058678815002779378200339844890875217577198688584052383806577548378550770099790555254605951203229035934923718376130435405816615360325014855432117466120695803053583733565408541339850197325532118728131594211975429913872148131260214215914109451702771101867989257608715867951144149274789928516114414215521708884581284398668237564381803039926880860443782608216617581759572123247493699161063593401751283338566357487975492546241567912318519449127004634322316613388522844649226410836168998592266118833349599325545920095021782824886812366148133534653894142786302448612964477883900253701648764870416172775789607248492289646811006518269726983839322175626994788600702707025931337123702391453447239717391367529181722133740943445166434945694924511053906949519507766053083638266377512063266927883660147202574514934251459648091651987013414624651134554303978147764653769799535842357588931791465533232212679507129710148469638259674596809427796535225476555451764873492356687592301240757029051798061954720773472772948312366395696756049546918501619265536367337738122770396592459598975332078136178080224671614303421413474379331222226311465592054581920012712483853253932926759001117042697968953428247735800810908628793200859669000382409570426865215049043226012811320814581577960209217456064905902896821600509921729942054383745034003095406950092568153050475912275280915817205374260914374043987447801584586723255915618639168821367547621340842404208461422601344496623949367426308126621838842042550637974592846515318793825622495043919045130555948798923615516344985581463925556936281178594091972281981624357582344904441618413447976622246796709540813517550113710894077773599928891621714058706295822764589542774345813370983921369200460881442507610874681718686959232874694813051507143253513146647921681717084203536431495937528040129019280759742072130826072729135104181579813458452897166043821315463753643600303876443540806197500976652207164740932368365275792098419016411245676771784041504345811074371946432042514420501353822741996985996180765141512836710850107489525710445497441690052518264144926723186350794134334325617348729832227140962804632929602006952087864284090124731501642761727270187774952543602086829802545602580591959767764944529037292220902467912619763775887665890398554210869330199267972506973697591946144590865414948672700151850663840749945800684836549390603537921492317994486489493207460860634930662317206963466605935344596316281668587898090925020327464312409765423863310018005911779140423497980511316352756184128478601694303047641129133252539503247769911065365309440406682293168455249782499434992763213656253647145171421029350555667766628080813152053903871284484115377281811318195564859282692017013196853302744306237075983201749576958841398971416143149907524184424870298006818826386053210026529222378349375303121331556230385288752180615514793470375837980998318583703637880197698336417524584216277878833486929448383466390722032066729833238308958272555704339698587543640910371208677448993694669313019280722891832236188988144508816900013701755399133790741532848314017326800627666884974575241918647666540621837659771470391659240289487832714232062601154579687720721140253827576058785916803646610701765937518661023799278917971246376944208624027211847495177997251437178922697518938822239179974981494927323835986256886855927166483501051284354256444251365687065582089254269622194309222797395326607445656018854957531924038095637492566417698049164928863341440986839666429335216110431392698594103618462496509716115421702104080735353673630441880846252750633120408386458890732609994668238850343625700641205714365763175188220578891336783510130752288342533570910442382192732488488947760404794035348424371383698156745255921976417344545416593183177225023125043777044076505794007303581609739425024695701142208768230926565911545937725650727378641075253567427102951183099186096101682002233764700156694459577162197690855032668043318499280154519538265173637237450736005984582183965192873914516444969425533082800042287510648132354137828097320495837058844994312534380015148185908676244878033627808912231926301286502020613262631710881848591796728563778502651170285307139528137266322991969882995631938952504501564346967346257498685579703084354189073932817114288146951417752715843670404520611096311080798694039951176800516269993835229971278301155862957957715939665419723422490877819637644822397775345010594219076257977146242209768327672039334284118935105727656086803939066705629387738051152862803240573023976116092158899344537988987049581430328262521419711312812129349704569641558874842435556701069389468690642176310927474461341980064253645637449056247688903532805462248443822960040966307343382475049232081163134609918347644742751421932762789741762982608632116929997850235499243953958539562570131988432910527378006178453652565433405639585594355256814343259529828503227272481864872721558905203083421886557658061517411232986245070166077771588262766994584280440954418734256340473553449449875885131600154059504879738384351742937717412757601608195340419346189829404003258351498752033101785451669715557517389884558657255208129981890854637720473217934718358528183728369342779424868162166115289171233621559271268911759944965127902317375483266028339437379428089697718725508679681561226389854486451485701416407048729115620548908846519474685749011620574784077444660313163287473615057270995864595922307834297554382348231257474991228400347643728743109677146804425938935368675512823549940184734383772276753824064120792795431135859825666544744833294092206548173166161838970289019793648326256965952772906054625922022688364804585346215829513909642499868670565483853609482888196965474606406598306528214801238530444667436666156969574945701498571007284493451325615625896385934567515473095154818177332343619467065491285185619029402315252915364565102445784979482480894143002237228721288548015315884324263282568484365187409869456330911355967122372447060008684334512208352588055100968901441611775826352020362553476107576662510183807638968434083088715484263634079989309489469998318045105896610044197139246221305560540140032358423256761527005044815113993623334291596479104287925420075574209806293099275379822823570204484727432274206210832686205089464442019934497109034035347203705921959402643048292423769838276027427008453944537092199166095115776053721124089395377398909560215411073929374130643004060017333509518710209646210321598447971670135318021184050406700415977606297467585411852212523034764927978843409102058962793317976067501736389228569517384004679997703964983933856306609641281991313497179364144369416641872571556882889302702472864908223470808431878591136336871396742195106607976176481095005990457916160141692578839234985040482269104134598298859942497732304603931937869857459016611759888621423467939191622496459120871013183639949563659533894641850899307690354711382498976430340133440465747480542962106908909155593952211042066124757177569773522720173283682745074864733196824223503898785315479030228956177645110308693059069180625449253691301338060712676972030809636737062758880943717801451384393671486636377143525473718413961113185238193660051643076160727790020735202416943238369738539673882303121659409827324385154420835372206036310630335213647670926042484665436220306816787924730044399749985926928082270680022564796810994526583324803975830060119937659835953709285074936497611498591199067601096627782033661838457414002368368599201004382787006324760913880107547144779687008940386305109843286592963743411398143904471439810791338544586465234826230381953510876577311865664885936924539626932103158500463770823910539494947589142947284024338662261202434774280517122588258867039072355175653498065927276176921092669953925707238945881077939582766070702993098952677757768776775943934742207924332919076614928978440003760027647101874716165410382586768915268180161411360850798244193572987361292289665157946881157591910444219718258160719315309457715962334917227070330574931336735994500312736422478786415795062772027943435437165722518824874351899661850528572575484169983127886316276985101861458922017548172334158109426492382986848735115019910655137404418815215343473288899690853227025105152505911716868369736516070794391835586987516733004645719771345641342812776179410973848496632648053837824624823105868591032269973349047480596398357307147935762156679981494301717824860831740367113548665478513176237658073439097985557721619013838629303956002135750768619687184998447032168195943166974871542825510449954965145376309894097390210448567273683445621178541990336757977971840015874597084291911775075507863117527506349893043351492057769571984151880572328985535624044568601935333958785259037277636700855082644783227885241885428936973191635933899163258098204767983443082514613365468357221066523041594691385526393805487003619874181963112861930294345067939884814935196225329427319197003201383455132067149187473241649938190985671574748931774379729361481729570525190029912096984122329495762889749087628262270303454770421045559744914803438707086183179848579205789890255677741833358303082385439070780846070934411350635561903060856156566890921185431933407095969961818223962730636181839951585211290553872334284335887102934178817398074613087277321631730927668910026673390593728237020559860343409372905203044224148040539334376745406408172581390702248005316688377351942170019554747045631579736860885704942478241896691959305880423616411383553500732765615735803539315262530279321179022593924926327849495380788957954201519946201127502938252698168168042538916249457571720911692849088216295779075041856738186732762637061294737159028047483363397912145014976506304309768417157073312303167873243647773528473284647488732099511240872775885648624510430813652420929791441406920129504384799407992639646444935709099672812118436678495669163615397315702880697589739600438003028342627533324396165255564769086751702916889741123262852561936937506782555868798651211483972470361354461666959995624177384071686482933882447924770528577134740769301804991750549381108935512552469441099742683893989863468079118578524666123559516968610798751262894667410242800635647436047757777726830634989816949198123829825308327688150509235484280609076524688794787853626657311501599430772180267677731056641686624430017633605867068048520694406037409059228532566488509718062119556374132941471042954773301803348634981756114416758596010046927392595026305406848196026790416876378871977502499272702269718682204284822288983686058141652682876694861965919264651554772581380460622340056110222185755197317275881371393996199633975388389887468289957582945002137367403416108428616734167951616772520289925418141861742398598979711867854234262460049887197218029786149262951794738163428946404796062570252106455606217663068510584616630115060498229350484770388296598544736754436981476083887122568665252144157428366377337552480683319870998369224716736098350731878404282580946561702713813398765201883412685911671050798998290828702253251183773181714376981849714258811212000635032466233725394394913093195244255387181733798488631424738711525960265794152007910027407254942449311857808443757351696447901922570095095909197585903457803308330476878575969366807251241601458437175379400485107106378693850389736700897552689753868255957722240346990202604248612866381431674841710059908802019457662966144372281922040141401212313602534546521697235621901607406189819513005907634261996641837366160679443306642104253743302561712642549779217065733035183774098665207838811460811314038689731286197603684970655985029924381892384340300688507557348188480677209571714548865848622351007788889817897072744173602635660648850232183911111348473619708296885326359544765087545383213077653857912223410145464169586597030457003221344538848137612087362788692909216857267094996922127878070412964974351438859005231474326050510184862853580181846154614202945060783892817976432676604395630755468922398571601633774715201146648946753145552489374420288127879517536902880032220600700859916450432927022609161363738834621384130789410490656160533831134456890777194729847457446528448876251589426703979732956420187036198426834702434971908303670233943523116535991058364266499451518895997099230323257918296772320192707693274845231608268444183310656822112285548212337205490732825643861954566405490745061242913047358150602191959013728871012973195139736764472539424135393567270877468044244803923570222866073054037189463276272181311287241710733705110923574403680988404178991465626929297675727503642305465163797003981709690537218299133735978447129276580788383492902991767196482805611494118878369335417286976983757689355232370155142943822945651460645604411950601122633124549465001749331697442383529561261569763389784256146281350998106473910947433784791113537278652259245272568375408918790224367827758806511995942758541478485851676607709396759877883364425504690470249188938148488763251098304850519297160472294720919824689211039360314939432749534147506943909164788423149274817487595064162355942471100825950587200318403545577317893278558746142590998578031476243017785941047410647202519876476367587248140392873124474728238346423762158176492621139739607067243064238958793995365457202199816615815425608779418481925470579493752908894456721140827598921494120534980747963319087367793177262980337699509929992496701106936877719912671655944542278186635654283387805026007526892857672421043202246358537065174810129941651663599128052700216807948663749307300549473068464604334882456606094262032295187390191151409312795547712580260908360191252475837371559131381030880014154170897188201312975452793869517545831178021825918725504563278250464176992304399280021970440418832778457945618824736718069983960479418210629889160153879569696522538547972238964411509069708797889895443191891312814930987438483990681464963294231879467168257085407408202757811873778941272126217430854627325046393332186360945746221030231641159095396184768935564973950760561562674994145002532196939391793022440255625705981727328528106919673503964822941148461639556604456259469044929675597114202656492616632796220473902765092111302312440236284979012483659369827612003766887365817472314674037009278692314530110665075367619763752530144592863212704814917786042598144838406895716194139218923179269152737103965297245482985664258735822627208508749741971624938005634620919601816689516791588462637902412211092399087518523841723319624201724166179780608956242360344672554943132348302539880812125471563175335565243680735247249718562660296084201687108149118398220829823332055692739299267530435996515349135762945539187691566416337709177217521009184928186239961391338957920862268533474061450226893986715175123020929124962845513094609726945323279849362372209110860910432305935097122432314179614121657912643947479540801954356930219702275278114984181248352534358218337872132185125538222067674750921319732321031052099773813928670737117678603154566628099475643889468342115474331537859985736886245337222821794503056348947112386956901570185563552459865891912230073901413928634037943800472569748881809239350798830816888886680634653936575004061240280722134140253477726011340874667425057909917672857199698433637733337687734950567609922897339208713967604186358813019624507184516931518063374339369654944907195028942262402412523763706380360539764208955435856871872651507379140720793417050149470603893124741211041528818518890401254873922985788863805104027480496529104763370135365538196094221078415331220132545771397731340303331917624296723457619168073049032780366248446346571078702247147293080279352534349485296921194734485144449870565308616511875129310547057206348214964149407391287377349009283980573202289905557078442499891984299204266095683158336561353137689635554097382135064341956217351172349317688329822094988926751018887847784620111930502112455774950782973746243353088337636856863321964532860050005280281396084319998262115541962050380416411469429890890068458067312561086890374171363060605320266138655668163998896839837429459977499217279927637114686208549594639471012486881552943838410226196873695024495741660994234315407967635355466963048431545692642982150679397291211051205368400702582712787340838404479153869384050976266368589409629717016882439377461199524395257359501374008995566807493475289498593857172106334821175303709287091110331489357979342424050176448943925847978674509325817066031103030604886642631080994880173552412276088249112671969917002708921167641489779511104704715801238213626082139297847687143119203375943010958694516964640184894247998053238703024947736506721778223701441234901549826472082127279093009899710739608031384298762796824137467586769054789515683420746109228972256906237342255833326899733466583263915142447056234438421903202252233712322280578225357232590702328357282730862194491556951639010502888964857286432473457727853729189150042928539992044731006531475648991884091840709539845856940555299325289413438468105549262538808402756370005369056785982562226439532138951480935499433643550061715100878272143000643866879902222154438354305608149478958990484163223442301376961624673098679119835782016394060507511055112896395061914945136023048137290194241794402760052446005442280238849869231706715433719378816561574502793228665443839241457490069341587583278952324557569077943083345486811848403452303965866251279843973105631546638748722433407114484074510119290557814288481439656458684717050735076015218213291752141481221432067582922297644979464442764542077229807859360229312938123245975000781616274461237505342202684310974163572191750536977561074971877693904863759304879949035022950468325656198026961922302529872226805083932778988882624176429259391860908603583663871476590268071647590169099002983748843087827929032865014725969745412601641584641145736027393529130809168524439976302683728632013310470190483662256106721740995581298608369456904438172984447692467709424456497919282655724484269622848508605933491988917056344533008091349084123602565987326315680719344576619363867194369341898839904491474611023590348023039307934700292440322070872780148571007096798141350909421618610207745083715473893567807601613245051351959614235282758989209683576588687547831694517564397776787556447580185014563060496438508830252717794938570436932894392888229728515789432799545736433517846243480828014116833271991402112180347465270487493439940759564093704373105699142170779320494115876697115974500566218114719154640142258350650525434469002723048037071998873458524646218510824948716655670991294543679737173324328904390578415413950918822467307301556500334922430320689267978109025314775429168516106343306421456638528288120527184602318381974891106008599357687543674654862323819651225237557172993496598883760695575759172803242300807351224131094594541027434167128875095710495675665734064413981082478932220536107094410343424000050137622387640691235132940887757848185393350014285033821563875472663457558782350867296459272159969618949451779065378736654928911170734261701387424095650163703120023630901403021990446923577867917434232047398824583680482479391702659583069003054183400529545172206211377463826933945402851194702348360546992643782280301357611249275622389707689486864748635550119921322507123388486229599163989204399972231864900394648409049766436936144783262783688942623112464312466069738178347810704217730863051506277171562985697734943919248057635558885376011220707602796200729173896966749477124233167679331626540322878239211542490210626085216442452933413906252198790573331216883330017011437138243163910021504239337267177849191202499723207383334136616196294389757008136973414953403682708548706271034293159280894624864694424938346487324142019675267042855549023712760395230501352777275544297075529951693331281656643234550302090922280667386804204070692369233156848256378799140940858741340192102666359694968873821085727567724450122155100054567508668167721365132697490368537462180823210257379536605359164553457401082532646303566096134200270730864001751093183750594800518089877650369176166401466166158422639718433821820216187732556019585216101387319427981916333496660106632124130548446227928785108033171059850582267657355199088466602577107915621215526044873070618117693494787020014771788134359436846739246999652468825774148125572002359072104233840067998783720853937566045215386158310917736700253937440716048013055683701236309271972175035261924374562169651203458654288189033753831322566607686047819780328867970176585936774771272479096318956619929627045562880803322710951815927539457971697020635376599475798893195414885937984518813031201389266570375750498562149884061879938734129558339960581322061250649637667041319455844704098762865710734583508810310906645087753672045469756072659710656355895330521042605362599827360321471274452573367999228209924724048043192472222374119253848927374701740967371890321130125442309075547568015052881868927863854035125538086868039957444470100509313340459601630222756410030366468959308374908022506376997156808021711816021904841684607643043684919206090762184772011475585632539418149770443480868933146592270186823711679973001076522228368072918331643501736993334549272145488917340013952255368720094478276442432797453868463366537010598065829969457839576484085086994310915713007093955573447720362368209249339557725873946638233116925716273408672833537205850519904597760497449157849728348473072691983891783899364346183963617984362813930454300597338095011752622615517707273606870569714255271582591184721314823243327453550919029172835899347172021743817965062701352374532754859512778177362140663446021638938380552344322402748494565400205148298390619341795901465454309794274169270449313898306875759347552122860931155298193434335905576764109137257716001233547057777789561359662628021153392034401615500707646132126823091504186460588464515356014345539337827767316815846698361302249354619353096410083932624707685759201073156361324517961091409016526771949965777146823197662125605141287950765758593260858040210402653163981650158910825791558521517136621021569668495772465614016855309776696783023894567361050164572037338687347783294190393531075553819255847820148006556262029831133170822458173891722022187352450440623823689695975187011212215533699201127321890538707746153569495675284119343628505847549183146089132785610610692534933546526177887588864915511410685627401239358698342394558421386983717091211602046465971479742153387718804148557468239790928987595406438895293601859892029042173492999251817823736339089331125611534833566112828082036336436418517301344000275087366831387426691642438630451221422967049960548541860619420276338493753909783134380182969031066601684164804723916991576008718548168998732442786254803322931644343340181655259958338442850964877561959281319357005642639743655631723705016013140451393992122893462539234731462414494348563957890872531289166966193263039806262899987645110341239407458599143782628446241996834359842905654765758180685521871182011056723484550516692152281091164163830431121169374136015646865081762328168127880453512799776200063233798761404688493873488546789993293975864924374264632480556775824165468007397479680713594814135135565571864148311606234479400915710798348976886454975196181204390138446132430529935239937148470300813121903172140714890188117277678862179495113531650867093618198965814858894974295887022811279027415441097820378475556076296023365220538673378189217830732220137445394625567430737430853576998603578788104996980324314732719665165598430476630975722176636095411170847861013803372776183202995592964444940098694423063739442567081028266364266629902968179503750092634085227008690945871800796850749624350168691908317224813391818932590699898729324396082966854348251394903268667334005737405516586801488698547844839499128373766562630159675575370342497519462877178175969190793911850052530449648503151064142142889980849187758565958663160938227129619301480016171268145858584913148853900936397284877375262893270697063803419401760775044652626820571381403646364380938944436894916309611328452063883389289903757152112562999309737655887230033120226206802715030051516969362003926717996583294920020879753564931371774400311650405415129950266285744795379771502581749485793553774780136571403314417814210456272389558036556589524421787620605112558261121183806080669803043653170467720497400483515559776939659318196577338047417499339423838896921723960291760263537062476499823392400109972296651730644877960413887213210616992985629817582361430607749946948776445539040340396285925227316809988936898439988695281279251457517277685773902054439070512530999578537906672280569856987813967568861966064645870353845174352530819774548422781162804400014900529122942260646658071689786128243298005399648947844938114342051733834548627172951748824290794024909454216931684175975561958095689745650339067917100827701305139375029913930122274465322218290341167625737535484527654039921312711721965300542586563559977580267010454276195552576588785205061473626953710549379072252434095116746670959821461766309444532067381105872604290906717173769608430497360097113809562979672570719751381498331863492341105899859257916131355347603546570940942659480707199106776734635327876810629754532002067023549866490861762789828018828753613673193996140287326911952513626847212984309123602900819701770679330229759065932947905256608360057824285960103901960896733634015013797705044956374002302442892891386266596796340288415757991468435753543971456661442744356342133392726920053184431135495420140575364971493334486914391838480392819336843142781460698851862745255375705833188587112153326643686981312170766741551115173179837302709973485091098563581170125057399182678565017364596509739065208603052778823473788702832626376677723553044943491326954411482898534284351372414521703919856203901445901763727126608304547811301344689965233024233130212618387134021231268808989840725338271313915183663275570581569861448951013904405159598376667942286984244072412112293235749479465468857604661414978638879730157596397389799916905039206100199204239433964286704659325066968737360257640287578644066145091189570767276414403698484560376473216806934694134724240863388816103153861092806365931074601623392769281968996140548012315282384320890343925860000363506329278259870554382908433656348505602747475754472109615970113972797195038308790899459032007581164104248965931612816460875288994420459882019502499799342246967311045950198567740508269541657407449630377562196572806282482645064124997095209243128561651887415897390734122953948000686555077358263223518593831922526520031195081914809320904385175292295211611876456837096431524256184013012278887430214003826711690331931742124443137789846730713396007432623464428113129179360587603815211661121439366918565771798572003676894240429741514115762340195314598558176471182681919678831723693606507156336932967432469443677263405926941208576293124705956156635439895230245826801581641446300742624951877352171847727774180263699632025425623903141649885875075565190436220367063745051032502620062470119880105563933525799280816762476903380511766447256954511740773347167060558287869064022888554586634475634494306635705191440635033708019857660690324657499161080385576409651668169939764430438537770634633837834479319983649729852428469818375881141144635100822334864489637404429016554541517285624886644697089696396366744670672211987786230912635979983576882253166067539983001636854327104458911293553357738170292611443312502425242999757171597492936193238287415446791101820659496020301044804452130420900790701690385019594897221589283808010934326967320413737204541254331938237725897261520199857125051670250577344884978693945748110622133577452425674250493568005013655719397804657462034837387832195344569749399343269914889416974947352915820373048749454918182513188365861188937315880951650510772465761441547548009730739912266557169137007819843219264661190483003831128516624743944365505117721633024954897868996061040010554126680634744833931387007361116348060608739843469163198651017340826600587447899627860972236484074161640103444507941470199087179093889123170258364242954827583330503751890242501759569660149226570675387554122178916730297437409276146700228215639723414144570696037235309537657027058292318192404493072469654156196903213449959622071810246062331437454501634965352113246163603374296390978866421049220582544935557034639910334526947596067194686979201056502925506948561992591114918645207057456164424676342218579464508149763617126873841056467656094864779700979415283578768310880061142256250716239628102466347356571591356912375879929792700945636148391746359374702512376480248831116286627285432633377145646460408907272647185097212785645553200235024846162199812224253178983940192557965445248446172006209451145452383862869779985605072688392323991534913251114660300798094650535090978835457183218422509633156908005420324526551655504451409885853972981745581980181416663266321980788136665087788018629226666782928252596625171976388347571274991355185270993128466408206719472904661228732286317360317627718574342924707567965121275987780255951266599660376303241365529177705621493137121717653959638768617154970124466512027597010172195912314282558245221556010303297183341186863560734023199811994302190294058508641192978590463705897868259692845764229940290539933621111965527038785784677547854515654110765694121008001485161530179971247659541751668221325335897454090024035246844818639674573131757964018524030343850719054705112689993520170762857079554134867800326492935996597422666099178465045022514135084886747735221098632299029990076583774988750393047751406777166093238784818551729181381955302513735381698428022417073700203069712801394918974790210128652023683859908903190310523818868118900079706212522338733109951601154023347043650238321811270907324236435698931708501123838377590798271532033478338702736273524352558552410126685121569898060219607883665833346043902680880813407886210776227969138859680469195186262516464176415455689868523435028683746500934621960726099605382147804741167837980060605961165297398775013035675387007156328207767383388970126507199398730094705021509437347673320579286561272658602487489468516549172602659518977333376378518433503082408888383061238398944058449709635915292677907772914987653181335047129152902427213281627865634774325673240806456607730100591143133234062811277414418851838758911350120640909250064037482602014665185057643656119962043957548357570048025894572949217974623965958568659398083171745545697556375164704882821256795557612097368742029580564175845828186905691874389651136035925609409471275944699890189442135868742114747156203261725291540458804891341076099464077846921960718920985328969750655873271440624715714006373046139634642988564318389283464814566517215395881433025047750743856132258532000182955228267459609891651624566461549640075247718931232847266911211087286854147519468456084334197884398448979704565000664835245329514425217464599596424755264915020728705537673764184590294087169647551726741295958945623689986361436180624757165287746145250356965110212822973824056540591155424273029783412482553098686906219395238465235968658240055942504799462133299706017162931403983274828138011849382077963419492812502188724950443230349581315197876077265396138459842213523711539664253906108592066635437375469199438675083356304330462178643307085957307066320568321490087264678482339857040711335805406515934456755465353181974697925847685160206794522268375652368069895240859352275299262556488038546238993716023499810215617478008764409617012643467738071543848664258573331789836399899778332193924264637436081800813854027184335327001822612201719927859273377715248694640062398212523177619543791321621207712225515654699703720934533620034321767302341226227534290771199840486791725225665121149519445370309014552863331143812657629824321580672876610679983789328929885762145868856674014475233438202523746955225865195803033872280105170451929336873097447730697181463828100436039626223959570955562607027255015182027824745157797325140921074329671825556409889669690190072651125623598267370692436337428515434472998526629332512410727322138468315370755674159958466541516944667989338927293540882606141945961865160833548760974128790740845546790766903330575161591628498531273312802626397329602813193803772134874718671299170104238023461949643606934553592798806661186530193787416075191699735368601470164294795408963878374399995152830027939970926097903313158001815841984589439454930325128822555270501582186134651831208638445711229631379337419553001977631810174541728268939351573326067995826731671614588220595248841220631397686922373422400253555007981848113682427336825350483270233117611144275817785694122482509222156474539995403476075046544940330083991361636245777411864195301421523312976356298955208764869249107296879511890125508175320352939054221606596579491531707017950159038623128408769788733303414126365621349156192136721149967871757037905023641497107995717376050665541409675975056119840079658908812978313825395949257064866371585777420437688583317391923379043588230198279682728403076120123535280150027123230704293166391891049769897583483347437355033819224421457822549142487191563666152962943284865980704429356293580034549391535571848490276653653586984497695385678169696732169553335249378563717353775030307049551435184572586838271068696683121722239204615255285669315053646310881387415738893685062425236717372891557779600605645604516989015714010023816664221122211453545230757555027645652970238471944065962832939384320868952829460173948321856501350397286584235624188572800359440946293189825344629191990127244949425456661650588371161061349616485231482856148699678212969861912055537101255859903355795116405411810974483640618919109734491278104963208720594251393291852568164024951839934498889829768530554278469513249058614569248397579499227426657426676815132574787061846422730464395600406613648289114421210698105243365916571803196286488311905784877997066068385763689196841534644501036790045186076752577951198596370686302566534567590466696233392360676413891350888282699178873159844355601218438643008172982564643544901294550542421777457603867166665843526487032196612936872588164914728449888327636672731547333402850117087795220388554124291917961622030206853544500086700603774486160687919311399479884047418389259792120922279518194177589433389119451320273532310073224600375643422907256732554890235589043945211631381300273576208955895796204788971777091241554900968305238379866667642099739353761306837937469673409768400530600405317464241406554756651221368269232442502124910560925560228908291481907156667460756727498861256623885474464343885065833698236623352830067890367306046201032571593050409588451906747586943373755764690116888248038638535676054523590323366909827099166588793307109733975903689547721582917742016907353894279777875178321841196076174962082616950294344997945878474886821235280274741620079233939126674081515055501369222721287160265949652587563733764254082223932613896371458920392945583964640139412332108304585617001800842381064190827424313576692349265750984663608534525408459187090811024106665264113432092088746302262848561385605607803941156506321240024721087725593404839475655824760298820628911518667414885244080982456164098704194291063598553760357952171278541768001366283085291291910896482753505584690705779345795165258630407170406566463143730838750901612050517657477409876043293918205612531138998782073228737679818480439921837976948639852777870201202595385029812018874461196070927785234630467281425155806390306067242319294605698669520188960785537245945664883123986608174670162619817835723002817620694248022334622233019283051238370391221869832031584071769950578608598453388766063364246505074931809245537880863933252545511845576335878837915146781503462510924076113812138386608299420512605445463762835080344841946957395649654054109877112922723981002743216332967334226487082106438742374942279105612344647763407772080657534232229342388364429944239340311056151871031697122176249085052191908701809024132242216786039013674142107205251178004611877425556401044742051706047993603437145444554980259989996306357438797371572402766765136936221861172339964438236238385735500658310740379251570410481624714582318315016793444282239373723852927239683246777442607071037212221740566434804405154920444766107783684951222847805211021858809530707359456083528300507201085744892621469220793723881541344320395615589439206443634601162541985561040345559118406551182125432247611067506578898660428566390308622484154361034571080126355917085984339028291834786887882946110215645414012855577589541323687728521685281935742566246160807673666716602238718250283430995248928973443652526038037609818057920756703309812009404021428276467285791312970081389288952152881627402390999215847850645293980438256821985433152437488023702943647175618571686480335619480393554017672466064497356602252846200316300713478408297280046760844169797000892707766263128226196582636891516083434849442782480381528910619221024647659572104489214171269822931543584931494159140366964732903976110940923690639264562789878237408335243834406870865597368170375102336189515509218996223429753567097888590812404058996746960199686615158648546737157450125336720499135497980570326137015099905742708714951779805993661706713033011392497899796013882690126070214713183506251899154203943798437567372673430914894394887044981915027987219654549922040802346864297413384773340183079615371191924514884931882124279160009054662672233850707693831032238902104900663055430135795730124506861134812414669542414642644494245010398270728285187749172458272056498470376474797368531400263450183164529795473146458222522327782829096756982305742838934983960719254074427021824443136164471579328034298633234370380064813296228256467033395833307685929264615564393588107155095241738900658936241144080780185165749056636358324967483594573769675849998879377586161713913361159683168773040096236221593304686267921621294638080157011563673294143029734649556862996309858226590606422527477594287124121746656516842903437980108559859876223460344234352770123117332195272468009846625040958695146650894197932527069437394501781460135363936404462578629070030313661577384757062610276318963873549146560320747751611714884202158976245718743026052781674860146721884635204393763309918838376240182001955275022466527958553673979758053503590309321665436156102852397957904257377546629632313891028925346091693536090653809257351361376124467175264989094298941787976556303963126368453995365665479501711450571154512697171835839947160109067276309229950231339223359528804924782568093521141499158807907293128350670669188951793442371535490532162537751101576908277047670579798281861041244298908297601997811674932719360950231438584081806753915446403182169151427569581892029320653399844523506849570341956805218825083252417602299271736830195593737799749886445186298873558776606845984194756351825693550724758167011281374827873362160096140412510903402820437304222712424639397675592472852458061240212398081959253225185073324035794674361349314624542470498406942112733816245053304752771843252484481544690859682249180143997299778946836440282859183916053788344055332027683791068403080890108203611642724454479028023079842174781372472800813403267993043707785270852375546629707952057438971300315539520677655814489163047541438269171593171470312220958889526396771015540559138809103655424374832678851813994704702788994475874990924822912284544539567721829054816085393475406562810108242101044129539935050363410995068634379278309614223962325038508032108574085662404608807971885351165769208712144819767342557886410704819701137273168118529082006747967886992935920495364895103676523490364734132999008887599065653071973322362412426908510356911829912133156556504468693988948688089607166597476452600247291075119304551623800448558343122821445397307134028300008781191574766038936936372299408896995670204159913223144079193646915996231251112845046515804453868098632237023123080501437241638250565197771249169963674540078339684880483452773521482853321238779187532393816948398361532028985542609309792791691307707963717964092104693079555673554245823994632952334948500161248498905984155621754277478594201367187765042109767448735889640138365346841005193262592035536431209837411705562762842643787036175560205494620912068371839726330534986768225764528826649169533397593962099491095281945915708413926167531167608247860813295335650961950928536728691434805403285921976074882041531953668964828894284920005605446854513939563358312181722427132166744305470600422762485126397351076110280465721976111179037822818055482519574480981327784623554081717466104903297239010136513292842193507340451068893829774663189170744122158101118705424565765094170194874420318543653941021667605571965649001893162472667236016226199211710378177825349656025817071762339892150454716874260523216802351182946458661290751989456046108521933651249853042272049455573658339792263837879445183509101069638370904738975946014127080632191225376067735389388560271913641842827133881853306801930579195003217236249448226894032350058603062032892968767231601250087908560057605616940934824680255035726568780683947683945458482255222891630391148059500803656377866885210227998730510725690222121213443911313449301503061944882923333141022551320037291076232207892599717902303245076439922171475572601595102593260885154017969925660442892086812949521734792332331809249991059884840805794324438085687102246312911768772720993207920181869195638260602504932925550943846254111989166623817314015602521123904797828351551306306176288671697654282499790516119863739097579017958289279183542405652796885103083557152557720086144344279022886351550983957446599615455816955939210698562936660311492865729831946514776675713064424287945254939352446506022576121443645648425091060473206901460351002686048145241951232120700957573363465921695001936787952533142883360823945341512326598649750394844120242399155343889097034668214719429829416205652737737107090596330869887595666436972075986376733663478583426377867019517991011526361063722968922702055588126166488339629238157454859741336603403306091109083131518000460722355217723148890191984015302413188334303113524872607716123315222350756855309324292219015804528893209388713930962441650115847678746739684231132783804594654857259507233504404351590462220047873228907752045500723136770511657578525818292542150128419415408642717290256416730273701685183569732964050016867764887351697367437184688328898771181327038858780919950565391615136681437245832212900075383425576930815665214609288012291923741492602936079223009546493894827320117175792562223639616168920219396055039691998872988323461347663627011328505246706279678413433069659499352987830507752048483812665066741401072341574920901220839586386375499354783294789314953901360411835189414482193224550373228748674331496687035607139866985593834839060532802915746595672388657474892520436092759215065486492551678959183287133636416722386087865564817977065349306443020000777889729147650137254077147396367042661014662611967820844195276917367763115623828240797790186100359244669190250476862207785328686308716895055230844432726322306563944178536281288968100254298213429200273996085980461794487810414568379675804783710172237239610419208264181201171969349641911739241221372618128064959052174633695820173491047822617324152950008232182238272767532783916375678164272486413032279227971218992701435164828444588758804605461819006470053107081170172624599285006202444677338902861516976973714063883932147738602124759410901532374585712402250748279140271372270237055681590682452145313448841493264789975457697387054611321714098596545114281637884032584077983365379587853339952191077404977715087033405572212647276090174682723499857577750243923234170291050377469476372835066864495026070757566477468478797998279196241911973164146129225340083490650062187270252469243385539611847066503299797406020923690060125061737809343735658011680277014489666107547292150555119329129466225129558376828555597464055107976265758391354899651366482034906024973944815869157597299198080114686902898592087011649162354297582140307781513523141688368275672371260113264347867718383326458387764112951895666120705584002606886326819057625330961377978540155508540055190144671858693693826965414953442073499319503450650084193096080484841312124613440791149155604108999818440018883428143994749808866370600006017385832191920502740955736729235339667051942668989430640961297977950560200278614025790642781581867268034583433900013799271772814028965569553108756345235690202587229831327381175727695759427871646312201314129251013189367956183318052737896364271487422634400727108236592124568012132237132531704340812758399784515540834741362380336448085311006977831818740705966959533107804294304649175926792871305392567555300506199204115952892714816067313760339006028476730580890148915390731251535182814734021243623269249719281153066851922508519352120889000907777828168716472954222182979210453262639996313581995906159255404212218130631480511907880226172032887687617374202461216118018950517161138375974166625734578995143221396238747303774353794444406140843985564352834891867966721418581742928533017340918330958669460839682461420997200482243917364206808965508796306396386863313968008246841544186378545337899992481914008280853555418258716224963907839047747424746804979258703740336937442340339216318043300377251493791320709880718537693354013636403064448778998739966333413249743630673376564487989018828226057171720139855105707214909963395216479702517895044021440231119288292380200678546530973422313356570475548563639998331044667736503164764043802131437660327519418347053972295718007695192949228807269658107799536115327049690133675778505690185285078386064783041224756000278161672246807052652977022978555765267116534704970625486370457822938623954037893647723612634449621373656194513622419970175486057952781507536510016313340439342185927681457505541399706206746683771269418118005843176673501056070340849957181255531705306020724756409818783689875058142700606796795704199220673541563273523510405384019098014998335648996112921790246628508611615840064070224333179293059314353328095869239758178291860556277386552285013918993065724704590209167253342520959985088897989146063912576035942298208422406148681165984270892896706198274144536215195066310058035213600869384105675669928980950951700995173266915132630996455866354353801078830692123161223740135539022430428092983475348726706764527715629020467730971190155980575083415293863177365152100239794731444249456043194217302220252055994272285526509351573110763664113804730818098883953843278575832578221365967294363366936968523968280024753485554141882559934098042541455769149992011286879149175766757379307999319834804701634699033580371061036848303209744309057854693066331832604677252909356876027038394711709038908443053930190498127918887054563884802815440047647230669094588407099173525831637562525441072221771876049154080280329466686506296915885678934189640657321823680164512756249433825341608167456709824037573912356233190261524172592693393690166407093649556633031966493963835067058281180262219882980949189633526162323636486526050143319772939951248460339935678949166916975136075171658339238907757255426778265201609613082454049951300851068907118919136377555738647073249089625799945128194316656544453094502354115560851081479579358082137339863472186397391796140031291386609807002191457160696633166155877201876299543016327002030202463004133442447936377711179049474774433434948375275376415711895815750020856875228073167706409445049081943324716566673211302939641479598065412016683317453919930479955422392368246788897834313087115586876441341829071302127125154958974761575777000524507565399493250821009041848163453586649353555902452285684263726820476937996214652664497481834314248867325584477381450866676044995267874250100015429946427395276283070855672572685712464491094545174690836548139625567421026370042012692787191077093674596441934958965131030678838894844284630119035309657986008714064876908962474288091795315196751025408605472555204073957230067409896277497371228421114455473181937725011305270102599135598311229535902456974342386498342403909663152223157919091457363806316696434889105136384959643136117531070074048020097304557237403984115988258231892104679994730044355965302907275975797944352828089051151890774032138557297973839439082166752734325334290772215399479636796844115773607253167816906140411608263904584908037603368542054264455510799129138912929793290482988366228742504110364792335266803107326810131491738456483770456397245485435169804698269693921939937922034430935701234260815596322327371422338082482492911791967133746546202021859876260758695344827112017085273192405989687694204895869804262147086549243209685407486128571009932160145897579032006484911942681462720747363377804198807684031109398964087487059176290169502112382478666673609551786371339046521424365314280629561654388054088624092962877802797759266392422176563264842419153627578202173558289980688282971652699130230239365933039859297204597853591145140905105163958443993708811307207042667424305619198322724158384723941830299658625177651816721135293697826028335691614116302472594869677260961954384894132001312021152294689746985753934342257781745679339541130202160565484560984558285596708380129615245547274225958945018473367687235985223182780002330398542480091012947198277715087458015726352561883259235687239615548496097044838121565748923907018238537450796119449049361574492662385148240529583439222261938871347605990552564793562108684965166551495400928284246475788525815592971020569295134898159063190015380687467084076585094472861512245301975409062623500412743325279176901697793751885768734572525548011867639405730461673499675527013898302217148414581848100915410240006604003028273982750426526317146258237884740832821251970967947792761141810885706470549073741145634271166223802726657326785480789391839346238041955356695638729546668762567417563525883675398357641187942412763242823124933441808210337106156781533328185822706861896373252895686061150890835683521404064006276538319934498280223797720160371042659086768679317821347220163080547014035345758386331295546686446091099590141353679017409913762896653218117612937431221547736472579095764643692834673043820529422011486130525424053310310083383930499016255988940346140016947742608384817676686852599354186307510281877602478008924130983752055164715650159982496648479109589932200372232979680732885005924434810341236357306098647622447129659709493032777112660794283664712491098610993061873098804428365487628677787643089354155504158248738518891672845983619232039526510744550490320395381550517356683573667915880610206005544466118147995170563084092194470224309423485530514361417212935746092339039610123413610428834223494217088103981816920887065313333089634373335595307597815433522949411447861103285856016298935145538923393556360692198617415915305005638836758059782913077508434656986423330855020251869561155170788697819274782645795252061852153391322798782220938687204840806330568221029914630102614848537748687779368983075103698902780579628668521836584567486448210813563165255521343018348970226806212899081385128771279376642102553084096338902918559466698178294318291027507894449690063766502270344474133229700158293410465408631121202060303862463326773428515837792102410948916012252556440237563333924127845080238398795825813383969407911342105900404589937709700720376682239971373807358169622550679821967079012136549225070298880017996047798377806308984932437717971449405340626587616493304487120587757885338309049167799706273674106497101126762043671769515645214700156346129274843478109812457161709253323099124353196906271620531195026953171470619890049032387650838489332707182904547501131775439082398261091986857779903680683518070798137890877998108914740240280899535747141695985525381399612299879359857096632846082798959922559054826621446725639135376495310162209531498649611914752745119885339301238088009003576979920976349937115281546316370772996849604868888204174348542341100979488655977926906663582146614961921588699655702880629007273787267971194554450595870083543052115312930443297220714993477010816523051816972574388925339996640525697636537849537357644827626446284323884961145841345195663834344243206061358868029833559685873618841055733375909578012749639490511125185756739951990940300240099218346086545338751149097900141877322808304636701435010379127555743129088209007690662978536246038013470399457955586317782826362304268669883188129781290202920319685727616243011899260169513139721365080445826263006166552687131146528304021924107755603315600644345457139788802752285793247078970538713518156175868930778208782019780340454009709664795498183639446695071233006751835341850959440479034291133044623801112744701347695050402219890108823396198418333839560153386840633327507884999820613879359992438102216456099160716361835468107700202462799434359652827760744727048287127514525759700948921012661295397148109711374460504923443156433448248833219753074311564225303495178486734771721187192658390571522476048668247200917081653409447660776669142010683605259386523868450618749308843272855250273357856125846183626039042218657891827053170894751704424057541371024681906370585808084501450709727673358888931784272648947164236143779442670168381622727711104730953676853483943860947923085046597847153634285948345003767232219975583890972450478300367057091047653460694634774069056446203210633226694436815546641580402974634687383912368164353628108971741681651522395574000311265025364256303220789770931090545358834718694701728850157765460794216789416542719024918364625695280741343027657913222458675033040345637619718815993711103701486834498312310954317468599969086982370128597779646681099766848465963202080967589898656309461778973696517881241508913043547552342003305171636540734668004098363997673339208266637854251653514427174041344799742626924054622998837542797136952224358347667514539271508358896552774210425638610765886612918802964599907666480138771635075329616637647729984993094628881942278464559235633109473266026913212044366346434657365071658976983793687556428191336495159843781409859051402073704853719291799469856376577342092571874038995308632855314740361618921830455276520939930896165741214888121347495551219119656519296480177368943189429969136577054958310924419505571741136077041302884312187344999556624387687659182184271899067921649089954314963749619350661013500452301627716498559879592097756961385343103139884601723164707665359764348409301530110208321311613478117507085611643621343748267319488606772441556425109647604566474246537000059613172737709528396388249004712118225992198343900574992945607622204373308324567141134363214793051245831809191971459587482222171852181141690496168343153080500224946279322649371660360375770935943583278960335329105449400738642904497288143340854362237202827983909344793154863643499107932717379425404110006731040215580213977879665166863484694197547420223003389061375090059318019887417050770088171838838540687112662903646506374850139696427744392576899451779194723879679495369346953649312832591345263368305942854874700788509284127070137969799646847435813746116753048471128815850454173063106982159986340013549709925343796512907232158956297741936963284139124330648973245077556832309144015598896736701077518962281059017132778637735897801660275197480298593002801027835380092506263615979822059622596030473864678442413237012858764504903354692516967489972222986692149854977093499001889166845004041970096943283025992251810494485947160983173847376566285435870294890418657142366910723017534682254518926552949894020943266316553142690587718989679397090822207642479394629300303055820289772452810838666498790713866295656684970141917907245487838563496934238917742251025037071566655093734907992632157126353906869247349435579702858871146505427532829549140845223821329804346777398606386001865502825126471949915522965758333523858877720174546168674664396251670026411242060352413419628785192214386453164132955531672426917119293218204104151274728188182403945641059351487164417814430780891992758792489043675914414989261737252829528931022687164908675149410912352278146738817773357855804394002127598538791216295430004503556169825148370127701420587658916174008069921834986195581064058896689099563463477461918254512940331751251693141661226181467823288752242855973287057453683068163853322562987261367322874621815743192153545403772460199590881745535838809867823128688503485685693366757510677987133881085526305308869124955156709410871620166920739081821590307491273008541660416298334849389646832836102783100354367670583849478009113645266605545708217978882223989269528914015267081012951505962076036972650517875926815307275518437364204841574920289443674476895573270153431178054030409512081602505218696267553560871224821770045014198245885680597076201893941054822147547669291171680884369250212383046290873806210034972625340528634760825171225707917783871397565871392232926072750107554426354174637338201861811494342112581696818116450165746971621783008026904014235031720703169684611688605632427300627411764134134554264642716111810669061333565317019806791249625126258940691867582876573711811331374224935448570846334027374668993464076657262215532090481962686605643419837511554684724521168491643825973659602818332698178890170606059056873378984147167289515848036137843402136274675638365498223581978160573869583211816334650598695260286282281774038769173737291201131504420662861953754724527122064655492335456588437545007863108241922756401665550942618485362117212627383287256026565015755087541694346202946016554099660980288953560277805930909430193952414172525830655724401137189211110702971114876696732707494367317970209404505260382771424159463934144383592512084441957283868940773881406802255401885198472088055947237814282013976927031361857969348273419833248341209733964692773010871139423155530986837167174786166743993244169676827713503532412260701872000319537156461748060034065993945877229457726536168191998637773269230057839199108596395657274531874161086548526750083301971899178311957382948923251037981737539453439977389471414974263761624425002062499964955825562821122841947661792685288472820868261453217020887138510108336261622182128513510420521003553447476218250109518608833742514935166256075438906763066017044148557988459296039964918761565839084303202114735721055071285017950470753868624412250715178426237075202931076599103905244820013144042519036014247831919992500908798429878030393416141359343599375449322346296160388248981469151554179774839507552750101104970470435585618912641933017799494399329671921828129848494546553641335038388107966960415427924587685841870619627206845771763910677070484312465895147270269617362395692320849256965832039902160020664351242316632003344639619128153554417998562171532697665434264663844511168465769172938191445980226198963259641281491418870671694428760701565242875214019708190673316218609827197814418353448952471943926293166638758279669337542033161519506788791828581115029467913180553484891674721363138084411343290869725222985698653848078319663152334360424772507558521913136534339871877491694196475690801712026425348302942179923929940151977752063770947397258874302075939997966571108092733119309730043771448347337591719950920605452401039900378228156072470210389074737340998274450770834166311965405189036049932980499499696010716561811202980186147872754294853027311833939887415486364514240333015878548286837629272597249963138602272458634051856259323064383486009553785084012614665138962123060120007646745794231981881646196560654112545555562203348610019738350555551293537769203447877126576527056422197184704356157890706281416387982218336424978023820926520957384555704846761530643199870198629134088197762691835562861543164856873117206023845283033251778387949072344555539640869659698690987391865279707050550206754292375596045001499929311973396601716156234260136644058301580742191773639538991588895670799009046158281808444683147696199020263410055052124731662705050123543102585385560433507277339095109658121150664449761772347563709178674734031334388151288075707600411830434512538528360914108720792039134036769693522983474234641339469567262418638619112145390336621823505654645868629643536225916139301526110383163855684053458122897679955718133259748543198647276030417993545587256715794505239317108818328092987460435374220542879560135205446075411656395069397906512460681259387064969807710372159948530808247117815270698816617760198855642301033844222961463874806346410945365257730157890413641102760611608879209718261217705109334314504539989079916496456910016265848568010444090101713342756508982266140190212351606053211696380423115823515645192324979137544091761450272325681568748849608935235806409900031741171135722920415797327053694291676703140556083398249390895876273694886258590666421616269795089707691525530630620723270934959370958630729436888801308433982535237831118142131578554887912519870293894871797844370109854642189296682120894758816652287205477210122082973162953750480516788850825655755270909000893615451084389504931754626816222875788395198170049828430248720026965402696116853097960335206847508553652872699663729915262365811431352091255960262110884815742437676232385511657154326239679305876269273960918799345651273597063684397892131370826766298681993667145167254899767415759188434166110969286398669431732587511460297675068089591184264791068625510634327405570414161327503147327068641096863683801051919530509532447347995101347922664207341516574373071948117026654862164871714616873293718641898205199535390506513827125131761815073934460811660381146750871133574247506059768460160653475263856248661226127611236528820477964570455332372736331943073327875689735603187593202660052270605002828309183140448008429477601348001442104482033825360177268539974491849513493793762795696496676740568342497492572275803556482851912693120799807253339718188689648646038810682646943060097853505295286137261800334415307452094371903507065947857725383029596059223679072967761431789848929985413191893735855318452689572744411988963706925600084596928850075520159525836971819584071845848320073002993974525864231600497798376669638184438918521183541991653109716144720692857003802774244444935548709778700260515212509116920088687039569388309336712073149960371189615352173046868757346352015553810216843142270398931741263945144966956012262347162158774931910941965992596491182668545308780939093373151555874129696551365235077980538086346960103514288242157569790940102655802424521171704039145188672195090789867426475972934424045302873420319930589697363752739977111866685312948871270702239882306974143166602428859866995863777360212180075560249613906232139531346641153928949884369876591316774638385746507776444328564239198356745100822284368962951126123078907375741099209820201318644369422619760687342143379983343600091899466475877969570225839756471355839443598109623311861160325117522922103622856824067610415731499598620228270445117327017302376203203735842421221884534725216217626786250305617921905222845917321118608316727718982946120754301021377771343416548642001436378322191328712350128992763041583233605186151096407434997816375422554474028401326461840871035657976514025314579156966583022576910932126925845915143934190996750975719597645639546448130105793479442805603795053356512645105360427203831733457546612104158926050190467829062652272433444927042725340820642758678757556993780371551198437416676474225626831162036057588473181971389660707684333399423061679684340363006063641414178067831005045589428956194011096062575509366381389814148585220585075046887912923009707801306397445241551350314707459458278951636516956242375188699701555284318076511725725748859594279519487741121435432250609993747134300536804644827505023438020809906798367396732904438023848644074108889879972961615269008156206368450545879479949727952389116763161759040772929754723333474446859439628878878823659254462689634496894379738435890637548435778120953097159611622067557413029507678166444361544932647255567245005365928158795360084942880503601233321376512396738859452671620593967207726912037608037305782632897127255954270034571747602880737295560549604399874002595051599052993062264946879370501328942096835647684865486119299165620225771127657384886110737117264632945143792620542833526812783697409933748627602992544951129884220061691445839194983849553709839874118714145971337397969019160769697500823077956874998299018709637408235401087591527551523028580701711085491043719925708617179517793528636700020186857195359333469834319434027959686781713308571548111471085762293682005275629215787663120789845704731509790616646272571394458788214948262878794149710700697977815015617332688826560301498158821364499730052377978709134598244438346756693441301885696873809241905056391863902265014795433893869422713553814695047600168785816066604618570740284408108983014623918430729013958601212182109860940921446155999298617865199930844125724746279998328557738531512745720601019519471794934454757883990537127589101037959338275393895681166491902940524105518666573839068321003715560944383030747778869228278273200758693628335146117293338782270524803495426678320409316479893241450094931836679052673170991920396619491956958600059783648176493492252695014224664437176824937909673285846678043832179509671888936040092701952003947464223700163819703794051907562221454928384894158590849377935692361925036810872676157206117866056899774610909960754286687869464510851451378473092376284758718498486634714260939793793624344873606797654754603253081361695489444623150602222832514302205107338987877711112763693389657372540765551540119738635936061419475688819031377514479570112454203267010648084743376976294935133668601183355858989959025960148812155100804437282644813085476889923302832840668031347827933749108523144817782013578498023645255423966126635000018847069658878813718365466223756717915244503403823517823609616900084966201707748419617235112760009620395684411153167599934915526355164650472043392687961426345802917028011638523480563014932685451929626724368915764936506479103212522241248672556483002404560972878362024453936939784487726210877776797743374409962712055773000797607427404163219716934251245518840091405640831534829920958574151558532745726346294126615729915212518201928428548295982797663015609358828389094776288585590825082085697399045772219869602059729662374269321096995853519597587850072096838770567037875078233441982098218708492971270842164335916824575993033358026978451640980975839489503071798865405767149117532560876349533985392102149185604151825276824102088396037674836940842699587630086262087323128552973019740893862974880047279683260452506455374547102095584917330407308962707502376579953117382958118295191525225484800414927928932704110710686423863684877020985223136904228371461188940926620523184717633325607030160705684227338844578065594733285094154045451336765418610375111434563574888144877452173513321802679344907004919508230850172927042280394064336734511673207084848970533805610886754227074314774584682610344487841478966196422967517574915418552123222497264496985801957363894841768579763315167529350631938463015601960736929046706970570682266817661400674456530036942063047381490732829526130980533443594550102909188506702778693162166358549507944303351997964122025668575401491889876007428994137093398902932560676009607650735214051660724061673172307129070327828263974606853502941731695421923270725736809206260264012081299907483038362092555598458957948568529644884375083215226310558336813569542610452175934914965797872775711745604240830985198897435375583992518567785935550157174177083783351705363009497201297519302792421729124854835377766121287631687864729829484167886365372922723888776397229128659041790238039662350250393711247576635910397771256145975862743368813761375099422697699234519968506604684747779249589213995863448694677962434654863935295904046952926629669019043842593105451498000270357941841736786546742503623744171993494580109164756836707974287451906289519586205394949330845646147195215352956396631902255425926361897560791492283995241661778862203508736173861454664240568374641674858340418627001741606252462153672000837270480417104296129660173308633520859743550761232399760764062201818638989867054198151045033531589279149525010747938566169632835789136169898789124709572494487618928060280535186879374571234090295418665208462432384886979811740776478089686805455912743867022181968566689920894045301196739562158638557425290947881487279949548572303679421879307201288132225355235890887829422862298584616595521661434773890963133554564468015794447369373276656543053082978278382525787906997001195260938759823199949905254527718254212876729778476747627741984729317334616281570956780723779297969513301200857286428979719399238580236761592628389950662052443233386841735634545250777249207081038447340845863355011274673466023564487703467318034366743035617370864478831039903783545195634505440537166175780395289958836834340361626245158612313298231732796041711256766175359798385115382710318822943883929590102229415211766886161193411194488274150467838874814866683630800535794963587828044003399690083208428184486317054019060170923368578122211452672828625086755864171634469648513279981894613293880345822016722205794490112485640237125445035667960843198569275363507364170530143186027389940538232863905241184108793320079426786151955776647058124253193173272513064527946178294339329284892513805604431723584421405077507416455523577745838305038934946472346927851643739646198496951276789933502759119949918021606953473616393568447759472903284765392412431927476231566704819390412850108525656704460289144999275880029719399212904530532905008224574336928491628869372518534492824645685952322936866371076580356777465456674609979607803039350333200853163225535373391460157156526380167169406153693820830642309648087800813510679003145760460692882238529112712636089516678043514841757333063421885365916247422830690206123038684884290944127801744309314628360343213072093062055979402938678944139007651813983406168331519923963682841721313780955295459046645047586047701071038057310352313504980262485989401278431365382486669476524565484340635418243072558046608952852265028206435255577270321395805570176150823647559846216064204556120759972599342330157976729088338975375918146770227590704554613841730615554092874605232130365785274724135800266942831194536326086763215452573055096834367995960010199372693563931351170063137871710484164561259729735253731676053960297066626690978871083007369888189049122089398214968206822719309637679677358906487716140921306992715758607562486689796940954585155053602515972521747619140286633874895269948165400567634122738290552888027467051970147193879303194410356599732744446323992655649538198281687045467121100255231337800190967283472124833789602311977711940096067249104563126347704687477261061517577973120584296076570233081331137390814529618892826847975945558153359822203030910232447869170917583649470284607214134834607817727604170289203467848521653059182617070196739531217433927340562432958612322378781181772800598491081394318409559459329960903360628799379273961065554220777645866849548245828246745750818608466148200273128017058289048099407903701714399590614073079075518367129329184789641933959217227181291129981465908184391436749223490505290945133117901270229280761437135856836919792152038706357797555843937633161308068138256758862923030499893678711246142019205335450439450484532956675134837263770656111741589889535318936537564583289446040861810622980656043030397066792216757624338768131588135609428751455355250292614906691366564430835201437192036907051764055154929601113616962159671032226079502986760925026808230068947064897156289807208057497490924164696402321419439757878616307699577075064255503810556941016356409556073608155599041215668433779540736361737409642363023931477202372785667001887346872895916765242112489586320694629705884786135796539136553511782287443246318536509014957709338580351820127402542550736295421914644285050832970746732525566315824948424890777947041561315050706685863506160620614713029932656681539928458338200456585193319243875248372616953681870694452731462594045811999369176421275822242585118688877991411704040341109982087217660041765583762769819578871755124005862001937837796464453883847921922585194562152937804214820319163193677824200791953759007158294421419979260377158484191206731392523374620731905948852662299614694466046633823796497261027166669581459234563448961904290793735722604438022378628432929321106963095053428705858172778575975414724645453211619632943520257067173786587059964277122452872659374635659942253231830845683856861116938194473498030903052223862865937257443251216664438882995209326861369512476452556989810011900738151990838993024242601295298709361691714689188844507255959296912636239654464438016885384726108753525054735982477899654844221243394135509108820712493801705726059789195834371871128504785374885456248529395462919594447728030111833006921689509638691619754194574631014671337449874206194556702206593496948861142041016900043341649848544722030878547930954933290374011049183812675386330684564694636069466411227411247322180728021200752943948038859069779332054343074716064121678864982733044459709502854759385444574592504048691385017228523260398577496312236505097086472451477487287456246914002559822303769402052812390816406485966672578650707059498335838793154942521536462532023559794058357771551599677072526708112463076678255732723612544675916412787289242652520752017770455661887885850143976266702943671882918292323736440799463883493220029315443113913813722519999285317147937807903924832451746505277132305143143821108394218815714824974433750841114433130188029503309133709776973943835025762107547465175471110483404210013966230487788133021330974966168462619605579289498359178308910968751028909229081864407266644427154584698469569889697956203821460970329487878938306779551429693225382033980438384581568394759738403073691254789690043435421546861723138505534321457395577965538637670956893432865729134739578619677801614482243661987430140440150326233426588084304821991173074198630812566117394968299599712615210795837810635490000872457950184800982999308056067752706716961683513026399826863761615188441850907879629619722558671303559481848938850683536902728481007132627376031056452584668346610054523094635719578713018846429590821652638072752950879679533123828691160781467571358496606508101129229451330977309846458881038469617277959591025871743598870903011339703732892771760162681656948723222246641548734936131320764071349520525587080001992462763778551509764208432153576008093568161194812991581668395931897802843542173455522806899413246984875949649501770772284245354640544398453167237785612628595204730331831051268333867429435470983048013286553301816979609809017641406819580817872222956390790631884674025121262412460590396889817701146799279640032547285926951128338133597092013586344893089916977005041794268410519074402725620161365742062194214599213329270628567615240347882888269669656404041428420149217608827925477059326853085466390667049815588530276312265779393110585639079476198469114514568214273871832017758132264327166708445865495186978283925277306789351538536243123679732357205479548368035283929087391790218288666405308734045762246467523881414718840121611403981701202768202646751456692096049215236559627122070055325454378271545371336541519414527518087332739545842541205632088468298153895303140343397068604800514710201927671525283272094357817261152663317506091136477369561629273048396324838744706524252775775537794860281410021076763560745647789938172588639539265176076910067813761984605835871809917061384824318101638710907280551345952879321802916929235001219177600616078477957931611020873576268672404400097040435225038950688028053094700431120365044133880701713477637650430891474497031672283187955569428567660468146337942261183137861118513428066280049736532675302607843015773136409868123059145197046102984450411038052617424735177607491012031889134543775080171338611109937687736977855740552665028782058151144649741984122356630195996279687911072255334294669954320522246240661513052484414328768698720192932287110497083261332493249876508889596721116525027784678987502908751581039800637615905781411225477121034417167980922194308191397878411772722011027619009670921115740434101429372569640992199563380172516919555438297451146168491864427276558003041370742269072873394739596987111713961007527961827004996386919424209688110505795563389109764988314753651203114670801355648706999190017757662413305679648235791147041788984433864348227792879887178153182091045254912708320534123538160561588510571314861649490249397165752061387665622787357437105431037932141312085225712327201766475753432606664256263244506868457550981331967094400404008668243521485389105664096609567202158914192560952481134462285803204106995127370844654079193878431463324888111221140707637776749326184563924143274522059763713582888305351610767556845170973717045804487737413478175513868588663698816313445245248705456176916468247766538997069552571367535648958048794022566717865999703622391520886477977460982322232362271505978215561358230267511739171599658541998705475527756704667108882720276338635536761432551785137840747279248769867125292781559702424076785497974294864692166613675807373236237449926637719109696954449375203535284538184192307234682328867569937321176910095887796851232070046520090571193136464670654352596881953649329367007820009022975522215727793310525185952747051927604256957853921935101852030836440757108916286268932763778167067101629860388764485173421073667342655991411125757839800827474391024148739539643033263618009660108273356013656272430634383051722385211460625420437841180355988032648901210112567814514673454745174895006961857554961283942771192654605717502776855188656515871325756517573254905965524742653588408502940605822033743227395629881578684488736438284872837523226485821469650777028687513870291097928380099592461529696188866247150339298728327836220822953491877422770204257047584154201677980069766021018699708493812251133731601024435681727144460558081974631578373473452819385550402240082027856219013397051154741377889659842326169877914725556039432271321375057481724081880665259504160172197637675371372526084914116657040301173380150984655351748074843109371595020154180727614511827058031274494956858016318042329696619671083638877134902073134633002901238553914941854182497180072743683802160262924545627861602437932032011161582161135732950508584624302049923645523389409649292237036207829284071362292314124173409304984705465416433805617989331936734820805952290102588369451516829213144040425660013450516596290347603307036554884282303136430615128746196372625179610280584849793720550785164376079192077901775860542281083964976810116414965439474618883719163750893183230470958478854396042304035467593533168196224583730855919156441495292976511589067260292702329167972072849058134513391481842786369428293537610793913322332145902280291144940828554482154954665471300131883130488842072899931368164305058723415690033459155622155684032756316148628673694256616666875283616820839202020847548795171058018003901708863419947432002245256284047812053303425975705308208903904068685641892465111854879353952928296399263137342557257729128291686771233544008790680527082160254594148544637076370222117736076614090026499740019653056819632461917503249231345031856380760016859987397609898948467530873606701463906864166485215616180785986890356761631569635545218892999496719447161245054749364354645268201002486962897473200491638266159752182106608581196791398370573949732389957263983476576444273772606574339512360144940812888989809404173400836809754041715448293940647102180520631018034622272381437342293138201716469618566869335333754716675595089627499081259233103936649383683168353738489407654537239415246372258098090992665593203394656732835313196578335466337767521081895177466006705759606727975795437606055613495311706973753004107667822997614253644577182780976695320253868918112896403314063852030225490683106023898250551916136050259084254966780007898683968679479770098048565065712865659913529069785899246747503153618733606458697523213545398918234934380013228986189115596787970274085364035884523151826426408190373096301484119520513197326017683500453518034466195792503831454256267522266946095108287982543639399651677025143531803098755314656387068359894437980634533180999341889815762142276230657449252416314051882116196989576980501660510686989940722266326425725678918364946059022618445858804206427997601701129046993019697664275732408895586351154444737867726067058465342113194143271034760720580386943539795176805379238648242042440443911271735270542479454992681084222734903741947898571678657624114117232180183786933924999869669233841040805070969153177179229438744335155298990841023389988623951352341608875987895057213593480350195988107240512259205061757358511910396807037105900278929019940969425561601296005462342256868280786594626915075851825911554956042546017880994192374412238107756007706991481912489673259598842341481691872364975062807066298950679751698674703241485022282170721248936425215126737312830792640000250386337543192575146358298298701853815300985481436418328538680379278824460902881737438515601825437553322183294010046814076950240723311014359434697320257352074653545945488580992478738006774588671900781936852320530754057747425567800440638129246311512979457477404236745701080149660106852671550598608584357038709435681273091233743276848826890738208135523856314981931032000135132170048064276482662817712672281342860473285966424774180002586134267614128629287187949668215791682368770875326508501753887145516947349416883195910496590847164215080057935402627123255423861197005503187048578021247851380608316593014541841908777367812974529061703275302170313489901235388186909869878809553236723042617089729986860667077917700162478352179057706438673405311683400745685770252737477057249111087223982236711858868596234224617420301871615641722512861948964436143968342123798826424488590196574558033099497733016572971583620759932630550609574900060043216258411349391812880826059013477165386242446521227467140292614799957355673518737187260589703864989524942410582563512644504628807336132518794429780099428607583601561481885194238894227050358605463313063590279366565238276999179602901333129396134243948670685721948817061748562015270955494350596127151955650503465484104711150268388390608339477806396570332394191184183561782730706197939723331876586476637152551116486699426012897223591627453960446047017659129418609363102457338921360586317556845318194243120411058404666681686312466450263214634548707388277568890968865394874177921175540127084934363277786666627724494375482254961408743264470834359285873932334732109526340455366002591665330012770942433750774180921439018482148990680134756600236905417479320158316361533361591898856777249768282243238610508647888688885394653696813896372706509050163217435560010294056843181930746085434842466162993627210373089613626208886383801162421804229923472356432126769677683300085120887360055197974530723882768879313894451132282318834615913303688421103861987443471356081442164646964250532733869380515804433962134462947223248727631094769635120075723957863141263144491011884021518954936037492775561388889412789695205706897322930341374122138708862426267360798594797968905760007726401477973448458921567691503921100672521964389368936076036767839827303047979901024699057397502609529065316996641178202679545835549870561593444409840100468220336415425941591148372861019033474679144761312676983810357001610744762478396556608576781886132519586979366003979597032919046827961096652642162895761520686842283167876037897711041031559814305083535216225837171029501429853046386287868782225300650923120342840026571277189568716357382324598986538767656779104026040235895195179958964082926224743263184010546879126375463251460458605551307513514728875430254100935225518124748197791841147428462529508619846306260982881848249567552761721217216263848305973217521393867461262162816480032900055222685581042970334066019066811191525158798651313456879238796056635200716411484163926201370891178067282546690700388490623984461690092052354206268694017367205242714994013243764246409473481033254761646368582033813403571833837526641924242233169437010836874648724101623138896807333428893365427102834903427387100738578212140996741919050339218680302782498612624458198487815021954872254992880921465530714230845317565546377079574235408367756557408155043324551164524182201193966936602424556548523185624350356724525687536356657520661687639658317207913488904818638219240502842772038571508413658700041071258809034628580773470121884487762148086978366788539176358841746807038182008932890671485955572564201435726621169933429325297270905435046330206577194013404014052142705695298190317351542913198041021358573087246997974852912961083253956412730789668345778421055620333013480815905306529601559860549877628723277300307878205050239194762827815772213185753081422971439948925085519726963936080868463381166532088689693376849220041700737848449667393724479414866908176558842183442571975526557199244707983974241204692514504571136824285985834358090807438778877234625517386759915603143725529799458668336234425507896676207685316728537045292724943758236603611053020940702044594237209424411248709838168818282152142995343607699759389759750490914490386018250101200629553279590711886815362280583407010106251117277965105189645333259634309460906916470230493315477298353214647394008925975698074066241385147942969740455559376738777763817473227008021454108992142203219923309629810489475940828852893834563340586176292673673441864402647527112111368851940614944995160714609834776465566517427838514639209834907576146536518911911158953244221303664441157083001801744394068349247623236937909818657320618625791324843327827187119300011622972635393435461101925074916786490553395848056674238639303680006792927730130808620230271050540924256928051602443714790524118411002012492979466411902041561288999624149950955271223954933437521873731853792668570831097866355753584674688851715264257604987900007050066246800062496320600437891214120847006332610341636801290175860886622310920479889286095546839001101466872002840208218403488754859035446894543831516255512535347958886320170805593209841133256955765930771126521915877583785452686937985435097197103909458468491167536250466796162619731346288302244538910784082492897662376165640054740796109559335303605308853159325139068629954104538483818294807333838360791186446118676124219443647892275512502335194778559291820500455118340587240513311671190645205903569767748117607594883887754817763277467217218481076542687538755494761413045440088521146086491491684716958369980235548996474546135081042461276582188808437290500410891939069311366580429377638588249423314593230179683160162424359431214036386999770477085901419003873190743688566042694216643193840317152806577966546097026863629272914584930321607168660929031240671716464809020340788973166328633199574063276054420242075682852039470403561585761880752609701385525521451531916829137561214743692682279683243092699584536961171663277909045984748342295987689587844249436458139081896513087217830551420243219614121479343858642416346584188861470971132386502264399282056043710872742069149461585879208967637934874140053285646501968003933441736107790068328589664956633120694426050709077798632259291038519002696929276631662947080026100866862316842450236914749057777771280278382479722857465303223649513984716668216802705275566950417469595100869004172781282237797185902703722040809963755491003199651645357940453658947098179891912069348665183016099694949244861989668322852639975103499472116844441639917650139666586238616881519635963272825850582630609693415804810699911303225921831644907951472264215513960078620077364508528973647953790871998461932399810495575585110422145547398160539788267669579403616405101825503282315756784237397635465182541992280721587042541387986878145328291883651217710345819475419197956919904721397537234327599898314387603793488768406862261376690711787406004606439961926185774967983084066400299816194761233925841934298552347015414695836768675213841511479576064658639429617178842136066266942569238317530558118118523025160052129946042356681503070782672630873688573837086390445433041888035603731653579312285307020731801997122402789551234128778777742686525439124506282442568235555869807375598554698940120814004197919393169830931158228986428735463180222101075817266913088227548805366139805103218006247227566276013646341987764060816227531033094058134185822522525293821476704538731495536099878399562342025573449533152392728410973806628597446414117998893804772100777804292562157160950679346323045244876594573755933383875024228875159228804182061215261705857565132395889328034900007649248716945282166884192518360267029440627904999317266457921419289940670318069527904415545919216047758557535698027252242953035054609453338250940743121953194026086753093755628482207685116353384551246476189042404407789727692605763781327312734765076000649531465130051842765205235090924115815907723636997683211405319250521508011343581528564990937598612187223964469925489012046102410341381600231735687307624882025974450733614033949940674923600398114519709217539992647129609579811706965661669929594854950180895924142849237577429482615119807843009827436598772396942046394386299257883393787947251051372207591098108484679800835113408135817704219004378867746493097318572192061588279113444464012809608315397281113605757407739307523126018660852895416488345703313002822899235052031733430091331196188907669395509492838799146346548922129832689245054794858697362410275898168444707803363338872587632758008425460209976360739806359244060228853627703961706602123164019537902929920239705994831266129985100019431890002883581882648193820058386547946659347500098179859900830967810586706763621502840342988774255116283674699754672408695912846092280906442633410080642407317928308288115143134805033454572932933028744662849066236249462935210175478136901400283872513626369014892998658909440180666568220777676912530403327215345251538782268168038484995749220505405429649145095121987612047553984678109823804730597652959351117951037329555390833160770257620631259010116325244457029149281908924784015329388955181527292914172497103506063476726007699086420442013273870526390084632984774178969732227236804515408463437145023811059453441731808621148675659429605444318711494268781693364526108228824151217957392687112579269125012991240021572471214160942804301479819082946025203832946681688798844298871492686311752958636201998626816575030997320521397757586002687937318753322793549860332054520383214474132526293359165197007816572938871646458940791796307666609679359332143815056723168960871983226087871131490067056547176186473658202388912683898249614002350849436814548782045675594024763493570545495854953618303750583150427760930653645747034904052276042691733414902078940070586566373263582789575964242841177636481528047480998442331319427035667703910344120664225324236235749257754793341494098121153234117061184896134796556763223712361318714839698744016554112798724610247524690260173399550386873267194620661999550114108693026496187759069150804233375029208604923372394567256537770055243549245279488817475955618998491454351477801750795318790650664583491247447587641237963638136353276313619110444793833139059433057779601116357315930856574743178632359673827221526965549510646756699858099983674227728342130783606125204357792417899563609755259061357166707440905664889465413783050716574901951239257077183117927601630071941029500009696217732482208465096011055721371281292614871809880887266660117374431659699256668975504667518254518167878951479369410871489875308789565017390057815348956047560467737220211567165113597712954873939439243196775185866192554625415503332982901856088237816739452117565221431353861105950264406083807661280860920155898949643587473613620185383341607830080300517998813728974607186185595302972496024535181965453566068513994115962900019432460645556350954664142097425201781961765732184445840805565335015067296571866259036994358828422234765177748377177599381839245904883597844119803813937995467414288235699927432939130059114099331557018849902068856480813174645952601733176651369142139271427491033822019388257836088827243602674420272871787924792546708040759405194495798178692087402823494512835120756921770977676565670353780846704650343596483383481016518255160335272459190832891844038069563344823986361847369494364280117154172969009466691658684740790992495946314105014212439799073651484650566752260969739198757493066818101892143887868645038398441825906183771926706264616293621545981099002992246439314752227320181086156172031115819041067623300684766053606594196770182010038640699411095398566555531148963645591703810776231389726711049929838908094406618892492294859878809646175469665988448741986498166957650266611725911582962251463657503848064592741494703712418707944246532722135974319505838018750477521810884829182046779405284693853867131094055039608491134877204080029015548552290796804347423836984831745960654183739058400370827166469971736460837637305358588315398694540189249012988786076278853513413489671741633348347476101578992083134722432933903950366645561459088019119775023354658834231043603534902059225529059119650872771228953763396502491707766706464769680607318355869851183954387280745979701330902439753313924248273400201946367898548132981563489503785006744875228887289654694333591256988939523199197085377684451601935517712541967067294609982617060727518545193664433398074382641414836766944619025297998691625281954578504682502182436564432361036267628449814127687303970558582019218024881417543012530167886066050023156044732025378873885746092811302474781119406801657807245558839432526793572644979798762931888061240624775311221713037079180331692704804913963043154195778557823715447621032080742046273079121067186556995581627578102965467347706018460696554407924919153707964560991680427578680364921484716836365991681682499607821028103971069784772753470088090337956037920240258207633693042605935532119492829639610747647519761601402820763167898066921239494172023976502512340881047002358717382637253044881776177309669857878701216079397457487207939208820780903528505279535475398993913558441494143339714699859372421061675868753522408289240701119938453702359416003670678228364423049363943128636859905563122774275757354832430422995241779651024801049109435160964912482995802792758377610792627323432696261036580264609914542573387508659743540171984470727351661237140131757674603847169531460591131437908974601934155045844378940901504164300436080306779396381467734805880046983320183769132561754708407833841422197849061625205310595821800124350133259071685500864385463688103031793674628298176177651323452474244616042677108912655740075548203549383396967065761827100751748275519579589097243220098763771502756519159580888423994699280532168670958549600225920125132792246117874218003989165432817142112827240041091532224968213542747635332447006611801140552137628049100357609072313235812312793126565119184241990145105337028445910439039636133187131945741032508826582680518317582075763936661415272215395440039979381854681555908956855330572859684347265141084509573256023606420424079319213883254553465572789728992620407311654552206351719750643068174929325635179472876576723013859331996781713229851059115212106479579658043626005757693219142590737695145587218089600980180361609031884939425764458793235999771465478264704428057602232152729566220442916111710912041008470810099749705298432998376687265955471570300267745532588232404343228288057128785841508086861675497066966570020407603388132623027445720468802434193832556824744815318934974330877909943327243073758503705419064888410418007740628499425854996463330654790790640583390291951237917007224151173771562167482115653916566360077248892261219388678577261511913007017864431204754423398059289155939919630267513078165396953680568017656077551092517734615106210809645552666640141044975934802325140085456694564216589492844257659182828089191632797527537080598027326499055028460764910311664255321829467993875983234707904406924060259795380440655152465847055062608146058437818738610787604322915176132542207553497976377731344744566590424047439224774428056932823228432139785912521174412860701640984202967873026367239652239014224296151811583334151485434725407460582745359164484616796977823868202003074285195626885581958649514187549798716290396154654345742847362302441301337623448455270320974813588969374888017198079350420496049936057553223207125216001563914700040649072184071452503364244564189236735487725109445087536538605020735595923473011356731124160056307375782363690312492804979238659068333082062502053324653872900019498800560373641798149862765999187224860939143822056434405069492269425460199455795668194299707660603022333361428042358246674092131660679448563693273914610981127988123563541326771544560155766233356850995178589238302670603258631265154853096878612447645362532173797742627427399826162529961678515719601111369770287856580168314149419922086957079997520074320550327579173201053820672659724839550543513442236385446163284079763146736219226681381732455501353704936187062997205115525718899776419573838729171850853266725507420744129051700565668919131470339072317483602735255147019611381982665812114526093455043369571678321840902089722465429874773354665889874509519766058173507361981149976004387957232797391446650760959055938437000871142841687523986277989056735286895894205901568631070704481088166928237556792612309875377955753661214316124521696981734855495401017581657680140499322807877398316989132575042470367044941097012015782760571211240765055558151927505457397091501575799501993988670475647790383985076318713321431116511111120649644560609597577224916650226862170543740852642054472784680644307074706942389408847028012894111087636520625843489649095173220365108381444625883237077094610164910076799137091863027459561847818520795797548700875484613038271054413310596483093398461122928689467935433905779021088223981557262434476906295198299931629471629538772075844516936266525685111008664956504362895878025663415980368631654743753327658228657948666371282079256783489700694710722580432453874545550371311042360588064526891679952151037270446804383193912599518517971652330241319468230594667710625951336113374768919176475599671740203354398685677807213247499634105226935734344561481489709289305171820726853967779383353137490274474881697930630871292792177185463278473073109548625407496545773068392890011397413896202986197110962853522200463849840089200332814555367430857851059051521601155224635601816622111451060443847779172288494420764434778843523067646195769864367933713328165893007326389676413566401909693057419156241308431865481881169947165768219975003407369620294549769382503882353394862879798588956930356804249976828755229280132264847069842048387960854475871656054124486169957706745904345166597989310850361195725310409593170919599349292050629030498184223561170569636096530788467691382011032863250836912859051416535689514022900824150202925642022447261407575956129160960927815545919243295542552036492221682432749257053992859670336683913824563493529704064331549640787767700996083673572782315408984786222195945730245854387508238616161347537543620680745839028166752447656539942655339131992661378463814429460751216261738267414025186434097034888534424464114732483455490237933228406857435731593854369183275300657830039770433059690800327562095975670017707677539810054195771976597392917591836423471659163472635020268551263035533202757096067141902188537293782344224551033085733209104784792187834836381780578300492969568091830724556897278378033615026982739665756286982545731670417478750631678391222128643901227005022194960464275870125839488668777554813236626477637016283312835858752181866650173838065351377308486184542278161669494220257974132108696252560134628352029402841704910543339950818855377456103796715831322641215248597829174095688376817759356357492287460183891678275655779835125966028868969613571058058117517156241657196043485100878682054151536381006767475897306427181144282654415008234270168355890435432477324591967952585436831758274966478346589540326769300154384948378322517345938425656980601273480156814707268737919018191577732887850081613990340698787531000067760930374905944882246742425456937275744596832370062067976961239877202864496898030426064841620470464420418663383600641347921322758783489668307228010225938803698265362849797760918489398270929689854786061945927240600340031252771736515377152753810519178141899277945954046684290342184566404966537446293838905577408376110525550990120223569455516420542130279892088116359442179182587105640869059687728767537174125729903478434680504655342099521205668995782381139617539933286564355500540228855188324704309499192527017532140514461419116488174213063536167666828624275110296034732972621257761538070181677909283216762818877453785183297529779203803335928364736580509378957790651599116111120892539401774523622599798874894156869609495130252375833736485491473861945273437556124587838576308488371601244792178258503163207910146377964252816623525863314033826052666432122775772345822128330783154941755498549777601068843174145466092133146088900415925907509598188980197093150394792327857701958569843135584407847465764334466644727343733059169662666591415355700814094382701080622671775430093366701625433516229559809374639369244561181960625791186032136151511559531470605855012659775307694321876515428824370788171834528535329056881756176451365192494444363988191024453032838189655501914081180223590914997555864071448743139836197278073658971748324001718235792613546814237116240592771399163825027111520916522850768705704140377440941804713844423599681354551988134703278156519520919372328788150234758697735223122534000240908296225637979495749871096128533815452214962922288330963361057907159307015406005891014075252079034416960304951370286507822834515734612154807253870745528741987081497151876594015623227045867525661184241868981639577177028180856711245251906829978971933000759324450767951098012195819358790275979224006805286111767792882807197290736774531247157943511856346873176031548912411375365704336505293566789062701062535160433247500306151881155276109198340149034107051815073208856045147862908944598215419614131902774092936826502408301301445153626123292248157057812330849484585603269643900443103937769838235591106504499197494269438634062687065345311183546489984061473789710630852054209390713492007720770907550087799097140761986559089829480868788314925915234127839143154271249671344540700156898791487163831815677194544860278292173524864742370134548392296462335772831363118176155625393657088415627271774831433931343774681675695520083571884072198838460019168937278355788120353516381416734112509464715707970065708849127331629018491781246546027334294399674374760765028045641751492866810867560837429751483499598300715149385747757089444950506146153995478441909770601824645852643893772425156563820119409535603279629507497845494962610927525191989230361541516716204927627236226307448750870259656816981518332082349704068774558934132197434490695169376859313064649435575363897232380664694204026870277389478471635251204970005628299502563467221532258537756938375415298459400979284104764988190450350439053174944604909484749561828091324321442494705263663121942358111476479807073849771343155781285269981477152481463992488449239503976624843706225954235454367006033262359467708117671949334553862468021610832543498395119880055012597822983466117005763412517949253520108092245523443594583001940095395164707154384553684682778310772866298803795386795640725675394782819154961448153543379761669208307324338938949931655550623274956207892050134940779592268137086418337021598358136104512478954946701995267584546547802450033000053655221104371446994520089980683527669255951690946134516709930981600591244334999487265787607301604356104612944746757040857857195324527314251656778804913332171981926480372513755896226237616319834404616852167695287739051962609964511884320224656061309476121192728136464475375880430940202102676462182548234617507182626596179766117909553467769311324893652306332702749765258611774928032013911039340120551870952558873643119575497520518560641135278680239864544076597984491090118906731271210235598276448271716813676414159332385375039335256121199917482466115572228224596688913336367329355633602365618798360456726523928164187706583711186494919214620618838387542716658298158914042450368917130672415770769765100402719405143521306503588292053548475388426066325268852516061146719239168003673754769501963508058206793531206899477879110220732367899349331676064936463615246971059649348452154346075680073436755523088076002466674954995657271713697183803827944050225425607558680156630610214702188327078912331390329534069769951874533035778082671453232461289883320877346314424884121372419751353456452414131020701057001956851144845718812192439650242219584808917112414372552009560144531325470271513058384636538593074126755158240930383497916774389542438504828171395125116822603278291809269669632465117906064643378566792313926158126992125538155618606546099225059112181901076144369016764190642639541394529866330548529306322296880419939370369733662697286466897050888773613155262863213835418006706510967565339667324791192203918871294553068424272745509793864916920931671714628624695621443305818739185461996970825637572762146822703153793312130510940198971190886971514230667652720260762458067367483965283773879180029699915341595339984838669523234112712468396447084622838054685688733258962233566862463930045013201156666417507432366550719200404006727598922491889880365037926731650305275409637381807292024840152852622712492729246813615706657873538339300823109663052120049009549518840919642916525824904803608978937535942251824571044350957027920181936259179096256385838988879901493624926648972287771469852014333237979143358574052652731401860823748223004532344929973635267722640235538878717793981835413263927658051812623952292298795607576650092350709486555707587939139619310694846238302557520164651757853764531222932178949982564545971120855379208591238159594486734923015564351010926016246403584955380372142486417315813513725280720370634475484525225464553174734804935192692142996488614182626503598600944131872496810864176398383005817609756511887037267545914484855534531837745028957755865297375977875213628810990508447638022316393300169899301390436934635700219606583995546290254743152529412563189334871900170027255996465076110293036711176058985845052236767045281994956804548952085939636275098653677397728560642333924967713295284083259479130186335237266588230251674736175407398878749221678802275134751847263189263012529113589959413434470005002816148633496528165607632709196131106809209686684986691913582663043896168557575187777305013156618599395089718100260010649724415437213767447612235894459707216920428370182738912255434073652843756722797027284948544594769387861949343001277877371691425107726207924095932850747523352247256384437519531797719344631871106300231880147502283378089782463806228959717506951623140908064999718107702866129651014557720768912262378378242843751636908468920783262135929106545309742776065700415751801835948966318525798321102310787483031279394085895572860950984857680406738688238261859039505136028244450362078573604952011756622442997285977622057551355771492612122149787268072993557306105390316335509295261275100104952102843048955196638864446588003668856918241789978268297419405907414877242194597442964350887275081088724316233652565360799258568927127041849942969558565626998900254839236183404433789006353805101654527990192591701685980705716201458770552555851780030816361638773106101225572996063163278089331889568566117037480741800381411046702420940632221542484045381373824484517796105942776957587349513688370278615269147304452716420373791676450376554516815913551940905467383264942382398999589828863145018217190046483200170511650611446055225269317212959232287689600465285878427768578453231094007087981086627468909791328506026795745246178134343650211324421652757423561258548185869096621334408556348163362006217056255006695406863908987411674852195392732513421673537314143863646281991617375240491424745102685310199244255221070675014972562491630700086330886688848198665057327711569659089546013190730086423479513616133773594487231719991107894805487155371501477542710506698849583074513406359926379302574696162055420888754474027172924650238627908884417978160761033077408754774345806866953970355315376925070097292187076355182177603907943932877198489552186744566487921849753437574415754210749264151973055703490256832346523534871599920276432154346451054127401022420987775718867463792638130454938345117069229673624806685193380883401265562873610070465040842708873215682459426160951292724455738957191264775346876376825089395650185781727693778996058736375817623954398499940949143976332772654707033168258837233429391622541044831421077245012213948071198736629660175177637641353093529244998860800258146042478264265492703422233903181016296827010163281310973815787240372364483416895699908719312398677097873692824456767335976343778670416563511912632809025776653572331905359290944876493283896680181271778156208321150634471753643366108834109817090367207354911059012518138905438247850615113786939426909214681415832147851217858236252555342358421731121146713971816915815464597374907783154698710980136835571907375392004415416311474408941826040781636979945795026644633738593483211754805016710953529574528582255173509204670443853014404594699944206104788858188865009833108586743764455280654335687636033969095273810289468511949079439584874129635974201526892428830681405168721144796280167385584690613422740544134389601841077555671998718998400931003160358643410344728016874694567919542827120397587034894643130138061445680070664777894489823280803855060821081256229341910465940811862086230204662652666371252152584835276416409880811191894380558665036779429544901198865082233847852205996824875230162307668106136506664298817111297386933005863253513110703338888971955628532220216056066046495752091060511532063658145915353752566851801795517252465146914801125578080923331010993556415757682977272561326365159607437170667643176837995749472229043125806595137663265994343045009505307959606800055556363301486387049096933176767373079841982578073166620146100544686650737587266363949470822761341713544382735909446109377452967335593246321083863888676091918429968471359407416546686484416221958830874339463519028919000690305601364620560157850481781111310745519833803959426806828917606873031770380326644525054458143800130334421552931008291179486545208877680163937027841399022895872816521447595713782799358574678903554853022792692910674616545438294252639490149907261065006365291993251323235897144194779796504103387228888462953833911975003246474587680122206871189782741939752190863582450668674006752090356368548035029614795087381389592697877638093118540711497747752552580488054950472386560714674210241771003794574882352033668985477220214148290008365499436696492193117399859883477341249945506259615327363550952622149400325035451207021853586549053766945966687403464186731240009459045236205716849899352155810938498035851766456662264583309915638636367637196472893244406532420695231467759883015348117369691129104006103773984877616611583113936879445550069906093471127840322974952730842294517486826367593270094110110789707962102213782202934723239312224751755661974768681151805024707835342554335716547906872860342474238148728070450555426081151443998165527322163414439050023470193708576424376452903069769432261796262661045180052661782574271962183136252832890999595740936790565183004470088518564181110740991261788743356375447675021766421202465891600398915249063106850797311112783438222913637491170040581725345915871835285672384013318040981091888151961980106972501306081841917293403803994565146938699079371180718873994682009886748153539133826737210505598695755049579650737766596521095707502673330370307129403042880463474784365719797818947017588845005166873166054354700532413093619573744731081886206047390287404618978173683387454090730649212409005629127770837784085881050434690817734382101082418608315783281414891602881286882324991114968328857034584546564771018547354005733630570342560159709462495474790417327792292330140082933577900647773283069022572997639616629937134288618741040901002709819195620463103961751280437052125900528319585991261110959679719091869597582637221700690885598411088222815673021573612530810631407678051944594322634606955182570673992413294122409953259950321234869689067440170833428471142710636359701593556631197083332763306001760374282420007110951002075881171934874276856968902048432985922238780574464622106037152843715618980797725681345378663269529235709933058121152028837692099491452829827161017660144973523636495850407183293816893437864123383493743786220762566189573044927929920887703717083531247162816938185749072352722596711400808581449501356267069605016779370273985204312297849301020150767248476262843178754183565097488766432540526522830471934522293113554594852732947258388379774933833989632859464586428898821566033875643351421963835125584840891152772200795109834474996721681732138869602981084979810979956451363680864971810819361352722484028938511829105258562324011003537951915540827131513856134663844762345601215095292703389342774959362730417260660271840954951543104271429257338133287043900003280063271691028205905094680544111543840290563125506996551387047378702717054916111410697736520615014299261667827582927109563838642896149136564176988688986583160719300471949167085430709495664821057058480488320658235669836291540625640060687452429844608998917211661922163429069197856812385537136396719663116688208435649629878405598250819215204939343261691666889932341108384526464655180424343072264038378655998444542421754323987854973057361288593326251043492422105654779063017951224148607639846859177967213143309133927937976459023807987791291764943673685057661075402660452868984773763511772883877948648848564383193135173272690949612949812618562590203603772366759278440023281929667421246751902886414072133541282589478646371442446557086510136098354376512509025269962365804295302642891273829082654230855643757136682040321403321821204425372961281000739480774397920211903516889598833088192543642260860031076266578356738096019074573821491474575341156571488287957214592190861102055040527849234195867058897176934149847813529232013147239327750059066173123697833013557459356064813401171734078618731059221411781532119053614325544424094899735960449775171027367170540866385654325299976543629377185997506143373049581901290350096357120406066544510743444551256669671909196666817311143254239061547000872057864182758885710044108798339103670855686471460830732648019024515820139425965440212934968633801078599771674381516080596936043038864082285319066809849267067157784144024351625296391636654493137607526688437829166584909322869229586979890606669883680847549645639984372923857123533008916939857575992988404233346049035381790268288822231429050857576815484994311878481302344358132006139256697143479371286837472488308504902120848062615306519045674846468832132497319814686188455281190289161190845211459040933609547744031979654059507146504550165288027618395168844727605683712811749837915182281819603509541661510155302066377708355245305681871371395327022669854167075755526448212176040264518441989143364334798842856040469120782722932427273254120656545918342661606426864812729631902709647875014635698525050025137057063494570942603976362160036477462463523598006914057558927100571268387079339111744540939472784346945074957263227224203496981633987142163930381569039822557154662845446124269981902531976218513109269616550664659833842709630172125652304440439249865887485110879913497780085990700050330887950705235529347271127593139522074865010435640183289636196199132325865531126718892049261885478272360901471587723324779220785095104231464358455125829914428560708759476522222440651600091806236018191394040344233368497799981919874859573242472860458288511976332469325944772109991199358882084449548588460715024920171899625076963130464244991482574145954145920056856211614758058020655098547164169198023936132292013235173019261646447971135880706259460336128129073667909746853134006320070905356679894409538921012062309193420204388516828568943476597566008037057105588886259527937435859183571877579458693449837872733688565798402539345768028342371654281512240443764846488655846456201075160157972152567732367949307050747848621615438406644237639362257870279601984134545971573755906960827304877135124338432927966435709352438288496325888314007402696463600763383467116107316373470066939345797757000224397700744301122895227719260320526025030411724712712286262864406751951901175463122867271073469706954216800245035401399039365125920207409569988831796692046906592731462425575591122138772034929205471333016430381782105560666573363781294187787945007617861841975094860639914166130568760096518108044413829053913712853438678387360313326810408733580299612932606882338807484689589314025987751803112297018326455228905217120436875403394396592800032696461017041233379918627924712660145955834369038687571804410520039915258503497009621381503634642341435785652706144673591352930690822411886126983720686877819706613223308989935536628081524537064226888553961164410579188768174828263533644289382840337061728762298422011241152404845246942195677516468544377283724532811447563290032446773735888133264475215725727535990566280089167190705486807599474271750285393706533519439708504847332571581592495625153546207756300829170479728851901806932589035998428315293639829263115796570270625531277099964732783561757896876715242977381054689728055629748616373270159095572538088139432959029145799661649074587043190933074303526990536251297235622468904319902291576202378190579423918673577191530653350806037605287695944450811237269392495024721005865284367503168520519633436431144889830008860361125349791409072440543442252747285906638051879476649615133297648465282690854122113281229219205999922863643652907004507396156835994375016993194395499364073682099275669841086858887800990952583542687338010081533532929974225958303790330634033313254723695589481451481527848168536366906833751859321390221150027774290543686951505374438127229395179637531009985568965732973428825992239622521078456390445260988286136727840746034216044043110354666412511731842747249936439483626535829768768931966045914444326798785390431030818472077102311944035278982723222429471789393743232476508150565618398763141238183062280988568117999668261663286235919052134589667924987642708462593006724784447296405107414316043630808681444461040140147858173050599960592409765399332840862592287262958042723156206346865314677638492632232677012065743306154172440477583658118928429912191292762533025693398210460395736792150313824490897889420221940142954167202191707985345491504077770125675312765711237024964817353068614458339306298480897116573579514764488729216984852687088696135173726109249494346054908166903789576476293285463332096416216472720496123835518010515569565297816477979813844459301075675989845143145678125114647901975513404795191295714525226852218102237763007844415997155521732575937080407553213791091057597075719512009336544981318202600062576838936424044952265884470747669876955970107661615319257308263682993834828938168830703167393069299477545139134589198756393943495990607890460809001059126814607533074576775016551234946366369888818501156557083810075161192924725179631911771175814864699666830432012313754526815760588789083202617097206693477155425436258363973725277106396898582141779291214774537037787149547800386856932626017259168214512398116634975672622321424116565432967656234553358955405911184806077349223935868448108049359060413126345407190741714080639271263673492912758478631586539938832562212654398212036747906645856310984199813033631418857358864202365247605077606678013928562315730751137773643301759093605243886926719152284211705471448215489599715742824737635305283085787857081167492440080026588236645679060618830846407732534655586780376591000285893197577417335909493214263610138603865266145354656750756422917613133325189192210476950225101250517454373565916986778428537493041187857266322247266458359622961842192921144776350607739091345546937241902340249429759173720586090676901940540287051733481596806068317171148175744702080423239065277946878860146285479648603372984762807842075953831016182227917590274851770884361841112923790027235601708587034049730169430990223654237953096632990005784210151313284798871121016365700323561697954066849831376920087448838675920754382536495899607353199245872010526054971425060793623516147170342402472941368514868431164641557458354183370411702013927955526919357094942628885962732768898615589682069054807629365492459019546225343638911537266744851133930274280038584514177940697077173052595615063144151699145795722071280467151979898194307121231567812467307257529277805230196148428805888931383586353662189366969148286557601908432289254121168996205744359948270242698243648916014993845341376620122291584790884398788450715903832701044706507122918350021184762852524734244542476203988511228055212704696835616378795286174821593899435916632940561341561562092237774790763050554198021339527759255789821831028169561893453529985218921803103642400099572757922520625219675505213359864135836186142286946192041024891762945409034879756564247840875160899564629699498878581418469042463534392531742328052030394442408360982905292401032130454930562257922571886517120870853801577192688234967409495882810771921424806140602507816165828516537157969258788727857171516151680863519006796506006243953691997316004933055079866560034103318137549051620232271922775145795929413915823497139073650273658686540031492810874702572135753173185467261913108652268785816533402075535215958466959879193876949213319974921323374789551712321355987295578509640593926874736999272380655360395142224166870020833597501040289779126947183836800504392591511302673287068657943818823063472004475200977915867288231748093649932540514077061327093558837802725889790014384870088532027173170278527358551715903921673083830439894139726278196106895226191400429322570187433052123335599742762981709877106410340421487514914079012867926037351714888454335228806760827984295642275546085082726598224379238153379301529714728254412975186662966749822727186010471391417096880492680612341485785034853636284609501428474670740955883231638474856754782158117904750936750823903149287555787276427505269892599693593833029969526828219841064903349699713250935971431436183445266689116163871218305942586027195600737935856226671212165125482067893094577946659240892144717230061097420953782690782560326996588158545683703094293364068880613826000166656197253273631558106500600362517414436362378777182998777055156078167170554389711413657368436777726672580330286168724340705224829531051543869727872592312654804848153329098184251631231160517866831569320775453275201237454043272998157806932786597878213838149962841768774410062148881391156188295360142507544052898364887429228669988681999129229656983791781458396045398690900302495410195158319494447596449268755340388263275346068616826739593026628720659898352878552754086937935665861475040038272015009895027547784593782208042322510363913148514188348096072666221039249114115602000305551777117253341944859799727838279502559526982821864614529168221660505554072627163359273966904798695820953999022406688686721600578854181778663901144970755420251526932256112442544707933220644848373130086358896917035725594477176581515742833078894181516649455497177931327117777608523011948367057162379228788075281975124331863731563882453090213740919470078844377946064955734588480261448960241858735283731975143983772243868574822474592559831475027064608946292266203385352349676375332781082723617977956461020453938652264056052015336961854582969768504192247868249418310900226436573831574618340556457008672572257246820281929041664482664327562746908763992688606697452630042532078577589072733097634591420273773233317323703319269625187649796205565749432396656817299507203002575701246679804151935885364621690928365135345146642195864126942293581916691075158664945562367344711653776908277277073576023202834350687667706461606023909857628505701483298533797655181977681770922759926735516198055701141834034043810726467650474232312824058862332152093334065003550519968934023712773455557698755380598221676052694048085239231204583110646038757839851061138676793913905528872802136691773476568554401467977903765355316147828565716376192459480873845649160458998659381316684764286848303039860284462438404450407241090185423223626405238487543881689175404603590608016086632978005707407097076470738634738296441891086161640747748857210337185611278455070566951937124164055795224509730866581259429178158676610745970026286641639646508135447037090465117511455295091679985843400898174555509695459307917675881390358810302540192418756252243958770490394644286232032778550615690417828696566798042529333619248578394330624634735028044041557613446358792290763181211345003085664791931135916924858998060753142974850559810572232436748498499576815235496622523165937866682249816973780501658308243237762857622427859905919574842221911136913173337217665822949347413399558590799768201192359381334471726219810850251115355529598268226673374111199777854628578903755864819852973926184849745907822450809927858535709895893206205773173684469256215458366188446248326108098383267516398074437866008451079137964299935480718041840257591257391831858352262161649707757967314329692377303212196333338881833677857239356659115257814571224416407241456934870878758457775451335946359984095015543405308398543034864137660665494125861990305963304647664181950322759269617358511628309483008395177996379657007782554591117227464007344460256292261827064255357328837280603537956685842724119386742046091291554503802649670353882013219257243312423650982361016047099614953287051328613294177887851175325118046650407836769318764216355126626419182677957767475547316759022301844768326984540919547635800949087778799366641911726798075343837079945152431060715814286239658122817087537615105540891577562299616776668881123468782791999493275208178645256511738916917591433228693790989478703255838173454006468506886876616680994251777463562508699219674666216926537822474834818500655735125566657985343434018466512780448668849442147787198169736455753491996532591388451123689509139402791681373240523718316788429648474810996858927464827517058872025662147274864482916398277420620872791512150539267894256550556782985290271067283671296308518209430409494615163324772174867316155902811354560965147493907330032222445176218757042442019793430793130867423031771884046279961603179545388306492066850952530424096457329954146408366687965092440164879373317757905114524660821601249162968455619984087946206016496854514170870460121602953993350789121926062807163683742021058275639842771004756557167757083263899747361721969315366379538328889038304987615649201843531036608513098518533147654636262638194375664027206297332959732702646984628383642703618827689168433991728122222573144569509584560933975954034035478291534202147291083863180417604980751926184752886192081035695440157635266912189765736630962485688441211845887288660181340979006256350379424917741915367636419300576624301950014184847381078691511905149736046230446329765810458121312765481101078097520317799167832740734543901733442951393931789295932636974248932697821958107577977198365525586225606072326320215722067119650064224960896391197913506315438183112159636657656928572251112185788588294132936240422636198357005650279175601114059259358862632873664885250421038281773782012340899070027223827718077775081542498671167663024511817189236047197386220944372272364151497896134789415832625416279715518630393582761443439616544232446556853114269899038858227396078691973746198725379891615206815612999032368233399740372079633003735951861279559251680670120062565181651499963798741675337887561605496513176166295513764252035190768442690995073848622807151581972318050684373514301383051658803806778354999176012508005761376782630141239229126893339381738371855833823950781863243514943887473312060459291412936865607274293433467749607034190123381476504064272305152820758071684392826410350474883822222050090439476688886513127662320591375439409098996247438926059143149494937401007178844746228142941784657992654604643613866329412037087246792161016209051705494473682090143070538444790320639548797330421258506816285554604663742523878857147763293748689596974452347288982047240223157876461858598629843795001802528753797660586417633948864779860405608122609275301814674185082431919664044609747352042763710930171228401443039016924023573398130460596624378701021589122458881614524638968727107440565426222326872496174080666015469713314696663655957477555502648603713834432574725817209666918594574652202198514658966222937269801465673746525443736050152982563269670527450617399257090163729771186437126574547214292855570306551608153430989717465607953136667335560812656381573464348112217993179038178300991660967858701626200156107666476925987964350458376406999606047847666966769409747893670484085681692176474341790608528360946091813635730967667287787891048477527435052515795474493654864662576898751316681671929056643867981111004818650402658024428607491480857084386721396306878298466046738855689223566801058103334494155956532443928266729370847551394895588446525723767975929847269943745677474631554674411169298886206269807235551668108430165004973700857094482553465364095983685763985862685086956547919203805625357144165793343007556622673868223591498540183372109038300925085581745777841644432389770079447514185556768602253413171922716167629587962107482604460847579163059503375134934636001184565152147259177615239885269974264802627778185085072469996037118075511324778314476878232905130914031570801301890647341247401048684253172101702275359192748745917726525138179028220443209630395106872156767853499516448753549998019395790582780557990543677273805811051882768782278076488437288412457500441865415298954184920353257075113956609448472739908373083129985604151821278795021894222775166480173799940763933008893861280013907944247614518411849270198774916577701161797205937855250761219941234522849295072227775139908515809866266186865684721156410318964940499527878384697201865396360017389655075244948668217334402362272376700917970910836933938599683403904430123953940955023452265340107450300706233937304411025313152162826046916377189363757562014236399307194724969963985231745312325445700359785753695768071205781324528215969418741564801789446595356816792239729143994058941049339408287463207749518372088075055259731106486086484295029418655838209560326888205672352877427435962438157157839649693205208184289067131778103031487022037798278042586479585405811889979668327477126508560686356275623596191579977858201730724845951248985282165272031144640081216816251131232023760941519732579063792010429425923698869767074013068433561248956348212797692614952372138660078805329346025949520687342415138204229524790129633645073048792530329770349103383487882417583540132157541523255984038270532786927849628619154840329418638166942560473130191274266453556485413029883271598575925242176793899529641111202157451831746636977322294004352503265229864813099544547353189781135150480661895891571519361959917629890597013825639858317054391595911248816626407530943906020814515308597360825283923909331041449185027810387517767569607144207149811591701694431949918455829271072720766712103419699860972460577494845925839830840866527151066081475444062137914412995460554511523570491102244606515234780987552937426541007173756731803224652338867653947511643641692599771590353171022219519519025200786399486592290711285141992893282834523838404345886147663115541128970581518706508080772355383534365820266301080326732170297977290116435125829275897192207095637312848694433511232254324244409467399374553922759201080268488364370804687417521080701625167514552736389595957589776552961549952064003830047154055671567120703654553392955301687226521399427170298015578427995325984044072711146927353389813728842459219567518864311535597309880695104320117942453483691825427209042603288468417814937823403068077761376116624502998028447885665163237681129106922198334548036569568345251964269430698031756354624673301566871486727199953924066398838156399568394352050641469869206236581772096011395262387983496055897262228366211740843442994431403088589276777111468490915444165579168357225680597487169800283077655653837842856605872999580960067657270240550062498131283993168383401046214653880140254625192836706161405239315081513814256842778414830838609296939997359038773090385049871260961082756839682112025362681744666213674036894182161238266309739621711630384121749320227331110198816857755106915926924934712878728699461098449331441787351422458453808498614364181109834937705482220019154318807082182391010615824600645953169092749271860354332550680680481177723459273248603836384091318798701542153510441494689472575857058306812897873568322583433519630969637255683934373873614103738849321781078743579042562634195161375728952465652605924932734430420819780609018031369684777182529124167461027246946569732189439721686095161207386052104775132250746078944539720365592837938262796734561297701813816934989071264777595320294643869790383800212416045185371209528211889281279213707699939308957611204817594809622393069737762375241623226453493667423760494028877373765670495636308663034014154526553278221516931744775181039300266218868226284459589966975740264493166589728762391270575415079016201211622514980121782776899929450095331957790161136403078643532522903781136912727812712138161464163053200046936120129904681418646736644778521784603504989220070730540126626744460360110024904179480601267852689668366665208178184679801600261516549285769966070344019502714563301752201622262277713009522401312610370952869733212928465813393031914192773873880841796361853562904164291667263853720304525842935748097917307444768393117036779494189804587111236317398586347522266757068171792694442861575968982622478180907665566540277892406141354758470541595697414414586380263583646229863330192715407941337192006859131083287808288586002175571078681796847728601300192504681838566550938309605080949622808886333033325720474523433918116049193125659242863150337436534479944195017556485820271594052083920093124147576221501204401511683189923575807813186345954815248167066076592367611580083224717362138367014684437849615914940545281294652702575673161284112146553170674321543017643365606737970193947017902279032174159474363072660687132233535682662701944014589563787016966045380072950296846494769891155781976479202453574814933319944921541678201134207568791069082567244791732807447020444638721701999694433492870047092664262005077217723430185080408227202095201111416161782088987076509601322563632991789486327515568849375642851157832337704571468839614081986852429620640240294574790215425482794259538988353851650187696702093482435392345647382177520281748025967214434452459658724952452783223592088187488287757384495731584740524655119152862356042231220744413592955607123885473466190035617209146854839639876706381441882414946189657345210611295120985979924457994808981186696204448414621901903961321153043878434337606654521336262591226445258304127980696052706638766500758754262350817880941291803798719300462451143746688287617917621826609920556861541522230474612707211345021328911408294360340785975689913391213887892346222423735823315156959746667469094118017765654189128480972068586219696109343535323380629044824118742189343559422645631061136329555388035829513642018630727411964699842530559803984516120720040596666354271032843224490338267924202590615866809566171202872493477449680038703090928853125661199346671487886413745722470458421026692309498435606117574058353103089352614909459984745428226342329777571322399162905105201840634252702964038312127632605684091126804719059697040548703712899129574710775966450680648799138054624010148953381008722534872827963035654423116888558399436314315237648502908706838449086586686657633811791950343758727995904192472786620648528690602540729697805817921923715835041024136314831928761676330604202457117560292555281478731655796962837905158609994565170514059016545651012672673843358330636623614710850514348035933222127325451233422057056968085454607824777485583541721409606247027569587257272189426720554078679838123767608829370587917145579753113321843901162907596613037117900771440731494828062201622310835425151819307452030663146631482953449009315391289520514051936388151105089422364279408500959709755910929790947408203668768872801286547762710668778972290898084150916437874435154957124462608426943484268968994122294412085849044896102303351562688561259112837826777102044701066754449606030920992422770046103474973139945666357704842093897619037209911439497783303817539288484412957734611754601934910806075741296499738060205563532773313869354993298302915199728357665530282376299596644844060607900524827643966275457913239234888272040169489265461959055342778945131590742965919565119409511164118489559153326579607978997378909145185083389173987859968107175603922064047837914168188007913896412379285712654485129539592819616963093602323158621081511236518610824139703949352672205529598559531916949799590781230260748630639838526287769297918740894363888047546861648822849560725100120309315134283512149530066246963795269768568519800719269257753881785170697832774974611044729729703984271508995784057100161795300501986423398632365590557815776836928615002676646654203381355678973745955408393499412964641436365323312035494159390005781532797250394890236831325427251539345911168152445233542077286199048976886199681154516712465544628131690341475161733581494496555429242054481299645137080721343348105667109035559611915035305235526815424120615728569726767942334681628386131587183368766251837794228476758402766732286775394655832229910799581888905647621236805863909921702461193602298673302158548132261088974161972169013905131548907427389427587135158466372594334719894571616795238385464813884000604599649872713912422356752360410913472798574478209870687864451303652651767197219820381423532596640022012939047914429918175721013864071267048966133405644709822363136009924055705804487536273139912689511304679894736144979901362219335973526390492546709665131439739569431428940984626996987985238192489043641181215222198341222304132409359389468663992719724562480640902990490032251182470876447862553724265323990856295787327768225833886889749971543663001498213296979051617863409585794458964006049711610920664292666734799770809711816707119126509384202278577351206460391083423290280051137702500544716228898703940395344966667395049266197569082585682663909934757812033918061589702586182087242854683101703126046979074334106560742307246082449311847836113532842118686446186703100116493097596953499880463350632701577373434301456941430331464114652913334532717193291399576553017281363064394306628942108735937930746039746476093294343357848965512606410804782205417082718882983004705553875651018144200227307793690403374512706300974994052673232568678763323159493366967288292891201709949634505501669679528712051990041708654587330294811115764660604588991049701926042702928441228096723096002674159931367703396477882742024382808788478221389976647564898905390908993387957187047461272580276501014253673852134613139688952822027805916339812835340317578398791517882723091461040220756398766983949900294123047443361257222936898417638758785942709893949842160532779544651223747087651235011293753670462838884933951475652907695435154378695011590063055970215351414257778565929758508648491396994734674957578319845032155394465161471532135425893145118561130037787820751767508382578928237706316750594628231016382327361754734834597147005275411654347733935251191283762476183480888602927092212059046990578214223802066129952023553415260261434890310711089522037883334166730300338000867521299648690594990249637264780667290217947182590405773469313034834262652628327154979710297856975799032701377013719060914985536551728967645099388856264539348431330820240093350258490455065617072574088311515816951153933955960586121292454468968920668926842464631297734616567816402617181763008002408044668793276528917778755231448898804132906446845820391586858930802470736993597128165804255936940425728237719058731994426310688524249492338136204538472325669227887732306670210773119904551614027134457131042325713642181978636846096837286353016815793398985286221512720273962419048170045789096192641479036114398877371212587396369513193806707083378524428331953749400918516876686058126569252628789861164966962875935993481794404134164310837685574157597935117105265008567577853293657394517435141881465548378942864009688850987272847305597649022373318134466529774381477248478388563307280336178672929033037035185329623776577420336291408805055220555816678383766952455934173866874803411163642903112973978173585801668761711815360969579959281448462276601834502577848324613693295204161930662851941810733542209828813972325397682968621475937877153456282190300596870954463871831892629228066422410540994040771582516141343528636790748790848420793809228639100653035208378448748554397101456829298730741352585704281487148185279162700099789251804037851023296865309442507629011064864414304587026138703457601208724644608579017245444532939644633755753453820145579361898275596475535274318140675279946184271503707639437643457759855439082454801749327867253875618041384600589191311915010295246505263924131748027415272112611463630247275634986721840596908418868298129033136494530281600070318498579307516362312165026884555963879635800263122075781090367832856102524505926621037590577419976520800914683908656019343560846889272621379850411570973783538103157988347586290313253234702754924738993091525712342273244025587276176580116891644647000181287885980116283482816813296980468483656659468084243221425354506521806239981707865610748140198379841587527524538625803707192435874652062688144845066679457613647090963261925680734725403839148451084672632686120967357779022958601459008161517010779146815347100565724274720940789795748887285038634214469857936409120191551404665381403720652419655524312430227480484014561974907033033340183243421807892909882749316639248177188859792057338112290358340092250687151064497080864960440068500936409821597005936565521872059371667150172297665091079597602413591445050791681070587037207158541889233934342856360798199962731640470815817714631182717403970525905718313358319140565261161069870799264073929245253068443813495883900619773399255704607953971499083543480667346342964946962712216861197036275433399330231779953213200743486353438358693988299461253661156429221004824743191118381637985514087759083375201374185020169291855535591000011993779275689083423958210926135895027265732220274340156467756946692936218556994713916157527808619351629191643260624802383511999246054221241913297637913970358296595846356295093802168331051838540565978275109610628601499074301943164774296309214199553498547997234219247027079643547408737998515097417829670431986736837110762723664117969158919831313731243415947192116403390785234569444700856326729614467797185820245935883455869415339801389548500657846088437581708119468503781003619156672320216858305550836687572341484523205233066812071664272979826468862485279220596787494734339336411066019877232279119530298580538371178930202504216892418555096305917197311158954682121540315940294121694958182850386265289437476561841668851151783882122954770097055752963686691724763586125806454291145390698907538476519476058081788460720518688999309797990431522752032062329054496289743647442514714639265441294249054202114507787347067781174763210132092870923728769620119766984021561837830000825144964963890562800229899102073079014727349801905919772054853012500386149540774040941717522156079111149157165713079245675918796660897816896900547011645033270704712845298709298846960042222799831758257983072793869805819426625268616797180426405208162422492885379670172111800709001192181152909080195171457906535502935834395907777322745414791037110902555323611682852552053560792462220026886754023303024266144989140182974027067268440161163741970934845457944699739148219356098908250485213676427247900049371603588712041186294614186023052110224510114054558339270764699234456471718886336565182214924650591313218530026241250678277204142477655795159039889751919472851849957362053297481484273669745411999390076117490740479147760896976953714627006138577176379599512707607111907311323504391718893398899246288746767707336476764094378912690052708484990683844866354304930513451563195389634259907698394266355045328277419115851647877903772963758640766842014861712514169741265902234199745054999224611141599231945086113508766854478537858066091603888508493239327071772407438322290922146959760712736765184756642784710557997632169447986111571042063417444889848672780486721556942530901858678078273817497133288537038931909355634842891733649930066295871384565908485480326363688083403342283222825200483980713882953551720940065612061439138818509429564673419113318653432038512457211830587221434077392998499956837292408158651915411437044917069921180451876128848317035292102672741771767153459390579471351731640662252306758653672734555153484839285949769987566650649935389682997772108147019133978623572808291599669204639954333998789763353376879977495013611267644524864786746764354986713360996486467449105474565110322779605822023485404484472777126105674906894453761314584276231107843488193995480086029189256627417594042079394233203069225518863488020600848829939373134463059352200260008222035361415972177844276339742938423960069354645998107642700121919064320084964040829708766858984025900715719795629151479370039918097182306310275745708599656881450555425556750039536748502839329597397519503869069835637476829478642017778094486250910116390689751357601379316398277652860659664675115698027767904278322960712633785175636117815339572223106292275626890744604795138806985955331765870961501865936322270535972631665716979751009956073938313063459855816872162628822233108737884102951846127611794190409211052015909697030096698396330317387220654282941867269821760490783494464806467249350885259422524849910910570331868724534282414595839128073855358678070258427606036658877392469113084759233218561241530676459754246973457632503725917332335887574835056767633039282126065669416060384401565924836098231371311346351067449174953820911823314441055521316094589075710134285266364104499109268853784116456371681115814316351058436123906785930442010764955941012530584276235225132429345440108721656340173106048941043939218368754336192261801824321855811210116288659962758364569119469573096800015793784798990584216484070010049756030061773802270994151873467791930334476207444481304671997548373658378370494544937332730298551046553568080370815088513640367860870364799108605915759895937376274004668380809997816745186866040181081881320171697778428911908867800880620048687769604309513506785850627865700495139090379873255505592692622314118275337589874741039181992555913306974044024613652684952702754264427036960174712803944532864363651183277638517210415978098577374577291571619268190322924598957729041017237867644270400405908377275334198528737285271581572056029885803874312658235828241999419789046502981514274718295000982615785374632899223566869672435086002031928250418208666815399070852803284410627877097997647582877979665882128090013432051557542108897425173505715585692440094673147806145289798679809684444490384727599462359578142801953159238009359450463493559966448387484801591644791525177763640472269884075456112494841332998583715059025947842503125858158602152265416511650497797501568604210770011351163210569873667393978463715864092734554507649247807092204982079056878208320953368744706380749960618044223745101251118889861061710927541353255705169642363723767818520394776655565390866853604644750846394977324127347633815142885332708529930954269177391900571564825046427027796113611937471817083993884430194447797532219653532636929849684506739666567746988357407129598880906935682268416322808874180656995730162705783365895567669177216303375968093439164276282713456476540335411159234438128301351933760471266732100102290742202094541492262753684389000015639582845144075000107596157131935373190577066777677862600556693781064617960326865583381101701180021656240840690328287261365379065959519031463611016541516606321054693707218436152883234246392513342249281990485917273162488964616961709155887490062808385830885343817608073817538768450621285602612832019840596208324283454354372237968819007961689868382852864468411222078518424918711585443557716631163814240639509715774258203794428549382347893637704223913836549907441744302803460717128566273891911696223376093408470963046791182560546613049648587605048195886921088086240995047567686554896539306252989446711583081473315110542613832796855207850725569841564657319969076449237824849595133810982863310413557791316679417394286693223888529579149280153207420095156558534312538338717733767576521576923811440614009875790455598796846984991720514152671989505600563092084833009992013932727237801953968602115838854960027482682543336846720012900595373607966310272029199382830448094028288205592175329718860382460278996626590135039140370032630138113326416027500122264459767621012718100354265297639080054024806576041422245473659641698043433879054242670499120163278411547788379515297483573479546327933977985401032966825866828299997692294662146897628295874443659674628041742050350232887240174342566809757379199562777709695188065427777202633739100464637238176036243430211539193814312731623715647780892238107613571988019113398566781953106833751992907780564459175175250619302013140630416858836387943266771791827657380913507172930200931807916158610588612905356651686731900028194447598169317162403196555893035905368001837355540606125722747238764241182718014122384881269864575563077323307656385833170535367795941814113972315368546569047334482654323683185409631028590849242186548371402701495472210147791707058551631481814200073007897222891222061146783723111658538407091127466696962291800328118977263181482477227201250568857489150542001578690947543243345610114538721160479636433806361943254428206626241218602181457382599834723522964368359036769204415442123058677420624602202113790896845951541852933043648266747599523836673922024322592497189203999723876725594126586172297361633641878521804568885800351939492746046901912663755442729219197034034457305351379398108308877018938333406834990301264112698718670823033853726501209138176818903041845497139115078506778899247733085730778669499339984735168376924371576003613658165438338724184331235717268498657618912224263514939375157426252727793522934721873238336788899987526020674568837981326589150023079444360816547086074256331801725012324670283638819004419500625506107149484650491976158407036745286141436086424298022077333356750557759849607334302315331284817491027385326624032702906219447708502767375303601099551934131834507708228267643986619604653351035416614931083942810114294263263673742265969280315806890345681853903711846135285863496704553344755503262671585403291994290343311132981087515250041490832232374162043183462562575458270152374331545198495339304135683101152767941749601270370280185323673424495943930322646175753447790258133051844949744100705373321510724163505958001826944827257134176472972112710627767663895575466539082225348028980650365651555501110222111360312222323208907119893787002591990753298041956748624461826005949972659928918349859242583607826182688491559923035360338117803885109708446464638537705655399572594289129913358054677645913491291296206046086886977152549054969488311798683953562656194025168294410783466750196727200451520438435805955913698603787679524228135555096444768119399680533228823976165880307866660234716079318159936823009073576101711119399087817761682943079960880710959827874793202972591579692866172491863361167407642401809893010773614167025242355750094556202758156819303864710924025625932045628177583145837716314535759408707126046200577376037330061325635168965055141620412432530659592862701680370941630959147180834074348012066192112624978749461545666931976669306116491470921507459775549812820212059482614363057728565729586716135781086636912467097727942253032173009437599245019456191911663763792993581069730145023898911793119044816643847963819926837345654974264016984903875693786743592600173395818032455580948725752645687484998139103589920149578013854508340905698027238110870271322888698685322687922382409031210757348802457634200947362814853044051251580387079107409250412131682559689339059014216790689608280244388877998655489044623060076271342127780838621302923306620486117716053649484835173974636940558296690244554821447189402645864354218231662614862079475067602614575377139803812804978665880660774642480654825220734625817704135175229993169862092366365211740132251559312937438413553430050954853208226600569835012360834239751522970355817960926788392214602988114625831939974637736206291340231903797457580504475974835654813090233137684815839299555702816368216456856484238617024446623995533275314270904383805382100276423421194117778656294997363895571293728722263542802524920945797776809254506456080111222269604298542822353506679554453795145391087923175787731033500630059421692944951610603829926323612269815938080088214200355049302523970122709322800684720603747112791497295936433172070485718250093547007654925171441387749231893320222635426205789306460350844013477671142207214090279315223983583871646187632493015717570134698645157571775821938053451947123531843920933910441937205352365047217137403298455514943292513496695219446590359098447149593930385506353525633281784121533497298936695321856210143479680956451728754098940519578596751167808121606185268343300553805740343867003201744960676031562608856760145513409311894493551599589620991673261888728361838460445426344699223481666911835088029918652328028574597033541597638338976239335205263848123807009411493335127431860803559228568015139066338127590083827862307044256841503803066535336210546797548494267858964247026800695406268473551745447379411432920655144906696072812386033540043200411709808113262033854624837127975321177930154416583244407563237214541206760311126891721330072766731910460279065349582624953446607809177556941816516994761481394433247910971245407737156100993827063093242644196546708500293888853395748582447870386426060269830607365324046918509305959267235567740794429419133239100103200041676214221671139307219241771173147556027625453471562777459925023125346856835947237872330472995072873733360645256925365630373114185490840275326675677175691669152548718535588563186696151906941256753054163160244091130660069820634411405671872153580491545627206001185477503257973024154806366351035109721808570996585062406348770113605624450078399473131826687973165541524837468674118723376831786051522031444788284509084881379704121593316674939342258905524256031874509711810773477947059353861997127937056709035059629726002005419329033483092794464263056964911011405514704198523398705493819887909655855398154616440512521763683485241457292328246681879521875718462167839363445024140831253172736772561624638854808274160186714642439273267067248078742046434537064852991421523171554708434443918313343320936385171642865290184690522604390037600854726749893237015052774957160982185818843389654170835347026577749059068285002482722558965107907602375164180194214512655917238185140123089154552236603185618808928010154252569779005375404164280290386573145522140030206987281189885590394493821090524437633992852465983486915858939576210692934054862102040552503897879826357017279927718852571446205242047205687230691733923885897332149853551961489602366460588841656501954723710660783617192904374248562986951837461445065416437094800790294138214481466650516580706067160435088766272609919809951276642219768800125897497155235220617754240114929315689405971980916949381062067891501173164481860296453118886895958925647356607324645236501437200823230032575632694551893258691816829323612273312869427853782275938228197842194624096380608607218255936894623352199616882003328185858964889826059047642329608776354972621436632390859569858205590758164944243748007690180698091417152413178166955378832887387790055747147429808453084361548733198809273171660831449059359514339085490203025033671843242336345605947412966757815674141168996991109289926397512336274205024414615125406811713319115833812344043669769223719800630890010433254217701425546115134394493578839446837441141024024846072304738010399524706586879084568586894319103520297868106590915853373938286823209017244881968863768199684640396447361332899280811730150015739153673536760103146653954371338160592450431096548162302576391040281996465293567671272901741759155836478202739506398418292165843952948344841808539180206456121707302322258955487454934248284205272404403392212247957379208543566547922893662823688121839031985229705097191134325801894152418096236259254775300474225830433434431957839955692506916374710223440092216831307286866816758505715807168259532288373016282886426337980701307432413791866019953924078052685170167334851676440932400867552736859267067364022240975212105273212910427267339356300998496402153310778156933525795057801575497619414473119586129302250781760331333658949565653423716825492401075046965024157069791017610480609500951865782061210971997923074996454876665428516099394475727827022934107123864030082604701519147941022882950903002208597695126736506609704777216592039346633858314242426158558685903483735240109239430425669653171870442104344098742666769924661837519555013696624579474968273958695081933579232633335090536048022848259335955421855049696022079439863507544344523904427145371473940746247197452258112616419765308781063691123827777124010776541076510336198398982756765048177141883758031122733418904488134479560801538394518147306391684607492048367611429437618600898782415984322205908631126336862753953632370390812272490207634078522792013251525237739949521414165623527954901560217471607589230850452542232346873908131651721816596199055693821098705509888121927807299786874947837102567596581685748346963266482810886203004567522164482203056368952896781345029957658115913455171570690208487417738276120391029853546606981863088270807435402083457676158816406872910111758757061750907847513157986363000391309320048978902932608991060671916999257819245814433302208391258271197588808743913336703787608209179412677059476942064877920177037231684470420055256577650943050672009470437383782463128578695763487949890674395867058136201021086282187564979389608586091136136511419071076648757262616983297900908109045972314748327635546813012526542271673975631166010684598796223308209836134605547015363400163301988949988900912411078935036318713088774129972908915073834188052927135607664702453631405126553333426431741997364948706799837564776190170413539512034487740077404699546615854926958135461473407855620554953357242227452444557067975286156299389699494820249355782650301304403524823914050268910815886706837834011069965983867929414816142849189063085165058875460661816747821047852258513133183967188376740514186446991707670634851039712574588468752991795604141745900321286727912574782825298992738976350350190767478922460767982001782506940920254029067543183937919141897402168797477869973155555382546996503266196294483670617167112624021595805527489758282080412292809190011917929954597618198412273049100110626238090077433984229167191961735557541818624289606313425815910457570151276914724562191370500598750014011740711299124624468770780913011527570274139826293756604598513212360494568993359113040084716837460043736900840231064775255577186261731126505917076449961153397418913675605125032712449273798481011925243592164518390127724540509887953472861665677694726295288636540000606995618425059559698781889655479069741865098489192114347806098082766764270048480185501029478759754062196427822000981203378979116232194871178774283382639171704926598050813346954472176467065753086545003936569753044342278514969562069535410052849206670698522996265864018322348164399875998012842993202392773079216151730554883575445677341994105098881392937714952773869791303969470118533225550727367981711067181930070937388825234043490884557119455562040703673607839287485242121250174646213246666131104381528062603852209782710013886591029949297868727060614973434265022188378378371633618620302600998287725627022250309743757745295825769291859644259572878399080840319043872498633891524818964703213845102156788896414557854244448671203615172708057616121775841792170060369450170117369477182489587559888395372962296111966263044270650018621367886696657617133700675127147167171127021187836400477474696551729029931351565234742594659313401559829184766364911088770961528994875237434596052331300229968583370268524208352953540232353078186635649125985189527127861498893296613998650170170378657767582492315268168442355146298891956558345480563766948863253290157180470098182380133345608347196849017316100257010463091278640514621060702669130942784485349283079644610046333161638696589745330642116772853852951568624027084499815076113735296577517213090845499449245739859177627376770630405803612318187626014178769834839005884650399000245354308568109897250706810452100549182446256404771267800158219236126033625332223943515981292055690794846694458027129847267084106313108194738419041399977567539585035136551592475988190411676600475891191196637392564545986189782556097625096830837023952552416511394491637673107465724633060720051227689566016801820734647108995229589922494271534867655644157718397603965341787334328145391293080940304713959853901550215531056084005401750980259121165331932908650892426357209522138294828967342283277618664328767443111768492745062925939430035467804099413442938061586247807175270729513168337734319695502433143752737384333183981539559286079358227072291406647186511038454723280149865018687569814843315007419631765225736020277711290579674391330727688334275453428165378187489384086277426124534263986953360847787671689611906630669983635044007356590233960770335978773382814617229128757813340074360309221156161362718777897181017392850431510888892936127114720110090126215527663600007474362796211895767135407568085791252689386151102936644259010639615689166984615668268627743490739126598635535234830316954776154272926197939466069346918264539570606332738533270361594215218196151701452437940727058844279198649035271010519697221046642945536522782110592547953798321113218027792326212995547654948616790684248309003309327452129115563209514565201892289351881973652939809617960014982253195437180557679415468069250399764983364545732112304182362988172396224001313127579866173176550298180361839265886239450682728271014393629354803814013062330041976741649706074478669250141585630758602000455512377787166676592736327261352305667263006744030933543330852969045580232638153754151509982607155263080604531206710610900399892433723271563206571869467607193579441644314472404055108836387530809813337014309009382316907489996361839496955398729831511310741832131393345897162820204277181972350676719132278707847460582177455981619694764970675722193373855439222968297078127146031401741790836597749571841319680547554003756677327086781671219508847171153433693404035836936157173827744409304796357511477151278054115931593976122916542440368686760361682048196827254954534264877961696494199048256402427821659207749485770960105753881217823973467075545272712720734928991801238346939344534507444295999651574780756157012031915489125867612441876522118729080784954898715206030358770217146850820073473003853708601546096641346687183294357156627462611056918899776225158208929239393552060248896321887748931289726531955838949005010872650357156583902314076986122818706844630592793597607366508147260290863498695795631085368800282532752885048855349751213275924068225332953030993295382919042585648938583352801828126387625452092375216645906373446335741064239108104535104753073927023696267406272216031863859957358554213514600335966831021834881985961283172699846868888394309878060505634155879161934748197937356179972781246975419742842656727014381981778061113687633535713931310311276608024179844736369877515114359460731673932283207273667227781698588782314557100254950177066594086267931481016455922661297673633750714510118417256250897032710892201070527196047579369790653740361825305580727353089948157916145475314870415490080049276953024041160043424709348664628636913474885463626006646217989108501869681860943271594210382463675456290537903844777846834211206121055405927014922511773262593672535689802912968404675691700896558780251996402853740271935001262158065703178353914492588101937053232255761844662110783875077660916489059767664049723889526564114897083156352592853535981365839708169287003594059504637979078262965752800716727067937531926911440678046636466311656516741726129481564914294117993151604176629163225073773150275852578633393972417431918628731624645742405998186408790063488265764781716539047915694775728689247917446818093454355675665628093266776422710292575576474472498416621006725920857503740556218527227465193206668186909343092299142177577724165131996588237306036394560388647582539985819627416471912540904714064165365954671390596040039561693084204224381305549232324943268131654101150570208107388608862375406753610976676700707135618154925295468013226565731149775627075013037360884872839324130842610295301670021731047989286985187458100141867998805121535905795492549578664236920137218274191637673693099661003738377051019635224584417566168249082837173645113537656263656894809814102536014652605007409741311167192046056927029336072023343609879222403601037194511562157266951060055429074434525992072326729600338856360226411210495789808391392502660675256507070007755713754246138422770539039040560533294333514112041000478191998251850170313856653428948138794275913986450079290007717436756170511715914950401458682549292197066089933903281568285854057729810238909517438159610632008672547297995481966937978011355201062783613576407455556306198838364214014226657665968036870652831897353149196531381974488523983976002351779602406548846954077863496223389994436112082100697125808739126776511626743715583245335391855779119329495846659479729576205771746034955576374035125201912149890767104976247412666038014240170352251922585516515586327416776252400275168804406265355511558409811636772797125637594721055843988793100520654694852438273159960761950405153717595967396234163524584184950232950894391571241207459151128338924069987037887723519143960550016329754354791749340179511738705092362002060037472216625677935304024988843079714086634185033069282608584253813261125044259296781846189935472418895255241633909109599055556140417432700287164742152216878815480713284438001429000257005088820427860934507518057629246986068484544231691390822739797440710749112761002465662708389445694411169835485879632931468848631779450844356098665998056502288393757714147068260018301430300623559730061051908648310848332226778186309762423508401072603564238677466916378826086945464716398409355814285385644695008243814519630011752014299283016230149370293300491379181315422345638829704659378840337012579817529089125331961342217580699765519498541024241991186255316787100342915844964610134939374951692984791673378553098137857023184016986090006824179767990615779645730442762905108028966525137956802487145736557024357809609943856554878064265534121505814498576686471736722169300554861260288614920915112138752262190633375203115608098983057334760402900708662115179643018410152396095643106126732614030307536690771357896889289674312098038684199441961033047708863830863901443518122814386869766203946466382941979974448803460122272974120244685204436215472753770464213843364265263372865239735576071788870973944592925607885577596592628704729073592469753872360865702808806041872532744825411215680124936704852153157326253180864650783276643756053516125414829281590483469160718805989800249981646875329939430247009651463440862175619741764624874692865924129772738812792465529431860324389259033064243623971374941620062119174422932203613959274533109484895977183415200877644711790457987135870625466525313373908325999772344476122677912096977685434656048246170631761041182664028293408827290259543721507184180936983889347343051625859662394732830388278641905189427075681411529577184877451421185831519955664995868368467522196586673190648040307558814541390265930849590211962945402064448867847538831786683119201500715062226870191242169942595107703812315942808708682188164190118313512749605614604606371652750564131115546446153574559889321991373090931585644292720383838422814778799704505317681630286213825746336639596664766181733834273236645370946288844880724976364413474865236032462174864464580788573606151288574701693650394700348136965534962691912444498106338102177630428671092284914170770947836643565919706863289206240470986971356065516502094092334662791554018658344869452824675423936892389282657032551151693984071196883328705157644017135047934041534576253319879986861950048414827606151360670588265202623599447848774660279147704264919640916122323205487485543733854496650436555775727609035575864060036623707981811651561818481363718823753141359771614658370309940744292055519923194806895477891717677998646145256300275644014221571882039423528052360620050875156204921613857881976424014363293296023296795985735900693327142436555478238002833098554392913560597237741211829166305976564875832876865622788213472766999486681776672876092460637870988683421424348719371823549688728322707862320070224858532038227893182726357791498410948251744275887957540286703818368565389887906824277445606763482754853437809544998132298479722832407515017427312358980400616166807320837655332173277830588951286292429475259399235063926945353032677739330185890189254375801703247796649366089983607507258052522411606249179711769964876841423372732678839666631004003916286700261844186112522902020763677972611815028140989612361950484361393524894894251725108601970226135108642581752750582777674813575267202896212216013351493153662572847476999193454489487127058638008642536707015976866068443273505809657474719278976166464444424461728076657759716789029379744865915475867929096150875436072267006562456106293624391688880536631205837304437321027436120988394781144847756868275882416876566700070922794987790828728408999484106096826767759342345247234360250318915046373915311265069210393995468085537571551687978846572008117300193061189225410827256943420606523554061204563866566050551453275828619102484768362496295567180237905102276822428624544703660752534723085778364682364813956401040438073255184650687241457540672062929750995809618109572091550190098564209572380900879534133173894859421633312868178065894736854580836998470821297270747276889330127724930615044934422557964864050430007492459617902967549998251110698016278001424897358267063971506718358552021412957989214124401807217450866750987080109232067033559213487527409704510426593105357164863999757645622457287676840508489400962961755693961409718041525245923089384208125128274479414064137195602316957267082310131178462098128928221511676186706262450106197884200347381422010418884894030623797540443500616989186441801141176052414474121077104025038160333969984876285458258587160612663563557579062414118638011104547252391734417728394660203137077041551426370624061851996901316253620993966423089801161047512567541259242005962615434944330656078152562966342647943438787156153830564346357382200710714458820101327575359363059069637689435423520156933022637294426174169516760250807304446375733500216707898644803918612505798425758699981391920951573149895440271751354624746608528400633192735740617431457426512435465988127435834034569519161967177178551477533759651266141060619560612031282000352517418874301160932864965535912121913041415944147398190940128623450949804670090000154963964353308597225572861152048363210715191156074552721297597713514403711971016071482493551363999318684681613981338298951131633830638009576216306605964062561903501270098755112797423297855304930870898226795316333963272292360689839042947878524010041018353331360638852294063385545683152124485325148099855984480522215186027921276882539945221231104381594750084138753098886645209883979558299665321004143494607636889804215887918981583493797349713814865270379960481389437446804372499792631611002328298042350048769057995325108173314040627202048639179580642344896087548495653426896080769849280426278753174555040248222220294022507655449676889363070030435114800278133225954417424355910689793866419991033419539753670405893585126883663637701025715601925935084418686531484762791035167930450958832107011634346716190858597279637604053847965391517246263441335521909394821630321673920383762305035031081429053719207867884974105879155662359486099200859043451185048453376502750573943475663994670746726096304092744729853981562549095051134419101395314970249336487436597122190939053970530119176682662793509490753438182755929714212200613848913712951435332560025789199859945907653502456441464607708150941059393083249298660582281287141996645279799784300091278320567508148826146117901604444644276202244802939247410160786068256992643562688574299495614965184570582193730660392222862192579397840067197387693566936965156645532317367357185607471961978768147426493738237419179075941992858470190940006985679633887370593399336164176419257150401364055509226598539643367136045441238567338328563788308250296313336682222546530698244227503761611312930162385302294852502184232735089331347285559308923320031581048725287191163107072303077906275085034878253575755435859017774429150634125385318821771203428251832046733072280533856594740181726908749385988082463051874157663787577135388663646648555141648331679524305022771153274391856646096877085201683420579005444500088198139318680732380768382695119634691052262140661029126391144620236691331599481759918110650078369716806015568694682576574981204721302413058457994839095927501337388436038024854059289157343959064646037280756030081410598314430809188642222295556635418169903986559474814555587985377117437899923881340974638317203735070669157524234267461613827056183595898319212661983550163740493830538263477474915603893907122019057562861538069490877362498545390777828178162892221452779793714486283077270886249861355100995568317925261262767818343379092432348832587742726024220751872835041865585885185834026863674472891309115614409753623402038069022985813089307006037547452753266633267560851447457137641904045344871318888040800967396434615413459739039764577699772573496025474067213106886808385404269956673691127091648177310044088970637551605328250490993884920557278382577232030970352256323118550262339431267560553875107923318494820474909573784370581028841483335521688330529713726106387054814275836893174391867656682917891298258600396535934997605752082373399460829339291743052089837033160426389843636927208428688943327526134009203101616350759795164850641497168829323665650275169090500891856342503577543176161488992235421872452730253754190854614159595714700061172510880642065029581196192428283953782501488863303911277886264266587675519995764104073270876157436644956114133485810430471965222164243093333703173965894240866359088213284668402999631938360509765240712002731334344632542845346350259868977771575539073906262737413412591080631945873164267836863707739770628688720134552164408798106287714040132468698963463435957115814364390776991766616849402316068635793683228913925460325862112899069066083780168271651301396998881548028814831743483996362853626429874236695794344675647456605536084577591007893133353060744491102070950565510362289243864616988231734416737671494935343179586767507319448110326314549087910066161218961918941225544804723034722599374714859730781439807488979498817330146352812864211819007324388831425882685707229266951782770575704159958539802022702466169445499139837726928441709436468929651798235103494102891299669604948737742495005971393840429589100640012693406548138223689431545881382465121592199849229832896480924246343182318393216766055662139115638848081270531609333143254546766146572550962844498993074799973537890207563231781160289393142150389167454521987710000931352805507284335080463165427592427573131796473110248448119094853115266115224917159045699610060111427516294057772153454862427093739407290615942440739207895374638060439210976151731425353726692661116594055316635767700182635533066141731248612367392111439521137526329620759233377699234459568260605286076929593790273238841437641458839585523887780738716319564077073092243723512494825936576334502781785527714242276553636398418146365658860144363630280284331396342857870569788222869974936467383290642037214360707436849320288357355918784973753807006826069426816094049111499660679819153261509007822560822227453561033176530616936387400543699788572960250175111670862151433431148386506143827145168479272970996313262498972727368441983830695076972680324711162971327332861919513808700361407955580139041034152599226833615047002376613996827953113602173888244457776228034579213505924326758534010931486754070982980921506274535296877161603360931503654254717245935686141085358625083382067950989251669075812085769729664565813300191711588304386494529005476476942269221589584976485022953601385974268448724810365592558657508719901202511956830932252954621705745783597784221790557556241098152003697908120917450610427046884762026041995327306090382481947662341415926087127994765717637278750543009705053557567647866951300029597283263971143042966869344955051765556430753958130203998506740915021366439104292501492466575256879558401842777755478873734763033726333033330210381090276962234071773759497671744950306480743816366777000407509540088977445339086451173679593613758814732262758278966287232473341371702498330363291328731642642044071849026067640641423550350688020756941009048959799294364930411360687089763739425166972218096091192962021470945161720421694865249205514619303863763540484498411275320180831759903511552992846173602896386128586331298800848186792833009394366993153780750607678458344211458819295668198030782722220915854433663444596363311033555660916004202868484148230584456074002107603207700704570647120962912094889425320715091162604585277849774565037039739778830493317728358517180347577896537220049495739618498718214222565910193648095148032074659578077402194810717155851430912864837306228327245169638609305740868953034487102758477131823409022490495904650674523711162583459285144567686754918645083573350183293237321606631985923001281948071605094587448752111964371810428602886673855448797895645013299767525237460775641441029953473052369715746742527506168220354853149123592388798978886685918987934578447106071924722384280162107192909004064143656037819330156882823080680231545419936581294826132352638526571069002029787496792005524891258157424858577698138114430993255867962830616374314237117046510439095646610642388011683800901950615767329058805888122335763878052400763189935282033291577320591672700121105850757662357416416729253876055092483488938842076460663242215216285375699239073075601262032391120064533616238507215096322743361058439524617086584431085940071852900952747122676195996995035017310459863915662117270740423330445338122350868465287351103712168165577463944231571748624060829503081785780687129685025666380137088192243098438394275948464415352256260264510970417846403181350124365404576872441859592080020048275471474596605924199339097605608314732605712820417219883967264966569990915697775583840307825450709074540250592170220513635073725384806437904407081265593032280185520311537525815011751444024093628722387220851969649204326126047193768989349745922347488602848107311419250721878962125317497647101359666045040994788828928087105521315393596042759504022912061646143702939901224576117446551091058298756437972304516238979981008954338508004951327797069625142438770517194477510285007046526678430013770653818843381303958931873065222252105871490164778332620474110576300875869143708158789397155288816186684552240597148205382529853418380612108029623966842968654258812901230605459606780159336368690433674457416412018738855631961440009144887737607565408006805705201271973552219662982342479108261157275984321185964649515012715633794531944922142209650151296950868296650956977007303510225582881557930184920368969572652913975076539221804099420756638757452063782626730134156632021156274362516616072675297578765045991636243168841553574075287653907662220091226492424099297134310416905022433192260098254541810206417421859619725610828429413992260910432291470553175901469623397065410153136541108358712662122587497787153869714137548832298664717236993912629717004114355178969719271123443111389853977046511957192376533751563026585958506952854428756156712773249196192195509537181307086361942116729192197003574046303249227816199611628802735532136795768024434811935428992232084719375848984274948239758570390539501757750901928106632985266571491790790894150551347906042775541462810745693582111761656263393046488837152782601358543718289480637751821830887066305854029379924051384466484149822388601040737794543858092156499554178943552389320672936335513559963644500149090863261494939069626243645130849081639800294445530393939415811430305846701322282586593157057820633069781188991955525785406294458687508135416122365000851302803321445580549443401775161837216813269894926403163441116743137796236651542318281459272341999626191060956374396443125840015366637230992722266528885189248083052292982202941123396613158908673286877580066550515559586554282210313490825629605920947784207030608539927840436133703607628407774241032050301306191029921826273324764464991822815986965971032309179832732926442469899382509438940435159868729245405036866815852049643530214868410618859922857244142546415485001740378586968859804635078677151958068729821379421320221777435173740391408053752759906326117265990282165845403667594611030171086755987936208794608303882938966337682296116494375131339725656027468677432627940478888102247901260168293991091229047771442804481480786304025580176708192572328222195149467536597619892138222354041037751203783647867394638491199757736628419720333388067088131749299398047131100538364626365514979336718435414632789318278243486365696594194275643639034952491034931464142552199558260768139980915176056100779447447360162711538191045151732962039922471376286929388955930070412624066134762595049229412333697120143089099899827359069653484110347984198327364190784608754573783627296787767913739049573379903380307493716579391142612842431929789635420463569546031034080325673800125458038636508920657808338770736650764036366038771980983669359946433659272668242365517253548934178819972409836215352745283941204097307003576236486185202273515414843700481779977152393023941239830764435382667137355462371800812906959269347263449996729875005767539111146445208606743291973875525515153217236951590157146518418303876676879506004278766929819507979004751586675449655688096315227454974031513731884491733921450280404598741280563383251112465133560396621718289835668090940143151063795940109492249621311371222064653846917870790035770318790033060519067727893965166929385851730071789478924456497293051792149824695994129794655057334758491577133431901698378964351579891441268521046347633764322724657781960278021111434053866431402341197716894598855803420639010927727392065727737383744466675104010793532152791432343073407363824670954959320881687649018116458489175637255859743908352874079768555696363870479472686373972341875579019051726528616877681450563673839140260973364408055517886296568425387573145130670826038328997543433328578575912576140700585795415415373903700465011322864366057546533699231270139535429037031105883494020382313838461216102722907036511639803854858436019846417635462701981309053364829857003090631171978748837265243087715332153421348176097292994942279166198317820082150590889730762289128133155865790211068818259147451998351739288031958252219613694394669335962944233509068233699733247131875190841242553483800599979005628290668421752570951592036418512192153602610113958147237998847688322876044312842090169635029360366217349826316976557718572568865888993838677299500439945625918610854534893178810749814836716741117032603184089860413481564445813575863901697510134875982901676200446562658937349800692036910887967724714965134113491020049710051995944365039589128410954842389202619010488228505279815597364750263195673849921253500978958538076966055311759783276091500286237204848131430220060333791563210275435153775034781417618824599689591668702126744723559400303303725769353167388354663057635736909418789745962846092737049828693257656038336620873136506236386522896541553236221203903398002580443403486228249662466464682569979892079448239138002203247436193306678603214346609001209792453363249649158087225593348011431633888396881430532729205339671214258179962894937367330081829342311565037701013363152323422420037795684910977041529957735371510095459900327676723302152751921262949996804809358764258378759066134428008693616577190255071437103788089508124120464746165626160730699607682034732303257242297413424389751332490213718544681967377404384452926307124747166576125112019862790217338639645119916165751672614612076607212444075113436835655398480096692236325686751564715216208043896893689463355154741775363878071590499652092421583294029913974292848845301601703814425582648770134295195501258722015637052679843896907326164360040203087608702756379043572375247757486835548434859606169095856868247874191446899864717955292922131364451511879472727834172627730677548200593244890886436057037988262167498069861191837805348867985054588268926653684128630823942478349178400241503511774103225460560833709914813589989140857977277979867838241001814540589196517359156966716261748642133611002572002768676364595354096411842730942383792180973960840878031747896262622336374353492345186638655759911980274310078210851753185387118718735825297880808890993691764670459786184301254681294732980683886193564915790822652551708608349300488512639772546754536023424604842886158926273895325393504267016320193031602682000852804658563504674778776632724191549614171512947336355659306691606820149099012995009352746832032986115224185733792436327681607603049549732720255483869137624053392074229011833633904347793853772406756805839231013147920076310427102991802653958157852992447961067787407032097531918152798061316239793999408653904689205692515846898847319701364781260521160800954889783674034396018893176188864711344903321742940330371794181212991349713798249069066048222988139735501852312791107338979535051136931148969557785518552319265947121764109877807590502967364029140007485979587186094217858490957458400792244774604959115734289837708641544649532120651173241579447151215532806292893198460149060954225063942519230399756138067755498467555932346376463600283189776210783446715098611181738497439392400214871879997561344812606064353006320621501680165180444034827920564273051937900508573684190436918890878353140885172216913219746675573513793464537387799221388620892507756755662730891451036065272980512968266331696491639192122085159451956662270008221852814642981942439401210575708345290859658303632311383834190469506593789011351920954507398225597924825900858353499076377502537775492771352172580975031293783796558250916268929757074142303986774014411982625829408108089930286846665540699174971984968907578214636830451405569402037365695810514847685552051323442760315336059294968194265438348301079598046771463195639896047138698748683967649965984394653522496768165464064227516433917672655321779523674426094871986606626348368046981129793564951097454401561124001773558183144465894260695662665607401759094884491184129217549148039382391486177384893736248798601861189489817258123436126016928727497824276596075882969970287203606974443268800964374262129479153367329364547081639201249165043407701338525074760072429291605824108497475795636465499116341362107500465562999634075742204978806670018237138994646753506562299177977911679502888354958453104086815043506922263030761643297563941888395196576499057018605445193325482360425394589106492808776497833973061584347239962370324267376563137873244662515646534974657712687575579006251597802675306153347519675521022733790208918329949214749140300183503867956752928488021302017798766403396893948394302917040326358813107806834839834997841597469707862885975742087515126063502160632982590770556590438724478007166685415298293247507457390685324661802825766180923403137023215807220274647007359555632205680086784576860527037359126970812991892477105593232998636260127541062731313348992715323708869712238353418437958463293061297059314992907131765681477099790216107353048130609467648557810607712853355557334869977079862732125694016551375468112091040067168678066125737535519304112558315608600092274583944720754047907496938788978531326582621301862309043459058991379296876363375526430348122642564789186341150073094578779500752464491603413744124748845451772540318762699958361861949476347844761289127761247676239718579633625208885470457087708574742016602384106079658997019155903756903814339972206242679918448023609407774071310103825299656736230207770034725355614407513567748329596217751789821320976597798614557092508809575671892561173385217657053985687304842279182719353704232080511054586325842926419245239783031019723293935704079484175940713868530886989487093324581989670777962751006181940605773834476098694827714685934481692391353379407178960572951798728919626846823257962600078529700330791148380384149821720694117340441427265714322554438790204194165475576763481847987186857840508059842756389702662360089122789332920418448431080496597446354110881691733977304663827284831221722462664497527611276116977784718437514630642337746082708627330211465161360296470945006160351807463315952207190764930948234807890127882920399313626350941930293167203729168827419856049262899187768828534232200427161013330164128827682358743884020443412354070389590905384264449383187463019072318209943562831871086056713286551667846167365708818065690212049082970927007738402447849375191013411348283847378438036002383162240547824490256576315496294806731508095553167233254577731005845055570282804897841223695560721305200871909577445925255426016913618899512797329930535416258068765417314272084926551026424383362403724053550120614389938483430930559954790570040986420700020378995863414673757810099342956912056692567337721244685882603763668569682820844437483172141083761792595819851368656547767444735614203524793881330580917438762346677259102208384898650487706788902322768847219927001447589754754056361131227421469850185367705541844078923118083274463070035807357766286582378064686925190571823200752843126929978783108699000597923798798290128589430682488853132090552625132002623556760653413456309701087424192390677819202726359614993110210612231082824836301248439287691724060828007427231770021045627847136351575939587158485917324773286818743036117170166780865469866340171789656529467775780012976186815847783916119062837456544863977208618081403349491450312299872562237836399224001674914935341494769416149680329980044145860759962884519965327557081917867948799149606495984044614757434941195834221687126805361111469961993849059861971167676801143878523064050621469448384191521618615170339877942787300421304088853631657281720854042489545216170729458539531840469606759436229816974492317369973668459234136670440194012994864616844548994664150352211800504125239355448176567056005091406199317884034090183003168865125132144781001039630040613696465467835706299187108611061187089209866407847506181183607682017203204543884949037620219064533500308429146614192961547123464805923091300236094177877329491051738501665780814700133432304471148677120664569388861453176360961276008141152534015498943739490837253124644577771839167468015500391850439682320903636540103533754511988996282365119953779846294756093564815430740528184415739354710288967445649955045516799019915859618718128514997198930939107165339414244933034240513569441529380989768331524451611267475171142149901551510260710060294274874395705056413482506405414371860070620701776016201553639673465954510179938222498360185339718624568812115229686116983191943563585517776314774998322354295893889304876649310607613128890010367546872638766161298912232028203111090444902138183428286995711827565294003473875808232075065437439690075256576928344128569152800200276219848222455719512650476055743149408564559097703493005893202168934804334174140140829813555156038797910656996797309286539405943890986365769157280049242525345515455419576586147845774650516683091396164587295296626099958652222298203544102554405313770568161915789989825812871289497486976738787430962101998247831705507098782881836485058955235514542471677684228922356184309366595791383917067991229383580155198786265968704066307473499359741654549917280473696632747068651018893250319178627757986877311612286089588720735119950804383091434553859974097561468891125960845495379769504059747382310118974317308766266763747716264340445049122343255583235475712532010292731167061026006012047487323344466554419648250097458610315679167954396073670519388031409044194821883914161598803007079861820449401772467586390061147264271883952032275998652111357268561636636984544355515909723845655401744973209867014180934903758565278170276295332080884890980789874582191345725051886330158789674892138311675081652025112666778440008344931991033400490145109866728427612583339746983071833674177216084022846015891310575947376244775080322981890716137186317277160138026063064483995963241242537833878508518652761553039364629822736108622402995117100916833196137897748073762148927228993590851595276918365907927595347073732988939495577021067732495275207246423444566769485810936654173520538454579128449050764501010819276014817105211161907959202921487859089204788320869893111186627142142259379935529523828594419459257664682677812116422915924471929992741089894771841584090273204193218008428946396548781309509011122765873588537158242959356643654617363340506363294634669363234928793252986584740062948486763601770975594503229181229580081024564499995039477017100972420264159295993669614443335196496652905194725167688112421659666542172497352201362500499678372772495802280580570052048267955468707034602284361989417300239772084844872983677405498565615636275900781170522787497584305810133856567834233177122308885322254193855554306275488881624686317999842428278983343250367257123736280998130365319343992373513750186457427487979264939802564363230845764246505245128641728449129716320974814187138203290141907002586180128619846132785270111738853488067244217105712095254378064880133878393422659127105370657756863507893385967033682758840712129525805932629057501762827303427063957837566248422627992799251724131718356178683543793791325226292782393688259742165197641909578930872824231732028154778754724192785519368597328108158589892556204601308653873919806774333482142435805354065797565837331894501008262323611765037313170526086691057028145163756606069373068387200747501527156424865445435569818184124831166341820382366612852642836768354435559392979653729369059659487526454458938153753115323211604845003840356780150422345051441705694527412154223257896498662782593959108937298875925496290213351051998242042973826116956609509531872231753084260391535508570248293048457829916500315209280409989230052151221254795001852661801802853606511134554256457285049166174868742421920223427222952351812694991213775204316250848034048480275138269716407168199106008452577349157527088135682996941228008777062535101294796769363200497583215809798577477592171377686692151073768843686300125281601013942320272960511341109932678843592001922184421355312735911530028427174174458050655952543547196320335480232208312965038279677255065363287572501802017100738879632437696014130323317195357763420064842598474545140673975035479882817972987575316025524607473751440238721314295168289675579114368962160840436628014154528342457118331544353380381601436150075268527338346867319469648697181715329083772064942989567797982168359165863893245056060600183808373893208190683238665097607599172763837977880553762701856048511671693723367282684149221343122907796261149403599690300360100549937327969391572541926363068854052252646748187168797958539322772185222403350645475631334774324600872938770430087405183128586155177270779108499302514708616682444606334929674797565141056096764638508210469568230323239791338716191185675676669511112622304026572099927347526562855650971789841965290654643657502601833322898855815943203723491797364514951706251140435185532787185508591039900818622041265561799339358429071019933181457092575036219984482205240008894288522665812649473791767591592746659811378870626125094474693851462077457991895681592522843932912444524678813666811550066226620830885522985863871269184207563938802707657758559597180601555711002311118196704042764582066178091446707397558532586787001280930422810590714841578162384700372430642340865931379068813336841221435436304457229823061622672258204937757974657785925047058732207890119351777649373804881359053780143926823366824435029911636223301011442055819268538871041290878247361767503084601777986670376942797225869615641165021608459743519569167144761753136896306807087434368087769593942047030136484449296363547306290387217937670951023989193371485334033733705814780465612662490884372171892436002052533127149470790432996591681744824861640157623717436138704985334556991609857635915341733304657598658193069949961505153848508436159864893015221364362985921879096557313449334881802680627553066536642063983782061262000332277299259743642194887834601326625241045474189223241710824726804491820280894192792510049581803192269652675121901214189807761870912438889272570304228745714173840901477935032560296185524412034140581670987614634240199900776741969321631800983785386090424218583295969452633236759186561108016444326665331579539279333195785174390740796094509128845645069546606861395480169600137685417554435551088894790502960232817714584250008850021654807542829949695181472745823491719830439717884542487631294580488443972676820877014091587585622255567868727043031081217321638852324560436984794229693665800412238839627607727765917424552203892440709850890934244156851070156174969985672746399397111989984925307486722996800370167200782268550760256165985531141809265607759246625537888210419273061528550769864480193635201546998242538627933944713511145997748369652688732104028519564323382833573632854788045998102647831184034042228364616131590251105369530644690999125540621550517258131493937890552548507319028487898527162713807807436222778676913171342123445391343145694474876199192671330930228224918333394842957827288559614629809867685226904712840213026904507742000856122376267908982798184196797050649203389099481017545339460535674162002814382831285101533672515744144965328626476812297068093006358028662110246958896863590994526127335423003923483802134625660618690903111531369914088970718406562455591574678487474069885033944332059888121463776704548214336354940394089985187097372882687565934049527798606030649089154345801501976659321295912691489704381892342112120659967416431173602238917701128467634274337504179100467370909887450512043409894006630811479849717855323936807534298989881362126435374453236348391473258167965214776970985725989514089261994603796882826912431971652971370712832265306030423432027893046585419722958687433440360663771086396441623747507937310859592130057457980835795356457516511805481172306896915907352878618874974944740803050383306605562274187688255523570384071106349409444566082517897043067429989308701375514308067677009776239413560412333108996663246115183410570576798090970647174765828064183066612197129620968290633812022248691631567777922879063582445762611281662147974581821907693840579314800072728898937592243033366837019369961536133429853506460315677859216792940540251305478450023017637895041851295396449085850881709068897412008067765907737489334593005329541910817996820748966852411295069791258807783739612822996407712113686414391491452319301959697342415823298565438295731330705708667974886017981560114696947200283101205648945759010675709921159939878776620428454643816680445346441654055273386500010288074960153670007017076918791993943822385544781630013265154073583584518002086670668003172154839801361354241891582132650753953700270164935662125263876927071705449486478682069091170736538076820857588179873073620743082975240033614339215718891418228546221509928027670511228509135012765701951356059497123804434456800807577648092533442057531474427881751856662568498150480004833011316919830997106069217012322231597156732946914939934834699030888971445177951539183057568777474242823449520995011825946492056044201559098489113203824684274043509466908373006040081200400694445058439598883751640395817642761296727055729994750702885364185819106567827289138462818062054249702293865132142315632605179900373359514769291111241338879939436385810324511084050047229106217456230859105655270784273497508965197564773890665773540730447625924285248895341618603059862787201193070768871351637057382456004309285460565232427895409629310662420559957336299060565568163145126780687280467390084539840400561549695250350003277654637365175954468714046776348524713081211277680491432562886964426875134069572581699371686619060349785518335276071238910003978978192194229182308576826761957955629698956604239549922854249461387443279433273928312858121465807794933028055447168244306234837392459244605639035953612236072510393551587123085525593060402189416196832846347767435994593534490789708222014342836843961935622839671410509302718315730095427971557037066137508454097914586713469889066210134720149109059422946508590279556255842324819935417074017890252406602970323835670232447869026036426145110049686587328133450316738968485916174687116247181698836944206563808586549182594528889194142345374478614769063957408000393681647192507840141805351410338065871281235868791953206164239708218975265496077696790896563386285491798010988687297483425385621845500658376719099070250123382017937334459045376339903571622659629896112194249123832535583494458660780948828462751086416816671868583484221905859205743358393657095295517589550643546629635449656959598235127029414810013868738328530901578866885006282846444477649419603685233335359907842801571116421787697711279396425764547248292808280938403524661094268166103960178746860483652777349223477939294552422067789307467023891360975711361867423439888468539082061827351812479154011072725034402444619473213233726821784062265575436835005756164594924855540258427373240210640271540680403075507017055874369543574785193551897154548752265670078236659531756911989274598873474475660549757490435540707530865776177973274771719243109095348923186808365008712700305637655614573902357750624905226683681006420576226446103467897234575658068576267879044381895270581171318719087988167971851373740452472956816730438951805595070156784598913812696484033053390706002941523913132620496996424260842786837370852408717386788594152502510198284037737556163735540990432683149637962938536438410378483696951433239385450463475547121216279743168961813818463447199747610669231541400728891143353692635272340744063543974339292950199602548101377785106089879781261017889606041592849833505006058711022514518414022673717407752993409057141000376576086821505022348135838869257352746443674180760679159565307355814493908053632729926739794827670850684654216356418174974351796891219800749475110837583627587495707786356549583749762729753926664484698313632735200210641814820146724286542928993932280391024345958234149252705361793925618497225030001321851173255031324259302403048930404250567419163935666033757991484441900659927080586973593897364027406587556814924623073543485163103617249845488291336602168568295170807625617421831930533961615423326445473043972722701211039605990579878401223553626137495334775440409432651041295084420478737655540265005656659362485852876172817076836940473536751818846724098172637427320442044680213716338233249301559163800462985657837060715249793026718561629725811599837045093178056776173747885698953893726416387410999226356093914159649455566101927174319806721662525325075324919635644527179214589975612089851173921250430290052064121886914645369645336838245417332758522402725247942133696254596041637369249824330433387926729830270079636191461609297321235441189094149872271675754812746488701341065229381064529184624526223626371287891971603579131841905909441290333570584528211124364824657748581845074868021149332319955117794616732002543111629096556084088868313158748105909590964828846299720930416051604580598821016175745143299758540895275703727669543008000418467731395881662337056092543224089447113874770946974572761932897506330863375365964426727598092775376787909104568013935123488139824449398124142730519335262896035742872914145883111066395957695575221152684272898945284751222202678484578608552300539615255223874787269577659528164150455361114593871016894991836019605465924490615057979007309438479022152961046258472498149766918627192209424443051428500557219776331910746665025898588728334117798007625669086394254307711240070180864636864570293743853475200168057087395604632823771783221694765512033947339159576072312925505836822228313690851400773131354539149600446232607108308100636092040997587553456314607268068290065916116166646619866164731553069288187790547880093011032839069274541695510430872451761618467697762678072559987497489932618812768954172538850018597490256620227594064939450748834315473968392352727353207444047442229968455025873940185125672199665093819752063133091060110055591337521866396625272910582908093234733208930701411330681974929990986273660862410201565193537259853870876083310641996913354593469614983136427458843056545045061502136899832138808927022741010711712717841257837470606492159096857518502669305441109085968834551276255984015455279837427014240929294007487386403770366851123257917563926490933185137994150173989041011262945051613167500956957532111924178323318574853927970127929729700421054105798228416834351348260894611532739151555022088400710012005740252076907114553939719849914129204841170468875928930816584363691248261637395234708186060976352943169723366779021459396486104063360903994796468677164897270208831950877763036170670982577930345210023043091171374608032006302566013636412804269905820469176250934309123888448496741250794500939553905320709036096412652098831798019697091820465239976588691407802293007742179959891239891697977872273543358281872676640515875773633193440505855183134696748183473806536746838390609079057321281765446261507813869515207448954058776170393262176128716338223428464507920640219912703439703055714620056456051576805496851485147408822684585000937951860850194269836482353325506319067560027553382368430900938465755216784467020146549485140848971461421081799310395407584406705782595217092173616598817433601120993719079638141277586260199498928235214448921993483262845521415978599496987489465123498208920787948197406277971807577533266710800790401623640289205084842789917278872180218702672643993632171220880773438147733084836036789394102273306416932041953889195876891649364863616174027068562493524225775737716718628438064671739104985244364529387926945205813072475471245707284138133076924359978921518284898102119877818088221609732316968122055674045435083170304166484730177157543020440544210749218960629657520601381199468852830102894142639966248289333970725751620641759093536159517920461782535637165342096776021266999420470714015995173759121256950501776375842632458376223691869883078219126934355320954379881814544909417605347871931880126821009417206869554331579725856269250091838638440883379959754411073524339317380364994579523332532659905881878170168274454046995195847310896532654542865310687854556664285914593791321601316315824380746700183705650191438252212767615153120259537308114859009539552052377892099483144250431009371159410856004502136364912639463451296029195295301705229243288948324984956548661271101123362922293585708946192715251939214515458673295647405906797104222328341449905759575995118029247043698523937545597614913314918530672248340571703538383995914452318740625369681355821268353605586926561262767762524478853412787286836483357247936306240170969441738399184413653449404084396415144546524326786966846352829760698084239753441740986588070338051238842391822230937069719705318209902541017336337060909963545177543357214365750219372379185342803098608011895856522342582943778611273890138490227107819171048498222838432218514291415569088676036874920959632192783889740937935067601281445367226231811115789958250138595765562139581228485715777007519208134045192814718289692336466885030366729932335674256784105362692898331276527144231674825941214195637051702620326482287075413961675381106305114070263023115682485817835317261770575592874335584721080916544943888659630806385558706166727544607792111702819265152731976739644183417927806489810087982369509426319141243915573335440949031744723251055921797291759433056200968754870036627262886835399582749675904497870987101350038205175542942609282757133983794870431504927108737442788563210707774245535218830339817161953723253072352251304346378802983566938799922771907189278413731905920953609266001823699678707534558905469293518304819838278603779215892659546804952896307776565004838957754352835714781832308871126821232114412929622729480065518665699488630057557024275182123822845997756267634009715909382415281786809853449662050386794095054261524654390223274278299052336266929187583928948342238205868678875883907285485812588915058328353168243389169381206505746936400039523118462041016837918363624584016495642066369246516110904068174162612659265587022178034244224655336089076459724494731542654427086385583315928135365743708374436737169973727274489186889937548474427232479497081888901610549104365249739018368569150455909599301533937740093114447505249073807713935680141416395426688097619558454347720545539309209564821923527681999208272620742365117634582920628296391828712340795673217365928769039305254803694450136879286563880723479048240455689897405996955993562153440031170466100786539462111403063093616124943502765218093253303015270958133762925031937544778393344733484457195161230107205573608826531360915069192318394336019097130430097308166756623306927844641881153826916144083463981884477456855939143598506095945875804479194757919587207039592539352383769429121771860158073110837720671925464867650391749123859180694430710202958143281323149470810014453704717244490400247284683191055697073771135270353624816436995231144757309968464043845741529911048517354663542574761924136103906580956391538664752560368324517634291004442181577412670078227582272334161221899472539505267115192318647448090931199936245183866016914288088641186063936079939689161222303504445163934141993809934072310222126446423996219195534233293228674029675517682705990386461119545890504222418010320900439352054084607378730256851404846871414306694774876476448567154083269481324151247690144523533084640468691507341807241429156893342480628267610396721037262556651360745311592674276513813770714120213658358763909936692878536376088321502105998698717377670730113583887011340277844141874511029054019526373641128204803995236628519305930102481708539933942939812261396152054533174043908186241144517048089391007141825404497663396094006351909214048735837230857656665861649128715213562428419368071006442572519493510642141933182553993738376859072270105892601330659414111769185941809533020625640840711815922330535195454096922238278472688184872310023051759375086694644053444652027622306273974007892584701372445713439313740450086084863815701934616390122289979831823423327270967685440625975363514489728976975227553831716717723963156532374290554684821579035115381971071100073302323783633549050558880768705736623599123712619325753717906945227922770466512869076893126945819705994100782301612709458031693543781179965190129283914959443763137493589255573681740160300237063886473593547213408179068932663658561259996744824236143271122278548297951915184523477566328723457651170381130960414168358590349254613233332189136997679172536988642257507341772693379835183402089968824393635475050457786480859382370596351347457645806264765340792524167674604567926085366233195441895147797376700973120896754028400247604746664322255129305564828579144264640368116902156254632402331630444782685211351066694804213407074129980921802736797280794888308694582921820833971197821758637148743358622854090220083808081041169056208550033833385053947248330333640480997775163857498340459160700598919941182402665731341895366623847181036465399386654143104112686699009115033125229239593126836758744399645004988929982356429386388874212838980437032167449760330924331343694363480281744839907790756400126399066393133431900119557987775986533851147181069249772021368401204334220960607880822876292453364905986263664989226444384402490519835212174976265759460766495343471823977890511919302002549123536502611002535028069572833521563809748767751119532197951492066777769212272513676507609155897377333139489187597871488589587840036852173549086724806862143590925064728449064969959650885312590044346935283165568907629750497933975345159134707806670699571509613358067261342810400007607454567653695745753693413214363968521379166596392851943945720847386044301842649269864518010100635758794993769776346618879557702312632985314857018784743590577672814760945479925916312509352761035901340176287834642884673250018703867961124601181968947327454519966756353807007191697450405431557781234350278596316741554492050750991425000870877699268329791243003042921644086683739086393124960622759103376674046171193435919793193426747294517135217301395091632543220094962092119945433445096546241154166138479927837778434121333711801395868159970538496708344133337567386240522494662640871041375124436313018889666784273751720801867641911358843024928698120675527683976231189786476783161775033024146845462242611845774425601968676766849632191802973844954099506361422263388283373029157527492649317464063070561876502681261757415854686679743803432381530086129255649877696451874614458128948809207382638555019603509623158419369029756209374338307455780262257891517838829383345175232248745801899272270522908814669381396759504786571265528113873136898091421770288271808107636061865928005562734105842708225976524680471560862832846109343497915611345478678347986489804408450379360538876207073171394377206886553115771465149752726715174565733007465833076793254680041114240753464070345152350398573339596297680992219904813102339044617907389243921731301078872068656705603110522306485409184366231891303524828363973341895818441135695451994464934800483786394479379870117219128127080685642038985360796643411626620658439300087027545049598438553328749547891731187265032147118604918617160687411936719757553124900949084549668197476517681406258977469136748120700239466672664935038846547977058787715878046291626568730831459493188062551374799715839809919891124424442262351070111222728756562524505843289357015665489936906850634141660692537949102404527152341887217801321989057653695046114351823776485044721356450089494530933109265503063563815566247743453350835864982932574619732971993053837543532493974216650749717493492889041862832202821368576297460212081687289285118452477737954928201572519103086125684818312524503861250404738590776422089500797458821003882674903148718633384015321845354397201298478148192983350047251669566690329804574879774701911978285401905516273806740992995835134634819867079167707559976235682435917622826799878797917900616364074915555555577163027658985022908539257571341217691130522192028943126447302230911818258461332821991899743570955358730202912055143248921948459682918941913791224309950115283502664188377275826332169262047268626254714248247888170190460703167753761606510680605214175740109971004468609712978879718911477247637011088574031449410167117858230007356249391261351540458460353456448723460794765104049057432435364009817354309323411834503718715768681670781437049851776492940483441506442088374656009929076288485660163015018873064858149433288186173656032348371016765880171392834913683614279090422075393418348636717863452547252976627272490335703985634025524854217218567656923111011971870979083685254539360148541978137093334053521111510709425120479174484644689194844837051763065674516499680074950155748166977404155788069609461332916647894530075470044957021697019852955767156771305035514358606964210358395183475420036353719954762188129234052241215798398471086308639535773747321063028689442221901905868839479990020351061700057341465514927453077298594841673713662384368781079987547008066766908960519317672737612726406075162230798837704488036834054168380497429626374775526990500190950033765584588215965854981474127498150609185074922981681511408672596574955190850448914382838132318262513122870940026296574956387121460342338280259251485851955306709555707090066073794819008747606257905158490643401373105089122699682519055295826643377039239668421783843380821943282039425856953882222464833805466581652978031110719440797402365822746439842147454041892239495449322623641863628420793192752790498874271764845929510218056825117464855392910210568272282309830455282735694393020872133226107658364406675466351221010675162771846093748036083853785821349054675486147553151294686890689800131303991573545426329845032674825060492007309947836834742009554018253214318005996452524386344559215033891716467039607431183265309539489488429565276883014349260308769118356738766626571377170902308299743942774249492439681075642850312668307592556800565162218867938681625213585790535218863265525829065014909175592561281783263600236355826503343266197217698904524721982142655423991707567939938599035851979649911263692036077790504899813183036384479224913417355832026627592086666722379051200178673297001249155755071440442256883256642020021265844246446400302131296229871853955181896768209157256115889083435098190831276200488812341081739224575083296952670588944913934200532958990100658470443899346817605885229019083230501540376617159991227726350107448922114489468571555264452379689923751500235396792192226965871977945520111446379448154825362477830507837575287811336149812091958046611964241833058710974302853249540888207985098475537619042821344537961319657670837422528653993064951732021011938488336849371330498268301988936247383334816919886925577212139249828842006032160232253063951249070044327312166318374465741239011646731774881032860194407596053440758372666093429707749542382720327148369620590007358266020277955309572770813043876458035230518326130857329953298494647322996591441744376593870479589385936131500110513142062266243558749660945754523936583605030800847644961495211598804805978673541610841190340356008822521365567861183596047173539750687658560623757894674749277663531875923766882923349086991208396761631436728254222047546379980213252527496133999783740692720464066464867041872074803133933532734304527539599060724610800637528591655673562159851632207790166804548894787018707379939384876679955972866879144343367660805328482502130441421018368969816248897188151413824881903618762924589850527137471055830549896092011269675638533660632972920232065982058849323902428512268645626839462188249709869658356661203869099431271626126822407059748218730110849585848883465087228150230684467081828194220207147095705389338692536429427006976317241262775940163239996231644187576531783097507074955462868548259623871407565635369371259536666529104901195630644734067055612908722564782703678508334188448415930973811264560396515566186125020032834777239633478944805510767163036145298665924893339993497203679951913291863387092425400768759050568029124929376426637125930507956348814853546151347002324123320024453562405059207576540077382990034352334207325572751675377466212120723046698676558943848511469903445548150043508448524729077074403673530085670266628525054117502349347091562241012154445469882978779292814911474578498537607667138485875015571970989836902269086679213591646974061882723873958299821565251430915905155170017549734606659921229012509966577343749974979542294256959012766189234430427336027840200467792797705263646552628121962760702425175163668452802553070188646824959654158547507460962607650697860198497284755289343403633929354155987846005368769625529963133862402992265507854707560784199663792877230748432073124573145111214301974374950938522272836464412552535232444927518064157300954789457369466841779452057965840619754431379957323617337051204507917522412427191531691280642024061742672120917148907882048809131966096405068638094269531428721339534876749541992334818066602796001882738256422311823926287896300558340903642107814995485209027031457424903796903275509664937951209147857601026518653158099850009556182339625184819899068592269581178066362762814792890426964041251661434193434078792297318778211699505374541495035283178824686750751077448658325218308443753475425750280453966099436671951806504108117116901417336517057031350653246833553980538802276138528764351869770367791492644431994227301674086414592812560054320371369877279999399216877969433972391981213832429455642106925055082276514933940283950354018028631091206134464976286770081553671126694525791214610789544507570199902990558314121693906044747265187045245643762814541680358521830256169309395998573898113070473992106763153667540829515772338334178230281369639549507173320323250048309951067462756507871197889153226831446072902943909374431140787639262712858431122743549583487490497649515325578574561292230859756955611033160584503158777201106412167991824894006960363104474567654570864810599509610239199185408409164016319891075442432145334179178179679359635310877134214081168539760277522094145068587203361017050525219605538545251955138543738153180047054203975671800187134288110825623780223502659494447592081875177073923129445234354898783281489621643607452164675277640663665802690206603827575520095693319956661238330470187865728082629205964218165173463629285970089290661617071708778305018602125976904885328383139030852360644271933336361077816819907331574201851489390822329660625951089326258330666708466798659579624063665120360912029503281185899676107346372965569531330349672002084584697275629780518867644145120115991236868057639934694455543951354665541431062734285434636835664280296453924548155885969445228797512801675001578563221803310355205293904885349930604532549289077348668476647678354325490478729291063254443272243313583621094920102971444606108668195118439285032956115303339643620522157342947121982253434246082249850019580094717303743579170005243089012875434043102477065787019947193807018798615178458434945978422263216241273156705920060376458472789512268226843276787120792778534999252053375136245736598301723134849994815813304914291827989933736364817497392426548808463205073023301346886335891955757294808644202964763658070952103511937930087030082167622916315545963323752490841323430433424828366987743372321847010287043848274814663828817985483069747598981161012806541278330096500536540270143720670540347230564092160783475974484721036439754939854031218983317135761644756741444934349114131441639395396890869775224302425294110340296469795663214123609459509093410952592721692386503563632396284843711610852520181506725898118506782583779856442338257161364522040808848176832048248178088301939176161112981538587817532797745276070993559619283311202207545522969834950852784316894470976932116014092561611347619274948089606524187679808727956994183445839720020795130679635088203967689819322574697214106648171426907220095038198379033847146139065188195563272601436169411446919828330193992868237287358154787986528062911598458935674256116598923222795527748077023314155433143781089044161446829321584692956921608842214161638372100618713957216686326829485386814100874450457809896089978630137873841620486532787895874078231669072356982716850729915027643765077013869225560636883908532148286834097732836754576752952436708043151380068249679202881098979141806973029751225809962239532250718786258809636605519159547390388066899041771237608707638049168794796462821605253100368800092033277796787061237086682723374800778387490637948207986242796932466128945053156019065148662570917725113878899591567548949833325224913670947126346740863068233084289405525318415540726962438239943002937355231054417427973297816929463295048999622757738768998822323368761301341954347649834347608162839460408342081224221953466207233781091943211467001477390512236402572115278254583297054739288403833839889159916039314443397149012925078740659120128188912325686080073549539847960942619374389216306122488210108508223787569207424757124696941194209141020926287511787997187188740646074149857168492542916174805086472199734373793903199306062884283447236314650447574162447805316462724420243825542161939709888053246340739507825402426621671797920908937151354924224341625919872108641083860902830269175611467732478288445332147264178657654333934707733695423280598420030403677534404592392680281448067627235890244234680081963492914821183179279255369675675211430847503388795877505182315559849374918835080392402208159337505664109265279158365436879915289676246215763646143134799474011136325342446873023405207840218296377475327537485206601996780576238490425820977255864774985702024899706866782173808745382698851791532874831940461371901756288589398398651989386162689359734644773911014970143121977149083980478672534492113261084701555390896158943249600481806390870714054282104880532266477624063530421116301241476802326934895490441672520532736462065225177200211371046874300133478287902832680121899392713148472649609365264175218317526154304622800156537981513159815923681730126716785749297229278312888681084253321703705385222233004891296632333623048579628790246183909689974220070137132668810783459679694289443717360506071260090733464982792647289323879775063173610645693905899353166484090869137810803089393196256036337755602881404734825926502183935057310359832896340057282481024605046420937062312412883727193059175654109409971763489103295271763773532686185287798759927326830405717969898131390483440205264279219813766511980853858656048111860700524977880876776467905939524988865589175352557462355530299224660856898492551787895955159264731854339449382445450204584279878128900852808749985954093464004927081612480054067126725804895233029711237712289211055362935687366523102789879520602661111030522861943231407099455850632268797399472278344830250275318627509515797685740707636788471938888515666858336417017048668995312579726394460395875766610547431503327965230448567059479504251856319541654889222124145998517955369303846822850968550102394447858080560859527385618925373446249206052053469913882992271996422758074885965615531059634138052780895855083892305981290230679520769401717260176433296564425588616035454460633658611075748637216800808691844372155858531309530271442528380243059778378453380407670902927186895592047974640036562079207142460611241516416966527010301023982332567228105058766513397932769281389583489926147277123258192719796000411904354249603593749045119449325029980854525518974021325847782037426775579912632035848762076321028371098685407777890025977366965052872093789225545208845249554758877613416432933470311665631362422518441922538935827133815939992494329841979327114832681074111521197429495212277201168803938500420943799034475073503520052021342159674874973360183319117641636199908368402626646225303938226956953969931023683643547027181611679892685891974634281532576360433621921214197904804219918104501936914276017948755326323919918986837162796317129276052408424220349860925589124724286631496134514360103427477235485717739814895540490883769467679228769483435792208479437651877997318874676029737557357066226092095498758216046626119911997256439766382060274626595029301372945915387292077150027060974318152817291595620846762506079208352431789442065698287707080229062616233897208339596707783792038747567342019861717475470634353503023834634042929895184125191785886972052246393462149451560754656241882036322245693315613916123247999316079339656943422518214880848206452146789313829401250519046606051690525398739586555364569939940173296352121138976654631585769670432880195789205478821716237465283988157709202198701259043221539551073945757650860955749786026108699036326091686170328469233458218679120227447527699082510735061447104476226700307186260892741427920194489473314692486437342272705534304577410032131993734925660619574424592704058846253508746218523672677399792681752872856561094281545916411849856361724197925591111856096053972506361386906874151641466559876715083628233231873242602644979922508023766879362584224054258405766326696162373373897952797447115528565816023788050380874931090878980103510364134357867333808602007142078494385719895591241133665764773482034200671544974668778744011817220217115121452508195640870889235669986375164352118112070818335113608824229542943492637209993278000100317643270620048687413245334691199924379731416305957780440362350162151970844674964333355008578997965700802661134312236034542994926160530259408849478839875937691152877665244396528766671942085111481622812123867459349635524543185769987588939447038663554979311671084633304074935891605316209862993157563349975709797326772969719572495143062804199184131299370197870481495183141023674173239848807230929108380750274684401340238528846631169690828368328557068605209764132478799361917307792586070845763637070951551499842702244941440847719537388855201128855753217006322859810690829732523555226725218318478219298761709347784248335452532713020088644074672368369239068183152127967251424026009402601344208202838369260468648646672124441888035074886792586754622586690942805513180681968029132726004883627748286860618196046038552557423967940353898247292173869158093248166847899260934001442811482464090382341015178950115990297124253339932670785586834663142782712140291244774349862344627612403279717298701612052645764694594015898041134092151034214000078669490691734571189931188824672968501834308703916811328017339124314533346278547628804928378136252468610408462994628215930315333473730869757933700943624581659571008918941024396948430127645818207798085641765516154760101059529292303104285871087241897669575115566537655650827707450285649224029752769089766846498937681870867264311019047727508732214551753673162302004449840385605767430032620717673716050338121521225726658795224749092682745804212191271613135931585401450814985698370967171322907952781933335431000075022442191756573710549761830601348295434929550284922519415061437428920764617986300727128532327462578983715764621018898784629899617176819222937698074998918962819581781401853428547201516541313813369029504569215016978594683153386377835794389133839282953120386540668902918917472676318529311574754803436398248725842929376806775578636125236657593030775239593142356274587290401092754003121029003224847531436355974182991232283431629161802354271523670030210174827000543188224887961712203385352170858970350700076122590240463741695960041945549766514476468633895277914931870191785187224530891143663642855763563727410401132352526917329000503481429336014138437821956763923421739666688857415052875371307532550948201476928786752464757120471517613620585584138770689519594383241127735818640963584603398238724611587720520736980823735260683744979603217035997025004946154724314019851366980023546710737900519297874246872525111367277672131666771442681511948547257205517699144168821655636712606056512163509505520319160871711063336150094422981486595412520660780266926105503741165137858425155799846660135322861973923861563725670146095233467773989407044145499185913315049973403790192844908949131838921783417543043867623792093031034757117263220288612928851570711410684641697461541039317191048625483946152053892949398014036175681719910731551596792533069041602738501482679451250460099091748310581982492507710611185479147605863761051345523741072701102359306477761901020123814592760115044248764735490467039888811069840660243338645414419954260089337057554019113975508469002855735918213016360629618967690890612343231698852225888071180546890883844024798529018408179034442096785730594627043501376688319272819018227337960527847971114683031320172002779117004741881202756482742070310846010453540757149666641834442951461434786056983287194655390727788548894419082590921508051477019625218599846899502409622352185932706307139048495337161960723777483920134679976361162732871143425007922772319189121974004394135070603004486113437032363120087740543160919142334687907766456031551013716457842432362085642249156644733797555384029845838699409047152719673688733884082130682434025556419440246799632777218674333853805398802995980859759231452568609646150344318217707740930577354699046061504118961674407387401031010485287370160284563659017937345668743147565420343609035004049168708056053060383134915035939652183307340247312086781903276928879853564394127654522097017289164419207643426569474322960827938112138107031620285262424848001191318040999460951045462325481046907267182782151389565187559070593991048645007923994550539461320186345387576980851776248824051193928199924464536675317136236752207836606135022683817424570240014615861191700984812877238302221338862252951789105853326025753956545895396341189087759178410432959916977132478991499655156543141382950786475392513675165981887231253167518731901895552232763517165914195835121426850653771721512440601958103831847027912626004171223110937010568409062696648065285497153998461351717749057448831992735358353276322399682998997295163427199673989249129934670468720228580329572892682495945559830872398366507390395774289431546415597903568136436782733671691108816520367610925429924986266908824493282523663913352949294746873678648887334046429893230400982820271492862593526631383240175496530908933707520213825719557689300110719887629498502334937783294274671443587553176179480829836559979741346621439525346688186757490952793175937874682100245986504512766830854214059063230303430779344887274212495063491701276863819094454359303167005947655787985401853275554782435929411715762210751162892138069178797664906032577425891432934710731823387436229953140920711363777788067614889911979479432588525183561172057461460935603486066551179527337154887316628943504059969226249360676592624759538590366968758118095146954721815944229418972071346315944448196811905214414421882889503667353790901529412389896879249910795262022122628598287654846188537870227849052047817440842181269638138552207250333380955848487523555886014894274578318396247690672890773851311695076884543020269991196445644081121053760529012391282541638351474898614911486632430062733133413871981606874230437558486957640203394528108426566325274222541612437438262491419587106484193549269874343348756752202017433191629014609115707640407421885404722931987623068390218695882664803243748034639181098962127266514503673064034453574623791535213824065649665360227414860558807516476787331996691769025154168738456855318767083515181726871256242876224687554820727895653618995295998653291202303254739188743467570355449093291525796367549155227225946140098630443872016454946149837095514336587698128455351611277757812230096217212453459231237426374002401147370232222763107880218726074674998142833063678993482833618574713560639842255476456464643528930601379522712926654881829903281595652472615561343074074233151744636071508001703526946147764561186760296793709302751164234489013209697100010137302847780899263907898215029771395863896370666258729609316296118126295341862647964074432990754118133397752712134588735034696002454745573525855957208251460708066190431087137750377365385236109826979686662357236770827203608523347383859697843804276338564872895461741063406872392762874588894540743967759392031955581519042308261662722179155393360912634213132756545856612075340841444139204875822549287914388305747528160878085230897998852441700278068130085779109447297852070792682207358236847377172027895941348114848326575636585360349107222610878199754978180116134211152958858562912547087121024357263692134108179104073968954085353536041268208766504039179603146759822595686729452083170120859457559514470777252339420035213968216870078064188370123723140322872198623498432747706768875266218133230520165427122489580736897258661915862111247352806047287316681940445471234098002097947635122168520535172557828473576060931917035801794088448709040489352692951823880021156767237646426154970558473184780296218886053373558951710760962676301398326084933708965226622578347371763753998962747538982901666301680786107223415524135075042120019735089203984753189947089472456184336169372987677063695807281133984390825515161757616017769287337280125938570137886690868529498590745080053924189712024035067910947575779105176228584730657917335986568850951679428432331377103286537265481049406944096434435205791142144559775225773120749549791331471885472599707263209264590565546248776261027557720104068267164613561131700015610611109656436209330962696689355464412935086337659880684649831873025049808364052874000579177840828131632110171226289721838928052230492786520195364811736188013704429288058314514014186703979052451094866773773561832020694023696546739803199720477203430678169515507665450785648309410943479517698366314174240772353662722096033683771413067318206356062209188455132397951536347212659390661734993105077110017834108774159345375629474110871195679181600392452715909694821452896213194056732721951283520699926504795400279275652358799484273911153297418224688766011110641349938153533546399142428955045239413100494271476930268930059020751632932493335731124409247172169106233992392088044078428520028674330072597584279354482381820101244641206384151936132763581084510579398202143520752058688023770260457028462098626797989873350356904072861372515132894173249050139918789299444782871502475004915953994412771676569463633443120020414959980948327538259708567063654059155516718252858018511173637285763476076953869328580883188388788072107022423146366075687941225516829684461075953080122092979320845967325623424131090008961604385184727418761489788930509596776392675645530160432385878003345340158879494700981200234746149247376198768903614694765592009725961042332603387423781303736849086750413756052827367375538967058395206681159016210295554873640844226152505600993197816367939965912098035780788769952842070308630108895990011180786349940437402547690369851771877742754995455101282303454033038338608046137250252150797298444991949947465263150929890514361209879199947075957229974342657638236276957582643546783923934327804667167727099125635901731699247470323592668332317766034085083437487327260992613378133565697780560893607829257181105313209095310630867080388213971555747488729348868206764671814172208711425043888046206711190533034934502505524651880248070070849602983201396317794316733453924220472947829423774516979917700596788718052557600409845311236782432429269319359315440589622307304312385401279413172031710203618143821724615181671095271142488717107351982441110267370086133476688057373750233565483575118950454242237862737950437604694818192291942597813106290705267188571368339970880806914433947787042021343343956297422568053080687503326081851361959400171311491934273990224132232972261179240384944115520020912660850526812044030245906917461398769088023344031568132466476809320410485535930258439250434129149079251679115059115207206569948960781669846301357895040467496395593457291633921972719986018592095857420677992598815015886765024698517993398395554166650876893487275183601080378517767059867427710473404581722060887635660948631147670411714696234906729420300990429514488516059685047165774411031676269970199409263016904315196121359346820554967079280237495889672489324295054603534743914880515804009408212483540252178069669145672016269613459797652584128471257327267605798985909965507382256303660047699464189967491967390830538915311922156368416386807161180367291861827081804665502775433494217749895118084990120634237023922456144631560740408470235702699832251191636176466423327845271680314567379387466103184624756380819046841955531711710638660983859396277418068058666406408180574659069680656441574432296641205589590644478277456242228408641430380294480813166015730234737609369370261836788508427996690145041475619158358679936451363362248513468262040464656402070020624470866144329023244815004632211476540660111570737036408130877461547750580169380649730825842363962857468761538333196047295558618662937022902175578766761997665722258649341806046545507999049793921674386109919766943823754679592227332246764591514266397128556923360289088960021114417624356211886519533410574888362585783811023358909825414914982682539985877199692530027888197192988276318706275441862799177218032788267716934205189750937099800597021804336302133096486025316627675982610038624294700437668641042152904137033174229196761827641838500282145331295079065135682413476529243748924722551043293375199503165362740796272679365174506662436201665309070235336581539339876424977254143273179953092783112959050783201566554083042928924758914103376313721990957036742125170451680179478929239246466744163754353973094086806323076260704858248870384306543049478393189395745584963310866797715845808716946174881653626528528523936878989392949333675623205929416767478305001659013454426267219078287563831360548419931705714578192167751803958674217768448795607141299315609296957824717404793837553962792910839491148464168174467499936785843423654193913067278842311720236333391820091771337611975445944474533556490819225373259896865726385899701941453061244085510661561960969786539791322784229490662914394305224405151123564653195608116434604885748976956252303130509718895775014202645183756680561216475634328738248200773410539949297910490025098911678359373686249559126389683777465750623871447077695556109092556030044080559067943935531708648803021204649267373857645298647487841782207921355444876297422440119685588535695582771649486808817205675792887211698326844608209404646515101123659634764470968272785825732548029475584939417716639418608159099073808784385441276950890362724606892926051647257159037118771506471611657669349634580105219415882833431807068323130559060246300083090003428080578685350403645874852527573077079950799408848757294528223491931285296941993530032078489941520958379708254460517044286595219235212885206817627174920379381039841390899150765416945716199951443482331581901031455633355027356580006214215989931564025039835559100866829253719756658902483079290978744072003717119629058107226632229996640288600057847391247495874541234057981837736816647468908013832230470537107386467247904086692403332059056837164153075734939154284040340197319693519533929661535109943918660846720599776598452628194339092841945757101913631128603743625601354196198559161489990081724997416269697614796881348762631537287841471448018844992921407497229095816167782401848821807647790131641152890575021401200914140368425227833038816555762763059998776656703680578614351208576782355150277469429164735585197107984325578257511056474645160682576672932836002124008559219554146539290597698895207932238324474366556070085865183567950385702173173631255322212775332426400169380214631585074170696507685150903618524364581530203364239182679500574105272617343246238122066952828762880180801422626036762233436968182216201296508912393222504396850903689196735417145219375107074797690274650551819196342225046603458565416467976478891596628098904272110968620123162919883612688842020186551863508271906054102691569904287646730759154984564235823837292441839757873100631422812961882509020403444375535624474405117486853951932780165893157523245040695285036712052154811042258537986729243223738976207484069767421358667480677132547858730248665083255373195160047344363004464855825119095318601260286631085862090651551216494876491987639413599659881507156124929848348528677809190675210804920144362963904890526875119137642272256175429788622728248850383627510306877141799773325998581493974953682481351424431041882495988916956710027283564792423406626349082441644556013381629061962199578635149002621149235988692100937569252276650194921699234379984022226660666014421089475393382600261825437118610720941800056024291096651633363965987344262031269908935853137438998783351875413592581323671465847170932542425887239271765044958980544014077163285686327264798725849627525068342368118956285771402594820205657166547036227062492124170002992531245497773264097254692581175542321899790313073230079274301764961528428517009552333899578474295253506253911132710401591711342766491574810657896781319029382871149171463604917021455940987545832864623820277978254341440993084586253384359960451186631497760730101080935045400182137221963967012821620900401597474738842533031136980156352457910481482871792612040708848545814357044892919891903944250310282160773995834882246936426964967106133723581294204504661249957707381980857312002798502007134651000489913159218047370845975960081122752482340765487111601050146729493502707948691751822005854803014894023932188676746424512848765204303093127093774219370198676545060948208407555265078370439130178228202594574129311809635207126875276553026069764814954264386209752857494210031131487059001954203674721344478417373328966789775773225266156689166612222138419181751615982436473109816762675392832142639333529317848386036423203242938967721174652266757174421781592940384432973464546095540333791560930100628117890785999431839686891034060403744484922639220275577614362068904081368040878360746744062574554802990547037192837269889021070407826430771247541448482408076401684691626584587218881714694956492441343614524991717979804639375172137704273413854959544091371136064495714964898653407709778201097843819474854928224148914517654042055999895926249251014455034250528892174799385250966559545206752265593164361946205216822454924215666202865612308282392881252568330598417285267287597300552435600403105695309894022499508061987429770438756053890123080607435407293199102100746040788292963528886527255673732072520272667411383036160683843409333308894489286411992373918451822647708767671633372514310467247210507102635516289625108558856525852622161607854944883759409132195603918821159647876792884510299678717383291499464079578363509382200047983110196733030637541006321145511042872047749467850485653566174516284832605141250744894317207622424335415578208266258729914587465140763896224462183685888915673698245904499521747499640007343898673414678232573936315007096359788441049499976360596801283386024161745404759358319037281566432458484094540172672447966998292089025622987357536878292314322692476731443658674023936865782683077790106422852226290538603757964284435901496770149926033201768488435531923333943301244769832901890623403231144383357916973924208751464669756409465052955616714739408929134516460506679792384985660801468409943254210101472635912011067360163997744472153316131170399877079477858052535917391222280097442464586109673189446776284430910013134283491898101948901193877916017106653528202591068139610473939766963658622005367578301962320199750751012452451036164816938392160583836229153355717444514046391445242434310591833466448625603438113185783413805440327436764961916379109632639347030469311832347681919780262863264888921117125763274423106003942217515534448967433296588228719211950797147262092846100142058996478649532621040184642928982219114837517859768302360289089263340359504867977798047069192966781254941013966546656784898710877620713675130415562334644061666886293575092256380554462580075647063832080084812930103673233893703362271017397928596300588497783024474715059911389694950851652832256489605567807720485195430072589138758603392282385796461065400112972538781552103952334064443140385462334007298620940164274440411296947471762161954517428682911788100875769403823004065118306731402232339478452975485898350901194112100475241598772966736343978420927667912785757940010303121604487019499470511581350609549868643857152887356228151730889051074934914048811676116491532265316888843056072087696271088833640752135948223757631898024670252987230820291873854581667086993491517871134106181574841252916192562290048965299921789098282212532416858874912335066802631968045204488073399444902210945293549918674117574043905694493009435055369301028181431434249840087357513981544477381173886303752002157803782400613202910409570350564857927700023353999138726112355932656647517425595135764992903413944688855854460673702930759168773477239116725449948720850485645471666686683109842644287506696679951710720469038522104109003795311355522643917124886840000535023022911333230256962271964342683314770881721751305180094971890037394149002799208261573454730409338299817534611697537239444762256477466250671797033669034126277829736265659084609567877105682560736074536700882897448263571664606217940124978821032374141074453237976446455634522140864726189806085625213105256980150385768826198482801380795111725992620918192022413450526572388261075261887518403727181543318372155887314420074001251921528831459528812991620514433655127233801810256197295085064727933676014760182149408694011208160623732681070243936644987150005893318559178695904981933650263202718749501783291316611255788074134516136063983582702689540738639061307431093973414633523635900266168304592983386110390331904021734351271701344479993424481128146692038419784597828512646089848883839286304870520636985960086423678770499806033837359886593116020473122745521214029452010114069686927792342791743682391643196945173943602853671827652612267161968844374002956267857040991577210191602346318413914694303060108820396244208809114766679952483706915281837947162216561019362469969928839720674647645721751213275330673347904711797526362258216688897131028891102280593931762560896585573254046897967728635725889395435124882089006663258786886365928870735237267873795235776455867026673665202247948817644012174152045223358343119164815798281291071223975098585827715934192745972628523316517364486451593145725490562011579375294954643108422369189367778980504984630535470086515171412170229037616473058601471794338863923669499506217991369848258250009811689818137434532305462417359568098594956848532912255609969552708634539271997541076136538187559832022096200911576069233928754526894675818086208005084353111477622342430026570387989139015726859402445057710836797458869699373366527853232669072053270240327868718625195316287877650906546134004870656852680393496216464709598792430275210842767487748818172857934878540355208563312503471823717192572148220328919725105237510935663676090847903844967015600054616106893979305145465016783422000431177988022687563503674187387915444973612354948089839911249015142741232449060305484956319850210854101162734842361411236794711762709265218040143584803236113307399743717910821845524171005446777211347620834925764952495322993948859416595909660965294174753150298384351205302158457181691658096151062914951346098269778354461324778896552473271293175349880635328052305465125920072094196707016609329082254385335411102904641987248917297515068824650931241746550162558533891273957518394344924825749166300912624171525330296056517087903269882747706891388047543617326432596448733293320426990938536756912268333924945976283941198300973617403523760214352925567260933653578489044515673569218727226528775729575755596343082260400289925401644321893579413592647397432064417879798933042156805783984396658341254150613117973501000628312718008576828332128705298569418531613337902702607525088341450824804696443603068908044278083614800741467564775098742978237980822066692518796978323933386707512952579293265864684819547922697485068646568633597565794976803756955914252805423820439297043194442403651967877953875170378331395430357660106566497296383490767789043815600401952140011452438354724505397003526475749001187063344212276982738026511373162178627104183399359643229938791957221534530119220900012637250096510857211932884775954061859357599018242943820019386276502431521481193547828879584578267545399842059767388042303069865156385325798181043474707107536363196160737288789625031696128204855258598214931726652403705479334127319454640412790598195850668074137330596342082461183611444476056379101223278889101558089207324952550621081991412180586600335111421387121983786076834144330246209025483617231972861300922159054412011475827077093819287104211822342211132882439367086010813666134805862105657660558136550903743700957109052811418463950224981314018366641894720820250166476042916281772938986709915582534372853662786869760128916629993356327347420578651648204507549397151189466136472714853581026450040779644183939626313183931359996347556817946009727353016926594630176586498254224657237757664477794084677932194846020220324052389456516791855634459769149003271034371223927117131459752069810385535081459336367311009904780905883710449047591299750906088864249756862919197894475512400413472144509329623226004694244805661131639532455183879954211118550087926293771169619320337521770243987581800271590598471947278300510497237150759305437980824057745585935648557115603602621666851715999378503512823050605318799293619322736315178002835277174430058021242781693587786837749140548533224111373996093659481163899997888556878522527609439527767742148228401878995225256528074229404841987456238370622681664007909427257336984266889548698677023291184645531625805210853933892309923406986316027669052535638555672856304614418018075794948547273480347383871696560543293494535093508629526341024541565585090781594353254542866229440769973695654555630714948739483920929049230132173188038555934854775788875280248624383022392428385676980080637472469562357103461818194460855288996155865757713789026854422017133178561294061520324436098065546931798517406228266993752683427503917196585305243095977464046515927747572851616239273292545622783243243360740880494976128404304406319453120522219314380786212077578715395307821406715154035372617521692352658607777026183790717516016748938957041540651768064253049585594444448689646294449358706715268000602430501574005003415999150359105109425467926834587859646961145092415573092187648285805221037087832887602305784303317934599668207280633881325650264751810170608892873390775001265866739189044458002411935685700641350760843362532212002757609304920075836927371737844825795668610012113512570000389508369042751138321544198622194806205541853807671571071883018692483300302097355972227937068806719281374119855281905835987645239480748164351534304176973129750663264006984401011913167595451381149016041518551189993874078645890787340545764941449081374687693056749286425506057054471574695302884859855851608297188618624368206105971824780687078345579231699045690291453365986396319121113942975552045563159460349363212539771769585121070367222672295737587046813383821955021010444236359674326516876083045812999279811382428338363008655985382227457670941314782150074466530101625728820032434118878460703072578650231097333610954938882631774600717291047661168164694576256248537079224467484960951865889155554988645163125870733737620167175744822518954601008484482346501667841772076221791754317200070934588725403901181400988251868909793099186038252075264717498462390269134041723989874443889839293576404595580692714727206961088596770811170313205408432899885304526490646251598368889397088679216082826012952139189033125695138883978172974132434489972379545312879538661137660825062477453797206652854527737127374881848265980151842402194507757005544644010075187915207900633349315565393982844082316077280747710741066258563186476650038161621880705981086026354449021308616347623891002353371099796248232946206376467577365286472647768372730601137136933482002291931470421227847118548372454766105932260741306881846214620983898214487473277518034289892775571263839430725529141854149419760632288668123382020977365338921672594701034900281176129118878454230983063779589522646477361140408030458922741407752118849796971120714838732903698254674443725817689230246178264728011437924944203867724581095294078996623610991275708731856667634946321761635861970780899262232744520664615674054600732029984127766422497962272994715347431685303834787499916524872834110452604593502513569207222150961691196124072741933116595765918792378419098212157380033026605846534657677977636768809820879624971123694132300365870018194565496451552564068442942057606158427878907546333150628548430707914778408553461562192237590401154449709999566217924214493815414467890737634620791368955450718761507448289448670162920731343911362314156648101781076635260233129959750939543510783264428638968481850510919475284941586633212043284527560284889057502781104122314141778808844361673562291558558595793747457676443414168343302584794659896192882983420791795415111186491910887409944377066417862252851824431112425475134423328730366215392864306921299989978549733997742341382231614436342817642023582580071589271437275380538727388918333037467917591188149865824328447981192045305665183987960295836054374379752781034743782246352944890605924455888010344291376700580897974491674573694045488484564029681087569329491859418978330325444278604344609127675653551280522235222666392585999745381174417670549179971297843638707773703934688383833204915790449304299320473426780770375745001239649399879093122003992114384506713805089205748369265536555769824882923950472222428029391690515734829626398204702572259417256790921067771146873088953468647434187794177429021735735055515298122647267371738888902303495257040378746985241761044047808486473701257009298590485481150197769541165761139785344286015387288834222598989907014057775303697294867182520134444007136749139629200084748758070413484690358028053931916853901150440866300575901050419125272579316660792827461328062129837551950989612156085910139247292382595069903218343039073926460807385646619911469294146103448635045110858331662163987913542509936140176697754756127173638622976892689037326073203571498362594142747172368539166758320398346183248815393859545759125684096395866761105089449705372995753912418872004340847107132765821600215058321082120648375425516324338262404912161067967116904952136415871929606505399302241514221335923400438852130331229228636224145371976374980947715335614279681290604465556483444642266109367392815403025117700254190514943821406981315509457549681012207270509520355320095513209209912645254725758216421184450525491536451586475214114478841782729076812448672655280476628420624564697552560353911689459699316087511441411455409261682606049720610426496260126027777371795384476212907273121517421103908365745468269708557064613770344102592489555899299362998634915326258898371838120714393345825890329930963780532877143213036202063668922385080468754362878114032918870233391733535148899415418462698860197096059560114060110933268781151850048593789805156371120457941150989638768116846704453535941734191385798131633418079527336275811012342649199611610178541201599801982936168872015124107935727568249862250353277322317582744279860113757987875762735227619197163023040357362061168121083616165778589386715425632595810960546846201692071249861101037674557744284881897118296322968546056581325665618958624142312488448295233471922739843172745435700930315123251655794538689450240136357535716016233682604128562653799978808582424207385698953570707565524803388038788384302360553332641587795614037889569040894274376211823763294053076950786589594178788475263103287222897352904314445919471117886261740090759625747118970735769610235038602084887375467204212123520902262103633075757044431528567374720665966332611820019006315145255880138500629889215029862045024871778485131364009747917987355065671449242376181889446330673243760734295333327843552905518675830611200164475996292265948116183330978808851092558536420021014407754300346941294062838648050329658746300679851323852743653268742974598289350676355664566888555349873961348742499775256041059689994653178870713739577458825016006297737745682244558157714982078319134791237804972696819291720294950561482157545750256639152101688136948011535943761446341979784382377059914391517575158016997661050123831665931809942433469657498142072814262627963021889008132950018979776015689656952962956020689483088147126208960722289462957221277654739925332712079063152745448170139632964751477093608007440813562714232974522269842880136902291411413163924941966564523978328335263775867104452442583103223748702541525007102809269280320520821543720549204414647707172223033696964688655687148290034624962075237748114746794687175162648540299530428039625427486257577506979400533955899273632444485875412080179070099688018780564757627741918148454592274424589917980794774563314878616965193249208545965151921659550412879828700612543706812584065853282016540254802418867700553729428640843657594932595354482077999287542945436246923167678563796663594061923003972790169118765116958660253192247484650612376085441924153857656263882780236635535638776683787297938416868276334013749686671535022013817476416530658848442226466661558221819590354846441405389454578995805484405655854160525920697731970736811907041072442388267122070305048925115990413148382224265344225405470410034453847366593067124546880414654005753345794555433917204997706889834327545798580653276242918328729347123590912768814724222650867586998438765318413675427193960549292291108241507911176928181982795740928754553831372448609782640540812112996657860121416181833040638268288720034815676771548342291226261288687400457341271203854993209153887026509279431396817007863045645348662426774211326306404087580752998541873471779621985675650964672632161774977923206380396037318562293249952066780820670214673063566495468006779047508861783130137377113337260759439828886872187440852167607486383281690675244217020653569247602493288379045000941554218980664874122448458522835119297707911035451520346953010881040078603854695570081880929312023569145805852676399588681965503921994679477191830183416102849263351824101139028433379060943100370809095150078855892332591380897721634232005111804237756928107002201483254361989156959721199689529002886825688826980544897287016728612339951980878491608559763617876970051969148692164914279174847461455876099167782386800859393919044427012114088435179173479303899786273060826620795899292261955735204986972267871339777105010042755121743796478850070820340354650872445337002458411339738122965657561329515330663236126286267731286039590054989152645418746440049845924227604641769812147011605164260791894094732553661118264996036567687684571497516632744455557998135992285975611976293519176634205920462930258449866694813735604019673419701785503136632180407589126923569792092674703817281084126534958764405033547964991774001836200873102255435475134656048955141271200919737957943601496625116538486051236162915158085614361684382295511305617365503110057936321699356844956476912833785252029810627953796613379290789196221288031262734374642208276557010939851193380952159944649083990066863718138643852113181073509834050764252404085843523396909928464585286528892102826387492568096176270590295711243111870159516615743365202980733205238616023792764320390394777294883447499813035591340833539984875837017923534032039102162705550894450163261997127741107847680641697624659227514854539335428684365670346953801391226220838195669115180869570982637752095272466175438017630171613089435420937439217868877446102302179226238174490653648083741389245089165960574206769977154183801910410124125931576860920864090802924026453166093448005959282237005930817405320901195275966204575261014577360524590188322230446966819677023443343854634848277570117323558347000701041521718089009024676764606392202605995778251060965409533293881747079944906070517438359478451631587954191015959818494909243360570966340072467155901468193644475204190124219604376332991819850926368085272876157575781424628388413161154947796499969152888552951744321547762784927432087045059383118719906796023063135659990711004178235784066574853759153189533764822885399104172084285381372957353347111718863561574982020435375119037362982786461707372143289402899885466170831667120715730844478865564575029970189996096981859634164489949639501360112876093440729967587754135091016451558098703108772350895274251824739830900169359624490614389395609636498260044886914537904656390541968460140627744536386595727107154423523099910581459634246584359992259223027529355093169354216895051394459970755274871346695133176533925684198123778334731437001179147707922398570129084619510302815224111592050114464740530486345008184408467356312029319207864236680877706343097122932136139649505802253064178669045032080632032334223651631515804385888004378842003044113582220215436030477020355201154453048906946615218893184316980654905418274781880633848693900766342950808115377942169946594837051454806819908231492228588289076408934703919999004203270907132729432274089885045072364485866311560371271490248366639377585996881739901898821959452069357740100800556431633067030552663974107708894784785223864852545448288757222826826213027023584178436265270730067703675605742778061897197791910520300426229325902301854444164311134095940248060396340681336094326401379704271409135415455810659476342591272043581928182476415463351300295018414479126457274348889787644446583605947533472878364663421281823210796117375034560575926098520379157417431879806545206807698002651483457846277653001719428606963586529638813158709365083389339692846812466266198656762423587552935467551710142599384998756526753587791528415034220852554981506884030332886711604565016151233752759428881221973166433446915451260014962309583388006086827127101492349749716277083641014383143055907683662057102518623546685443484776955390296296751467109336958548409273546351541558589019698710124655557130422032015720043474267707922488227545138371351419953912203287443783623644547340361816389885680359543186606961482316869574592440817112367477014708164803566330529614322630563527871483108053636056239078476173278711679296350377380690133067373959738881711935163450668223647581193046722259123045907760520806559556691046112427530460465102795262153228326554835049011149729510993606870334230744452539222898129670267445359931155165855535494667996606853661012590105213462555301249819112412676549422880127966558762107313048475965778695402714911447003024354328379676417710127929680180853016267353303638846277643684478347605935475675040034042063841646463631588292374003525206633152543493479607135820457316136333263183608919439708097190383262119902562523331406074345693137268597901221915911883752562037442008731940644636962254999145641389139671685581404983908942132241461010129307886413377354612884076476147474145690449900872798309193914936127389011637270549015641782986124015765961409048330099498937445020621904471381540600302548565735776728403871734618188390067834992014411590826419904269684792666379310610888534546916985710343119140346062939639648358907501490710521929432905564659078508367562618038488695664223790077901019335580676873381917643164612171023186696156046188483811292886138064629802910338715178187764227854254913505432967665304298088006925377803995456686977593824408583027093185349846953331350643321222097201789664208812474052129557104383873774937507572744923255321396153306271145072623024874664356836114208238279359257468784866748998342351834570191891626641087696006899346855749880364190382392375983898141147229145442393954696447151883390711104007367572790656230599686069947669588420103742950875809959597571119048424213731066039723665496934152241046662913614353905437069183827072889593420806800187087329472067536124624533230563529097284159629070833438032082841868169820732924778279912961923052661414830653616478589756906082941458236635589835723393121761911038103725414170230069442466675262349566383338231834287225848396928596471760219488657153318591858797641077030312808957310589065041926183756093265102872337341026715161760873808553485313782725047620859582754349752126411330178272924302673763977873160039927457545953480168951896500523466764042415821003212817936011485167493084471096757780133248358138189937659910527368332877198774100685535479224469963709392758367415930583299860480246509255557012794477671362538722759906724915831186922286011479061574973113360514193919558567870011466346541734979532894008194171899164544763219381560709891675913983202720681153232470335759328136507981197437582153160447804753555834167669395798842287659043375467752491705329348540508397352073634597435329975755410263152588139140491154666904912828231154556366129338481331647064047189981309239194683025092397505892021105557219866126167061295234964194869382500327144275610324343909869767764597305768740804362442032072579727056953431855532564615587806256612903709858021510987972821100274354719506648190981062252145547302085322588284386075107380513393206344696939569063207799036925644972740300717620154973433115338472504288586816565909150982393586559307617679524947473735016658395383203260280063493016119807459630382142548207601416410518111976701246432119866972259139689593486373512636853528254292751886951189615460908129292701454789584862646226374037641454327971015535197972645190018229413437050549674886655047599678627709016452252619114779866633124869369868213970487109572046045026799128111211752219814894277423587780363096383893348327483252184267231013457153351492601728370255419045314486345887656052510472380787074717106224763498358015470746400832961634620629787291928581224450166262999428750537215189090959197027986169480465891008744812891954053998813234535210413229714427298734057272101142473241616639334887990615287224921419919531097141359155727817251569965002428389967530045738752082788985873154721990771023202083153916861845475402461597569758971621774484994849410820439250727088146454067336153978843998389111838380451106446336031723438279836046456871789838541044137519631529636681083064088975340026552876270074919911884728148457106059466831260586176782222252412518028131721094866481812380618437814841702193253898999595693797048466717286651224880410668836470759614838546839621968146233976117102895569065751527514011140030672157312331279552627801405626646865123306415298614789480991336263262793981153901042988511175381282336582982084201987558341583286023483146987318828902702861679457108128259735766462880369220496780106888987722654975619093886602933780198083300774027875121614884317271610025132710596457206977152269437881096264922741028353873353049454861029145447451492603787249055929802238540784668476572815499696124896078844519388981321263067944579669722993475744687381076134342851889901135184774414354211837191917923986360383404234131952053204226227316635032379106510878252878439577716947134644301242363732417074253942705240105493192162441193613936913907375327223837494486154294343794482253401092149650794591229374130362958250642363805849160699548401626220179566095726260881514732569391523963422100100616065973677338924156546952942772954519393640626609764086124705964007938304026263820225143804640152550441342142161619583703854161710098922740527645871352052153856765563094096134027031999205175464254189874339462861588302891851963766972668424131406016838001289697181736515218724070445738821666498628191930963716786250615077220770484343158771954201492813953781636589043560983012549395830029753078452954768542332200998610504556187905969070530917907156720268950888129001019759628789561283778830737926661430378890193008424753556382607881422310915728303497537562321580665558794698234858251410167366118404036363055437736933956004421515368108123586448318416549378285290764292938325168511874669274854752760701287958573640778181599076359399746499822518264623173500650554858463539295212441057523620983940748400286642804002399099089019841143093584576984226009914380591126451893589529612313386145299251964060476689639274566797664957926316516141957517066165024145490426955926896284504346341666765508737426554272901668807257758195237585863951318034462784046226960367855107154239505151859602542018977081689448043598750212995116474217207843196761061971894240141353842316085494405264610215661628634680946228807912893490744056411351543006152870589079882044721387576747253141534158044984159905993107725400555513049562359044584418066882218372973707047486148962583154340849591769815714036821784109501046622197708221398240597332587984819347407349334671878514430626628087164686216727432313066105086736381185082126643003083755152223603353575362621012973394611999843162365397782290367013248409509684970342401437289517467973806496455712338780192105875802721647128847394184712943800964622399362422113015188687700377585486342863266645728925917423379825462309906179186860544783243644144024026090311953445738804569211719660620147222816444441228590792866072446186512516305884897269681604193421862966115847088259400933126553620183008595297026465085362677014089370733086810353294095151684702859480536010670020731574309222482963131315620460071091197406831207997247037491765360326293832274708346262072269526524734644170812350173384836262427386785170732349041105803111036653659639182636070838674506493970580503278707667096444252880591815466331535870654902783966386492554885145192662586332140181753248272106688151502218649747751586062615993205450810148991504884145855968510386636264078680729599537993225085068800480560498367662567817417943004378328544325197443744486606805270261917841316376897143735811120998482464871513109404655664384028632614319086300152447899174521360194462085564540552529464436078066380843044290082014439322041010907231791105508672843657554224671030743647203707301229567339213374715804225560689083626967540623935938852366166881856383322463008640932777034654400240686826609110155399538827852346932984565683792399740321962395976820563394666514655291169058091978532681459982175297547884628378745019659769218994949183018598622147923668852320035480999604908160295459333750547742380767353955060184756318500700841967029442174234783980482473034551160539490320118054597519455169109510906446644525039207963096008681864082221374798344585183682688905822337457834792815543350835985769443335429153687351748288431590921933613565727914636074302924525238004951193928275768924627264933216167907922881261518999049712225242704575845427699332144153208218456422353509584284881642851904613526932436477454588648552197433963022874395965989221849373776805944713198383019758238559657365098045478351087746612898903607322712489135956841645119084610667873409377290912703756957645957890788320836088960957571388181602838325180467444860638659490164325074176289756723926285006144010818550898262389440626797687171051498846242715151511843159385121945794243779815122662327785971663254933658221227120506979411678131289596955207975414259254321757016081145084616196317641222490522192653151893806267447503986302487836128218691799146212165941243620191328497515036849433945677350383730299730494511544722795643759216783366739273670678296780726973045052665229627321562788661200669027585485454705498143103618903991864605069745405269460537830668606863060548769422171792082734684429134587419314130013253680644124137311956686582748573390570615954626540604869442710984476304850433570984084378439787214007186388722093875827612598644701608662872880535405034923595751448208802465805527916181206335857095956686293551441116976523885576504906525343716614528950727762828797227877531865741427027144527495110108985583729207957596965329265616883668344954717244264774411202911190288868171855951356324447124695111565909043002797546343205733896681234904985493503931579210494595162940556470109657739162067088165497141694689519123121948804044570231372436082185636045328183477820648755874920226880710700982248243468944065363043774770543258382659488033945918803166704035848308867657631722123631353610194486278408124218903069033734089229096256349538173377904336237711234516427314388799981119928945267866966566620539803450015153503964340250878201367106874286503109218277283462749988019857607164177763910688570386550117073210161205407031101853210186133313461342576492938468867459612782940097756225543480118852158768870579362267602046036529821550812833929043417390869849508923528356517402495434297407203929676080617803469812997082952681941539753058669575322061377127687688539517618456744596292160915698012793158600143072323859008422668467368359191982761530497359246909969955759434814315805834230974879665015467271792322945191991096767695948151575619157588443706554662909976989322022449375791042200862280002038996731404922615610436702251325228288041595387475554217826422597221446783573381088413893759020274037426740443397795341219949043395153580790037924785262923644788818090556348654585282615084456373253074963634928892201407475334470809937459170839905624030306455720411786703199266981140839930778522389316076221352412263410005172422492600042371080183011960902280196153954969044535098431540445773098807152259107080597356246508964374931778924522676220487506804133172210285431285627522101845790476329477465221993177127841699178554701656753421962447209242953153116498824871397774083657780954658938109730573042811064746745187776441707469666359766784565341337673597774966630712286120642476094654144578845930362634455188546797396282310921726917128615911603469097338898158744206294525322338023150738909739150165977008538918541663661911873370573995102107823040796429984197738180364754076150359308916910832167726226731649370336326913679644368499734316773464944031473587628138015233178432376009318549022545171408740139855481212839881009134514116710634177626455786620995370305920861275513406595940625519174261993500717129800530145592534580645418111599858572186426602191482527674018658711079213051094205269139918153378602647254423934152268600590869624447467836016059431831238478105771498707300843439670575464174368653759245361801232643065673897727176004188516664676492677742031709950384478759951298140251956839678939319451251506983068652097778365647309415353582110635037602887653946107524889975245123797679042998530526126109601506566530037258132409656673722671317886890707107737577637011247108166115695433849144991563890987358954173786476148883609907845719513494648523870348387102311163604698492546031190277568343375117978548600174269020091554199709778008996370065056743095982499357183780712219990719503724477609306914993696439803343340949867820613605088731229869995227908254686362098192965993892412180647019831083650432440702847106504741603468026252757697056315838789511620259602389377822831990605702280773987509132101701934894937084732247947498848504502344922686419003457816511790045307891810297163148709781078919601427579258912376106886385967657662036609609358241850120534505438264529822731490285633652331112814458608216772938295266573328585812679634121082011314747336228307697031726213089448755009532194482248633509173708967983235955603143760784950678225392442636238398774678333122707628039542833020476307487708124645221999837361982719446560128984632144901157207948052652976093724083143134499981386034926402152634043281041012865800597629205601722136852138034207574001136012351464578713371040769512045817693771712126330846173998626365918669185313582812404509114908671923427374972939455601601057042646478677131063832551435144768302470078288150136547517901295036705885457576807297982581756705286218670146599179645899864840085652616797666932142479624024833989707401413761702642315032747088595581609429481001740777858464516484610408989294798607107515251206513632351098581500979842747290182932060719767331341506341093194483811263965249646243858241785718652825159665619390812778105417446651986193086627402639332779416354616776231587519669881550070791685809423601923416643431948108435584853158820931127107037732137793606290622971194709685354572692136757577748172421683853484018224084789029482961670933613208533475032093810276563023707566896086552326346766672001209770337381777898396032426968031309896404769163151941315735699026027416660158008804390246298220745846850716585278563727375609453138086011039311060341745552603246971813240337458723895238480206825721579271684838840749811463746215982052611086149842454633264002730699939256053655459511677352879481614191633402521577691457034133102812147677734305328080976607199914424803037525647263899478278112265434604970089270411265038918570462037975448807190156150951884273937641705711256182387701602374173141679871503839347753828979624596308675567067137201202231363813538477432677848111856232804482728617209754584794088603286263304899234564084113812654766185868573157317375210668690640303399664776846308525183235277787168036072453770042300125731454299050709711071708708216790827043450835201654852867375003224621001000522832141700985014129142074871723136400845996684300235719162092523426385542159658852866762654590462866068103713401671155404147427398545929277483159691437394112251281432980317758813570395638482707416626877241121919648385489266800335688033181394732754465322972100108918058857636440785627159214532297360560703781410031649651735962479749840577663550239884773152001938960821063586919669366409422848841559860426400656591108981757703632093251113984002239556716121476586179332750906568153303331398238561593399947089653335820944082159474387357327095218723741973462340633087104551856660152716898274362199058777237002349612775213584007447150494161632574087205656148950319144191073638026231853328388092562730269759239015835909334807094859539668975001320075883900061672342485680226596193819293651452523863483623232998033463265288645297466340844163488794366232656538312131371092150872234857513392377954639417267155549013982796580822862477613716674822140650640511160470828076125213252295151928304163355373525905257246550942752685047407373874947217211958017794125675228275699390804102582406719837068895424181439737538413012973850331347197127471778768828357821324785091878174685668307764750572094205174604460463019919922022492052744527603357153965856462529618795357240120212102960572598586514074504665266242925402560133591008046772386956209434625951740877958385716147159507475957837947820052248211330553313231035126372694127596938749881081279802784969856286744920369203601255062898602268231893651920332804259404817420702160958315887633394107999221522822045691062977014874341926341892205086171211115264981167541614724735457619076871172014818101808273959827683150010898501008197787062969274701434416546359655285969792133814104580959477195033631443584674340217863113524364840377685256371022361233470132813627000585373485232060921123312529677454700404755020440466835299175059833289399657773630490053298290294095841316391487867969449072091082429447778840836171358816645662842687585001306536776107330633003114432810458690895951909429422034512285128907667369745793179923653631867874210530595956238448371702581444519966359053567004703258044183444412652488240175688557940371014303138629355321095902961136016022196483869802327602633433493531807070589404866993829603179478837293121862337759529324222338022936332258471262467669705596821369798143247784896000843160948623406436172776272155773778217900821690620781746856620785130637318115980514479576109005904978341764924987141293656027032861272097576710234906852911732842109949549335403243112286523822032709278732114499373646689089485967680688290537052406671021032417172363944837901275140291895496928926945833349033441952790222095779692915483184883558871917663919432939787769888294662272089076168242416320051040925001557672056801073942709696085958031326587006450699060326830629088480716839362275484756898525479520421208381044226805731864652261772332995808929960823304316656940851501745627549178187840783760211111212918878398989111474903772691857792100555505843506814560474866718852257274441934500029102633722462758681696970827413793613324902699941546902404694554069811838627286127458001728476612570162450599275760738998749816693265447615056062146612343458445010055403211898880204174264752420211046701497893536071411887862322800592008282381542790666061280836971106316134495457150043568945816983011711509085958792875933718639099322285919608005886444367314933620224906057076190572039926681091260219649385047606143292399977516241906591760930973206480526721327283380353080955902217966335661795866072266708816712321885615586580204724900975227553650529589976502198451821721183649153069539724152463511993740579421947564021624643142508227657868481520718452486219370577854786803337199921139026646884593425526330701738214787497813561344551536693791772956002168018275807162752794181330996633219507751562943941288896141489395875429479600393689185419999259004623974512406483904223183971881620620282613758115409893515488318478435100541304256963746441910704621778802279079282650284388842176692693455115830201029561482276492922447013626027803465176372009687088585217155864443789346375471758482740779493364427646457002611551712136203911247936767471242717095596199366923251819468287523311451653515496775336751154414189958704826496158498210603447492971739633930165472223645468651399034049396935278554020418127736879823309610983669215604607434021386303701837723984835791802319375165207159120963273747263275851792592638128291025739366314560896533954514520923339600713021283396925804348291441168427599752154269575500174136595851875835727722782665288783226639956365276456005140600560286062693957175896911469389662561483346973115143108348333739012789058915207630835536224148598329880766843953647430337523408808250316145240503388369565369416700965143427374474395587733249641001302373351596764987356048003056985179108661073149454808901362490753000463788607571317437137946752252202668244819124888799920310198736934455285520138403807815842763554830628658675408507728298360957648241843811992486612230360515244983550769224115639939386324778340587417889045005609209156753059154241382486454345574299867087159869625920052554217559887697553600765195348808304983644196818650373607015178898783900736275679878741029625917056687085691472768177320044739743205910083304501624699548051204440738123583040509577544994352889226796509018587428209167584047852181844527489537812861408145396420622903141791537822912509880077118745017256911817033915477633068213673933064852042286706252329563929480526875653349886488968837596885552590796859638383078418718812827664425565362477270921161985516305587880935648905950766717375307329202883461956359121689458770875698262114800355552195958517429630362726809582160042466397082176694136548142289478311929399554745151232837022608547269841588828480591032404282705679405356957061684614351218583552119690620328095148294127635284966340642167847505902161579320209116483004390315884441595998060223045178584491778276760607773020198062602903496482361613442557747579939138189956163015461403174229522006626909911655856138400549667986196522185058634030631526394754798500030006926406095167737056039444737277103361097444789434292139741103908139047751980339735451736337015155200664519844216601569375620210909577531214151607854780891541435815658567916545632662124211526095219626778721155547008536280484457853531907737925606599485550088834634133753867161423985743030511410291637016361371060044274125919235629679821871274697707102088469587859008855602718387802697587072984462633498915001629387850250976559583790885519878527262977584506039705109713069731567098291642990823729748391875168546196606642384712702584002174191543049598656453043081622638200129426505288384486338311300568494186997814915165963073802495708738413428040208321635233810951177647638612186366830401196346956819124635547044522296994044629665035518460340673242169011120255120711743313884397630931260744766999818342546531160865175447759885433280589766298479826626118504090428427231059325987458900385767137718479794640796019193102444465767684905514856916430932929478586667732766480009672136383767429042605774365887330392501911912178394475562837553454791622899596961919522613631492545402838386351634795355529198444590358248891931519521688002892071615760884931234621814657953260425383661122378848075110344178607433129551826155959267943487301964573977448364231061978064706000806395610018293855276125059491172448596554690640531318340415723872725193917739403546657958426562954579421968347788177617580226923008714218610159504062121654411547782564511177055013704924141344408128777145345056925327063749011995563629830122829756502649558070520354035918256339621680024723649106407382470467234660571822119764848982661197155501561160667166875869967063817062783872671131098074899511696375906809495049248412203371709093002554921879231119439412350130321191523416691424870516514896582695060431691816532865478108500845398410288108632584782160749214712721604574931435733947136336059691768868755851601041302703600885203645789114113159443629400378660738688781389639349856787686342749199146519490683069844269407961879910440432211152980443637745179782921045416195135811765465069910620479123030114572337409770135237922266727126840034255584038723038299388372374445432766628836421512404539288141587141877992232979186335630317500576070450981880976950655852461955704133321154745277885772243810853128659510711526840615906305428705016599658535085554454436230892404740108719267363186588378010314621336978317969800997297128261707180465406236654972230507137689832165351060340560396102456470248420381720102421425421538391461358427739741632479786760917030342123616239058956644371049420137750140380320428468960264212543707038242846765500323129093427531674406258316711918398305429508241033806021007709165524128900672565305457833923931861912740634836066061048666782199407099272019052476522199320672953459739615388898148533352114387648880832558707781444525754284926755059707365812025906293012757060823469903019172489249503804924184077759503107175640942917169579483158082411934156515401977751947369054238262379264438901390918010623542864861814973209783601231302286648817147336952744068829120197183325705896226982709693863959032911506693782340534017940756022589938436476696310209425856855349439421624598433964908725108407361832082484771971137813726699727892546858135097073341826116090371952311328568905360975475442437838862330767451732838441789048101913817745656551935453620211214989381725753749800769107229926570640914544007106415832467938149632116546208958850364547198548789916952987098249086096071473736357786256543893250556318145923982463574619291519236739105033828820160553506774971950526392127863987302283819722302867078251238056495023394054620894408558511060492879730723748746046012602360027540778940768176760754125489106516411284195763008470874488930273635630498845355712166310864271373826590531202697088423326687421181671073037542248590070385174013933244777867279024799527324593820409470432676901800815639477423404528931085876746393591442686290149078514723599410561285695981380300371120092301717483468013748135619688154768340042379606426215670565189724139376771916983561698387350783646245563204913456342436707851684550196306781928288516861195264877118470827500238584939594702738514688143893581533060664764007277836652071255845998445415446654332313700658115833700322639362155861919690061900464177001466472620406587066083938010445154982271687213479726371564835148468923412476006041426087418635114732334362021685825438683563038221089396337654149614082860614048087912223691747022222070394945818326387456539639613717725521260516729809822517182988783789690073534856881292478925229283969608484981174208445083076664570223295305469054824896017199105013462862905563961920952769379672976813283062495729322585868485577595703613274821873172571826771379950542002068340506909075560624744184878876637202021851906684654831637315291641375296048102628915711131258269860347446598625496165608703793169009700042382289214505561283369650174815819628908263504244880405551389379513724198387994772126542097776200830316153276326833992234640853903539136829331466115277823374073432521824207364671732908389341986376080199133794699064517932979039998632653786981389098882674795904348018126421194281649989035305131619764557254383807883289155428936525759437538271351506097192583456670994531817221404814407675600706905123621522352253673686723142171472264972991312976759924985807904014348802572033363846504008614565774799413353906459668586593966708850147097245965059934175827401234955313311144933946628536955295668521347303032227549261118775398643671296107576699194477772282852578163342267147037438806626275018157534565495012835590609174756655653673346911575879301176044956251040077968024594949162968115551155853170704834710804218258352993857023136044171900140335126093906828354979316308575749671588052731657528044812038138828185882553856009387039118161122285868524343392802050287440623169235089812167185007951933342471666255127436871438498173022712277148453515990379644850720199529781856654776822628677172267806504193938643101170281046072635731173659958604579025234700551257345917890559823544157322617843715404748078521900130454063758489025198695238066548300162691346443210622407626439280222594131519300352493767317008983448013777666413379358893829695241847474931615094652006719545015003624523315524236359255329168758119090505535666612057937418395372272053017284325253658762016973762029382189177845481831492640063986328789033778521679595110641328361904510788314973279568487165854840781294409366228399273593544323262771164100133535813716892511170812617168622355303293120144722604026834001487329402494994446971285229759972714015118506924783303699583002009196531434127564524423912995765435054759556485500170713475505812304940130116120392312972752991090340421357488102477410690638463471409156357460798079586874386171978101853920477367853455026453208336444792739356788757964139489414050068284003462513916882978858265539262475925492146783530284513000698215650655330440894881514532413101094284271561766615686263377808662080906322149776006111102412352694153104786064008293742212791959805681015675530848554175148656392056187465678821137004726019502057787793057058329315938429887416523475819730201730946353854391421471936353773691841847116177271250866664836426265420436157335444236329489303720886956054085031817023724123447157027873946171489073361574441559836449749196418868897088421676988986645635522707662461484030473346157599450106732708717415584456082502482456545723123165309237421805205851767531795643715652826837631258648063974577515485479380010299216231902641034275171526026040825568075369473140829254393295247300766295407029139495905764308280838119304468528832323176326878745555774853458860584917193932735370570227463011355721568302452230947106107477521602817014552335550328301937176077519621001017742340528338676518328824746286378014212643575735078088931251320012204959849733404936776661487221651463975374211272113998476450902032126818005927578385068481159557538558480585939028986875478024108735352491553638623237842299084645470236005533525465591781853543636848815194513709606151197824073999337902130548340725007917449210255649208847544435255056385139243708235376635758372341689057990507181553347980225946083251610193348899971289117851288151593856218199551812503633954316575212616550614350988952684552036905887574752975680271702236795155052355441177720609971056084922014994339790696831072437717482699018626048561137258194399927790626174459816670184580731597630627174190553706914142521253846373216703464032392453467989810972400765615858842265050840766590185578313983688086454441023289704496929239011099992531966300742417499338724807910187573851509779010271558878526840713479239526501201135778059262668621778501832792250627105800187905387379364379019676685058279322552089558157258494930525305983205004363117348490796909716381300734929770082601552649189187262765049644742816708587155675546798034311183515140224004286213942220007813525568222350540009586980296111922501674620157577035256300768200437903006745654760107074821819241397478619956090390610057958918186379234613994879704929100439289179163875914061641639925653339634790917888063298136469646625576339601102302852025821941375905209061903425237521206456711912272962163406984038278247617814522073800496831159489254052387447292213507694403625824755372080057344941050486921771251647802748704051405344795910782612110026980210457319599557363611748987847049440404167784881430717218544009071262009402456798556017172484558193271463263014682468790192191782194911415425862507480155542463253061342828857342743931272880448988335348519755074598452321556931924500409469651717625534965816423364781733789002655631530156133217186093499585727247015797802391221932977764667830101711622117150365677169314887431755408793642166519789648658105453412210455721118268258180289154672957449616533812153092142747594834430216256303815854177716599823015284398702544000962357937487564276566637749729645887819557433754346620683681573003216949213098880734062252303337054763962855996953212440193824322647534032695883248020805951018176222743523845438240626287581604538904629335478356680782310484401331947628099239552481702811110478254087730943299636025061261446129703083565088021230227153610075660433532669548690450680945890653958437891507367768636382343093075734308943707490991269536547638980301409297234571904747849215594947267861075992747327222366595432333736532858230223432628263640743407571694932923284467561675659422997839780523515156383703124662322863362095887666435831349266204648920136361203651762971540726488771863779245018822160954246382363204570361904496940301292566695767823984584921415740557975032141498049839618472305029150952367925632390244171467136888984247181917414804562431744835044236590657419991825548981332553100748641120769457911136449406212045772738365983277883750579351687535033948077360573196384722670441368893020339214164034032771219528330110616568833979230277470722483222672946693338072862964835722573458532746242261361487475272280075386457065424433884420706436858201036575134352253855898124215476449623070813901526957934112821460531050450427397077356797562011085526626807460395232607241162949174610548895661874900781489467267679200449218118623351849643590237139924882415550427351026124256090380518007803538728850210316732639830327608896815446921896287431549578953300103180241377938835074104324179463615358196847894899003986078652192605245431367519656873211090955386468573492506191285245665155526328062943559450209904846454569869194371441164233413155220176002507141869288124672610267522891478889133950221961144806245575795539685284980152582643985392844253184542162881078891443700502298879706052662970191392704035628207756596462734185990380702849905718824479268356361355002763051325377197108681851366588049048591062815684349377112740889776380440624274615511390117685443824182737210860924505994197879361708356685795659278016921864713833573964778835932177466566818051287598137925773802631475284863729597167840374251415004239809035636924143630309653036127473713705437003758789270703693093706454940855121338214682736951956222105769218597379474508346527187203073230931214339283825528416212814095568214162882026676775409982860001080773363205467581980692416991541999743911852453047550946136072960634051919402941241579752808646681524523568274746302042418494778574191771584710611737460320935628684474679465110384024190406219856052952419466675057009190509688031096344399426170490013074720921269936270723605141816307975770454125584533750781266269524815959380535397075906059168837428611169852865420003779175493425463667744383787972995806100281056542223938933361571659480662059351493543454999814851227270810957000838244182079064493308804776333097761394018837923794738027162088097743692759252925680650980569899001584590165375089969708776455625613374941915480813859953833549036295581556532682131129338293896735703795808051653029906696768291744612063368675701461541665129072772928969823745446391656753747430201394823889173948589316884275892002572494772411673824369350267695144290277412220855033174635675974490428586763372553047583617093894741288455275998153755002398781267724429146093156520981904955500742217341532818016359101899710664415879849517251002843439240420130465513094368130900990317984092196764743207832931724728780747509138689650704381101172076097303672369129453955310247535266931807030345687234181391563767740264371710276569863482413826901447424603698307028301793247163028209376547390978982791118004366591566633350867828836676150349141461165327584741581767030284761185067946193885559580803931319514356199762975844142291287299621390557579602714892970884778370404252544862438474656678681299526597060121317168546662512971070490206582810440292514966088393212264930097961865410443774542223466213836494205936268143834591415045909501094792369285541197607328081982871133089265670627492577728505609879221557718868182739297939747104533141444832512670149357137164536753233099251972087707972010009086858776535811933454559278293884711162438844314014948766312237655897289660013589456527345318433291876894064745659187451669130504067216333917873424439114153926930815064723236055104889388078470626859581915325587570837684752609551172023946843115934506035187938897660490582176644402658606212264922317810091179464891559463656773100484648800663122904034065371097434961522173451387098961340177928005514316476076975401448339718852633009496876169829258767771838383753157113680803051323269193643388116900823638289524779379075544092061818375286313231488212055990090400461280203289658144560689980282955975281217853727569635557014246289413843883702074258678036692363105804547371627923440270812663879359183047980159373233389424482111130291206892300329434820518786216315164267774215429376245660988726918495367669983986721103569012048070079914458018707823795942527128615295424144939208375993656552911870492608140392671749520497050274917838581187108327511087723302838810703580655690930517690804675440927564658620857936961446254111169689889508448944821442385441200873772758938904951246465036976246627210203749298304595633265403137699941041464185699951868568788658547015623541011690486102377312402676662345274120688191304920507556790921352587551810238255504513310927593330563636234277973064317779306915158601336695074785108634628015597772616700997685069087425857983747224775682749127343226294206157167602921863218006852385860008933719120218268047112697628929502383848363829861797666842628771859429468894700180387344769405447951407822627617575092173045747303307652942825222330731859858071394148700037875885723824184020993998290904676464341997775550046228806916181955551783802803478959084460700703920424856748808189472062691730450889644237993512742389943105935075267470035148626994216720616055792150525659899239946999794211628172011806802605970946852067656279620576234982373138546852833140851995313463839264512679223880659930609848305574591060159242283665637738024122211763154563947069984155204180190442823064752108948954674122749229983502131830944798591208426890682591634582790750615621767454259890504719995093594515210551130952319051891592605926708934566332502479159080867336357660156339884461513719094922665632501640231901724338680149859662530703150161731012260244692823256830277533498307726088847503255302656732251074107609807248374035497953994716044813314109039845599269990478195668900618934402852820756916239199809066822240442298042975474388400462248870727433502287466217465685950496801817668685412643046475076003455661647118359526720873909828042954450899365821713878257432196224414611672331777542041891641160743932549129941118731967672546767994317429808295846631976236021946876433448432759194553304170089841312036177130612202721569095174142142240129085612044906143568075919347582137747204263660379206484585799846419904733413544545269079016389642116672534280418562924222546859607799601999427414367489322311400438545103319710729296069555140288978327346383865689885334878392393967701120050696141471980121718240681052286309774048958132895350944954922458746983227390376484903801605587127131727924235815511926770623639036840416302026805384546796508371738441749452199654702138127682129007297603950900476257630983460937248902517315948034331308406453439997206551584399034232765981261612122970807006021505580172328775534950541393915800841970925562547141031275692195038135667959156781456735764762454019062567359440472378630774336422363957836107285039788356267555016624862043207628711925666793192771039308167747100291465035775946706040014989463760144477891593385096915175042707026699801664066607628753252420370952631567453242276879584276145865811415117969587468590142682575344255865103193011048115022304253658899693226937715697538128857186657472901725667848150638648532844394837745691091308505894339717486039969965008252310635386243959887999362720648563943945620385596413275499218593323471915542040548238805893951988458189420924052897962516693617566485903897768557666165710108474585876721047418151738478364410524676034001082184846928675238083027498717899284378361991117374768626225405756293161651900598878231880734456198811579758727024427236440726100798112397086922537573575410505962783787208561993252651325260469312995392660756912577047996879459192500061443593469170460684387180902606138744600934218126452649126090253275584366768220214550742504526264409624500705655271569300675987295523413535799393734066415363320829222029200615011016984713963284010792546644714938698374179569532636302121441910152865486223340156757722256344827301858927807905114160255895084777100491302495674604269885716717921810840501679826257254674496826854862986809556062367466745582044434786249207815540971421094449007444875802211779755335963210753992774888243162036030030790671512637097637748964172692924584197044475460641552944214540675973556726844038065456113725223724350591948886403626381553445913663051863238147132931390096028315625496633933588338162440519955066995489605931536325012745484769059235431115109627392267848119798190977192525415369119823045691530285372905578683944221286098540117998041517110370349311745960499055211309228819574148260694806409759732099558379899881699790581809400118633840624632093787422371437573730029152397989287773798945839341802781915964700578666300337765017607442709950302552041952978143456948139876198681190363639257735382772511795150437392226168554299290763197404597243840613684771236235165343809345863128795355296082893531008307632874529213356188893135777454633482292966945062261932912239466456750532043560319248443065242820432037671223407156958368565612076178397421081659871723246403778404505181689158120340383541906736204097265869450217353473515748148837269996651497681855788828564557435960615666945040735213375288407739493698908893806535764394958206597945035392128042817167689819199103965128677674226479217628803363358360831591001085387169793094691919016086152469395055123086018233331916046013563596804207335135261562646260469946643155442947070973612254571860713933391101463126297934277204739819758848869113059980078199103206129779255511054212821300680665624009754715255352842949225323955868036765316341394679423862342880215161186249255835961017212774504223087337299422470950394141557194745366563559334952857597668994303247867590880281965960199896177416925978869685712099032922692825613617900002242705943697678336123303002406512993285849312441970169966433270330815184416373443172925428958396454447376447292311302508397973479013262847641404592321615976932542584050184467258301992170558226544891338055857627725078763339261108156070913570467443164936570458228028329305527860807936195150111905489837375089235726901766476575447272811205552634921644941852520057833466108753004022019728301576569612203761339396876073691468981546405246284703718219082653046484563379430716872047821678638520729546270507285704961679417151425025098461629662641703905415355068534159824755948818229073497109576249709421166269663859987939738847238016047552777483550182430829439651549673450723896051129376367876151350715214805755115292118724704861709016769950158005620579997146243075865442852691083580600579444718950459458483113453847046782201138797624650038629203829074333492967005053177776600474374646922418328558551636593604402208574799668379487431283943116396940984763355215388024728287540896648037927872872901331250607485243614181182761780411777472202884505220257962459768236343609646853608628500053563744077003366513631597359737620344745154352595963904276841278965411995774227278026874309187142422101680179465623976780912676772021715854741073223923681882511907036864181384166617912608831112742783447978841632992329916998212374139799238947199400285950324229065608086784327103224861799265289396190489019346976747177655212477929440470389158448723331497338497328458263232795989128169436172493388116562022152327359207363620756948647314409900614986302914651191664895165236491227051485155232577385510653205905555037245876289566794410118768502329265847528968234535148044615135556211091998343560570669601824994765808589099742077937076287999745393976493462981685989380634089967130426786296232334339415676975230926386962391049236234055365185911539745571286624911046619413439956971365239996500227164202280075961184646960808509981211547675193583448282178081114546605055613699905262022936375541714241667359235674008175279486561982995658185357288770556959951726971986629792217595571024297642012296894331780429893549069099335218482136538305199375555234759789021644359229337950648399780849797222882774928271201902149828546649876849330400322312343730045077814048136873900934789401640849735763605709518966810808159103421235490918875997478216741693260908913913321612700655923222586897749221345552320295117757936746454679522529678060606670079020380761150858321295555772766393467167245278450754828534515218041146989851466616322467756057943010558227232537142209842520884924666184342174652991287385799809405002919958595934072429320452718938451171697227470661815025886849383514829665692468325622041740133407739595638371907119350600387853186616151050860775352558453822613089328906989398890786904047888892609322821495312000180566398362981962774514794427989236751379073725714939828611912211909657841583431069282767672766116045926079928684549096080956578579225481883809514974158141557161681023326448768499829364942490361523830795098386476622610847369272790526537214901498189721466675658964082992524698602331432505836132146354530460976150490702750172576231128433309205277373907811093066070992686732573496732658546995332644733448225095091685816594665614480921606062009921069309669363328526808040390891855622111135321623387365627854214059286465884795755927348391176384660493664075192834153461777135375528452101446012836565055920773757424396887061535985080757178861557444838716816638270020297719635871219185519788743517402116133590892249863344868984541290846151636282166318274536749462282726833183429702360543819015929451956010256817077493865708500761361757395622358193977905663713715104642960279186275711148293817432125197032377368799538836398626235394595090672528439210088467586474380787413837952977959541554022797027327437890345120706227355864322757721800467752398062171829539292959089583234772069147135977880972226676953503607204179207032468755826002311100724131546504718694459228146551315711415807831238538633215315008583817505041649737757085028347837739760226166681427079486217783212420123411396484804783039013235171027788227813921421327657446288744886671157222008407288599746596502378564955174576759086290692206225128192571444579858042754945403712490060237377087100015362245055213176960452282421383724236089665721104989141099943907328297813937334231284699669312942549505751287218563647434768595225040072431168161141518659159692276321525704450026237244041848789959982588383700484588515354500726697262859630940035948833769072461563038451666644567465458182424429793694598986269582339883091959575553321128476961459949205266374741178378484846730969948087035827639429709373822630080962632671056180369744224344150641467856571077365063769657068239504779818452513121088105349970981102009697120881993740104817983475881412256429795548309499489687977594736820420310858669697949527085667911223314106403897800946435436128149728931101145402337210482907326830869246198211002972115336982239022528389408813323288667563060046949497234032052133685656776169497257214001274223346628347797808374496278920212852669943302706172097901431316370079082122213767095873193049585295102485987382271102512038740166877218952511576117780433438381325797391024030792868723407338821367370379472861174338913938247684312760866479199002539942784803768368117325397746806204842571853078843131284570576885593173609188422117090956703405088238768932197772302638149814008408023318306196368672087982660978057300633051094098089119130724945885073435010042793120733477828631444922101177672891648941228166904119639303439329108101681546440996434201672785995253560192631215353637868418434783807252494599550069154397130545748895106354974811222034118732303558789335086793416335995481281598288998402607730302111776752226800019263243325486144757190918871894088772651684595212751642846058884461185712917726591356380913028554717506004981479668801802237746693629659688465281103767734206940366940870289732681208102806531188435388355861850367585052182232095398310115673738392265649915745504594321824274955771361612620210730262786233287812390084344806635940222793832465057316145829218010963242860632931502171989555513562810185974772330205686478955221206115072017907707988193239939361874436985175980408089350790172955508083098634843084595754799586290158903650357776116090102175742691388693053422084670815279903156131122087247452281330899230026492775899254671864276563597659574578907708829613645820629117727800951198135873824173802423287693230820763080144806937481238092262060862546915482847241035937579483474124795013054943927168567994705882912563124125002176355217372142347255495296410855275691946029714037248971229953465550553609325015799123248910784963261955986464839944600642304445200139634331133374988038056080606923441979772009001140264776707139385018441129723750846639297318169997052893561777363001127032118535805516157421937888128441365964352238527334842151388345654671864497842349590925031179201834174499256028262499627034029721039686438970131848883057944622688324830437668045587662486977619561049376147025853592028055271112137483021607683877069517980527851574348664461083886732057843643753354968256371089730891940690584271732957497076526370051632611898721233489236373945003530800917005217329403414884156312182014348521366582518471546124502563636383457264091470569311017389271708192652275815702486387238223619207098572737304767334822486706959511101587083126875505722196223699917664540988164116667407982052347159010683167439867921348065464130404943718901844656183784441005998942434568826788034251905351486868049267783737202038282642952636253669254916536233066807555212274350129224452696744270483966071167563599059777782458045032078631149075964689703138377564155930207809700129011516090328858326846853114264583993226558181610963356215527177204273948093599029386961238229865428464729056781647471449132539446975210005251125426077213507297250968705579907226456404529496472868924488930175639821624072300294536368344291227335324190969053712811282255858353316523195742678245381726983611327179807634634781401616964864582570095120848117108612991764744141414428605090790953972369522347058770595248180806491272344967107228524553190295506595052726135107378828736799186292613304231561141185209380469262457659808031535871467620792106544733817922110057455446671919494034538520051870033960639429144668813807970764237152065017335442017281648728187533088478490008051322881818644185276269730384128398322587841988364288441819886369451919964498888830987527840011652146287144626258941393473460065499805151600491773439521617476267058011145753921067939303690931353634979325754735685575349839462800738479839341159523776357322712024379228071293163769538034202819050070489390075247009007312703673613100767510394629036425030878635974362904824873840059596517722301959200660753937812825975059756746482348590547786899098641303417192523198095801739296429711234359144713056409522780716770612011513794827593507087390503579697987878934950962360881359126169996038884372936029660518760829366494056561229139147321607940268814981235675785929181580775262740726024510895462099464973914625411846317167581324241114568935955604352237594240642328836444682472191049599856556688938748061650659700111245570672608699903008865335588671674910951194375770298358366467584481474045756005884283467629910980301793282283392716460054933714921923202913268237699895539741334056982749681266876774000663351657682765040225862618476631226633447010128386843342494069707637269954404286263576436895134415653136299520391479687916614378888108310179393918100421612660214422451838161372422434907604149268299480403723277481411928312457385528495950859906783041972370800667693557569877100933534257624712827002963524338108391654676773954263294179727465395725110472884133730132355056648591981771604503330112686113191307013428485260744642266158207461020780979563456941448686723441552128686983840140332805474210990837124090745330620565442759676221104147487596731154200219479356889860898204845561934854021153035131939179196434782224279993527388695466348777964893333249122575631011591207154786475793284148721634998691482276909473098750913468508804616333742735926864117241519259258579047296418611915726394935702280467864466751475889760559933792798773932757008935484967695704802846616124369527464538900476973943008491412699643488097025200426843013968840408058533620906961734636874625639782940035142073016431101407855271538996786936667605576024815438197455430607044859939430332016271094602633750603487427843442161178931638124196042451500955493690742434968666543113330576695009617127389379636421936131459817037575566658055978474253532477389645407442100973807158997259721021125502836132646018049507912190824987813350056629510471780778010281287192056620572242428076667130923735149392128336993869740246982146128416947224582441218823554128196509696692190486731891870881271039209363011900820029456403377871103438501725890047237193442045840216362533020399558007225085545833895348198026406330468315296424750192417133778451808948028684659867003793016231965323842948422578827162797675233833217938258032945664520295843166127805802056140321137578029349820887568839174383091114272235924888062399142867927425632074451041130472021571751863599364075727897601870221270646498978901589726474090038597345182159998673289439693823476297422715798878484081662822997527268684185145814069265790418035668005152547899368086255219330845781605785709490793492724869617544765961240254144077935097113397041529061986332223615871212845329910905006104397964290363672170469650373197517016476464043932850875788199648190431560515492435975412884191828801120084041971436140609447571791983055910800292658757246140040526654044095381112185297936757523824943352585947607114893079520405298779996499115390486320032822438561754067982510070315910516029378518839905154364402998427945083927185394431772142475870725604196478026772042562139317047795579145748732867217615131370523168928736942623692633694524554469729023154549867773882546741760587856294735474305875416449304597688253926640287596867525479150280464969290046482215309165851904271216182673550903035557395773876353708073669151817919810390112320923987319602369392019011987585383350126006216256382088806197268716379110310458055056702230412352748034385955119374257054146216911157586731312851160448649614861627482851990141880333208558867369178274190279674864438079270936781881904923072663942437911695589518292319318291881097539278926418367693523718718285525351301718573485861825258134543327476518555345804146794756096805598510570791520042569683513584160856446638289093587522729100576482815298008169625156743581911744531508714899060766769980537041063517660785119429006409328272386779116328547178558444622549302154196595135672360467275115703325553025932789109865772968715508327592133335107863616517761758309015964555135530560587991113604894757815832528412855576152402957207118838625864745328144912590662899889495105727974976047630889045789716542186163636272043161613773915486034182624884768129418372525021154383369512139872415416279843037924387488829087578294352945918374185966924844166706438717434843950012782830776119699779922813447962114374891593849416410625535258371789106686328292226597371329043780276978029904273697050310511347636371899776180919188304764413060263249806371724173719587100523567839368567676337421108098255553054680729608367614608787361957753761296272030466537099135769750556394259755580706458033225836330066504196083723539223316380083939979354826405137500715478290168094377750348177260343453189814529506280119424655404569932163243369196850995415833074812169106007225513731304534259472144899867392382191120245706073626587894550091383776515314772306683713619565598082878831791565248624282402815537971851162681167138287050529446234992501503436769748422408698189674443849834061867619799658689920034879211272950872880693103388233681981467045696576819597991147212285168492323289797365336297611516146516693689685866559517990513890913293459130590228319891514405131309090653675799634133651266401120553685815292680703398578685897092536204824777609547945886853309680856431149998607577706505187787330883836930950757989990713934303196814562948337423837145168208541149393509199035890858558426004462037936191261530038426070105906911655885210984330458975608049957171776443277721128508974675192803368541858252122544597384588778148193715521523457571012315530882493997928281268090991011709633456722946570142963314413212893935672441644457545348098142630776356508853947641634675632416674082120448293586387230486183527604338663763180437565222503785776708314465364767617919535578140024368270362566622691159195156287490154437792767723436493791132328297579701865284266107294056719100275676245139093249512136941528836305903840246317234766295019407678242349906709266332528263825608823520304609952261799269925782946526929411462438050872105690079847660086643971780071324783335977729118939962504185339646846407726767047487352887705505837834005845318125610030952690545623482388011366115983239706649162832380912811848335906117192521048141208311241844480584273189742065890507618561656212758537233048661984015183968839125577185518346156558533244227643050247085596186372712514716185483998794677171091436976018609478525315979266239124506910352206428658433038100844025123372081673638881775895533728754556103780984777020594696110046804416449273826924364678360778626511060425689009972412056987500918521937872225638539834742805195520923088477195360438940515509744557664995814288889557480649960370862942879376782110992111650870254941627373300807324841880848775416374159180746134274815190929267525149876288170820843132750502354098639447459737453546150314691260674884222268833132132883433601139125651940415725566871571681684073181209696873316589755501111981009257940174451788387794122405383220946751221579655269396526680519932448174320940338942976249603317116557206375132470242663587130781123429645563212273635081659606979645832921050558490625445333125085933614520511587887372099499166544810248833512643900856225502938740131943008480162516757376268527709501222926359277207905151457566144948642848398386448154416752715476034751970560803257916022841164829537581432586835534367507747525967561294285291948678913520467926006603478909920721261049769220529453861092567929940048114841758854616917386549704916016129159936407145611480166048831756052736873668749759847367106808727647136593099845063453327496965458257475499081485493955636974868494939993412327639992284855918905079158879859798665676475001954172664512567752862933412588560639278182657589928251601254406422084488343203071500283888168331871911506865067699752101863547475231513582277437677327914579146782570449536409681368100157686684884092702046961659528208853451216229004595237645429434552955950637212266305996454407371016567197492059726719188335372404063099360377681721111314820955042791238132941680031210940682735384861713528655144216968503273623728489786628415492754908211274294957418550085294591717605229084820983988556071884486831110905451945399914577283443439354408670774393122968835477628357601240642458682837174045360305047205776192881437030997940080499479964610085392618013589484548879872796714043645229511501761277833058053852932959319011293916564477850092398176205741818588499020734966200079793562728706086160609029361831750750980819445313633217403765313357933581471512147230333355324116755171723993884864648913174981425300310922212812034294644773148266936023015187861906954418063258495390382673129662661186405538181960205289795429332865009656312706091992662403157674130767565320385774052511107346190565203832223077778363550957070202944505545391064966521593566211374723187129824636653117600004255321781002911867839902386607333519623659722767609492670844675109642572443801513227702332864248188299360558628195527567664786186273918011441410028785585521379306089301596817415354740633083540826759642527354894449268144123106699844952376179366723595401572785023977380748930758761184443371171018595327900195399548754222044771730607353582162168185153796796699529500369875983214803295912281516850820487207937144166842058280015888280725485026579347552038766715394134918355455988614551335805692086758650211958551604798113236458830554169108337840662641140736219722436044171997504774804318965166046382543930348821000787198257019201087450933895309186008417304273722550718610782847988880873369598342445461772664647622475116621049065633814074622161020398228645070333753152750879210698200398189493320013538405958723619208353703411927662420237207870708078961824287961219135271262327971613670945695244602683086940651224295636761471212698281206121945712176591638744543107165658335136191685277958006040363818755167591809020568010804680895681126594268827503814506251225564738544491633437880264905904339149278664262590941958417743657622681336062785659471159056785302533173598498927875435205348544331369299869171069649954822779042463454518080820123647080419838219067913859860287549821028304914970504510332036985547470135788446748033196322325273458659620648474882202845949404584305544570064364057967040989945309064568997575794392552219732794341335230516034158921268336368648183668221327688151337992662150710897399814563500387978962342132214363210477132337234495843168420215232309382206090803329731337035626127949168545145399203728253707566928440217911969401847883806551549966862487418561236233916594340681221256008421197255071975000754160857509460049053968932580669698259380586216071190485947668230223598353235205149914568606758683557678166473769910280562748310082695481248041932523961586385396567329268571872474044276105299456463870500736786823821725329710228503379627025454730277095709768912881403628171440826664669247421636428942582545522436927500401491219305771528945452115377410901996856070711766488687396791239511758967574237638552686624709474655094879141968757537814293827461132952917558279018295084216558633503962959240793087044715316835152481187558099812024598803137753534544362027416025654271598126826847804134405494025953759534424900267833675840616473964985512935212532532044901411216498585315803822327219951395086292207679988496825244327054889838357209310688777118577069488661210348942175054114534534502674616613997768292787413426163326014309607802520133559469739514960791029310492255148775685364406572881719079614360786291079944368952949332777108866307429193344295552945660025992575967631873877230845519002642891937075721384667923297967206070937295628962147125540767382243788154229689675701479953305708853874898667119154975666927132864783856033694364480883134763917838718282302408043223527011284878791629945039052933125535075101750351553340734401209364308246941956017793384018057781464503119352467349032146176700085310246577645568666271173672311763716274248277369902702304647104367680383968019503814282809909078164542649378587302584973526067913166607101933211123600285331989610614178569725136919014050866529491355404544092807015760969570846689734845020881254655306916967776659078148601387572852752487251709041842107033681957464033921245069129575534573899644057699200668304423634511359021362365528564813868705754867495739093036476709117047248369026922740379392143589189202050337881587940528570276499187295192940733393924462132945755697816860747089564450463753239310504395135745823260970826206644574996541205382577901292658259540787479612569137039181322555708583025907995143975336678355066716943542736130748680287575632169538347983992123815783491270047467241923793730804383641086895672413692304700225049923796443742815026140486008843650907363974835506341255033652395873285851624478596913217517813554575474044154673223293181632984082869088875144270936105976433999995805911999229856054872087405232243800675401950785346490582069316805686627284961762984945172568406664352220839116714802529426076091557479148572910661329405868803023609229775733000704487644958302895448948547765722003409440295394208575297055467354403092320397816559952989008784394686762916904804374530927693026142746379918780280129295140377040610173256722770067902826054549693625594748103267205305803735346928560293969492323858409455450271810695846684466569214843013810738742450997407933990134117321275775699178958227702088242690573658389728604705444868855660240751207635344339571975069284813588283846184355691303639982147093949151471939938584877786254290308163811364438072308945377149893070795986656939011642641961715373507472254562963946790391979415734470238813036848279454857651150377457977174693277530405404942583338352122874777699448507850968638976628269174217476018611860145258027434203407989746924407436395581266888064223674867880187911005369710891623438088510798597675627338110991735050447506898362765030331871249385562534977555376374697636317804801576182062416142286284171479079252245358820532250129037238133525444167083645852518294073857741775610185633933263456973735159887206675635222902605153651941247063439348067839751298475708106791055186225089828418111958439117759721912997131762207362754009031340686922288888140565379609734961190432410193387958896253230212333671025574082357929440919594543770141014032534439978096137207982989546923449175343949326099882849275142042243677625734545833755746547814107819175164726433649238231829051001976764904843149569303719005525483877875360139645815406266068400085567464030000793057022895659846808013006320142778922233574606297303195535186578063033944248312382046515549527462338363379676665947708121573160921379017608331139089150162247737800415284555469639187967627285334969608388967504218133205111691148905887474740190608640048386280452194107624845173468741356248000579785328680127418583415541591936593055781938599675057842258506860735103268848424345060995939627489024064024608785369751999347289916530423466154676023804166980006046302929572868668408720299201214137073441647293530734319314216666796739459790948438477009894738362024530799762279686174270447096140858169182161473574745352110441515181735276741773661920694706233170223703189897333345351823986611374282127243446765223215622799116514518080828310666625590215945206135050253104051993002502016237359162206684673995638221104014166281693204761022421562064159007377969696505485635852653237873287524972165432251174016864989157948367888856818260673633978815213202349053066088947786617086378001452049005758137941437990877257585577142624789307969266236015155485330150024081113228065761849567451239500068832922451835307713159124537720652100040175561783087800653051602871936053084527421754966286630987407361141146346290165659799891033302373964268279940909961464315310702488222605858970685880510071518107257754113891264755094745630966193131024804281478691837759257432684305466935430192667985990928359897447994663292428641599314177758446053492227088141858022473660750544764883784625354624053727327982710524707417180291948331606257525515953096726043174130727197568573393541746818427154719684319911150793979939450343549836864268525255620269497849206126726008024139620076226686484794806159985170319185569190885187219482997050278310667273604151838057162667537486157439421677651958715820248186014973747160607746586381436843912385495775559609254286013153476439268265985905585783164561593482836648309704143953110955072198853966251146922210655618041063299076573724033327081049833726427904477773943405157521603072608603059959087514308656365080667103411934355258766525196709650665094011893438296252075231852577854637228590815781369282140944983613550523788957025904343071210905711803867029456732960238106174551961009903354599495228491816169509859928164163941383639338169587265995612524302654123200232272529612332987711242580143855829906375771543459562033521219009037864724420154425304328928497318328957386333593430877555841795187812027146301135162128142462790059133189777457459504235046276783460629728853727182576296481320022013970399970673718321525958246270967031900338107996895321151968835186214345461143103945620830829070994607278563940203253521027098450493362683020325807319721074892265352329994845363212392006411082794875474619543152079195807434774315698591412740668445596704746689707877192035227048880809348405448937599017623873080690085376013293972921027384375315895777745741952215978680000270265010844108174455169678019533385459826808079248317276562715142837591377265786593281414729610972165450561279808846859953732915288298921070301065269978658448300899280200736074373149156486836452457922849086146898413471009577226516097452540769777717992875347121871021645486835466728489315607006367198081982486445336814774222200708137401396576216095617855220438500123320999694899428109198053324380913580174917925108166007155346958307753328524465498499829517368716117953519144364614544022263042231727688488882059775297669613023482348122956399839201902893325459471482289911560597212304694656827476983229326780162139247734739600340626761010818140280968408850744036988206583431956165834863778839289533383878868994936276467903633517997066771513914467974540989631941514572471903428825802279905416991712581515825929837516025796995597348027601732871886315332382783859680891036883919791797949882416136440045936803305888525093774721233458650576359575827295432919872734602398718262849786087132942972495024696659394441170578266801391090001752776236234074231929161126557024577606588401791358636694395072037645268439817842698840349330832300672473474114718971069206904954081227714047414455171924156856192707885166574436351908867155046120241904894835435327682928095274607315902712910890034348210426580876663585041099641093148494495392070698382711639930404443769304403192356304668329126657119727713819079695680101920567364871001708985671947008500381129590992402410687879253529618096725244711063160332239245499095061798814917654510373720868029107176480538813542603918112990005336899100694854968911213497301397221912187644742962952817955808092421613852259552344295397417463107466982352985352547623516555555742056712568257771201377446922699521736669819955599509786284003010342564520092369448296645942782493976121674782492150354028162762795325086261966299230721713732148370786878175710166544981932373359740398695672506738367504443525232888053345888396791168709846656060111631563472679652201745283409824803078097247560972532966290853774016152710167897902118814456494722842212140802436203383355751229370814807613238755787280342453557037730631741030573072026889839262355364989257334485691541118280645085433113024736707323829400904772506355993209095929842033397388244973723833522420590650682447861343588786812913388817045096609472123697708516489572020651880852275612832868428318076416436680311599361381387936446548160351824391189982476342127378271875910564401218333089982118460930755330029309963213729187649599336651064573956496893428278858958213541137304884354365027653279621146072992326346360789836729228048597920951957961146302598459000493491413932968301317737912340974570080729380093397496283724900892285866526313070771661010347691177819842959464132674752209447438925743809692300137860711559189042489992718607790522758685763415463894187128813207043728329261485771278603808442496000362208398857682772455940691111307594502798071530283703936624798821044477682438437175959106450326652617760978279281993132457645033373371667759641156505065002840792251066522098790562381251665058698653404650189559272829661966298705599147121333092826454919529020210488874416449614784352599527828363670098251549135397493498947990785866223796723851788152170053770379267497079060742365816872274133503986995297275320013655035628030294799876255297880416438470674770392849389276772782753092709673529213926764291894527234616549129668679013849800445572424147139053406879020558012495004143961939568379807266973839453894772067017792166161970281924518752731106416787445685647799415688345616429884056950612469966489891646524571670317866887214035050392001021026629820930026196474752347032027082168755708188783435100979105756274746536913433927185551645403817887641698548163001870237475493204823164592812128420743733421674348281144066035791530976163232716562684531756475285996729248793572801335272986428964585443954596438137192377541335568907448759271353849901096921823289566195528117072846879425691061772896000816502624856302024323824374078662358986991026617832812337007228891614342650686900914174751197521584457385294079935537046104602502480422134218072205740808238132040005518824571263306540540087118008533083782414098722204838163945184956230140245335816826811983282263018463495601939954183170592629124294201720353740059460137640753916547848403079948854472596734116946184555697501051273988057571208647144192215046404162210087324282145688153491021882293996459027541674836146377901979251477399926461576819827054100978805970636057083673463259208302394315142137862420323097306517587603922503584939938927419405619923465844577577790460616211660694581306622290972913390916861107643882672042202635373426502082108327570200026596512308076321965089142095873355721320241817836071356032580529093181414583753724768765294137845692004586891077513037421678205768815657207663941915338327490745475626795164614029882283774424368239713260084024693017253646250087020600515622885077410731900412555332228819351840971386483108368730695915199016551491813224695768088258627926377722512417604830330882144045426131852374609630006284792953226998973330707261657711223779733381388551116118778001560306078784031891880601531883169894130795508369914391853502972749037097363811685208325338193395407071883539161514608291633978717417633805630392287493445673537915957586700286906069936507678506201711840781894443157026998595967404524863507347831089080614929818839916709819118766638569509162331156929557890812057244929572025659886628859733418739959673164104852267853504638116662334402267394075617123322913424438975135117108827866543480802043352508793149820889073367356654024332875023216121426951276415688026906960071571207252637668537141335677410452556566699035802598482501999172031741750460063494079870487539461652564223934695481989580918118699994557090743341558097585514491359972232634813810713889613567586980077700113886223493738231531868976468856276215448156157175295494482421321065131100197442204011183479303419029018946667755426207394602638716657697839573472562390754415103689372939954010671376970300926791759184717939693274436139827662900042551807886200560294314432063160953185829955069059128432870707316941233879310803270232836432237347788128389921172338378599827600197261439354759446084904244678736756017327413000000032019247973125843575037427658508358086336595908936212628499580234331674035435313344960350346196130577205090437710402226558795035895200769021719087933402148491461444192181909824049644280592696348679917415815683237775150032420273061810656172634002286043834427923529410397257976248185895060343352512402775927244123225733236208388371077613635824551064163576227800798864264541986685177065926433288956381498656357350632805439722227374891835799708972022523132644061119399576599442000170681588284412603814380052145273312454398483096405813764867820448765818194596262267871999135228925606088905776995685205623934903896954711459307725927884600447431992737191906078682488499049206666613201337953497427031837562575881850493776482033297391871185806944213396952449696405390662300902631370206443910268126961571411821285328428578291058928322544044315926369886692998131836109420468614469317404509387713689967086395801863942461315998255569817936886369244300490196033765255811540470544805835822504177593637253766229412305866531005665526158591766401106003491608910940578974140775803063682529355094182349743872652303149099125096933766481078666170583179779863313983354333742403151908078773508831412618015431374002432605465414108540406348492385173942952966309734139828411634528179828629980824842395414670670292341460705440653375849270012813317318601972029879019881674384156013280455321096184024752142608279497136577933564078799125563058368545304915329046524093131541862776284638748815652461853638973519444223234855296622213209841959348099249218141596534571563719349370284600775606337689969010710890612214282347992498479712132501749970059866846775427254141986667765368699030671106800108343424121314107781879740162959807510975574489618086230174136183896556205775338952897687776055221451368420316879859169401236467248713950882726252202070476016985600364070478092923642833322767434090938124569686334265610258426129596631009992911484657672199154582142587803496433713997269920513034264553286949561316462226621337374492787780331933569753559621602880316510034162838491521462736538949198833383543207547832704825736649787127831262997356049581667385787974706574419995376648532489813484571815819242025883810059558515164521016873842995251127249236006846929604993278449539512742984525693001408534141040809547928875532821350432333308446134509389371968680453990889865155333806213847030339977401843526225060612535892542155025619621448592690246210579730193370631470608848747694348871580536814450134242921576294236459203652457695400336104741724687156428635357968080535506965114117413280522460969997498731538780801495415010333112853058999105427786263193072499680330540274915070842611264125409526088527915055084308883309393958172162685171787412117187923088255582595963187159774877000816965239635943969564558396475489139162361009841260903587566249228091120208238573267105261805286705991154984797400028971635291484750116894390528059055151073568740744837901496529585789311521351941161168695936774990143543568506253324675323255147924140786718876442754578352763475201801846218974208232341020619214209083293722112510731002133744009978443896612695429844820879596964203002841557469628469046692060475235592536816106417116507967947607265332803090274530258628658027024508835388973444994419438883206874928305930266745581266794803124543692482816832479977375239374021100253993110688131343337393016890633354153807406314497490112053843776983340631319568087189691401884676072796179132732512618827828432362628257908223012176233397065927207154175618705060562740395405180434428599694711834113451710365657989429594181542504179600299828391406535883862847092641269812280416818158744264698340633346982156540652134643699533700912195168363981040308140136003890333472344012671982343849417119871631911028144175945945822316152122163456173645058358466885901059679192566732160510483131524756942050229297946594436516728708745693212959692766243398311572353151080859080351342525934415667444064793320312316046656507777783881692217646058088684590903740439646084475440177534313875494996930919631948582630883281745190061063413165862148326644233329107445775140425420228200586629489918543530269059257169151935412676222810499214108755273590378926394954493456072891360357094025781550944256120871568384486889169559412273029077106726805569457069783837903515787157266484932055327756885097519322992581727855206697053617302032830380098138340759453141351933061711100843019329268834402507152226896599900111053310615267758454377161273933237992347827157492221641555022133744132287428388171585110440686495761345973067404265793151415806687186929345937899902127427583356530447046978693574600987237881768141003486363075550336983171336417523643587447140118052502749880652169685944236214547457657849407253160875575262515862898134767976988049769731179390006515905767450058180603348050095369319199307542343499487099944691102852495149243581377687303698274456186706668558096192017696913685051335904292781432875825378809077245286360009929181145353831099293855198784574859123850140431583468512857304331918098725771729515689752210389655367446845667177215723947362087465794464287182174406263770543389384626117033981460585257796779826947899381157358105390944970663519974529238936886315689629282579712866630015155558605487080107488920929255053157846400714848626155167499412675920145463018675529523056924411693557884166605863389850040448811814546527199395082298936971048523878293098785430719744288248862013557624539429961909647983725687751425513874287259167186244639124097946522416146936957367712080722334231585937792872838208756684575108215191699841899986262910273271979846965851246132984129060578111969360388193215092952079915904647922381352359253269673788904266467584424708044088876048550335753539539464347145223283008797377895575866998758639212336722825903552116428402990147119924811216059397440652451149348341760590274905732275926025503680764952555264618933895933332022128479929578541019707996914891028207284613389354426486878258801195775923434585424225752268946124937377053046616811336818200455879586030849803720237797477683755177744286336140030615774887897579847261176847190386656990640235092299082870948092549618198828798033641025645205334217863390568753659440784604037119996500494442288448718728638934381136099391911015402279338978650621757394553181354028837978102447171387160224831281111169724590763478041419166585411567117102798487226290634929876356978076012730535990088622595024776482153341993917945885774973888241985546219196019694700688620335083893645336650072737739919984695182394429815833039694651461949649561946978281774485218795303206431457007207501912400055016705085377086279685722197342624461435870769468714501493417153482244353013100058754236245620163696874790319106937774093232598029948229832818344199264091743808022683761773401838070118401204194901195177872652492641918235249486079004360625016097482121399787920639425322348714451835233976299855550682410114043005120569568430336554271582801081251181107475988444799648534634797824448168632062890321889963379362181054960165407831936446938166420235779010034348159078668958237011176602250920928215284749889366067435084988463615729609924329517247924269595116116330913336425029966688187755933721250034974187033208057994876596986906133261494482751252285563180860381644300163501214572634956465271556898586546045439006463914510124396832805815159842370728785451465994715775803199188781808243095903435078525175627017376260908855424350243989590730501758874287971229159208348892864126358057237270527687819238170375131563516653644526048218164498041383829022602974251556188705529631745552420286835674186635931047035985186768637034895571076363227125656520216745847173869392783141569167417872252060060649116668274101123103670844114904424618126631607471960322248094175774782298555622785741500417654865699567388985220671039725592107791836041511123594346562484776559785136393699909316322299957468350302914286454389378447403068470044152429800512639546902713139189854014917015188806972955926077131107929552024951203078823875355493873815901152958427963098153974088167279315903880558448161312214808934194276372037916076455385479126646482203340159448861288350074437260385836323925618279038999192836385135373690463464001745336264074263095478130527456818593155941449142337801956085547717119209901970650575978223450992627609038956744069987541900340178115954345312508577896111214488960484492752220950945213030928112062951142735668929109983405508746851591484349889501497561424327984178397177610250448201903582091419822486280076940139922365735043906562959997283018138131160709661156710007224320465930975132676284925078100832772864764114499744159642376533139509837744943717582736656532848151652579180359693753178596347078925182940633668800805245773700694658116570003796545107331013265930518142019410243545051150893773846678020993987308398163485035380540376314421928014971930876277588926049155108320106854777748083798670339453968681074328936436178519749908609509914875685140704583118492190922570801017327429515040167546741205707894560665498586607908756017431225400688322923190920524510429636259141939485322490486773923863509646841516157554270754280747973431679727859442812743523941117659278911252129680456971272215574489605572658600442139638648749039736422751718503849018095052233190665356183241116176487440848866993973848042695132557291042746515476036724699619019549327679867484978108472805684987451272649221457928412850283686858074711367694052405626669192811283010166947951441094991646320911712512185294469951603331289373378376140420732192012490468363662470000102416310037389007891546748835065308323103169542877066758510295459029751664198209318140514570748052809352535225615786109657727683967702142759066594996675785866798183481370241920755820286130134684830635077542925607863795366199996759998079882385508671636082606481116854534078908644497615293247787908200689880291019863007942333380653111307779033812012101765051073040511188730520945576038484094416886713459147178573093242451409253499372372900047859408666852928197929995680938604410556000383858444441803507627314563915507037115146715170295303514686718131855935954997435514568915359800494635803609447435047601674906213544932941360526223140372362299405361335052041457164651615478275572700360923645962000282367321568798829194537936780250005748117544143883989076377627055890122299828802833533891398488092403122858814979117337447725087256351859510266842138021081416689691115925143913852027433164810688425653993806291623657178695198729537939310465689678463342449610779733629259766605991870864851430069586965289090166449908355272808570549267366208727074414376709821179975203165121672673082723894148029916489762979572823267527753026570956290348873009200537171515023257687736352406671997264315275957892922017743686742550114384218682125961416944288570508550025032569336970312517603125034820702952424475600366891499250362862631227451291825092538498052996789628388039751569469930124488416835410943039421517258723264355933129814370546134472165215605485354199434017574577043720267611376705319409920653464066507916062020748108593867609410439469639661596840493308074643430648875003351560447110777635966266012000580341981946815494430827252238527939656353228687637621337975338197512527454403266979666100301111975773709181712446652046652290692940602805426305099843901078608443646645686199540289010018619872661867516324147235539108052897850786359609810193337109805810817272022492820131898118369075256629281237129911266717487656229862703462097409063449442403072900776129423361170847138314576704010547295857483435352708286021379399431269940515530396262017091216162654373245209387334732611472390135211378479126050154357555704484448921898076778846029080065221257779263405271761809138803242230629783118848516278371434721266523051322437008532144459125196882466759209831717797341635656559032626807183896796328332294525364457622626652301375189495556860063770306341082291768395459453663157786141604588420014085956210696748300688387680334797858737265680758083263891990645228473910405950955503246758273062031058958339817939916329245501095710685731354731149155257518573053815847582932244287306072699893453607729861675715305038996466914957366315961758880868159808021490772530647348043003395431069014668638781722010278312431757723883839289585678617550860529489507129006350631103081015889174240045899611407910519565942636735434404684038311969662590155653422575220121352179724282606557510351742381306646365087074350739292422764798267461257692827983346026684439811541929473846914918986819027297713687643764358705199956486501810783947873102167737121786967220988683064437109744767231428546723029329090794830730444222494263914323864464113028326066145497010777984903714731007202839114018890838820070363566391660854596301357919639464081892465072928344593749469194417473185688934305920539529742462462142195816851013113618601189435093538871711071075646603362314689692269242951135819488220778366856992603837921748063926982814881643611005172230297024760616454330480344538009910619404363079385788681109247855184967687428224603109700526590408533407422780074120790242873031741587606973475891802995623741909678512327822322459617802638885128014099152265007365303542807121844697957902915466428478811148398876178919049711018306264138182912065464615924302514901610185204177241303552259301364044770215360427358948387424167958404772050599135260413172115598633980480558106079977586274444630443521410801209184932153639524262831475336898311179289924819387719828518493574529262422223362953480470725347800239696186531558791240295263135423047130992253360177624195509207059608636508101540757699501098210137780252373408718800597194394366089846348215762696913060780797577758109653348818565541172940513429811534325737684973417787160140222920507009885843890640650112072655946968425431648171121876267453432215438381883751542999990181785250561773366847935130746333000786351669940305124538743791101994027447557431390898984505699199230061824602857392655209851440288227226714698503698618159034746421170295942094776623059720423900894243374745466866638308712328432071269933784259224529370267382369477865126108402901952761097096820971055029284610421398754404785361516070036088282248596657636588928931986108447999158948179052660458829869426052820746406807582246605998454921381389162739977586058845697118521255524187688954876424729789888202541414896933776632375271206563150492869117287667598218848751099457368035249477773425597678205015018876069978992051605184634185752088946544792386334009036723312213953083768696801495937173703452285286906401172991939264331653273724111606984521961071814039717535726580026678483105066924103495768795442434845395847008054667699019397092881364826839953011105757264822022506173645233506955305012856789974229208043531930000327794494841052533323413892893022381998066362267841808589168020140340538591091382134928632543553064933148810292502875830820840738764822823598762302348881430852152973064233243869740623939116631127673915361350575865235044921127314391706290963333437830460141084995400196712323993850777304699460561548347322506853098355931315392990474122495128385807278033183699052087361337201700335359647732210019730154957662856898366955093977973681957312991090620284544273867733372322543718051833584601063006886049615142193600221596208171264927207494102268464126734548095463481432301863628872814460602310098832781497364097309356128268415591329927789758922979369234975720860929843162461049529743875406108041270210799761310848817930970734339230484773199618033843921297857434941972370010446969972092936846007671088506423994085017862561068556226550106512976875461151130161619615613366355827991911110100972101067520033128748917809265435723095010609267158253071881532762492202209689138842357986390389052781093738068868826415102195209350785086218242621255777696615456278587848169529997882735256568321579040498641050833111742286472901526288046693782465777693634140053327469284634282876653109949212422544993266437934667075167970904489462572517962137255466365243184563866017153063752136870264749471807157417901527627453695081845392532431159176643416106589952172095584307153943728666808524278486039068705855007495144775451952871193137758004784291413204067778366978178479155313313771731864852051887104868595880941292178343909222154602574411042345371610032081278413993220737340855118701421366088504479967158876270207388584323008159269040207811946433841201350455394559515430415764275104919456454018123456031193998991296538961823054888813272270036893731328190883345568536175229166208993751473667751354534159336678216560881489017192195007025269681942405661592489903938947326491755048116701769653916912876416887201267947609746646246308478857155366958130838535128972868599365169095441004133970648577251458917221150781180969762255212656668332387768453805288515684119870237612972591707684119277917693183969143808764265727937910192894541334935090831250412733893598288346288401618645168821406799255553190228477562188232424862728869690117504717159056097091775400329099904471298685720535359577302308857138619296067343591687881128906437657256190597616702875855140638809905626334785534674315433808306759092983415232970369919899985573953586870314658143426453402591449273396957827075144817832054218427696146550270642037461204007623827070566861930603832660795212734016457410141235619288499499491971669837405723683174460393259868010663950470168892882785560712799055234270622974274571264543254547065604948813388767181127049268438406580359631905354869181137619830402999275220131447859106668159412103728586807902320044531047448886582587589153990585227034212378694732011153631850618316303983971295072527296508197597076663093569850075496756948034020832963312403047049395428045469128193646856420328247480735670765621351217861382016043406288911450326986434891747194587139710465089766127280531581596195258168694651953609887431954778534533952046308301545396566698367900027954540199892454960082030176958001075656702867656336136842421933233901414732516546834732971031005862204998842599999521509530636343973794354517354620569289808951826297352188228249208207992598920809791777672486849932259114096753926533700045518493729876340019733073350337454902393879844541183232324006142481463007594724014829106396289676594152049336407295784198285361023166513582051996182751135392063182001941052242110165077337572773504462355200630218377468281010809783585316759180780621946112366405170566167535007065240892420167214947614189714790067693622148270176648816417702886817075719865358877809104310734588265793925628735072182991427369242417494673226781307551223328685610678654013365648542207686280591201652755507649840784289102599757595679353873743147589703983781229080082980799764522531354122655218888256056779850229885533404006188348889177378450973323296629517789580346996545794844649493367205014830367790143815777498029724555571192831372790679682078250020497528100892146568550446522686149781042834176434693474871041442301086192789739989557264893917628573842107929086964523026897530213872645583809160249474813398048720562553471248248463386926198461589667145585432303803284150507288124563684104991651888989929745147483584274672264821721396343794169589870191690057419082984221726804462728723277633548514493470963532052782597701465597121408059596132648923728379966972274793343057522526461819795976440330453135315520811504049844811527983049687790781693514879746465690486846854547339040010207469704985316676458212663781154654199915264479455823526466811140415399385156668529609561210856657195755372111508280863348255157970458582764623179212924208006932759917682560507705307891257907314896088964729881040543011968024314930691848446406243321588551070234220275971643079414414681102240654991659841350333111762826282946228099882851619107819055259318876493413513124205296838073283265507904020134474349783426686509637280263009549887431809266411244473743108171184574395672842491803442129263732940181321211782586363850891736836958224637502788175266550736737665860051529829555017513667437406120671013805933133797639023719291589139809603204936909360944656313795174563280950562940634368695663564439590011735336479113709479074328609629503107754561875308694433481027549712254371191495931256103458597730005319922508444383092360297777705683720912980172022873573498009854765426988760276181997773860316622346185739742887427185425326729307163595850867657211040004962454945106188474509086273020525882501505583191713836693147507563354698678930836170332078541907834272132943567372315767869353675964288319644749923228409600711679396912159139846915289965901088198787463432335861114531300556636012998665126950762316161724107979112058267472024434948553094214959981147783775254587413481453828902049144057546758257073983758143350885052493696004346044533145022622505651995723449428591423642651902535898384348928370554832672387002934033466429408745746758317308393898094513565028035812640466337680314002074784733790989283003676888227411322844752068559097024714222638455191600180425608078211555965846890662484485820496410615496858927233326158819804975193153907980996466264866737607209105619086529943828349881204106279704932820629094838354247343041459545121704805975202972707085553609588014978738208016475745831000797974695904575998351912381307447380109349786273407382967428201324093887608717656082453395477610183089570349606420003771692029774398333224063495321584595862446380069446742398904628636098679141741677424010987053114988159091774625313083642592164630113838906721254660002915161163331183961746003764339826177850259604037946291084516589853549466522222114147445142394958888426909114806026704949708839722984092975445337669643243959338819781491694289280301971642726982746937301261544053494710525079617101953657470431861275456681563552774155218427243502815395926419483604647182954234278735956303330715320917747047507448422828440337045589721695011739186869476250828016803369499522177615715249360331896167836173847202273462543206270642058521190687760023782883234830548503128475279951831588219153163991049048412579157730846182520020684610163650296645790105151923037822990565188951859864452891977897396275662072853285233168679336906323913895776642277856819193337325120784650934333315231888742086556413919342917984919122781106902035957657718982807301504509643145324934640418162032275168056697780440423645382045341346345482641190511647052684070173136973744711347160872841958046462968466756380379534913764084902576325764397626815434543878273444712861167954556148378733588486470843804820239301533586116239086010772160631661959148036700943568918960530021828949173964521480769115617943156430936636146143156345448972805050353193552849701887596513473454762077318424490131060876106232937043400281548459490374321629471453738431595672689432164935101783388429601441471620507695959214250794399958369071267771026349055880873455899687547794457887661341604344141115681765690802159569880407553655838733148810897199821837859322944930884358986454757693449109429447098404307506164182316070276763160586243571310632626044361695061347415800099590394840457849998447448034358190712500257979521498198798394284339325396697153975691629797514592476503597488713532859783291041281192627688404963551751227474794569742294061628620643307560984644284944137039916587291532771211525031136405757016097551463853715254531854722151315567860732217938275831762799993903629430789315618605071380209104283272523417217654309624055236119191969680966790498089388708983189167294590322749644183046941917024673536651814113342027789692079906613480008720781610790357059147004375626314931149564243560506859706029448786779065660056842519380204385537907147831409935295317884419546768803893925324980007268016248225264270568523533755916870197005256378833232615230328933573702042257849265609541440696605559546067810216992821086281822671964200260026445774024607670239017306708602014534860392654900643487215965048613813189883270440239602355744061881294422548327450014823134357950587642488742171018109439181219172691035542287280655191136892314234369482862630588809905089869760841718817219733889587753443933449827227898958738371058194365167483215552073266121216347010688984995828778363302726783101258016930481790708596773925237605244581103587312990488705752980458190077363885027154537706255274528172135811857718188263259182106402898828486147205320506437090132206639236262602889435603358533050767590473801336234958803665419053116857554099536634600162731676158142964502225660341306244891043804062769757729269697369948251974436814340741693661928595619104070191565838781098603324090195108348836317402167156461954014031025092414709960463304860592330427419298046652563843609080961630635640543346674073433235991782609072442888513141929000157229362034871185245016922966753258033673261773030320054720645957696988687536372985458816106335476782614039961352913124860040111422389758519671832321418414763482397494555520378038869441338681700522849300724041839301460587624094318024026606729333134501434104490853636500946866636145374045938235960183733932758408221473117528212248460409502235387429615593358366914494900186717283271300988072324800118555555616588902933992651936726978594501366233145959380074422379970014472449278526409170058349241849585683487154508712416020326844588532476072048678316864050829765911504436771369875824738271635223718903411899674172530885998501433232342530102911766098741016551273464340626410623149789205509439330828587472530433337032806924633372493029409962688554673602251977496949796850398912173307175838435924400507238662817080468540384955604045948249330999762343701428674690086121113887319663299017278268638637799305005304587004167448958772189823372524867174843865563653341415982121707261340836983771707431577863300378667549712517720410337683058987423588732950583467505795498966144831183132142715727061228836376253379217412127644578444883708759700861304256972594635549718552479260778831996736321257656773378871460769905494677418590499848084220718777386954315108191531195280344663004200977319899910583358577877611198459503698932098326447721154251814682188406140341970045259901213625670303665903326494487601198419525571280995969986546453062101227736195391346520677093463532139735957465924068747538281628579014058749936808953034804067498923819533441416152083906547624055431437368224839993233491830184616445872371367563994812734036678301512251130129433418055892528327697799485680046016058240578835880586044001456846619147339757816269924805690284803333926131065971474667365282183142137745983141945594990212316996495448140954009739599511748582456095780675915812451319585859759450709220544847101232683945588387439843459026710686197484278470378010102758844472629953791102973981355096808625808151555019962726799621266891817969471685630739097839321070641956071270064905379939806141104237772824855200906280018593737190503172395610482446353188239817676545245781700860220976598980530930599415987002453074029566667356311252682893788921660771953858233738464827375431398853421866433363002617834493397908587326845260836100141249812859386308530634378178216759274941533775687991532604033585903595096045855931103894060390555558265055112001413796270122956975704155083886430484178248368471180199584014965164583442241605640894497689738317124582604474580512034747765834760375672517433389828649903180475945988757352627826015027325481230881013851938671773255137196031356487586062323974052857256840490353774544476362111479401490182236812097034568775252979990008795902505110088026883307965163471183664643564474985221862205611756466955901578504030737733282818070338885191697101885039716853053245177458790079512865667927381231566979811500143842358862943769777716586121797715809745780209508011939705870289066470524253845653279310712886131345681216642276059082745577421030415684468145145616649287467693288083091295432637872052955390037591793752916978587920789202784456755536847291656629477986304245002428395563351005850503451687753779273405111435618297503645574072752880325492140517927389662387546801302491028587386543055780742124120692012208195233722401172879534374129463554973693391313547635177040177930388473334483828039114668551234474137874555527303163807267950043863882657602050453343027517798257154689820986612534786197265212660456830587106248588291269110989897542673708593873904535841662547704985105366112854087626513579143067424717142818402755310211421572825569881122184635926182670312939496263176586453721171586497872872454938160394270440729492012067937864417111198898390320812327539927067322493960345468105375242304774350682155512425949878821734384362591767210120138797926843309880922727281633779392045045776636743664234778560133176046271640341885092530626733903169068850378691369053076087033040943627993284333820333216604120315335510294656969913438766472696407583158039779834002909949649172985666455585485474602795932955883716400115601789313514540672222376878440193422799224638303300793092158173859892209086361447101530704086053083341408375567006882933329408717441911424078496675654524305812783114988359371932203272477267927979290710637318495252535056189939967214639875975660368101372520677122378610039066575649851695298834084611581778230784826792081113941027891789758173568365529305308767487380206077118650551519759812985369819952679979650074475719287409584469678496182145311268336150722606010702683450564738110004272357113905444672250601705035008719553350344577082267011364528113510607430095917821699716362859852090208529752497350437497787972560996712505334845415334080407515436392309243689839711773394372009612743797896386986506212847840029910776537685849598566482160996474813026429175038899182752633016492074481261320674833840427647716405311972793789632941424019454515997888851582766985123861508676694119557090015634431783512989391232315047395721886719872395696652579536463336620484431708886160746059703717807807782773390558207133833641790352795389259652471122064594640137224881183798061056875638932135790184072664772551459174872329897847538972955617537232989783663921749886725357632166135085884222086318510732264417031623928155972492229753531992949937076983003773403378204275536412972473493242673572385575599491572118707407191148729995208860136817143197450111674615445180726435399529121955696549868547144302690577179571625778497791434855974308621902743952761703215957101135879222160230507128381997703289783387601564317743079382820243759600191797651678888398051315104331249129545553784033622588575985229134626062778804596182195662389606662981506370604588765100861057194213840483229513587375509982511594174518062438549964498425625761027735731816764037774249015711651781943616414042420680434489989559062578392064679135172275344606768852851796537499019165946233465405952378367310889334592345362154328020496829715922753998805378214985468398928524946692353423735249917401059928886306937909289890193063161464221476701759053754997885537236730179830145616678334419861189273403794532493641111363722173117488997404242777066472951017742143211372653757354730221200581429865162852756427961986830505083100296804342703126686954120944543235045691012932805139829324718792848681472295536189939941508224260755769477556692004847091196146085871492362391462873989605815979035117534572388873750911006334588634827300184316942303264787383170077332712049121747173063254954199262566932567731585149240126846781202247885274688126940770014645039550653883063314583640655822477163434488913284210779006526670180803383893211348256514445521164401289682984502267629704231514633706610793963279073952388605182995554167583031122021553507620335113398802137976969607068202195542613834250348211887318221668779058289545639476635433305083080494637236840845838402252191669065911211556719350539028912562760727663601660086871680788287896613669771398233507096564969641538411562844936286606275051232921778030261561498629080203837249842014823018610719214575898873908635622207931733023026880557600667553221779430628064801103728656273859652285003107439570029583299191069475393927230222330278459571264917150312550448778525745580206689216377403018549813936437225755076469483085262223036749308952428631309378202985678229749503674286140218570024649216583072197649497738829914060980487252479053961797358582535395074591383006357756636879574554808150201395828312991559661325580014340937711509387611443146072027494191604774058179085360334996745437879482550008664305873925503986422722006865805097824459109217669550138573445745767875682171011551490038206259229330379484355870841099741627385269043837536588928320187354688936297332504549228101351636541080169255465100049497078929967819791105715155762190479718222179449553908811062570750229919385044481112643776279411856800078847237920419840540806568610495193770693501990931059033563738995084881321777972711701709962325486572024756028174594135104526556744135873234650101692115575423255207155850474770723767583572144826161384750850119525105277243239086311528915550816620832397202547660316866424745023169217185117247049442788224823167434182515798417453129757918222617474884280586511285073196688459506580231044857440291276445780057691492528058217696490252379552538705964089460635615690240912901095603612585765810842362576067764294577547015528239727277943938505048329089382112821708176379792445525639345530017825539467443779826229207326354072962621090935171432336514184295869425866128255022273279733973939131619138677163405199102168576593090692240134389459911593412978096734832942121406275637568479247204034874234135944348083684928415786541617639168225611237385416183017246067785289011199583440491266937292137464929435731289597425467089712242720229369540171228389486273232742196156679674900133116263033351587156257265126111092320561264964041937711484152003987867902840992031418480428412371465040406729086257635098633255858254703266960221574895121238261214335860608442698785535168957617822814961212308944615168583028242005353494988650425490173365110996305836262010319783517539648291468269115530151496398067761737199920983327633151205152986760488030542701499551343946757888888808682389732297204513390633684436499190275682452956706104578630088530731205372121960433315719024519995771899558320071049398441688999166218044616859139655449855332222028148947287518262281870968899478431170005558125107666154203350018495804008994651167173734290023783151609331883832584598924350113109865656917983513336571668920825386148791441142384592006427969548866345646868348156520478752978013499684462543808502190655346459838488044792272993783775753684083747042486656157086796243248281883564153145543637232627406720658715076183922772833403701857000736473147475012585732571236719551122838744823285644861609082892267357780007173137206013637564554968778437375438441571940692239857896776618213528891382176564646681120150351360782255595908242272169247507530467331705359306599350404966842175062253885392413723874169021935332382436322307166269974269672988009464253891355888413438219232928797995583489807757825892223682281426453626086379039309596025158765871921947937199438446621823167246499925520633312910212341643488640749005011611341546177274364870293354459091682120344280432137769635308041295528844850588641670858724340280002097188482758291326615165743958619712654728594232822197471109715655201839421361055727470826894781198529156071901532155604683070773002053966260669440482825672359291802901480815872648931002294807647892799238998444144891838779657252220292920171165982876018142573866407899247139857020967527279300224150286378730499258927416901408408463804664081394801220843792242794176461036918156055393035126779083997604321856651931210967932134285761305316847686309769753668222717363215666027805804090451131204037227960304454875971206975841399030681926136471726788570614893788235992587488017827962604568579373527325494388969594365130466959708531762191387516847267662273438166319239509835711297954858597973609860988437636074628073573756978586167646013390818133122510719295647604193109176161952827061955626644596695679357124133213466128733443071627549654628462431194470108738723885811394833018267482758810198995336266317127638372771121609708252779607369480989409337978056009271597372324818700719805164572238998767706416514999116805196255944306036850503773671868116327338588927003645207412051331401272798063862030690728561256152213333564874633052768866641205522775395901555824114463099177729306338850187949453390188443791269463394917703316234931831563311790915641382920379522340346555993683635806374522242909047413928290651260882484092285266906160329547047302502484181880387499655630789206481023386576356899937496607050931612617609356321126055544381400649582887778765597976099771473254415700829048877230439793862390493253259259202562766662337520951131574500994927336097412642004048058160420927575733117700259456700283170714709098127128974992977445031731067381109081938530265688674505235501685920508130455864289365109946921900260243374552105281704330646525150641509441974088115988315018063639785811466633033696352980264841717127653396461486096610282496500297764516515441427334989068222472103120504767363479265183788827079280673524429177264497013182622147757671977960977319054022000499003009724148310600374295306268118042306915056548477428877321312626137424326031295708219846576838225308489760714603450304285992824202171299775510558894259605971326522844339931648058743188959025641519873658217435608800601106802765588096701425227888921806290144995091025694908029583799148707940104146499870312208497169744698278821427928439457380760575304800328966584199463024329151307626236709963368062742052438608338969234826969311781698452598833445006009973640936311629262404563858508578162982313516392122830883042087442605973754620668740876414315848039955027523674879787088691289360217718404358987609078319699996999158968265318476475613450194050860047063466141595183799616881469487481108512623004859239376402159430401163156662704139106264543495526217981127374315800128677298967784109019864444224423609960838005679272107619541114368781938307289036844221758289848642151016757650612881136596832645981117252458541080413385692021127052792236139990731107536275257125327095524978903601531694325147330494972813991951090643402293051165994963393856684303624387448817210095505033268085205552257970169666199674725590197892753465150174465004228479180120099527996659815147632318293551191245807913344249989001067067957289077584133205377318749898469033650748195536428833041667964983282758916577628165510337317145574515149769496909578354489869365735549952056007368066382038265408815606070296482072966137965772054880726893925261391159577173811658889700480270938155932861495815850664403662008995239950712699082902130952095146639034462538448150384883822321221942782469072331530308495688344163350964929171178498118899380237485366234055315257316114359483946381399769531738976025349091217422963116140423078786462142827265767392667157243835578751724776524718106973760170337822419048939172061889659279026777334861629618848520664322984606628444675798458551894996715276168623355296460972564300990508804669625645936614280032241626699727580937476783473447383012328276016225885160897615844043073979191400797133767705173004604214166264921152117561330637254965034706682355408289995392904758721801233793635975124669443069810174590422551099658278181415969807749223827649092425417529894629049182520234184157042295132430489996552355836498954646224716150526247921232762755165889266498579604431685178341721535892955330919210112580365729910570929357040786719093872082434204778104206441655073626821650817000439242893547141584341092684789065460294138861662614194684791074337255972574694027224586661537808675120379969615427095544806810201519624169638095882276793669975916034304123478473437971898513929940443891176322337109970594174393969913451160923753488487876934271689005340243757042935675248422523489493794392497238589240824585499610191624098345249265794299541572974402811474804564572379646528391609375615254324326252114929361063045067779517444809555678079598240152706470935190263160212451940774832855142880136433967588622652716114910218475702647201844379870438158038429390000152920109834257653011259431855174425619721940586019488595491552398447370916105593548202165562930320349836192644812871582618797975038697354888126170421236274095854474006831066617097164290058431951415007827511127195153649007935673787825603841400674220492829125141664557485426476022840942252198629299648291896608417802773571796223946232228084879208931197864701423891871233397702541278922979278230882522779003813061997818867944987916537059076435572698315224607062441010350752994279183386451878504400601018105002661202460452965617936080854378760234217143968816988623011230944251741584458794867513117748601032396795157667912099484702941986708469573627658326165966054810203551707943210451105433775323109423888128988254173986227273670461588148657692531150549416288220391166004116699926724500916640844214048883070727751537365992365829324523772353864523587933290184292418695728701690749216369540332362272112738983585312189384405382106447184932799999258878045834275281017138556516987372245104798466190400055559351897563369636751879416332248386546250533393872705576170581380162119893138095180087307054050170319170738956904768644991114345914106200824390167685161971816404576409161850381084627774146286484112789472552405204804421306493458922884942817910504090628562980976905963858675009572344759256179649980945501147464603963757616753856134589770108232624970918118491844696702360324062035488632000557795888068056292760136215644749646175310861076349166874488925033349365496048448539200632778681622884350429790193599193270705782651064042901302114762757611478353767806997773586312789558447936200178828765019480162438015958702076157929454748119948129081039394859917221796233849832960481235989890355196463524360758426372476158936754198329659705936536928926620141418675154304568698449376138178147491488230553287061691520225370520115714857159992544143338382736016314810525834012293392034902512490591818796844567142605994045481353173144407411519574572464338333288740634953957520432457708824486660681699449704123150732948425857406859868835621665334190411427718922341646596291919855632526952213194048101309239818710297777379263163179130029798984425807837395124465187412343505983222076992210361196496177391854648698126149151974409781861090122620997505040045139321313449152469538197548147075149291287413008139916762303044473972258928227760047373970717212962646251666773841440358620680224143984948119073179160892891338470772886531927115643351849559551859548539468552781286224396036152322772978179172165465495973577097470619946404474795343172482175573069816110454727394604815420212583257285123435764438700590208702795678441536885116238690789583129727737089215751193567044733827322118591643343113394216187752144353423967032831238634435772582121437157911171904025599795654724537021841806060846279729152943268571982776935217368854468870489385969100411699993459647515886658295707379465028475873246386780603117609971069890253789176934719970851293520166385062528562689768448228809351743050140179435511811138557967065788404571724656192302514183014492014626739174009826157241337984422398663838236378760253160182755237018355912692023918385335318145772254299639411268472940708401495425724425724162464314627775849067023881992842971396038744407328725866447804445320781401381635666613355027474377766784349032152919347005811605335482554740067366701325125527354395295705754726022608981797450952966322238236300938197031549581523104067461014862114417875062443511608928420328917551084564336150832002683719239624116277695277310390342649113665482412391819971611159240120716627260735057831774968297683163681549523016933611883090777092182154900018275667273509195431510213093604872579208090349642695507630032680320802327869022596905727837140163626024132575330860237025318329158995518050070304788876106048072559173860800469294478409995993070264759743924649564905591618612343363025873535854352875253075655652639363909845017541321312009529075832713989116525592372220469403979608991753323488140569621437816319017635559422105249462622562967262779518689002671372389675832033304277931094109368064687032365686469571023348083682345071094333511565129415277965746845638773968410608013322171807013569577062785062314773536987306076169907215735050393379439123891821024727015784047801391508926399610756437940090755048583118496187772701228784830285255364970202292703517782866217650557152220968678254314784201670942781794005275917742094689161135257195460878682606284968410593909766538353344706846494459978053692185536857045544822573304669957541282790932218936391981214780163036699759519913415694200238773567143408339579010958622538718754184429892211182361698059484379414960730810227568705370126386653406104553223459973699619838606021741481571866533504548474817319229208629469102878747693766692961932386875896307419379931026625584637826223067592811365950750112867224538307535935223460848041676419102301141478119355918546597139662288676610553931313959495469435601179110638396759214782518465747188232925786539669268989724706705183711655386766892617534841476900461244065886304970704307669967596022704412998483278737547452289895167711747720144262466020052939670242725438242189857396793974890291553045077543627798691893655707491086577426545712794787606324668254333478868732414386819919233698166503399240531435151293579835172162714108950094816141452410180158199381883123045220952286932138259189740842316081341716743978928624757317344408330264227098406599133002455920524000570635455399682191145697003436452005122414555089080408130859972735244683836997360735934559386814187129568153087669120014125126397250874862930096353424047516924498625448408916863280058195844612639623729297322932597990467113804253719075671270526363712466318672585108390372387351986705460514784321872259233440523149645256444725192949863243271143065667875236421312658292426444105614405113041656243135831660577865970304900621280420446725992519305678986392417599123669777299496267553575992247782544093900871170593690537969926456662401899581713368704204440767855561002416489990489029371978676178721305756671416343411510123653031365279516030241192808576809305080333364661213199473219402631532251515494459572170071593460505479261369604484256537613362583693454106832615108302628935599704760458983340289920078738963197475806768644017183332125930347448083110722523635767926212400292954595577465869541519364438973016583784767344172494603373061425993978032169297999115261054104268802230784331798889367849080260090784549316794130120375560948608229009406658204875505345235772099169920803783068904624108202933644251443178699960829370503913434833800160107484393543088440937040988252521049855348353936775699795352600924379794797878580209413418386839469024624071356548383803877263728064327437422750960311284692954924953007929518737903396657844967872116849543910469393316587889051588195208911412400403074107210339941062756997965452560048798159300431952644664847153838185692729730769958554552176735753840718947267372601395880672236116324252970115785514150752974306414668345736603958809130255712331318124236452191748175088063192643420361893449009075278838588543595602434897610640226969195104933004616973609173184730639233345312273709943345276996953530908072438506526438252190634444498708687578953676822606779373948885876130206649449227112684036933052851697808862918381333912875146496251533862475073366520053602029900936574170849504882345474376800420765569358956455515589814585544966460783473044194365761162459796328116911241148268913968629673915383581262630221635206867363760167769500540398631755860747299966212744048541103628630477730606320880298832307040712965040930679189745652582756710691145241374370623971376489159979112881277880949906739295454876421636073565174502695854622027932476948054595728621596313922116736641578964909082167388937825066409022843707575237748265204014232206367001841780781070585022255840470348280862101131843360186660128507083944207577675420740484864712783293529670379846262720726589171644849611222928868919734675068062892236115232294298640002046864340757099164161547555712389501783063866479754559467424265558311666679001153745747265165194865964914958891521851858379266857570898100162441094812186557721234617438225295923905817645750291999293198829811604083566096189211401461974663708032250177193502626532298573471212449177816281868264026216705780669938037743657569398578920735462529238776200821778613413152817569750172452075825764120452341600652228245609297756085298529632228467498183915385263879934953520187095718136275004185607450951860221797709285563951728451437606033275882839449971696942504897803669411435374489965092149529085415352570146908380699935131001801055209086603262706132559000589969868697639835827327478584649630057340469225106908076801911661437756702676928476446945409516416197826293338940853133790679788787521531250732262177483724602207251179878492422217742099432264220683488383222059959324328739745586258710152402990916575715305858223224935325280820861116415602015563932772436467849141883331285530222245435941356406156410033819052005821987875054362032091482729466396872803453872783549941911489244413594245819566995685082769017725160631933218798826768941359473638906475749189984750384916077109566999631999569199648059985880744673187493147214443910644412957480335052498795170450192926280019782330084673312403748125650338357040991164718671676096472448612220194066878935366667934223009738146311623559535074288980719843114266862360539345720023661959777557468294055448830812449683675681372185217808790164118881171727340173959866181789646617882083984631996993695738229159743314260499156724050935369571008298309003727950798101988171435248028754060299688655018217584171344763602881646204802440469600860450213741061015679366155919845176394956305662220383022177931485665368037425498672498919486557030964331931324912429094688147270003265731284730864978519611381878220273398144454675663787120576835098947175135176574252992212596867097919305807932479817860231282762928164116427083519180469175655230951128829005211545444305757094415273587551241356942002569865668262538150456568314073921268519573993006484112208579878894099946681247804865128851733133421362321185472312402714696724461294047535810476564444356903531829727406860482580559204972580601065748964777115296715740529111946104400159477665360888199570332901635152561133548212021456915844917532055252031904113251132951234546813959237863672286520447240435160128076714020547558869712766132281978127100464620345393737340492806167793013448684440811896750057066502629766043794228375336028066565875577154527790734877553203887720464789185242587800197776739234357419480240546971063729085431428673433085756590139520518824914957704820025232472539625779278836118676460961340260009618267083451963619562313381812604816571319261824038997131478508214595600666688682550359363217767206800791899712464424749675789598515392538567149985211564277694572313498909882652221953142035309944449515000110882536783611142447034581190227383526488117490558808390538552929116727191628049254169528165116163223104376990326053350759619356727387758348708136579783461621892876249311946116220544402967785670311600076246235777551489837588559751950605744587688618052331898936999543311654214394839460208537081033687947017002775954833762817395710765054902084346136694002064177701526159803161395791095471072202063579550876673079952867565026547294609892939451778884663828633966652986086784497625422633928589217346751619799217854598029622540273493266970254610299677854202424828621352224807386562045068596654791696069130952475163106984709527047380323462204664290331258572144188813641471493044903886230747000434223582161315294185702505146828034945053009792125621996408393589435974500746995103850209790627476846627915984654637410870086872359993147095664162222084025372803399288086061601542792096629790897379173745892385104617052182937423390947833412996734798417899941090901828362425159055098316092517799510689018285982022633502875502448884828776987159501809252419093796705652939469036219776953377836584700963195631053545395530469765831426994274998648787413338838509644519325570989117692805948806108531985496630649906284221459440314305700961485972910519518008816203587833680786166722058740567726987093705206040646118696318089811189452979462040962688078179168097912225934961655772080066666523242493470933232252237285237769541140232679799954597198808633516830883733872160546401041024254950686419409665358936491121292579101621083296381397892495107381689186189625333631018963556783721904067657822003249778903613594740665771946677103116790842443784371559073365520107125201054627652499387734599153429711527743854812427081139260549337326177955230702129157573271020704816399753383730428106151225443575490677060963828518838097675977888551752480321040573824980192035024718276527565299390626154222354383295087739478939131417825994837686849606979173500760347098552784127655307953417025629403260270841156180146234518169465006934461588810237360191572416273003311949630212699697849503303007052306864850114251719010870573153614564030654325118600370021432794931176849437346266180419726945848293516847561904423081746400726360508988570147920820041558310012505522799738732447141709748861614711034055329877154258044228532359754907816705034625832932529000637940121291282336840378919372972142808452314361409304424626781088389590074449488213722300967256863112548873545422277387368708570817965729904846308830959772972852410190833195926464189534624122513013806961063609340832974326553141326544965519447841365069360699551708812654335762661882443195305200772049005287526837391509126872743990455790166335380802409074055088874442608864785265867005524966138930290883295738645614600436144479157447218956373194686891234769811563549168032026681018641540719116989387208118201042999129496460840565835635700886171941718372630041958584400759910143970140961811142242531206040913983561445712046931438525933140602437860379827690105033893342381660984643292759001361610120948966060234105453657161195564201445498109388850657427052740646561313560324509294846482086236683500405747931011602532238338347727407352026245065978538108698594489739530973907277550710151094244412119302357097966035272985787231773093092248461549235208664575744768460837375652066739131098751345148025461504116353785451257594613662470020956586672572427902290942873223720396288261183524968249977455292394260494897180288873407027101378818712467106092715617983716655696478665795009479314641805898211390718610151079998285809554135089985421367577649202130531631693054621776647107658139755934974923577446624604724135074230767518535037409452466999106446686254447436567107255086648588280239125027410883218041530099216766175160782360020309400978809581930365165326462875491537126645007274908434733586137874607202997257290985539790582163732399851205732912389924274016741230055963550612218821679568267652881973826690260654854958847156725426201207260749693562207607267848553830802285123488157325590527247796052546628118411495865984567806130129983772093373073937539382775886467989445315752218044416685799883503446855186093642853835249822565118435605814582013245761369383281221644976412122135614880098673231354337370366315498230688007865906551329981319834560129501592219308964008137680848191479799030279367143551247990802185709544412028660440133596098966752145820709036406056024688522841349780851932210353686187681369557979597130196356640652292273797148421256661403337558653467891934736418440702929139377497858454954064822625728807018553299021791362438513964696791596732758670203805556780838928957872733255773200650894470320457672661439388225703350148551654180011934347610361330122618556715469047767456758805427265123329737614640889976220079314819761373624728782224201203704118103914016175817393003067780248400267415439094590577997990654817027655244581397162621566674841570813447403750306761362291657431414699753297580823448411699917236533153961187433132785404619838971433848572789354067348497601834749002803058847938748971566629146758850777740973854824062603185396901981520740478641514258324883885144916689751509357190060127682860391765034508868176862397026714385250623355173354613441755822302999641681562831079596227007723939705104732716587775533034697178018377152781734111521749595932350440602813847168328006692254859406178550149669196495723210345066646730008629759638822292303993642103736437622706023899278426078068568618974240846731086896007508356269305034425032350202675170356115193958240049196553484383586485940905040758574204014422531870492777218121105495459599451848459489323693120569999090490904432827742226027476525331189418710342221187785065922176011948593916379422233539304010378106005121012478773196813053593391433488441750475671890055090700352450880348967017470966792826079115790265141919689882305393129180108768258299610567222446987174098824638387360260755718481104683767896222135028723263147751273827312045287917185031085238363517775689737814431679293582650175449757722682453342298883565279539465370854363370959163823048306322287574893417687784262446924025854847318720338727655750539705366288136082094607797441508348212292448927730403510365864437093841401260353565245755548100322687776437195288294132899273081416397870900513169320260346888948789489839748887509794721587585140244599792324933738800294484157520874175388890044940064970344375080398018768544552732611209009701332308409055388144655603772108535506926828147556311400147777417846807623931121460048790725689128463551850263333010194564305611106865604830056420375452610912252172082862988015632432656490015374977432567404389130169666737995899144332496272180561675725320290463776560179856743915075468708125904626333567987752868877483184963484324758751582520069931203107707283102865335162488116057177106857045302011810211815903171778667704582613615752460008728292807530202852838287771928328056956900708748169414853382235144642023461987921883970831491409357438755722280523531599012144710456363384970944894739886796240695451559590849727613305600640274401495436663191953317421559708417219059619388242813845225132741238375779183748081114332607613741571426309710803938949238101538407356235789452513266726598607283856310059108603067466450340593152243103466412213105187953568968300199628624749522108466385269961007630259587421995818287905025865506767872033830903960804441948017917647835253152496888977821989834107324199838394348554199979939568214032402995817471690907124958870966170716998678144928387547407535556905044924337981356729153118558202490876628281879007797714149105561403383955017175051487389506878038126467867461897415524707814904411056282644561484970624773007084934589427448089990124939587595193962668525991054945276522111372733693390775147579719738254797334017374820476369185287487680136361866292909097307824816964907908652284140857466647032189162691150366933172899548252915142315835468080619587649224190647729723135793654808042311434580404259694467479946645122518882719703790163224339826275686509681259896240513943035889765759656909539902679944135182630557053772487225465424400485458264707287671321186165562987123918086474335308312320296721183595760932567248806836335494943830976126620442138753773622794178117720707325097980483414449753208130078784845862433404610085840403718394491014419816663210089298459278147377293057162452026180433951672884539119744005810601833394796019949850379903565704600384768878004619806209523704021302221477275646975310084842377328919333986926518777325267923089057584255522152846221825742889487839983338301470661896983410062831941132126484304553906088609502235046459905068875396165704064558304791132286229607016212869491082390646337305803326271597630275408092442531288279859521839725399171215026677155284147046203470892229227411867262092440327154976104615403765948842213605182701197157519144482305434305577560733788168196888251832565596926067811478589021826943802014688434680120913250801501103008205651841275502244951602102813096025429678680389277143256965313113522464115536737821984689083929594407792219640784773236516311701098992004099999333543502672883864254597948828354120380312891816904060858840302272515152144940002163571558205120545026858226842675604791005152124411705137021336004143159203733500695802331472607468629488115470766658469689443612265613551146324107894601120193181465586821895946565515529803942333158141537654783619844696464661584482579459017020492493616955839871654787561343230728921875166853598149071850627415359864109272285199604282145800810079262648310139319393365421216218803672029026127003128847304071506084434002711161483340711977372983793127384980416599577700395176376918145876745334241195006610517548304506073630907755640353296629296958422175308806700754956813539274170372019036561299256919900982361653172756824299785467165914242889109301356300710224287990500192298076179118249393244225442286874317625166074817173299090584537900688086134823816774874587087021370499802294372384075678571900396876847698336415092732964543520224498319089840437091383902535558302798659724647563978016471862766687888200891932369903664495678312517117328622589396680588802121839518366659026575019779464644935378731849280733977188658484102727059692132908579559966646860654988802426207333463008164963124698691127857232148341642692991149577558191253900625596439762405733678499439084556119383210605865538342986940741603141638631858500317623870193888325326516736150851163804857811599191770875485015809423364454696642565943011179617937439697701708061191479360734307409307951181712144117491431231850324889491515670736119778039285716901244273097745174688606998124024798619238313809559026681787746134764542537534957792834395618271170621461510470152237353513834201770982427335345059199993531618571841501590804767302963645156559417169136825464198538648233990074687317772741993911688824109684467962578803717649349058224315378301883971275691903734021199700589851981153310551354677440129515320563536776153648654771507965138250349290808564091141459014911696970671777562634510488173507437333650609675223836984196443096291458000036099922138000536126565415965121334927596148791219607084522716995817134914160623038618127317264239441414980194584839487466996955813355262779546990597455516114030265775965780614351555144395139013218866696504597970455283288094770817438838803893889492522295622379847267219562078767215641635855675586792437458807237423228671020766565926589563301076127664425919138947086084422013518702316521392643621407440573196554743327831019358870256291205084028418457689375154060916255106851450365708195971472447688377719536127510361232650390875479686304996352300117798934824184874955302292450889067313631033420139761999434170646443089768583060826955135425126774610771842039391764550802592742311578564934549036436514065294068892472488366210336704857036996940840277904265818611054333625682484469883956432389106781035146516075164639104085640844245472345550529994526296035647756866333554011439283905033494150186355665654546100485736583338185070380989764240015090172955290359271411312032056524933302689011901052992105533266176987971249209416601971151001854071010672466338683740685844235558334185328270015171645194790789166278135033294835250475375808389375632787705765625277597072935543335706378606774008248975168722460568224265341896301070759795405775889696245938847861847703684497414210862207770345878849832470207729395286705979942285864059661809776968300289160791125154720127273435368852637504884382514073602881721594019036590754162819435419353626832255130620549157447052616732296057254773800861831128765487734258011101606188836011026259636400201971661347514587009983319278940982639986712527816606788796637377680301037083583839916815970880053251551298440070458505929054447397078855594920179796401156664319746916063518128586335020982817747115886196002382220679163637382022431654407123613527360933592508172946212419750960304356684388624299930629835950072457827144210140055119076029308126210955169412426595917125830855423711766312399905614325848175682504340716880689791966346351651124862725675409143657828933138476137060936102777234054433467838365117509987255517987814939869753102264510582962620310876943070347721284731511986300842551875488325582192164016359700942845972615851274763787304183478029836106221107795811335883115556476952897247035399872999991227519037858183411493018216528699838083887663345755025785105452768667023884201592468574284043767760135409897477648957172893962796577997354753879005972366343585344875609454017661391553982185179782590500420056975149765485869952743897680634685871398430297423306388167489220707034367765227078284470761575512506729953630676023926445922613202664535984919125681835931180345933204489828256278262768136332737384379802218611914346401824354554438885573946977201421605145827030698051382003442870650779454359332903517167093866074387329079233778402554462438563958734016352661563070679571168257111329372398664437327454247934576191408292544350252351339494222687441874345797308043645751329316931069899193982831495057044889422259449180387508134035128797318221164325021854629319742045336546388543975693754969800164088305345734701436170533062406085901130498151166984416657679812243120404429198798225953108734737035126373835092659032033417089705629844972035050698761535635297309094603079544869006442318053584238455071560438107102438396475100698805696673839447673551444683350834836204719623597463990933451039571194345190720675162811495248328697120298535896033341665767855893084408884928306972639768136191191897713259125492146985490132983383193639011061994459560717452276016227624378095048029026989374119681940203231426798227842547792388566845622254545508810171557015053063145687315715234594743345022065074184507731528981176714095558138266481995941943816077815030727440069124841844143259163622903551158036136231769395370218169430378603855867134206841563240595143833331349832024192570968411074225060071707198137373664907886675605613352361502832523634000182633828851869365825755872685293992651984564551572917111313150638430505926097457980363612583348210574842532688434482512099934140661335717503463268845673801955447158399880770982724035466360953716847899901786588525829724340349307841955383978143799607222334048923534038831430460653205527747251676075769744935749898699198581299331977383097493769534666559829487707051658438002888422657173328670106669840175236283684166069073483453885016259589059256907096781023150670833732447835866330539995808853123429936539346821705686544964334811175833650365193573537433149071164915252180782101556188184906677402284755577446201890321048284486075546551487533389741602831610976784285693830179078291859015759779413629543758336465145798086765548649240652419977504225867263026623778670874760977185543283298224172574692186728807021531200116019101710994467828707115744451634403478978472640052207446241113476580232223261561424941392782311609297567521721898480433846462775347270582136007949308549122713539146856745011591696292610628335349022079967327865385464410660720528446500756250743859764624496154430203314655595738922220737900424877877883622099178855586107200433344802736818981733414375778697422103125227335608586783138623664346126424107035475033869472358994002032569968415789632421015379396203509232318881145119350929034950190564691068888716205369888403663666145124352303913545960758600639022848418032476530794358815551648109720315750307648955959838824680862794486505359685103631901944050501728161622462676123983068920722135872877962180349109756676473647313522034199764852860033659638554350235394520898859534298470686669102440254209871330876533371786972971952944595960374534923907422641734393938005710961887791266594745154399831261662348433036160233401633216905243024589574802152557525938532462301607340388028147035852575603735002778474769767122131571473218355510668896605176817345494723606475064499599594793699496039904648859901362950578851092509642126400738157626197316578973979936695274244242260164282614180711391116580782506756788681450792432909823196787412625851925631594571870746781121657087818029514339182387261538314091550047237554073423667734892986282558958546983261206504151109363128321365381100939337727921097108692336789054039049223860786128800260097081396645465621436713178437879442995464701443043056733770118939981685029491424712226859113861073026311830895879391988433560612131236739875343096963613590193150728377125060903917877637027131909433407601362523525139820875814737436526524235419668572431500669120575347540874912263047454844900333095590099490755730362880699526263600334869469961184165749700752649382837514132938638911461547359653256171264421629512379805660144362336567240711278437940025613987633680687302977470800966799897590160669480333885113005490640415568488739842398474868961718464361808725982510746965872438601201921453976078272311988085467652429501591104430676814309506663054426503943653249841950781588536988175535350278190097789113207251447225208442523965563439114017103802371892302771299896311990059517566270502593183372075092861200212389817241468497352709248050896402084924260696250096651623193316455852319732130409640190578471249245294400161328119566218428140612213996857808959349021557983034181064532108587355691807069952458015533943898276720809462386836533231625961541453694686093364684618946470926885410949467123166988021737348418724967037497637077243214514843662948370598836972856573973086315356809314385601689709054509202380483115064072786913597238648228135655090021013521270054009088024572435188691086327002549541474125751419288789795330983278477169862747283175781933961153821654253618552684743757046705335567450668997791724564582151202355684470003343852468473702475653339113468382293554891708185724023018473043977168047495051617067975055900938939650465317499362846977296264000069923147972039761760073238948744248648105341704214172587336462640234782084771187947218538650782851520541427951676950129911497163412068179439018972546928072826924423411948412982669328490678152752429037904442881856737932597636096863617017107776685569501403109454936694181461277798432942702642014335656005713267659977015193405374088178214406073954733810229720589051575439974041907119174039885240650810609969150259074164362673436305681143914443560436640922414345530091340039420409277100187017051408170061503296655907404489611935674341986570770297934846285529975354769949819040442455184728847641967205246950455563401576868225106798272763190106095308362260509116868207352712108291875080625517517935828635716566818491832194625084141439548320539241854629851801913767766675529927990428359865609288696064327856402862927584913631559760929723198944652380990600013857374919565787628044663023323578198422783968571757798289312998323317102197848674099105736153901270424572003730330236823039800266709670304269452704132389227189894212580175695831184418825373856348368819833544624010618481397163456077167053997522500409281388249402375148930175460655065050437220549455348388808824949616006209475010406248167975907916975992916663203815423490726835916943804296170116940231140075792434598428184135839455562201714988491123910086836320360626012825954878174683946251901841170080784693616284636206313685812226116237752926350726897160787576822934702316886425037620366435199362521468977779523182202023276034865116300017379978089758453998642581531209037653391270991159282600194037633451425812569243844258405775666721887828595102370529887043790766187913166787136509512457025292634788306553295801560593977442639593761047190448569673438511626630252841392564319416624677331240640757723106895085584372241406208560979453973495675358103039836149546346678251933027830391505743396352987187306319215527825399619537991872242050799475123053975218308733225496545721853601931216547380401473667551636453430630668682886630693538711182814508587174075204856856249440497116542114806619870253108355605035019597183428829893249374493121396308426856008228114680569285922600365498350215465581452409026240633128564427875580463409786460840869664973072939011011462405784365125892595735265139858270257405301087187252033208740458026742985100814199593861477834740844387752036162116887239313157034488126372891100525938615687144765492480284804724465077606571159575455295287456593305505628735827422148220488327622854194661394324268303538514657546487577266573079721022327526624574375190186737132175044878030990201788644178022767290634985972802803978631549802801651447769487512233976807077992829502618570037299483740990565326215756914422367095729755100179061839473661418749659863844135209166495901495431005781057694947000778509180389040169954890007745115639281734576983431576683465766447837447403095133483684066645564648063113032263063467119590334717540039122566696261651955241361932395291661676548387478068804448989810778949007939787425432903550274618212176389931895462329158098107424777141683223302293745328288969912262973778432444652932003216702326441525633595074392889474511543138018511477950917882382466288443686735041394555082318830953637909019465434539468473218840319820661054652985521535710700231703534994078528317576519020323199796084514479529581645546322165169817398594627225557601036060657407773885678118305432717345274825405752005373557936218099491963361778711892223159444617427504922758609430163344187252718343559209491722855885335367521690522218462734733723582553732772919434888757327952026966067665967161570557701346039944016692348298170740566974480473358679550292136614760630124525202053932507759343398642774739530317076005795118649657451694972413349515780616595590741884382742809603361796134676780117742083624463938852404297277787356917872265390220636299298161117654240201725310777804303687615270381325833847758834413473097008367470156018062218593725312966963928969753881201668470990120587388026129434532839690560744340880835706027711404284124580455542591756612761104450011415654463989146441262950212352977691660103228288497578931143556155416463248068321702473384104838164106684329996049462396826740726108208455844717755478836585158634490422151180764106957363943400848628686209916211124823698623595348208932899468685513508266861198335762550518282642258403561791686116904347847000026034199991780297877455245929175893623563167986224599573733254742411707711727264126821635937981300188263508695092516058675768374057909408320167335534228439614370092894263898347171797454038932816855028715714154614108249817676620450379459154488394191431629106478303665732669875276517077164911620016627043770903449848654971196316841291985929861987228653889302010293987584329567745429047351501821519098503232181518574872207136586450326988545311248616609297799811748486263033220627135404241864596125569683878023819852747845396046117335578760864760041184512453626688132144375726626472071579269731034416009571406812479435435921801732253100886000739079244438429178213583203415991559697051824171547072234334467216588514529839200234205527284378693810636649843825342071384241972145095982226775906168940608831325298240777618293080259770197184157789112720909380995269785888166511318642155391730874418109712084683221522865547120981634547817477669366268264530374194214159666642408149761794807929870568691629669376307328176595789707779429078207491766706762789008351237596231177331702306102566417450710960611381103308296653101097265906713799806399662601743815569782209212803751478547717397614956180218094271802367308230757482664787245782410184647529767134159824055462675983445953201137755992162970190568282874751360935693505123403071314583979674855356809853468414896206845853433232096595434208844159048206804658830963064006434537227555038326923870256707786039805694645461772517701236095271540833440337958893644654372828380448246485808279406055060306226191843276657612954271423379634771320970245327100649166739794760053262251397922815478786771267092161835463475030839069330441779051078103930629042664245284896413261729858097383743573833934445250853129405324483005372300962684085805597829406524942321985823797342987629459036593204736437647584469981617654987558611001967738302646495525266392150847945114117000263125023353707877004188509462752711939189870690823541323364425584202238804439009014678690711351590749315871896937275549263506957350944843271780065043846860373755763275090421488880005068213166220049920960592046892976548357643896474127759533366120931106019558092763345702455086741038013040721182868423313807674798191021885960002149349486407443218186456107178110021081662985837493975370873442313407682339306950643767312221180569652173884223560764891228631952503479081285026654737518658628848854247947819680665515618836351765212552865149906989010090750061361193675394805236358898608125339984010755761682825160220748146832273598756352567967640838950533153171655562423781133838571949009545239405849038793216885289574436723107621681531906973162564615391767445311087440301032590154578644917878793067799956520256291999668202715524475890815454869434763995237025005814945120570908501679957948440129890961451311496153032126810660241447826469385789550085456374841900577389524270192642736870311534138586322291646044106083372021303897848500904895389551126672441966066472991100083041723453075591426180376266925511836307779120758957285129452532154159541564272540202960762520362718936524211974695909243212575791235966151382562365606894349127622554067549428147894390762612033963864966567257397569894756086712075372797373721292846862522823848113612691675292086394213325489055548804592401861312617626390813928120971539290620134572758307657810326778805763314642494943758191666823257842985853305850049924516106087882071007382841380617792711510291052859097384639101576974205583121437382400327089948467351247507305363562906280023001895826084849400767515391713307773962746017641760124755796043791714735346350318430762710751482065567087205950609252652613773561973076734011526362439725519017269371421813317653821600288268919424912685102422563039981979385655841424185116564892332572966468754775906571552841285296870402780313539511263681708963248991811784611849042161007311084423441112317777241929796239066623850722878801373583461955289606231254399704432698797381557456373988723071534531607501885895965357058096335703403414264755846995554177293218941657173507860704418196130239816832123105941430194535573103828029406580598463012239767446565887911137419754736262381571101810349489307338813464501188775881850096067933276394037227607010868675368917072831046380987391782011164801813698460286931599875125436946303566970069819919669832290997653015957573393842133411467297821860457805466690824467806418064833841977216978440165243464633340635926593378919566218253787003263886348518997307478346881611990472603923894921995515026315430298665627200517937226768341675607845290238502095281162529668274779967756320824085311025271945850667183321519104565333550591682883445630370856334703686322948587333677394599123570963685814058050779410064718060699060900553516352546565570721077777464274811560401754383740804808921753368288943223206675041849924925391186389134888605199011245453061615222957228651662885062537978228919094354185053330432329730297862021730670398581324170374686280754043080528654866016161736868490933004424138664131798728120265450920942566414869293479804352022451909718694861405858741183462118613822729018877658431988406178463127913151443456014391156857103387062204127451705237176367437438311172333451577364420865423462342211968678778458122357490662466159833634126477142835133406579523031293499120248736802269835890320607146004136976746329507790860777344527788287358676510178198785041486637934350556408015171196158883841692894325055017199878212526427401696713515721813596994093794492877745040108320694229467345335251057186987688995000913314588761577423321733062894031725899936608155633884406380633509989646793630134464219233161301427737951420305746858664823537663842885460617824232643562860502211905606410321963545511078920781705972942532997477644894563066567642120797242497797285441988620964082581040317278573818915127711027942428509595688645339729732646330821927773419868827719856179195726186818373244569198208112081949216625899237156935535074084468463453017215128314333697145742322263423865576885736563569532973992001888679927994801372284298496443606571452711191410192844951512089526778920703212444658483851938318503221327581206176113558861848176386852816492640009177778138742825842647536880477257132874884931684097123213747041831298128816989541907876508097697871301611381574067609290164252310840524040399243167194464769110120302132160962946173769926112798097574344868364346034530627157221997019724613923806558080980850098587510249372771370124823120906625342405898566955069410055624324727407463885478938712164239646863877702156939261942858064704614868238262080185575966745373854347304831610046638714084593429724413857718363230938990526357775188460346395348693872177725715650032630799333890968172945937333719584413431147696078204249684809609210498951415534204947134609749275310874300412963316605906890677217095524477746121425016433235561537431223392387656550471644674070935656244489889376245929670698530163433871312227839241243600145894230863354602226353769312315452047121336407750950134447210495318244063193360390049150159264680226445807329723548460665896465571597861126815176058114362371335976092800204557306476671923699194971508560642191050150028397982758579528958095157931036496524978520277936013468034124827010444592397646524731954003468163047678878615976485574641536414226911739693165390434295897364225894010683198644530780657959088179318780816485134523631315446351084215924099252530727879072373296330548744758667346928115879694224305054900198946878546357873711730436394731812680354956501009869453324174124191192717112220330116602552414163004140026887390093043525618065445111896865895840277806973366827303297692418393481376506225227555418011891471082669501002973850753656689864914918189878639161415114513482532175646948525374599317460611473594997709434421570772255569197805254105922904572166238014606903310600298594097059568891107362389980145450177898666700905336640611991941461984502219135523378030101408469972311047812726297979220418526389168012777273648234463736650371594759601200988380791236805822478436552297889887102204018687963481010624977622503167251502229295900530459679518586272538148216816460205208225564575053910740183903598101079596746741425772279298618175824969881205903008965654433382962161252099080734892495835195916568406137823353420097349879614069072323329979443710533659493682061195122604405211096351004172961303193393171396541895851872692960000100023880350742668638078985041609081871229577729050028285414225545749347119043882341754609439476554397297976111856524489795594589574764847872432196516572742204423998520892361304248401145895526371582122428367406451784483864191816387594268851765385991223327446619374225210147342367087150828552780229781981866253813385505269871223435509642744343710592412205959056274452184464761599796826161836231959622403012319386028715803087866940879738439354003001049462105346007277716131744613452384869300850956826921447890345164035979342020050775831268715467022864939383006408835010140236682470438574121315621715887534884240491509986512340457001528617921043906655704335270724011185149808729193707047622959540044332349188067043018088821952911443900508698710637026663799259109840080240506701274976279809101415271780404491927086054280197439925167449433635976589620327830846805394277315502158965794651630579243674906046452234753305623903901065991992280988647830815290585301591584534770530711154213230076318641568206300020429135442723927003809240220479126627417779786879507911263959122364068589683779128918697271958679144444042654672586314535422869380576542904338768693969808922085121258288016439754568979363359564456022388937651690852554794682893807646638788935234037218419586773992931700105662150400949000564134654007827915819972120015132809026356157110657498970265298345125299610590874372483848499150895108358186009531517359527286245874576789846403596485900537153457150932070996561412187273999745939995772813857604999626047536808487422431607179730677611909129406885988163657699183712249762715043123098208571824647579237989071737170960171472487488790092924389045291052204915140363014057085692947159929252062897752214678993313760033341594025598120597124027447560918777143794755993138246361990669045393946006331214038366580565280688006765476727062311357942239173204335486121828794207699883130931484272608641180553679955406480000822652413961656581899953593975576814771110779793793603185547333284135887801260500790483512158629263784531308737306592948562715166506226274162610439434646808251979561692748177522967426097074633750831233437326294888143745747069002793824881965339643130124964156427571877703492608309308761934296041310164751899195311449699971538508698607449486289735001725912468042794190115445573141749415811145764718756751532789922693031799375201583114505138715464386224823910251451427513920846073958531005974436329242564179730812757451286691278781957317769491414322926012998100967628823250272364906529375722196433286724343438102725760572864972529407802883623458861901807592851841790749945867020507349589186759241528150568438576032162506895990410518293149058059911049917939996842582518354023854569750317831628759953599777478150299842798561200628474915296747204729625408525093658989902795145167261369948012612323729895117592110899710426704132176825384006186605513928984894587836385609798088259262674048337367562173445120767967849608148579674413230247725740178478407351783809555826321486436542438667242090443073815761749943885578254638689840482166350628968779600287024479389334528471679311409241274472772917903181072517095445722742859733188709572784574284302265089286815601251432125419090246931196860933656814756767086581768991754636933961362600634596448358925068943247918301830831381876476520762654592659554566157854438889447289826620043050618047108479026853097700627496373215119738971953044144945194064981563715896719278900841367474949038663110636234154221848618874367184725739796436217393324221561399217528358255512702741057985092953584026977856740996607148054248870663645334627733284322582069318180531519469916412986072067205842394860742323918619864863892436197888959234650589963599891907177808795340136811573328619559244143836285696624683851632302087447854292040655753050648685146045729563630891652814349846195553093195871724853313872843370498413300886303512415550282536993865614085688833776932240912473164716009374575936118471214422141977193200486647174666800257965708779427888191119450405943180634204894109198650181497312281605962316463564859403219376400666596077744791821802508729734096601180595412453975060332694443575545607877610295186640939974100212825082217629255082699528501297354478789325049659041211169441920425708595158567968591510967294545986287715134519976786760714926216198182713866262551331959457738422266775455253582813793148515125283629663958831881502074321048529626409458041892566222073740718474953886259552109976419659417232059927260649169552803925596488686188268032250310646759102978373027762221995533959863569811000916180536009969195249385420844435417529560481254432792913130529956048540858257112527733585767750702403973914238416947099842303981100783473611496754585865140393155722992164506448810685232565033036997904938495331527417002179952616851957389280582795402057723436908253840928815078771264077037270567179908797393304201480696389022317313366350091075927415914784675501992856927215149290835658199026747616837996678939318714736011954223900219757218698329856795641453760203456206873784170643078037055099868040016566494414799353646636949097133481671705158295945666457008909653142046805060144443191238661836904175698571612989782831447418470310813395904352119375137785358295970923613056801682746896131818764469540647556994408284515410430926183399771775692162026821501962001279623951500146167817821172507053172747289336987711285525978514794286696055243252397075333190058980552198724670266478848552920790859008051622528767870561508229430930094771268755543323797613916197617484454901326137472979402337588213235665237771252749827150252171836225594335961364267488325782707935237717145749389844248435551324829394249348144595305498872178106785603795779763301441393578143405427177532069768887725731618403967027440470869766632683464334777021574293860605897406087485296583394325435503412421942403133971619277162423855076231930782464955711036788599839834658823966139150717074006576396745851301170533463610641594158761258825400057340125412615210508138535166454788489060826592274706688733889432455910794123429479184385922293672311991308162690407548748622011635954313727509032227436185867168906673024782174685982630412610141420340947208740344210229379656645591220239026221721023011186369431453802774733332815134752926821947203742982719654932183948308694054277030642133402832351910013209645313964224806693391802470046099647802979923815968964741645247822250192400189574797411787583657042471411206791860801623547348495862329117023344330348651227897166566583154136528712046484815344436769574647114797333353575862707943406213745636816896294372859831721825858197582464041420102660033897442195873690629314413074857730281432740823793489132354998140399400713237652875187480422168091913788997026781943598428275848807577401773118724165123944305831743952201454627212340835228335710218250300784266120767934210274467433300142031017061073668444109096445715801012481284104353527379215249051236674942316691256614118352618212974344722618237355837643241949900533611546903300693096586605193757766514634472758549077483191610110253106813297384614808990292968374235856326523659469708378323508822900865593451965416508676070139687443190798724131987228094423103836281886509830268879801191388980262731853736727209420457872041112320143658757686378094910309919461129126767212065815099126168990591737118248069437001315843084432923635908284858750168915434217021535835263107337718568158838347532372591525148344148771937927115185186191801843673388963906799021468538480620243769127785558488067303145582149726339039016698609992121953212930532903543449123293724789738389314052871248822449068353599658689124728214951113198665527554249625829546598243966256839678773094828552930155600250884187025428174306218556591640725990141705435624451211974025475142676587062715222558797948128989732970455204404354208957933716712140830000630854670253994466729802835562327441488518249417963210322866787131149132549871621504670383820159201427595308345168242308668935220007816542995509483071242051243191564119218965947716026370311504551971631507818325758913096442068002632850726179714863138551895389253951145509191553661496933852604554364536401278493677130218057841491300099335462087413910262184239456095089851368975599804252389061317583143759239502801213923249814449586402798781181482182603160012360296813975664054692060699656271217956583080150831226353045273739936524589166999769258269044171287130217133037251416987895101790085439834973694777204404725342141224196912118055174843842930951847098826225299674698181222188846518624901155594238674622851459646298546404698719781469509346528437024741699836966928123528256299817427174505006372643053884021436404630149963315837724852247632815813487145177048233029504780040284967492941658532082249002920588383094212829703258501590446802459684577157305664425326352071498018537695691866731462480715627749992063366535556768185960508819684226249280199192693138928907809697062546127439371361184018634650493036140270800654204767192511492630117698680296707448892579566138599827863876493470952262589515288802721703009164826499320126427519473217682858563697788035123173039224240909473396035388661144622281135563878823796159422374992743454217744583241255266778588871815668184264096748722318334031150111054756001379670054440144190128032433983543018825316773007766413032598007691161535946314023534147700524670937562094807836042845926073011153688597409992434465201793075272319399265071555478258370303327799032245745496351999755639546373440126991584582135523425313986464974259888215844713682573212142261629991600734926612206005074633981184253491766857347292103049434312283185158159614613119088920163407937554755699968019797511041602373382268252345906228256539840292770666102057433035234905793019009735933662482116419796320627887088123861625883721638437725804253852538779592320679613048326844282580107465399674501834354249872522251446031279067180037444866259077782691788600141457026679267341595143692641953328258895004727120454692903986314946011845022152000087061276255903807701908065228056168142676038450811377321478131341188350574721763721458942805742824447001908573360229851595943664853643948395954405592720212421858088146931714152888579410415354719727830651716730105013614234171338665435069584274775057672369076502205373824175371171962307639272589689973628910881688450916620317377511775697715796149670033361871576006039376507280198249061528039109102986838721647945667710772680856744400048208402564636681784786480298423526432261304779590661423883658930582753971491848934018511249074124211140766652817743993490402018386528062764141341610863625261042790275813580752307723589350436497490401801004222610446034721282587668560111934217063142856701155660866276903695789615182515908227728442361816114059310963697957115349342155391790270777087364077538616642095509530523121493228625149351635191916945012242851671019016799232822325100665221967604670688384056624805412981965540615583884609398384252293025776240017909755247426774051546244749584887544883605470115894777185128939601307709496093451699813137522605814552901036055173983672290144720640104774686061365246439637979129404872713281008978064980630200258253724215838874652681655416439748637790513225490227867054097575434189217037995572083146318978068916121033270015769333375549556131781039501511543556614683687499484394891431377406095112521851890818587758338233757393504293391877750547711354678373728766074272557598831973160051307795155061905637307834336658015763474978367285116185160797876997816863890690778695715241244693585418933725831587356963863970381472163907959044879126055408489151452966096258012512419956689208279594326154417763348023138882960505272635099586351349652500856115867066842181403618403633722207319237553595370637665502686289528008674754793516427885721020375836411083534019232052570262447667631018238481174498951231087430589723267642666253668741699679694288723527285374943110840054534890920559356963340267408409749475208962107629694417542231713161495170355889130805093690100869110030744908309064529661627699512548939856018604411899382576638001569357735725464885154580802014685859752966606496072597423152218979136812392087330010567398523129887573557242642028756941274805846782790403028424561713104226474937795467410114887149099717598775318777795923351156199231851893824922731407685424978810808607409899342124795014635268507758461931749796544171583789839923633012329441718268109935829027622909959179598729121128024284091733099272187731874873024563172316227835491322210003114197715392568730024179548922739989166622406489419043867184924360156741024015211116570016456135702533192087274479094839441477489938291772753172712426615559366158212656133536303178851697224573724710179260126103762926593223702759367815843586298117146844840062932739500014283953365820377698474130938904886340215059418904726314810967614864857376807777544342470200704168179248079019381783483814417391031297083401270767805231510325606359737494634347328696111114714528358446183016138121501211219658101154161091740334829745495854526400311885297441679904287419073009728016627314499028625472442897338836253326255880781640953874792400460627702066985793366930572461434223445400627106070515974961884245724885198303949688488919669951594054543215982315794750723351118591350109971080501355034492631111412880441309314361764235036590553805610370868794123402164347429972268075874357387251948158516458003727060624266831867204298220460463682937175258060733142150451812239848499982033544196888344429135501762749789555944408068613258043406509325099068343014432745499003612621880270535985718387278754000925368648677446230660556499440445010077906436469376100778555768789642543954584103280267644697485114451050970345448706937104595372037761886469712771774946003965524395288171249089707060171818447577868136869879976430695974979536826972559026017963638886717974693694108805259104380504139822909444435699962015483989460867559802410220191073493763662616139156628870827830284667892865603419698229138939700561972380305875728587415796031312879129443381476130238995252670119254893136817393547138019075090508710112459093351171104154734962755337558855989226808418828679118416837262670218157041109464849427613517283447204599683405554430605844952440299175979813279022865607808573224735381353989028100809538671072101580103615953026648664916283117097602049444913161050125433079372406820366699178859343484092853090631507358854592360961758788707033207777804830782659010624108558171545282266760143820341055251407792019630390827641019111322919843376503409762246872933591052776052451144056064347181725720642771558106890046613948084811451464124579982528861061750034718007969706076852392848092562079820897366389101749193731264488164608479598832306938234594137789848269805715971415325594771776614596640284806345184725994963553939784641879653148883872964533543229913507130007308109470070247975763537067459376718428999659593162464009896148211798896813226069890661094185080650787527679692014304785365870641015138313689110084564416980384932490607722529316183584046138283612316722519466060786812906103313835194604095938160198578410216256703104344439074653717706929909615203760700316392275716037229331899090985211168273381968145073791039438024584286960148753635956543438406901940348455135364922742825183835674528833479248287587123113453730784638004437323458586784427055708612437918137811005892070854006715159903632039969432968860642193708907341107164699060671780684857181030192008652994769672353512726677543544538982411665717179619523720633676379872267366971323329502842600063609305978668660728214062789518785185050182634080612799361661467564504479434344439913495472811489562897750286700547986043875271932872007767917472462484734060109799065914589236129906497367235306879336009011447018389437039087886064706680760738632392537785947782237455860352459415949638845484283515648198655327551632592961970972552181479329988853269618027859785244032881212734335767364107158017877581051129727769973909472017722449344191551063622794121063862457117454354749558618412345996136874007716486156938735065247276833589458256844381234567651491382495701281907554176098869612282610745768265771650822028940147128028892480786453019689577975770369033680091658421347632978741859054108998387918908600535793111125746858500082685192900611417864328912805578040521313678512188507142877614723470788172782927651148792530350485434971442954507192482641278471947318594955839997862556725849827922227775097818721729228864236012748412823286714922365862397878186903461088382347206162285684607582353549188890067231987832536704179526805160596465568523421877646202752031959880827980592883878446278597558452810356460199832434951514351916739667035575917832663141654651169998711765389451089887221891018510402892286242243227734387672495762991232278235023547371255117542256349320064895145211922307089720092875969329583156273229991855124046994634290407633831242628365742305809053586089935059554086162035234977862948426718433669863544814988519529494809246758834593543959670441670833098145353162086370040755199976626002088674703135493946583776773234299975342709586962020405744669594728052999170152493681318171188279211944651151606979886332244966332809247288014044800229048600643940275184286173651540407145509180991057893436864156935949508170583529219168654138617391561583202794743091747309033973372679299654506721609238737701208015675582131195864993383377819316125039936020929957277934885044078811558869335038916390642320531920683002697075284506172358810219402936125141611562740188828512766892026899006074307093304295517476511496999481250432126992832811880050399997076799655121838720086396153987263278698305369835922091794117303322784999313489641108113277681959821546380081972015786429329945472165717835043853226633471528183220643881290277593462032544246505222731801717724778365939932015683599289241032469446433645328178598472562076119537436087076638836624039299258851762050158300324816113344640084480143802008793673850562930309156284244101469721557838975449464724162670562223876632276253501617528697452488520473813414940809185839561484822992719479725957198666122488442132264102261064410409757672590664542486191822952164974447123403434643654274032343678466243582089240629374168986311608203481913535458072430034769884670774100670950894381905527407405510089346721691720000397608138682684606189407511985080771512940358901805369587304395048734427032240113049655655991598120665234586037762525383636389022588880693283943268200368903973484308384846381094858750970559040361262746390586872075444251764846890053232206666920865256757024028865178949851514892375343208815121456867829361512446368500609459532625607197226612027791914332712286022982429102199234630655985299354984956774441406250566187552329963110612915172800308640543887185066004413013840639207413112832250127465731697889676273338313945781416558902187895722799673993447896644779786950424838092217475730587034829046150791245039776166939268589595328098100796963854542970266055826938457541290484100320666140330635747440821357864522757715016907371522563630710520723444601105090450745514562739488239956744707072409012947641064435439421639648777365645020093186539736067137488492533227681501735972119835988310402374115975994269914281235826902365904198634421034702651102947666288258654060372921389481373266441625418611100651418940622530523581222708799197720167147652284510319488916487908323239794839208050288173265465248610579048207734999872174229026635272950359255138398155457144492435175293576059460458859298831226284585742076792772039039884209977223104005938273965298526243174123973775693753344253346276544672735586607649104709094723680157234794410080515215878318064447901934592891625566086986283131420861189458663911306624030746768611347973836920679609666863472960103607018934743015497056655468407498982828746972259442701867790894532125264025434229618669214869848804530440355420831041975363975414252746522014786732253360276446350341099449388718641890278530167280011902514676434519362433777851994266581725694997356868613754192824678416815779942217556088476920117145665322745584704539055586068397730511154522729263857501549038282755946987224300395090031828952169142815375866778895840644667817772244840007237674582988283416216360468365817574716320249822817173482962203768581200905895561214290488952163980000578299336596178912670504573048224878010387554577780815539059716282540476510908804608819087880691562718453968076046175434032544723601511925991904885201515231037625765446775235192258625972023712123735458315992608445875706574104793752581036850740703827168948237524426853738502930489998329373574430511090096808966791712999938913126977035722882978371131724093521949040856202767861746889189484105800858979369913056764755343202175501188297205667276393412248207596059409155158226322776512051266371700725343692070276256850124044254891705291607390163555935271647406206171580245533519212423100557568272588231741815665719726413668813748043333936840838948981356614986665395573238811852087965192068197831038575109114187400941686192811383548321766300590579129276480270322658745426939676697493240761814675720051378079406929587991856049503413104985206594608390428848842356833034905855682799322069283868849317778291029466056425578951900301213211661336558039411388367411983430133672204820138874893669092622942603131348766613263331521240095350443469956830755904979906411251622327071780128602320386137814499383524520679897260208976811794484039197569670396930289941037972979348944152636211299979324986539908327604104353043075409402478525251304751214469408483626178609899089741281260420855003156002957482667473566005199161458684277685555473473081803505522506007130699587786834714794592941120337772084499310732812802949466797166920197223680366037195038593673558907462567360144917922041367888748100487953283306323968647498348876426525547924840437050302827720892570962962040100457245443763346406890945844733692724160401305585447882497399067084076265399592143833759785624630897668088357829519181807504430066020041384587400249114339743882483006571212497664712551845209673537954701317217296989485760720194992638573859161891998615209937986329173410599294367394555316387087442708971823826593970904939364226830199639312299222994397707765490821839791166644446723721918193441851829611484965404651778070257527903723068575104045089128390369777476852351696081264911900356887051052573623937594769397039955367576341161769910011221513497503384207044231226544089757294761503549459248526171100350123209772575978291000213366432168618484602760121735283422426430523560429102050895949141426816441325517857872037943546916620981865606754970155520282781802024125289806284863073865973393090270040980211835644058404739948153078691472571310762772283547666870499368495956813591535764399526219903050931793998473766527743971613275625165973965681040311080577784346724018317966506763633776195017732226802123417462437731658736406269219389392736495491257245328959329192777972538650546997311441065332969512384158277017664077868561865875826668220689606198023806664310116022583154415929180074886665900793779168105609224595275623783912985406716228660539799482777444670630855657285952191310865723311902482285685953303427254425937444331244628246499246854467067654224331069158249134528084987668562114743343775517483258380453944274506433909924862234998541714494576106540067066549816873427777251632298834166697325244373475806226079433039534853132911981376923327233075645249054722582306066676375939896343024653249940741590480795294097724917337843440462519934219361106421181625486392011134161363684806926765227875598258965717524639404188163445515400771190815585122047349454393865811301743898137102861717515836579819199621830410103977006090315146811445662768631045395996552576175844032078005117511065942927429445622132935767535408179679638177449824846230502326960547038744103664550625973720203110470471861573810096791124329120704497471405811341795435541903533199752860257334053123453117274025939943005021945259606375511352299757554262758023175156036778645180589340067257475050303046823108824226202175102191845779084272886416783111489542382275845795969526455938139149261177140712436917132777559560115712286328312453003607079809920012220702211604056120685177435222726081467807129389954567959964594059093915186525697670782297317706519533885135958291314725476085378954700362163024964932885624773796388279251175266133919210354493006628278184790097331384673220380877582105400713601637324961046645022984957883534123320212601740623255039898393417470017429229117682270533645606392045962549026972160004753524903374090238639463396086348986387286517909145586030327287216186700075299968346682696624483987053978391228641621714254790030795850297098263331680052697354036385062428831971737139765184995796579864863467778064760517330364067152911796125597439907761113732915901589155521120359025016877908549905324838027582879622062013768374993360730894975872284182421908043735110970837928279892433179846381499657509428062936323292416516953355312014422577779022344661010340009068083591930886668570557002358392191618559253518456436643778874372732037808611619017843889634899496516316929235393963247241002764573276998387101521509234507174969845245380150148175614691550585419411636905802330168917672863181356283873699071340150633489466546292890302573301297374312769801164010456130546252616030033404828369768643281853364862892079419957485228533534783066169360089558594842129364912669421336709279051632494440135827620979050520715743536435118924983239465776751439401930713658710754106651689569311875078338869044426409763903028545453501794411455305208895624275012983566674647786437766192356814556707698228520448418215444520857444999091484063719401713879055010167891681032349058223049891396559225477516759184304472936917939647165086947507298091339388586729335369983065008559951706070390970834810679497838567257253009872330373402002651626931525466890928157139252801032466780488027943713862866773888615240829088275465589173816293363301530074593820559965992411881627156474120474133686273937750904380591814830944384045573939709543162494515465465139748033642962816381207428660858686388043324024897036634287298774336086955583825934613985624059931949500532882583768140615541632138339561691089885180968525361352333923355652199763942590693065782116801443019869197307018563553951049566471050279234198729223213758555400327767862179160698141198457611754029472878971970163225162846189455468781377413500748189217332307536619689681902572638530647777551480851804379572572979320275690429869379640157736285330175920238017548330404857273238576057847637819151026545491832225877415002128402777519771301745991310569348775005948353225643263407869075627353777394316190689577189454277127754910834787712036051453918008852637180319037855857360469762210524309622112242968950071913191266521083615344928698366201869367814968266203549678197625757528620259010250839177429527253136447126907095676833972517773217668417212413008806598324035855649233493178698193042099023151892221019604421540458526052203382707010782109682285815154358451476619690097554973718843445054918724142936961704975652040736936301780438849093950095518232675684549274665270743157733820173658844677317478535547547237386059707039647105784151743606955064153925156807955600113201939593269467475528050408642368818170857655276057294510342861962343212053739886597122816496955209395467405361789852288346093170212699692679313123663101958632550463931733023405115186958063076909059226210151353556496195072177272027017593095186969129796007936170043269911648477478031908098522594386106446208846713283522086219976749593591524103565320204819571783864047263076649964386858682208247280344910615811333159097864726137283026218283039846094017956091034608671983299667333105062337574077720113384896122407070303857992474138299195436909135365605554771877110575915413260270674419141128293192724958070075075838305044430040989777467754758462114137350605877393999000544331016402218933099570556511530325076052130622017432103696089104289930840529640886114829323033255637419986902771580615539441725468930185227445559797349241039092015398410015276866625542828040711315000023571322401556568055726726121990115792219648129887232451485036405022661528980073623828846976450286537575117314147081224026861543241930130724574127629069643379025183867617409439268336653170154605635559624509244644595403428069494060431012195911239180066364785997808619747688718289234079808096862797895563064901912744721451594481681188623434754581049219123764460546097692714139496501830853150025591465268917819378011618654171743216300411555173854749727473464578587018704508674560148031573635158484142879811626859644499456666813108566004556865723384430856052147690717888249326532012746133232815314609313035888342561505182935975378930004420805760458466009783405275529915671789971479304010121481105704327936838139361153222232365884574364447657874774732592425171770336854402113131844636329312209561779719744679749628155552155130977030648456237958937836605402872491471387620577364814005584038320750842201800334014283745270307456324646937891417179011061308135646102080109059165317067608728402636342166477844465276831826285286086263967014027332536606260389892790198553845257525985668625854449305259973538320500839253243076873561643059464532890825772281053476243029876055427245028280744860530863846531440192197195901236793956390839546111428700887886114515652967429666275828854155886859082529846840265183557129941824042037701650671240664929432308936774106606245507532649069073770022325028630445687474710199961889953759875493104399370760302357135685658150534723873796799388765478080050871800155414185040209955800774001972334828609934875930757023689230846840410080154230442035173090675643812858626745487813282600738923985761341445931526413667746607287950700466475252661091776380309001072660813791910673212342135835644112304364994734526391411980071013902331453154489148874686266953041845474050709529865536636186073870810214101773530543638085513898608905221554724261778273285845687751001649937495090889512965997979362280886577713167497713227277825228128954978075302631488654935681725652247333428403111011697713216684015293826525648066852265779956388307717778052122655854566352672332705683134637759060501465003360410385979865299962041329691670552980380440518383279056988976973731644395444408276779342273711519520961425672208846782203783587517857314491129690311056063443089639112781842196353360184029611769675871613088798666597139452258589003374033354143279740542022035133161740147972233669318419286254178563415768313878871358489606496583880782897309635810145771903484550866679800403325539659821632136339459606496876777179489040687862685250123749158555053106098876225806155694049548407533763300699140892370628820062900823557509394804554985662794039613295482205347061729237648919475556820323293472213509179177157729938297028109712281075309542217884541421368216309562614215736757454957055059913724595530276290840136432802159892857417982322950504945476476665364070271003954701911360354622606151345559397640920287282009869939418692805090412006359213790722512921886470630261175209222500461694496031115319323270012631621336543530816104502097489071553802181094691538752124423747132390564163678786200573800991390551139042586093779605278929704624487256913507341302540690900650015785416662025896081405015328450198874453311413571571925572433247619997112892868854530049841122774894187079416975499324215172283526275921358290852852468428729812676924881574149313571944580050623708044754661204176926190066260547147976385002521505824601840241243984133248045109047332957097699234223648820079856664557994877910913320718524497734917801706968415846068662557544102566856262336318048205759147378684913651589165615557642808701368986736466551842166870170033514764367898180169883556532738131975443346941201184229037058392425125782806766947618400678061488408772152710426555354429890733055588594285772036386845342583143660043704145829218408997585358411515396505183570207756377299683222813058041449335040542822653325351109793274218549362083919944515744379224073007254180855103629606429652245795234270138775416989949452693753501616258362000741714030420117470739005580476205031701042320747324712765134237743543849967846723803564634700529441465219478482706410955787302454243687171010476298348024293747484953395618798300320050431638674469078477741866038857880261067473404447144633287716983243150549070397677716309097653936383808386070184741771029187838732859846190757280031173392024301182223131430073750206041616362861084925198297722343320323388502652806045774458688261440166682787169518665194553685701339748712015828789009825332423068353216454206974464430038940945424259558069004924554448506685479966086716377376248571596421032392690387200198536044454109040691672226926931019175722264124711885387087905477568951028878431182559644003878608162060041010372667704541221744291710920336510306810412540451263061225397303331083216760005896129109718096180113097721608369137476946086640116625482139190560949431822118293848719438755331056994353708156468899257047187628082298044391982373498354557962903716763235529697163397047496809700480590586599239193976479045463036163820001426650790433315689505063745027259476909520623814360528309046380093837029060421561790302600871050012859305970878624737168009161589516141444247796894867583913815048428800201471262507829315891217353913442392044038298863303635356561306736882548351785507126542831666227053195776800534468834743384175584942047468540366111335892860348280027186114384198874260552858990706018255521186422590243281921133040168473262809845513907524290382922857941109669095325903254543103343884371362958968832140367141734500234144267647051395640025698698566250567225422771500825046878025253182239634906505366358569856756089861579928836118991591051767108378404464233168917157338669511592459638490978169477698836469217591451496585240521870537584054409084075427638520990631215899470909416279723092209184444345129630510442463044548383615547014604535440558672496649533994378292112397265227211884880257146629609841020298916767667807650912398529577731728385504490639174463676286030347743849732376716044295437188374100211203465087335451249022456475712814427769919267178986916278080783795778759524785863439310823307172124486067843370089159338395036380563862494851321211261017950583102095468899544825388578415592133153847695102786113444641186211052606229066940379703686445278417611743486241054035851165446047848652030436392416785216078757852423474674989976267674159406079139687892201931083153771712020234797444575333408073091248730692577340885319503970981744939745927775566700330150587838112014305975046574208733775822048841953273295441192754648742110828520223435879103674684962143069085751421029741783562550650400468238858271873341793360600298447489897414340915163923299294259421518684455665523897594912880092316191869190403477720330995489081523716081688288836546210357100870840095783630839442191807873333590733182940509183518328490741879212336786790163191756205597088846844359226150501480182455637609354213045814842865709612086281556738465780618278756480940623636979191171934424001524046893273181198391986144662349981725192716183271020207612855585451713285883466128260205357722012563045351189757219985577208754232145340428931299313552470677606465060910275294165134755752472980876952725532890787616419711135522303179811175882839804454042860781291103933458694964366880205278106629569483502963853493282466257386522375363089377665554219899340993174765712887273748889260236891740426840690429230124366070555174695589628115606099181397182558366897595320545283768061066689980684446856146613535567909657887229408479240347619686177673834302046269082466209493374919132218564816528568089009578937653123127379211243904610052776340986235486734789736742647536259705287396723515988883678705747184728073770262816237889590122965101342860009789174914487400718963067845149156795451983200400371250614560768736466959142137990041597312122422133813955679655670913189701341173591931844302537893201405560699132591566730081910386492723868396690416923528024157338040181935042729186891740709626072305837593985152966161031199104939309074617380435834426503092819439868246575960755010341371833360955014263304380551748641761917724734786801741280554852337893336468847430955287371288317245492223344701487673211848898228094017101422048483997407484242667972257033860004026771766895806138484682335302622138962001285180504479892817162984146536919549003121199702494423171930953153422785935472944014033962482837673741963512915723458256403662692267770828435391606723810893312678020693729650897548230450731451526098431446900914914100936751944501655607794594552133240055090121143511280330677572066734740482663923288511107918547456596512041547423824671884445813939107688743355840807498525160571691209170897435284543871504086141331822383675271188193586201360892831198422526200781450766802887297129877507562056400010552216045110255576770427206859308185838993046330532421430173310014837353513045909585048860483909111923850495038300940749221437257776923460607936434502699514977441184585981681229149072576630014356468413376265514467852521164952448043775380250406495906354862654164075796542440366622909535709838086803643885996119371440915639348958983496838156382365866347865295493756651849724620601035052960733315103984333223606323420220927524874569407630513431434124774477040450761375528699773112853096483922649689236543717719469671996883059307891088093301873385074781535591620951277372004794644430647465329572351172988719570365008579870699476600343116390087447476829389541771660523448925125783574764847948870856797436488751704219871683257580999577900055141898616861969304844712708838867277507183429829524016089766839079476228852763894819594099322130451251235407025084680927182998150898666023727041605745397891742954446450655800488511507377491575608363963702589795316989318439071088539552834670547290464073429946043945208485810973326270927138251623434108330499006857117116001768187676179229086067557577957259776770144051521996492447209271382767414059315242356869721826082348093056817712325219381422952915634725624579739891406580012830344599998073849964903778403047743235086969989538302166687320147305254912020947505260449293122191999086143053804840448377746391790917125116387636836100984512763828840053058366438942540907277623070579476774035005079238856680232349766778995209522648270392118415131211648840697956700598856093573315700580409567602807695698098762243235469923288572526762549942972019142360606568534541910065116847591242771688085741110151024284264175086473014143890557764246612791772590611010406173588194889924596684342483639870284982721003222626710425319824255682081316141709774129370347487400034075958322062310010118960778849122692788451867308709902257877293346613671524941791259697950809744801756370771359695233141802268600057677044740843181253273478420296986507046701158419252005313784083749391664693316813836618438122099639882707397299863869798333275748867613011772870166415891156823108179449413349935694836427409362130579791968141942512534390929084143586377141185957512222295969136711648135752384624112643778111068240290340797718550506920799004761024427918678399674323788356338125912721504808134171496944887290264402333591982561419550135874413737661703992409033034876546180078052865466184001814700952772686222814408056621834349802258390551235159896166612566415270943675219364594581205439946148654233750228063045269192093478934009819195377120208140338436626403050992696183261403483763875211276113875424897987822990841697025411697610287744776946824072938799936985353291303671952055263759692311242690041512470975451895006772492721370112005455857047402905085131232778721818664715416181062448739244202161616442732269425919910344626448031171139154084209506056498168804456483265766982709883649058536857179256169980682138749353928877754396708576839976095227862940027503346752967281454522050961555449772490946284047049347894455791929990521369781865100144270318052998976815108893984518902345357581853555608224801416236618990887026566614264828425162269755594574971306698126374503933463932605105760494423472336845164403291646346974186696159819688192525019770595462242416593625436146484074841026048769645485781460521269993341169975008326421725329056745994693668720849995599563476038803641712792657443074817726090915105052827055861426901781782337289431614797756422647917013657479492725013391502849161673178130485181161911926853971802121527124595602858006194514974743020076579552344002581501717914682957493263407096297680866431942350786163240481693196057552805240822973650329485018277722967707351293679394656030745816738947847088293045382298867651835412230177422168915312489884964430236064029336559537346320826117690300606741693136685970204335897765138830532167247248367516535173388681043822352707455278536328968999263315918277460164259589399857817984657308437658400477866797710940393892101811114221264035242094068350206200940484193079316390699576438256757159843307494627179609681445737252861696788936336448942138656263638273516788975186035194218031201668332669309041863428690011838053437410517691489290733876418245813548206229244949149689565357803709985815952053251266569693243560585706665837629271851043567037417457506371375236546445793014151245603992809192731914061975387542339301072749091439409170529210433909304518204801878770723187348990874425870636366417132236668004637051639326566064367813224904873780240966590796758106390113759370816981324436105809632407728908035437729290251947208143271519148461493487800339801336868501509382975584181041735969741610301979864149625122348234475269080623864862392590463710996273710077502480669236013225613453153606254419764110911035432796349177166794749039627596241553841716272965051728219715762700062293181916585511829280054029432939005552755831079882161552676805196495047660722742532058747584176697925388564144533930106007973283523337297270873273868969966501714899782155939324857415728781489001333451483957943556761411032769557005818470128031455799251994160730929234868671864611435977930441320285071461789753076943208946549129299163371901541604794019518352168259039105041113756683633286853566940539076223426682885846645859892810357494010645962046815874248825052279605765016112198109768088830707259724862916753184356295312497503671927261890351690593362207681712289779376897590810346442901907122700403179449340171791532712097440737255462130069217126885738327374807459708675444279964671152992961842258657439736352809077644810837484385484513543307148602827216185149846505773431367191065282249911970311746881705387206291657169783351099091377344188711106931501586557451521438372038844562065663531624047214387514969837199540076263891971972776891362683633219971163359146175122389069504993732865127197620640277600146359621711278327378470329799654845068202655191467445990317108305697583930185596644328526447362556651915607571824740673314652679396683887954504861918347492468648930166247495126521798797508098203456533559803483412350778027239816161872595098601817461964177142002431959523956611349334775400898375829559255250512961179448650582438380115953993779299708282593774842366050625114407128312702722271651720066505679830673353227339695484771990761326301541190401289638612878439454549465563971126168034597968310468514636212382562936653613025557140198351177132921503699547890386593292548324973052393037292996234214736294350625440736574836129074387963436858690917680192017562029406623764924518076700552967659620023254549229281881706653647447749426162096184716186019706072253740199560688543429363670575361982732208197256788102631522951359492273187544388522621136371573125415181917802338890300994897238593530934947132838891588014054790010889457685304373466288347523093298757630972707802039920467758949126999879181369234960343165804286881704067165840841913600442996728854662111812250926354059774624632473324755281358886622263974586726354028584593764457889778628290931483346812213271426535904161289803723609188317199907523212934711428489415924783343565794768522990876580316282436814295149472193033863172580050225074784909562983258291809305369698173994041148570406744992737600763878641257799466420277821665666064239962622203326551778361967290738573603117829508784252872400128621760940758683998117079937476355110507351492866814129382961155511082991363688845966044391395146856272992330845896009630821352632962315500837670689322208720008846673982356252891732489636346221069639348689068936467120437284485481405876706150340165616897641774048929783216799348559997695465921942569479535996918406810318828489203488616597965030949065997793672730465504183682359206986479173134386182780585483495823299719174217471774285448537660034862253434892424959428839304143980312139252888706110454802641309165562270862907652369301346697876607406855535824862648941984234341967229757471265588741822628882590624431822903457753573752229839002613504963524457425125111280790995846612795865503644143428132264412827389765923044299972172555560946787310367410972064011213549037560774948540254184305912817594043241313523578368689773351141349937312336006817643732227992658877774169311289375176740552439113664736790944025608442350651840552137138676566742052493534265833658038468360128500575794226462012235368344742492889619549822068769788720721364470199955628830287026257140131836597000766095465325033470388213202156323451358987262095934002314218123816950431312163060330037974706404314953856807881282354320360076878292207607123003284389314785812307504892062072389179948422183572536553004021890116752279790081274041686207620254500551758407800301918338746061025436044223653037763731492366914878760775231860301280375993698302028245159946465687801785662324107324702631835421812849244483403368734608348445173714658054469398365507904964146332012180220419386420822672582529268129086471634052460867176167290350728747449952345540106058424634429135691466519128290771260630234428729589180968069668054334783209892006396235716025132953246145235047874887716155553892167322418599381396737053144092604379263429640886509865596325556623125925503228660980372121215388390560466056496592624783557840952905661331404009603554396604806071032980764942743492110535397461585300878308409545072612042357293279163068553783016629825236993978762233155625645063927109407735571346642132101332995281522896771124303263313800874823753189342641290697727339601862831114875606110363304307544951215566185201378075105719834284599771415477202665017219293884126695835306988844619890621551638256112769229594299683137952936515109817390113374076335544982923530257830048259306795645364215493028170522505280679657606702132770062782062324853139213443885393819362690206773026847161784003818336889435282401484045756339638949534907256431202917015610355400383903958176148489585070478547074669014303025284216959655357343722298345512289759798147172531466061561617644826968797788909451296326899699427824375380889857970515811063181395606554524535839905975706097191587284310391389874086178250045612194945363905425434884795538746416823815287162871230529104570854313465142158336271386019990475391069867580992286512127869300813612921782515303270391988401082353260582222713050392027469769801603339418463131512783242767942432825344314600054480300874169889225110130406151720777407664716579992024896764810350633552242613458106982906903052986991468125672351703766823890746001599109432743028022324459588789066486596955497821872987966699269839950471714759360251624019098630306154224196822481058376447832906766178520649348968974574549517132779349695146336475714724252072404732112980545413121964126153699045452579141265088351106393078674713539886861065595028085942118128059466826815916331062006881370849882516287857643291930975026577219765596986361951354187879318015078640031619188947152455471259692499148958447059700256979434535123411516086501212749704308565487330128492871221579731523563463983613538784332742889827658753433320843216335915518014987787590621640876393817314261945446961245864047972863522735921847711855768995307704458039928821375852376817570029498948463725126733443125138283486078564703956311446404070569809844258087448736228811883385886908909241312109040145089329780564877995095782112588145412086987089329286029080996035937473117234564235898374015720638466580171944322588939401389496067036755578583524446148392646781018599637978316909518150507533763669967567517967132714527521424279562947552097764194895017634523404333177355959277416912509659605191718246692109562096043656977317151507234803022796456508331244945580518980356660967036396640593964227502499083566326528205617140417261881898762990487000712724608155846385356090036951320639012782461485829289471477923814747495700573339578846489221137658098367852194079407455596652775360011950413759846647117622366602786934687179089608403684584233766520677902929046469479005377721012526486868817182211063983732967460968670487014141647284579530905051641554266036269717862413993378299819884037665516580594088215513977150491553795115537208105180215511303919539653944715768626217163247152501394941514190462799725133047803146587020230790286853656663567659509213916673242757793226007580122047568117414396035907484790624320149739602577745195194061413190768065447301847649400193938748857157258357524567231725959186427228317052901484058717524063986504709163894685227161892010302954943539157697086206623639155922637624438297268234405372044477386129860433301493369544824782877404278301894587967787822411860707196924720002346609536428659130966813471269400820228151400971411148068006368585003608013338856177341780136146598673495083519011050252172271008494347059777721637954970118693303357134620139234774263416729145076708218111929461625575681177172923821755975671807248316010824979768292153107434172585625798200030713514264580436352236768059584177907537766885659988345584481551191121609593619646702935020867007942095435954264590033094459325557041675276997643810564894115260051446752144003076191476827557675484465018865667218243105680124592836147700287287946616830068100162729235500595368838188509562167692144374822425440624270810089647090363487551206523701308002704862458871438479802606654091204910195759499077880744334238317909335263411790582122279881163657405645616287916486043129494920502428640601122953434537763186554470864058244641533657927614019376158787028316163825963371319213991140995889199472113728268623146953235642585590350513250524944947954330045171832474840260884672377554719580329394833208786951556298856766946096055487208541575035994206014066477321847805423999545758709548020521012121619270481039272480251941071290701912272135542080857688725634266388521728230335396654506628860338473093608077044396196142789178882415922422512747200455448725527290271874959595118800587792736639024867855838616527507045167759289914300873737866949820503795428135320538899719989559864241012361578659437769253984161680936747378669608227270221678891552856114531739769295584726303214675568268380073404842944779526574987076844469067665534716018919733241964934123037731569555033065963323035707922521011708536334500546315899820206807099124786953029165779816106170354298203041580698836343511310364133852343093488770795280424113410438256468667318025594349519881921411574465262867149598707785300250046706999722972566697692051542853542843273230410703925763817141371621253823388297885544351367565489145339712391660463904808017302271841247443498374001980671502416995400556910974996981810926346107495463817552946545733038823916598343756191247083306159480034886569426520730997564957199123511657035948472154885144391616440572655723186992494395830190500540292783649689931970195753364720259994249588567445021782767390962034632651118655183379918685010566978249032545844024743795466229885590927645500623687977413582339458644972900807112129643411095219419739149633198861587442296862239346181289831426531708426486280133071616672098457517192235873530681260866718246779060248273935627345537965043131044817564736785891056179368319558169564328046783258917757034306126638291572458637815305539226051006858011028655042396041126471188556498643149410283365379109033738897705639999116314206100879676890706148703159961903535801717857107098276074231938885984710920471152449920747059072571151010426140041669022121547907250065467729929692533206833679048226108918850371279519979602118291704341364823186784184496182138878053309815677129488016248471722780709692430760895306418562223561686268428462399594092822704067460331881481261931944918079123069940525875131399548120861169798811073560288356629592313864028141745445669853709214574907472513880454044613383280449641468299283581297366982378763349540943370099130441935934957634130829646649552631183641990813245843377539112022996012774102506907530169274743025923679906298853931813235967330925864664989217406510117209617211096720576647296084529920221871106678864070489056525177946913327476943318614164139461307482292092281429031784247438855752650935532126457517136203931971845349442474777613892657890969948653497783706126420289474000320363724299205210606365654917582818418333780305109898556780401511149950973879095698186234031613285925315100027048244420483960766602503920762802421607639384657937026817041027647020756771699389288777996648206341869635851746575455169867194015261052754336365796897234819318683313998610683804429426156845898767526303297547789151868600249646854350713191387492846690768833886761621564977768664079567055539901687735338749689117600192077483118159020060977486552909700333588523670194156846789252033136125552124006926710935650191675252327068765384826855526217297080863203399150223753750474575025977276102742618239635904649334561939248251560168874378183864060117906784020482581363913523236954242582721916919113042647657517717936877966245484703132938545104771899036349195809078647825967847629395821590174596031419217593030698751906791526890567176336946548711848418636895465911112407442871537685562000798925611125016655332072085350198275792861429883207762751487283057306167146445532939210895287269109030260339852513833973312300414293610776697220325520968164992642656432527140891824889393626263491581671890838330958238189678702809427087622145128755603523433257883126733754012542203986951097472506189901385409483591842881690676880408660125912179896868644801498402999644948359690402755008971914859703459001678575609573752015249889823100443045688308307535923346075917710770906947095385256410186803790742598674730804869595255512720009487036597142123404837518951289494152385858823793758738032667223184777338222661350723008069209458791841950888037725684994375704334126214695347483489678078326482384860884860684963755132004381899026600026131202032638261269106441420655495593472796389212849121305615904012021844848887277473073427514054774233200040249900483228410274420521306462847618761889749684708281427661812147587505418209203460320856471285604225790421938307504895070090953059124792035756184134201882521063683524254814891260185966519867558824099613173155539818826665509505818065807365118083992416900050949729031762807241441760416107226035034126434052041647772691152503131529297174786415543298907529236935413231115625351523020770263299035623161403449328496618800243932734815076253401324364266493011939077234230427933248167628441773246312305633267146990688080834919878767031209577349247231889563552336313853131381058575739322026922895232682893285276367655759818472612885068356077904553111572315804114987100033632490514589684130623594498694031838592809401914877921849813017333490321640950782108384341339629752318014071610468863533347775689029949513316630981053414473630663435320957218195285926098079244591456236472805177853013802495699497727258826002438557664348805522124207813751878772115340685567720008570410725261896630013969884328471202177659527025262416494834975757747282620412057661312741451288448988390709599399014138181959031703646009413503862932939107721281254537889836796051398987556485283051682953105196612545735173731626223585430027590025114343359281143000916700591307811188791587843272817292449792364850291185881048608326669842164989128148105677458895740082861463734503642972482375352717411626943816692605145649693205713134967023825821761598458862237118538850148719171066781937413005946817237402909564366974567182510022340955469550611675695980687146719520067352380052269800872026210459968564238092008626241031650301642167785747458997178129318117483902606292715380103875082111558096840500163538795310913456223413604033163548270627084128552560587964226985528513108306463247272099545938036174038611404041617148264839354708245946446067032491265613694700391951545711328237866431680534118018145155109852144933456448300869584336040515241546737067674858914741545379571340717653321191112589887722861652992665136484921932069836706357539276285321851620629484583944805098248999713910955861846208260767947639457006552549442918000583471760238574445226384336215301362244437664611714924499338322027398039252330248281140224893314811577839556366763211227086478448521586092180612661079507452835297218011264399348630357763670751077058812205557514591400548520159829613233632955133494380239758889983153507068651989232047822755605646313718347246667342766543892196871940773755095831148574565267494149292470905678258486634293066869935252307830030468880304057012995713371528128328016362783245988021872885255338340585436831330025497807468338794088094749350707289229587436945443190458465649052697823607510262154939330400027439353072394733663957124271699272658293560991379834814122455386450165827051093582640157670621582713532120790915479175240017062866002108466192414446857505991423222860292568279082120380988289229203598311985187828823278033648416310949235604856650872629708918457846132395902096512460070247454451128931205471923465470691557063145713184194982396894081193841252964032784806501538633631994926442964507953458283935975667417039310249173206646907929481394649940987674251442338115520727601864735960220794917445537790711904957290552729270949519203853801884264867671841385499893862263696813289055922946683122118745142661998664611362442047336690781423173100681724378575437600979400487296174546251655816305495788517670381884166597584102271998994370665468317122203342992314070968483925975748600179237177417426562004130099251807322250611578374664504243592199180036910020451548618878121205583681969025961804451585652947185254530053685664123606908817614897592897147203352518212779632027553939808576815498661214873716935219190160807019715478216815465937457161324955313011313490869158652541293945927018871632831427440668182582218029240159982402114277475695101232663064896054326601702219241455397585310519246591056632626460044776147090310148824404504818596846437129574439253196795949202028372082693905151594119552346297753267059292196486508490025822869799716396988425821674231207669374867523940713410943329633202142410785660546918987791541700530727616620319571541272781519330517224726370833409230381170624852606689653607466098579613431486218858312034176686122428523157796208054534438128004877824246487088963839124729773498967472969378666560586120518705745377864963518156421669911761485720456045376657181693239944641799525230596700326810537806728332057223165882004002426436340863574678973082341624932658422108975755281639088037798363778764763757957141573966614748479824690274394444049254876906308864653549070486103016851720487257979284690259975868388123956065035643725691220743394935237408736793514112280694000427471860675323583788878647642956469239986347670892485097681436245719942888741042697703405303247787710048992119056348180654685665253962241152051614373943168177207247765482287099583780840543491168178059546588501086118956617309215321051867125066759874590248806721756616033455449389005193810892341610201396452452066363315573462235898538998565916219154102277266980570652116473885950722294314652636908492846191028817432286709161388489054052172133513589334423734963055921536877252974016606505430531756714737390894849394292825928922535831718802122677283725012902231380105113349104046611201757057211689149141781212087228264060407235271066251412945925646298811336101597076097020402701051814065646887466250220865289549274945642597036261739823579605175621839537461059638819935559639618451673230869075443303576660591271175944168450564945139709303998021062416049964061172889696097093634393021552080886666915644282902954343725307699661714708530283952021860120124665282181757725542176404183660741037414797359520584535233790567068985038578848322669193445707880493996396500474119380928774678398731651728852072801097623079609923655184230431290054815041516351220001932456904740514403783981665958836317357702449040485907057523063978833946842885020444785938773448077922240105016067048694562733306150781316050333709074088464671312057516799288324811104778333232581208152732421760367661895788489114355853305683228614877670741413997900635499851543337740872428403927472531288185550470167131142884198778745716739490405142552292168560349318797062290940191778456424712795394714205068015725967423722544406393681957912402009803413944533736941449374240332316200416723931122059767394192244559832449573247103646669838670685937966090680827590558744240205143906269683951502422608775059960372013542004513097856437953860259404982079421155422315988413674513810319472864718600594073146629242025451095073995938405382753951796919027532353948647401147577108688223960730535126949902333582839945761062155704858747749549571139995272039082908041990941876006016589050489772175645149228940869545567126089479097726966296371238239706836362525824136030023731778515090522597440958015659745772807264429421683129785917072755226493465898392472169164655739271107008361601043127390732392682203462584666449481075886661944680359904968376094029054017864730375850137514593986492503940747412725229996942594055261683528531002700577475844696286559507653956332805790044354069747942901852004407891630739436802899748220174721153714308607360929313078940772525429296975224920104834614249846938581512688026148103940792766041413387763323359199123457310312471951379105577724253025171044733325057864185236318577275846857871106482056426683796265879786701854779883527233164051691652091150834698459840056309616593644995668591435501871790601971105104447055350723706714729534328982374598321364640695924973853992889051926647540236996222123488962690083143652160601955548558462509227304472574767450095644406537695397166789456703983637626912215979889441746946049083846235299227532613782936807146891610231402020814667406274599145310294459968512211099268880162750236900406182075688730730970760184982675616219736921139171919362947732106247192413207497502781491784924551711429244743254681230054063444877520982127050724572694207509389825691985379206865435999932828597356939899493576499724383473203077415713577081738755547903378415574782982693672202088526528230888518048938623345940772881341256308864326114515717590521873334413022171188058242467101088781555120514487649941068013701681738521082663724643947262972959100108460661185563971129950841534632518227317107935473141319231211186368993892925567249382492316658078976210427069171129652109539459453607678014359408237031603676034354283110119644495483653381131997941849162832374520913710484013232506449454010211677366858063363366705582588408132947163707184023790528966048369265284145964450604446117276672713935404518997581129630670067645496438346325081635579400189367067799811597456638710501102643767960463703969280074545794005102540393136200367001907326095425206568339665684519405159466962200399770284386129036748484140095012175408762577471446001046649727550953505450549044628496973543360508380364838099132940191456573650691903374975187112537256859372063317897793444463867440211910002314116428487798464167921515812632364621430951840429257627155513252844625065678401296829461396604005511729925226354947425140265156026310423173292178148438368095036011700602002270861878466698493383667796986176497010526985034586532587950089567165889187692856115518514843014639069983993129002127935375213185650660809868356295004187397297203289375255937440457692308070586607964732947432926243226584767511208871576862533873248709780502441861268019864078712482934781537504918828691380156555997024610652168134554161693415141006478681238637430072798312930896315935640843144679061760927507918521307433348932245561141957150111503881607327427311837075931952183490500425183772217874162043994985257104063000609592929356649015070427079805039345714132360092629428129645506810720568117698748070911723441089627732717207677696717266623206673063490766898762973012992687571096042087523602827412434560416174868998993918598467450047849311320000095777519659846937711750874960050137143111001571884236777907634672758932545953634483696893368351749533862140459136818515078409526820306241202110061318843215347712238632144654281498747495115679782770417217448471450935941866716122068459899118922162065412847286167827932322501782215311956557075453339772531925586788328599086239575414288248326471805881374741181258734820948677969492431830140078620163822583337931709116905385223789510821077278424642711370802762147025784670872957231591808694985210344467304138072170387334413035879632899724081659283133106730608172225971080087261973712492383146559376400023019774102266403535107990904469177466149220919522903276228167100461143725908054677071982981617678560957418149824781241936806227904656896512540338968334814187287272248891487508966043570238573258103302483641494626018197201635358503312347076711909197655802736485883615919277081812913126412727763474799351536192640061965806305783431086319708186945970602685778335549095769197677851116657148103694561436522340634221010352858586536671336037432363638389610651285046894567114802379867864940402250696560747706344478923784272391193304527207634710228394738750430556309919102190520907132324884100357171526199515324616939584002307935708261703510312834618908119646742724118161660596203542654553963452750458661469033324488488180916790803774744099199136447776015690912106390750733979997838653326797830792736628974712030063501544050642394190039903502889450688300680988417892114828789112531721661811456555282350010444636441680134427410574426357773059790687823810252760770371626095362775244193563627139648629679569043090573376808266953048442065761767808662251478681224306593916979983043234871316390553640818641477245608712890813957740948760374674753130627156801319594405495047603837698787181754012250749313776642153747845601545108367473441393823342043419131904046365010890066217677869491803561553591633170913937814105812419605821514583591750305864241864906952477827599695432491577750292399127403504457482872808012338706869868419635284627668712794798926992037488337233087497031221622061507520468496619415792910100935829544710118862554402909896715418999463236670666139789372567852151323850398633533836723416905471770309212434064169635398469783137916010986216612964170878720714109396854831631006457996072084258884142997253489100757656875483703103534762664009943534765372795319424532692948458139598564717696965286251571770809620554335616983703308133663493054192481459171311809244891050771547209714974537591759249534119045757562386357989126563830679357823701749814425470494436126088608716474622118428920221144195605244493933318590821402602442736828888591152150785644368970771853195066181011402854128762412494284055976435927228118409528203854544298153786544556735577054000844473805575089499422835832806005307271733557035982996580076235861789682648994999319040758618152828298049227836240166656150651400721873572268017142196491059966667002337260703958708989961277979728094823025668823373267626351353312826978436173442318759031446632375750672581928030963070100152206958466234387353489719752869759574640124335508453912709884794807328425787773321375959886053102058112759702143627109438145630926448545550451364432101217059554894875132978655205418978135565245654143800284039872290836029036031426917434964371575225374024571053892549145420747306052906526061853749718897789905797193244258590737503045195887602678769720334169224987215442791612099915724487977229983107246935031243307590679005293057530076464855014002991568793325436978394916942030657465923400718240146123046829769659111075291891749298503180841061277290176261851645550637442487121201922567964244704845666896545777047152241381684527694911858860902046368632541031381425285262121350418388915318028237422527262499881483447953537416526861303391064036253237585322722017337865963011058915122611412732801210504554646665852202500900800628485351351596985933601057034353403966000178706315486203388506995451532486593903844358050261161567247253221194977673684389696119014779997621761991271442173862429887252696538007830341304477530175689758626980355091641659366503064414560699216889914792337419135926376433369571166982696855743345320711560309330138465383167338142118176285368912529068480371065881921710177852140117708129477883231361938364091475107829237825566584272396640393105546990916395364730773670133435464469600545407627506156007705079460826023438177165071058726127361928841915125569512380844222255986673420681193976372373750064902002534972096129374825980970747369702398770806449539832694325875964849363971851930714562392262274725228333910085330819516259631053853096635065630674548918034947846207462566818691920706643012569462861990378259483710708940266872365252250345206525125026859848973331416868129346722671992616165201425731740629787970077677965452728089146223608689844038772138020269917969862491136240977657781880717040820533958756399011346446161879536449777009690194362146194958053180792349583814819750195514492879154117914636043277188223688768110700249273756896919351663849942381164334048839441517725643013650015496297288065699151805725007651745556345421635031574378588787203709833703178219073342000869721707964128047803512934534720476604029755323138979707852346590405256683197502566469978181550139786186319869157371186237470097699788007772725759667853006639553795866597881871589672484235006348638191449753175518384796359469671991438971720974778978709089404627844803549861375099456242996735952100209843828516216336747671940163682770547837201918760950408782840426538889951524712861664194674892429434369420075973966276701675885743007499225805718428148485509414369108507566821759138848148067901446628683901521966154403352565928636724807471359187540928594896709816354117807200825368707854202876363326141770708480060017687584501224875728017050340998200476691737009359600721244976618116874312102883794560849488372666963447043512459752357315993257724258110571813684501755571405639622013828631960587385768249660498930341554676588465957951069552965640262135593288073156464734597969398568445467861938695440289933136096794995672356953436183237684127330446194797344065490871840680742235387688303491946860306465899198852842984968477386999039681327018848802731771763134332772925147458664247989321699763179595615654084018588168498488358710065446509572510481735610171402183738132156156475768455048964129482686077785147086417127688920704916740331533464537968305313383487015881942449267570723345911097500719868045206856868960928343630395133206814541058458664677404798037485751091217138982715829529883151796641802281229607236409481370134220120641151169969026411590834893751109904332923039704867635600041532797223709786864438220367200190506870918145531054667204856902168719167014789040526001766620029515401478793971297792022365291122143719108114049509697906689204753744601106532109209938397470300471314101095052981416268635669337865081052192707758450559828023697962930702798993051177078510898429650960984528219526484546671529163123871366168844790333189580174417251943370133968929736003177244649755449795511163686034694122339720733912689843456801935620770937491141472076741145787907326087799057346925521975395453307086127321585361861581659076327792728395663983072173552676918994317895002135088325105570700072087085900637542192396835376882719520231371857692198102846795262101461452493562441810199178592074811088508329628998422973807792409362410257591512152524223046083977469956456511398923082821015709554828023336420103316377627052393173227286515649940800263919748526503717411751750796537049415489907595965102898810032084315083970147733729210597351842451975233641424973095878452970420911762772305151171058341048251411172484480956964221962851426897266807654092162481177408011273683829122455382616704322467859462426098900275057367584111961195817287701713005301251162472032938239502134936199989074089342997919120543681090952118958415775578491661079964938128221761729954532524109978914457265092792275153400249704859514877785566790032668084833832272040158631084450877079118404186994034867091418190883191513690945311240572020110056061742688261968951242955932375823897789093502228479514466773807574447905648711048829991247800821079893605483724974637859862891479368153022434700156904806860192672603325593117830246185921975537330540283671107678385341435227498082648605782568089894449030700764210110308537561909235279461882922092004936350897625151172219643096950856322009849250353468487392230262303662223499158855091084210261166415894842687296049401867237779265929588072523849026843195967477844625347985050288633452002012672251164080512042493319271081764734245320947474237301913617198990004815007650451274200603799718677149932008588083101095589150652935271887603208608758344552861981237608638330734154558830069084078110913299428628868869202522190108690240729312192564991537009250761819917856107664611609566914837980785507038562073298501940973440943584838606722739323796649125838311799034136634906945974860530646534738630527977583914098739823836989933977093912286758913170731651295720597155150277836452157383805754142245177193904011311509919564935950667236917526042144374762252680273260438598167427108431931113927385091617259577242483686605206925946639124326443854958399720876038930774124747594915290350992434092026066947689058790945306290372881578383592310326989387661707567720924043087643039497635310975643983287443461475528968292693907116833369725053122296106239058345326453085510775869406575207852376151676415502362387149640601435176135089860708793066433485039317287756420660313280016464409343651626776768143872330786946478889940343109938521657177117291477353218090382434259070695549044606665170137042923119167194557469470910703589893486103666257418549142257075304596222437632267716668141446057449268148755849253447175354831719944945485011533838585906087278941326090343610537173909325350993283478254322166396786759916108869104988322650284719084571349634533238835183324640918088236491389256232202715955395514932674105145902924659063671764837342043043576430983989031846102911065589182518472586622471393106423729218608472216400421854812441804924111151369621539232425321233552270940970689372808029198475483174597631709436406571800622826806449515764771577823525033111771193833677263101830156476462459479070629834333485876188933430391184804081006530143524755044708453202925720262739381440652615519967716098759395459516143176584066800273723302950998373243587821945590043758051933038220708738437429698874958859436291055102738626932214730428879433947656390178991920994868287985143234186312049382755286830958011053170425588768036442146108574199668682799038019074694267437060623382353548196612935694332912125262695234788872904983553335958370910825761907204681932035830132767534157110760779809875394390509826520457941988811342640291430018795894641471000664963869802582074251676387443616043785900965770772697088855762140757276725205534480136501721769813671756733511126549277479976832124421438278846564955893535233837079660271289284602408998417166397903326303768141797478569105097582558805344068826681003744350478508735473313174309428927041695779349757610750730133376248914802424162583565007166884811529098402956328300574101743044488022452751122478604294781274123561941851118387522850898867424474790763863671021617860023959373132398084180399492858987200280981794350883927957891389174344277217632290603450884457060039480626296124714927738059597447721519439340920485227632935075319153546973868627448231554493396035853337395219800456061304536475580004782418382274849502212488432966754285254356239668729527454841539462148900282730546636343751809257373450837284483543062129362961782865854655909562787554078579578273695978109910684003889618580960908591448684732361560772357462242295667745109895037405296112513731337924892244069684120226587849607104856791305424157242238900618890222779499887201440498101634014438593587843551038752110686722306363870264732936051275835912204631551759499327272004630669222600395672210190014978754007964811872725474122666074827542915609408269360929287807133284738956621089694943066144759246434429432698078092279259248845754035690657401165833456860242731776873630451933873419639047878958709307969708817416917612659613369205723503489656561385670617195114489740302699133798040686970560789880226573053678861743550876118409361309188392855472819016633129617513933352621576014105561251073886250085148551099742446816294959071030482767910224532808040258756508147781997880738481043646914142539822175517622836888355895875890632379444166451915206885746751081396629961327030842121626035109198716348491308688277435043630263004316903435885535845467919735633483788738928867645533205482450538830599173285821169279374176023145174624122011840937233843095949758538523566786201659321196033273898252860664040309663791058837075107993192525071442509522034348934007575607552736510692642217926874381925192866190889850260013361911007737717307461295592964254595937396775008958276761697668113412177692491134480731442280270891808498711353118527925262218891112696925756755383717322246103763669265366045860889603534194792877952895151195252479727502928925688795142815085013047115307458222894175337983492970996438155037542803695459647040985152718522123924078536616356095224800817238821648248059138940705678934640498127633715220605563704145735340816584660698931980868230604212824544106713995059735318713747634870217872812353125838791990383069603567173705398531554749295118683989569472797659958452468598629837183693572571295198313317975030259634203464295550676227896933703008656991975823961093377902390588344091316932386689239794400547489925821320080270640175627409133313419801249979307059193963579254962380223148693196984403464446249502119236080655572577416142275755199244308726519849997118833572577473402820953294709775010587355279561038908593868303020667746096798193431780683473747762185430437568266783828923881247318982182349089796629252760203042930880905758360241220960478229558041922235704539228563396322171630646165888411906970232370445037639220309218416479035506911768308593463461976255746505962066019438346587211808092058910435459087094076285128288852874182213672207620636013620887546016810353955225551427620761098758011056450308579725810765800173941752982291005758094472306870425258895266019741659677840288306530352127630159616911922929317835141371201760515341687344164821305633831735751783469856246981921336348345902288995156065563963578596642351575001419798738183629473617275725434502959399070050640485149329049142869624288788130233283608800716217649218153486959745064462083806370217860004573127899450792749921737980169162886360072241798597200601973068171877510570623459852211114752922451164849938241012783183069723576052120909877228813276067082696066217669353400209554491006225491818983505892202844499180608565746022162852389056949066754298889034385986019649456448556502108196041246161372647945862168402101202402163007429012447382590157569264107077395342291879927260769616193832547624191066097191271157897382301350662880005301158165754640085395553516080475759630259545630065918314684152200642898424640375185517540463760753462545518550774607625647740885913377442579708821096473404444143086480759176848257716974986516607833228935776775107918669917854493829515059742194610896658905805150491936468497367875278526931496240332447559536423728435189144964608318591405772477442720016084413555685203484744884908935594619549604453946251351557726804545458398364770532637559765795547554038597169213154614689466646820706038112100996479448001623060535611776308223363573419375939225277553651649281978770457643895760225596933005300252443033275707576048617420898747865980305660217269308754789960813602437614388460022181540135495927399192810800742736813006195904886616728158696735405880671569928098087857018164564423925283507111102318877174256907587558114530564672349787156727201097624735714081926235748505816094667067780509062048075450469135840789879615656194525669432029822940812623722218643243155027187943279001280770624071327202157182961813668523466816677617152277148109616240143055083077323329023831087716238766148600401945848954301140491988503355095375745913793482435034561789848309390389865976247850987653298004062243677483452721694159297270192114924565442573627528674276206894442440112383199689651585727053957641071777254308837079709735641745287434609334614063758129695659208549004028272618726645472658632379859475392127763322473189619785098924101190295889723833935719004646884906627329028100149421944119030641211206400071979760687061336715436594909559465322787613313790976119004866165525230600743289212259466334726320964532299561102219464422211450939654960646937923831294748846105297282423642199383718121766119261323099303315500377446878345772505161591647018903820930383533979412465494529820871934090575609874589570501697282861686614057259074821428408071891636225825665878136201425712602825875596672561189177273429205555458799937416596985321631244273607597935269035482048585596793175393092944828625615277861191397518767458055851538138969229237091142373464089731666659704834200472487124233609771900242145434236465984529183826152753914628920956903960387946008908382010432886283850046020975050592674899656305159971570400537569607502594604673025520998219001114633859021472222798768648855552194440592324364723912530513420753975828289322666663934736868457586608106303820417542815685951124249019499002301925903916133599494061976225673514984743566286295000420978529043322468287900678075344881955532744782072694907103053224301813451190851219669056490113271635933543859726697202179071220557231258379089610870218733953648285435287622603724235983083397384462845905112495471717565786134901674198537611341623832203274073626924725884244027682350865161375707724086932992126914964685805001798960181846300048267952941700436514162425550273720684891808411528028034062109400796433942284852136979702726335227802232574756097126765739432937444602173719171761329883878246087385423127581130286255223402320376342645709769693446506118167790965940089535303819175854568561516870318831820074910949763871069921798299951974431664925375909032203941820845319119372120286641475441996274968627396151434874950540411820537599080222592818684982266526244277008384495019375854815422030190379352891424958507432863620799665834315884390282750449139752851979107823399893831593468306150753901499487487422533011078354119402722456062498822246806757199550130545400422695703307374013769851804061657686953175505568540222606628088498410836114966915827594213257775706762488006518425481510688862531185011818649941240503022017199673522041352840285355345734512533557779607857367494584613608744150713161685719346449506542506883245890860489751443479372236700342713677750732216870389224419283044737135739913163922611381336866046410181376172430309436603019108598629827484807701134200885946846804977334565002097042409458191064321134404829383446730563802759287496594045534960671219010606997016688991941377871033540949100093804326255447024514768985313165961777815133801609859977022080597374061794460661610135818961518987120217518788711315761033359078756512089919427717859343825244833902999699655886831172339004314625458208962680599541714810112930878968527559399897681972950635433785643699607904503319818380996703904175055339764522262167479722706063748701985978994535261068518452391719123964876741712338612400218930947142508471505597707515503099492055256472095734275601758288768461355688939589714229922213258791566386612471688966445369950127045633046910491566785675809183184783506729766473167470482605184254582986240987506880060780031404086239878799666549194481909036029831976380921711417238544938940310808501494281341786410608095522090374585290322475290693404371517700713119163301402123636338001659333456646417058986236402738740756039019198508846686514812839820762506916975019721537890958651894119102605169071636211308587866577043091674869623235177853894856614641678850515482261209482414584057942551469621618015336561128680167900301388971029291412323084747792684540832660554156953262523215886861998265671297293966490734098114458110910692119975883378232733538899544497899641225107168058926516711379024179153700269873906265874424670188578720385534119966068985732405517888374876742105372006957833767809130189866713063807609653727801483043953088178485548815052796114820898859242600759235979792529778291634552397916508689781137183219450938820494258868575506033730278533098733187493325003576780702072370141994655864471894714635658562048389512884794797403147041254033748682405417170009724821775877983244301754377295390447559512033022203793302270071956417820794079835320673646737276058347467965725133480538921590640870247634241179481412645670436161358201116671671312649710508084993319073462480840781587874481286746117870504399254268877476900001228444460818529647892625102914458036855025666264885337352619766750961645762547612795818841183163123286767037443373296478242879926846805148744438763861542312355201545568803857099697886608626796803157526005555548406591290546757263070558625188344919113073328663032929034999079916660533431448961336785706099979742517191284542097723750384912381794665132777859813201991159203395902705807642049388187926015638524959017642926060401605995890455237361232015039442469097748899839552773149632133317878398087152622825058809679947014257201004227942548004052468817637353705963790469943844751450554607883450201185950087032506063367518897897560152632337500955505029953310679261784949660678011694189187764396299030602963033851011082191698020508748565173464080002574767872493343399267376716095557797820560578793874438880461872417921582168235509677908518718182444162984538403272870892205075655076565900903277694082767687801006317961044178020389481417591399760041033109753257407491793467520867338820700587540762124369018546699044224414854461899761104701066187351445940068135397656862967688253038975234026964359534303395996714331747451484640021229299656395996841661090164847936834682311455335634302668155842638632835427559242424984312973243941749865550401636556615142940009548390527859069840887579369605100461900964577896137788910037685221566986245813950552024108412987970867559449745962086786177812656784626991121260125985599648846305965855228810191791876257245796013043834365552432612843797876920201630861276256486605280720346651060579966707607142968500148217061507348385539417128770208729413212218740593838026319339908176277920075613426150698012785703187573896161582413732670521064025038392493759350556334543730015018160660931109445851131298596215979139976606505376329541253361660125190510706918447197185296384281627221262660289184807087064506896051639660864935397154594837644434670609717822238807230485305666510145505189573724298666918100526668742878102785271769183148924552233525126130955421461023865250039064135297555784897162930103664205383518608541059977613184166417315880957143001207370545401226665832074605301267492017938588015099761001693612164046906296647836968933672414582470045151545930305955924883163242262294956455052526354858727228797444644339950727469871095971180996431660183753957027179243396478894111072349840345784482059037626209143395348838026334500248599594914387758487003597689941118706875668961593989476320577505793121901167928059282988586476881879526742926180785394686455473328227757597495746119448068989744018107947472499557367957988127144937497338782483285314266663457497695309156630137220134400299056208742357327470639262443482840512239713654947693569724000560645250919262586894313727804488639049095932212340344521097323118064461850279494629202435943784059057871248786048434635126151759802932491360261394034617564428259636971351403279513081221508767182398313320722774571011457424710914030886810689550715044256666311676318674488738904926450212038449870133373272191918118093156899296997861437284248778683276708451259270436135512904703256248133864677719615813726172280533951616708245397844906766382779404907291817132745611736121908672447890074020883261282704468493708087496791732056629244709973800834041889274508921132326934779321561705991764401340774363985180580847254613062841030346990153153875572921102580898509900876290442707567707652739181721505710904358932354213342326674004497343508308109280572095299409265247775152797636055044297658632510964047567332799678101933685982818133774694033839723062725942392392988152179791542168452214145722379742837056783466344410491727010230812413176644383219032531428881450541158795707693822692638384305223354430420653729002043956364288457309746102694164591562440328975780164059494672172009387683339657465250494792769744157885309200803229164252128975244399338560300986802691761008618029342439509632390836658043320132266605226048363091151435598951410593269869426278314413314874372799678664825609910307739187743900449951415593912853971127701723615595046738023507260622729424384215768519292009726111110776808447751964697470337618954438993621991112753042023132219083483289535346037229115328267082935418486897844248924328986536051554920623146672967893089507972141703227400447900050415683798280436628083182194819156808656268041781289179217673136875633827071210235475644325262194720015196379845334866602145232212805490778854499077250964060828727161669679560056060681437025089843890579558300169225274937598007451341698234490040259282143186284891209877232963264171879849563986830130098333019289956819011946440578140451892680802023980420029458182356400248730176897411861350107763156151418738183643466730903504307340082569733915040369385553700185519081916818615435453600300026010272645416356652001008537883586008093407039840956459327818645385709011021696500836454673240777032027981845369387520736137568647733797903139819628730449163772716154788064645332603335912963299994983996919918247572995339420146672629871330691158899170594680702078865300652438387456459418836201269038498746322317038007120980718203863562014845197195056822115683229171867688342492552412908169439870351343697795295653847325281876135622501229106657843315299019888605478922279506047344708327537513011180953175485371578828323020114737642399824118818169945874865258497285360315984349205779751755439237687396646564240512277764567849251751075089948206718685493828116894143505737548225152589508250921582934788029124091917323133450775411338994996195870017350827469539629739454374090750774570489425952643261356559469059821869837900264600392011322295910604085367041002098644227309254665819024856184469517547121067955136248101281525575746548457872776729545644202633493817416061375716379033865853618649710564815066188081164845534011007119065153624116669906275491060915138257691662433560129527868739286032637928771068742804279375491962978611180352517509571776405659945410544506411759737317856419765330977750484659456105615765198805196243475608159812049128539787608784260974672750067959133203250564294178715307528637135709015920366868428747064848606946096291740060637550958586019968614606788966689402101342933884771591394399644869328815786564516619709305553497036695656205112046574462724621188974446180388645724040850093315058804488709176917906864537077106342610607845248754049494872571945867767873713571867476456111479738200754724535357422289673392551136943106215075096446676229046603261208256648285830657616734743210386872999932386797947719602069467709447807317873398804559251898315887896670408480772690007140785252542755048140179295000656796802650878371515552288742692792819560911782181550302749820800689792852547503979556575172921102114660742748839710665735793350897454838674316566692863126914431381128794534153573974346940759210062195360536939281611503442298835022293416566475570607022416266930691411352302265516215128929872143999472764219240983112492687505868944510129186513552325860990887162488067260116699104190825679774503433549264914584995167136988784034259119075242151053504935811732044052486104841837771090794299055593281465798620456160714188962520946650520519511757116663141627760006755302373649943699521418624495023958749131075847077322375371057553411661101264692241860017805742493103037762922411424996976920688071590475961279303201138652691403654443241812009300550298680617749453137010413800063459782867760109815700083383185267425614276523663497715603649914972185334849493405949279691404680247737888417998051856034209504639020723107570626506031188249627522789808192941129766735170556532782527837240880631626385798516659291002753187082274560936724257718943495565023437663099923051096991708379793637969051200917000443404618557506169393331545372476818734525300304361941960419174167063041455920387742130963360986957095841175896758342435674511178160223106841086676214933548694915265816329535373354601804315574520787285434976273279392308363473098651315611529222594672203878567065584889276179919078883808995748390970019170122660302066920459612915259313715599744615144461282622659409714345391589494765494626281298548243931328267943231060554846852858164786748695311287321629748346622806429179679585801762926656401519592180945253182342779596017278518699542712393056414120863762361078416009998044994561147654080518170839476539519326769650605981432904446998409620730939597597334436854976530128880948205061332611782473269368973407800384539550800827725795162619133293166734390474172421841599083027966220936419285277990861946918910793886948732865595448649400054171031396898574711444474025984586038472114161110132190587453794506098752727202314804247423661977825489744469586786229385495521843414672640174348879143612103773214617805178329637192936623529756899657676481930936652837390531720187607122861299348804028331081457456248558851022698463590333075799549816590564810701172324022719818220797937660413582358343592711706773824663656114956561737234725414426816723472850039737478215514514940264616133046687218205878252837148937373516004411584466933471644730707345527931001396265580956532581279417480823660283195439523917185512873507448463170557107233199050216560837183092942482946301946356792489864320375522553587320580998985780753114959605635067159435330555655962484253166950473028684258609214821290612070005628502094825614721000884044959866044317702386006982217769333619892301101823549388228074320900312163991071188202961813921523166540479990673547304891235350346429925639792824952518646946350059849466647267275261095823195051577439719688003432462835752347344827334612439740334514980002956162025470515526976592572493137421036465056279778652336805926692146433605036277531863226625957364006464829129084875753956551345635121388938738952199631507431264873179994337698526957689728069991850060860531177680667510959556243068407866724279245636401155570998036869795497164898705304027108339257214637446250880804248049379638407579021611162732381621883470453267122610474796147277490954950516227103088879089805784739552518077996797405072448948862847336713679007226921163762581634530067448678426938240617067513154924280342365990402120715632982985895551669940173603286957247848340143681293278323866454932225682633582760602141541568304657739013649944102908330079237859624672355420559398176704949964707977142831752478143255885226524509499806698720250171933514029199509811628627460056035345906929986404867344972881088746397886403572719297461211758197168840454358212183526432505460333968976208791409391723759567845302307797810325057874955952978896874883802315902385703346605264671802135629038158865932063095773817463955323259041020108262532620047070997995617218238299893506019833176414788786888112746078682334482454566590688046601516152071674163887270235234470065271886359878615221678029746786595279785994351105614193396319588200835508170273444729430721979680061225968736269022595614456429713464478370358729209726095642177406308441586376234520640295829090116563680160888698551581463549997778517770740694665908622736654775410573634968738402905590299128284263316152307727130452387198059932482476419205850532826384609787700610875681894342422185389177563498951961444742111749227066926746013636314960778969602880405447204150124218402700683099548278204980041783306653218538819774829477452982387961929774673168577328316430246113599237157063408015325377828236147476908716005254870660154389015454265681751879025636942621603967373675092725055594259813898643610956168885982782475351682385105633907332931811913955268131818949563415457855626935009665839241494924724394386525602781688802736151219255161458223484957091947400057203437269862891361693713490246534749962422853125025470226350496264713268531878659037408826682841726329643278368400423892021769339686122950758614505562661167068766845189846757279404751766147779664972709328326613116688082681482401800220289383906366587196631373625788159924537052023718820060047366719881510001506808938184228225690016830950610341455258852327519004422908014338483573595238124964114397247645976876054307657355142899567036407507917801257149184272246550179376893426914339308915010950307312617259748077938724006806620545904586086839493848658232106207942352649514001112660186973219283543551868464784175945804003935031878699636300813960455245412997789523544847176200344270412587233668634565445351742973238031809726000218308628665747346459846509584404543953497845746938538926866083704692791417501905343817450803011925733860590243629470304337744113987637786820723686242253335785915440534262681854331965035925636408473484941312687721810158537851359134229456552417841596744030985866226986840999151697239054659839133822507728833184780401387573832745720642710337199082070374292854108628357066279885971959708287647339460121580003737592693659651568660655445909248231926599631337073023317176579523069889002961025320440494941430895277140846458769645077262794402976105432019718553575555893527220928937534995153096906519770685596516531146711024733816480429838717276782548277724399296951144844116213698543290834838623634921968845193628510918155847884386799699295096710439841536374662430365900726675015049775693581389968733234787420175771578969561055230174559460218277005789060134236852432062003649403839430103813270904262971197324961528725195545368957427919466317397362111852983792502785130690251804379294614608673835347901810710462023709537347593664561526371481607326554171199723545249859151473213259648225021568682122996602689924533155155758863066908367960539255741498330113680149920499815575594372468165686447059740912782538178482257644971192903489399591842752057297554227909638455244164828558012731400619280411298192583742663288223134936913813972899418265168589362965900948669527658875132785807865278815061041585069394083571855225534154715926895233906654671295243341047288969230023248011706415831270706321690673257143478355057428693165661124362011709895039095886301593098688152217776663921297082136932301381067545142122001767320421565205240944613984095948551829752743528723352499932888228825947994981124261933707743432490757626306374306467789414558142528564489192313855893126124476520700621831879154637732079223415048631861743480147549689954372124989327611670096616938174513762083855916743608196469500924106300800538413138919491352795450409920621391306312078836726557396123907877586428855441149681845016857779340620837536172611607627645523845484372323165863712120420813983978944127464710856569276520108006247889945324699115560045849033611637788232819998088981583869956389254234444944129132395849264630173849320339282624158443498239806895568497208184440060167542381858663080465673303728424059257364936719504517418026548505242698153912304257520479779918182866207986624795938941253021213830516317371867428676072665648730353621997387722715239799243531188532076702364106715509572010565628493024350464204191025205668402538179648799834459428150678664925690626229359420669051287299655731323231023443539158782157232059275856882997042657158300303927771968348554885471753160056719602700265159832595761254749781220158636888054754244740925398415443996064699344425794391569976807283508728412986477713857434795253790794965032611595993277255560362474085779980683273273322208391152067962758741878211919517008742472573183168562627201559245461720381643015656879682890549547524718702674198394630449377415961202409594316254761830401970488947645573826844866761033829306845679110440714671051971546673766531935417807012016097414982384310264052977656991413454030452019777721405805602694867780196452668584612280056352278994551014247457207589781350536987702004358999236608178467194719880014971729874830989025459883206730435800131406955891414931280342370215544084307561819047433731518497859422765931607918463593747936211834031101611182215526292590930753487384362292791942698663409492063111632573329678275178857690839716298540805350792978519596232232051578741811069471957896206412403459200332399918675078203170765668098413066058859900696353232009783118406667563881572442211582418032678276348457523457630097996548360199249275969487867072770716115460638026700916091662422308182521025942916416414083182530645141565911363040762688352519912711368775072327129051922937824683748357933966747269937041162855357740583930514792845172981548956272319009986221803501192262695871004230310658782063903336429729636836946382348114830863759345925267436511681718686976351078591512236543927770528186616418278669675043197444673828983423577389437507829299589313740536867671840932891486205565062713186802989244095077778621610913567516803694527942292182801975969090610102755147064339869968347535135316344270353992491817154568975114925856996518064090655633526127477332835051700182493392594048790911796332116278475441989935316146102366808608622407057214033585286260999557851394596725022382913399697240797323457543658881422420167991236071366197110296835169932444804560130403189620861036846005502070583216762417896312185336240616864582422393355194373921672191686799440961035839210986327812327127599608333376314485651108149685592900833473921201391725699259837431429621072768760068399445059808199211620243559796725419158711314237366297992831244084250918046800623868648371451404805521175154734293085473300508717262947783717892095725838944827483010611680220684514558364476895964296381370024134988527278853596906188649585009442289446770675260352517696387483975480144998793386009236940161042582009827067552065956880899699467541195524752726111879310235148984019669794388843575222232310291823681035558900311197202136572697423749015266806895012966372403183825722325203936205333213554029822232755589812022668507036932071781934217403291536573211214486972570501789898410905159508943760630558929776723740059314489288839121672237982713049199861055304674916783581552672472946134378064567368974389326223088470706444429068283440157873548061917392860028857265664370874324853755669244708217253996014928255879815893250945529183985925519726362003286846324111273629003283131102116232778455235593399401419249640952846719072456716371798644253731149404999178060638283556744338745932653301120708324894128313191490042004404640539142601543885965396285061335455930830177204541847002657238121927683614410219379126726770841955926597973288746365108175365286065873976931211431791873836311043453348992377820538586066807571143629562900439572772117944701328277199290962121544296927998754824353302411455836195494295492585553765429446136180655250574006251711301065133279131272157499038719141020637303319668859843438819435747263849710042882858344029614465532683686455479529914522103820285826742574307091769653051351069451284034446449397610293316531633257336594895297457431537513066542299978634248657185549369276010163031250988464112293511879454500413685286003218426297493469893378563332391021692164508651781911817937718763002826313058675800825933035567931124067934388447794770639496969084524710811109657996811617383965613756956725072116798524057393865973238069561794288957168903453923827872636591175095859766543115739230411864306911094728023241957622489327995150965405505527871846113925207019650677381663059458424159487490947585130599595809509070805515695341256965178896288506161355982941561551921904905449035700478210425343873053349438740683570606835256505329927331316264053424797657461772605087099929471308989055042072139229914633824930285089674869317703118525176229668617793745904312929175918746447130724268755597090317517990032412051462184344136461618521225801931862282134416516877288915048849441948050276377277115806966309628108003477251631217100867101222761301485418300530591809910018835116312464488588067531416964587796164666846453364902033969947913146367065025473033048487986810701497615542970149996793784538419057597990001992068848244098011086349220171860801975941254337011297498473942268950258135297723116559768977831306466784193800168078381214180220063144046020485139847783795822211010886882591184469181429698908217356167061957596550631589485343703748692958041034418057535511583231592899777211072341806897331279892348173268949853222392952222336826312499093952231504410136065313143013034760156366513548824823053257013342976100286048758347901808767685455972926142911842666093096975481718291227226169481507081250230945909809299299276324277579647136600692594208402944659944246974997598642984158968005308277236704632268130254742042238443165917543434718703747941041726838682558223111267977769270971459656116400194769395815785229146325920572470722396672100407454159854519329838624100097843777382980657164634219870875002777708812219871239109426035004683036085603143803917845355203392161634337042537955098677668253692151731564834415975917873685268364339007250479294762153119611364175087651870001851129624802326055986520139486708384138106431976840133925670700914005166892054439381586388334767934937423162837412599398972791681392496448120879425654241971869329653321363379860920195131560510631327789952559577111158355798502006776851117906568191346783908452159585057987202430274632570174392466467365967381123492068487715335915010126740364586396431656736911758276090550225074046282727979488652814037829334561964074418187156830342395186026292072861261335323689903983830357712883885646107765498280273797298709163933615594157949019359910596836436643407204278823454078446677177563511739854265769763733127590161920949140258426139663734977282609368437224802390104627003776017166492452700948354053229385853150388756913756990873347152501591937972055931515310002243255025514268989877355012261063974796116118453976502816131900127927359486238167983587584446790630870381480941086133783180697222363981105444268911341182449066793671351310052688200179406190035045828896992790474375120499606664302233062959091329428980414070691108980333214793055269299549278354609001554023222974010586860176252913224284099360670744781750299761277697416460901420984862867899783695167072208819771886509082370815999074166063199377676777984463628012461786126425393117281552243338990371259380524668090130087819028249729744851050501410283061401271367380188815982165016918224232885354152359812890549385786005387292109835191909565249373370528752083466934027844665350190572889068071667335285315875389417377752784842391087013172012365486277084864306656263657045374352478929590877590471851356542158152990487619146677665579934510773332760682008794801632472225642912288417729733260769862348097516927756308055734743450774012735783880617005400429724430635956225993145515167164865558464859670536035484805807167519162172559711876315228225631950174812147879478236409191535606042398580251652893728182009650848198380742763882911041831586276318149347540487265192340433721025584572671321963066020852547064741622604461159841101610831539443175156596532575955440415374463266405837384376232296370015979360904288749307812092126158699834353512934361104669474629840063112942522229398984287674015715056516332925187230908865060458081242580952480434686677033416644304973678508711311696233501659138033574592311097046165464584419922683519766731992307057488423470932947570631619528665814217245769645477750631566421967250602410694079415273046483342437806582793079996613691628242039174519765591220733143937355809986676759099186942907327782141632139742094464575248789682023956738985787196478122569222020442279741938061747309919178317581193115125874604519169978138423002591761490643168824687910593264424320755424169781201579120236208615818634028948027807371560093618179293282800724573287581315981824330369049454650819125721642569793463805168283920886075831865688812721603480488845370274074937187858188354290411925063419881037749544179613585565835559427470815217860462586988081429759103818209442879466754962079302966491372376073916969860505637203981750101719705579340203464504332504771514572326643659969131098373164259740214923398202036431396195939703733643422038836672787178356446944665629120976537480913617342538048412362323192963785979537285496506489677670603390437826624773577683015619847230065881599367215087612168897481493450979926566583756244170148262036794549298653014660722821818383657319278742933001993555667269474445409840596232989059866898914998057376329115081911640379918226150614586717357885741152466583488080362610459787996996009053797564510636035731178843670601253137925140785373436581006790706212781807322524128103697941196021038001656047175979187801395287768837909787115934324523250190149053167730513708913973737980996020486808547198480666514031231893144890833024604777350856148705858048967541160112214316608576298440483524195599017405751026155992087681513128562570073611342168604385716220347430543230298588931171104765985146017351628686344085323035833863481416906393928651242341090480982979918776609790357346563508992284216891790143487810095321399078295489252066283712544244198210095813663159293026375995810371241862088808020065461058784581397129080770586699032603257521292063540978758362906370768827121016827681806722896235949547678987590877273613802049167728547609840350733869563273281689576021235359209944344533801648326194714726764211862299109056452439351437466982158495507141804137322391988157516159222851173294591598466166006340739844505168715000870642111082120786533123092378688538982967813681837090852232585867676934562166254056040278621011171662573039006079698148889599513173227767671306708106010769905925569985889018011029027001362776622066989320592187037640287454791862714104869843789869627918799530965355924967627437052813889223163300619883920107743907237804691657476240574006267080498850971898832475661762272215935087718398091623080599389281383889660945678362028410012929180436678631209368717349278930164414704791131406860978375844310622057434961873328376971972212702481364101921723819939346152560308873718012624768376293196035629122669174577418011311913684913702806649327867930321672762453399389190681366738606145194870359076363388420721192931284000952236242790920586541608765775781115173955236112600096783120504793178519075582942151781426963319554089444059193346064311771725871522937848791224796135912945941255690402984826377818722269491599231550991354554327622244948287490823018164281815532158899213819093513279241661332031731491751064880078510569311026129886167103315318655927234426974776237855727253551647225686960797989413681372997039263109210643920607997333655039815161597220149880756748843665772979967873145738997128064614948379594231285913067703403322464452192850643252806931376747325473729831085419444202314078770500934836055744081067887065961499612680238082680819603804452806601661782403544052122164380793253875388873937403966447973444919085092363149985124401931370348637551518254070491287515059997995644992004014978937039555157739053108498758515539604255105445988431015081030669242941963880711341894806639563258386813973789284904810598477656229906096962793979927497955040544679289922346141371488292631566773925041339427335490053629390694715583452492104017671488433936869601356197934228156157834776750357592957957268053556587209436747661654642813026917059027419597269682319000759075968623260909956212724542008984933169490219229933309424341888051794539592014510189747420495905383403110196037441100250261721925090188466158792697877848708815463265221186248535809300849252693268957909611546378361971249305556386264389444674388267464993567087902806136394616196373943495244072159233655910300721004864880463007356809863756878892239892915909119217809152154717537152885048983625972549226179044720407903371144241490659632168781601923814730871478514428087477139123518618284242712986438394827474883205053631315475916564905778497751343868387337865767777200461003191563505261509913421085311138034637208015289607901236227297209784862599517063906332992587607371860266829185352919180230460017527744431922709072432254280283557190285727883550662908736360122394374073786240927312720158587328659167355944743865203353724832991335340715353855136924704251311040718721121776369129047426941503717235938305894632121417589293585205640049024406750022376346787857977514199234019042797558868116462110743077874153868702768612929456296575964477174170223508342837604347292148444736119673948456642671735670015346885206680184817697443382740755762825437143277689908912292435952661833465976083930160718735120004705683080831073492563240384290966315188505322324203044859604340149658941226997381586947421087419060484049815616869464668990855455160400357368130899938240525373792215150121658673499177466365341249745302550732974339020263959406024776849477486516855748391322379617014667104056584929816526816325330127818004909857168434616501901983223826373211016146897742412226753053233207317408685549640543505284553160230104513393085000294299079532636007875726219687191136397704127156159607248898450447224557432004456597026380100006234767084451180711014457079448835214797991510132896168503238144722422000910526289334617069805894702405345981387639851283838508382158443008583396372627001418529057907666067299862645622545336839939398375510835749906107381002928800344571930611033019035573172467366127687429523839810409094310879742264255645567772656619097135325683704396877931175734121074915730201813373704240854443427672610056851616166386304375511759277494230153755091972235437154170648591349959805172816024131787707700689784887900035927306166260616280872637353781772299586178954650623088739938823042097539049861517949996456332012555316594749460994526051386188690099932519315428298360913289783206986534148033875524439667083509521184445964820492786569985712776022950362549525621624106982632869706478540473259198044537621383658834006011166310990467582096894088646990615259045139668627398334387066365843829336446880232876934729566406167806431728373296806840701587707837404992499021433140559539839195143061264179706770312218944116781955073660658577824566852962881542991187241177525372764232954193197717661425067935514259862175518688376679786446401803395954196619101098373783203373795183594744003441747602555120668024952919640482133043806113717351504848383184851121264114277350416420319452569992161658696310652893282022491485403386515526587698393350182076032452890946933767468027105954318423359115944115294055145884495305771704500583734494879651436822659099756648876151041809435330418451318075283641132562337654673052889834958702197300609981546651534706535731960706928633146995250802859933955431545475152471150499930311508939445962531620422213000286223138592460604907625467417365034421080398606311046338881079333858351606715269371622223559554978308511731756281524821762663624727672267554318219165941277860140057558514765708343771358921455431833668706383626292945957578994541904961793092648122043497181183008612990631907638031050133796218489931791921506230243778144831751065573189831083820562402461382504621837025002332850380511362298991570847692076649757810467022830226278282171983062315991804583819607829674929690375877964434597963048180513896274288798173174314924048144566423106157808135935068163284125254043222508605329886489246018312238377564244427944859933580413166578786806371603612695693855077422328512120656512723975319652330248939734420170579673731132467079253122423587396242735111585587055698602131198514395506510370017175241328053382302508254436719138178754066129493215186499161154092164792130869182265774895414692125375117610879354888175035396229857230064871447866813155402083457088615061445102674352920210023299519683879517819629382742805117024296961724589734333241466766775644270858017631315944817880859147943928891487216200924060239123079002066667018189549444483980432792486283581443753789794453932925264047155624991249513155997659750405371453334766862234671916738602909933372998287608361554245010996129444988896051132375455074561990120521388859337213407203776960621946189652074654756237090701825351202573230229138787851301186766960620816201123020380948632771703726213080738583210363255522933210947865900158324552220743944289762192105683694823078888032690940709258200969841723883720997657195706070369523552592208464777743188568384488911418235795726233757388895563660532308184303830764711416885022690861813933280743064483414409440220696120974285610742153210754751391262472644512472727026492394252630257878451099729757753486499373811168517991213200281405412323338013330751849100156184925533403266522259210142980498913881141066101984353955333065608710572829942248900731980795980437279589935580382930448190448824114500451361425057446485651424827404376495679842469457452822484910367907931370345165420484746391332031674560957620756320468021994781906777944514615869207007807152463552838966517667374339854509733488527182589053117145655755565218608824574266926522896179577812772755095775442776783572348440638838180158717885021782750089498115011634593414775097477391533329527696325245358985936964422189243809030253960005487743874235831927403088812751135554554405206315838858692648014033840177713270079163228415774814378534735153982907334697025837999664960389891931759966952531063210839117897575500038365294637913164557022689180835036395556838322072577185401005869946485569233543257731016767044343029537019614202265023457368636261628346164346058439262247801699800080089696521979418882870119216739550071906860199503961177883880264754484516134005204229907667617307572616774059852588882662940705900296515470280187246749819891179602711004968376592997614267903175381820837673748010753237592319777276743899000634532729805705456958021649155196720977124801117595807328298517845018623830727182122957479187226446281962958995729300282679209759029391038909785845613730254561933206708166293601059253532282756271606832448018062388465567965826244278111683800983683229675776222834737573334358073790543495697138729450153973131912221399674734575143013963414656356779409918908553536931815527540925927728443768663243456957944272000318755499495707379858981828469108311186823997407714862563438505084560403336654094720490963004623676959154922769454008350501743740006069198165545317154098628918873444172992112967832899538471550731396114788151507375348510823129916826723545260360993584317748075200263183957939816252219127099772667885082441866313708422836671738965561867400923829315144029210232524903572026881551289294805360362612729935726707101729160170438023129301969014786372628823900686469836059594456801806690801812117393661705974595307062081245830897150975499799199685768794027012693710131334867848518455036817805337312272554499881366022957590144726168243212280873047770097745032338160047772527897449564637259247894102934885711863617796785721514920115168362597855908593887899887636702822934470304429697376436509539065023667356605242064008454442157099306811199132049905535344681592374157206873958094491790962401200587963613018729464838490683156799684595025770058032739689028463018049216281468195503911644712897493701475296661908687264417763535086925970159188141412106572548770177197158528975514005102722892283471736996160953880886870347461738418353161788053272045604419872047672023572511996893593552204965232568889639335699040588055781020318747619189247644746897584355739880393431940281373613686069116585446617083830883891169761528560764407404008979017674189628437123353582260386879438867311316891268118366706279340977699249953322442883667353376230861325321601278422004388195877736625050898388674059614739577880358061878186629845791092442968710835304302016279651343205117655451361310279268931908274054171516568406986981971462899494827061677496003573904262166718781173136798811594622182840514637839937748325823524915442856463842328203223635971161745892705521965416646649733345991363952500460746735028760404255590409642722864957524899315989939938559965962967512344320461573225168534758062980658083359621755336606063976894027075869901335902976802374953949079310948573056057347610649468657519179858341174012407739786747998339680689630232097952305276057281230366683941252178709159970937868462204646508245229942608115894139370096540766014491990023962446351258817775053237672104989816599040926258919096491785766857682611485410881625811900549516879311379945619696605218145435348633728706898075001934070552982428916797074887779330562920939790511501669061276388540574738272214816748761488855500959162525269396346101358248221897266087789666089901177786070260630238454489472065692269041891062306343926643858616387985122948270700412090061937322248907057295859186940268997362168529135698023238619240986761837358179002215067975636921025418113641588105027236090840850124678421851396920773691089866471379160252385264630189683742438754732148015301808041943737387442372419019353290761119227294245188296443128532212630560509605928663902942505569000127447702993767418289484753664680511874287841008551739094949299347004151516507303366007387519581339502707831535422494807366046433197320772732563424880978087396087316175500708288830927707648832521779312140866037459616444302288459808086227789452877793375409586694479976111511748403955264649520153963341256645281170370813280144644485647522062258888885615998014298507435883603111496037133937934539803234773852734936330257513226994487281523094089434135591759016946619228398699497274045762923755439672352922872240043347989869043378286837443789309186831159705035515052756000276924738660513498606478928937501744980711433031404157609246637254049943378218737325164006349385078497277057243650352496962759548991618956990513064400563228710719669604681733469992817420800791102614326706686913008365981822270061323945978005991221245595019099793963253397528856553011217100206218275712825558622477342446576628984904421992794301928478324757612393431427670265379562904480875436459982575619809914231565506457077902813843245646685456166909316125656279321699878559552873861264635153163842852169925280222788848449392428473083936668758160425527062098990039649398047602687331648611126695271290062409943123949997481368425474917050239968472144700758061565104694247072063126071896348358112978740419624158212078189729591730157987446493490943853782410482886545659593828784812531337879700281323142195503595297692100923410057619175392703709128619450399152875136639676175259126721196939977456330005519663507908879180552114795320596509444941657392943340029705400130931899059102933085261349989466687474599476967152456796535020538588615643777758699867702155775051306608128912954167979811162270472954187181495961469810698492896507172315984326193086593337097635850304231052314447234964243040175191371588712526853360954007355306044269442130552047295302443668986351011053726564871445797537820947191951019565389365352533944734250167240549373719310235257878565956329918688698231590347856248256974754943004145471667900576666280327295740971784350183776490012534941469821477447842259277976592283058309715965051570379319726831546471299192773132232008097984518965806622970640703738272229905485064128705682633128072441827246235630098937561471017744255748175694621411768543622033302697692255694873476173394838946714856484963371736459838942215767493087646153779160818718755718362737664482250863625180437733144081420516874034541685492809225566005186494726943669341024766591075135992240357561904133153677363726528329888029550096276110388966026170274170915100337138075589863663879872159262136544696131479549739662913938372527026474918314512974309519119754848884411080566519056729015099299366437865084668094794651509924821426892283435657468941451462276139997606822652355414254811551000749472510068556229823752864783167890933286125079415934598088190070675286317072745158868790510501017296442056614475628405082157064367833547186070932266696178179411719816170628055599142920000700475800163283519172415078281137413742976248550756057350415179068376858385613420506153978610163914404590218368950915612474800914824915255711993825869548824638503373632609026702356998414846488870781827530965303388674601511230950624624729442661466556396050131750785829941571820722781655134104194911040942122293523660385554797800527012059057740131955715642172335203997973457811206511062073219170102401714536456054131635146716325983572727962848944415759002874621068150739282123714338287860854592596747624258666516748935370420291158749742167255470972172539838379125258759121720523478827869583450172366071211253225079244919694506188645309897814191651336985146541326573174080808135964428456684724872885826042051033087935487559281750043320127361337372673963875126078539937436287052095224494736466665220416595143204006272451505191048048147751167140102814432841625463327053155437850832929726986266426234514643929873348854261904748312484768153106700899567906449556264287672824842036289975780229188199825276542372069911411263839108486251050131518570653068454409765130860781342589381388316969931622954251755433300549221508897768645115748128232694429225043518705719709750211428755283906841880336129495929481688495141310535737665063715245262905632411050756084476951071992614108166143501728904871799191105670002319450473157783726935463370584493900139680515144613477423061433036242009785181983268455153763378031474478413688804100942123048913342702217313647886606295259446538954350103788265440435121430882576652795472029018193025305561231747130992020456096346919204058265843833237792809647363310285700520132387897877286088638353267444443361956239451065259731267089871635689089676123680793706512153877460274768234866931294371045878267546680567743043444021970309220946907648549273851804261061962584283393514394232016374257517409723570888490941940049261325989473962632155649917931754169574051466946116233431310459212576710860384539395003180858324451240219624188190281238419477539245896401409698663301405093427041023977698679519624035027734140683057083378736457045448373370910418412428817163802165125777714583625415229817312474370581976691710963320790270141276479394816041612887867595316991929807951901128259686294108978907525908837717721316185140441022949291572251487529875679883154937820813596940497557381999294783978586613139455180987383632429049950690501930451444903045971039057437962617883349182219182463144729103590156724486519838618428857495734760756487725064204114817836568125614546126011394056845399832486243820167597778718883381045116908688798919443973733637450830035023577482131618578859035677194200427279516309853879963494226425712147187293476635467386864510011705231525324083425184494470676025329658906330111851947807991296827271283425826618821851041467487869199413499447769629767136499869960680727083709798788606905650538705441038626681123553456892142941895128087722700564176031985281283814360045622633540912214072160351160552919920457994013498506803225827418972951718380644332680822307830221047150300295160720679742118835180677250001984946091727040474052339440700402475158301456795361771724710007521775027360874787928262791909614178576254569753918722432508293398049221593077514048021695890865045116254874194753446765100734905512148903661670821127736029029649740939730196516878877947711329854491918625824315993694485134460850488244622548819438397799059475465771149279944128588805069308147272758662353328291856934415288886052496707309724857733567309724858919331881354400139576193311388800238262224289400645456787562090183231357253517016653075922015421402621180208049025352940599894360689796606868440881984467834568290774238967161930054645540277827624284517069183384137382854797008391633914807434535228317798884079692561669672426461009613043886781201421313251975861503038224827930368270067026295170832634399799453361453046345843916693234876482794284308949667711530174638675904744517177706590002491219048995353298174840434847666362709759079798831894192692071102136205406780787318592152151804683731190525656946316768348486253109878722318420207423635264693672602280490098091235211897157566436544128171105586282772535636526012414288999402296957126031336687567588569134734426027564422387178714883210520901915469021867743380584846575140195273375183799855984175625421025054164189991449249362908315054821392809839954975553391092623260389147702910553367003639775661137626431458523502532632096944416487003754091272619044455417734735534797667940274154728443796499569049614794534140482109954636436881151690948040386830594581534518682096893163048234325188692138805952337235106636127973223846146190074371007398636256052721754369940528277791796579973741656387207793723055832212118202062640381717357808471074559006035917150765481217927201729824118932254414087303398873333570907525979627894436375381947034990364725578378400438872153419487500659658938463552085720880076630931913120087026648168720288203274357472721966978303294114697407932092170016529922562201999989355210900261831753980137501461347270551847031588623754394727244098993590042944311174625892367114854910022199848988937628860999433411341947448074637810080711663254500767155472577272513460276651931739005520777725401262678141446416189887993906689397311292602297700754921850860312156934841028679797498702303517742070913737527095429953090731034244676350247104274779980931464953884580559055174454638206324830783021265473977656323509826397089681436503126015723406509082161994540321015010030761375023152297809936894813991953117465941502286063800330184942533746168996353754710086427488406514670007400062458643328933705110819694232151098886338622725787540437234994213722694983603094334597491263443723025556040399757134531964993537318675390548349088761625229199458187112985568734109167152844746149844685076988006037994365112297152017073799982630532934916026639245336406621169978471609731282742921532552417324593797181857306982002047879796685558548236840417066300326196792967290434838227174982214344801757385285189949475504161231395849881178325018901764789562323537109343045565102890811613615991553994660112408169190476202282669713170785617682300033776020651753467114679470668167178111671304422486894346782504331455449050777915953963103208901985882084316514284194365121188038652980494549185791005855170280353406987159908899292504368628013763845678286995562921073963896659962237076705544216893612637918813313712480352209226664448008357428864679039521660853403770402485834608389343479699008006400061605599092423191211334624914098356877682263057109111944759714592404803842706955057447075823986545218994606986537817057206915899754534624170210060401384534430182727069366483770304744165893278433018801933243366891850423186636910554458725453386305138770470664735447661250034056899798249971125036056431456212461698173358342323696933548907191319776985587959768763220879307023505883070529666751447730024975089332372223570037680091850776216959171564970390631271491908970675167235844745521265065531427956911729106589517450834640759927874074861558871309833188403617556497530678694472319769907710321462207130891854686720135136101232948104668844559473513506476775300075320259291839197769621442120893913485122779792031190918472291183482308957121398079090024451293543344999195356652587552549189877068055890749385467966144235882169571514278831015529123822149372269823949647966915028875431369120279263522897173832545378389757444132100636731454881935673535490730015926074219117788393198891668354139789476279238679339746594967287946748832633254435875686725008649048707179148153199896676221130747117780345067850536197195144145667012698379291322215651543079493114844977480749679525577754340440802478797456148740296126689469937928308236694561939880384396402505784758418716757479340476194918274352605531966216419782414917903691599500677132599832448662042345205224594037583147498730822773826273585683373048517648861285244743611068121513003854516376676472494421815910984705907674163782516626957397250575548171803515513798377237351387209462732334978777164212098346415699658691941287918377764220204828751482067777408156591960145160401028448107490461557063819251844031631387427782637635092861019482020878279225975675796299994585319219534114875227161722500563352088412379852429917988940282388007715310457981456218157737579564399913089289035799209810307793335932054738639152364369379644291856080070534286493150977660840510754518481035542672669111256422853898093804797290238781596685060436693170480784351940299078894186108739049090465238278246991047352274774602507214903806186325823018087510636285810573803246400901519867534757699878665385399505922842903328269238841455888578040635851790276940828951626612825949979481022745115452603613777110900382299718947525170166073353875919517585710761165722004012121665573064993162636815165711675503368638814953129479364936359234373191976746384407637442939883528760604399110871178811053006282187479874537982316712702940158546588382388996204843447843923805377253644758742059131062054547164069224300881896894255783675059204621044919898171613363299463570389555821050251934633040844396977139181560913114697993194256954490396571370553661317518685825798520745244637248196604280263867126383163582049453024378916650996454633956395214748054876233615182433886278346206202144162804015137227330309657237274520673034843603911825161969110753031067355885641317105364904590128251549993000069781389731875374324103412064909549143878474101546947311681170991285556063692800606661266454957889544596724790153162614842376518343616121536586556629477076798896384307277900202927033108034410889904013307146181844998026647602982431145277340252219321888880438026491519993319747111573659928715336019487176634010216916583427884745907580109048578008226315398723343759398988258196275524589602274156782774139344644124353141424142063764253710200342294590303600773890315274940409951428551362470605683151861101163776198172985779721963670918709333734267022765828143321623802451795698771883523155617209431535507031046853064537704983035027203999364190510751958277882264625218958213623256003543019287849872831510037124239260011499800812704763447605408370649659390861309078119907497330240708373500757553225229261158227553972912501502194568226142364590824282101542671746514922203485533760825031075030997472058681066008930184426234214431446885471953969380709481297110357523545282954541542997488062237946952199412033079407971556821010697006797558553378022099693350202315808583454541933790954561716641235406273943253842874255115725766222205737175470330265175789788437502261376213123188451858092258120666799076099226911704036265876698069022737401202208861968596337050518338741103304420341621550444416650002799087429392039263387127927929778077942474815766154133591456255637710001998791569298367156165598009011688085102034180355573455921973918357472859365313091452095690123771144676279826994511076038059424568143127473281150724651817870732311419553520043124104546770077676482617553483583937760536864695513561665380242356703705502729389685857999041461653590245375796857445851899182685111518929425299813506649477982468289499335553973175522037090064487757212008069046659227966669673655308362196211567765516745275995182863276528036937677344298784908393323669679815390215052846833664094263222508707202940626406513687785249912228534814179578221782619214996073563874193386298022126063657629459819647748186831060271371835818753435242074206381132146685578446382550598551603787132159624443593532517690889196764870921619577253920093358811702326942313430534555934498126303377942063391302194900036534100951652413911625287923145045497640676443673630351248126935196560907646107922728973054198984819778337591926457055445024782164085363352846782873366456105986524462324252821785312445752591709122153048209517775193661287586677194421663118669129912977372656878446569374600839233956593433248839872799370456230312042738229921645573422861096396156448592202973764194680338780650803837915235387107739091264785614408333288860030279450847128544844914935885737120308401682533662676789001810549620337833355933339158838693890040385000672716501475273155788080510206927237666888410724791701643050502406887189958378447617035045166911911312946343078662601518806845630090463248702394950358144833921184591117491134851673986452590000722308043544940297038517413604707722958663391033848160143756620668569309810694017844070930322102581562172303511411790049062255132575786115943039062973884560405572309977854842318602685470400546882035410066281272236891620036269567912168697029154530464690470553708922006078478748626411885869802658219858945079086946453643068982881112020753763635864713592784738401362875533795095639975364497480472760545504501925604798271147096369397074411790797155703953611696134061518403592654352369827363468862698300416532684797484014586458470080843775948035452056731478451171262534329606571988150009561238904724374002919125173282609686464013058763503543900263256887476347140036552453659701518349911839753508731049099483183978204167296426861622632714064232827928800004962008940369888209115790654973504788872444522772626190112628734483477562895004030839728653907075042291552146922505551662990767412597141499313771853864228535057178344492617068567558266008362742641192424359858216372259783654092254784002296809657254703366881621335290746006908018397851363964029652022193485010060151655681565380934831880211326378745595758569055170079073157015888492431066866969600440036967191118186070454668445416951765505035464041854291195128203564293572003023736172384325999795933124152426554778633600665976831205018197953112641094071996308945798923148862241807075046553861383113866115829961706039394161723130532862682613434252701934202668180747260374356786242379558306532493563580772602955284488368361850879196768888879297002320968287106852582153599828528493885617828637751321521749049489321610691745379212558386302661112903400764404317016170431671660587976032331374058073459446340797704670966846203446003500480968737451912231265564712964896947970430436561565155457795791857644117503451888435994463714746644004441235408082256116524529993751889875637336447733534548283914101186166614628622886856848576027147436283853790855860619489680211467421295771701473812476446803566307673519087232324278309899993753029920031984102583877390830218231003515577647346813323349729229539407225906214605123746092883755721576690795255461760571133994683910638664214643902736451139111682962092892169560043316712780618379421123372832622183253957353168965902198322529046987664831825933288901788692121796986731678518287515549782929470776451813137603018260472962770738984109107500721389779361551400853295305077467125300759764151953949994242146726610127702278469668936911416563633619455603844596047663579227655103398811879055457726452550104622570049618516433032705009349824019061463581545741746065230362890523417259459307142977633860025275808433146148373911016757550129733514676501202243203116266050146632808284999049284556291221578375286409371146619121722448301075927318724566229539761524824309187574709525664327247700388585295180464157781616403293253656113010335311223748299935191219293342165712273736387840460468287808459567824395691672088350535501151707477551041305682580799559509967729314529632828448404884378970328444352080411097054245859601975028967140573060554977354708744056833366273767073730790363176271973487771086791265415479915334132628235462540113519939899692808575602969763654571230229334343286142104065099116519796199036288849161601556450157213662313396369027376610048991324817999367617507505088446257275079281192873043755735735283287433019474929358592330181692878176644051356064650833531434691425371771338184351054476134664182662116520170815381265185916333411511277703368453457531898898825389339535662845483570667118439619779440778321599179375263265836331032855928677838092155111157021965546243345477328126764184992199897311953738993497556014151047459869817126502996814453090602013244948858671663255366976155986956543311758033947627310677836048315079571186725000274706144771457601819045688539170342929592245254588889483753596751122203264761314782203906770825425145262459652767852243118461862272093104632326456792987780396043515035241015561173874003412082296086784515485569638749211818740680048574952960254156375221528778719643414168743859136313191303573524240421295864995709992700876234747649863468538079389551448101109709894240619230854141190058418623798628567816404665696279506106361884131065132115986886997303135981730706767058698431869226633098455559042884074636897124217254799196866917837511041847489870841916610270813232175944573596252339638743451739388031447567193610808631525074235363668286284659700156326457703670726364913234120039550129254805552301336433707449367748758913587585010080953489247101967222083729769593765924499143172178791701233753669807857481969188834119159647535272098481001046417312426629437323263562480743816489918038788763930172161592224792248802368517616171265874087884746273043457582195909646952629522787300346756208867973886973726894586638063012015608982493376284234976238840955248065259751082861486128720056125338356611290897276016395306524372476050507133869585159736157352306583867343564763760947538628835446248423587273541290267867733868602934000003648747294021860083864967338198160342463984602534839680179666592930543178564189606320553980768601439831992421550475854085259028919788682261388569940140345973117175354066919206522573686944587763195979559358757362516826942950253454712441863140973865602748692242153156208511643838260725150530474123511978202713404945911044823140360444676637190237692177102477870480133960089413071207327914704078611402195651046135158111518986347686831890409607836807943962881197340992603892465087099180773740774722058160514967007197367496698477729538815553867174541125037168406425621458486287018683986820791689738841090994370558364650994939019250461783235963695820073401825644662764935415869562218932258375198583359470706907656461878923343985914945818730304624410815310985854066408758246026100436807843037893200819656922908121414285447544660994609847515264897323897938051248917352939946803790743145060499802039252293279115758871772893323524553855706072410047734765628647533046377054944235203007590110284756076499038176896337504690178232808521554774775590477732810743171282241499958775971848683522670218201106850002021420360300360070243055565690318000344247184379103301122974639263286313043634188292186649604115540194398351785171500353912801018149989779236003655000648103769210108632143566454466557050101128113145372949425465157791009412209180081190469295949194512378888831881014957456481287476139046583276720920410728877078212465304737923725008330830525958432023583267081580258964262405817736019012162172808305574276363273740340667796898634816647368832429667255724362601359521834736864262816860310520253379509831850032828461311767517634620929804332852272576137410603643134427425431061841576038815878607184572381818547229259822740950722608782870948799288155925237942300303666007733449713236436204021757145563899023631831953365161620837378060136614086240695442319929681711799624299007307704324485805614439050981566098989552355283063514181346910225459616578392108330205442136424701163569355913405839732783975524552335051118204897613792701455881377158143579358868656657749305963520693875128744166893351893793759347551192067893040209070131364902072927194008839026703200805424566253396261566050360327299516753343089394172430482797960128418158894477286519606566523270903457907982926752655533710344483916720346420145152013620328828466138442494283513528608069024612104185014688880188381447696586855483135943384492875454181377498255777921462959147746440125236818524899809288411218221264433304802082920140506461191231062943258313722817273694464597179795644817360886489813503873715377899552269944278601581986497261962480713428780953317715995881750576053647349913039916287656192305955464714029947072148337856705722709881239818626410075600956275385914297539066139099143617067435638261006858344124016534463488359889018291059724478541934466636763965189562708522052372053053466223617907790954608426501061037074994015867222350498009431825275696367658630510989529411051472296855582683342165832698023532109806380940331295159802308343385937825607971891434508955551056666568477865189695916615123669792879567379532815862943724162117779209291296069247386768321814353725137804988225144155473552418130604482392563398939709170194272503235837782629212114340221155894207029331854993480465432390290589051110266553494024142338661756332614531207491478524461080230310923129301892440624968241430215355544921657480308647572657893498732695279311922868289180059757679432597298327949122296517465191930690936960606056813695817592638292643634511796182098502698350843353301509675851620338211552976977052091794400625106592206054697646674098073712035431990860844831024973513642283313931733417277239248334057845549492858448954633652749348545806150308913133017646506874001184849190722741336096571436318025458778318294631644538816999125783775968708500064979513970592753319497381617306994922610318911305291154152237396638158663210637961068335934787944574711635725395816442483692667480432608014767526976194462013464475361570082810929413898483387468460456259801269664491911861690892466411896400889023460557627806656134582929099468713594598973329224897433397784940988024165846208896383213728355417003943013522159931958142555400716092636659145491121918476873985291363049273070624039515696352121650681584056411977169466635433315766561230631766845105813251927965573771368060417110111289472295135978719662547276132567268123148473459114904505602417954034910674996534564341606400250232621226622066077846060592570912671377465660600663119729854025492057559707668692725150679858057503342978570759447902103860323717524606653774973689160733245781480860941522882809359722642872749363899328245878843292753322714627311564574316274893380472916998099791942296258058551457732934116523964705420861602562144754793841615563189140729417538872105448899327398548772496384997891690935522710259628961222791087730413993650785424625462375254346602931989614409325016157248908509792707511164595392143134270528700907525589633565893482084313751606877475209777486039242378442276800009539052607136958723103838740721274984899576332574215350790731195553808621616929916596443525835718173181639179326244669270633471296877216707178471236722653866156296828419189680540643718592113866683940129238409679820791301152132761488367654571400098005876421743464323631795347053067864489082252426798176449998845265294705099400488183459330550673784482135791060661059053615284999812945107322838107228679999844062580529385932943348234954793143237083415522369279658046882147540609685371017911198778427864843098229722609546857915884663353973111304759958988760664554124278843340138676330439520932064471204836924112781415767041949822698419592559481053305335018380767950407994001621390252078895124947259973285172958935369000253062489756037726427916941101046198386999778264837487888855070347325553764414602995448794490608487068778209482861341233322038710311251657714323212727522799520527938555090009715310188011942681923862499782559241494086539480907338128396162657287495543117891781468766508490369826882522423489515321553968533504208543436574333412029179984770612772266447065533789812340051380903574407180415453784475753330773479974752897310764634060298444379433803810139320224423938379807732786458283823499247783690391048320164378827018548679164731985019997243819351195545070081664288659092944411768734604267371607175394366632845986698012214070681334168732758103868293220771005305819469107907370635961453527770118183337015466379026869112248142637001312348773502049365870005775662160236680942151522605219123834574743074121964113034479934960454034686088728332326532724609291064571164818820244787940373501094545753054626486830782881867512393698887632630849493858955169041684107105495128957993143388883075303696064707326578675318490485572312432399749619196095744958794106286985342128860181801916756394876985348058816676649560412278986436992849194510468904067897370891564491755269530661416306936485091901360261734061269900245179104003668277439535594341644301269691094212333142489476378400158357606989703668393992959166209607790591644789431154419646629319391371432259163575520748067105787027695486448206174572138165955241833975402393425819042262486048467563342286885393437578200480116628791616070821568019692142478158765834104381924022186044202759944630013370356743030475809110898849656877540671408355891604033795153646311784135605845672121376712342836753056543024994213793197667319079489483093696468044675291657826061990869728998415331165667156530638663970677326136625610775603723779963093343080440931727333619523960392462556969684057619506649861072385403523762581370527409775137171516521239806186800565914967617660907090299289869392689207918158032466423811072463111409158288509519443467292000955258498399498602570381255934706279820788683391454047624594311731956311754342773802556079974251589361106365812103046960025116066132747549090390383292725816678138283888440536482914760325247858738373483926181177716405276595713797207357030644018862361992066625444615371857950333038400220798779098619920362296109008008369685298117598970618165146678675893682271970094633405979739830907272375349893854921798536724201351076346473313685355327326368172075680210596613519292699439163207658896256767594842512658042074609939749181353885854875224706710010394313010800306810461276629763917916866095424701822255228504586506810858545579574624557526433819990717783158899186407831363519712667909332489949171103084538963910312694079128431353008430737386026905698628889522241537456712441394468327728342003722018020098370967108346062152557745331812795557700110018615202850802245482410840962181661003753936654157782560749057412703398443595170655066101265835811405682557319331959412211965642767458851952683551960970745105042204233832802193419065811503820557730648827503361678427620744645749388808470649922292623982798078820845449642435975771079561590153498565668618311806316011491589224061612572163209181928140114090031681918498732996493963781203665847307257399635866183593190517980848997012806359355908478940233357701621061184786164940376691296059191848539669474497203344734999816638338477557098364681336795198153326796242578125877204140544333989999183768171201807395185449529368228913927230594978113376003907444755509072080379096115909307615343434988053725183829627916577777029433457355096124949562266690010916039526757457015851995939235216673187408184381691829763655067561951567924937145569160380002022344735171038049393281834115591338218646413737543526392980167824223735104632032297038700716233509156824249645125108780801800476114741071525618882222840441341834871784088629039003877153995187113171957277993355037103735312231415261467049820130002593447301778413241972570677394492353459782258655692120386701383768573778923695462092705400620739528872475107426787515105794540751172807842568156208760374054877749158777219835369450238484190523632652867859667489708567777173996668252338932269755152638809744629763997849613133951617206224723247538460308914072636930588598941032054481307315258631175706107328108624341846841409274894624965263677783051456024554543879554237518243750638424306464259975569237302491113180359830332289960783648110247118773338324973751722253994822811651640360046346788019964906984544828358145512283097523269282564827496214630985631497835217653144457839545758531715625802961912801304119679197410212502285686092988365863911570266880472311491024148664581462597123263330376603732363665120730390596911420095282343129583876415789990395665307868048377967085897006108879109766509623391753590115408475325102754342159046237609369696312913924051260294564757645828256989544592264871864560988539632627067688068419265094661150085129894125576123013530763787775200837785786094190578814439182160163158605397675624636724556821513126027873318235122486558540511363822386561499209664882274760238132881467189515754383796704427453250408463410666151706787671095849615913211295170322218293997091550270371514577788841526345018357198768026014953734486158429885605467807431810219436378621751904578996980249817186073066783682411087728604827804302401689023279301903186854357971987745016102825459620387971614451996826241388393155690684701618300995109724832286303930231772161051259360726379474948058535013787042732416255217841212031856519269894773833741274139578292202687840318805365185306370073868504909854423149949328347055370176402989260407228840434073258894652541808652847909248579035251859796396636918161628735952565906875090837961211561619753024994820560679848058006510712911944640168676433306814085676458473734258429007931272882268474487334164177337214554303876314186589387337905960551015036740297268441392549610946810565927536073057766385144877483764846713015047083443002767724494858643766547563635197917422136959297031418001502343159422817601758245362436701360615788589633253751298114525795126572681153776970628796124287982155691235650434879673979095495610241199267201724213186052635494718159445139038065260488259234207922967908450366892309621443257736731456672358501546960068537482160575251444796112062463576564869785866352500225721527212670591397545438916922527403650233624651028404106188221048664565021660605396342579855761817390317607300687027695815394913220735502451479320357812634274274447237858994603884530495356006787608893614790720915999489810055429629960092344657903469495699279989124022719022835748435011706588501623046051378791066844827259997668346292245120282222686104288405383988573329442117540474961311458993921385031099920129500058102917717567169760735284256104473513169668255587435267288098939864890406341390171785489713392235987261047050015397127078748857684929881998177107562904568269175193039823875347800317741828178586836517874944336235398045971521169032690787989160592556401086897228483002819366795425057285826377331372525419371717841265797115383366565819741384475923075523493498504990159654332592128173811971113741520135598755827636987723875005684789627746713360320793333720879204712388699267071079808758464933987649674466355115991186430021456964030134069622437853099187057641408571415760800656774819623979161486669959866516418871926481831055432241015482258765473188339056050688889807171424229373319068536835578473498204992369715201543248546947203748412210860452653041533488645392407737126444203939238490411632870451977326621513261373254370855868906867141457427751897554533020772956652780755376781504588935901663364972817014023909639165199843003068361295101686042067247573387154090063705083415171741314222042403229594598299156969850543384400960666433822794138321863426828348928787610749332439527638279528758096432084611704186850202770164741414198958451563738368830887230765966217709164390462774344107973991522195159933538382077010723636442137935332222192403349655599976030099361941971194561615832276193946069320591375050206688811061626537571201420410580237079508078384971354376711123181319922837264904069868674797003759809173015652547903848622978081730513100023656482711213007584528679108839647306427392348560005333832698890597089082474683662841038380528306767513932285956102422527836898542878784909140524045692930453102219067985813665728516168236798370604588847615647509450068467228805949387800656216196890356075218803358485062350710665351184159222547183286064397033957925798973527048593823433152264046885063426046524250494770087188090436992681834028288434317909064533196504052528064465437342380367879223450277126659931769580773479491424645885888161568283867887764133503860512602191558950138401982287411873546731732976999916650614080334526895728952983941339297224398194265230173205228946871074015929957470976936781234677904392161225704909918795339388050594380921047320515994478750728859234988643555255829022854412127996013320848935572666116374175026672115356289015634248139819805571434042985494195638029406001890209850928376664036729457536981539923293725695735055488072673601099019715610617687520965634019724644772213064192287603598336433996990364258384974997594361434779138836346807544763337302364459298527494830060985297863896244704894848317980693094249410710732042863650362909834534525432187324477502837936482734379278772494847603490455461258312527290790202203172581621120315618574343809804372330913912147896590034796796366314462185847658445684037899201889767596902538693041473958110986210629903180769006677643133941421360405168080764685332537082175611394312965951114481438643421460231751102651363656739144028552047230545986760024807398085764566605410665366054519001043367903909240100373870666066036926596017564709017273256123752262821152926030690358285513167336569899570886232376437724102849635780220699309064661425754353397113036278558748423680156878806167696620895788196554101903423847234995000653800009998124820691798872897455868593723532244631857048375689645132768236489374169370397558746523680271505752400844282678394296726932475013437557533267958030419152137323859402641605444237673093369322557099522300367841193773292313156496765319187125472124289285093476184889827546855175778544036451850732222663524281737865593107647635630916731476868921635543586666569511957147584612708361768100795462961516811856456435734806085747880390681092109171350849224130750790402382598186924865874757744356274113058093222004049237888024326411721018847725312275817932930428435910958916766215145251199436647363306446580133962295429340386355966048684793068670532604279006284090177188948432293433711351585793135404827871825311539271579703575672150368387505421524404750065980396648396870047678785916330595145188558456374894172205783431122087616190705944421999147196012759245596810112684986464388936495478007909415677016552362565884742772584306250129071908829631342802243791099244759596466613975645471172951768992387337579289348784053170824809637590276971891978678614876433958498085502442535835232290272155271728748789082270755877368020397903167921997149820715173396262492800397392266242743635222652670999022047299728680801430269131769273446150587225514658437725608263673954670081857853569198787070455855887225006811781867028789095703291303686991671327481848919019759689541940293214439557262555261707627556096220755352351317547934895927662404218156639454222164340215064563764796354234497766752306302058013122229761018563740347694323841730809214423232841993551041727814471946774039910530538801009846928822228350293842930753288428852925143438825225424041521936938539449666967859858081321202748932245856974723912447608773932890502901047329364607950377963002890460519224112861161555821077487875880379582987490068766201468394368375437101685147783424361651773085564726534535384773963973226618157396537764815521766846301335744761356072289907090802631559025270639355160482853987361579989500445829333843098097333896306354672844472443424239354777835097485392361814147730813070847789576629724557107762518469107279224946180834466113853929946992345756958218901368159555250772895289586712454630272837889008630782722719052712280871036190222570765547171768534636106497979947688094468484133824850503783382679611496381402154288318466733133398066598271212812713621278080256889973173794993170610799526411256414015193384563876808321417647810834032451008889988968604466615280345523287092770145005762860598693947756278216052943266817205496224599555464371953328895624123917662293683335056683779309170155287735197350690385449791875141763071001744844892078077279577409622719423018347499473586481859852303991431579772740112452291955855511838695392899347654331426337867264379324071547239641297704266186907662559637910308248202082045350300278876542800027924589177115671033355160298587360901887271812866177129192192346493674722857906616327281264788941830117732742661280353033824252460824784521925737475776146448854850212395678422899703693697502351663199829154221969199600546414139277184036985602661385538059036648156498502397377452521044820783793540783642769963175044991630623890335513901986854292003063438267733821495972268428261161131121106143519059386565911871591163711305663945271402560896128472622503774436407632767909970552814715124046952265870918621685662284878686866667456783973815342439536307273127845383531724938638920282021644815323020153559064002633683739220314430570148077604575144802755247285379565824532326795485139048289827367562736232879185217830647910393235070868551961100775814591062656806920152175728823149027404741303444821560308959800719643103943735019648745398798948780566957509947034669108076405036526105217245336241462026710566618172201859092083969573066284732856213232949167096434238327721855462331478817867294115335438092206377912213491309163130368146292426158973746049569915578359196184274773345521528714775624980993910680728145811686802353285802705749516515746323925045533109200957276751031775493544324452447402096820794144869821978368118380117438425599843633655933230221799980274775463727386492721977441647000347807682681101362239391441495066462762191074022583076091403599346270291640446335392299615449433290797713936669607472156792651846266297514325918989950357703373789259318566640429252018366198548693543812449552348502721921142056250672973293779149840066984510969436299146497671076968174264145676613333016615568694336200508852882528113246006147389217787720609111215889774044564355754535441226342426406119444925238383964398357321723446992191415985982515285537095068458680433883178282358108674294325159049261670261011190607329030565210102146240876766937472851806814419224683356064586008481655866111360217421738907995977987486723559761898581413651634020692858687274967913531624893788074171190729137249126165885962489596367735220001474266196978620286321956186121608238944250638900546777488772329344279544622008209778213001735526844718091201341338492201949232836015790016931081318493387132390408407661078297225738536236660514779651943565844419632590947234627166842375249328305623595276110674140505764863145310379592395567961939704564881184254484135348067310751942695603815379505396738186095181651556120667880573088635208229600697834081811611053655106973446932234212834492978606542134306047479082243110509115666080850486795854814753905451777380480919302605843016058388014877260461214329488788518857247541405470823503477307094878594628208793296705041019990597659160227410749632596164442699519474915632914256458090727942635059762949149645543064847116993447565567301367580946021596293194758851285930829273575305165259817100314428670259734505808877961776830088504526474752971847362093583240001560716513627965945539476146104895356340679719594591559900324761774214034074890877327041207637807364674200120429148556220438983550095461331408399074667427917238141821840304361259480901234568865276648237475812468043719956143119418267772431574328863573272017996466521645455261640182986241835926354320206288821421896024925287996100844144480600819966841431035487357572758954668511693289071212139346979884531336687429234318364094802458092854113348343474063500399554055241575667745133273564857406625035739506851378586205854196518354171570653410060916729792915923538919128092396303220238500690144459810393504237530822051541311003456702124655599703674581943231683182511328015380654990726767505322453660011073652410336511913374787143193968086267645132761787336672083464606608519595848857185870662499785624214791428097665848305001071890344364173933464771151213334850810007903455926023805652195125338466516859739348056412355818707239026425200695663719988635988326883376275114042125688742730143901350957655355025004153693901348626573638454670471305461052565907950832470198011381720001509580740762821851245499675411833990934586993568025345980268767724033766179265844350412052869297913453829403703907856728398084945292124840405695657480539710172034205237382306212527186610410175767539639298779470177091796118951371897179306748360578039137242870596356295070709172063258218529127113905021324496724121680303910583843637920779454826316394027603079482772307750761729956639778128736705131053370638982771012070679478411874075458899962050518600206183450181179287297741035205879100858293111203412777900854979666528012838587987769039351150283115258402008940091194855811959225749832212661739313912777796899903239591536569020801174286750107947005617528901673105744313066016429374801942116943948599899409449350841424567544620200669720002617225258825516370687459913830433549564236858000229917389955507463337231437775531572669483844050691578951195358486052520413100798428766961216178228260457252540923950415653427977520166648599689622859333973473742421296702540708968259801992295521182555694318466973024717033203141789940883738899919898000129118218671804745066805304407669797921340310060362366226055528576726163015687546111251832328572875043947885833998798061582689669625148052053029546089208697310939661140560663682585103129030596936937104347820676996207668922589242612505900485633852023674929388425034262164434821882374115044780470853051320468153428499565187338846047652338954640285882977542360023614205846917669983983493419722716736431309322311005219061895885394228282147087252655722724647202788224971683577038538147086649275147084825260305470332922343773546523616702329299660289875530658607844657674982352809955057232284267092124777033452034301021770685723871157710056678022997792395777499464406476075570694328591891157489173935439849444818790388178107428350721442692987619499075091516695186098050077905993646401985873231244288639752281693586253726773850312610020956939327554584534909947350582703147094014232962436273453731703588219994231054193520428029303600952663184890863559798758954713666947890547181897792498234410274735626847760932553443446843275536598297605778874657061644063468166113391424926591802511940183995498864023342816579639976792178006733602130508962860848906410606103991122631753391595621535189220856060410783442304158986430429588282685808453638798760254105799307732159224196237870561447056618922542229395753633390192363020512179804447692485528919759191355908308550418326852035561350041152689961860467646888338293648898430680868669679823122192599701035590384085086291337001901110377336922182720806477134556775582247190549537615635009258942304579083653513392309381830921519675789427906703347701418713514939604162997713844859562622930018966864456097774434060095163480878935016276490943003234204593111378082985766798964800898834277862648860078727485463470499611388592637563189507810929025464689195471000093732193870050318989135348872399029250726996740147870751042377286483657271727079890976475130691345545021402245683615552716041630346379871999277821374396521400258027596832120007680400496972309532097769324807439687259243232656950077165652565622599875246355277748990614069541063633718260597648507795176444683627973830075004828368212537809559172176611151296683365623507027644050305732504622179488945545505060050808461293994938753451180217968273810036262000657177230470639011725332259502940711689517145478772104855467027874422280365368109876054418911981661147597300256952931597025338581824672297558731495475468465289586062716142998380967059435203624767919272568514160958685286276345308456376025819668213253892652863838723634145553080435359548383377254362081890252322296242800880274822966528669310038465752984892915451485487354274743696894947504163158316758363962393092195327447433972409970173900819666636395680524529271295035487026059089845635035940655943983935428527841323098808211444266032104108516778287531377076609069906732541708798132770927520261973667543331849305069545080269922133195459403255641065202857015523113914788153503974600417136371855265967676064727793339041561958243415731416932985268007472250657925503289175263904151083934373039616386748534997985173083027338534605898236192558017682821709561232705647152940672085863635777750729015589950644235188778773419930485040214094686167835549862639141575770198207582547068292623206852103088517519544767607700382464534893438919651312403628752102478517476752689884003738774719000332594036548348039670141567598308443443404019338672089260179768031543460484022982227174318962022141874459257230237651141495827203214834180194919663829104665511482207304532677867138253125338420079835363460265323401408300690831441107800561813777734578240652834116083372484748132196556764411920894905484290135563732485092875275986250435033287153757836130505436484900891028239613210851792021063661111881552273541957743433868545935088739167322479248582486098259279986169245581407996536803367155870445837676767167636252711368685396877586604019334165596914570060021641677003350577321615290767675994092426131886521708569703634313870288157862892081482266774247970507012117951986707256083094269444906856415227207553367917039756480393590509857057972035685195065240773179529545337018135739900600376253313664368843296281803422666210447440446374461869252176962452590304702047371878866392116648381620998381588195711922549453031225633373882727331513862901936124003775307993413162963446526375792615701893143884797610935665847693418794987830938237344381136477901881735105636650338976137077153093129279603575507667607123740567768919427337704603910423133458092730314430397634868605383986049123670478207336597799230121220158762410658000701199701482623011971055613155158084921445063570263934951008464626078652932865095309155670750727282766290354865222982196203324391669921268107504646671222003837037247179792900777066476784298493100296618793258167907305100572201411976505942621230048616180596208656411204399394834988123024444978550760895509772575989606440374553346302489303184578892988177516032879745796253615960200976968085340512310425135671491076355524430246672239181852969601813121001223759439572812482962101561943245737255721634005782723933971588916715379467637037883341271337440220520716809048983489452045186712681514532209528334166045907862780858331355152048500617991576283064565774547504871266967685136641372783895657101444776111796142739253252668927968248599836120090656501725642005781879678378782508280275359393058513984651857285809913979143320506367309391917327023012635949810146136223621957275477667732776669139940367220393313381814980084979939618694326314935321557659488740398375784406750772075590780968971439518382042588015709003976758501091366834017158303436774481759381608652639681595767160222158338325072439016432716608875982480943016473774509182311495779095626444574275386480524899045816030355023692841205407948268431359604127511988232615081976984918614937740950858589633457141176488259334462854431878995188904422764960403729800540232587372830291356757405940114948737628159618706705610463792618967132939242295584986846035717686560968995664001859758092079745757218455493357607602470556513184442072159329056682274925166697348289440153876595656545447036570438885651324577431698845731458382299133369000689432107712873470122468451264880471369378631870670990388807858224117629569266808949623157961571373724653444014584309629699335541996624367011164682360173817565677471639234807788627415119968507655024334048413254714679457215870787376692729308614871042392096136454097893399502746967030792290211199408527421916963504520775229456857405698773723665957993317201405836293569499087544284916658346474316620319325344411623651635913347281496193599418265289998728252171883501716610793996672210242592403816988399482754792702623323239405307808720041437936704721600314285897768383997043407925002368507730725295125034960237554002833717564895665129114294748033871153457300964156335363892293720455816347281005406962057551432717208845643684479185178008776476739995756081584705906945800482656577892933197206324104312269621064792984141908268705474595446049704199559279768363742123305663869800055220450173382698765328420923978504940067395181244442060252859185964835705749480103107513841170258021450731839949234797443820799268600785665021810502431358934703625080025607498502941949118094917526420803718896105071026887714924349364659675372868411235177419836777415005289128826421655346733993673002309193630948327317021485070241894382838712632669373390238436455635992034557449795077879015263336372855492997645124739326225596340944640120356575495930813482663004292384522760841599946413454985512076867333377416662295471953420419973886210405595896425840564799825794837185594955887248149143712437757747817723267223698458610061154063264859256675111336067104883365656895903196500849445616279599994569749130312323202652090011407115563865346172416594159565984950868903084316319640822067459297867773862300650830645558270012645949054650136522621028137772828020895996381130643820273053437352876183400522983795062988265881785618708874681690469037000439640108016423532857079192427241304675507872989392410936305050498486621875790797061108507014895110836185945969471494202415793142660830674218530401292172233146112127790660189458434640854423889003412610629811408086754193905243355422384668367990995493898866310382262168838547070605073874116420870701404908454191913478345545080577590034975693887604504524241118822688029719104042484169515152214572979403470480088176502990635856517583280639866505085651147031755299927281021853270129377120312841341758546681427450361270132097788442341177110536469987059459791263955253862654918449021698332610732091344936337991189981195679979811734680318859505669785380901542344489910664018237437034459611882172942598291746501859700282836186358633825347595665651811743221266861402905675040973913268066354213796268501862852678091083154146307086900264370451099130797931910701233244848921808267186708474899189087562384729517438406948770874174780524701501615206736854450738657699333449820000067011839619634097931905326996347038980094245624987355877340586823120591127747296587492723363440338682943019020874189516416431247766747881877369248673541895538936206862450980688127503453922899619372767912845191342415525334006883822232587252036039512917242630909400210480609254802014884754958184577444617842904779055810830638638225737445544840416926936821371956420084262941172059712001769559520512024081739322876539536434106134611419970569207857607953389542330726393382637930857740728240253618244388688455030150283522697130872789868082167778787112206288024863158022584964639549916252536605857487870769957907605370175587105098283149801427591913071667344085984851363724696561363187406640197259368457757150868119407184388694104397380870937998392849398131439851239272896676262626244373011391903898885451688910797455347624128808022687677604756788365834056461465674021955843439472752722208456099746952749139869862183503138809115489357565916999785680671395830191715962193156874828596302812343545035525652363431508856037579277176943768725281118560511955111074685187244648207574494141256683523687402537441914261199275122426003321789335814191073036159439660230215856634309992710228604540004843426125969364390591644334299842202190068647184241962720325438672621953893221897278762521222320734646893807384713687982238181645203782686990763344717325509934463201377431756969524068118400937044352780375720589415821375572492885373936617604100704584714901106393270152427924649817691495102395876143564000724299503109954714290075280943221957839583265685775514296635719972355808066616323625045824122180954799603372808479478362317093494673319792540581844398043253508836061740661320643795896685773452221830576813935891587074756628380434288026174970136260822454628928858165421688037971311965597997510019948120025318223322287605782697426987039317736599097215493612892571342818800253440582993057779486197350863609938126656082526687872787530872725624734669939349047807821784282247724486421435506252545886776417573110458270059019766441457556167599361548865572170371650009583803629855228623497243214181263319930787877214789368992968050222293746404127525119427390218438115153540467537671610373244167180023637475672837509060635204000063510996031326403935568848866142121638683551680595102807420799886787798446204812945719916380819960116781227583483837597947709522351726732921923859416864908587138452792216356377549605390021173598983967966890390906981530862316169382401033160080474927126824517354515845928920052822822671893578944981243706088873540648324433338633539319008475407426699547178171183688667164334865046872805015966409027592368336454738653184516221338304696536551953030457914717223770436220590319361407782735646220279558238845499143058348333655604663333744700364354019798741218487595571039182140909281782490292607343019644218827683535966584744856167450448959527946945456310958647905219853207949695363063566383626159251262806886130143954855049640604312356069833258564394314665897030856449388478645878841339446106206366938119259059046881096005575193900780403780250767621019375677711757900387015255469498037081374542749870687407342760216892355443679608581265085431196617759584796849311250681459447204073089936175705518201901047105993503977057954776666677372437967097651488516843494667905624244343395152636317448933318779378420680624718695429976030599660042562360914523788188444970328565506292845643511395682325394588747540759020198674468056326999459416264620047624078213625252892253173265534858715420519984142518134207598182392929091230135904270930269140258977599795543812226929332996124677819272017478997446992614589769646551997016794206096073717245480053872402944248173299871752416672877827636439873759957504311429565521240146520924744664227883838175237156330736272393747740987442907570035085143635728998850825425017040013283757876897813997264856468557964664796114223246087214755990525462301155710736727695793682886818078891740682518610974956974578473070950689899532405898079561414743667283615192568556664163760253450283668322898880131042348368449091253519665464931896331506634206010417587723367571398125643395303789778751692227289894636079042129995132339635287867206276643876821581452710964899264995876343117482907326770096691204974029905382380855454690351177687115994447720154684426714959490898859319407455839361970311910782434127650030656762237088732771546551641387122856138344646960290147581782728618835474883187741884375017582596759313877380574741940310723947037139304651680566101547940089076034257200674549402772411798938009246368898571481152098110766976777636993927207343632056199478948144653510563924168379653814607528034848652792218520349901183063626374314056440036679632486966887916034811048352421494898770858971609187783619058338810463922457331561097017879859404280162170251975381094151274840348223032336794713782255770985290062190769850026632898633550025758177884050334484854800219622835099366479032593291230030798427733020528434043643484028850386309569958782475163463427364511520216753816952687449673336611196554047611940347514564691847558959373223253908160161989207618361535252961055903758586453261035603842031818105502426582769509766920648954789789723107058229702564335240739253136594914535471347646642519010192875456384991053313318016161255492089751285237145824649619543912082285750674926512189242732142643125444666046353949601042424992069236451591186074718596216941293062375911950565307107216271791857095311532306650091110447559523519504337490131517009846110003085747953240456947912045103342350166312893863530790539087913745060712309177598646340088752773119249679177922549833468397681478339419701078688437494184671669368000038690963695117837500488712398846530286646892507606356372301061585977933908697901917357786827816543622905165949009865091582481068812508899046497218370020878914148823309368079809275854835750653104237920892329278769076415734492823986606171638597400461314028176114754219285396666790174073397009828181538015055890790298966627190413682081682311030093595757984145043711299420841497680591886199415396986444874171352541942648920558841835984328845600109378559760142597984414747979799471397588220879405183127062483643878588577816224125681009911477098151305062246307221738973194401293991912047322303862321469934152688462185582148738689232324331021188979634924604980582559891508597209281053812248901812147094529793566741986817751091328999301561571200872967911903245510825103440605650171637352369490514539049637691584090852239922105140997273950542340870011494119003036690468814372739436272450302275082266319856926418253651836792984210181109038863282279416186301627064544591590676382207233944262787254426838328897404865100257772533473654557337734293589198417364486342996694954998399799376397325477918702870252428543885353878732843453885170305918997617378472720079219576809477118022393613234557982773656466054490302876419945650670057974027961581365446009456921525966113627561387920608135381457676404485876731621869512028659341470665878881686837462113304591138343586520272426748925757275881783131673216929207294115928793650535302888371421679723829009960196479630837214066596139633858585480568569842134947835274292538606936834513713142858873968558364323283974267634605800754904249016815255105078950760849559270241418723474488138299674110484089307428156245183605957649358058708625247133208372320690377448001195290324258427453373555190979667140087573866092050228645378541621022784643787905936146585252431539433707596480157525988652463563675531662612030942930911981472610897929949192308077525869217312552582205167066032123152497371606800937879576371865463807200536376316736780771805726196577636020437508451336180453020954394072396880647160396047370270281542811886765040771150361382052542951425325812371292001119476421102626044160226180301886162249878341027276358838813362220403253832804901902541814421442369731693211822535035049247488046269207074548142043320025397239033290540453737416948290796501122131542892374719665515470316801465646883451525006889278415813212576378755389663613935250027850964988457111475471124886168776794653359594153157381359771317766004191465075492508702894725915084499864921806232930486712695563815387647156330525908272389799209749362395587494328339658655887559693997455716413394277319252272795883832965020814473288156199628763691982345051402514592310590090301645606818666230733817305843595147433432151729153468411768633143488289334151840928438562630579565558443566513480537789065960334298690103608060370481753714959667135319008046039353927756331640035603573291676444243594411549040126957174933200819411319309913983473605552494410444848609370535360190965609156209273804887589796372200196350106601606720396433714309060735420282651050025582180997981913051531415080817366585061464035707347918223831236267067189976443395261650169988631037388603480805313833518037960411812241163779697616807819674953923211110313075635255519128799430911032716028843038839196797198049269224961026856480790341749629580881472224960415475220790768012491746645866527719068316652990344915945739468463415289805211514605785796676814514232948986672069316171556402260434680531284119650195299766274554197696934210675598380140115390459989358585883342493694383369910420562824210122139855084359655196868170168245580831552442175260816865348078980213183553200002869122369074141602942427730223156093118203254425445778641106094017853881615208065221656745391236388197257615947222789546844666223728703459718117267545962963710012414399186558704243291572341658962408567641456480861663420196397227529681251386517175137323333116123848179791607216449679421733130707109067390380449959521628592510029446987679146469520600434805390489550036632506972862544232548675630872874774301787775421039271115708062798997658358480319168310495502120280185907584158958006980706518542468280046268133205607586875995296233767384986902170231005968427532739981084448999720223941012817421188385022239200935049249176540709826302786696149356352288341913843111631065192980831651808711793923070564041405756470391296415344096614439994885843697166883174930029058587236622932697516057811322686693628199200119813981527721943286372306667190156375661993442350455214767233362907013096810907779493590773618705510445162652019495529893080832933889008105399257852773995111665448004706885967791831864066488739457091574564836884153378556232246694218097601592268287193145679094358192815123197416183402071751868949104575710952553142378407829877673471826565171976014028239310874904334667065463715374445834623772386950932992670493686326909314491465493821291668116172880000107527222425817947755416066621362201527962072670951940662660788521143162726064970835965159277496040486042110210737023310677889340738440842952962214049077387207300127905238447059122993739845315220130247639519781616942466017566830191806542232853672157016671659426463343793726549180459196982592617265072844984180557509406583500529489707302832115637697988005970745546443278168342734328306448794896036229697372798668763542455089542083233849167763018801360989520883753240441601139819163453182088422989854077860826633682862532949972089294118591970450830632915853734424943429793086864025464728235465686777197507068254154710121435506595628209829514302814683503679451777648124633352611532194519146662155735998754641347218578180050971594131457570042783051255171495339527074453360803191577974801684689522748885452932216109391639905763415350038042795164987456881731643320140286590001333197869323300772620429850294643596756639927926517303292458683486513880314500773367215209135275774792435105011377377286639162015240531711322200149202729226065823984298899930997748646913313154054796552097158677037149965880739688997553756928029678273684819884730531353105634682226924528355609342021010204400332463209400089281618041845703219012011573336311204801120441355161958734478554507988513326728950329085738157142688273545942134103389634737720589017213085052296649374505544638906377320811197866719364283464392950695375334319965364969158915741695525813856865898961434527061138398148840467616401572533299855756116003052556194940831730129248449646701954602075319840757652587578590984169545082731088750538033629923861348658107476277522620399909607164983497917850306699005777789425394768103904220920625615835442799495368261001067723676929863927776506796676647210704735318639383647644166991044037746408955546366747496834908245029379416665642769144915751115423288412416582300177706382217009556193517207592734511058330004327981933465766621087115084130290393698072496332953645457888079275376444930428350669319328551846125593064528109431479580304640211118182074251161750901432046376732329431077992963502111868860315571717624653868667460120658300767197055855161862760299504914239996669648593542886755556758173318353456618722683537029166552716674485543757347874917611437053837454231217005710333506061598729994322286237758154492220690182055225354266652474889819961337948706074613483106491927579296468297129221434758673573979871981540442005836934633516095483854782630927351431787938812930356921418520713699808701794676413517591692768449542359522224714059336248473307579796389169424778336724638176724396412401708043622826831072240384818835445585236946647405687518394410581571800346165421587222061566672722962453909906151464370974637655799003689636166908042493196544101733845567562271307747654480868052734073517775133386794905336474847710050660720369209846152958706838788062204299190047891026167604856856353146709686971678719607156206580154610854831352219726304380346743471294954922362597964131505541324650984892743671086646100101589462269035643243135349257350139714694095423647587109267011896016072772056554807948772449386139866349074540777452229177118994716895130494876719848347987412127536705051830451399891461177231834209052752244324108501416625083754972862160531105824084377420599598033040321234541198828630035237575283107911043137999831272578309771961610529924795550528434636453409836474288008206604601720593238225865985975956843083525219908692127042148872917483620467531066748089974472141076141604665470531785930561120618067209340886250457006205367702731149342543616531305143527499469855539043954057479939996885235284818074198229156466146940492867328804591692988502418525778782495518978702531151936436319296197136236200101906170677201247166360380295078896265705912241211161528556127031315381557925900354227859665978399083690341938253375671626787896995799592299978205481182713557129804678594775220711976233968405428072257991556353352596577203967777049458918599716073795907188025022304188045539575225192132231484764105016062918497576092834716234884968705273915918004410951096119977496805342125965355493913578402538590107430571686693701349997508982194995589184112442971123166084659136340622156813800014830232115050954214153445625627239401518682865947125651318418242697323365487345403372017902436229960568768515542600626279139486310128523262953791486781336705225106304696790602104801469641610356166092960215218694295349353525590995839848645746376943692598182364526192510589417490551658786946228542813618311122689981054699397064599679586362620336484040699499808360233034980438469216469253728945944041420502319100067992972488223272259059799524705583645202056983829301300083660545053472954246462971336269636999242992357420055308004689843607602466865409916146202618216552251659585136380041664268143077522846606307522080434297197524606347991417402334917626407713889330212698055792500462135683992188393968728275638409747289513956250500973222331747507618519470908242523591505405993138379806843000609845699868212518096732466601826295176769748128405785646216839945369323471333640352749135774076305376079573813970824933389168007576887984217133247406433026362349321616946500641802345637372658701509559530027103468659161068896907136156403893208087693482884612990028392411699056146548383685874371670021857523910672864467376278022738390384265023812581385124817701384730528500430799598469996496273639038056553792401955347894678435724796734649173444753662729174032471244020697549516356903724579129023169744224771929663499496907521674002971394889754095063055038395679787768424343832136453225594893248613458786064449161684057374230933052489281786906295463259148317073187626088058808394279301602395762800459877184095141602941779873951281595648763413710561728100073041661504170827373947137898504203114276737316485190198567484553128853369467122461283945763876219160332913595331286682688045930204663336922784338629563761782226405832216578314168335452994077161472501721499546394089035290795270116504375234791941200682421008356014812643679433990683780722184364304270110097838448118136942643006252944400429796970633736221705470882310557460816120436316027195031793604024633187648498223079128299003403211880192372539428623472206733847817773342799535280605721000499846501024352127341683086281907603052694916346542757847248042971660303730837729487767150753845143413139845282617060924414685581588311872531183873269536525287531491429348517850030600780638035533006338575177341263010287008333557120034201134019562740963829271847319855845316177995323166628001087195297018476877898985215720492718448159246512274559505660248491123812803394275572284609428382399151096144071299506057543971155441713138846088519410149227471900822617989734267699513695246513134089760516460715874114843203213451742154533349104898298839610567300655593281669999296649994581165825943545074670422724926210593414035651686533470549102228339864615942352125059436786878279341563586989361881226376141408141274233694838027541991852353045784026717507543801271296018251753763959579693388976811445493280043467226137861614316949202275843558002478914239050993566918622321230726166834094934280890025554621126801390207523739677868743272442933065382244197459452878314218165652751531783859058821044267784491865576773468521181360518696251158761250353881607460438242153193604246539876653623078632948628739650848421398657319176692658590416868201985825642868781827713303545561600064138976320498595311297966371411118789000749809129556971812403686010464882904388688827730935583302759088459303889831060122850777487481728399916273225195626121234151000838979480553761065098591007909634780678713041369331014061792093436751271917766825438480978634475742673297875105651617195603199738582289152736162973423248545007129384347687405260532119472747121374930521529880117724058239838715252948906120904031317493481460155673725901433472048514530967869792571026487645704482080294262538024556043543348170358168652706583864749768464037971828121829421839391760857313729800664601065654857778182919348063057429067980512903531902375411105672488204035393543527488824982533515220201487374336757692766537669392943552781593983933440841063872501349409099213368042028075687976037930337496859134410009559030820539780987796864259992045521717315000361257021190368936052340190860568100456440692428657939743145041216674906907806832952033714849219942264259524419104322529905605646510745826102096291692322782241412647228487659229107092178687889931703276379301092149295856365913901450391059085428457750503901490004693068105232708432064831158622353758812509470225318226042759988181259841912578476779455237151152053527043703462807885701233063048419032042058241808541107558168291885653202157066601640644700086739357675733098006840975120620817772301820263450506819441194560982382769557081207420590974781756041366796120623196308908621646597274202317900585718142008543936214307281879448107249325716676988275001173669636745356106300699878700479078989905178611726159160546568876519145768074404317475358170634717942861934128966571174051614182519364975911812667808498182799419565377528320757090473176242731571916859691065716799468865716329615315602949571380799013533784927173021595045303093472126351774536587172738392986377907997060649614199273914311009033136517978935749627614076726635656556378539851450669115262428180939774594024591651580326058673516255736461757451180486804550317386098561026083686420008486399127670258743445059612933661911075231210554099954410524560378964098644568477947065150342924837488061868799649853954316178004721752166874974282737867405970304290335029070128706495866654540126678196969538223242499788045608195978261875803829971141318643497238144158995949465853375566170759466618743378118308392625817784185093014026011089214769067481579764075030989776109039360585405323485422307795549372145598077100484640720311682288385911664563931886728216994468229063250021368283007629943922874932046020032381895389800812534083761061947904870421585020000747037109748505358884516393500130405638925094603284383479652238655770736259968417665076547317176813516772432860244905054714735977037819245298202485045522885810296621998308194162215715401619719233050981179705695344262005627181322936294674622759578910315004761457685605935453995010947573009562383673417297227237593870610325851595474718327495102665756163978457484063677157644769380735046667310115323059602292519644603865423936836212954477149427742656199163121564326802873172111953087723469600338649192617118826695227877111352110476842956085239433612544060676991081312885911940964012978140225911920033212604887298279148354684847135032766697043742614453091140696928600011359823489157400366415914031420044445126857765847237756473723925948984029698957412483531553274819117365277692801276151606711377035854362614000830596854116819430064127853490517879470752500121060078113368661068864802356814301889263554831979873770654135269483539348864641360005700284252604895916075694529794007822493625111080060811032791998620430420301308810648874935009930263833539324109342589987686547227604170138985716159352102891685720911389704273123569623212511560684164244293488870166552313421191477938813818239504621390457287159510441226425739282505385335646806650069945883823536407155941682066801984966456668901228489998345278988958642835624748017038944750963583560581340824568909284918557636594941695362738943601838851065127421303098637743848396446967796979052219716249640704453258857343985333603269251439076137552042922028031731984508635780893588306343764791619866955236352980140599547248554266354300120185854120744701187273234236131078771500648295147317643254625636595481395409859440077795715517611178509035777709543597379758180881970163568641896067250644306618561395428419389281115994441956389276139039264479604496600347693279898740467576431529070640250232132040130446812523155107230333693428010386848809234665552452514340344616050702404479034611947763175684053071622262469260164746845349189419846750672709637621191570766880463249128243326588667560659634408705117940323575392666398848048734296254272245848721733915345242538383727148101378341027140355016833171150815647458891949146993027871072238185529696535123634081865135409561426164412554687755841026621442052288333295548537520367084263186500976600638703045935535073606747873702642263892043597476502822995124561549878317520771320854229531176557459955569914148780206644255547612547569662723910780142375389381770783076677068285876117453482780547815316700054410687568612920552290393830192698559622899979454773964228873767139915451014178592831308211725712020652093088247528297262858237867054353724196454113709146206830348777406046347433862638033366504585263506062195250977213713711736534009179912119726111019691136310661413341084582259565710773923541857163301174690769907760196770440710465588598015803130275053869778899828825636988273545494401570221983509995714294876536086872713141216564726900470739225689321077168760945547034222806906322014364399866198817551755850641426684532429708181138940997949194332241930763273250127229615107131871657374159270158799928221948999179872884553158887386836053127075456585727449911406632073562315305258462948704497171914432425444568841164660548325489203704724686136871350813315286808717248437665244189418788713287236708730017906807092340446161117448343913142705976916694114270449066703997695227601441075100225632683203268479968810781674582422220692297822692218558612109454603123686502718991677493047303006223571553476740797825902609742081442146231009569627818265526886634346738620652390474564595848923749893917097979755479853202406920169472934315720673997299056309468268990331378842059187241622348065125860586818538741177960995650078836603943174202314970850759211289245644480698211678922127212176505193631791377631416683827381336097523930661560618846767398688387548570810496713355228199966188409824749558595614890597011717768778476955524965763883250907552963364029836488069606852846410483424205694437251902631482196109288792422350638363573846723956752657977995391719039501938936653220893582512736682520691210287158777685129245184906807670346296740110971046511983703808351072230195748589534153594590522351309109301405756866496385458162957004093764762803926505141970513864414809072940646739601251533459105434953630439105805012613265022536266150343503108539314263387320696770950045214395573415749443446291949718371677865009960158288392647826641816221570677418057104007614624812028685077766287794299874783322305610175145553789820698592577135186382674918045937112463456117235965264945589751035763088445684769132449302642969526637483036465565619399706067439368962018911874889319379077455228677907671180692018866860225517574058280870646483989485533845578750204594169399546043551455731402468348547734208617648485574212054533688013024643745169424278596799796645176152398897455573292284533132131624002976574939749015011838228398558953669775423036785835857524493174489557021068561877102475059121141696813519164585946298638737000607919601690023516747525587880535164497111795493077385579131202086944200234756633869505425286962555543778552970269126060955555942789174917850552626207443604701330026771889446663557482648997869813330879460541431948133160900852851512326624709863782494727832086725430364500204905105403233606284291665064076248802581677944579674710285361079305554245688982207797369408716942021380402764308366457824329902581173480440944527191494691636232065138036541992726772528834520193063616149995745299650005845066465972473656443544925926893051363893005666544921958071680900266998526882412091459025508949010640610819353435958722380037689150000094113660485732009618152976525692022737649041952755258290422687569617235099618814441187766109703262592513423458004167015116310929921931335295697354956122410502355148347139824186006741142215254582728296892537232526222241334061318003538644769692040246802864428928472537711096840284650200081494120324383445163920524924880940887823304416792391740259101539969219733257360630545155027327313473400060848565165671141669091741188203960481569642375298754659931415673761538614857160346761250385753489859710287619702784588178308143375607169544382396971710503460164683136349972097446896263664258775891638663785060128653096736428125337723093213112264200584441418714576066664132683900475984828667020971034719091460134585108877870352101718103778618117206658167200498928123095090148370541495779409062909374368357189995537833495284547860727884028147568456713665391827818722371958624853351542079398490558763614411985030434881672950856466260792407796701191554603569706139032680067247943717055033175246300344179850161799882752448502001815765752710065623800374283547555829505150250714472671645267096182442398329341773734510511796345545095430405926117626919616642306045751652789258305555320971117480854468694212626116985410677877966865671596630737023773801375182997024038585344002124435371742200557046452392363428662121114375314405469978607795983475142206034934371708665339968784227191397780742128734627303619205745485248861751668403875915391344925947382046673989403524003184919655180387871614861909406047828937798814441198788810406400874432732280024200614021426472077597550851096250332416441154314428775462884312133446075606951835877798952684648783860990606106591627678810082624332538703984039096372656435649740293176338366111074025686734875211515454101176371448684452490405155771103428473206318789984988048309922093609032504145961409719492362770363862857807697949767776513620386174231999405684060198009004267657940212059954007703005368033850877790226627632628685350333694091613071347431885212731804243496626747180831941510183016863066496269825595998332374731880280449962748653637799677965202096681045500287842010577626317998996313758715938851162803583285816547080835240789831779188792421264089922446570755988716992134796171109931004531236885980036315827624055329633866335902597754315885172811656053327904901742105027847396176662440196706694843532710013325950419996091985264906475517993733248587598124789262937284205242207890170222094710949406803268837659205370054281665925681708705476502299206285611226707090337217447084461080017370096562880375406431495158633548892155458900212237766812052429476746833906451348750901063229621496379662145614483293268821009466526559854795657256543178757614434852673363219353503625027421473024561607395515564644804900580075428807405363485860879810064995827377374441211038745408405870035174016904995610824875428252222743410781038051448002861695628540212031279000469965322791939705196786391939475440712923373185459716277712964357396937814395008900394015145771959415532029404711865079205674603441400000088151940863752955888817036231469888193210564479740666305261130373843233239284655703100478268645534059994209660125391512267811103723238217235494286515945171220495892220979913179986348703400983505166372947964598861672419430004645903352644024575966235833086661216128282051982920150859170821501774155274202747100880785110996225840843870832986591068580825881374215966608215195969136760217471233004782525162062765751393232845360062982676881063366864432041429425353837916504820769485323708166124048937950386351253448919844803158884032084559584044184235320394487646180861086109504474550355760146076564460168483502645998615069944174309182371883572876199485597750777234555216612398316956089744377351547026421135381231444359111016975638843245752384948457372495362035292120779368247637839925641587642220618935763823618145953156007046870318328266055765570845367326164130071696918737152914111845072623370047826761619865583252777860848637223036547037573639523015035538717259840883706806826825001149835259573362028024547870866651167528715600549074091404005374355867108924490520816971791753416830751341447831009814358284129965900305208680789119658201908452769078373131408865445332280481025592076543653023617212374625011586726252398711237583438930966597659313532716218857032469233338661341005470098131222400917589460621723403209910121512090949677894268322026184366550974736187254488226990918628337033931611618304603013832316450682336668391903770770607705448414652361890395750594580222624922151451079583961090678146222711324814391726573218451884439742931439284422325996583552373577775262823271841864386764571084511969831273374233393834070448091802759263992682003910471012944837780667646172271203184257272124448127786165595061505005634299720293653771863418811544367344037244213486862125967796682777232552074061006609777643093604259003387729797140063324698316310005044287508469164442643124880153746527268605454740317526409569158204518505575687728272206098113073811908796434315555265973601510200393943050626046254582508255529627090609338344347897722074738953689444562140409280629154659891067740311871575682852545353423864553163569647676676069228367309569058626743891464617606008484382263802635365329952723676705966193190405337377444926381626816158206089440002087104867910258529690308209751709191335562569736029929617470938420424070415006406908281386080175397561283269775189593978372924976352232632516195655947351050595749014081713584936529620140147120972266888412439395012289456375656751394945281392365316145195911172383394061007252650415104301667320062855162194536132156203445047172666903633898769260492571061300477285672292897177801034906871429125111706699645867325264859114371733220244870676199368060482063728929735594844205677685736578335483050656863719210026940230529605126137056306097853497226247303734096581406237777594479022045034654055486518741349382390878381030579105863839688706722026217984400313672358815647695967816978485152819555882008453842069078125253982572949420317298995272976321582564883655158159654263647048029745452037901940371130486355557841738933078134503890070387214432949165235279198171941559132870101597947555196266486177327145268444998998053260448104847948557843460993935097429643126650066840174165665820640694826968502788098895685350658003513265525274115357952782204196879540352083008499012918007862084158660489260379573380267749660732278279686079940631963995724521210970619918519713776170171369013175253985710454109669511137828516445254957113701688067732112136181169070841867227115199094662260309308047762703133284956748541945662203965309908036366841039133778946352860958183452682137870780662091977768491091254948029928615934322913989250357819494663959912587707225590515683983704400331338387877148131802043225637570135901256833762037459653940932078136910662382079942351641877649813121767157379691519243359852951671499240951795292405406736866391215058337483020171926833464577631172338100319268411415327379831428790771003930902533398049404589904438787599776393147566315998764992809329989153249997188682382575156679479042769527291409680202980353813862912575997685432092353437254301809186259602865962903812711824788115680266507252244955569886138926457619539046154210721050296425079938175884037901979385587860789518352096935265728241870226871710424449992332455942332024908024797860404577725743174288438061568642421828916120526109225845132450832154944198338550269391743469203390835845536119344458205144570133924376883156139114208576787160541753158122829215499200221293367177137440396775645866776544753505916621186172624727504997956564924133003566719303439408455793394112240959480533008025272905652508189130065456018819834362263752102391287506564572093655642340043580875390966976516673909567431017365921178824502127347571674832047895936012151884545857462062274846987950790325040733704194737385512599738552323929066190965372301701939364842248503884832905314184226497972566335618446650143383302990798142281716532398095341690245202882921313083698705799327987989117237007471754334919883428795802359390948941031377652508878822609345918965935725114634129340018758513797046269643751133257591980595716041365006125378996037622398490025052971413332038840240610919874166944445027215040714202327066292687966799216931322525126711659491521723320954845556824333811428857214497033440327436100188693144675156759562304411246267006610433198677006897993903006966389565599816535749324623957198146469036874685349839632100860463024026506134259772664738181904075828818448412621643031357511670320087627565820916863600939380905228423637945521311566749257423262908106838307478173087978884148853280165700231984087875025583620270195906651615681478506057134603429470204935819844489269489021123920648519571616377132034862453406490933046732777479972192045922169501663846354892924864553999753258750312841019426597443776868971686679041412267333969312968890479813614179625388980523001438149574039512120752719272787373045999199159389184681047507356386911771071168995346898903469592428414052466905018544557917611285906786089494631924499493283613162061232839481375494734506734940037909470443721430969959777083829382796387687460367424418448538872313796740283071903223805084728237945049472317469157230885099613319238451385534316822968440347485505969880545232392515482445134916096658166755205512260565730128853098294094843774452839429452196305084048762234451689484807491295560849174267549548891297541023799823073543044234323463610691568428336148392947685860232301221634526299978901766587959485016423509606623543429759687883266104216563392843592107990279881849003825508822434035177627558904168380033930864088567404473907920010033314798543074374454778444109093610938171836581105698907181937732043039476466861107354647955257552630309375906107961724695369436498177763057984799278067961247377613559102350748824973402422964749275121026648539418231054298291044795812069112545534451057413974643622598776519509354192235101023450734173090810743014392038644355871553421316049716225411438229043886787634338360685151824323750623038364357685446059942464148480151517671442510747995711637139200484619079050142545029698790604102947156429166381375373322256083763736757209310624140923160489373182243650183773501588100492564141121076913309000709920607759537242312426925137600045686251910838323703335062252045927641583170487988664251675071704619073773531646029418087823637086339587898033224429807482186102161275020894640532231721483162881604434524518790496456794321092201311976891541092587150533292215128331596224037381476521132852434612448390601161011094284400421245726088706049198000507647531415613188539406154442633449214187892024363441936312857740448397620869693745144742603653398181983320022021596298325480998271357326681884734352665627337064291135018965355977154348244749720048330049315300405520329036635575805829689727005596867963682761587634228500663500561544437694638320450602501823763028958065948758366303626747680957286372620542886726214210254217997508921209669229009778201019378735448047563554646083633899346754548965739400779894296408961577643257308878130793814469876599235935684558325607188371417077670297698807374331019638403292891311747677680053252121614346576950159231504953410523692715692390950334160640485896564106556082012308276407147424291140048451001175086269683328467029946002444309725046190689683540102144075329517710666476862826618649722114792606420252261858827922436881035372199256958676195328910454158161603113926518182812693763785729545334434430918483522922895360603177744466196221986377647978401638537570319918697648993180165516724768228905777008984405476940553920907232226906331939666100491627859440819976372148210227179504263078926044662159707615247930778406847782940331102490759875009100184731803287966232277715913625162467444733976257187118678472686117781202972216191077763741614693040161264488571066735944380316991699913672114394020830515993897222850939015457208409151428467140182757458666106729445877775122349036813971215295141795320589656085773784966704763987303193580426847076189708663258534928493304239602976012543506909864280285938045113360821198582469669534680515555621609615713557979957772412071122695273132582681342803902069458369514627544304861367144507247678513001499244083431139681028950585064414862285775106023534138251959925731462563365025603462265083072013969383809075820935358331624700229199430198018634314009061020716893918587153069197590301617693265965721783384687263916800628157856867676540891062777329941522362324415356255348288823714450886113147673755485487674881098124689076683300226472971714429581927035796073734807966772519702764583346036358144072296207666826224883721750888611500477467831510391560125862577864388572927289990481042579376317603171964908177670040860922691524295412332945970036007949192877315315371906430392160692703136995751174934865233188516318494757655424774412114090688130306007246926274082544106149517732943457216071343142493520021793705323465178775086787841027035596143342588937433114757329170942538343628862074556304100708924433367909782523855458550250775158602478296625395024984749017776088894579272250874756489920092697855349180232329731834066079890842054446387523637754632053241395471133556420820075706963247002089667419891342992700360803939907886942691643571469911803124432339809273069129602271669108869858235274146317808871709075420344451867119868548437728230254627437185346376549288357171755792742601456890539239660044619465954641301982799122143198576247091437901368677588585778804080574364276070240151662454103107359074713030822349908473762924032082434333188324703698869899614254978049116944314893561292117723001301227856190493232781841908187719985223453659205298232065327673582569442037416117302333831468838745890801672660354272067117283631049277029311716580967380887438083232711018240797722872524845398935434893952572527654127200673015384114102950468182385504287493718655594264900162063886958039985073411394078462056894365008733165354345293603029551953784270961886632290431580539024759202953915678634327500322463989177838648350069000184658801468003254598066749178980755465182954399444418325598885390757558907581657709314554674626298714538719515632028753490516767792938753398747601238471485283194850261476185104905898524279907420114315889097041723637866856938542856962745657493000538755840454137400146493697411480375318351815968618718992335725058024544501289649810081402445807811567202084274367580487874779826227832544768840768059723159808289701256584786742430634798174512287650776539076003796154535540624866933501931568028714994394916654481585331313553377840607376981754360587367453314313703196785322744217454948335033215318201620083398172306490295175152809598167211770358451573484946698477753560146834868195382785461986206365644654374421778437877609643835046722101437771615072687533088132973729102559424516602736946502880132003633532033420593759050429862991458129570048983068919506053368879939335731025452789432327331886239569533698981814288402095703601494426437666890551878360200215370632738528648940904379544456288049790036241376723738862537291024585686162954255519630222522617858677747160351311355024577344270862668542161551053065634953596916650280704058422085504985447719164080032887765916803971848049385306331821844194278753369703434493463151433901966160663561601049437079949625042279153308452395075919243904977565656023887822449427398159472766119401306131015371778020618924355185526278397960178687489404335184354749499162150573304292570766178946978773856201808468334103033475952741480202817225443465707995150473968383165730399017794225078428295385196243673433129807245889317799535341535106015317608946371059901644027739277895652590980376495456203872812566611333514508114178209114677908583273673872767432314074390104522392881735897785370996769775661298713658747883854868363582941646663110181803175709137606337311420524403421728640005157523946982238350732289443673074870201456766160196074506418750245824446968830480546067899731864098674179562041577806699080676292186418109246979614778262728696642322321771734172807407275711209363892135827898632290635390520592400756558304385560664816656512347567609347333408629286514081647663980784752978291390012600742940086433773813605175549591958107883184268093953572337301834782987459653971501752950203387992146056809422443195243845055677627956911560483902112423268500670900157200939175695982752288260350748242072133646128075170460357935365423901662033512490671465356521491290297399731397406830441686041708526302523070854655499037432293842281591482884721262887112604320770745776210545035682043970680659604703528344320913955228983956597515858627664558669343702187004773279129389674850879326280356872392752895649070966181552490452892194289821922670647681367460544821918553609050232754533935439087490774405735382967997068317251961238806549805728067496370040064905005401626154011928326852516832359194797504813084669808567085192435556267728235647965995219562181809902805607416359104572854060609668754690790920307263890777499677088496904664343539075425049321188326494353868907387625888395230116556400213380291787489141144072066914933444686550968482469076096197796915848905116247351500262814645460088482525445176694046535273707049589366231893176135397065353902647804287025158506387310038712473221565514640952662054214704085211415166436532287239798779433632408618362699028201945851743346665596125048408855145310143128659359148828237847101666826399945894963108198418876357332269638503973082862284158675201523282843094282718308438678832850886982623031095864832912090603071778754334419789278600627495811175149983707997218655066310755053482582749403362404198315093384610066225980117592025192983175942998047275571584997276564983435773408208129172489252048026467680951514533283236263705789615457770106830826950191794022924188081970917231399809964755978386590494706963968147458532636679065522620642321906284981062920799564811287525797249831772055332182396906509907563803472946575836630990703186198474372096195544292488587255841560569938433943163123244772617427199594940032026691804977025147309721657040146404232056049453020009435980801116238278181795565884070170245664544811268962202521271229630623556554369341479626862688129829252367073761026266907220291434277455235672772068977203269861936551313914080569340049043103070683338966996298673097223149524244767687342078642348930614601778132280620540120444364785643312196479978440386194268342176561477385637719285568255423097975386311880505205411946124745975739397782924473801534835504397411078646924170261242884150245352257724093455869453113592748274517677308949768446435964283374495610036387456458585584951413539425848868853944523218148948681354278430310797284653176698102586934236911677076542204306072807732582481436896371899145319218638531824569322009796925785099003237060610391931438667154051445800457304311935323236301065761249358019470818509267829746537632965456095911695138980555308288536998462723057395781956771615624782633673308080616417326719670457541089355918084331145397126949576409937365337098653222780359574450969870565331860353134198508601047154909859873582551353722175896481494378817787995672547011618186035144980819518125532912273635500980270204877887091986684445485598213742878763181411754833501271747641085024191918004642421059911798263264557038026203089309634297359782493359099451928744095580635565127905558878507284816774025449998928158053075391619082850127432800188870289134392994508279452965182353436763157068822422361867660980148655303556168572595387250286379571462067048879158903774347158486108041031562919501879603524832389569864803273762257368609832290445107157006194906169259222469707359001890515888825265428430635145428290925554312638019488881673687734957908930522918559837684282826158532431054663173927565526013068726209741810843903125030241993266091840945159418615541206246462031681263050972712589997692765682421204719702398785730826587624002538604787945732364804646518177139662347792910436265937189771476407209590347805461889491087182381424850523271538911398442226345513968671618371319834117258805473478418695931578881765245767397202470611506620313893270295937102010436210179422837392452763462008030712571839120913499116054304622731140637602472355158781171788641999225561987007497354083305717753326676322199499179282177150172688286589102509834993299924833322197394456961657560707893877919704331580051949911376732587917213504612078464172666700141765901606901338971840213161452912363587133379937024901880764430288879975702026118768947395530145577601416919104116528819497280535321391705979859901193279115722343681916416239505354850771634187535623411837781928044113828325252822652166057105727357532237411274625812124697623843369258197375622690868215232884297035094466846945112435846542814008441083990318894620666854171679637556676087409262422530027169402437778626681312319901399479640528784340561597136202444062355035141307593256756179514308642950395676305654517941549176532441154774421006210920552223097517383522911808319599458216804430954451003464262694078941970699939041221505889955983715621192185187395240604155266140843130140892464579680772892502525354726754629266495792883502594340016145005318509984119259084538601300646164765700341025542340724541830882762276570527323336368934780824821875450656094456154547583741283284441710185714157312916199689193516346604172311701644748951545048883964270482995869305136842550333757183552372865850106058321956768452010308321040997915013970151540125920983538382632735170659302594840912643675346954264571643651628199303116025547411042464423195652482223538414475618918939714406153131685058681363656082937990553657742947054243183707248613818663667718938228873170515775669469687270991721148992529353068737893981948741963672178847556236022307985907246962532497496578812099839338226963191823783883102401231941974861070851067311592436863593829473146102757993250423968604286121439429333196067444641326758472511825968728170608245290654043328224528967559702868915654856882881305183167028649303831246930820074719805171602022670588287424634182304129176148494086070314198759365006734096293455711641816530341699124569700203799231794600033777244392748302030735419631220959994471883260788012024573584760617706529732812042436798704448344703287998501467467059609536642304571036026479907472071816095341684319668185806410705743007826484245715826804913063879401177384494897062094144761292950397876527257923409682791822776175287940981221132378226841395105500594711748529687845284611644021866506415820428386550462672996889896577633949626077043977044414535582962650451433707268780324923719239822565496477185882055292384581580169879802947270258518552639600367604339227153883489484933506147409459593274878241761757787397822527209202696604303913968524088187268192225068878437145272796699853814224439115106584687613344430884268706668824742339366293029638638254292393481718526986366118619888285591795807618058400046787605731345280517726129849756962672623583653943919380009457633497358036151918494863648144011826896589654233816854694951728882936448600028611373426625589339175972138355194140144318612247568047971604527955229637760954707594051313290816036212385122956425818525233511176038204480090172033297527286729272076490618001719216711251993178729352985143267747066894691057937947845661272340584319392857133370006592105916542174562252659718371323987099484464840545846876687130455249313949022972011723372444909129063435057221148428691971923454008502466535556646514080107923924594320576079819554620661238222639146814117300354353629227566119548785478095381261221147151413840824258004150933108366888150420178435102740162964743768443777232646744674619798362525470698530783003578289556711570614819501238110120323599277483917161627534336546822554360250790947379579439443254564616087062090505527261638959194824994042670093488937315763766935154809105155661627570576741433040362616412364904382732053725174931246529939538685757629792428678123656550321650869476470376547624849448878007898530605125313914107060734107756929507572454196595834445584378139212627657234048696218121571133214036413666994269932296904710934582334281845721375048699014856603951667523916229148844729458166430067268980215157958568695406258114974218485611568242494683285779002928042163713404088818374215430388576571702782580976520149594581195387330653450425851749522601070476189253062404023045261063385151684196283023566061602583740845217326011228809587195330092656094566055802003334612706460686654065891317175272182715621967639057424380059149941230093046365889419984784435486693818402881574107527389273603617692087293191178926064558446555626456663318243578943227569618032724427394051018758648354649450195816115213608702554984405339402863800824112343759399831761940683554310956465416126067112796748327235105577410773654058007463331266607659803717377985449107679037264227465921874460794362099195690195649262472524680704590675346860619860669751552727931816733908862718197249072005970891330349182521324176973329562690628656940078439975334231560579438813365842410023484484942866247531877598299959380302508465686683371287704057058443631618909005336053112592200075848522451038406034422675807991120397353711115424041793172096210008506222814084762518663768557913960610205030351461765583997952365548316995831415988757159797095225339822238707434149751781437281134082063921627181664592189411781956576204329241429501258961190113095771831998339727244300481116961362388329069892603397720528981765493186386945340726368552301471681565156035100082961243311053630432428473843172283225123998656105569912098873702096566997456826054960569715714524234724238529285582313894892856524274778057028257201837285965138583859785285189638606715334259567229612179645588975555846017387742007820354371459549527520482380307233907071569179584223343316143022876944210766997716665707838130014122136726300605057941888919035607221581055721274994586652391718535161741638996571550913935536069171430879632195374946092163654973490424494472272770010307924070388059603912826498023698623147306724752591264971651148485305772762448791512091032236612591819084416173679875497094706382571780821439482915426765755515087423937654957434392418642191212199414962533670087694015799728610859969999498826226076963566093191182180840062026207933760045141507684150382983399418584441396662845122820606163581825685672099489106556441844832226958571477726065266785415357954588208108215526868948679488081987144492686789418072410991723710964988681424949125998697029732925093756744731057484100882162485264253446583112107729266654638391397083400402988669996379881883179944467266704415018206371164949790170430097456812606208338812124715957937258228870373093056252067898403741795071458141272062592479986121843115644991546345652558812913475279186336145418142878108856798095837458437445025023918453004989358683081456044000233952164914407640457806997913020879183230228354623262863032898529006016224086842044057712751139284964761964162942268316328121176962374050181356256449523461067627529181568315078029279930633908912744038434135488480730893055552478178262584555447835350430920784342691280596671834848289304026808229966912082278616778926291584259328935712452122189536723704588046602725902595613928247632536243734329821805880960810161389984999196056913001730120105020739948634164088141484832893857829448585411476407724757751149412854227863978413764840235811299412628684929700102159718074921052056392940644498075366813789603559982439420644283706780050124380804835392713414530726942196157278872080624382245206851222360221401593679024569039278515061509930945355526641575691281493583585906130197401063891578387082078179109113092620242207522626796218500757142849233041456187432551782135331456185961000028872635761556655105420041148228449106260028954500833154310380155282017948334488890435000552203498492067437655100925704655470282306370510660785205636393430491743995418750284931649129609805050350785698220475335641297408918314995257133389122439835988749045373350662650185107910880976247473141745066741375195049512976115580773851877869003389028191529218087411678883855299793663397796236705322742199497099944203192843902531816235044613632894770280357946233509868816377065194165981496240323634775116246918675190832219381823784926314137344928041141399109773676590788277836009769552242721638905527387141472623310050423308860083719430614600780930102279783822072311515551803223638556588387670636149215674923990312722642345273589025006930447107965881878453966661230389582791796586483485962006780041051668552765318717393804742923037242811784781560641698112712142029767634325310050130396938765236056152949632033288351886240129476219512475630718705385828406231623241898988058771392475289107930373154036832484117648124578190229298105262443021906422135907913531068314160206088392284396844194646457826329850939170772598270605091770208989336712751046165534699295691996750607376727062230977977406326320982658911076784804711490289220167850189537819881301359619422054401537675966792927242081528868388583221656397535171599874633364859214658322472874480456399389905854237861961303255140514565060628458185188744149781044458009472152947755753636309438395082649159854406277263925267715516100876681487369426757022066299987680479808069668974322759081589828921800657371099233793883800454666511398404368571609376982420497494939214456010749676856295013673244367539322287586770148975360174485264003442206287729414002424721040024773638965263058375497531576045699324981730989241099995247980750939732592964174021703163161483695669097164678180676344144746594303894890055757798803306038745750423572468679950889666576030586993283667605900721761915734730723762784471152242622567470267921510862830993215225208720615130086918146949997311018977431192072508351304756873228470185615455434204888694575563617747163739539511117316306790877299167821290352953303700328547703921595161206162295559256272655847211546438002023980581798000774939421821125397816406649092823612265395314197894160814980795171814078205400893511722380714404415120656179469362727546337652595808730251802155991759214752459840388795550906880883779795421869542471012331457485127711879476587588412116338267922215639677044247889418161291938162966382623798531257713539579077552103438285560606725428382660030255329595752337523038701332246393686185091879443511616149664054086971674868632555077005359010024294913703973826266920407853201227881794503513938750393812069231682100416726278120204065062026579537563253143027328107226984373250299499961242932689661633397666038579497792523532413046981176472437016551921208588437785535273723532436985479792554224929141615668144601427836765385372945250465299911807738919257687230578220932013441711069861098232879103545753031384666165799364645892482421244465527702908607893703921785915056530088641468815242169147676941696047907552846612119864228867988401253887367637803136322472020802927572377515087332410276702450239849180887979396708619679767314333482871394042570294947848373133945656442563584248092072994799631943510383777542996295122099021538021484221437010988886941119040844780372782193753846170845840608901269544717806573655348310759346063720006229710201256435110775822166810178368574639156445989740820145512120905622227973989192876732239803761435549256552622201605068076133615008728903464466860645532371786010841147994161010688944955148258521392076305044310335285912568959690764815285907291087500193398650817430975117772992319152420738341755214869725596226574252249650400600383531136799197928201930622759937616842269668083786533640081456564065799550413965545820559180619734850344079360389797206316612773651361128440421768392801390250992967234386965641436096009670772533562832657312738777333315161581198819824074229423509035281626751554684756725985836378384916904943705060756666044385886462608810608742699779149849942719352065538815195746557308830317662175145501079485487081450559271445420568653616714132597752321320662555048802503553871350907587198207623300063920789106885385075414517424743076673018281258698017999568025329414346384266532280647776786141703396170176180124143463227246072988908349779519698839767468940948809215425622207088429707729688665113343968445427174815419550103079701336064687078317603829739624870984903007313058679893289402003215779545403884332436216732075912592878716262410630355769963260445671044314137623596077200053885752396980589732347273820464776561920406099292991195902847196070217977892953484963746424677176728929344212562205750076242958201518091630304681625351481255440797047666196360258903656213222553289270597488862094414182117812780290079471725148349817467294443296362501495926886978921999163563240260866509923772342684615563252239395832359740609507611192723647029735205502600640103589232760695922530097349515511494478399465644430005759503713257915147392563454783970608644174769731003013445552278861495502591870759811339622927032870100813262028552888688090570499973277352268742628835973735368987989401747965209312508622683318533032244720265862051353260587189005094171373650635688809479863763033591945915488248497876740325085790510619157620919562375603222438232768753956428190123919644488575195805972580455559206915677997822730173811251685659741031620073767347977647559678331448822338878851071348338504824282477589526310299964305176670591522518910522974952769533683188892402673242905540182662868056927063449892781014031029187958104482749187743443229858261279335737266829100992684091131343919747541507305638956000871050078063741216267248299492062155054810173617543601892523511048778244728056428162569842594827960285406545932766230537871128474454357924600416191520584818008453891564044845811975970955945186139941343014483034307801483469263877142379722771087047270169182596548497713670351737488007220329919892252499287133382548838426577584413041153972364039819990855484972028023492972445859314328685031844648375040009799340128583602484606461056581341801122102395219771196715574242161400630208346258014873473985912392913724610541193717891305119009730124043871329530536603665424853048493463972888481242765143634731419453454678253154266387716013855577951099484551143490171646585339560419205475916986838535220937987115599646325075961675201041213341816659352460453174064254125347256758304772020638489603793658111292266355971703378453900798518466036635280176631286606619855793816600919488053376757212437151288693936979095684609796143796618402186032968785221636315947958099326197457700935923428527767684419625356511400529775304883728975706125549500616585728638132490403620110348463886310421400413693901697410929567751062509882091259163649063011126248735554815828385443658001153756379202767887521303084554366718412368173069929213511251446539789417308873074369470779907858025522813229890177649338755432919190340783914132703351648690508054834551272948656377772554641316084163085049918788037069135476170212551154210271593707209069949622006581372853526731393133571711797137629345325985747599697411043083103259167388394460899672781501596855010972150337262729145174263603115929424191840412272016004024569627743997895675563871272964952119646687738048568379208768564042973816288395713596099339037666127447654057932221657308069001889762891658470111084764106398776829167361770044884825716131731772253382167663853330404826560581359572329953750133458429701478822968815683193334521106973586887508990792750449734575480608018862877925810370061053570348613637506062046900275098049660033121758099440170997865604146371885677534739328822511024601927738275842362705762531680292453931071743555479232706950781607654148621089733976303265985718222807741978671993017259533199756071420486268482362443878601397370068471553151950656765587288930029691834183919794061201704318288498292146221698287876722079222400104763066526539448187479408475772991580220556333397165593437316671111354088927073077282149903346351180391857887312685991509704801857903694616687397977376808156307633486573510397837632139526011549623605964062904946517263112106270485281512664448576450261934583462769475047696178208283693202280460396821367397166283280057467374022560424543418891331984921757737695138773542654116138968765103399996293028348300490806227594552416965717352857218951546850436242871393247847328070723204639863957829589693275926260607799186407185684546614296948814881990106402011755280733414264864163466638766246878030361879370584418087752639531153524916768038647018660093452157742699862419356601432181222128076735093765255333412037818581406813961084767198615800989795701248818808376094881801371033194456395243410087062161870579971636192985530739388071217656929597497631266853981577375682619423172832322425550133139393699490607464219169654147272239152112977276376107002598042959524815037036553289908530720205641320167101382359530350868956478529211992143596123417620149017315436638024012965300478306379003565037604684946842363545320679603741425334840487595098792617471005206763598928985687853421954371515080309097852296265311285228001843939369449521898954365990991878175839608960812216279219705938349883007157416014728787701022919811548807742255420983345591603103148006557630671282989874465479615113542962310875461527752611944964612673826566954464836627849864078022421257496857100504989854201456224145800469705963685819407567335873302064741197150582352393924132622847657141093981488126791851985499952617547963643127697838420746456638922430574616514392136965487043685895163860720469787227430990347099009452201811906303963975319720209517802388653768800550226940727075935149757457396395241968209304335541601290053299794620226388602844960543261952156650362389649048635693660520688896718255215934641496583444018887029260335260391582120189679306053078666003775898489175441481609532675830842600922730116821425962797258978864859668964866552943455004915021935402401253213880383288120055375890844589700349247808491614728933242427273289360818949249650014070126716997635784592089335674504781378682033273276800418080442022889202193388773778056948414272368913540370038982096904912849499667844107431188693821956152636234340302456282058099501657609147060506912627602143443471452963288084917347041387344109280488493964555604639642751352340214844661815057071830631273497466715001531037878016039829919771046912800066119159994149993762096065401304447893200282478359155462907038085827398388430285181465965907740498786233126781030943676090606658986837425738290166792334399484579907437459770400377639524628607436930835763639733635376910295284331399998492187848159216859804103354624782105661530174531393845926164999487040130908730672996955959753060270115362233306995419540468756418372458998048444033152709998437240478969992310548022480169619577486685259043984158309983434912742127932530684467736432108619521116327761308025869208839240791331437031610244667159322793691062548674279129953451705248069545908309089548743486905901873005469470135898846117679053840282677626980998540397042197107507535831148756452870714081998377790470791437058847218853291519701078969819244871488975204768765257870556553571628170071425042869690204711740484688717909096318421446350171007941133761634268997357917018896159259368145913283953602813498107056524913020613999471218237887198349755295858769118498670421703567217376099973057759524783323814998284571492875897784770854954894042620741892132464540307876006899566449623243734362561436434783787516252610903852352015111787343769632422141782912964512597871518115468562459018891270441497936789124385221957667917933591247442298327957430026653429320282139672191552181953293402259061134651536665728156891495434961487940115346229741264613611360616370166918463216922535654516742612758210550696607767474673224443039786775558015925079507427017229217671385892953331089036856439347037544012813641458984723226347940661663680645897848949748228319689003198041856886617289185924123925198972577354295221089975880706036559098581019923381149435140473940599596529003266826750225687708646271820933859126918586934833075564387543896442261759206857807176582446537688640370893329508667683013948968635695124457478630770462203826747373886689942469956346902687368581427024115507961859001426516360965928500386101511818833856075612229139519508393742492609306319702189841317230444322880624167332189337829456922369451614330388919692147134833498460831754945899124724045297262970257356199527574117502836434025087218350092070776966916344226399936996070220174784730708600882652727737612316716131540708577821163509426694388139683557380665704039979578906757886493228365682798511684548460863648443259244812746806576619374131312855729224871382145671772341788307004698469567161116796222943275467258742803322987107096040681078783397795830782555435776730700459747250119224399480017163599918301015387968927917681309407378632180131177056480561135888058136579034521677427237291076779959665169500948295578296463950964938508211197120171506324450116820585941245560310187713823404927492082769006392894052690189948959569825753491539355316705842562962843098762877045941396098394143873306651636020518946295107712906623933255122393684377398656759338281322376670717932041427760674444542850799967828555032839592138323293443065521772214998112292287395719056298030168787536191718554971532566761853844012185591583712810109821266919099015829167921666822362479600706462541600420668133178551405602584978053742071859010039569223688902338750458517840586427510339239967270159877041172949205616546595698360031237460302620413820042660204617950181496829408424285057836064258704068784422469896155744881525486291559523669476875955494206665149701241154751774503397855206471044421967269493330817357364324113159789261259566385445934240873743255014247882565566991034527687554987974526889365573123668079048814857460002970965946127538488983195343729671541177760110564775293197736715423867724769869704811267088188719315804727704344596143348551698431115107982643154198265241739040577054679734373537436241816566538598668739400930518766406777151890043431345565143332475317591990634418137794248131316437633958183005502211205063014573044918668788192936041893843101120550858052426420245263968632377685185759423234435256859035973382621220759345210555018069322929320978358336053826008803351463283235439990393412616051472988963466125956393681323536945851655517768394642921001317704026115045945526401721700586708087970592921164431971908292236829472699736542579890415710667209984531585366614044804194317981011645366602511664180257298678007984482083329549622212608691771575032409143382841799188905818172459520196462101750553668518471994618451377294615988314242817845806770214990645859478765206785370901182164488585229740628521553589702817706956727368797939959597600117154931794486355770394222407084176253372836246156286429703212456199935774438035508128134171973791822197872532583335544076316960420606156967945471827102084075387201088182289248921492357908169614433500738967786763514079921548914413967914621784408269332498724499137278575680539815586018105738539279954996658770038038585581548965369506211006368901605145831529764446283624829947354442670190757197622785507514665386441272930782156967520734002361784758721192419035166163088826474318953830270003941118208144861976819341978944743172220454486184606772372315801074708006731357055610748863513220514171556673018847786435172011067271416875842100110010394526739855047824613708676803305017186193864268592714232878295724081335484498841218505717133348570885606880153852160892887803343581754609304351008211089543022525370199504410476319182584204557783611931181392263536817082576847440964543627590994795622222271418783817038421220487320570124059183236861448744095486373801337146343514836922549538379055175091133070396282546084622813961525567788146698756772370258069695984084096170107137847575769435872774333939479831565618094607505092889452587089257812292058008876999888629082072387290650730438738140842064409490211731968180014096537730238242531169459650791297496106212472287843756622144695696010177081420071266219706738492761223037736457078360865093955433725038915782317448031841883131570329895912098699534711287906959778123880583427297578167709646263843279258356676885616354610640334630085717977530356705170547038269840619969762211311720763280597413619368964826255306611301935355497059416440442651225190891246497301971467618108168040321592206495654210557470256209828279778801076568476524951369459993052585252577781309783600753940468865364074633847537515179355743570751894016755053956683709838100641821532772686398383086904893337757286356434202433214497416387175975351672916591437928156347849123389202651716177331625255063450743216258170405624252831772800799367198272648208878394208015164080396249610923826743191416404230658588825856894171096081822884583987269146073691734795769354574351779748051247030841398382249109462529445272282372023938973260876018300716856221710183045761070187930172068818097364034090317559084308012265694683053825209028076899189396803764236495252558030610038353489197093598599795843506134525908179514207774488277853453695587732038316039820920606021270376700210872301712540094393386944954156744200897203843741248521092030853909728601266098293313166860932202307935210566448059234459804597595088780508718973255740700530240605651291513088895285439015723752403903525715820246197145577626424841389394395409226894918735681009406702512081924687558096407313470024987899452062086098671802370435324666675749506487944743649848305549182373381458585990199599228092382753403114881015026569500208759238690522937207886101672197262722857194463464807419209526447186625009337200368107025178638349026518535787585773058795556759282943468465826851072580728103652691675811486791232374952506124443390803145998151063566783239781020808911192607800335749709900379134840173488164278597738193391640554038378332931052063472906672957520012861415119717204981460503050908922517855613383545257420761543842776952136468940988602889911680113805092868061449103795804335828317990101477143566412058820545002661742911285641127003834180441689903008333231029979381791378175903897111136068503224266428256420365740965597361186352296183036086583291852993665683326802772605473935577967825383188974505985259441414677117135966732960550147290751404254436405195182856316232601410925178203856315629763856883986030999490841920560109179350823036790528814933507043467873003127147226527622464243208494521498837829476865010671623883568917758391547289545816187094900621999081126970534214489833877269693552462448207464145563406325302793839675796863495855540307916874406186044935837668809676127047150836194692601593365465250007721393844667675722278500727143469458729935953863438341341907336999794513496805237135448168028228853113133023434723037686034626197311535720421146348381167679505737670202518742358676406331407526440075567135588114148310327206204735452106078321604603758721812525246837638394437191514543673210790572739304078013302687924513158564440666819475008242562195561748546402858930906079417516554804089247617753006351474885777546940513846899494513842325536092706036278419543203599809574271161636920833343432118620580812502782828390327247428324827400505351238587609729559373814088755024503224733059347971999131581905294664407830332993245844763861101780603537024867350345358867358410303685306427513279371156466298024238022450228572394498854642876169978229156858446670489303229557480135474328266051532832274217734889514130577430101039924474778614789527243912381913674555060316121677026497602226075004240376583965273569705132836063298476441643977911767860715615572231635648587452402965495730746699762989023553409711438394561587448740510001173716315382143125341867835287552956565898116781915322468382622044235789570622880576990977807140153265226443022010538966029595756243818467937097066352121847870879860761140177860832519920928171499846766324140312665643732375988315849512547331933154779670942739787273019329313312988466376599084496356329956510878039359626126825489255794247551229055135509625227813331376081273512323541703240510141942818272829931763860625874490453538282980526272351012830828614457910161480061804302498089037861786397624187601892369551220144701166091713954645188475612740504753461522384111762806013384432137875682223325451128379816148622547247911852546125033748520408226532641909379173375115089328718159065456492618651276319241353363675510060691052354040280075033466632204070135434675947916722813542465863334945491504661105688968248665401557966341802715805299980521645631003381714611519157764076492477100557714280562381776235772258748334417433760028048304776373893646459918566313857432014730612602473069576472508020334851886166106449943523608927550773756152876849444772405574278156587998580958039881143719243904514495163220360324978881047572315191371197808342559302153997847902377867268733823449928911056790703933575584665582207463252482675466457106449676293695841536526714927030441179363355456151391531755588863216994954774611710352339580139431170310171397621726267814800848037193404479279214121898595392233210365908013528171654635783691766619793474135524342830959746490152157828422240573068849848763215711862410688276781606060288680998139339743902194555320590930083397932950493657128071575213976708110303651094081100310145773748139734366732083493738222873995235637256519710810826300052378778906321468429841939577895059284766034029818804008347015099233178957782282473394586537246060462991176073765180065200199403810851978359043474647340596671019824147232943326576109180349334964524619108650893145513432769968069120507095325851224905951978270961555859244826837036274280257127450738900132014954511844450437451082819574656071975004350775182978200154682228253820808210739836761225926825183501766521115294618928519871809042323932860149689046857368987465828338998719870568135185606323609251289042871548716279777162276519584902176619545042642219554614643318888932633671916367651567995386794663694929290918300421463339193751637853926706530546945976571780791983998770365854118088675560127891329129159851868256284775273620976352947479935119248301693024389641987856075114198201488520642069328447224989316809706208410054316151174404215481410145716704536282489501320436734350711021786085904622095310086685467108819030885734643959248484750260067713364361019797268094979575863151872919840541465246382543676190098845958815886281458808617253263071609135535399227017604545596968970269343014823789531267582589453633354148640559457694527280156484644659258737428464579961310494145676466148565174986732050582276990746770222353496968484437943057268856815483869315402652197930143770300950045594552239824758057247283375718361673841922124803439305607048414938118116392124832051385039173944953667171319987599652744593074219721813796428102371506092629047513260297505219169454872311096543012200316461851071757896999519075977181657878782115409464133884739867048651476391086601153140265402156993759611425930947826136480545898491534350694476743375456310008048041608939750745845743268871005408675326045030294261762265267209396898629145088767651237926961183038659848603254870253443950256260671835264755334053325362863790585824516042063115570822650148068919836650220203158694380160249187145769947722253859625679057892033729347571530868445476313760977645034956736010650289642901989680016608600224072865483409686899834440905787382838381020925286539311792584939063915419647466638797619942026160515088159730489087970584246125075082003406895734299410687762837212074378246244321777776233400794216179435788474640416356189159809590912696098389586948141374570605430367672040975710135283385091173180050280797785414095799335018980581934323483679985681369993184992430037367920214215222899877467505817021076099017265777560542269366600204714707640030736773389153573453997597182704040059120956176106314514663896757411609508252685226462100325533464097796805009485569921496926578102981114068757881597302728939184751908152718751804367545526651797120521605084266723032472050679104425312748973641908131832654771672708544649033345440601377800905868699890010448885840558658864719697580918860106593722746218633986109474032290686197102861771930438026432709704174560647338417143041857780454054141866980557870681542111434745048233628538378717353259068371531209500305509057856636969630132323625155654545609940158138817360649093223643088658923274118432697196944704631728833249606643274839297988475734324616059625825271307988711284209841846943637142353289207001501885249729297712692492491735112323475417709732451961511804771796328576566634607147187953763900618932848550664128484867943882730166261025936429807576042790573049426215433713641855102560542195383676905729673120409436017285874827006454137741127550420837740735422424287357499599209084239870197370665070746398606647196714510315664866245065160183213318921914585455552302835998371298928449358539748851873271249651642411958372724020819311540454553592597919967226001549228754909750258565777009896841261407396087665249844868564375424864301612504277510459151008006040505505262636221778223244916268714995676660928737384800413929185548669866776934186482167908203528324623713267605067555391227541169422730575281402060917570151002965745305755053988676581315186211644731634496161395461413808931133710648224153093917386956235503715659923913259113119941342376640234518876311098886807436766538360875918271051471000504865525278520158962247240771207804344880557297120713050051261562089128030786404614188568387233077174837870606702304903166285891461588751657483543829147884401898092745740246235219795163528065302727029498285239580103976818124720091659021977998765146934867779513416785613926656493354583853569587810696877294445091837977853057646658807521973023670129218354767114620517511086276900757309488544020528444935585901029840619760171628740384850076949140970322103229028134711960595830130379582960065668608729490982815450784208877552228738980201681883081817768260648509084768272622121498072324723422296894750207738288200660825543665118827060061559736338347238259686140615823972826590244439322859872182509415846605854193956318833072177310112549742890199863024989505745850478308757834394500208889642443280648900290984362898915126311924467555369029206473210322168940094359917072843438271205070176912456569422955498554805035600982564706301858429770446591316058955382384347307706992785574260571198723903289746887411375319799651725835784805020469802244492010584538668782390730563785762516968254723833793717462168621834435358867828477312141517616264977919243116042986046408836251495251353335849226583245378980268334007263145141679723038430243131217202591364911702466276359271784866690439793058774032138071304540526773027708806540791043481652676863880781632159689848192262394852971149524544554369634334681604217569952323999837474204570442863764730103111411833327161119159433075976605935459276412052000418494242531458797048562622680119342879428184144027961655023873497181599232998277434209557429057750021211796168139588776232977171255174380502715459443090929241613937677253447634197419038101290634188792947011473282767898861598592268791983255630309895142345360429462093674084218645828989573192120134322585769207952836555268952519242933818039237924860011933717218614327285040482905769984319380814679047448896614847888717837337798731504550439204105441660525704969213323967463293022431315475430277212794712588038353912851907169753807643880265800208315400487887908046891487869086636842885124760092377953438036006815268425059349442166722171401123666236273570622640876310915587447255364429915327503901762378497847369316957682265434231187260564612477618674778118209282149832867325563219113074351643092510277955219063187608214473337233312898172033055051735765766948619046766762921424926475535408928184363111422215335549924295465457393637555382778622085173530772384222033774706228884134062491431331714012628931263935449008778905925136016979654952390846891620428175043828097980187191591101425592413669206366793659147684081187902712054220467112189908872251942661373113954408288269970574918954201002877133092953525394802782995253366806377744442263165247328116857844536296219247422202565754773305116278478048068268197596504195901658208121509594439080701068814984358667728199582368384926859981210635796240328389896418523568253775779272413683002380129786653803263917621453822089150176425226269426157313395946908229514639043327981857713791276151983444774116158342395076304793521717975698034602949575129843493579747945212055665202210768431564610730299218845830188491091330064951215900470544627035424217154293349834973818520519069103921637356188556353090792300223384103618951071529133083750027708491772414138981813105895201152181253344132341597724484776307591961593246371669910743653386573351895262707759248860497766997841758855291012688063359476626730611017948296671290597561513382979792614778575077287124975514594270644147263023452737838885037670640055701405775148682315970791079629900042015583926334107419739901922123873229442552782808241627909890247909037722910944976776024152466724140137651626776451531492325041675140369247431400533967307093285009251524006294217474256795534966109891995640927840539703609001857528858615087474450069705180670662067385764987862567452493768816026954327574125176734726452043864656747926425456589615728609744904104820269882128311060882356525659157677840532625495331574618674029706392364790347319498728062187650269170585041302290817444246985407773755660887210735621372488349902804585787241316872847134016561312203680853715175845968176378084448198347778367972119118127544787565386646200907922318693378465631564418951058563626202349648341573876504525669938737405118535355216197381717608360736836839575208229573136113584558083897701541699201002362843205789921342053493093570334567064831419615773114849861237565414893196441438352362479232938436224730807530329827214725129142082258531916772781581095400264618471261166272361678362797312844683974432955067734022686529708899252299843366661330116201855589793356896062313903017695453360073653773750936562875866382741732024292778184910341552457068427432979989432920170970171131682061898717279743183775070905531363988083450270938605139757235687921712173053123067253667333800318053756791444436365317220520837691785549561525923313006068164848465447590355353287170341559788142903333673244010635330519333636857790867421509448365611381159393357670016360421252449605905062210343113944243591519594331277513746783919825675121946453740376062139994395913672223865575765638701945165491539432070966000480232895381377751563107368932505099742519371418529148989007491229496192549761144963000402236175347587030441453779225672146007126885552466228135258607280404304066587258901223402179843066616831434622725910987877939744293921668484366056708541117672817086718704409994714027867533066987568542705834775696542724953697456493328612259229443918450442804961466429645869313893270320236735480992865323908983008371314188012024295812033620923307444112489247947069170440835387093502987728522316534695450143935444796320767987397431232379272464123312580175905001678443972427961881307313400679286375230407667125196375511617133387682177140388429908516250744882129730172179074612600122419452737384082309865796167177282768536981255733898751591771977976165819445119327700675929129603883090220833133883761786210472271545846001153497625070394545878213094485624090983864981615143342743328020290407797414530783503771724461440726682968474707398180718248822871934042305026083674251535956040336485471310119497094110230146417282526325510765692663548586012000256627420976126110749540653078259014429857612543792952730934132150830357028908320137514409582343464539954310032535528306470485960480006132867066129727670574964499610579499135030938850658600087286763707686909114316569136100822687868219703968542050223401300164789089114131482093866776261943989780775771495962997024365056036269124019817137813006815188319568235023035572722030698452568323185679013623734827826705260091848767100777707839839940447981690276129247925492400586244615433336082340136286587363293990183854533893417499296243978863015802398045783637313526906619428574240479487817290407099477341041757217866931632102363448995854110705130590477038065892085226990988061680804738086493911180631907748978619142255592897822328424437929561585141589388659606333587389252403044144866426936571606925684099821759955888293849620824095586277816996615549398601740881218318752369239218606679939622420656472055231105923372747283086772315942300632650930729949965410774225253767677605171801367984933496255351667364669745614650653310413750804540820927191712556229038977190433458284181116021543004764109983202508446327083730628848570981599443719598823062873593830211010224314302358242426023705068497377569249608754738449782899833273734903949743590364564189007348685484180909060331423651348692764001622789037158960568767925977913406460786636313134785061231164038898383611331114812760862358182652925289848245814943695096806251825654441114960107370891592793484093206591929472113230766875997220319473032555278372943300986864696737237738332748689915180311644381028446846751760790216408306929453670051133460538208868843102080631922044914637476551882194682490658067371161194360639380173904798028433339062534440508896895155085760210027861771721701189194691968973654325426088976787964217108292759586881822958220315446665004252744656951085530428910041235453531523140380489506767342590221363588440286711372504091882772139424725600788943695181237845417445554598867343462306129697745898343184996537221456522052155250406098081510748499938583729724973141300710691179880822159749087517942176344446060557088161179846410719852192593576618489496830307625303864582195396170260509251881708538648843001509221477929583791099710003279627623746359938914169691583761906556841321481940540197440210860201809685769391643559376172594708688047747365345940098782310301874162082398495234225804087370464990014543117177218543928295181304157022049882648515667005153179179764825334199059641092806253739493744602840118140257355289410180778918841635484743117542347698185906880598489857538091500170350759037936828077264537452299262644200878786599471668937581885367032223452534096049618236682225849600918932315357055697530940140029774964787526438410036630650638440440230384881869604383564333985850214513488717828002729649733646651136217207805409437657016728219695731211348887841930084837962521889848338819987118317560277542229792193788019732505648515274573482785336650485268732128516678025308719692351076941266112194529255865874550206746557484772741001122092331016315063957012890356357311792912459937049143832210430990178546831306312121304860399576732367357308579170973638757545925163038845439368881582262673223859307363890820473431481212719512832455514049093013113741973912038453971223500882479441227489976013461194786651481549867428315077445503529597441213932774155436958492257796496616811659924667071676427361021933201682437301634110426437033646992534691734133376870782659276298633889148212081657910041892638221718739727668682771905560620560622318155260496835062636058177271669556947506401987018829778562390097685043955710436029386486260879910062881604087346995870203847609625215583493230329468820973779319858122605255654353873594207715619884713418995774784781158454839462803380815118217553882591947669824365624577931530407538309519038559917267155200424091004421795205381165856159197354462679597323856065270453159332205336791356965171931473268578635280203716292454172035539135679350508187044133313745710296759626510159375961265425272602855254926697397436691609725276372064114258994990245625776371105100926643575859265217410807840602555603761266311379678968726489800555782160694777566376480475630460739530758914546994169558833157637546325906210911022349785489288258335208456450249289289760058297228018268506640749641450969765003645090812897491874508058024136492052087799994563809719937441792748293656831127361956074115492443133096630328615725346130857412572912151934690633288976642280055577268941708164113816552947184737306258933153159660633385258167352147877246820707384654895646334775660384168951790771234370087621340357632646225454047306362409050072086477324693112103184634309821095315837296167554622985306441524859756272627681147839748533613640175630871293300924616744991683811010017913927047981651767271764033351646498666604321952471738567429456647889745839774527264370956979488434282344398311293528827640988535351066045462531840584196781051063300172515308068752707578351359537335771272475166527734513637742575228298084458308527393908983414631592144627430046865983431678256461328532302763374054373765521835257952240300864693683758950507043475878117453972823762689339153255820647206540635995938273619457958943683196914014986979179001919823396466066461508515718941695492569433217722766842495625907770639907704685500153302254707786637050327979275685246508642874032546732264369462678392131775975692646311658316100196012407338546053695813564962159002853286244907196554010096722740528366963070960870804493937002712017729688771042924847513596292784119682751931582064313679977899452284762564378774270631843169804940323923937585238311995773351408363473297999512461192664762703535982842286868490123542427564394808404965475943118964672734287643568065325353054022830225339490637926589240678867638254394648963836689965360227011388777299284470209555916871949667413851032307883226687820383214403281007213413920724008013147494509062083553064902621719888879831812035635033994903054157186291895056303638114302128233233792583996177374575752714085264546612653555307810085728566705737596929978581602689187793089168390424116357228590939799545896723545345751965807789851073955812961705599665341750623135322573693298246421207760956393383577209790308435500889384208288041998579025660523284865407440347995747254376790451986160523129181017084944662873464038695504806854986503611303801084068606786300076313074650077297482485372668298882768786919940595063365870270604469095710341109973117114689831542869717932117137659231990902500981198824927281931236366541934386562633141398873196445893742158942224397689608727938376827948195337285482593929313325839686708468179824452184444353144126094492203573632496767627028586932749253204369281631687965916826751779594662473791086450309284313727076570346635723192169382605933369979638509504264878831262718010300265108829252199756946428760661233632451725090734735041765957689883976014034942458578051575601675593926692568132843002867998028645266977628549189856616233570927580445376975719582312947011750693834223734107909209782736759141952287769499643706496504473986239566909992398499130992957920039460245058289618999143630804902121580961172117539294553322165645757249327938532451421848429859932536223960272730167653860083309492773670377797052134296435314265318186801382996263245979559383475950668837937641136829438645626850818900853186330977409045319702473072814976790572099798974307398558457786956926110673765814349605144115714535887808587615151816659054103531594137428756655504729328738884295825023628602192550802144338848115392598313117106502093727700196135832842607340480933791127083604849212915939234391225301246625953709217663811207229738313538062592152317598945023469838438444547754354534019376793109662143933842743346691531109528111763233992292116059333095693389550049900380143292020816196433153758609050704003409603686957418587977740501215419409751057665512834901663853005546814157470860849696129875618541125212916193413176251680508653637253082476273834623797459482393310180335980486876706416568459981384882488933683551663248747966021060615695273501392946878483243004911315140465393647144258125624884219902837719678013337734655746913638078463489557152216120992947449988570725369879529092972230622268556789233960417601048724263148031192432102866887709072032399719806099376090136826723394543043806524051536530136697299464547962699112365837611659524475196152369650822301046805445783519309487007789542284910470604738390303051761403928877452631521458569062801575692465188833854347076494685436112859124962437573028457845762595358474033493475603801778078833417122097588934701745949702094017129029548767438438771494524437226867669924581259464683815595880616450393022622834796469473856004680526610552671206278061538299335595578608664521544711105484740352428866447553707286128830230833172196007217565928886012280990038859157133175112755729073845954023646299826737804745418475953459238492573746739989329358942030815057301842791086529912909217666816005824857471531800299018612229687838891044034943217438583432880767956531437145978481976927291351714188958976328475079947268606941729727483323714491751069818939951199776835325336440874225335462166228812605980272453933845832806649811819330712912270218796725883842567415985850236815566838155125781316109293271273538103091764575778861130926000440322314872150348307867283705164114035501068789740832013743930869320838444091787425631844540984982655746829017719307288191128547587308483128117739625768321476880113945433943688141809306233652188088328921288184793858154504512562418160240183396411783562943706983755209923361524623948197554166874396901127422766427973666200966362778440813775335241761695652297476959909864203539162354771909266857275382128285807986223480691759740505287849243871597362428952779164793916034815707631668657225179368381250462166413687105049199118103990707895734461676253785384904107474086783890947398872993276118708591790283163600520945077896914182948564868646872181164632320749270529127028898695599026266744345233732697969670400778362752846275348753414896342658725789294297469767103928757390551452576339590896293971423270172442773299334384887348479093166274600906648836109722727559667381985153148161291295336314041151259468921040071278222189704893695795647732034990090932350057075091539738698614974881530695823543246294434726089681250400168733337613942731301101078972286694449658287120814800531043705520334161951527076886249394901327076461613350255309042376513369946934302389848902635248535846931469713305766881133317441059526074246980676816064956025735269242402902300126893456081246371624034555867453385381799093760160949731397387315559789015074383360539266084091940540739091411116170034737537879338267780786586512737096019890458648206023826686788439414382108031922492178493471693196772454903157395751403784485500655430434453028575283146062946677577066312340103845108376166771474748068331869855017543105514909928122131645918802401353869855298655020202467295392644892874962908347209130605792980486205496430753564167801050988290156649411701587096061129139429835699234871240327068789116123669583989776550929615960838070498575869160016197678742967541532260016207918633890374020119378788980263603720159396217660961124929040740471357785586739747917300680867410380030420019789628749759470851995729198234645103310717344044666796433297201130762012528686710530069311729363762001662632418843572349921657259851921999385734238100029501736439734292211069424546872819932410354977666211423843893114990583708843565423928304979000956347700734924107937230734798572211228206274472040114971774541498194051371647915435232192917157176637082562337148645147645804952844389044039613904140927486303250232094645416535436712424205452358663157455948871759559921186171951973181057470606760796224323282557317532121525603570597441493510242169258392067025984697290535843820202299046476742488977348497115976861347690607417132693938536659279086604842330683100020650314257078314791564349019423049229792869421915172397464883143448611663307801223918576793916101316689993040252201929393360678428002706437748300515158208566587966293301734171848770601202705652860460045065500978207570162844717000655833761758408741614638877813299549030252801596556477370345610047095482502023453047966230522083278371698909106634879261447616421858137760397201508628872106348775587810182597154168707522243030625583196638437413127689942268476363322688826699895029347616746861376316024124925927826185028956439238429031484389313335298259620484704899039893726173785253033744481462513342953230698305984036903917505249014561574797328701582279071674040377708687428339442020443300192617216605113983486953741148399445835527191216061396317699495864827925409047806784231702918588439553951067414515722161295192411586813676487368319517089077619956133460993030255988828047397539110012772650313735850715700346214559509133093051409151922405189185651341950506795601612757094879601233844828802683435681867466410518871296357777634522269827335031117152725268704075544174421382730013604942137646155400907185362298070113896665770702940799095261304306423729430762561547609909674002633123949054016268705369560088187335023718287340979928576680824522799627093341630631533473389484240418259525115124117544958977499509523834012137390338685567477007288074437019552019861959811966161683595392596220996593058882136592867109993814093661279609912328522296003930708357764004339363610831747725802354398761185028588082176753169752579319100387328214441369116851611179049202588340093564983790830091140282418226436148789431502328799194637078773053266222260192003822145407027636055673093485166521904318423286358796657666766143327190187282883320684546721683817555681356396873637777996629297074206645433340192590046533137051117227996627732444871687223987955867125079053775135633355175240489454418818681737190567281358352621330116795026451957220479505598883050189869337941910428008885396501091672347961653716204346487098580154706382221727139606755279669065303849958779948793602914146954495237387106582003366089492309212333376549491545551913091717345761341991837246483989747492876059891686519934353170909890323522651995995251689239793515213078147180959927090787114262933274933299799264363397523929634557708076260640395217365619818405093988600202113897462812931512996612839996561333480971484723587757296081522942129486525063532564647737555832309036980535747018166657926892672314456806309934425380550420627726555089076262581387041479716084257337252733389211228359446444283801904932119055939534316413454158977197528425012169176115367363096622746764913770972528811811219774647610014415183585734672608609211558360324880545481033512819948138750769026078362161052292721301050553302530712160938105277167009675968563031395093939209838857783587550482534436412795164000922462533300793385355265995085864873362869727444465004035827063697747944468027600950002528608957081337270984219594874586995698331759136555860099564141895650041209047618400056463342755855347380479694521592344879599654763621127189297448713811819501472265009245028070638704542093320057917215862995147426261353565126851797780432374238190136425152506396905843154988509549471146511068576624835183215413603878883747245499744751147134236456510674899516777028125665417456193884535514200770169202572657263987679657480177805876099783691783070177512679388437232464697020361396220827744346872019156427068510645554588799611017652710587553317764316524118019843903101705693568097586133608800841283792625391845847544940752327298196648436637428876273534695875738286723182117425403525087251921489060287992024403501165465384416050966809621782855004425323998471017156680936218619241159430424608124205391560402390532926440047369436428473240906971452380351092003993416014013722113532737069532121134067188476188572112459297472566404365153240111801729269789880206808840278212717980625701869276745182172954309737858375653186665182127541479669070706110225247246453445792607862621817215458776536470527525733487594178528888058850832811663788771354245086911118908716885922337483276611948254317799595344189695818825897497997762384013544934580295503061616648847919079599508868996178608888069860667688128320506875080846526844990588783793420054657979995931640868286289627988178953603947109501851369894453458499623313324125999699925781145162377719906172091661330865952587409203814655465345380106214447696849097195217274807792384295018921198460439096742260354807396095207773185835094493386428752670669965216675174691345303458938143176852387112028814323427463292976532281830140178136097945669196781496079949550661452715041673318254998919357742909884938289089585628326267205293997797925285167085376097500020433212625285606755443967756178177890249518961516124290803325013533812087842367655178113232326349343677614934402373757838235978373051513889538226594219429486339790109709549905356655582533345050597628755751105955488522001068797736889239107173021197139101310355504355704133980627991932352986681513106067131096335690973132709097558946795972162926493679895702341719412602697768384930418837346722755787004980561938032131286931563039546430665538047857864705555853131144632228502093968650228318152258461627947578399282999076271971038895585820547707318473132168219673400402239390997982968448583134354077233513491461737400737858373688088272089666918078158050005961493256142562355800540408742349016363639632168625769328365745684770396419270553826619813974768378181277312375074200726338968202646691681263214517046111146035080671266447296466551651756111848046840261964567924119412096702597162312249864486320949545271817055900593875616052201364957993246449314662750288591856240790323216255118972903290639284483778370348544850407527133594769489107164831191537406861203789334563784232567228505738191315099218330065442339313978709296724713954235660615906072647863904103350318998804886614293632954220455252324246588902505013332474131040893717021506471600643058495294836157275148248277080945128637650231650716106281114413124140784829390599074468357731241355577732573043932457597612369946952635538881793663627077302282872092394781330607885775334116224538542860613910530985894128279433075613720652200972212771111487236423527752845153715690300099614759800311213943995878413177594051924317982999277715006961768998813654288589481487617708273579568930701565736231180403025588654744761452515038578120147133937269741032041689170038826151969051631505254831348720338197751242239475124131663846013465668129397665055520005417221049180924325749454414562762999149519716714384244140824307029314898178993489791009671371640056352438064729639486587841751714516286789066369024086365374430983105447853629716179983677777871115042585456900783241476816320994852803645723734382967644683348846453009861834729349622809698210086471713276105024775475345145230055802080494118898951920274910058295969975124091094895636741977977458034426362519570406824869850262600427186810246448732069616691840829677285216956777050529934798737269381260594002455988516317129901817179248575974523500862166479435185545356442781959948042251638837611871648090617251033910290072969049550798770005116392482414089992367641234940458984226080253930202956241872498839580389911200187292516118271468343523559553874963761698542915897267340713172401063794459267927706955926030076388377061993772575614209849475857401249028816575994536589650809351305577752601873970428988489784872847998964894220216887105037451903862040210682687290177302011537637240091733400254032300664314269574199374562737982495458139716387380296125042749116989420841951584042909481642370167290713091077419152492820986054391487984650024640331440972983575396808733244992814493268463657511182242912115138558862060876315487861735124656732398028798987381223052289905395124499287364944462365521270170229283785740250777731985172675931364046297222693340173000865188256819041569164037354788131698936388926366642746032702363964295667316088228410141404028416236308380013721149719374950765365512055851317622728421550278962544837844862346592280959006967593077362683194221581836774600758125698001334137774071152095206429900675227914947616031878270287822561592810053949156802269338636417717353602890472698872090925819035070584709235892643597854261203958500500363340761502007593536509226125901773380625892312054186025546583095224011610916002888937358705907546145927567773100112661024076093770112098492513143330199659057994339983703741238326963938384236374969881064450352401201572144931479609857004937115387713666297876541454825690692700527094163546632416916858836728997301016811119645842846922755122602198063471110728004647325700838171980168204847853935097419200309567864953407736667049752126750443234976862359968213294517095358247472591934499739159860667741084055441687112875436405412495756826234966402161111512564074431342137604510306540375590160648457739266512041830730824645338609741546392035712513619706855744725931955535990301082817419585293877480198423690693970082542013703751127130201103951467611580048002112952389317257708225108796940906095314081972719017901772486676814386839412180640210804123819082699606647433910995489206053625115346637141253729136594922716514499127756396698707700715874641678868255661395882755783146933926189527481826248564974498985903780377992948072291014275250855401801572461257563345253714907410163170358164855632797149972542198016636979632705438355850666943117332104656004874667864377595592714326231341034744642902210106805689554676682431454936606693308993368583940175704121742989280031054780854626468454138129111465746217736713592966748759736886823242544051712998536601940927960117045713741469383143905245926473789389112224796198517154753776264334579191324259859154934639130320154777579036242761920844554301836356437788896794397286209945772341983164120209962204030951054673043873913338329920574837919357668011239536993434143244130342191599345041996554949878600802508691095773368222089761407860045522167364245849046749616660509013976943720649202793146334178517362646031705860566701252759680734133681174621483254922753490079652876159864621763051930633089400675399704352367088317377005607176608949541350261756324035613898353975250177803601926768913569266900419989873162372591949076832239356097872073284635826883603030600574390646611969031731517289134561927960385075180650734780118166778365139936379805828842631398425890719638448730615235521437735098029458329954991064765616644018039671023962493330817694297858437605790742405823729136013548074049381911019898892154948985083380654072509722848247268263259063210234023919315920518864537646548367194478812345762685313586594696826651278732661026971225412636777859400132186888190246976565400037590107293045378270599209665871088285398984836628596182817437933377862435861187888078243215616102520892026029453277033150983959810794532664771605402897825524619777836356840770411868018415831643931778806170803644702910025550487846584982157880165875967634207379229308753425593960087015038854328291898349984030373497706957760553729872583437948694479372883519122589371780029560681958452951232096167343294752540882945440619302014137237032817054117752239131693074263512073711931247533600909644702465672601891343336545242010379495398933373231872637233868914374284304783315762064019682140397073653975743730394355820994518184819668446806135937035186410607989489153528890695842890572165914990682174139247306896272243028766972738151085182073606952556940666516254143743554612364911395109911654800319031719262063427893290190660139528426654688894770779915557644125631016081315699716991427134565387406949322635163650543507096980276173565625559857534572892451916725709906193937066241307160928175193161208317608224835582185220311232778356661895524309331096999761794001261170222760257691198160596935890523458857710206752496766917394762216133775611099285283564733857440378310536288687428417118754570544382198348918026425451215192538313881287971354880716333091557952311287981292973005939368517584141727382833490557804538755254025498972672091861186288376122662026481606446835582546532699293216921034841347364915217109561943183273916699573178790282825457519601462329314098237835749499612985665345960739054974485172956999331409167897734562638261993268522108652749282040088279221926158979142574303260765743935432630414839296832339827998855872870038236082331733411301347741973059970381131038343064987201515580495388987808926480488726320863609637975997329389220041867800245201140954156404928824332743314753416521366613943025145500155381472127228649655591081849546750343110250046816234798497082551736228301614143696886477724778500150922283060160991416851991257199604592753780245559056836149496289140060385514901875852024264423227990859063341728174658666841199275386544041252313491195811734996014937089666076730035021168562501463401841373720941109811603539691674321286009715807190423124081241738724234351979201865367809893326690046369963115016442279130742255760812255475410653575198852040812596443903944944202880933831359018298481412431103790120113049716403368634452827905629447482458819956133807209895857305911522181907781641734780102447550712862740517105651953869569279279623779706171090180359810394557640893965425953313903805333353344614822084155142364463531390027424638823083571147865742919979311976276413831231989298067771756210368970192716182228728865287486375448289145678191602709919752551441326901401296631884757481063191977635557375532262350919113053405983996284038310210323621364626479746571465572090528505071937805789512538610636838890246160623702090463014293416434638720158925174835364682188119351873296841702537431313044772485388407981791852920437092403486156362383588769611180321367330778077003582294208624924965260778899540721742809141638626770103864863828013719565178230261161099879850297010665380062779746167115862826061269090341527374600447211945095428595882322955330165627712403175101137959904771582718191452756434486408218310715981690552845715427851519501872512682132740774817197488962601730531391656419917596722780358637559205515624856215900705355610952288262077493647805555627612432338744708650101361981679953560603321605785703771864487181270226467853780241195649147362420284769330704316110683932283980836704553818339407016938407583007962667317461661423554575997005908326128994505782156113638911917124724766563028062638939925497666163739486955983659237968852364014570805043259151276240442898662568897399761112961835709910285456348509094871287688970913884295647828758327516478459548190716307339557871544876854451646364108170992207568087531049413774997580939740040059419888634218971584008858707860613913974575165580635263715062709924657423358290863450103955088827424157927377375271071505236929113842465886059154447922879264791121046599773412410761361471629843502726103910695262624567841695981535074193817311367809419055778317643334898293887783205379498850447478690082749926554510672716958366748742873876497112438330202567552952005778670440079083280299643638403643987390846524341860126860005097448882337845180093358309457767927666411307705805159659905220366688389287182047057866950804662026331123183132324285093433024827065460908621654655780186314666644068982438087358644227476633806921422211393949484650039753318729506442195956027119218975264959104200639137897445056327629084737909072150328742705708661209702070582924400436823589665416766786070093005929398283863440774504030984730098314942612318572605669099380431466476907271554867192787652745417983612102385123091279820201473935607688602359530493711012652518847938665992764796535205298855650769029654069327868224688884225616274824614766325861281538990279379474978521860251908264239301818881883599881676279696997111039469811961672555250032401347440318209087650430531200820926219455708526074174080766860839766618328396574557187884455195831995286101625028004489138497576250622839543058623474973717784148907467414179776430734061285454730616706144171946856368154922752069811014361190731447106933797424732559079688374587602459402552309308821359349225848976271744063739174383617605708251155967449347657112881379714073668373248004431875578445480678472276280687442457797568629307987339369136154291404690661482011178634997329565763056144864311605117986615619215093162530718585895235445499173322093768299213129312639124536862468560021269772854333954328435030292369033946653790977643374700535568422344556963233373066902010145707722051130928698530270208272828445144811163066654214854215692904287625806788323290626750530900420014292207910839244212856217330646842001371691611688936149956845789282829808494925579983616261060100706586219803272990170196623653604692617119832411704198747060397767414544354045375108284297152073701498694203351110923747506627901560944652231824298556458227177721179137128691830393067442713932048489667331323462865883661836947299963371671222636736715764966836655333462536609480501931871373444712728328766320749916706547172667125374515191327500637877863841246932561401043016639921770364219979542421292968447948544583608650982361135193433085907110113368650687337401897510101361771096861221173522560317834786807424981413683121454777376689225546835101352201804276211678029836668406305102903793946074300180701830741892297343884983611029761690491037388688567524475973621834041823365259397782268033253850227527637606209654360618033423614781026670284800630751407713867667155302562780392668878906998256058378175191698805825374623794873099166607930178359226641234442760129548780845424083511682479456221782319183944729654515830882311945315480628809207539534092366116761733764579948021288911135220584985312253450437877428226234277155262539385589601426747316986922250349456456502102869942876406615930813982294253979256878532483565572444926761681290783452476540228714039364460744949435094773271865732193385538034832198375969390688019303319738451028400899825936955495753245344304934496161830927797230378886314731079975772371135913924958193238421185435485469911633739432286586768634142192410518048940609607269671454072708947871639112844798042547404547165286712864753101148438717738379529362779035836848898603626719743559097779347094320455772462899255574677837931144840060819613664979000888674603998978461050687097916703708793091447649975119661361367864738828254929080932644082570366819735766094737726804189570361658762950142754009995912514845118888640522359397209005841360354289997643342922957348227112494560070289750177285099202143625842477801621296999096257230277293654737998151886530275803662849886896269198465050673018638974562561912607743091058930194329056940268496234655607261654412158421091300263541926367684450780362084649076843812377503218848453770730171708316339661362098859160306289184543596783451037125754351326483227396919756628859836132303220950426953755584163745534360462092866643985130360485814928595913147307363192996134237987202888763401415107691783850305918879667843965271559366483544342908679727967054118468593123786989009384205089556933016835088854650448155504811140008763705621591695686049142635855625990240555619391646618416235338976354589588619618667264741812474702416491379840032293644651473933631251942231565787574724379585206998792909609276233865995213099625768238198101505283273552898293924275915212489948894139571107659443746919935003493939634287975301200104151792220992794408769000118780731820384364731744328511137734835760394705993747200508423090960874195862620897558953574248410370012324034941785753480491225419799348672012591875615240083147292726054287400019995366118694539485291739797650287249742008090807934099518641160304014071425131565424421649431976097532442881944409142576959286118871444414545925031643992834446965510170899648264571382163147271181159981766302362357470025650018335961650996146634239124897239910167810617064437315204692664833730735726198783967767460093492570851991047928100537988186360121427202730332780830611646117509591661311403429726193687112115457561586374900049206820133223755228617514306362836780435759946049967276256786884372043227250367541904039969721878811030554678037455102963051087236258599939918120803789543864817788729214288905248529483368396750306122548431248534940605234717818959956197187651628704135934306967056082483811075520124731827117518456625607750761248082733529601494576813912462538877351744452283859472639711228279138322522871294364975320923811456829125839097529265956511257887796741986733244044812396307942619703447054647821208391512304429462271508568667575036706338766716087902676336171931498041372960909439673958051510995355281175351787666785426757571189986894693364587406114465828297745379554058770030507797051506638990924478544691465263600521324366146600580837959035917584325977352646611936351723970524978850512759766649700294300622571449072679102541999132278248738588694978999305582931903578594176147269070726991725749204945738354366914345288044928107372769719854958473372500076925394462045275437565139352064770756303112483699212088154653096185007046877927231287418014673557219600185535678423182996036990604834234880356926893329506040000949876841967223481958262495488916164461024354730087323076416506274849079392767338966232790893263573800247935718063822874558039980717445523041585111905765869071361224593412286484089140475772354559793250513640548451390425146615995112129310027392814833559665785300410469568662394883606265065338805216420853105156239363476282647403315997004419690649891638878780761339636147585403487832257425408011472238458753655985226300196829853507244832217975451058897671116928396376546356148458728528015419405522061679353745489875565931783597611741994896313116842951606127198050591086097555868438717769941100752500749116886540703059900721205904919763795318129272440046221048621521849190384678124706136892767938792706084913278110456929434895072873246984447863190688226118387421421292190566810461948157481220225819239049400735711965389056576328566166344010766138910152321764527004484448385083720729346536510772682178072033315310034662455142329039678240718177260333513853284333285738324065483306678486674788225917926234861580629107908027697942612934812719826156393220451386621732133114848980639433891551509219979952593630850924537761574783044091196891669152110210244097994920779827399864799064766204851690459360626969534263085166213056487700478928162510555112088276519676259447992193182428317456845226346468763140853458534240105971875412016763872359770368088583295291765887845099654671413112085724936843231425650911130839770616349310424278074834031896797518084837354454725289128817059659898679293559303355429252676608795635141995238967755465180992557977243552204939394495353891031320191177186067671510111237290008041058965123527749765093348830895799154145872122539565110020369719906242645511985164638622187803044538552454657901457698509818101338310253502381164171642794636047789917382182950768103757410436728377394084061891688848207187719647387200147744252764105143410425542383745975207789050215879731604914326856471470935368068167892093517422274568259055663044012199633856713523100268784756541520397872305106267279027249242767610389477738254170482223689822326502432371586897281412175638196587572640552806990485625275624984479695931270900305158020219994542196819544894744642100140695991877095402528263677758634523111174283559324818204012204696567814146977261385223976628682302874572647155980583445774706431137900992595727255916335023597098923831432823826834178768265979384101558158938592858065921920765135290559698251412821202744534057419564064818758319847073132130377233487022939037513580772232491493629573075097929990841497172732749119368480548382192804604079811568970668402034757384931911500193278741097242007504173909489460432734840637211300683152901974215907196063915231109754395668751019897908261575533845018331235984930300356977083312122845271180478492454465142245080837010980394693617016906072843488754127490374519103109619844303852641906094644331449447074519809380376880623119340423684463921551592785149399624670946631779569759920311445009919624601635387513763319074249757768777251634301766191979949600440649715642143748903252538840686809622635477765074717690456689406292897602130438025434254745450895059279121946681740756417133249935642269929053357746217117034272220979811404284914000234356694843612324287920495853533792720197923792983533422793279040040146528966788490915989052380587803005107739084732335436995751351354818283566105575434700042759134954056581547393262710494889350955947037284278253917841547506929947350518418196027277916864402395798557723524707283604442290077468129509608554998356176176419248277950141158721623883595367824745388235195642380465846266624127651219260662251875825793551232737309134663082369823435186510917535512716315796620135079880074600091869278125818760381830779267248420898062977466420377116564703680871539346196509596656681149370605477566188345449362085071864961790719077693448052277968938439910880015597345794276286667214115389408806717545191170729025619361543114287838317748106437702631872054429481086428094636166395698682869331589480881203698340107100560682191989572193208483859885219196080958640249169269268001505068430295553797796698146448354131202383045907127908758638000939549036465302953280726709528082103828536290432206811843612233147223430310228352561744229789950021980220497606869049647295930692934031583149521082698003995355788589328730904877388544102440509376317134549015892575673048494594752161377431296349663497413803832582597797984304846789104421998459346370116878573658554429733949892906061830630736977224351458536007032991750745901723052897784472310992498456868876171512466561717434166988389143370187544829566850881924465544842154225527312626815670472787805532078165258187508908027210911563175153976726434975809020479965515391807854083623085735472928785957463676910285363248318271921299475057850266446750490064522073198203606685160204227272573601166672179748352375411779815268588209658159452077763039638240313490879876694012275596340691199241532000897759347374935447495588008759868459473068438048973813264201509154318156811290900575483923119917125854116386047845572489948726128567838858321958197855585599407941609046487747270855460810626807256627413021566558528325737349692351464592977519977619291810272628217157900467230907905283810828700325669404394975800886833029059590758434307355151321420848461337528455392313490581267580657082325568754317745611110273461413437372214458366753507871980829028718734731862390078592672595351911374903424549429443415939731254771057438060557804228676261266786339616335921615847584555071819657206912776651311581627153435295125890355561710160441424599162703460013772425762206532320384324263468352412125609924860664989792720103362735964967127103297475169352505013178396087521537684066598679990721910642209675550049477688680348451511775755657153206647415236373126948547467567904894991508566634804076791635087254473731346048053156299150163555332147437434573024114484621093660328196801853295477213140135006378202627968844365225710221919193144410857763651677932489711281464636756647553658106456687870262355578151718299927658061326254556349035593330319915125124099095562854812410133751223992381482057899327240910043864142351817991926377342931200607426669786686914311662375178347848849985333010563293632279129493447251847343199651121028117240371058307588985550064226278362765229312330567092750666886866579975501135150636319824378950985475791425918448822469498805743091727418484583707130543394395522166547645093682426066138082690147386849248479261432995708176708802036376067195757841346192103879559618904902610872132069590346967019969710443086997673672017362257212812110305304736656450133204712122918316218383069633089494117624594081828203343274894103072572402570453284114616585003294994396960184840019859838610235259774860201031195467132002199335986086906829368599718582193230033423320485692308425975734288667992182402519404091209065318395099438808168609563049443725784611580869593412715632047353042547983033000826087225100738567646079216585569722361560109851288982420080544444768553598767549736955539003182982468652404564392984878920697432644481696865807007706028435562979315457901104174590321577014290924160133869084909235492024314337814922934087602589021651813835505817336673706391378115134193463663263990035743282735233591131468602051511801696385207317462728462318305299745550655108273034305858844665214583242556514067391801204681803930108002738420356468132029758322101529404265043637904064709899974471453639497204187626571191883891423505432448594808834955776551133634683795687513500659568008803150695816457013181147478167282968873316912420767399979389328649067416420661015239282927529321479400467807904730577261956024161103363425127046577352034345782737963794583877275876291016441635319082318438783596568107842680273837252349203210031307941266872575260109660963652205624399324734827848210544471078353774351848537030437331861280258742586850260863565598667399628324006572669913978039237806850470196935401731533233123498761069909770323796336916068899536510241120333809263922783495321069723841303073962294432033245794453260139478433224248319030311779377842655577685473206480907235166588168350449072488950439391791841269134698713362836091354179282709072956381275232631758201557670762589251871358022660723504238919557241650447613963206024247242513231658177095768887998531425377379486666204673203568326574178242765289380666255871384681487466537505131305265766333208350189825124287340568640763872758857546141386096739700993104313400054612636225372589769474768116468601036519897451403788887841976688101385502195822861073855826495949968524072964555396314251572212559066727026933090290802718578481712146573624287155908625330716738871746794223635430514950203577102422737517063998431862234116302410635811997029681845779377611821704451814518138368129970518892288565746262406148252082556296678459146938536416146087324691377573671838770577111161139521908667563000523353648128840727125923835377072061147865581729684934068508177110605556753492140031839456578428937118150322771091379496856032332467886395812891732730098849655920006048424689501607046987137862539613431117602842746559052376933282555595014489640542123763977307256996674225135329414144325747202191941602001701646438699632343193420601420490460370451149244775665527196405024522091349714114880067832920704120217179507805147394640305874849666794408013507971362391850124699561865465698835287424831255993049110548778397329021209216433285290151787941553357804546203931083140801488851797913912060829115599285145861649952253811474429586651248110348079305300055748396919788818453569741619393502416738598146116800294620135911311965482846014900657877622243223096117378176241403344409836124100422098141410952025539742388483249460741906870762426903495655267161492641755677038573212562212946209623634619842441261859288322146853389881706194162393879991471353925295001195480694344251650877269282394702612647706013311092045891681332588126373328089511915844018226602318428207348102880393698601699172397738664041148480124682969140845249946230401246233121670027257864883507438325023423091826855021612775792450086296676785746375508163006818715233025583051737704440941710403469416011031108509646727383397388587520903293742748958726610915403396832671196865226690375218144698481403529410865318403188616428801344153415342801647216411128455329140158120483939716919984992440164752303701957590542496744694169662755168892308573330114206834352890057794251415230004053454223255764170542193816253251841289040326158951087957044069511430218612468912449155663167835079356419230720938953087955890803920093604072714619357192447719913297839608023838535597310816898384247610170726426610433689907211317849112330115530792945985297212204958548792825131541679088312025122336768384986639278374010849344855141551087663373722399807887331067079229963625957008507423735284887411287902275007827237727704027324609181943775565692727966922625251610176736491953630885018425426290239469627409391992220599449948476509139457762085190128369402225481459334533540288838429436515952371645689472484457765397847925781360024925369543010063645443920420945214505439872438995809216321179047311183522708488307116510768554782474687110603129938249215157833803816796869618487498888899549711849524984398116307466930949896298547340380898172861755834289742179165849658982013171032779702578343400567096726907537801602834240915827785430436294351532057698635505355433798246828026133572981590630828324603108018277933231387274163109735098406941139611797428615327314203426094179422517734837655759985274719412453693449704911551712042357276930850211538892953713862774087148613362978923980076803552833634962669447223683838170258109013713165713820016767963890652559790668145824157895530085896902898224765638236400260654486742242955460924630370561966028181973281417872337120680864294421096321687592518842322836383478184344283513080989446512450198944493879783535507694947257307338056679405132525920578970034604821922426704435578651798026974238641511229049628471834451543509044835289573908908730168860303640832170093929238544958010766594804998217280808588855219872138865415509241335520964628211746256326365439693192900006449666136830929664975558408909430055619154341333082886704642210069731708634750408727313318269533470469537179436999850016866177465024864383136059870227223632686292884637192362828314565519044217813866121835219011664428968361558894449007691094765324020563294110686163758601242582409756793647719889346826849288088594813048721995707666793684704680776645654217578805724442138946577186771073191304517195926642382276049879970823167375136680580600343076249906371509281314691666688220296687622724914489535025528965009327801663715246727496756252367854658663021156192077653327002353679935702283347593847874793284897124713138382916017897620834456908535008258441568993032002596855507776085827629045783662706514028641493977244193295036031205561306648732011908287568862353464389896711893968947751364452750471277040040616903327490463657466809503802430020478166362122012167108129087900202701556309816525778676231246783310084320967626036453304972549656372289437924192925197684273250045585095308066192027843625784344488730541018353608178011403023482128282207201867902679732892890240964211960835757060190287181415543003105683047519062546253010627224640804228968323413154294630439576205606701217820895668606790106942486585259868500996930061132823072341098950359330133892310465246985455063173090579357729198709077297705329426470973521985964786122760543440630285329686826188069117400786062374917240298810850814553752455230246400999147847182417574331772382251619182674401878657057872699670202096064346074659117170278216325852122353269610519539071062613179666059419467462020089432160871789625699238644014350532691420247673091849988406830766928964494038248054878321480783647648389287430103940053772077223965699244328993050910581399919928518880400700551466854209066356425879187784098661723253121599484932205238257624532738297913115302636361268834475203758363240820178123895527868582983608007882025584393013903965641329872113093369207264826589540217601331232940121424330114531621825576674052104463448537668869591116946667167018535704952482198914825873360004483967869734677310371286924137710609473427085764874477153745843497198424773496636132399270198781944765656807490711924668630466427430527003985869957938326355391554482686242465649581761509771216868107307595448138361122896037400820482028430826220930757967080470006281361878414585300268405340916019682740627554070647145247086270787982318540494942196257375726831569425514530142640232228297378639921845754229769851639572758187145070958346135896190240718844053000211352586543953040404832272519657289491369081057188994788791040646280382903909758375681392158532448631798888256695822161535170838390640384320870311078024077698212754909766201380541738436513369137711436884217194499009900254186295403934722651002898099006757648869950788031360932637348081492596485935496888849146695896642434162362370059488503886460060150653408098967013599377653951605596203742076529641533581873475212337074905489821663671852046468778190168608321381300346730998076716485999663964894614632070346557301543232125623405327705629021351814765094671795105664525108298543364176410879808502232614957407286455421896381038921256024469905188857009596768128102842448302418172831154390197204077537759535134053541562434413926921303190961775618689270648237050452060773619835100071406130781813061172833442441455660511873197781677640906922474122907034181265131960023385276054815159690906293762463794288953763663359368135645733389142064256285762956791259404824839466598617650646464570872282249557137672405613341811614909508015282541024527625324303877544039567269475443139032443969080898791752575608848843409906223208646017342497371933272134974640561812862360340052684170228377370516592958946196547160060589563397013115046652766991001229364523069392649672681523680115423669061504396516977211681776779961023074048302988451780086281828978571031628285212378671341861920190908035347531993131615528009518567219466064047627412668805799011255625044471795310240593837424832657515637852376547520311765973755021607667613315448689323099520140984631541165595429238047679094649310590757466308102604925353672559158457961142372990974967348110836929474898583984659999385832893599837768825781710909544684490327430647633843653491310660131885364248044832561867581680055032729413224565916267367568265306826956616564304034998572695112866145008001419152731068297488628396130147436785855176232745207260004383605379661372390321250443993169959001563038740131194151954494692227672812265041267586316188440984594647033591349467665973387976163825249023979976538936450412239102262959915124806209730905569782788315946846317261639648766405066138526151689173166242328098373679850528084486602480015750589828654016291761545608537485983097052722008671077878021001585883792067993717791084070535598600201632291910459436829847139924896438465787890501346171955735960994535256646825491299827412093178974416615427303849977316617872558447146537772085908953127299212586560619176177262029790635246953771944896590484946065728551499185491070898754986832892364952539985184972773352346362430854044052324996100386852631825328095851202546941411859344989031882810376826343230060439444434721408642336441799973789210352773003479624270252536204576430674649136532155470785464094231348249612414650748337065677703840886033868441862389419050534861678127470882876107156097795991917912967180566283026225612671558387254879784609445933864086425626315672107084025232151686528644170968659945825681448782861282168999520943357052379222234127679852489273980689872214738600060080135699009343912736172489952202236227595097036065004938192481307739369582593431695004495597251038048612652933305032588607104892845718396738299939092033770299741412454770107535116878714726910348616153739256495879338184685523582041589946337726970227783322324629917624261058952543262790450900018588597287976803337594475844955302326319896521194689379820690129112208390505149163874078078455653282996736980471091183577095698882725975267902280089285576957474807076093356540895003050189151479393513025831741770327399198468210366279665789364227513671079329565005003799942080032479032540190163714360628700256605995442988511158033909220480256659086621047787035056837867433631140822536232226714143910766219519989545002350132534771047089910452888395099960340650820341864813062671842979965115813780764956845378284617192168347305616548389540474677951788219501597521342470764266913953363986919211383740539381102488814816488190904507798403334523875942586268289373584941944982413569623599498395047043675507466723783940790914306729479342949898729808619659402008333654747984830826003094340500451814103483893539196981504783588870938618565892444838109200211411803406299988284440838930558113789725650803119315221643741725450413468181904478132644740411977059480087388295512368075074496527024541432477830128699911375943587998688117922474561756265291822384847599673061010892135768178962458177375080000477333128770492349361695917435700490983207905803334740133056067229399683724460722878192039892887054270927510132762962440895061740858832710195184543967315536026029268044660082223683582577968770618298870151700272924187216056118096957249616890426679279709409457628721219892615453216764372527398290255122588035358046360475600310100813747627368700314204456103599784047273076661092800343190773303867847970227791254488204208418303556025082667497725346415161266027457887982895819996484091123988454569060298434684830238744503689406856433267370100726291902147116741216963008160084985591036096484918160576898572986719615292966120905199493883945619176347275426107516766069049734023842131919167090106979272299779494249594649107394947021427114513113806256704814947433889445803490191373169117040154406637057004186753774364449072005064571770943308237643094672519790548607888083419262866349503681724185831874772200973898842747933625545626602867252098345566519251403744191959369774815285720153017688173986722543586637795074762845328182885904881565431710445887167778723365577746886430793495150829567846308107262563573736252872164607486950070184723204848264386249090790240765499298370169160541510521739602306503482809631515660129438496915766005475377471337027725851419123582026251030042968018661062484103918392929163840023141994241548047426255179923786853477710346948405847808494618710971140049389846985337412450260292558609087107610832996350016416326268942498161689922733254809735566874926128320024328184428877395997888664917180753700167018334595556555011292437201843857466803292565386371332568012503905544634263396013612526758801701413510124366188406208890559557112307309693968989189157931895218695832862190525160126042738571749320173590305961154021482282774874036284771787590439796872902817673930921447340021543822348025624479482484193000714624775961302036184940678838121982941699632317111518548083570278087382895665165458640940658063375464237269435653363864636765485028242848999744185183626937557610517332895483524448653041503405188520405176004578844678313585982488654565198721460109052093469406217967618495383785306288556554742730124644264259543260607158746218300893367645969486092353461787043071829032267580164296104077961342704822184135546016726206452378197690297859738520263440736466976800651019778168971515201537737956607319786571834582455208607945491461419051886293044165403367351844372839443524692935148216899098538785586653310051904068553998924143819754772540062313818429804134188477080275708662523565323892711961535823960860481567918674255685022659443517865224426564694695252049039433272660635587946546073046555634827897811770718552869622743908982834509457886613485132691345289315284656182579907254148518740532944540099120261734188915509709323435210343185995547011996708475828424199063592701384897677280306674122482798313353862811518150080000749187941472728191670710337563445989113566884410093240315161498718898128898313618982277056175464558699384268199951060793274481320298057418973279808760357529043796348367154565701342516521968091210357380936545842125693303869424480473025501241360252621097014360765866743559401256915888930335916662499737826196378299402482889001530249212933965417481386892394517998728088399473130377347621619964918101492024497953823520133490403078068451501107527912929267833097356426922042229020202158431043485886706923928432430192707772926555569595547582005646304461376587406847263070772611688016819057639772881397047525285393657380635943733667276958791464804491838365904794703668927562785205992845245808403287126892099612746833562270469423139052942405887913232318851822087623714546001745143554660043923385542648097121041688361118099400691422626823293963994615495749501444584347140525567127441934111915142388649400726622914043352183695583357477604772863128607864964052814908480873364572295719423147290491028774415146972215769151046439571941150504940525434968700916381813347593869832336437056700238664796577814120068730408170620805565157878479084563032608070959343680727188245505215723536126618085877326325191408928409818297248342995563195711035714098941381365493460584845320372908534555615910018306738058898127127346780436332670395947809612399404556434339277660009404174610140957659914769987497050250494088881610372665960702988203063306506141128979611888017829372441943622481503099280509092057952797014774718945668165846649904354209829016050718798916707292085759819489732689529777180626445326133124498159596973042688157176909307349305720727561656603693484130639871016181729623775517371678795447023467242748953964694043318932590293535992109219777471179495707468805202508261487557599800748614665382779549860687940970370619758336437524129007753258830702263546181037662474273382578345087633662662752208637100601703099290803379881970483695306405011074727517168746753151133803455057043567667255605449195766565365499657835177574328602267402628453876475806914851648763378534698729539342031871937948200231770175214568616885279271044199392281573633385432184282581858485832315596353324445904533326881208845263047868048271390423114188902396126607231220492330831705350090494576235678852632830343988704169739467662169095856665436715648707918168114044992293974897914697666913947971332465691724530391078259853130803472327471387288525709044666525776953727061491805327478592625928572426563191107101653614048484872696115285029882879930156059553853325434718652905123825721700612064070313499646824519332711319347061565947721842984910497619614745567174980289331414192367520527224491006799018448533975934721225818408751046883569889122989851366034321828619315811978036681993982282579819870717733734845889384201939605699110929802352188401355249180851255215475145787321697058415459096579696167968554301700811613711589327118882484486186818279399611076547462400494962619680583311408519907890492156469881397440438271791511560333948140909950598590572438541700523344768165952097376488109475244687143932196546043650896618926328963353484685998574336530037060975936970887507710160443662751961559001400225165545053527998422050383082140084615942929570987582467222295626647760413116678516461892812916922311747602799098040507218635924496274621481885672628305921583832536836430304771321587635458187209876097644144589986546138082647031628840101842217096742419732368670226607594717656108061661401259821793919718315239599522094550487667060265593533680454817063753440285579104347467759477722197103054168071802595741433568646911591141406700212309349936696956739980741012982981209739565025024867661395862855822372973365525135571097693361035262537520622476977502505154887168160513569901613990682643758435119410731912678889007862587253356346737812253198150803247514827324254849090471909062119462565267650571015308325511320668906912169761537624389278367295477307739211410796365287710704547727219938451368951253673284061976489725811547881867100429561680001883819668273895622730101031414183106375283565006156256153895491750728968573429733989477507760816536963145065826337595540905534867615982225703724369469757113353831291397706637286363349999896529823292001240225246444590962928669849741198995523638749878834121918315580740174910036408557514526694086834132360454868121851981347567507601291150818476343880507542762261577369219692924028606547961928090702456339208992510929027670799133820697327470432069007080898952251235496718871600453875290322474686494355012074203608207988995723649049011965345161724488525927297173230738231193914690050054517006204445483499157874013125233921477184879862733860631882376703888335204803998115447374500175651658999334771595544100465506085937126638954840631737950372089996651381834477733955365944083040529146777276015298068057865072570032995839967451921933624071124088082208584724595603531668428331692699243830102185279178703144983434129601394562134704867958184209925231279081424759926442453778210646241981531980589338198512635240344176449901805926162904937077807541721637530531920218737114674969189984311690129909715788795111469766055119101271340037287640162559525887668106487856494934379621511354562559732217132076497229419249984788740378863863540157286842455162934217543350775573998667634942543445631988560715236984796774994681758043617530421826717779243132199261324484448179808300035677997004965094242455576452376422007681728127985243625642545481299013580123627543694105061072802697409736095908622714534764506460011544837286481152704129622391275820506896561487539078360477177161472990137339692158828939091837542762957723659886520312690591368515436483975880224594996623750700890931653339249215354291092087080673294921635324139927874965575223601462013572398003750058631285345121918093430120665226407363043906434070868910786494279903414878184464245314608585033730107466551075422705145968750391482425569516061641191274697888104605102805285717389379668981860634768863489524395270917372075699674531984799379891716657856280152743710991459751419768228494804223989742556345693277486990535565488566421869310323635733050011591756922473340062661358560523499894105037488938437952200134468037604378261688641163407983637863813236580776232032147890054877364070757295742162017250366084564341691778356144220793954943875475404138537858388365486762199133713920096079064175614175206034343147109308870944371469697651527583480799701974922120596740437997616793838311262299494727689077471688849331804897579597869004468158639087936639350973581268788726739875890680548432765149245512138591303686145038818001108177574021242227775761527356886744770701867292027981640681799407572906763770769284420472136953521929331102043336684916847026634664890850511422225958405346769611969286797265651054680451258111197101304881820052196307652041372197144498236050075345647188644261783871874300598016010597310185473963907630746176127645798848834621519681972856001438112887152602347526286047551241092389773635373724778029605101347224106221484172944695538833141912276889535284800292938491326343967600139453880236149542333846431894289807400946448700634877345081796249156441934659544027492407129178715192353618100725166251138319057485080513208367766167654381982651372389335116388973523668873731559324655303173218360790970551966854959520938299370663728706678032527059693964615010811306545066455732208828276853376662898610293474579565079486511378414876133885957976810259659655425113287690301537699614228661138707182147392915284080297651837137412038837998359582659809896822092325464124651286971842015110529694713549133270718467586303668628391059960976413087809600366423006988710616818257657465173198458697690315212992396991504178938221533047528110641534557541862953493072950391625796831428632676180418332151646520221362352926163941315858194486943496392082386149226296914587508845171573943476352892710659821204924906542175174103904662088534664363862199699365392668796089213160216749134292178006664084496806800607704124705277793847667978478787477218259509559317372293457817999389609590282076671446125705768202531372358364604439026737497358789326418311516461630899820235464286388423183480917007020618603374711577148348349923165332931418509005890369744375986539783570852607829804506852362205689448693720578843627726717598794173315809980601782609221884870013518660270285253824155031681117583891548529561978068762376348081187445893865249989766558128989699745786981596394729295513454763458000187884035929838562345556664657079090712454636701698257978733565283716476496840065470022041250053754349033069725074801368819551594383927019098547854106718037392130156781521143783201763815215137257786387550342108012511172294388914022426094740078203744013679478918847073894537301340502684597594668599738812927393721241085442950691140795161238504357814898833333711162719759556757429987005337595090669725370297168968465670202733015477865543731797457739321273672307210997726283150967037213458713601461455714378307334497950963550787632301991389712319662184318906043916752486081269574530834002030416569258454509238486493078205972911505246441752478406181893102234596524014235540913418633476131627368638007140842279757587603123394525240256511066820077463147682859296077685607532352771153570920269042303052418157222111586680358467399322286974753618383252976674052733709980955025032887587618432393081176747513843676531307786434328518555757502690404175313106739806009174472724041639273124702656672149498518236622040625727210952143924344280928692824865128607314683232059389807081674314309992369867002521328071063899659356416263899829187479358504121423625096573759962486131384001423132128684915313495167402506414514497256134004517907426935263415016591194535267582685741092331018150859987414675895285575113954072271147703324643544264972871514646856651665376733809561985742424734444446016720066019750370528045918084884317799886527627316125959791578903831790542482113273228080891647345207897743493923924970395904434766055685314222047207197401798773752128052632773440973271294681959209655174722476509435473299931799260588885117990713337728991086283633622382525023113746669390513944739112919514336767021073244489849716148304153741803853928769108008587827319760613386269421051402922338047519136481283407658929224678246257934218528404487268265962677721964815943476891391674514455341170849883697843497716130527991559897046250706907069486990756447600985930073728898857014503551255815875992767188133500420185431744534009953987723495733737749697805332897875194444017823427458714158090542722305921202838393112199319670677981867299660721261675878137001941012578769515416645176846166686035159877003254308244667870550955376070037820903975172463321594494640919144822743629562857944656537873038740061125155344135001608309772214873410969483571869307163049364934232903685584508296781055442595643399450338896384222336029423803971051116142723777681473699833193637879449298040269079427558663383044818600852386080249253976190775947515256637310775245842770063864991042228958335172442186174652376821156238803495508841946819668001855779030866998832905684755000604619508887797741608371249443073938654702508089171933589403437455068156762987812881917930135031841161158278373426686874749511692940991786261114930189127767804653613030257695254257474288980597827033322327020701216213989631656966470385447387136590479848359998162077766813402121980184263912279584171754840745263935086261830646072710632783287215034766333665559258839380546984508353623687660946171209363607768192530291165889231615826762226106098911033209526472544603078572081655907003660530305181320516196629592381625299569306990935423993629431590012929939059383896735204559942861498469931716377785047811325065963656888254957217985714499981391418306657497144764340566182008083779628427664221344326989001932541160254552149879515669910429038923558706351189755644249995145496334274072603592847542769279520963977134140699702662637977113592160488214970113181893857152118354542864437924756162835512206107687579588864692777719066757963575345787101797515371896678573508337627076460476418420511479023419431337408908376562227623696974419677749051171316318663331694157424014568750086085334021770971294721055953808816342557462952543019379172034905244597518105020646892928438784521626641599601709089378525802472897511664190389575322446914635559191560789221980974263079734623068740801734268703565602845446407215835501826510496902915151174208292341131471871697819926345357260506477201077843910115499568957873562802680966790791278492527137744203953059282878820854751156329038732689485635706517295891503891074352024891387325587629542161600670172621601212505187239138649915452992587830611149340051388168875635274611582209477088632112299969784629701889060785577200070376115341969747703297360980734166942762263409908867160152709956283804562370590723507499305395797567042336930344648097727157117585280756690722874006124896612850334625034404586500330184964700279740439205029923789917655618728911312559466005264912452388920330811601975707948195110444603988992970863171771625180871881121786509473048447025234008782708293621553906297557418294757585342694865779501871277329422008385931379728170067320277135197638169457102235012098257368969561221159431705053602765366998112302632539480323768939971511623502274113646548918289078436246385982336114622568103916185818835503903594086104705579581639650365491174119884335055904104651820952355851971439742861282591571624677776369613067640444546573793610231995960702866427257276417594598292011668609347273006329821206973329655954313631366387296743893825371238741106241802605431712002897465364363800627616251806548375433371740354868399944235721859466935768634734099194687897949810643140263664977584979580628786860415623550941707431171607750664416470534339654892207717961776534413991516324975041407136174770206938726252899714906083856918633892510899080613524556646823516374123118088029794298449056437281993478726526653680023833966868610160997191221973521884511377509345648039488302076315882538390444888054554403212011492712995188772872268343727262997844320602171149519963852048247337227376565609243548177898178899063894591756843128280475493407581564942898248649772379846327897018208548780452900033929942354403860653058359079929148186300215588932769129351288544453830417383720457760120825955953148813721045417977505574345657655121445528693583005891688654456279169060933424583908398423554316906583447881934138119203563488618199704705181990047529718815301715247305360240242357949730913836725780206435039275954850814488469150201067702609294773906778150659428805386748649365760924879058545106500676985896154168478273551698754845356752580717826905582207057975111980059472678540153080727688609532630332830344939855601662833059089357209561941886511997699653778765982658189225311698678198447063814298259794198878080627030648966274757465242560024727431451218881490453262633735993154188863915299568321261220180653634327101174917306374725870730926625680075353567730634841653840322303839484262938741235841230376671651020414488252498868158943605123079666460565600059214246464741661141407308148939768779779357088187117218791418044978813648155843090064078379291426315027826148505251164288840628721797114861506233280104747876839510791297797879775210422397786734405932428551851435130203470695999718262207869135340769313818835172104401744271021151509440161579204910422868035374674858046636944144883617764990043084091527214832118339255669240782948540852892901454243578068594607808127449014145420940503288001636697465783536814912288639738805275772158912079837815715179467721887134529036028882407703774604217969492393086565632312214628479828158992901177767939613222882223669209590839262852141231466514523850404813793715079586585323406199445015326014890768925530655590755155945001735840757013290390057456634886448764056250960081412718230220995747194112837116849764070193425715436464643693209213600411655932971620955988208562591269256892348446331563533326368399539643410569901202182550099141942925543049938815051942066987983577883606567018628153496936038425403341578765938546788438519273779318572658007548008157648641828709702792402120965187704665117546831627189370547601180665321775464800332623976441707433777893888415781095536776319170618801087871298065801962259764326454067385973162129886335322420381858137865223607448129082228932101979630986641395925677556774908671872107990979729569866283445032715247852817231962931466313381246185418060280597939862043471259368659849501816407936168624474841778292457425253069880235950663793707765304127499603151797621945846600191748515823069758991881072997113102455985240076958528879967452088783929304361932991792053125268189258029609031408602374580461896171296796040539933480804283033686313785796321168278469672817826263719895222133751410148729611983155930212168570527253600630549573085735103804447869175606166687775769009633986876449397977685325115078212593494175736369194507809392508296877354791415828321851688076117467373829818473359496262737730359591671881654661176951794666552960043661604563736071333479952835012381089330219281068097704637445638351851492471635081201230979376103299160479698262945609057183454999988871641533060172249792419855721651692566904031823902664534066633314536409700665917622430261332111403462978101801037120689305721608130155964786194673263995579782903456997373212985572655707830337327151613338924403386934845204401098187684114090458516257577558089639386472955430261568644783006992677174252541523468036094057354875703445442106195452223562641717255071092623869971044729631957724299918028681116037326057775474434654215801407607850371743263907169356771695831539972146882649249267440682910851473161030717353306953204362988302884136060532975988478585967644450469898620351874040871927842533540844692473889982834585673244950182771437648456949064029002143581681434825983434091331099759838999541465041381435335701210839010942852921701936628519986277675721380521840543069165172155219769514974960754762655426686237094471043078011100324067870817505470597370446821065920332803551574132296590959335104978322953542108829202904956026525608792339798129401067099419250011701638704120555839186488692314873828777159321876897192783900997825421769461129036246954674664846800120473866547223411063246896207256424292434358077401902264605514877252077477499252969902750712855141157965770976000114928191433773702952134168990434540838867572653442963437970784942680535045146421451115220909024315202826240965564638912279327286848210751746825402746163302912300588217950938002248010047741603625321799609646507985551802865976407922621646683292180903021646774743397259830057901399224610401339308992636753052222950350871695921463227434323777910243499470908999128326281062079061451070583668235324308077682846049940422570758813164000238207384265414179235288297050061858294114388236438469726985099495685003307495740480081051946257896299766729226809239283110725535279992819392760244258110535673715534955276389147185474465135169199786933994219391760340245858758981154044699088968679091257140279565816196326805055951150647461406114084171790098406804360400737747047458456648066725836579781973700573351982096710324653717850251304128198885149344339475504878641236060305491976599900997373652251279142743792754698022114751218659919091311786664600338694251166786065535592865897459702799550214879362352409967341912031891108850708564612786504868709901963622540573863806733619754355630938871065685698753005943591380514850712726984506346931156308692430569700575003237760108278746495038752926668829484214639326361038633458388028103818604363901296374579416253920200027273728856433676544903210110232969118422972831000599099721983118247647696841004508606921898853523306605291826743241499843888223659339673005049828192828579070061819175153941119825988523348574541041320462701525702671054956150689387530863156548736039067292028647360537353279525085593400805594966288458963422531519364842631869517975433342259713369563731247854187918046915892616454517383108918966127971233211538011073631285527186263019819147989545383122112523346696859837382313013589567230107252202212880684381633516507738756296818258000332448201557477123901916936518155561704794533174387631946510052147829362234518440988413031477636187868261465453137758507376450006711297987274567977984102890541524746566180593759011832440305056453540449209941466516913334591282866688915287197096245521345375884903091019160038040182544224314663608909510825223821459281695380517050874772513413069558738084139869992294753045603582751605274149517895915329683086782900029204583906907417319727315131818429414255096872130496902059969546175291051536984339760862159084718867131383874524709330703200133564006508641764244491612372412787805220773523145450846165410063698039772153871880200373666239653851722042995515875659606861642091998998651327175604901218110235947364118475550453284685884337409719474880798287101072294723904212764839203554480312635530622312488084112299990251589636480088112356762978377707803636503852352887013555772425167089526486269877966396217720531206340778411495201387627288134344362416811154573532473262772388862897055813099160855276225744084711934411451428257901761391508038800110034414871303514911117801612818165808510642572563561723972667812564233707227749348353782861618659713297756862109817345315787582130153194390053641210764716391354367800874205924338172741673367925478140090398509247706846791030002029307533884916188330550694707705695286911219983955548925639979391701765005197534474232119359500934357905485686052148230232896955965738586188539318180930429379022618575858316098682507237315709943134713003137594381449567350106647699625701257997625658978615108558773615513346027949584010714208751969736267354640888507171981414211780548425053488598907762088823539224011516069599036728030092880813653906956520239032759547084304764689204469641027027055983133220205880775900481341334654636301776863312450470047365257555854043795155002604852633412461076142000611838083343420923523687908655840096120703086162219923343113752484045981063390197429443392300512201894594282444548007271043111955620497123964941527851084256546383032233130315731493743577333606219411774666341474438496062668633902859933466533354045312095546679101462275709831977968338487060691647331942766487131358872223856676060307763288234347884381131099141172216341842855423726833763667729881089747842249237290523798841553753502469696030752196073264581082881172087197691128872745219470494644536648624507339613036398403641123848076449957007353481223235140694656613844309160678023149357807763428559607629332051144144452922557980732754778894456270402583171765787278680337604805066462017352361518312887957509623674586653282652493094248461454976802980404590887635147762257785712343402098884066879378007789591634746368033750872487214226374342227290800968370351814084615735375197997735880121879807403945282323956971261350201421971257818298021458083969514138588405649316585997948601699289165332140107570295781647599179514187395966382136401083889400437358334041571565638256073033319301509453691094991259495156590835335750663459569446414969065054189931657048234182041360910672571538543105612218150605900480299894295737790373847062554294078073227354183704218967304480005378252839929673273279145566101484032707716365132039015861274398308119405474677135966957898906347944072919250367861080525827839258004567483274261144317770091050951321977042872425635008692796330004503514393553390521752828494835722390999951994208046127610475858769461013167982329402120837350400577026909073490328219308624584146204749518933657559694718053055055960635529752759397172606801761469418102358433563420376462477807610031024880364994042114086692639988839535359194399407202334815662710511930185419378224843441295330578366170667042338719315408241372864448678539769381334474575952044071680228617729930693019492176119416387181501166645536314580574146994333848273850772308060449461715721756755182790710082846344095123293297340703406032947730172809607051897708753589638097271313339902635157806158617011699135194438211695183644916057038760729953680777114872297469872053187465646299074895223144271870331528565477550171008381351514180543377758456030155977177934127934426234066552266163085274579409541541974349632531319113244609348931308112011759530393977860914620577459898693499976356316346906165662324503882442056330714843350610034738635468808903784605567145160927572681861255673813476864408031773469948605031440067433211943004318580388631691102773415048200647299825083455324464445292776698591149586737521543062220266464415298352953040575577839132290109254321635812043572341087858272031719850949084734828650387464163383684499609040752389438276096501670825250442763704188217838044579600298271014322341537059032870676818434693604115534756140366978198990192092783331342754429859706547567997276739747266090391543000050323708047296550787618797623230934878740246067927226495052539445779893015762173775952716679639718528219802086258735282490018410132986081304447456799160109018060313503795306411988622559782063570316673243893561176716994690341381717368506131850181904849445967723248079157440741313095412587168885067877755913527120894443674666899812283950396280986806300853020951983535190609310072703605921784128564401249284540642919142692866615528642446556530999741781871283392388599197349347133948353513583744109690844503135313014640271928291224324327162637752260565716276495497758291516097889769344155348576663059993701708953682626341611024768146877592053753247171423260056317581505448837863112227644423089764816178190939803150788750332506305811855215233517340693348226179092261984872330823142104749769826040562915537800061613413336230179953259766385943885203735351435015656812825968687804634139051443584947625449659397905420876731007688218704305770088522521636686138518781411873145397708505740807346554105239342946358322673996993044384798093939569547379745616318242203641384161637945462761229713257598025756573585679797844580438630119451573852932480018167259315097245380230478321327036292689042744157018319485504338535300394486954747412049531202449859226124756733056715152764002755117611030238938154390284300686566782592540642198432100079856268708880167475018415164813978631422978009537512143000140671668560534322414019837187214762297847680902642578184286992369887214105095097417931035133280928026285343845216793536402036398383688058775269140279554837301633083722587824825953748599170120183622055191061290787067866041410390471949185527529017869881986405793669185894128229543457513200714311280161810998564093286681045879179784488774774998824716572478214499816116663236410397880592243644301750262701437358240003983316211712386766873603913189508375575931914153722694984540892241000145329566120836831914583788636744779157832063133337155475531781863902490221482650985490324397798735702399708676368655253948868070393133535469273720647243419451547478105171716964231833231742308091697536854762130188219413888105493843517374070734566990388714173375744621321732961211553852525063856583390461547138608720550665950889357779480706059597535694395766400474083828951185365903946949131391886092273392719983172911810311512393562406501446039870229304931795858823137946516811550545422149549728854169766960863613056949595587989481384318810350371190146291034568774927368737332869589276126861170551883502032858330182266280939863720390754268267288727564672687906287532696725956648029917707049689952149153234978156185939841002577969391789553583225479366871557261265635257735907659488158353190791008672463844559634240731681397850971272318950923492683971329918172332833509504170853564078307131536959031783396294831627099378986909081600213258558936792880145071609718358479460963978570849755885116408470919869134488376083760364861871747941799589258580105270735608150763191536699796388120065299575104783935227700273063224328368749772380980540735641668803303347239234671578061996043516024415112367819470204759473604224768052859634548509157617187952120665144211208078318888973910692984184221078739103366887871178071231204193181039667549548445712124590509975052547464665174316448562364100254598433029090026683975740398836126746982203767450845317133817845971913566072957968776593087841584580985350593416251593225461919636662896124058249850040046759297798205435893507064527879725138406015763152891033448692472865115741581234568357914955694571689764639912325411362748880095800504059586591756834385946958121765497588096580589010651736833046217639509277999223152859393793854310532259045551326850587028869766149127168646237995883350422311186078349500357720568535580626871157679969506752008097287719435611059654695739822599012427698891315574194757111517950459369244199869875815774336596434256965570454953423473588520826105369477465131299523579682725878014162744784263190727037188900531078771799798030622663892396375924768447402056653232707575601209722893716570050026591198942348357925432551937342775594103542017939349681968082265557797780828614838501640838971132761200929404616644491976788807212514126288802464613864116953527670202667041697687066593159092538309869209507664864704902545154867402597138420075264698292226315944484710315435350760430853894047438124740356824832126657218750014673531126292617868746480659523207656393981169388288622825995469313886093855387704150271295096026622460286008366568928698203621070979723361261164846097398641871230198843985445722561288997849933335371991206563428689904128083209504757354082055845484874544145449522743877406151203795055836856962458126158536901794759005250213725978670583756379225912077510331716911370772783219347827224806472001510672475665868049727267353066826471760481420242490335214662557005798965065620666217503808266696545357911972116682841713771381142750029155449921446622525108855553270186608483048294743987636028113460893758288374842989408932425253434651370235576754763735325056786732254106882272918017058870994814073656746265316675350879929742665911625247727897378660174219414281266665589242012947684905947438166957507302315314347321215158574990929790707744820195328654312487531726955378988487867148271158890806534965931503626074475680320290153648508167650884144247294697087927630280548993844041833974699792954346871020046489057308970329957958931131456663497616616508171637070088075030210173644714303283516207937830054675271799703338036838568184665136322141670562725392664673461122400469062543269004872984750915841319393663723227560241050479353776729904831431419673593030258696423554933524034824378896586275930820566172093015694136348447824881501639028860594099465944377391196513669908997707565292283896964767480121235252416033079457149141796404692208748524589648491304820512561005305410645905753499780677488046703259330030860039991467933632983291025790696646336784388482597655169130409741606702918415383060069127447922654074402665916981526306614272320860909690855490130000930318394954555228648465114751519085535085415559049288591223246319378416724214408893726472661481510282454763546251987339186555500524927787071168212738791584680562657777855884646439136347274851195597918244958533669228274051999221853861019772781961287077547026112912336715264657683801151608146023675004084491059821549623112607461021372876112825105814175640890194962785235969964408975303781840249529531974541698383101737745563269396560390538629323078766223049005438047921667771030896909145700472869641180027655766659732329980494696479562381487388167725798614150942330096992640884909378603898345164159457047507765758769070518484331376153352736273674660642820980158698451265762170522005962379303555807269796130465762308181511165937276697846140691151928755892234749653881099297084461221961050608351682076820357424018424772641842816606761881588565677494696092606306038053828580436120760999292503643614877956763396768577349051697347564365745386784726626099278140917129853165831413182581824070072438324634835914129044031137317189205016457036705005487732631292492138633128785523186702997430708981005307662078554066066244134740769633110872921553503422572632970165086850727071887940562268071667644278710890019655838372030379762162953761088673438489802273605781105942858916529386079998246535209971268839063214194347073890184293155329805348836655152772136846347310464459487043562603291687982629570790747198810935294136535813461126833496741992335248891054937298736376359055199433793628287239368851907190899138482985769755734699051368557741767382677945195250783148447846714522592341286666190722973115354169584724408086565985709394915867841821825886087922435577144936320931868636182110470854984256213898053565173681362082959895306126108199205191928509941684397682650356400047378176174723294843994508836262301114357924873917921589370094765037948589513123996716618499727866305922693489145857338788955692393746071146865658749630967008630501581640636471377577900389153433083463540434313433810248732965747308716890231793099091906070561698656044142333489014636221622690913630416921820950553895993919207534640242984834801822670391945084806726915123721636947915134635987641804079208404717113534370406202904901423459699818784613617195317131728122916220278567182396321589258395882808734553958044250083765927871621698409503764705903383413789282211121630409108484255731087081092494421157688072978139076992354297994860940364125899884365116769672028938259566392085124528706428620476391029100721237532779099191323232840490975340319796704409880788212897102732743679602726911274453968243034270679191016327907261875585303023441616795027525463387791775636536658906430105817748167550917537485697949387776940310910350974104038758162677065102708112663388442844819270159760898271184254131316262363103858170609352281494920011677494026129853635411820924598647410974521187245686222281590227413607193231059688076257503561672657462868017057513563111715978163658522544577449117688203651453289395581452672249815294633498674962326787745710762818013943943127654155420056992500197734159551190894855172517501817302800622028355513779474510591163470711448312793824216321734388967730339698987753171766918719374793630268099507202563103528790247447902724520324085684530481677577365195728455641802694733739676566643668077001961081078485063172389020658128051622925441264696842213972413889377923177856109009392454561382328419383124647329718953393512956191561584921387635748318102692401409304910996908354762504169113179185011323169590733851715285270796496279063165383661772366259804645293902124652885331848702413945541554832454785603879524922923767159166253598181715615307660101986432355230583828988549771279910305967356585423940234069070920514034208435376019480251643778423634166845768238645997370689107626334749224971123247985127233167629946683851241139364711436265460352850983837938519344004355511364881518137051563820948105340218619855532262207436871372861089828924620096947865697660198230279042089096987476726628474988629832151223075307647638638436461003481585097305948222949454820255102285736455833248496685387155537920085415045936214819267821671364501116363150721712794634589783736454331205894081264148590269234374213578592861238197282050836450785441931027531692404785520895475041086693400266689781105035176409449927817253915989334135212816864809721649547665844499851863278004089220913201449164234010963488971081748025504966042658927862878401040709848963978408189440646996330467653317935224229328207938030814012259054664598944231054872897755774971420169830670697234175853607815896157522692170797783202253284042173635708512589711251477932388417683338514057570745387376650408973135636363367281303343790410438362875872657020642793244877006811028713019509727446958766954163513359646391852607587137655109047990264058784311991702226965988912126404405353346950791185462482799035622053665911673412591068462593043159111402735243697104536458185094378421838274902560047374123025427717655592310918147657969818950676915549591215405796760895438815240442309961207907277570330597528071153797647305526789143320181097696422939840907762066499475718773583877800999386407708725965662356437102966086209832662680999899200415347337435831319441789035914787236564437592310108159166835168553575020748693007879390444905190104873258402986569068024234211088725715051547368160122240067557158054877737341105943623088450984161998360089343626620106754420684296628236875923747745114514552385952106391061116783108135934285491432506369114569255816934725721030403781310325775587053544143006990382439613068664667378569887540780407115416675362238646282569209673939583863721152181708948889692113854099964203121989965593835950404147001170155884307153358093133512443424311639000543442483805125306121241587343184313857796226925216488570350578149959748775423810621099497213280396504335155260092128616777407592901733984806115458277970539395884284851726855272119034577172169961479085436688303614058810143437046431130832310386496505180047363367447342774958638256807199729692907908224957888290563872510685068243450016786567931968247791436449941257970384675924001363272107474777236560499119913069130722039003492561268750406003069968643889187835544883197896478338414019100233995827035346041019245202307041045881452159016115316402236335926115017796653290716277997972800106609970109620494930664832696980601038829549013697386186086677597270159655948557458450466275613292427613862030392261246706528724845538666206078599706236430269954115054030398180383251619413063033696408007710790854623608954414315546890822456190044602649109282248775782756458036785322378447056744042074754185827919840286851812974334680128289593787328616663849470138744068244247297212466408244834513925989376329588817100208994348465262169497955548615621165284765461425481742060254283367965951522947994651376043628747393207467215427407672559084803045469097012181058593079112189586547364168114395431791664910602322469472596119585063922290912510722124643237576712264894175874981247431237431870681550009857351381439611788146971179932652413802414777366103937923837202286095858854987914544375193706065118369357767209784257950077590866921630905454073299921923240250147911647640837184439163099040153707541804242010253550279902466095063081353130208601338887179244699809427810357634618783220067808711291725542777521509167691637582657743181394467453947849946703175653877153696264018424785280965766171029769946950254742639643196157291515895831308758969841755300406476565376298941290737628223873207431200415078172912638584936022770791589806230570606860059716603751627602053805287658908494001083087594505613825961141508957845498803932438605783737621506106196147493540351147580924701409735827549833534167303807899724016633329983368306274523092376322031624621107486606251407317878175500104085278222139756857678107379987270312834633856392631254182809858497573843674190618916356380391004245178061068822126847871701818781464675671851985479412865566059706355066323706415360593757411710876028771057122145753278327700079987855084684422180230944847967378737413057713385324968691891654640410737437810832456410370458827804942957048387012823056350013555516352166545258517127996948377235299425466476967757342352864941496896378385447608165476499250832243893125140117020097556384719638327243633835875956334538918450469463882875465452624755055468584994401470635990426754133329976954022182900867905749274267740981480558262844167671788390730391447148488742194422116773291540763588607046907019863849452346016125970500296280393707048062214175331070688057875743341658353663911907988892728115952066901982500069587645980018288485131709654538414475265521137742889149980771025476680829857362025411220660661854431052632911627279453516736817960482787471641433293878317097381122237259493405355057143446840319830501292750613593262094304366674497435430077673973762696628648454635766509916796880412530617426720473194880271123325582070258023548457929254618031308015485990898706119262449527124803864237538909525093632951559191373821114798196284176217960380590315617823268557623290260472571099397156241149998996575232942044325244704491384498499700661772848996677855437246139982662422339676565725146542349471676231390204956844078757970475956223141888727701936095197629398078438155067030641675063640361531151891845568203275786378592774701064613134683510296669966316653971488422227219758889944493259666558959343091552165815235349228559540731134509842480887013545048485588726824342251316879622415376140214788237245702220173844999634002003069568743624353242733821658652094348491358400113135097725220144246109375965996604595605848248473286262876847233633003514456841868152958314297855318096514797157931858736709001135538667059522215221142571712190873264081970248410483484994127616188824839328544295108651400965232115980314159275082758706897555315209207224490275833573615977252463091269111646156191656135781390193406924627401007705729176529489213028486458693712964984625412334885356938129955696798017501807818997596281257975371919760810543918170607678838381481217117303182408188075573177582394565026358368043568919089261083704734715610920112364844641962780958089457917513114482324861227836325831735094409579172851151128450956445774312012748627205353165007226225363045482234267935203923349942869025119898608531010365933430093834167658296353211412143665427007615096789763580910856256019545786079030662061093017936029815623099531431515402817516203936101551483623924696623059905808580234588604193537206387990333111917884082739990124797830162086042778588134795062369093549009751134567277837687560929025754936261139888177222808505004063532679477376936491569756259196608398570872540939653674692746908110558017328028152272206277238380233202533219218241177265180779845023243324667310831413416222020079771459110338204981326988723801531403466892611712036770084103360506763941100363852314926375740967113324361173586541439974481237878539632662806733454718161518971424245951529902907354866197013160147981252628865111194745068543569282994491758766666463804518588330894899862037894221906901216936668430351962829609975952032306893224042798194850756885258035534511852654700862428461862521965750558039956495653397794355783419583157763648070807551469974455014979199196142496488140856770401268223272456207147516983102029311880887452310303959611522643682913994506429706182016612091778829688147103177103873874903873199342006037178649419219371391439429915464902465780147291108641296537598308698060143454282942385663190734367406338632356273483080997482632809588511806125118249680623412329490482257811707007458798253640129824145623487421881372343485468695124653297185285825207468717123942875948903879355696924482900405842579071434849885176738898479961531256471125855543424568201199836137723769579741386270196847884255980568864428697968889852510049811182111055650342784821197652572136977234838136989641771084709915418516349507831637264477406525733516670914371965347266286217569405712146378807816265863775777066117959590572818502634266252238038819563228471801158807070151679162606413962680921490376782961901931552339039105253455477953792903444920413504088997995080245866905384812389262818755898804482402314822764119079380284385153105556756546144616490371017590919418347641902910089826876090449766485988151684711521980582655435767343735711195355554597705850999049047773891527986851463216384238380673121881170724960223504108717831474416647401062234310989615286176853185711096506557433487335248378159845893675338141003141449877281024185182123148859373079401150437386461927406182355039627467426309120733045220122686071432538349496102031709970391687031038624672207018543772463544098246003375780464029529499589779933100629986668556395987043453741653987496060085311919700683744177742282558421197239280099910344754710875315251554510800417800038407759519672351143837624675644047661234574661986460937204781532703414647042176340878618773618046167180745501399013448742072423733948046732024280572012214223768947410979521899121543910973672199127056631498734571080089735114881854679892939829871609684712848816338745190934893045491028502964732508781622706508781565226835541782429440200064080815609615760277308102767719576394948620207041013225607564573705351284690341127698699475920662481899288403472574664235415943106559013937545160044431703533759885276050384662063171189060682227113110280309558306140094293825457367102909339721073178613484726486090326729884389520533327972692276558492282818844681315757349286687630099860441237782709183355868622385160652506447057828616061397303416862971941672359669020072156907198587082733563405268539131419679725626060051751577481012611529814960513925797050804481874599974056219121631139471627016065600577188774182830154362439309795390153378582398749134335510424595762731596054652387217163955200108492983153853445004443194758394741535038214285135711472480804757941880067289702670160517654273928057874854951525843418027344923410659781352249540752952654443131004047001781529595882760024276113383659864680323538758450372216334344049959852942459496884312759126249732617903611421676621501627305143300076859018147072832921053884054610556715779432956044314135588893087841058618205751641706798269170853952427942779248978225753518999531390398065771765394982770808803526291463457180124207118444105627118156189081407987439970551074776811511577580662183343049319114162255693220725079120193039924935916893990486815879726434728628731317077833897901305019351389745955566235118172577506914571614039536936288393377689786630005250062659030054654183822878293031115744829493829471030829696579153866343414205667055725139552693769577402816649932376454275366825424444380250915294304618547525781586814725624138736497434863757075886827038410322440055841334127081387530118826730112960819184656406877445493956302352132536048008280670005925285756832340178901683170303515278136274444291876082712044259372106730274899133556987520353638372129298995420852118461933283504051482316225076127443990079906415324741885192182189857197243139418744434100593247721146441303933298034630948335604616055554109351483350558403275965266936236156261324792416683810258263777342258293152716764910247405719665465802157879997369420935698064236578671577703553932228790338051192626220551655635557554273408471101774307063771157917793607234417470572378970326708341783610363670816928646225278664817447849731935234205842599659720732490396136665891251819976011323700428845442227535127290183713420316733275245591361393463861836336104126374386249377931246441638890956263706320096864762989943559988948006270182234322577722895257634712515635384863967564942921034701123885244504712105707142980639221693649110963957779574203509629108219826405313208187219574638287559445469061514915489911677982845210969100713697711027577154539028523953539511974821042233990467457336731534680292488907491981930982631858277107061241894449486329329109815529372802619847858183389701919236501541625329395886930839890999839901509225321883662383363037126950864850522393623245577444057749247167631893822892526871431240099409238826228800576815128544980646683352704014951284226452102604756311981582464807726263550538112795734225636268382690428141233427369535537471286208965974540610774060174956260346422446082366275780608555806032750094406932375581834612445284084953532313976274751722627304008170415252361750366589564263726769695852039275871699393039047004674955112861145331808062151316747940344299513554513805633179933565058731451731627223153638949883404746970810864015642161433864367460056132937663521936755047872078589332531660961088186357359531427901650176916672406793677059988560146075928828312421523696409177888090822227795679311785566512125211724516050561097492850240597283639835286623303489758616373578452243933070659199240945065678322879522760125352328930095342107004591605096037727283215030052405743212274978369403115345411441861050058182742645439408502182900675537733517479046447212703920890471918882037715649030117205423355531489780557399037222407907142955421542853480854799207152262430149963700511789267139070400613264168665794863305332957635951381267309976825735749099512424917819088708054590347542424475757195613573600033889361918331490551419338799955483659297573636588356276164551378965176109782216838790241410134590412334203316194355931993902666352805669275177609267626460876348465738947527191844236038196108383012832143340006671501170648316672853349649217423754545602100197340738042837439619763855775058903765457361178834810493620151427566230291633061066785832994454464309766600700124597779553739740757912846243290736498243427931017993443344056476206786997540101482292795485835724839320092722220249012743826920171854006119680565972407541205724265693305682886627167006060736003680317353488021373928354738072616056853248687884996515942615178741794940762579744578799849403794902310119946680357975368359648168566169104858276600243365272846041463517597840966025841895755432898460440521446974729781416195128044208024811570955056852811757017706451846662530172312025556163049683535544021414846031115771916507390584009945456583771923776158689275159595471024662485680052698677957757951519202430987842591249326814083854156209316603572101210536307906232238765534757265313795386279354149559691306646149435054528099881664392006142679228545625733819609037311527035872075064201589424529153750295133158419578117794549528363567958797998142977242022915258990411829080372161258090269993523089315576322335496766687027257592108365864785178986571328991755275958088782207163036353790373424957190063428953091750415186506133676264509729813152721899188204482395853054398631203235610939244160545633067802674659330997775595652394362149442729566266630510328387719656588030056887769117671699788729107501284681522419138836618951981518651156179440282924140575041870242216318510728304158862313327887455203982902081752161610485145335403522303771537262480424238690826471719840316397484091713856482998252104861234563239303363896585823150165764356776704644673745906124646811204486656085746941077343628549132275249747102273751393431555785708879645657148318889386138623968368920159009940509455325871306330795275607724858421182207546633265142149725229610268699868828897361376358423636231143147142164277539452546605612698478566078657404906254425095159756476347784485861408103570856687722626524666955792316548852358898646242713650854953591515229404909603042966639784551049444217863093824020560065180123457146210591514587767085648604991913529051289538792513183959000285587191702007092236980560555209270815038820526377581752924653727060169939846555492997877255486609680968792821174573126681141689802677756750676640172237103503374751921855013300321537580552080704120530935261488414443649594238989976669062313011045868621183522788751632243651687225578942601642717703902080208327749625342519115992208444250800867887047912796283235319944694973106665286696868249893634153700748453031525849544345276534063721837755798696661924084942049749183481347513443264246804008851558718924318278406736277399009414160573611447214095893710600642635392584985907837251926085667696267862817154981752343224009034864527815841930453148869977374578754629923678103624546217097296911713249761563407223079317650269432677151029525678613744613673032526944619222042148963900294877369810427791250193075716776164464245433759346383621043035901765935633544306463470684309348763493751791762602870421517779660717771155765861266398875561179938699599189940294582682492834908264280896188193440637913857371128841254487805116684966330972552428339185889920223001562143956106973442547287041639162965087127244453384724991436404501139768369893519104073923431156312122205730874793630958521780176200197709370842778667966270860733644507327964725541789648803837482302698815238470666648821191039750283523863790926037303431006882943440680234780582080302412968964701953566089218901229735215749260529103898855434814544453013114510708174559855671740158566270836739438959282106142241983261211162777183174112408884373864600882481837149583099835555455665147484306840182111063899882332987806390416626602027717318805243424757551361597685996286943461797812152080540688184936513499622720278676212593357808040602260034201915015710025687073196998857413862531097478907666774709954397956462317439815500309650911033810158448991513463319932449367819567444289660030930376414344436293383765042647043644626911627664074828865171527162231075063743475745538086856543701977439725841082850998997303276456726838352537388382582939749363568447734862866840001481324321020785755356445169006346551291948393866461990724306090025129726141575393792012155077151640162763723683676730808014731593530142712329956885713129151692770422624684787157801156468065001349274312670414307953049464288513410723430134988759217822334666424862614500433165080374100848647762036067216789266061340163692663953804379494203855849710378749959945278880622401978862197472488871440035350118379919787936630280681443072708532082429751647398971051749298431531287617244760793440843344246787182283192227745347397578585222597365153964092058739411194247199604850996174496155776645426342344965222989525067467004027652172691748601515743484349332797902975411041737770675319162508372713852029157000544867295636050666745404081356584611909821825382812466997147074015561431198508423995127189735936545131003630991371785244406021309098754683109174627236877549398830559590529128935600239147730064799126750488059754390590167962543409401482699130996112184233154934257516096258080952691047489203987598238379745988346288389761971646783300878211505223970688698863142107245401052878252594853619337995418381122849838725553773983751252564417372519744550820791319118449064944210994466616352065498460207735741737896850048682944141668096803775763353138163382427819868220052231848378871024626526255321002019760500826830613752572457628100580161102119076449408847620246312722275383069407236476637883265980744433956965266091243569223100102309760024076834126822746042748731682129047295390411536608463078893188796525313486784792805455647403627920110141079111792070864390875963694617978169869280322429632603589593908676504147851191083199284418853036285267325648592906880386097385820089127539143602306626931621463328970620967542198892052684718050149677939944421341662341826855917397307459327717227124596444659654876870089414421592177556141969146934008523731031274520862003577287946613794670286456543736553332389438406377024769744560254955803416324075327419819626364576474375267778730862398222742772621302774961247557062920134591529071525738504812308897344510950886406571182065192899457911386462873069216807578866192218620284149832142541324195508823111843385013704869007900739929747980812760546981190072801074233777608428599122676440199356141589530757230858956086272850801798373300158644994189932549149400282219941432764621269049328248982112255789954574005745682042059835754618256529811310802850509086703099590150974051923514238914181880957040602490399874327550106895645583225146061195187913290031314985192301503467781298155160410249687926552124433352784606061264009495267163458510336128127753110354233691097269355903153340423041199248918582437717905938256107122057800643648435374557825381168551979167483825080756727819264065992354219583177946582354797060531963327530002189354448710272954556425449506383175446009690765377452615603872413117995276245585361871278845541900811682039535474030806191488447065220016815843439721977697322097636201329655087149877660910562462154210531720246054527094511126613662424053944456810094832693610372262210122862611290603969419393832702614369874373993884477687648636653883981034025539627274288654771146443961109331119274362589753107151963520264309233091152839504458057472876096541218298714473828123081060731239079746699086669536657871874824226487130725738091410379207596446611470197671080101417942595360348836685703629691606282986935231698140762597960011031508370807982240213474954721047394920794649935763350322838026492558451141585230014865758867722531957304180939519517497390955614897809365695969491923368898925182866595096550829198290450052941585451725938836804918696528325486101438527792399472641416330455698835908862498709639635393168891060125787629699713389622431372498280270894295170033840790905219985406084803952258644731997538481019804259353456913875361811962503118019976849857699035295570882935442379748427609270169020161110272990038818265034689473131454100817845319984284173680060508197030462184516763844956363345491392720941523426467803037633019507086705976333356917203999364911625876585003013725364692811058718039476054734059982112059940018994428956993945543368927407648875553692853010201192312776157733583214362834650015971999194292586313515367402990353535272504384885150735739611975820751208894616369966745857772852658952113950855185145527598751831661351052400628155838826606026576277366839543654736311071205020095175271389935302531209294697750580105581814543248013277597378639413517147833001153088961852352719202556904502648581558565655635047284066872102957629360480134677175780773622272159787934179585021990202666085625222381281058582577308715898139588764034282874642811432313811932978037516036840746938384453886213368586200148577622121978854697846770190965721443946424208180714809845624458810320864406318054830485114907976229254778753868794393526882353127271533489169517090291147218829388307152710030659867675868988547981658767121528333919181175613961249064226348062925747281993609832238477341269433385421368688485925564168207420724570565668204257155358636351915731466807422635784657538912365794385000014981739873551103400770477167474816605725252670806562661629902311202625412166588520188279374955696619930847267907907798653719773312236803022842261220806623602839611474306761236538581055888609840165458082884986667735661125817845275434338727178170000715418078311878496095466989963731701260914112914364149549530804178849036181810001059167859413418523995282379810964173024291084589953893699669029533663873157209054617773176579849331892283716124042098614588388434735953136871539401930589110623729225934707695337721438792919180936789721214879983448846378640442611530284735695758579866157378787840179168104677944627563807561776525834551942961670236567634401588333242748266651934785848964221985495754941876927956207482049961717505501494398948219528253398884614165163160050807786862264756034481262198920896792734211863352381614840661787650613779582492902005425731419412349618721350513490726407165626192266086878052448244726744103067855633814010808179814712049771713819863743171362430143717699498829366028822993379434232487790515834206070593134012592585060384443735737629896176844585586422440515282350191287539779185692158538821612679235667113559348274828023345680412944442148073038539672901533085526555835539901411845916071531869695778823311031102615763349006661083891065135056573514468184073936356786744896048572686485025678139870558626256013758152241861103532140134347728480875947536447879890167222341553266548643609476384548086968838313857205645150598191844168482141383229342854397586262588677165828458600884704450589824407398354915266443030734182411566461696429139690113295248414903444525660304988703730988531447258731240623269691676850199787804584298792546179400064902386556246447643415462909983341180740691266921504696939782016308034746002290340636547478151087504609641406744065765363826271812285321215422992911855154971662728130526517550192428023896942917015405380707726744853902868491202787074453947590367868905393298463358695726034086564923657327100882058786737601279216975647772898045582539164976268044327371932881276718243639242200907469223685904446820794099510398802298955969567562207610705108468135591198466527909799482414914197980858694042419382226107135349183348079586086990413567220881969988423980537390095553065163477479071453985980008869889459354519090424389485470185724709320519048877168957191538737434690949975577774722817833853532002561867304130066714808785888284084355462934371444436252508658670294725574343086096946237946425101537892598561378419620451814573418764844840731108643870878116035512623810257423467665187421045203041954735656392781115674184223834487171412137930091877206208312312169794917498644666986919356243696195437241940756615720811970318999219568961527537741779606860201597867494841060694233362229895822910955846550526036033916576989273111427562111277296277889206549012993260788896917365049576095229606409405278921566893671234252903036097826484142959056161248904810808488862265746304654095788029916523515888314061582501461453460998787530542658400004711667601951354436421795182711223022693618506600906822234684358365036012994065316032025287526900361995881718128266621294856177998747612628397743341631824347865927151490442996654388557169162374685681157862216432253703388835484082747479511273214611359652939680954325068493121526034183540901713457603020183608144118082737178450770076056117484120028204753395436075712931084067851585987430130350309538865778149559337109603826808567384856147881034263188244897251684539424067543160535088998348456068686423217336990467668347198230057156000531410842140157077662553620234129023059291871372652488181810179658490784324102086827325214968335481728552927297631275947140117589421283938401738896341153173805154001897083271456478999346824845795315733498058699645215289947979525342277544350325380439941192816868812640468678770144982748422463415774913685004390027105915208418121962167728304108673051141393195141224325133167896793015286862770768691616971817292075213858855884801444142847209002431170463951797281913127784618562934910908950161102372497676317713253820517336634965739842634542658933599918534501577183725908121061826184804244978068070326941441482139273637154800962463404670033306644657859859144274426175908580576690694361049739368706986122441378038819527160817873470545546916872865115616294714515445078189069713328384874461966120720301583586903961795095959188681779554309096013471236213272353336574272407626042913166630358282030994296256358395868162262647939944359793740916399478288460819321708780916158049922519924064085178083007479112576028580994577740026276710361727485160136918409671939237893680771186741764036173410073154894477202320082612323594187224881815661420352708210932115540520397063042220742717662417249831073096177672658381577980580484878596271690599045550854510925848439549351320949097123701870230841807272377963450819256733419040849468560813909470259588650767424344285668259499870022008314876874332903405009792859925563103842503029888989898645968605211617589818675560990951254347095445821806893833489153792629634177937893508908050921899019983562913630332583396265422762683958752257922201796200627914355115489311822864906918251018570337940487416734149781421466118826457210747794347821839652991884912948226052462813334998728880676674758398350747305328427538509455419407439381420495752409502229968591982816008989256364821754358228712353078500707124475570004598763746468061075674021351056758747197113008938783570475415939965121047810305576051162738837476250199845960725347807527764232052033492353944729215395454952211759279278263416890644429327281905826067307763350858593542235906252117101438367039375460600599463798205817418575771829937431134263065116887897566499789348239513866887070712717321215940242103383200508894970420022446779963392452566443365766914594913837114253324104964965229518268386574006688223109910115073780724029829576960922122591499698757904446671069184425313973028044360283138985031595105650400231373951021174399311643947589763070793263931143444519455299144133030661173927985644228469839068487539938251620847407748915377139928174342218043051557980413112392057565468819369737220671648596097220541070677348762414333841407558601379622847719808195102972843343042901140335931714245930748208170963533142538187669596829603239262772599240268706719449742256401293370567290958370236432091069722437348697331617613062334760734096319749936962675983179011191599426813373553553232951504169315391938275139315445052249556299661581773417269715803999496323670168815243104120596378654348428197791500042503850473573884287653359526155648528758918554439089759389198816250752342647694336881612560451513017766082045330313609968243613002776268918172067286686815849753041626261616651308971174357621450027082164049522830551452743510973933058415372017745514901842331209005955131783472678718791330120566619148218682985423494610951338641935635328994509434613825385747385965531462434765647483862846191743067421908194680252993653699962233915143297591881667911794591929839041126723878066394287975936972668088854695417185702980255570641857145970528905444833755320893454357633271968847987831765573051589135756055735305398192116562421370748364436882414732670172087016001612890439053897640842875447714581430848306222503095699168862696695792528578749334630791814648207821300511290537217730653778229029418885586900643412021802248769962865507827342833509551110958948997241787519637422123074633146466472473459688579302196443153571824044584247797863201290208301145952399457978037340112718469121031775637844892109857939232294881154799748854476636489301746106211444716118579863389966542394415565041639156849486340601533084968400404877666578718680468087832237594708851779222999033102458705904959404882216038821641650524384924437347058240927004078185728586216613379628459585947406324748728599475593420336998547756245238729114459280816457752207984235334562058261318762027631323123153454488162785816973862224307575501542763281189815718444707818898310558838037311819009140708483641625530419680333350531757515085422925370334159679012108570068919458363907291008354233544323459072418320664909288381581190227244313609012948828769663919545634857631828484352191663201766025414088549217384508450063260202424595156920855017390760675658973655976114450396379786372172809113019351888221750378723484872294038087554008934612691484051469169954115220651186221564897005160474964504664064666473533874893644393872627411957998726542720355989923768709495244072982442493508667713015468006651141104977196172052834189656580692875424621586195517352774197834694251197895987103648543222724247580499880357073331651249951869690947798430865876607860808998087867981266315562081149515042873856885957503451396366171306396924025500699882535252879197467336986671252090097057223439340057187030713972184090421384141885169415672972383849199696685507050935899050982097127014166867925973939602472668987089901241422971344990847902088312792664866453204539660263397036045731830195433430422129065896288830392026153899260452012052107445884048576277328016472033113873329742892435907649764054780202932181322558499452739443833031596212518614465753229525696576055057694776965251629654019188855509604780726381021732212479163650269419409027009011361441542975278203541851628669707702957074521665369228689091575039642421254670890551841139954453872718788913833751745054055841389491687833632312054000706965851397439290255167607612844289488737472227345739454832038732854040329212528724488524942325526742370439514180747535048909091885844540542447885986421151460703931811857747006745972070493979449741047083423911890543683892311679910681326698956546956449017657452547594470222080650036987240781356925333863303188485791425933299315745573226430644674407198298844579878875235936167629317538822559704351612665143231866233774798180209534702665800339223439113900281356444530998988377272550578911463102947972667872964578538719136411480248417124364982659398498229801178681527429178034686142581887635509082911051017560791812632765954134758288980573845607019591262897467050688541049655646191799342174804870872951723345859725288115906049290313393317290279907740569714632907151202580288872263484080787963697903414868764326439965440653451915134319846779831538659030894506028427325232860334580782105849055450682852583089087732314281965474059996458104403280138446587672199782283491362058302661201279478515937523445294105235325339378295733817099685979915510344468096472591167350177047711428249595796545922389390229751876515843830441170427988642022288902768004234356965498349451852516426638834066150079994955436607843788359116210811433221266454963249921047452840745839434068600789702229640421637485606208071147390359312417431821578773977157664287570446627766956538024288422397745058241691911738226555568633337147281435396576951887575531485735270077634189564616380394910680101985441411376205007174048047450415005074886659233664115129260065904181001119356973817790459816328607458086985733115660855600495332201553793791099217911318009167399054757007355829043918473266459052516434433498055322080009870043558396954110581912585015062968787066215837295812878314241829576136260846227436987406756107611904510475630113931424046996066328299589242483367664275199818810195734398789131001823799844130711476826526600622369220440959095904243322068390570143191888658486690294498543592971864468757161719421641173453549485596096826291572699193024547786405183951517701426235079975756196097946876760292141711985099522170227525147689152981641187512120145221534691622001821972094363998546928719750146903938175004554982379658641388412143844780109819553027483546506830451483189295387193511107981866508155056415858007777601656993583404950367234081979987279895195849340873824612426909383000073892566445866388302046778991918682998538674380213728087199295191118510975678182136472311728732561867722617228484575290635466428689567648637734002881073014337461641465149404428397507231449786990884223722843037576590512212572556856285542999703746782618159288335278704773701748511600579410378940157459993470552556718116928089054345039579165505413117140497500640192554564196995454127480665613283463991844018364630096596770268857555116219751711476129195292274400872231868281695116693707900105180816499133972075113970872358585934987221376682525489043122612983537153289419077214659370948805771717838822260476994069775473850189806633006178265088116150332073414097969549872622548392229386477494075045178917490989966057172589717932709504485380933241798015768388624732158674461127221539822067848013407983835626193094622473451210184190925978096839087456798733271532088300783267929500193165104258934053251361696293228864536479778415390320580612239166132706364303200026139579596133876949170160164777467877736456524307832043874502009439139896796240324640711223333571256023114241688799017098268544086354691777069669468212943813374459021160451611793484344146158611152781135113094913672162881723888934202536561804682788235895787761616303910317886601381493729980474598982260506695091958359092667486326258012983610144128221932117575977146099365419429928292975586477956056699338050691299559124001564084649886587636741038083874857148253726942450578538847535092578743966334117677159196263260138580900824064045349188903554374500395658309554230188495549786110589598521089416880180414741074250444516844019526041676466490672951349158106350571375998919007953267329960213651423277855614284978339940665140435191681026482637809518014009695093735267310976761726137240481130732288140163612157231466889728626825648150987068620106513197571940964563340430123336397962381146312238519091202623486721123163370873213193138961683735728947937021878611702752633919514121253804160527093792261249746480034931286839832981696632819329200056002642390141432658067034254994866682158030334579057655416113413763364800560850396076244023688611370848049052882873136909385542397602332272343077630526075682825542504457421852352244879740830721543703705528080201351469188740829353065648038822045600631746394317538750323528436483561295962059400759398596104411988446150981049286510911031025610126942582471616448723734751823855566229660513243678279573355044959156513268504154249478780908002857502211527793879831262795184108291547284996407438607692552452086663339298992900505636888821535104562880757181875159206163284456268336873292744714015367361920682128634919862144251666103975764048028820574957285244259970303583431515444829248504865777391681939862564364829094644157428190616303982189578995115133691981112503064168902919042989278983666997266111899985360833692927081912014395319238350897550043960114755830105043214492708014315960646581296572444017540367323598477914752957037167158328277488659342094548516185180013173532026102954335699489227652505394436495401378839472483415389693270610762044451276243720620905822985737479135108289948147893072018372220423025077027199705773877719827215750342560915700626592024097872723309001957492767555614908392244969824693059330326123947004628605215390403338063435596987625381079365643910910853080080535050245453489869326428258237079596563701411549662070747262919639261433276216377666110953780298394645432848072246532526050849248151533486186390290381307503376176341349846052306916249488248109593578747729140415344201734942674326283047206651407942041159505412063585700843349915801477468994027393793848592705218586327594741472271794052672226909724862625019588932275661932833976099620821177043100773327121564520126864236897877346562681168839128214195132555500276677819231788589630935762151627283588096946734290077817113985628042598656619793286179479343252815543484523139999461318090135716918788879938981022267292021592148678589801824611279316825096727838030418011839874852771713328542428309254118949280508313696767391235400490712044987827037738161962169960438884788356676629894058086742292093034618579734650490884531121256938943137939006100221998616230919019436398735211913660315636151328242981978107485984266528819292989048316617505592154696545250623259187468435915788229933868478010368562275510952998601200775953201939676768676943065156980172738742772411298075582009759612298156986646880455732205227718413329121242424771292284230086743723980733885733175105575660136031957437528987592685404722794095026379168613183467108888327098330955620726524382740800123698111026385058323498119747764737811220168632974212710230090940135215917004292142953127426287073950600574622218832479911013307080800871774425172995964050254557997286689123138133172873291870656409868483331497957387313830934013236800316313430720726411784069142400232606426144708162924779930102331980621222235722406913038378867940470251374937032757484001383372792504320208261230087329858625405102869518831411886664818477588653799589113967627487792016271272539848083917111449139712502691604744790286184685092977617432185346388114182433586053688746907606221105371459518200951025742713105794902511639523977507063572110508922042473183489500988659188385288534196139586647222376780874389617692820944237943024123242443547773824257083110896079329317515073332792057135866057979684440355332690435776288425537378677134476004608297925409303385522102765259980644899345584145341282778498627819887127518963781659816919525638492740456836052962677602844950830346291288449996772083995546082389040439539047381838038366996324124169281976198341176916393019266505381625387413507777408938055907926030741802012409367988794411373210861658781763377566566944505472397018572731689669212968084267389305484508992006875870683579402570205302669433426887897052575316275011336880674892782703067432657159622039571963687925851965812372575652750093024515807827097047932308533800603427790859707222540728221918229520000840926155889527568286897801672446760356717818894254249039474139829557485116511658325895655989058488502371639023211947564728052946264265964618048029443132471052054620174514199199940465542978533860490050720024734154023218598988148752480765568482694504954649442223426772006848874579495612600335197320721386396168960510592603768568575249755037567269073429221398194600661778892758189298050903243265253359133229977342584949975563837190470757628331446475920355076412045554236399074635113285257357230002144282724036200727078715137803863608130772898129696407654235776814047934024253146849008126156103463517981210284560130105752717509362785926433472585311318562192683775650074755136074605961700626077338131967221168347036367054875795260382987353349012474654609419681520186323256522858560436537844699043662857680028705548858862025560262682675585480641866661232049187480171593581940871447817522346294872146504974682867646066922949919510479048200296542498594848421566979870289937891999696550522339559576668011361573745521594843510316355057086158364057079470342488952229780851942943289532624937194258899270497218115377889706506743206608110714356377620767248117796117577188551620622917417570273333105041310817924809232516167251337335370421930298119439568662546142748127476102547932069849387562852776336434458566578308593180675821393585349962838162737753228218506113127879859314173006756472649630693010048529714855748549078792446776160546037585515762210213676265525686862704875807139607031087639499847040827819157043278216276110458467785961018580059927927035627757713257783084172538887716744602536736386790447226207119989555170679525307238729575469616857712199362572599606103468908832638353446143730777329411132722904229634153356505936822454915881408104562681089749637513905534866655766902556237269931351337879488012845531581563156340031530753004341825172019633190471596699419973823689479777207683004572672767085183224780139441874697352565663465486966933656571952780888993029879525835665624651587450227560743112121589662621429353477662908886300488246324693885424495832914117700799727561278673796018050231852508435725341965769724782094435788017677003075354654570059386927095913179068317024967033664934466065694443144885078658653509946791933235588294010667120385872843719617148308436076590220857143382904734471157903637328683734098237915876646405656002471160226148254530005842625524029768021567650466467058696938027222910156096083132958662350039862095946468475451032964912633622679551843857847330505484316587874812633749599903771639381887634284124601573537707196789869247189000311568512915446633478644493949690953205690638015644504804694285916989106153346801552298287021739371713297805595843928263501437453340659123010855317962510179003652319310290989235326987081117928081719051749894053938861103781720716093738410687304775807019140269004350102106730162744072098840856717409930902778480045981543636312024693767284958377115597538551783776793276891940727663116631750010149451627294677465955776260951539689789690507592453578855382518920969650726934765913477217718835408240455937737295274180348816260849815745183296456353807248644851360238056406881989646142291436492597278740093638013580647013461297690808789873733547564233532057842836281395316091601844121915671100228856645664429567413181760457476985855763897132876428139092743403780800283121718429796793992156686756529637928161254772845556185949771917618208138110616510898435532833322767848591434089208478103433870685017848446081365610080735356805704564761047786696096151028133694177476522983539140137158914521557493824357246120485561780566380904981796714270895218138409636400952900407232026409276948597425899997522222416475505792646101508250887126082030034066288360886829470518279531023145269960608227256420113081768643557674262734354360443163859878427149853896594457307367027165646287417970004968278406944210828183463337217112299067072164279717944745407462944426073959130793837860466294242786071692141434873936025510400577264857406175142437545981387277015261660709748602631564347578452238061895625313591803212850604948835379510923801630898465062140960459572323469723596262906545523881353274029541175666042469194319858745977866568687402035315257422978397312702434714378167310206476358187098076189534526883873832597538895509025044282299207442980020753352388964717869599036394724801666053929195539096379674081544637122597789523527022648274629230854318985670322016072381371986733630128078857317637128315979985145294146907943206175762191500843681814448649145609550233883953693022907130811697095186260355101840551347148479904916374927463051502798407766456819859734930941074099659960066068548690942385841249558310505238320465599246709729491126605410154900175260536513446715937487016678502909437331999172486186934337700539235863158703824890136722364142757452848995467592083473587982561573919708408803827898377109660371841953965490519238877390464020163237895344178781773770903542510163166730432751220724413963649532013804723804161941286179627109542759875566150191718126249888815018102820150541138739659955341074041892564101785390962114633068101431189618849449668043588032402022405737528802746649963496979137256454031316781843671910219301864797943611195962456224070081765073431547654658635542210852110643644779941479104149377694120724139872943174957999687720980010896718204861776672059740936662105791105743020263400461938301564510947289608540947469962395239793139640024514272872406962045594316436017857104577190527455269414557630400599115564180906670129713980090659420704896919520729057068139476877940087711323471628152538100306485237712132587681837323601562720212798278431114281158064168833575354011962110973799916059091188262806294984915582396553923602605189600429591619046291877746390757123742648086158028294155862052862384208346369280061205561779306203972281286233193528720443924038155324529234876952631312300650894122776289629108450536823132582450781107372150795281478958584083997548792978763358611618839734130205689706580538650746508115703133026868779128515500591289210757950212539207721483326753532017412009329090065237286470465221614995380124623694578736762101427807138044731930798420115486562549467985270333171913182593760368901723615470541164879165365363131218962178877085433116884430216813728543915644535369513453828709032979552804079458647032353145719175491665783769685819750988937689779129396270567553852070137114127692667066193698490765151015639261628017145443453507961179918778228865718649337980206154132448556757681298983763320413668495117823530395145537745230517976847031278072469423748681625535513515270923599131245824606523497347758034964057787492067741844004717856192504311053828837462954650564132820765203094990216990491193093383843117442866480503793265751036250080069738393602693029579865695006378865664198562209729381857465121732457374233273814978394413263093887582100007483922976294338669744830771622530452997000212189318097395255172906972598266336144842437178124703096861565930287203345343203496823827555481394777337087042628835915399157339900131448025837496923444370016565228593458842984981940426018342480996962200195084759461384773889771534347928552460665488243193971534141396180393503496958627054352602574227302341238617690578048204512879234714510624170466725710064943119032932542019934742846092524532235137538900777276778893463374595451539087200590701823620779096109102520428434812470227004305901034413947557917714078610949513067737050080461126227730294536538897634399575826760421175553327326211699540237724906281236421270223432717200939212812113403532200326226164955113128137399762551555313554231098738686889807739504385995637580515691641103872774356851635880820199207836493292618240471139085830166075132624775233386103894486276118328279015860662161244824771902075373256069483326086821735678536257988257533186200902085242934547496712352994113647328235872228478057956431577693330749526805763802816545689002998753617204670687077782507490784996209345077817948056262729388276746764089050885070300403574654274086227819811300588437454912910635756285023691981148084096124228306810175258835361803770360493996692959979681759039175335882921611025656753915315711959293235548170881087390912742506091649644837619145429713137857320596770277455312957683786171721315543928506814834427957579753866043183389142111926900974312641673931450034529272415969030782200362152677039934452761713827573415351852591962733427883571435800833085174624524840228929603247297475811480080047080114498219665262163149690057100196584987909070447568514920729956219023779040387146741150517451298112802747307532849918504980843218817976088620394322538982203463179628246836907754218796402021108615471424715809037657648237248184139319126352572208954876449825815302722364051509039468277607763809503799583517341083470804371358192782586736714625833537758120979204136109445851456394595559518787601911967569131680916112077962470607082026232638821324755423682049805699817119179909225136864842207874291834787809969291132248157463335189704625308809802335945656472389550792401857241271419061699394606627076388212434629784495533433937977513122225299489966509612748980933119321169689218392080718579617696469934210534227839892231151967155161374372668693197994412247363617711116746515451748962234939535556467660120828991593453093380029272557939600442549379099621091089509309568219642456816424479393365004963092480725418951909802149241381750096224200626810427562894198914402173353412102178775601099160735906762168137850755928065924304059777376291295260839077463465210231548105174999039448933747973970604764732229122062567797287673992184315528392155071779842560678126906704332626469104975561930302957190715973432768291301992184547907197372104629584065152746649994864523110650610477348923145325137454071389063604786163633970186753795977570806346770686463989113238722966518325578279949693486987605631675534233291839017950739359106197219143581214698192076258447204500910224044681901430300261644101649979011304221386546819489274840419406995641467888668967565849897149742797101996567648516540144554517682950615730550566052716931188254571559069522561948452526466328555255114152538412485331250474354917071131060967642112857144815123941634664163898185580416444148014949081986442997629572913161204748873660725612410766148254648817898307612260087280104582011497794813466554302000406633188985760670286226135222937338773545024716122769775940611520449498977315514112950572353873941464235374196263525180468896704792560069587838708226827353429011885174973295645304368332597205154388814633153650114902127974670431344806533550736457201544886463139228264298581585218366461342937373669574444553223705566775121288565595217176540872863048133076553398286596883194447814276073622585203850982359674771007105737483934649249486939629200372019102383085050043114257298041467347163838178847115223954811215371713040658300782775200073249707897564628602529759949173239636498558918563036763730927021829711079861432466672555801898641662131517274204512954786746746436491926141512856962441227991330548624955212324453185941135546691907949297423773640276118405710722239067732616840999693548047014327357228220405431835665460527614758954400138283841052601245620672039296839702546928528654507576384819782236586693791939934618959972024238458916536802363045445793418242504395168319228076455339136269279832224199558012888185412398882932429137127758882449247352114931479800419952175651804188571437044476371802421337085513209274349457101800232122139411285905859050424161209464993181766286955008688768905360225312455677262853171405441628145050246133227024886326707403943973120403182887445593044804574097771991334895567678711416166456990884315034302626371703402619910790676040231418264268281238899851901015911461719316710791498846941993728605169166488666877920771860807914155018064000910633083907823560692927833227276516127749837768627931012658150874596994615213091505139231411639412223890493767152714195883783007930462934734927040607195326651170476203582527956854620361023371148455327620681558190901830856467056841909846435370193978942734131035822446975940939955632658314987144703445176107817527265368043049605553728029479341403763538192961218156946011109840225855479494315522402095286580662205288017715041466408403327299452654419305993344301813933285730607368890728686933208521982657813899370626018394194289149794206914748221617505349804254497905706589688772209123627519032323797452290148156092126592600517690715959976204150470664233629130741834685908798679082728478560060696352857002645811543842675926046885913731733159403928482037927182307255869681755799474359314070663344028712126696917001502489320180539923782574437267583547558205894903114671565692159034527045121360394924729842325681108845418072592672619169547175881698895771342285240949137677917649091731890289130867131950281975251394882708491060675926231287922189035941671636400293324519175869714378765746272349221112291326286125888736311573578765579512305547515277796734041383139180075682150932558718496587618560037322533143614539246666572419850620372939617864617187510663712031401175394247319788942662524068708386030638933782131192908795155887863738528858472783710967546600240105541292754346660020616951516598637136218136332234284732744936492911252315419569022384499026434446739575839338883491907267589941131745396279520434107453632485751330920283659796415896263096601595045187827681062347241584437591525597242726314973149941288232974937045356263933950513534147772666882827869790520489031621365014751205395724027134245994563884305743554218063562666708747304478434648943610628487138968906060716255381318583694502992561722806331122262124569969457619927260012648525522983069577573940591527972530019427356189443149162272891598786711823888044811960535308606966443218725518601648866523450300030943114558608725190224010980900452676524067080190761442444381484929580075909673457522252503706524599157321784126345911386432634561807237512283821555543436468669846508832492996488117109007859025618652776824104199711487675004193433185383813827761058985344663658589164086867030164386678052356392241396576255923911066106819911341150651242920671068490291001012303003402433645012944228481567481635859157086376618987249464868470480569623399012128873219964794001673427538373767772816501517602182988278551096536814878316278110663619526496988979221452704988936270473524768543518534610951508859203166163958376078627651771497084239523575392134349243041150991199200557432184396727736834714900577907257831194814953161078340079012354719086718269144579085322006938815229326533058322717280787068549812025210198935765535869737919933771229722772767721002040214794152104923725319154022363823095008537827644029811502655360140162710246540031200717224514610186533787366535525753563690959504085667726585551753834576722963107880684094725861537731582961624705416509668656864041019746407354978924321174798143936756927362041845434626132189475864872725360229989278420000479198801176421162492089092492816133083667326517910981369905160523049690628408590897850956219115164162647096458610327363208852635670959131939017228588723719063652833478160776677148060291667030446052057849325698410542418446657862239243162975391115895186252671685134480960555341081536614832023372616236157223423194275536227287360707157697790779571084989127954668322643673774082126337334506713329607469435310953410493584643272355266333804480412081040367838655167529122456203303734890361192418777442904593610464379165019080538353952096542590601996741096051578804610381885575763690285892434158190820588104418394264217562651204709111526047210610963983996883752707723765787121868159389359464758141697161726722344183395621272035530526278402288195640042881791485126992045098018695974307692314516362393846161303465660417900825435954871553029916779187933130701848863331809588343411344157930130265984939444837823588422311261840028322858025077253744879288876478067957798330764393055489439746038353830766069683153431363652644805792005273830168784500300928768501094231381807034522970708949896781313924501491963967726939719139737836284858334483762608875565379048839999166218122505043629692363792764921660369709158796391431023971648790178269148422388320110032428923778335589080842142032494979586469858325464054183097553528017277972767857531085186622126030120441410850417140824520900042951122405652982872537662951601109374442481841476316142936134942885909447732876394761918962752760702582415031904013581860063550211925527684099881351905199044606625885779392742320471802198458665171679193404868788967691441703956562970755770534875992993257142778658990817199222130396710003833903353380346152538391153675500779465355611021803676188382267181137922681010910866478479341656287485041234252042512043008449024867303470112271028802483188703883874321859092054927219200710105344754747617388054603560814915640782897907034388558849383905663760794962000797795489732716091562174149169466954663588112381697087811680168087632996735428316857574807096054855004498803529621288018332340440124677395753493354356480620771656865263938624327501362252706222498082121471572503157867049640758186343634794496165848693318432113792646665286716823724244982279347240922610300110295342384782351977342271238463104500828139792334256122816544902063823154719404394044335100095181449256987648454548687767926861030728459947711234361928133156863415531672776163117624878164700151085528986498781170821948171594327941692912314619295331803269212464912706501012605528402691032238846768908476377441881668785613318113685393244117577822655511528898592683111019629796591044892757280377907974496770950843021308874872135480753712486288119035409481895140367036801206503313873230826411261683028382359094008178294722804212813186189577272788806633000514520462834445242977343088556270084084781371954028808315575089268898943291574316585045374747808074110990748407314752872131773237600541770557744869359184041384741299869145388945535439694317768878135056526217611749526773040570237280389185586183934594190444254415457713418732881993704918794351532104065559659941604023966138873721098879237496320762712352449636713562183786964102851707019830376551322896425147033518892201637980457381102895304749500203170907512413107727023311010991854570279336964324128709696822655264895026384947283195699268950118569558350811865706093796438954691311165919670366695712872473916287226806422532252462858639470284290881168276121045926184616072452443057836580261249546343860257551098474726764942473111607270670560488170180431662265796218497096948033082487360384463102630416409149833712344302576939911086065908992428828308708964549518293338345191416894678484187506705481333428199381338127590277611918812113289261113426877932808525161125457009462895562910303222134186372897805110840697865846106079703421650822455018116271041685110849686227990246137305160818684441173151876410439034179048422170686670570561304225967098776265331177956326304959806803225103306888253267998857221750902655222013747584722683000561704705680499927609256866810329565231452575323327644108185906817462536700579120519819195922479533808412707437704482659499180544032573056618021592248767068649289067725173186428694119376063601247506215578035139523966312838636209120943289473578116057522560277127736957333635571980638184564821249551811882277650837247321198266309793775803532302292742719038049757847012352490916725757220433318897798338578582782597947153642916787092871911758878350318293840325727806023472884708164433025202958395365506724547171650970848842459695446429474139540052142545737368283300819656537098168410375523138236137589103558549901562309086085908635698577362740604125856996163009489374515368285221483693410736592791315469173273149104237072457679621845367486142284560928639201100737792202218169181044498875683358577060912694850898785381661837609514015360037093216984453288539955055012571375470448737423769887082616371423371814717405130522239154092667958391846566517759852662530777814767299858674072640063332717481556999688242691825925293331418501554626907268478713156200850067939897532332718757215755141274672962254867297829605678509911284959216339422385839051739987780490082861202400618443042868654700632869476387496532761917209728538960305917952196630925816940126941346920521427033655335238155088657939745976096581776412487844794357617532489742897630338150657934504121042319489813632220806198611239966320368466249263278347567984736194116554771417030506736237626214277530715770080200597974523338661367120228575190740129652238949993518570931180706128763901420172021496422270495394381360207919427847601452378815384936618176074104130032169695447267948671661135741851715450188125173841535768971527609830358610918194112620134534658638238171268739027826928133893386057598880418637909900572606831827046592675303244241508054694488123829484217358466032997803309251367040184455244265656624486637052388499175021825505180466496717967219020670517868865378670438386692241306074721419194836159529587045943138182100506428684426682090905570872723137366776125173231394700283570514801447472222432175486804541039210342758490681131617007931731958802480025742074331107741826252298369013437009987530571513822071013489916045404921140683842029214480663473721840296303311492674025005076750751213215617545213265683091196545769175530952504772280370496162446368262810881191265200924249550312673759346024859207073737079348106997621408573517968840964423245767105019008068299268370666178382012261497943485566080929666326187753788025755509417233864063398072992451703189611076989013417785192915685800438229046006460671088793875739696022246155658264993386607290817439722219982744947885459544813242963652350365394816733137710620417393315190595904112432018468656994299365236763434288052029999982736116062057688530586512332450089315389525341325290530682161566321060052995840817956063790089859290607995875541047140664887268363167462441482496884983778772420814291328338789443701237912917771409769997313951723820547837344329891808799183587467416598683557083548855510335329045544721373794232570850754056508594515073382191943276381081848431112610476928751824674411212467467294386171728517768852973858173020477722607417886394007778037739930713701599680494787801882219058652382423441630017609292337475545162022710675810667630470350322505036427496061946739644840058152681729997174111392630610305477458392596847970877511325873295261597675165527502849125882252172537983037412567533311853749216025441483372898998458175476083826782953971696834672961454058237174563017277895610904751700301768142754999937710222093937625744021045168017974230690068149113300704342608963590581772065285544641821820578954221495155817853662204534741811557313909707464508991093993369679885779305708272662415055449196498816891442045101464843301946158996643301361799457797395440520043832873047673979580205761887499262479635552725632314049250443925827181084668277699867167159401786105803867468162499290839681408342504248857360246632600348471425567513638274917946730574608311987902154668499379873455186878761254818960721667137459296337964654772593346337146808474082944289067678229092733213020578213843792154566825869694579991654194784959813217355715903871928798356974067267245579362648728697428148825604715117664159733420770362376309520660217549922835362182823063822992599251537970437051053612700513017058118398548696308089556194982287343932799994249881544139167956287269691988724218755228295876776053983241554748213954513138690397108830278566119065156664924464184371660850992339511061338022670076493429215151896914744132629205505139562491181494328515445879411189652995807733859280057843000491022190764501106181382887002212957584468593418294657679250869526955445727142078908378333305455236073763962670672340328392068354783254927181266931315113312700055600910985563450588366892747159420592847638223261886063257731876259375332760285896370287817118167027820757602239506639246465030037855634184752803266351314343686877075507497986363770189529710134181362534681251086079737588518354061034866766132985364506982487369978695429437890713618541693892789725662602902783499751007237990111754138753630378012761766617647362529618576273212471325340088601991328636439475164669161541341278748332964116822821320654776070104674573669281009070870754866552920718095280258398714811456270164440621081195901377566381245860261440981093627515850999811760181010769300290676574819550110941284623369219269160787316538308899247710571325131617262161673247046164148743511022619304896690542082393224443099142230943111498294422098086177568658426581795390775046106556554215206538238787884404318438648295062154688982349849280387899810257885517723186589334900464901662351925583096754053195326801062505628660705043070744650991895708852037887929932119194763041736255532980844641613985129086878184482036558546003250561083341407438452616729702951126708068022416188547604596818995703673725151004087750760390465760733686239192685304114143966890231954141477305761898069599531299019337997578106981314159177897026459286097680231409133384209546539407914590391840108378655694144885285888293580630681500122230167430141494015356209337506199751073206151133052584352696233804748860584927565964406660577043950010743660957224816052679714195743762724462048389482441161799871788932698611506427361026622003825120267947341343347252270140375157516287149751255493786538385114228499809024991363121328417438595147992085404457560727134616882206987294788233362904320196951789207110698795396483735559461090196974897129077678577710914789156737854528057491349664962206116007020719291952807728510617814774839424447389230123397547472501197304216536400970214045046393392608300911538048843019292324237931301239482587978262165487946909932917038679635431572316871871803251847210450963588683332559971720587266912484768512285884285368144896288658557391820939283398188974996523687690867378182223810064850266994676555836797849679762374228639283381687243920632251391242595120079811181205730317762799849483622234232342700042605096537472206953648396788490656793532392982457705299874626483922427404378571073386181264306014965908045306815750887438653214757440488921982125182578625611581139780174198084134558759144622638382358679299574042398137403321340243257958704736693615033234202165674749102064891922611271313781075114256632121128146607479958634665993690549897764609453837528781802841830974848935538763113131651921646976488517382487088970666895741504780108860046669936847451113233188209117190628386445517241967904936347149007358310441131758360389978411141016452671662431930197211963298113117919689388738560826942839885090848029743203905438790477031329929113307857942623066758680448155492321049162565846831218503917783811332047425379740562271149184157515582852495359992832244089830304468052904128390210053457162622373066283304368605741006545435415741082951944673528902940684736899700223709316162868349743558972535448275786072126128582480069680665838965801897420788777164498229964741258429218449956551853812832725731880513805119122519494037865777968060840414059626808663544406448113064989973888813145644913036482918773419167132094793622753547443681027032278428265428356148734123407727820692462429127035754689377310225906331515311454626190854690557959994828555150779239918546285395512542878314372453475895217253083589326057741880607022737233064694606261659663115917505328982755518344021061404329093542660419784329092109252786525495598985425925802746891991226409208324461426785939727082406858190589577662623393454448461795932183635458587105676100150055651284497844469106070434856407491688936713741069531313914863226385716427694032279329388789549025433828208285546972555418087315694508093322598233951800065215523576836206508822157092466921277087425682155525949054734197098244346155075746169804910236013277039828820813282654673177668760620770860929054378925863549297900725915782291953395750045696520633861128027083579468269931513893595391921478878215924613256890190986299154671301078839606027093562256766770798813891796362227257534051086623571026129495821123847306754968523991204691960129717598916681008992038394098884426772762572504320854645267854510083890873818403980709925991959879340911626126016884849954353370679815852607818410406518128985304617543787254908563994125577661031498019675332383132233852510056967859267060579393427027161542178669331908154259771803262394014777951284845838321569093426390578777048402129329870937279516653076652926923067315804121795243027193098135220518648716631722233730039511238873719580966490227035266882541000388418294484754512230665271457000486779725177226814850835418889942735223471836047652610628535271808324431997715400503292489763658983554258186315812985184384544207275600424046904443440353663348175112229892760128044640900758412724926590159642422554471095580733067752378160937981169410123834564271113196485555745331418183653941262101840186921886053182329108613598897654076393752175187773781038706075108114595593293639266729940618278098520276791603257707800622206372581331642822244829370784083286442255885844206771547811153597013611280187628882954289881123323178438159631364229583223894474932421915732007807456997436916510669883957746143745192855058384957948211662560932247482597300832689316650788736910191984016388788652213341347536174085345051396505072006075479463814267280794653912943885192581113824847129688687107532256563487255657313342598099434478832040606500318873054393280914217128203705189704205003468754188781617549927347699239962603271551317802970120436788255550223376397229991116003627363007572981963745544025666101330232490153476729475520931102567285729542256040550189407378964773236405760025758612779138901090653975842421759488467011363127899314887795779288981528473381923227603103942865810650060061093163330465108817801915219006575090693672432028609453466964519881915953631441073083389666802014651651957692828506431989352007263566786686066978915162484457797330617438243991870519923120325564315102107985178052546690613372442291720288601017515434316590748538735425675759859136683780433351458187947949510438725538720900568227197872912154947310777185642627105760583295755923166665713835154634299615760009613684978766909208640257233073020554055400028492528330899853751833471823798059118775926282880626881227994117380084272787614416274481442988773683299784607026483864078375301406657258841060631201811510062399365767177084089816310032847607136106672689093409204861859655719756993650562720442035933000035656739796136524539034047055103967642904875475891353920353501583284562412472752791966997253058931386390054590035003077867023922485701238630525868541889340587896890620494408179590414658492460200074394341248953994884552597111221723157300156300355615757584633400433748346957916918138284381316312027661389647685492888812410544051216596050633661242766299659368584098169447919560065600719508144615477867879142707438457558168559846071315893418386343224855242749603667925606703627381879839144095947874012721632215707579404749960836601201540939195393384945416114621363657558129577632978450503543554394551057586696612835105350406723416333638401607593865552934331170798948200962921436127187810277666022066617100648309165122276242315394471005403136114941533195955423823895549098114619987328603168612738335311096615693607652601616541925714012281258561252708330695687990324258610307034431581866162154898771899331443436980203172725542374378568612820778570087792607704563535124112984892334025042622051131144658879244263803504938773116163298059290810349557263857140294149610818729038327392131598755062063204884690768937787835208151159142280192519999634280657300348857684074527049242967506401368058482025189594167879954539165572122287328525655083620202799018399140211698087030857082998738167054954710522896682796647773314149585193024478653293557286296105839367065688078894099372717138849804109108074232153521681412789492277193462827370884554656618863952377629624100720278012929169834629649578662213291734367010863715556816167394475133860804849511312167026073972707215468235221418393205539964090566701203462045368751860595525473313576615423285850001674559055045260208258963984471551905843737137004956074176985256778351732811813037889979028243417685843481959894620485630386474248505023705673174284954482828788272787443308738061358453596287452737927491428870215962010211722370494765073393751356739474784552177830504121368802158320163829574680751789570142507607333502542683386425622280688908048685039621114753270889136239713119943014952645614741027593548216313688235627563961772113900487319025548024700710163982422631894344636754014078899957156592990994350262267888549302764938822298398587681058872510483921718897293023633472419088502762195704196365855803425870580815752893115131747962487340930240972443452400416850720784158831919296388293639008970511745780656243195702606307633237812794267260429726446484012794766833672154165314860622842391452444277650828873438026352701389554214667608145998551715356453127504829993455699518795979024928308021717097992561283835283435474169718069553501933659146829511884220225063600480039012355033949234831981618419736028103346085641955255505290039273644823957620021952574383676875354854330704157784427453567108815947130191935174586618808736463832991189011094524657655481813705554744313894031136078127284649509621052889386090703310323927121548213986517350982537460908952713288929076019410527372256436050269843746356686293844484678191375821640248325735719202446829337346316208423853241310878121569182807346962363987281540754087337739253510048173875503515777612277777560080186117527008865818640969539697909243816007034418801539699467114405418787027103673760296766142908048855825325927581391298223807544709777204999204473054391459160931362708716815892787337287523931439027898002681042622649940404928973883911633892749339650613389818342819138638041816753331939935709891528862519924596268946529362303475032025557235539772705801955513966033112214845098174746241328965947149171361424255609184339686955506397613174237440159998108087720889908404733659206236083690988472552112218779914535898971249898536419145974083769216558950771909559474126116847579697464447552493313727221981261777580706432994750608728656220380355372354987863434394918012724253552511367081052085174071758557342878853439832891143836319919179483393146541892577519962350825100921259849791185093625815794619416619579593771463882710368533243392059150296474281286934529096244337359057182509432673938993315221434543972089812727815909384295432571857238483964343484611623486800322511131452284236433382513467725677497337189539230654212672734316615550776068324663089647161305288229057931485349031851936888600323874528471374439603656196511734753086874836344726882826270418063448758998022098654029736961327748344242176546073661343830946209094140684670275914817799067697108866079941430704624862297007403584076038952348117051072361003881008688994803363447052081443388274099583933812424236969457767707086891114892932047191487169475321852954711113149132090248476718650966897638608236047192100317248804748191780813856100652282984564231140119413125244842088699084870081876786715381762421941313612652518980880155233928264885736134889348978913951969684674495292686168673950814668093431821353091693203041920907287553720121435501816440681499029756908661540993416858762564651736391731545356084841297110068310429535032383541128236739013914294778601708961842638549168386726581025661910061606222628068956439802014670216775475127648474161002394612638758507723146691612310431094463806993204470242612854535048175615590005351440833269388652326788563176235243651971540847439462586869929964098544232517217802426665143684746632274751735250256815567794075356305745735067485251403289983038374109426719179268432172746451012648530797887545416444934990768650612846759294667323137564537742586508996508070102688375005826114367428526882979623922269774499812249402708789384652842214759201368285007526465503475414762646428468740437366832686361320266049894626648522555050831058140665756512818043538017659880748835784100900725045031850559216189186597476701275525620282685802057666833619358613865196915361874089300632574058473664241367165149971740577957616543392977126163139347360044755772068003413772938039735367161322533713896939335040135226351834040413575237253408490890584234623479664140571420289241420871877919815809649181967942196025310156102226390916640451200717580045107467930338402887653333401197542588344027823021867397206282707534807521385333329065337033772129689589374051839634401040845469846137103903392103633680695620520340567097589085734619229849745061303828333254749606144893818039190520216152792554492997351980896815715222056667764288428706463242271852902603887159254516609275130582440601422836677462138945620897416266389694526154472901778773854959374209497953545239294626810423578969317418790029622814998979987381254030851976348684032528763051685197646849950485953009178322411077708690951720382379888826031514135394332727336749257421305858253090488682290576541545134464891230347325664495563497838023122455021498405311211080785899872467561257746401672851615231040358774291812174824378535998316146036914949952846058169034426108112512121329916614851828829406445084436154524233770646669582117515609946173468723836901288394024419874280787717518304479467782508244950860078196136249971510654347740320586896823573621947528635859107891520363050278319386854554907420573710171359141998194675061199070969775043466497118010952027407030666373345161370458246128924640091652350604906408912434196727562573592868680953938210412339601150579796695159063390694285133360651708741771867807966536341745263998981442640655519991526242530044588772691127585764378661537139121124633120782716826514002629102258198172566145179293852996001078957035325639753488736020784661176565624607836003643902746679210448867831394730806751869014850341322697114373558373961102994702722914134748303459488119766967434498247994580315625075836539045904898724071031189875269733498047336141994443155007915276894487717401593793240857582211706762156037423300733336429476988330760062767374062749804913875296900505059567273204517682852562172680406924108712927288029135926294087845274374255254874186460066705087796774525604151933556353999567485088303990137803973692403284329006785029344612453483564515912852338548032595409704608172903960653191871243806053716588252552349391419120498300541941872634280486089638772021320113227301617846073036005382470676442235861858909730577492731164595702342688471442617586254582086354589204658217588895513498859445583042602766528572635933811337094494151273139713944797251350056796769040246957310805706658195213518271942127093697486288355737612842634999656552964644941440443621110845101506575310581715402912750457164084467107509304754017638990050985924490876647826803712612436977360242215495014432421678246576388559832405340578364651135722642132789032698692387703836955569045096237669223954795304388804893824003398847224741325110751279204778098072082911887406512365687335606224012308453069086172393840832706414184872516055561803598037739891392764511429822099890683605635193430741338378484158780569130007129447631393806028787231609555117805498029256239120904911965168955100810461427359746597914268409257019862956835447095591874274879412364556248957613163009847447973507335873924967185892133394556038892614275442782085924809383336271409523477960363485890628226885216289134197145668775759097899228433088199805187234572456009880783179634659077012955090579606698081511053907710565974682479676936425417139188731834564045060854887244882768531421087528445179137737622670756886392620341853976454245736258203892357540929650702296447858130526663889028715648910149896933914937545627736502721873614143769071880534349340836957641944445500735284868150221140945289173314221647178772562069048684725730495478443846492493734666899890314389029131614164018726658698486153302891102598936270384615456417160821938502534716419269020483663931503270044031545105735972971440668726118165079001870958380997277260236373544256301561218051524874010047705386549102774718329152622981560889396709780261503799910457174129557093531636298892730437685434349574106821042037727921670616056047606808923920354160618970245957498430725963308255403084044361310810349488644087723566539106938593206673600190919803517256983657914229947157233230854162953886808993101051446991408125634028830451815737422965160857134869475164235256875583468890216925666372833229258359544531056780639530491246606947346348278588907353913302142239504038630720225570654998121687008448995185140339646038828481695150488503457846963515191114475879814892018430623291128625450254745924482967453045083121954979276610616068511097708180023173280287435181815202914030069872269091490483246325028267398886394628592924997429479910322528874825446354273128045169859435349427530535440570453352737354942781474356144567967940888591588415476673195526398900803311278406739952785146759614638941213126945945014738350085102678238340121065705112702400773875284142544374844292431375800164228760568163454467916402180289576424433605440336701164138529918255611947279959763565049449606765865572343550143994364035457164988442475693288009717199028910117805019681960468513785725480315221770508411695791872154800098440676395344650209078243574066366495350460675657374028393620743486383285220430796194755379221901705106259307502384283230976692013174119891406695534234900209112864442649564359355929052129433991583505744133256040475719137161515730130285948583557327994491693616328096727149446945262911318640991889643153256915049149557240380670239069850286947646905877795069205292330751801493406325765044628784057678157131672666640979282650651122631270703887604659019121499842887206381187131032327644393141335513142899573294805830916064312555564008988504962121149118720843686137908815628085583005205738056114165524882128481667871715436614734148896322472990643937457186973878643536456898431944783082078707087971097947843933430051860323988554084229905437224560083189274436076387765362376468290607192881413473727371844554898859424614754045043181255669254985452928705485360637719858152905356117095726030225457405165570613567432544508267305163040764341189637610900009033750762658391291542223814851634355135518613789847777394804755304916819758005106117580046120316935845178091381630516209909466033136886904174437701728941925950586258192113227102367828137401236894966791508313375280906952081231608200096211083379295013122554609158403515373855639556765539738937091639763752412247725162801742511223703184855087886527844713333191033553018830724794874356639267072043295810457837377748821443154105805772402182018598521855542937436491198330354005366571608889991456772252631902940379109821389559531788324098549564093744230944376079155572604877594070871502759339375111042882064214160371259102266273178114762571581647450170598589730447189267738028723675070572407744670622186443787016704006947304136563145380845233109789660959120015072131522505226662657282215131116039678376355754692391747270280531587699495314538973883474554137278951170676506271866142324141763267534528283519566776490300060778332181809120033485858199278383951606236000962550446538273868863834825038046933514322390194538936890825855961520623218222898416735682777209377615771266773512509523269592493759495802782846878190051896161689143767292051662142651708559971978967553485837680122593422152498773303571019492633987773388525093571451795805496905924330264316941353326561543929963904981359625541320566772870991347148031280575365829059542562201236607294295571943948869200018495715078944342562388311606720746132585935943039963179907573096778531932382786522903872736832059157030135607584315861177919476243791734013811044919699196653200155085410977114163795329695577800586692836605714939044315244252160395586286791192439794653364026053672786878112729473878033181548975417931287565828043182560026101454025723899960581068109351225793489068048132056055482894490993977497528050384380309443940274839802532816175848202089508754330324730884887445927689064397144543293223749401736135262888531845044179454574495096935918047232916121425717072283160498743559947698627242722374140891165662742505915331214285711245722096250268382776818126726685212301680540509323692452737913519250584281440204563520268667262911614727290073331040720841031477061713710237579077958441387155442687707235293489702424787224381216098054676653209145931759013069460911047248261223789683878669673097913745124262920633963664842179208766089933250234678270019792876070800965237782020238579068128400446318545349626756572892543165828068193745140538695831145531735921385080990652619472571721116907200650957312977029094093272045496706011150576291560737685861060415717124991079314892837062009220339324491144605905700327720347002291314781692956668278757556012026737689347629614131368584247130486671782803656755705875935429703656942565991127254938276491603463054702947992677835859352980396870025058812144853287276958365568032501490157363024628568982934716882795184148862017075768328533931408601110031460661646800880512305445290483581961333042625659003595204368687401413850817454237574919881356505912803810254065561981438853916887151951571374308414027814086861242902567445691965501416856159758753628460838702564856028254612624837589940489505769740588446771180259899117624834709421074906312862340096648599555323291266136577074348889547957541963226174289133144735433811507857791156312597043492034729796452433884384889956564939237399261630709841857208153571824107880986786679929459807923724929889834980104601470532741457361085332887184033900938442880709331345532794887123988325103120724391334456386089262759893543888392552994879975016225704175513886820141239751748511075749071312675497312108957756270280893988157766537744987797025044860700834688796037606913506940392310781854779138220959623190788448810782243899093481338573439082167246646312129488900028123427628958437048791747704954676422528544361510935138667895712159155142410931728146674018792624267506700955250561016914534060275578802710129209254710527407736251908109923691226219487841686296880890613025482665096687435534735425530701004697020564785475026436197496717815565258732780422639366306452764398325384915013184578923655537330621696302684158734326818130973295706358372102842722910835145518151790941546524618175951797936426047606402469288260235173156205490760984331900240567402482859467405727485391876588721268686137425169203449725492035389985673219300329852135640967525173150503435265069373709210590397301948279073746283463973369319230333611208975194851978135486002216880334651250928374294538899953364943193430861896245608160377381054347820237475950360369923858070612949521736471571639324319605701510520953022213904208099389283020998073231000642677861466804362989042604944010659709609164833470327968484010890827282330891886705513272362517362207953017031133733924000601161904282409930515309433138137146765741110003611011220899288864207510619977088831937959711758424400425138027309635880435558307855479648503137900332000634505025614484480026243836450379869722183780217718039884198418235251966967950935153959896503546504536782084837595290690516456433937943651228179127392795563437330446068000274030988889663468128266314316171408955377279360667549980022375077685705738844057999367751748085916060765982070328129914507044663444852847180148578155270733840955605472295544359454823579593511440692155903574081261080693347585262518279873433112084141116606883924577862392830333227710350770783131300049802024423435424467782300851048962831556748739766160021185269872386644455193668652757905274244584730441314465914476940637347749663072226169743751001181314437378021877170319373901419792354301285738028111443974414709198870949129119076365108278371346819416541842619385545147493087276806484442094464841117585227235950145388592668487944926368125057139521838817396498962519261186034360869258483278316100671365935696887450511674198033784233678092712187474346946359346173155506753512436315407277464325311561629826489636966339295612434722174076709437182730383178422924813066578547680859016606145581897937226558515215417877515020142835458648741890188412716283303398982848764275456504521281032046108798978998950842056019330993996219347815691043894778712654576734783420922214286795529188492067120730452835420981241538396355836049092786756380718991035710721674676176985737603582356509897114490485598567202266043896416937362141657419556603275896699795207837443917749334597445561745561839034514438173418894451695511638248244512284157141550147117309006302993950753684132009595180285616143885497614617410966677426838209462543561196738195639605753208356547533826859110552544183079929286371032538428478940050159000530262196038476187539947670626372119898565747359581416804676441400335331561752163580834218514114428703968557871129960997696540859290049115693519376185862424302752307712246095447797491663566545482088817688452594331211226514842086280327163236794103499920975573015371213760460499759747568965416250159555930438532045972555533424065934144243411762004795059869345115567939691092566944854717159253523822895909289232607270191374007908518366373845655577893167591658953476638739268441478386823583615751347774962222956432833760927212208041024925799040133623868253591745872403160839995909525340788267485679123616276823113454523452002515023977276995867797119855777318741387179452591452468540887446535425697607085883799837364986318948009210169956800702416970714412308579731569733772283453801741495613219730173808113229678905053803727890828765545058724116627899843083534473650115782268040716782682716806907959278063531771327260229150294763627592066398935200000519721425931005364503532026014974983471587757850642200630424358715794467282911663205637283474821852743539786858392379713819851020916919123083488472994403313207437552715732937611516667138720722629742477527409078261085191154434054444710077572564801238043528620695245018294558663639610870922233133093697338960665011211594973304419082279636908944982750943280257043173395966018387175372153314939002789900138612951099153850844330284471362314844381999794977959300914269399676354465703209247058761972147169139274963509758185670422172245716337528261793523398758500193355023889480998484622185451381058819985086802634420020143689945519781037742294823128220822753608338769234398010307850927016591832054911830517110805535899981908641742999264679678698959586444620001209639697470904478555871317650812099049061447176842022314343107389820618896997739598634259956417261320248571953995996930751264651558098709260075317580042032938323232258795170151238545044805306515674165218355065112311318627881569803421641202491654690238409026892908780616114375427535773489507277677259590372552753975799825021906557752556113742911480602557194062459217987528207328582000299867591757599604821159584073454797805898556714276657600566684078953303117493661266565237444622842863063057554967379772338615631580782466493807514426627665178286600105552601387539229590205214514591598201657988460261957219971768374118646110778994377124166117381390985743149673588946754814535855566430852882211728483102155067583334383224296047816824205353904909565595237017091878673669652040150096340761948204790017691285298601294627433393432124866519676987534732058974938117870619675489391419224126445566596551291226502974744060391094937733006235417684575228335165795080607348712909489364242652863822970830396191537046305704872557698765047510450700551247660453389516710336639866725324830025176432342573362436432577134192216251630329884077146213497496276968331500995700120919037084841670163458669554548104755945054185675773881206331919647681871666335811564236280257318801220697220056553466047057056915947943776981082254012620358800574157750949269112544183201556691283638969613221275893256333758911013565925736690476352152820686248755671936720611114845436378859496768685999365680852806859496792273603103981042877365104144387116774511264393012831324144788014670622608923749654830870404351927228711458729666496600162844824076987298216611115008924172507552876788019474500958501082390991930848494933848298976024071948853366989841163377322206366075405644917175348660519477536650588698476140514849020606745696149884180451544891866856677040924627601876645988525616167311560784023294812925474450606356331210868200292055810042070128138714070394088989916054875421848917808096284813644676682919160340039960868901619247601570297991246714492899869616508706831682750292987910057949139755787697342696249105552918545141357848805586477407159431136717880395115098896022619616930577616501867031752522939385949782223519787847253747635148010784156835287939035360388564731855768322068254105445377269435314025571120052742138205418881389171267962607111906617836558002170759986233500706993094790516766819521890655613881123711151724663636985557266343688048984429290752119762723734716188763262218313254610433857194647682418523131466276878651807758793678163135329945028400608227794943168003479237134725450463171127302827829455963375565794908057912782633015251559074705686743355804324321924547013515399629263396284892569481878879893868448445521832789800789641749806124607443287952078608451456268987660560543088771493006582573606444212683092503992691895914388388703915575562519166862225635620630367115161247539983064279960792902443030579991485657215890009706985665369040766225167640051867480700684949848278363500815522368177515581324927660813721256855670475490591062864995907339982919785546459312242516245814303715490762939952950647664993640322812827880881591008007304256513249301847965338791609636649852902076181608002425212565350687554674030422817433121201940635938773802105897004320295053563345706776428296448714943917183283175505000943355766919885549259021743370497067234170646565969324155616727594620567918304424081664637735289488396048748608756821940336164281067095474988576296378589666546829110478925051627190699745291063528049146963431109570149702173249845004191034310210227032695627368787300001182863423452055440398174710170683014825020113279887363798977221686469123672134998890916397151086935934097087499760213977627781386865787366409150174131055456489639786090511937748936959259842676207094683269670723045811906097640030739290444947235972566920216790747738086595684403547743801098943781751188451030321722998994756481929574161590707293468032534715804241421877961124118749222239119396131906234364265092923536236376842745548119616783735211155353490326160429073164674419341752686749842790773870397588518704589179730084776112254424878320222410941940269748294869631531755028499149328218523816512225812607092086488449387047991484457094453105570000512403681561905599369903494622740844571905921823274221128577299039003446541724639138914813720681906824598353358788433267138341713146163033093018920761493272810883287800003425646802328658728071807282307263065881995271646440715742413839675431996429924658461964344791686527520437054129199474759625561517093826446372794311605935752398474435453634705399038429880409283033634178082596385438592408093140321986444536391422758802355155571056014586522058233029957768292185567477737174272842995003916616184995270057987964335573000198138374433646366470088560216004632050767447022456981016770704892744433803486820952530523115976236397733936950610146140215922281610398629760239410784658991680145159630585212414912709423084892784754723118810242903446476931894520180706179761341380073292833394086916248128707850339825617254114078047063426805563335563873659746463175857337675281492344882168981798366851418128552282676041298222577261137826310720675758844593860813939943693098614479705665061291493115957219500399830636740096468769188171994050652411474174218350394830955188403762757114914125336593391680657356097043679474951868882017351383156646584618020218108172256782302423590097826494171090750257757457644664666273446151409742516165916007249222504551405746168646941093234050641815661669498049823894476068968959376887454948735171276451440925093588587754599314565644897322298939766155468374966664687092637851609666117303281391721613497084187661738299806720032325076223785738950934421318376141808053023118024404097777055937768661641145326770294115910178574241225565724742445345148075279795392605628865540425871035192558405136219503679621265358529738172525265441449122096625037821923237303627669271470171393073494132097108072350779627536085971526201961951940748514046737045758364671196760625736273646621218478547219864366320732165873702381443011774716069651916907889271362881824768992440396383228563481470367761527646989708597706460799162103363563184526961401459913055373592543588943787874570639303780646956520801518914381865415813325324155455851481255813849704018831984856216909805107122323048566279891495851217431730751420662642532472113916033718241654621637745415722875387683014778791304337036802765374072053999742263633127432188924685965641686678131485944972863353421584209596922656517186763576229185425139894400493463439086284204026407447933411175504444209206519618601954000265185309261839119224856847456014023552315404787252010133171359803200508097328188853777544102354430096450473836607630984931509104347101064804132224696940601706339855424385923376112870991749711216971177290268361448594069136702586046468834580681060219656565044615828066005308165461361513111232247657091796673268822567222153473833430549038446277743982108069662453549489549503552318616681551465568293351839036936147454798499690086500829490724019593942071183271631928914009484794457920546656254328935092800721647705660711750813899064470540669228984218435567110435089869311069376196057901925058552347486736675090582121239609141987347216665827342250460246108354118505550492680837802110681860914848165879484362934833807848965977158300166001344761445169931747439316827170020081598809459220267410289739141867435346869523437679704622643667238084034083329052369355567194095312445643410621844382840088372551240711212316363841306158207209033915896410931605981846577562808066953338525692310171584711127970057331109202133497159056253155895611853308994349264015338000975516854352440344520781085783285055469884001543753877546656231166712689179933033877451474448218946395243819178736910618660989245713096116742436733796285904595188355641824013290520616960000159373555310225790870268688428254495023368032129412902304602270440799128053668504077355298767742559672836155282463445067910856496865101716301499872709872460473177328142734077950540343721599058385403649965431474331593417790619800069899981485345121196352393832142187405211156982990211745026332612641256348989326316016458299034723927164647326395960104834670222421660568524011328749517861789107349252504849477067297058250452085666837402910351798151907530979806265825935406206171193201136073641432839351807876418000906009332972291374759929514128176497475994978540167071494971013990805279192433519357801169972657479995875250772771426568576020424834522153788570300186495551611418777898847390731948651290268155810102534503616940187651038665931303228825407885597481913903991176485551512564157608048512301276148450577793290181173826546214004443617426762877766207727026581213481828069949951159425452013133948353844382254521686557942669745798012153046711108786475947434678678782653378703220957211854293248350730571607777220351241740489528688932071032379956088759230829609923857270042076961838564531791390215267061668603406643971055364291389739571969388221449191300434316695946087602808152218591261311153691586515615937912132124047561444944114139951889725922497542661188157938966744179311210829503396670177850735402022542791090760073848326016293531699511000236198357369750957538267962222383159589642928083997486180656519877852380994007483763933883211553103321312095185820520368983894883986438539517945115148351564505824219763673269121836336378610945896914321610980045148694900213558727010929123333608011322997361393574900743192614150083691618051080486646884940765081736087270254429335331489047960491452305304800411129575523012677820564858308450692314232429559110913737788131020205894850530436127886801041705197836978918911819312652658445813312313015058099441910968918649012472410954285511669979430811407945964373847043562737778145327301041569639814867951203220607368635232413040563838242074363011859813129359871135305122947732691348077838833868601085057310299949369847603761984866903650347449914373549567968209990728559325946805590469677273956524110294771038451642165871930981735698534945775609055982985454534750678085025040715570238126874291558319948690675242412356315333584211201508584322471349301694413311097945759134980451625249632972757703288529588598579609747977639262071862560789559113384264746627303637959689535868797438270724249609833717042631090819909052638296615039518490638482561210494331527343411207011987657453477306871589759971135567562526584616511199732628690026946190357973428903453022052951136851919430623273474477813914007035447042330567531594756058432687286647362694633970376179960952219961695136325334485284948736287647918215116808827542877759105037997725271701157823706092700206376107793969699000821109622346802594890259257198138250583760712511115480611690835023835697812208278774016195105670746332615630224408404521506517819941360556879805126414944089159629089333313988340021408616772480076629241326606778226294491715047234569608433155589210366772123851603493984201092356425481057852800467786311176905387760644298509199596033035071549961737026136249131407232578551550223939697311774618289749768249706676718452690018701023763621160361844001784308579033794399009301921550776464613951775413635999566546210325214278539254234581357338390022941343349676838342737929250522026108700074915070565609185777208775844587369093633603639332748568165785445992750480233568170704495242313881597596140857717826519466854737808886528295436534046957863571146491938244050055577208180909175828992384247581940277776156448708386937001777564451762621535370326095925078095094637448032611936997377690386823491922855039933383560831454446201629757540820953017383572434218183867125596035448309268435150427814239944068216577833468919153833601078784873623806067270836016107988739943694463786817129135315641428371447410507759400741045264228177181265878413209135840728598446923469393326981450643947420716912986440698333535018707151410402321746599782784436319273714336417353266713053320238380716214867760788660478027467934801465478894337878736402497976138238399091478681338930864942937972758707645147778852340857106272559444409442084514099344469644323924059969461485356665852722852280770551352215028287537253251011169831684522200307572892359635258023862405482186886096442221273747818640117240347767613312664393187060574299707672965836577173784078644756533278315724803968309864674380570881532368136316471429172143387938374891207251389375482538310216398346352275364445270619282980417242245298964197607728458133997391136777226817191072896070492361915535442051630940276178729121266055771607866521507735538837706704886648547773999314977301850591742675903989247329031552877966056630229305713395117365595436047829470995181088881885677334921708565038566356490553780353162552990143294553456694764685656070995177597325431785560042939527823356746874660009544066179923578930567902875120620321379072715782748502481491327728066271087736626693342273027660618561110179821611630224939319245330243326858368880749301711564896556501646529504861263042913536412112802341740387377013773442895185832892425759948492047895626336032884698665263814341820290904273651790824342478027767420423800452230752419841575693079645077099950803354459233411940813000424590874488993933113043812978356589091890260290214828788579131702576061299481780922207881590909328616016471901888018899559557343521136976853112598612582230764169079443123373925667678873839731572155778319602667403002806622924374525027859940958362538296397670349653900996474483718891356130608509637433182646573714037073125846993983184442952797048618392483194849659089362100244383011079652504730948867156450092823931499953945755394514294197194920757986525027386630488409394509585321902885053775186727453108376338452121398596870139586813639124560266377709317652717008037924273395732175440780765796606067688556512571385089938874884823001825966532549461204896137345986594899263353359672681201235107146980894761196042518885518652581684610804813792384417659308894149380355357578776734225648015485784593682964528173891296758302606699575394632659700006219052216072222381087615185339876495716924404891405247957656198649065778464989940831254023279736176171547620531998712916929437777147345852468051007303235350601813028881843293373029736532407730395452752846550208502871478099180560373679835073820140517915494995317300154265075771138598415247207711262426707817746164909785929574603252711674788744390789818422893287594900443739241115804021038770300187122391126572999040308297633369980759589941123334451025347704819931763344073477296624879946286493848366798764704441984470345412528773964871379972565523502059614132759760662255652170593628765752152377477029672972712631596547912241440015731947450272046247648945714517823713700005326122961376740767937168083690459513614692826870126803676419119868862810992916648671925815215780671661454719725794789253510661639929183865861418794321529294375353961710284651419356272860284592115693617110870166438332910784814908717812905567919979741650578931996777617748557566108020006213839197592034064464309194056425384122573142268719177903647358729112750415510563322030064402101929263461984383839797690193496075460924765489243820561829042940511889350987264111375624064805172464523944186468125385449560443898798886689714988522050741503092695738149660485341332354606426627533119295800178124578423285830388832933163181575671527225303849963692532377891726717065224779112917398052719907256142412914338878642931707543992009495465444332621027749821235413265268352528892930951747433416103221959982688539814030106991404887886168603323502783017552594097408341300063285728282279728507272638540826779574537804887849589519473218616826601100420216265071778238374364000829246770161976480910925460144056260825570877273877938641955203701513496073643693064361905519088673732145649568611815804786941742835495530875749647869149586060597646834743286265894088599285581071927054442216730716778680981507635693968229049480451847648716053792401784584544368634817829300404865263409642755660840218161864974287902137156026494766202990398344239694291996341967930591049930249857655043825175325720174185779277106248723499579770533181755695619525957316105214394849379534666939604284473047216773448763354773418287783612259745472482403404742372101795270316237226520407532819047525172582426952553751581148896029412700691286907920435570390027396652778113850816886747927118864379241252969840762697929519215670370794917429493161274371978325456785901473591252779558833159638314054995786595439973363222148593088788434043623218485611673562811458615346493786826509216499530379038883657708978142833458477365876201744429157169321122691895880271630294587616496080673986271995284779891754019119071389673742096767026980576021604657799847651740882622135087753477608439887310816113178786042774449195076380264583739271424170093099645926746203974546328889280432235146005184657735079055964801676264653409721181696511363479380662130813507959097367525329181224287621807639369308888294270698252016417100369523727863483208249797365543410011380102150422123462842597299957529575069323472265753212201281524147405237815333508092817751095024213949169363123283751781536938605741556157301173704112561691563030574685677735688451488972327531740928668024528505775466353887628570833410713304118432129066912408834513153936232547378196196305158658880858629477300961467141158512771842430778752603027790315459578764346611014248322770332804696697204778214446849835901201276420558425741830860476140138848090038921028478724144628684537069772112675312000359416719128388488488414180365445585335611649648133636782078525084095592069777701469216959129402278338277921125031497920563476236863318914433133052444596114558508420091292900903286189607017505107439344184609370892543515819979152290890046236337591058107144465548180557591603508845225620612995074204398035847344206550073921343873039248542952726903220925995643566217523385395703514511754829373928382953004667366664240063804267473174074819984289789929280829016532278179551251486018103448874435652922416651836972772636824109197919746446661770361269177192854989775562486782563732997786225880971299515417495884070775225823655614554783635679900909529012041609628107258204161933748912226689012040311374118008167717293738533525771892874444083200937392243082554198981957820533666949213095215618481120902140321320057772664957874546884012794075756977638163418262705979301472007075052658624332089519154419832433618091011766966749058149384803673087625719499009711242545358882165111140885365252637089093225868208867952388886400018452318534915114697269280449582619752151619998844421897446038034308707651718401094004912711553417712798057823544963992756452307760803526058912609985388876933731537085258244648368633617429711625300460368077683796788968419055811084961373009322280551845746560404526173644147592901716360196454383801932978193400178320872850838743731687950220379427268294390176961181725742338924362172655444632012725413328466584217596038441636463794985078569133209937063816100307747656910402641663345671154352181604272961754388856152868331673490971980312531054667475878457229369036539565090551032439054568364391587492906761719766122127894499597072070473211003272927558645922281667124157564683483795928069892343971354675806305899880401243729347401876227441689650999031687850547487931733074626046441899517444480182666634393053046544306311044225132990164015448323887519653381650840839359623985468185494319871700010664895206012397145663648614442694649797329199501884766049398391216868620686085055457832112061606651115134653581032090029311236447331966126331274410438494352634001214500745096758993912862696320894656128871982058045539766036357214361883307913618230504320821243785678241752195117553187339778935786739741454930919680575095189012142516520236866414175791184095369951650293107240740355898116533022293203389884671667104893525528065062640192369200828769153453907025504511835092268927853137959866422257753351661605527235367048793674801365449981763393403535949065418682763009150589007024867490006799717290777243085972873203715800182483150206802035612873278378532263573170107933846819903010455389244045344284843591575511307387999243629639560151203313269098340249165566736336143364745024032934795990799108266875462968405244116531152452116118600648519866908811527654970527070820459561821529730566197575029146969734494809931542260063093640862281555994904917355285080766156561940404765679040861344197437986682725248690413158128592637678376206780428399216874961058761619453997699133367345312842954929017374826751118255515904682295946151684877167021019970734855536397805606294392737877344892058178396098547996760638232524519460506411421740022703480250244604960292483267492737589960885966772186859205401304678669901774450975639644064713524393294043961645454551346944600438460206677808283913243469752732587838328555000265499600968162378771421982142950950511739314136206339602649678140319014260577307614015664513573041934838677236217164488378050326842696039265954663206142477314601279393907619243963468525705505863973860115005753518699344899966309449028267426097015653118157053042842669227844144075473797376560415483949342741649320892549433011223909216522728142164601997054941505390525669788362526874726484391693061569263270426757882569928132744298143095095577530771473769406852751494637388747354126068976096291361058963437177138253236926051043613895397445743595212510124630715913329748021882339784841929490337652938638893199909197272124389953085893996295190683081278314481417466007961343622931664880482175523261833563454982009109615500451950162212859529130614810743356362594427206469642590483290269439994849629540436254297268608099869691144885963497914208448066502563260626560995676703172976956098091790514279315539464617163035249823924006421959467756901828601114322713777551060628126703157289514973824269916415971522093049862515984389407348349979197480204356406329292454348417278854790658933772192059055870799520276389856191747207715748461084423034702253594042355620640872904276888691193578212432820615669926954778523285297413506680175550200165775580356400246921298383316416863786109032502998687261543615294370216442796977984163626669464401146924428215557969744211232544673826293366086883424698586129955766571440443938377993778201167031462621965030738000010726830113540082112409369158239789433721384675807412310262459528613999204746137534610750601880117499404555990507147982879400010629072006320080705476964481000739426357190910577130440867486272014115681892945542854006813907742646620925864385198391183043834919689637125788625629500138499115998826284274903147052819093120485931358954471771562497009802123872768189338575190555388685625706101320390583893921988462278433766558429849534806916744561692265144788472528454970636951562246724514286664597771663675419550405912965666939159276960676002096132315454616179431130995580013484592209641275015978532162366074329673608432197252845976065566104188988791954372233573047981767780143702894289824940420927531031137619740017894910782052527382489709303672295258957059334948880103167791669256112020204470758576901863405477142318912548017207642013275994508823237017606486830615871847503820102707254740825015146226624705060054887495833699410418480968470733160861976589704750099133453572799836658545501481021330385330250978828665617250306516656399752709104992066014573575609239638574452202149378794491968707298157840788816111061240385474787080057994929609439321078289052413711381852188636188384252054187579705769575254481179371207547726220048783832085917203624557019120623549756340609215020347477240820441030727412428316544378848797147982036498704409726147745411639590841487698811932908692142107644172824948993945591841211150159555033771311546141896262336256953443562874408399403875418176182527909189505928801444998535855478333924166719094822601301181091647384928673943936394409447909974375668586262617054785394337360078641446323573783774057300687066572988631246912119883991532358322102974678610205885894182142588159335687674739934740701414340098649467560591158139924388752070574096911743715902658037950932652718430543347795025910161356887836413973209431606727539345772968914827131139671685132070120516025937747127984126231374892960932746817628404186506504542680235669080014766819326982404001768843124491705622120161692089635683378155733478777530461460403508576657509784916775432849072978380782266033237565084755708078923250983333335401053702600681410717909408595850809893125361667165557220145052609834635517346950977721221495102324516972075214114716127147395281217755804877095292445805899718963847474193134216085967760250155918882296908381595712040647438314937044448346362344775989337098575445269106069043881008482996560732353475983077020707045262295185701963264124466337073900947351140185944910118142449363424897955727306800365400398022408639409694935255095722093985609085139490335496734370925482491757266782714372553687868679931040396897053658142757486731207834460804183206416647992336597371137823909123403336911232347310721925775978871841994504997296168296061268660023879942672552234003705733328169637659287900142678086721936643363583859993419548924563313860020178346184845699379159903448308320786389361637538480989950795581239671019691248892845316721561834751476836070047798851105961901638964013586805827817793957857105126301812953476091012821738442810576884094743958373136450292855345110011519350358870975134436643481822022130672732440734561655738706356551286163497241939107023502665971933548460077860362466254058035117055478539850390012955912778772515416365135588708321430821133477437424698018530392377634276140332942424084305994419919978457029917195927215090127817096444742223437830397274411467036358246706261010790111128577784514303170492450295535776608690873955642833216059195618732010481244636819221758473918801237162038386633594745221047037432699387741177634300741519020955112683541413739603268343437858911884844701832049673773349249570524883866648474383654950639054374960201950831985752029080202498674730847164657157716423231895252056375583432811876766006944293978160909300001861499377006909775680450439349951344252977350544706977527517295320361837007518394044451218397658260680310424131122631889075226295729725253834241147588989494829609457190926456408651718458079029185951757899544864833808360915439230228987562810889076662708398957365058304812674556249757166031517975308706143668252823548817354191037228318681208381945846483897274831327898896693498806625796404418593713283971913881681025903518863260483147461135822696104499935972501269711653449802153283439213321762973161800500911516964046355958021218492442597765064242691718229402695106447162609108691619866491598968983920542831111364609278909551984618693769054532873138838811941323230023754883532932723079720076714919192938728974205728517840221858240413360526832782166685091499375064374230197526322053954343246302041336157068516474378125814489284276223339529668431821615939005391818957183234596175636378838463035054996407816293664441391248742006616777881760027739146639490418967030019378985644142770521226426848675055681067630327559190218522711760366759232165975926610527894579434922144907247596005729736597382056219718258936340305722366331737976183637933275024908808061079278075956342199634580493564030303449745891069832221730503305743295947285995496606711929569519340592579347458208825981103124807952752110135321561088899696667412678112462249896446265839184874356844668765958066940451780841793104658903085523181215473937406289116192030472653204234326844899721243418128973356029572811157178150109722701132641706671541417123545848248682208076013966225099219302841300954866786132444097466002554165209782299322484002281806074320611126211705632226225346222734800562639628975745998116207037131469128144019718921473974525595903965182556867493782972350587321946683665626023826728923680049067926397956714129399594304517969605897569797253625854438005913909356673289015780467865931242526668390677677033464854922022950424555292352188246484304137004941211968073483929047593628553818513562638483736551436936276564328742005953321528156783440346402698484764232829821616336414521872234246116706273647144819833358482892924652389615024696001746421006797492782145016064767170777780280024070269447144492219728352115604488403072019807623315578945772499541603699815942467028837465460869767271224696924435682468237749512080544760773196455107439243095229934552441076897195101585040166795779663254182870141260709191366516904953053514202835378234072037737996493402795425134596915931583608541465040222005204011071998215858888934518731455700608713977625175230901176854323288544438041944866145956414081861872282848021173004238398255046096806111571803216892864938111350393365288310234989127933750174750828579322987289800936729334364904032866659945634084067730792863619310818070707249774715064708000512140635044092891270068242471312924460714679721723461063711229880882253469012165814991837807525539318013783429725826152828967801213948547476809493439110399907675747487083479692183406483480544143937982614569314481824542025636039764154523847682863675735193994945188795109229461576107129918608439486761742288653718109602741132529261857065076977393934493683891105353533441446963409346151458407126713203457270956425786829805468277210822653597889304607339073999745887605819820431174362987906032480304657366906333680094090726190253167582652272024238902028185834050500826376904204639931476134952326213047445060838481840559619279136747654851694652825474316152067462112671388793526217999490263025715511630324084187340500604485834007270625617754827736492991994335621751188377707503578708916622046922454264063193025256737705086903882270721268260270141655400556846021580538063955968513711743326475556337862046711804459984707585747481098106977606313038729157716391182291757147515310552974695550275088146948258418645104384291571734916353519775307375735897033946683360576445895993538038388652769032064923466150114638655789945799326371696545011421356909829979365162106392377958556731604312764150503920086001981518078307553932448113929827839637579053165921287994541143466397098175196260007725878098421615535776357019557351650817122226594009186014609555803074652056156814132974511455024083000796637204569461617340100152286064127310087785108726205669196801172494951970603751035716414702632325758920036405918123131314595644399477989116459882728700137121781014494270794151685872995967871004828378047368528191655698703875801970242008775114935405057160193934181923775602743485658323399541684703615639332180462581182247651750954691380484354956892565440720871475350108181143745425386170624271994131774514062897389981485092479485172898733354369712863630375702553004212464103061977105931282392027894158848417640982064283641747443012820594981985199517259262316065383354543770116730929507574160038100998058749529102450499079316109251481937697420567873574859989940901687045681105120048720985036605232405490556527057348430824723082373229552376764943191392465025900487236393132280336946907213515594834135026527955257250594897584814016575877956010218340291155716270942067800781607544915493011205850379869971916880535886899791542765910375499462573162750718425281377191895879638741119404829149564047952401534800578246406298638953179389703149561099142839975306975387309066300862689376779819410004921213507063794247755732937754795686539722172042040120335320121017210600751658818890331365429691150342150519310980114476978694692815685369698924501122909108423691203480294521528868860399515232388955436914247229585056804434667408398308922443863745380028035110851258583887032024710991083408458918877814458730187029495579123277420702001929900177547620059019890507194799423030796454348216517319526121716764768999814371117414948373394646035312471578410034380255019562980452972493640050574133430643665658879095413590871574403969384109806595914747179622182987910204668795503877569624696044339980285058142717646138892499377751957837937948284987988563151433881476548911833924684391595823711481064296609174473604193672909736902964578759405218229716341091499318346205139784558564875345250745949588962821944589389704953936573125644489365020373960592514933186717301723336337097114142991875152634380268639579209547000660698408538441077055072476430599932551872938788164498291436718043671644414595315066062903267983891368541218215533354034825616246567259972014335320930573532889383362597605162563031677491839840609920236417695198056232649851789007277462469820157885992763608224694196071435370841502608185465543832473215612527703877115787028083216063302018986743829737720809528424181496384170066506355542776125495492635232631727941107310747615858257540352149164541831497079439813912430413692446326637696042400599912982599917439295906225564125736318593169336716911450377144572014030122254132682606834902486614010573575889261035732234223718487355622942284302507353584140778217088734503487238667386349912943313357903584466620323833052634602624310748947997598420015269678755027141783710878926654432271348023688978062403918291035203267867246034072357898750936338005676735975488990395627422934588006005461368553041658633066756776620894121561721772721782904206772979145804817255308182463974483921646387599672208713585354450250276302548378861578856750440437424257489472954364444639655872138357956795846004428186763495540605284663939494717071021912880886286756770470399984422634037032810096791550505851787637005533119354050229559248281551124636420264626295233185529075678635608725796707508193549912080744605875122420507334221090142521677661883750294977891734201465094564883106851985784358226728697351372069309842721309174121311391445681807448005581134566675248428073657644649758231245356012565148559693413763402806247842548333620668533498773379452940914296145393360273728310460157845381135773674063623676088580267309540065177037067392488507978071511846951518318925630789229843655432994318133080849019202212183275188588617853218138687539338853521348515692202641725162513459325779458817557198969358980162431279211682443869079282231492542586147975927127046415351995114887009502366092867920055824845859137782726912593912250972072758102248529033624229837838193720051601534650147269575668042998910580334713118283651925535922345927017485608068817549267539964586881545845955958273264369304520889906706888827455907506534259881701798042428605001481975216792630877886483631427804730262440698682369822050691608591726255718765831391921242470560382981528640279013756171444000668951170430910850657244627811913258846307474172458662338938637561871155926830065746371384799431961080466871630955198779795187622690635097048777545125848933940643423546103033090152224457749960300807528825076191178589793891684634027190894293072195585149738343490631142623452055324819461685916809009405280401606777260293722370367257430030861979004573064336722613890365155644948534850014668173155668271185182999386699524739365395865413544872022335569747463431042233150384462282239580310652689074406886000957112037889537049421920234703994871640978010146454473372624805305985204482903396077510407938851131201790469875620930939903832159058550402430040334100390066197534545722970721325510946085381786873939161967068041012724155657112014235617240788122078552462821553732431166709962078893552469112089872833669863472662624240398464773761824752690196918108867791419178296678569286852944130295927775214779751997274453065293749094728647280851822004448403452106463213351336825997136690497620054917744975404569890489393279671091671050451701424066939130129011142682171258963335284462008773227205661726656486039941162179817928151708951716262380346241217144759109187828487283143931042375625187577754766461132307909408716350757227707578803544326499586720884897220032254503815664405133249804659268647957558831429969384802543878231294852096930083213004911723494056713140927508162096548261104546843261984650546161622076092036151870067278828748702870257294945089069943118625904523519771792226341537635151142700194171497893170599559867962710069263545694685737514867782731673229494618785317193930671234013168078628253105960988371871359990562928047862285298736619799206396523471768936273707463007436908455519740495679098330453787640585733928882485195561878100110617195668782583938127337083365525065728168536503422110898045231857285934042480817136738831232186763661077103754623961150265688171547188640705382999853888197278770136615914390806050250349762308172997071046604996940869696163892173736407256680041127117704771143519277654848804471717767807801165834567314621833716579324424146516549211054282209568159803747892080582120073819789861882045099570059277270427638943663307818071162628955149131350904478931529251824561651568244268557338915242552837168329554938852830614763427596738066226992975949560034945492901366956521279778739648412208117813206018865316388769003290080460130783822130010656765006505439790629688158010444298529819931978496558677735745161028974615862619063702013680458136932568639719948784585592871136988332209681755221850828406267286205006941228060952352922552317714927200995703876557788340403654620918633944944470236797306749317637857957282725178974017678152077087920987129535824090786388569579061156382309527262947552588110103270700424664983536164466136368369149103962198022252477548257202809764906205385872897020722924809599977094884810571824185505404323767117785227843272604755478977371327963081722479274212248869756942555361593040561116272983868492451566492012998528272084331165582529135514234946257606290544150792727891868070211889710216841382821288218048616819091847349122446840119463180036624228051552678457266532021402114980297917350089618955147576661004708507341696894028614532128165292100785750118778912030240552535677216773692993866220070387503987909836797848719997118411070997771167416600493242415383532821227197025636145275109736681615521207148565972748235383067899016048470965069711146717753191145860550862272187448188130299834480613042795748716865106971432746364257079008069102887294284339140614213499632271405447812879242371635929570377896569887698352074009031304005448551682864594502001053325503277287271873853012517750593597287783246333727899493408745443304786929655507810860191543605063084233399066645422172000751385869394395067498286056408335607002472328860664378600992535796692870803043634148251105587967275672564130832708022739323038725295987630713919867338974170843640323455795677859648456550897902949861378780886290082171979175660133469876050027703472489769129887779047251470972983494529159242486349734812173568192391748057969757460172245155672784746107828683629526531471759567543257792539840025723080998358955284387215277160028472965112413276433388365269524769901553926206754836573257924855935952789781886130731265299505418417975667659800691514370724449816190436067363897854578806666793551050251352696958855531854082524804393668198272607135177138244697852100278366914346852859079405038095728777947256314691582656496450886397034312441330044711942085421385194867722749774344798523560296566021970288330616056428709253630049923121698341897477585535276795608956146683857493308016526882992567383974909632516349584681048679747751607108877732396149328979110279408274544918316023973669103754825706099661223304927265593677473918253152110868980260903908947480664827772019211590807429701290808827317723973313347688791994985217468439423377439537253402881657838512324035433452824175511931895810652208547908452979155361736675036340585542199859708275320437224170677096402461648611488683430324910378453398270042007217828423568761539263782930598385991254998498007018746600326021140792372355654396646507790971585616675727043329372747476928745719794177145371887502002684269989789548676240698686740120798777451146107766912544799360370952738573062618776813693641543730359864954179347810836050371527508538710204989095322757939672032165873067481150862121993931484390834755240034255916249494302110881200567894027182056190060587074259684999039143140867635468266599117800208779991742957430530509434714469558438802570679413008154684735249336301517117429163669736007168983847810972757781488766666380583869066237999965604486356286385740671484684327186108531943371958286406265477512568619957215610965332135530307516708984676390544555964654102575050977066134126767366454462582940513119822453537909091828579392567140669037616577777375078808938446007422422236131586443255561733438759839066122944546516155545460507506550010864917988768846636639791094187602250683104233802674519445643419716389011205826023441614208980663870681268699537425713356364184159943627020547510653909005131396250800240298933502129979201050003066124690534517120490237523873939008817906430556424664838343780012899673105077327610204820461985477894811562192782520310729927257347049979926456999179759258643848427674660529967389277651787849496133913680225766004117886807018136496348320157842175493895513130262126200734847627739455453258830303549105206093723491568052941120696032314976673760023425014625816903428752133933330326072405563381726911527067920655569796870569626721389058842258178058738007487774799549731748803715043206172701751244543357616153184890658038939194868541458389815396821229928790154070825322257995796220953518983795718327921842480158516933368863222166087720475611948032973511529491138845438173159424731968636850083316094907830040716944902239812997030172442406591143852221414876433237959972389236842869742699473054053605224935875156246047102668878936690028684347945773570059702499160608388296807525783210225415180721959229796282446250650832049164009154651736523699828124045781137265528322448365617114321618654610466458645203446891858372994896915508742477705667651440764956593184933428572104506233315068971866426557180821320596550239930297289182538377445881377434426657497290764940510147142687254435435476153176158136818491961826566230669667480553609269485557048688603994422294986065343074390538129840975722056450888646477234356687841022980376834687101327391394975877335534380311167005140618294291050895310927030020939130638616483683407218633945196395697400935297639317737710093787250338839593403672089420317044417157800445277213843915640668897275835531252423456505418804362192397329600139471936396469729032429828424250355946868125104968534424545993799130804872069295112588087119860207952233663096325986764907802047079461396028663178752119937547352923049752608488343374831567959466176955957264745303207583867644705557008094681593369496275906173810401941482039189056446513081420747688525693716363493678987062745183426561995690870202948732595738419453882767961600113379550635546431335497255697659200577972996065946011440242712920003547677513549548580305656958826539631949918628186274183635725573570590853895340463729992003108939535983629029152962737107481917880873103076880647604984803910633366215467967464984540221466742466616475418758161398286351979188300785479421357217138786229277071457409611242115394116084619081308920424968774021276460365855113116680959099063730891113737918790291710818161898544398003548571735654767424860938812833347252831733795642612826651736819198281784328617772020584125005130610788630884710364317149186504294559254015739159279265033671026269655812971276343082786554814600913228233694340680659019987579196089117891257677702609273790631849939355768706654153057447263317749095859007361672691265766825909412948538522517926969494614440661799704882566855464171421997764533660787482113108345896983257100003671774932295544252675927427712609610618678202015874178504104204560169295197750988907933114818203866240834529668553974013660999874031768458393739178332953545142698213285685181856437861471077304325493600592792081873676323649047423207810986084362732981706181280525346214848644243003293961135629238587150167257286690666296475307927910642345872018981205072735360226951477641336726821221777889013507750660914027064791398614251894037827184553121144760396359681008748306227116763597679424263163366498910273560215904395465984157282462486737514632347687412246229716537528917453373389707244001850776833806294004829459116906795759313229736272079295346871838969332107218047833351849656692104512113202044756497798176349653691224788816383738815622580410598147452645246154578960110348198539089193175452072521671309660816292792834553663458275923331246575413258813939619443873239076939917844067111507662664675185295512453460293883916597314026478599185445215501756537621196066429733180656094333128943318748112557888340167336687590925882851452670327992576924244448269020354003081771893433234773943065514514365558480868391408415356282675019796351266048318146074415894556520288555649963190960153064323207839455817876059136741200024409970706784209652680561348137163351970681340971513391379731658473327375972251315203532849826671971959196379192581876095865757151660727939080581205092706646876427361379074336526923635213942980687269481557107357687027394692000267876217499743643934635157901928849461361665558655930944981365578538655994407423297833744644642570151965600760121670317575877995337822824299146660430046310877111975765995046261944468223391954795434363774304893494527150177500210738910646552331020705145173066601970284447379872173598504969023975598583344796968678981800350654221019438808392482676749703427260515531452751839980428446150584137543411340633320308990737040201454270902458297468212453271404304014173658304456639222018891463362087789515365586000199536114123242239866844158149143330566268388144082086494001071928497334111509263974749680851644687525002648010045059327697473555209170720169541911892672422309282910774402776728225698314957430159070061954263618744232401207708974775615076267333112047417669232962691746394139125437441580051473663167295523273918169360843030124154572496192326429344882043675100677920331168069558168891262615051927494123681947509743719032575570718359353864532211031066600293249908957567088955590294500519889463967867502101066849238187109694536207158518060728875655598593888662329510401671937289505229712944694533161171240820300764200046927703300462033120794909370378210657428105962008225533790751182737587488108627018718381481402367245780513930832731694933561622787935515509255553354079333903505733292943144087442432340897259932084074448244171879291850781932275036736584848395637738433446623967284268387304427069342529891374893619289754964264329589607774692950943143213887666140436220700136609269113863028846804867402751717166534967662149301441260805217643123477165559097194298696681009637505921465970538024538700040857617555673738426337548436000946446899217407958477720793510480322247734505444118280099826366594628490869414480127262117849162669260226677248287119353269746087570510149242848684994488693880760781705549090499925793992999431942273858841726665036162270008404343113097619993288601779572984232691309490271792739816305358369816759097678253813236000289102638398116279777689188319653948428808133295536410329476871932681620819425417013462131535827581199466625058112996627476363569480214790789512566883710076900195815246108146803446029104680424614921073274334497812218943193873159755346765909984959320097474125979214098570629202977506668391427832225952920138543707499736320069088703016197123204046943270106757441310372395545089829875996029203642257679268559729342657456043758208576783904625899283090372550952072215317317400281431251147462571892003267592333373040658242255197535098109619114091259978107241478714944716993186989633293341007481445100346230002863897995444492606432772681922795077536049688956021784189779349911180410967507164497674403194096664210931852853294558837388009872431821821768837651039106296294425851311024227015198949574991690650371679362756042028915875162678412594632148696045088185394212754981835269295356921200231031543189821315909784569100306121693964009547541699334581638429776481345177177039414558026403901863703826129632835284423616063616555167867622808070754240551150918412025995632619644056237826531725839761612023137197220876578725789921765394566918383149126900916136214913204205729647983645836938631617138863731789436335118259295902702290513184398693968326657116307637982794202797186770033212587867697322111401020571354243249157088551603056645712541862713155797662857742989055281269462083473005820466586466600846471708929080930059631994471758572238961314602021301551869360941431150535743310635302886087334075672192387585324345887268689673921272467236650377860670553697733704422114004989244139232601060521513879829947623705841590957885652642208821495028709652218151822131062302579776965002260362634049549650050483197408145011055152959620817708191826861793067388293955466061584160619419356281959109025159452774898141858646125383180952110283840306173073792655722139654754562191474363411580280228707977865075053998574014706547082100955533038887504643866861440926239226386684479853938407270816108171351722383586932278934848445821682554708875111691470502700084704228949670152367421254132875310251439426476643527015829256886450443673315484818830864808684752804805164025013286949127252092774762325383023663149924767040696956965513567420823848527250400600626174692489501190484595427333300394528243548448082092658500954166613888919597734733404165720722973205534197167464698448748672323801019531351760778126120905981949911152693460008922731414633527502568860799416272833514180488999473078235088399359705583754409641240230506207868674225104467384541454223779868239146326103486752528122802198364320550917652566250235097975223813798544117142955439046382646673780029970509711100297415375508027370717724607128662244832206558553240047388593677959040950292573456038537398168733812664608404740689551347738515174764698624640422570876549125558564277246779496194240134894791677827296637846641165964069231123213602960925128708304067596376152898836676810637373612141710724715692240239275432913919888997738587062597547110464986092969786775280620709633776268916561750498897305741229240289764711743177630032425100999961791083096878600586636929413109869532078750995272653335245050322727696631973794714227157949652432207295856636799983524018550950633120632515201446654047378875192962394286631023473131658756664196262349695622028579244255940889936161901329123593178632135156020895588249257058433006791629801253848972695713333261273296501521656788530841486943293651705484061859419265585515691673079583504323985821501043427236417057228860505002698588907992207141479303352548711765568574637871342311895505349713627967281617921994556368042373562520842634517570901386728937515010898380388518550247241630188563107667799735945947046019130460354363991640555696946036130625164554397702687444010825657423461970502257801014748339687958040428043191548162403417708847959329851083590003962272846106978090608818303364544109593757014932824822306195718276859789831715855094636040218406086131736204798781371295524909471157276225414236626748481741140729531228171450817947828432015570123097583590705970680927780859125680677484897907252177554101899662159735044446243482912044928749582328522344834238999531054005701234434789364125804721629237475093655053296935273701188326086058715143297005590018805270215205862763628704887866525857728150114790182487357127833618863727622374054183082513001995826703096241381251225329642770029680560879472932625763074688877552536669168574855233629000214997912328261495223559233066648173596908944494887333134007819934770316407369167767528340404810820572205923075463699968278855780602000062348365204239594931652314684168718931726767364117028498655340419172948922266861898588588869360554736745547438560093568499300558289244019525936757558551134502187386213442475042334453862569536464301075112970156311760588056616774183336274982929347094405749850844702636854867578457669286257565366168350575628828294031114803417143230649892782986477833122341845634081032018067089493234725852173596749469670404944973939099008954987063838603451408774076731919030268946742787018551488063131776294680680871337561167471277077889565514243201486729323619229850619597879473918079075991240242188965959473229577776255143446043051772206115434341459821117306838626603285626375268125826119811551344736295759521426811668695293428894950664100752083415844189258064104890773549184988273814635542191996897876772108375976005600575924203847285968888094386943648455809667317360577336451603757364813003759373939684115556404445425033770243080508416577674646421302224796766864446423524061390960295452346425594248851021279020400917350633149177170075042044519932164240071492423091722488684689230840824092793799074763142138476091075804696902873584753540305692001012769450253927904058130274676131593984499184194337202627611785250586311493438748292336012125695245729305815371146217722657383247823683361182887534972612849358255341810452579819233041344697863267285176483463145920652960598788736108608718748537074421146551065333259766735090068590622599690557908895766770119304484583694172881962309499698867401083949119905224630135340213044131732434902283885119755715829058844339363717677056691217662392328650494161917743470825810291495383074792580127651837238548383886336974792819958987331196917113583536510170475598479686095371635256327503233330583497377083957776127772041439010862680638005930928525907648518739984030207075510050522021740506123697586510565352446589023481520277925642412858167891268033620219236668446755845041440555449107039618539153571483890164969331500078661316772549493567885686897981739393725389864179420510847979374055203390246768478005351163219995961473080843007761178145732701856038256147581470764295116725574832692772584909716612235447881659769777146918889273986963149045165169045089025787795761466507408377305555141061132456031301317313687759357397036277526276152332188291287478803945367315101617820514992231285770664764027757182030290872146149325720772430308398624033481974695290822199842697711885315994368981696976804099831670122946077384708917190814201962305852502155794818329189750620338905858770443891156473776432204789122598430991384418808081502783015891156948868654718705812142914234626612169798395830671829052032923127165313346325943975087803165939947065299689280900407740525120312472654303876079813301374458984074717887088715112267975277429719455191939373835450550178873235576686634689703456516227586036555745267451896318717636799174119060099863829275542411986858072061078846868028392642332102439113837346347792099337162966548528215817287784506028986256754742639266102635613439041037854375069534000529398499059553335072059989166092939313366203353879646534696298555271903333973150520988758485419294802486904799121487560326753088542404282867235556945106151886090374462894005029506359911659643307231875595239490253614349380534599347962123966887726584320364391537579065219739392681784429156574545641714611823919291869979168297850411849564478870364219527912162025218655872416265536294200318881844424284635714118066990094894329403801494637391512433414714924985993610534952079564340195154321975938531359627900514164041375518192443430688224602090461522369374384545396946735418125972580586895227247732853140285541815434294037140619680796203890459827887146702153018546918017375116675398812872588080151115613183445811345676922356086127482894649207774790522645543015531977916558400521838442188252979337148131432582425768244802892888289365981547460913025139774440540236148708263597140663299399233709794877009236142162363978943534165038854497773024169035820839818545777096520496394651798456245873660720245765571609635519435531508291461771138494499280945482506101665170233036665506236844102752546682512183454810309557423111697591195307499583319903991865956218598857501599198798969791869215561156191232246096732078727392631699157325755176534119875492016088358567108590195711673846722796719488408267398665508047940496273205504200281862527890086027791447831040316263897050479109063409332482581693158856693321489264037150734192048214912081523527971780536146426993855820110468084269381466870134405172856601795997625119663496270828335296373653757144004947957958173800365079372061888765305522415839034569511651938237084479512075225675026180477785165855310533072236358945215306895773368676424662891322947927143123217576201583678074621173480713621586769127212957767474902032231683747897401499744790014355181554943785253629660313464538585121526413015941569900236463991750517678930854874738836212262458544232129102636086076347223870213013522817315144908284297434874626307464419310775137612513502006121564667009300494422481354972562073990189721153973933282822681676123798213717546033138090873591457351998543879221852763482325029137691628403830930830616900803314126970729169733677844955573150525531681905382760646706304898551608624150700357157880318120690210895498685202636394260977704537046383244651695176258766823699099355546351812258081197486490605234459514432474155029028681055642325473482163976178134245203724552530540995001596722146289527852494716095839562832122468396732674001694609517457217509012963884003870986410573195182012470701541375608345744416518300576057062146695292891440484273170480592859357684120254944253105149796641725293020513861583629045881034414173086386317323389761896420307958793211597774264563676059234882176908896888637911906627467921782685649915318492239859453506425316746506826252404837406497339022899952835206955882824068959418326614155508352144403387706002633585658251302810306856014295692706317318930404251162017362972290072957384304718834108217986237516474962501568522333929765922256705444076988837141293672820201729356469875174387037835215475791349171481803999876540498090826843439407161713117126126053621397042468866649822613803913244417859260167521237985695416169538974936135231376888731391579802583725789823948142170017584625670827817326255194380202407518344384306679301613096211092986990239045900483555556964039991745552219791147446497590678317296923698499667754503542072762617700247811597395897455142697838572219658539088012044410755306816375184490258807687062556966204515603643018437233051896705224716004781978559289441919957800247706174643603204828273524314095382279701119305808862051000669802949448310137163555711652265530806886660422181453858830894342092098949648988968436458877913319276635620645112222438315368272581217656352913829023966158268577199417688013324727234810175547370550036830761591784503395807724537769298638827437048899197647487319644985859884399733084343469524705284166938752106285108839457722840441727771646891646385315970432675881794198323172011520559648838295329124269237307188729006270133647437288064468039738783265482687155213974271510297898633265691768692340953950831461126748605241548213367156939741217635340308052804847372915026717939776114767309996974614955627787820522762224547633082869951542341430124989322721720289305307557524461336699596062490865601720377250873605874698760066468650249063600287288407063542247324151995191513844399288372343564033699392967684619340029294263700134652006708187905336641087137192175648373514261861066296131442135998629234976965324431009409592179861793295647437559954638997495741545022404389218366348333764793120114445016392214063445587825343203631551592946143160017564069003750541116018148395455973677901624379016114155564402220065867212485751690911037720257890239289912036996670282435762852655773963012311102102377646947741462620911516039812945618081674293879407772103365985973478368132583364286134421677278360133106638636030757660838418829503533996760186623867246614147703146196215662921766493998663035700785716954671369507745085646869118888915550745783949039320332954332618504552425561529406625929910214749623265240985581793709383139993213260315425621032914292630109505658222689945702950658438897134076886513998305289254432037516741567590807495014291789921971608748110369198558993071679847211909771360465642333957947291631299214996727460301340971142084944064200503626990227572371779567616957867821237747041894048751218807932050378937946571002463964252333654629278644276785302843184311019922492957601752565480922505729768739668494985504352961379520728230944312241109214375231000779625605601561893415199992894390184897387247935222787031272453080161642907968197014920181537364269123564107826313022541180594541853516176488306419444443897828967094438178624899056187371576519929761515576191972692372280450633214366123956956258167926418297357742487052964228375225561849645039358858837919188506957526152286530169837358092266294223206485627128004049746171665160865396486806064501502850193112948108132267202484407933639672525579813504912744586155789088659349296593191993804146019694763265788653922869113516891879155470444196729675099001746803319643702819938352127676970070768146269583730905959910867227522378296290144792254579311618648514067542363572733076983974950105524957866172591683085130949334198745089710823597314279498931210938194159646804294956138644859335436967670010989981107087949230378930041057360320967273311799469355237176163524678815579228782224108567924197644063366193187859984691803621014589650968901773207733411730105038439593008134891402128486472800178058121037653248540497037423613731399724767034206855616888639837799093893271934875654291337438709480681987315164450513869472176055439842931979587922721250793655889335374312711425428546133979363326230193183826429458545555584739199099874315472905702927678375561822946737122404178897433514759308395834152457617989988035938628089501264712571461322158806713324847438988595046572208024459942172947307454325757700582772884115173544316998661895233203944150784310480284019967180256647360211834674300425129736552846764102594756918733866916936597912077225255936590281105606400160277153392758361224668302191762492807807998952910014631059498140539150475635175586678312168791252028113956234440495585014423811984335532028044130970884449903552731172061509105919966986565129839881876042320002967103069165283776444930711893574119228927187137718756423068870319022429641407654177885276708308505908964801993909831600602322281924858194921950086776979483289631820800488861112083436503423252786010633664859402402734605418058869393442711670059650540200314396139933662076738337597294420629983452119455855890075151587032594300381122612941388082787096925967858120848702530554336407096884926032037862974577308977219571558316021210975231912384511062811352615375400041366969845783267998480989576344477419795291777704005309176239724811177125192116200644151549635193914839937993388866593578151656616468131527514149344834643645386325262642644664986838718846525052338710719829589539567153749479913126092515032837972133350644733222238602795514596144201210402565764334319475331133418465223449164292819848893537074996916499646869959728228746827515902851844806829885233490914469082546153970960398703433407295343064577731133642779207556936894241326113487359783230750299370438978811449934019946086200063378567567036941945340024244264650983931003096537241824281266862927456036028932826000141199742586389789564601764027870854057638559154664198655706110414691782098497617745352154491604064605966369652549129404242665725454997734711652454656307893996875763943073164655755624957640796700983900435159522221145534407642412750214806161232380501288651253059609142969644552618822045989303615493052375396086268753883103830759036880986151666911091441091914623044214594478969195601938929746577898735972662033792656625317218402302237548675796087914697388683115887182493113426490207796322410514863892043628108575174697699594747717164118729684970992173082080355865300076554543869888021600781812222077980653627582030161393024452811965303268418318402178525716263341776594539004123373782133305823265443512095420272396512338339214797730409272502613832490290827833341798156266255418469674526253700519656257928422607186253736693466929297918310277004027971235296912447510766031298004609245411236174627960998347042922201938849424277386853601780480229709866349960932784595860621702732946852468137148989856058902525170248044325088537074545111747777157116441483253150837186530860244414309288385161753055396400646600502067449718425449029669065704600667324308560344309967999991666294557669676638951162400587446233149191110452514749739714148286178428366415663276990043545536166039932993599427703942305095060305455327991095589410720834287268381299212756365257783097642917103798576287744454959713755920081746417602767265192087157277070312662740328996436913542444429860048062138050209552957738605384720137093905555333452669493048425239088276687366588454849782643426742315400742591316851246912130122066836903585400336819469219082910043130294245901677586053954569632224100270967057652239957266788637220105643387267143648069641652698845990921785022273776141125846475881447352115048766100473906826380686719495787266267821686258852492548938537920888085815206558636167514297375489405655959639903333446256254553036609483195156057575923180055049479390284925891844715652270334530504650261480285790525277516693076072376757085896506687139931342099353018752312098008717622162948765567607341515191589337312137195452890939447494379805357672758570797160737891165334568257147684777170103105955311359665978861569074797039189054448156983466476291420264071297557963746344978449595199273284975185433534178990054514403182304245486180833943817174850550128227594590649704079677297099482041925752285539438057794850558901719455330877559851624239588158434033959040073500152935913501359228076025382813809358358516251488257036769637101368880675362468575817163199526013208828334300649231370978311937134615248097554040010885581069352484308414737704310559926740713893495274458804517498235204598937281862045900716956717399522264859779158422154319169075105997768287969344417431879431904350918271493336802085463412371544838306315259890654375481968571082836966868240456438015100634584968702515100859060538562927351459949588454130942718606461437985475764350824841061321541527421528259611639717857749411843138423971261115481203567681055345143561017182767229652015024787891705870656267235872450219859459704417765906723256585525845460370651922266566168914003876934207412781794392869875040440195211541135038990247428548369714498713521137736478910745251329697038377874245197634395762072323900523054523528785156634802619092253626997518674231967756263076256720754134110207888638006021583444674273576519648346797622506706938376768747384845534518012677369802159080214914919668483509539934389862877150134885274278844772861934431700670516536023269785310674869299586598321087793718843267472886085158081274885196872029107977088550872133154204509380296174581235224113248378886947541598152954243559272670299582450787625601671107771023345012637664789637513772749763578196359823052524150390462712281898065902400735503704695486428108735465844834776731170643668997827218430279436194916426063301331693560181723616376699494215419518116743157958591923632662498021005347515178139151451956230328418692844120749831181546997752760090134182311931021449716570743094367049021094081171487364644796927040227532932321995864474922316358257426325767441210934153202488883841895172862898610636362885039445411866131505128786305217742410609120157868545522685757570917817731036794763426495267845219075293361429346521353505799720199612372272851569985693431061176795821819245492909718104214710592043062228460135834763467504653251619323638650257771080932018961150262091127023603193680569846987975103117590786261773650863695888254034186536635778056453615319447013234515965262545211613755151061216346464888551146674094320133412196108045811619818660614410725644589088652118379088240067815149763850258271739573565026575644107442715749190610953372175381772945290506596543430798927253673098383551435601817679751862540196665111609138372150810312704325668438184606064850442909812579904836490370001988554961032192988905969063384711161783916128871540079414875768148329986012657139952238406521777556442187009403455030376998593637924019075492453564693254733022110666222601974313737555038378365368491330317198176976328623610157845119007416389633104580441136153620251771754909362499991147449466525188639206090186756182651450499892078660624134435778817952495544061039668448712591888041435249094039284905445624324142653734519430476236646692105722764998397163507208317035840670183952817905845003660989494945521874782320407214890112136863239258605330124424756394781426780358266822805792291850255369169449849698646976402621786766635269171860593062956320755500758236579901790578793097499150259118693363303201844683415622027356367594888583099945214579866865360567801531757967290316450710816956887078207006834548914480624843882964632745780994222997707977285839088437275678279341966976374796932482069605858735959367535723875095104721383384713073948541445120929108018387762533044043545562405568974651996583885472814176385665676276161208966997305742594779533875761619574264816225181391601594025145200142973135256412293406294967847402554167516992817278910257159899748062431087529334107849139994284564915876161745761189223958801515469599109763096661244016423859885182932264024996334158761353289785721558067106638053117617722546505314927630982910825379021064209289493804852059022934060002929032076147597880219509657747466015413676222922255757568876916315677693357001368862566320683366272641765831240619514012471584300176348200639064542166805908828027524582965370961262313119536658551250831689435612979103743346569252373094273412895863097727324074421309236003443955202892355917165209605423571891094707966426746935305272524014216729261741469184918704087998734508841179763517405532504828432022157451618783829513716260905315542250785667173008856299146249905893477617409267389813940741595511705165863373165278706427858359756778889295452667932808525359616253366957817606265314619056254572586836453387915896953444002510225243876988563044280594373211728792077515606616241747438410482666117644206594826429140246873642008025768656901173119228363447459653424933125229923089742221681766249244137802387825192446949733823409069408397176176016389382065834743497041081850597981569559749082857456591219333449686733237406629824486418382897717400594985274915964170212981187985473462716117440266903833886930416005837565781540828909534785110026859474064808171679953945881958950095058919501721529192635391560172507902889554872203463797063367906623832884966304810630769805046950506302411110540000353605813541308010678719032196417791373822969007021835248042061668935825240139761293305984702584073699490422875434070572749056341021431293420233247598009024148371090463507777599407050511258947632079827413347750411978497636476233970294752466890110866881649372288213114041178468202615856387434337272862668300739744248187457188215658028402980123888444559360546881475861422974721193423067542738695948632926007276847468936767176600347932565384833126019270908902535602124063346584900246627179842441075283930727977858450046090482688664481060443537826020433687863376436944019827855548878606350104192820468343590217122261773888992525084321982093245831267513311456092693366453011302649308910672175420752366319153861844777525861488717712494042338513708798261373155159499448429937875045742600720538615752147205605249846996787725264988124583961592117070189027218948333892426409494869267076244300134333346506803213719530989697509987386326817271425207351385209008534810963551693288417924834222126408078740415377451355770641699332677369194255269755147065244955797428331823139472546116254794531659590296654842110978521383066087196511126266081751268142508040083541937895299825556646790112692936310173244778624705898270489479000972096583660634084249150301235761030878833399708242175069545471242976369517240762681852063887641954062838938350702830998871170121844539303708383854823156915913889246823412223280961436231582646727687910449589777764380322236301543575043724278508175841317835772989930951027249162550658103939336559408751466602733341665448731756876206521108899778328635665026867701311989643558605642396017390367142361720698608645050154883670198593449842098704443105163801369319966766878439064572031805211909162288539141128579216242255977451336018452177717103107312382541532731747771462716350889295009145405974475198039804502146708500322755811285555960493851766901572659384462493104348805188054734967466261379611658612576365802758957774882930874719622072189666916047538870868426956730543055587956844222930001162945032234529069410668703563486531781286830963735415338224460665096140219304069268223432701530320591881562838448295448799248792359438465396478909525555611033784989789792161967042487561556424985195348329589357426322081667614838417053899742102288236514509922269369135658379859496308532136302795556636108261995299222987839321972395360445282360991473570889690236378771576422661476073952162613488447598078732976399130527118306450688249141604399590487596414881683485637487113919104711247005378158823849377295738797552949217563600354386838525957700945468039013106921537358793280322039415195378588721063618031552596663192287858458248103756396971030219359329539051775252007771317510709370070728128334707309686237085664701210380381832870259348885087938446844851524741712673925260017512948270760756513548498780073549645400583970526458010755162992732767281138219893987469800637029829407961903314674040876905371416940380890160934601165315327216504317519467831933623886294384684149634738762354326655282054810678385809790253788654171317311574244017073726151437973209601008702142483189185233974732902696229428774688347055017941881220960637873181257135574961203827815314546873029015271067588087965275766968558764712000011339752915744663509274784867882883605586653415149866392609741002158241600070473320135010692816647609137545094400233953285674650745331110682662435165925024656446730062498525062430633056536055458816630346375330756830796951473909789978482330793084858540780309948950442429500446956980984446251062518663425974762307064296010622928830716884207020695832543536432416451691805744064682564140767638459687325803946925876556261908631543827478217412501028409756562478254133651813352264543831981005385112434891728170548961509543059543812739770244998944804057488702894133415962340599880920135983947982410380408156008456444955767962804693665349811797460089532954253509401743973609484100017686338699182645419149369228912921694396992474111427391319811590225605161348434671485608504242226905162661749834404831014790749049579748911848915169417621248995446186675910099223417115131689172705557134254000169969397943037929711629604281625793321195858666841567372816097595029456163386542009673596595217781234154540560717938023022304832931602611974556046044163962995253753239854228598829187785133964921769575868587636988137063529728295371588492518673513730039508054620949659793648236110369623150870535470529908037896313326771176545764889857399998374997184741071479786634037099679268334607364878107290998954656429916028998593623859335264395417150789846991968225942203482646870224086003208770357779505306917387590272036592674353163307678686082426327711834771241021878088648874780991610614070265912147699958979475288142677105295136573548380507200495194689353613935165158260791246884217617116227180155713562532937297070010584045573797169705995316048831848635692315972059770295876139869055968644195476238317673527599562378380019142732273287065483652191766873205280787588274863665865257535303000617935833970322022314282302681240972828556692111850270014217887572510321105875655484167977222478335370487256916190687143932200368674164259937604251505728759405722112332175027353634230687280290496785248976065734707543350270549073650109412971570616018237360555951852770174706891961752034954268891188780506888632098784012860767399415709358843859528311313226215326461118884238605484996561269445202138861397889861208990460699005079518750354206684996667529045827460149489445747755047105290802104990933034994151719787306475926764687908431607808170882572422768547104140659545160055852207366536618336546488061257701578535957451522565497029130375420529937748035395793184629740419435630953574966293650124691443805045202675341052144525527860446457981604088446933705346769678631922262099453559759227277944876974346224755504120594529412387710025695985678020861049875374348258595109433666747061186963260312720859158577367154359561016879356349664922045970748576866546939452630636166471104035078390526018696425528077908614205492112838482558624811874250938615934878758977607391211490420194080730877674398120167119470958071107719516576082620248874992059986756677577798786466321349453360963220274782872046816878005658412928269545112063075528306305539577654009400689798157897333422092756538912075431638231795269120779531466543383841052626592340067413081734990671817625628787859158158815573249992407224475609177313036334145585312142705776876677705461734754877585868219214179087071200012910973126911008204988679698483173165574050855996848200077483140419644293109335550348881676870008421405424452628176440213880798896526378597168099223847049797538073464484277805921503045730089019317632002444688128212365062702449026676063821419056944605967001473892900859645332121640476716217911863908252383506447721707079117572106548384233564226104775993571232723882582653404279720006058769289633243588197406077180460124291407751922043281348808714424450997502404332135009383751008369805096840474386960499024341897281696411180044406161636257066505453861596580390598473239168987580691100135720480153476474907247351793343073457879753855257271810107547496255731494386707855309232617635027550874990628444923755331688292664976357896876346105043392315707491652587931455168268892441840890094952750648897402117700251962919659561444954923273854231220059107831829333758144617958997611040681106432037805658304615165413525346005366891906134207159329616866122944574042961725749882888459713843950389249497791908194162110152006093782179884891080281647926210863372794557892300728057778087238700969199162631393924253910964960569662903443739220867698712499909484283501528039419470261031206519892283330144152904391896590290581610244278265861377063132641741043417151215102225150112627644658418959850001853224793954600667711619417712271977511167111924507659570579923517811190875917116765346883146224401125696565289747495856858765030434671228021855856831232498174884478498061016909048588592013750135767195290684659899947665830044129106108429470456756072782675706653517114213037247482499653760327361182952252554333797765178223231563877768343695340119679844787125428330989377112772650381691633255813046579959982157657013431972335053313276110537096922323737086225467024165732938118504953580292548013581284387143714538944549550452341636793183616300700631474320868129874151017382988004447736615147424583928663985182712475991157990565877493789891667411555016778284563291177539505580535378422166415726076573013663385223418048818249872515755923000725809060175911761286186726572614434358312348507564905573908592143252348069267792240570527827755627850769229983224475163965500609520635467216560038643189250735358445739261456449407895748405734259566815737927221109801378197740368993827658378140210016495785235043266614397120713076071911408530269777850672785134886270906053252088834485395203661038091999622688982023336902304114736932064767224837767556245918367465466322193341298687106307531068373262654521729270459140878885577665015525879174480534553641482554826954245492543826062742415361199362516095674822910678589008584581335342659764999504841613450032182246938699778761557681416883170516156685408948606641454146405168707155792739879603979167126339674160031078864786125934644324592244245009763226092598953866599929445910973638434033805189840682462404827572625474069120306445003148167897309225661697144976110452314950291792767803180301952090420537041089529928422946858932055001191380205127764120939769554862763560827421797595424579810233424485547397073091111604987731913162613626247563813435202965006244154535718360866938003327312843745504753286605285646023295245846006034369714880156313727252348727218940720026344316608413028308050776745316111598315399275796631085257255250221605127630970048617314853670453255797336999779538512279079814478797621664826582431202347843604256000892436377210754986627064341505424427975883303732130643260633922322249423674560415432757190018516871056486904577850440224383431020196351094861714683557206825756414551086687948963517892620003614571869757881240580946319766253691102618747389067193592759426061418404760383687432219672005390966944190800816871576248371920961148655864250730183972194733431052049974670581629777852126809712268378183931233175498836205536353658607739586327429122368085915061149714573213106920428435289485931639124008703876826600941870815954835848893959538170954419502382726131592798232107717623500602076183569156443205438611548469230278013672867949056447875875614351249955454194708614199894530365565231171811563690852347114134376391326346713516977361817131761688043519753011141191143887968092769858538247565645370884567765143995836789987389542281659340944713339352672172300897020352381806374057914404545506298211890220309697035354413975251206525894181690524893462745213991939694198974231761110982150350934029274074601256439279505655718098554390028321714168956324593200226007912702968753316168631499574617249275896223411952421292169507562376742189732290813505986585937108672241403120117536194851954264892950721670828821494251323231233771133276977753142615871960013868688443907320071447376846253883471002779806628017445288894534780155262084334635101474787064991043952283404702018901549116636706603074172738684131635925430097097574362782840512559543977328223114426386709935766154274294941677544677477784459704607429852738724112280147987821467926198401284137349374325677956447522178699680929350731786395998916441765305794993341641238106649970466086115757622897731488364258292065961073027992975558278147614912736558325623169464262288363028015178209580915060387440125196244591492508957493360967737313529948516167500855047622020146666977313239743062950032274449833724661052066170007868341821033629166979076578957054945864882219897926013069182622927073779887894390525228549073048390664481695759409890182624643676153883420962140614169876884202213091489117531708381253227757867865689526374055515370920612693764679789607838681377085265786823788944422474720841170429111156732466445238790149417027630962835318895595703870376977158728946747243707008082136151395865595669984891124738081730268194395004452725328052306820788745561201539436715874844195998440459632073988406679864353165616329678062221465113339976065273185680246255538552552773522938421888762024374586424433412497760328472426729717344647631542740972692987485331005576662535320613848125279881783274114839252190794937046267698266884808363565746302373908543147657757388041113208430609046997387326370344476597307420658117687669480984703188852237015274982266922008660662610381832842789800692865454775240249726309711703272368487012255049282384573779074630628812724116681254497314474867464981039645742388260192034414675324609965407749539666737480644717048413956740050394544471865499065631352829888684738600021351063010509200501038997690385533771731435917727635480584083642257247812555440718414957462885067779368810696399497559496694295542920740365072469235440384430664190133720266615886753235588406004540963183181767406123216186420259343229579058379512371895439224133556159404826647644000014021815089413903532688596314217673257314435921989079360746273939014198367299244296538300684515967910038184332728242965933030046664631279760324685401533223980527286411795870790763178182808427535164089537172552023543213883254132748974332386262893678329307716560133095893736579072510435423061213934795959922620251834355253250119459975979684997075002319944143946067449057852800223008739870945369568105619123965742700349443153735574289497962400203250825185612930470843373144380565422685142638605314155045459719327632552980879160344293806949214637210454428647058192382693001421112450989316023825567021566929337164898468348260650059147324656585762943453856313345636687257559723579146851673713911389891395765668562877240335040692737827358266005559459067958964405130359376046367095509284494167928820185598857079238798065692103617820401060969903320074154433131629495753484092738494233808824788193458613496899484454381103760953359261740185549157387887917798239064611645726761192528641490036792448605924453415101198044483027839310880411162746551994322739006131853336089039591013699267150028415534699883836310507256505206953738836837044231912428821098831851273187669411289632758261134592911974266503686912186025318848182928855144764973783874201954406938719929233488389879606343175828443218181970675462194715593233440773818355389756224386894722763708113042970784298659329016901815309761402201235271893230245552279075464113007606666253186141213857379161453107680132880627512579809885870276229473570018836789660094598151061518250235646784717294113345130712598819238363799999024099377405803537259720787506633209253231053331078609326907204380704523361524873604493072614466020046326358681024604164143128376058456251399713403076996112148713836862440833018707376994589435861023474263865753232696920317348663221863995554125455471165412563746780959095383340136927254528122967328260826469579770275293670818328538834165001317973741776635788434854956434567927349139648002946486864530600272724709768640108099645392792100179702072715639771616447972034348465644365903349201440745443206683542049826843489416569321326995499699517551878575760264486123841074113780672012765550073309469685854044738505260418921342367837278403860945645609358588164087597690404693761107386188160097003665753801445347403965576643154776174583621740826758875450722996081275059954441436289635702206938597601221298319703165108075492790395024661735882322519121357121555674491763137963751695721138719174521143569007616515997773713840223967210281576053727854790145530511566031679653907556607739552820172628875589122855001069788403553371201895257653932455281489286587037702352223440023844397948193368125528400512834331618497465791179329860714022955129296384326871479949741911808038399230871202917021080052104629946147070811013231062583695196030944023968844791634062662495353771893707759876380784869024599269972332136148717817462409751787010370859245393911996479442227156605507824926653821830860679409005578548811755607614299396689318247560278555194189415718640596858065488279168496062663770546032608568628604516404986152528415239722302456689801207577758183672620516864220529013209138927803623227843934071657448525071519781707117501662852809628000571068255216414272910005896491665150836259438283131815523317540455966193948648692745524363219960580571137821563137228276712090116911790237415561752980370519717794747189058732799853537153012440108167631369866032011638678375645747227215353695514903543885649654063305121922548053657230911773784397899706758683981937825800366996545898261411614458359031549518840526469604543518878889828348019417779176346437224143249482263802506044462653692500546997136996662699676644814348096720777859955436047317888904407586940299420553935052310014180112731639831332514211824723722548669955622694395300764371157843524262129425378761756337591086336193732799973498642093402912253545259274190261798662351844347428732908877710217937396634615566611877222600627750892519689109035022916348049334057317105352545325832941443108280638000117646906319102825676277504091509569600618110237924460804468200132156337317833988979059918329613917316776776189266889868157674810209702495808159881285776273893618079183177347905893178582410082039483477612487474324043516021751778517995256447186766908201328480132816900783370986709207201521043123797855624747721663644753294685560325490516159843478757769061718290039656845995558431179478960786644738150635585067025147233524908924038082960439741841635747942516130125348871512724924484451535192678210216883148420230972631648179828492839495035421524704258824165354681574438654785763687323524667661063958610287923447349505804792870805223507161676605539962792488191416839710586978403081063061157016261267951475631990952311132671280104792756237849917736060985588413646247528386017476882745136239260550559777087780905026353553581097724625772607456130601173710434895769482262201675649712362257557091145867559507439358505021495747729895929424501744330257936129760892452874086518047466763240878163052157068110542123599420044685957281203498039495618094594576489656499784174992353878452641093498950736219408017341143004351124956344353347431923786728499979657835861603565523634638588309312718649027018840803896278242086218502133857022512676504540800293216695588501888708355947607924350659457369439564097395459367028867454594245352271577223279496591550690589070225701267506476509589098946319512791450041412590951304091809349332133560930658644616615723493957751918931187277655692366133595208651409557698632944271351108328057342720099144498760490105655466634480171319021351404677590498640342075853846500709270456144721342303652290335418774970756797654471581861855761951216350433626096356162228193746133773973319834686506457243941717055474364434888606099096465969349697040261296492276873793353878050658160918630076429825679549782805587693917244608117334120704353878467931280574745205292476545415070937505270651803313526128500231647010415357141269726603238375029960857974478941645078225163665763788789522276463459902320757031232208106967272505238374467827007806783060988632676846430338196767058078751808019660076836355773042471916068433150367130157798002072370957388779153894100537333195020934338134315664578612184246041975521578770037060267233656546799401892857621940360135929052657158572785815028431132703299674317396734773739033140631371175396735542850576869363858945648144697206836741896953770274359709907049719349011834479782528789268363157657268638358149312830329196673745096007291540164741672901899467575018873472277325416936283079543827324510539944253980685515732150197124636331298409835599521572850207899447703470609378273726248103813875833517330075829717405022902741410025066684970058026618965081419340061145104440526799121115230577306568021669073320535338484591460169180634946256576089805855813967967472356089210315166889993268583557221581640896898414684531984516880039538992837122346249082136145033914011131601954318610495572311502787067887788655911361512739286059891177639969369863027079033003618737828009079069071666128152004796791866040862433700023588454315374806209349921644585713983173451812168179650736808469196975772686560886663545567813373030691366412212334438458066664260182202319017702181985276299781033502890434033883262341496766348686193986258675390884372578470945651478192222029731939816562800559462334115934250115790195496274227808175227836698158692149281875539650393058625635987917709087584351478798702956300505449020641867539280953589438656497816177860494031091852394613785737132645831895252939639738178744495319368295317460954227906870013234936715022578065446425914722470711032675851686996987715457112294312152266315448314250575837616370268437586891868517851469660207424069306325096680282191485676628653998825629746561819567898947961609949486892266658592179828245937657197492657795577857621632533480512607905425724164897799481489348302220895395282454811073936903202628319401347530638226593727189746611692088676974735131290129001331530325208567825730864869409926138297867307154863184467426298570654553421958249253981224125901655411910868333295773515027461022733076281774868776714284455164896604613916878502888448070257108630968161325013889141411464475812742189537989607410934844325055177266462043996373578740957911909833839150065051236732215747302121595694884485037007436836072838494263792829772938729086755207236668308266996949453479833596555037171362254142468068612270169521724795834294302375827341481638373149386798535845183333172496634187295729573435569643597984119882896198514164336036562819773859754478312312260488290183702933635754186322588722733862340639131503110630318009551246627182424303741148920453665036564301628761057890631138653228156666445794186078847770311207579110055212411175876747919226300555207256663155496534425568767837367179567545459053541588092659911067860382507821766192765807675246455518217542650630608160709006545975740156028927518050854976089847897018361399792927228453943449677693959581532070931506928404628160340725619345782520001931669472378058323260025835398073899458673273537217619974223630651390419413504662071866132989583387419845957016126690772858920298505202963235624164040568854143029332569995191481308785553117471544935300064960694364146247203197914984499905745879985867598609668883168002064425221323702464705052778931574013800882548995220631999567020272894778706710930906116023624568920536458872815605539497112147755194050240258989130539781650881335515864315241154631753761191718623635076574695480997913075532096428843076101199069012240117551867328553786361132132565054690055909124610322723630960071660434458938128541698149167411615467217190705329549774158116848474173915153532347936121274649701299406381032510270948383628723320103148361411631495282325052600639631591805029308447975115480434338274799549524657305921407882671405619404927206386190149347925160099641316693731758141419172103175634674915412971692779514513533155501079260559585346277264063295478850299609550182753184255774549859526371352535281418311375674361401246570643483328842352139507985231072962348317048849106953418203501348273802534102658699128709267858745700439238766125724970052320484603466871457813734989438039230366981708018483699056938623368101029940120581863357415959459586928862139169399147993288995699069379065095781725242661345525594983272750153120844206866346829206820977464137240928885823518616910797308937916366599114531045393446673682978706951579801535851052071222718146502862462741247651072716992115348808257818305127175736416179576097726293729216657866336262332544969889178852227869625055968846095984215819219092460097280239303368931730620945987667481321068699278905521389249911451022235752819731248058473014960440700049721556018230812074229453896897478341240149704597172617727218152425778012872761046188608184876292115092159722749495576172634676443467877247664085732288792378597078546735502934099289164767580207733122893108527568304139413623521753741268153122708210891263105939799086358530564023018495596765592313228469246798708426464963247688778675116335592016202255187011767738534575835325721281723955551017804986481994686457589999531121306675251960425978642963079646403332795000893949106863142395473681654176200315973239823359882448913748242097121929341626680927988972736263950850631460785877146419893207438091819303867713093186899039252306043816890130607743241988020123900620585576404655773011838524030196197991261162288072729861378623370923489491223478831371812567521721424513492669644257035841753628244646525408418160302653717576437411994699506684392011422573110113777769251985323872071343676837988031630354344865278341995708655236892644787287601447010210438264709077124523666498569504950085328466654141302409253587912026946396183753613595763523055316387448836477097663071632126128777810782342601709018510339885278854789616292461068275565093180900040198633699136175516450756176735508529264537280345779527284481793003230485276353005162261115842708883148335939225396154929254911798921050166199200387648843202152092338266798350308297597418154258813073465832320873459019244715441187714993014144256549115908461227081102090517323438028389815016574541753280582523378030071436242629811689153217975531701091127103179464888552879321084893882013110028404974579405344590519745301014699219597716990503114193296464671710988226609637947674666598323091391745557462482226231839781042092874906936786654298593152022295079561034549055663383250003709510391745926327764109813085169778264080860199785369694735387281036266362198423838180742675915995644953811837350514611141941794391685823295258945900524164212906138680924734169674008754945305174224493698610379605741674203264360107550827406325622815026004670197730863775228671936258514419502776571697755976667278105404513653518870041923597692114873011818859894086164204947687634651807791496238636868688628812310585202845975504114328419087513089736038406659395914569234932113246218303905286450997803505400344943750158899635254508814513927605971920615738008533137811949065361892253796593323626985892861211434900035970312951349931486542082320625002010107130411048197792405066682673277146388470081914203270519141264615618355939241231289077858741289394007208684314588077896857126736753101919837302986607594343538951026777996965477776937404996786209759841954793880098892273802118997184226143166163917248512601485627404539694172072075089072188622845987737982972704208584388910865505603465275142441887679954945991822171683819871448033512892280345102836723772474354786730117216539209277264048950013502483939724104857264499956493814008557239002884933031044654852719856317457863246368828210352579502977118574620933693241568147820261355400005948660981353331643735309555948912769275019557858041869106378165699568981558145795249840608157098579284164357291412887642915358800789466328911231178280657599249418105280171438250042856300149320230444815072296347486003620508769934626535712980808935948173368316088758681804382929843967767779322657103618878457562743310520777484867251908228116963859916806174916626793644959444852058850398614848677946295895946077270120515837886024557766181969594784835448345975566115855905472181495038534545267901414392416083914935865878608635664708345788203181399716594555103241437719799210499264450449056653610751445051831276978663018036591084843091368725871329828887886396086652230260151023690459474816139092580239980903414878582060889701185568122059833140778764593623429526271838669163251234113012146672828919469626038801231442640250797627566732329912029179265010867531685455383111246736286795762481492918801424298005958080228116263812011814790937321526520654927260962535093652976590222732755487805679191424705489176780777848391984435968417030200026832636096809943834780817655469717122560927574947959506547246324503504199761943734175572099000695607926739893319419269721652430685349642958623654103261702936982086246565753418337685999372632855381077138921605810679667241957623529395617736313124796956482869653065278467819883641215338669752742322454841231970768935243718546246312244782175229170517606191696942794841204275003835325619759643535724992552512645495621252720623929939425323234156859739708099437389267536950757961625349684252542417756775670462945461781945612658996696258505830106379209791659471086979194068457106356107357295512030787267180935340341557108488091709846197595204788222129883167332397361838580867809276361984444306830481057594576408519793889469158542577475750877141469357018697356412425114121925359046346662200274606327311836619516969070576356929003785128138860671795923641634864435524618093445277582764079841722679673904487022349289345515132070377351028351302317691537707160423875326211832810417052025300024061223799171998291956676677404851999896953527403706688032539187251970588277796568991186682139285910776446998738416606009685575758621616792691231655630368919233959257064422851479875657564680062384329589319241152651181646501970998688234935626500797024011766965931491751212377167266006548954356381226553857233565226394120182522951751832946434384195250157195208421984747358676858920080492211586832012043980666504833188572004017325897563124971440179557434143245584524269716284964165724055772765933508808087234192501524481382497808527797535386757373551021278132630474686314409260111371625138092094647270276202433736673407593475695459364993092563355969080913527823369308259365138123207849398805111264847766257385137367328177032628351787261585705021886771405121808612139439317809228894448494035027516545179912426995473739583363735923015247630519026161398505876275184768389159941083194823501577973728847865472664421426778114552830466898445987887763164798706438215613009151455069400939232702138410852142080732007100542578386658122806955312811123946219634592080754756399912415311423249856541676493095415505232982256713243023947580804292229733156619974159176668077745580630542220610878929753196561625964422492269113819420568713047346051494396787789308259078497454775851856735148972898076089245653744560365295682787085073363372961023155806302156735130387576595687902389251002425899180412059768818252997653921833078501173505744398640701719211849989145888492821535740072020045137576845403229213208427111117819528918843874715461061398397558274539147144102431042752336751553457430227163985799608851561402771088666071523127542282905516783717887939726500738548494022075262920042040808306915164711188032439233177567116954054161623293667936476613643288568066259947284235700084604772057985000017999938143007819868604620424899459862143744066774690638316191466092676513842745496586944859536302067257744160201123645399853309970285282738782015628849218245044122663902068497693239298013416572722882569313867746501102351338587674855639317722505197395034993793759104758305462576683315832182860993056628249962633527494388081162788595423041256654907268800776534189048427241726250512092483721081487220644191816223960550213013835572772093363786190738003097502350852090237000909885261566616130445598326727339909475456438255039733103764092773776818610885876516291714662138762234280318711172336110272699206554805028950132023986512130288811525088837815231638612234442012178531306386721846550410001822757805735901127741213316709643922453652891641599270578981927940420125213869739425296216378964740376470965406339584085923831801575228080699392866625515376963748584951206957231325032514356947963840239758992518026099921347657553550974895843415999953292586381669067522933721433009464454662858949850128533045088840357189344012336546001407453812752036460575017890497436621677736693501688667716738960545202522474483041972662198481791793327067155067367899000118453473024495802670763757378659314973842122573869414281985571862375490936347079058396401693349686940025560766566030010572677759455106688205035085647020146767182921231896742297639188733054464162075827848854410078710648218368398435398317568142030325567935864959337474950159305366182328115651529398628744572027162461717297209739777910797353541016594208671397836871048546306441347943023124089009653372932700557281213837394496986295290303960309702835129570408341768783256440523844616590822595089126950527016516025992128299590145344740665225053273173868609377311004071902839224398571836633841707867232911449326945664746346386474103332976101982667160738853711314140904970641567125547961679729331040059536995658888065674502264008880317034509094110586666766874593793940375909244398003974059222720926312896846880134516008261872255779973212942765465694868899588898423271084719513632534399196011399158279933380686791799657312592246801535270315451612609915970451002409855403152782087805265439146187380546590916017895826368128237032880876190138555804007186368984593339047674259340689415060460490077875452790733598531958800929448534874461458648384481110622710948633630686718149956793409526000973799508968284652118786826014971998514100326511728011350472226557222177819127677128787681265444528503069266207475500899300462329194937291915322335108483086066515155395808293767573572820548677361326288815343111152222974853956389723438487412258402747749252722608948008098723003816747885943272949899978588590960544255134163157232357779830399149127210845324896287200116256944039517912618653756886829972405615426014466819326787067145793821911935021603379615343121411593919840648002246833301544736527407832539316222290186644515297198150404632632408387720036710672804749167293677226152596309280203158117827987490805370093862349079754017487098653848402306313364985566354869249513549098166316376115495348861447361333625200803503483199456516952936495851601782338405355833440703202865475053587364117994260857921362352690704520124277662355713901743554530555702755490871789720608083023935163174018400552230684206358234040261055773370955846892260987977985511854322628622478112997555944238522044766389987718199797486696281986631863075399369106317954586493640214760945163736613945378624150314838968478445307270614042015902868900174708466591174457436823741271771592690329131119904429628957940029087682753912682612227395337037094114553427168441238958186787794121722534869646667445321676618087899206556084122089424471213329339682579092602516213272185935153387446609164406067352697389311479033937295184026069290021033724768404591648773686025197490971216006212067600605993808513383760026576879054309437651182758127498069824883724848163710049033695254216488677384217734953157686573388847903177164999344432058287436761884324390660367380884712036215506254187405905468536405894363755150190840325257016994625991672200393064003834097729090682080766632110231559770534303118352364919521881898128873940197364218039990415563162445126392843836865207891796611794386038487901370060675715637214778308917339327197058490193521107399782907819882548041267719450733495114548139785869526340508045933181221326835166765502725340967926459644613429544445883965378881110102303326020130642644546910183355341615731902759633589943047676925499258880348651420587379393558742842542653072186617875550951121728680998829135686072957096718637971885604849520859306254287496794061177063383043033960796871716882560474601105830614466292435412506909601290347822047736868972323075626543431099402858824404339294594062886409335289720576908752073956291876531341869945279371864031195492383755714450787171781616537062782924900113253099422408601831453795422085408577237300532655882784945836222476089231163132033350146699878894190951836405078946112783134715613398252073943189205035780699425626048595526341283605828912812744197233885558375227038742539738572324866616372846125105394981417816535991169617193699974652299689700478874306741447136611572735319327167774559418743139606089438913862031459730446142799503247751361026050416967760080016787262221461795635935784935951435383915593551946430217069564251637164342673855684365352209470596252393233708226924164401350423365880134024472555050827672948242171547580645797782567287874750434841650880356054643181601646176887439792052279882699734131383915785722956279490445500821211426991845111689467216842002693106414224562253373067151215031478792568428204355956515795615785534781374831780756810587888107857081504886956562450592572823060775075467953193823074835112421336259153399783802487892693291790101440504767275278386291272336122338245196481410061363865847958939471069493310813487706695452926459349111833406093878621409534312521306313687963419323730778225576537961463182095017592322846032212069325048949025794421204130183498604656067857373818172972616097780458034961069211207094449561328457647136911400393163432728162168366549981955270127968651766773394660891029640793120903139844606084544504508775890168771082649028592733763435252048513553395485457748030178223899993182564392789947324519259249793379149884978479530452938974887263722394165225779006260378216809695161878809946713600753002249038547007743985778998653937422677761263312865776316600116771283421127739416944099874239204622026347248450720269366485567442283796299062185286602480992210481914792172234533668204403367923614624239221097464124074783941267515874433829085168049491612992640751725939160458878970664945845118823270955841870033719767751408819235779374077230173544543137663602080553900882428214207019254426253005630064209009644757095054851456331399804398380115151533670637263546225270261228122369493526083596069784690191418966495057790752823989002269641245229156106256243572942419977739243351477138168188723885588826254883300931589859592506461770205044029076143958136668806077503399351007827299375085044943309996958196830487844636484069667159790292807586096606722991998524265104425049355031426838751049029547142879151379198323923838149231873163647818159859733373276966116577940907638583396773677494236133625030888875975405283186650151955501493155312809627751968867838935307087288390884911335045615658729672175072229299391374543485231619872492732889607341841097570879643455945341295339535809230743701700826372353812763570955080537687851517976716624349775539001313846103950580234961302932732315622206404149444026047444291950587711416455970893582192730444703663158793501189606031858470222688925811744773875804671378380034936633131905725451324425040821395497861377784979967425910878399698510595485628942730462403620046527176953679973360957999377855572782765315180966629036974398940492042651229378751836069475830241060762278544709549530998940375144189821206225574036611002007780234716333660594428195146215034198737833871449886810336777930860660829024344970062485043306881125638128727812330944637912666055550149087701094396675998157355148608056619202409704228692849154332625189176407217560684475484060194390539914495418930527925578331736483861738459273286847723044074163876418228303271644052950274297191737630443874312340150730722878284196635600309325244873571637041295683217000320133145025619736153369819056644738434643959862709767274289688105207898774759587078032459267363603814644880108400035107426385185159571366683538014053086468334497808205688085368491401706486134832798011331287426143544643421868144995184095279384161618973032308969355346950639623903865781844707380232235618407164440477495518518907320045419440014195471120051463894777179779754488653969247049921919956235108831565632785594698840926853055242471483318150796214016448964381751716841748938455876399453273194804249347984450337766819592863222019156057338563779494425485548651795791937675220958293168537248698573325478967109682739470584660023768181674989613190758777500050454680980129252974592611281580199839597673934877832882480919414875222288606400936156994703881620143380079931930249185591718746193521344332457695181569122176245449417147459331043091282840883071672713735567017352625722117302989132064547091279168687754718438654539927584034824077235643923958424323482110046660576714451522343804889792610358393651108143986313426847398259389577468312765706187305524623387019429507126889028352477895729831806542176513211739035555558481803352082651565232141182660002645995801397664380428320259613043107210885233721601363606583145041660358692435636541029105770881257051302351065026936140996893270632114656429350308553969896528986909753432080323154763473426291245811915000237675623087273590670166002764544940464005956680787398872494407208613453821368584327172434930964295331009328818509653349086000745690060799289639014309670813559159279344050334998852557501798626274313419107654666701067371037832626725716539647325918580427520116583549943315424715653576398524370811108443057852748532111745204907398122271826843031419942423030024278703491910566673892962217225944023492652419118205178571828802330032880511397678739792850373245116702017066064852507638455451128509434793891225184867876329033109399506700994730159789343726072551260690340251927154865966692020538974310267354083845372551485427477681696346712392045241742248905805763330294096340985910733748335306954392617297435627010020780637906232009923747451589363644673076257350265293818633222194538344056966737563511266356444515298954971231602513506744849557729118856998793308339214470267381719026171781858243632245541192868850387411324152839317743927435391456313884925373981935540295870445119068058443161589671310122375673850968067449674520962570642792922291465617732393585004737174274524668777451512503914594465702051861446304131172024780276380652471695827480105399778359030348598768727055371307073275311653975219244202390612949419199201854761611878337286392944212838889079292237798660516736826293224874313226371667276675063078729892065427042059063186026487666901413787000209167043144235178756752684470175673827175201608505343617897885420316590549677883246484426124164048729803122755197240965471786756244957746017306370489472756720206350856861708285663134420251679367122950714519576318324601686584414915221604349937146791510044829714587513220963556096391919445569289334534465544225818741760950593599484555558356529517130711699577428502580175459293249944054255145606048053090716577127789484704687892011712841954369495747831733036959363669189751589756623598620979312580846894030707234465955778406643364182598766311866256781410269114571160765454705146364108310375998126261268467491391818230517864189701088048171906671737797212574753154028525115128355254944372092387989303337065606192000554779554414073233205408980034729486722664780745392411083219348725901860698435807380379917526318391327528781962497443471118600099755142182611110911509506614736187321968851641776658757635429040478939960330779716070524588767793489943246713047448109414241490092116698402776166796252023148473019385206054367404967390260071407672850428452223894775915911215318607003363012826850594031104367752704533849919610745284506016155907211592061429243916354493177078093988466806623400647944842762880568900573147084111721800853379645758102466555828951213798226662281906186087561548241161592449502273881646118324168423043804737866090970292434431875734388287253784005360004126031804696264364911177625658573100641829914893888198061535317637830877372096998392890279036644974307246371889395424040418853307743402992093410802919774086579050738330990922774327771853526070429700384155475873106185060135988480214066202303769284118695485191329913119300166654203715932332261020539040228908433937069307860906289647467791613224177463972330194172197281167798407846874291942168380507986634132361365845695502824013719871448096075895534554780871985343665370421432731095733724603434766787215726641498921827489797030590496210200522806477468877533547217012938945596923349684679929513728580790287698816984096536349122427248927355404549280227801654406710632213650902565529738467169853292709270288085906786432187700644526838817811935520472814275982091493978546791783886295067000861993757346302634781368514923483670852961474036783010940588327773791642344337544681131448920911269988875149586120456835317615763193102628666938523663083316307330841081103982336783708290434894319150997584500012773790268555297090293431678837424607619886900837675908252422473765870134396937793445402786523980583149985324836359207501525536130077671291312275768730526491643904285953653122547519523439061309731392666977753241024872215030291951914086361267908391111724888791799637145710498056204130823527328271848584402083767618070579176154033524227947496644306369302365977692424807445266014377600857887376697017855991673939231279283878501113679878792571405705100694849848679407164885233880574055573535228339654437778811229639996313000988558607808180813675291355115230522343124296581589854235933478026310120927525367206088233169125705228424453946483422283397752456970605094685989783451835858503256374561270142285491986529760019548389749313816743363945693550215651593635471949215132668464629780567816017378572418556023961312475544886170637038109772388197819034120175541980923354292608838180707384532871211159596737126503447266538445426378774630747471430462760655122468722495248263457787472282848152842270037152601201692677603627339856471449134405947721812673537234534099077119576916289096246488119463238413753352908494700849266809400728098857233601671726825443682177643787487398529340410600686219587270775472594870069412016928960395213028073978339453938359889623764809330092403232554799176982037543521797576756290461779652006668570175965946646520213339416571367897552288848208641109960154591325746563128487684343650266448333927889621848315202495105179771044251276047800586680469167046621135855161129193499777219484919881207456108476927833422190321778486509487209076595069500650681344516130247962872900541106958828584436082768835287788714284376312462594960910695973759300953083521099557514651470401478908050677193808361758905345117618905070792208557669964389353293270780524217703390795910677920494089520543916131405321576606319951965865503153921393448369219658593669424039222571134098572290090604424634472508323879600986006594271838278072197622907639921443505031286974630679886088834478726349141453864895058247753318090374616812438204454257072028036948292079746913897005326000710148186425705377104115044948934609578402133679888210812275447050790030023340830719042496670625290064945418297249997027563419555809785159979215736443558301236734692445565807093070084214976722172610154447769100023241547856974647415243904329895622592814948464149946034770148112137417525067856221161890760775420665708677853446999637088583395948017485990518959682293082888315053793624548214871750540971668510544944325770930997461537593153051144262413721375562733409008774267617437979449312500951133585965054694074484311151865010612223906867715740041493407551042474796298080435977583068123552536542979213150224296076194393895919950320111665904508413959867861518257291393731645052663646906999363709390201880256304435259621353769388159328769025758657454177311906151367278274627119855652829776238614853228748233546580558432954937031658794710443127171013642139920475670537947583171231130384315803576562569340377181087297322879504110563747950009214013930438787050835539120209633837352916106320088497948718791247793662994651652940473779344914341709084727650110455776456861569783680215355781557162844780988163964847651659802740781924544881499019149362649201932252906593347199089346623517599390872975307854885634556803958215254168774244528913227779850754521686774942282838797003834789155232489847838932763591016463873682076997473632092297360201860769701346028482047763267369119399014215136872068187061805653717274402685151498444566792547471756538185142585936249407784147747752541486123770335823607609104736650589589077125545842898070116441834920787475862483025433351695403835009692016058819459922845512937355884563186282551118929114456567460554766850270884853727223257024471121683340115562674296736688628831915578752673624642675065680146825090793878936973766849354146756336244578179746193726218844990487079086558031717238025774308791909271702344678954850332875113282607323079979932428247398762719099395234728715259770619909564958691730788337848943072693165344881240379918856982500988101376264624418962046110827321982753458976592252236257803305234589406220890347558944718662069715035787698564646703052847047306378426366450347621396050600627924456386042555362914275218713624843951842422244375523396611552442298706043159702404947774476703962844687426753295152607210829839511382339237052802089650913845881713832122275608014143069958101913084882763832073272338253742135050619490210524069298395084342305655939190944773603000398831742252335049109459851679269369268571881149816636055194352574182191752915884703746001826413626680842209439083578996957989880478037581345278854837111038954601396531342210979191365341807940543837488378652851806245456371323114683133070582689495353163641898238263685128009715527677270825595365238535097358001766210839525953788938375670665608842070963322333863867949578858039518569681690488589632693272886423274991247343983101533551436253293329702371952593721488831898412797518987127353087870507001717509751484022112244553199747780423827914676722424313732718114571013018012260978304780891200668705851716019536871670780698381210799810306739927958829428141385790974115621493482066156523234663779209191687046530300201395033782613802036005492003391004345886027880780382707754146523665285063517860000611851637180121306734262358824624865210741186567012185300512132808625055582061106142421705025380522322052269252694596749135203958564182578926562914421881325655214884676220404238867319694576013956548242847711048175582995246060099246503468204489316034923819246330268934714144205180923832496117229811815717429399148741802087195131642174440115733436939264594619764659460072675489950214034299288216762061000826662080207605366745082680705245805896252685231417947936115449252502326409472244258948361367993615587170185752934908365310809115239568470784916859942196276262732751224689986064260235141400021036476873158815635901629916421524884842630933385010506431793674827170261751972812756278609823443305725885944594876364684654801336631721832422395494689809395994468783573510451092689144446060191361947036228658399237750495703364975448782437423039853583329543499401011622426383277183779628457713562270834098092982476947827155343757456139933048177896078103329920041184122165114710991559423392921214863011344145868917239941765542718711938911362185245036960544713896450301443716030931102899419864194892006866583330834808775485060842553880715397720173688279834710449539300024049999347730240925125088028530168047885952302915563903324626689112146719757242752968381766253542518732735347835550564932636874692985552036257362186331140890360437444441100519408564963453557761430322787906981236979921653604013955032233094633071437632783255838683590839794533482430069478945248784710361310703497576826722302008712306192625292412840762332725009828010616815539116292520195292848064355649034454169153980813928004313870492295564955550429566569167750698580944113003076438022736984108045383885913167611194721865824696856875051049813050670062418113176174097094273488894869756037784258924493152199768409771167369916625080499278664378008988073385725788395198326160077305558514976427670040601796570179418332260371225939908682066150258281319603124630267444758087089786465810810863745987395329498890137840654881739187221084313985292583700006482859914266825030120621027028047840995323686728348982195252607866560806474153721593111522050793791915701040269264089625221465896469291318633556322842253040857869767536874255139484198572459788019802345827836337729693205930977710519542688018571076968065066547884155141099116856026275440384719880991790995771774570030994779085057151723227202727971287675102026413239034380755687570413654612437691985192071531682685658169505297342587375183836120845744532681424445303767953104666215664869378228518716934375693300708329409069177651304987982316019971427763309238801660677170783887222148833314859569236374685195481385766554275976009204345470190380985536471852568514880176541904815984665606251731967651068109619950356941164559536316820134084039659334674868118490020606868246342820828717273389786010232631756931632691624970652115964251968784317129183951721995163858695128167586996663982664466924927701897044462104045499325631118691345521914773804910504043266233962245968534522848071565876583256994629822502581973781500534562275680949312058902878665016844147155216219102750247293775630798877705093176014850379855385390281712861323853100457296337458244593466840957843060230587454052328316716920500249278256466234305409093435040124568769894848388693343173466275836652969860295145012176417738015020433743175586723032214036473680073114063726450368765497203112477525204208595274328535534355687168546711041522293285031851613523182313734944423708029182810731771296974440417192282673695116892007956462500683076123206585852854020389235143302483112685562021581170541664595832468390626190989478434046780845882646866705520111232878702423308880675199103629804372578246545718352556158880047510075863742647803368266111851541654973750809888838752963090855940317805240898921776131970417082694124635530037249293219232796047882102812994829807322262684406167961606883754028665318127786010193625098271505833104117547962428609473423027110942561307955521222466370143608871337837457317728390065982262917953860655052338707649865319937813478157719859361485976101909448302003844526775495870619900051599735070359358973354801488139059741618280859237820508161702929372857836535571237086788566307536195079512619430319484087933971138187777037235714665761812106109442362482551098057183243854613053994388783991113477893717678381614948614992177357562856429020485710138614159351090883076206402897602595224763364753010840195117561461769834534091085607061060800587089181738889407920701988312167614396584709354488481537913783192232773062122661738521429105385841266943572962088295007982596434557514098558026851925182175185585313695040292916711810356366553351989412164065858070217223369159606073031837853758424386221238330008802350338928602232310507884915289439549406685876781482608991485029909343918828998616372018598752105782244155377695646592033194155935067339857367883276583999760130005837008763554866911688466400160436845059594915313987957504392570755759277701461535288130830528196358420226938998901879742939480702215739196674449135969508820781270968201646008364836542616505569645535722673143446592367908811450831681326471367110870629082994492347996833239892846200696687467833572040658218272161075587359126276365453794605246204932951295721647578144560068713565281792443616949104872565704244267149896712331801805505090444202131465858226091866652908109583706690245130203821044620246893907208657758967722227915511864570593949053667099535490455171697654081799083413048184532551790733393552102259371301220990551278160795926751072783647001225568388097983911613608999433198242066800780472233405499091434804474627059941339714977729635840784200095206559401943980208112539830749491094933847151466949332832862818218742204098739168774216942077857725356498244877560939282554021129582308570763466726406332653845985048941590365015103947378735909580939272266174116250071094093060057353644023612119331432208492404505660177957531243352595169867374939515477417113383844157316973795467199921119107766454505625840214105494742992429515966230797901916257744699930003864797332643390960602336124909121117252928382768469295454170884402253159059501861063058545978076081758937960029663230845189473586139923965278513959110801047224365268382137135419197670765586240282380954977631837487540294926706006938621427316580412556680845380652138054096584663591863180065409498721003318270435175073027646352517204037596691492719418049888612226410627069441586941760952226817022172798678234500972405853972828250393829174947970447484914984493704314754541952785042120328699912696765820882580367611599199513971792518849427932238969934776903237635169627431019609953030910719661599304417788901894391187438340964616725752988109686433496843262605229824901039789648284716850268414229200857618285585543163595061914956112994866947469975930063070365828796124950787142603775498566718299692882832890823613357344742065745193548386571329671452087253695029427326474916937189222196001354896831344819012620735213936448137710582830875557233171314362572232053350651994861875868896091336930129055778217912501983891476802945263370912095614068706216197317940754169445012212771649989678247063718557437962331560318709250697481811569708102674233763017730270096632574767534596672080691915729593000125883688200358474820045014017806068312207940598213400150162259744859465546418766084692732228339533702354170552256743626413321407706325317504456874719372554130352736330209454706411434212767134082025013142651968424868440792010068627214734775855489472221742148521249320648885457539721186586840961504539047709416677089235386319149021194732229295706484809233420187697432653405375164729444986159822669657911619260438230479610643908214822515440068948479563481910678718373243088321961287701286638981406600847043741842274898814464557673678691528007210120489599347489803074807152792549608424966880092508401581358576511694460554150250113319212719713417431995119497346218196865843978097889086205898658432683453484914352169474492282124511081587235966094549109130028447533154857850277675346668450220788780260048117880706749428284255727358201918736544009443514371184447267095812719242657155243423499382859680709773689728147986110987787086929552042361674644375652642117847201202088798551606134478862035764008474898303661945421221599614265231519495297974889659528827796649339652281910508669365496654839473585584205461684470745559158174256223885022166761038778744632755972684266836942985807013388738078593728003994638696622647769055819987502352637698000371546364776929125010526482207532058178087290560188238369943402035755315541820759836804723819217090380162557130895587805567183044558913845726755829703566016526868847365134618434783110025274622031078129412425956172852586988318829281368435023662644494881047545173436401594599577852490454544091848683049389615039775854317795090918312575628831771381234171350380924059443870980646986105274827958690617791802613601318863958071279058372659665574271777410829786784024332357089477620560388829539181713587902503804276917694379716191263809035352948126311862018851638315156377906541592398126452402426315888711442287377102634707161762571725021090134326270911906507849720897460909471451871881755745557870343809940029639353055933628697049365933138523942698048383375735617554525785425734904621622260401064864386984682604241492764187498662248113481740520779776450157844902377683022908222700223652746381151986797903773724474639109573000654107084104412251307884361189437251472474745842196429952452822524269831394494906302434220108009835642393659831676427276915670176995236788846702972157768977532133875494177103328355320056722492170442339745522117040740579513379795598693044660232959198504424567871212208086262033160577957100413304350403104111278223818802117744042200876264021404992621147516940702689762155334288044312397155893620616115149644243020777647869085385808396917903427453756924071496641766959036094662371967473652923489636520677028398027038694647596644708351403686059087646987866444631138672345240849924819755760270552980994085216041647846483486152595556314608460661085534575098448020910192919715227312642193564601448494730779102322606355308294819357930741503664969726398717502834726271857038937585702342743028236895592689546813086228568730966699384694968024507256130367638205859744069885831956278098302701797796786390199260520969006267567873849779291208072005168684419373986272582882284681678488753699765723669939912053128518306644270443190598880903140490761992358652137235367231107448196754685415837728701783960578705943900220213088937667982503865978619630401917721750276997310842408040255270121649597644429265471340288581436698536199872441346224581399809274241222125112960050845649525942465230732765911100476802210142469425675515795114397642091439868530384722367596697122537465262331653745054113591059386463207751062672954769274051525272262050697840616902251962948889705082723446343689954684841066268293764556398407500375301698244298186832869406886733863262739997081373521132601296991365834674388398409887609402145559483757473488962862337283930843610405637144867436379638070292768775570677995366904028482887487038945181407865774700817993533878700182105337838229579793745125395262092577463191357757182480376872803080280161839098615057293324364284070069842714450389703790223567359359014700618821184602404543074352285731683489633641776798653662972501500342340832394196997551184964751127646361789104779659152440622270380802362179260753118934836778322824374937651473238671183517091712165737731129175266526930419914975193461090668362691717827390025973486529862908731465882758254267239398000904931713196646804172132501269833806019988755065361423595048421682823802486911241085461342925287703220915057911396673159002863878566347034084986926095625632244964741192675295988427774126475249620703969559062231476400369140001222459788320677953967109110734089968951502540667795391064940010166210412619141530088419317409866966224295968906968581263184929195340008007138991459690646748203534235694932898519214688501013831233287489695242980562573446509010257205361153756012037419677222432889153278832857913625093528265756870502717829698598653024357546380889652353381106857996097518203268258860253248897271203704023639525947284267251034187305700397502308157529628535238949052549268581501221175126217709131901409107272053750509636544157690164629504827977097307964809706154022025990034858879621422569644757496286689937755850071607665574347969349036558469015755707984135509009596314008242034370428052746165430063060507508219207165568347221151903155222565555477212597521110742472414160703963844956414779429625685514261426596984034285294468142931999443882874362542802007534600529967218793996449917766533416284702265591218843773591874357302174147566635528331925136588044057750005523587153368954386292967887477278445985033271159535727356729081422793235196781787567541785372111950209117958792135670827445946614079787660130722952308072753984715015254561734779452225209792188371558026378132381921659647094061957931498168525238654618539393706689313083409775081040815108625414987734873499651953396447968579441866811865853606105652624858492366452264523291880444303640596245348852766985113288327548428328990467203107464674422473929208683235462082255302669939056852254336067559783759309476550216489883824088471156934286807706223046458548471180220158144201652610753937469334747791592300957850081376752685340314818751199833798751203336554815485316002634212163746700845564278468467030712909080796343156813606362397256314224764962794154377147211874397685536401635669338896466611569082635544016242161960229255843538319628592726514765071167834994861257270695256537300927053939191808301352699113924315495315758637741131935123200717698831548981649859500392572303595832437858393763864165951397774921856840348597956942806500230954819892077395089766628230561904547616536005208486101941876145817918829198384872107230411146676417163883701553596778308537574124210478175523749424332679500568178669355298506597093984286150173138042925562334618610756699885092047903835437663061968983294895720860634615119067742567150414923085454415468028088501998625996567490462819906756793036439267813458843848197001019710650648206888897975592513704037661482313775325154460858011329054965056053561764536557569769449079745549961800167324355331971249135698242412155487180901071669963833369827409794125635089668139578523315736534907078874693323430793518007594526348274337357815239764398864079266810214513444032910016224721970247582812585313759828585977971994125457014327281757002351967604649442505738168768353930935014134032448520719934191615067039827908593946402524985245283330936324492702670122554467107253897182817916903359590936196119981166048706551249716846606604643255521361752625202654126991659228963035112436749119411005557312473735530796986169389883273077680584160008667898108559192416677392349655738668626728071088177968537338014957207538964001515312580581178585099557015814472858506586732399369658116687069652758643826660820381906011224593945921424008086551154804252215615460307909083711395065663385431973009191232119229806263451282014952016838140435462875422394749107591721515127695022720517686087310461825404832803491001980391344876123440912779927084180057818124258599452222242138672968698871359603071440807571235316410439801011484961144333532844115582944491429707469728394567300436566624660408712907358605520972998960723509904333443198965653339505191739732213545092246149514980201687847701072551152624234943275827854653887931592086631337961129187720651431037631354975106622248394473931758534555857416324557997553692318063426824263314646870006057455039546805147271486657404649862740857103570915694768465357940545184015902188680986638984004874039014866607159402517642544861803311442021355755605667087977769715055532215451423932441950198891482855212887742199074185970104326911970920609213719636448717091815783926867205295221389525815072741896610662480548530040585495232450435304749480796768957970462253104124142673784966550685048454036094000804567373438918590475593937254595210895892708323042508794764218619034269453221353153017852939520495286855605935238531124759636760826440230822949683751463073456980976041012142001673836870594638888669248936946634355235286522658003495109152427385881456545203434948231289789614801915739995181123423685115642635631743207279545759289110210710560209256636818909919301664609544252777061875434696673988218305724472701828313027800326699995363740370754724095482758801459456169763927660513951220106015689022529771506323979949307334025391877210425496800610513777571574171438165651872896571320705016363318005667040171074680887378738289984711262468392205687458571332281761566259648624929236439806394324296026629413534295067485454486152194051415299006544919298687637912951725912339471756601308205476267123602499226137479968056042046799783604463246430459348050068664225843098682154073107497180446525683912336694878014874629015496785679298842990907910571044964537682941796039842382884563393774552979417928451336791890094308577082646450086924012601596962814393084761471917959133127164264387807039381332777888940196435057543136940946624098504691191084011410324241726708371339860753149495961488680661116302799317276746243951621489904571279654377634001271603985952733359353006312850602062024668021583387957780977179937324092897593655548461479078410248880444138841667251176740614110863012294694476799417192415477408245655434648698426841166443036281544021704976479308129004583923399075400757295760073025191434249558213749768504434592837283532495316315505084634696579730411725904076362226671603282093345953849764023192575325307928358023901176147610646147739612039310471347289247014620958500273211761484986826711133123652788393748631903396345196859351603707487478416788861591782858882619061700455396639219429248950579147885185748358665016934806778355552887531730807852125259608187420516613957358967171460491916573363104646449942933728014073480975876310431410275978030908700837963790526927219230480650535335441206400369218615669556752477171022466261893455087118006010718911347247746627925004723099173474976108903955078380374233713964712610321324735129330188115078219246236770786367369107109653064670009174668655853878949020813431799000112922790470690276673481502817826256839796555064771167478396215015719102922841109819482260802166071556211494463863214958677467385815654383157721666078690119612443179762957972230147222366748492027142287528010103989967100025876040594909614915225245700360634934564273113793712408186580977440918386235040863551622239366797592847019807150234473732050903917711606984177795040038076772903654307098295069234943926133386917589440997282943016219356170633804686228751923834820262740943199312579198318944815420396880615674895452129480661603170099222865908273600125928067043637959495351982380998376110709356330121986714170700380605161403582606385489943420159979189353831681388087324971782450026112503071663791811249928199559157181196432791409146238249721967714631194922848333791057969555505597771782685198603973466696805181054633787777246227012618490234071549008829950372513622692640128416446522756616991836778164650891651643398360463113017215578901258869120314223254876699964955386473635835468755842960676020998245893856893911116233285541589664524335714262906383436937210148929329792424414600226205189944112228604789682106761160112632939622829756612466953530395284125329564326648365167097424597384723580226805017474042657170027318662283948955767577953335843077939855871120620801535724569495207288173592298145604614963974625925768161227666895567707495557869482430913273682319059612929845100840438446139747694403010436177185302781590010646891583403368558617668622990535977151643948932626501763520062950511145329809927910468581081760435708722887693504293820468888755182818972486275626180826861959133099279851517641003868820689010527917388814610575300147427820235088902318705226415189415206512009847840929050177507328546497813810437636657301456384206670018257056061706277128234188230685861169730838459646316418382374998185512650260357565028881195504351560505955176413170978123598096688209469730095440379802810546892284509809189786542064335058417574644964186022508070166981845786549758173235892229144967732601367774328649035795211152850775351080011380443892672842347386064967255810299912880420986305897363451015718662537791768962935433251560698454678058513454879956618172242488410819674484096539444942903872508219391672884892987516122657092769529189254259208015259507410902563994257187770606913584367899685143777124013246923709185394582843909871400572757537511569176820223986334691049178153471111317806197369661282597479337559382988281412615653291420343441981147350676221469114850677720170964611162242064083251748135260320475823102511237387030235583104203933581122577250866763127148119361211847454237707145718335659390567623230703583427856843667784104881823966450621965054020849487161921353871691171385412418868635637647479911481058430379470015806282530657958135507102955219841366888955704751668687793777051417697431583569340355691562949679946200234779141286998678626310062452226840715243975259750533697656951737522533759728500285718186037862908845438252180283618867220290437802717182735340005543896360277165963654067169966027881327786186848749349884572919387955042709719405040017173622598887279340502703860288478746069055377211595098844096577104757249039222445791780379563475066415145659911121448811200292967614229465455662396437597869968859572415004941335740553604348012950027948413919050038847767352187311305101754124343683884022233717257987215345395920531894529043983574970576523841240863839306781285689317501296012710031344085216843886693763665407887714227700570517162151742211223597250598747004087093443493085967861957705150415135859256063719784311442049954412169578012649328528235925764162619791499084402385897049851485927069483255049604475790487640066234812664550661917620528071728280988448926523814057160128144342813438628297744318538451058389338691658238473184173405228998768917304660307938934748703574449615666071972372586170892084399611865741482553473434667941550312695448603133036676974703730407572752800542385935786922395069120247516696965455554655357949243505008790476200571980865897876305484415477568910762630387738510953597275037007439230659431275173525105566877320273722173732960655589231322574929704171619447016977387091004989936390066826333201182675715757577252772722190287419161391541775497888574214091469158674236324921999360662182572706225996795777980689065693385520523303271903657221211017194874780614151562419803840776168781701764360719951643306542614356527122086770974441379431470661083170006894956265287610073021011400690893092275229038188300604233646275834644552691505921914525572384570649818266724197644408547916820209949796809312922645644863969689529897558592943970776761008486787898240633253477247681319634467046767959275351316672219205800177662215467834118834676396203215619248749669089510532325450720630339552046041051526297859703019256847845165194722778195258783686571122617116697471819483199447884030220034781124790162686485467619526944793381707104315721296864820695471426560851171434302666927709326490326732740006292279351839663931651360462897099517880337850067638454450297014713362372840145346271631958902771739806219242592790358437512433843242549852365274958984497820697906926733880512008274960376761831358352106928918693180002476130560717533559636910854744950612296710202650357764294398400555979668103045729058153848710316909585130625788819577889998220495592155215239730107391525767799722479366839316408072871491602012294343308055007258275819860654830125491466339060408512570507726308982111349020442890862121625086572599892450046709230036062214214492869234474252499452823312333589824970897520433111962576922802776482455943283160954765785698364949569319702508969589234583318413505325276177037967661627505870429421182704423181603565490382823628430085901934184292903347780795750213928437114186628775881977428063910827171684200431269215442600322707948235996453431835667348564881200916545789096994441720870986650465974543861541492451733400494637900502082892044798213732463261081407794719678779509030766292055149552473290701526010834612082200233691365647323389551365390403785156863346350601816184824480372743989260426146616201981577014830517928479714602660462156856032449631345978679800458897884555495556126026836104419163322858136762284727730133231580522932283663881068218171709214307758539228935909844455241348210476808955944337895962339315207587599563415367474603582216281051863587577252216215941237943281872742719576985719180132352386777096857201062613254455774695522295572080531181804025962397791209251696752394046921405848561282134699496442491299410496762161680403336381497173011828482101745748890103474478764987476420235671600099672262437207174619046097061225869899031845651800733263336878786986578337141960620870197021835186241406371091111537643333439005309451429016522099217928728823094489779399156710690377762489467351212271944233552717850139596225774221369662056691126029680524045940799866590066962776989998428611545259663687267627012693792480414097873623967885306342231361060025439207088338715862242367707312951967464966615486996662065809355649130700854212368939187476450378258722647634218101598388820712500577534504563856787166967363937941952568226043904427297905689550431770117614927852347214871139295690115922454498778660814378072682144100962185567145231753986042734225797716590133982985584182769350901434371502358864556580030266452449492340003764266575051894293817615101214617278602759701483584839703496268746311660504427236028598549399545940809421917308342787921900970324183861333089333326343495688677949227155380142239460355513971158224498034958178761921088151942939743357653359631264738012313976244212256267291586245502155180069214513875785942032137855665933310551510236217320581066642183364829742971476629330296958743812611328866617231280496690140107460689501762749564626131381008461137796459576784018259812616660296003425049108821364240090368384375387692788650027031577534379854614476539945485900623084010511162043998537856078021026897018881507600480850301664082842825075120793500926874982654908754038366757882733853203206651459686389849285631824230345385463593707444120876998942694447594232941600960474777858285818111167011272815945691437634054389407563217293483220596153309732723831556292001164091551016438557090574069313696623509986832151769771748494737639555312496745567192827471940159038796296394358426636600544693614548776927172578817063724560218811265009735280710619086496085717917334629631248204143279797759015747928690858513749163174776472194366288969697393540684118202674746492466703891356253619566746017770230475262218454679338914778403234532398451707743196015120066464707399892289386686976768387916828207068115804763633951760886220179188377228550441102873810579919452981364955422427740441080797670886207031116898463272258720393573181677701648734213113340391653780526279913825936604985522991227665810437191344709012020853325826122111847092754324690232131303593215584634913683498184109138670643886583306104475273434126086049079907566465270602312416242871765744776273225343138865053422822114510250335403854030418858779041404067418892039597745366233700100605897608692515289427712039396608905851580277038940269608523602787214634164510885326576256104229849820402039801316889425728333949142698032754427457216064363979782446360498858110391028963053597361958057669778237786815207040133183491547241721622662153337367656273679560935480169485402735699500447906784647905256955120598668274367647489518487005576224706239850598490179111256779016962174875249588995898950589084944878984381730007978423408802252516224195237967764771299962081997913545255418934291258699539338188712755489505014109549114657624717388369247763415221980636303006794230397907579012590813856156693910855403496884168903123891888988190508614362601386416167140229468056639312809756703468923290294069938625423618178218493892828646012720338146237170847625814705132288644682464875506183986110366216251228229765091337669414784414565579570864102084807896658007753949226872044643713942733022191536926260285595141097078149142259533793804926392942983042918256367720031788724308196008704859040697066545652282757826029054948183427922417958536152913362838022128522335976124260598133874923910735801276375276097581997746428382184049737590752321079284995772719343213299237874007360336962294409769299603314559666808695813153253117341208203907749989337615304718113733274026673082701571571743477759667014410646405286791986057291248807364915367444918312189458090631216961137736004563174828972798919197283810293261097358265914427479249176338918526692320956631615234990264193725186644821279346672982671425973578805061301153007170234580282959145838548414364447520587915588197431263340259335331742340952310224141119585015385829682326053585302621780377420642281127063742612905439416902202895424906820971841144740834699376731832462331110198499249822084239658246563375786258221846195354182332892029715137175501478064430475793609403962543939084939991327276627130347326597581033962892571690092381112060254544557165623484849412464384477980945299518839663021970910298684885347123889606812423202903718016159237273159984943878559728055129381029433145738093433609305640163316567617776286253553757057224365700803750371437272309850198396624167702840408182487734168403041606711422178470070296700313218686899506589299567057941837921642295025347793765789490515104129326490704381756222652095622543630450328606166519887213783572560354887995777522457484227614655760082461326371481793818974281843581213626580027807686931841419505184266912482294107377494014289111429900051164750805039896108664611269403839031689781056463541780016712203338272149418190443941238897405601051279049507566599153824756458472790271700784777915432385376758633484707534612121442519614610890989634881558694395888703439675740325923567912988828755712618109614734387365503568067082326090071124916501231901521394956809555853057926299319492217573448239976173739558031293689154441306099816196705454652678077384538042014757398801074153392383295663336255348455047364191484061871310803254397534201751372281911078178699327890045262920681986354981698463302928263085202233617673201539037321270532408759440377873547753506584297781472759081900256206523388987273836073060649823823004754187920482742833187065556577496793055226894898825380150618550067098813617118488127847776232441828476567409724747095175693522760464561765118290486832140515542868139473435048454453290750499987726127648426229368154336630876451426840014341892203010381533736345643471897258690430588705989380205537889332793284818461055574250448761966519923205129739063343388005609678590306534120126086822692975785715056381276069188304052816219432332807623586681486142275635756903252868667128316018724471972108962575640240876015360053856166990739909260322164146025229815205479512118859368812503769691855811060848121042305651174463495474703180764470031152653255399445659263082425608164297492663360182306967660308469088340824552356439455991019275908777179071552628397927975652379018591708472193930563469882617548914059744641281163805477835276110667087224893033280051769511016305932036863763183441969970611673107849321274595473976214232318941953574753905880777533526538168645387935106102773112802031232877961961988643433813909835089499233340263264826492381952250000042784161113944792656918494001919160977531257549944454760363618167161497362439393008388556709926128352101450153419749593689126241973724864201129876902913443289157453942460704157625871158741865603330522182782635923889381115816950856738030801175178360226342133569875074236869417457600321784091150168951230481871057430678043022691989376522978101980104443548661786034736341734265805095202754424764709659782404989143138946914459954876224722882317316864640284617106669776498991095242502544848725423012230171677967490511382069580570602395813504308303367682571764654934584409380700293248012359456508875323256660471261232176173755596202802414174106613314883060215579050861012031125632237151875369381598872556414360511120268494619981708478566753990311167246296331823959893295700178661301333168936578144506620276613276457284700296532770838329584185635112586690355648365725811378351813712749202610780200640289945065994522634539861182593139595773866768292019719718345922816187826095962738288124612852171335982333710285936538797637158020421557437922098839826461436748337243732688133063604356902435971771958204451841773214034526104309068838953698108902413541246697586394028424294881515176567609247648114262160133340776182334230766092716859956377858186647299591262236160857807874787058637090603158411515091076691863522226803142082245168725834527513498512824270316731882027902124762899030920626986466260494336913100196429789838283323611591037727867790136453438623569619031655208604969168446983934160345955488139245856840723629257063235337622192878930228867803578142273807874717346895254679977514308326840913314753993494675059502845002874327474184370330505228675921533120433340952454748671822379302842961863769538511276584718093141955119738851788374232606148337319940871052081846803130485377881261222529790790660316152944789848709763772612056146701602502186956990283581613856270507147058730053214757743788639083822564768036934073407438634654776244614698865535692395671608944657297324163816986166909518707571373477840881079351481691640122882624450031716469809192089496685456326458961234357972500009399139643751433766497585059188988340689744144711838569348462457157373956099008276375080359262440694249145393052356289010709101601765153724607980237445349411613417556604414319154160861227085724156739616540983990311163289499805539625264821343362978578138804799925184646186578388310569363823739300387033824871031951010779258219631154264944841714140505376384856778676499456058106746987030682821529219800418272374301538725207658550649907053185035266082312334018656082468307662181441622162504555538691749833897039803903168197223504236253458345550080713646030014612546851907532686005701962066602722364747337466082618919986861050348967793457998385350275834277968321703428570542917493744008287796721318845788926048336950909390006714811576814730678066439015934373678725714961863039978063664642462899123090736164177149232673445568736594304240836593728216619327803007642207762107926572206931390694138222891479164183025841111632129023895798784788950691886272027545122993751893631515344476698253542383309421355442103703171095022182343228946716511022471669891871272183872599249821883950427354154604223059684697229845126937695785715597638782434272681948966005145969523413695003003454436695965616051602619343428129760759282624711919321707635100176008680536619155283997181058351771985585189236259707290589265051882290692183515790247369640810574932907174624281790749217389888627463627982556629015984650785518146803742638597410138020590035219928650529453032589818652690339699136006873561977440427142443977122924548028884100744663171215684861655952557957991270524027711872467161999727797770185980463755656646135617512354849961653523796570653305307244192766769902204332493523165048071404253808757360496008954947660443221745430287713397200298645407550586208011828843442967775124531411940414555138752137413309959114907903126050479743461201784899998375661039267289206745671094355774635618839119910351128177264366906921634204960907365072834906785187519942920986394852593806561831006713511833235430405342898992436007939890828563496318524868120348130102234148579327114257672345053459797619508531245462336502030666039876897277557870245499328024196078154576297838275211556520970952101411438918273344426393208521340939557766823313825592262485459299398521784128177017251196381084067534247586331862144196748549948986419691093129612220111461958429410693155134919988737020176371191707546717206224712986784381344607465302503521681042869552012296848435790685648371387678825097940943431109018191761102384759901603353555747183002574077307831645283139140601081075983765783436903010707441940218555991189715250842574148120522898194212180346376809426657357117214458477700500380290327199913932736116934697604484939035337633734382208563314799888596579040322960715746488770227481741041986884891153013711621711019287263870263377792680584145180214861153999257777765256653425804025263000548066502208017392886269272583653372865515543483954832321219628824254806004239448290578964540134970025610377961167078338135654125490459931792065141436345592713204772659241228607007137786165866437120436668408379854903080599007299385510767553029952158286903150310906417885821975207155456805002220002793394806770975871612330819350252696704703382431007430961246242944966543591890723768856329884844139526698911864941054760256852204367360292221629969648549229651608971253579279198810591909709438551667045168570594483623272256810635444465085817768742889890264841320524524827885047789396462957644294048655837594208146741835782275715402976242296272189990294186474486118813665987350202374101319559292210405166580569340140894425869733696430394462638480284758762107115396717325573850284746330704328503846851671409727853353019770354964033448958925366183157734870137664789563490033091099972782437152876978074448546158319375613243360248465011403614969121180234991540381438162388129519941222120448331957265196127850325717029054115141388461249830802253440134485629382238720769161764427923612951951989818272783851777369395326675119869330852204148968940578253326170622551221550497754709778718660605317821446871432112635660489772040826134596118203589134223688909630967174625425753049221861241804616424910092680701892187262353752700565998082927994802223595731277995104052743160247072893873248169733499788724980610055124327472132444716721529981420084403511004186935731646841999960083413447156554735483476619980244552213111683692592267553879978518861083334506421726772714697247484205304309397972749820925742595601447254581624945532926694392164985543291568479619890516538418483572299729021104701742885560841923790586870785485799708422217646938728977268920646589462332936054340501142602320729161055554002933080991914049590446694292765852770820019533994319874700084372069565125680278063513326443849591516698293289403955448908806485582085361874031277400007251459772088692278993221791931265892150110422232154618648519425923320385627237312926151228283379843010101325516856667385438884402128433686844763537323559447853755739357083438441473361051329348888356823645843666069601515951398981917667741340072203461361900873165422260491468555355496424871727741042620559785088198145667932293270005751988972359420951378438756556478526571576095009900424617246236047325926328558781308391093934219938617974069547233216831196417268367204688495952076002947400127070313796928353353872759954159400327696621439325185345860010256840496629945394347789405525987187421078841298275063893761700589272481422465123873917020193406019527569717040680988201878505170738495071101205042736310845045135249587173124066204551284667609433848426937085607978030434125955962648074329792896918143461331030907812842394919780847100621007241757722350290494436381858602992197469518794374409146082046655340723861748277901695589780632964261096120132626940465486986662296927599941543798012955135331984623654303805117805946373475032306473669931870912975672257270191460535850398040491064094581208466714604220404727888435988095446483854438513658304326004705732889162939598654275294953370096360868653749569885102395325620616134347891489465952394230104852649826988956593971201868273058397407056359316487244503774222460842459624359870897812450519416776922385133799569311698995856919681645725913637758583720619625179104208587697803745656025214084503545982185071933884984930592754141464135730538842599514504325617905880624010099465612686821998938243581319630251205223647198024488231118413968790839552235044485484199702067081948861533618619028858258718465790092686327758063673022425368158243815252445330840747220810234942156836427713001833546013422477645782095381476669276631198010491801677217437150399688740788237494465987160777636229545130613806126723741495712351865150134860295087511671320717818113532185512503197568697164581825551208930141990949075133091677078981529844427094980436695398618412719506580521711267318575558805265923549529586371461778886775624532503212161917632093212470983659978130520800733711662078726000311523433914332824144976814586362178567673049832959916081525461325323682508954271067314174045746153099935997986569079400109180359259824408558907754079616370350956148800743000808972426226491048662229940666069157581910521820738543776192755813005928682962786809568257568568846817749589696292767507181188824182248717663077998093857641970470681716699486771302547938820552525089638602054492304997175718199316387676167399966841404637626971590102477380971286274002534764767916076688924734206344114970810838216253533286452919779980854511557882682534259780543901549189734083983570209324514037711135236422068298186925167252844041301784861102708553600558098885909499125802819296911651897182262360577964904872180474988991132203796831698277740797670184074022608411220987257187838920278232072741735340901935368080846254536502487668002215157556018929570459384657047291179839134868596701562047941712764068011716036917377489700651144659202981995813433832457036559959197211223419369129782043132504292680844810949345271051513108541827645709531590344018505780494240358602229534989834921287765075198397002325598910474666842799639401391342386159056691578776567221190347172710444881177400007381506359024331416326144440271567358601879612160499972656616458682676602537351372068546880803296336643723420912068013359265867155326196732327999313393515715814249639280385260647745245175501571464239348215917090225884454441091354312375736052579165809711805972721693056476740672513994885965903575590681091207673703512723456420477251113625478822780369909015396142974198261010290874092946692695935592122191332646830490752197475114378467659532750176591117532648821575174957950099362033297800972165765926294247798331948273610613069716262789152814148886892587912726320785853534471516220222243248708731506556564460062405798813523069100236968160157331447121380212258951463854208774232008960064384011339376864315027115134140846876725554284224613403809634703737865341935306876665401339008631402534883174562084289224256019283610764995975277893400798302770492803777640722493629079446125060502330682990679457945822002834501108184318934895112017610720048183949805895139401582683456757520166356470207597259419026151581943633008959852073485883322998893538459222662335173145603502640013611260926088295775049234600423283290617617487638344362533506401118213984297616467950957957626553537264328334202405430371153631366256580269511069775179767750322048558021039598938694805460702410515211034970070307945517917175687685623129995519107949387789303369315844248996772242159236706157887750396421233458937500769117731173515862203855026619401808663656266309758090789955698960689657314390654359086952423246204571308478798688539189426728363913176355911600171703194546008339500556253107225590309989814008058984135195927874471786083571485769430780879503324796694729279715203808204965082625229199431194435097885674418230738792238154605096871062605654551709182851930763416818036114365780174276435780033666698612330805780508690991371793612514708021616965535177902474256661807874309832915068124313517573231899540820593485438269698326840973661733612600049716972303676115864493162443483877470241108065593640406135100791342899360561279369942465625285144080346269589379378445127219381899726981220541827833101476141666174696350576424849518619699481987697563372120774764601569422361508243380485603220791877922501186465064672573947412239975973355349683729116397864413709166551727761033352281713436733061475068591233428017986858290362826550243532088069094242293159778928355476241945774644616226433650057401802912489295900570833095500765968311652238656166542544403130818206457018828442183560401152671340268036289567415346513322018376585499150113522142615818625415255318210486445499849525063536160315358424078214737101839925838881759233282256435609051188477314759424278159768915044973720759677776582700191238244612165932381990858213979787195371799680440310471482002959658999676216459510705395088590884408010163655712703388532796380796256269750319969354082462469922814339581783999606185500633191219546049536039485105199792478675022669736101622602368466096196896857409689008937543308675457185910737176272741243041634854921580736366310559112502153479869763331277037246486052337276782646122962668873921760232248188511683208318602779889924349294877358027123888243931812623760908858456555315335628516506245774037058371926100591721383199281048194754858823457976600334665697924091321758053905090441955383393993408331787306802142392117093485376641859039308507296830922849610456901907713143496646996252895159309236996994542909727263287085622268879055443964939799170096207028191610682933078848744720361318709634573070533131793915862230426533365103945904787953618535324795494444825922407127912068335930789880818535191481125230971902046546178113382357387625082169614502982160536653271398771177345668544319138518959197221655895872555232793742727173374495044362455499712115656626210271326216132607716093975092648123516175712272269331336306869475521096039784647925240746931787517968291554225288342586692759734657773700061807803427866337736953954537583458576867768046168971642444592143329619365507287464808539652407738917538994123592358771852364245213283737296840609239908160977194597162834013208235089519935014777497633211745439137293722162838019751413404693517084870949951691879650002296696600235599733915174181853796223619262852849144027981442673854329535175658982480076734467446022714633950769603680696207127374378699221158224651447907351312727766562855426221558829426821702674577634760390923890118227214346659539778434208311962865511390290475846712207345680077642229672833773905550044120157664676709767947306336027801388088621581340031107196902859337163128676970172681119491512181219080404964776999559237842418170400589761584700401709060051586269367740903924122912801502305209995105020600268012852688391937954795905524997977489393286274265311186547802401562401620329294274221100777948022052092949942092134718975553668834689815658937679717990955843681491197412317871817280740861853908966795612796294439188059495719309477373229496334817344611717566091405468929946811503512380743454457685982175859395499089407397978756625119414581004771858061311434972094738720529766938739968409752871065276291545645794796838071119898341780884859196122279209708074183448101544659545080185622369094097196843465508632156059114536187945435969727152397772586033829686333955131751098522532641241179273198932318563266060889011380175896232926495901212515190315936292344416167670444723733187013984590098755055231086717458452178916181661237139055690603812302619586431215615117796699904257920188291569176363433924939967559377053116163049487356919504959751291367949553443101194375402019966468644171012657287706347773753971078257245991229749973596423168091399685733450465262622209803832983299490838049849830435300204494861351492121657419034581454787141450911486346314884179801066642697719786253868477028601597859422553296386954476955512487806147046097887278679111415012266727186380455709212898919962158719852792229316701370635939222469003565448776238012618923910389593775863615201601009794972120141543042662232271069789857758271139584640259778433502153553792884883571427403343600772842925953063194446614940423464110699219932702874856497280825963124942203353076732739448322680392663312838577530381401040139891220631110731656207810623639728413178606425219588745421613335766629922773996427325449602561044701260579779252406851753819639442149963833599431974652930250520108662484600918214637416341169415346251142540627388020028374379437787101567509901264753776836908173888649226934632837403046276083599969075735651696895746769861239088781380958991621283555084657978510538209789335379733692643351935329072305407769475500463348927953969806060673600109952208257114453835674331958335594201930486671527341231869435059138606133232852019325609499500865002979460227398653875056519331777081057158290382832183618071862030569222834778606402440514223901901974504864491102881236086095886143376912804355115942958466436759502113377420634444478439222683562517083537683471038205019995260454510614661849267423249328906107278052812696453968010874811571186063637539190430935132253603297361482813658394867929183522329071125182848506937067697289271255922960514627506673477049574430641091496945926633248897946519970683197227669911228436059837848638176086476890219623931038365925587418670694621501221087469852119767904293250110604933401392222889085674108579133918504993222845532798426195062141419054868706213356551803512859271162921808153168112697527738099772932708008030124948426505343503358299390954202160426231568911683694446556073833167132381235159080492759521630446081708653566062094896109410204635732263351722502076928052106656893815058293672892173328611160987581660848714733400962979251538275895465047932952700021674796901367947534079467454815883810645431392593161015535210815239051414697800363138051480669732304453953448905275558146649294486596997885586544071436849694926045112954226635074758839972530879420454026158491427797950441105398440897253313146128404514042566276089939190787730957512618764418677371710739128992184134391997330740733498217991412659752867649215674203464576414810233250953964284919005309689905644737616402753695272269251572439628508894058838557346137566126576117271874492032845464604356494281072622256923235851388269096406347064948436137796409555953924935866380780638255155556845040238191085326705883876102945729029913565711253685272035890220786838637173377699597487735115274875671726328888068293425209115258258412094715768956418965515605037391150001087378539721224977313731382636898526459343989554515071126497232055911240442346814485778213971042437121476439783496431157648071991108427585575488906223060155526357618071943121354470003793156315919428662113472011732398151950790829901342648834862527117821389888918744481485461492541881907302190168432362240281738009279481942199297058282506405122680306596188289180812652587652100692000915393455898656736375435841914421699431207252320671588815028970615111493630570318129261053124618244727396060903293645515974583738534996121100628566031537456390548780179874589392642345793102609605492265286665854946786608860196711333050789239379777820660727845759878886679877722002972495222797530791637744219281780302417883780204415842069875562252982172929875112675741449673101917239755368243028862698684380643928570833541124615868314730330334195891325605911399951872096649661296252907284094056582968088599722852366256456131430049712305222989446086541687927054627316643622467707507765202031679928150619236632638817256765620031228724994981534294764806382324325230035043334235062201118314795876734409448989735098921633154696849847862112364563145545680718638470333974721128849029374052210926423135797824212529921184539033400235918071292957473709797501075049728810446945915762423943683962216583451739329258687940404077047076463846150881031770754339263295816100526310768385078560121287824186523359744555138716305748056308659816183869803558132578842805696272723530582716119616390759669865281890063960575239842573239902034742225681495876532816820324597116890329866733347481090472518475982827099814803143233692598066635762186113239549187035410447835223739455684754137663123960806823015525184464279140269787059153042846580996009655909155380451396584834426284719742448169907340782155606074243268957073988468987310070032196044370947092910153209693305420054577872023181302257011585085157190844829451788646565833930005046764698233660901933140395764401958445859431183730610769132761862379138489742507196112189991224374457300061286505880162878012269184703498619861112467704443203888384081168030645007026057936436923521136345448662712947068728553972763930877588562516605617966879941168457722987057064376163545431640603289069485210099308354387103138749690177138850109558034421859699874565202193598483351510576795930306575621220127711814429426619026709303224629252012098096455168700865521563516818722549507366587172314413880067849934540839177473986556227718275701658344798561187472805333383262585892900764878697186323801347289986660809436653952764949566301477740521531333250104409266861785805530659524118151101177934258040356532788310593211554667995153933586755476586033429908015635905829169542153744145928826204725741326444155915033436017831092468610761229859190372251782863060764523540387553558879665268508290881653114207928473133710672830939476211156845799600500715840331459701883801444851560059691529145373455442504424789381432113639607718591706890266098531847886570615791445715125241227485585999243269381018233206994787563890136115098271795963958301483746624003776657945457939706483000643556271684113437473230959733281014408359479293220560322186202647884752203394835645834294944515737373921364151809152694683102834434405735582570017407717121380027157418868486169902854281658879797648268189407367612529197940297807394642710188593387544459102424663954974517846867251086267813974217626900651910028780113144183380564736559552532761470721951633246175539445443409605090554654036486168586983583819323122998431225582804053432221640521723206723313529221652963920798766256369290445632431596954265134444932076340760107743930068721317085043042788896464235698050168492333044831077697132523360768363430648110323002068351198339925919244877832261226744234729200060994719183758624254504545966629347464618412949260747910822362893824545375763298865208895858468607740907888257527780185798580755671283193357562533539678611127580142884840323665122416564085917230904796451463307148093081035732130910656414824093081214768400554140748528450511337040818607140241555809796619954813552617530173622433764538814957261428198589405988035454718331408791489306997713877817041963118252871854179040719290835711788804585554505408600244049710137628934123611044298659582293603281924522038855476297063082403159170611697025134333085256844638406094504159535228807641189124960586662433126917654390393027168987751234047157198037260253337610562795559234694712590921035042386136926306790457972083726249119339957596332598127418120531394811367627964222024923184844954549591929636584618479811052327896110056001838557359522616168250525235464701748739733659967991868576152663477224881895797545379011794618471829969453541299453459070452415737124283990569647836949950242374920011351231613502789672742185707615167369037417809410917261787471974441716148266150600345593514117139822707849703879802737869943499633588956188812802203039589605080773947855209824808942983424868092403923685901066305979609390851798730942469466961613702543319537990518371794973377362753524820120544186374003301641727216605102885191898468513428116203502932723728222416206627849516842953139892479055069561987310513075842858869776418646385031896820236407699839577451792193064206908475875017041820897200161702201625391341219987035229033013357989158430333880009919991875546228976221563540086551690112698043732521470200135957223070420783440504661024085945672109002606000177704949825130838092014574061050120467968508213203361508162192747925851563257770442301316429136889340211104586206908754749632685409562226827513281787519037039379375751426242449311744846843975760329896773530045052794653404420193448183538909600752065441733173447215562994619663626820996093964943833778625773612722951263852473731108564523781211784843065009210672033314316901060604684003971522868148471836745632112811749722308461786433910330798024060173463649873214732840361397493988371129550151917925638642138051874659634857326402430075295305381290424114714533182155625494582206689319474894832285444543632042234211279520723088881578036724189740906313128656138515808707332670746968152042873313470299826694616191619728696573997600668306520667379896249391855477110127432129304650523451168361060521267555790756186962411397970884390513132394179059895019291752902031860845056992804869050022128269178814689581254447815976423933698980373231088793441528901949629082558373014411751887879222416824779479968405641631820976353774303637270827701930341319549916831757524302273113933875204145762059523383615397278740155832893271511861764053698601819843549828699917512178825472374975805338767864470741844147929372337773054155176106994208947108203031208947911955276193910735998442993697792248301282747547607099414695154432551078484951146555683398060145320617126322792105203679123846838235743594419859571643488429895669261368336400872617150710893199099557209566275741984376452771955400604246156122246524631751145114173615870836485559955916278814142958263973064538624290387501428234343974759483235380140588037873301513173960357526442771155372855051272629336903768417424687030620722994876469372530840329812590004725034585079158697657079072765060159880885446874588489887324232399455888314414644646177180301510913535516707893268125098338746173391471189439851431725538472802609323616414731407531326507358297995282527537555447005590859618726744564363307938277496148594767608137443120903466901610965330283762812764457166590466452715517747277961302005151652082781044502515834816807954937147143631896301610988260874505414111417428507771473818938262464748842818009938362351000686580593866489791990782807199028199121109637460753335904979920605870972476810541434682401395226868032912538773150266855615293118037654736673534972758665640610384344708313222286672679754993991976310320448756428790973126191175785822877119832739269390166869738655770900421304173207818077931982511776843866881565775706265820798027330728134782031794282874266098401527893462091798020574036778341838643864203484138381274613296923827498507782218397601440586458620825945064186894736014376082189844960686823175828907741486792478488904235673126313876750593560228578973716603466167008249668862291147763774298689924466089076927027421168689115842423795551511107270427579399672719593827975137952487600865145562543125151414025720332331492372972070570026994844579740630860274652792616556197386730836590131071438098440229518825360697263344475398644702543254994701466853022960032788171327828621294945789864454373215284819066093433612905422219123329068844855315840435183288286103322615718720841123962543215569368973357455588264132675449836913848695665560828277349462750029221477760348029116724355449220129587053917023453464702596547444993598329606994523192903587337087803585417143988884974868486529232507088402525914795889438015927291856476056057319302874879588104294951370515302603788830621087671676007862595989519830177758321409151502267640126190794818655012479833533597257946567292822716366883796134137715967555370946781952105330505858304812380239901830275014694012018677132835397936308104294782202031158986216094485611216870620066541146067999636882717958621613794877211010837660571074496583835035773117553426840418677371254777975282758352541068251111496632394169662813877282695380277053128947857578280738851333060864693404842713899932710094162970203112348323743275323119272721379081974484323141892045929032099076447996912397720702861940820885310781472723696371465078054917840774803362352212669955274058440749366760743359859504786108965056261788191976622551008486752100829666520612267967113431623393119509934376753759509639655573260314305810787278601045562953277538039421430415694163083326605862065974624733206650495941945504636930942116481754714543927607843701612908156291589691171953870016272748469630495234567931365500689302193748097801031946380516769091634504746321701964274481875161047383449712569218343565343517232922605389151228364872829952622794702841362351804538084961863149638266940998952842749676826009670669604640160176984413733665660583005310986211536106796407110833842744240909327282471970694763008822667627875919990681046788570598150259526429261227615149454303149870872150793859107485604164417046551062103524740252641051236798608436330538222574749906103708924279582490767723846946461486702532333995733638097087831790579183381994486200931197363114001242982601575496801447204857861167614815330249302640213163303672397615448800037186622444680654008637133857715132843260501373731623908694717418137555542922646588951741414304572501428019388328583182660733285842635792702001947974075963980279674128287643177332381256419257332509554496751505866888751828233649799450612705094955751067130159796789378871695428962048785063644435771427954057495478781958362584486350469035591977845956940255003927836304333906728862541574125762760749894072344065747819769807757259168827312937940114545681063798640686762300591301999563584160845622154266922631265086985459760613976980992302695556623117965051623605948337670546504022328684389702948417745063762061722784702911228542971062141333479954863851897180779012123676822852996486218907519745267845701192782024377346485473636115254931200820035466227609721334848113785887268641348966923253943280005638650723743358960500886839685866286880758379297652956481482211329996191539832005284955640897281473203558184152545351978151724943843707947827934371407111906364150747078145893163956839513495719386883864024069679983836719943659644957222712881675004492560597771982443795306255245619542804182712748143297910692382659088808626941379292301569754367375198811784649648386718837466291196670070797543270750089176218606645875240532019728684839335589591007244580752486732777577602799862378004631665679091111396423789703345250456899337427152393090933934023103614470287563233018995139885493085298212443454406255973740411849956873317686452798758371674978152328517130022673859779447633664183268601833530800233873202507420902845913164075316309131799442286292563751250855821558172220758310460547048997837316803863941404328294457667459185474459475466404079770383322743429336774007426358168950337441303797634241305292254329293787744004081952424109908190640094564143117358707725734094855549128824387244476693382402860554210632227379418032992855417055183078750246005438821967898594504480975180995924698146352302119226364501895700462474709154922229893010853664320451987146260125311353515921484524397620548399694885017908845381470470567644232656355120359183282379592048953583099574703959862984546972365971324879449680021568157616162320496259153339187384545854725302680548915157018299848793221767948525904657844028651215593539516305047562600672735221724139924833592086965475148757446099729238105474119995770123568584762901572153366542531552078305748307778937162130800563232858862087517599394512797449976998857264965089507122898997822187271653369149952684782340214249681058864709318003809441936506859970669969499395087900040588543426098063196661711249829777931111184860073421854216839752283393544915266811866264788851278517101716038122444235513979755869596482240244277254861519614586113478083654439321336972091490307436442119201144191703781084247734465554148468077116114249332510015862940632669849693989331275651732096761016716931791762107163311676278608864594632935670304594762106204020938258921437868210519399228311799986548993417550011176736861071221116961365546535627878447998004501183030252062488307027804554232490047309020153485292345426296603663779065260430179349038415115239645093809946837951946954672543039912481732388835562071573515370964737726328334058870061087481788148054803249708180109852645259253498445679119122491480252485057946881191334552557672748594348212957629361798745468668046899463726680673475889609167622504115465384942618223716174697936522389501482432966293490660886260551774715079689375406921639587298751269695406164147673329404179937331215336475433541858801549075564718650747263750934882649587512390797997567081126852173560860753276878871019110844503581805841135548760434703992242525690594395704352592404662424212228768042252258197607303314221094284468689809072976487148338553806389231284143253802768555335049396502575164475353240511030164547597722932557189265338455598735781933674479298100699714911371295304231689698012543399074316973774047318812337575736478122497540434985022274744461861927735057181132788606931189347367554265782094707577042368946253686470118598012684468811517279987164980633367047529406387328597231324029615676115860426474398906618598627161908263279198778263534123748098288386307794014580682763227117267883572059010739702631577405032943051969840897751896563316308747982605005571031538297681851741945556407523598289661674175168668936183087193428846499915723317141874898884732825794199972944941968213703446677360812826350211527838128864495758682704640964515548854357660784459173032030253638216411893846234113645928151929231990913853715992397283364044639267266414592028704824397450399005577759027246435152223777947555865903038001662353228213131146840488137983964566389688424620902087941902616181339168172641121902437857886016299421359620486059892502112535524431199170448131209468068270499141605693133224513442386986883707101483290113900532467388040412670826471519401604098155559767475291585979916519410565326544803248440557012006837356539795059067529654104974374736720425281615043048055563382419226208420182899435960546726842608085897674933038122119734408110768023625962248495203552947876003198254006868051441740730015239656141127044190767194750578047901069360248271705310586400081466069651107108019854415179043819190492146895136114707945070675721422183730807978302958450641236226091548492266638311426744800922372043281682608139369017460778967588781102192393619044188832675454510290989654907122568608228493772314039526203537807563645080836620423597167977108757605738632960767379310760476685877495493104800800965790925022999019494747736021774075017735231382332726961293589796645855554748056114561281453700115588712565218486698013909768014794338466564738987193352514248452452121806074967275805254003488750404515448022812576063639363683965250471603264232671084322518238552772199899197116879495542895318276539931132363281017072124931186475125294891725524453599935275633107522041469306058978713193012976628074741980845337989694445112619907319177401934119660901710477741292861155121363092080068355946875833992762210902419497617025301597301349207185386231683643608568623337117304319134452420019416155330415002113496381608132250138962825525341532337928409121264301584309213468603409863570536076758001025697782641349993435257627092626376791157584221709157307270659991853171045723132735392701667715588653976240183869567186773565720187849622391890413173611797423526140555008151927187872239314705738163472448879661971768683584483457876602114268270087560151738927600518925574572867837670673370175012191177017267591393177372751001909085289438386250593492966149772976676379654356146542622419588862174427842450792590442199558093332578701079404748324689907715921402941473797363557873315517298261563222652719192764900736318140377694569138692925773454042486084611293162938085494626997925298339907952626341627344664926571174007764810862420558383862352169245132613119105615204255459686674729541231272030183082544328995308920096300784493514697038539450600717151360651096963756748541780086076873603147661254129381773389600923841544417432636572741496418670798410072841145821962286047840298935022073476140155676526499453938669240439752499205303990396190692998167540815014271006410920302555871418858143827409995355558826747730612559104588705870276856705932967229434804120067883550175820940082187504441711804136294183653205882343630551060921613880490192574993955437950087337089069137606665422579255377124885396639826362118790271413579401177802882734453459103201600834808483756198092972553137151083068202759659344432702459225748435355521334148829733918567599243678298012976505425408003349855160429334417410205859677639055966604374123930225477565953642329760142490372868027439032056611593243014541594320434547297229468660011405115679583154813300720705341698379312990688601989465293512623290106912293858531527054726598455965550018454225295402511388300478849283357947236627162064020792440799079162789092376093913153032020944437438882427623789743267857674016249754754712427747848388167501648548982670800237195633141709564867077784307360478535314955397844404226625895537432665192096986012759477128422079249356988524589538660551354551784393376488752981044894881424406828547880939772900450482099167305476694155130952103064542695843076980810997777509223214009075410158554061266691918250501007432244099474338533512791519882083537131824267424466933598492499514260039859955288819510438893452813814333791689923747465708078664385551737978543883044111842668590609494053526288235709042152201717885922723935762968480601887242418119224908770586526957960635506715910562743474037683927181350397909597163113246170888053619447387703598781281037706063731229370339621045253489240429889729138048451808162995126179055434011561955864522327224940512699070206967189682607400677644458152493043861957289465186889723522338521475157293700027819382491856638602690889949072828147845969137308641184923045186419014705005858255020774438885898622995727603077087193360404420722175403463782805506647973097008871292710170247157862279868541340711338338417938938806663459371455587876627356017730089328580679928181066001973606805300685027717120892366408859031677540072697641427406157641315957908738314258719795994838952290039667619899522556508729958265867379305648373062708344051727734175810989435347653903384526775364892756526184707399399097782192782464730712638018099641320489571148804602358990290704960276455036456948930507664361223821001616439524345600594422645521210901467675164691300468804337950498769245298880995896951779512676599768801428375932196851180168303346645626563377478734130158543817928566378326204706169416806305192263242648367897064089758264885779264101488005694570819932330217207733762851878873939439204548759144187332581971919152652942962058290639878505661578618842274965557234349684253532051718367408257808850334697371410445265258798033743757982200716786314787351459263691061584427742606416840770181614713575372586794645949668418265074179449537974611142751666175721952336508246104298334992772151896167877140105945119862660491525926525948676469904466677940187759908005266240588952541764794466172315061513238815639392309057093224374182779645756400228500051737469912649079433221329834496378635838419452331585739697923968443388810197553289261462005510279349538362314884283106946949914696920614465512508478863324602847352638004123790086177429981064316033337576085633026232927448343235866006170970959832717073816688334724894133553995008043547407298205928120358404653304729896668727763010248565332095706069932680135304602931519552027058636137462613484880254103273622956386311024298689250947110775067449902788178616557771941992576340411560961369985297090773538451374598810129363148570820467549979445387469181342934132000967354087217671083937226926550961271011671455488555811083420486829994714673226860865658278395553103772155799015494151557647501907562055256440257126560386716680744311307566202715668912875971143291527797362876210321227691535572316282559661956545919944543898874943516316281001736332462951276796172192310040847697542525228796691205652527265679891366217082691220848809836847636184190221146977839866041820445627243078265012446659423000439486913633141617580461077953241057591247755868845930867107544418095098588789664470575327222399210386483249896062176162442146776261079524382482926984400047217875144426684796571480598648031866973369226684529675756236149504964617702383821927054571833795675342961264223421601842222473251626139721607869284132884216355447843651297564029489050744537732326497429131995958987583024181233746336324647194660032247311687253110596555359022076482973318337071750136936637642987880637684233184892672861885855173341367824105132213758451923257544652117914518247758770846416879777772252996801925351016013694440624839084703615124815002860844767440988189645527624555716795291267456113601837518915590978850628351979658435561629312204658773500166990841553297368335572407097205255176419696682496506834564259334037761433443671687303679109599212972545066810952744466976123417839033131931345850481283506431973450325043694134881282518871427170236286865184679076435214088022983849290166473478415575481655895266412253108862338537762508431853268113946156804307570686910688282185417756590337567315089249548483799935306829969111115668425673409298060660629676895746552244505755772389486428677997458897472659456848591146751747786781236555348072375088864787811701843640334411656286824336825131200973089398204607916549617802239524178536897978798954455138791982024285426096174003464667534313288733915318116257076502897563278241941409220717659533026364237578157126929035232615948133789402005790671360248863424755099365421278203950473707107461566622183835337504005898474116100889312548491847694550340600710019333883049202172632399541883410150690797869152347944320789485055717400457530300636415045677263406709408997375729157064216171644724596462719951219612173810961180782269488600589286349028040445514510408948291390798054871542981234018702245348067307129297983487107560892059102696778836901137417609444278091083754476123782926219021437388597362952912625410030236425427726110991839089775416955526649577930526414655739241717382268111717148546407641547538961733702158857742259676676626375564197393558020119631410934636427214232497158174804345173492464669738588284576242063319270157906932806002200292899578234512816058175459153465645537060693900483473480881609139827493830309187887011727407309045661972485272237269903009148993111225367210899845950760758600113668386401460196186057277627066118057080033883886270298410936637429804202051248565128549384162049502049571694873503699525311211575531198305230784807444629156302879957383238784030802652119670871241012244105440660155291720244732115282692531347941910754066244187348247496295114537441286726387948144698886795405902831853712717536911955809754326743438637471945253714275189795462668647088752123909957876236950058228133501310914685501771267018474984677239414780171256119932249166752544747342199000561657397678288114872997563798083448956626153202775293043612356112677685990358358458420532395802701184430039269813523273991573972815146456775706884939939019974116693790951677779035331588015544984875608693386482315618578980813036679881544763955905951040527907213257011442225368138872955849222577510057024313861304442291368302416120807861300184350334513946501856155500960726192053337235565803836345604054940728122441025710635618136287538620769797938112211882409897338935172862056065982097363803434323622892707264590292235433886645006491160239648952206459686652780052763631836739050536643231384896287968614134326563015082594970070091729343474583359754850398338682116667338216821665918547539990748570301681450377247154047136962531593632951382747735102103848224976540608589855273317008304096088566278359013250874943003218333643187627888783963671369687899210323687742931056897780174694097313561507928780682045465251576903606393504520184397781114273913640409666196326872277884397775465841985634252028497791562369701894434593985480883128162790629519559646722050586178909256694526011777710299937584856392985283597723284978629159052866165425562412457808596751812585638694706570724984908254212069680844298941472769440793441963041507011450528402622679998451760421270177841598140152502060245401921085294138789548026076404669305413567872226719185500562832260417966219418732039036610853181530516098050699670313934290743900785447485789985023866338530492340723734071964230362493748876268261950284466422664402506491764151632913062041946642331071759996746070856757108328875959218917439980873685755505522945433194119807612902653299837659265374288927349154860411738974748083005660898451530802761483145922559930067845768907818852013096546612130339313618892833671012691694019031297073898232101148768890450974281317277766534529849149499855649365907048757979047429442899276101105481342224486825218174471311338879186594736015589293773185646928009617939180039693327940763580910748272793684884876414162588780510520351858854810061866209014787951439206645265686935529093925345245155835269668748708494919387653973651419314866997732807427904056336660373581169094396558321187393187250917551122226115921920386839497058482507822674996541055561028472702519259513903877634390179210324483883748655963465305191846429439805004521123179099452196782093369724896705921902816339091261624251663383797384405540452095990622681999354572091923031821343763828264726780728095269050763757130936155275057974608743377616796195796491478526760634988906335831622269587780422563116087625090013400595417331340339895438379048851769303419801384326523603930484319005983067661955229220267826953672524845609776323355614787012693582046676045576250674373835120051228305874338783926251320356024473333447104236174420410267306984929301401272117932020779852709449098600395017820861713221090084262167231303322425739815958060503804954554965132049040045920582788658052946051597607538735468162964239198258832690646601251263352000403059147091036674896494580834857681848154847278894186206539315789873760754305432599486931843126992811378606305842166818583895539281524071563988352620234964045601855747270834081928472853967178294202697930246528687549919365813553709489789811896775890115443203309036281726657580246515643948593629284820043255465287195691607873180668183827503852282984598287235409584464189078771191838663461316216293577378414809768856820554782826553208780634653589139921079789551077784556688208722475466871507366454404174267777208174945556824087988191241205121952194712261651440311082912643131644792862518701247757985739579038419804261780735094037537728968056734485512421145517602489057191333512111658220298112706786909296554672720964973347377049815690285068318145291559067764089731850333972602326482038635105087728373946734862344336818416546899251615249910094394806757842557195633442121057019760050514789263074819686659036133816758625504582105410017376659706088626261531277090807189602480895590945483444297282779832448785364072011056479982373287841277681995609986550683789251168160423147264964999616571458391144360460053537241705585715908978975240871710932631896085135830762720165621472457792309043117070596557840864024513898032368869536023294479386813373330267774607397348074220696766299487993894487417064334067846917623575023416252850897723223601898766149405004158847253017548475811376435272772055922649459786614411512895480861566807654562991248457947674246755941464286166303037041971269757705556333534635381834568042049816490782157578838839330733557461724661529056358869868976528853099744883127658281899534522854162300938231626071517629086610968300475563753744596242393706880668515957876386353829226218580336755254243703610286808427800610315706895458753814483176097726323297912558142929257266896304563233006141117063997230911823990016950246782300350071581553917502055845603358527643029505349071044083401218008583230903578009246365443961169357853464165862146108076022796799901622651198230633976971947680987780837538787026559976477842085877680931054134362884438108814809446415695067827923244390470148195640966716703023885109490166098597741845753021390454198960797825782041083313210273574044809981957951096131140161490616051805356148958342182307105840397193677835230295154941221521524809425988636111044544382855782324537387152286203750364346610421700042892421824565489620402259519411481346850974686600774441018725650577668165044744383876047554649574220893228120843668721508660359459253182849059052268835701198877741539748884868981329914532729444629038184572300276462839180776053930778398288139959224950170700953517572122724069818631943491123606459964598493764996152104808799936619026065469377871885243571707522334889249666476469941324422337744095604109247572905313369196732865328630030560154923793320944320944408838178068672581702299490463789508554699537561247236752188912935013387428246525147027218094700773335399833839415460716115943675333294443163307055840595768687936423953320492388227895069878358350885279383654861213552899421303162759075473337842262005208080060836999157768499940859189126214534800302305553149633758156587307398466699803301165446578684154746507646117011368301642468064047654813405389088953582391507987538708388439109584570599915786808319905172096536344200488074715393402451215722146558028297245659618283226740053238202082825932630102024217557293643982807041764854831776476252700494745743736086699530922030992912770780027779249014539712292129449365039841405237245944320598357089057419940408724085294611093095916291439673803862839243661964466852132408674741592355582843395237969179070128832449456171784877128431081094006227360714833571733009885904804339475314967167014834392443589522391290753610435415032944630001529986113200491038369634076230981164353348448284364553666473944729224604706982059694768426418208560264297894566908813518927674057262365808968414488583676024591261448948116548103758310482107214654074777443395381227650123188406895160516284786175004694702012005755151780505028828639104158541250408124333716122508847137426641903257271578386984388582562408041408522912695975373571202702858770238907590528968520949740659343029981914761430693527911232967700891317498426424683029893614994204730962699593598104570449745154264448534083081275335685180043019820832871863508675140453665375309377125528970418039646512246223386017976773274162556563899288443409501963858090458248027250057443553770653109650485810237745572861423963691905011485315983298924892144486258720419485156607795125827438351262329536322757649488970181918218152957908234905927185623740795952352240195545163695261594909387147869813000789962017525940395810005085327156114545782439807559931334078131218387617571490072233007383488813745561103798655094300248121678682211086726255142287811359929616734830599469906158802823630884162450043257697709227207700742823002225901674129929621940538300903875367563113014228909808620967994520041284872943905980190007654325856831148923688110756564299679762614921101506924481040511604756262931993447866099109638972558336706433034475710429232878828186264445069231666324621786602556796619610544141923519100502804921391393146781680513681908806402355733692037337994076934359344506514273270219022343452056410041049166810332136950116295963376432252202855850170400344642576621004234646960866529278460257772288014556037570762269227294788775027879289118457728094054019964818135492093734237365405953368519908109285137625987303796633199970634213520043594575295144837167428497672062413354141768185559574371646780998504172165160091090240705135069552561329971622146567386472055360858208148132139875426189124351956404306912546094681482593228111731256508069910786125103273799859028150509578813973578494589315448230678672798315632646144319003767678468371625228875370093306520771291225628089265048764514895660221741328983492226165802754997442428419673354877543653687894811221045060563632404951988613642760498506511988057058164749819050911412879587011200848270607587309545764600251065346005687730507499456732367468496903842337225548621007055172633587993048836054410695586910013190258509320717222731964544184207052875856637466445061859764529843758638273885640984455796200258687663704029067666095482604236826263648143009553093284595419835791357926532131548490437153768874896955232314446145192674148466828159593695107010619216042373251397378008100306992847684056486509161168099448029229020285162963648127219495649110190605403510717133441730188814834787302650741494859083587991551564866726994816206316886419418949807793844033723404162826580091107037222859339076929661880050970031993548571904059091154430363284101788535242557578498448209959953045758532865508008771917227194112947432548242014433231285194168721431020114208555333752952215875678441260310298765200999998264980510790029702166747629696639824046220305263500883715209053219401759861352665901966102637315483017344817782587972514812958976283712817341534030020506730564438106133557756862822129648936877506738086334135151992022161410593686189243910179804130529676348609020474813660204857884278765051424706541759147251953986704832066937441901476615655992026644537658587950311805567253212234952279361856483837521936682663154057356376215098647020260190955827702267865079762662425869964371274901641927915934392507727509643254747156200323992110572683654387488533022795392450711021340457521466250065553685085311032000070730965207404946051193865784057878025281474021591519898123741426415250353032553262929176511489907633229670279762334477411384091976581789230414431631254433396748602492262849473554077827146389344191201116345737468020023664175606136425451459538378724488860237243054886405151053450101648878540180331332026545898156340952577195890622927684401803705291007585229416586166555801166952234779375518322250284764939259542372325370492923740774880675965648677718423041022245889028906257683612177382032737914653230876144803718806816779636082398416507019444882122855278779329027981338776724347783408841812518355029000706685412702994834101914359919220691238707159196045145776933894210916319331517894499465475975239494370566766094065643245129861884163859533933881183849008030598979676978753461386630527471471256944983723573846778084722842163763150193978018393000902642787230309065068433228268724863458627087981568035084462440031082256849065454939319658824194601063856513291974903325399582513585883303222711129931848068235345200714723672698703614446526296211857591227632075023346380015578427809643587768676018669103614013204359103245536074547222066117317228299586135764244220184952603129327772981665033156386797889237019526299576625215933816520476630410465794185749682275665793218843991164349965131296477261344729636781737471242711605864055808653828606268309285659830811199324528339475379556555622826687412772562520570100897902964445385877938488129778889790311541549243912518932860886444308608801184876384433656934220353004814822866924956929107988284852672255019897391038758702523138408387883068165210673976976492741813550475624091132972578596338484544045034969908793603759655755320900140166703598597020952121659270068899690139278639633781292013601971166422995318003479415412159625133941594205242085485894896602216587853766633566319107368399441209255423942159022219620121283594348365625826182221356800922135960933194735586814785119661284262224094008741215063808333183367145456657867420040941875411473065738094737838906221660720171351884509943437848394022068175660485786810519358141100005236310214816426681345101284569438510425443397140790221425254380628963876380919539958480421734944224429763948541408964979150340091526741583246589804179391902914779425113473767620056269442886714602116669493862506194913589887965518809772544330242158151489518340096455074402783989951583891643094739818351948033418046040421043187996076518275607107504322177100156543073770508443874002974615845241016606188000971765171329659439224666915218460607714235576328983772985491454933756679595959099705464855114655262256673664138933616612105816365698033495590674178841745616783770739558074279363558728593496512574002341469823067360013548705509607236076202645591284993921490114435248903747531049759572197336115806736743039557585081755528085517050621142098644183390520867273610603178677206487758723013887033844063006887218510335721353879629461965259292934930449567586472891501612166360252245133790550998489558178172306275651092469654960131120176417463291893118410488433219623934458064126890061115198050651246103467921189698995123881808542198954585114626785662498355541137498351500822940739559964338624884386630964776692171008179937251750234253576381764119251174979003197181230645944162804104041991096880791412823777716993545081313772759699389242082385347712640735086955537815974505060235730064009939852883036704393338052819751380417041864434179867709279732030520292522415792138117933132938092983875745023000358396090739205970620733018411265449505278414641409706307097434232259610266659488513367996122574452656143608493834455321238002730800541669733482361672100207286217548324179931780831130146606335546239548630344443824638862589136201430596469691001322553634744016193377135358905078982034996978743442882126237835594223729679703910131021704731013185307091406893827160914014971308990403910592652562772402680453149858183129394868283267331199062782105862086231040240528884275277511592670705560614306264816968882455350482618618197159376937330321038668710423557018834704772639754585228583281397434400032026320882759456067320488917615633763812511767459339120495510314248618518966883270287699365150552980990963459859876286414661533337936212247125965673449549973585846677981232417181702723520166802825255808239570405336995214226171178113612440886601277599266596046651731223704661144271154158163653529128288575540285492162822345807821919544437234876228422607596003896321846195853711753154171525456365233255401282374993860447731899168941643330000439221690803344933024831293680708485117078489179068493596443049323668458918137391956200743940548132188305780482026925301800308382435830282822063029304730458130984431709045477145576553073362924588862785087177908798733474368297910678099831040227949221925558253466781388418906748627463749719661988555601078245441980058156618929637770220613725843005423448019953419113011666585346581062872844603714266007153050397348082098857546803342426286210436986114482222651079147190545901100570315291900433622833482520735691416097396509856498926187316887402546079836047218288169426929609933769312646080796406313582298021411118019646470444929096485554889770845050998950234477424623155835110632954917575503117291171496078055343449214655475850788230015580635244157360817521562850267917754518756117933228151365900063862352013193319111951407197600418462751796050804422039328202714635112027237854520402315079568859876900056055812690955595798149375957424867605670695390185313617186824476301750980592821121543489754224880884933054199133248800853053949315724039486419102388477898889108349394244502078049463977460609426627239954263851726988287493504279710156000522638246240652106157827955268985704038610446551883732023029457610356431855719731166048405612529726001360037480197880230817903837161493987019322105500161089015807959856684346738754849129255736371240103156670622244829008445617566349177048928587783387615817946156704406353784869884312025443528854625353488167035112344132161121862831383977435467027340708814212387010361044130012611568302346338289139075015609258301822652974332715903558296220830093534462363124428045923726727628898131466040948155305527246958860186017862457164648107395871122186160102975591114741409583252882130905015531681491945227047826906886189476276160890794669973392049697618776586900606668302257363766659391085439358051851639107906419252075742892086696041030172317508699936767656272015294930093004861671232333457160031233122992956027826250215285234234870341211977705098638708619542447717450736069943825152306460972357178263474092608493024282840946458100468343057096336929272167479750122455939661222738266067244131337694241977267101274756842768614950782542603724819910003212887456724651527571073253307415546154207027378348188052275528634861897386346067496721705851660479223167503764701458100497683486992061901445156678193755568140384792600131154384997964796870311267157730011860978376954728746739046645068767888274905497820912927625229583693451343767346694406815549268983533658885168379542329087400624857037844718285437182756418653724917377075277676823688365877485174328529961979292341295719445477990549666714123373327956134841790639852999655849986692726653146442388037976040167929656881581384616566892478463236698983863741924359316502914950925419488315981697466826640906507589750901185321104705580950684894819519060543330407773279267412751903646235783497556523590802461128052928913649623463859590069552035203725368792031720209391848210213746376634218684099169245282110657796434668702839490816828197188907423414077359285541096278437287006622247510171024429185864224118823586067149951305352697867132693293334366391881342445413468945877630646949709736347927616320167144265369695520444103895019243201079345083413659412604845672252056273030653196961374400348715004785378597247484775762392210283899325556876414493962805428176785719527276434340785932207615620321054684086009504711531175680609397294647373266403739930174770353454815545216352982781905911922321094754224809379551173150588311431375202846728313683136376531431354623408024966505689638905572304143288147381238623169109826446127058929211963364260625489976741648619492984190338147503524405364302046467919265226303325372597130033801142498321313559699644849187775114334704821437779980218856763448925252588589477188444332233834303855848672777389700878765418462021182218061294134393192577306544370409815079081532287412903769329843424196372021350882899067525812244612849767994269389974681344240538379665456999549301218166107116397981253495483924889392643192705369084304514194006166168156832257468073131186685675877816534897686020495751600718645939776355433758190035844751847395732868537153988676520876929976717855485763141913686963636494347854324025911172005152591786315905028336596175675500227652088253652738767845839236532664050373154059044302214805965729658921499578941235288879603162333561949886023671371513376658560202662439727969151177908350362671174422510265261087197737607105543479665224143814512096792485492155974178560120197195550668680346936920821197589762136769878484717632269129070309029328249032550957038048338485676380141355095063753093936562110287234171696492252986100701291517603198135226004657718045847900756607343961764862928692862314061708849518869896220031281649032412531674727385616666851986195218820620526642517551483139141880183776765860045500624585420354625883189920087402232436163567238475802730638961031738906700324013210103128265869055244374542446845093634629987957277929622001380589818451239687099087455700840993034718873051770301428482788615441702422405292467003037196062667212652571913970045501972708083869675352349178148236873530321166600609225801389228932450376606227872869306553885328071619393333665208961841757771301758983923382234585720188140818564239684462567281516438258188624510553440826070205003627642959241872678209224332953152146056904445729321955819251631290315756752720030399771933342784583338202378045810327536446328736561268674669668926676992838076134790804510607481523575745077962856302131307811237698934570046542647396403143034389961837928981607497251046952619350824874735428605114416783966927485044228100488060143588566746804032039178463042132500875154863629657081603087674199991685582265075297305168079371911996926741271917948363422474338922473637808089685535851653776128639817784766546433691122748751898221434330461122652459211551635338967413789868445689945961697139232875203185618514635245193879219811944172074696736081908831610520088276719798192248813237197380669848416335779188759245265414284442782335439165157167314079682128776568320099571122723514818081924558681497377908109446054172338596646310364536751699362163427864398845355054519672047993976003552610575808226093700702528042402505608334706020735511397774082055604545773447841182100598490144828607145228643305479915715830501759540187683697204599002863602575815203004929162884678904049892314293803041128788103731449648290722839452262138957733400300809044480888382792622644862372549631653964483859606014905825948950044486304114195442984330561456115797102202843718131292952878987933595620317584817535794296622856516497777218576289814468882171061195777232470231610550206708933629504312601720237366248041252882769792253556771951844325925644824915741549889800902179154506396666795020107281103570234877625255542729084584110240067100267298205424379909287939158965381473936745070724306648124324498460167506767470366734377368744865509235107542434583645492851932597364597068307278312131792443718651082556798584100302784159643101610153164626697313918031068474996986972274556883496081465993429696287956499769193906927962330891309732424824496129137961093467626923663716214233933011859223963494829336858656557713885344132994241971110766187340812953925125487273256904391444103542385669506436149759890373553240746977136631846270639754886240546347326476522101224555224415672983552683072302642673277700513258823078515421510016493059885255979930818334050910505971290439044199288099606306135995902775405424569109254431673280246794253331700636713697551462033262657077015782134483189753391748564458746790572168925574522524431162212965728984737018485401065247525387842980366873910820296350647374925828333920246557479668392909482318038108689370832632179615314992059710470692302538143813508460746173475321127009194412844076183004952553602331059081844130209185019514696597092879716224007077211577479184375123679614190749526905622299634617948830838310202551860026794710396119393310789423398587407135235906539389955980399808352325724960697414723764389546492829477914399380500469202119240808023534679083045399475187079908585817649960395897163685991255597820424441660520952868104867209300697727743521944759251815478929805024906443226351804408283639211482521396425860180901887060729844983885291806284926113481901888168260914749059832830968223130586562701027605603549380489594057889200200209293437685796278012515749551880297990847923609680935001345512847782902891632847218240253234973679777651138051380403862510512149899381826098490304167064259383635410866758520568716592318281270571638857035666196207263074150825621402712184805697792288628136682187932698097177801531990658799144145685369871849704221977467315993724800061158069867995139869105331396941236265461433362826529573519930162074971446740069408603532755005995678666160803568518858718572006072511331291802533384390760215629124405493981628616030501339913648627543645942149779853816766208728575927955250668255047372159744127030794604762013729532836904649205087837382326343279812293087889963853956731750760647426252094296720091403394522639046458183987978752803736103511548246248817560776157245318130295148266103755599667524679992812641233917564536169955900856451415227021015164849542205355720986041852443956401334810951758942362267360630705825000079132226827532373575383538833536384687645511178215882987740805947370260956676601036869392279020879480574611163747372854295698931043413685103465658072180739532567157819013124585164130360642706814095399874878662403547090440556931589519523431683942683277394888304224393556630807881035233623459616884413190851657489263727077626109373582025647746855833717867037851751086588602165071764529184670155203300138948800898971897539855068341621827413455125878933564454017366272923811045691230233651292438177379589314580911522687903891997688920987150628625891279968547269945779481489678365420576765441385405350207206631449889272541706693050869280963895389359322002276209543659528877941358504275736469186614565038866625526360902986225270897354825239962384780316380772954573395908733583582012173481523205053704150428158876460686617334626665460987843619589063082666108821733116551325771240172552106688849047744266784363441690903612148867815743421706906245929539607198367972974755334332817631902155497649196278091435824528224946316618513986216486486070718364418381843612288216483072646602275446050243806366667764353846928286169454598489166862680537826360709273995632934583913381018172005680348413086233410617004002261635563223663222675812106659918027223233030680740468276191824342612098449639145250596630585213429102162989145375785482096526251668626091855828934063002857406369280558122972860714691512103098734857861226586945832695767255588015587809637893070948397946338834817576302643030001659173741203829123913585097346772140014741307320825138649658298055297127670315976514813674997198817799100628962923012290202873880951177725610004890429701640946432631136642246570104194601810204471076393611368141258274693380152557480844597344414108700164377431387709289118046820795792031219379788409304751345750094656218289341489356127701160385370008127213308780681019991443403261930232507029950535702713170447466160498299155049938412703597938602632958308679353268981673780633105593224970100956852884856713033672421876838608614271729891843355314266529713257009008405388388674671677238045035067196977858746822209679259120187305274892499014568748874204966741296078081914678457612099914191474913098963971176501708938885972431934973361162996643636840999960933703893876024716889687203838944831234051141810431712227935200700495896015831277956053514272819329914685159830834572627863432490119815553262168022055710173410089420965134040434263214309587606213093542393812342119088731485893621631536718904642448434107725654288179533344940144632944435728768459137844763816838381081218339653517576842098161901160073169406554705988016718197213986045933696719082599977627544564341566252078818979634583997720193971587768654763311055446097240026184201578565587812288208365545131665038128283907744791108688219413330160550587937538325025682034827542612740510907593025945046884409140583848153982645834761684323469940934235885624208430858085409066592430211345463616675898210467076034945091424087846037722089215541021290711248299206654043455686022601580579180384152927644817103818975628443627190397134121407065796417120715087505026191519394691472501052745396948848718144879417226954789512807615685552292556264449095257545386754603646528602751921045420454777016847397477337735786111197418653591580543440300119093591894354170216186228069979410387085128620028435165227279364084870360054221780986989149389276943297544735659479475072651787293216378980393601090309860359308665793560321699339052372884287368345129687954115387898954889921676591406316497298620912431145056887486520910759146199249197212071574148789334021809133867502495659307557548022201664257407450298691292285487833314354777383861738569754619376990948805999064898188988328177684116860896100300455094848676645072320211921078279244159320311719808960262178028369571980558323293027346251331343189785137096323146482065038694128447497663318931819017116172400474132755257191765227553254858846076857873270146330653158636431254163950674805219679828552378304157459551247228145492867386699732845282849979079194263209418789841926351517688476720894717215899283865161384243569803665424875595825929157565685494040619280862850048003762112288703247261832346469524390892417879637056279392484303289848278941017941448086066692225227706245483848322821262073695359706733567772419043470517903900300613672699678509561486884095384733782777016541325103885392451709280952584164830984429194109626594272730005735209783633210889347219417504283227209406132263848250537348457403175461800498999670787080152881430984531181039011255548902729073316595300317519800441972764138519521472282609149419379449844498774321047182667235143403041691542998375625245297038104901893474172104465430357991769688777991928930346147633647516177944043165940109519566163609231808246923795600329238628428717109419486610121665186993536233089141806272880620211472980942840158252044664343079754766699178155094116976076909168543642050047426313384713857158566678962922738102773440530592026760920375672823765200635970401715198007871079484704195915592170073990370330766697148458481133788137659860514357299806535438727863180002031763497800846252708592255329891483505113019183274350833487323230740156942336540630438704426132587398902998511375543726236080289115555575592050601625938472774337681902168299856549372451257226350849208680853228122149436202596491827181368851034539143055306053817829422326966680451106401650768586965282891741414005119461225841108444268061578699353060729702683439970377093200651048083311905762210202012744708821842167523285439390491910861201973743402212419976332859342506227829096465551527377791146915705162975627641395637513793273640424979259656885578940563774838996773852105827559653468446577945581583280972991666095171689516138866956051302308722502264818869433541084190591165450323987479332623435779728638879954431633671350053272399512233554892489595308258110699246748187078523954534565878922516778812848794225790376832481985522268724662490119649901399026761342864236320307845811764542142776772344518921353084434148706504253566756672175554676892657537030588906765737245660312453217019094754440879599470587961977453981985730648234463071519843401953236538566487490737492939612230375960976285381502318468659546857269802063449799339285252934047573873575379345425851568639917998369330071697533512119106932084793796737585257925328878744931769518863899455379699960791264468427205498469339002794842836480119216262340855429386651445880286646497581642578555389717002347755031216080731744302075063000279934460199669294309304186817412284968091287454523699317280798638700859379305216432313738163640523493338258795996544768322217013691975227868666099476032603949772085591542916267672658856488681655112421114665466096626807583739618472483687233004289534149917052078562568216448772868957159832019619130380359439305513679190142111767686727411662584829955523920396431692635245431154203958789666061625990557867211807129207725421650368972095385859844801982450713786536480571198384212839902082726714917925928826459304217810818886062306005537064275030511825926211100769015449221185394615957095093389003857916791938149348084723245900818686545261109144816733498697740880541992322899190746467290975974575070961411150195848288457045171199471352390454101909415289461387299256458440462674232818990475421399885007502019329977663959581958902556586457535464950084423247694758747318054691547365503453068293339020042097794559083645652155683421333354392026428852870109991790821244471975671383191006414603531629591334618508186144446700430728263750160648584978378818182429523268801194804273246331937754961167119483917487562224107572468314396120730349567421974366449606348695079984101342515412620523813346897919090507605095980745895276926299775880036888293052649627648586280819205096377413208142585219570749545296278170924343652801717037955332978698771666060028474322778027394028842178504390544537514286938829135660030759549846930209865074104745253871163480447681125023246191556110743818848325125576021096525363692595799626217191177214983781792191425614260610708099885083172888756417584880826560091143768201497603497639357162119002736734256972251689389510985094743882883782573545678159028750252230834947987595389140095957561447384446492311293505757874414503091959254048168011305097136645126647870196242684149089812013730923526245800967070791282404607827589937306466661647688289537977078850672536670911174952535844901166675134385058317503664763001392227343405549126369638561851316392651587098524049854919493016785855052620705797030713035062742729824696286535295372582100915352378661690316150672930041934874687857536692863582682637176691916057440902323387659791609742475844518590155065572827813630282700527802654459053036083965594502224915719172667476554586464298401037685782969119837225291875721030499980683327473542945655955236538300731046167337811875053672385894173446530968551838336783175399408626289290393232866219924787244474051371524400280800396675997678264184846470777444924902164525955711943800079369047253480629426087942532104576481249600496758460674841756348484734271627310729372465494797037632552640783133128892384030311291672989840876588581951224438393903616285323195739141786521464081604148407665115685569409140607511086897995904242242357567009062052732822843230249178024617658220486244968041212893898547158020124090737460234302896578908602623641101490539552593419864401537040851836831936658942097397705190177252135265346760124180527596755780392179852958159403454605442721458733065426554861118190461468224048471249648163171795022431883175095921727377324226427983759522069251286448551268854110601839866111390581727909177745485143346270105391604226695110847617984085156517490851508776803214933980438546420176281298535197858045272599386429208398920872899479459503613255367670878379838893853364823976238700554909666441350649306812752521385379661495889198627442128347521209887104486307048863600895030257462828418403012119714942188263791407264098004663804184779387740752479408870487861507882599456711214039620120875534831857007172987889065305644524817103933241561409235194740433145074953720518103669621739129963906905285136971243742220328112240055001744362721937829351766262902226906953991649997930278444640372215563285270495658955063567741708255575421964671750364283602150685673399790204408041136579152190102810431195235511214117177753998501723941088302863943823797367078885037766288866548509525084960629176630223554514489692130909298610742267835784916749404824215986370820820101012501922454437270639734844022904312949315845291970885511529717772263640319880229113229306727283094955554560759589156156971976348281040556936658779158277650453596104451543264616838906073080916539378942138165281857547948501098359722397642057248581320243412418602816514756418145308172050307240410703414847487978201345222025821617297869291540335683541066615070447891048028900177626600466723733806949586812707936158195777490386293522342349431347207532455526804564027409192082171906383091749246721224051134620856451518817384462930541076391319885621964607354888754763334260731157822802466719063087395386845685701029977360236471265961906532701614639866788921616412200516860938557752514776717121544315995020517618591617199864419169886812296320140835676995288393762703350672165023648401118918744189852606082519993062354569010209920453838453542373536702364517180942365170624308616998422093848845445978394081525329573000023498552877444558682248019047077501005296987508858617631929900870115930394363045443223493529291653938117714683894816052008207586172243752839494009396500822125186584484942176919179786473870473177762101467729002670186481916884575110083738946132964227974878526312319054496053852170554664052256444189262754453677881979273747063335584152092615269236657540804579618021833154221312535144248911489449407450547830490951511333243153427126978666968520008539823708577087451703697613158408382125099045913627137269391563412379950446430830611413021046264625023204494970886452767328591659937421628316878133514086753943612931265120479910489410533754287162637906848595155101834784756767516049871051965483366297513777332795163256312474967502969214390784301175197095806714129419708064771192385631275103334743972440122621328592300312394049443406614750751576284138728500732960389912320337044077582805729333897307131883452783803760894107888172594117442312596609984315588590684537062013202090451199686000140827367407796550839846344846024114741794351740644860904480552496627066484751653979698303062698845225755582844856739299586777167228378659071603990593291241546088655302543672448988419800965975816299794742586400005440740378937302501700942601303401818287966238139923158666755977639723202576514870328447499966661479793152858066045931072714154251527248542784502917475377309335807577237664341217073397345600181835282294576843649218179661639350834152715141616639632694488171624500291539879010057055892420712858874610754499435079024941902017822490254152710199042846946037159766056423339709313783712125738467029667407177843755061452923415697613311403602607857497339453798944846938530859694433684589563343132301322937985188903167989125492025595113282889835513535058791722907361183386935454082769198200659603396424965102159749996491871028806781452253975098129114637677187198690552636523863614265062126719317183279743936483652061102175136526710210229358296865968539455504813721200848447616269063535379641032662056605726419295841144807801756693945289939943873017464386756394971259674294293578624355735368473546713339474721661775396745889867982701839745589182149026060670392723034500024653366085402490826915468542569840056266744195461533652084230201025316125372984312226082905799578315240280622493301043243640285837270365483533267987608113263571736195375820811512927874845043130719803162386677454180539899199631334912802773618316917245830645489057348926618002450399942742084113516422707649816761433934746303457191018640422406412275576831493032203150889283680682670891025189043433497150849054474540189370185608910143027080968009542287900761535371348701917266811160310585619578886226619247268600950028577750414611198963336251837178853510072925135497595233578933958525649129621814136774091445472860820456508092857090909964896793746013311041174492802386880681279414653797910180818248539967117145764510486369762418536355772405224090278692805166153380432106923432673809645063859174123245722468381274605015026806664889770844685110758734846619471492771053876111956110329352984061281406155766088144846936218156813820592855236110300818537916658334906888302176948973340477131059169062828170078848664136725101661081265564441730072035177219065297172032757296847277174126857658508418300972794880767027221501510573609470592072448319864326988705711902565599226041778824355273480753683809307893088573528296110734078650652551621658860409189201786160843312495345721565885753123788164557859899921002033518990179018938536121465822640222954742178854212766336180644287509730997682529466403545230277717310092926166377228284568160550145299433117442041385628808342067428964976552425506537405283067319327273984955518251232982499959273047261894107548357456586199405733177726946033149725908285457819848439772301815589789514568755009377432363675339452910457390441493611634851419600069187909713133742160971381269910231005469529886816639441798992516943914305198915668838672511625739181898383755508583119451910452961030170825195656168519603453954011299778946610963217061451505274500787809409704411146484307851337663291931940178195692029276086243372120858830677622950582706268697721691719290334467676828749422598275182743811605465191137627034167708105320952481557615767170128217631512571829903184514961288505468824791572562139927262537409372127890436179935990902387291235059861997242277712067392563175931506980687500195070961549225318307282373005231510645277499515838281564847385825157358002783983142227299636628922850600578436859654361294331194161233826035261014415746500395569102559651930566159885179138973557042870376332329019324568846779137211640466651369596822251012166136223947619138278587844496869172289383386739705571303842441661047581356249400776747112063748933190980315042305234682847962219217576444778878711959190170840337494411871280114623353598659264062985003055696501400123541277437237019997832666617380184273109900277918510725530565939585540710905281598158613534236140040080583172565939909449594298235645284913011392107817924568718626320042435728624314641846598417934927180537772612293360483153022953088984479381732750498212157228794999740408768144144178659653722707479525429576966470819766625274284288892681936338025696517692619937571903883619236715102669710667910728210618412970162120402278929835558869655702500388160446537972145355091332847255766935023476430387865003444985305431685006028815742741248682438092085135634120074104223079949088874832432193748478628577407798463720261732066973250226497809806294246938467661441785118263877410280397055452657146591005721688827775406231842208523424696838002288700418083232560205290426351006914673929699992318651627950009153584740240166295778478241671757463036254172341541963168390864396807199266267724278627671225919637843958244570621235178108858497446208234721695440535802975412203902227267388160388087474582136950831976928686529566089076321332085396503632360971160934585701641170364798383681650953046479990703677446034200594318239343584655273250537272931093206309081261485815661548270239770647910743502591978997358236153949613499875094348718042202161402864925095966355635341370730620258885169343309950549820967041626052603264817977380377495939100217999577305991936831468405157133088967930466703512464866560700200448292570612697739540685325517230846156098994896843890075835558072278610468860001365437574803218387149636942562365366540276544084673276407704911516091488913160227224269005923891565252650549111487227556575693882815933275930073655803830557958654641691313310399054569046073925735811863515173205311918154624949688915556912818824358944338512500421825564942223402146643583560029390799088805228541341251744165179982425473796268508672294671882787421057545615505144367471649064827670506694219879220922766337343660746634811750171387700660495836795199165311045046085138847439110481904986567526916583183950498231368861676199393709465078522242079119985939668916736420357419413286402609703529047158281750314640871411391337534288448077853017195073896429694202831422037020502804313784414948557592728183063849761031267784257322469487953978537228219891739800435358950302353995950292978621380182730337888154345500730953173790952408892524516207411005759217570674125351653020153223289647167203784625438705531481455799483408189047591290473937692037654244121390378884689595723534943456583740276193093087951173426973027853521336610435870032509123415663472163232971528064013612845897210521758388199539888543903866265347878593256398991800660916331381491854766907312373291001090328805134892861913272650081434468344580203176741298437874666937116277733331377618404957204032823471063966144459859555345448621327182170374826208488175769588793550143800551780170055832102947750708441877556813763882722458496334426805628485561225320140284851103860396033848777719243808136157750941509502565532134622434114565923852332132512421646336777318352320465162291346772565278829599481672145526365596081826514226812649619679513012301983857509554914074032171688559764722072142525147994725557608978081600223846539852276684133750338950463176146305113826105843204714495390658825506503620665600312976565232212502308680109526882366778408449424615240835126926055303906991033171484986474374692666361896592020332369374556797285395332348368310498233361156222544102436040306992752311670059562928500166025880624310218830137507248628157676664878177575981001114743299660061734011062815138989725609871278933679017022722570744491016048971806492659593299527549240614920046120865418115818711528824005296453213008129219240772339938853400829092719535440602756000505196186566068665470940323358482276165572849854342420986508210599555476934921487233702886820575486879602627450424276270112557646157674942994097918355137834323783452806333188989684201580290232792326462138123788483199961901964339407749349863656855709093521531403706097141808234580702277556635075117190599859554582274522461649772032243065314426411775088472272956233035800288386199933458309967351263870490879519281157415457290860676199151233644312531777364005873662437129367621341491100855429289267127010619406102414435186852280553638842493056103949560711852864537673955480048456264721596014960909308773267981240139300774939298722709343407365155828642445475325791060935014265026461774111989006585695409478103082497174016379198375160915615033018391357855574185294606020881708084773533948235642832027774409406078921623669947309000641304798937146302845696710468432281632829991830920939836126902538025630396627265360662312387312514687501893024619288496602568078577226157462998537231277778355896218996736572395901586662154529676643530737838293152549067446504208239903134432558544734667707352370431812228108085355810450342618728735889512283821258177351243771965697430514056975316880494365088532677533091144108761493130511001223354697143732027900484466513306539703521190037517715132008402565643310208722205369100283600217362442622657188018570254930979287438051249294574033527852056475519051109799659845288686794829032540030722158605750530910617388607655103838063797742211218111520378976681457775513080695621227574907158220688464780997692598016285989062282879873082174933968924996162561733014531715689522608812965521651921391776803545131458346759069563627395877401181359021483434550058229305008922152782448694688551800650266494486433453317746689070200746085295451109623743469286438714175494322415537829944910229551157909578937521091795855264437927117849355066889944889276948254572054401671007375432414416837657184664077156197229435820868475902422892565031838799186460949593405890532258050643069040385328842509325484582319808896400504840287035944801919114160567830450138131702829428534602503969834139778111885668963404641415274212988963781050680230613787401240733949441226905761011640576982125220289839766275775234823780357749593467752106661427035353170545456747493924400424887429839860687570861485927579424527782515993491963601789486679900443326238783094634874742640186598796182448853632087895691266734738388044157334875183029532046669573161319281516080100901753798814588666654610382543953134276763700852199764953637769381390087501683488079109253952036426714309122040462598741654734161849982433300931981311785516192575230470766523539671614445892329399307818170565095272198252345829952715505446961072269228521674142399687328700630321929626291728409381927760775793447820644870426862630137504863406762694492180129699079680106744061444741894278942349071216802130696916473721530654687232887246120288903666673654336521888737810997894398528030734629594802756895972998184505798618884809853452893639867554063943298652856787030208205523680884089082661442849279899171406639487631883904705598738404649327474516623323685281760727108742409753893776056323499337415514103046604592595672188225306550991673951886002916511402042497468849869388007561528130291200855015760139781970507072281573463879113247819692672953511866925081809642549106555691227788152243268480407897629806602058956231920821037803942651434885134156490198403342762968927492224809472115731894465084075060226954831982223600535470322570002409397630679828977980161586281444203146427544454500075046183153598592209207568541168309206167211830682909866127381251760029875212768065596094068990695125991321913953705533008778516276939685851447504666874798138859325588144737911678093702582835271987820175310510240250632244471397087082371972003876263043346427949847093887643253717288738351103456906596425396050944789309725298053328631170754951128174974026181779582125524700165950638411642121155199716968731633816721040073978236031673499606713183093410585315753258575259461134650187972964315229766042825111903177472088068895689732026577455116180348591629214731136706817444238966153139255513663736919571153849309679064324445642749571668174142540094896756750863261124184758039663500898019777215651702702166857994990018415157259419349991705584152225286878278764486844413321888770733032368869453011288640762951706461658675680093319562383288212647977166655499888957312801102471409722785172687645472447905443970186210748377358379308916264215273204711488011535469813317009163815835938650073071713720220246179901513858924307817002968172034204007446345356298185795690835656698588363275146796182339256623467564504626696886120878171233155528345763720981898532804547595226235261035655517821969950826701189302476293191613151869987641036269018777843724627536259518418202629244975389496069863849394171805764253696308514714168855240608614379419698658340845905893062960454279189895044067235432627888028555920361016055592122867755723278769883796776979735269798760341505870536819844191591378797571726441055302610434342500466868990726417453481063066412865622636305643251034755137285845426834307022980835213694461433728365806705434510843234200090765105010589038089798608476159155158849417507612740244432815611221481322833893205586505881302751809993839842222633542260547209357824041734387283878479513373051925356297305213916205386440953789742734783465394740317129696509066399103492420639118557302158520929871983688655682286945719303909075080646676222066592451195310801147832519441559190114546398396900514637607694267750636895729576194923909808607584903375787050872729356628490161814637934032065251441258605096034197989703388575782577070595106869921267919251164931879396983130613425709301827808984133276979395560496262097443692366365024308852304997086647719695752427991134154773157122282268532213050848722103816004465388221232095905339856280379333318668537015246465419731344925549701817958643475050986181804180447805064907597842479068553645288915831465078488802136699004279426957496002530517575787651732930987697751480685255898049161953972317940890123183326669268910913084867447528569065264077070295842907418947320235919934584444301081127626854039903221759121307140157366215740995470321933809994252633388801197227350413501061442583095241463656993468335373727020092768223523732171641900517132393337363772666706081681499034640406850246970399093390389887341515145495565173217145115383810746937680930957805333891918450590473556219709505644635355571887096141184633248779557572804093296356014675892187312293695245569604626452515062854678909555479121256323719358626674841320977198256790034768929239129022619567371293133646669527247830384589781970943961223444988187267408610679957472022161694236613449960277892968861871856813142451300328464827742305320040446233337181237242396199226786371602481396978875070139016416933060666678237464655526906613305044768050138061335919138607389497062149703907192368768407571972037517715771999220884814331483612689038332059599321124831622618706477914535557783569035706695851209508146506279196098247829848131549441485760052078227360772212253156034471237398607512802717857259082660774086432188005765533961788777362007970147926125103544520652764760410142309574853247617567478870876466769886744018327496901589102749210586191115630667282157941586747224257235231561437629053156098759306591496102219332155570664046036358435421251063288439597731611384943901857781556369710194689068960755601374788575645228913364929761492852381150193998632574918519957558440689148602198302183765440078318232966456296378490968561682815204043324129007600684098758088063702421741728458972658059345878667838672507977744184882614534750315550197651028618862356605099091884651936102960740353625407413918411215954490669155455339651352617978911482902428626226173304770129342775786628726174367442694123983869474124401643094551775965971967900284060461291307701867109980092671863849869257430843206384377596376405341880076288557813637804839832319911787607798494395574596419240406958864796542322761159548649799182522289146141599969895449444124738897460995382685681943418242277792289103859923956641541687978499724853660321344063101180805526118669011711182765591475868645853874642915108880211871871056026432567984091222953719750351722168375279863653698257660005535801181013478732432525882963668095757960503749832123535692394811010096504899631043281848275319266020423017747758014604774183624621020232121424458492092728840515695456873502153856506135610800427224812124945674744889795108807402876052117565465113947667646398427496700729754635949810418073433494572493955225628706680310280286112667148254074588088249143513830698464089133387278930406195671010768947708600041455705678125705868850064814744979365658475575712468975894910819516703321953150821206609106754199225069062273999731253623108080850714244970097411410167255784607754766767278627380825475431453003151780163000038950249232111444994534824684900368642310011903903493142978498639084546542372616443638092588183267354457751570335354703750846288444816784997511805468898632659652253626464072720332050212395469315006648127639479574357148977801204428838082456909569554054992159374150081203022559247912475757608501092874786233441077958686772964653547642779526400532467827779417545725637373257277633846769066234217683988482948034732500299767949273044556688245853514508543109313421274244082896861301401298442932789501766796126292998124732778985534380591012788856094473409725451429650025001784750625718434706081949813462223217111113235374084960508951386551899146013961206825220858375610655566002243393060049924578288790386652725549634168521950871718678531569684905941443574340082506029283152896171934132568463632507776110735806748043038367329655886385839171046150923247157074759025828110638973460553917308821314160645706866757178571311539827731693886702840397278882448489139703501960520250544736754033946169044003387935891077955809803737755153225790944972366473981112669137219467276205023389241966530760390846340185434153354798694068501185975944063350166156736387811144375341086440659787221384239562064012950844745108512483793387480110595800596866873777055383975346440517814449252773984001644945592287295647262462680352340080705630122315634517336527230218564956970055578328233600274601997507376659047416335552844628524535141754053677337629760023859928625735443801299813427033537580344140310387579271178116108403092942078528156068410088980043589823883231826929328352470498740000318065514550388585553121030343189964289708106469710760275626149865576884386935734780294510079868589785680812145863124513076989693286548531452585478829333977219260659838652016867163163325096052664963666061624508875060227227314545097197332017729815895363664676622835687787985326830656537039107205698531330839831817655481544441923413207098849731581232031858936222858443874202982889908628150181216386460001289295018542033973344244853946848186083648517261627903119655176256850198506566122952255835880739915274926249851011843501302692002992373119331086447754970962947866146898613642559408965122323169488439787886276498826256428275993731764862662844008200241281020548461864203421285387432598782790193334998489840927445258664070815168446577441587029513577639068885618169888734222974883625860753737176779265804882020609686166997431650236525311086034006258558318760256085169420003075619745659169774617322582099981142011112935709039377228164260412962669488486955681570457236775748515271178702895643354586512061412212003859426708351067872395367344715100704286303755929480240110756904998790400737260528912195265275274840946061900710248695965585096086722767136981443468577552224328031140065269450494161099035318640257653569218518174403334493630026401666153788171418436952682722569548413561583582109650455636708822684746235122427815730372949457217822077006162969730228633318434361926570472456032434731495279546231026878020338348003434508981799602759232633876797430092975438795636976409800568519890985022479215886072162583926749092185422353920928390420962761014924676976834947797771177164710683573390036098639603875559857607767873657563786180091575119944139250371346470710382599869810644037159132328384890611281693633374728193192802349374654425391228450707952965937453215112437224304656596581065595221820331119316520765942697915549157508856780170264269563154755194580376727394470244192768156486601668677813637669967844609680441761843984603692185338357471778074002104681583110000415578389638767842661314411464828221118876626010855838908321513172849923335159183710906713037309476705846737182418380334223703042209255709894086796687815222216320524961214232628404317710759857393603074702159871118158865420269651420386476393086627158550967865073251649152259504943120814725213665363616197374156853718838385668374332278350494607832757058476905488133081650371645175043056707146461312740491990787210879270180313334478294067810911928370393019689868071591689588029957709232462867894572240016105906531316182053758651921752903861617287199384323501004403648633586811727033438582262961856353559759155161084570340678458679852264707955184100699675489396535928578333649881888710961585954502711686336480547282154596314068914538293565040338288550559085309189228040477492268936814766995341778178231521690353635541667164568763263353091923428349986661715643722457981221763578058334546067266010719711918229260077960869735296091847481271368705392006169509467788100292175592612384216992062311103472654804555909214216760926441515815370998285034299676888101437621557981652663359025860379054104159189084505051467652827201428456217088208270447276961113412468972174947532865132761874622914977690223768349504166861356945936629856405217008165380965902329201122813513874142266432025189734419703518615688102674471850510382505347579656030327392060131610863073482839464869320121356516748424318130839014439670914111361603641180512643447026803247326141739060631584925539481950953298348152873688370562752665136897909803402883834597897024934684428390454019230137914400819866300806883395832149702073182652138749662097132157592853060646452006151677522066289249285983475872288608352569683239405157773615403785198024376392260436151558835848798456541312062904376983885721244206562174616571816247030388603691376815992086597619793604130416047941614263081603596233587858430541839750022488890199757947354054821610228053228652314486920577837131761692976209819589976129898118900188407036077145599404395996562306420424664437965253585965824921563340419428264914676550289133517837210790573107878082928577159025239569656743562248963668541986705048567944883034046618835461493562651692317130755064745945341179216138719327321709408279388419843276570685269797044117112266275958946730207063038148969743924482239375047847262325869667362523688515853917008880098599175073564320488472749788533512813410979457074922216018761709976112319468911734887918361183459066528868293408739687647236168861070694260562945285688935974611352092748344764984636208045359355135237689198994668861767520909296937690075747506227068253906894372269667924579804466151779341465135731245271400044075751253530928140982168895627886730931100616703791488100941384302920214628482676206873930763066607112004350645969403418450711462159339837504101384638189257184611533893668766329507702316817869598498006344216319655582905514392700641627305338678323957052801079659554198499580883687651536993784432895361020669394403136623067639210349835151656103448803127830691139308352841282043712668643242933172304861701785939586775630503623145148249909232178433100040708465632492502085111304412777209707024172437185843378274414183608530410536012903562703383046917975997565526752395884903211783105912287739410247944057432591234706517155305553814038359899934056164509035827667969337205925764620756472483616633863354081682010054842400048326317935104319431389818828880824865138335797204789271332058348834974938843728806109079739879622669479609257280443937387204125755655188040781598470113959987010342258293871746901129393422460569765002489090834753754158165894028598938025668982851210773998910817559553081441957202332299055744704110829844563818120258115692880467852588599169886921114854214873881779780560478076111988112068005858991326132113712485190844405491624590578238758394839952329458025411309324849354026318941638014218907678705107944208028053254410519666120764052996113580286588522021956711863079062824276416142451641225605950837149424449439886703791244543130394142024300668046411431417337353563382859607094622422343416954257734587546642906251602650718741925452635028090814068883740968100484184185875363418749619318881424922805703327334571262372453082133270230850816246321624564308000758164048276961059685250908661301116468444743769725444010227398239103955157446751620760982953900834068056899004512393717180609857629057338854675249221798088142348416286212939376164452515469005033944262015541327348414559791367020106199197279718584307076764732433673816770009409223716694708050932399012734930682345225021552579300221774781491068474680519168623950458103572031547201271391767137000789138492005832464543596110086255415351286222206874715115860314532191033266296824313675349877557753284077741556749411495053367945548448885733614046744745747676531207404958540123598076781393575954482392256051087917328640735901408159327725940890938443012159414038930828009974526199150066102734171938515871270715464548774129383504927147694167695975990363496258957337592977392608249716717695461396034352359803796391763553946222035898136896163780933180237721261388916026927038185972631151381179507793134363621802021205857121719608043081437765734296411891166366201021557110514763569142015902443655263572237045989850551401000159684987477762481809474136842240861923841031477494818881416059745068338477788139203213377409093983954389108372638388316334781072084380781523254708742523052058283489477410676990521551201936643212893915322973523594137541806614465511872184033875402365100390327746233855125376280495375065597353716799207735966139807023219321537287601018560506409892643592032143995199586315758800002812713272426064209496444663621590563817830784291497815298233154832611813107845721706454710733111594089106052303766281392663438510281345423674558536973245459308916817964484573586348484431838256515668309200733655357242085499450423256951336909842797115828337360056229143811795606920752010743454272792080677693440947553054518874834059990043769277921038495698432453974403524193623466452270793560850118930775559730688411032750715730939529439494529794197611889675981720767457664021162830038480008859766397659107445697828086279829731005849502510060417494820583309055665795967455780436842553961132615022877873772256764299472979170826872204646650277005313522327907363735052093449429716497290163978560975881128346738993307756327081374649803301143562292712424010747707700559859223213573423667018898538740607324340806478860782380300825367577640485593543176737959014508651746383972978157153839242719067781447404556107861400389787875966828505322660090630728656944327061050212166738240362890618442344026383228190105576154283007255951687135180273614193842962080724517756920275279112069549948204489671430175181040209685659040450229001014735040701191818650988500049099308127683350507772026313526596968884405218585846873563394289216959699431457373412477610188575088176588506507708780952576410309945066956729839637195235816800950143251839118039149342155469702790202985579389876810268266545290517601687091861418883448664417812898455865378036985698765518468027780501376269787448365947430147388329341920639105850974924236241886013980484860127344699269194885432758563483059235452750766887328106271455460736551938639364691844195271338088708605952232360635577045357097161638424948762411659790497540742278574338109779322977804936010239175862727411689037376062047625268743428771527828641584345136591683637274931586281130784008879825573580025075701165441972460675476580480037242700573904424407535596642891495202358400315001433408529332086611912139212943953234054625474873412033543660086653962401618353880708536625879422114773671247280234587126914534430891583279272123302435141071449392498640094026663044020796947498253248131151440277662619355303706945973595153206869844442952945107579023652153032790058349940668496971602527024366500082550158782616034398716842826978507649051413861827501878633534042545426247409533573091697444137463790528570911321078460723213215365558827832338428734251867715407462070008908919728550836711203582189441924209725674100203535693606094196873652194429238302340531907527620559045943092054410133834394555108613489933862499310938973888399137276980961744259492511246606617479941591976623018184131353346957096126978257162076602406136446267258325966957936226567573310696931280446113843061322170412930172102190159401887834507629437435923612770409917377337694511603960411558974441193518146896224500016489691174636333406595567737095689623645501524397358943565366791562623434064107939550728703911490012268457262960972201537080073486608342731131202755131308759971391073664978725607670514868114065746163688455755506868765821253644809610011770745871166641638499650927701161217896059400138246654019099516839381253716990242671200573025141441666872905453259653669174966681345117212462648370833735310162126280848681959755839532235234727567001461681560581993485176555166409920512144002948796707152666579982353464067602424043704340095135633151124765404152936920987737351719081526646942750241472722148147215041125779567364036641163717082581939443796327239066174832463194686710031700869668718841623175176780465177720587753374066164918576254944363696513877871952227142259388139989535649617807244245852722878434952622255492518299416902105455589489667148134038136633536962313402574032885423337026087338815785791291284699238686036535679563074926366363287062976007940332638662334164737093410078878891480119422013673827367797037565821729195380416377034307329484044824076763056658933150153965443171749031569914112784646041820848581828965502556541081641592682491906086954983557678979082160901989079966016287656669410065827883596224985715307842523979224393427545210983406425974216253057043090897365112215751520930527087844944540543458421307047107787211828346692216173753409058955949798579905617845135119866320583422674423751669907766447082770828983506845005493296075690507389565669723074203936580979018000784513123051737334785225314624103849926001201987174184688206555022574249865045572625820141845435282072440204843360459096711425543094376265861762435530768607322875355948099519937192290144663372528003847298467105625782624603653231218082056424617179267616302302615686601303096237798916925100170816448691158286848022707446595888301250151658647715370371008907821631574599154780000980503345155404846071174994582594564755650360330580847446396001271499634686026073163696801640209817278599583027987708421667015552400728567603354867403784517635236863501041837780996710732986626852761273225594612392222095349510498524973977286364474137251019616902981986462813522682398250385736667533182812849733751760133578698942137149830072333777223976051104008230112086121720691778362606450531804249839728781229009879138133175374635083969830955868018014606762456930333873794914158011994764512020534124916078127354189588978757492272361888709538678444272569935164782630367601150159769133899644762494039956105904095138688152133825235594020625464841931939633160593064280727819889914293304465265711941091108199580001823851245944093875278824872851547980711562019742783054586214613523839050641263803716978762153951343856394905271019952433386703355870197658015638522466366991313462632609543442382070207476172521609881834052607108043091972291703692511989978424867195141504099771474735790047518499761353631052946322970148154070085396111532104544059213593382604918205600036798663136102137110155864696056878649898728352938501552061795502862918404514044428282109977875444917600299733129602969948411057949706275456412961998376200823921114753709871883680935547485097569599766419926634501538459678831271821954272568484387445559980648376992131997745838553288057023082876707216990282206599706541302455167557549564283224955639409991454688098595822783840760087667950373847610010714180242744331587922771951415618401553358912806882404119181322944129961955522192295526955877725184875142603828181043539759818519095468808461021377559278477884405968201135079011086193038530402269418503000819647413322297496815711277184159929592103087645211325530872206224830915787658263576145659891539825624838030505977313130416737468602353874560470197419410938735817782201076615006154543053301525220108143664128767271114783063632177254980896379727765019553043697019512782042408866417652397110362849355221910054158815292611441407037993356238346888251375988932005093772474872986184370648290785139133384747647947938134900756553221108218859629810818615443501033341161333808674753372585120814295526195942039505955454154557041983864697878622892213379586457957502274126197681511258812698824609561090377526830293476203307226342315686937860459445084291117481897139986006228563057976266236683130697285801418599511214761782138906135122296275227930351849592540973292187428764461054854929504874903767424372562260229957725474345860880130759760066458859444741912453672643384309254032265580520629489442262203187579508081309199732714720100989545026100972356761606675708472392127657007781555954643683222393946299187595404004249922346202846726853958715538512065511233386092597852217996168041378845450788616645983330784070224978952689160625439808234757090981294400311217468639782079937090329635736511235626970587692669230114997854216480937426547061077861589139932774050381903952046312288824030641322291922245051824930207571384033279264369335301004075406109642678986710486310302484652395625663153728146104295664018215485404576231111376742106550240081316198879927426824294523427042053989087472952394970363600738365337150335661491016247790867205304490855369581658707759278948068037279688527121641178778326672545353239294724344336727909416790875056042501373105234636204797562009392829222757538394892219851451812602004886057673759898436014541479171375500725420392392803657590168724463947589436385941174193108195299646993964687183632971521162888618759679709825126828633873506105873812170189154335038197667429749861278405119651216183493932968897024152491358382337338586277876125843985703202864751315621682732828317833339803541153919401102120743250155182741763652450674467521572543015343635871001474633112632099162470636776524504876876364302523492161867453377703878178869730938775990212896801509370088666003620973169129396815357106561835161813473391554112622143572275094069612872641978431488120830662158742684215111305272180847313185245433290079233068927891780383951911116637438635563922110188104654579486542363418468025283544111214154126613343115617703787492133197254233448886233915506009560621590980212743976798538971736097512329433981547735575744426351160817981741645359743216982846674652618990833999781908472492744414230577588880934395088492415137549839742314142852831717611861764871335994022588844589286900225272606958082708440165704788912347406168433750092662833121940483694159817646606267240436932010443168719021965929703496007402382906000122636502382574877203926336136053515949781823851634414913331280753197603305725758674944698195337971469535366627046057859557905387671716185782098765107789476462414837789210885960051403156007756317528078466642764893078658175419105338515772841771262456729508450269090072544059247219571302275542635875942775284925278382073827314482643382986808123626992501663523425357263654541387788257224670458178497749587086473699767092383121929472504775172377006879371734042933829731760792197586916070754082839647425595932452186418715157574660624944278979158103516031085014854286273644377336291268251960548820646915937868548026690641945923695918115596158050509894104503284347737473000991506709811449305992070482989237553544748664455033414507221524131773237283698576003546564926675470888955814498393712313540830122084026118138818188116571741354533534823240379270804589242913683043900542526250580966202366737559033681393408502140865292455855987091342464950378561041807231418076358753766029906664478487766956672177450731175042165409754241956037280748660529862232445852146658694276087709939274712037960262490914695114973529138919143241925540354503390490170790311472395012184803863924671444887492671364620593491629568795163013291715598491200139525530561807639335747852026650026656103095146879141127242071162660891237991728350532078535551021836120849435920823064894995701747501693912331651710010972013352122811934262309542365160793284910711919644647868634615765286286852401334567222054826451920363451923629427935774165423756280027802439967348280882815680608777953799338170939461336808187643484340491106192286488488332142069489643856731147534563330603796769949443824786300462640070448785458637107395037848726677009299847663219548404571434456324740143120921741978210235226462887172811998567642047267094921171881079303152800317037627666068978508461393150599617502859923957526511999141292820827105993861304594622319707987845954109103956141723461404971072042635333095684475813759465749773656705226033219664357851646060090612228880418693407919909327787725034809497009067847128785972779864462030335004522753803728509876794312749125410636100953839550059723586517680170109542857606756838396918722713596145599197590152755825513587908453550179496481492417929435418228261337934410721836060772331906896833057034861759476180466774707372390836211724474590733131316215399732634614236434349849449086724222003121852520592708826733717408749228486381626689113796386201192306064472793729155447274305021786005100753946655692651303862047689140155069757546560239792287175431612312914727448004589468755211119408626883545808501434646993948659071185665104758069812013646921947105615563714793555844118238797600501026313422202575983125018418390368673080468162048283067970879865779189728650822311528348889364172979958801842800348463682595594011523429072000047579110532969923792651930979157448114442595068187109481381346417088137642016675673311758415586022004632021025732470128214348592836717624121988294885671586027554952315851048516376422792726025558288580242036695228275519489038245698901377428317110163752685342652607072601803147779380803244557440602846599896247028826385860063203459901731843887003743938750210678508544627392750171887342355055525202124907799674319430202208689687780307627709342763943136845931486472974911607960162215400232934144389080908224963620556116157629753483145771247388326268154627149032059919541865566167327902986129415442624827190457961872865412171064576507820936804859167609760770566877614910890327556357924995864327762773532693050663172987868085603538297060214641007283606306276993702551891162027931069397714154973025832409710218887665366088966225666511357259746330929433168161671883688121358861204671098341250300141842532041234545033766714193577911125195780392987884777289024038657770549725601731123229313663266720937004607395570117871633005066025453593025746221007452495473936576217660919385871822243387331066187160796240234949161058480455807633244357848261875864972070680102711077600473962528815790827847149718581982778147568008740205137685107328232391106120912237100580731938849379153210548296910338109317591033365965111853315061586197709114145433425349274639031513735805931453665481271663205937875470491671494104473041875400436108228836345192979929542382056926476443088633590080838755819723116332105239978057552159794351437613974933172962196545493509004168993863887556461453937182034278678521393535626070515461973723586759863132129820035226636735414844279194458887978354941516714350383212714900659486841895312062768603229982108063413464236493831940440959575566483679379439907715954515089877488972413399362116615776166742025102941372561345687119915586036763603206718321707393987662342616766214691497893355357901255014521732745603480750967947594833426385403329181942733749150059498232613367827852499062617038373524070106044628175070647613204385362353254240259519253567806746798818996935191978873804363511033660917821833554955875898630718980778080214527415307933169740521242168143753545555896944256788590647791455391173640260975939318436490933603417069384951971568957953635467759467559197066400415190387914285296830641666829763198131771334917499403914502332228611270014764940493328126165541001190806836455163567903896180373064642201438799255765928364528650853730667862821485717671782882050762490103007187364730513095406131187189129767022267637818443180028232443009575102894806488718779087628064786511604119700925190639647453211084759361506784116629876522157459454455823951546353759548958230855892086703357446664644138117753053101854348312198118985045288728873467128897499602586396201171841352520249578323928222225442845733725439978354851031794325449646136425490092851567189328346871627342926605563805301895385589941978447185809043320310321985380691929336995987530772616174251612855287544013900905138514089038834214155523528053751156526993239131204923852535705302885271007500456346123913768997211184718842345706315867499013532087358276728352307268143947955006118573246347806467044783863844283204752959548007973142736742067023324184089747061721512192671590987745812766344772094365113092637788334095873200246090551872289169438568397200581312545532855904339107593883660710692576090042317355967186628644482356362837734544959389410749202918148301994805836273060600826438107752009422215564857292778283695336767981060793189689609694506574166571764506785662342681480560350800088971660453672466604727408630357555799576033630540730549693468565297897756346307989983635142347708293847228324329790458634652951452488130843273560046493311540368739915857987060846403936872593864233963266515602072206574662364003120376771872269806237143711800320199013215936955799427438883440286000182719264661283057671840544602057186661334105144339328260008237314679382098000051570079259789988428798149378330536925126102749933475362707012707984725342550130464286532260385939668052726110704951533563898067481884591565349218358776514752870732396080084991565911598571160631292771536480436965719205801887693354344859883978385746048512388048889307656066319622606350327073631943514977557659205134361496648772834973477471324438929134698095342679069462622485573434398974189134175712207060791901876869963934714252184390677797748542277272247487117354980227682396087097957263498422977687509119854238800678834058583448378006884714781861515750778505930870378565153742262293420717862983653970171858922556546360220151761291574045238801662491257247829223950188921524595256147593431386190403347700475011073089696432053434145507311965922179185207801318372898177999857543908434276092131705620442919466385486407887018834685079643667084098202635941173734602314642719924907615656158391092017035671626629594792057069047688570293793991763172074332603346358678588637734901069005126626541225562286709316218646876273990310283230770921844321897721793672334644073388418575934338520455107496044735434472432324724788874171199165079280850251812859251035191465229415138401081519644396196975561971554855196146609939070956433919495474470702986755364090552327229810967884491111947005527535529003459625895382821817853700424682074138471151799632885441278647030599670669899955568969335997215252460245581265870317479256834696298273463383117052492158977200479649765484788785021197317292227455015408998156735821767483693737873185425636323049989801728403266571613275030138494606969007860877458265699236707986687488136871889277918922730005443267154800522342690882151880283160652759480093990634100278489964773659495531175564118683615465775848231581747046325851312535724474229986389593357311620086093614601744639916532304103201325226623426628704280371932074737372431911756678115126065490926203021945444103119973324561794406978417018769938579627264926020990526688039867560083086963381598862877339185338066998133069972429798806677211454197823006742312073909978282709591921887521307839088950793443660893736529285310523042031143322334570945501553597776094011760486791011887763570080865570401247749509275572498973567586898642578326831935297877725610778327066077195794770189502825819158026261372695411397198853222669757616867836896214460645654866948893106161399810383574254633303189786614896748720063336534125859696908357932388254126449301023374678491773537640987853865025508238072807681343271892296790547686761465042177400688235090998262157268142097590968405172335540265544583557924432301925546724485303736539225402780185714892300282452605794222786351249588276402967522628413435385283907527094327455825107455188718336936183521245476094193072893678387032602942977018848876957862434218536619867129811524280462126533568413161755701131895862034487592372058059013547515266322100515133568706685105687303013624352132530254277236609132216413389965473977897654541706713470736002627304513376238085520103015620645353881832472263347566412692341886884285762386153240300467935046992244569847663774465393814635538090927884115328621273844577921133784493541154307667627071952553359374998163066965299982887248595582319554376847836628599096949192849388694225495529343445481929973648738858435077383955876900772076304865159009573232780387109897531041511877642276728920896942702736675913741949048838380600750430865179798622053766080594215802133436316778951309575614799143155934486482441066719154312812473427790132305219382846113507575515756019481615752138744926445131155638216673962009476856715360840097228188747671533118300846921624867083933828450811331143000926280651328927491151392899249197324533718291485641578075271426269453869537530808539164178442125433057844618903792061245326514053003251419833421969592915426384282140614331709004180439375969806509383691652609371699160740047294093698625020049795389951197810492351780747882583410633180164430011393749004476530008573783938706570039157224473197943354083414372886990044537006183022873431488350501095123107048063083783739064612024427830721217028595260838126022407666254167855965570451096192682575553306549081052029182935856531328891906052157341978736422633174251878731678590624458256857544329158502681519420116642925544856173858139067042431754698115440096123806398118934118780284013044887535498495990556055402115733608072854243885663994869557886173119253145890790283053148465420688647490992381436769277867417026105823341829325089351754515778044916177318079494026131570297960718298570809716689081811025315699929333365520327141016547108537419473410222724261196586085883050351430653343316203119141888467407394645287928536083841532259828359375888798246706713210923820596358815675371200633575280208285110698782750441696367840439954537653348187100759890381741090223706262251429001900320520200394363872875854184920512334611521915524444192747561960595067357038232959285856320098513549441099632420126248070769374531878775856838105438225547342411653980553837682993980062534412891506741198508783069071940863777393256645102381225162931219507938591950446943944065071235995257662310493115773877505483999885006845453611254984383925603570264880374617950002222736832927588566156837966157087381381486518267618437148227480373083833910962223631824927377111421999038033767919221803321280629199881535024487500152201525875389938926373949347862807927243339956662495945140580662852367661533330650925142211630510243785445092664765759588718471269997909725824612042537156640322463945079850210800614768798070205298995493335294981215449978968959421743908882006795025624011030137331122532770292693425115236533951336645621422840831672174454912195576361222597131151673255708149603303369392824136168269988342731521792070372370085390149750322440413061077860884071343093501269009742422543234545303860895054335167737111474552221081300403352986779173353959447108047025411729561421790469946089542682297477181186673957191654204557639039591918085304210029916645033345660562598937317487400031370761353082988906796208447279247861130437607636633364898456795169914966184957792582244327580175125822624255703614505316491511997684557699705362760905525835109291721639631611922722221725658723069493550218136829177126515928290708741611085767641622517693881923641179472573686652962817366542530957622244148178285043401496238388893245695458842687433941464272294849401264469104947889165056466362010458072414942378991623264218837663724247763296948384528659300996953274681329024071314106741645105378923184068957966332373256563230200348616887068445878684216365829089443520592753243909277250439268220761125415053864738893958821309654105694189763357514531667574064327020371564079466129162538725720561769811393225033302683091249713281019017424603849708667704104408121025096095820469619679715961848480392820763838871143506980735805319219791911229886316871570103874438546572919340924132472169171755740707696497319368525754417229988475667519241935020695594305048374865496247650439140548796895338662264871434860636690584715914051997969184449247117749349446837407411336256750011565628323873324071317864137201720786551194139158925216628907276083753680336481133771376170990612681365106346421355480111568209105364426076937744152260219136030031836367908463738953114799440426305945813802612047297623270715018924039596407843715851689777280466891340111471587962133687241587093647343698359724232202623030218519770811687982743434350001083935129952279613920828548022018772193558394641057964898711234218659869974842360088553374523130956371195482178755055641507195169107534895187407553232799155361647340161303897219891691597679858979097234275037479954918762075863482949227682260904747117787674437444173225166335807638829184932444864614157759908604649931485224943561748283627922583289200381239317692773225748068154067197105564714986737774443349320746633176132134839795838486314519189179176226648554130725393442456074289096627256420569320984357755534599842352330581363276499623689213268571125351616137871418752146887732861122478992926976512591039273329083451253758721203845436329455187578060792071593583387708320854298773533497439446918939621954923221663966946558380407034185354646009091199133998257566243157449100492146750940151251058355733378276204138266411545724864501933685287968290283727025753337768185154297367925761839916009141411359619799398198278744586338773221499321778255572326088796527250222984632997930946256446856334432722462884613417195774523594155217950319251503914612312012987277480336851628497914297609741502557543305722203130881118809722284881612901834543673218536242280508629873959153628474509822997658657092251942288132716996090029012372711936845029257162317878947702513797422539684824863955422462803269038870780522762115366714489357150982070613160710238122130082557217456067193135986637994990271114731257470500444358990116578888789835240413381688296198643098303332666438166212563768676857039376065436211560997205020838100870971520706762152294896554485773232878201579111932310275126783271942641515120318098010421930688796745972235743088858957013123181945701383783380595646996354146892463919970895015092107724857333626454536344794793515514239987065802389994491564252605624146966636019739276499848800755667929105832841880548617014711019652106178304807453448488647372512941368722336034420552512259715556696504986023755473169966194169076584056704096236251525607800110966135771536207350990599792587493981896561444457538785466027696533721462899295904331864822130595673599934371404618062303189639571612392910397157570808210672032275182287801683009874572562518906887787423754221060898875676001908644883431995394477383684332429677365985719605726070105406054939718161084611046506749849080837578616797907929146764700502298846244439921097654265254145250815589393497473635340884270141559930814728650433761117893492193925520109587052970539703546508866911462715369488026914976083988002112094816554577608327777976559094993315806364762794050355612031843247536034112898458725729153511352998411182613672658325831615248098401284987835071885136574150989382195851530518956119485524558011183805632252108728362028484119721512323774139698388452169024305569762784254056827100577837203079244360743249649154545611667192273672213606231565219956924739885853669916167599920943010286742132850767698884200770409019107192223563473488309397040269945797718922731654591277770888358419734619275131625972295721526348695517850250528444214461041404127403126746025802649748229973484027096815265216555660685980194809835551001396831906895435645237807280959196119674108483264077367834218420371451014029060299298382521230904168211680954366034237572124589912037117514122439516012289128171600130774734465314422997108323822637461568529727211858159031253626406079837114222831890971187554519604357732235295645849065047718310111657966785155474276462847460998851871705880518703093457585305331350884088478943293468335669048227033238199458382652919262773265249859816630216127250864807922237169446107244459361392343252949686825752740387591363282227019938210181606264143012009360808682323132950707602765721257404413846140731082680110341872595801948313947682235870748496118821790947644963129559178601682548206735305000981486798938319539380351109463493657302335479448065135279552532175612217819615535377379988887712762494261563602173981475061306899811097296697695530512993509762848646777575167854120080715969821228128566352053045298698491427983567869013148846137910556954602470578541101167432437607871199253550581991632289700648019889463550946958982996089338105077240042842086579022672022207749326244620061167138443667647312316087676832123319497241537858300122690736348380059080219402293523915092566102531766131340270563836065784227319502533477578148861944170653568426885779397679828315483628427802160022078611498750327546836712969415153986617349982994712569267713275007549250331961354692409155198860996906233615115321459136712243204427826030508779629420064034496669444747648688428200169589340219876223391924770858187793923007867134609474260550777782415066819034324323713654179747445147655959217494233680140670142031583558080407383875740943156853883434553077965271914967095329740617072460670256562071338497358280030752775637889690412684605342382021741702886081864169553214109243736392258491002095874850884708495330636502989265888106107512880933104386425464222214853879526406121992951704051041399663488321624342805689952345557982415969579149236140885071513492961836317481733023495146658879509418221209660710836460455528242911007055749493909477397781144884150281354306225070464885737419285685458503952362351969935019215114166595357288180679375640986512345248147449660329160805207582259514490349953952838534732086033299323244444126024786537354145350011729577938510093943409855984492696596902101240077128516421068670606308220602351781570284759339689142906988077612926064897744900408659412783842357946073745972287110407392235694840422735145790549302422005353481286753313488752199931833127846662410245172585002505046231424785068568076855726942164849570529156517315770471159913460692636335834263895819450822875630449658535334979903775523373540192742129575374186448677779936461353017001560672465179594536442549628662177148267619854035454218428434913341341241242472923006469876712687679018392482472035690317647060146986732828116568824028116352901242841891403977439544809680745300277063657597911412530508524338789058342822121383602589358763341868903678473727239598588204160087218381405128390494316977842003788071903178917534783602735231342219992217159323690033558340306540143980868515076953992839029049333627550356511857918845141002772711672618845492077200385510596705576576843227666083644617601816834603646498925715096524538946371149018180155436914499163324943176966349403621217649556414137230703115248198114203205426495022070862954618153256685658035423894186680118635019051052912041333326917954579541489920231980576493669517358056997821907786093311768577183427983803547124075212492976381443780140302387693291987647746780297246241790159576991942286431534231118508087018754690011140743047540729444372105207531706749991845619620609698548251404815589937964269989625655664409558700917334576091741718103440367138970025445815438044698533948838022437206637539678426299621895625548848844088578838120332673178111065747439352606062759331709925036045438485694325680327611691708279096272827312632055869372321334872547174427784779646890426658242601676134586619457774624870488085220362196137819152294595744487939910384350867118044773807551092518957246072788320497848221147535276242474145597390299922088553564013820747026430263552124496771241777730499579526757359068078177299333463652490170120630548661073137394538082467080889977228953563223724727611053933375355261417269042070009072804105853895558143347560636111092919616723326723665246552786110003556406926490860081673151372665405960674824113198149475733096741444374997044466367278590483010730049307223124064316365976155189656616679872159941170109548095846344645754111957404950126107497247281354134270801906846271010453823281498410309902837947854739987382118327474786747109185890744364455715539567651025218823764140835094122373231939706708522715373122897245051156111675904614239629422586178365993220867248199662513658429511535204220341821204814769825158051046475029057786469714040440503455145412323680793979329278449733504255267881306663104229905069229316958836827121003609745589362645518882432514472572013427397453902528219155673092128318248248662159443955460024768995537623478327957155524400971880320450168205606323095651146865531522243016077481144918231286544346835301889043914515652459479995380065822198950810799550537275506847421178741579739306152027681451267073068567177717133417224591463572388860559775829394686752851385305035546180711823428264286318600345195385374020257780490055566628628891877995953584262126824558765682236940208441033731413719571865325100188081781575529790627780758033034800957263239706596196729842551295442326166044553440785450784047023491037576044352189485438060703340463496682478725222480747352706547997227667367782787875729331513154444684723089122698227053032688199381653831202645034042639626412089853952594239059775879581994343175177454205320462814371783096253512114081568201656591649711958686981872440487833888007779968882369197747164807890620877150849529623000201837158138407558778694637855322983947593281261530137508892087080625414716600238621431672198649830914591357812692099603897953803296914762160321947847441261279843540391008449429289865947292660486687153230826483496553532417567895246676442623985014681078431801174493694269713270709568514904203398137752641715370037852943421716798313685611920417533896338625765225229831221003309590852441301793156954107598819197869407438102590369155869832975943880995448251181533556592576512072454094249086456008011993229511699444027680602720021034030383124588221664994995705458782883761024166982896606401914174049309820833991396138707304145079816373890981823317595251643109506362841656579500725456260768409579495313537181761520998544782709954860659213360747259117234659522316487941985406663211431346413488606273351105998220428613311930952739220392648461493694566294367758761106886932758127598220993509487876017447835825100502140963484225916463885985674114776307448226282551959349916711886911968398017486393705746138959095872076081509358593982808324343422094744745564030727789143211291189563570641093171818661628890685538013490103316911299061973655815040734424751939420353325409147096006781873677735453169274501023388896179307255683347021341394499748470737397816084280367249720822485655389888018339192253790305988212145085349576832793292177979230146650410927392999436983173779897893809204114801887528536739524704452481927469818537049744873172346832806350239714422196718862981943246815174994549068783548108890338277024133506137847373708525970199861497687121362011127609998090400460397613475025620011727566410019918363452243873733445393022147995694485520736555984317214685925178297841766714318301532234890094925831832258576730894996500766029813417394107630961902145000825064800927916455140056741914859064523026681869285252635248686034974811797736319184383105118339604340064842084080608329318704077955787595883855385672389674996645362069843334388009090634681701689523976560900237348800383274003969455452200410500956446459314056973064197970529478607096074673445765140657786692928142392014850931770872330547449584831681920852299404497288208688837191396730609970404367835828252040514020721962853179919163094161030519450640852977583655990693897777802323271601767836938798656714074076278425956846393775596099607187453041731394806510316283874527487381283193107014763838319744321868966566432417557661106308326761377601429643627184104875813605035941675152341719372586760635215326678617531945895399283767207318763009854731927146684475579991414393256406911332362249158486573017916190857216716176898428523537618303687063993504125439621072184236608197309437235027526926206396886333948513006227681897652319743062070034577661018322352142647717090682414701962456962681400535401430942357630316012230358246396986407373157855462231144082718601596347288226991546674209528855521282973191813939236068743098314267606277800453286175370398374847702506474201774697247465867779438257431942168364272163544456999692100450227514487684367083889401423796718733332386391712013579072694479965169166420398295114226959174558255939790065223640388047721230268778763362619813702692050883431908814243823289343133269818494102480729082193929125553029499774556545312993061795465584286552138979400396499924083576583343817570371790911193596220414965561147412513185943223041656061648526416728541702537867964726599714466971372321067471104742562395595372912603693872544861819715961220190526443448831251850408875738267982519263462110263251565250096797189777428337296367847922563208961670892446468440492166497389171644353667351165107328589876488438815388534374207009794630882087072975485395297489741093165394694860524191180131222167265608638494323020525653163445730569938665521862711127905758503568186168406903908867293101215635400420622670785920753116005881370498360578955672721216265049061097348639305464034170925186371379885986619213563788695749906245236872843181104624516260351843378881181662616499868349686985885479495793537448361121773206638015574544979843932110449981205480819162926848791367227708127169167473109915315842668530729284080891526793338945788202981525940985208640851659331442164394836544592501246682487622751664620565972168234288750471827029556231946047877367723739648767048343070455351043225984776173412084590499894132356880168701368461063593434059399259519254468182436669981827009599862017071416474696735354910692692549856043995288261781475459508950340111766903182908795791487809756359530831862626129834988098628749179723065922751825858691450332371643917547939862682776628888707634195819815279480931208665194179791851176387959992574884658707523297676974857872598296870192612315713620315264973740090908423323945408489178053605449799480822218139750248778108391628217046204176828004263798713795583340042858143027125125439165360821486423872555455448587111809072125645605895736871318540487546870950466340432650767522566410275832960239899804046069420965795258849693374780131540998657848312864841721695059693263576453963580256155277775350668002128405404836019316582575959504958477051179760507577944507233760131618190726400078679922029404333408796115068827556308357599649067198082893281069773917057725984842672472980983411204845724786854446373578468147381405170131073904035291217887039681732523173002549465803426074596208506156505738573446149966816819709972753433854459173364506811771390205473812812253664553539713219493913540683189464366291963445095712181339161091624193326756296550810857306722226537841314092318207551692172415937539035351958259957866677325239269270315155706027713894970039506388833001723015586531461138068301906082914223498692315160839885543621824846298486805479658853342920548967987133934047701001484203208794974490492590010645664730845214686604798607808685059368728205442352775088986348309242004555717619499098933682394464547242833380229116202902153522966386831431553814778810920826815384398214791729771728995707821037495864894806427272249725638549479446786425422115751517436743850381211124935102622115563403246874899156194944895608934918019009222445015383429917353878774877638690843462796858396773218094383255037840439437751378311172056735541978065759066488664369261332440960254313617797765199249242382405128362139577663770296368833001352956979850917386769578933889232369793901156931219375344461622547824193157132092179016975878300319954965807921708997061405188297190541018340437754808016907660311742564826803196497552751493961099968993994016076338624076830719101838455103403565671432735729633333938794272002563038773269973488738732122784170753350643954119294068195050947329583383057499742826640897643700201831588541819299503517804296865001473972058621033989179931936138581653308118289880716816532054433428664464598667282644949712282883012596215946110426589371785690744840894604554552277950843896611452305980334093222783010336543240785122609029149450339552836895186592294801447950752251197204224997801410470956901789746069242565273985615023236299143785758964116448538459010163009573784506426490054822923132173223015021492670161472118003746180922893136003993276931398056392283139367828695764051208996331112073184651668794529133493369769624842927604806804436590694860995535881525653157143065224985774245101940617325255484246982596186963721136422290824475277981744339779192540353676845405261272319074384707539298682048342018892945235243712942863695773075120378130138363048787101104333017906842359261618693448034398352496522700882145737373648805914354235375862233469466473764082246441335958328118019816781128476914428235558150629836008214173425743678835341505988667509021944237592757373652140813145602694794248587031644522591705573264464517864885781317670705180273965425523088128316615247493604062821976017894032307152902830575099860664217855491505642170174767516342840820586493599346989471184613580588329002441223101809881688992755229709022866648401352274722230086232923175482382556967596974575524719113919385044973399683269267174672005363028254388417819169957035036512582400930999427875675239177315241567747490353152393590494106268957613728297554557193540352427893870165766636345938941745915244606584648007734000231027586901793365711766795290624734244855884938121992748190348711617626764630558683766936809417100801613359055174015565858311133049521348630311972250158636767999897489767608900143679973297758435636888864229549551589305181656642876079266944080381438084128204686256396840634885867620337316924327391511496763941521316704360390163241423250824322118706419183212792094985960909510612692251965331922523742428245024451430593522219244607790022053922201925732758978196136462402349053225337006273409744536065116951645208485532008131077735133387496127178070620117486321234973376399614104599729248096416323493949044417892829365876302919388156652436965023802100761267832320643139310857751490079453288941320006774134786118759923342404908446117605455036323782314390150107674402075505350419065871583763237462558502820304854526334021707017150094944459374417101580396942877094982737415417616476983344312571804670876868877409182971059237001539791929352502513747610864877846690205857619163484756608344782320903738014606129600283877790964383600662950114744487177003202607135676149367853317053287969446316967043525219991624082393225663864748155632093523275714073083304016663386906372139353787177426990891138917389525606912996924852959136568919494549159638743860510021072292071152255790722668918864769174273888407020875350200334389382020338076149720318744879756103863449499248084870962639787738620990291382317058853163912998037171056340927998184159900876868663278143492614551382293742387090061617943147871816363225872953037031013343832966020562160353639561734551687085615663889851362752750551177820220296757846579322497748169813293897168950321953798751580001555410652407476320234600118410229447679142068235027517355899190425670198823063600612956190992088286220714763102619744724164065558027345571019577593673765581044332219536760523688508464837343957308123436531845716047664401967050161148151969010904543396994677054455741635354042825557630514495444752950953114524856794256685358654545754980423799360491416940758304673706970410315393497270096231326067340985369697836407660517274861247971437606363042631878454961996066585152488918334261037961010917862689614023114686370065511883657564500719578855989409038026756267611443546158969085724582842129568850839223849189099647080199614147181984415284665003163206992735034330588539247684358151524503183038322593053409993361998176190036264133674932745399362356809697147758514900097707548453110398680339947046528519421776103342292606948666903850138111382614602305490733343818687061604176711913346935000157676230884043191235126110409376980345141611015097944940710841119305502528773398955825320131104577662917103679574521606850299839113617836118428175965702341683940664418014203109384364556151447460059839291335526580662055893165954860950200915099117863088610255103789664222610924510479646792402130900224663955332188279804561761253509915755487562694067228268012789804476399525544987362314682848656608346780454364982810063290876626932229753872419019261653360192020610309023721180425148101929731673893965410019302157910134529839580397050420191366425124702600005814035148394370450895882736330006987246461502271268741365516732788232895240677062629351836606481567356803264467492908145793557124217812518144291973515459084876494420526393271863818811685626630339679324726992144214503032319408651657867100467625472831993604213681216625084663047175015344907236026320022138168199072561595443504131742410190193758326481720623703043500992345472268333899862217967208280488312619843384540284322005862947618635705214210573815722961090214291144052813543726731036773084768828609283580368410521687871691702261125091890093475334950691314322123239175384708385069431627063265630337166952465366922996015837474080413437974654168264265535257119414352729287030192352265013525355665688031604297207789901368529230689190454594149118929018659063909680323720910824550608236009455205390907342904268659280587819943242293740287848826589121783253246365288264858776245436373049120321749684757106849483899453667091419210871315648505694802839959973037421467217250495916566978660229788751412567683819975697541873825203223103877772971984168129288581191235571558359619465066636805486038883063477439933654912584279775434342992720689213196225144470102259158581641012801184279073059863511499260045397386114131648071503361922356334669916008223037460216415005172748441307136457997978504548079732591220944261986914527750485572679335964533343929400557919307248439516780081746728374876187342675555982240742411492759171665253371687576403415946579783743989062173050731375148794023773248382788300404496517088524698536194513107632527325127074011118302581108510270309249401552699112602744869676860723073109263625110296170745589725079936177544736236666935887949707344569170687970743362909265445862746930316372448797529216916705547297859776495223508493943839301676299150127455467208022962635738144213613499281651171491216408455543168224970661131700872524433233014553495044530596754360932033105585632623163721305414139043674941834522847269022245678468055024941156027354590329418994220367798407914524585532054303956159456138202484560989371664254188686920120655631429596080456108282492549376841418282870985427708527434833931152206622700312745467477844918201762119577394652549217163112259826735716002959698307039096109812420876215727731075556997030767869059293148433581182922671881130115192653132307739327480351308184691960806347131681714906553385865988095881243897535934537567621327891239166461515582098021220504427171574764789947452296666786747142188056444318548017448408867975935550769637831951097697416504464785104656653315734974829710990387769454385260916032973185062124042869490644949682495768229073229373165829200476586227936802026005586927163293781621528626070808969139921987421364937999926332944115824180217185512449483030483809770269719130059759007356701397242626579773920862202334054688760838668508391823273525632549523855456881635373681985831297778190021094971660137181909074478951042616275229774928187879985373486739678753908062896414198388053909966560451108463473604721787614265094255346855124307544587235759720607107832567156393914882025801938332380491937969964723764903616693500717393352958132943629268640996077962477700343371572517433369422917409490366560666513873100779582853537056138563085595827776704297165188330063955649152763248014565422242656875992951065291781182487148916036182284815361438871391804657520536499562608506271464351566012694508228257838524056008191162006158230279796918316437195193795626514623983333459913136463657593514900125537229073585062006845374853044160478964780292656692804266289003914605420321443304734600387757599352579282856820718666396972164395716863073232500568421284765244252357025710553687269961865393814970364066294864297454135126246101111836328895225684346994279327415895964310980981381164702120515798360788507552527812759403229090941608800398815652293258767103450385596410965882415899222633299288486515417596490571363195017779484736356145045261887300456903312589851470166251148260660599228581118977727378118652823911562507873641698918044371251033482273681869059251806445793758492370491040775155710277277210275263615312412086623731713996664550813115424217677534367682005038606183848550225949361256096023393077964950275298006184067464253802779750843715767933851926737495947556129792430103779532886647868189105846837602977944696220492517430932147718579986023607116831520676782218636235832738827356653933468818907830284658357874455204313675813897302595394699891875361355651762153196368951456276128732835820966858432349141168447119334073697202459781151647522761706606397528621300317106342243935719849152773389302164177657022304056214251289381806062899520714003365708704247797262132784288408417924899345092256689192639417791745849365099296827937602445167479400232328602146648498677974472927409061386085931427023776212675021913445522112242329969895107302936798725906901300479832169786214243008880398791537010987404979280234842896404123161830735911840415439015669004917268449962820879057218990067460583952133140658559948507660469103265963347540217948918105914568756233035264911872619268566994187147579680533688477393293412519674102686379837543074768039872090936924856089770807923169884467102947749356889246140992875341480847154394924318447442697755969649454858847479862886650715216573385815078063107004291562173770191906362770338333034242537255045661378247604442277210087585528296246910367188677170648742176410842176977198028736969349438150430981321436958200118954167840828262914083294473249155069249286417096795772747978362714113406641697250545093072546905116905549324058233115798638674628790097094939788536935784445134346508571239513789834707173261127741268529807606081669994719778433362075736370906265309128546660938593505167253219620280357406743986887537614799730603416203768551974786470608057890296032442685402652312346239795900558104983731091442284700170012104025763749291764482982181037301495748354325423719961028077140748981734831359849803847130438316789710509124113769788940348128032626750143174112266385129818885421252502864516805392426826610839451843355241379886449773690083998622530595604684664587782816404392127950247306866397796576549083236686795330429436081435193128493606408541214519318667663548231626634432035273564310477923774507640853534148823395124681096086464773117970088073307419927393464130673165319139373964381997334795584137983335652722412319993251819435723426389475749845727456247244001767238783510110700472936730909201014399710113016914096967454429541778212747801696129995860548677934055353729784188832821229876809586143993761910874406699781858082307970709257397880267097034956551989168859064507330481802330291524896269123780143647281339973196687991242966102951256383225284096242184061028909051760269123706006164188664912738825822166029250463652666645807039090557590636303372602272758159293753804179260641018310018400113686004267254474586560470277957084193354555437149198799421794696008274199475519439688937296753743590643627279601885452086365785829934410782812194506344700547126028791308010358997189116312038936245892770160156280915272004717981061811579011848058141056239681801920476062283207148051882124752730893092209900393167857936943735780782106025164085836677942655168180163182066904204791911183734445014480308708083252603517862792405447700094574613977150355741043567305366782955928409997337552697871781562250979967810344419687504030709445228636472811883582819630339176194862594220342686880382215167476378466922554964725099094389138969283043411435840920742252237819320774740167220401300483419962459037251242016225545984515617891130161635981919630273409561172366232041103573073482401615456391947402482341516573360950890479052391642293588705716133556654348925771699564677754333171519411814080891444914135040522552757129125322521532941890900356336808193486612588320886273482751334631834413203201692493352920776894483812632319929067905332043849511325815149432203352486190632430284312796430892227459496894516709198580865443358851398415298067678500195529239512386927007990822142866066604832913701563830596505771517177793993706667406688521530200341593221405857533921076638014100176778399491788000974033251562096692977009731191156929405664892901016121998627086564238817570785106943362285609738192072468165038559340030492033029354616748701612400268189685635159263013812757296609371120593800410897592096993830316451310850880196802900946309825829933613192612238147882465329453918331097878422221802852155452808295818144361321120835025302938209230447001868201167744327135924028677112078175433698488593073495844909695075344691034147713136084236707431115984582729697170885367294016241326863272001955703737325432425892491799671100058168538853102409048258044556005950564604067317793272168477908230109992582248253594349092192136340776820188920006706627194201811309643735988479254044751150008211470581887718907278859096749774794637774557914478651352812077039173728497939084974934198230520339589348063834270592316315302770116994434552683835005174383775027908052115292689418478789526437351695104774921268394699946142105039005374527550667791440013715086690464084914306030535398337313482517390036627178662639150975943887729503353338420080801951498348327192455160315555354640133354471940052034816873408496989543849403117004591866007516762660920384574733817162339752701017878391880569084321409380594590056555496920297857273011882009814649507247018247461723043339293672545156688057487518630435179418934136095327637339374133547455888365511021814142489884310195524978674978385413832889988977287549801757712839895055374546828788829952620756429626829312743811437665475408769330173659794432647060409291385212132442062595417296928381215334407137082796141265777243008887139172244677867116642973215130669282484944929348826594116084875444920694247006011194802039974876160675029149179146605396074904378297745023464343043716653582608233716707302947062447963090743385422846482642367858289084216002329289615665907425745345209864802280370752061527197488851918308359506997095897799497056601061966140021918779350403350514662919889459262809624092877664135774768507461597227791650626111647005652812336836761959274297826837101458424147926076078895103215927567247407797498979104924748257737567797885752045863023437519488503668523293861699848444900638249519725314984520433194945432074655308263296317360574847050013323464453337851958715682199198657982591124962738274861349354759567691800031112704959068723490291019311530073785612004995937024012572641298990398053728814443034226863631183036502591912879753242084125255212240517895664866694436028327876243827384997721555907949503336060338925945037953170128851771025493323028220924026046936225099786239023891477783472014449663534615983298499393457941235663576863191303121825352461404319036080353013017162048334485135234423741182844892903096674096662190072607766467264685456368249470223638008682134897249985296283164227503007150951863702206723556146011734493112398633361255297288769857329740588966267654364523603131084161060668794569396547757081515195199144210723618490327834100156819073601483821275112219990137518687420981413346159781904446422838431769724901639259068719317031656748278467915795250487709806924713868891367997034063580789588107637438637583363984356143659259824725193663666859645477620049633147138561821531922995255943246466538549751245853910157510715576207862409354760385259372470330655396117889068240164679371230748706501982600017293265496654612029646541999354039998412673915965805492794198343413707348740144567688923096375022868085151367287692798819706884660606813950705633336054411815292086271862643899119234890405711379216531562380445294601859086363533984959928627169912502825780343662381887913673702027869446658455262055215630596311561498981184851138355533433527913798726859664233360952484381079497083139650060565635900937042372672732902707493955567495440378432964361705427001154463115357539637739108488096470365508532201119683041332601893851993462906127275040354872021316090514243180023403608362912016000285497575051471005869542234758841348184310537702296667969633831919691928786717948118315793004390277117682530399753256720783323640052566900777865013108141377472752711223726444622603912035247092467246753893990485952392847432551598055347907615179123857056405703882647990591255777691614321653219154918261394871995003759165866257052922905104196549032826504039583002839572658612058369515006381544302081989340323756640549910726229617250197998155135394439925722520401627240691666121379362803759518238359999102086213180257808179496834196602136844296119988457643747517744474593745710831636583656574927906200910241412411236258095856532176143265055193294189043349289950293845094712438153662884721992738599320590872447700515889423829559588184014984212614985508029863777268271667531362865077360608108983167628930017244357618740149862704739107432241178908123355426031148373768496178034262444207255513630345659305965516183638787065883072095270352671053333250195720810259211092809860214283692574292902787242816335272343449672894280844886880460833649742461057821514385711424359455537478851396217201113038592720885026667270731124676118067191143403684037832815826554238893199612153400230653825019979961676832517745344685597774957367991272639562337184776336241353960616691293114712635523601038012076586128250718280710656754889149724567551644854797362619673106949997180856428517699520562973611496730219344352239058763050050427559815501119380525372329429506018282432900717815796389231918788593339623416074176201603019182526278145225204754773549952809159597053257131108426649109891680893371996651150269425767788719438191528128800476356865730576799420445726897090712855498264964961459537755246720537917707760684213615109410227987716767670591061754826565864463579271599143057109853977587500814628396766474847482357339468120235498850716414338565799376315922673257206381912135683940358745221589319453811494691382392408091281654109458975411096427474783310992866598619987307845993480127137007075980796212947861323798500035039202770483789221464912909379067639205461860022919704401677014665046756844644373608974784636357589948393418814748057379994891248278508534154808155394425809005869092745350678421309243028744980119090602477151596901220671038819255842275274200790458851549885304712469704061724511889861056879367031370521769581842453649428752007542468453530802027654101361173640456514714658355504107942831502198749754251825806445805901622129139619803454678604533925363779527112329729993133923439064377430731851423828275556530455641249199877857700850241205929230343965296158185452398457640608515322332181961739067474644903927213071170809026576833095245500824828148593915376638087200366432075528768342224539860457066245650957165330868901373363199993818149593110189824334129939436938668465168813108297612285353185162414005842905992367033865376893879718079122911847069804664470959589531445317379144783264159028769434634237586394834584924548993713362984868944189004814422435003887624068975237241981168945648493802952145573476025758520227718730425362862239856124973496051678785877474641292209939686144291690113943522589469031373818116718060085778226944812860173377307022487406831107131247311282428159304462141193101850966777668667658872227026485098596209414068266124481467459007746883035301973165089658070474899007396064145710946332256922134375592813798805404440654146719513639652195261605202573820429070383469310969050548795979928102472820465191300236538946843755564551650628363832773545252803500502766560067731705895981608276166176880386162379062451684952734101915325769959292720629038957497007374346778616224508675525018199022738576936124371052910387771426419505753173015244593291519250831956488262425448983888721361865109054089302499205626137270939213561152591080703677210130251153764672290307521556374323675155642524701559609045690433971306212004927680289723244683671786000222922473902395631251306661258367776824375227054293248900725299605218408903075922926324375940320879072113300349509438959275742933597206303988310059272892562250663225277868023917233218567335169612634493503092916821306538441961980624214165292171172344668278140496200424404299056656273179717550118705548908957963296484545582029846354382163051445390964088441343708931642382651411965853197959047259232883270646977652819440715027956816870778781183337309959288256078421591916935437155529286592600969582423810035994340622572071695753161228815680192167423871640644324869283470873695040715070815863791129079712478016221896041165354575104646263654199358948230982758545503583910196246440208567009062652051742095164221157958712238632339216477937277525539197126101206423484040871566764749447330528921898717778013256107445760162507054136910921432506188949532413219857610756887005553872187324481098548845679660983422245522961401560952699691847184635531965595823273400754341738569942821743090091797555419761118941479610211868581458663100735725339062039268629767253654359037810124066602693163269124339167070347312112226947632865855631669330465544290501922575867363470359522303644327641179038072647561163784986086909105370668615967896061865595416739143101294825843113435998032463813640884431033918226752595487715257785655130124503277354470743284021458167860117974889968130032481092022172185459831014899369601754055042806906008315387334137364497707009435831940969187249946400948079460359143980185874280848928321384044871642034899232559309172571325697748563602602906554934857735018659761520551225608300379106962133410257089288373787827295089250303467628610854047201479211569416819562466301794815620656518879387590991279582591425623161960843963936717098313620036323380388653027737315007267082078763431501354555312451109439124814258380367920703151558827437469909526089385375106226611746644891617503592701141841225716935307762455389848366418346350432691089653354964760631419165419698628972224194105639835431636237024059947145527543794177652853946184748313547871412085263285528969420957308921387786519941687314020383838537699070677987937353775731516473817281781265004373655971964757427129393668319603029661844939925825316802798299566731654213798636549571799862623961699393763987051612205581692951223678560212566234656259604640558028589005282165619273782840157231534438904627719808747786726450406440488217606332229481306766856854653581214617225840781454624837753045114627455404330534081331643886721319072989450697025169137620069673045736260208740226759858023002950969977210873089683209399563687871416794402185152928753761875424095163975829313113859680815729070004968494433134788007821660146879313532575161529508855834057033865794469242773120493261524329393720192217211225132348356093124782792085897015255643107400168608329252662179477879567674755472386076902721621413833378956427518135563323444680724273597586739281249350210686939218553732889944000755128954039430852874386102794421379094612307131148572991508303149823233744965828360168534291547852321169901006248029544274661745408776736491320156606960646292694426695227535883669168072170520295189484430483664878697929566154548125773999054480840903035149104879315501848699552118759610491777270932707741668644139042760709576025741105576848464492507533611096298419054243923388585387388156829319284260059727471876752890111394682817004706186210870599508455314913628093478073710248420133707846495980585470413939434719022876707275598184319738929890712992321314350971878433847917735064855652117952406025511318616773729520391455193789995215655779083651431876524227543028243637074095538001102632922844628248033840368273908502761131230823087353030889023731638548051875820581788523039214967712110774194994873057787552675193561700992158706838915207143736402977256807726242297737858588752800095943163285155763058875012212176387223194318798309103838474436699884779138694706464733902501643454238682623523256030212586296922702518651103667658111712383938408666314594582632368772320170834387167360637450772984149265087756336316016459086779217036066123779389522271924233540491671002808132509366133249739544680081964213071299980538207278737226374259624514306030565697053061111644484020899676903715121081431310889244894165747704621054940525566372077887038901478543905787723965494609119590348432687662145135414605893998812454718081610173335116420876937171269019221662512309186423482797387177606460434148709851223400139802363665539730938169891771425744831696730760189280820306109003214791282988102528365544444209096016871424881283296381312268947174197311561579250226991713637276351759385225164605189444466294690004636111743142236019820522805199098411733586264484930413748348919800763705826337536739023732267652421659737343135845157343531126305910591575552919384003912856268422174063929055985526183819850309713853772349522875913540008715318822389802550032680201755593355832261348850242288467218493365204495064629230169163372154187904805477165492451450917726588562126341059999355630566883362548099072388984692194700634298907546894360292063694300769724884223359415943251256523681360537645180795938100648964994324814068793374138717601858202416950862383254226028548305569701870514534106824171254890861998574024415348535268638316276141713937681961593990776328921361031497696435690427458850639414438160455738451374245156780534186993187639700133689154132843107330278316824990707319613276182138966632390777875554549758457898024463447456712752461897809409366995472400269583533633065172326181668297571405929031428551880913613318271867823378781591127200107954327940221226488229104061481837746919354330652157439796088514645641552781935679081483484176870649913865521175446593895801614057056704560343478698211281702624065450750004232092775593459779161119865850547134442503823815672016908286157700846641315523474013467350935492401388886656867931891665635727614957385358210975502734534908638222198309571503318545494638425550954470116679729785140672609454509573316465267370565825401635590568459677486286902721301252580828706592109180582603087616049672404356252390100017643850084876496234256139175684139672304157423204125251471736278322052241898860112807388643190577790641142874655532856568591168772040432671413926661757422154414530816609521851088576481807730336038538026537732204468719872326901350544642968542265533933361337008255681146210164411102621972550755731438741148638082661219433261326149063701309224508760686517168119645714858946155429942352324729344267834092088303244181759753196516539681976853628162048278250961402146078129728736052468520985220541072172729690660119662693842089046881803455836951364077615310913351532475059582174144227918955718648093425187435282587778849903771935909679642832567981070270027208724595357775223065786570100289449342668826263181222804289178410716174591074826339046810300501156927141804932371558011968530003205387993064214637111905928824774934021603587627923856095655242892725127529317048910493569839426117528358100940273364750365084333250085813743231896807040708537166621952480774202705097548645788308536412754183953848947597031044029617227944430567541013470354555855227373203277844097908055171538995485251359088679377458373290213003649671430662253994354097026551918651271130506566781178930863576621393363726316515466709786388871503366368119335948546921183755231853068282801640011512067036053398052356257588762460077351482532692540568347158096150890745879176911994134551696254526707896135365440802579219448639511907214428214226892232254136907792761928462878868589938023391035398952545621783545480048913205236282577810760139114731664049104009305505737003495599926035688640264485331275154643802974833812082504770614256680039126810224619460301005060555514780541294087737302137456048840526458333487328548363880427291616437142046633472859205993266141708246623950013448596395976894193198201401617670646370203210760464141152611746621972926595527008343174534500976004012910723406380066668543938679314050590724846047526773493354192560502900175737387450485113867339403708530165404410103392966887581625391447079301438560058119244052227013599678270272949272656554964203445736749056185576447815669241174408958101597476820649461571232923967411750114108339065496932898950530299352792081279423019927128825161823786350070935727289395176058576758906498933577454840458184303984621840720211962007871875451101988370158725290526554171967202883447050954387970771372649475648766016310882585947083477929777769742950209374306200730214771562835632612883996405073820162084047622168634813730009817934282901603134949438063208367389192790705442138212275856346324573343848090385031021604799156008423050200951269034838913259394525623380424867528873779978095108021388890414820328008256874303545566016253743906234003382994891280042853951980690427044011208994695937613183779617104669860031883542129934104406169847691927285728528688818198944192625158641452764502777366819438775375907298173050975317900879813276282977481936471025025275260879602177242256562871124228763503025917203301413997937893321309158285546991284977093371789296213500757399996001012387534659437089723627043646321549984482248620752507384998633582127407116895474296887198174679259941506599710564141394397944920507230671622610553472624700144140851184435080706597000516193982133812183356759148889659170183952899721511141719911814702672370844714356037852698616165604318182681697166187036155714673549621008288580428050616579434830541886317486915353561164814612183373323134306013194985562535758819831774794252721067868374282939062961087787323006258307353334346071382890479332478388156254287551331573575034990990109806568610371701307352590860795835344162934548762238245681820397703938473780542400389953403112594975383766218895005937780707094389696322668106519777395764023022807413962455238740627662126233746701675734602435237950350180967886004889948671895412346920574548326978755378890317502020683174617606785869815976540851077300618027266662332033886511992850009551446687919508784709980136641450730908225788442330246928669727221390290012224884194177584261623117214504685582806604723876541239205212691822781460471439922414184743756400049997031271606175281200728699205724683315592327308661531161267201331570640607777086521345736049158548259312618601465968330334726214798167580195350431762121964885535736841622566335904941394713568526780104173116808862842384654150752083280960576422615161169429589360961263108314940945719612523166289248892737650032071751779825845668235901629761716464615800329043319628062835283800092031160944534750860679416004778851221879674064617193020680634147946723288573442632426065466060070951756340238470069219230799001769672434333048053538842066286155390921728559477430003342297944145147396214982211759146287522631757100973951196780949971855332219245960602452938263680687297252882752888072119411252347490652087332487873799689536072220643465819207555477139559082524679833706400870700164097325260469646545821687229321632515780096879537245763652463961550636139107341144743117741133680404546972854122694961643091834928576801074237644000759160198903180254291431081343076784742374101579871935187662210026744657766173471266834846482884650580087775842011586722826493488241897407244515772912440852382956146715429753078667250665915228342206295175337093945565546010894653562178035046206830245280895980627351129452596866048191215182101520051030371136942559579037392542969965324543765825165978368387118027639315932706417996888067193864160119659110890827158216508817613365342511131141356476969433919944961596431363861415145879488802382496364173885183530059824106263901064031889192131623155496259927987201319062019907101305202966035702339419320509277861783846203243994338440110783448253525121392268831235808865206577686424653143682336497553547802481482684131155984732849192963317608445367646897375803161099978712350778272419343824359350726278296730418888517836336220689127540125961224641305075801131150986671714231980587768770395617764364261129663741300197800354144063820352185640504102069486842084618911123935636293728402043689684985845739579811205212707032393193209549101340753863903454635871764059796782820648914643015674815854222540851011950591019404797116289784472150097197133416253600773352882843756208612944662311719478810897139788111896892916630734958217896034773673863487758471109840466533085364741677850761187214131483999438001168537964695518195594235979609706080256270648885089395869695034320333773911406024722492609513296700943603659181359092308013982761470620190253638078666784147384572615086467144958469259114590350963636016597261584607111107635445121154761922741987220092293958082353715982143853084677528755513683879707585035738877740263414793772594599951071571502351444999536832509567929189698451421369005678936964407944224937524711916793161044493533834603847768704307789984007680437025247253423626651332516534037888364836650969650436641640559259224607491544109064599358011024585979161673332390255127063271964885343616035767909957102136278055965767653734612613510450793818701756779472696131971380164770807395201052933582942736940710579488738034387827299374223003394981572489229114081518274233840301602590819061204201511651025806582011527318337284934237042235499573093599107149163317944461418744039916566872624071855785157344211467449205963944308198393486147762669763817072298336713147804830278242256741116443052310713659417978854571492879217121227393149377326199202777370916912496253949329612169130602643379056988380979699696639187792247196219905852562840587388671688422105795430226813380693354733372203655652096049256167460367774631711612686317157164818848690445697774372521454058702975659358719103928118833102697424583048323613615811870918035308332517414700929182371385504800417289804092642587448894793113265682330154147023350916837060191246150137396545536505998240721640490291525421870336368452772965574790596814239164471296548370519769493702838060171170958360586417381241358431082306757336197324497415282611970690487666607102123869277036085274124976626821186838040517929826754409133574775383598532402462862279148854381340916532667472585149772551228244637321820458194203354217417869026541480756784180462091857354144589886165805517236418879812186301537745807760469199745199613605174481691345676448839574763265510362058657378319022323901196623182728814514874804481605120392413213813062317267398267647978223239404909512856849436951627010274921798711101568246995769984927497337771812774284241188383786299531563787578770684319868758136312829764181149724064515957985525773738042512695799602045811958944189577226769996716908617291405869773526315542775319662436970494089265046107871964249522266493199920424690370854529632874909792347216673605567376031979224787488940798167420666663745557436711686787019912852265937512795522914678636227456034313629132447234674688404529775989867596469514396646222924290378340570566273252755153752296360339395222680532144703314490287765034826283018032152347189024203024788181753256235833185940242325894499063033491312234538375994779762688576544921887210324466277249898290070667082927946727867668418494716954562890901427384247303300637102263336432543793324940187280965306246247263353774594953619277556959513567147108735571542592886372212590613967952656688930765093953309685249564618738095442104617372550290871332147642789426109437610191279448900015182624761733660576740123722780992562663350148155412877194127302299776450680317009878907935528456211355429344770698417206857875392957068819515418462590069339568388380424260165529989528603212131561537949485782614399836404884808645398414250171386609638237676637450030506292332801737000957214103089868459644537888171311615082066814830340877808362654573490417061284919982025346133026843996439363191110314253719337777915727778379740757483863567234888143732178062029028127808375829703475336914063340629978991260322639968535120749661557386576313243651141281465751754978717057728572192384247220829705527628286035325806328670671168870886137985438489787325083988595817840210986484826412807569418912114336563483169237690088731207298895927426850233675760276539140275071606447770750627814029203150596510435414871790442810742460652711808637310077416006939818348760770958882779286375654010971946281206533570471362115757975634187966528627255141093988660629261586340647821027820485844080735474988606227454595080036040750229515217651716382424813244111234758128874259777548741989827144436578336266608803167907792494387616558390132525440752726767044661239617047140339433500486340849358656636308946370976689951480165465283300321772307220368880833055698501331227480309858423842343874708552072419788155738194258479968900818650589810592144273277427959266166502789031635559154251965855764127937066319279514879762078959927159309538002824275708133310521125616410795766943192630991150263612078031805035734672693175030370781603612471157088211162533837146250989425575123944123255386322020465443371704080920854583032069658089853996196726335198609431959794250893973857120095743106088053247014994110105714053610382610801172145056065668305433625261566709447901313544897887726101034829699447288994912518735050304371419943271697316466778362551145681898934428209319040562611027719098699603960404456470270912495972347954317011590077404657234346346857365633387147415767038651260268239218574151641930441414934330926530913593867635660235135035088194436369292852321027655475935793462369584832928348813450681161637837521855493893945049885248949542652229578760071461551227088212815690458764720377021220446520323933576496792263431679562540423987199624896828930998568762406923155957711759688434111294101931222562808329543174025563354750142890241721124235498927545409910385381473269416369038081592493648116691419616181088777102816127085360782752233125140124954258331847987125208237455731974305241027969831605262155956245509975518592208586994173664142403624169717605083006218260129599997894981760824416938627371136654248664128831028644781324781910331138260896293330550334676479205925963972491720190406272130123650761679249482543165421724671381111160519120816727785474986946064267022866014207741199052632222395051839603677917965246987465358669204675823592895643350766141908263720483878806249451680166963275811187128607099138818000921720848001145090337280977641836896963125480541243640446880053680231583386500510428260799876040171028887559771880693773351540160394709734974860682714963359241031899574180135910606531230951991780212041642994833653474401200660042019608232976919707300381642527231807762537670530374151660079379731215707378093592349539073309142167331393067446399820220484630505146431866509295945993788254500953511462663645227184834222317883410673105377730552603887921941174469768438471578140606790950199093021748572116518463669691218230147275623500750037115897824306609224054880641420870778398052736133005445764768848864173381542467126072346897478679656711756440688272070564037492592502591830318701442641241118026364103676680546896555887951269446046382279843427521600861843191796222268512550853096547350429026077149091901308575401603596267585405451477343723732600413746771548022117313527012212399118620195232588379666893680958775060652757627522971625156176869411411547930812397204730231373043353309518875849663436505061067909643852569926307491984247333022705387540538902970923606329447368287721296171947021316994637476067431361753470036767760203440848017525107961193264365697467651299680277229904839421779926413252395066575756669745797668884732730592566002375060600591188510035373877139154046858933234640368656753040273801849403124561786413235321216394866963875592975839832461788162046905339247891087855535654585593119096582704992644760851984776355699789321131495689428261972713817873125367641677290178223515174669442801269060582190626864163270464826639911835265725085934101345086303649787999499485266076166341078524824994695177734843425259527745762764627702070638388329357245642202008339465012516468563474982212692958308520551802334667855183935684704084837443151811947811369257344340866005927012762255152642337081685994409192387596435467022123740952965771472382346812213541592860858071100461717581229302721630765809522661394805908233644325327004073137753947250858549097535365142748188904224713400374292685488845085963269170811712907922834813643830078651489169743128616764189798071271694687480823184018266511962663706978112033844850612231174917661415371730143551846217406105897331175407227204780651657851825251686110100064155896926239490471933899670770981208908609099989203716795201233170394273177162296503412582581441352924769938868066468208152000331625745185418126399937983403516122874996867097713320930825381212185205899603545887193436895847327407066036220205000311060025052041976370782570791583095299796320242462419055751345505525393640793501433526794471852592987016508959615173120907424398161968918949046984153367829992903213452428807919684058598391052606595264299637606544555507015435014171372866220819743740910375275843880486424057934074548574014720950698494370808942707271726230709780342453045765569789441025264453630557420937087591001886944164535531550900292519303330598523586659428654037138981827719136683857080083831837674619742922280878988975925624072145038824262309562645405536615375317573353292080270379527565214248440454656705559226769489741494644650152722375221147483429260319280521613560536832362862120290008404017204236228078631734399220376919633077979662685880125755842924274055235167970044982569988883767939577872014418784622888228935270850631510744460134778604119535078400360435260958134740361175946918409811998632622164564989140662733554673000234637930989917716602984333484900601008482861062322619666160923856433474185818080077029591777485935109220061921203521200188174679660015537384176508435414658892771908853442879694822358143341698378167891824667336807862735442226894170740353733154486829793373274430188539605533850461480103648802065863278351932121275535225193394640226232066024029948041779093288607182775593410926411914471651995729796606429995962719178138172466109331522316429195760574189458909238097054157346654584911470118299419211077753175847040691776559552135847935137242577369612396829599226075761310213033805575261777610263854673530382323791458134960339684906981523192643147581640327514385109158525529463116959285927953951338300188638319930493737950312205888871515961810728230666461949592486838231339974949837003954402158039772649777753621135212181347996831459601937645815041048509232049943548249998560008648275967789617576321897780871813092317700464217063943712330202425341944165865085740276009358413044742440981054101625559648066850225382854703149538224833886402017386954484085256377410879777693248424288034618414939186423131243543712666916023691397457442003651992991909515096446424502335935267203496774803301306057794561831734522860227288744105256409236662666688280659052484253955366321825807339867765081125760204810079067668723232161512221314166444731316230474378639797738962738705437922693955304561915571730826707807549268240039502014504778158636812100170871352476721743500281032382086555746460867853383438972635961599269258009999263259636238471249288658483151632812585245193188594023561880087593983018297958988137672529626570488347694602293095493691478310239825984309495028063801282119055308531417208421200754902090522278800448082871789000402301471758534583665699971355138709524232722724526324499403233987603163850345727424354272217960747413887218909079375814466448509167179373611878835262930459864264870716971221183708591134883368060898132662230874322653252945197713945145470091555924759068435435838078329824251625687746864374786829980302782823895046856435514581532669999612331079072626906092505325090998236757663712424196321497912164613829935216630859349308455866250565287390308412360617749783798216470537732229801746412644235935967150155910544829349346445465360366400372663206234031249091441010553422870465750825162914203659927280272411176417055788461338152265448356904263188449723301502900044786301145756595518843562348067824378667452191005820514559771519753662511523025798424746221162820166345261674064582953426084083760105165263510211749905274045798438557821452760994908332297417187487911982299485757941552032153790668674938290153812747543040219538801097969011546877860079087750950290451881014057469100370150251648490372018077328452957456989246295287146905285308618049116659985445722321281498563246287105372818102207415486352713542837473121178368932078562776227890134882556857628735381124894814691715471385046483383539117373669078022411809261503742464806425502587834479904857546633620996018469073596964366068419242106532743309839625483806935201423537761131527313560972424387255344319807261873419568196049787014992050583878159964323871008196483266315016373453388456101129139721084680580523189581276573109277330860578351710324341795375662338523511570306138593449000967918045724242849310583532720663160822987574829010113748051055097121467084424970149839815296163423769606485901033315529062183231151913716840308751199994562285125583045945910687165950539312270533267528074030057364946121326609858603390083468028497898566153127406847056001101695748934928019213584505480855792806552484282682594686495761764847804840537370240000662966816446623336049548001572714371659273594152460297438476694266500331730368998358377256615711530426050663505990679493039760780981102407539751065949731243264656908271147762895761870854244043078386907431427678737891375050534510645663744123645414241583508976214631751333197064665020447220727865851597914972139742114161896961447920295969344311207884377050803522951601010259994468303596644965555757118973164038022487684914913305957727688182214681199066145285164858382266510271630897809826975889352030468950255685445335764003881851738135268458436097940706819079119843760269062075411614280569065897709992040343037643345551229321780820756877384177098470742073114900509197286535088044537938705051448564199408861023615798093399872898876331099249646767014110291083560682043417308797545898399884336611620364361234649394895179046148660607461137697418653437135923166691023653478084699993668133215142818174994014647971055772689204218878814514754100203780099462410251085354180791529663224660260154572912893018554040511018428645060962683374869004544678288097157896809871554255603183971506477086449710788608330090092190479867451845675734037657220529110127266210734930603954362160740625915732910909717434699284939592851789320639155372203006239283225276098081617987684544927819066418183056429110095733149111881952249541872448406548873570733420490076244681174153126192075114928873423965647796449263920031162063460245918034155907011587263399201830237697855958186846291492386498285581291186744048284425346351420439866031007313596596207882990094985302727317271605277093204016770641861350304465822459757122070682397282856930910240474488539147737148317689567598028880942151275228566960531019550104692224640085579347578248817801542524095110228484394777711335319439911973751721846574901680847290341091269064566729743907975439402769659112374168073751679927190508216963908712069055255935851042952567708116534024682039700455663632657290372283225413819698129258817373729042474331336837325288451413301497525233987427991822525979595833013702256252121400081395598759496564009402806745911105667637198392876645582942222803624472211809172186826717201453357410615506999329797007736962085914074291863378829753133796299992809473918060817981592024296378429931563108118715825134178056765068196981566766135680367182994340532506505732822299883051244601169208340686843214027194121092350060247378841451727870432867685018249616142048510356278338773215162223489566502671624319485800481772479363140845761903520914690932660585061611256286370851030905831422454783538864537773689581919035723066778504964685510284746169098210325777841484911783099251940670443127608939719312658292222820318365253206985007864336255435114624358237862868123692523595406472851544535981076309833599230170027532597762670108598401148240536053207374705436066954614348963808583658913466360059919824377920163630652840103308156947134621304743352050698892046440708822164516515770608949160289363299058332645746677804257399858452049124817935872063725832489599457864221504291856839587394939736641700071474551718748135305621188941112266286960225203868941315859836323683724313381262356173321576902960898096698135669192930292211373014470047940338302509495334658578304746168248988642189219405300892463195283223378735586264126524238681549940209546148865461823042522000276254132768508956023627595853104664589477555259756734126926428328321952729351027024378698300891374644608328924556484475873929808399115277392845835956987015082510956761215638353104900237227318609773771468202102222446611981351444743481265879239385713682844359379701801285271300967582026167322726203896010075784894574603201290109046146367979680416391240124882974402464535046056962437334110000241795638796782405768810757593214588778443360312122192063149829961926093792192901746265748955208331135444124901025692509998119250345547506314735116555596173099588896928049377646673622994399611895554040539930205558554698500860144099096671763937556619302618685220611929349962986461793495528514715941268114390794842131004124810356665916598540116199150109166689746673190864061262196258889173689285500084849525984616331021533567496932922267352117266278169682369227286564817517621856402073589943025134766299940281905100651234486469305723882731350388896805661095497921173404114984515581086633458661897458118301139048570426258430357534250454797547447931232219844729629844141878208895478107504901231536734124663588504903381799237416012302892344116419755929640712093199128163170890446031030599595424028714819195171499089702799121604968978759903784964385172747540745860040153562779030762391983259614833555552219254898033503096460076297587835750753427695586137378081898384716992224089312133671273675132607950321311915041430113348056554886687601967205657547434070014360934432248697551720667666242829481782016242674830818892906622743347910360363279745648841027904791844282956585268241285659559493577454755932012911675061256889323255868959483804081997694014199807451781264389173641680768193518667899881907093910757447074125370404013467779800472442833247543143360319424802759727217989650932720988499134140096728869097597717348498978242713273905159591308311901808319181805320527063598839573734188302925630110420177002671592820534459321023013883375644441528940484075221118095188951330178337779989906762296301646911215238502659340291158771631798969676670270759245800648776831941290692285907483549857026673091397375797588598408360129650336781991777680251193186775561073625823793713356093101545914262849897236748024508025088088573277831597684690415863966151598099185023829017973787066413231076456990788729664940649682709381665074160973140338038618910475502551812463006491788673000341030147373834292461262971591984172192865042121063500963041753185251289747300855144252372898793798760936905152582042027088198454960731985354319735151592822418323341254770909753772627717030075550660768998902291249910794797360376504226027819768995798422765049290139256958546182871965218022118944589517215664921723123709232890463396568351781744888225649102220232542930266575622588830232226718621835352095745490297689293853999375738932906039613518435970871437888850702809620805687026699971069296822211120424579992302390714314955736914779742264634891843069074831299679248767977007845013649459817528784951951457628646636955984190818766993848698224443251394841274531018513075344711579082640203960208064758303152286835076457148631328755007795595022968426120633028550298777960122382942487598073255885834246261990904155530556534484660026776529630991138319280548189770254880509393642990850713575517596640522493096466567612755511823559527720462605914846698729266135405701194328121590222718076893803325760256919066831377283850006992941206179254336666540101056135044406529022599496950250667643228056239249504733186500733990920947446303794990168071891277483483347646620849573116010120357111440294851734543812541075714179020774307416085665469640108882536290738795765415561296409999449508533713471650214650736591264174209678600866853076300251042392496248314069690445016090345854344973844218898552171747513108723135054434619532666429459365377412432444781938508607447239602068897197196890668866396601986038861119609705670498238958291321817411116301081119885394470268296921051789145354837072589882541150545350380525401660221370998312145041818770242353938017485065384552528689305983618690318011690386189132354234966451689388205844505727283934350560811039216858447645575682783371650518044210933979160503188017356046412738122286645091530334706290306945471867539336996648904235810969706468759037152184003079541412201696685294845634725245046784672323287589543342792865811291250389915291239051649446867952678259705286123166571382298706607475905161895047513091981251467260895564725251492922730485209607050786018410647040389320082864452265913416176411204717461871610927924414694560146404968383898478782587393203384868351417388356110795514199414943012804513211113736675761855880964762784170350346740060085247523459412036128698319908407751610008024664984736659902946953012046299844495280767546369231914480040030701812097262903440270600222373368653342028511933839208720886433017569553108817480664381786815461861747346235425212839052043131968282071626762635106298165101618618621145646671888300751744713650456596855980866515415181560349245046232531251421686136135867222227665299498032708402605991944342649836669961059346977411362720556111847406258676163997644156599583029017770974099496117085972091262345282715466297194300938242709545101788782123772864665356840950328399964028127041968381929989073786445441560065495883280020670589082313198456821487279708807241280675050926125795591562852145226429455504898071854866515872942711315288523358609026201095137932823710559661328927828900980752898952678812326534988757934194307565823821360939363147376690789109080000232916168978334495176335963669456702205920638618825059958960783036782833469655982941810712762731868610702222902752863916816684397324390868923003006277307611170101980412963613261104190684454139227751661224809964860348295343580508539337114817884749389451090463890766030543306385242574024972060554407157041303907054274033640152713532465707325517836716053331156825621522350747218048318508193695510957704510762818630475720337053042148932159010712456794505998096805194814122234942207593887181213330683501477339050082657468579927453951450903872634973626432579020344747954629129481743512562536951869092383616020223856512999950833717336905699186297616425584774843590725946959212413718811611688192826930738978185526451564923714765462036416603390254506857018975658113385991263888684412211700955554150186160250974867158025842307243454269265395813772457521029956359665362418156738403143507509919431461003271850894980168977568911437771566655944206696397531827576397045796948536768441479072361440608557627421071628453207835514812996386612818486258078873990423511202709900121021172557050838435989697048216187098748116366776703710839964351179005571040719333225746064497121697126951573685689117103944391610931766837245718404247505660060955704886564002525237647410315393558118640002613160665791710780558325923761294755984740805735604664121789333524075724303004284494257683149257376651670195562031572564444750279459275230120055979049587574952269706015244297879413625018133528197372991797910176533842103296965101304635806698526120143924615234284440028469310689028342742192933465612829516516969720398961129896814298596021799809911221846286461461172482723150335036979630566841093763822208604988195695576009877844063425603450462481604134808232308693760041268734684622067156444912215064333877605196403685012806144651188501675559670287663627476392294332983409752957490391990367066901521811356818016837144311411070152337581518850333799194232111293770787484269501135249514493550929993642077559472497866934740926035373014936836683099868552483669422727714738317619941022312772660064755260692132753677794696354683273965533436511949411911886924359259331317337820742408404009474426246602501910591371780952906922689442086255052926914105970381422202297343190154288845678430107037488083382820010955363340902887755574480884069732188446252345786083545393922320718415526200193513045741859494904071284928622507742848977659239309734063979102307121016845497164717503433057359045272326412402538966417338368280612980550594993936811191027968956820749418476167223494761675138614632728133557269721092160313955583161088495213089625422016907496196322721960951095655043676410433680009421111667098726621923677170869300343546831850302663049568765696242306262487722447733279889207529456108323811058087314132381773522255720334223811704775481445587087202637580450074511102495751957959134833045392304696955654150176153590715353041153498863078789646430051348431117386505807248976124908780885863652520413619531612041094183645048130540754022923377360722941243199295142969781141305095542894916094151359191254247403251283426954458538759782108354229286130134741963987542295656413272336544638960816186470161841388302147123281461141327056424609425486563004565562688274200191522911340682173361436455145266899592162312250043369475146995101675622176455624617822881730008613072833701932587804927520499726365075307102015309279095790679546076242805276019183368483048313402699577093464535897351702532436693726296287607189662337969234014679509871293433312366397462905056385124441939668250244611516632400617359022671139525338932339043620479837218821102801570844607646144167363631805436911638011694682665465370277760114535430588091701030036030000358427678145696740426082131332439820274426764751844482126876868334088094445320141933564327832354887614280449423817778295257027917890292421977715582450595867096810463312444273000526771173756065092377550013678554339450012188505526517060779572269851030589170597133850596421781384960345693917084952404484091421176703504706166905874120934176354694823019350022649180229433472145457630547254574511853502599456083886863556986746212896977223549576655077051941285633740889675607565511296496792996693037100875645572640582874502146035543882622827579883553536781381763950378737367021618265367623017691340349028125069046807807333066471977005365442434303831449277224446506158424227142554729032714375568448250024144683076840052986012629606362974713007091868418965594676730754057293178704418250997372224640429141989288791406872261068463096407052840594749244961055842861496545697167964990988639526373749494333010600119561421036893343182970883656735095167989837194252452751808603216307980200461876667382278175676956302947445067265243107816045682700917047076491773555260095420691541400147140284591357466149227146801089364268765316068254731797295781615054306824979362268362916037874367561387091572419481187059878634573404970845280803565178446932727526750838855257513847283995406066114744365201501895072222458766924745866482267260221939284437911332044520732712020632911715007494378944737165540645496663861494927758922424083828787564216183675103807803310083389651725065384176383647952731275439328474055632406471995317949211252179185226756165361715220566544809410409909414292079868271620380971887756970707596350674829623591727070383635720157829306093814018709109182487728673434357882333486428943266411581992411617209359809654585803392325378346760588800561508040934380888949613565854489141911366701985557014604265432190730348919511841262932980408474915848121767516632399507000117974382922882892032250754635381652167384037227809249807631708125442844736353974630774860681520973288861834727183505754247169046616831714334624272695370585767403057589824183697562533125616665028564898649874879231946596281579487352809894550289560485680843373246216174261267373186762619466974350354970382591714353013629460337201492902395273728148556998013132171009798903531610425161942263546825852620020072828044428988788775571346597615954210723840118090268148846508065955294354027228738297700553660227273847000055228086409786876847354008139691029803619532759368277309985513999811243620146629897035503366988808553274155575107663952849956933497990453005127196928986448734522480125572499514478064529638740849729245042952123765983157821145645688261590909799723409227200148065529844819774174144582592201519569913785097337513125188456756383091995535957347379345930880924061555699542745418168015068871985413891082773886321308958287793110083767892383865517478952120852432846442252075388734001246855123411375068996430304641536189563660205920958587593100855757884986463050145676358693693079143883559857642420971864300230398561204248769718750082811225665434007047185877725739129584286778958422992823525313263026363912141908699862687378102717655663936821841451851854256388027191179180654895695214585066112675621202538188209786846416087785634240580293206951367615236759846029373451853613270191195451724559188564020187793213145958369879776905598522685406373604203328215587235804655907711604587802246410604925870075299539831041133352413938193541108079784266650992020246271870054137090584854437247238661893918862892258965734583048928818816531761599069402564930701564927504729912192281194483144048334897192394329202619981637890770874262172414842151547128891090862192028826787658228283842101331650849631268945951172066774252266611606353715121275425915311473253436527937629360151898669124840775091145590222072768658815724070195271133654265016523911790844044246771528003724828963051398088251465091271305363344040171728380585161616790399260210743187106994181528885669618847013068523187648630356215684668044788006966629401182578732198283713372107695244372945039217730986714977064809714971079368445576556046279299824647271424948001884702186362307456704612280040476469426125240748560443047793362095111301458135214536001867957138334434361477290653741589024702484709322186674292110912439458524142427789030564995164812145524364754956016495525701487752058134900372888542161144183343578535327225254391693458361312057220364579576336140261045915230728994685157490194688135811954391614504065367056649040965285699811136809822278306821539022167624130746013115512939020689930578862092664789411537477040029969151202243573514347059160639302059073118519257636994851681954367817392212251002639559203774733673359993123074244749719084187204078948872541455228382855530170982503617197393212897386175165227552077950769382143420811656700765845331612498856118034217166480781414898821421191513700338474991099679535444761002162193359996492433079700648611173233711565113269804090825407981297622728797342138570625786573198464029826083588104475837914903239395849137706145682116111772600702038957726243388882078355732655248701787006290479321301291624485464227758221422385191837032322887740456797617170312770736689172975858915925662348832267024773922200016877404065586187046371687256399955054691760216720858029816874616395392490849997081897967149318756593008893725564688961136304919768640345943454002395493877950096305282140491240729327294330302565076072771193916112449588124770957540666922806184843727881927302210458738335684503364794594573140802786454976975681114485389742695452184618468885291844941945204138606830156744910074310846523267980491281853503972609718901578041415939821283838608947041873504116697275903169917073491684475808037396490044238631055775738749400556361956275332606325769372769291830864154369725540219487394370609376887464747919001439951163213779765576485391581904763465054251766629459347905363018671920176883451361199335943862955732271687846002672050651998552172318980561846396551922816335098938186694527484355044468246369340467015515690290363571217269558736565846117317972597670377741065201743394525236512233048661231990425558783893693169644858675394443175181589914067075003455061769778934887967389313289307571706457422142758854655959470864133885552751957021993452532839498248322474517640210682111821103102913419810875385791803851463369279902231696808255074620918382554433610231642991560624911451812268775475212436938823578966456508636930195667853994787004471509802950276208267875446033426934396754917956941179364729498064753039197262221663842634649673847119592312166841150828314148055496188140733663979451115658518310414149721541858566458052491786918349731464124994229390220218336785039575963507265539718424451300762430089417525084846027541563244277399668348026198549565084852283433279007053311362999055181936192312839960952015269553507378051087697005893758925667143392350599116421764061264767370358170736902819720215208872581996541961963586080207491242896621617114613148161732265339184555272422304137352845634319854995828625843077484045666721110650475133622731862007510723188137757102145751498893692217805755771815871034094393589110191448355636420611684027721789635421735253237658550428045480836862175958994835504223718988880730203740606303001718242424818911150339917911496056512391459322104371419392708975033921549170744788450992668922132622650425433412515087186614526548645535914121998216487690498366783152598407217353025011234049563089217229014621806889195910441217654079910711652372630788156629687412886316256425065745423665728473783234230428698771193420141244636475971513514864100137644313017548763875642249394197577285789968758346578225454544599002558246284239021371492853679792570610899096662354663918893846090867382994274201662333679312639945546246315220758138767199522721368586913912817351012716102454540024890893556211429811869512538707771165550689604365569566164306668926032607981626831551856586535181547848339580400633744250795166467186920569071362030949722158951811643095242195177045184575931676227803019113554399969658392605024671108035497841324100182291064450004575023412866569877063602134892899463194426711362395380418872497529736301018332603116208176506253505671342327491829784217414314201179257277570360202585805583209066282556073312254137194203466947488782716549982259654500118039713633579568785523372133444254298996019382256491981097439350426328562749700774520724793395375209659539355245378380404327613791364784948750772917456180949211749000715625739811860697602694079077257104365694714917065579679382747263571098258255263449620016097100776994373637959784438750639182699031352132412573719963716603005554687975986107164123458006268023562628962646548454399754710734809339544611353110427249946840789785502759546748168055431055901379838541089921266413142562849833099114160215027727882751703007144748056377463956791426118393449880161027589348033479077407270733722095844320148181647395874337645446318361975601129636183530530843288569479799784399946494806204225895689808710624036034987613025970920133452024472201762239512061973566772345657719424678438044509089860022673416620777941969923747315444979073195606105983728535884084343716955179940752908871596351120208634321628697975896669426836438662204490743474747822442778525440905060626031103245550784207151642563760968262455180351741228646250804391741058042601133935936204934681959361407970354104828783348276009163070768303867573343947401521963222408708329883819508836597381304803652497680324852301092401835776081556954475496311768477302939436876352472824519418553873489806710349068612711370731608400783526016492518597176591101695516148916296815521100173072796177675022188762122647798191016205477998477417316204161321378181027035810024986123942937765716708833868703184983777063486825665257364868683489069922392136655125153469450324721224339580271307020109469743423089864597282587144337742137843177710329816476228244085703148912915101655754854814773709400650105422597270920151195053794475496646975098824991193369497658905308467373712025142113451035421963993412682044597654374224917273100029081935237050325652980946648681957890099444425629979608448654601691719422398384414093237530378338586562980242941029259943494398326282848394972435032906255635866804299596163688905118798094153662822835286853490197966134472865379327632271994179006900145603852820766991037505838919235916777225158632514817160942953104624851307203921092224104316357809147566152839408748400565011006536945326805338641035719670444589530507754162875813790505028839914517428002529993167185135876603353884470032705358413886919788867435737524968681007644303380435912550094252893734748540403214228856692078325880758707929754470663427289980951516484316596780586895723675446380471682515987047866981385683678137593983703013131469667535995249995237178544861983194715783984941970842990724075363900120259083174391728687985960949387441091640844843582719325453567136804960781650886496033304281231755843042638845308179866665056492003700939492843051879278806582821809700818696358641539547137613490010657850068015961249683602565911826603890805521292057894160227747201334094366586589082472326398251854741199318757804512055681922199385246312990875550735777414066249133944177483609735769659631556529239238784612100361098214481403298579504658252039507884859985432016123872157587732739311946131104036529199998002893172891185806472233410925839479323607079486378412176557430944306656979693728784187615708814118267274871323024140165405762590126146544871792422858423839652394949927407209227789745705343153528090495795879836380244380898238958964151900002225333045009204907097712711773373447583640304945179839222939425352295901207782121145200466976017661772382892180262926344874633815253963545945606437583202539345143187455801285156142467370277620221833815059079429748546554127838678332655431026309961505480866874461850481455850086724580219058313248760174035866294867682157243672341848045813919932828459320123933677411192904170882415124516681369569568211794841097973719167738956796216028201361728458902126577755738116546431261862535660238323385131990443601580513674637021823566483719195041174365250724692382011409296872058465494637030952364185158944550795881378378135958693113539842044532248328277871578040875688243397658499375734374387182443693321847744832838435408466567514445279988254098647013606710699367665137425566854110203304890187232626541762449876392457411706327782247008308916804652679975097452386478779878209990245763591812476932871028438249478359369110535206053257340320136896693243216386925893790824634006995369970754685454765656202563116802747148166956578498118003132180261868136215234342469265816915660096372264396407304602652562417116023356327170755263419216894146115636614000684568361688415512826038999884316124057517501874787250720725124433315104311856003095183157214612186621676436033365508354993742586291620331035760187644806378263978842844271673933048778821574939505571482855495816281173348674158201716401088661278531811813311363028964103014904378625569760174698693874786505212456525929035872657626846965489835956185766724241813261197662852776107795498581578289232802506503104188851019456860413109876063243098052648397725473186645938463830368952532782657475089788419397248865518658879587458214480671107155003950526635253437378438452120762032965583987353092824824436734646515123129991318487696312476182036480473577191056395000046762453135305342459390297530596010013010553202736800419576507517747699470424829220808977302971208351061666936554763897611139997696196614731374298685669614110063460255305287062261805916955281084445074242104400667972740390892974875069410578170146416373667075063902521974398384980099444571623937379973224896084274683983255965389149009802300408996885122347533689793993309280202156702169407753329995807450913611546837135743062760024541705584802539735502155756954277901662480166524833704286402909244803585044536084066449991377248146502926913052834924712157666792675917351504425084539865921739344386742898461978348389145431630533713359977365144098118996842608344334976475947419337395524137245709279914572630060568719934629469258161605566412157274533147706494791855563294016982362738316215611611103848579620899737981314412983578256777035459814399487953152207480876655688033470790240930463494324996684186494493687888461207324297349345204188265575165636963531938628074428621503113418671465457009552254270063622869953140112492262048248436872197243965969406450436131539166705233426410676791419851546066273256059166711106195066731765929394947955601246976815858509892185468526501528636676767709392674668763283671940118459543650713511873355119171676113094311519496101079578178893600113913309293780179977350345197710733548191057285268975280020114072688372026773449677012863556206321346105783607418512489525786107262740511959419537698366513458333214229947117826881086561893792533254701972132353517705476940541633071649837467443051436799157099629040551280529397403386990425026212180420401848188122319421056331819817353680121313218197835049355079153189115393136380807891008712274328645177951275977755561427694289290702140697691472676691681724087986356030787598551857789320743038939504913082383202372354496497291444612485494724722060557851785587146674100800151240582643470465646107932976509249239154582452778705377762517655411346989110511230712250027589338790435156558538525552096696480641714941148665602424919955740321371864015466254337344646382615629012696582469847632047375402870134732848235740464997507158826693182223138569908854338413755838221512878361541377473724120048637254282502079198770378639349798389794653202492489737652471032886598915568596461721178622595947883325545398878258832467013410081578179345996488186201598970401522511604981115989795397435148035830013982930174238413469216006723021627263838323224337015821514520777440322842391825207310633057848160734312500723497656862269095734580409862760704607023722469676769200611386297041721607133585206819402584998314775008716978751291900790080712265204219554188050832130333967813547873543777968721097664831600423265223265848748070929323098064418558665684582281683817527678995893612127793940394808998699765528877192699568086806596849126850059805568194433329053415173199655687122408886914706872525140004732914771408052388654800298829645915194545971608704127781301926755226015812642656326645279586651948967869114655851230078218287752491989614140879497626206046443185728389609478262926206643187577518595086919836213599019859612645478028999431218352420179307311077763143914033417634361691448992332839175350091003556209280410151272583005810388294540456071745408038978087865739308556515908676031845878412594200539470042416133784138038418261631957617117991378790677728606536340887512018857875565361890512196122827991215538958153386462663470262585801108610215629221537419167329850180838069406835032419665335250003716323481491679479046244731551106249228355351811058840136737427968588590276361448961547623444220095843479703573302516404928518092950073965497817692468930282893704063009137928903182494400145754952096311277138397121090353547942585446630737799288115985018908676502868325855601611373378723450093998821216572962243758954649878127104544774725584303060775119657619423321545893814811398079426907355370397195287977356271669720649196739169870422321669084718929727087449102790329480460364264434491639670576224186363578038162181311414217638965651471446232454686891293591665867837661283171032570621937222966042687091997650332723132908103670053529365594956567347996251505971567389010092352509508216640899026021463324961983449033159097056965397158957750938047329432787131782946146760138832075398418832094209239813568437447743655981683953858729946876633880284511777094072079504860932956073593462172772197764285608763071384059074510469698126317205991544585281778688900467839132471787287578741437305266762355283743541533824864849939439835988316098901636722649635750870173624707301819510383408223493174313721126383031397637710677963455345459794770851823479803662471850865848705669128617933848028723240376134436159874343437028861697568677567941785222273433821448529449407437607457117746867881302589918641766944372431720568597718023087191418035536978488952060245071626617465707653557820757374339066177287989517819047706920691306524683852764059719861451899151017701061345821570156203611779630123750008676049880118777736575973251948895227755540352067882484074038013545696212355587676679726141497288468166514713079950893209461531987673721068322331846624512460137651813338180833470218188887323495316856038834644975832453953832219677929777695073786694861030145054055409019285050076421412967963380299898494234731582721639378847380854311295278411851077342347287883923453831852610596775037733001850642457821415548304601259735137272626092658310647162672244723426715188175374693745444502841634528143540720898790425157778657677165493827291248508346232375997863657308792333126546481239912407908098826647428239043702006001169792594134537148396562542950321250034480880312119515262767468056172128243754192995636851769260936023633288965683212812659342174367949685621394220912129411538153751661009158878728648938875419207076308360708470496435457192523881781731225599472617330983671681590519475099804121147022506083601663820135765239466694948343220365389608161325414319265925584690886059371635385024853992984415309423322986615711814004202355679599822495061966610783485223814251514583105501824933222212406006571688677472688746702068351760029237113533680885018019666671192678764609629764980454150446136690323159383748810500346622944627700117097553292169041180924372871487775618971390539901442399970309502024836424627874207732937090850643974855706772967267290248361338064007344881741256876206876559242794641394529707839627365056496566046183326723978896772667151969167856690998356430697157978023426326227624675840312767828766397832024122080812928061426463479535193425659041989128281094147303257466988899440273927308126743721261739320396453787167270489548898859138511741931092353726672619060560824448665187097064843578968672418569151606017491848800913106943785570799394448695357922713077162309686007255765911835740795618961226495532127915350827473002761240145006243787603441865767054580897749060909976241673429834597114443409106596508358319045595228260184420921141601788795869380857577096875643219907466826712665899963053364236295730445252775275704485032496098132542724662985060480997803181766853420248242998856713620154260702654494875480503125013741800863094919951611982811966622397780049070500719759849101323654963188492029338758707726500182441388257089411128746733806318518999909095541240520827874968557913948213019735537015370254451728398237169017582865936196294922985279382179382232535297655918537949218944696863001064062448325007432738574210467642568356152313398242940962831085351047512419395327286605230851619713851032764148667888531685700200392370509946574918784431619509398859531918354988633285783182658827688970851185672022503034283970348734687000322636327154622147312265555185607879850310908230158752335482627507721425347966997295124687247698284095796771696995394128780811360313831980378483600839232384021875202926628582995007761661205010055941728693243660535998536897019068387954970534496050478464828376813263056727566920800357222373156602733428705618952859607778474573698661954335091397637955933449332375370554006339405715513077278331196562182805374738523295876675164314383181165460691744084762814294416996262713214101265114189494712528919953305394293541875040367490635149691467291362412600798990685637647367432373181614059725010952652097884380380221731371672771297708944720716875010721828665033874439821592400361851927359642760067025427481890494720908051192168936642620381178291597636713040631764849145980798150144097915724756237614846932982928295061046521692191421014915857534623370440653110808398702346256098045414351109277873996407680173686775806707430780575848724529472408713619087290164633857884899274799845106315744154222023543497046303480389596154179085807355346260805046150377569004257812127444608911280059651545493013393632930503144887564426600038006070120040390847887014606752805594860640250731769057513871349503752258373354316942505277182215319265991944954606262359557457882662334681892248122081134083665486750628296832931886781741362699003246076404080334415958138764741936406727454253205073042085388878974318690385127932374015324707437269133054776673677779190993515065799902925903677747779082601361795740179178162682514106182772894526902375341473498680917749844363628427125908250793608264656804404203407196549348554729353961142004786419520656151136465807014558131103252488076172537994635838480620326759550159318428138622710155576677279787267726372640252757487684557941745930116161645206524522034420880933202845584860876049565339816383371757731849809816579396314244998194893017734238163399370650738586488567552680326738780021629366716603407183493272255394611610931160718878870769572452445293220578028390092906268939465317130566285774743984099929579910254686900864814580093714753668527800911289929145550107242817178869321016170304387682659573584939268870370002445487997268167606216088046203505681433957276812605587873169703562019247620040982183212669898400933674830854608564865488009489137070358380069063160235700776593237784208112987699125679065305008708369051788608307398876099159678812100618153324539316051243611470922694362958258130906673797790241722495815088562380841838715818984967413973582903596431288393412245185197424635538712199291477858956915857174597552250462758774025943574344076994553969366788293511832433755634810785414356088999335364852857977195874588920848319519425597694089896876155051859151653240088117929957005852278880909060714178710152750191974592613391332546980445298079277943669873197449149312523553410413113843410838314055473631251011404193929597655625435250634073041626490038353058857613212701793198982408395345315644146639872569595948358109489941062032903946204042202662655445837523860631738255702823991873945747401873211568717916238286359293599577996512507159860054524184947826126898107693787008053594290325930472213315501919082018937317280429109895354887039911419554139926908208763117310465666067004060304090294318520942902479208480176006886418457024442110483118723803373873487166263282935029144484156614951013923176380128534725046914335069482973166009691229903263840067499145072202612937422453389279002251611713426165512517035881598109519495088777871255978482790854059379314280369507957831216935574659433694997928726837045716660349032965750202017651276394091693888366429101550642323614747938284794113311678126239385383063748113101166406213515827763918322199159369851000235095871201386092209018277255907801217416316346093904606701975126783232701314453698646994087654513231234323942661968169835498998565104968414545593747587776032422818138018603210808942803912605289704335125756363147818609684166661308586075468411748672689516969219633024579122126728237919795499011452962249590697069972194377590742934100208052840197267919252561587044765049921429591624305017766317396395460533427906420170512297907620905802237166006139893881853952947148079634166220693879279261716801216975713285722942579453934511453878140853697959514086156057157437689758923972134943962361560286772331442160907292312778948464734671339322389994584823889360173234022410914580148491709895836922117597163825374164109931892469344720469211728847891662993091278914669413690375299441776267958628022526415842270798894395676749145926762073574772962630366787610088984563416061742923309065459553874373550098479057221010563185822285955893862476979105315753811188364000599437501664846032186823165404707248792579267569034183435858664950104368293315549078347134742337255692497263529563718858870514762282680396178383142946019643134298264764852307892515523695180866947286399097400561493026649495385147467815750908715461530027014526618804623781208622493964673519406656867823161785755829362004189796466465228495363404484826839508103302518239737683038907636596689266537695038574357775795288697312264289153795205706147826447707751811729019630276301325774525431244760476838218195467569919741867327988780378286563106272830099969660537403648073906294369188266201515273140913192544284154178101710141211386584041879250287593744282338612055645195912210424825923119245314130621536843255595445225682253766549083280136282486601077801812742481410224889966970031188820545927941515123398656890638395925806648690561666508168840500591448486785371733260731740673314354674088650859999750434326404620701707602951889549998868560741393886073660294471312175435650637693054288061024468198535054778458012675527738251028156982478818799297007574293066873429607207379831166363195012755536872921497636704089928109035962033260177267098231851898506882913689910450454861369664258368445146046330156441229921511899627887125570897497881583869209367316338544296254172828674455555539316575733072332309183381380650868186572089564765179437083468111177543837728296361003359953214319202634687215005820616038796668592055585864099513671228741416469322047159192170306806412893721043501241234694717337711337923435131471586558952328147483275645743270869828110366911593185776588121991348892063005018357887295192518850773148084023427205372815108516809152386148945125993792460586712780984404113743305274025785404641090862292370589895186649779873696993354840672844654276736821341337962370577043343602549164586598573309363111043545098361907194396082264690505830878177217088737758462262039830693144630383855056661463045176350693353568190093657921584304862738382342720037348544054471735433651502124998973041715612299145838234958232468777201899717875162839442544098972079553910505117319199671446692085885469399550034953009082744849361467795450337653787753798195769054382012074649844466057170912321499131713423895764906584247075096795353072068561457713991199197178866973000396038038985076158538170050793616445440985595700926105712600156214052243874466273395626647780093510740677567575309617762014694819426940443349058895026538903040875669561263204132604877501812706832118523370070968875343012046481865587795177570667908336555894745249994879702673676553262859912035228526462031942618629596331441798709432582800989419615661421317893998673652916018807504618937829136318133374793886266920572071767613841202652844822008552748478469287973248773686361575275149504327581547324448200150462291316454288377432656966152083914987231546057944850560204379866893551061461762845467358916670644000042822235176395026089306907051031474420958177099762248173373946722819483105914339711330514647611726813480731645911977017437396380097405344575603203374840234257718204097584247978436845659263786829578825751374361902088731323334332889165988039354787773695010106687214879288222818722884404749691694681158288908107285606237413838986758526497949543436437370942056275286067671966629058812878004609256627376965064000952995540285273921359377735370409191946467173221963446690600573636932635555381020068426507363653945159686435788684024258994409432292745214077982020597992106576228675469245780805555164364813355918661242446991801694977941081585426196681318766870805483890039538253651495026373368912618792946949368297241662887431376875017763429692628434223159841955303224979713755271099938031638341055841009529989148658353479063001798491662511681775590272789219763869683147996100627413181206158215905976313812210184941765863145544820718024080896849509840041044439301597674382992792249181934266892666662138388601357490295111925431850430039181681925518346911485796816093242574225336427982674396533408341299209946517336670388382777280159734807562429921034465986448905755025254794688257296203820752811903842799975069280697562269806392380730899410420276209198224253149730734307326728836677659508250702768277419893643718977557953872363311148216117534823625472910502471170032562330979123571914817334434865335775771762306148399824658401019549217126209349837459009591775820556732438318195603002730678467741700876587457193145667619362393651147213117010693486344355896139258997912156340589590641105225997738606514553234158977030046533610619508150774304237113245884868133293082084926924972200210781160568435768160643334985993444325055360013701453878951592733271717418406322923020411550151165060330966545144504736394768450551735032770443938090767776268920906006151908408005384459077239758019996964377469678243089261869300087582573378568430708292541791761718605503888445717585219584552933481459329741468233801059823591842841532162460556154886485847746004914472263292557571873913687538703376675693315313151234178733880788208957460907271367538529551602725654406632745694357620121405935887303064994099412278188135189734714026635969465097863781011316775074514442129406237015280460201812513298736172067232263509689478965709037017326378527941831276617462325227377968023499506583501519504271580487382981359058060615179196757401603870831018543260482357981271651958895263800622605813451072045195542444542538432808191962252118074432880971469470271019637228596789458795377594925767673860360784848844114397706261014838289876887697394664305139573021905341947934683852408496311121178281431410034339956957861284395416921633958160965801348971345671982428470907238249354951643428448619889052995557135970572042381738507022569168955177545763317845927056913142547449948626130939248574147274016470783521075174290531180755806554758791305242038941232484662806577403877095534930876811756114721550213434875111156672565238666302893123091801127764461992745152839983855178428889024696223173638511629872692333104362181790871476668715273916564251406209416381007348556266686284327301908218065759313831668112767191556433087681014867845774772260784738545014693935952047866866425917568576170128053634129935396666515954859988113234058174369494524973025518501522011827514163615698729376121991232553895616689017282185579898796651287277783896243967426310604655101543497677774818902546506890041611152035772084604146681752647514712899529321841024335139332517992869048321204353001494702672192088146608120002044906040757391126624223119344735249286878355654347782377450691734178366408130494121123383236815393239403593864869881255693154116884468653351633880141577388068560108838020163146097062372947840303363566779967463733666558441084005077248509086647518174077199131790438429137185369001203124817322048074940852919600319283224143950394243462608101240803355525954905258815262196856433938551837593487104871308791138375414819671799590407825093248195991538572111553093897944235779061181771216018357883165759289437488455244941557538442283735278796637676321065815271820649302193007065975778817587492039558409988424075184709348993257320079024276000771022604840200243596125043502250274871159606927913735749807534357300320224425157849511537106396422333714012123208968889622836946900587432618990215444978235619188299614467107682343687072686225874596219203518073008776301802131493622451886601789679522631853195722833968251062060725907546875316092176757586218090246861324482482458395350965524575634760452406001232832628783170517417036616804884331846013711634663665920232052976027001965900838593666157752753322215044531593779712525103670693306649487056956622514551096691392510603795336883416228466937036380684630749016277707767881638000417236436905501755000335903108051605409374450166783295515245260410264748229110991231924123430335334344168597340199999666000052254394798524253793653659097082178157949988881450655521585926217482947198786375223169201277847103644912894150136209681634920028008343913968692117183798910271890945312474274641270103083767135778942518507094928076795160724540914911068901729723200513813235170048435909503326569135380978109941625745904211751610938626551840264254939612433190670011020710758424374078752412040183557932289345136344634982315374600239776759285353997035159277764737861143713029905706854698104010801303720034573479661099946684311126722671174425368894174563225854329871710771393404337076864012179393825070633453589748696443448120164853409981662114312180362404687361059404099419316707598784972183025950453337824392010191774296382150621831028007699730054776189135433397391562240254265652351956787331719589508977975462526544045475157988136134524443743853478860590770728452790866900832544787853776452637386721926474110854478002361850124837583067177873270255752162482944541911998529584921223536116857212878535296558017506379927975929896011380236014381392953793395381359839430986922776536153169146596176550540844138096020278350842342472399100676169558712244143173651761596761715474519310155234881458479385863929679870946667814631883107260923611864387319455205593264381789185998094633783172867508235954204708684639173104084966940345643162208947880263705109221536830044282891541424426998277204862148611662500262432072474479483607703185312585690864360954240626986955989736764055544774166252268342870502153344975570991111822899781006787730558933780856783338552015758971510613060810985880925290339275835168989288851073114089239342819871433912990230588421447850102180310841557264123254715790590925912187181371994561412899337155662493911863541100261226188247379218210945563099182656612234335456598127161297147330286688244479761577310338952199111034839362348583901016965735386221751963037997503072047665093876193682943770655103995010747600226225388766629182549171816849217393591247060125042778373784925372502095658351008121779210858608192577785089899439060518845775344917527564062913433845516799794733955873763968240433358275506311629648113912805343934769129038827306906447629923577867443732816885423941609984440746523201327032648942360963389453818445904021709239389439039397635165005355103297898560330377464483641933093600257011089630758832254483209220618624987797182821216319987344575438445159626958288144988951922629640731484248824809528576363296808715252545793662953535649870053960037257472498153620885786203223484719402352027110727400555362537832349094785258772603277595834751574598048439928874030201106513466217948778615045597282875266559187343517056563346873647699409428728066991180688430715361672682590854104516848686247882185814382475768247480867122598244910565932591834149204665218407423035684589849160291822284921698264760791275751348458771344483812401940701868162545728637894079528190685291994067893362456580857710817761215721653159640289486671337459871060411606275929910788567435437376006197111314513573378099708291206588642872939172758610791172681964794188819192301574594998934296369285625047431481653969891351470164730068190343396442542296751684566076372307498702679431649816011286482872618037496579345290788766937158712754538833714128778949611348592112038399759809429859090761803961040864835893227517583389314502029023616040841410687163181137744697684834440258699556452079118216960021635687187663263369904030564285033312980184323298164944075621604015212393611270770326179178511083238567546554844096301885105443926515747648226016995285124339757109231607313615846620548246096379949069518961705539998055924860387206644739516534662260151970306665880488775596265926205777832725547425730276524903055080486172160775971823873936922464588596492020465380712785902366157245496043876661421273938393249065030234449848338851990985643808724301574352680663735845188451872186796293705301592929858972606054025854827056970514550822661888679715195140782572732148026604782065910714475519512718344145424762249671230222706706549148990427941628320234315428206612912784132740843869564822810285923516911004760643154916506789918957024559588087825947446700034322817676939390443393525292683158607889514705133716995306629820995382862464170463206997764565063795631798108350541748852495153114428829374290187561504416538905191805949662298091052684978124924002641780112009341649829728728990709406574600535650216951866132923013378256304605153207191321186055639329562242167871612811511861591105142290694466402971022408878560566088958032628720929409838075886599226722736292760438922785291130400983955849716584034382560430117310274742271817916075618906862188548440735469400728086968484791391891489184582508968269902796559163940043682056976841504430528378013071334631769914774587661634981693767446049675133737139897970401506738761141662879742243109474434657382853907282816151326845003983006670628365937619536483342127989223762612791073236121991956193114452306167342101967988926113987618043724418900918438958083736985936006657533951481659458979786513346225038242417002267938151797229116035701604890119013436262097031063848888661394333122644917710198363675475286947956089845678445104159306502019439848275593230536192945583151738673967672507148192767797084603937170955154788374987761833067874100794821536451021955617465489789837161240156112645293513061460350057131611229810616950969861623830160684616623110066443033317198976474944040321155843186176980433273576237723034296259059745451829132744120937027884574592996434896491346743178236927483887944541717425284724694590691120792683249377267600698500627886278490979202281662646322017305803297615923497395611031232817378903527359088979908745565652429357099629346816529222566381158295617934564134316949164286528251389880429692713009531021265255625657488162358805059712805644224267403952636463440035158699167546483862479732405659150059121512988738862405040367668212894797483951579610635685263508477996215803317109833499825226628915358241827423274169179010300123419659672915699009203896241677578135811017914960002947935359192169560265382006796227710481574941332247675992226033078937422222750722366819891819942645030443885037855604187727514999723362987761005565067017542656740280425877102478615477102874193517899095051241430044836961293413052058042991647392130992555684383596856372506922335482916211343327719538925096669348801950703240967503450540503952637227122016706534967519369593122354570746451764941024747388388564998066769038236255155500999238311670203266623231264048885286278001876733257984960243865910445318399655566719592293692315748900369726871245936426385603101740310293793152112270400777938495686688862446014826356942823614817241904162207017407148064132722858763222784721944766942242595869107138080910303101647635102942675380575844047119483036625127839489117658999578178004644687056177450984105092501560608682437110039037312724594985188138610751726953841922057789479313227537400925868642504802964438330772060027688589076557425505330768057512578651797348416402230966721088919209837122881245932532855638040856189173299647866115529729508250780598687475007400249140347916356184405738717110681268233253119498048601492323464368276251716213891826882286347545019107269104213578381954387220689489238728203626906868527465156878419129121212319702205026167398270284982031294122789517848109380226432512116267919865712268390369853385748383527178264702244811292456073907659616219393249041106051079921938858559282797312563467909726042173831900578133954660153779874756127232194203612410819914915832535033970777158170608054799078600944733947275189803544373046726854386952554233318219286062142510960595799847142636180254468254935081495882042643161989896341905974853890049396411107675988292959023626824539623143551819466294210110182902863312831250395418576658248510961738386084571458459437859998334101757363666994675190342860762197057723364095823603951176701674742049800800113503560140497398564219157728921154416133963711204976702705750481753153030878721350218028721508118669061713219946680681410672125117087156360374923271165944075364841492217881042711914423689523621292425104440460589488896207315464158352176194333226034230401916518427521720946165023972698578507700658988271607322392900981187793372954027801929893693654878209047937925446009533580904480058867142273857165533328305714900862330952345968464132474385402534335758461432441743304625501078079121906619351474250297657470911407783364694596578186983062004373809233052421455702948799390340417499350608080878841183113881669808663757505772079001531583102377087221173429032469876025247596624717738192529797488599669494814312528661267687943204458418892632516024281371860834309289777804864916090706685259725084062689432694102489684556385570987598761735617133976632830106930052613108482966393396388475072968432316781378596287747948382755670982833208087229790955722258585660496297379731809530862355753387011442496876343271737547622031956064830990142106209033883635595793064121400735597606809509863356563073701777353049349180912984181381380161153426446003252990214529029524964820478805358838528118482988198800923358077790626934467611213585488541500419567376240146071789444216518015248257790617321090691352601362359676428987757862032536942895155771216416769281710968057737828347226872287789404109654983043562289319505623718150885340520168020777371216750031729516055193288072331328670530756885277960650430886944889849862232381953616328574984944334830456420458373314705687553278440376084118726234708632840093212802874862472315061842958851885946790054468359019176969516579311253180208023299797965273548085884387004802805344824101256686760292273766808236400614736235379531713123821365430589968644368491112431938031392700020483277928492839959173569307720716669757526314670561128894759049226009455347791879983051165020080385111194056612051811649686490488932119591613562644272017063075993248052744594158986009367843437152167519970364698982186605930451146317306215021197048767389596016582995074391845179411091382176763607183025723384952564078520861301856165908079013560645165225956396992543650990316226418024651997278740407519381108846452459780882275424840120798710779023475274802094001051696693406874098745664401244754015321161135804684555126166871389592696529539604995529466164519927003499299744763033575804341046508555179645053789277484348273157623162617334983906781292293491500348154822866006698300524019613636488181724772789690189571937022640134671573710374016723633636591755291155822943237157254993963734807972374116369360651637110265695106040767170503108852674766865424745297914724429879560276943526606338238920157810211579992727837263195383649789599861993782233940503972351135451876885919030013562893487176290014199093661530589043226318864984948797159125307876402860081156394015322527416105788606730248222465401764295872873997517108867483708311795585834876078456133265850168893399560974171013858562052049684692192290166534834450337395217316962821236776157218965390590021711519331618758957795817802767649369812376521213446123350421406217912836336072614706923893570404579264059535287972124600864036846011152596260648968216530987962973228396707428052169977639666303481397860446981667998945740140324442688505758914679310863498377894129795360686076466724889988689863826935054762564173143197936315422121814934477999882650767266308282036462706209142089289030191196574676630243832242870588478885884053277295449427639919475099680486724519541846533916044328495341911857048948369423429860250118674655871788243907703240165481472226456832165225428423022134311988292828838402612046793509777139488620406295048791865235273395163720740648299593702357453621536144692842779371939731000535182401200359655725933266535786346414616385037805916970275938479987179634878729539757535425684731310795859375726611475029976993739488102950415618095686917666815477044851841495452723619567029233053126132217455984609719507509025858205420294275853412774850971680484750601791034530588398331346102845875221265500948601291494774018249401892553034966797041666017512156841843421873244930790625228172432294134984977966992488995959703021687440824756001124704463079726624957538403257940240114736536577404978778946577443743548358467136928343810274049047037328912789302349636397705342001858827267083672537632867958962359422284035098266121087999774802898478326303408661286964107644335155242318403054844667224580577269672596782555271874039919923757400674002082473780364392505782472480339631649368639485365287634230700639634488942196364646196988358346091972604516116671965404026106655561978563213324928649345274456435894642769243907678544118137609607294640876800200027647072953384025185857785278040372150902058651731032997215282369127647504315917324226554123622357288601698599190130766608919757918096013676412974235312122123875259855779293166277370124382424645667136639224431880705336867602582725931344769270155317866034011721193807133449924896797851854602788822131463627921258808498228764796010950184896150306819480957908952699761250330210970051429244888163134158997482993719781912529949288693744820327509461392477504931616238971211069157287821482598893303878843854174229503517138130005567545589272007308706660124935120184095880680481295111291821560578656410630099908256652053860460363897446810167078965294535768497842746375579996216329358529788193474521398206406185678897265790189253319653871657548600153771589737526070290406738445234451208482800348276628701599824982459429035881262152028302774752677081118633783513250273636820262665307009205205001834977592071166588078850768791911612227493114209444041201176082390180503853755924993702399689844810792992464006196291648767712752507852274561562280450271831570931823428387116287985915097302154300224497514578051530915102206986612903984122882462830631763258619260347173849470108061007198922144672962719975514148048702513353247498055695197720411413498352835803022780775524932134667717144813772209509791019829383265292681380135832154380297997233242104767261560700327768907330002456855358909158460142127058652830302108712578266372723430180751228927156150303277278456448804498374009789074716392807954204987035844875246958893448901977479547459533709954166600146382535423202898734846112161232427081795146590953292882839273422262677475413214257440475708948658637305367421966458813398456772553832588321752866090352826050432052432982672532655225194265102736419298790495237855985238316142732641670229714715102963339721009853272530606890455370083827737804025357645900049964196485436042956484962494372821076579166443360152681950026997629410622614166892198969252873836251718644665445764217489021731502655918326216814619025203767647252490620383802672936801797862365357140793491320009909739243796102997590584016434283889275808234632223054386765049100626305666595279629206369385777316117255309057370198722125149415624009663051561273143542349204302972919381648478344044213084059582376341095832658811734012036279117929756660714085149431135506079781035823838769555441847293476139104640245787520223805694069359360882546387532305990311573802813883988399861532503737634314842681660160561685136703271327143422784988239154551604992543629268161624763829693596185771575451595183708541480391195285981354971161382874236155478396721207499823881360835316515730106958236254521197793535422408200598321979085472118638925487357875960280355013062011699560338211772601570137736931828501802160678433325368041325171480404465641436408784368525685142943436006973124229540497677169150129262494531824632953214797859148397671494919966249070085713271397071470030702272012609777063421968450503524464144018582657090347117794342551013897597778967546111461140032035280405341272779888175973534733563174148209794092504952277076323816870933521903767924179214099336627514649721725358392182603863186199232786938802366880716149631741054950587654433675554518630154461666219351511482233237381001305779733590176350579022235781412970901907320498136253982342605778167619230969212033546082970166728191097569229689777223796987411272588044875172974949248668083878646951362387652376982908831789618885707905015101508366447165262105343440080671262488472453363556509247562715714315400847467096063565766396725559175634291737481521699388585270260751887288605848276456393788193512140550157616843222369436313452163315877370823624704545325780737155438788742717796524987666156030553239416316742954970493665840811592639929390461810832664073670540584564048250873611602903939705083221556765873691334611954336296013618899699454865047010962167133098793969966174080814016716534736682057407508270052192993064070838486541734193710099779822891501335268298523463544145562422296417242503191102767269377682566131714467795656118319616314296492768459377544045876845952556935488440392323459547433393193280821715053289659031871922567592250453172038154213616476521302163702317600607179792301390906387724620922758229596557854252429741705598615790007274652621322990909325098090224122792031691686699776973140086418105320823097917134870979313962591689428161770206168757331412452583414304882392748863195605912784355642643553006613459991265441151616621304645295599207348787607133297573474915466623891472610511904009043689059836809245124842547190799694282971136656255830228818020113593967949504293527238035417076345291713192382561754360237369754116272301916220043374145501765720372868087598157871412034008987220149294031960152094468302102691197134923326951906561182816173136541696149629957911088082692838196276757089877773676100612083258248035076867873848370277047793911182687483440811452381136278622613024694215292866316239304612409600118618325969237347572710902699252425961046667866357256420546912045089231084464936349623151483901280182502315900177578109244752185735991970723542666588421734821746143807032340731390496910014070995811595287785878467943739189804733152393422583819714020093942488631359802282787420128893224867340291871934317436028493785305832686239293069502284143118662945082890461964502578500528567110999797847164438229106798885022878281424935260970305278176401388183468995480880914930979653524897206005665750334947872065214366213013767385158058602764442626233408648447305089486894772702152827828444094552571009652342788233532896891782861574269056048664255559416420874306829968202058023870764513608814718268184057410952107037834895669922831587190611392015051045140215390307644043921872227379031873971523242320401677374089428116049487181660578861284041310455198260451661896634595749069865342209820974362135700193098308255102005209388116256914909990911457219309336114609697213058808651548554415180182527749706512921834087929080326600678737509391958445872681877175781065475075234392136840568546518307504070121246227644838207049705854660109732582457522454903752743970109649019235554286108813276692127024719077700226228487679916271914609514656696658882491902781888023580382414439681910895012312841413784192222515394587235584894415085744583891388395497904226526226437266452363556741923340785983921150868725662802526697877772394334729474246458800987473149746996162241569289756647598634655634330909576494160887040659026077184076024448294039133212570108094797154336153894941147694476379472934916203010776264850272114713023559389143951338078079543791124205930525637757568262089167823216642617592933850088418392988940298445235290307735664272325243104807017236982236647598424076082013903316073872948715838782749265403308060646930129864335997930752010210413699562428381838615059789644386415384726006422109047154855031657684289250813707036729817119394893350864365152280129169291154101019842056951594174931062454090713467332125898732531247658127643718093912739584264279360000718354519249630160123245862484170346423259613420394192134693091463692803942950775672986145485986315110787474002959202465168123443595512622574553073164403101615989376728804559788992412959701400419800148932211206871235571965766859010832313272386665257864109408605066393555803648489759470786335279290751145514399530640077496445644465255390651329502647722258630056143259576134691423510455758760726780141999465380129161033661641399359326088250388618128453789370527790648726440091887848057603000205902411662866383908701193188810441551790550847401146086570365305894482110507154415503844004072246950750649333004209280295516472430039867902520288038161095475536088627724984714285325924833899368515661704507079796533197111915926704399604188939891937312034864965808498879651992367515375745270580648545474538005871359904384024800131111439642993273777960129868287738247971936820946893591831314166767596201619010195349797078676483150599737756528782530969307459924844503362373057355547445651227495831601247497340910702359098533383767105050793274387477511347276297575996571417683916368524204676103672389882439193983615240265347555138978208716759933462817654036077046813613037914834360067052771987005346083063314853517188811249840046199210704320721778899731095817862985923259015713146715853150184032652315875333667305553729383306398155594073803034063336204281749537761277067394271950719241897290410217516786108741893219033981171803035787234042139571781669098929449454787053273437073936719427881169989637377940883566645891293884621373413548947351094375702657991962166583262936715244959101451091312224104315468462416319944123569209881798647482012995507235843218884499925757668992182347573515509429533717767021146247879940759195739293322187422356601709213509065039119742719916781039133494700430647439002888881733276134999707429094898356621850644743831700677169739443120876043062931186879078677064696237137540128598499046113142703596806300245039621276018230137127858990334049577082974063285923399284939936822993110904328577971749297515947198853543491651009098171219162154924272871509458380096130057801003316446192266657970278286649503704167205540310215927906046348701317795627065314931330445753297258219837757070411087834592676702938013143447658731047555072003353235691515172687354180055859653378866709116434634069953115773874965907313502888613017569496497863941471474049839082992373300877402000475127601944261477528661966458307176814898334756894165327184935096147625068500376900007182779798163787838110024116370815947476433202826287479379084276916684193707029881375174164865415714079654968551757433761789103677035209847755294008176584832236725451732077204480181072029183812213343366436323758499417402461589549530473966150760557607999395483228754327672707904898128784068260805297891760342624252989963747428021787125449564217531576724901637300927117921137545638664371259603652964779629232195538158203906830323600628753740928013886015395234884376048495185403336332418943059176524688244736378099837590851006094700690592790186857976465157709561666648566759238071647420313649983379411632525887686165313355316110718178093889251637344752439717284072660166513609064359833900717714115692656234817527585170849190532521420178414605411771174940761611893496802439531931739338542795824105889203432210163184892694364708456605852372417661744694698850536821780355218641542117705225692576414647642590470722460963788556385535011644738228560449910166222420292464765329212177246623534750422673054303119701292590986061091886736560142362172828566818584222689152059042666350310293585913714995396387712181233917825324865076060281402584820034252760323633190428777187356340933012167991187124873566121357606182154468286356832751237726227758198790310847183366560243360775542475892340292875508763935915072456658846811085768138970785296848464777206784244386407762749597371451012790449927175844120633307646268799214590417523867520218424184138850870134076667908252062656286768854928799403700123451138365824186219081781761445526310588322693973235603132373612362666809486293552196727820627447987564429725795177020311178184293238247859511509254521946131639833094509365819365817975063668492214414631258159368666408219025007797897082653204931110890603948617102568841245076693880145372259402259019914228057231212698696109363678838626861829162058651987267423193832105840725448288665653610608629490447938978176677609103637949846298663487149301991676995063295006254543580156381693425650728931628884166303184314470571325263852870693625574900977744200745902997956808045989467513320913336180118749651804528082919483663135981067476781509775760520922735463279096116458044221942945010127505289723909386498550173160610321968620930325437780929140119985616774816691902521211905907739322536053138383990059642472108979781640343989677845404308747858042707857683006905046433778509483010923090978395433897181063091981913668917471235754775858097579463370663745445140072840796073005093119289409842993663553987892424664655274070667570873908215940378550137091908936504175854050721544583944333076704403531034977145764949234586946708585850124715980561291806806965692581722087826333736024253698052257080025264091200862971371117883647419338308794131417485384523540707793445802156347908767291850497559026986125258001668989287308753506376041484763627040269071997617717659722841899348318643186658230493671217487036449574588488974625347632416073133897259429939586673826597480718910927266433134312749013852133767979728019341260754683624959180970560823699505298924274920566297526159699786592443318059620725969565869163624358671092128017432992289735343403257274993503975214197492269441992442365112164259986517498539945113243351565963803683689468058232504608249584914616944089044024492802541577579215443309304137899889702292994212688325194665461662427308295952656199692379732764116526317000986606720230805046715923290591877503167661969348792134610858968053897866308419343070463352059978989472597297755219064633675398570885752358170498947147192819280675536457233920025852305575117958260728157169193587757948984473852141739866711767939178154211892986148502918041872945982645416342259198126603951432434013658534193456040811338931946483200857999929689944230877568877320670346404020610655298320656980039482797433358444617173043582539252195631840539156865955984860148593525653415656258013418889030902254965172517434912631651215665140398426671752822373645304422018349298053946469815616981793736172948121249142481720719456387215419814146308657271110482495243363623021252726172597034735035703149483322412079227150215703594640563764047712979984010179331684032867364252027070081151897416973062541359682679235694834551985375715683730526083639255539762594281045166987648766168028245069810045054701179102255404962372547922413674364146501499490690172972821522450070004678972330544570274521196904832511294225899653313933881633238976466218629337070838270318070532647257177631110548092437000973735775922536932407346239191721630394043464162113457663009627822339851905667878403516614608781565783418863729838636155312225801091700274737776940153033871812319265672327895323521382324055580446825126016587852713460915842273465385196632664935885163753377615273857209135421809116307517874224970797838283955564995045300593690970710698851165491568340073889704647798375715253593493667413484739254133280905415478099048031515133309626055301332893628383365322827108193746056775382174328288825582637116536572201447119354717826609552572387133385575045288036852486991854682404975308653913654006410594279090719698935747860721088649097230148747357924533322112983305503102112970478158089758704996896268262969688352115044443720312101718655688048828518098879211759574845719405893795956750866003003838581721627868071406208470105607318932722143101993362458016892096423223699998293963945471290444872578412760344298641372533443751621979634324546851302154286047327796419738908985645889055742150381354176070043886709565788341187261790058532876465531943669603819489742942510019569410159910117306422521403437904030780999385758046342781229292891089949716269064895888256233707720056314703561475650654645770722227168854787201750887018503677527379703196707521479878690263449470834283368608529114631764801729450449737805886297087499154633443848335371247824877939459584938711842522068120462717567061828221880642382054251713142585549024615302240042971813775425888848188778463507015208761760459842308315755240775016480888958822946993185117880124242059970086605178729992295410152581365364462027305416111794709377093843831474372267353614086256859869897235266809534796615682924942528556674967678221156131140157860627597613895472463705957585178268381481293794220094211250608286569253390447057763954661740848701605924036333982423149496805160494807424871791194910488483347414502068717126597599659993990971852929169231906627925802417628507194512115989838455082526477179012422378334884033043162637701486004957171192698967487571967730863458122972655550567610103292065201433724498778112785518711725210736052402275899943680909293070622764605796706891375512332612877967319045558078848612881561117975797538910418417724821332573616275861646188760664786409295956602380063451338693778840033005105992204224930801842363619644801196998914375515210287343517401659085126359440122456297420305743894257102347540171937379889915588179854299038542384916736893589953880571125251794836976280881395131058905710585613438086541987614986354788913491739517559874961029122543063689083087530937722472419100861671928638471495095126052888019443150913498283990940335243674659572905293455924392771709821111026845194175726458158254858353666896037997983064545556210513993373679192655643282548799315768294481096831820583040996201171432085727523042840758242180519280964722406575761839645354288903275966468069230582538209531073162375511472374261905636743425109892025542574186798370299829443186857210924665003430821557495178354044845179222742661261095062954649431443826976289517675430318275133885990710340646735954592219944484955546900714954209174976750566471480074053920788929445864745893643613298628481955341287606522852402183270593530291989039729237590661195708841477363099195477940077709223638440067489024420408541533165773902794256060068819672750198769816811325099733371250950842708196226759451908336372805403432300746454999447403749134210214260404040080223578132826397340713157911015826350712279952011491904105822206372431190230289362570320527604546800673877127468684856862862157167729853952171407808890243658301829436500561057098889727323007596726421433211076411946960632285160867829808942038572662198895596322840618663529457033102579910915215398834849527823010818063481279439202391667950024884858920511826126029014904446945718209235520021875167069633092318402076702399822532650641482615969330076089789008189515471815092987150900034497825704462845413452601247545649979500024665289867675656247756458913932086983520910054711543809295068930956080216660031478801220125546838628039371177782726134158115237061084557431320552249076545215896009282687423889649067828631230520035767612721663256251844834753989294626276744481605262986742451388478837403197539585725140609545402053131907188288711407766029865630824741324960385853072033369971106856690723506640977794810965928524281050515295977073849882946380474138241921500580413465696965843901780390398054007120966185822984269742379403132983008875576770702923118534582472366088378583297702564644978026883295081394771299085359463911563539033202163711442636563108467383997276054754752946869399836180025777252455795390511998097338554504505327042035314523655683574862754692671668705260220378539669678920444480942756397445498146317681791759283803996671905643353209670268645450350784907017340378830514567456021838013376134482690489197745058554893235689376741069370959891802313009636131204517846664771953256797487952072084718172672574675709815951569686525790571032136990176793459438789734305758006143134373972038843314740061636936291840970291502210054464703710586963585315915189472442791883960234225087537711881064956491524042863882017713999237951134524864821577585846288083297215632324413169858794313779812422540884586272560517287499573603579145133754019904656622110048555028373719502794493754794852472216391573811305077212842342286059940894849339564995790641168464711592283535989076493850007580766755942146657122251434728266485401918969401322442184053384087927663748870343239914333494312904156180400893569621598782224871634819345983142873017898537109904789482287900986628786496586233003648468598072376369113749459945121078655264607350551731137267384480523972403865621078743987460647479141017439036694097086231503120602136944659010865215963246802625951244367354913661543577108954589383372949300760005895325451756849920931210476430814203981807380533577457314034123546003514669452590667662117423240056527428219611035730270023475400955725790065184898808062562297425815076784546113206360154039272569859049542480812650286498804643185944508508551412195377607205570467446607336251458693492499968650834459725049777781553334247073644061583607331770685432849587696354818721026158006205121789437426154180081979650856564030175003901960625044815154775246543169612802896256813621758020691906010681651437017422964936771334222078380116879704074806895343431315461549527045768691912858805891931572491861165038638280560367260778583764293348393464461779733963403067769697087308493538525250660910378136582404270187862838541575286791741914175407018401437337356446437977533585430285656805609255309772414689087310142997523026060440935587264820607342526354450848545995366156001443429502334227282116577443496553501326008518213570324705056008443324179386877941737199652392272141804700398681198647722489651651313104143913718668286710244202889934362577744985551644306337605934712629982514357389765465813659369132436375967413492412961353837630398051016694058147265271970346168885717574448235786880276034238043828483777080977352682843681178768729579995752475713811266169479282445654530385238983627240078020198226493007639717746576489842356694392339965749823189546311639936500671971022042688350125085256647627611910659940567322931799308535272879757324799575007341091511068231497160009724899235685248588491558269363384367496417936180215493296808792164655890587274361905865846413462741555287338541467949209769569879366095817606351300546600270827414335024177170704661154090506669735936472890060927122413753032449129982307396377328878090636791493206554257798960483446761114274728999125048439164253456751500680458382479938201612486746146159379719181893864128560409296906407080982142202168734152826706159747160397653670217637148776881397360375155583288108088380551465873600833998088227845842361342152122119637117849512905184719626816731715256545226667654884785935720638624712392929366520583197793908948154483602415844196818370692214721255027218552624737650752497987018876486340593790037427759277699985240000386937463533426364335378070719736260401875842670016403169908653706907765311974679035663576830010312906530350468661205774389306869770413030761144004041325430227198671207095526193921067097737404547910811317366781689983233985761460310324879004635556461002842580640081661366402631719410852198463673467830334247530562084627444844031363171735160384880439348754246664990281635938664364044214405726695326216844743099124906173916241738539350425659505585656185303099764916716165582201088821832012886887738967753511513910499353096193171636982818332616352618768848479278904484765911076365450892086445783863116511040763798658768664949540797122074249035954058193550916247376832971380211691397209643656175560910830711494650446862155222465934704446167044615626493328843037249715932097229194003632848234313256939989410652040257975434910029331312399228306798585774287102585268082312731542549334507475915953502447794967598730407628477215414155344250059336826131955024325000456690577305459178707984930097776592071358035826634650533224756816118489633936546453418892368144738594023961371373314090876310803993395764882434080287131744906956096120791387318487965630490652670292398692494069078057432620190379774740911449262665587746493634351216113715479190268686761126178717143724195386627458820560874472722867518445064480801684358855832394644112983582209212082347120771585331935618579316246068563982787791160322455876971939790468657304585731018207128365070411797405437555381206597650955192940521080367393421789265600998224447619557988085573390656931051537328775689619220256090393709620650723934763555113132566867587041995806338635354936225473255223627276306256146795017828576185678868402062908294466306153986651635977140507119563853791061754204238003821150975024682533310563312631860423534637413149761890462034368482934706800813501425361875181573939882549445197466470790804099872146306653931550897375696400757119366442604417108606291828691683945918699294534433927754672278856556641671042179695391564535162474522553208198545105725061189560869824874151512192336689224290032321340083743172042832293940655729191937308414877809785040343283064439382030458309559076018864500028121231590490833115298423720125752165082302990423975771302490793012564857927580726960044970444802569640091801325586097097388009709803707639967243013076857188766175390145354372548566735663359704710683843755484382466867880823687085218354979111968845405503732382386859146944302888418160711256839334358214310333410478165406222260923708021186727549081653198688839574205201360877684594104508744458052108002699882560557739007464291396328510681635024459002248347653623716170073376670794780985554091558486001242513459847453960986862609219597978897699107217309856762303954873071553688874567957158491901901636403072789596921623968523330309262427269680422190121638250908390233037351320350581327343124966767883424611770851430519950925144304152501556500930893728094347641451247791016687742536928576775153023595712745550386572976466647535351098460423458136612183149291443668988708912422314074430967284276519439382351803534127724447695839729442306535829657975230875201218508455279932959615817639993985087924588853807972185977893237190751909753647340452835518195074993017455859749841604475267540624859009796663018044676034704626926031604772025000131473959665112422121210030701404644495121727316573450000685102372213604371833316166926728015584227462456120067365636606754800633283224378378347312062790926827471877498450969501118455226675354269446257002121777644865712184465745823282929792881769954839061812133282866276475586665492178156151362829676447719211517760433535105322323432452306357308831190842301118644986877185050881746830796931825661142998041415703074155252158678661109850901113645764582420760091002950905384822695235139758645507519097399373477201654069455198303568801585204447316823180975639562975983614031559052329165627275204390228571298607605835041085682468429402856897704055526672893536343980625085241617673147477774092349308385771296649688397339952260251658363069822012945597500921399211163206772631837459404057093466490738358988084964888828245007404471424831754948738242766012034921666992493715519215142589650994298295397257971493998098632384518521288460416931017207627215077315743750159429513717059672656912516139013696534727899144846011118581803141084866691565868677873747946080604218637498537246699282426387728766084147878829333748559181947575994368340198639605177143145454160399418682190156170733272489092576895321150446235401256317418679390796448289478549451098358582397138130013288990549079784790490853224520618201165535178639059697804334178900594399773828631434696463627755442909625457049921673090862567660621705501894966203653387194583507957777507438536115649761872570672606465567945074855202449995476319173360434499095229374750732798225472598765505748845897912912435145241175047787827232402043033148109556540984206984322470380313280561932252003093599110494676831097997616672488368997267334018993941753100973901702306444429666601656466433157410383119631672633292089379619129471693011224231140094864603267623857267168557978332561663253153810636180369334352725799201604736869095995618266910533153925584693686030106598364852800941256830421874160852605085137050446069957811409345365719566671610624660261307417922879545005361342412635082200089431097995154391988000484951775034956529389881393498853942103159156517586206733385017193080949694598474243711362295801354295336045831432251712890635024265339112545360149335762987944557938232338495320460569955225452347707630500694763638990421891273671977683446618506858213491785458665826181816964258129202650669025529301150328016199259471295705338689559742632424671682791687012393653296207915303829443357052045922994335174454215134097900224015863511933855342091430859532783523553655429061278610120365614693488138618377057060042360790145731323205569947988431870430451901210840484633974336134158709865502474627016343044428706021992887525261966917815094561749490743249610167253574808843881924265407832115562511987719599905254885882841180711344930155664913409994424746373353128038264365780094512138806001693843920626369141599175726395686293232628941411698305260184186390016147117674753366790957529197819864212665665468290383007123927545380162091008341970087831887107796413546095114648949588772279825683209843458899702057660250602883066352353066111979395754110886270595407893576824375130499008276575931959340394700587536788786016085572353145431699813188084063424705511071766929239545755375589231433089830395066780088722182784179905829670651244848009300487540777362449192487796711274816193975656203796828862172583926561349139903322032289492812227544212153218955832450310384612317171283886140000736827164749754351451502393243714965903297614123971979867227466488947547087947409287950320614763287395659789847183773011539158902350696979523094871950582210173745462875152202095394402844706193054677055204781459901363681020759883026146586133664042201043288526218728705144037842347635363403575712661143482975018464621987509751021275151463693579624636334304182208118913378265376658131508380217485007271738292057530586295653372174107610790117345646259703488713737831911474277371593509748973976632128565715963960167268872311193853051561895163740713448059202302145696127335313775268477220210624895994894524726472132781105223664311661160855925680681776830817828652922073731393441570689890341083489999324122400111923769375781134796480706067580327099054456392790855441769392640614789001805207413311949218032864930833727977700519462096008416416361666698991765582184287253713179492124475024413567397185347551740885917288449345621310002506831376533353372887554048047789489340577226394260048944399657044867435292667345522333842215098104472815625115334202954782158784938417400079346184036821410378147428437211836265179854763934927333547124679698485171505039286827834829538222032895106995937329702272194141794007417656085329872907144875238002828142976573580261468456981194104747660235979014520569227124739060793857773306038261984052204444647858879196806948449443261668628630178916258255107960036437335832539889644525404799537733362153294208294903397401483749844519026542853867226258433676404577922448388793976433422920215249043713107145022348835895935812522761177715673574504223544196183660538363670899904983817465401793487905248483354975254704731314811525059763183869121582603748838540523488912860259642647461567659143262249812669596415938369440118777189816819655348790296525416902943829352590686863653268944641436974724853193690366069745574214679796563327065480739111370264832354620477814757771956615277545308441209093773626996020659035418880344486827837258851205786970423177904355657217526090461495967742918186037316962675438966032275608394138435578689635927978537426266154676217640685345918170443737730369884236908736342102341269578344709127240940914086126163125020216882383509938547758423905460930108967745774029467650015380613862562902731083320087382885043169324585859611337806621535848575676673128399216939766861026788016772829997923029909682123004999291355378678177469270992784919505597126945800894986006836451393229283013116503523428936275997027167349908423873722851237050326996979177083873910361510741592352722193696395865829039185867685670527882027142461635726420097850979777392830932358100539111474272907327461047231427830104285440936119337054715532012793393809191227535834933534990830597473995920328003537752357301450958039967495123375324454159812499682279927619438802597181916395860530065566477745541308379416582530380468647000265643551795783979813853959772996499077807226998444151265106838600744223653521331252282101411613864226443032309998285113411396011074967569029994495601077815301789915762536768729257067206315624977678793458667075811354291127087564030834889313587309956884099931821497360219905542247805358485274555361975693892339776505065932760299790742546426237001063404068575104517304708082387453186059168038098919631941821188454615140581389593081901321664233505438113968194550246533492856511817192431464307404195841264604761945137913371207324354378268047698281996001557326783220260694776227387382777432599346450081740006624973828005173510833874303988989622481571653050109793416918400751299561205524445426753973319766322109024666616786598872008063369847531877668155635392734870445902346751794558941433548184256238563089341220644779919898927863855511977902228502689304757293400517893676253754819822697155021978315875526960883469384361301823187868587874513546814676408107034362000485303985943476853412878475148606206816462459642048933607892421210398613585436213325999769611302684293292957993091417305055537716555073966043533601729723987191264451051503048706168410108849098807278183707581354764825118208007586819308422934194536689190306477521130945641436391349133442336617501563724762912510909257802850146178416855179882369546836294156499651741805026121468908753009258280103994400383439217476980764527419278759237413126388469913314168452310101404554452040806830551634023414604919451741770435094542270507741484325144840162538725689721652240799773390349895346390715060371413084070998665239011573063050828517410138715655672517682337578869201561076912701173364650449460033439853664062589068611695273190974961273961306611955459835120554026691382992467878736120582149486920441300508586876988782720704806231814885409564349205232516496948839496740200392593127399315919493396248390920145980191273314771543678823044562367130473256567974623473591321969320746748166462693729162995828035850411118026659040986694845848092505368771338920013664547027800058534927999457491790401759036763983545893632551502258987111393208540095214958675246581935715178954917841334129529449199534984249334156725627204876996242976707080979869796315741856254349895833617756845054907579870550290766954743897043377147100958842595899429282287461572188680098497061275261917520601907561665207129549411548503751511519859466447713412459165334858257905143144664366407505146199891517118208926032786038239120907471500152298743984218874057885413895283537194078854626822709527283311137934077157432123725215080106375276097902688336647766328739321376982334196988245391297027842603754862825241071410989236861611810738975043500729712536187977654921149696471213541625109185502006741237523530653713016289188748928873756111289677939727269274088943621778935963969404005916624547673072426641578219713622037562322447068701965005963076866800708618406269976599696148791270511304270277636482570879233875772708588500147736334237496818488269317838668535043341214230283201691547837847943631419888948922442766951129804642940746668004885366280838127452527034813959653373539480013155528027611792867615921515286046470103611871701629920346827924281242313460522474742514901915082647846354433465433925380878123436687814434688890883854864666787245332785838508223925191325887452752246637673134538980390649382179614753913920446055922527515436044872009887969530180522929905589510725971753549609891350193282164594840030296654713747067346625453525785353557097112722881062354738395276404116022930749362353701667973649074279736952877229722341989546994709498872291143861718373478075689521084319914721476364416600830648093748270460257539127803115771126833367151210793551831483771792926519030612555177732941081148729090724731008636845382641375108614472012647136848402974670629621799157091395171124392129879091575915371337606634452237616506416190621775316558493624574861966361881227568571722383861896431533835860068540583670619345741348901112302840461538814387555333882361891584350488485965733960638735580896410308395054005862689610456934708816110273105622233321317648569446004086221972171435208232637296667833215420513185526228425171571759692272905248641454477085865006151345833086915156037561872438175073204323243592952703005229091837389929500024997843446026696666956692914673879284529977782802254008012964776777108944447040877815173580458114725934117109379719813694187560181331198823088968993070403505952992012401635070712141405848765960337708549497320142070194396713577402432501794608559963690470477778324140344502738424511583721558237604805946402055297243233323617393094756637050585865852989770452434565920323227606082676307910870980440212212210334611999724328977625921532765708225168276886464771720578412158269052898173104616107543911778690199306492825137268829236024084347539736512398149793801538019058614380387924661565392252941981808342821609201101079456859333831798979356929555113026948072148377595949651198443492119941504354406030237031498084963529896322915229576188584523982960356824778924519994637865843473941163941145180449562672541838920657637633320251011868264913807737531256143937286228810476817513944075646158827113013060537370411654588992785065625906401728958743090543598330715700665304626458117633597533042675135842513299965501432796930758595855681375528558854932387468301702540906918665117839290112595843885944832140326633217105851446018357323080107540206403390857336503164395360843402999449372127811288243046843396163708083068310795389754182736278686355616981629340340127194933941807909159471144037345676382768411509408815710217637717715634581001195557513419054742889826489408231690673678062786846909466814863761914103359988906785222399395483215959175002044030892425536669206045326493584146053689217368387265092525763911503917838255435221208345776576455453643638143197777159747536569015997852130641368830056681815550364873300232814164547952430210204696996742834677297668522458704693549988053525109431608989811338112157403645650089340035829323929846711556689361652032790937052360549715771196700327264578962682169606553358116847456897464370551659614870085136911778735513896644318982682015342438248257441263466472694720722332909834889930828565250038489999854110164409079810684844513701919154016763561999288027302774866553561128141414473886635218342647945237377524322955777662170492327981331874110083030833492151474025942556610201174522179490637795056021817650241515707916998818005383318782390026231357272206254175484913016175184017582030334307628025689046287631113182672348633388595175618015330453512982935285542453920829732393756782381392140789552662713105417593263742519358969091789310421597292426798221452732606141643671026466721533297530663146341769431705283006482926465677926533869564206607925481364086604769445495118646822894239795044282417879679683407408523647888493262823277182097477054652497429338303730587741714137710089922826153882074078384096262166429782689292364578622823149231993869878615167594072218569005358993627759598317773088531009943778714046578201161081305791750886272333702861405601200467350685006595870692320662538742746246819813192323152721112001784454575432145958038597375923380250313509144634106905442251114388007041807809579939073570803944546731182817371039323650958689875547794187098234561711637436938226278711634287257665590107448263091921327266013963773748276737404885417413320078027811334155186406388080176038591490719355668941671355632169659885700829400043134809957275313736259735283080952883918041286382445857969038049374823615984367727803334907843221183049134053935581221587101182055429020096483356450513144264885795218049306582200029366003221083686883560483871088031555053865107423520919399368014322282246822513012666268554979898540931701588195415041493883930643680945566282867020749957636552574708234417794210517857239225489325594386429517851630180969155152058109115641862038592314982589715715655815215898705558477802339777167184113508608674049184123702252477694992342953040797221062310697296277092810944281727948988200523158797795837070582385743086840326217567959251492770587433908946245793523599125107687189674343506334182827793416271112769579175689048555119738754700069382440431289300322603073834353676749539208280994115860017735324622970913086996116850136582263662942336096321520603312643220136440844327731754619957022542290934139139205579674867322667458049642843073348329302830128656813440341645674643615228766127222205878745741798811119517091298512338736063901172346858715674435572287411412059501960458751383981733606216955246410495517673857721243036550243430562887440546920700200723940015010377908884618693713413729357974131213151324633461971459298271355126088069289464323027383528246073635253939335817687122767764985423516103834639145354308036343670125884936116544119987208115254171353038106765086260387827803806224252106737907533627758718723815454283145531952868729529006551245533296096766555689232700295472112573891125084983200118529541053847454023797942175889675465539268331347434544521194910221201694798288746233237775507457520457865918695354646925176191788290013774397943366142609937171748100040626185381709384651017653626776661095934570041301466009582668826888331394829810998838520385001979078012642263845260201197442796113120343858849977618617165542986575918559257649027812329632267665279768704173176759173263474981452997519714719531541289522162362048915453720817658847703211425152318174190922490135322093532036759303371738466159057358340821726074387629099980024172385731668681517169570533755811693795273944209337729228661540518213371503188891633083520165094783066510794003881840477162583936887202369275173147693544730852804985813670341797672577943785892852590246957060666783277622073330888280424289355403984746151188688063738442662438952124186587821456923438349544688709796023116867328046430767571864514741817438766054081438512059146286240421806126259653046861016617191382067455674491291018552870729857793196448143132307199138097482775012846532248820960320932874396094219850465235889865027652659687214900326713012577036517510562484239312902444260434931257446961364854451336683598352299183701478895163615744973249924434157109032331771736844852012996327195962392547077003819405981017436557268307385858820776996417774106209003092122761645062891312502285706512243629928135442896953970092509795861106848105307203120331989220669314251740490226132333154890080339787461473345522541407367072204153225037569999046754383457618707624309319491418937072727897994650360990006286065776805462913046058550224099492223972281402191049805481034928421731582201602722231831529713373183805386459942212735868712744476060930295255257754568087272118944212087683883959814052711457582922989911682551859066927443579059719500397624347128631132727728906543075559961297802435982631452955972095691621299969134080741907212161979678027436772312679485961814758559565042188916189513858972911209670707263986981830159157108775683384002041450178055627787428283392771725345147308598662915881005561421460222267096203007385070309437613580634535134738893327150445885552487325044503630816723409308569816134161212118946935372591762220065513004306063657746102098406675704310710435177158589496330056610535656186030543251648479613466287526070015716451945558590445727084790251989830974055520060851795020030193842562368965709611380377311459321731694622034636618553288642663669458644689007123938365693321022623105909544357918490107868093874695089433492622254448592059078277838799261011766899145259859749864995412638066036276390826653063848043071177160504933119282783225845078666298123924548692303342579043646315293179152752373472809187646071425297272900906637571360546170887268646249645659766708674742060019532319972615108885076244914850412386230167392937209692134533869943695907490452179406931577011567846969898405068219582793449056059481753439787096926924051002909870572112436984863373785128731677566970037316684014108318258276449404058053759436951739831416112109656518745485397786841773727618275624884623154993742032871623070930211781697172942393635582169625220399292677006924927145866615659164310874547805775283360431291110164982371827949581129356043664296519746215298541870067873466058428821957344086338970815146457860984797026567355198841102604388813282833065659536480737696296915401623102185837053328878548802612641808837759844313344193849465039081075927791610103373073719905058787869958863355931687508727345329074343406799998223936193090491634027990751609509289577141628629569657766996639744124308037050726984378518762819473858757112991474251305393214856827201255984688103281106559501323119549974594218267296971866681130195621240623885646313433424200725572754772870990623702197423885731867065399864285079882856828573509105163600290218085380866333021360793832392795220452117075743467219712890381782479840355843644546909742302647934816569621350026114637714004048251988125903078904348369261404302662545966923987155266070954499073711562903095169066635831679049928655957637710732101436911473249770893574962317636844277070333502892928380153601982114168527796403023287893391042199940572550789508301954418398767821374336061191513985153477597295777916705090541220920774888880079151660532068681633268841015729524787798031219997189105737078614272836146783318764404448245134454061844695133851826289229360621815021027816046411948093205010560374844591176826492204422937907224179619404984642322076574292678508387881736553890870495088710282416250891749465971238792086630135410068026957635294173417948983606946572609222626730240360640173662863441477388053522671380000445636216274554371944782649956789196616543973350229662918950179320191257193055241515300572203963391086873815495633989540909954264581034511789361024839650793587243308134325035805124171767583926737354186486139299615175088111158193349653367361025655230182455781719280427155149210421241714896505738183093619730073802954380662692805983487307870211720563524682976066668504182817030074489550119529799426564541998806198243617022294961085780281336994098803565057215780690728561735831715277346848376948212896792121339417393710533624478082566481177629789485690390525339566171460723066653347054374907625299763309038041172996314069442398219929001432540918967330575088640169446613084422893272064022947887370795169606092612408455166503291669224452363453794303166783470339920594748243235603906747858231827880963983247061621653418348225612981816095473252413192917920497411434072421642791734215780355253389356501152115532801274572730582616566475896337598985103406149718524223414292667678602825621904475897114116969620086401923372893651626340532621302132892278534257153250957498946181404503711601068245149086787908356607605003847124323762398958394861962921605234920522333822276054128907177778333573159235246273898617331384455776523803171161646599603281999490638386982511445088329002991826374866458261829807480920498954847549810404769665550773551629211058324307394618319089475127568345628386434299654337784262561855401639739660145145557873556907790513513385703697826189526163589102410808511533747078116462396229270130147959684397122109664031244946263090118426797066683464340612117676712601874207146869863967448971281020456554931726021625820452740065427848012095719484019510497590840651961228852250440130913806793840128780665856379866049593006995780629145323775398265680064454500589136459287323883780125485862192967418687408119537122846881906962408367559202584785293218233904649123868004681340180922696540904975981147515141973998314201523647685039005137912596022698412863411266030829530672102762726027798119069809955380421531485967536375849930876490829203630426910031067664925961597975578083949393917344412548971175576254969320710106968269632035512914967755613325580029449357342462236811189280135104664711123966641930015297710550406162675529859049410436732078520578338530785439737841396596277573051353158591481912919569546401464100014698506707705985513132645821028009094998386506890353069781015408032631281497403922091422199175339318951272189700149844742369901681786822992681053292477991380513484079007440186996709310460189608080245965406436710986749839849559837180634832444397522498198420944542701689034067921623873965508357664597350200725833426597120710516588450643208080408143339913948224473271213737049313930650674540481249683881359672095967831603264005448334580500054423488464053967829116421004152232062341506014770122879616284168776673996665025896991126458636838317006262522444464649773744229037265376917919455821547937979797981378308881807787867660777174147967111934306039075851626355848698029654488664904965978770949993551520109294948392788992347645703202004350626088166723928330869886194388838117285883672297564391744720242862571127905517815416790688290113544263357827263995210304468345260358729609630759411159771776902372464002773290245781532072910383629494902442915660462321749492673051514025962060568051143323028106333858274747336439789795603199847425958074063941000596758021746834879655258395284178017011203467398191852329345748927156701626753299737876017732257333159575233094517583024331961781559987248891853221670529008396811619630288792969003903869132940600278016832607433100641942894214980627352572594152430139595844608996474725399895983395357365294758657930898047845858006501631151946195716420306200594354844063552036118413742283985700039364937215203121681192260709410416275171598269012690063473295496185731936034095998503562801430376287436528671048989548548994361690309025714664590059300147510341851617748625351747310096118841661604716805207511895246137150271745009349081574215816334982324399338817977444264082599300238960756901366166720496777298502461402291512556255382367084872120162942178987037038319539783874118569600986688484870200673672432479830007860349042600820648906143255565844287780736669185200252395851956230374663065350407332196980963741912108765583846681342835300172135864782681590443421401881603885590648521931846660405695015277438436115912661365813524917949743397871830605117524746564797220229402445002148073171389386820202365567463605787959459541280184925263873848958003239963760592648915040487334007501427229657675830472147187252701242360862499259646106251527602340577734446374684254569963784438381515086097424454360614505384172728212897689404570686324035174507382718366913757626002965515658874851812300494138184814508821994044497426722725464810053907986525847467393348647755031689330499157465451597249927973154542980327290317435754573886579879755044631235467313993957777615668183140702322664407792220716192297438550697619630970976054951216929865490746303039030053038590904370601306092441110458111278892185865658649670158311735920218081017043707888196821172223680517928168653421558335553426637836342473798958473054230146626817524043792551530110920318192545407206862194124086837704814506808022325725706496848510903113894130375194349596438217314826398960893252154367227675888583731136366243829291736229774687994060480103575978096440780212181301027740377100656273179177405213120015551700099034301662859063237457311107362059768956628352100937153021459704837558654100886068737809078532135800544953605683318952957186287656287947317823207804241695898395156143409820175728951071269217229670995822063757293098075387610275871220090037584193029699921074719287571682919015300982136283659965392940769073856340815362934653060113650470424507216390206539790476159522902505315206411673371684228122336514832866466637465651223005107997034874778137256718825823984618524215292625997072197767965820428548212153762317279706713468692182683363914957297621951822151328340649019612311755929582218563573424122238705820255467641177747908544555286391681603618506885011826240796149719110726210288750722073423978050975850570649519345233892280145539562036681459261938951429114947409239030045803756840506205639468083970544131592554504632085324929534678672448230089043941537643727314318353684148645038311063420018119254830539868312519039358285916756482938285196620539031148246453612148989782567087957766053956786560714367948752074740972378695826001743974806752939797023852898644475616403702290398927591828640334581727942457599424293949723622426151574504493005074068909217630475582787671321193461628160860666877512152201159980170878614169992273072330138638931488385084792466412544671113128337442307058026562564402137378449424752148869606802723290361826715593427443507820309987772856444885908073221509526150781766612506765581855711698857182327700695919771030994929618393224931669878670570422468802704024971841973880649401487938618906652370744381257190887510140904662987860218918735232764199990117836866986008038835276537546766882395632337448365492167750448420983009333557293957817745063411161888385911221648506944206161420120805932057959047940467069021464438151694812298659263282045709908398228739777725773941658979065786116896157520588777318366838093610285096759713321592920616251286890063600256779040096835062761254435144337535780269344535606670898098409870687316045164322117039950098928873297901165988270838844720449325617264899654107386198776966575259766304835594953724551784919119193483771960137956761256316734289336083260033039757338653449297728097316515356139078647258278097704457957144668058597364396615910213869207059170801963711206800628582810180863103924539666793121267210833083993852243709976786859997639097431873890513018498860838042174751243657362658044629897505819663975653433533185931286697097164906733983505657195141915788674290218651491158210330981239374499079436220316989589768885718943104002637690974551686724997199828577685441510512676565270744352386004989326836847857429389789199245402491637170170515965439700123697228812036944004344273868486982701235095948581539941710612777639256087798516828129806341912579295563623938321125332175331311158095642509205773848084575188095357677015416280434025056224110515034964235741535978674151925332758172406867069422865834641519153032749224183052075515677433060947809809509109731074959169575047112754212947396432167310792764403368591868330310532930069598615044973510547109150616474999517965091825561666504881046299148778420310117120364384998580745310772695649076390714079121379169461797130537548860829007729317669060650380050739529258146623576309415455360097546813717029611068809105883947008237126623228126550163925872197986613984181171057268951024752101729259296364335521614890895759841944075256095664926371708073742857200152346505799279181215672252034787531830283569267296314375849602306207649968664480545250588038854402653144446879777564062462287892002737055797856872467867095652934920176495303646343482605142634367585790932791918349083642808551542917845496222757629281895923713549547225808165240330016693280766003839448387577232158973267000774198460266503494164864015801909072837910221388672010653030191785151041474020701676447083271560913746458603102466572048624247738472906861126251329916072453996132412995663077160363377056465532840424182786778069431402320093561280509279800583272973947344587607577358610899388256424415942974134780593281499071638599580757370124238333592096134442059222925873136269028902564663200190258197304134957005553726518641211271535071768462190908725982395177625849944241506681296230885786138501943526085055838960947382241935619558860356088855340861723556290651553043523303840575900442451474063379529206371944679844209679361312966543961767936186532590058025273266745561990728128331423368666607151476567532774821577180487231454103193627558009493503169686730789359796089777572670599085902098907150907860887431031574793873664037063181114174630602070336120013535582567908932158123927217265631961262906569316146014583777705664151790368438498210246536981315850447777196898640442729552128926648925602829759572600480548138294243347905032594923194113868861830961858919475975475714635951607600378263668179114673957186357086036844145229851767611581627738764744714410825503190639439777457560949255543019873098032051367592960397450143473091279460168763057799918282650656817526377424331757047765367293110659975960217806456691983050105288158825526649226570567224140573965649560532824854571470727974783150841782844577126638815278777411056882156091262057838825665618524352692680196176763157006907844905894613830509159046106584609122769497089913481533167090585208239333117326608214227237822488640800075345884982585327350084608605388000941335346307410218184298887451143802489725720749976326855994083065716863440654729920742465661891704283963455044754795935140438376557027736724896966388508599781923049509628135170439030653153873361552951927893901559284564181138429896861671952462478469770624042018745119730918618413917766459733115835816459366119240410269905482081905476415105644588120138020894198692245917537300947828633324515875402116643089218946348307270836537441970073077820195106452084068973644707322238036604495112949557597759096552626605428264161302765658058260970641832045394036533764845221131941768605312330874165487559654748773337535095980184898095335727258297954784752308012697785294160467508562272086144367010098547138328473687879964451362773267142301644310511460203512104099829181060328906386789778698918386778212302082324047252111888731591891724648109844030771042344051806676078002842700211688387030095387513538240044606454246434946448330188629115881499575618929010384249280315167527693792409047503231832188567291618439659661010706555812016538418171040851965376041874066591591704036827486885252614887255547292736643633600489052822091190917905329686793695593685602488576637704470025134211100353816365208668556349053771632101228903809077858187371944030664846484497684455996456572748041866438060934637443686281933741570718544710332974554212488186614650917979168020162583863478042578536766940758127553617055974841387107410277217956791872985304245741409728006600078275410767353023211050206760094148115122629802355277456794643014085247683011322865095789669053490517471427048236201559522257374950641152595240979125129219931294649139758461419272716454474281740077925578300368939481867534655952755964156363115585617897765530173797215326962649245793142600499911730541065094988300651957932221548779963369291541504043050302647952300452307362432717868799658312957026600728403838308433940339662168812890795641308954520701437829743139924366490571573989041865492821176834701061488211394100654685135512786220805501055250007016040584748310900780188140435986270806511132423399009594242527264844453754124955763884914629341186752509309300690832464124828062624089811495050470757593947646802357987333822978886616276227347498209779366313240520907585753430859421200264678341579083740940250732754747266387319615633935485050880186024302357739333301703400516448046588177887957042593481040884289620998284100279248806613279891637107393764317285745153087589192880133530472407807044099360796578703367400311313605047605408067524650158742658537730216882186081216964442963652843026677021707097167006469010015335897100594289736325577877002730434591421061584595989699128535003311885135125876710793533463720182402105012763643719428040365310006958057209306215221185654849134408145870054546556082382033430350741042748269248294583721849810032111045346911385781154701133856988276300147121060220523592982648996065158844759907934880776161584318757782415822307581245752630648178528514874416911585308616228528608782088132739091181877375911209051640604685712880150402789871951960088913036832811318060123282785094732256079665431670842404858767909632409314754659578215291840922317887276496015953338187668116024288276072908116157675147915086498192894836651507861293155153831573626604389858083878100809785509855107551943837667274453033631025246301637583914379100000353753035424730208561558697708050853919209327963150592017447257749290804492746247176100048433041607872641417419477798239839245740079360577444821476287958533227455606201321435473944227953950484201435440363086278910903997210940264454509887059876861822010360361401997707644983266298543715216563086415002178669543688112000909081968776272069020380826057205749925871296869898547718076245926431302526962046837487115347629414129138632115962682930517293524417635603763544483428714462360125231218174354552966350731135302750733072562688249917581080342400544798087441316794746795262417586315373367865417153916247110402399257621028469042062312015917430323275613409057959439032682468801406727635648503996003112048083082487270201570773506039546001114094453315289185284886360500631996829608458593738734815617079159580962789436066476262836176528250523737188433017306098352553169486309635751487209253119796935153523312120780405258554491626858180806702968432710802198974984134935566162666981535287902362359308049380589861744454787566325802642254469465610008486326505182218753226208020411925346859766705430022316605157014873575088605631336434895561160359584654989746301194739770542982949903503163124799661459195788966239258102431869339659545167129171706824285020684467667229579879709851945772376321315429071367696341284675741533291508497089866559837686058433466498736579513242299281213139721311751858981831090777383424261419366750417855564342351777600953647722864506594143857775825528781297864238249504502039981762702001563509076301039215695215584794087953088359978925963458839849021684172840977825174817888080377054635662380124505579902177759699527581727071938811797770691180608165113225075068637608025012302175165094844889184601605802661383333657975630059372587044750306751541818430701464487026007901963365011020361876808070520666477157724681341288446302572164611194188860603862688306692944552084896150215913474823080656088337981375633008790204264541657952624974586819296491066945689806225021174607026901670730667184978474205590328974295196186703963006014267548230430409003239497444855607417978890986090489770349552622239092698585086823007398177077059733298207393777677621555716770190816145579798524644242072541093093883209248406208217218236448929573086425732899355856915568615792835438057759655217855810360667294609857690388898373392440995840418164059449208640603329082281393091717431644067662827977581482310399904429143943292867064490251385413136684386825099433091023033546370446800295613733346936911524060083975273857062225993418035870836466948302528288202673662900379115828245553725438016125011225744825955384587410787623772978765366725292177722283399094688928884599162217623603415083066090572629080205387085064035712823142030615839381292194109603819200012661040591231494549772847462007087911493072558263331097776327742903386346148275555831209727064646644336945577603395621870830634684311737320020524318148844704136592851776157238976910209979946892537535279989310807731916709569686529035476846601678276062592369248380781600938413787958351763537403255856126630109756205298442508049512002596683970325754207051900918142783635517482092152474612219003543122079980559197196538677239919319413770667607177179231976597655264173436925954491952264084151665378167327660796588597706731981837023697316643487690929098484012938683261712444975989475325609794676912909309519241815676225187378514728223061530155626474919032989311618985468228400713949885129190914588085138617913534868469127123297518984999240107193591858013863979679228863617496582458936146524595432806351186829299099782160464971302814838044524925126844431407493197428443970669503115688394336911246193841989973493425429526698223794087684637127030411527066786901620988917729539380847323970019443742101345686308819622711363110202496947403197385840489096308046953026928299911780884898368510834621068803952637092768223604345637888771464545395919628820996276934262486675131543325715180579627199035499487440730515300031474257006421846333576443434791279805426207437452563153471609993324794419264588603242548217305631980709997942874069531109647420367188735991519554160604222149216456966701020684189733827020386097410758251244524870430858097811040358273774594038981936912370409110510557709845227454885944238392247739374576560475322096713243832567210339053493722582293697844598988007205768780405167877325682219998359070210041196955721582560392092634338154379899694610805119574613210813733376973087337553284152461528432329909376464021225046780337666761971693215047180749532128732644324203629234165721450265310663600176221884378848323203194220447278910943741934111701596048942859042019848890345749543860110891418909414901736683147116498535798060497742336880092822763635743705329781808401459659485988019530707158515007352341582506685180746227144492048873521315509167325623201544529280971639146740490159138724471355131711893373654454031474792666184622701845644381738043903369447732795139258040044629054942296575762791418947421505875590629824830045842042087383982523329184771337908526394194280193240492600141537940134622684741139759084153322662924069717884351133101056892672839142870524968302682005796429778480360898109990059428819588361343304513664535314884283483831566109635968331302229346870175426461855846360164935476812309048326157562831132375244847614676777278134079608046205387048378211713798356109867464571829970551168567637827594050542536913404904049648286452130333676398978093489895434588223854005959648396141303480609523556841638100668857467342199633440711823225309938907351756639733182276803990933161512985736335622401021037708956010319317340766657172688961780589948045651893498862906939030725116248532040845341830575757116834315812629018555882343156788754260428933769436821829102283414360268350119281668589371878528790441585088998594310634141088828312475692935691615049118262588483255627295374295586528395604556165473132913939021990409259545014579147354065263922531058574592808512569494006719003683130338191679190390183723501631110765071782692262936341299696098978274745429162076347099768727108817485743961545184940201393633866282043292594162747884576672800498994753332749405826388390484777243178082993969616889551000897001553240389321963509618736134284578434823205890615263745225561213115848785079800403009092914900509469714351691226849443246192767026957815995218350090719942466583899817714361036954340344470892901821419089976743452441661209984744460379461841490701399505327444016870863806285576441362246311101430311936002686059257769910221956422227226762373449554056798196045984649470794799974353277112887468435880162398955936753315975976260041015948952057540001480712380038051030200010162182355644756908730651134910439404113544889571380989449255110261577773670221920235442939044621654829664891550808539976326472848821484743059395910980265518923222504652270444382551249204219880173199922729633284169656932343276639710724014102584742834105359451168339358348316861784831826282325780906361392996198194499198371325861140297783027892837812919856315714268837127575490151411629500577417348412908842116957912326773367277423991916757871633284317062477026551847017885057180654139608597197145496616135914885687361814112378518230777422405092065133728216093049448993320401046517550902175666046325538791763854551973138044527753452751078105563572338595177991629429704566495890104588456266593062590751952703200604412185652127006187541876859262079221701367660581941761711396662651037349620254012209616680011173579498595817291521004064317498365193167961235362376923701961502886143783946797655878166467038483431308869720999376437905641406391277949952468735444433294422247700207624674686905218594225721580275383338541625281187689943247484418022708255971759158585504364924920343134218930382820933545468488064448220759457329061436481005488292413440840277494269763153273036781628868108932533517820802485704794924638724623750453516718351088208287901115144462903379250630307590969920134723080281325203868784431489492496954543993776546704057039152566615799285069051480335286174851853132114012164901433171761631827320999894143638891535548685510210070639515701387944227038189588735704110409780428348367078572038264050378263601133823636574956233931878767218599540998065388673966572988158232155061378781999655158132386860649079663757177906812399406420406705569165734445327717080859671017963071656803715558182994127742857791024097096440046627251614926453128588829789309554384069975858087324618885739833019090437641241201429607394450635074123435117250654144175939013618700386572411436507546730435387816811950504310079100754062763772394460283136478865341196465097762981210786218705893415353485148085368424333224568468978894897157439397587676926595778018706150551588857499055625644865847802562380613666449406586069459240862056278218061326892763557535137876263877074024381791393790819298419710623116497493525040127015064486221307526673801184577599221648884843507623983389633534883882853075368542616799609962064547483717247905919753489440408172291239710655321067981407496241373496838790090609998866792344099417668029212287327149672960537340932005418376530039703682555172349392739057370410568923042516253256854459009025386923674766767869116564107327291653489400809053503723872796884369992391996548938188354240044851534215043435527705399289841397561429983383988405576302837992363528416741155509385852811404622541178371745287952769371093116250937334314450942120150740154856926181401121791630239537867820718356245065965048664083518833740722479615860041406761087008874565325093889629226430171941229269683110586268668168602279109498485566023262800740722931083585287756218779540290854989460875002924160420220891833075050637275098066057147498075354825019582785884935028847707451615300432128676612230034012692092887493846681376879990945005187441070043895326149918424762568822674534009618550684765565381209258793346523091806937855797742799068695889751083367486951066311833233047640205148121842653118742397186181465536646330761094580804412675933571774954261691783188982489314703399961138267296470903410608801873674825824632561985958514003278140394947508199260342726537809060885970132682759018886004052811745163949805134911891159072394217785428791042985293160675416281351357480541541252566013047541852310507739802571607040257190763229780139780439812871410484487138210780371906746764962634108172869425505673991633152963766165910125847488846027391795058060829441511961862493825365160288863009308907299151969731579628265869194331106753217758773072324307683496166785779711591100787175497377137073838052353769364515008268445984091257513338513260575127952434818337542120537627573773787840661534795816840135640560398203661148303230372921580551671716825964568088511110444274356072761541407457945795018413596405405000517628431805141880387835169901971266813963313264781993277720517656653197339381277436969452363666791581438300712565372900897902980917350011009966745936222087000808095070382096206296594222756427834644867676301571512329173248529702817266150473618205860351945148186243879181785969825199861215171583259444350792017090629187460340078276762565855050557157929007084775075507715782158420240872948364416680143002441715533700273384043335991800526208641767504895566285225441167539096826239890593401449687417108457114170926742810879793537885200541695843589738425088014768980374671417073135808769421373644826795656028903592268959762643662592230657087395456410774201318089708217840616635039559511510298834369665904826129722850756041010728571616539006230645021118250380288206518436114635304679356621477781467617436747121955908330891207314075541904889622747931612814382247981469300514886796138097833844584370510563571438763333616961456512104866821501701092919451961538515624587331041671169812521919283630899968535760352306681735475201755666770737948044485012007324040650364897065272379434563173610190648114230314718435715594828814810759779029902079814044280572100404009624881668835052784866428556768323088988271673561594238228457505270644842629416490545838502798905642303224652032772961257142311625574905272762950741580360328410719490277945299275086342259497352787963546946064312199652090352839553569348640124669298393078472299343028017216409156910361205553048572265401319412027309492115768526488747357704806118148510303020045963604362505187969873711442215806032603418848642868745921545220319272237739317079963043114139809335100145102476328809612913439370568791346972574494460203923649114948693937519240504168911077706518662279073264850849647907768976823636570598370341489293447845771789140553032721834801115637895985054439578948904675100853587973189767910582022654696328053313503650153776490326262143708748091382032153468263077055578032272617079182989775098336329127049984206171611023070768961832546588900045838991470711916627764430483434088126922982873930329395458353629162054678873877817305117558410381754319591863570188776744272534099258920452172520990912854649159050332151038214198317205279332582127414514709834283282747218032151005221177967842797618307362036311490742473151846669681676949258596197931910363904189766731437547227945783335266622536679951897666486850189419839845547865796090267656968737668719330132291569593383407771783074281261287010156625381898782548334437129930897614614490612904803709973804075547093564909204457325443006412365010257706650028654564765763610291465677430900017908569751822584825692032826620553192570129762713364450064032409988685784253656124110777576320124974969138790292980514681728743029458694380870542458991587510268337383134147388595743699186277349866959156221346736869392158589333836407773108798761405437102946011241972803855591624082067621911447397502898479119476495927803269259530339896112443613237831682891500492585029800833633840708455383106335031854592749588621161900022367273031990728194797113765548287656006781189690984526992826287867416247543250830501167997048701562560863446920371242752643094802540245629340309145867551177374350474639701204976279044428996858445759570286211273447391916452186824310575014370076839763046832590669264411646609973221181489888620435634832812258328949356938588341964652736245053477943440506589770082633684367734737963488009254695425626824238902916355043448609184070548831378180311985669249465743089172344203179116193613517018726001968447803590661972001780419883453581725596276255912293895168283368859562589085337079274749376277943434313413015173041673014978326595473703763529136024698839549435493088978440060101514071929936470731903073078558500330775626517884070141348664744623747381955130472394255995940545895123173702741233300743115852700844917491360596633006071520034913929147113014815260719130124256773267006427665567152584103348069091495881730284367245744049955841116889116205335080216592987587836010288959277305206304480213481480966969546581405696317282972243920602656239979782324816145560316847711967025362448421943037597409011571329233620861624194754924454674538621997634466701531557286447836049359816715852657213240249206448193366886511714729598542714476784945439077107325862619809636749107412478780451232214447159905636399871582733695499794588212648200163353788237544436240701851794608104218612116177803285004243151240673162681184714025639378792904803325597350975447583538684457265562059366719901732238306705748322701781658253523432048570168412346865879142572779652731685191893730222896892287123539258564989234952541954589785242874465670421461797545139903446235309333192973304159651808439068863367835820201543510198552534090982209008417813669289986917509809770244437585792743878509383756509870129652700750299705144238149064447274262348918859112781447040290092781693047964358195882145229801076591977371358335358722663502118849074480123514015298334087207381522389632534094629673486808632974432634523358919011105912914603768848774337463027443566372374794479368202584256939783328432269656742145243387303039550404192128299901317545043111561545000213764062268438748238655977826169305188748143236129848647114190269855051600333959228638484449427317115842920992250333119651176470348511783766150943340100626394139276941786019052971301886163496212478799988967377336774142560087271698818607001232910333985603126461748798100708181024003931766481542705703090740559292579153008363974928765389737536387999796534310591148985214892857024805136974650538300938497614967379038582278618376185125321629564438202502485741750366514408119010861519608665534379419508860054825022262575854477999244175360370942746717535828252318466655952940911389407324992218904909728066670095873669931210490778212926431761014671341241295937140796451009878423179379726792759991218190676109052874627243134711537388445594131398324799203049837210747799857728253206487237140780801754310715672873382841944773895087326954366707785264450025989579348458829267248704874242005061358922327226494291947863323918878168433357317958361307054855746792090643698452448039558576666563051881449647658688446465878413360853394162358441429758069939963168490089961322065109183778224695325827371519806861380908860440958857691190075858806695088139799063358046792890268763056892653237420263363972433593300464912076990447072177463275196936797298342989377258434799598692632352353158897333296173912214899330987919757046164348543685702471821600469499994021519058241293582998677138808303117977531873084950184828576662509443448600732461255241214377578308952943126210712844159413991075884588743143341892095986239485661072865419431410692906391786428184690105079334463968874143900497184781171619954943994111364526006360814319549448413969456080275953127628989979381630381932333212413387848739794559144792513633765988517239797158472124689251580372004602244639816801936932591651079135011033535836435207860004357212714692169029564383730075251566177304062753750602061012977926677226221294010886158867195888868055125408065289179227915056321057406046823521297264588104302911614061764803683753790766589081768303711356433507299573713117756613340222441924884641067137339790030040457704980050728923910245192144713735856874844962746491273840730064061285240692090289475873390554242896593547791175625877623212032687976389117116139727701654113571894873606012179767152760388235997225138649531159518555704231834752515505914674582615387428689513041625672031921990565087902729505950189437832352221933702311694335365433901504919250254753027080162078505831735519596645308704903318260855737390237728412953979004874402853048113009068448469632052623654475034826662484647370012147585767184666425712082621652645726539065559671710619591034692083621988081611434190114983731244673678663128404425312546455415599476340404583936917120902396631904377613035136320367249910118332668807152972627117545360047733645300584639236127685512799660047868569627312394374286450606159959079807613444840820660461006811807463160091290132227506394313146177752363569051891530585681665030641425787690744462838238495378204598041962327844605246422781624695056572276888606722722380446285462647037929937637864434709388272965742265267034420897293201129886748445083035140249815280678048674511477585639549535683366822486702831735021245384294829795432288270272610951845736890761176549665165176973779267559154230164614276425539995430089694634171967869959033284051484077147117610626613743149612686148914104312070364818123849517028871637407162013187354342153296159352642517147109978022885637448571055605501111158584987247930982103820820964641670300490181002340992435527967012831064916478485473914669778791778569540404405315099085025406996317611382734946732160934034192056172514632971434232802974167700828904265988028612217780000329600676306807399295988243188858595204573033154963179494856359529608448810318155439534389751135470882973438104902695172224017601044234462522228543825421145979384231183302694263615809701802551857998460075112979363755944746935439787773198826795193783435330309613011181123582256885614779752201452412808073251524837010407832459810648314445226408383764187623057978355179293180788704385800953809005640382874791985826977759501662024645188358691586512075017164765899706792577634711429574403923473181466474361614210667923041868463603195773955721039893378976130743457659945405031534055307605284405499433110370007522693439608615972386573163903777381539988004779431097483855738320672460267385565358826454429024478941284467758298731266892907607194540736115828383962374701141464440993312729131526764516302161747889565276569202661854672505108280506455775324839437937559735679661283959554058721507326057178580403996491398212620509963489766529424927132458543572269799824011138370676384974721639297459785131802253196491596619652067412763487297954548128483672426952924484153292584849176770862872929076955062664787976818330486275476885207506039958849847583853497557488864915602457452429686604863444279322628957333462633864013339040877363660932564860172115047476596106427361086651890432404627359396016017175151960471686587426144146983397310792442266699910775725672896206475338528829789031829196679171139234071409759352212011162445508389954353876223449848132277433186558775390603885371985992140733611873979294930341602358096252526287719360551276872448694976749644136080293472363251577853076832954175883797529968231727618957008260862553895760326065281526485644850404105030751357102393250080009495263394474692878612259386017115068220128417862463634071483142925652466078604877921229893754701605594960446502313908123943591984580357233027090462104527114075371169737683590376062327719408473443728873135524711695468406929610418041554972008841931069298728877670916958093789280753319910646913059937153715818766253407417167493591749523770626842332060205469150190738860808142709996544824994552534189476163415096414079760032153336284316311957862152511399012850156874590224281078865357474677687270668048837097270331959132311454993656162277819119719060006226825193415464110738238073973934220169442428988853138611366346893341408956328253125854399081640571679151986171795996510973280824323334444887862674801134384896176244339437779861604782557533497217816357874000152552012334719017584449163675741813471673564026857473086253196521878310230605648813697704710130502232075662627452465990640777271896948210000850983782151660993692675545169688211419657055420763329926848428502379933503622874414777953498617933630916543384960593496252210794120641862480541692072561702245013633367953803730853250858555476845471052282541961569622319587517201848531214511621882465304193443412070304420332120069870218890142054206305145797749038074321575143233321209321934844971745008403999586020471271276907538918188245354641495634574432458241085495670344918174743200806625804365584611090497010613337992778652777162043727826141074106242933391439482999254408736278165180585991360936340543760958205814353534720311290848834348740434680882767868666471696360664538154090549181981521041319806978800282341299667301626298998432295039421175596832143193965203847647118648804692060604800206560296787402510092373188883176033029916028209885468684589003648535460899116041887701219396490681052694516658642837793768834474134161532184099130156843694078780980704997202134960823618827990992876359885306730897250421492247407241745407062749150227912387526908723653432741588822014255323922391415797392628478071072925052098595638820968835901369971420467793429701475004515353570021872803511915159898790376181201681510467604409389433541511014889814889139563190901132111558718813790097800684994060645373679849662281366747625944916841683069241545249167379491673133213481730938738117493469026544370120052504323650538836478498045683778356765478384365041624266717365481146195134706250900885621504756652455998209742757479201574153367548146711086767241870226548855631557926650760999406571731352208483270243138580492147418683781095417478167116501595960237135652186209253582548652284941352209613211509438193652406730654937874375222564476892570831729574899493975481294144294421315032510644342055644244351961669467680651056006178319625339943205348493742722197331736285765586295727535553062129702208798767439986838434960616581749595155714338766344399169526504319976079642492153528610179704931665161993627885641971517354295987278228526875854485194422943155637212072187812474521078814672860043841832069501860216339815248236891453099620124983066854517811687761661800081249990403970510358707135387059591919436177898988572867245099129508072561865637736102611779632166057829085893840193442239660848775166025087643643721169023092003793135378790573677449027573331977233724856405632314809393790464285411478945972221121121027401913749109938479551596880072142877365304432029185543963087378848095772925836087666430395960933598173737735513959217288534271488425682271741230445376966827881591940184636898768837598975788284700664217793270550795617817063425963584153344246054459975842506027742979219448131072456701182641101330952954227467945355922083251131077781596582559963625490616613316874294373925299291515698071922283927665469789045210837613785465047421803045129441859366055475253864440817432292158456487304719652411446685376507809879882600454321966271352952376253183146801210171337670078684955256182393740156966447605699174631610839399251887778788842792835897192906583908089172642997658654779020446522339206144422204701356983719275281970112275924446046497003233912910417351971396674723783550115278220310732956873372577109575559955477278678541116894450786823635935747904121788906455132310937879159770388393264689469416928690866836825427893719739793507545285202783491115088371299429133253255360670466517706877195764146140915798829391026645962134576886160753862569311775438783843307968107840336418559413308196944707627371648779695273484364672185994132490269554068297274646723518554146471776689921908854621020954130774080805595654502035011397684571532549014277468126408433118725365488438305428016262127638499538859317568658365295813530882649055620995710195210803835600336763470489425544768828656377875475819247712832234233594961017523116828602976521983025762167008548657586681694124658079860281583495236399178227431147477241115629955229966491319959256797238803305716894410589387025594214626611727304349341942593589214235240275748099862044379766978468946241281823313698692008944667756288728590735200640642542717199958160611311215471650829527481847673736049620739325578635781703824921996556613725102247676805032510078746411936725303703149748218404038735397181983421737622974177437954684554313222754962032443173449636358244051003295060577276895724594953119000425096920443506198214117840341622898020586698279746162203549637732887440335843270286184963646518786071856502945628030955425341163292324836184590626440104947364083644780655514234163949836173408635079842907277693998034434385279949069763471674503795621341877504525208219268848597665755678336592680878042143248260689618142826749791372891349468601972176917152424602799239645894461094120723334463427056905623712844079634501459316613985269688622891056670754631679453722658289941352955299770411247698058060606997245613230407772734759384023402319697782899759018876717507723209330077692212737287796848327807835029345787847696313977116993593281770029817243527125592732940249689753030363016335736177735055485121581597323759402280684951698519875538301762398520835465717373004416474813576265482667650647599750438982750224240919100028301508366494024283567019978406389325803247049984065457690564904694781748642332889648065397809921181767203627167996107062008167253689005524387779372873678862675121020255093307102015124434259896048016245694953571722697193001975610025788676599503005853463850615728987572162591215479016077058344298626603560401860999692455343441904409237077716284762686164980924241692261281808704095162753482004734309500293712412564980231937516117620495207906653382394079927887234591559504036176191735528680958174050932508450083204308319500684917716089600291973213765396707689473199068620413667009786333107250792585170201110829756880163532736599289356861084219951309475620661087370813136484149825213460467681179464105209041139044644974704981494974453872760769979337973069042783645322500202371785021724274301246514078570422571750096670346408634337436709555134292015234798357157160630595110003270127453053891590416878319367292319343495806814049546956416417472673718440553190373123205755053418485912634809065215590147095132413249987324402988618537592701442982472293210546524038487972659481186733145255400191992223992965157622356007323892336018086726558286133795241757942439126339268811586779285327653600675581850771098882280582398122491619937404353019726929218772190832954721707878432673671955175845437173523454110813287147185934550900551583785364771900445184543233710679276274079851557918194067246920241927825289220060569375300883468698837733993283639676552752004669461269423887797833904118478187895546975730236769131958313746069923276263227095178413023265390239077957951642619302815371633472317990270526855256022084006980982549717297090729237346114305671496508885335085708892919279964295089133137295322540791517029248314803590065315699552532951650814286909641599371684066512072485724862682976601660141431105761640682449728954405616802092980014418846327846542585995733019162015602636901915872832013962742647268491965354824605199850126760001758470791506268827513472889968593097938650641407236714074343639081733394385783915870815490917974899996289978396443196835840875417769222366662375228792667761879566516495957182195771437968149211369916928921281762647977644733013600460411872224862301401145066948253066176491589276196189014897269991912045682210833958302045613829510835525006610077443763659112637861467314369460768080407462741384065766285190951719868148699207014083491017030375051891861494625889447328917000997269058299253708211022624185636491822039838180262179156027837511331242679110527961305121591245051388866974747080799057638564566767140091374300780403363486105052570902633041502469672154050502967400441606360377270667996628179493223524248691942597725200250843748940433752121471745445998123710196024488214322154636616714379410537520037222034519174046015197291250021234594357026738575112758980996215032582396323451885611072950199190807315814111646038123484718521093103453524545762981151561331712647380375334994298535255430066812280817882062560571016308669198759092368911060943422963663774824855138897616298297151879955990386532848646495560289888910452735961542915518231670522112137766839377662594478496485838777661488720354997389804649502432125404238549176733664324823440763002991997788888520375221852058775849523298935340069278552903628292807734450069154645288280944998371612463319335727164424141974708786922830493356250928299592432623411346947094204936475412122408289532684774696588396873274015262619028563958115612036650728358699274756367296716441241437417166530593195185101180573886924097121914062321017927212883639368254428288770166247665891502505270676214028733876833489728695040480569646280173073482214482712127854854552107648643362841121235626776875293404832032851500640250806284156922819374939547617354136121932483103293948423962509609064879043290094644558309269354437731594031544286381879556139858693533521938231712309703315829235850782895054248347629903436396408559884783353794675632880396484758166255838954230052440951113082074815226727240945663406414916865191002400265855932578946348777953218271051855471431787160086707677431851681228753479850714681998314835622270833062842251634584104955972373960649610814346774008199207836454232905035112448498224110235520741125746372513503225092040784398237092636877082847245383199594340122334028212883737247545922839280093140609560212662546636196846838263147761876710339659198618156428259754406376484961366573448218968559119801250195892732600528374256180096341632164908163169755343361951997837014904111101712672435043170730743917795546525919654678984340161640146570569283690019898502321263822255221157089386657761714474870513469696081824949672459896777003715506295612528844237653736487878946481914572495729081483050178472025111549535245680906666906336390024108287655524223327377107493242226841449368361921554681443532606590448533569204887619981961023604416415729789874481619699910091537842202415267940663882401254514055998715121104712426582815870853991559828796120797652398126327055391193825087127454587550902524540596130787986030161537533825296211216615788663373051233499472185630090749069320427152784248338119342995631719248014172564828443095377682959421043366563197279652537324251074777573912855531754030914441671978900339430658042417711525587484214628177641647248234883123145283321108068606436005650923640982281108996497807377090765629105191430118665722410956242962387053026992998654689137583882108636337033805387529189588668540753299263154542747292366106781272560111877480950049077282307858353260562277518337301451619375135859915937842829876795357725669295371258340127685066408384883553716448529281547831702128855035532841887153589108838462582612934811009711538229304886330388244167430968074767639138611462607548259397009066049427942570058112897199300656960757191283734624680477905261520287659867945442248183451009043672165848527543333840015790142517831994884290704334212274381441978769792978296035047200223974616979500882530475245383769952869510912807418780169677920994352210176958148726205851999756467962272588798820490456097681324228862172961840342004590880975237060960779994248926512037550008345641611439758443983730252145823388895019909770479476521568854703325031440440687938241802434613662168397543025123384663453962548405166469904696122566701146269433664786848571554016185349431525556115368195492063237066700126212693394962994896892740425525008203255093796912686453415213732809067896018653538644497364590282366604202147511669666903015802601794824473086189231197666464085802486100078507123237765993647094740633806806662806206257760022985817824397047970405386667470227812364707743351936041670939895681958471343326863762158618329527100220301456111318372676472972951658636518668044772150367578099846065655917992009525571778005391091469105469505046531206076624624687689023555453098400585744659106755981148792422503481705892145389537248386012880919236994930980779436829303646111227186339947325418355588804170703252846087288186533552485864555274517269931713359970341610257170417456965350432519103825108320533897245869471361135796916124800984662086695534516039061524487804662092418555881756756347121270220374957340463663860161323641115561384451855841463789526029297394734864261780489681118771321016901856631346456704561475789559139869093708917862583509800924793415242491942381145521111964945506784962208653342048181308860996034814568012230862434794904963321664106422152333230868535735578808701645559356185095277435060202651512344597776257649136637216812534435948443658971127404079705815543026894600130800570618224660965539207354371374157955146431337844577866100659314677394900166969634026462422860199148199897347108855076384104926882343560580257995046294209646784356804924167693059332309967907715523832121684738145259289893642023629014371402109448945511468919086967291271086701841078278026411491841540480119834716841649605011603807259851865594095283217483041410473290075276177071758170757310453080539899940132899334672334316243822229833407820515055233188673014379441723747788128454124852148528337310818469845632180965215979115453161174869222964530404693697140056213327954917220340675360474326502977492879470848444428761012790108449717564648367263028857685700350186363482236695015622204673220297431044101903383369477580386133330278059897157182054831529681083493249907352142454472249059758395587347341704483947350496475606261895959751567902941221862146343552312977947848380700857989233605335426636278603435395867947167487044909294105748988908663153237629528503877364476409800110260471629126496860055085588019862511721717573175774294523409769063628801562076664496635563829503679979078673837415519571405685839062174693221800110010484765060701644279593786540028561831908692934903506053941395696341047549415848942603050754066559478305429912085478144990663984359867940540980526873861701214857048641038804033766491013408146424790343172465848674212482419165420650853539155630128098056307472218266986079833605838261383316900680827496235220584618324299013659058467284212903059967491928155490651658817298096056168096270672025131229940793831201456680427467107114665784444127695761432938957230313278077021613831241740268029343487198191988027745880367786789209326596446278861943480940330160314706763084453219909276490868831033940731604232578990428522876798942888291334336144952931126424383129168426426247602585358019204803820577130419968890343585683309600155359453143000686145378792763532332725813171934106900278329707441586409687052681528063638403480867298125598102704646834734109344793372105448359948579633982334193521020264504741808128924054391114858521156554517784585106584133211569590464010122737820053138103159802579417215660206528206925955651927160676290657799132459143895948591359693591934153337319730153549871502044734488857498891191770669703479250645021439929740265332319045410353535092795509663120399730715862398680142438789029504477898914133590831036243823565709620861586373438683738638520351445911179340781610278270016379519659689706533916456540908131829739286020924298211417647592015245042690713412314312738344200308733204927655712209330950738213726965677304656990601781256985598357097163796403550259730417783468707869356664560748042492222520305357181205859813166059631328775222581619944664036521298898078953382459040003559433507545798253604595786436711886475692036221662790890016611133688977618867741659981011627701430832052203440598912529088750928961837957662713054612289138591592490901699002799867086331395439762935746097780130445840121752915076835606937961233361362277021474339838382838510526881907120198641366310269040483907421270311012879507678388102059124744956521274364187746915053866982146046745664167558700387219914595787604373595365059427109030840386404032018105295578019664787891645516627986121332038959819878703939278826937800330765449800505947014828106424574014271351084962287964035446277715583871987883081776876218700845539983638266839564734113717415789374422639053867912410832918105393963155231333707479006322261963548163134867598981470270458581308350677611592895633122793270836477823272503715257759066648364879637879477879726192019173743397237286192631177284110662072090804373576145757279085666490531921789938544929235913226125764830758350589876029603581963671019797437200071074688830520576420626512552807327132249403628605512769496930872104771252830570715302070729004567343297370029586827712227672701145048465808813005544617631141558552903526087331390432148324255118741701582505921309150465435883333632055995932970451479854066355071747303175597843092813911185516095953498106518266773662771985670060677734479959808445833400538785925677749740552319455468567139471022927247766610830992322734229547510908676511336618782737850483206989099362353036095638152258304488440778063420131862748338703238829567020868871528947884805191561440998188658792594582741277738105250914903563519005346852909519329326397222923755321000840168278051407297516612682679085673394307995269055054338634937224992539460347460962910554979027779325627328355958708430698747653343434753982911610328102614948441593127805674023958721242850300309586208247963955666585388861787446521243628448485049200918414027313134396484276048693556870082531723679142694948087869900122336289876901447786021106154514568113083061550718901058283425753681256966992677445534074239130815754795233393103519843966266237747114147705408582634285525974672604118910094656904532345939070118317309887189294153450404219900855513724334594625885086604852155171240352485929741069415172702831634858041935665054179229038633450134559739444119128575163962321161282207186453784779787122294093582348538394238623248863204593608629346056304801375842751711435892201127128149754394217508040058814096470723978080512839461225209887567670726818621767418850441666517314764433320280854061419358351829685493569261022951314406626869063245578458121905958413689084856694280206465863492092560934046631142902128996682327885497630344416708647496618410609499520232414242593066381496261735911742281418137646301313235229266214001867680501798474507139736465202156733783585347605079937498935317563456408017364232637057528706592832079879727581473157856818796387613204779558111237040826547196511231402073274332197385199791408364408431220782475531178484226064337089596041450211227364074447046696045591327807959560179879779869481531356636364138468667065659858763292387929144065065421536237112657073744206034439383372988893323141807615344136094242433725119731717228619506672840708761683035352428400698878000479783065523040827704089219581904401857067949397993521393410076866554753563454276280566848146388216732046727501837717206514613527257652926848316408010544490067793320012175004786654784822055611377634497985007171937037571996318210697044710665443322574896956868866839931166467835061597214152730528115623868657741603310134363776606959502658099873073576118745642108938949695585592259112386417682960532928993165381182506740423116959755970271599580385045107901966494650939905286978477590869046136855052486952894821133114731058733595355925317329920632811848096824548870189770406676250405451697062665486072638448756923661000419819695368962932316036315493841363540056849195922788109418037800765274704771237552674800899610938655355495791618424229906493951300850875760598771487871123217758396987330486689644958381091028825856481899998165734204299688556935930113933496902633478432239212950411430669017845342890954643795765644137015744398929795999238258634328206790998977828978107665624983766843952468571351702981907000094292480291480361920955293374864895432407097526107864333557955766291103295814583349270877776618632285019811928530508498169078830208825378532781657208175095992287291423841523678565414135676884153099656297987495644982457215468043738849927184196890607997951982669789803752894667137323488743794844569874137980735810463415271511459528385068528424501330336490933141154897868567606734277903807197508084729640878160345498709298042303925614425733039853843882795824705213097442414995307558214919366011881735336334768337989135297793703295009971372745769041245584866338779384757307998701194549955435784324547342253078722911690264540582095208537011442638407784278875782648335594269799865977324497153416991061430589862392483903516425362208186787999218436395432972156216645435992218269200146491807148726852108857891605868958487461207380248203906586156081797872673341810084040939271877531625884014508053781354656908237232368827766102005905493812839158971427727567272846554687420900249311961021392332989346552111562447958633864703940022702547211083998710665166527393517071812224885052357141754195105791777345775511337662746526323888807038130170243296124081719405215962390439455296125432394814152678170575172294540275460270828766702019313914028563216284926941872727220876786687758621098137006780916816510340961393850277002625730804602096962889628606939815813176403719731645906670086691784200336727968340401988489242910428764189517613566025248257871643021686190395894399439733722285667114473640458319820085924608861550077784010629592843033522169279928634884200934351155015255849755572789694598059391905731602180049826214300412885811469778297085402947734594788011076326294433700556561013106684193384332609783546765330919808744460573489132398375138668783479535603453418148645330388099951851521678693553292329912468379675295081864286747714767828546657269308294758236410033505385921068161651718841532059028881613161264467955393256121026039379440833173663676257705528824384424009378545510775980703815692991927359926604019014751491547352785097774636440371300359286237776392742313459684767072719399198139024390465561251472322785156181406960668146382839569530483932394917732367751861989656847048149768714469652259071237562244804801722747840828605642377925618354688123832919000318854743240992063409812094502268621143783531125634429341501672390524694419479447741667856922447569758647078679394021881861900244570964151953522520420684218446739671506256769983442962000339436537718798386669134925843568937472900399264777147467088196859160086892186140794870110152328385467553406095275152756988743652183560369029805454999458897277273838496813905433038408261806854427531236195974493254140778341363397717312987598276307466587623423425043313001555098249523953696784559062294634289373134904032765245057986491967704881238667366738064191095312091202107257560620513066450890300278739823426461172141575846709449201831568212455487084424988167172669378708371767522356585060295402011701055405985526820229034052425442154277903854553089020234192985876030571163620731249250393079907778522575777508292966309288401876881677660405550907089597849351893991124323127677368789812121062531768994193745779209385975310986178975053838641686961538224908223075536261828266003615641772156919403732074866534517983570700233472192008552485154088006218947363276621531927920680438988155931575477397732064570392558825071983940346285261934512628081855048879716867555222185479359646995715682731906223043790074044524265152211379954352043219406919296332441762794352838497821916882573456296726752659410491478034392059985696274105742525729591143563671120636344073039128399969951015831533304577217967100813022604065784288399297859003417137792326860140494046809725837755150874030659250283257227381666512082676268576505317874792923817824606208058913074860725499567307833961003562711095778767931542654761623367152091640411804917581454211087281513711002016825154646153667873165089291402970688070411246553404489144403224548268120409904975085398128907187215932528022002081944100572516056782280937168867138108354218244740637097991592698738303118267784184934466839884749432126998641368588313357637989129803249821060954101005378265042292694896872281605439881128787498190768490500694904334527885932344322015808469231117318346504664791510568948264007972525711334885307956044137829190898077072856230230023715150120750104476088296795010788846218092426200826341833683909262041373626946708620340423717901998006297228146579011912145211145293616432604681937985103073746575852590086904296571238812702860869370879247051731463572170141694183197585240480024363224973108497583704268376798837532516145943278467280072369219520059811345493905388189889367716500724384079312700405884198267774307349949071573592950055198462518780510721220859547263185959697901404453154003276497509972940331042110985327550075647812442604976357202283085326801432718902023173042626261011164587770014739651322279780391287791188918735693207364437786866706737014790316128433007877667654488365723612124780484142368643676600102981949925893899685656200979591952994520865884428835585781711954788279112840022816965122878319818108317470885415035586581642704481705400497948226361158331571276116136577911093925744963885928260834142087016825598389554794153846175809226381450568133816477319187401004383634976923504188921850843434888839775590526339997288985315353805147637062527408101436360714021232510827823545136004802160076492427020934278362471730745162030688003123007313344593459372747041884437471464135437392178902298222829853798763286042423777277395502545400153569908594954920530823065282807741538105256421089715068365644542710245129494484598803885846695084312791216263947663542091658242754926656077197093252198158764888115712798094643760695628908990969910730396658958530281404048004100599823296411743864189205229783896435486776628781446146430496615199215521665821470067093662366189146471699734110927889579397577280447693550852083877333679714211997288455221455675074034086393217039055526904200505956730522581449675271107926450951730700491977623095255691988341496674214814046105997044279411067595663845302554671604766074129001508798291854652511886895161153003812760383046998344889989930030754265874290870152958586156937393135068405618058888527721870649370981517139869106423787280040054197109309927245821964129066978288306451045088470279231537023052131763647096526676539611021711568583109312783989578473802100915170237337108102068408439043454206608380744867229202981149395477412588669022019771759026505718196327583995760562144485747526095859621657628535504175174711641919378540925165965965733601587873947414648379241225120159263332721002703150942728369822460616256445851504590037921889257728088210881755544224482351052783931732820703034838331206703505011745370670927339579818382568364227077919546041972401348047609454515147223770467731060945655223109288754500456350870607697211686530871548372618008908416091851598007258679819405167238449267606212030163588722050479791807280319554561937084970581720533591911508680172947950656914959806652546677305628066177703980729838007938039285331316282563099539510069198139652347846307442429770672752348564375685777553904598564432989457948249100162729415223734983028906021369743660513839847984827132475834055700949751413343212709980037362720160662916680966340417415682065159932043071911698489216779859727221107884210553270898414531454336581274789611948711901399965640766165259313465114785553727310248727696542165306231659447883299867560897878559379204689882290733419190024955872701367273982283513285876903596390899266654923034520409445281927740380212483782434482920220077682465904089106492448134497404138371662068880625847658407840975711682787746339424877234343349058927938682163862014066206861782422569805159295868145666345769804455299826090599206447102633357045410146733421299543705110660441483553130271626158622324814208378612344852175418154162373866695113895068751919895036411271720992232132705770229651789776912512298960044841253533219040201351779553773555794917001299024455946171652710233186542067099666322815802057134753495932264886917085722790067550776524360960311538228274552753027926757623899448258413850935695957459928125570452837285808458688639602812380741750625963475841011321270092407010149168772878630638498849475990645733144420988561750041357038829619635101738120037598722885234124799349610069945892628156386270788882193898729722132020610627420243686262205235699886073165755783431955629234490855781981489846119120507308755416559187575355286940558946820918780349150433692931512632899094092961094520938529972727678272885673298580391735880977752025034306298091174418526017637226112230525237376327752607873110532354218165476416983430016861266911876106176577440228011995299054560945467587045093495814950486406354292615865628702657797544526954683214037074035335111055839518058121942473733678177610565832746790022453071415913283282651388857622157196082693112385917869232534837752722622632564019099485005622882458193463680963393691797274866943534013649819973352276367398604775291642658176975754110533797940942013949722415553816486639378990705042746205036883034080486682007066322414537742906384862931145880779545004159721113069713131724748793022694716013930971955255501694573310578423462699290086584341937000408032157357614170873741569473229922124603995227106657785854054619157948247632931760135298274070408465079774132062116886732620243162698788353467094773009675829351261004926874505628410794313774377909018130905645318488618787019743658623030309725573894066438392767822143079192846601585888710157181187127361530453020279994107215646737423988627027258410241768045776600990263517311203808521794859255649390229793797532261360099832943892658520613069116710754964449410296296275731245352777107417207601932849074259088153821914564830113555731344590966840621610203162956083221164428613185775577470659572101041396581714930363465764302162173301108061935748419156303143341232523267437197979984164705224871028300354952220744365111496306007672731873796334291805878571160524531664934464403702663657216985976484901971533687929317260434516692339316233041213505475211069007456361752647401428523014990195105309514704569966761642876791716580871946165041157868400665737772800582826677314488260751940652591844246274905741501346469778970329088829746218702338356460963236953943914093915447460810605295792373432342717956331660186866647109493533564177547621148465455154183041264009043220991100539735430745698603945397766928427822057022924251594890540647123282159212719244410968342706764990422683623796437599331168220935409714026956024954015056381101104263002873331697949210768696995328836555922384953179863315364257027886161852404153159558896360922831367288917338384556140144286090949084732941671383885046592077667198481516970010739684854029319905936967638926437384051793954284854432317150842963989664385982506738244528527939613799501722465058742125227678956183039118297120027108296588297345660030250901473412701211662959544375128392903604380632791149885144272580347137057731485703593582049717019332599660118890358449595141130220636756475816523733686364865911257697189939505879894470915357144661871676827012161531120387100931449008014307402226261564599472018057006403736189402820862319492780721053868438545149715051057567783075152909647234511691409751211565741902976509086552597163462972038571825870800778340030013160343124432517654411090824963272589675475260865303593578426407265193891447345018495186113348516844682889541173461104978835229115060133213465371373281991941418132842430199823301025005899763319534074709577810098479331762567890696503693116216363029500361776243431710308151346778614745587709074891607575867075285792192815331294590474887383026125845475160938857714912618421276328389147603077018714102266744587549144382037476352291091050323592050118553064909603615992764315603363840573963645055111075548508855668138176625476035795889977067905200072855011570089907734550379044481204244530464660284792141972220434288448658308857069139822762754000204411419781124919592843155131073235256996702211533237512153752762919744718845262354280371143194616044175402246093911006426850085940896726536389450660486885271968106008277336330766851030894785163948090217537355301247668894189617465207023828644353976446753558664418938864443411558735352760207119898200652296692072016370247356470578222015288534045301884942988182166672910245084358510794597021021068815077150756067179654504801760840036489044583792809837574212446718698786472734106700367595451838613128414763904476275703435855690679630732925880968415252910347758510853110039315411576394391492712722497242841274513427654729224103518069831734604360029788021089409537173957132876443036732797499851831792702232489958453561390400832434961273086590919280135533879730905072908116198848990520227940244198045351471004426854887066000815928941774399738189583010708421254804591825106276415217517793396788196056480235735727677821971716774928964367643376155756069392552993885578164684399710041267885247070047512968766531669596477093226044444463011668943093490362063522109619510486759576236371393605182868760883567134447856061246020898423086770930997268338897025068964626960830193715536928006080753872961437961995543165636424754974210476784552416479591911817510806833470133547176258229141483129239781766787368637595638264434906905221163939961879924727030835905714607994064208452457283656439868955524202942439381160911086721122467465801617386256888547489570918482349167624412962718826760082021573667105588356698411619411994922419049295323591211166494906125895228591839215756902177177937339181773117588364061136578863084789519369763587773878639074829574516977112484973950865388987891963947495286936938953681684122195690420572635357457857343419392676881727485456781593444135529401270356734987504646724003139993125993647235209602703284114066038506250402244420350642426890186436900285445111220735408983465625771155556252218309724139020114065612389270796299577781622263345944630591496718222067461733918233338990278126624661946142572172946894765537427716184638647460920725698603240912347321637407478381236451737403659069132193743350285134262659173324026780980349429484775423604238986909165497322861464872418131950679432195386301076785469558077392951866563171496389819300715431357404896529785941769100307375684604125555776965071558038194294306357451691996994791362867263051337413060746667120486731589852457825810109439209466459801340792382724751755885659545072880422959396581965492504447035002357903063764525213488343302748698253400296586691914101662546632775647494814038509376252747981964217887822032269140622768983352061674277977834742337447538305507404141116820976110318338671529552940819373031656209286746689794290248763478045814041785435075723994340913025241478386891502834121237622142923425423112263785445018298825682593828808187488746957844731196730761622929456252088022168453405987859523763204238509478104270069089267683122647474118731057852748722502870942734371264577037447180503349706862381623869475709172812351108410584293166378317181780312653545536052503174702488315792969487886695978695405222621971042145980660867881057124065345166618362187911901626675220180353214162508514142474138809827862225510462382523547431193835615230619741689940990595442132609594935005167051463258127701307270858969486457096932596660212961947416743330498918840715046267360244481305586016258611639886559091740921901588705602153455393702077107680987443655202186610337043625038133955316298024469904532524727607632887074222003691253721892664142329243272581402898833098902184340245980047793635723566797503999809818765919137067252483655645845033994549810804131508203477581855445379062248260615521559737883840555725824543310427006217054381439869635571766304365671842876542343194040787388440175251509423684582274595790162300377521356988504405997181261365355538029397596660348596503209807480621000085035413510084966776166792773291931768516059761208539689896127455523900461300301597618851297528154710604408053092471648237902299717783936083442372642498760645869437501718945849307156945674639956559047759476943711100839521822960215438038741289193110177145074440527292684514352629458789108027001803089167428157716941039619012592107561795825073556656949036108499141243403091807938453348384873807302930721223678152780058539966588722411399239797592034925699072009980212158105230376895961940032440833238252739316496872258572945872824798825883351858249890559227979533324820728439119096630678751618698187400131357561411265542264658219603599466292585076195168394884002114556688265411681629808584489062024984147845029185029330974919995647756404895850934535892876231493058055053968451081336783249014332129199008653568481163698297854101007714071974401270907076357185288357604288882684557488692321706927148442787449927852602199632185274648708413237126496929491562029585400948756695667770829184016492303734852997335361772869020872035729085140123716807463543446977763009793022973373368361768617990563094492197455602718306869624886977736549232567418547424458981836362167898990051072344820338331891126161669342752963924691196886819739507495482444592518171672885403436011053758073582437494360677885494061719651183479468903461337815024655317359191973144638683474338530036828704421801131427938060388941018438150769404857173948234606066347240037417286238034068649903098442174166685145700672966130535004525859620039019660143037945770003017794682424554389920290529171800300080823334334542740035670888990779970372156537734758334211947067300983221905157458092000523409847449983200549903229531179346609066431536311598034572460979056634612675532784128293836324583412497782623289851026818787284451689207052689134148799194286265443277090744674186496346219023776008044512415960678740574561182331546418416011509567695962241938433198158411675928543997057276808311183025614974919995755743089821409967963469684477154956307635383310078566155211939661889022034790044533047270407852940414623707807774122182394017008545650436977238623980508920487958865275412656414040992162114121577004233776334757550323258167032974512819456440259156281133237500231295334056025346717162843115211321122914141559770679233681325825513014297572689203971751664655146164301839177426334602960182721947119699266559966640768530275429315713811491748941375226552059891652193834392037146548992336188959366842631099087207476493318990796549187861468943976480886858054766183747581247240970563516007481552202953490864415101617260533873178709363160824536692154013595598509649121763102861207060511010418470390033164893130778828506304730622536293993440454943153738491829591181035692010136285591692791642159096593498311551706740539551719484933479671117213833306211112333399691288283994778993295929110613229975775742524576312102372496637929777111790654094234229710988854001817209730758526663134802434265280848488898522669246760607490297494312676501387474400822556472471029491789718185810965709792441057776628551699953585955626104909830811145481045187935060608910008127873246707482442957982019126837739762111321342091180791126236664462411300268399449346508904193525492839380044598650587956943056547744238961406226630063171032808160701259853189737639982094185163952894703498630866242883760824891961003748782408080133347028621760387184891618510339359989949485988057383359435522813148400814264923548633471004576094477644508008711597761342793066637473299053484028261157170637874036383752980605132923258351351439251225794018828329540822671840451757238455893086890222738693260785453330391120926859115943234613299640888599690273617224865525887989545601188584469967437151122997360799085486882309754759545109034086099256576371509486260301968433776143672924922957538139926926056669663767140779740813835373881629495378368732242996895279701834343594366988592314701397261988269266080756629777186580737263327162927264091299085453287605299939405897717954189005909628771466390794226345208720464803082184989711406155050473668652741432543939569816057776292493462485859645568324820482270952728372177212399366884094566882478323237581730774704715663199407787561790455739100622215041232988331646360671792632579987415848312642367822362395739181372808128627528003731493034181880947144553297525835772063266458454607983220210198525551999030378371281200745270879501936726961737112101616321437347858919203256496670664452176874716961246611752020233586028051671051561790983761326758205610876996962320745373483449134205516437651488790216212677770376463363500598254632773541035287225684709080877175553283520657329472117614997129268369359735597202848605952736412897031100900963882425895045521767472588499930166371698660770119496038328419337131993892443715817719175227759180844048512680805570110193338251527650100262338027507196150429540530757321970299709989978577775762833265013096402084797751749372419733213927774457884965727873060328415817728397886513308048243392093696846152004704142733752767335836275243380414867079755188175752994556159392021706079563673377968444813587888321561199244732140112784454559329683401254437079573428534305643398500956281190630634196071671016295805048301517221906995257034158219275135468872930143779461730522141039842896690477403446751025902637895538529694215980932394244371453480958853802757219683944751841121948799621699150765806777736591023560141427517647666756191926295058009445486088500569141437374539311537771298589854216197950068846151620051328922362405100789042238890376306700761830301380188364788107160017221033498969740681331141676184300841669687522264423497904550808633375767011765244359428416437335847064986275291452525960575538474359895784648998702506342631829979588803828715027992432461938593275524320679301124354782852360447949759607235381050876163816432360407537639803829533220471728259185936403132691252586227661503903538345640692737777933411953792830092794867106387783656628968883151851490950434657458521173247595784394784280024709742213030465158231714917580316800693996485145886363527043261519429753983589129363500896510156750486370984774902601840458968127873077117274544512066095853714388479541829667915507875372630082818286605122360367810852633485011700029772848269159294117962017732113030613757048547896443184338442959176801006442706216364053959196651378068982537562438614233633455689647347777038598015445617480114013474870383293691599768926700594676174456356583817749575842666058830345786417963668713223752354088181802637907081057520157712517209561664792728404975569214404617498224388730440806584425184031809656616747404720447148345588117286901204640489620265804701503576162140901888122991643747963121752778334584019737827081148354579651751371503304212492401491454384951168021057528180276124583450517853370472184935381202423982574625419118430034096501294124784546587191586858647456475169109080990358934294591446475772612162287212836488075440826924858722610690336050514491644965005992055973970475386183693081584718150809965670729372086732793674471106286339240094705226602276221702154265784247105558431012078927224827517492536574416922179546036965086203277423387575404877071895908247178693167816782319845723680056946749991155142623692083797678327109930848396143913419614230154824713226906614433024199284334417824964865664398571307887567464634098592263891893669209119799948678654519283747216639069855818768991688395143099493967065688167314759848295622609212567096309776116295209728812668243446095890290564903626606306282735764877200034030678065289460753419249096687014734574952337993205661916332532840408776077617683105724570828840032327902888083406887469181049678238949198125999962841537081139297060194331617323085690244593437798354624057530279817727591855199653787399334952965466419769023311200484467185144457701047459597952818418328024207042791708682296391190357569534831259039462367251332724267156949632535662532116273069886152554972398795650830406003697027271353880787678624092830180748291925038776588033881526830214198784186536268782129841591870948300754596729109871285887410968576818194012963111984919596700934724544919518571693677980257907575511819791828518017694083770541160727235927357338358440405126388406379454034197445914188363466840171542948790806601475655453135058888795182521883904989086959557673517816337991533158658639239917702122539336341774400125711736294419722640661573910928317270914294861037106290620708490780279749555004480125976255115329078835010679571393872754963365193597782714516613970923153706998663717741741003836819766023626910703699852844837463470908234085683240743380578736035430882766785698593143968432192681360614659570184546909490745462069377176663221157289823825980121421633826276145579402448887331275469975936934400289259547664225874641630617119174250833188957622672782344895884876254640607940792076009035606596524030109902318047649966084112968328671419283910823678880301783447073557094197907894206260584388664600058775124589144757883724002946450988326488349711297952383323694565322502765333214363987883689901114530624788643848347864910758090285962012465369077054869077800560211992140720191513315538227375681208401421501812440523643221633948408537143244614383008020458392764439589413504545043767001369813369113895616399533438802763104296698324384105676531294690791112161816653344602595911972778943701472084920933762084948205176043542087318348831749662941730900860775911980361696722713056625918700554752943519093765991298244711416226174609689981468775389477294075289054833289950075823388421750668076782395358194939794673370956233934002977615877058049409262534925749338253640940491780910615256207014437706927416559428141272346361069114307590185447215742554120318356771286393989290262136144501022738013756363121013395101702976014274327554003353207637617162623663819859197406802547967081879241989644162377896185760469018351825372197862801976541570996614096940104293095249235843980568870177931706605499906659335247726995768861692277076953787755507894895041893867965723515805102450284585423458441986567345549047089510502839068165746569737192474702503913784539975910534405980582109641490934881922666678723367566273087221732473387341238566921450441343070908055595663994711010933957617657578610366843153410122747769378307443006430650934331878348317387499239748906519357564917843543387169951459781691183705500202095686747256362499781031279993199614894147998900668686622326177208225189911655829928390151958811325830005761300179359733239046800996770544742025173574847754468734475418408303960985101044251927010603626592995730163757240166550331069213122280844048319528707874008453128491496444239175699442316324711944400553632651986475532705613278150706602718786969380395889623604420891925254446967198565036443106136659678203737960000296589541303960890855774874822824781636190838004173505657558405622499738097069659445698306662351308902548212459934470313445248727451376283678776654505984893655179809249845670646137232861042498480503191355116015481326655923732681383656928340013283611031687939310420333966680800021110997693620020694257189174493916783544446194280299033218882576503100838162939980109928034256843684823881401617145165440988325293002450951600612938302435310257743137902008353354507773794792262799317302339433293498596771624054964457872973910695941878261571795467744972436274395599807905042156857398348275784796441495903638861314165502774918152354985066972028649157802710907368340317554597751249235373462817038377494089145106138478701135515171980923020516210221295688100594949633547923469915383689819367146331076340474083239527322659638410841436251582786368442220263867424733885356081539512222374869696486077666772680155241718464367798849824246974605724006901960167728972176139190343291351613146414908039549269167015722349282941459597835040404979967815149049185790805102547016512788445279641369827910958794869213331646659320988700823639722920967056282226500069703243589859693615951619085160300292220459099057504323947510577412470924635018183795941619271214364831406700204638305238634753389117663805047529415332635941492451638875483934798859186279454919922228631037403336431739982447167353762068950018613077862850333369438572069235408589645298282266082716689787820677778647602031382017323261248985821415803948376522383088984178431586134233487348819777402787177289320950157774382346527600768687451920790790099013204144287006006657863769579165165275302627298715886112289275285485323841398629474001377776534967157894302834437852838866445378748941938302455040355332529230527375627214982184502742305613863093947818891197865183079278131978501308128863241678090805557522139541449404089011367327391504255037196549858454633849422813528019741061330403878754988997066398850520569856436930418554271438933955986963333270361182136140594194573627075069577515161145261057443938138671174128717499134623874419355043604614777979933343255735984195378551168186847144404820270119360769442291420899632136933143478319328983978050688456800741171916900631322679171855284449238892203374740207653603727887602584548467080765783817133887880741665240345857434916447295505540763395199365535763988786893978868386448048553784258036997363114882283055516439916829271193953067217778840924012168932517626564104859511445198522418180830695328257728303132128200493035761152848899688403940047831873992654495911134713726127033256975413416804840044789572454690769792315044275204413885755928933228709600389429789776513736266248525882702515039864255027048691704828557652174531837411155634918504817899650468778024323100508774038024192863008300174731087399581391653053219279832902473395437674244740797273330510062585228920867918021465840576490171056111776395586362892787524472631580564867419318947919274373098960277474268145243611921798403612083528056222940851813022692160065759111467319733394428234728332869763501936657391985494788682095399905671073948293034988514597501591089098489489817904283010043539533322178448217365211742413647196421743416751483438618785692212483650585361550900889762675663349006554170455503300813809370278581477551727842383288304201311885904065100565721604591269291435337589278368702725512517986836127117947938553290988011414683285134991675109728019495240569997368301554876530170574871232076905816144254980069397382004887292616264915006301060755685343854837007135243275519884769178884998308321735183599182634025397496226251792830160951339424741722108015742871494345758920143336570796829896286948243198099198958607869478582256346251338055453887413605710512534464293706632677094222484313266730939111012411851957193129001276981951547972258340574305125923186276601082817560436823498721821670594103522731923319131377013275418805679906847769058468422099855690126215057634133075288521595731282463399253073517502996265061056586508154152507949701338903871799045467058160210510556377738972820539609210350645389040427898269559672746826704212367290060161544456206327213142599728341059481948665882297448445023576444117806076135853179803158969260125378755941882207038333679515028135656107588255409728116193071247330650313783800341452075760355960297333723229542878606018015595433205128305578890528602996119928298055981367946652053375113864695066260470354895071876985193175471420909180918782903006485100060013312935946942264604551406234678636500711881392367751196546202606923397123149420071344824553328376372225375457410370884271478683157980034085445134817253830370444307393824243321611312215514533859930403518776057141454764819505014692272848844640169022286698309480884087376165392859438320320576843432363000459975460018513165771103061513906112231969289764020484210747427817742230109760401114724153968340886075758027247141449093375534140185514310177420236382735556665686644363679690254899411296724078897380949657582741333798801575568664870042769902738047446786824966546657663655726101693121184365397063827162169334804680050592264283541855028632206902140008875860270540922615572509005280953172141774242047320521605048779279771463237671731223862501939804593601044864179836341829631871786803193725494644252899155844747539887657262261630456138301038440738729689139277389776383271392136131526698679087435562901096992509759947613059112353531601631478554570080461139500980459808036833249678094012468849667810767639740440036313031955287353525505627221028538346002215784231647415010348100153837211583225387160728688562335380848278377038569692412148396661512774162307404118061545585009742024300263422853344486191595742222701327865389009835311874249325961308909004290269113692463801247733366947116093781229919680695839840070572309117089783370395514650386942679296327935980639959660645048545087223813216391607065370819131658905580726890786819470820411697281941424710541563887071331795247372434030171713450381993808739380913463088190070594636250341144356868649760262687236186620710077788304858567550411099489181933441046703054553882012522501655438025819875989319554746188069990604796394447011591992864254870498427030541860179178263174098797938969722232761915560473758821038650317802671322475942491290471244682563703497071802970340554206466771303638315997349537238569941622166535300997161282596568685447261353330924285829322775135242523797379444217718688690628403871678590220957288904848939494090532895578268657068626846178935092049634505078653277923758159526785393590544928240321930143918184177711306423683117467193307655862358966360208853756899679540404270143408429322175816077744362045744754228838768782506863614359908674339206645799159378110879033183611990096047453637881790952482748284367535813633585356114779173928293842001968566865398050723148589804006230993141054796669586478399155276583033546090744607562464211175252637200577582306614055985621354128699380191337851625650997062621427996169747012754332434519970941989674784836606382941370304938787552387774303045278413134254068963966632994735241953807064396187152093956429469281192846753756172649130389030820432303673201949022531172770665017067862773222908657662911557658290590725545561006166507430560596427137582387935389234487205539001446083157935214816043328501722558906264496567307571139324128048652940651374477838506581834363739187824858379572905430810267157920673486515846489106656549003258311862630373514341032252233207399426658527345759235172697351355611354553003850941902540566983968564501956277687236529426623649551130966682031142646381122126333556067927851810246534367365891699696706166309913555478721963106771724888839738391785969381222483010662933618618693769434793515947502944391932439992721003619627050295645424314700933446537488323299227978999019316503635063867866362737098463130022542295669588794833577893436336562687325600860159774747353484454232043690041912470034172103650761021480666323715371669582817915783248349327514094572838044472368947185111565640397325693473213678648890111798866550307548966713115604522911431160588740730697747355524306998295581950364468677355697116333886808434251945823732752736597712550114189678339061069009474283135878787278825322724639779564917631428044229825167196693244345325435348448646212550132989885175194568519116679031497347618116846427161205997959267248385197806694366519278569657237324287110578712298424575590880131229697387424480081878328630151159410969990667551246152138052983390922603154116902692312333731036731141665137648808321872215681755765049821760189643310856750381357456731334768926633732300676480554245839698210353361018134895878631162359243309369479197878183663467124991500178604289938017890092124789939110785877806387557210273685742024412466300643901675255718363342575823182965624367311104998360696801758707750898213525368101435709523650737947123013894245256579569697599959669897169525811564356808834458178905026956460579808869125235056430700938764870537810081340623524381760872928466006274483062454613783746345826240527591116587527489835418728729613823162671431226902012283552245362460955180090140498935310270120120833106774555497674708795674389172865749869648922662275737072515654694394866549985306012569502680420410791629056806516370408221309668387882411006792348007724936078975805814050032489681744398986447611629395667518004248821333044460726039638828139639383773683810015245970404357222180151889679174167423273558702888044612771284737635065183038417166485147602684733872335525348682288790477369569228079585859290986588272225808929633899670122598800174006491213534812184501865631746660879757991825272526397557624735502239433416211166608577283350004631725131629267465055710668744617064284972447036899029365218111473810957387878209790428212580996166154942796279527878342835177259143329869971185013752555295030486024920168108801049284720711838071059875325207537999474367837399165525223703518712669066221402839113506386195607144991172680052531215947102662605042359378043538084376947468992303202340238883911283882552102849897510553301286332264778063146851424959385123810390213132826922220104001544730829270954205811569086915360684393120125678709126590614473638664182202243503691088854538119669335763508166238369243169956543665216582828096330908251249899335888953922513457351461084228683474889357933217984342874823448178481260441799334680713818970392707293845625469913811445871302166664374371195842209265838149572044560238689388685511767691861122120103571781863578241232703311238883968374383048345415119048093716721875000118306716301080773686888472369182600977788020130723036409487206417221674773618209456803525068977724348176868226416930821771228324496712872652090798261116385575125219655791790989963616485588863590388228574620192507769437493630511350605621557998346215344297514451417873720594899662153401931368863059683265358631791889301613472677383836273760414169883943013479028008375903097339209275853688070904890859642167852526677362754046186673998113657003531888742029692541994226115618250435086334156383534125345103384572516946330221556064173405088001927110578806120829016003170435286570976214614375207966254412054635109351889703543191756770447331350084965125339106733129194865474342338104819243635014075046097243354373022964376694069247390107008888677798070041517110490272369810196063276963921746501487428392382001144670618043420716099989627456588509764796811625156289605684026964514707447531260379918327482525580100783265674979631332494511060493536341701265735609847279939324707742517923565461301394216644144568930986680001482412085908705083065144012213626975161660781574490529767138878021964378130029493301473429655620687766055854088965547598415538530854281721001489225396948222702238458980075852527264298558603084365567745587082717734892058083271123873670554255079716289072878136747106480713161872969776778409762880371794712255145579580497879245418930307405624184691858673293341930056163030299253546231184696201682639931271370399445598256332930995030531676341771598144082588082123471786400541177289103634856714922633609523314168797588693739349097922157869191557474739414224195851824438959075303862071655894808784841833375719360128049056567688676180362935683727780583579359622279159082118797064031432490714595596239077501386908343997490395457744905104815098252487837310832105336284584604523723003464104642713724949727881885773732036855919489276962752232986322318971614603940448933480945793720967859899821515223401368272890643452945944446250131701948726366714625996161366222783090583016924317549449938336413898794672943756076044333103125718037463518446240962707864499997793815309620828023036894846058529919919219483502543637211460991741311733073555883663086691746639761699968252197048035578430223169463129279521012047866455313055605504491244528920230292719862897058647441719076815345595167998923834491054614269285645525651213251282686797730078617773750189969940573570507295283835772619327202808647628678343467263296945613174932763178931415516676328775512942841992897956193828440906536300944523651059615684565754680952898067896053724407216858212027047396652400906066245292013600580399158702721669253348990692102434337041942194366122278987789736576751534420231771981410695948790670682384276292239506464741658525675551807995113200679017458003057661795945033687073095815830154216743323430201163352755184256909557806096102948510940268492913484605606440352035158192786680303758165848594669430679650972031177968972010524348477264253757073396461059972006726169263152316686804207133635529919997967708622551696584610497839633434839918817716093715897939450328355075292072473073395721967472797025825343858595549013845960075832002034254460346170095201833742733521474680700130408839419348078951419965045721717478447265970599829176467112774462064129409709415935198384701932526346624956021423290470122965721029530119280302219024220954007851237626480849487610967381230861367195804269552877191257251551268083315972089145312186167433412938939344448020584651548355892006713516431848206013742320593695479541513298761855995272993946164948127041071668190516668082487837243129811014084439526600836323243051068937731293823216410020704072420475905375667385009632750685061231149126370246308969249279487440052462878155797220427019415621341830175739673427247987082317708421000640863314729392117786632321751964304715494629888090361711541860607359976598831627455986303917080013412358081498625980362228341480142937807458746486202436207372935131878093875431090530498024952525125247353138103554855934232752356706182699681677622769414456255769968560922147686017526888978824476908792010059468695844301452227121526449453372365472815785685219027175600970969168008384102305672533463686687606245474987809841712563374987571606324627462442215129661659831253765454850610917218977768867179445043406977259456307993073450501282986340827190852226413232760624552897106998151026791215081290400551193210096556188335155728354435923108619310942435065484979755227592004412256905847291192579737151194596143081053669935856446788667247874212456784913033465584053148977249238083066043372704512988268666818464206875118052164251806894252652716784867012047893101601110144186792806955943810267782764113887642276800300135430112630422977616292645762587287844169726728284639348992304206293291888653351453395108828181810197588720406490502070974776374582010671391743903014492853184479299144737771817775773634070437008296964461936681055145297047582067723248211608789802334758428260200329451108534127884133515072278210869048717501198350061609838355546115595251836505422699956620239187303636633505831883478734281778298828383364699042890753850584788767710083827952699888996190511594709771889107139715716170611784779039176166552951480059737408996882616916718941474143407200533370051248635119526542180941699781854071745491831239122482752847118408847742718690370589120935093995844683404489063117204967369094167167794093085214578915992314621679897513344938088677183343954927103277030508661704479487241939946809385569506276233827919940540657047915608117255099558145177888720301168538754541989024941911277819633030539024218741944047795469468702674065835015056350011763389206332166748045648930082853693499182787062466837382034197523782186951478037827556208355776876916282410609356184814223662617809618661978682517308975572635319511510146705442936929368818797989684771007680281675368651086859607588906186332791329941546958628146503529577617700939266121844762838868881499446050233559661393092046370164845312777460268879798271139037782544411306381749668040820069522198394119929995353738163466397943702638077015549511949153914075978907911542984185757606727964965923980349547487236065903947701898437986106622975174863653798634910397712910165053363264780919666861479051557201761321618886157828166107464952689192537381553620752402549110209700205100206430142956103734786036273640357580644403744164019271270135112127466060324076201384165347712261661166358655708332786769829551635022187348857342621091361917538754256945433053561559406219995339383052463200023499031769178207355252008064438387758868156082850488970246389630243960989598714068926310890228744196093967164147003044577970551279122490957654636388586536920077799196918778771260460879958363595625353842595320672304162481232762208112251544403539820168280486825640683176078104349175948140733101140468412668118659749510159324510088576282802772308985500426448002941541331688796992810062377296830209379618816774953454047338138900048213640261694724552273427254020712593594672249171504697039378846471895909684024685054732541323921414294520107360795895516667555801911533532141753504970790268074657769521673996925024796352471610448620641203642460238147101536143204286300478487473095575252999495215296995625767277818692553029855056937560612627059320057246913075025995943141394465632390231889275540580342470870369616894283398495950499863271459969558137819606198909522488395427393717548549431067322390093074103507442872576690775003137461391673259657025888577845599433730908831095660296112647487777644994648612755331398387565014793608210348173427293591665315454734487401135004469586602763826255935561222720566202951726890549848587074417175493292330482954129686831196157453787554271335425884100361122770381727558303291841730595205121299845164709835379229298623687727219927710824142495373606586180778594728227037667988620670037878331365864805616191052922815663303972980976692642448986100355396799773750935678395599415136622481585471677780901846021024301698513846136922567928490962059714787576591017607136253314464180991732822136436504467271506366392218985770641902739568045889059871346492423669893213101422207361759366348278464907122987586209267695653449200148888717569436809520077841039226979788089662408561671107652908478443004630630703395375574823784083651378736155054345423312323021062029006906566887674934374651228798621996435733619864811224337456365239118387311012742176494780618364344058465859958942624479045822500874667522477583183037994867316807948746095827569021410838132935747893905119918792582365238472431590359531964259696368053945811916904109653893577700880509614505679979019054745156582539108133884053194570924913625034296171910250284394987914285328139901375847088506425450988048954389382838807479954168574781431720936227742238068809568505353030243174814697386811625667687805120980210115126953124752500316047956408217274074864255563035095420858708080953152233450905240890452547824143404046961313559987575023845243667071319117210698525410612312822364068532179495571636929541915796611083011330852329624467488458183288793848627751867465152599848317983398305164114738475280403974618591821846727072346051638152740040368395400432503417486348704094896383485679084622783283029762856422691086259183615431102408692402450759820663725529775646584913439901180696404904617133295829046986312835629195888105924467781600288059954647024962367725765227333486083233115044063014235989667814131773719046216546140464563974254189134177754573885030506821526504511901070494644884380422980884531619961495833163366263293464802285086452881332503132576719683834608918910518462985205061748869004375972455381400425720558531638204864350772645704051004725188916389492068084266397303136511230268487068799898049025382959187998634036415329405899857264434924427120091733838780551199901224722515322034556475225907136693716105992688738186120394429556425759773029400235641883465173259591298883049169473096986736140852810966310668704275976217648361220346137987330972362191466981260320344448529889819011937740867938975209309605687593753929715757690300430644081441815082323681523458526513857929942398613704926628586239097725162175571141032703731250478932394407112192332193010365836233617680079253313563166969817837095690954256444359552075498656762400902037729696082718634078741302716826155524396000741407368335257683543430050625550599041197473261841756881912777761744132583435926577997389154594868891850945733365499641101019093451756543486381350105683571773861002464428312870226875937250101371904558893255780589315606152217037511970735010837648070240757801896817999853365166421723371978325615244698814684292099275639516038772671971499186529764307126473164153827699382857699797960450643231966904198684389917716342018609617472253185620223589035384830436617949704950061813234348383143026567599218062195763392203206532788869921866819392897856433488399380733174048671869670998736215782729067188363148237248779481626915358379923702168295444433005361906925065442333527802290739791093170059038056155265687699210362408548407416925173996663315276106461705759114139285661187942990009651144861510586654606373110434092806345221017221136022804974655617120684624866066658567005172020358585536816893191035201048110564579160171463017620255715434404902482437988389858414874755380605516227586990748149088764823935444682833964858509655453422035175378189016364926512282454299894963134419604626441662474541754235431579778567559945194079667892995079586985684029217232350977938205310817600257023139140577538992536489154910431012040419839439311573875859560205586855896335824419371145248882312098631737391407863376038205854291193634651471179356878793160887290963851693268327870204731367246723711570783386360046075538756100783005003467637118204118475269016416427576965565977984208714249610604857399381936222395831260811232338421197411630659054338071456339093250587713854294444150313722231636463093330870137805391316494030704955405581606607242694935277292219479299403242333412207349273080876668094315460955049359729477462837708296129872639729315639556317103037562492876261860610145141271069026715157122341279946928830253433166869845323197405887433239243647261446359821226540842677390907802477983372994073351821346867729095873429481606025176432467091312098474475732141405001077322998808954364739832412800003410739475433951829553405488224897644961233131918079726254304274865641577701534774940251278273628367440970846147140981060865171766191540784705147173859497970375592231059431171161235004041606424966888663549794697738253396923584614888180554267481069747969777998129773129246166573016032751295828050323005103556229822524762377256194040811573149042164177417089872479483361401663325661573353035956928410723935738939155991941765449267486200462713294455556602355171672140001834276492294820698767235746695011156477886358608739051135520110940396282543538985341509263375815517478835796891651712650484483906533644747476676396498258985588230695339746308263360453244964879814372932378797562736317183453616816320771294973174446617465484553665961466824726052699905536525748842721222180735969672164477229750484030101777730091562342926616113327268619863135687456452107451003198594883164406072923240637172516136690986763639683418136732121091288961838034588262177598227166723796783052584054338838000467123687060508531657408888854106224735702356967659671775722297082543385539970270054397428746574787473016610810715686849042897880030331602268676393092881417138262129626714462636125539476054054401865638975188909310255053676916253020933718277423015489889897946668145100647752925547908764351384367088766491671641819259143342446535068496712021592113229479829628048776760359509976276633146273491642059138052440861936294424165593079352662871790673013694038619595777806725481043920023847448108208856171392592393248606063622069655110954075392919643510256724756394096949563393022816634680520955964350472979288990639849275493889267303133054442143123908735484110142918465921986441973304838412504251752742764811544617502316632239067974558646423706795554380202020845771343139478538525331811883758675120396621675244907467348476239450603133454758566584715830545443556554896178954895805157553575941294246378484663271072060458969843436471266691799903997894735995920423455041512054407289864668025110178086365240142158387040759104640555502753566021081488388522629300451361323015226315357206772842410016053235975141086036394708428221477439636365691338750956027093683015982775455841677657952265849538992202738470985390096735767221403818408185858587446666752504455659251543864978711243972894747140547317034171526828555929339184724707369806592592153279035575927947235102985465967837827278045166168711231850341745895523406603150072766946145306197529371474422847485241027243049735508031461938111110942899558210797318703974410859216948960951703262424513037259608812590664959019938675225982783789977411829999514976544487458319151635890448163509725841293109363283230922683495789708870123022715730937864780681027517822089304783085621455061186400790509263325811074264559815718961210230262553658558331709571512617315000761413445749440640519277923880877258015466030324563138978202437152493155890713155989317074534411425971082831621171120332680880812357754404258403520391934188562372986447698767024306974140240371738478057359747913826325983533774889291310505094497534416462276275501339431206794838387324772310371885163835033733118245999041602562438252695303302594213061160731669511913816458194802517834488137946373709047712090237402575919213355013520598647570938684624733062732425511034097499187923968608373137898441996308828027243290524329582516895296682947766689011819333808852515966387295584734227630641361005556406672239625436770253029730066148445751000433617120929889812391894479679879250296745514911141152941799651187075535489964307166140214709741102232621407667848818532875933541640645330652494698113082328115547734186796527605352925143667268390717934991017384683803733628690129603287660894612626348255212640025466122198841708323863550158173677067899532791884920686921870852104790490901007380735659637298090796219278046532133690638650077487042027431563122519618538406863607652075904449914481379884741598004897450166404270883210676145281885707160141179596496573331416915190528354832491848947791960157444802632657896674650723622445584973703162081520635386130706698453900175512101853234445547112940363479422960908445468458835366947362470627053899396443381273445725930015644257136895635425218543638833498400406573131995229878470568429147742924680812220864776358916691471689304580559683523116866961249849564762762772781934163211435597086656056142218032007689457166991325193348770540427278667075848646604920546682479187750240407444895590260771245697985220942396674331475335016038377637644371195393516064802686707305271122358333405793208363122867996268707325150512161022554029825729843795020774837842618369943740335330295676312935736938396007369491205270003090530699822252308666584600549566561236601723211475521224998155150594092950996735400164881416111552720011818129318773253302691633024341370094913780863241463161194676436370249533949857939582339603767131630993734689351573982660445642020641059824634128350276746964657311679158518453313938770373180564249524910507209590022483807492652077053866889194279855908343485867339963230270711075121301371317291526387082353938886917539265100679683857669571178021332538689381299047417547343175383364248497748911827181942843387920515991131831490887489391347392013126736864341068799375844212021111723666907806272834897824173393972636363348081297950097009696047761963973168684006739553697044254368567768567431110344476260042363517222817109492928916841700149386412414545557250282743061422349277523985264419050025374767837187717001616789726496979874526481312873136626013345912078776873297548075587890310427163768657518993588001655264590482310564739603689995797452323229254254790870331558884308528944809311742391297177664264319568418379291014752040198923348723032703391116893478839085426292923970120966919598848623180859357263287211425303347782575947387405686156303236663865548446290982947894812659447709071185863085732895374247979937622635041934700614622202966292159270324390680383923234754646131393133260163687082867818580123249318490638791241949042463102210467908979858414286107403892362670963590375777210381511163719056968066495225181720370075534767908608984672333561672335307962470946629798826631119378610007974098068039609650467517057381760218774423594384791388852926608152120073447581832652999004882989690030596721211040812523480830045428327246433364162009159874852351346203528502273781727466417962069942473402991446756801264445967455959465534339940210928993753183508768268180510952987214159903857477374401508262839126734600912366157309614297770145105503687592378189051796735398238251345832723342817836696721335386426954081764407048024376636662796014778541928144583941391144064906493250352422793411323589137314838641862657027810683429509824563083503926076816670915752765990845717888465030797309484000335313008155764130460093323216601656317670808775837157613680394014327631248680129196284972760388785321292559800015547747707543031678108638323008928461471314405801757004952159337994226597177788850992531081498067323740775673287489707667282221051479563733334957006837835064130841493529109624979531792163743667044981698568318374718333924467670182249508780612477513530832004010802192916040758441591038903684060291283172796043600947789803525876416536581594234716609245303335445963845158519633603895797770377211814503531953763465897901554868485424141405623027187548509408920808104324319302106154406034933256680027357264709317504376140826025477835872504135397831163024720433321653931769595514221873571911346011280488304163252263249725093218211335086265663432049277813526385177720476677442596370105096421853700551270791985248003589864804403413281033067795788692653951562212613952217009006572945439105313138437468515879884052737846105743659503728428435487005111573667537008492767834058735103679536161394592974178424460568646471237308459131363803674181776724709166524530415987888544375324770984344767771213714534855533499043125577956266835498765512763216549373033160126970415272771561555526915266796519970246802865830471173420544172512089844747501383475713623850054270504305853930875834721471648591205858384422186333532091794482054488249307434759145844573421740082390012766828356476826958358460265964590452839442530989103540333530276350307497370350964110277837149631994630119867171631723541989408346156725077412111370527604154970362168275423401487670842493217138204752251490348275074833943990771408457780023018948275753678517314757046418820037013349538065062231285396950745041137069060194664273996980355543138831998957984526534729707475172564646259750505497619372660881160536630075758575589018955810444658652157956831596732904205465522269409912193119592971886306140972578629468676414895504185887971841952646227750454879394078005345711098946450348359781937638874265856596278327273737160083904620127064068684990987729160536853559378774461179287263969263721941075910490501169738261805460630213543051803769993378796090411267213905284948928704530798582048906872937575347181163797843078121268326615203777803010034127102290667496012037898398316293230254859657411911345226384869857920905990959161867278896950575179267512946426405424275949130074314922352330885983856197468553124525611503011760206076977214509363773601228270287160230774244603025651287397480208416532358428168438183596385572826831210449906768381828060011634019112255947594529198083978921376412210584078200854638475063150827647089701080798482991106689897320532150336000539890201366754496390318825960927036149373999064701069282400948104479807575547404164051826426185954422786874749892641740576896493973113439326547246010129193147483815365455654677509364075396775828137864050057794759931121837275072125145245685671973987037280809987602524358062338336224532505064108430428660689868224072834030606947730481075824668192456294619482544655577817270059188007532384954010046601555384233140225286311551502131912227798375081606022529179926328413836741808795260630734691931617937182982419488635838352887954328047274507863950220758232669928190304357998914872563173459577139871718401281560404497685128146436164308914109867351861148908973441881376807788343735354636596295901219277807510755563360357092070585708175886211654027736039396183208503266176948751069397495885960192873874286642840659740678204510338367784605730085625210736745199806898590971907632024265582624839331466534536008668783107177836398289782138687481201112429173856574579430747405519912833182297976090815085861168144827372236084620910847738537306036902894673167278170031671789877293940001548135430871462285391011665592294634455182322850836287332974065948328715144723020844298919748180570392153770233152777571631724982438123583772742025409078815790416023608451064126513601245327395646791502668264347540954243642032356553109052793370272452395705102204079376258191299673039343780541112955220262785213446855196217863690820409595171847300378770062414280299367345250457756787872636821003179834639015258797659931032371274538719289265242403724791896703253296691944988548002470787096937303458594683828188482588312785327355335899107999624036930550787418998366696973762592050367435002907243135407254648257404419078976902605644203415017685892173850555845092334311045254810778930823935250796973193491499493445551990129719862162135926999399163441838966362897073323001177731139124128757700114217685850712085939713314405992711811590307969967434744514010980045703656234342290102423444263563179058135417085472029650293190048743478101492248632632917632054477314778957559042510315509375328118237567149095760977529408011689233371698239933618473146960407675100009519878268671289807441025540090695763184673236262227610086183804815250810080119629010339298614169839647191585018020468171031160531376209046616690276882165056494587415889327119075840825109030239129174696061042091082229503160872126878317852440639858522763115676549772326110376784538469474264018582218692906562502748967883376637941112542142413658091034525438786788798280149526106299393684956931787148988889589456067521248911673002471096485071025264689337158661188502588259899352946634357656591939889764688170657942163868850903684048001025943886940553422962708010207910068766676204224570346634767348666695148447843615351184878924392760442389222732300173316443742297232542858075605806080698092196141067585962455821858689269090043342713714516776784242440941754638532433608894582106820744631807809472886179396794844152384613677323870369132565322611844071440307024524865379854371808315760650500637482522044234856821832496669669557758351055119803048696124022261968143789875900061891494410115395478786320087474609695534848015461467843337497122868616504655163056794625275300192749906079806317377793918361300550631341261691802659258747654508056251271562436092140513796849662672691115669530352756441644554206590546398340570226541620593118039029747968842449983986926537042413015002643833011618189873708435640553161700503236435265095811486295703208746890276883525835545253668524883555469441667142514900693218750228902529649730862063790853104855968158660245487783366059786205486210455981099760368743565231352262504887512839139072865344281670743109356147808044686834112123082166211866214755147447347096087245115320095069821506059589546868073565664728433603840426491686717259373570549726772485515567675590481280716238304308147015890872982963046965990237817083364278874738990030304161209378525025892417932073287078274971729266846087550541620258649389724237825787790793003947525134058623119104039848379064550416271551444045262052340106009467464227397432854022187987550467696499028091871699082887018396670467300512455694449004853719501562328454158908631698253901104687257355187512993165251120756666042839814244952519620674253839399354678816884741591294702569624666264100857516981330638501137522818189766929776440735627338379343104978470335898717247550896026414058017803107139742331207355597457876423214956696190815814972585384264829573907035282443871895683002553241836013541708395706024395317360366938541147828827974470682988414245264261060881455399238975739615372647612162933064446697334430264260771731106015974262053324922474262439933631248532157944421112049101572955515860988261752430891980604799151210288582880542958654559762766436759347824330338581822185962630692222070358024413546055377171817887906815263335349988377829339317311179023577609939130388470003866495033433644393767079210503936977505407090139846766077308523731632669600335485695137076642515077761375640819539018399754010909743833887936694084656101726086945972549394522805154302439749641226953443202815035091205206839418644452726040783856219478305092554598901778747004386548529197781340896656048947936628398582602757171186037894223219988546203259545322149939361255461313001766359618622514972772715399152847602693089735605960247845502253204577953925696296040057006988603618664849733061599211664136376815436588361850213521284241391197615132405224057138520215670330440792287334391969811202430147858587915915897573792612337032515118646571040132822958305832028751499984193892217554491795015680291633947948335503050640041955238151462094352537446741532528485175151175573446930338615071943132895936167703220683122284913710241252592586624749407572791203282360098385433038583555128806642397317476272483893588604515576913564881182791470202130048242493675827335641392410638324672902754917022499241511400447438143294497552813674216982361934817182765916749539911493551606401272343111954965741738960704030231887821107445793649217908546955128507388515061978194885079135713362776672962886700935427177079027445945508979168032490809579688136799844637047588822470059727037264725319060529757882476781088767345739000010058842675675210010248244754775187586096185384978908226017462049611887006884357980899232365013246166019462802561415993658270161631615291412547763139121105166045796294511763425251719210625448025998099490271724508052948460934121349166235119555202464362007554595037490451569830723283159152823281701692856536862563141618374899174007634816915033312778541952133125209650500031768048339872286839011401970110601524944552643272262386409658014375815965671738809643666815202113137254882663931274472104206110459408341293989769748212084265705887188824745263809425315252790327923455417581859446260682685273842631996857581974099114612048209742818198052958459788414353857184152561941213768974816680405870393316466157886163915601173968181602054352886627954669002992856589386714981757523093924844193783643977199248083847602656476844692741392632705810823092879607637467546103108974714416729045351949196587023294888991800468813115808641378297924259853221957310710351076769591707957016966135485529579873111005799308110855195777395120522631143960214536418916199474696622782187165962339772698431030330794203739547050354416938108208322784641799929775155068891497559589779304754736837379549268443843945153797353093187096762083423979286868830110513374838027538890788731777841822358252432089841038282773872954020412260902503715239491449684867381928200013863434075433207719652497574123123442763320468114586872833731021923637223414750888254260713251154320474288418276248128909698486080653244515566248340458163929737807737269680045613352974796886576074535840422242636602817098151839264397613959162235878427684833477924661281087070962392065586068613659047382542116990982472942927723092739082959249927569240755469127826533881680385256439098306228293973409754926946653509433097390942288607990450521679901579647021008471247152257557186781532060755698264909144717549163969329419104739863162577253001266953950416768969112208874807401316656811132728216717518052082958788323185426128798180392420261955510277764809270325203662695243530220045298869262217321334529339179144295535069555489574062682222700321697394594168709656992008096190815543698195158822529309703893207929337185383605093142899945476443957212021182514244694350149652819062466710913958070716130514701799406568035338227841736806486819966222024642235980988290225895657709381296818483143781460855977539031603139200306658359936567213770753307959917577956047492209848762579055544167417877790924926343527436749775339252148365618631136128382446844172795624866625809863502334461519376950115955552183812486993995344991903599792663793381472763279625962398643289473743775036493186105105406874349047663357974089616456586200390525591957449973168921895992693975786811003811963462107518422813393679109763689266377925867949293020098807432072853169444089331363919537785601411389486107407218684123833142656433962764505214588007156767011281056296609763245247492883435725709074523161954920101763142929979943325215584605574542803812228587856187080720978014978204593367503207433116350974869097879115654059639994125578243964876737825114842765843701340009641783515374038932967361956928534431526359354126732504306229155232560747250804638708602254329689726118323061518464315186043444621888572831950017729240879504045565567814083482133819227047440399558774464523115985374172466654741719186506771548006318304489339213296633532436977185657307926374244100146398216577167090895881659536144673601979421297700506265944986766980089174520299626377833007978303908864966781393959577011363305039277660957917499993248832128503498307993776487190631494894929770651026590209317766537303082710720720083233236828493981492500452861604971444276038002892621826539228207042264903767720328183669764031030046994690609725011943528399171972008137125120675170329416516859992603429121285084911101868975455808611621586522967973208429213534650072841900891504473207255016728992733349801954781466471608367957453373463196320124122830065411667109299359324692200928689270337544069916436655808811210849594337251694443166675987353676761463429936631866375888003266879686375122218278327272379979968515997111047685301475339400390404614579559782414583445662995686018492785139440383821697854911104407246417447610533950320811806044995694036110324104512243708525776122491581605506779682451930482797533881483594669758376557961798693502119377796319737121065375186576296208847246903916774757898612725824433438077015698428284673670969690495671763061014697998048753280444204263476360567557680803296856598683827328104853055609130362208422396948263558489198562281627165950309541389983653844803130266248804035714645978596793548841788483125359969861398528571327760772306362450780288385317648057971213272683271385067934300481250462695250907761642704705128382424944361778187807637309857134212378310000070656608800218860981087537974625071364000724231052496598283170878926038818014793642639628653551272805600545355832730394006269013081901940591833270484168641338430658523713178461435454413199065179502251668019971855747354566189341580250174860940713217332112657382860937610321463056275750558514891859742934862367832312387964462957624359022332611661565173709766175817566457157216366289110893562775291323819275177954574859929931844120844219211200180252878084390892112175272973989108511229248157118943872712967666110747050209005819917733338819284349902418565749187705094857087890376769517496287857220239249414938517327027476570980254543086997924845437933467067987976818972280995875673763210562450114864294297074028676309613773825672422368388551413067934059277058758006045227620959660730804986844783147855557264296605711025875650488081205833576020471030325559395760532912906211830452980409007770418804682910526607212273877313501461220932738468568182245195448449188495990484089693110292333753945978323767860095449876443750414289002524808661910680016416837612025956054842378471035581388232669623838521190081517662460881644192426655408200776949318974214970960255789336823967275003553815131019487368356716343461856449600924579016114846779195007089184779341614141300605792846832372477854229306061022102251657376248711052204848310750559553483769336342702207797115482499898578587061469700846521711216936600018850814250025036184748848546651210965974774590711851712467877160999136018051635205293422883482335321637479404763169598397424629127191145693398621480901525375488713650548414490161552824513217813888104578898681528730364426213922628391410795842833509610312462009145785998819049094011944982159109182220247991096135912863267927174732089857165607336730299899961269938139223633499811950703723633404440374384780215532021359956242209791837971849396339776430219895907138450886593529299628255474598855512826183269198136527938407296403436029056846417884554242445975829655351692927476831857993493582766701824973447889694754098478241385361505488684269126226455562740090514568609830193114786380300079916323408447233705358228876144336042584336417319444453086622754305826138348889018842200676688435873233728872594706693936468415641853954914565826260529103474759846272716049711416079627407225272245632077446650637472006176364559949628566002925230366826090277983820440230138275604085971556749624173755436856781549592920595912588001911175786952078674621762297410201689663922290950977058365549555474021907766057461634577428913226369408213297676848230361126607957445027179557031140146279007356339829542614718000080616829310849660827700114692631070510963408224825828683718896858891560261153354646942519584644062926126469031145732196279856113620068612321389103402487129157588906958260166707456911138227287297562596173574539813994677770934377881773123963004243697018432944651693606554907094408330596221336578147987461911568926114778000360261396731729440139042761679200816467567946937522084291009357254279565097969746699164975113407258651376406624520862093776013206552324685917739768119729104633014311418840774613026090450531305199770881387658345475904914442141033981029348200709567657111800072534428799189781862344480251530960667994635717838974869229554440757417104097278227376874524044176679850820286618466213827332459604434361950303551057714657740326399322723927115844954812485815809341345595940159682963937190501023598949496673646190250874471113462297752394666582457399543155708271241776299285279290404518223243137361395058623459891387360608349464909083327360224043492806974054173237780125144353040446832731640118933316533553445553828960142644453089452293973549155350675434424147981663665802427653946885558136722184875247321095549383813439020051655560034305046325367692676530386505141576327200988048380786371940771122275230390974991568984356084584930991294161892800072188591725822653403569293423001449668157824599469196595371005347749521736706338923472217840690754921053505343330161232639602186670743602111862637848097881154142284854321273122098455367720143967601833028467994212066412093179457284610780277613846504228098531121526385496257876650891148232791280313366605543486679428887285136248406113585593730365971084957541646679517980755140697824556313558497647547476228889323735136232077641925234111736914586322487382033251618724953587097985348679081633595573522642801220394063419323713952248305796111105014330635944182001054609506493358315353520409794063813810856973737028566692893014509301487040860005953693936045568617117659881153053520731731321001984597863158399046079569646554114812915064548644151604880323845717976596027138306157629957337367912678343099233629287524228793405883334329287848181688323580904497388806981646668911473366610950066018691682325795623906209826106776507096827731266467719122578816806197801140229915169129293311174974734834350827807581012168910257029185595266556848021906091379353659188813098417187016971090997350635901193956883919007697548181054582007611209604408181872335500117975785366888757221990130709087970862161788701538262517284029000417418650591562008006474717677061435731471160731993616286814779755582426031580581002033965565354969015962541528659365863876650254828353151210749245935143036259822966906645902562302812959916992446502874198812903471782335308481440851067298526118769279331321922100888439177855916542519348520309687132167965212656892914778053720581956394117015100039787473478303230909160552764760273719473347858632024583289502720734915765237152591736775387226785495863031169943991578732263946784776865277726690110296982643061701346802067899435115418607235087582191665735188164868604400820892184336492090255267275668577880492506267333410553912140596709872536256600431634084451357311450069900879641816316195202803236999109413572236757403883542522697702176543018646361277685485322248737337484951814760346332792357092122023291492034423489373851952173137667773427905110072634228337936532140465496813150357453872043502501849373468999333608446336793687415881158913309555120265267752265700256769382860520468993253342209190488348290365107293206395754773219772701079943278873542292865812852561650396298714424296395246098306180142616815453785049039927064951665311679053044321529842056496699101208815169400917836311624552449915462695780358951667498678467710220249959449803254675764690413176335229251385164231691419089346453157665018911628522308184697115598491005300350525586798812523534830629945541086696201697886327893092040303647684356333553984229160084068410534829165706233089120951199861547179794681400085849164636918298307739313971711243192726627186315009902870314120344691374145623637819329115075918727195434131546570495674941440676774450829719580781163922243931855936837388891453184879604085539740510399300010192966713809622009045146937611804384735602179455309463247805302513131328515674679065484816912295718819839202032167702715662797035867343625143178535533110821903351576484376531019932026732522549341524869684421344415328033756701704702908276300152160261711376208370428620624259841694986618773442672316045330527977704166820980930636424332072650725908537292325899365233245605786415694409320510871037406665607760792484402432185591115847636078423671075524420902893103723318571008172664790118274841679123469000856392704267496042729006684089639098554195100344721206655996462819584142471897918133867880850552053556870411431753536671458423398685476633697762186625436039359207732543387645020713912180021176848183620802381883562305265668213506882591338831973546028966659457803907683601212811053090113996136432668935645536623757637673379706475615909179605947184903675287133475477737491481514033780295095599873288496208156197997180892346825336985153621658789658586811225824407634672874272590636283937134374561604461773170903510414483395439566621619613037970434614836594027294700723491209855576620861048741849601317310365049123064097409817473415722736695888105329692918321553834722576748269764291796103147405437871424521776772312799981884120296660143125413369799584147811089456755686253539968029932711549798661241787351154110813801587622950457745249393082473387761155609354003198535700579346361991213893757982949177812616682349965398625677568868914706452264377007310046178622184592983894109542088158964690998034481432911785747504557878553173641496362512185230784197265281538880928135063219246313285760380906121877890837436319026070600416734667155768653781353955681632054279829003156329708219576772753598548079379928270673671502285387028365414061128284462184036734652321961403387532292838632548273637215921293252045429442005902846805195660852014942257149289945920429866474839818290328681342840885838774999069573848494906448832155869814509884689713371254619182070811123417589393809599068409741931874619566680564586487588469671694618389564405902755570055191918328564373580011477864276722195552183666716702969072210459924659423650309565818551039734335015716310691408356640640658416055510598279993975644166511981518238571586901179390032916678270049823085981547829697885483001115296726797231854986155820484390274665707080576010197325408190064478091195872597547916746235369838710176996750922665558086266167999460043002236083343588613740046615730279074628470511695030318371854583598453320268666744542238148497802015981992422299031565495624124477139726010592553046628425244740979374732736190901284985248444929611295340918028543602676869770763336186333033629617981532640178189282116542485960876237875523724323416903649866084640395529846344454422686849652316756125515863110764733868961824261192887723909833980512287417453938539467901402471530160855148785484010029703613980496007573819437628477122952872887473091442326180944290947236564433770118893223756146969641031209596630609540858996077316286844854315396760562585211781022843822362148700561002284735930030450496016171197952468572023235263227253928909529111364792978272848570962680914649177314770539810967959372359063473483937318580867584863577069275090890497016449641482139793002550887511724180726115109766497194800873811201492195303673848714277496156546198105770131034023596658791750125979918079519497368088608536292880825477567306357244181209288674489254234338973424837318866937393842777403205454793977104216393088245716869559688580951215623218602521724350993988725249392145607328243353848354054229786963275134644002638412466092032486087594863812978545052773868683636815862550048059202857293288327281166949348165945068371823851454003361147549098752776382725100141051304344648840870848797410596950422544363994631131070962352137060409803644992406108922428606549681656866487057044399056594078318921937939374100371277024806825837753831085883964360242937206791193086742917236544670156023634276370107184447747145160927691021618916869039041407336926590914171137682813414985484455368146674416080639621009646392979908474150283695931281498310083787818862856779962710040237149150373970583346627381432789996349613149532783960890678427699987097313623544566326935696573547564191685049066008253213418182187025701729482349163050717995564429809119883028446720461254385668943500507242612330359204084780486609647751860530737135948380027005880653783395555105117386047667995097903890858588988272223662860754187655306161778636212737293130708202871314228163397186311322083115958701739710755672562940826973037987708934882898920573743221870210966697904152638529300028208060113756011851437094457154301312270824280150976007438311153030101032733145942658738601473378693447643706379300193657803679503949266587067717570945390464776629512083536581832433813308060432307861449941003609091669892284329036672527782927168478172411133764877342037798485582584141121307836002282153920215079029262340769326653977913647099311129568168000245146340988323884984553624958428670555574599498378013424574864355992992354798690708792787191408131420082837136515312634833613795942450437816528737946145701944832874271531481786093961085307368067313960293164070542908494971591979741066505035224481249272201099924144454358622115478396886182717642538395198076045947990248162634495564241948497933876108584726775433828813107352194958811627330708807064655412534329951132850911758832454066531634648594896662249135856021480151011780843577057529464321487828042260897495426015912602007229967317647550871006521661042327367015495093214371845498527047947345460171372704884946446248733381955224023343231701497099903784961801900504361023985933722449499320465259247259633830946186751783656935822971914569392415352252543463658953512710459256308484789144578723611056176749386426156271578851335881434062032215936527307122153522066093841100064736073151727689617572994034810343175612799390639790197655710030009173973237915485197904590383315108941489849583791636805770810697800936815762113340763630970872921131293443500581274287813286873166769856970077143178393190611620774701308790309082829844246520262498047067274599709380203011664360304604016909155822784420735836450496437471447677252384656856256175196951232639554829756282491686377605061852731679114797663912237909458246673775315948967655075256519549674177308680706894292097494613363275000950253674367599371319813005433350464763420329322905136059991956672016766163956917592408372121496998517868328748905492808015448596597744192862724286468032723992933500495175099398991079134293090650932616270706291988859860579257668528363480226654957666768989920163538032472955774405490799306431036061803090128093027779938227379383300468221211227262015644079404847746908778960966677694400245959936589818105232865293879207802478118484704925205910734722644751150697392823962364395041361462376425554696450864835318762280099961134451807260698235929922027936474704556166862144333212731699201552247369857760412259887330355852267714686542187268021641738082105205037667058419491588833885051363768321628517569247582765430366747734790073905248589821711047334339465685606521053376458301986444363725520842370732443327623659209554998944113221752204385230114347349337448933477060114434198531156273994184621813957267291362912470319239814066501902562072512550367142412809326473263426096279068177916753219485987763146723727333673790412062661158093931956574813946974979951745694740582315850178591304201376277959996252019817420132918684705553080458303160368517463963721458545605973040221569570091776257457100181377130122437742082621368978532521348003710277175727185743023095406286726942744791323204077630022637489052683415517447527300135510300131900216742454558853630213778204035507499026208544240005948116455566062720126520474734347620451848470492256632998605471698003700547296618943976805539446405654234915470378046524605209679965710427940990030337145628864739685515735344737228751239913003835149531259698082477045458877778866705025877386743863154565564636526739318873027953443667155844313152099250071411324392348695980207346913932535783136779571898846813510233307508027718335639160172551784996444134935783488010619707432722654477396196984959668745992449454694766670741999222609748050770990329279938553347395675445029079330145791596775083652371661191649996036300859848206337996794393939838237263443716841638047656044995458842910312750765012549116024897041793859000324230865809096244959841880988281196828843818822437338863673956679011484901963756686615826871301898283251331016134587558593280690143541445677611206459577519010765621425062391617535831410339792775195473541400458408301337794751453037868157935805328465017663273222503156815929013187069428723617405069488090566932082580165462732655699967455083701117184292969401355160170632629310834849204749003956476941625348272409972652935292025374349003414156715480431758632321922729107242050626387975988560885328984300219918591611133714696901126260035133214166193723450043983172345052942448531735500938818842081892840581712777315503025033111998564881100911702223367060079071828659533322497730954481427021908188079213170328592009827795025074411326520055916081640263218801638831462926124164280017719033676602712701534741800282733319322938492353703887376709544635346804603145502974731052771440343303433937627254497434679659810963369758458846555164500957376711010333234473503043922536330331947464537245688455455474812487657808709656186995127798730753668902681973123304427195526336107998841638751467877455731176175889246856869715804433906223391102456058124807610997575708429147197837552682191399884910366509850991510491047731384663646952103485455866795335413884318788614272403099955493183588514366252597123039837334497339262698803871784611802275598118529829043635166758575352892332705530988523036803056338901500531090361907601414726934995934068720314904884137577497883207127512872704482563464561717238959851593645942147438849514752858990721937755293457584629081987452537064397452904470538213556645013244285863863729560756131944657861437066836649869331042818350509467801040601480146764070946784878034688480859734296788955128465612185575946369134884333415625175436860092787485256548078850210086447185033855542740291401002624346551936900518892863796899541009552093697841152928162409069914238269455521802164192781321807255975521471369728452082068158233924075215325744250289030994901359506129936971933883930707322589905860278802924115493090850120295404655251290801396263233814025980943166940661459531881621373213553032881755138769156401853330346942975798769404800553442767490840567863881289588426271303699575924093221277015063347728185765091257513435848849057231094971073668694835625569257292422746518542271747696339227091328365437944678585581154174273768144235823034327545549791193989529041397114468597623883629698584373551583238108992949239992619687392029526799017681802686408914169543442026470467752814519403924603828393211021931635931467910472884007643198371993134359942142861912085630776770238999026244810654959569915819431233814263896460523503580830076253832064640738863816777795324401856334235994457134421735962912581674487775628565147832403756724080679279400887980774418902983298978084374579711019581027808235879203178436560171532447252052002963935224694361741540115880636961407836571222705656192987443810868594176435102786392470138622149016727579427727624722547187722512365822099356302351895956026855061514138995631989145785512638610313834242903365236184577070627818264811251764234143014676835594409219342044364665378763405439954701867648912745121881256533792536077593668233396467883344474876741516838124212558091018639915488173482474724809501529845151869333514690505184270987489256353195620952144148243682098581622323956652082975459515362207859240483269998699204911712921481857243252232128400760212466371559738002931282134439591528525834075288426737768311811002765932271520632719478742988894203637630045686912867042550695413785404725855445526335802900674829512865958267603229599719513976255921857696761426300453470334039344050927789016212374181712554120475391577446869511802101276555568162098450791281044245387035793145801594800374177090570048119819381908076815992903452446485288992716925552107754337732246463029029316987829681288681617384203085860316107891711419565241578316495876650741145144842892866135853233798935450252175366679801444028369595392511700182986026862583818023482370734320808544592475005768267543195471522556648228732705518322800275374959415892904756086444819639796446469872254008048335406601681449902146524451684254943594560380866156449726372775278175486329644642941451218018193214368760929984741115844734750667180650928187067310724454564591849767789690958753151245367470836235878982911718950967003373662413156169776790908238924316720521058662250983386513794687059749295908337283560656671397239550543053274423630181152820483940894510975243551013913936459776743171461598388642593423872313962130127796311111030192588150138629574348088786530619808294364443330879993554124354041836031605731044633247515081871742913258015514245370577314726069408201388323713869079977127799091724608459452098311133116803693019781743320693112856555898779081926068072466952414372359881472541826440263929225138967434095364965922107240598036160927275691636502893067839111683201284027576000422562995871579911510035466747005504325234133951258651121582637346610617228810838536194206747884263280581600314416621880223569415667067237290695977152777963313052929976909634564749254400145669122630869033651445977384927057979251220409116499932168010767095234387888321515700886461408218926331637702207817999457914996853532698264560182861835802158754227492974388750638754095350735271592233121976465976201681509859638807766638958934794680664525269659336517369228076737731000520394634897574854636851377508582539972419602973610855046496771471329998525873571119213959386462345462025840100164545025934819427317563414050769086055382869666252370724592908607767585667590396394175468606427934631315059413845684767107985030384490055065405719628829343533762384709729733130258388020635406959704602091491195218753134764186385176723374783684259142348078553884582700907013652893839423984774643189211369786194622613615415570562679259840848556844673915525526281046239745887073597184447708555951533688800056587371537551457477728690395496751004865198139948433782409716867105707849308751889443096786901797422109578606391766811615386514951741601391211271230863225555894193640316358316216978134717844833752118697575998940370148810378962316467182242331345465144654754172655856413050196329156587777750107837718499338925316024777688539015122005180140025244954581461470006382297008639586174011545037895011138388327301538343704107999727983897792813301642168549666835167598976943204347970944920522930546359096854016668638047438342630245298187390285276324536980814447285270681708137629483443909730648690872815979740206375258560170241875543733992028318954680340301150303856794424992188146726582258414865942167309923908366239738105233976278714702591906141659463502073320091070646249943635922036831318261763070528948175742509702459192618855501610261957797271182377240307293088724448415951632478707184903941818762120847718228451555809200795064827417003925186882842929801464913703716419351727610629638341301481147676010351216016077631854443433461283230295248972563681456481567649716278968505970779829224574029370398187481541601449620072295945169964185284433715125130475778708202147275793323316932455730234549842955091106074714938833081536838135696755513525772936512554615973599541613995246197907900014056042943203119805339920359848566681872086725159310684577387743833401626944892906667637669722907969837677899065009223560192147283942437986927988834820533414401295721947396208241943833305951687699548431678603789690463199239314278415957596842558161748354701545645005181381481502546978649369141481293325440456562493520700905198923973970814817009210125695645839489674157318301613096790685825439549414131955369324554348795410305073428457256504139717306754041995202085332573460905571931880973108160209529315808901868974173399988959558362438283706041890866043688781522540260822297056277292796198827450527097637361636747563135369366166913227291842491393716131232511082552963042386186230825406015631680850241143985972064568651358859286660368214917721270985423951766708949922725047285375603816147317666372142052534591724239932264069018373382098700493810233161664104522563403329269646142341893799296954654089956328820223967773268138606790750731029538518218799268771488452387089322181728421544384826521061222190586954415413813399756884923680389721295041323977663389461392060079883192345271715449068338263350015581665520698878460844775181264523053341126423776232651467793925981263699260309456915211125612013589464532529738443352660875102781463536614539125829758644168909208907510486505004782838875031246939040287203809361264954273691581423699330607550648896125825740787729646178544416857789227993042383142388538516364883873575413953977642568074056793609646419979893319132368170730865394312205860651836390888689089511484258078769280576511815200605227849033600690678508140374057751743836947723686038903189540587406140895027801512963159117123530386482822670360457277532071970367050206062291607252475355698598781926566864923988335702403994403893924453519171286153700933683845751751255922051717405250003694889725073789902610948047615650417742676347551720009662517501423781702327604403968104347879807456059546113449289724493827035651186148073748210307930559780851306975756165777125604568067993251409099354674322660815954140982634227770383374601583505683084874056944439532874747597801827202912943786092349017712315600670853956287522386521415258871557894287053354202942282650487606158601704258881931946502119604725175133089196756843687049012612602884895767027961939832729643277633833756146298459392383519295604623920919152059457149144070623774342955776419324927979941241112296900739619309665637473328090392063870336338918440005699297536697492982160293768121568069339934176981748069108457184648013626121020568050914144901680608890891999707079873413792059687125913238902724210814463379168578626028156614229515452975844544858681455877227116689828804467783348343290732541641695798592757311481859544956505162887641272440993450323468698617062171662106561650621116637270702446116835674187667432756868190142677498879878496168160077803688147676547811299797482244233657572535985492186296920220865389454843963370081756658762809576997541634921127828182933793788769397153987232881558075935091156906502762528357877864062514994044587601501364476362032123755782138734515966951536002951073530498687947697788099713369168008420615363414911607046080321148541842485111390335011240870873878660873933322137069804026467628362325563978502845618628053183023605091327717030864280858166590247613131490693550784616297458336456931903078942108849505901661182177345907551762359830648624311244063671989237342046818379392613127728977717486692926303019985195854634687796737591705419024304130546446968013854778642145951093212250058772642361299095487162823061714084694224151235240717167829305068960078994965841266528912089676570669140382273841786582121407805613095702140754088293749600313336714733657829053852249543419377346591297614159712826377234284351339336247016024796939901381447670631507862223712140452031767512346549262688457498156790088822891792017237788782544803466530620936266221025061194690371296903855248457514671238418486323392694326760688086928667713870200314076941649341568635297847210239579627338715006798419571296671825797844355993437592087666329286590652704833864539736876460423748392299927517573478052534955051589512207720603635903423881544445150704649009232542860667765183577849229769143259691093295918242828825352483020141146966615409837055576312395510409758805384886855818697654839356707142467100224379111413015670589624153239640059267350806522030392164663476234369068401620806774215482934270311737275913675807495070798552474579158112757290342356932336151613585911122141619727808826331294330320773825244097750723080960614711769176339722365055074203128444559719205234998112434416045202081768175869078514785095321230156411325710305514209273468511836920905976971231205948982178753096765003690100772078623017848059011501842682190383709071865847208624762730765561314713701605796620685586424949648069311812961025605808719395823643788625871739943090523445193609326440954015723153364846087163390134027164124984434491450903398193373712595047674922004247961569419934555597462627007252836375231882291035906293136719453021396010628081586211087858708682626072224091920866491267598918106460878168634053851466978914105016535389447045097940370429259722933215570476239013301062539638120497181206831965012338531150392004500954098270926734967001920772241088166212879746698326089231751548179527615727793521612611722772294028316900162965178552759551272074707535440256515601337222345221634912966492770890834198245107197633039254957002481581067728465267980678892494608378549746359102041493503011111348327259841431755964307095869397495013570896424052065414816080125485523253181992449474360211714410824601176639723367265407699827639406509380643617641489487110224149960279608916763404304315290692726322631466773832410205753806414862593468253279878123928137917018417628231563557340114652518324280236660479409774636574151174219967266780234425718070384609871942865539898712207281823647880590505704245808550781793822360997828647129350108542887889853533364956315361792608570708575584095117444997605800698344347714403697527193391227074253584056080740035525896806437252849708585608204060217120015748199067034954340837737609185993591570809689982090284914966769628316173832712079526686038262451417066717910001948591757483315810874677456209830446214572360839169799443148064965651571980932202162201320438420189791164352231450552221476055078197984522839810740567758170796911281795853773537113382695118378884901966233539493827929154796562993100045901599615258311406708920350206069713450017534986529523317597912602780529738252316028806238431507106188172484154513584992318529196264544972836433611554037872324362413896809546791301633769843423495958284631550515812613714933822483545677050406762649709174613182996747296964277242951691931905417361838572762216475970519983870507614713840854293068399733543609521895582605384675468120154816987522920178731235687404481147672870665979341754818457563237176642787684486021473095555073529427410324880775293474923603465056487960488781855469978718032863461081203315047334507311604664007924998445582188081708784294729385532894265676223675611725098156118357254662542524147382200846443808052590904680637064097802692346474189468203869649315450753137481705444961261938546312184099190552868803785790367457124380481720313555793208395490526721782578745661764279554852608914899518551881718048194261787398027699123460505181063364651578480718871090754429758452423399392626138253843815693105197200076831384729315489487037110257300130135760888007437192945255030056848461334362831861189616282366888955113415647471049278184274661637049769927667498105289533110609356025437014404679617452327138154264388099418830892570425512612426000724025461894909845539191422313881657752468695619834613450099434060552205767428515972076631120488335296252862720641599308191134817474333195580975513964691001004350199265795387009093449696467649983109170655669397556128930266415628194984019481004663602516631580163739812431590357777057065956842692840534055582598256043262137600012497900061817225192950982952240517362151811084036754551201694380911705996206171055630955301735255836984047617431610419022451382093750303159342516057130855273064284365880673543050532298898939328061747909135983916890610601092089796511072738799917322871213051791222733930060995327336650409350646715452900492918626333163508508304419181761824990886305426674586050186538091904168830382468455906131542964103104924842673860768284691182629388835128414579950953427201163112987126716797856766358417958752490969029601813112955539759262644997814189350164703171785602725844529461387876636358245181141459274394279817666730492222617358465996671718308296190240349295910611316990811005812914197763790854327547425247347252536880185478780913551114516755801629787792411578825510729447523293171154410044802103033101449498858279301675420035629180083140257335462069816952487689760877653176977825421689440723765708880980743154507743537211903281003432914662580699715233522039585625524667664435537434736811832145138583075246944875416710527362458925650169066271747630450738907096153405679546137623166371151614943944533159505495352228319708041200467700313265676129383758738527923039835805218225506007681024355214296250235849759377575556671302074451485130595517264530682853123858011196761989183354628742141076273229822585516539733275618951909446255571552329432837062575548120628880790363426448755142021987824499552487305929608219054983871697484570569515067229944382178744813861537483227415072080937610868734176402347865118813587169299342761791020035852925475436866946632945079611509084080431861817131124635342508204046669340026342603085834975582963350038015829339252750793014107870458133536475785273220509071896179296751219259866512342557147974936045171348936557325989950910923989959985663760768286360086722800667129895407911459559838922992812099531643715526393281144492104038354830796573008666874464113911248190933705637158702712171252565895075592039120218802166369726898109295247146572080157395389567850673011175082859772036029116455654201780975128161983065180773631007590320808849667252233816227249271106314299646429444641197221810709684653940328166961014136151139915623621644734181489957939363914001663156199784531712629114104866036231199048644614328672515556481134351961771414551829337739717461592330451315475232563127234375180846320159317243139140673553628952364152134283018711653200088149142944017130536544734699892642812329271688593002854721447309760980264264403814417999940867951935938552131110238905594793066208911879828785926568877240212966479739988601106562229160371848052468837480622232565053471414933349101048325555492248610827721683769745350550019700418730071840748793433403976450906522888062268090144758156340692789780128090386759947100462279983298983681157565630814588642269772021445799837589647829979575993955962791393066639012225923584957218889281611439850223918535257050993506044166694253977143300423899244705110951291817705306481562560510146788455556819184036355284700837135480298394974061082194711423413098554278187081829362700658962696749384445200098093758492394355618820782479402857878522727194321611631813721430190106010282003429003273061055973166720085148318567806724531904466499965385084752259051735086057120178341154248039617923604123221973590858523830583656703146338196618044648633044764520748971869097127243027287151856324691518200959088549408240565837898542378831843797717554909729561117241199190505313964310038270507204371899301449482827169605154321034578441341256717250539966738783464235685476718833054880191836421640746066920559623797029848470607034729566164017144672160674655892891813689242313346483694520032344385268503767478852795181785810844019269859920050900037238342091342272955025438129855944867719487229733389951557852230723579876083521595661613445326045311759613088289250797360878743079418289051028037822322902399095581064969362105186347565414532089186081411785384299468697474541741757268305151053618995067737770053289046410068888755822164279213863766809215427043989448672998675109683788211341254116595277955531279559584701944924626369530590806728392870499376374244467216330673334096422496590056596230687434337956705912383400217881044396139015905077699070545205483605510244480260860747493904090169523589383383957673655177215951806528332635462674249393986024401200406055513957117512602303095889419583107911335339534608200434022746502782180512615592186975743363645506957138683958263610697439829824024096315396490305050675828651237558649413718785910536101466911949820204202968783046608235582420004807549970116907458954825256326598411235884689241549614211984366684602287282653816075064959849737071765027278673516695145194470782210589603635362108571852191752996088138816175241557974840818163316758198544109132262755306821316272252347191407035049861800349371721802247073512776608518044902452404025751630802915990528288806539168026549756344763674241351882329758823776937603033877453446719059135112711740330656791498996176409840627750712508648454787283061891639447672506241459816641643027507676562262378649506300485066205778534688482562627354099811509886959809140231011750139324496396912659241190780686838914988448419298020285338483389424493849224288453218411201503953369354546688048051768145448986783769345692700506845127333194575231045645325026089280576181844794791381072688828431728283499130657214383493388904029019812150049532398178208607859032739085409138559947442032352441649762519621998347450718576908181084610704537670273225671073974381562196007940543803363375008503801305811237595560268011033050741127670602530323268839863585210848550903393551961759587328317769345859294424049434985514396553562093737563856456837340807255535155522259840394678456898906124619338746169964879428060067929537778329919308992579207044295277228359970365092982689639109331507318323878205500313433797608161491964140904771025838605117766048009756276397573952199513591637256461065829622005528972993510288631874034837104703739399318477403547043270914839189737964357251471543071885142376967993856990079904964498582132318661527178720983088423018662116033521252751698762817299769011490430456904407652489298156576828721674184161696997003687904894422409800109477122044504525774288023810111851978639833983277536013327408644151300185716005529352853041977495575927235923366842410600016118181969056261138175644618061949376346120316055811297126098149883473181163638513224751832704031009267480751014361607304943269546486738686726301415298076414551802415114348677423584934270880857733795638102525387083255649890277835587802831886442116304375994993891869943287607318626316479864062914111073298729496004821376313146781461417122707858919157493979897879606195597043765598397573932786193560000077163147095781193440295597653513544851404741558805235715847908131051686997013009960262098408621676075692815630740246587519889702303420533553552925398662409342438497480972050226678776622907134100229315842601234499072599604249089174119586886931753113822296465379113487215040006363336103428101062163840869728825061965112150492591500946022663118609997448664303267812005523272251487733422687352932373029769977287942873418040847066143422497622085795812587252008405697184962737860981852045059751424973886842305177102764810642113827124545259902804541031422492654932260320489164998240691901235175951294095357248431846116707667202088574289914457146141326235843332601280180841663087215032164585866654314277258893666495535486135091430251996655284732640235826938660327305879396000822837105369954740996461632570125572003300490252596164047987651950276477387095364520419469116286848078742609743959085938086169825647919234468986846685678664701370391554990625923606411651885670460415136821494672914012211904018969390922332688061531708165633459478458932251359476859905788235404882404517746047408737631081010208064088184652469587167077151225954335052421781758895034335729626131615137644432288581606560270812972004639428418192215825147260618944210557579922409604799861125948589476963077366778407890964776982095356914623879429936764012864867378476007338989075256583019360500445096838299355394567353821244966805980021503940158595005493355537698995447914137456005105479393108392644818696702555462810780749871224706775173311835389830767003616089082407414099665649388341911397223416072197217656893909504670159838151270705848234382860996294903244935488618110980309938380619924970831973169169616023128154725936458944389950005363957868577703255275356548232631143072278837706796127212513093329519414785350108859946423877331123859616606041322807220867104277869742595759540532747076088345093283406016387850904222196049964979641734231192726749124901848180640057532955873549216609402273741484140296350367662790405522333173673953512389869438486776879177778435937585475387845230711105460975249854830666577427862599572182296019064361168247724850341910843115765675858016274381724987430166253425135577308271189055435112254215838923949291086241717961462866943713297932309603581852255559881231568753895568902413692397035244475331454100307467231005322039059054245025162431146761389382240745948446897523150874439475689296371165576560541302939803738947913755933198071876218705580339748113467680249759683129388137880088786742141725519717387175482364636349846296435869131301650403450977466005599012396615074814706501212762223491236435788367147777724033887464250076064722425806042251000104212535745519533695623628663795142298919765483862102353226398693595366754732154526927250964874493872141052352562737844102649893039870136651056775217103255994005225390534779224588673285179122731150717527157414806186079559978934210515694929579388259185596008905033831754572290134288609629579763703692854671327878770024696325520497396562177863402483168134371399520951995694323777262984305176494543645683036374252408878662067454079623380140276698099044577984937363577747660765564711559682167085519961094335073596787859713721277930174242890434368596431834560897473439439421167277033868087479477804922028379625633134640519229535056960925872365739223171710869958917309342119804698635540319852504199359614337298974015788568710388337056428578209191837971361708604918213103680925993001771791596239050491854472054306037143148867032242386581688887904183846989240257401797191757936889494363877186656182835791414593686635826716418124341858758148816877891749218420625028201596650077573157426287857193689777650275136176744897987427849493792126840739940030068497893388335430817920395091345520898514253873868552287815781135906497083954821671444320948669328715083584268965998365730283339835441493036106233184122388319137791408201559205600773517963128581395588351165212842223335645470722096891351658184921611463652830045525409116728709417338367377170667348443147601337311807787187164463377197278764974039603159201345605493097716926484212881292592652152709508309939704647015989857501771465999358162393587491720654936122877824449827008974722453025937317604822395623079727231296075832044219199970976578066973134547994615904235126573283414053183631936697969910843199341217984532429436209126261584811004171998198498156121720626911909819240359942696118585979513846492834990995041193255659359958035311651659163013742527864579576117110387844809678347196099230557556308021348793898654375409149492435972047832466858557682541709923162203995408165938300910551623545104613492697971733488596573887434665175003943091384848411336580230570312091219527746036242407809239744720951804639135458925756025206120848271148900331908086920757528714888268883932771341851629696587523373661496991887813074535039138355596147444245050196604610931907484324371509018211332887163756718424075310389955265631355686917597692306424554881303364065317801646553760534953447936813714330833388388479175389168258361854354031160702347801909520056416997541512155245800094909405268773954851475021122821615079585803184243767898257676785710722338881936906857573188808708567110527480628542858789075984241680318520552329087257995017989677709597303712950402300983750615812241336405885489235858603138308176716629095440145345988768736367821184905275077018947495268931318334805129475197098676878848910161782775400532968485315644066828578646258086929269737192845660246265186675342383347070390152330503208155804299139122782211655588297161249231987791840925876318945232631327153682201695072467937943667659426217857842038145886527006134955379551543002533043642156919680841106072868170575593851612650046743822828342325758080546328273422604245931298232297573589689003620402885302139827087866435587147456250349649013207967507770699111699024375677863808328957454086137691237288463539832810153840398643303081171829495938832316999335541223384189282451798278343926192082484942233547417701011234488534932028491965845026097975616955291594203218689866479535800681711361617739407837780205443504307358286652967647136081572013754496281292476898098856498547465705039280649605088319522747838486919152105501831758693789320260106974824790569183208335269008523764576299592725021453732496686749669075537586781311838598778039312579238764772214702658724324172849532645827984913982457461812878995212623162842799285575113054966415664390402338760267741858875641590669237816048554702720930426408689869408635288060708782100746590846965455326427178852276966473969538272898148050508040817545633499282258693168879632569302818589047966063277865852038083340396123108035095517177434773893792763684190807009641675130613798221502927810720610055559754137111680932484147449444036134847533352236395576460101488576419654205984111171215964886371868875972149071991870381801893850176945392891476965299292227760609690001084081637844837144339685788598305317604887850205523918090915267879852514866794167426154186828792944196362158610938306978710313351762181389418953051019285005519592498810281197369930720270309766086845354969154230865175681447612410640635498749756901032616721490316791080886284767706489105672220274854971575742500808281540992088439090035898923117043990081721086967005402646788242503864083908917723466459922414564934048671917582841988610000090638239546896168993753066877152328972821363093448792248392662430719053671538765093535929518976753397097655983279854444600480046961400924730587477060097150559279983530128865759393223810680577255000191916796447048613649805966398975158444969087816668172799155068575078932794059192906776496514018841460152528786942276162520237164368333932296621398930542873425833615517566515206984301888198348451229253216841984431187975707167114185802839087133325690891957771810431057862803039538181050192040804420625982503803760620335335540357448560868834321531724920782588470098569119781825934364993854330871679831092806797109223671204485707276602851948942369408168131042243720017422108589923157581844925698667518548773529534335847412477003242519924096612103316315575019507564319293496907184734337586296599896901199325728732582961969668678974079424152359377331410959792371658108880352979385245282076031287313660975504930582835736856790740279715623065639166803691259821229994379097771605856250999286959592348441871452790397432639531390978463290797199670383793441120920901831137841166251184497783025172218886265813605736852803529851626511366254862753461615272087991773218973407333712393597238498899278912786032389399957243538190069846584274194161770806436214174599543935519220590319749885559721291871629461027721933737750751269269846017049917521972337325356264260419780605173626281617887199781387601606021222186320988690363538622762880098871948530969762152274702890200334175166348438136404269554458735171609173756284315617202233552952020606930853744000830186675400867258946251167591640098080330010160585433048864946797343246621685792881206914118609274635573295870975418616798017446745689820342057716988234524176228861598981574064275434754314813023009849073327222719440069686797194513499745769629952768003951402756567740518011581626972797321366765542190108236934747379740716918837181298030759841868075359592436113828826252891370306046541055787311314130448384653093532616874472888688433772628135688920879098210496059184098963337223848967703830867180819761002054864854067905607725121345158883275982987090195031196265286459064117084622966955214089668434319781603112322087295758002441811879614818837012375148764214669758796913184493288952519101790344468315114038875146983770773630060423977625663075358361950792723225064434205134188904249699399106025056326386346962662636561943039103347962625665946841477056761078862524271187584924059444578964463920649792818679911097702373169492871472046934460421462463379602959053623733456118925249363085644393796832011724517983024641501812773748815525953825595744616225975250200144112718485457662765615518045059483123258959105749116018115889632667234338246367371060507285835554216788746425640824085778659223037125184941075183631750733697549241243650745396375192796523311187311351810820482820487047817674464207642752856971811253860005707883222505373412320791867937839165191341016917537552587809744627000157955447463578529473025781269875219697193612441608889650056719887735085618255960261688150398562206928935889545917627677484460438680629640550835440228485948060858686014387804375056393709896939438570294757869567344630624266541300901234875151350675547302547872584558890198336445958515951847094744550670656428470415994537724153695494878454650378430642782301844916031119925325988214143259399468165190799142314371786971270300644848596417996755834906347047904495718960589580042153282023161538419537271522889041178277731256495451849495575809475637307231682916058236922438187968381334643565459414981178457046075420268596693814322872894642761362114106148107998338612363776059699620751996785987076775412314505112245950511244705414301039245769924623565250779297748529258808341919291758561520783034848877893676748166896484861108987176296606939682162383281621525925422723316004327527866974153512506930492570057637541065328297865897524151430093748773860066349701492378044467077774058726118175554045388241147517489759350915198410519237053058379231131472129976876899724197167592966591054269390603247143379315481780602121819816557912484755307576896607224724736128705583251975884788969878970541179244842006742783711733246719074280881537674650964277511591605330532941178124400926171668727257286155440589351653143976540548453046856455825959408275315488144170440571661248789976417113781688866927645803795741160837025191914551325478169719187210241604504250813770397257767700757133865564255476460629919241696547808620130608236976417491944123450669635607343068271202376901712679369895007973334951860083023408649578077836169925667367613638895638264976975646387867890924446208750694988733951924055368004481913962309602311724400577487572665941546565291768800258665885826524812165619202940768914147236382272519407924923848433299831101380669465148502083462740128264811154694711836914568859028219915926382885133141844549246980993611765509924596728321467215578335881945414714451946306328212446039216330512669468565243129167962847481068478291168630192976892720449999910605606749718943806541225453829821561140230999998382627409787605624273364732181503558762309723555278200778645154813840200030745428314490125713011014519082073458182958045322396382637243089218533985788107417553148767136689447469047446571805539699693900255039726630493368561250083503257030421498403076364571469427263207206145351288592804837312323128704396385202497101068404542919788423418415221176649647501643606115951692400017011802603123696118596472081203457788910944678800444537846685272530077191407958760305732289139721636046789955239908227891829929920635050640627495765145977631014919465148233433803195685696740494094374174088913749097361106136697048397657337477526650071664446841627052522495566516177309934609461044029746433244510124614888583931697681050983850354848475296466536502030371218386993865416605434399001230554868325313008252940989916054155481555983068319983165802431868974574636910754890600167363785799414593043306307175047898808526110187717888014967133820034642958943257505476748940155136507813843435074198191864994396397832214910002152535660876061797341013353296131599005873959257564196618747793585153604509399440001561833971066378097483426399616812824464955790720558803246926052174872363207711003371704491841744300868620319461548461246997258647662580237274111506801356496704785572517431957205659843606689308815881850661390663449469633236907980675776740624328138228020810482750425503352026663477763983044362862631490265875299541560962161715234161345943738669133889799083660957147901503064469940732541321917425673390371725311462598561456773065821923740346599157783549867207537874575355173397333584936311326166949019546166557405170469774806213117351517759965426063584336348736184883087795450968599272805898810205629533361396077267346165892931263890775933814324388443344881660545973233340159220820057510488082393680097930078824340739016087598862744199844827432672010049245794648761798169341338190841936670600740935708974715175844710151683030840433946157519627961786493701590204191633695998548350539316452563458618678221902397218075847136275404133283045908828029215348253606749168896066362386455438059839530722517121130644632830996075182287487807780724872900226494815348109853565462981747142475560564027488345445151455959039122159652006536993938036592064645278173033467409590095390005973283806488209915862191150499718916453236010883516555983904300690543455252457977851024058162926908842350359787389217933103544831420621679397930646174567175968889858087839085750000545555310967601617472566740407315616771485417188374474388917658088304600801637198780091999693933861194976326448752624507950040627328516136096348909304772142843661937339172209697315649136232216494258922367098492975704061051268701473394410998484889175779203552938657232414493245026198731781074715817499075001889117149742881338329441400095712989187694998704656069313108584685213654412535753469068286844158794734918933254020478164960779383647347230536217134574794752855405943657703715788722281086247533260114866158556776155950675707373571253388523236732669652336427691440173366400135328514347562920219854473313131275193422428270072595728478828911023417100932978744132442645612044776201092467455904110058687215537962756173462059993599839299801531776014299267449379728568700279352001079556415457186192141678785985588167152897729715221159480687967541169516713132714770838006185265297437987050902558114248285707259425628144780344903865939079426357066405236614555112918435324552231944174221833496019119387346878948692396466721025058007036117109383003706940596679102450652920732332069818186113951604252993829239464384322055566065055525186495383930219414505183815716705918663312526412349786397625401935887981792427796712269261938304591884518875573821456092088794106203980739057068674777135468730011992769194278962015584530643674060190824847579865918909101787038579204304903841734571099289486359145150556834826903809542280111719822669209511565423793111777730428993879535101164662228655487726932794774978577184627927677015018615274383955014137285421722512858634192013892450290622986117349845436214282081361025179953995186397177135408236334636708673866027259087740618120817607522023162575989238828077585915364700116578885507715062389077545144436235252380468219627817520603923293275689857134672873886569445786865814740678359614615705537147845642553398366146524688177975414189275953078963429206520890042291726007555590415035439117105192702314740967098049537908661717819638697594737360183058260426227606704925895268013104720420932350141872117824027829855704563405693294339694988708422647075566452442988050997856016233915932040394391425243433925458271692042344401458352477362272425714117747886369238540449260225182401794119636474755906109145829640397064553777996390468284616799417994743589977207062330604844892653881901113724964783926816176583223272286189566836425728137552793207523986022600752443286644182516662564751782518133869569599675470537569904969179957100281013150387485972388405101705523785042332667604783364160624836497188322497753056128264359191277442008568968883269417210994569122897994166800969534765425145996217987590060693390632226936565448724889761436627248762728850650772722836392886153333575335423447955930182275819413974485397338419190482130173820255173891717853538457181251598060899415971640373684586698142136811987477503448995528254685264923456426771083496459772969741868477531101797390991078856999632446239721594674107594040368672633458523475200084366118871551597667473525504288290000408198121990108940540510101807885739459736751930715376457734339819611426587534379891768066432410150590185104715027550550278338346820467717048753711550034818495391504863899842193037576188844824312353086579508573553959151576426661905817365984728122708670355429421491556100856848128398500965493500455297600797328305465759843924540479635891988546818600446471308500189028701198240692332952404987731479392951024348443855244183530304149102068375008654302262766727448158040659693614221726128916258139528639205869647612658698157805295745698719753992855654880080791444275584395080557916051501504372263985479274334881727301517290182059886170248167948079539868863423221674762317425450895910121328058535046462667942099964737655673138388281634199487390430504878584895717520123643571674090925296217154146621211317487053089692141871789242633955365833131822638493244310272611226775877039124720625940079193589358476686886742358141257666184275653835173431060774826741218039173617764640665212710572582046323111020054853120875200525779866907324966613590557051688649348408648044874844739551544137506353727855721050454421153503939278713564975977086074543535059982557520076642226262005624493898958608072919397120580919788644669863382134652513822243007321878823120223988228592332246981256658671230477284568689885466742966168266832719540355027035343265296298561357896416390776455031490010227269111269452587096556261559375536381124168244348625909424348052131669453506565073802580563965092079305579430811245505447948677339894763101368786755603066564566140913628356206744171486065337021753698180737208725694586002604484458338302294485977429124263999109558426545064878766838150442334840722227020145346727312368978949273913618305427139051334918109666037852656151429033819929228534486891535437203272166659156623927963916901343919809507614429585493737284769843973787642364937164669019501221535282654406223126706280822463324913421518556967646205359818896578679100063000646641243595263746171062609962482881579014885115490381876939985129539237421285286839028402340588929884020549907929165588294388244420743319226269105309187313916924848034474819850639375834263934785549058848041014014268210254328729331841653395149053903461829199158752236288252533553369945845883670277611341961338324019332361009478961862803217279835044800867820952303051228638858493197066508914017710004265796873611933084261659680095736997467005543456589213782218736104552791267587662896775128184003475165312331580008036015035559170296844335365718027667945862388055588085908101035445641686138235253873937008971760173227484435485722707720013255368080304313145699514759550113654075855275747920347101429814066265842058385637762640262189400206637111612005988859757847284628871292373567659365694719001745496918517229240813301029290317440168109244061092458887820242408473101219764096691094606491555831985328260533454364279913513310998776270148147894064319726429754451668524828924293209668574423928194853326960295339269615517770261728323648248755355622644169921262171647260405596256249358912378515284129016432562238214327170352210527185733355131609377633710805376599140860151721286218226901624369955171131274373486350060518659044847519062868090632807738689140712185660784579034090314123218472736660192449185223027709336143728000828724358716508416126078075350110844433841339527513844958699057752034852752754565919545766718438978143920237138912287853791226816850790984778233736531741755811108523669805658927233674252493364606123297246284922707886193790440780763425051318720494214150806232671402918763115928629730040511554451039804213094245927793389321974072983012364065871877825915453137473183019655151172913180276524349660695694429735478813084942698962029611854471329987557457547969961029187000090746987212966438778883961990446326111143516642485109827363991439605132768503779430939204972882454462226422587102241501079637343410628627553706515736592931034156632863239036449996134588990127401843832980059142177926248079367645979081956235393169157477040664337457255486589067536853198159058331040665191707543614342234221210481170003968923469182479146651124327174358633050512157290042211840037542975118294165628638944766947599763090265779022068671451331736704613778064031562498241471269687259503081297330362166330662391283501006900282037920257534071771893763444642768933752320300637380320811696775963933203920101772645507968315609659803749202188507160500644240366383898725762219404576588162094987194991330364526431012193840897316443340098332621116906575960589488265703688461702485200374434201874860338834870617048537409389061842434223672408792053728023899608278807063178580150910211392670115918567200231078020564780240386261214239390655383600791777842020095552005992646656241572153083665190214533212178444183839052237201192646817115141299005749030622791580177688273293304220851644671605071231287027556042999744539064324941346896121849023351763637777258524985370715303795258001590550480517639171880360400241065852190630295217467629016750302116203230859691566751034632564672319654343542336642803551200744565245453728154331533089185939438167114362545940181102029212018897497449545232045241654874052782997723096811936594755198733897609688927409228771414322155739578951246397508116197851261946037985126327762518309309288091315822958026081355176979914027822873582304536308745270620337224736970167995199970980765799374503864522840913148771162298979928726458511619693735072892482663543927404955624470430656521137072574686025231999011324315015907755992027255720801841051141881358897036965187792259883840266824322786462624783381784075819978832558192347313270421497669261716043660334122304350280653516375944293352886043901242209431589116262484505657515997364011080502838065540573352927389538937714489022478695973119412506775889400756318406591283647508466403290376707803827264075400284392843821498274857891094847892788077880315298778427749643689415635363155339588908382807693976912732968553527650868465793742259387391505098539246787845452670700639110488152240814526002110112679310004003771946141963342989895861399728317995748016474482076483907057203336136566738541626854548393794817076923483919011751565806644559252799676086006267987723684031053302005364549169387830478198811117561113926923668782147162936650809238241379987041982799433373198722853194675432186526489682938593155756009749123684394595081871798979946355588544095050587743127447173547401933495787936838951046647108970042117940124629344642079913563434629878065057846167364174408740033690470169869716148676051109272424214148297862089373890110251889015453316057416985279021407195955769598539634793187257399147456785260247324609623497402937768070939483403288332667180819065824374906926682892287686478402526991813823717444238634207493495978982654323858965240122907538486786052798739190033561715771955601602820977661486359451694815000091711722790686069504105217764022169089401505598354434825099524886228576976269315299430885270570898736707472213734291604385926326345899076604261735151624353472811904589331876814780827025502625841053271327109025021763554535799437921198359319953835921825526887999898267940840032411123589278611578879471851230951199567988038307310187029472077908466200283604754746240199301876926526583412189190305259608083675700272162770107088774641094250177424663736785151157567603229086138287440918165654112966642705273089030301250945954708944560671541691461523426001217962616526215353177173980619785896646263375762001155482075600714467810216372295747258347742130112124876160091404093037149367601591208988104539074224803569391831672352265338234475935200903066032124131968869389048504901034095652658977187088661307573338104383378138061173366859571204084521756930195468717803634614017204550907020200150041840917237455809424670854780339542672604376258954304943765863202248023486865265399046222382155599762050271323747801328757952190299496866759496989203749116743598306527834083634766529469403011204597779979379872730094225548752321733839275589242917298044709629291026066523070971960674585752203796150736412778444537489884970268725138054324283263480543990077230518931925154175133361654001798576628323201686802061884053190251021601444137558066364102203622692547636507487243905381112167165120938890847422740507216521885640976957952422120943152273765629973932808551781414620918283448859387779297052267275989125913984422724316587623531106032901292798749026584905419495531708780974688678575395572011162727347496261881324072871529947737529780921017153162639830627940328499346323850688335388248803504559138040649619064927392679750854116119574574829278986386312161489993723194388687227402459721694567301926486967741667417293242721747098538688687077435592253187696688266939207938280341956833902763219881536671942485169533013161666385493797149765693217593980267768970265242316875457254707124588536202849113609080532838008203033687404727430937769354810717457158058372376064250627265666164926556740137890437667644835238502736085193453628442220302509583674576696066615950698450042293061755372077667916113307348525092793897637603042592972279207845194570232383132058337639947150372365128071548332671887660436965362324131423689915159489831578051406498541780417960134608212587720169358783094910485566787921643548653290877743738341013573625953745761158532476807261853777371340305054284713620718617295590720886931618245110711497667156652377803400805440867247645486435319331248766426842716332908969831467193405843417301460527801773332297446329654327387733008222998974693255931327712409228059612499189363743567337635902723911792094879176383446957906418938559998106304634953061727305835850192471001030167803897349512992454423285375205708498364414761237143062633465544428106747792520656214002363100442946909932483781300688358863780819512377060934116322080766460858510950617699919403345544247316473473800695517254206006098922475427584907841828495580822695964613863419120178093738458783183260222320768837954205638190039914111342126354511842026838209983207163914127193203111808524409285173297685902121490403868860989604449014652728209098657409967398025201432771749428103039327738498672898851090132304834328565033205839501600281164269445220533250083343123646766962502843117247727059364890423864228224379223017658907988221613694292615492301759492120841389074353290465385827070459993788395258225678303934952228421258179113274259164600808380257192753471372661518002965664271845656560565747979365299583307334875885242161548433641974056374903582946565167953611218856648413137413571241048689997195450862554686047326089090551416996122152839460498966003550260486835815870062406794774707812195399807717227921814014366926419621550778744970220040316267140245325159739988245846445778527991756114732145149109178023860159306877546374471739056884049758933059866012616615315496681384976128910795138523799596859048372214690123968134063871650398686567665415969254139503632742567519137337453557702370519474599274769284891825096354063714607790014690529546062285105275945545969240965391536924646381063741712759507101660180518188468840175679215819194503332997465213740324480696812083990488247681076084588189927930821294496053207934941427477553548569211816529440521972960127477850635046257625739921955921277222405965449664744399061481800397151787304301573587320309669899677585504993681394886033947592471244461593467266162133626208542706918808084705039093599878705452872360707532618330919194106453847742691501015898463846539543881503539879830162833371350277651393928522577171423594369119658118413814300612577803322483055322433488442021666545573313635880524358062333632597129829527880707649016979938307960719979869660430234384878897313709033810713242827263772353305093713784470753611606018164495303077535326724449592364244576573995880049299757952561839313071335123382407735473174286881144561124870092481556482195058645455074374739833457453322426761052763827820685074355364274003902800707296057203756023846452544480012740572758334458472552773037788284811518746796540281810378698093048000644466888478126410379430118911218540554500343811170109529728736894487817151017358576073164303107342299573030734738274421993843995656597028254171330748951576610659818144666179183226530419085802140273703180517696262485550586545589280285885533186329603859193247889259253769451489931709256784670397067665870600204935091977614475049299788125391829088416981247048840238015234388822632500547286889944531472225719261507843051376720829090625559140082054241840630387197890363074767461370600539397315317016191028550627581838183767336205548495783828228342773429111091263298690005551791658380060396231885500588961858624580033801622358122872181705857160550165714894170411339008945929262414264835773112450558954364910804888708456199422333533525785080251878601881403448665566187473680847878625259751521893019038542828237094521211812717728776710300630688234293417608803613943509463417924683101805699062704269806875575093186826951277417161898054507409135207030436226833334051593562504373603958428721461035570262215152907257394826355274565349207824128697721042963873418193596879561445159701820952644660541282467459142846018662046632416251735046259655564736565264371737184377186162055384145215650052195603520356702921854928201237165487192706212484788447924504684322776057026361645302903674427072690169026052970933632094127679416821843123696110236042569507509345630185180840596232744185106495104715215101530328855108995956876405931558712076074352621359447091731719659464408468993779551823327660125880520473953570489723171506167463227997991512292884755531597578342673042320913974959601155964385225084479196839267951201481838541537319539929331223483367117445153107471094622237279771674700015391303260567346535558949123259141232038726047636407924775910182003916546376205834463205422013838375027274288783465892667085387194988033521282348003445805710597455230585307858853277397427117703612937157712570743950421230752979695306539138092974653670807235086274523554166990955100625149495680901727295843019526555812068569767314090348263081973304235261568989522384857709604144985886115816643173121632335642073515191530061927255682612145005702783856564733691303555183282726784829714638632958502303574831739583380107715055374595037560186153160032344676225635410780280308084772554004207509813289478110295030169318533770463291351670975611985456244537555844919002884111139929494398203015500222855980206785286114869316619854648989577602958464628109786069579311840971965549296977433978452165047114222375790873882041189827015668683061667441507082215361282737862118631931649226840875188506403326056679033866404130367302681515465935710813140360362541079349243622178766447095336442653762632987214298380477595664571911238811369268941587958452210571213267264283546519543311401695456930783228919591097549742594646335149293166784392059515018662662542419800718784484824184176984772318585859981195352265976164548921952923612239588792459975044271295302362379699708053803774990927139773327624326364453811769889095354344275644788586801854624273172172793057500035140207809896375379119712175338261279639590712424314787817556410814260613041304094218102401760606892183222031582336090514340862989755860107627642215553020206599262376182836268658329909318220191178964438239946232099453437206805623333877802866864363622707504688016477601226773670116198755550380365304467484727171244545251326385924358563812879203708457569973998810365108470754311437940061095722559120729380565151170688377271311387956385390690377697568478070737200205022776733970601861757156037863475477431911903401828482309846502706484604833153004492641407173672206626279773080201864016620565153316692808783781528143095388171265429011425852419450630361509292154546094075378104100293862103670654354196856058812558735247349135210500363066752229905782519925128131060204333415997235827415350639703191938739245480108418346232922467388924423364174280545912631853798403509354219604735298358590393928124115507802367467161053988218385644157679944558481877176558383950720893537220181187313468004852385120824020816455804386447492519029420882106689853840978037623434592307906224900709209181270981392455340163666899824909507939116675813796931581338182661194169340119015055379214420193512954170035186626317457972107050186716152316828930135549886189504611977633630776325406316481858684222564919172385915524910835300015541526095227767165972053972649874021256370699346001687410647026577813923463125102323361157184604968833760093744218655584313522861503285283384907012014352835915730729252228630375957440823231344510091887904845976103579789413308306216864747329176920708395725979781503867715697100127099631207910508301418192669593791170037071273462522207464622678711663523449320628129783784345776666448910903606279422143586327984288581373178860572132727190242583245065540219104057696750086048678143312545424639859640045001744250805165459294416693306981125538260796323978002764243823663966479286962960360435041503636523087925307156427241543446018625518685154887540443798748537637493063616262899329672302879969436137007325145860239314934388522419272757797960007990441876731251653770520902421472057302023291198922567313859065997050280166246061523687009994755771915233347601069486663178762681124624682803130534343249711436270307889000484545228664175360652645754978596408556770605740157609829137185638602313788360614447968975465326750924255056589323818085331312105566138850352701400437089168288800424347122903155706400060763164081995066973302252455214737722473925182317927264654456683441903406079790114671697534864943016586298057004309042817235910391611752435835162586322936735830989772612819277460764116376131315689182365236535332959702439464325541974832469069125653157955419796436715105173838262273529414879552287132230056540384615367181312905189207340696868650755591912701130747962272866930098849614204708509625377598412927953321923839414908817781170467701562300692309669420256469519605850749699303777395244644292260678306324928451427611063554085432493019113666953177274081179679185392824796778573070581130338104236472444855848708777029081452232739559912511325720740996835491528560135099368336808401906830947469053954231317361485167151115275211742970122407767669488631950187062144309146943457978020574459405615304493671549119273662086701201431771929090936439459838165072185328444931627752402984826850604470169759601181686223768976107874325245162726068736091927366727535143885628842294164244069301942220681718216501816219679134821164972844996846316422000055721708471223125481655448547649780289142067946171863050530273873796320977422031188343274568705410102804465395962852403363772174047018529120617607859403108977015279196550218613457312060728847173515775145745051601006192812528587470002544186446787760094480821831602024557537272967943356002156067401993172844191662102960072403157759165849169601776118733534687907933624692946875654777474988586434305118996079493288516622140889456898175171261220569716456538722127075649804284830748026076578280179576862044151797212850224749823072046208452993199455385045427815780617244062513954551655349612245751933785021985272140669379627547332938971113813441354622073172411921863242833220682789410283795985401218620069072280648250361536949461701116599992503976284453249736766173867706498209325614185408725255263669623803702648427145562277300921531624333170238909085242285253418479566880022903165142764483156263380264603697394425918601044560066750067577848874156737180761646836674962297724434027401930568124436967610875639153545679224740544933306451043729781864154447942384253057233103976979819652548118563233339611419622643298789983450617419956233863478644674386833420899147278757147436949774001081961045352254875141825684712433339358784830508763839484394789921630099482290708186758069311049279465281595413949324231822778462245957049573550252085227237098723721844789640930653750854425547665556595397792270846627808314821651665810662090614476423337902653285368211313215244047142016865126895887188798614787902471504615051367759038247603550857840920165332199118386503187519933539397554171590692550123034486130466326037806245416341351206342031720568661932686700061251635593925245381510537269130932604993431328699748371647692813603922400655952567754826112387439043005402488839652436583506558909070037746690423116956087504963588249137225580160264407507174875899410720309904841057323177971038672278456857364611584857078594741655576032663197623730934497764154489484174581483127361478577681700105977925654964719886506752731329669853595676614599601737051792945421153324126690775738231838525618424776999648213759489063506270858406042178640901898667969629920941259216303896108254899264834101399147174205445037713403579022693298338114438160361979571394165396330217286013553255124365710642824566214096273058728844896757733405778171410389641463174311181498984399767678312269929307462978058117042044572662411430859339900327945412752199429162521608882376564808538741472173372229905573270774998990546595063818261222683194753565764880483179036296935614141460171489550005211332030933782737447773138528884985017378903698325258045503928479519365924185927698098790942413970446040527473630954003928923472430987155225444819644357502201832377369713321080920365624769433630698697322077267090913806348096928140797634722411006337995007470572577365925242191480516380138679316008004579962381081037803785078358467206221379290385011205789786806930093121529384013568393305936141013439672968690879217022846422694656776440195540359785644670800795154362334518454663307146593827001640386246263178814517421551717708428070473028313679029965864646784455729179546027445008142739663624691253483549617971963283480268424414571716282735392942849367987306053570630372702818687724513771568814056470860201042783580163524322898920401499647710685019468726241894540769398492089486760480720434414881345989368818757044652875919697166997601967484226991745171769114718161307576277428284603910038077558167428844193200344189848053807568257212879733306497339041499842242811151240177090732328596536408016828190840869631735079261197114178073451288858485146011919218321650542328171640513581638367766130662706235400678247032877492208278151527758534844660737215377156792956804554174468906352673421426577057057513071137159475908304186336417650227911627310561207195552273249027323301870210323586056753475343902318839783857203588787577526511962492591790984900225655826266631242557506160354690452203923326189264871834370221575650177524303255198450065266897071987049131945044897910036894295219462799107306008016476954012080023638182168513543527687618297059722629794764442608773964113166991658247189404506222231804284468413356940734238048217888133166573762835750748544962026253807839553853595726902346801208365674658597776790853923152768047756955824252982606990838109317475099738737401816107146293107548411600991310437389163636193356224331831847138283903721302460430491767348670635945122351794412174198736152971496056645582208430793615624246042977062911807115858158877828505026613776345506951625707806455253303127970393296289341620471378542488223915781524200505295534747104872528111581619505961737883337584101306761994940045711696042150741491762500869290087320459572845659286092618977451405641181146133164794220165753856571925682038067593925620731291153127032848238080566100000483741846842433692097540161913650990808414912642363708066847615336530062957803810406773354747719168906499848312090299005528774393766064723646194819501906694108657937792318694869738935224419280607075013021382112894315721791919083309942394318528577237945799497112557715109309819405454535586704250480689044386727399815428242971604301997341343892501892182684157881075748317583181178226674054458510028124349847038713787873938090832606853773486448524449776670945035388759804640036336584391749068929843300391598492989762448520716238651716649550290122494647595571799477401546215577158639689631149363077594517618610813763708515414955488659538901457668301792511746881549990534795949534543602988960894120138352280303428895652836564496868274021075013830314096813911992185112395061534978194839234933154301324437348326834299314330800435103738479295835426743220020027583748802500098219843173848555858666214463013318145007598056702745627759429727935801914238612810263717428233564442677312499725590820846089789503389324876024729972834352327299458360075517253561168473460283697311550213035340122933615123933886103884417733479387557168808764345605792466672766231878870302024126246750345978450509321581821652698148401217564708717824411043177227973640235281461343880869378463143817409219391430117451103320206994266414602063471999690519027035389080596907095941927055517289756630520795993797493395225563247277329297954674897970164327269905163127204175200570510120004774835472461493993545567475183273815872484774193074850052167366193024902329319186081102560338266962158487049989424721751967504380815536358966588416260956111695843982975129631783432544916920845429800247044326033341887417666724030592503331325379342943500520312571313955492125494725319608030178617227019672120290799812435259682684239584524577313846433325750671030840234103805950213805512624793287155223430024884997941249759056904571271724700424223248456678191379756640660707737332783810147418257426051112686871030899940017152519005150681184319633399569861136174729643143716868657856837809810347360184466050945379242653319149188368859568927693984276360934702014581326746134215491318524922177856504632899451516418021510403416245455872214040879291889802266302452984771134907368815465287946909307692304202982692513204829157827339654305783365730789775903318578916857958629219411380639839270621619365732790807067108581967073507700319564374872546961284731770113460091738364240028171253810889078408958297207797315460423084985199354361132639665187712902470949833492156027046501378914474117165959117401803329344081399049508125525693689883695672910798412178192566938370324890868747602593161332721367045303936932400395256828378224729952322359863760813441068039838589590372855349648450152664603860213711334816877611915158799570075091079571714459023099649552936811278610962336102279951576344748240158937673941128468642383122819201298163230292598273932537120402824517126585012178999166139509964919863031753841036306208557609104684980443815422124625954603182266785749153185318654694999875229131434193949238409065769338749592896377452115640865438934962282399612095000303279722653677215053095893110723145278621251000402851953996826962935632009033065795011242114609584893340419914334561086531070480702059622106822983993208852932134293707933670488814902940554769732320989346559710186291275481706365047651794491537646551583207025268351056153827225209450344373464422610196056368857977849758477144604352567507635264898953154321558576177262437110351664790035548543684861998838641918702487923410414603167617737345420695626801515933627738376985819432607439875829968056081260624780526668957491394853820176026322330744194840881194500083208789009070253574912767918650682214439519160844306781624482002875687977577748624508540222117798874933306376008153094165686453912010979455797260362041840576005960102762968139158981601109808949197089450487720918324761296525803706880243793152487992769949128664823201659812765293128773069719683312193167260919029234319264808491142883860447571191801832740374893772301450498796514377927623501114104427713537639552522368356876834255178272753774058759663623397533366859671116933618852878615510291992072160434125191238704160822034668779975346269026955041992986095083943017990822188194193435050408761529574712291878649402982516409042604989555123242779245413202093783740668491069551888210453311311159299728376824146018468772557078435107354096833159375670998313418805537051000424739560083848443140535995422729462021504292976471194288904086273173261740149767530863398690731753176999024444973447020734218956187579244100801110075476936338122778068475665695876403554602930374595709289831215901386064057077289999195798777807978216935414309173940241140181899589350365105448818218247475977514872641170527902496648776066168347625988941329264903185559504830128552182320738632229408063914875474391440827756967601734804905121302406137632933614842988642129005858091667540893579506676240330237462218753453600495441720052060133124627067260076435902622908853088206894067751146952411474665101724179728134963116554472679859778578578539380070002640543913688700057017365981626595764346941019217251293811454423323951876652659912212424494992487821376217935774131763474832746129703230412166582483051995054590151042209247104677414226543363920195205587757424095958399637441283563970797551270999536271713106458436690633134657915560187123030808415549483733050628332231394320788901955280750353956795652019925963478447723005142173899481419680940504521992073860155553613925168414577658416603362301695540550775113690127974690444019463461776637238932449930381441216085651463652264093541302467176674435843079149625646059523658843437977936199284371244125623359802411239826781787259755289619563038662326779163882042302503534365500505990797512526207051779325330172379214527404647725637238163674537479667449837267935331709411364559413967337775855923173960799083237216266770284828360347012717948543273174538889918990828018671952015478550185942061581886651089822027163167442789232016410594666859933077125225076465747801690890152514923939643717071478273427597095285746606923434482561680909832468712316842988080983979336586062672886673882752847573727873226691535828498407397083983184383210214516967368527314630005164769522705146928407324036106748193419809440339459316048833699004212503055032849275814902188352268622435074361610633626432586442361719137676310105794436438517008909102955513851805809852228458932345963338714205710969734706656762804233582462292499081426837330584942928422483197565606314192637736255147127669893652336230123048856159468242081104341716180828425684715597259084980776029038295160926518306501538990223070541603319291215545705506287425161342923192843344483548582567560056738339585174725765935406476033118767472985446783992292661922362580563971210215112365412963978618942327541072339525784620054207846787268576899963753372493445202921951801380013422088526789845214757304083069838305097352199721511135299641795374893680154132635177159082620359357211647050542500496276493952021828790191811155790478461185821669869498873570965834730262963278395676138295211482110993447479909080912985534577046442131215321721703271372854789406440553628725508255486941188183605510270451717328280751214888745900594372303704931721954802541181860807685506785294490912291980886864087618316853812847370428281918033724981252980409140928541076089113666303181609003056479764817254807404450348751713917445445085920739028750843466406661598148402887358661349648369912527122868251146792753743707334984856383815954827631595642584946769303813862084892981288176819400742171815319514495816972155386211195018897092780082346379563282487437103228917368841180469899209568114869691915545035974823198247963282815534115935373755529975017703212450553108172904838206531833603025276720439821453887348263793291294919464550705036679244085658142062350948254994509391240275225187826636438715070079600438593850117290687844232472947833194946745573549205350215612541947430445794188361747176303394892177066131072884418527637316202664335711399457059575547979797020525642781915208792898066121990173086520815810266448481827487988060631912356873491735289363875362829074376206386045322417857304146767546147266152698827376343313304106369722240418171622535442960141853284736713650152781903563358335019673577832618717228092342763264125653654613802331839545281974534599135731749001788666727283056008717957650189297224290570781276368838153924270787831205156799790494190270351874982306888327449358828482329806357503325207199878753609888414990064503640976140289872163825028810753324529895830199213263818894715404679137127856394135700527411397237418277817897177379524258658359898989877389710165160628926304991949113909887004837058632165543602462494599221434464344005329827532512402325582855032061139053557071463854082865000944581521924564961828112611205771958271061763923249948180889009436606413074309362129718898483185126489800878617961014620740385331321853013151085816141524928912026513432971507569088104847293078401474535468696481843040522124778175858813836138768132007460926600400792710380607846704356192498851043312743286609683077898533279516467639241901776215328725658122484036074899809314716182006637840106360593675565593643266986811949272206469712804184711458003007991508805258879541919999660236702759701458315443821368920939119660249376385233965981691718161888510993849399363928666917107642461305741359980924870053590432904142950982924962274558668779879827282056710377073459547003393591138526963121078151185430047950372730768096560025450690704527882284706886036594506263568146146248874871963730463681807791462441497401374298547964251850470334425373443027639406694371759460163905010907756772692171001283874145459953838263302309513962041191844529816196180701590927862099899086470415107793344771132361838720521679688064038049341805968281368502919201349732415405145850593542660614571117632278963732317033560037544166594161516948219119096351372507947713245895151297058335774973550316863396157736489264136704431704738928449982429539904784443962517022462965522477370831953656286755171617241811280419574375262089144944513761555357615383227912293352706968594384355490236857728813531432760412632054412570417551330700164506070942437646030305597701248368316995751209900146455845670929854809307742819804177413376876288541323471859196619367945397104238035067503278623642239244506425193938849022334526869174242782082813863595233066058304884881589129000978093952376277262915806513048288247362381125806692831159536830919837963456131504989051894860239155814559297755475333065074310652429027657434276900931370539591183327733055325026950853487220799435876999765512388463489879504528629180205227363863631259333803128085738624534955107462747009696173121623935466097017898957204422603906655064522543922358572047701911539003143738430882782408829745480846438731346672099477064325391527102849868798930240150525325916053131813689117413851724817339598042987610513765999420945114118565070654866843168510639898116661267826299095678410430603142037901307616340383004054609731674975589065385888178337121720085169402615854500747374930722912190388962441015181738141301319156273170579228663916777669541078327447026518190248586352993881157603913832182774344348960775442864962924415957397725178221304319892103485246966165808684618643450948785222418176128821329696557257620749379021908629616061313591110106731227306705041015905153943355461453879661496289936322776826096019088946593014912634077750468724561491721183368568817157774672349485860320992491916866611838015762564112228071136951028770558324083384845490946876014439612966214494734848094205700252731907486368725783254437343578716055647629549019404139220857583714458436467242007583774631665329281111893164833803512310190323571542437837870292137434128220045111052810262833162118367581592444101461591086011113064859840101005472252523473861314555351471572228462702554731322836269606501091756882466356567649839858674884270807629811904724252682057633458338819663378640032185210437349962487845963942567679506684460213067374660947168334584487803977813387838232796373050251303613818802047014746626902492489834825276419887761620215796371875542958118786681367263820906847195187626083385327056088122018145386781414561437232271260657344995955976926509479854419342881855018969946525063200850590521069082657043641401642358246681491236960415098081630560045905451952444852385041377296618797078564252967579965442497466477338026341964286196221616274906945947441755956507803598980480798484242698256743739906709158204369003830642411024891771955166826352506760112117903364007194199769483770806851621512320138358368332322965191203596617814166625721148751217214116510335300691342757591375894763910691592025633522170672561467497456472031315474609181694321317145032036897629889951628432579430436751314385398637265282607981525915390449401985061427136322077696308795251308175185522931648536644807809508784630019864107591184300236825041251759007030745802874826426263020040265966086045777713341432785728182107232597576093871402735715215509791645507826166480671703463867618251770947619245367020289338697121558249707992474650866722056841358694242027200560806090844911279782906412689613127942985606283065625284675011831175694783052830702515335348332525288146822114269525868358296902947653844235453407673131717134071997047487188343803368440489841536757912391054726415815173749632536285679379337894136805793071415362264403234788463811932067456814036603503400145202615352705023772739805604094809722071033070731025561809769474775969938695325789738887576637142996178201743780777001221613580784935410526077446823406369336807445863513573007724539358010643905854078188072539869195574263150775205605961456177109501689294965023155572079712565763679955695394392006819332729143287723111000435718488678032244547688542491895570272983446369183026497188037738451538983661829227966800534301687996585422611820549984095029177519580310053153445791656390032551476781980510020420221695486289919091564133115747943774481873167526589379881800233759719416704839953862700749620038768548756895011909869753810998095242718319735812481744245724086681915964734091919168723227080603805400263291636766166714802213411301004132580248584668574959557215907379106512518712918316281455141897510738239060874761071409595702195414563699048152393768076316022643468386749094220987499596830362213915380709336635662458984497155844841146803343760135687688900118086305803371300877586882609286577756747536584356263406662867201561761867981339551407700603952986766404607415209111228870467228414061638848145645856729839536178506625123462591788778858998745013804583208395418749215764057812007527043565173170406042163350871171985787598568351016233824940549124546130489768898680278053948092500851312803455989156095706631364229307400783837145891026907886946915193070711978104112887880517398009462159625542885077244392184887295116311748566112012014739431887022941104709841282115262977036701270799682171065192272215776241938768625456820577391802410350924939556720445092533451791784892164827173984431560178941268107307239029966885469403664795622461157799287044724301782637889174707486675350301250875202394435434590045928290883302359634017507561842263433729011710411683995630106975997694489756427110326285559038456965396913886798516738717107120576066335771647763236237310540614403987420395264982363825927183674572567882658102430164214076714748655560357915076417258415436779626572344341935032230169557199255795424927051157155141161450552679798955001355740998186927815879934152122002875737922691309787411901613143637411784392789929767809477754301009634222464864911358866602291801625115659182040285666117304103279948707190851305632627566155610137074281618164632139169605768657064722754279189164068835585514849481798835232732082462241474652857595912166809867156517262619631941102820395317396600844575407854821224603281182706248326636449873744402774572455654343424812530165631149435499583503001152796853983018152714759997224040692580382725710401441690779582062734235944646910834081627656780710564877815248413356533036076471223726223336500369562339647576804912445800498780332043240335681739991376412467521975113459210188555831530254431530319844495725330692276893821941105960648342130998857701270850159892448127573604203991257483450053756854482704111421083540646023819760355878799834237309413377624610832858620232868923899333465685330388051129748448915467423043903006878259352831244482239210131709423083181725574689722385212386163801923880040157224757820465634384687403931472479984765858758245089707902711769946769311571104156825995881500804287193101747436947321018074519482453891995071920316049829520181671137191732785375841912684630977914624578820917679443812855511145253345499048628019830226381497936631338376953564995528214736001250703507063510932283314544475369876040286364922417604387723188579085788561031256994471070656309388107307805391743172995158887881415037844899045955885641805670104734352870730754948509455107181601068851106642269327783710661141591910417326778428870789385788519661952429653452775484125851466663034762686023245007079826913168431383454513853090467338473135901456967630082607985140576730349400696610525676888463752317965140795258627332943328660579398672353303643847350837710604104442898869006706580087826552026344096371453256574242548190282395672675549005629932122087209339533803703968075062330039520079521915443312129908269785926866171317780306111485319266440021644656761998442308140522181707289909955918702292396959480349797652454398201106035449916754913005964768002685872370288996112497703070825424843681800559685000256180998262197382055278315993235776255539917688210296170033344201751929184410587254548130309448132059196912486103685101498970560404311712578439241204378677783142166483876369689041819048774126138467918052124582679589309828798440700395546102985503810355839074524114609367623027914348625705532634219785740753644078285284458858972780347543041759051027436789695894729142652500466998724408322153317049223978322843936423312660513200494089670374236857276159978448966686100197648857998470455134941206319726481383393010243392442638138701261600039905959515524534713678150554853527752048090717177283696042852412936550352858169486025826357259815618694987175527517215319011289665383917045552052815832850615431345695434973636740702739602052684240719343937362420109925376016984940582343590666643627250666579942478625809209469778524289884519956977198907494707717426051531875471156341987007654006348473829551308309720922875450716437085494610140164431445994495562120905493885115180995157743428653108664309682342664601817874538733486726937984662742611574678088962799478890884843559026089509937501257930593125355472389901250885831015559648963384891776577448743206867223879730846612440694135604657219903782267721370915444629652046229948537812882198680896000254846447339397328214840267171244374676240342464709444552802607118829858222417941353504993863984942644011946483657469852833025268343300903095924929491735611937416683332777090386406069883932665124648143838303823267443673275739629829575184984228441372793375185360311678688242101071915313921486189598355003876601834503530779741438009880954105871612265675177412824307654756746811476871416049186531825833689342166338999257649832824467459652926932061218718076371125449896345429088402709429459865922017055788329099283467461029636940451724756265381297287949670910583981616934081509587579094979504606585217436335345767091354993597711057721206904783823162538015012728623146822484024734738639571725024615782850499998737580464584196424606661080590380420882127633018232192275034851177787714408338466581689959567868047745762449720040901361651047029721926138587149692302019273730541809839398072962868449826110296383844855722453562529604477477939462645916542451987682447948278332503379823608346050259785298769725774489997167317240256727001779138056365350937082962022824000270670446192317528922655264673112495183144737697476631300559965535866977112514732171980881717659429780277249912695751859853289103771338449383441164013833940049495457584091543344183575985556007238625025032001218190037178040475460151060994696497587507903651787061130612061762516544990498898411372970790068745169495766058511162038425035127140346960080832635644265973010261877031491666414512886505309821282968755986535038453005181916116097284025687465216374936932344029530089815867994152092436781293229051408205813331343332496651937803001667728674473960640134204841983637513357368719538302759231695099222516756441966610023111113435098997508320584423825493908900547605507890992802133771858269489745470598495849310060986103345014492416014516687531559282586141636539842223769729696185824061343494763789092750268079806980198251272055705410042914557166841139400980937913387906685254488951909216477801742522519934264305279643916765650692471724350242513476532487932433234821652017244188685783079660894966234341598282283257721689294507382343549490936151858110363925932416310984609630311972190279073192203400350297553615046115632969286546271868746813191115982303486987925201349871903075963007260447109835768318171981979677731037650666779695946311181748283128827488622792297253542696371449247171837777545089946371240034870034386606328405461223443668644759520260574784242753625027734133808421320453423868227772858053400803205595012798561252347543982189156578359302934030479226833401170228638722231607106813069328275529137100382470780671801873984327080608443769765355576033351706708141922978119300517681067068494473330646696838046737556008906310367377746817361905694061802561187287681707602599583383752387351783394576257559233201757065308114495375040423464697852889622263113994222197835832058055962603631745601446039806457452048667365763695481749883079233949059622107538529466310253306365182047914071552566802883856063502399724277886901327941972892358276165817755380824851225465760121613171905064397221218762245441016591137070265564694320664272929468597889681551057913411101851970894538141760401467905309398408125568144122329803255745524625587759549860920642649857181543003188757347043860655697736007214284643326610526398291799547667705213031828808739408171028331609513784053131709741545306469658481342705441218526338783063331476652829651898137215517610866866940846837058906182779883795816055784968076156598770475524450791028795301515443388169818082287082224105475566001929678548155018193047527366054985099957978963311495833980489527024056835640634068809151179814444822664382899801755446621090034723614782401510626795411014119931756327776988255857596969181394482482782005377209686593484804683697438947176158524796467770139006229003782146327316302533701774106666265897446268075250313736912201995733857258889638942014943786914051625328100024017383939828103787021833243978446300594785345168221131894379893911164553721471045022561651858965412435161896320644945895674985779282287134814724915536635560011424455489335114673045434266155324726518437320302966859620814148971009018999763161488441749456146856025928572943422352432005786933641847883526373136777011272765413802050810018053941676194304050488395105004050181970829687662078788852884563834058723165116529940223071520211809383151977566839812021289070518054436358184637333842509602170100421725749802869900522163182826337940913044442909368495660304996670570868615610413661889103612065137500558739352535847295598036017392856300396007635828837375445205646944838432592136559453709221894603815473505022682476515728323300696339652707267694724956686078062089770953599346820855198569592998732183006700409304960017132324670384126993252056812193536797044401776971237294766248678151640449678769656297819556202638331874032938389628735376064554068988352147218905968119547188888156471964965396047626760799630921609660794882179530497233574744906934361112868763426284676570402106463328839736692146485105923048589639665809621603981486323313850495326981186171096842152953823583765665321388883069592782505627150832926877365656624368650482343616328662834088492577435014405377178447145899179921551721978577499544974752579031689464251536054900685058808410402709051757157466684943337432552415830928189012915784549397550415358157396739394387172584817623674827690874071172545468378895871101444528594642418494645707456064929696347215779677577675781326425656856180619128460787463503656760427787054855282982751533509810256603020925308379880658691524029445939607435953269550486598969326258993368458604478350359167481962312674442259081498577278097272344173562347751847000971064385967320006623101871778745365008755293131203014650895509072595569606511402345625837980147060614015462987850291924009816665344424240436973709967820537861659551633622277253717488688544016284445249335030893289557947787907078043697303332799901773233192713696550357682162419228279028644128684857329119144789239409373610763806313718136145041438726900172856691237301052683037578927752770030893836688205087305665939198483289272200788294373333519209830888861356781616065505489998021707317084235161343729129156030877790513676631815118541194735239640325780184881729353617952451020713616132200830388107903977592409815491722601071545550496631857844145480867894801579224575475287913902200415119062505116438404603433492707424592133324348288393590465385684017424818620822044291430148348383981572608149394139958914370996756802323760004594811113030442901856307239053720988863543272274692226860032842210849460877688983830783715498784958299241132426864264853682264205744999505310510235736899358460764253087638170945164002975023726819313682419537829260061239597092248701040590034073967099902118860085462942150149208691057114225143598717519383525124618469856168319593632202136842959862058925985989902578438950183219035707893374026222284937829172786701290317957415831372953923306189534018890357158049056188852474673924633642573776038857837564279656429089653600763133666564384771001337217395737880433684773308229744017847260055484886192929847764562242138359322100017460434058464352033621230683687942104971418474313681811132933951226688046924677434951822600090795768694900891952739943295071878185358727311386790563946784680011547933598852917237247537776257028876090900127176918413474649641048346005780840287766380342330876552606855558310681615391229911198984144142306760054039992994107555457200492982680218295806033546168658905897952963843872833583123860581542865713660780454357806230054413049163193290241211926581970629047493519073786576662830244205269118095208025491018650116620564558712616959232487098628823034299027604308422716038102122283792291900849905798613729848019574877846475034353095989524137898818252423556511274434555670767920200563557395503206847815828505978681863446447186263963302415086254176924646781780474435176342754646630468225894334743625595009035762468686404333715167463712737582428758680929131241411689815803436770819745328811526094244601734815713975287043219073283355400595926113969657278156791066210421204604171097472541665667744177020968169553359596479873442308929339920993324035007552037761822781177787525117872689820925121209281866554743905552739268702322618207544027192661443553088780779771535353720553027208994599368437968152105893734997141189214990823750812542657719387968145672376625009932709276106815295786901919826049140141423809160450406056147100173783039398433936843827357521802948762467741804592559990126336133289949087258789150701252807658209470986456049001699657591903892221101550836657096526830491195414643621475251832490689209705045311572185843641617669601619874047487733980173679481224477916571313246688583231764581511305618451839122479863993176807678563616061794845095285139570442226562899892325191754230438157172446896515933906703272339822250024546881739444189512266898479039601000885816862958118336294217621659372145789731256723263380000917577462275241824039715227054835765943686799099016311966540252669834740981339283712526343019592380069154228992763085589778556567003583279824125874982159880419685975071984558756184916940721423735727874589975748126037805412746871170496583974214694020231350664706686401728545267833191236632557606287324421469000790055416935562719778485211229163764462385519650416942492723298242986052468261164669844750536537206202486388545227078635355132476923723061211244683134891743743477064724771914232751189070051728412065851299182545470584939558146609483868316090966273726189227509270410517693927208538722489894094587755124507631487225938905399069385478055064519840870226234380032110780408799435050262704967834711133102243066331113350117731583627077567269081222759555356847997839939975957419000699369644445162578695035247757515972746091224390341220053530638231344778247887072801954340683022054684565681740104476134502399096633709297537456822061603801190880327777392200683473542764798040768023691018544696965768928339082197939635343880571686486705814378198710297110446625608469788900376664405779383362358420534309055127346209298005879313324457299148225812509649813088183233479889563827310211629205981392215488030169658505600399246281306570932279599297463885870175221713225083474410573555386147814050579132945792480607578064751802142701152551755951499060394149905967018348506981025934080493559930148598422043681653824018400273308336802981906895640605750763870843322820679600655590694218826569771918506230716495583273592492284880221748604823636273620329694249887942999249916243467672981323790718130723830558943806619380809254754711897984210881430783885447976183126909710202690475193642235697810723845403741255886357109246256676867662388355000851091655377377816378248353756361853612388129268338988637568725876811492045921926115440369384017940836563986430602697316204130579877234893459704010068712749115048120232808156056873244455245377145513705442624704323503806414847280422225554894468923768369009173257002394747509877175498469607112362905320024631782506367251235505668502398264230617690588321929592044765860326944951706087500282069199389299711871268544921509622150816464218698283398211302018645880036867103316342727955827885936482856558949956952489543620401311900965540581361938582310894321730695192701860642694746870197129405917048683290413722039780534172058889653840803259928534289493083275392764791481060478547128489885813360212369696520845076649500676346453405545233358641806297845630039103346736133132594137830036545849771782946814915472135348920035428985093485420191713635199514897786889854953454473716372923070797470247281507691213074590716908498802867976401316124490066713155601005120904739264519860560297774840103501431317095649254720091852060861274990900957960381098198233749922237557628752431470637776177786818671460065473328306407911699627590562928360050634646282919711025099017979259841874089083177313968833425608643658701103233512231283663105311723174495916697021963673787723619094732767477402455942848389021559651489039106748124186338675943236984504586320837776714282078695258100011159815955958155849521370792183921554888381526752676792746196754718125755161941839265338500019360798410474481006038393328285881653415377101500045541640195736656072098968719170110739424120156012907100889000545923181974165768986931642040416029683056874511262976914526482425584888111115644017503595796222292537499163107163385509765141625962427970116785462948694189784333987375512307278642025270395951284520950155565274167874697709867415105308074774866594504625269753139696190709781505806716470869196582330578143297691713530954360265910986291957084614070541643891421827976286807435841842589700483272406629420533694215609385534674117959241060889124034275209760281641405923592301288208467277940114705241894248136480032241254346645162060488416628079168133915396266120433401550979674694064803908357804420409355868891148103926509470777540617474324329431885938220685446603604673634634784450035145740631872604778427891385003393108261867436272463049798928137896358114477979796566883088722602819108106504048553963398684253228041929799867412332714591679626793722976978959688617116959821035834426196139599142889186773810293092497020508990633072288448330015212109974054345843282045663762470300357331609355201301512340703867571098413066801961391137572196664233010058121995663574495434891198526179202585442070611325874085958096705135862897084310204817406220027871149157193388065319824868466005013055884317498534175067003621679703930257132805317216037802867733866203364108954441111023966776296430245217970764942168259866999015895957633885278904993709151669038577915823418922359260051905487979867891884896320523602407939475946113505318659167041355444864937926636740805414352195786558133963883483844107062795775271568941374432071678643636152662154248152999491512705869570385335433627152531055920990178215835726201073614395589478191081280995275379767986942490809459376576015264865626861261159190460633152257343901489147462522207913361263289547273663704443148137121899448853065046136009081385688115573089788188049876343918943679393643749829239295140869076030583370594376103413755147940696473656069884410349656964713558908508767373417581441280188530504277268786198271313233211583907764783555265094980903190377449720962383066170995468950019566882631670396434642290071339998668405736984522893894736032487342824685542787068866959351342480658691109146160122140022855685529177548365786954616491788700146367825578357709269046539483106299594611377313436106000648721123389412630304380729262302498664162241913513080666824812238460972143918352681615127868814637446737208436345673641158759615112429109763837396266682987485311509921489930848478006866093589143504130305010303115696690187724618512637084713933622195306002515342433731734929996972970523611932760280465454802588348786615722526668204987367870992986504109118792258292619735613897536463117155925383818365424427372552990753484826922480052218059071851229791554135642771050841647042286794745636645671790644875487866036135738326831180193353485936138620431499444831990444378610667655716001037191557340780388318544823284288259283141025929952871865290971944123883532806615980040467765599745911284604891426634009793679797556914505247199680761231792459831206754767313428148429002992932308595874221691564250015452490023756434968982108019955854842946876483770753723943540985504315253915231692411988643531553437583808346467291474570585714377350484676009226779938505914060070578829126600111496810439433324168174041266752698018079224340992746414260953275101378994547602372229648553164459815733856890836947854843243000596686295903564512064708836044468593831086176126253550271926028650842823013251702922413811241455525800036257843348485895365914992656638106364024295621001556100273886830474051725194711621590873594059375331914160353750999047261596430458129451985358540603518530642388051269570211431046595668223383382818425380367284861874637156333331936642871427302437307336925476146250191257693399384254978338728294732966463029675400650819882316510979418491271463664036327636900404530806265072896827976273654858205262845059752629499648569359385664505080276556829235667551162209098554116597730054902030261801422883504148349528877272745787092864210050817243439660959919184345199352359887154657325606494412724329623887708974457661233345119011390797235557237669092502236208696399711820287471857216157515261668474908843073487699804142321414243126478891036936908285700380826673566718451415345249102391296595859995279434367419476204296895126069327936037664267319932157319691024749763829431065746799703315297785599664048866793213486255269218422689115680898682611531551006199463470597511056883325017399301946133866514076046880660456970990502765082540250894223051392761926387872068258341820846886632848198943741581858088928258533062664203799797828578638401963189338796910169365636290343116628304150526193535896074631419554987423441976275141469556983217541850337971036725122876874452942303344903898601823255732038201610435588978428636312188454150642159206857446400677784997403757436126996129115830791052099120968096771391845847449007685477112785533818877965199485354853140763424757905954769589943650669242902098253478101752167555693997566065327839250671857550483102559785826927289745868203851253925648789970673484515729119790884192518463437584927395309421982110250357163167738800962979580279863651035092610027167983827218275282179003641385838117383747652202624269217586994636176164475382015178458187088000889995440041855861251661130140907647643915304809363798585037309646403109277329385352677944095144152132621009572670490043759676417750002661875782258272726296748922822566293060433745557196876151968415974464415197075038574794257423791088247435058408594683881159557799206485235711892170068008941590971689713971999250993702002186232560976448863913785957167894378014620330853204473874928853484344241697516930727731908202398105601016563823776154987081292292501333805024653704825445448702052328753378737072908799979075580770858796344180777112721001117042568135044057827222450602671981677296935857015335595515220289622573229624036323899406569034153821215260950794378216935709194111829395711154178947570269134849787849133789653516860817053791449064781616488902994123868277492231542698912291148031494348730349617543137779240584243733401070416191009927934397808344154417296533005520210822345919406332330864763659552744067966509337831857342829534396098169055293535667884147844628668574710804612028794226630081099985317736764188891624707684272781380026467964018904166614197024210683165021125672060035956259314539108677534991095620678733689388035761750151518354064925972148718006306438549346449383856149982891600878656780202506788708370300241549260217137901164755255397193315254208539363851571469980282236983699916852320266968392821851753865702421149912587575357604037783287336594823627869504956509062856827330323462648194427294518953100317299015421806867146533406169325804053326008279074436534913238546127653576058679979686285705450263372893744026436666130655544220327531694180449409709969639088282979518535078508107422630434661599703383419801126315590406341699579138629530749116889747356305019545389977808793436987265175783944838488988306145383045021871828853232957384210504268019906083266757666003603019150367407003910555068020884437950603627479115059671029020819069253497749831615685872334436790777276540749870428683993150121295084890745311483320659820635139057145627693743813752153037546228759487446480784159905090110526029542234988784701250786195010469350129088814166863653314050727883178290840177537466318091758650731845306254021931796250049647254720042935326089834684952579521120783028219620064740863928443760669001247861329921920904752356744991321310881275179621033038991125255737416250557789287109781535962571274769790279654836411208571875064930682877395588780275622664075817545561833593148487611390438038772738489508773659253255675800843839003996780084575558381760191773420852617084357914400015130910900492094957817082798351587575748815700333315083445826469209839689109838085389371599625922399229075268735156203681066632332696745180516513056317801814784843606226038219431634949730466571933674210622053134653775752469457494971670593415325668322510300338802787756614939564074103948487524083885581663426298746940896612900913676916807742644939415050624936627440231499645212090341837823402071877292142729760028162050952151012691683791209110503707163677323571067982277462651676630954455037808768685599225340589298516567320553546340491399501573102709471274520447876236879157738983277539871994188798664992963548280959101277656972124783979107037300768180763333087129572135505003116302460675149093860237159511778110029234101196114733992842625115344694632404658670249058283056700056942585930366333321466738699953192344472953079416439983275722910736538506924221874518860764105111791627255834894566477584021476268422482080405075703664394962958732144995523477613042032870650203276418770158351671930078798731981770295876431758190916555477449340968675412580085302849115659058029289577953116594900552571331085738812938052641170025590212622630165819216285930692285180864443746482411277851516745305859583824894164617180875055691064884941771044095077768239032822397599839978403740474182393608179267445341339737725886215744342097984183630572435298421805805734541051989800983248171065935497720142991530456842504252389537966588987514745030141413087438635474479506892419275828256989272427080256542109910586252279925490255248461879777686793886575377384649883246397614030434051665637345391255126866741760468866132290006771324124179572272288629815838902036260613298863161265338433523501378565494983709692770145544084117121863529083635103987672088574157777520529920106461391485751002284217214429029578508333003058131045214620063391797622244186480588031566935336340148463636171611842241859994299673893666127067809691591547533120956681837468760889741636095841314718107235805396349676197461595263599364043980731922491500876373371269385833466335301253643007983556793770945360756659800344387778273933933136666884480716011949318947474468166059296274452345234038845323174170050273847920774454814940877762722767806799355587137118915765782165214150539128258107227229274524657573673697232849264068176025244480670982830302613268328907093244917592228047899673212313053704613636473809436188308498977512636431224216236434458869981471226117506247592896283795662263251564062112336395402738256832842226633543977211261889792635178169861039480525329546597662518049480033548086800400789818689112059710694151734449665749259016658833719796685560997353461008762774298926204884917668133658226564622626396483008293521109713398505403819466444174361382010627460245822051239514220340056237730039093550978577197832473933010891191448257690930186450174119382759880302641327255361853549582082008225386052151976676760275884966904128775435467139602842357417144677841661963959736840698666713923278608737357953045453983099486711256079345133863788218122823492763679927112557539397320701982179429060489466665285527026392039749430151708444863455628607206659732609482926855375183826893102094433042856321702255235424567962150193646164731764789685930934279442640478910574630785012586581862312857236558963219110910958534484481989825025212006622404858889452846679138415292581375740652690062250849626329254034195801115064677241478141520215037590087721490725420167612571164359050242214120128611904154912822152593113722978458679810736186946744514271013599032080510988091313097345956169019716599639956822634786408056278089862112916390227400351391582333061295289795579080965932981591263033112358216022395709852877415226236454102065690880826511819306996033312373096292124803356828054033513656664000911840628735965214438259400972634807721687702040060021674698382513169448047389493027623877325078368473527688695495915966073456227557505370413882588348535783784760140037781499141671844996832897596805540522733202100956450426063337026926038822362838576149682163009392994638284492721369550683195005960661018857711730898060645533624583317617104136793648336782181487311438208863257350063834436780817883508450069506514100078712209391383820163193895625083198150146633596901057703990098793175844055630958539814736625842013057561419898415572270117818546163790477389713823753557591172622054417476763648761231347569176283184183852419166952648584496387596771562429402166929913537186257729703399770232299094670799673578452590873068220539353569547811714599500184546299317998456023363094602831645505189093145518635962171037088705121648981794196098358187957609380701121880044282378448331083294389247071735672787150707105727607517499996334087768609014097561396593080539709845864472530028763955965357712908651007777778682740809125372040484466603321953460753725276095646326237536956004726629077646304750492336976919606322446232734262824143676827139646566530988244310860363024507295477330419713983093137358172420403057949477786411782316128214030565690129775058421574451490887040167595481774344409903232522612470190513915624639490328543398826576333546534061170308000347927176477468047891289181998394542534009327667765796513996249719547463401325001324144461644658744613576051957624391813138626869636551769541394350115545277048614382728325767843270083496353305488435066793881125351193333676454054348899404935867860619464249257688707725561394091061421923975882368281311161601424707670216197022014764401699481176206524849616593940085881691495817756212411856237199629052128412907366046088862382604425996626787899514615953206708616368726451581028629462114270321052476959553665856510434177838835447608150903897266474727100222161218360078423577662709908757839666036308870408035683278578158636999554475494483002332011019032196063014783876880951112243128427520880553495310516390145675347778222938214768880917601642620136594068305081347648966538805966642293864591916214266821031160655748227655995147374800761255118489487001481674421508500751282141795875719360692105854088223620503878756789240768235542865580087889286644190464812014950676349022124208636242964714776912867032974879056814356840153823302778586758299385568276340691132208301529997851938370986791702741672318080294210952522000212681865061869705430433640769420482036027519541867691237812267837043140364765425132976898449010544674523487988167192295719470001898657032670057079417374419394616149221474783413086297233168970442068383182084372455833661305128588007005658536482151020224092581234388959689944343395947975096801251109568484507667366234460282771313625728742051267265665233042802092456568051082397900830695226143701521568554262300712401774341705654420043597677949834315377441350367966727282282173046506375796660938794120748514682871245179351906580855964864787952867136659489197819681352255288655548548141629295967638996138632993903385593888047469495384211146053086110298601562802183135851039341854674666243781339471563221282670231474115920098885385236026642553841143858212969293611924952003488566669389288241724583960875676781586637945801492475803830069594252864259393882473771196881591953203160950940930403015205760357840067561807817217135829595394351039467354224662835879137961267870031656723579810961889062282094042893198745715270342575644689921359396104137535555521449514085244912855000410325123097676592736550328422936637506525444928904344685662453122586221236687895680571395236932410020880895647455710315085111713234962875995965218635315877178887953649923797970832618555657420487774359885949438312890089012159011897899693777215932182146919921304125946773259814225671252017290494288114062543603352517579781384204171906151060645250925914078891232278965617883588064136930890513033074394370888829522912380650636743236015585078933171412310351452643153685595787224437100218350854286323721695718674856311043291159513192872097074021208165283407084797594254292308628294588151156026241645336642132622785293353747225287388998753094471544805646719009403465371559668781171076723602182846158820438859060446745593694455483904077144884642110944015492770854843295998977842387620084434113708662779089433312329036575813287777771630937056036776497089246204961506102087451811079320153170247003984192926171542649774691118532145611084358105257924863712133999942723137368807062967633266594376883996684197994512573186272771283597777059398214029319585225676114009586165600947249616463798203766939401802634523697752482529182225440523185114120894787542150998721286696039793037942527027737080926660345345228568876022365828360949008447397881397779277916074725219893665534180036409558299655061045947176696813248413757338771557813820212839991734459621774457029109282350382876120280240413176902390976475155927980660855414916848117179701962494251287644574721378641397723007437317667707336497864250932855027746515234818264450088165113358795485046115679996402815533309489167847600024960827419979915862421882166603026710547254171363536177848380557660964585228234089887172563611946443494751025528722831110900552964155445519292377382437474365343140969647094191075149718065109469665493393024803517304080624333346492559203260266312057352452844830811163192394352795759666514311471894951745377038785546826007193586654035023453630171569494891231501488236776660646957426380296147138061253369031402538040817471562913929752651161060193238156260816215599896106732960609104625603391444895145356072899872425541069515593994546632545347944050604927117673982338072539803105310246883560023030259760397775662484692396353445383452524602427862761425040601232142473654606496305252947554047412287912326782797220922805743441024424967059559069740544005428923983145479926595689573669185545456439224128571081164488544580332470269903900746201877841936054050432806670486438743614020510669804568778878935899864210524294242938790441646080655109572528814164508203696585611303016667830601987726322809451068552965865012216479825088112436796063746893226670115935295949997613886749901696266366591565126606541373854832033220829914170217194909551244090582298353963522372299370282882458644467222089274469598270812604640907635206151630201224095172754868933963034865508900490009092023790350301536265641032780851266166503675679357281550238282443060223004133712956756041347876690214681128163629606688459897029969361105583852997203456028726549811109592159459113089463608324973032125956919055599346422537400127288522542318596125614878088371816506997365286686203563224050417096905398290699439667923426157993265870615002266327360349007640352591936587214591688504250095586281128700457906898671490546106612300833900800572657850064356629726687199757938282930405402326706867467632069726840418787811514639532927474957883718681598396998834304288356210990703770173557223554317019060305924726686868695530780391743256448451817664370982875401857636732018805163252275370361872501641027358025055952364825869395865174839023499628811660574464948896761656970094845285882342944097953092898737867996408200654555409221400425251250706091166532347401309381878660854201829184545643776391114183333891751165561807277638359465063231396850145532057852048738935326696606183081679794264138032607196272884451720298519714490576600596622846184802945580344643319943612682850671018717519364874703313397806396412642692295388030465533698805725283170705463715582259448835423620789090883512214413309903740671978661125012940339688677653967072792914432314824842286710637592864250971534959489270178411882366277791545515111506827326558956882540748774854862283224032845644794987300090185784025840257112107985210138863083652419284265579034403737286954345773656902888682430219504846135185460534436060549493358868908798748116535396289293123739856770434411786520133122561277113428011129991553662408228494514754181332404598143703249937866385637737993664384449274476468849306279010976994041121072478590707366084673289925817337984182963140132308120262844799119175971626229985331177842754825131860082395592822012703699293380285016688035609227777388912752698755385009856197605633087051856702700369355559731264189996271226228803950382132485777968926001665929243712890949382310935624350582296873265874235639614103634900706170127224052799534981104710716051123583989549248632977719730850912587631278137898870537108708899827314481615096221436920335778297318015361121183505503308460655219467332604655283014057158353107948370084543807017933461664396681273359551669786559645597915537828451772725999428934316563383985874525921208479550868490444765051019963855715871519270968553992099967179672669362677353149810106142515692172847067520950232786397257290231373381914666748897091538511854298815544441292338778159262692160463060529689998810554727678766247504684274291807004497558711695268990100948772775954774149286794906362707290213718956929569735463020105485404939205111881711823842195481031585971612356490397104302132750680231819646514008550382869202337266368641534101091133950537006348154324908354426912430765111506820903330687997691101956647939255094704285297926305311653851447039703625064290792059886024226212107443564269167637684003110681940028687081687519303630188191580662749169212137096524297353804210325920286742478236275742502868572801052971485585992032783653528591777243529016357216623524103103963338293066115437652034013768319782338699117844299954240028396265189800742738173307287693353798517498645151277755435420911230752655923400485783254195554863530540650731178684786001632863364532949310586695234520113477252746470650433300820247897795263224055205151294330147755317080618559047125931642491453825360946158626773174704071839447763420172442743951002273129097155261018457292813453714649947342293560024254081401017858897957828034234651605702891706224381864987787852087144765677116318703501475563109562714515101182097918033628973806938737074535952759102093917294918396219194933070047898616905892820806441169956455677592247396924283644520230003450656475779289765325707253283005715439544930269489719301806500246410651679746951512228421912370369842771360114462028973456080546834399284456391425909698497115294034489647352879836095437635770684209928149917691388397205318877366434624964002954421134774907240399954266530922161627859186401830562122045318672412536505669061527774703772955028966546169611277888960050705725320643309564886889297423457362230872461953849709990823640331184979653799955559425877667003192289011072939254645879735626749226796995646495535552458663447286650546281503312956227847142572156902493968071109406572641247556764167960026421066888606432832918302796801906428060270619132414201063561669506135026569749032067129227945967213728276667519094082702152499501167295690516894749102463788541852958521776405877569874425369464075948275373972929420313706846464935287879519165717093340995542228802205658461068648812412843075318706346588694541344410356963692086578005782037363844225464185779524751925236725630043848427788991578756355472429005321695127895923460005331297802200031516892366509301254596101390072669530252249901535819791477720809607606048782819213456773952801138492617467515411290929386079835514106200557035924435144991813679215058983675718956419657742727922313690229322965282222222751898951570840792365474987114177437931878078523510904726441895420062354196704976178108585058126542630747783883595440843335111579465684290562615020261433466428851270451774498830209991492146656682626190442611770265146944608802147328380752019464924195222218486178391544025186291662991462562216271391031068815299325255808821406029049533208289047242490178863278547223464126780880009232840891163761011558759236213025620619264851736840764055439758341892400822306331441578372671451884818877818356236024109627984459149829226431600931166079337748642117179953758320344057353671300029890397022950445846497085066180201107421924714594121047725897193426315735150718984043071558470634531765796465118806151263855555736810444303775506381253299044346997954846077141922836346856565454911924876228142733457118531004406234918723875692425479273772564458268100713037698183642286236200748480265688868408890227974499366107370106954459665155236999441374537678050404288009305453064489328688565475498934585690423787394533514194664557674642782588747784869168691120493901299619803910230792907189879137600808294544972428551376600296215634701568674023761291966884964060312336208696902492398335493550058473419078652218888959030439437400855275236948946548987071085931993439065679173686898308041450036636975794641782567118423460368603015999664724904599448595856502218497740096061443971755443977220229940843878990847941398284718123834689172545854503442265348541796752900398639113991772894801005825175896390624335830517072520725639730855407361639869848011646949189416750164330980008457030301401920203925814861735363022612613909389078404383321726421817495077800269951188627542350900471447238152306278162259582627237928724150324477817837477247542708866850643795241146525336692028173844913570457677833994623994753645645708999604240112397375173767078661262494615960255419591607540538964322956456396937725816872652899327503747755370976477550002750704159580362283570238354285942252881174773571797217456143906399201177764218364817295965143731417132341799149689665933107902652663606816509585155671077269070154568562165773557858206342868446998422666472332894239615022154069276333289868583676784127200535025433987418513892862797629417554164655384251584995067483163915214317592564937339427643087610406821880033324500819849781590601640337882155481555427007214848591602306142735443192437145288289527990976738499378957294154528551583904907663915793453150485830557976341087074698756164834581029506769227589963886662228545022614977027740906245568850723960635561563961329295210170252259102765096224850674497605214096567330828815878062148214858941670812827326591901867134352965048144807483151747849696266781825154049261555868869391796513327740014865259539388759300662833645989337865806986996622926860795934791525918694606371824136941782058325424556686983357836665100025224197019633775673224932855074655741600988730611886630273215349378213486331972659976595993875915648750091760233862427658409862605642812365152064958589225933294012824282435488019721730516734934645024494197224355660559665672769516736881167204732038891424269979109662992995743264589724105151613435897953658404631324630924880134021777832551146095163461611076429369778355794085053080124929534615555870255323105505955322915134299698777372967281343497161768247490117020404707371246881286646994234673767529628953268608576673482191767966993998281831541534003388759527761319336690454272164212989154980923695723744257229933832350329405592663023111998204324797939882977845307184838520517259778061571651047179469233526384017682942876681823696511045819740823575548540374822034881044804236363227483708852972872318050881156599268845555970751895297314294443021167852005207627310334735518848039510045191577758011798710459945090815819652276958521830961201285148599362426054272621248698992628139240261287917280989493554965051626382039717729166150054350721197510691019471155983664542720963563413686113711597501204697457364838530851996919184249278544206090277604919848373409717338148613490772533102746527433784613100222102414203031842948854480528747148521982303476366617207323123102663182286126217187589994663555180181330601785597557955419630383330852216962958354918296761147891037940500062924060059517469319177089560114420943543383785447593224813275850967478890941573644662401018772174098406529291612894697269782531149267068534427221459984898059089419601090117494946542904466322308963664420135191591719553516970985503976672005768212212994065687719061276676355689553032535735849909314002965421674699574505973123415366334961631408983215354900267768192902083346588104124334135173036975639171762658173580621661898728943518950846372542968858783812939985659103117052304532283725418119448330485304452726278602030228009798852327660552393693341454425196790807197103556980970750253344777323097365579897390574399650178806920080527394576769539171889501083977747669005031928988324864473355693198788626871695152296739267577587326192342120414267537397038024546296126448197119305969608616042167018034289283179749086173801356578918398352170737664955438677520825258962416892139105922141750569914863506674071159533347732190169912799021891488861675296663618912587766311527225286629187494390738201829411680267514919488901886181970337607294162012006118933539899575535996819404460436242199235194689048972247630356673868041063699882580884197042644779796890574815433685861594006700604248876538157548097375405108366591716667725972840030161790248218074560567794909577660899631482259552708460487248608139187372858718869241662138947670082504053836295409595999572551900614491465683458889667646177193053339766323328850528115652821004054400880439652346407201673669273183820094508652048676863383310405734009938878986773261336613334617933385558149879353852954375299590843800268991501173751179589061147850192541869548094588335074950953755162745896651288122009763815752477835923748503215810716467003083068440716448309314671949964813309185148988928430780031638734386171716144946237339278492045615387258452183573528765600820052209805844392217478337478858509722699937860879348450142713438729558613148020079169898029416043357292726721668025325759285598008090752029490915761603730428644915376236820591448398309601229944234279982509780286598249554909910416451341985282703086225240606356456957354833643878508093163250002260403956160148692303532064589209138126620595980329778343525995276642700514281685277856835942521925500990630133873896788818267084284011076116658366945242369514006246760347863833333444185095630453160873694233575219023900517332998385222806830017331709084764553333601161443255696716959566241313321336670920215813917719040165050338270399443506496473164318793926812962432988659087700310142216538007540521817633789782336685662137229212747424708171088182840184660586643368251519603428387630845903978874312435054973381541681822002748985510614954182692439282915168978162652039541596355385646042247958343487409539566892136487439210003722934897482073243832799385082620878006298426351113540100312338153244854353336889806624769606105318725885021340420895785436683053061029809942230012802106243113205983888709581557975413700927285543022364889929609278360481238579026462287191297351143177758787013558896912374273468593792043743649860625348968545025344115792409321652570294985903578849657346689794181906705408063958631881506641527314682778654628735331664295262077330429135381245277718825156708280233614234628890656629162123838744547756418413237977315618959453554724511892121388201591892829402046813372882437305703674653992219594624148594585198619722358277569814358349493447867546823251919262437596737470551704306772745518853971644743156107516609521451066436545199339351072602049744804003874697731000159964112061987459910239042759415526766837079918616704640304426688982444543150720088810814998683769440363089131179888132140909195695243166676208114529274565029080758476651793903446451658063049999368923410127975454863066034266042133826188128237413155437062280228021109360982254681794128991409553443391414438878693650197723061505372872237348886977121481920487291297432087757970484549956009448907406031754046368572059166522555952294604482853268788673394727220307831627686717345247226283473714845493064035302004548148337713774677106632190364909194917111347976549053574342934429229978996994338197591662409895380889887252378626894991786147529732428679884307248669409519914082369020467799138107759042911909236802418967543697165498001496346776335890665702445332867196519965846927469858485387827006524024542678241595169758627894945225153370377480068943168124079597593979736003446527978098421597446320465108929828531918210502351219700138560779522445857177783651359711577310966296729782336884394166543724789376058072293558935408730030177025417267061684804030222727503045377246933099518450969969072329177047792804089127925694149034494145661902495837440857081466392460134656587339725205948351370329317051676390165382388967513313016856407499865995632686648918671526762059638417013822892962445586920866817614709651706532853420577035874786434499129822384292651221527693441240212329883077743394825159663111430888619553724261011485449820905682810319804517152621890870624455952024824326833280218705634634260042535221175475167163922074426637160475788353159722573745155458921383201876327918420814920769276947876078146503377161042857084265911515762334857892649571903930670630329653132173126141761516586061208720155141037588964938135965744095494179084636116453382631080561768336304186420417554674246213696878369826965230663284654391426885163820696814259866603360543895285235220533086512213450355860916564860289728844803905524099606700801416191946648817976249028960205619632482807695108479742300860110804437005206265815447592377918214763058995114389594826482929131871490094588022523910959585572676047677519328341800041063439627662256595718262476754672890584767070619150123158533228390667283112906920925755525742196808381299465618339926540409411264428519932576192095319402574009176816256424820847008154947253159704753410068587389127846517673352699302714478532372751745517842507119478631559188850575277126836059572294560767632907406605218605370219966395887296463224932831422549971800485868112154929917111572303621126484843544170627890099716030804910930250692579084010963042392181959744729592976022016723887552943276968088216795195225972632467188369900157118273895577736177618338379326956369410956695595953085055067149106440829155391468932854911635392126886254286316484350250873248102149339108602003922207964307831747953386201472681920454299624030836421460731494227823050453580711219937560897402621406073339924454651844759329852246253993694889143586465648739851350433325841743458363399016034157177002284544845446331361490553703030885265860057756248366057615103241999326277712952695119974437769570568391429394306254692522621112873093528600378447946475277751954826287685295863459815621724575250938971868574125209516862199030484010238962123063583122675952473047827018387062273813305516044028745611095839152037445040719263434221241614174998547581311247480328625180667957455841131580701418056328759627371372829094033767399711068572877211375382241784214078648272359084499463489345926218103166185227013944350165238573112874317919197823188085395061392917308460177274432461592399039254022749340627001236523943627931811348510295710971072922651692055486744515551041271987521058765241942914265013777158277824471996002733382085460284894309297544628864440180537501747170282369455359038587720705461968793327095302475844156270374191507033116251196849459756421317397059019705995656449850744029140886670231263846896205640262069895485567743870207692306349280885009692115811215113210951493642491365975183148611951304644702827694858583919394950213525146291618616305349588753295249998656303713619137010450538005407093267792411271181116770094803072527413478200465979674338241759348260606820952503478106356582580502003846396796671530004510169875324696098209148859340170942139189280409189995375220364790761481656856908820850678974243921014819736551747580991798172266258914604077899350658983553980645875497994336977088547178593432718531177995341719485383524004781049755711191693413763642175877202837016336251379505044462115806708719276696769690146279624572261963426641135721751469226151556990799872715274301946398816680144090399096318808274032806430927876085434231081594087672663753129362735411710490763577169732020864827557978402127526654601231452632351081424450048808615474549218119546527181284648808369141830602649251455027512069992278824484470176603641718903398456094785139235877565633272247325200739416377269307008507178077025633139152764143290900347642991706949776537154410342801011554064037131892850970577977259988980669616726845011033299893478599825719181253288191050133637762491713811397785801210387492899043489976860522000585766135619393429162086847762783242419306807553628067894103685535223449377165960451195194960852985422113076158109124121788716962533674454707959412187281595409171200849910365915227760944755168450059852451576417035254461374621009423980549748740672127149739736488852224588428682529424413649574718461189182508527833854568481813209057805174487885735791336561457961279273182629547165285811422780474075606323895716133176169841924948275164441644399485734390275940546389672240608123914391318060767866272608411103227530568329760968944189106426208196607657952854580923746552756323993944035254137796254504457151548635093436658502951757333793724143558444145502665529102097392888703542969072016784959714596826691732478452878989181334507017167176563648739914679829432862775360996185844707163895117606199614495613615332018542844094110066538971592610594574410259124106276570499136020331877944030517193347565042850582733583199820761699180187771240071005202364748624813882223885330694847241023140967289876049331787944011577778134955427856377083224203782363609398887666832798662194789488756376579537823034986540913850610892956936631458539215506322446970715095391553593319497029962424361929842599788306875501801863080843548119862908719381923016632579327699339519365945043671915956337621071336429955094579044776895659365852115584183743439932678996754743872585733098983241755259440085443751516595003656480865687137882769225815600612629191566758164968193243658673650604926503270505154702880315371239471408869552503344044326333748749922943912341115999987646362989146626978852676971315410032396795875388190359209903916786477862307847177698024806885273453044593269202312460131015882151424343590628016773865329002273025139505854323408322669532105542817200220334997284126387150567834698292572006904562567302764127406644768320444638091523568921784365581420829963586842697849023169734618411114097702039080158315383084485493195056768139790545992640588727663794110659811099597558196166837067277125146781399815951723769903859076184344515299287783106638664795874165777228528429160000411065550598461549841701283888227368966072272595476673200743779392554146185076803318509731457026158228757908608463789785531757161501873809035987275486887295319054600558397393230913765135107847512678627737589405008693834364739109838476394413342750607419989068201661983754733846308483064433223152046843793917192948847091027299909594787372256032440163127399864699126449147870291972903471194677151198234982078295505534662536832240122098618487451795662485526131208771985276899988770695128093147498827888715169799327094280014112602963018010892568338732413460438447760024431594673233558606427982567340347616619893261080671886341253264035786230412411667162356652105959296690868114291836004395682204413070593063623392257592095559987020431347669556773133665139603306172378655754617541146762762125414973713129556686132868586865429149733741898300134018918295027949620849658666352217667058099420619269770340678101554876981237874699745033713647242431421031847722125031796296052170768856261393568568767255380662973913052916188229608258585912791430594313783701493226000104091849163938229120210950699241336652578586744601695484815293172301683310297126771397473887943096733009290839390878518621699830032548115910893868991668334001106596737962060609073433591780642594882790931017389498573748970558894838003885207208857126176221459133535513571214642299559122122034968037731448364143083146921619361298149612912280129133402898336347803643243479726151508959479065806717855423904906959537304141682549176302038529333299585726336363333775870557168589723296033081537332506860915060877205263294454958099522127368101343855491624092085194656527245671151332631072227554531311444108747685723567780217620435614591051549450403930011280698048883678888527839477818990535490608507554878951878711352303166888136090237237339303275917768737379160833326963061785822518228732380273859903741866562069083563598560810412903541536650377368133477831927122908217524868773777521557829261311870546023819947907228961927205441170757074200472299542436334408921979230546824981240142539325788239053329011206032167822547185619105503456728074898763877922035092370213964339328830792788742990813868670106849028005965374820395990543035792256977791815564604322824604051001583387746345840416884676716722300219026078584870946790959069895709297442622043594506276599087561107528109060494437743276080605558944620085362039932939998303309994187856013600447674618853890950195907994889734548691183693961286161231091084304385171291429133249477111059303878920627077185038663259412656112164452894200513147096951342008836367255931399537962400171265863560564697879982356601619629457248954346758754081697408239208598266977479890418170914708177420836337217980687161936480372237229789838439904006212071498644675121390847476479321887308328990490537380639590141058770220378505527600998777174854197734062006650841707036991683782746434482104066605003374154603292532346078659985520709637509182257814417265116450821860399961221547142933732193840874739307415113855991195916099351773985289074878858743159324873233675848218226620976641817864290972382510902899148857130580189436713733605657468810146043618114494701838363897349487832584711878327473822676776596976378995936424812867222076236136597097237913699602748016908721390159684472842496611691070018385287092847861619206434381613954349300597692941023803168660286477306758244799859867502618936572473983448972794318981279853317119025263169427415062843197633232647222485527273277150024026686372632133383198905055335128164371327056785817750269957419689300818945895137928372199588725170419045403733001606941523671990222034085083778484198472028378696081540962055293642048549278886494220548243765996336046025980275799470181498337069281087254598356785810630963240474414256156960537056409375950620994155718738624028283057850805247980011273546096193453968020237398245448695364214383115074977546604464471671623744348118133452300585813820100709400506054450004693823326702442491122673938898494961076797275324202833902035512717219020441960346897757824150907991081347732413269795386316846489365082805042737551003673750066304621690090913811305221174097842212148265449188184284444404124990614618707306182675879464643207909620722088395899630437193652167811714924111746320378160615654863868059849347821398442753220612115221040214404234092415992654459480546682621377397032319093866030122256658384944488099419272482830169191294000506663000783828964912010321273324518981598839991797345847828323669025273766541169925316247700528778262385117886876249227598100269284037912273528290694722806216984029877623375777867220099161766843438563606156357224873083317884280126236505578996167592708238127660129350521813973813335458861749870403446791566481852342924037291030615875416477215986709846451460810875320285610150110893579230548859050078989357585075818658219057458555679818173225714294269523760908399409044776320916035775655547271289467088789942773085018826679980551979382245296025042796857460912315964144778403033944308038489000825506176806120167038541719556607744524441606354897737724972812167172971182219535726325601237129937419960665265046701744835285307207485541155139272319178054260094059113666310470421412085287187297152938850049154666041506525645951513889396135063463003067821353481788929148190931103128723282588773427084291344792358957166673117680925598957820871312177101944326641513255203067431038008502962014431091345144683025887273629429423516274017254657860784738795482610599076839820775281932061176000485587525005631509990257624752704568557962846887873985009822824825913449925394340251033218402799619125242025546908764275633415355287829183290294794231973843769913737015494852367113877016449547357356831059302212646409149341394824025546772908733878587874249617001432176496803043073880370291031478359731961937467023730469836867740367324636480656962971348239202092044476467935278011950294183033903542282884040596301648805766398374651257364329292471456714756620721010193424902811312972612313008200551061301371367231581292468673448826344204429308374250014310478074036701437415810047325793756771547959669920213175646303376685397736086681009804355229937986651845879305918569796505321917913637685630957405678892487044712326385882410096636390809029574814935907693336271730087407751898548527462917082415220852479332066947722004857824779559459551250777425490463598542841111710789191199380421232664392330701649912144055396324477786876517544697098251087346850693652103344473264246328934205870519874845744168353408869726212173711674562665549383899135951145502200918111886909778560516556064034754551684903562185420932115340536051597616830609414551698262738179025439785901066994479697493557705843314056385940758774165414609078033859254984736174672735506500663669203586852957076760318205104375328568196620608300981369946631981033005015987932563133484058444434440865217920428693859669109993375948702789200770609726377952244570044089680974344809102264721200269877972451332543145485856807075885305277080577256429120552352271719916509826233074509418419757148020311131392952208869541802270793841566026072428562442309507156141237803633807993242994005895763765470908960555650990092214671778182925775596855049130910694373518647047278840393141746025828962338890070596331747914588873908105991795288640464079217417066091175141903876201375056230097176816289667724210614002340684660134592302606387385081637577941655537609825967690851273026808557023493688832485793427255146919602657309029191507323429158815665868309274413280558918107215638832687576397170205905708656703770598165728026523723540857643029226946689127160561431742033135727651616568925544299429658187945008477097715491577844599747045282376294372310067747783600263309429473190697762737620027454525431830809718793429284656111822013404979665798851681763484791756107131793969817601430929048202614357987689745783022085319120889571033690073215945366556718458241844335539729693095109174736844796676162794088001280073490571704543859440515253998281938502695507460343927879413095393584874934901857601158325836668147832392627658492593374335673877440903509679213567066626627274723755312401506024919709288739213510646390117641207304670311522608681901213358631827160832178851370258842018056036152791728275010497870153885441351042599031550903768593235864049292806297210089275011628653093494073266833354163815383872550125087215636100965493551445025790120637885425820514071605634490254506856279711140299576791046512730777853915216788143131104065383556916527894409187942250452193626668870833256406705532371191573066921231166857682314130526068581297023174144518328992881524327250420874064914584385100834994153528497448393853922490018107664014455373322344723025778667468933705952775727676538517821939032730112493752738935074445442481763369676547325551935238583709331594930029143718840825269018519581003893290921518386980623898244278983890322844020993539445353500374468935184472363181717726274773919204825866385194147557170498914862011589762094221626232073990408355323508983102260751219998596726163377434731049417248691763521076359975548851609154990110744900218754791377296721607513504318536833547428282014341117740578255343541573968412666450192664653911862191004757323884182444660972919876557184438928014844419007649920951544272339062192827039227549110918732297982472503878006225173910531952579348124424471906576418002401305416595757431031794313530622549499804801529264449005894054100569305865680422528090332166512110085199641218763036021664645980950541279423786540417911974415910667213415822366627956253954932042280007769771847376836175462168748995832378080909010719503661434963970957355160726561084537927623803551024459097144073578260511082147487555197380756925628137208916114562719440523177300957940494228529414555087690021321196553230558199325462243181194298549922428996865987146163426706745866346834079870104306377615098607018458703074422091981192479903817705927365481691232608046012650588055413368299221005159984191446940504985267324680843139383222896290012467168865699601444598257788996716315302502282901065962550737074756205767359924445189032029767775637036408514577656381650915973639706159708479242833134673671831676050309076227435852113944672575645859183595061161873734348440122234565750137427092608568568867811826294298570463850041615513963185157757967661952034606378122737794511878665328899526916928083199720893840031964211407229827124669396762711964691797825604423295345802155955585120114448609960366914516858498944654080705657698659475660094712324846255867439009523049572737058686379579362202039646294828373210642242883998145854264946998056726812817859943087260971924059398635715497487214230057385066187528662770724109017923754389976487135399069572654740992140618376467282620249123921840677103518250139841810618584072074124013854888090119042778445411060444826327827540380834008087201027708647201483779558522830144919362294416711933463736623717414477630718816796266836707475940165724218786014814707964361858603345865248054897192256958039406850083066395781565224093314434001240751128911505387863363129112577766325345955616923844740357977416999238472256630427820878125054606830041086431850063414318496890136122271191158981577230769312368387456091861629089620341776101593726351283574405570988875022385477285545281759597813386910273865128033945331957700033456546722496812084569260846777565258620732557737670709365936727650721172881353781139852435974521429036671265219188426520897445685818862177850467078603557057557078608003678960692193592557018459788845003349240619146751725523808664636368344537432134093059763467795027045731206735019361946772071733235701685631671207850189659966984021005477768709856364789849909930112951391709556176089048011357649891084804788855504743820460090622243491793291148927832813785013618101920137972691055268029840049705129042525869334047499060494796025723167268985979993685720607852565845648908362825140495925230235476651062598888655921252262756651330677485667311070902000230889925599338725681255972853790358138121149727637139077829035538319168367561943749026118890149834319376774841274794900299705486803668094616570088232244215501384660033963191187159819055687893412547104571407520891730153115230960075251690726725946161978921957242193819024006681120547059564481637273950079433671686071149994322457894360302330868053636108800321657410119372504098968517775745229829653670619619287555649514004371931921064819038489540274923017202947689286461481036257608669623143222181320537957053011674480116877526393974982656919257498057452206778115259779783197292090063654053522925621040212339361870645908443102909693424455854586362304751664158834236753667659043569170150112461127920533015656636840512435100626684769313901618402787141658679277444104496777602374810667664405480720132398802795094865713326739329418367443515833003170816104522953380527261123954339143153656039589916080207088789409563799624006978554095473405293739987471727272197569022864126855658461485995783867299886706621345715731023142959445073584764871631283035448195882869028614993948319905276971726211389672313861732233368886715945568603502955046905748724767718637589525155440678056256307540497728991649578752713423228541184796188201166356135183419463813148466864188732432643188865974704860074521585101961132668326300737155583171562354415125041240018756861844950879536787576285712560785384218110475692716933380618382603038149725157452593945150379581515621149019463040866139959160835511391361024400640845246469634395558058525833054648939447478382151805252781929885005970516267431461456363481103354187020526112863997015770381163235082198005524090718807141449166456101879494721532647111053441311625456251257760703713445604243171189257968974861342797606847508708935158151121159461795602423801420815925902925610015888978684231882286363353973332963412617319039167830258199714001347621285246058308125175486211492495529224744833063637939098550456783441275329101049890414940320825445429869370188811695040025448267656867558450068926890478661585513859556785411249327433958306368019627854207305616946938707467402113581776742481195600646787522229964751038134217719194620360834123540090701633621402894261487092749315190297106126137834264622137919796045223504084938364097448496081063675948360554543533995551350902968998901557879643446255317912855403352012618110737333923162816831286631582773540583236425843506504583176901677815006417416797887165520048507843456836750745098495295285608786975093292348523903597613622822123334103898601745807413931357243630844521373218212009066397027605848531477503729787807632190774412761740748930844381357618741571532808361109793455291378085501954262173773213363981448404263971380483475036770141840604879098333137441896429255090837455224547492553573482053509818166374134622999223797973239441146862625115474131414288319371597512598089416555470648986576504576976667030411802717776084944874520681150622637027513442084636002674287766928057351882519846389110669141567977987241681017408895797734243055648099881363883119103851807940266383510619527630565570214962956406986439754211952293784720951199800762789683850683684813025305414466970145617298618121369129486495650369452061145483829498898924709955411596941101936477801111585909649772441403772340550255631436732907923455639825540276188218350116249309606148674804530904656110427590469878068836938933626775700100161613008301494503165753223837805479384566637723459167126808621448286976035433723834533507787133747003214060517093181929251376252903572626541695731734693376388191228821179415526653200388289838635478303324877695629504965508325672668668826176482351643581545335753077729537753659181223372808204779363209146186863749978681253051398460423171039840442668856897199391540637404026048525975885939220139288266170807965492317178905473426002175318500245643087857312931537035120739051620197906109544714744281733580366595910249408456761959192377041571970101711225843257008130554312329786697420626170610515424606924507927376607089775571388711553257724317797674181225957198145012927982531000752882646371304032456715718868605904827418010425709540616289809209727371465271582435965893719214322521979137987555920374417475990191177075633369254414039440252523884667651860784400142363991748925320027268837377209115428275487943362019425413096115108059153869617646892753874918400258081523082611297891864442712694663203934314505962248173571194369211072027805095614369719959768322759539217745342194492489084944935564995324106582277893526501548042913683627700376036745799440392851593369689796297753553515669548052867276938298119026431250219350600964642394629696595470548366794348743062990432370739494672189087805828081176960812295030607075678495039609012627369553121966586186804571331817574640574820229239437989598040859933067844351850269021758538327434077244761441485905305565897430240861517894603258217745297058733188319047995952605993999575616415027833325926345379683556279610631685521690371343130924270144278129230828289794052908365584467179168638861036176659097505442001649995176400823640006386006421251403014979287689648664891318083819873282202071974060470716021874527948123252802078750583224790767934781469100704371476748402574635378327345820572672370324393102719463361364789074294839907477252279153644458102328013369151235349562824714921636642831596150939199899339834855732354154548789593354569984437970535955150002213076800213040738799795644299547470290070126825561782572836115297509209979063593192857651771319390886878528508373554943377323740638078142578632581333735711446337396130998268366114855612851391688974424376837512684576526249884488966038055198432513608033933819692481980040250264855936865097286267946587629528145410648606591188491653962224066877553597485547632508073643414930232770467320145825218378417547519916526874684236513214465547737003784094300132145963480367686103075849081527159532575343049731316479212480205416395395735249527154381569846214719295303043614037873480118036101665491560215955587822873895054173669355093313047440965183484142631617342215888086295146842004477969576446728224722786843041987725935718558114422869412795529125616294944977952756003813567491526823869209177332726548162035674848602521753495635349565835693621088180843258146292988676132748329813965902721668833924760875393065908115706753784822072994224685993675742761842212722953324645953195579640597068634080643429715532639987795204935857265243623879424909573392286395855029099420384301942931686749558422318387760916026694161660119649035084792832735674140154054781049340294919691446611666306549124975239936797244476785437576781325312267281399842867564383492228427074295288003017313626684897616233016007627379237336939908877786983831663956311827556400005232887380087910891376141934348944500659955642053486695847338312184033704285737392535946141784462458034792360178141266554299409737260378904981699233890210461093421436168162851608941598746767660006022037220611326911251111360259292113383520338488547403805613264850457129268045938767406598681832917531585685242216009316303417901829692375802596445279689069491973703181064284538764904094900392220984920614364579962883281619662456687425321842602265773942038947062861962936144378148855965836656864373775659648976514874547824179617783973581205365917084390484135520998750081344221293237667284763897820695447633456485187189348405875795016021951908313802889418517470482948488373086599933615979430538101847570530707115068211658198252937774017720066710321383642832820749437285887106757739080007201703916315997611367826317065379897981959005370094536587555376071967341643985918928798636617102056276050819393572389760745948380305611162439509054834740316974480302463806261277854368689986859226015717622246772886875007731856073788933494862983030828583206067259196115922883887365141235928221493919194178423572896320892023888513465623418250011887826954920278156837014118453202073597682410267721103709182907478567564326370265988235035035416755732358140323999744341205929344082381427092762378812889762793061276604244713941388434422594352179116779353711685985548065581816116545001618283644963484158661757955749641532779113835044518186691352187225545997011072642398011080118709737882200342525073321199695876174228415278808843437244941978109784797573295045147101009441678117147980640609452887516800064896895190047998907409926466766415879196614407644631109117108993029599330618759459654617749989686296277802719163244952586969746473920964901866888046993123286403604922959039600507385235022913917213825042009756899769316690333537257320463497476810501710110457931096750824257588708226151499449285877596870702794319431769924689853304534626428942749317683835590180413510646072080288015501036724643368759956852250453955494043253744768706253737540073595269018328239874969259454097551004355441220336839813403489932361497175415685171779370376834062601952446739535371919520639479976987050033218683420962587605104328761007335580637021981661025441937604698979259681657508997856540782303184602552048933501119922313988857074115780695783523027243977389390649163136420928170450605627107101313067826856262627054737050699849811137692687443188987990992280319950382467386725373240581228174160522418493656094795225408411610904116599191370070497885268136188001916036502751193675208262754477362918362197515191193601782037875957941613366059639025188793446822515167996644856974844888210046728986997786180110541328034860850104073289671815342342571568872402684989606939460571203149331806945183862586054489079099516685538567875535887000912253661158059066519057592879614222045708601594215816754697613922120203010484429036384058661980388533420356369729663716454480633578245060854051160596022121831524023276614387089346365094563721232053210278106203427624540293237087357222492118995121026759853431235259896284017162660217409688749031488654028799791886677979394552207373875312390885814372431428364027350607526106255625432767789043046254243190291702702144657611547161500044391213754566417466772757614259909216210529142684303824383004417604139121476516839507659738817028701952935050688531936840585609171540359201211597427283405465111897070075440296969475739285564071075644581295739455454689504283976276463829740167522421865499457257648032722408556625113975766504669443700259019888706922569450292005506413569957345133551942828715916674114156764178518926340820247176734120644532206036446099828464614472786037852485437551466557537429034338701736191509472919487240088634355030909010253624285404540213468649162035154397744485175533531656420138193527634807916117889023498992052157211312705575357686954137796097678801751595585709736280538502885690163604811643421654891789805565844778803422209042717512939090771506078820003439554837773340234127960577744293147021488808552105680086041528661476289281709363124444829359828574970751509470524419673755915008987476328338226334039034950487957965798994990628167470976187755540331423818344147207705881674094800829280079984601699501676823120679871264705864978677178277786135581453491719378993293832235996999573476426926789632647843142096616764029948201796205833042273394919285029486437653750746325084480112640691148213300960396593970257713338148325056212407920993180331021710667655799175377404968423346713601710173991994588943938055384453611541340551789419143956673957410922460595114426185220322759186165649361896380857383248984304680608427328653477889225266985674654076833258548783143508225222282398511105723332554703252254567103522952697408875466594780270853844875790179657041455586096321037665155051661959323207569227799938343516882596598392586445689143878103434004240121119062838366450715888396139097791815781038973170785860629148767667150189173397726146774824934857146345659280937131014440985194770181079171913221093743390546688320223933583114209969832898421726667816040432745664603528245890064181748548781251404060683327940138385471461240660469812960782007484876463157993902048263414755318247538500187045137156233930815707905489388461919212986878560329854153147455931009008443175104767250664060859426130061286447636861450660623360463809439649484265982608109998268155269283867548760945198031879298591770026912620872816968914562734089241644905956971646367905198912315989455843035056398228303148253841228124706057968580308537650156181133785793109799680371334278136069814524054065892339452630168747037883849881811615606758706095713499538190318906736973633623342792938646078074079417469578757353285373002917929583576321619774377599808729319331691028631813870294441093459163104240951999661661510620554569760659700575699313193395850492977955377499855338201088866549942708271026370271068670475251251697874050869429170065551068482745881185676994129934042653062246790672863185870590615566080746747515241135611569092959045732965969777792674633393906495411272523080055780593004405045031925320737575474650233205309925655959812676948581170135572194854675324236838456447915142720738029481815681405172911300414429844842171809282075515986818081579261733704702729307316519071574396308533657767544154435535692502011654500224986172828497265141474364730385586324116089664750815098637779586982105157801337804684147018131154562305918515196773052718477884970778920721181729514333156104164347206888810766641724661237788378173178324431617080709234011295646240851336317453158518671491600403143855457821233150920402756569524019404681673755501495560388587818102007543434422994657053068650100243449781362653107568177628596737980139972758469348727241883547894395830557238568716533823160732379864278799038372670678094228414925207104999824095231444805812067398817425476765326209313045694664330110286336182386185671113978282956478336065266180747748033870414730551923142570191773618144039892237820155808162116246717648901669776048138093268364654970630096268062394704396913486290425711120140616600836698234919364587629843517096252874010818594274431095781803794353952211551641005765939811730224741040603125726500573446435104327539527497224353696734778626236892428331638981158777880660758863914290556161531923224138837183579433969041050209967238672709163285429685606173437107541342181559506255604789528021595655022106214931995698748028154502807458486633434905163117756901338829208574140402870074806093665028377572680935236804072657401184719080818970710656130903943644723931215597009778040620563667484942095157518925651006329208692144662483926723459569620139231231507596849584165490447812303962585032265522523022613020991031735479641623898328350577043153595608868394668717886640990303171434795033480670491555788611682133958561976134611834559145566360150456351594425286809031966098815337825422788091184371451567102005100059503322451290100114898981790649933031127289354166853397185639684312479396271549841644785586385993270590075817884088574120938859690187181671886094036077382373507627650268642176592602169932416669102664673033208856678008789975208261533650695445081248235311978108552989032323895896966549875236016429685442109462202717347280204610972482955741125096112997935125453793772215390750202374039837738041934006214629131765102558923408790123407475607936806118256720184572727186778946558425888778224179128660746943182871236707700838441451001498270746876179152149723543238468225297812920358392700783531362772557235063237020330768138700725181892923360741153135236337738933175130156317775475764103381776680673868010637111352498713007148261662182810692751581799825469120409562813694421139630612969285753230952633603555289930003680910858863628446685084505002036257324773561093175318701910352804104410888490688450257329779708959764112052023383906592360885943025729158878258874534834237936854097090430698326194411551520886839468860367635852773832049981998632773467847610190660698492158079757619280173536034914297090411968297883765075960829791692693343671063743445667949613985206188524333648949111619789976895112766937311843452850068826216512826749014873291172307896631257385584198504545997016057618759149115722810359835305160352090699980735115516133021425169555248268003018874645164419501800384218283874152419002064898635786723144828592016102144709013012689907017460475326158676441198596240624562243392527350056936185988319282937097414609276273177227823404377952570072623660489791829317767159023595544361027261677327134666720263031220772607317599710473727214708234824822837704634508762506702475583154535343287245797701547243616813285733883753550555402285668662848201246604317804311322370804233292687046471099700526850893659470474665994272856219996689108680228237770936399391192531089176949136414114102862354791927394737800786426087280979668961476667869125919420211764917368609058450526831173370992545756915255196645609946422672849232304058254597000914407025827620924514823326356613878388428203547559516589865508593404923142951295559430324032567680885439979147382328012720341790258854810345911588551852258140749106882699120401334850691944245232344924504256571754721277315233927614959825336188507401769260366499797087260321306067863097813751516991898959970749310061889666440988576654055609043664945377134737298748048115697414784205553291276974607587072590804668413543565943472877554624998828889121848954298774379954811268351273760222434447417314177163079413348966850915818622218064232495317487538301482570503960451605740386670553190482867347328721326905690761442605951992949083726978023504845182338486984806319849762772915903323537041706107427160839014401408816430602937405932962452225789341819663220652867793533537159211943708593373128128530871092695136630664538590706271316822406356406621771684357724148353420307939490290140709082378229048791306292760963302597631760465234624795033211977540478207899480967449436117586291740339181104552254645200587037927047679091079599995130464364897723406508508799296235445710283406459348065601619444896495958033098184023570043211784919420569671492040520305967805906711321452974039397579797821619774682043151460454870520542521794958809361315464625230291928731031501962049758193862984492612734604227145443871403183825476597781284806847018416442542829364480261905574452594013123871603753003820573225564141611771439452993388049460853182243972099836141173250673172402519856561541004906126361380959729605683414066285757603837510773935864619249315249997177590496324030748339290508574529127245846519615954866191660870183848391042169956661366161534597934521641175411785981919442007111684934018103385236440717620656677015030811757500284910228614849205506866632834428368773999361277156681823510239445564024762185049210768788080365132043463668382402581476438009808278501188610631567804332570491175865071658884638407877017913646043179619225651664065726404033529026262979314759346455242576067861841007951918727846990318834606242469089630277774192630775295894601160999011025604700255994076334891039000154516835552470054670732642161403310193859105728763721801286715369889072357223683534627865139024677431436138597516352744481134684487056384968316721247568721038359423803546605877455586813104964892935173106764031620719774878495132250496220293548591333454706967973580550586836742291726506706639395874178408192451696563030072540100744538779894861028030802797584045862633980675964023715115275987868775834069440901037747745129756115947603089579845268354762645439097199540009758698686755808856190899896474458941475444097658725151660700610356830568805394032787157908326171074031116228994995349113386410417251591338972747790818318798703767742292608586620010153242891205375915645061200737646073395307791606573374891928729302042803607929655709399851178789233148150905210493086387277764352260473144200278953445549815018726066879489197851382575756241438242713541441836509505405284810452211352478534889581724229117829781936387165512589434128617352622806072938548915261075459276659623211337559299681151167170526351015413747290376197838447826126439392458191673868712055032492846470096209712155374750877162221774711218022472638160200037692760745415556255470996207149398188289462089029164069869094259029479564022341034256970477289101028682931415444081797299248300882614820161337718066180732262334743341471536505057173580672653042620922526923068654391657958785511026840027498425828941636685376765034255329276473483857420019399647701059462607266012500138613194379000125488259889754692166029050154779983534460224706229681813856213489917238968151841378791548240952903489179659488769500768035207887523152596879728592351625073026656884396938334910416679173962615652503414841409396921618279231927359235504703901020244877859172662939496704704634052143052939629872170559054315374899691315697532804041169027350240953268319943161794558273645977770384309179314307845859480321932043967705353785862871422265816275142666686028338147251516064434350928238837970520631587219580251187212458498645858752977374267067650344080425190087682351838833743049934920720144671024983904531556149187850917958657218238834366795452486646687953762462354388492804732075400280072950731446589795277063585866221501239271903648035495579014222531815777038181895257292036981138491936592547399144870759680364995738480173514350012825415078626239717780391904349386945797640722156183238244646500254558643662845903324961720462261149422830535559860647203500010366746949670889473164194580003931093391463735707527517532955652732076081930711917430202537869062336026388711601998676136806117409799313958597480721172209932216537700358336737243789159637181992813066856541563819590796516626483676438282018148910057863049411461300003188251170022200475570664194709775376536537463670760405680043476892945625146553565731444909191175247694241903574389644084188790885178676325050608467303213612442411231951313463009463037355173487765547800230423433199822920126479827520563890531688091107926793125938509406766794205668157293569945263812606436860945949707159327897935812662773268681189596255497354136271536189956244566263394529387291283268141822710845964181318218132885281512176307098907332503691193052374640651625298090561933323748437841129336009028645319530714663551392000950576305278667096009869684820379368973427614373287380325763665347427803298159376998410147420304643943350079286372057197395112167926013624244035808036747802177889405236310778090614274267134002981275389651312286875897432955694936649305451252877199756525496913714747234354167135888884167135831368207871508343676307565947716138902935875851246982574186829242905920756544443997703340041728444197008645119711074831183987822692001616818795515852100646960076639822876055704133567976350899031443945109499379915568705293965459940038794816397564691111182310960545178724528180800613528739751878366682377230295861540270513149044917544635061981280176031336999732965911999031271669785844246073213273448683288462243700855829595983584884564209428645837312397168817838113625673651864272120901356195756230872643589103685672234696220027483584719753629242494833144523363779694952417767690484112657593302659292175804728463995470149058969667715655667191112805955957217944542157219948016494141744782500258762323304443835308485567078567843265162526767769110066886642543293176236332015733314238831583577491798714882808929810982687023928593831681161839262650954874962432758251106457405485545001080421544115595701355944436339584750085977182519300553017367259118170174812488549591021940308457059528874768967818405637969585071603304980154631612822265222227395741640806560495960733389624555089549100488582383233990114971717029931314384783591373128353600575488205016363973073923372838583000093934986305718655218217612807943844161656108502531815536577596634106386362585198701692257414549632256838164276613702089745186852268230465237105077039851751558078435138026494644396061614358831310368822408683239802657800426427976120067671711016382848068176785800861232741022899847249612814903672014937713088058918946942158188304301908205382668526354412550418584590724077150309447876747861058222187318404250191205713746845248327942799946653627616954440986273241231126754922322144501931628580973194782095494847173256007055619002539755062720719796282595301855862488381079148614466121465751823228768408637772953562790730624443702881278922654556422327002763347956234175450531824725774670950040317053671235188332728281867589943030972598716445491514213427768883184662987711074939144681048419239555665455373530693175739908226055066673049414377672155760691159191413711268919967844277551282593456585879088098439256470036205976588507085077795645550611378443421387017055887665716363322448696346155834438056139339961697913837496570353481929981550628517761911156784806921615081032853481415122243713129990676198734623805643067363825665039719527823194136885170388563984847606132588683048692744201354652345486088122889951132845215750150105676483193165269783864731624431994907169272703806457945271117977863450909735526072658494008319870826078767843487672369891419580909879290960049965806930916118177493931554447784944449422249836381006287369985213547181723090622497785294188611781068265670099714529275487239833344462717580183713990092978576355329475670864891975593434943763557312611022516472225906111103172706271482309121964776310385939257210266095600106750557086596181303225820589813278665440329709839905115915828514912304256212242149431565709069305280172917886900140374596553904573103204551263804352579316065233533890519443361204983507200277366659325559282568337710496196687662707180771699592175975214636160081347978739280367250755929663005058765150162747798899206717167168763825696001540662641604714205718517182885996470374388150314587788673316224258000558870834790069164873101510556377659536189753621555993591719321454927676036146708151564307509052764627652352722371475534601256974243679075468601394880657305877650215472452722542759665901406133570990283725090092684571391723164613673664296603224639608102459381652407372292096161118074814709763083607777499177157770336412719524030520814775841125613539097125532862065806788257534316106109157446411767291093904638101987721840082071192978653475429558483926611302792362624181249640842840279706034911138889274492707951939903192757369804035290830516564837723228970494497138732752732663202177717655958046430436398108847786452631532199047023380587893842840621729590798332740654806280512030622401830611721188932383309599417915243352102981726186864698471894731567566342615032839656500431906899797537780412431616808028689818731066407079062918135024997903714690321334727806101298273866380689252364149739495946407495264559384490542386712148000704275761161671046029839055852058008420941958118901426314051378081436970287028060314970103666870997641194177602344146834740131927159294046709831213289159517585474914292769668773135123185497675508716966136261393914573713212604800781699272146067783284158045449355500977095332424027794939432135523637692969728795222977084311994272681001052450411281377188591849321411770924236859130699623830730658454288120931297827231210780179422243967189841970335203025903870211685634186808852304865789621273942159265458825419221557535536022141819109450981667704918299652245751265933207733786011206859084230552246756487413828302583213532013212951131142061789991434465185928237981638104652076175115332740208464266708912571459170863643483109336195305253076027945624237143776482861603689507777276404163745735569332015436888975352219923628667349253762741325584516342053321504448768128162732999751710304426952877725349264855605518162776052757633489303989722660481497431772056795594735427555245931801269242453316750149121858398643986077061625137197233796630140839093571506885071561785110736517330132704853780872673442498917258160679160363593883153497638581084717865749391577557870391947073263847985880792198491325202001564878744621490922523235070275304238699931086185561188357847607690679246629501082444679134697226561661851984330900758009750466803459244996634004317864096691775029619248838906223302379549525744024620510207416431674791924889545024348568704705330817187466771124177318759899322584544286466019742919935448288160947679084214362880432410941250911049219004808582706930202116850810417749786778084371868173640102510451723448739018076561662011507223856470992608869825970556679864816747055929843076276679466621116870362847544928081790827930418756541139352644674161740238821788838054277749019829088674675357180351145850148791635179815874245047110429832292322818783892794051939409873419129713622586365162716213529624894271622512766014920579792055487630662233602397001852088527072839236407010145487036301517132313580705660872242641492817767490202876541932178540936409490281363133445672813217885094842726123146945536838641296880014574633522423817852851865043978694656229291803886841094731207898516295853855669025748198324308560355565044763070610709125122546077705683234617465338341421634712286279629253457353400491696766263745398657553247014520364595709015345259592409719334195561330901489855983265557018205923518429660771765606640303512822256295323582561028551055242372620583974700670453105181369734416413383812313234201595399872826127451290284334155399442173389487590247243467435267396513555714025987712542825819684674277304306339249426188682666500867408207001679126894423788318414521013788282463345864617832333800784988527839243044876830558174763457408796716398477974705423680465423641413029002714890254483845546309774532478487432536267158157476632725799114185771168204189547245141607211395454356873777778922570781163534002288533601826877702802773606523111333530338811547421261748109871960881623028359554997744744465606715458675389199136835566949123457323130300597438120412720770667635413107354033043193297362772020201600713560559141143178420931268884504893533376889934066730563646069621056245253436199262879469531488757174853268623908818373700352177317440269641543434387403402414532008795899579436304287857762754954067639013850242914997195732485072776854316960038844217916443111305888468241152413121607332984351222497868197740427961941957576322345123491476296084216490649383156510139807802200870618159161436437517270298600567914185750027256962994939276894543911111812878513844187329432600621496981111951742721261888609276174354396880388572425460565237414493695101888713248370761416903857807067152133982496484818073581844151595854858216755927091213659689790487657661910865534024718991453299944296326393314725361357140087636515199330697156656213422709552272852817376519002035002893512121123980313442938790880588772299568041722851168649835865909126555756474462133962342345505902956026479394135526503970317736093975057212592956292143224677186825241590928351047437608594507153445181632493681516793143867870313040778297299106333101377964905732271205698973745949432371024948309342200594992719333822694460395260273309683080826462085260778606081730983943783326039244965580905360789312079695571012496831264055230836128761722135040141051995023952066635192272691943734494903459314900335796322891469908114917605627575139119781109734947009452401559891576311280758722024748301235072322302800985596212333613448277970504279638569500245376304179298540240349038256294199198793358854733476707026008903107714472714587487659359140726485488565952760471060546606978167371493748883611933582189931845136669284490984916772171840178614332696318242468672720556604294257341345347120509780715190808186529331957269992121572479107395970256511019062343776154661657283599889158321697260111650771795868296477120868652630196412786878869516240518812739159361740444876379727644286712153036808493499465318950680200262767053360631340438384065935895063218446225822960845383877649543613650494549461316862750760320984758381428970396557676642534639561033794634521414348395339602494316205595699518835121507578777323200159688189526106306525871016246818349177001524412137524221065672551932463215583400870861437774852822890639017811549792059163807700899700740055246043543271139618308876171953237721307449831761969887660430234553804384817189747699277350262419296414617360556781484092441279162723253639502647746732719127296822165676822487876966187050422395603016924734458065374984649971779451404570846158142067117672891911855088811773689293398661188473795043460411798008960521490454732077986590044608965572239713559039811451229080272819205746745462515902616394995840061272871057987750058539755381595623339158385736301441160313629417279095558377544253837433237948742585095943351069031614385366362997473527201621601690372932516844277887092422079921894669836581507076359048891168735538712309871138358237510048590932660269879023003912109555464407770814210924966117928145890767304919804119883763347963957196268906955933339266442851695065066402394409421026011277083472479687507035418205429771944430149261980429356929534185923746128083720695007795752521075744329408256055702470324436777967429309111932471307473450211586233323453160608632714015829613886323129709572921016949087070670647155718438907697783545128325900060921351116043456775550979117711510819085946776626548139283408014592100294230303901080319839094220401614289904476552932257882229206352056859152385059661853064646674488226623896245242785259078998063848884331328603319382023663734758713453458282937559662520977265130380428448630771011220568790209132081876525889123629260643178657306758518093312399899363718338107756901603528605150172930527280922798462786586109715727170410375127202421152709887361867170338271507981982887634452756892159245243848147077381871049433779450165562470015778071559935428028643292537159643973719263292820290332032030544297729732219335264801952751905765891520345715022144318765256223828668687247296800215924196824708868164933694763363025862831493639991599949901405725377511334039597712795188755434377589850289261811956832587926321262490497874421684573201400539151198523748805538117871285993490956015724875552905303280336509280703391272901976315261575875520449663278094952980183053392619154405446654046640178537897322002015481204671653923588978871376038912543863898368904751593985999399983035167113736518612417010622033790905494934739905511655420359983872542978289508802176342597912398514381407105374433640050115471103016153582354067548391944062921911011944333202566134644624466588737524225935679021979641704590980511914344623926720432068133935695711845873591106943628506768388180081445233772756258801398055388880832741357059605797625256885919991584769825092972960953900113626127426051374448745509328533509447865432359137270825314570797927439311746745535787163362392364486832108805782041576236214713217304054116443565826230123725767219148679843309076075531627051250555613545969166415887474227268160877261160105490648643933853077243729371845747086969633558028604373052093333849801999951125578090639797024482888498150691716454675847889066219810528656144103987292755654036034225577142571269538418468663353107416251278884663240874228241307662833260440680536894071762617544208073405761923597020977951399270619235910689429635209113221243601304352207503488785618732427799407743717326579987983089431481119869639078471940738519957531529560717331573421204421439599403240465441161400128169028046957549764122109031943271246171664417595003553532481871909421279068178126242926573570445952504157499778104410865330058450157816244008010401557263297836044983559451730506715842324792220971153298806347922800283290741838082837086800223998189326851944089175950211819431103425417946731743099926660787468707032206375225477341660780856640151584367772462554455617085068143752649665775043681178175784365872273655709892079851889812845386960810184692322196101371557215459918046642024830570797061590420741496734752155791507735417643371737162977980121477760189741121951838210093005571069585793332628289799536929234574853675155934275752274992349322422369539980695992932887025596006500987935135559190437140073378126422178968942578702666578195256157199100227443068601546934432858551804191504025953188767911616890634521072193053155637381193515221068820275667243616524950250994604930587761325256439521078040649409752898852894085606585290191062382325620353928590741509531441046937133872498339185545363577539697063354487019944086260094767423805015889262329979436428216254957359860067922154368059022989566476569321492755692831428543965220937014704007933166086826756295374963331601655156398541586616272396774388534976399827619594516854188747924786250664589975729638391113980797758505033512708889821223258219257742351333412041682227964098358951335955049608318751586448461937434831438438823194406530673555650700489815426706965822718571391930493642945976477604344836514797439739794016699103183067239034015789391010152659698539436935443854977353094556021436880940033068670708032094517742732504965223067042577559735613788301195696034631157046695087209170437835054613501412258634377238471462277815929635494150212939542196523903150876593647247362600007415836739150254292919436336425805862218242794181917226491539852229368976926867426242992950348617136972616769438898480638377953167884136600654738904816521808134673747650708204083128910453787428509427643392280107650245457022927682134974364693743030020479002859099860848170199015964111676975505470337368146998383360051751086670856469025085186234660132985292760750724882000382511299554365362881660306433636314051427715711865932836352744046472508683213864696651385336345014820321407470809182416591651802369227642270359382686151530173916666244452776528646326670254153046614407319190878818311839915168424246773483675407093848326158396300401065406236068449306671455012411822861931831196169601998409306890962584159033351613117274782111668586411525778728597598242815115655343234116909025977212281974117782387409230389710242022386512094716309779476762327751848909155259488148974516538216296965226112905857312848141221886248965884580512290754820900847909964069015273264763399733512629320587752304955667948070213150180803383819471042765065091479303915123696529004406870984824937640395212032782242197236842686753731395710822418786571326378238148001696442107083048785774482000630610051650804966225913441887677691389945106733574209972244841506400134119933843007233717194121709519864626367004917413823515884960956249350552561772258126945936325931984079429832418842194378457743970589589596747956153269282950625225206379763847699177960025560605722330992848579404858038528825933294068853524257096159135110486254759311760835148800067459181385833387411556906358673174508703111440023896588523330836849070209169588305204890949057649799894450110286422290984076471211303354605835973068678067177488567802196097134339963393345868607858422040080317400770409581261004596900238399062419203971776380919067829095739761568769301938801172309527550896361667470727881995245825367757492457610492367211658858847176130302725250430590672481564595636871745933175276683296803372968577459686206248502539434965389430464483629842762896282211183286050310136731745840125389833548420093908641457905441229246883859445775400710462755223933006909336200630349704838359546704702831319740907949279032763995727696538077544723646191104929783594695263610774407816069677533806620702715292473591723391943598280078538548473693309874835062293725445856959461295751925756563553950425375303901798300640002698412478437739031722418539647334140050721188056141070634151445407628860782357123950788525917060794240246019508919498781396887305883926400913086678989433432103125834591700319393907852263385960693124707490106114425810722058827993654234541244574005576309229250834677474370646553842111218823599180542934079674836358518365747338184575528416282091846893609064437389031097533136993800828742154246254195886699879204535753304860477484621870549600178544147664717020419311365649559296062879663781729354421911294379931568714536449196432364741355016168648111437899797621682513572514345976465293899325608637428651412186932888669096779444224725152282492689214276687260297553157646826152678701694325227469733174908900918991190373588240749651119388821319383841436882480688167705663291609612819306875997360901136367593024255387614814225313499254309486132164212739088977857472389655008365070054224235030550666794334942757988034032976669905665795973153957403768450578384136002348093035037221578906249402011318055252541499408018163491321228229595542866866116361348008352004452278342373496413745585777742110999591905886319145755867499634795188395455368787194329425233931507989475486495515500180957518322355112781409551440922634561654176615451877405498024686900464720006809505094106457579453986279397733790363555807805219790546636057702584760997793168305476306946921483615793959448651119476990897833785529549607197161764180989171630362713338835058711825971676555630304877267248853077921876185471242542597357156143314046359007248374236482961293448485115817427692509676647723597088650047919644844292752497925393649979605307897574945337201823077672039513861410951577412804507566767455932008976843644824230259924251639595667205905835350123266334254017998658400211970033396803169488768405157026424123076428639334094039808778532765968698423626556430879351121631214685053453758145054618166109330498342411022866671903240116507215474049544029909522753247246505661158299287536632120399612231979742612551677842034254290232038170128200311506250760166271267918050457393633994400035809788553848090582254595169410006331453194641735309478524265932073951003085086031563764492087144558004642766487222830420708119822502092184887596236083525812142559484256433402631504012052123884225122756840253684330369576988858674713879498262131444917435872453339733075556878739410894022072006818695701118333455045843582398089257295283117529489111018351486251564498997193771659082434441103298370244383332286853893281299826905654029209968215021834737689548751756304511218690789451547196162779437552185786775848169828302977335163221078464938201664593682991617964271235023147357761596226897700798913559786947592937978798707630399552683727846384120627829036726079320700521810754271788178527919036608868114595711032585066168175618287529700912286811963185826426732631018785063119069978784737058957056690373907427016410808320340542583111145730894225220240717578333373175863589587201187143357047552855006366698383159897901521233882958876952710171506578467996179518621566958988368732125262665216101406652719884914783436442930670656336486756381269273235782355983559491625958656646914269547442196240908138545871963482211583312939338871126444368492511057790387612116717777494777347054653174248164263052532600570624966924545594484255846424791510897612928844459798824659755529934603551072841282492197515383532909355002809138590001676067199442111359671759782581875567033116300403058906164057440869259554963619764067751481586718482644338115606706792626336552670049225646458909393300595006716599827586909035786425678967036197157403255282550756171629687355454891808787376310141767731644830644055274086825636202477770756916360073130037609049379062580609417308959584382007773909064026516987850615873611758689455692656293343760062973453901115214533639574772961227196596775605719675724584938269044243990443851354829299211083293612954575991335902806850115061963492531167822752635836427834116018857296087727992518691149444534093371791743784815204563777679867279946367081295183178947709031659010962593371486478345228609106811616835683084185215241971782084115059197740511228895479738961643046088803733596503341725248163740850315346567228148078380664230607940451488129404426357668184063516555794828495526531168502892687936840936880308141142912463439519569304218130261384079160534176650527787959284643535313830830494927582113490570717634473108709070479664151316965004547787670135585823374875583792000626473449625263001611989382170880085254747456062646482317213542662711189518422075639094958399088936571076671869150242656098561360270193311387083425224073532907466274580238325563335010178161092212875024486699874896885300103804780317223981496172442584510577376892481705449180035619581464237797887821637407152421936943184208778638531757971869888307235898188237957836468357005383914105801276501779047210368439493609338569095711923291351308417378367232512521820360804270114393345064727962811160038205682687386822522972968205332555970493824402683449411982774961103178284994223607993033363396995238675368701245949039422666987457588397825323619134410407143581201296195821915005685482485309749534682498994946516781493747462221946768936406973506782842746942880819276764863642231219011366097353108279636188841247266151425523911536761624308879175366526310999678013357520019604963223267323551833941000890278141690618708754727377056757400660790355911873908831372713477463330052851313478277337483296157101770142540323256402750812435469449330634146395295325004422158522680914248855519752390259043228225015313648205743022853440396871503546278955571600426639487771988687150723609439122598419955656562461112958589894986510332887362209027530338627880572976874534924736532841633567193131616657677412749612118683256618488483349567531507673788316781354845764147946667138610910763121718133789684448281511191044328774368928788883260652484969117819774095831862213331717036528971510744754806884873209392652395105786840174803665943238244944016910353887421996553624891015957674726024572253881312792992664387605264019133204784940651470281443253152634919081449181474429486662315503044197638675559644963307400979051414680814557762056022450810490306478621380234090255160810260420489139552268797105842237719859904719177319032424137006446212583095819585909629611579378921590756791165548019690190151099203649935319039327673483773513704494315356838132313189434986950188159166591619004821711476123905115790066895574184971443116291347540510881632886690036348859158913843386686507424175082410333507765657832549525047056244594791786216424273185510861663814547329216560134414116777984350055936073703599957916451127734541659913331706555031430425870779801388755175971570926237051887893694903464799111911409445138874608921375353125423318488694829813725099118436011173802333457601898630391496128311009175260895666339436454972809874630613391020776085644375356438751283750776291938769026442189627838629060771565574891541154118280677803533743876654819273602661478811916680609410517215577743973689758307204281890954785696803026545238669555942761796535895127549294511855269425377924675095788773970278013107527794456041822054016540219200772744476407925048532643867616386266159237301418282582835540139292781579486629594881923618537708344121147858722700845719484566955678901378792938449904471214992616063999297226521155719375256166361540302639754572042416098177726668465891456962532644790600245046846284907738287771729908864723691705051639124492178752031523958473123130737459242370210976216600563370806637091476754471214398946883221843189772649126569792550957865647990326369689376426033991398062674464030664063693220271039904394373669032602239698357302280503128477829568379394006804287081391978247100975717089837714652865140839032512608625238971300661819961877457370450828627827676081031168980898766238603378219077660209444317453774482576427790802765902880647922081315064400166522785010379301537339558375393932416567616442292004591645925099391580758488109888434955568662440798824000372044224188574015079003242246408713166507342284248173242428519539878263946932696816466054513150209808423753779181590387927744601440355883904277037367525109228043200845639362597954942018684992098574113674327135691358377624527333029856592629974954289061195811728798033845524729570994255597360043244382468215223356661436230968943849740942125175970726082886899725286833010458601115016758172310082997427599900901518956159687470699057045588434805881774335261846820641969888070849506476093108863314190922821956169692348354088780355193302055660304480094826065755988627582296776430723551855755904163136218221617490769047703179154281431397244255846891532120734552668995993902499617755934139584175887260304871261788900743094137826767505418358673886272281613021860578585079318209276884897533687590227022478393169803847939327905743644583666058008777338308245009029877703143665727402673539034168653313518109445541965981322514725126967122990319100884653901390421983780063730083750955788953481957595978461767339429880808429977677652516713089436291007989067220797899879656841406765638065040750312500985966744450611007281049402000877507564354010957717092982083746858799450973355404575647534221587877236929320195483153052672376329466723020549208236204014401038612315282926886451336023131494263579285123553341699533484141436664134592007638186675214207856452098148981201570998373445535424395017191018584662112849324444355232050012967737789364583932208319168584758274278011677754534392413151437926401768876441794615083408227101922768520077318108066206470613317470081348968007227837900673932024158845584471888866798471019588701906355330061121819813055268834178686011849399618241569603716623344001027799896460850943283290084583213512221140321807467967845291475178317884721693667203397091125385377740312018227243707609973184517909863806105528143480405888387764814768549739471884260137773453144792500059628244303730396083984831820243350518333242712302975263730032496745065728006017172415627820544917795349814654698696633487533893077223604320914660364953419746752772312057236852726248312931017784765976198664285377380887632127151134021429354799263499300766348899459411803246450211285640934390725161028149480782318829261881927466808767050403752060880376363675654690943003619996222768895014113551695881883463357453122896146579839899168218511729726023057566425652547887511687269457087788021030601552805706347612086576175006592639141092382387830969265625749419254658180696752849952135363232211934353606725117660750498693024228397649600473424089236661012432901249784693499040859708260191718186317096531122878908655989142553730304756336401637539968245620917892711720193963416447585673669539891204704122080909280097873993880284800853994409774035595225493381160919124235098810778778357563496959532409136311788030993008795126051087663851472503329882982790021421074617086754550240197710323468966967688922195900866423355817992208971886225284774188311017624290507452055635223151513456122712231249313578438818948093083507741886636023014211779818591967620106746575132035737267472711776660823933478571331529441432260468816487810113719113675242221072964821966048977770888885003450770416433560423397327631941488216958906184063957960673478598894509011817184872679768911382247802139770174477226829620052127567348681249583187507721138701685647831006192322721934888861574399646020920910151379758948850560614241690118896211029038563242129497199113129021982678127661237364926715582752516604074590236833931690812278254066071904194826404250341556818824760581870032162737025217531591183636683152872218832244728978972961250584509032126119828267255611847188087406918034768160568451415859607407587590635810584106849247532135890477459186113779850148818054578491149691734991442934592348454982124799140767939292756905874915734731369643708773220922076640998209670270136212601549460966499182664426851931642919109930691856301373266294321088907946594312068741135678974180637028070146711281021290014544924039103544500463555574024173525364885787380098044178755390654143239408459169145749056765161679011592788163520489158203001411828274131606811114128624803086174153182204426144833837709941046091611253055994707871124505131137572916904047236236620022074911757976516190783757496834159791340557859519957878014508760683527994634732799051392003897410528446554093555023787776752891582845106637215570667155358617709759075059036826058632855141939211236104245390773417998592846220611234504775184291584718385131349309610863961048868548050369900687789259650550800493165412758899415189119751744120302805075232135853634340438651673360472904782250231828617955984298871865001558648713492868134103860393586705454563866919317297411054136067005470920612932088209720519532600736961130390490470945686415400628484310724219572983624111358056489612454975198302494957393818951550945443667218436428267837911841634218183023772065633770734145092039473340720267432571735420103014023950999444388295337840501583191352726631990442860835792133817295410445744872009433317491354112791872451980946540061850551070392004301082060408190207999118710898460181598443558684176040562622937878485807141870483344688711989147716909069241031913662611636934177296331111046778644588874729426948907899482009823982495744291773138236393570101976654289726441288165385684065209032337655898563040756710522396057498762315239239259593603172453377032335066622235034060128331116920394783563669124528396383390817952803139092455837204672427812116867557405692722582226852811268800557847900187249734870040500746389550352176867933662195425971160073056559041741623319951771340401509439693170523604122264913339650053063509642053408629507858832610342309508548226098087249008020130250241158546728478284554369581344387088352260721084701413607024581038964639824601933450883608956726072893304585477811087233724847178760218082180581367545904504661694709795593632336218581535612670191093531426219765557380894131574596000494076192202806359835041769674572048489091769702564368073876849130398581299380958661505616941431761571609354996898067132901517567255510759320568871036692168031740552896757544166906334739203926151465885467684036653487477951380187746273534776786423111159047436418377102575483237614817746029904795621371263879690241242773867116612298149533053926365724075474379692932346902228102283169006516596437458697785011337536041576226330718331770919840373217489140315762281526720786641640258565965300279086791159441608573299126871597414807744244761377790668242502306448617323562242837826948967770777394418244370400961660862450990649789858951387100065649735626756234113936253652388814989383264150813377688682532092795974789774819036504109692698683778137052682799432583838435305456952697271593978844821892090199549294510746772314187421664335073981864262175469660499744241356467457702038485683525989031818417176151853572075402571777993109034815665394056859292041179716453350900364134026514260001650249143474101608735080468133889589103529346956756612665353460365087211490064014039089930165032199041439126785219736413855706832512947152751175248299365515199463991598904270745652321664653506380136689928913361822550486128105649270937298609153371902617691372193525778865567518719885710108107424602725823433359360324154240687596189729055831175766615387707120444374536078536993816700862601934597515838106393857925134667155644277193099765705983711416059207747864260244454529041187172393486565049179288962035877076455506835152587415914231038169218617726798936796172318758285357916651670871959079201529212132622438358665836870436524205806786801148232859650496562734391036136339208294462349334458081137363444508722127933785755818235802238342731581570697081375406633761280961690948071549881704834181956965651030103985660952634850518820626575371033403654575248287352242182643620194358987199394975741089764773709050638097080262992386375888181584093773828432682628594555511082086317078039704012655978566233034205419330601313745369655309962937931535941529123020871264147176197366780450129379500457177867739078466380119595714958959059192078447047283555227043996323562988500915204249042465024773677148872797831689989955003016087851194716672416025049383513025061975956720657192275019072262473549294441908802562915791480053250827058037208898592426925881291448477541992052227406686222983294155914634023322369651346484902711340831758126531397515818870297677229141391777306686887569175944893822109354980798589278645699196283884960399738510335629417226545285748598301149126804095667085194479278747847874380189968919057477237689021091337233676181172404379003631554614689269717726901180438360984816395855637701549319047267140187139386279030353567332812921206778001187878349480498681983566282052911994447534331534070414524939622893215378068819508707167536534384644986782469987507074635792738743920720084783837094685850486434954158070575082082532464062612426644359569689958771900159214009831645407429239259431718990172549428291337470298937175997607915196982238169482954298855256728508647491475850910365656348180835756058152093962174890475910385507987488351257683690642998001217576689051701584833326602900653231076139931759460556079447439403885393830633199187814586163880566373682107794390238664027255766707957273262043168363212903109030798618298225670383108709080241263823422987833577756122650038163593123116293731894046208992572534513491348096604169167025629736919394905233415178073679108346784414157961004228230545552229423361002582334848203777878737511328370380530050270642403583128112288617780392778801133525298384870989420162354637439389019044106019942405027502801869455791045917412859189027342967503700250385187329713846796434619165512352053005693732237122258127939901863754288480446687414502857275255354307595160674876520153736438101498387064610020845377847173615404569215315647095494134046575732171622638032605662799667100302187461434700593979192680149905780745715126725854200783620355250475119840599517238588107076015384872780499819627255210922400092776065537170534189462915054093070748942249339988063671330931949724727237799163163744158435850625490669874240155438258397278818362320244945264963668084148885507391720878975136108903425433665674080584799189314124761411107805733048591380746829448825293956469340839722107361618435739809461570084248078933366858624673507670310950574677465034122439121191419918684308160929226275848025974625481844883905448011889495142963031964514045158087824670636820595418352339573458340308453403372322707884375891201741701607010644515474910113072314722288696077773945278699115030171120618625938305743665947705609128914072855284290094023629281698892924816025875805697753482725380338330400930772634378001566112700842557344369895893873639187797201779089689675564156390405444192092658612631700725915201474052710695905038143215484702818539964685201749116614236962057664215508081839717620502621334249898690649668867118825957613289779605388017811664174978365400226061685202337213806573810747341606929947181015343267192386117435890126591240709212013673292577881625265437697033582204651837008589571780986243611170640156014004672840378254762739540247988625214721993841104280528209028382009512564553375534239631683770604188288365014349289523282333007304421923838290941987538119828979969404777258130480905482825532029480082832067607218398413686536111439941381258833354810322149020492181379851355501389774877269039607142249836276766726718060783217036577380390685329024975749539217484512428428351136696235920268992778511543123909965478671538874138497344304123294954091257938864416081612333647031012032284693490808999588532554795836984290470396008596206987571296455961629641504139761228829937280780451027359823869401353665691256554487398394379294805633855074714594220536876656423351023857633446732823174847359818642831142318488188455301539103854484055948190082779449830814322825519978053083331077611023477861463956377691599300236351633085651561771813200409663310461533709226541128810122050767680247749628491991534331985907650182496851358834793643477898805474517171178110180794107109659265142912632326705377905505317641404508675599883403857244469016174384536263426951077088435202336089974229108107865134539685355177309516866393508786564341303637974384909464975792477510060494993404133916280341991301698163177738846084190902503352058832529783269110824071014487473666034493237291107402327600437683383933467744221165373267305308034775863436925054622192292181320093837756497503863888285016773464015074574563608057497409255527956694751126754621738525262807129172863865766531023087400039210480242806233716852237855493647737982454694767142526205063667898741074750551788615888893497154075141352024528849732469979004753439282808988128935049773046861371825873854379116380111733820023790588205353516064316340324975468840347866597485071541529044977260891580620610146602687083830734773616385658272526160610071146732908850793984508842124338391497396927858571075762471433636456481359012668431781591599301095235213827480964259889291424214410036233578719193902268809999875029657544958554359096764249812961609177439173635198232040965162531951170187822173195322830072398237539404798607635424958246828653085231090138743353255246356608429430841112196252991339013499942694157104806712075562794128573147966351847894641505555218313770478662372218183405077306676746903554422667543717000335141526382043319747778929278537289078913281126947369195040577599755278708530023824237182599490633889107531437007286453396420318331910105516993045378745415802437643915353819476504048605629015439427984328639521606539846414597528359517322463449529311549948569863333535019713998770542312972984337676430329673580144409438799729951707270906890442199609272416214908536852086279998689443037638309265837272570602104711896551751233008319724711090585152991225922841270881463770365770624608836491178924863718888126698856405962843308051726832823369219629854106214267937916430756277581556137850825688100253346102608719179810049896537833919046014504328063726393251371713604800730710932137508953384708965424270981821518970629605884296062316424253782594664869333816384987125027312337876976950701003458306266942223225908408693220326307517783185610404857895212003696223608221514542271726949472614351626391722157415567987267425497379124866412322121802394920393633969283570605321661998050653111347040108091351216868238210116693949609231445665361174436191169982138548235191448739921625250929131225532909694707251856948879880447937950285067355199306904053544299343446103086212526449533353940915911276246120592477536488222029717035404580637133161353109130230996579359656000981894424166154324919043676037022027442544766719203776881951878171571776853420428618655899046095757789028035089654897513446772604833309888397360748945013232613465175385674694080475989386691822866871395810150463309678983502555963751815921670636279615644493944558779354567962260845620971869590160988975489567980581775592488514771561554721418261322595528042927810598971029839771874518098618358672128958221626323767823322349791542126933335860268175776372050160760687588908542956588127752928255816279347693819332801827474336476771673579562001875365415484234968118441459159320325892942365327260911726972852931983511519647995880849820110891742104741737806141578481554103552373882483736983886456067118631231923965441357985491352228092701915067361280392814514143431893709339718445056929690585930170001073796499854504053447107077637768837403780144750849010292153766249710198041622105834784042256002848758702430789471685554254903990706788440921000353479726713261391667185342321489380444230578484988722303677378543160418666536844212832805377571280365416078083187537905593672768210242404784663011221222913749024542271955150635587677729519926820085713920052360537150589200658521955550028975259263248540248776586149244047866694853739626933524933770680191229486546768065766358703639632939230821304082270907864404939520175628018631503424810757103874971181026443664537833444825061558289935740738963186730240684615457562026602493949927533194939950778703763576386370417883844684956795292197294720860344660524076391611146146595146238946032291726047285211095132015412490958904238571231219523332010459783224912251425065941784269377152210489011181169930278285938698368073507497606761373896380293512025100893298928557270062444722068700667294037514548325634541570411340282159955397831120288934780446510028070434275979392678953236861709014672466075006395070236757833671637399341431285881791118035695166152857719126144272494811292277693715025560612932107237481159282020692956136254994851919070650998304438604601441739065628879638998308760998499090988769147110329732429748789822252281014304665564048588826604037351961138351904531720115105109848324000427258327377958703559264160538128901668908781272814908416122201887271770970387740054024131093242029891218708257747351737122008869940098721497539783727279450756626149066389417934379481289734017332533329186901143924168420238303089377410044631618332417146423923039440884459223486949820033696463460373392070330800912567014515937724592067347718879389581898058282073885618732518732695157297420548817617611929939632845386710728096902136056040509103798312802752591198532593148168885628720634107721687682214039259429281379549391243136205425133365890944405287373983775123658573245591062403217714547719026387077809178530437300589765090141716165292816154867976702028405744051835026679107703065980769074146856171444766720419357049076740636191503511610720477312885122954293522144621561529817167794525412911638301157009021812916561007284675122427012533500983502759692442881890418544040642316770267454802460382951346938480299136994843782190698451625119116491617929538348466030688612990992389098258840151618739215449448489475712699732977693398976661934417135562098253611881858523901339664457331023771091745788379157277334016219738771090960652098894057440787325341753560559704022686475688166203762339846664282836775961144516688189927624244580401138949686932354627903924417187410017440446465740347636666616295014683988831759680348652161785427576826028009180843359083176142345820911197250988098461652671615880707523662588121540937862088295875029801858482983650193768075660148665816494628294218078748057224482313195404991571259137134713286586997185381526650499039831487385515536567049960639840747444941750169727612984716781232504360914946845903344939766003895811016233044619031980863684189102581508624637572871433700002689901855418240524287294367359954234218070924218775420666189451689815802666722097574883302031301079379965712222832390015285436192768980165420562966548082256764579508018944096542339692313087693746226853768469547608203309206189198078522101837787543588829915541177235787167361972918758405538615852239672391933209042997837689971012928207743733732649517377297862718715803344408969320279516793391853718583367525181287664066783540601863969795003140926489742846149914652693961116174268560021473545921559566152690368697869843783856669948766569956521329399851366554360657618849504283431364832051495842088477102972870515406671897996904460213006550342163278966751479077275294878824694770436550362791758398538018026197617647911329496038516125101396933139584384238390431088289108940718914499513953930559598043676135203313683719926633919559765332923281600023966767819238751078311676495125331171297089232548956862386753214857103975244763621331875598282731674205419606493301456485169017627271204092086942619334026515255840585967327230974501992154787660317165002002541227080354322462887072864025416583886373371356434472178260697985179539785943750326941984982207140926606250682155589026511718399343709299519795353089640880572119873947742756250811275154450073184651501787920640843474184548201914801010913137387822585443881614845181233707600292798235162879690672588424214639074133034026963469075040278194536490857328175580556784612067520721392818153296768466439742715611016937851466006419038704382871622797745151143815989955262280399334948767663940313644720932368190283450305670751989459135865075333144246804890005730004737240078866785276267103390108400099980772051420967919176486736843551592658429743551100425451351361748640153850667565646464959480972503296632243506855539974137991465491525147618522107955178889269133250821153967357808079931782811253332037750214210460092149741532418670858433191592657332895363907861184033744656700409298243393337548083855452792582070068855591322109885328592582182076220821726556530614556607533740752135191830291600658095697771429897711422860067993753711166745378015609530077677605914480418658280686788445970397954363539781298829019373413134898722008453843949776640455981240903330763291812666824027037158628000971678351971569364509297129130892693286902696095228188899554489428023376144933083706453692849647026677918086535695401528343799983631016524229923131501049611054086823405847999788003124550706513263119531704597415026113213552184937761073445853535452329855179463964630535902162050835288339371865529230073242631146137531648117921757730844197460098231907772750101751076836188269218070696194600748333998346243165347805741016249525153178025147868084712152487714569187010077759014177632871523614896749966769691871085011745593262190101687318835718289310804214261099162382313483729941778213351529205450349688107261543182940160050631020305154826918075204044730397927939042821893631195083834181517391532608924561191847491669121268094549391061580136582616032707812414332762478978318331000334965759304503344695918276307668573361561670287822366952457094954557324281252437136664582276508586006822040174452485345166033262811416678598137652250152810577971942198008057996090052865283512470054551836894366149418304712805203107390171311518316193624629639425404315011775447379908289615264539835876325236059627288005059107484884721430301423050107868910843340005396151280600400037978875129339171695565561378078219099997150003939868555441125526532089027847813437537710634019919287535792986334615768903099161663710638125365035441940682635788388100218728945992072031100633322622294867376364793282598262563548712716045932249387350884171150927352863463663928868735517484012654299430902751256987451593960728177807363835668532408533035060078166027463518747154627205712063498335683477741702744259850226296285584627367494316706231123352057373603818354947159828065576958331990054912876007856052403136488970229089692485275000260456979213898434420585735458023003667785901345680186420679832603606138215658522100593346383395387250949317815116804919841587818818287489851505969208459550869908426079788471829572886623775034876566960910908266237314402873120754965614317431314878025692482855423983947710466493076356908024587227397385901717575409093859509242107061469201958020806818939325365845853306532340097916253769544233689331521452978122827192338526888612861720968521213013489039953312707767728999955956187862605552721438458301890588801093512352607905812959214908748363040863268567194478800125008000452020343283559984649531691895508408918107154031048314229418930076060016516299186999211949479174415754087506164031119926010102486037356625612533595855234043702701362508307308591699023663567376398942742866353270202348017137694539319086870262500753050876651049520125648111472538471947202656846085368688278938448840840677365755462697859962692717998935440807653933222610095751378234510602461341822926967624429717518536635655418136915531814567486230857598797163157357594341729314932933845040602272099430504758304845875763563433055643418327087710395465183560900218142716097941412822416856740836424093326707522174981972348097531467278244925723960817917334586164173460355510539759605794423433755511748658602520144696980485392115020514116198724179742279746300925227395465560516769616855399260114438971392385093061396163091360077090510775842839950030989076989542252241656567789595962376767537934079603152081093193679205615582920028518253570936058079753112653579957029268486888618295819910064545223378583310849063800447665440017725511791396383697534275778384459985088223277787739665711382350632398304431468983326909219799344484843676513566366818560313756471585824680841319943375201259069356028460907967090740149404858387966120101176400643227746069683522350274500515121363518144033104924348605203552270008360924416404178874644155782837140410637892696329374185452381602512743037923960204643019214931907079336036806521534419782507397544063968410081742848434838061244046432941659708861675938342628195940057337602696499350278309122770288537526571690435066980295199571793480823374500264202749313390255744951579982943115102246008846676893469497325188371068038111965007208570039268523010761624974292468609291448643954436053413221351383373778054526111467499573236081375165762211411030577695967805997045245792483497005192374732840689497221739076429225336192229743659956479039306436031090449102921534228501177658369540408137722872379612239346500419781205019086092706649836083943256845119523946525781043791550292548251202364551128086697215218281829427150710623469174331055357932613738714845684971164519285645533885279031574095989317140627556062997046828204417242897083316353573895935762122721173758483697941271896662367066195149115465831138126070105623137387851845926294168227241000466524615768074645406327301424856378372785913357916310466621026179750643275049477477300943471959761671193521619675668766233910048242369215799707102491411409362214836866518362866658065524351746925374471028549436781178637460978010525262145526944596829915250029648447708772211706730770347752525399104350147650816952027928177467273691525228917648579978334323609511341678053642919774991623639571261046617408786662326629139209383774885105896127104668813740036893174252148201423709213715592648690359237021522753677397102888290543582096617336570435230322196970661763277087316403386907584645945893685419186240415979859200543962663452364757397942604041863501772447883793865007441004376367825028121929490510040316953977219448472557819303766588542393466045257555869608092485262276544272559730408626247485746187840175665100522922088852230259038616426192212420822225309515683184250231654991268332602513164126665543277243783735448746022335598184580077324784698630805545167190742152119834625929066864724504298628694744019788238149596300540742612380925924792609821094381467672246251960807579940323616825921886283067188475531530102818408283282818207127703901580910528991011007530065718072070985417945604254123506196654142509180593531359731925722455808200902316219775250906441568535007318154498319457525280489698045639866268940192296314184474722016890352273912132354651653814822305959810903346435828585318316368805040844790125397921329123057211774733886868807919806860431937022880981720418655604263287380313268045780481716594329971886199490285588009179301611547135801857853402548893164391421317504288787107693103161423363858025294115134465593812714745502048513527222981935361463638574023824163211541725139315096968889298741106656695709721962197187747725490690152000990546338560371877518423080096664574731927296650376920843466341735490757527639464471204733984707870539268315935161537625736500911122473080628661685062097166088220601680073664620248674946874739343356067818024411139172250493230076634475654889182386731999924254181329193670772697462426449187552655180409328377668179879321588998454512214477319839154669358584130360588125216578820258300507590739584801801895292412069144377126333391580965161156512530736211513182548287044065639707552710719521920899309079342796651155617281882353134824953806386103944287968404636138803548303933257468487257409426767877761417311082514237863329654780529640544084563038321426665972040404497340384548365752077222210952188308270785628684575047466312610052318449281092292851340579488737808974777578278330927431227171914569574310346477778677486344051683278680893820171462186006830429410815402410395272114146659344718987015310154844959064088868362806118694719156246150915712476789023666851033926533323746719553375634452435589935704946954480632287067333589900533767550691680122177697094602611297284651518170303067638280181468094434860315204310278832158275927408451664102527540362923317910632707618471810489478911805249557995110036781726154503664279885986794385409758817060444245633850605790912398009860556427912095020140475823363862795841238514680948245601281408209247765160652662472863836297214393705204553050681617334219980312192876761751134940887919506030402022699365949510397391996642975548745212976194424712359595617125121744821836928608818074947095480845012118285181141176269830871989051486218754125451446378590363420313160707396671356490965514886431676897110303874791060194387771954865257775186826042495762334912749851234934388170556274857846673367900067374157224683265602487764170373969056918457358935208186575148949695033839342143026911160694384075548069213113845469451157248495055682798889408101878523688475020175210068616745404080861972791367367638979026429441920424062966909610361379603608586683528941548229524534867593206150695880468108248955014911041432402351710304204843177325758899706533369673747980462466623106035425665183560470077157124045886783911688201381406725689849396438646647361257373867717739916449301658957583505527068450278300217917362481552935858486583809289742851596494928683058366139041802297345640531424337022920035617816541515990405490143103236251932000128420350993420962063750702060719567943289582549788571194231357563654980370350925439998270145136683051704366166694786127386790343285843402512781769807676162562010805776047855054857612739270532025157716345568325715808541515830333340659822502461191615988518300140091373973082167172275585838490243407204879603016620719386067014791675750575921394653264950841155056732748541125865475885681054557712979578456340737333694739744358188535397903743937985719438450357731416170001569325014000178384254031777919069136200098648779146500692598169425123131927241638325031487976935191475825573859035892115003111404063154629216610972174956309135754076644446813671939600979689959258875769482700913933411858907654101267081310853760550942537448719987021866700042564947524349250958167855867369066198069101007861156106907080407928034359862056456691047608276327634746537414531032077521729421483784398835448755888406668196154983293203835303930339012064465842996151656524542769117916100654521584208694392896552393537034768355078995995886679833581954456208693577671070909046545176301065852734606388212238232324678150600755240642630221114908620935892771028524221141167864513164743599838074929374380381660283263862995127185087396265864893504761230299430252811477182724417500743701024259091808659780704635083422177630719037960611185824986408531124161979282677275540421882465117506033576818887463444249856429801163078300064271483866496724549381962264198903711304593065939014622398867876423629167486095361976618554099810339990590273966987165197562621727269762949914995902095689459515059165618984016924979025433103721598985611912345273196661310002046796745922072265253156553028484179580236295736946478567396471216512237384147871206348203702916497119162860509370831315741974595080058507591238404949445152532889193132525206591267621219555393850938957519424799933996350266420649844775426738862433861590630842487265845795733582327674495369499718907604591506998266371096936559703825492924444761552520847523564419624088122087672994282634365128883146130730174765243725772899745468724177221276049791675698216650034331577440315261064913838842667574957297852227748574193239622550359908025244325327461815861003652883015872701983613068056182125720551058290174447618609813158604361425078959158203812796221537598584844009513472331486501505454046744685258033742374572959522745212483747534737782630226532555524890373500381368164974112870636240786548105600784370856292153828491876731453623954284823855079963513582028145062026054544240830275979576738096398439873651995660633564090824742099194640618434231307290580892718146048245453450759061711199398633912794198076860416449830257866893072925560372082567591924514338174652604312404049311158494574668330188665099599044590728969458866690237598516105452871218004197488787468467132687913236551726617867568163204230571642993849544247161679405743394788564816817784882839229955516497116215690493901946585495443855940503348744745312298451784268744364644934240131608365038753696411542305125509573121343744840638778097680844041572545345140307029400917517944389806226015213723502286957585811663903613236443618294379684278033336231922435542203791680050721968725254921307137433086565455735440852843338407526820845920821276905751172774943022045089905511447801512426066231312938383744983775887112080047687113664231867660114885140787998271526304643417949655063993759475110048339237448425178998298543142401998870170847608266035280302456980222054020139986164614059070968260663227042576280033129500825883233501697797612612746019083930983256680723821424639427733745767854470525138427817738282158679012431913709848021545103039486263693515494059424527692330543445516753095157775982925321803051267865214128161959574168164579641559531054066391711251910053892030855182183615656765981433638344089136077723735666643159074433507239474280797401720811271767262321922608088268968176863176596439967127873375737410244284805525694909357905387441351877898493178127095874556101808886004426165723535616390181416273510758405747976545828724292280376811964710085137774721750651710144668499112429051721206548539706547787860916885756615079630511668497509641728253899785455779025102763962782915188692188494472045673878978928263650325089974448713867850455487024950590256082652180238242215523305907178181899792394113942849478055551295149426611546716014065794452180851093257603592570257065051217236521971131815544376311021276827245392984002365523528890771104017950365068172113005388004436932089658105021624105488248951049464808695940866531652051712765493335045850090563096314516328890967016200402093318033524536345795596963757166509453760248659523108126761062136960560134905017442452347501136464353641520943020678496568161158590376205418458923572725892387083504265197197989501365981083369085288912126860362734027991526698097901489005528398143472151663787364935279878723333265980364829761070903894581290656652978960002263930813399477016960540693738351258651693628361750823644144350485243127706876835538812896775254260406276119730155623038675440945478633084052611079001277754512820917610376311182163318670696161114422951814073558139637034418832761735083613198608015372320541950058279245953708586753799085409512105331006923292148404832113915254057099562151541195247386923838986358848333184495235178164281708597039660275213708159280658322345585661836664725721188075118974376676901608472511027179376354373987519718418203526163984390909590417883892213315679472191083817021321526925542895926995172010653896406481841364086163476129047032128740624682288983367251431213447572510427556143105649099328254150508142748238038448774558500999719563003592709504716079576236835145120160407465404372205366350211776982252159772572530242353761977732886440179389029727236792381235046057598307483886499920996868727695503678054539309800237534539956204898886497134108704176523053391928702711742427124209388091959955346114832718784480986927537598923470357081389438251992640068878761976616830510553565963280428720833090149608142936304857042651909575997280036412765134984517723238714261261249518135949693125995566927786201555219856872454367629757046156441395689498163629222833411184277360440223212524306964775844886024181451797579759487471511177159452894866822328020804540805517738938006775819316891773717543844513331059270007962579205157393759208335385150219351740723410223219327213973417168034644686783226148940411695313722348672366116589291718870753471292807848027916717241388163238494059614498675287865876935312525405646999608650187601788532408557177999094378389804126925118177306853380174282416753888580921032192481174931221954501535616182531038387216026042034545034800050946876662720724771750306779359863512516394172235252639256972359655107815408497290871659478407568427798883552842492770657287341051364197151949269614390825691659073600624195538203125283356870253538624496554908934581774268348927274717072548148134203899184514906636087169973049065771161441737833316023486456592258362035083185814529753368303618082806285810760595580132998839787683305246364680381670002440703232201865610029330145718650332822382898590250871178748316575676926381268213400841540513258942139345776601910078416507682961046988117904264118553034808321609599775102627434815465141245662158578555213755858459553847299443464475417321737645246406385394148042724436093057474582818247616040710042453611704450646162875271349702525152625124424572002904752488869215668841505379134406731209017951269548041036677875647102310550698426239518870646794912761077319550023329829641962413032311004123881891439985193047284039248131477384867445063553779933819303704423330099433706022597782746286877150829487488543619572628149836815241384584466384446640539763222122856568834999486518893717613135214202828941047282371131038742257055765279633626821288918279682421270051546459023582839486764124292961491796827765164152784989726815103579508803617305774496388912231622250683538897329372769011642702409748608442456147222554662235251393983886136999755219177098272721361414446657311003105384063986355794747416308077271720253705516959081876085310832053482669888312687968078376907130287402380802127802645538863797761773401243419703108352330794053237458850483382879056856599171968505982000346227932079923235164191922581572173721931556563130662158495947195632991371941789767406391879624745946285538904215025365533363396475188157333481904356630271168632754068212769297503827548905207712516531674818266952165599622832630191154117377535001401936726710975329027792635218239575997735185907138364176641665759459448513526291779830175290006026895599203456103282947755314869705361867430322530790466544952523858918029412154118521068284078998905886709276342121420571475348905797448461001190435699797109625739905292062511986044259695703564722269831734114469605388080825244760066448230251427276336949148474363293606764574812123163566365098189896129687148685322382401478121808034806186155021188815832594724933935059176752122567361458132405540359264737067504052510305966316689690221563098469583378266198259828794099106297909947478501493537825024088486257360482647626323191406470486711329728308256794631777072921089491651228144450678108795050780970585367062200634150121161064350286814902191635855733860614242330954502395154556242037858250329698554958386724966410244827445511618259429185515710664376242994148786967230253294575373347870230288181761954788109080406096471442045109536967393191739837691406836271091629921569239886400245797787983641287553358863322442227274353498721456497025962715552918188737393929740748849032909774335614337178419620497379193277600785599199345579782122073865378843013980171989647654958918768236616955947084301500304794169435199502382397215386563107552131538092100707597121225998808231757543958018184870431775175389963819490162715665495974254672169001780598497490940216383573001518423066293233672665408825164143859561858745414285664093636977024317989944385385284364648187827042644217548334902944632718644686137128078813598747121876893335668365506663131993302699187326864269528680258553437738660383511312031686727817248389506294304089916110486070811123588370358160078153335085262180121940479093119988601857189588952005540495796460754439597637789723254743765707990110516364415135236462848169009020967345954120524523927352068483580893041665201019005275164236595558468134027836849091178373882512618085964232732173656089877258739074638076354353390600443729301962684181458804349535970581210533783775923878057420070303599736775728510490458336235582748685575669677755932230145477050648386265309093713458900815231660237112871057602404767948025253105862247748888694773721367455697650063193368282905154828352504542542700303936765128591817665800252181566432723405624067915114322616121342590761436563144876314990019656840654135949508630828397101788840201369293775765905083436124318194153024887564523871486313305234455628975068442315063452088771312439111579920975749073808913663725899615826478373138014468496849661603047489324092148442126481867847466945403756573720432536404055846127383930619245531734899748563529819804755523648503688508313577154291209550774420910845517843499838523204491396296624044186430648762005258974092843012802664192943491799920079135653235590851048325262482873572913413728919122661713922801872726509364304987108285834911795669580282489516993720190864551467031471364466990627269837818381574595474513736989990422635462796112507168118359452729438365544133458470766088777382587973617455486680302787095281503980852817361245536836721709357662162698789487985475318585153477738862202909620300230057832649647379953957041956745087627948268879734720806731257952253623550535356102013652377346487529268235947806596115513264341356711313865819456915095689577866185487531865234496355971791621453810006371231739524734942948173626585583615491760971564991375705449616164307774490144917700750141021835460682184430825490077269059565988526270596324955132449273233000923629365892032540620506634809611550859767620542529149671443150634975096588223641025837922950354843781081370551620137940207970684390367474895777095397262596332024315295179885868289230331643404254090203893376382991031955800944256637228052177236918148785886762235651704653781743135134439665299572602672094899121834808274278953670828779512611592889747379064913404501851477293819298240441347479286713030630110086399503417709276902773308849910360027705394640706093917352994941603589579854078734610433489158172522500590592602845953014512700560652827442245523938689376409746733946906872275325650572584716980294095413715342234803165486581155639574012405624893011285277084632658305214121766159662781333852440724044936412748607086722250689071856002857540901222406472215125941429537464803674877518031858638311804873639503159074009399458605289949312774847731900504944949679484680844246739513468291012113307813478554532954259658842095600436688839913978725443242139098634430833081218963992787903181529225818292680176099596391978131262016577656202050707707977150759219861069220010928852253001245701804728256459498974737512829002874242885318971196928786049509026334588526575209594114696280240596619940282984365597114659760131427510463787889796740140151290412780734110426744812765912672561727865649404491850125104250169913337878473893778932646836596282445633758735156302552643357588850238856512334933959550069691094983353318169520962058064513983770797843388464394830768544072199006238118507168597574528537603158068700762852321058790746830074610922153396265426608439821658636023948995856105843889509539426946209002059633118046337674422856198433079840880016533033810566463672709555393161679288179661133999949100084329674689645409679491007091390777603942341556573821191230304159319249028135067521577343324059060472816172714021004821852248285465442600864470880232688750389668913247416360178774660106073714014025841078968721376391892703445469135351592365048925825637642222404606631111689969172065275796447687530330388807294262043264907362464419676668011559451177784925564201402217172331555255459555422641494312790964964525059791816827459830324601410260193121211735715065643311296403737077385349719166816977281323428943319319177248158456143200051101509623966199073201426770020149144486385804607493701941946411171283959273294236206360626289586169483142963021606980049096543222897548416414185411351124978834067013419515943580467943947738848586710536209639703477614819188287787995006958366194891034827644785837306785571044766848036109483154760991468258954148956629509583867846105775966820418010039564361788154133259804990618060345866626874274557592469297992783997985412656105093071025144639746580939681692323223514386982903109790720165106225176750232490879643842767728408582392155014073763163051783720777509956972980584148338954036618608769511895811989483901336982956328314049316310443291700707447297672886114702996255546019120190649733094092695021537258892538111244351047687677773796589766054061392932834437679510491341791113650902986289093085058088074081304733323820261586482409013919797994170574244620235327353644765881565428584226341669237209374290235052432312200209073484597996776067289921122503997062737144063621113716846947608398279371678316764367136747399362108603434352413269144670493745658429283963262668236715432266832116852979271963753637109560787616298918544492852850172998920719810501996338467735485268626043687093580320095229049301941785447661880776704964712566743131225719188252818806263671326885136141029630089400740898747352441452008241146705342491818170153301819558325554255476867438238727379217521818569295995897536268248178852366067467892357254854908982790835584646960475830345946596480962385908406401090522887316350932648394928244143211696122903058882690007189567879996587390649186650871873437693725492037155386877503632383864734309889897847267151626529361362405402427978459025417780017448948356022482957361136382213139858425445908899865601241571251568492700617556001109000876102731315043332891493047894066226459384046726400843424093253679361952070711152029696533693079131988192290369029853619858400679449688291339384948118277206427614381286741069906704945362582937932005776992561405164998325089920101975445380131416389377750194792762355626734246002450396979574643996419108523839617953147744317306111399469150263708212166938115523920411528475489189827162055144976780764878453967654406867977491154988244046072524985519294126436805601384130839192010135828811325457347226593699356621670443612356628346952795365291112215054921190752043813190116881449930941396958815696139189536184988327978305728834286782775200033132159641623996603801016627255099704609618761803125315442982753549199638386029842510050872038680476029021379707764776500123253862697050389923344461139935066518726033524854049928804218571951425583747937562545385441337180645967814768311968221206777032627254828810996036520728727315571948755537988304051797413673681455981266713941267169374373302282929746207288181608008242494429786256431686893016951046525229131722020901961336577563943609936734281040294581064682189239425667897022984135272905761900669965597647648291474580320377992001480531654526575346120391304365558897967368955872346928458428089852772044249361922334038911881305745211878704717872539033997552445832907442705679896466729889598456002308636398235611681986842987813844362823223950164181608267685230733115786048532760092789713189847771377630274168628305446431268018981515259931133696397304907363351503387429642077862805119683200586960825821821777162297316670190871939532390594069987091396465825621563340138388829620427949882408260751443669362032737705880405127612278986906512021139604652538058869214567745933321222181766593362972299496844274839587116621869323694019218126898101070047337183968531971565278626198052909904334328832849773533608714459804927734452701750457439820924948369854426787772582163007515651143496362671133498749042035628592627836413864130173490210071974381916068813877685014155064448724881294282898304524038600458334041371854519949793260473884472236260202673268386092384656394589321684890805494646806088712955324957136713184892127389990292551554357252010705953187670318373212204786175374544121204025810212333233115319488218817269069588195039400253880307487125897194422579119271928111640535361782246704148715817795176258715953623612608448083906357033582490887871503878423335324299546658042965049251665151999282540463946162342648685968304377867393402223104349988807026369090922025095721867500800975258985902745748474923635421092363847364030496215610974423141951561459172474450211088590037687321980817341800558833996818543391994437170278879171166985460510027030950504072820561953252039354601314226413152213718924655006610499727488450793597171737871911732549287588682572134282250283546559179516470170013525860360520206638547104996980482439189886364642319299039599501214728554606326677174284346300700537839515312544938677653104063573995243610736195551251005157742218769268644684538377731145219429661974755705246444645737056702587002988761630917823353852322860207710460629831581132434725808269049120249587668506024028403913030942247670674834452548528775669033501325541377323747313477875207401489837916491756975490576344106849654809121545106839954787240188393258132713811037460025822102092030141433501939336142496512739249166891608522510947169681174618927597288058174435439651371110188892879018267792103178652171262004202381078981800543232718526837217983337342053134777966141608455093154632229714636717702000381170666616580759715473454584951926587931495043684782339903221471301722333737045508468435794490509442166491977610817554338158133875377418032739479730310584180622264145192459547492445622962341068793625542919517780146539329540811438693551079396383529933635552481264786014587107304709228844516182656819640927199670422268573900255700380464464604097679396341932704512237748271042519639478377490439273152449675357386581868405835716040870060576468794537814847058219286156116503609928534243593097908304062345440704442519448026728245951976515171155792815255261295953864820185187731070777579810922635044007568329693364489026870477536834222940587122049505718709681322151581798159895301784818179069299051406688945113629289626915866387152312946700842351846132694361123181117740549672738060580243265217161477054228043681726167480729712208127943001567710953795619367244114259409225034205118975056497445519363021276836001855992677173049865081704807336720843070356953142785831541462923411063697847994273799551107029816840815054716009685736789917847913302238636681535139513181627515403124403797010879653376077462585983667341761457456200943584956374941190313253426447003206062572983154400860195127516745264492889489250896996132779699020542321004692361571118588488452406346772377112059331762399099883810174409015679547141565005203212829062890179222673914771221954136115412799020003742450685674087524111047258540895966145367422891963651571186000498118046501395020942383884738251497946081595217185372817022884788795856437354318363341572070656678025627148269076005718692162551757714594879245386694599593581294601115383001451709983273745823091716262344162079812108515780326547898879590636286440587813472316209593884916190680732610564981679504103950369652727550928069249421292623583579343501736603180352010184402020294967756170788244904278037253365523117430383770874833561732658808121068982818198844196905748402738650603463590998770648362706840118026832052464650350412653430871640256300421457888066618004504403809598979237274574561148043862585440145045440619068524073255328513856627041827625044793102467075935771567628493858742413638893475396007315382238704310264189883376230531213096622411076099956357652340048810369909632423409375598199745783067245408306248799019760244438735892228169096923751472909445841666014025071947878421535208901481481259943704919484379158920756062068550673575585853414080326308998777022996423894502107914210801205067185464743753413621160980128912911068465709893557362696872132338682045661390456415495215952762621118941300234132328760080563041073450530358460678375960638378439343665948282417024335180675350891814587044688838406427136544399985203273102164792228425559290785922781160535015015275761300619647509085195279746798639374577624478563085175925716463672307227247076223296659736428505495605952640980112612121874487164323228606129443830822433934387250468042759873736632555262000364824558350886604435604673211501978436591115237408931161080449147003330785448390265436392515489190945606526082718183204784272563403153004169123375296365855745267892961139094677059148423991771008726822942536978366568346860751699034377024299218931011520140819459884216811893819906649743416986734506518756083722585079289915567960589390426854617180588901227352909754002253208150137834137393379971780014862810191651913664614273321095724455512886131019317950016894584828849798573587483460130968005840760817389610308436261209508752011040040955058995862297947093959924622608728415011109923317516578705698461074965558621784072885126982552699688014714153419496373830392812450459928352840492375366457712027864778131071394277473635469893383605550181581043330632583178561243747221822465930041608537203864171437033077414797525334041085935723985322003064220721486575805755473194430117854189375519958413518004088803060775766570525507109467191542079463480034209207037139402392499030868627944089946339020607086805923526269355189724774081731433507489249893397538750405159046201040711298296766511767492055461674921684839829505868727275799406561606242240999994233319917324033998107179420826434634792293221614649998885227874812578734692271063980792608322750078028352939073818611344218128033257824725392540803880418556986683176103592568298720678009831489782738234151053919186614857072562502754185011804588306046629880054488764961299812967282325381761277269045562397061885034829708647542981749907910871251930768413869709317201454267472469548610605569890395583370683983939439984663217090355691886337918100622031357831614318900732564064306325701963769871472618902126141582483182558986697248857577038750990722581853428749328378978686344887034765353820086194802673038235281758207876898011465310513484855848505497075149265564482775580970297792636661602086341918611159806542297274201235856194173187537635882835725674095747318456501693005510101224739439855137424609989320187840411662189151574189359984626618724751983008062816574817793623862724362217047850288232641187903443411175658542919033919905636243740777121202060514322523880044728406519636043015191967924366669085639822003180045451293232342984473624640977525079422167914152269389439035899077921402867553888892868127462414878317403405378656943377197324890262245481067114936479114778882267914126974026705481627481412478534526066778465469714811120845015044824056159540757604825936647892327036670515311667445833739679630796542661658376120793099903974344790728883423238670979188884783745469201735228184655205682839078433776008407403318251455593942930277669431117292988195741365990553080919307427721689430173538413312333083926216437301102162100469375366582355965460164843662555027521006405557084066053021392944845486092097727464961018407626674463365342486992805196115688899047261910150897005741053640861773382247095391193641378386009672525943893811118917045338310382595801323048330649189863803882333025196130680019309765431266585314350236528003149648784223547485587369323131718797603172394167103949950793998749394904806378227715338115649631720922669225217737429499180692350300966449617615629356749506515454359993878034132711940873889394014790866179300853810273965443930218451652887680260520451455740806774310360255721265350277608664014123023080869918803955413131497864207503654865534925522434860656820723786311584765934759746531905821495729897550464696103971321237680288945885549061970417735629770973745798387425835671639506249537457259031820804307081208567879019245725045159137409939290969301529616753461246946987799479821053732405003466111231806840086346990637328278484046173361128596024367136777593771044237288766485803000001098871426959608207973775505909693155452370827992823525518673760117962311505517313040321541343584208194856912406586174158230980212254514805082933941295003077569452246268668987924058551072640565524094399247982315772402688880837585457829229584815419992713173631054875451236759032431492626918384146087541302596675595158935304649523410939235907021079184643072457253546515391648792265267188197375541874012973959416724761146106903706278806639919662416892373475860374920283245953629401181692799679708006178228139566372886419629677484758565136271274750999434552173380278391806892540653381717626488874752733847511628422686394345740281080329259794039593825235405059513222862361018808712499584972682656791876529493050521919209930672382338232883118102181397292756123651892353530666383250955027702676113766728262532236407502656990526291625257179361844111610786763193726682582991910355574360607679179601488771636356415432121019372930668323032432396789952274650309077264112065057851879665640295170122832389334049335747423798001803411262539216658527566625497114127116519038231713094540990014907006107013245948161029995629599322317373005643906974528073453179334197629873466688385371299410659194817217372315056085830368751984332674331710199955780849024630299818847927416798996664510779897783882305122371654122384448193940530606280950305180724085780834703680670360767888837715031420039006849730694536688525082441496209183142203456307922759072054169950124789817956326055058483663365776990898814520170164088986000322370026213219355613510217030728612391478720618460093572087770807254739698015959860962196318884370376417281306537184909403488702337539723846174539050533111367313858217681188341063227445171338536380054769422792697941018561516452879583637416319140355909155882777038685060063428113346370590413814171161045296346042530857272849764842296030109467481015520689834898220786390033668314710489883053323912125358190260437008306740966248200520547040912610402107531922576709587030853912624856858299247551241984365500332518039137582428693631083151005749766802740844858228067868933570396737701519156200065625512050543884134943979566437598462132567263746790007723678098083600125801730377695741514401962621101200551050716267583911298263208556009200448853965869584573277547361936919993427467246993971306675545339931864411912036841942144657111982459370780943985645776449817558134909412245063255997711696004992741212489585384994418250067978106522081042914786210949188910550325069323292623228240508862894214206861655467549411178501033412443601144518818034659548028138617751594688473889135029699882755580308268125656760802750118791232272934338708051988886071388167367467265629174732786584315948191592396114278811052143345861975917045316780788513077400510216405200273588923680305237150426693297744577975916773088343399716242151250694821073916830369132291118369186620337545605592954684412356693403040164952098427483339037477774483360401936402110751770111433087491143209287608069140535041063151903873029449087624536166182547630338467898340282340268724835059980593623870053851245131398681391317240032993511957766338351974432834069473756335480043873028201269599233622478005916177363885796276502967512279407308887433080729089402511183446475277157556963451505116581686942778114301934661539100102577585575171543417625125206360433181930244789403555881866269152869954475997985604853020357914001657897849606177768954249141627783104275761075973813008257057683783568533631382448220007116323890435878209061871930928769783917909788632626207224655034219657378266356755362152515335863966587573341446520189800436038248355285600384605779985181129615420783341143307458126095033705562061758199577146966004060472444207006344707717187831830419336610195438627700876863668324759309535921395087331869805447421100019490248342269571600668001235513377882079819766028710425398350989741241499656656694427045368208865720876051606242854289764119630861760234142974429366911700485230966921989356309869387259131388803183958995470889132762403325889800566857413121475304235927554126736858103886497492382079711061025427068875338427716482689314527143964779928964197511070815562217890698958886256701051733003873801114043706554904495453333010391047347961421755225826526263695618934951280559486657579857841723558952058709745155489157702407696676898793743423467344695575042263011185610263272683014817210840053717506134441078816003829905225950003310555898609858898496898359103535388455838439764122953687184670471746199003526684563872396533944285892433103340539755589775675289815833205667558968630897042408721225266710192502751736748585950262081779221194479468630142443652720725631597722748729777052904510220167293398264822781078130910252847062673580335568858966280403939568659511107254819836327536055162509151828038663774398211723372526697403412408679925736871990619354069371498814790492751868036091877318359802773229558287003528763201613610178388741398808467214194456536050812340895444772109440544671292845852880340605837443236765735965329129037846591889578899151545054012739626850683997721434753658446934192481284284339349852223008263039165711307383044198625448714370137843519706789029525930540384397484146622012513553335205397381553515996000523997163971991979179394403561222806200839550828589555437814077020553507337953633355469381772781755595209799986439346112315579072030402552797184022577876681420021968968566370412732299912554370093779782441394659169285687351053342727270041255503844003941762847909067745341106681233056664785490260845458285188000591678247126858952052614404249957095644133617504884599239156210900594112794334909720132232586350693571204883322382725399472734488682820203300678951299919553899337150146662890641282642617245920949446831810181719884419644917026909286355727263751928680503519582342837059538055589378928927033806504958960761937889954319337513188502279412012263920141215478137020342754130187760514199373978709506493836694783954076735955598614529936506340587742745523431960454612911074836178610275660461522818740116297357069256661031124262027297387943097886804702914415459577892904024504417692114514359301453834756166742877002586699681980708459205177493566549508424981920700459628035915097359903209483673527882764906684441248624776785887642466716945252997914042567092104937377295515013960594333359140628278605956443760388483397758202481855876092838285382923565862541764858996395326738276694707992382982659300187091955001586767669398043128183189030876456238301777469049388580851707004492602987450181151144113612386635890595994125617379934638090178352976798370964771567611454926642002243288322524404085037387523467457507264582646053392005652070643400841985111232124682770228163765040028509920398247538972575877657727285029666699523504016449850726371325047838524034823583884227245916478838466045726288915433623255127758813563669952617119403646918337301332166243152117911207606755520192841283543488599542058264492210841937917384234313964788827650067234095088567251425069783584931431478414540255184286698512379396719776802585514618582271925414789442286575415133973480797706324306114138710264483640376719331609435152213539703089796518910440929797724574189990249522214128932249404166774116088964583119049787609610471901403916161464250435907395636061360717711214752821216735351491988484975138946991628453483285888922881714462628178603380363434351551799514643530617477146425568354022529655875030269345776143389935967757702222090004117087341263020309156043688041015727884759333064017117698799535637369064134423844036606773514469391170633127492135108868772635330949778196472436058526770374601865069692548806748005891229205461961393124374173953583824158625807181439854932727504756400554477685802426902025224734316214549508620744312787080281673025916591328642993531718711146297692504055619832649332496601348129400612074280695641356556737987400436806401627520126162451925076580311561331578546513776847631393334165982040512305867010247512885194264775233659730229161441586846611204962042283831161644714077481130318371174821141030416438031596882967035208263207780184730995566034761352678758069837974027278597767371739765037633997233111135657284959767686805355733210410525868181372443752976799937160446938487781392962901892718201260176079324023126560532236082468078521677433305439270761412524907022058021411823853845129000809214041248363675277328128969633367412791240670708627123183967125156139126990903054345237314023101914566939924460864961061843905308739135638026975639437058781078431905652724736669010798796442817518811666969085896758973234206506725220284694647772508443469601116111620803709318850775766037405238137189395208188551466262317288170635371325008307925392929611746271547408415400373638331461168686952977884797259671247514384744576439763349355453286235611555952975822967082213633450586138045699600260741673093175959230068747605476185086357893959533914950583124480626699728997110532684847685814020400156022394955277779076592353512585369517543276725021041896934156172842454274662298379035726070720750622865820938420926442095928881709927149228496142526429894703508127320937572282572232882151318489725761506219828468920842090935669715358108548164428777507198518562108749793130468031677276965959082916404294523734923173372264348990970670248024549214674449953405973762552986537238350687979094600216269951637508226809507421375320364747620506235465990449793444359544944231327674163911102170865647049304195830038115668895100429234139036519862233269731280489939476828614347892223751680349182880551961453606634092024302519008662112899600462266800839843936958804971110283218111414726543223601804793841750566585721655962891485706215125757553752999895068532157219768316508262854521888056155681469910754333326175732623115135082812780291533550964392407770333090359596314799303548275313131648398192079784880678629608103427804941119745660037220368517935202748066198514376010573745414068150233005285026318575618135164893117399781052413357851350190311578677103357606969021954453378652610110613186103772070187547821915558833068606046392328388465474879466889345966085727533610358489055276829666813403643790709901561948143262904315977913686084887499486139493349779735464958828694417718012638086709093643273694441204693973267513320677581068596938580201614672898226744552366029014880623123830757990469727321656704124549040170473280457574339831101704687335065453365168353213062726600321193405513883420447477026018858471122285634641748611534186867950774203070429223304255453099327906366496468203080942440441544008491533313167918212134124862683640358122765368715313101146739295613130098669741979903066547459432853537708409534427527011366420371691579129751110912432848085554384533255679035638874858968753871198764782980184759298055594326349067314994024418628272398563610587306819033989679610639831553605443183338833918588274496504056367290606058045339400974554193307405938800239130361277523486302956401803751777093340173898702038592433045311667783406838595231340653914659128613490315541476165869383725463277223785762612625993495609650735025383465645485252023144046794867557589944037764973933785384780812488010834991232577497422685830741854947050544246639062159411585674872229437169424499095005615931554760065227202271346110268237481887649032379985860640329177909232071923604756482680258538036763755694203515630968328256949546219504302574645305493224518555873973567683666352784792978091846748509195674602766894119697895402750150923194848194113485139109129697558839824876065654934536872194585998757159691423437146065090697931208339581207314562630146552077300666131596360872608129146654988578506860490669998054317020310095160499851506277103373672411192430591419350280216874563325468028970217874925524337942083074739523638802873494773462085579800012585953323644788943106280624526413829595037408725342805530200281986134096305848370809629036655215169203294283694142131868732101047980924410926390951808876816884646513395798898458002137831952596727614721523773724913708822540108353625281423687188462135880594642714486363186777689882336338723343246797491010658761931990800290651269841359022129598496908046915806333089961488212466088371009469059160147826145663075605279037931689645871985597131719603677547759284183963031668884054945370823024913365512430622577272552335104456761842137799339878512372448731624041472798557587826522519851297624245800040776523926107367196896101401385169681755306691272050906712348432362125228079459972106622781337107126969971394489858322238621291067358415375911821460481184905557516262640294367441567754480644452571752442091459691219737528168927763139011432782749694463400079520603140783945874507156458812026726941039003794999341931457966340472031043921163337560435636059627580651171394895823125416190531723290987809435842131055311935107181064298546755002471070809534815738093818780326690908037201788157758748480990037260613742756846688129184387587420933021168890739104527845597312795494018320259520169400781625515204387622576722314993992872608899771161453662412201572606294584794958278644904303208871005003934663688096902312134044508612776667208846131997704047570500413839134768905632240679631983408795397870465902943161882614608607865752702854529816133215817708588501767752849144703719047597637751381404480362023983555302186607085425458355284283351562273859086997676338413599952956952200526964099211977637553465172667544514388543775815375944455287696826221279761306981364656243668564657267386357835676544376761371781479962391913643913016207031284516242058221594006991083205398086346853139196989571712807811898539289926936030472236275693007216861988965245015370045954188331848453089732917336404662754023385021802418165297606045659246146701231813842872249592680815451839568983123272222383887830588058035350622555891567837821857507166509572571079671650664556552789448859642789751956502726762601499637183767952337962102699167822997618744823412126936462515245366510933589432496572116171560737233919714538570897263333321771971324131362267732646008513870933367192153252461186025281585406995266933205134028244366473249533071911536410765839989366789810495731330034965559711231008338058927394845384556615703581229175022465203129594734614002831873139375668384647081603671257193940591232538659055719734790028115227927676499669857031632282551908025494172640962213338502833757538324943329554536414574030040939776798207672296929851315624809752138221050899571748233535598389838294677254736282935285128838081616939932299758787386628358649572996842856289107611064873727068098174759695870413031724616494255953294604406129866539488799844030422386641351407856942647325718111791779860902083942697601690897256537832355489025812401943924021448443105063342829634496266644053910444130611670693852236261599903749836519977932189611816893966708437208545016522602625515706429761921569025395436914369687877007746382304033244351758745125529762127591599038707536051504806030906281663904749471577710380225416860159666173841955265358760561950275712806618248712715272353774055952597841857781378096735489255639415075701295077363305319598197465210418800820966096046893077693506402505168167210327317192515867238192866209819517232779485548212812558668646337481346977385698246316600071913557799683416211454564140998571619008896542280170274758589820211776203455016761904899104978644419117747574328293306475851665099793815236616901037121153809122847475378198924671295841775037029972990338516262738129403474016892074785290288821042582990083154786473585060729912392760514742015688906467558668743491315991817408497306465333000093440098110362630020438314225640039888923616302617696604662750426976583909847494084998053052433754119312964541201658733179862905374162607427149733793442584662372510763010236238689132912946451655250451251943025955513947465097657649981548546028362691538694986949396842794641353022075608222993575530358237709848581342498336603338320263217706094328044955280604772801836374762816951693993351077681815352039498229079073893617186723045813128388056412521688744800334831133274163375521336604542355864535126500556275383951223074316171981647991717724045355011097967086001183689511653112658782499874680095745489974873197646287897100779523464248696161717799382447906364931877763594882361324373131371500759533799259662877778023452533990813173274776412961343566453167813715254983369953193511137220209423884374857376131897700322767837637156855001350713969568204616374004092639738239240201069990370735641992194907451814771660613339092659052040510049159150350015196132257405057186325942445899346232916940532294730131148094279082534717339974566825175596365992145800578209356925117986594535102804519059951671421172775440930409619896101368891613950952007974678181949869946784064326768828853516651092243403887336163341504297021144406568346233842338962859939997757613081037860457432696297666141158320539638211667694906396467641003935644761208668779278958739762147033202769678613700685524976775653709706866141601975633159075009098144377699778741712940765292007399911658509031688767946522018710756935327928591580485122081776764909987103890758385640881622918903978275653807918845916231702078657947864116582288272022759414765557207207210642375413718554014815004393234249813840563090406447107642512580832104940127541927901953287362216498045132143670027109610013307744416847436873049724933732343847619733160404743650339792037760700185281706118575516934894570471167959424665813044599963919968130080064159328793242008831247970370149864703532708947998779692473513194628041031019765487377395130579520252086855062855701891034024710759102102365634575451762959899178323606883649022051332877553210869149168179488185297255691227024401620657176871177556914648411233438381817163228254926695437793067382843606826742925144123172893906523101261047686938058591416394235125738974148412376502951660865805377247521707443345603778299147501209534541522622847162616168321013295227684659944468499761584462340903765783729393770609005592373801813744051863992202444978519382827532006786231766444538095216491790134546247743116209454892910914150330207678938420655961984082018370394302736317701182256603069049644004574629391280252726282129060797870308209537879756379593747923111187721053296695169650743942446726926841622962831149946652143315646261607588333634578526648213585541103428508494670537270602379542915048116803978912718326336088535331464968979005474169469283049315468399705764846962381073400070518043419274111722248216143865292234928339262480840329672270061305531828293641794059451116000793342854292883232165492589901446650237313826943279623344397382975243368235419657331489612587856657886256332495270246362040968600539252907278131526363599547586497472153078059602154375004496279385498155842349181542596913269590262278975968342266273706546816585212079985750509812528063160715727436144128029426436897539969634159570362002851415596127466424239058616817440754152298876544358932340589730206332137278845517175680030269842199910263437489859387312032062632724326727173860975472535462444997312147525124940263452354396140913397137502591400197685221400478737816230365903302493427183537871683248720188494476956731382783538862871543525689242030692855819092142566748929494140105261193002867887404991186690145947704302845920742346999672163896770448264574162882943930626677668849723318194860150447791392631484720707491831955189566845221105161235300258286793687628979374705612297036168735746593013762255561812586177282213992768917029764294216840457252077465415676949973285252554844314485130271384197862655057623471665860986130555088187854781367067057903497686118051187525998561146608238133229237223966867273332270624068145401908171850155375837523953249376225719858337196165223443617075448684243819089808229187428387395013389696998982001714493944512161297840674301638654942483490692551978527142049267116815756679952527802524042282358221594228493612885646596417772443925591079061035385684550258576170043252709438054399670629880973022278305751636375708185201515963642685355258397289568001805324714218513112854512728623100875099836124129603247324033718730734811034717959589861126001077411555536646115988544574629783061340062828156575948070324916818923649503587279376861288644294873403655495902088635376320022413771434396998071354668793094119012519084451354136620555102797844405029476471052591353461477797957329620379988187244060935325441832541854347486381500645102018797229582247837060891894355960374939303215908064543981539656807848811975402974332658541645762803671656429096376790578592940806087844907641484019582937645659413478560811265300228313782968460036707517865039653744362413604882410797050044793484602534353397091161977308354734998297898372234633744475145849134651535489243219646305614285393397652532433457507027819265947922572635516854553957967756064271253590981789013938330509425896834248630311537005130049277747407003674666183600143548460435195899189218082855013606281517599593813911299383386921728059651061006325352223520848880025389947105550579269860847358276686557736505536589353035784119435643973122975797193715637265282370188569831827138352586014447610249489510289327132583486677207382447773179070395233275552258286610384375612956482297329766066649760611846506930400229036886117923667800735620137583938032136120900888462022614432812881487723344220788926514608348449785587424143552859449394450429787997692163922203014376634449314886421690217715468316873838982770987096456697130286726636965383431294326052051630872149426514245934930746002413384864411850010545575035188247743758526925001676610056206877126954157077581801072669199175908417518141249933733690496305386539081712063109105928376552348819944718802973257572855931555421694941011155192021092942218967400177602830969404207022445238066197566880130341765100706156827380395307469853353317786150590389514178359242083127578804585969393250524239698664735456708209401611800297754225268603091244124418761326797725882939608504928732872274427260722309577218937794076411518542642030515854729926837983011820308729497542334729870941014453259809725400909119030561077103540464813676193221812852876867909920009500575772634243677167804717793030364103001995671504449791953381697869423673385132479459154072805839055623068075977029876990779030782810849309259915602672402296563700661513513647434458975757040047449222266022975660177798078786003719220439316970676288508639212160745476593283586327817925000835401427141559479725748878994909319711689752244443478439795149719434365171805023129527869348646581838194999117607185153741322073720096834899060362255530555582686283922820537966243615045573870613869982511698505536097138284473923196241588796420365328338710381711921586461470177395337681233466056278406150522099907007394030402484639767353595600980219831490385239504655500104483794078664541454351280244756872369536955622253324416007848101743510947275208434808425962208432727888276435650431420546711481567038891711216078371933333097021360384464096345680332261051664838744963726046591471114723250343948058169677508837605882191481654222833793840035982175548356773831819802343149335229721124336560164143035165678794049875558155250027644216098245820364051868341741263398806327408992640251454288772835763896444751138497076548131754297032684028561874593218677764779303484224639879029322134105945964149209777011797827007115437284821732558777984698696188683016227835946333340590826431515500533342827393543865113379918614099744066896877162692008607741633787917670688576954324064616325739014292215366801651992999989146453586380423640874042871534200038583946872976179328101572007187505219198814477835459883298829423934391657130350026947771099266830182321914379670023015540047805081743118300942550544109645397188596487878825803310180242499865373913039016129905833390153946929558257500294194794341121542531586408644224126468607017273214729985095692027847099541700760484388591269278031975234147041092173688815500043858984930403614714510922709829040327736326796526067702158989295975450076670682385857147773832892983800199509026717164453380415280624010784707283723937340351988071476477700767000804725537801050478823526302920896872801048123356588587943754324568012326926424511774936455774247531911911058667730505732322333772581126938449931069638034520300021192998652413919180557888407799842286122106023213539370854076473526660934619495983812439576087632790330167062851396884429183686816856183118280212548056887067101644570812602576075444579723425685139248525528751037147185073834756481925770895701667401865280549056037977277831146367592145023627649208412955331711459484983346314362022299089661514653518515565492122687508070503229746447009400603239629118700108588584605176892926346625496863725002248452826859264642172364624038856509330621033915815910879030081938958557451292503905242472731189968395281169174211285719867352986958706391509973361909764545455306835901817594570503893193368098607230834738688976483768949261691179426563720156266933958458832749220907689873149303629375752145649444659348239504544700630530220526550505868623051421385988875719082833464242825443838093421652496154781102641347466067691953462393616540706075116024250434428522066098241323922663957402302611176818420278081586784147606984129265427141165233045693263994667914144004532911608534430045970320525204471429115873143908442211324140591918587381355069273634989575373717077798824996260517286818226184146174509906454179118720101586212040101480574669111236519050157661029050714616644172337306958888085805150263303227029510088933032708880708770943893485968492905482682596525864699803355876938705511873693435548048315082157655388156820292570151594873776737989224444694833027140586223994503263941103074416044042810884476838273035808118484288812505960875466364271158263106878496450573131348855378414679177685072496844626692347543053681249099394602405207596080152426475936505603737641741527420023456496025229588547699549130342759236943545470960607573089378886583878309967395700474201951010649514663114754684641013269065452585302994267276593737828160927159614782902034827331699043405328636784716515596464179674042001361724010157564262427047063895316060687221039613499578838579858891707342183073181413179579750469768369717230959041320307392550364169280645709600765163459531501310128399580035243010550550405721058936421449533640031731956482658325270871066352695891618416653464444051735270108824092222621138568422333663706577163646449704363487010335945523563117253733353169188413887466658878401347498762427336990834755440195455573501690011216470420785651020375312428892031683074297742698646208721451569927691892524645529708562888939007981898282797073081566952974087914474191707569593695573933676100179433094119597225030035925716649772956276610418864136993048122520865668985322572306136405761459424153801605231348386733696883169441982915071613835245904833528483478282137747497638850333539651376313960425557999271051836603558049689746473997412847184286370767378611903487371473108834834786199249809401258096336974106472950163872369907937519056363196878525096023945792380583595122076774633733645226602030296507976821711197009432333396670337666430554569503183769542907627433049894966103920861174910343135533404086097593536056547094569682401946687670666373227471495085899136779042511856651977864107106267880889340557488879066998519293366672556349645725831660811863309303857812062363125577470045285083901321339856929926656109968062378725924900944030426803387339293165321401222635946637799777662051252465788255948232922058624990232720052648244852383126779903870041363416237088873178583155161570030312562645856271027823424969585373986282227684821720852518829322718496942269890546162759912688124717844426212106693729038737151644304832087485504319177196879588298330232793261730003873239317841712310180613546030786582145980626257970773763871219232174205646696327225030791466960100058436612252751442681786692551427799300696088396515429112854951775234011430660646612093843494605598608999741804117487428115348939355155542308233011332192332228961688013285868911868763145594828061422577953940977157890072391711217370800003891688394279319945056737223030157512054019002417067883031558621203675914761201176697896290515388262914555893356096262224053669641430584509795487213656726762634382008745772286581588664934655817275397662679552320019605547203053951804123265393614824013517997814641486555767760973318141710733210829845821622255616948924465141710823270630156519943398955290971705294057147767910303520218261088253037873632780032048493915676116695743183409401352470111744779260221796074734227046561415581573851408341314906898759444424136342938347552437410766667649292226615108533375815865108006983923846350946358954185277840220007013100729305555386975043022170343179418923359362553020561195273682481748828846854189045334644530716095551509382576707335278424010860065896287760152762039362436412777613751768662228762036996029656644320093075408895011170836538713641196973185419314852932477945082627166442578670057172352278810845789160273025599683166058237016581957791928303456231716431292915517633500539643482957014048902766366289149646553659108135572505505148257575654821592264887238385998397810359171672811795860124545844659298816944186521714119953947922970058576168161236576830979726326875618986410506799454806313713586422574399328699394400373592838377484966717506333117032350164193209103702420680672257237528414995285728054932228068162866896925049689220852466989514659736959889228121549532397315298699821508553480695117993236741946520593261805308523446805053669574977331586436849962376634584576483212481373642704596366178655083931135185392784889600291973681119771467191833905356460689823120495379440888321158291165862028095488667422717374124486607411699700811607897526263649492177068141098960479437063733521613670583173936449624573662785176953917774669639271498130073685183861662021798768389437813745758651250431088343218521642618245259899937790155836094990311093856204015521518646400958587806380877116025085821941009687231733158125567946291984512868963900021782273053561035167289648615364214014915352147674546867999193924509985416133306935070709446497309637857253381131927971022991062622774206739339248039894151140001768081759534059950576864192434668634485648510239149404699456948428108414358348407579305504978387515188951604519278280679126141804135927084751658433500493497557579394254272243764558903977762816865632313911836976826620490919793071366083856565145804087512241374832606621183191547066311915546084258569612114712337681708006648074661695157210060665994978631180152402771034937686128853151037577174021089443681857673246840054785711074521674595176374091549931066405229406291245710537818706522264779008515482249293966040825750552304144086618127211888842495496522301009627189518685398752177426452272432037229976951927711539595964664132352996155364919794038372718797352512767577656599598083054751124087693160332958656616364274117613341923383803934498729758276647144778458147428635675802280706406819749978304037057174921666399693672688215406539894885981242879999716315046564877336128566994381579623783953799743022291101614169832539021074934778724938224428828010290823093651671030178733699398332034005245065551367097981202019657996302808366452130136894098527516363792119643232603210763725116689507102946139995668811924157055909700923532450476489799946931404586105903610944868326570727743624235480493335853980849308998466721616174564034864982947252877204699433332376737073611970267824766626080103045202755386028835008723456462672480032457877639646602310107514247315782915086487393760586108485621820028263850631838647681691180613377282347757020387929236276068881922320180412031077414080599686664539416181097441773040574900996252836353480390368037688241555452325888424308650788353056646856839638339475209269603540428706365992913913384087308540900240139805371980752066017214440339017702439890600122249939415480702236976378557727835010482089747177562514107293956552055257453065536398958057989000821029659018215327240867034679187215174182582994970117567890624252443119019828045876311555645303698874945682830879816960061713517087480987765598856827736346589843380662478371488413094586805990327164871568012349745579012224771682744250998461596043253970029842216710085780534581553344027565836950105334597324935119783415559873474834452281363259954499472389560392044222053702917983988761657669216329730183069834703306866238137940232415055235791661590635894480627807188466075592106717668002945672436178623996045446853112381095868195113847184184613893961704192470792061627865396251091849569777853760112586832371372049984617589030617036742644662523264662878551023580792779393705170880684454946489552836339024051089877490581942828135777663213964011701888583564763923894930670383844586329470949757942652340611126533340071183039978170688995563643699653261093568550391583200488560452898308552613940517746074256156315407170190500017144312615583557032067858917796972132353485079570142772554401796442350851895363516026489990765616864703798620018629781670635304202354603874416485678462455446449079904935143782486118184614183391114960638771821379381633957432535537716696967456766732184819627884080159264035216099972777805418390228577263724052206549727550412629199817118461633375164637786050693049569418894710231832250883650213101984549078914740460424395945008702710236301880027536029865917640008986489304302628259151130606358677782748487101748418147775826605189452560678949943286679083444172852401492908899339517013980217920294216939909438747254094088147993054331325120075818543407499598721257489829368168179738754470362988020042967824495721921720769656223951567014948852595210969439491549763384067777130175999244481734474661687950299336039769925703378775630118359571176059166366800140080817541848384165209998062486654501784248493340430553622217432906030359682505890397061610464292224933557280914853219434159862958247637632346496595481177815431259550113790539171793142374461816453664634641556302172665006262639730993462099007304220278540421716497677911857968784014161061065367857913708263002642551126164012589731657398235435194750797670747737490084217070087079669822326221534434370788225342903028216864856053766790942079541367312335253411377443729233213582436406602047383804045498376983007077005183067624558310400695417551205879449380802754165028983845191399031849600914182978648354139369618323532529631837768870027550625415170893800921194373147096523952763559766140053006595095475386372031708730106559242408953601359596087030913354866171140603992409825001226381688414307041217890665543802754439696250480836962278645025352274981723418238311247898381989009909940499995456437994629166609462726051249891630571520811759667436399381485600763522713674992257755510589856709708838132622309959910474701629012563952756072939516075485820063416872236141148919724479895078114489438084761304574484381882643375637069192604855932424544316502125029192236058644919218837137172841831230165822679122884219409114052051629148630875610535858419971614644978693375352474999279397886030090746416330949675673429843803148079563206423532082552287227966729628390182243207805774050430224203021028698968035005545333280748896959324794541255046986687566325993116021840903043104256068403025248428627752389944515287939809346314146526221403163749943849533385086807096188563214143627828091317923812569642112286788575517961465653742307734586371177353115708184312047378502738874234110319671203476244662559942910601137192576830183428049748111504890112084304197395351203472832904372351653317759127257913156178492621362787854616484768914917455494260894109453943803658542311297032592201383050783343196900292016522483159201308939858043989470400186486546580409402608992645504715461115751157732061056540999177323631354478530717238860887915594653897966220011862067786139325357053510276494739143062878573238187083665851217173427323863143052130613289537674659573622269715336046275732862351514117907345515899397844322136011449136988982134046853949318802162889368519604459998582516502093054021912768508847054677670689215709988573272801201746128710972555197335806563946812529864640488558128245859823158509189209744261983062361909327632463593452329092603750120083884972748469612382254512106702642819043372315051977844427161394598303150036726099626996571159388459949185869801915801661455823469140656287853662135937041783762872398647006033124722661130218044936335855401013472828400471175189029256169846381098931072411544034274832656201102151973320974831001970417317230883719058598102059507851069707941288155908950951486367430160060398433242119444944124914355855361877856522660357525812962020975945440932545176643584611012725029622053517070043694250213926502268480040303656540921890901320873477874602262637704603613753162480004086322668476809635282919953974290308608273712657902267623633473447685070372663950158499148398830712564777238217842639727224824735860508839355014712998921920682788813669691233206279650502972924642952735169833697676965585396269157766307556388035507214327032959555362789632682532223367191948588267802797602293333968652239085409004462305957965587411467508478546394992243688488040137325560443179059697200722421825294644161386832138928585252213659813050926049312461110625412762412375010138057347135256125592365703758366101861197318020976657027776782114240124683669328445536427195472603824679868632416014028803081175102859615072658595019357361082105655896691949288664682400959975957843817789619911161957097876839875959455974007677353833428563087783313420739046631956255915653852880524981693210425195616914801862235615535881102841474078031124010701242271680862485416014860854882394852077735441822650125175739249693889632744055441264471087949485365732090106168278071053148404630971976629381692152581018800260407803385023623278415863723872746458170361647465625232527092753948282554257011908750690714017753547629943472421550068025236110633718115907829321183446469672335736109741781492118142613900018617998291787179614453271017554196634726562914993841329217503936026768832705820226980935728750002360433534576757869398920960194845446153477228353027804636909377554873697570713174053678441754070491605432509999881247305344374467173449142950123623604784906923647696436946447328980366881874730795430009610115431951531616666544434516296408704004230914373488358785193976837822893956335457426708791640738965639787055294380911541295303932848786206647006420219640370339950938403005808001598281844963473570867025508308243206181892318695506776944082854593298210923681795081272634890591768561069275443931432950409171656379779294506566424909951593653975713492826095836204108149030249697505155830033742780870399923434751521336137253098991641125195308596035160792469313372312995847320066222626410650586160152387348275032058141260783469145889761531068308270791948721840223382361173370245513190005345643549754891379279927792555101165075492021286695220327579202699721546151798162134972693699373072623142213507502835015858880970836774285901934448821479835202044803066338603166305564929534149063766488366908491974483258497358808841877523113238894565684565298872561046849609148365656628563105386539542518327993198167940324735733418061403502716217420906207497793095045601740460078078021403743920654310718604849085547629352788089448555153946435833628436725542344364040745895928486545760244978702653621170393899828910610424657212053081083847039512633848437303505193580085989620801771343811961301976764980099649508009362029416799448152200170159165785806024000010887299548739636822163529084218305598138802523457129162466680183067855087619215383077843956256128382332803111848778719074714774406196938374767548869747508382752192858953044890816872825777620397370670486226726866520430904384441187391566507204610602063694795655402979713120803753191602133889554476223580221509674950954989157507529430509558922596108478358114388091609384454769593323348760799066070825753725327200968550586713997686930958124825051207657944645623791765914911663661281726459921235493739653100256119604528844438155194194799767763660572685841377733496278813382183536967505239615022038579458852765283443461917903881078162423819122174030017910171505299636486748160910805828077508137425159569440415996873798148530776073396174194479507797579915218100910377241162063674662612705514303664718183863798696093072166411445932678432813789291479562418876761246485127866804209552230949789949730561783623750267161532259394050116807791745529318027926425279133562603042111696514775442544128849814506714983967531459654427401030021655302603851119448876906223616200970161261064650566351079718848661872364869451603546319297125343311203879423415091851882094126985525460770229339812364789438902164531250065306407899414197011049558991342403880523051005952315400521347245814492991196256725929773692214377777477510974681989957219288493028491631760771796235440569272759836758140229939929588519317237177566895337728441643309480057329118754224625257363708184039278888937243689422881788652439307748378122878801372671131714391012523444871172402381657529438863605970910125975178737874101341324700033579542343033810807304103770622836441027693139548045439872446607795163890830766883182107639358624752742653796458014591955784715924168134378058300222466157179092811561052088074204770798611372721493893798459959238381297484776973496694265487859138812185101418216569380853640054235469839146669433411346828716463795648470468780809922235126671911705266288040712881300834519098091759922549345420536902159175735153007731295005852912414350860435900083015564449288977006758059384954175265773083872912980933412224735603106153778241365286812608513939684444688841049807147303362593201820099339556986156814052454187150755639631269802713954111899583355655973120490907118768407681494917706873844159312995353150160011532047514214650822759099654950535217345711811679339642236071556197354282046490003663481538410600091759086300117458931996507152080403248517826058445353929055055193235373167055309807041224326163768179639048169743901191745932143740412989428116657074258577080097726012894716514641016780116439935941890991724363207801799348237288058632864963273894833046929424845732112128359210976616112192376808043023675315914852306648516325406611966105736768214806385090525748143808701591476162769627161513570185953781761713546870572699252067222699691885816158152448313782413090463585889205822529594719510856416025628647258538152894780662914878159710381437821337264485463483751404023934118387267479104861858704746970826481665577527273366529147816777142263770610725764656806684148737161043203067880944477098990329359551387281598347296005483397603387858144436096189998510684136008967832170782877167497189943291752812743790337754537909362722330173254376576458294282200984224235145655983036651787305817052879653087523786527646564783517399764699444377995916566926500264270182646371949897702468340513718759213504052903521365905539696298502741732584937183149984157884333774722347048504356060919900496660046089986545306987920729691009650426290144747305710840652214452953060466842176894187561510414810102789490765292255460576472637103038915935412410799439629861550338584323626604433667667128142734595838597917195100158775605045155161289165859822171914283680486333650731297216764083144398614125456411478292773428664267798172841846014152447434683829399195574105827289174797561056089830386853621838951848343990064785747071769824812848807797105794083107009277935969051259709039881978524543899419470564980607925545935216453637070750642928477231448159617634067391309711733735587857028042832537264054702225585505906497385009476344444951678954219407998191427790988665502009053001075271010426488609044834316612364738567764584743751838934282383614222390960923457001284494078915271882671245866472682951449642234366084956191839448746839394616986083590915537474341808667384365293599840248842914243666202924710329112216449997281738307239171237715295764738537581149100817200286960158816995321436746232209324273513232925655172805559787491693041320545756433372483248194354617144788142314405263170032777615991898990061897570125820816096859028083786686618937125343865128740189886324123611063839184303190383830317413857714932531397260158507101627068985956395503595253686557732183258963433385118159946016170166933754793120075418883440957703334820874065638598485460110643712749459925432544485831466822769215434490743418332333461606132049588026053777014401600255238526115493708934268816116930522722506493360612254204094813519546808484114655317775858676273493490625547981758323982747525293452257016900817635276225747917473337649684636743099508898707858340764575378204102827256917177856342657759987127184865144011228307498747232030564895451967605134949613363333051630953106128526644465354410905397198990515918321718831885221836179942432762750954685494607640287404019387843584496147996783828119746721337259790459823822772374372094442966558604947524339567877170658637699891850620271442289952320309003217409681820570242585711632030616950526912773865598607257414330913924107417205282500392132287619737077001578609791458515475458125420519501299130133740745705157170628952117340199732931566529835098630738577730343897223653149589561720289569020770498285028760606011437044633049417627108537916852277536000612673258975147083958876917620688799905292416552841477025703921398424314697380982197362005204020575822917978227639864564657215179490164394881648621228129681534461524496540503262807328718491553041035125414800438958639502468633513264872679775767206042809183741472065974033661737843138232313175837323081589980594918026759145301577515195305812634373370239354199566557469864285995378760058631290168496357207037523095162913026502748292942990075528063810433933754143991547363067696030731176776904684287260938640319004966434492292834936813138044256646084142985658490991428749349761918015073774442468592573927810746936240652355805967319766284121713568909406024237216966923434358048024690872682058008920315466001417126536236015858585870825736532404078791059499201959941359051066286167862015994082973913159676241232448466689067071407605960525334634434826451912151210839231903816040734074483511262133698155753952208011030056616972026610464876652231346850131907934631351936557469985429813536388445614149515950621394000427158585530910336495225106539845288799850004655660151493157265214515001202269411955538921364961355864937445398248221222096326111591319793469092741528858252871132940231696901624769537933265725165223374227501188051971777387791142952630585978649932733787048595265715211578949681238583840866867438693568277882135478567460016727656682174315946093573687950452773809727971227309968459966821249267884233115831258601340346664581969901126463743774884703037455303490062203849791348289672043313089794317600367525285616095850130123504772022673905289980715635883922091466062869004833864326000076957009173989862137417656151642109422772727642566712730648697853083664137982345363194359149930418675149366623989936382996133885252466942300607183936188976297260627895371238552173932217416448100404720137118753723677562980036976858526636565795858201270784499023461225701508445502385538586678741954074085740174347207966233565188619144051077477046546037286458374824926489334816675795778651247033916631056315692581037137364682256921442422547347008813757009168312162925801865561213986458943579326362321266014298692906277078990936917846517811509441397806752251658895870711959171104475478422101529679498634418669028784003018730429060008019808431262588482995301117635389340513607045044996892715729550217034014604139515236375224850055456116591499650481788941971877949817341278428944070305786463577252162141425255965340475748069112555802680277765810658819724886102152758325692292932896266967735172705231523170358361565555376763732164392829254529156716181507725268323898964736087772815179391793318641268069794710651680534752027246218146608060382020021589057775344353547551297288821938706847987120177196040273666953870776805490105754049035060991240860259836211302087787000048468306136456093658810972610951026244253565445289800428980398983467565251183658388857767452201836178937018291380123697327325175686862714026227236951471567867818511445338682173758012924332897197137851876373742377101064729406133849653547948446632657374124696257701076938180242649549206472380060638066459455730591617877727945242508207458854526026322655172705739932919047816835842647637120753810601509112278775053945077315362071756556915526809845475185741841399979806310178317619894705050731103220187930937744434939463318035575476190736851276251772241144962219153330520162732547138982025972920177018756594811775756641420825986482033459346794572087327973227727640942303925456259789458431006865689182599150980332704649567614218886147602330814030031539310642780085845237342344263108741305717547767405828782018355661003882765952246139493388516065160420179483315223053187532490883907622651264975656760978871512117766647282720424861762600400501784491203159940539472356344702986879814640823023630139038927080115294752640492754479366475279674549616522249063339389032838839421759834091105205754236051079092507105926388996634142685120835635271401988074448648630225974876298500186312339634903709921159565472283002634126657316912249383279652675110551158792862957344539961210866856940776904653036766335689139867318480213864584144318335683484134197769806589449357204700826210415744413799102856444889422375045408930384534053282655291179570880099575931611848296940692687719788334826976844568034658324560118787567012440286230770160567045293235147158807462391467141762871435447024834295991228200990443608832791052041793022409596735465860811832437260513994818333959561087108032312425211359192417316367921858853302225615922591024649317234788688445218563705838342929796596673365650619796624610413987957454339116257649398976920881360197768835099016499672527514644571077137136418005201150601322532135594257525231758029969058017519376264717781725051651579271751316220636829485495071433665330175625210885776692808343347877496217405756842446118502025905340441799890467074126923329536789379953088935750056346694520971007317294174941772067297908102148400763790890548440613162243767822934359892845202051196253821738975839428788240725559925713719905975392115536624035924230207068589187031286570135883434367142248579920433851927627356433942815394909355536975577572995600328622751270480939402265233440639933586338583743107229082842802120434442698064963605365210819540494164358772202424385123897514932438328425438572990157176473395982007213259721590861470113477798251693343662527985629701557072484207636970233565307121516069043787103816239375251393081593899090836075775247426165605161130961699276126338132254238690394210652987575073358179517430706665467505079852351856835231359670147237319610519158460725575975131163903798526287573926989680644812837240562699830564518435543968251411117268369054989953473899054898651734833505695496227457680079883955324280031459552406745823697385542428605760400318611146898798912025942565688917581046944605563780741683848974085428020843613245025911485613444687438845197000276337945196063670413648766774841822392317548812483737184932958815461476600031460774684048516130895731685712061128385959831003483944646283803310846636912461004146739588518186223292413692735038533083937951690690531197662498793861806971453784562225363992749893393537574255211015133006999738620193727418525496888712348852635217049278358193585113821694682377856818285122415331397981205248985692305718739217443229040546821172178072101173119391535206160369138947762067168356872140928293279963766381064290621033182745756138669308348445979701868246507521809232633587117476319918164674690691338597453257057644616118470793093456119849332977100783732638135146654832718577257243847868675531006583353862278143575397166209694037244863210270117164796900069390801048573510579292254544115706467889480368647888498758829327777909051125687995311252187244007401868200596204242738710758241980715093315463884470084633489215801741374321553056499544886375688439307514412335022271801335787315629264117267733778687008296416906272698703158180213299082719445073715957328173120603959713779641737691302430427214056879378651360808078471149684722701510822877642245296970523736244813019444849947079150167755917476130984378498041429500114262729223661110372253004186341699156340137297501106079537137831389434251922509131169961672810936805663905631012489978250534954714422080727765838602010508608491872570613633340192010282734758931177852205364150398217186802742633309198721544536156972023455190309362523091234128708192034574899229011499792089330750644532364247164090559975679713403397185408554931812768128757120980632245314135548296959512227575516378668023336184964533998414477285595364977595413930205196924436644893144876654089612158926635002761755497206056342941610637574207619526072548651271570839830457730815030218917043841331116014180644382453499233640162731819855657156904382085300479319939480147242416517017056738506865554511541430885396401951429390258192119069974126915397456405041264375100821426883101892873734713738896811531738219319808259910509693988367180683646940717319671644609275775443516448713882657570800859812258774785453795068369646190211875830088337898741860504215926559604496526457656653611435299871476464289609583100924476001388332055132963138436358942821916236258939182498377749265457955590099028344164687293665558154259912340034287684890240629164155491526496107291280937270440731660379214018011800761493280300991159282600465163686157907494213986783292218305784237646678785425881103703345893666720569080566901698034581533099449481251867644880762522418216844852846821331160255896600337520581586450013035283271768122537723065547896698257367418005617518554821347519082254077284375178303306589551610409412866568589040737997863301311413435579914465063117192726886943518964983523764407751217152475475358663164806537593811478799994197086008182655315588693925786585155006686371894286279969717153364147472247802702259602766957122282281759697614242738928375281740646337292877490566947666528926334004147631174588509913233585967136603347994698119180263799087869130142580696780899065785341945955299656593766337789198956499389615313014815389546782612683970727065877468643446639673093965583510946703069861702627727118520591901055178260320081614549213089251310566251821590141658283378350197068533126610390049895519500472181296297095188186973981711342286712536014754049699729361077196171748048984192518360705257579566363462688202810880905406236783140783066421965628862728326622854063795478017804530536998213673020343044071905098923969010564015480308180539885907820738593522153451335406480050159506567043941712270004813672699013509756375087984311914542161115238352533229015972945730434891879033033197815880913660156829986723572696145422303201773678459404620856126704868494501285984231595445581072865928929497096501301974603708148110756470389805393238605782521679647788427314428691104073721560555609242454597950943487002732023510851904292475076882747276365150902387762760258222919237327170075252127508388867590038651844461389999036551842514289395650992999908772612075523894295969264319958703598780756269415974553062681007262226240426910697325802022073003518932457155231234995172805295769894689853221511289222309808126520535698245380385844830714238790794050295981999646625325631003569265979851467210023632491411566337945021600165710793961257846966020726353017865791016962010070544277613677346258548001459754675778241138081305835562923854674807553431017226183065593007781000073116052140640867772251086710774746155919390626440509573914306568991944790261695700415565255182895764518137650320736236945115497527051865674026374587983206698541236828180469259666231783607376100158113532852536405477068235856156326763511511057240964833227411202532044333966234254737961266314366674299458414364485724169007706203478360982768783128887883982407077549143767360078417732364500993372391946177648869465452120627122601624844121894281166685679366250910877558551515781148151502342759364803787721525363690690274397067082005954852739391679757255707073250763599755183870663424339301360061389411247066228197464203200138753887256130441461952535837612318139660186076155936514758724346450568628041546866795142003823276751374168170876024752796202310891828933263134213046928293404037328749343124296121445535694505400078120898938974875689142462816796380961528173809937378369088629273218543730461933823510274674299270494784805900475997032587703598172445160821322593622174969515216719487252561626106052181147382578411650327886738154736921653808401745435314064211647182644297561206213424989812040474141494137407873517242904753646339113538047574892019815230075162488911538951915299983283520228028824302212308917133563822571864401835246965360429602468286891601536477585177338388542940511088623475749471276223224292818619104055266586853271292151663435425391440114766345257689302430646687222817450140375141243822366143016714544495052034356539312326825480279198412881217283038224532013707664114592026986102136618133371000641856815581744746286311278031803050622536777764701977380615379083145010307921921405970508080437867831121769471988951891738524250696290555308621961131542251862629933733384820626965883410485794585325682659226600667334182785391351600041196289628375875462751625845873755609780360166686702938383896501099195432325511036434566384522529791642420531724217823469412608882578838685556129885025143672109772816084008332460426377884573500802390473589867006897942297464495024753768126764520891766209648003072302521765460950093674486571552890537721630526170978731036047557177587762139600134057007228177174048682865876091335630953601537510435914298933797181123345032291956599467041882452156694371291900742745911562248814628089244207388025294184099676440967916463970726963891920841210805713144197278943521674949797759443390180468889071438170014825801260749415065939240987722488187229101106975370277951899704638827029656470409229955805984590888112731259300831044895969419440477374738402560466863686272992616822532977562854718101000428568323959457517254864966424411154396311662353042427924049211879884527231364216776237318500475234514021955347149062646729575359619169064992344346975131840363417139727588284069858146966452454340297150446693673308435689946811143269339432028298974113538547447629000237251116086673052049133725667440465832634050119369941805585123820612640003348013410104086420524481262358650587522746157994401473650309735016582225503386203882216367126279877373136528744125275526256927261576471127804109956263762016408920956919982080428349757704527242850648733023876245371072405237491551868310298816132762281068468500153139945442462984478906760958341891240022849626399735370980936216399077032445721556535164178987198868789725180460762083933945205533637405552849087091914962501316066880004010680782234072037141788096764556076357746496217474562030493912607225293664405280394610892087144042425539944986121451990661963939107215891473534058722788840946368895041815846481237708168983328791156630354769012801288254421537922776581827514171839830657048496781892811167415380304250481385397748742042451863483517897773472913440361415322940441713396275062259207225678546486817647803866143800176260426991628516187838401057816291620923315136341506633641185264813497514368570114643742207153442565859440641265066543216892751461976862261762043848558739455444978676362419035179366549876853265317273937888749403259045556482319403895923449100464101530521531381792753121873386440559478610105426519432703799505875160467930674749397548173021598485657881691867510543277878195384490690343192710737844425180197506994096900456996110173073858748586844678821756939726563592598925985973924368194955256347249752754978953975165944953196915440611870089126973027650189167442311483352842484975735919794330241279012409977042383595838982299001822763634144823423534123274558852201763053222133882832029245264406216277153706005380909054798876223339600600093815353381655426270603352876117057444169313453151867301153102139248061941993813707418939470331215064974614754508538741865424111911767702427907518677636050219397573047819138649782842788319942813647922257362159565447266540207759825407303140510793253708482340286814158122333917269849615085436498391761465831070368309157679559208738115400847527328895755520005871728254236818507942963658604660723026776300981422726766659481318766377572437134807508678705092804444932386513081746941173703379316101860785245527723850470410629934356159082168733911663257502941178184582741293761903883038679325886764285850097813316691553782301759512027932674584928689976591325708276570819843936479583483196819180977180113936504797267039135624025804943898180073811083618949479245462037767028075835758395064128893686480619282305550720353836792443042653560875635384034400989239165820140204425941774260550358181910362527849125458342112733580403764977526928451687740897322053138352067004667620868393107455089229201775638629644157672506434893014113621675158154061417151841675850032848571035603775951840463773562552623337047564223384978165291221688662288822214667975514785711988626185520379049189719935709838404203703484939214404521387774496943861671272375249117821618146422250416939677733866424655230381281222085179323136819527017975394196935455038464541909867223313146747931545702217060582279738291430452601699927196535629080231403314186552853135997112329008601266169427227450092061155067803613104720742030561403709984024578187813272201723362890667123022536704335037881316243159391867340123531298022509407451765047820918644699513073069689488536681933986062369796979659686329325805483405735882507522712698566211061456698842632413501909307733689325000650939160895293714518410905634238055320768244186406119006887056752850235936477135246813946442262325872803322434925247906320479303538239207374054267661551377058263119624926673778420477934341162794712096123510218586455951896999932927911965703578179832044667333578493522369134687333173456876393119092458158510311517841410949155626238846049865065402607928138986763339067705057091031402948296133108450085421992007928316503314461527665880108975305979141395526552341178977326919408853118040631245448001596107200645513140883722056480811064903128925800167705040871730809978425867880160731568964502527501262161230883903286232475184212568326093626747718402453161370328777861583877469065542995745528246317725677509211956533058337374198241373044323625173392188078935639928422095943188769998356715597667997851288793841829661765563116387727170582372957116430001865981845943060885728367419182537111278927141879064450841163130955219376189195099661371339616827795831714240335506788695102421033294169996250483401042031038114248628536850077656779943387218588597764648977965877027938590451360396751603268440000477112003634735041966315045308211051334237848507378539878214580975584719804752443394894224406575665669576370687629129306959592726998561881688897221326624813459769926537593439922279455644823002341581655155546432980170641999299857606481250313822548693197032555653573366910750157491322564096759452883773454918920580249316167827486155495661486964076396648058680930280866571790026102233223797386831445224795708144696738212099518476301419876293728087448789864615245158659105881249466742337686348875898157271118819347340918533880948120734079881360039270533095290678630528612417085364560136231344469308146776346626700037570680597462621278101699402151618054339088784113343971015287908570828046799841679532981976353136375262771581030220199073881477501514238105714773988311938406608298022218679970569989367229297084882224697688778258762974285805100770796175390158475094733485767283623772982254772933319279291663144671894701145513060737722136762342433386098524551087796180879391328350958105398627785352913461706463685995114178993586111920228217003677519242311005774022941896862283430512121997282963734966012903388132800977480166211585231020407900491264176590927855120461564430280317771031755754299923774932439711215378606744345840939267752636423600619717371103961081228463473732244797474907775939283795040853268245316583483248148794361522213482888344591957775409614215649934732645953739650291350353421128362359034040993577249960373653057969904080759869018747396960691051760589177307398809919474308857335776319328525596272194662928074093551088024659951379636015827884503566824140209350327199250272302224709122967237309692177267260861656707834606978709805957250426502082374744527418031338375907405078760061453415154339881098986414636931472820037267603522843980541839744527285079550523054075564550546614092116475178271890626860191185803859321986395393029471901122603259725963471234409491108077255032650896573363450257257175192466715350272033697522464540693708748812463837885548372844697491590533160327656497280239171814976677037476636720637773576991356245982200904577135113421271323057651970679369167995414233150256243961545975870722033977521601120619554170871010674001324216693699093041222859641052900596277298149541470793566263530909029134901243056823112529172769916492797596613901610552183598971849767667561726813062707159740694448525233253169253833374788119452426029369918065877294012240490854319896991154574816232373102585031247995140499385996548850975759238470327814938192855428833418924852109855394708061357204536462837186937726863455098799047810930874556258342323236103043415334496579222047907982306288626518878516069729810692190187293806312215636186350551760204962641746502020690291886822699705915427189897421606696820239953631131765615122095358286234766161098953335824139055895088392100832838669067387224183382387895571716638252504079622778678704895013061554551193341348021691763925575787420958266370359842756405172979734347965079600524786901148870881628030371715487496504571264941837230378050429514087129976026953651712602452299602724862635880815670333609290394470074436115651459201063046819824123475798417717084962701826627497668822371382731615495065943142249265433403560009818241769515555099818080435979113389045738197613632859833736669373030181357892644733422772111621874723780810273463504008884383614113514183354940934684669877803921541307445936352898194336270007300680956287343055952555710042472071425140853641443859123505762335753752360533850024858230431762459000100956442325664838251919673574312529338331739122640083668347220519356300037790694825721436492533615634169053511634507666940733625806458981079266004871036093263454464634769777910058357028423225532178309122763749767719980737528937216412660611359586457763272204256031326848862891863428036388999388286374951948135207085128440361102516262313354623455259565093051657016419011954336692608976366236693550432654762644746753368842837572136083264141690006691155039929880575948161430943407315085066529456226394900214674019127166875842300884757704685542025196498650190079801551439636039953462396724337756596285998209083616703618850647638044411365874514107008764335120764003575381416984218371040252644710179073429066886015917705748040224212727997206522582015546044503576860369015371011135185561625261769299247750374868454460313770747824020497323407486601715607016445106144927890499130741676396447732955191325707625422620539037475623545405057525722329269039402266755921822729230533300909278253271095732108515687193638276481514754052476685950128985783733755945299587453365562492845178435468489744203163262748486731498805373325212528487366146698762169140473369403955940040053805298094384571731239059723833072539048572516041886601696704232617940175872338918834961980824304639592316611888120111585752209228552524958805028534349530145108429298115400958625906559530635167652784582007675959855338116600781334212191615229461631229237852462027714949256464483130801738556016062824218746210053632769390279171605490881217724879665997883911220545073805749271830990896231798036496934283330136691610646198340395392405464733553101739828670857584153708827281033075359013864342334372230353490756008594359916653888781185402088385767820603558238557837059509935513791272185699804186496383729196839745405902469078737061981531765956057159650530107893917873200726883517455515119825586870417093800785543718711916751908201314760500727999219377683097987227195228602544587826899632798333919217076473248968622895325163506864681279544998513097433636255764790761144323663853291368571839777483659260874926625597339083834460356085854958867850422979460573768788557836506501924846995771406189869727697036415735465944206586946771161060545841351213965331916713166086438423566826088260949021037157173121902441028394079675432895247322008124239457955936944131204535501938289967896200979789176249951304772205270458580317930236888243735483421656625482483376209019920593234365733772660802808482299638685902438049154155208179563600684103139152181352656584747725109158564354692791925084974041646525497472520009677884164134251216775755861713585351404804555714489124944213145814197596858791773539141229086126876633382817192581748536981479515791608821155484057448386025564546981077898346926391623343308017274624066475404112769150925001923345315644562686042767260871266798910917621401007877266666781314529174173736266303875325319383896207119976262180424220863199096108845565041016765528728852006581141863417340237506717267967927140615324942421631846116344158506278527946664664845667705182771306224406840532811547671201868226507054753400351551350451099614566275462724415809736500435806228288351587162255843929411284890823263225100368465201928897302873644059503910027282620507036120665348491823749080302874632384449350437968476133646189709395613607275147876397571101824429614175801990378261746924377058256139024815649629657476320111607278129752602354022480148542418662115572348774314156783102452857776022874634964348489270738776902907400042915615095201174751505444631389849047106639129594768711316933611532544634419545733835706313040802941420419283206883092149652467885247069815536989701587893397138304202947981090959027685296739397292674567777494156904980848025888654234730071432743460204851808768777060534667651284606777050847338896192174034548347516691235871671597987061395412401645095457245904994976852668896385180443868963599557077591799425016159985780177359839826627680102936084515069227818031628795377789123367924354624527286923099247750943009053223029310601935568922000991566576039636095121878166551092371095022616758872717438186609863430938509792886223559608358094586903911520682239207245898900181761506224659292495461735357188364012980029103713971924109393545368230740168910709788939928144626321043693480708984888289963460068422476323981133134684198675201436408322520498118602399745484729343340321153868833710213811586156358256323974226943253781600362371988544790199878351264836550555138177129431509602528840233576955095299527766584689699955672545646938148251931169759772948014937657855891853422532444278083760687332365766382261612101335561429971939349950787791210093940425940811668840018015524464011135755903640549610627872143682841693285097751133970201642116970607206029101281407234347255871243599746867049435247967379176087616408236931739954091257617207271406947480727196738843408187031287018962841146153755722999095739300209509037538753879015874549111439222259186733026213350939603806631612475650812943840360433413009645186608349993313978887531042223251573692697393200386303348277973911179176011375822244311670761874013752997306016922524350184581441133633357310240484530809151196040843317749741639341019221504374725359243896028406126361407515035814138530522811738304815686287018930902918024266223556352000640153714439525687129921183257500071801002555757044099188191935179213225623023306516691407580223861104948314765429893826733766268733428925496915157502306520526014039370172374678695238709412708595716128972997186666751301268248264193315057874976142440208262831745884782595432018363817002649796656283110793745708650585270210890795339979289891848203178824399400543293813754471634898536732570405692000105470128625590086214887103638618553444625283585251333406601190393294701875726297039633451158975376007941137479404009217461787261063903085183720387235350822656228910285730626495335389483170569129131914250262969013502075250826356234434857174851704752548898337984611722671823024606499531516215116180775193916234224260024489973298014374780493254019648172937550197208762966575472923167612142450528040732825914408626208155237619210088354750005084045763757527959760035349324831521884360301134746129509678970697986283851975381794326748802579843439817893576400773920918972378955796440717703160309706416388990210248074581156619358268254305569197424629446525232107776404657602151932067658925798945022482898425958011593936821808900317942236038905963654512148242306932884718603120738855908593746639246018087038874459166912935300422117011853846797725638799081070945668942602487884278424776497697685642404244188965803000373364009185382366314068182268655678172887035419429051628322124960883567532804439591130606772031874368296459375723432567854904363785448829684099332485907941571751690536923026367443000051726689284660034843145823034360133026885162394430257976394737687493734245352968059260287968979640801542657837417092849292158766493450383920125801354119343094269258193283140773571897992361573243550349217152314027430326432054391566484440294676671913234077963956801435282534953967602032973685956683640451868896366690692156990183777819574885132301705308100834127523942609933359805708345508129770381414952959533864492274863991395740576741937274660046074302514829908893304408868116102489960962796834679465942848453700025091386248161943480151216944630773600918573790999439206434756702096952217516592230221978098561356912512858795217608704162039195158583628218621578058626583998317666529838711744769569934371162350259103461267387295199116357177027113536433323639171120011686380174515026207645239083943897136033005252144733888128097886858556534729391999980937151145659093087667320285980911603651799761055298198834000419301757031951761138259073052491365022154759399591814928872559793625110595501009418443850535910279721696028825322483363229517877609826191189792799954789407914155521824334066018909391563113992899062006815198802266229656378346389242190401913728371286849290325993997166799681915329626385466770144116265393823238275135089044958108360764001386044735099404884719938414179728955152489355696377446209680617049914207142472640676744342504633597064433654043618667634182383194217125222982046620233836826709025839065306666298158288801367477960350363975597701951556961961976493153034570097584724767033359288864315506389565853785052969054072767464035967651401162008799517342454513134021566806549063026960878765151821271656327586443101530560479136875669888927819636353523487811188132651261543807383790083962911822552486474248763586836785412664487581488068778475015648174367971343872092189899120143703084983467026281495757688305372935644885325166917118634791378568163920693468615645808661844232708149923217148897543526237919571723818941037244707596638211389155853022008676326031758809118343186928741345795544699136518307873214568353052423602270945949634618647887132653345792063569335189096583782552306785780015025015354716144463356775241248717105120323483803866709246868434108132507056028606872383816593078241668787178808256482989360031122013772654265827653613924267904280116236474388556672042304450272926349700034103391145886248461197376969520918516053815337494664112479726048656527715400161984852245186277940315141670159263511416882009801268416724584339736879897791963263410558270674908183628459641012050901055994358733546631129092696125559968713503456025998602842159492671793373773836257325988096235568831389958866984245221630458817092960546448681139007683850712878202100718915087753793606646063001542505641902363585423147985008660325442653993855464406412442634491313484335746355578103041885260170286095298992484642746505739676612370949801211944958012052060857892452270224224351954451197023997741135059560115013173392905425021296268899092417988273797994925007604395458627585454728224468642754527956655703569730051855594220510849226423786233082402931658145936281564452162167145151154466810751722324865691016719985589472979141555453352888545876987728379513904606701890445841416954131330249313131352646212827666748967586820253090862664886425235812630931275451215898386677858348949425350287927897031096600000606708701116592875882831828013320303170342470430257913797016982871256575847675400652002893263590991869197344863430086392687801058623562863150476696202254915685194757312447181310498995788718984903544281510410005162795050645960408831417516201367724572383670553759092295932938482804884553929095888756487905828127795445938713514069187105278432466336566446003067597208465727601383199695172760571795407146382940831472055043573046409688651945812574745928461518771608169807319726583848331369912269670998029350976044231468020430008878374021529119751034499348101786309500524367090651560950459215345546534922618182461683195902287623539900006047057501289066519219119619501239356845232028022267401668423152541995682261887209357791492598025219066103950002467765596693245601246195709884134479714366865252175066491739762785331180830163491854314000449041491657802876033141363732723987782682975995711978288487141894880113877051220594255508704806550757421585728068209795873463973784791828929321806608572564447281038071420986428078154232699733302280495659746570633653048410783435536559698338318435756146290466197114008283655947696164408243939863483177513691300831820768216159979363179680219869877818353249437306405926685533225192967155658964874618168123129392357165871189789133867470127443297195713861692169034596037324903904207193006488238258608640195108859183390246709946718485886576128130446701138904163827227751771807600092961897075822947885953295025145010323449535785335152608402979021785001599465477716301405170099765218805592970268336427831767556016469777530488646161163527619783845568868654582514619530858874811057826653271112297713379106787628049894568522557786031712497787474001742536916075376974344210627856868296172856260431793429894323900025436550704451808649523487526552587012115959093240769876491651441977005592900180905625973858641056088163987394645542892993007117357603645134350915306538361110721733619425324115619447302932110917196962890835354545299793725373492902183632886721196363917059999876031392233816238996367378870595923074004826096118843649728864467711583724621650501817917881937846716794132165379775155600422017638074202072971446926618951367628965164900085054653217372432758959502968411073889522912004196943410441609210165659650236147172068361048852072449476490186883885053806112442855258431004624920902607398030981156124366146125158569284291350596349787394488851858539923018743455765860456539096797765870117678501169950088929891412595094394712729125489462864099160804492725223859315981581948015065056906541775083580621098230339162046458591549681160725685909366428421121119170817778323936153101652724222796524417039551538587078542673233866004858080067503184315650126278972185112905806712402491675555807116351805839103510194348975907124371570626998771530937713652554007964263648825325390110957326430130984877852836289706928095379281532943971960626037986739016136865730669733469708846999925667569731090683796260692323194891061324730055652070987488265874055381238500639021185732377055733593128563889161243361473063919346719816792106146072902828848631538974044805355846839208178321836147922500353123735023818486085959170508168227867485889915324889153612931987531849783494122239556290950804957588995661956829362287047743959691180252221744907978048279876479773275349521227104530156846111742554758888512518859854983779833964974516666846762286360021377737257561787910371567363393889857224809700544820075418120724359941667166023163541046427851520830560701485709342074099841492937095950070396532693759738668124805542668047891273739612815896597288942903495352279395215864884055151044610770905269186097013125540214547989676234694295801309654977646114909196152535978701201018244869286228299822535910687705801284500582296920136569183954091728687559985722054156028232396555527971680185611080144745864542591125469988092415616745923235277051704928743726924631534684352709559685007792948934984445122702670855534699930054842921235389665641992852573902095461096342041106908987268745454086052602066456908332276275621102024517291448379149693831247999875284648907857005766513545285336696247253115522427949137818077202495575686724924340144869606225917456889043264644125537866005530774802295378359556863643722522230753532738468286401214858507563356062398888378541647170428483093724335558772961214776147585250218041653843237419879935797870068439269091907741585577676295349275036331342588529646947732161676649289851079577574631706151342039379828273469408067706051436445935640005824814545553031175378022769913401165028446260388618496151592710996652485089924776515934111137578756513017737293567047895623387747388649047453608848640701633273691791733123714175525237025861350004110519121346599073218763234441387176361583982037928170139264124283610544990931246381896534576257165511930240536983494303622674909400251308300202228124162489602236673961851246526507488942953226465514248050145508050641009501627563568375576054659176536973883734622653711696391186341201833185193310735115182787137321214567437748317830004746358529348430115723675185026053843297053743201353656720058500700925371246379389432588369357382684446078806038573325767552028853292208559128863579091075624434704056092542967490437046707602938792721577976892388646660421254348526143201690823983559449884246235846684473693677949097157793311318738830769213764929990486940439381457264999322054814191579224372128818583689041649292947198167342511949285003266033007135398854604414764670203452856848752517345991116958631915708879114616611609308164781213173763217296601062530837175591844944386366872502089694228448613612863596906839044007385412320368431780535107938108124340382039964099279721487548565245000834796823961725566010378458329109287758273939663419525277418993457895467729871112887992699752305953264740413602696764111336956385834436455556198377057655353404184128506870479767070667388544825233954498598415786597679106507986071187032472063763159649618895844031840559756326313518382871905601786904574246293507282910705195749277656487637992767667845958332709044987431059979929570938275571260426923725483485297378491179294239174221839100965803669712728106741281664796658880389021484989820240991003598953105982694708062936024376195541762733253841377248891621169936837295315327752400900499205643357725874353064813964061549335016927769896236849321002215038416839709754375736261559611419182110159540901221817559795892531611469557653204188029121584009476860220955096411499201540772946640073721196252888933447519873643886536940446726667920192329097134787206834286806577145101877633599656071193073487714260179290695762879411946909211858037700080203531267182067324730534975040824243790860058173848136053852722716238981159707087751764882143219550976063970188478128746467728676800365636482608538030819488203978610735144336519625923952414487140232058843692986776658488755152938989288746567953351298697112004775054682252134889072198201147809809362718693794509558469194097076384427645345356195985597147619678655685604551569388618707689689920993814942157356933458416477389421371786253041316280416167875232427272943171898375173378968493743828418615248694398698463407094066562432418882434233823485002927505966991477724686665523422746736583673730193374374601587348352534094698957632716419008996847842699619325769791959381942733978206221416990654886028195372798881868979101142455478933442899997369001818851713129365433254143187377779423021188200433096139306770652162365705755276555345023621340002646782520366092403671766522766193147391766058485122854788072779260000052669704910380585303501831519468020065443573958865635658770709895454878216602831560282477139942814997146876521270649825851458661202820475444652707986449638342560924688903854841839105102172903568660364611707086172523257682242141329888107530345767054026001753819974868047102233826635561050230508372508553670023945970546505164021256591561254267636367660949644850426908680971294866985636462319765399535393522709991326033380755221838341009924784166940779462789633004117377515896729150672922258044835209686144884045152891062684378409378192098622273271738104445430038103946393349344914938045408365640479848280070766884134713371049669097470488707837642600876328338823621149005367703426967251046662432964221625507674792416304049554813122420613171169248757639262082750422202423288446267307769998406035807271364598913120475830506634310614516644836204557028009780892299652081841979409979969173294156023909972323787984117350410172175383583702118847161395271969884959557174705289597009327045420912409255013995970833299117922181356735280720941601801869225359620826626692452372790505569301385260878423413170807142423933976068071973712974051855329357253074985527197490157294854216565892635334856981238715035099928252581675632730143557680321414922988867646264832050645572454828560854292346486114565075555849222511795526291318700460342476968957902642790802202588758260001955888721941857839902220339142754744986636995393577767954123642520339547344940853933502738241693747111728876993409432381180038901843468871781557190751251175935332491198591824664174062092292802437857086640837758243687099592811075858810108370670026448413277015640122537563782399009717705386803982372691243388481885695704753680742629603828446895887088626025874293718624765706890512726780419990615527153259820712023557265163776403445315369703063343319746514049947613484693615354109928919502034346396741849530179730740714478701488495425422370485793863644509696142752366016424269602541326399760777818766630348569101221751954768437024718463140001833755017176973447802642352583892131985897237791453029687796024992948777769539879989902572358003638323043004078196618096401072855716169775731866327642625160400307433867275880999145359744599970054373611388901620241356642865265793230257426039728554738378807830032490076776486234827249670463665663093970589870124580669030965483623055702162924008139136206900870957026413614404181094616183895082443273874796813173996205649410959844733128979400844487114942452953321146463815710297238351594024728416733673883920295523895138837083558752273500570329291731429250703253610768470085257506568481638782377006413779952564507965691013695348753449489283725965552011015356929159196038630713478945124559850588765176867797028368470300278303049476630700873616059360930703277136932483411805984414819223682398122799198758214408042393596076231973681451929151113778513675331078009150153167148435962550720556608692136695798263565612917337080565138877797974527684817700290431248360000715509071749312352862351395921526406977269714005003897348099786027950200484302690638358711606688497148066850399142723863885277107055867959241948025460943154380353980503853227999097721437412111846797887777633100424009618030035752114719600783274020125224727662122892251145758956803494115805884260856786186179445067513149376720173206886847889994578546675847188551924049622870664844002002605710861206091265794183265810327251662791219812514321812083107826014928449675797572534187928997247534661556826866016999541305518726326107443095406953826351556589760088488856581350111637157838368206568705255719562625387429198263234893632510957772675384377218006761508395656987250113071549418797004079915719078699218319197451009326158141099491673015945627931881632186878130541924492695452318676670755562247147205171836490318409296688964222894495611309488609316828387678609213277217687142070268945889451436226001741981877784670013515677472510820137611480830123841318266991845363594706663436987964524677472612607106848573592920445222960381471160328354105362500723146676053060443688115046890991576932862729178396654349308924223385783310345551060990656372689057234738994986161672460067876756036726672058171616235972998215391146573014926532092319679459337395868700001917346532964628256034838225995605972665328330730347561454400637791016315267749331739459573144083212199620463380196511650478590408050690054359127779177967421998272619735380222875377921080016961552729909324756160530631496365047527340214277680120786412831853794493313362723307273415357379286296479903894492464715542679875092346726468737435337623856806667095078794248128605433569371508281215452752837104882298453860725904659834126844629903282911496323670500187113843845100818611458870623127671043281172832114304830834596592370741126468799116047724050983807838336545408058671282635338946188171018834858717181047818134460976773371427352862928233405517052494606599406092710179424550319181274763551525211513601763670080163487002564701600104688779091125481156587737196642533196007121468677447419331569464801195635187493659101969105546205083060493613359487656925350614147254077294220957529057764734153124992735299998521313550917923458624547426732423453071412678671622065809000839626168790296243984517382760226116197780457885030741036323950379253952536704834466361700826111724819303372363094749744297686872956712123257545588755518405197319589155256887398565584313236194492787229182736345681358781399476483973876829505569990140968389994547552358275178000729240241157895779829190738987564819723702052887664860627608616897626186491705060294485220003373560177627059591764764778528843318856031695207132859895849577176234389429597324990481875368679629029216279161935924142158445675021494828750005298911953311901220251120019059302255967529521696189513570591935717269331491596570056563419285859639634735924994711451878192737423577492281816014451137443786858485519376000380812679947315446761801411523467666153727390381223922582217284119988739271227106866919665927121743221694270593357954171566175889942095113559693898040112935694989381848200983321277442744780272705617370874337173407141370044321538409015276145875885851520828441722124221902235012589069215737902101851104091900570067006733187678302533136467863686359837805589094404690695094045005138659006170299149173244664288193710913768411757430188534226876900278928161623853849965529354460645016250422407174369901817487661478210829739449366550016184462352719700516530654948257105941201382658693813991233315050979613011783622120264761925975324122936976658670249590826832598051286565047794488014073936267620953581096434444203053974171593042675641479198552607837116313693492097953933195448261694542625101174721941609337760453897132671194866130037213048644364136135393792317649104449955259218370032495705305707044614469153554645065422645756999682876513163475477274758579754351998907873294754863867522498058550076364618888672977719305993646050795470885339721175307350731554522184134327375920997750805729479646577308237114996202987503945156289824045539926469345165323841730931300692228314783450599133863650641136629281178011433885548756073994209410493886432975452846363194432109223185651484669791554344572483844093103198849120446885356948266596997221265135924443290290121385375136500476537581463488838337115430741586721973697485248889121430150224333401448794574736338450268140652075246794529843040723172566853283264998769204495857999008043908517522362815564583684772861178853224155720028583535391960039656254070792637802584487376759254388135668244174899373142524183388941718206290096538855109859375454527798098609877301423701182217452328901530750471190936106862764399085953009511376992678179715724471453809339327651048061726374775143090692969915326679377024569342857269410885096647439689013490593817751697564851342326376988474517925092593537608028650902382224990729582294274665451647933070221983258539919874179895917903317628467254728408031957154079278181464173725006144744467287903415885837541191003529248575424029267399271534378708948389607291809566213801751294925944790602813395115719603924906652969642160861000747069951379732001055479360092948217082534447005289671374432178088660636429097342084357110163899297608444743553321816612630038363268692552953619037306595320230585172315656968601111495810296872401354128927509029722249796456668287413674094233760776185171923514842440524837568893350481668622718911986203084613862221911324452951598175519235844892263976542182592741365810352596713652153682663170264917478112573676992466504483261467122598115297918397810477253171059219844196035612579602146333513700099032342248214143933138640478380281514222571489078670714569471407499982889971239312546686462509555983191473667978687464137190566723819841131000778820351269575439035057671769607313176641858668995205703390878506890416446150792131857955365856181770602396705148040565953466633662936368161869804997949300677353399874161961026884800539077665880696395373015896926653711461717573997797460659356872576051254768356239179518564323608598037875437359810261451968623402556197910246875273293013016636706306450472057837803442394148210749187689453671584489495984207539188806172954771023446274448060666160406725584777520613366805918550475031634969302864386828376151713686477238013099610206394791128016021824830468685450741519870421942983559699603300282375671211079376694634621739443706765236714572897726847343831176982585904374159680162142079667446332223933674873946670875319604678768286647218896417920161304957842276356878496088282202028673943508542915777640272391099272179342347572706474005040293330752962601198846380003379541685253365154320772374307860489261133442335242449406126371870518258494082577297914630716885682571858949331208007742999719334195532128340414691113460480253258678315393209463866000111026653421200606508992203884561006930254592658117211908569941996764080497024900801357156804537437775452824766435516521263650860361564263086270820767446885302472432113297846641743191671173773688238847208784818650040017738521925488033564818464818641038035885875985964138810236877489079574392149748760252909138141358001943010974840687696391709235998313234030002290345482092113619983107116244690232517074898553407281252599521895911832271198442247642221637494110348745796424858629681311761526709977750855938861207985333118675523924329835417992485154241592817970663540593142407685195502752805948043995393303366163662520305124244256098872086544765433096144834074546694828989591892031819262039997080723340652044748915045093968830170048275436701527441293926886153738412270306518630501100660924796259101751111833550671269833430421418857756672657118958519446695524650372800696109281277014547360755624740286313574838016587228631545641931622077159238425382976770809720282673859270560880735999252833481352588541125169134799645868184935648403304100247932502851717163529767812272921603674964417398929340189034658117654369528470365458117088288532227118529124347970451052945142064961386735513901694025671082793289968431189736174794095909372829763093043089643882441445258208243919947486237076268585998690883177936934939461141901999475332149875301017342941424013225811088488876841715022714369071084310393342723790517026871504440645573877133430540810447207043307721183196763184178141428751831077411433378589439596499019956160368115490539906828591043861138558271854738079717163211683644527955692560261512029046618403310795706396325440873711138559869379016477304515683815883497372598503920708766995242440961436383468824890152272923580988252031623375629269042343028644719055140076206030887076589941428768138689800354155853337208169020215523289632091183252892539809103513476425696914596421863197363819211063180469032765355640072647353755140794122333986032463424906458214876942882652047473661169972286558619860456659186545939576186750922688315391294339826838709693047065736963662662659412506280077349407257324176288979330547490630372228929645688176286229563999091545468780676270093057952829594227066366078216461535470947884869391915739728413703377874815807891580936965167112570508941532278485541737194934649525521845016454206275287138759323233975700648910290083146911017695768156620780154455743002255607134359483388013279157057670660160645263944839399397297156303110024716021013274405453757850275366219671801355396335913169146186703821701881845194680103881663148491327942528101452944188026782355974490041797333790825568504497099634126899989601505175458839571034674523825139633360557433555369426315138022972638659918835875745083108884263868231634910456214214854933696244697683330256758799785408441794322826828577454714430691221244148814345471719442284987309219988082950840112013655833287775519707910457187947133694610538280630023489871542704876360812698475895064760019024528290379636463721712704271618598593087401180765737684624604736758784029261235850218945920200835017010500468692188088443803891506954739408307565525049254170473085297475710217653823158442715551843265585029613303826912851498506921801565021606951384056340743589666458485560980892288615306042912062349768625459503542511568467045308949307682737063652210935770210989552681319663977053586791130434054870416158602325836168006743601852521565819663243741044429147016109041499956369265845191052566597602955467610680601018982337439368377868217116501464382043200685589683021638300052725154621799925726661521266064625828721815440685293623874878884297405513682028264276121549547351885849078579635288644984780465596110153814885920112496453695900163773817897681430248059582268744669789356633752740621428267970982901625324127292898988039059208491932870804235264449289889207525940094653105311141951120824905236899797442809607601125647042978120653330478960786230426699665436008394504819387183955462475973347530754973674256826739960810712768623728679040555746870165313805961910318402072853656293495580301518870239793219076327549931457160329306331152557454994256327651428619580140214935032090663619786451570569200182763271113527119368816672268231667419833400406975731366665877663785495749544720476937569788954782797091439912098540476593261152096277551910367578960426534062053515994425100637688106698980620912914274220048281514457687788370217789516112274711521866333540725078281764251098502211229577355951700057158826072801334917259633942997156972501667122398608004349568631851345662411757375733097728978477749604066030205867543717996005940420239446354786683169693986318003748812879794793594062445972194440475877098316649896191524977349209524853198093968360835931622817184739648104365701333873192732907576014901856973273505212673641242452045547412927543766541358323326402977378857183744172488906387244097262329044911631847018097983637355531868251293271839301922134246093069160136841981148443990247188477099843407854886731384931293504905768939562316602732157132135788694677333842854714792758337530934922362257798682411294710127792433850091858086781066432706013364140075177400867457728763732505057908844956280055277571869814865509661957256091293275948583864504919016073609743021816860733826634506196702889446202795705779696661664701756286437117460454183255345891597086693370760807730308199840196834912835612021137860885808716730151048051551102260135588821654229091241720018292075164765965775614265580317502425574239881695353752777902511870493344133720691520847379590542670222330546773754284282907512132161441547213713205999038831394888247115449277138902762309151091102092812569752024193488398516049993111694728545354797939159692745757453745851196126808641615132502145684375456236261521051012664950178396438657474337658345226542986971753028641341346398282534612544765184334140982049915316115094280618304831842700629498286227923598517685492957447043415330254271653626680098936993200193171372445374140191042137274498990607807290844014576646975967455128154899020659778921337921966954917371488202563491932686002948090042750207121518004089078179119633633940402784449243166761874064580843623920735885879790290165459927210138887497612772020675249032372370002565973668714447046001704447558577206828779007870584241776117877454560575422292524258612778590417576692593383897844042668703628747018187166556975380744199841127523950168689909682890756267178320317504126465204760157344108416466481865177540253134539417654746824137445781841381498895183225809168818102910294614058502235695779015469824031480116023623171612979367562251026446344835079986652890702298413735432401492844214186057820328924799241255497540058161877906533780460498374377501154576316839842352286628878701471582470758820876087671079635681150865073986327616071449157529914522189793090428069176193883212411894573788110173206552704452713865897432002936297577958177125372274573025847348266095675130863351677898131289679531239533302367467734256788456975599152320018017543323051128930267217097768061378229002962826879243961058523299328514604817435351254675206018612061345135393908710312986083226170689065219091328680828918608762621736586332233010970785586245006779477794924912596323619532502240456496120976691728039734305959743515762421579371088463852685905054688393541570960994379063355938443168245149554259319703669971173701751884629679856536124008314075934425539692105621890656721922182392779607658070885918636298918712541675123724564636742624320408236847117948189655206634866030794779018570068402159778154244025735168956543339607295906413926229213078526268071401046020292412931223867922982472671171817196272303918516337366396630338480956412580073357450443598658877095994442045637189830344370057266432468649278159404981851638321813656716110244365106402214923308945015122058012680714880196045382179166114235131610204441743312017704153726387436064266790992603008936223533537827025376937622987133860982856333374801443818520731152073864020706172368274090021131941548721434363443336500885268299997814357970016829254397282299548728157066830051066023608962771644982582284605826358516909220057173172713374753096231565373502988841471629347072114739469456756172996293671417611620924414092455002819762910075631017092761225772605200351240907773390749544877541340611851766974942055997826698730432947825485442260248227934448524340128358119333763503938817728159734449944094613891328477888838552760213738419641941402261013977085189301904686332837240885193468626823470707102083908312491016566838290963454490444359392471251428358449786241086142363180699769397129267682450979796699646218342645363039862274959327413410879295339322752812017688130935068132809288852455324931104070682283241265939744705166486902687997965637062693293720833994597753216070998869976380248176037187442378098285269999640199263338533622338470872259556587901993391012601208403499920838051686296869385890388420496455432488046439037554420212342703971555917963136673850228496354322493418581341440385206457970302243594978138844748884244200541066024452379574681697255444066072739314484672901274977873270383017093224994683489595839788377695991007542825295263536039626189300705800741347123184484256834086863200217873268732274165937781695325525412980241760847413574226249361948631989103781868039304688483392451212459475542357904585308527309860884116088669978850916911715522111015179067235897718742550391111475487317941598652099687664231319521812790575940150985277935966928424721485518784190194853722649223904896924078417248118589215285861325741393329450969004861510751532328946747127109457287819843970186561239327088442320628972127310676961596914346447931482984413399712100401460580317712332287581923683759087783000521822500904813206947204860719518301745710041880716149592017409538932295053484065248131376717786657647268253047889664264936570271140945691708946010915348373929979257478612296760302109627366599823726686621317361499268153545193430979812983645641394541897388030014885121736397701700150538678007521103532835235980874841003937675885628441234794977096263215131340268066381893650971002810622609670657456182686809442027108006284698887117183476734197244892756142364233731848756013766515053128592872371533353313502692640980747638527002817692004558735044886375900951787443917365687937524923568986759126338471950598598835212095784559920939339150074646843303695741251840178851701858270442736517793528096772037609488093723170531924420456638922396486110778061491904648455300190648572260132427691662972899019414571462025787498955600787849847670433636732395162744319313973520009335009728363339259733946029946649778185379944754912999974612215810250466753400490312449444725906018495419038868758510872504658708037732725739457092880518605673219829594274640992793775268515712174611286747485890265364485687754712569901713705488853554632502809661026835462427448338890488961282359181183019956538668339582979519352051710468607500756981088890028625564573802268215937086310639193172298555062501657989546103158202040264935330665483639165236450255367272184082232406680395922093013585922229735879726050948537994562126841763352295772774342077549706215544989060405949934413545576037160572313580269832981813984101597206496639230357308228842251445997492218181878429640089239078544466737301186341306304480253158342985438620147032538837756216955283677636603266083475860097997585273956714666875450228537294291940594622261703511140328329681908127400723201574398356466010554295833038921578615629745503234862513669217818034143340757761743170057783169562947998753812021910131524241376503509422391885213859767132394389987313493154521198281500925011722432896419160914008650784875710899394153366946044299718595774072715090208888037346900147044635752665782118107887777394766811589149565293315678236435961948015297247862166658304773832533266680960901691754293196652452779123065627804903536698122901625639868838994593848834423061164901846060283058093758563759227314822506856143409623754205456491738821952582288755982945585118306074987907652083487782057797190536694698063936973884027704617371649700334966727441708440264292428505046162609608143396970412671298927158632503650612479302442482284930284317277385087693321724326671223355452765655763878935843216404759333668008416786427417804878000305219707386608100782545017784598953164839793003905945992085326247602881407239541509919641434786415742963137897359425809504260647493593962353745790549972616376881642510949818573118866220274402339172045007011716395998627910835625425077535873058266864569652050872016950376142224331494800584154177503414270932692443057915572739031776603611170351645467432436635942291189935826501723014843171523915961571931407965300305995977933104656317578865358007907548306179377660435936944500357077831360143575729938470521412843077467537745860536762979778189464035356966645230750932547047250703016254470772115057293036239460365571168571538054442995537162084857385968541717702752603904058834749037137782658210078595876437248337334006707193815040233957920997308274470908414875318610931958568288865017496711630541096698127385908210875713216600482835011054003756223109944576100883073690782006229689547729934367208457737992090237540906173491747677510211155971717722466259766071767534235425776877893191400438321623413847596213697562261705742550570876918598996090303704390968118710792280835574304596145350866407339462551112460010344389860975593997091645948424789366023098890112455203745006798841054485154919199492348632408088486549399135120768416989034065618724317288189065455145817201700495283551765842249683420310944571295181522003635693979425049597196386670899933617465487407743444828977474600258858274490923459758351694146754362917076827250983411584159577311060519795280053303598750984604038524611804553581731882699249491487001331575148464506689560458175596637307916566487672204656304044785419374942485517421848094357453576446426160543288061180898392723950485695342324982051921624528589265527481407315590258179494208869873054969670223293536539644852916116619004113960279765642419150289075728100050392308181526937022949858315447428450122684761464144243309817550364504430833875265864581339035595954090432724103238979628278788277890071404109341120573315238639468561413207353023498759573320661479893796575499163303663868355940272171330656784986609315173969095025812095601013355812051293488482110776583992219094924355229120586614489772899262418668926204124345784546879815700089401718232750829378941437050421531205997711848532481028777015486384008512852557751089748190317190879445828982240864047266565861635037647106536124907460176467480679238532814663570938092897056240305056978947063518130474296710355488249541812213902430525454363638886465939021899908507483895605087988663090793369782808253587129744763004941165212148044772394727894228478048047860411199157020231912633999322442291071215047371580155189251266663313517698669992917794103714487948329077082951399502122957899044303511360833032312698483955854655346247379065987301481133008450658253945231311351875161118454512772423378801269780933538647828187826452972275737266084036611706787597282991111473849622412496033714739290989069270417911015985300684534283689997766151369778229474977381759300241766409815944777017541219211058117705960486057771277314577132491273936671004198916441323345403527057485040645185650571643989746798357000229277892460173958796210222576821562787663435463787279182269777700701234968532737418204993669712889990001260469469552013057361017124244136954578669919753947043363886255049829113976166947301550907725111356248141766030050967284093254489338992920325623148144783588248768878322217185619539131129250404543687643502996442311118016926253090800501657844357049587227751506755023957347951307570815395017334497448091709861750690674218396143665363198774579021411254579821391186286315061657915599690978634944185606310948869373032308128595283521409941313886045404865286609128691953848420659156191694414103559079379501060545271104844109363747647853847401297019863774280877567461590343844116727543764560396347136122152996640298612729195052241662617158371428700818178638619010534735241483335703751549733466130228189928725551685447821853619056151958248902324575499629684307108670530931204043979422886169845381540729627121486112234445402603917566885115792545163369512468143492408945152695243249394250702656676550368632083414899102273455585247924648598806633390207565708786246133092624828028340529714934515988096953884475862521629266813247065187511721334719341099075536448657227378616332580764455939370850076670449986771441079730744897394074277875273738663969722045285117838291035899601391323536047294217370500818158776912626754127247595239166705328014403927553363691004836586686287662573277848977090099646513702349813163422164583895514502293536503550129821112865742881352228834478281172614711987904906285057673602252760934502879756652604866819390180334397627859144899404161235467364887575682425435690331066539461252490538584262701964397473482235401447155304249736312323573581108448857766793634154434803602889148520274690170553147468364627657063991575675857132071671517658395278243096411187768094821990349419789588069901331016955519981241404693789316141916512236022611203258406155408280790460986691858323060262673338162825973978850575431356474122981130315635608315432926008586908330614766603986697508627958846154050331101273254143058797258283860752651472927645350369542171643507714968757784090323893792780500103989217174540201499380901583409018656181536568519070388191988336299689031337986606107410753175915324632958031106533078211424652559840399357262731008873343031118231985013256006737538242181349440802081358715158738515418935992816593901480207093165210991028110094644441398798912810484807768790878258533397095870352550228638361702146087364541154183090348085511031344115039222802782427429915321169824693200374291600001373386805430778022818125443889237201994338504276955131921018927656471251492308105705720520013947606530123218548275575076684110988164996673166959942592908134145443978063107000074598400210798923676825417971041150567992049105652629787213997191862192085038119837164131419417646194259379459531792857039637406617693863958859352843362496972320648924325090274492633656655981100649454379290011248186410012701386244373011170196215087548734767376944100637354459701081734488350809301844219185300748813407900209566512864686893260263411969850094306557453379302188173184737965073688689752991568432538155981671339164614992171615229288553936333545283256453923174118443302249442573922541068437624863222686402358890250326385585716259627206684993739611015334040867546058885756490434830513959611705366191590304965356215275598029653181629939806103033465763823166493902167044577899195637596280460427272824406395620910396962780803954866414676761250239238392141759888728868724799389852849409715067751714215144867277040660337296722799843958695621141708305639505958416347968149323097579592207389466178608813176087647544507730006001815294498922946386084320030167543795032142487271654320184876037954665302644290941813253626572412980929415556991593410098856395356925394390651236383674300490269740048254024725011723071056102602287026381239051164465957120779379215789394014269779784181150047508006169968095932555922740828301425734538225390469911806973383656114555236109160086572069467587880679921955800703262440573520537359817212535973370152443835397427499368767553007222418606719305598733690785440967065925627566046206249869879460797450519355528430531089175134612364717962886138029454429229992165443808734872981125093943450644039942474804640610017369619308660302814453015516038857029927063279811279358586500621377392657435158261068573191364064381346399008989600169690188488493261780234771619815188573698304251832307476590768268043903169510928154102356104417257150338650109584888514530611735267177318255368910721211501396331071912596244619658081669210238046563396459215153136901595941732546307671442142517918355610565131142633930868224646504691942341358489606503236349136461890452920881396994652130774900093736254038838127080398187938384740458532836553269012724693555856107358010644369038145516019813246516140731555288259841372508123969056548524113386241930437969560604645456911819443909763945567902704834703340939592513080202565623341163878810737611470157374295975117617682156219058278055179115054171074180478710577726594937368682988682404403126025292243754467083865771630896445901021196278061506483196464610746682023975767644308415947348248410876080666921935315791273713004548120285389800981391554113191607606924518446193241052728587001715888075631310357684453902717788246700482591848069851210923020235213183225144247018157815068766038220631448973180630640146285519961049782332944674727196703640423904158905661576918930165253342698168660777830539600660636939615734278672907870747441914577776839316339705413814528518889805486283796827441250029653919304496479155028244821891874255056831332852046593936164829979692057970539838307162188750784459859869394104365815396372465638787096233840981154913898226797375889375775054165019515584531330766686983530377001665744184110641493358596680795823938850850359162458080191748145675951547574062465934320856026168374427254364089686937109469052900085274214426470382120963646564183188675759132585084008458669418080205184431575820683725312801046912883025353971287304799716038989454454272211636506432594504152770520923477266922822107707466840440467275639887816402205542915170265908718050111714604353185978327931976967230341257980001409719405102920702497385335676840454670623807441829961061840241852894294289902347884894847662517689306928760000895515681771461817678593906942208631300000264606574885087252738490694390367355348728928378030786060804984300644794019458230947790254108848066143177835021301475391215716559657559805101741608040384691860846597062974790572979345062021739241288733397705109016959489182580350138111435820540506481502110758965834669492631156136722871305448799403353546430150767235959514837215364521870009506746866858073581949661692073868381900705839494348172300102876560429082383990634178323999564043502511996576553394791048565418532474244275326655521665877477650170220982075916607042482844046399239902451518804984487101659656508291614232921442249603506153299697353776618575719457266953007197965759915868644228585372173892981342623794569557310389281657862109245759152040882720945769473748663376900853030997338146391619002550163414884361068321464574206846267231097191486193070060397293756509589178776303871629628808701431489115640984150211854979440355668230450642139537712731868811591970023598303117212032092181369900691588186447947276362553576909733404831301026562447922732608364599662412035028559321499847271762138428609015740200599254563645097920237793639871949187595445505202588205849847718267251000334503039205234251665922970555351990316252741656515689407364229084799287588606462315470306897816655316968339523955701939136227629086664454590292385003878964695745083243780183360024575534923894716358154577950545690714782856395046797670945486673968287108504940342147923184407187196708518305586599425358499462310629823624257860717319546644013722002385054304016299821527671441694535524874143553456619388310413199022475319173254223371298182165308901306177522451835355597461335018019061595459968930538176817376632043048370209624088808888068782837430347829601512562670061944180388611736240391089343186788780036078692557680126937549208595475194873015237270429478143099293313289822537516105067741742734261593978387203838512576297004669248644148545498209001115286224732324420193569778065542713211746923400046972050945597557332069610419524463949441121393825964679598095861849116101690472582788729633087753650245698518760363974712127587545876407447679108267773372187173127607876786832975445750290023829389653590715743878354827043150344253469843445617089189905037310673752501143116518554610482154057149542785691240392976129823282210737619312071329132593663997707581495974769386823678034188723541698664181013002814585643672998813527946294126122492933904770317958802159137668342959486822375176548047639203224927095216999698136283610129330855296533179285441293729746398384472540886828755838345572539476101847938580232662325424902902592410639825335096826374710732521240606248980926359863999484603180305061591920166059380944180411637982780611249020331305143548763337600096471706741952326629351911764246149665854849113560988786931941761445244281588716868326151410398573802748639526196749195337810678679621537205476079259976861663458271588618992190886831619827955738393585733542976348358576515274465928393740870635359717856778384571355018740084859091900731282841177638421862212265657483096500333038067152763846992267687617754625744410954917501048521933340749936421512423956778415924458030441509379929806793732001937831616414465466942958733166857448201430313788780733117828551710413206438073245278379647359463445954264119411988334474141386201098932303309286174004944539677284060424319102073878039362689267021200130436678042061159075643050532847617955104750424351355988603835290195754843342183225638440368540481027939426460596089418612268303943353122369898568761693324163024411187762806507503817039555729981443437847744371893244492036903632147817441920886757855175349401385101191098905178335430051707700755125226890302411478804012283132081341642564868944101569811716757279175919407198193070338542706176110185907913680045229804039304409522469611858922450148672569778967452834019268688754844945481786793850981225833235602826337486495113193367528891268269577156573672072529630431380695605838976023055411225111332924355176608591873343048547721827931265351074010342646086818862498367947159859126921357400708982187799832678042918898535184902478686807533457987831147372968411091944529571834685848706343487519742553538896757514624271403907486385669901102191266825194726721733798359229844888697231570790794075446156357995024675123661969680118120677147506875842720638618319968393944088606015207873590088505074949161178023965337988593755580493254118065749015089440257927877746896053560858243609804147136921743033487927575937757574563893404327708085591553705186091032435084517277043573900659372845349293703180621554595618506910030971876586780771404710946613666938817152829431920855598796828617597264390611151655010278069468583590122781808236029784882538893814534994795021901358895585604153862008699802957673745603653060545899963585802537762545116272760134567423191375591971478020988491705309648031648712264152644834300500724771440308477632536213894516923307653962334693852557910358193913735618131252726428138481128200337088699855483071646504864427946403107964962231749608096161424134422014347851242484672850089876557962201433289717164201869031746316706964699614951615578380762765181319413387172934126695905647776810252019346971088451706971357664182426619838807501412203342064085665030269017456289090844664972164244572244494681751762816605671596963191670446352467576322104244777574691195886493856125155527877325863747216171523575096647623052202848006901979314646094642426274756143749280456154568582789534879183557837744105549392621910462958693603584761246205504176074597091421624266707830632638455859259531104285489405368979452161021009734117509198940826768255255879305459799154585415968314832747623021393240674045347647838839088640173037129849522476655170556126560389849473686406361078444572080914730519824017975375190598306162153092871216019238202505107540070044571215072270115141352830876712729853245865741871109402825880689505673262698389089597876365408714836282323595986747535980453423895734362896662812678015546743534303177625371699419168953340224646875833754301207642979584808465341783703816675490712530205853409108903005702973813920971498274341590608710512680503517244392742495830285922756472897761498567687332096603506171275621997127500485053664577763066094441632375960288748725638357591726654497129568958867401661176744115409964833992511865311242993735490968025416695124746814640745635403533502696025630026441779552847009997579378313514956212047316466607511516494100556855892203787253574553171053036129977684815131676787835953230196120997453731436450675222376532403309056144279862457647670448405433982862071902171367771603420600064381500609517718432346103140946439304164083014820124602329558917868502888934973218196724905996368260786097744077865226940622905906785016828587941453068112817029086543963548047123675694568889050131698953237675246964611915242251502667967771859674622058091801980499707606779176364022674686977493039000246138441051476434269805985632251149700119056911970194989805232756783047079328225878430582625945553010090773678328805644970781830680448503241726240550013192780410544998924040551557643205747977429297521216985762084592360419280153791904508373623349880525183502607939068577752233521720680976996110304017728617224019945526158026559509841946536033174975358664102889790835025470234167315036374711168066214044738823810002521963327635376649075740578118208399182078304360960322417650836192219567508602637068744609826667548340676096491911467363045180588269479985653277690825333068743262711506907662188881376839079437689253951426601135566098751678834429674261276536743812627111582244504612583260219242827022396196333460176759692893132395533913785607769524154059662171336851175608839089205294977504689240661904482905445228625763019041109447893522618515192573901589669551617666763377977376211494661212805327925248599059974164350069070155887929106810750815366611400855262598716537568985026640492613443422092536634151705526459736316563594806944356378663154711775550806634485945170826532641758126434920754207085282796044082562120734046113621364888315152976893932593490177578578881748976943329019279113760102409004713713015690608076800939048278348879117103872070279712013000121345068395336925653559876616684720460701771976933350508030143887264244678179417197990299935902783657484427740859269318013273457263053699179880948736766152141349306261374901633737545213504769456901022276051771082701346958949596627182439291806746204491963308516408952222252575885249811336715897708830936191487121428368982524944180137960951237824410146293970953602551194046777890632147951157973553078241704540706052047197672254316395192838711155055034846291520103111655956063845079257465328252203771304339419599299214385457341467141674566906066348548069921109834950670384837316098829771512322285562670186895438834341330278030015840186562194144874419869294732604919847027753386020663092595095619792771077413961898658250376948314268914721370348675350448371635026101337028408214001318615574362267865206914302393752990820775276038052356492874207972339078592010345025081778489309908286912574189947622659371248671577336432366242784498091976644682932947312689714453882771488263688430773750603782613375691450897444134756679060798000999915286188079765327873977207173684443723156831191363195000496637453322887136028612692856125542323964976187384416917103120349058198863133836373322016411756305119044067031009652439455145404224216529665107181705772896953384789296389068259298775001499525499232342039173204197812392216966972540102063867357708419304636752757500180272406931174899668543299668983163129057558979272165548479500680850309662118161948214424015499056882411092271435286754471167587537188893241200804591793431686017138924653575842972133356283474268692867235585539334298885985055929792343952195029784610992210899368392312884716171271495758186537964384887656936916124251282751575390811947527986777355278074843157252804886394704882506693047053042494578895459795313834865991039416464290261097257948554499169000981956429333360668534682064204680563507950674421693148307835837486822036611557614438097646980347944694248199493122385039407429505446344399115313314802782604228453310504639576572560370191995749484180926872718282134325034400448189273988798086720664488046096517123580039504798868470649731979039133165348357175475054475781651949660865851107757629400653773739072876275320739986987219300484836759026472988580500968930326780486875531561176877912925567777348923413263455072226911661762602187618760386244097237499060989465704936441335615262744228316345620453777745399389580400055424090086179670844703332544330778997971176164163844082399291267545712912046792493516366063226858518735345070642636746595839148182263284707314067539050559809701082109278868288929143710227512825230657766458987453924829431051836527925885380615238421361976870150174376079115102490091718781340144746577135691224821038767099151181916588063972612069967595807064823315261707005392909343084222777505372370447594255673606558677749247088726709567888094504999013529935757745694620075912266506125139014401029955190266877000032865539601128484988183196591167259700287501778094820034163233775620251049967230872527815011017366361563472596989610083027742138971762584113496434488801798052884742234383319027278945951005718237979474658554728261267529748914531439927303453647765426569928437362479692740149904461449600704342377481318970683889692002805873259696818816634480544022001717557554322412066209316377672663884023707992373865234995900797094423891515535162930012356172707983856496266734310860610173628946778143460198422717252184823677257745981236122044784512314373092331608540018523648570641305437887079928845929779877995080029030760997651167781430712260420496449930408297070323948372367899909903875935480548731485044341256509869013759206124984217105435803284825996714208698758644558830992357161435888791023615398451134495439112580781869211130737611118491089338316473671807660503103822089517708290925062211792321402324857259700144668182863576629290125916644633336585804499261814334763781802980062428807097665251377897716366274858763454226965653415086443073204570579236631726593788741037927573191308785678601645829119637121861588342169066535553049386732063063547240023931254559310148220747632294511074575464689847242234626278785355769303414418276156862114824773171412816829258702702204248330212414306488831409659497222136022801291428736419019875831268963085191808628580208726545461777723183767489324110377303214961967126938394765704371568299517821020153229472527643461646713752692184859650689497388774535018847031551215795053020051468924092031861305941427101988692118548525369401981848820278853802719481272121560654651310187247656806330146819747937201007809627333344700609674727868166963435752004184679411120594974183525968766257915606811958285346957697349803046491441284138337900894711198714616605942470842169669577925022811939831844682160280611233047785070455011676234465636252401607808583183056021887747288952136133080110543581389039388916066262065722432188876365234470161932984164445324242564588382954797341287665593961597091850341213328830973598279831151115070048642406284292989316603797702752623410829868573364372487223811068058321556631484963539209206572355374106013107989688568976634827844318347378031674743114058821634920540146024404734157644994130998142986197083592014818331060190409545719961402195140080128035032014800162212892144610600038764720290745098878557534481595785889011979068420127620614953361161052966484474323716890912611559018057938040882994385900737269004435421695749157259349080241174359789129340385508984340558129909480238601388760488628903239102391054477969208690383496831766380027184356665489867370002636745629090831120742006694489733463172594599774711218074239741225124961652726321041438262384972534781199028013665455006176302379700488857141222209363595969821221284369072822367178612729192466092388985587976675454643805609106851558932817833632659616086934866199536839309283620321871224472698703254219091571022211513816235050723880823112435145897740759126418915069003955850287048615792498764899397255187535512296176412914951284036603188689947388421934547257193248740572172234265879665626899709093832845496689472578207417081188092309450269100364456121765148692944931998342541541107726180740176045027745488260960515545109264509752901419094078681613282859722626304925144932885559925305386852474257405774314940787409547994232932835376658224948919199810476302044109704864180681393701711889389490895112458274383973832892470821043356475241330775138716613694129994503774501759320813794260149061399641569515378453221070974382348052031641597435847236010883843938911990862928903951971932769167676032575378962166074644360641282726949128187977069727341198122412521266593958712012315368531183258712238858199668840085677717023327242199520591801900130398860946700439915134170289049049065399325700289815113502333408732241522550042654705414267563229453636773731776646055985847204088963620137592209728116036084340375040894353124732068699043661605906238768744929264280223994685673512798271333408487721253468523782588673519916750254981744326153971789889831081745790626186911180872077463761827072001507371218381014250501386875122637383754047814913493147964314051729645559379041679255884199168385288315698027092022108997521131816163180497707734303867725488494753755415977700021698010529219488239473348892800064755121784084041324743970546407409401874668702272748767463563351092996604868193691487400587375771221334096786175424926055381990122899674449304501116393858279317297666883003544802307205887272580139492498030440130927507776722915076873421596474027367055819018521920873124450236437759077686947379125295422138550141882773394960604244580400966218075258008562552852237817069593282983451346941473412145905060347232673816737461111847916862920462126427066528119337133584686364708444728034402073652353804664699768616428478454412560969779140267778993970055557434143332661155806707843145740167403803922447470701662573985028582995959194844634478025757485712338191012232616106970009153126552843041295278898489506188026146460883085046293149122746117962089301646033346393422489723986215242153076510804590797089293038121104397574900045146457419020038233442241843043942872785055300781143681200483932741318428779772417631716712711690542511660670962938931696728382177102444564465876623501616231277007686127913865469877416746443242579960235414748511197528785114998918831217522258552121168475413750598519194745813770772328297607738336614290067592417840440569238177616262465245942316082493494514816834501694184252025018922034625051568178931296547262062940446594114703657104100507032371211577511996617028274549594891894288479802439597650109867737845599965325910809399381855813076876176558584141238862438105825944860718619723158883464240626208661580720943762686316111051625202545550959580252966741110036842417402667534937951341711291795134491804489344078214255493352584587126216275099623274246305832691021714024384578404473816225121076177811257498358450521576215846052792904279903640744686410014782596075440668071639990826449628356122228786706962938412483516114317847194412603591737185033878524959949363410533971923120026282147157065000211183493739170038533382572034326028219913271707950964407441227558121285224634556882272593146581483912436428389689337782210384491558681806355739311467039101727299127216928763616699891385552966261069011624774654631854172037979120663574958192128684950281016125046999425219967704970119658862957167315453621571830189593681684271355676850228690261622213419866934144002356927401393916862856525536983533432767811346636268447716878625562301186739430880917974202504125279777378090755838389631490513585107047844257003949225285232825083293955332091684768960114518433260437570346023647620506377549106445692543808493593625673878370897479099668313652582148831901560692873335009129514092119290829297537031641722737855907356669113863743244648937762998264038855850606440847788554595382977208370960799668065383003415191248499406757069130245792631637581904514317625635013943650908708225145347110760361351987374670988330467246964058754914436724821663833058194574942534113191300980791072306188105775446256978318999444647122467664269141137727994748020635569240014595135258743517487550676933292217379504701037201750028406103405103454670255637000585119080038798036990957990791700299118959297459787646953761276204504802316731770195092152120820758897968832551598990305247304733010342993488101799734121693335395481474551940522682113209041115223639920380629519244719124651807121331594389814695876036893283734855310089670823809695814211774235109895973753550488703068587790792082817968486142156691435310875520829307864417249206648098832596719655733740760005420690437519265540130718264869917327384092727476420604576155877505987499761496462731010882882646192285346774103474324954113692530099079843748726239050703171835211385700448799573603132808830950332750363798049937463763372556591828529753731785931182077044529180382516936934393706110081962557474881323113331934375954391769613183061646284839944295538360736370125073303617174813417355716142729096939478298716606425954660930840195323059951657868650163224273869766471912419903493004531083802483561431450549328639920969788812899760433490257513317097672045272929681160670064165600437047538987562870632343806109117774209331540881478760912380829472374009964344928365014640627769880965437359202708273929532571089115067317269434499795745602292740016052388094400562530296367401285467907943575304968819561409452426045550056258620254400484547370414973500037308086132857876531413334006602967467404249079376441630327100476553708230317440006398255314651010366978274789455921566479570966337110536976814594564390731788449188609823230225346811930131778497578548119397942948336390409012634618725203975097946005236329248316215018395408447520016471782073012806644415842506284133728734309606416103546292384088053574061030833800454630825795806551438202559199542100976184016031055334396189406840383002893789112790327741193975823199686485698722674545280119041288761509712904084538146678231451192953946736066074604433634014711777303940367984474408916452432585495970402257949404368212121866375810883639659829320641693096051233464046959830207250358882532912243013614231851677742444033948246802786197283492368843990795991980144449844952285730490168450073581902172998276147521241636022973263443353955714991037814662698358098761305154916623536790072928825574238986308155215263216695169256240527966846244426948288730871794371120962457057168916041198409373882084161879284666704779564281812796233644815179102775313312824922526546419314653154660713527493521262639433661647428967531755548328828202821859714764414028647364439639596965157733424680324337143448195093106520123619046115128436582037226812131294175993140715526810339046188371136311143981433461927575018945096720656468225607219141668166019852607725638950858492552539545286321729712584950117259558525965243668338133786054074919605655104743613961717688992888056759307917196928208193045836290295891407664859283455402434143926355957657355448443417356600298706683756327770112099648517180555512909416874710432726644018954128160483993992379462464854553627766325840613794441235381700026121692803823029418572305732666301248765384139655226379300729521240614128343181169039551662568228349785146702097703683994462806199447563713365816278066688536275924075649464562524523802247644259408882255818988087861982230130360995944792911431740163760105447065285038758371083929104398759594601728260552682522263713549776388199723155664094726626856677770850538632759577163745014832846249793054297142227144107943133819239239737569839156548709285130259941839232288121539925408898970879673942315070979456093037234038888030778756311006440743261697240805385307908239913947738623166042880138514868846419158320379169077539923066890706537619802854689306026669216203363572279531938846177976016400014036950922434144966819160236685769777055674708433758421971002750602548008109504474296479748602139031932892655482913925241112760287831447999126071592061177465980065347059919461497179226485162355564803117522665655436687005651606439858308353572507380792304988341790304727185678852220027021391595905494976103104901442879380167687439338301693806515875311373110415797291895645621968105378825770584744865003710985239578619275578865765464684106545752776535099782117780654655273143254805615942413619948649553500971150312663827521301780808176879436596780153086060028622853855756855236806866237832036830253206075502038410285603595393163647526692970798237021102151726231593296529536705851652882225742665178603081202889973991100933965995596135397222509130949976490790426342603317550707297404478212460004540960584882758337723689879356747187962906468177673279917441567951313068838150393300149284429014448423304867076180112760240791491067932709103612916303720478066035096799266827457736708495676402693118537356484557768378742474126890862098050236651359314239252642385307547784550959126876330323265497121543672191839986894546323238308302112813555794876608877754840278309750185584331778083377797917093191932916608538328016442857850070966269485444342227289901749751229835231802320224163304897469398543105330940318646291144503974156398415192026540286281967052135598127133759978542696455897283194076394648698533228176944443265929280386713886753960998622782096804986368552687577345754618730921073132953768842213572353471836508067186402885646422506277264939290054896748749911331665523882704506082967598665958755654807529002143047266597052675954524805150306815063406535500174813476212873371240739220118839195298069832235359909747584180610499391074860182029614658746022701292607350558551427358995303932055370728950110564468831941269392028259310114621841221364826920411099335893720054924349025247394403353918380414329539661619396822519695139436293414966479669652297346624284930237822435696093825626912421660429019448659488004204780463282671351281755004500026725961225501592038076533141659103687143673055105522708470780962207243290784126353569442394386104494853066439829749312255615282741224891696508878938855897036271145123207180245068856599350782117696285591711856447112926047034629143478916204692443356023706609611337231670449803043312141231914971099451857429332422056686474673900718405810884228336375813102804510249756745491717621122277434109007492725302666143146584853866774695995908252317522159427788376165905591542458256537882404473963389430457827280424658530109026517287970043718369656927641954580416611495643869996095559666817224754896510873654889542077372056278008836351170005757485648464812090007771628458605961329854385437048764055830120494950818173517040382864894561295355857378832745597699789998579600461900475592468118001567477747749862511360546701954193565584598800350738182083173697067003367125028003651079000758383069399901926470401634488699689542768684447998698720219074379075597248591003280954065036707596573945032092706948049327262185252068277749955234297391219985105733784103691432020417150840304207388288696448846622298644180047767033599495173867023045994280783102151846094765644836008007562832570802551593089505566983980457109162463736429847850597153750185924096121489483142934772897507912885339305108156952044471488510817076248164556779872536333049047595350258862836725109481430882451100127772274943869486395254673459135212037585355434275653255443181352669847525601329598093964912076150270344379269367775067100444637235238296981571297530184486397154977001686779807250769327682113477315195945997568820184237332678824023127866141695498570416174224191464181783736721780153494074050083167288505075503690057586303218598149285037890454722311328874082488726855017311120470700985778761616365008262020338725730404813353002375426962085998446632674030968731693676249798653380572968372784177651008736699629200474579827818356707717977535370897834893361009075816358787214187507689871517411176213155806678127975185231139463758858561261277883545368920840483963000477316181841837405988852267345198133539092504462315289686474180802810459519266491618663708314666754105716487469471639946890481304150354785536424434190271764548967435021713232103803366769392535939099095689143780514935235719382040957132299939840468828468694326393851186297433912466949855880409558679651989518399608158727095268371799583641279787155959331253790120767658326110036794726106382849186681049095355661393257395877825576078701659037104833313796035593560914616579299440426563744887691798888286590501362733102553675115867056961783621694712444546774167982824706061067015750297389187835970865301927892945767395779477715152867599854329567658055531294524786548897682654644066345462473361055285852584557434492741387485376820494988460143113097300996121691091839689119542689114177862960712404714729290503873328110971610382403254699207947479548721914124725789645466930779986593099013577105113359880086299181770875030788404624814683512323407942500989539727375070513150938009899947892539631315850182724215105410860859744303541034479750050972921891193019625999101969932937785191230990542298060862803432477649072529433871370774902172971841501749685236272341129819612131633016012173170836389124255524915498779926125595688767764812220565313358119948977056093023399530063137272206716337490862781147032007520092659070663281910235828872118599885507884948091854940355130590898408082065583554197973365487807615214592969635341351704382515574515210373214088242604886495046318087262287826860221638063033316942147108699116488951892769744709066159330888466266758471700973135904340284587794643993659999350525493275330509225038722478842354356947502220153851609553553581341939416547641667487086242893270342481027290396566314913696494589021017271360145112120869140022043965770923958472345200574739709036243300256235961256651444549330290820752154808715924694691194770248700692730402005299149293393229002938926032899535430788710612638071321389218565940653211434991127091850298347676956682358641432731088262480498754060809502834243902266305896971707145360998798319825322739120747430150331890431207155420943510586172767838684408024560113907904380317319349899060914377711850428675511541042707622895409542219761953266288924016770303349808297404905268470846639224238917056101178928141767666551039045538736676035109775258003777713040625290540343873599777233809643330713414135675166235597746110202550232153223992148537325222870863121926494941861606198323040572111094643728902354431442987638178537633430439691429702940141780383127630239203547411995990114398353744230619215260670037252535210667075958828673611857710638304152377840622381545169550117217116156414788050145149224279893155109941300135726359984572965338139589006236766901100123597470314019147488545992288080789143088319459162363523097566048352779595861328238634880827430031065138287003930481487643978231265108665393538603005443738574889974632279611849159882754301457310330001119719945075209639707650876253730884685800227237062523535125008798168897707478394226344430147000143136654066090743498264986528175592302070615125331901617133777305790505044429699750436184267379344567027786496039531686955362204280335338358852054016005853437489900505914780101152806470929329369439136963861402753424444837576750577337509085885821663418810949733021467027874605607614067841393517110388295220899472339716973945662650056374482912894575318232087783267650040031176527915625817654035521957662025467682530479971815899426297319742493393811941592174611253449231837886441941333586389408733980815387020524199612761727596169481206440110240336135806452530170408924581605938543941064064196363385914901739201909903867744294589961953600135552475333755544806960271242896268411460265447368807970076033648783193013400692256290237537604418482814975494548980407017257099852856490290864846513750077285201715767890069183960548349294470189050242652058305323762096359247718627489615651362096198697097755197577077894957486303400197816068375307416380758957266017999162608370758898623064076251907958556757714205812807922671869126871847928424138868127400231061961069754287442083887103343071487838304764271507381208800293286219985503856290533561063648620699121953460479596227895029145488338895162012529101323934537625337697566019445970054410897905981333194653610037431275380560971229609691833473336687524405415603692334694482405196250203825567490320926104080111210742271848726790305275702293819948786720488395192252966129849146674350485035263545971391753030734435595352573179062476439983100875654783988266631497476663195138100148319824835902185367832295047006440231598316711163587409682285458713850990178838872334346757134752307328381301967914788202557168484709609351853559671697159416425251100199892279270441612548351276997787335362670369114953383197911072887946362416668921362660348854784709017417716461576662395196942643744622891554217829222525655419284813641932863684506012365092274331436026931872850123664164397334495922584921637299120485541779537863616162822459350500506243491909083858481974657707305126178218706309764158351978279083279791216703167146269433407908278051702310406083562001692377360663268662422461341161813395668487479117111200203568891200986676369233342978568478683904643077417527689221175534359183391690219175307040415421252242315256215799554783847497297691280181697489127938501634649856051077615499608699487152696359138840320129598413607791469566823526571340402736038934781294794969845569554859056314691229623674193570833759684550969472922089250685170531869371250864185824353346834534725711452754615358798794065667213748175426170836032919135289897457783558322598373996506025531426245676365117334364960109235381473743530992896697215526772603675574706811946429680950474574440711811968929349258178297982205544653635406119778419190464546134941266418833409547528174773182390509376006039512134999371813444038315098020132928139007742734710721791584147244470218136175199667898496710123229191311452564198057699270036524902702414229149551890207569357192653003993814391401246227430981685762269606876866927845583634257180012254293266377331985296386515171838358431335977619760349794431894962397985555832048091252105033867338397119875721692906853651853513686164194209039844255369985852534777955033247431887018236900142722937197921211933119599831682071059776027509134241592825621471321571298718539967190586142718154593358542447310285966470423541658143321423234893292977732708409888778252275685756111438315655943430557893259501859931471646158614798742520250566337413688733746428943112790558210724918159242118497280210446290326956567758719679047252593385856821590712548176152488469501051629093729643910660663850606114215498027389119378112578011399346487798921138667920362531900490867418590268049041914209422766360887353826480440629370182252737701116301474861167432572673118207067228150999820917765652840974791175993444575031955751267212526579583524191394715005590532312823820862105443871069701402642243664610788847212390510654216257307658768622896523192670100831074183496968360351868005205846984738933907494881506235184823161366745789668063582138933480062484615459262778267477167687973536266542317215254687855560480840444306931057873733187518055378836701401657529053300399132668152559953212683583765915201097911453989489245405447731968616197497175132685553712167811174106853208031980731758593387044401849993652571974836765112194253407053025267630271570465067483076649987440907914912086707078690761330855080937921169178215729330444156597586215964718153800575077139295041594292901656631442886491267030002203838310168988530486231008448778532693634017576685679135925378468152163807745218481312307386375256664242398523311215598268013045762535907331279372438057129752865195343302542275151722320335877798216709617303636954280876086659563903179482078453077089083742015278554259369923506888055569101337022554235755000403659632403971410753983572716752501940222266432025206552787040840905174149047824473671133524662384221315674062893606371676331773195932932855655528458110651852736344949993049539005705116702534688166851186739503425643782872896477424019217540220618074066616032931708584679117655912538079401042140271846618765438004017988793424241395442790573741721467085203111931857963506753602287970434287574147404103793574300206032246649175325989782777554937608279087805636864320495506082533526161212421542069439097479414651271645293130328298096789157572495339559271833977784329493652667207147680159898304005815048725171129024840830244865673610327594903564988146597045105526595829712568282197355561587166317896661526135269629380150604991795470250461391607651844588399866204051586642752867901630400045829456730006838758318217868391714423347360754682526365948213468890535091108022914089999741383515930969306813882435494214957928995038779366924954849492962906767092572830394255591784446743152219912745909664114216977535345286930457008336379427188314334597763260319215895944245287826905864678952240199209004626272088013759268291223458307708376328157469853494082296237139006897630823216206087206075381007360213198624023987583997468856112956775716854061813339025204544667537268946211249697969842831211117371173401952261431848523380924112256155664577551461771677296106556623577899149825005109052143195415032123811732379824234092144632409189663944871349129791477121970849426980447147836828454275704310842201816872065905863102981084200593792814966910376889279346454320273542418260331391785471246044758600513224775311517348728510114867704834752152972712606498763623804815776504176686925267117006519624047205906974365357633474831896421748610452510170306379303549787475086590176679140246129138788337283496849042910090542973166662379573491046778967661736680817796085596401692784213204150331344956321315157496725311311840799498269753190785447439101366641968926793280424480261462203220181371651403599988503452507215064621896390837426129997224195465142676048304942242487115244967808178764069792919725975882236515336722485871407390790034224280105790993869425393902803755987838146864234898847292571045583393419035882176066488347674062728667727153069523934922400672154675008488721135602787646212276149050738247175237379799570507851588779119186369041715339997728452235680213496376402139696685694850089487740381056515998971100130745296115389314395260135292853073983829873917506891052758340350114510951972909627018240636575909052425011223116544675746002133700599628584127854460169908862752259320348709396783315898625907875226095210665964075256666582064888757432633245245878985776672113576125895474225452787579206181222790356509945666083691704030601735884882239543367145677123619593430220020922650201238068834515413538481615032945488464823477978667957079864491610421975723548057673444461049615594362460762733472924677245784649462555185835188753067530611325343454848064639546527895608028672360313691679358471534949113890570061477641209295265121507159164644713116303750369625632778145833962970395744419488554864890345684576682662575291924267872622325249175820839169786123165523849738343502125033305728387812946587656575940198116932614103487154037760929933075942954584983593871526952012073880321277924739995016018240253268868388191170735148069750485427867889048083720656688618983933015611187579105560096692610581583274623738811819379122930340859898479313597375816409502058801533979068064116222052365020915697318570475015046983339875117496993500862299391924905998982040269165631738981321754378450168333404873058126060797327023511460795238355145898728564168593831056803881281953766111534373091542471590208669530717184687295625395412062982309165478180206731837923712085580387026536884014748316563018193579542956242863465976368161891803055103558979189379577050415338668308306752523905451644847709443019069601386301857132153147428778051219144063357651484296239091060998943413699574269994064167621130538112215365661673522119070040687817008527919176820620737674034413835552981717796826852828925307743468284874830061473964021730693643395525512926073675436164983948489526923169029664584746075657103845402842189018071606070529652587158168539336011592728350667343493802775738035198444040411039523657967854106801218819317865495964254649824185425669847025734208201600040503486355095884785329958807591964748160377777711678929203849020575793776149588455924678595878813439049021133475148365671574643776428651502532194379877537824514254495398867851816664175426966542173282499109825193401892165819462396090173270846974507406862983587572284296808854251845699505110850209105862379226152755154936985541876712463815364408104755612974687417939998170888691295326123198790706909319680773398983553661503082264644323430462236698148133792055396173004502389006147618829661531360918382693923893251924326775083313738417728641710222932192996165536105231050398227003559198279310102983370510725677587109652848567704386029349034268661367588558298751433304975250634133794347651186531450623990678264422307743549299171908050588324739963557730760263221425107664890157041803602389092019361940264994732384062284992104349477146650171978003201090263176855389625419687387987577712863856849166076505064716421783079629999340131792423945360220913945419122596364630096148640662918520670076709849004438545536338237058658177807465572219247638859950152737528047154830895989892175451957213671112493991818550240756666981237323408295167411721302632361428247028201357773419264230647270577609587471252000296751576585529333699463341390990859438706541273845367194640889618100723312086484472163532958708435244481122239394039727097618999003800956736139782134238625983153465656209309411141868219303265504546054811727749319440407775704963316437898957952065221251684451579327812210814324141564665710352240216917833194146144246001690099882400427294772469802744461800194401410517926266495596905684903451861975440250748804837548341533412931486944606095754779480369460048641507667479170770335282348683062115853113358440413922241131478662097008359051765122159914472039430701262482751274724048882065436462067458934227930271233955168836233671613537369949062681325744475455516817001151303208282142502035590353230916370056728778006772335900623578735198569639160229809758719000819224493181932514344677895276131396027217167967211028610863014971892244086063801847517358118156185840753207254484648299965548623856870596000915556161047977271696192221664453992255667878942142765497987450376449960176502046617771084127191560366548162653705298262269405515606319709763733815089842908176787563810176292598367431989626293140605072201099672201103954318190864580603653742817761765010790118407275219366832452495622932897748464494970727258478754924751385768291597415689038075064755551486783850351097976219407504214568764148847084923005846839714035504770976042258442537253859444409717031189630948572566489942012089558602288917639237099847472371168778842432341027060992947699837064293996123150203792684668149102533040400920070809023444536106933380468312214536513186033386299091670590147294580568584924567098812201877353998255726540178086605822733002756695509889925201861286249685318827450002467578070604607646728694479458726242199924528774194329010397208391304997782157338296631524686835944423983896492502157264188638599726531549657544968832732642200734126304059063211923143171544683599121721137892505023422239439569882592697888874745164991352981889864924383215490968816616097942304635511239069367069117387711063237054078093026894752650876639028822423211441351096800299935072165033570505305530471876535442572111330277811971462892151782290738393972292938591245573111480497213652571694161587789857459599207254515784625584368111441055166381853847605126789127196944700739235143266096668199487775025471582193617212745691343759485892186487789837139755557193841560570438786810448881174684288170548206371156096185663299049670739022080603175858941121671926866458908470473793117750165003516196936690689270743331300672229108655154164919062001517376955155272352616539591911571548154350269996707877189753959412846067945897608089331833582491812667305284247994188113153283296760324797037887948667191952439875742857830142652463643801263564453721082754059326206978958253887858471908037943193899984869097622858526705821600948619720523365973221198155944690938169353265044997591377052491403654218050488965446788962721517678362037094735958037939226405905439279918936110409653676167862741767275421786274819688765414404889245401695037504622547151944655962162838677599893486977519509940606488600381310925578268682639321285686103399871860414447659041703376489495293351923464237465899144368107894207337876696147001969973376149943823994114206259048531643158794689649953081077469590994075560546363246792327185201324646308217524265195827563220545293933469512992701342837001474520299892371450191416656215070410820412752408814679654530117083601942790359336838526711537267535758074903432891417586028691048109477657479317739173684606876428555999493366717379521528066465785379639769584210470686065975036035236543343700989351501013166108971517318199716574259802382762734941593152027770347731163825881446607405863730095671890382482943281887346163570177117554206654488109606575073344405916251997782216862660612741729205091797458011316148700108893222032171091299203594193112033857294961914362755767079511120280961029220644873465752015230993956000409670844172789958645865552737343301030101818082552688696219927612447218410398703915488419975794192627540102357567882101069412652357653197391953933827991640851571781048099272234567779665083459724352990276205415669732652745697224974793585163184469792269627247655951117052120915128027307538732422767219009678977762689918649642358718544630374858181876423572250222671614572974489165369313911209256120871831669172138465487643815660798250345827882239212421418665451958787484438062854826968349493870506881450558153934331245396530817296290201767954678021626887184130775127262323283288421163925809322180242550024815406454362694437967207694657412025326283074891129939483262753683716246972770737977445691277666714603985436714806082835511881957014965154629834627509969603857375564143852755457003942496886349766106393750136065583285481501552599086324985271475564327709278724322033195090190627573260276432006941505387876494575232783306437462491132243544425307411651937298973560436610286592035037551366600220846274141110386424135800428075000852749068607508907654754322318724593456302214563206497268468591970556212232506396490808627923185988470729898866401461974728026181119759266705377746964251776998581992721380203976135384513945839663882177845247910409732540406293645014309202416469390685714537905371918725133163969238679325901946557908122864195294240547502483313188216973164094257744779145964308082220616280614460931799966111219461778316557179181650084868643789715785244645970965841166649802528513817436569339384238143234138368801452380638894968377270150246652240905411747239058923899823126608546864601578911130691496937180486141596980351398333349290307902982179444267703360373893537403964279226941229248192657389345685221347026187681477371994302410773464181768467129825505756115064587677364156489587124163228831741904939715363906981653723604718983059872008323683867617147092506454495745179708810948012459612601267896264783004991636721687190952740948533281448201296544314224522375096086785452117779807499963882697852942198334158505587594176919583524672078329903057972080021089450428694959034679338117833408796333286568716255363743265269349124856625638203909907988358482268130406157762518411905674128924781805538642609407096723524320944342102494698498748506411020032259014357172522630454561527491531999821969243860881970272607595861608355855740374965012103969733135996223390834457274266841902276775558220770318641559910195892795312384786153672194218654724486144509554939207916152059081331586561921496181711290387599137102103895058799651339001342624410336029521872789289515021995349028784443296013187453163614977020152177402119467529547340145292545568733135633057602411767154890626582651492165796606008145799667391839930425909949263479593767086035898122637466896763187276825319430629570200770395130126042484528380912392006022421805791108607888909295688881821737172385270470396024794026623076746423982630579961090712993719600983715049168493226938047530880031919596394515021287928925151042510650987955507029088122725869148102208843276190042051030060599354607246593170131593570072308474279506567695111515083955738409977383806098420279430803502466367690672054512146421181116566888910816929696580300750916994636082708357193890486132637865181318653732854802463479989478160895169874234773757513430174661826320145363736019761452010613296817503937292629382372027841627283032037168877243420884476748866266017127692452716802726466876416990138401950740348725425330156964352793513496440713515754751727775045712706021860962835793284285424955300730156821188756048159595100221903222629335360959485765104070758983610645788374056488185765810865943556937156771124406642222838382307564281831883695434913068440598598404940897170030234060535776406224298221158233255995469990331214477355731610848566075575392512034363721057188091012628556148050585637612711969763138389035314494533300331394224908296393182364845918940296685022005411184820923076266008924456555772158704413630457364690258860228788064422409891569291685145224715265233475917291748080832748329816764465942295964080040289291544827869742893609879230150241244584558447936286670771765539476405826238116320812677714722411421266532947075490664333807491306980462780847542383401676850970926146372498872012812900474412827486315211793380494133850903356209374414391062498352536973990813049694481159182407052373231830756024802352287630763162934699091542129911862915725928493194264036286218395709231753516498430932933756954013678174744150990479000141728924057503121750621084187616269796255400535478021847307372976754926483826281933471756718567309355625221770513944446100039727407614681307187577378868251883569565351233265009424611041266716548286301262655022032903189559952287167166955909766297939765584971402786204228600563149258558052365521906905801961526523768364781270250971242161063642173006862584734064767617750998459235199867691328237228439332824980324443939708741869662777960192086139429457353740188143087990927741995409766014801681610361812717269461791059732878320320325303047733775233984126405441118507322041801289005893761724176049874572437150895907819461683327394496720426021379283188909082717615678163134817887609294858849585663632920210015364168021436465368292635984553512001349047483580913224453210133171006062430348204038900054347068942166827934692065073167290582259767849107080594021118970329312096606347773680518730393310807666243496767118789025683590136897507325694970172141326494425377585591937438205749928911498141685487353251448748518809094720294531240327040914799884849967963384628495129784081110662857356202494043034516222169198626397706968370676068160410680991651209457696968514491088367896719679842494177628543646834718849241345579389367533565577589419669065067263922653476263722242856196278245560456345979651204483514600549250402960104795006603774859916885906784987044521365088483873209052563988148816111102058038678813446046741634255226351988516332474520341694470719475257319360651882990572522245235662156649387430255345724714230561639375993110488554608470640605537828274647737728882301659298810848067033570325630985082442363370400017531089356133645277273397996037074507873924349439202457028901685981022783219673299408855647791809404433538644498915854794946513418059257662277176229635691661132441516452169630255863436603979859442690707508899358210578354329639573814120635587004579263918870399884322025860132812445255283698661510201022985655901648202037910071280349379006346863624117036385775558443213485462749106334899202408976035659275222156986993133485451757249182782626428253300828402704469381389234675754902786471660050115587885135480589306787265241766944621938888470580871584766912098736280855220093018958177343111507759476742732864485357521855512098770091413603942443304598551690142900633679721421255088437534848085586437115906272054528660103536504949641512969564245985309290107045740844598413431503512947254564836116103199613000063039409524711951036050969637425721174193521076937750014987055134069221290483292918892163143753565441234688871410051398721530311296153505320438577223716372672115707399036063096891124038847419190031473290840728300528625351228930580692036941844007550870548576089022193062683456397951265765775555127049876687235771825574584584989287481707729813752836366187158889063760390888590052022478788130568923318393532034194020820963184815957337382846404432319957813361983806844517487742426088684557561056982030669174522466612504370271934324570053689172351540441311005005350681267433313163298776753635086465749245015052308112006193074688649298493701853991873466422504388479392018307736751384702223541836692792698913369525455653340161934404294789865202635313265350368183937970174995308317415135944428354653180964434277342059338159198706962108126133981905262159885634398970345116110957870945718026804695137563664151894713968537838515795339412728993454377995833314912931125827513365925382221975299028355969533961276317891205143977449252702931871217943310617810813914050314636058737578910106578138571821286357769335728956323363771741794129630274831280354034638783042234246517849568558342841836033811044228595125509585589639301116451337583532831366641285526307673630662041212996247711763558840890430061164286817313386633062024172201075338628132363712676741254624993716290198531730248843331193272609884927202108194702747525836522669856236459965464340210789333435042771347910042372144832781951219911987514458276933795267663663130085995867389545539589169230016884635600864702445929200002516835484905782697813704193553731256803533660941580890301600281158597873746319179616683585154516112508714579302850545027950024842374057423793883866496755055734877472358089863195596285930463347276013154205644882528592594692637597392092347225319684094067351946178101223554255453343504067515519001947451905344565147180650595264391032232866515803835228370918160464983802761217195027715778827098671940417127201588048812046103266924527612308364772841796817056357930013571566970016132770859343991347787341938645724250368698898751934443296605230535693288057414806279173214999098664303117595197234355999413485602859054448310274910889322834766908133772068458890848482487099955393543957226194198747888896622100913753923076723998592056358196812753175178191606658238512396970404025538541394009240619815338470740585008395189897621096920637634665284042684755578148827648778510062757516590144355305438033485081055436900029429446766646696051860981991876429024649677529158442681132934412368108319107995488848285391458058173231847181110180527422544332620493383939285447649955249461294586960692482973666039726514104283553774849679395987794688293356437864466518079048732229339754297636370584139954932072734934864621358671967923908724994932097999343021484827367726842685539396868440189348569985768928906235251496128220870046559764122116004594785885281276063918657659081333481254075362610174740305318023260945352347728595687407912865065656676003494397453566280910136372444367760474894237275259755768766794768422536561422633668369161539598084481818611780407489705932401081015893795628293074986300832524425259934393161068341662533324675432233585632538708204489861498715243032718220531129535836219796584405706029452757322571740364070143677921070455615091122876430845362860000941068362644340598677046719782800260455470881229376094022946504940607944397027158520038302733625954781410976806445458437184182624614516029093199346841401125515155143999429517473439839479205778466120732808731629961117077325605319721850176279353729495219663541962405781431917525722544704973435420781105232036334107766584240344671177214657103826023652826766747192050878117400337476859154614136834053995666520093346857644463713504951779522870393574359751258612785571859406865152266727751429192880610181070751258071086225787891838439221915354767232000942815636760178573086789789043290467016947147323477931348526764026411865886192317926840706310955921886279870204335745326627977518541147081837992223340607795802727742340720382320024365601747446891614692325057378953061184047481180730579322921683012122050478076233555239429758753651518699419798153759735975049632050154164676221678568751020986391806023760240114597435971809392251382929953858676216557704424250114638797523600566484543072976592614586059640817737162355975285662629004915918681761505929210689609535182792470582428867840924953297419527077505931818018626215434593136706342279390326308256698582679988760184067351241943981932495859315983484305682943661942834827392969852681418979421991045280636334084923498308056566527115896674419972322122084032035646225591341644259437472278915214560871932437960592349043612912254912436672456785134621955807099349881450728582895572535613819781244265433597705180474161188600675893887511024056122145161940408856373954810744517882193943386915404641307348202103125284402730500335576479918461847438695009627763512790820722590983641586844859422638124339837256790284193587211010987539568760207173581212241635374700384413519138692161436633124358061567610264451457530490420868798007397299940398913597660051951325469093067550002143056602102302539225403135500680066369366314479671001488440978973383407577531161122771479227753432317549174187549310986325345719637631201428056893521026173714798997205740580886201184822327242022324664518375959381098035198213114672603184456223292252318384029785046214457979796413199045709700416040219156811463555773199533793539035925786076416552819310542646915091663047647462750320335778814065792708012497074473444139771875774551226247152411734521730924718816271864326877982427538956938204721257127717193168225766882915047123716468538082190772491515559647554104031496481063035617740446313109740108944559802640100977797831057018325298493637670222811248058168498851966371484292281194336030642172106534418068284809536090211792210821597531677600471301550186686242952518999917581843602723102012040967378211985993439705963386030609684466275701025665617514109531388308321110398609305173872549683940303583431455752824902667063673718521736474583347844039438705783396671653178024367356981722699511700760738512142083636846326687978247196373730049240352792302311730594715429792262188848145787158172874660302278766762441737591974928368314685606936080892557033339438609880836398303100518199144941878120715806443991425306509843227046807024721331502726515161366339073990524056747689769248251530805871235847632510069318450186072963140458448331903430991619301923654538724166429367359486309495877665798571556591279780279145432965031448026048592650208701945070027917616585460091768076223783153872030496529448788515647703164732348960531662056603813788102397821882705992571692394766304417346483690198402381030377118389280118766084862422962333031976404137689373510641733875243237474567416851533058358887072120745236162229220084403236355806744617702690664380890352296062484288717214232342185577445408924762044877259736532605667887385426081654627916514373983019194111785616192951336608776316459619929957520315755216686334161298641457747905398012449409179594471316336500000349422925701666523161409754781396777790371927797423081489867961561736585072676117820718741257794028322371563097867241376334366684869661452145568755929435763111080934830081975903141920835277041716921016885649743892693685864335950896168637266415073007768667866853300414057241309988107399042312594981684934200992552729473734599513875522625475125848829086904224652302741602748878651611468765005957563889183935944737772705826780764040405845747295166129052713195522056589673685759244145839574970607473294173903501448121430716939226413600669658580822550622180513234356191799754949116961758108744357462623245007908125559526710794896160378721306885121971363766232910692280634574195145807885640090025492799403549763510797691409307728681681588835399462751163059254588560428861145720944013344877406963520659967513165437893819025944628410143051995081573727328490044546828653510460010776366854099066864064920793639518300048627795668956098647113272023157528939282254311447414020441651490590747488334194593781956224916407844604186830829251302241528140826742350464027584848980863169260075193138900640078471525173988857950669837395573411605686410644028474432913114661382736292892383045578706642890758531132880368857508553295874273673916824741954993359764213546068326911522690552451985836801748280673335572505926015503445938391776454375960696372014339331093976963127153708255457982897849316952893347775706282540543229750793631311918814306511358547482261188333239706481220759711157692761123606193203045154768495151411641835332228264939933655102370347595831638201070447107140123867925073720944417651110758770882788141603985844508622144366536388040011501273194807922288995611292775912043480658587694837084282769413047244768726026633416106240666739585952881779729039819394512220736663052260533023088921178692668438325915427824484799670591128478048568798077126669499111562540429005468275001611513555422551699266139650486982917505051388112963161599523802404127199385782063408748723002240756104716957404049840129501400588606430241443964096858286828903564948885960485016771678372623639488083319719496467333770028535379901927042568319297997432782827430216834793139887463841367035440847107848378189470651108270565750043026401694444844568259857587673691615913868011797851661228254729581428121138554710456409418677661599705470195001117527825733109716033583539732749050922207520553800865539304471706349235687344337710223531838239329963532405317370817695669564069550686763383240415880937170912132129460152701164435982033785710650004128912941824483912331728307664290828049812695552114792459506581633078735103653717266755352579846322195883244552665561128885097156160508830815923499697270542474529020277737059416628486577388968658258896240591502386007393647693463711544581252783628287497518505478069441721183985781546281319115487444709467756689623638909479833274129247752027214437838742686308777588592566636206128843206256148411279025967678706329869623500136932043863382992773311360228866724226814636067945318288931671329534767674385005348152542853616596484309866642128282905679687366624468504285335695685794948313182187431666417029851506679699866458530176281533909930698716648632159967243767571317211589602075246891473973425761392362618939791719970856191873458249630436342692003247193871575518175845146600453489420771991695437925830862775224832004920180484636613745531205223474259675614436679439916283117066900570572104776562330480005155348095047350271569723052502981348880057585451415227365271990391975415174471871242735290337042821310502428677627677380350939192602143868032194877438310438543461601815900968006035740355470889319085272132554204360155597745433062103490999772046237346728470666888821653565240630558995732080244385833533037066800097058380064097791242491288747759914989521340833031848189083679268540896045042826636435316576692704005475043255315808666489353355674338800453935092539682768489129796629550261168684520420420334738119569615508145119195813513826584906794645457898609935736009477129609672490305797829126187876965296423292190478229245875457065200729364011180855828187336951597993533770431744606158552626484072118342987978776441838321051215235810226431414379959948339349304128407730929390366366442109928880183607949817335994783701974558615246046452563141369203844424535934710581286273482897264583940915520352843615079858052812486496821856879411540668475352005952779880963378084867926159610968281929418281854119441287354969924864869741951382668739989781932971562477177744308869675602984620081470635478333556168578946123250162276384726624661959870449876964490303272385330843531119957628700164631216095624536917143930692292871322448312948642909008117671584500309728028731738166678105479938749928081770185981205864182020299495802437479553629634705266150101057833812714825322600660912992614487119660796688063863312201028094654884364823196566743700455725799133634387699283664753511550127353997193020758684646131061674599212490192100116763240282552688447463246857064595112444091734275810444525399037381685858610190081484962204327446542736004941516977330007326816484445991488272956275970239117712437096441815181967184063890623245241064699072748018375446468457409023219926951443141645187936170953310782365279334800751245240479678311397886735224660553880150862848364960004281593822638470257820506249492498244740900939074614909830552604681115645033343829675720195137989317323975521872113729766955893193286860062892586507395780551899222441234715609912726723385309470844799683562153390359527661166007471301171683009799546628270986432850362445766312034435590897974509164872105114566277431197480669293626404651327019476599786718610468739522347788452375756197405845330205662111162760705709240676782194030000248939049101919693861097646553456643598987347202189133010885484068719042129194789053302624966806997005955437465940954146894147444665028498295711719930529812379487445695072208732539892031885611034874517736811514834898906054410231572606239821908008566958293864129781122643482005730008657885545080385607851060195812556910225317728928795563232971945463471295017464856453619792371534989892603877641038161579867083391701296630762108330468300344645259638608874983383985534057747627500472992085286368583843729478107082669658343575801836182033668160234907739740693437313240842468771515643109418034270844885667479452179026030985182850292565566496707575632559231917500810636220384967703694975946818072245294060353692764009114337629244376444263875213021329037448291090448430183683859311968845677116762823852892890408347488767825626756891574526479366329152331614256730183658996900530707416603782319461629673852704436965296699872094486251024646541299087922711107096622386400408352724230661836247954730452432300681467102003537404031905934591963122582926475405814116494243218371184172799949562721563654232305969048477400024873594622221894425730972421994532674827027902356326435782697905973394255626203164432932191049218430895528383572344194408336995743679222103118183840581748340494526109361464541999053996077446911409145393985405738020485184285472984531023589811901502070557460171716016175587182971255791576038335703479101599390752483451359526813516023288694776602650596376308853873823899133709498033055387072038285743965021111906511126020675007082589622103007653999673536718269738155402442187439111642364541066216112041517322138872183571508511154231611372038448951894004699185830378514034922828224832340256431096100844691284160261326216142754840795983859505508542158072502739044558154256968773308405224847885793091094750733028411058811501854798927814455344579247408029461486583729636707881931001422489742415737787765484773408673401429764434004311007959104415634970608663007476287557180421095984470052325369974118378660652994742738200359266979130886859875168924789959206473953910531297737389177841703394503235472542463828406551860290871411474513084386345150024068496868328452673843981035654887518340181115619653243014936131138994879057154562829082405474306980239978760657410487287820623551323616191716227584894308564100791937316044680007495570951203550910833631420410389983143505575076033049710815335070508359139007118310794993921883913846268901622211311041208943135311697668078296871148053451621262412107005298517049816140960485816227244695905537666367059662613148094423619336747626008848566984991722106291052367107539749677617380496251416627667534174042267166201217363337277206367021105094950528483422150600860822605844907301411520160515950497881038482364529741807713715088282743019152937536905232897615467088086633525335549295681318945110104567489036239554845301760328878594941226847091284198886033774839728280680448417748911918321903476437558702373962384756822727744249642984319884580574790189151582789753461806207028384112684826630167934411601236886755710954566879773608051501813082983104429536066354536577490274028639933661354176742967841456133140244843785931729090894047896928810259223236133378847552946193055891378327141873664788387467266785260503905270871882717560698406534771844725432335551974624020135633346119814842316301635900287519519889793798061771941759308700120212780398158941827148839817789086816425368643604865407668556315147341418780791878886285756632391281782145564692033163600384370177198477540559024207306441711106244489358919503412333022816088318220999868534398915539711755752771433844249439005716661412622176940427755499465454662229836673790026666475097880534190239708153557063059171459845874755678124501542591374615477610161860813836626467298090686871188946487937626251164326365372958361045602855756360615432492744343892417922506987186671934856374709661867300745317313065122796405857793765740640556645556608662662759496353047692237976232175709473600565635519386082455667174078058392162836518735272545215157110915737382162163867419165507523512515740785409073236552230222649748871620062508270176336115889681010880180961004128552093364077148928727198339024051427811270365913674781573995816169146062647063841085316966270572203473549638584552893555813964430395930037466494350344830639585716143811184093165653797756606475978484940457156020953515428621919177119788662294547517750746378732608285063382358900797978913208783181554129845684309077160847455127216850354335774041987766936461148104394969141757439987798755575716615459483487511372041396507718226996973921224458211509626849529015348483000558484090076838572221960555102476423082687551063378304788104785947230669163450426382298502370611424133248612648697432352079736498143831341542976122771879264364517973573139227628467410963735248644583417090117775531323264145226344916787362132798665483098565073774756405614006266728714943776310489708159214723240699043792553352812818623697438865304006349863383976743812665960767942971212991247036412046829442169770227863394837280709332417511487745028125974145966262570814288673770721286626292916515474364508447153405431005166354703721472492705805370711561334943753159264437753709729538919774802131590101392052956270997901172548374946379157211901774198891590730490934902218634341355071585728578210351106503424459637559599138026857703823042111545393172942011453751326463600520001967847644052719109193981619229813440529621617478817334176139590116849017111110167522940035540249768122370849468788651144499902891130979592722550733835707229844701129183498083209108054705938347311607279813737965565084768524598773606003220872595893144774542309688505311282984354538307554075373466322865599154210627310271824926630200279181487145309146583358329383342977731326912253869115260047379754811041401835103736393385458696189012205326339848588545471370350627678117569472549691093272585517824828255566862566871785980846856457737309693056949518687410886266245384402768378987199909909884944225039192768980570509125086621690404257906963056408718839687173652655419359161050680955574326746215637972616945338510483541263420558677946849348030618619198947150737439225479088828460649364386956847273888718498874650123518302525970441720643203184469106781075642969774420855749272515258730215175358321279344860011021695279239005326284431434927862555255607844954733594335952379686827385018798436033943089276765440601891726043062765605990290744094410416968999690260428638539328530112009024799377575250820137204122663882389444078312442493995585714532033595100661208492907983275755948168002313484870814257272789232993605067252439479367331819745570007612858084716358163725985470279564166438494628341874471965208160682017376259270289234368307018140148683541264519904411808686196667070239923813458802572000835761165553662984188380402973109836446413869387930580150667370748086360282656566460473055001075550089477417362276954542471059580602069043251765061259048866071970658051570025449631714147514717760866741658541542128057338758464225465871180039541793108148864007516881567912719820726390759698736280836012371339035309220150651981025777496688524520850444724939151688123119020566133876217117932977327649203159286192472694950462226885734490280064732563131644823310670455122947268982220489404093455874726367042405163649256501945542326190571223558987826059182101382310104287784653787487850339336301789565492287576928145715005584721495183444643251675378128606419533095803618570543803093923686167795147977202484016814683400635973525251983828262393252617507197073507518700863922439312312436145264170766988176273851549904734606400189255215757542355208105812982635954462371619709142742738924663413475843431551680735114133069370182748861668201028201736313048597015594480328838288551813868833581864989783382538698949421295640928074912861151857342702605305962688346020216223019546249034505433843758456761086381394586044384971385702308293743492768323125733983837898663824318869384476320810106341570672248014893795869048987875402658188944756844720460483386286573732427892811928071335253293987392580249189082132861080713646243146997649190266280134174071777096179051617061600993647380525844256700314238612453920251501090219571870051001864109720821083748576643790497687014776600961471146398432589868732934634214953319522956640213459387500958416331172513409839159451459511980090701166527290045820695005114324726409119980000026946242245901333370050656055487403850898680328296924882098279859564201171072635161845277460564743831380584358144227559081959077214226711430495550068901760294360191384271693128529373433237633004820773046579784197630572823182923536785794806440437928219496205007389659259620026524331580352501421741467300900201961567008197546588256058342989398426637637665503387269790876939228405278850865178065049398639036819111105853228952449992309807050956350104057905890841941699426328009052266663815390892691055840754874581075299164182055579390937339976369608092619070099524715366253503296839759445948991276534810012132482842849285998126169161399858417547254604762180773112087832293406785899817845774032735003975225816531300250286232261222087557635556259245494011887220081783544097127883085982475808884592049856338306764063148795875040235579561373178100989820762283258396060019959869090180283440216330932819964326689190161044989241160630952510028757119344123073449598367592026943068311316827696702435841597966649571057067211406046536988382758036137594335260940700528311710426121023248024531396503486176775134162073911353746983932808493926975006737827136146738512383005852053907643431706599542411096797664661693296704197948634390954345530722966024240330364411994379469922133856262614596378883384199659594956437926256628045897502413057213602635144444890007455213591919953517832022292631966321473674292989937265470605511640282378023540042078778922253290321206781078572665575811419978282352699400105835168054338836076480995981018002645194378729684364973623181718692943699616538310821431625358654984361712039307919765066466202896499907479681290385977926633314196298908050131856934969170076513632657964806610015120442097145098271757921338104235090451836800414565043968983233402549954516435613920780134735637970247425825548432596210709834190636197743121130323224634180780389469534530647321942974900264736936596643510433610691397858512642662444010237404180620456160475562920587173010077883969057756575950044922714411663402563709629003020443203889263970309817223973996260295234412807199520860275821901246992637836717424806036556393891970002369171286313995092497582862908714691865770035557538498687964665231968873358805282257538928015319865738459050459690954425281435749295661482237706339683616393687891665119204670305755975278611879276768684106136518099820089743018824239889103482081700491834255735530091909421763807310913832479625549875056794344556330595462725795255873296360107348372575939771184546988862613433431980542377130487236665425217727259972647970008617643904600043888940660595618226856977799814256349988648570960195006777544048630000395742415895737227445737515882896476214011372661147424109555640639391541516854899573339923571358454753976461098920674938203814680368958642942392051872113180533422352622765224251151457999109422314939452300397501427726609279648390568964975305461051654015899644501369089402743008656386177684343717386372467490090105254795254369775946972314555226176850279926262321452886401923909906275109435975532398982801871058538681417760161256444193609257944627125071874133602427798164246446492568633556463887011968063824668782558332392385048450454227976678276090670984868570194834125665137209986856422522068758312522787614125238917291837546064876464208990700693120985205233752827284942499415186278891988939964876292358928683564786934336315838973153089629717017695846487245684374018267495936775352163704173760210811677460047334743707792447507042849470122777925431203121034892420281281186009314121492868730855097575401390406009379692405721329892794039508880996075841970007942373166418429952943769239980636429473702931123166388309989507021519075576195445349232388881128121593817912007067270694818356885873129554829444121238346107664862172014310361534753300943304588176130488917287569524235592311644833200490162169362178284717525214291724554049769194026840487408206364544278718758318860601067134074191634869584481485905612551788884229448460455316399790713919837493109569486084587783709125740631624143683036694240279880513859517347399421636687016633720363429512587991720205101164301943181242819475371776718807536176845439938880726840539520339737790162550523148404580286167846973407124822932406162702769040590097143029213650539196471447383484857327686252275238020238347121062656985596905962889421170427567020092550629576307157118260121185829310012945882384607137283362377449453480446625568330535109436890196865476747398950367258511150400067458448775960538155421777253621333130092711221390373765484500408788973346967792543450052750490114668469625748891434167764694547623913867372643789659588741902620967909682532256801024959793272291058191852674539453063286036711656686536566538660001216648261132387290533131098647608355083433485956998469597298757595569193534659999479843174095320739278243503574839642856474929282747697182561569025162721839175339486443084775136819302760324325284482970880110740941053492640127335894821105452892666644452112327464503639286693916526197628712324439050453144192436017806141057149741332302433258961854790603733618182550385883816756262300599390288372959971196869280272375873990645977040606809460585014666198716771527252744418726417867357047608934645713538219382427522376279727225423061888294592998717918875741588205618388771438219668195820071053779264255628376110033664070317243108407254935393049622368141249160818252308937113838372560927973720733712079044100235627394755953209180008365768499071785344407407244634419877398929277490359021025945600295069085941780854975827887440279515494886470193787736383298025062868163406957103616305496156711663945152802424488565063552913216126879318527397430846794502130559148574910608808126609523314160208560591637428920217128942361630859121326104574902801651970443960039592834143515849197621560372728996782751657667782930937787276129700027054934811213990601779004094921454518061083575057392994636091472010196293672872579880300325078513442148792971339875522445451396475086201298639721761525800699045813275844324895473229946792911169871061865236579178207819293913273746489575873575446625711767439390790822902481766171666296813177406850098768829728595094279623614819596526442862675707562320098064977561280049204048101441501713826130899349523183465143002811059409719564996162748672475270639137071922554388699490496836591740124923865029152549090471772859151172613341490085312229845291002753139297818977078961665397224484628898232711292021422480467887087093942347030050638590921661051787432050000799430653769604849203438597706910506036941235922223133788996843563622503244940470454353553743340815324250599614329816737922907311368148879314591645864911557271795974736841622560636808848904846599037957028542044211578491156832914719897925949444563554891252870014462162699090519156012850917128939925875396552186870419582886687415506346602944975454152895909100363301256768688566248079147770269328524046374516264767203923388495710685238511070638253110316301741746377967687228252901084095226286319064413798961542254025561163432831888423349454572864926703969763488757802560962052385540784351428054961017580262357828038736589842514449663640519862193897329098199259685987647881006519255202929894575357751028163984289559341251198766891703969511733466623153114169077491388351706222372515946121999212918324175731666263243720009677529903706737107940250402297289553580718221981801677409338172951837863394007396602513951673884941724128337599039736979032307682614309682430045411658686670708214983050460034030002818742130015813265642587443336660745938242511527517604411717223012748099294069054910830666281185956544269793721629334029170937618096833242897311247758750346751924970180046159286402341799661844018697742634685419309791717869205783676547115077856772043797802594624823024646445070137632681198042468437246866443253474341417985993975436257467030137358080454229526222346795164366405944460037741143472029536268508053354413590968538905451767028978040540670601489241734361243402895310702351027248532770806928777675399676830055295528936167905605713602314558474185319420647086598110272914637731057715901858301798650832530678985095616687791986368918158324665529814879008913688598620607760077892742493415889434980057516151669409142593304472759013125006346160721045692642183501164453849585303061214635844370890945816043517057207319033666453072178186601031096491913961620521975899161734758304181452924219974348906638119023227234790118963073490705599150996684427531288998451549795611605035188510743084657654580479950930772482085182014961372641453162542883470318126743220618363938684454992352090075561644888168472252072717598380024229208013807306840604310518222033788849200976057004888044074548749920967382761333496161983813200175823865014197292309800981220771416705638502106111693623448052146498616142525380048096414373893907926603847114197022512171607153621047075041409726204455962912390239828277138304932761408531931852570442288000054757135905935623958094281713618476597938612014760266889128490415852234225520588674797821810192901753041386667035331407776005312614694469228821576365265051174995034595747290468530247818642290873454115089304871504953675857624174634680921230432209240359855924080937795696393069617999185342455938133048233500864855659500889428125603547919439917443989152484785011333143722174634855412825021165347012470386208354990519495045763790741651573902102798556971545297602196487583712497327889423044828007504154277088601349240886035356279051052127483852942564051126961957386717995241850430093664924368651077403908658745163362601892591715989339723427430267537535166368675371208241824003767100105657968047729308258981120222499973331220149019312184165451649135557251880084957281072496664519052465997228370408570368107380054112755551411577927104356816987428971441651097097826291579638738630655071912948433307422287323746914559569977830180952564225100770154342734314574545500162951087730550930127932117507032619060400240669525012920531689127927976552393115957535231752848570615102793266504687245324783707385700283969988643029253751707319928390237814185295709963958622323236831873427857323516814685284975732766021524930314109176189890240656591235802462955264010782544920379864516098795555508848930713993331024961335742318692750315862308567723319794430919498373050392845397828155136879846111212434451975935532261812265086234435801546158891898439663005399149685562421864133544174127728766303230519736486056084591564304027260297408417929491235803710354097052114446673895226142480497395446715264471308102676349787195208645406669034135951206192598402486379828752506802248355209523494168953800280815300539268709807136741565355932298223759207541765612994888225541937501838575543198154272285843567608113447225757817435834370598537542084104836258476085240293664347647891789844935493259850382052950013593023929216456348863420741448160393121805814093443955875774057207740991047792604003089772462729216775841743067388070267608338127230487779554040463684382003385153270587008450094720297999549154395300459711544126409312680842774042486616972120026061278381177815140128495972641315082967046291135812557581117788334504155970553072863217902424382848285535489658172096670315649253132873906740578044922689303695086126423688485427132194158584127986899069638162122361903028732121877419602649511874410925887353389560498001830016394423139080294577053015176718654363974375641936191904332562581255834416820295675295044611156679885894142926100919496602091311139925872186150376012442564040620157637398515620841127101056214775202815414016715337191138682501117039816739690729106351672414727357681432381034322282510472324231088429776504398532022732207168230374865543491655789475063190345464104999451550114785591225094873576941671824724632672784884619943120813291786434337866620896038218735138684058441523103169848280334306304120549683645108991875477640227868648092287004305897169550561387112213259047050198785327089818566103172458349363604148122917771462833770722637195904019303914496772518559809083876200724477656718283901448930846230260637734922473637239916300969201162672367062074927201436199131174436738369114498339321627867994704138884609829702878619996524603860680152214938422514972515763218667978895348533767473649608658265801797393281075084083147881167461824396619360701196106870118381359274644567808829239719023094654266117902670041754626026391793874094940052662257428131893235072260908978314623619937391510291814315045715062615340152109850176532006199457572524412865159678668850736885106914137773147299858549739791503705726767129986380245034048095839789612716682354369084405248855872742972997284292908351043003249395152872812949044424732443513773524098107509647123588335090631207032321698727820208409754879729008033060114516182779559069782913329084267388595655046398716106183212162252901285426379328621913951050757576357880726736265505446184609683164940073050091269423923707642185998296354020580925828478360327476365274495497044634763401426272837040693240163556339604992715242890381547272720588753979725369776296645367395124552995843648937438397263050273900447907464621976059536990934134275755174608274906744419073489879655146404504241652318584374153035344772425619982316335175564582676493460805052835310097115989679493521560813673807934015540248868471655536323659388593236458584520916239294901783774730055707605852040679308010962659583549200182750967377919695641555616984633812322053473781692855334869995071777353660621398045470614416533638001119158022862359034263458755192482343213984931157347465041042755777960089930079036239295924932541824885227044553769502043525679539321790724832501499091053247176557143231108637733107630022206014385981160756890323655025263975293094052226612343285487239317283382934651705800365403759527274637720582430168437030490155785333546487147201418718626566206614471785107907792645784478800774194771749149950174250127305692527474276529594221264946163282297259820173783813623054537227087370644491953211741184469161686909946218553873099563307823982358930122505464104604192633040422513789538874389361840946766926691054276877208852579925012110270200792127863803859958494925899792866387284949941605000329254491380146624749498967023151410748314957126740737155232694097586179436311615593233969307983604984397644319962037219451075438273872343261792051291739992586043013607712606469251619495049184446889962255812029303646128539037669808672861871384113446988678776600035975508165792339152866158194220335492336582168809702569165904711932125488689463628556822746238493698049799603304889565198949767087009145604826180318765534921816367793733675408069324476119642298464395932357501045072409935004990064342766471669716247420927896363306187518799012459010694072517030770348340085061688071206431991118037135371995270883995911073125505832981612998449856003245737952339157025639818025414612353904570441268318502887776476627895893304371824876515316153074353334266513307323598514865555546901913199100605844982926397594682304789691778594675469951882514286973834400339255256510346960063381100198707991168332556943620486997704498243424978880914030695200803577796026511860662494269384679351586944499414997098337628537501719116348006738623646822413988092978324866123135347858127705311036159857888394979128869410638064661649099025314220269288876670241447951909815918185221505845929860776686369439905523949661083883355649090276497481854919196537010692480396116869122588965303438401016068284236242809487197554626881406342357362615704505891572076436020211409344692274616943767450702328083618465318077932620174106608386740005930709022354985503937150146262281329010377971076056128599368075712083893433671796679402569724988410105887257312598555204622099960188695430825484653184262058554168863391838137760342715000715009273922784851982370956230908385470961495771892890167087411683338390198034763470977458326948291329863213324765937493691710919129258874402662855411153477796377131112124626055867313708422891146866117761935520142478206148104056504152825119618023036328911306185550131626556747096654402184731809389380544302032461327361475756722723936784080877474871822611019460430914225805959858013342295182093787519672463414216348668262580810529546212370638676502625930342821662318528813934237293083723783766663525013600267083009312081906184996989892004832804245659836218425247950661356845547156928727434264436377112726255980408325711576928146547756677399408307121391344234784376644960685175346578339663769697577369344470804682655444114926408530455645865300494041679706861989198800068540456646408761323903729285210612563981072331417035752446887249588225847483472320793432474048928546514594811860057083647706150798398276558416273184314750165216339029660453175435704060888002960591606605100595017281457471116224844727250156910039608172967117647688862137095873900798067034306513780883200368098571827938017401250046805718191885706917024731977909679855123415442814137859364284199912160934750938992473753842476124180020032985361619758608624462813724559743670714288426049494739005227004974646357085063449650070718529144485704093045930754213987708626411797422422219251515684830795706630393880664422502330490949566028197351767619196527503026401289566658370012058201876694328547031972067101627920140312199643104961089912642115208963440631409679436906749030994197918734093308305399778248303114544068077190156569030539982214968372135121258629033819176269967601459106628783786805509651628163713037610502282385186241068826690291082794332743953364679605343598318647219933367478845091738929553044290904895978131740826197208443937419361829559759386985875854929984842319777134580712407927916565122998844590163119536614336693272966892601266588422669180438063522966086836717579490402414671987473757033120565574994882816788867275608047117168503191191431568359364207020296625197186162146391506578407094015862152063433766202748178802914907660812023201699414323627571984678932541413105549874416810219157813875589621373573892633310007554414620732837725981276159435208715878382686612818011892697659763416900365214001255278193399897801914297979157617744562987900781476554126788388202852130363093359093154142250526543056128401950414826711324219965614991196958012275976668972872875508518301492041583827955485726822826465517991109616671747303572904706178617705500905242996682159044286346572948185268353700469980938806359615468143179988262714529281509069151217905002680007886545347664614702541052452359391539089950219553019889190163691646576216357737811617693247803623135277454913544264632160986233609165396328970824957346115722003730377796234187818847370552421736697752394147215000212592620222153058996577124511506262335756075232759085142212422763050842153872958762909288593604505771372443974277652568881335986272173758183301789192030047588200742723865722933383542213677798700723942555850718187213830624184444809955774467891214474229893894127677653648842110525982964274247695708362600530153326611813604957361374188807544613910476892821579684926660206876700977326465769274310367491967608278696031850671849401537483948619391160816797237427138456173794618310530503162748705472293923209843801006587816327925913301910320103451237311606833703756240982610338813205984131215674253038976823609865484573315914499528507704704181141781884919936264499821038823104130145475995054751630740125359344466910105949722898851675039634502649869039528925831112992114064456714921287533623179233016113344541546821280455376835093640264041826663540270330994312925475094640035237130688547599611068288885651240076233607202843076693255681655121367478500544962622048470052931729430989658534921301986522342591741847766500492680338149884837235527357439268902602946951492230758689176642965088689882530072594656787075821853711273646440635142687519400346612023799502375965618798671978173227633440132751897161807015474907751002385581370232760060661213589151764431576712894460120987181814905085098771248297466368224852788265105167544517973044709555420557299559384044241773509608021269885091187021467042863078840240109551884459186830958385440021677360755737751320890583061141770903564368407617844299752824166212343709642417060773353493924064900830999001968907428074300526818465937568925005835965191721422630323637394911740464083995682127213989598107979842906305466847440582174196939053831452882840218879419450642005620372928296422580777132771451367151196179899583870454852640911967486970624634896315326075369892345880008356670293578999237035605768243423871310496568613364883301587819231936806369679373037397815443153950399407573247185686038678061400472218175310923409511301261604753204164889486030685416973466060486595505714229907779867594340526943071300217900970392663297215338707852141226095623123880956091635757563871282303975908815983932396866470738542481319787213742642203067626882505774136683066183640296633814325425842310462122831591139690317624567636387353071634219664901866136140377450254699370384002826408990575196933206534168674451801946200543086168699587811369452868498252055300519432752946285221938405337947269059011824360557317316611684624937814840767958481450358071878420159949792105069596934433096452328612653065013964609057816647975653732318368378762325312534697944530086750454184366106702143986863923483766232419344721370641466385931508327760363401082046484493612933975110940434295561942679791197536774660444791689605846534913492646372331115124641538987449993340087573425118295455572249342657843893767129363502599150656260322360298111913140543303697731209431804984270693712354828292524637596037290527743616175778252950854259744504755555196661437087974696476993627991925253867023309251903714346391575880378175666917851580796314936093715395626058427171556910529843491464160676911082380732125470604159133513674590234587619468951364146254218210853633836049140257588756765187723352397092154992490010484949357854617548914458454218442555980863313423169347229710104110115164308151088422212705746245561265953109569417888974469320406375023170339700228147327886349374262626747578579353487803145102202915367347544739236396827515954187860609250161827809359073487545303103229549168837206762586747603121526548739314903373573839046133774127486199040874736538061398546174557914655804289228793190102515774520390704829735175436205702124398954271348866419985278746785761751097765258120561055635927806342871252237138587249293106388359866528982409147599991862162548469791609002583845343124933243359148161745897669176150437278809632739370256342599386202280890068581964231914020515896453223124010758558093675511337644289362442532485190635239349390917702341491352167948673926687040091319853783275670434997272727849190809976654968241606432970070848959687791339487040261119950625170450201439466470724706227293036536665810440699794310668993434654980355116711240373749743672037288258526122863098544413255180425241518310065471855515459187242021497089892380446494914194945921813274177980386990856079807835210360844072164450200216548803570680393864293534317039914003588188840149878277184099792042530167434193190686514688443668498856598037065688283893935204696404602381148320445337084987716083771021913147287885966050399099969886994322244022913754786541310846777466470885159789150827102139937595689445271783994603555775353155325353651223418167506655237183977191332196077740772879113960210086347674916621261085280304238059207983499003955131320293182724390795411569894332777342870557247451035620410198804170410549711147158179011839389352215207319799743095244622442083217649246908662164871276753666345027619478968238132070630726719365485125027858792341959031445316945854958353211839141103326273517505009839613880455284102435098895025529249895040395535156453716601297969858318429044002161389173245199315595645579137844427121379767284684216929363575203198061543296974871726557256776762696350321204501613402873739216665639741727955328365283734268856569293623160403912278289031617144409504242512750361090132169079391338386042914825014850873196905400952511742478342135987737572859435788859185415631235441386124261539358682776269133939895757964776421601579003955637536985495995786492854607807830818084514753109539882532577139404482055507783351297809503278337496689373839714904278937539609065483433935321221765393989768086315652707603378057367413028458628163265940755505973148309442514088371735553760842942096257943271660019858672701829532209035696343137958115200093454065590547199413772555345193772365260055600684261597828064861617462908354302133279588492984895289558071432884996442695101692979654717372041881115728181105950750306228087500021139921569685363909169180734391804318124845855705185967613124495075165344836052340708297762862535019070788062154668792947048860699039257118557365953897132511742463978531057061023580251998113882214661865773345908031580847313000052461948296628068384393375750427785893315355591953344171766789872253085858730049709049655959657403186393908148834427669603456701734423454847949643944209332037351030188969865443321323531558957877792913851143254138334725264031122496572861874449194990727029363256531549218317684022544256078942554956491821892844332655756808315900797993178388031581813942251822440758013780018924014624878818329168732114140913579099047374651141912812673137561549894698642392333586036978333308861076161540058022096397066986493440879109617584537885658917502445224613028385537727568348683287841124842992148645656780890507724441405976900372223184440815693179218920418270338536171707698217517399217443379615442338821775765018404383819369967606196400324064836767005934480109493126049946158338032090187009598555050091508909756183212026572652215821070667063509175292065065648328198725225483621973435614054083195378378253683156408099127433963484501103541068848757180417148692057467601341260045253529496910249958362867944657417576776999798699625359820556120236272804981941695971232971185082554810255672179956122363686944606749954448420524877917873971182936101111246682160612080891014841223978658198701369946255130616217836578326236099769877816579885938567171364387182275220652215770540624874722838863357233934391426293104937719989572941165980999237028355515352614627871823337053732618320435964336039067554604273638397411614455191756689140432033953474793182258568522962628558952419388078111298911344953641444202545461782184092590408437878507417283630912349624734518883984538260056918264857141224801555722708033018006874547401475131435376137864763431698532498040527838055165162731007615920131933849167404266101276833146126812599321415265844017979887079303788653494734465247653488435902026782783406965462255222792820090525627754520199065499911228333298120480438146530225226077906241720660921101594321634500722325662887067264725358280557485270165255516347688101310935575418407364785557413690043183474637131123131288051299433337941529662976749573642145455542838115248873725599465707461821256805803320603667479710060321041314589916563615555342801308605645333525474382961392469821003966100084861647565095112747529477915387850620580333566571408012657048354347468166707356255646877742538091812004323314022988094285542653119667811273436925520916805302977206000966500299688911963925527192189284685646996582566505628999916084839906943179203741640005724110521729808355486930033753943017170344425996373056405400722061979070360311359243492526919346105585045637100320716939774290640572329748332920635949126531206238747593765594422723216027046029392318106752140369674661112918831272969786038358802862475556737700352297066363842305787547803573407231577454528549689481828592895037901022678765654949723446685841727962955742176616544822844222718646829747209563820440404952735079316640301047382668678220506150248261923734550714171008840992894771463906779956830378540503274843335759517487645247872361471387942817160486040883972358797729775813434827537348169161638719245698007943042950059857381081657926377186466360654445283350016571401518965640309974211859911286140536192296421361263709851646170244110829300689974836685367682333941847510745441247519969600815222056618731773624411023981281203395849313463149176831127166729104126640299800459207921540523891714741794375917638426943212621288469529902017306093492586596708626711348333475828204646605708302283068447873402813154964964034260114913909479859648682333273204644783705493346038186308736283985591601732020629266272920516617742039417824798196459690643754162839649954594026305491343239750266845013577502503194284553629407169356377628581327202105372370585058194435501244127765623740236348691913475410011076617400678600557193605977239655365948225073592648337619785686236289448382437807717251059847577495281285575432386567648972998529711306100947409790841739459272092913108868380943567715496596503722635689896805086957075669978882697918501252075140044965175669455314335038622372893324212556828140054440461341597863659328235616140852827688858936753205174566186229004867227036295033679187300535520512866905497631606084477508480331420581754107907024315543466949829013335410637942626689025539271185025621819620040303296574301681599941631823478501027411550581107258115186265065895651187751250481732363176533242055473496558208043409107303671023737134226097348371364708166869510002307480820738094591878787531051362180036536076459323611203092181903544780058139351923436088190304521562422265382192428175084144737078115564496494251235947981643472784524165549090171753038862655998276641736078960353572177831220913472490899244437154672063110232072396776070947382833336030649456388704543620896063674006533920945391985200412690259055239045450619157377523159812211461143107106574663247853685668101383854064624317892183109210560778924989737143738476772573482682168084936272332843131467534061619760379059117846814428523546572210408142640376903281619199330244889030206110754257310709357287998312878623691161157694694866049903224645361807303765425609947582351542566104563977302568644621092154567676680760895337303517709034707777072424279797552108117261595396635427415907681487992929739588837657553864225885265528970096481798842430757176284231765271691827762218205692577294130743680037042436174194686869796737562965744495831868292505165486192007054849460869200448141559303779650479493226524597603094816360744331987357423230153614971242555040966412538714695779791220817806819456743342574102694097926637363347966891503111637548050201677996637039447550575852834937260080266794346591386406101606279645544874684464303013740912004441624895683427531802005458724420647617192257335429941445341402940299844905459785746315498818011429934436831706832923547226478477064446068538368374937239567062682573001064728417324860424558527208713754162181329548753182601737186022077154315786612973344083255351844646820887850861926045324611680886331640958744433259992543465284916925090258527008002525796134090750933190115957478180378370729916454444083161497070407120613645040956705271564391801499535065270324981296675849284447983388524448413577189844428436774472199298429479506294693699986780573374844004798488717635715789608607731341465898955740993701474250261554348513931357895817956022120999827118452283702148964848578615452309450745560062477077470270749356387117972478977729869848084527199277550872184630689679070819421781738268381000741966613561803459786109801705826861805278578043467038577439112726207792440560996952015148166813796207537798655633683323130066539148285713011129637071194074306011703113925403030125300477495196486974123394429744055923951472956256644139932910237649317869365076435917827085767845964031930020912719015138743756188456371103378659954885634578733982974861368008738612321802547592078257482179790747502380522475540231890338389753588701306044301109593948154772862612974701851126128820064364221912075752762741094546129456438615521313698154299634783039948086556951901436236016633542108403871233881020690261656617528955130868635909089229811956036222025496665510006524883102553454733738103981372191758852489409236792113685900853108641192773571286572704183143143422221560183390015623048051301220586250915476706198163810419134477690400052374784698171886859631735811261467241815991608541814936980954507266985908558846335254568911105209139673801011257039575775586772459504985816910823064954054193165432751218626423191712539059677182485567805796679527983489831354977469807506218689408707671937308116078862247755775486027948411654620830479614959529284463914114373227106622576626183132790433155130639692226516222918191428639115101145666086445310792396573004355257714118254264575889026753984292916043671623554324036046507468695527817700414149215362146300580198388282616073053531179683412198255051974643281993105980160443727078909959525373122816927495272865764714913006311134557669187899348132470154376445515533274199393607346500524008235887070653758432276902081118028716135729328498916680023441414174830664578869897314704760363526948710342349599241951661557114320436587119484885553408865715569757863250218816623891386771105597246452463477099616102590789038443564175649879860833107502718147194432125553587060777232161150497104871422640295704426129083724641159212895585280181810496970458820914389852574175821438634305022134730694437405116906530342908232576352049140986146436357920159728484075702231280635149124326596657543545673462134241181578380805260105748399554860235877596787340302555443908280394808199827148558754907786990016864312433769672763446017927513691207093224209559715708462754057598934436273760458480370609324014686408848580427346096710264335700810755588742559301766972045479705206882761253471407372011110944079638273173192542517298346576011150804939841086223714808953602780212211756784026476063526605088335442388519097222957028387489897863007720237428029284873980056607424759799335816179626387449715139423876715889334661317011751862966680436609149484050275748297924102508173945068724128896073933243123125036320321350606750047387945244557978839839170997705189613990592511154249339202436239931594576055444936995076619680406435267997407139527346230964516019070298792240332601078808561129916879546773642076363686726560953170839773145119106601235405956957432572496769966505527037611344297261490889144504974992314494048511903042810014129283255698026308397623135676888934471295782054685626885716428730275148528516266119946065639459521130201091745674539082463112245729567352298874818223004116701634828106829644189181470193106263030407205853078384011256199057071657736152961499374709072047287009932636474598245397364667115030872571298707666929366560624308670933478570844811949827864827647823059718148254278855042638602039602918846798230068380674691447574327946303146571385020205657971832693704676674226075814887666683438943666990568293232656976734147356223886571481943754400898984542718484487127956656963825451872977298240294160518631512783154147094330504271144853881643151065465575280914621626327826183268284183242055931358827122933350466632177822443062851147906559361594444789699597178211600410393677339767193031383659086513098298599507191281428855885597632716147700816908867482705046983818012788516830601140221098183560036126115902367611767359668614538068444555427572082734889705394031896259844667494479681085482913117631861651429281280244127599673571973186208180868843046704231039247692696847067794434683394928982341143855842630961879609721669792918173305328756816239306713773005025015529340758791862586153383768262925029783346166110900930821486417031192139708931911269680384896734996370306445648520826484761980316553316826770466871118024170871486593285714853276164676556404187996360318444741344894523244084291819515512644091135351003118046785050773435935059222096620610053801430612577035466381553459547371726396030820762612594773204756740673524431102271610416237746884832288671250081475915209700089006947262313750292142804670394706202384904798390021939795787797113924933360142589016990597678514971758372443725652230829944916623386150663136071816722955834130099724048054987580432735869147202870486124606378618254856301156910156933820650207848910458518430238251166871988325549777011474453090612759911671046513880937434455076918344615373578350739873457872978115602411929310333883279658202865425661211377259114982957981836234677393221586000825938353255896234410431184499884190087021943811153643588944129124514930129215099737264374395002332304782311143047166803554893027849515212500154717399943120039772093272107401119822363782487466762374715614863633134928848428491099750359600792796199018106150874170367878045039673603920078664989512968677303922282820016265023055987570529980908429278451586500759512265010570904409295742993810224212508304114438496850367750367220706746124871533841068269006574140385880371485885155141637175224869550394403947071775515946617419908524073167450652290005580089851625993287930535643431029597736886996220221643276601253549471257340973370980933581413039925116657239054158037522041467588277976807883337592689390567799736574007947140930920911777065761694713849691060580816836177428401252552042922588127138709502824494872311254973198804112320344180484021129098590615653675007087051483173385724391591180018570211128777229141808517046855796091686662897558234304784890455987738570071347708738681682806912097987300620767065157686265467934848825654193231351101558319963324515837479452136890489553202703015324908958543594526090554810772064981909223106476575809445876338526399116522106152988360579932509548634923194506147724338455117898511623192063034487686262201964149137677346247829014773565889657430894450139571856315251330416115015320909065463118534870364591453052348732757357893252068081909160063283865587358116210382752319677019142403904004461897650782843672666235449647218071252406607700516863765956870886699139455417704341303744362426439114183046621605760800592624835095241581969540796246245834000575767373219219874876950416812840122058321120731162340025430325541982575464746603999322093700117688594498515112031842716187080305165600809077032683785783282927483916340575678275861632842575235852532423618176817617831199098362629963745284950118196813381337684630982543969668175265780339193102178180629693148901777784729565354976873305807956054885602572128413805844881151248916681498868507344443745674865675252287595634614078559990133968613215673416363472559125680151245160176771442025764923343500409097342157998587925075842931734823333485552530781816346893607634311593863313867798783607925626768439762865749361896531899901885084416040439953870060542346444700270558951949152849764456203200518431514179023487740345272383690590470296571295305499851550955964300481139255374439556016725680524127578101001766416291158262369855218889167133083711530059853412084675782252243484388016316067483406736088005234497433587840169024225241765475689028580845965799788306548856440051842494961898954944077393997086600100547441212220059734742522179781098910168146828940972367077247260243878618455147881332385886831297761274197911177219141240383519608189107871896013822430174082432647799147060304260240394400911752813952450770008094920227536340628250281423974662033608562798259049466695844178180808748829680214315670751279043481669423022202820048066590534246059562793480341147213382140665325120716321358844125046373419900796976360414614166149258387838428833149679627553847473632347041689387633314948391591269409234944853395864727061955604053345480532807734112940772203631445134027096191983196718561368841414554206807524932641890512923839472975863073621890648843370436117265276913612511686101985791455968748742297312373513303210753310580880826531981748110968266691911117652705331077372492660165125864576926942103433667907117888664567484941030634561570721786109591740383009418532184387874213618648675447650709338977344363435915359216867637481995477584536378206736840234858165355618487460197481742893036222772818417145392398095241162179037965422414918887073377380617767128980744472592670862607554867315477547850732496917872794706199567503117122538785403722980049310045157699472278217112105494597909123615295697767787753023396716634344374627772162345319829248218715678762426169075056494172849856068065985329380157875901494468650925196761205229972615192979445831342759449464671862336090181055205547830116316109416988162842818287762282218228550486728008537723361166546689096229771487942661972306406977184766656454716095744202358179103808937577177793195576262459165552226699560823985319589170510712241416366864951119032782055770132911003921955870532562031684091109204230032916251226768996006608817990622480421682616328250239102528696732698864344713130378242419469236775569077292238072427359898899167080099871556594903212542423695144257728595672301517353366663547307703986050821914800798358027147820648418066850660665969498935209378782311851523585059049616299097786276896670423393855260082761470851188499369774584573688722223530836934141881802260693540209338410246263460518762361284806941126357594719267323228838433980596918812115470241688043068181903193282103421703328204476501619052251215683120061242174227240541681643881944955346814310960644850148513670695899489483114653311819691105567721661600510649424010209983445052801332264107207167996428155700265775078314322125836584648671870455845298498376807649574569351407165766924459094102244111488814961613126085171601550920090012004400101651254935906582336688850679530796000294343570371841521426107815881909510933019892172745547393674068909115090659306715589250188844331274736302063947187158523367584732680699082778762687050707483645138828674146583456655771199999291975723554622783031002627602123967234366699434068733361716691563266176967674051070995815902511587203458750059958734396781582893101896101442282062634147583621607373960968689866770579115522163299026462398538539565376758670966905082568504277183447382681007061855429881837224520330445097478002858441511832816192588600546170728361896283173990308691250871176777835868532961180991378999971919143825932843453667210408002173984557911358000007055505239318022751471425846804921865509291430115027647085350731670500131562554944576873283018402306126113041656987951569789881653122625943185879100126333340660366422071223638735040898995094709442085904733041922517448061022163753762239790090712973392242054831379147827343163825249149365967130852947074490672368032723911263309194073347959411865214136645507420611588815274721555442616859029199156413119429753672210181462126096671240653426532137139580535391906548688748250193435022214378007760839816429854576740141350534320614027330736763302211354560836075719366160342474223139235989015494236796955456205900769142767850618142576282057915792247728466658513635270770558233856912707962727644053513018058478083044587550355742655757847658173157455215960477733199906667479617924798200613078387107783977114238754499759931174646582996872157147723178317401235070887116094570053716741953335581075779597354045300373475547097077125980628802922951743852179386138757851929906891546720487477620985884365132460822462328415378297123019306452464748592046479302145671444282130244925949857287789172431987352307148526806101221034160385936988315525089222067736092753950319208843247647672960306195778791662714767368345680629580941540382552487659723040243561548405416286442245778825789791600984161350065353965685710029700682441519333111529555864428878315944880091239847892151415755094653998649727501102010000182406449899121447758687236338305839450291335851377051277252556853572758258312780491535849397730896539672941574007709875122460103958937511619712634091247829367894310017467023157689864850438004573535725295214004514482659766006125879295988610344875595866338262067264563731114086908185203864996189374369924245721071614235335237650492901919791033260833701040553756786230959305276954354919609181247173510582560415960441275156679577675035341264143889057305903785502823853484164530361761931152369277442387412563550843982524174816616541547569182460655234577171202088557743274189302950593431688866257164922232489982390237698736070275897000173974328903404134504779573233860370306664103588371849955296964522356151431829533215697908594235273577056877814908781287340519795375757161436057535908079446566736653087342341013468857457854448585528512480121063474178624163512770011567391171946058747547087625902247640501292825087865961109068550676305887445829823934180552195115453431294402109992811873981044764195681936143660745364936801464953142759652380240980673227231768560241944998020209714150651539337783007192916236686372597944191910875290959531440405124131266351273672997830808662505895218820421759648396411618369437598468764199517197682047815958051992338272172463889493436927618145868618210746573271379825130260409858305352350939786420447416899710504146342369584733318232458625654626162089212644480622967609850726801966630557160261889267504191564382661802194120370771882674713321014237977078778441525975044101663045104169656525086566677243177342885387342560884478991287079463131822029066510391296141445772132075689261483503290090128557005695499337325332463700493391880043104561044751075990606048713299520187315303035313076162191231468517260482702304552934681373179292973024787032123508737493286899545325239802081948691998984886033970209346118462325539609755542135165763564542038253861955354639070558045669734441976885990591551585380825397430598950238270402146601181759661513235786778623290334701828210137741406921371596771306665774428069716068141979642220164450541577977228570733370694344025062630154826418099866625650848839519545340444807432375762826305546080327083619110166873805292050102414011556780085878500317045215640209784561705325479360203598082974799769562143158184349164909641923685067499121107475382998609863618446994245287559124352087230752992132784834441893681693549466297738544321411955439928203615561333454451905164333291200708653001875125176253421859188341886021354243417147129597864736037122733775634910462074265687391689096911402319351292755839848165352872416906926103296266029946842729913814250907663624439340575719909313458392762301749352353336129979556862285980700034624607676031593117815326060344166647601642770941384559166471435018642648823005118106019429815057041454544148631045029776019518512421436953848314918870075984723386537544584154204064916023127492757428669285502741507854102294998051564471775703935810810579416326918914289825700737865640446007880357980880718325986785582844116401813879327142995986460795988880259922555735757305145561224553398099358090198495717021606235447696394625063444365486044149993288542734805241486701066052817317406224979390190576212980968820873022468729868302530781250041509488047562349741528013937703992550803268048608360544049643010412582278238030162978814865809584750575675170084370318554532806656832586395746954675997992041463445358034978628677008830194728648237901397525416967294290591461207918786859437349007374491135573894680832555482285047533640329186079687148440486147755339800241544561970163672015212335237429906972058213806896007908991693448629184723458757764316234425308011789434652426092562957270983406512404003537426019472702510294981344832328554613899044705141600878871851399782038465252245214198765544127245065195264930054801029472842911656976128251892052786895615744335246176937140114828019387724501444807785627640931081871031724973094569456344727668752646420613641572843933418419640822005830312463726540909409951490293455930471957642724368638323396022791368462941873971214424854819794183784510977550209430645154648025510942155784427950038300091127217150325608887536151960219397471531331770455070291495873940353075453612215087136252740545234696663876783157867452645136315672332531077214750930466050930669588825542832501960788460109855682260138163229534491237141892567326435510396582767666121886760808836530371861009371473680495901354095515689720977505044671494851194598158334829392246207417428848080591802759550345308336274731695118656111523072272611461743142893324117731064533148981785155799450450065001296617459063493037604091102129915470779577575135606766400009231010846234503774952232400739004865850823787087585382568838159729420958007264896237838122708230185741793840569934410205132800272022198010423028700892650470516566601622187061318641900053956179332013092439030918022483443171257617884827292090432627174674714809241134385781385993910389344819570593705160200970506061996264902544443838379506596739504356154870189711049314491622479471767314525043978978775746558170449002015909488262509458242448177587379797852485155086973868138025026485132965408038698492352316777398340777656489559543751615839940133397382652859469147785676574188882067184231758382989917958159968110316733295760932545130007782915239019353041632109723135379266867860711929944973528035500800048377588875450546255004217571904669305897927329175500953715818906013490724177853658722506055266231835754847596298029491006245171853075649774354119034176031722262164899043282810442347566788709173136366429033757877747641574716816795889081449570281264319464003701106661714643506569203417081142955747530714342986707087790302928760304238809556018020364655678827294751293450859006612178143280594468777424565660528506051027445772045890466042235346574119610896495330916443646339152925659469341575433380841264771303689356354124940856521688197001378195554622197220078213721840882632620459515757071253553584461491650794003042772323010191715040672338334675078786951284506314686214218609264888778197090822338114060646447204423611137496525971659548203325893325938178194984040823103103618716774414530367472930203778962117107681767278728601436071704026151829435736894569827660131696876603227064831134046736747945321540778267092946706825089954128496834550186180006234158658964072023132067358192080655786402384151082185273429305956351509165748996414239397740116249401064390953063136351812915961055493883254239084405576432900914020015112103592068685922654480124820522141498662676781359529665468328289543858580858083407230884255645016968414621645141488341706842328638869659977922135035701471691470006311791297642239798919128613492988710373610041717385926680882864044985461989604172117270622704098971100258872268011563346565102292143507077213778472224764144755084889082641211435494237272671873131041857573575179237823908968705680021284888892743048685611151747902011614246007256406499102366043087950550493012082657559032089752518100117517285469869008337991449664042122391669192394353132574709079754485292618418793614421393730713835117764331719496007867423189240836985167311084637097259229662949290396391766269372238498479204341109354936797945245937891575541303834924123115931851635911582636703776433724621880032769667459238592040297927898904652186621985811417674048747458726002991902712350497344334101837110592606164021033917667405022006439367647604071492307153788342139066224733672177164967968728461506943174581620455248081987966011178314977951813219735593188057840134351520898956662036924443487400982630952060393372758472436691082182300488918731924677582078210323076621394365536846401646910878760831005385855928764244608714336926218835794826684830707975477693766898787311509510759648138204255817616407013053956062538600795750007334258924938725156310140723249898459476211858950882510465139058239009333117544585258082910063392290018152381041637144788856049952907978179866940690683951139209273580234794617430936679441375247696407117524693836630950997019946439166673855981778920672350393299884300014949188234319960343659182099579508979131779703612246576355218502717527379224185494822733073763653456933826632127302269996283283830932061269458091974873996976048062565604394951202000062910894386867685642050258837438730166057896375972289972954283812255504573657178741475581009895085494177625089152636150706494050240966804962779525095944916870878206839177327429744351439699052503261209463150122100168093435679331466374471806024019573181860683520372067968516339034496869141063475074737949652979484900156882517555403731838335891231585052808736114473471645823766193864378198555509994747708385996726476873565237948370246978773857005145212597635923982157641137434538295325336850854347533768661379062878044570007432670957555417090012740540335402802362306438240399753840856338489373780505755782759678299017048126376509882127052383704818655420717083522445523572102941155234214244892705912119068237441593061418458534928855754291234189028095186747391836294637487676616447009627368230500003961534238503368171103475021618520398593582676580557964882676043709108914207292889833142014563775811332505929403179673298066349755516198625227969425987269107118716427103889547408407692440422635612114627627721709147115794286348847850955206466501222781865195591327719770058457983559160429832234933921113603056263850849933531202158203580730066568644375025791508213252818221868204510942013864784822247309979618541902177616390197279455630272561057691165530438290962246133155191872634632994095703822754658060204842150860855696073827958779874251946582152621172238388747624674851267536651656198298672505438691166934716720062266911350821205992281376378679392184739155337493363237689552329862694506738378286379568477413870102330506721047959916699301269142094036193129216444797181809298794835405727201614439870473670696320412232257079365299854676749647371885590852642926960232191880776839117315473038871041248417174331363066676233649370030653497774649464886815797900268585904369268572060496240063140033165252359670743158266775963252977397275111500357215907354967998658371267388552717821412787029923724101966538499021096283360335933848589129534716070997313778935190527492545120688248357443510919284125195862606196784214686516904698975551567091028362556318220964371846673685897848315243294868363969133328728729226774381779105116184705946641025988032952208472817221470350882975051689054180853310352999995524542625765482948529381205226504727415735063036994595431597189851037876459197159146720670690102444632434591858210136280195572618582906557209410708258094370224684375232917509425212148561979928152308936754037294363007316525416900771077342042031710610752393736377926282896579492212691475574311026813283209348442297222454982867012189816207234434976511837285666224830634016378583735096040473978035747984687254628438735091861007010518343718923479859407376156229541687571617369744940228052102993718378904753304141084297317438033136101088482331941845012323402517581895038843196931312071472873117297837418209836045396311924402417181981780195046998136532524663468465592619993647859031974184745020621806688562685900056551504418185090645824897052658290380183759087512897085379690922717114282407948066443211666004947949970047416872018330897531777334520149793638234658552909475482099649288182224465184801514018870118665961932064713933111097758480852254377024124414037683587216562812991017414904349960319119685224568951988243859975081720922102265080336666425599525097451361883347510449854893036522877881936269544579046856031800677411642568056878983005014949945830793112647179757918116771684683267260615432720508771434480403559093013946814495622944369162055080292322337894944014787891153785920990655328093109388753127525586659190193960343401500881847318653115880151943693408386685440567120206847871999403875832473712352870300726100779784059357986326045636403883324558069984323712235832118613459194538465281339661139344915525645900411255233857120393106647936706464605076170414513915949286557218927895321335755258247371973513683443452901824196645842728249570801607721583052549849000668086635230779833317285883029230865064569858135257999951556534523032875093704312092441941765195584249196468785412976792859159041659286216659299362375366390033348518697059723714247615650671356249940622661272480728108066047173714239315796552640344976175343539169950474321165714237404941895169951385827935578111606125853404957147124373194779747312231828402447039384755295262753347512286561195866058419628151185662805515023360021601004710359679948252665011695277162345108243832872199292425096619782179712751097747476215709034026017935165085644243890960907397684236549909431819521300903847832025228627609426086527300635141737786090682557873769535331187931100615269372943387704623869349711866059625051827835620542417824892057747231215164786651220484130485573741402541541410066978337643497157544901147364012220946626319803819877350980570738537614836015005145562383970421848631205980444586609076269284173092252436582387478762068296621114765304457182415667266176146838169691933723774039395681451865732461047368683753476334407832215256028949119554072003898156815486258846318846062775612373809622700008556087001400635316366918493515226612881310109620766280567138947311257002680788446730214377424639328330846228188534190042057426715741624143480580427709488474486735708296535321212615598933000630099920136479172066066682994003636171544579380295799613124459800206136737031871522138053574219057289076761039510197710034505442813191274316082018567570795049854010510819507943099825878494610065959460928762534777185335208036575237341100398150883222388743198102214056158702374554666904510413488616237552561538162017575837521342262119518420945019137189756075424721746835184851276746937045128104919378789000497905015108033362492075819739196691267444601504870567441639271996343471938909385824187232952417573556440087974483773231691075585421043132913626942820972966640386556792964728106611054871859258648760550653404207058265639521033782518549695171926388495932805172788795889645910515046895120583236367645021002695365904849531373058012467956845691259458381239435805777291466503718179004544151354781528569103879005630709261164456491220794787327541106708392239546149071092755577340390468412075162586407024966981087708038882721281762667078893914730838371417322700361087490001563421905468055717541379471828928641421411957370637318481196147068213681891954771330928073471166476011746677343513474120829180908949566195092428447639964073154691474760797511888609126248268671480180235955901688382727314623431604153860907002072576940756668157808897061546331675842656574660066279769941020540430776819039269558211620813932334172045467971697993324143764528665425538648386611051326794643504689013615873513701842813883888621156921476107845961474196518642859369204230718275280785175294276060711240645610435844297710794492767643588285679331728270933478002887701736505287383708983261015187958035328298247350452708154478819613971822584381650288036028514253476905444873932246860393174286408612929792954322968868684659425817962197161963887587623057228786121287698238705802252993513940890337974719927559118408890179379600066842329219183017581027434027300725250594865494028392851637717205466604345437996670320140472783843175404697247600590797440420742316703274986260759785798429002771152554003206280440970435533256373605801676707723980708050002117993318263681345740290339931956485475488668166347252604040194287054501613944175810977677771676215381239923919939269834054919990150019330337606086473077631497117629895229301115428225104119384104766801204729573889579511412319490479588757464946156728886504444027073754662505971830983736587826319223941324280859485100813621631250312510341020472595278160850968323683582416207019977330594255339492396437097280733312492404617614854634409461823319368505965698502684331870418332199970417198505297631074775343310749971016038770883515387519979652281203454183058065395783482637822022339527924385921108100792839825307533141200059737973290250626677400916174649411797352673577206107843647022925865857572593231611028592653107604248470168773965490305657034712842506189447067663378164597255346751453127738398294985541074691977193734363428453334702932354358835214497656788739646735754066122913178576733375128198260452212583805245018385583353540026522548731329587204864830959488141513529824172639468040943412816330976740448239956333540770673035150175279107888113515597291252726216922712288448746487274706370433435494903917614438547546609692191715178035898599516359847698079057304868433044970469585566620082594541697191666429096530019360150652691222502566555661681624929185132331759954614069521695174743031546630278537973757769123716893343713142903592462530155982543228568004438482015676217520291805425969557586417664450818331993598671088042260678805174866829399615928010294364426540241829737511238608244496920784713647296686374107912059345987373830985780311979600936947650864355398699203021639470209089989711508343298225871255688826926551456801939764236233644915695468137509142194933985918311831573021494782014905754269521146023537637652762037992893717894738522694515754537221506567933551367930490065967487936283896286464567074773480466548628130986304681454337035883075768863813689124777144969133763214859647086100838610679429148028503953488474604777689047526307771850918436930745040831998532908630084798972640963762705808901553938954048597266844177634260464307416924376970457369471469398410198816766636468468315371334833677791818977790487537901729862833952885835284263687785094334343167153297675575909344774362066181295167902271185044440946437789404407341610180271859613999696888040266779490354972506459165930790366700163472668885633511128945369035394125807022215472949879850947386915228526497091459269918103423208116073723042164920560225005901497016632117413984427347417253084134812118601125323660535925316536508431588278593353736925060386412129656157601221665981796095361826579602240626096097749601637741322687686109315105818908048996807621631057503527892966951746388688090100800804722406320454148496259939089378335195760338560167885295265568840097131764115210340595167369237458351239841164365211768213266125976412197127161803610344354070252766911729156849705234661737283207049520422809301630139947455230040823489500802332901886702205860283909635138238748430083617581421970407730680629738818089735702194056647865780747825725979759651317169021911626847134943845491943112277058752083833412492778118365182421101747300659015656994471589884054226090011892978717914688070415154877481768578360525277920165987245339031010733962913994232166271954934886252028439259216087839328236756124396782771820999918062213580430165693859375644764107405428922801677430844277090129391843706665378484098927096897007601080590795601455047376806765234879058895376700724049167851307470776082304573877417850358129821617450376068336519310352919812284540459573725458213298634453849704345398900994417917165042736039680157666085074930986032596563902344366558317558893664232733138688557605869742974882921420595555683523201330882784238054545872196698119234051228179712667433488184166493365975619867566179060104492634197128296677916040675268958825473445015499105932310890641005304006498738679073528016756114956477792568936164285632970440677088704806667771146647595827458782672228294178102107684293292180645356787792152787736129990045687422278382099403848073672934740898954493094926049763010322075110085123871356458857751482097727521147930659719779131843021494816288125653058752866961658004298785117914051919596333842253386232270696445446343959658528469304159441269953779097662990135913392954823583548742605498297538066986002477739402426072945756973108841042716808674917488578857313896669552005684594029958407330091266085777986029178251263402754657871665700564744792072000322485539081204422823762069745774527022042221700926615317830929330315533470681267086568752194137166756404604805370637209155558688754005994686789858515451125600526870665644808786656379393904845384406453515180280519012016503068757409204737437541592770840831881122521616763256687362085488009790585017477235052971163975156372371961846119323307947915844691439505949117701536718827375166061129832802811909018593551736341067299693645681064690703085879499711483572972927343958143839793258799154403232647297682309754439966631373431057038150230118580310201337812292484083137057101116342954296968849272873556583882637299203531015730489050261094852448502466570229972464409529618374971121383235687908255743377808335360243513149219434791677049556962219488912000926150149005803331815600778727374706004869889144145049938474505792998196072446516475944748366098449152578036622287202479850904462964523076011413213774805818697417719257943172453419263471093188737586301846961631314728207118076052304036011312048821165487386976330479832576835950568759334443010238213924416389221931387595280188008201330885200226640671803237385719473695319902989207233492149500405218218587260011174712447410948599210790856477838087431078706707891868784109454788028440846700893629465873735600747221377040073334806725676738367927656487874522616338752895223641621244850875359610969812268474641170289407686078464277543795162381573095944059643364667021925954571369283620897156737401548869417933503320158632597285578442725774177688783416481923638042797727009789523732244917770596336761684088124463307252603773823316108839272621013827576841934879460112293618085248270072657348962477596756662733213935313529266391244807755671808374230485542925188764170102574437629449734915712357652652096149897550815994243354276054302507457643907371366696786648881658749978689046067379021992746226367994250603485454330725906575758431139491460948223190236392732397551849135046608648043706462537410481208802447134986144283288734214215850274494786268117799896644139039132835430642136326767870946028994609438410713385353157420823024558158242987079668534407638380373736864652250834854369169277940882185103364460008905785397416875132130751548748893159618262336641494065960556743876020737252113104003393579210529210370148396997484537421017796933406457047671229446368222409896218755697324557759795110977702528642060613040349816312478839869503808673373699542537803185904219883802723495289670179739400000157445973300947906233033507715314007116018282865947737139505543266048391002608240848211461282617090838319779860644566154172071072130048400483797876090249376534364856358209433601789656924944953936568523076522611977945379675220458786382469213360996793298534667091996366587007479890262232226214704499373606569848611225911705126346343194537834198779514888326713088312139363555772709915746820974492611332121747742085808028205975877420882373887814068323226622293733313629027988627999557579981285026446384978771261592128259951889076413464856177470806660659850976633754956595252663218287696375836037989220591263498739937095953392357333606489212015228556773351066992797664957680634057678972440908781637123662110735522954852286693226228947323300256985013526074373084402626233883960624869642123142388710951424635086089701545886807575124144199807073223510290152910761991590964424654496174071976538712717810682546241710219975497733072495926698149042815460663153737030290861354482646407262633699037303027497670500318327590142239519005343762565179970099334652003801690461031045861243116965123873344721476725359321005824391317524323460325107088546492579862867507682116385816373785434192205568550451854830682888177856368211865806804670168892090514500247746625339173860037736895534470763430040518749384787779635610101038285375453578633929208207183622080253338408064488753096339199770692334499186627626141487577867892019179639104177662830807262306494505684338295425263036670601917694514199606581518504808991561459454656169037249983079024796225736385787064466703506144710764001716942464046303715561098045535907466011332214407547846610125093368018480696643663521019721398527115093803522965377746667506044457949724558570218097170580668874555484498875597278118421886406879750184097668321784873084444495536575028467296809244553486797259437519926612422299729507018261701130109643877704338414671154442014021322084417295520333095952113149096767388855150515977120940742770979212347792349110183053692411236792492425428951707143495619834417047468665683818296419656721081460986960130564511738092191210700493534219711130050911575395224818661956842476156616932875008610959873621524953371469202790168399008404972085774625763986333493422360009120033845660788370620825065213870591191491777959388954487401713581673157304458957354750418663141512689019922339514142173494859298532427587268954173821195571580647126480040271701022107354111745379104155926941607694712048722189090927855672492200596703983934189997402732048667505483933376370871029822851456178010478300733750207273091806260229816141021002793175441826211361643364675161368545319838569408681741376125597458665415652033616801526071648806307393261358766351652474462343239851361147567737559565163248257821539079138659945892276037174488905765959434577316312924738459695185625199328887147286833006901275988845647390281584160024288307207721906629964523218427166242192369445958524845305109894647664307108912127638896603426769212943242660554712864370258309638130116140552602487675668102714373189629662137397058266020889762704502947132191285805989522995079338834178999262377949189731517697054746018543837883745583872888077374356531289153729707327499728715863350176105862700257991917302062317316630114525419127677341709129557404657952815024342830494473699123705667034680447024652497418685964064769210170768900940485954942097635201978494204596770122470997009813789798383258373986120859287276026908210677511209489085810099744903238889198712816225768562311212610967499045120663331702933850324963250507317402026091631691241636806310864693205644302610152569745151209347400137002624574825045436018467340445864791269814186860104279396809296055940098076020817343998090892618883866652217910488769002451602657196793502004410094057091659851980468497959418173499305157317066512174801332357641929599028836800600734961885644666539223833853724830744205488425901970705768801325309053411609996800336802898129386485105815116141534316657140709211504709896178278544067650016202738712118531215887874814612439829578465848069075181665992658391238406836012818961425368973685778190412480003433160233953007770940133498161109776843580432959138717538127928983539686824573918536556617301213232273545370037699496054693799755365294813982665711416210631611794760947500288033809303693715904935120942790176976717935977394959318362831944211168953767194483664607573318948597731057925698562185329360899372873025175435633884400276740234993904095317936521682800277529346533013220573482533662801716256027328372503250397042208896892129863331417163729741737182120096561252312855435289853906905776280954375572115797010044555517611141881781624176433116069006338849101360106919456923776024283263901609306145640814450980163199319298892257849376590212678012683425748880805092291381421267810917089983851282798542820821858013848077301950271202853091732228965553855771868997249663681970183741482193055125394231354622284434433536697767184841946967453624557509444422489726651809695676122832590995339988193421013193712909742304794560591113760653742903135327940187965189258776472649588678346271516044964570964111370569848620941221235919700706944335209028995578253780268713743398843365844509338131445907502810673711248769527340557632846000376665920840795095162501229553725102593506562553169866572397064493149304000560413586087773903083021051099071296699240748515455717021896417448682591377339237892768108091416488370351802073293804487899546947273675340727534899130719826760102358374891943749066403060387112432650717559382832014837369027083868977083423231670440429519635530959995236066081432421063334867796532251525565341519780720876003465481953391107768252425285484017080720659404210994646429655542447395890558778675315508406475193286455976815440090740894591580727330918092385409509741124876023623025400432502234437315742355143778956237260485213703412919073072419105661796403789325078513758338400392005727380489505666477271705536948427593325770230784367243328007214002175406074874980873760889601320472798206042469889308676435802183730447898049440776147584651489331982833727499172428723803502454249527788389987590836866409339495294084874858231022205020934655413710731077349603784440454439959118282948040413069335587690919311539271774336004970036752233488920254628110482996519304604753235322891819381592498887918335413948729120608201993834415304834420750660683148641255474184594909008290575211371691842808289547606901689283845231031861995011577948459401952848381347933855111354645079176160593525718683597259723011166262921637675674311678832014453904381781380389495160563669759391290576502753487710939112084367149985400451195567060796637718398496303572141338921834698761888447227947350866521379892479017596948151815277558281612119776201372045748892412028272082629452306486918888512956265552684389984225408016834990086675747341728648252839267843962645319691666216283205643392155487367532857738434868572936372353259160222488672872413829616597794044806082758312929351167954266004076939427846272689404942593012375396115544830326009080095044076917958497080306916080751198373229175178056441361320275694698065266706113517836288231201981277746131195989205570895391723267549540495015697812738632934297374954352774408320744225326982377876443312270559248632671901308641400617081234301530441387742561165038608147318789167658374662693630641433391377110492549502344126920211000655631204229554826056321536528400533615034196149502851011196948306596236191776019487299241802089084459165978979801110164711707797284153321377341287612249790376935820065951794330687701417363675718209544021479286161797520162868823920768535884071490979264700682056897217415810597654741189295161201726198970456599348474425857472400705899652819215486898852589172224264795787363479983362157977120062018705171445178587162130236979216961594961095290032046283954422824368942989579577020766924313775946335107461161953872345414033488713345346503039152817290508202612985680389141427225731073767690490315430090529247712498422639341827866477392331494961086147688767488974437077456778095715514663607930508706531057309584354774558791961470477495962696485479823442202799578042414394945197853528170058542021082348593986034852841958334068398516104842370854124326873565384712696556185003019110447791609627282255184540840928825145543111562974475299408590092668755194079639944396348539058661588315525016137786460400433086745331850583282388960098656611507048722750592789134424418015752977625546212731693980132636048337819065144321305425009288918732405149602577215915717070452335034509675172401625252077137027188177792249327916334331851138648963711615241932852904154510977356062248240356296118829106169011786295308164048223013905318066214657327819384579292266380304080082348667659903179952557571391911646427099391057053105985884500482426440833955789633523400190125472273827509848297928597714775359260622750548046372755035118687148826544285507468768875516388277375020639710290431459409844436842084691993239745922740132147609910614652059284567482805781191478871428428141214941224739885633218858504500048184980509034742681306386878541490606717076634958648941093801367962625822615674020492155329942130342180685597511005267610155013897763419923567114442259208609908358385157753049222405407635919047644122792630154580044013384723119809823061192094323698960088781204916231351525535876889972288933256161570888913383162678876544451510196701724340208335806007294337564525496780942656613131775790308271960287463272445150682484042581872709290207330963799853862930839263504179553264981853562551915419828478403095060085225269801907332437274484140887954558683001578331989959363527061579874154567964183062710553391112503351657286591128747032205318417003423679889434712485999669593582626750939121948979010282001818826590378621899712873604188527390665674339305250197280959035016386208710158133583056947856288771648570988814524895270710105380144991325902611702963937653278315164999354095834564193537224647081857542791974045056018164790754982734842246227884365535391051732013837147913804109657187649990545476136588613559400164435547395544023415452082156207154211151032710998641214653548729719957343898833373941230056189774375880207331237618595317111990563744559018649002651276105059002836022449905682181782726739207394819751633582025356996135817307481083944530427058262396395430684905308538983764414855150199722670144991684628989876695303197373282592209311613409777447944973494042035823931118872242043470588001458339404635406199407573362909516519859549126535988147619497026498417691999199280973718644637997626628054568951990276347766910769093859387769944922273106962541895561464091866833500626479863381138409411792821827959557146120523267465831331489401509492709294573541798272237738598968184912647018848264660206320057274686722602537204358349179485296351920557312361815572254016826126696814213871553544994099223058003021436755093321196856152201147220828581211103962693285232674981327687409879077697732510858223820937591600113618030437506334800070142025016431479326767879402836156541317475093057159557645251643430955219893289907607068252272320791749236858119504812210311242921412774341845617521378584708187335277398246448379236543844887089870537655586959455075716809094172322715933618663127018628494776048161558711049768958533714186625234037459819671871113004667269053806757918328007581646982147219515219181163561920765693219833015139750575973088173403923114320614029644081485065155074156686721444915557949977056551096233160465976142195398766736701998808799212102714416627354835187576987501469745934210370575614022784678511449622608281078706994942826727201710360614383963811564244440150275599815326132169070773509339352088950702580231540224039660499875118635521107164274900626692255939096636535330593026419799645638620770111737959450619473700903030534229068045867462942520678492055006196375110330933572122849691709370978880670851181744759631338542193399195555687914755302795171347019382089427060937029719905712551848684712486504308751492004922063864763987327233639465075640944071977840601475950874381410434636364712480758629369458789830057473712843260851370907918600579622024966729579374776760918310321881566458226856305422868187726188176488994814525521928907896506981007995281010849243701721542199460209443571956238206052219653241068013673220628230873291766999047712070875287032429276557665567682047781855077081427907644598698561200086153517787449811123627061376723467590274600374427552542512130793677117610380483751993749921147845045587348463244061595484889763652948344778451456918049845051732672926446967886285442058581499492854225369466909532908933619556268312251455766064095023507612501502073613200101690546970695769073930196069704934578212258587609007365869155886578991047887170873257471978390850305225799262404920409288270048449311874044139686382284038002401199494655937069902795163176280582357434311345455335303883923142401199534464754111508504389328132068111914837787970815237514150533637004117129140527418416450873102365120252789129596557369342506922685632845907049821729833653128871630264352595023434628741349623822923155319563132115601365784963669344210231479998354818127671083221633681145981387193270974380461739983760870170053206645886054189932770378277247487832365497410703340252237867169552077599334141019067270233029957632228569076466800941439303804932306419385985149641858381782723007773644760563971034324919598690797922011486390348032056886903447805471785487851012274732431824142035155688819826988924359770175795908550227976321142835595103966461117970203148556216214875845584342182617101887292253058566613658934320465951437510634754172637260227542901980796929249902085822877237679773796994033964893787328319474877025218297057359930147857105935121991930157725833722329208065622083296783342041474994096095796788030056576797601722025352777732592851199830656442566901947470089199677278302156820799732088234755187095639310766853076285754081668467278694511226503537623447570679292440295979701180344979331513066562032940733051687581108157700767340598550402174830807137984714549972814783448983726851140491889608696309566117751074725486804839853408648588266917581362172543775730833635303926747863323229935928807905307782479612361771775960585682993361786060936616273072840433884368661048744963201409024871578828245458558767011332482789204133321750970691904714651258719012186828553914442205930336934024573685332742199289363651997742135805800533810043745684660258142677099150414401580612584249945610788803848842959663867381846773439445031496746432242681372340544402972771684759333137460745693328781021019084120373229819399676841506926613231531841152940320749056984121588025163465204888845842940948988358337612953540866793251550814223582921905088914588922576509634236280891686713434883661791513418659542005803970163870786195132104289015428866030290564082080648448953590644829931740652899924745153567154999712758488464545419442301845088451617537419819285260418946288288373048508888204951172206229104755464166382933197932692720266603315790142600455167195086127829514610382702905783840032149895917154005612744729210802704334071338757507309387370718566422515476960374456427046345691972626342744870003045064130033047525351306088497019725680470163470501449494103736511689364682584580815874966724725603410918960598772162796131030505102045734118212438866797047428765455879533623026209951495460344931500868125907949649801095034986477517853629621802642778277603190613504869351706806192557149452167096615092475654513220599793377078141541346080638119269522309077762193512827601546309491065738075088903386134924646784269968916170038886293467263796805023547838395347559902263396885895036624571677961977104464552389629445496467854420437375114382068799626780683254595535160041111419692234640410315012419914915037632963037212215697837245759762990811999740231502270325157593561726395509724897411320328425373281080686012855537662414993233765254749138051397084446882445419118442456313853718823081147027704128562697184895682235029021707011764935092567212926611959797470345426091443697103508257041339612525235357232244116572294713033823042300673031095635233833448337711055477701254878051393603385777284443780078748297542062406661881601942784320949499569918396969318776324225325806767167342551837249134389756529117972730656611807594334252175724282841665186871049578491556883124956724090799532280301123501850832434647411343907911871852213487990777810660337633502521135339914984961758070006238533522891071580370558282352056826992581565177989033518728408515182851071189420096338855071475789823158878174200852385237299991160548580979121425704111107001545956993710184070444386477755467539616042096088506379237884891343043734758754624378491246668948534870179011790088028503347401722166383672722423298659742565018488118194604864408600113719610734425567755183633816814653210598437734088016891469433962378461126822473031341478655264071406525450670031555808524460313049948932549099448330985594208646833750630912263604694453289323356131785092440068518623558272065868339283783686539813045740147709641068769251526267935043381827026979644100420837821193909465101399876917877892344598591455935584935111395051167326623589958532096795966592424668425703570434845445478450163447513682862575092411757880990303263220764166651278284028728665892252529801059034175756269362198945740866682580054499717584528256202173155356812738730534413242280191977253501717829476919264866844271826737320683937066427867473913632366988776124079531619557318809812504401982750890526309676791370959013080888200935638100727900392110953444228054527115151589077125781123069531551941185747437010953264879978339036980725967016590527864872046838818354839382780847480447565993744851963560266817583134638966742485493429588371274889220221869617800910171983190425186259423077283925903904268079513027266080418270471777556691059991206229854514044296644462054402425904788125993376800029780873822406652201851433661785018087153183723163434649250897542933820816295091955192861743723220662235604301939724589875274554632791073493055570295643677429798800092755816165725132943583042451202573357179664024817600273651363077511090605674782425202773644935371908707295439097611213802512063716168853019435711025710589562262926404920625540428773748565421077681634627243633991608266973287251260838523147245625736908847209797332553233115469762155998038004275024306706891529515346308237319883778999516800893984383604154375633873260414955278045421783444000300681574748253141504363252304379080284156224796607400677392991780221340016434280420775732509812102221984050190999226010569493524837997282467166194977001031942662159075443140568879364255114047249607509175572432646627658953566282193027463858720078052512784619149817750483985476695202971187325776594068684114532104524074242175033292942914069527437434364489843051641752287245084741727749700598222939757487457409987279363803308510193798578542885943776063443144222506986764954813502459768656159206825771148980130486942365858491542498107912112985314515973951060738134788151357419624043844965513859085385036886641293685398046496495301902755164084120159499407071179131506581419492120603045976675089786880983783348056248210279267519445535296331733679270117572700076073012748329571001042262151107852154892803689270012744667025615482868760694129363907200194373712420964217409074909318308083863572970833649971822796165582537853963753907790566354438538484825856171084871668224555194005983677971063800065122282915633839339958764491388863912288568719745716271600791008728963167409836408410084413150335277649211325557773461810878810796543876003890638056813744438059417657976057426507905082097031972710682415816509434182414357980567919251185911215231855307809253077470493222817120728642285156741265869538793843160439499677155483194500683826023773142062893430177090284651320737642485857595549527029367524628673843758102569678624544027790852246701126194153351668346484312425225029491271957680573402475237600988069449687118816562998956265205853848358149158752321444307866240081464263694045689504580556028535558824766537456556329421370915683030394299629781133972623404842239785094154659640958867707168171037652958002760971538735806785288664781401893638440959542332664595836206983854536204385086195313114942059126114940576709127974111689248299387790217402594225046740217018639420920954306058061391765949925519300470328435259627624685033047339829475286082740570631651123958323976514938633936624539288062076232606426224468521140044171112898576445697296183515609738934579117399767818927450847248799351958558228681486326211109681836147471652163342920159327201030608683674618939255713148888083661916084806529649108441901996910415797005297220359088890776426281572390932883090138385354474896222041124566810689310698709608235249441847574570102903549223694262962355942214296106636143890801513328659919307765043069691025676287399884378968900870152640647461596444247234725005061534024287222160628958156131896925622593894353592860542601915482953419811893675464766897536128000199144350859967466516123566999744182577977397005685121302262758970459604932031498306780249444174088558886291149678026813588819639343550364411945925042037175109335757094468390083022279620962806027082765805097122247495619208828067577207684037333044852181094785049232627141067110371149349589444678397329451264889107586146380094498057258077690924429273585337289467162253977230553145602528709277885667205203184353666790740820742446167882738046404311070687107292813377144454568027436001572724002961848192943576226712250055251471857892286025367921048076811844210986709915009440357579676663104794699883133887510817312539833476584703483457748386992316296800134950722961514982436924026603203924035082766400423630084547890770622726436062743205430203526713854992458179922034729592956949916080611760756580715921802628491992405678165986722014157369058212899400785871893881865907305991853399604161264421449036389019848227547042237969708427977380754378986434894695906641429466078608447595350542351392553372444068573513557020356401839744090588531978161015113860798687572795425827533048374615430988192746775137806581646284512187183816282055389849129576512970507494233832338259600663108988494390889075674358496380242936538366826801546845172456416856625424814604003843483644693453894799499152497777906575970986902839888692886708059141428269591171469414281793119777855657144668075659688715046725234145196482612667190375161681264636796652649317001630604260830917069051762494234147735201288528593615216289639591164717434772317816245934100346970345456183261429870815910329816732759122992141049483364488918944643376221010828133512973561634561003367045672577774587352929216975753985414192058664780639849478922644381993965580241049199416996425077174244527000998905878325944173160841821999841131437016332827537353067812062100882204816049578934235603056633357860669239381583613119158103906570263152647469367030043119139941947485666741944722206995274218306467157192309411613175794078343089652829601518794072506355453092288086554963805454356409067641208852386122185940356491877450626540910167984607879500239510763213465182656505277196896448975541412050950481442573384358998179242865842401126199391613566608749296086930283338997681239922252949379293913135833717992847483420016279342524230984867544819999495838906671068814023662712258756437832289348993659497403274230508349240683844858278506563196468619485875075765422123872719525694203455445482793363116125619002360074615286699333903241069901332468019551218713849582427085612474591923049283631635687250678309608374243057407831948315799134333983586464353827531208763767623034730093681293263065435760053849998466188555309087272938915154932936796204726353305912449481588263259298159531343335670195182752477572880786107600721310196314298923463055320662173030803301930350070289075135765981535901173371198359878479387611910766229701156024118558826141770204646952603787280322251767879155841704365100968313776636793898917072668731918069178102533827205090031976701232664670622930021684232103930469853889296261568679116501869619509953064484620028192478632679092049255376742231866421838645961283073585856161871033123147217412246975337455288558024530281835680886747320148289058411286177859131247854575122161894226616650578059639312293405877171193313462681434255859848761815097047744448693128583893224349184428313196996913811612746514111219859439075072143140273947357164858427638460963624288302814313617735951004811359168957855193156239183222627538586426281679434691017324649094879186739055397553487951936202279916872951964830183597435727895547491106158306514849504573289424165191584566379812442259929437909575176334648015294644762496745677411368483397759217955475630698140994594496703740856902576569473535434180579160273903943271409860524439069208506084612691235215688427416425218377897713593403377896197004471713689928782611800862027713991586008515004204052081714529844572794857482866387628668392422664987651278350719916162822938615778461379893346913000026465214194950843610888537294302469562421526736076645889346780748280722729639867240238489638190033393420927034004500379358643515724155860921048620266088071548151648089803688086124461510898991977288540025025701175083910608045863548033108790884600039176859697248640928275125156600422437546433228535426271911056687672699148592792713123126156120497702001063280603799123623381149229775120084982875784978299153714013989280533288171066546342335473979634164601228402229290179953660985942683767338971097793003717478463006639308818132338237011475044704630134854511245889694848429571404431764460433328495525908397780925857425154336112009162687565113404815851737262373786300404334189265072318983061277615421948633961421316887604843894980386609733402572559118033697980595135137310949937462774350087882324048550992970925343563399039718407804328004331429650838923133955863092960099161950391840846822699816457059570793517613594855524172151845187787431291871122309888709465505877388777778531698842329898951865994476643904859048307701784302083959223665475858692720895793907516228436196856967258218231250612011879436954425843088919646086191256872011230340544801157660590766988765334306043376130208149132896577889529008635914474989356836090531714773625065971675916929274649390436757244803642962290177564315642606248525511380374848899532902101047442737135543788746838289295548347701274992260826303450007803976065434137352857423885478933883067728494568441892335304876678096200332306967128009079527747777200663803735600710407439070288169224003048112666104281696984545308434978609780163533061930421060946468465253992417572349450124367510031375746041415579852610335967110658133352464907707824165407204698449989068462177697714290886739064533573380657235346197212671049672726874000340136501708833414098517600224613945495636729821869527872239379037235948709559779419419233204894770581695717172331997784990876646683182190100301751641574189012994535853378548875359514175720135036845591546629523014933833711643354726283139530540864740510178871178145079273632267339167504871115546977640940695392610103524382082132311814278448622554610635564537871399293695073501151945931896412780981496138275626943014307853472950778364146957517341413450807706937591710784124140626408649355707311341748990055621129021775983787783538751473762521296404245166630466609579620669220368304791255588646500891985542295044011017983663216513383163881667943875140726758289961073422581252000889100586760556097170973615550242382785152478505311421738772120499735273530000600891386399999931648392500654851721949079958400241576084007831491296061234753182281493755923610115818432208984312929017807376067706044832122419585714507402259657253937571930894123910429002058848574971277148096237323105855820925476794167957780499928443432649443959218004644706884173204706322995340821293495633283856133724031341978009770944154060984762685589386218736424322592636612343093340169254628652027262908216060269119921112178585332518425249740189465363975530365447122162805170191207121096964045054709045667315830629264539234667100734368735152204599901383192332524726829002103626992869412980876893517830468250098269240420828428085061228501869802116847508597787406002421240948666180250104409825866715125370852775487915391030502407971996470414003064354530645890356131246805901422014770894255673960561817747189905858003977989812751944897549767562424362015380366999869108335459310856489079444408875724956850387885418157405315003415594597441961307510741092497999380409002924149656718527623822542916470426428218253261940046096828697290698462032610204667239572224021495238310567740955675569582424792473053400317805227333142653790784600933765457561777487900552649911511658764356496446340954684211757076914576981587053956181195590564366557296453179546266258979655909260911006137852283116338665087637472309746506134016782420370729071073181286864256212752600284307133505758547861244822610080103711545634134288697595223372567872623532049609000619135675043200682153355092831192494777303937813593105213169239277816411061414282990902219180572380249813051322498189534815584657048439240129866215647502343793377502720249762570472620356654916099522040640880304833336894188719214097266032600825380446317930751638664048965330243055735196262257344797911584701394517979130377769149307611566338868166563126970137986076737020256034049064494374805953380686219651430751844213079535234423546779488516839139916292113300770569611290517739857630378882041426043505173788663015499732271307601071023676840456069943164239046062650791402212898816029640457265071695237111442955909908077078378385752035755605201743739377309376133028674615491954373370329819891665182745078427672856419277967837678784733645174111810512483797609816941508668616715175964226213962930217676322197520021596895971910614120324068326363513665368025490423946297374777011824241110633921478446453078709938390381057038599486834172391272799631665343507088432601620877291375632273515546041244880933718379773901793400765218507358080467524887581045102159858961735821980700744782132803286488070238789961961368806271515070463076403217961710829459231488346519503002000544625149614023228206609160368174430060807421280568416541852705295734275648157026558928250963127961221817344598305755025951567581840584603046827398516064376590881470827088550504606666453302961524656341114403472807942919438101850863798165105995685646693846265767999750967439677358469275479225490554469685075081521473489157001303210000663417004554011751157442146508583250402541956070311836086672453225259782562643965008914929342999015169155738361162672743354961270425107893539701276504460486762618630399532146876704593337159833225738551971289916320172984178057073688563589841854349842170439068465694502969908099138407927303030399250886100593231864897879829149030381673040100565922314088703414647598314473057809252699040889813761504129321798464453774175918513874758242317051372546794606072046740064089037939079338272499527805979840810844777797091136866250709904851035685513147169354932978194040823691458392850468277208308288362189659515620783886454273423205042356243633633472053539531821608143171449180617973117789680711121135246127409598943297550166493204907795246612943684707644154315727508625074866959687743453187955860104452179225919973332093953692754360090736918019960125903791053211329593153831474358354287549987857892365782109185230370630300048100148486062833667218600745261597881046456659981518015887023503642932543844088136954162153791159943726889471414733223833084619668153777512902748994231269996616744702301353432637775377949179755861750448735149392038595497053278266780666225096631729374113786114939165403674301888234606235701963077966535800848991765632956470802916571886476435100056066966868333477379716413025577262630402117693215646691475531371302471228085516039568452656279384629066727205441232968826033851073212831973967357396307098016119849463137514184362235059808983033897498712029589496230887995363740467619130785959116890443982241850881651690172311024290299798293132751029742083048569151911609943812084048989759389873806100839415804971391753259296376730431176828299895544385280085418550145874484451868543723730080011151471857464011212001753797161170254889238441575135969914081229623126949035715106015617268546865095022742662334195405347857020466447441618626917429882349799993556850569485993972257233776776183352439429545215665632256256818321127405774365421694172177111090377777623954872022094898505459815742356376664182948415210507850728008818692608222537154907145445025911234292958745492968096314086251931499189474537412045720146545497790120877156405529975362773930588040711073657870124961666166803774069389248869184364127882672980468526990860082639318973975568002416007143306993955555857294800650469650087769512590259257970344762024070376059375353388427397562962584841073865272820925465666391931560188447666541206350356896665208193233707556057722676210412950319059310180731112145210313590269054852909998762506368327157220219260694128536140402704836899003680604982035248488752096407761761832297495963515745277847204198681881358254442136221368468717414461929323566846246838230130866556977044564412512392371805778915487002432242382970409068325174466473753985181877595209432543274251866456688367345760876708853657210829065382053768444705448979713930563900031907348964348633372994153167089351958594228073178980452650351758305258572116818266095965412473208599049406790716670593683795102931786849855578707717101266997459636265278517181164751640224062445037109784494860603866125507959710749814844640743278113049093725158335031255420363357448118099704355554928969521439713852765430493299849329287504860148717578047566129873589874190252556198520626717642949743121223420495818880294839749393744636279507486924126929196599593080862262966197941333281089908608318611665841392969751192535092567762161828569228385669619925931203243802909040388386434461947400205302504689834655780285357095996893758398432441290344540681912174670463521305263166086037154682154747929692632967870947254269353851293040396362245342146969143698219775612761594509874017434753283705310440405194673321898866647122752863624119005934391782830800483613180674878569252425070522060690812316680370834496303799128208143422391860726270973381918265193783416625336558055597571591481527236843394771608029664545102683324829919265493866761547859998458821659242990965288869320625421431629302777547460428758636035920158941606416234777053316287908755656332311085290936587298695195519674405920386445785458909468683384469839258169464515058560122134368925102889537522076618571519083025335190643373099181318584702929962701838466128381435094941365896240219364314610179924965269118302390432250551926942239143405784540683914085936362032140420614048760667656420989657420772904263616590773805962072533818559225592583419185906614072943770276810530276091302933836955256510867769088217492711587839889788321121961987174411211652902488722628199971086500890987275203058094850854915787496018777592724568427252426045022421435397882673914645482265659814422668623505171691270601208462449176744428438164822148653969842372365273468818382054975820262624189277626430192182923900732914443910342264497662813283653962160616053060197443829837795922426487979801193394048048496055797898982237885116771410742906052711375590604871655981866779330309969503125513366330944122702235370288374484006809905437221837676381864433244569303975393317411195839365577557731916041830904366945125668761420669871307728999318148903780915772663916132123687205228022088115334749408442205410502568896730970277898889414203785599901849050812087319503822917155502991240711726559048464700504133878137247161567975142165210130859334816695889868714201918716449736049671319671843912754578018990033287470899893098734478902287635365807777159887641469097502282267213874717385026139096422276514555222327155151954259880085258822389558052248148075720488888129553760535499175071028182920231404923397787652800685041671111982237466152627917039205119188944628906801566452918285111298975452826272641597866141599240897002036579426918782227258904280299172547101946285324593216656637962728161040956920451700509625028194129440091485102899541931914119789549720598516293338481179535464713243091747084184592013632591891955174994141314408712151938470112678337065439870838113637794670640063734911870270741706299302333308568763228487587962529448231341106478266841177456180522133598897816133431506859720054672681377013014407864250669111933827249052966802826924920180541646900078863643064403195178945630221771482467291941699519598333577189715077536313557143183494225464834882041165763670798939836539801245758708100942633700217010730558162595046184839226648528721479741798041980916170667267820269686676521257531346331276929382641702842581884101755756856598532052478733509877384474808763604062838336345096606445717090563117033401587542298744764742934031834066636569906293050335895784780645903174033967535260525212773776393338950664304614809175886729887955717531663730883163647882205217264639574837094566774273199435369604352038943600848032148391184782534669035627302110931711681401676092498800882764763342489885375784056985140478430065447320429342501768267280488803435764333429884457187433345424156050920568354502717183440199382648062694953602816777446217355583521878483467864962423005246710520799806262264641537722104357223865301443096678221791955172607555983783856340112194689755854072515287475665821995849480776757354388866057597175657673161977009787256545193930422071794726395086047983802601405672126057519329951109810164407437520748527390135100606279882288694285044864785067163792964904825904083686830113767152663527120724201028252162819196704821897374943332633402507170780050763834613101609878540372472431845389768899452290377108966304695743734170058963991838099131329666414855669106543335221518589145316401361025996533699917686338867424573026477667148727388156692632807825383033298117302976760078210736084062778508072930890777894781183005845739363764731314146654448433779036028243260351495087634318082562272712808727227668565723889017558102821615121924467012000213281302515406498350719501039130346227658090513496738533064270035400473578956158601950756380764396851499615623454970825829155984851717998743570869801678455607918949182883996702843670397144195368983296091080963461696295877281535979134846971494143361903974356681866876278713036940863640445243717503519389439366934070003707691450642843226820226271386193066565754325078180701676248651660110665724043722554394554539346466470883854324079040669670276237113648856261002046705879028328980948505939362800954450814777410592380756850885946114167296583475146224153591267678959196907200193062583337213700434391928545335545071945875624612215861532038072865170181844486010764579553466926727780382750411774415474445731073525400661136451997205337429601663718582474514120836927958564379956620830980143306459960345075027399025176973567787172579108564425808184874520403984585583996760791563928938856176885337778664755348046670579072066886581693492169086646998330944534890606602965683387301950627811574679190871877264129832962714948783252754535505923627058493200793344530493846838570800308188714714082582535608024022824246245298116384663766902302181137730265645676124047523199196351182490167542636867763039022729211050151656471590191520077406504685166290061967387706505621555843736003012733785481786533611445640961335202928337986190935199244824330397388304719823609131647375412636718425920212949564776839596914134065496485720159729492367534928972553031742942635880679497170231865887410730726146229164324752313225903248792783353241770329887660673647792070861560877226445994313609517377516263850470079949161980696520520258926978812497348002637738176896362902232966041025956795630160758412577200998446885052822291416779614710322590483833667497114826483050529232420420282302915545277264366261375312118650284175933738559956969798839064147579015844720923974451143305575831128230462790068945276411119299650002578907953190757926401716130851853976759369082002759044725343994719900392582970466515007030567677150056694723748016462423234011234509666868287810442372920624788734064049406367810497927257779899227315688218999849502722690730210533924611941961892038932951298117974969032816623470713070701094361738708137815351475283793700789419408348030091492994560685533924181763041975229184039810179907533268351367302908539972954470980587438574616047729010652847396427369650280421994012743197109842790743747731029136126905087607728548265843061705038484633333522930051404034124197726491298864951261193692815093607812541665783385113203733177535637344919818495042409201150935454041594226515355033613280051620685249102154823851658852798859366765008984300846278866142488429130632971149494723019041670830120794455059926773681391017929482376357496104419555187223361856867547932236230653235805800725084601031464720449859193871623299736346630741194744385135090857576968103909953838183655982638436707403837245282498494191309631495641676790194229203139955713668870662645990488629490481445902729888567423630092888792134348351173547102395604288914258804652569634157141812497811940857081894666857370266078088797826239481126189378442959043328168711138870984567576400653388109480593482776073432067820467903444738466587770197150240963275050306757045445894812241710016717635644442659305482994712346637213914628700198312476460743169705987853283482323146786717432373087708103353901158531011348787233288210255081473484580769977904503118400870720193369715270418081781786811666679332854302094552955448926691420111356878798089143051910586505218385631273121784171643772965293384593774667529090503331783041683623815872908986308767684315893452952218912913809303204385340606322359904339718634296588025150684899424254144882171407795876996372283698789043541094352560782023188440696711186339252255761627618947662644062719135682077781790881591683591914221070422256574121718139128464196759455432015802836370987543872222341251295237687469946152322727980622397347140976911046116759497643102449989554776467934118168620507299741090497510462909793328110322476696740628875121761271154859378104968459495113873933450097700751447927692149887293039086240610324809829881783862370440144915418758310071852219122860814555474469812523541726412795333866797296781924760120060227212310811238800258977469367690263538044232124467493128553933644073299238947062464134049172334725945879956049192780297495721215994088847472723373997624981670965769101333430984902542584292640424979106770225144435563237452853062142583284322709737839244720849949392394416995327641644951647430126199043935222445077654912146910493973220900100137245360287372960327351008748800080011932936929074232334354499442320249761429587543792334454615680631312801591895191073410457126421470766978078456521739484222605937960580646675093044509629407196460311683547686632675785691107140272863316992930161345379588536548003817532522713460866478545228482905905417573698767318266254491963898442929901529987533916905853006829818240787981341425854398433332991145501257131660139575446728279016199699249567349319021401236305552289326172617187442224526567540557475418270434339928506610312253585447382505564987306768415052803490792505174678941604197392086529922400894416002657805086181495340864327089280871163258414669946222319382826841410432611265233612047978213332834911928476176286171609506124743679486043945702500199000623289398597856186821522315116001480484431873438584430132808915611060973565680614909068231857080451210952945241512383416066828686075960344932585383840155988145197054116890870773810576943945631977647782796915487501830359394506569107607039826030080096367848930104571569060114093080019222599846539457860936246216266981460459799549189439391727384668610820222148967750524102674424828806147568138073741910241443771666864807028393059519049226927781705295846443328413578315651039388292884825510734002226815833636056763336293988160709987268266676125008989907714803446115635957990924904083351877000378591827489257524789782212023243103736680206123143192074516581214109346988054047462158044138598585591627965050167033143870050593601616916647748467946877512661833986169086942283522607903889950087299775994679286767618186590966203922434797745315747373032759378692147902596490077898462961600342095209202294965722570369596433198533575564172802414433692332829937098873080983232285628935399712432560252377644375729241316605287361062284327819460222806796280467166026332985301085696633286580368789895256369266227562537377704482216999639396301405337409565244037938323279424285522361512442021988810142507103888404832754556169113753956887682602361147859597562814582202772808097722751430810643191116368251073265817125345090710516516943384745634446762334648233277423348581526116472140504865276104726019990616639900380319103575288083628629031670302698295909951520114051637218478754069770662392850104967365877911804674075224295168443978838228605850971126430879897841800000968022651093627188671192329019132842784951042127261876446412307338117737417712718633780716118375981834268259605977239092141374891606449362771836829219300951279761888252477527645856253869240313480688335899193697780495900793688001545218635393062509270121400573708610879849032720431981070944011358275832493832654038843915325629885070358690837929870979910370298296971987236557049270340203653095249985418369860760423267307405750571988209628508111043878247454700187947697253408716815420463798120679393272555721848245156972830509662174504387877798251412067707560795977000532554918495215791997426773691412036712202680471218298493904791658758856643037160693090979909409501763445790644946595710382394731886072242364507359515539970137782247338586416169617082653256904846406474584960987789243624161767575388545237415342084040720532921436002430014504488574332405332123317093133977200949061119427686588378612962961840757570530217396142777340932389773791193326595675049422232077973220087947007002509249203490521095185230386058051332593893627000405607449912318807050180926032133614895887886124653525145299280681858620490532570831932184844081058305255870585373584235518604700111681720014886921274393231590808546330012478437182132396366418961758573825247949347443003646624262721211822706776586225326390816915600949674651232158924801599795883285293588535866478349804343395286159016935817385660176328445087525085282821137273588644372687456546814042862280558306925468812936176336501517239389702684323346408948010427400968465226881095176955952474103859880934817698096088183756043267694886664366119216658042855217578025855509996826791701190661432878094317267854189301071422371937571929424174569362956383267575518040120785197745827821278833444262823754126307697351932692255425832728613490071373887215401707928933378330728118956876133234414101057362832428192303065911786234581964476979508251435082595005711251999381195915849813231502938843357828622274637924829034618591446872756235745013240714075148798689928294416235365484923021657271486435014983815533485450515933674911408611319036996122282433565494863843462176247040334406276182755352089858300016590084044241757340832513421956571253945188073107153523769711083151527635160478541712906863803643373255183726170445173766067652035822947031016353364581227754527884942295609859898859360606584565248349808049349857514411448150313417237428468704867871116372123232786391925143786464405598566245794095438317775777430247007213775578728612829856994577730022795725905000308887767678131195552910805479170416625377653103471836490694486113633799369455736771291093645075895608293584736293584689555633214761873572756772116376100227748175264039701484804822078243142821000627895662728842526131867238117609397484977418330387238082893706948609369256336569010909731055018370222388114253949738480860454527834776875104432793492177540693428559580597108415206911208890069109028795716996740501352990015931993745416355279187428169450587997696625124013695275505786729492034945095068905404572733316849368786540520252530807652403795862969083462256931218332399515057145668047546720591537799979379633670351511125376909793566628884277058818790835571634925525761191036505668100467467837121304407643907025863098394040105957547889730677944025089323315885134871411482703469027750571706216424139128263011050272999567471091990941167367129135601588044108530966372003433485991900679297797448505456079786369649469794967319623377131196525307556416324290278214447022316596407796928109479507453885800935437302984619098740628909499138479210536604057864554745986943619677840400891525937020005621508308411670072313941979262478261634459931703470564982403159067555654509276569318027826604437331749136142458035152803698141174171205048844996376217775989267525026736760805203913899148482984880214936501891363224503345174790103678539169394429500101578440842115003475026700404937640831176332693073909197535791821963843155896096166389427602546078653175082513576436377271303238664262174949616828860937796329228106655645145405687394896735086781994007885466598231180920980209856156269995100587253732025424226314109503261724293972131906355189684162881766631261329414597804687057017816129573239430644727121155484753956950594697178214483383619424964646614984415881622830004102837560865692074379585741797420839846718915196091665109446484624015220084470925467639073453184348528771515493839078889221886927495326351684246606270962710388185365017064768678418037775261543077822091461342695093371377330541186371035727387717860758650133548851680146400068698442486337883010067433181235888844882227628560125850211690368432107857112013892210467117903078121517640540932909368395156407663438673838410416733528341506232759290835035055722617270558522234892381705847738278476888754177437044695798031200766721373266994607663051643676277329919564528918241177746666680593641771731544125561250110723868154482498788011042776695766022572158809473827633531442662306529928575283307305703326682674485497864533485173379150729897104949088730308228298447476288792022962761219097585937354523473746032529800767955743290357566987860105661693752577903679597162447796796503044181994182707549242620937030085545062163556518287054151800929601497362009275580590677396824551200287368247997919582817273429759525104648413428742373411202804801560648547391847257938912563103432686460519279511808333959573419830642804804006743846392721576075578002146259624154411856117205237950268225633450395976966774231720145643328490732911452511084250321355274654511798591369536657709329301067641338086214336007188758671314548718132576654846394602007928097832996758251671506364922949889219734964426127729063399342532536225195698975633363377264532138978643828148875015921669068325534805425904081466272149002899706482154733837978593013416053689236057348449364749536721469118147920926673617116448406728909858713243493918975130009555802633581835974464653080307626715374234874447812993553572955559621519990936706963865839198558387224401964271059133112364260451679230629168235080586354499012545075864300477699878661811766564950816520747332280425331881219096595368176241472785084944917049626077122255411186100972124541149544330655923991121645383775677680676102079059762886552968185083103136862875578777122623703012837334422166443599246868559688613505406114886818845017338871144629206683823017830608233957643862175014910848752358832677347203389582641636675619133442482426683647638842266269451106161775398080964360540974699844690495680314369926688488974121421993527845116087766818572684323520081960758134226462137171297675213086555892178512926446192640845494689534667893053089202852449625818293514912318133606863235274337468916354014401292968143704940735101247200685849278720905797383602545851073293584707055949858171802018565392695556024445655165778879217707453341178386911610900530312716606098024669424502967516029872215848540326162310712628876475173214125657104795399362895407810769986400052583804651411295496756383167342846520825572716081891621551318173038402323871208894966573268306649130113319817300259575843293660965418007170868713262316645574214371876919825280443472789114606632851559769432353401267799454462816454370621955962806836929754242847807102784529738871434913029758167912210546003061332431675311352289905677859605208403667589790907656503616879647014769500316142557454151072392582612280770067415402261204597549968572562828505450928274254578871327329181982817919195099393036933489184250084639858881407647720599103644261017305751415798651643242587933035137282490769655504972592052340950791552276083684406117231277293088258368500373110648387802724072026297603396515294859939052422792335726456668814075248518030384964737677931849130919449390032624559295472764685684716454748449453591368846895945660915937808466801246058116052728154963629862667300481125755099603032283688071524689433819511740382327629785565522356580683536283356213892256992704761622867215260834479444581297096758244345010866573616930241449606160972706251246968070410497718669249669128034695378858927396306725920026905490704246037977170656137685023803226580177399926532958940032913546144548469007721846929043037707319642889624573646663765720563007734254699029382938290473672942434849505675862430260917412821565844693535398617815787547546591840000141687442536011321322662348738743162857841807321800190323721245748595703559745298481784777434282822299561819725454372921903567515975042430377776521539903651699251640925330541612069708113340764850165381322568976974128713491791809272538170650833560548626838020621783040939134819125315957302607045701127135570868138734976042693258701287354342932914709179335318810009480752013067877105445556044815166611906528898277740202959566967584455982854264576136681304120871860594803552186209476018213803871084029118543188724763804933981364791374053211538216905323181614344141476302453882716746403243501204585552114812944986177189445252297525642339986486368926157514424519468076157110843026620044447570378420164664732301073624242694412037931782108339403354286247245449761371426900736784245039116934930727010016949569913886742121841068151885899314986681369717833969395532211768116297642530374344586620107628006982388829885275334106488582741981280353298944979970175598927046681900187365084050679911956400792244533159333847408020803068855407034850330192332039370202796675526418426354081508797441939654797177033444372681432954245660679207785704393692200640796457416760499153308203033791769769435424133501317006739922072240526273447950861943714239934630737979867194038635883581043245241132257157565530322472702548985840550563968819349115322677744674999265543086723342127627407781384673909725185337059636640250631798044740177897780482204642998144519728098075152414964147655257074902481303065121662762306421649207932152931311271520476234664669442498599049315933540832571825136275947971876260784149118558122989138367809220775171222360889724825385628482168190505339578880898716335701376828066928814333892279982068326092395008948969806069245136998154848161065685681599355915406690333258698680990714533433168485938454465654279328331448667052947954715022310782197691878999996197986574928698870840249411609378468070942722252268953454796524715078266386102242780375053174862051286006709176931948759064927872696168888121039509315086339178648001281008454938303683331674979897487155461604600074608936480604188823739697055200065027963609467287077480998334511125431456617872754179243869798901680259161940856113532211843060662405785570300832786631378130103016004098393453142327742007180085250059983448103551769428863809962520323960241468487367191885363985925471873477597490630585335608104027345113812804116219350790906376737547272708383037636964329750530274993449929528110823114500711371881973459047102762196916649238200110389603879302500063546227521802318507871202252723732799179933930822159309625208053138318004584625012337129922510195330206890646693326198598233078466619162225497993637211874519083936804873091490760970733292313309652991595017548329139729612600319906646997847396012975271365650293381616896739094395977382968591181642040599057995840724038805079012837708635841189269696024549697286041172981441049113558642430915548910506063960696215781581142933020287683797952319649457301462528352562072249482726777314738519626481195882754195459986990755932007149639244747514348646723271697691672003425127846231049215951235568456452646718042002493061245779002281511210460946075786603335211647160887041126155443970211013969595674361859154511548143085680369667729237023957706975853557966443120480640370277807521569896413727448716066576270398685303968138570678752492779678571162759025212654098033057604027715894738943964504297246538388607214520988956634014092811658133531127647613069725968021245662327771991242639130696282085986193650509753478412537942870712115376209709545779925656084546168706263902095989152334369586873378266020605152821700668728465559263424631522916247239370508431867390171481418977784237354021073313804656263727454793787452605834027385865206440392808684836337298568313325750409221427765210078986722616240682362204937706854892481589095432454808194697181919760159197218545191131733546677192593471314347686227421693324434228840235241688981537024996023346773718392900114561404004991955061718242569511767973249968274250806487925486389982242549993914024864710627990248121386831841527701910724417671594695008008028130659590961411198292864790677269839093435986571434656692045686008234892479201943035311062259487156981000133041790533920745635168773092301915984075442728017203786489222107241159239634445216660399032796362083613624419497374101726762588464158011880454241490164387108297156076129649947270633837027460788733376991123652856974136026472723875921097589246146545463974498367118424870268478946284237086540256909534076700105586639832444845040701463125010593783262639710694332011712432307141280145808785273720573936031295222839976321331294384726911878482514401669952039480603254467808007299746196208293200803355137772658546450972523368134494488504694800659300229298672290847447169039512294944725886415345262591197846033642897619187272383546702168480700632313290071981900753306156020254397000938297604128364792204928528023415900651539693222889295720049005072300933498439763498649792741155768375608401865783130756062432501640097622978577406272607653576831963360912968892636578629181393075884251888864146691917532647788928333139031266805010306725751840650419243209904685874299639996543237255051862816175858984899434106777756314567366508448797988866072019680291764301887287337936110319465022540717512252622352665551028001462629930244846101448162118983428643840535350676938623207214249788364108732492704755615867622896975182920321367233755156855386556438315036792081910380085465275232170043027158625896098075974353377670710759439477722492624081516025258294095931763027147636986237619804818305485800195029696446629919889482646680413777564519027209010291532452194608920883331898703215691410686234873031053936260103082347857320864413779074469290501385564858802889459869542555166053742330088808960617112348260055463180070420989783976230964081496517412530683584054290690984061251881534328715221540133598665242566507015229563754364182385825374681070721569427460673998516155525379567197520261811099095230193081109124182775848263948128913869029194760425310840655529582259177072678662035272928217906342269727146208662013623678497923303144971736245556113226797617241204863955047392225457900308049398477082133973189992980275755001391267464853954854797975897691961994228092193856469120393104675784808696108005574937732883957913475042151214762071850632396438582044382451724434836603566706950233856119802193902219754666949556563314940708880342972604569541122571696079932380039631902558489511379081975850812433331303937704879957771386670991121903597743271699745859771155320975668072860010855066560685263250964479695588497577979368766084406006519422725285216560109356248590411860334625333126947415384836004914372654681768428853171961313703384649557901805467272971653390014968571384611686224548312916507554578056914048869824776326514695299691633575045537356419795044409667774744753344549885033327825302109149012119994549628417385248833061295591821105212882925810840132444097250270473688393133063460496898822156343760116870933490233702962259530400261599519162302972752222439795293109976572722340578723067580985749104051394560339916876238910973403435522281551971976827264393317599178106428066209064042597648804415838865216297152930894437452209409759217886830884428105194183048555490509482122937018651832897142853895719298090589138235860732249690408809471882943337581827884923229059339340707009312237792194748697484643198267169484979497860464184657258108407466304506642445168370754218343216738908710169458093984732215519552934479632687483212041246463806548837253118742814579884925100349915495612386636230034512996631374729836940639007863721018473381888624930122746699702885527559595561910160159484791688073042757387945159181327480663621566240813559414845229693356904075655772273423188461477549535145808816568083954815458442216129957306640882216834932755771129459152593631025860259690659227395448919000122074611357987508867611073856704362723133502573366033531515647661711786142089987942467068101380144305726439571202261590889111245493031096607435204463671509850412795223206309304413999367571822990391512177883922213804781662654634550528861914312983158429386069733342470548275900731395935681031289646859822410367220783278320789341014061777824971487846626246267108250434702335840625337837257837873973609389573623736790078190689631508504902371935600952111268510263601228586850178163279993164118636062844836187146467933450350047325650078344777824781819383659426311120907335411363566795852685393435108105374428685215390090267407174686636430207865410665333723250556516981853394342009307710347933463446002587336937212277803881748654129607683235107982694661238693315587507385634676263508661854465187113100173215467929477554113368433924254238782784922507930962156247455037282829397279272497726799217629800996884208570450071607746184920975423805432235992952236453418451531580590205265608689168704855908726852833756114541996926988598977144303096452452611737772019080961343765449343763865110162248332423889675172038992087763813539581845314777985046356693490291589766373805286056892655667214821106296722570318675438220632914336396808994505116072616259914632043675524817191651897415042638785808161116994909601770291032094827628147547666747016535338263416006984269354983602348167479811360122439570573738979741007448219531219346227772845394933944371087660375015023498064096376605295556115995071755278658115436839403757544388507531894916832040808172808439664468541040022203112672167906043442718206600632846557031653180440559181564959153421035717058598884778587353136153214893550929188069993116876985401026800086546384323119510653392297902403825648734416952584764982920719473300775787753707325849146219543584611009702390287698425717802301755114820460723672913888732446254543161336390875155704597031398075348660067319416950739656042226696747780173339175584179929567252875610695324523403111474590599088045578722356777696515470750272166755067236948970228275021845431329885635044018762313613243430704053470505596893773571670428473464093879659468966945603725571313744045409045192388737420485454383136989232834092987965630587334910454858889854440956806477409500996066292125081735477157418082389037767724241360118786839020729812924434744620031771092491304556611163693454534398044167119480920182663633232987263012356133418534854086276822715863664953911740800944835879333471732598753068774039953908006026449313691736406804609811289096972919831262962850410645181508622228928444145795504552475332072225287895204851611213884674992073092756193090775112442686685971717708141312971307831780511646716526189053222803033286840536688046045683285018910482743106263356075630662231947049702946314675333184275377475422443935952596286965698705685872797744918992682215488687743997665842194701172963702250990552301877367052149059656410502474225481761042986091550468322038970321772260696846233992700484413805283055999179776340203310228668994015835874467248187146059291075673278293994325344425115773623624045066711120034617804466437824811177303250080201171069809627433812809894268174061667852265719662631084606533310529301751433160716712726256850734262708910815284052490672861011086848733804718034664132887136612581714183288769666759647132155827275544133133182356237671567021914292975928438082195691740206550230227466210134021339154199193496867709236453911783463620561808448316660488397566590963409106919501268519443165905565745377951134660423292436501662231379199419421616016835038190354077353279946146935702034520066451233464503024862460090799861911058441763356792150767038896179720024074501939957438840355758917449282430353156948715106930003308226897127078316696357725048960975369909005683082787459417723602630739409780223828849402290020877086238669927371789533564807808622656753449508710200300630338551607037990095239090303154132267619683592484784242355728034114566337008932341775964527198446770445132206396754859650111511033417746862116055076978651236911593673153632802963900033541147671237795904495170117531311873192744841369100053571555514387111750314142882173731187179595034058315429983913546136286713302378545427992791582661531552031728272187456441663245285636079899158233020285738560071190594337308336599911253246968053188639668221319590137530555877776260214079718526473761437576359096208712496713123494786423179015956726088625726010842295379418110492842363088129554407203156641542774359651525482773541242186925137588203831648881849395624242651894551290077929655904830035639976666771380831122696114982044365477458715985686409267712188552309946808927504489486439776566106119203524230043543659538303688255158326728658437305631443658607069877971446696451969331046693754717192413526021450094859680435122885510578069814365541173960132727969090213196340711085812299268902351651811540674155237533531506970085174096278007357453029050178409131392085079947798462078114082491544837023607199902950457377607086242092783387225391358454078266784855342786605982810831797077713007804829646298577098990555560197615591528238256621326452518823852492543231738227814470441264312656171700126160947900672401611554631636022337577960958360628440645521206396113579995008706383646961225691328101916839165171418899479411480478758261037032760156336697686690588254282012123091996634099161874450879246117012371984691368134781696355548155714877745371158850309484728616998972926503643013957548052307407855322137053899480820489458013159079996995087666514891934138285627073422088716842410574093607871347750997179996980602754613217190043329729993502010413506024428649770739301015748218271184895934896522950562986766557600381244158495443476798238192670966944772077303372732327018573079679633237149590842492029086323244120580193335510381708712085647041390970450210331222230001333494372184045838488859098346241718832176861408224198382072140780719877223937518962747655566035236993670828182737520133451399598369878203019663889533841776674813762410404899425163819096890800899619217499461345693870049759358921878251085394972744104794907680178188938050626437347737893791158151696688647452607471499864441359529614579906732419230237773035560249809091561553165297387855472135349383762961891507115573110525878640243607439877267881592108215406851358571319885145954178188603146532143230947343593841020549604725623952688537315979536131982181292524827057754231409984533205442787681239898845174226347433248781390424039968190383573272761772212680443045768248136214427422690713476400093754470696549607811063218754433814239618196871896813937533266940505142391245607955568164403972836554063569890024177606315064423197310027670792788674984873330987957520400598095662430937433984329016772040652157245408572182822287482973688145717836948909237857059207498716392578808519705275457548665237507487214080950975756470720683548561350814704458260987215655558956565997764976130626571606193311974517868784088319406213967612502909381860171904619910342341736351932643881155096266331913672627138841606403185535934399896280415573260542323187946261120306777760840796581233939686620808553502298604069857203778472523723017822789133831076141467354537633395289229260798551577887232742091036509500009561273708323941184864517594745659562155267469658019571721482758488802853686518350211839582244761155711393908640575553823231578302887539987991633489457692494199325289677040630884050403539567616452915915687767624175643079944157853835802888647737279352856637616721852032703187886284662337075407127712573539272587744024659122589032583143074591229818207802678650216542344698761492200427127724084347090309341919554690799855266561340715090984841843677292959083282128353254825948481861142910021754891936196147740293836139963178715129047326280691398907787788092239194677848385640292202121938650690546822635450010718513776919932419486208342240067295952399706495395195740411893181340469613116166779223637548692301839037090135256277331285897302383011265495759131205644668495674507641162148155791528421072029654913853460047973315251860563446855532079020438534649639639434112599628352104019541058963670843896038190107361874254674540428509487184582005285986484183267080033078445435308170581217509530701958596446215094312197330925117581653840787605045282162003029599038796523091712388642056954690811508808170856288342195526642890535471433033880469918836203673229966988843761489769234328428854340256821970466368749719562036689297614204279996909646431434025254709983018857563689421244007482141405799296255974765690795504794419147776821714524007096985324824001269715498093812660295552210882508756425101361394283495966710504801097922204516393659544146964140241584756685324401553970774853848509312191495618095743061961578344906638222413784327708689699369689988893771507676124048608027320561923009301084999699399135414489686914565643364677882638918753278229781952208046653671007948938593614241172122479171417099722338637695410985791204267404590417449499993190351938176695891121562940646574548686056026738064266580110489954978627459107622509019086366696972061543967599471959871138912365467829068983940237426580521129585430949353119198311710822459746524663573556537974448483794973457541944798822232888777679505683436465080728931922527232100890480903420001031558237706513277871829027575609465699111706462779996632825447658659362643505302283811141992450711469913612393893314555616612591059157402089727235602717677801895001945529025929559829089410765870630664273635541533675566355781471713068065611477098224163644537138229350398864342718229117127057944405263905686805757050827934998253266682387041613619241699345180902835019372785656322028157432623257906765704559033011778564804605820627477403717007326431348045918784614423775986561173691951618818242988301626786335893545015650771310327839053080706228060322079323946416929253223437430376237184199026005372765262117136697311554151779187132826468577723897354775604990879278691244899643702769386681359203585663312901554659626875399767008163863099419387020057133238428474659263234000457161748039744574619510029642077050533163333069818921362598766627110113506995536744935154641458453024814545380404034286231594003306564778820169140045669182087032943247626029269598404472414297124034525063817866345685218033906986876841515981347229813137665882043928725273814714066970718907482570102720691507830806579927101634958440380151358788860146501522967244994487808300867973670605590275752087673811111938603311886739229579120067873502925193417979109202186666927017408163796551813049309284450024556199353314010665042639693425597021340340249469931357850577497443152211358148749260777356645747318877708938409417213373379300390273118032137870937291018366234998346412917154343257541569688923667938607459832518485243667768586778771239137556464631027373840756273617532113099643011252741484201315523316179511069752679693947427762278857090776457859063061103728142112397110139060639517173914868042266803212319170178716619740204549627711783056175517027314427096023432152428098989826551433054797084661855398553215823816698720136412517949988330089939001562092608586734367968515567187233291355961194548966012905706312133580279382188488051394401645261433139877727831142252601097630584065376154255513091586974879409358109450259609485055631470302887240335160408164497530092470897068278049911491027133637524650386857935118268655129720113311161600980227414043023659552656520244119698127824328103299098454855720470746928985302054523700729694654548396487704286632023509994976827277011836847751331275617050938136764817742958800743626175974449772268680599904154647290393613775303161011382583609875615202776788563383365016531053572096196845273277902479313142453594094169939713548126356471558479097870352045242288301915598806047413482305490715596632392134421355749303639924931188499007347804890478902062802660450329956760112254917858149969952631676878252072545425515461976616310169194787940755431393223932160980953337610556982614859426230172119909253797002219827903484490208368482378996944706133149309650183398465044726880426498958254008757763384081652563833388065219107221823168656234765399909419833093910062931225426963214585210447172417800956488445596966539383315587110378308753528234176956854497637475060498772251339642471013282734015648897549347874335707451284680651855096788874927017372120837833243512157383049231603328198521804424852183371895950838240330661593908307056261724418582874050436501073383150455165374154835932166646299597870331338466949333294828305109382290641355325238221725874369916686006413144796510519844030002889532367457255106055869141897751226069362167927354471416257346505071256871032664029234051125427452273252929596993733235165218473813262086703563013410806312680989561535842118553616648495394444467850321009258807308684357254818924769599598183748572417792864256783485750761587171026501220701706187377956977146221540309238535731537126372477528490881275999209608754558987932280370673679897871042440391776977026815252028615153002404099671032501970246270036436739934548556354796834909039950492346349868092749545999493792765970145152652623375854479314756983670332891502092085589891559701856688981881721914946323254556162648916029315703830120881133471915428959773501159740307950404195728032870110136857305994498624221289121109288948638430746732692782916548951308905037792242999040543279873852076417533826005244573160688361674355694563733441230389658698073597844329359336721749314682115448826157830300838253815108709181426244052503504039941792112522836593149952200738925273648876166382524271452714175198634260683122358292190304977212345389518954591607189455024669528818398163482663830669266800265450664425250006215339183246988076041656887335055200152618324102183850289463055292701044922081423900969976638753016258715175649993807054602450594745450376596015272292548482190986177982837732132030545978295898396287645234255639321278390896917823909098464154920176780681774887643004905666007287751406979707052129033006697341766781537390910539017186922447554640105664026368089381567319951948566723623108168257885994260093191062572306052933917848977198249347672126208848065937574579326691064897061846020462966618193097184728216648119892513949170392253577926487029983736911234521783493667404658174832914357987263370641395049723749609343588537242622180583336432185496277776441980428053880323726390337451172749574306308506541932289193398039456047815030861466386450832143581425451866578954461833542444258865600541501450343815899526009801177754329946840005380408875039223228608489809900432356663712507695201451456906027145637895126431481804766948390991907837744607111641693217049964113629965932170330065650306077189330709696880642755219231253948242042808575961323263271032831328519186042083836103555520214309729330634336108418757460907562191439932240347517268547449554183762618575392319452382640861407020055720795562402374821532167349985075234290515522201789821360309142631630414613578531840141598837799271722434304418394919672398105459071316787501256776750420618558679691425056326972909248934053274801132457492822612207797936006782452250730168640747498579167751237916800318023586455870326802801853675938276310896883052094800378635793760479319958466410201660752658256165378485399691334558572595380440627890761379350725108580036443719399342975993155442776362287791681700613644633057802818550467725678174800144347984667604769494670396329121822772100348755235736695308743439013913638313446077063870760092329712034963547117965154792682381065812269392695755627876640954619032404609027579374976652147035266105832381193965686529802457242493112622657318043509789128414722592121771147528828122115412607891385783544426729652013690196880033760194473438208354772803107018554118170473109322897775738757252482039993496602696901149928131784518204691671282985898600206087440394238210192066906494220429883603464135014014870253080728517659719389818796326835781792243564427009253853352091101562384930639162819040390046409649566510520590719273819174061893239763666301601467178990139214429638710878148237323391926716053039700001769248912925393852807411696232657192416171107917776552904435126940769026195753511996468727665178122648672686993890777127126652318630332185929058815481605724770845524278518196042905780134855182728379883430826574500575838414242605097881331093635918393659098907875802271751946375938663300552461336899209848120752774928018284725155128456840633443023427146382362017239312968501539897642968107107187675339572723767629695876573660334434958872820497884800429993531150085163505837798691995539104098420089133635130331750217088359378162493037660891444791721816514394440233668739720225871369378132200167909526021564320774929061240937399606111573203823818682010099173971554597721019944368510286002297828544251080837933238887449381017844122021145887039157873180000469429284498023612240982980152031896367543756086568756218533793295828571419822207723848582552950270662901803080440782204463509761705166535343140624089884760330057383734588827415523863518465620671289867857250710263961278051917886943171261335234899743766749814271662577168953681275853686047036484101050750565174646141913906420868285953439849893264812258912136532105971589288060632264467121594456418809572332150587567049678170663623463355970701868113893153243505759911441831733651460376005008022486590157987667964753920856615721366594140830697502603379574512698448363502000397456265685928387897729318557101555024367353393305638880651482941653738093665923144962960229822005573709550318266657530239174205491346636153230420581917345713179026016994126484114097218660428344755841887763001396425119022046363870239633389813726971083818065882805125872658560572787766039767608063052832652364006032999208707903815420646822150451495505910260002666797621513556905106823408199321692598719372334305193289537140715032835114810716441911718806731611704545876145294377036869318373729807075831864827796358787892897942791262939074851231823439562717737226833541133810739171462099979961566570381699834549066606967525456170793268231470464387678153608835161953913979078034003556005811285175406753590078292501955768971006387050083351238566456231073120936593239045167165758942758766465963471472772909005017395110520951618326296917194705516519481202855832341824401846155466481781544442766224594311690640121792093018160391886403770282606354479138168030888103851203785446190020212044945973965294487710316503567151901814141514090313786544351567330964334772846574975911542633629383120076521564752247733014289852510366208060476437185244403040334603105305536310447720131425986368818373895087602819027087304961220763343145002464069063324385989299200464783856711975939031542352538844369348648052962139432766129620257895625217133649575189194095051756704468400120318353664525714232572782863272022711335520997587883197291697021360504205930816971335087768192374780738114342170555725299822860449357498931966598560236304647768489068545734807974527768682307017527723376297962392692337341457081617092425971701853351645539155788805234458061220848022589121110317379653882984558017518499340661203594907427513736048231830213279115471996489817381556056946953941938745744710513275298337756375027232906982800718299886802150621575928943647434063419963990052052303615476223995555815342915958099630715667606498335668806852097962901447643097354432619637538692420289215231361421177101393142451685840967421941006458823332757341661008597715221914029091187386516358263174637028652921412946045465558087722182506949239302351180625923114224356836232286576886904735790585470778068876122517293478485989702881574071603647746126312158551673110235196908479578759373387558177782779355938237380036520274635645569079529154291343518415659459583593938321384763913846940431299630638820810406246895863672015394919627394163692587104103013875257989550715254596363909315738919065003557842973798311808403458419447591252302693850742538303415174538125994199559973510930674069121606166808935524448621453740302360621118070547173895574977916404113830007851030173323436164024985443152799867319614394124499384658093882864548397370703025788762056158361591558603984966544292922744623293349710094023165191814811768125576008092515873834788053305591578498314781336333581718626567361640404928543126877402378282109899033130485665175531377350601277683847146331978263585401217347399319508568559093773111836453294266794444465952558396022836729630662937967277093593250197876726406349997640004288678602246064721513766580081574519251721174069058532179980785820087691610987277294708304386829566388848472803520064436193034382276977466057465953627505569247771358293296621445253157342065975443164484829298001373321537309752558697853307932477486794027749410593206229877109426085312255026439437842103984706757114979659198672884833069158863545756156723644328543811619086847470126855598267400815626162560495137600795335562519260254422801526326045519180544412246573965950286301042898217884047725008025949974735243066640197290498602000853316585310340807785817145012981591354292155549997797931934113088215844715150227536698837070996161433882657312746347664099823900762548860916628536138671066957142502142369709028276247898964215984145919769517730355170744869582549955607949313161139217492512521283240285100707983910678117638470581956301747487675211364224101528095565098819545297043846524250892740853403917518215216623742853364628128412063266091403433554420265352680006018157409199025975997743461465395898242802178661048376617041407383433968500692825356077172088673527069646266044540568507201252403770254068537445675632315464670159817847444988165155933533176683029092336623605158704848219164836259597595862703034775645664627371991895327019361473657784533191199497050217045185026964672973324088260476244130068597331038971681413114170846946643949350347333218985514542565288907111003768230909421905095413569540907505840643792498775186272921248100460578824832350560995116421814415053864977238953513671354993601345107516974685913119340379611835769208557669051248915551120402294012192903256415190690745102615029424029280715109967409817162157578905277831986666328270280106399917253213067844962295432141430668952754810171068492825838898282203743636531826718535613333336612711307818642470337451202620463283281598480041582130928005012304050786319723905050311647828025635076687735539792048910459128236169882065199827595966542082471462346774663172326555069536851623418836024318130969301960342528748334270297938792885162400174212934413738878930383618698224117377820750171701827396139507063487504466463775206359690460328568980226370199621555724992116062856795007694745930617849466009017393277342730354130460062552116369224657286931325463563527669730311763380842076503203248511089378235250524569732664398706007407393027099896938152066360494019590558137434806789606009852879418693928421222812039444189385364692187226306994783225244531853608857767425267604323552873980013061254685601022626933301615291573646515095147032154555319243100000249855370818819464650355321484973370680054696820822057438155721192118969912069781050922288122435365327539054863603434496181422104870629502669081190940278549131452205749040195491517720194893933970369599268683463013553263527618890854193670097671074658881606835256749796761786258009633542358694977259162078543063316108799824498469621129879933677399224214056356807850674121339875203712942585397211581416897916348989105879440584729107923682924767965390326541724033430408294512882592923936529755109888495982502708396868407483096661439925534354684541132576647954266147564825182440071242975826406481432894972498613541865272807419838100289102430464320876946014852697329217863637048324273718433123726639595127037892324791689503374218476080417102686552133890279764074228467590535032046932380233321508895731208007430932360421871002514000695079242405302907926838245716965742660448418129509848888129246439703576144899927892903794074380241410698864042895430966913955350280110967118265194844759809088212698362828923846239411853900056566290808262212017318913872650043733351411767566995858413409956659428128830525371566909193689462631725495303939165172148439488670597269360480271456421255863535824193929497085023373503274587119442383700864552771119312509280014252086987163321478630724325232253347919305932105729431092435538591657506580981456510173743099133636576587669993857413385404733023864809628993257653836410321373971906147318105325155573554493318546821153974766616305432951207866331595337527756900427499726594898139064476506721717921099576954101188938186108852681375022696354106456173228733502830709255650967863361297293237922176892342474340314845672912566582963387314896983629533692214029250522318600868848342781987608798175378896037924074796487873536405885146920824608034265981387775097044593038204311018786573912564151275183311557224649288802402831862581561905497301238726947698416012499814665290016562443982491780000723127060479776989380265368749152511985029303944926436951481067910463580982117215426533380766049316373534206581515623983601056969155821917092627821742921244053459069678263388111975605632985598992102467787396777381319442589412265461433691508294346795393878056842337761578800839382090080149299075672929737992926124383135282047191874930390778535478474359080033565249433097673538300067172400455190777958156008613596468738909618072409841474496104866829622160554931368682928904675443638070548032475430081436801223692003434945636526194966964987286230810824276169012586203721877821192312756985211646006747829179222793773341197964820433603307183277400480124483284861068040116149071833649836329770711450495964934253318337891902739434739749606633454381805855140175729290582630365499077297427573755929627033957092339561603021760502456269875001294356831162586938064999856944735082373884507709740377545750544981631924052455128037560560348561642653848976378360659645219098481713191722371993035438405990599880654752236609916998209320142050156954498581514301331991193216131452448184835236361645337968251955318372824451436100410125589370941185384712239091628131971260374405987795972509344220491923891564447729312296088914298241575717332228395685129307879791201026804040935978831713303103636094975935147879955861583834327994104864299064842487167986406447193948649183725459545737596248661041656294369876524559257157693051472916611683429558473205652589333574985367444651536251443770676487745363841260666172459284603473526012651399925395024056301973263915763209619990982023476741715821717596386324192395258614768152777155974538956840885589230968018275381997669739122991962254187028920988277149417768513436550617775415186425600696424445565970209726128837065716064771622798107066433765370423774768588641612024582088077458950144068310862685290519972267266565916950812069737978009916682586890889923898509617743348518042003577652785228154596046219161439719768851659256627819686588560016877066066921808777030620210836373958278209350592213967317527454146745994228508815218032771103149471552431603443543126604971102469557603590506197690374959738022841306597111521157306002980972258246032397715542994312724616799644457902795459829690190013460788015280459773903696031606448664668494397213979441669992329680244768865931705340437191254070729613347831996003380647662394338007867132372586868461851863480136191595236925436058815967835772293919259872490027390381290508832979463177031809964028082037148815397991605079068684620006938775531422536312811079567787975313960878384800562728540634449810432979164587784397803543711634044298174756225790372273852060836346705732196028295213274977798784369914773373529806988927789676442382969803082812756968148226499290751230143156882212415722301983484739622499327193320953251738687486630327078065500015197931004990467740806286524710770196048740584788947054597987324728672901357924219195411531281035268104152328757326325173960721615937670356577224770422634205438929603596204773031662758733202352580199323097307342686659201342108073085669582120624797456113153536934812187316811706955477846344581889362633945448599721845061738812459515288807685984915870911333130955756742767822620703750359637870644579483057088776920009035925529289538961172039151982723716364074703911388048178146061737465015060056320444229418321496939398721303099267292089873472960663489678850478678682199810527708870353501794712769848519553513264049698980688535260903274087260068973676880202421350439610217300408651000869982833152470514129956524383238151448273309431667560349272652639316410511988828752152985600263549785120231488296828370181053957156273647702546239927917371962015242524994430580909228243512699660159148159189545750600436380902899090729102425752788167999642679340721856823484157904017620648228329849525233555816474628199233031259348069403352143944707892212275857821486592323927504026035131401403548352393350314838084101601436612866974763283447292281925560486226247977624542552825355748677952499467256581839703405146431830853293930104161212049075962701362194788461401119387059976477895137614901242093066524684925537484674427016163696762768926825486575622308584494385987411914853051131541415933150372585170037562839443670307087010574954964056609253549243079341201424141818363658746677468852492585871198166155001871670012945388574923143970115176502305756767596646845857971993094216030047200130265015486745822536402759184305074004915290264607798144861209513140052125990040876031400174795742575795569374806455887586647404937992245507299469561351913395776078314829390303400618103540735644850861986589516662735746206741668461431163811042233066967993422376614170137807258944746807193181141137827855640379878752097151492181596216995995167900536425680492238430818175169639436504591233005197036808679628973736256849379956543007943862829482188305565480197039324839869434934615933631670581935099320735987951937548260160601303385668813193474106894937259295558460406269808583140719305081550216788154529402997704931449247512321073943883037164802386924299589899586793685351043418363603456461507320643642040640110190992606566806717748159890968673904702841649629420081632663317830186064665076542928649592708041330710239068499528204566207404338046731222480505782372753411781992369318127181250891038094745284612914378092379377216550650054755905848366382389474784241742422508491288864514157886741106413252460537238761583983492386872843147772369636486486689581287557201760515196222741296958975458765263499633909901294870027637253047887297141810520088463168362148697953253762019848249329133388565896183997737820784840570505692144144495211485580831043880437935089520501403285002234969182513310072757673244903075962622274159230715965744089412816962479781210764556527778800057189299822529345146631798050703204124143026363866033002334102645363008768283229696167691272194079606854067796321637680977512781502405086883181500421471220990906673411406303456855602311856654695395614798445285539611565583350734397320377488121626003153791029107914711183014455957312458900347511041723326720856271349512660621639536641563940616366580022475640627101938515460759636368182126760085280103191437930834111558219477033245534494426241104844785363869785664951898657564745201126927508217660128645669311528321226107931361714940876065798955998938797844455859257965808563104038399969376267625448702411140385679185997603563908033831855413891528577304610112420186639781635660714038413589900548244920443828042487391427314765602165904616294962809463689795902220458258842858977584129301883845103701022032374203612595354827673657222317860306065401214438843937585446608112413280800843095398346679553198336870812303823381337933594367676019960942918808696660434511418486432587565880461869983563720355815339960286298694002128338501572516412842701074615035857263004582875427736534986562768556616760921799309018270687412237055312042163054417018648208174254993458197835799143641891774068812367977432414306612796463153031261504771962773235511226316265078951201757960935039233430571709586939289442980777888684544893770567899817135825674781849428397850673397365647545915178312548649796568992294184819858426916194613185979751958871985223297445017309649827521306864732928179958809720506758004354468495007413315668322437744232905263648427579760353969608576133735343713882629442225553167136835081900291753061624521975260866829621815200794033784140204844401550684385009601567356230770598304273776976732437556082122415847184423099370143468406641490799948036860471410638117948933865084068854321084467376562616368243378358668703413078990329718353072908497133002935863748877043167499863485038284592288283675090606344572457691937334417444946755568057801196454617385026416319243406486844799655767768303545742294866371427252037632006534999224656709949644285406039278210206921366134179080730817515006717776835482254680741110040518734768932721457431117317297503588182392313571360323758842902955320050367679405677000849424267416575612164004205791993805954314938221864487154614524314369174078862617616978809509505306747966458696328386848658761094356008166121363354708819419344944882219535940000491412576592604228475733859004272227654463791947055665378323747455470873514426125594330997487375641787282759551847185974756585360104272944025964106002544655087468394650823779443262075633861158272498085839646013780600687092803272917300489093466753526172765433061518057175725549722641084621113127140630972577176514449013412247216150605808512187094463912735995063384973641089010197938265154737793706563569782242715563753888559054752825036391000445031719697746909199776628952498387101130460844951956440228272242565841005310896324780533809130457298803400879359080993323962990546494828234198565560480019519142443194648188649243015617457092301522905727847829119401456631701506746173924958194026121456091242013741164476778061055639396688474638006337156721187193963101938326830867789977526711215957140029078421132462685233499503436299055886722923367524444336731455583423996473592748282397368698234476917224534269428163422389847790445211512640681299301397654885701741153472807431225021238704927247816289362577471167614938020631839984881070778422197547549469349639853380069632838000854290678791635332543225789670576872860177366529655791036254957752749111399464731315058612785845930760419580447500914684413875011466986678454630126241532240367281340708318788676630464790807057401429313434222255992428764770392670983550014668206789383799450344650467182956481223115311485269556879967128793734180416383840781776009726138538837170158740658581586105049124932357381343538017386631596055118806026085780197573696450282090217999292613759312980176417079607600926251925587223073845307763869515870184873540622193274507628068749482886618627757378458245704392382002913839135201569639975902672719563529368950069177842141185837110412747943301981608968602863885925759655451404632711591421545802281762916724301354056497852873576246598148676905865121381494678409241878290438707860211921097469829054654718716885927389488522039427615740150809616746019437944743674781205677815364798024480820477516366206129744673861621846829492755133983549944844846069044314443443017136801346103167062352666697395361442432257112205035081077184848249312289766265676510047051796836537367891072575190967765889638084012374389792401389110458832161348508055963946829386647828011299834404100220645940373537679204803606678651286864170701186258847974641959279410309364523087827967561979864434633420226074764230753020140094753485115455600921701560822213432185487999146329611919888104645715542723903679125133467227467530548287808383072157117065154325332778969302672361491126526297672695667820758328391336160576395342032666659676657342586089440707874031109291265942620562529165106805221210366356841279258954409790231571401262730153849572452850331935741815545365091950238238496284494067551656980903367794402879023591408055764515457975475922433599628239660705127457772841742578849704166316974723454316893202260703496425785172821510749483601901576256013708976541921116659807076828819412340302004598611484137573852197494008218447605724176647012449246944710005440504851599623471334466175494626944707673205648559828096600860946097967018515007568570086100480108688215260883366939407501622791103612845321777183340032217929679101715994683163941879691794292518794264536995022358630891723067100276285856495605504826165069982664175270068720575814510693681398352876778123316223090849247112708803848507844106356299438606648957223822860842784490777340930258821940310499714983010022867349681332498606708928259614360422725604126530768978139213915614182466317201183834623778909947545800263488438142566870280830517250657126250221659553968699481516121816517911823948727811349175813580637041239394034217938524182688092740608243269511842915384952436936958744117613666440120436900425258925932551110610295957535080978212358683888011388137022134813968365912169471512368463488943421973165791394078488779219517978062154806679618449454673928852111966734041151769285844393729765169353225814679841285085232225476921648038030238057115120628804733506804755898572908138440466117556503257744602354412631781040941792118815210071982048538655650094778077006574611231741688164415844109454283507640715115532736774474606194396672692711702712736499778271768128071816334093719671025993570160448721149652114126472231163471537470551470536716630020900490556891977853485876637533500723836335206154515644442699134396129268772710974354160086817517229404318948768494244131770512377722373066488776946341061053075220837558940545529621913690800851808923388040826149453080490785743441483032171178338503747288943497247895086091771279459435680275528002231574263045745427510042069348678991278803839011135917075423627356603296279081513222365109533998826051596146162146941857461018084553684350707374363332798174811019145056647471503802031851732673658855261109579585142328367540999863134375086893960855272039744971004733146214410842009384099328341968598614407077390548477335167750072987854762202948566746994441725401158125393073642254991720924345219595552274191964490262463818417874211695644588083387136426593767594386288398521021525741003310003505233324143361084922374276962049547214701257530727276781402909508401097504595421591664127716209400079383719794850129838721100091603407680596053194789965457912677354535673689781767223091927222078098756858915419696714899171606930927216344470895009131565364809463151739328299459813308986615628380755259676362753586514714548532959590281527431461060663783527302873141243660811006429895507129329162937355061600623569305894193510805848075666149002768407372613681392236010026835750825399781009040154386156180317615775515355902058950500690312119373338814170180605732432768833636882773608336121823031589749598365370047253546113069559589814061338919203431382436515220400932820181874957182083871822817464378298991656792433279506804699869141354249904211376408631983782432352976732751869081940705974902090477638862863667677245570402771952072677221373309204658327954029104201959112324295423644842871368458352162596953176841943158137628067441622780128564205941802106645724034438483164725885342895788541872613866121470692769624666340395679111236835460397929500327437209087731899366918906990137461901479805146081066188536858965204255578211983978845331552958790616188456050625753748459177476885315647989749570526440541756242511795305704134057306503092545597046218350366184638780995848418146090622777459172703151090262493557668980730375980557029183377200813231899497880938826379829081853574479258298666139510450859239641220648530153836629604533359725947659421709084043336075693144208048402459952698470325711378626510550835589499068139599031650359502749870954895088090632318302108219059683357707060725974038228910366821678033494416162518668981694963862549777608533802968427138911548796752021538244586136981079969763128838812015723522418359142883002775171971025664362476151661883154764944591502662561895739362687370557766725457599352074849266827253029169315035073191603239478365548465908791772937534785026117930392068117476725999286560921985038607063237160215761782869348115431869533872202776466018211106640764851977611832538076544787344755754362774349846372215800455998359518437773542206228780455627564976087213331457288605963977226584935768783096350459545099939295473837403812419156793797820405817615157745931529442187770155109590157457250640555729221802233446356053505459217925669604357819494754614035724588270807961258272648536271026333713277631227307932101186411960901098025012912695388469257412041879473163675866770235252071414327923773532041784571254038222288705590920683588357042604167405256108515738805433389834665787943068312009961362978853533729264404294286627563188162546391348987046026059777234640145878863382801703193205781339681398008063986253329747736620858546227193578837233040141289583206017565298260582915270500348322414810851874385441757872905414087221939239974506933104097381859956038868912802329969502361157966951490975889868482234125652839702463406874063835672761422113780701965005679651553233634899716679840726367472229979460848487657772924702746921918350725678646248445009657556009160438937999054479270937450576838512602954827029437170416822654439006786789155841933347765302050567467188724096023193399772546159548540176900294406786768787349689364649021771995826581446775242298627707819882374793041062108230109567260128578642693988369444262386986573567629208487012858310815942798184659182897918363131186578803522432217375573518946908668974054891355433900295266628856778496119126984270753120783734105308075731919474728899047223972433471257123467216449018564508181756037269174620084317531982061771985447254124144054089835644276940647931168795846539256777273990597970141023645106698550923707206951225841719022025833105601000512741812522763599954358891561052464466255094521188849214654170806310622408647831943192327783656219491548397748070067453428511932204139009983969933660309627056357313589980407252675837659058845149634684509106536771834092900410641020226881758213242425823026904789837555844589197525133520413308940717597836001697812937748598902530426612904771705073571945961749942744260319858414088395842072319772373443622684961490579508826774589522298997301934525810593243501142953024384702499252805421595559101819309104211307962455498749283043870103922813051607567488688586710301326776326375730611649097035973302851469156467947693399895866914152282454041489038280314745792205225873952665426755381861113526557624924667455766914383512833275685379341998901067406673478795422173996603605659642159953958413810583170873266164624949828464023393903805718930419540516569578848190025450043318658131854488865946386018521762121903908552103069556087512963515239702089449420624256187113683811933386006810558784739690395258235520066529093446015825887044973538162377509257981240257638743537107266683096485437180738275142909661430373131477504119617440743645742869900314174654130811719970098175106186827998677352538261415867051888987314815326878794909373119075155245450882362143213712426625184156067373148804044914982394185859959490244947188306561556633380649314161177547946489459558255967128221805946964034709334844213665530225045957728675897012084030936321139370770696444856486815686456443555966624424688469985036346472211441203684173604724002139533619966498341497617804982795098506426598292974289355646703821803544328420591015011243486335358183896212636816221693845125107974054339711759823006856334908184027317768221643553530528604765084625947824057182689097579359447125618715599012136208735934841275960985861072682995941097477497163404804253296706993820088104454029416920255750080028673624393788413310699365499350801439103828887673824178892265485273519288667093622153784628526956963195089379163377991168835061940238512556599385829567585093783146302179055160826148943240664288293283759036448419524473165042855296544899102069408153877714295783203904625607889800011426925293218323116622944917186598792872318947790545039393590324240953082368769611506148457671601193049093412973601473389287412398088286596700289594693622768981122114938171250769600735697237573434126495662717071431492829648292857539344475389987523147961047983998066675976733333055081619042915477270620294655075099455588618412813325245974982122766875557553690618664509660175386809095840763114413407371755840127814873290940999232936945725878333804607407691634727372678983126259528669339107241668793802110417794806714643665321331582271984626634293539259703721042547121260418584283873867653188718302103203126155236480490142106145579516749275895891735056001391432655600268426966429803503822087396518560999652661033140687839701427630077990790817962064731342622891487935026932713453478136865745243831837681191276522447959499532960288671865065737306027548648744609018428219988374853729264337284974125600686931219618902631472454639726007329126235189878190183815893150344475082772132678996802672608226728004982436647646047850496100932134842055979028748061689539435843711036551633879454833437045615962091085194893711627370060625804481601607137051905581206403267521403101786672665452784744333766664972666194547622922732745214200349747561371769407658613211695568668763896941387378474397413635072671616239768950992499823482214362824502104664286580855354644244392104488778835000572838116115513150196627584444995910683909062785298442808266917028156720812482156839324576266304130250953679085362867668555157139913319803556843228045770128553691721516314697842753954087876619808395090423337039269050755278637067124311064813797729932406114910497262314988173258678592956315482315738287529705638949190121890016837667394326261312689580958027164825126347379309645868759301128137427484059142471151382564831284705984647774859743389844476516497720379455806267224485605469119628173860199882500244777760523040116797806815631036998678562273493447551754589019491579045260302458605433113428680685502721181030031995089988861354712239418338013677465908714058679684355952835437385810108252210131196870680256090134678156090621413680094774906528400971210097589967739338824073079455561209138287241680975640112772366871686081317658320449497755095585347855902609357187677119486187742086336051611380585699108780380026839557365194552799826269624115637453567926355406493807738176840515803040506645717331250689966109450081805970738044014431008983924862846475983445956108163655971727524323948596402990980437572192229510697126294024386298749545371101088223673815411183534655163491142590711701058472189773720938432881078429929327253001080951219036088908415907777687660287426638569259485750509373962774775830895050716132289645314224950177862669664158492117327288969096167617483645574477263265073979250719714598499417096448587229413625084008523168770369125355355149348552759126873623893743419276555863111025117405155595146963838580883476754501837796351123616046070265626480591401205272805789220016321298723092914325467202731941695891758505401068033936282054644358609129251758156222141937520374758651778549302872210508635284928032339200350403711825184822899656900332925834494408596771936205304721001834516033456814572146500565698123088314130184351685885630545976927168896374816486762197553830103275569666191104717080566548944359423415070517256378921480853799737521740605368367335478930053234095724377655136757242905732933831547608345268295302467724214247645899440864712122526839262193031418500889135010479300039814841230691454592524223896428832668493687993650219855271816161655837488831498070241050632476116471507813170210558894732844463858872602993074003605096921227436847290896052553310721525662916547246951365079434329926171835718358648622050950443111890282079147626151045974166663068564907566832528878615562417762193310493895795915652561069209577548613163421520936094423687283319415094577056762090193036040458259435245114670938391442379863584110707505257667072336065124159031745211734421147936073800329934022717363245025918463107126115283566285979547799962687536185758446520685162483372747794667342899682976569312609986173510472985784128496424139499492074031501822864851544339018088156797580833788404471457118321845773081017255217420771096995782361862629861046480748957494808189735409755551729042165090247041998819861925999686141157979059933649471531704427227978132733523355781964307659320425962265881342345732007133734177209324678853639252450326837248456308728380276931329762318448127552443381945228631911158197318447290205734522759484392329900551098222240505532379796136729090491951813515901865679276216989793239380105991911657794749025395714991791575371644653461359305964884115195499997520116071225076151466074038093145022585145506622992996961916322871632736065141886405946775460064658551754195655542972178970321522049079665804123474909053620633149437379165166951478226912975683976741687794546161151357583544025780305429757421271926615061110038945558264313346329063179296055735087272020842231125293498538701135980296907926903264834789349596884949264165566512786742110892931112926026999081908466729731334857363196029117243921519889971158283274931934194019146012341006542142617858926638033032886352240165792037156568297989578012815244752032833921468507064122335523125579018804494551942032854383364030245789077076347578188186425764902993787663484566078321489934449782292362765963735210548996879915616170221155197435803744074688860044811372458264424203223551831916193743634912960119099488953406767816635569045857575823889596005318254480847104590010899139227693189962590779116432841754048246147886992042099952757943095727784927185994245018295226112847307810504510631761663994049442742193802763882528021328230687131566618796339743295201537998673549580494425736326195113501411582584488645573949000437217782030414447754493350514181784234958654094929404159484950701620130363307835896567991300472064711884551180792456937717578202972881624214012209287012938217660158576204262131253256661643129437046191224598393823671903110396285876101086047221671062980369563826437851278589102316184354426502934860493262583095924058751466771611606934389932819345345753938381305271106080130116310844773297674797587945587886849864365070084748101529534124522594732294261594304407541488655796553190387176199503986030670352240362259514123301394289213200766095643000474775712521242886793014383619760305189368768645184069264024153074463274571122467386129966146588409512946789303075849039570759642322939299524562432455558192600696083415237342466230854118826352769910893537984066711878883491385740886611920173510239775243565327398464087876847748716612035285576520779734746516600497108026951972548001313607557673806696483939140181529631316745478832180711747671365701913808195346367153843361101760277515668061296743258754067605765850681812167060738647316863234195167080833644712573396360957801305798572546055122601145540485073188072902693306774787514290198602376309212433352383907192303335310173689510694088344793503937821611303988975798079589234741529274994132281132056189696768211034565999942244613942045680756496957183168638822790222748033443845742784846008690137793670675692468101450523794216733915567834729442209034329723078765314914190530073243750402693517901011079528391243308170818221171927181945152209698196694409794639896155918186110778581836398961542810736930943227578259622818046181017445777706417411786710266833001183502858709036690180399100648237711772071251919506520663696782637270284792452461016474117082931665619350863851351653380889263397994144134224856491232764039823224467560336288100824194638158067702461052055838417675786089372763365324327291712176835049999464871326257842071377110008321538236103514044742569375296731255938087820821258419851448746317271867508086350413146631977094679486438112504412988889411267301819329538092609588640857149170255924215033380387022079964957875720344192405084175943235771611117425854933831060874914486191087954390964417943074004339148694155937742901482964952006044889180240530533634856172677507977548349413549321386649210560526396670938839693164752009513682776185576592109493158411263428252325978139328388424017693176988194715973440853535526064314496367587706268679521534632144140807545189823159014792158433841142403086609017978170648822384972951081084012613691149255211988926005168853458092273688662058440563186559562602397678400432381675295308583438215637431511542857416842834653838406228556387726276364101782425018928166724014614706653943301356894079427995108918594487780786266331839304912072499362215648526797558381676992421526900344181434933811464253918187081190552333744864193829797665953598589680282105836170257582033917446017268007117596831510432920353059668079810259330923792358567799283441149611387431507865641670189022414376845366122734087993832362781396605413256725408945652095334814335249739961110793147263864370115714273794956776747012630698493638596068761161745836107788850682710367825976646998785321739154458765187074898914261387954972528677752418723823088144856692473540130280009945087563958153574234839786723261786093322507927851975306945497096724335089215627596373822826649323558636888538966185545351320892104323672863867606887683039443886604608053083366104067584925030812613182990677438313042086187656001228895780234577313744020331058432032891424557567715726651837480178836655177012570512567039318200832492415921084488657000765139858600637371749634040502331587491406544408803615356626574151096736093943549308214995217304165275914427481690891750608457232251738453637218729614714142821423948993246188038793314178885627354123532481635495953038449455906701063112253739345935217237049220107598061402450019830557558190352781744936640920204734687050463826066011752345534604425306597434905859630022478880254593798858784971851918372716090882521681206886972813354173754395000143597486326670110978543798149570989308518963081577629500596974949994372340079701302508552741929806266131719815309092184269816153923413867786538582345935341381435482106912078269196272676347028588756097596761711096694501542728536783422670716321212937498890002263258808381369390845856621559206804540413689620356523107433603827902959661239905015887513005088000041184477633588834735278232385796343462252733207156493633571549278740439891311744118404293601636143749212341890381460092431987477606143388413601291933680779577584747848253319766092448412483060491517865054513099445150843270399033689411222312444186567154571937595358915028737984601270363243144868565115624830562717792104581583993480365653723207580759152122032562878938388356381369849737418029167842581331000641536868744473427505221478050927551181808435692122689279726369787941430965818761849076120840877308953988489476393792048149347799375829665720946896179551138671029981018824144947198369107025055995837884458652807867242319009788766133428864637399265343454596226100513670233007753727437701359257176266842565190953958121398062988069632551907636766751559858376920311231515063641491610091233138641567942712020458889865866510028254988960305418624654457922742846011481873399151343293099979055789658250029943563909246139600225069430941925160873094146586644586900286840287921709251085732971952034216178019733197698108681563555699570690763583122210344686178240914076755803504098668673661451268932064258692369653365395134794754048749667901467140046994567877302172438926013532100822761218799915692447981591040567474896890314567843261558196581893800506717098877828812201932440771277278575431526953487585605357386723081633440776740922575770851683683120721834715316767385983542327169885846727828522430748200818492565947342425329093825689668391787747872029349342959434467006697604992467353930797759216939246804015948772682075115787692852067805117777231880196448793305270023816631428357591673852201404817826540787752568295701932687635557650176797330849854301726670272942673174375222863867850580139058500847572356409926533177256904906760936242178580455105761325218930229944020831698216248556091647923359125433865348385551464627596203157716452204579304642112845761886738044277482172806033503128417138722868585501499250136976046857362146290986744365715859844724077409906339371961926211464988291011084457530267479047557206486349646993195409365875999506762240600932929308197722944147769398821365064357728077638632327735142461646831295986327268981474851249449139259395565342200542069415618278083773180818736216694305620183199665696188513402415139023892522363884859785641342548883094064883556666961432290058385821641337141028407037231809920643838608529407489499483166216316359822657085265127732654339451852666654321183910517914526710380424305736343415829938991678231075950717975798150208029414366269376024513464428608087310150553058887410666653437385267365126207631280460396824573797975316524597558960411661041400364753994031717261330826482560348732800837491841265518983771429708442559865371871641311002142013389205660060784745878781431347594580992860082607894127557689757991169271351270108708181534093014800892465237900009421318278420165150181144914696912488831809230240183740765439807893887544259613581696095593002153134884010604823001751229997850830784750614288585294959967374108553566384064358883976628433136314835409681689719316972485393574621734183683467203679157941192172438501295029258627649733071517129608432234661457152761734223756446641069607132328700666349324610266433353772409692284123554030030922200541145120444780637705637103619932586692256032563942072671645960350005556930000297882018718141501260888201501160538119752846176291009353477651719347758986811057949983360956750669584037404218178824849710241500746870696579486314656249045986144966980375798491646163518314833291039674694028534432363815310893133789287696310625263413767996283670065416705126022857025563890223811820813888540459933315609023827177567217632393289121384416975722588374752580290588419894848600764780356650471477077324010060123497215757560181979885653353050292194748675979763208034078035109983007356613524511838998853464231401699018361984320424471540881120745678918022208471125064476378389698552558039223527239454220783640380520588102525979272419012957708208893051756473782847385692221142453714484634916432888777406880964339607960404937305945291261347936426611610100500859916226290417236290645748206448261613733272334441008327734171061977079934857342362258132336728800342850742485684478314092692926200302276183394631700759522935073389488940050134691892108258675199732458978074565958811268670396852114157017836667502888572130081536161580609992937414937661769725998886246927444107527276446213670827072150320797941265336787946155218635993274750674293980531859993497989562402395237999110699651623899627105199775432155194388667096430074460964846137427784594548629252083201040834951664831487534527658894059500236737870501509496713509612248261416966069539178140737993381271291133562073067184553491405306246957750434693082308366536273294576780223979817907696822040454319838041010337918225070913782288918589911359458468844108355670128029978572240212463543659043530575478700988699154035806737803038158200463313712824654718729157420322737972373734419239213042863623085986346957163686453917452833010507701521840860682330911017209222944398948670021372823169280681492086389604776534146693649739090303864039717028827629175587172764522067068072817094862052203054508437683145935438011214862684798647046820808241747587768120157550384095635659293262811191955163989613501832060114303636257434355275108405184015210518378259628710753269235170024162223102951185036266477193324291552516462601094980101435658161510658210399728986957742268851127391871989527869956921191918397433392848596247740842650040283814296968543969425350599163959638155111171428173425238389172249662523839612873276383854717514192227410107406319033891264598453192494967052349465281424897674223275393836904020918869724411456124580014747529978335090305562555842721004031999634093485268005064286321130353630311751425972810747564095019619892480489712482702326982146794220489518468677835653030483770226891795783462840834257460543555762121426601535433598517914121749960090555387533374276288622678074053743197818058231680076571745270840980114481215470721807339274888558118464615562376324315368003287187613219164307072605805893229393847635628075383484779089566233347640873888396424916527533482219200288609035770077051588180514456913423431167268390502843578546778288223491386074072789888635687323982225576556253769591433619157082713609730803572362072705515234578764342286237652333932779620093496940852621195322306553794165459434038517435612916049403003344926039255036736735563128550236310339648500076227898214431848714013575377120869521375555679485017387739046359741527486019527287160810282575782714827712781862249258951819057849434487932097848049378071766142197252019003264082371026714911788395615029964464640343378567206594210186543148706746143932634506979269183288250387344039306730413635549027384125947914439068477260343390750110120195336225170592602730605119210713629673384471061873467186902147628640142806736291741707154964867332988239699783444909115390700518020255833422181824399789597965116406810331318380336377719169048792898715787926109171270634518354587022072761424428240174274193724150543507282763512619302114702460205529525131595905764114278822777123562350556592014253384347126068973001275159006456441840455048800793027930939345052818034454680316940294997276866190114385245849039114525259854407926926727338835343551989328435988957200246920665679101369031773355261533963566989907223067508801706720875486472326165662674532244220948540187463238420641148104896605363326071845887155868558179838024459909052919489756858016919686884184034404742967715764433171342970305432956354946091845381523231956281356398512731092533328603127299968150024510930337139978602473739181400629331110670185702511561544197394885376588002660356926730048965144161796971819257920453858805496407204422223383809610207960830980531518369112252807702656374406932423335859739010853514144317400425832211253489946512878055857998089184940546375960335741111904550063823194251652763906792695774518219539483140910657890633409509237748795544576250607167250799985030132324640849276826813504214793749045378286171963504717609599745270110856172568294520017691981726444497176771951888509408014498262582487534536357795938561048788472811341815234276890035964266024809398048789618414191272213647958220051643064949329251226287182664112049562717345954816655322095482561263848315916573309530827552099557142938193270896576295682049280744177532334512476772058714854736597383490562204552284696597660835048878565897494191910569638029760838316619033220308989702650463494231469063105400646851862724193439922844497679108313768936324063230478754663029211517736325829065535018270828280138061942164496062902928949196409542577068827781522717816543579119896061873971669397580807733907278469771662218983397424155572489990426881854077402740276165116173968045258419957613484043252787817219521348329130104992871101475485334221930333860554947786529901218257961489107268254919712297450789173355834538506517764467771099391321921838404675532587673032019662237123541939488219826415833465618229563114233304964633748756371488454079037773193634838238849291322342915833906437626266100050119885896867255177987541363676223948851107193874078842153410881247902513034992546360569906616648660128864733265135957475802854181510419152606596136554384175729386576574660654926519352952601950694364544312421451047343291523186124676981599547282702170781277850335425384543899401729117461439927600802787107810163189948487302971485527763764106128327523731665415481169465050122336407960771064376900892796530797014575629753231922904462652508632643622562369857037120089132037895189972769875514831829852241732030163175918413781412726085578528203495172756754061417249604912736169982867167059624474115571907581260171741974841805022982963443036348073200580763515451824213104985683759100426691231527979986613941968257705712317093822511098971605909069959441549076643010843324758762029607580979086029498015663463231739998978769276947993222443756662910730672881844952347340040741855297129683608388653019282461349531022656125079128322718578236342495252187987322415778569150260351035691796665506589492706149721192653893165529849486402088750444621591036903568782127068014471230741610582751479155364092170627731687194587900653347767573706077185239787434864249809725186630782035694943782232003033626346828577624103942916449998420087583402967801417318922607464403556619404885336601583095324979804720049365169780481392909763728826561384966678854759409854580598712062396378331289346035245503967464458821343287070977393489515418808863484080571469500133954161714755997946741997964388384925051641966175391520447236370312964445065142566746294470173767363747587086853800056246806502490396151911643424292185917548643130341571550994641400251588836996038109132135105622491794361617602521955562376697114057762511532266927430855473078882042016553260711614742000578600257708408749387961597721014092079558369038788582641288600109394683573064849224692107386255388002829508337315020095375810723344113360107934185312640499370041198556359398097536544877858504428726111498390542529184780461230267522680824356253385483519198218532880850011067049375778464353823794049358686014252742602091405412544315052670399132430978802987614858461846476476004240149151159219831104129741805658785884677768414949854656980516781292573125331733506725413224645991723819884824950235899492165487096117838540500371668607182454363284766154743553117794808136411554928478941054890869741877560159991617562798835644917124775916145508792239474281783532959474570104105251510754067335257185314454374893808636839773066138357359232459738515073555043402574177357049487603324024330729054977823469307833669098363164523188247877996027083016599090659926356446115444078325477758179480447721292414819738284819316517241022864418061855452361521908805135148736213339391081764149708337997410859380972554645442082430769284027337361132776453040878869549063563052414654378012621163923217613376695088037673482062018110189881621274367429874626315157508059181061700737305698325057278419000755812576671152432849418383900139076569271375469117670744948205490259841886996130246023088345007421813811499584953039494484986289391052864859365798965987569625679869705917038747743426851210957805959103264656052614098148113483106652745745818916571020263593482048463662181708409040644684136220278043285809897134694295159234373970742749580386880125193384621096453820828892919563989750594894822089196067028292432614702105813066996355567834347666147407668171709916857005055242548813193371067798124178321477053649243063262106701937660306439017182790370016220988780762311867626552093718968708475623487301347866910474387471736350767216221119739305314731653272776712309013990981365819547462513599748982678392968292024110817145829347558746293699352618472597551217751846016709642169015962068557372216657256341715235217148283363830522132007077343177244487730307482782487023776288718798646122961857740066189951169639185210324431182775732096736995598099492648161215043399163662191310675958826748390551494536496286582098795032473982458303472834928559528663803933695011730668595644048523717720336689985156009028368911679148956300273081137115907380598669961865410164442265789969561493497666438260168141989698037374443400663378173745923245362600956595105806242910138910416614654389029319322107059261015146482731918091455283433794079906443367254994184775134319136129494503731480818901802271872120546815117589317278900763835987723229971857908166842331854530174343462936189321499197254711091797047942402102219966878500955232275185662297306782173854911874320019071931919803605768602515495253504831148566944762369260592315829474201840781654680885628474507636417853680776289613658974560902409388903429472453198148750888187634779642398623912710615169303847463553518794327984199328534896657311054877094739603241935811684919383547309050052537349889708570822581374300234192003365194201311855319477551623284682295349134016092800273454489298918250498324097009879694138938852082143237233733762040324981920824808263455385013975798844300140758811503710273832986575632917105828189947924046074628061729135387835007340362992571991147391410108244965836285796070245116409843962232179202464506581285541182101379883004863799987795817902518221982228973512512800219989204473348390704596061401314832125393947735026720900520002033326560005936157277152662331630966938524679057120552156733487264138079060424024851945348067224656858632810369641223814339942896218784051558104953347344123883565759409218754240694282543374854474409846025459129696886241322741801463332088077762887523549335388289780920180796884831041129700386270012275984856291567349415455552169125599636342243024281820936718617218160941519827970717300310352321270900120541312699528992979473366054245465908312071692574726589000875303831496226958167928519234335145899540531239546882678887612305728198955765321811467815651990845005648382816124824098509909604905572592037772947298629917470565262178475056330584876241769140365951994698237366566708918759636317757114065455882586678573350591704530818961927512324845660631485843638158880246505984227025674414318335736234551180929575983813018288336681920166954207435409824813260944918418146251255239637360074453669280557005003905882302281949898059009857109873373030352022516327456627661636512820037438136231102064007216313469807916415549838035709081182091369766723222708911217910545515452528928259220000658755305202089029160652219467926116119787209582713972908283689663271351339102029778883753207030217309260427208110384345275812934724505609188496556348888585639544829068016616184509083001019092560050515694542426961310151921879296748671943573742116232367438578407454435131559181642309810326069721213650198901666319825168920323655164283219736716989902143418200225472469742167137755294956460252510652924108975326025867859869342818348580840747978142727906417947941064579558477926520662973869466854384778102197574004358288528661410326713903810387418512166976803335341014942006769831603055092459296348396399781175621024491233426514029275661917238580650361408196554337409185004580809015450860062950236195870949284043781149232659875764799631165572127318295646768745073058229951468168170437729695560952434385571760491966566881242209907128177522650998693931670047607074966426523910003565913133732945477699916076690703352948623332201789428243297166066763821874953981358566935962551108878540295077699257464224664147472385771839255761046901452649317511213511660384411910124898524841302195240465839340802682379921502273173654711641338857745342423069947031407620523490777313179462330374643478659847504964643824929828065161456891736027433736492133123853980569567791314823950135218722946125322864886482755919820494824278651287244494716067708685386843552989024789323669319430643492117592417204877466972192959525457551972656088141833047990982117674647419138899153325643138175413149606809083016651397043385602024994476994320540576459040739844591904884566617516158173803777968270495967400121091458914636201721559930236065528768447118380252161653968537862702536729156905225209100342130995272463699079457956159955023390238354217172885276950306255982974837396669425087818792461831519000044047376707922224627156996844328670102898973607888070307908091036740941511653043859752882692815450244478359640559850924269844044350327378913082814885622108636198263331024958517945722947659872351590863122362448740372428603218138725885506592302662442346169543386865945205720004344640745642603100621873145404849006920863530835320270782227392479123201683716537544607360463352949707584135110182253086408702041407799118775966427031643540448532497845981312254847092770287518728670706102651930565843863766583860163933877771512904008025439472926550984026129672615567679646614551315542869038948059676492132330748450765707985323831486891134901388526631337109937275316485243086748234071594560295644214883037116526282758577227576500737460258285385829503178806892724403663737576334606749975739565023660130671993153687449480992859886048701391040573722581983117601000740123251531143820806668655422108970961654987005784330525789328217428311084107796780379051503297212108699232244318764299513852898100585338022456343339943439371863739308772559121646797866009481096618105742276937969189907256386730252767069336065901507537816049220964369642751224416485513622412990908022446578338337956847288445620171299228035832991852593354704259598126709156761785033020271545450267054099083444965920927036757072176903326118926362786445723170832502178510518679838148431370730466271013652937002028125441259765253983717573905371066934323972263984571006917995272408591644805620714792135043719481200837680598944075087481855898312298796082471449291013702626750645881737759951968581673520470419118448654610759272856400167503492217310421966436260933731290134770454576638194324293978562070460311744434748001953875451317017470914848093311002821041687580703158355298754017808375965802497697384492781337162558059778384867850182533995848530894666600105165449550992348107986246410518260397327277296022024654147653894030011163319440751309493537390978488549941805189137490827275024662026004290714030275202522197523662481683872535908238686858977933947378618585653792674635612965688302897816368252435237487579714462119875764402361360519278726845019348598769334125613219918604727946243508266345369907410980548112544114915577303933667710498178226735361998799261352960377260576198534024452892303717035169985674063540279406621633534268231016948453834381426547365892640286991385740804355353880497806331313772414845506045806636139283114659020704658864144065102747947963794083413412433724316314017303739463998577464212563942662106705034053505418641602894674547536266434686755176723229780592206550982571507380002641734109814081174732289277540274465194064374581519353386656579020862157270975480659907096033410316794551299833579833538887261816050349026244869191739292525369240006143332308701031946364747543649938430694513829166726022228011564562252565805810679650928299767622866678153304682610319174124365433950254015680844797542385643959082168506580370314328426524990422505374328393115854395056006675689066246656402686465028798478865396246579994126730219691682848091079149123774829507118185558986521642869022365390177446738679447579745383059292043010559926030301017655800514539597843459689148459518525596422231941296504558612898825833166814737585559308170065427610888551256906265356113166201430391204610385564095673167803493196701756878036149470087188830583675777348071509264754110217477939927525914714357173329602327304169085063558714200910543656842955908029664888335761978870301516081445634941220331579856263650985086692313791610898974669798303798184804776204159854556601234479084248290770626808768479379729085060603123127845288267440726056501786019832410454120901710288454720774027700685761109495038694294233749285121424887201958197171874561178918283685392531245838124822522048140142395701167394817955966653637560707789803758867091007418023242165335927198427889661004595883665405606839988683043557239970137264924616875149451520634100678665272183408362447704168980552034826294904492160059178775798640440096749335540875516632118174135126609119226688351280466433295151906339818202533018313547349609445451246233848586199119620977566388421840338040550479729725401490806536576922400559134279647978554027270220200373883256993036959558255721317676118334943938091949697201426636439590821748030260929048655783078303665029636760865545683063561651443179057448213869027499086929942082721152667192230928346583004605411983092764075052777286698712910219241808439940975373132374541973448873048283838974958565217945027324216659764060181661874588813425933275362225595287298521038261050925059166143330696812265079389293887839505275290223591862598753328890754096474845493713815656725086268917675726507471590926841807585567022764688716967884825956208486476537624483001370003570947024881300855249660510961736359187628050467889090300276050147999056365285567910767376515934028817712264459543933356928145553362352173098857894049541816013976017497122734600674626357832625876891105641710755052420291224404571460249514865364923390054104885496856447941567163932335206793552243979435186773166871015026450032399281811781289668378904487317730748663116488767531639034274646622980712461520842236979011655977268479842980635569582072421532038583654425923192954044766038829327015919645665250784686009735907968707554461154682227364470193830084587731083052993420458617711828887878946901399697386430659546080236901153498997453791449665565722196092016070441791267502866741432552794867985215385761084902125465881188997849046345814047637294637534563141274056455062893855695939979425017972015487514131421573727690398322686230054386464803856394787213923709543948434547782328216668942294593676570747421930186345257106633428005826889040553484439174238893866314861506076477350544084204816017753037758816020353698270391061297950928449682412940732992216785113591497797593755259594443933218399206008945898378649259074659851341437050212872361966856421698664097621847231202745649509251191532886351097123598430466580562891124930172520793487790422333830971007724260218819777362357928308478791402284752775308156867139421212426486917956783105521955845337635700462127192863835696724055234981688472628468797655470397701726886218564737626840039931753492773597190749099600873804810134956561641130120334378655159919158195908667167129601204514152332993376484022388494364284543116946411033591741772415715476668603628323760387212596223528511250513130526607763397854949917592216067955344563036488979250867921758755399539498808669486947916830458851407335798811902064237805752116965195437130231606855148344063738432453115121458858300295386982648713010255532255289181267338496081998931565219255375790893695929262780189020523330578268509462458030558203405594762314600681545067771149138211277713961782177140057408176625711796585790245551426738281502013456535042627199589401814498950644076456003528000369204353525805206633686451011085941117476656652470071503774093561280511857042552855863142652224394916158412952975823346925978991204943809761385478112127767621359251053496142003246979324903209320690655267638758313243660138314008079706342546879062438886661649596133819661106497218957016965796337009515601525979549725047612992484905843735520543313693712226273102977080687664342029077706854430130877521992686568838638798589993045906362100700635645100307123226392637595303434834644299002157526267159172353436039160287854627712820689729011033393089419504789835196325349139513846087951150849378442401329954085429467841842169732155727333358519509840858474122390534061964415981235944545189135171573478268798841100501630566960836141258129537249982866723947783646292793625152180892831161805568801489423469999973047302949856296851894171106526928489221477429071186920454083378323259762832907281739857275682586385395264926108902676145622197025083701734097981142297166934481968984405391826126756053187703073696547715184001493555234024975698296703435592823038724681668155416506623343532410212075694929978124023917303123628392695709215558123240527385371701225545444539657054176744096074900192499065142755644001851117801686260846693971569343858309120571570622858346351931372128363777216789095204223657613690008303192285102591219258930587743521568140329215067687997352957597933293134031881401942053855508195187203786165765337433270325421137642658673206839977751298905451954367250590329855616879085225409137413340455845191030872690289794694769177135953646029774685922236781442435761834425365470184208067868610189922281951306004411851153108113007461642181465195597566177589911416891170799013384671292781915660319180108148696776816565586196595025530240778781221813095814074288511895835350267359218519824947424759306562400372011153872798349235882676845014218433488543550239769630422961462102937994107114902250148484259296267662523982521090479006310396433118599133749179737380908604163669470905553938942935262194687873599687573338946890995742497472506573329212875661094285535893500759016714524685635842250512604534283146131259598925792350667231716142777221127617404924679322404724190291499665192302617168842403216043544977749786650795131127129234935097973612835697805998935155809338966835181922412943033471540621866257933801847638909559228004778339144704119606274164326933095638570892761219230239620023427873250187878084642901222023981265949808983316231200019138833731509175082260946370956215996296017237273982240733958923419270243969546798411171524556576367550165739408222725237212900889066226125439501760864098355025121345395265558195992753739307130372199781411796471954844449625826831924818984883324804123686016861945514708713692294938732742724772900241199478332907756577586207313573002502857685906874589750595456478046230435494080118310152497736348303420337307759573136160701250323393253811239112464557804859915335963056396006162782753330483367445170645601840660170264637717030937375050969864489520121131500835130302976233777417872272895126872159545896052809986054702688280581204900750645119033581560727689316054491006424535435455444697278963441054709390857327124509649877383251313889414420560570005706467035230474730464366227601886917494270891519877676039734055106336463491859767325824856082859309967429338343237143862640005557431592159671765087496960288253044345090787896107727563065413211966963975748227507725791140910673469045460282643779278994850651770200620445077027149483263663334480378090705668607949532949097886110517653751628105581595550790347691605239716970162349125606990495675623676703620280034838066344625746904159341030595111575756683949425555998315460150198072188049164410706993061342484917051932625632630036158089543914990214823955307217964070017881976360813862423317517321576751915744659954289549351044966609838770609911211986054409206365358607271768427036648578986136266351302825900746333780147620177252874916322423590015179381205293770186368247736324901727199604463195324701867291189752930389754003866465263571397275115893440797083020437345633944181375255889362368506772651503027228490838536120879955891475864946804431312593159039792838114642889494701665751219659248477844048724629164395506741744038310534301039097732988199102653798711071208494440392966522302947093350953388455637944890362280777226726983690927918282101781374951790790695089302811447307747719669821387783877064548180031440851269369587828695901876388543579414028656773296465530454949141710137734783557239559089197486298016338870627683526754586201047814522573146662481505612146590418066525305650884985179979451953452779603422981530666778487171043680040511094678366214100047647241653900143235341366926177717603332802217885634998967727909807876462066922471212256607560639917469394924206629701070668102410274023343350184030827139562623323342027706049610690802777612346340750357297064726015474857347094534186747167840898355454201017237674764004248973195712379424552377881107391084939630699525302504144733964870370786575160743524365411201385641664106525165634836101687659223832669471043058661402722941128237151991444806609348157266729919785253179088188470449410044853767960660746621419751086712544461118640087838285077814207735380320415838938973874605100587500303146213477885701922415043049540458958133011333123124687160676019513672725798837218882831483259795500641706872765260519008586908556552072248560898115556230950219362592735291169778706589790287281787924203819559102123242710411798410436153125652621356510386591992262111077048890537884057101411273101575806026263296718346864816090591158903721428838016661592811954303294382723395695104886858476560418265161623470039437120405541051902663777745462666013049765999824000174861647282973620925708347895715895481103742789238480470617613327133370632377736180650154820641388559234305493048270903720012500477020130313887209209864770848712348536705086653774375535722983713669764282625897900681002642448824228828433451144581064692799554161988500875201986887587794466228650591836439964842711114413793002507863925716395708662870815295920009797500814285087875280150775722264331319874805473021352453496781384861623387293617171245461428523433208797399826027747207983081651716514694586639753058666951431825305790140412625165287999282500278828410049078600177104959914218489877211089773640285915117916579786746660805550536911654024652330210174747438907021534411577097988176105150140888282108981954636808479928574271197198236359795041492460430916030968064370494773986791860214154452205790354707166891342922260064372291099776487597231056744237534415470458117405055609649400494910876495267637816142165383546045121687190885538359605721056552809603807740452330653421712747361416259488662920402498740819083209624240498927899921348190672715754157932404945770323558585356877134327182071267951267527241972940903263307901254614810760485975133471833076727275429113938602102545069686176480510553744380351310806479447024754706518632027697599841640057503686171941207315347798034983480349586993728424176468892689531629189069751969850086292241334039681696783334219385161145483508835407137359070802427201384022393182596869825999883791245519468020023211360394354417027607567483240167741044812488792139942298687435937379193464570263865141237816220977049749973007653328695473380916305572335151027764157069269374936772459831711116618663760327517886701573568640611420667056148824957851666904692201044502557588031534693076571385188035864723486918818139371421951256665411140184175687059051734374290154056339128750893926563537342155104907360870597053147572380875810265269705298594008654626780645578461922175789003447519013847873069746557436906334297769844088058605245232402725308038101610909979785547244235558619790556225979750486111929989766757933881071921360720565441684971876442580645171104824694414206464500572959306106635752868084612674206531685151532217072703885805391253679105776389618042416479811499022706323876750577789447180968834027673087764750093526180633943531376570347214685119268199956511304522541477371472366228846016613231443221601645799517931726730255388532139796240656113101973103680198818543545593740589493681676981655468425861343349477065311125346460749861324672932013038088908491781655146926871225740039778886076519009992731602225594183024436918959411260051890755642783033539168949760210450888579659457194898787903052995925914839760413543986946193208898940128672313708012299250539845539100453639142619594771540344113657711652634885605590613070442013017959839634007610663976253692559658289970250828376324724791072879155844327769015982851226892876988841975112714802315768614673127159009098580277263069897746699140736100382956831357534650975189907400759300542284350026752246764707929780922170511784768139127301458399768973525840812659546763084194742243092423683111147827216451510152801904502641668582662466299728085287172839176838498125710282449862941019957018934518631473425012422486131131070237270609614897466558532728138892706866322304878886261713533720675089818897957741279842049639955841060751235081800468329025667667977292391977669903915510979082103054174081970081797056593722893177485014089689614167637921334188649167762843305222442610275543342048174817230239593156377462054427566687718207358315187611020653367029191494100200132639036283611288756196731165318869379735950492386731463368489119979168778400253884093946531727349490290434484937750911841636739053393038950583161603513418879235528333727250184221462627179114811875376582607199473218570225340769719148590634861906800332929045938829964760976037102151145001511561301390322346698423526352571480898320281602961082417515365952586635609163199168590976378251553379826834207278161059761208056176427696386697761331745603661235575431124341371515687816598611390913866372539161916566607869205458551243732660378905369183750603076999099373510143689017466052452789468488945215785324401943201048234435577604428999143097630348064233143227590544365840228532022877153574145374199892335695049165585547488824413040513787763298732203197259033852713222731653817851073321465706240152765363816544475615086979803984781651556370820249082497340080818003858482043352317823241808982090610249839075066824752795834616727888442303329316255430449942942227286164523155285843377974832458685611113255997916910860309142168958615173081740712250268571340542489573518665058055915301530310361246197256992862171139357428846916557667800985374537941993769532589552619267256063421417411500448274043645220853372162870346168255401469731674086622713051668137927383975302109057416972550030568726195284651952512461851183814715743400173056956002338806488402029738318748895253125363402382844714759243375733254154899382895865934839361925874644258978152944404446687490762686360898696628628761772365202298762983003251747971458924668344538604142726494667394883223868090453534672315494954052947433398442600117998386603213743452682360137588068134285431555774106317475443189778004074396679577631688722288232363981408979264279974075442040176609877095861577387770627415665696662543430526419421375906586817304713454151471981201150069427661082156082673226780031376001143184962935593044893531917374445940573985276689159878377026449098903248312088475680089876347392902957308464615646475819343655640392357586494216587376861906276346951225902186652194845368546101661177241001126189046615714754720581198896982734730803223114176153349829823805981335138374811885113435784690984315582976278763197029990040446562436855910984817689551250372379706620506002542417771417404641994954531206522697996904618241292745290335965335901853421857872317916178348994789443514305060032754311239299280317562132531601951029994324067782387983973198369198259418151017372550013673129754745683454943697520735720284121513003350614516806208595746274983376505004635327373928645459500291309408612673082611207346997720159322750449075161867136416372229429723985628490735695260152309397429640801674923960931169345221861885470592724511699408929124637010313931452691335439622853671018090604507792700931422449130083856477597651175598639328581907580966683043580480303095684674734035910161088044188284328728194838305847692364632466493577770666594018254966723184078410605967970726238231013470596639120980916462855117829195952857167174948636182976655385492815148355755185882072180361081095399487533848358534690386237259605306342102558304040848796288047503281751449040096545229616892484714664124810536666733996112297560612807115815798808613180513396116910008417726922474646382977058635580655368735881861041533727262174342525020801543412455426872149093884533969770836576462310822578101444234093514385729764373354269983281638697741711743197939643037892945905147926271255939020893844472803582234505367011136880868282771275792400728391669332856162718847705256588873163042903749047960847668686611710874055862434610931167272392550454868250039055490708101799240246157936722120713881593239317764514284318840206085620574558182757157585797750675073792855724226442275134817833051604612941258152152719338577643565238455939149319765352101023572570776095596795769446214287728495324296175860265047308740981553737338150352950810685642068296133572599574369227156732936287453713627141317874647244851205463671051855400685267299638979347414605346478767086460993712282235768439228905139324833533849514798590053613619863119755158925679480893716825503118588415350066213991456946939006679644581772800383941225609075535659956895749129130030850201907932084335140751062757587877624359406333779208980214123004270753056202250877939923725698217622673976851845595802924988743761783468750646812922057238712403544178046143590961180321055161235588761301104776869356461458708013860136838661735255447991848754610774393935150607111465066660407209697665469428907332233090086365139446753193290036439401108461283816145072016180082780226345818652049617601557021689363220648678865416729709717531194192679932040034148855550884431926294544601244229206146979659905694441232234414649274861530938668990082516153595182332809983849273748191710495180439457226952489746445800501362956510795571602080561628332833602660253505668187440220744815229325147550492072238633131501119720400370170123675791804727244144900693907974185205260768067604791615937183827130481202113094104514314396858421186311713819012535845141414827487372804883382837509495593459602031168464029569598667156631894274191635011391051676366643724374437847703711901196702861393677764745577601963713818636045124016019954632482312033636914733449380720138600046511442980628332652099023018597722831909207689451103625293952602336920029416933418087102503671812701799600369846608447699853648833676636648423533651663590776094995074736081072822685191990289227753323861782038409663763271139828469960581218610081207628763629873543028529460079460185627000061387716368469705250621689062261584275726531282591113662203712831036623663670493215819327625442003837060388837517488866487863541105057168542954933159811937246555103526411719487176242420533984855472748002573033069866283226973469141152583682153954745666552828772017641887463496389388622548518412308438906449723548934245983718887464572206749641751556755805509602109104446177198394491884140409057582069029473940272140317683906543409024070547220933420442133466786437198516424779214910853554832549192531990811555668598346956759164363360857005286377079742977211934350231149305222176449901797744332553968859966562883527781371770669078173420385770652468855270503736043642442228255995202312010973907747166335145893263743722383838341759325700839728589002329920684929280802687871784535910821609322818783003152117398331898101584175020918731700884550837869940427440266237761696282123526975194226393522232378431273977117670383857035204724447182792023667784920870914389538145005786940769098487899626767622388013756272962938080190546045105160057543061001415677006426119725293133469772092838406480376606274701202539584754080532446799495055824493659003736474069059936991918537211610303916093505299844954036022388798389627866744383877275598777782824005183966768586197644174674402796713615133899690549722510272675572087213460878047697176178028819457625833737511293988570441489001492616146934738815098535700559624339907042813425955214538848499268197412552383561576424872160398118208039692490430675949372677693731508773573988940011806751501233121113306240405454843772925828089944897329653029795279147213539591450376081858893053147270488921931178136662781787639136801976760777775773609723368177073813163375749593920115495803089298583112756671672785449230423193471366648711255272789309025745696125474762345204156732276212229958645337285353904437858107422409244928454885067556729813381605002893618868913969168119864276213048464997654901135135518398490143514675984668874166583885541247889247872884016963387528411486378041506765660367021238897931970224575066790374011302461569425529487701110489139898470147579805151477317751282630143595270527484572816494181085622356663936597599785299783148012437677776119379612952766163442711819118490927416894568904690832667964766560208952414646048295486193332882207549054170647790274965928594186831979408587344755285116447150628319511677936470295027538434271457258021278975551432219302885376576862894092633648676696270554720197822836324868520565419172610834196701215695424498443273173106364228885194544955541306766391487534070911765375331745165982252151428819780444085191776764101417946115304335584377842719670017134630567549659026893369808078968233182535559205364649596675896377391211360241790547094271644854604397814856377072407988719003069606980956057694228006365020999694190493992901862195001512638470789715212970159298986613106418553159288209648039346459259360658148072039384184359471539420043528668527555105598926263046103886722561936490967722952558654717477485104317794696340529485833459316103369556447361728901367965545834163364676236571604009454665817996205783050680686277896139947911639407450291863406185419969208839065400025751914912112621536278412480742171956271962027998245426918955408709557838823249217834221173433242119347409396451376580289752298725339236486001444424077262303727503729829469190431234716275067259379539199253440098913006404474976271690338494391758146033592265992901287194229369836186695905370039929865746297684772102580017297262659012341956923519417201224316557986865130016251279906965013917084732319893199666320235902258164262605515094100659534001141174517934473852007435569239034269641031459686148531832673196912877052409700420467327096068639600025869440379924337531506593662028701875577853378934644880146584621960415858552467942341820629058645924960890087431037183321418962147765646582215653110353804796201068745878961240011675721289127931808363065272146559481009028236911425643842534394506160608112235060973530374924458551554714996156822254912928640151481917241002710617479668094421925036335728998001919578250680859033613362330731329544003151838171695791043269086438239651113024324354174855817719721921804914623268473819997883332922382030356919190235478926199664448203576543007939513849349095166335836210027815539562108551934999624772355576287949482920830332307227281701642582052825230322011864532684039787685530293577732141901912582288966780025433865858910866965757523868655515767021971645753277618995510681878062648782163855432404369403846274867721341751470959500780609738738941985166578799643548249247500718270840255835634871492502112556983240983508019033553319036704119463266963343934370625097144518349377734949885839906902975473980187084200639529718368137218345479548667618702053105925975726403397355242819652753860478310259314168023126179978424506618686270084148362664389712135154722929477038246445493714673266924464587637658141015811184576873847749728578601522650251935300030599504296518811170061497341041999289612529815035388840139638515665521579355981627902445925372602794678384006203004120180223563958022132816683473699971140930656358666862411653018227599728890622807890574423075432768094531806488558632381461445429634283444304480663453404992743645868685781998314451672367879045011581981217651572902637711082609503512613081992447863632128429164374398248175441978408141727192064578623929335862122602786929917947929373375871143195177182364415136188064368792003122409077755946477478510285763192552447345795617832656310865827632852312226571145692455808181260872028198214160896512796096915985776072460688787602857318648928778023315500199397264936758509565646932674769574847784504446082082582794823340294098583063475645832137785467276949167015631253523050127381092643822165019491750331244778376879604163126942068620086171374862016653016409887649765908294158158226908386524131386283280046827302933026016453001395951071501697014607870331306462835517710185087026492535882078783078428418678684715310311184992348630732236300262398062146225151909852032665658940369609682193579595509875398789738987520553402857153405789283169993740362157051256543414848604098586475897725157151288363750466833697593240462291638194999668975979506412833478370582537608421160785632251986386269892197040329081883837638407139389795494614773353706821304058728904246408821159659191609643700086794164966519516625037385015550938180685248236312252277954803515453527026130887863653636069964863121967232179676841337148463988692101222940639998919473058258542114037479824209728452714107236777052270721304446034133763827504866725479992607282722659190540078710974704905154611643594712629326618047281943732811731240688028634064682083923666947814722824886968713847811033619032834351454920678035974025589688757040927426157931998432424527296389598038192200279882198884078972318379685430053752770139450087889963614602481355463043565392333264298373435803505828772470992359228124127464115810231707605313745199982367185438457308829969955826468367325806644248517415721302678414756202606236723243594650754531673344838943696438847001495112645429681271343060710695167789242588954211170458864277738728115604953019704933858796671092571719398413740020189421523221069654941576003631434414907212595251440561040571419743068782768712250490628689980004042944706974491605605890522786086079208816051798985609757317888217923850263045133047469086588060307626421168133495141605794711691324172512352893337109294610682651507570096887494457801308557264086945062551326459909938493795266042609548113291728240072801411841199117180298015810285606289726612259425929203687995209746407536065988243007832341527458596177449664226593719685470232712268246416173540154579220793534755321527208165174670416604881118949143769961474058320646829101546201638133392949116644024210546573798726352588344551459875373128955765776475442529881758574253421841874472110373350519271017210406546855636356974381135897211731075939996258202672897822270369265170188604321100607860319968078272241916354767212384457713328799456169763939669167996498382621749333517243269209208584719226632466942504063704061902860933943826336923565477055080045143720424773898838889811607689106715800542439803177084070443172008277805314954767480038814920275018984414229266898481075160290338956840467424918853451647874889406676264559030236856664249636985773566651042021044196037458401411392285095157666189327911875898537040296681708763189582233945955181508325199418056478104305907556960130184465250513286533451638465172393212022756505513294208105431702663185150266162843835742564591618331023026047957601279079031709786347228315740863964582172448302436519280297875149637724487388385194692097762475366152490005727334415140261658744671422725668634965679515786066782147756490904069870192866449276280367436232244777707600952438867463150521869185251078119026771094500028970844213117381068390789047326310842058076034226421183514902271979601561503025783334105085977506906798100691122931780484425208728763952860905284232171859558593549121230105945939505639307346963321756761605051223636880501692870879530193935574852101389763915693081117202179208219870829567381619730121688847564468159572020690200606245456442642898149760716765524356680793239734965172971408548350196986298865411895371417475050829855765903288957962257993672940235435231500422561901008524121414735477392992806520202424855404923422490337346690068780325746405481398444982299895750772539058417214329024517196092166949188223803369345300694419585259764783438265417322045488662929704481928955031973540171796888829230106219721851254996629334902655280453050025294545425477734015769497065264635899694857271879873891161290250418198625758517382286094169447744672466973378949808813336635906377133604245867635328248685740430778432471007920042562038699321896480623161903012297994289592137983008588988279894293450432370749256978186361672847380644880833002168002668295629124541663785780335291321665191300932238668877433650115092529015456132395267475019550189060358215288873662313599754167720077934075495763952345826475831906355927488541665735573523326938182492556960236594951880982692151261090437280823433126273038410572070821737950354415642512246636169370406373521102251357249026124406410513532132672552037886818041282114828167349205311897453350080569239841940608577522143449347422372741446108168086175367248458568226272873300820208392764734873826037439498157874431445490327986384211816694064478395004776757079151508656997060350222375035668559610164920631965409241209041166184197715863995136556426544573917904920163955614395567014195795085059135511890134688906526921539890163355894848244278208725839268732078041367075519848929952082976347983118729958943766764911493674623464857469292814755555668924019060851727839508294252275786956064749130684382787367565761229726592698946428949849166936306011818582494192847884862276997335665328504083976033231988235149025276009164914698098634352194289442443738978793704727887385704417622364140291504224737256297656001560745113029734451877675294796729113346597064930664999289555043096900992802830218093476637194410085145966021226083664630029350368205667286230489055782537732830378901613847013151348834436225996523543551400461803748821712742751463158835040958222632659023184409200333220058607057506387611070517247685291315081230788214429551576153339015990129026180917887763672587337680978272355262289209297478287854322586382279159187538844650903825439379126511088315118065640069697826379809885757903491414733926702605169166910563015157218153534806392162344621980086068992925312443783978943314069079844492131991780343851334342033170449319579424825724922849055237573254236849680923796200301049320174332475929558082827529361444328014614515544630119614516179773018659007429183755620638896368832767786075504982974080732315765479813642967585936287795008848356233283758650545218048268867626527608584351563767420926436429801551677269115058788711447340890773732596593687066233919652195756205265560521547414365120464170250393474895045920784809984290717783339331030776674156116256197385625070489800029590180803238158447303688869797345638685843911179017395641886479056302662610855515100183493885968189087473411817411323801031965053005576808909863284622361828230078085106746875706540725794343079546742869777520334652127134693917922572825191266406566102163451755808909262131068927326577339340823267747873892934563411741439546859578670577883951487493439746772878771744644633072508464013119025415745768376287981023834041347464672017704630587084649274241961397524246020768466227123183295238778878995904810777461589196890892878750654217466581717590430726197868531370948002162745331399447593421715232878529498322804660970444988291287327322670930788141346200139264475880064177380264601182271988379178525629022331746741179564357676711652337541930616314228177311884055779318582609682553805967325279728503409452309165088086071809984284039988851898879956810203410184909028795725182467284253768668219101612334116672526334368099685605489018958234756352982745388332455598017790963429949726707610431853533544698029852832027811747764516441939424135287411755854769809288124305817707268202723192647713303695299534758959864086674063323171066102576865893827099118739630673974318345467812012205331605238993505175093682533478976698081765274805683381170545188704030516215739054168609744419323985268565617660376356128421813131303094951184625508116177523006631824298559791378235355648313704598920889050082895311377287487092603467586494395908796219369477053677833322089765726343272387570426067619208866703047831689718299619559530256899990954675208512946553971799706667519478302057159203548615950789172999655000399064099494993013972660863653251155102355187584370691309636517742780006889228238969680357359389076844560842479833210323927293846397917593079347979190688543076523512393213669341677970622777446170742618887681905306772785311873900606884057657431634797255420629766095680814164838262587575490847271298695739736806704418779374875486712128633207345503011931434823264613565568710010438510870082315904001946185390673222977443917663697881610991052580328784509703702962934803053922471523452166996367356862157227277493625876742263495341523198954128869568629051359758610932621165899060350181232463226289953474588138797277389008856682319941946708880952568485920029118194064428157555448082376092417037212286566543446437424775929472473599413883325814772454453841817058097788905867192054307476202419704154957680712501563506836197543550625477167248895194906881047759294093663295009786419335008784186212425659482922436939805992148654515236772103245697313513090641551635373331341312301829421325214486512132719227831203316709518405584492275826760010572835416460780199854801240224583712009737917770951043003846560182212494789974196700734086072798598425007942387686914659024773645864118000834730925333744833178321131612053737280501075970107047754094452742933741213345361334540455837513192519465003255734694235842574910352745555833804613216401949680500596821778170665723380141511735193952258976003126491843231492088346246534266428392329907024930948071558325786333201511261241297344467345891709958191993983650024532432810562792122805303692567045594471156408975460423304103788036278945661464717280112206633833586522208985098879039447751445855859964998273381727015444403442554786726623303848951694953377510816607861860815716958559570950579793252960839855390890487849208643350448551352621312647277968230849622848270842144218851567259734303942278045821464906268403012940983483970864506000755392172042107374148030376442096826929502827168245050109872186073161767455884058432828789429872825812994433723466823663438063180660935203945603195663951905400162984851812703201842247854864274539371688136306931200127876558617339127010479506043513518214506693932706768203131332959014116033423589383755922691043470699769850184653634702758016290459649556930979789145171989592266140546602950070193877528959583877139851020780110044567896852355838368589210743787276707943525623241017143451393013075943358110843251495254651005155694139497589757032269764878431519091020112051095123758208989012293990174044947068796464274673505353410095062814712558222127272663705348054760675606507773732746074624786614532602888556825551533063740175322856144350672002047869975417158142267363689680919074273591359830674794501105030815203045689061934053466047790827283979944657178167975651231121798906508908768883507624368696355985989307109688259653524304838745498793751218300019302397893411888508902775445732546822352844127189952964434184784224450787123032802254831998136758492687043763297411383064593496912410380900968042902921844610931890292065726711685295636861316716781876765025397852636654322355495473311010213199205753617822133382283833323572122521571683981913673884428519891888280007786913901727351256492477999477662881399869456090684751404012864409169285071308082679970431563760617937569826182171116218041511493065499171021157353484106460613070841284708890459851909208276174130763992476259069745651420291885593192858773721214717833435116755197310424589152206395369240314603410246943788957844005364840354172344812074162447135018464827053528296811880929772810024445184712452988003885249119428573716315171166970497020304904084610460725688144342020593142455026973786849139745492255537858750443421005705097636824008450384727638976306651551389959600678084005581595608400928571981987948878168514649274506948749938297491526925924301654143611977042875303147625557081442175905098514737121389744238174393896843830235947773459238471388839236285146560931001094490086247225570012643664164016143693977172608373195383684655005075671060508863968077960644109166203727539648046376684481426371711691076649093496580552106740423496142386663067416937374458918140826926624689872273012284586617420670908992963588637167888403340354397368490413855196971367255499447534367068354572443261345021721710309790820161264797944462965848086738438844360166670818671743587245622043120184888252940071429688541488101709335634290044529477332586874222495949198581202486873090623989485063087538465954320360348178256562084298565895729422932919366779540044376124379576449960490676142107307314524763574393296862524069423695221146206280619405147721167676167749596506029631273094385925782353648344283196323906586799745657790305078103057307197147830282236751891292890415666151742190020591678656742804499856208390273414284050166781851218861813473311734683993462788084228065407599781667479784920959778169492155669035780372412283463615743558096769657454596141144422710165628894182812826651023359321020785218632359564449695461392902790343571097736444308282474060328272128710026144745820166106261203508737259880906265573820737132547846307468791325193074411585418413197341789799579780724536010677966058901782425509751098106558105163080440065023356493793173850842317722214484284275633054470305236367957707740019346926443498976965944514672101893854508948921299919097059336135904413746176764957565517788051952302446412439025428086571301213806569997465089628475803432397778779478662178286903127312081538925749786300308472666520686265987096203694659016168267919130994260816346269428102748979557726517104237228095862955063838586046044227066826446511325530901967619038803577056608800237412005760526704838668348624359116797853863039168134894476518505315538080142003975167662873055027281437101738278567080385260023485858291481332110263052533236913789998306337248725402775737266437778602611081588344412121437487258656777607382547748501723149223998897777248770802750117694091040053740084695891336564208882755865526820726811775900885239913314417715428636893574766672875631324923126006158238324737316044395832656953281082442154384389843371914944899492330144503933636340415117670519257771795323377254232513986870177780604009876025321707499099923925611467613908439751666599220637101039315664029907362867668406611142551130295383791898309084950038235975594880619137945267732003436451761013389326655906493930982354066650323028940843916717046815403249124629888218331559136874372540898310839206202543948636932683826657313739297149302811499726908871074864267731091070122125280524616149626959921519717281369598786645805124793190158884528004124532747691202474700001953699069326294431012469408221978037092137473014411459475810305327522964734218586900880389915339121617164000472796764406696268133219712624458222568504549965061279933915682783925358835397179560033486219300712507633608712510817283034226100708023961092566891434660849055710056247705013890584590634991096782286751785454290844627027808247042812983989875876186150222439796667001093865157017769226852973163352786584923188957868187147413041325914678488550204564988732053596775615605891274348134218349003789739455384339387992670192162045306965863007073835091000230894673194416670191720524458633135078584318366994836167652306126912815128953888531512404882129262498996310297396080512599731623797016222334109549484278473554152166435711099336721306176483300003543041398933324611358628998606949346669006652456114629942745219502575364596560149237968629148466137576117004081360505479190396104630854145585491461772637199139157694242127460921696165811810528991501998584090415268316925151632600607374549876324904528944372978182467429188053297188386344052431126594030302870303265548063787691289156828769196712075819978398848885057933843944225050546746326175532667412429662466131001928618081265720227666819957367924139984741991044552170443747910293073206386264921315991095760298412428665801648532942310574022149845895356311887249812136597860799052373422737498205531409292509516770429452614012836656302071958011066351247592135460570772490214775670279702932650510063885057432599041942811948175330376109962265782624469226521236403511445129890306303763186144169554780907807608719698443896469462048225128211795086508917565204512783654638542829686073966449341008128252783328958195603737713436946579046401626241507292478506127987863720981613290718157367560306325959524493058447507570627834272676900076625881350553371464616398420886299247889040020158926892671244173567777323347733382660380315241974872670781752488905919063212359300059267036467733276311595360555385442247004943784646332323450332833959119186795586587081184443945467739403722156110409866042227740336421974993666175656845051762009955355024239693672236984596691019493429919577683247584691979990137735926516234090806620848802740179013806842905252826620630977358583164600537234802206912610758326647587443175117188253951246382918223448199860965158137514569782495680311175792681646586721298497311882127234728754409372785562889485800689869340535343792260871106460717955924263781162042553938347644790972688630642143377896429920505954617175491669457791330999450863963866779541409605721729152905474522343159619515795795658062197516567333260479161813145807738611886143495609039427212386335902754796190409267811636099260107578366287134109335451839941890160586470733733673596948330701365863382403997219448915529359539718743597593432624561054907182967069510353953146800231604309078902290238062950237889370687972551678654347158146505663861290059826404187633766997455248309725182776154807172813157453332761412202551093175309372415995939946585224024531579576073521229599683167058398613463098495815118941198784950467728787076764853178094323015633224770044203408031269506909351082527191561495462858971163052088387473716272769042675099669563210890069915757995765989432630197821058583212135908710038916216640155519383599333787205913204636154419908719258111454283212261135155903080788900333738041549643535170303856453359352279495325894070419058047692480481382358411636287116550815401775701759375355918778362529266812123514227224560967393849172857252440535044156924440448641155268080462173239882595614428588837244828006274366737685556634681178958764479370625934423639506069564190026927162833381869891960677899461837512979294673755214520851518170606833544614850404395974511632650021102011420854648700027510389309014527569370001819780023152885213032494159105660474052397663537350665297835847962575615493727801801250057489794687002451354426601725881139670784364375257901293956329381226875598610875637539270923550039800125862922808404357547411032145369797766207473995215770897451754328684401611942653002142585116515601491541412595408497650748833931322964622961513759771041422544649203217704309352192752094446198633153410626683494098144854689546132437020461334840204231924254384399337381548904082368603182763121593086904093488984713212746751235283603028050108246820128592870461667673790108089185520784982703091125179520189640239808497571326282620204914453111434955802806233452997919280316526129750627921789493811033950898609516479247287782251421412239766231109012344966808397680001657078023315495551460892823140409512516135293680108245859923650629560001113420294605562326558653906928570799372455055341243335028439230635275019632633396412208715086710520820650569906676175786446459535897233177731676697283581962363073901681589119985471371246230029413220030703165212065032857829844330032102335682418580314676562974658896549660112147545876908750677645666716071852091878062210879140337003102288776031154058342227106086690139194002909184490124587260201189590957948392777176292036520096670227547901292520134747964025837978759407404298900634878346750606807777506198158565526114537927101345700500883134509231829557626292992461734053541986702254444945074612872610362259610473491245318123618118970392680118769247705906941614197596916112105028748914412836863460813796047607818244616560409703361640237298786160985694370358754465754917235543815672858334109435266812600516007746237059072062633419512659394919184955885542645167060353397682127445394789665296189319556668092504385809015143537632839466595524193216948763098042257402522717847011511537733303138849555443283500745198730686833304560946671069569142959450957130797054615682299819263607189172859556949196169305350027002678952485887436199952991741582215189508930303144047256491970133388874271727884363649317851980742641944508404871482056019476933048911384248223684962002090106550707231393766351992427462645573696939131003455290296706190767005981753808161038041816297312068177711561735698247733242050840150468851365363437382115385726122623551296243165493387793487264605443975589585748449283293174424962755212006398108968942745047705947868626086245382674393497201758156528464216623977897075319493352087592196535195739476709333379654917275282903259453883579480741050605735903134662615712262284125570776539462035959640216303757876807833413852202260744028489209665789410646388844699841401161829237863958434797740950329177435479957155843922820786009948397369266265725337163876453516678106323617105623846535785447368787901280368884542003418506632463837413061878863564732349531827815174107307162631640618615736099727902948351549753590644034575600940980099430126556904381021470387632982990538963368123756764830603238239880748658548415628205269345592295177857445544734768323748738440445274298041110149423708814387702161540758117657034128289379304819827264792757684758081352332470456216150268692738899806595284424821780619298240650306574346375823523174666705683218979313386292705457993339631830121925318186230166790914368572546140695211854078945897428996228561131067310392589737538913021075426289568873971689192732580263315084097215098208572734902932236073041229861472037353135643699276024534931070477923175412781337290096711805843695521713342309315020200625924625944864593660262692061285116445933644315346345187908585707238456750980674583210063452330186677263164221707342424751006119845680099961250468746274012621106797961186502850006936557911840598241555512146953692177838390489581992019385302055501460574128776074427607488967833927263435608655189946882790631862345737208263736128057581823395795858699759156546738301935499386900807112527429237064657047928511976705745551365601617385449934740828629179461020824454892510042607654127079328495020556201550102471555327931278728758608617331405567600497197639957482661591499307834289675329090285158500315901155438488379460146517010835592802967971634053668731209511148204444560604864382144339743811628908897326525888930142916087376191021541499036755641128832439693904858594210093040060146101816568410768156497565272749489850714384338541722998432794030810444737504082346123796507994994520369275916185104827076725158441153752117271432478342472081273189290701870597482194711303097012926407493927478555707047332694868900845578161502360925943409429640269669778175301616471036980296228274113024714928344175995247391590528442017684521806378838354693399990971287796144456790513002110191635410668987710542672038301252591589779500093178692754748643019585268326901066571066100195186405569162891171119778821219089237754489130428454968596361033127536177535467049639059610436377867257384205624840244627651418116992406629657266899737365386309473716167126493541930362407941594334122835718636675682011490828692082848142903061408794109620316176541911352333873228931893853124831700004234146926458682289499869948136204787077077454624807193739297172897539559825932266747238906137496199115328882982914059096534996830222952473353555031350559978179225042982878765474015425762448548835661464088047991918040673753391088515245893732884379712451218052817681556102550738016273065858535602202039063732303416124472328516754922140561249379168350131618720032438381342088580867726530723624949518178882336681369352565545817548416930281758062433613269747302759271524745123648551136251774630476767398237283910991455566535767440732711199768152849973311486841338166064175645471475764106718733025956273322759113789456333279204343432739832412710619145701251129793932372704394303473060484555679286064917019434067774384764133947913089491862386640900343391325618162007884105085715342063003405208502620406947237964697162023125432845567377611485148112207100358384730268614946370671900798302797888667149868711190432160490046295127764875101082532786955848399846331624554029689808213836595072914995445053472879986705157439288592305271623188429664834893575836760826489743950882213878813704592922428433201233287974642052595138270170746826407823463520390815807944600618510851666256015397365427323149677434511892819244617158982893895748147216290628707719621480875471801095097302302412924857839939512623842199634816894311604445179476365041341930802101084212721798681593915487630270327837388659782398493281027090169641644062467440103653627994065636089592225199395998645723313377567306242513648034155082736699807688178664545741926621121776283890632191649500614644513244457778848841124105936718949720094716452302903042947364331824606612733602842055632515080018591655703922408065409512704393408582876893409658217090634796238068604441411809538161811005737796283184785942318106131607735983913124970967385760066672210680322568679990261926892841863663338419115377052192775145714184977946783531758629732049464053467580357670839619564106248334041982329114740603749338762787137726687638899956070286428825095413013112822644639763616039778846533838266182614490821482029412386866222816227998989614038670567983238704527454448790301197265502923620103424517797124564741916741200938126400114064444330559096392354775563566807852911625873545279077998596107249033726620017212494323551161313826219969540069079649167174023650850455889336261288379060681536537732807328507729733972178614412823520148298434727269111771843158451103907225742244773914439795621507984437895437036525662153150251374081808076992353354746861705920947541844267441085761617015272333181216269372966533697360629108266367698314349496867570575950364634502090163377142684982805161467302469004844224927007333824367722818268399047776815847656512783818215361700828211176643916387115243145365764115210012322609600245481539435251287028051637584667984369118090610931129237621129704785301339550246289153786101671912091629958826579046239628929189544201421645326714341977885809856717991089451869637553122097136652847466865170100418136590217292635158234647774687720184153397918476840214741978156146645548968730409598713631017203213843878789445605303636132047828379514573974484180516346517611918202734556525457547089182417219079590259574509098290798444271397047664479417069762622945313483939943315542907445643688822468935588538280325432476678403577279257664053349235696741894829292742366785035751266786703913891787404782169689154133363144124655489252527489190783071593887323629820536601475194150382176206228430722457811926420880266871871185482431046257490611058204968904084170916280718574584235547284072208494904253200767380287139283248705298446713377089724631121720477966291637817470641860325488278512745124706853471129545938489025098588828642317373264371145940234881349347543333800232959610305446310625584897460069118735267816248126785046549263813077436067010580622997024490834388198259210953755601515137974467384498177297889701612999674509497738747979756072314883307709583713980052598154973744802268497025111851377337817944965483894682864405062679360719026986983661666444874350991536210554235829982766051971039987440877511625703490461316421427647549248319570050759129461526040055613340257599080521684204207372361572920451558872916089370840464030112248175583381644703666660164102057703731499755250312958208530649886811441340789841999991614018469163248579321017396821740415912481384227894646894571517026520449678136169262591266082453592940052969460277212172140682459919007100417688058429621049561206582352425385924428439754318373468715413302355457742677461428767529324670737708319184147598910229289796430130952043257235138176958394342825769716667586576414949208915098971570200581565769933627132201935564401943556382813974621655268319134432753108948714296662413212417728046915430195188703997029631662712236006474527423014413592629216062297260686912532386433875694726744228215031604872906833122902468267802644228268253596829826627564302354011381482718672052197086774832399886532959245800725627020463867080728032732152365851195806710357171320468209149791002976097489240615025519698122228553435982773909876548541227092786094930339707288414633238987492387886911229773568931753285890178473591053034691505581148824709907603532701197583748305851212826258570857485749768155656791618161821642323355025252220311311532398163821043187377795137901282062660439939968167039035226048966972446113747618049886456357908348676866687131052980597558212827971891695500374358543931940941978651010093462434897725712214370221577593345965862844752539333756063101698078159779915949454718801965422689119978862035852772593288436091040686317380643543468191537213488648922134934506752488705550430614358745054712878010332282965880203112354560640420296263077796452959308302544586019034410655784035811964488155302853321716208952835477614471771583203616775473720095723748685208608348043980661138117816463149774628077701626991651075333395676114163870524150908298487213668692171799852826720910289264446149118020796408565706461443875822158260640818479446825675536819952670252253779005568645453840238449997982023514265773358188766219779122184721180554263979883535663526034528803760647437159532475003232360473034122929712379277755153066870899143253647196519530975623279352550654869471876859724582383679755064335408210294820930415232679195790291084307612561443074897425065976417226023985672643143932591184119532178293679667036798502195977349711383839765170037986029642787264532412211013863041379150232498864262896167011615737229144674104898196718662263182292581882697567497971648999646308061422905434174736373666013929593759014420603535485436429056526769195253558637116838132217537440271276109552877155731786413348750912175820145326038840626816084875842726203496411563051313749312740145413325536452226247753010950832921641529137725164964904805490207940623434065353984435076621451248203130649734763299410015441771482064511097131113573437531556283410297165919304929065025597034556397651428595706177356227557140302447804016671118646760055475903240443603252211831113697069090306827427265854474647078583739711364449764559449408777448021824329832972986282234521677650424591358578167772295030045852806029475501052213439017825722733172517908515449239523869745266318099846686024359524218737392650473412868214334749563156899549724842705553104241898467008665957863212533264989667488086708228975875742409824336246622473628827867665580965446764477906609436995005506689098112361284597601423946624836067632649044148220751142861787041434965935487039063512990512161235851542455686470154778177979856508190878634233311132698441121066707187661669368539174457998004318577166919585694494864552476571600506922437821841648497855611726858268459455672881702201256167681573879410732348585391248065799456947359537866190281260695731864404266554453415502716352287932986772843583834341168192995106639332686822084891334527920347925357734983236253744962555948427220429554370234610914728040762938357885646435471965297837277404104310852211263308699075751934510726101819115790939980503835129270864156509115873559057299422778756695674155658832157325996342823355173792736601153943260709550030697213064161226297779363558414102981308730048996359634144142463437525814884491960478257612800011891017535842819427297831397166474370471676894576182690655109526801000044755477273486521197168561663340364295913392454711585631073962679843503024269731494700292872760557657945607106081795651165563050303030855976797702281261143695032483038080091243054110224464345059206703153715075702814271624677485683895580040277274641156415427135891181238816031193581053677574546944976615985599252124138535150798141475101174314030214903794289898327226808141116419575177639410137893107235877178759660486726441598488732917582975867644804602479865385074142083174013079904702436059289954625276371100454663019684530260949182501550958082239522419895226559319808658573811767103631004387448124771281555733301923433728540859085490089285556316714084322860317117617265699464805956844583437589021653719330287067133428435074586928528070943782417599107446516998245526518116843737825626930909143707088021960221155346624629848621841708831272194657930120107195901230776292437465779990851903282151721412532411893438053466081498229302795250274668229545848011233105849564396232551783082158812162833084134253649329962049738291688893241882450341949495740488146924761310835178109134409141666380451758300365204873371085095667770188042741769186748474358902070359707736768286387959217746111188962200523194907325013039508288005334585067388424384932658663282630326092909562240195654405511175402367061974229302529372113976107648252439259650554690726470780532327097131850373190388076978992943323555387256118272269289851404891668585066843434296472836661789320080173633649998379180785525900499755993881550654249389889171549521638726284933674187908699703481789961720709270990866032432553326035011133510107763977250384469494212096252431515798997933187284422767571054581323043666141536416218507628578862455966631935157941903476675082475193047578913830207466019977829127712057899651620723043577631784823622456931190898453348228076835462807643363284568006399090044854918662461500229207417412629706125446685028861291004922757860398215894957563461085725252488578488338304959068414158610397284566821363512474244021802558927799755821718200923770017994352144440341618832322008477082570157454593239219109277159760652913159101848664028419525291153630348825344749595224173100822794152183315737005212324429853408535591751275459047757325336941977086657268053647156588056000047049295810587837591973366024345992535704594190360029885592293123650173571282789756471721787575441162766772957965398933259849551476284940858844607675054701812595183256051155560005221487956789190715137833110493397292779768224894327937104791284611178506690250275074163592959101931864834612698581629387743768385738816717689131845126596145797627594847086138294055896947718828524281974575039188994142302123308712400349851550675490863293329655912379330138981301676653793057653383195028468569014872973163024062882557738776054878888090185364547529705712349145388169026572560879367730853778799325777974128786056345077369440875898785168579381725769387989410638356116227791710751476422230251851038701957663490569905503553031220167871637353603118536879899516618067082619300027925186192043333351473467279956202593801222512111447127664531755679136456106440150987355972260513939555465281598485307566262992990740527979598861622435379434876839219544166888068722960567557433639616843901014550221196132889178664492696227729428520426069639291219914238738549788206147456399090383421813000521790073190700492670474972690969483383184826504584788806117683775941431250956267294227831721911173490983897608056567757167031811897275952864488991964776015352591175637260383639574934363825215603386972248069962400396041862268072041072577623171973602152016609529753540158784657414666419659186314500471927495155103493877519302984760078194994589361145435639062938973595183491984338143516690862362273612030369323337081565154162737056519972570763118529432254249779927543660256658074683913359516017429431283272381348919025144288578714507252715682641175377670497089292947965012094199604769178646354489386749567113252817000359708397007283002835243664656652037614633360813375822038176403449718818789662097673067924366511669886215772118934842380883942256186999948612076302227978947594768543397169984065084611521084313140561606746907725359762643655725494139649114831916157474783653880029932007375748978150981828138039340543443759079701456093094822429863938915511880844421459598794618511221208441720175558504523307024996847872563796808506951709315396727776236313371682983974246584508148179728606908729924159613061685352118772312165202462783165864306196388914755376605701265802374241183774755919103965717194708347196423768475018023396647204973493002282291483501568513771616121761751039386987335799733860740686696599996719129084705329900179640391808745226846011668237679103031035082170178478767886462140843739337510747322575678143325788647864887394734279094401511167666127252263771049922011852612208625072551794328324306223137111281355235501715883974082681779340410845098586891984414504441713467313096375521609295540137257220248317041560130553337357908803695486768173903409389120853681256418199237999821719006965586139272933377043714652968266892565176895520613382979277744524631815813908881247774870472101660119987705158291892935028884986660430577839848761498139314944063914890216319811676753548857436579092534428629656488399721824773662218885933596353409724573275998515966812906289630417902384950613939168714793716360249698373163841221225250045133290070935995105697670672458055218133578203063125652388780590359688770682440857393086244401645966523757507014908998415280939656042404112043314276882218518285815147191737878190675444809460772516765037394089841251387608794052762657502240858252986390643151609023583002329894491606620224948947595936618070697974206621689376843872238307933615255370940110397714913897786000185068015985115354191468379107503251195828817176189203583284962810123306986207376873593865090844101642880045896167929579805352867390143624102927072007268112095770110796236322944564425376745047010850796296998763494681298239383862712964645751490849569273035652956552211356349445983191341373320095936631844410065217512557429048499594342185378442741553292281741429224219837553217670548026628034577358811687125656420900840062623059176414691687980661686381124772921084457122544833185987107538348749324316804225258630129150961791558937673842031781945497401641599051346580648134780331509160365141067843308642416850666767882032818548910520482410434264489535041674893234965374630995638680731742449569392858266742082285406778150908578314150370757669424701410351923583976270874301291688327300496888730644043449677815816856986728062930391565307992958246813050973385137514959188073789792115342483486402362994878473528240287073710482763215929383069281820257747045365923930882195914760191938006778394846264704046195090374597507300204610172631910347740144842632328680408308199003221411357307106550017123287470786196455320786223051432810294571995195580985948660511000443745355919290247687521417177916609778645750673330748101940431858168968706579171690716546841231422378798043127202636254972460389792963821824953742384413956954158993880509534509827852176992852501618419247194866230648638851178501017591036986324840631046841082555622079343746116620964096516644962293869858871307657070560800608185766567465923719586193473598084316000322844643922327012148906640451679201120884997402950815503480774493782074776863026538913096917657967575964751558577330718206078240953840262718144703719134539821643204589840815821202043578386333325716070261502660421566925913708745503560202064600103630204887850861538872676838158711567999643311893476936619175189387219241584656246276762401572433857090619841718962302472107184302994158156912032974937360274464736930973356068412970920424075060647449763835389585182634535921468071702619475821528403317143772123623840714186084797534232079886072407032434156525708216166563205343041474096520212519729327039224292759376175064046689288472322906031526079918667322453651656267463918945607205355517789607375057136457225695163393014472815952961285483276358777800116403104598644793095506613178419133268691101775095205205210118513049655078306708495812581274902486662346063796120641235605764852774798070151156814203294220597771136620050200550142979945336147419409326848082697904964195526271046404786562014250774887054523095390533088860365456258784116319356994018076166195709417658485211048546267707957765380519641620927708088989116866921782680762563359361058833226919852664690810901843065650999560615165103783549377583439563562829412410653607065112754474193047185799088680527118854532652473670509504642511540896457922691498931036027734331821694937784564189135871394105933145377377131443476598722264307312670729946264238791925243648998318874787490605116750623035635796700238288737408431197635073299836257625214248862146939566668000533167516003435440824770090599476798356423142354268644432370707931980678522110599292606103769540161174311710433320510227642347493321533915162394982527347682491728800185801821670626313951164960729103253891209873844152322526998128846439659600317717808547605414069034568986303705274738621380569892254778520560387761702519431606461152115472899691889398275832158157009646493291764587619110068042633797698118698027334095137500552524854220752108343098978761839094198499262609954071655745280970996208600073939419277703081989878644143492535631614710752181430806506230470569711013741286915749721853064835844841450209704470902913210138455731293663045020225860307695096379700227669528721054456396752852707499993822030263680632835769435550344188323597063580990397024944282986454354277024349757263665540301383140642719005753759469748803115659869723005096172252127300622129087970500017063352824780518502068898923572419825586203797778709690604958070959002167435516117096467451524046257619953019031161150758262842609093844865976029911102614595435206072073670663073357501058533963467152084512434749565119617317408530280315635311979950659907237348444832331654387304148886262371038214951244562531003500634898956837833578556302015038941245453966257303075603972256147710599068799173840759081334191372917424372116115934032735309643361754416238427099359733956714917346193969855808864109823350920157675340533696274832517505594272574277135314797240711686912383567194846843290110611631588656857739986510422592492636639999573239578313766818620526794165502402417329724004089011465028638320757334276518973803640596686438490149882680765499042694215396932042914398917951325749868468498249736602986969569574156466220414696577854626201495784602879823825349843523100167836048538077815388075569384423418586204443794317226068110717509728043746625728282298278645605789699934438645402361859543405344718180631869423036945161110631532623580537896463496440954104287082295308321060933391473473590499419769638845391837393754505040674017594206631161556652786105027737681200329230044124884974896931638767188872678626622844442948971617562529003544055900117926864402869775557013238192345055928397146655116430065189613970727253377046733053730446455161534135450661971945084755218037429504803955212733231676822086315267560299767903203194288544864193033046382183904524812628406517669654670493333779179727094229482429165470373584540193925501685506421586768196801804981542054344248137504007868994682016133895765129429310823025258146558434944917079037801361492522780562156866416792132936540709984906389619267598897330663940170263287087661793688843648431380119840677271869192356949227795484229103583552646830623277096668852304344436713557768392311410375028874180479411629618987035576450809884970273353236831482803369029473575464237829105949948890044688076921183277373154388718612505573960434827015074709062236501964365144749965557030676411445360381497659872694310548052013051948959479169847332684522675133786280373575258114054806834386970742907334701830806781462042132780041309192604295949093659359657902675623819014784826135106306874364523692503932354101533279604536581477200611478668199055553326674678429645295034903723144582662759713313873871091281891475688240257274496697242357187689833941252486462275065105115925920731342088176537374676472299460054910964261864318497998431096938101505109948356224093125093336590688135315669564674035212287494960269073883524102421005744056618146829040971741448469032758492685519849984398408007352793036341010292643295971541581491480969156539132416641419313112083509216986661689745538594797692206324113045129329801334236511804933601130531317344399172833111417868424763054632810684273549526562485995745446426741652991232060195976871950407659810953545398270962396382062350565737084003437461009573883913836660680902740967022422504343424284484652508260994388832474092672586414207079776138158990159216785496678186405333534927367832178819411516526702354321537946386413777901270119121628080014877791707341867832633822368554609710426143590745358490263490575453679682518694360010001946037759621617210274908978516510402655241347624158781006763301476353573684183747435336848534147952480298962522614814827578441174074589342321169343571739124992534656299477257337657254053647461794107251184424622211355149612851892362487074883718253518507724763506517159868309627956117746748775360418606301417106851512720678798695075578163963231413358239143737192661660685086697208487935767062574983761218065579851480001938336088105581924858164197780213491794175990572236961027305044888172308514768768277802421576860737555529287672902314003311479061276212742286158547705183103189035526492254717014958102730556610640085159291413676708147799201413691439585344835114970203240780641037588438066833312073501474925363441110328733032038648982257649345390312317677466184219744634706000991064176391001324017035829799965332670467179013906982875744625003867657413101344172236277316212484440815660779162180346176065968095930392600655102737114478417042184242486789251068574010454887863439117742989517862623015873746760511790902911302370047976518205036948858901760662508915430500617021932473230692479552391273680153401366401424610196756824276592175963240251045576974149918634818332224724359015393104094409684676966195881467563392803390215658234671506675890698328296352342474782493106838541844445161352178261167269820603322799689824399635706082414783017655148108493922762860976413648983454181464777842138737343336233013301316623169771861229144794073090061517843666664262952634609142577453358781115230376771634981356055675915041133328484263836297512346678692421242824569141955574429296564639608974360711468282236836789366552874076454404669777762127806231047359526061832111200227993242664451254661151231831946149172778758396178595951445820879216944095538457613424963039700782535932496460169295783350465100625799227026299853427702994324634448842186010805610294864989716786724350139141508193059976839714721150160675160339409058178240739569839564575264369999927240739366524749513345520155415939597000178876126979261577065547644262620121909233139101382655274084879894406702744824846072358738154332172222645544114115644606149619601763798862055274735837737283777685450267214334229383293034786875562761462414968404489685350921486408977293447064520677465562491118703620682925155220496075789016817799376568648842176393071900528531151016381053253337764864162042640252211236341798961669389798696771314683479863309128328581437330945398654665346739701921151702210104187465028631893265436650428870335177988394059113692713004963213220277238435814838438001204738280846376310392823288905724047374225644936516482762879536541965928494460690967608253437392115291125828871257901814559891975801422149806299460039898556135929320235483707872371781063065819875043304953312917044313492352571884110552155260554620804238667911032896913676560524362672130250095769525318210861437270794095292646330588531397493165892890906750437812340107330328526009451628507506930715302181068264044892698508200433241805466687272106324160656486769516155465808595578992483871445674343287563923637160872719987715025647485226128869671417264553129822471411699819754565038691909146113282346315056914779697580069814487224259066315920652344022858628817147624108954276569212329651867172881239085027043219528059066001820677051152566516152344640861219484041903166816938513091821969278143605560592513679317230928627521834171748642371116613388885668075808182895208076659535028715538873833535828815386395919635021830492528981920219823783125096024331394475525067246049551408325506249074688255685899237883513517855776342571767229020993647594663813595847758984482979038267679786080065117083397604141643630114916822628200450348000790178347914385094451154975296505252361291334529828790112416373602874193559043547817586138166454345245021369235303973095291996341573370721247190189880843695033050396219840007595034491282729888051561016115260546795327691391328922370387324158585084589392553031252890307888827482063107559802562639434628353632372929359906119988863198630915333546312808982018375393597655812784282094679511265214129364962180443104733929277952782477165211305993273896658286202309118348671322047954677656083586718166273785512138693175853833994772570664538714401257118897778058800972508020065394257877526989545039447778309395397303415425143751955575259797377032950107729331731656035631600114143253217714991869503374550875195745323404786568174241294623780583973853085834743451979293638061851070841496190999851625169686251401897692447545176517403883559932747641918738100351344758724310557859290570648531464698366748602925062645707370161100302935733977468006943321324932671125756456976409083190240645754736448660087815687029725989923200349695259510445272231330554216762431198415050304487771892947866117060704312868753363733632458777987244961906281447333086134915336379772986858383615982262044824200481710154881118200738982772679230709502734900950211988646154827863669122044080389561809478319910624496593945828642912824650628026135485066089132397413687506400387505720341574600727472522649934085250696191795355937247869876221251322197605350381468513338232882888591432824405366227528052028676101084938226088789893468548068764459649175537585781755673892819058028117048121152919744641779275431033221096471012485757932380544009780235599699867645614974834185096732063043860149597764238360457782898511228421717411311415834672767398120065290061053564606562965074590431392824644968093667871062336359231078731542526240675300135334987406826246073306410400267110751560446116937073569034864375328930412388547216299560349015373354752474727986004592583581343531322681239517268958453167182256658217632957778757618811678093019677459675450370041405045462480354987619846117036404821176674232243588928276015026363535453717280081858266475699502876307407915222195929046419768822058435591969170179469223914005224351887755600561602113183132018383389801788912881760878113667910248283604482122052509924615573240022383686656544068803637245030127473314570813017627090111822769120537380887026831863916376923067230505065850739784567766367921394469893125458454025783357043665668478330839198020128059691838805201948505139485693762188191201545044957869410844875494402421752299460028203680719371523289217560732824548069560319692017919283605653160155259028299560128910747161753621915910420865307651125654209249101341189799617655439004846992249844422602986076065172497761837827927321503554836611594674323745502641646875999060820309896575859317324010957098774599500851523296406911193125988156265437911652524083330299741093899096926609425739338806119696393506866680279816750299136573117135167683130181639779627036914031552709854107731961627793574394739869459967004499573263919327598764701600444708884508262378482820085994130930606330506742951447722988553438138364074905606483005549891155963010113397176988223942260590657750132674807251646475014314292698316494736799027702846428294940958640434964404900769047379928444929764299152360563097432582390694139150859541364258424313051271847732994135658827329677459071466509910135043987990787321799644543272754011879719378725497647681980875250435904361013682212423710813353080509018186224020009368600114487817002297451984437718356901204742822767284440750953415251199613275252866246718177302028349507827150230104633166002323242879835581094387625439884057306953115367760795950344079871963150349690064014986061818584422422949522621896198121642425037087860944060569606519861471486842367324435077566894525135667687820369043573711778450417353536831495410328747383872894720619803111507442911112535571245227254710040252223552503660644830758359574054943039380697531745503212081616025540435553634078228206905908808236094145483961229269422008564595981043411279940312305471158893150013349142797623185820017601661022586354079876335356811559643089786167310035311547909573314870960979732199027223457382998551991784405458478777179050995340196738859499800368860647169081911344140238076487062595222931877162312616452551067772791774731045666611103942107063568269851256199349175685957023314376269721180504211981517252962406906854107285461566008738270105917488634968865006088691545560125162769605336776635770946212933169688871508967125599641337279131391504449836025283008524353438567988472047129567887123249568244740616983601186151516648170281345095474851995634385676258973362480444615689216599257784081101059309948103476000705060327740817643801925324561694642252440667489757920065856546657723239728549715264541359725802285680268926244900224123724178370527298939335568186535632146764846830313741724454457268063808403823915438734612973208943679769818001743813012207974413272357905673044640267586326351206646147278480986526830026277168146201943992351428046899667170855861572761426916394406137963075630290159541835735693109905273293271120768780118669093180757477264366804404756131185035212557611988044129249672219330526361114589217712555108683497932087911051685681237165142129247234616301012044121990104588990460986599440788721502227781525486618103019420211442402589909878883816028188095515641558992922756182415532605808575175526017143519404084118869631778874755895870593184662010749406702196115158826547038183420942781441656263081481314583977587480334586566390776712403962611497255567395759006922843592169781599605745077966727376178192847288928939343310408552284614467884247563751964122118236104747042130935959469943673532848592553299569049960170323221721586503422411156614546486179365045671543450072447003553873677485989423917797853607529690387171183021090239672828261098784477513557702110588210416718940096940161082761189001102470903991481805134543424399845646883001465453792596090610126230881983651564797802117341416100060180065124448765452399006759446448128538817122272979567528701960728756338842122743731816500081326410207417285455168596376414078355306575451593064693476847138334738503917467968076449025740336174446998353272614298593131949205087658131385482977160791741349720155303391971994008729653500607030384562596085299439892552205462925954606764908709357246178460175135849468619304091349181370350975300399962703153069851275834007927554320633925740177149137923323836889327256588527192170087376055766938389120957373561794150521005513854065305454909514767946423716996199273391804788640058097374030344712229001137473919288086825186508447054632053698500792706315806288767261596077571842521419506531352650305149215123403512345463639525395392387809665443124543756116648734999562018757435414183964564204471126236204467214398967292513933892561566260270712442903232875607455558482734671972190587334815036648693608745968880485850413913114847720412352843742338313073547863308656262032476484074078309963267581745661991217423261822588489585763527218324702162570198285910695191821765706454312471746611521109438641957744818404876984492628940785499747650040561371331278859367947378062675679328261497612813608380223439881397498103944607224537922645406751937478027030495808746771376339768794644934053964865927621251593131932261701935872355404455961458760667829545021575092246454997870410032308813777232894657579267670677987743922345875919000915859408188662640465972047030805532458279673673403358054371924904003893223619456061736873891269539455850209008437544170550690892458629986144864120897074518159480638309689584662053121451272249737042461355269410997369218962646372969908428738277691265805560795594057695105864573319941916655038509592315877227961431101876611783725143498790997939542716135205563696966580711569249273893183237007832841276113116525326392836134388707196346952164314227671976317604105171816838012314616138910708434306896997347576922018847380300700932602147072388642329383694371848713761055983539353703778325603020022742402603453287849408401222505953664041228837739966990460729051262571742871056908449951494671327784324621303990081806550485795728707196136757708108738337362318743881158371594182501783008169013351514233135454279622541369003232196160867849355414482676243855719996437391434115099734070309176666847800035519418470141142844104644163728243865055313695603547054259533107424494481895769833448424484368461995583379391782343100679280438844659430897286659678982856704235829641065021458217635358896348188596446147873715535053760683788350093479672882636053537159021220329579911134184293191192913178337161918158250015881812405305515855117956906180656666341140491832247648394413689141671289572064342414725273487287171369542551572490675207425352825805936460377417672567020527987425838363187317670439379005113860312183019853838202369163487672134284318174896106509686479215699284693639038288600280120209396066110131155524074764253506180255143672775711889266283612382021981854343006625124830387936755074915780919801727510970058560543890605097875003079816800217239112062173830934631118534244439417812966804679697133406027194841941831567481299442950689830614610121185718919247819461777546832088974552946493140643943490674956300413353300403608054011475268458362636071152760236501877617221020797231726024732921797794522478618609777809459049476929009857911162522157866939241849515086400710063746472677014577488134724243999988551140426240601645044537630881317640755520909174203830191268651870522936048208024551649669200458692624016389326469189071633470243469886539149173225977874047267336207748065259687633596059470608688862335607611646995979040101937883173006777546380687806098682916472094126276824699398380503309882569431204897896347105007391387508904775787074401317338836368448637478062060459189211483614287357807800939507942154179650690911710120842353844300665889857718042980507466475971692769127398561551945273965780952503972228565752580299357523896412410722971221841463473784679935427036438141487614063023271822648746889674262697776401193506073391538794698703635648017946907841535305985562215498954389335994415247420938255335063912846709375388883517586746015683834688086697452772063700636834227700194587690264316407449066842593444611466142457938866419547320705766093552982816407132618362211322261775951931141338840805813412549837904445210655455205624388914291582252569886336639177740090461045143182441005919347767591668196488127053377561383332819383266725482378987885541432105163583136434295348965310627285775561681941066762765983305537240966227165859206720615358343904437734102818975853094670262749001998828719472610625359702893926483233800350570856552310753557388399966106926311966945801855853290097445468933166802514179182557150974423478537793898458600081082267756878299354449888941571021488454377670244628689657888279766897345556955376406782481338333474221598927469474354422133747620342621238797167225814940145798532050554248861322016929972527864994255792918970314382933735858786666999638793199050984589248846551799610998475656792793433510490449123019213074865051997601915623856946299377411793173260407699925496833008058098748085241906760918967801942291822243192304149248672176723163055133373279627724051189988117457282285089124278202465102076314337966399862640128133977548893689214570093208951766883417637856757632763238316815228610500291562851517205128947800512448636001449671979561230557147203814822928876414563283641801177381557578660126066008637442096026942884317117940184007242577907816701513702715948689527318158673802970975633483480370129103879357140573802567189931730943275692685528515007193117387485223822000829656742937049325500172412421688500878683302054144486058920090004101953117544018736753853026846709217930038074430559534624547732152957136438142127706728026068908077057120140311410340874229018033868140393221667695904054612025613961299959027686510693963060156245903078829843796953161801169759742453611750204921863206715014296358905355135601082255665284731244447001019409812633808752754231621761998067206516614697186851074115997857350472949101609248232300069813464586145485366511964761718960723143268041601173087575024231329180062591206003738847083239481866000584409616216253001080053152144208692415514895908667058643960759361368826499220261288677414033917885024072882721928704245564995928446873419366786972248258373921684450421990165125149357451727790698892865028583186165133213955157881779580716827466530557455715359685464006800085898674634240225273667775618302764500822400230178306593644030476503446533642202547407858863511106948531559753894384920405432265256669929318610347801754665411618688697297953458402204190848633109805631792222902296093630726154084572877592561171767247077455676859559946506532565438217344673137778899846665614396445001706279399698127318452073481549618975769166028704356447729974799385515986209816207285297438218379622034100511789309131415126192304581352738732725741663925060137076220418106315742783098877036485639950398245516440284365061349951931539967055613670332204454670606976347752125682571081155581825411604388308056688610436696071764220039161055689064023727008882533223923244243765755510488583513501889737112280353837506769754521881247345853856001910393663616195513816062314381627935495340234477722015665773256440003537629436304145237117831774430059931659110205828921346095203285549851370411866935580316079885708765339590227413903455618483430861978049339530361255568971183550352071109226376716193152411438275363383675950527811992320590038642417422909638891108628505642439704175608354657435534530649386594489724876287326057454935659532371999414190152449020894132867165415501341588627780314837309055666896958385358559639970725148976838083484409396394744438799499883060088065976841492501227745974044971680863943292281515993489395510852296243171085888115764990636567635878651518728971077398058065190147702716672532923919165094450761101484545884514430511021548022536917812184700670336201998456894498836447067914154352724881535051599231954400689079496494647430382400457604748684182855422556520998312923640496302872292778554464344750630786640366116992865593070754122634347306836851137126321262513220681907487696345874219569285839938173279013391597139843988495414876219641981320375837068275254700694488858446531230665193275696148667954163621543295520474343482911072560311641663120700749002392894905880393624874679738568757582752708443247705176831569515604809270879212607242426219494169137953022365896264510194335450052977569284010494223347200793717605454309495834820204273425741035176585517360124811794222605950997815187337775914319233784808127343011214212455704209452812470093846982823497518559202589061562961038801356576485123615139861928638593123472511701506531315327135909091259711934998358337943613067008334115858984769397339968239887750855877750452788065088929725700658241857314098959431277443921435396988280776522116612432252935042616453899518083565814398016717672817804708116782001345094942438229990835131202782372632947761260801139255938981863383417223079252616023276573384121331187417323264994232279344755792426757395536932436227545070452054229770017753271692216338796031609017692278481179507399936026653249895154767015833557193825191498603164296907009013921565889973567289248972289801511087816589687355025019981943179969614828194425050386190589800079861540569382911664149647233811595346366166408341341844977058912307251257312392462238335647799499158371213719171385525700240578500662033376214324460049554036698716991233573359638600414035784078398958414245083738042529980736595062802850711851635578401208743367405507223510544708891777426121729861689691973918025189371720560194828109546506518445929032796293696310475234921637921934482074110653976983569862641805622273080124020984272267878309862941406904678115379016819951319059468547763175292474556577022610363965147280825021395938712960714215373438917665020439453737447246133761886524275371765432259801840314935800189319592940994584339072699283276159065674529439095176973973729831331752659698277352645316637747713336696874994272435856965098840024926612792772807472160943336179279437826673888335617852933032057874984156248360764425258488961331872479419621839815397355963606406938280892336889513924067038300237604743385531962154119549121425285577022093268835964046855375573945950830424083345011415844251983804840033595716176003151844441370124383683730824931427006605123680344767611478029026424262758515660777423960769899036548496237921849185796313789374000654667526316240022145942994536133672592168576887019224681865814426129277127503352266690231784263389531797133136333417039631901054072795682852983700376947706852587025812253831494188859121475521256662702420710557543640812501432784429597203890851830423014719975089351913805567243996375079382708780177811408535573280049661504708870812804048020159234800893352943181479930094524655172081794018394493187513649765660469895405767999624344403174216869969707404241732531826448118830761451552116703375867031272562791627259473581296251760508441768022133581670212548537456611782383620226494701466485121310117222021840808394843453838934174167913615387042237399855376115585659511867506801102924722047866196774757142165287726172797194017675359759322125481016617296908550873991754620031698624861206884957027791637331571799136653763547666348303215191066162694126281474851110375907753689513323270276904133192429180033630127236445467889943446166482884430680821282667183564503604673255294016256389352682022788220848614743253823137186200580936245349749465721939211686013657404972710552320566962122834166915084579238293508119538505744495657821974699794899552464299746741676988937767066060650585349454669515323664442627192092973754163954178783351361252794555251922245046667407514840108399965752493525807473305847362235211955574411636191754527161441752320744865614837532407150582559691033944691397841414330521921390990023857978136346591822371967994420672389265496897551094441438445369309588745719408609989933012687377327432268908773363087762263914823815671720117934682856763252254292735005270472232435470261339397480581140089776935926092832461902240406843761382714499133384422590944544870372710104584276010432892840912250649829469176243940664287111261472105879732995610740363544518940468133708593402001757326662164943689432391952314632815419702835352846415571151181580039186273976598066036475049992432273856963264597782342050585401893070305867122337105691520414956624650803560257437377500557309470531370465247701782901452312621311459868061460301922858208306689245786807155812960489835299078753357112261582755765105163892892740829490485246554359478665083718099306011852626326866612754797280827214328289649959581102732349589019352863313612560930583091747459644866198754599177637916312751603729415975556958236358138610142680132082941265147706380940592129192306374673096025738014280677284236013947569253526896583862127351435183645459129775212376485849094344989316881537792166873533870500480239038161238441291500690405324658921491179393974611913164659271729947834532657831933977268967229470331493316315974585751518349752953299870571351685991053172040675460093102004845060673428788011472968178253630761566918367710885764865678429399865437131376914416128614793645364060598890782990119638983413642575796747557979993249601008956694097610815890194894953143433493393284496446334959348239337377979872409247170376194962442832759459901051986829719764824064283834929165302305232802373566573524086936748595423783628524309080668419586489116601018079365238681462889604960756733877769987079345521198493336103233366964399028939192579815688688965471519166669464790400716429237167674366480502389337195269444904915863349468667515355274000761156337830868236310979618917727528032035918102005267644180202395886747442266173819341797561101293578041729875529584549022243529668032718278514370130748986035462798026232061142319882766555677354134538634793513555521195317949045462713414900753948646194319444042257896899194053921731227464444004869422213165997545377327313675291982948972927978120209756038886105334950585239733682285894706464164352125717583415445926249456396668335815788296202728296959431155614577524221876635809463499883264013523081888448541244782800200734539832431743339636308524843717041334778838308821950180070028366832271268944805166278636708193380558024708756798223645401962580901541788375727303428128956109788346978355909151873440115183652749391963783536254792585835171646271317296433021983251756404571994682640363209521535601324962683277540706318637514473924651413821549009309566484846993013965014506199790439051460397065184353718324874150583983486380835243311141481852711591825098845084083620585939487924978401564862257810468481938319395815547355750621484318782218715710022391373244548322647278070257525014237200399981757205898402565443762492000966715323015104738121990160116732144022637361517070463514834859497060547123064308758921550089496253090933085355561186188860271946788975926202226283453691381968094355877131001751146581185443015415267789319354137842561001070428174596988689497469750021734921571621561068228121891935834683224136881745344371825790251093943778430451400624517305307201123584438781843235713553361526463496887268130505420393878020237611915445748074010605955265816639001687833671121506405402359790055597347972943373607645528319875167441458194337486114262905037407239375935516358609868388651982359106010595324857524957819586209506940541782440794636870776092400875627111185780284462626587029111915878166445470061543931150329037758455747227171309308490651890377712507071366347052027897844638172491035277373863348686844521202898640650894685606727910752768407921986369402953926538678826374434254410814015118507784372515708972218295363777661643418676478804412556520419076286058171756890742907585582339855817901920356370348780616683942297319520445123736238624970484693658395092888671987110682280140661057014644730239609312991323418962750628155518529367815477990593067499968178682439471096560161511146045433161462858070668991540481443162945613877055971945510735429563868941931330946864743803000149988877747304470629889939899335112259866535161467989581846464707924693337081907472902443651168603813700630492811240552826502718815577698690568915229616745093896379577992640679000933676013459896915442932167954720268147920344397999589509887038436259753093935129161757534482194322989634428809302141373352425617224564665111886309321511880422370002574303806802090343707088035104608291159513801002893005324780041088298083534941546848453288809660726739875670266064101131525502092875695861379280804461802757761014574452475001401166258770012073652223632977997386719792665697189837454029065237634747497185369406576358237848923767467782160690278079499538488347727971242112977484026103866330049171973520030154342743946136876390228051780893688281813740408972793144637281938713172118256935977707751241814993684714857331270824903287117286755081287647011193034537252028541110218144633342342972444882248007594302663422717347940980475932795864897004829917115543433737739692610348172932193012455090541019030931037217047908566772170284572960745237313024567953344507442534954316637973842896680355961265152537063469538461435018070604155331852574702023268154132968589496596176708360036146950673016521528705189240137521331436261736863300935008574562482797970861878458527695500849114005131330242738860312070486337965862718067554864913051154686080983657622561509054605027290864467739181010846993104248046607309065953331930847501403265312571543789732246827384627214325403907092059526527962364805103124758978059085484890981779531561995106751165335694783712080869659621318626378474229083578503170679374453669698208249187854181320622282509145143195794772666433780062338507086555214518144618466912507297256246380728975893548501646955341368922695100233599370850156177544311318058562075983493652245724060621621834476615021283977022494964845498794332537847651348509993528513632347081876482046536257562363328413988978640756310776118628118018676910345040165136348776453409094096165855238171451233977889633965188274196798187669329815800122715281252770419377719860165906815919179555477352999226187959871998305157156850769188120300607967128599602703775158560208372330542119085117764286969344228636439965679639611068466212927057236341326608566199663358830549358491675439082078894861238623008380406256656139040102932681153820001662923085881821742849784483562540267851488262169172442979370227711056232914790110471950809055718652918049257723163567902820217892608621435287554688214797255491463716739183755881250629475982246887471170229338682653003819330013550297185695051074429363315893655072917694151442418447232288465157945649954111940167922577515360046656170112284560569822504278734067824372354319035813467815848682417769344807254641162704546024317333006411504387335366769976854513979297057887502629813678748114067162384405862314698656810845818653055600799341061313705642315934523182573282713818084414412347272636947320881673058824813425089331563595227063441236773872469264154669729914744585961048145762766035459677961427651132342313084557539318505332306902692081490385154447690907144166649144988894630899767095967782285359996229195271968134208376022026268414262868204626807654971405081442866169140188408917877865237420921489891438015858912094136380556176292372619058682811614304314314093677466177837532337392955858873186046373411144189822523264314470425025972748662659414033080102526968933279123611046916613499829514709382062952409459348258888967131458605697269053590751957439802826644889772206411307582423976592295866169434026321867050539764771318741830971092329042323417792595475866503238597652265405890020076035402302703326936941368334992687455518730083623900958462522352260790574567701075081243224158473655700638273764158789100006069004688492412764947766912111960828399285019556547268081092824729857568028567127077036145286187999251376481839128503501161033614170474923833778019505018630616575675424044987972878172785562431722502131206885098774897962147858386329150245666174589033571530890737130662786748839542793729545459913224951730178063934656811654301645410715318506973414292251289516569027010885916728416918277861528559364843576667158248474143325620260432649128263130227324667821208699887936347691482313881728507464472671098196668272133093642336807084892505993203482797027634487050520624284099169648317538882086517346649164711438377230315829457672337587947812765393886619861556414259985877381503101227118193359008400402983561954561810891721977434212250239333855379671557805068569707282563517870500588636897632729565118935895139016212454880720336651626591302150646360074513532855545292861142127296726532256712557068251019849198980716640950061348850152940799948485570821725115819643522133281500594986742294164550868831084896620086711583720604838715527229110739450174622790276965747276235228829255120159062082807083787000092896786113445860573650594879425566070364203568212199284840815280740855485115706022043605494620666384885371486833635389516799674481045088712627497112719791530582815010255716045924449703382544278048486365468619938258084227271717304345121946344521101267455655120476316600586687631464478992247446471784102905845459099910185297141461311922069809691316573115965199051295122878045444456524541551462205099719289387578056851728624766216647724049170011030177082250559556697082758353187943630175340538977900316014604362513048471440727688971186289661201630955706720902159991559929294344509956138971900418881005679433261166527561086251453556739781865812619424937552729761543763958832029903832874152390589178821268415096073315435881028258091426356987288654287917988947755832599114928110159284777907109886489275167019405750646811638453690693300025068899881938409038080481860595776183768470517334834284960175924573725461191012612995772800143377035736538383071997520294759540258149465281016255557633389031473328530290008148020289834559411340841491569175384817537750447361386061079208846558132278005410119983470641339633887393219878092708027803447640680121282573055010528614849835754001428229071687867591735773506582510008630110303594748266572146903503724531178313705688129907377017357803837660546653557292371649441673138213216789219146480127204854890584015244124467176734054847947256345161396493321154619826153351169366604761660515961038942574062217336642232786444022367586650436156713871793813318113161585567743576958250841257813178266048720011854915197809604818756930641320953559937249502706545185268395301254402801890726413640073374926691752402659247444120311186663589508645238619799073676884926626893400759798116158906524994461152395789552396211889599617393239670589313033640501132919402705460378775093914526602036120318014578735754251462558588628383002472734346281280970856872908870628129956352186308386753138877001352137126799953363753195057837067367541367051890598077212316056316946582986182238587478555279701798528321347103065287158484050900375475351893994730957073629858391248255185428328300056535072807939416992684426574425859791813339793230433252931143301460456233087477534477065789454902044633534430693847091890899936576078176626845470186857108795300574883931772508942125968640317466604295539271955154028015294829816576882190073101065270171195200318389481761590400647181343718928549525069506038434400007804523684914732498801230605275679961261962350815708461793454110059836211490220111186300428266634578523274506248975603035524119854593489573160569935767664857091173454706141677935185132860455336520775108585481823080960746523233459858543642066839174959054261656486020574796456519603821072306371464325719124188651214648828325776487941978604156259005320403175894198642023488555214506667375844617468354295520446019778938543514926405090965879996955377302577150638565773954375232912027645000428560252140990157580849578060955643432777152491140719895388492124530341496563098296480365288351828360230957065575821303294681469404553894812307895088572736546928842132482363513838418204356845964324532853965575817258746838667447669512318262538757505072623688053327035963031370811028576210608546767288397258975152138397432021604277817564394728715327984898810250224273637090602486922106024464994450259155441543118090532080905788956640541884628771222772071409131569135666043120308862115020746202368309967222002849053342671202990990607976006852052161810056080541965058196062659307400950326088025392695365633689255158528221471683628537831735441215050899004379183974195799002951960526033435479654010263827245538839323171925913755652210951326875281686873631193456894292733959052592402960311353051811189572152076749155711956195373737657735442959038495236111068499371389280641165907378390209935788825711906076150672957327319891650058816105893506482709433897647388458008425327688315701322410896114533786717857425538448048637030117736430792535308566440575769130003767677844938539101824841041255256662485424023883951055844169188431449081907221419546556853094979005053254795878824218222761738697435318166473090295474795529666961849463288414607382753513722197722658201495667090556501341777969336335360215718411700841794195063392881929634385795242509874804575606432560348865682565377785639822905415207346759676602884142902364454220686000896030095097270082278488492140280048778858461018311151655998113236081569398417745028128145276169792696061281367081992244127554242807186038258845325035199241776947423902074408404899887904602419916482332068100226220133883414845077185921412565612445330215156178860603970007351429375548178527998461757562266359047435282366616366651863507108122120404770065182638044978171592956153569352109094533124867186399873620276812790815163043024185972527903414131102908231669526552422639265164592448628582403532933583897272216976784619516179290943417787856857003473170883565005034342368708058814981598004872467236778990953872293163468157689842994712596755744554105243778821750642623202086113636434796650313966345598992555240407192910535193238617427281007691172236494412090512956842932856768114967655067735591792786055617703257904821464590360741958920725598298774991130176266334714186076910243618781519586315225388898144441652321806159381957682635527928026220870637771566608941399768530175627169628837929516151024164183740634013895172998600678140698016955734646473552648067583161335012954167969590952159759374954728882456221388149253316469091176407431074218041122234456465045944331222873174062052199901354512265876212052061538291420768115477611502291424242877541527546210808014671808814888707711609405849624143292698667277999735931146984549883839184483262604370981617568650821888193482502665284480570450855074806114540514006009829212080835130465222022079958566267034138438949433312111835280644764338596633812520007775870936496799245493126340386939570253705062367038420860809844342567834978183822191539505198022610301181958857308411607421519026835288986066330404781440602023352973805877644213458549671816955080418382593426487234530274513148267354701251674071657906738769859431886387649413990425534529704289908642428641731383222751067945430323890432490970707767660034615837287908705808029514713610007602751534842162352348757316923387239222237858544456740847565778832496462472712674233075201895891662286524660183580297690161924577174009909955500924907213237043940100673193558679595689940073120754672075712025563687961168193434942235456675250257524827735338634013399341438950750682493143745304875309044905335732655513803276634624412941368935253817549179435699577019215991550804329942251263691358996015162833503439749558908979214060379202600815610913506511225800258809585939497064340622334449316838333301746161706560731257794612695107581208934164399530712755903715863119377724551379704987949314119011743459156843717732222167699207388054102979872605075779633982443266652341980691122303167725248917557038257309840752337405870170612942222153173207030416938175457380878755952303398253571382499623823646967929504510479031782888655530542955240560669145763245179891873586437581426774510056491757585466614875919779726175980555444200453271337657852080935267042708321419852915757775836912239320095446949244917520152383945363010267407086201071983894047971060938121779798781383652052894680214474001941807300307639134749737703815599598257954339555216996191428857866254006941730406650003173051941317879149934155414833950705914117003615750716048236859245752702215697730819808563675321520680419354060388973180739457838839794617204257598109256486353565999950835155779658003540795408929061350557752407419240095230604869634686124779808666517649133588142771124735773001429791989326775226521019528604417358584187048219853459471621987339707043862891228659302594772000803927110883637386261880588265725127269844716660728483596428625811591662192644233097731942149101533550809889988060452456150798259058002646683219645003598331338096637961429962390824175494228690706323708352841258047954144668843337511750823067089352651860344224569692483964744682821905620251262444626959413606992673951407444939515950249258504929067479486037968592727919818889368260237345983333422423205909267884025562375715513445122699441491283521034209830704765069484709968775990189151287726784684305797411341207746901206101899222946626547218850565105365842770064009116570522248822089995573132382777627526304681612748549480953030352602654542169356191153726100621394323675624838184821158741711753701482923025096501781383822096380604439702366037914329307998985747451911561854898435078346125308451209779199282190234755388085631917955662857252549634175894709589946728800488981104042513265670029597028431799851839118429544783158421609649589121094710789409520790422400260425996291250817924975645549465860339268583588593497749150742639217255193590522463414531308814505253260398635492158140050525239245371799411668084166385427525707810299160602788323284583460232693797048413668696168877506304447158742159227086878348782562557348083287914422666413146887686005307593479029581473075924148083960947869936857001625064938010648434725853826245564887422989730936333387115756211206957623148051156865417545277182609583411857302304754454776696110370326029248786068660021378861148859780004890048432944844473976748647160180911248134941029157851169757883367054278724446236712151913868372917237522458791636906887866043606469148794866746006319797556570436573265501193299024854429629395028440896875516824497799786445661609487380497402957935766695400558926735049284951431075945329092054493721943979459390120666609412813953642402417502771958716026764649408261346156517865632204284850003796959195480384728453961114375456653356093323635255021116908581639047254829538712736833689820041031191912660015470568575987559462620367093422830612829287286635576280352786267060389702945722930707620418604754696307577695122137814747197511187256023326944402570457851370633754413863045620467370284876566019662557187758177244122917515248664492852208942156570400331735315704302190260988440760211737124863767862316214139367021350494094989744916647626694284824763690024910898018539295885978032262028483540898873837499622651108267691252139921919133764872454159432162455067127758544514119473715082135549866822199380288042570627938279415231735217856654683480873216771400313005518575050584905383347392193089252731246151488341773140046401869987200152922405620441652874267230076429917931250297406665051207027196064790307965216733940750469847438116468815433011223685114149205307379200881558626803692833373685253972876070348301971196684538120842659243797539688896977785552503427780877896601844258860667605654280006574809666982348460542896958013771737790827013160953955080527999193769488459365106654869121134564663948342765801792869646361251662024589017873686854978622505157165634732996392096619620787659754417311914140432750835677055818206396361621768251575836813883933745748614875874554884477797150583170628532000141070085675754314606272269698595190561376313621835191588779352330977705312931700725439528482320005388660402205330209970532632189379088897213180142057345891369304589732106801239723473520169282271498496280263069804683525225936865071424037474412011340268388124213198758851237677763231264080778749400797454258962000247934452391042561409958587547588615827952995113133319808681847253045299391456159904833987229000622494712181413253762608194868852666102916336453917861490845358310189251014260270819418106762194015580212476777751898067564089820195045679639975597409241214283564846818195163046351094725042826639057131856190503869091188266428961552014274131832348295295413266026618980535249409803343954412197074588266570644057391466035795761421319207686060478756667405615355806190873011853337292379549011597153611278132384302405305690830155685885892478345078957823354555327867677984634304828368665251729429058385154576419426909350672853958973481160845805076556907145708632853875204712532965498591589434078293142408590784360725858192563436963758405884245931301434343931802661288636875023403530188953359652473598765739671003349381964632939449549952937431346551075134966920466388963169254985999978024677775061072957995514442830689548604824367608348170489251593231959788809559415582040355444130173415422015019939628487790135866644275407486490577415803012814239344214636918190958119702456961323278346270866239923602035674185214462195231038956748784914579461611915271555642187294121052605340526756974382799632198537535316506856843002640985405943957887319497940673825886908190492890864789663075903026136653245067774576683932369585197519556423903711237047698090747331589355742728142326098908899476763918896604070889584869188363438921474639107891649369103143953990044292493651496406683647770892857388709668136835784343023206940368226388017765733359862538603206234373960958325536548311094843704503086419895236221171640409868042988294068579305907202647953299707094351576377125731389770445317150515445107121191469954250044405569624409169981541329084892926208137753769865763292045246216807759474442945990330549889026795763416879536750767407035409933151365309808820636074271569977924397427844110392363128517613510626106109905599855774193066718739112825340195758083797653422730830547829167636258055908135563016935020475241715974048109692665663705833983217010396291099257883347010548509986424373123956540686998065159705372689328283504346135031179230255811591666330474168596093998935008743291880445985308374730903179906248103702887378306454250115092780017060627771544273167436253945380469094672988128264909355845164908183153057123047086779142187383247716182404821412858021614033558827600657066834904417058058639761884019835452816389288292115593175114270698147176399210875523601380524127239390855618365402844481285814506138004761677122664322965124921713711919049448094574355332947134786391856032743743540750397104376807034675494452934063085636346736967724199414323142766934579993121886137171609397671386064300296105884665839399398426975076755396306879664061910321120137663986685719685989063818203445807120083197041685022411288763437438101610672077415598314087781769425407075034915098877199566996365958926001629109715828291858999931864177509284310712501585571740111034777126124649304323792892477852685600509653821602596091298756719047338881494990017672688284053917173202330129693450140164172111262879278653618596821862275156142463164091465120846143120811541569174225256613002801075397168667693175181110719493567613935428748665742353130274734583915684850958899020315298099338091536923630878799111093388739519833123638220975083976849439969099530830396461726095155400141378768854088212954785575412137580709906860594516809326161932881171066892897026429575903018746182602710579313789835430719025109841749644314890014396557951524215321991647940649724068169534974312468494087899542009228656071413026006717305410165707259614738045366266220071979419714624206251371502176717635664606178946644864864322469242139618700151614607021632761480298043292898650861722186908089498095867339545636559309844533892671647614222505953204127516187206881510248212889679771392268506088475183574200172791599472495915584790552113001030205834943935868051558630104649383425011741526501249361696048404969759405344115437585372828486679656053813560564037612778442091585694716824656573142375707920299272218671419556787655640257293844426086394382701712089320276475137743293316871401604254748795580859612017459124088382833651990628298205650931394008789037393433724960024456550855627288541538449274353378130499806285192056882992458361344552525185902592356210460087720831850397910082359097520472168378182944465388014992408240012650693238625716364209083048078554640910659950466647887739982268787675688351132692330909428042331000458257773850892597723606347100568293909897267718011948048605767642585339207585938431039923511238184202913874529245149392422022928280507972707606263017967313661972593097566242172866809874454170967245450521980568417150613391543369632529360295885879560570299777343031673782940130045347335614934653767050393737256398342500069870984760293038021250689592306863019348320834306350984297077545649353222556979409335440057989488011681220533400152464285647938801607777953129155238952259021365206623488263167959377769503490705011005823141201001698802094857592283654118329546703680618487206244654378263893806023635686583815040787852857434373467473467863848418101866788885547791132016901644021625840852189487484122409809115452601253467760430484804105712119460608200739917691779191159484708990807554911869126656469364828120058827183324805569563611538045898996159638085109065000803417017178464328186885173565104620849089418974120673462428431787002688861629679671170510488939253249716010081181599968467355478609386509553167161633932382762423122088971332144962332801875284405061203202799473571211345656610326464321502163579761001752262272197289852157479743469220097553378577936133384323289946983811470981444504811996385371246163814256912930146661957927033873566229976421696818532558101463143028650437635964534877310981388336900306119379557669307279627319297987632717617095787598709175963559691282955657006913934450756894690808828858422379573586120214163925163277945559871749170118881813853139109574142010546844354519329149631533051350358918521750942288507198181228234622730801581481060858944927648106052191074263131476778450797209659926120768256895812626817233914034846701213750538383417361459258124856532985281056718351951169500743061597049789068951324696788480730820524246995657952466911843081756395131696400240534998129709894625300289103189080055701140470480827654663879720565172695017419160318392620561242916289392072070119258932151909502616184566811151285708422392618165930881950121121219355730728100893323949748555893971544154422340152351882182072699264224189217798176542121054036485891480027440728973050409830513997666252371537036957259556757403099060168508645507560218552592433279990470649764420931273347751010952800693457822559040203687659675689381282383899035977582443741664055980831412563492907018972089185948819671279685230283490125707209542374380809219232644926129990908297922351732384693628234820224569081356500092768639998048664366618934497446397072805813179419736425849122721071400993679895310071778778892912839556475843501923352143623200188034583322272731941483827644273992477520456918271291400323411715072484966009333344029104078375040181235803802148331946818883380276348250474852983245512780642148084822590937666599668613133446543077393138330186085428751623027674488544636431881388214115238557500890160786449791205374423655734972853244390234320356020212799246348274488182701691593215532798980934890145034781640623044693797347291381570297093868553651018674413054110778296408340852141093881933599531440891726279080524486947747824056996133706818485585856089751790042526076753891392441205465333874420031646119264955062619620814262666823692450233863939398233011943372849960586688769283252111848011369308247171896056866418044863252231257917394276026881747147877100323809132973498051903831521051562936410965415918611098108098241440339151867565332903333435175795100996279088548138222035024235910566136111714342182368314582787990023653112309838436172346390570257622716272136721657521479196191483253817874127082934184686335984503562868762467125983386801437820874649883551281740243739798268740495397891942030519915660670113284122055655670136936355647374003920955861733744862936018892767094968842373675454747244288994569857465876083046029179662603872096860407798509303524859482945672863182439110217901056200198478120813786045057036985866281569317248284442060394260187106969825774362255376221489281795947513244622449931131531651458837290272682177667566359243764182806903819962192347861070947842236267838128354331952054295503964523422286396807951551895957998412885049885317650373298209764425270029726770579861406497134201053415548914008683692062712149202793125004973403947368752638235728631386175253548638618583613465435479282453145956344953791752923623577242959764080395061734079294727525368795148374681036396601747305021102584394639006813526417542165957914799858574338627983362792691939800272975833159266937998942902972641282891797476304232946199010173355426961681104493773385028569011506897808964354405291871393268452006068826316757151515235815977866958130707940660222812892839914639539210091719018059033653180374617390417931505459633521366632951375502104766240960182963349081793644187571511722603353002381154435843293810156312356851632490690033113977778119591679485656625755088726703207930163409454389611993619516261583196205837881648298048143326945734447803971439916849062339379734546458146663234105729589444333009562269946807149443287489264834948557036000213439588163991956340278760791648426102439221995672814364288962457340483143548861217388708933324174305141409999578339744778226735079420166997973084711487166398403918839126156632082684813778392487781136100427498296759392589004747812449358613542063403328533053304557323397420342505380401778305887125023046627215691970421631066804999800592538851172235591110737420292602740200843034393317892160024233761946051326617734076138253318487164453777544152218190985162033074413531574747590009956983104524202750126936965754635186635118443161335683290127475111241670296112567234795264469047405504712576767133018509500311290628992319839681753022326647121274701645907763638468311064330805368823052749365961325979360345907080198124124273000415182594390508718003367084786086402088480186803681038827229956163083909630439252560093840537205919093045495840034424660741491721372849647109887140180597844963738423305900903878506656473360162730021038769788762450173578479981481211923153036731291980688690016788744580727283053498161187078829404822121924211429756437976121721473109520984818423848081170161656212903509107794054119844744743914431874223021986706917164654091894704427180510659588916937670743336948318040879970799865475920977404376220113972417470068269769943223308573554990278496707777039635354887768799971218330520508585006687653444331154303718136501440220726102917178614236738066470167086267490967236191619514501113156408785177644318363315733633432285835922476253593299950096105164109706603420826960921612375012825938020327018760432048458566636667335029781183221528833155073123505453748040179643191558761720268525781885432485626406963691587550243795297896653748345733063567943631708217249837111385002757615196553667323366287958167979896397623881711619520557319306454859001997173991182102464983584720395712341646930693145344910691208108959212121834013631190304038536037786233079894242068609111506669937786608983158097267635474414913605851303355847326475095018769840475207244390250859704944204762806061352210613380988026226298570394491503846371961088445241237856665052206415346301474085378553562496272327446334694535351574102311408101976347673839418952490888235460064219061130987382532825175842978215255850317954747182224109342181983372430034255189387289793616667464806880065547469371154549052825551194071094289863004852741844004197163917248227960616550333993092436395485731893108522342177984335134116727628072416556556800857794519278847645052460158177412052078443845811032909444304184588847934406703521320668557085483734021691934009421512334623567617146560783435089199364480807218826476297969073819022391334465905943560554613351631151559547955940930441064489599186886059189554702335252608729460732594799919936297577525280828363096524177985399398085480554899883908731963458399638802497868793482938811746764029387994334729720807750993010710402781288470563190133039496698744507575884989444304401414493095833997150579901819518187350198315352714923543436681459184462340537089787526731961071157794803123806614117821268203731809238724538298556930275358811113008204344955446509393401447720401704648121379745326018242142995082243433699536369821161595313563976827080705280775742786291489693784506941160038280743897133324750155251698598645409400304699817185317164149196036006188027616044076538293381860090441014819804996133729028083503295085088361941920772396739569055822878654906307906125397024531953541166228949171624828004467523278365846751400614357133404607880510139090382371250308091655159355651401361064728008122350922302917922002795904531446291986442088973318416461790869952583480961741539698024326240015414345923440097310027001387088848928827676655453636175526707597259106292796633318448466570299545157471002484476535603927391897937201618557580123154094007210795753332307301668238452455012924834638355988375048251511017873502865768526241607496830995573051063108894340357312937366345827603530282101532610064196691624280490465159156948047626607654045617564525810206064090149611418875835134001420501853916572011046001246577972564108857880811990653418778550458694867111638913139067091942844261395168501633101348336049887111579953532171156526996747590833810224780053574759673374089631338228969933134952905748314041435291627663006616144051141973064823694818989160636380028344186818872193144294215853806583624156950143097657310089802377331011027954343133497157757841405556709834153925737022416272995070828142381166688591429707658497989291998902349710777814025428441089808130716561048280286392749940326376811372007060724643583582727445084742390464498424000090800325368857658434589933072681278812347227902664555313289703400325857544317401379264106174898473518463791074743419911464311996430407883238369444794725659311529903624762476216247151332008173980827233228072657871744381491437952334049996008791451905060361849184222260097074185944000476461178015986314960132463678977417889633597765632965265302886631199438292857566817132835631791195741466731848145615510776241034935097537708226300120038879123824088186165814366218238993782702763665706649446924314477606067331033916966282873031193562276757300016711919489550815677442270581025803894061829019170832207057879741426511049835493781451886454591425018052829796568986349058179330745871075096975734521324358570221390156788494591926559187121170394340647139280977139413344504585639485593535521894451715372848354063265393295815170151071198855522931333969475605427765705824280690368912466029298578842691028021413524629448140171090917025924593105135439322835684574251448571996963838304541237082000802828709773388435676891344405555977856613657830717451368738306467331008130919611806365102797515300765783121926098888153928428424393325483632386624550045037073990898926103153767119180441072399972780639879028689899182843816092406007739809528587756782381946250007017759158724839244011239575364021199296822215048724002084695926358809250066899701744308125745234794367754760930343553948325764825941080772544056790851127367543773529397172531639441153423547197633284521543711997613819309252680899169637948793775910746777478699009115171608001612619786416410617463922617977052833324454676582096336639975795913187144299114169000589057406307913945785539102983446655525705774784537972091999350792297008246512703684649310611912763518424802408219860101714398110039101466629687490627787110248537286640229826890719825150467831957798836243054485627017530820895010417605378847647399197640713057705512238006617209862549458023251171536075097963025305680889637936034438195086610140453888296389906762010269075590865618851941498424298258885245431221862575589289027819927011461069179993638885199822989105471093631494435219555657758529893750867383623304379413592307764306695026486394125026371542416820351795584709158300075161779123470571775206454395487316403696283636148853200034635089707615238456437345539382894360842813001014278601208584859130035777729327598981839238233976182207844282044305615579420006783925375422354066218619927289355487827384408021148959139509206059880923093423343763500896525457653834018278790567686526368589174790946908121832830673535657368720255971995022253926853963990223895462521190480864066360956448590887655919272908160028427519003398041764666678253501224709018328467406420989397769255562922865182428644120897338025384391361372363514539699618994862802843507094285759470145974539450119002067547742176294174793134390243247132124217833473675869373905215341577316312362862208937371368424778248671469787344278582557870144239353173645024584251690606959621619929024432978522037179397936420627900907420807010148395829901199212600321706686833080969598904969085618395724883785775770099796431794607721861750484462704816228699263317861517899505971215616034725561934333668349129883383949634191119548585947078211710671071992833029343655008882879184495133276075368649195193011952050429003727385346034046794814236713259817936298868770960197577616527524332796973517037653416799670374706499826599669107016271315390013057383151241993030596250425700049705855125718243936932788729534801045857949003673182940611600539785646205687383493451973579411269389952837369031194687177381391203237591634943239963317462640918709407205903737450889738302237931008773242343601247786693260962334057914862190827946277584726494017502293468633588106561591346959042458657933717229045491698569496094696352199855032206650239877210581673060025102628124034892955124870621152543193120229372082245928772610706143523808870923143197356532645632890433671436475882733983374504954349949543678519070192146210461778459441769966353903396708254914687596443335975115059753992904333360902073535638264269859415236176973209022620603210474248084275418688827834737938699047518800682130389400560753985796763247914938379547472785647572675359671068046158786863235338241826614676130327083247533483335488251020358966129055338635478548466624649839382230187135299758360642154469249233855381748106318430101733340437925634653641011115576088497514334304448974247908600817305155695845931788605221941323321141777846732752282076489198922073834761795118895112720482580367766555189014747689933962172781451993977785065220988995251847741436641926860668662363224357517507497799240316489360651947791362516771508451406186149765204580483533411979442263676943775724464922483665483116717452833286558863853262123465384606529195934251755379004448286120556235468084141686777975363186600763905193779983046181522484290939110977238664766087297724563336399244323016382972709281421577363122132112602088622046515869117085998624744681000496958926660504667144542064986988146595442525734917955859811583120618336949618744722201985868674883806716380467832119475698883479376062878211841534704519551360643061776337041517786003639799613364852317230437640722785272047675744300042277345737765834918712210393971309409596500910294679447114125582227338444139474816100822452589157184617490678330165890117641987693050981685496173483878553312404895618540550799206134133623185691253843919865779012977228481558335637545634474090248195121808564348002419774564978023141020361069413056921563157297192988151439299976426196859277390186433774565436844858229434245847183393346052844124028242589054534777826511797570272981159632957694330962053974400218880194739768876817869521876458859835019693529522516135640365191858542018638561401457506486409932002708830390281109105244665707545182390010061959922776452722844445032409571608005892346732622861719937999877550028648206645283230309625238430712273426705839794160447623878243938579898343295592351398917640832777509997693411175820359913396291766494316333602527275258440557867109118380353903716862404498327824604511713205473286524810859690570178965336814052758937817692650939364547486834588529132442136222579519563151385856895557100552401213076423086485520902638650989475425174954274994335709966645648096513772368377235595966313617397326639956327899784876069925425226875324980862058746100628464515908470710054706037213123467390210569860190904548010568292096299700721608362477051117132130670516975299302393201247755985993868406454934710890889034427780206756274416045494996576030093716922810530543785509223924091148459938049851171050477255083230345415082742163724520427796148082283671321754833406848526188567516065935670454357212542454916150691591003746765782818399546876582918437556193946263200319201167459016719951067738395981381347484717656657240560441830972190743866905542643415363672774515655613405655767443347206495952093556088372278502730126188717982839427910770189536523156458970387753857494815238457898204947517915228240474320490144287729447275777864052868504138264092105229569612757828748187135365323709835756701426366160387578375290174789733079016637198530791022587704545324059292435324064527938944641730917876310766601776176967923020857111012870961098749322420870156401006104173434448783666752964715308882735459467808776956323871975948119668867233353299418831591447959301221343199837990769464914448243971968358355423723960905734552578750894395282192044527890736464799110531528401719346087780863787209676745558104076191520796792578056807169227835590476788876786211513662259491931502719933053497695224182115040113498608664338489412439819985400103954041010563934255424225695902927392997507687490203530204912250516547996889438758293724470183346373309232773744147139202627424107698452219399131175860860074872288234462151805340010416714583295365719182691311215160222472522507641316773386880549490063693520233044002380108484078141633168391250747771707908466172056526393252957404292852258067239215119351807987223087525032185180689386761973581157543757369433351917123979527134858861923215263639272756966305387066526628133469077630122937034875871297054488580517366377914707781516350235139974993315309323200025481472918868415012790125282334088286833384521540468837628835787494365310623385609784615654914598200580864415436218026916432942332336071497576075747394784664548177139399886749518221218798337394659255736789315421508594582920357007751120786484432572599174515848561102890272267156138151275968746409396927122357011217376232233433132948954783600784167510083010984810823031174648181596243235534846004176828057156949035565040211957105641145970420485622035221129536647760213917256231802747800946938850431187511020250654912064118220876080603858768147549384457374143762931814813538212177150357614774637493173533107625874914530267273179959953221479213545834584285196504799152349392149650368037312428894793630546063052364148038018796267982739183173386087500318292323470477155961488666407650858998396387093951967119451765774152336091674819628622069593550016438146306996080418035262915942470633707731503022154242169649784550035315876998597419109520183207254982926253762122650927468192624445180140449369470614512979583066187539414729328923107788138551018709516529355169797384426801981021905650930015388261639560149366681078360195121765668600591490933976739529438846283364554052687479077590585423718368730298111531652435793624570138506770954356024965783731151315417129784461851745979783207348582157285444832700319648198382819213783676330342845627163170411692893180862772040366427420847107414269620892088846366406010102531664388010408652462498273039784427308388376352807301900464377585285460057906384916183811719603672403955189753384293354466772588358462878164217887907475057940137076982012895007519360047063942313419345204670964986476497792013817752224835847586419230072033315976867721022382673150210741029970080333100046967309177382783349242830906059456062627273905433737925327102272639686100907024808696286128715001691978787202451543509247286635981604752872995932616376497032877874574909041336619089201551226924324692073173532079709279933148144237596989847162076255996162482131707622962327351913902996926581836895572423458325344668114547203999753130838416918790695146240580358647517274274491381249117228838367287543002625857427135270612708844107205659760102157863210345415208617402690892814563540831612460231937554517536591028046574270453740696246933262959989413511606196891902044982239973311203579283901493759941675537453576658320649437179262316398743153989329890063119396269391668179946880998523831313333356523257270009056233563229787947224557705150648586207133163484421442357302412445509773897955470039292244799101686095049872428710119592924295545152143686813901655275332817338598810082164026964406906708774172348077111821231695050618672218988822758162074703265863023003906999629458257504074749358759476454988958627843345526893033519033530457804345074024105850484519143013871183002648227654393717845215616571206783770798488332470411975369621978428805617763443391004639800451851591443251578869539671418726960005959045753221488472199861936026498174850031825459785726044838069381780096735202503472592000714481998275351339835418207201467564371499515709925763055162169238646795349052237293249529951660247477819726305650025972390523741169080494925189771585957821066275342779991948681755496605017442662676736323780100077864474813428752733914232946391654302867931623178028810794254128513294595332103685551210032019081397754628759077332704665802207437121796761818802822707340530790380458433468394895729987699750956534712598717153627730125247762818014801607990660080808325989793882975417110341115187702668422123872164235809266170669600938720584433217312337337649301627752436126516241630882533455719400756551692069804644108663107151187728741600533684488863388549458379299198453832859612411068324703286155089436632053958176098406612636513906342814763609299495474804035911417428761359757698959397870347964969559659945396304657852077259041792204422734157854873686025864196197884704547842368882933104031115666845333356912127504026089758046042343946042175017285703561992625021015607548682973664616336475413853496731250779700977842263071465494973998729175482141539600035293386306322363872575606609671995280654880548161367363844350986379804124885879173558636150567684739829350343451462019377122253108942241790776271300903032753994453298976010439368159312467710297898082976932670901442344239784344744676447724279442481791272830109075604590540597465962551787856105051920099604047369041775814982751291941827476907266048455486384000830336138037582866614418580732688273758282383411618939602650746521153891369284857292513617103353193259875373505802635717089369065621483431276716308301048500267412582445890367999908926926444524538612457305265336868700613432277681331490343516075689670914210252796488600988697412582290970486085295656684986604971643550627919672033313124502147961620536277222228693384633978902429292328482230554697202971882832854784227791560232051896604571838691840859924911674835644503397843181260533764126847018379474326377942527408634653254002458960476164474895619251972732907561159508644311676083830393059271963681250530010143795783436160115762838304259026828513072814181823024650343919939458329977025688215880385874383738420456712503411162939152750824163188502880628423732500725391777167070828034470558952382935269399206017580492771747993954395311529568687250348984632336462204706520873150417127450699348517539157551725205025095716709984631265011490823916987376419185337753231650648097676302541647861259267232361046651361877523715507228955328628531447087136809372898827719854810383380080197437088588463577270047549189912775667568989517971968850625152620454979426203133880434430856560741719407066267437901343856284965426813624262586299548793873182626044432856674347751615517059488492751581240781241127867993234734943928729482806262932859296630848714889155831485707896000613558891051203505818431065849988403482412574607003220963824729244224687418967791519129403125357745641324515665355820081070321581554805666041562688051296096967262556765931163708265559223975477408256813727901727668590947388155236342902358220959190727734624433142037062703660922194935974579596089295731710050385033951652328875049852543892588708403487032159421852248575336203121933204422617032723739649464691696258399719891511418634194260470377814922905673051647020300543519520665461535427916244007711459765906556057494505849914881490230038030658733925318768825697232932301746738734313125803124103847687155402818417428603888477761956729654510286209025547122451834834287612842809281211069883421578912426580790811692760850204126227541436110553065907947986911457775426077989038345167307891288959530965673497776720593291164659977042046645536889979504490415041798193085880168360414283276044016047809601999913942017046204062917100376792421194689082712839085929245681759505931598724289672362262133197395954267451854585825303193905696112001734283875311839601942691172466095527193578791889918577539250480811548039444349814088454653368104734408465705755246469302119084912133926669222595139580959315686730321159305673137587075369458285644694038948260722227323721615391653725197545684301491098714027381555683618499606151638922734434988879128010065814419097949088440357220800930436575946612245407699785823026862902187952694283386353684595647918064296971349191447674073361916429747276003908085170810222606370504518733937174982269319847223386996447550282732864460901587913762564170265250618335654472532348073765063104510489393696809564451254367172171493281846486489180404048254327840559065929662791946861375517592381865745897427498918341992047217027005323226874139629928544974334267986692912863980338407340322825959056234638809054893694047630709882215119054043545519169940260471884484440849091486125446185796256135304411985873714618271796149653790735744870924102542118284020378679111636527706148235535822887501582138921717710181071697337684373899443723109722459789044327872441219941538189601350374315977767366360559752941399278157051161405506790125678996998849766969124441971957408395456951837676721166491593887885412536903760075693141300431585694889729955315232179817957341574849151912919906472153723394866737910124463033775954810205675729624557953401402992284945924829930242105652452171002046939062296146285008760625179841130145591705557157427182751254598470347052936451234677760585763355553349350736963937954321419470486531240909258039902981582854119917798103033340202434345937711559716157437305888061343007667884738975023059302293686526501120883567769879488130752067259795725154705912671409647645684660789545175273553118147875150646768170214864885475569713484837485281696020288007588680113528339082335817899186506721927156935065834438897460968609155641970069798520818742562016812966907439937786790265702541047342425161797012428160601847870954731346111078746760454854978168714959296239057314857975317292236757343903866502464476773525072285526656898506852229113734873939045486846327443125289737445285265152070504100051091008065006631062494513627549172176589809606133555206905766057589138039051558224696475699919195792801810289238433468551731547573301738033609044640165515736556336954791309836370271014826182992866808829563266855379271757076816818157569813679554635393105627866937531971462262246108135601915367078111990352470874183237422445411748421751760059912447733812730022468920415954243458374497805369285207296722712984280203274365265770443482577235757653033805479334714497692511309188874436069871930437893460111827191082083421941606366289392515207834950990401383241717548327282460672691337737582566888145226408785316037493135801191514320649940019900591518437873931206853274620866649214935309007665128420117837978953370072739833314764227108692056558698843516575500779155707234140115498832518112781730238155625632242287351214844215590739086967873039989030281591569988345323560898917067776715141801547867882598949424137215132327428770064840239037033255273060548602497615187342015258116599387635221192136412384415897434379459567778821192001279260506764483026153984233965884842271085778927154813791474376770636338236446914318166638578052949678770226668172525856995670531866392601986465102126695818617212556341332187599292737927800112804494557832741379011859665674179255743772763493933353315295504890341123840915257638149727217257681301459284781213617479947678901689764162286476377006149835630777382222527197733379252823135337956223668971005698917281013867133385144558408831490781205549576882594213970603259748696268195591809120753493140367943018176379107560543353539049317369543062142023531769077736590551878973798605879183662247839727084481568750275007939831736539933363298832598030840743089741391341211557215182852230234916280939904712524939420413998317250275561552557940831680336328166313207434625767718299506711110139010354986831170431251624997705102165898076298166303708011129797636038853623790183840974952331703863016980750536570111425137449334136038024711941772356305924910311541027846947330417683844963631706196469237513788376374194397143617298910430175770200240303893543455044318898134985915562866473948733253270041335556673241622076355107474745969288527996631819937756506634237933244827242105130934108632780497818692515805465855040572991167982940714698035394586033815879536929239714123062173099577320204421378374426451646309683676243234170011424086050675490877851565048392770057580834608554412269467141396685837507332676802404731446342079300808193624508030295195598967703510070311828524302359645043484352021983410506007970530709960961649472591138146458282014902842367438400238617192046857798627217620637477453634306508751904152266492099177955718343195543266989344100114877206919885771780127461115299162835006984824067544895308544491329665703603946055795453530187440265193330400752565099187167766119301218810799174974657361976822693668574798733077030386197393318441005967160511530243264104377899129985935405643936169045063842992055629919416377976692562455836158867347527294116001435674460102227610550117951498188214699719299726669216390700905029421169107801134293968710393420048871076470269322209929063846739109986089342038776794666943030051690918074838054336471227328992006730690048732890930881722090766880341153158066720820372660891692111681096933389408536313092714288459677432858335818278259585079235074252769170382335076584844592245403488389658628200814076435834237932268881975657632259152773480532666548305985652450604574554986779126007588966906543953140363455925083828542680124884636018575038802691129728928730865143176826145679454941498678013248338118406220218281157833542829445109088657703539608693656599062272400285780353139152293376887908163787058224369881120726832280959410709224159501772303929078615578925147728815206711751954458640735283681744369661764769632972232738602098631140466414195718987662006566844875523693193655332536281774018857226818071986921682492246975082495846944922165502789045960986051369661458139330753004583098042440458931156648547328896697638587651929056619690991698429871191580898193677831055189121691537732525734324948168799564131476574873057275879858603149355272621499786294548474581870815576788922161321990205237063933749765028728265231213835419446188178375122982157580874945342784193185967615383820927329264659121500652831783623058252722228214488336788533372361980439096529316126475262129034889960896133838716822393338229544281516757536710026244150841874274196446458350881031203590872978342907493758371488578624801717005485230157703880676427167396684624921523654546294961919306543339076091860314964350138428336044420208139177729332523584409504024818712362064080573587263429332748716282504034096048788799094919349260285516463432956356032036737213730008087771679753433731904834338075457270870022838974966510554577283599143440196085994906886932176766834667701283146245438411164682325155096240138407220127704952291127797520161703523914961679260013747254651209372025002888918267188591716151254105641812905686142393302332686408352734922324478856164969141988077101292860783105240282337729456396211955053459285639418959770822067541723652160238843622590118394484291500395485948875556118866664494477426655134606905375069259711552665438809585183876640718630003490671091190235445203310026934644113854504031356356553995893081446463092779445932047462920176373494491003449205464079593498374844268998604014386785354258993511041988114272987592140743888094946669633766057745894540187334468865312870230136336407938057202845257232143426701732945236733230313881246534022607919624358152770633039072497944620081334393963730235189893436751198627175619795900144782837938548830243606063976498034529851854065427465796749137845346167197290999403289811134004785258924188922395469444426535906965974323433399774444635628860980892208317379888699546775515742993493417305870413384704446348390469309512409455262129051905585608733237537763385408803452761876636504255257726895254541934599610943605781482080652822505314725412128490271971437440425257350981195601405375254697170473017552804811750387583416430921994926570284273063290146535799795222511050650059232713738405209000347614280160743039001670580796005902031934744973295827624379709083979453165812255523812975331236432801372375446319128965131849353219491702930553870308621780752154924354157818485068139629868294177206495930089414504432287268014237304121402281600713416109198114248805614823317480397942703660941215858319831905973274352526979539877597902576710729969998091127000785454155060913014523456589056317388141720927014839758929925400963625765893419900480834859282602217557980597190189863207839801385473503594254094629497025997711928257616148037285318159014360946000948750033906913097749106804233719271264642881035917510664157091554875294063488939631419525603357558239409370370927559705330062892276587259429897609365403453669724494257850326931468441991197660979187116800780799371580507486410337088028808517648047856024787614070922892537189709824560460102901838723764091437326979161957057458673201970009640178386994533229866866779600341640103705294746215777809417373333717442387485604278558434002730192886619043064162913559223166544662505655906870748596972442697879585702445225030131207912623319939048477738879204387273614713552460251018680532832612987934094799233086351739646771010019500328783522974187816268377627246649191038985886545257322314539131681983831045274212830710861257137541413215896227913824207728116167943859158856206905861130540316919782090262857845969207418011309332559220775271825069965094740979458782313441833911767234217622142516348666903702744607253848138835759936815562150714979135857123125558035525940719630570238832196610674898952170344425853392624067866994146193406047365384305805700874051024981870411933500595720890740867358592606210034441779180342895049666150006835316922286826478363759386209215249071522593629495044571013649286860765683851819559562286352232172542117308343634556680999801988683123336118919109525848755466544422704419188605541158069923953778427268719889044604354571356064979419278659639764779510186260229546045294285591482600083204233774828182368686143839800030014399552512021677865519150344095777539138998041413799733308216930267706124696824283071747426722298895083325031636704167032738746937547431663470293683352343288276712135781218479290615792948098534550836899001137561374372810005428553212315798691460729270661092858625015394401963809453264456911365159246956669800581549576484179897984592484270908517015240604623295403288685253208202375270173513350945271235634205267007087915825172632959975983059080909136616142954693425461407827177883954338135308864060453728100659751388895093805487730939784004450608750675428078590292083604632314739138649588314102964488702529910699154896301570886509750233369266996568304306286167402803660588917142528160957575916726908236225052714849864653784025623409414454574489759518642974136954964195767590580980639570768630851440880017556098054861200534673329118220190202469528292577863973788440502347050947174210222232930733243080827116127770292688387381682488989271903414988771017286772467187384201604075663611569006795116705202746075367724441496526548298458041557423637571575931598762958529524997274698389780994420332867436892149633620433371585519247495566555932525912976043410346551953153159190240470295776922577135096286841761443118929172528194630223189337509498656640380273904092507057240167636322363871164045709156898729384426155355233569175257972559769494276867442710716314188243645858393648678548539908333019657209496619355196517772855572466014114497260534878764096050223474593064681564850650875991161821378068064205741470711099024737455474006317446201944001015361724976879259424476361312384500487649431500720425805830862459414204032178702932583952183112561511244024412483014570398825212733223034444215704631184743067316277088348313916467978175227958066040062976920402774069839103403193041117247733782359848043457451071612642608922720213687741134062083230062795103120416400840604254570199246994512279341306527846062445501184182440999373671644494418557330758008290879682798333491495572948945905041119192933345264683914361122143701337224428981187742302240969798090082035574118532534382510190758537048660166052860129391236430049994630679596940167887836066823653220756951958539810062762571318105437065375429622360815339621328074675980425968861208755933500435527199319724664309706857481265791643318649232179174574897940467991123596195698576869420323850308494313589780834314808563381065500136776357461802650323262649119607927013595122053111929003665716291008665980912933646619074257856935697779891297661307173791874606609808085074367808251121886604770065548767205933180121679855936528408773403657447355686528159269728011102005723329971469035835500369723056338413651874153821302859278790630249668765730195859131890591502014142055661959568641306783569518549803485682475957710420308689579101699644185487276255707288951489604372414393086468194801240770904555369875704085911876297535204312747830711617329374966771147203263209291750808307427030683962681805538129291631039204488207231482023981949249759090289360310188861136145235562684066551004114526191772441789689398149048224017813306592748332475458448079855217567508831173664241351763545359478284846607825626843429455294111820272345259747350230838680034190509636482026274544876725885216013124714031895033743925512241163368251904020654883012402547664100434646063324044900306728227715426254973137226539887035327409786271536821101066048024954637710078310921409910144067791975929202529688665163281711811841671877960110853987908555071769924011339634600394136533129948451353980769577534904295752105682278482862726014586289690925248731870076283794650738031292087639368005533290946759857191370615993895202103480689997128582473271796734775851707469327273020562157142142894489286187459981926282590192610674807135412306205255546594592206233864151133388866035483207604801561683487986164432836424270437981814250096535746128569319879982795778367462273258037289465120477709464440409820629706391801679748096863132440682053135662514572727670302276428194819576128092860127148580241685543013452393278406031416629137203259630851645329032625514420970139388175909332606005917937808901695046408182399337441901008637537109801857206587158204733599619617303611740646888070210756484776646091452170167719922146051879778511157044514671253892282207465033978710085563327889593399287926142756196971637605564499984488238099687579609644574679523941405887036678825167668303456281316357033069996119052597130914397554715879962237838260125242068448260802681952633719417580814613893786339874199847783161177543738604115507289590364965351483906228384359356538021436524551660303106130243969296510636956845019917168026049304231232919259592622365252515826239157862362578533565848167931883701334186543637433095562263145540943638196779330642176312434613947604641381801767941358506297487393769288015050501427817851219640176875501239473753799706163597465904911563631103103302051605859299238979163108058689818691627288964576718194913499375941510639895526553393331322724899119141811764947516152568234685540555696306889267352594802530186635439574777804691638857468405792862944803293560712939294122313366502553588323055926540851461088334480881336183277087854717786675761620868514061113935424894020519887538992964634186837470608619242262106964473916011913450336520181581959112946459067275391997691812782275411647717896340408852221030856652055979838668634403588944477447762784424392018445205526164662289548315041003377187267859297507200827144130272275500897025019449796951769580002362692948387804068548696895743766422464274113609902682726233504024648209021144188383381664234479989211493317523123137534211897489447512192434957506623430841957274096390515599954339410121010725772148051974089885869518473869057953603114411592305560876549171517648165436055002638712721228977680110909673074196100452960429381239458406612682858418569226989431887501183500523259679831357023498914483593252802284374847574029738786715336775067144681765047400597401947100560780772212970544978882190865202766551865098842654166731128553813287630056436762529387813462442342663127180384159082411388456131433850168181274066688236178045452097751677731239533676690952193821852909524252120217769112280581008820221447432376463683394975910368802271341686262328808954679151645763893823273920144765717890402114816373695684069657886499600455042703066105160995782273392794855349043770273989972030372342219738151812734325681509123962470006235060268422412039967244756882904906040583860530699929928713921292625186198349702693941596889552591885535549620109277556230125584540037985846319062868418408767711064347589445192722007761500237019757212562137416343190274800562941617769934519117045951164837325189705786181486560175623689143896090760859797473028309646178211758377997285296940428621048302459130397175004795898936226441010945340452997840352266721624933306670921514434660409641282130640611997301947093768752552948930468484870860274835139150947732203240693238457017948443537337905676976238665117843702983909564206490098852194548670533617739378742188659616672932008857071835693767709123673255531033894926950526000030527164396026326574920133003925500181476811053718989133305604391923787772188561433748517767043045421349923702145596774665190749832868773080562955554018388492626966685255136886934563276484850234020417942837389747411964283438555481883367444470740774140851880408097255443687789245591039185565072297843296642917739853443856239478345524452325275393909078479511651291407879717014068253882288340328626595696147570456449171047081839641140090098550436269872872178514439086983027955244301129013300808659181765257752488851595905113412939819038033997754974036898003675923085182606435541326089339535910729948186990816213626018103688382469302202279276579745314476969784938854379729754879373400816739843839399527846471963396348374858217805436395367644565110889464011747002514300094473552456194230645030894643432686744833457932275563742696472858169484208130673379554640635148623874507496297106034377952380921728549228060426611728095429209800791358971427552017989293293817163816061340603330578955151303213437376056702291664255659977118978155953081782880783110113048898507033053857998399330534376797678156849575725621331645152880188727300073463377050875908546802942429075218780292413069592451601833903672512161437715794574528374464959951898321957855798570909745976243384974576987261508045630769898879136769517081479814470436147489096851174263043127882927179901629905449629259616440436931508320184233790570739075552083777456832190398045149119918111404523320021003375302609476973609277623545040640721683278019361872659929893058977999917139745499016768586743996475066758873107679287392364374378385094856553749907108710195395783671473126574662054565088983913204068505003755786264720427462220562261124729563534069802110559986383216018236833662264179642932838105757610572358936559279346141744558680871084507196608949799463426113277271763062534996469656697057839374101397723044559259517645721884028361458117022724117134176102487483773914545303641738461652965051185012121252688542713659725494149768354280009169888055514914989186705056055496923350341703768873138644018523514031028085475226488474087803413899071995445384108904619946670240051531276230378410153130200297409883226255010242587343158724087315396369637229889580615902166496450250511442596916382551138058854621153543827206856940373084657238545647834023849428990427340167624749599632851232203567392227462159283301037914710785549973322331752364476325798999324433997175099571975345084017627050250496457330115714891848813468226213401243364532881143748787967047354179790949918147549643880441528745398649848831662109848371598440315306028352478690816532889797229802715534369184728153856079370786023586969335179645104911402097949009344603530480715014390035961314937106269415768904631589273599399360702075028370417365235745621263564602610543823930657716655636554549931599797548362489724781385237860333300510401879316457410057230167518114486241312816707452147525366055931662738556246348678745778122423675959733883975997521265502176446925970958736312140165182366633118766866879532595504201098886656741406406107183512226201454050779877825846427573314150364725814714062996137849980831236630498842845334474657135212511823801903993417278622791064575638550500249219720192965399681037928331154299505004357755287519629277943409414840825692535335214096771512868746955760235755854735764091569444100307290026308653047167517854355778477005375136513374128021095728827937831415771336824623163105349388474347204065846951871508335470374224830971356409478382488953540943497104544152004385802714837134447726647840887744573024683874607278757659246972820047775233193194546990989812986316819753424538973805448049966613851495498456651140737045051936877580150108013434520364371998605186408956172962751616126079631265745733387955456396888885699235285208293034391864016205132829337250691658714855592083212208013823897040596026287812498577218919791346354602475824779830043244978526290023745900430786469941913753952161394062865763166024689524770460578020672182339193096653899864796630305745467612351956291204227053483116003362302474324804312351127359557779388536823113890910384548730000224746140554496880778008213138398346721212773086756586765642499773831136189678358238347808505857848035403992412492175234353663895451911855149605652127042395539885902283155681139958474733190567117442993456867134169335055580767719570014892061723626159100306187957278516374075336708684924910446639492651504599026441670357301349020391639815302976410855259094689193685106546325308472104333883248929667229100877135155596476710033309363804432845102990426286999027809062248663068506569241659500394464986108976254364405392830759952721881136363079032514068366299819137178644374438478053355551059788884221332712693078947825594327028395355697458666421061434456019582659564159124045201882946677728523736629656301246489180273970910946985928960846128244050654611067719388537999859200518077773036073163536980424629297140250929771677808956343305818314967527176530147400753396192118939036801498167454953996358767309568447378673382296739609056149248625470334982028993125169415725254460953863328130959730855088093073533499066546233650903045435121399665055827084226333768035904445578573921313312960928190333284854692197256728976371019860733219661854717759926055694662058229197298058980348781315348952172615225439257118123796232327442264487665837869002411458291048713040859934538794902268866362352150331561701087487249572732083444957464371296001271074272486771426081205798694354794532893859880323191385741162262853162042128432698676190128838085113353848020035612598603931487883482066072084521880707238783711003721225867489773345140113439293866049426383750029036771455018490823390606443838057524382979978119540170424280726692382947548359625114900794876895440391473936845210871778888538736674567015734901866896766367396690813039735354887348036157486489220734988922190550145017738726830355289863782909199438670024631718906177372802875806469224124016110772870222015766066066291606335970014990509509505852270933094645085742013865866766021089137260768630177153725480591402507762958494768354483178232435448744036286369807659766976140821891689742158547345765649635688929350891072068029551526646247020694779574001184356145285838498207749710243560162386506646385313416817308353068272134675163069075292834699274321764726998472850294586077048441516917741646660921598139011554575704157708844777402865966593521095101091951677325665352396303995308631628305989939914986577676465232626338281348351397589258606081964998717467489184076229241482560084974763253681520008775125167582842849513895072437661977095201350472763128203201526545691774190169010760336751457214666486271569332185782067670473106149044559174130939600872425234581022070350711938491340047197501914395332962635149392466523139460134101277160569024963564774099113232213601928676883219800539884937919518324076605923318930464802435364872326890487535612460661743828133909018878610669182545900159584927488525480125319868913007487172690917984603237894710492466917709715174775947605132143150188806608654189804436454577383184882971103229627641580698136438539511576358131618345044886990652058368115153679878716185197909881264128708035208046719291268866713313935870805465138812072581544988990181565287859597400575065663830768336514709342014148310686340415525153478411000737792691198751424675802164533503721268146497689315748873938314279889779877021144636871482474269716094598177283616452778376310935048988734881650313820730363463469009801766155510546271649596454179399975072898445185840747811102598544895719828278543266934636150804805933857003395859347833467110358764557457286812016345823912164504608853150561305434218773697782337059991258094216460107525387647135488403574361618376149169437441376859432740826136430410014386447682847991550726334946005465904454854151870571701870850617789956104090390568316262495162262104776340858475639019075253836234997873753669917932537888683457618782176826017033298183985867899404375123926653323728936750406091110174115221121996599770512945079124988659999186191551145274745022075024143448282679013605719444542723842539310077221285870674852780540234825790130742193331569796644248059363800873374450239952661984149643257507756583820655094760455625098554676213887608587490701240713655963151718426339673896869172451801710194204958396483295496387136766882766408446168944886977170775186755528562546634682222818485325582402017922614692531373574065983723334655826374050395538759203588639962670468921343819961623491798026953435978877517893486631313334674648452941938232514764245696412372274540254433030965006250668442742368985047829004919846290286392793977535965035369089203526167937201501643106390041939994269192775796387535129036351369926937874291915906905269354127633843267385920412319663037136139205541990821491734437684381078514680670579050322193116966061850862216770437802230684696556142195302229211114552485807503509527984837839125800192218697607306959109168965718069387963573451175155487073854827185130000909623953451163859930089600356074726651011462976751581202072998595076708989777164872945720912790933729236136242945661241210543608466690731059104044082972891441955212570055612501538907030484003711230760848165444247045081090851225785076195484544219066108731577341568469584884835357251774212451146271276397013220967868362816026768909255692864333635410486857453152441040320743711435611521038835509089979605499521109947483919269007785074587787244234035073400150741214811733443045971181654955552895617303999984384657871917689041681077868633221220372036188260051637967128005009307416828500464321903541203481283835156258207848856968920328699318971780308103543116565064502437895441633713705603938547495571472235705649579514912765624715312582831212394257815258318855349729776303074842728257651753311894662381668830415726326668780124247935713736188259594388157419842618726978582201933393740514310970898548074123119512039847699605852609187589456087366721625173021822486737909242114268605678506370772944383595324255625551349615693363304737455791890245496971598397105561698031186572661937907091611833780808231164403428019605962657926565195652490867940041630107569845250389201323630181113969007571787744548624348541747749695681593571387819631754005997181656266112672168481580009270767000009150374597482930585031638803516872070742661527610705719936278636437019873534001752528867863785749768074337709735283393253745944796437897718912177343103990857803325564280911658050348960182136327351060481395263911785677680420506355644163806802647594132883181913622797256163450477660535917678612166305187900818582821960607404432677863732792111895835490172494236449207542325697990759088268153373981377921187390622612452799751544739858896426782247588599870826148759306451484432037657095506810579841312959222113409132468036277699813642322028382891713314791434414467361100356128727769605259358129459802627989792164849243967126159580763114180767972332152501519274199641761529645991456472137576163237095182099208452193381519766563094893667738398283028647712083516896821916062866542606440136376975105224447268733338082091939349293435136615591378086715664005053806145400030439257933099278229632122238446854374230933031342545567787254332558781165928465854076822804964856233003752478850149818850217439480033892108820623608289108661475150923790418501580787621931173122207362983124764162242960502118592301389285812831019123332511149364097476988776970168014052706370120502500260545473781782660733076151427181098868819394213636423952044210005169488249288077684675629081096649762983844973848757777358407616257999512073026249283952439726736562142878703989451059515979437705425481944163239517655579691163716018482105903640213907212227049586668814701143553662172749544891831960829319254341247848794383820181929222970732369121863720608696270085643714123287370971884082342095850049358085908595688113980293461939358604684367297903980215170557293322639252810730057803754454735827333997949359198561733995951340396054063961188929477596372503415515533212071143049763569878700603716278005345812894490674234791440216738563791466941037366736888971582340881618993089763117563662962510157088116580724287105313248440566157277925321283180525621064246456173949885331141841272895282384518228342505704040555666682920722639671667541885288679451715406948787059006442735056988853801611433912950629642423970665690852759314514700056686012262827754054671499258795360622383888363391465110939420596936635210765678518297795163123403240118946547151958347630106446323199940236443967635755104002561918783955323851085205530488779087983557368668657848223818328774695467482324212742160840926353968488584514389914112936691517792483387829935870380762901787480757176451904969903354040345879258709514698310090294290649904303604173387584895718763116374072383013980488815217350297919283913393577161122669125021866207904087116511808210802261124412208176256001421075217715247562948435120922580311589976289353999643541407100291803504775531683543960148502788651121360372733748866796087335524254303265030473928081462580903722051264111569884464210634039265462430962546268499995410965181962248264411304415531494929725802229836993627999468595059176628194831113232806824183873576713797514596042741634797534765026701162317241028950455217002358526422118798100048116518026148376296809779161275321837780510861546761339575410667310895799968089520597000935822806160478739600001168697112332585745231164282817659298831655799237619181194788612710863100374727536287494099721899284645507463176107913075306327889109389346636829861079721391317159586359265385086975288348884396035980334165722770833291283627825159969207190283326361927052310576683264033152320988012030151003452548950275346468756876466136968840501373072967154057741374837762633059076541903485688081358754950637695254240143409773807894533544981436103472475355082891232876372689769010781590397418172828475092688868406755140250931899088373163387500474558247063900419648599241597264105070721637393276181173879800154827498095044960695048053641819412255357937246035812505500290653544151245974627123543921847065830613676043887444546584735663629199877477255883308528358399772553385018875060887433093698118166991146194270541455356038149837406051910014839948314648371912744097331670796565045724757981627652626463558766539620383406716270663122200219448928054550374448865769986273358137423002557381789000784937950192852440621115560520137682815125994148671209069208512750207821886127721857738904581423598394981333187631377620052933827710967992662915238296011230502515547710896505968576252261386129853933790439087883001391425172691478234752989772904831701442161495353431805478259675579808119269925408323238214435892978077487443705966341221019115458988765608668511901833338970858641004138347669830237307873298456331389855974585576266165015989263993036602007239590476034933356539943084278669533774132257771642851907151969364984916413717810438750200514631464731315025220272838544364895658844961854824829298607195972980979725392364296001801707031954368110813612287444522154834516290036075141539078751241273694002328342170159243067493148088359378847863461821730795695893684587758278631053574782580306802724652214643847071726304255800710214760392488543152283494494860051773735465333976678546518411425482990534365851394165516924707843031768000150971639857676543714571686134224479451748240693920324677225606466489918767151722036769310417621535062689490856636535215367218700627155218453609915763872315621555477656635056502540387202439142106271722362609907787647356427430885165076826495301435069223604251814744801417528599526303269916303357772815741479926181859367503455133638688272801163900681998573280358669368688863439628913761623628888262605039805266920614916026599445025364823857565837489151704432485107046301294701223187116406657643046524664435219268627235312894710446612966791324177215911976556797650876072754355352037290210464749169806529644942474592206168037079372157970295833369008356124906480601566014411077353116003574630344507887028919016637635199514557312358995884420097592912189784728561504632891840648047014421536926993492680344055724327972446053016542073270352218706407280795936602870879715119272171978136336710787717256069928046291092420418241521140734950721968732298444863896477006175719939151208233524227199622392304409187258138680771307801808742396923082215910434224366654012337229036795726949142351561653903584835407417222937152109152501740051113227250396217620386306116754166854027304581842349516953263488291849042868564171197983347018630137080767418329619389933043847048015264414606401341986506814594862395372725275368573678912623894642019261135335483899766781270333586306568940971028975646521358596901009240559902463055283763294737296489385499586223183101913317237889820713348714911173122536863441635184675941163562633393829046504546421170276025485595016394794237696194524205133256577292305843855754386957354030357255699872039151197490722608802475679902755745116209853511478866989776508466035119116866073881139455605541423308726391131159806470941407233249433128212423042332818140377975703157609679282913382682668833978131367835980440970562356000872486818589585795660121081085436450737402088453742840061238166177108149173493602550915285226816760848210116200822649592755551061548932068726899806879956611044499044647608311784536529875214516408808314109726635893034945957934733785865268130783687731560026859068733874672763039386856960519883663161649207456893915700307077192646195871516412856103687699191184082400336665987642896353331429311866930435953801935893560993415150998100287027289427532654459617016863677455213556366497074490018159568580747318196509899604681002478822986705276733059268901391709931975247353749759197905811526671553318900192937622729633476000679146301912657663015418173067937318344065020682373507812908051823996940021176445978730562353017299421345171131119930551046158839630120028082762127546666024929658336883154187282703072137067809450985687272275779258289443631966212501220091436560376213795406698527802972556253965664571212768082090401393712804549000579126195635881191743092305364157826311331921546574960851316057588036545303932073765231089942957114828005118849636360284713047288498410936221259990924011913395725557799349612584180697549126488759134407391059290608184844881844176175263808919726414483538004166419191466321179888169562058500644663231874530128576091632660931781342940773473016683340748652802075561194675132847900069516479073716814324725782165540333490812952229854029230927079209222203719514509951661384323823001009483821121052669724380917675617105152407675488475810868839352611511481884911200057532037642571043615916289101938943097029033512871666304614269945559095992209133443797003322623632450100576833908176628669985844547985948897768945082215584151009780371672883227811608993185736055070536789975855063826529809463306232794812045231374926448616939184530133361620702534620571301064041434470263262188628016596828448298061502246153295608882265767186057720894476768212697950628874331397971555268929938709552027042270010329320137649254092233393992351667046987158195804926889295476842641551288081215000228883922060486527713390286262115421535112131797761996937898851621441638311442692001368132833667995264385684226826799705887419063261462900826438942634786257165038399133611547236901484614433736539020697457234765213588743768175428061066960337726966940582914053177342321661810176053462824892409513455907704126651376164997647326675006949454556859695528995707760071888653761629761385063130777977095338352859241792409046402284089973992158459725917696527334231505650777379916080203955273010653045853682767862777268804745928416626920087744280918861864262286259592507256423668239125914111900033844918229692684118896481695033268561806550313756977579046174469081939558190373934681535930641048961231365663296263981674163772701250426507148045221417288036861498171426989754266587888042632791284890229940136674093134767273895373958494168979877142287497906579617376547219809817211445786040787776468808050327141671709012010625580615785399405882757756170259740546434354110477166039894160487734049643922662146482935667007877849733576143468320080434234888780437166872855161498536813034393155154376237500950201837507087076687732868883105450895580387624329598693294958761347415265764553494186596173606640901182785959401657563213290809255739731008780729142212212690287007884787059810917189098090625697339577461524776527890234923506748217480773987355541956245096330532098510247197557765529400373406145864786669946663587779787532258835708486247978561333092303705441021081506122951618270418960644963631360179286323651766891892289333839955459192421362235598057517884161002332497152282815242860241322211027483249126557017503852721081175154650777041521221647996133980479718637774757338667023947351004245629171157480587956247855289611471636697853251706607169996816042516510873226411333784209617868618904147092517047040955578032047811548098400141496563822040933330901037775640830957245823493873425772256392668226430589302729437245319641208471421176595753403906477420032405997920889338465792584530338422124429560044197318089250589435252146893396273365283639196007966195386585442954619037272554630277391106243805134334047527885155424209316917930789550902517450771092489014988664422368257586362626262484323917845308700978584691519775207242480806386605058044716996899021556052590209722964599300334992579900420751368716768890109463798448199253583689298400151867976016476583776189867238215768578294168354933268612019515985450512711075061728851862571380592824136783173232263996978921231075460182737366646179551769626147164667410798022247750078976529311681310137599207756935952656712620734682781228212586794868650793312378294510233927625506767682528841009307853851170294038989178665187136240164488795470346039385048475544154651794156678300591663364526045220993001526754578915737140715216129628044920480694039323710666622367309347661806026476712826769451982223934073298498886038855722276573641197477070346234361088338731218327810432973665702790260470724885909903754982519343474354782344473303974089250999554702735309642938589664157140864423271616420935451520758703275220714931228233076181049510679495513192303890325260517052809441946954909489803579129437692787391458164956568216177214878681481765149725905349641770208645327887444411258877675132837201044602809284205192097169765716517691524300948558683955311667348507384572554995142266354473634156000439373258793224488785955914654531276441766100608310900873745017524030013633477702000605961890700278853733335701277189023202049443690972290501692238792077277317904737124193336429889294499156691039687215893483979718163347039742527908586008913383409028920166790813169081998805132867251634457247545303177875518266844291561062374477871317093850988953881073350360330716215615048638286063623619813319923918878077783335634818073623051851279246059049603165705114441983338560635092140073269513094423912616245756919001878346606004378667573120610967802239066494670239269532071443804834694595521153981218725499420650313364150661482664092808304136965775139219803579702087184689281073315808702983892000509281568221302227636468441238479577297722281873557839371996861921869201451589270707544996313527662311928230297633939790962180030228750428801428314505685837210663367186315067005798910151543937383567885546742311300480447548485490949008496630396197495972623066961562334101975993759110561420955477310744736471006344041049790806753622804126669176555020049774907700345446628594427953417798902524834120498514845214992618817508148673053622707764617186055820658527463267192627821462401635952062067742416694678068061602405709561816845166801029155265842075259269669056718201730745247784636221202630352529105123551928421953466484038871509902694781685802422140764391422775906432741796106743552499876462140854343721023235307018397548780172374967534176175028497044569965119243687265190827746980010869582207586796373376616908026182430490433950839104186938915043815734312225274003054536256273905498950767510170397550967509176290084928530498864441678183830498075963225145951604634822438343347015434110856482773229394813326159944367234429652518501740579440965226066482059085877024109331250158814007948956041711460357478546397867047272955281372598703093462843912851422327353076196445102638905904492694978477207011336945551864337066545179381566656560099826806895804606489669239019992316217704684305992322994719253204142984501035211689147951670582325267967882230547666122268532284073671863409201505450604321372501975285673714413398742867793453221273902484513839551047883509666321310174016125472681557475066657936131420330426094747810652918123255965743973869932766455433766050796096213140545121228064825834979772710371409174470280644539232985747367774264651810697450596934232693816434248593192189474747035162513657548420971978938995567540877397645604028789651162044333170659635758619932156569552206077900535916302372285837597095519310215659375629131552331195462048980575796707797989490953036123703708130419307490220875548481122278650564716954613870391724747905787875849355053314874345979128280931230114717670042087562228216049732123424721144145343859402467681599130969173135661191678038541348047570607831957097760179364835813181587291895847986906515343993203045999651606777722667604327001029783636648693814660357281598794077210425014805664541001277464533535150615808102600994061514600512545286642238823867972096345482056780978020921217440703213322169422465296508442209748931885116501786652537451411373142734155605581010586460810948474435906667460603165566907144617376350226332327096166280060581750567099214729428944044821885945629611741883462018642697863747965633410690432489549736021638498899462396816416408001771477062706790935558789277989805135625666142543625660602159089254747950385044229824517139940763892055161041269464952556305791270553319056804700931288909375420295475697554667977212605080342810748660570865081040258675078782849611104649058171373063036946946403049369866879326440048010743673760886862759571923110868459774928562223014885627003248140718623399818990404314692435088915666617421026103030317692664366930620142019956680090071633217812876983956100999499403700900423277958657289532868995532028191972741019618277396198707050370689065356458581002727036622198740670124510599059019916118059071662324778341064833322291280744007485250862623355033343279818014706326532631510994726840670247125450023735272902194609179980274317000385983599070848984777210612385522045236323310784527035956905105242392992247346151630727444549249520480239337373952761663973780834911250768951895674008278032532270225321696760611270920128543575301492607379235899218541945542136595321245558567699931728616658417418938884631142868787404398523276553643257265119826648200947602324393024363718287342893923694714210045456268530190675758382826031871476195134345448814421227314495209349748695949466623401011578580776522510688731054978399427294908385564567044434300751193126014206848303847750725210838742238323362022412768154898903042099142434130331846755571601819298212915256487299648403425377985709040977757155058266878850308898679852491606630536293933577813257914520641151291035028580254194083870672119342494512118679006056097627176832820605500671560292310798429078152531462488881280253463296791782827029600121858180575767561333974284392187837958002679324291462202216668739916468665413587046983775601069621306963360127244170501451987145952530437044621489212885553274233222458048378066760302705207806494484221240153547109219078190607113447746456263069920547575774034029253894076719761898352271688165502567714662214814742097313880860188665300228786776917344619226028424687402822842614939087591377180728901021173330677395965792584857741743623193609961872940834999039936265310297612711187553656086559409255408969802988682454623118295363939078801775192044643368221139340748258236158101142630176578465382329891243848232082172827780155862721266592442720499442185347039896778612276608618444246786280645766991465750214307805084280971290229810230365797233635222309123299668020157519271576032563220610731920779437193155471969843994742065177197142391376066461039072693854171689167582514279889263491272810244082975674383937856368014256070578910726623853659130699510013860549216788457174974011477078813546461889019627082358796132939993347010335275401515880209577700228926954788195245635463520692704799971947647512328417000048662675927974435066396693884177053367992578805474631200642503032128259636319666902614852552795048906035987796837414156236170315597001570410228249355651915946134271996698498116506667642084772553520482154413324525059323301522437156242144858129319430719147148162851363885297542680118519840118669512221701279316738960252690713188204383996913310418118840265126429985795283432043787394637337065932580145049717574660723206522649876292327156176358273880904939991257722936038044297533825856477805779002170904783496899321743353874723099260120614738626238998889512329751140853106484786027033701720682093148530525347793220527537490431769592840068043806958418422795241467179097705268496172197043262419699312762448623392032383923504886280084836446577355583151587690859799273088565673538561329965365423348236038712580902083762596836942712571507504856429378230641525903749966535196772672695074127261419428950371338874435474755324752907094312178519735500947505805378590288210887974467710073657156606662798522704867940004537846643020021158961949164749463580516859794185325662156691959161619433597395961894984069707594055466042993337312183571156220641031092275563034629536165598921363627389246765755550910350575267111017656311997086688662512827110003360730569029729529261827848558103970604127319365376770830607423336143413845485052751719699870278329150541191118154530130683942417263783570081688045596476624914642303580593542867175227570060502757031594697095212246479975720124669840091628349026226377111336456011639627089590112564775057094986259905614059678291706318761800192541590686439793816603654523364281451005202136684790489487690325139037249358921306900648712087632116482574514235974414190134002582978160666931123143782611985355559634702454403254029219004703656726730800283894271004102515710882846034466969961115307137694272623054758351612405249841637956260218675190372011430553724647726879530107490316335206979037789425949210267195838970609676051281573486265357755966505282218869551042800733089543849992759056911559978905844610192355101530016298624024612172779911111145376781688210451882730133083849677355206941775007749463926400412256924678700141871348918424507863762353243075939823730028710729653662869658477983240780609040155335489857659049388411729060052683822355588626977642025942991100507571958559326308101256263304747468259401140826506597498490969328662938204371210310563827752184305457588593964396959483639751156613833839803988543184979591661313798957682774853464607874867208251734484021398691226505693307011711605999915509332588999728157695472928243810128124799746196883188919485842920970865249252404286801532712705447939124081341428947624941340705247688033254054878315271007786953974329467192297380391854495302749241369490597599174381504508366514995799243849563924083640092118693618803857188467261929638849020089375704791783250296578353103241346105110762777799056439037035956030018100896342339229429979215090704560288192603478153804432404142487755734701139917521056755902739118014386618083145057521498069713152011952646871005580600980975392728236373255760159328879207672362089552163330139970880837162303135218359971140373726843175467084955224428561922131624191607082449723478629408550218091385832597054630595536626399714815108491599283920975763919883035934639191332992349715314014739137415673675000383286673221106817443695142854412870938516508120989192921934048518083527627934571869335587812843715071378348692334609213067752500157934567007698942099486726718463730720496495292692003597162536743024848059852221320226145468136629123668299754593675732513487540843519632197064276791938810385246202674890737817271799634606270694133680556095899110862868722734618807797478498839304071582674732943010490460904404086244115288297016635904133099953235532076250086684043281252889615904958147362492402135511486368620802094181451439142646784272996491983056547026392935387994119259319824611043916773600103278749571885602156471392852904771869557320619476731014252096583917411781887188864492356864689065682730788120221624873530010720946771630046608087431379458283143227811972151339063146333500503249523839483024651844207730774335109648813146615276713426878096351247888900333003773941040397449497522758472975646775130026951565132093737851454436854707093449834650279281570051002251849954339553333939197247774928063441898899112553458956652867842042383622686123099011141770964140208272533620059316849081295995619164082315939182892936598375663685117197942229276283680209101211926284708001750790543959838169097660392284010299285929511052567805926022454394056602335985507070971264171837604911214017779822215364910455502017340379735607083084018597455591308086594286864004899542169269760128697061179233699425927652821900642187934995730550829000715397445476775906774761633176159240684904813677634253560486631520584874375557686289823695495534286737710003643327515119856888764099085623256330264692907979259623893455677080917404977307985981557242437544679556801017761848991698094121051230310235942310472006779639003919785277903080304119642108806433033095880497390284322092502652720418583544188693257181563675508547884062826423627142864451908157747419637670742462104331432606100330892876552016851128307148032305350966986423308892139598207078865575325903128811681029241167379816038430246326057122385759942080474920065183694066358086428168452441873339750586105420141947099230096086867547039018594748860281162431406016470734374453984086514407475900597845319934997756904051478515857338413263396365203165244143170865212057529701380560064379872199308791233226241367002272908926534558683073658844622909740020053545834849318142217012012647468344480440817082112337767612439788342051837672329502279154889348393309152568992755589975221400441966755335936636491380206721171316030847076109883036735343281043341577348414074240461134398303261698106958941848395337344009811085551889917953875129028293684779832240769496780634403423283911397316344107106641982539059671228631513990029655086066962790858535509011783061887055895620807427011343098244316704216175242739117790907299931267050215777798202217098152708885782561040389194636996394340456958405502178351610977880333662054715632968482499025183456582240889608254264310930320561472491457359465389222920694848251873007851141715701061706542176410618526556150061364898351484869817395400377810131240459420359312022874597989080577320625057760119234970970291413088068704158100952065047596362927927741726808109609530187669105480028642925318714062614439243603061382812367578260639371888987343720172148767469649357469983703880027209311625968976128959089581307096842018516746826231219304589326080261581747824183967785776407859847361201962070795547386410933448334927393106305548405384355179991938824661390356760453424696418104004030000438622629427019768118892160184815333898045542426635225621871584584341400684407559078501828886960246091847119592505004023353821429723910336559946894658506268013312556109682290241500761724888646605348142215018031187578481237389322224670359129364310799806938459014070471292498962528397902982485861439334301617719611358462609077100437017898459026344700803620028917404486962509165235250071984446399591164776724137585097734899505740497799293447051706677312526973463728273486460081291077877648240234581496540664626981320289820741658477063759044981562930479212596345523686832451142697033655367411742279193553588979188935485870445712511846220155184731699421924603189501616155753419356894090554527144575520432616009173002453772689292445266337670017265239498406055535885990480978168808897047722518667972611302405726770409746118055385702302468992129816568347653519551254977658098178076919545457297302234523595338133254944032029951324070247797036398609045784279126677518378148755885532816487389802939682829888856401365311438731291114419867117623308751992624185589121418425430351303206282759500286375198933631817337998712229145476655827388547529780411673668593741167861400463512586065331531175656647915657595389084678773134266820057375377428153557386261577408007589567260059330900057762010305943799918096194431352142354309814778619864839511843553279466460177518050703418790071654364852629063175861975428754000324725566630770716422869515501948283911084150447910645391270977104261350464062334005574074062747677016346078141785298865710498059904923578663016773406449488039685619093547493253508158033733650210261404096554178004687983657951911528782197345433998464723292771234078500813208456774631067600156280870935470393849925442532202556457547784995950537251075682415011445311382997939070678547662282655392361480347589884791247075244806098754231630280019807692248587575556494409040507074050445499304345306010565059445778028931734169777547041124762442550790847042337574642714698852528994318857476333098168476646078390830799120534868916723753897740765364914099917959772136718805034953811078100943992920465153094939971191567052989082894656059559315299762176607626460546369145121284098465716543974703378852478378014924695691474290070670965183905836981686886076299831507722350756994555955949171107506295285299077920873412377163328628660533223681821786853957016391687046420703178896029714381732058077178159439016666578295465385049421007495264515294134049368466438833656016811624997320493470374521001925805521510271023835616688861853665959361622180360044582522689854776561019102596477649232458314702707189749757768651810438616122240571648140827920098832430590487775513019313132653624076637587584873362305367503527621196887692381076681028411742991712023560105270778626687766506428589949539594231357566869849952372023725679928101706769796975653460746200431467473089493475724737860432389296203549909396628841855940753504975724487135334940408566701101150359904369900209305752970071491057497302008869995056447097453688970215773142599171462379782715321995281821673222524077709973846360735173914098929841689864600522315666286020965656372396313885408410210264045390219347088286014329358267788777142828951694345047935635529346774040165862808250179757518464608866623374335638895045693063086173853253974929266759397018163988093382971775229964471825255834591315222522571107663518091408106879694604511194650051792665700319610708115014720714673188889032882378638552306611899535757844465845259305480822222788921476055650994853012254320286516988825881892534208918527107495232080512856637225982762334904809896684423425530227631509159401754440073399227242459164571828262244589968493303511347532678985379393450271454905475192960602950245117026311573125944180173223253860130637856666713144927172507388741368628489239467734341690955984342932086281737033570493685487636105634346329906001008422857947728438391558453156789589844844222924111698340500618174225957017884596853895500131215661819431095980774174166535196524464501396847381909403115945284271399130601357691199780866810225423965150666577797522152348522856925076497515471393980556731098522003108166174205075907331714973487544398155593212242910583020610837145657081064897894577929385171149449714676600378727664982184744561142972976935738733194406049399876075823851683590061593873838647131449951498877801579508555400009103748692481612075640181554721316454261333755918971071515355713823599166151874223819669072045510883718224020137831393110344137777303326686422805491581343554508213363455193390087608691127534563783475130386587515361904672160304659198100890395809385838944183229444562936144587536105626273623611618111221388007512414893637063976530845611078137106818661493099329120030063443286843343990983503600704669944254065393965511428672152269727568733633208541676750958717941756399283948707661365288078250504114574224675711395999700672690784804856839982686245528150662780142688018187915120293524688389108174036711088939524740368215179350908794942349415913364552577225727783853823850558057958066877839447604380751869444185975337037761011007311565620116942404088803499635998581222463469423509602341530559676467356404823095521141444279682964731764954996511858927185882098397072172264635769767665104570747496534326873597077510046334331757842782798842433802640368599620449677772656734800373766758423470865016169376724563256701127538115523355723773462744977102376669326802592553598303371171062621429929656182259513070794457439237423713819007218212717823107052455996999404555501250949870095152883124308147560887262831625526491632913884527104789175453341391853389637058665756666121332018583993446236976940184602189037047125047611129873175740946519401298534263066418590095732594882534458908113005768496707047839020344982061622277186845242328502442361974290307812049014230160174737060251663672076716011841869167499215397413819954924522322475251828173936319906970705094511112118563810592108072052971842407821540607643348966567972293402887500270945191132723551911935305403675598028792158334517953195795467821571790398844344602036882390923999851210453484031485404070088976632333778814507161052613288815838741801889283229133394914391093903933973548275620284689252540686480856280300786301418661784725843792150317849136556642835949375026930257297370304829858802085775991127077378278064357269021503653912276255289962038540074017760320795365862930503434722965321756557088248059832970454324616442197051720159023603728599618630598902033813368532323227249186809346718086132772250621668967830316879466596685436917190111007718242382359824552100458774992161076036442881065390127947190180236468376758213858409398743939884296472612049380378128521986817305608310522143752613080588378127019910908270020496043520164938823081441129232010498034378708970555798231561099438428284900463443325898355470159401697901324684709215031777607123628503891711259967630189007621334974721054469741470335650597427386849106651226108736180314852215740331368414804554371597202772370509316334947592313110821914051350566862920364170167959762287966705160494732706456922772639832320749813683873652885482956171835481095198334652196425702809944389755562347304927752417236366000340829764195448928552327416161427620919598753393146979968533191501035921759774168846253833864488497567286474510758807178180315962863824069127657380515988356196849505442139921811126864675962554583371194148218446431132197107841042490334512071273984201110835454684579725480042185118839093310930586593311451501944820940094809216047858387295765452099984353653598984171367795147269839768858242493059050544482552487939598370670980812844219669135625472375876697664020493703964808433898497816188992398260812655686808593986928823016534453033809467048523075675860914792279545670188368155110070407234687814073479978104924111891031545429059953151022778768584114204264373536394925266973863955281400722003455127605315410091214687698162276535465160769346270010434312296871367688142193743686303712939073783149767290405921424303433336008303110311087302469486264963623020355921888243900839383816451008408556623685374211564114119818752703558768771863923177148143304935874859822483247490156808663848194714469469041755864611992054850769981818022885349357362681938328610269681007012127328726192598244322367592853681381125746477145574833910577420779312497021532906496917901639095163842099699347013666190576148215081171166001482352345247060442914661851094314798604227275199773859369731744441158662984714398214122507418106554722201315828259574141641884221092555141863671051959109937884454666903825674864529739405041386881939752192100025253209200855367606956184369801426191452771894526068054039683507139135714752064027454557997674715600518913989648376316317083920277257416682211582737148352258663962265395690250569567766097122817029019599800882868902374136577401562273562027699301787740175181580650341039242486538902107847133903150712678988611558977567445560576963749011076517726770836279478194278787163509252008251397832496833567050309649594465498386319905741250198767489439516232809565919117232154078962459151754326100637182935860340810166253853654101961936179084526786802837058854322969626115012254854826832339008798546204732594315308918774150132220419528673270075703345556499854725596828131755350768610996441317012003518490927280632256132360872683501057680065828654894916740424224114064970389229032623915178154579733691774769349456218446287904317653516077247337629063535781432038627347455259731440231753161149580236947818676417938156112151782155765208933780783573070511240334286330904134761938492457534609172765254337302387857246996288016942306452016665704374845524290409413735374655496897705071966800508722470666861096513724930357001614564681836004276946115788437837955054785107813625874031928467376370925315862418415402640839707601197137394881828626398616906883580387455983600535717342806041366514867366810169872344214300675647404011148230616118916624372193979694003723370288725386234257739167987700524145986137417151567587593793281251673482300592338088668132284819818530399465593960384908400938722769814149427915700032579054889339661927531093022715827147053821996613934728627079964188696405433676175215233313670848882776732695526553297138224021103024940031343787607847288276880839813307670924886382599701432948700364261589819661312036499174188854550771365218422393319669714229339721193082855216942766678792755064045182372492866720302824542263774857484175845142832790871436767094062784142502926378833332135421590849511431157274762697114312990639752600530311229648158815574314148024760187843380215967173364391928895347924135072946571504845194970068382531978485725686136114788375509852866102222487572658414502915975539519807721799608801486895267786956779926563897596942560917343386140079433990646182640237456567525926459093855608609945850654633535219710564601736640704581900451932221323506740205370502919595928868286542778960886591822345840934279295861017701753885347510414292818365626950105463013311163787319968672795501261078932618884540501573484505880057123538661802421962448348400799559428366167520067163200540509960572150256845997656230637663669168532896171737637078713568946967587774638663322489693681185119522831467993127696570567415606591492182131563025601288914540120329274473244796905556832143218558594039409322791970878410532691058157687852678893633709983752077787200328611110163777184459842910203539435792217994263788626737367127735225181842914039095419087918932999694437608364627549369363166463757390176927930146015982878851211938523276927632300624773432662003198889945663102639392661744460642698697414881759481538851068074139497330365035268087064462183614441503518221002776048144968984311412865419338058189879145621323901935570667638175779485381317675643035169059186274364051250801794627682204720595283609757410038902050572075321121039380253725673217189400866299429931658585631378222339860399819829408153036482710295782082898994703170718702208785392604823093861497504227836790811754450947429773879731513936383185935094336291729821890235543747011181205983879498217860466722201620657658234086523105985063863213926399671164038090218725847886903191839108956520345505921730198974538417399032329902956174619406767996348924739528338387449130733662104442288566679583720353909789262707308624622002818743158217034151850132928056576725814700136097627320867517907521611179272787571156483653427137489718155567749289649532357875516783530389534339914081592087233119261351708886734200102024663906206231842171002602362941903834059652704019708924145295515064442088659799884598731060203788915089305263926913030145915645925216902370248547917895567985463468242078176272251131043045700747872161811741309263658920573005172757835735066738721703467369895425173931202148966465246889657950226779810281668252948372569536101244244051944496518689191879015343099382596895957960165613532916925332273441518329924711667931821956289217640045352703008554704700628901244266854695905986319576660885211749707964437117176515698447106373461534534688147710164147183367668431546440250878888330900001987999996942048716720924013269381099906757177524214969556871535676966470135954245090453271394824669132853503680488608053782672333512325948736022373895709841392825660975285658109524479174335355280219888464637189938501907251879081766777042818717463038673572450864156440881220564194785008497486985969892855328904351159913111814611656471417332167040011375555500185912085798450020541196611913577202829495415797239112391994637452999304293201251613135325742491061269411319417207179834302635213124023280297347640892722753756803677955014838717037599915093694925401173187676187087859480377264961823340938166527054363104176226287614845959411957861724338615412864456016282682966706336047097739095555296623413903997344174769950266054571846713895731912801978755817710375062752233138783698712652049087126534941342311707047830155546625872441115122932391850852175470733455782643283577008361342998937419173784850449234493717897773076067711202772049106588834705546044754125747632708861055937119483267340105152304107611796432444534544560036134696969116591878149928702369337462020946820807201259550126254708170747962705477143882887919382531146120870243355042592442686524678506638204855070796709728290039689263491932740350604861267006310486385212374123051754725418014179103237860967022363497737878339815047824658692440291013928695945191854943177751154665714646885610484945537517385733322498412809861651728470140340530804860952489926557423236804405101100426934108902825301843283695577013067568351578129003694211835881551951140824465791364475522527264494797585457532493726143467397077975480693179339681534584311582293401220794050717610429835546226425015361328057796233056462380112222645690026017560842016873669460565288387537466548521966042918587290253248446031254308582843207148568708221434001675945628165716692766113394548861770094736051182861266242910452857724256662133037967638585870991998170939850628812528056355627425818408888960815642223374181129881121539435890361291356514200183783305593357682285833477661419605054072416184764832994550387715578982841660591035570647696253115606999251227300893086122810457928440483465054658115336058872546743310352398931768405540797925647437084286766816461646572996622115783419551925487348282362230891106354715905909411678165114210890533541432219646668769215529361189712703738949616969988686353315901920614150384123911308744902718580802086286966975156818499619178004768267055436039081838578586559088727851159678600636704914529524612697107277652671045028676887625914071089953131076779143172686329981240356203988555388776337279864925087632370104855597130319269576158470150116644574689066839178159629322941177079820666013664180106691978784766639950249319338435598523664155229114117510524871476672179605626391791019871372029755371781874691112533312009090495525465001497923134450968344603686740394451963901936460912217080890337010650818382536312393319587564293945269025035188543032076366114982662653727247800419644734864153149345693503958205526010599379344790809146306224794390111889968861204999748821207428760152291808891300733149427614576060032978632903315749546992550821348839246522652394494640828780942226313584443923865357855582304974992646355119209129498338311281265052900006552435579956488722212914437458891580107224005271761832956331835240615201357888027943517895160434851157231718013495231478468301150791264174913308761766624981268875566601835010196951140166628678927343100123150841354777151162357424958433313451378422151780067770603102088186758747363776901872693075591945879915365287546266749700941833993975785865251897694180945715886048239581077346214045659106724505017943288121717221355421562412897986653269937499265466639189657526511683768035822284524743183610265762262093460294301595610903228361304728657165697254840909945785301623326608121951458058366924146908717488642014325912506253651994948387513053954373607562198201674679066732356616329015651698975179959398121308434253322949985424541598034266893365574931614052326815896118454663304303185802699104315247237641009987820595907528434301269459902930456066460542975055659291325980062722934828758487496608852871031792831628936232526456910512253924564833762871466113457351010362007724527136391223590147635588602123381269499400406344223524330091168122821328467154649019207032225673177553168935982609524384045352917860669504082195084516509659293090626333761646351230907162651428022903692405602121140550078997233902412578780436894223473500296831017330157642752212019268600115074496502252380152580241511146209500576134360879848612861609245151288813938729118638519272739219556901366248242512938699775857083321779163912549240022745893323239729357089838400745433486335054309931481623799174815466314967153927419689422426414246817220536655308184927949596680008256253912654962227788766112136921218985855583598291980256646530771345162881671404841634421683777198590433480572898342820661649978572006767786770424425091270891359589825611910814100719893401159933689548048525192702636636984628148958034061327718654827496688553952013057282839713255178522669518533329028010048814005180050724157498039284006302348596357401236343930561617819565647491034699360362226198399157637825717108022744331667593596407160343320032620259925367781828825814151850481263996954569549263121633150196170543275666076621354407685577751132933371867791360057358513028592934293376900992253546899648890348600933353457750124788435275835566002891534601661672820124337812724674264390939055215295877337163622023757883389216140796130094461907568643669783009932571359377977933572037596087981711955634648837902511185205455550713494235630805451093866007326068692628327745992778145833890737215714258222383305003032210852727712492012879410450376434051782028448332926729861371960527618718987939436829482685223675333401731672653607480002696489688943324283677317338876923118434997363410711980574557189812264672935480881587692845292182123885599604977991569663680101462984521195513851254646714005744880355654215790635522926348341289555010967450524195979654651982124961382166159677345759876725647102296670257792407308262420303783497382846695082492991559215359699396541139549421687677229190739975076174621219262889787332760832931073015199821424451426042264732901592125751618000874454010638846465598929875827386932074321844997288676975713298212759088302667062179376310364344687106693853948850174444222536793671095848528662045173744274323747767940885548521192569963751216820373049072839491367744898061598396111587647105046024828894107480624002433708590201110785356018774139614829469324066381373153283160349653417262459487480557372053179139383069729198882717919884661921202853216410220089014050868159970139041405679355527940926014844599040267994873606212185768077823067584820710527536694595522692261200853930886201693080390272277131214868048490123192276861807553411887468760726530023033528973622339103523666833265416088257394261216484187379607030669581093547904095058907468074510339923603473261238175612560887145092387555307282803846721282329591466438085706119811934531779483438477805544473475287403195786881243353422341417561262858825376496324321510642772435199720308424771129793411660529734117982826456621702744974037600107136612443121248309369831034288575838475065821485933675670933424011770694965152728942971303752154925467649897670965457184420770805513073030738462078782532234679864717147715396236831502874349820001391167269072416768905882113099150504739805226256918092690866472064169782123338119246474851741892840082652516630071971357601538306003592860051346872606654616365542102926907232285567110524417043074655766632650465326204905782480216580039148795463777365501380022872096680643883265588359271158689906402810465723691015366510538355168431324946775838714951820825494124994477796427646253190438861377488995012504044711242535745409142837537599074671820373600592510440891555023210592809331115943661469361794299073537695287039160517857002499538453543079582993740984572097437455684971581682771140113730560005229530796759444500386800041173870358225740384005060222472377513572552710285427606348399363242838341001947745640340431835439497774115829779871256391200679311343367384979916515168845995501223034812301134056147954974276143679977959411181655921813759313424623289467512580796959450844593866496650685533565688211524791510856876326072083221677854797426630089319717133886708189868698621823324240745978978355499286165116710750718221338854417139967384650239918394152191701685804453570072989953196431815973453987238660647346245694106476891629757990208227423756602733645673548082148577255788451946462345372153637131450397399332632930094299440260967362411254901560014172794519747860334277113406767803503532477229865883957454017755233296045641423527125483784583894311576072326450686171070782890178624208962136406796082798154784234927227800858689751750273710000049607539645459963631081094403230704493303056586700446363654908278053364705472698065612254561384608807433254008903435223015608235643777508316071573569078711061345701159873906894921425729478011657733630654058062700705902899570426620922343448727487408870472123909871507139416977003512760492573189866458947032366845263792457329608261858857679869917329492533083468383449756752619851814392175668264576862577700088315949823142257992585064514687691388464780771624295127798163726149709854332195935147931118165980849678266027786394652448204942751773330532856803052992728775509776093971275680460578156287104163498149456143426002852210749819544845363034131471049184103872478096298025112795696363209514971900732913813720248580037133925735126417268224092252089058212791944372825319369771870596948076627420821625962554838107076243948012101148940052685203213988060996388713482054751651977542519981533597515633658958241370324623249085201848780147010416660541877363473353920372772701267771426350272292957215906550939608162468268298114009358960520681655327450576050381992775407174822064937911753675288679524586781500879788031713411780634616780161164182855526167533185846359563643099235413296079805357691685192076208416202119086442873689198799671930588542712616325617984476427863424903560693934240762427366920278932038002337148173404294617094809699503827862236163787122921717247375558710339948770003514007401250059512002967491616625359991332495545793839647405570691061532153005232773581176152927173150466618894264096628485596415336110971795491566850187753896868814294854863477367606460536203385708395318854636950083761813948988258816915442505645310307344012819642143355999298160065035611451051791031240837820760332092212695638116582516949650909680965514719554310923903966545755042916790361886436907571065833514510186122888332235942925861420442460198686042448349032964953895748140085146830551831884276415014231170155378320828325913178504100762235337004735890610740998027360664876757860667560796303942570224823204514409294815693194622537798213254075181583586965474127305792913807912362396761748633442605597120730531803323591615665559255385771979530311961700791748274012011926173139560396975731511186791626717389703647311889928103195995750867011081642342447548189436131497370347915746921969520477283439508128675532304252687000792913940836981558969181000616561975563586051845437260463420867763353435211607335974418133984948630214925629657549085115069111061625745211853599986647609117373162769273760972427137347159015329134185264563104553866167572366028552857859794167428058076856116667675056342846042618530164531707484424844961703897907724928886123823253685139034233426893917522420741067187512675760282978680968719999914449012194820001240927110393154089055014242126665933081006801976100481436579229741449877769778492563411096987891898234206499112160797178419167988232399395941336293719489092557889980819666582716465554873906832672430275155291731039933601131293858040797842140302223122759240050446550512050288598855424511858342160480342852079357632141742895940731409951958532071979778693092127431965980559060545746488147858357637812495917021449579737157218182499901124207910206453458974119014847505820726443531517703409732390024606985941165006497103854349927044409585331755182272141873992927528339188886987381400102152217599717612480535649467562613215232580784698655921354797808331899975272505018352582412482344354520276160035745064681545991027166787850559287536216689214055751625698647919684379848449522829353633165550103184839358441255501450780673017063841359801434134144213796917432471039301735306175493337227730222517036267945557481431254193905804093073121960846278920746790175204943580561687794402957028325021343435984239005626937433236251139378296299014306277136909609257694004066431756772893530087494368116636346680854235005518541689103755388196102863537232557845867766536043249917568615736945981029587400792932824563754699462577810012199479904736634108753270205273581097124944855795076072492415139516260106240686778696933741216501408879493787778392426690724021450591170178018515928187158425810082677995802025024999221495809659854792521619225809105042939507323843056972042042387275215048735696132786366154205404035623638662845463667299826738117337357048236444688197291130702551219453288341433096899743281346447988906823272914256123601577288470959830008640384379566702047164519131843960749851668026395166260802540809815750462352062495736327336777679235969984063307915369566052824564078257853759730161305367842647935157549972439415820793896489893806294819782682873156741108622683708887724540440801813386503435510262802023983275907648261032869357275608039232604141281117009229094339136567536785672501928669208494750333576790512709967294791139360479066545817983788673358079671413791559327187174934716615493769827030061284625554768458953659467035581065207552773086294685612229068349463613043035054998693851505487089006691651763508753327822570487317013831592030091225222326730169212829697111731398327485325125261772283551737393281892368044777068011771012404348792319353512396606529560320949043846016126276456555280501283164496129209720277231727871838813232644121293772639619072265121842408768775097711617316864109576753847629228267991195560567273859238770126416682616954974109061680455038687891610553223702569320920306331530280101664172367730638556714421855756655849999460899785456429775839447072577436012042590027746979487301243723955797130817928574277266942387594142975901479321462632010706452135443206496845757175516816113137831919437744475340149605818448344771793380460442665309194203225527368852442617395469814654302893833529209215410748748415140179695674306061196221427402355484044451522511732166790068147101126626427002469423703826609123701623605620684605301735486913368438014673282270811823052883292875043203412386127706529051104064806739826893197195947258457242197114643196646308999771767643536096903700679120475574181712587771326003136629237498541419714709447108076116721331519145929635013562060331242625954744939902190917457149342181720029338850229312740960664634128378704109269941744324951642613904195479865877454174325366025451842438482446276541249466887179264563221159206625129208206430095751072301617542486216648304075580048213812792837877612192816727812586636650072678443557990560674048400424748927460175186735607703404168855887687194952821729018906546818597909507205999642217336360458203898452197074840117007607316326376488791110363004254947185434956688744629784825656870714978085477495961780445412674572933999855453087304237614731789434230986973478683026437503668612889361916914430963956221975967701802229289286676209923221825763650000689724550879439857567038434594260113108585865338203349266641225187708666845880709737538423482678365060205289879858508387785696401917741070590494398972490374312859214074846067565506470521135046435109573567323983016710347502369524323472649371556438793579748268036095639185022679059751732059753562921972916519317105111650573340864365628220431832893970677746991986684225950829452087543256968096958019967655288237215693075454688950492296124986504723964820161452328211148766553085859507976294829727857741402381278999197677689616818226279091662761271868124071746753268164077159890721001549029760980816078314664006803759452465193222353035224717101824906244935847987885992314719957045331663693592258422106878715787685933416825398370474249501893740252372845448215196336058138611826054181099396906005438154492287744351369947621518751807149817346644545025052063039845357864996067929249912989969576101146747974550184345913185785555967562960017683674435256770477670523568458136615345394421217536762080427803032206909588213643389286676621962303031206375597709077618560874335602795702947505038317650872237484686143124573902327196614826758465186578555300714485620647470560428538389515548251866010082065350864787681319836394531587410882807621771668017105072625788870001241372964502078464548632960539831452243655883963328950732496889236509385688393184279208052526603556031014632557740149430821112030730598715288902424870044530356863768363888622478021434071337212082007995231538108675372831297782566353695644649550965385752608914284798896427575155904446225918925385149670651328148859488868712796364129104847088346249333139443233315309475710240275325055743190877298030844324746590909265405813076267462441180268239413846155676174545611650442118483271187071427300541678991623881720022810016279617483853662289137701937667345214290751114165843392040136852476834067267381459254279460792362001354898857778011312016102900959701743304917877552984023364634221362346361286905699758678750204194642103230999306535732741155808440642498219076821288742118988098684727280554534216019285582821626341863913492993571552720531446881561780769104902875998928281876968615824447768255506151429795427567076035821984619644141122539455878129989186639178346117280319323450933702819900045686320012218622247980218130017241089850417296653822701369620354895206466443170519088594093555250423687739310865175264984195750662787490080848818432633561511688375539339200839274842727675104425908407418057385044261496178064715764646168033920111618157117041107197375648391144195934825864271208867439045290651902193187508528279308596207069980598289939377732878740227530514821389929153931849717774233616725319402910274916267238221626092292343559123170893621769462885768965180331366755318669952405931265734837040630918335251679000430687384450866584145749470836712628345513760471899688478767906333074495828220996342924061937173037499898161840928394872061980643420578483472091144856186357741474484655315034924479745971973567775929216645491356921432349814438329218437175416745714168313727394302881137067192724038519876648007070451601174238786965958793163227736383542451606165870823887402536001367479349875666329974725084488812398535055204395842146309420549063512077628701759338839049161233094663750730645729465092247863204281528928655890805951558802291781454187027175290535079185885415841721962701718734692134535018757018540445562814135477062854514562528180209235646344270398409891134457078378737285156351851740578364056404789335970817229844421679815686275858572088075396801771081423691966330984634478283882130456484130148514292303112392283863093222953558585829789217406854710903200038057582607774931851960714397346407950578829229801828142223606518108735953297226253364074474781668171120690428316458533638578695497229954334134083276119362539986902059378006428883470993173117474474969934225502471319765531990545174023076792543521118391237996422700425679713182526548487282130674219506277774528459362192340330275734665432848876553544166240052843057218778731017350502245066808947910036324967591110075911943597357207930921325678394248197714446361622921858363063779865945680154302421940009242753130618308643986241854800643723865887732436124418129869699244147747956950896933534973075720815229170733864109447019218567232857635635060410472294767868629355951161248013040741905739770992010018402132949425705237630149922311838359533376248006104028617148647451251477250062602580537270214903189939435251539329037352717705205898250619446952557415837939929255021001315814942699131026410933771393335704150873572606906860986425579223939053691424694971794053483621474348071624611464383951078168925961967478100659987595608167020480913459822237495344638692598551950091314018476601531054222384782849993221001113440627163584410833071294626131474696772019796982515970307459238588969863321473772284021398642455237870377063920431203052953490964652938789091875388196570751733996335671731463142707831992552491044188741810809560811259704043731119601213629929132913068080212228025600666260160745175575085860598653117639352666632259076981534573540386302015820451600658515271574442075837345180092296260928894269050104972276690838872544459803164005856035776410015424837866375945622667122796798480028399478511589742492373036369327669644868813920699434848638913589745063759535366466300972698738550581226133984754110392302224163297838211492077189450580581094108496434279576586615791746484724475312163745765012049254884322697433859868131612246823397819070846212299056076331578272127972413476412218054300155009433425252116595801387704678265964511203468832296581479378341850285046469673406451841267860967664921707984871517045562479939143776072616448116975436755444279031933150289570712450248082263540610285295085298535989219339712430064680813228931381017381179273173047735301250212224427952154533752744723326182105422708511470111069265315530525781531224918133492768278231479714000199484974832953581052869162846817135166411111838734379712522831187961729211365829701783663459105419427557700441054081813626791774265997032810680797102154914328059933021885439824785289506402563414251510828074788094212050012462899738022496453068619070318013580487594987062605171611360500874742413580709048641260043028163004095160310083973768990346827164570674003291944474170971255012987679959217621776378553393549146257537562708865143518258410771628638424343622636072102499037582305651659957536759864018868428012999374038321682901885511439140118957404353063006499693698319938682137307059192386199562185729016820750154401679377312915424230091399456534592784345727842023830439172370882302405178538948169208466415378369327868848260959446969468535048000643126237867635129468361164512892147788205900315322591215750932850002607685647422167530337513904004114682249668704755404584158724229224897317594440351517857682537285593243755094033939696517329104691475472096564638765450063886576504219690097927340201541625940133673916241504736219792896086740687890765112792868228196699118029513595690541003633149914449571466149192850164440121730479080280620677553724501263001996069631673485056480771752030272479320495560122247365853046375582283109683784766908999767232026212518297367509043945034401504014852396352015667688035713169478891855525843184870771247320171699936284008214905710050181105539531045862915120127309243868924085472860557918440968732379211242144622527704796750423681412980140591739011633410385258251393324453794660973487547331181606105025611042844438752464919750905690136189503502799233719861975052537876146282120917026562536905033778093492956291118144521956689941946542940495846690481080612903002195447243991737247131513736622766672965107378547601738280868670128660419195347201318579667664019662337392666554474202939934246764109635497120702157165440011931079464217139984154381972406356459817063638650081729613307769983876079907590751439267381636475483043183667469089722174564866713902144062426175687591756740251838152246188094090304121552896750544712255289486599761913434897706817947736536150679682349741230756057163242341010973184476187578176352808903617503767241482732556228373082549987967240245776159756020777176866253476227953112480038391603224935800027700265713512584097262986466822612478937524027192057685083443798619975525258427238141307447313597256653110604425992665554360975546794385452674147337255466463000391540059088260276291239718986188054995355822096594882522926614893661398284478594097424695378562172216066146989486414141931655140875540197102374390438821690969205639194698969516373849626816300016102583030208217472784327633278091712462881721854095500326946745378707442447779861046552912468537595465830684954531861743464443111201841751203115332024450887220343863845782171143161782382036185546725523989261024578476735990497059158945068972899893599758479248096099174871765333098244076864671022764512351031322356775844693784385017155565798145343883852106118729888458713061776709320618826896109612295153641146673588179573579416868263349755564665240131889874977831205232143130636903305955893492797933787706679497954956293938807474588866755683844455372789028635698485570910733328238309149449831615502793129978370544016969934957904420572437468912502713062813904197254278199480399914407366091832366664338695214479697681809529471158248858587868848468788607742785868856424542011519685649893627984667172840020003220956538655392377161993649816054926537568322455472679607104823457784850680556771309086013781210936131718690432889065491416685255334617463774263189696662884049702594850521047300673886263469792177977709454853435869945395263613964358152711936414104783095863248015682403669493979957593817490802080878808036042203864904456476474616392522912641466407815304295471530103709541929605627073249092808917484335425858242247898960513234184254094890000116702422695202909993083818312076174465599754706151632364441136999396755792580664993144533220367287391178964565687697688508169302629634463568001765605305238210423458159532704788316354459261798085859304771041331461627138699909378186837529700304033786675989729936848027168816432333215444713863165197102756136038702716159005478791860395837477140899855038878958240692640002187437825286575061811748835457593394272057937970835735113882379162249278986744859372488525340904888701968121331492101911893580426887377142855993690140654886725795531759831183215617088533220655913901386609473704702235189008971076791694067109889942014997021756932968944205143807056683565042957890248939648568281634300435716413870817443131948952510838125483023165871756913291578942240611300803233884873983064483140040263685224497904468576407502819582897976467582603647780870670271195892725323659812902781493087140889335769305238274265048870449089138103999235076273003722876606973910280106897327707135380502488062634345822891099967292094430046419834304227769186718673870702413557711030392973906577765978180828369024443921198567093712892146580577930198290932510701015089261912670876942696345893466668804771122339880740650297261426323465429286277558037010381342185208792800590757762497508277687681300642728455364902335146611218638670109164977932836713618302968534830852738078828678262109553823702696850848467909377869035203823152855245806554909698463928649287244131222069625031041341375221503049998446005008177435349457296820533921366730840663745004886531546610375514856654591585991549996610501516408987340513992133985336796493370076277255209945507545893648988458462001887136360995499999629531393468368890071904551813880599833314502464034789528157360476765609730974543158830936665739329067812733712956429017568863148157907303557113547613407063264202220650862459906215399940093103714388884080548911412710978075060648665740423140919818939382672125881333085472453162299519361230949942003368300969190738106889244747006890539148397810933088661604361403227921604073510957347202725871084692600481659076874894783684262491693238085480818690935798291598214253612196320582065224779605883022778149488507661660156650938774799295264543277570836220944286988779350817350311714611003121108887837156835983312599747592877330330079585699070413794897831557276345184962583853476010656638643285632883614584921577142262375003736115026693868687156062462940938835149907284875192621081778052046919493124433791612790928472007767732291588993778155745411257021187768736155771257654549553615815758262161834172366130060002653630987032073222018829402796716495547277356107564298379941617494719383056500696740076539922556541206211346975001888150887877173638961470625781505673294745423451133544443220152425731444142197657655587692187366336664520513624396902746766676761286847719129000355450739864254171599930122059708441337346964931332991881191235199573848608326882769612946076497003817568548361338796466893792111352947105430910178951200699424200372116277205253548669380070517289739108094041447424920057365432328854128329528002509995720157131305810452010622112366534536841954569552400820854700025225356329744758557244433013550952811210619459642505315527305571905516342794784741961939133527226081745035958024218015084214309027585974939264345385324805092477459652960706951573642832305022076528921530317061680304422078034270851396696853407697487679529309790550415336877591171482590751335992365702884026340024028143291901128199185032933595397258898864959218709581160263436904752872592844221730759410066653955563792303444753436561741507640990805498862952308896942137720971920984563634297471767251328887754731040733879640482536394882312010711474939832472685242577658210819683383915894132691364587553088796187762748895492588787174176423579411355175849756749744958846026679828019095225273720290119152055708847598523536744208705497465427863815634648923970248731791634691522391293258835169574894757055577260580249523403654586293481710160050372798434890039158511897563589876673856345847333575755976694575126899333498151414425542969636126409285992119931731421180155177085782548612882778947605347376320304200462830094204751546940171491684025858911031807625629964258897932972236582320963262028259528151467824978018845482855212551577786206329020440038916419801795592353851748000539362060591024512927752094830597069765619518103943510253798893129486678185416282448884809770787744680245288540177769631638284344060666857573234536173516285096521698454005608459986290805700015445375415443783070739891962784955990188408606420904518672658175633331893564160268006434856965905570593003000755185906124148342042097537587280179523554915942037616485525835020496454822821985638580661901317288560765034984841939756831311955554244147875858275523309981879935853445866583384468161695848850693412368764866542933350956286705561490300968412611403787313094172036263170784129071676968274441542039187802768740941139671535739076130667872141141331484057023795083007078674790362886444543263882580825213886050622799901931579655694866869509279721117413422008149061900885046179910568482773270644787760039609543105816760997407244008009383611356426304313108891298318670595117693275363361714874319237576426830907019839616657261950933174328784226867489559961919432742373960922013424836620237984330768890888944137202794351606205302821165992427591823420531266478975972069296134575960467614099039546149927032938926909026727486805977307193496843802937153545787683301224256872828169115858929144933039459466579786454600087524567079962480057634073053982068764403830070747761018755240286026245069926703716992629613033792956049238309837226816114065104902888043413837989774948173421895746579650445697654180195048191237142367021425098688581758391088842128886474787905371153315703697491597394704808363734203154129071618215237424850126282330754251218767729179576232917692167994985261357138350507971216296135882704952144377996416043138596256041241736234528286320953016489736169916731382569500469779738529089909704081207516673097935773849502604464659642946246146110182881610989448191780804195588545010321092352617133458376790059646785174821178220970036298003510603533600300048621608944652581644617343610668818275539654161765331567275349948366366463707629626885660552025281999779656719444676349116728505500136147430391524063608012497895739617221372984056562328595691983809225336474028231728971327408552899746724609770984079765685248340898928687654687128068356270221064300153705502248264834040419445094431557522112809422306832927893780570685808550877616153627386848128994657132693064199154007451510349192526399128343457326876478971219566239476156801990456552012417562659067501421979240710730956177591328821377334404786418786056590859878831933666922243093715308167258234459467974318148383606439781004298938171303859003231834045615516200501654474644587788228646254299274817289888282954093028462076528906104334912465298286341535797948592922286614555782034381925910982640677494021951155025666422063758596979506200173610828681117327092041103076315855380486882636397702110562164900553489527038403515389260538852024590991775303488852210461110153170942560751814276169682158391058443281133722822539379223254684472878541679149304586805600379427565591207147946620684812849931426116400098429387934261626757273696385263180126566376241102299660381161786431274538061183846333422793979049661730741501423936346980966375118027679414846079369476214103665586735261657082135002836591120235177016883748428838543645198231421221818249616676558378889777917393517347448015488784531026878917823426852047752726701836630926492638196210427714733015964548715698781934839043375988800858012240224910975575771455020879852397923312212217873381282209361574783988120202556064167020251622875788106007756990082805847895104323789688476114783267826048664384477625414763489388734824185012671979816912478528156613160414794751300268890476922933779553900923766485061036586118737692978356423156175325743223610556900606978377546605251003629181890684463670991461927884429741004178888058060224656459695310288198558151471055801042349230748680057505749419708613722479826185669855647030359697578287803005371918365224461229006414283147526498826156224990630296027696069511546266055379793873359073523796419415793893475412155975789188680883706440113253735055314467015064032324606974309189902827475542764249576607957724092447494458287657846502283773074388248720386577805791892430018810434832831326437553552725177318734716874942780426027470038252179984814126064056234170780140346271246602920801556177407021041478210351276081965444190845829714552883150151290738981508376478506043117265755200257805362424735950830786601407227729391950445954281055514965507548780343666547800701201004650651026341109099228687015746470956115517591891710395583402364338092999851185980173868622838495165080816466029819733869079724137922498138481511174586121692721766076812560696615326641760034227800745376486898658999096883489207767853847981003602059874999421084243431088241505206918635353552674839464011909588587784828294821809586231834313419432269379860163055769194901093593598217474418132292617081557407767557700003916555350868308373634682772264639916123588968326302902852473491170866574498786564083028370941139572495604211727161955295068766602779255885176690319347618447221836246446843656352312759277350928900586564390181963739682830722510260693127789165526919950660565594303864776539337462892143610510165857287776828391867843185519051255524192186251710995669482678494994538322302816891568400263908164226542760686118293031895295518810258664408585437889407396085129570142119500612110395932203609572993731210075231651913326907567585869777106342107261535297929194461920915179114429159767233275191024577396691312875394457181488470298644046298001399442641298245748075780332036950286673280646240462905462974536184479150963356511108346307582170389100260026068067596299663921034938715451963133605911694580782015098589922225224689926447458015905322684966674360317597758241103928587183425228574564861172993727195862228533627324045162693551094741621519046784667007809616509715391775729006815002937380441171101150614755475886053123584609235478343995089293305701987160667791059868421073525670604157015148906868645849964189119467483773019047538329750299402026024690390726148070251968841752401248068140443587124935690131914888260238371201682253780254354619364344665254783665471914320964479828219520813590697655899155903781946511066782420840011294585706568187796355588783925161470692400478586938656683328467215127129405997591571245783485030726626428400780102900438959561729758840340633582209779564307161189294851315635064714949629151906948486726144516821914330447837534171332941507994445513448648110340887418212149401424478797253837721817575104565243255013570948195485133531546696135708237242087793687288142866354330184314925799227204108188024105049051517168939533575925853833928128450375820207990575769526351248180467786452464069629851317294389981151783813918819966388583500390104864416916154693626041980171954571767114153643933502100225459538643432700148998552707386333533164356673215457110730537702257040736389911240700926714507189492145053891693046214333414149609688475076120300468183917191439994782245827551186186367681383496598922356603429248310876398955450765015412631298445701578142956551162183604519237544402240660308037949375755329051573661862528109570655962213037787114857282874816212002915278397384299158343763783993583103823283015964837437559151780943141073916557684867113129843387529374988537536479135221339575937041428151225589681329997624582131674908132845200811905223167778266805355297472780281005473458200999364960065636601715512788432057735557247198694511248687510731620675466108953737402987507069838549771487080159632688187388570747755873433642753700504094786474545824283037914171313526214471867659367482190603974677697802606695942340451361435788475816015751016377115869426410090829463232342041590627812293225699578166031150692380858278323370749903845076716136574988127758768774344591993022616581922077826370181173188288384846112452875630394610371181389873508251673764258957913882032186910069968473721842216559082326249671000240440928164156950253228201148679731898118644725524675456730784909009067967183662637427118145727359863769628124446238353518130418097325436497761719797956531554427711798245011760751306334220721696623811672640807193698442195194950140756393781887030424429355445807149267877462458334631747558854069376925678222403890316176484537928190717455094221417396031598782143216901769287729011199751429040777070928638995168714448618747800130781820409976450529993029956090738322829536622416193861247339060080582448501895529625939771075767338170622937954095794487285952016249221015688422412103758026549959403586208479244591669323100267030989594704674424498468143737042449311860020817810753132767559548155512796610593283240577086637164055364038903207866722326099731823955873191102518664144213303798882733597952895898750423446584145510623628926986993794944895181921796154773861624985704484062224755426338406860341133548632403738777581435800411195008172710248869853496631770614052198231855470958778935467988338362222764327532088482662454662345416131093331009635796588658479105861438032549236399773655284434744807691656937886868827572492231524318482370780603449334310045790204084415035789490701616413720476228220738162856796816656315104510079334956455326024722333599652318609593576861539048469740822780171415826749792606454850557575249664219265426797626997989619337497291368906142955549976159897397807485397768259019607951651372282297913313708606828191930666166586239958848221962335240083531567616084863725920746310869418855025566882894253411406198375469768956754966860606512735166406722429208927689097711825248836393549076130687991902153013204642460964086913663014125881916871837561771593968699896006476965157838765359669218944388594884894633813784907981125710981422343614485379917790596788227039295573797210355425354569296135513885565299868943695233864914578110147098262975664548083863482504431378178783695685558183329307142282689064852381026690745699212320137623537569815537016529296949538282656363162222107639511828240137224155094703137582129921945033894825861058929417668662548412474735915930240361086111637823183148973834440621063152171596029119329422886015800087797327241024308862759923941093030341636844302729207126293745607139212724390988838451100321320585701205066064881954249781382536011046393732585307925625370508135022775811597077462709755057740254145836357461238926591900993319817692494575450540335177042139930477126550727367310758653056212477145282286570538951316036459968871948623372069707369933424733584182646203477444711141067306244759781575452676719646246121435223210137586074580481408884482545368127595772527133752097710157500534075145401919693444948692350515086982218560360685597497359949141221294956055705273969558172273081369487130889957857091787782965266489662554962809342803828416386427950975050188527462578282900934616815245789674485832117042618688136309800882097618731740604649327097104297475228172982649892853871392527602126499238917949393112178935248272486879398099862977147798013370815144910960120056614148989281793222738002326903564110803464983655922762278677309330377517921876580612899545559222335315527775026140168105151508233425384337561282794916517349067057493470649756770563427965940115383686123042136704747936423437053578912772612855992222326829003600348214522679354277273232079552221472333743946973771738471731912512839248811340679148179324704611736620183856151831878001370328628567113432039084277747955088704256117445499374403562129887530922301362824218737171590093953915995421666607552497561289321985816386074208297900661669597921959513394652237124950544990074230540320880823138536227525275905371296066629799981702546745542503804072698514952003887085020107378592560142013166005422592074851054378677063729278757115565773010119316612046631340638491135895112174421600607258995173607264535671082128633870957492729374769504729650495968257271946834736572148438703751725067433795628835720255268633665062989174802992519086878383420612977168028111433964660348185991820959478741644345452203082463490659804154646232116601085043904286411472828972258901640955842926280096300281249729683619210567431397599151297207888819830771604012382197629255314363905536990546651929151759692181864803337152766499660342560224792948047034071438252858876593051695921536873873093151740250660556230713178115648047965362615089315679108002401651755844129882798061955248656845958116750543018752628517184094056295822336784030160128241530062842030222269499397477286957968530384773769523290570986058592716239893211762780389395994327220791561749475289757018284052211099424032973348903738121139364401328920482087244550085052972163523503869722094630835042834982304173454608847098234486479993056647889500700860795528550080725895940529740883269335016011708762707263469712822632211977175645939468126146381113091409965570318640704296848632564053195164200993155224017208635688738520226287208773737611619670156035588283582810658652352108270376678211118227187015931355437618680944636897065229458029959366368090410734172320619961540993651696686842974027203085297402943146073544158581772215749626754267706016483471168084525787519695421193121354225353499692966148808572358900454882730356316505853706360980039984205182011942209762129544436928131616658950767787922762096006541897744445443753173085313493180669261202677675870538585120859998274320696888565492139717651276957816240080036748182103025025988437533294792931148300517627312711341412755676910537034431235595673447832355202391662073764025524160019901354229433887141263934089132241216280156064474127665444428851427307969614232970471982390073940326728503490405136525430502813165723732614814234258614077314059235956006818412651958013391748304017980374485803827524185752404798642854778840585308179862952139520285601996071279686446403073547477711681410649967654253914964649674152937793394866531108621845074858953490940275444919793685055697117157328671834505850715244936045589177498338466664278647404106495471356011592505319316176381266251099292108272227234487405080851677700923211528568250123708309230694525653902489187189219919335004206618392590272793718281037554783519757044578582747893366553346224663776429235719391567213358547495846443640459844222818363745775795959016398005603956458024780217355291834903249297054905211121802768957894618462387952467686053917273872052522696397853505591595028189092845796245647465929453960972831510218627264841869929177363263841938318540568904871805588379759443107734682005370247614378224637168145800167908333122651233658430333932304269807567597333721324653440174550075802831023298329642450910256930457611215954409579620604920339094139555722892632085546940267500995875521012261654092017255315982356716733346739227776984242925494183284271867018700410183551647625169277591757068157309999664188363404629403888695966149636588188547322159527239697556391599055630492429271298325312722250155336617940415700087623174441167784600860240276439007454233042499229787540447618729853042203508214475006944281952443282777235131874901261800598462242485697905722376811002576656788118675140573111908194315038989967219316382941478902630217061914421157179384447552676013808659038930755535695702442482830721291958483207375808807194267387031127069814147921043361917522566873638187956709448858571945446315856259428194291558306815098982237038145843132110430928391396578309584909230194034643410795753368932490460352433094491770999012966119924008827650401291218118517889160306225469679790517794939405502777264851425000034533341664976347507745992566084704435108597725185209908524033834945394290210943605238278252728726113383164413316550728966839143871419200523549105689920709198878424112579392306287365279954844870583119146188878967976097739180786633525387835566715513144999477117140592587734832644132564143674310869724305389985310837533773438625932169298673873224129377006109526235704405547832134953670136338020867147971374023568789051864135540590002967491095245376606462919963613002749833902404803664187272585201487663112592643088288416419209489131811478688525404738161882930368228029944662165647741142880707046520016381188472980837303496127296255053759373229333844382175094000409740447992050783843377915481997816622448136028861789469763538797384710648592274583045629055447304328541149117650683206108852368272570000708697494018159955717520460722052689128532876745089344723585151616539754902434111047483852311275799869649950386828706886422894316800024151228320891578319382849437313218573782232643414626208537815859173317904808804668892691770885043567586020779117168253461465098612738736235764585773965372401083097371218630098708672149087274808457124799174661405013234975924246644496830380204743689573829872195380975750349369310409878939915890539809019950102241142368899701343318018592959008659729770360039391558428631881964506093777337408575030183620352382364485432188854890257253505204574721361301029038916433135695805696046302950773672021127515890638941722965520919325172679272455261946796300591432621477596377122662724224427696644202328974482798544673415012438316936794915598955006017442655103057919119487541993148917257031247974257887760655679395929068617038229383851613093424313916040085592644434926155466940871597172511090856497761471342787485974755804769054343700562969839647894575660616252848481090913848256252600932273785188128415769578373750632225040627632264336514543652003097909949049460498135499610883051188892680792877652342652289024118396488631422155901458973222235956089315410036965123514460110933525206579611375539573505025258026348150147649041925632691289269583360776854926463818488744113503270266441543929953324944445247687485218501578011571348217523275197523991212352531066667653934725939801056925466422809530283420041860464679639255095671636489006610936823340067156698634217821512513207582137537375008700160119697555856699830721784910965799576659915423561405751423669304794732784691074669606750895437537371990578945798877181118761718918860198725413085720552125913359120575452182492510202051854876033236322066492188459520522001517619084077145629961724569532624349736068795418999822942605446299564716559039617946147819225856498153525009281716749352976833381673102228815102379129765678274949548271971718360567223361038985564389006187326829471620173158378883903523170800657888474276347183368042989557874733274582940957361476492807542066783378569242039832644568187301140576473144999324855016207173479760252464485446957623787482066252383690768649595756136109665797596082252449563075439906451831533185048862195825313846015417928132573414077205659692579840567704325781752098451720331190022593377036820492505633538623114079333698974547307856094118787847697494674409895236075659683454427602489672458567533424872617678208053199895685296498619159057208213021174137739966821061751521953379662514730516073195497137570010642009608798769302607792344817534945673139006305397660531728068765425690584463542365173749931601352673504266487891444718961647931961355817419516895338515257440507575892295535817874239335070567258841907531840317078251896389473799271450051597305671040938954611885870685906924999170497171406760839407245331306363163330503516579262765324665522949126658951843757775511690231799281806014578315967102483330545698802050783924238677606171969747848405606582878784351980398170700040548107302298328334240752601091978031573176427539289563081515682474419985162234791496061172878629407869753203253864490864516175584052280164197019907669890667806624652668908746397018730689227520614887645920684077329496134622903449294975244062269656362444323753144534331133451953212957907885906592325510852930305495715855117658760858900658297259374995685853402033931722194740864811794965641880876442180946476499067516734611158486452278229964057393320310899168962501328480439142314682852280922751703364023777555260860898793490222652366387394015580524912759905002167484812336061519515607417498307246428310639634422769116570248917973151791240298019521638716975492622617674317265859112603116694861096986492220086266790247676636093519422782079750251220702621421326200881737647970537190051052249146373685755450342896385186141334167725796199521461682036798556023997452811828241624611247173820740658493022655128263333173000737524492170194249082561859769886994069379231130438255900118813706263740324139605185314832498062741093849351417718063921221165645207330222719242336729057710933063197085596736590843050493811615016280733727660273823781373717612310027520842814286802784415071748101952788403470578078964515842051117002818458369776334159408205598335416938520483878153552918303961038310335302726418516717624928239438119214592172409068781562377109651222122302923014925745636467783602409550858956230680079104490498561839746439704886094382907225935518401036345365816790970307584587154473332429775903181704318896172238201692671962012086865842108611836382809623719223882958699935211838698872537926056954244242989739339436729394487340300138495505934637882296342390017737328518548185618333063402407842620912122000874957161756439841274181122271388611160138138160682534974271340151585153352870184588046365939222690092306804201824060498563672275367763268568508749843989319872308622233425621658312191398355826305326628031374466883486238063341593243361198974833077433525325547234468844814988830529973385029646269883341026785705773808186655037112919722525467170220821989387733041384153681892261738753281170993530909039679825476706433045692393566776079191196882009166951884915921716649535191613818842182396959177639523556728530725642031346126605211734907765889854024277368957786515828680051366486108007449229606486100420414789199092671356887794124704304452984432156844134027238686433022375789948765231312900774545848073589497981902113924655773161224261214172452243583210755258957248937198867121592426461603908495108566614616842044089486032913267048518547310072530716587688713023029669172509783515735531146379463769358429833163952607525664740777230842856422180637895649568701287365478248785788308832790116735738832339568661961635579264422630849617542221884725858863283321399441497131456197433633089795260380133898381021506996369035165359398967720130332989970766574056493420720197480147825797655621975618403237214439083222906871543075945177316908118214010296739132333544106069388650607172523392072323435557430324268965170845203305639672050889437743670990816449509532914730567517425374218891028173653106584056980128337787401314994084975546337677721528745650668034724463368363539859255885753815221930485366102939591064288731957596614601537371805703010360207465208364449554444851688306687187972411993215786130953300076989115130386237022155034602226432769363653843995858519292488711199629792185230412771751924283723067831501936341066177669888489467892349159085923360394556503695034089198201267519304945573718372587778939935085975151089678419758745982340881183814364209871688580638996452464858318936433286920004996290732865997560540487740835014714741493994048303155546865408584196088038436004118882520965401441294653625046563826052116094843783989141018144636896372927226142607485562356320947947041715389744240933450757227843019910423424017097419040200539885512402196110571648341500074485886492935654581661300637166533442676502623034456586245167286525182866734259905313252006696163841432745447182419846972317407554041555227466355796483055057522090053422107140869612582757662730636564457927177724751102331493955188669605377185393321591769484424362572886025505372830421285144930483931763295321326735496642810281634531375364965040155368346942707369798436927619954310482896854296872177994074394234216693637782822969099030733397201108207142220036938039490944259558651748585536109055195482203596484912287928466793011475842535418571575462300656590882703086494849160035769317722711098384585679590935228790067004149839260839666528893854392063905072585586767893858549514284458790894345562260504321994613898557679403334923937983784297077875682792722584063337061329206209744306937821891255024511897741298458181381907519190824153783853178844077625515743246394605510686838445824850159105859091644441176373027912129599570856067512317674221476519125009687947679464089061187907589589962638970599538209441106563335038252368552465883389605786663490519244266026866107103022879395946567081730640416052299172204443282501630001520679827084145782482506848943530715276547041168300505999091411338717505412411599840735045653204148795717656447363282580458108394700542646315912829317294814084322473862829371372621351593099457599007087539173433480724634762817626652909852618234173329693563226665756703496299931005340788015374545886131503875178390978007797221916432136973221074107147887901290029938815977983724829274197722804720647049075815231013099847045936552758549625294569284710046086142998320765048698368270031421996010237540784657225533627185430838295473486482032614542042411756200940902854933840257665050679788267474862582256002412749775197538456916676009884690084115632667754911531345942288690512584925607326043792170708396305209691456365199330051827121512266972277392157567669532030206611938745691707499545979568242405270823898006151726078193693486952143497133492732879942614593864097350749829435248084405101470479523523172253468803034314285670292881090207060755844796533936392584768138380439491885091072091759157177686320908335941501205373942910578079863612232266489227081512984567088213590645353932528864327175724318127088335781876309173939320936212162758437681060681986875620826343667057952177322387419499743923158553592018927270883448472260918460006325809904746634448509320737864099379060978047201564536055300468570030784576744571589459373977684492543410804631816655728224127708226697290465427214261767362700802269397453757914201953107986974941383660208445107328111784301800737944482282125019434600373670461464375202400334502847490682087298097576417680505959723067956043853087017902206802175923425246917616306785192112814885730548126834107816469544768753167711282665802267807258069642567164621857985084996448239271640382674169746511609395000657064932359399928210030141666006711313215413202515886636765126670482531271736767345326236896558335375039732799662647935586705362182080074747683040321738342650406339137360673091508507809208672710674947870296796685237522430787680828922247066795456084279081871500105133462442216796183086024434368749089117952872322258147198026334876445608463933090740009098483727026240032542362549550888085026778567318518050398220626606112088848427527839982328919671885776944308811803207607825222674645688292072786541830274063996857137305698151588760601907136256510261359921598375326428587341386600510850475108548290645308505697782305165777416881203724855345710337677346914452958727992403841707067190190031128478774192171083105752069867736250061838803767635217829910862544618245699280318621116047345960264130642326733925555082196769563767459037059327300194474519740544012692686482894602503382879590214083562885674495452025929750812661230365026156131121865832712477223425953964260949084980393595970309428264205660211566496098152166915326138062259942870236879696457843701638761463356785671655962389502314796156553458460118664458397775780219485268181535523724816447958845478179889428291253282985260516492718695016312169214424272641282007651608958820717421406263603375518966524059167507579558593376678111338221233322374616592735238991478049311592058264644791505054248223984042360883779978880633258368367538798369543104991551712178727679455306766109366297695801394015767569884719834400174989775463393374170038860533992909694032413436000949623624489767498262959294592879846819579090036926033771368169759175296912553478854109913577706200806074451009071902459665242369644270880714004507547753594445108595355095111555984283744512679101813213501112881653137653559577209061178282562266219089818047374984830390195073991858840311064168963817262366795918888783381023589800616494916968252367287064047677182044925581524880614020784071832936999056592380502262688622280763635564921021202974578461583509572801184073675533300646699692985015845499198274636748716204604755657723564107286749949011952511115325639086479804622547642875781139175484172815590069036407355129161164503897288293560298659037411081922746202109505467991530520030597432642856972639459940365967031031078961656006676497490204269466142603822987804691545290293961112365768716945642922952406282994326281051202544550322121006801950323677543955182302587677191052624770933130711643658226661457715609561423472404831199901950899582946728669880697059927605931739875779054724430393918227075264722796776280641592920281318578818711659449060409231225155347496838251904600480804267116087908033382714692672816480107879370963317228474767736937773467041074084761205034136909053441961141289872729062292590398880513567925695508225447177390479796460301910715023345543928085498850549014121277694165728303364213228165214452784925810884979186314291165795354731090767215416809004432582613493211894113676782889228633582271401759203522647098852267445156020204313659668803516459934129264888123361817455229762545244123374125771379143979231166008224331004497663066938066307174768465159555513683341879955002549725973865380471207359344557798826170306626236978543051988166901346509391730100386673771703498411010471553893542895911454228376432914382056957408605246117460620459376153352240946937536479778691931465003038708674493094136034225666778470458914971444951725280766190308309283251645921247503623936798823282061869160039728539304673646291035806538350907983728782328215662241842399340643277696517980149245438679994464088515907752092588263753636204427432391210589684333938488545646842639758278305603205112126308866781395314207309013912994540712575030704704319198322684428720057357931396158214933430140296181858928454244508690102797552573064371148366051357236383773747615567411485460337492039511673816209871226032498576598820030291343903265388713750116296434817912724614319901567957772237439114372635920303817697351654240771260587989693090430258315126495765361791019791144831768418416151170287685543787360213239120715508574916414406746920985943552269445293313172567185736209470935571976474503005529867830681402485241328153647121434371103296656264992165182595622613756869573486146589552092525530471371115903461190066615790415587464540070750825867799729048673129334103079350667738443525040847757110876583112945950400033220590968826902742794879464816469202525582193648560845291618425567311801290725239498731741829348797079436675631875956584342372791357387915783345673618111956431674720385395809032387638785602521127909722493833399114540892532902065066387309095292570426764059743671436253417984242942780118590423488261852424427171650860724685052134017862636427946634625739447909218097011908170857502027272417958514863010649463558895836203887592348842942657985433986292809359728475249047445076693423074719607034618346102524601493653944906091375835485421140292418921970482968075417624789925625392770665747396259167172710330831168995015873250696516368407167280849500501756263805976366976693307224313971936486434411527410526730825820429715579692652355310688583943097353915026912287790162435140974204038742914213290941083151607057277256826414691040121018839077892052380264033645452014152937029269514345237892136435419435823262563602926129674721821850604207455381689962780068858838392913828525646924971314171307624960034945600941728875363979827065526514774955154076473970598446241197268554033543914739143768015755877765872808497775156158211281724279142617354519386992434248630758252276937287269748333838252333929773342502534463603048982597392936763895927973472970276824330799548710197884138573308311956533687713046997083601092884403754470891253488045158799576752759050399782879434878944157964451353644091461301776014281225376291370347245739055980664407986671597861118951105179253490948461715016126876463913964956894047574501591498393209186535993720360261265094904282427506567507037961242287758647659314495227147693807468161564950592141419074744047911142429424999919575549154922982184395524572780083780999668783256351766566709611411889154636472271367265983499194155204812813810553374089101233603914990231966330878853442362260307543499066865285365183938395663155065162143936649036234282216008620381880238418643056445641354586075896778593082532998990563318878435975364608064985707241939456164650744997411683226765556119701644695271168491137517303262840439912776519382282207557958313926800768499558161428886716055369939410774285422321419030212164960081751875944592825190574503199871627101732839423116729878536662780499000021365023707176721460214447017027125502565542639208001919517820769631787190401956686085089584512585058630726691703863990764872331772798280194499167140860643629492027711423686399050025757368802069568803210020943409362069559470261473922315195584673454860541036391995988326342700026509427121449176711019380227529370957371220809944680171834388665929834953505825155470676622320578812285871947430671585240126737569960871043389137336420356584812824450019692740430474301543535144628400434851222882885754462831737562281024020965644729092365966301475969755623246367223928787960752417752848354445686246430633503912251832364535113526064336600543309023993895066941020864762615392834715847947099065567250256845243507591061065261608831878938121437018896089454830461883487795243518294847167115876821519580092410972550982520241426676111815377694768703864541571632934414600275063998011627227306085359030940237974297638775268318126937720318955055763957212613380391566410267295154894495570851528372955672060634374606825950390752438739143046174013478201292978487628792781388656744528502561067887216008484847147499151431819540022334976605850417613757990119964810318586793944381526126264706172534225377817052426584856194784453509615389486769310756695071439663938558445685694114770098270159494410940627167130794409192992733018889315665863476647794398109570040299419544105777818476512440963682973506875652721983564090978487303793921915196370514702211926164186467790496651240646785064793089464392218194187353360878611937893621045443998837034159694459553854364339417932215589959510243168354225758484191539697374565901845151644294812172648699258400037881883436714129048179150587136984678053400161752533937739716614952911043041825775132629959488235892990797331870326781611497853431055602749548875032547706219930307778670734886197254274727535841368523649238220761445931103283663665535192438831962269900600623709420458556818230396355032152571805373907130836162959282051447144766719271457712323987806528174531664250900684148030384070195462852228161149013804101630320503709727035059202347083624834830258971715035156682504379372500365878604133029740922563955616831286607550216019778534362070348412292612864622432966650443225126873524283314755266428624240969326676707820315357215994149396856023776404372011751123620599538167477135826022324923353016689990332987833841883997975013303140073132580611679197813469268019290278972079019346982090106644000076559404698157643862926793633036808886351974768528315997022295525240917740063075716003410908081149996779869213534130398133880659647990060694913673769859863424157012068148255717455658227809148316201483598290318730080214504095094469802792870040947074258560656619223359636206431021203757920716735383215585388362233472130036796162728426983276748661572378930848202371434981902693413262157513161324135505796320678354900432386444640082762320830922223844561340658548198986039322551781808151538299399220524733519810930218506841458607388152361445254109984223253914834178001349809732729870405037928332895341364367388024308661582730365544357402329879754580646014342924859683511595954278448372170837476694825118766702785518290798908671895458051307283741550768328640198122637500496866633751719091453878021385006052139439369637614708674789368751514653972509501309768528955359747015810368272989276980948245014616841406745809279452134139932869274114177846094572040483260041144948101207922525390153593287824798451299716556171319749138631441239873829317729054298560219770756176143958279555215778665100244149938600452649469812008351667546326090849121512528688763456998913678630672801557778475850253397739800115967348792090936962832393155581263834616987966068529401978050511164402346208012934985460942113586875736279811120449884200931199470037654622445862753798450326768447187972384755867934989049135188673164326489746680462948269475112810417649908358653965091497707303914568820940177100172699279341920112268091743100161517328390618048490165857133670346745292099947565169829347783249885835876180642656519015650805685256055677386671359213043430665760074186693011529565546922124390950771622295416546990642627647710069779479040313662289161293689379394901201484203372439493790912986643897950833907911301959649245693463295931460277600258214472742870607219741823023675408526302023388244658628043645512946362610868303173045229121738883719867923896097078340302597260590448279841785265215156655260271097128538057110220075033513653333082028727051661007670651049827737515771989760079213149709091009379601999830272339756804330118807095565997529382078964304384297716958872245586132320085381806736191336930706564627567567335437998761898030386388297047494165919947977915585497248339371439592739420401671702086444543906468028031199159356792131908699280276173724032031448421386554850264632333607327539171964579387212848298181407396447117747502844848230629091110301991347585941610008623341618088973264422255450069992787674364898022647626387408040657963334630449559765719084368103505907364406577428559634075350333237988490558837961543367617609329269575801792382759396288948407460420064116753219531147785851926010304883656833352785370778062785258357334983465308428126776760980702396018971449479446016296130321953438281873146767540265655396471390781693209168662451932848198318081531306208192629615464369577313033152676286023691342494500768561903521796541145721086350334907340149041848858446649330981972421371487139506571053832583405524365887148235772772081515968538681297370281404689221329809598594344293815800848831759869515242496481875043968473812790760569472643315254083096929013569085222380724087110923675715396268403567781478033629289148099423548117494426771953618324053213958040078997854224775440136632965038406207390088233818031745341356235858792618612936328918169787605787329965716942226712478276750627052938569553526382721681207266999517293544490681236056919478832416751504196087431388973664461256660649511700450765518104445369083654696914239076631181256618539339723278796784960750481029039354824191304228942295591808504322031356583082896726751153519087180949457330762323691601783199756907557746632856349346108574510613130992407686211316957093831358299742412114822072957057280627431911198683956226089221457042410034722134614824891118396803173561175983153091574173437440634796667699203715122541129085384315590165063663461841902925793937987166121317715620302537471184964440143624750160823537403344364538811725772636971740564663757751685166012826417180236171825833962625316371027900904957013784090353202867031083232467275770671407461144139879498219380236846611571969327191530137505110832584739026734504575914881780445484533956698904394710924581513138069975266621122218958984774593694571848310844794905370623977253376225144792356374454009819810736840669716233088177447965083089382034720744818097292290329709246713658766087104561061761408730809752962045168214590151809915092908047647614368166563961758154391692139051564705758454832658551088869654596434606605994060947293460160847958129174047207342964890509651092919549408530813801594148308960311129086770116235166144783040469355263437043170763434166878622115029176889619683062599711144973771529739678222688737091722170301874716455798287115258107242960277101869853976384943306927652619879810592949423007358147163188125868757932751512068328740003252089255362280446557737954643636061737933770300172958843670582858053850822629076458331239463846146208541010174437112909542907121639822079009983318639469505680176028999624370931283891583800566176775367600762147728799583979013821593073857623735580744505793385092375942721793301359374613344790534781712025832294567447010096681659800066227281432982503204661043785456858853007471747750529415383158044693922753389235696951111022618254635694693899866859164099003365643781958449559614659526670297344065349939447572767552028329654562782037118424095452411150031164912097939272328950924654442863966187258742644674895644998433735910981622442943530907659251381215090709259287894164630031139923578183937877872114936989808552446230403643897318124567125804306710752648973889875899286559406141156514126740700683952566055754649547385003574937881995573372817438957873773038523554744768033432855285614380551346357158787615215677123175437596290889024047155154361628039699287553223997452115261916752693379884858998498197022062620764489051264547155480860179462313520442763868564135307007308747461343897377261412881652873862341689171895218122875665817715593718218644671852337853555239784945141631404035149749753666919505077190681193219946351997929519744763934883779379721782652143322390005490078133273907011984312726312857057652504214547683443817111127509111175735447895882500142304974338367959703205673607542563089418494537617695908170081117784829952924919225934004894173946169285409533994208526238620533138442914937287255060472706333620748850112256522907030453994436717190944901249935632308831339991840494086045491014047108803954058074257529571783813089392648944502805764567127906332142964470518900906845210126260884365543606358972669585240982700945423492017728910587310371702265669948107415070522600690828217243654640667437515086620874374668224777825246963007122552893343903838314785621767227024700255313000383114237405920767775958875401206398593123072136028789123388650491087284016623618412258203525866864537935571112402020058692714444425195967138544597526959555817252857703863241356428793568715281341532410927927717176588119842826315378202787111599948081877288176048612846498542558507321919113158838429658639644646603079386124122445041076946860920194665635280414586416354450646612103578365715257193228963309623444200943005012717389940404003325900125448098449441093949813974841692812706683060099354156258904783930513691782626240916475824258731764634537504418873885265345451899881442990537918047502628793854791997265517071081860955313946494116746726891863084753334620829229958389739184004115431767626811912867047145362964026475064691372389788284451886275055594497484297441154601087697496689202378669671218674008395197666548808115263409032302366708362455150972445098194537817566648390737420350390027903700709922165924560534050184056637125533307996687960735887741214679140356392006426950420286036310946856302908525997267132056000096779643978841054355834139816454526611364223708906473480065063592591449557543495616366162552266197736117479010833404943888053206332623157732033735044646614102260276422547932512599582317356378685131032881938833496122722457081988611363978719793911951239092170641185564582006163555955112088678703811423333967445802441196347593161345421721670908995764460713578619246529056381816424896054370169174238640722783434410339014391114903195792288452595769540395985673909230355646585963959319948417116322841820343015982981718405144262959182792135946282657247731084632015393723619691027384227234770331260531040930276593211770621479826134786421722096886467391318667462568541543735352025728617245482761035230004773308985710352341322950278681580558705043800882349132131892564781722256754001540703285129237293478551731933188354613231552353240800054551801415603987316974738924210939684956423766466325180764516624694065692021901944467038518310426147585135651809374528599286665230150626857561844700674474285015994161530963839044478219092684409514698564355456957636187277819594824725986839786925926788298974987526960290047396083741326803664820453737742002815440781966790692721309008107544073137802678893867309797704797431812057944605322020371958242725265345946104405701321384319994505506389109400744983032017795203168411609389392076623085574454935095400125274745527395286078148982477747677904011252823643795739851724558938772572961407711042010347307617307630462465756648816872416979589969087175391482550048263062651381660845133273924490141505409888863639128693676559818368491733152851111528890467063996233313941695286178960541095182785243658809244188886060621789304886762754459582660425791892131285025175880816120149783051080926821227757574080761407902146592568476419451840018650371237614665107952372026909420650368306548677066752626425756959146333617396133302307350758085769469254029956473171939907265687172629092924169432117137878482442491253521608313350923603620775191383058103678969918988035772899039402432086749691181637997172858185548113508440417293494068973561461406664025199128521429390090287593095860852173201826252109809122509582939591240083577048135952381457916614286747226550401054563556273383219699886702572567083697457524875018086769210745607460786731308310307019936619175538020239678013880178385661635627515883300950544281792873313993246986923832140820947373546508166207912930626228643460210451363819675362483247164391647832366073000458272053070357418517912476359617596153474089708825981125570292333261667917772489943077068999502658743053770870659625048308315312857923082317554252544271868330970791172161831509091303493905094122981733917925114711101810244463240044011857392350291594244347760384202470958966265465377071509460251440573839883598982413553470484131264908442128348907136384248807656271236672873103848679318625978517862754019013769538820993336123547672484992958559612611791095147924955311164094280606690529697444901796618777697667832560061277693882200338815924264387110922025440064387402104902757845986938927506400620599799853861316129811929113802683083398191913919390027984342487530878432819055516880540065643937295411797533800935323038696359855053702077806728407306280989552308881012598191245349511977221648189249090668850425918998572850316382386578801663408477512811122299654602823899643682974500958496525729838098384376470589541197425747441523772612329714716266927720799011529664995286951546979792708270035314217394806275596621010481966064571182635761774977577094618870400167759452358323831209470820975247758498981833055812457929130926619389829792563927617708165102659087332639674498923944462110487283661163088462452343584897886029004821648322794519375643926604584290387545045154294346962157390740165621747683580868681679624793242299687533468203424506146683479265836472875757782280589747608175130555484442543885344050345463644126546368405581113632403691173442700217714358952837697315116050623994063059932207115007775627831466478583028803888776546964312589353839838224142129734151172863485880343127835854773921979172174504210944005409427019093028379006060211295865030307850755056225542730839932697971579786200309426576758569822146861500833658671467643192924214977908131791170031511378956761173490087150982661491848369394959479244618593352667453192602786247420767989048242067813720852911805874115211213892785103064554371963457374186645733700839348267266766766967508700586232669892420895271434654239024755506779375084357410869309124345031732036767063468313709608264860420421589069246555836121529162200940908328228894277602463680164183756380726596740514411795754026364073991894587924360545420093209734613220465620763715629335383024767718591659812001576391638167381911992852383069657419140142236920111159481716571331506619771180841782832757388552285784746224522115765822958817779773296207300269460159241574729623588407955066015915464375794277214711418689244271727133427132959179384545793394401206871339228975165771957469762605315979051901972892625793739334859725679036274071158975020709931832780935728221319953023863103643501039140540585533262485285074064261018088653039487370706910513896110531891711119893825039201488296864508247536408875200217254712872829266506216332698979754264726047396703689987816862467835540924799137751267218912098959365834363702960607239322450183870370754086528522415986607858695569256048398399834486497530222242409777657339949817659222475493904361549795610441660695698894991966982508557241998602871871886465098220953705831645746222326555259720783615749378067308625320781793773561110892044940687292990904600643673318690898059684849982939985407424058374221883262371817227820976950303664083889953396259744774487054796543036803327087630969850482529550036307413160416889723152387666669463141634113336111887687905083300930102105050827106888329183477358654929744736329871525715707063221402551549481298104894622512204128443307807381423201486982519862320160312342259803621340618636728114751756405741591794169007782629264175865895682288535121763068218617746649101601367555468486064687032264333372543646675662758116014627090809063593593386579356427801439571053684498307722529166904000998746581491056891547683261228836118564411846621668602576263533211221202966976743438494491070619918660767612889918623468999801056814394045223469899658011056721893527898752703620567407906540280412125734451369356649698099536530486891745470567259130693004445799754259472113806186303656185876504843637115406752617800990175081205914805134460371703251394984402006578522663939622499950364214810304750075444365225052138195295652811034090899310517815522094856795433657082897223705409737225888854367669764427584686629438286932871979518177605628278019267694319876198490595270857253660695462607548529237959209116089158838203428590999802799317859355672441586205728678016704739718088187868811937728252873875057234895471560642597082488679328313066624944132426013013361828833638322289329963416696176727111764196619148455767668677129482056081015253019796328806790758724146409932002676901188973983095504158625599417292404265898007157976545846709302097300988221818511233289238146351886238248082448382559044776350750877983290688947182662251699917404403502166686046310310753191283788947483682571275861505258725629096078135334062517678791349204885716282512241252263091455480189235819512930966906292992379306658772493076805673878608705759561208663969320158934489188803144624240337408794423251443234121676625085030089909062484910222874663640685660112654825041227038587815325254974424482257154749369036822274414170683195503521600663934296926925915010313783176959148827836072454402024159965754715637942730466715737465020678104571358500939578657101429486294568622404721462421425949156269862541151653603989356183260564098454449328981620547666088612775009995824436354466169679963811424329522247211961164437772902985565320142381071968980689653732306063169041709611423798794794514208988217536964222102573403131021604460547703929458357032158475941941416568457927979831704266983563576803046690327936559220532353290474905499312748799431954516280959371245017966694918913612661490600418922698738603924847326161116132677586789741485050351861595386236319030274062808345540541330398187249321595638938149461269160479239035628572122387299799221259961855632838212417776739680835381695117539732129262613382829673395191558164954883966145003964019833712523773540835128647931373711410930719905250181149781240837674411489706565203671714032451965313341063220293497561937409881877356890384457759859229567541417642009444090411107895892937406352381091081953334130893766857774561970337771162806508625446751973143098868790181942386301206323385558432277942988159059067734020882743170190703879071301316369945343151950147548289064256660808868835312423061488399755295124145555879350331702833882191775375182828116976187956626394285867681876987687465369684428462413866349676983922320852126046651883839723595365365095947302291887568231695873738128709433302155153424878696409231090358388546515121224267168315877957579372234498001791712080587783059326663292531649490876984599481303767273685363822674293261559989221875917789155816348468209789764182509589335673171501371469834557087952139093393133015389003589885953447605832754755067239280129194905799951819125606079994695928873402081062503220700062036256004928787996310779193349980948588245530407869031178089484000226812195229471974235671117849734460378136644250225289908917726340377979356038668026046424205250120261622508485929610327582903975433607715581605510309410544785561022004713373501267711830578643309760819937473076914927864357492920161621857991733291108179322027603321660906819411627945278699354065973831460973769365917937077021511486027489996604037681842322160968121279614754720070240475995744158463842598423359630707625041383653255345941616061069405839816219089218167949196867652743288424307497514658522639080216083786040179728775250026075475037733991940296365377944726290826848737921654760541431109659285298436560690724483651744983344769366354814854753374215722865315024218541072611027915506616309497051928845778412836841783293408704858604364680108370219009771993093053080031523230740231674470668651296933597897898628909900436284671203336754407398348537249591591367893616166004021950376845654901732397547451745785509963582905460838035381736185789503330893481643587187228557750017520497625802681537931391816962750607426809704435615172378515568288095491164865625351641767585642486250332683172203942090114284588472664383844829232655063032578892374493050227880769552065812923543067796959454199673221733211887496145802814202135615393712327867449380349271190553467734112716796146839554576546940977566890839078013459295739445989840675740100565185587296823688613786147056488473807075045961301600139214857818559055241745509083668472016828075175184743224365389879360484118828460174380858173074080814107965834945261122468001679175906334151413227747918607128250982904224384703667072529048316439385998406884979808937505552510713268592287439097816173162033648148369470815430492226663682947868321794983215259171775068700421481451055669826959756650260040608765050212180554228627982286493517460259326228746487366964646993716526508692779587721161508431518272542130534732940579108903097545188373887121484292643960550108109559382135462789536855510769045425430331103924780512312646573088328887094861539672232898230483114148014801825522906294469746664879007697343118191434978766593951560836600554684780607384267156420887958301664612799197619622633970714826123341637312601833481910038700123197877052847841389882253234286771348280163524115395754775239496031989211586194339311468827444195333111095515825592522815550982157898228763394175464813050290610688896016158287162970274826428444784498428490881529567338964226279240655431794487973949275251427825497791465483081179257231178507442282440534353875434958090830755970979331431214037844388532468406597692978923821013634935803256428453124632896681731542077262224536244189967056742903671786719886752319300072352540972065217550077180052437080843764684177939866142535364870202608990621137708806437912213045630083842317002442199517844358222829741450664757836381356139268549040268804629496055746479841953133286560617383456422538194203630156663012209570324940663371455318902485705661598523047971058472963541885846218640454894829977500544100019553560047771813814579104545132070649524010842469717912255347910776889587893920246422198634413512967056150443048878167308672535961502987588718567141599952575634417837343412681232377152782843041290125092863201163886269917466589328965276955663699007715785400390662133697979374622523422761451772165756239106633800062113591311060909561956160170146999097151003891815336793458374504014096890166937473420169490195591181260793535259945275569233011465649240696337301879108901848926900888995246972474757590468195988263779412671292437741217647218347272469051442914321285674792120404590423087468742027503853508766299829951619912884684376526213445298749857144604030252830248108234362909021328513446221668720149346169160916469962263437659883521305368912133958174106077941257183569333154367914921679063235560450650120913357815026171941581539398957396803670158905021054420001589618662823242590704233402656236300064785144973586880905085433301294287043483384065468998839502745743425853982306807257465821229717702475848020238566923464093124303955620029668782751644856623148334343764637316993424023358682188210577484373818224572467538095076770424991491225229587533961956558699578700143429206086030091049130358754522091777640331222266798563721362770914263342815503327989318724570588926030888658359184197056684055924846733530693242950328113354338355074387723783750886948930988741659026967409060610294909374893579327171170723502725139662045033534045506518683121449565940190044095199015730161648366296689449930188188925159226822142540078066495920986567643966730027136799686301116981908104046678662833681565007703157931929909380171984998405031664983357460787989357944289981823558249330404528999329388106035659522668788764134622187248015101097778481292807564553487880191120939618390237166152082934258560249185354527435834695010932147989480452422921205379498226387535384117582743472519362250425427374656387123675895907841980108730453138166258297189769324469878762563923120128320646676075440898339360603998923990387484939888103123699231509622394541257659435604646646134311737840538576324462818953879013174141118917820129920986569902508879835989272657926361997649271889097796230615516378302188966925285257529736659677539342781272031240166594249314576557225000231685601628362391528682504169690766657905168683985622569981332802739887489169051298910809418950721098104295076437381626570887180496630203885612010212346806624888399284751994038343657303770468754989458112840229493881756645431471341933176080742671613059096308630812737255423753154971243421786242589004462918903121555781191321092039604536131786953690716284385196358902640985865934376773420675978327216302301201151011970650427432471730133647036089566648960338324278425298095811703097762545083254316480068008538215367617238392364559631391925101658499570507043303845469444272803009083237189105009725973591450949441667319318010893043127439819569604675481822745195676833362083700742355152918229572282871875174190811820248125195833036756270812022572414199762498757300704033915288222068120455872274613898888113074430141112952783129966371613191666472808082298187414582704588741370138445019504999988638595840595190230040569025283376235346638539233398846587456614330414156602577367295604355810254388701553910820430331355016349138979185579520963889876909628761994001902904677635392554229242343151368761295163862735157071585787798742036681454903734452050428813137073598226514701078002889028516994227684377418063427196497182679442261267010213279039254875350752992170173671263516921373824829207359367798891499271384680346493166381194841605550919458582404697632133758953142128100886912296254753078233734813608111153132833062415241181012695744625934131854562721054648996270766959010839532484117612327024707764524866789818109451508693247570671859573231460632753973308182302721791545441431696912835185661059605796145700217189226472481491107432214747948421768136517010605075294132705825954697239919971493093785561602815362348827909894193276084121116357533975489939109611430250769824795330321575102145115123287497710542870402033308013079191088512542154664716940113640766522935462289660997345548459435723153485387243149467118993200385676223887323472265389041712263313151073748889266006829284770912902427251517327077391744399334519072695369347155489712840088364559170629806954963710209221000884599561175368206677990414704967299898247680521057680602536945623239507608469323018996999820878208179786801444414445927356388540748318020889889462761324218318410118306104113143666043073962884521466467253672836447842676807160030705269737012244306711836511202672133676847557643915184429296183159508670860627985466912589663871589486736035538116337445812018984283763647938950121798057319542197769954427092241096811444406534158936943254134585896588846602017425871077458460785476697139826939486447591037097803082453180870618706113481234620978230301722015175750203253459028715978662101618891985344290839498695676685146471916487976435916810592583536190630396330114927401116394926971497445051691901722943817408525284010088941312362531470138467031832123437692746429511613394974662992151910156782825290247553044436334393209356081839718235827500880318123694230791891811628859170572048327198681576172833755006698711716476708842528787457408133759967896633353249453611548726168083345600565343435669998359153316512274658136056451719162916122863212339174388603164287804062608967126919763142707368684054647548293263220546437840333098638859532005466428203400673785310194360921508534426225417735491402615928174810442737952167050707493531919947432863605389561656611976222189690437807391528677637217097360411773938576767198003516954416058720791869578749119006292816016182330248365877329876678348981700405125158500506231832313719860830969753808320888274466127050222244266643546905035026620320298249211803765963376158787363371725126957745263398609658698021478041752183956800740773684721007408806395506784246096092883127585403098851770855752339885637862877287802181864292799928898596866152503820376920807148185707434267124032628269564038458365047158627816280098703474567049499809767742533282718796248324802193665022750582537387405324864550502330583289853095173771570817438734600509156175315971982948194821304267766619252254417913455024806915219527818597794139739687084667179440018790615044838992842159081913214496931105992900044451384471520900492226630378968232201204862075259592919592630392491328150348517843899032006059023297295430888324222406884882257021553753076964105267379149232863276190893753854135481961144256932826478303913964919412890686480805930610493479074870460073613585968549886497045392795145719356785332350397518269885588965763176013114448954020381439966392227895235226068964192935662643230120552942474263294788427320083737503294310154530219959752861406269880277667924319768683253598350096490383741462166857210429591828566450138600728608572761937084067567275770345389377122941061882467032681762463485305859810269485651175517799875371279416290207015583286577246758622846897457583151878114590455519490656153493473028683732020286785697200480721931164010091366708522274882798611628195547604499284367451579218176152435210365989911800336851689677159319680601866892352616508725725842594653226631081000376723481394613673967047897575492492211229444063377575974576925298973376313101495027714545169478550995937558456175166653425022170691523590043076187053532044756940382600323112318538032412007468916580835984381153687283451179225446067122755226367173919586777400626513357679342515020201041372728178053170546437671283503109435043093344817162197364003090962829617455688240898603555165165504598825349269920681601444159969034207848749028046216547567229222575204403855362112670082071495855426144584032401787613220946097231319434504001303814654772622576010461641080057717702107986180232841754793671083222200922758786193348459877528021790926870511928153465917941304598788103993251749462982174516850376042992712433097570908346087390322815029957267907815017987409289953941657990082376778098938838192265357310036263178583927344036830825081942500985926851633982196382594193125435343951727056134710834807901684579775884950311713740819109583702215769887746277744215993788760500170431740439151228316102634782115503523054388243532893292201254736870968528009004080440776217547724575629782985443017728944135057100281595040076752232800483717278546979094519111651420489648032446674230597451082373083222262089263167369159999451783949987197138606082149209157514009150310606018791420457527467859962910389844716769906628928473725044193690574757622680062342630884381714755098553003249955058719737059728892186096505783549870685363497555487891875996454366545255999142266598468296957403160158770930784158050056240814836457675086924882281540106028207952634556441346801651825595929276745301033082700558046849483465744143834641462996446496468642684071169132167792229072821057328644913071083143699877787829484179145699867291030559431187826744254404285711208402913897978654899269128159741701538024720257069131420707276927642340889618749248391538248726423501940553620410765325178073549876683306751932777372502608195657967735268493942173729379045576113981152327439756078740500237470587538764380017243568718509948668579162555867488767195261289987913042459648118410585670275245319899889247865458568870566191289964077072075924099991788584225900614664057098188494455172763135974784568165593769154002035398589018201428514483999905744385078548652884612224603522422827674188324314192845449309245625987444058878435650009502299220685163857771613004415632996057196118491068211452767549777196462915190461591075326885560957384790626104975899803766496860743202434410838853805786965024502720681891740960288764858233587813420607614198859460980025477807427103128093786426880718213651654053462004471207846162699729373625791500803342567808111007579061137412181767079814946552312587880070812332420124974463665271363807781187252281038168186659577916208714447589639356788406897065062476999221549209945523219192375119768192241094016212507844044017758410632717384338199414222769085594914492408980275975405425591626817799110712053386912065049283298833890466644358228795385679646549434924448136220444902006117635043016001069202119729494605235834088920563963837465953287399068506603774879958817416948313500542692179196926781482848458024963552805973890245040776127965127252494154909563315665327892171201359442395194035940510439483634256663451924529649739539342962554028641628827087332059104467822695931127374110156011886391142603252855336944240786611641380062887050389985925292767475550559787180739737172153294761274604154443223888072226278688327595513176861304962365920761451947175138888250784838721928988835634901068821307125338269357431120699890029359772033925166630984800966443450662983113719097060928670813631495549104152880383922456702282144575246562751224346649953494686752257560375924650614267026548117983012384640812190725864800149097817518458253111636633829736685102670714349786572565994963083855824242339733773710540756091645517106233709558092838095292208223646727343414779641482046272689006387848830863603355404593142260399474664059999702352720351280034253639842812321262545797045820763402497179288286903953231818622290626281316411891943003556935927017926646573476263644162012479450133385303264250149894461709939941091136869866848544209978561317190176777954666005563217221463243709189203900491158354518465510695856756684903959221835181547935846902788720721486642088491392452468494501601507124902580872609353622251763160607382177077110835630782052921467301325081407513038596909642927615028010442206853946778620333766080994214924225055034883736444986253135402940611390328136340480348625332132318160904457653342793137888173211719734704268619494295561976623752965113779542578932103775809501211061620801429528472152785691594097523805444355173871242266643259261623978528235732983187358752705664475339179972682256714317794955500326137857489981575390703211634918044442935441814185642451126562825282520363609186060426019317516043292916349299727104319357441765996216143042442562837688110545157766553952893369172173304019687733976197993989726203874723229808165277176994493518012796927607856315255127342027319673957434660772849229326995616636112169486722119785226387960970683123904447778838031470247465122014023040669142814487102058020205965759899742284262963486198278295693373060474211520745954939999901880499305555358185703470530872636049173291116277569538926665842260757543704031762509201612514302266412230435916944876156347649036109663145536522969482254411413183494686612953498486570592300608079244494517641573456482909714735851120388330660994340295632178435740976555373806414052511934978897385624189124900225939903997036243641606285040205156023959979919311709622268159656105274149511432646295096760511685660851970109643884326244317952776147886030970383657815335409906821788692344404731799331084670614472586064832638155589853506952773227486134822749625386133301554117718824266269169194175042007316781785258198805346832407378700598919160853942517108607343287480454796940523581260594251649600939184125857605675341400106968726929378638188182482426578933069496887522894269300922556785368572834327834224254507309800711746311856738285925278790093727853184732041832977947100529042481356395761979475949889337914988745561868991473940755425309554090012370355485902191437614822771119307888951926723256685659818470993197247309765423413988587614339271924957045773834187614857595921712502723305842728845973135648229943066908323324593670850380146469963344723141347562256504992548837255912605918893135555362516868888050432167053591115015838416642722743680171237754034626610859320418241136991548543111183851673262819398996289268044475088813978595469151431617635629197699705281454539841962406707961696851488768606698690100626941398294145442552546190767862377104801667651241292483054324222391958746346274570856639557690218184852477150287584544197403915748997703234632602393502478495722752766941278827658061510694781573278942301850396781942471170567602545422963684832042065070392621344951746560286609196539343890576111260386270396219674736119120410508935479102111803444239837602383576914242323695246006597460598125044759244334867541470371512509567753140741743552152799282200541004715473108878496638932111955750838981287555102806942818137892551893986476101275598263208502209416668622917795084095744577805220848324423908022356340996507096425070611483187801962489264000156635316274216657917423442505307111047636047335949957852562809559946625669803888063769105311510802115586856070548384397534510242021957883293535763336001516604844337349972016622440930008301432462263084000899384924374875760716574059130506282999050876558236580970963353060292302718133560707665019956421354994944971987324626339941278760976892926032984056970601787890947219211791049074333296621838461506898779544157584805440744987547844395857402976459084218774931336681429217520576858426176997773092539082148787123798426163826698097364264835985887993887840307834323844484493705207435281737218743244592287041143731393487258000263805855430754683240406105763574718092320719248011944725665292133698017575196248016465123092918285977322196227944198864757906474197685265105015779684137269667336026950037191576253918518534356790684999006179663947945546416698048959528594668479762911254280833514067696254731777246125543646903691017974539883688314288339225941532355871607602046741805269849653540904506913289370855445644018593394366630278344937389104585793260495025829507545159484872342144354367821343880969998148569088107257736174276552118604517567213514680184957613275896929052358682817058285522283230573761579192990079555688580731572170098016932547430174977140178433623903081522313341477020682343119732976778306984616331489063373399146718078255510799263115534207592540966067233476241000212184672092251374902812983412049291714603465402770802836603651636460050522610593209017749902478350096930809498372490668119390747287615079316417225669495770071998199581626407645247853006152052270794212963573202943521583092455276318940920081170851878764901420638362771378074393140294208573230998004662536841237548455742114784806114907187819598374899351244727151070000654614699539611014493041652603394888495520920208801544395171483757393166646150767683924499884421845360694946463052515482227162014330777426979518195985294635566873297054134309968508533640616268568149953846596198529676008525538648334664853813754136709092652471416860582182536396430699839048323026323205779035685523320765753332822372503806535806559852523834394653217155323314627357199589662144818641722005178837439776604255796838522687655058334324190688134346449797965209134433140991032267603817166748506599076862699295627398536239803511490617717551418529028130358209249046787645894405704288944537957913792902396405095914924770588144894472164904277523378052859591301078474763727906067982343308897569613317892620920979159235731143833929309609788371939834744173594607650742748987197397467473329631190932448310964478111596594682814275793231236106729542529317708023473070559012004211500958974998736868283305720750862034253505353842213253883215008895109303240566146998110754046992492941276687056695547123901994936918489297559200557160377735568296218673978121167880518304002779994886726722842994465412031684728877211191290038925091987632890393447643803374097306148619759429500853793496302305204181169788163100103038162613446642838271535222884757386753926844995888933481562714655589542559481783823380320102202719171419322083820773862422021621374137389568186504934541632125526377769003748905492772613004778990226820545546706650512603448147642267326278406429650794247944367228190490622195648169591377127175633846267010786289317087793094679076983039263099528749676056050266425489937351746492078165275703491714538351226073004633077881857592092428982558109783878412045492394728182856172650003686330937969579611654066312677803271457023760753363486620288888971127700005395494505884015626780051406542694743929795740486650677404437466863926204182343408816481442709077628339261197262394310842628656331014237690806241959027369009809510107529413411653087895700979748672098342403269839319829752459534456169729924904944006682026288549200620414474558417994058647661816808195071560022497286815596204387514650352606573367684227698133410383788601890825510942672017507176792198969652480344599088043505237435541545291982767175958426091740099324458029002333654815313430285832590328267581730167694799120126091906020303220942122979809014720298935649556474379415870014785754373578254306281821869295155350696560803810334044994538846445797561405476206670253312626628681500053795703966253118302971938293436287052604468866381310901948619181217286471889416110088859639473566106477380399929715805777261814043778738972963470754198490551070940864560356024432604023890045982127334429575256521959580402527633022499236000172055376511390001921897253996113258152543044138005748401288634586357095033457183549444463180971699315262871374643034628781398502577898556520752120026624041908209879920316821993822754632343454756016937995859828272161859081051884201700299395610912526295943596578262540781692909860648945021785131271777068786953835149183562648880359142138533542293252599856524079644395715505281233395274410867496457865209856119911611631470615047865854655476419691557797146966850756578229965570178425843084903023688701187694434758241739519384698613826635992468259132916506802870817093538659593707481455135546179817989614454058397348913473815691222271171031449226812109400386148070222324756920194877730819514621706694819310637788466385398347756191722504124953867072766545720079166692779657263034368600034937005945374521544035757347804332939619239444234965639671147668933650030411223845074503490921214295442894128040134457769964649602543676715969193137728472065405340810786256740977183268923137654536657613362510280674858854055539482661779883932923631838621976882597378768515937444915578277908838035981321363035953757416590059822193258742818604522177246389518964183609686696903625507668282911930095714999543361661363846241624134765799625197458145316292055615756597546184959198792823144231315529347141104590213288743672169358239054398603921242165313440035873807550662479894149324492616049894157722668654867984042685965505430090697290904895270770830595047619413264946557927888080409117715757729366610097660002947286075972448944002649259258867021457740667297530756316811254772641343867638843211577281278238865936181319543537628771975924667140118883329490642745427556805340852423935458244066275366273863281170035570079610980787791089405872225285419705098196793260850881507404956290843323818369121199705304398046351412228861433713785279073178551755273542461792669749101984096455427225582216860338504845897453847899349335559110672433517209838600597880650531537865524412656722666488729247679422959784922867784940775838201472404681099475314582546587107094640910687288634075594765514992141953774013657998444691227830992023678504746494235129593177030059421478542802073447564028158717963892886395813357187041566000264167615130741535115503004370101184970936741490815450390177692764053538743268808184573921210018729534060287156585802350019439658508967746660696726838409298807622081677085496502265990112790169353250792887949795065171309832327215773907824490896091140565725002265331170895429891606766305466660047447500101749246473009441299217655152463653300922996470619101921507820055729894958592602675451860021241486707184899101185569856707782472851469234454226458657703497774552342493133300425291768064665192323996568996797285220301158811586439092361712301850560729514542954826450892713751051558513365152541021193647451127206169144417867088180171769671313486797257215942398743957102708132233514868777717487984532462655306165259757189282154414232828723666888492795088651668842817579293947138011694463869741796593108986639341145996074472608657652642560644747158787956720398243019161166478219645631658944501412888143218427787938989658825687302026878008657582745492575327460336471498092772022687531742911952544309310188297831114855300638769310389700417857889439263678820789599857822988542490630091833535644653082382556350433455179445545744465617454273141051246606157800206118957212761325358365004486474986115879789155785495714906087017538524188205957512808816101064691912052443303291760459118361101513642970588677077151193943964436812846075708447854727206432085694053200370826532721572463754244365293848428018498258408127628813203959001298417441154590172995647016994100748844594613797520131700579817298568245662952455673580995257513102968095648246737427316074377079540920353448354894309169521577555607536254127146396457829020538377189061831986668840206009053473378609163624002099555665456974260097266304207312420037949568757240252834963240883984546164393383724636981553261089025527087522775053297279282366324728559563110080009583030763689240273278377806113213759602633613522525343562252737316503531294235148398050667586897391824525795259377204863094217825176310583990772254611202744631143187151071570584464083017297260681118244517594425341983468143321358608585803219906999210447243606299162023360084447099884186187494734123733551946964529568361026899238865916844210734540738514296424964941631233903007647951262068334065910345585250437218143352967280495620586029199408243090505436102769082491030621018923190890984993883867430618296076063109273146377755552128699715615771192686998860050879117947042724968582230641250001321645886671091604021227777785419397557184250990082351489317091770364968084446212047335244024924869069231493768087803016913995129866095744028107724739011378490032963720467402904736273865582257958365488444159328300720708811646619091204615332446189972928211889819392678165432181125927404953565474088115348107182783185227434996844054680518782538893201084634023914135778573055486685023324396450415442699266101982705702743515759011100929432449790237505207652313764008949688564244142768095347767333125293084659285938525338758718313701624896392826937362006406509467577567429358340461692953642863619075700132258464073878250108308912086995700393672013989176455760141357884126467992852980042632524657129523865635167107738919855655220919499209368976830834716762085971766661484480104504084290411217537976150070956511440209052813483186678370237497347541628453776030817852769202610743819707933537211242064159525771293689614481570491593534865254908668310383680266046145112969736750319474555139537890021553175359969796012087026637019461963954141021174055212297859139247903279430338666414602978503368954005063450268570561816911980094227310652978535713717809141694013757404235520825837867529731745851933143783807148598536431031024463058156049628164026369215195538643899226414227368162452071269242624757126658532567471198347800880896925148314952893505675996493567889137723663480425187977603143714284966218962210696128201462821676825056981844861912164116556008539958572807654680975897702934125662825928204427347905808753787489383898221731624662619593713778054357197545692713888130420034029769470990187054692002045188432699362655556909204171844899361355697604756544991356066534018091107629331271838464539029493093666294756859704532495413682946727716625143831164606975644396179708549942055760919774342092856225265082214943583883730928906075343194019165088512784471067122009830661124869321636661871899529050562091619677188159895074372538592104979354796999440189536485712853958252347469505462942704210503787565720151773464239947723554118705580601345365887978562973722262080610153177945097361621787295811672944033089221903889427339855501738857774872881551836460643604322630315269985422906781034151481834826073458709725601165332172813786939062895991048130321329824313734410546630301930567251928399733931090705948143175512994853388051479397770278164117506486213497941695698489165355078399186626782800864128058880563456571605881141532233641194614241455064260895208207724378309604092534399711562153913896449726555431018498284119701144199754284316196520842940193006127447816501163993140996348604416180042281981792000007801347750553225812387304009680871521387525627992604621294092306505141557623691366505777094905691388650751595269249696182476248117691683225742735902637816276789464847116560145898783111232790066389365868232359204866580163070668514619537049339491739033138390264627234154827064760473407379894187961294847603192129199044437768528142123768923217223427706960109633014024470861520122859983507858120339111302480949141485575277387838776875848737941996056389815528970289879407928421404474939610890748304678789337330428922303485787890250006428625021264754266866050641799948178963452721672576393390798999635257950208642824352721635325558675294560450532434876291844825301004290258400280043012509950485696137322931739265722439672257594535447493227290691132450234431072309675046412039568209913231942035257137702352676082164118822590466236847876551687076679447212154183681078473147970413489688416095547876754439141551333718698448473282722493946610696133281807951790214051811282882271228468222264410209715444490464644040849303001962235722750651907463355894509893222652608130956084334269937668071138245720707009259192835066188194220785793945683449162702971047599656307115041856532399741157349792975743946819312386491925740150772713327261900651969456013994997190720155089275896391940720973439378531103384715841594721055147348811825454976068958872068674705209767239719801197884254996862017830861517757271504234996143051413718089273260550609604523781766234058508126624592246256589558098649720671960870357636646289423385241552661786231448913847469689567050432564303098757839794875764445705493294643605827141739405249189263837689866717051383073945207661811147007408300393978247928497822300296422095562792451666014275515841815635863886618902371964315850502472388950067981690001252888102561397094680993572843958127571772359175142986460178645770870904438430452114900839576526603130204262448136278031296863045760165335904231082792585500130083535377438586298093794178550497997308952556028089337670633144587298673430867090402589369299065549641742930663777444782374415082656182219518446161986590427945694900581812219355245886944393629914817184642509177854205230868113904149245456629768476915028187969804952430853944126813335422748409873670362887806950246548670525452320622292309220638792155932779068591603013595251456984810276883844122674801569162689351862398650462685513296328778180918195962573085209766423196750304703202457195199669751413467725217004398299937571123570345860655907668346941934511587202228913130318785060482098701355898578936480232462732497979632944940327616909613781989137373738033428288812933955825184755981702540175169355207720301492663240046161624939460891020424340587200200068713082154172020619049332956819037799129870971124512339466450047654255154871590331110917084403787486820488999868277056226935981906253261507264113975440481761900443012707303650868765041506971227203920760735993230901613215478640741842879976491637609686434116175776676885516818061803105744599781424917556694820626320904937252450775024463907726727024812705333602678150208123631190610683831639203651079285901843636451209823203528395839241032064137541613975989345194244901570810549786524523070976265765467871622574447346050653069922598684388102946024636506449088252256804605749178808306095702196455181315525271764782170833601133993192224077283342637201583228761363397513235287775184373689563588775298727688194088637375385249094942509648944954021981487606394585745807928262011046944875663886088159364231190199636716953560665132342276773976912313734078585503133123301507833711708122609521332338034683007215973707490901143216952776693373805153396058520762275260298030333958354426347162451191985152949558292444874954388993518781599010050383478600431223540110439404411772720278386981145134278073025669051481314938856075063953876205530727163713500139258990834174717562040452923445477537127361088614423406121047105133284311326259004229702504644659039011189860505357575111263872987090950066822768916823563150637618705583928964651133647405091009492642860727690693760209916355327099532892504130637666466052883242959536832358882340149214538942162496151491766935737068676393552680960741779369996765253608806458094312646748018210099772260160484308233829493650173809247195712152668684647808798375424835128295097722704578247367205718711815616894618285103652490133481653950743718207583415638703300356632871943819180252993951786867215597841501649586978772936681150192943940752192999825323664590011849971463997900046152352423497947778562777992514053103764887450995554144604132902872320089358212386278987226915013384159965255751184820811550165225884046947806309984362033692527207601144836427142599847799668435324571469250766663723262612114846307920033084469299765602521393482532840602019102167022560158205025090163828968940235869186023772483639002711501055199718446744036868697629358436455726152982837285157110887019965561135867124315636647764030561375673216009133921276696218957095346472727774874846810275920860135320664497431577977137789883380900871969367569542816557009296415280798373368741020627255190556175787496920700255500123941924530283350336874852908701372512585858480336441866310383423551712641375525485029417882272976859562867123301236764711094383065128057999481559682790501970188634231285017970299283140260001133674561104089652838904099616765715836334809871412873526027639251925991794342046387813271543643471271823115236017589162828722395546545606918748468730154341557062000517616845566277418213417715751493498134013372848266989532593411186992864722014115862281542605353756304579748393837789976610536108406366071030740439855498476694823235391887301668231200730043592666500838938156835290490935634468529726339347581062926121030503964967331705186277156274453683338177629837162892656307230516791076603779009500605319911393441979537034431798082778152346871797129780343961537776499041449435605419825466186278483658154051897024217551563458688499665501989380223109683743878568859299067371246015119468160268049283672872239444730217620303856389799506812375482612103125085636733981032760071480511937128865588856165464810209789466961356094975162136512937911429218251707894984434198237454814900774049275903041554339680012733465512803895008780016256505680914052207153212788772437869720092565332661578341150374647794145403018486220763636328244861626812635397232137769550519799697041931765764618386788954280301665715890898497955031092418322615166821303147898086076697048967373278595409964075960872676620755044758722682833169181628192076304881895523148591169382866932137542488602938282254834286882306918041063460949862910450562713727166822518148041986097247711888069275559702404701627958183518498204999961993946075014318876683588703086963883243447519682049197852923250040858832375195367907223407254745812366346113005460036557749660037823590200404115687834599727977807402557902868369893477703065067514801746451808484282114196481482285119361674250899443874537395286410361133306277268996449504062507631769566432352018862879962336165239186238573651970253579305866524748941984968429313672311621189755109514136264494014114808600620063980113814450735397880259245972560579820512597774389730946920050893552934852945813048546466119465536430271339186010919412525476379337412806445622165987385901285751734036845091027269879068457613878297496790918236933916931077227445295962405546149395838168559497351627506873144242392841654867856599002577522508345318529722955324987448624928737082410254655454164732422154084759018988210258607201824525893213030822620219982882012878613075059273721841745129470715450634917542573658808925517309602087767688191627227146880086134077232465212108853156946065044976892546970261691811034835958944954635073301802909612944627590932105310198099073779632173887621997806269200590571247199431583235385454060818202421959200200001851307818031798167280302145930114891943993615067491323721615000795350173939418699409104758010249866588681256410784540625322640351712920302661994049555628872234396144523500329183531013617019545289475230815113425070942836204087252117967087478701303365373106187574219242326706630582361119046897116447582775610319451493451077336714334191527931423396439325169476382042786808650089389432998721548488078818910849313131954996384508178041103201160136049324934547087757703950613980291887541146676177081841211303386133237383895262533105907792189825224207984916411130470802872598426886620358824667908078071374421520480747872399905851084917286963838333848372457506050704120056095414671818042682809107532040327109419164518851994520575324687709906807198372439398700444735328816984094006609713208787161405178147212149079406154747928844233178865531138705750284722889555955764872724794380391390472685205767217459294278265329674557150883685854029724656452208799011389193903322409971563456154342549152852048082778759390634675972250332591762674208457745203639842758572404647195199892515282447446541407055662635012821510208363539707869878134089876664288119651114047234510186185742630329895418959359425797463533734328012357413638351510325226272603981906149638263866102778518827310090720404479435524728294430014504515823674873814330249021203689854593477819329823551598890466334082782081739766044819537397790040409838848530979349190522384525456990841108392338284061841935687746947556802039659508233266152593580687599359409729486036280158235885287660954274763072206306023112966694350931369815584423119146227831110281504158653978818607024244245310391614560558055516273117150816783530534678022993229897493894890234009447729677131320720473181167368744574842450980871371425245417115777947607125440655801597796965288566616765473978329340505484408614080055175401296830837522865563540948947550234264128412719317686680896183285457043148079211250378256558157799833727265504753907540755099052521740062243530641339984479624850775561383570848170791117997206249682433988477676295137421880857192510861441305608239732128049429848689486950895384911290898911694972180657342354625713846767703063104448024128577623792442654595572112057205407134324753035073218168544213640152443046885673470902603893321046856180681160286401235495815833344292597015226876002290333922190874472889416373890136863043570832103311522605548759296113524114031395625443691487726494816176091884392904319520468349921085845347991493276392378483426785318167718042006693846339832688709534973278939891929887439026441553125689210418821463611764104592306003477480825942081086972095227091802297866822410834053267594772604151733900190260712073066096567874484091120197373294419273445213272241381686230353757473037811343879678816290435383739929590874980940827992964510364154322096335839410851241762727620980403136382478785857618376002125222197696815682304077267281806603786414049378282127496724462359019485195954819120784925428711614507971120185273935933407517322928062027424269193815294697563553606234826416639518790397786322063785103434234961246819202339365480066508118072022899683226967888438221140015358202605713116665866419806714417448959823669559059185535418170682448322505352793601822995535753658023606870623659951895730460513285338456303981193833903640948759350988957877875641532098479756454691616894290862119583740155043220910115411642341997222877149123389077780152225113026290781465484219994643873171227832642827131864677639681376427604852298119640555068525654166863596124203280415929757730321598594230136495216347499967789187368662403572832414151860503867485287802099109116720947789886286091823192671146299879757308351740569178108288453315649971998065565077874150801276164751788618980632069993036925537430865331467365762076367197112549611166453533544789376709123700419438369575472913101178481113394112523095632038005351546815224752296042207677289142475594646328147336760292392302882685077449201445925228646675521103256552003443068936011559383063460735182360586769145075894713677627653084757809490412044013492919000947910848351280945453152758719001828438640087665094280859126959485074467499668018812085966689495483280747221843562180478913125506411686372419928493974603933578866814636540520841631968237040744389778675250151480762575400704197935234510477404756028386802698392858025667350970728658962778626971361730639476332336655407885410316335643023377745514531705008090168585479248388104157964143229908983131512811522208354340313268042237855980602498729466351409856585675146943153462191415554891002317611243535281284970997885499723286665074070206814774308927835092669804869628121149272443020070425284473967967449020828187432875588676694186877221743099917882106848285508644162901540895583810567549904108466116344462715475549934137968871582112974312370895098326137144148314996956277843531000123020978527436077252377427625230324783398338237613421455176459913254041045107220532978957503593230213630616431098175660589224495896490285534365504729871549251324165682449430022150651163856015993978326010266207623589194894906165199246161228521074966443024921412227348230652674257061564198359833329724843606061798566234064918807503622990535198160397270788476122586055629311119032445322802971820323420565595898229637867170105512457373876217786283811960519511333911756384407484614509005363600473251734724243400977036427218873138989315872841566811320432540554961530572708298215244156001942379006323062787261785344051876385372927571220958155004124046156831344368159009013974025670261872866511347868267904487931838002955113781399273988250894350594132272293882515532046827813156817146597592545368596320632425650023025051336759153816939579575354916360685518446049941076252421050422433798598483464880772774586683868402932998766641512540551306380995359331519090848319262973306358946450377989723881101487275739101655530880411977016322476885270062114295744722804073351635019428573853585894414992157223249583877769391379587617841278423082442599077384879318713708198344312389995290447989863261189633673553726225432319732553682913532373798717063460808895099605571110388092994846622902145619281142095511861145225215791608806140613502524936427359895752150162256593171696419414181794680746879228778800079884397488153841862291789239424993971332929895936348385710739659517671274350806360861998641379643140312324765846891144831383176265090195540947401952937401285976178569971831205037305084079306638011236674065180241417228141375917963651751588355845772628399665062005179813481888289310996212743779230561436218936032662331215512034009380011165517432368655455887931930938214694934564073785168186836447017226208117455662753130309100026743172221102868768876781628716110431272302110605501747374105980827972327896864190279472155826563432485792579057901104421930459869166139641924017351140178936026896633290972557282272541581983152400569660310101034825393463213327639036752282094538064307181170537554128716598664046877284314968020526891138174880997537032316259700223821360475239835390490319153664967107118517627227146017435168680360615348105337431016600855479641299715610166173561385649333585177780713882930451856268165950787245904262898766934892915716750741836461304765033994458503438802639029484303318826008049658028445139493212333287896615918989722509754639630568339064165956483003150342913788450796187336297992354114268043998441537281610360134230028838742442918799371999686566836774361603013422059738430525180784490272457758513691241164432960502795007676661298952559374590427437909563584856474237402727971990118856270699141020651159696152710826177573026553264886112598061969974842561168186184218469271825240398638596141685907876987819953574509906620270469829908447843924987591734316218279244942495224113843313158094670979116975248902204317733893276647287086686103253159701826322025959015485540408960145434490895447817024055840698564433336941370766603969631158604611104319907761008773632749533616524806164677850492311789931560274394880968978621699169041819026142118384123526218380351492167692473951428017682804528887337252868640232985587054212267918613927762938632193885907477752134045932132089460403321690883852464368908744624949440932210704617667537924502831592704689333880242778061457880396914143675285479921037361119683494936621557771577696095593021478618089703870838680572980817351716086922678570800612693142480806941669001099618316639106163350116972027639991851446368111958492995491455935423076230984856778143418988989074823371989064887565448025757361415041931545942743029757010589056809015164388119117057597362332692963075349326309043538933290546393866169624888722950794145553105440578680482767440846595879409942489955239598483259063940096548346864800254854684847113262030330370358088234254383363129369701846074897852930554425277755700983133408744334526000248543527631842387226649358172478232997161220377514163513800266355212472356709740804835489027250273189620677532622242859796965347493232425934614744768668846492119295466289598899893222256355085445661570478166606818058180952190137954315462375418031330045381558301171397387256995694045044057056962951431597690186675989083279349062266882516445604654791488472028839321767779001316924798066363948038102692605209707472717212030527475833399184041212015821065500104831908261097757086343579005246830536121835303387672656464073174572099316915005511446164901966548643082583898580191177487328789754665792393781091285336181377075658537306036147691673196494274053795767516327878655222036050257572090820038870274162836482892600933863329991081655764822238716683139631717903748839133334852469412074062702967316182495554589562859920159742942141766090221227607850633619528208487046729296827255270300192683157981825277491739258852746311948267365453611597630325155905409810115352687595262469048949765576464604661684229044057530645302934640185124744753696520456762172122738033146164436159866516743023239815675587894924688896171078217498578799255780850112895643070359421677203321361312547783133371649325138086995416551031937318928273480624140918076780262295086996775744502770334949794714900596176297725611876297211460275528034792212109668315033705266977158576154640463085430356671464017546147237576725505288397206773977053189313595978327662201266841370402433037353260246428473905135565535632643888506500938405600683022730287722644488434392394573145824533417486424466313073324402253525292115659357085758193036941432317498636402145671796139909157538486157725122315529549254196429620889516934711470364166651516680036439244733989734368407109814776714787890239259825139493365813514339015604294266877359160311612879875084658104451152957959784358977868271868090200821325288714519752812740104900544672107233181094775830953789235257966642568555842182850522793058097330167971635854305228472791062215115119629930658611221932819693692989232840752801554015041727775086093384430921758458744791144255887903665837816389529454763112553274345179485296890758620631759361273509334622044527804730477420667527089910957297603735268734103187976154508871281322906576599279654564622023565243599638751699821579613016982436473672152404550322989761869152637702244051673753825572731055536567245406921983551678095804992023071332579148298463649816837402040599532602115905178895290179687336914010123451037267497697492735647022817630905976595674891468793418161154952646019252939193970411853940240367097424640343067349515081507750349636798431267401669286042553303614827146913550413947725392883235473392508752164842164852232069967803227061039108381742229076063389107694345694743499924125359248696100798473289677555427210877864202948210952527044614129201322804437102557251258561209372219310443691444963415974100642795184312214126157208846592677814457913261915999550432381337726304089166979093112800687610470406219762207481981551858068878316141514176064282593879264693691080339937070404511279072631743060263503902927639317555871549441564642797989577900655553940929797278878326851050430335539412992724684593957224395340328039353403794899054355461614110501712661556286022371847616614043738735519743019418051933043451198176185129315685685200378472806898196698826435953986648509479443771594957997067357784230431411895202293057753620018764105620814145914624613505814078856912141173935562091590117681857279805171689582495513811511016654163430870173135239842363090099638956654391146434967881875545721910645148051115656666393002518605968505788013054133537543843177860248974966308104010481928915545776806607058322914817776042806368640912927174505686102391785155598494806276948183379504407382698911082487721449111911709001119054203469569642126527973661334736860019857638455309877785242217497922441967292737441484728497251984308026220303614269801938509115830623454495726736299042594036373532006850672412695545331799664407015169845821545029012972630134161092936362563213159676156631073251622575979454931301114493562120207554059006089277381878693374104831390182829412870414504039653538500122987353880525993935610905944927336316076159327797308296272220432903282888749645576472075478490004619238111823004466727890570613620996900203864170881271810264666829865510599607433791600411789957892344241550594397226360478982817826567014203714234999733230054284264200163431489556868398025207067281509589600771950033237249783209635905645046620622261402757611731302051678677169113828770505965230956522703655848675240867843659034723843416863675833976400916816243872578105149466391051950275171885823333299406166944228870457705728922898539674819358076015765545774345104273492698176811319638732821989957559687012735461337212631363354118971424640122106649935380665086521311852884022670411358091690048179496571786193012849581240518443442147765445981185393799632784121385567133924314499481674868145455900054406943168468793140174621161862574087920048204415128250142980676151194826656006466505205783838558175839496100915486557384622598621236979182226187262896700062875828237512589874029342587093804200453488578338210195884556807560065703336064309724742855763840948672972587417814413111837976559978360432969508911520309841961013007030566650403493395933176053774062889343358165684459222837579131245856497578465467870171796251313962126531340049112865764500285952380305450539283321700620044009482537026743182509857789326368118162280916463688545888720083767133928795799974966703845635697495880585541750661583277750139052186250339344070548985577765771676163792870685581374364739746819414262199374253449722968450347686616710221734624703223040125265982286520066195264255308092003392862940046096270333460233703147596517493399117935000789964156569758817515972190217966582218760119407439176107504761572312627823596735528040007381503214938471911690010386671786195178276189994033726077017557734024476658087224342087399972910976445505975158231581251726831012621174549010548514449857045821931126168784047494330225070569437302044154110488063482957698005796430871708138115476488136557748954825691662792244993870860857537366489839935291079021335006216378343549421979350040922040566525144208895125053727907291318868366494221440094388691092634044241423867846400378430784154634664311413118567760328017267893751883959504148778886569720230404567969121743233528515999223736003867373625009724280939706735152349381524147710888211861580002563726830959568674141357276311228196816591808043768248222732128469374286042573940531508120716218021614661601627866836444913811841315839243980718282512469106514472210200626847375438336259433882821959931654189633738471387753428741699814133535246421976063189671468880535815966242018505902690985785252079127169738330592543195921142027846002582356750057023063820966812968189398323429069789003393481251456697714127965426722636765674830423578728446079980585374728803801871365753591052300182228922161180122897960544040503061637387776882459422384777801662106577090510368796957905871701678024067014416633898677803353112363899904672069552421277577586632095561745062007627897386527471120542182809863668807612020553191989841471448694195574306943868166971003373939022228692170589088676751883420345965430101391943326143803654425931314769174689677219423611765240364168727298613916685486769777828442366856896543872487808845746023445328149597903242334314413064652515610619112657065311987919011028945818722493973153798874892389456444345604549030651058143153868495355298406999081453745816232612998048493743734694477296976195165648757650141127051112517926641232702885246761294735126670854211743388395546308151377444955468304914242026889715045981832465539905575547776890516025854591892134392581924962353215936716510161469056145957325214952330481423034664363631728304191214398824347281502172297763843247553216468941596940982499317919480622174264212933539641528862294138968362593849518255582637241428402259925330168809885721721081494972785961369227770849824255541830599671726430506682732640273914693053776689651241023303627928293461157569533752082535266749635118076992914811606159020372027166506363380040816808253024436062184505522511804074974271566912140724507878603078167404092808186524303419957145172379578318932368768972569614259111150388377149651679270703734911976568830931899294928014180143776848797269158835493639247314891911466157071021393513245181128944921263334859527191009671754868980675933936359650572057677960701679007064021388277971840877192099791583725765460758374080015781063639827457186517029470811270409077950592277477654350717642670726715442061147996915094387785013881194164777581343160581854867118930896765723750902301506487854494651823186422674716501543281201891276729323860727207851850549711231848622868019705359311936437391302787528835129874660687852578274162874074445293498496074588285168419707614777810488481633861519771908369000574043343382086477204122596821691125789734217264227697102933711189945708786238778775717600343958078192611071953310954776325869666889400063102956314306648312976842315623395905174514399564078941825748019181603701747736663937836009774652583879380447973264055080502426124769479530168442713333051461523410602758846650153403242461785364146520917285961759320471430680177005944951466142251095704521431667222232895605389225193595061875045152964728927934502652129563204987079740536339270408157921853674247138930468338009060850801265798282373423813191009528369060226770772594856710998996733327857031482825861517998771422685394566108200028341352978962903641264771188859253520083423516884340421473324501061997215284247874828484476805891695597121865023719452206143485350786793407726674918484485656953687561402265817324829402181258774991243132814612126270367675967729409388007772561561954926440696337626914389306165024520664938092510654952003757103336170324422291161024272176802483398118313209746370475028211300601158327297612702602021882762266292348271768224122333607346018115034331532503386825707685637685840710635002640145367175073635720178405134947849590015427625440745791033718492764997949491398284309077480168015141128366213308188334107926711831072173089213197791158394360279481436557214597487124844269669959076564262521869516885351366222716179441139608832520309783821625080916532646007262970364387448968184250980619946264705325452990266124868521803224818476839167324390299977715046868656734990427473445578480414981796189246397123766703866498085895328724751246684297216227362465831447503351435132232680515726637243849046492721695786733158565696986547256999745225641681207463915061360936261349121891279021039839682530182018391376459672497461762298117506444772310596309814418978830775547576128721002362765249604484090514492505105407650848333298457421167486459709529380490112776511193480183777066486691188022657725928078508157977397709079077422733029133571547159189730954360673959433395398148133424868508443554995519124410512891567088092666878997167579648808830858502891118464713448397795430397290630142060755165342677039476503889073672731307886667339470326186027938324046064102502852464227941958687861063054767099971842785280216915228730502998911470102190373246329343592833776148193774175493755992530456766187683262095484795656510761294393325384776733444057233451745739858736266448344983773762440655647038891195605763567607478469679902677159262530698526978681697722596164218620894963409683873999816396076505894223104057478233424288287700596622069737712974138484393901232955883550411275482435783735749382642394327489863343092374744266269047662684377874147214582034207494700745056491223845624677748139402262158794241239365363256991623355435237225948557697893661435825249907796558547360133653936347365120881683339297176783466383317391844622455251338218950745249749018404038460261250339868599007948386064231369179003819591979773723351787702032034865866400951561589142530384722289925914630506527328095060002205462402009885553440491841155440811523074102723116668532863482357085127720538853998801949483309548352882297249118463207583535573112560226003335075941243378922174821011704571545714421118974666895777056707445783207381024802109166531545778324364699500099488542089739256048649594596033350411482332037893105317213246515906240598091070539839682083062352176618584968209168394500307442093060140127794666431577320868310539035667529450056383252242632636164731920216470721904365062130190690022519861593885937085210627894126927039276368921744912738034850577382333644980748627221319778063751173025579902032514118440781800979777506550424913864070527244169146639313897758551275378167568228070847331480865162224218175221186539523707193449355867023427710180152346413210284148120817896990639995658047826005823738287033131279124770032009414069057588534771576648017777389591588896607892652409487463102226797748829866051922661368535102561698370728483529196914861652810156007568890235553401190358961440322479480454767223417252022505966019803741576624609048198938328143480828885758171023530465204336093335709832963074012008947617367158956796350756218278556658192530633056423309971046335740882225817971994703783073025780880807601193466702119042836939773470327475803886381922154124694677724525522742027686582064364065533574397920805265836018891655157429447076959776234503144814939079511631279656771603326125507251283120883096002882474135259323007912193210255396098435900850846331417500515028915156767256489143282736458333594235860666579495730649023720664796399347858680761905456389727657313577041797967032674160524915095195535469693258687992021064377196415882343844685959744993652401994667510060060955979450190862264878861353227051980328252931135235242328427252143228589013350754668508741715250811081991095066474157536208552215174117835921630239602425087876713704402721730243735286052042876271644373497682838980901410068043812135660812487266057926162343518050759820439726746461634371391519634977640962582399626643929701077681248645206814031421248295979764906236315404238931135741467940146445274399990282433157572742383575620649515823601761581031447607382593107080396554032019213584345201585925652904765781826263598823951127063926214740624620797258222865387962683567234302193493369545544946523735237867663016586417532774720533829735495148869529121982697552581102564683153416479404449897749858113082415602958582271220243671032924399862358794618002933957797946818666377398382395405023080737578557121170659931566140729607248232810757851014288257847147712557738102438200563167368283052689724295730911398039316266123378213972131016324436307349349947724607017412562459738821307718021569138847300860162905195446275274513669541285037768626438776839902883684668732978615038840796517651822528950588524934067770301280424804822024076888397665656696869861819308546803266289943274406570124191833837635913201817635011665312529052581410773603043814804991962686788112999000980501911794690700218265313118901713728814437428380121851728785679005300989116478172663582604602168669663271891147701876039871772857294621019412342621241625214755015371936619117119034731406706484533151953646511367199585750202737497055553142204748431247070099595824969004641931730912601100243015513246119614312279283263456240053217048049178111687581965099679567686632840823003653601632604036384186242327126507534220760328604326470212598608993392857456815337697445083849356210659507873982020559529311936866287017823142246923454844470710875490680243564379502246497694638125369604811846686644201643903710550009242450985658403192182138341234831007206740851875092055394609262507507109271652416278223738610760197889606150628141380922632867510875222062186188711763756272118066376207106585902589492583098818642110379340470998795868533260629283192693722726209915141878316421215115785269848630880761788361751310452772451865458862645466230045952834854000946447462893699607034062570018216529572764154847694067639417025166297214988392145532090965064648765254187607508314997861151103014024363180677664715426355246196568714338682952805255048364925948836112516151515206143064189261386269685872664497955608814271829292074092001906219480198278872954313342488127341904582061992983067537575310815478046429793959010143019115911190719340904430098992269187317564996775206242395824592881031137506355539063307145616526322107719009414286920637324043467372862093675719512016375703149892344306313999275241608059901506606699715968927573900963915864050064159844988603165691328913884679940642338889098144520399546350699782500387021693382504625047009073448890739826538885604802142265349168140142459069467155199617163563041732199426435899089367852812012009915352549443747269958282947432319572441924713789252812416012957670852673635354816444634379947991884664300603240139959118020869354857051035533527386044988344278713260885226135844276793567362653061883072319776532848496735627573905402953628729511613049275633839193884086298279135230230999908334678972132054297702755600757181408891219917282621059935495236141569119895455673342586250409080679658753858054645937683292122706948533497028992615934236463502969674318451281148103053472433027348378338551514228522583081781173208663533415712955448742737624093533588353928594257742497317990410505348322584008641864682850521316089811502258811527743406126083820266882399204711824164965449109993349995488776957936400400213565862003457549767364630279160705224414275781814956294293826792485362335501527683654073373697391007146174326697560726271590079773459875262205640071405554748306402900665722807814165287065515656309367309392446067088041368893001706940306442853609467198110519304220929714048664533231817154353785543050325678085025737253459640869644386094547603311195865932321091284861491810453527452027754810069116638306272990369793346969193111177613996618664587129473730637872752981301803836111727992453063497997086922809082439864292553635673016059371250029017436059586482735485184679950580640902660160446856339709778794017661576577740138002298931388663678913854508031532039301540841516941620863662275120783890584333394003380403937494690260124785618661725672131435707050296868283713274959199061565913208835344310508594794446476054205703781407693198851726200451040216238829576126250295831438177025006887995376779771546930834382665526584794568702924794957370949732203012470971921493148007253337802292591643555454324507409101789895521986035688567635246851079630448391569491647159618106620680102648795733010725114461666013439812774405315106004841589695805828857910852382489330962780238097785612119382944349699736432856027771661963182754666188869104616201201385106878174215702602683477186984752564456865457207035528486171975735008828129123692001603206405707058825416439679045016872885502735360596286535380574388851413968121532754079060696952459267540809975866454981214530330247631427602994787343360219971118618721505430977333314193855651286400730187401127423407059062598355768402833706790064938658881520225960370055365315138923477891753336491869006129601109764331872515976650411850191678922460455347778445831512088171625984199650706697510198331710828618351771500994988406064225890039413142461304292752603991088767827912518370736687465699537111813386817484322959890395767032098333174390350847111621727913485388211089292409867653513865314200391008520964817741257086410503750538200113916827008445384025095906180336535130686271897442608513404412500732054547494097004979796883971743540509496810079438209035449491745544538114332518529318098264118751238907174838852618587948263105412388600111448348124226570220713365198771828983760905795172000704070985102199479176370847487342356130949463336753670986268690917947696994368647551591419112424965543635261762177888789318421825742452350078030843874429935837203568891260935009719660181015288971920885917924778378823256719536477883700731201310634881787820621692574549172935746515585164716402730037528409378656050508261057649826632713184323046726370314116258899021145842428701416140245378834236396951675851508141425309549382148551466743789028554905787909739141330072297638010587829818664195713322578458111610193885485112073721842471299046019508457453503715708125801951676428083329876971734085691571176150754877802525986338708736027705502083791620062905968000424970576565056191606473471619375856314554248058711704366607783551838836231076400539086044448223767041493612633446667672246919200073032927026488431517317025118103047028288033011676185683509546180831839920554573142328993699014048063153439209088415455775976468994346305891579511902448656793408254331372919199912440751164049586092692735399087188222198670469789129310558675131360455045547204290760185298870137374757927852728370326426084419939667950406733276303461021729503522812109663518004745155278037825091636342633460402565704452446088460419401198010336681920473297169012602067566689278591550858674383096428954082164005000452677110789350903595510332322000564677405030280955511843890217867859601883156204021858674823749525895744436224021350161100715357668261535036926973398989565839887302359884954965941723299232999829773805227651976692447292969979522858608594560580423448435982110435009737960696283715376211155488191005490591758167247768928325671280884889332446104320003699147775525310765773493568373275542592165590276040666992810534585681526693359381779564752397994206509455637816668508743417652946234065880286107847609935560757573952530265749227831329638050316571624291962867906849717271729586729845333717213618822016962992204209652369363930599326354691088411447246106925580998108006554930050719520993387395236931957590090743246742651866192782172578702827858526461645498836002222499853742421218292360614425701812435387922822347229660414307254563348282834842206269807695216626373836637007766111095967553383366396993513149670049858300160261087248581592000516365526722276930781521048656640288340306902642936521904158013371086136731927779825755472282341710531307677955209593990138831451534812834420870168087001920019298025821983370858098270457999759644334913745516234559265204511914486848165359419804493177810704930863370478940328349171390413025846951419012397792015267103607366246735049170475368635529882496666863750229299848551100493395985395405644626458675377744228618566032318737330377518877499797470694051632886231599209056194037916099374360820716171398754661668102042785782225460550589504986602192821225463577333882672811291209740658788949746070965581575514475708917360389988786919308872932905630328795708584582867543847608412650385849607175548170710413757946385420631310136587569269266285406574085854991451586162985103519969553579028562684922712107155784286978952560842165008395212544550849139988460342654996127722633742036415803094750221707312338834660975143974510392409861902313572161255304956194882917990578941026211966748722211134308962837629760069115966751720492276463680771967563575343115565531782206058181521344237264381013840809434114928464683640878482949347637368985372502011097715209130662574449404951816072030651602507052610852967007094182529252015334783932164853949471677735741612891828011422649577803192400218270934404206673477745013965915429405675990479931854572730807717865663178359262227637885840248174092506605973535143383157759702507222024082692370744953906043140879074671522096757546523471806542988051355984140079472249926092056642892023175635670723940093416261223364891655546320782643602932957962737987534906866089192849422987973709512759696447457669461350692010700552335264604788510131067099627980865529295362058909912777211707020509517502231474331265425804741493484030729135712109990159020175881836020141056136009277019560050987838241079437788977500580400619282429769540181919943655435139736223940144044069423420718054351779618235406560760567350713694778935458004109768705884635973881194548292265147635481457418987779733861354445699408548421085655222428549171510533921602524746343172753685638310309564956448355596179126012605407695767109151592319097214218372081658601899305142466075978719765364514039071725568735640430208267887975746057215896758455514247281240386454617360259830865596112881625842798306035346972819195696375026218627642753761776282482502509824750153583735760289152940452902838641415589364401895138749990339282027710531943629336867641783391741340570803651954263339458566718051816258527491013980885709267282284505226155272925238265532650829380580935839296630241760261345718920976375907284986343684103773688645771556902098546402804514527758453462878161088599827465799193003943818279820523660247127781509650256795233917442185269715899639614209663416339231738381794582263534686300634302256620530032672770656351131058614369037204625541754911343056336504816568396859851543679764998637457607700895777117792959940350153598575118163968349826802879707477314634844264873216337598380190709136937078210582194336132366797909102771700985745141947972654640600921918752309364752350468021284397681653687457093917710184864828098656409685921372584094406126062782082741001097910063883622024995213280279393817828538097761364243426613607861528030418224331961808928496619526121356071958917737131674191208479678512120463636959471788227593283574893880773989264990662436933584100043077895793265852884570711625313291938838834327903079951363574676492259196968059756158858551463482156719017091418738942724038116001169927193250834756587790056276858876819373989584535845832776225014776397258667628544609918330410755680623836094393926238899912804113254955288098626199220577376300853480160957810898355298621669551690523074984602998373557639689220727561113266598744629349030111111606924220134543911236257907538799772689730884039095840127969091227269474047752006528788866374931855874639290792333177527918780706813171732876597475397261713334941238507239069493613863413907552214455133721028500180067383747026626425701139331481076577069850766723709988892163662881667664084778441427765617076962959381713556197535783463957797774127544582014584946134442019577917807501731603025075152209365025564816296280908448541910563022846705506835553809904913012042396735046546666713977980182693728838535837112997359987862081904329869894579704062839957123926052423592606666903361368833304990391223485928631168191098528406627853048096023933555610082561043682866059041816776421106191699078495697397140334160975976260684701592841706204277644737172690552168495607446616993483888071383364115216642320858733800405138502503202484202079188344236381014228210231879607673402891133100761241289172289923561515453212049208326015194968522422771880147364986384395768045139122886442345641547306519079863015735725472347293524276074068368707325913172714410992823326615946721477589453273105159758813030199793258893750924737892196603345437177797985670839952910484327116752241642577594312438861919853152011703382288867558917878187108437869372396289423656363619886956242623260567081933519536779259656347834749851671556714457943523292243343647634531669066115066621848684613607412416603763794735211139092240519650864861172481944497892649287055620702898071191043360304618348622017002296911525565193828355887835512307387004493705671398217513150049157188455491494183618064267688060509474686948358403420517367088131145330900136761469345054831936672123380929276496394061588423694783175431957205859670858949314235392331751826809106100097244972206314414351475561152781686157926283386303882748736860506322808285474841166633996918281761020102038060438148026925645252420635478982823215718410175588504458624171237001530465103132346396729084828123715994977793763407544947320374392943775273777313977565164913125723597436332736138505165207473844684613687380811073267816351420329263037525125237645086543845790090876505148340519665076621625844343140267383892508383543221203776223190954943851949285522890894108373992761608191889985527410998839832049767995585737887430998337832152809291524576428785071413830921095053483470619134127468486564201370064088614288137565376973878289004123663862021376503224600502559519833182378493154982446296821514016748367549175185994313584877332346640955991088751845241118118440620287391611291048926972096937650920955912649763364165639250642888261395069921614264569794351836802173432599796273541801214050767064783569452987487365674512285825175630276901282738867227776459586934704107595640040109945351742981073943006014114290526983593478932236527350802456256804862678254911519738820875969192101335686245305542121978639661023499252809471009166643071405540003225135844931141543294800092091465491589087046522812307387088230144895885035539404986156137985068429304611497903200201491175433744411761093585171957020259557719680654752578555248216850615869256334729732992138067489287439549924168230163539340229452362974245170168495848558495895073269309396901662297932917790706177871090613125073340960179911915259295667934041775376324905122471145328590222549274695955686270081786959167659485680447359497307609670941319843167525588786564545122822967332592765442881432644282159592424267956549724478854678351500972733301263316485915975152985835273920286016451253712844852400171245181122455025126968847933893267297983285383410775748108286882932863970100142805220842089946063500588681575422095229668920256679369200047538145919301154097321971679552617532851560754110934105449312582992006468303254718852825241738412405663076120759633254972914113151375525927415668247821168282463358648623927860847481043622612850931543214462716606842217575494507403337351449286603515981013436956517832812015224805013849120511541943154878336420023546898543791443766066804881103515698497076119536122000462057956411554975990313915147355214785003593999389295871530344043322865296908601173445293308390258827714658243113690384754654280615961837235856459329989555815043778969412186814440432982026573425206168035599865906722072043219753155282826227337060942384654813511656795892445203850069499732633214019451329197459363784361922291648624871912198964764870684457772056963622451533797112180772406802561668870523285742768642414135048052393658241110234559220132362941115667340436958706524733659780430062630651707615018228219165047215554374757859306578424145272699782524826048031333379255334638322841108918461418033217195181275348492279575676755998476295926629140062788940480178304075224777099255105770672037057952083552793819147376858377041069559835966798363162149250875050637187673053760164663150040560453725944545193931909449642865070570213617069923014566785431137223888161452003829597559795891476749066966700774410641781468011486165195897716396916899315470259182476485532866441393232596050160301178503016306607774743975285398739872316155885215148596006586672624831176972391681501629949398087544009336196461229291691931559794049046927094117556797651216921685022799126867808294737432220301821161844572839198769063526122693195442331509126440324971801875455195914276854169938964637704214699867997183700731965420200579134374065135353142484404382432554343000823073409610946043994821244144447525701370353190917630854513980770771971030356743395877751157385974448141413540898929556110265277091310361859175406644016320063387034587088729533997487472852415644254647500422694726996104784336547900280429702482526181708711524724218957528608694192327190348768506765136840491013033223085701821584704069645000634217093817144411604175745936759095821310203659148142402550553823926226965191083043146857024049842778084442046152886712728820324383387967390142347452804489066342941142106026506077056214655270439674991301074895163652492892424884876208358530040637420848455505936873167033586748544421116146595234548115745345946687861374759921342536196066739031237673628736226587748904053702000522677239229119706980325156732700190858804597802662645483566707136509040870785707571683215928641870062791150173701479433310127700832518893006329187060849340606598043590585211390542956379302589000304198720387157102489148131852044237004821298495723383273704555234198243546990096869369817655404330015428577543268508860828857376243646403140956263786808775346622431204498697358410188140205068668043358933286381066550329791771027958899480983184775427956527836041746173956740822252763350475342191024968341383320187039569284850260452113025039688933179348159778991666272530985248167720814416425333762685580087247734024476596203233986706031604933480167928671932213986322434592423149375003759230677485518916468976388343909071412824167568994106599671513278142747499930192843813393035190345174541296904972533911769371435811305633317972265556997697881386197038220842319371709937379304790489807064279769602116884858655861926994469092353904053475308971607952791219289818382878844618469330301103986121376798314579391373597885931216870897525516543730730993610213651054978739901225258853188731231919813331046996822516775357337472294642476736333453810517524550313789138955788178551200189105488587759927745313597146291096536843436654249488308852690241471575053418176084887887363850308060085835409861120561494505197316118005208490861857535423593238035453493871538248504584693387367108651126473687029505851211381324000050776466162354592193418681004100226535955578481837452075938726404969506279674684312165396443949605737626786880794453266360478085206048977255949276819706136928464103347941498262275497856921830349738315413514670699711489686004523111548099148418056506715405903866086256600461390201597772724647996745045963079812316020503200084552246209740431410007393324493460318133851696179602101989452902958341542013537645445823237288683088093773066458240815217117518561982737453000300225512222892931648268908739368916219292239224780953661445619635682430362336620898695548365150508067613640428182409403758649065158586343698340933536080280336339784872721834479640514252600789548973797687835821508645514429400871131717654425989222332867964933967036198764746348633691159643003960673275818095377536830332292739815214096429279823548821689170375378748764597126673164218026019666200804907050223132078466830461560050727979345810960259779975060936820844098795495068165430181192821748727229200665518240137583572484381938909944891397514341970133009218377065791183203832916745642398765677644459873823333227350896192865739224035988466006670239619918825264547259452548361918327640146388372175087947715029104731471069335518491325050675398561026200333960521028292077273252971477681030122611562056586815363055518204331912761936672523072856984972664368767691246373058234159343817357242876137964264485443166116065553105455830051625486424586721886034991093457383242469022385966248675890356069567850279869773086604894717260676998685616260390004412107243361254823961349500755657674206585770272951851548766562423769483782392273314074897048493753709547974397237717508182315924390281522929467360178693147297912411162465988961604746321891749402685708190942991304654984843322083996137909535646106349592688924111732596353596042671114071383163150899496382633590402487147852021892122675620897784847597914656411763143960809167206248091594756937152844609597445151954762650098961145219384665679875254017912954311895471803902837705539935041898123029208820525507326779178420893907992346604391327456838098769661259145631424990747350516265320614368029640095646020672125253425311020717732318569641190769030579274162959555437540841928587576489572565115211214138955136367164538233857286907661957266130241076282168875173763912828336275114751330399018850295461128674779606422297074471912593061466866112977610207028971417652189167196539958077910534137479581186564531100496566220691761135736165972912107032797516006600633945865140242951928680788746953738229783881813191516468591052034865710147337912711058789479670273785198883962755207005121824215766566092798601624711611670614535542977243363202721538678594047889185100863664133481475599439241516135233561937854404530872027469247605068837623608090919482016969182836858501363589659693106583863042640083297582549922701017716401686028025753177261946794595324031472051013060417589925690171993952498472744759742062436269166739176587537398135000954900316641069118440633470257624319178810329164012726562994095646043068953014199868855543313934352244956811182588371325713574765874449801287828059487732679643570983208463084335061444911027370132509413215318196791240464252632904726499350945141953375147084624567266611063411949322785013320934755836310728327099633133129216410656587509665369060502610071285540468372064446126035393402049798267840526211461692176497138570586998989061054065810271692921227550107351113929206652335594063653823628929959899559562306022278779330868111946371297617363005279178919201160551284627615644566381391053097990850740476722381810736025990860803377255381305736758790486962147665182474264574831435199398867814407758246894105509865087392941285495262967232126701296768816069858603996895700227194674397063355866269931586079484740335345244893950785487652448412268659860035275685805919891957639215413232262287514183814867373446732016708227592296488134656264283721967571445042987451677360324382844618216697423068904550332496956307119023615277332092207022656929339045034032470314768524413041931909149933668424325902062227516001515603949361401653332684796032776535193039268491563655027415895681328520645624669135197816425632805242568087615115502925780890074972091018481939803284266421404142515355470574443201250195759973337999521595393301018427347063261521714124479527256945405874015797266511741285944515146242726911875546841753949501934603409308502970856420674991096187849789861387301735874461457896617710679099501610116623209748840168974165041624325630688636167667481867167123390226268630164905715809819226774687087315273988752313346612507817343059661560220188541628074526937709071086811397279373838018087038286743056893854820043711913990822031922683600096326204237759424183607224448599859302436225121747842041689388169745695916035829443422698877004014907280529771868814386978799635561202999526108340803086695976468266487040841710633716053330399889814749345911691258822732201873690103937526159016563826905513616710763961092925195809199477812362465606038649425027242577913601789396752918620482284607503995914593083146281752514459164692354236619147633103899851650286143250247787413944299073301970379641090944353287031314268685778321062484205681618728604301705648217192908534644228342397387142367116174660009125240999811618388934342081290460329558964202743476196245609632207901632912399923528107739355732406989895935060210800560346694603282450503432299692830067818384632490970060515100181874196001908056451685446649409555418140562748110945388326770456045306546086349368943767922394275583669618390610862418683537636069418787264464887567570722549998472551673932168589159506761530030678818040876700987722875129990314519605627707352118711731813046767184542359085770144899291071824219059285028565351840216711535698869036688144001287205404043970333618727259168445969005247475288995791370005058742512648989384206483964175675255162516081195933510532612507721291965265294783090735073434347732723705940308443803530744253733841282274749816924730955488900748883721957468824885485201585922405562437602018762864315218417321015006154864140291104573732435420900523024743606699999746965705095417056074166004919610786001049089311150328155178576558033805831516397226141854047290961776306358706829389199199715292606796458528042447894783238058291989145272414035316670251658031356033511336730477079529978638678149672313534694512221995452253891736158042799718412096577836196563714605741021888942308803952623064501948337321156963603804729609530888802963669571592820387242597254246084773236937562427073942618291635546355298034709838445210634006266224336782529999860423880084766779130250948595527009851816995973924442456226076464760850069478896034514571144200478177638382689675943601114364957766527540270880220554012172023987233102834093731798582058455220461693623038349249554313797715672077879029351154647481709563543043903167161311902862899526786509029779390090484581537655920235045446248296522948330518437194339710357194523772513974773527348484173055924114277882072418443743354537246107025114738049090520792500151727917349631780072136346065966329759583833003479605812271347398383784560780723912544602832154471391484360637135136519965217276008517898269599477503548029724066644346917676426388552811097947512243643219423874523436226922409320979567884180388803283605453698298601301162177046911742980270830653465246773181579565662631808127918389672677089506167728600088839354542910127338868518075026569496570618236591015876341288939093934337609855140707608112884075447411564168830126157606285122000115566638994846101266124969949564331640790926670550557299496877212481779077425246661585503080523072465526805922275087238594896219801513196970608239540628485013423350160614449409576446516881131295790894040497364210787900808822097299650330006394124664774418277792533012896351971496164113424993056671860777319852645962159841545113235650674778626510127647139663277777095241092227802592130004395004589250110436058073140664907202411541896626998090419244783001436106919259828381595048719420906140782786580681373685776245176852892223670536168673169514066424245062798981769753286341119503457263430435144727040041123278260895447819576362297863945832052278762296460086293445321378604943330700507976765147960795846092733695491415672817319123121514622624193440144106438903016049834040593137626347679118213247123053371152881176382284271465460736614981867176870919260588898420879783399487508510027435499451412689419113310147202539728401498811901376397595085976299438246302556296002438329144218190250809017479306161199110315115590521882996602222052128046013378621479717050198398716734174928264563081262990220943594174147621540155348445522283918768850773377098461902668232416035714141027273822706149084486835288749069518446067289923334005662408963925778282546122458422655862228589191742975310360188542582753903116883866642494825539264919934690381668111830830234970052150898596509368398335091223134570710962982998009814300307544036389467507083590517964983016499299673982689211739603641523771350866604922487297150297891520218550854753240683644485368642816319151580082717137633206314664342268097824340665856826815943665766859263074010112262054589205811506124617118931021733663383898707008968033777749077838645616483851468598745804640577063349132420167893575073594335327597051644820699711688312040701131892077950301516985201265680877655162823182247462666203180208810893935636614313666033432756869981520984340628137307545863121270312731232221466676914343645903091063891867351303284503014005932392570673922444384046332282836568854015065760688639016912439622268016157871595276345707782578376646640522223447126431556283484741601721588141781710602470830868649083536724258920392705226709018718114411869568127427119783169024294170141435940457648346283170837264353220271364193954329000432809653124981097306919277493728227927657066200559007561926811854147947381204666759298987721496461961853440430699787804999004515242992074007687083912244432062655493581613506845777450439944912893371764065748989926586149846926664917632251172052311405629856196811848605103479219949759295401995478178153028844726438464095416580004889888397667739918190525086633698727791000809324511705296527343349139962057321646488953169669898253405774250512502710812860060252204131301638799355534056360833338663208153835366368577042772755591884442548263397136906028380262332249021775372354168490768515291753221035198706709082699338723550377133476955395713918875083761508706886987142882350596940042114563181996401149449490963780489921325930017980634536336806862835383363433842833606224514947901888954661611786465734933262769549839679657289435106195008712134358186065111263626193324432061561874085114658499823362941949636490162822813825336921001408717822557482832414872261455188877258960859949567671838529936507082508863902066395789826582927501459371513358735433038719975951236612458446819681142661574408882937806089081830448257230759075207932134891764718364382430888701526255615896627992452552285440724267760331744388600916111977268319496418016684136475822770571500311990499517381591614697583833450230322263658449830361825503496696782865586764136291866648622456075575537239863125426014523869004846029194183376561052218523890942125485868751558194536760463194559106030307259484481535608787928381795704960721710954369859444511528035546365458396248473133260753480772040050195599996368475148642656615016670584310502688682344929989796931037481663461044767784326259982636874364187014600214398554026710614793912136369685817344206092921516235568212289526088433534047083895994210244448264356390386775783040798823706252551901843303836385961142351407459039170934623284564369153948039772964488604983839934025449976616691768537554604907005181738684354809902615860954229852523203237608424739242652444215549646097014165519048060564373714321973910423444779381818595692594746726141565953455839597179422592966455274373688798127009742218278037995012482087632485911916436576836391887695955748250327652057655370301942864262595758998522310042206488235184021384409722668757765894368205220904257552232683215621102599768941391466771977243227649859537056547488775140023043537330020643304806598077505762235704074305965382096125207569092585711362355441261005422964431435187716703224742490442338084583159084905865096071521502549520950966207871443244661213320160557140766449443482086300282084743192838136980290213381602450843272972419081856554162398237330633120161840341395238328059124952994880964468632219423607161695817754781373854595070153468914096110061112672201859461270477189616982180481966438943691698161121445304625030941705865798093659134279167443107932354702908214902471345007715604036502282137701502691797664243777379262679170726242974162615334077127883984576901340533001696420577319515483726145811874897704057348428332237614676924820743979260390498516107626173731082839279606983522968244238040644636741738002753844586306200668188161749389262970143394994098150471535188895763415659185238437216091077477206565981645090821597634840810970325621586677801796679887629672249969361033882168710270430184947515284311685858723505717090382556571720313602140080589923360443192295656691479367546282176259149852953308564943274222046923919558511044620613597986854374220518807742042845717858972967428209620805129379056875214231679857996201506598661710625098470700587152508824100747045438438785098456716715585357822164291843746571192429317664483037453080779071377736734493627315805615967108753865446805461131016224176254332605760826374892587399496537344246798271034610015284424687617265546189603863521770879226548921794897583583664384907810541907170485879135329030852938161354076774188008612299735061003505254037521732973466613195197901637071214679770208476084159757725173791373043998198419589445772227315239317704331867307719169392210943172955904171516894078295830636666730203499254562834671139495210709624205857957221139794488126925867974105387715849416673331128619852342742755226429281776740231188628918239070545557804495835653420560860176409006059274888689213396458399252099218645301538287321391930619760219735289888279515590869237133280895283666443907724611089816559271388570601579514628968707711295571662471946818364753767152813201870419160172535083475749019249692014063595692651288529111802376201035958138475842932458839500645838954916320226067131623003911369172199142295683396131534113542013781830131196440549974277948267000959213558079361238459563662053692997831640470294468613446023513448385103259823150727643806917542925885119480180372994112860797608297418239089061903017674464321507826332940252908285352863034980892661501011348156187016554206045944682324520603417024255182000314098889970327675863342311417876373036652946456937451702700994715690917792189706273411802002314622762005872431081617637764704495486130309166952734746835083053607567855707944940947843057652215743897868896942534857966855309713630840790015951306161903915225586691022599528313015435189569962129227039543118371254729061595710681921570699849892066612149511322158227848710207950129559415153605386869333239560345383665432923910811118920111023445520571647901020607009815800615895007824059648443898501490941636537754183535852331771804188268683423997802927539034186639025799713092882484697120223848898553218046386961808786103109120463889811921314414916862150567576171216157678179322984272829906699054724322010864616031668457444348266590885703935196655184528347371940851111681742684210167650436572993368156108183705606719990761508996922784262193387648072500727917798716901574951881226282475475316368412251111751890940589116364076371146097358728295812778318628047438276134067189840003704820077797015331612860503012885339061325215081756012175912059307457454387716852319086929181375995761267692087243385203008880160239954854210830388313658644653753527787226346731285553046826179728256645504237692613792144220807154743234707074041611826728197233224010815890095465470017504716443661819613515707529652725368898268692065145605233689509898201967834355910875010105240535479119480548070473770344136968818441591211826827766190196166897940795944999744907296549335455823616228180619475028327149776655446001599683938446337313883608324667417478243288787951234076345045343160366538905330022236120945077524486941391355388492489478965060535480755953674904389246875911210071740735462256168378953042952429986929190179832186252975715268870601615381434102013210544582128230078480164792434906603050265632857978737343400343290621388258680954297264220849511534539425650915649552793854282014018292613601492073362065474819888630745528232511628170146741465978212620629760080098656624209168101273320056845874049619043175618084366587092310119968804699256010378333015448156154154745910669512596612566523073342181148545163871109017858331606528292477819121018533502633763092355827094250178230206532196276511004356327217352469541769237505478393857315885738909231979146040899188633446207723162326052502096660357514339975560927210632308790041002076507185778729534719692183182368108879966624376037443075990454245002885945862116160648342215710139049013641098428529373852816094879855298923098757666745080411102619359225116169092604271000459332363973642980859258303713048863644412337543826804139239750871669393921740401935973798558821762976563664812928327444659879138235950525033775939570581088138329420446515094231595402952984286323654267309388422050576917462186120330538378796294229612760118868451018368707720743632226963122233330724796636411663905914832888773508541369502431064977235187803971914285482121432530247402364999875749364702581623901607217853710397097770104820370673469158423593544629162621956570951662791473681170117573897652449358757024871740390370200445329598041583371632683102470062730971052988269257197597421906977704086016778662523672957972884500061025085775422263462476452033205523699027635217000295434278583019275706688185850089178324522813554473402205234667919742284025493743614548558603427282829248636538559555456375178297223271067215324054492756497231922320871377817186089538433454319747473570770033614694420835637228664313005736631125130502519244059736904342325594767249409441371543675939040099024562486112267713945637352460952156317864870573290299765987938871803450275029548279405203537289640532720301622775327762500746711250059141748313882833117033085661323067200191835392912134427643510299818982521552916525980157616812817302793708903484480737056876882459864555788905764294140941497310278361435229774004152939465390085588874713880171057683076086605566987799722282911606546522002214794367289459915820797304718615139977348686079512736159292636682303676534149607277024924428073791827645882071109127791538747644866289681528982630241362411276508536771281656250855207360059508300979315278816726562899079664379121408316355675092976867854673898955164665004131541932464036831477070502002353325408393557491788433879929482997252214299406251940947757205185041491713620792984752946991084017965826634259959264138831853893571786727222199204815330143778218734276212263085893320888149966945224740350593708012945775075227226695987027597479731423171308285879843491873154857834554282169410632667576346861518010744717567995452615189050922859975689822615218419751204936327434886559728061846090954799673026825760121562025084673315216186272334810494687053534355170058184915525055835716148289683655854045788269183844811069608054989753976617892684671755317224450881073376062436171066784931328414146015808793238713430223303465468502192215226210882832865077818440180318300884351036469154335899821381105456460991604046267007103114592731761558933870460424226898186170496770613245373451287932086485599053911308142174932307525867143493852379382475383622414506758913788374003447547959809924215076605093204790740543404613453607548416754450847713044082985306043930006163495399363051381223236858695556188812135948390342513436054809239500183400218378002433813146389804326740450951509899800988579669809466839577167319847166458134163837047083830998814401570694545391192336467410231455858235981885126318032531737124976556094171131312596875188407929214957707853274259559840117565720660451989067225843701985078733275555845895111175686657199648630926305509938373678839229282261532901925531538907101149245782000610927142161536355048873628689324609684074947867859981580772998414139663799300645071568092452230818767044443791187749679709313780436812429156883902039353366996183412298442334688256609264821757556751766506795711220346016209922306237145258146228723685459913855610584333669023146537641774141354039888972393019796836142595139637599789550033072760290667045820565041712210886577570639739248907728598382805853583309424368086695048757236245946277154091402220835663404454918837057278058391648275394377850398729664857014261687911399795460336710344166456312466278103487511116594983395044648357957512755839818020526934980764471071683243987970947377560029528134532741134001816490849427239314047978571513424389424096023341310181986687944525656374747304059889424761498298019783520267397409647597937298000797633846068217185588986990401449167423775383373111723418484483679689600630073775319654453929712560247261836764555488420695079248911564444616817320351033906788899656918954246550527392950884887642361462812766082944098532558758236365909244229531051284656823217650487396966292473529762121981778283855492242541717935605749973349731347747121447339267598427870661825501367947512535750164587176754749568838281150108081055269885354938211985964588355134961519016499334218963371923921956589087256831711771096791088849316664693320385811906081284209416187683587427166111819220113291521685372366193582820261118344551278637596254081269399333854526317066820187629118994302039005352429724575863016748842736795343843972598762345052209134378854312978724079762414841419865605067165863134225138840900815518554031103391573036477992183600319587749848768110748288020597631034312098603109532461093835461907354805354081872831598119059330801603931342394571593951208383712860981797000253794391641731034636263816251248089586571753240953673551103815626829475219594880198432090116008339642795384138444862299940537330822465612739432583237880838820065731670601598568638816067977060174429831518677719798993005214460950353565313069020466770587103531310039262259357578257587444505823454959247780183161424159255201320038379632461423897203214335037501181428377378272430465706797189258484355738567816715486210626448046665144023316857369012571927674603817446692270064163803946130937076281104197227952537830461720941391529311220353649582430633983997857425142182062795489148457509589658241609401918913871986877394421828946828586790148757681762770458843540265591623753382390921298646270675454225510929268961658878386960383576164229061975865832333207482622339730480396673509851609185989823966635575726702336686252025437452809502255315350400094229839018193346506302279531857121053431508867919680828824693046850444146923168740363272301268728819238522705303102365760470782869957901643980960011526745890452801193898948346772376803124931642608857538743347193414507378922766393856224418285285974500078513478555590674251347690364285023425016687024098922224071926105300715229319355488951447782408846710361795110072921852330770413378424688678789509148100914300188694860110331376629412138573882677829683973884643571901302793033941117257531392516830012751244952924314403076564222491433082824442710682360607145365626304688933061347145788128378940595533575520283512737020129663185910036353916364168261867390809642781381424673283227909811085533170771606194525084392356539125075130497984830746875504971826177418851661141322940525761045125942211910326553154522172210532130209286799813756826744046899684744784352412316446088037596783833471952127095532667232054874217066863088270169639983767709592698325793604708453955928961957212284467634923676299099588081710436742774123193625539173149433571267774193040128792555397568138403758482498634428306135144213704946637644831043984024334598136507614141107918252229714825250521624322629793148330382008623203347530611875923600570943961708458043677621736517221173876656898060293438356476998678592932854898739878904402773162012481378244806514642027641620086554917231822772163779910462647371399581704963022594624697747476808573621162508644916671482014148797761917497362344128070245630665256607850776170224871357437265691105739967693472169659345950785219596573641067664988434500985593078611172728404852582752331818896693084940678397904754820536965198224714648608947545207219607622065974326765162683788145687404039868835582241318127869524377377461499857460643709345712972193230899278518859370432884950803116046918841154333734932391151895849444949169718917396170811757550243839770075972430133687563130682289568682205336558852886686157974207986451035322377049343691688569786048241491051840886343457102008744453937714967321096610791613125952028677967227320371297301980078113108684437146373879372828586653095120118647772846590568390017719043705461561497859715900852198493569619043018316321022082196058310302905169609843691565497576795048950697754209191317696143042110096589708147907367913671282650657282124627431207006258459283815999686568171490999648988921282636622499545074477661311889507477140274592250527377958699044248437851662096562811711753911561546238940727658958233548906449052966874611862974188845774678929573316219064580662480398685858462399548980114784862837638069415657510487132898782330393707711098259605588385048118903585945904785903671046145002899424019353181514263347411357956655461901227016097809376008700157459617763281667937092450987772245403679808359333441137491224281570080189353957174265664732281247637160402440011409242984947302709441169878517429753179649365327965770520724639367608653701157643634292621648269566623288621111289198737903539740004119335840163772702650493601945042871015922878549495625336262214960282298138267793294586345323224994716760027894393728579355039457541179453252591331782239496647108660495453971881964313021332015464323996537716264819638233637739429245796979990624210211785145582992105557479818653499396018694764454728597391816874196648582046211178095460847369893486222790654566324615226897856596154013510321239052011089359919358706877924360285287706609206779909488726834785749762519272067617474817012662917188676793943802850710212812766595135751602520967135460827832359611937308978322333465817663933207605441582048742871993835264478472479731661253110031358381457323135882193565118485603461340437278014311924679395343313729733730629376864994956161387082399576841573715165112860286856182997363907619168252401577438302095319312498334785740176714747691550929766948319256000843122588287528085658525553078409181845064512046707130260880479621458562764099286822975568123683866603954215208498675600811578245597189544017273425090593522543212806934987473231374474500500029692509615652770979510103755868690357945943645860276031581178212861236024612472679488137732675966334563108244588689692337015795335863118287037284072525769534642014886354679100909916585882383796316231095607587337370967075945906595033295266658913602124618970042483261096945231060871177774992883024167816401689165238187833114462225216584523258976445107310193412229797823713479350175328456772990664514882980436566749808495055218882982361660942909741523576477845014195703145882632805442607747878378193412966172173949035085139358010280375038578100136906223039556528154970690572401069380182425113740470605950268849191518252916701161124811175042371678068243670182496355778221910815480652074305222320598378740776242629599413494119407682496795257781635188259475571571521831947338149594517405335314326124882802372258787335111987130162056254114727275713597611558986395994836610749171295486162801823215853833989505075728609812831489954143415431224919587090943204989964668272971901716238584808023955281625003055870376769608581221214685958375362550996542611475865359214659825807419338002054566182516906251257591988810281428289119152622154275243565307364861900807786249579517289899728652540893948044373183605845606434009699406242251553485973288283305897082642861576510864255480512999944865916493104311186164846764804673919092071717690567915240135618804201102290245934220703539934599739294059801102502625089008684643629784645664065303396872868624699978862116361355875352082843738312316397583380397172653657109128595829216204857226399258285036139567364320508583489022531018483623661626236059891021523102873577123818202218459175726522390179167492343975351428883336367820108668204593193910420334005679762239478089231281590114127176665927097559882050435644285700538641878143604751881853887630314995115591346977210645911962241843053691202883156288905664791711692489445664733503127209012225880543730801345831818295305038395404509216978688835358526695361436242823594087119954121673451914415364325888359619631957074774881620169915400285041294186658511642311732851347000436628429633847559795142445376341372564836959286631732612129450771015809051701776257781288842335477023421861649211565775829623348675090744904924231626814425516224191789562406261522038216412845998359632053160188718103614980797102079678212968316102226772611632424903726961833869931488287001655417938772292354982052807099207171845434384663317196746252767056470040414670908391233720507046465561538344033263049150817312186696137057630610704687465908472290423206000216599032502585168036445865558050545940179671921866526841009566969883981136414055017040055670307936648457434964487944366154894922277376349156676843753488376546709943998528262147646829762183549836027704642746652942004868096084416362122950335167441278749378739727059183808361929843211364575627583908839361951651475274875353426958165820844155922865273775442057766734521821214409124778472849684630751045048831502869320161332632119537737853740396866425469120659313359297331406213025874127857273975244156162137856858279212442150759092183660002235393397282243156990779169778597280207374636427735556593119516099963328063528797846929066477906190161102559593425173120968808611523401167577149496842898893269155014400454290616906993793149858769644290408769962847369176468744828494725682928290821642163887291224174270683154882084893545300381009605879979654165854673520109091301475946656412842294845392954285887423640889101102357351516239794728568026980777505170625216322321093672653515953518081637069685190274440205805751702202366140316229346547167371499820750266222568374259012172363254145352597584705230879622154024999743161909765761056287851058604414879786883664396700529143721273989608085218883230191585795490663247554247273842829153770615409237181184110844067807935626839711394385349859435684926769518931538088888657740243944558547857782604534287310057830023729148935119177648662493952076669072516078136784425392376252636323775163951115679066991746303148141856597568121092307893159879584564699865390011791321073780296573581362248006739072340663201326157360368169647263638968634633160457448315257870770808102038799049229864246891929245170069471723563532601043155063957764009649593796632858405359021068866314867162530532475801289426466141533512207210982308146645452466923705109640513953376619434787316053455721897969932455407330428512747494218990202925340822051258518070534561368331221012575388585485329280201696911485050263351791475796903470609412549045091667617947419543062400741718533424672898318374956590425512632050447267822752716599082732465295036340935688247642436295578901383948247470645312909130744009533933161952564985227619188702812834172045983293047544670902616587860363718734283101285976054267297316481862677486246549820718556542090431668636698120651649215074125141500331650940411362837722710425981527235318514580373495408067631416254593259885583651622034829382623251544162715794410881046048174223540839472632541260912436630605756221789211481449788771859345124549270991087380801623011415235259131819460111423129341206649463669866567816881056485572163750512676647926341623463322750574484934910457214491656510655655409141980961885470749111349062541424193689624109076949312085139598706184387790096082191201402852303675674897776614414309139956093908537527914999263415276129837522546640409194701738908730530440469008698041176181841226378116067822918237017662679959459505137392375657280100396314900143914109239878118387163086129765141591264245475218552707543661228318277521850352527963539729148760437301175600409095543454019630391743728030509072743760899099333230819881040827366968685007256670878757960442866260647108138271430771784716001703164512467761920180385097095401896047715846855304337410641386598655853251473023681889010055925995369008740456166618299484741791065170942248175952098990869930786340618425103019057309702383780891255817184864956603537941930268619733389115645047957956710576876035618754692061287940240354909812296378960574659945763113106057622544339792416889270643246183050971951743272599946495340336254184640838535295289201271058379252437454962045794629856148405309386778320413694685188266356387131296032204940254841883592516851409917528443370326894221416705308960693228565118224982370065591636262710034738178894535515796486649084874149088653885134746918948674201745249941231681647007829852329285000848204711812602486158775574634039373597558273293485396866453392822342214730164485721915370480012132396049225217315008825703387023465902187981809956799295934146905332139972523379817037300778365328658070501262312247659237054017386826780844066924818540328250848821667492985509783315067676672603820171017067693780340141353699000545496843322578401088141308937515354351459904603539422236592507152619387727919024987095710985868826814284439182356201968128719671169479543668068160963198467855521682692333991898071254190406978878851671192710210945944415015937685980169394337495648873343870719817205059808550500774009883861289508555606611648258214973993185771993130180759066879427167516268235592938973878900603332241463013866174783370607119423799797132955623502148136196924417634510886509300839940710312234988762129736992365458659575460924254472161583739996050139811567168868215656656048980297735545823619337157700305482047607932488205137410332934504873993779256170411616555137162354314615787253369142224217588376760000063436435754764439854269853500868167994690769859637751902186330451585834399629972370525593753515366103625800158392572636345378311304241652506004848840632118546698485381679475476303792448326228974695677390920479631053568091038753172748606242437722029816626305910516857107621090647370282751923629491902081451220192203523750635111485911143420519674913711523460452001695231101380383881428229903362570941501267842278796478905982488967422211752957624261414021729889677514132345808935769466312881540571776898240929390954579541137786047067598566465704655779770568961480842494450633840987930663856164562572793045867837076256500791097534160525175803463993487497802624957112164978891024040798036426652162556152273624288236115345846699633886563370062502189206627621719483999988770163721714833064926891524015702087132743476059743124023100626664251911375072762522749805051874301719046357951138664247441774753307994406364437951277716343557953032682004817585389330222804197671300038944238656528619220668339929162444557855716396113929882905124880436301513346027794913976429846298064187659742903408193740156920384936335316767328033801947132904806686108250740097540220155171202726855297910081320713616538290723343873445581404488631151215951953077255486265365303367999801882813270834532324641884724656053621971867425879912078031913234792790867269628831140389021101244751631243235479195908543790199695119314069773621112644938133710071485290667588555133263083342042094738976403644634823135970103424727547057903918864750978563756790289747270151122578504700512509920517986818044744188396463118733562441900989350927797897541863619060022286129732459585293434340809542589537943056244187730344548852852525717372443880252665872915331287007796535107336798016443911085996753917560246942236471850032350992740675238444788593670723119350908462688889634029189646985956468016457422674214110767064413344533732919895203743492012510220303801847157895024587380921583165080433417680156161083136738973804843466520568846417304082626588669866227864935010745974627436475350238871637279764132088187038933385062184066212561717054382736353590750629100229551807862687022744576131122197224039597373719662181250715912321870113934996603382113561439461776300736368154969733370627570684276359466606368766570435550242570920901181440155848821600871135792398708927706125407403943092959349006053208725475193489805950802288261780345881532915124351500508880144273148577917404274595909054832115857612921713498425690078648704245580071872653056215640322085196254143201693509318178004193570533179070296854998585177185648325511111127081571575483991341652456069125281298701881703342610221760725747560174745945253436020361926655263980877486042097472959678097693319455252022595027904929501885445115286075834987233736964837507595460192691505668844042270099295653978064848399659106800963530440105802251951317233854107246058388725323802269813522090242566443402829342922437437519283727748934518020014925199415230158787626330695650371965992838313316653129520639327502956140677548743110066476362586566629974016921147873367238890359410420805474108058964432459545083301292503808054407121772601704289748354892979749307069296011688259940602638619868391865359112436480762270045294575821300325623935148365096160537569307021204778741346586277542635909201110274760071309340040578353022774852904822319116385633573703553602516932811103511855426127719733708111475342413726613256653189628747886704255705222538799891689117789290762100346565220344603154168257506430577175930327468864112331498680732402803231635739841680163049841804529708275144445147006138324789120273295796247785769446838337005524647548319443218861024822014510900508404412966133653148263364062683867437070641547676653644517870559801784833780191938952333368263846249638759091636477058314481208097311383668368000932105347931430668775913958278879148362620786613749676222429821867500983959262324830318275417216516641178073700221451180848186959405410835285647539488413235194132403250360154311021693491707686718442022010982716710935994972904141146612227380876349176002278503841292948915971285706585695051149470773175761734633476561940464696064165090932158004483692997496998562280626057927201210868870513199287188266276808962775755360458788845651565792642422027795226813970602517874543172954760449447052988285252117604872273914776155972649487004800924829410918280592786266259868457480457851695497487195236735460435576399733600447667510450211335193681486059871300689396889722550062547185330690072669062810430771414220289006751379256740982398510792736479229966782823664027717749690089525555192404049845584824623543381603996047323096939797078790902894861304727419926793538414693271409678601164473067709193955231755875663762603494569423621842396915232282048929960229210274620954662069611613740132834938118535571659204302447227633724464112713073899836994511825065457168026110717794764144026031969027780680282614440575415975492358635496656134226759052515370608761130140530578698537470505708245705038687507399899599818113487052935109827680116444345183127220160801800784664461130430128008892396118293378980616297735987417951939509623216480541016017777018467307699573257741089658858593025577159795380869528341486796122999380241596405175361888117316469698146491399938986993925572390717599921183207472083974034703644073356748643553564879133571797017672723405857075022380662794509627786838768858091509605219054873694234144011736794498823021348612729141041071844487983884570628175228961099546364521638871259043608201298082638175258382931557388949200687797517076549147484394545716064495777379398935074380778806523591604887682106458675669294861208374452181938026396786726592635257424017794245350565293855550814996860495836452095488961707565242627369383692524029117916675695165885839138213773876461035071699576660066876949978904718213637937145345789297297189659243825571499333233064200904989567112327005637571862471513854877872563420680469519963438900356177145673656623078773473678087697253506797929956472736423556125733130270414629910816031969820111448914261056298900025574386693605032411681358410369383198215611418199645133404431232853816452047100222425237302658477640720349483717428207178629195290018113661338708990737329597280946636001621483209456061340852023952047372081290841180605974448843635798118050703589555066722757546550967463682900185187140887243392381821964833861503098256037081920274539028377144602342306165312570415224627299118736269597171825490304105763596610756612214577328953801781174437781874773545121554901042781905104658536162260357058979862983426007063252387287229022811978900476065621853349578856005689567828625137397058976765684449752655756750706360088411154134329346933385733090357649356057799475537194363766881488473684726929531909790657122955921477487993045227354898448221608791772059240547829339240386283608656426968877906406579958685306503080596066628775737968610033352582805539666324095910374781512341811137455856629604047201319106348105225851522337421511382489079580647315191377240674932582782933313913507599449992429698038684229824776458486691131298391047638593434794580218992359980225552499875505410091754795409467024093285081849169124888783465030703535873285812591657937982188421927599478882540117236843725647092582608022267180326597707492990046770090296761448765276183602687002310429291367512940075989501865648271660410096123185223907559968693564619659612940169130368267054397850961192959337760173263360670018998782899287700422586257921094361160708133749272510859514902737725059929486285603979988522708727662534665683955717368180199691214977103660061638749103817671579258790375714210817901669053431485627356593672636611509198452362095845938379181367308342908564311936997417075942226802131293564078086551573990947160598080008098661806827002400491174779049809577791980563345400007046138360000658634008373696674408912642152213795107811147188135495364921585928309689074591927162923316888675892679994724819223167987386879592915538565843457425903086149268378191769741647706693720411417048102921533272367212310404349036809044380967055054453273211369292360078397589403608777097436050411733907551907519793150946525599349676369710911793306305737935908839489152263727827005094875676830451136151262405998677201330328646994972323186703280939838471032824401330369255306461462426416392086023745280071199833858960195915772781046310594089035073728978115174549830280241737234737985839383276783645754053206813716028116173345571964599616263179683279810658223699665659560109138439094780039080486106793984333421652156067904554322465520583137439909978482077923067538572365140923447354997763325901753791508607556839427040705421046536347048147785269018819329853416825016343091224560008708896599598427036920653299708070039181178459771371424458376838566401813583606534109707024804147374851720505618830654809328560821884649626998463496291233119527755843174830363182728723735797091584776003499056715595677093313300026029976591882595885051563197007667768203376609702430494278768361307715160795190361065289888867287650780618348435203624267544640444932056674373895040923049866791446592676689326772964480198487628231016792549706538150170826495335181179085534374678265431343913000583278957656948123406507767848196375295770902090118579337007714705133695190073509304679986732856758042610938201521398618838966000128068543799209963360883940053552133270379100565093046846148476866017759288817500353541238652659872977842559816615633833287641741945775310366749254224654240001344815636137245724344034145806953013446986841180126587230991984101190338838589181838947380469178569266045535643105781501408829819093957091723254068172571101899175026369120217013917477889330903748423957690654984032098983985489573301522222984798459280429587649710956451516400166898263555122001262038839302028101790834864904059700015207581825587565684059263673610508606814050152456939802946381626887227173107914786357203545590266189207137334092989994661456424195503604348254856868912110266183861569561870760763616428827542533806401301618501336935857983815447765959887664334435453021795311754040333218056149286726848009438347913115154734632773710214460769154356051078453143195514129207697608950860279986394799192018147326603283637531516784423958058194825480029354434712580263382114262290574211114397742744678037314457736971719797446224013343043100777202645650684630769957332071535037201928666243483236760451522720656820813352779000600832314825777103246880478364612183851940738674872804859321342991448300894326312189118600823431715610674159373258825671978968738997803742926695112353749888734811791837437992441574045378159063065521227478546932927918809123331524696351785972096811399501706747889398958881335517001933208565545387144726325712403753878361223290814622982612710151896964255093812486448282023863450309126944947931409524524651368816223426586490362818282685119564537668763690690319469908334353004746646039882468009423940131405091049218769408284826688071107035119751054008810692302419878925008033843312408335868936473655335693787736634530914766514514392544013861254685064629139907916740893340490736778913145193478199617858282657502612520569184509411142131027694545222981348533244022394030332110603737455865779250180511471652122258456962698120075955371556353672280076452357145664499425539010987137301320858725589426357561773165228191693689290630521390650566554598921530357249691297127959359274019037757323252261167262816455724410007033279600934464058575396679189154811855188493750323643572267729804642854723653588784622560234666627029169091829657316759744480206622041905027017703195401636637857751810145479870563427568562497513052146791632742410115346229430456684534290605689329834209810834217866643788703030173439619345617350459473628587167946013558632273602383135125871673932214417343584241484834239421395666429467092779755169325233623899508439203940659348557689931825907813105434922763049455325774189458499462597235195574479217191107092331497745732661896921553256523099687805821981899532213828899145343635870843865478551923284508858619088357129132373980942536704891525079127214606235995088423855310919205675758263114435101641678279556898680804289925712577409044437996154653763733431049950687012302759889447328057792753278760337127538931601528858422862091466451210749683497456240352194468482050403888871564446734933037791275337065832834694917095603197324504418903514685164733252555117120809816384173411805550591157513642377252659812615649021907673701579093541664452081024895950355486420632000494089299614629001926539419146107865068742358235480428256793280669612318773996487612859812068905294156076067788353960682239504979965755192255161783882070896187815946751418006468798292338538190507467869998720781750314624939844520717997293544349006136356227405581409755167696968249360556057305320220143668047145261308741390530298261477453162122692816850751780302723446268974988164394366959004954908437269208338209852754063176291771427344539324455201551434976327592010843691932838955498949000425509639609811862283856327248265257823903739795408386266546399326575023304763626654195942451764279731856269596841831272806031004471657924761593009350287953479319282637772645209593246196276300794984558119754425669053667122407727493473089433120700839366436847291644946653129253352898717776253050595942713841959028577754781363997224858602047417912934092120086706756015731022213024257374768476960300606708812219739780476203037867237266984754272597421432659766227599018100103715798535635215768971225804537304651671836535596890548041009755129604987044349228170845141555245186102457530810466623350223267895881645491541495105164697280999702789816586327214060169002082540392662990916450704384896951778867729339819695228048871605970803432374633083931151591141321466296795413729319055171989386440319541188392771420453807900596518236055182163957858709319408632584345281236865764312546409259790303563553129766715367393511262108169313913109052972559044039760081370886703179654784417454214760722825415955339871014619383434866909940382190673494701799437977008300531832894522845232050765659485677372731243646235524579800030888752460261817892811700020325082567212436543754387385088137031736024023185558709904483808901183461363494221566019405664534821286461190272623239978876033364935940406324957307520540724406890071870655874477041287421485695873296946789664049808586475637404561952136320154620975506458981309648775387698154314518217063721397590413209619704188064931911331967499036299731895170483074640248175316843446347586032201251257359051040131135142029280289571360176335234747200646394304518014116472113906196578261048997676864582337031660662434214466028033327648048728468609650662791316755143873763785163697881142351585545234994948614087072959781502354168670432767072741498696433992187869675304926173706897388683149316562485405152469209279738319663113139156418542891937179694393083895186754921526022816456093640887772958794007834445652612971089946088842952191930356845336216789283801507059920970090310459916555096520243272910185761538824352712193677952816968818973724786087271755935140264069014656133803196366947702232825453344180381329620263124953474404534451228929844329250639398758216279199667582137895665182289792041135567567929663430720668079946352598989278394272067757095267332348463138688240474981180885062678348271353448478961202324086125903080404716341067294812897788988843131517979110775779431297336104331859847523240087659889685731300153315027413801132701991345164847065561136919913579923443512046816244736428457445305692169321467541727118314906594524300707496264171314937106812867607126169998272978025373141041930279794730707178779499976349871373291037467128326438530836427972743919505661726336396922972543605735238032281672178522225774814852031136915316060559189724050703868739954556658947823739974495230062441840024801539507482507866579236373283636324360376015466073602023145822085069342013049164161082521764975458187578150314084571198571979581889835570263731424816727892897367340508839624499533878920336112251888613523754249565982505358286066474909167703817104797009910892089284860224105342884833031355366397604160566880384798131541872692396785023043826850576248548472422940738529076916960859362414809038038811414311464904307752943320792562007353295469487097201739428722563430860777459601541049959030703694986171602817464986235778179776758371048021243490775778084553839896181454397547031895793260392418678955433413474140413182090790917908292391391153521095500186833216221495754297738908392467699978094121755380588171377401425124434808227139567053031329945764163336771837615942977313415414605920537074073272501271779975266066569774415548343342056518275088061321443087891510901259404932612283571338197473307370330157219668447899283272784922820337720579587386120839599739404999585195120294534773015384356575916001641593916272521258230538100569194369447275160070664209460599807344798616257474595806768241121196203208100803356091880195049064398957252087912022080252704482893304464113758117345946421402754298977741865905916233999059577960759702036326037384929051689589694677795371270444950194982436104777441426632457962669356025245898172625966308347961784108336852353857123209189872866281650069392355398695180773598648778847372234677419682652928184606896582495685781993039684839928752406730726989223547978090597363930449307518128006237892259006511960233430797808416094005718397538087050860777044974758930492786266146581734363950651812030140351369898632783374030905144038896165171370327185837217820186190945705948676469637222872943418916713327706718106791092824186000063456501711967771435125759997826182521200039618911206173421060471169379251727376065526417912106153550781991730843046926703260476845397707640679207924159496582325632854512945944432023877625889064491629432878275677930758659452103574131871227837894203805521489770431542656404314697868930050042399221733806174875366393319082485637313950353445796320377572413842291239023694985735310201212175856818254764012568738445194849458703232369806815488354515311344458280860378832329034898810197920622980057556952873210116130582541319463322573359577200399443408561172593081829255068421497716695806066693829178465106531180495835722778784836050057358937012123759295860096550066355511022340837869102545740066341461870462007227515228283948908766525471293471424804798318243277819716737160405544839760625586162249155410377922769226346746340851882077381661702976021222492349528462909340491657219730340733407016299076563890315116318262931285329919498986710887540484614410278845704197012537472143300283961374076375173423220713349938919755489064855106153887526511448338482865929038075177740497700456182279708549669041566270343276149036356498401287281997741641207023044847332343932560431307926845758168877691040860610545386574514495289047574936820383106918554211784360790549347201890378700667611617392215678364584115948536275867990458953505956383493868381382569753294239339758492670090213277242933265872939786875310048038821386213329056402356830253455540273001771058572156299370792261108302540378207399729361723160974277478054992116405540093171171809059891052854993069254477367510113037638390295846935812809810635201976936609025767903468257058312716114298589442194199546646076608856783684581265346511321684133311756557587621240956687068271387189199178217554049385039616183898810821225546547170221726093853863130954096747893773620188628843892890261022342878763871256102863305881671477452211748127497960853242037572864801744192194929019640076284862409364222077015438417743795350150524983123795150268801632475653365153680323563581092375532317584548417717988264476773395416447064391386965765094585426577035466516191660429854415180420322084861427734824281797868919915567280558690687057164021504687145968783377437710885310435445938470164341762192295450880405265502128953440817785722559414945672443063209777979178225336730424600078291372977411338457853222756694113662347725471081810937705689675082099909371560415628668156853966739799185885268617201554294998277981540712535137340017567446998995001378343457275237239772187029576329830154623121190548367296712829460738342645321071442660361129046633464357900827449481929005690365887344771035192259245774310485151580189162145612042982895222648016592845862380536486012578390818724289826682918020226627169301929418397332943012610258556262416419964474695332584017591984493056742473192371143007890610946693203596280694036496091439224788613321523029013056792514493816048578739658316537780860745538913052419718919342660468807282800221123635398019346742125623710076852162833425977470664401969667295460137479342894103478795444937436453727551706553822542382107763229181231817646199954738418071063415161853440196941739608931168681848248562035204918883385485723142136235580386380327796199897045338538068664242881018054542398335533360246747326348098900349056334392966295435337641075407069639669250857829515520092144666351363768514209563195630864825869177513714999008109734917148671544514077050440262048188307075762664882586602278290509026382453078170672482014073909233053363798958269596724915851821435729806918739415581513476058927736388283144564195629295237118143713398465541935227138812467064121140736942368550525851462370229142816532148974871772394253912781503383616379741553406583694592910948907420600710888261949794571538618631180787451137671463289642318324670372304837931988420145313585175583185096115533141592293194585965637399427605463794212484812280016164115736760491374586339170464998081387181927065999143428587007428390082977811622013816692170171383292401636891984462545996305381602026618359356646065830306001441769571512198989159602704007384851944797873464991059489142747877408383367874146857761330704248850922448158421678092394245964284980178977199653474186621887086635297335284476689277900861834854709973298897416454520416692437371585569307680609291812896524211812631550889235016477896343713365068658687314835083173516735694519987021415250610407725691047333060714266402294917589248996775577932579380121377714804390022012297107586165606211258417469361766302686610813390736832431440836515064058341055772495742802136965140085057857947698976112530260519672328270153586000009705284470843655252319689514557156920969016954669034372786857578438131698606595056766397929531466426076890057694769412068996640421700489343434084016958177178793692404090092092304445645538554625160271105584420387784849495648004042304272431587544689019524425528418378132325693314413493766014323157505139328987383661755198543475112702506212451422057101586281957269416771523245353699184503248176224891458587468986777053606596696068053488962635998257733716920358803423683409373307947357028836401282248713532324009238474951599054282091720656138170270920462819759434078170021440161860059132140047913327228313119037193032785588527458343289124676458404030793997340506127227359465416346726498884581689710229041716745150692208981609815226251882804976033910797126046320582260438725952213538510375860203639011274559437693810856942270457991720861665149163943495325361140465741053536117201407477397225694735685193326977849239222474314211474853094692283525060877765665230533012357029462362175064322742914359952066337241601206581343309733636116576599301642532917094569587286419765656876281674547279042365698410416581331009475701318433105206325349318929228294872866283503831391441185420588876269406759823416474416729875905743238011683496570542037486336281837618350992646034383109892190788812056504510548246799467572651442681873346669604472739382639243740827802439952776740886167157319296701547821997699378237147517151638594870204194624604462732716072862283324672414505844265011847465674441873100438891611379294280509844544930382890649891080707198164780848932986202294624094914422272849182406010374823789631972363738457478147452222745486855105423192077050791613187039242621556887714301977314490045520172247957445249559439386763820777463184184785323303500894049877921157419688722694243596086557298479107009608081852928447874117278956422290629201172344644824236279340051837509673181422418754842854065804839511466211813566680834389540830358494272211886524030891946696547210407748255973697837555488273987026825388238728575600689539559130415927755221825050083316106739427474381972930142274016360065154829119595259938026078256139385170092027978351623228926776176089975406447772773566923714822481438052823982137233018239317892461109552048836038060536698408660165809769604812851403370010375980722044957026568073235812297899261766674489131530631446548795455053522343269548178777121918074960220424376696504260108306721270096494718611062301729297325755257459562225589590568188268361762614292543271791821422872246639783898171441017429830327724300679809314471066698550915769026317621917560476522701965559439731196739204094843038727457339298695527745191476639984661326228696904845130850854215736425137346216457638951210139308499953406004552953530713382453626333453129970157277643629937663558211446701509092761936188991960276664410180031038538993691586378767196400365329843387502609560297498849193705760065856334545006211629489803388543727510316024940976612157546753010813880539703840188362654151114348119672478262076767644842112293991158932173743590891765386551902916122905055170067603784319448914020807265434552717265363167282045792252667386533407669804326535291762003683591882050282487367430222742255815505226356151471185336883703939269824578867716110119491281020053521043600392263833155491096550896068204365995938097433101196336467042884429877735378142906787299439492805722742009924074449583834620493860191593496304762503567108178260032956011635353630665591634481276245889212885670680401091141147274326768492004074121935047319202711955323775980581751558772647021502231930272634090205190511521403938620707314399520118223834121994849794882443516629569776122041345189545110673834303720816651322455692449046758160242418085574718489308419673565891287757738687832079235168115109668804127078120086379429614281979110250033268467991383065381910092051251317433155940691135660674612877651527783614730314941092537348512751921403746548983491734215609333644321053223362640658994246326663731221508619204754543801790149697601455582883438343944104892968896575505720913245030908367109799095375344731522830442176811139650031129728219792761028673198835993022810221534225458600492010727969981568058348209244313057752879815048655260232715064296533803867318099762602736544348981084068411839188921804781099680445773367876361081168166835185829088683870681172495910775828978162568150845871540892887071979444139105388286268690104432906096650765600879474984010843081134940356804854938088877307736923708100042490163121862979097466230370823932311600002051497496097814518349631459124313165002257060973631339747303843736881813290699134722478608022411858873954374041012602241629045740346149799249221341692527635871371621184354829262034119308221709202217607358754380578767705616682870267040281167239382091739633951726420102204351380839801999790242325094062408265408730978290634832200463506871276868508756412764021246555348493723345056601176109176441626216872877593358267450375651151194016637935596155159106206113937631316464577683461135204867656075984860161586458021586867385743562795348507076842626094848263429041674459213946037273052209509727600614533235582073185619751675047647580915244473749789755858974184639698498427108677359881064610067060695998765732027784397660505900161714746667514864310287240481774599531904782099687214876111544906003970145217145801959206907934203709843932297286766864118209155940191546901113533554471254006446307741218396966787263049876201024414121880907676686865188611198105962855775210220088755672505322626359757483232970601799105791623357957413653975819015573198485370412258127997294280577952745177494922777366648956492936628352297052939960765053816174427982774641418851251083877512819074104636410798867708506541547675072747187626485536874534451535464968912788191428439735620346476744852804768226885638430356409795923489890418501491382614201513150844551235130348755704453181238271627008518707302721706686853651521319887905760308053547915502396106868756137475912630310418892441725771353583524935619215549583974818050857356238998563279953793174998006994948329836107887309515550451032330850563789203957051859285531022107152319930065284534716735645000706640191522410977452393147294525721412250052615738924297980107665488129140748877054563505678047748715053297549356189234965672775365142513741874248168567437469336926486840633532282445333836012911606853379799320054822240270965218140265817251710699792794403253092569518388721061538568951422607146037897051514500972560511420314148401079403923439340448936322291115595007013004642050182610914643962817672804444714349998092149039652212203211661834559083425277643917696486619258963323985682398378020091793363644867611533772060473725535984724964028439402985506259708765933010924144323271725373023276449176329152497434481204964382449719166486787922603583246951001921993021292733816426563666629670856746110416389364954248844186362221979020206345725349037939828004411541515942785872940379896164954789101093363940957188757043815389889971539549029052776661087661870628841791220936114183038746625817361133215409644573402647793287377176634031815220384116204296659149010457438999287987479924127524321397581441887739229751518001024381302535671131160520689041579222745082429813455270310196119015273584239043957127701856758181725289898163295996538303375078585311094042771324318451121450698650888578099266125486204243029434624985283579932424874185998769404033561630734044211071393224859103616845526604305626867819306309197476528597819988796403789421561386000895394095019548759583907500065188272819748848385587259619067012087349077420945887504191257188862114281548775150571973890860299868724046105805288690214030796479443110237615137703582784885029091237356999507166865632321959116714040431806863096428610679874555379527482752774623340256794108113377390933556305610888779536616303037727828300186355006187937128228811766712820100013278666948903337634427957201200893701887548119445739559250038671430336710462087864502878237041875987183243132273637680709147806402435057873297891016004639933289269288745105112899821728667244750211775664270128709987844755938445131323384796505732096238786532432786289013695839647060154887845291993649065483449999016981552489456029488998348021818877071107534410149593343110991160149780168620416272544385335591976474709512772056182469471944688036390932825975350540086615139412250468334145825025894782926414772473595469108251398281790392349649083978372725307018203586632151161497345749131537457951031514070626983703426610240640592045067275567767932260715473833998235261568781006336029085961402335396700817070966173759686113260730488764985421699758047149897457022017998179444431112506319915850009090537130660876569102051530260979294643283772127591117853967305058830986993204017027967632689818616710111233298439246580860022022333575637876791868726051558012045115453500390406500143025062059540294308338367058139985897134854212743801175009490102031794116899654217747706100624250199413312610300156801511195319832560027972524893962734036625861115821565648608942504824515904910629232096201355635605392309388174563810175307402431289295703771217661139214379391123361875268773096523921129578922017618105421651183890134677994078314767022199973824254827164775499584585214778520383897469258445501883042872926659525189162314889743161067710807567751944545838156135754764444120672209053342589916485049590027987967029740733262656070775613833824024196319216140072724984459827461616992147004775590002621756219355005387780031317287001348056485394509050302377500278053996034691716161444935165523335732613257825038856486262218613785124842911351830430433889962075706124306970495542890375449171197206558865388718486509141991840082810569864901040689411020666381853957824882695281287482937731246661047535777882385354143139609233089790115457541322013956129266036827834562201270571882841337304821985949473845729531789126310461437880528134981374808953994152582227418557711162023366586750215749315703307238918846565976120584776640854501092525045748404769341078604485822775421123427209776589777084303064685399118305222849292587322452925481974732982629035062521558710470215609418373962812897581231771612987541005620856810959197340027625874067319586850260735046387523636713657720309343931653829628041943042355407705658389133333972307394329708586804352513821447279309989632637607436948664773579221550744459067346293009702144616847973634276378711486928734469496794304790984343979931997569559122877205465376787659625231130896275724669331863937656566448095984504071654002195444462642796173824156172060428627703019008082930052069645146331572667357362467737526958826655397960432316783977495123997025559641653284942857386269062976967864018538664009059783702635012505023718140725477404177375333660052159865630939967003064346112911482409975186848962215334316111633098179164043737419375321621409591067899340840424076019383425710550518923054336308512630109280131727591449669034850598811917803694122364130262547730851499452132227249909942041379810032153247266035300447524870245576955837592484034345826940033188000973886253812702383046447089443803491317401938117924783839154132925862686362963289055909322774134716275993172235766220112097679923706771109423135712578790425677684656891462721386823470650527113198948701823430973105832807990422836715502314640719017433867543539466995415410966531769452556239514521925833095607359950356759788023512173727720148180299436550130244824110898060062908303203672824426015039931335825723510392231873985836922682690410033413914044600449384698796476471471454041549487473229553751113254596748174604554118120027716306596399864832596508850414636413869891960014827509516232599413188473430026723789437466220291961398715816138073367836800601062828221113839027720637557861647933980307532319612822191518819347568966989024676014092431499997840957554451081011783250343367491867364624752555569687285804665301089142047877826538239953381970329308925821907964332825740373777932075002887485242046168734243297776025934586201048589020741933280012588164059617712426722833160343942769882820427190487692946497800986085826109068898408108162640687158103865834107580213839881769170328732228389020999969512927045645440821610813056353436252778112327470911799888988429382610579720864832327773295481813566348638164374789412514837030104420832237733232455440870166945555988085957644697138785144508999106822593384846057433575344031951563454272948112954187526055027627375387091982657553778331339134892525675671583043997724212370209172391580861178883350341242203631879947229862264918882726635430498594757475726951884714710549819427756104614267544351813369954161191593222129182669777605095312436358108667750544951951572519530592850930372441138010321700616446539879822351492676386610597897906866289161658292269183407322331125796577908049189932657134427798356803949666512345757777697138800396810079735897968768719251213163682368540803956871345477224250808435316852780487612668937167528137129270817007682599444383487913268318506967434045853814340887596688292113344008208424868850131108058412138446856689981863894769675216882045756983330375440844193442363037780703024608524384987681606554679284801383316183104754465634348608144626775467286730155121178717426249666567837373960061309767059603269626812548409937549241670785403366147218256213263982077790511644327140943411359278932360995321159716156955450378153466668449972174211534041707334830999867061466311916241183801567587484274654218377857523818570633489366954932666281855815213868549686755035667092366010468273791851110963932851121212672594564095720904327293909527079061772699197660501016524431380725893138620864647872611764193065040124691383899212646910682287584294367556059308145763187492265173965217202577202588375474703954300289291615051504541223847594136479444575671374669377835141799066166853442149623196240186175730892318336106401291499654541599456868614632314778404601602777692405939545697812817412288212171404627512043600973758779735097988707255809435656930769644629452458085545732808780781820256913530576947191460991424299521297434782346570698878948073813907448779880419395163401650724658373280739383106310803461388851394410766911260018251917884646074392243894913180431702689306936296739808290284510530583377460549117319494822755110513845344956636448925234807098866121955458525121372198112987586718753165104541122900994273443311147042320260527352976408667916476265989510170983950643814426798064118680783616535276741065420516497658983788059763740585877190742167905517768147190855302213142175870916760097734894637416945916185075208679264776417794257743660559584267439533514896006078100780919280733117599698096819539565233347643554010891845653010352343388084657239257857125549832893192435761599401167184163182381502340644599420103522826360394326637826124023801634303866528460908569707308933602038750139858903443716147875004090269082351118016606335310215263125650544035289599790993305564577875286871721519045765235324397218740339202041179872123879320836194573566754884435376352817075454241940932960979495745861168229582931531969382343193479236031000575872012113805150153846069923895029643217994612050907537455460278954080132185300424203744959205631401008258969070650414813521825582968532117283891761053955524122253837309641189130693072787084220120860044927792886289544997666657136812468001851801097341250841880673935996339767428551148073809729209694305535585826860988305924007377813446365597141678042626728044047725521356200851793326850422762939853672227622805784433428670833891770468514188682546835183928554832621920160923142842182412938789091339963233202567313618413747534130867482330827928226534779644596506093525662920558761353500346501614617287189062718121526634438377858647552669715499146630844780562294435461543955075364405627432906535211327682159761490211764852806599793270195556005527928592967415738760431016131923488339473999806833171803684039567707490703282841186751266964064710107848754893870782450147565123688679037213492622219792911328146791989158324979833974968571097916120485162336420737017213439266510785579109924172581508012136752251077713650253981236237191020754701560340479881177104582961889163665195991460979144982155384157942102118398110886306673438472495818887903355090602433578881439740549763952778862721157000144984054417276932171888553456361797077210670155592113978850721200792883645591559257869772951459310128221384713319676099733309398744670022541340933895906887885175482123471579687664679751569821274465965089826398616719712285928513137775784702300769260265938983414347068384159621395291364003425861013260658564266316685565189033005603724000507221195139459583059848370260063690615265209264022583857590909688679437974589886624789540088156058244589156644056975779981572874850108582876952117465393881299908423684328317977651646500309624971888820656282681365994230372748298213427805077498509923056380699448098061626734408963021731392778692372892742366258305425154658069049977208034706725666532405825807528417555458940735600331517863627504232946394942485361990377867545567855354424081509512449431715363582941403879760344593640963712416371592487588169699597062926885328544301599379763195641855380056430495638768892094127315426937790809943310781940760657761159934764612521083171784487509325330844051455084779676704960980399212718640820919133283254585249465636919839097489761218261850480497302448796523662057666642657827630432282234765943091917024360152624942279286585497121700947542877813412066516595263669366756340815458384885968783627237054514005730606247380461638568898660266213782856910419965355677882633595968742645618696639802960587510489355818140989747596712470120634479169629833885804409323002471772009502888634325501591300642620217270216039655282229453865211292071784157781150241925711544476085837774587140622788130066161258182792907155747473890404576678993556054654550146894851808604175350532897021859589519172279641466961396714309637457070264434081242094942172139050280668354853084179781269117259368572387668325242936617612479512486627759685218257058775480247524118206732802149024422378486246733522672125595035620779157960878976527258197752213991131391885733294572333880757429694432970053397745648768553166922767260656228933819830260921299596740275653087860990118379739566819458446708277491026272579754364398834543165339192293082693026847340083962843567980455370919457005563670732123231618428164554340827168887523278965579739256825013892330275023428464297499679324394864255729166039225280776061328270903583814784979262745398788229847320546136501143729245645724876895732275379724232976080631161632744231255988742530297804821434459576001813426180525213426596380728249059163680423370852812438580719378705678614758707289645989538514275897867407269162825639322050102370754519576955148699195650622640543434988401320061891151881008433947557423770469515976329843745111093263496179482093785342047599844544803984399938773772891908136720361151647814491628135608056154202853990110077468279358646338074769499013481972619058310824815273254572370266584686971351122748594807087324599362322362319286503945889425646541155714686272106572861420934412766512148473368277800424761777969499599157709063843120819978218149265627295928601254718201684389983108014502608464049438819958238645360315576746954683575947270772529704042301795242546234575450090655076942356380515537599084133840110923084298861739585074144663353945052844827171278182378393369003627954016322865855461699170547042003373814756072345091346880423258587625561177865435578289827260303659224630038470444996729929515634612826054584560594968594754155115652264208311189960693696312509854805895662313747695213245043050648724647060996854743976964406018974566461099978202657304260957664431915908344377416833822139005150388094288445259568553689380245796627528292952285140079819158413646456545111100216950637473626898804282418312505468277958097366667221494359681485865526330806792154737091978037422829548031990141370377874146273625051784703359730438230523933035289356265862192822584656653321281972953551731475065832184207502216530378962995749495764346093832041212692211785155744090594903230929131844524096796095549763616763176221092598774505344014286897784857404953083674925211071434715321198027147524722808672514048928838868949719696781433163239026909252978992223823847876800242556748653335546080301372110103274199069237792896853929359224183593215020471480233908412405163581047715705277681741080998585026666626155016852349592837286934330413031114515859158396149287725045302897882069219116577007953405370280224147550057307542601954329591865854316860507701192088526342955459258826643101158967666187911891440409647823738364530271301291392173196542655168074014403704045500210918825396500430551470382926380177286752439679289236598375856097847721348634278963899142533522684971987517111276171571844560181625416514566542158352057121640562444296772174994475750438347480321553918252071905402585539811325449336003396590850226127634645603785257473729960165138357757369974471437316692960788315360417098236864374419848195055949816287799310984688752775281975624548171884183532329049763609389675154026961544242750632828421622810366577401552678997545280083508719361443930912746345481185833703590566622527672257317152301916882685358757374025405713608473452026012937170438906562187273332477162525872107693333653125066733465498568757006158028929997705372559691120474018289026864969522534546785917618696626313817477346054102542983942462767711812051155836048805448347276003824342633265334778121490362251073360384924768707415380976865990554238359869647191658663320428669840809758751673222537590086722327197857941898841328889251130400180262312164889871725934873257747726082196386910711414766234139810820036491080273618141522112095206960976819639831420059324263783657315506052049230333931709877837058563452030863010506764155034136955345302530911655765177158582029249839041758404623341904135355143184322198631783311715382397981870353849869997124238879217200739247497174974802602149741858721629413654146295000641243918166068030206791318466779925687467301876893512716971740108737655317198077063809056622340463363921985926331506994942952708381546744574337356257280351125118599844601387308306216997472511089629520416900345409679083302076428233142530828769383992905976538457559315942633548029293725511248622262859594324596832349403518913717101326643143488946356978919101932069508765270691573084708832241122207099723704226486850296234521960671251933908575484153714643227209101917352054059079853056498414286434900963884376492703381976300828591206844448214680862977096095563692602810007705520824989857623393110528824847569860096757889822273630325591909686823297275463635302953444236601995396176532661871616488685152875823338636225480816811999549521488260189082643628838461575905989731349326531484566809944859197247667218547610196723549518291728507653549693643952757681606391009065766390965700677726296258836962264059001500357534684938673259086004624125322456672845201672769845557687650525796199802041281815442515234601868409967459252917618895612344269621021897297049041289466433249159045219997306971924634099711576962151809606291646267453783613544412602113990851612299720875107549372865618510376269466463941549040320867137036112579393132473903872683510244432195848840726494759697860912352520302617171128308721679181875525082002788341587803779139390100707240286801946320959568617018194464388510637316068129901483284688411147936008515997970320101209423813335064123156739160196193376113296908061851792084416836054550363848800852152112969670788030727275013789561849089384172554546771996253842037448169651592781123972641994752057882515845220362896314417968832465641812746026387318611958337662092199754596654724529746412800387162052765090674901781286713182757701467075373035474356959070112824616319033709136847315004014186058516184975279109097941060844654996668493848338984981849389204280110047810673327066876657741583437890206625645159143210934119547056535676539462028590272407112350044772293675477268722495385197909065884852330563168788295814372749803975101038006952337754889181478706095290244888257094809283681706470410447089067535722941536559551424756944100317016871399282519213456312388294172065594468552168332400063892546167693247355766598231147238738820845743327686406880572874897415642593548093484352922719766699711816850532382230337445789876322254934874212545298537009888315681672660231960556163788610177434882864974571964181232839365182828603486480772217628875751291516546374062582412524965787128780099345781742748118853762912470327887078576351876714512374354262971699208704818667922865909813544265297542426052764763466224144871105476871539956437266274491500191156741380045922418941832066673846024399660825659860417257134061972145467632473944257672586642542013587446889937100787905142970729405690044920727207061283919981691569092269762959774150778809837003306172168897019582284594212116773643639997912773285236159109243843243015784754234466878350198693887249815640322430528457587080119355284991553133924377329690337674374185497261000021596639686121161283250119084359728696794058562402223215183730089662794706439497420064785700864001956260731350251796372881521808444315438353448209830206092778555815284429369876577638378731997932892999311948289041898270939998378668014450854090461673968615429737274855382251431730688393737257587554654752124060043634072443703101553850313666436009608024036521372305478352193538126153254216155315584306032405691839890308091816777298361559516296848889034105457908768894074917173154982375803332468155641959137685176167179216135236384299208282961787949596086154060568402605390276718823528371979832607974339262309342804224668248200911836519479594960780060865946233268472191094481430626434210256194240453305095222089164347916074572465312922332411703845365836714994139359414109614316894846638730549026303468191230398126047349732985822888586913189812178279447072704632711635503176072107821968148031554916999213148571802593602513938923133795439516347323724641388961674149136292123279644563232883148248168950419478124285893818887233013596777468563979232505459664257360691536819658903903261917084125674180176493721158471876241229344207186306870344934522749155323478566951274198350035192232380157039749947767407471198256228679516683050760896603931076630715235963241221177276132237035606034869915366195462490297054710734486393097583892299337754045523984944612691840832079948451836094582321084199016997443148379567234517319096968823764565675744404965813676246988421007499523067119674728986611794246654907604841546026624953139528352918724062066259473750964847264331473065921297565778870757653056325302785697810345655703561314528556423471538532697241341774334546435106928120963676057576419340044467452907751791909219831815064082914121540099139298261539965815832195782222723713957142417885796694135193878628386283918093221268517345537063569628849289750552837510416912401289579788983548538469691729095422063102334414125157511842797111286541156927018083691543317825973164086864938990796621138869285115652642827739641282237247158492486206396828235356913015880105600421264254678469762227859868750392223829231723592375428415626670234085960976241457852597784364750840003633719016908945219454965228390845464311604712533053785450941748890275742497803134388514698160051917591861195553097091639949107084393462747160501955839726476615006440802733857371723350639077969609583379951003885065895551159540461669708051294999970552076810105662804991848219753125332231160866258191575969149682456912810353271763242508314130514389298926453848615145169789399154643900743514960342158035936547880582313272141549885570717075896563909235773498460270780640954730516661224080954224040654703136575985082196705883421473154692500544006800592877568108962814962375309898260199058034955260959610251668551790786736960685095690765193158513899363242409693766289762031518566426285805959039915148880801405794064441481140926277641023706763421953205337408076867963451947237826394976651283030387907286771859106763322544111625328060070637099986289236167528597419513093332615062283579028907266618383104117271654418918906441530781658267657236512792341985044160349686217408988621646425274120195979168446381723310375970019071168135541228955643105223172131423748576343099110598215444268393243879554009245127764907937805810883292440968256950387475562581478753076216781793531249979604575656389489978389141999219843507789069861099358538849506339810751179960237025041666485947022987313243985973258683404553028604516215801325744510535784507870303347399524236482617436472413378335555277310419977149152896392181891425148043389259734447273499933011506821641106346123037699781273444309731692407247669649358691972031529010825266425652401736130406374482147415032174738442741284760511818820273499838081288289300412963555050065383903107593907630364529621031166423471727115062237702022929187213439091990878169909111095462737094926654336019820880893377104952670967694075372265235880792081898682081436117557480793732486695540409031488507677790676614100277622993182443747197896392828533752475970590408938957386878091500315184330247026852492450871312297460289552166863987058783734626526311868033916436585129380160835440981046185669035382662766912098482569552430129581453478812048950792991102612065025570945481085731650737061946542501310567555174118468773908673467074100987946787166810332128833016186280252213122936944006938467733557380898602385074394501986649851358241086870625491638670831861967987037124795046829650420764004779886902661843217201462339680098791133049769153707695863400619985235159239646849504035026350434970876466222193026569119718129782353353103050318887052477708095732074222611680533238245231423443877449717251864213022804706335336819058150382620122368622318825816248693851952181690014740838012309644575764843130236261112683688120373552763445287735340822297562765332084719653702282548665456509914052824290641688758533651222049070787659591023472125978331725751177241383503406621961307719989842323386058420747317534947635616238239919244647588896703500855560547941449409835458916411987110229474075030359482810476038138325022782948150532888244581261953917386796690990418138137491425024607621583507519030795310817430628312845476576051978711005869440661941163940551781426944603762984827124859899450488194957940798399832966235516743675112650503169090297674680112692175579240791467523091015564513495688543660266404642271906288442292845743410501376114553394356994647408316792606722811223030958610410336557463173171397762886148943397657262330922655081108094480179378795828343337975212431347927657225993410990160351696121548821185094139730359834815850334239875893330756372746083072525945678599399404415017200918413700051398592426183957174301664980916087738113926409709874144704301745884804365864456300827352311936551867711501527675744975701683883427533325391431568329794745583281782491815045533767364030024337381967300236747968770461367151142696571599160491211692705078690081503582005823773341368546690330837405879637667351372420509674358234868649615574477596238475407842357573418745641366835092694700383148075514682202245206982987942012247671739459906156039332618694977174673531815036369631106566419879486100685192364181115204461003909906586077359195427706699646864603588069246906426782073907810031565798249116944290155611967422153439507444994267989772714675826685681263421233385893818436756130344042248582330278197807443714787194911720458508354411397413896097746482065896620831221046344212015331615041163617991347583555277800406564570565400700977495362030976530805526484639780262813574009116300637263783389182245605874202924679012757378596237033768978994904580599827134196781648845025864419435457507341494946998403015814710871845227924036873587304794309537562852984681430826289166721821718701974640823370761341430463968201525685165535534776050909469736045076992242944419602019073699358886640707094934351497697435778712127823861204957874390542123142257488535057206889478333848392182698089141099432998588251932729647379919102670499587559693302195192509535865558490926143332717093221834486249563044533151712376730205172608371464817384279782745449621485880268888347941441245701783149436544457247594841261184374152749011265033641434833576296814838187760710947513145052999143914956217342891782265493101945446269754289196894000347278459757910067241388407719975228085471190730538437077997445282613007572175990121282044811302516068202192152577872146838986924632248847148552530179754094750374266383381534783161892266076807918621815825917282969112786984770774192790033398492907567732993695149026381938285996395009781882174614023375192718866461211896913398742345100189632473511708932978697228445766595238524295956244066558889003421623222358710582676564466077272169780209362237152322376560536877982990688843858157018676392867303016458399526564031973334599619326709401530241954489463861407981186278056046830780891529821109466279248031775864464181105964599805153800569808599422428574797501508480241858713427818300156201617794965648733041207861199114759113289234327013689287039194161605898807375723894183543511195970803702230726297681641522259901641978990568011079051357485377498700402254740296878201021646596245179771443264276527767540232043418019121823902664470777807660522617366503197151362964623488161161271287161874117033599953589462242334936748784580936008920029624489625291388611637400737468451876441087964264863231199413246137467016014857398066566356366028796161960733823758272793114218245903178276225104151089445226344909938676734636014228816748685357407343423841592825980997984870077041151556303098230885320485994351265614469920108366742285465546028034091168884613830284525150416340503583831276664683414279969485928903054620217114998023581573887529762538474403811503763841792359154591526242333820162712203150535809819270030991956926282892558563181496814927699736559752289698123303551732933266878596565160991009047341371962146962322959074184257001871184861363095134355360779264459216908179485530997528772580007342155966109749572607478762858594395124530690801485521044349093969417621584592065682517581295221484579210317464654397059652685621503004075230414793834420389117039457057292842582068267968619794561871102765812206827920603048357111012294684898094005191074444701120736582610995567949226644088986078915379864744089257975125613593331112644530413935403762693558280237360537981017013418860855132595032939147846571798665745618108863562455119670460626468158469602806632368817953220339566677272939300661176909693094590758909396642405008305589739849133796155707009540366858876854756989745936751622221499506963504204000474230287260053945515144200885390734795263218670998312649255611349506823902108312464144394724453545049390588103159417503995457056150136846143244419670004892640869997066956709253605343213320966329444471634483434131050433956737419584135419944585333972723736312567855387931201739414635108476517680870362725626247052651178611460066818289451187073347794014040665665498606389526618340412168020886679427854996973029220535285397818157904211854893732778690699363707629018344413443904481892677891337546603213516910524380880875008087515780010641976481492543489956859927430881291114388750485812374738180627973936973087972422362773025942582931118307591053721429256558964464650211680926686896940101124488085306639061879120787359182855903281323836754442682875856901610501830431589999041974303452015150699182723839144274190915835600681620268218688653398021889008533728367245702203730287041455059213517845508351394908097868351316525013042521230347714737362592073452364731093845324041485100309084761643687367535347190609377162082570201862663507668880762607856310680870582145385339323139924384366318951154748371334483383948170685397539011446385142736377804077750635135854119379128311830776280335037734602036508869546547093670753998213720779182778514234859088734635078001375427809180506430354915717947496180675787034361090702662429660548009260526485282395349654364185389867741246111522956449704427822834968791972538457020263885194775478293619625947622003248007028706747854102077890584745378368643267241168596149628867265538989044521590835085319525719244590581363959787773956530750444664514444185325068804706353994663082098448511014843060409155287735589386309847355662382445948199426832747520749396504221653005625999912502486725264958591776068590468940289632832104412311182059507679840201235066124425452706606425259838051584219663215701051067985789412459733919457959153089759706188814513046648101880824165730260093866687324828111478247168289106296983043159263573147341446488783945089739328946606975561601242705120851340919992044219508052954011780683252102485091068072639988557878921787259987375985516147775745665458912464852771766342730390064418968926585341547633560908632559138186653265517768832413163413781408108938030544555207500612507269226276439023462259262945501438576245788799662559917401333306899407925350825299244742426891228905720051565750044361053659703811536296766389573664828785825724262105473074743419274214088964545139444988698935918416148485354566665997791166881437049750689217605750277698750471658897198898737155425628177468098146158692545894347211293321991909596367877204011391204991429319271035202437159895447109161403476079754206996382060297934171420470139339036947286775581612148028379298033574932433179389459722533284239586801019227161234510096865888718021428241934875824509546714479920586359363600191032033212528880333146305710442707871099371069945682616339564044276702109627265655176048502868569682625014831062332187530910441680254461392368942653138655501868457090074807517478268407957344620165706690207170869165380404444006661750469665924171357413599296788958788962803753981941472002035315689379439301270067860157662701309720281694040283446106751939776748044303209214890948650648207965842161822173876048686764499231167857761771658382264109546679844495747745616394462537185132027323529561148148488427156925451217076960066739885785926463631127967204947029282905544378598558131511301944426360311638355080954465713175201570462190047583614280973025862484140317364329389062910938233338473545934661573511162437617604439756738362010172135085820920615395054467020129446739897164055298871645857370291795095874142741898210817437270738395607577535108923391884199215381016410970899600412878954847356728494276828979698725296615386625230845101909784535719882219698171162684787993987447248112566813782759189042779420606504367243402456672621699329095049301550318290259791825454136244774281332727805686749885072555104558822708128073488159785569587916722886887771668147205288756737242519879783527050652164955578213359945310330961083718116752097480731144256335367495091434858536819511053481259887711888462815777161189750302615886276986829645711517354069908206551303311474037702747884795811524010518348379680603161545993064820766228917812145236887321227493816013663615870883959868889581078855812235620630711767685910220090637626695493333500366904576566041354477423772877264275092493541668838128565880156564857954427518682177370235790097311606589688007416833419499365993402846139153809828048699498908703641402379215803403134700279511772493714315061030957059864662255634675047270971032133807445356888099910558864105073880192880393351250550210394365911629312883550144545776997281918381080316221038647976615488158517505201335056421216490143462466585783635038006383458487164346381374098751847372944914902269565032331080988103449448021242633724153016268623525084114802551924339614399520008534439593145625354059959359313062604695863390382895246891854647300316346481863660407268262473753317188092586830281407164378718321905570301277441165949237875577219456347471370916105877850859657906579148063952166075272720151460368654001301376662693550381060517975018309685678702322487717877641993198652854265583794078476235729465288532534101451695137124904342726183211947678752218371688730285448883746105127383186237882640362419051372207092913869721985352101994468550447670521565350603522735969630794402596372628566468509236269964433130258387220107918652523065577410200399921102635071171161824326002641468564279492196434483208084648127132860534098324117816600983075549992618418518696935180687232652634242024226037948696823440993196785500422378581572083432236281082436817336592917649630073842145308783905405652446618890348015573901084776993005396282621005209055486044855164786069815197526953023251810687339722257353087280341372385329243300336498785263932909626180159277176890288603229352724937739108390248475674033085323268790163321726298143843053881554685207211067297277133504928037676976379249612027417027466945358474165058660874881723919579500571763303772184312405618281288336842243300230110174623305910127125743221344366386728030973217141353937342014735767618753769587598104629639609296585421010446629787948836737980816400365663822777870750603472957535720476788684177029048919139555124673244038296624340563265361438055904517026348373103583226120499501667068745176294760423216123304161794464559032687800955922341575379602776740196622890658431229752105425808733138357439614434654532676717199826576184152120471153421440683201437098058114108702800710831557639965242895275371647182810365965928805110581842601575813218364479330505573362663152604827506224494935464171197722007136254901559292150451221013537077525778864979789311893944194666868301632210559056296289399196584241835963594796453123019512181421030061727249843434610766053091173931072192533832674154828487935249875948816433467614659301736295871039313835080308933766787330537750661309616671406759399004935486938872911146428667653685725506604294021941317486494722634480071834174678766319099191753869081287332427359650975483650794611533499745339117648616093042641893684323490110853695264381813045916330744250638213935737133679821077772832039701700962204136524554684223929903185302333565704657819588852731609425513176657988497096539912335281975016115949607676701202228267790882919185934697820805413088586479211949476443765366821004981962548239907352603869157319563305171338209191941048153742157545054587785755484575985013505700674197892142806067055129753459333689372907428998799253875719534966034870334966403594482746951864841591292431018483835433773094216708682790200322786579050144695568396892268622836918993992489689091092277415204396024184841010540368960246189730745401055874372813518172866336877516212547255964096038054881306283553101726552578086129451506442095640300731132415649426143621626533730087377819297468157571580164350308299187995913609258050731336290657452213013820022625212582816910835725931612846793680426797225040195514973746510750290269847656714546885812481226137642995203981281154314698070535313592265150953650768351859705896653762295806275155634902480590776264979715557067937009597657525634682430697466725207521001234303660368846049781599272116689902416480857492634892284882745690849865251727469803038695025309893549263697720200815444462635158392802528612295678918758688667217794912252013942548562356790566088733055630662355107373250333401357622313466228272451761127310709933513202042223629143903212234764262784918155757707077626700122499533476725552071090656830503544966195840323088662910512737094475024414608239574615160967918336333810837983178857693925831740547177213388946204828608568043203123156178471254991271445464660143763545752165195464505508075493642042691447546429619771673551578014131165317956020876704779358322510041921253118919859023495818586445666261534497933661780065502259210627750708963870397103367313264606330359811214666542731730518189374102110732392203180514224406505885769435407375574334537492599837097356348289085122552089360783994807088364877509679442666903208274372899541345975311613595671147782970419502113136990164983200920057161830495897802677639013287377849904716937369766263995114955914286822707841504916782342822973739124376651834540490586065266683700254715271543198753619903511380728265359648957606541186234179582247371713052706119881306800442297922123180590818589025065570213411716464389242294172731956741401250799720696311395423529783006257185415854830331037266263520166366199458414869174122295211464773119282534293098196693284825450781184714017785684324584701866699300088421209122406091058489544241007837178863580047786953326061827029624097346390748640302273743887177805436431482403616569626718418795063462930368184794331785659148104318177275242949845459229799910369172173820253778112647560328772628032539069381429005496160144108292347429355365386339714462816720695982153139008081591458146273194184333972814059821015290669012491907302631317031829758144862716643015859826541699635867872687404388945304212733704585327535974314422787679116825233146861062801569999169265985617440374037210496527994625112954622069675478655704900442386367574410206458930067408329290820326991511661193664322645468080293146849071468341557882946397598633255558755597057369366109990450472651737165750878515785085669017908414001269011175997268109392503552451353841385896852909924968834466991954365173548302442421952980952821749923185301524373600042268265355498320897304670024841801981249405170304303338944571711445763765913305353870282986021317399504640854966753758268391035873421649417884644803745937138094493198624104862785035049101546362047954767983227378023809820369597336620951430066055586010979002281720034324342579370701582536854184273563373692037623934686169981520309378408154535112272921388566675589277979601075887777365220401713663308821374781605058831057693754679254637547469104497240620526678240520400938871338178539106792549194568390779879988700659738687207460731997815231614930982924378926251827472909355158645712348745439498624440642200166728451706569657555788452243870340705602943314877938640072963443671032981878816553179867484935062163563368292586552846622981453939706455239263482839503523834173273761355191953383008192552345128371932079410702567151474559176946622118184958707483338692502593005091624345041519579530808179672335958977084756790497428535905517375259476127710018206354727235840873044594500143071990401552337661530663306354655383054148885231170457758617084802298256780591721797760199478660724702182918158751567055129308079169672567052892891322933631172534193039340843977681497696389395769500912975123893747036254132762012041852520539665697271736725733203544462796660360253813624578925901480861163073300728589360618479048744247800187861229709737870429104704340157663239359950820768324428494727279273270402450174334877740114783925162410910779810566537604724408798817989704875395350773137066034760342477743007255614875402533186494383740910538266027158224022547229855679841013436024393776524613182335506090789709548174446732156573488588665167288341876440185508303728023011895138689183073122476382543185620850747289859399021707383420183179856674245620000997645768494259823783915999657584846969638054698136698128657533160161692483654338323571399880913869774987929445563375940230544199017665976463356447586460557839592352349688001940646680592294324184445432282312959644986324561612758977885776873480574401008417686894204174808091647262184735421434639164684007546835265042969517442949057042781710618033144303176557449363497692182378861884490130383828265833666268918491127439379335958811124509719559099973210149758937863841445988815585080740102501213544576209169340153207145937477583450516387856278259526275211209018187432168464509836633149080112353964646819341840670235872834805105798079234800697789816449882603862337246486788057440218012514294227091164446937954655143279788255256217914351512891882372023879295826714195239102432330556585293448621906486818066938527902529606314433890848005775859013575277633422502373416281241648164920390386189870628117195587270646425442171450819934902121898095593361872227962197805967869597897163069207570137302872803859209755651007151233200803391922829355411356312731067706001182174856324320418164409281935201795749364170217568048871750960721435112261153934619939392801806721176747653855031344931051988244892191589469801533971410883930688283388503221600246823814588158161998111657814066563654481929654231200274317638300924502749045496683057215623198692535672319772012317918095083685394821068456143114111913499202815791467965772392429993499729428428241657694908484171283826289835602360816208131840282479155843607227878965647553604329916922460738899411335751509665115384248251723612951423625773302964719701813425840972662658392270446196286214311399744456872594652547767409542175107335047350735033641728704618109695850040594965862708935989719650278357300349110473977147183593682012452781858117569277582527358760421354832805934656920039696737711772595600109894889655602429893096615199858646878985539693851895106446935777350996220299211211887627955968643770308387312426770485042133697910030036043191571511206628393651863372051613647738099326077368441110888578728549423903303194992014902524941476995959451110629568691187281117021841457602308161384079437338673144153192828470179108329366199528755023926106257923984928471461732426326022917006452796134105126342742927412910848810378316077204120627423587585690983546475930172336479157457017860172340474087905884485382501386609165893496687405629359499298491749601484134065753843119742606992453463054724022224598235384471762809513877546269880501874794531634392225306128237528175957319003407313974093712543409813324187786046752327210006137638631636196472752138659697939687121238640646868817510217741530065043694160478760518573169564724621731968937196730698572407375515309888515897255570495094919024155158200944467022947129693870268627907324471236829904555865592021760643663445824227106940160950696835975946604753339691186797374193397156767811598664882175117299976072614777638730874046784515768341446517720101448539981743458321200578723259978046253054183942913053515228129876985954059175595243040565240166408071450426532939366460243843873331503950329454398154300167182304331125072462550216878385372672858633240077862671517527680484046752813064169156291614865760663702114037908096664674240793862176989959577708306955437057754638190666200588337725593937997172311782489872960964488931261084011798512509805819402765260307747501276416245743134185172204163708894415672050545092410605766511297991667912897211571415713085996387086980558509929577818754427373177076969445970524841217050360994118600287163730857650848988609586029979740343485351626562964337299868073106285477636374395926448735014484636692568473030910529399850922048533052713204532211375801342279835804591488699559970473045997575098928289868800531384097340424621067303065644304406088308597851071994220294106621458301690615506524543993433922521272554384099310154490447504893292835389798142749164799780887157400850061790112988181912255480410354792111763696069690906506372513836907528630539547246366454884501543280840417221685859943439889210839402708373498274042212702807034985741493754225515680083513736110097522034428367364362238592111930385581753378839216566797806163994202975716983510068930102047032961094404838234268808819769934460835040226318640460985919219087957056276057311331194105435170139617641541773007656841710418437870199148763347452383384232572560700295227008525148406178437195089295877147094454185038897264424225993201110477704736436598015522971671880604595458669038172657878401610227675627422377832534768359270209840824018210696152677782595580232364128939639447506776219230682093179044093249340823109148569696462438550530803250640721898229812253137621296769641228518341786413757696141613460486023481717219994374898178661639405962659706899384458817889281286143358632699977044208699674450949996646314107786074097319359399726992304067093728724505835185830927764801865224863147123488578251063722283892006915880570239202710436510179371829690270148474265830999385196453790588018806163762578248168070055142766472544716762994243907390739937659971954215083572278733755787148954404504146163252782724772420950608019721535464541035358731293807955133266701965629781207123127346842677024412313478166529591134365499852571393592701947147137345499590381985885457597409369664764261260762926819797656266213560403415610322399122413490015721575004792810385493346821644131500774704104760107094491009415378565636850237897055345107236198492110891243480194472767626169128574758744420263111958056767004373973132134533599065609773308008127183952424428146484789243913509516853687743967723934069258005000250324286976618406183322967663692154085129115320444207048128026347036759646339436672871421108322214381438491684794879696094137667090342691723225197528682609381344541078383935595733581357151931904681140189962808060782762681805945494414707150840112824469095213105411354860422722849611977878234585103110061636977310576087079282085525276576002944006446983416218188820366022025591953281778059005458429242263042621440561991664368921624189716674612427856605567315941821625849931704213017641882454547740032759401226458885882526756018723165230196277487255167807700648781748986424348685900561883937665402051274680579154593151741812432565044343448184281634523613443493654041388574578100485808835288226721408199167736684716667276149239229141419017663104215092002284756901352281374183654191651207727165591371469768486995086639994170198772683617568125024420960519192285521825377127742019682515797049009404520117460202828787606849613356197320693928284975589415056310604681819684815437387434424415388545256696532278124975940699230129471661808849061017858286024477365813925338605121716054363076137004445812946199097124889924094987770308076229630336026864478130677558279906744009078726338184079460096614782179627661178319428751505066468475861500568718605286892387115766316945987238784704187006555033639198718653271186337869459430541499364415047585416900650210561089191476905947947567879872539711127871465373539195989976632426114557315850552053914038988729184782861830554454185128077371493925705592630119476606999897604654154903039922504532782915599934110750535977969755326159271030144948639881612936029963422618988197486835328917064563745536401573694943285959264793887691257155750505176729430030131559602391555687761399990979868728216409285178743496635659162884239081436701541243525902151118279170392415817088874283146550695799388389816405824153747373654623113510082876413323463802410730717558736279871129547007856214203778786716096831077704670458585334985153406226339400362934360911496101378617681089561233801664104413151230946772193710911308157728343621462964455614521776881068574216734631331722815412616240436603715655065400493625101410939357045989137320511310607141724219260476696875539396652063344603923539831557596155358628057083651261834336411313096409403963576345958657107378908124007795259566256687816731740058291528679460736008955170873503498553336870415800301988387255964960397884307365255927029374369030548064695040275201565945055958339624748637598605136503661314386992862166456069987764341334791418760859247856269388703351307932441055409688132787996479630752303109245063822119608508929875239396828480183355715155942716491046359954559601151751100412019801313155890709984757742391121142664024238936473105921024609298812066004393543966565297867190229288343015324837289516169912904827417522230505255634781938394928323532447659588588210927997222523590008384469494864806547785042791969982920911140658656392966423185358939736768154224469723114628479298894693116677242712523086317095985438128984347755050906180325095370808984585448332615226442934661869992934806571929647602032670248582593527349132665676152898653144969139429464176663458507914017253235058817119090703737061045320307823917174686343882065645537512905189769950154704956301133714843948361309902056715569033102185381975884535939770894751310096714584671623434001396236237542714993308693988518834230308604884764124577225465054690800205836812745745316303706530125932613229499433086103223312722598282145076271388507335548859004237300367006561482976868441261510447895709174341289897247123960519658027779812030261759758699645579283921034277352223071533224272276449730409584945209586744676169576802315206990844907493801825896715916045427212072432013122292421241767341863143250862702869148061203987201770313117873743879204221190873006988598834982328482423773859045036585174664790543269112287691528017910375408860732801317714094062795122853909374067430809740854544971510045994434260323657950865215232801668960089616628364351119061377831174024869257710731748407045184560026194195583594881013473472077666331987420390412163319616082494253759182896584292862048688094644829506731747518717593198318274713964858058017656989639986120061518297610811499599215758460930904017364327387594446681817213160781917608725688291413420245606024461155012972289558475794635298642722063324152442047057399835393430490535303567604661695716825216621909789074157280379570791570862421043855641370022188724899450925900453755168078192742216446349389501462750688942187010859288651275070800653891472574748603934721248663053641610196676324468834258674420017249910454208043386926016158446846905680928511982902490835101851473488331878845968464696043035672299611079613462785506639867357234740597145797458984331190874265972011726977141685139145999410131138266965843394692348878127937874520875549556033814199926504093908416412188625209995666660803470084062608340830013389632052170083704993618685700636662676719053938965457359513084728183650711177500146250954323672286895598551994643972963004471777363118111189460956629963061654601299629401087631320379049610692780130508245267125936204876541051345879782179861165433650122126168046474605342300117091644077131441645539409306008484752460739918923224805498487148092301200675078755149505403728610189695732636144773280321975464981676649817852001428867805675759674715080035664591307803594703958634896588805662882796709635407064638996612788431172931426417307739489929885015772962173752096700908472812727094164270829472511708536670225637562048458960959246437132950174106682798425523987614712443100188540752881083591066060161475192694824312659360083099305601162674325489727275595286994383505502343784771802607909815810631184235283406613548824209223123716147994149769346467598512834801572830388048816935164791563318838660777937021949763727197242360616974658063138139644354159578100759166890948407614269899100780152957223265545432029903143767091589340908556426522343836987630534436406221692005923198162120586864815833151975030365978658930980772873921074003753050641119062942222369863411700699541030151753715313278542373498521372932394715552231811142723035745702721519342922208684988496758143896419272492254662007636209493644588455352329899306573635349356729343174538312115380778274696973061321319694980122685956667188876972767722436844384542995451757562763869620101851360029920516035179113802927713816913997027000944035745094768109110739818466141547432205801176543131637237058511563037032461148360087267305974434732525885184167955721346510957919497324126062468687020787056450874827294852811780602447760809791827600101663604948401710237927521749815154789976903015090309869453519517175129662750481440684099361987590274799527199963056389292494359743907102619158319771652292008141431759785005754981316256493655684227880548299730330556195193343095633917506869321157040287327857440782865445564237491586678833744119212866048205042087824022558870944059387597661417030013314104378255612815571529827298803524448415966738921391367037958426612785016912704898614868447369434388813216933104646795961028848547325385480351456792624989915128192127667456802476370443044401087108076514546712148584130863467719565346110216624083382842564148282958568250256745984817869499332672778638487430372286505277643848167024965125078822515595789897082651666651493336539201135750769284122119779827801937167216508627236785172894045442417917683018066601122437900490182628063848509271437635245988211974420653728992110992622711294550114794423237209651339766650237723983264966370632591333319931046738722394440134568036671363109629442060695161320532127822895199469704797413869177289497287716510167402906842465837759771437162100557944166035747590320476443081453144188452037384261294769605244043458523421924320703255747529665236968536985752266114920768585545166694863000439837346168544168034720690047842497739057536076909257248754799314144283756232841037782945172433071739096380824595196739601248868558686987784303153026161110409318619780217130206654284527039658946714630018265507286973086120355683602406327169042052972746931767028321731249359971209202437020814756630027634925312396864650017915469151139561544590481196481195991892509838520575004125545354956529858991572968767673726456650999673367655840366171769394999382174023206397879831804610139168639234222189395666357778382497986163783835051389467126652893558894855456158460954417510349304246553188930011750616097648604715092489604030521774821005725040633126272391184432095922654504943557472104006747166098165621795463732738832579650836383706493979655651671982734730412609291322848562855844394391588584231662861041419333166983300417960705205149938936265976973772696985570157052851920138542339084328245270883729260754043673675168340153680891977025438132180771736888697740182250177037125694575323212002909626912643624512274818881880388568985276876588586748701334734041173245809386254403935172712845231506307477444700745280955706988106830251787069960712710563618586206014263850076844173827281942547133881455911762265533648331763348099706749311838954452885048565167455998938550363282616990359721380191117356493541361755733520435016256829552612551706667066675618866507429285621335542441805501353990926834328347290283136417111830167838180720375725770254820234144558562024360610974179230872178409874191782583765706303307321799987429097862595496697658207691032985291933807818256565494142247928081693080170408310991117762371890925324218724995323995759301816797429512076825205167675240411755400662737279681366725952742430103068001784915460727497455507545819421039655630017889350572607296415796088966023377984193653702479951446987140109154080750262248071260402072891524617363128131875700787647758783045628308598655635292485275289492996448417006932859313161426234067203799626321411025512684505254694246247042690957430652862932260100672493887033790399534681143385833251951287696003571723596420059522991553569884030656716949435468456011836460728490142646617222987977153120697586904501652203224739908261222180809358752171497855479045469547299573803486033948228132524565965677756000272917457017630186971077272693386363647759382400596879514948542657916217695411037193721630705820305735506467514811129784617440159832912966476421030016970218640791339634892504648663407702146043293213068190236430619730113333748898289632250016184129651449907231091280170962149218147879002451106420166276057159590828816743107330010229700987858299135386327128519167543221323017879283692305579935515510029464259497074328128962493492397500927205371901303344337373432538992548821970721722611040792983671534122906343179799914605601220270116731130867528340956825561665454337548321196329373164479170866616809837828614456424467506872485274787457182751787305517420252462775146736901284087937673154840433341339033773060166788262015059211302425003026259038561983298114421370419450287009441664792528936312564209693014144703000261153224382305430682284468681148754981706523457323824707330020680503108617185164946582093242316862561479544197543106642287404934303877017976689214315199937384611373763059767777005967356155333314603397420490824952918634903499797858823108978226378104594419829581057696238123339523530941394987437764377556946658206162542117198203045423145254513430665185618965109463434637443093896273104037820991089482223525401234836286224476903299555398106674526149970490967278574016029831120628870292465872361988398670267125282191694728946358645571104268481539542351992829882944926806322988019449935136865752136252180339974385698904765983943010621064498778706784520392435575317486903673776770934921840981806732799188999536942322991135342276801705933340444534193636463158740612097383919009727632320912373050037160434198565839420293232708260591054323938414333357043578884300861466636976757917694118452960514175420621732903941924055272040565052644478564548861532940157092668608697324877946497135745629895295268223923259985347684318993789062445299668184187655240292059046180561702666609344791836748345920657277172210529404876530991553533998172909891677244132333205560123385035517558926751784633023423095640652102902242447726448414379194394811427084287434263114061007042198891040024013687841837587012622454674755072199251645468336909270415302332475896559584263657887735595771434010734720194079408474120728310399679910344416619204409450210118026954537338386735196801449223300133601306553566366143456389409730172676809275100259392909914994553826447243441315777458389873302566822772973499134438822601628570208307056839785539408676882068098794551764446530217375031812536479113045788099622721862992396721614124466955818938231133173246714053302840169647679987556763308295967898374573362377538805984335131498177176080721506885046603245583704661583273666067255197131752670960376215072275927475636384923732231245785489015751143151155973241596344718815053236078895938606855323366421661931487290407010558438585763075032277606213461872960016224725067994489783222858925330693334296471630682025278038705092676714376726456230144786564019922755359300562001342033608285010908636566695370818458009882751607706934178165705309906148067173196573163720413114664218617158904235119326214790382911121398401461239944633931893078029150339235311432927101100673510495818852986970765940718125746444164064195948165483816140592438224944519588957167131364115736308685344739604733509801175557216664337177766773204598244030252152298960743724983605208979128672926245713685684148614040843960499243023714861399935229026931612184933419125558516090504654265479849584401985462010632351162141987902994251481547537327228331981515459039428816887942358514079748461842676466628666516558590941219782999588344835257218711828851881551201565856959917001109683047833749941886338977045659791100127384589083456332750689958870331745881726422496177049665566753819709827541427179206591281280610943606764793290068327172150038845911245180744376916055390195218493242747058536612014230322882820780182921347180139135081241824975450069694723904478985360687508757408726986733802619580880325193480803004807268890112531049838013580290274268409151112057475928606560931755332673627549960120209209671384961492089137115155671271215675744748965053547572347267439954240015164997185054491287303678613091620415396339254943766161163290960029726619273469864566576361924359531663277851888716151908901212597440068036536538859344571394042928833139621971245250614944665598797478725555189874998301019679856454394206897192938410642745129678360850250515766371433733025306273893204806009290122088493565013358591553270427563061968937257698327148982777763795123217520904262244315676877849233067282973052163990984321269821333199411000658116141809840650736391358876850997322391323886039728036220553521626577919501649434157332962232980965043613498286151755785679862060626754610268444409742921728514831039313994891165313019020145177244041018867391959924260890394658916363347195634125887795685812419398621901830103302102554542400727602402544801782431166891439987443961919943605357200892721634148714248597383354522956131974120536087524971476589648287206297440635315198264996739251648099844302469044447413703629126027079136690813349468872183906169973281640397732744963653811623021254397525172586467330371036621416911101747487410820239916019122814998555243513719100776129951544122677518168940249072778183397027421442478181432515687773643022133723023637601915343038823662082856055585995250136179020046900969788972461728367764661817163338030744743131184030976902571107446666455177979894975174878861946489103396051339280730903941127666913415762752688173339618229860933861527990008155536169431610507219218129481877361645704150358372407775774629993686796873471835590751707152544436633459541020646167494140177689941145118464802395683261127308284985401845355451682730348857745178667273364002297224677706306255086539875246585443310660675349960504376129740671456579352069776147904446401116062486709564375060782000286978405367096377783771725875291340350351060521920678610043594874691813404825069083665817810870011106211609189843637899470450348980204441056336329085134497193196023753358680313234775640782181233307308589412476652093864128902252637866716689377973861163043801899301162423214965906401886328048485210383280794184770822631326063370890555395304232689552789394290512244143875681925083930354329379136016955532670805292548780949993796057246074878626126451715411068372577619855429984570376224679132729467959014305895979296267868423729765972207743621865391132603284200312567962286607585128861430439912351105926682107535918858183486904530249134330421664292352089004169836390833556131019983688463690873743603696825664773645799098989138250577742779110058738969205220986362283919723457432060981922443176105626772181386227279354635892549586243744399000202586129288216936204593008536581290197791019278565309957833912875349803801344604998946210010632626525357166499496950643611294357457670657376623503207838543080149196684100239645863337104707077950033337020726104640807875841648628484105226530303383577296501532499596949158465906735076097004210954775015921267794208696375782301110318404499770739832322079259247529021309248114073594259895889036893461839488606422942568924536326664373109629065618542461748276878679596964332813193184072322380319486163080219089646864211121291859848078447951432738678485793771165723777678197245432372220701364157182844748671847228615071793883788897184752242004592066393397353214501140046209296464914068026760342391488652868492340904997346919490920178643949021994127346407056990268965098580450403900847746218234580126046718799200769451638510647592634597211298196444494547476584034803838195932414841834140214039813819290939086585137297480000190181684339771610334436106767792052939886393335817317793120039217107971450946748671882773534184339440549551292044001736174463027045914236430605874580148142192354703584727856141318306450604763785926570329941478886186706984078926173165093929938634243728920151929913360447580077155199530669884090673451939310870094380267880638376538893038661099480321565487114431430096707353432241634633647331341653364552815998091147695370009271594162571416912503150439698787722578762988382449562065911239276816908859246550825461113529725995579782528873716269454098061265075268611304612966168240365934161000944470009893562977492199878954298661603791754336911193650930156170241723071874418712926799817374635426985758424807125611230519840947634668074522406990251859230382993792841730432526290042580811208554461984579953428260903692150484445864301620071456318158953337618096509269276433698359458813259219310218579486996203886759736655196825709466007708781924532746978890527321443711782514145775658967931848867783192409339868086346261743968777774316881079693898591038936323092431593833101381462337127550449465891809054034962908363858927366370764165583639174270186649773993756218497427176700876792508393938278811498925200442213018443012193805463090139637042004372686262080976133943178586369531586048105647443245164829681663189079998213285785157613223832639195752367042067203127681279318304357522008231840762439318135769287681793113285039353830882621038578394524158519499275379098695598736068881621665783467612160975428717447176314403571839434269028728835945138443416940592706565294464357545769269179468592388661661455473185929644680496659103231815522422535689744096038734988673264776186848254752293489861855405874549616155627498682093840514442774961732845360799322519508372659451886073757677906963265495375794817663221578515146461338973742229802397125388391845404993423152961367921415211097500756853922927292937203714723994937024244141280031963734484582692478106299278105147621747516729937908509538067239058482474400637391043071535595491009619248694635184955858875159467760987199975666392003073867981505944013070600950259657515159744931550503747185363051257702796407863663465980989558875010980163001060185972567103631337503702366186883336962567189703237905697795991096556622235083038856396048297161931818227449830196473483752175996615789938451684528621603032121496043935208486594616701911713522133888124422707812141025463985207096794403972189266958400511389677167802956988340023435865192911716058748307441382136679864852165220226015311741487127673988876728328794641026192614419601627876040749564993987978276646618561339209281089176673544092325316209548987191117232227034824791421547301441229393866646172325147104851207261281084215897578795881666288695473904292694905580118404800861580640941510622819407984499733984561053806839999803681512906212452694945668135764769505090654031823810604024782847194711038373202879368792784288156352259290013066058704306236447180006048427440742518042902634749951447929996187427582964823038412586193689183760464176322159940117355924576154820693742244356600194871971959078555352363336402530440419809408633926229031506088512711292826518645486330771956425672459906215512052994200117909513840591217381526002303545381440837262802162420730694786093654754389566531795785759688705706353722673808123859152279794682642214178534491877349178920738252442935154054704988283657063757616817392164987179339492146564997915596852131459029414910560677527924216174010336252083173451035376363818627405389222112084589262317981896026256071564592883477651532661227682779303929133237722194352310261962658915304004295501697401907155862231194039649353065377960363770794707736608741577160121932517012423641214309565719826154134859418656643092739890523637066021753675213582086269837494815005441744672617740259880211944099392305409663271357455487895454886661408778122804009522885271035779378675523670688982276875678551666477381963260658211658676425977556009767637758984868286307558494291051961772940877785362316393868455591492604207861184187043480883752901163944202424046098451525336018331684864177527753081724448688400009125003297926863281095421661992176544054126386169650786256163208739382105586680366328626966321615875647787388872073158431088675412301002887922580474518242190866875990139122280025252722632218072897291756164133405699999688233566750439736896445219173410057999751932070771157906421354588230990824561335619912625845054579066636938987752385143701648374050981316676669212286872771740826843584497217756158087701368310443674698708531110422855075487538224071010383082074216158939077190745748744352588258891713839175885747919345215371271212287265736168702523852439959495441864947460642396955876712669897716930592564622350220247450212504404112154530533431841281804821699474986663042445072313617940206095651478972906946808982058645429492830288217748815847988509938748461294147315874584098735892795538815571279260189768130797729201761449062969011747789990583790899651441070878184555226322509043019530875316430040618835750505969752550150576653285768228315568233371344944517305341802984799293510637416635782890084412669393377240683220884044034034696873859498231610347686353849694807276880259395372653950906014786951019367414303332468303164354395930421456303049597588301769976996577973647920622047827892603750202180485070289766356215978460839920498069990953852918908382752446557894258896458643514968345673463753428664186783765073638231907457306597612177928161583713240027371163662133177460570870338538774964071326875964800055894318837454864808352635460433708544422208840457626520520914330032664295499994755241662153856806121802418856012762898428212106091066685879445920081181811706974203685097388375914064109436397610392408269068861093797123183784523599140205090819839920281201184213215210317208265370820178679364202897594014997253481245204122754032046472144136946682478484769712621558339459080987655854951394461738493636427929847652328076643136571103187135573025481669258527651680730362856446025475494597588815074779740749899699891683270785138609757909723577549960847210480889991858369861477237275794337167278317665841767519404752873994224463619430980090616261827605854672859323678330550530536713435462353064582434474055585605564681606348234090985963614393546826726422150128490761079364744824615109914463907443110482133734229129013337865182774116208731001253181391979408019289639451635106188057936283118716886173444673925774225106548131804286247327300871632491702830953446874126903910965501781259325996367615546850708732655792162191333691976306555793874679078057329980102431539713137349492145728492200541916069744486733163941988854798307172903418118374726665128150788576476816930337167439040184150798793462482924140251807133523787718270976989664463705328855145385469768551512324136696650851243298365000744088848640045073136741832980308505186509771516538703053838286680500317051271852071749281643183056852855409395474296074678804108833975811702133797678978790773554868903962853208676836290772372395860666450415127874868168719237533192415395439821879111944170572329808685548420115113086322650928767373051380741930664571818890261637175899299282987885972626910506576240726862386017458109560280973685451012343792894700015619241733519540805925655790164607531237294819003345029730375065059928711340473933358514806409068216117138399770628732605484794446515917710821803550556194034034631210771567828147399113053383090861455026089228448141846918039921987104465854088944845894436225706087421342083064099843027392701905984870176706212141275552225442257243835103807701224093998181790337947572878336712186902771616767619930947988978950030007167009528239709033243270919190544633887068807966596262944362792201995115895101435114348037782245211627275876077001790129724606845258452552083722885398486220396569846489922469998780900702812154988476165187175352373154757992273936711878842859241220984771144504403994382660857507298505879361657265440422061584738460932202914449455117777846054847001726686026875288586687885468967746070305911514249083387430574760769393141072255185652707593074495778453820971291478136880335901699693722076862544062277857999418571180964125128036347383081213968252008348882003751396663909890822847870992607072704476818583551561411752230559061090976624753883584150805357434293556803895621785576972137567636236578290895918257159249375718018499214079468427049027922821397933382341608215440645912006696850659614946535917115200660124946331193679298821259372748612981696523081309343541518205123677623630841745726651414293076805911655309912295253252623478844071473608921034591235819671658837359695958043977413437924754066720536011469509604998735844845787646904114240673211070439916915249989439161088862112699725263470876957110878212646582555149064204766049944098854562299705179894416401549594829143044342628597749178288681703800833050860369943571294222590401328370981099904653533741268926026449055412332258949503140426470922737962234145389747714364933741118391048244035858157499253467227136307266717898098877235593470178939842381489936995956441750850520864459282727977252833886425409179651039910694948966969744051458321710500441092535841554070950930010152352740216473349100177637446008356325402225403860523128144422343789845112059297683385601466066010373831859748381765558521230753819155729233581835545699892642781401036937017615598914129669776227537959926196047335046933689832469450375056004161073185298370602295495598773574046417815808905747651207386899246520488707293882682233488899206776614057281403182197795629384239364814289140473747507719867393988221249642170210638787077790022343827777950890853838327909439525703828315292205607679138202404848991762450578488326582403058811683394927297819381792417335343862910726318231327178644250672367784995306182416569933406142471756810139000207989907455296776512159915388148027157156494870544299943805912254034418393328276548074249429024261539540047919461376807298484887729713244208481372900265463894818862474229580816120608358146827012575892803503042604663026092643816647969930082301655590829970089232930268921741554517340684121103577505275035816227670871945315914610818446645215312285103988997515584370585471614163476507931966231155387273065074064483743016243157226998908307248413267771557967937197274221214938411986893176536101076171051795326385774338902459079857985767485719112696729688325295126159879211895684297264578815671100974527865203536396713772911599764752884136805720213962759037545058319981248113457790694912224663002750271183514343025264641818676795207931547272851802254293655055179486409315560854079638477015048303136090279152333545726701631038433108670931232672311123476409694872741562967669004400671131495884938071752692958565945634469640109355991980273423640885116931678855801262550841983237027609021756035484214653528127942967308279457987061472327893322060744134330980089531476898579116685011729537001681559914826047379913673948942912099213062572127401879690792080779770560095233745515183881951277804605772665720663087647352732794266394876047720024259427613289374867592839156849369660968346474331669042086964990058336843168589842104435135144426206367887799040889903964989422281916385486261054455307158077047275999907800832659169034263930574543690324571166870289806613601638001081544674039254299964774229394188843305882986958818497112805786986451694951755696971271297690678219504843369976809909877027337684914501186535983205830855978439305505037395706106307993143358260118892882556105266345066475319578954518801670210172969443173267110586973506495659110888254227200835832044017101151249357451506905446991340302235778389291937702891985992632807121858387248637897678246284805417026313255009664327955379707883352397433035701698540386857965246131452688263929326420399272295484441853039739151439751699652377789406745037750677110547808382441155148304767213989767353504186521736007310240564981957417719080110812429844865520495729060092282385361735504508006848833986609691153701759394584042861895177739595531309843510265952926585405857037235614546653300322808868599957697632855499915328357677790832373503740891297759157435988197462576184177639748384706116349715725043146547064365370265637505356763353143645996697059335333246445079564515213440624191519397918389235317551903820377093134925069457770279376493203092931601305703777301986535056548030517073329110991810242855973196647307225121276601625111641741388965611748101394454445420825247654666588921091045983388534115368870704806142010438851175798864448960499629956435466347808468976128035543407979314092413476867656596856587654035667922847449743459410917501409670560383539014572825544834865503946556784721534784856971350020920631962206325383034229153152879151904552868086732697792620644276204782072217592048445583218174389285601734611966630984825509675561630346977875740335436637126383801133923639942783542334065556484877242143439747553743991867687533203496619085323769529000229643610868141585731065990367712689870918495876479753883271413227073934308031230808550533086551957678523700787424782558330343394584866340317315788856838170469865676303555243452838226959903519443331992467035986911507289625227981150509272287831769168237183476839330200508616697447002179624522953206600865196337164014501769163289531282445833098708310870898063913009030428252783404424329647258857884149342540949126697187282333558054929258938351341756570055000753611257922351135458084131558163973430286480750974551606723945342049381875338301800493496603930542138304289802230500630350190046671594662302804941001457223237458711817683830782477417376794278467382087869606412014155120870485399643537912337453798422371931197565518345613386528367027139305098479262479915710239112577987072088263998113057067143120599276515414884048811405133396792448870866316443819483091350569958397925367965116854895514455892140086105588230355786103221861260304367804932800234752121560731065025633846521487290659231545358179266676973276441694279816708893254537814272285762453990147044151277251326562214752406810948309151737498002497466975564423916521364234039209353120763223157838760660779471465004198139407134331835407676376641257083730448571765713239821512709302785121134505487719422423965180803443643817015604737139307030739517140516940019739561928171241624805558060185459655870983019398706821006500387494410427881798946321771033143896614893955227192258620403013085473321521433878595916272461636739637081724637803760911515513703101563657876497721462876782511026937191919748665871668244296868744282795196509808886484837571918962321526162689441038969496068978804471665869673343336160842629797125161229818123657688711773979450931157214949171488479988807639011366978572629608603188685012893837061284716766837983199508546161975626932393081493715193506446344641385097593249776319013716215360581517625607852683268418999080421287783404723481673749773733348377718892844995669700740888800771874676668215768611094337628552861376306089449337702769505734505262299862063012436294443135481861889948187300398933040244108447796661542182494787023688401054328687704514006300737824281055830162113620634510382278574508247917912976480643096779656390761892533531759820040171766317813229402638612800639731809290946388422922937930067832849013893016458870612773152758673685708355252962925021478211218296735590247205580532350417813308752083749825027953246977254617662664227423020002135880839619821147417465969725044277271357969053717091903826097906847215149850527981167035694472211171422390956891008066247443749925912437720747746120858781983981576810779899591012248394885232398309663001191878845800708272301525409897144534390590921538097045176906051235157325032745712750127143643933061193589371123531385938824585373986058368172064623265798818503822217559218005924313797718456125544382012015348710135957241227062924624243176124527329165677563428898210966434008461233211789187565616153981823864704493909556561110261962154559508167690737506675952905166113225729174015781764770108457777262231495550140040293245076621333267997148558088479258191165337956573414153493170580493049996930699553967483258009535141362062964942514836809698161425723145666827980551848980183277049757036794205514107022047419218733906033975152919205509639472238667623338160632064460390346832637053759914085675198581582325748704114851539089370707591521522797661381232601695993652268482164827343400393471338468613783185262251563335138013851868675723819604016747319232198904939201348987894156732928918024006763948474623045112311731517450318391076724138882698402738372105225405221705009251346707853645785599278896463805132723294331737829649571425230558625237291487549114952782323737958856823719857401869172931989914391741240410670232379916314232338034543904597499652377235626154071162488389304493656899084442209107940165728012695635131303521832911499729700032419444814156210099087969274470221888623861344620181359105349625596570740356710163916852508437994665285770759265209715350432420877685001785784552388512837896810737191062538925680750102281111521973416191057043539971407384205883688373832062948491611380572388934951862739020998313132066281724175722047663256950034922721284018908060791731219243484696046080478161367643234195747884098682667397177964333341786456629628507773813289715061689543301016802231201455496565205383366434486311849125222552992153331414723810138081027196109232846512189277160557997718963758965806220718110840512457387276794596541661116933817593942608245216409694845225687615961793088016112332157797842553741914671985511072270957463198491146861525809300331298375240286405719955758722529489049476155487733128733237172590416493008181055524341049614850316929585383598193191930134230351330835519383842920156169213411576598797500246662808410233557347690248750040314357997127350870566357769764541825053749319307177307445080574123333114675382603078467054057022744080088177925980587014252070877586799650992032543637422447476853104713351204741142511088437890776282666070886567162250694757781085359220211595441580035714338666635590579954062816026255467794097491511777150670671175312888484116807521311288966632770095451323543452252949956572883234211553542614130698235445912908974909114778460891751400235687952939674298631598544019618356710605852370864367293587118392173071095750057492225697676265770619543090063805432074395816080782198405961125767450412752764759948823113836902487044226587161691480280628905879055539475514636873113988399670595236568403586039550861366860350489383808391004022328296188869543338591999207699920260983150842711688305531704230749345881587419916728115994006923242246457882960850107835736721858492195132398659655968055190038182920487437026128825942068378675516390123484623868874597465750077777512250383999037575396168772016858753847434589658424222434193088368493139851734975793385593247226541794428497250647631481370764693649365729994104080060595610573286516462084187019162573909980345378132643258233094200751754452990475597668361674922849377965251841859733025017870029785808746477682082000751461980475514049868896330696365961560296529237095691777028428054970144649373007542907945532549299084296055004614774881353680652413258424811801027969364301114228275189504281198585274205799951058535376998549211970889630556568617984635840993793525988272947414515412975804571116872400207894280974905596917673068397060775059162865527175677345801306475317740699542953012373984287518347642448975529301524983855980891648837159918716701643058167785961042908000668049185136989520290950372228127282960832946014061960028730263357949213175514974580621609583230919862825348350849082078994015553267129414906809172105664683400962548502330130857234718807246102036188067509961719918477012319047738934355673657724360316549963631204439289464003107557569038193245317992928486101236774540396982230222587297146931331000844584527769073615168167022455042209516837612789011438717345604936207705577818183690541692500233988789768825846877963953921711198793103130791303499273429007072422772485369735433201024519564530779136747774649029777779788587574327295958753846457433895442716825669730362217097938753767276827822960620545499158610900642895389134568708570364603226114367508971225869675437890152894659232166739322187212174300805270842740472943443207446686282579701372461978216199377390573269987087696080819414664903635627306537121857697143403010030412004506930577075547105382661999106763073892313892595045630968217089595983997066567744345344218023868263040103442881415689721625729529721425981090068454555875075459907729414426545923443045038680617536184046259056296153557556241455460115989990701030185548638352379067230768191199134462226323234178308237168551475891128037192626400600398444606979072999740806328602077001128048993234966593210408369205539060335279817650348198643246289950877753032040525979610211502102071993266667088984026970544041597708354767533811256290566314904857983200008978686383445968892794420604120788778245603957948261404906296052927863463784047093107188487223714034435447401499623579185887257441029077667997817027466121570149614430922287111796886333388352328482136806339238574213999553549712783532319617106208151995147268020252258301400184910818259651367756434101192538233436523459104978904270404700171020492769885415193804985386255652580046314872945061397218934079333652036992416417451638539178164660297154842122422009472148021798736660632116223648054462086963403852550418947895377027033727000960965346730326962723383416465435069972502455794858787488298002120884625547879852091458430921043996220181253266947449554702492480624276291813028041946255591804548961892544864738843844163552885820731327975710378280811759144655952582391894597527755468507995728608777398757596669645186616633464782767257421430839228382858470915378188960474492845214250880912685342527129528537987258348504551934360163905840537889052518623761393147308343595358636698789576953939775359839687631288204490207130189197069911158712907270472170570677236076794507412541085840987623600390720411256400941029060622553583017105481675666467362218032776140452414388521856476635663407032129651429097334132179703877715036670187723342910549228029720194036519204261876446180198706516187421412925010945852916878255123132184799296272203461732872257457400466796663963418185680148179592759098125642285061913795880934837031019199372680684495313990726443193743280987195766964498299320120330022455704669876954086665038422775245634784703479830863260439264935217404121590226719229881386291547913258080098320325998941530615945489237815759813731036835740385236404090936094365850119064066562507714716982992871714207868936077807166054782183115243188902870410590648599737838859044582786808742361140273622209107151468784134942330204475732649917429615986037644209472120906473427149146334935617709137006843321670124585650441024448931395628682483107167451534626756377340020494556210496416498271395958071444447198206684802692175890977656301340100971055060348033820734914627062541677643069976786310528157804821411537706147841276538535496728337000412032952523234439335249485368080463151081982129569743485294921287285208912646625286209290858975771479146730147553105191091997694109298759812417492957060880785698561891956573377213146636486734798926544023382271441567580105534066712419002488464797786695376495681777651474450171310437832258063551198865853062702585958784481777267005504660380535055220759767003078317107503691043915552938892863472082065363403424840247812556968018006974931129322696492202210885032467154337337783730023941811244045021491697928992759190056675561785210096536119154446363082564525837848164994754616567833390753741752954498758447955168178372683523406672037508772617005020673176242977756400494100255731946272614545167328414148566445630134879404980637286646627984711847402189914493851211864417293061773949510814667278938934107429936521362388954405710265304810884477239663506848295457518928387634873333168784152135135565929856604848571053932373586288439013812234422731075334835060993152464266424941722934236507587712603007727045552195317779597090147719513508892314041944406797024908498780243075024589204818991640507643806066083253592881321163245450868102809143075003807216867906205721140410444497476452031921616748596597236903131458927183170367112290878314874062795964067178913237407492713576126529007822054724013654993538369528225940041347137029425446572557967821113127236666873392398433137205803459995544799864994515702994071269249861317233882248923191986916842152600270543939961855907938988465462307996240686457760465174453386568566141081865427337532551742766323126226510696415125968999261484865403119929624720147745748401513377756656984250556896574456263867068126955128007453592198504792698073190109999918175495077248785369965826610107081633414120983620235368692058903066389335786993268134230451987031284615343270865768512173900019128600485035554474458925099713589846920082720704470258409769508566346595417490736960904536705502622807794064973925519434040082680928336478230425294893540158487252144841009738547049190939317144576580434338881708721098966745876183717614901119649970431082751560148647633532605156516533691559558499615547051081051314795903689823326506704966043869504060244456713378686521209120944914590526234052944646368310241297192564335527769098469345671455100690434092901843926985363007589286763418245572837958999079742360781073519501219486157048490630089163096284374692362289532803210043660332867486250563544579944289685574978974094334708118004582967023041649052087924206293873554383340649848773229206072258289962384746590795543769149639392444966027704525393074185969686608340706973304382333829772799696031530170771353778411464310090584519161448535819112104927507538282730030993383192593272632476491610472812450191541669197631970435450571571495291209186368524382249366596621050783674708350221986222312475053523856076418252582340913335592891794692473603719793390648515569670065544239954183086582098742843900779520672555444018020620916952149016620135404548859553853572249519719425744075269441601087254546429078191681368684591131796556698881756351039297452517425147282408897204459301156201274710913835191336446303186288323593300322771300290450451157060945929552546369449296282729687474491784589310879730570540764396453641525229389323357423638437681446235277379555553007017174760290532957081387562766178571876779487680801722707146600407670169758321611407312263294980003940662509983304784081892752578302159385377627157411902793933440709716818327941827225134024353273731379636070580882167030720739587041418810526427776790741330246048315376492261291103719295501007571488007648932449326970509413627656093339234308714930599743699235864788943616793906364033573464860327726276056440914417255414437900969884805146950851932079745711447499055907935721335712525237645402714317376728201008957958222361139660314723868682237923405167328129811949242072265741658565067703894661674657974662607186314542695568772380566158271962777416387372521019960814432240269134409220285596136787666634691348090588597745164954290463397359993647746459418039909316995428184870891991945587550890388650147338519474555960289902251293132691577665695684682758569052284859397229634979655781272599077729589199638538108288080028570558023004847764128385885824448730549089343392882212613915547598888164056520502139246288850899698159620870008464998491837548991723631964135520344342964860271491377006920135430963089171086151673032849336251081660309886720807307996874611129621915427941781989185928302096760481261106244964201444566556213674987307697334625074298203523859465346583834475905068897277906549101515347926102903521893985880915474525728025663727698415578415003178978687291698098973324784743564713237014682267149727007494477687635666325367234631733412823482680517878278031151543836614016474863391823337612799346870611202808472834014689519190471056746871256463400526853511406422044788792186111918398860329938920798669451688988658533809525089284876237950410412702878986326439825090043619187939314824103549025411421834723571046120793521227220737561998127479902345901878427632378858425973366356375472908059305387268657145668181069794086150719106359873906543961457415957142512747939411210837060605873362387698359547406055456467847700826567434295063722656728946823589635499788773309787581934514430286600035650317374288805146139805448255276551488250501969465702876570794398518158719182199292140964940546872375902007907854346336609907688465955411395574983461081301407063069422448234900766675288784429446224423091134001845313136437933363489129858439919025712707964055925430801034396091926286739042692340595727506786046462543141095242752106692278591330515641417542138880050085315677575409961183715300779441109032198108398154653190642105607924953180191088223509411151982928712153572169657925997991361237840965689651454111451549675309137818474424084037650433588208614998247520115723326976732824664833034173375973249094100134741093182533942362181973917320634987187129065868711724510972755039355527120395841476582530681643536341940073971381116276764396494956397563096919537876110134575130394042030442787295410551160091405187380702474378857478168438154656472717721487412325553319635004121651281667984514258430647363348096071056330301596630946786480378603335356506086472973528525863631638333489970864465262060036729751401291156424302682770608809789889619077366149873145344643135767621975814608195896330229553994315437164592732583209822187340622560493785334556268504567247536005753989131645944571276802327177875831449394545883178860738570657521804975577991018059375296742798361232323067457646330823820973818542617144162243435856694838642954715311849452650083334357984373793998073843612865781646705031265347462068301179721345376994358435094325718708857256576699717562320124602543041422668128887523506052506980093447302602489313483401546658095767586146573538077815700972196961603499976968669393018881063146253097471431622692518453294321993816477139880358933027624208301977653136401891216200777793770806584206229441615660298845036160737232533193664366134709007774488633898440141937316516085989893779631156835507026045402399156122535004587764041085179206412395547578723794068259139607020360076376274468360683280332773210620879371054572958175008837795190939063121960547270097432458627768239265512537449123831735263335167919240098081381404287451421721262775393263907424324353640995504339140998511970895381635681129970984347694864563218034992976464733657562864629563280151489067299267558024022232533793428797016854069849883978697384082122990995369631160923195388776145767171029634542943143016191207452893636953489238938092597859637135856177853804312587375019074330510532355368891024555897771613661186434141197929163975576312302457926363943458000727161882269612914144403852445609374378104919839530137132816952174904331548843200872483754036043844027198914391273033525341258581706898370133198949202048170824244607756490732492716608401612893824381126272020827418433126793973834537246552844056187219405281614471965091796847039084971038366337782658320885264105079130222624279710424514778391973219662769410825103749139752407437173839169373480158576397591291603695345075254012474591671002268490840003543651030671505721175914158794902879233271966234656689194410607095208377958971003164525682063472429251212940730948794773761207596060677240497331589193450189418030025215973340378958796876830197762509441353704000999247317596245268371962097715369900722232869237006959824243445629518935168986484559769692431343159543743726760632456846614704204255967685188221217716429677125859656253275405855168846374908972375230553615027768417452148010879168453540862548171796851367236502724254807499913169572967943690793707189241689565463761583460476347214139750734390549962382182006336048481756142230495297641740409616337759317544934094050313437001713151734387812432281737024864902710163848423488201637839471339388243521052105937335340262836937862409132936068444638121570888947059325875308418633180774641226664445836838801184750159420595071938874627349612258371650190670709467077742245045179396921701976993186873278778097169658859368274880316730993287668644312871340225148845356375834625006670444248220834802210134458677923073685097189887899208688048393224411727370859955594220855054993517740742467393218892534471236228344311709260654008387719848579629396599859305981565604472742642629400588460932369990902090007402251454634791715147628442142984213734305337705607514413713424281731058037220530478731478106601111146830163977576741002289757577293307929492069884860372520120113141946569109894995778814427059972311947925273408985828137074358417929786583116518568472785567323126689383171258714156576526036848567200049430931794795549261456493735695911090171665439010334067888678941465990475151040976651274571808350223995769878054325452343866365452290236524350470369192639076620338555373678320043902759532611455180080504537310926108099558933412351713856254797937336792258482698561790572569119996009302132138849986298991186349016332954089247795710607837554210653963054264849884575325079584132179731345826179082372068010489704349641925961470075365255434421151177270585866709605945941877460022786238880731477352048921977167638863084462527887031713539664871962768275656686320586685487213962227803879534764073039413984550813085089855728026458305045503715895455366307452812628629085390913151831453105339777321402427624993612232761776072667352417912141037285835961131028586559624751928069446230548675706476166585783222911692379643803997784153759413726245608523599873672576615909707068916704437127040085216464467421535078738149161062008704975148544740614718993590015650184546871909868641499886228802858078120633499723469462395815580764278078432171645397024483186762326676991249277570773102445319584361038941950628630294337145960192657956799152892422969329871724490384920860843089655660343363227113644802399273928896517364981961803636549616377111433406199234841582439819213691691272241400078081160921829458605794106627590444352571754097374913020956690618131873648129933104196919192903150326468201635475133271231512100795468944216173456701950933504205382237057816660562251371139967403375164273598128311055797819584122597299986140577867510019110406528158736171634161781660922969907117005996255621794183748582534627497371064604101007499235813005427874498879216918425569106240953399208137836013762856713875732427621602769042226762011792597969692056791967517370313527708377389788965806931087527428993413951643488589680140540321325084777676263665843407485977058099753790469860373083256691016783436875790837726270989610490904248070319753853598639017633717529900111234742630586309711161113858098175526705141079339219438637083797893481876613566853045843330697132978240191779985387548379640521215659767810975825395003892922131078969434926708684803235934940430408694061113367992152708628086018987323597151273457322778220594409341603377380761426638838378595696728345013245077493058918530215097609446138073894406951627363566687631324141770812609806964252387589592420336133690886455739950268940562435458434264684600609559885273050196067400984317057292115694212077400222448173677287502864126782315267987788040814763821905400453619354862863010519560639499972466127981185072924795662740192438452294967329513611086260254986735924250907447041712339381167853693788742103851747368699407299603751195479304863034055133569089662490528446687119978001920574198113543299591213890037043392911167705739402481338624926554999958422891737912371915083733438980328338006791933587759716661373259221169337855786052753010523140580486285831163631486243453457659464722265584895175365740505444645898373249614339457259655468823596871517212536919866422846453290347835227365846725177277777357930702274316507235228353238159788469944447428063785040644467649794304488561524667505701668428292358552894610399281677299056903337401310998884251926200840633858772612070170708742918377125520705966485954211428787629164353910609926637242980297313223002999312305922241628899173315182076201484009871143874595744989021340029690764818325914354231533796521019132941496305867351172307004804500976832364224682491500988528879059517673268702427216706915025800608376336712553714581046114019555617482554311788214802132133943402652065103383611876201476918121728374025823348446160790068359518146511624554921065166926608479441598148093380848499006034872844247484236122773318910243745766694876220654948324173147815906724036161750307198022146103553610615905432675218469856768701327471011549406374426328947653618243665066804437482764309817757970023692579944682844095793765442769158419734436608988423409473530331746107461060900176690673343651178517264325335834704907504908792852665830713333646019043072184491590157504812952279471958125311991752417506488392765463078662357275662443603930800070757421787299052247329876537809570300544299221683762036511197768210165793822669250431393896330939719171854111685857796404323124264359426711846429073944297357628396648424173669997520025919786644230918872320065394284443955260265151160762166094967725689346951019890876121735106221543152302672949892712359087960810264926910863615830302359749991887623384429508062622186493338675813377764010171161754950615970062423770106874403287453229959681724213380526257596535349560834010340638768251769701768413446022359281359273410969970308770546118395961497257415367890344931079902989323822296310190820322923630832582238777026324187556285714845241472884072097352511763881076803881419172867895690561145999241920557806982034909058888272336074232645465449268569310486116461265604708114673450106628233839758467750368275269102872928958236319919599274079705455622813516085898529724607225475318980101502991483039847533165688004952138064773885505815835304757127858802118877019575999351444093228047208784254050307440198359794179137641407252230223906522820331135274374141045651363280126752596736621631501322099425378859453742446562910781960107676600224081184095174146779035864963635035474063372238670809096176713537839158199057009273953652740118885952333954908456777482432308801487775963987045505008437753358120945579947503637962883699849892217513661177739717979975408780803494694521957085318224994338173348118179297199165401823973010910812400619159138396317617584021529115945221918980250279791731483617053655501575735321721012131192801585656769060380697846954607135683518652847430904337315132566740491128586585461856108313087717367254764365358703629102831315373734230486227173426071206696082770026713738864129344969668692414794525226612991391301916912883846056113942654408866567963921743383325133603757372937578844137536590397395265668709315279215058743675624675584758658169086036244684441018908812748503042617034772699168007896923750147268055400499437976364805565733988478753293395747766239705065790987821113240932126660346180548209122587929588533519598441783074837838161963630717582290925845538165053415366799287936440521596327533805752359633823816222458043500470289673007767079816614007880867676868999460825233142655571112930571845295324014691329576158936026430400988796425455163517380462771878059104676585586074247357669135363743021492547898529060011836318485866286998015285687782541678204463110130069746756261092806182565179817550518619208112036143358408012478282102179435650177691441851400898745722445105376803134354930016151799126101273647075006796557941916040391276722417379397048872229015133837164715941981702926368177077563467566854814888407276299646548929010353380039769171376588581653605979629165652006028397795971020030371082083058638124341794825011774375042536558210191177443183311724206645725901539757136181204338017146909819510634818575406593653286592115839738877683740669486904916325141329103226066580509603990788248935926299106157046512584816410423231325869808826510317712137390078317587898067016005228337156323211989387884745026750431996605146271709674466969812645247827741066721042419585827377099908800003467622417666421452742698943869862782150425356787807593763481861378812354295815949762695871142998570875911417148988904463696867300247499114777562918976124256781294471935556185283967100647377696139770801141989416581766168643688331157634372642952076412895661260060585208074549376500539922828135946924656055288522938438495338109191876543626205839660495753415879777543095522853828068412644866551406205456522889524685210993821191463767140168838713950577768860578680758072126831905818545766044924786151858580378452762102857268365809560295754440298440438428752783424323540208015729791234016384366365893978750856971605271943586134653043903949666061727905184709135685169586480145124662266119274403946215592676158330484110416003168030523709404423077502229296749875102855359110538132229390608101890499896013799105635680953306210700868559378597522484700252117344342018376487892588319943217166199963619952149873406632379136411962163609462425102583800738656265835449765625729287119994784224006807726081416501191130189552697678924485720414754199503636034219284616043704698265544161598638665840346268857643492419669019652288821142408019933924312677002092525555882660895778390327178443504641954056060827407917144638034213824027950667395202199734035228425334993010928821745573071031805186049107502932443446769282132655125229696459904540529898077457899695879278968564314049955436046601621171302450652505654506705595167680136269732478817487363144988258263504141741588063271638717486515216705932893606210061808721507948370241685059692821897013509700040711518341771162672845925066836972845753045523007051094493946962022962713371495803946267384802944101065362663176982779870155657019963231315138924340264187627592872321655713043588359813576544302976646027899296298729668291594612003501495463061310839904930625504066711659741909900332134889514063187132223277590035155212832406973921902061572460508208794944815738883237683099531585698053367063977553498519863366165257353364735523470243600500919865089121945190746921333128175735193199900531491198023197855437307421250722612908187492220737132511496197847152917249910737411392553514513760529348632231974386770285229472852616227198536010422695621700344804955059428398143223586543816316457972036389678206910558555591203649555562096446643886021223706837671620460777629733625059912759630185706882154526211347691651631211054790603594156181211844866099148826217623666832113141737928765512899882067980867214087165319076837405496530805683291925312958183931509340357286902354968231383360814822232453112265169703832191017916733812493625592273016241691379959029053299871419943785909082593414602313197553753182483015435602887787441725927213904641834187479554909782897810545030324457402236207482032636073932513152541282477619216353481769498491945184929634430225463797398168602040016834107044073704972892123159995034345424605438997616698909730323204874894660999539108699548596618412106846626995521853924304961370545648528248609296665444250789993322247446176456073284142639572998480771988666944305273097918779878333553530445493578713298156157020452314042836140412742280898753190407360984388766278141077773420411472253954964470509066358017043575215037586268696843059482299329406391623292584567700027952685108070290774312507314515485759273890783725004423723957873293745576970837024309509200551633087460165486976474809422740086123536178507322512818851789343977700610026841635135825737847056218668063594335085489480382125735104715716107666179060166719766975376279435845129441646552011321473104507130824444125215619476202888845922882087626983697265625488338740089678049345030414626173918618139251039456523462466564371530103911968341693527611656866367157242320127967291216096622284202825036750003465407247497119790762650329084883828837726505545391293304239640980054895961509171596755592113690967358507732679951791225023244469094846889842394297697901953649959757601583730301715303257227185312016114434365133573274655947472771090682274494750794764138457696272007246960812879065591599941679135941255472978612082515239937715284889329003996460172772001199505099581651033339798510111013873110674029406198059281191040865527101175594524381120951081419961294276418362116288119206600030517677372944573000706366241175109187132969967783877854185524583081480399863504295594766645434710912616376897501623262960614207880182564457410459730601381840685785056880569316219959620594021595618434128110180220010144761260008564579579628556987523770232467179865188358988538128423454088751611760710576492914953742418357597997859123608647826721939878606415843512306706643938238114665505140163959334407338865576483144512675231780689342335105946612258988065762946128710996344145956792714249451294170318508690338233633347461790090049084297078034488141494157485707854973330811047267678800841489438001630941190195433792617509999741088968395845549512682199918100347345623305756544471431217242048584107965763815635127010470006490969149616111860744087859803005422010256272851483872015724003104893044717043820372014100589766680496526833619142895522835125143519571403630501856195165384059890493336944979282572851221964644460357107737790565482700461993597665350037508057140291183109990652242852801176948117149847044021081604494952877966174240618806651020541461534468090901969584227795234530538842190185325216194945521063405079085942814779200350594053774287100508087201559806899705844609524228646291770388177879737615215628186623838239415168163660182093462344498963026565067177019008728471717312927904721045218328264107980822506432254305222082362010488187530830937574886756190628346458474794581150307927983394689122373029053926753890251064076679433097270246868781056315210007943465522968533445767113725248308245978063348346446610348752326199065130484251862870494994114396238751437432043183437843854909664338228672818238808208962009155479476173359469836359745618528813836593861637010197515903978055190726249999862625865790402248686496132613682717180391424444598323176537488305946385592059469476303172565430701300129954785041537632604233040673070892096768570890008165203570712466323947438403087831914440695593684014010047986543075186502248966549215983839404087257870599642503212926089301714358335695960039767283723919397211973689416716388170261965657909804394346422159166603102797854313345443982118962905828110350574777795866260865669837529973168903802605144307590443299759504398933213971767573604783785973690255570005832825141511334184790892369727189586606392300118461662898316908791663642696610634678242641886203967674638243212939139327510187423520916317803463269974246126507101167785149097346262166952917071629468391544822803593150111524976841200892876723596457253379217851938205567305060640594959750494175550060575373927153813691135207647675146130169260117944589032420994732842066036067558455449487455017890420503328386708830600131683152744503978869249270793009825177175604992129594218083461940954166637266907729007356980661368674662705056776838723203658563050366601997084213777685240154873352871605361264890922732022291015915456198319503532421289480381532685983462323158779428354514488422997246568880852102423333595367015099636082766183007817971932968674606056620500499360811653519056456428227553008796716603977156444255847289825327255381030900203528602850187048811529677234217177972369025572707463798441551977905815789982664600176665812332602077207164152488928839956123585119006566818544257557491911870633150705005545662708068483495625621963822234359606315884445242132442131862040577921440078310771111007150362744630782490626504684598857313885306347707028892182673027165425796721528466107347921625555174169687431897308054055802279445313326645878957949910062566016600285879699648030333983733112601726267001523456321215409611184833304171186646112141907593767300130934163699282320384783838754856549068723187317401676129739362409863517758607312686380140126260347826720730012612282286314572470698470544315004564588275947559041030470952360371001418899606401595458929556357331207780466060181037235848960541416179623521012254749870512854127698077019603408684117515675605895638151750478956235139677555919432782558696780174414147073713459854479149711902899304306340452094058879980526814733887186991228055462902053728570656178883324320514617496268873388540802173490519226388764704390360223259116350204417914556374896637468868414848070703180405995224004472911111435020691761595332090210225082962496327803917072303487833678044376672415168458951885052690518306439209650384566195509656816731118839508519772129386184473813405481076976128752425984583169171221061356188944693974589390295423820632999716320070637624782872049025596750713818492912129154419694433351157447725865188701525805268524335314116844471501694065848712606563363381885062473921343607925098660660673231521644523232705658395232132003157371606729351262601097783942530292671324417991624828057542477866210344139470910571399119149929356789597714697976926992602342957162433821368014127295137239993135043112064062979764956428865317407809711277352594901290365317144094086085991853425734940886347263781526922681550441563136070125745961541531564445380174382695790105747024282157118763934404430240670494664349093950811047468457211262337583856046013825872401224924082735674674855049608856723568326883377067514563947547625910362776728980552156742756558797142727879888918568963861284934188131019754131707533712032915771002746545136539164589005916316044245502184152060446194268620499435262476145326560098025718872264392632322041524217555408899695515134880155166182096844287126296432726466430499457588942653845290414324376450446745845937625415387345278541226421187926226646934894333650236130695226758897123384524040392990136143601123292384506674109878233110577499910840589381491372804098549665168633946419124278563501714387401214580266348286315237582601486386463592173623066655263364776207318648368275728074014632988827415082756838957494147208363455314746009740771058316239504241901686736118705640643230838932098915212987766681344694039733373578237476731431418577352860654183877707488508326961255115068677179669382912253604890425194581650699991965891020785705585274446889433392850894002297625891047321074738238337851589789262400899636228281562305521700454019954172236046186600505277074897403859492194745165894165646837727047073965730863414201516560058588536237702259123797381395417990007185492628210253748188464010365438295644417671204524865129875234798606896148967948340486007076249578845672682593400387945112285155741616319893108668653203402867383414074568758700556600470551684781451170913109980327356180695726033851464778427073575393128314675378726451104283583046693653921890024356574291212439717183679153733381421805443449284277170671660393071752803444072678617043775236815632141376394060867930056170259880901511170670791490877181585517160010751334886227364735660445837044317336458346739952050551144655074534757311551309563021386423848428170690949682574568543418541713981037364862724702335202233480468908358258259637993917833765771716817737913627878498016158452696029011511997117387585221023399216125361572019972357590189306186043571523998596009285677495756304651018273552277722588806108670018824822562151787291883773205338907197786732840941467384210335133375056542633986962688301339558776773451578248857040664862448391198302000641097387394315794467633411300173925825429388927922237906803447012041521493636670641664182347848055618692446091095671927406599113219892826841380426852415821121490696754265396954021839175934346677168147989129398883402295919425169395019555103211176759131338935086628361973714066559401582256836956066853806814341335045541365513702129038450637461057337348868313880079493945837581335100839228663541606972068872699182610832359270823777884917537026661869712485273494708299565818735281020136715005008429656792870383226920044548298210535799441778994639537511593677951635362647426211473560052537555409474358804153904891142047076686133771370330169874570320495748914899121892881239482421122321127309998764882224103302377367806689155130769620798484138911118883338112000154700422889628912200877687521800523816654998688595249151064996705643396945841945146404435752544613340290050526542557933114275392279591332010290077849223933758516957299459114883368815457746716791658875020261878289730237620356436188400788349690248403674947590305931346427621918162160808118321952119114125003656393526762462716778790251602251237493380050639713207747240533275742022122345864697611741192649203445663962073606513747205007639089204335109755047715537097628156994074107250699797742123643280555748552059362411167670002918722005871250745485099987241275210138056252851169192470726657430654985226439282014869213293542386605253397762998519037818860819768405758511654493642233861701009029715545878630147051189054090535264218963835565170483848927782649717605770206204788963705554608596374659621924546201028415878884290074536054792475693480312957719727620780458058723266127267370844278804699873282858918153780722901778441426216476793308844606542204691177183990813615366273653562620021084964435887152031488302776524973451505169176431594999429237326352269357591616112659236332055678404136074701253958657101971928522698152227968168929043289937411727357399296968553622503550524167108246635516128941404466105682752540886165488107375406902171192033469071362606095691014341253337453599349192033753917657413194162279150113546452378780935693582735742233530649307145092985202242214912483743686630392631552806277947754423192940668773214274093567883891684584015190763494167653423245555826424970565911668659980241218829636852387562407556442018791292940762744915123178119801853337331150218253713843937499379668439579306069690149345058132629814929906180152120826848652970853776942623848207464660160838577242539263526119071540210328372966425847784816283374324037628899822338142878361298142819422115527049287592366980175134416653834577885544621742550368789117343662682449062966695827186970796839055259386399261860250090418795824596081765336957609906565150441279209046028316121131472785964040495681714948524887024654180445097724630049387887627525352661672620150306918163115643081804806312014496973064548632564305438979036901560855378375510723514026754057982288172952544189646739860654711742070119232321263439736616211753867268526677011409981467047771959541404316275964214514679170840599053310205553855167655402019252255694082741247598052087603638884970223994200385772856248071322038029060262125693436097393682499429008878363298838286740449830649221997607927798695378740924647258799446858912933317557960708793293512007951138750739007607962452488895820696674150526435070270828092320991566534509317527841686213340817557369246599286669584066232475539883885927702487598601819046252543272878972870782002919467594710207948916464382473061691615657407179601684615770689875246917296024917913872079494525416660221442871480998766752797954046141792365087991842817880590095818365817987596039366762397255025207468408988400743248116609663998085567454635519975202304725238531450756755574776374345780110388302816644544565139051316836289053350873846677752319835270984936015603101364569073214424914186551469597651955537070715750995735174695821036323199803719718569893115408364383511917629609624823575867441988816062060697575943283689362870117936869442281519786954490783775701111804945201368944847305830628748178169142958147448819731487708183933311205614562517185698266688201318879614626963454059455011255528227857615439417137990363083790145432849558370613888519261535543081137403418267907972145736541080246008839093797696250199219995431548646229274037939596693895843373435265854980904866920303414596646640827262827930091409308543116875356137943446227785831404439313586011577241315452064914531874061877626851292716820852968906339033589983928987568509006466909482309514823089965179155072564756756115927244478888596805695748554153344065228417875520713950458950624587089898178326961736482987625186967808818594330630816053989080336076885368951662435180943572824556849682822110883658461328581307444074796597646347719107147163807337796830089629279357048763554671406936908995986162011289123876835732032831825159487584435217988177994564507950016979033614223811932834321490754346375109396513514469364541932424143255378878397052466112318078033759117632287466686845644572735495771905230616320118946856110513232956184262637425699228147352372027829042838947280669139425401941852870694549939256777856147667389363437654862937811484161357604624045330852348915011229744635388069570549179407578795231031364050121659994931559445213065714823620704721216872668648677387743355973062518911159116147496150660217308799396123199246808916463907131381480836871281498094726009676517685937440009278243166978683658295840049021755052610803060773288870378591062731152960215409879571858287288580338376282018435668347249122108821415699340867763214724699740080460370817494441526093249739261052370499573394164736088041310451779471191870783517123268734923149684789335921661454813439380284927926959756430491835142281154506695231285393991191061645160286181355830130497439419260299336191958791460312833170724264399126926197166199026965007304577183575110479237701207515485376061836920206518069102983849948225304703040878864391095292882320906506633139645090555724014357357103568172194005086807468458083852269331946618002377829709396510482186670711803336502353889971228532335361413096163083613503462373943827144011951790168502787843732681193249031487629070991405439741511918666612401414509737999991338540467530018861516970445269431006221728237406167454448611183453756309505789049903115313552866235561460741564340777090491231656719152470254745016393980959898743058474806060622629426377743664436102729704128871023883345843297424700139063889182144630645002153753258779623646427876159952503690533611754723900846807054662059148489006827527707362014809857999670052308739293635907841538334532261296805989418447770485155797148186769210894361610296297103663797593629541062884773516305249978419735167426836126752751613021930296502857244518378711079308406886950331555779883378723108390450124252775920328698621353585298176079586807214214140220957806286884943971085317247903015430506268808903781443462948470571119425331693060085599324814276732907051227293403039276650118579291870265626220908935811805419233043591189239382069296748400448441546148792314675196596444270545271539158559125326349692374826679550240065109562841473991645864192264228729945656117239710146010770509918555562925163390207598495746265602130766327542343378084994743710542117835945525774221613989394482827280516777101066399301576071199189377838260350876429078221439637153045570187016036529236718458780521574553184970925939630454684964923786921787628993120596772867432928663188448250463884837656340944913966362069446205817128995835397854822327280936199145710044055072347542430278516365747851851878259014409933533870678574886079659728083482116787662825687062303406989588834464063598773668827565419191784544555350936139126683911367449166213227623933690617817580349348872705450295033107347143718834269794693526164393311243065778702400688556276474188551328112387473171268666751197750577040824070855519777478453260284385450164907751440136672642559068803412022195672329009971262994499914915369762600764844425308913066042937869546427409475228683366846027496495415181122299073387928962351305576004878284364578518761589432894007166920459061711142011966426690276862141715044172278975128402706742611569119364591989325455303871185148906336449733102172515284983341132173251565573692533924694871488443800333188682250548061197508308390905876941622617174624460152501816601638672338461615999374896767418197483839265413928921161739778553669566065143506378545803414818969898801666456810058942675634272936130198469577632738115921693501711522867375627561046951830295130415942009187171110852674321174573755051653845122064232092087549221722132057248423021072676100293945389905852557251490833830026694812965047683984674802970474361857867399782407416646754873140790976604122501053508029680636155764364949525540015295670113722665493008720527654412060050790471027970518532656803559572500141316696436769254644273129732091137501327502896367062158364344605676468960103822458308768662573729486921695130903661670104532265748955257506084114157384703343863835130968274230636000175933102279993867452770069602096338010166953618140109289316992548300179999165345261489978956873006036708417501430229057701764176947688120498953069769901477817624207688105186073888694212772588820102472496127272995911540662551760222862871081382809330286136499118668541772231153090773527614278478511898843771621395124774634738138393170593571674466662469974205154497118765800518362127081832612009797211677791135208655571030975947222244091939986940702896156388697483369824153291987073686167530324777002139318413470279656241042048433364326220046433055152852729578886740819695212525923891842989222993692919237472615100849945669596760156585500733779706358408138870457386654241193059708672586204491606003176869557321853545958990356567505391801624870294119931932936432528949726607406563457629766585560671660540673978657432575520784019290826806770250935542433250308917348142081790885666371379201802512825792831275319144220941491086968780263344867135261957832030355640813591718455828651718296096893579696528099136962232464537811171143811532399010431507804093104207869987178580920915816338330525605819217274594979193933371212508673717985311630494236798173382692473395961171143121914265072528174626166783336875274491915881457831833566606026482455159521547013351730576176071817765755446700419970260727985229905490535168400309055296919662818436123589691344954043068417084993042418515611318143441100254684836273784048904503307042512823022818654334144469864777094739208553560786581533149635749829059296246119393683029074065280715312094224394377181707570016063913308924130923569391714082749631151407843205928292033289233343017071717620104383782539117876823585065440917066232366177083504957082230677753483028730804440791299466500598848908532273282430617604433536870549244656172488194301845914192923044940417980905381212140618844632462784413284445481347458200011761103220418715482530829986838601903766970743648611558583843219683829462985125454179903369830814335356524898930416423357637780101882083105389626878573549682678419113732321184792486405312472235772240458590513553461771700076393856282005239517182866152588843769313328405489781534985418345263313536930069834494508150519265157404324111666801100577867432070570859899259797129093678689899480545023065738814676052627792072415873953222344795616686518254684644288141045669331190197592021785720194335311296292623842464234820573620520299368597234655740855012516706979073376798423546327156708572286075098344372691695185094966530068123737084860308994042697947473831994184664839694337557037535175375986444073640807439849353629060390044445590346489807080547512927531094746243960964103030219516279629212680742442495663718052318862263846470799955476386061818219899108482485942436329991702630745153519106729163802601125214593210071022992196150504701700503689859731392068061976599788625505687630299429770241826855665158614343248706904285371192609565024606060980476805643849564018631455895691681597353075486929466512457002559749816119159814446249657240445829871606830500070265766061062620546603575638908431693317686580827474545402889095663975736637901983665399357813486916843384836878670522536157002503934331822460979571591358515152018242743986070411464497975289787667141024839376591322608537114251262103858468991501026809173788944274319658722890344583580395084549422695494127740774473663087455509258025589539182471455311732107719589675807489538934982285624716781068012777893787824608567136846953436876137010731039136647953996495580384020425921876353809013181566853125025326787471553851299475645890898373937335686326717378912502641158271128343411955329347562783912419699016020939902702063970575946865776676706632447820588914726422889766862493099276988297009450925654018240401823741825004149752766609161766575117715826877418678103176017717365239822519456151033958181883353274174591423829154350576222226399417440245566179769964041699124963052070854213464157820264612094289296473624735948501936455217984503038801617276461210855116676932076333680811228365729684859045912055561467197072160501899966289232213112028933520739609122875631904848698020751990531558490444278895486479232941289559922505893096033458039324919979292676473253152286132825763470542990233089387027344975710605478437728772797002285696589907151609269274588689171117492470187383971760060674986149195778921045428063337726914999159348347663473565533230170444572889660539549177884151369701790026692281487791434969347454759165962632942114875278329107606751144589584606865833313309857617086592607732341469947347377564843359989332503151349649132637123718199707487790687459079459969359035701725716086709508402366205862220445706169324987807106657685951692095717773502699178067961846216941368607537717115057497513693576954924182409538367125281045596846015246184259041874129805227848835661722270709406896258129443259548144914062095316629354223024702962096768048163521175154490099950478599258532849036655478728735091034162586282792173706477530041133570184866472296506342877488141699728769229927956319301317229648189331898042906106082947638873852832330025960580133080914266954509506010724010062680890697044949000294942820166166448673847268931769403659593394427493770417944361178979201125684332726173865826928009229066696587732722218056604930121505918876052229151359490365739345517655197938261643288725255315451552343115514482370286801590387955344846377486949841432838534875402210455223478738854835470124070611190445322936417482060067581279949204096565713976814083191908133645738303435634058859023573480631496098153204166739969560577613455091182503504930183300281611065163065872994356577204317001716372567919781237531779695119795725378958541731672785651947644232211550900868254284321595366438441166773316045916445903288671048865812427279024012859152293091795579659197690207369823834510280439756751860276720797771346743109514754518064864145855658672554868069047444245821415035330045257586295088667387368270191107950581302276822515957098706455506565073136863854881976335712271162097415493442493879567148653503431074448917721151406489704544871708817569069343896159053020015597118310454495282810988183284026071270151812422057311159061730670404140078809960581344883883075402425451307854984253487279112017152729701314382495131953900793964346632524978899115174998449963619621929685199677633201372713699826936949515935962128816102472625440223875740269978636983063623397127443482355133574200353617692733642513782332260749080707239844256852109894571247414309995379008409957939086997799096665858036276585333132116762054255750157858474101351644879413516608223777233538965663348205974842124497497082079567962143537285598123238513912761880355754114752999763409774743047036378287349812241517880301105602888764822997214257568118864388945708053781178995727899723615245403965087586832265789556103879241283112114862888429907278258576728428960796810662537055957499013960781601365312628161143799648428317555487515125239727629469272378565021655582575667646165827799187809994302829894443540780254244510803057390675089825073537575680694374271678981448591920313344761439124117401814203861737310353153305138948455851882748497125316401776962339011463617196218510759863054827378415171099702485952076310349527485237149726517992317155016025192044603952029402639235791042395639376257222172696374678275594138285424833501021110818253161788869727495347918013286184947178601210005880762672805022506584548939978837728452279425188617948520718043461500939806565900167927068996460707286410807020276916930071439861418324694756239131735362582616742544923643977697712777993780242279970415670393510288527841012119938438549043197845086136717355904528075424947046295108166740392733324917054568754867097307166859801086447510761865745247125889367498232855075344011251970340711007611518697299428392448165553874969595255017044200694994343521927089917188487863216048246375642152651406407596503627703947557943176909475757646685965905846093769638609786298502648912958372440499774573815044412456355121491427730685520281949544872911746138965695499632600776419632293982002294699536809411053857594077417122961212143997115521157936740849259112318160406127136069066718851386251870752884177828745680479140760998349497651826403574268636319626332811432812546289522470218911121773687856851136806583685617854036432875198451436510066748964053984667683824169593842888711701093534411844920597293338730231718909645151192929851485221061823966594586679336071662195817005148068850614256727815269694162403181687108164473184443045571521437580788661461610431496409828884769422042737355854763051584758858330918727744867324727644573962507855553397312057845484480468123705191479578740930714322062109256292262390676528176953017140081815301123940873027342397861134245607904641079691407031746690460367311089304638288675248392190661993250503194154978220724115736600370942808833291487370960541850202027122153310026253875097151004465626407344104253017046106249326047116120688883286136323677651963537909212862346758427692437965165260444957221137496167299545492194664709882076168460037546422778240506235874771300669506530760577001259710762946638574048723476048151243632087830729916064194444436186771707658831605913866729720201401363055167831605624841115887539156446029142114083870258400454419495369637649268369614840165179815786014076550429808881513989282006769940007157329628874505343046427862840334913514106236597967603990993578657204551538488002240342001467327532393855584107451749735644879261849927939706743260729428613018503100418808674663998628474097482779816828648957149814161140111817976781378500301360292315006378079743032842169772406609347666430321587338328007709573549852456351247315062257887708926563351741321591158083730106539846996578733347888067754440905955875223778836898898936831516985821374550601463423132463758008836275996611218569671025494917763388070260410274108014278035221160684007325338691094031718507157520489925461534638497290353869824707727979655992278920472579620498530210565164788678492072621874344782825294999997304704224512548005740581112256538699098174198355732752191593779777989579485199457999688206420261470975881909283563235303207700225340197447263846090190126674462416421323832240440010473837140932210196534720845853248185209348876668258528659432462716562647972791017464957611065590294831981091729615233166857960261323656655372621540311012327870373049333890402299926858470702257367076019451349270061228324218930812461516031828899820532172298194967959727018509651186131693197038457627386843911537019155708003382143848026201323850748321964900555850774292508943903936402505988064906396809263524845960887764673231620202325705836275666440813838400937727740119503709363029097291304423552950472648408126294484513254776018586357912525926186797757433315036598573921524666593260306101829708000158903113920711406391580842336024490282683363278834100780267334957933579018240750863975291141641176908457142268581988110049203948140160022055299574398379507520307144249789256653043833664067715405265676321099079747613348504082324605628967742652306334536488829273285241188089430953251568858971865008239011828874565369080322290135166217284913022076463462738646525775461996765866532159637780723480808712450593869500996387545318070198870218687340914039487097415278295783241271855961891631079485335970057358484078699379711392090251852446335083706159549577908591891649967835309732725036197440180913952800349535099956513152455107310380596756281755920918115958461557632432276352669038965006139211455174897947294972771197361165034236308372130987653185694308648112869057242006461694436792517634599746997916871035553324069847933384813533656753078191178033542300831621305894253690148914956280528901204438353084000181620172937138224793343606094041051406647231869634908856360699706616942171023047693209025395851262974670995593100514451467456217860317777415210037882488441945830854325177447965235726402141642908043223778117859896393955067842970302862006161656560010951455654026228482276890690185620527120223007933716734584313039156288167020463836506173313682864976570359326480826810919287222642461976901821186789982616203892813511838076014314358753672590198181720953452795624680316125405905494558892999506141937866102480097653438698370263614401750714209162003313116071804424712162763623236491778984553887259226454244967914280094262954414388452293906361640223197277823532396506896646398331283293405512967282255147404042493502014176612184348671949138404611052724721337541406915342446267755350469029741977402265011164476187580208736469319562424733501370189236073935199553166670271229228269686499712866885603040123254846691488016058237500229971705467154032351550507785599754986361958712297915696407544902000740311337304758312418176827440089350509755838448851897345436312694298451564722521493109640671714568422120304901684504575063769309230391571538446980966269750088343079364417583176130487423574128612854806963576785849156922440226836970616365838581204888910643036470010958850214902372699713414525472155218479766105141792236070278748745735176864616697148130415204514482771952336341291194860313028957061144676216350106600660995694259789315618400140074632585727947077269948920860996933732438807657994927512811505124426736302764157571025559686672020774256581900849149642786858209125302852357551135151796939765007119932847201065613885885727586169271731380018993093497793276318893627033725492397179619678748057482139427540527064964907760759416705611245254477583988915751143689174281459138178622467911272445230204785184038350135508041021458968499832866695523613222307446982249125154403217152739767562448049846035335479824452859337221550439117213386941864197961162133905023101483317531795084787167533048127734735626820914033086051054365292975402671858798444482482587935702098360850693741082832376644498315333948696101138172343323739413193911618486764675969609291584197429791848990811841722746795280976870897940431302763074113541719402772315243228726090125957934778034921123153120364654062805337600826842385254506970597888980066410241575124763204421771989432303250199237486648830241035337968231161816191172527083550866915083097912964012734705984495684619197301716319207343761334963923741625237567280210540106430691262478812645500922572764713577713835763889551980936089012939779244490916560716342988595084437957786241275058091098953057750078703243977266392193449130356915538886900351570456646700949377963262709512715272369238711047655671910733915748802213452258513835391369512544245778969142992157133832557268727075197698101166152206338799810833699430997399443300548759027881550828256766106177940679790591068149939064716081573300354667634956010264579735272448870563357305208951422364683869353169167544921595855806549780609953761551484074330275728809672540143381369329542982915043679908418040903296737254772372161395883463278265901093064462693345265207606930680625859938434393667843272622195381857284726180071490147041458761841397529556574733774918355346204148023925725048810312025573896433382913321235072609419012031334322517478247968836357369361859899440385050350389864244532730810090298022144585142980305991430065032577793056958973190322348366695385997248274763666852508346988982223429398645969572510811359834498085007548815762377149246688577820693614065043945441382791758823911659021222251496694049162334080384096150263906371844150802901024366148997161336307816361131340773842844882627669586460702104839815599460395975737524506611810638891961078159875623418510924592359284049936468513719502714633490550336274464514678543260160847745463602090407846333949545930742970388775079999369630891332777216898073181683414914083350527544927417697918510957541689587406883671429262284373872892840848800860775853545884642079555652689647215206311796496679793433960944233490549633426003885852945443162414274754311261010811134628234327758681039328302351486189433787298067407173651198510807392580648492870568477746219510184665961215250973446929488205666137668154491481006361543226581898252555692893584228257424320752664277827543022539442979347306949426361405993924392022418945484905926655640563226637245867914385411624730278602623708476028374064405186156579530704229087789820406868672136720689100249781631645078376057440346338499170754770188948616710842883383996538796657202556819206569973300481424292869640197937947950314188514665990836392480789088528449414787195892167296879482850993987851871583465531136472178521871097183360911319822959143538033484284627632748492442340799486923973633894243931750158141029770463147715665943979079193140932976054399276770254330120766098608391433770649392989342762916947007565786604999986315697651117083433376575485835752330385473059498799105083101290479854961339282379923485065486564684269658078577582542299554145495367765411336586379023749884934627729702567286569103768701466952614370792335877760801402122314760909751733713984611583093045451464577447308802166658893703934139761105313810763846201321127973952308684921384042653287454251987039733451305255201687616155980252871339963273502894530448698662310462284882448725822282111110212560389215051609715515972188879362751883748903816695574484974683023630231492689286773293856019971884600919584240373640785643525190495421535613131327638444021284663444259095659426630581402082033949271171774272296529655152975144860772430264147651016653887185221805840908396802106647560282773724643728137292823509383217758205012232063586224526354276468002307302655005847726574572190608432555018855198116860958991945293400246835427300586638195028258986554669307207735702730559575724326749460805832695229481323699478098980975875102712813312745183249520932057738801522812255544765385397797403916697109052866153159284839069187156435654504721328551752326391791386301391425954600338768721626770070951308162142180853651628870942588688063118822421563447778532980157407974207325004642825149881212917503844229313694142912139221088002085479968561131991162582953214321592938005632406182270535147618964764778411593142973995801093745685360777540778170326606015784643543717365950799185299319931186979192252287587148509807320721428294394214525340520004214331275100710997782069160301149482160042262556601870458665155708286002695808929346075379043957257207708516863603320519037862099034698360486968199293983113877656205939867481346385419119328813683592124971196170592638607398430170199309095138700896600114955874170197284267905814576188212498914046088542115948312194769492265082310576273997990528152589843999418868219200677275640475200823102184930015005233593400413751462284742649809393579386345501403264910105976192567410044417001521744021247399621568390573385921060996737709524655469474550441964100305352753345041216365948680810521116636466293267769145232089051544071118141313538014889357459426208375480327906394973269223230779239921442051468104751716436946367495874240454595280085365748262354100141782502873094609454466856107008522617262957055797856744029355143052809833729538618858526368609604575713012952873293498800496306062633865873684069361954286440702581296697814649504255871806630275191881693762181104544026635628251858070022488467980379984436832176977192446407942740225974085966577331834851785255341957328017311096169542437533240770454610632324146258389493898492840260942604960616526526629439638316191423371490780632434644809173034075689638917874641643662811814196005750895825091743913497724928739504488724988442839874008384064331064686539128393252682010173763287735665129078987988590308316612212781597715403520233631636725325150176544382936996444923173778501369770432471076052344593582108591166286024640380042787364305356135209670059596334193814658860459393112826703767044564772807948995834269884927528432250586759392631489147383239589248018797274078918394857779636515181043119915129758049417974404549098192889602066794576378073490356531820208080336181054362432199810853969902734874245724734411264459418818520985110711636602951543319758765333963242988061816214378744820517011489219937267062966600698060734965289044404863452836172242015741373615593946269424787969634316198288008216935447024171949691713281861482451083702879987449473638976968772842382526862231643847120957415420463355903444752471528415864168581206411951389284423073315453425628373995533663717054980303111393480239845099121250176316806287746403896190217837058329733976307742113008523310225141945922777715640702796787833465076069007928959308405372101812764817926364327302266705032152067439562043297136223587950868800815821645816995691814878843629093532862148660868800885825375525504345967699122964853517660701717500583382404696199922495467285105936126692738481799977079931840464493839449736208193773424518888788127099844944068736657518498134556027458815573612485818097279938592501431216809198352934851092563439168969076724446705679458425549370904341616009774957481992250455175616488891383446988646178890602108680115989097408196971839451864066982734301499898748807208835318090287462256226922716057035204338809829900616992526288567399735122859694552033659669952027795943681381495352720918505160799488087597402913845201390785816649377231688904638420684507831001450502825782381323874121738188711738885286134295186551845172376979727581205507340121964650804791401396537273536659055748649854576049682583156265013399764631249190073225756601602650424363595638915591302309557462975619354326917521209974602693465655367175362594700861295973386115090939783474481214085884195760633842057648969845330910031649459319159743339549534104270610075875315118068154873598217090886688196274446416754727207245918596104763209869331748203504362686588332945386830450945330765914232109910612014520274738914745749984040379036331353014366526060373208413403762814228447736773548801459594717330561412930918869447143671263709576835297916735927684581251287088711052050872142425408828240593262412379796752048636063523482228887553165029066714530677118772937918104780176074022078325360358483698179227835188564118548728649779374777341565880372780698010659029547370568337152350523619290593330906615382969238011902692667616790830929949831068025542161839663425523980022416341205108023117826382463736530995201605166813340354741652368771250145047793310252587082149913822765376979385240750557946147155155572070409625761530934853453598028587307935233924462430140173982279722439167282549646688311509523877964447209941551229736138378047694480404042148475969316818688293352305864533946077474421162918990049293111275494103988164209700283500811177948011676884033550301837338896894870637702949354303582971245714100849577981835532468497978445680371536347699924544578032473405022583671955375399547877641789655973732997311463916077506014104400173187422247985029244307627799023599252063635238265214006431968344917770795614125346268991349404312814980864325783013493603705408073098060095690350306379911425476337175694111583293227903355062525535207660789002839506550647394328786450600285477062113796131802255200656805019126003018446025803040015221158643032511121411404725706829237968373966286737210487809438111292429008760817630849818684502614308192601294780764317313837126492274165431766923947119777286763932534562126134900597871324398105121948488579047122650815518648429836194658278717853583658073949277410732271681768549805031800382496865179367606484988567613518649583668771085399631946125800516574682027625178241239372951396164557447119718396124973039832223168646757188525129302705535477971040465367242344255017582383148093911718955132335095526220309329438618242548561522392058279161005998501994648663068338897534154532299837483740994661097058405487526865115278760272913554251009551849852832582326739459051265366018674696208845916803570470415266545360059587794831584177900318805847761680036897110512753182832337005671478656325339473263570535516309179777652875100130803675288576333151555260880831025611877754591830735581992321968504081591072849677746586867337206882649170369696928322377679013201853333284442402449421354822257280674253590281404825540709379784212552138428847480347090114882339333120502844739315144901071947192122408228201375307822904047558782741770974275781391018053525019542258814970460399627781847348849596884829362772555113057397679832785907199328195403032675486847407053222820856856536990555824172400656843408375388796214613897379772145123062849575841478269533215953432996307539462233554604822816212415661157659787964590427050941204273636578580749722313311605298360572289939441089639139985787314861999278276415053460050418394926232893231575626742764172756959624995350232724540208363928323397884739474755900098736518761307473249172545418831829555674137988361195605989862421193819975617483685561051356564997126902590652668245268983525990437129280240206196309137618304775837099283419812364137130716283122172794964206850874902412238863548075497093370348951880755295012812418475437195861333017119066939078201539090183375662550957717657911177906100035301157620563241761977502959318590003453414310191438023543439556964402820272754756671240462661623166554528482291006711947039156894388093884088494825950329167221353021414579459713593853154748322284940698915917726671634756936582758394556974922778595558661507274764976264559611227302711862420873926893301692750081743575750341677744255336814688813453900671063620203367862490386629990752695319720427831268300195815280978501035505480614025571220784850568198827280058511893091278221143205419907268069635628862901439128159788270026491697243762136241859646263180702482387237626006065169632257297124317991357414751747275650995847265505973296737297244028481769926134858085539351775660157140643790127263446160723065413048717031969720795850184553233606757676549441332052499486481872505881707348437759791832998225003618918205503021166906165396700719391255272782297513996609646238426026974868523626514328065503272462904477745262978708374654041060220552382194164213831561992917823837311159209896570515606601972635815015543649315552002873248184208193876048512684723348696655194449620425712232554931277861143604496155430335764269849442414249570956526754184418563529265847964296639322641480162466565862564819805401418175607934933183925686680320352158938075771831489919948329806661862241505036479525707411576049117984953281023282010324572898305814584816916273414294848473234752393598775051933709907858986837586245850060308247821732931696056393680880573754903297884689010351191162963153414027324953539368255949284648681626704600228699745239121044561235596316544168843470708356853901832736774449123184334181502528641181662047936406654763585573287124947679163010486406697133503292901716269172843935537268602854530071073789940345896964764707720794461586579107465555347686789043519798256657795402307345905188687204873204698589813432650529381256448637573144757752519168837993790979301515076866572358023036792078667184182875053278719953101647704991994155963201411038730530739490990242077609822922535259383175800645624446832001818239490989434565765009599475921054476469783488549534507170808991859296801637614659767080654519210460408027720421321768483899396790513274070269152967735721209487584467644369055586750871129265473563570128460930828371379421088151429129735197321637729931039386263238581808854321243224875496436872079956163090239835180606666867579075288808234853142983451654058770060741964080950908973135381646363597601212538789919185495785092503787503504392301756086709699979453366133929573256193678209960042288913523032237560361478865613173500282331779602624187758800984058522013520217714512911303836751179459971450159846457808830122266842311476917796885153320301028972766490388756282248892292012616619384969455290106160010454480874863621282026758862572320246715549229571505286762307544203541487655722183622386003131263116495903364897006020898533727807762616903689940495449034834992000285402802640526802920656435333053711554068295590160355965909422812577085277392809959372377314380781244702154142300202644581607967676926836001426331246948651167600833416054320418000725446089600356496004991960471113784319981795372020257441081250725708157503570357828139596113473146597863194275721252612139957682118068546696709375363038516207066852326090993637262490259369522312002433917106730860115200096491021159787211361297740426926388041702826099556205653423128981406307133520918021426241566758701992380401251626817165725403826748358558821273291126470486403825432678696625228955483399433707484460917853717741191810372076125675763692882292908011711409070685569275978958995617374501780558953186112452293390023358032924411484887560553783445164483662056227152838488973637793945584178689745225774703951760667521851162103851409425093645528438403783737802295631317978631244126809049276787005936818109680146102487360988981975916748507444320942944977310016147316298193206376847720483989259373336548823900345097057773418673004296391673367132539752778320227253293295256752249667376390400202705241455785305937111526746360881413092749089645191324763831090637864653467384773909680036679681218033373147372557131082207132731476636639460644028139154026621306386204928554704539731775876161342781468871907913278138409942462233611858438026730806336163955851329200375795305550604099727894524111519554852616359156291556169149080737727129255828733128293120640873209303536168289265314610341425496459705995695955854691088890934216295547501197876056214717963478686592829977359723207300035263628039755469793339521161474245238474670073833079995566460167440428849432405407274473712069575492076580753254877523447514226268206234399303085142581428924759899667333172570741603155281109872749254729290623587971085084564856815583510831399739944108493095885872723080938500128707323536263977651211223405810302970802166592185576828781199889648145774359672276246448670212608221383991115890228649405099152850722331530517840457878601752782577764479187474831239150461077250073329645074508224413496179437473531515319597169465555536951354633140364804945481671904689535654716926907167151169593064462267652024118744237695825019777513912359166985836676189723189008078741661245688135690377751420585580642838658148919083768441799543368128451092679125249048001268506910366026574782144331781552594692367635414976198656135673219972307933803069331882796311999507499841979591850102179149165196644871325098574073614666808527288849582361912415638761118103236628558132158080758938004853557607899704468776134755051405071272528353445437052855050918075165902315591959367816567906308971852259639072673655336072514326648347664436279329130408279120654985196388200465353212778112742071419166801493883305103409232046628484136458667977705655781590375493197194482257472094553290490663402744877799436467865549356449235721910808242321699666880268765123227624792446832275641684730145279829251213085497816722882204784030751083962251674988914372372355641826863285592471006537525856592763674643202878039739336132897380629231453733361242307563708108733194558694926370562921585059958257461139250900026675875600240243771742956698554163833519582132232865786611319140248624621618382466591229262491181600975398522489621856832083397113895219732071915179518831961201026026609570824532565959282311926202473492527420509761599541914422438287257411054864123656176232792282815659242330063666264681371054310858570579591414337645622584326400372724401729277499841976107644243673771648167269268108783532083329635401874850002217910563822665501050900118155976537377508087456009341798269886217690893952990139642695637991361850426605830478930827273092762972513205510733071378253356598855386350027454303716548800978929311396680838466786596419817887979132726069453915013998095832494343998075651923804965235451054781897717442149369886223637261908320323512325898207892259019042610231691113891135706868229006478504837581699022109228317501219672287171517799927215913482808806785167870453678504802371951606588406514876472549759270435172753623862068806196796220280410515205973563636316790437989662838290422482326577279655655579995272273617813713108815345318105061712613526863396402474039457461826354160896994855501702890584718166754532258275934019562189276571864656027064651726914783175859617003232926246494200732783733574376372290141916937517117626583462521200021440248957238105579184150327272407796692184108817087893610502739244409009914813184427677070955710322217517422145538409215211274559880487367072663739359430757468144904614368574561856773973947465971714452383721769484863878113463532489093406009089593661995550771130606805072036554553783710731843576552070623270310844219793531636718313541622152772648871119001407357932930482512695398857476355277450809966479737210974862074013359934727244891805441533860007740671105006722560299110995146991422687475882204102556645810942807902972505810670264921108960234591908921610965828134009656233391456600291606681011140954955223164306083782169921951823311531784224796990032802213020803699399986148302168034173210489313948607972139220535620122316309066739405693132066042978290548386398510309049585106347206916587253874185078236263641172764169213711282749561736123709554211193848746877554856708067607808695889099870250206151978699364736308708600828885019417013492549148804406595191909651116369020182802448179207063249195082721978320525457593700163263498833239827614574412292367082517159024942009586773344509290854939854708294879660562212951808475943489547304461353504929512897803715314429152264772011724554081652877397284883166731094742941943188564791166396723481196009590831429955302064301280317924433702512813716134937114732836358963224490167648618675402171934485865015357637984449584507572594795141398166831182761674372444728347317567706912525136246212076595579006089560795412385709496312870963150346221644191137376218194750513279296720831407987640769615666231488628905779383796844397491223239963434314678552022307789204083781947883784181499297241247785199496963122264402429379493143364198130000699230395064608547295549719122167705090563757298531402242283125309552608426419758914367957830225701917334707323097261278639299060859211899526855561370964787609790739598234538068368149767854868991019760000039342210401728495852580309293691252714102287316794008222509076458650073948765670851207181976696115859480973102427536748116925760362070645586714339476647022895150328840927964203606439707735035104624243737148073281068280982099415890208652388631343212653824464145933202876846718391983129648264886035438334546617487706096974695668939917603147811206190223811284979232899433000317204320685327913008828430538448890521536429268406433567204445817224503841695206556116294733029568691208503467253895189014712394037533084521738264263025385489130505422928023520901424682898654253737625106107575519797603851771539139150766911575948040087228990806592172520714565270041720964472913317978525599940256785153468959399165611243640401422728340707299882553124957039644094787607067943837060475152086490718633835317785431501403852125390370393680359722382231955917185257407787965395642569683612454564083121850825293148897639837093119181230070401970484404163511593003072594455206973468638411119959631552015315210717402605059880985855068308631794622572084007252429426115034052694022048028078477278389578966005757149819282042622594729430251039953257504428687143528177968257575941173922465005853281586293358217239668994507092672790533828968453776358633829120853168376000508735283066674899527903118058800753688313226009437209162747137430534148808397412186543631992265466817187798084855396006564655159934238828390146578835076904655611492553275660787046981038772044785995024826170814622368245874720811752263572461639106842648495232278790303634449466887225913149038828040046756108713240513145609958711426972615598234832432887200005027947080169173311470113806758910378267213709669760804579015950096611981850852086064728578840494386533723879582481108470899577759369009011603098665544820472174047463745239902363859207637718458613965396037537736559029727202566417625648061113038987692999002334216657423767997989418470692279978540506495632617730113634105695373580021835186419274813082013376095486841622087735742878783857234115374739506975966562114378690397847210655927555396588521768647521323911135890514767041831394964510936388876323025534012419341087870083888500697400651838892369386870946699413731868151517851333105744038921975048319276747375114620291786436434106981758858437789420704070178378854541463991249146846629439075523735204863290843851984410824387591449361753155344929143567288614804537383797592054175716430745661932566113612684244855116978790002767920273230853292360135042202386804684846047023595475482579159331619254538311832565638514130683681591755509247040052154514617048121805484992601930628810155240283809363655841350831691248135895686501735438410237511386344100227988135144829339227549134279814071252300740065135461594513998691508732064253984207463306332409479011988861806109622236707420987388772645701456055272915663321880169524899994992769722425922152977349337214051172220278660923999612240716435407800878959792979981079756177988727833629506430109611720825543737458340537585311438067693736782281756858245422723986738639125326738252818061911171764068448454561835723429234708598978169981569764507621097356331337912696809436827896916811539797600894322306975985750914307822704350971892930213314489115529635990142238955761576505673925322652934196227433756506270942852461416843905151193677511699886212674531629620866930112813888190654772080993555874021978094224681773953463468582512928388607875200920689785414706806521015743292751902329441684476820208772291956809820370517001684185057043061083938448411110591418965628033619146459106672764917013874174339776977703252240571134071238118706419515890839749626966563691083525637970135291551282453597884228868173700729145259705091306949226720437860372122306921946350739179630154792886301151280951738560884689058664009486270709894294839099932588161954065797443851631206433400335174437878642768541252756435495665747472885975204781349194484871135685308510329244043158915218989580851392537503816752455680893974783253192326904015803573837837963315159239353123639687381554033384659520079169631950171530095414522167794416465029465206316453589574654893043812388025119288892046077193725827781492998478286963590795044573197324165491001274160830933751471907155307883546963684555231404442129346777609903691777593407685354368821188539471755072286509335122934631275876788545387815847321416453760363223507329364789745308587152055611204493516970974735912388555477559903627545915143049094176123679758547391606029122827235399879107752305471888704172015974384305092890144438809709796319110667091183478697976750718000731770947519129701701259647379720235585819321787961767472167839238556728086287440620372475458549108205410134855209053596871371753104221639795516045259845523391220896043443800830166236880510097803805323857947873384380790462044172658264302635706881237942518231443686913766152668005758946219137638647983196380515542469124473889869615438562202604600321255368239112710575170264473968060488161226407318529066654447021072947519597455356252849879353838571057287387429509443898211569937333831355081588319277290653903667544037400966241547404584108355121371383433487234171755731970244853821527518444686425550458539054179725119853202457944872049356705250948312007716227088552751491203216260974164945406104593661154717692801022849986523340953749797016254737510969503033323601914243523629567743150688948026863582697966755646840838759023471523730520708768490460975915523740713987738219109193742336425912989114967382348548914710728971829894807785350098629758089229137149450279846701153662421703400490037582152203401916690739171341636680250585217948860213788362028302595463360240882217350283209443313124458008219658705018603698088475869798500735281846614022294550198232164048364774103212005540194769628712338827547273908376275551666536246081924401638843172797048247759826418463982862760341082592100118316401069413233242290254813716988608802240191329882278525971202146206717310040684855753573162576847556929569145767733149189881413461243815330488581085518705883013262061896147541739072456416529145407979136290286793239932078850956719265266562823703889676233701567752280426703827388423091426177775266371934505138471985248271060997804609465604328449994970073063924049813624114524837573028155144026604502641317995996575249748725635939646945415126292868526106387971974920934479280466224052490153736832461148987223666941596754296020863309258442960512108167416776781617944250594022950525021101833378047103722877021596812613007105071924977300181227137064052680050707212506041144349587728966633618716789168153456266896142461933562217272956901216808994749485319364474492572087851538913669173411824051447720435947964804845698042967492343202245182508750635687077456550392685330061162865014931068884597844229138457949216865775308299793925591418474223943806832712874821872582764053934148004554073107107818928066321921530446272872733837740746017695418649211497693398757079610738247610219182227423366385033074656687217423475982017694954483269262199611781464704299059056943638645415157839882834419810794978248808221742744954405978624003448944193574388275831624543334561454802067678638886797106604024683682319232059207291146338895767878890238715012775792187814436359092260222323271894693956049864649891029448442725335273054984924946727940011675171949787833925575895307443055573147709583866054614301287112456446301251214245837408598070493067430650825312418416295682755213003933497229141133311419999239570819880598077768954341375734087273683753584117850543540504170836977794810784309031229935759070381147396823311161661985500730128934693800989394090142442123604377940256830106662906072900584874628598962859674863538491591626326892788384405911056922889979238890269473735191892547446299700085137863243843216450817248038243908720547278998230682866798546188774268927648267102938146039901809663155233230659967512253904324523758738719369456011919767240261227722937855335590238717497906957688982980794669611372900772086020224069255114886794778167122094390347795449399762989778674604601405041622105626285444088036488834138758097599696452518733565093343201962632209001690413945604121637274686551456197714179074347409072226026941435963009042939142408292345719480931197020499761343424754762895786001052879322426455394738798841719987564992214066957133176147940997423237615702757887039753440183300587002434184406094484048104388536589955401771470196981581514648067746411767208141248570134590393093965953374078471705043953748678215899323994934394123504025140111071880322423916682348413880880862853815292564492227975454932268193265723268213272551149027708277191486715997680504278762908570384699119093841612749484610829444903062368421167222009266359931437657823050950535902611010896470552920669768246022462097977002581912213030188353533439826125146227610527812452023230774219037508097991737634998662286769392212568434365003556890716877213978205237134765821959403367172408726449471864836124410919770695411918782680763399579675416231128527801255990214452687028679658451863473348131370372499933338161507472792602824478120844941310921533378002087911377437864092680348435827432831699874087713318387214372696618147352634173157113195571217608619907577569832499396321944392206848210532815466438861688324128933351390809654138763583689065962648527004033029005596097013042600480333917905277131001577156521844586097163332015827880586056788087852461475122350488012033362742933615781322720937597232218766645891320791424591904855452230698234910237231061533402216827571916910811382588430456760692785989836547008414842474394669871205069882584929419927262598721652838152315573644982110048388604632610009928187805775017548366450119167401668516755772679346777695073470866104944170073605884625319020038020731402275896507487570213930640163931195455253594551971369633011857583927429209574965232551328339114115295652111949716899301509003339012359687584019038373320580869885411028988902940838499299289172683659396110933092941623545668524897743526756093923967268743476475874391581922005048944186194595149917860407015078240607498016604719391542652132810220058179663719042979846723757797039681649808187952826138506122405535978852094702251789243978538335818308015098466969652611976412753014308842192419485845595553088808497503699565788837106206724340082241253655102598862186002645133416958910308702043618496449430447440771990943540788811997254597432893289362355964703030070683722863719543051913484800472708455388487538626670903513602302109252038526805989742518089637628573658416035671780123271581192036369991737656255888364748194133789201930156094907525311975750507187130728693575573739071302857921093822587282778025407910900588788212708334804563879592327898608234550214534693589508315182151616608324994692561595584070177987831438063957349146955959811491873093790468791229676410145505612055472380683454778537139834606425252545961528797873153282643413740929317171910107156015633681479886499287071342640236321124035390840225275800365465721296671925599017693199336455415824234582607680783193873115936969399969333480288282978000600662522187894743185178648563307615431615915333499746312960912035477996937555186389126004215282604150903442676857523912618284106682735222512300254504837061945195919157351416368113007743004931361226901534219363468152170511542958357236285553077832828470571122810851264527849404232686687383981804621878446886050132569972187600800240331022059812667710502346523270560681303646497593816978014221409191298924863575860654026794454487755657662140128811695278878001818708206516234513983346836948197095511650864451586407589259350920728978673025047446582460974591637769361757072153191793095619745260106238531189665513477498898338762192702145888784542453193441656311147446102623477963143550321450911071068801816058303170663549038124175775576783752397180620545351327825128275920282859069651473834529349198194903721639404864823519083450086133065694575822304870881985337297666381439054025164097098240434338124799563334194244221288189037039777369554171449939732749421514651917250978956882497423617495013555734706276575484498793033445219667700186169565777614226618406070882397457971215724431600106226592849314150111622254738284892716724857571167207037609175615883001613927937877801349741177969113705584185620333815632721933849405528341055952713489273843228518982197578512466778350654211364046754760332482052759893836745553500318851440428625803804220032053473148857162459876467631593529226380334116593402760055989042975907665727227524162405053266496593794157229384496388965002160674609712617523193399501014850305899037219599429016178444244759946876677531076601937460230620302705613428948001044270001546634963208962427967323718648314073811085936371893335367670466077673559115641167078583353799608557534713862090176514691302837425184425262849889065119331903487869659933971140354561054440090797711924018086118679940832573694135461956870528503566242460821873381665966968677076813236448392160144507222495860684053395507816853725133633870412578391135999879134674324714366048111123167286076006285949402122465092946002556093696549196841362539955656246575153399626421413106655176005471385876032623869307726583940887386509161414922610181145248711825412668061945350075034501029031514154879523923490694321246343707142208717512157023859540566384638559175548944892725513200477736974965848484697966966198790918073301759420842616199985539067129897076960944190700042400681214776809480832354699710522987892023234595827887597056260205096034930069006806849320635999834440304697407433397582933707352672871268945371203896158175874973651519687065888112691149325275364119372317875285014506704187638768493054536308073025180376221466331633141842740383695171546400147127437225191234008983995196693350259682699160592579551022317457128579017427609086851866267111263426483725230716140634781341205243032907614278100311155035361452361147158235461533758941283927792822858654125552609054568162461916913375204969179286969404021234794073518837214455131387869871753011573447116737720984232485631751629085210807944197700896346463604942561228519770248374490098561708428891288137334790461082233733383657932903115166707559776732320628469678484724898253445061373911167638027279115308993192163186168666625095412828435892602908753794506636294062333903718834471675726788164883918071196302751316029577842536835802617702307827191666929281542692704178555645234700638935848453612475977080287265584562938262551416176750056283021646983784445073802017219950525554946930779949921325963504296758994217644104822263786380631805043204083908667970222809634250036261139924836536417173637985100636328636447199467458169170274885842641679154731678775997679926481378315608463165376398393165168753848667880787023451231297111946973836642533179920801461863235588584435038130462014249069346199065057231892620752317280135809275265977182518127819261578464031923124577304414026429405512712704602268201752101123022510317399628309268392058757762272165117110241411479939854111483925293186457077928136344877943005643893902754532696710394902737837661357204711738317308716430051226736422806370034889310940223653544340655954661099715209960769537173295816469080757655899379406718295693853254145518677903032962821902967106543460010330286633597901941432541569410168594884365675291210750937255846549733978963316461429059682498754437715184519248841180898567329269424271027026319840355739877721734226587055420845388321299635637924542927842593427444825783770258177227857805064032968590378260735084017888232653558241770510160484021872022370276503406667271984329512426788137265360965755157962566590061684708013442841088101587736713198600836990218189966629041293316964840342360498999776319318300442164190413696695138984507442646368933985960180067140395085364359490153385464757933616591064415350537544044971727801753812049344086688297847329799725548044813992762863030077504419970797621764761983967236833334574650432377864649947714716914357360923852366926893347774111970700841382313341215608623868702141600073760761768964477930155751683342060994900483463603416380861437992054374372378468628598746827385197289112724645792720490878124957426948691744194161619589415790833562063152234360261728243322313230559390301741153374969822640772835908052598092120252510387085061168937771040525782908483831451683337207404540361468415376540096507227905616668127881289169657541723415591978446159012676886614982589385855538191605923558170824742802797819903412878776546638597858650502118137415984462387010071201300566696092556362179018509907239567698913431879232726022705770149864316456784181051770686114210699723209041887490421759750489672236182921952758999520221476834268133599214721380347013219930357379639753803012480940517734403859992673089886347996979037662850917087845429905462902056505084142740639637752097608843392939860020542458550172686535266693048958140757798592831424210816250477400050255453914315991224125746181876743685322061985103411748955904203328298444258051585621254202629926545532537562771325859371731512742659188969902247863711587340984352834066480297581948647230466356754475412937129421558138160024671959622896802217083878801096411773981421450859177125195288386984427415133151293217540134472137717280608068072595198684918749769123471683803110790204987256601157950620488698224729537536578183399933287789035729522968169518322589542666235912787134376415252287209875670833729792005051785258920035939300948424117509864700713875702758240152706687027595575726544369422097414728340346928323953288316637386353863232720463618617228397730666011262591982931407614402453007765753288699612340477749030762919347647036875744437425707487020379946739104043806263435110209979294887676563395835948716285159293081245133093545682110296533222025579705920162400026130393305347241303114516842750957557072135228999089934008104993283298880416452515830015328866711907750463926589378539586390447634518603302159529200140087134959921811663195660173395604012027447486718661107777476173638147587925610354450975451196645371766688407162323263420487528273958426140473076876550706774784145745593125128635918151359464014632049166489758343952170737683508775311276991889190401055938971145572509073826143212636551834187399350965760973502978794074156259842028395287563082403822868526596403877703995769354669235211489249071603990336062052017141549939383864352314629006874128958594734764112354357147583367212395111289087562586771328533959899509694196004623256335387210209949142013096315638204965167848615005549035186469612717215499232685979645433457807434440514128105356707447891026691929275706679744571696778652417432096196988737893575891714985262148866038717855310417195337830688733696906573068372956399631167537600148062777036874306256172135109402357847840856528323570379395605895481527221573684147580602124683100055166993496709518428377577995489458530224987651272587099952839670431940170130138486655537393011770626522944083629526103020491015292592507333809430624212267722542365372399016864681266899762830783371802918372971037488596432306318035788119271754333457558454552437017107125706214833076425951733657737722078311302407096239979951793365470781985955854311454540808374214452757008050005691678007593130691953351541920164038215924713326587820824100027347899007923112519635056414232664053539271566864176232806367184629643957043355249215795370442176203552091204375152506269659609038742696295439854679283753924098236332217785013836646053016414548684412932194890666323414158947365222096236404107357926358910201957008512734151680322391003714529151223354425900302670914857117503862579567733795243486344036863144212162100148316220113101308661110317531496386297092290777218960002451759993828339514765034226537891674550927393984376565366747960360424028395882860881938443870272408421245293322647728956118080053504385569300975839265695732735542294656093539786038689538426907985983668519637836422952852650588859805718011130213814078739794727750228819289987373228140580268598050647599956593208330795458805398707650519460453905713895372742968510286193239310249317030934141814727529191473745919947979104778675394572757960989989541799815721932564746359636738830315944246357458273885674343143026294194435732444581157079407953261718010933115235513278169015806588943920769844547425231593338792186971586266125729097545241720716583196323776436656888442473535250945582818936221360124946697835888452155456840896644793220223086754557373660905010756655736785414301965127905226096810847111371390191692423549684558766106086118149271535841443514234549167474778494729686469835426266509667951426702806147279687520839631636607864092073510940385182471091002388109895530641868530080299447249548513240097248431440214183159321836552035248720862487716554655303473444518436361716046050393095903929157358742053358608885226991287784146025046288284997625721582307671027621537898294991131643401731676168862394408827734738327902996937008622570963464271007843403034167981758943435355343233321305440980923961859826829944324521530926928725590255958367837271151822686176210354362138895860713665002796478239544163585381909632125702161485861202260342099454260322857712930785602639561660528427036148700982317947406153627563419706187647063775303495353974654801305183930746978103394273082124353815123632341413123974987709851433365567980562165599513508262770976424829011920657166373235621425163927063321945178562067227143064966294799427527330771458281457476243578302608607573489589816279458210841593111989068980208587021698561106399643173805891240897095807459230249475733598102817951273009525156113719612675775799186003867633509109564779093854061909524696296612791091022705078176870768021262101768329120883986803379544907729216435791865717710996806441530974981023410626227501362498636364101854786288334317945954683028965821904603348479725111771260415696318426613390746321938442152578541352285996448640791069187058439363974685538560679395171831921870141631289163280711287579889134264555449768134076876221678428838092564227728660374820618961256259012984760398805461208680306644520036734770030311517619515904661308807399944037551469561591516866409770415375348684729525450092080867015910020619277059966505086801263172856564381102162920948958832268943782732589840562158625324940929060089239251834136211900526869134710541686360579965491373516097092508681870517886643836752094883149001762287272619068980972731758812679182626491800431373248136792664168000166799409786447406702900766612252842840605552430078514588317197238261024596015023605101136009173556657033312708772296134139400761744535675303086362777590756721287444355868847166281534107234164199350020382004254204455808944828469163066911360197189544499227725371807799828352565554391019652363515171393897599114704542790091396441382672440045298165867707599632830070060252748021723882333167132243743414982066451938246880469878027758964926809970071784268629739020145033572965958847486271656786598251339631146582018433316104012581303453437272623599588696958259277133389728388298929848925865750602221662194963874610707027177349057256774134728001603976728577570724831924828973000952873384982356123002222363090980366861901143622058444732929834543056793063521282447327004557451774294479158306039195558043165399789922774831752583898402370675268562609628957213498269123527972535278369119673650542240037048501794893221175303927245223712191984914419347974152116604036695961372854446537384753690543488132459959985326051526613911512478830187081932771994814202739779225522773777210175178794640787854680330049647057312704489425880343947830806088701208278866989488878899986853493243843696357272036840815285278154631826112999054091842226358174922554668068535523269836367611796167803379302932967731149579363195137707084305097011596257684166646088414781528288894623864730062454487653164538901565976902504435935927688191256218313812859000835452388011266844172351067715008519592579129934155531493130287816191459895574757222377696262489788938482455537419603783036452249967633040307880009782769623809228450450974739323073368229466269271096117330753515866912566390539252868849852732643520055828902373150512272104027089577625999951978449389366709694267329783237517587300577799125111667095371867537496322729712412407975733276014634137140236798625853239569012656869846832663918838428458802964454449600119864222450281314418133438050679413264625081710989095623658125712554730134704450526670512707135477153990347211832939932353008533074378570190473359593074357567346324768597175110013663384423921862004653809719876356756284677197603354918074425081812766102747978806605764622905020543572371874028089743051319243972642913674551254919576281319646299868564132708214516406525742080556061887501751892336012640336872239392285316347840755183922440517239080803923219590653248082097044328216230544213075235197081029170178047111783492649183998537887491530620653091594703500353241693217917992520819984654222187903833873304291801035952916021907545388696082750489818237144255738217321646240405009695568040105733046322883119521694965518277400479852441933411472747625330067501248873432263284617302363920045050094067259201186009854128396080776762552880180427608211314079869868724740854013881839759024883212581019602376509412833424563641873862687797999299293873812908749843616563737063691024263197805298716124266634804337958178124919642500546913871041740240991151471812275788386525689701645839983949547493618165126958195622855766123566233460499564138858219532654941711415045243301173420588003923436197096881652289073416291790351042145294773312677755973971588759253454121503186602738011072622464437748151599247426326188455395869367241208444480218386739977027539822261835270530177430791754454720135050527786798971605603393432013075436609456643135079779898774789372748655297338517427778672145043161049621064855857412334055348901500928714471474991767925741634409269394377298714765592161746223627637613222520564439616971657613499927200347533300549370371311409757387244336623366140934880758116894597758234470600975053192217498757119061464236662597044254360873101099312827274839889205928202055816363951151155585260200506193203659917811805329415994544399176169479575920397940615246382099840167669658539878077831032127000032432745025061806480163610380921589080621777113857347339003384809978479481330435741620852953368107288032603173564553999882581095624639095267758408820601832355439393974174992898584983932711231151161272349359044644472756793149073065840083002554887455239810997551315510722776460828511609204463298693927363468685895826939751301059302007245106270499604298682798579441688820904436285877898222205791608448040264702311226518551199330290165162157021011884418945180901416875073305245653555299358655238729916081340633419597482359327548723661055018023816662409281657141985132756879418085290143854895800270560710977115587568518327464014747031355893093520312096549537254405938459551382781753575664605429936863362473458570779920268274297411313479404943714763428390120062720788253475865103576791414520157958962106664681425089757158178260837209342911827491596491006897997553600009915757762359802489669812456261525599062025962843455097814547082472962743256528186580624002937080435577933785953704269928180133803695449998977661004599203337428307221649761700269292494918972502187717110451332871151353586602632402509323994851972058584942704091838215332095476755308866048742561631437360953398072506872710693773726333311346637481064710234594458344396326036073130536907888039317562206751320486550389601097814951768355465877536337829559481828499270324591356694303968144140226640108999053311813402105216981069255009350689473827088033252009847673999927216342829361749176377322339059922964684715688901530293177559076954466219915786125944785365476750658723062114207289064688744380494046052680109610170291014030433988879681271992034395040503909450493557867714696759848489529867693530417849138400405957797122108043303230857768609995377075189858321144284137964293874209142587958645907543382132084359541487271007241714600697266460891813362270094011479274548275114157415966565756525437636056273446026572128547564514263983270257944311156228917356581150052343049337880848235566713191345625811713633025122964300295188599486775395205070355221457551669721845699397834985448054612773822450446748409982613582308120564992150799162865512536979722314155094958474878630904473784881926509980448352780200716251807561919059109961438631486708212517805332645104504146317615610428937955344008980037026483806867539783694973946491967609556615517346078857654478770595748422511884220105120430201861458805511412199324595594992377921462328427219338270144806142439692651182260340293242215311324160358285074911814866093675490035975710496059914230423072351189161758612303167467302061203438906441963986389485521625967334318527194086124737003187825542294140437635232695203768900745700610353057932542149633501660595959337504384008057374775222283201354350240547510243985827427235598340445474851597825261205418047673611768461066734218886126003379180031462390307783528857359214369578276588212316984263280208374429081914414362300036203110954160944137672331565219710971408166769120553815751594700588937009496075674366609623965830344760297695734139131917043115093853942541478940482631217517511345545958342959603542230955421230230969463125718031571676301670973236554951777192045756494024485988401559775399199041572099598348384055945066931471630854644747987262629291226235895245236774791285957486450099567352925584354966887184825811624143986566930903969520568161175563268938435389626307462171683771098085504050893526299272554927837171338204233567987139671104829060490244004826430754801069164992750421566686705011147098495406324568748457554172173122586153450241085473548086201404175558573588957524366709021365069175458150345231861612700312610090362917602882070597468920878702960789141475992999028038733198792679686124580978898715806386897374900477410084806929335770165377664897575129650010658102729645832692505515236463894894991200275747424951795902577297266231716566545519238460719100787076360300592143963448340329879283762508428801330881516819688535772090685465962076574610752081332170442697253998410300536447654796587557008453825354657737225188567433253054033828001542188080051967084910850522279332214355395113809089781449552027636406591368168255235322397695475558555969548054888631844602912142164630696432589462756702976495017109370767321653463001419698228813551105694112777025982625936174590315722229378580382638688332222867377800843774917089545984960968336902468871304319202080566275230571498965805422127790955689201889968395693503620579971476237611239956897638081643399104130434349544094703885865088934675774125732860643005209161013038236625286976300234790046100543019071486943307250417425488787888430729754590454791312522976169865045155733139624447042972727778717157616909342894598414656802174583550425802180317999237995686797122313930224448666870876101213309129199748309154980622966966608505346945024172079580329021886800854657731531815954261153248403904976236839695992620841239848567406207124068244563370678166149072722568006200184812701868265177906049056476298078124395296747462951088462972713403660706904770778514389059469037722799877761994950140652835647023334676936443990550014387855356383851289813361941667462532665258466804307716928446954668915113971892756236734549852438920557101739238304327082472559465248300526938650220852262462698824957026812779832683272322328845829474155221698877495245374700704604138335848018288663035130667885039778606429166087179738035674970510375200856347978533842316404714389950655489556908097051731006236994100699757720271793783669497603040846772071695578804371702818739464542555308992259614337867942012930724022233185625473449925524308796420721704040791447034029437204239424440413762098415086098051562414263779740189705289360038685909530271739420130841835550549525219300455412902206326043077158162857018887202570134501871198092037956540348764046393199890013287930699292442303994226126624223940449593716203050319551360834831283270995985645666557551137008376292114209628372737905094028704884892524989155471892932368936752570243996826638056686370373199294266793384489122724554504285755700342003577171209265911758899822881436634613494700195509125993448329372098278220054363099621436321568410991438285679527696021706889793938889500417402205900050953480358609575731043690193085786039707145302299374481707076290402585565044111125244132358001826356928201037003484478093312821921204364727126901290642870257776132823607837459325050567192453332314812912233672774489190074509939641978164596238566517939133275105729779247216615546614069627678881781920322300593756530490692207944416133922399731413217202378540407350209010302592054761858735369705563383683385469171795989454468528229674645982797852384316873054903445927441426545463241076556542990122920224177272468460107765832000006048174908457618596923824682811598183008913514930189559921246995098601572635713383436537557673063643960510689164883871022028656293921805173669938865727598038842982145887844239032871917575501118015358677121163869047646042021719410322556694917966463140236362395161825913090955039800860814231118413626670501320651351643535866371530141364490355041632401954373452505899594039111679125609295236364110523367591431606250374139365852605200931022115796943860485382286172428257425117597686975758480311213425332551404849147665947915896149371355917788244952612133708581326265116088641195594027671047472876369611369893993684752394962015244740665907784232513191787069893339372003744817040615722871897868914649093228085783208891163575383589094321880040672958651409272157887013327553750908478219089104595376083167439054374158348746803864329433518066132210203631806991892393508236331705123750500970769064309718158298425804745859794337620679856842819819631033365671795323696300620562392042569877439666682627809408994434440794843458149079180125203105792010374585331037330726048688481307440431050564392976397924971153144904067604231323725861780193161333240826037862449503432317520733665595566213917519936978681871627713039451949183255345123541929633392756468786135241857617968841347357519074251279923578381768410372008473405530886661904276280101608962163758085672434544185103832017476023205049887973222480942359066637344427732489625216695656704766540210849635902764317613243014471621949463323520607131846984212541903239449033945668309688255887333500162538480631061768830181801341176353916066642392543997064702008649543447945323057134139147486035966944628755498139073156748868284385130599599945655379309548313837961837894518287828740363536371453462100376668483460118550798989137890001041844301770314660635669385326075199384917695057425149833003412453193237669402856221613192623917603199950113666553696575799021591172572232582841670065289520314677442988203699419361765006379768623512500577489061516579329834715183318660877318527710439618535939811820132661142006719679935890742628250889961115795488531434585564574515194811778547543675777155101420756032125381180933419299177885305251080891926795569546104501559479818919522650598048906470586502284506251600987184359159880358895928645084587604312296043194650674793030355761612650038466907677070622218628426628508591784881579657711737762086268396923413979369494609328898559753571169985080194847305734514081382365788180904588585193434676320402471287539373811594046288918445192875570302701069570112186427215118344621512450350740190009420281952692872980653481857199991873735869346741885985176991775489356391077581332772922870698310909641255605994068121844509870991830095860772226626421629494918660865735442452000754552846703361560116146905347220739242376522267906615069423695736286106848501744701885697986193169448544446557709083928608983263237713549366124912123779329950884692456025020599802115838713270996511392396906883274465524602694844824498076349106302340588603415328022077749238900438406613043174800058023046663163247945788947698284245181655201124681522275523837630652964235690802379269073898382895805413117687388070745533575349655721394492117227039087878364457224027143301000966381544043363757646622277800603353869733047142729712679915468775847588289783798823218646988836566659343775291991733115767483310204948235015977019306198342076313451702624060478727721650770405914055769332149998299698375264149757933706684189821882431690111124448081535182199440802270362561580655304201732071100952521910610301756227897750624462050499257839507600673788791408344855280462631960522219373382138957635609751121397681641641119803627578817693403258347295746120094565784671678110519426144619956353730505382674485519039436244187360067933424612135977715234318453231312342111518534246792351647470946457316349088158090569074742565815360623191159303263964098808177790519223471249832934080428599384390345756503335431434218848665383506599480559923801952982931477488618030761182057050335225699785396452775904610877802661397789167803269185636116805263812183263389820115932454253627766165921028027702788618950109940378271303454564198650860758626636935265775597252337510106221297201534670250582113811762575953396495763277533883007327279102161896823101304585602173087927766318155411013208765878660343957134577792453296366503138475232578993899359061444360418395694842748010602089510727986894127512335649480054234221653497296713818361517974324210139524538433137693184637615410199149297442731515596752731841366876837112536202159659814403906571519059301417902955123878248226642190737487617828229962637477479996237596588315492402274230067596195131386292549479791587462494886983068544823939695618408731620433842660357784109720765377557912152012535533779820919629288687663514693712066415734722021920358615075670400833172033280141466042690007819896576219463584255889942738161721543559715539380678952906146264670996050219239026572575387597281945978842393900159693226583602642978740974160566610140987585063203880108050568844045736485447690230011817820560793663329423546737299575305145106588128209975162418806301350298983954213867171730147512486750409670721246988707479397088955663402979941105151765411704516705087142056089498584488770167255258131085147518945641310642604130780575989675219873332402819841797686326588686120792766300841133554617265534610616509795233045257218224247127477714938946535440413733023454960049601815844975114553738386363258382763187690241459221693268458989434914835505401967615677467107063400352499833226850076656173877741788332197170542582439959313763490099002692682599414735031381217568723220315186059913290312953714238729054192739743780670620956144877248314372829779851179952152780871982039077999365554764836387436100425065285203257881071794146454549749071792991315438716526485251695891998624934605993666060993305851547794765199112755708269854403610469466849549047248120491127605061137731878895218875983624980762063179018512379705639278402193899288664609946144305186606487095384108197383532439687491745144881209191572934453396059610942077734590437283012347168600357062401034220906755820745034966005985803536324201137743192095567507688505467970201596450359622822829463167435480536485999744171362644330027585197798213545663331889217312952079896236472467605523577095831258535702658325967834867496659846208293101818331619889839244885445767056311982915137589624260016964103952209815088855083576137669070433723169223532479315660789721627519366424290585091608193576320231319777549590532657907932040808654705781589176943071679107797793492273151557884760397570023408545104042465304214773201088263232186795267409544130046870056748339162354028835635232396333846653735385626366295424594495398776649797521594642259682330476751452429133128908396947019499080489148604920700400950993900329720897893987288801626018755276353418094591977827208950140075436856270161613034509727765081385434070071278581699429288665184273142143855229363952388878954977080145350460314618320326607444974042358693376090533431165400807502679595176450896250616517053065670122364882174297286046257343701051849883733510821144190110185103963379395787825361576316090569472488531813388901938076027848293912762490891741095880578604775600616926142024700740806892996573485761682046548672948737088667115779660648609129314336813354783087437422006541111961171916926785276736313919599365063863436303611703017289278216848199895362767965075485346418669325973357073832239727945569506203591253010482666257846265162198694331461501762506068566592391129438249656365146125890460849487193194251091966693305364986133208796834664875322809891098378395250025501346543955276287661886670053687815145397822249616843799757704862346057705211458888691530402882332333915420083861257227791699429832230017289414209006997123750491915013271614723633842423322523692709246487222343066854996993883514013192503001627799323964291614569942289017856680859803618722364990766952262726047191848145098743779661770155462583316841817275741685368460557037681899979553191994356227101434293223796593046551247663694123582838289492505598957683366003766890009568774199323095911204653486678913584631994787111947502822801177425506621495217927275067032832345688213403359802952882505589327937977738756928198395337593230728340385207295159439479009606006821311056785984764594899840821067872554123536622266944126222999665199748229000809991229958477116972745260583979450611478806105284520339361371795942429466576178667572297463720628551335405887185812724217510369389839429827670581763319443081339601472503051736284915445945907665831804567810020430499330259729864546792127937628387012252791333272675056484409749998233178233874840766107115375705957675489803128986417961165720011445443837931443106449100612395490235156937373491668858035893629239367535137101619488863813467267726800910125073464688469531847374185467293105194740791074327230863460716194340478004844819575406525194705826902796728341848904485326937092653752495470897276084269560378429561117218542385050637269208238050918993983107450611501966869091477446010758794944431251801931003789128295554493788668317302605151420969023746378816104265339810271029016403850426374311216973009708376888013416389342990086367781700621398218366360084027051397250744235315943171935814796694150988449312359511549656160561486591401892815515850053580195884667507817964838155051439599044029759397447028771681070652376403942821653016996915726718033765033084067192004355462961892140732864487761004731311478606783377339625038025157551522884693232308057814153031674464395162076839568749237902698489114153497631962552122751537230380087969644213293154248199988500633831425926287863949329333691234920160292234523105222315158244030784382004500290957203342195282288957459244617053731589234169112467192041541361713049189349009765213006989789621684147197517660170207769801306124889790199990839560819135092546366776906873921488723511957850903910511631923598071372709511769724330003412208735611895467330453563086226970177199081830637919681972262110091758552179226126777681332206760407867546682218728445567512139171079253866510657684415693352456991185222655627609177169373528136206760268693423606251286624656186763323236545739289873276546096323623513822232267214655942047649886683781634774712324720821376970544515923815832790568540538448992572156002118741215249021734364316542250018132699986750563827544202794418922072459032004767635072647776120894397544822705334406688679913312844731524487301224131899196607994834492918371413892425358101887612404170367367618359793762066719732056855392391685948028689617177645054908435384145249215773767958913043288191104567919361055454451476587900355303531824197174064093833129998367008507711474167189241230560393714806280986927114461094984530696649768590899882970457607797809999329298522447935046350431616731137970377263441483843321489009453287235599995916855092009734279985668894381106507454259167639283389729014058052821491010102281450643355764428838559223246508887320272841907066916929652044828578738583674843727096387425506200321313131471615663380191605014360727943815496438428679478813659593189949212532362526909194374521694258404913157447932330718542676675668286442508494492788767410362782544970312924449253718355740216252098569955116933228695683270152483673991091521752305301863197810584065932559664594338176501702957083927464729358520487280363804404692770715360983923128768900416389502719170017580378735799471615308524997208634916277237795390027040453815234947150374158789828357784812409772221455270442047834544390188759631442471024441521564988949070240152828732311013284027699265703729333779161348281197597494585213130442207839016988430824190836662156633341792744103844701156428130347101717337312542828928647135311885934834312114788839533596603682632793291257437565848583783444496313968244817238612180439162228470963061201463654868311015445409613070037167694169472915328550685947232790859315761861440477248806155325476643744053882002929707890444600228781534842036281337682431428210990837583335191117310762476078317644206471844598165249246146252481956223998071074005598044831395014890452030091823867101551511121050907260791183920574744060816104042453530128788125874993987749059148200889386732059054248117398877288203349984403851528825554594388005585764918741358941177219636547459890285322033519229993011883768367045686021025858688213907040405075032688234363811557281059219857763226403855614381989946923947361830609512859898778137208668029720170519214490843493194993190030829886965451941261097084558576826996874972714862570444886531617478474391600565746838520043920609321305481652333808413247558301393167984200391449129200692388584547528876269098490747613288718860566966097208139175119402180527155669150969812912848641489573047650155960020064114316663407799830091428622763690963720239121360010330980651974687092408923487660650068433889277798364302406926865056134620189257014783423157263205926319575829168944693234638431087869312772054850955175053726193478905896826515425602420817818426844169925813547600811440342827244833641460981481568687808311727623954720039142696174251224383650884614759047799422814540265172797293983988993151454929747909478342230578565059098718131893543619062536709018817930548297619011067967229502160778019964378747232170069859014325436672248971865433521867918301438668719171806529047075210260620891086651815487718703113716695441201741404102231253947713004741622785171026704298432482103916193484625003056425427494885509746459101642384081132769655497276705067266692607045548470791758285295095655419029216792759246033012891969037821971966662474356512469164097800104073893504526846592263419807243328956618142795170508353131196611405667011643402482609646854358444185729656648802555161357846258763904480760247210088079444650124995378699478698213712650509269736384158812044161477322560348906321598835898269712192595952436587938247318709588309257757891303783578159444024411048774989554861813429028587847812729190267367349689211012128147672451234501414744207808967326811543889083692570997831733284282254953473082985518446017328995269865941096076914870680672097508566170204150153956717341326060276310668304669787030034769176841300392995129057973513937700786798131346093338180676275972735293083949944373867795121010470684489777044465369355470568508045581870730370302012308750717507169203964652405044420792684451095035059688370683624658193899831970355003881412871870081086725048424886779158102986013341863444475664791419578050806000761873684755943417978887504478402835580789454413683559636425874002307562931768188933377478626770740112516563255199763149225651643064406454930461615846245169626900646716843921204590516135733781773853478487187074387475693423488295174900591608507851308283828801935031384638260360268460684628548997733286115691714777472545334209748000176793999911698618358741583214554521329603211263606414714393292304483677800670061129576752806479204073513064284046630283902907821058698164303406049552506534118855952869119428772150189464867976246104232580638973421384716094247727768646109620324223148121475328401784972538464831922656652513166807185562095497960313074412654957256933000805209368492588546070456708724807932194760882674071733446337597146976822111413690439509412119899813773809545092998756974305526795364450431635324253283187937985291324027367414080474777217876537943855759025240937404216037781262964343317869939008626460900549251481350759024126821789421077709967418791678566871431271633013261749164067686821257349943380885482105718159386509233748524312627453888464642099060681250774716584390048932962853985374613497186771407690141538436755614119436672725287249951115596212705570978843418936505277134502341955423325525004612797736132930364926699930792114813553559605666748154775070626452820089250943755159194348665246276152180318486604729400670549527737533221207074641936389998537308691636141435636841730343887611225505998103806787287953909661857351533463652965680901624071646489919548691607079450179801208163051738403668146400264751339517509532075104395014173879743819978540985163012950417524483532512194407429436788847635920735380889212009415791185130500888583143168804039792093880605432766363383140183790464342357660158916499696057737004704616737166444164125997849954786237326132283869394624969016066988951492239355505928416147217720906010935585830582132336138316303940807623140659259305563409743157368260034400596115594944939779858154504084887840807315579629454899890650944193743184731959679458839456269261595362455288292367627472173240522992350129944054423526215139163499563187207290136443916587708673286128918114410602754877077973384299975116303696012801010927493100753435162497465062428141525141290782888989766859288669292439342975497623089131522560214444173553423107661761792641781166380168088025722139370160289747782226252508887823269873770927633743210788097206197390901795206997588389833063017017768195501309276238021587766717957383580404256718597875911047522749176740837389682647247616190179720221650639458111420956335006351450802855433364575840949614906074795646234616928346452738568635543115806095281556484138562710012104851267190409518074133677850151530332777703627916280130819779920809707796596586265854379693284471281063958209582203183993580261946987699325220545116031975934914265098825432841154864203832425543977829733243037487646653835905625515618186200315962793033357700670027721033140856991717409588794455542539167983526219713226824517734717859236680829778377251430994737573846092349709036002109829689699573554700095109815730896032782844230982485074220764926886217334320837383121157632618206422736901298289560638037692157961940744373477766723341064798580980749694151400903723576918135511674956005112430585447106777372139963500862487741596476672212700197502744587722821743529924948440790371532894609981485751369965140849586884632274275792107666140070081207885582526199183029443462206967387334825572165906821773739949007601725276530895193948525509378237158648793296261859982143218707123555223775132258066990257989789052581979028194608724044524255700445259105455922356779539610857636993265481137385642538333986424311375622279635755482234456870194486950783395888251303487459919339231557904279660958521323128850981593366482376758681683676666620635218049595709495936310686550893305634582529203434576933840192614723845400283906704215247783186639472652739104321150560953858926936888890499864027643362742322977546942308842537598610022837901950122849065673754117161123037410141376780606985668071898795264424026934452036544634075736051449914838678366065828350886016509148190368368972590011623437870228041235532918213463387003589561511414734373781939477588450131070821382746429055999437812731166933617909812257802058728124889200154069414745764832601347875504391395713444484921714687694274170073988468318362222323728029571009704120630833488237597373683890695060742338067386570093924037189915999173735427029921199190218989023158887386465912874312738879536306069319381445260166063117609604453697520225456883753708975317661283410053642419116330439791206426645620050392510067624394981307717913907495358459776865269391032348812866083647968157556722052408795469458499079232901998231871254995232168598858240922445459284394618987371345641431168814628148985533216861311932965692139174961585598621325821841371598900079099478008383897681331449850531579748822387583395553364533432578315514441773871163475255685904006502490362380682175643839994389551697638645056986605266621330766852227509592674001567973752673107355504606755378939109307442062459716321475561413223168734920282657011934916044689605915900175081404195088838681274944207255400693916829763684249344469847030439742120078767192442083811121270851382417134666597892649699130620087733738475991663774834425006760890770629654969216233364263540151176623380774070569998948415747419356951082594739357342998383902566899458751952783567747395210075907367847575138102653819746614771406851487599221755225889175539272347333642585859717800200793364571143678974427338867308881312430827195186373820532625210797349531941203980674637563536779008843594156354207824127867204354712443236913119287512469482780555832770909972816144719218723497357725877701475155060879011861131475630392170063482280522077682822468200350704866823472490311496631427401823682485234714830722071513717194246977474308829510402012878304081238965474054524666517664676200434184485129989444335734166089737557247496889435173234479716626254389405480787791855977755783450057916573891331432739448720128662799877557599022379056871340500113257293469652035716380764160929659392912120428029155598348269858299578175306410324232727504570714944502515275921648782659247589332001822552426499520398298565619816171815681466683990958520391429613580982122297089286064636443795948945068366408435278676980142767199250565430726159396861266983660821276835680750498785980965523100842243702640315739100885306468360864078574606214360979434537607254452926516653374722780756669351621025400353772400089829944813437987335130927033280913014178844079463472401510627948042355896479273677699016385257423126189393669401220231945053305878223757867530402858925691540769800451569525186966009466587425764449202907336015758593824973161618747023953842321901999019645700191226569347869460195977986819033416704928269698362515461641176663308382993733908580993049165159238107066030703307233699854217916298615085863761492042854016238642972079780682668384511391597998425376932190689492411636421470331648662694899604247430656875544159199263399301930192164551608651291129327699236415674461237049183042164299094238095808372850604424691481955721600812010554778851728551315107606464263163586107462230818153391309249286743580614867327220485544555462917358019914228477702161509019201744155684657119222671007594814244078848180750485078769607047612740937121635588707742574235970883419966295889336342890420123484130769173171700166015850247469991476176010606965056486476813929994020993086292620319083365422576704009915038106723914579680657426138537323726670960097848402761893211302428735924202211702456037093063680703491096662235305712195115533586868786950220075732814555684236510869431908247476332412529541494063607167620590730388200481558059704374442862683432953895418865805233862778519797802380467457745883856338174064347895145283722814197212687199180611262700636768978941310803776603900418598407752948039043561254329523832800852354265411479598702677807124141862659201754381082105223942245276316146138759388826143947325253765948213283110080055254610245233528770951908194409684759156738489496250483056197688924440792737849152612394762845362999774833593111687453106889967158124433657434311884809267764712365401136475437121671148772355818547421184963882401952578177337048024162529063728500880509851588888110249500542014850893776265643303687529847086772315893669091993011619163645224500953362901788498557022588800625428770770036717095884137313154954959093393899119014915607545928621675505119423945515645970060322772135262065387891305881401683302717953460194727416371861906486869843784034208090877221481467247677831337708546793587962750998038525347285229602475513320457142586818070477398008632630434985332040753586176639710536854452449749109299223707216503452890149023786761281760333732215736335518179147282291910904119892581927501517155508601030287018466028220977770750875142560422024567987733431208624020599285255162450278946485183208081958423972858699865727066190838026408591282113404870723837670211743596117456077019558409019545954867784095747591100459740873513092409471540886899400928090158230844198442109628778287799546519204181825929104844345048616379030179496894809408714274830612680187359774939054900875983893840302693037186365759068037381258670274569973131791666347292094204426327854449043430878842567677641237070227129514719041362872101115876642156348944780866491342744254849733051878542345580144396148875925494105728421703904461631037037857213627833141038787293811581295112947739122377635508142368961820924253923762245579904504055153477754550416049531152920347468009272430325192564154085818888427049370585959782702996662175888286002211023648990073337018473662179248291772979812260481335085726391054648604293492794966054671578898748734267632857206349145556245417015673185053298587459512770986948086193241327866953229425303848868382909272511682792055043177998488887060086223102427161389381834001071037380643213684745845255113230535442538327785351438554287145587669179672707663653052409308350208007691217576899591375343192239159397474224927973834859127228904650310342129260745574641251643889615633951382418211744548732317571161677194670078060810295448082986538116405866573998904686881923841189745998685239148049741828757345031960329905952231940710842191468866020358953125284373090410407306117772815002809137403490465606382892405888329155790543935440550479805493074020315330302347926281460212898755377542443782788077631968287277768248772252223349122775482036802916695127908362633804321571752358169360043184968181520969975060022813944708570571988802895619406859441755988074907296891228122653443167393132964865471399082602482935038813556176212115972513914081113341382434295350741802223256534178602009098034059682159361758052895336911186516428581535180399022567701892511718232376652749354764098021391969175851084329188381827843563204822931770494378832397377740981217602457103793022189322607472612152836761134140160546519371936253506659426180988110164846121699658195891056957386213903107345962253585432845671143348365703207596825174373754964739762782347629931645710916943488235633891230032747876456156356185657961423843902468688639434527301265025914383270295058430172905768420028611431988643655342476376125995195887016440747816303484221791693170277126530598861121400657317632447061795346199490519402762028769094808104393159253107883777754041827507688072954033962830055062745811648041249715694635515950350681027040443990566408729237066248623807033470518826810886982318891470538799718221448975919733449461264601431223285405582890622933211172604974830068130954307241119474061579249375246158395219754795693438496866394883551417724346955767829179714135656994491176110201400049441208933737506789664086993455144663887981427818441617987129599535269528876421936796833979755837506252357791742885442991879401961737985444218179335781087778039711146143875246896038014025852145536975753088389175643568465993616775439118602791642135061796557291143034743462948520454590695558321021779193932332255379115869124117210820603815302687089567589027270253275954997574128216476051725894818473297177361076532311042702908039018645030494591023502268841029670088889850982310459214828981739362754173018774627240847506985893561585795058818326908510136108813851577981242325544202055879930908845961294832589875408098637708374544759931834886559066711474691762358913340067176594282012400801828940215477866218263725442199982631755318718491495214992664645748642742287508957074674687571416421546563034551177805101026047053968890676917296155283075623357335809046348308698351340629927212878394458358221969993081484092151536793444243468359796026392624607696615245714560914882697418134629461383077030522701451945407051933504491958734027932588746165416846732781048512876888898605408992590834582995342915458056066676896701702988073169663446061634746162017422790674631180038236789919595164929072805488828684380156182488875221928440076577507678253170474075260862700456140194495047883923320954468428518937739318744000349580517340063735561621922294082421893627071036477076625075812876811615583052373563526508085484915256416494675121587090177102998753384035121553990355021755296424894102218305648381812761012277177513586246332076453617356162558059538270567668695326223464545684605504167138497792013988592776198622161305351643263793210220491819118718992070954878066941829482273984558583455798184082494679714678105182887041512553008692328075029200478432547040640159963527990039112062119222761102055200861921136426370585836692233828401426413047941922800529495722930899220421856962273544001032067450663494828970499965122637176259581697838850917188543502992225695360764965347027919741554767477711492732382722398846391211658908543546201092597480832996062409936654222938509523110496173564710618927332231923568903648258215818545942786125219802703841832547130690856888330716168783060536206076151985710214769722485416224925913786921431002898062095466226705797518954874171992988708069034264447086879348408424947751947339499761178202548486614442415074393595370010647934172594742543255687636938837134270408668484279503357297803763705914495377704873094922212431919795844105053078798462499105049838057114173389286227864438119669825855988358905386797452573324773411369553321202641572404754969890894530532346621339800535352659340060627147701201981987716030424023581974573966819326311624139163768891875496957326903452646420411095747198184966550729695877377058534618285502726995307687738964983208344698515525138104317287454798925292534627463725038756516244999616880919688765592081338545181940064205763004303461688499177329071312104923579639630570041859110240484673475873701569136981580169007555918716552042877273089341888719023225958281434790833899335854523977292453011548674760293492375300934488659190987698594032335345543079125070589681123249305337303547717920751167822609047487282603523668392311929163544998770911252079808829979274370379592037924339695798296423772036814665243717966388731959638810895351896328235350231182565213114500646729237629530359161439711557838962108315193862018615164762005872264496090379803363499231950769976426380237278054328579097165703633969617546170396480296136046811869344025824568530351180747392204924960157386375820580784879498836076559000830226669634936120989465647436524099665702683492354689931304910561199628343925286892421781930936107660405014665203360755956891125102563744717677780204609186336562085666319903464132536148459993746170510937487608367223242157292942128753941060658568992446122358434472723242298768198436524633186218096865627374858002952386169414709826969408032493053756250101717899761357762084237779558859813020941822715977312851527975285363313229672694439931876252958331808537006647253554780012968341680146261346047389660045843468777733686985786491297147348363108045864825855310201765692527744318153074605101438945630869754093688850696243786540880054072597626672293797627392714678750051049452543191927542755005047333263300271998081650900471469857367247620545213637393922087536087056715474061226817237806634085676117635563107934270586921140604318671940876968058890237776627529955759459128662978218043700912645954817796751756659690016402323588417271192777891997238428457302089125658663698039680119738884407768773066298005633415101668993996328410500358962275427330592659063535338278318674970750596076850790056706669247516519147135030457527896853625826306019859338650699955944617106462414952929219785170687146497479700682129369309548853024782142301060046684332715300605661906292678892462277996562144885245636635340615818387668005111619913149035223312923005940717580370182404333294876380405925910712391672166858230796086452094930177962217250841574201962963728534924182942844349350192932999643434943453931843092166630953396093978751332047788827087926744917785414757660799590372250883718147558673462648303171911222190919831646136450384418656229199097044550911605393276124281636741391245911783148817670375263184500948037546219940697445581028923464341730688786054902248074580941161795324842411395546279514806018520359750674784134007913189871071067905261342508353444903817216959325800118223992377856792862876482081490693505984428388299716392437484448547554734571038976982471849994336701007300605776695213304441107949505195700470218138890980533823795990159020144290662488624727894270619554515554294362940211879233555804449962607033946945075529963919408768183742788153296491369617203750972840378340128077785849738294027974619769433784845254631238624944705267245878964131640166413361734684635969538459208414954282790099922665131395693442498342488097398109128145803840087670170160014602342505149145819212754049921759838407022473596459412102651582124474649984060237333232024709916440273686568672854452067999485456335063792700270366956802532758238527508685502122970411957688284306943699057628964380045088011842855270272584556810681644875543503218859139233703937478692472447190823686345374265302022713814255692499296755421058647800769507702657163285604864659184953351577530907005935209643126964866312912937633627491670538697526626737636261638884044725579425237064357244062936717208143609250758423663316737952221447482878837001033686771786926735781623070845568033375574325238944291483770465425201465470831615847051444806100818095159638059816253522720048267621253488558117602959990813386629784796360489431151489127658974664034107756402410035868512541047197590622512801698185123431149459119551906440810607783059746199537747549884629867947978132923684662042083003022356155177307845009285341317447955765257136640958894349931312071022849853756277726554897500204619642577694040321028364707497645024003085988726608707408064212962364972174176269679349050678569685484068920618398709934175637282644208570117115121322915994354244807742205105426719915234890533647719986835925830837138474122783021900996944002697110504592645179158601095505036456261423447167413248591575188639467647259424214744126776378712062439996469913560112772948910559223905394950299327377451160815848572752820483668784306630999573448068095364100069633451175685899955836929651134469211379378346467121063086630396948522474600094539893957001020876223840593349250626419061758585385555833121977396810228368494534241140100083617732571109592688758954873354199712283946220543440589427938889499256308819076827347222860724788524727460246788842852321999206634584871937639429185856288209296061160442310506753622517098917067588055738330246451102674482996952800495240385768599784008777689037775610898577927454389319315966548665038638448408220721748531141634781992578961905614300505742937958696402128933756703919912197287725539886588685801023912271488884024232625208670760213714764191755553424545647308078260702755486718609581171655179414260106815263246819553478487894474437824594803657684997711965562420829695227833105888024089722612673689809141386682431492649485334865350013686792219059458508797559638897302409397660145975970144416280589361458943141598890478931097002580339376619516077012504768555067039588162890776461385365381979779589585156372306976083979242037351730173055790960876673580747801409348530967357018036901927484637583762550956226317178890548484319050759829426059395415359140690423981359508403730866836410729078303842321175534465322822935869375235048561063163282008937405419507171756672649187292372478838636240964504049453762135840077571657236766110116310867983261080685994225544637100847265410068854117248791470706758733022409160808173614933766065431955041305770770242370735727807772039871745744474799408862860935875634589472673936674728400777868501672311734760529184551087531750265696729807044260319850551535127957340864287373281645463118014908875322575938482913119942922324956900154909464719442462965006167306620724527549522650997213242644886729994553674477884523882541385378334556791296991654854636265810848921648191391644136937533770301657132312480272429392602924815445087656047753048577111275444873550637494210006159355711507622079213996608811628904677538254811754171101427401451780981006804932184378803039499418492205963194112421528370212162532957364086571279054398827171405217555110058872140225128379472057506412412418966177069987882331267296599268452758650099941866968795324964338956881251576386747237734084305492726423101935049987474359910158660524985209662948416404939544280028603477980487987442450463034980001143580037632754526021228218637759581628682715648539267639745548463309404276677541986780317350079969466451162397105557068545941484835536115086590229606250085292105812149799241333685717413594727072129840257227963301542941138794902612782876412869769521442042886825546956516144989136907353812668646599826628539197901185015506947540279991846724802068784718422328755619311242301284825113414366680174476464769270275120976558708915101739854029538460810728483732313667707766612572091764612563579640798835421956032450980699680863058549084578498036092232729154830775535863345207779195721699132185014914584723857705534451303796619449939564090926501826383768187443542602544502559960879730677103329368374096023335449063838978230009546742160413526072606614802762793929702968737771652384636076414743500955625175841890525308813016357125006123389717250560623625003789096790873026656709481529566034080012521598478914277351582329977272984963082612395348086778035027900507394628476079834269236086199889738975758875372105900625826160204255587576198926502431027438766514259713464260054015344394112823084807789403511001804238628938109412701163006872784843821352198707406226211848942769771539619150333271630597730020132598644971523832611590948264101934809205622285431108805366815196743269394538356714952528295359266044248838884067958841458935876988852825518515210730210742431764531164065618035238537504509693909358818967833361634064297623759919429274923188319897570158828237445611509465664839689044320376462757904418789519625852828151296344681321556602921416268584133260970583426288849624006149356538769069595796249566116422540478469463011894065952147803041801569268759016417830301226898300811004762786627108910652094261180587045054920745075265427580570977030709034238968072341166444103641448112883975874703324110404980340261868716575082761114265842854571219693137940847057694298910297560651319465119956383026481211471886949862507933876378934410315943693814357820951745076626555867533632655693448236409850066690888414623058888259978617694851454242874614813664003068370548045477334255299184032949975555661607441688258555805339527169349977113511091583517253343644563151412116267347289318683835550490562860719503317656255079921511520155483646184527859853342666452533245312069187292605315851998988180657981939671837950950225726162308365266971559484626712006551610164760678319054750885833115480928291767511948333215299800443820207953383130674993481916892162759338527541991204050407093320778122021275373436808216815851093265424421245100864281906099868813481039926905833523931877318416193076953123291270617730318229001969321911632165142059044727828928164335553459893172590445017039370092088553703148356853358290152250522418255192519844826828398152373473947870658202997307814536980554425082778638594509148044489539730058708853770582836898939294436313744698481720920896448861723351621800307934048063871523102044984610424075648790596420614202512251682442323021229555866994645219737948846384647292522998296192171059491610577699588796288642196916715838651854209047765106841385689910266679385902239321648121329989277450042097962990347069169594504603034001515667100692451823083527579511914448118629847460912285448433235480796787576287576367262996611286941211664184130313913004987452778757851910351214557023425434990824302051759825047605961288836445114481144645947823089164580168770731508776451692552415142940813527225837243183503857168663248262125060742894364467130643227295509008356577457868870357548602920663821759586424421110631131051344264727378336512114565166701902387559087388298496218375936305308967547297169548312379664984639491266698570990703311864449141313659411236112763745878588812368028614551023191475017409533798565198767488419692067435641111997220930213396407716759806775621712997937740999539859917622994579574344954935418240397598332842343065800796711086209182387263196629836553093639386588780622285715192628523713278316971376937170167862516721766420438405604123427452166337369444193482410878406706452990371179622132014644922353518094911630444356136607213505112979126592981296428371036310594894960846830409041308597152760748735508218741803265441453726707718468545140580878874139633923345139081677676033649948456600735984919644752055034526146456779550065208676830881045482174627724270256269770933278315498178925567554965761462387532719934397688031428073248084344643365193559512763487523894029232455526431830080859596618194088623161517508257230700906756652099603550067277877221018051559863421597818807167314310623965345292380177648643504581592159100899681836473373607195699223365193446749023014454773040305462864894775016513742434778515508331151365813006086010272558237374280624018017630205001261195908677736545497989241084591839181268751473946482003332113733872311887631681331797169555781658400811374549623673832952057361718813581274450943987604524792316289837344203835739850172644015182791242866617333659623476922313401593633693107034734595181861697904637736018678231526225550156941470739910314145704430978933179101598304541382008460047455517036669242746420487102294862879026246853047345960470486593966700453626674476296263437985692956219916219492157724580521655921518460235085300083609632182544769135959322786252571493877365862199661615966793057654906234707003157168019352173609161184955259571971223549862232079949860104030332184727462612689928121263094496046955375594875667373155638100038104815470714514029128527480378911381268525172509241196557742535258072819968660960797040056165687841890218884831327178131950388638980357026206163742644382591135541335233175502752217821074154194544441416084474866043066434595883755479565958658903795188585694101180367294655413543188420488028413759889895826918006084889509810475156850441233528412931035162451383341778603206847579831612990895119082531975723598673458099915114280703728587105957986398006963551013506337867578595426254976038905601370235515457843128872316282460510832288755175539788480378759430801034361451331488324904150717013239725596439966403035557395980660254314160701900862071861484773709923005376310947677052523473970687685553557102296352157056445069339372917176109854325353249330496618367444067950667786625261983720067593938653189625564133805928681027305345377572558238382647098092010983267087297478219969284260734424183294789758007372876766677500566077664023710779850276216555810524895612914330530308699609694617802534725259767411881174841530900792237965170554530404985877335934563495118595715290443855006121715007556308540322112481777851905923608540572169774081307830598590196131957308077982842127940739012415871292393340355423384629358359001038252564089091019742151503342051702881280096483792049043278426031020681368996614473437227077317565167233816134546921682673427714724329251396643865400565117452284868183190955456192187604323445147010022168521634876361365210146290369961282884622934809644872632267004585527295547096219614333101901923465563673882378226323371254797654117074898712345214667931040349844902378682501450740771482536304568162815703743828787568484791772690886143398699046598875193698891834650556930896315516733040564655045808610103650006847104339008006175511647324073248843670682989049246211064192346035099495125111226506333226066693821623098406121123062935111374753134598779302776877492818568668893794548162916660750492016344065017764240283462433151341639801197801690581318575805529259581683991912430942169290282974168298658164698153541867201755814921774061345322072268324937465556977855116216309793453907755974925509616305390983941351843218503420822868930588944373891460292465564030684294034389833629585113637003819227351006410200420314820793755250852715002609401414226574424351642204156153200939688149812235233090620442682590509943691389178618292418519912881687023078965370838536251443449260866372233767687324393572149570555255911605389006033944614608344746631072269857323371543250089718160287627953320799006244551727228340647409355514955698198839024541086209994505193948811861100440427673256258521692971970689439571756079117577554941137012356850863639180257939612748771931405385588372644978795165418202188417349478655346971089187833365071224599089245274932422195864800928392052354330534064872070228166910722026776081922952255718828787644344416748859880137128173657565417143748339153799449337684855150285077563582990072683459162745696721560537843085330230881546424851919055892141260266237564387463848612192031833840927499140492778216672936920902668357111413948727404839423248194546208103397959059284649058301432952509069815014735686925224048604004049205807467248115505097591441290638468057497358671613325917558594381339988795034876911467901806156165265918874530377241277583012826449621745487891254795947210234540100600326016085303003304854441732108387237952754832096160270011905401179181025024481869459070926567550092737294236369276827998960298570334283613460698652179177785965783893350322939826567662814447902143469066367744073959749980763803090841082232500239375978270224173773423102784456323977287181484806138088993041218810592057941126252915943732044538072380175165067802347340043592290684014536745833477962655836513730586212478837104523519238777811593741180005378077052209422145014813347837690171166469419553296411473277478851645977289049174281109598129966024905265886352814984133637407355589491831596292377518596106272977808741364171647619535661663130617964449430613543339205782385761583055727435692564044006283337895312538063498545490500789248647405412070644211846654227395766779305239107734352745743935444851335791925010759780394985528508929587548427021731357853145497815499188970492613759620674060822360836003133121227255415260999472355070011412196436336646723193124820887707471045787871502295053382489847586184802864491659356990073136716760161031033923352062914765908253654199024108397254297060510091643134966112765877566436216060949419450571075557635375552457544582885186192367292101241463301366560495648888761827116534819127947591006449827190896584152897198567053747459446342417292305871912830852354728809561335167887062980892184700640737822408724811343601587504968779654195710620956698025344671160630830990062881732585327734255105277953982225969771104145323035121372138020107371374634383104587615370675535271392510980432756017808494418400968161987956452602965494143042635796046352187206629870915099226000989047462245429108474230206086566623127178255307502022116134377675014650256942873370289985561273316789974289953276620697705181776379438701241280556915014946868059826707871410434322279181494058776082079503149050535163283248574180070961608310575704978426918569269275108198940669762208323472429754618903779396206556647781941919732408884618536830224795850982739912401183397345778510309971579464429782708815213142304873913743094935023467662128416662807255273147567888093738627961118762520144580693793334469725341748205726384273302095812281465663815907494950816130516594285017278427040174658638171374591676344293898774033272697578961971506828114974098506035173922468983732860903440525619001887884430335537945917520181176491708796023841329144154983253438079082136651591182572250474096740887251640247421322929199013497485687822258425957728477807766504431397318005607853433605572722440582582135979253340641869775643396216150926700717598282120906467921636469890346390758249140435695642559273019369056779653703048359863373707116983705410477916945125736209152327986628464842850817199420675489260492567847554294968162896873728091172014446027789961403516426277574831387028926364470649827948484324006120010761994988235741377217372550895154475036572243723414417975133209373592684167661833527846512763580129003329264443405416447132483811760036097046428792922424672535315754960334887421684834324350965453376682565931979066312963738254720184895679137867924084572182354071356635167559219344592208899100599195873027822721535859261262108025330294696368106921157628882542327248275818413660026897543678115802031993607043392677086262536153542888895294979871497348199169277004313402461893536453742082221104979276173313324837955791434845060320393952928573415092136202046237909740925188566385292276070428720965288067613458551305334277066270072039221370622914520553438742693616710676496779708671111485517281200214428216990543724098326876716478827757189297172128948192675577004130936243178055037121838331192976787493168499108717205807044005336011676660162925522860475514804760229268571323539035083284283017299843530769474286236387888008785856480356756124114277000349354689767557438464283320966963333893312833568672903385332172467933590113679949739311975227305147458697253728811964692254408205462356009215013007450137783336674504921203286461759256441313840515728140584385195861777664563762232054102948015821953474665309807291437403290917285454324521972171500207467362725563094764116464705013056354699327020700456148351664003186936452394410720098579675039942220896611424367387446573936867090309941802386068157075665363055003512608036088700048816967474524671511527543172187946270146101323480596693798818346520728246278503322297015286031808769790650040573055982359425292748405127761884380573048628409558745452403378763648957627420326937265672645484582487810231146726632695200004171754098942604127717994001120105223005316199809074699895242606493629334895194012023064137872017005922739344361286498738649442836423113820161536940608820670082177922165792098605270538611487826945202786402260562183430745362711375195334282655639529905335557580937049456892065944719434819965074275785470873843844024085676280345646730062657809362215644250683977937129118897670872507500280708138646447515920913042394198540348939554961768846687694472464324112396321442202837539032371594468211937989524541637492899719470728705032140583058823475165047458475157520276704994155386977765063947402533379474034941981565213467687106332711615617758466735961435603262833744463221119967908910580636893340141319300978563210382697671119907533259948261502398192693243230106273587215390658166951479418193608561796185520422453491891503347880475444117799265529210268120311204037673269093756771743403044367308617864279251554009463293258983415986441084454776297916256868078762318775600451368310882404665259377440236623786917590693060099753211690990741324357649746801846304680778627683861153253927515356623448701678694333586231788667398065160312476609406947060513045426518360696443597310040354088044422293777863367412566557171696836324179123812267793197925708522283180237654122268904078231117246282100181650958445048153338076516602772917399920990518777243296140438016651915940039817376674337026079391146332490482250813655038113699549350170776248080375624556516938375204615594948743326227680013697959862803925236276629249035517318330231154493718714344813120909458930095544488125651594600663178938208077327886110576845320678345512127954556141828303445702042713530396628179575941090366382642941465067137503853246232088720942928474960576982995411443603405054275145808358206029012372141419850816046357112390554336933562781046686210799716269393725104413078999865514402055078223545996229180528617576750846967414923451474602387573644705376685697366821398871628153050337753737905479120761325301047095055498120864834633405516041242084079069821338959374350801462372842014788471685074899632625914564552153674922911381526538038292744375482583679123103149844761839815594220406934345232984317471704363894969567436064634527715500685671707794358337346694636265866335133591819685852008389074158124504904465160288031249959755069301584998995482351764545350775515445606410712015507768744966857119308792355735660207858834691135379336887150141325775943950689315943290048065169617700434835312103137172749614722034739429483763804076176166649988200631966606810685588975852519181175885483684017358019900769884961087852788519407011908019128846491283305736106157131251792994500146948133417256896660742036929431158065826637769391466921577336757851048153327670291982455604483856903324817952240922208138688411300194378448552463584900468037055429485583772615527544720038531122376191611371767592096973178993609343192519706103152684012885453338122794774000264762723482941068105856782732210921256938205780439743888215254012134291368944413110497735496265619824749160033605401252411114921496127072223816183952328544602065736821524212942254947981115527212714191839092166482037558672438584013674485971886154154486778315364216373352166059005430124201016847391579958938951154852957094983090758731671709789840177987360901392806288669096241871131285078534491278306176922656754919777115700627406302817156767143681378855095996272934075373662470655371857339864257577174730707590049763173294995546291477881823041603083820389311949179786278753758571101349797251456238798462146657348043900998461226656291161552998166417498202215254354403965389568393289280409254087763795383240673784140204292274047674244922621380867375330068002424819636820611570128893807442883945748941342865054576343945694746584976429247384617341030105672583563887417799633268627973009929128985877550733810185348180961874460707411001833370667063619430040130513448483993515972325272221125861455420368241366766075613568932657533463346499488097153002167641651375078775877402631514152691739347152295210920858005541097350289913644702765068824321640988571298085671003665390461437916937302901949839889261074708924900350514855135308073126601605425019075759015593724197115105504911145237366038776407404745419071252280023911355246610278287403482373240945489730619845615576436529900499004732248729796332448838281730268969015979466774244535748125461654038953405933437835303244521526554247058474736038836010161543795237859170950728032910038323967210104962682889574930225483201663678480049319644754495062238988386991692744453983238562290669786124682601170309988178710940869661665532246880167521552318280446291403187703257462638010409638957776799000062370335424296598647511799097129691191122078049042688408736440145417793997489062057595266236851149766279392983138184554515606930801416079791444178423600292482182916357135811319957738508917465928012272073060986545791902707688420941924315772000556692570006243926018030075779090264760698066667268520088437427814674498748496084491890214787470757481625610342275740648471677131410002693838596425842022052905030290605822666512753480638905791014224816540804339606551219423748589397237154377424391794639943910716257958838429784232102016790417030959296063836088765782792249987908935121178321400999011133090014539112296782332061078550838842852277544604700836873679576748988644686097766658567107267637538630093077140777285926003777060007937049643883653369816247505122489047362498115102439853217034767843015241834823385262986447574467982867340248644640738452754013280759804686192747789367716978383816345296906153022797029359627455454871081793308196346647174665527813729669176392562085042748670070994210221246114676350725509516375090881272485919373391507543920632768741487477155173942428395861965154219225528084680145209245698888860323566589563256530051660404718518070130562466777169467713300823960472233207485431934647404645102431700305003353212643884275555943270967690871495423868344374379397604758162533415546696511831216538164995816874566651098402926117329810839431407563571511742287316145729763057726689827480309930183244756154536955263011219186960310849247147692393867642047504441517938202928187295662585940652776060479345200361947509398104115490018844006184373459127790395976437770861953425835874193762777889717980981773760394552979424589140575015958994110959939358694406015116288121970026758813288827893657683174887648467212769187531647206979671244134866242825121100562962261188830773836196883156907948739296715828559440913166567396918306415730771525858393435333300597175246670936655487996389967697475343278316641147343514405820563689520054122613930651540172859540606884784416340212591554169312679782502574148336415186459943347289452337080520599753114487287801941217075962244002589226396619016640578343663754904265020638164426255670708614602240632743829397590139057514777037820693172310311084003527225928511377068303613819315462914747152841472277629775943892122202203105408909249809601530275434285485018235743198925962625343586161249712354753508606282355566114845570912860456190804795340329909694767797073744795249754661613427054100761996503544676310636657802567307771465985291488089887217520416199234712036392601705414844273832908198338957869647881080510141822126847669101108725134943948803639975109014494955303609317837316983443639604681404481696626075433118426699777937617254395814314322383661135221945219620712737402777795092902728221388774259941713851243637514981924041309171749843048729611230585221411383545424020868675284772694456571046156649931443809799247155749400134610135212257311193350897278316811393396453775745492015089326761796457471989546392644821084121472311262502198791849542152486296770889132492808494514321399422908454751361620222253881779927269812539053117208590104803224971023928207952574028140025927287474307321081217574896255111970140643256064495564067375885669363612850059362506037615183170963665840829735751179019897765761049811912105567571080996467592544916145281930397711352940726036935515580303796689042462505116460865722076626472867820317182307040952034886854828097099462611718235299212049024791820454974708836217356708426692704412272004695197287552361887719403778903978459897651509983815152612906146719866428791110724436415352580174486731599157890100226825667252100309479349924864099342400037368436357282533071468502420682205449537966080271511941154928333232921944378790699067204487401169454092787415508262183124606648056379106514022302440703645465291125810449783417929518916096037102417683484831917451103069276283181626888853333821767114427410043045443368868433450509562067342598450351567076953932520909110223621562584551706121683791006312547180329608874304555110950365393726012195928642825820114311066930644858169228559295444311886200497472781736953452891854345062094743083354111214398009418643001758212060236579885795639900040803626493114276939912089348779411159576734985825628100332653650922353141083422933479532008429937815840825003127466003578068010093129369799297827634215581524662869208064726190267392059785998071041218447322689560562512862536719511142913756725161111679413588437699236766973479652973247130287983808595515094413362770329514227007443499143568936817421209600344273492364855874330331243118591464746047938807431648818887134748436683995450996565065033070861130378004028293512042270211614338317203854085886149310704770079008026637861449293215058124544801196251575061507372415884394477813654583495367053225891525391915865730050412419920950253845797606930286414924200267538746126956142817687686631858977978162330447886443175947803703119965409583873502213591747082904161353230003328730665451171013850799955351756174174212229086054464032939409494204779415305681099173596420924624939447849788809935171595671167783263537047173610824070947907596795655170148140573876644322546726745584339389850871109013830480716428369963881254119064448830127006515099000343223400597615490241054315182614957499302103025981154713655249783988045403062281497183942301981508281993512911594249701815938128005848535272832968281568566859234528826645764526850837663008563049866526051874740079407239737229191838365938649210889387492987443918706001334747631773605715034975388475699629927999186408027482346827358952478480322514173825618991045564629713346322373480706166319430960450293585726626583604902026924208963045817440757217674261412654695966903823741751122063474120192496484904709876981357928386999974646098947873541972190176952115519659611627150132661523251738476592385865856012176325917517680674708879945050029157444563126478678917211995172567240718044753984352537808147946680338515731028964256991019558624472605767516218719908583757250218376328491509582240774536080211553603565492879830530895188849807635705796703662184013313763564372514214671133323164106286331019897705556995130349149133904606540232983885508026220398482792203727646231716641069198211024419380493951509557310752971958759239909158904775700376586086625191586223801740733123662208033286312734886220353875587856109026243459322777582040621119777028687080865314884267254929096783196982788412364750212183060152994913753077718478811257755626696811460508835184202034716301257245331487845216505218027187834125035789126226177515735998289704455603593186629355501901470901788287396479705709717508640212145914878219685328880997398104908769357670741555487207792260492955283169884875688537352664875900964164244124868491911012536007960482372781524451625318516784878892819881436025168833495317681582731083656253295790610891124332500085476976802951353707478279353851475138405452940546346835227195529902057086264982930425947607889166285184374893103130622960453912231636561019476121923826910313230866932652032754965312776258950347764337383326872421426522871408247539872702234086004663899793666414156173651584928935490477455215819871162864262932309603826162739701125642195728385810947957399866194738337311422072149510593844043177178714163469147919914661513017716646385388354826287492755768304030713552517051043248571423428468715642048977945209041969675122015642131315583540223572495548425099909233028305295802730527248664069615812294200966502680251747673038529012107837709041472458782158613658220177440873007320421854250148078229326565016029030424495429598361283011722323022338372815758644763346808200435137848527769485360436307864924342621645821847975934860500668666312584940190451156189339541339149508354160791915132643182702167312638724026742466621440629750500534780996088397121746047354544265807796893733593983680975172439969348398442519450164798949592975861591091476845256748496027829983274347339404060523621754788508405125890329261914555780043449276358979046877640415078897900146306404823936265082019897274231568507682755911422738459255533085249101236139762686635339447747701562517056125064170262059757239952895848897993622625806882696881293120033899013340322525465724491134719424623905243859061840251783002704644535166363581098691975688910359042333772911527967387479664643327355903364320173342852564323609376804413077511284397675213624117212100941137687459563090173694176713233864671145701267196822676237540075582614060472657978630779100424105939823369552586869579999389110147325011091811316509422130669183004625567153353965121341113290370929070874035464998899211822815114408173434882684330225366078511930839538949251083097752609641954938853998565787528927738077015728280582011145416728524376862417903572180385403021746124576591972285499783432446168270611347516404381517345582387975500514354420761984622443831814712222195413270661286924877120081981166113590398003724660996090950427364224597183906614471952845001757985873556539594864130975971220978308575249751451278337895170361028803991857178558856943142862127805068709367752342617350450488682790361881586319195765179877331065367656976063338818093678455524819233044282243670833008176097309493173377235349928650414468570313905873807477832169204989268765704135241444355166960788310294352536412775609044964035031806582567181669937211118864791209011199350072259368739469128775331828127404875921377474843400506000722281175796124603758708463439353511981379704274186976778598321354781779169915032384693656869889479194808348694468165324967837307918565529346570639633535222523069157542116459300240093585870869722939049638833274957053149167425582163229903783754267780370823301401954817619115467659913695753452389383415811966120064947600469388397076891898570791147191948849365201173202751512129042740636415442141892645088559853185997129943839424924650287107498058709375077632299372686812728154988017346890248376172127632387676880366784265480661434157551202024421370541779377412031338741202686001925450728802641683549320607776356210648878805290053132917712886228905065993349218783021131478515028202117389556208939815280681875611815327881953772573534131195426090052216298343621123358900869468974606744539934688219205374444075767808461729835335575264973653156229796789681347026616563277728673691146217544674712359642757312789429530262046504044419578571867679710913435682333295111726830151288947604657451860170552937480717495384917264395628176165509595585210612018197740874720186555149379204981372535549725202810760279660950971797349403384020278901486788731053782309860602632815204388453925948101783464677239774666825093343750546568717287327430832268969427028679738026655208561136521046540255531543813346474443842597566026378438827214415872999599152915054325086822894433401155047939851617800498809408956051165182861249680276482841271549952920719638263744572103804136241100491619373163681602375708962685611996575125104268694881271716296697308103054704906204426323070279003649163281680775689956218609205405800894072494343746899505993369641016181132286132729068293403671248652337210174170092765692099275821579077960565049503966506677401679392369798542325078147224459526004820022511488180771401411208057475357662610597566047850006216078479981799258244277618361368762730678992923630871604240649092382245653556532333485912679444874835729284117576060105162006692527389528559794087063743096135793534816595582803141851585964422044078766231195520913583591917659086703932061716932428778171868443837060309680762678952638776026777033516668375471590890401050399024278344123300025276211971290299753983955422101516562737130158825646481029872802183705627629685731708544420833183840445893760482429427111097400541111062806525648936670993795831323199438608038074381600778116525019806429343682114184296571200412526385703619571133305786164379878019902285838457865532264764034454366159755045623331804770656754889651544741912828252666329232578193649925572928289724680216834344424710896564622213313473359228126415676783278539154886898569818977227393382068717587144336986578028737984597058153819455077714126902866121358697680869751032193100400198342871484447004390595506290539734289049898492980692205730458587827262121014341669560755754718322757521083163465515434055441797218832022365922522571165022946699531589697610459294963486032613538734766201798849945656977311796006521422313285299872583561136263629185439551618684564016391142968153232988773595462243205722985241603632417010598412191711716036908010086028097283816710500474184272964236106955361778451499544801939547587387069068392053168711886164621428723078442204270669214810781599649694969992270176530795239058775188426619836536767433615160062395716538915544982554276018176613834560707544398088829044474976180387247319830610604055837708404419473603991839047278364915271149459692602354788221925553742406021362289579317046587624565024639040666210462772403115472443018846224861669766545755378794153266583414690542219779147914267525063065977335940817424135227366067585558267093629280560555930414953846921956992561564053442464297541030692568014464427238397738362554417896341745437391832802175709312303876271734934877883687889745282543474690473383450847960502491993246517754815623398669312570366764255746277726571854197960458085332252398736512338394047574753758684329577384572503081421717828889797641346825284892358380191556759926756252425961207950007502310380595737695124669086083055093810465428588024190756457769881921613807346315570972791450307324003610731611706674570128395800736725729369938285341349035954913937776641206416071823886684272434531062887391962490091774665228403791614309461895696206404707149456993087899735158533101592763391719591156331485298634107662733896874572051480318889019792045039198371310747571297861545484858618734111756517656681399246021681041244728021607631469090568560818267092943839724964642441083029377514904206708608974016568889587201814143386101667561724646577004876101372846013059903097288500156059654140523720202904455687000216793767307137255764635562466209421279493098116407924896218578935153575315288473335482869697398462989118159348178913354304186060738322358394929708337628258781779644410246382857243882087168927831220749625364029314020290551764953932838222391576408747695131916907352241106961891422815327073522954192959371250126812882521001179383005817986774048614441422785435505865955556879276023181075432360874479602110070364582505635329854926644126092724056595166600158740877389183976417297056198461865885990862125386182409799807782922615100569583005460443683398303461154066823662968175252132684102979484143000098799734903349068772283420800295258095778818112349930002354224380499301359810097931522838608125839401470634425924048948210135377545769226143409880681433469894289736710138901326331401157977073316870736444262352021396957456614889075879121738332916021527686144776089808551945515908496146045401065527059753802278192753220525282235348635707920056618034870287327444293821830198792764176695797322761577200037524694264052285867892444337641939252702972106677943506146341882993324194253320842158743542609661888769423632145101168859112882606427052389741512937329727440374063821254188164713876384686892248097982855996644175865968862369104860691128192935580207308525760719294452410397588489767079174356110165905405310274478117071703355243224383478841284952277989332020510513635463342994829573590684294100131141400055798223640707175571499177835495603426156808143379846904157801391074142486122396328655930921451154631571376211815616044703077582247307783172661741789029254631273117055747824712952910280557586740452472723695992835746186024239894035187267770277085809586959660822925723433379778731904660170931642141283020381085776095230424197562981602259682950412468732106690882041267693158446790158609794758005090934655473193605868112157520904947648134669329963503266386826245622120082083589822710589129064574647843331128409507982747257224138719756896065978347501423326527962665143851723745359220597001979475341928485778956371574106880563745652910078668176055807886100268168395975235198641369524451142779476391689727620208535730696638472323046804077320705054721165492948040908920150146586838014456974485991851065691249026893673434975618852332676258119370165315278564542047469823711486860877122667709117252403369418769393581568689409886415083219641288099380332026978672420422008596733406754595818867595591455738032679893109932950521069761482195441574722317769271131578106713488600759563482190322484248955996346798177323713364851998913388974693950003294416564768341341821214459801653430732360127674722757004489188582630823681731505108367687562124580897839940399261407077306859795364152551253900634958847820717417481713470865814209921948346647050439576614979665817959447448754615088212708311736161413277399923036021109491428854123477753180065173397530585873736628382228667884222168470333766646640903631754707218061945459731894982675683607547549670829003556650926438724237672196341123804003373357044629483506489879572973827328422057120837921804835462713270004374007662923723438289422316824314530771382740554015856664411328021193831105951063621860669973534100022217413775414395980345356948499441129670504439552739163048228918820467800149330790476109739414614430394918343370079742700088231200309201490406345318899621824622258854244652237798799924123551878366004699676681526690382462437344247449068368253522763530577005815841901696141971011632695979982843594327922458585760347771276637103680053761273544596747656935500808809390475158856606889398784073935423749783615884856922453105743454044040568462569307409722494008569271834503347242406639253631804131081607998006890523925668947810906484075325033634734033183575836212899656166075905004190006552227728499411783775944307488449032846864604073046504431349826055570720357419779507300342521211998898296252857904078008389727267821767048330841482934229008886003741676610817405335941396522876289609396467349104895949589801369135422087817096520925738037095227320394526747175873685088909704419404618331523933349709182910831965505516945833860437131218316906505507862078961939846139985378639366209121663248386702471636346095464194260659297225106705023245551257958866662998243435259885761901398711528354694721257679806448877276415986253018258719154026819112511152385100248955964306978862324602914693571941407131483816063027577281740584322659471878495379245596130667522181835271198288169742212526068241206870594885189442155088341409126725777024495364489674227837804507075688606488358212291122066311389468769367494467988512841585131222911192859638568125313715972884529592479756647321469724620001598778874667254240395643255913158854121059707696208376883755916215018452101401023052397300578526576802885664943097226495316006251259356280589765291397465806066185419191427303544113123458113676288730129958004869840405621690540291591214918412929591551851058873123592596094163144035836007895884004978901073998733013865719530017616117688812620341798216320666888343225643055332456551160082464839595462849169470075754993344739439497205105800946536618311812623897247600521564133444707945734606294472768946143597979384359944026777330706269901613456347985614897060669149325068460105984356744930980902136004928594532563207496743263202974243088114034194744070191312354397910050127073565331087062146988990284428699130101703902874308389459115259734868361727461166492847122932661291098465449472084034097534690488647541295097109928927049918675174582830624420157704459648270307726048589207555567816937734330488349437746965125048354366819887177304606834190521806746859590616647884710798070905181731065433604266591699191695918876654353680090414434786867898163178988111842904068547093151495992052424646182708255439870465584072533621663954852290965394958553499317810963110571403448015700983422580171020471943884427606945882171158104908209214490100897313521766317513494368102792792106065456289105407166828469939553258226812196953840992153679243215952763001980720119892050986168498959034081147196069848984443000458966816813902825669137473070252936721051261971144788382391344244275254051823601882356957216827130062843763102227580078804584834400613226094354199852603663534334203192962761215859234789901560112778248368191876296456938887357028429586195969915062158375172900108515435894571581715548174677803935506921962785916495833379130585122414582873869802505141401355290723681651131668599366177422568656479037435943927859946726923103193684366405896317604943752930208860701841793736700980537678034875520571369477629590564856741634710529829052319593326716107428110361270082994910561404422921389379273192730371173411756918646898451240889131031582077231984694475894950379936234058519343901570327848073184186334237440334536699093120999587562437027326215987197481991191095473211654971463238378702168923519239095273005938643551951354034922525594281785080805242318917068768640031724079374409020196699914930738505236424310710170293465578440857976356140785812604114245721787776155996845683865237340526952848449611907902093359737958041963628090998042422654187177417579724244641761174675180156796946908128876840437836584892998149227655195460633260042573622142906579096210206980876611836276308518229901773444610492922194284127573880161171343380193795867733796857813513311819295049841878139524302648973188802033514944682502280114910688909638615290337111667385159189055764722883564237264508983752899511427594852694703762930711583504205278698081032759308634025667914582621845890917751500626174208819088709974236182660796993416302199807848476042777106043671374720463518699196025611650454989720640239617693525561243181358138738626784761422267886648859094409080965923254801389118930663772019571985273270134263373021138452400083414031993075255494518389366529323823425892346956544752540768156441930350855076995936674787322974516397770181873042995044749369175243945056547535980257283683968532449667329617051120335801761330763396869776416221057926345211674458234146333384840312311551241632285926386659087444401053464270059598989829314816678037022409279362525536893816968603352871126625848366976470921379440230967116819163135883628175178777247064012138719972887379462954342233399579261596178029015570909143448718081422608492594732995409883197434033451732591979935464871131999394424254070972016804253221284163533596949277674488292268911472995494653339397688479258131497835046138599262644096418305507099937537233681330727708502656999628302767181264403558426388902944394464942020298411481113223192962387202017764731208698170510340832933782381006017850198034848431449840381228980668964428590800871984202734258541096515779397897574361457910756202430552873595345937363930063731479638232555207083993516564178240232195289417837263292610865152352432487512755407299524879305189886802210669888400355363638402604052309955049549392428977534589023075892242986470456048702567656522011561092555316963631833859912952587805107611244153189729838010085984664272124838471768181554959161257776488931534307112077466451990102323541953223820007376614695510580406674055374591235922806259503079298248293175515707404017966919222990982920984921222631121407966465375007003499124356105397968959647472487661079498708218280698118012048233357822318990397357316354942445192662493122615070149239360128237245817865070898737943814086222532652491438620950382811762365378809935168851313364118277293862110200714380733085532163089396208207388476863503876566598662554197250847318917156961045731351215451069771258325502782645925512107765673151957065843129227014451540131922815069257297686656292386600389248848744749569830568509325136972295350867837774004076168252087354295938225800689895089039889371165465392054743477261460789145271540021106553281031255819981726717966183488115338741823549939627241304006227788964836019054751670936718638629154934499548698182292998557441934325644589876973625697019033376709073441021620819484331071718188460574957873957923822531848438559328987333766371554512814410786850007580713655721203241179924577645897936685989381021058605776534994415901834316060697743381595107150694757493645117780382144896428470054650007855050560603078703956133183072562210682543200954026268587762420289331779430919690332587839080690435634136915275341085590068516708677307981214274568260126175775763213779374968579927442021961118055829415358089296610922386904930650076383167570545306374669357826772925978233524150118491803469439276066294766013050857574554436900832361541683456375731171996633488251719280623852730790203216196633550035251050686472746352779516239679466612571837810882530493768761978992446820130171997116221841487212179256613808706575559484997815482669633119665479800589638347796574098999863044104886315157731256760821972931259683906633430801722968388729545491223709308389959780402676134119685686430589820223785006011031300618067567091991038399329009035921597513961032192558164091629049107798587749531504400950977727528813174452740196783269928248059563752510486789676445386547572337870443934518291209142654800708994003513675825444149261890491595858954716650696300490947680449759905633529146563693042323083462708633788010806218622228828399416746670076366091365871697596785369551112857992084576675162373965959319622003592768127217845600784853304144789915735682502200630774491222091021117598877730739605134863298385493682096676853194900650307835830702968789347189468382767813590177104471400959030442035114913361030246682126754537626050582772036966886826678732006916779189476006119774799683262519142923250412611747740734212263210141788617310482747213020527462619782844580467089574099073030383277468294888150668163159657349413759307595701973272487432601065133457940556457255666365564465403798279502143315188586886679943360842693269107168404361772397874766363096507125285898114496058666392849939666275051990442027305858130398478652595520276213433666879344344501542303970491688501415831922146241077976097367699759949909643711411652419021866331198849121736355186265853309370527683299506988887878664899944732445989800674226085488417070964892237210144061903958678944733128996967197901975453005952548501215497304440533865254851419378923670215627226606202147122868264811057213426496048181123571461989733365834471924713677115024276116196158335126642669819657805627796489183501763266824886727001074630761595669385140294362314953368965831277026407380733653400502744082333228131083842683562663233781519532583666457117635991875591541939416543761108436673632202188074952643371883206327235703833046630809771045124792539430843202547059724017304581098138566866211358440879018451239325585474721449313812070305572561812566148111117451791403434739424389293798768558473944291160121368492657721234079557201945558483754237152317273017860078584383385446222908574542892349603358790081577953765520312326594386449233845759154997582754157575083796464299035472236041902594092555262972588369587541588458459420914271820614407665962559703179145363394681315666995411938273808022751889313486543241843688759292103963015581559576378272702458926686775843337054580055832375880368442033121553179918259458851345664493762354155654978424021351375745882479198635834758744327501909504630131181379629212603293991072662791881863047121035329607303668891829779230436499756100272651729028153969969290982135034362074359378104331154171956425888824784854408230386188432979852476597234140128744908778098924016234578603194908984693199918150938933314696639134906764853305529031368568633876366794535854783410320467475497254387635659397728556447385214469334526447737413657550753040675755363346548472660377612442602441106005202213585276679497866419482695949349561181350858641017887554239984063004656560900267581034839084114965239857109471605056910028365052272046248623017557760739894597838534166715410274449765842053769821216688145261506533216139782148643362798717965172052750099736192222348360684354016614922921509055554205519564930813641165732723731969535826995009560036787659651177444219321853079372682755148460003011387121736309846880778953228752473881990613119202829017184975085835089031466403054182186174155231778584532766589289207558669457110385773668921224539904488824740507511277015000127681737784718265763147550329050248684182195162805542937694478326835026224479519451570385385297186409697539702384346576190040717773816950236706034997163983386617048220653270587600920238736137157674124935648511981648563048261673811124979769662886445030386598256973973618022685067570120049283103312657498123515732723041783490348716027082971869258657163844844463957135875626008996241904853176241432122801441489293561007581650328356199804346374671917010154744706463787824895905990485346026013148991182774178851276224587502409127191818405958016914370400037313132997580816322014199267796450047057978809860356513304521180792122927893245994695697047380419622463471875653652951120532586490387863785749050200434018434853681305186879149522819106612711046308973486707397289776571718331133350223294700019212264385600389518092554331392148235823016947687743520611298295753429295392771319295898734248421216130953673233793575850454442086378077876113768380236788613688372922959801058435578377688823171455290640029840832134567738624617275681714516933200411170323115841405116770488983270849569879292973604835824711433972839906586897886950975678555094397890358118539035312163207264668360978263259247182933542235127257494132551359173044538270467247738188289882548488467421611297709900930762480966196666525264741932626112826180489817976877735420556114618544143490185581942232227703664924749527513127302109258518265440262452938624632442966073093615908110273597556879490631813875596636069725731359244248670394872498779923278705449485043131253237991051359926438649533229998307173391967711906744946602650058496617680534144810755906914476733325853530883466407377485538163380916630113320585284390893032294824680262294675092451466613116033844327295437126498066434601451450424334989360083721997159967422704982872208574938418792104066309712168452467159558882534068398614919575447408738958380374063203046940252521480424278828699290088796010649556661093111695664430074552687057896453783592518042366743586626396013149206705734752772528661519698300492385159958940619427220520158467810680208679385800870755603862231527476416827847943794806918169615541593728109110364825161259666524666591487258799273269418058111740679386815445580334094941489362462182360640475545843004290253002275117972053953398424548823941079090233676713242505925663109377547781366029111288763217862393376708862209580680904546877810843829315363898480572703123286111036054407030567935819962174854196227242861610902053345082286629760292490189816301165109717434796050482109986155787956860230448241422040129781643665846149712186992539750614645971571854280070772863864384048450561023989730203044678617119422590849697985497511281988420268437268612150539749488548703834136519175400061788528508850964693061364463823092866376243667539948540485591861679690626992108981170611346160926514317838107393982351315494483251457506769764149926319298446236387074114696320627506020174647074355938904532697201934016947851756092423697023585517756650773259905200462136200730389048201829305341993056444642547650679479571689893931238542111588527765741870943386817080916214399170189089857725769160937826936486950508729758945532318977735591919512021439538894662768474667500717434741720355946246514042249071136722106341885366577113785328059943660056994961326372455024515575373218204747867430617404940817626636328433853920496713369283795807098667790167409995435011963215590111496526818635182358664509581226198177407111751165876874376223167923582156576972615756885477444251307716950201983105119524165768836526620241424780673791353908302157299232754864352566470579667889615314147319297264487862061901311292271239520286652396887800636666855879344391334646608921770685837682269231441858798285384853234549852877430419038557176385293552856625006547899841303056957335263505971736770547466542917290611297294736116755374146127093831918732543009107024286646196826480756266036232160651528939297149792798335830597753600231286444195806593792187323896853456899220259780066463145461995874992559576571280299473261566997627177386831015393882819459115973847832481412020446026977767378167341899478122375367971165664762826701362268576478506086838421338120170850835755845753637470219893705176071011214184557485332447686632467163906883176126224314429509597930276356204820794339381546818432900103413010109133293748398614994843925653991617012644398025029826359850922704665916483994712560340743172526531972481289485293689808027753985237096741903959221384784303577300550498179965953986053355214989517690402835021930980704660604557789128348216094893226430296319199880755958783020226750487057266878749457857388338937998220775830416809677983589219529340471317625117775907872334296745673224685110556460264868754552298705261002910306734038079124907688003634527992003463349194962793627837845640806537065342068949827891427206924866486947044408363243226153410317570800357531121137472846927706798205958633885122486628333985227332028197977313794627866159625683547358136443332605711314719792070608375109127743565472008177450878038372685379220913088361278645076453498031202380743290474904473190615729330316734212236722622329342411285519504095036352258918128977486928473810003290805464984051738258172224210758156368396663250121925647601295869386588029489585930637581464023133331312807245694374466849065124453732885359471111171546642131965788228593640477346399437793621163026570048898722917803393256822359258765475783762850266395020237684355134973190340538056958483795997932102749612973384690106444031601059656085428535623088520936639356570481013788971934931389775397937963709013659761069550371917572284935246539004645299056974159128837495769341475130649394254524319212779485406446773337233271865540754311650981213292324267670918103804786881904570168091331241649526051611217278008925840257568660276597197989413400889698164058181663309111214579010232021955771251143115187110687502328502391826377322842111387475178064405380386685377015465693175175917025484393136885513255111760785642828429243436157459384386640935598973175720398329433893837157833574772347024237384178832180412077271384859698668859806720829380865302487840175205235691394153000229488008304697249631266725844836173241061579472462126832941093444789176516601230308946201181074480026316577464003066968169085388306022065444200493076652938830649242252470171026144533142830251919439338039427029894058659633844171301414778711968668018527069552444103122533053051032694295081441920822551612919711122984030450776730256257263716467138873185071661316148732114481571745785832119973403107116979236005251423322347561514525195366826436088197645430114255829856486269139316691136742053968213117406929450028288423141691342807072898950526030783895730097008385678382253842610952298494542950473416491705963227507103663519070602315304296410607720194818878318837662118980208209776422312639774956954617496115294614257529738118668327401063966416735104375749180621716259252826457342889236256604680781859149017744150736832692299716552109755560263700564479979332873265458756824993231336257556862808014059664288948560346076259541315755694902380274602795936488517355943300400424917161568459724646897584768522181036196724841883505322546265264118621427078879556244667343503320294839638365369099674692093080161596183292786246331614136509109369397786107185979221154915433494797709166728371554166321502236240943682128238295550476255719099793197483052912940388214522035167345033462384588069161853627507487971032407931090840728671081606975461849788388372008275169598714838575710994530856969916425023307633993870179930554061859862826720846549990891625845532049344226764348539402819482843551486726879519572853295562609012334065278074066618174058033695553301542747156011807996271666364584202211477335632293603900702186391705983005359981131353981911194362244124149345423907018199699407184909128282178062361115078318077045693548729527567572946869760154182246882993683157058110011340213450067204232510790080825022547386658544267341554128340414107948590896520997882417745248291475291150813886272223923939534734302584543857899906518918103370930264078074321790910530028440444978065273170465516415279170711717004305436038374994028289980014089590025218474012874110573601225767730593565773457440570577600629276719806637408973766583523035238558080266156913450284395164114709287324562199254369514150629590127012418988516720236456503150210274714174278496831150366501116261954244994956092191371641007215239445780576272867571558456584557984469043440972353712369154343688113091417266549517388410821508849847406316439590119637954487470321789949303092771649058937712440394915747090973720838797390014621264718860636806916859271138712043454519635910257612460023943463259001046461455818169268051361170401750753457304978103368932543459690852114581996822628455821414876151570207802850585865172091709265551029489610054156249524426817796883498467848294320031277264110271694212062509739731903547379904231832911430240303920258747748105354804409677640062640617486215086763507143963160034013115556829535990626744064663847334418336657302184762202902486759557676669765704421242672413420832648289543881204711581775963683489996449939799095253516251816602394552326321344940184053004384342297101525723379279280268146967585854920874496970396484212526883419249154302439483371055805951045842820976971931109153231777469403385007883714072327162801017845055623512074614685358236791435189218552694131042082955230463991598541972685983916798437311882799293422871523171582062003391110089147674662249162246555664816365855780396053179764946714156412023760298583631440114523481419947692274121553827914841339364087364584947252877401340323530645788498599579871909637715788164677015323533785749969522998856056793696741013047588814575002378875453199526192965123862431626665345494076597002002011983960649984692989646726202581605102534117102155644390717316268837286466001275975244481574833519783160804418306969051306316976406035064879534522370574564573820064300475554913725676194211256735217043212328995533572619727643434567442117067271790827707997758819576542727464983750158513834462705115784000025535730252877646907757062128718689763309059491814501875681619594907899241122595495895800066461096514812439730652046006960644657764889655006923864377229001223142929993163458550887750207534634840499631175954053010057291123465198614923142829208047967396375466272638288925621724712469940725909911685511153552301452764613116254476007020182543290550619975742471743020467845761063700751749626696923308314957551894258623279450044703730457075508389050027424496525698500768203011581509344707082633408410358799140471606275432851321578581923904505978816513766842226527780498308933995347936754953490269083122373753923933337267006332178270262572283193059776329355943464288754476907225127266399062646313178329416513751128290555223896805571729731350102058436691011080424695068557466592732935983748190116929711178714654572202074491459164110667870137510400518761578696847424389985399822209889513545186188735312090789901213940718231498721696433104433684943242789475451155008472080762656211609024997994589686085277483627825414482699565663686620891003412202781939603491198337512403454302186264371308541192010930073249653976888309171804922573007069820881022288845259536639810098276692827486731287867751262173086049254551731486605129084603753861660187556145397323753157122048621421164713224519312730630659708679349547613366705724902172262054580952352720469886534527789091288640246942830467868252602170423535577372414452729931423526761838098541317275739280502732781460666666116532869471860183329291875870011350220258016783136502076916554213612396651271488422201444737859161279820063373895329362722713074858403030062705739987133509412496883143882398531693607477521754955515433695940644012787854515359177109910542943838846451923759240781033433761771269738626464510118046468340530974022267927249398584604520283599342555967823592361419854969459319843454278594390170455921132919146484573672727136786720719487821104961722022352531205184193807007664318894239874687735102806694965907592259922784136503878209471700649111778739392882246262805803843052459078994773900357463207987530587576798803417123467280508864709732273038714113334050206179307253293855549663021521808371379069345126544008132782739554519376531147715263033707890279085267227063760533272843771153680905148968583380469416626631138326791264523236139228042809341604449037317495204858947008731843426704374727827747308380189973457476056148615000684709368895832333641755437061194084155781638776760024459989402569289902399183341862086244623660606168054316705984453177798743447718950945310000464566564073730711055243634468598704727607088773105794715701844910386945370358909467197169376455744887240495037091381065488098298540924666025652037422935578684909358410329380871187773139377632597910618726752392835626436218595415208121211429692052269911905218362241466267491248247735254784029927013199353527450645571499366184525073841519081254349476728041023233297439931755432628993041633689523493694652627790200640406065710239504792203919952610033622143157857455523318829706108492764383980301443032807547286990281302849546064073383332558408234619517656029900501638905601729149119132777641162977751481036850852658258279662401776863523939177666058216963439804051466758577445050346743937088278873046964982703134384187166841659227876786418644475918985224287199507410266030658283290701775070768101602276489416433558467723723239432373057158432019777734038556483247518970600534066186478641566131935611630407049292384268347416431715677854867016729329038947521441663101415204194196858116743249067689838259804959293419840900929363586451218967820262291186560480283502731398611681650539089877638395452242195276734319503920418810214803962584381056270278392113917955617804220173892455859316919402933429960741880762468364748662737784264203025706551746820323061947053425179531466761632611075410189278039733775552315664195109619889463317668104046187446389762461480381080214052728510113525735920879726756172169498473151938909631896966173165366017061630923699424065409000463573272368121469753718454158076609013081137317481869221887403494826928482635325543518745090733320364476899031321848002765082076511510715457637936620591053571277796083393688198541005560708789030799054787576585998876416837458664379133365949136511334509397955469576147176474174910672693529787983178343855839138588864518267254297866891243911795373622105304252788418709833569748477705133365238903322421247602311993668176395566531675130155275678961864456567410869155408835657553010690326327884571992197906825015380555934858426465914841999388422320407639656700796769171930544783252494424490062260253818987147271513873833502682139877685647814240620839953129400335660107389726838571213350110211086150168536456367350988062058867378713293124382160976270496230133746709293658323504309850973130557154694062160931197870077610667349795376940117909101398161122372093951766927807863520739607779222487250180335311330368909992347948531397349818616490580232557526843239468171081240041387259363207677673009478386672918116696837917372875642935900494521977169202629814813462412962997702997309186235207044608793314085062078903603887239492818863322148735444392574694986282392996202464868805168656671724568566377950850072130286946939145871454536292084939856326302990655277033330728350054611665587355109779829197521360433187350801032251209711439077625048343099858328000689727870311538885502618209723915296896075754903540306969530658565980213009124237456246675483970812450255347878016854449378343956418163338701667006331365126633188952120560394662268782611814381380729935574389714536560960828784525163019003534195136388764233900530166419320372712848185499361826983182350152682295051172818160199603956202719710372381537296256805771007145393347818538560871111521205548689667057928173347256983553409750379092625883441594482604804079116232241534522164892171036902546770306908901112679836966401880759017754391810056484178664686989077683268186654325351903387913336345867510861797483638067937760379062799507950290810640465269609731550175042152211616164834961401113786124702318319500778065045070469540580300656668231339126982370962557824273525002511656772516403131738194938191928655457549152929390800805295074785272533544302300290430147867585722775234036051648724466041250684586575009230980517467104142793987870067088946703599749988531391753704765824491186783861582772606958492942011572996906486198630840215777524283689814890351895765103394013889506792338870792431268006749802742981294786586835811009847503261546135041229216906112314831588102480065619063908759295708791439085884803190723884162242330586821216988433563697767529119793245691288408735662405488309441810639590049959534015493393044828845058276897386140513826793222680388733207540345660606463010152242819809800598602245921376521220077253128391296107295427840908305657815878650090635147721412938036481607626161007415758340178262457075755935935809149005971672435988228063378222416464830642324860782412837599230759250309456274256188350841131582304225415608280447865675516797337759059880059327832142322192897641005872231758334528876579932311769292113201280858823973273673798715273606382789774243692498061641714706547084817955365470382916271654605604922558649502908429034885732489318709063588946241152504054677435081835547398056198289177073779647179594623668326991124853253763388737368924332445524343285874765161205317949061947674815082341176313703525527905880678362272849645629510204762308141172266560624107476356105382328474162746944892245179369012411317680156905012526820887829509699603540770589766739378620059979816993752609199368415662397501276194988463231804850701690600724598192487972617130770076224120866898515587883569123221528771575593392121612270676087648992167641925133656154447375433368702663363140338265304673510559634670564753781310689775828889698072586159261979953222735644362268771790808698114548009249477209753322259605566240270253413065831542303862609498737947969246901354987208499157849186209895224259344553312913613671967031103512920030800446766486005947434673912038830079532659625708836682500676939416316766452587058255899453372659938959706711717827470850835068699096959338414642229264839619844375074362704282616994087977824578676714372866603931542333143983091859125222206995983038853672068746079170611521901487655737298600297729953451855858456611282574814977338593021811623442992090232580168080624013355926169388364959366874394617600329829266525141479532565098050923352042624331532659434534504011819883111918293858226606825168768398488066802967850901189538311276144810080813542588698763605989735283363657055605252302197192481566375662291352973766356799346636519558996258283489120718967988312709458985558006676808231978837846585556694716891641998854048208512172046384793093266128031611879893913941805303512685848051160616597717960443602285102729987736016259891304098821831657210527867303241100270494113531333849683377471389549838107999897545516983891223778822107017794460298455421678932274935061795884180863315471859874597616168868017829449373691929404105716575332705222118501269976374453647949120665033627234748823255538469211750153770619776262564423257325745457032990576318397800053845543438624158058001107121297179636611458200625348844681652825284210853267232722121365976756193084504187874041416178767266127492143598099037866791853027126237855042568415733385677639876387392594926266903635671106213282976652851553299200129713420011896086101723446791861980585478094519485035011594506547206231368406032408079106876689063062740184621690340208405715885157533930037708770693805320303407598866586832155017657324873019464644922831124529210590774036685833547757049027316553701912716267883910787403835187777128007814637447424767288548400093646567571269720740970453210530826538355186355276431680476450080370369671494486777906911265157521865654950042171022900145557322499251452376174545406184368309097376672708136913271575440366245986760951080591749970945806036435005544532463909882123470751224797192020119116871156348650936531601450580229771199132816133230479728300924172469000240093683610620353461626606968064086358442966035684786478204548462810090882467398421154397643887099339819588098952394597790608996736832027693855134710911950309794296013783285084391676015714777896297545613265278050353964721431794178465577427085789289884240642395159548564003800255899296034993718533135461655207290797042325248210915280475313535205376980475804115488170329139701485637135891686928332618243461942169080501662555529090831627708092201658656039497382823934326218670101864785893262494317216179600769388463784065265661245696886521015303764434768255504518322878173716353481255071052017055060572255163285269385256654581747176683450148929787160962741435750941449474037207173663024232730890752270724703734761777737887741408784288084120084883994342655667832484941683637303833529242118824752367116618777722809224910198081365610102613585728088019706493194736548954008414498159291509059070574712628624693549256333042941431586538826298397022110617867365282154804129030637297886183276908792806472648377672875547707111388173858365257175834420379182337837683878167936286571222501786581727623684885479229176772713589491178458393137293661326816846199258744191449485255100900409705508450173643432400043703308011474991225713899259452058415610029649316388919666423557870547350832534590559564741230824388545955357932217912036525731487984981489045646630162712361612837173785452635577556797839748435582132219279792634433537573313177871685982500858611378541023368514241602035299438111992170073808316911017286939958923012386577477661047846087906817418898003795306353765716426682643825676532084258085958664727517615885396738885201120720103810874242501151134452630228491598365486538072232414545274823387970765806398422006098504931997141313997967348187707010451748471114318372655370775748042397858745532508294877748938934154718659931166751785248629322350734927226351545132118592572938682993660518441097175760104053192465816818246784248598233968469384856256806374375210930296419627150943156260426992801886737969291782292152676386462040584617598021410673785937539475402730242074612486701499654438902830099061959812734374914275202570432960550279817717476401047652416160291404569006227386628566578813710133088489949450847378341846145324438504478910827184722726517557485579318255934645348901405681364769194786562753615838273669273371025766474195908416557378606235301075365692984306928649536431918840478896198814397399762305575907084050250966984462452642442988025614816157665453278685142321419617652823485796764171833742013758171356273526975005652758609370682657451206950965782787783072203717992986829461380088043282089143076709705371210701069969548679506052282578540177569736994313641461714923934772745328222459637736322208710380931494966788000748637510150959938859407762660460828393583825515525323216394185052524521695742191642325349568185295219479341174779370896579854162528729945562176308766115436234723648832410596633020717936506507659293987655271051434745778369404064077523533512348074516363058948119605460209419363195370686109979640913730912528865835588828282002582138857919671800195101685769533837619909490569169726635786237038461077594151982195358545052214458034629891756546979668841319308182205564579564774628310343645719272673815075937702023774777256606868648319978884812991520298322905874568788893100519884521131684526775877337540936274018297989917913946807240978505850076406428252892412375030071328362868934053360735679198302894451891083554690906994667048573828770883816079951581116065657675332219260340462007902650297052072042091034462901436807930225185154962107392111756793625330483112857175149534222452516537706888849401480040299361021774494378181796628125306481931086866780093001776653242016537084724957919222516488257499500199454090898591917303790746646342755364445056390330780587389603217386050574480046901474732116142069899839117402748030211067229983694500404568366652620326083128811047187970075140521419801600274995284669371335035136713111962329782954561214365950213885682143399255545089410844560088146333599701527219135398662165679184471649138479696610144937532663553071844675201798215701183809492593173191181231779254180468435567986474188523421096171600627301342094368212009796323804618671915866891568144161265656262670929306099329499046637573728372627278914980614782359332717107269031529815950083226620081280295394801405976535091350069624142079208660664761871349578505766397594715524708749017598248648567704482716643142389924134771269779601436985490059738186830969172719753409219929852273591236723786563716174735702844680050931205077439026135293313148141437715174399629432626407165592926221404148960217060777357555896744343398925633594674736228450064161928332088912411463320466782681328657038011323281461155943709601462512355232088980662744659288427573233162760786455636591247864826557404321001768210938889249197858069798077703841642312834347741341715394371779351856337691168394349576867061280860894639376553061519027204967446856689567041742562025384075127855895672936586171490094579897603040433026495701022644913195414775898652823063848489760126851545307521099165241504885911790114217785751824289365576754993143500366506310018930755918063634586468122255387373996297259558055195947135912930594573915696251490244235525402650444909084147770094766051476877719099905271008407145850634879265641246402212837232958851339048686711695530163863687657146743928499384706486078986386431716629431259256956756423097848483783679909949503600195533104455735071138279319482158249370850929428289833839871537090843046013155455062066993077064781220760061287471574468200524937221044292788825739797378565289754376305571439284457426196132656159280767161384894896526535770188615338135619751841239465618157534160823468911333040399236789857234449846751617780543661205788903534323869254948908001891239578258512292587490637171945042419019063353704555936972211377970862475790148632387365168361198522934622004163506319953296312958267288926508041105058889221268063224389807507838816513350388792563862927208969461037082274358835873966238944047894977319149557928205988343847095760970618271877138270420330539004518341206598505227444143114298388912909176776212062192315245374062147395030982515204662058583173132845891457099955467701590122439158233790690542782278422388504273362173300381496006546071267042223262398718829332647610142865631470714781094858812141081375049651357656893057188827536376651095061287852568357286203070840336990329475971982242691126575969929929165762092757327444768305607512716150639177239302223131297181791279017868732088239864697389253752804631699660982669506186889272123183964695217495930048630368404840460398082506683455572228218346512665701593939995074482406476075617846238006596559611966809814051901108894416216307834511213180940660574351766003977698835477137923253300961665377118725618036918789805599634806517524574379331834624130041454852615146709847898962864909822608346790628124880734345956220114338997867333286813764524162457310831152953467511999827850469706978902514478166472951831297150090599501560004268008277398773672540172626920698681840756516518787812738008461242773921108557382231282092981764960787397943414140234823115311132015266332222460682912988990038384504502598669448789564470316421179863743316520974880954875267382381260964282007032680048128081247452456918103897504442394186114687950231688726148256998279131525932468664302992191810072727655174914782086200809979795556304465699677654809429294948740759586930285489655843595716167083768926906902335943275365631794262947842465883033779109120848094541603656255728728085651972181695910420040478290721628684628446696011271577398371409695055941605927875294450317010629134907139033703723398868082080182958253676616735397614263043693184526860190726118210651417446787851880694377328587866700483958583929604249415849706565708084894018499787926187260954561380278267320434189106599378379631609284527749087099504516416000706430023148222130264861161966318018867015267634079058297707484375270138082809789324960141468714003030381642649098515449737022798731153452408558648118524924581948360789535735517079998003205385879547144864846950727178880860671747339514712813322425680511014235279589504852773251218393775031093128199818876303250983424294130332884209522482500490710011842383236243434900044777762826970845592008311008005973214743172016736179717396368686786192668401525859446408206543052123181662968453419818622669649586829650501029101033412731627980286005076358537773685446710246759391926421067387438299875834583689167192959989949424789614146716807513818858528672313803547836418405182682125065226293861012255091490224542781623112471149201526177837286600567231055343657011462690952830580400005757787565441091846961666416847503108577238922967775101840381839342965453454634043180695014566070163031207003681905553149438226293742815629784553589493812673750852514272518923889508317601371638051045958780360513738324463553385893160737818486103836384027844343910762986324005151773981028583193506146388227070955608183249009715603771280180310146951876193725262491623504981924976929299910560216328849034977439018078890896905650403352589142174439139658675938196664229136347547198525832995182300620616225930857760392717373236489090479637654770295386602505869070175679679948090057391212854047964258651537007511479210289513736525690730567863550546723841156190453113670206558975981884938249438501549694842613457250245648874181521432230515153488372745075156012446177679048654760105532023689241797646374673700114591086923380526676420861606820856957502573794256664815462711197015928234807855745558569856604343797090630083829560881051969880038326893795453650262317942644601416017091579694646843139833595266010009816254342216370198871405127534071909658798435513022816318851032565913393181956612458217760736420321089820683615854420550336235513010571145253391274088261755695373031815557737991606506324638960411647058192611832362838543002496108912063823057131393126837630181300003928941977863680689195174393017589801848327912272433586958634229565018362518045307300196233721982901041289078573378799982889080692252596026320059229973415032435774987908326939363955315389960103488072879303313513770699090127629190035773268803494993032408311875633684475731434553268703136715381881280362371250636259962737069231111269692178093849941855945806822088674256388103763076342106615821359195696568974270397243281360081572786313909484678214642713320827841983784277780547968384350687275821764623984948196245430284242784400024388555146414918902174934025766158039482843200874493384292305209864438022220948680094315972521505882410915544203943395813796620701231197132342986546698404154260934691959778678518469731401567682622047485524172322409278736218660735864744389023813675456320949568354697230884749736881588920369759530005285041314696217327549781761838188374649022852337324733546970060045330730815338371907335225023509538810273706616204069393777970832266960379755629111800670335377403642073251361601784732003611330024270578282249381633983815464910222632361627866389738508547521106091988444410287973521229537084791649535891808827099403356238709864067634932599440652018986807398255994071389028365302918049564011677538455731791282546188250911467585303686928801518148335553023424152292903527812474176894098831711016781268921870367626098230628278531859069296879794219631300070106444712158123060081474663741263738296793623571309579090765720116375485131541693576575998468015922544004581144321976027985830221434943325469279698099283742787663818050978234854996871280864019227424419649468825345741981184132542680102261196246985099098158536106227369673159334238845191024974312856099328335262095029809586286844101502750329822264533288399713077646568102983761992393555762517625561560616013195084376959684654605237188533747676442611428597504448033813947630412080278598122396324457625972180726018991598260274541485161001055252683760331596573188401744421116942158838494598703507123487231252376420939277855328266219851887170861636891453639768228136830489689700048879896183296791410348831454137072445236332784144062448038091128698797754840031633528023353407765959626468091018183533460966003834097785785968959186790762094249892193850168092731469101252233204674943869499769095099315948504819171545950063796044714217246536148298877262784895605624361752236716026173815449981728154801455945592947317795601846229678764180552326751699198340827715337420199848017285064420971455311530096655442430369130849278285497310583266317304885362390986317595265696103481811926086563032649173659675138176320629930194822117311119392746281327293170725603227691587738655019604780333381034985920703231539552958520988527800353899139537367410711113717721300102640714816155425449503740707950675651274054415514894846116278850283000766955153641770250230942232331301229346433442781695117705326252324241782669146727767883083381148733739643742392905758528889435745838143535285344918556054677984008379689304682104854421386962143276070419400154500512003203668183877388189196825555943915877597786356328830613782318326171428589087237903524819607638023808884594618954621349370538589981239204618116781454767220635155537756129606793752321217627687207798593346308563646611457325011394381359071226051040055009009016667749548748244402798632881958873477707653495037879108897860862049698054650017520601568866504231665922788545378597955407530490686855281898450669072642981800430728131219373521892344031851569182100698972271784323353941314652634634312514045738953223692051796594185667924610397227647174412797948441045473136089154409280001261037534844811839585138089962556427678949486074577061145409378035312863538223715682082411909134752464063623830263590206793316100148335414688316301332829485155779023149825433638433955272961491423473617034660079409352298902456203973166328539285118005846591020825481817383468364245857634889436915229304690876671700679917949717352771543473173999729478513008998007416106001222231471629258655167425081825616188234640297949469623694924654740534226261599194131115420696234584795110729444604039432783036572111881672215049641112413338170734964176296123839949263048513768471103949317990541118810578666866233761854970022952981756576081886783013064326768713134671717331081324289857850904782829959159712092420752949171562818441861132536022488585394593506517163369374412722106751275384358282686274514011314727525053583158122051168306080896394734702242504150574991261466841476233054864929192206963468938028468820577272220674250573048757282750314098761760524028236729727837329947870971958851735737015140167183149369814586968309390593049193944453607004108212105118608651703814749558988212608735768443756778740626212085258217687551884543633393414390060108641962890676948132806384061111750196626057306271414366677912067502977690738848409639101732287871637704963805540362870264203249724009410075987965117455323341486487630769185617556870769422376308913358944471774919323787568192895792199185279700918379764490346657948061601751582684878312382542115605213617159804747921291873487004889151956209272850687176412887773648774640627415504079456912287450786931878886448112765401168748888781342370521692154627642090230191685719622700725313416459549298318727172138351910442772989564599352055667755772619482359205342185114705500930557426257180362904849039882365346873820615335079707927576584040744340366451804205414658971042004979631459061815191641119477463091592881738068007236385101924266055389805143203377882905685298970934754177648795653808007476725517660724006298416680736711475071266595669394378909118904682868783885661165379219988086070437384876549688724019251507283993645511116713607216506249404795208794755228908599974401180204535536297419836876334634269928406866112319114618935919400737553693259506856330785820898651235452491152474893900847029778253812281746041701752866953170946364777760994504545561045884349461078406144866736353304689593541965140871044133256644013880983628480030072895167703785424006957671211749930971734526011112084524327098327395729558697380010396425202677980102436445979739151326401275105554547927684602474346666793043357624862031631351602964749712722209962952234652248588490331893669616438031935791764997552227656056978890666238693450452595277390962334951643999989616115796974269068537364274809582153927710741356130367409032477128054399710110878697723954508279805674658547353510806402220398727589677814712820061245966939786216290224866774498888769744869667426497229876619851752785350662391300872372720994164924043257222810407858008538001166100967417251813015877561785143103834974168284608860592965941483798079252589121777964161927431774884318449108007793677278380752731885710339548324118617158285522120343749251002080201993293007422082851416674477349648615198911918302067739046308951969008557559343918713105163590226004119794092931126980561594163271654755774422563240318778834259309833601352413887391985003590831462669007753040222135075266888446122600375346914510433251985220169753073650551686514711156104972632955095165043312660833676543333636887435030257944394047108163539096615470583357006170579289975648559292320263050532018189947728543763847377122319993569145530844093658240270544152568648258080016510404623837251686327128754687547128461787551387704787997247552360868697627173123577990516261673412131108793183310593522422848226716911404279413909339650771119021611968209697906697766214157840455338477052815297477536284933191769116652006752409506992383215197172631784576504455919239201520570491938754654044817748981831402566226028402975318962537337823445577718811951688100598257429792387720580477840702658944255337230068937582019941351123853087591502275362565342476211067318063016683068708476198010595947986766135756990737593960700122673485541646708491988056583941211186074660877832060210636451496907901435182688836412358970801454506708357379639820244200314398335043291038797096173716846377646849471091601109196471991836422735064041462740095215039027172658934056984394064076088704176298511802960670051712631141876081550854414716596018880255863594569447363628732406094887296212295665209628952899007392733570648747236386658637890889052097674688371447220965670603289103232917010903672699290399067660419615969714835812652260137761167430924222929735567872231325178589580545656616158471234130023378361503741678575414583709338329740124552669310234628550181182397517192843513907665806518181320439930030581311600322089003632917045310098689430541483993378367650590068789052722732079856020877072943147116936978714297488624150534669089129613768200585477441533797481465878837533444513241269740607083471697057866782431535441125502315474148739098001002836423620658053106141197837859366451130826557028181248811820735657258165528622258948839297846868720920577722945401370709997065805126643586571602961151927340985437755219769649692800972906234215221226637165171765305527947628576595546038350808198467774936570712991441293853756522040615655555307400889969383404073272021230901046443948101349943065414169020911350352588250250453689486321657954987069148102860754545270259572250502413289534813582696505054485341228811064677044949440946888526623022963988517969394242828008891507046483414808857911128604305858474346231457101882187204006633656478324717097578732229920505688156388071439670227886587549640679844641554360433065895491019658656196523528574814333555705674398898398907195946612794995490128244028450086308391679645711326507531686331201799229163471143463861953176620243824939173279237006227178312210278186018159776669893337766210202250250309057734023460267488941861851262535573002346987448643089267895527339108859885624496054085380085922119911389037956617864876540638306703415367004839266678274826169013331692349496443669076268951763637132203821116885354627028652963204957886944667308146798897010484225547961270138942670783245284770932144046597221623369731198773360488819135589277322540982699288703415740202677816998483498591753028498881145518245554602939369672144663953772822390296348322512566625720175697571444744423654786409022887142618017664612541886054894280855465424155681186398009170933769336688815748402127435155924254802243635162081909112452922611861148382104893656733551391915944591665386321187896375192836156850414308262865754118559150299022211924291399809472471373662411578410142281875724968905175724213574896016458608105657419826725923193267236281047788654697506769529704452831936993910125150222084256468994073515201595607702022690036574560679987785633229553862630300065057567270494853699887050693529967441891697883154683584346311174601050293966102482935765454848311645808982037194274719284850336380545696389106701685622859184539083603747781632781072393059102898044694490371195623243420847993926156031445486583269600408049276999739538439333409674138794162275778093009927581970117243352167271605180184801142056456347316325006415681658055185849729743302163039617286135775719787877073860634877260243003390285749866542823365873342266518411129961099105546275558229978482711390652422814557857423959750008029749916504656526752775996881497830403949704186079897443578846536547890803194086274773330563056188493678998836153350378940896836685589244458973500752203152746985795277114444552389697140790685401667708426647266313144124541391785877364559023529291791591871758576354579158546064255221300160775958009816339301559144094587421234731988201693672278531735080128557823865828063764339644242466512237351093530197697442958936209032031552844249334270782537465130903984183028893738272612853594633944650278206855222841339515456724738883959682539430687833708533931395401645282532553195280679094058062427775870167890100552650625180005223535718989823529256977398001063013537436202301644205504435579907556028692871272043688642044200552818859197084240694117735599228026462200113666047773144295593089105332919619954072307697630060507772587968698938479214942892551386437834774617284114208316811767767801479084920941230708222856802893432522893699130181880370353615519758345137175110141168169777190155184050078146570417608107336154871579168436947698331958019284202951341496711633787494781784020875434163682301244169369144604166633274938987187979490128451856933334304021083009669959669922410280061059189041800238946065445801510821699345563126522095415811188982588155836511555515574528890717243518171915759890849894874073705917764099689091822930311820750411626863688884537993501374368868058515656319823237205882781630566108273118442174269840186538298797576566148614170227810044479577122787535544272418157182369384117756911493758758366662995891425791027918512920780206918298967590047569602816970888407664179574595079590867971723248585239009476817338314752221593986175913193131112624818618288185731195359196787478678352371153931162343602836346394400782086230171392269260847614816374774396269616905659854365379334264935773776731615647922801896215762362526864883974970179563072674029384833580315523272090270162395430519658772351560949806273088383266013550717426683753291929860935207486209567266797906925544526767718964662723437618921239433303123440099611269923844504874329541360033847273146239763429419818376902790851166216616799034902131103418021713575389471680434886933751600522269601487907152160823347645267611531417871235076213576589742513097362807617632424765618920486439728792832151497787105113720405696824979397663170076270298220535242678917543797939236484972302723694705408153251982417399537500199986963145727268852279597212239089036384902561868783878323970841161406079425598780291737330962745472974567400788875613613207991508288537585114671268936386729962840601599445575852088409362240307196522377649292466637836606688318823891655300853692356161190910049324394509582870356380331421166658373988130351642983893732833198977250268382312551317619836808467162524136319815563875327264111011045814296716504591168939725807027324050671211363958216016098402535139250308818257124164661640875102786003401711032739614842395076733780421036925635479747481656246638078472543453313881448320031946060943914958726489329989261789072506135932393200873524366207954446244083247880005637299821963755874162594364448537434551565218098535670762627269195674258586860760316498246317468288386497264842260466945034740154587467669970098882620966782330467995077713234933256868133229990515125250380499281854293726017338766813221212006147951466153148891559340853011849902612528381438499225831059308454433189895343253508511454906982462728051061198439154766201941015947649088369056074025102371066107677504937262234777662499849975547447361928283265436181226263451825700291918143950041789961777077484254875641958697583395540969011097380319812042995699722653286627962192117972738930250777024325227945958353187489039663095263720598752100249854705496141816587145219100759429887290283687541252177420280918455700785965521183418062482269039267094204041894503761464842703493819928638604183149207660436159187961032984357486876845086791239496637584076376340927871788121024848102655257324640935098444035242178032377384315309153637544217776777151151390626074518251174048806130198690682574282068130102423336921065193377639122707564751990955541585786784946046272916471973350658781088234524898229624592971868911759860747644481843752570412131274606191480682946343444220595183146213632429293503824589100289130780838258803818199256584029996593984159683613508165483494109431563783438166256991421833767824038327136770895658658191537475370823923684959761975973356033248228295280426395482775981829736015461475440073255830208094866477619605658992076013460681975158167852514561354814207109991733553672329141407895462711843646081477731824872131189264583119319880259933451427030478353699767123579950385567573967662273786855485907136697684900399907608538100602235410665689149413305793540799601475354298469184834731435791379281058628456144105020844183834063867739199490302351565897720346123224361049248966078390577449921663062355752294207748131629912955020271738718074141030627402081002136387244491671545207448934241719395895224431929613242794417173384048447328564543509200351084691197502627087521381219063378229359893184863595208459067883751842985327356211104570542111738309386381982310108976683060613380909524711103996125070948436540866696444045094037980680740520774111760491884637462898067749055280403115601412875242139285846486156724212070206161246204252435849580959819761411529744321652173556416264430154854511984916943308476223574099233645214839779923137230070393638568668266291685814176807572318185030209355376695920060863858395488080725706615707275403136647238300279974721843934998001949372253806298547900313216481096557058833626733578780007731268631053336112029488261785434107531623612037058686732768332817518294506531251908819031977789835818923892698229472821411668365245971115446668472640438971170999010286234581384350388865009131577951469990706938934784907457109274275915552492895327663488796814844349877020673474507260394204103056804825356020312046255036356056710924119955995728897610777078542555422857722922883203633938495550424323435423850380056960441569473656306784308391744420021315514335873644901644591290784964489508475891187344699080614897675433973930014901340139300761191108154636553957340290134165604097540978345937921522069414339736115397518678855789636657174298472757592622149462202970857668686066966757781728490669995273458948684174431217776002245364604976620032518881949018786333070999909022637576521074225026494440982883360024715937496184365513805628976151639475124840114757907388378824020071367640815118664279902521073301172510508210798306850948072036852007711810537761275367979239722820138762054551619116400024671429682812332806272521529691158469636951843169944518797663087186692238258116472449351648858999438276547558819844505226789023720853410080380635967495704804131154567969031731655183308901925632661306265466253758299898852586846757950428190579713549634229121717711869821979558229406332682847830440697317221913457176344651006086786939681719975361195085379258513417015466030324450728896595542206602991648736954763425673497579499209748514311685736196369382014850480806859642945926906956095484630108016779353079870826561767052596626666795539693857607072200121463880130779633258717415315785276946631062816940447526849656715676300609988803181921896928124405133596380536073406857133163507470042392413156870912778382427175895390839511496523445046475143132653897686829798991217718549929033746806235286702182051960478674008633603225496787327956361582201462490274467052628291653943989656485955266876366268384584035020373406247520493013688679711496270524692651326776663322109638346337256209664172776149141732742210111288478160787430760393223699101511759087917742190272837233323049230642714780111817671549909318777011892294318708677414320721442799567711397837537803875167143654200363924298562778016674698090030707081335209526288343161114628434962516389964047897908286804057553697757060233955377645821636583845746201028148050083348479301542627051153671111872858865177067639799545167252759523226673733030427335109850585396354521043303384433894377518856028705518155642745228473604974360559848161318180991320696827543608519322406147975797903248562861911048254587294076359636294827077651232841996477204243760305161588188750185443071007716318070201392452270075073137469322827345850400606962780389821905811011745772357882626621562018291170723834143358863490668820922219214866134018464916725253548352107500529905909357617501906895935335383876031534060361581609687917498471830794129217259003792026625477105435807425323885690893843063591925380081338354361569138923491587444110519105076610309984918283582247648211293809518693941160385870523660290349121967080587350166007863334447077751129977000261539127664231513615707858238844885716627850718604221797771195221801716046014777761126175417168120234704884100715025298102022019777618590478447468765719042749427005494885111980283391284235263892771143489229517955568450451444354418979809601470506654304879000175308111789975001971049082788238447525765550959902698577268448525489415131976144618266286674161080773723375498777050524990851067379220549608255434613961506195367098339997495626316725445133329802581783668900630748023527034546069738923685917020898445802518042056237228527667981004819934793380072848954895530365411714693965215827230560865495158179056307450043886283960933988011596588385028932387481891255149711357944329367886800670929896402622582227735026146906240299890996528813068667227952786482005344035307195491006549124642647610868216597230512468947009607862931858670151546560925091589607317778132671095757590394039878899621438229769714441660350250190715776031171904543443846737208635544584752868738358385057817254725636280269679271147967287342035713959915756617663194287192201465365357225263216211398663476463294545296944183920006107785085899588502802235530375569269482565780314138174031211725753801190900130902468844477746251016137594589906603329112369502833369978694653383598278070208869069405387547383601640615122468414787560482758949401824624739647538025716079323854212627924002930771452328789404184704092949484964215708941820569976224525563916111190050212699449008837693067956874819695085888446092591620179432758886777839860030760355862342653279589377033170798267906215675782685754793297530160955831193280119803878042721905725839049125837225532829849527833576123911568418801109392300190291727790398923165986628810300554089830674753526108987989899418189524358211466843275223032915219455725587040114377044202698824838926555735865017465952055089282894012046632862764383806434472493478900215650046571048846903096400191865432134453025067134838492284650448746759129174115288651354236548546013433026237184361318260920325711700013043417066199353523512416031204675104775103435184867998628212559594023145155974765483129396096357296624469850789329732230351025595586674908497402048982668173440094936355222437283628007580592829945446182116809877117396138792142521542830084299896114328072691713419914053973362625846264293346361736220571677667890421611160231683889249005334633917155427585496922577926083319791376249004864496908662179677606195142061162682472780356220437609952741108512696670592542922171513826170881851381134176789155614962870847105998507394079653623852873162021371036607998771953416166589709361868751165385859635723355426853577423735105545591424681096583930285898987495428157298921233771779420167372232415617186153261053566738810034070659559096017311293746105804646354154734549279099326301520682211155341561510248225562925785303488157252608325659321589546031821258154053965923716608083153798441523910706000456980447262781825209208075352908973695870404379529784271965864523252779437457941709370159559315024789646569442393983700328694748515249171449853385578743317727011588319618180971619170810503378135072287209540340473219785594954744506165633001636406952875281885368806091040550704251610659011660546848892383113317941036666782480623900982665422950786244298714467221947776314303527775349970918397306106452535999286539466179225782153416137473810024288352748155572721670913250952464074922251660906513044106427280043389151401819364104495961796869867997467326025415461438501544461399282340289038296824653940829127651422940705242008214441859631616193108577575466496797968986180151653189597848445252088716569080120528205723877131194901626181338545934564336108306332352734481343869116756591716147277017993692931472988664915047946190390588311727308403422276035771929932008552675599418251426848529752635253053739529297862747066864640710899686901613489356725033110939381893771316597421548171604679014638474896950296801772426569785950879809820605560274035172193140855553268027606277878216368657134598154342485365381803031032940434737113905569652484743904114905331818769268078228854427070581252849063166050648058086916876460279502457661171993585159592657767464275702542219523025083619648189874498579813278315079009502293594841865272594177036846746830408819329507676699776777415573430022590702673862153521718181821596793228236312190267740037261560385615156207598439713963675130133290396001955695620981145095407778707682400668907254437815698918112685562799123190146543053004487592959666447950501419299080364197198272580101727885582128663679405655596239015331275576049447630067830705508856974836867843328024391725283331269261583264931098496574632381932116136382331263904245931261445232521780719107563560392478933744174987390701035261200764062204591808471113409940285918093080998034210912135745186248480250470944800033634837545161626513264266100413646285331290846758523071910506785770291097305070095057877783573228394871929358327768855631373332365284401809859612275846766942978752996748282829325269758287931469922102889542632371327049786722361478626400447571699726815487372188034168487289484000022183734982521784642728605131923082006583193704101071644732652140768602146722644930040714621069606459586740827523228102149718835290303899866113612345517271626892655581992464210979248474288779836718315708738435312887227225081360098828665242360465704122722859796001958622263171310131712943326120594592584470805428173546614856968189476406887861070876970469400253289805204562125097946102678051682053215417331619067021013181870452594554653211005677023276308505481698039115070972665432602863392320520248181785126212560860078589771497681843157207459766485718387350892182870381298360491178967307066247452372578047820486927411768995124375713587497043333111836037333406272704213868845276341449863767700662408644331678478816873113918359718093598166485963448738525770584181423308536503073903154168617155070960562254743646790870932503630195466360944983530528471772817225450631246720376197168419487040838263152473133962799475764203039348263911278385153323759339803033276909732186656349762741176732985181032973671341406858446302355970154986552767149937149630965329346478028419184848396414077702004797236212930800571145219659774239293768215460636135741624700898761908509550598924952833152380465713933281802937077675002266295880119659577294955272869325210348467447470920733118991329772543928859782421233918537782660467985486516345990175337787321237955866559032293959177104261432454220541850479340648888198837456354426964210142991244196207050687631267431641194431292956988711113478831363198103227854548185786834267947009583809694512070777875055531147808124729180928200210633642070426542496522426959741288619996394810700021603315281827884514555360892921234569709927827599369922025778025741072754023752983694462393360315252883372213239993134507683915831513721977114266746010820939360758603696181557619563437158069231639413837935824737374884545864780138215502821741345896965537197201822446068155864063837055614247224425075601907183730876485715202961003278684322246691144955385915739570721188166117828258196194917704846452768972687272944332195613085960084386929586129352799699976087373961499818837784977893512080669907579719590048959547001317252833425665839656897239330544201316427078829662364487996159102408143007772714494412735153036122038008654042113191029253273530926232188420063466040777194592751905560059636692078605131573313417497591826498739207554162479309415082043381875314701554246212268403013698522334284729529364757540012168714815075606487225263912591755998989363516331538029878166200859824051305773347827254228474595755219446953780162426944886918276832033744210346221026514642655891035484916058045639469461207102599008864948940585811726834435263891938198786804601406058623338231992100587959938430645701267315432083928074670378630442094797132891626722227988539273159588922031392520936845025747529208916608030151093536635637675081678389076251904818094261047885532204474700574400790018246104030282878981522385288665576989281213580392949243149254778870302073665509205789376557209709538777468318654440441873216487891713969872299744716931015493391447312758003414914877736534098933961553421213562622228762098847416311801621392819436404535851492798613242508878608382606960072759983113089098236386763524090766695218266788025397644349090434224498767413166206259555306951015465088027456283754955088310071548655767262989722623157840488044241413772480181549644373172542640416448796585811653518181398698370734409096447917267907226144188642060916098773160639545024643294480474212807510852651704451924750848374498785304550856940639111309491352920638034924712304283270544328956092925317452054686974211449769685128891072665969537104520130803124895772621380261238442753302531605711502622910607941866960513922112631790041043860088818336698408267537768715405561310681958170572735838458125017108356523344212713635098575865086908431813909203884957142413947020804670740327106659759546740338711611122064433147874428932405945564404139808944566297747153315932198074369831691377170289876248845000105252872713573783330600301653637618683555927345336565806399587351170405753705038066836953758677950585077942608936320745921352496734147624528586373525588079927632040955095717228561460562745426809154068062533191320120318132517901899359244526560650901949711106903147071305452664889806201638319984168326163699295011981747141634839160953036228280884202596956492718865161147070906851401979876174155373897591580166070156540700370667914693100105684399288246636154526947127613944535934075598381118264354599369329929556705899346152919439759340364905806693947633650468621413780815043557898017961548629030261816710377086237938171301385735106193375717566482749964980122550677998936838503536256554687367991939994310167208039797105819300147643490563670024259583152342802410346985677421663301137293633847669824171225436844160304122131364228550183584276119551975940193754786409220823640363293441293607978239331977553660915230793363217611031093239822002759204707730558556677398966363495251287022212504571349209726740169627776338786253164656885950654634403091488965196832827601692318932188755696066055707440381384863439312215450662152672648746341296752209349393351750108338503456333954111214809737094639450302930529651438816677668104113347195711035042960563574243051892922615008258207595336622523625890637072359457533898619744575790098791905592175757355236047634779778384294317886840642300823974857863339631649700934047484876132158982055070775523474058691908868501239976083820381551474840568350441236061579536066769060517139352545402791703986250021757334757242020673110237540289258591433179639512854643290971598914654914879195388664591819701113492854659072519785793840398378331904501907048059774764840425411690430605471755412849092693707922567480502343916132206268660218551683704853465850690574549449573761470089603016226901730025426129257099696871071838713650414465459540600114009690500097535706510708138452182439091805250454754568776766002894194198702544318718612269497165330949159473508213126254338573305337286099712103157600359896720916021450066179951210020271542408369389575493142061827409141115606986814188267283388488092423358552120545717718201315828094067264369455867684843863990969742441729848928200680484326860045356675036453889522458954576805825146863274059766762002736757886192936125906131294927396314030710059032510723666156061093624365930852452401996483156138676447283653547294334199248418560155062481355149784182677638511748574970627353493292306622926292185295503742215239661835256645259285104748592297718493020523366433281224461376965558367718188181844037888784871511578385827826183759295241055834645005502541713869772002090135009333914135327453505620376157318731438781714546317257854461758567482856040505701789831321644878828915027587631259540123123503321607028540673812414146156280066824397945011636974160342868017819446892514394686137166771938918892228639728840709413234651471849481495014800568012136010566626150968040712528304994715633703597114891543779982502180008383069345834921903025410724353250488960958113082510406638506415884603513601805588369381037431176076504211487885507893242139220370183015453105414343905496915605006785798082271621006433939917390110720546711438465165141054954922642519598917909402292874442680610097349856104507247673810883224610177665496281771428922433719594141488630198660412062582335678462291304535179593885471579050281408153954263926820708629578666824427211585047833852340146292034667102883069195285717557428951163102506936598326170220134074164002938699003317871431352380275468001101769969250471477898297539432355982645348282220540950646686210560825358185328275852629293740771263141469086595955999849322800820677358809299198418888456646930119597987714262893621975696273787484615465478639426981573964385887211330238769745773337832074512701358597450130056461707275800247537173623717571373965056765853076050566738279127171128374610661833583797627577393548554747702281608841276989657530960234213948148599940521049600970240600492247439329881269570907589308566570813929021883841406238776436134495072820593446148792114466204933114505036966277504798929466221207115051266833528603179465900969160792985818771712186039748449053644483255470978399239399683948687236564519694607852110151623739604943116974039998760888533324043706485440878460104867991637605554137799379875123932860366174747682374084451167986966052601049395298987637665648802523618801044407342995947769081404547995940578929786888512517879223441921654082014168521700863976615493508019516373090967722102599674616673726320065790811827167329573268168076506694420539002003792702846092752696462582860914049500765034113333319367223051190706492649130600334835281572646306159757574543348345051109080150993418358685403871755372724461560990831218772528772555812318796425374494126095640483588397938413366651234685542741820950405734222508934362683322381125614113422857910448826023265949870274197216654676549946698936052108818171220479087701557896662303399300259242005302789263009869693665022669089947368340311418213557818971618960116458227789174552300426799703242634936759371204799369487050228389873392757905932991382706000665496994877956610629752524769840841943458004751475532361291688985696688115101502601929257710154586638815066618244707303417594538797254290234291899450948800008509461702525883732298730681271443051933869522071840883369097610150721782402477056204427895301518396630875559700415463233419906493755030283082650687376308894124115495211806430624083509426984581463082163979526667163669078584344771967305650970081656541911324849275025907837406407942945283140134232339711663201316704019072187061580525756310210314961551115002952283705833564555753285312886801490042234681583981869780248305416089206198918060370884330948110517332106597980688905396480187186736106559704992870360193584140453432275610797173526952394422349546705275766355343401153516735952337353837039875815935039500090703836998220027721424149090106240850588029854518094622864570354613479428163775596396245759333343776064390553923224457850803053695719468609004247011441121648297427999416241173940998687832156891130388749124943298395142921640905904738239119571230831186874708835051388684861492690141446447945631012009757188637806239834534267521556557796235548195761584727238335531080129277449788870492123936548284033612461376440945794338499018615262300995376671797502417988674192277581334452562617760459856797256669563700205479067786953451782650914005512772443479709647744480948418167152845547588632834140599284689169280672169168872441955497503866609747930438225863076180006946029795691672320983952436451602142884253703929415091462489345513201556014104603055568620852765509897494671689584893706447404470567154906488368058796722138339748672546133640461828313131770489788414431378224555090788798716578331500929189350603995745700320953825225486276193479517652446498970057970257978039069368510548082764067265910180804689912357903985614177678430459614665401503352039228044316582436855859541372319699721729158722036746912502506643080718474999714089811571713471527954223535608100184951373193974727731414860201518151298096182703413965728955288220339689189277278764775262557169653961061084141743942434658738226440498410960874400830202180084241474002841221572432204320264516973492703423832425099953683592962219016796471079143129674592875409346547858498073673652884955681708386815079602886086612041109965284381618897995537618205431769771495196051892179714976342887753443091705305545283932531017178681609167866538230662974623663407073056517170636340535721841509149966290849815891323843344392693139622299026659427873582843120399967174719254147919272046746446537205972703579664545093992594175702540823910927772137554296358852910816299671214646382338408097907791957769281395259369951268302321052690808308864181616903657880942565418487020028123774169476220313492610646567907268130548560263378000477853431089711009348317152308326164271011969832290686717010000188246427882210085741719780629041718697482212676334775139051488944312258952368666475758720333146175459978718500465020487124605045203388593521916032863866877486892249965616681654288450314532037448166075333958424156312068894406254217233270279659633312904302774829258336473681303305997883601849500517913122382298186399545590940405107942910157742035671606559288948686433697913897068752324769356083262212608908975941534287301713530370945941873646768349657259380222715508734574168595168884435576100428865352756183225173525737068885294929067766022812407098321316708642698966150138431282696635748109234170042347707781806435155453477704544406489912390028640145995721309724831239184343342678037594996227312731337246494338937992735354976907158869013059333674050118448562499989858402799348107706941871487582404960292113101559645413319249716070266989698124957806637904953514204042344609714434869628130998944567274817516759885907640150374060458550718669600343354518687087671010335570579362629766534856502181115361501883196628224681272113619368215574394032791947896438992831793703232270542747651742673780356181228951450985111903079938074431625962936995672868532239121157743160784662391619699885679379694046220229682151201957996312625051473677619077278069146509609155240397820329641070270976281167627663175593043052846061416872264387206286802138688673710535770080648957120230990824899581006533528394177312770248711943682228492683905064079433636330287127151564790195169316148565999346138102033518117982759753274815213971194308323952355688383754518736537918308253039498555997238543251099464915381770509256576800696488801845881293946441155452277210791399451344750178817373268267322131415114488372060487175218456621285572302402962190817325048103471821229569350937034485855936269533322178684216444661037116953858063857371258174960097331731512410977118948459300672125384498624234939336349436704957329500992563954116646385165017285687138839532954751740034127943170567963783829970313333251269155353904116449998026485975902338683303521453826208967923173405032913511016587309539263053979617796520954570655529947236509317281277598064742165571223809017601660612160587775350544602529186989074184910658221772287752190890035350332023453866360578715163055074267934007905453008623624756056181944589388293467926201495819337418200452010445364557642281907022823568744320237486253618325706211443200006644456719406691700606239185740658921929846329593055860318388768966450736018796655637463243680332703928669890140948361702892342391337639939815132145238629919568583921744504254432266278531135797338822500666845352181565363849682974045693225087878592571170946109607582317822420704242049260666216213071236470178311093162013712396510160668224479644512454907193568804480388432322872702892035003971099045302366478368487470826749241453227665295150558489173376891287099897282840573506600301602351377313223696426050536256294348612514055096544385315394731309032937131193497133324202090945280218783876020435751507326252414293258331798958358577618462897091474372492444238278692893616405380770474825635805421083565774196268839098644211291087763577234364910615631434908977835860355384133996776659809902925655130655289264395018347633953329235487334655100576843488800913887234795462475906983515140661028178298195993502390282069760642045853713099256989105792575039777731572790698652200991720593692615970846973003304076834862432654973820159208915927223482111773573194453040274659707953043151744513880128747051286506350332783651740504273059659932484912486560358806113074785571929572370936330831673469304439639866854334478807196124607154385681843457792114243877970505302427893593765279218448879492436222294120847451649291165022966978648446208776502341594602300525807892399587925844915883961693427855578796173901271167207399861913620887775226564483002484292716279632165463092304248252131541939577312446424440508454387726428225171714919563955408441540552808706544022731913332029410736718495643334838091665401319481185715294631935038516342933097282782095026920834952571468488240720273513323927521305442556740397043609023707887662947967748507897295092290179113476297723032622365117979598646084668152425613417835025892952150189493441350481805798684924557224258191333091020610110272213794084300718315082778199682060618547611179644202063633448777740903468002596172166407043271669201600308074850886681898648566326384076020370632047195257439827481324282706030326220722186315577581746333662485263833035861282308712089602148532186724165760409988529179035263129007731885837387646423671964286753906450933219754532393222650225379523135963315675297803097953577058050737846521600786974209920179512011547955832004269910049382564328798248228484455650209450551215479682300154340504572782426230865508069385877107409161611767947741609902385611621472903561877211153719969459282411630556219979188262706359435922267533015139262471897235130618598311125161229339645143930844579517404098872943893429650691006294937569596646924735880995495144955269780726109226760250249099033179354595089873194574943778629359064761603215496456748544417456290371605993637759014819058913981547839597069460206658031477393498590419058528446850844326281452514390006166541786631223130493952571122819826934322598849063687216466725475920824789033679285969992696949989385305321991769731929406854350798833644950660968028044296795975242662176665789267561258624035570869863335709483010896900961773136395229585405890107890579936468871870325539153102469099626866059646303295073797131588425580705497887359557530550079589322097852874719051707708750251533010896108147944336274138261964242775792915994835957615470213941726335980938493702578206435357871477232107487242682903283031283567159691641892261155529059082576070590114907529274557027543012367255164067801026472577849758179248814404929206326856538127715140873925696895951222685004977396882501525666712964067233739810052024984594175802173502909020597395221680709595550610460705269481682984703255711447069168211335477397060334001301844125885931750077656111921902512796484714363738402959742963901562550853402731680031280404914539711098494138852050374848013604753487880052685227117446382134027366711479539421199722757952517235930776589738699787556779427846599617607005229495152957269631189720171780436281238491360406602228532415426212615792621481634637907885063144480881308826954017837272925116899878839731443040305597835383217496288837874540427724273749953304730611760349055490302184528482244741645841803833584679302379250735444648833618811590336576492662914558357433454840051097579449489294653175099406044403895955187167320161417084040139288325321875873959584572959153949475453021055678207633775628319904567401214166724313892733686579752599062533206880032497445440146327082650935877711515997674721021793362519830387686007767802550442307369033731953950940693602515976557792351466380772798395866742182883180045653062398271100945010591823760980752957023243862775926516125124283171842789725506541890091982018303850867654330498099739442171061310302680759946697486710978689959424088118079399715723483695441481234661456635815929190317323912643508426199696248127339213613203381618466109629996841542894555869637291591875915327928769782346551808498867562196083862770162166873274608940048483528014328521839902921133405012660154061015974683134010205450009064180875369463571648957791926284576109067489966806366437772317256555885455750649737752207142561050366414451111932112390150326522007726996049985508074938955496920148518751070054769815696186968185952584887792422405865567912381103394297217686727583576564614585248210910802007291513713600275903149293181129080308549757972597140086713998437114135394623839565544169652455209918385282148542239025928688202449846395186657345097009016656327126442728452788933224530923141325103072348397896490821655164046692121902629418901562900287921877115639712062654510382977884701780051679088220880842729998188532022801057394369731265290883177395081870718146344382870146788309090619585049148204010853613597941882173188884724606477416332037235983921513049172263732784310566542794102411940561834909464151521145724901189349665545085217517944574402222810583704311603034588542829862702595182523069766592108148970894717637868238974075216527657939208608025720633827682378021223996513262234395566885603722678326167986927149865370451570732185768321217351734917331014052245378132039072573759136449611871572422798038517732824805859630368009751587602029718811165473129639620119978733711559706612354230340544117746289523104962216513921729071057196052290457083575731115679865597822136901086596018346973420359750774868728286364445665714894646440281889067191590421849955322782031659127289359971575595936354393253113182782462728025333326257704106031494718769112604563216428609725815391730266342890256579993608568140144960062550121608199353330022631883812720373849612644497143933343466514019857318883829886752258332581450842610068256972895181708749126657036661112328171051023231711122779729265922152461262535676705248410049448688873701527973531828260417152671577915170956827166109936909305125048970391083199660582713407828905212866808244469006698989736847178139150589753053637549809663145475196902754084726029087110783814160050919985287368184816246522058326764206114843886361822464265300938074800673571176847832905733145901708479315540653129351903277427315403554275281227361571860212419091217904030512869194994354041332206816598679112162979137630554136384442698178939447647142753802987442300004342033070990900406317922663431416184242780260014516161312409383030751617439201122136623380345308205693779471102313575537887823807728264933539330646970505826226593807075538815565768947797718322515395272365778367957931817244289853125891385963107728082832376255527899229246822311973496992108463132010165105500848783323098383831942848048415043324049773648491706815856902901221489228509620197502334035817245463825194698075286075094769650826559345442406578150540236240901549573870872163610106866629436564895162178289101690659735590464402342999989309690602612747002966572073504248661121761592751660108437349112585616799351605193905866946220384053620451330064973819291762890391018918862084323047951188705185934570573967698327652799743991019708139546702131582940174294098235089905069598023624504724416413960369971370272644385345562392158558073514304867593086805224510263419939932958645972136636703979803872392564168425738847389291986052237263639155487587724824831717391722741585463382907915587968542671737937415552455833096539698153775989469026588983929219750773535143171567320011395003934352087239648395376174058721394453742496774994389017945253591327992515858443403677256915068897711541670069293545674125916109279676808510541811057794802802405080885716161204695348944958809010408467518832481283143496499116513325922645860524201465336473465376362132607455826116721600339299805039771440632499390927102285402462996217831195163045828497057582973908126367533753530811569339847998920821702457937558882706773614178255056387133496384646004288806870012861664188869939153613603480817641347183895359160817522082086054419175861394896560112119028107459498092970981259222055356374165556000117281689975927222342839269929076980990642577354955128511168158139065232959331464077758824670727764842249550957001270294696240661890038158395372417444099532507306865331676112446908377294086134765134889451866519418170203767533541133022028866030232653837578052381103797014340773393632391034450318467134900613724548149631895920789975604118681201568190557595696465987792762813796962767863720543715759833481845625934783793428798062780977362122131689412671677039402725881220347261683566603996746585750302084979688016126518211124707963787200257315610987336768235060864997360871848396479317329470037901049121834505620256885099455233728590884564234333933803360686656536488577485503838947034006107081081063040437183263295144230430844715829275733499269047905783647300976934019899371945208438157720628181371915721661660670214767635314664540376376194089624689276249906841929021157326251055279049245356911487664368209082799472543749810124086698174237721003173221732653726433216064932691280923232153330148410864361090560927716532336351872092822222811318620780142723559309634287428187787764085788523439204706906841789753328167262437431698149777136932745196753681169358336203832815242548967501741136848103395140653285738929784888837395520591278402585438806224111887010650133889191015433716205419053380619456923663642339160020732049168734216904368449740013649758764876123378222913168979712553799462561738896193694826712832313037796132725689224062205815776245985134905705453155336632786712271141356108444188237216953619383276478434036091931780498357709151797209787510270468088319767305868641066374739405636899247664915088702350386669493116327830028933672532122871003536818225127332357016089188641788036005304142043673725056490063648749959324243125200490309045937260468266652725866056269649511245454743429652457445336182514067513340401466805921208812198773994902931798317611439157674715022300365273017406202298308877687513679446281459793355156682243169117332512548144328429387478582412600753255675056448377163576737632887169819655761880548576081824857809422672286266855547992487740049568097862031814428866212518806560024280676100330676970925558695408921997767114833882849137456250890398236626823721771282322968573844297219339665810369475034418876385609537517180998857071807495380050210571822059000032524464995954189040199368115144294988626055046255530408908799669061329769131342405855595004031919336751111617485999079064725990188047228899958442217740059110711616416792905592795490495225508597559817258075730269013755475560907313006717225067311246187597552207920948084302053304194268382679595405158655469019461171501606826026210083019177031576852900966004535208745531692519048520144588701316995499705742859563091156597099570262540962177785881392833937456841748706887299663370494961674383398623861272345647541921547259646753891898356128473332294763681876643073919925456537535095809983900900548897717951944807892863587665940183293387671103360400879149714879157850147882650838159525177750814880768966316533603268008581925312827451970958201909408206665447609002242939899372171539756570879593351899755906265074822099606900993128016562244416612026508815380697727749479588962082131389611727749206854879489946942922078800173921652964099828797390764735672108004119705700990810288083594907220620455727656591570156927791477065419149725228513074497209890134970859408722920014787585236034291723847523187446061622271355792768592059625997339595655988988561460407153998870315620654402905585372581895040097440872198935816934702323602692238187338194710001532824322731723328895008444327971665698864140017162411456479568874404539597964750977809766868119824271997270176387674330099333480684080806652248572343364345409279955527650913704551046000074828846768936641301064586451637572600403166482676484517114670994234745322678017181488974410136043802004854072246891939832630686679401374029508142760818187974339008974625720690831412994711741410449646403904267665364156588501845493339621086876011632601563899442496128260314420098386868936440480366371119664117791643232772399442841904811566224784566726542376423802561182189573412669432858215394039565561302690457236019044660145045740265073360197041920123990921466694440890911954928751285248398204012156024731620200693233257741399690360402842082696380450063597452280518686525398897627316335882869092760800795556555941947759388571853320011116415285835242650072067359550431858610081869401706185291252076019753587537514155785720150039378751276657255701316994210587642226265465068918010245109441365544434747760503173335689662875428864463697126112840798707197368904509124005708175097160315753960903772070148966194512724822075596231562464315500496477275400900612368132828020448801601269787998107127372018843195615264893074111168067775324294665196622453137612283344262244334001817750891383718789531418387940605354253080910673069499320802535480843943646111620643912347551752121358420527393028935903908219028335823244847163188986031676868804058291181045169388817398171937074643806643239000078257231338349438576927356793372955607186216145554623048885335659504993917754019913771528610582295767399834362973862511476601576315400198997788282917948475711727874236203275420619102142090284016487823763592386546252123070806877161598651331505413857278864824115270586149914206866251109070057001988280802645679261941694681893763756219806917188850673873884311189995223546088310763434093273876371724831210836049397176716489576713263955562075146665199096584295535065383470452541209138804497912740322604481525561443203825492387772245978631657439980876606811831865081481767716098804936673238985166491608036890436375811708971216426440634900235810932343531161940031603801631439795371308167088413247311975297723672985647872302434473913812283812749244617082247975927184010777730709271041831087572166140721478819503939340859333421826307748831319646908673515387058898562167925302116943325672548325041345104848685165625218104938354160030894386476750759164045117899369988175611995100586504221702542087852461971585128433199846952990969964380300742012923333838891785479974873447566205536427951540871429032312278962823424421827488226551901676759711718021318347517592198637131256259795866636466878083372089128571424786328668667839237816857192633198131004002434807461147494184651898527979129482142090756782105182453172002293179564163860068473118447501270424729800374721024965376336314165748242141582648707997585145765515065258910394880728933621427377948591453070280377198795376336534809400282720309839088823935735235252127372240769774091211157940593676273200784427882431384912890485298605548525197469628266301271780582773129622588228043745098645424833231957636465392931546701510449402790417511418311533073139511765940092795552857899826202454791582132044115485052128334053896999753294767436478695103408298770205221954641471309990101057469144150852194114335362470359453931730227433259749457444041191323735801798160767471271139764465954426998958891866090446386932407591514008622166768864157830630908054227503033636096383616790155348374970657826062348930260766094612310390521357722541812992548243432825382894786384745565436969071483659148223295606810511103351231422460873446895409469309198369006675108794902903778816859029724087167109861480679007235156334995634371772651136314199996937351396559200328788379193316274225389935621863718465566257696781781257129131983794788319917110211239360294185874513880723647350775729828814808219045719243722406909714969150792744465054759399241096758399134731379668747080995922105643019292069194875457335429766280320315504809741178980499062444336065024676272022712371514465018517450807037819522468528759000406289532745239679160966288684734434540055724998094409822414804446835896549491087441420250231866742248824924132493905992925104743228620148890583358785058833841301399620513079692853793044993738238062516762233216894723528157682390577989784350928690011622465441889828311361980515653684093311163557265702714258637160060799537780829117506075943849504100394093986748574320647563999400359274214918660982938674540546910863793692925611458860549635357859971434005606263298901347997789983591577316439543493716666729627773489930490024767047375645010460084492692471380218053337070936907297178070821228824446643034068867150060714537908275477049186843344045031077292274279030842944796333203724242471798546492890524320098978718768229573738285556369610342700305767997332343207514380500428435101066476195582324436955259714619950298713192293297633277799513053449377565894712695258597144829431598314380927394535642714005653001913390238480072910482044008055032568038987059276630062597961898941308923729930563548161024655451611391638187789066531738337334434479975030973994081180572739690337627967978126305948689183287443233091337432790843763025179682541996107595889793581011800837438897402584724514646180212283568609401445008987534584139483919565514370268340115719651286228880072035113208445069506621430484708820984415760784201906157615827603351324883694253714864542600811913626771383529872203612871579525777865924615209557021005002610585085791708382507829252333866909482131796285311427676319532387918389986955245064479492933588400845847511960732427698337502194590530473951260402809926025033419945965058557380070403153845627089274105944363554230735627863565946369153863781914414049846969006851414253595373262950716869851798151480894130801872818734391172466701872985274332880778052735764513420868829514062226486257320333941473343756086957524193831448628908184037612995986588745229201102494762544642054045169843146287782214565449351767247151420514773016545260703883207775163154102082252348048480640725490173993950826752802776235228195452482191396037484029581353117498514170645112995646943678784695906859228438706452927735483480306139956485059430365882642926674329401927003836491846459873934581995619603793959119316699997792845501829916297877829097898516236153389467795316143619383155108452064772378844343603337826985229395861355929408281483387746016599563816393882728728276969904246143638625103903010907154977351762753755825277699826901919141618245757338122972526084564722021528587611337228321192899797371488254126617399241279263260740287996739343561747967558127960724278560110439725413978944283293038678136024624792801149789507947133056123329784921231931417943217829804189204161629783654849658578719784062401955046338636078126285900383591162273468139444030593875985105095376904042727486357300287154908724780608431236661496778903831203954753741506296104908136145243300159312969493160244191358870435939544174177681961798916976232899499713933223452934633270097897483388008518863093197592332452543904512226065269081572258860497225611470748931733891945775702337202520318229027781982099327394522887116490197266048992002479035814201111436057458338590562910254522834254073150408330854710304819816379473087384876738500114044553389024568226019229423392220251697913636235823585714234389200654931175633381401800541587786458947869650457611219959199416490788118620101605642102295945331305419037688103005459984427464434346467892990015995104915667143901475659091057895179581234202260542445957828633663797942421514838962105712392826989193887165872360489215362016075158167817127317919563945728449619998642334041906251491221383720708670542121355455504090380457206801501483889690564919100877344937356802043339535214695775543788695121359652111943261765828762894867669869797552327791279912908316568095349214651812377265240564789850320982537702891851509821962491041135839214587474668202852676659800251655711915780401341752262974321868728478706158847009595247321960633273350058129785542363023734409060764114649793564905433526630976161009197376640973231977018124806037809279123630113835194728059819684324624467545544194487629095120576008052108077551336085895947865228307347671244627671361697541394283367501808272560560866566296222699803874111459321437831296025622242654049526767892536875264259380558075381782165346481733607325603981261526914711580088110009771167931438404224778544075746258350804693547517430767739360980499528568047766974828033230225379767489829806443785153571921496853826216300556260898655060949902164659372662194681855732942453004940161017456804121787266134319372199088678577195148117798207805115433269171042054263686384239153833044147070181791404866314164147530391558496021089486342860057496493777067207515883332979997380707694428715842927655507523901328775095559926499087601416152901547183154695656281973070697115341543000014402667562833715020588298327342079772511740239536432146216481427052241401169598661913016171560486216837510483567212254222314462602933487466754011357059936771473760147979401556098252345736436020589170754621733837603932861769808972520124388662303476383034042904187974139241688292596914061795144280987657127525218921832594002146292670875245141330014301392795230274466027952205516215424907565890919430468113400034725651683777034932276307479316942382331847760389797581553817649059895064115700992481474917437067750146608276056197439096888018547355974641724044496275339151813357717844289006180755406764864434765163292462401620833410903479286070623769243705086939238182914347496077710346333243501944684313601149655566206854619118742430459079652554457410633965499793653473023250188456023263391444041439427247675571226552366483242382872186029811750245559190405336390683512485790338683680350901718338940795606765990947048110718752933982108752659985716233694056505027259894752317583083779997636027307973708372921020341689206296252680149618390776990095579457052712679348947737988563196312564065350956495788248573202716179228745125301139660304643122737317217545706686752142810632436530285350777233405665315715152175405766551540453968712931069370740787438407622929249588033494755876229902910342811565607844558805356006854445692446919119178920004743215454749967267473250829366288634712044973556176043852799366337963667523050493743970515739859395852701663731440174106060146609002559487244702259978264235699526761180714744491285145332196758336587112747262950158998104814253740216168910964621902719602834462225921428019523539467831036592313343668992855618484429382950551631093679712827759319346718341292666577395114463897725915446601052439348331843778090420895558150046383541410603680345922185822363539134682328618701613487549703587817152909928267262447015633674635876858168864359582983722154320868643628879970677390979498106489032869803799408246429074754613558221068218788552333219978397009389972906882980511879911504208750798986575462384849342927228465542243766976374111422510546932008626382551654344654023549188372606435539262628885534258471988517463709216641563830353296234175939137116025972140591261116583212027606774767439468528396077316652803317203858472405027873682379104897393604313406976575329625297091083410765679933171751666739816690338517713250694645924942809004475744174354508725534790467037070971635565135972069334688092066742792367934396368744713423467876146061446966298297896311290896972793178356048789455094821913024295405225255290632865025744613990925764754736323276137669908736724410555325839158606482473848959257145231330146774413783412810523526025802032182748994928899462824585833756464277060577246500264879561916531351409452213666829009451109070549065691329852875060849828267534134144971302956394185637233513988743491600149279176752269907726888423647179184737362957471705243673960799756665828756927245979745676425606261537944041237059548678763762663800079797341382860097688689291410809041354112240327042946074240775805957316030923788472788205464363790426107218805527449974077183313845992590477180233288570421963932932805292133306632150254889523770850598140807081951109623502136236051419236104465153150464461372229720744511042941376043972657672603804001251209391795966233164658880780511719581175247679388749464110598909977175657758970381543567536851852222727586530656581980954441040315104760860918607461047213021366659738962892606971915116143909356024724634638004008289308006522307143392986148030552723164818369918524913365830595692087383319826438735802867221534945547861384697509490206783553644211818743182107484068580471585345586559078216331950200578819267267028308940630660779678722511464324043912866230998923641188101636681430691317736839995671066166451470136058595955776271419022023895580093317208166874081827499185700966520885502579914492296054301623683144260708316993147505451980483097007189015620258874198656339841063731549303748411427784616742954372667975441423791938951107386602296043540620976300509564975926580798722270480440997633769679822674643256279837264283649517138486527193994288652774973227388319221766470248855924624458704870026456245124794475633516816508984256732975456667973968977986471221039961437528359772441630692417135560326473262326391394834558592974534411382947331276413173042429677223295404566548119780224977140798783048331216189335690886669026080074377656456069806283590297945511459912362484370133847015038510845073870429046188760600027730108356915150004542778117481075600777126530598409802297744874901165891526324124474127425345202420373368249502405021986932825711684014139503931876938142752159539191380972050860508149260362526516730664421630736562661031331746705960962583633633953329908682829388379410846021022950075971568478223656483399257739169799113077213683022757404645979669277789383150186110518653816521189863211965919814448592096873933791158473024527365516967081080391991960798924098125399210413618423660159021401099074334229866590143069606561499398584619785260764357845886646071605382088839951023521011380834384385174798208518825018152559916581447951073751337801933795745938834393014241094019187836741606994036748862671939179364868173027967847407162268947527881387501199028349039576570220914746564519917641786433808243314665251485983606053447111206197718254801537760785312214226790718792447845683360794204535338912646301867378186057236125567787382741059828263038910731817367599393344883605046978609067359869150421982704655892788861956290535501817389630193552419076499781127226700724321341358194358670350302590798634458968180215826909298294705847027210365350730009003079891645766770958572336442196327480467704059416536223198890379708993477897475398124863931336123242256016491627344574354920042949697100195992409147488052802104824241249459565361370968946581166092341894115176514663588103983219033611091956136152680113787953455653850078562727738958702012883605400348752763638141600945465421991767318826009933719104221440605667917234393642517161057354665128818988827823720736926925608474120061692209417494098163917116382707814164083998532075956462429085669603647623563452369678942339811796816760695306643156472398671632799030531733525182194817453953812313981526540787873817354447303189163731771552578521868992489271972250726478514989390184634907244520781863127280057305734981762233740976633209212204386517118952483829098260402313870915300019958560342936757868685059268032033746323774104392540161318604125093066791915133778404033246063838133064307443082968399703214766266937949451268910138027376336347541275283686067597968804228658955214996275096510839644288155307421432191973217667706933743134075473539082461593010875460853008577689895216944667352401802839325399587079035187724179696960368328298958146960153677773429391229738455141274836425650086451650479798546989906854553093735535482527145341431226668298884800157759365303994148885670177641134378067019641950722518231132636829850511108932457136177183463285348886423738871771230977500102811113731946285131640667294848488664876382217568831910651774049322604247131191798047912517813623526825005650662026572111269452755547410173512497844183690831451843247729108032797524858726983725513598097253659363461855102269159184074157009092391413256435605095622445570486614916684242410456665050390178719075339386573765648593907805440645121715398091013663438233819882932077195507289593837109191312369313606240659008266940644328882251316810309674940048636022020642904216302642390910379715064494238653667236316046822039600073150732627171763575830631204255978641027823672933540812867549986909223438196574589627240613996169928212925471354074198129505580059605798702774533058927065661771423086471861805852595729629001684261540822390955021319108421410162606481055512146240390642922303923332046020538018439350410528939063016932748954775097755183816391106279846644071179477198326545518179345066689000949986692844394679386355044769500132530783037346366489621148012442147116876073049954182209615953055236029392126747063012678314245716761605310735176951112607605623247894765507979126604399296631091468090432977446365524768727211859168720974748043482063630742535616531168537712246402865475640563300379150066328902728614271855378745157968869903416083151264919954946921768180116701488956339019179750695311804300953484146995969606978676906858148128556135315900769434523671677483018190697297129854187466434616817506289572984593756062373419104920496993629913488282151801359309005564824407545325490234373743652269395136411516708202221097150888953778908864651443457180782861355970511161400626165598393963447610784109986172487971219424260463623021142736162719225414408932855158108800648376651450164460366478267527200609880554304412701471342042609506107407135609257450312553736177580254252109473172563055961694652806506659226930215928130933237768883688939081992001646160967000375708171046650174535167934729049781656191732204579878671642440658031967376739864156099676199208569446154664893136388495910947819777284749341878432280655237521382506764184665932752821484799107534806200084611307392302587056726413764152823757320754456792206303659391834750940774828610971783366037926888669119898317976485456710405366979650969385639874478503495143164155448369949956005003141636490449067749282351515934674541963327884271789560208425738581963096994082730996717871412725049778879354825704615578835576656326368667498541868454752968154073186754925716845378728480397036979431699035822210055883996767049743454740014443367683446809356611345893202471288521032173908032500549147521833084076593273611012914743178905138655724974045963980139173346155113427844468005097188788401105283058571226353598089919259842453533171788980616402388504796671247853302625404708706876252493228796702359800968839066444398373060409485850239932659118268255882713969101590368608275394375732540989590320651673251396268552074910187267807122931148902176970824974210496359825369330653234384782525956102223990158475871214180787761828739345053875864059736595560463110092978595295711973095456436061110364160657733493527557086218951464640635569946958758042419850007683113437472072327143700919874127692004563020249483823031315622995219596998422185492577992466695016153579341312137163722516213218949695880399080571715848852777481773533659943556860205989983545872887137597447248960531396913578278384970310979749787858518010937327636982172151747160045691920675742860062563663737171985207061998191055994178663722476215186198063273885452909626694340055991537320941775573544946265749700142420965076008867361249291767760418548905729136819297551185663402975099992938160625441442237822960659040771160185105032724166567461428952209175348719193574927131099396290509178984818131277246513878802286804453190418689400384348811789157321526398750474157958720914814244359093671665765639351502980464532271201016081175084276435974655389403116948431767583380399134835476530379728870495117831450309341832038185626696791959528109116385892370047421047520307525595363130127444207053705668370137267400969145085530194163302171387696717735402669861761368018753444969791017384098564503888318585695279949854159913607977443600091607134809030177885231566678602360400559817834170833963716561775293236636457089932432724193207593108721229262439608007312067609323110976953707418183977900919201367149947376303578814317918359908994020594629659800533707950993980745278045805342042241407974029413841294949310000096537934451220668674842158901620498628213278369311220242414200142079259957861543446815899754080370606219343354327639020626908331768484025744971400244086488543917509599528916494188649030198886905492271349475340625678750953968617363953713849859403559622352002675002962602740937781716895029949455972255218530173221428015950343811772263135768004879189047785186973530735956905440291048853437490748614189597682020668711622345272266569953727135841444868470387618973288987474784675805451358570994968236937013831133117762123880298236323720449167767327070620164449098023517882232035415566572734002712746839334800756548518475124512593794237855404321409041813770436570399533225168588909268095482449174103736531198665075753392293487093059363531585656063573032218087947485844718943509539340146929491499113754056862938776113495969834485064953678962268865757618023835469191836416129368861103279854959238063254928467903721817013957810820086741116624702709656155127248211529157931593071880476836708877507292853212643579837887306376746056943084942278995383096486785160324393996878731222216561767510021667527962455822451729896924280545317601172860476802869268557263184169218751858578235978184105051469133475497578747211168365554692760948817922403610317408105515133560431370154375117451470565261956500666704344292054946643970393944457546049609902658088754624910167876169013132896287621565442272904344762682179771763735777734737757907882172775841181318406345980790926584852368732328448946882934420181856540595984973254257031426951886606551004180709109426556469776158552785805070915506659437154806142794305058016597847159121734821763281787992561518103714962553193889461485845664702073978331148310704899201399310325336755097640057521017688246705610806629241276899730171636425948991650102011495279425655422608340886816017006405229833200700678074916111980392881599829663705100001729767404186474706436728588294824339880499289686052661418783182168418029273838883488154421594812328217695417151266745408742103151274338546310991461594547383067891930466672397235139993729942899333758720091526651346988371095237811526409333017423961407955816319473277017931029685093213759438103338030505864504816164735966419664009018145785005572603048451319582180729817482251458659599256375490609729701298741760102617884813784076881914213966565688952427895523800326969863297227013908625824989595433413043279005170323371010964040816664165412209390600442558288573622169382252149888248403810548432271700089908899030610240573290836068312640136561242188651746454728750362232167066422903728508466827598954830531035179031475249669690367074453883751330688790342220585386420378934828417540527732015320870681083277033745267687958684623230845618176314489574855610461449576250528383919283129857148489837315035432501565824783320384324538791481048308469965467421137101895086207322983280687755583754862568117358284967234984258049350904149125465528679298071100138606421689686498371724536443006573439739127697526034916858552146788687514559770832046490866141110544674707345246220970802743216119972126711939466872397564561879925959410813326469723653784915009267238016198037253703822549312540985549553543613842847260883553715765855846483868836126976126308701785102636051316843390602281920824965843670151559070294934011930922836786962440443246830198929123253329508854102036487747829682615010078714527208224133206041953059406349626739637233720219040460824902412464726162839310214173668900824180968201082611419041110787003132981469209192834283750421651996442852702350234205486311420082830796384286591111255908186195809498719478971297891721077833709662658244296705638984420484841213394257201648633698149449156647463214175218321999297914529734514371054068448298586966197987211025405187727791342540758665319698403047642805299127243490995865570551049472321040861380205739596594308023023682600301600627416038387426151003339517665986020750721432065482618439138560869301020326217682620496670092196884301414364278379355869005428777996704028328523728076458500962476430632325445362203150069358079996550595901905395735569298836778072196632142020251787910894804872823950923522605573028350554800621827522085177336219102885776791615965400433391489881193044028151355800385852024850364115126510094140349832594212125979900848964940828235645050451276496386367280703400746529992217368775945767008011277163463538778048767331865279021131149805388782017506505045294835581038518682242768865098307271444753561808292265976099155724568410184685050605652831966845935104671621796427380362045315688935925782393396566291010776229760189227145370130126070612548581486097075814831332336265841688516229690421947216833442843557034925694454289203789220035681612481257988189948506484959568568652837474684115899144080740103352129007908379418822131032223046845172481226139460226659671164997989983235553870698581299703079558749041813551825072803657580481202413863590820659859125368824540072869372942508570855121899275184151226858266968514100261488714434086748705358013589812890032626929653466922045798521089933243591408315291153106360120114066564760535959374044612144744281205530439279787467188665433775035955323491145420046592673953854573163998133649853287854673899122422844931452467485291131620228783550313111765291221315851274600917874318848169538839325393672960390291685043950449656638303249442352133999280498311113214009431195777244574751213819218216184001317237159019092294029891682623596395578651030739518621647531944783250211353171609198410202716929995378789969442077453588804190909144911943522936074698366544374376811558704552005133790666464516534693134765069997769725970376267740220308699993725372541490855372763988671861332726553598104016349790880100639869125704251937197961376633040047416331155478415129676375278961675615667636342093105406955640723995303018736533490390862603400129357489498410755264746496767580795304560794342714617317117933320259966007408306673427841992021649577027923708554213377424798478534714719985983015892647245029433955990361390767549117801020190239613753138704460101892311829994858825504972171508134835063766273037525983147510961111487611519504510507994737465635337693838093020316730988155184200689183830646438746195596907590298816106683215751611332003637259759705323475925391852099285316549511133807018841397745031688041582814081839476762018520385919843591005643096764146448946554060097159194999485171619077960848429194528670082035162872514434521604959116345654247666434820482109700095963086260987040585381766934329224905180678829496931516040973035016573182353757093514687698875167105292641233529246607316858326447749752982914881840256813692784371240259559609701941384398578953026828650787363083472917921231292356565267247886691688235735598341048173328213475081363167620057044802102133711508384068504961566354824813431487612406008678677893870320058322970250140994085192024938540440774355363111701315291591897172194626584621187889373456494669628245676643517313231639572453224148902670485496928456747310183341014006807691384250162584351820688234125256761901392072761125236819403824781511107515729629234730926430649339823966042911891660899068118761245609262059183195888441187087225937578651354727438183687933598870197380263224834880726572685788996782976191435047123078389853416335242932882246806576865068010789340917457163171358264787205272557445947658431446528510660528356456815040834903028571617331990269862936286694576628043188435173409836125975744450557660976693415481468909410150937375209873602537732569292355737957374462065550882837248969972296908889739013228063540306575388299702802759793593586943436039130057572077793631269155823920567806809864273041491968559695375728721672472261772980104494064861571381068557930819095855309079408313205669626908788986974438166080632464447402165724395510218051310355187186825182049917184651259954493717763237923560386843686932552726181741510537611678272813663497581414932242991128048501861791609210660279799205600385163001630028091586206390458075831242205320353840173445942211030518138431833099871231759987777649675303426443030857771558040738303925064940865590300422383912335979600209868037761592305012420742072722105460727462874584238468959214670563146537220407681562014659892902965656271222647325246999763563457221225484003960331035221843676493810331476065781995925164860173413691785207283919755913106193995020548290789660261681512705661102305935691778830159142238514374497259671525369104450349487613428649645605456890647896493636196111931897819180385353281260206493771859759624348866809093899742410721144220780165334280400044783316222712472615814778524932646204934489500110669166375010163624669674734751297352965080835002637560121155054467733685553866869763123106316206634683631165297445447853718684015930588239459362671708512683963183574095349704219765116674253031777433783533542491888091911132375440804907214337681398533068766918622622973716737703093805825371140970259726791237338817716077511215095077077961148813484768253372266201188029816350157346090052977393585382625892450079101874227873720231043262000149412434446282241125692648264147290485709902716924062276295207535621142881872783504796776009800189521682876961673593929168082997477934109690971234752430304258646658812512516389395377490852356347159008829238962837189738746762245350734605828684519813511628406805359862437095493123427695871959813614192051176786971029812801325084020893686401743032881216642639037857109817756678838459623665653948080104528275819561379160968465150707490851709185875982226161386495188081465866266171240138646281184426006376574738774579328862214078617957400108998983994116149388933258659327509871671387996484253992794006256930481393704539250611782209400832773159475962418375208243553281969857459349412880420143224940743664562249197061587997561519867383077943746942844404867676894631453071680797026397023111336142180932358365521116841169315281006104692977611903845130585558145985693515256977143517735596407297658664781806441274445259054570781191874953490800345524677720500842187583130233223332285534115217684513863382597982478304645008876746426723256534982013499781883024194965043294640643120623700461037887212523759575338572447184182179061891712939930056425043487427491599852453403915601377319451986227795089528188876305726692230474701861815582490341760762354353276641756566373358933999089566399185768144896022485315234179537873086496250145519519944768964256534602032563256508920301588846235394890753734381759873807385110289613709805950790006344764514377672556537074002133485170064366028691083587176076271534955213681740821303978713032153600786053437508655273257810129030126916722064225121563511241492035602570178982274103138471690580869004999516375846914253734020204968040557907861433108801609785777235332734950912483805854371777840133813431178382301803669094821892270345228734578093203132264134970491564597953443284572889438050390088496985187708482240479386596831382318138316057001667308353514885838952743405375529232648001264325780505397752777662604863577878627038378458121672965011898478925852890594922524937026707496897597138491073530480404327527907327456458104430420145034310369540406225206526154961590897161364376238727616047644945641651226245708432647205122922041145955077569616321025180287015667981958474677166687577493138733803839795647705505105372798197301007306175167907478584085247199862826751586562599711912989333178514533622462734074055862279134197770645168166124111280288259710207623906787433742827793017711764049899179255711639310130096312090589225067772357153916461113348736516506753010513132975790443678128820412741087413337667773529900721468998602052284881835095581896401343974820659557358598358158943851270145374123574562328523196851150218132257146555493839309022381799636479179208894084612563548858156683219121352549143067121786648252774756275047284115633575862603268889142847802308397863572939674582644814962992744461043251085054079273264152632165311760691344886633237734763456690191905487051010224694461993869416356424688469588509579249545858920724970645120063602744537871250527341507790135506989029147283659308340761451031022310653760615759425857266428905075858413503984311130840045322574058370813152391749833779374049338255893860538994428538915015646785478360727572611109715861720788121003672066390984513917061045135686505208862843587525167556834431483581235379648378764540644258448654938047313709232985324795849317505802065957668124817897849013873333351731491322138149022290875973096120473899922950438309739163942353305682076213917471110632319731241783202037909767068844279468226552422857574734756746796206487696056867645811470389221734664149623857230293976757523904282839846444408778777817087873812189991550598838285860919203532420292106472162804951415288518977426463194635944069418701549308250069721075325994849614507690388238371481558442208655415335508519969836309991433960953799350579372186469945958640375239209967492443503510642651562897301281003001447494109303332545434710282189085573198728708915631881672585761321605827909433139519807026116050333950521840391842515932337238798033912345670590864989836328180147907007871075743307028356391119339317986136527022250138698031160101113323935878776953709811183724682471032120437861848658260616095269655713955316801230560653733350459130724076814321801647034674635469739062495981810630137405254061937424839761970128209918327968500975472986824138670363148350345767870939351325141592469044616432825935028170873198386435895327633150652728028656459634282126394560069069172403709401163586297129965855028595209058956927483520329352786151584030314867035884000410581140495402093465066813088409175150378883568533718808096201587910374977872504764474792313618121085389459368028948419848529129293404635673880819884005828138517930429681727930468439635929932618598660193012655604038101657576820073017903343402875859095378105052082503145523688466057049683878788722374493424710562657203524012314353017292258158845445084356444519340894334073853040428574210542716080673961807632182826829775969392653596600416009525629421501784315540262448807115374143398215879410070365546821387413359031668917821811597401444366015844019934389216302630402030663685063524851230371606848913947407284873507066449759870943292984545939081803748215880559725045435338495619656068709351945773953344056255546759836722472066991479038344208065754511329108985592320605869328699346508869749414277169711184101497699212327847737337504306274089816995140572752577940895011535476769289036705168032833724738998355865822026323210969546659178459914818574651804036078158652940406683703793594218763937790150412770125399353118317983616777565621804797960636204453871147123865339677870328411967245728835453431208055246738297988164254105385089750630265566774992525285107414484151506538954591233252532343525564236219262770297500938129694649074202640191427919874382836352544061988803094650108690462880646359346758991579071620995405633308590085944244521978367309775683782155367847351141700729227483728138611846898816039836317424298379124709094007107135240718159681213475255585502739292603166797290911177831059047714971114328557244494087918785738087224413239901024441735604743533693340638745223291434287435060298411533946041106515401548045218428980262914518444398848917805356097030711144593078096357735309816524269944334280467777774304965289947717586995850560685659407866197650799904529261952459456492265834814298122846786806067506681355341510809849750338417712846112173423939584476549843081102200362728179880776653629121152764890865443129199135724786616297445397479679553128983380895474209920895176140675024441372842769568326715484859283847161711863250029881935893232732974059446042646013962014144553268052613334899174843799087708007193210404709151238869381400831501279855066458542701116723496677961607939772245119033874472533532515565156972782464880850778361760915273886861008970202468113355552991147057464212722937760883504931901559748424364989329159266648903951392818513990829545883702608202293627135988339206708208396120933611672343256572522952565840488646903412351398669370297070304483300585041511975675607641891455337684360168076014746488914582378816706570804367100760847290735397200301658435098874384027540063347315388505262384766067297836078490719313931744671294216050573460700751954973479669579772611693667826237329742230697032861072516639717609369804411535937256400250546871369783932323422417777289944833434419588543760846769186479806772069979803521937254418884142324747173628813724411690818149287247064817292957356577796934895821913213939762574503431211891402576502797417790644873790984517258889499465878281901719086360127452349096550613304826194900276284514561531980216808072388640695060960935066319480151086255891237623568787979819539036632310041219991288735964384085065073466902318362400779979021245887588731798583468637272373706877142613471740238371229417987570796350742415816184194538838197692141123302112575330013468137600269734448518584170654808767720245700566118319900984007988995524345676109442322905590406119352274726947447371768586008815464549268778894256329264256478456269038638755902581072809593511033682253821987965612084603706617577286953716218798944494316707334221011292546374240523638878691420663334822811971722472079379268013970886205498426091831869380951459432033412026973390563639171226313290517908100454940399113087229215693695957670830226903041985028546402496838898321072600413859482042831963241524189689229633688670517567348141591659330854041990427450398529441655414224485932991586977451484496773272215014845752217730392195269602844764900687429393959218116133924162071114157550393580522565760225733534635447124882798338451902026157913333149686543263397696008244622799550760953889858876951718555145234499801912784845664576253917889541202610421855289738879966061543061664877883753570266371893270337999761554566477807203101691956151505725788445641625292813978298281492310744462588096443309025139738808547037759219010266777737747844590057073506961988159828009571882809207535217613038191361209370041096966236588238361501148975339214976751706380649108833927223794913901749159827569605717081443995015649597664838207550983146256880437147940711989163006957976869430959342217772187354554182560031523026616371229374679813643380216425665893529254709502107408275515685807123600353293078023841501573560759141900093540264540919025275851288062072371550165673088350536270073906370322463441164553476975810849465665356108333327869594482537679044997836273204308112364813881508642900754211255096479276030741283681317334567974129714052645000631630946279673477036204101650712831783558787474811763768709381828867784400588380771858113395241442278149802747317897976627491698741627488715471589406607571091631621298623025219507930994516103294216884686046136529246163234156761320115074550923180252810692586325009724188900547605219305177388349454099794350258107701907281269993094127221114850301878184191503672405349120615678572638731263447381249370617512250716492256023573221414633349920734321075410347045279301877746467860146970647454087399813795858317845285997569228670877228567172906128377246319001918876116248586488647421286473466567085724445445898840944184142016543980162001562425293392951248571111945001716154959524423688585087734510060888059014866765640318101795552196930651357613017197709981756021780251074458537066222960838147327253815570525058793724642839451909636236630909128221435392479924147851680013082386550466653125646724457941305389948849483666318755903304065887340941962740054636149960594678634066554002301270885997978912303388509854776923532205203940149602219159128284962926371684222412506163112365453694864391745248914533732120644551571887831717812757746941538064551528173137493465712662831168997745272383744162650802240680339536307505527482922914577763819033772734531742022798765908159837672233816592661343150936201309669481230831511433137368504826052452283212754876720304339342332819758420444934878466801216396534132739509995457173042879561312395935378614177844894277635875733549500568731961007527944635709917678714521222590191830096272039815314982014048667818115768207750987634237529876324916465340625928749858900352555961942809728598323943547621464401622842748781433682038640860382404666932730822563082757660266416833238420392158284586989878896246196892379316189057019023019592451235764812857428336110450315761022301143634491070806279407238764236596700775927295728023494345026233769759233716483114410497759589403318167309065004617796507043631584049801946447996068593958531082287906870532120422399034468845492259644550456461980353061689554636686215996833138421268910201242302127085617603653327656167152644760318911830513372340048456953642213346051430150764254209425927321451201102477116531412465835509609760394176618870895595974534158250743407366724819354973060070825933129918597469153416141692232421231444771668770056212838626625989359455871561776038216034902420545024515879617371383506795453493516483367313129408216535018626521889953235699559282363242253094511093653400134911860412535152609351994399078157802226473073370584563530924046073594752995870890037635866077109170447567681383630233077250137149152945565842864083449682532430012028242337172791862344322356217736146334907176030483995333270754410775361001208177386568126988893218629811289131975261358545118173048485663570373017820375635268925024314248472812651235595709745726326317729533338454361670406837454253903985828227053307698584284350053745226599291048922836134577982675037774698977264998552800326682983168521182578363948203101054256966809412023358149306664232763539662029793481831860039859208504872853089261911666339405129997884816558381010039139076092355704239834715909308480592754343633134915006916837312842230000865585320363305460565955894247032504671574610308058833731792115666702396679663535075095844580629851573598557965474313843249992436317690127925370569764457216667704291640314954992256888663715444120337970490281774308552495385968919675288698743723751162561664350823707274391717558572559208415165461644675472679705049669546166233432832743824401209024420698618926124764878945686223253380508322506612898140684183331658749536021867729301393512888835214004367533564715642937818201599385576093750161096886901556857236234756840160011555456921597927845487043929986439694167069572130059923271032128521587786808612251628801022383275515459304555206309478131586813581343507134106718888451410554683249407941565408292507846443516202057515738621388278582272564935175562593454024741518061746116196799215530343547968582296976330912593125696600138730329314641390369847328483910839791522005083128442981752275499891795036876510544152661347434130843938933650309771462416212803939030593808767867470700681291926635516752697031298392562803077533155075487961488034739486774339754085953662367342733693381488701125094452013870950142102585854440825898505746627105366817766926266396202558471988457350137829074096825564299344748085915510346266624582768312744797544172474208608453288894518761500456381022412412162314672702410022717975044966711039098748852131402962455517148011072951542557819965266803095528191099335031782353101211151610650563693605956935465008537906868044084394094116693378223348907491259366458567546307990310007298248718932905144860147780911964917539172567643666356003887444126218935608145034789016214937257125577174338912709682949147313023671117656005329776240253625281878049483287038148994895684198632854069074076651260249087891011970681643471989474918624928487113167699187613280683445847582512188516819740826668591285186690074642808250533849799073425905981532017785265238625409795745715798598678569313784229288031185258390289599566068979962062102065808805415194250828870218554679543343832845457495223448992272838110724845572269844992995818426261702652004568689786809604184059802496272798925029489896874093513587495417181481140789845647880729420053177818440225124425418635431774359968521114392581485172357117757218094953651834500735451960545179994055974553137643778511645648619006123946427884387678681512756371304748269651406720708302760526863839647242101509060463191247161830411356566562804603804167862742488401741747905375141551543406561583380108885869841351912666627990978358361709041635111244264584040332304014482381868318503325199004479030030876638818403064688691171436756926026580243428221683484412237722480885249893774805192476439904308764513729020104995504912672893357291951234348431340443737899043248664786114986769860595157070616824873825906575979016908350746209161444323832174953392426606814892463074402474236862516967838373122107927574053461367000034748573212767217565050574558547247504464300548208802373183393066101878874344548132807798497110044650240309717449817268077314370729224949683647856593843016730321164069119095133014159109283194861219322654930246351602604068343972351588552316144400220655474750284111453141348447993919489065760359781600861069496997260235049157288823478423584941458681202435279665470766990370933914958671028050946752398861720483939863374789764639815395484077913024511984888390926266367263763625416351245359704927151554682381350240626438799405121665400810056797277256180361211533412520594774647805713135011410868934339564213132758972521824497793392793744398612132950931750261732798672706439573837846236390375710650586622262471389493893420947576068416114722898580327755379441730630148594815685288109536872221606064868457308442003801450036104231264153835834098712282797548525012518896103562005680975960600492474079884620125922387332800191795545604016302123401032617583212169443830306842816455379984081903010553007638483697363412441282166776248924818755859857511562677069482872687960132301939027148543305870184589905181864260789780924408151588451485322816442014874314670978593944045144009760012290360769101569288508991718647550435211106426133612807276828998157492044389608617810437347485258720398851711379183288832794164793735223426462871553098796323377811058452986597359299803113194701227333320766236547865618121861841895302940479458891413785852313464937093902555640882247666084494836251083876011561546219727244579016200072170317666533295940377619868723183730292700951269221525801691553713306351817580295604084980234622101682086506164602634775633751122987926356824848465733319243805594808299204402945184536523122497488256569540171034358039382561127323469279960017578361847566177770286292422801275636254797123332290487487706896282709727741470224750734039793675208587435655477849184548182411334834728376285917925957306035593776520358760939883596987518989370639007792545799523867825463778891890823009814473433499738035787522055245806458348049898620063204402878634892470236563544341199317201024209246194871087284708576663871981068487174522559960443842790810352558400856801391917998248706542383598000688398257654204916148361541219514405089801152161200898381877711349637924897190865089958974296498372370825364285982833700622346549885580323776614626844474417453305184907473810549255285521821068133076865117900656343077000852763696642960135023130697357844984132587905914561720541600457994368003973775596111118227055337783041000358043666496905393252852830698880428768755548282098691994784401923026706636372047644521222425985559138788898194373888799301281008483608370043269264302234362749692504883273491211050352027410673941995354060010553600033661531310774274772377401671736469964583443392643513079181756158628180274874215131139820626113468006035972724260007963483422912800769344727546477329581655448885741150067736424729038228676256680918619132947061885044327231218749449665928572404739451866677596835848099393664981653166807679444644937026518500736962060338349645605747561177402632392220589694752617940553615019089565244765781171157811653643986229845188974265947582658362012147197181612644166366232475005567930664546787832667908632152970336211552381625926374722421661236399008356831720550626719018519038192483147425824995750506422482175499434842786733605009501929603155977768517256917051289696591900912692053998787824962609709361516691661374650835715486528853665408058437785208525507031531589715552753957217873371468391398264708159998908288473613847796806555339601374210692771373655067446896414470412127449236570039344822751669052751977881847370384323270572792357678263687506447088848751679364281098760144478908227966561487186979983858862971311156332930531707446227052445383692295274032101305957159360457913127830315503925454186457998799783789788625302995064385718820029875421775637738729380861709880913222052170118534778218417762034246134564366395472708049407877567606806389789845178920918327818493640039992222941297232775546784332022523501502138166022149401827790553125345308509830592781863101473715646045046743393735992864823100901504954884856343252897993193082774730731576796801742138765233906777098311299109153716439392111114048697956113893780870374850988215551027400962069077209878007723878880320166721449923156131341934124120051568642074641513653036232350106739654675808902728640264985542992113727878182751085122613821225031640502722641055272717039367852633411318968901959503715180537334572165821298863586598604351517983564177660946659657981836223251876995741484372798723746045106545158814492705110804876154009153321950066178788313230441306693693284773518935804359718157826086057509542237776220621025994196216059693953528647183647297054614075876827487126825171062134180857157147215119124085772515484437330184259742051128487643208241271986170234190791839461232555453631500221580367012036506742443627048459218047073559085061777166841847071271810765342093778720898575151359141042580574884117551407706408410177199980290325346635977402830513643096044439858509659247737304977283553155297479709687907788935951087876321506950168208979827347335178846799443288053232985406194110278099887638224935863768914179467561600828070473614805943166581295808753289594693614377885149144518283882428504119442384295871878973635057005249241623335881513935004381671514772939219406383268825844042396331519298033634191184632791298950923602118968466181941693968961444410122326529362437696081648916792768783151058013104785872839629166484275313199993030797398701316269445825067531126984493943708022034769507485025101863541490040447993786036023153234885278655432603275128924140195492752260670243371385311256110384889850807916301938811356986341344587573723739779274405493445954533613711090446391121053309474828614521517881806570224372665902922411657388469918947933447333309072817658941031948362861815267897538251566625835619791791848404954528159194476844671754052787328304078156119668024272801294781405969967683845424465937973096911878054346383796358255248686345278462439361447308560878454506589207579723758552743319175510906076391925705572174681167560406700394036440541996750530015063622891024285213283297270737306597482563171420178345527333791789124735862123202360358983497025723290453970260852068311854652227506651174249925511017242603548778074614543238923465605105321283697791503469724697011607913761896041986919348299468993098049455642082993133231190409813995062320531748736849825813409705607015159185252694610400402268200627427174164946373757100947574798625771167961605743732006904735264266343381827323209528096204140209455667616064062009747736433904983898042024982792850389268599043965089235489628366567778862678224645669701422715479746612542179627616138070363435284684826545325198874792702717286355331783902724106451486926943670154618417212735576952149996473299933765688254308893490107750819386667727765586661551315157458799210768194732462371570714180587939343233402422967991198931371904172196195539859581337624335702014644096411855007502079915764985352511081433560001803132750175159353717258085848015819950779943231683131162286747377334739000056100880265924028066817563488934959122579652786221440445819156616236416743660998938168600503792404969616743098484995850158489667559340816847478030257964142878084674855155759172025454102650774690557644415818176312019772336354784261029360492259667061289310228879655085944018123018123700226426637823657707276156486391365069903798874033329619457998909675464816292444088440954955774510657222855016036392245054615158492067369156907109115699671865641089482955652951579600595261408822645387166407362679857368743020277051626665781375975609218237400365381281433434864700064705404450502266820527158027650935084918483679842340634076366615523131833452945677561274806105355489907622991992305012733900330936832475679199758856231229718414989736572545372742189193848244576884695485425515710318988051452322665538822992008257333146977953043284447143362942921367299987919732780041543846409524474815373129118105817473687036501677221995102638243194711877862322229145829745370944530103839321814559920015225027676378853075172350171258952030385795455139119705978579538684830966706888843230937720147407414611400007895779014094415235357594832097141136985532417061666292802048961341475289937834221240888936084361492924184390738766049980878550410395742838476397094852090277616747916211738568478609652600055624489510047651091489577398308429110982209846965153938218354225225817286319761857432462654971564464562358612503751851433410097270569367540973751527405856421431171665947011442995913786673893379114973711472659072076536471557016282563157067094430663088848766448070801091112085239200224858077618833360424111650572081136147523044080645862173209121322385710440573121367950669357112835446416802602403600766241957127636241917480134655879759573194813851953703130617438940316849791110542621780362151660261676571981141099579635405523241125613437789446418118450394631709367358221593535452513175586610833367923495542969119812607000539103136909999753605848410854931101790178307531737673010635507497522000091920878342005352599716713752470415439608322024221627803008294810279055668657282534441297857797713167237651411722129606598155162291649349079503186588629399201743001076125527982980212836720738005486851647653911149109016467145837188650527768371263305078497430960396498007094196448820945178820453192418906596380663679087997510868279608354935984955950923158166906683237603804011534282023919205885101969155760697425664634469736206876639142586558633167722049922688118855842869418336598398768942940778458193052499549449351577540273387339985148193908838691714950947195898083469042371125739813202174597268963593789582643424462398239899304359923246478470255124202708874935398074990334869338715328140105035723936547641000134467995382213845706749900669664733195374837553706313015597903615207977198791937450569353900447555779920753048961430228230028443596329947560347705801513973472281813460811139250233321931295473453304169345606817355963900533425164749835053358279937793370953123185456204216130989250337374390342823429350930330318701226649891847322186099755810995305579918175405623838336675017433656594442185008608432563127812228959903821074682447709613447230680359711603941782648740228183472676896996789695731056168395816572073365575050751763706073555139474261249020629906641378687664897814085031386174152233505256045391501199383641001233818612370384822093770717620155570444288585991915285267479973113585489171863573321492262246454010110491276095469575889320825133115457546315531164726448969263160377872071049971449083408727606362685905991589011860242772993711629429376997445257324378990128469293205493809123001249144708709348403034353296369667169913800938134076840801851635840347666364237123434294479740295033094524363146406411113880382871414383714735238462397725336065161230918825460851987715052359115400812803248210473273305424713396200431671819724657462681207528679820493995885892177894651279298720647308189683127541485510630607502617430805510065540795764287123420452523699672541887280027002435502979688736464503092841119762344438143490899089077736326528680383551445796973599770579576480087667004887372610552620684244396388932984532146987033524068609510892332665863108852884195514719097443612363947890874025377412739308494838946465079004964631898995711634022340714632463773610465594170374046688231034596755268722770350109273624319969967950425069453045547732518965860527874255358410906239991646875921098005115795603332075965592114612653123796793283767522554207141329813049057830103999711905360728746447536083169501646365436338520728127903128766824630943411755744961149597733102435782655328358197049577617680633113433559669594296879682504448162937295585010530092862869699963450117710748330523362862185242860197506058269774588361704266640370072508407409593589029073038451641928644080234353845973073909878045120751025898461604420367289524204806569931410843040088676959857033294835459647772848486030642880926455164774574945928162595819584684463027436386634077966936878965627021824498594500638144347268175130233591648089758009068979187382123997204327578723297945181608790206984620523184116598017294450412769118296018769100371926646316460747576861007304232873480230984223843883397248863450159635788569611982638830896157897951534627724084959921731838062984823283934133260162943450927368931537447470618381028242315694757916748543866698989345630416689771595755130806862720438227714685840242819517089041934791798852315607862224349870134330506462295445531918537796120287112131378139248003476727796587504801277126187482403745289365959631933305093735406645008414219996290647605581397839291305555146066008637711176899955773567370518156048133266445180858209010698396883397162333518851828226754741509154376429199280323734019240395075411073795775173094815237765002351602117292082854639418724813726906141971679002871986566465364835277157548031659112970112371449891635428052933359107615953588483294767760904946730318792808744120203375169868465361225805578174024581499871277229686523658749889498362981078090313501046858984552533000320582112753772700660074006881229362225427476249014448542217304593520691863434466454257967194675580836720858613872627213042858937834129776157193913420019200642123677812870471690102926310486412007838494902996033875283954090792764968533904108907669145924968076119688990819362661087574799155546667705410570201667606779765279994623516627847933977215926873202339118720909878867110304412230617566358292487017637802933430226683978053836985810867482123610422616809066135263027027378335474622309261187266685627626372692509621957144629744830339133502804323319209272008840021166774014250270702020210926140698248032283938573196798065228787699865445464245416835960950898129301033507908475483664570035051584859944738503279390703354768105111012995198031674964766232305223176095407429283614006474583777457451237564491809534950990806744974952383818383045461526407896670033613363105593456004653732758674724204170944021198949912414828672124494167221215584308876700267156785465519144674839324970427599328132747423005950635384522601260127024467417598931631419901638722612396701820042522243978764231029420417651084676852322738958457163274863338980460517144132136525763944610190516716420044455147882219084708773654054942111705326393820486942743947510541111760242807317123654532777296467001101557260040591076424969130172462912151747471542260020825340633673300275753148936763272156714107439316457206535102951781648066750723867252973482460361494124412622342195410810807347577604907817883390384747505407612428513876644580971758961159387154094444648171551969358592020951229770934511985175232950503529467608365679264090235791049942914179986944050609827372626630533531502166583887236181498415510860972684066223877727984046613294300431990599124038779807538627814087246239692447209735870034391873491056817590403261608040998625565556246678445943954585596629125778211487660293061554572631209446799106328431989437546326725998271394146249040105732175716906967602420825954039951277172764299593942245198021715714484516444260375634364663363301424165627389422315231707972187926862736161893679961030383968937322104277438932957976285535373666446170189437274543354104984185863565419665269511480421228555818867216863980026446079307379636684246820925212952141395558648144769410863064570185331451131064291291760925249180463560733971030114725017180875043023122288650500920435020289767725262710386066125481091609205744143908865673269600568663780220475173659100885406628486818668145711344928183249198082342017907073297918183419190136610903277591769520364789221208976872752703545259738353831644086973201471384527895221991279559229862970287952781518015045238356991730078814331948046049711177812754679403498093979864861116637896114332936434543746666692493099549145529715129328004583124581959316303238430110656758973726474819566998216067929339379586057706074417282145244183059421252467480996805763420079320532394571755623911817002828863443241257357489535043457668952789646657051740636793068269711919644525990500180805650284124144465918901640781924624011709823614785771950681087922854187856745027708153424861715733893174941186579838564285827821513321323353038077757409329883818337212270545541771819005498109719656984340920328194388222966610645212437754620290358038838778262820569498053271163491068167038364011876399826585213397876275102144579119168644576792912471770068374413677809156909003836583851457376135928353665337202455427122171534079848018134401292483416365246484961179376715073692277029900023813981083524446572880002695238131210967494717847387871053117063605899386041736796448948449020767189985021356293960555104767554177266518953963728297848036940866213802543205123665725126158957252149295474756737783922683536778722259888917868933551544721916861965459852921715192450773779473109977563710054920967303848522594596460838949851457026897677042129948172833818262796883670953171850634255972660111411233579031048719132140306736613964721332832888243577210905590676052024247976140795131422598142497601825311990703786653652059985158472768584718109692869145068572730052397644619868890022073768476586706451940132085778185478372021985351152742662646187444432699447876911697799559099102998063642051556775603434349038650899070938178619801676152274264424336065311152132726906541381367054367796502070166862511035889755414257109386625775959267061045990284504952812345342594601574187241283024879551118988895114259944780929082183483238443903609294857671017822471608467055553026489743085089306994041031017969011175300657133188029424863937667527931101699492134356486543939248525612895981569271262820656825917459810396520035467003710722612551993440870563749754075198683971733534458350081312031756109149692324769116805308586269395899805228570259729872574428848771342981223302864278399155923467266448574329995028696482452829276691129666465865737231464658725893971232191665143351112960823733268001231158271094498187059649115367699323741415416494650395499175470956602301382262794204172379165731579163733193606630254469066406888224584908399732138729196916784120972160377522419455005538367102026620148907357515880526968046495831561819688170132690151718280304981490165122609580440437510197864077359175168031269055052144601318920908171276197723838527129519993221603476046220494087549674190754027600183887110378541394687141557250674398249572395006016710761729902552470721511446611418693222098533608865696278026853328023234276146003518534629370046617342425878576336942800997607083579940415379575826602062662691709778515473263885493063657681237059312625955929979692240078693912993735223155015102933592591650116872696413247422006297497018877493042911334956403608750466080873126146429208633973839547419463538695624178323345775343925995050597707138162074299686807147396711016561154475521053020273693616972501280050546704831126693310582280552372120355464338955422520446069877830179928627986062403277209755347005746814560273771852375246268362403974825148090795886479827528862070846503742545451284481575629102042267195915762780253295184628104234887590502441302764281790528562616391617461870060781896832715075141135037201746948957896154811915093626354968593704674535628667428043306207124785259773702924160365089226938015467780416617141543316924154426945400520720510183359949657286049817171047371455500712534746758406786557534887679252195752814046770030300732774018158277120021596544247760799430318128180396928149880076387464767781625958830074209107137412997323784906503318510712669808831284790877406135444675604800174025326543346091487046659971016281113726768789446006281846141251964684298183059905592907201405676120122222413742890320097760328730576504184363662783402257152398435443581686526723629181550051606302718095540648122519544024031333050595812699961667128625331026415686883159141047891380785641545655319771475312031739094601554256029240561198776709927526976770798329230491795558466274659572956317207250754972697533395060139976244074126885992510030882357274920777150246932190236598517823244753398414229829220398637743030829481835570548447513910555141609560079853343788845756155061773925898583491936152178898652968891824250356936167561416734088197817908358851237264932978350794950342580100173447113609390858629181580865394518720984415418581156881319716443784572496560735618004880221510858970313110133109682285043089280138298101664089783941354800325091972939296935096897653591136705648276820888664228017556859942816539332092593311915786532139197156259418198714049461782822978430893938009735527179683696222483179273309114863190571421157851660013062559102657424587338680440751424386630808583774808022422085548652591661352240691160701482042615687538510292105106456239110062912367713848395727411061949227277221463081929651297583760522010593749665001500186810646268201022737383594231251354213899567035079254140171958744987470356560500239833884821979165888537037555721976428760958389415738136819428501281681991561434131171773822050952328847749975112757239763771128144785461776092742342536546658720006673583889476874432265667729380230559304534178009533217396689020146855145919303616598223596317661720236161928978674337113336960032916784707976044083827242408904788009725698579516446061931270542138309976351866388084650623934791709149783615079944460769325738988175508275160478891642249101130405384175073330584248858059248480615064232234789857510658193271696117104917367455508542475393194923862951156477716970647410407063838297253270969455285912516722216228053712542678598498070194438218295748822885124580107379872765728124453165644514744880172048490340784043817919091003018709909137941776203201440796465096734379041985173089664136158636178390004604324515497749286756600787563156294402514146748879938520489275612351605686832093607025844161860469957865568229384650238549640900888692167570623659833078648958809069325786847351983297905041854039581275586470830105605069574112100947300957502476126409945853826449037277056521911656180028134804263572269640188434962505513821875451112715966375176215567321777147596774767317763017773127049545989340107583860279063610353943393359597942088677909451849783877963990828867971898779844330829894404874543503165531993014941046427219326030482679225338211703577543221927377610313700225000785614833424334550175291478077597869199897044213017710614875223378758053947467152456061640738780655719839967912157598997062194185567278874427659461126058323858284018034565492786564028010055460485035684953117827149229300873837634645960919040047417639616762033730816389822961151961823696691900443586488337975009401333341816920956291462814744378147141989176008962909736756390891498203609619505404555979367484731528668487056236093563885098660619710230072458060755152849648691836776433287568762687342027500640404069249395934846723997401753360421099759582088589798590748216830425999872632223697431877151207885521539981218503987656620871740521707067892294316979854753092616564342719486608348207223037470494803471506603085423705668702916722383471980342949748963070438960616246575784198099778958717432717249794563068195865837356944541637270905214340765433932672955261953584609620147596839896147819702982123353705396419128552745350100565705713610168559961797150135408181408439868653664611254824698157236167700593121960000833517025774812680005022337961045124457782554385288178099913800509111514343154369239913375354661434641747403147257647005926762189395090332499272869361907061593936519685359643058086208480742449222743249254811958694301462100364741309824538173667055559824655739729026824499392723773542995228323870596768410635525923699125467616151521477849459070185104812379334533020670157713278210317657317989816531803754245100304603419393708532070553048507299487520844896826294816163196580045651318143958987030108008142520956431576738383745666010656065573156668048665133190183441318974875330891304990103910698138277745825215940400554248660847830646974417980273138113601277549647835741483049356846359779615169872430741554636428671852004719836984696668169123848856055059483420766462184900658747030269119796783820386614971198159376117111132650889927206923239897822473344684943272426378188463254458210874435089126239017702918717437988534271666882219400832074218603386077064029828450341941067549047664455536007751873761930496947401225180792922603786493466888144008100202778134356000764059473590184132438284207507798795600644327569796509951452871838086768512367769335215630303429768087101019915757211721186685514326717548232444136647429576310984485620066245489945590034062000630058424738405475322146910790839284377245485673552206447135753577115387001849582506973738407316659860932034998804715217945145239592047643814594314068393269086716537097298566587409563839677712869581690951751246657448533555817674850825222111531460116655623022412813528080459406394483622263261263529308097181967453895715319765542614305266530752449312314714284243405060440816333292198716905725513232529195890988889118936722678977847476069760177368898791509076675101960143105247342038568092063706269106569441449628132417382273470429681740035359504386700422693107800908371343027389322210166847441370085012660439851070318522645725426230819994297250194581456494819220359146909093885289345038882346668458839473352044374717036133887856163174705754452075762271999765788911750886152406320529076616432526267602241044512418383735165844320604084042389481273733367365656976400749433368700004302009841935917840112486418358924810226660219864690438418659025279442776063172971029189038898796706728568769667860815042823759857578415302280778601821703106910997909120077239331724815487055457903355889294321131664482001334390605280677742430170394015674464038193817365170343123066836159928901703060484417937343489058709305805861553904529203175206364897298624809001530167469354972342453863460292613378618860534891808251461035124923378583703496818536473202344683532347009452200872275815907135387864083164372013188854466645320475381037092843783188779430234082652182334724185103890661889508259368698616071243395519187920441158705641866341818818361538959159354808671250915883983366428130024293754672796115388432694226539266038105843519031972093748084082261230823869566673302369908988158959504549501159556620307829805197109376295694496607301581311584264919862720960763522863217932582877136123091977416663627286375406182219782539560020594837349342603491819827644845484809691807310084679999437493576908836931384666188154978539097493959383380767890289153009148181493249496598155466612795481689956872458857997932391513273814735770786097112355128078117671802563157771406079609843755271338496527829794181236957235738947899806471371888222820905108189283232916151096883430402508364843862947907257418892604668486219924060294691014406938877306469479456325991445927214431789948880053416442481659096235408429318154959289760938989127680146502855504075278783308879170072070139190515466926651126178463744449812011786372018336338259583059938762609452016840862379173027263751215899203031763728040247390042252524773013332557370183972363253534834002964497787469624394981806761303663142405559198186746779157067188849106392491499878179965420517247953696142580932614691824158873319761622148704535030564048251800760324403329815352193160995971808915595839269795121249104376796239111164099635143737267024035325245040069303360172533609018453772471786983569193995056945120245206225559902382468870578255868366740371811260741981458674865788496259526296205527809299308926482271897067431540761251159019196886877209970525917230694179270630458752167082648066706154374673782859017694376441249472174072466268183300341152708496945468640568629921038256911705496740952408305445424727081885287700533661713885304613677146445202885813112619957215447513343393021255919929376895931786207710344134017577135757341722906606508700502291163252105524066185734228408246000801784637872565403105644276291364032479118756831463061547085685164837268562639733350537912203213533703832149871534729791190390925902611716996854743685044462813378032127860255323595078608034826303211562679350010778721473478731290539777049727807424774184833768899802287120192228871789271054219333362801874489547657589044698999949424493289339965851823347316485840410441700724341312846274463341647704760919223893026746105970324712589883096170773791725088820688702682251852958959941374250601217313642866888030280008677886297661569222763289716852494215329813302930419287819044162952372708027324013222051853606669967260284437958357896815014435952265022539275175466186260534467284438325089852415746849034499987648301624652278516613406251953249530259709908244563455429879018900265768100434567393347815704941088520496179675935390701121272468440334140541476774788681899752721647974374607879308819756797324438818838599190885603538154298083427253454906304634853546949345897014653307484966388081956808666429244944374436052762045646362405089343907858907475599797456801433921589707720206913619444451161527335229649923269908326049043212164424453640724606362103872428996140142851243792217202845477430871092664529043515878760262003351376496679328490130487416045124040505070790670327228203639678006863508208693038555431139463744772189688632781543615613713361754135287884600774563252052775225060144096413154155350943699723984653932954013698208204744646140160898804318684911131043161382277678504615142679196532459284022110122024704438448527373903129281691861665348861644875382179685653338503472190761802277395769548504907096534179733343233719560097291061046871911925545851721709046918058782246508363266866447471704766754696715500225150221892629801992615181470035739585448209532899686580020828142751368841699877766643233618121471401864115882046036035251229100341351647669717781557802879450405809927416382821526655939283543437793803569610408775312986977861445358068243575518211404428481122214969395626111106824886958905005887983808961643647619891108139270673127185089468176504243097455782471615528609451571005841086137644445635102381364126894843869336483386356311022072627035332496055326591704196222876018186978131011551389516478104628601026993112738434930996471941314800605405248638710455972262027037978811150283542559675243428879886034795758097313672317156466085316212001984948674397862648560578992388956369995169885534287709022193488034705493676639556288036663126551625764038937824547795019735377628667581247999260187218446714557386719795600068845336110654608594662197897734668121400176481925315715264411396764570926934927123408471603324106913073730159830476009269094788476978529180013288274662562179192989460105220098747844181608922481112739170159538357470069484341682937390826178090152433551496295913500669581854973561225042138056724206227277984604836321502760171083467673004287684074967917943603010514630175364164113080985448183778905995829928415901889110644617414319461547608294150976387694731740725541677785732592393738713944330211233230486759418693841111561840684689259010289371009293513775916958362431527203675194383334634828892015104530740763507335228608508155037239784179297368413201238914041782731142262355568606030415041016027218351226443406853820888309469239655125936865710781939010795095154167870144553038249850062967700243685937539243363800318565815734177344736403543519519006697183514718167038317284593634279447373677343518885691910247974303080123557194936093768549536915225755297285319129467812410164209129262873564591419518273981293020506606707840679968751382814079727313595490292746544453057636581203577007778182285522640787772684342147913271992162979545304556529626581533667096739773309522186979094993640353634752292503333344493984295773514400978240938341489857704496035160729052045167020516914672700810718924892319886880405837141442335780458779896507326429926174082433817569490928011829881046151952101203827722836177798485090850291290367624868701486825362358669368827624113161405681129192122681109832626246672464900601470861799737063895492835970608932645047564186825590033445633310673027626676611668102232066185717524269355832682982598961871155845181088090168073640725206266460214602514816611217955031656140217930149539397915712068023340714219010222365007184293402160796312989683121972031579521114651378038572980867668822705272308711958879449589370844736072950247766973710914526194095177181257621590479100994749885866047531279793271172235511243517565652007142506170472010188175932708349650527287530748607201255959071971213265002735880522153404530653613876219738253057020738562777005167368695633783606828370218803455364296273422878650645534786317599974975091976476744526598972601517034708862456662572350682068913728364979438880825583292389450563201443503661671273941263540558802222640583197067272798200066104519697082755181790872029644401662954106067024698734002737696502761890660831626555101963290948288421130173861788994223521424667261582812318861940953710402355285963970322664984483695837446543191462327595889945330055212052475122561496311942171196284364981492105476233401696064008858417836216486632644773401215734103071916948312686160741969163220778043149546355065455991925246352964992993659274852376373891261713244628308763846877986352597114340442873082627205000044000021881534964653026164965925405463620181871498227437235245954847939520413606843344966181431710449625670650590041876669163200336476919975472206802641287558761240179716918728482963701888521540493438770637803917962832303351511254064036170081261893169193413392382116417919903915640811116641834759675316272086792744115847422943181534648465181341897488396823336712638913908035820370462961414466389378845605946541731996622078155210058425576017772866875156645068297359454158429742149147593735470480880545546410825628343468913843353754283862770145576524064265431054860444596274967767762496718740042339397830667683219260372123502373711234608518334341070523907873422592899571450855196145712068521785292495551821919531750759033847089866192119711950653703844164942115263146455660871911598519071354768858377915648979200658300172345080070339800370210173239247746756921447001455905034923357952005838282554642867764669573260531160052104318864198824245125832788578337525198039566289639172902586206082006577885719091069799256154996620047877291058128860948199397418719322249595407680317243791360487102226792346644570160935762816981044496031608036662243228433144301040263403348533323917168726439987812772923706774139652130863797687137702593980588017209555133338708501531637145461055088697017984016094781569348555678163630925877449018029557815227601108946372018984126127696315808326086489426735963575033754786928393330230631695213756680383868619602013724383986509774376012481247038017065515236561999344515736821119285466292106573464561899277769944718528916231400625205304308787920416476152076094837999755670537238966369642589075076788213326539347624967581832673918319542950347884052154307646457920738098447349640031120836568615181023814023349502039686254656717765478676824647085173226009550724412095256013940161242316501303008637051145841782659376761714129007021366707127016303542833273816965764187766582183020020536777318316636109344731862590772359191620555793553799643380012916841057030908409602077513147494044041026636151077879182078249088431510787205341618433744257338100674231975320614612091427832788682301868098250308436771057603278023009069750299135989921990657482070367010319602879263848049733324287326757462153870080505383106026910705636148746594132893428987135608724246521079631892103056204400215450413222697027139607555375993769253112077214709589495924336186585653757833838037648315557347596057158542947165245958989054938272914740758535068372934173461563844911549812435938025634503095082525721908672798520615550903977368745228910375590703910800445613793950636593073551471526934601718695167521433904608945053136617909515269175983863123148072775618046689276033512417685335842030036293416306378292659955232422672273230730305997943126345144814954269654146916300756138466476675304444616358304583251576212269873553081776729965336766933599070665914627534304913661073289759038633233068513035369150581172551739081597830257980593847384403714978910033286512417877090445708922180555711517635171290324273497691318935428705131590410049224576099916853337057573177351156074502584249787391299883829135039434762778530494116250460577197510880655950571917258760765384860066483950208154042784054821667017197085009161834590526809899463975982141944384399583537990377170853346433348031360340366687959566250633573972681182333934286600465830754670962442612641643098906923029444041354281451670854957922772242840797264674930080298612822965333387107638932681130541571333517079007663656607572346476825483586543361865528864651839132837612743689462156045202428453145774990668711652510783814560282599141546627086224466601119564944861494846809252851646718937645492678298702357763061244129888481814031723864424444535561154541451294511006127848001669336298310280684523737725901939715390404750766262527086054259068578637812745621680866425054055187328824768634024124389069222239774983389055012400893170371455945240411664312780442157027211688299849065856854529518505523533241903057764096889338325026836075294691481180291390298594076255001825567590751649499226724940329679627003071232740153807833985282194585023289473536501622054285243507746960476756921249026443463435494823154198523669836700507187550960705836104149787319425037130767283149103368545518120301348777942631287679130795889792564917119551941027989890983039099240886610652954713386359492588236663841747912761282603073678287361415033377545568577374966299931809311668811268949852293834223803043412977470157352210324242959894313664614583613700361088247968504011996541820743112303352489511561346017327934130682907182054492959143822498999644845569521665213246508349750353616193517740171136603634182427488162751725665834314098410675222355358882708843503455429755147946242904178164965171305122175294130670616537198757973970624640768847212382152632382293704396986486790539519454349061019318730543561279416954668735653912423750425727764757466688675169322522128494747885554114842224178711273403308607706832306014675003613283942127978102987379060255885155684330481284980732977671868875446463007952856767422869730961139334712825602839475440693012474722998301059801512472854537873131170715640002039575901621618612316375276548444639423806750105101403455011678815872687407526631808109972580679112955038606091221342403536426522483665388987703871190599020698080184657913730685980232185939713821064416816142595997059865380299790066612093918107795768025952125753952408487083514218671235919718598321296679098287014793267475450472087449342557459273205103134575829164859306828167679425624970321309053960851431413068512543669392708348596341334958935469147920619873843620120580451157242530247233845723299937239764003263221604512662198492311244077335462464167125882065941853058489052950573010055424601061293934895642097798458075705104864245233286725315080555842931577205749968223367324878799478663700733458904521042180649180676424183510816132206781584556063229302871796143682185755834899898910841807141196660760117202150037767197058349660010419665401460005381482172652650194517700292293112909063839285907227749841593526155904949410168634243446009214283414866851631898396838759873187792661078803382599227122033674428883980243540175358687164945378936231079336586642939671735655000620841008643121112642119485966156117091721096446375843909189590935051658852731296443373011892386482137873914611208841793623040891489721271186935821478018004570895347479708041443073171104082519153248459577307582376029751555654784736685520527764101664889851428385881800102177273556501225193155758117558751129852347904247043536551829655333414578452381941450653956797311533906409060666127559814412426522264613370524388267217425186552637579347458558021430468294509893221529308319520229153000390070835777726783898816378183941026281015363964857240507845645599012225939896228888831920181014569338575035003402182584666088136355099895444884797226651883746233322602033228508603881896591328164382301598319155645443052508152705964758352657245275001389904604130895349919990333942831492698102453291792376353566695667584521260569086771325957449422547437013994033911665052438608709415665829805386237055573014750250916211165604638618535265279728663875039223763467101310897730841673752392177401103581796552634759042440744203733671938640299475948515183504782314284705674009288890098707887757358480215880583672047736204483038827540185068099361580979468142002486680675827477308728805477431602843231621629962114765199823701005681048965212965505811232407162724688128166529930986747105757606524942805518092853267847158947640034097849443293259337298333246737070684728003931430863582335615822711037176672751607750867618933938066026578077928811533083341621102552543795289037141623672639750202834233760108030500472568139558245541986985396567756323554690528369105868668870424051886974058083563666798502081368315264955305751498925452415586903156443389228632196972700043183423368715692114718420643546743647542013305214058058382302537256335059487932713635342342617967306931501157863293557780597644389472836591817218200349248473945307263561119513051844724262393852687533065715954623228711967316491353261978254275248018052262548701706000726325810074678552995897114979793095254712283829463626913267216300426230646548807389651327957073844100521861925215013643806225703694587446645061057060101940458755363183248390828197347514821710127509649776488200827329044070602822494014275687173885969261248923750900133027588412633190712910715934327054768871142683645988858946184976285530897156351592512290916006626358695682586348625149597356055058280326293471475478016912465584091881710393804667303030070368455017027494058091911979679515368383089580510495601227860729078072811395533151586778232254597644073776748245236727593784848689477770114035476039996816377061016504504545764760898540802870793761172158519070923467167378260181895773640239758309287757616990852710339865986576346540930468083932197857478434329500174710917712600949549319832597196156301673774778559999621928205423826407530108874747407751634806781595301903116224717788282487049437776892265031481847323013028831846155298280441441564118231278229421468414562390537092375973145027368134747813534337927865865148367194479553867310815719394028024775061780981387589584309827912676627633205561588345698693543981267562467974527997743890261514642225157098696484505083541125284503308896916974475296608969467412972213187562899991090097863214447794472909218515657175937062021901112992277643609627141605070650000267269158165836510713788186106387102252895049644684431984982771753392541596630684442774513743259903563438432187970342264673599455506756311967813894873536676707864152223360931907028935343884463583798452931531031687544743704767240411003481290440434230822389560003915180108558684486317934471905591389023709697564647722210006149162308094960194817351968607137031115957051846712260466061612605083549260142780259014927299315644374312055549146209490928987216996078569898907083858981958435996990515956785846797123593770000262866036866474336037988705175586646859691194738169908513987639741546342597409124091472792592869725037984933192963402246488810894341686034231934827813862679280917613157888950149434964350470251392775213298687282884910281512876055208413713553473864206824465558530417331083093603659786816407431193386561034949049554707802428094471769542502402537436745688784031577269422691217688924412248351909136124370383653054230723461251176150078904163679694544476274816009102128155484288764727654092025099359597738721646536282416270893848234707530869683201633947182896047049298219184859372215352308390995503235329450495892910280664562692175097826119029856418257948669480360540391820022807623541060729523188805642062129475059213560486793907880394053129629857319997404274823741377599689604962211379560710844581513446457362456134663672840249215092984062663659038602958775704793197340888752797852907496135128340830251998943844983564980002839290930046950082325534885638114151271312894931461435234269382736339622140059582299827711746431003832525223382176404503621579252441413987926246092428685558636437415248274019612937767769712638683925040904917863464851404609276920154310270221473122729833076522923086315075022404283174205485925108933531138925381639394317498364419470852623886602250205034886993820834884976477730583408839774979614372866952238019497580555971946605923310344725435254670829030632273357589539840138816279358702055444250853622970307362950799616611804379420090482476629569432345960377142663558711153082585058204967470486875846175298013606161988788378096657478336153128897547102372082873024237323227052863134481392671811791626715632178165505664713523365325532251386162075524279940190253883451820249954644527672012458201281500271224674198755942820138086809915271395207696452737285172321378716335214716664126147201197516903894698027512435801834370827347542061999387757971227170823307137291597207242943714983759235076588391531147473324475629086186904520614206560812604174041043203694056129681609810691005694071689701474841150824931157210210833194618512207059787154607895903072846026270951329886403681797830536055589654083950605450367423423029262562415290668381452071763281874795011721743858444187423508491117765657487253613174817115496399084183546825321679714746518398188715377916227978454869044334778605244216064484400746950279908970244677597583991111526427018722241961512916420632042898897660826096289512362344916028037994609985515891150650811238352047456934505641370641597562182910944367380164487049999454159415243882507225678682951876166775132193007713705940088942232310083325220668935423007729224072236413526779983512210529069402697620568799559340008761986509273108744307116402451223117609069106467597894438462411980956684208201765936443905215527563454943978660485417500840733328405248827289846187998802180776326019413524069824364865223418331095581594600256956520448058911255933167871936909587847571159226172438862375714441404193097001511074600321267314817182686112476027912741562382207267439611381740229551724230416363933721739667468780906570289717886482263042705107503411148023127497935063129983024337195682188429001242456863113390950405675714750248380142987982869776868080067709559533887482712062492776456845756217292840242613452885897257360566900943242395769593456518028789569778051445463811500596575268364620688084576827153420557712294620682939522722203106266609293172723207668919881091266155186754542274920744977156404277898727368865672757631136622780831723955514727771597054885898778352163724874731730700003181812622723184370917474721627949930056912306874112611070984047857819400287143334135871928011849737287809388864147837382406221850465407932218823985619210927170722460830854778146304452249048244109800777308260475942656900590394363887311863973798247258740856075595926479548049327577787734415549860604602436144075566735299774358118283990419712256163453922384601244825683242147480451872022993483799470127114590451114375801705678077424419890043994695368908370819209926775558484468167847214090012240180733561916349715172000408980860555881717681058983277009142297558225736519963920737603412113315162814891182626956474234221986558853768673705756068255184509974899798206576380319458757259735973103450004543865861322062706043727719452925568190437034962324394976465091775396415329685963573739120297946506502461264720418417550616499868971142026074425769146948627268072669509754248461779812493252601747649352597950532030988723425114173498238698792012900372878805959110237736048527689114392517707936347836589043230475993683639283914615690366759709078958354365254374196107655112824496362538246597587886360749166157754361693065710942351995881558972724560527556352455678110033560441949681870071435474830761193188285887502528801574289524236776590409805024591600801013424087004138605500667189991916887720626569870712575456401464500888164233241113236050179281793191923440958112539080585619582487076683007228499305109360947802288867477861110238430303219013930629221992646910742661118586427508602465571167831925895623491918564159259056880195432678277019007500835963314201641398523710123475306625756547368140159488004210737139081507173307019974517146528071820909067325847609181623688401398780929001609761916272770974614553665840043863517814358854552124144044117256028115963685185844949682183363528787911491579347573469512514549947756749041825654668811840740733466350730317167722963486218882812582837249149139600884776357793553122478482347737334205926717948239418983864410769140952710725535091320249804452830271655164949133206743267243328887831824011173395579781901479727805328212588580852219286847342924313920032556590267602738127083698683202496056820566478081613608778112504473046376335316525479196485924229137910637121105073586875373952368742813943529813473253420817813287249469694891638591137408163993067783863786022209379936152124396242098810554911606894409606884944733913440246913664151688511129746300207934727953253226286547961585636682106643881469407672304769203509619541006835186873921032965411861505587671176520786745377109419517931833501006268487888962491346072780695102835183462931688770725227628585393061027891934683927195197481721442991364738476006853004372946298824936824186574631428406805679237365780389531797902405683183381734409601031885385428942380359887565478058216211718438445649874203126937313208435971822560574569216212478135897867472668477074660697128492572037866171932938490676647794498548088777533159739980916377759159135970538860890444193055751270139543022594357428105631730227807526320144361858299534592872538175306763699382766777471020118157283315041184944899034928337400545350908556321125481747738154213600923492348677298882234436352862805462420115636240705170760642618375624751038557070683020228370215043377874589004833656719447505189224709633860858393149784752340503175804680915222714441032769413077046938489189294460456969434081961629567723492917964207625725295660543162384757996035077744410571198821193485610628871142304733699257307219043971204077546920400119281248627898583004342194400481290108462575919634442093487067920447460483939731195422195506519358535089002760443238120702543219493926270334194975821498770780625312476196553723642944910354416640893720551158613812445714153589730931898446867366838953664919556516559844678775055169082246130226368017596837566699754463043726475968966839745056347185396108756088421659057555411633887926131710327740122108608328703252892166325887042181556882970598578977630509079240535833413768741608523884010599690447507793119417168559214754327641703462476774683184930363580416773069903632482864477519227556276482338244215892753508473514704066635969271807845107945688952279779530255735776470581030548036219709223041266882870297657440315102383382623158039330567568072252741400744634598201438801927326919641289774908481517817626156106978396325232284932538211780448625311067191840767945206420482932228129629780033802607247470424426897010561613102082261414540717576339306484175721740163655764835936982777935166447266717839260145509344698316504441486397256693393011466761922963386054600561857007620287838014167181875709683458356061529427551267120872148108171084201333975572911007386108417880075576680138869499257750397125028730486011974579341115736580953618943256288215165690979404547912109871307270645815736666815408825649267590955654510802663457086254806128444600561623733093926147751151665371925624251238899740030319676293418779163264853071676449533689671898519465034756761744079092423379548941063948032934699135949353576650549298906778015823165140416845401988408505124151735527159998996911386757790251456259297721256029378317722026853923707507508272759656354799681921665165556712576841668242928574167413463113153680395256222801760225810296545616199947804181589894641777426370349790820181857376619137579072449519669792741640036014380907593650038739248169279259629279985379765555529945329226768703495850167347137236200136831856781679486541431709753027848269148397201546438894540463988190807334955619668962285372890798999453941607593606303918348002116604156021420770425281486284302732396223385855827874033822807125806588436780931406513786839859292987798501903711277976670571111681717998218329446431901385032919155407674893962990580300749883731607701012814380268760302869660188122957396187383821043508419764161723317089483617841109444198786868794061893037543316494112492226627898582308604049677911826314667558547646419324146977911762510746308688719368153953468006630067516601192606501369094338060523122452525026343922578304493248501028824662182807484469695088695394467624962614276964205228085553656384053824969907824137433295872520400178993935493878511843204792277825043730862769663428253439151927192993595620426705304965530476510472165190997809216434387040349355818409027382552814277851867976179728118161326550631348041402377609795113151173572732629951714849954928626043839284526851326163325180158750866675572522004043467278227708079788688651674439562031370889176596955521047766322921779123743804695048182749991949259536224438079267112511281081018309108852889745836618171205671961662914816819004035763535517078083119083438355381581764339995801540270345184570627416058712293503088423755292120490045720086117469233138047966233097141102835096248350720320455606729047741726660876833563837246080582852516327474287143708166984904417650586610809879975282284083096255574165499947395427409076541706895976634069794103450308004930591257283813167624664771564784376807341767362017805403875101032757588105042984844734167749949227600061437715491996252001873953085594966874299402717655409166258564369425035005769550465805233188017633614418204110819345113892767588108152472158841663119271087731610205042154628937752417839283280524477368386984543427363521133675084826033715168583668543755297713450844512847262792228502521523740946484656296437165998583292287229620108013481879993300963763071615782849575943307478040271920688201251311323239072882526097100691811193970765705836890778391098464468104658103497536403936896981199530258095909948155597493708063186585472111997269138823652389582495701263166065081366875352178034535563498266371147356012452513710566187849116570483083774392384579570553028762620874686336977813962818657179870506460091927853049207752722537366367687082730558123529289358811094760627185121185542952020054683370906157986692175581302525401164102803895877852128539225136198882735674351331197937092454310691817509313786185807124106831322438470387669753251451752305648560494702630669085437303377015640097377868367564226671579779221437445753755618774832522132404018155743141051848523548155649073027702850474463364451133386069271433337228473199606746606828511743821905984148257178093265346282404954594346856464258111115416993848343731356556715141725400110612131620856995094029574642115811279058362551510990422946383689240380768396774401051212370858846093822913237560487906995941038334553819366464697483697356810404586860382326415695761983112871197581869786159224498264291296808103726816009057389213767262100103417773255304760606002084272684332232613663163511442639343888152615729490103712847148381523187651466556783328682532998227183531766011195348132131990216292184526614159606366579048869189070604545651894013907469278709808038468524389104676771172257659518838130990041246190420436954362437087373102863306165979095206596775623698431431125173330625846567873453616120771637578638321781800444621508326925312286861752552308681317204801476659657518208702626718009535841102334293879179967879724166952024134313369453105423002527645182795934116407427769229551482402836852450807691319029785269481128655306976558544281268775069547312124888935485813653301431645200883762116058581651582166670169123944965308309770415796524795274909025503677668222122468263538033642662228538096219035549992127257572554951288289870211356446958079857594565551570968865943288265270495085399386110032124384763080331131117254634516757460394773399287760740148726874797177118835841868947913831354795753685844483634989657345195243859436693209189756250666195214166412286334027251637004442999373037269238820996024822179105177503984486647829164575682090304001637481213490912143277560377870950039057706920131308564834449993364111559958166477188029308423442656385126188861046976385792905589743570468239728622700322776035680911469472026010794164582693992088491661755885176011915859240521496960086373244392733286888934583682500090198516569082956732396512151730276301907145295346631257284097780795149788403904481031725266720531930789339962325031806267551871912957026409736947649403710409146315517117235964628028241344636112783211535656363042556709395816666337445793519722576342563971956515465382862886294546739844716254262084489709272156392212930529634166029236784100106515422245843308256784128954021077908925349691651338313085402299615588473395016725442587280483894805525864652769766551132472891968053633275030910633503883049155245055126465465671045468708021904931733841880321663370408862738647075404487862171654180861781477378430603705664149591392463277259128156349709601798820741717847319579618328918025141156755382617294612789808714300112357587289564562796197253634599525460699004101628936087673774058076961548890685243567841235261622649022896011520884689853413263306425110488856258848579292924022869548951140321632468277712439256208538176442823692134043483707871873899960394032151265686870579374393076974469933142761948082260319651696865002527413986999607558085704803328648269770412129743540904107691835880503950554589963055126235221552918844154630836961819162484565197489610062389285453521804092415998378179951967204395494581038843865485058772583518102516193441642106911625418215904499436308926315192081083004836952650136691123906547905682208580866505066597051608786642687195851471835101601667564654483919416495553229885064151443966572422528132506287746744533006440604260613997886374979264708599753846329229053720273113353366721592026406106236564730981810134113546697867201749894282443281581125879395818969727454254029394184905471205298684434498421278547970642063026771291069738701213974011519997466439957256903772177148789578750882497987126248177662780053234441294656042595938855286458681697424319346076706833414457117982573717491779310317917153380714731205861966442174165746112019970869070570598805171917372980607348618459572183184346840239115789428984689824247935490063778332678615528280222100431089149182726571996795938299945645683438606569645125969931950453847412349105872495554397612162283245115828703012057180014292786640036183353370500626952536563865637651490579121227953021945999498458075312711345240035148922565625546487050935246805166038670798177247718253405180483164358346956638062972479596365112181186429924039522766695745633211544125154563713243821113316732326233361220564220596767409205253023752152719866627448103347686255817889426202643374229586052172278472632813592807572376365411392681843280191136622683746299104443467602312327665537651308084207127077714204474647421368029320644103048875394345949035120597356827180703198149298027458942312403244750297662762995576545583244745512709084329692245512307308798682724090277488917785072070418702635608992973175181893489143644876756704793097518299684811701463906346327429421847382789400817197253361120886574674609994354028701922745249072457374529346960520399904179640512672565006935206915217456039910149660528268857766000782608984660616066300181346726066091855633435659175869979307435089867461046075018549896893958570941742413212473122530999173148394990880869194163991172228378125091772095606770397648004649588200018440838058833850403213656849908571227128794970390993591869445064369008370483319444949808894040127055447223242006675229057836648577788141836852908763743517902958138308119559260887526713072709551796623924706742964038866253208472908725287556949058523859697856011500472165155074630715532657599189159567303454211366736786043845158091529313431748892245505395774602575349280194304723125985943133544356854512301181499168731894945620979374139156366944350300975992716361915848357886280149733043442158288195991945543239117955441895191628614054675323808987631412429903851681927650773537745330732949041099308548384287520910039549560918763337139691387066263961968625188945111512460083233975024559155993167276513344654557331291746751912563378158456218130650263280980928788786817543895170575384866681566078868657880994265634682093676132338510100352637435955687515513919296414295399768802166293346633037860297343443439234478165621861071434825906335714011670892357966430252510139497960139468637773716908752565861629449172888647054076996062753089932417696877565523252587600719153576495500764249801276980476195304452140844138594536706407794230998724011093519225007789586222106032804863558368240857416018230507852829665315947291371580399493508491492741369309765477969468316967783097905362129300445490523976382357917043893302104818872350829110569665999908225903176757112520688782851651260008237923596558962492111792433817494478022892796275985105040351015123269938383971706798733780278424403387479401295792208822488570524427636999003683398448296916634721516662874467296785795730210876677729741089974709872083436998996885357549382223935111802798550288495029608708252206834469815384400042173377089762608492498362012453551675869691057725023557691225010423601437365330671953329481239312835325004956722361707066268974225986691143973116922190667270574228638294137994542091173039106248528036230106217923339010306537581741039906518567850351858563221255025912776043438934200870841173279677507940415992031043032509793615698113644524867204691940867172803277229436310936223217782366592071214798087578479526988666961503710680796981538825155869153926955799579704720341837087236584812801854614590688284774976079454394319641404191202631013743277217234590833516286044532880672821870693890701154800611690879267748875734215211715139761451568874665157640300902300923696214844658442221922881928333298702834830964061355565546160511584435172046361664681480821552110219561540351876398089254882096156986235882918985913869768625010013048211768582884431915624013815566802326098438060278398335341756265680652418992216578351264811870622555988956538687600730686591981136609104306020800959094092412908998098127873089289596701052026368052496938640789077133683891523914069844834994228818652432578162465883670323533324070334713175766742453474746324988358454862357921263047877811623524199226919924315208867774881315120495911023978821319631591228578423467979248194648558247452737488205564098746337899323709517773444489825146008284568083847816619067429635742945663402495607764474823569145358095163232017918622611209834081020808192260233862282656479855682293975430580283631000331552319565509271292360239643985168953065279982989675180183429987498109627392171929977598277990636982294865234643505982955070581182588703998874439398290842773259483842481729663869167230690612172239731227954886460765652593755191533447406015720488227375630859463118781181782994657255468803420231222394625953497914133299066247937958377305677912849139226216296621986688379411204965550370843584500403179417589933995606549520681279083013838070466673766786799952098554006720678533526096023457296266965555227308202801687627200349740521801912160367299639344326146057635318902828159966414235266978971754342582225241349082399270920459569486152267605308433497274269920375572750686414286963665988157557650518223272385226380915386346904463313582571628733522496357843142061232232281431815505042038749193248238375908656067602459556379763336664510591392432446187996714801441733794000114212775544734237929346184403291125269416590213877550755371119376700207854821458365364827336391676725180398777638489047676701224907603660115255430848289943156531854981826405524010439618465023225878581184429861074741453934956900972313880932249663446691719005759912427685341831853130994342955793675986595264137612831719972859523149363854597636132541009933924687582270235750069804185662465126282140196607463662762089040087225677995682314625835524731765230359228349898373671926747973718106689211114988128218692827719554413855867438469801287584201658148933786877501880922177045802824269063156371846755349368558900774538678370189255914530470319747665003313391638322107788825914837666362416080087652992820560630277265972462565248189449387176298246645008236846540403406813271527238925597143181721512051721178217894656660635897540349202924969857620940294536495143522306913576182358782354577924549527774939928029743808103141826664205469374433339023251293600556729694713843168003756050803858739310248786994372163570492231231323225576630630575011405707675036089974541014399770195985726380644997251693757078692324487322540631858039640796797018049710585352902115473813307269516880830649013904940176077338458939072506633048063368280829229448523820477468752395286049719891806788896835357600288201063974431351946310997910284996389723290817480880918622641641694043704851499144049429026873832729239711632551162676190130901828946936840804887626435927369512260420648934184063075211466622598266701200118654094248943376939853486624898880750171138881724402925873461070761131471039012748115478282952292453500832850001819702927102122722557441061557972283214126123210859244844743476413898563844401138704103479511374777345575905426463197423160863368649010730566766657346625314185475297991175105983202361050488081961050061734681737136391960959729055511860581970008002006232249517573682881577751919789878060052090966454442263172274352662415137720497172544205518289533991442580326124122939528486999630129279967746375882982099879557374791647943308366290911109386712969898203260054058274766283921065672164587018978342467072924796450399888814821043042176183149672533460141955159654489976257886526620011971372632301709519957298786214709390750817384541130391609274793889597366671069162296511929289218979706819433748169274338965418024728446641761049302992354333983002999599908063191809867918447731839907224609581283111460431916059672703701608882674670372416287854394184609365691916236267470399970425627864791480814669165730277255143786291870732875832990191306233198973389159682230910806416188331441906882054316685663920073161249530914316740170128839212654672651387406626539822995830340818465040124207897272578970415596319383342254236226904501369336277910169623624753784076644646435930298694708712813058703131187953940078242941725020420921630960597377003508543703971078421663561224350894003571995277424268247112631668495757521514620606519253356440209355818167856603840773454714286666173448624120207956864620506781488723459386659544537813076573567896185067881448289074779901842259495169576668369232160806075094710982191181949273326852174527226641951153505997578312087773704024264982339655001381496875275954175893949723082891895988244443546602684088001116977400124155810574171879722817406936751359125162045911515478961163574619127102033132165008629540205478248923197472767704859503026707383112855039185136503182426062693600528610442160946789937717900773738737498657341361595080334093478516310850490224516957535175293614263188933485510650942094269797684661247308460580742333258526100069062469361774037480345123664874618494885619819422100410259784214179766274203399886110428942069501314985155843774484852943816646994869881860389217815312412009798630178977489891545476123689316422108523895694907403255470144433404557976540400096727582792468894945455275802739859864461692922086863980035964247320894028026415171775020233196157013589145218973638656518663117614885655498508286012952422938495248404693094581810118807585415426665987007901478436226627682176392080471811589868848094896444580346374097902214693545390581013394940314749663295165417969366242793254873513355921253266863460484742755054261396993053460832206344229671777275533061470588529567376026702182570900204866444239255111064853883161801321669468062966222624277466373849331649133150833513109047446246068484391867904113191325130827301267548135606697172905787692661029342299197537625380386714118242875257035103843985926823778888438236110199081940734362499560336642049274368881426016310527188542638574986352517353044146992650375191081320782740926052002263863718703605548746590122301518376763427622486574644558026808650061737290979579762508919148778840647077309113167156276139783585676986504155012484694876970706902471722393068951955959282636593098869060822363457793782026763334413804176103454504514597009065502845899169858673309298838618011985766131113331456357291342678693226752430304101458991542492779806280509473373742627970262290653317317459292001806493610475668970346616102674064233061402320612220771884119773819401046421404980676394700498248883502010406932054018362649416581077054882032886450647217353621494271629212690872913369922592041835709738078315513007115369002106260988622743852415587500371474521246471647437008304156908291723518569422581755866881623127571709070083632456742036061411588000018135296502222068460373168273742481946910475201497575292694217104981633654245831059463343901502759001918439941263449525151385979948062663441775835857691638367834132850221746943859113112270093189389380077917773511848570021247161597105503712714914284098921795016091085070184843426538869387527045129931041447805946200565509099291671609636331802971513641632133588438689406500182897412568369787369558752919111452498182335682925282428002612448334722814609037890979664488182692250728735358303035365027721427240890193570018793375183454945486020476772911386431917048387740973059408536076074929710942465382052414205530012858767987400280753520581482464245566697520467030796919120347892676634785400462904704416181652744485480801196279610572412323946046915400584055891696397916965800108010921538667792170276842758014378836131857128451912746349118346914768214891478295413224756922081759853110510525943712386761691067769026193624115081473930755616338872825412033626639429121935539787984065262448095327131203505434366545716033838745061246355173688751394962320745804605443429795409212263237133214777877438375044476685152120275123106268227252733976847694880841489190495492806458322832454550485469290979535551043267300297295660068302699932887820256998768989180096776924836196801802725451057022652703122324557176275165542020221830028146980854969943134525236638741507467483782529335583476967182846063966643046555940873509211894633231410724557052622693260872084136522590704003913695132368982976242059692561873840402669865700487024152198775867877549888108739366124011093174437104594060394189814386785322503710945034064628104305242232663902691040561435308766399975308412245230929584616266329372511761836866446438273812766807540047713648259288779087053342253887141417849249859003766799796999393610677941291313782382042211043294414300807732886888909652454864070705560105050874326723074183531889763570863164882585075075932061009708506673799029643685376845413242240922001752515933686363251947711606067609957662633129027903605300756403501942188044463053879997394919474575654642910527787662835936395742542254047447206890629334019842085682461780996910561711477276445093536864080832432407230789515962879529449765605413925554172943838548893971565124886050355631698762731006771790351245842535847732093125939735294237257750280580853045650038833515516804086771830602033042441957723107892224153609905092335518759360482519412672941028040538225209086204791320503225806596821595714476912259924985594664858514598043855394480876492186418335083512071223590284060075154845157654721019156874162090074219580406067154096095666924476715042701126222017929485338051404040680532398226758181908603632709219932675078182262235166342420966703574922176173065515677174094579176970948958829392306391924590716584668722824875130769836035709905533045708841524479160816911184253394779832487569926002455229842761595701221649328644336964082973746568507870455251377083480160470250819345927609246252669341353722273329095962171227096393876273878401658881720850225713787297644410357784624649390406389927934509742660697696355118820804633982557959107532669219707318545210451237628763567725265764552009839485460616752711902450569489345161805690798510153779324231447302424634993759609639595473846546194354778815562299921839409726844980270267278388469044918262537793479114075779364844007521393432709085880431271966128139135755918437832251184399936541607130753076643386201964069843174241425353675216313377888243040289189841067603777402333779917827164228227336892351299564386779228691760592589379171381430217754266363454154326017834541102555439908760424557518812640586592585402289561724741223060523282282535043779136892682589219433124050142038278078703626125521822287118890026324657744903080805132166844241122103664974679023921825841009238370538251549586602126462960036493133979082973246071584344726750247947804958511428940186718491143318702380798795427920435342236817550192164903168111336188611922908420979547515464582941512273446006847881246430909695211001755537736479777579886942064868640604747280397460251992235643149657728730967192919653771614008203527943565211538748063797391129404017039833376615189567653251439681450650249147149404136022331512236892065816008664128853151756383237549306580433164778638587013879522589071414303060312351084969455408578339787727159256831039541144867679115309111997897452088823306517607317280479041503855288419599309642747140234460553697562384497762029413561337583660189592016993307711433207168720828258197524497344368529697508168657645075943137727067384904220903900249830559579941787488495879697013544025755572713898254036819205367732155032714613048808819289045791450039717471415953887903252044883603220846295168922248778527858949413737921830428584274204633011557758265118657978036146121044844674063912902663365433910521799603965876307843163074950462287437500789622647622188841936155958624310703369250473106823126808157947380603030603169382255735000706288688842057432999535560066145926533891071113810571889060618796185067024865816555588357444836609695910764621580047266405220341047353202429381864321405284967455558522788880629914588385849988541632483853922634143873570631715766555109952252316073102783796306110511105789046180853528223529095279172238137650961004011276366100119645748507670986522861189909052679870931607973512039711652307755564729273634010423468793454677429204751833687680490629466115358078325363285437554937610180827549267192424412509351273150876750988072439657547380316055378060524405937858063948117852094335550601247255825039690279749726089196613035674652730767468089382626274236275661964979082641990088117700965336635548688883311392404102898751016474364010364979606360584870384878909211600005631046052642015669540146585635113064811307672064092738458243781719244709956950506871041680911990922728701385737788606426142322657091976681264491358626984050058619142092777317972551662729308296530131169173611081358029860039573717107108387099101187140141800745826660881464557512459227332400878297968745816915124089538848242308604397682195352944047270279334144912785411439052665365879369581586588597042740760626531568998220843037474095410158336022452836935606101305001104669167868099093730538757252562052442359253524376016658378616207965135868722182588859137875098432751136822520432645543286868408616849419426808327251479496153957064947246649604186884286037344509242160736503907307792962744893769985398795478629026224098381768074134285730124627157340284943465104549036131088880288097460587024807600732239835191937813828536624931220068426757601597973638296586583255070856925406709716986962427132787771373609807868525725508468303766449574029881049395927996212888049055448103928212509041347648436492149212691191263868168230786777616043620247673190893826279258762568328191074400583954214437872542987770104958710106348092285096687172204789133950725010358741573530036336640119624740764721307145892620665531695031586782692117587102807039356747933904636963778342624433057923510199522613979156606949888029074362115200216056404784020924457993207050331863749619823480454951883888943852429696549771010208915804322689923641796954840277498791422124916129809518034496388234122810536152480355647198852214688650513628337374782757417296950179906955392163255310096949867693827335642368778143012126632446778090785798514141414765418162852110320831274738448452199781904850898593772224102960661446574720784064852947337712040838162503507649463712552524005484513816269268485240752841787952765800994139791814397950235383125805130093436679965908882324792508482068775672887635351290026793323404280835784434365395553783161974354730684830633017553631619367659857858675812436569954819767989128641115121481699712168567167026768988887479255174348591640169776998392281066786551920091740883550422158432009774130326336422466907178063771982767869125000781360269625630123174185857565137812029754226352836176158376692697788768605345135829851270445760599865905025946678667711061366778362823969996125801979942629302254952501440307123472313863035734109646199451075394420686650381257648529203318724892323764720351055551850477261192892298959858295553229842784182178426469434867159266946550602955369287386100301138215572417633543872744128754431107659551388874516700785705223635530444490020535015681266182076342009168682872653476920593950880482296540552093438362758002214898819131332877432083292402344410704273067958229517499728399948151734662120268636687718808661228881050581224055703474869063857880413811206516905961015065476295832092683763475966520697532622414287566259402524626662477560362897798397057007961628840146057014548519033687682259642747228594484663524493190844193899362288883198343300204850661216021955950728477900528258627869659662764424028126396729287139725260949185036552527342474454781594654736281626556436854441177373043726113431625753554121554577536276650426924566278861580972102980944305219036499840267893223042869203871374173798732082601921050758320024790601944659078002186120923328372439822503129837325177198316424052533128830700359366283662872990496308522574506221387253268453741089463277070451760303120554451124317274647640477145799810526549451287867956688476715922745217535940955887644203683766893492821242135094114046698710724710052024142668641722881188437636777691160036488016959013971614541765303589239589822768305319925936053598977183158767856228924594514013161359156304645621696914816575698798551354452162913374929400797430771563594986036756871230953091322193108382382762405448252897195739077818460482840541195473341903847005152360827657132739039090887352949061784717742139510697099335684454262328337210371492855887376286082786969847481396560523573843360028291652152948334262831487339445644556566906315478119142322844339707578160930076007519432292258657389337868136813724006000877153718885002546362004794122416060196473447310389489722265572027465449118437083617307997177834672789583888613399636739376334916795752031155731641053567191911646265793504614100453701757404972132383546363432300432592203475372553909243063066766984720604129894054208104636920735340389820159340926521512176980947247946701399373113269763915915363863971088091877456259408872307742544698369904542634540363443962206041468086581553208951268483412256625615522516589614252017544671381346866666376913963914819410537035456960422595792475786382502744799762180555069576051073838649012285390538517342459885073813326299337825190277732688913589564849845504774626216881542041236080900558202995577920930703091051594724232066601353147622160902625843209890680331447621754564366888472144165638504623570055633713704219226218497684028260748879044582567610954629734714889666977786374819798510895643269654922251853883211939658129978093932816458115101814588099275511578780394059770950889836925430813141465266692123248344653999087567337589456789622624429328693399342619434038246303030169761279430493077668024814480920561546725375045298049638851244916460546933487414614598099242638060943545774505606440117752502771409770876553166353378178535072200392531069379179326753688910419592686339229690948537273987855191684772126293316912033613620330577207863686764507076492220093643859239093243361459068956362520268437049257933711584840085455563563401796464874042956059208126478150715269353417057613892959952196843764302110296558203594375753877626948175703694556730952952295346148844091367845192874205178935538794344495442131565395460517087421486435654449696129656864719887371997901328243913917540401525640009509088419453489885652177933313461095538785874850593830936228351394470418259764992244073184778297811382691717271803669602866741142354959096182683799673648524148833740842280329825313542230890899910660283033596445235617296445354316410378979582976891652995987079860758156679152459923406265301309090929574856150240148980210642189492197900928723519990375318358102556023723665919002268428308988736531001061049862231186999522951674157685013596053502810911690944359657999001812509833871406249956560087829491469528893918878848398940088293905617432169942347507122517770925762693574554072430792929949657208993446142900218415369041897760240274140846293416652336159484235196509766718394003016053921996669945098611436355422201135955030554826118996774608561343619755092813515534822758626249883727308682222794287484893939680866882874377587663927283904169294299025103070565029219413071416418645000531582808533416207533067330911435363819776655978290372357913167028627209502796863373167102067240041934672747479185029010680312437412257125892620287810201881624006609106230019641031528812333548061209687131556653095748291485178018903328456916003338939476976980948731793745911685432144995606412388169497785782530087468606259596285302822168292875290841722280342763740759514395499361312539540324944663133229275695960673865765972056427169397698440379799987198270783497368684227271995173028307881788672786959203841508943582040070938309159267124069659528097985940518944342577062113842337189808650337480992917229244340155575461571073985302756374578537702950239616774904750459680364587369587814728483044158188509718944117758900074224785932962399262973311658383837423486617317308382536324891076028704596165940266793001569077775493690324273081797324540353209830288001932024738243596231780251368638627157793200032508132184754580873237310215070003647816762246417475941844928506513637327762996074713822480906496326038823284690951833801178049977933669201309177146229215146900541993609389381476743142131333981201230372258314706064349793795354243063009244908700752835960398374769119653308390343980482766374217675711513611829036345800918077468496491901217608877615296779922342648217662632745113902380619139482571003927946174633726034128974043569505673383059894798091012852997619749331184588813748799417742480208231553585240859373861898141535881626226840876522277033579522402771879888679843155508306645548384018630387328572617469156782324800573372226749818492296791112000152594703482361341356949173415598040557358590748800205160708322318765393534124179023602717429743536808691304983520078786792329376496758992575683127865901460846697184765778749850308132367133275244450992776487955553913172766172872309890811300063479299001820814857383592166514385663388410317641923662067335750549747510957375932645487564069569057270495166790693648406292272462425045902916517785895700470805101615932650819617462407954930623234460442009546412381829172087839729026249571049861291603049597832315699292182906148938827641676388992885390028725063758434360167275877435311378135509140129963157660513440146488469467343798461286870143820445443327729837905889657611524496976238705401252802208881417864711444942315245910586601059017816662066092856227556686541530806799325889538128361760087084307040419441096800391008806364483932315542014648547982841758844427413259419771272003396967402497257157317250426166847833084690819961919296346846188219981489959603927639648993294072933338481292100518148834266728070238182644298948680675778433528154824631786517818380821305139188182562842359297045949834352907712364737078903227028466168709818266017597229935105815292335575663515180892827216216379954930222919271036519208066619863309174190810967103020453221983182432897925961844562596160519116940501472097425108244966066040839583988282330926630639202364914710274077197852970152825607878960871683059808191759977200491268415518333260114272202557954225123901065352377447275807785351983184025085535665453504267399356150955064630373511403063638475336542884390957244024696870969653269347089546174519056408243998292612368531663840436350341251685083710298517795341289543524261954237306678538026326604403771108367551029791146416605386593332622776561154819491044404741994105320667755990657613627806663205766935516196232624860329570687934333697573065358550839268250041608316876322328399556355468589655651527172790520630420522815316329962690344155218713120297809183578406530409046799363692983769383137843779403161808509474313834379898250831695197074204122385428637693431602412988385333034900936450487644731197513406610452077975864825062363621389636003823562786334569423874524009148532327576105448526985049480834307746515733752456956201944807903773537314871599241760578905698377769400316064417238290673309836470266240652391139078642920217500853312655110978556010416525389684102309373082807404436676433757149753184591550251799133778745726598645314358333882632534330175183581911798206149496556735706233553763266807407157834831034374409843705735558351622059978918975590950138916361229335315930160738285335361562423535461839859318324765176283638289615683996328897213005842875731395001901490942121578436042033739563783937060943183561598118714977714597677281754308650248747193015693214438182145164632550003572525560584902042779568511735366403845136847163683388568917528716466519967486799106411702889585352996847169568897223158978944785081424322080172992367909231583144319777699934835713721668722605926572513664808014120994500487890236487243432738731585238501915329259943240063246820772480769745073323069763701245758903782041753773653632345786149513348370536349812495033576408466800618155675222993856860961014538139886703851379233626601040166912097141694874162732596043999507258151310225339544537611702835973709510087194918785945521129591984676972924409360759078610504207824591621536375167355615604246575451005846087608506248725949917965251302302136253235507466671262236086114299121394322188663430115671363524953369767187069619121396664166395587909458360879944671079304657383452475194266584686798195514791049565924262105525826236258575992569699633673777496786570594906705165605875087592406587162896243394907484201626387791948503511587708201804160871961101241986077265121935840868247812267033401919451591554218303837373067628136905863002783712864486540426290984319729438344337550016309507078028757958462381407010297414505432885075119187247776193077481178678474848069058753134038404185634669219421892274575638705508761376988003612300722029784212014552949912328583322716313947092907035767868417626897500056258035418490467258644571670653586633551110406783594880730602015468844397351759044665284805029296764806024154210781753299610260280851081226499774008835449675502184730889964815584583681554949718056883930732970313543790627568586139676890791559227063207737922620049882592911739582033406308550943850288786072470457434247048504878104968631572898277320114197065027378864946589987089962958754465252457945547647136190767479639660496798674301050080532848678396453085864079272504137381422711453909089420739535458267339633369744485447171886944265280179321735422980487630224896880304395316608465953816097087342178958059042815443940468045485785964531227471745630784860705452538276040956581578359947708321533694435574263750731451000392332451895968241755312360613364775645509704182457664594778631227157682908739060568850812135925452909516833848276183784846121925263169396565190153695831159037661321592428243790538998302884301158280106830505709089634880595156431486056396185918810087258137482649230536530241957906663980287530398979817495861639415168802689758270507601050891845093094392272233913391614733380079151682778419933672311914964591727129118042367083451246334866254932636712030940528534396755170733375100141801282937207503908340650263062424533670910742604634269005121484823926624663197497662381172522835291431402945370551081238948547909378736847429744463186627126012735153179267939674304475794606986368848876393076967275634191260008416866350338131773149302852848114765528219778406666457698272726703440994111085669665386316083001909885495228728419247896771785740677687631125242378609464337320083806536958939400899294033036423671057011791696999578523585505544071924325097829637873046762464000219039586380603165347414673977673157467437439849232804110149897493696915962733244890040642825380860781082249709230820512535741461360493057109615298155853076623242302080418010180812437161859619119056910556647393279841433678461374387310502827257125469590066200600186611059148258957802259753156028807645647258832504808318933867469973821037480830210163943469331754696668473591664628100514927376492664720581031108663962242859213470821166674829599903993321955709902077499827415444470691992145787650284633420457039501232447780357880696395984467642524712718716279191331490976663946689775932422398660740600569088343033341919870970999873597284161242556214480401972634395228237447376632324873566345040119491724178459173404265535492025389524887061337569317048151829094611766711788239315283339820965949902184572095231346237035704888108461582190994962681538353449036303643181275923560101740047179590592522519990350190342965301858759277715839180443725591700793439902723266301104911224945655313025505116454379483997708506479910665542244732745204126933568643583372332329294808487901744384320770974008258361385843038060764533534309047486630035462715380393655131083340644613336460779109562068305198375079713475629199636911390524866941108219758015768058601091273346395054927581968910363516604629520659887759388858202181692645899886200097834311375965065704413805797742273339939440663908233366898280060730919941703204569073708570825054763403944197607788206420817537496971117575849676749932933260201622090605961267343050993869725366014812014908863740521159239643796156619172284646698243935899907460450614387219075786554767011407149688147749531262121425245109852867795809345665725649497961931736948463490694367068008157803986476708294084558455362777367493224470824185226487770777704583829634031309408598709391678405496897923355119970071589179474543593994504886206172134507606669465541911124738466495513940737789658368971041702286197663743424252285999020165117560472948059722905703181083382028097218635925452889665123480679743897791739947308405850766454133962501356038888153976235876906489257604967003745596177289736895845093967274761057860256034627048752228723826791232801659467178122459818865007479552438655911803895475480668557388184432357462678387468441119344588950211923182622730120780685284698189409219243398402712731871609909217789927884267739761549657870680802296035650491018746661883935237814001672806146756754653046954032236652582044667736318507706353628938494470410852189718656470014298469991545388654160233746514887381394498727239301275246607156482368747972175554668586760477676547380681457276069230080808226753566331538532865142652061050749298292818036732975879125842681010506561083933679330306207399143316315056267308195124268460088235846227117656819255686207234715779453727306992522313553223603853244640297576307936055961581753056467205810021663756572713731874482645445144891525209054428726738842533150431640229167005199774844598490393661603115913837578592211354312352662926119192578571848218678821071992013342086225493938813279231586316902472354550014865237463964040196618884217081778702737782160908774646352703235149647216795922369999113451027099768211822791753185115574702862692718654092963151122881003882677044855760462062714135129153265863175951845045459396734315251790550551988406536049781553116091828037322122893714764294641306178598933550123223722082716890538342271366252860003782404991185277878448680173529488506299931649855905744300741419437105201464174810837443970014856711735498025040439509264822394648315708156566921078422300585874134026819630070580915329988458701557792720805702170466977146342768142068565194977389649305910654176062953686575549453769846767996221881435239742121312513199757070136397723467505226937148196481636198428137041007729393683791218398894152033147642134180534437056910136272992695169169194374981582109802813171763058974082781052979343246541156777954486286374710112601965128108210272360115819520676086814380941959165548007280222727332078038379589715939450896285157065985450978668493556955557672248510426322201096945621637669279746799143970688239098506363775578980128635108916547975417170810920907615308240116531290568699156544007647530572369680056681999940555989712392610788064992367826532737976976175201466267424678933318780227573774533341221666194226416483866829405043882124967964304258925861769882123502185307528723374388505754147859307233042607482524113707086660105427788868987561961338829764261798794944095482189025779226743549931045176790102079007065700222063019317853096022969984080506282401966696972873336865702096227065296178597292806447300274972863543309165578751185361448823633927357088272288752353567845175575056267916737011389909038925438766295926037232427488571817093705464490645732288480120561208655779781979869508054682901255981667593633545751675289197005331759976214388976967768654338978363679201071291687672397418201571250924674292361550231785074377460399958018077748869777377155192090580576816911474465818515658572233292664588274910322072262539734861037689275515543053027699920469629940866321358910364934427971177784644765026944735712715789753378230469366268319985269712582027897890690607258388958403969045321576844788671594535942232694822458621085295595104784562856733281018247417046358747674933117085154076874229307427854801319778690281780925769746629451911561571082744092814547039654386646764130015129496045974526477156525364412021853548317057900648813215053265093863735605453264532077675911701442856721523181992840183588062514138287258891711027583032669672006331223866052914717058150386774672724945758146646456935171939837677605166730938873915315308174366474440442697792004103151701090821195627395159686418849373011717629851558081307323035160974960921564840624078615478966565946364245525069030505371869309774342503266443402350237147727105128512840961247626768972328506557884846925614572086769680100103862742979064517656852565828127417019789558289096823814947984744366399979772763757886119658692118147862594646760963402997012688670438130744197132247282423330804475287703635793583675349301809144576140826861863349738079487241363820706508906269715608079673963050520990923398636067463892769852485589380375581816728220368157484379659179089137495247248809971573599898832307265816603920915086273727590197988066481257609586621676949974537256307074890252134430758211776704130971545715357643323703320424456736320341310968108144560930768611675228570404370549519392327503107474311871549376002226818776796726297431341324284604977107429315522887818868918686079810554893116762442434147697923334201327316830515386941506014246007339703350126753282726319159692523356578135873150477817820967825454479828912843124870507817587828984745772589762250989300861189616318322535297009020305332692328605414973100684466944428989732648844761374254985508943679089721941870978097456422062489154599686772584698775888702958681980651399160465351794891961171491275798339638980048796227726990744280480234536230464078601760583391168523812891583071049574143056730331369142740454916288333974525875276829349297646355527096672839217703814200437630634829763521319041789016299475894888235243387475009194951273305154381600538851603378828009279062040550124106312514481621380759560346910459259001071292941627674825911668908993243336707393232126635789131209091257657071816174631915586595352921444561629515202310179711714185058746097786157207335464632684148243082509475248048414595064179758894287457757214369416100898345525111330486634940011714065931676776590618621260212082857592665797747569642596872600144509502184616050873200266639527013075841418982699781741468891427922737821032997293190656166570994449254284110506451105994679475049754355059659225492861454941282382833838157088163366540343539347314508257810721806310832494308473473102117807896642309369405175452664997885683104438088949571459474227225931284970838180689468003092115109983363599020714564453558589277014166058931371390583802048222445163202257306605152665655814670356186118443145663045009713888098898621138333045982289406964683488265048754296114364168497564697246075548243682679432184030945033034830938248293740704524326537350468685633917114551339371978633702764910409193472120761332643173138345964022628833569127468845240780228454866077640932930783233000555159314742895795886121670109622682267936984002043874908061541067885694310893082243924305442659551831455619992457361480196221658836252226554818080205483079500849174283736378393022553756249887097341964462034889899182268572640167031647642692697983549830517423183016587712808737001874137374552622699245130818230706007708585947854420835764359410962386938945696679160788409317074926671155069237486375230569141983951105675292232273567026612623799004202863863668013006235528157032349231128550017446905831116180376603025321375064573273813368069365660625782043970976328345759727456401256209779671146162090993207407866808235666530557466644088209006658001917395171620870398735966709888527799169485455273697903057641927171312856461899763509721635733992219803920019825049550126493479964002706285950760092018558263840496200831618049643402054958636099243738748690165641553712250161160998223915555707234334705881415135481634145294618901970396783090838163785432382640548892229559545811796869385779515707220464945613559475039044369951073541194097701064184053327642866752408059067227281334884636377572636974651459599607395655811928659646495895017629726641854608587098873187274876386715150781887411592962835635215629973797114729679887284372272979113074450156110600686205063471676127392623917282142670798396710618786331399973884941335205829634381122856730716366860325953599640228483149672321938499058168082150804643581709294672538298344098992990734637032082339355896748957608908671928869096418448735139109790960174877040861511484571166349205361006057775199263703170625514357750688522795027567387012064285010421985576713930645815153934163571411049076275784934504121442660063067280960339094638153212237653691594111239173726940716191680992998129054296084938277327825789996791163487175758861061248657961683747589447013925141297558821810643340180326389770136780522186884795907192149202396720912762304779655095353089356690024784334920850106024323877164535082792775748315429628150948547442987929897830299567323419250432039042570157526630978802161186692275457152282534198707339980688800303482268033954205593668040100648528881246543788368058031807806157961387828372557263477508024746668669999888560529150857828481722688203658294512261296622963721027501428210514553686970661162072604578877257677501105908310332692412050030184757532259910754737765343776632640278500833143526038097330049640907219926300606749533466009596069436558308152184209424466152528722700630850493183762131994076988162116217917202158331322366140376117936646214865040656344167895889050811842446548150485059618094401385799518133565247263301572249244229702254887882267731786250251165114237808731187381264773780897125210169000878762666596965734154882380197695298268643694025024229205910485970143979419591417425969099899609237319349005436780003733706213187521051098286011483130324963798630924402090643320571911169725811059543151979215730810129583849488852794008319168980708504883857140896410394500668589736358533928524308059889248737177342015590051172633761654085352159355943210773934405916148583396193248849543918123864588529469335611058400436474081053370612331136521102684446006262689997810208732102775291002390890460840569377806138097272534237731231023776088551502912632889766678871176534225567024145628876876183775945957691587434472309172547146189242642411049822125738325249229748332578719461137787945631151805509865267015247502138695354743291695680123839527587525572352365718417360206549561651874423469147410206479315757612444247991563670685683238602543056072517363531757219872714677134008234380626336347994382230658911166648003136841597297422219600579453767494944204171232109445891418743458368440915197149183958507675428233413670758401554616679269169368331162198497366421248783010371188565541504893340337812898662655745503024994549810135375598842647391082657797827000409429446493275916337200757894639754674353584255135388710855500779762362728467180513395064279563821802763487661550466252702671296144478048711566213285203787051970878663486449591434934409322140808992103414428973563564807234893783140440069677861875540737928643838068311470713811044743528071332461674691330554049251465525998515894971133685838346292836950495216118392829450559852333907689813472477516007884732625554777597262356281096813734928720518432567089727055077667850556607631250064703401689512247427546048134285752237303896419493534576615172143012490484759271372407239132130259489927515001588622297450751796562732908853516589150303601677717113545144028889787922970494290547329530511840601154098319552607933603995271788966764202764490848798790273283309189005247403272487334158568913368646783287965259610248937598293662617460021666268379537584035808740142730219422030428065292851715357774247541997136568769522052491462640996509798361911939832545780974408896951870063452858137539567940146753302120158844868299411652164718703370792765569032461456062376945015457775133411778582578681760936822202373162473847907682148071059504488302476635814112055418137778783760985487642738252357663591710644314073018134807251741066303945950621959099519095487853718484454217611059949726106817916121703670636557053967268995154597756888349823838285786883160060280816362430666239118084163109598304504081863434237975402435643835718052324726060716750341690503125057331030320475906416598828070711829816576977842284683185756746907278430605180277635769912235758950143475291654873872059656344834500746551949269154259761591450121770316221297271403295303979845078408280765865121587240246297928030048396456271982137687965936969897083814147476737120677851165421335580429271777754353937746967237665588285075317884137707609597949966164240346652496219168917941550483106126179896358064343575888754670630750306651467789726744237385152221581590922380285374912559742865913708204792683649644919932073165537120160904969271620458936138673357805638470540798769917849094048100212785605588880610338477527254571349348032496321637028864619741142487990594933994386939906168716559919826004751752438126834671956674621188331648750775002161639729153603853777060916332230526333061734614046482437988442609196329964277337683282650113695850451272952306237523920732203794956700645896066883577442758179844086228820056729006587124029876149380801603580437235859121375307998611686339992986621617678781770224794933610727457992706131461593321220514905255625558881218688938188952899309545178974598769434671932909641289655448264155131168596858348354905048154472567522023749140831482533680199526279846996696604367832463103613207092447594708581201847962722370323590327468383657064391819590849169441686558654787932020099822547214580168639911014102271249667899231709324257792729385753461835011969354400899312775463630435965966396394429512009996715634276651173708253476086962309890566205624825106282144094226755090210350572923938251627276836437577140812781154996104939452733732083510277745844880721599073492726178139570059984729539871641489308057262500055733290278435743872641929288782529487159738967948726426198349169314733877077800939082138950156627739082678456675471299782343640928211798387877121509254843446762324622730559204566070719286944766673097888751732162196542220430119444242108841764196559801302554072945432523560673358655910218309551936017957392541073678805939111170862090261971455513420578669784362821885976579534246495015206686556676369906554618119488472302204940230039233621853442066755771263750951890104094231105213279920866093050302927764103184766685452149041760276108340187924332459641053705825990717072776780476398647638393848403041449376909724350254282748835990771341447776759228019922612105619309731819684509904063432536356048429219416746602391673052722893897914141812336840311359914527024213476481187056996698557278284313005852218758021165996676474331765466778937918830582301582377937261529907595193783006946867082992939909699677126826499199418328370306960242025250570651359719555361602752058608107851040276783289260054917593822056846478111218613173552785873101786672026468580192205927126034211375506059726212586140325764620625873581958929107091027436047278278420073058581080778085687472873725783340574933021593164721284740208648638357746271087876765559521681496334204991951677303005325812756578686763256057503763776681266930800414566978310835668739550688272351151523647134306773291672378659793791744031429560002531786470944023751118883980676075736881800505532746671819575227018051850600055698102452683098538447055290671712944153819413606251538545758617846822086357231094747000240110481488027143075155125350557843945862303593420190371142230931304957268341203185855275963045192015850009113950255213349961556721909414343781296884681479395146479457532360515531485489436497418720269975941770424183493104766893734731468081279568705204430321666365003502934913554516736331443641207729773678124295785190857299176052152117030406523522947045798297325315743742433258447255896650228322471174569420894827473625742845597705708605903290094522503970941068815668499549444846478556493390693763892202013544320754092816987003485963687503652455111286977068405926984584252928521031850404217541118905580046885881826026083308752261342065448414612229636283820281238963577481479401107108046784898166622405542837295050919317584198133361314334124340795079863573222132414960616731170486706207919807940243847092325100328734155893372999492854567876157121740541406173438101423115494934419812403057537252479531893994468999389487585494550651564030968523808090967893891582290240307685130982634539460490749064047591806403613510529400054285298912910392021207503841805960677255666207877115263400051070376014497702945394273026218603809877121039341737727305669253283578609159493716328491309430470676812517292403318798787752601394745942754540665237623099290769081513258806598613784291694305837238156406734855903503398377693865746834219814587787801765882881584595348348151310336432328867781081312468474919317604607389271203379740767939728727066226180788094869134729349548432927655641681179887210205316584127975227016886205393071370056387258932950684227415355911266378187371064473956708239880555540399539647436882164618469881237973338763480459875442386322049436393194141525919010220312035852301321237851660187495469733890482893974273240769930921481258963395878255754524938952099735837161304004372964076321853769154136482274964590964461403175173132584542147564841052204193783742731974447239226480413811212413333445497935770312973143527076143573077322458543349432473468790966391109923729968004938518117283051349480905896382526885564734067290067831384172886665456251496606416577621182254629155161893716331199846999745883913345535996871784910701760976459584233861737992232108296519567303265306049391036865921554238074193168412551742006424902463365660332111111147145713819637764834805812956539581397024965148340659096356866261893287691741555637028037406006467703552221013484906279524643050118418906858453823516339234784162291573241945046883536338463282458053208765295777907508373735492942870993048812764972992236324479570760964077839388592479391988009571517012738165576939956315944858385876135502140463724205143047461720630751204761390660397094272674008913971215887450433104568984497845079044025837111132543924608754895422686657545473794940423439612323833730241697221306189276181121347785655712331957193966599314118562172582173850179610317384368402944008951699425248560582396960753561831890296978772374536616903823414318369094234821896262547705781096213606778985770853606493824832668568749715485103177535592435704822716894933895256668070895100075282105329457100756312555131298139165453820535500070005952505485822943216840727626971199955006579649299364042332528613168634310935631734189804420260138464874198928666782589165034949247708100052536621636728368509914532501653405053431047710398506607918129991450464411638087941569772200053004418904767650326040848293839496846825521685083325851824565866646446431289788201304023933334232140512257492185581176850105831076148509828311335317674682081756678433447167243942773489132427380149106553895044991179271101445487746839776777987105552764229131127705411755590385314575536443615650413425729510373047023613544468984183951366747497320026836288357325495714839071292929620572833016513362427165113241836466190719328411298703186313804667600813805223732187625109784987837466074275273841294153953125998168907900962049804433307375156148391061581335273435222595745715705711977823712580384623824139456903090108844648340758281448169514289470078381402877223992562087657866356137889885048753215911852139686563063255408697691628697911019612015369990294415166974011455040084744618321691121444221366672775988127208084585141671268234130593110597195325412099330779544997250378160813053122080920364259210404968375727143123307182033996510036758024086442261609470887910663482554077635067522215358120878774760916200294630057083018466859353935303441127866238137489640442705206888745989405589600099949135909786400081925321435169038376961314568658842380620246673422497453732893482384983202418264287777428864487737141763868450595238433852264264872065172261181962584462039053937362787779109604898886444840034675895549918753714957103285327221185383202727874440550813584013774287725233291331575629028634126489643872279771301388310515269167148274119883945076044367940269706710733696911699390973504019224398305677097915340213104899032714173944504208012767255295538398141745075612553962965109279504013037486938307018268401708222071686669970697248171138802351187959652860028366217348629855917745409877735139491110620734212593188156267947695872526220343782452541960289160129304069369550674354617612052089783141628631327797519884769126657082067359340187829090023058418726332627298665167590752871218399902580002417384314628259637717714813984243354327362730348039573289582159394411695240146611475516933027223049014306026063208452075158853286208140400594283110749911319518123081578590981810329433148215322978326248274067014737631670775781012105577594848317020640910731258265336107016224864456587242827511145941412424001107200689900139426773900092983653576633755307970245929599444136595766184505378181699549639746099193099369242199023924462763543671795712862976499373764829228490303918729082309264036782374364920870754615438748984618116835250044421680693923354777438338953263118071980042100557886625925635002913616836068727764455880103587815810472726057198603392619579517216143931045939300871872100025656639782196262512051628692359778377901010469962200501282527410527490370547955019269472117034932767866173704461883915177715000686167133868827789205720697295840349731493961262781340905628041623060084737167796148548323385631446672118397290932859689978385096022880500732516406453675438353997563055567369218022939307720155330367220229046300221728881600773958955688618798703275802202980833204416307938302087470096278313014022206739808673585321677038061374621410038980489327866316688625444519845460944290267456428984028356293606438773813303199186154126815894975387133150520003318997699081214756070704473209551007872647439695188326926271422181945236831654964783408718166852062977306613296702411510402579973773916741709298905717035966717433228675172421163219201240019173001679515306614699561793195582242371615695793455117158668625076847161011479585138373869008079321975355123514527689511736741659043163884974055257422692643949889127488657449712603742039097199838275129225950257680431425041114019065330960513761586693994918839657602911112336813503817287502502170248150970291021796883764430001847376181974765618511398659301571467786733195831964573214512564510615994741524526951304489434970346774045670435666980354341263383796220277606243987215053962854158228909498750645817288148575981949493940751702116668472132290438324757105896300563960344165894120025145315805293313403594521337307064322899002938598706437645001895894427516565882747432678942345142244424554685728574920111609189780600278990367594462369006302957445777711249476699296618909240429434677457934681588093044977279215072839759617821868363159959065929171666143339988577590084481730109565876413224203572233252147221407824653697113175843266776369527867317567829986536358309859668522016145105417478237232142622778162032077396229457786343202996347035899556553924189510758306023929965816978050527529894730697465542287149578076753668510446287521838458524841234845015612318367343497248056511677345997927483160008789472526843760921957256716970491577207002411504080867674816910912698459321888361134321218317998506898014471650182276427549020923033095853457080259991552976106260089620178317955423362607211781647509322665537169569096320834774969411528796801191423910778651569956524735505225041821424764553515731897953194197472141209101221112271353226358795445100622557849563075792798401230401968581699109107022485076697060493099573281470852306401845060439277679336401594975528070636949064251025112808913606907346901639968191913338555162802106826409511197691890814079353336815454424132460847341654212473134458054909790725984602096209465830941439361769106488155650856362964745671442279728803224965701971841880256343022055102430074212204265205482290853206701338959269458569414816712334520876783898705188083389467811796028027508185648508854845585205690665905558341813293488460806663311867167608681293837284491594889622531736902475187486923353105669794380151625268280325603741640658989340541835512914830837210742577700730283056526927419550733405828446831230994661415993739856612252215586848516319903584545094051439414282063516703528823822698529207735363087375815720242931673718891843329307912553189347445835276265667727281812919021718274922504660170394769029894442174299247193696434322412497288223816618595966899503562530549647900191185146948387563093116524091219188280485303907761679043652297233037210365156635014328002082204465268405536336634749168008466344140694662790337666656193835348620087567378462792562624987700624106742672379100391140702898606805532231079519556070050317797926926734758527408224819849759083911333422728735481532484334682870010858655307283730251911198774465969221698417699679922065990868812677103682221961819540041844121488203992401929932022186157670529789293633833935785212584988215989419968465709448031310938949629464805984923284119108320249483324187154391979437499393580606107035165739227127952023797479960884789614447482902119944086201262247706498024669397494706311135810877238203182984191914314580773615257791662378854725040109986718923005942714708316062451720260958861338540613446672163095730507091056347607361241761753796537179860429393088567556335907532030841184668221221466617563056199165045870998815249711897133605601161044690684024824649748860452151806401096223956451339213476614196448796652840141598663917809883458463992149961845995609734401280504782534232405652899996063373542629701606432533289729381744184405987687869957587762403024920753980037469165457128339452054040448294221728956898952880964537999988537472875368101395284798356514310573979692513223897169533494249339328358073203899951516183896007061675684256811284454879836273103320672263113364951913965734660970274754012635232146723227602775523404314548766471158050860838928056709349014295709713192951672440344731662186691797355374623244265549961906978531145859854651845397393450514436552083248076600605310925014314572510628865420036380303004206218972279144662703638174693127015219359227886882033102387167350336356884256611415632020604342319655876074706360002680592218342407346767833131905420016362806994779181839671290240500349119356252271353779840689190537998148247306408301664730339639771277180292277186114231551851479254433685658221403121584484578938342646880261081168079174328025366008517499101182098336752133646166438019536948045422831286071497681433583917533830597461979115923979949331988599213856959586376269992084773938827936271632257671682528448807542701457373782081846498090297708273479139662736793565598877929862978553427804302777172533400167788914346480982508145154001507225563382340705310120634462988678431124795523200567132558348023921619198139623597877681678887552550677043073886811925776048583353062344268922044786603163875626152445186956768741496535919762801556872762931928437303633137545467637888321879645367695965160827076666841995303548708845140352298474035590092281281979604813425063558397308330191657353113827682718609172363077860746215698477991367069493615305097180800919417259022119236491649238471703573267582052217671065544049410180566033048204873007007930356943011795189898987559844064495606036968486968097220061904517899337511552186679813372087021613263246494499940608876844538586409537495845192026386005682694581438631295177390143194255323862322747525536962704220944686391146517735607186567544275222055750514993385173232585883827269558762195614718551426243675690847722533373356599613560310081368609430079849611979386262320968257987819519982920643715851342746844571553341868470431589878124294862441323051074810588200431604040499634030457898327546071708503752378601512965923978926806495736353818836983020029534908967209706239107169030468920285888467611134865260576616315173154858903848686572076566391487997259485829649436273685401168227440542688473046074845053864032676107798598555935272189151709242820478379024298821257297079942647618790455602869465452216413898015394753610167864248368308145571007136193339548494514246633967516429104183801403273794527847367908075614343475778580645314825668562162780923126264794636063046681362260959406964546630481548011303983731152116864782634170053924136169282736390420562666650106445544540033713772733956645685200039150536127640558578875596101135830643206464972027242464896633633364900524753725936554453902033937986864617136624163211675539076470391236634648873356321237438489363557382428023661473178577396461295098551051703702385604051008810460365829827204866443847407370510359606029032842981833331664558842644380067599893921687870633112803970267329653467163810742439604621975556895938148465138383467901021718237054157851883644268131385031023917733430199666103294740933744521163363059452953779958377156674621261858474140669220443373566731089555717564695786135474228553916661847446000515460503562128700865521408037755702193643833366802478028140219547625256009088013429488410410551605868982936239796235155108970634126382072512761700554057145925537636910442942366867881262270143663166746432922353287043270308879655508902448824100975339140732149159771096313772350329110491356394817447248245844518245339211336479424487820912942052149773588564360247188541947030739605002093062084214818158177571073669615150014678305533595711619486167458461717760105510323327502958455374753395833566973019978060763269679539170474814372863847149985046673935756783436291380574437858104153161344097693406530476913317186749485645618961667914431503718355124023851471398091582392627472633304570008179252099203046489642350160295174658105564692723914028965973924427010518978929030429263533215380252637988890927982642037701625639090022901882649207852637001556695852551444660096692577006369953378647080669173856940780196558615080516988283485589597556307407027263575791186831812537665397002684391104107632588525842793100460843751363849377803821829263029951637306377215676426488588710935213675637184137343706949524569523885472280788080865679429526652751265848015263124943771658233298061382224103700047640235377805631647911113602808126748243368922825721868382593762825936596114784791544393499020206241113027343066987472121222610162474277215749339417751105228295508902731235324884271333935515684513752465166693247275937809911952121153668840733060830777969511477703776045072102043456996815413613751011807782791489504530612533444966226639232930496419532388903953372513107066349508595977908198199961210044302880552464443152859653774768972707958081482175404804571801864656794925903849406347418182642662210434115477512297252874699894524548250245049605667569394579544908571569782142162372615104952530413581751914866107026153095306797270410919547435124996202820772840393479812345058847883976531107722742417968463028660022765233352206050052299707792116556422547418736286471185652273874403279509668648054104271445761858907173565116576423438225894764080272834075516505859002855917614184639806866005414358205784815996548867514330639125201133549142264343482950962794897175496653639999694034077746015556086323407246506659415874030684720348801942044089841615536079434279322429756839677404536461288347670475285365088014777837997579282422072559810331603144737352706386136248740040291212793526485371790812934413668576799754452395058292793472239631379174386211901878685080486002661457943153199639378023338937753621255621169973552410385551552074293445218367133404799899001661261995355214850275442586541379400501554116287965900973331201968825575302897378617982758335356657946723876853531428826833050031070884217066622389062225401511046296686947068011641848673345602777603067732980744228312887692941430342885236166587836194467603538283662319275119587968677954840913182148923264473757245084891488815066865326468301298909573418988662773338971677119775137226682579202188107818486255422250513705287829903574301665766678159115288563793000972973250560207059216049427499135420047419711592500690200613012313274373086009336110000247027879358839140704457717927082240321580291905205489973982703752831541613748781190409073245262213371606132086381500334411125148214827764998365708052417968575732977916001303774159831182745975444668160926543043275337975645076790200917822526441525385187415738892634432612174341752765650397457759350315496145914205490602150391377164733092526153886986153975717937109461826639303458917553759155111113260408823327376083401834507490456279080735607863127766089926890058322060161712801687880036474098885554436981358816163077841970945494479287887697196980044030145866748918634675669208273313365765309381883914673190120134151935486562632342668923126140768997656208786225968218351503324457704633656117540787061608485610592340383234567805471079316675097750774394041619601260055540164098657999899691286024944285057600379942173003853958406105592379869963049511616896813302457389172812207815350602176788408428267359817532333533729420676932257944084228779753716746484992773598619386037674996064006336696160848134104047286473041960144288766726645545733961882495122092321484918054587529982664542228774852245401663446558487205330893850532788898524505758215332801603756581438791008802452300520878365375463399579276680724860691529410168749889755308124869473835024673487966204832969875573652161277216290897301042499274037514536835130701020830160819723567472721568853007047179053704901406794392948016630622607881546960219597176396002719909598522852414057852686904185786291834809898883430056273089264709152759646626414264191712703276427472756606325733034130526250049694992101197862030143089458560714974003079304234046791344332952105354678544138071536417658086731413739253215980998993246645271003678114383281698700116377774938591843600576211486444020126571642274641134260388172570447941271925830469772659496257643750131439006525054937319195480121068637527155678308212987984897933599882069623165044553380963537556990691220861951084567543866262772317873318474867769481698935773738026881151816255304721936213341168368965170782540762044965137038164855207387005308572661525608036189636675205141376599553343322745105778121250656659356314576661701051103428458652593705167409677479404361206834471476119291670329496222806085333905975386587009309942909277560695372602145499253464239221216984524204905163042027442589144280567345922072102492575968405944265326014633953992215555900076835738489642021742422024879806987632897728763232135318849676355901478995683091423734491847685559742112217848418402779803165745937738785145003605086927868131701736402051991621842256097662776139675056455062673928359189226344687174423975074143593599113448734382004072456956220000439416373411958430656935681724662888095511090865887352521209624877165724805341449345746770376585557086562380572462745548435061673800912367662447307963113793470116044597487762682036357971103539831174557504140386378516020380597265400077798700338849257047223059107914670093285997270548405161471946389856860517435428058651358314629404306688553270215169004731899889536391691919843496013198268578520169124607518815128210164351044360631232864027348658146393370952379176602347783451853977376373591697996475848311006015346375321533243448889399780237569441451092661766100018371369147642204664750888914331102475047449928261550946974472595264483403946180988466793072590468028286150448133078436990172174423953593485973584175562545189337326128548246797343073476886245646844037964328746223156806972287370642548110329344109077094602619712262355210136227302256653401723565726970479530939718353607400819574955036996926950888219953110997438777875457331472886369564719478791718320931554843635157288054684953864215210152363907913741809291767185416434713520934717758314200716289220044156468375563216646640480884229742491523932635875876984309823952553411249033574705846661444149335967983826360273986480586266589728967377516230740303805036556723659476032156387765299702596014881080599393035382753223234955680553968179947895059991407064982865632261500119136867409048607513930396200175774838139946616037715416650634457990147279579967850301815551849961681458744986994192547294156086270594823048352744618937126005753291337983378919281528809156631179320439868000769054207250865780518853166146424921251411373916926592989623665617270065283995631319320922617660869248561300598395382378007552276015120140554018390547895386568105738272270877295318222882279938070390692211433716315186708406156040583658964917202704959275776422171892921853990781952993753403453051406526141985300161102488353761489829013138740723362935667197991315564748410022207829439855427718762599763301270367193504383368648260269040462495874797592467522806587081714927053009492571023747180264008001441991814842260478332902218980114451269059813211623528060167654968180537423812247723618334981650689016840583643937985710577025872931879610107052021141421399491115936257452811907893838160023220542488786812891809822131305938766243881771439766796567626295587448962378521092933502049972211344026004516322566802044266550578464684316739282754328842314222299768280278743710735607834590214150759744605437976470687416570414393300141918381098199414990853871428667506718673565484108461288179817017105208066746301113887073956998333592457746098677339885787332911875738430818420668245931410815954204877403611869435450348952994924688806817092556137984168190888924676063964342359384898510409804961228963958001493338220668535003252181134759307584647737066662837358237740180531931109783672039016814993748123658384767066425498343971908374452507466167890950229082316746199952627741029968012416760872574511420332613398827811761571825949087873892389516716474585959565925033819851532650516486430611656130982531031791988836359119053416283616963943926696644040554327777018658379397374456638447953358230510571581778480244719980110489090930292859150480290698757622282319241523618625626621633734978750479359849210241476302254311717632996439504455866509185728278799810670301246471549014695486897520421584706756910601910151772882083394821175946186524333706354021194507094563802925996726911001761228445352019684545015119476496233997373122372682423723627650786504583381892629516914333021096064004656876323126171972582184553719597530309536131133513138346101997392199985258251403320552662941062333987479462808448095467358253446210667371876001279047685222309049391679438922322329719840171197846434317718800113890755735584003576355461167702394543548204471210819415520009187725139237136736276123812584178586270526246316313624271839682020671964916553408359491632870177913182923948334520078504690916072736256126313799528271109880784943665378972982686852575240860611310445278871442384565141379978701364700243286003433306843279147924682632519411220909815771739560571523396955825370822153508111609203801798431808456756517352816486173158359011348907830047260000032931350678259707557421366035238146191518803451606878848033844082451717152613294332664423350315895406169377354649765290500693662457703568226139855590933145090976571211388167315872237111665755017995032081193917829791099210574341533208274817020916794378131737318484464828906440896106726327476570477369333264491164855816546057486989136838502038855207080986223549244334737801968450588017518250470090891066048366030179958299763029921243995115664850836104910237658385762083620474225790044666734945459444106521796613400050612364601657018657649810899002085504927186877856906759545640930627613258593772099087301124081238567376884474676752986417782523901473645142374227009456158442689273912036501357583976509078169720556485311759743311710154756024894321633603910516062726519156781459611826529377172173323843779447865501413842925182849841300602120798127178439682655239991329206193412804069329532832082736809018191625466004165849526978504906853513956151274600073733884558989889024397016121174286727665832574942117515985215580209321688386625942945494087718777418504068622224396293809727759674746215214853122064760526364238880692866099228187623093731756900279257108018520834939225694966099187416845787796091728449597138722274725032041507308098666329562837310870840038814236152887535617786884222133706773553161212173583393206767585078651109136310014774925865816653643774950251172136764604444034495959985462880630501685740021603572591481763269064379945477464636536401253951099980495552035413501980207643199361882524295828685949343651246349648259031600308917405144151603899124570633768083943429301708331713657012454046485227353131352714449134404280610946844734477259682839150206815235580404355336726584970591244249848027423946309655758232351920327472677610487226573527335349356452610188666842137896561844622776166812911575005031589098726251506255572856515435005841071197171834707557195207140504632493355715766249831966055900280693754926353133940600349011778213979050817956860220528708361951057746377313308350978914221148128324431856391298407188837412220844084287134697781860664337429752365843928516741246599708271753139995313673733010190208664688730065514910223218269294800486352218185742900527484021519965584174857418725056781524263393300046885547215410165270154337166895620237744311944597705129532725895474977861502082369731260669449822761201970327353235266331478269057609507458726502192697911455001801306882276304634051073999931748099358781813786466526823077747765220546336906516096156076478237961850971976242780425426988029530599775802918549789541031422470641059737748582474293241384259165258773996599866882891858547831686430180479267633960922721066583960205796813328358359241079550926822359478305574987101954996787458540580903320563148967911050514020160974630790562819886684705042234280032352646804164731490043341564045721124717863616095954066993161498213906973371649442056310031918588324558136100731688670927321091795193732060048584937079921466911671184752746533011315640793958097831048412487686930320904617959036425839785460684778673961006843110565354031527156390002484113891434573313745117599422529363024761953164090604615177161377117958730417236737724807720546674397259301848575857103924909454429030129888773306044350961247093434286393719278874565045542849743710585022948382143874729357533773633518432322799912588644955662972706506479513644168277068999416870601579251616291925625010309983800574199416538606095660539066215231841819138319232476822202009002254736046595438193802855052385538451651070826711900917260623325402754135136158462238875541421473654656266414422813226728406771586964304283668096408028317086216490609213181731093594987945558086506417389793752882372125354386827200783861156813807085415184682688836201713616904536241052978112860838690152419363845426349330303925662631582209496947802457367255276019230552253859329746989000976301483526097473037737740573060499592125562079911545542572527649164162130027336823683068908799621372958816060572881565795181194275246913196388033570331326984264204725863144772489541278160599713241643627806747982142313148827520158729459653125795306448118385968965337245774595201341375796979978498960685426339987584863106753006132818656099933109994363867169834636120698523321533820793947274191477782198938412969464521126519907022789063638868530132916171338756389378461087447579546095333813392993498102548971032948856657836840965143850001302018746377202993382006184930193866781802940918193845978333737578018367927170010206552515704934799590740408508539436115869542507433492768979616544624858813238924102097526162731376846772651918953044400341300616977242324671114617405231361348248535422124916185168677410758552643960236143701441946862773971460780835225392564574373087098694684507254352982843416721940123628775866199259768892444221785982783523249070251556130370499359054839959894209280813969123230547193206692025660119320478279076794696618031525311064264678587180677881534042592164863702359447252620209968276620616513264928224970068268899119131149631078443922405706243971779924520030594171765898854023589762212555715505487708662969354287428777518902747403621946591496402378594067288070978200603445283179940001944679075604722527634308827429012127753214312984714161877553945109377506911416612701627931721576838067248855764062061910017960956002105205011542237972081294016971498861563036811652300385337289584621290163806065757920474268117326981646921892221211492316535755230587172570594562764822871177616945712086498254525047802098150318729523780444829731166410041875079375706151586191693351627031559442340123547520585058507869521906648668214596512864319841513571333324420237279534764928608882354800895824017659190733169213814740222808784053536484206653663543415565206321392097451775874269638619944211816647222342030902420618952429638137291144684052008236132158532464163749449965719503554312278420720314111381094709816251609346102076865043904587646698635127495818634876414671949118519053833998551710958579918622254978082385985757366409346020692315836496124409494932120160204527889863003740834138518002156618467837586497038838571031804294917277555612745911009396448799724147112841001010275016082614853918142102237319733290020706110757292017815681639170648063034507898245869661489739329299782930699593196219700465966942635343863028806109712200727811219880374659397706132406015349023283283310118053298931246446326917133802353854621015549846459217253739914127542935028683506757565499270191009712061903831444743984415597108974177492420940924815524437566165605604027033114516993964084218070364657439952714931420949614959008400872449622315137746724523889393974241619461890972121754671413058376522666273763252643773784517927146857861722955440973722976114816048716617471311465626634720734639098836885755481404918645641135923434099165851360605217727819836655362924443850588398860761106817026319569980493894536311193209075393660804201660972728907204221872785783832209156334537777878461630132392436588157042323686255302234543565815744782187123240065331293629881104283715761142549679955536721673342984025437885877821454225461259072974124596599618366608550161609906828592065199110874464007546653936865734194959129598178080193517068197988314532698509417141258439904559453823407047841777860891166790942557277722063613497935475371060984312117353449060314381199429823987309111555604038732679033472507771642705741311624633269669361597707355364003748913016324157341727310166573157307132140900411535360512733650187052171103638871927841169470485129782920971183654915815500237707238244307583530642677543461268162562981819002901197121679447386452789794612126045078192550283552591309278802872616195041334313216833780795187222260361039924020411986747707691876797159612931439710759389856179765934128630642141863032105291588352783843920628965468018392455770857426073091193649850017556500340721089149111528286923420095849101757286554851919997662752461430113151787109147035522033610078414575165989340512595725499031564496878328604345972399879757998972535166685565657735496975032009700271919719862077643167347574393784440116499385895259968110293391900066726533484475445636699132536577913178000125411899928809634976017485126355709139242785688992927689540232657207927918156844150990456041510687350494926305240474904638205983053140642428615761856523063208051578335158196792161182066413107624312964828115555649867179731126927515175184007670978554080547498055365592486404353606128075480869404125259498665784001026116715762992299517115256866345527873201077942089752970936394474057857527439238746888818327411233207312478733856916415382879195886507077452370261018895091426013328997661622814445056525007914306554061801072031632525872238505411490170698347208396204970627816903199069538383861141956467951828321574805578832293473922293347059769389412783088807453030337560799929587813265964770368727071921763612828723030335798793590374334237053003197855143802157216961113247188196112942513164076320489649202069438808157085967643958127113823924613690899768827691029703282960046130271682041678515606835221219164685216778376968833625162408089526279683367520618832444269143041035917999278480223212237152082314893005623286458197328884091058882978661141278395231921608907076021279084153583191970796505292010664650090102581471753455387464667846334342536756839405760776433246237556230184292446987870185933913967391826949878375307410639669133982712452093345511620040532614858896257710954575225129863064853215668924537101837695453628728868793512273126271490543213888987489063143071908010718049219195656590435208682638997285714370841309947667546086334370329281401937907968148459974478647474736227912735537389566848310767723113852344252635730643869722475333901618441743107172499548584689693833656372307480659313078660535135239683250736427820358376730140595238120035201251705549871891000200961347067831947270573115422249059196934329952250313456273762586103526828651192741555184506191630852334925129311258966663778111532891084100196317659158925393631873765305335160227833718109798659040964323200036394452459194856268249915073211465427183058264939013260140690137853394309515878688141432193747148070938012897937458868408274248035502748856825400481563187674046519834225902545089387159421216629599569258432234794864217436493118326486217095264080467337010390399963490378729245631999058620211526315030666694368139186815933126238955705773869930365313395560021426835418847673725357351580244447588273343984039609986030466256498256684392534671794897024544275001664364679718767173610294387612320303319679517794993340519729164587562273135387826774795939335102081355330674934550881907371575405861073938517998292000883761872614845253665457497709730406591054004910685698398301836886009503954892442591386926693609662929605953726401469061367453166066305001519701617005801286152619211314478431034563495622416585037263026411527530058333739510249391939632571929908974446686040185733217702656187619084501044753707938964893925685912441192190846859027199610246668305359118350436155116263953492982400408777415015003523152339462175649865138108827514250251727401205802384067119117547731352707608072121516176917621376975969910143937961322888683409558988418928220055699907857055922983223326522488107218073892310343079948785055512464221747080226647519496150502058387974946023258983080254057449659692748984545593377922673857002561051416874310997944693938584313678729861408199781611107073732967106466982547046958514121165506525161962714471703885126621928309287068096958802326454298225226463194988820900761435023348626406567468756112087190768450165031439181345408628417935110977697671135725777098005968189341189213300115373813042177865459068071851769672588165045475574357055329703090317370768501414229730728404880098863701081212939084042313254906268321400851591491342408930340154269117467058891316901072680469467025147629275677124702373732505462683523231987060584100948752475418849416198877858625115468994641769345128295676836946903275390395809906823812174182271047024268266526043143087396919223156671145359015735589982438460180149380628498488648832876135080282304497562766974763020086878752953537781736157158822442697711042860573054410386771815043342348736539511991151674714896763015494860092490258009540803009785684616102450720392998294605675808792342138279559762331992669584561165552040252227891629926442109061358649206072581768677667178291696022651728754762327507792918628800597884573478868994577269318495479302455945463708723459927182403582265177854478371553876309519183108803908528468464927306339020566276035477757724677470485123725498667710991236468301009770664955723646384831559178362162816603296476126019608416799432997759678616327395873930535359907921298177867563213227026687138503111351896915810724146988077868901621497139781853057180626266302209530929827553761364136507455941398864006941198947421378896383885811644313472924296392393779475102925780962748883511574385771588164583717113727116675510537635717113900662691582704996978495054664598365933318047247634687837026751794597002913542119401954852256849986216193632044194016192763603345653155030411418334440995154549548186340665258389255675920919630473752022011917908565312659282453876931056488544668741961741465495809044830072284975566659734500747458809262921770855443959546156289283836757549411243633395401060171885722761219185970242929242144719084901665244531480005993096414131007972831269129661266787298833453693644577201169283810574304926140203844776197101865606147042298537681712916967520275426289063468048277829869030440582019860565246889150335749227872095448349630896744137232560717338835173984465595887147373843418795890949629473011866600339022164325802026385207444939282398523805635130893738731810636637193198245433076393038048433097121115716779478426574429073209890110881171625749056303820148689211742057365606474723248274881121181416106577880781612484751616451147999487305940328948135910794851680901118817104606458892514356551511879057987011710790973437610768405314165218112010458764147695552499993611483329684023839885619796419106358443461913932182795666421851698565820087456021610572053179801629455931864742396285967208416101062536058877277354584786598150713965318191456723740040088802906876129931320547642696773810863460591189735083097011362393718315316761549868501797943187478146866611530997334026417138769753043748622155657025554818060306614856074429460292199225940896362991177791592385956106471506722938491440491424636639818211260023185522900476787589322914647679290764144126269964276717374005354115632637183758377299066731186373044822269908695167592150412945943019340417865401368065841248512647889617821169251166447371914554433753199747168491771532724428522218408414768130531711152274080323085922724560965612108350264420788105002763753253078766096606461687380103889937547599937778816434144815945024381493133479876082322201968568357963093512139177508381810051141073951353381456364992258134961171742099114110284850995370650105429597202892247461850455248034883245501678127653983523741389482681438797434471242542277611062989173702641374451042984015501102879893140928185234485299184856110599239498164151521471036618570711281400122086356549297865366753155154206346654161683663997689167113878195511075393368439485152203739396407642938196536920885249781105508037084613008444782668518176432463895709668034038782309274527527451726827033579704320598476134311060764357842972915614016147798478473629287327498742762217050504868670156562461687888131769192215717222643723758768440815073778429848494375910411238305294232496095771030744844625210863927494297412905271828093993914242084359051918266127587675174885527582396859500410613428771060976026801096917106509717411145170569570667957244975261070875433882789230375903197618883841902927984675852290837950824270997884765218902871033643613822186073810247718151269746574300271264977336857114879843441384214876566202224830673612062215880263217679398601242222673220280186859762759487794447111696390679764196687299554719921039361627492235605781775891258060190219005547315881486953961230502381937452183447816095463609994280359246596090567493162888298284581212131182452170901014327563916710126154732935489090044537721701131305122109250796960068548316203626033971955090773542304861142277575210913676121062637793762234370702078946835161085930310662759982676975134482312400200521850279967016746019661234420628599878714182428942989431215839000208343927277553996179873350546491251467767273780872838996837784857534622792163738990953123036236347413802663107984094478858360852733747485272025844804759117848724732869553559427519601843843302134042181491959639794476487870212917718756656166359982167161003224648969214458985356264897235043015706202213783018704430926487698289046136469328978768815650211397770763415562159960042931046073974591711760230210287312456849546532345039447520833062589277950842156319889488603022422769246953901532542446294118159807989094949990324534417061596495750963921793262316289252776515682745525209388027337729120438388533083005153008738096956247445757051497951579718923848212317500442116668732452716525503102796141713253577122986791557417715211022868289521238493291243605230417152675518172310308428438678271914068082288018529917745390407460250434087294217651015330105842681765299441379685650157597354031310496797212780425195535333691074790347749091074782104355651137428396337461967938017204350865987814296832077945848386480105120925206421005147204192941178913944207016331319029417399082884738378712013653224360364931462297886151989197548016588544047101865814060057193727323820059420233461525467747734104988310547459783518298727375140874238557096994324468917744356879286741695206502232011912644957631745205497990787114322232617140140263230683464251274413740318848383163344869603733540004095571309185830182962679684977073694742388593248412420411974809869409465557186339884992811711046181127710918871298169296489468360585759657747122102630715405001293601014278907576870279219305020639503003405593472780770241196753643344664705009591685833518957430231903097742784264195663362671149710442178206660910629570282675307453978860724940085425571930236414508946798718309079732294987599193686260713141008952537623518757162480142207381470448559642819929480758591595538306335106359835184726096771880931422380318320370186285199178839011876603703675137383000187640446296824422914159293883031638687774306954765954668910994011884097189303955678595057026756637788757178845781106259346002817080675711132263608549113279576640871580284436782699534293569318151539562782085506078780816624811586570630609343192428096338050601194678205683225538350907814989620414079424794139191050215220896229839440875856910881530387864263113701441140221115199589977180431200193891582605455994110055633420869701650961937217824315086539782820199851828402748847745370827259810940145154618480535020686030890331313904038400655446427906473903935914814498229852782457703127577024332053478811309755399229421178191278564918412142707991247924561094341437957006605467632277544791834470442338752236589322019849473916035436121877194372159924184524686214828907618475676329754685456763645488822185968338910980452857513871062831958336401226371605471944245985798620240410516462464883966128314965668038791278810681408102298747144294067748477577538594704147314099293542622355148780977088000615827234500941741497196859846521320001989604964777633389659759615659279824368447625480416000031023901788994989084846822908386587072251686256546777309880292192443762561176992998832678192828300194797569645222426889489959635540008067656559267098141054729559043422998261340846465572177844212439259872594210292421196166491135683592836280735470548441573831386152104010631610269614724887927562461971574718125791408009431764061892643806589676063366107057001834824503892501676736586445531064094080116765164052340460048979704514483793258728853800681210810425826415949406622963555821081857437486178871505052889958247483161218383075651517977426936705322496943867074919996096825094966642610823567583205321622292451625913658331281570334630414141184697534174179564958713219834207905148608591424096319025883454179002651046628039168405047488433797914285266008266869583244710168081296377670941460659617095538155970800090620087385550079246806173082970630085665337453218749634780168741541752183558020612994510294092427329127698771531016863924648722933599165520008715034212592747136473212955446583523769152122874350238865659293818200173702383977809498099859667215085672926755026717571387436408106488798750083872268497653180899047167985164123512406167168007449247649268973707492949810547444643273551928347579950414726193393571891533169502161237849409229102900755246930127708299769725317773497086912081131515543302814578898772232292042401521620487068870833128103204109933803152317344169447987327726256792408469023424956355592294654061293081747336120909308605184159265791616458802006015035826952237496940789800295486003803591948206492328648805649259565392369797169677577397566833106690786255723858661077634861415421244238039796736121173791230724250195504371983197898851904215316950005790714000217113552978354327032379255178512926032501551484670767510030743473888792377859261188945676687227498584132445977822679764589774766047581160812643417499111651268205867678343066922395519987302419747274424156882567415519318916306516262629092115226789423873321839522942398679334585724976250340086258123743792311913003479817820352297765500762942980468334727587414986911316858536908333405323209769936582815275928943283005793333601803233150674502375279037467255572014330327436138673837990158813772740971785041106368352463913761377539293343904681780632087625529165539084866570281749746371110886144844450556358017207776341185340711708183772490695670747302862831605959153065669615252921204508720092637168707226238665672239846881028466293095881060647028045779544343676192592557612167561404789155478818851390841554725764125396631146581164719054009684331928202098939175248586297805462059433530529935692709679950443681364543767340987445884033568849769128016468309291240167694857408042466106936417275803121618040732044322475728421532916149940451017460290152225998429697835594143538298145305937145164282983826836087570750707440192020618702158515977363355055591667251893403824100210976858558230365139921092180225214826939361882386646176910022977924106635087793549124977634505610198075984727862639178982845458226782531274310448702785008704931372561685247893351896638183898716603514260591858517541790218852687862873775087554866712161644484239571725593460417265676609618351089661848924496067357023819756376885110737010141118994844081923317305323200271144023277184380368985042745363616293840706939826474288649446272012886242124640567857761791715601579066348581154618422652511221935125724674594179092992261195929871127071517978154752509881115988740463210902180525117285603172675187373407232836878870438883628410770900555559161674009895042754916492149467269668044173647641144989003470371789659277581345687529302641541508514424087368577169153812676349510304489751673896056837998433933043410507547093479723031167645903956915547481826010535885219978626565214045531407679374053246818053413328390499581085808260218428588880890888171360221801137632101301283077234249230575055861458682688782955621968762845049252325304255730585614038457211309121837236977912668418570524834427986637768900109359162012071302172310543250000348524838510346842202348280751533076488745281658516038756119049078123723867250796219930095481632027638615257651112253434725243200914262595425579020656376588260495789410952882216340823012026971019985039591505941542730844034951977478396316118531580369527124818967227432541742946021702535766225531038336395455347697925352407827224777775894601932333139701503809622978374032614626119197781000632269159200511020401177808070211467300990964458081766725190789233284327675552243916193983102247839855359252450398417799551666110167757615301375579848293462462565141777923722815076523224470653699203577355524778126788373658018784461814171362550736770186325529025043856852277503905043793259199811162769662370544452367144538302053976100672536794459134860857473931439024020178340037770569425202987058616618237169323898535429836269812071908415305532271285055529991063970236223995410637162653109598790708565514512315230575393877106739827262401763739054477765591449089834327079056639489284831416824654077673945541636416735910185386229921684347664296211897712286449131289222654924421791438870137425233500692189754077376799057490172028310289433293748856248939215301174523731256807084409837032240621854270365690771090742924876864099820836199208763019919775897801800970460005723748951756889691201902029822253639146296826411006909140225906093614668421171335292019035162764729455933544053445942633008850363494294294511264057504422438061776937730862264634212597845209838598517903917066812432789335261640854786562872695110347646197864136833815662871001133920462543865653544880952774475784329870624411713582124320345732843799462345893046283417255226663931605005894456478110667156814006495959424203216897535669951993768951823641726913830563416820423011563927597401876449813159869198388282413727468558854638805083769386021314451362913766737452479808145765039892087481412251994869298218066975287295286764567488214026052983238672178554891917700821123424047430786120318940698910720287826853761555241791495549957014111480995856934464014428337311874663647436978536280704070148085619188204622830459362616445312980025766509555596746614147797364079305956953939989069166179045621580108160222950682572765999426202193866768366445387861365095039371192644885250158830806792949601972469983729264589249369179918548405418768680559719854648666759102929777115885691746070409365853884871311830910229118968945729749555637445645019801731205079558852795480392904417529369225011174496838848433088185321477934537154884729186042700791384455636962048378090532513840963449236016384157133192681937876819968481128950705093383410355499614674957903371924083029859613334037554991888008213750672464798124761792551613011698009298299177767603290836268426571436480759538689584450206932158119249430442424616713618717501385195955213221921435365648195164532710372487741221302674081653167643701046962094142857919777919885697392752800905303488114698282581366827977437065850014352167557009734674236469505900107052078352383136850652117514780634422649795530397606207467291378356108073819586452490016887441975696593539220826762521283442662035836005327434020995629188878895510044034324027332393034271720105055255747013389464309649210540816771751443078054886481292512414906719820612199084990206809690876071514640070080744390614232072587403285183394412059850241157826569934504999033563699693757272024585767740192714851332790005387549223287752683287953718205092955151278593939696067961729054554764953524803691613463700908210279696158479794967719873121931678458533786468642163127918009816094217229717016429936526115075748592069444734180937453731040353431929560909214606749280105283989024728768514547105052454107384188258215738076988837999688954980209087969280545995830373840572492433131283233795704459947145040579443095306677290692866776719726590098211128671457484094352187050762516063506909962920777915075847201405212855105800497182520456778841290322178148308469606670477578397625981675908311813279426301414390625983970403216928674537436557737625641341265145141050744638574932382746498361786997879933680197610303524129821620586005495231638830284465984593037886588376966466126980544485053738803902140047019368007173994684899708255946121784220429530463927816409445469311957368459089857557165112961219262114791455860062128996795463109380464368332494622571902820090563215774325079389365185812263375364556291345829764771031592893099884099087802519229201697511737688794798734967247349926175481640847342074506320414145348234519764779867490407815493778427133734564722496948868507794892858547130539454941377396799564515954878114889267820834761213674343932418130018489551044303647458903695823928673983877247975809763090445033198334808242446858509851125172128808585625035160139552699328570564990798863515982133616826530339552235819907841821111154923069213696030043181977347485726623836648987201718538481388173412713517756445178756662266578728365922919502063345040413698909203483789868747685038551905537655898065794731964622475655596416420741354960989747316269132651087047424010007529018478370778118548245381109650138227690532342468148485828597014980325448648997182088180921604824059353751645126789601295367717535950457445706418499721375874695770349066336008966144106857825022541987265626515568076925225953160789153783067643797473758122534635128360802357518343430230240773767864123615003385913148990738363384857912540618087677830345941776984131152826993345931576809431732444253728376080135070879290584042753229634638396269683618594980303915075313717074897090263098381171276651223597234983710367086659716645676962275381179897037955345651753759202814702799470949620801374846864462499403585110072857699466993417653661041608399191961647071884760050627057243204409879202786508359770408896275263649850664847480093091583247789554827908438528480354137817466664004254940392576146458603250652220030135558893314145533398179790512675728112251749931462496075136537938428603422660398592857038059332072898697258688364212601484290030463874505801747305935377948496297841250281851907958230515005522268709450828137244392633585554386999425505693174819412735136622085315373456191372716079293321938451557527547172078648433521170091005302684426996708273295198384956942087571292421908986274835289834797647429266081921635296775644509878170940271835917420882847201417972332283879542526403014296832429846786435553380512952137434139564379599931701268106659687557825044545052111743728845216099651133049240528493385958721881132005557017392254593349581022893991731262489845904036663726265452522276109227473059115324722100051554727669158976853634173403374072993225838493207550977737896404546017950126998083245418713053289158649526975529099577434674566599392810886680195935671510717059011386366342033572524712271579179256225188936867086915534831943094025018284765818755159852970975149690808775816408065951635398249392149677687792988859623036732079763676245766735754714211622116301392056582532533155803101116246102492796965794434966944691040202242045390762120078065285130417658583394851666579314343818732241116448860655477301222464896043589037499733861857011839944974342252333620782667016857579559961262661692201957978947990713792076055934508009740425310647026499846437484017709464813589475495953105535466540080853388437847318260756022880211647360819987106368459841417892314448989316223338800799302398075702965638757506643439206259618167574473453783699166273325014171293087579011811833488676221413332561564613799989851877804378858048844951524340573095417562652918337249943780391793893471626284958896192771862473727213977226284284032788821383497385524192255434330979057423421285868598898395985355917302469708218371988986038338008200983152162676229550868124005151959666494641487079207934693642228305844999289045286043807095130427855035968765850718368554627883158333228884150119894760540915045684197547324235695675320379360508287723128763078636222853545924287978441087343186839166050655438648983654454247858248289444200243463536972182675916647719608253037730114988346869362751022835380120974174976788613429924018090467574829174144320217450018300988493859915588712585413360094204310641008144549082550736376659521571465351121671804608044910491851687571843699532915302529548270982743171487475507433856704786825104673464932767118773249343385802630998792185245222027191730501150125757986305466162493586516102330495639813484478053948459511670442975893078301473474055361788713172592039354551280145050752492681206361866863811129141572913532096056714325640765529558918988581496949997849053230078598483459309253133164917020387429789821113049832258145018562552207273910787097721689569644011441984132922118875545223726862972376930841456963266686423432089312027908660916646094625222363203060239962827218238284151623697322960032451041404780203091387520860179727126480900416229263483202717021331393012246752429856097791383597285957268997168141170974298667608447525327917371426481486791737869165716104221588538506329175566439420449670207310194751974872592879801176601912327240478392743235275227316199095864557686051917933009465779460677878441516244822580433320374930951853341685019084950016391077187564141843267888400684628970687096536477620774846152184109098304259505842697228834919001589897763158216044764344676365811441079077484026105629371709395200822739662176562417598688200107480401307312827279795640846978152777517710369566450686555345115186262308175076094845588618843486251734257346882296155367535464067282948308457445795490371371895772916520519721612024523283016617006736490674897271898594175891420086462578015644820681351271386543177815185820961714166085790644601348837357950958784478197798959088508447364592691333857114583939156700259813117856041954763490749469506080318132582229957363617889402692923114645690960907942007616294159915007555352826413391462147343883112060996462675313122669697525933012357802543004910913571613577580049614616846770074642746172493406837550130280943251754974101528798193547379506869109602085606109511986180606034376053305774283709236838422802442305650836748114225569101024676229021278660640144301778608500395337371495063158984283266473571951027619933205160195973446500849010283895944575449744533460569325263165900816832929369252454324998592834434881659890090350816472249679456772320295956133787947469720263206861614624733861688864252618627511899602576360995325969391390764419194251640985193902929205264282192353400801827227522781078040543376550985512771620049624580840494288343196027999742298568255688664691329100015437506824542811658736305130909089854918795602356984030767029140834313570770157590852660640152280345640281836648899453672182176071842816434164533974581893758580180813420055659621989120777954244093590846717262407366442304994852842741826162635530924158830997726548959221640853561575066352156034508050129214128783545309136897108213433670853856427350114988958726356028358197753886506946233673764516358881195299063049160634125999790540756248395282011286663762360702441190802026156775382049910912731175235859915754228404560431771547297595005411344442822016316609462506446102476512421289017932351143893970634742721119122250010815193816904074635803166815847214659449328929011879263608690133479928356889167977696367995542370006198528012102615440531352163597837270874058941422393682448682393633033651078330379846404898317268670861204913157348096548674914145012854939735474983890875218260887274952666105943566949395697890752784409958303689077834259735389777167807700277536771805210028908418036052199187719773981508987539450765364333775546810815939311020094905330381625050542185499772168298028228764349924008808719927960601453490009365939296521769013348926341555114518661911409518076296693678490219827639382068478243904498934273908363222169548536328570051241951533198732473145113732972404765563475116703694878467075141469579519658693562529925936923667130394091773178555047385224347845656277408766365822188361186891058205013157986613446942834575171969022798499844034797542779929740464212607510243289657731502013272857417874489731027899927102128357242200046098515019493043052913080194582472955159527421046805853680816949624640291116586192482358946924513439535419068845153712861747633815235331498682219895473910175160368568721178073912807179769147142887912073455860521535897960994263830468924914544721587987510426934206680283192070797329286927078200982033594970395506782677388180407537589393073148530632442135411986904081343736398894732128415268265859985269767651887085177233487256490056856827167340905258175192892502332344283932451899621776099207037310328264513178473968038647329189990130082122912115331534104039663456816633782182460261318473041868111855804756540011460132956662200830349220129931361953213977996608305945957207266739096957970802018101579105584716311432503299975952579189951633034762496297765531815631858211709376340200656883346394094513585180323913159279222395733369162676992340513763529542279033365218069142488761816235865327027058267281623655060043360679432004527448224518064157318114956444381556113971437900495213381041498143297319049184282385403779612673812813874130052032425402998287028256943326508012693136885748783076815776162335659662372976548265857657635640736214883258510626623853362899558668366396685080289789710448513929355358742548712555287586348798587730080294333136108210875577529141368833559936590191924532638784945286449771534640396348213218784618705488902678392254788315296752040538050001416193462515306661038317357972941143513062140405599189098499801282033867197932159602513328460088293693698346768041798039270623449529661917042584112723995938447425492416622729323712690179424153883277181280803086538442589084917150839061635541849738225553117750413294875145494677344696491670408819105031599313196925697624569404340764825072957524437645943364815525285212189399927662494573225614913080919320675338384982168104499245404903674666236469343356502175560587320667800043880685288721926856831155052781195907040409555650569098650087429935054395126318635308661308416792985702195396671192017168519672286107359420936078663726790485094534302101256153556174868933517235791523482173890089179493096051453118601788571687639958566355793130511824256582260044242743843837928262617086693684244267828960804740936589590742217999495132513624285936375030661194643868009339023657351803384998832979969438453046774515860614741235950511223681619628904848148118102375070356861437484130133410059851619548853777903775211543683700883305876320081040837181741940484874113694248634041880647295776564524672335336378406643154177845952528925177179152943988836532172252667814940585901728801932155988325742202434759693127758582202381546968431522447419864350090709130493605900267720541738900017299167262941981478940532401758371843763644037176935576045140026367230697067312130769440239550933957282394381028764935318831693777226479699616946642324947201583694621755976010179252785791969817878121275550353223751403349518477091216724886164589360085795578023842589969445930463064412571118039082771460881836815345196085620400305038132177292541168579050678212438519079273336235445464668347028202362598717939899427903612705718618212871288637040999851329676689901926772205758069091950657794523545633584779534674998571921548752589122369167368298784286754910410405363329655164466674958743709078213786056992381931411885115204387918719248063903683386306798197506336561758900545169967292022923397901785409590503004638962020939215053335946331720315793415053539524922336725202125649288714088437703593961163683003580843009471852699662500809543669571048096998734318005386885312056092020175435856233271077001869820554532267283468332273384059115159888758580760294216360592497206695584702752277460590845399929520491066800021245971323080500233408834398657422228738520547708138302060965649237327779559355555248288978206112509643609770250564903409628773808125049399415790284273260272058786663926743142928523751544284163336728566119812442975970697632742797061321784453107052922403668326423157352445975157766703993322207302381250680597351260867437198091644172828146666522679621370366107938794653884354841384518872348366658562799092716418695464532704366279491434242640402322732488684386878453029921263772427845098039762645160922229359489833019667991596401934244140394911438731768103510832932011896249941334095397702949523277512864447625416292610114641957724882898871571074199081990360621574436233253654429223292340824312978639127029654534512797442727311540342374162015644336114959173955832753000759433145998725449208680353260637411120249880854102870755413254422827065670960756367608873339558951298173157729898987006844926532892515206504761949431694513328122898114075175164797288667173940703258685638575164657540091899755149908297237557175946285806328403510765976725892123643530714995338951575828955677654252045810730302252337841837894311540507655070345396568621265296716844060493746097189852426016344151738375918631306820441917818486124012268423797101292019228950209753884163283269621397359509842403140133185903842908415227993468839690518803604695621572337281991150053678646411151610626739472757147727937645918625821734023618170901128312414556453336150484816341107678159185870313881953572870650585127094056966216318936636565253671947604515904270570353378786707709933484574161982185001907376071242196464222840809218188177551789906092264763271051793068119665470279681575259257746224645667868198787641295794387484149645606592947731582965020736443374230185515218066238543000598703726343898769804852907920845573497889744142228960250064231125399341724401146607576967133450685678321932900327943310441640615134845876243098452580834193215656429715175641337256060623523279098634774220346722926571821244615139958849623640304559764038540910879059321275476693387593954738007961454059326693457253437755807350084620487185387954564930966919104608529064762501200805346307871402688716974184389016193795276861129086660755809241588482758407497203156288622729324321703216757244282968346433434245464924319366808467179497415397902619040340308006119246326791210977814226819608391737987654186997269377194091614668438687270047614217007726316620811372511353765030086727512590132680299996855253667187709903768863952381033609084599745657131197625130438233394408057853075599682368879196503143334699738591914985033465556832979565579644953564206901223777066849855752968009631075368822964890659624739470425156304802988674036165155475420718944566583145439300230874595304872770876064643711322681658821731962183957291028114773378023054166590251077682911121091485965904758380634207395897688963963114141392642002362131484151184510959387970525210701734635833739972602202471647425395273879366220304521320449476471267305861219358886538438795481800920448335562205413442378590618957530704240692047471306527223835994345005344103258214098708234339931605484736823648680123533311165716020260740647475249223449334611885559379698996875335344930816153358657335092731191441597339799490786543214947673975625800880075222549195057446298850634460568696547163235642277137511778312122744826164189331844811722768235029132397570327688724285704173133326153305812650318550278812685668198626872200801763628852649021881696461888619025792171262649064576802305989769116713408482561631042303016676928820483929257709569061338925711452366169174409176332644874012927791675897366731715569823269481177060720689063480262001679031138991071208480848586362723938402340623155689895181460648790210324150824948855762099483785955945049426499164282912632096657780051313544997000696458947897699782298937663812665420616136337564150110819429674432809702847172958301630429145124174022425114463483638918996620771825996452755349756148973078563371006111134201068925244567966004608723315360029016500758326795055248248445354980039287054632936070363559737328243125166955664395148460554070076853024550028523628073059485896149841013051955575607474106378648226594817443860714319916595845362776436402349420898401434233643705450092052094524409009555142869011204717667084806179650624379467121955325332008934519412472921261907733072280580460557874470229827272249055066730972183268439026268415760939148349292165539089056707628649220283840334921900392169936267352856958698459391718861721027810213735260275930107022557770614362894126637652859574067909023718794301881020410318325497574650363393694017875030307678498818035353176050348790115009403912941683019313723725500097024173493308131337334598930518873561041329512808451577768755993234578053862619365358592608536631089044815231692856320027053947462868956756877066018835964451001968786911062297957927728109675115335015722565272414187014672551266288146689555367009423967003157830054939983106961147414231475473352920446830518184706568386100354917257113332653432591668339804256417163074092742353458097342138804154620393137557497719549459102657956095191780189280296941691293785993817287465286802282378053287876707976964403478814000493421760104864508872630861085428208653191948062930621425239248753556572768976689468177851147950339124996917220599423420470236635422551715891112211253748793548781617404659836713417390446725598621772232126689516823884476902628717837288339576032907629439427771236641641808656348016126737663590719928823443902941121692552665492287582507334384041799160455913218190823673711619390404326452368145313285328509110461713817550863184726746200081272849789889646990028245662438453609800184368988543553186506164215755454220289219899417835610437936950312986179290239725273192876483055421865170143816451931939056201293491520050365547269688971318009287908896017815469198486874934099743319862190393098055187413213823354747940903093043866754911248573442579269620169792037029490204521249050394786136549565219916772034065340504919517593944729344292559515167000271001243896827284041537423081538403419294165442286449423238133327353845884089799363078964074748191649395537701442231400558228541266377342964979631654434471915040723848340146995009044713077146221792920772079102434411151574003222120870935193058866178731903241499040852298295251469759928725884355193678212920856404930758139347973338244168986086643923142282031865968950825678948287286126026889043166504825319687483624836071610511405399671778198752361857678770744301879603719715251536523720271686875143883055164118208604860597213061121031883875322382801972661509986479410341519166633593194745037054212676354087128539523662324054848922420265964504675475335397497084479819274218949085888176871740061402379142842678882099240228294123358775175707588004783604353390581974098392097232537398208625984670425553236897366626409031855754305775717872089570301458132963634829261923391577221855809656717309374508018404607081610092812834789947159480319735482732959881030917140644303468957932105606636408031145937792462266263104884260579055346142671831212823768023860700888000115973949927956290466120809981374589187880188262145179261302353688253765732341161950744096580401788276943793608392608858040946473846932771506743890203780947827760496661338946100499314649025982393919502021897549327958733896738378741983570887144879123406262938051231173803920620880477942314498515953633487623138239825900490491317278502941559826846581362112451463044522238499491826604264608419408123616328263568007018337390836402780223953973423471141072324846844762289871779567614237865769342937210976588615393722799287818250996919531540132530780028193400911541802592031988968739447584022097419410427914051873377977727510337069222481044137953759184252205974845217094068127044706419459359583220056170016653268112636129213437143295238052055021080362566857628347218799411563133323170501397182973933831294680668825530534824061968740237326744962256902904194187357445495448646062723221033968955310980175450188663286756631270182824000093095349866540911907600199423306997654884768468339765201021769054900549990531804753936421390923290291921164497319149686491053204131090024610529664790061101515012642783038255481745041296342745078942268915766059060516461788994450074256573218186746633076294701768345125838336630176229887386732755930062505705390490905734885311482618729739934540769394678319661203069384387361830361243409640262853826630777607901674443528829184434956191975370189069669726359332030938536632584701136489951485749967991563676549680125636007083991509214399512669430273606912181425321752888447546324732157148030332194346699908046590156682310335397293961204788715346119240994775086451098118345940869322458427987269245059631259711723985426339460471042792926829525930509816359063946187495700009231074455683766817533619632387001413512516670116669745859469123490855715585001332362477856276984764996746152698020677984322507902494765617534679862032108980901639778654081748248892775357772059140521629393270139281647765809933980324965178581806286401358842030992584775368824711475610864189529746438784817659964928182146036341184101598357260621517075458405388896099067195730659988871390492727446776877961987737466549986592365540787143319692915578096890621639309440879890686655536916968789750319085138604353056272023453858385255043008272516474171248807226030618928425581494353168924412313432124675968506478618487731166678328505157884766509298428106334217346595439144824378614200033425891607904975487018820085713336831266078239534465409272421767711359245876851257462288962312295346423010450666145912982858552751077729386590235825858125799641088283731565799067555123744487817846136141822076122688840979844113065533702945384650435963088784351643603348964133377577395090365882658210042388274416431466229773819671983248158974651875879266044035644050254005935667201400151933582836878265383764855106280997597672102620817482361750245697585871709017404017031188162313971002851304206981016296415165857487578017284967065979601871428978884292450999185019559925038597092430528493120807764654147997969477250736558380461148912647515331400343557175493368879674515621489188578490809820657177051162105524725435789637972728512093867851116161667969804957332731684232795751565049371001209250349617294892453567958985926307104498511839205831652706736841954567410040027432661350073864793419028843206581242324316204381303208194717168456320491859142410258516521234363252334535897435439435153288197610400162190260434731791351273990972531742630253225148858703244779535355636187578478574712194413722339749107365659088301279733509784640612341121955824861643687823876422214529357580660840909538958543912491508062625037684991138088531295259502599850906458521761827894087557461794272585240174196759584057281891255702310785880815579980864553392948339449281149089528701497157400265494704859629037105175739111441001522709923351669172483579537864410534744763931727342408058356311249156878790011259117760613371887882816864424067257361879308603245120314619142718421348388320196352162411944841987903749527640650826229910497027060690214919754574078828712240370014895694109895162754381110929281856241583059157789642292618288119347620368661669455379760821940215640392879933255297860507063950515451187889449135972401088904082086961149975693566199576910167456794090513495598886343982611600897803227983347207814452591743660199855812801373365080353626232026666047948276999005467623417800361487687672956508391656301948891311843062880913936694883504902717683748890260889554884338716681007288076785635340062333324651857381317657737484816354631814592988055550663791181247361212121022253549014894774430030666352096132159120983463802902472994728804534711604719602485153670001106723368580529322228396713738682428976809836427133028839002520372654889185696119383126076517758540731654538750704308823414242128549171583307300050886825030981853258759406234004028933949325918596817199007435581169497965747210549984437231408046171795924683995679098415881946558162903216858721330803431281365617811857866542018327366231046829426637382473025056640149126144245142060357180824781539446742162325568278388310211555300051844916001992363268472088254420378316972134331825593454099254775789897384942188118496682981044815852865164827087422109250894907739015651472897942699078946610756576303637079304406298935239444851968895891487692138218042331078520012420891763497347248556378825233691022046632015078542552261794526242436440565079959422202374345165043574972078498515410808130729096918386892017028925988718681819354474818693088524546841234655608671761989060664499757396191561398627877263832058735725486848287523553177712981027313861050440566178202166545253032477066890762691452975083447463324296543981926500197215612840279280124613661278872930891763603644102461577736718221476133106126952926516057991634759232039616381196060153295879217174215969714877451878258641824101528741915665671468688559184719277637715960615507444917245872296813186760841154364890356072103414890602058190592148111095798212063558460365995018587110351364795762983668584577442482838341266987323282827690010473955610111166186389406141706054441602601066700184007287296723734009753086106548753589614689932398567311338935626917763531905847943133089509577934042983720514158134269981955309511847581351475192522003079189417892612338452486134082044893858768364052341538625461239335405815920375185768773462359444597358123763337909320515629458145044541053505272535826671714073964813212277420377592049152995002477535412710484728916758904440795454962263061165341058013676555469306682705432149573737878263966012497098076460538027399897706832209375188636738549728538899704861686822687258483306165467405035891837554050578977545226213785932734359598392363426425623201914891964422751261332837609700903518554030333036758964618146146739030626327006843242202116193305632328468078762062801648816983633705315394806271028243235892585342460526933077453969033234674030963477950733513488602563128456351005197749219589733492351541714237964274460372680547842870943572125495572644525510069331472532544722918964931295926608088824460368945415490106279262262149035308874903151022013401363212212661062519168107769840986297003944851827547321306909445916242884057932424612523613983691200834150299143019657226071991965774943686317984901931912387429822908413649303704924000828294940552397195016657083963235067638324223427551365001097581861337456813135377192503201278806589341167739829693695045978504233634213111456228817117064175836185030725281284192589821361835270086516575974566698374986449432425165331462658967143329779475623666139490301763670885169265912014525151402155101197315237089818097146175079510692374466875343609656097388129313913471561917833050826750976234107891871215839195283193788665452541766507274715731862076764405379052738011542921881416205127558265264160954891267164983469120035432280458814939571598278655860593091531587584381169622867161275223208653129492253748479282347651428395314812496111430798203166923592560927113384922892626038884503913275294917470398306639960817937068183632081289432237629402039123862619029795224534620689883737434743706194761214343985719171077278682214719900215395443724813410324491619989542729320498394691247951926747957722812576344361602526901084972892370415241766065424867322693984908320355498877468319912235314703059692897184902300687450350870767686535595624987976926158876393882031561027172999452970028614382790535098983989136082720428154325663798951251193665906766930235490270254935698504853487764413701074666342919880252750627962180070259188720107892312269705477387471225269442713521253244907758694186051165989654061495625827088941370817952386272825805028119070926253809710184508164127496866107090428060559385464018596027873712243116661013379426088702109340854793385616847890828230889262999804481367086825268475114210017287014174793081889943729691087150295807406517193443724906551461651363959711882621232817604388716614566958739640507201359782277026867091245838166118929486417227635044282685301191391504712515386896188231367550139328233284497895703698687055320126339456597360685071947258600319317819998058987608561359375595529910126494808061478371664471695072129924025974560252131075546502859815387808482652413612531437410110616374324810824830197064237315958863546867588840384180287118064457861759275625657583946962985822429041098174839954003621077802415815602373402265409430375098293235419853399853945420710321924771162873057703374701125874322493265842187609665042540390713706591305696500965153342566970879165980641861104259188093477847227613508526374107844231082590824305337999803842671863358712267468105845397991643437976392852063244689799483123456657041777364629951301795019141962805471824846135091503480347495646203280629046597683480468013576194806106662193787064669880094345582081525695122200545520986022308773884773532659100958891386363076580013869185375833334987540871680327353863627066538619199650157733166447214906522256455296328146149601320254443902705809674221369315988591057915374948443414666681174291574412002504538672102984371274433994966847998144606211647873617311592210023529733807438955524866237300710808593007842704563043967404000941214060442449789609559645819448098080024744189933476045006271742327848902583400165726166602145798082273228790834410259089707189782670593364666690782263833882793528287006246473620239790205319357061094959415009019619241781918164532646436327529519704888935688084511032182806174107434780991557465365764459610358120670499601445797098083537819727426418758855840680700772258050853663946967118154319552343286584574431618029183733892662299634214558065940915576620832867789483279803075994963434737548964966905684176073027858047599850235246719535858531272241767017147568809302082498121999157616390879606393821877055247265288518775394880182372602455448973629498220067575732559264204022219502095320161761368150714956220721309684149593605868171119021226511549318521745151837192375081751168292475454759805396369478894154472686925697824837723953385660673654737929040037014823829505703145161876397347809499208580786717766426592599467617419608641053847834597616089493689535406607087859224926386138856387358918104439450113128290946133565993147185855488058721080266777644876449300199362091823284012675300946718349163285457727111931258803263202419830928128195681662403000308101100884307655654399753530461406847681693956167462097065646010507194638590858615366087465009737772635202037802147136397687139852573465671670270945061976974036622507717895096316267557584920093506373139094703506104769528855575102118960296593397265364704526222412679615277847976867076856856511670154750404820490720321586465554124934076193872589120358909256507512021867894032304856147542493097105989447724948110375087383029186718000233615053618736455290158194546850494849404199124145213525772186398670149617906703943141322333724744700614713652248935708999097961675243092699415336882229707825235309088226571134690014832039782117243645274808204127062923597816704993294950808946818498608480781110217900296317351964027950955781676483213431053187657876555164539901960243428261561458921733053855325863979837620154260367185114486542409530418241060989062714234620427759991662655617161620388697044718781530795783154140086159755564207152869071723310548772796678477806177693685469342829058817109618039776368271929735008892480998592989005296072574845411040603891873211926756543783799102480878002706067289674935465772009361121922027640883987941435722888603742650922451909182772601011737599089804533455157701839920400011868479724883946156648391628414342320842560636767135007799845477171993413763375762560289147505467054337611882905173377597389348019170725660486695231288190320759805901107815052289683755565304434011206745591938429110539000391980932873735141173641339124465239366956424426906405394345360308714527475670793158211838673116955250309684388053494123489761000919009081810215129119441172999527975507249769946359487990667927429139484402159559503174304072698364013799207663971641914523219020350133052649682285951505150252378365136422229128498578035424738513567711726056501582329763137985630074718575631189622078385945539917478616837355315821245631529295360396446914459049489401747571569604743175848626913363932317023927100988731142450470015135312776583131982648331295344372124648026123853484767468699283771743690337559373662825025298572343830409954532375768879174334545471139826321719914427307127525690178925483638338908157300430696481889805302411735410295955057944117171293485714086980267231933209844308761886932435441897250829339117302096901057201933411098233994305720895513951484838111753759389925269939771727123514129082234200833999704756027549945355208756787040802328415243606952586593851687032865030081420042050208222382113521391865043627782411761765053605055859110406924261033745878412940638005912873661914616526433060063481677379832203065196858509295212980284451008208348380026377766863154535451812486208087714947095598862519693681184913032174451522776481794780945408265972407897026226409704412493984308942963780466533515345955536177241477244981794536199175723765787846470652413973768803842210491193664310264741800267192093134468639424871936877510066579076043879450655835744673826083484285304017901294814552187561030617093832201880606062600723115644247416524659339726412811671719651649955133153085444693005576876845167229425210742680135031238920011116233109853357089663320933355411233438453115020160009321687248539562390079987592960477063650383215716527223337249626539178127574330573509807221421515542379127550729437703729450369877315726029341333953114787670535160993367257531950554164250064892055026853657063437571296252476265113056809484169991552239342296647162454359185173677598809031742010675475423486013149591920273675371051818765211910466942336697952662055968801997992394377976961069995977622839336075643704091346148316294434010678327575898827160459392739455103155300846200174453724082397563631767941179360140494475275593651563323431260283630323391441879918837710280212142620747027264629001977735134782502699113516849315103748547866092557555930848206578779129715770458198243045159654148297114855489130813270606118846354829094016984700011083501783882556466602870448833630893953785445695063435932526105134346740760105637540256759564855231703064346554208264045403697027437821885472497862361782995163587981697970134318446875516025760906952743661865518711590424306880429581116044449934055004395302640009394361756600577249243256370333247510248923229177506401098928274572256525351697883638404817251354912114316122181802394105390976859888877426152708580396749181438763772913675780821118292934704933513342614820634433238178059483320953121735577327741509049140584451093532686616598170263367731653877011354625133051015190347863078551219742058389154688553662391905013686101762629691733955997272955579867483123121542443202230441147839591777811865294605679827576062886863959068691942910090818244526740575077755917505291140268465649632147437951556684408451166039557667580471880605864156411260770637539431516478440435713442058562775577824486177885664558725204736717553961994479182826038001180086451173864385709480734561342691433773554346514254805467896115850857391470797388041509471004666398901658207938428849722614408635084400047357115095323056324327189877114598927967162563634678597266191389672824207681332675504649443534188213498465794548783955007166231750723660704483735278675135237307056617579614112268848297268042159565209977600229393534473999949053170010040352196414322598684877026401010126634254899962904915146963786984589518817242377499761147526645151301699718315900345190440607675860025400407791055588469703801206109395004827082025443639425598701819336912757612948090613272305576435226507110303955795314833096687754441956186207660476291096600850609618919949563077266424708438104423086617749731418260545797469681014565431095952814697805163667182617014744442703135369605838239596085017078063873381097679694013442827072764502230666843670965571105747530716824181007198391017132531444277409979165964250666982989895043196270376118207566506572964178893014592669882513716844115088813820314117018538713023886520341782992213673545831197317034498413601883640232720925722474240973911204042498368688085719515931838037909016461606722540129765015760465987614667517790334418137509697058449350395759341610605948140308881806599772141770348435220962364024206323595734851976205563478428060969945939742890747998202553186491284058101214179924629291457475606716185818000580384278651907474518236523835006007390996546381951061601443409684721225945370347231375665852540028699303230243978128232365366990041034971201973705082930818274306231988230832753856188413753788606609252791067712297892283852831586883322732550688311167220724765240381042532904777789587030827454558567491001916414189115037666410849272730667141967283570289919867427014212253233856986232767993597296489698440253510684810366313183097218869790591251601530242994744512173972671206855244412533549400300250160971122108430430970777897436943103886028811532518005825417012697283232869727296708512675054887914043526936133254361092869580825982421882474414942201744350125016686191698908496081203552871856266704797517777671665037610739092310381737298894114826262103143176786885554693215635337219690638332649512865348327399569952016994210048098921393379638532558312586989347444464260896258121794378061625624279396565201610263317767812002279531878058225391684340111027105036792899783658024639444563868114524695980156887139919353377866641571564057184653996474592643121509160817432069064057645135191640678915544021593440745720379817315688383817061551913538561352006070265992109668519977308225338429515647647949104717755965279422797856584492495496520957051883151762194304513912605458695192044105293638050629447287409306185494162782694195297284650259688769940564380129633207600388600883526188380743180907729670511015243812172250183473869544981895289186818411920084886251418540912872881135283694737935415989731719760307941859992267085797632819733680200881559344933480845901197545000871044657707135905417226169397861024603177380713262006563486504951886142787913384423774802533141668915627545059456350016469716466595990036966566663445491504343179898281697352430434415077381361906209667564287645141296646943138677729925786311859959832889542786544366876103259342518861521421283452649162197972596588405167758097632164393816199304991674817572043840417300170037479637335989596548935433363493997749729094614693543987560901057622987290613454855216349765263237768843578425355719429124578368572692107530352148224541407449698764868510919310487878362629084541440288321579562614991785091342291393921263659109155007851456906614269174196067441621243033130021976759398120150778839098876876584792090267018932787241424211654554539081230869028051518107627454777327246655932583055259828188522618093764985057961488370320355106522137147956957639179233244816462730707043692831260297754257012053757067261980653864683172589135529233329349141269156285954168447082286162306334893436422238275896661794507650073886875506029017724128391169487412265218745125372121437869525593231989277119319558116935244608356426823534517679567212612946236714764482819302331801313017492033571223506187056716887709720606615745024575051476029203613000019313678673819796156875872809569179020203550655238713969040626674512222655675601546604354077578412292714914831120606378633248323837091450839422816403661262499743090563296625826973281618634568067249600753167573529046202393036518335823212158707431434068335143756469663314159123974009351557987894649779680713038040683706230354866175915286744314230504258552575934113590374425213459304955260167985761233935730798804929260533918169300619473368662816023507263129681508650433689055811955636883479286252166716785403407478982370746774578805232856397386665435297829216358671080894951963529990429498717245329846583805558060552949188059282253044697335107907451271031001078908847560177730753046316275244162331710061972079786677764330671965385936324140164385288798183620366089194592390405840245829932423792278846470116538760550264134180226651862379874282680649370882319883682631476902200615356119523800154508825667235481556345509685655233904021537967079911036712994424317131446235539824333739206593828773044574713498602785884268439459224166171765977173994554447221882804858930933139047708848865141125945159982357003695590562994471548219411451171026724786104051255676124140891534581318139172730094663090652646707933261984009335188429441930152102967052313510624806720725166746471863434143255939832944894863117594481754367053897237610766616156563121753524476410861936698120447943774158732354450004954676846198845466198816783313041759768711777332164423074120312339146355960902388642076689061873349128385394114462959828465930312643029239838159088229905941896324852981982013968401117120718662413526272055972648540372476624376472130516646191357004841326616866492049530983986903529741010192385283958123867090236936434814200353432474562599173455945466824735283945920152497512940367100673675644044844256420518930685730660993914806434002479337472935667503914133268076560170241332221944447820114397343800680475136758098648860389285082465301570390387341049744908547966353203532800967155564055665801656509691016717778258564005615755028642843973181008949605671827258511327392002766185971795101801773737951748818660452089580788367691310672049257846969122811907548222545933976297377928475150808698239278537544181360366509855374423156375007019108982324693508363888772929708010548427720195191574418147878007938392961364435729774435600305257889910871382145516498950179823941068287696924181525895503310213281606906754238288866105822800537265317433816044947709289160380174637014905074494943218703016680641960766422128240493106582887607721316132485780491941723715262205089420459562650838198677511720878892230988775939102950518779751458601097156141634899132299126091866845717308101530075306246868678157927260354385099426181836583460873745236975050272405316425580345467130485206616612466776462125068467833943923112300469873848010462647872696360890229420198400369958675820255783951688494516618897647333197805767548759734396034157062772990565576146237475745191414378855520112454808717711662885656619330296689157135094557374375507613996201811369625529838493251856581414428191700893178134082588189792188186864028182633582609373514864370727489791774636297037951891964725861322016484032801077608068894591305494831511376157314528985564671647034870147713701000371707918908277157277621922807227013018900145983237540336773726236652761485559801109791562818455404951863523748918949937412382915118077193341974262633608810317637912348822875733579525752725940295260626369511682821382760659950878915814917066546944492366307708793345279150954813069626907392212621025414946032474963271206349578150304445644325984254665517434253224076145547024955050318401289582637129298798339652563136814267100698714433677481805370564050885794720287349340560324698471661276810764907061594805929990736863829844931075972509586584329808397060341828377515776388079529198156895232607187699878635151720931567613505684339944603973285359863365451650007042414633153486955906379441647590630904068582342867278486468251508492212070848657268033373588669922671107310151075271215556015451167497611222285161835214671271808184715388971259606630038758919606319981775332006517736426930753804402078957209142284025421857221876560326274409995594279322854878172869637634834418630402239827006399477830486573364347306925110046200089374666700024500909298274402783347907460841016745007105841475021560198491401562837180277927127611056990740544550455116438392652072078766606100118649768690714883522865165037336355369200050075582171884155109673317214158826172723893251873965753270363168905613082355573583198307970879941355858869276421989934424875260750970866537402824203401144044807729945990940543441572868204527077203180163694315238126466389015329789844264597376530989536487748969437677119238450281377339557885270865768632753892534818212580887822337341709706207729547278317943182387163123989476095590054476608869805582117679858497214419691505493533977705623119606667577641543168860719998076135642663002752052751254229410359730730128083306804158452537468557975330369980761208694364903712882323102125681774079300244908444205425322842871601722236148430481809006667722064455902144374350356341852847456020193977068517783541059329306050680877190101739092258302204828478273278895986395172123618328697459105526529609529348693278240581430107263190700184581156464021984002894687096380300224875545385369216862837532020590758762241359157398026297256339823416515901266180166993699074905530073079522825078538849378708686242709192752376394554151278828635496217285126099927780628558396597151469193173709125313821356347711271949137692234676606271581550544916398272117460952114047313327714908069585616489309929438723307860261873305866242020542394341891923716819544044550276129188642286426731503718291114393692217295500695648426701545774413878878236226599793630791798423495645677211206443386586120036107914190770005101730434219409486386198324024141312213272488141001024383712485048569967436267739470365664193045058645805714579998460239040981299474742008238350598083345358472704264649231364078567634792656400845050029249602460133859000503376939494809295831899976051106221287828264577341364517750178676724964025636507309027086644972575701530341784575807336332372096702998119735195293778798607746514140778674689397622247143123325322070543856229723324868550525671334649534759401691213718780032870945960582682400032649065891368667696607223232207483517353515830585869360318759678398677522550257609584820241845093073266497158068975957358695281243615928030996939945634563774123924773958629809432295434630333235336974129971709466129745189189284500826714936225498765604952406957930935288574583525310295125891534169286170369087446199387719557555929087622264913751500303956993518438629195221088388401847048113524446168955313953928198244499966693826654890359384157216803058828519305780483039225629992469053563517202649993619530356237211600342512787938868910433479403643495390540464672671244298077368113697147848851533364393487774320749207887283496685864713833876977164807689805034433721376502114241583374212040638197643127694634768508064214143242850759431946223848875885585489360855888981842760889630608634050140297677892723531853008816366485373274062120999896754244649348515831488772028222384266942265107850332553492729506169506795693023698694294791776720162211989543435371731702871745872226124604319391182438833584898848040201557792953781699626194584828422507330462543238750273942281371258290460797221496150683820312782298739119370292473604366333712965383276703881504566588419566570340413828590862464872367898052188374191610667523168112594682693089533542131639826528881683739138118032112054703802892827735665562535652713135709512374908249795795396779820868003402051853026972918339117114894501442334719069400870554381759422613789618615142875120444267340446890457986145385487777546860920401861028047051605511177956278859612678698135621116085238426886334407635917205157832462174280228844891075055212290612180645897426363185796012261368420844757971383239993197700046648065722388491440481035673833742287460915931833069969743637535579264927636917841590036101479287765227385687716996459929085932853841497509692742826135793006728729464462083530567857312357934705777402994965496191602592305338324149296218078738881717508382312887987222759853173157688916183238396864339474008373804701156289687934390405704486025814380992637940396962961642435402461995365450280833572359451764540553532131472276910586282495017002426863570746894193594674528734072538174870878010734480338035521205069915174871736317667697811146969145366752864995072533569412738488791522299838841452280223010027316881570016208144337445718204940528216825049764270666518733585897842321148598728575706233393851322374496952837880464802371503831611968413931216155686288700256251433469185226619727775998089296400069916501734144776799491862058336547169511353119026670230261238153719930572643242923367872061229071717446216969400607284687619919565501763130637113078893512768393491211670950959901987239342470843254899770457038796976285161810424754536384426962390627508203746289116495375660379394134505212426548390763235270301008743096077929072031482373926889754410752029831034438871268940950829479015404211692356338598282423737754765495617892484728278166504165692743274685919699723728058471213536033375498852111559693702888994897894873797285406754052827336476895437672535834655076324800288193068884805928088564950789899628849602485977163456044853878877661011550877720540755650395333429314802846386013868237544975484034760277824572204977230675006908391017012702048574497993624020384890634766699874434229374597920237310678684529987765939054337956925252299822237361247975543580034896841097928854930659034188243389785745741070142028067231124561978023456104085831014946881752611885451963882415983603498066267170980890860790556909133375855169333441223603001085871871518850827363468601363105703676225576649245097127767075688372292198498405233304206152733139831139639080116685001201623351622822540369990931980604501914492800536544121886067227542738149300857472026355795635400634383437916730367163729024833357404803840526032503912181710812998898253608015474731305354399543996083831299213519416598937483549948959663792398370721100284341303300863875106022663983792576630124483956312475536949280144789832862352688546729705487360034747090227007030225480740547984085437413345783031537544054088716825388634789796166414763447273080288803964356440205018938233476826574370002295089274533314201195247148351871315285532166389745357478334122575584071667423725893344815580701559841366104619206633103290487855221484162095589778794027130297685751558971818147233320023889314574878439535448677931958101804042091534796554592455299629620070367056957191120140037201951591178976933161994775932011657337270286812157047339076775771379095400801882389002299612130099404305762717476420356822884352341834862452873232573709573429546815368401329708571410987889445502255137505153468010279877036845181582751910399901553285163820208168805641093034005031468579309948591323960967991904155222906141416790530398079611384087911579212841424885641623439289840639187551485769069699279327939061535151865363723788989266840655034125711104128620999315985110216628760097678100706646945192065951523103708923509351072012512387888191372215849003650546480471307233805801916088087010836288881532882544124167876756263093686873680084941502878473456972852934140374506619929004760856944239816631787314356141823795393763572236046709855576789765912767147492531862754440175492035110431102473284052808545285506206770992111404533160387328628691547669338538703889047892556583332870146227898190909071383997268240197561219309114476977450811591557294945005679390904398118112985354376784623037462582292312987933157185542472396083566697945762887360113887591583482203920787698317766614752601983905907428479181358849293883851403909912161231316684130937259714686489141239271845038352393670116893248549600634887221083898791680694069780735320226329934491382784171041464835051674498639132592629825984948178406047574795284228795184309849841305929189324910575942824857097893367311944302470807480732136828818924593328680018317124699062748525759794262843856979256039850017340054465117328979834603260038481695442240897287350530414243157129387926140538288093085409375483384250574522923045563176911872172453015476678010768070410879035337217096143151676258420614110795895430128831125178283362735067590979801617241936926147530858046509261917736277404615332755710275563751679383846791205089585035756032831773291282009111333459403524404147489309056450228757524103154489396901532846815515963110034300479936822208936253832427006657273693972439279633229943407888780886025396158557101075687794927892887343524260257384950320627624105411810356027269031456839897840347912329722581007188234347634086758186428727061876411092591649598143531212741346177550170007121833415360798834119106804356426133466333209255109022986493445647926953632862612035653404249747519245304288030703168197414235389503726833958662432588989294694808681743325042570088834443688216687862941695843655828684345494966856850353036742637752341975212216283731794850474374734336064399172323939506874890256225023434824797963487136100295357670333384562655340077175360657468180501038603995618466542100790519710548696076448109205784162158608846779544264683751853833758914033001202254284117360585644306609952713269231762576566617587151188185772374290471604397405399335973839178884338745470504444537522753089748372119308106671614805467841672642256242452637767242321767699373829185892814840854431192267026651829171131476678488119515312474543266741654869848352746407663684917881918040596690665595143244048461040360572737114523256364116839704589399560227918901668795385855692893482457691682175748160941344052309663274353658203776652962341830979822204695153360321808953417102866894598204655615177059225421166058075047262316562022703607077843038474376786386418898626640377449232248037760793486961206732818972758456687056052103845187807582683827526756691760098654552823824523618572796290542031575840737785881208708723288845926141033657653261349384877134599364032892281596169920034061692097590499858369492420489283810492795513750326235477497691670467165661180795343503967636782610380301395832330613995254008425715418056251396696674829156252629947262233792245746526275895017874576633048976436920338141950546263868620415583679489368076888429075265099922476575839105118114202140096912730633211576169197730631517162792035877916779553210897093819032851804291057060770950665264267497643456493927664320659777736922127546358080846101923257722593757520848793242679967506494405070027327477034602866959887715210376962215564752913759212293101061285997439838904450283065920227361014212415219956410239079090414433163402742887462873687767239647201055171769181519598832324188617187599180579204606525295288615720944581283285584459745148219914848034540941840609330820347712762356860767054424122734547454441668492010716218339312511102372831898266918133374591258195677228829031626409711565608824970535618399239027330610051709896056327002967670752580271993032944414933979373652956442071557930606834313828209716693754871373123394456608813741694733252195364493286968278879454136192566745483664874859820123207397243723044415031427647523872594881614920463458855605578008809592865457809829031620652096629480188765200939585125728716332401813386737881418155308361434347432925867135021900363073805115426449418751603192388190182433408490782456651070183787689145200094886836052391193869760843538151986329316134521504225150442170408672788671938830381153438686488295737944604737149026155562913688686788269279365060160509581276154323313644717966610077964474055370489949416103628681966640840412825202347340818983024489076720264436254546299901769442068936165737654463982344851950015268612023457156713400607487537212119053064987487848850929296582467599972434073888338992608954045355321720250743212905338452567557423108719239999642805473296932495824397721150743603608929133908088577674264421900372514070745836417673269634423406532550631433487668659098515877366846222630772628216869379450449189910861876285590503570027134162656139463438086252882318449008237429447444998261904714876298358422824381147220053794113480776400655609991868667581575613539664143589112016190875336244152903222897828822553097290968982813026405143273750541648535055575284699013906065293897452627164534668173956073153584194133704486138367137852313749941961580751320040428258430842797256289674166660420417339504686850330041700859533262233579619214935286378141094728970646065478329627753112395237005451810177847913733762484658275363737335758329915521873711700484040993411200226456966253492058531949892558522261214932386606227111953471708675410157662326134290035840305299601404254410243926693899379393397079114285195016141453371983066405309705903393952884830414236903223761336664595122836059748387218268348175361778888224097249702610583429667392620014407101563717248803332971109656649573639501507870563584038651535661127493055586645799909277639319655721105092767032455506567573626026454322459392315703519651938040714329240035706824595325421061852070781485682850931989705580682943353443685497180365698079592960932227748927640230717188027250169580647041658185255887251266106319634425226351707193112815011196613461463617941009207178100823679175637527014473974611233447640564899805423296295892681093893658071360632263032918258675966883880640320811363079886306772139032057154208569136522166460214995498248526272083080906158386956058001850555609837947677413741952612870485826926905121116170867223736890860498909705839914203844057273390640132783995830602654309180549000850669012484154351281930173086946827594291096981425748192620556381948265003253205306374020063183407965679041820840037318918619216369737715396640926978848190485734562183299339125177596281532799225785035704964948530073632704840839406370666183590256920488323087190602965359807473674239982605781579849789549761743163579634058659682257485271152572856304375751444252410953092772759046889390601647956580695876886869954433215436631778331099264710052591946015841967912676920728197890618108633600586894784101986578492203346803216910461779960649780010978977738846936618280837794447176160983462865493470942510195216697180128386826308500537662148754678022401441611810717388084705952442683214473339644972860337493424934072785935921607510725315983503454598161299460922842654795705178243881596303192121517711592856968205699749870915660568376439530013009346692805122325570443682029314220492224060817504010585670291048926222546225925648022549775030148752077655079869365261815734422893072046799199172322897813791936300858698660651601847970384680859791364776797910742755660281235988435410495921230439305744130034184076761128745447700920101327950121124661836509905270021817784691931336522430654046384391094344367717113694040394772755062498145474832360480017784653116550970271192182435068480349758478334286707873818517177267270485300900011271927626193256974211845511418488518490322563843327429854869258250797221742016112704159265119998224506630524711485481687177879207906523299226007001732427043195131404579373180308618344745877931651976561300987722370621815262914145848426435438682871822198355905404648578254361377425744730916210667108500564305874670335025271464954052495489101007125681634488008669856758022101925915685905062894818624598334006614445447822214618007302408726106186758014461797852539922338397125603656917027335589303392218774466298463160439639032364402103176633694518023972184063427343189527214407004736656867740343678994298180306949091980364504482986965966031633347581030590833922337850995549753523159084347581068352869013447022753965281940388330966442225073243554110659059846191065265322882390938233580884037815115391322657740648949360098658201354996009316837184769645123671930251101410156370264822275372887672200741426826790986644466544865330176303261085774540647049032985182842478266847248391550988893916838262528089491889942410100982392304302381590450556708272823570125917904437902775151960373190026637365956481278154815372248885911772888546065503561661257990344413745046653158671823574767134608283368712803379431007114011219706051494313216315556904729680564692089721491216955602655453874859212109246183059521272469596610223850794203865619299369926714853325486097973243919117250316008052918645336317253469973906732647830315524309360813438384330738541749325289247882840219113018521123189524127225139319698444240920081870906522817133195529579923290248655638146273689386514296027971824456839421296638625081874030423670386598822732109501747246725036725971323893068555529967885701495022120581103259090155301796923416643091027475867092225915773768698666929049412689272422526162534776398646000678546445822557984720857333379662754799983521997552417767468109379872936312636678690424460944647557834760241887344926079380389993710889455878186936239125276651526183849762182809702248072520514045614909236499689044286199316611213244244298927788743429167656086458314694293228771315172699519692349209349262045358692839360831656364537500699793069861633314039710670382293502366875548646112497834688263431262042013192380383676675316298075017266824690293174624629687910740863709581654237433818866035905389246561734652687616148079535722206655020381048282156628667442596562789735299636017317685912899251847450865603932567224727241268650104287808456051938146135409023065913848682289999641398059766061768399508723585278323604539781770047529835816526442736616635794938144043053196862451747187164502112099136210524642284166937806589203019607451628803695495703601149633921700843237685737137272284951357656957222691767480473910889690858789835064794624291758169613338137398744937549511193802724287603986547390684595603827805542033296972590340885019968802532304207900401751703511695481265139281110678940141258811038137467530855925869608404773662174636752315970873846296660013889610865544647428931033154734845549469615809804294937214262721265982548259223830729814562167217685974174600581349174229050953128857509743311256436517841770165562331921064548613007032958059042810078520465050165614633268341377713574971766005124178118463672162610627491211585600457193862812781675351003560355112531948448639334123430233476189121952694463237837044774964937827016701734206937710769765375995547920313884096726907795093005431075077228514964816094173236119524729702395669021949071029060415563731723345735455868675027234557329021988864226069776221274367585996516129432770653505421691057601550832096730302719025534475415033134507361167573283994340273389097443328804727900950014908820873153410525509872720469001436689695654881359616973031846431112340460076665562033951622400671041807155905161495053067304012898060880760843204769140498893616406891170880785211235542213866505665879549054612510688211030578823539440270129608558259188005566475451024429386357734121177737278988078311209472554288356708036336490979848650194413892121810654215275133095857389437246345454036510180923850116363157973064182236360178029820302099763506538727144022760065181635037626132740700789645732509981304079923520982651688798294091090679250385905346939622744757918869060006137316432864815613906202895403382605857100428160007040007170562611843372573397417949410880015493292602882399323080494457873059087863660633130682187902282487500605874140837654356247648187092952115810364480190930265057538189292407162955913054003580501597150739650591249879592223495315537090664479361501721100292554448180103215109725856001801309182522351027761701144325343604899379455874387610873245797321387075138430160450127352771635688051124458895537532516805379252936153245807203541053806961746061458465461410874600168225715443729002131210290537400228277086436090458674381781125434228727079335631899111131096923111015408839405567490031102371311794060498199085795124349412829979949603824740922336159085061660089114968103759384344213788273294931102580868586594465383407650136000968239375460421213767020825349128562812381011624247032423537989822306367448778170982797017219222313606930141234360921303507737747996082295329044096815263857705441335779540799199049741933652479143606921814306408406444553615388673521650592216833815206951286582949022740883183114056567888296958805847956712305710627641860135410571226177714726009380657322258949720942811161011263135547507703501103333143876642560995437276964648818594148090871175223510786124461029666899563659996178140572672385389357553037622458639654624033904368457107305220354649700017300993634694064832011300188491502053446147520111544394200194948288330659448850991360030635587054354359540394293856697704125056719806863101321857933299358873710445411930422452867334355065175322248549022936641810748699656901599980924902743777994242817233413432955915222323296097139012368199032691015902170777879097632348914142049931021843111332839596374477469538361766494015487661141916977851399643555159994220253364852412793299153334871953320982777650630612058965812581953921760620366335191444792373092517160104400139306773628831723259471164739548485800190301484190157829849201263707445301902002770883296097289936409315299844690600019650848484033439019731696816244417806521056781592219716615196510989870380997332250893058097882115220136204517452043544593728273684547151507536349300432627445379797379052915744254545957217921366417034408891692351146670210159668472373102174247025482625277516582263330920858162065668153735184950672458447674734750600874220066308103212649573555731313331773193919320880076025286459319030667935654199830336356159209285122410206479285542431325134279108493932830564174008879224285744607091296827086115163830375582772599513691898910408173259383199793904239979107487347767604325184103312449920760224448032933053385860634420704180828564724528263471596381492444448920234032036238171881262639666800019720972721653520929819721482080786472951414534590832151039870131531175751462465493964878138802873542587788592439165891981456378271473675299541502510269649097020213554432392188052341797414758024887082340007581158392313204041899762164666522594599771688472857056916305405149959318332433977060842857750639999020437729602903372388154984920735926331868292496490398826064804470081367047504365409140658812770678931621156280940719877251881529177453076199629244757150550678820453462116879714063992006390328297078248375627890280017255489338222337509716166444801097867249196168880120711458716995251599256124093566995869024637030337713884319364084250217841238713860069891125525273147742039820019886040851064346133997319534260199716952795206656779869120244205379074978727825116306815831074502946813957256860274618576417876733646189839799538235571033698877556840195154250722689671653947769401864218193387662746289681730138464220227087948964183409061988265520713473273043743542668219172052677951166692217388490832084143782735813756326969071357565167371928134688512857300216619896875781754063976122333432007863355054933414337373910002008040424754176253781917405581861498372470677169599620888739843470360863992432091852235985612359501105790722182594662599983695403920675071361897663702774241207015429538166897301915185293110733018292883304661566784601458315708037925450895160371574281621650879102249215643517130389891537566561028110716013459478195566233025966306920642374874499542198596154350825704175496997387035055613478297275104713497592947267147462195040015461959943929878621527037108576064670400426642998383512842536023497301102385805989016024345648982850488114464339256598600254702380654038920020631428923398224665937351131279544933111634416127218286628919687886618753208723443624365611995648193732611301110886318186747714184820049214523516913232594423425372758174797245913142414004218085020921164251506250180781294671418023342251209956965430484442569176767601828653654075260364805775091141868856577991385295607462660883752167086125107424365609488409880877985351264147142143889821806021414834480497958211424574345289193661401878939900275868226461996876954273914666878172305935689640996110473065155348942968353748167781931829545943058250551879190237989547515853976981187408822777839542064546166638674037584298353766721938915726932510787774926113235598501090839173879486568012841867132529968100734163954183781728028092654914431722251610864891060677887641813449146950441715873058153862274503861514287371681722862789674754069100265109218743997909699998323847081183951563945025837984332290415281866341549067760155644462647693419509272985737081240981741031955766289339078157618525852688520012436427576503754463633506525343472255839371840078234608965758131818350581036444714789987465495961631746298057518375292606739704259190035444306870310951479062912412705229705304738808434459851434040380768475456002990668071262320967395374575840825779159760760602783098010092753581165031583492733098011608092136613255268763180992440054216094852558417067930613327745705891984297767920496291046691300301480675007643491404096104698588709823403450148558850326660894405912294397694024402869358041292105436038078149236024599548348261686769445199848591494778158695570933626406763332829316071204741693317541004106478265571820569971887908379274526134103809621253832849580572849587187263314569360137401588727868081261289957368850535931052315532625473286590913284004515412323238376526176698654148219148058827080275754507911281840759871207818439963173048303010083039064193136600228703315221764805907455094380597401169836185405722965361217882207581344347713669213267945992729872696623052426176103932777990190166590061832760505097139287847685380513941918369892909066987080004778725480824530086099945377763219088176897236479351292175230051769462746260034313047593975449887990118831118904880389834034792228624807469491477598239836695069271799512830447294558058621401814327904113203510626601387594147495705198184709302522166083090395745332492850801447540078370385697888288653163535263743407390582177208791567593463931207144336322102469533614749013954449725200770281402513143838205569204479512236116203302222740561446259709749961872334637415886325071731142087674345617575680561798062788602636300659784207133309710885050586074165885771470004428752011358193921219204616160472183575019296717891417247964047358956171567661365841559428925415973451338381786130689565603597359312189601446315009655561294696722019623785677151997471589211642843920758247518999711865418323963834608035208348128061701029570150655310526381372480194144890097523837593870357456698037319336980431726219561259034990030963991413391925825562166007068483978679196952062159538694572741150960652761603759240079608839160169090650219764397847630871583860872931478913526015907354659640383993896770693681525382785990548443463567554035285236357259500548270324867959854921943166413759554939858011511607042355518181130878570894273748273755385127869095684147231332260247185373844871183852873661704272165104884730454461651417480685679133112816413106852754272564802600284366787770315029874409498056581908392446904977895182437213048933422510057321620199544962389098513160566484790948510786767647630174296322213482092126655536534838272467111702475622128322248246166921898153693424165746713589368875697807052377338258927764593088573617736651842570062949998095894287088973799584756191721813543422884177235189361652065973702183836616274816015801556640345920841512130442576440852633345792886847797930139278636353193034017858201614523408618168113986837191248819538081446153887867602707510090432681650516061268057825839907695241049614196490607645468088919015219007601321307471674792122783352313854036861656246830939895260964321865595574307139921446962321843687401159722059311514675495312820304360280639059629665064142305309190945177855409232071713439855292575555799368236843416503345895939506845944808339348892232860606958436470586898816533612461517574130965198160213339078815590165152524743960197190453554039108048793020479887271523730966477912005429152501561396758252855829331183874359398134044120383418320336989870409325546582009848659116359006173974756730789427555607074369165832024507195542269587051900659044960072268967079906236015107545209731081493364456589473218429003196355493654592301828409205675857327597752201271867940699678305034447735984701286037202086973536487979235485665226987572634718055720724380059251270575187549525887775977806760116283196549839105307229486318953174646514526457390399456536691784302900704530324604816615253985266974080931322673765130506960362086215320810460941122847862009162459844812344269816218324335501372656479969929160918178941192951087558457010256530795081384785809735799487548663804567914350717984765983068541019450116985888141731896786123023225739252607182055265557095022094834720469414490166965441759790698967945692469147723331954095449459027396277493296075679332063653229318469731715080522848622609636800034920948098207107005774982047910673209895148745472582437562745113992568349808983457248345034477621545822878559032197543582551787867345946440700308927998106337569594126725626516588358743654962375068315698772601596073520675215124697632304785729442308305802518089130812902037785460174829169501608610079478010481156560915245574340297703790450115761905025402480104637554925500238736519404900301350460498135448619965287293186844951561468738589665819606947919674703618392788170950704901574962688024279942736146159036537021604974198402414226723998318327759056177606784854138421633904720751338623947126489454419066171577678999076822508822693663666265814407444104801164666001725381044026813879219575775364361514857560869808180755659802759920444455305902324934356766353301669871477809862223025257290891241915634549138623593296085152796852641478764874126768308021368220619420066578826245914696998714741061760360869031107536190994419817860126947401266325499620468568722522696365747281435828194735273316590775148609430826062944793324980600749455069805861414327854847413289634188844089094624702472257839725136938006253071419000737278642283251941615075099517178156016114442115444022163206900857609451774622314053181488473798769418846824573012615488732774289366667694658175508125875276698603082922535952114342182764568953968487568395057392560592204060087347037328501980733391631910805860900097438319937491009716316283644176718052749164360553732088273850627892248517913480782090378576467264028827817060965160109120783603019369280350338914681935330414430953608557553057230367983830903226181641627230425343099137964454787322224979513524308596571682219489822680872700182114689198676281912518665668689873622010118117151882266441638169413182265924913824628144958586150671816000790887614242670497774560705433532890980351662113253340252683060964677401063493195163582698995850692077872800928869853373364161652954890183895038747010906674586370216509784039231737332078469641131232058580742221613088358114995070221543709568043796553665671021823053210469925577424187229190026729115642453620229345769330103432720177720860447954390716838347686620748023334970008316588270691517455943553717126251418122723643848014403431919241458867508267537221629324919287923136704396931726781508353483713700636194428445147882827237709296168943242524381491907973008019438863945596781897022731139797209129241813577055178834055655457510708063503853319403007647906490255432050687485909449463722010478393041633981031867052687409088269430815708465469792031687742802289114562568811056869234909663308805270398153715219087793191010194231590516774110837354860697852735020083769909673175314690451104552148127851074933013680219835548642542393175147199149078029147447678575106251465692272029823174969020653460448871191001933997625815651973417175623103451456353652638036589693722362231611016862163733432066822621485471448420045844011180404900961491048467690725012786184639382250732712839577409761589788243402402516563065163908955032774772198372202863983851240011466705150209843923324377450364977930790951506545017002076870401433959943758349648447361995653492740364422053221661210463689209272716313949899789246051202459256040781986108529675416253121373869308976763697083056383778335254987822939107105803433218689690424894624471891344694400230312441618484654265198342024247018381636769550849209967846853161372355670647367281087488729913399633895548964362756153920227220430148962851678191860532529231046749887082343679020261225544988782843340298336603228554447062146173197354823388276698329295685481260904837822703232568704136776723004613740337190133544330142637487621287525337993116928489190867475281509514325879433596904351592868988857741438496575862671227098289356863454567357745346961313171195821191422197452659942127097439075187606528062185477900767398378122710410783859490615214226762347248797700449470399111036912400283818254144994731334525929848901949308310133752046474960838163006003350261768175980705797432182817872536690636218107182077351126538349145000037483920238203220624311670895455908086297457527187355530111271141352817031564778707442243000589923102625439737917345032034746766972430461332655684365343868266194030344690950546793178513393685575864241035850999335489338306927805421463721616584801281565461926070558103666422023968906291080380713483059286466645221876961453948508402653629226249664110765541488712719825330279016619222683203462001236112128920490268405165157861224659300143950933391332819074207058563385277398384165366543962434969465924435321135314317460211066881249364035821872228495632756906235999517336128937279302950699269923622501497437177897653327368160906220329450388319847707192030353493467204344066291551586337318951980837021102403938132776414777223604399405926340100779809055104109687764213405564866346366557205442729293584425273304489562281396082717269616091379426735421661770926574189801737540681411529730040262997737096616026264659766179587538880916078034042275763508913275940236081362955466360838606842776420305061481815769025626667676222402819473219105067910823749623448343561726548643328549168980661971119546867357783950598078891590661434175811071145532587846390079015860721949059322945368162822814563726745578087744304544747441164804491831308691540365627346692570358049393710585182934078342861831652084538899255050344847811451609458612297737244133522188361373872101462260680926815418169445008034608913611714830631989514542247554619147830371204771281628066089729490278788407195396935326328405600317648067206654596091076236062762444651718591730487874760462031162136049507439266700528340984471220151146457515310608766735915947119612546904424081764516117832414248811928247752330010317258031986090014117103733888764861544970962352967988519478855432173162344363895898755004481129177260662017887746898767346680330965369434011511470063865865180012557530549363072401463798540698554582666011207821729676199929724737338054855283109462472959461539896163041700985263103398639976175382856726414256128634091368556552471024039949205710231137125353840769008447142081652683781558650076685920603368412423848670220522921492464869202514841799982293998596512205772609145943791042384390000581030751359963639382779916156594073253376353614981415133695586645299264933570914689292199184177693959014122432785021678783773567441066993346174467664248869427794520883479603593288096901012785927174212456047633231934191951426431871947995420281453762495584345789276716719950741919011112728618135975713005471172547312436962009209752850075559937036868415271107204896830363748616531984788595336113561869699646889845401130322229363216234431489821513539696086043716218259684940750201262685865724677069859860588321419750034411571585541818568550285523907396956669226902455556008796773709826305168800853329422667042847734693588572811325211112725890315557177145719228502294499047685941449955491203534183588662222362863458427430195664987523034615154728609878488490413298817169548471228584331325003732705212904661418067353222023085465700692081745453805136113879977653051347981369845222000069679130883771681119630127878559589548456136961366751703606250596290355815811420378218645164747115134749151273449174749512016929295543627008545497163443466492976736742277659270135600553333399602821108642815169267559892182850225158120626136520335168970639009816723327952498658504558041219113297287796480435556434126167367861534719797855638918571501084895638312393603218883635642650783578135792401212734128483469103936588348780933999305005258685097639214166475139893025075451732958497902378275474359123856027209086891405224578042658977830100854834705589092508226415690502688189238676007556740195647257151741259559247274189324944668469811594529301763920159968026747057476383735237877887064388959007004347287721799781313108262922084406296833965881093064786181753511705128192846395753997429253982573411538251148800551125528142162371103541904402762954234011428814980732059590973298111105938317189967144672844202782783515016771174209042922165906072314153669893120145642825338711811368025878099627887969573064895796536623544271725948088522060395687810267568672531808876023510321344532079418223534995329160958980435564599205547087643248610196782082815813000555497499481827330037924352112264781065553658314541833055090913894445071639977309160353224229310223637711549622318013979893772722747719302542913394394783536859697991685008909996793310682750331801741701314058330625016468324931503940315546418320951570273008469985154112375451904992683043538763968620404358249492244806226529457021144265652492735032411469952727517373517393962086628710428281945496083150907283318261392207892720201683937216643143967000605690342890994696861711481211451961146292893275302685500273717531357372807666726481276078718734527876486596248877466237798782767991318524170803871761830820507945978893966087504874335149844865570720831707088585785991988413671127633403151465556749337048606085775457437436255502942670263972884944051973141914175511106635094222509619168092183129876999391731049225564188172842138072214786005858420772159239957464872702455235275453752582858696315536831871408989062635874216299103734254737675308150863508140051661480342587529723964121976648435668867315464550845809598064334181220698948946272830582400673788756148143169067197664790072542281837642058722268422201603846335975307209873584407409011436072847249911476332666305819136291717725817784375539423407172036647868854018063731367058269531128744772923032525806472866839150267162120754563831190568420024547891128750763502248119202308152428130870178001712623962328326823069223848936891858978975394269269344419514591948297117988006396658612993746312833870528360458500427381122215596010360930969274011291912435076761284919836016833142606623648969408218202102229520514012290310238057702143917554456534066763270179846943632745849319756161534931649837450920235759850868076375045601042793514906631844035789192497422689447183099223102243806681614730283845536818734383893065982712647371021678775704342491018120859256639496689775979956905398212397424804625133069424293080875527391195857651849202477593437934311372097942003364571441655966046329871162810009294033019733197460993703082946093104370524590831110218094851340979870846535143573912212410728009487638657922949448612305598631099411175972983525340340256537130586674722428190672940493532524824483856430117816584462389995049504019330012772796800905966839224404134505720036946603428110631192210615295407252225747037428770675381798047501329023606818787902201815240000586375516777660447872956652641795417025639225953271274694972084059326493999422397597792716376300751511735414907368358334289670677668321242560266285815948669680149888464923205921504946682878698551502210390666104283013493131908892833008486582593298852053932063548017296080647920702247384031915435038337361083146613931181159968953365241197685811003148515840165644188773629391385817036995474312479564829039700835176646126614418746904661277551459674783681067864147814574039464783966727933090706321565700623910428460578792571535042760443019374891646381398187938930730701363535089441750901210492868111850511832362450036235615378913737540476708547292230480710332706222676024499257702151176789919309042714872265475692662447280011417023775653350224218959592000958980343505155180964697079048307525397681735282854836770542857775812879275477370521989395555918261817499005325514438970339466407837865325775760912959526907316456270577447719400998710216217123690056574826020261031892904281204309750798100855025933063141781780115402255722627535594566524554224943185398566135246508448827221225559253592352275346952255004835479991339559422574632255445604142576939303127078069802494871358179904035212830087729279039085126162115853878549857884229613499146409974766112264856482672588016150014992333387536889945527863727797287460291886004776085977990399404854862375648784665407607821700657262392603642074981364560683899017290940086293491649193681714048630261123882054328988826141989569988280412356158400707779264064717779905586181715816338754556674837870900595486305864065104822807489271176814974070294591145399098051318796154571682024926860568312088226973852684960177986127601637305407202090472658620417167171706499367611846570189483376342778466977186851632016190990596067096991447643720741718375921924539420160259375297232988337883560237755709733833688718724664223504295905455802905013556956504452845852447098541729246136331820944613484449392926983963930601917244982725163417499492614699912929344625357161946740082383911911753901408314006401167525607503754445571479185772831927478489921888466493379355057024103819414389969122471111691399414606754951308702385951858957232766367936902770754080588963021406167142884084483258812905873487411913075905182042154245031872640351401699880797432650083303926430731456207610413988391164856531702135544960627065847792445674222668688659134013160749808137787311722258025464989950619544633943607614190729498060287946154193181291519231882684361937939622560455160325551668651866387254433909590286671709995196582683905205147171060554111974416084391104089076697097367899496007479266871009579328053165168704245854556433789726777182489455711272009414485030167883881972460314199007740550650676465203285167966061738006737267724135619475396185650813147510756234752630051435076242016593046387758425448032011730307049484898489587467104132070378850728706640858389899637544927260043520031492653417751664358358902552732105440854448174427684117177372501755855112992683870387835113969561566035681244496465199584699815997497399575596884836417628169081429860313562832225714652959913639332145140628464118553252922587067453880057809071329608718763371446402587755705773703853272591979442865389167790619421279036726030895851198783567082795564170858896669454588775604744471857166345236107530568951974309762910346702200666906193840404454082160401551744290128880484317503346731848188822180646537756964854034530884109753393952040710780791877331428749972894558030326282901183382967821429778945160942526932981813520563602440608246722104575261226902668442109058012905840474969541943700843818150033472404663241845697042902080565914846297765160019336321306702663491056162809199842092800570391813863033028309594654616503898524243126287095192597667949560825839199691579285832288186734495402175025777669970099746239960399434412940285545410882364375885299237822307680358490342963539710253524654763087500377697608083536934015603544816260556688116867120033441043185046998602702850456713390513659422818638478508311749368804588213587896453089073785397334381729832160459255188087763986146928704638422764266619472282367491431425751440074091085746380632689762361298943187566866069384745602551794845145982815250387601117453608174437748112395195450578613639191179632934052780499206764968183105245147429294411541219385492295425201144824216642225188113916365258171585810161202459862464764555817923274610446083326961480512050363756127116063971946445918729621084735164943447166582458289008708272848536432987974564908018778084146426201314828188270046581366022343222932190817233434988450733531454273456446978361341681426251373155525951924167397767662708936633639660611080657600052229567277500269666992047543552469402565963994640114188058648298336593919001818760432728113618868345583181673152859156739623485415196867097491236039429204486755457587970703733277920162186971264328098785815070687482734443801107328605308268643913165736208064866975518779907146494743102417099019759910632260127348393440578833812682575983923691160148378637417396080404873309450896281085405978086918843042937491331078579098358519623756412780975599603782570987281855084125092575675964907918420329301078115931886943974694339021976988535188552868303952169294884933153508014733118987271368251493551606587059181950714842088945083201707224106850936166447800594499416084729515357981219502943282099339403119635856341476789112187731167339773115940324018180474261651185351197568249832920766054435157290491087155882921581000489234538272176130382466798299561289407133783191130367636743905480270796898713694961530045241526124219811723864814536909008688593602616420004987102082112941460084531687989350158126652016527355334304424022623934170611257900048689339037691933000005999252381953313294119650624330075044352928006411096823951723939521490696950118554121213262382361455073338752783298432857671550521019126359865221850060949955967972368100907561931550504453862119348861431771866000882868025671832355302072792368182671091938637603863915652449652330420608060937912213797117168746541381286243206428563108434176692856267207952194331053099339601990323752544807902765166934854797452928313127900936992202661262248181055917797930528670256038182535853535915281764024754875763659371850976601703675470876312241923568358986137276890106374556729169214172003028308424433245015658923259442072067491197903700346121443731139234596111405253587661022229103408387571702492585907096472474391466654821725138007159321682816322081377516456106227444907887517825914548365663155822655465955081019622382855239782339074733052334562568350001725681587601236955938636611128175590760121314039411851138174539883346733352147971195828560670968568031185378269566182631324242667414418879269140868262787194483077241402644497839773055092534479956223260168582504359927536541744168957504206159609499300691798346238700803543850526554467954418253869309988971370730658975227136427525917088606186640210040282666865054128761829526926697566967921746133901470754015016232743022871040708202701018855091393731024124374502696975552379004392069318461537518794077855735515123401342385549353011106165413940552775305142634739181812408325665293924522324786055951118459062184336368977917419562935516019478672746829659159156651205659273608105128530982085914305264974558184601117129983840638533303110312252056597305757218774686530995048811461009072274965820247627739485205137859819022489524961418009803728764781476515568598276248670553264865272789758191698397882093483194325379160848180001114124804686832393051869527791470207922708483989284879438545935878217863640811427945039995838216653965977214325953324491059448184194115107304805260205195953255384592943271469391138383954244858467881761723909174405347156781122000759597958972983725351541516361213669183299533859079514101802656874089246462180524832913605367590566156101866055843313203560169929453693349169055588985268270835974270927314378131154874359768784586813302480832269720284658296244012596031532351072484251993935030068209247984959494785727637200190336202115449000716883181096182771336827596849063691271107594884521485886263675888041283759137525577708382705261780191001514248531395621435689721102089797885087817363476541247718226733536287257433804985142582028390176407538296032253743768496539589334169368630682647051865694918948861025449029552474537142489738300487748094750729142699032242216003059117909782675936479284514637051561225585089744500864191206241596112489134232553258234949545943709475439016893388832577127903357182279236502815074749399008974804683891244903468076667156554556795463463413613137472159230662044023417992221382248937462297895053962837283048669709126464875260547806715557020784537795797523600495649555563754827832191401021372441232794883907562768315936862840620306610606797190796573476760351535350473576748574799217229524164036849262125823603145558661061302896683448292256441858844535082888212294056275470719450877504884052118688605680486051978729236444160495714375045403786125196459776832216682160521946699026244564525356534020601968552249887862618524955430017453305741456235766548704738494893987542633771765670528254852230802577999667333615770661211354159061815096138236128799861528041096827362682945727590664728613705646390761045501160727303329304695010752092325461280562292044623807408462730331928781323770218091630190619075620897888171983965517956650915720240757067914609691490798946492249448356825356903119143111567024470733277300397714823193885276611601996197136042926326280058523965247002064225465539338804778909383180212010192671086908884406635348168152792493318386649736864241325710607151385407256803209115561775635985273057477255288357966284563762368638783423135007309313062639122561528104131512251415822913207801213125652813329614280296163445222342864499722700105482912747684846532866459067847593633916833187800556189281259864860796541711335638405826505279583563007097382079739768593785993569706586910262113766827359184562580013629594728776087205499421670765873422980184544637742581353687029452806348305177530193119968563358345183767890596851056394830083422335944739071891166572118444941825459203495542653086549069243132093209875458260174285121831253194298018083323933731987035422112490866644727760565759595059308226578452849207257625061345407049513747286069590378504156497235132796019158612594846801072560758489760048658700678634912263615651481792239150476079819583084482286209305815452869101470464087655290865091272339793628577620140320096512160890372661697505754700919552014227384975605636222740833519679257140244578230544915622355606064084161472689140512003233380625835158241812045079795025185541573516271011944109631126443745464600116166625442659315175974948591118496315817487817464003450299206657700272080766976074131207038343542957432222879640677382786534383013763826438317689185461539660078039317357321044075939536148110619092795304958739312184557006814845773429698926500991389926179835779231374316695532096637961077645952720597053058559165491283514063893318979168775645321274121470157545274979311129693727021917291525388389380391754918983584765803811515188460378236058519801903848238328273075228747175941597667994534327509431172354682873371653303672261362453224812531611261930896712952568265069202077579633567350179432192117193292677480649887343939998960209481112396191303409253662198126425031284520035947660417133804090394868389028777861956023411043797323216796809852801821240662449756858506042371245942678074012271531194955255945121382253993515054935199207748293624859549919882127549966931237690399133038264932309260265483012048141840281574648092610315876723067171095758445158198503890234023743096643127655394653761080717153733022976806627018963670812810373704514365154660930936998936828683983934619753118830564901359672951202192917360429277584303628170101159514689382398751304259753691762875187020887607614732693779873730973444058698112806923041953656184646785310858832441930913532583243934627218467396852364538593327695090466491411240696333022404275392540913956553897617703783082536686979903005905111863276476678180713617341273449638885616393757775863468784174924124500744779726655352303214621832638157860518396996642084725398474943333412501405951721222117130795241897948879988718796614599281010694135297456048200052360450100670699076783647909513851265161891278694157931771937619765883879825708712430249334452105014288286335176208032015875028051864225132277270935394751094290262415442070989643504878856174111484002152007198469030596831068891313413703507401710634061554152691076109857422899756810622565269116802450461752472245872414110135672460962264256919618961875909822194622709604662370955753361283477884141995917230334731119823588095855931389524260226453525351845986532350299815158318505671912744377683572578838627014837560482833439472214588854930205478908937622658494894216546221185730941884425068410907867010132598348898236599496079774575082784115095718066286618137216589891456144271807073044883907140125592739154102776933507172900071132980572748200884431950512416000271395181567681192635234781092384657159413386726550157483595608424780363636725592327240523925800951284987876826155262907278589310774685318863738163204757044327386380384624066763801669244104469068519981993706068111618452585698079641631573900260409217111815448572548182627984324680976186808133806234972013984146802045536301089378705689976493604089211820027448943298937384075604400062578584735048302715393935991318298108345791450873432422188471280937675768461108189578322539370979274772802915406774281445819924778118398047465648806789207057978065952711263847345066819751645095319404351985961122806483792300579236726028368638462773091251763682974781056316436124086881148090085703038948862531841498524596813838719623008772696635722321863487834270396362968106085599223114625761841360650748096020025172764374134641156295493611622694041650728108546445795180762477571109736528480921753699619441995333216463582079594046492488838754951842160866314082203686135503797381774685858088163046911337001370065256240295128002344629335335799703706013757115765317803538109231397358107444056219957389281562764530647268020426492667538561854940654833852781057929856785875691644726630402373891459447224387264535751728870579610497139244768796937164573461721329859579560009339910752759330274087616387668607519991902007632989357060819394971385062853043798560065563620940725656808084553237706798752814701707784588430014338939562782087468236280101420264328642331641843344775816316289202209565817115462340265436999266471195484914518494037225758645256985483344076582497761745005693381369459894993389892043395142956909600526811359176297030652532218709995307788395985983985345365384291812299440276293072371685740735988017628963369520236128808772871892390155155013922858339747873136564703522196296604733684363786211781657340571883381122007499837812895866277849489923074595732706542721113907996245676121600038482891995183052129459338723908385113660671978957186564117321649054810768318177641300948060120764974341450553625517794646579868776662974918271221842835452651419689230806421496749002343254557755763390011680863393421166217768150770287755640404882672826861276207190020934439811800716404422526346280881562114593196618270699702869924743437069038058405090797627748499832131128348731367003245029912657612510731875909578533687080330769426776482198967152867292744298066316855535900389072109789583724962745763078099187814685377451768206032846657591685537956193967354230492353361278758865565955875968169597888168051911032497339068725650298334678772525578782074759298308662991116042286541498380885253127094619122168383678679087449247566793014943982696410754899196708939660310145182118047832491935326221895464187439123525785707172339716573852726046958245256756319183422309500145469835125599815605040744622589017492214900195053527985832054281496644164070394366129781039328408761261264930654624585858009581365020672007629222137702287547204376843697773871816018394090517456380106479692166181564740547566499889046850781327884731811830706960932082064496037222120018461195478892823191935748692960952476998010154153941233383093966968190537477006316592601978294193513750990342010188658364574920079708521687769922889142182030091539486587861802361139049328155480103834088263155196744993278314455533493748110183272650263077065020190261364292358872401282987537524769304140449409850283740618672004361813628248871250038807261518466798805032060597158764906512321604495546380261189020483242590380818933536858717717559616273491007678869097139866601724482833605617485165405439091175276861313857099552263013391038814793897939154897137685063537265179279862853024420633461627027435289027069860494634017189330373769579420846477456901426337638718053993621555156275235077006035757146333779608341308804172776635211551663342971706913423768944698002577600311009654929306749026272893514415452476097763304413068408949815807681375785517261717546567227346465259415928994537375331449543181803846868700439675789936352328607581165779093048018163322880562777047382769651252921436045123084815519930808870500577421414893122824685052298558858606866295150878700608861177867382941417506362997456126213645596947499560488574809474891570187377789020079443982901171783511553607316807302575369492716869751419476191620754908082784339859483927708458896843597700899527898863588145222466396193044568961641973743313454966795155921702282913058102368631362289277741438295203705091808506291719267896519877100241270187189269378445427594324994534762427727723186902940364259508299181505146501306599088500907290643277259605606049238209689006723965688716113399825036959017083678041595847196535037320822594777794420894268626407352818352798425226272899362007707832651791517109129942072089309657546924173838408172314824006147418787750157207575262958547757564230657938432122445162527779870500328670700448954957554663235926469079913740285438960509624613020367168488928351421985980071937095675275885516080836928179696860305414206532806637453665118094603886458309552847208601756125962822949480568600538313756031080014845865407867020178429778186083035592256982589425112199670178115530032226630185725031529469210331381356663365936423641959336699685980595599973103611015346279371644127917937553465924744179689422429249934929157838596423586181284481486987083512836085118960295571479468327251269006889902481433830224820886722640786270780126165199086182830706295142055148932262366177126267106763812888861398457461501983408462275836421662983681461333650836170694575343378561656736124647885802244292972798725066656959288445928878076384965802229651039621116677134776756953768690240704173115025496733469969045888375775697485761559407182782531747107828272549713517735290971949251840026369259468725012663325075200433348649562024462073935888289468800824354593794155400293372198508099231346070478733855709689282870646494504206654739825243603687376236032757507891329352336916246580183318609164692292670006896369029653523076560458808155727429745888722859397139724727468257845521441662195881584105868112738606985311440806592200570721328264095910147766558848587473971761362789499705051798982151382486941417117073177575528422686733654373491669673857870244570019614175416778116273362174062463087942471927524971332283744873721485930940192955058862687235416431932887021637945496046051652177437297093053104822729393585978789348122373916028236428920431640310977530773085057757147529062887528156022848132202284166396275174737146383906484780548799986018791743414559686790586753892546337768687020075607690810762987576450018510608529093242558992948754000573391335077565906190648952563439429806554403102347706792178627384759555998058429782094090818136146788645398238987444318957903565017960388478308945100994506549130866777730441823501099744303722288480731513865109304007229913107946941280813204581596564596684699898170136960445460285827125509010725317496706612402502104259326618838593892134762492997813739067113016667091588524769470769495992373092477227041577191012818390799492281648787911216904865906217247752398312101348699918743516041207311733181414033965211244492910295840356935298290060972846837913689221631608212697730914448288089235038730306514885826989749060614080159300319919739825853335735491744315921180611371869251864702255413354740808878292495365513283801524156412800167634703967134185321137241968223599715835624933347533235966906110328055120022586116919715143523788254962666029614213308262819068810177210511431943550275980320731009307252584961423553842272933249707135645463470409784403675179240927557933891438284055546924362243392036376100346196842990494859378236105475549756351768186681022348782126062754170098236812936161296707841349750698196187664864018197527792701809698282759375183248292963562627250348011178307071126980626173073228818798044435422184224618824418329719539719657725088415013391433861480018257614466802683322126517551887633935733560470842541774024045898726054027169647033549988321867575391721373608499625321523861073485371205582608486160604079415785207239474848859865697101908715559851476579558410975519858157893530754594762578388217019570335091909766964010446164938698302294685412152725604607448358948980549335573951663693155799167337385139673600686021433583222808294941528589974660289399540620967690538960039415597437440179044918615813510124353689316750721019985880997793559358989762882600441456577696705435083109905283342678394996087692336448160450652134046172802089587453138425811485046419950733249928436579456483307935497526121186084851016226228099556645600760759489058365553752161556699726062657257816076254880752341081671112300123419202569268119636724301382338457969858287325719199817793358740541484276277542568374389366576799443816896109994362237440869284575038389614614536221157422569990099761942015554254734009321953857362108393111691616499982699302117376238249887899373772389870071527582691335210790019197497077787376887492057496014529361789079052609333228748577927536107236505064773712626486738871075472329662501175717636467966803327625477466868543847919930601789316888235906259069277435697666991555773912226894998201663173569089169042767457713564486072147622635009831830047392026125324180835440102357807832935585460005666939515968848911982217596335841795919941006670388080688043773517202318794541426315326407911991493281181542550342562207153093905374950176328585560520288330249498012013560737075904323730585849881562930848950398120164866015513627485474909983842159498703774352134580342052716794950976640301955104616737941564450236499370042664346373680029466518901103567985798478526557526341876592277883564617938717693656093451631467399876690720442422931894678399117458683460944204325878752183566613597432778069550793475058347337561511465864551547565679812257915691344551670753432190502108978089223351710524133699002713902694926333341452046384326845361758911844048314475845511328088491799295203050592345398043545442262448431671005885427345109675671582670240368162436879870057076582888797214981716195364790413339356877929017179107989631233671318376128258937084802422190598022501066548161348044110343067807769019616260931743935839720535070558668247151785589674198087980567313492057787449665124888324995898471305225547564592900209881073720128758971001024822416407962087163048683483155906157367312121053667822532567545184560252954211073829280003029861630275113423632450756476335687826513126031081014974709835034285628382290490231086440649203387158323284242286629994388821392289317198843119341676094597219474825517960508699155743824046371543844781166593778293377576322217785453769849606642200911798305130702918250551989463228548478699317980081294318256010968287605770632158683145987744158333374743318677470727794029142892402141057529273256483492066757297080369585270031354213223758234677607295443522607885452798001262194077076701094979395785995788307971800795958561234425820607906236983269500877980949026603274559097767579323680764215855321981891279888491067351358541219672483188054263891799754823872385247381687551086902103923552991918225281278172404395511221149253385639731387501161529172073703873207038141082282223865275495229747126003441613961788775500154537181080398758809074842026864442017695511687011463231831836029918901085167955517293013694849225549460244000795228172661873501764177451051752171980881535773644808852527909139789318838946567262993194829069055020531421207515941772343368211580307823733857260990213242113030626603742014536047763683887839638641861991872252187133285147590666651669256957275082095920310463023445216528115225448439342114071634083121843767228738767841783353158930297359212146534785257584124558372343857743644061284578228913093131645010248240806668961486939882501084916451576838073053302330121237546783402018282979110196271138944352289287341873074557649462505670926136125065216374840388984783078167830183933653652455113869107550239227083833000219707053184807784610293010600963433188003285379168949156385270001849575594612959965270414444404222714927933946235767803827960911976004011882750774728392421085341883012105724977716388350582082201892748382681229677853609625501293582071748817872446259046946818850782319158397403725844561971054972043088352077362737131027248446126260001167796866179182608231987144368588752916055490540959278273878284146080752627263329441849204920267572170593836272058681647205474724397464325098916471445378813680989579051901202051503645774687983098962860914164198824965381744574856658785453219895929770146883230091466832687574330798919746345272744546026328996536500902718215908281539827872263444395741261602475016499585783989791384599093729227225159051666404544824388494516305460538664663776996704770691634141749411007936176369145324849899508962919670707766297951039623166036331492005003322900062299587320974677107078970260190383357855631853806230113926880715245534990838110616886367320107620110552153520854676527962085036347282215958606863477060609848225573417115504593790748045643687773873188561892167648458896434337779336298187990388709069458554352901175712002812254494302497347599661966382138068496634430092451960891912255156948878578114747726457249068095929632676347447925433694098756619127562869097364309919392331925241310103366381598014548931379263859976432408029327908766686043382521151650998774286138908263006067385812197318737683621098819430304675295147034025902314546916378364870642177643641671867915557807685519005493844236769600005478864208284564878665772989136730274903428393593251480692819666868030317267104949399667090294918280102651284403876270231808045494220458473948352102036976853176191513190801484210708641359591015669927704354587494415996428413939425854084167014855496261616247633276211781955404312763992660288898379164396565114805866836387912255183609114298166998966141479874620336047339395852942556447566996443145678587977645583157166475967736912318563317083804103470537122569660034277661515549950577240105268272396407198371877866153255886170268512469792071160039198624959129520527697218642259037762985442644754046126160155134242940465836589070012347653356604318088563906162003995726225002999012599041962918793576535990574568043559128463308493099200312997644009770495190428671119732266701126466530031793517581268900062949944014409577444488021261407382973033995667645997997629543658410120182843404898032156731888711560318205605475040885676274001233785697662546139517775811346777843990793007255975537376538691888258234194594101952091634874477262108341607656081954218662241899522821550706422471281940788445135976806449614095399616844266302527752719886044903929429628883782006503141789588336067292151136029123357251847420184611854845335819377452543249908973955756176105087248424652022799552642941458169349411402745639382420451956321899761338818661482377682985534286786200489401810165549288432629635647743795456015260449944158838931002059325689961725183261822637150908941756059158466158086851383522621736381643227792791769402381491555363649505416710568345486991104343386368518622698870029306482565183918867583601199177396103847715919190170540894319993102415317904437296861643910196923792415494371061333955711198729870716220646460791550857420745898837293714858291995030316672392842713522686199578955733387486939794955398684564728495459099187986467674780751814941523921107329179210632985152469995635983265484378680492872533915689919692630181927055529455544371856670677434295736061523809048590214540512706843323876853505678252149853001216827725663704568427759489929511047010321263073486756637450535562566285935175743442595320355489138991296942475782414739862262195516651725938462618767832449277301875268532362323491796654643008470563070113619536856979942660912880538938202564548256753370511295719432671838520781519585863988673468574305922351324661721827782823320774150891104714524676835716660357590614407164037731617545458705285372262413339069720813742686176661678301457168179595551294772157716987554055834183631294482049961063511432508958374060130761939752641436194412453694966358905745662389130679195458327206709098493289470365029837267793859773678150605199434126974384106766154151321905060749919754930995266182773748441316665698672731076909538021925607750320455199549417088788555908805281012047381066123958295813959610827826484750990105455670607109807735545042042560741497212269958432761699277279206240670916371385918898370400060543310667135824889694213681680019096076111680402538004973168205566654689806514788220471143215528645049605223888079780813760875626884388740887191544845633836913268392946162884770123461312924710187009344374754749942136840945018863369135928020510913222115022225101981862277618486728793777999837287184801412405318849029695703334227169764368175848323301802936068695161812430535771673782084153313816215573366875302733537102707889794538047642700493622292979728463994453362541059222600279987459427887883291316283238177548808633903176068684463762208872456032505033692896846592237085624936563060211109869881081818882727418252056121872959107486762532575879596780802210450521555429264703600941352511138587635663458188233698214089309400624243028240601854093567998349140034794367897575163172658285644445717478681011115001445183029692016524378197464582640248822387594588594025705705622281288561455451672121478104842585154818512926929674089382590018219973253125727305448038802294185449622522338545803875259348641274003288615630054567934298177013654446054451817470389120307808283133194670700911219230851225716175222833019942276163794914456841570652143671057796122457318759055047444275663273213679015273844490256913408074805191682242349081122881660928219319201063109130935615903450091354865892839165665064564034245248168402234239579461909612538342417272177849688064611418271084188852177357802614711985590251870666290985667600847440991629456558071831458604603786846550973024924836466407764152768369139460670136017630795471007268598644466760716256375582637228554184042980848384004385294331879430846206134605162085668644830459672541491433401795994245751532055297463657202807884822408082702842514079956068530073322683792798474790947754368386608985254013197087773704299944438213512776389578943125849222765031818074777351616008337372358426409707327773497659523539603475668912030974126368215308811101581567152670870285446710223425846513784576034163898860261877068496322772832601624903549644777801953659811168061519883150359073351758660140291000851828138977659143208658218252336868033615574676179455117425735501528101328123527955217689372787046277729950288166923403601767852717587353772404966021282281318422818740848254361545428897502660618516962905486448951117618175680255483522607007609872026099865176121754592487207199357359688361957258826872666782231807264134070752713165274889309965343170002960287733461511816212700557824209109742880840403619265913887065532778044448763552406510697479013985247615713740945896202760529467900806370894989814230200021427146569318740521535471999353692937320372967641057907874956248087245736640789434722734077513874482771900217992723232487094433833326342780451883364204696122305712970213386171266654509213475789859328701615833832350229619676068458045995750142473270399069368517247099325797066330850484614555350153483110194217616804858890480828014859044066065464474333863570036877733693316730133991317132421263123169300804466662628917791921128766349498249494330227375689409708577585156661237531685802913399470211676225082675425597546948529523481377814097872724259832280042379839728837574635363856798686571895829880335948475650405427913139350859408325267155508793374208876799804542291097660669577263725628603247965244714676253195597150033888291957623924223328522595625120558816800343739490126217897984347636806795918729633746682519756082471626424253664056890459313943816758587163521324258403710820120550929564841455001108871674791811001743100981458038236205566078694570967427904838687724804459135867575692742339218443081043849371683091343222562472294325910242774405500356730198190110413638648154629262686059966598907761977544192963325693994381895390477075771074752267751206917993686085581885429867367579008930045893897187548176596641279971001425753685344355115677417928526615056410032117542476217770964553724527850549003087058958461395623010006876118548966069462916246257902033270657693658625760423997386048734743650471778384662560477218184255738234789130457972722552370521344527459865264312259301001409067677193270527498398953994110127824772390559765995819364444904360775480705528403901745068700458157450630808882037090710048016410706492855159813297755432936419209123715775366728279013400470250238429508286692533560837954830359909525124314360540781166554117177968700253053008769402393551200432202431094392194246491985947063316866437937130699552967721285583284073508863952004397169344050632296311315971072137329316544024428580983367643315937537684595069476348809314415600801321407405240372171617898047771489459762419701707218265068527452512144535520057926697204476406164302009815853750415621764469983428811557189444294391728095398905983149532870557164530775656112327775631280809533550222252705699734426832608903529934293479134328637804017119218557844594916167819771270665771401053944838020683506224995731789355828661769607586852606796420436175732875162546422889298177040055441676394926808237510114945185676255334341100056465846451221256744525602182455610249584836187637536181807438208878286531144143584968642095886280937662547947503973386428650431731014955218884473824200032338670793444092447088427352243058852157601133113481465097074579367444792166911973869332251132377477330878452688814053570792133902899085813147680096716359409339432033037753243924667396448063803071363328386378274451605633866525983913528225150016121036468806128789412908382030426899010288335572326510639470833813846229763213457660987061655061564964231955891413510744620600802644719387347824875830581035046859983914584097493750916707847086062037472725485948021932412259844148019911169234416311456461093374214910672140123623890074669270190478587026514861497731727287580450777922094032192597195627097031273151603091123795625791737222353794709472912365377632252180619042329088833227038061949765462412056422247487257685684195217496966132189805366221790613646429589609412743756303391662026776470745894971676395792508415563311150765695570689553797515998362999388270666363075707526922613832115988482681666291884625761088491087104486487651277249870830897718191742109612660828564753483415880704432745908262150524814545408243159103777943808554502502333383536945194874860264776249235889637734876699774430860016114832244097823159015236056345304843461458168321126776798923512132366901527724070346549999757465633337770637307738656865618520121344038884465872713748924036409948680668174083820281831770525391023769514276917114871149391806444906668136233999695333157384081149847609329649854428024589674026930875904046041099729693277550654717766978633458528703607530971832680848200237860940400762578231350937350446073732153697809003538023797060819391028961175399562059784433972621735174995288282423760362892477161200228767329115575192479529088812968653149480211285889994091644387525500385562099410530650065831878000453376194552562911808854736025899043933120889291602125382001744004678581195969239090950859304268252108760510405117617737226749018337605477168167657939319026211818990184600114781490618591045369017603087420284018541953956762501062924703469416976235446002365720551923795029778689925708088938794512067575361737821128193092525369346903302582676918127325937604482900070238031428359737962866318443306426722887544699415681528018090973526760662434877150865623226712048573863819364763711351522105155496042475688017369796954569171810505245306126892944233497104434592180109280366934276873826943701100683275168701573410644564754829996508998658985404025594296121806292522665236565113232714261043894650278716229239382525448356966978898458994117889744244972079775115917284708224106149646091109460268198344321844815762955049895034314941972414040138625314133177363243932931750993357882312258288870702372323503454027150434423022838357461736072563351258021918747515642970820650390629131894265323928959839309636225930066552779551027044345766337819473397571558323009673924754493872750523983769439011818062337429954908778854052188177439244057040306178696545625979345603460075499384461657717746480413613388307288400835414104648689516008004050859131864172681418441204239043111855056703218517449472255990386194279514785824943862844270324618282361186378769995228015360076656651275066732821698657410215024058417904962435495654850441781594989637473841935031525089658572855124401316629875246114463592063321617635510296673925711079941445698268035316723921077750537588330037881729954535175885257744091174209005998977694271393564366648250070261866909646354769699416334999476171817666529974605699373689970495607802089742681977936992767418282860827527050488748750408307037987458254894163422072745764186819676243859922782455121942483560419696492676162909113072599274392678206842843633956625725669454075062883258873043852194022005800038454101741784905678842767425727122042756515413108303088963215568563373578088953355116959457348275884762426138081207409752223729412267837705238841921907405654321563980848792257730200305471213319813875162728090263251111572992995356895079062086765357293669076647350493063703372070543377962977352911818363268083997152554091304597310800559227701525942265875011380304138100684322479878901336707818386303894057847347059658915060972264844606426770218131300899169952102754049744071523708659686618769962187873070793161097042391717266842021753694965892196625648670939403976038762272603366207975986479039195726478331206809465838533794512201472316154699515811718299143210257946357376006751949190539250547371848079070931374040196138929262309258707249961421229583330926674805745248402305479437689525432819943135281038792345062343740357492271605850925165198335103594346344947175341133753209556142262340733845975165760571598211270445258293899179572707722919792635590949419802817815891092032784863994164360232066654116455880322345499688074251470283047507284579801402095313678933073831305684382598057929456669656114412739369257892014341612801528938898463993465195913236905843836546795886503786692883186825652495768460688206800332939479622041833107191687657735835097098833478193151678004334204213396144319622079755266346737271305041621141884648581534398604371726704166504371268318184537859712918759399286255561580293879969147279938554793229567846961502962695229481513406875401289492887317160610652794686713205981738236557677179886277997046673839961336843874872745001505699465682545337183895191818771192759601754508548033722134469743195322448847670210767316888901104917503922050157490067289118988318668054732857476740331570923238959206243638010977496859915168592059351422640862699104805203835837626622870737076256548171382919853794916749777608469782630215905045072606742782973271197874563567339857342995939332735291170929149777721055247353610291263060127911928736698135411956568964222303558044589010675489231854066127391133294781953428700790490223757454824976848741726268644359888174068962276269069512119015435046117139354850939213315271343942756575525827499596971615212241311837869766631264658838065999252762610751530990319040265727723454710971296401266917277324727232605730228631169276649437849620435714896590473303920909521235638821788482779837278489423647554168155640749360363015132571486951026507328780706839503530589125691568693124221467447654076014005674678221718259437000891462251159549033070224935665974395514794023374689395769227471658426796251781198590719359750466600799929940697971019437465360165262234387315977696086451828323930823046740906141927959100843429545026631695140578613229607521700636054114129453811686849311908989146096361817657805319033884279999834213448961915614864192952757077966109356580785186031128033848058079880703366768360085067190037740329675114778860321025341134405185571491711035438673411780189976568090695033658675749504896585292913596889288922922342854882760378678277469599922128139295385891559605479913968309524020697997358204030872903977085119833347024673398233294387548606139390980421720422254713132205001613036774825807091384437724035361897628346971397390207938699244696298962425851227495102551430996004100594040946678931729529250136522945589659713229087334793024211108034304500589586475760029838910042023331777252846611384761140102288371153127388066199321966096517134774768896193925229336077226290392259264967658010429485453483942532532928539704695135618517673320912647354555970227971653708265112310478528782482065424043250366810355568312710260639336887985226920010725674075319496299256442338135769552515541550460726768104753897526233549849815692129865176681903645856730674044900860708370580144234789284451246898457258568097906469264884866464439353868203904502910633738237799671959251466715070002975678002043302888773031908278383365987555535535358501456331842293552429560333309424091985082938011366590495487458178405816146848837591460484916921592536768908541180936884544560212724171783002844664666079757085308215109799619728659413978152121347309432045393491226911254358624226553346791855844626580758332407869749593273519644343846355625873293146084477800883382411226403283857074484528211864618749594410210511923555279000973256588135764079957930577435571038326581770009784521157762260436435994994713689964543520504894955510139212289390480135496112994661566909877373947513819698459604131124505082972405897281102037994140883284731521374477722033285935498796459383966197662767849370037099025551576430542107446311683701482587785041023144276524706093407714964347642756317661566239217714762477004052612614075352728999279455638064556670539527402762341798087134608344488509282491633659536569433908750114660724995164904419934849804254242445757041118447681362865780946481634559109315812360911209355621783545388268632197770545781337472240893180811353565188211654991673298845719554056350984117964078438375692801810484587236060198822753550099659678968414768044497002648504167518409774128127380701312438455697792618649729266068629294988727414158209046286956221170904945722797583498673113053968058798756989794554935680771886940043673371741079489438546378667670235927073390344786008052110747167300737890629383130178547701765386676844277359987507739442878415585052915969801264573940542571418733123267706780504835357237065461584246409408002870945620321224339026533893546885011788582747181375750753737614527139040262135821861167204386679797579217768890765749439215050563337464979440207314296636650005721366084903452860590580147902312347698437743764452140365462798517462405940616811118692938461152862805688766569993087805368689489506694832310100188180793077846912619971713666437774920591389021464500105291841881646110967947670083794823293294765959935260210896647591546665856248180045615128684085767058429408413930815460525257633671874636846675820579559852582616974834523584580405604116142545673739893238373511526032464011125395338710052613384518224634724565800446989668076995722768292802314790806957945501107066391271752724781423728601761084617569373725737621096794099236290895491080533491901209766719524651658941610941293014093140416407540490820832352873958469083613032544322856096803330614564252907089985971691203595465243628386633751928889294616943565052084832713274638536049692130173725087501169748458854571686422425494942562966105217354376076454074764838007108952450421816378667959334428886316560795393284484076952600192710854938702901746678098484825016566301959688446439439845671992835078653080975677135423612390313494416182299802437347352167858138399415209823944577758184563029289572468745482618451733284317450589670874841789145971939552817015070165334562090725611412164988942867896757841568091320543105071071825493098708413791440946181293128417550558801614037799793586440240929014498169465611300424069167643819128975272101239716878069451981686908750033204573903242719508186776980126552998242711026041577062565054433482106757880596541321592560154638576247359172483698102150084347731547325519711238750908167216208149945881445772126154036234616732086139072101111454352015571292434318716662206889311695068852220461372418526594337453152192522635851176226439788325689833869282079335972491190125955571375744814950788017870168892445113765707752260759543940477403483070216454688103867885825562027299204066027332333986219244294184077317200521131912935170530330266442935580410236167125869297818286491260292362634942394137485355359760220872614272458080728666288630815812322500713165620712105812465911342599555380133256529821943137398481557578974304868315938365028445568620830100404572974094775137245933519153731640814059318362643341245941158454065425440635213940437129906932036987065024198692261400701914933584753310261918506998589070142314306974908679239131132203556108301834983962181580913139978691157809681164048463925112514619375740014469982758113230505112649515186092594370043897692376538853769907442561639669499775402688922829832959401049603110597161625652005730582073326874863142016292408616811420472878528948457909950426750202344797971797007934267402792714555150646969765593334885427825521490566081859814409171072882878860211304842964042443302225897213523435409480683215372393945210494908380508037626997440235909101946268261723046921585088502312113216285430329569224076458740799676570305447848941993455386739318768098990717590927265696418206991358838909932895220884277988765805126609902708870042046906832266082148631693460719127144081361139356243780435821335276297472090723761525707525871519195794612526984075371410762351282393370853075385577483725095800639418688934821847453913865779623147614825302180934226010608668567438808793741850337212769568414533457003269913631209788269380126174937942563109708589003903017111222087169314541909815975043280961322219069163747744615555265355294436437368303441074980710242756780541253701184333375351096726035857617373527211313914619393631719805850386468242838539978654204537229946900554935557304281247839224115684750504484892368282276253630772418749532137828906974668493911151124400412437110863925564435477301793133759006213415214218948091581787947855029494762898589737532364099587311449702702553924401776751176283723401734574429624206569799243075919482469029073307672550753179713154769314284691032301665746408053179698892998952871031411480152787292513495225660881321844968866627374143430463720524788078767230810507980360161728059370068556107943289525237161108575435452049565911492350737924056771267550744612176243415376587318922376034618049422385749980173127750142831017052217218088098890709251786172938721896177231259230729297213396722318811143239162489589744322890383931517988076771217271150643503351738621559871234591481162845680058053034515607155926991733069983371576124654613346907487885070681283208638460617660972410124885835975605490038716305424699471148598190131216237532728337904443526147033359624681932888026564349977917626890575010142008954588894818624733200476091416851695414999064075764792703742447561850510540572785892852892974246898646592975132966943655698631312359321877385018778796402195275682957951489329588227582062549717961661864499492219019081857402445795135034900431320071074199620836303088488647584698638341456754659614962546370956386166253681812440480861228822574736757690253176097263584471302619197421157489261815794129968466538113964818915329154697554115817016271083373572715736514795037658351702016642855958408914839425525273834037329309477240550887505024816976147850626931290782898523474392943204581398128502272367883717496357196451602642494268834022713024878154452210797576574792999603166612833016027469740451487793598919964086704270072079938192960000447087731435873634741859218570346831156607560474090536936278952827061968722821474857960689007236954183821216230765722756384262176808188746700185978738893802582236709826834364115521225913576868301004755256437779896425708171390316353097324631348763119547420773871626565936937899529123555215147958457748163899898882682300925160438122123518089057811148959411788890013098342846208656052247276049130570299262010020889383547194343798946371144475299534600447206925022420332932482923751880341306379616498911448041590725265175064920412290234920453205180805032871377402109726512332586018385480418329339133510216227472214319173668126014664819911697080055155578855314747971025005802192800070144322951338973824711138365446336506572021080281083938221611136829419353972746575119467769334154414412083159986852220137348369863944880625848959340924573745301484004627779360377703770765485952092497646858568350192585843267118038337162531808950009704783973355099598092789984661232530016634053003037953470667736604913516983939771496997632715934132052935117550270782285632376433757255908321386199497296907463023952549593988986707272856990712901848409839920512184046985029813010392442227170368697743954240160677617788526975200396525836352445311619503350878805824163712027558900958838407888090725409045101118199031059809957271330340845673412425127613690820280250632172068731011026048570257395888220169903923331875578069133153125236395122157324319638735006683400384640522060106224633650604824025311615813264340692589447124302554003019841915989573036707867553516330609583753063686572170526259828558656713056920484392946524279597234925227191543006928389248673949514241577611489194394441501399266858539855024696299461276917853169182482503957700986445153119497449089906390493120810657245733076164885292292590536943290475848374445982607119888072977029335070525623855569058636621089039298363054112512791749274615259765042282318744792827281710510438507577656999346846511850868872754266224591605386161522948790278064161662912139179455829395040413220119540291013271143277675663818015403539101851060323352780726755365680851907780715116546296416413456222119637767038693159626570943090798754039886554615160108480234070040197644661484745237617810186829960945695350953255575555933173989993429579802107059230983573944194733312197452726479574327737623789891769271207190191600237470732427460162671773880451050787499750299319410678869562189288899661276239338617359195932316581549569770147164458666289705111041743548960307317113930664378763499481023197355550919777039098742949122091425336997376501139361024615709875631611476945205104379242676679995115954827886762667257402857434602540532730031790336434090132797110467106400811598373314071570964083721818988244495620728546459614437288655978855567921545891295841643693407997405147784642288849911362779778844450692240763694192091343107806771376012960213656625613072150796034276556556625460468048047685945103863005286945906804928242478592210662297327245931193617034178576657664772991539080787810129975175437908166458137686208030836313596299202489622059057509866094114166967619724062684410918678585597302693681553642806632233806131874581308039245650752150377613177774559697777238030403274951315926794841144777602117939677010664325893982855510920094299114905359208811622903627426670420433810869875107006338125879852707387031519373369627168971761865500704287252969180118381454834527135961340751754731012296463664599670132654896356174126975381602271095913953249745141228008477078183799020465838720493815421650486521880224986619802694571661004395737171549563361142495950465086086402634091474436563290708284436346305839439759718247676827960318124457504990927038580955415181091810524416836116412658282279878855368009832881960680833947537963090552516633123209826785976279799504516477924953012421647660430231278126931553412498425915418302214431523547259649215607841427399470974397408727514625926165312831477240375905989289896695863125132490246774440938218835472410342382693018283540326406086807721479248595078783634062880779541254675866026414498092662690226432995570826703601773453868637215645904487518556101635096750212317086753279150032248605111857993891338268714791020392372441185041951420739101560159392013209107593211002257602209777693077293735098066400947220025724545400983644736083447806869043735321547171608392503425434294716746706762446162576012619518760911377365643725401827160210284423741321046760844637243069127676893847989714096709568876437749850069847241212391188090998563765667258796818791851010275677430649128012425167596084791108571256578962379990593333510802954497949383030959030592144011147665201005537118580982738763983662666754320365182309754412297780296257395987937449906791159670205239157955545380583765627649405710992930077538588394092969023677081454691282188802052113017279146913085864195889083674933440472042157502515861046897998637611366845536112424671260004877531843703553823102969508085315440320623892908321725997638647055505829038754988927588777763598264927906255853552471835015194360202556697259901578140248682827192519274705359643910247645477599757448059416143892699481896587691407665073947714288843883315986163939946577116526285761750251044864390411536143281442141831684299615153738196383648243958479013248317867627791288788488950379023253113559043544151666589765223021253036859013971385112782253745882154441740837831626938755415149296491654504803952700408616329507133519890248831275428874950390768865766702575575312251397842599200709260175838135166976295048368907936973253622981087955099788162072225751437713846616289107146767259625602602399037711199602280381123121526040300234891800789701593008186852574542401998785834441500647287598431229486181644134261455925719763475412735276890232460521478443716141172292427177536305347847813802128170537695209928054238500102114114416213797336254217695288804018843638403028340832492159590807247877095546315847036465385206521637241976984125186340781869696348014433880964031360650611672820241017939654163905505244955032757322224589753127516924323085766736528374988275922822898999869916119042959301113949139548505216058965414650673852752546934126971209441913132394776458037594248508130636791387209601892727960051360477105405222512032241704715588565089442250771504793806902822479631262459663420117042876381961492465316878517074764347484745057549891953737195701370605386323188131412488645085335868232199744537232207690721575952007402415809910550040737760975661801926425021447638570841367485270808352003921671082219716076296681384408451013381055535481924947635032267222977459729106665825146761381767508475406847381839271011132184062484744262234284741515121590490428000091404012807874600468711178364578918946886407165318273279119951712540619907394231076411190850458329020745474252499506119880695965016482216807479000904601003447325986726915158551304050714099761204954874682692456436029995338150679819752422830751516458494967265380470440781027652417832842621504769260504593536602445358298739967118183573878151255119077833028376524348853133952859412647075067330245775458015078989633182452758816409343054292112729134425753260884464777239199096695193320709744155465171934104618205306695866474122560870201191917732817520930298525482743203255915282987176623382649716200261361849398698048885771255372824650562851689346900125607837681078282843637328984497867761438199833429950194702732371951112393906282926577193265427257238052240604357091904132411149727667843403894149172954117848234668297386278312705945371335042007852993846673918045717623481102209592996897237743500711051525450270693494155925963843846983852399516696103906753148661724558831912934287489645814624181427946970761392378576852656533813531302168042876488277906528971806967625777435847346945926393471977408997345937782835659150035659125147901216483948842559949845335523796658571555750415983870875148552252152936434230352837712377207205987988761323115200283645400595273316467620688069127386110938856296741900240055411880302483886545772878022564437071261179067544374400494378858697633176059179122506314495127539201482037539597831024431630996676375800792061600395857435961056358740385884633747739989808740924464768110553107403135775060598750806607295414506387332546312284995249973276816507091262738837369453044480474574946942885741171966347880400203232556759500555090476842181427744020208694371877106167981174530066664466607593514343056195385684717604260647023960243471103886120937810537516297401459447099508175670021694869159157165661178845800559251306532683602038621637993562819183223613865712618994452506954262855869991027272493567273830331619148294886282240408117844444233075312322054673218258348637923877596978523964656705112483451015779740500009951207183505362299703104479086429458468485767340522891479949812295755612078810488951696103526321193962394164811101226103698424154788988602404476770707773597499403909721383289609735635355164679512040515947678140159001857545140236964821005020659927910662036142691013791693842263076150311229008836325789845861606927785324270530303879008165073367791815951400970133866247376861152941619790812931117629593599245422879453754116307708553688675029104311557592912621655391117008142215345563084892411887714261853205358276598788848131340988552547284115628146392972145218427240891655561194942158868521575381660411503125961009456823579362072056143880755327875267952340836329955408136831357023276086131877701863541241292046645309426416368267708748762559400145922311971134681765460089474106749443592712575545435074044883322329618557968982919197920364410546470125745430455081554675576996865039176128713936038921091124450610299979766302111489881623266440783423026455217920557035021839241833137452643458408386981352003088766793049733145624360204272553567822803068683150068658069504290796164033549129100684781066786941058169741220421951711584479967055426518876660958072124418493790595475183713028216892963321972272500316713378028212698533499355775347207611846391754860217434177847595586279630480016953908446907496390446751991198897671922612869601862069378448834272485071151057081128744692625101898495724955986595317173316050810631651612819928882964765099114482325713240260739128097227502402844687362800786084490098561209617049314703260256064582280667039350571713913461664180602307093850937238987151728270823047707735018028167380487046443789541095280089332040831151961982643462172020090217669713615497225250965183796853125277894260561409076904335616721618426254952120426943671332293242633099466747970098709950134731086937585541335277015156670344733555210922006548024276602110430556117149959770838737802393392640237600065795545582508168631288939662252026175364504891781207758243765448501118017389250299140863131440998887494385710373264392979082214099346375674787421002432846777579109218895894264796177540165936033230819980182128763953348352224432745334063104506034198228812441455391920489205352858425873598772729668618277308725193158559414296011026223084041307012144397989576727137427510432843039334977127371538031284808221374100542168009703329670571896610010814443642847569081683299215430948123156725666931375589863592539506249102454569782360620544554623055606611310552834979016891063486580853182806879978156581522826514841925649247142770578609631629558013146111297287473283638512329119199622625740963246424278626456702113805809536675950106371126771069550915526785000396594817574849415289416930265664260170727281422785183854240178927520598716170848863658509524006261049008158637026268361614959040980546719948598710774417771329735236286466558872371726459919076805601099339075402847069615069309136162642305012835758708317830504878035707181935461355742698102252708578519729108203294798293151989075769309862940360088148821701800612485202990650769084651668028517329433907368129913275857896869342050516667482590157717471603198163699557406938834449783190180255977587890420449096442942732357987142758464407299608999797580294146998501750136532615444521268687419407399344105166908299022968694058474800891530176348611246151771358566190605310450274102124537755040314863568454932711191411066801762717004074510928853958770960029940678124413930107415771506423110987651933999789544699573526426656198339652051481212236136503978811138802842299889901953504509239174971953137708157806722217467866107135468403258154300645597685456690895851408438978614109062739573146565535688195544509595077879708788083415418183762937939437944301771143278139150113263758490840511641595088549271633714224853715428974304137270088288311208253327810550527698117127470884537770184363860288279981406632536221555567906793834266560376317727321703216949548511223901332321389803368933613500711110650575222157911968470128984137481576328007913975594702364658575706314275623088188705492711635369972920349190447653744958938104353659543980883984966268567481940446764600678107885550897085602358929640254029821363287106373665671641684496450830553469565608542461741405055754694181645484185159973027938160040152441494915360848551701852760465739604288223276083648806084505735646385974924727555025447509933199814486818482483553240547067939383780334994945432460287006232795569756120881276240995416937774422002170394466365564241623265526771653083040625893603282683790895691861812145117266570699254648535857721405204747186130299233172416761268304333855680446297200130154838271554721199938628008606008063675148773669142761986924445919298675193680757935368184096372998577756515090473258140703763930323349344773991545941153106987452567040279950832673738841809283908908455073730854373684004484276865284042582864428242118208270468478621682060885602934306363148799173476687529783199365049922739844764686525186157605884680807967450018721613529678417296848984174868348546668868923281155767429655066433458820313787084698445527981523455661855656460912947293693092889386277562927662760032619953143028920954607024563696112814553959377058575490228372795721565956059022218692466307940007184376950497692557973987850491866322357874924168831402119989404898060594859957707778019065292255065056020738925205769459599512906732777236812355546143349020460202337174641545670545998720344735149627705600772013888408525337855558735929008130035457242615815501913713877884121396185262987544311264886761513535673425864886928865631199752686077786777805646136752154493836421031219076284486665500489798864838459479890562039983070344378549863003835076650053199824090242279563755534532483932897479724498435359029199302847473391771850173358899904735669244569252825946523263249117185193772070989253655056985970963055298586010644108807542755112664239749779620155916485476440272740921322523440461417032596347048359528703032717650353576969290477732550259379217613921819065849333815433797564190230838157104697840946808990732617381019657366196989912072365512575288827477229364239045145276031182610018624021391548262570303287794614113841370931575367958318488550223822273258332073111859639826238215233101690543252473833089767630585968514831450687281072521596082912971519062543324613381014261919988898772625451282153978547229279193285013186386705013518208503545246788750980061240086340440878752362997823133902987949379360867819991707559566727895858636954077935587177606103439451141161823768325614133970133072695539230588096662814513388701341862442428402874108736243778605744817130758482811478660710767526908479359298144348412689919826422492970200909175788559696873850697809714738335631751523417826478236704279506113261922369953377638209011541247622013009875887473616114158116740833643576088703744334337992988172591716365953940606728740507141841994417716084766610765183961069077895348324660952193519644548434725248589470763078933655300497936721096480847081578587041892015947278414301409163648655733864421047532426395618628377163854128438386677486927942367344611511410749551978376264725675900584844074922077713868563077830822500935449284618812283793453450083018492558372741453253070892323730513370145714163679298009519094446758531845725604665124987082021831328843928810912298373769115197950369886027761608214609532825691463281408283486854936988269718859439656282669473680400398090143735466950924447504662751335370959683551307085135221627078304838543603513291621749047756380339578273852191460326479625465379841772026198266087163254075843420060550984266910823891667556206618444167394520578833480774996571406541261815506550034721349052703042936399206658141706044554655815082684410360872142452254412496288573087191157464008695670754880502866911787504483105045910671505913678199491372882949788212193056313160057165401549375924857597987764785943801443512489608948049656196740008254275632454799625925207916432658005807937163869147807013051336591539782869754774238263740483843621747309206528649070061981138460777518487789852536352644114642278765154357066812559772248674902849882224163770118032863456199719236745485216468769255239371011671195704098819656705621735492206859807142375996529866447553866394816075063100348305070450858922725281213495070015579409084054650015235960019950322797700138785081060644626568648489181974612002777600741750792719398976848569366979063999092025270162888272392368293799806304184838078629319731700769312234304798373455052825107551077766445512347857821294231409368445962575181971923394057316211978726186470086204385750990866756528815368034489019237035904243979032683452789437239755373678122409197083519769791983273612707463561145803567992937152272743760199445458085830268175789862432290337126691628557342026506034544027087135481265123888442109558831637940173868228914977316694141139668026886031662653108885869706838625376724324226467079809739404653179198874271496708141801443781899964746898395658643251181939201008872242178086314301703299064505525548918433375021068229616930912867481303679843756723798996278044030720314804094259674008985629825671451968662606344302960930393766724801418754835222786983474046005806417285105326605789766476626442865464356994128945320775683362339257154793172908646263768371145902404561698247631790014116314200532475129638286884009114525722139159918185171410784892930374404885976886479561337774961829076379131025689124451652571351168771279734511279502925295768119838739870296349448735152908329435806838588156458201580217994603605262757028851950632194943417552366403505109558033163870987975865162189294977628939600876112205020059990838480549418425239491033960418125545812743259302415754078450009714187008854567079813416554643747889205021090160067968317166229802556865879833362785686066623729304508260199357578552091138221126205293061445755997132624755990361964246108186183630041041049464845364640162227498262606862296887751906314439204629344439244619217220385707496438736810093023626379515141669083631512114720396478815857995300961248191563716223454889866034581663274595942353422178636958989710072689146531546027718492378724176549313763823831565292897900104678998133699006250104725439220133629860216690370275978113657863521711362854907010712718244102741670524813085884457630503850739784441043111224675446996720800847954668981509025789078324391409366718577506405798878004357311401717225354569284136057678258185755328396105030402559125665938941094209229332543994118239298548605469612911196147006457278584667458920079240730211499333546900458726345490829088723992904923452481309689036926425545430000231694672574867485924019825767325579489951721287481738710883868995274926707659792995134348457496143752147813528310982471768568630947994303898361424430252503296818746809908438287796593326383221875268163355920737965096073356839522389799302023372713735805010234158501600455518721791871245784349545266181846622835247604531173372554159437203946589938692016520516817238750517169344766873819480582311157154686119548418721756212055387741299984254450170813337996323636367772916276300552974254992931994362215132550040497762976747133731559018671288309485679771479422774670026638905585057547406785216639377585577743306336471479512873798093157597199897732906947956783681030806394860445682407235500947023022210780532108136423257838674513460538130068236065063829143395272069944397332046667123676577492680874776267157777501186556448740577145006028057680297408138350304187981536712923515859574733487443674785748739181899837686722867047430580276746894101847506500760191327396197794270635891784682549914931412721926343050442532683579068166389397447228070842404631465230492984894615935643327032054682094764269225415757565367079219282193788283696464192190560037875869874937240124337313984527367700089054855450986637306183732534453942600612294076738340408531544752311408993940417738343005773401573849230112935737893300529197888101671553374077446380531631374925315289617975287543866582585124654729904645171909901985071382619198658658386371598611060373452635939904883854956665243455676584066372287155365832147831717290987205231213243827941462642071908431429496162498047260315802488933647018271371367257011964748032924404009272317796697088803391047966849448002717361663847560623566975505511366982754418176808810332525444293672698496326601657569947003741068229693773026827561272863731594167460730968836945710875585499949295096148202348712289202725833582118037554073443623115659681760860922309112048512191301080209320328504699035956901168577285935360478969287114807475040855151488355445715937517231244662023536226040647136607719618499677809318029926716161692281216353407541326893963941084726861855807385051818352648241251483921050136642600622178223372662536472506563371455175268040623467364441065505604297541355910450132319192483640260826132829253617155150631378028044334216971308177949458572504739395844229787258720454273730959874480852219069693482938081597347446944080437866638437988191078008363736890577149768700463693066389664579756161797391679785844371548673116045054535325581834620692653912689727850586693932630132708160241004151728206203313678066977736478557796142597062315921765302026804301683548352040224749146768335184829871307787296585389017580401488567704568129306410074087964758635831454204333269465279969917688810676734259951088729068077724591490455566039887478968740574789430572231359032542971372039364238963940299108337871290512404679126069765284318558325236701664863071125649257240694103073276419575266998570252151632558708942335641828978215238208111082495650599907762567843086922806348542952582442798256051674876370655457470246670721793028699443671708957749229075289875137493964984188263158610364259562022341116660043742366238572074863522388724706534934830955576425307309885246113232603899562218707532238407579899682750221799614172803663445140516065043965229127907847397134877622020603542811461389130383719431593646250933901990118041886977970990647060129439311001584681166044216327407627654368894805546809202283277446498052558427593638160288482026576178110044942350868808700315060496718353593058973160139766129171962859242192251852575140292854810010114736187219742749677243640272185163871618253186722540603794986981780470246644994937760349012938256910387810352743016833865214834501246361133753898923828304755169657203516542494644075284570624413601131923173867861798128081149222884656856174917237587752918258527684811097353910424307178603600988275162178193620303898629982831816927057045927366869965881826225649635482032933047742579985900034788061271703076990850922857350075084199801159867563906142618765271592881378441288912162155970452701652276763140399361030573910061721624544061207513628853778150465735081195381780192419397185583461326110355732126632581459251304038630281015354032478780712264554337479575450863372494764645667287324617444932988458350648259690502635711408534909958537276257518116957825542873909359733185773104309530126292717459228635671386009562654041340904668198729859639540063659558483050555951477418459080164927590446190236799582233387717792650419122145154730218980675232813388052846385524639488298870552654308096958818347000965031679615211562132268991315873375185322599910245983907187500817471335155840041391000476100723803301697765998521926714324973455881024932473402683989854117066490101165759585171014262691478651181848733653000092860058616986534841880011115123356466422624779109530731609123469626173184755272754211974590492101245483732880009059711544881711129869837449826994503555791676798824091869393213763996777323601385645623056344691712312291631232493394182873645171104483582791541499204148641035469369192602394426007051949882714159680508189328394718950650117562324214798979655779600866370884242298783785939120566417378781323269122259388965646973119235019710358618068921476149809062569798241668049697030624372871027238725577748248396255975500221708811868582248559161510683017758011676880260580824818894511064493579143008498772020672163802463916977154166489225111703753908028888220080463793559495313414597548303948552828328368657505725001782741486193412265083214028559611267302768246601695226147670622508849301148793207594753590217571052050770906992164192149240610234501323680101773707558348637047277174593879650394686905829028350978695734530170934659354866644637404168713407386260690956820066495504730828394755414881858089034908580088456769443958416477708660098297715304841187566577901363741245443867818905428801848285384131936845923433657960552752049668858970506887132952368400011167094559098822033061940219837881276332973039600073939634093443729778966811082422554445582137796694042193158018387507969488301799171197627876327229233298064384413760564526133473919392242855641364913315643006008010933374491364230914413492246412756510789808577081297669739832595895332705545893444458945840173217632415075290843248641245467547637212461039982067759593347053264204163820432991006070199720949711787044019637771305077343032729924001116371219654765205955920513492110327969956931340430016243895277984757547901044379947734827463020518293581958505120535955006750220373783273512589730992295687245455845741980392976778294099437475342556611829377284007313059561708169197427659148382845395329464897963222972063392957597902145623570277913617145953669115161499403354707785280304628854807965618786495958326955723857634185912141899481372002711796106405658720647899185119941667883193904380325413097508388736060094047437317996551752246981714190847468822906610133105908205813561133440101438182959481612735965149042641753957965541445167692166631617235856004711214443571067887443020413373958314983812813082492141530189241346253548215015509046664619363685154175627106104236142045280409365373277431351609819158724667213707748631572827013571654928191673463449404893334577635785986905990196733634018891694571304363430703783962424122988572171986392201416455045432292056970545239532508337157030553544011661299443717972448363183395073940995992446724594135207812932840608059496761187843976027960367810759282846529533567567806906628108390733191293790180719866340066974306233338688986256423864387161051412473277256399312979054587994422362521081326453601026106454800019041177180845464474224525903552574709129276738008615376891684048391002275980404714442862651132362421303093955599074563614605504649173398742389256151572622023242484819025197378107593039585187154433382025762077561223832391717908262520320946472324664223958833525629206629092263181400595261967740166299719616595963394637133996209973359066683846735105929262023325167766570977811710574349935087184433768900204518617379165113041849347842051008618745940962876476008362953384799056696263446665426287579937708238705713623801744207187604445883547021674612905465843801270564221849437338505488087376079373247509178581885016934385446520306251627732789435270597374444839678351325969200265542778560618192600398208056663423419449281917887185825603631054494111455638911712587794294864853950170843124674093590631949392339666416425991132671832694830259851523806449252193861154603005787282808163085716373826660197128347889779376972304364430396292423523646530152935557929978176573126466741629917845182880973734173129995235209042125162155116623796634745203116316190813528329771317995751664219112638679473083185132399173623668274448803317702006041926618925139052463028280923007282504787290328298847524977311485090646395762203175445420636973903292209381822066034909089754703252562247405123616409241538350072063355358442571764298108110816619820924752360581672342650118232459852412149249178129603536611086675489095229243550538392375697960656063966121902935806071701639302595876736275322876792495779242167069521038024731240187075376306912170330568254466878272628755345868280045958436855883837406961209128541380273683246916362255138023321431487593103917021261984350356817509096239746708097685872489174626252171491989374780564906420625315539434181101313786609745422109482046586548222221009941583005153519040200161047166857070207010312961633797453408832698468760050583361837731155829091862526806915498581008107785462814299949949832550936914904440892568921265803615514160787438290891242893795321479056915701523033437134631639475920271789416425525188162479278179397431990069475717876135825587567630463651413788625853942090013189047118828950903147824666445215057629310468997251839450582074068991300201046848118013711076287884583236192484995239586319026442106949711985942842144380671094883596812711986761238821332037879535934985156860199277030570929653295148304528329530825881258710962870915754817858695325448037230832370978340596340244584684738372580529657338509911814498335911956930817333757856400476012287988954583313844542847110769736979194455379743474107125154266140546563686231480806960655454589522581764586642105601787964033496217864924398268436863239982521246645592816165865336058548856665036031749836671389324513536198365065540145919750645851733737206232983312180188412469888902013217576750619657524982759312691383614068879210540862468767312502242735256693706560916462687307255403472121566439380101406904242265912580311145648017892505661560424880865839642100628679370971675925294397503616318448246632895597646371734309753979590425624748738777541931422351410032648155944225764357905756548182438731347478466359504665655824060609788651316774662285646651583904248103274480703925267290174230656395745645572069424845242529884962961669612439345496063202157854063513459425301533958596773009460290467533011360561391150315204199839210528885526557001357923346751121276041942397262222478699791669799325720816337008817863667971483294606040869046351525709506976021246086863151985472136814515354521448544648401163715801840833860498992656616805218170905067679590920524691568033904094275916216330301553267057795437815930783128653333019230606908323803741411300434039771544438951562450992965162149205494755710463608843811967708639445648628613663922862803299974290907099890254237210029907695682930984830739114742633398347233726646706636597135435739671173513690431952235216301782948611177211842460925103198982758973967210210124246200900699219382321607776169966027169962425410270398478679501839016588702078232628987278166851670148225752577865899145679048700012758949684569673742118468469485389849597855840025584512700003939876185193967642001970462830234897546362199177624211032754979924613933243344186628762404794158388579182953972912897625348162255211213677917900138999486957477337991983473699605778522921613312557574805250739108716866186708958998555006651079960781929241299381411337660684477832149552366676509464337440849094472952666220840590586521241126656146413498776451664109394096771717238539233897363681822899730913165713749588146135106696946328698124546558459626160373457955410542745958972063258047300719837825940735775591265068601684704407898655257298350348673351462485064638011592784383481901919821475460390485612251883273495339196012454638947296766439925955593169034958020948453061210955148896159301389971233100218148306299217971129530951773726073424003169268193177249259636472991610773528958664477290579163760522772208807292009264491203279644045859937895498333243455946719753297215449641648822135873197233166681746303667825467322818191709985333809833857726205098098315835582377904918798749605027316069310025587842275159350248537504575619840116540883199990039254191546105735023089837877618448810117218557686104663839931051741844723156126051666977912159164798743584941589904019975331772441202633534339266466762003633652054886553197424080391030675164104677180947355248875962073975620821950285377128597954925290060177377561015867153771332126287646802539945889757517111985892212041393779687942087632200147153481801332774817150268567850905131697576231661537125501757082299913674614050422108033299192860379831638180134334800599694406367263329087519794733543576771849196031880670554601802061546874939242429682412978602398442732768927382308717515232416837121090268781469075814527310543469413266473434661046842233308693877233392254693214461266873893886535875841469475597630133700259021545094281695847526124083064289625069148242999276811808115984525514065958448090607875694604563681277544231628952621644821241089896370290536253550828998054478392824349589562609076952146189595871140479786054683850211236169751382336174431327772081011049915949515672665839716374051255891965690834298294055030308733042442919997348896060069308460646488905855066849468312149268219081774454268024394760539303651036891229072255429203413389804140803982369546850676006009311663558567585431263440406305503308268815321901043473008257780763662130886431319099893326516495836496182868955659134401316408107812557978169239919907374716483907116686132141189721538050961815576673551937452348073105478969646499476896612580520797998759955280884422624112333948525719736312883834752475048028178846637807680784930544872647198799439398034831870611575940540930147264302998529643971572825695991001403436931633352216333601467976531422169665652069063403102950773706572925899655977921827648559341821005090659485925530460758249854657271790864170381603431730906950984086891417481047054088945539745340078026110633170814333531648637055208232929176777606703600861463117676455330872822336611013513464419512888192755815079404655000544301335820780385548313834105800970947091749498981239819251985257221749917807894131520252941622060204000657519119679284801684686062001403849860330148797018654329604210264430119042994104420531481433662002982909121695959885255766533915562966009928297703821156200376321219311453485246804630587216739510958557389192293872308635553364534558574061102259859116246383310916780629411753085253679699464922612959361447766638745315184623088581135635454167561982497356721538316139418965177256836447726212033735869589749350733678585619467036276241221160121526571277137757078893403288126261853199791064512956498349303326890826370815646264969833407914437018845007655869025759537234910918994272640670863712651054223983313878356982345337345707429134023980362258990120697234065168704128961498445293763982492727634635031893824732987246093271098046321181092303890299511644279640184238852228019287884922995189822913804100975424646529541532567590384015433024033468833583524655610474113369350418888033704008399996851649847828772693497087451399584640873020063478184721251335837792469507876298612024958261350557724235066361397566163896965436614145928969282667715927931925228916767669950378874729975881646824064427752289156984037425613906082616286012645125202722185150799630164899530617747384055486400156860341525040668973830635328865759516823949313995531599220684044031738145543971731722287192571482961731008888667746779788465508992381224812096704120322842042603075736513320097799020796441186764330147029608640701746699957932717160565832559535806957077003534680307595969286091607228196941372808143565199290847575564443701513673771796531953811548845073938011808745904480243835867140718035223610308802258846150407775232618163090061878232770433643826795595248763505511200013521045382827455121462078451666135115283429672385764338999526642020860657188751509639309383393950451633811653044963571428947817581879538788591496008797441377481724910209702838945528040207188005191790579749881968248939090547693792568983414730261449042932736027083968974013699740402173829086210024077639670003288538360811034960232736378334112719186709985119418030565027145514448332950247320738613871055943470738533279134525499707221093909076971114892405871267977692800729223572604953781850893698951855327940369679425835368327576848776768754189758017640588362681799070375379152368095524603767116904889013927817468264078756273652788071119672480760708909122742217496464607683496319043025847938521432312509130376469396030804298438723859111704220660205763175747471646114577584457068547051935229935837764594520623402753904935586094124683195360717422269406805880888642195252556111709545525359603715792761890454944015126491576262376504546718606772911204751730274082970540003099565037020430065628123464228272339436515044624012074174237133992646945602186702245120332217813628335447305214317095228671912077510842314300673603524411701982731795269132090029614261777073543499270787936812107707661817214309612539019431112658418153591378075342935126465591482162499538419451436750868185501223992718492781596365233124762245979040117362114057606372270076107553631515486037316758646089632225934160428813070517645947664696909896420359402280258084098877172920389367501062519698414520155735996723180250151898598900717917595543857233218739539052464469217300138536129170697058209093614050090837428491360464168222706863255769021369851894380604628186657917717174025126433060566983539201396378231013785040112341629855644903287752391855541324267727625494514999471454264711617006836301669907024133851429268082973629460810238589361158043076763803622813060242827719324022340294808175713417018281954514314513459427519485317073397157995382478302376080428839574084596624829335924230323730547558496438585521235938966968812608902513448007283039720022675856292474208352630614791996923990182592784638790686946824933324641336952079816218083853692274943285925167404631452832763941901298110207839483870605628901330777699474721415485479563208952009872238021785308980797903726680780991021893914447995255525015839850124876636380588844906652572292919334849005169257433796805031630595716851866431189385843130161337451618137258383885851470586524843296508401672417463256829762823583332276749375332944312204992434646215311578635048772770997712620441893052459436266308342237501555206757766524634860301941785142941998843983076039760702305923793346563482624423909886237922991565366906740917889314709815254927273713368289894494026663007313078526710961493457482699632298130783886508562423163517518584198797902448492789302917754119108771467164895370263698451143605352714839667071671526852827773814184684791170302937416161618049199115081039403826615155856246854843730608679079472125543747144128921408449850903927785035128176740353350500535091776021788152646756202902171603585130838559693417678280424903162748780539223694624423221329061678128497848424099255754107002793032774662076750426393027300015978556426291063582269862331253566368378842656233256380597604192054158785469220984822562653620849439742555338193245261385631533278559213223959093428445310314740545343832029968929467501921224902929100441159034932726060133283635203368279250835474943300001068992052340170421853753572774135167208796976639749629202809740624376220371436766238036300701629873050518311554106760826625679370088940797379754516533770177961536868160584139247974216162244320898761249723381454524075716669187888251111936240997236618905246421112626132092885808739930445668525104224652258264328119228714663483387453279765252073953829508496381053249020257619104454380914647654713459603012198550266922544627411845552147935216212659216589928299318484808004451546484920026311266686526197832512763535334536217982382432210630388800894001362462189535522235252300171822250913591321450641310409711575236688428712070292953411872744255572114862839506138890526499901543580471529186724708040970531701141498491305063348815980357364608397780650536426502883819814831184200400886695819055746515428110048657215539774787959539162059210748839014937526525880680140597339171581109317768436977456939922023626777382990087371195913904636747997814611632280927976208162247666106874592175404415687542847977227759742001925460273173110529525314118494035903828875730070651389076126151307779666231468812458337514810233258097103766523232291086392577093920465797258182146087920682258080262592312580926467091017318743847526950723700911109342298541865838456222902418211528789528540357208954413534134927596232393961518151095780589798776658633442499346060617809553027991142134118931774647017959327568710104485585214944840988769963093338745062576140524436692996264509448862479387156965064486229705625172545105666289074245220115191135196455840400937242783739219937890830633132495360142635288525557494524032263216967492060062701456831128421641147263269284987379181621305094751595054894162538672857476829744109199177737540081246543588202124022434831560929976273787568465524343400208401072284444190548382417219730156544840772302967130003091952264967884694126344894635360152119083966770366534679774747275586039882321746063850365527763802688594436460088365231590424461862967088835407773281084206291966662054990073129777332767660391244806287710580915116587357631647280409674304251482114652579416343161294139664152534764136745902529226714489677632216518872465766821937184573841892233141613161992534809763799213606159581419246036946113886154713990004872266059339718900588429907049507436069994869548359503459386466537559547267428343473284008552166156762402295494814612894984111070353467800052652164651380223131154232497989983776952020304808398698917637237297372958055476940626633781421165173553874853558763097405849637772785346587420852510883014898436636548116579521371458753983044523941409086559391681250072284808539063032230367564914063355281160237296335160170690934404890564016976838745774326853980427008866887993679965937286903345753058866587279463117541499647491855974220135283744117281011307072076733938986620088868962273992859666833126039752312761353139264320076820817381496230072990991503763951304654804477071894028930170658568976834442536983262735166340899222508436667358411304657303873944533652407362906810367379716645512910202907006045570170795538010404370648341765932811262993480237089152367446680739305794742760833682844417634087375801997877999939515578437915345755286725591921040060384589404070093759641788560896970648987239911960766194367349735711309489158581449025399401669152464542393178238993965588997242201138818876915102376210955257573297118962907761632483518909783809853153965538570641074660810183452604490123930176804811302104440339579372068204599798269807252857033530901652804816469168267477571303931375626417604779346897440663492780565280072193016709322473725674267815737306515550954862446662675520071419607035476852175667036667427176632035799588815158226696168144146471487187835225363085137904332211043238894403444790287307172444761207751953050375147854825435079670940255399842155137744567835545102080693605353427377136723910704760592854152853875403343869153877643617556752013614585610382757227995668568991577878154969838995704625177239766761303143429456042250042754122102547618001483892544739479476466974504408442206505569033033364094956422700567941335754450528335745174139957410318642424307516365141598071607233801600765939121729316100103067000712991368343413793210344795835362549944751139768735192337051935090850358663079476553597616846761605550368549886387839687414994363276153579485573346840311549343440663831806361016518843495594901047308510268434619587583756196977231414506361727586774579598015463965250884583840793034559175784583356184496406486161767941863812873955065574960563028892885207158133560733214480986375407083936790155931895926746299617587095460473518900796374983034867480319144292040977133111031799543947716205561025680295141180071080152003338204789365541192411848733001977027358430028713964340807177574852809201364028884892257686275046807352136408051874583925979385081179907954752771806382817796100798865432647333109572445799148016487096575049927119096694767904312561017559110848388458931682242827103924212125458887630544195049427873975416173177850137408474740079245127259487628048019453677209386342359235280282569433908258278498274725775754807115850732289325555000045004419988308021982673588000526239138853784037833851018023495788103178643770560732854815337547090147541224494063464557298370652680375374076033109441598410892090563616952589199873062912226795210578537839030649770065877937304224160329756778879783972487404738221738376070500256534461247737014222136703472370327547079113145784264097188880898879710132283568840724877209065409285967800217957881449636730345098164770117228763963888302727409372173813726932997266112199198504029048250014603881208001916527789180756634867212391397462579966466240487298434523034103510705829156498787687861126154018773937736115936533051595499749029168540935115232564001923220024695710240906188281681233269664072794057120818807506764240034492834145055795402419786736510915645861919436738254770741624055337267149316898560775137559594255801145156526603062241231212218272714698398321510985106817333535328518024979909950109841996085131323307013848969697413205270145454861713409718771227684742957699688569218010489531127335573703968491801495098646990787466922126254152746011793721088768223655744933701191160433750185855294531925775917455083886108905168808564391198338137594609884745659471653157978612964181868076987364006348134633521161097678731461707676120362956506455857622607584809876719173615403468066498440494776538439678677119802037941794004848566697774729447690109619323171438347783839610748844402631542225872014369420735251301194641330318088988411512596205637973462256518688099485634702744417089496236973039002013323160883382625247766832307448167564065474125811766663663583936361320146690931781706291331222014037343661026241458814987588707553894472306800930276199489621770482501984457164788378170414642021319260314697425213761274157466143874882293264557191255492972839294950731003712984095008487013262343443322517408196729661266356776315029205779882804316794009809200996378203000493510509473320518205337482981781685483081770419661768862107669694963207161178935897133620017742596121574414277654163456631276273833659366861554352887514647560478026360098901301250857650252965541395517741379287336523825934052578683448599509172077906797105657581066625184794222904388811026315774771211624094718804269064551411684331373744829697762582684068890798614065875023802069745363410852520580155058065619832116629025623504301868402592881169326563081281659126211959325031411569816341893561345087577808801128095842776159053839399577906382088102337891411303617800978614722689676755618299830061625656829470693577853556496202541767068798312504486794569057861453782334500551272474082708682019877064522840160002883686467253421814825976111792948970300262073600756141016035565431062565478342453911608150729715479576158624947594019062753413396648199649358979942235223073783949595497518342203842302156416273424549376871355081131061300092074730855937297957763689595278730115782592851677272012213538676024830971072089714082538701958820994236944116542252275012500230513803541418347786415848763898960276281599570501710762227157654373209133015425700756034935761862943484295516888515611128298273377420318900443990198668580035542397587417496187950455773493804144610565795605765620608438301672520933789176567284481233817494340952810588074548826901008550257206921019795045616905030694376109322232153929461533092399704542003676534240955926304846892963881662803802518924018297438165904947999465727979528463019204530867398933470270724254518646169394191738069560535320907665817930345003371760579486398866300066450242620218291765762552989199004792399185271508535955564583378389690372634312178869492293268695448666909457230989751483579178529840978986753295715298267002424692480565821822857263614198924620039950658491418104979296096325393609847812562315722170259123853630575980621045040371779072195029189802144586512681816172461560745330598417949492219745524502595157320270413453519871568558777013129121988615335812543929677881670622198601882408691637060541616237169270275410168822108510648499100059846350460608510757856982277869203293517874020546584848918446078228250760500444319097114051943726568747905883259184381185927094347975748983625938055650032772936592676166504798288559134715186401497752286457220434385361962037711397037922782713921219366417674818873439205297464265403913338797398354251805116124007200540979540815480144521180817044688603666210716672136052729562111916011881803258221914921639228988334851311809154562091680684167997080621170314507816092084765464744360957687024239738144495815601180072528156677608516414113220365868291409530321175752354600151081614634703288264146044090733625700897984456385791074657854487027029479631002219869660225114407878634598961294585509050859738224750463694543122794693572409530628598271730345887753083224440729052071580892906628419537448791373891618978798350587446398366517229359163324809155888232401722556545666080792238946229299301746698713614064488399092254155791960384493341203026922109526144469217581401250167825505012834516044612576807921122195508877562045892259636105999249366811658984311794780227449633643726218392458841202808306363681556540915097983134314197700934803569434881066543716813537431686815551735263837226854951027244510116257980968591926676023528527053147164893833209976446023839187135973530988136809156985865431557801487330021208675672598076291147635138018692779156638475127896795291976114419552125894974008081944835441516499877957965487445449454816967968149265579654114143085971446401750477216993880902745664230249193402188941145373112455052756476715011680780517399252008065630586315475598067589635422033298162992572575998035676472498426550222759120328123139874080567481893399634063501752537608490785288122182848136786104322904012433317920215089622591287293456628715430434705775069082093485087918194008519779934288032082197118192378514349423637608908681295136670870062669455103144130618908899672335518661065896169243363503917109152686314207090401537398241362287877338500773036887881845516753093562781959090689943532834149044394417906708859708255488017443719563665477911574983192740587446900114900448834614830206261824618896600534109135236740118254067184456983437248003568406837893615407328150880950316288370112179624895052259021605683696447749002375852789223387915485528423573993234270173795504374512121692697979894268311523659541320377212618275674691203674606521489350037953118054642943907783872334778876124230433670061818480144374353079957881977905449531562872212150592336539939819368821780473952815563340520204406706437263278588236084457586383405002669786245329024255465595087777602834035186924687510740038394854813441840548638908719491638554977536328299644924327271267219238446210758648990529395124722065748059152382562712415125702836683018814717836879015316541768098060586220115221116201119459354628266421623991947585887922803096263565805331548157080926564618385623335439589836493374033819649991995366726197023840532991839427899907807921827515620460124384580375154656351743978837638834829896286536380863597230887806750864820112539018918458859203989233274676897766309271947166503140676573375380645854345213504463407699855020834320849423043135142034479933588968551194884475568961470080052272376694597844758487620497052616677276106442134543108752554230682149790428905117977629083693946971005368257234293175852785939282983884191084363821390010171009132837339747958441975792630334677145078984421068115696106335424845766718691339241996219364032573646040683035688221131702625617601922700124240100791540427760715921784387549845586040905350865242691004220719802208516013325440713633082446419168162921144993161649523531243794232613842749732938033862007320785860736376872539946571133098104324878071553229115081819508380732095553933353255987565078000856333860973128663891625361522962179900317180117414659358821918982965883833227963495535530368396384300405689407269262092450311360874687223479831157677479474213456358128125823196759961011647695785300801982445885036644537445349037957634887901291425928470109517913296186770849220013816270760212726235212514467640347805029614141246238439591302262106832095261671301743116877884192940331307809654103134918621379945072609784350553256015452057213642742109070758638039927084245133255671608831903134508204754004031196610600326106441295364791323814625256528402872346347203688069294116460821146628929561795788669672644224661848386390426443623337802159738601530624371195569864591661579573040520766668118551921679493371109188718412430046872508821588913015506042832359525825298710308156193674610573156247475456469442057687606480812634323399924481767813286767313376395753094549486590637264022249606709394335779738401273700929913822269029333930819617530339901470621662397141115399810576220465993343749752362812744169137805258934840439760398722960716255632060061289606777708213354073647776273153456275881167462694349369874041864838910637389918056941521956550386106065124020537816693370712882608057853046900847915122409197694067809770459806528664942482561951416670768880478051834158365443639086372721742582655563443651841869539400860195463353996006465250788483869957044954523281314006297490454689863465890699123208847405539008207695607048812701152987048420577739657716371088479847045354552970556758264746494024666296238030742504259443797527423583307388077100150649732659072857881020183411637260547160254851140182740352304933537237574675659732185906966691720100354626010803746957607356969176587879549290165622723692927494086521295023146684169018701714784185259216907159383752914543975515482270854375107911133480877239643209446470366309891058615967308917078708526410646024750748299686095096105253943575788881297070927071010172312819721308359290090257284270943406046143180558697334294122751448252475294347678186224323646520148842882383511285714769299344535417277383148169112584289990529750490992462246189024080506642191100286000362944092342876804333193774156009421660569742342792948074065682620459965637045538502996923650819597663478994578091778917761907109191660917675294300988835721702811079785394804452099098941432093111018860025305980094847916133310125225865958303758985080591667343849058003630586343288197247832584487118537530136880829300631558789116021745336483892562842867172195617722411725734630116162063719118018434070828732068485738810827406408780932370568404768325299688164970923682215069376697351486173960377741694845846244842194678425782966923997144219238263174683944770678777053645981013512284421473496070667194604751477666794537965521721306346529334008972389836949535177590984858515777340237211294150574856662009488478462360102328384403369057518774027521157049651917439290869010335031536472618924470228707000725013425691368188749852071987677871062200573147392222198133435102664001532627391150735645732311847255967754184472431014716561936135381669687062197467479968476587556750353968405303828205241805392810837341570769265886232121204867596694464382222317729772360065568801409122307360565745182722206607879798653459453357272275826844670518554827189544053228570110799562889140137493367843017090154205269354395281111887698245648957937826092900904659537216342081124767289562933376173123092858922148131331015182542524965427311602495377864950723957466290033560973163879201570324019640113265100698121772857966057872778631556100904934553626513551128125827677802196221491646291659473725641158394703119239151365301870627163687366104104593733829978885738963636235662369209881502623985167747430258812866441219471468285901281915684367762377415104834877383972957383781532122612345261939885364911005228090408510549044816234328724994875027775850154987287477669159484272336304268897628971007199815290426237118012570996314771181212448972461808911010881437182753443756824340332165340099428536729363995693381924069912154003792072261053865472589685638072663844872899007536400156373593486689260439010407919044969190114766993625432627092237875298377919922017823832356884075392119118784547573088909207068641591150581926136033442348910853912838251006748376807296829439898367394085723975075839804362988683229866876215972168064955298780852333085977324967357566992762548069548902597348666751122761219395350549329916566215139048437843482655539453811360955873601927390104079822990067886403941003652124709198985232204640117906364259683748129673687454960854555119697513179569532701838605996386021307927255082954540379594114290598394061743597669672253172156381408399358602092052036433055244243793678459841643283947825293802752822216069970950919979050612529974514729563257533815427175091149316109345836373472477308912264536761282835109805207860526909755398947084978277547178443946348259230379499214538798752355762821340844070609053190505101627510778217160703059392486576559326438275101878040797717363876828780378778654788454295371544213622511637171229784577495656598446329090909199107246586979350123660872810978306699467702073030794821321657112153991760958360498282639552001815361144072566290895863829779388395371740145665812926747039968955445418506218662980425908726312487317510401019827116468124459314004330265945065878074707946750121517509755312278810982321966963419693681678750599402391461842541464944793817814221790552189849971747982168141270937395241346898320966576779792267952155916689808445611283366062711314978466390478756592285689940388606608824851474596929616568312203229966265266909706860548742449451372979969720071945661662364267744822416211017098660352014705519934832049634023646871582043330897529875360426190200487439068718551356073143816244352371570244014286553333194111882428465236826651176241363378536610623313023148095460141827312529303155717301406344439514023722881350984926569406769450281420608714085454114565263489531559680270397650748009656389341372840822983291507682974751100576301066592965890583527636781183164211483461390408498233855549117429061000802921265694267490052210786283889948483822764451579046247436064871547198395060268007399328281877577197706206201984411938049832871775753402068335555113521571335516980474765065844152251830460120679062472187564984029720174985450706872682631217655422952217225201241525328490892192785084294797136828482848497805602657250494085517816287577750589631991451141587123544825300206968884618357719664411500024822428895439200733995138740332202120586399897569301385504416253741089053391673367338321562862481509343466474376626002416653744306473716294681226819616927872356605075424717152657406214460581633882241139184994322605106901770268892298108960016672136383130152086586464553039516146756634385402065136869692039392758425530716718732082727998562539913283584633382021191432077313699893142519603517718481886891988890734623417153686573351608656077904868668802495579931204917719700205547348199227854779262185430095247589758593560876990205967576452963917094082592332894577590272967334625653182037952576348775294245705895513836107087496989079230780298021664638988158711653533176397428180210625209936259093102315905625257654498712411994581764428904995914364364991054194179277607301251488976865720840649884625055648022378007661523871839857613262543749740427104273754789606704028152187546384161457627727639223841831663053849274348383622680534140434699918918109263358909064611692614837413148084992195995176165601648609824767154811667054821871267918050846446125067493837633537591911325749756483326875214498809910516201310040949180401724961465350489336757512270729672660054145181264998999862736830509762149450817919820063963637889013645130284771549252230747134930340871630572382482838828815021077407802592723738884440364751310787866592534130126263203456452069167770486299745266628683612388369486778884725833530307929600102320055150344778888474029336861486873656960187201717162655683934247611182793478183959128090061885963055599384382808470038471552786261379727208083270731704483077498045839744483888398545863703287900944712900722691347241321102473109230460201776420692268976580479584732711057124715001337486542615745467376244223521799187133849233941023748061553156738765730223440248854425930813193728728717480038586574778438637496261202947389534789840425161888892031845282304648332601627591270969690953698418772403365111902848849643364773802060177014909851191547366560494190813249606800814859804626895954673962936107127113306129143643804278198414066963761496456275438306335473503842859661310108113978326124748351444050736808886114390128148558317800227357353014899917647710419658400846988028259497008953604089236531233224386713984597729141308417999247147575673399282949914212043324572942333368651995704419608345423097715353100911943073643898412057166357257131119591589498502919998729468297961830456458085285430229118919535660606763110048921591912374407810919660117686233805942601622428876634193241041854297783453135914933617035699802171933508685439365751504414337415667596316003279851526599333606917907297076592205535392335233021072321044299559703818934976761600035444537839357402898500109593617704859164472425421283974407975737089278707861694399234931172053383819505043195525807031149231711055635461796649875057986851265910531466087458182756795233162818693907748294624524823767389332823915908373462588372587917757748298011406502332894361415665525176149786703800035177309698652816763707662479797575466192148174247095622439158480483496506667319170350368063392325649955834632670654787909899327319021662184624091732710854885548086715374488266049959973741757859112420790916944685483900615841887286880904715637908383412897879829781719552837769845002031063936480939086534926061740707650542844222466968560162621504812284059033303406761120453648228834900270282960795737918290598246447752050010707347716399767886285341122107976783021368422361875228554303745305827407171340450899899209300177247952170361146755413339000432528654729416297281075669377007432554867347020997528791415476106716045253110149628892411794371778661045561707337834558508345424900972414926936069126890668522665481225216508353426887662760899779778636657443213189720154473638730370527204766982941904938203481702937733784807257948592134208865927184719949001664077991021913792303757863646767794408402845475776839762184800706875010304667904889160990077267056709303796182240314820842070280107232034750666916035420825979659811602335791598996788305250200611920020571667843814913102169522903849606961271892314515607116584805528521603314060627902353505461858630447194035390690782077195092328506446413116844727781210754350749552296515017977571073978914497917635669674908883724687231854279131325874642786259010484646655666853618605266434860222195163026243903650359773275257089336876212544374248832168385110208644590239153920513965330620753512364720911666988698793257709644666984170222282166400043705003609863080145723300563590687842424516003049669526021174697032440920308992757388096659032922620117255579558884189124454301751219703652860897924579427259730188778452790761966034948166831589723104656071812218465678579060238991475290711382477800129619788240503181323187290272799557396407905463760845538498698029149025990134585394764558853035641612075074974418645499284095380086385334203899570298917690198035262936102751146609088585502569122985129257659445197801435606243110440277172923447493025929943856879925347535214288408590809824223583312326360976173075980696678031322404187883292564630531592345837448605323697623760098510896760907455713571825815779531724497557153455887441104882164826086231081554050683938762981828893245071713138616971819930830337987308116929947876613386955875876301214717397227664077374333674108983972122609463787069353420501124348165305987894787846582529867869315504742434403004627617020330699056046406207992222853787054662813324904608271553262066674618051390540395853643296381593576395784780502816233114631743717366206519504553751021702332207050545339504361432642176322791921570313760244061293130345459868166171297384378838455054573833646385685374594747912184037093991418738477746885538744448031064491460191994758206724983999362428868127102072347234538377614416440752256097855915227176283485023182271176795662878922167784337282583952957539388015432144867292775973323933511792153534098496572763219380557614470452112953928352127754003244176520440445599793236180425383981685783715132597824092923747515375007323109887771074693490146602450231047799521497424681996162124077595829902010044329541758077322081273959912341039658132354730130745203392520008375767811534001802618288382023664180250238557006097946270665402183653643764382264376298763190810686726754740502423138551396084510258318604460813403968059104489273517894716979387793161791597873992043237636339593004610870518808834000523774108624504995883595940224227195245144639087165875764563587188664112961285489715430315989400461772799504738643144724675760632336754977906563094749650957905350333076917613750508633729293284816712224523742265171176310489658435295919560556999503624412414476557980844380427542647099499993126212746305479617599425880580452431547183073655554822311706033093941697762451405184692701279125061740695110618726234916280527935645396552734704316805416896881551110621120316239584317632176202978287283352147583369197772215864108155865135692213828314678546138582140988996407796325356116964339672374942106928417339624245245202228731786133407694195972254957829437227428383460492806975886004706015071675431479931946281422292070883372474528533299533508403131824587005375770741519879121444611791651518697204751643552725539396640986811318574990328783565962068039357920132700482684301632505312507932250235749306858181391014892938147211537705619052541720249853227970811152219750958855645388790019606835999329608612135972490557854756024904056734887869705503005886157910365225566151234123368625191227597548892030078480521209893244414732507495675619063291598345265473916390800218682804551865329822439065999538177400691702093355661341108858757538941948806686173356509208456350071485994601490595603665628443330675318042988925814712528258692877586956319625901861357309393800050714061258971019740426910627452183526412864871850190384922293216041133230540931146810578486916392679613099231851470819883839475434994635555020515475054114164581607742103661526136254970463175628099802113405809176001749876389026574450669179512581493157629576099740905723471741637056469292968699413290997022082175991210099497562011563563994324046082556650723265451470502193915485409283051431182579810854773522290336062642046070267805275646576336273037235258640140929223549390896586718548320516000019981521047428834443478686408524772928309734379286479788525644327256533094686931488305744308203541554703999062287332714742375132710235044093262905215981777944752789101216123858837989396806072171674816870923000537532840217906346737319048272176175062394052859533520081542074557269222165053993814627015414410660761980199288877373799454839868107377974328113016471790722539868703051922774314702120438092960999154563983766458973717492957448915146362268868524714397708764616092080042397192283743516387359244292247371781841275802120626561842639426637576138908899743391900559434998000834093111193301201209255475000670164101936764905408701564210080817295203050232395588558191169302119706951360537949847158851006169853814325997952062701495530167886686066030829085015392126965754162605914000611910283103693191893828913047822800887127050687868258870884640436659332190572580372194541277198564568809422961593459056202593809902451939388059124744974594513716880131280146576304730873044421473842610691036372551433875325094711680620558526094481538782551992162421564222728986053028826240100286575335598643664415484591431796042146379676839899437481345604605800961842802287013523108337350421359064511761176501268197930879128381053636654604161519155242946573482015525813918798563456341288483523080237826124624983268436008831303095191928815185389836635759651982811231238360202105947513391620893543953499652600951663885002735015548359245783832295360764985022314310784308556746319182777734343882146337177234179364540326063282800457712386531368461193200480412435961703683192019942980558708092561378973224823889787094790054379552453792729144523503087209761761428392384322110923828116883204721959756095628495815457797520247095094241731455694158693887324185156705417276184235893952109931303786991672758383604015604616413322067463555003762643411346497427616744013260010904616068339667882446169837837104160257575661312255935907553486394056963980117356346638473147867003672942232861996145774717690342685301500727884590346317574639243754291087757207247629661240297521495006545534255878344788109506904639869828462794914413148657101891644332748662528829695695553632399116284742654951710166802214111532880150609182615368637501013139433944178289385828017894728278141322799970330025231661299091928495989990594116545734601763248849869200240762600566914238039742966426081632388927966261030542585797006554338025170334719826995038475489033739899312024535735694789269205085348405321215482783496176366211758913007701313783719572108391898448541450860028407309731255274643796994614902584433018056495304485400715605149252210367634092357119489563338724066412553499369024643646531083636311599297308314545879689754079014693836358200324978815195133819480687468767386461273687365888819870198641030909694157893166971477706981860361861765198925861002099739910264840101195376764874302546731694375682650107281269577263794996912406563802114694490204776190882102166482849793341050135487890411064288909014309805889725849837879793886226074576186978698619877647297180391900744473339967353212846869229881714698985096408015533214620132427788324662996054897578070780790297558479697452030363501318091344292266406073152213589201938197707949050819416222361130215185697529511305493604521511140470886264399994386996875115293855373761716308883579854822061373522229798895184526483136887081832788971940139042203122865454567174171342670143740496339234063700959421283976520734286250351228098662468361044631678034601280022361784616940407786123054638654235337313787259161510616020474287543694869225744058245999915113360421657420484445641049860062947106532104421571691368859192050087040610172842883514935836541516761251667559056520579824022783795022104071744645041990613099721873187221761257543453329924482748555003744876684618927182674290204359145612064560104417369262428894347967245466797994373406709797372501949287312284228455754123021971810493073870976461026599758783182294088133015520765428628962068207693626103782271202482293391454104903295466881685249855559785899353784177484980795276935191739192646302895234249056721320384612932032041410432788085868179396021274372580680615125661195403587581653822583393788157360134526670626237315595028444011306054200372714974552814922690007647617414046150836438038474850751155766769837474111411227000534300069309465294860980652821853509254859971891116664368200071501627190364104275295802560218317765203775164202539190184127981764256243003686393006645483677091489198631913079991859277186503982203395932708593840025647432664672349775090948008195607268195980071494053828374306093433890803775142443778987807779674018319161754966050031448971226488643096168875970645167476175234093704365864462605686497596447907350603706654233795908900949159860945968584333187398462766850761230491383648633442218388282366396247681831428328734074150538652546461934878558098939671222942081203162142215358011876008257749277442367601354837547768527374701035193994898387194508188882401191264363105165618746303464750316520603289066752482698188034687025085877401744868167276064552775013155667663697966085115299945337293806404007299665873360153496847957526176466335208876184774178698905740263126761445535818297507341694654716662148380463584574389493037588587155858244055968414078228355177851463634935532506071429858046575058299017496235484895266548767420511111469339115941124639060097982960642938372736583926717910226760941715198200511641171287042468314208106924876204263109985466881858935594534016896862980476376432334678303491831071133381087677607418526982524912042662939152730593444043071135851209001466176897854863121568020258566723148632388138372565956431218785652355846492068860547181137031590376337468746007185845225077302791547299176233028251850052273556744052699159520166084324736088572084977723935504585124064255797329953982048670655185433219593024768949526161656666305982451195465688791864330005017154957497680623597687450852540664061081505841568738580302280449932504413011968193063751428408671853206695189528097545766310946712123064418319313647874013004974220802407268096593582072623769043124934811255628646147223162876554833693324326000203708190826212443288386855827733767056247714179882376110349993321280847070961955400378072865948422320807200053040048397113445532553139039780757653456353212248670492373519469253096809657513256282993957915182857091658350065800708668778614591171645964054328179515943945856189245699897089344542235568311464149311481590701965393746993186897621944687048969165447898917064853071411900577450923459062153299296544036036870604143087506353113915472643829564388039004929736864462322859961259527106338675267011905930589969706281333612255105848070274635869632282034788113983919989007828592449447847028439283112793315991099689863060673868939990543474063869950899189569632372551395684260311499003246738354082287792970344827615492105861355889481485863416197756361533585071021085130977147148321395317133454443836285232088514360532928256541974847241023282575061145235297715924887180093942311439217227768183775981341834138597271377373053146096604883856113435301324447284034584684254989731530971254717790715643380390711332402090552355783773281541824070224412030638081357470745903016257473787371565186374761755978067135768696035028238169487859867596154358852177572602700521696681365505107475907389255348819973881907865455198435080830351646513927356696913216164697785577595303694722608375468555804656990596241861938560569271715641459903497978268624745338390684649968431488573257900436379732224586989735962957383417934091915143909616536476990977236719353805848922899288883775172699521929504035545784272013283097959014356102469080855591373847209753853587541547153755575916628845069101058329387345983599304719607076278918166991629757367522432231889792187569932733232375702798411118510432799778739575470816149607829561091919405322339293838446566868859298777714487941694772006259779568451977802076387764903330818132519045061869258606435677880671781520852584863351301892912809663942474974416793446569662265648254420229692893589840924137693435312935143365565277713477760647454076729401057869855639402709503047979136365978457333255342630444841711059552348699957801619839282457624656617133085781372614134070510155504063591193778233795373284640594163607929099880698726088890364608392976306981846122771662158520200841757984546843417843212182399127408618504622138812985631507073236805463849809297648114503444205542546752008417334240201373062700332284984862536584017666468042650604010261396541096667059087706330430044372056320640859813730341817877260313839436226983935431152849083782958372227988961718358342628383696687981437581095163050404381435166954288407688726442191003395498159694263595591783911676376949983297706054535231389375938328705974168409485761017862064925521569115598772208898694539792568493101795409436871584981714754797971096108142369064026867821064233656201208690179181823169389677627904066358867755641392644601660998866567641876842057597992075585699363729139986858645037645354685831760951800399971977288344468924038591275510885244394750906636745722037011529372150447016559721137198704575650039978275042125951640883938006977617040277416964591015272203756206191357950890743263147061292802068453980287869241560809385366460286417718693127590084358235189001617697939193884383682836276816087076203034132675344644501436837158343376267714098104247820786821951023873213261078917739885667051398096040863165504514268092117205340313821429238789133681310508587820354387507871317231949111353366275075385773951707191018971298170979913967266312680983969932138921004666694431808198228638794233126439826877610257087562809209339291986774532055412423184121505323260546074027768426483524297286195130680998861477179280917569526701634058806987382689246009212845224234403371484359534553979680511034845719262173724653127245824463772332762319918645834020458946258938052108856845241041316256504685423256596894512585536517323572090168094295960417029099467504987353546756393805512238758590766202665031972919335521212767609376942228493871700477420130019112766143926253778540968127019492669151595549778484882708582854731340658551262375958798656414067340209584290519659114364754821171439778744375303711178428965070292060043057778786262801594198579862238369953736452187497862411105253314678511019049365927387385581270979695735873109987600950043990193532082795315964750362765925340689725470501215427114267396377533541835680405675965881472688731503380144113883720478425189024620532255503864799994260895564819231233841273154493788611569626399357964631125743472067032769761002838919818662147812704648637276750099026772259325386714381135085259549544201593086572761501892550741909626957531146680559542572604033745326549867819616904641393884137212153340691036851717648227812568868908555647058104278327663501995672888272477261787943211951788706754875289822230915875542675204931232089068397538126886636184816887369296634377441423785203756226321070052888169281218940846199921220213666700362806078757233452272552168773468592727400043557733158342895355751746036318049261642632857297500445242566934327733019639945161167548984120607294316390931040438235727641266933796508710618620686888588950845082072774688498320955311525398127327291208467367027431518319800369545078706065902950543847207287941545368722788721199490355331219368474523782050527168576594864533287568743250864028730779541177507409141136585804030169659048944965785697547892401021555760190517668406906419890250098149734175190700079053275495165804676883369831218897038761341291946252544250656405501780820846360248920308604803044457410088629179784941624860620515009623753313482025111586476137482217356730160521545642599528016114141014658756650800625630461240265467970918075048929303971897238304860477959622521885736247129491097034001402316033573883784862618188145159017025220968311088300692233358427536804130352006968325438159496471989205129570990978016781402322819935775578552312971738917483889479474491883055748274683061215846299137558615645790549902392793846741324705160619125438860302435027360394213858303366216977318998597566182233207031354539720550128820532040085823475668200318308581732238855529095909918594858951884403685942936383291440517267183861395789725000236554629036231652691267851024278844059468460133616051258824222516472188978309880984090062012077771892124217549038789018171284425840659056766249737739412471810192243989635568585224128428364164895095967491068855237174129829278122668738267340999127096578655413186564971615166990378971195630408248102673079607591775698365560421704579019950734505731036316619793813978895573881641172356159888749888839496019276635774753414612962267295427839371383384626452706192861239076076536524778134278936405395757219381297580243207027251162243189317459816154283538025667861529876655198778132794662283788095235695120476032832003265170483496840613278178126057033444074098508973529502272734579954768351366211041575903939825106264674403658180247957907237307215860081925775219292216032943633650012377937008807291761877765875273528584826815909931415914209446787848215451756716000893002064927905933561509034830242195919372143166117824463278673208460111110687570965986434114353380876105478115803090844954556337730471396553353807831656446727287213624005169612985512280976992665010394830042364387003361770157713210329948286136517968001036806751708530149755938588582465527308312317464300082886047443841358806187049961860048732232395703444472974911566300937172400858344365298284243079096260873465349590811180501768935062957907308278629808774967176306384512498748026789491922583575345397616711792907771226359741757738068814140323252030581635618835737766254882429754471006100435213038679487208389035969159956761997872002678281603547154432683459726735749160604417091648221658780267958346381124694158590200130781469946487330252668756829736573658223469086498912937771323690780582088492369449635375673968305931645511750293488332796319281805950614317728423382201556854313070164049479189327354868790457091465861738111358930601353838765341897092215646935984349122489229908343968257964240341926451169414156867129931719254741455640638808395765317725139895550975965310439117239679214770654745180763513955570058380957653835842091465696214738903029642168704123217009507678678901268145821948789967846286663800894188725207150388936234771387217369790379827019216765395962712519166862081653400708809557757940085469628189744110120188527031322327197707655482368739905029082010709574554683822657453049682840704937627710604436324651095758325967650785891808571018310617653721058992113664427272352315036956479234534161694804647905158346560054608619169801784825843268884040543859133242273350710606568125116206154251507528531471928465028157671813548493894685303186916856201694237227066947125034570644712632318129297166214122003572565103676959535163517097924397571374547400085400263133575081361154415088627779720637125986855108608471501385844304117443152538042386775491150390949916318032190436639338874628506614804665656041259458633169704673886639336554182052034635505480503445068111086118160871645804816536223294449904679514546347632610835347831316663094511647328068269777051610670253985071170867622622651713276874762609753057013038139979185175472645459397046560742401543182532957310471741187183677901571372284880205116277472165391184195806236120852997847572591862542196503561798231783004196465335390168690730867258244410151653691330452435891190798946486091116426168772411940791594617924341529299926544691476333183273340699916150558103371876154373589335205924149152702139258366257424823997919468827243628676140541467269364150811342402447615499259603512156468998537385095963900976466772103604456990904432418415740840070767362479280719271924456923068825579343022820777065216017527307729252485045351765692195566991932083178870206799210869713900235470596186908132870615136121348416611110607208141495157537863587400206722833806955171386667298462933739510436412612063316095111025890730815727826546400082040126762179538525925556071055079371032396261508363172015237366520963062392561294637146861506830317756548880308620349577762109996427676036712618367780956250615667457911486128380694281293614763332938517913005279380780768265335409678986101656036373723809195703480921784588504739654794126387836947849694369492681996808057498012475249304625164939296357194141650846222419834231040046553023240198925185464706914246349660830538575558400948820780097026280498299933738308676730343732577033411029315013801512167656176047782295405278488665253484461744346473247850208083349639670360980990509581283576650069753317813562514163524466375495274457973824600048238402201815926642747411521238078191989003573958465121470931295398107022284871759906150187897070923954372130132533696071520386498666664404906491586402544591570741493913311404588616392319303201879282647877719017179277535090970003106512150847806125427553606194625227423098338844974895803518304084549466637671032930514560301578092498542170549009047771372994351858933470838378607605078648732243456864722845898960790993012476236044302577971146135162116991235774361632624164861715378664085547654684622112518626062043565350037857272549446329875326944645170596425252020491415718710261083105052371984093966817529730907921456551338446744124604039272121836319040899204849493935719681663415384740213326707106730968991410211905562647511943282049500642654460987880423002356198828083759206706168044694146353830888443553313994536741457843312295245391937909404562176988731879516154949839430939904207275815238726103880951851370332746269574973691694106306363979350680609249592477388486240306692786533631075067221826895816744445495968831800804567465337242260990348501186792084705391897694592822364552933198721405103087048054203177466293765700719802123302131643539874063243909941564145121191779656650112007783561330002077590956143254074035750923236383609431477926998168405065954104525724869281539158502259818049657783206036070410962406546888998714257963619512049732755949149631607659171683221121104818361855026996730368412813433964094009767558570500022504029719340692733689608193006364169443326312510395239586127461511631597093013050381034863847496136706968096289388463355643688097309168253615247019368973548840363714877497621375799771977496559143779619480279570560054574074843874615915413282432243653721540492327806830825164070827103057161473890533901606100190214241064075660643209826599545965658265700292741147001701673040585833699860966327364756609739799961911935860270912620073569882809033631284117424189545842396872549034758048717196383645755831253316289739794168065715058396004894032229194080620641843010511576348410588289973429848100096406471033625736492886240576435391740831387418327042309383944443829765119805675848899459454839090136641807037116189802138788634353345405503717676302953341443347498769491445552649988358439787133326684509721209279731145949160245828731613784008817099097282920168893504241335011932593330750523554709963768030598615676997901330998900028058016651141638827613728238450848768532185716101467968791880495390388048979217030627644780122824220476619345652001779333850400577594397061931536596415143562908317088037234312583554007181346256991480995017238822762685512756205810392353347210897723838175490183630829221107057202382643401690534133731133252199330132163536327766467814700230350625581623249853799803936302130958248759877892828485602570586003677686685699072645292509794585337976095077251450993711938190747855084267752067363481066274185057851986200450475768146673194419858401023600058903108606495385942994547235991535812109884226780053750298492003639000826966497702233668826912128942272880252807168559981647983459998267361702684594877471669231474628412300065870726005094153051829790292578682172388064753580213035838042129635479168425906314720121106050913647311105474382496657225222175346475054590571748731407174004291352729365801713471207441529981930891604491348015368483170245899377199214038188398089102163452557138453677643868271828483891406918508560995221721618977160823984572891586355922426546941032171027490490696255310189592792788396151235188296703972554333206477594788272539028700141851171671885348849431047354834560826527026964085473811579053870445714022030916450842137694180511614005797685294584241635531974219087155181094458766494394867579131584526908926028454481784008663170043998581519785310859968857215220484750016142689990678586607451251896111428169296746775345835964809397802925449075337900274006525956966339975100603430476245084125591645232635260563377139635172626798498683721332560744565334463641253284016789299831238837565171446687389210278065556514589620363086250732400017629549958984986587469620333178443189285462807344394598662324001945504445487380236765800753332920106681476636430889655336627471643657055907936570534020814712014697129890585586564015702807932076147040502279882132364001959513863879081867422703540842670631231491226131615939421546918091906541809077138148038027035208361924692059100765008029432637397002887350403080711131752556118555697446268576020992044199717468953614289774914264173743269884343603717656406791451248227118971912579479828401153218051131754236078661734407806413734421366378406031834542872080828477350537859854776496800542898195739864296791427299014161019831259612360849938874344136214979367269908324175728708308185020608423476042056299727953349352030615262169315503306862054682233432977479604694760689888566798390482273885803970505852762528242642300382866197589474382216180505116643920310699131299629872221205997717064746194447609538929982512627069089973014053289526994439114388792450021202016795461324031363611254755571627355070831228574013071189110896423111715607617823040796549694174029330731272515015907998700743696562650966659320533163378335254681569676566444141203831519381150428015094640963161636147215834993521189690882482138053618209485708983180897014421737077614916184393674735226719747057250086783577928960410502996987870837357524832701604607157929914954497334315245006326751896258060208733719221261980959886069673736638814799371646779436748580888687031356835387628411270255676154968223978732652402087583268789617066735609951045872558576247656265683832648397720299366414746419683380267800823719228422495118682353224961160524465355354218896935347101695092692545941838105427477192034360837371385770131834954617761428543174376306690856891043248091268218578857694110152349867423582643037901422953088578402239390036445612348234976410579320141714080856849931409817781594446649598678351274792727222082612498983857580639495855616358276624548201305844197603174577573219683322884511974169876878468614755462205592747413263810368473442494482485112709418901245259655410327818544642104909586536635387062997796144544935837693265594281013624914439599958947229699760380441175347606879620572271963815406010893514026303761107769744316939139556973691480206941498491611712165247700347934566587588514489900841061612332830827651532845557201241861521938000833847608570713366151313637066093260727838039573370463198421980765519799130854928017393128244481538860046884774108647658256964434144439948342482361496035650536283010485879381488852268506642198876841185090845555651761604141168173905886643398437820495146211613899965432366485109907869001856194451424302202655178858616738738584123469436935487474127737595483551565315777971660980655791841888495263483915533382769709248525513928809526778923964425950270726282804510346308384473035717690314507426709544387914184507204883767162188007344708825445182301357905207397061195630697287720578341199732557472403923733548032246414393504396323846618718771011993908826825125358539555919392819796271231028003016720311946231653244528727268014238247514237520893525315833918866113224691091553577192079741115382533147238156709895423574247067467500246632377084896934042891712599298347656317659972873425563129346189059754956494545408371239669635594504921256966921903429429526992014828811788235923254303982474838543689414456536749342144511390051403793373712589653218299758935460749633742655442840769742462694190149773583787087619932452393122350039038751431670334161775474067946456630918226437869842445017806420648763004237269003256867483963688101876447940835404048568898022418908349723928888797678408938308148808864417899698860272209109593590118592528370232777882914345065923515615727874776900431261073217255223115403232415710524175626796405445311304233342386269190292703258062813082673508030057709355369668606182867989360148826108353013418393377974665446862144366571915887258418325987952946411438897941006087799994477348439089275191873649044852894289660258065390289585229602113480069390203643930288882815061041411249058678761671319752593958135847675751690384644004251437667540494380665469758276128035788762929650380086709005379489077397384086494427497775215243110768320340746618291827082353562647959145309225044188068942287078200239514111437632470572476682484488319723208710898458319374561084668061387854979591191373264012566148844894406756954034017842047642544782273208403283648293181535633615151672560896429440850091825647742870057246478460870057631191346023159320674483649281709980371244570715721406227660048791285013625748066695913338452135338777495600316199245626017272366692835296680188217190396319432857274082791571171542569317310048108612780604359198111515034286605357142627983034972564644133510714990224273154560685501660444051207312480664026566366015766365345825325954824951054050053124779937040496417709410919438487168665652028875951035914480090496207585458640421364548447314320048144205744181734959662217215315226213659823324294299304803604151586400938755453371317792588652314046184316127202670971407634039011379573598643262498713293830088578789713515420117619779098730662428071575545989271132064412816846213783203888772926929960048726722223032455857286699162199727644671248909163654278653677079388741332501179201736630320463176377194859840365291298372153283415009107865141147206597771565504606128237604024103955219321401467488065398578652156322173590851874303149622278301508780528652495894971649404478615490026845583099116174735415017975398120358081912421867956045899354010062736979861677421012433522918464860313769328223756546570791106524452919337135223116570333634338406751780005963965680644001480069287779307789473833003291215255934311929589524625703970045443724525036108777461666485709137573088331689642944623281734710393112511583151179352794392441422332045764860981307164944662656336199107566712830694835895200628448811772512383686408321911383004500367858777712640801537325093869419070868985532858077721389696027716636278816854820276384173909323351919435571038013450204023968349794111955376213272221398850237585217095297168774119688564324743136141108381130016446672906647647429067972769209405122207278404112105358545609707623714567603615389525944932934564889829981660977555139144389282993377557529737281188059965682561870014749221776900264925139085418795693634529237577186986308025849523586738325534995430518060148125311036361415348898076025604227589490996467287062694725068029074581551356444046365555435177576091472606825125217703647687681693731621001213560082204136782443838712126307268595214409222745710743189749769685339873590825648314273130946592950482332099571809125893255164261375995473121810744231659113331824222571888065576156178977988961631554539320001633246508052677584726072128800434947388321471677905872680996274391096765815151545222578444603049385013329898924375659552402350074824736600578400317621889931641890758398051677974871468679836694577907508223302141153137114093942498254942189827235079382820663135586769763475988873854381135099367365985767254203222227745154211551594969653236717100060096609350065790856450163479639149570371894637205247732237204924721268700450330908916094938577222627052556296789839065918532243053858639847992407430993857912274022073190483386295041741013166012327040876853329258494735896615288635809333708628313619402554466161807264295622431317292441341887947442373555819226573108064460335703428261492505935496068719541580833701633763627508191699898552604170814497952932922069148081126173053243422312033274363604697828761994738316427343207069009382172590106100336141094446728706541415482905857723221029221565592575267025617614299999395298669097745973589654690480485272267130304625225503213977713258525821044348103802826666688782957970228451570955553004055906985649190558732327032642982998049783998101472037498621967412709635637778718957976220240574681191755486048456521731410441216129841121125243673984025489095644774066564737388377902115205483281305247802780151758255969054567487397300698090409841067587573348023586520207629469559190835503186269014517716855625993580338007475309237339777481874499838377315132028300705277582171555657203199598386838690767147231734568719446721429156280115269251659334722328851472755371071288856329694210318709594161347027696715838056104041760058562183397510058166445327905358344422790567408698233501378726488496498662391542100101956357757065610330499894288053645064026924842717984291320927747499048479405028252175637327910745996852403813948265230321240108179068898010831476608249636399615406487548783037175918651195857574910392225263762086776812961802570890159658311697803887262838293732617010686091661452825691208593756571348457573758595360025971845140404506830250195512318873346047287966472401150251214015159956935330807544903355223056865353844553853841190279062342369379658619940099821700010199002093242702612425968323186992674919458111509840980151428157050971057613755708733574902022470144095317302667541537747473200370606390353784597822255273010751572002004564404927474968174830238575402725263246967102276024425531454733806358521713986792365145499062627538076566868039226251179481785044797417783561788653400777599344825649957614495329421457991311499746836422943901645373441839166002189713797803578232536971403914962282825605377341441154645223644433136346761186354543452128082995695869071511772517629766768016645348092215313879748526175386577157623420949264831833842059004281756108601766429972516585591020135137100584389080384519194971552382924202723691922347771827405975636028362080419065358825548435879558839894683786100845050007568582872940635671753185413264374560962037959788936008298058074049059920763364385304307781023006530090162988843338171332488728329075630150108605257644351766806454568865678168031578823602382213089425959581746659446802073024979560535256730910027861017692744077789241697406283444791390529347420382568896367538246310671082365014493725725112923844842266879801229220805502375820092605971539918630025960255338625773862850729914946216015106466374410441105118552932585335049409115510129061097636216039522622471312157610616293784894708839314383555390070516806349286207654889132883306606621976685983867977033142714550569556156026672322665379401005133413947533112248873083491587716296911278097472687482812079702999898300943147005168262983404437112556848175591069808270256040408427043929144659048104656114317319083032628011521385112966637329993251499779409461179969223904077426365167578106122831370409692114678499428524379328116870269740678938334898923993370889277099670859210386886065660579238380828402667823811132746696278823360723861269798513540578760654235912824621774140248998933982817024208354171918195815002135225354147483868379209298255607463733524869373555464247683723614323874752217905215229815350752899103785674519299672573533166689005365044169139659054336732154747155486828705071680729092718637555370210953839287459874422760214007969897994182042307494049797459997239975110670403982515726027648391818477113138166161465578277658141982066096736256241056193113682687767791562030700387181079256691164633641573273484005056515875922356992841840111622938444651581163292715941092212571878798106365059773204546775387397547815522231380257141089441105084365649444966139706507702989627802236278296411496644370761773389453980260910521492689317163919465164039131225750948404246575283661286225876821118319650626237280818004246214834159167665622955872737490206860187508164969691289209555761492453031777450421937106309715883979005354735440612080091302296059164468938958545583972479189658464763301833483346279438764675935825316195172473875251038398900979500835358023820129257623961386902643531701245948068817503910679512697224088528668445636562879162124194462242796947566769068126274501347845462483388322200522687852335175454386601142236487865216893597209195955416612262156991988743280224124784912864946691805003478241354227831591769768126218214038266652926469557671097037702068376075340902243658808353950394164769560706129779532116943360097529445861210806838362388425609174072566580121695858478379899986161035055428340522425879116771718745769845754934589963915590123398757764360282957162912022272440281577967629196913759302375798756803138565459239353188528768841464592836401914411886995118986832017607224518147062869056216717211312752633312418982898988070654864723612003348602948169465438720198295093975213780061358213984231981303949755186198650344486008886801564123785399882249082307850494759604589712836077659472211296363223628177255990908710646619287109273680978686489526855384826187582157501561510946341842018542121170364292233810879403490337736686617050574499761329693169165181355316428846328763402424505533768714896198619496239581267012053725059819129206686394113873286667812953081474480373765831771106807698305315320497243809402717108666933933775408226745756864256468627830683483493136468923569819830495037825543862456663590657492577215450481618838563792368011263808135604487028171822021942556592178280671201113588160112128238115778016694343212049841408592945756159355294053454385734566828949807052842904576990164618514932331761490001441079871164755080875975524269556645244019070626365528709897968531429325104284310678110888335581049421710844922231252936181054709523045186764565171668763969841019748875162702155714712503113140088275686350997188974966624135923473782180201942292633026086602146095798046233076794127069809207325997358134578487909731719811517498583055356416399820572791822100835138190895160020696593412904413252953435094124863872848432786855195655650515176407671359937747209932753376051293323515896802661967079960124077647333680503800961184099909827275491018510457594480751450832692800861007145585546687073921137898818714029022263037460924220828705777981588118703958257370982331440893407503167821444887555768376109225525296306861621564531697523718511310560407556224664591272528343300000193693622550923214269163173178746480052073415768772116380080352258338351001024119444735887540560855001198760899574834653148616772896871435477477326734993380904417126084308236383746428420264035018001012506042208507615182595630718562276107067854167569606737241448630361041354976538382756022602609022479827516967531187175660233103197589680498829267775870188173017857171906545640863716839151665712539655566731667881238963578965961334747377633562470295791575241950497452490529331053795043978446060142492012989334728029908261250632430502725017033524148948861954299165139574398046111856925085154170061025697339385506770509539280875296088312640319085266910780815340926514736953077138985425448384057153113869520360874928782585945221561144095882736863339330221434765071459366680025243601313998717284965907426263706865938421129505473881912487272949219744200786387208134519355960913134016118948104241717969997725074510620454401646210125439898705120368997231435642059246568398973509339714036535192710263003413958424331184997968979100398140943709540076455999314348500839068853075026184601993586090135572520319742431413956198718340751370161530815412641727062440878758222100679323889050139824836525470179235142599745871489302452192485302378370862685608120873128422718958069302709414043623759255106455222095540898548169780131828813956461585484175186799031332618353519897937273408420485729599128197496186949807585390966887285012969037764599555361239493177607543836907139376043890970515503851558978622789661953774102811737804902073076294065420262547820917129485975390765904805736785138355424260955105682162699461601240356864793346565285787965920489396057350177975557276984553784906103133983803436889808736376493326550152320117763282293018935081065666040324439943157427417581250699514716452683088164415824025025280347298347627146088686354490025166089688515258640212523652020289710745659011397761244504113002508859198057109367208987283087963015865885544119994165595939107392984962409968247129678448688370122548773892009808234540795386570282217198917984640799174391796405065720796372774324097127715519061042365097322632605801251029156823319378459608785184005705440029847677738597200437742838444768344093043960355628892770366113364648185394314248009465440158316227714495990891982796542385203833381573132056122835703486866747109274181817492475757781323879540081095977440005335377401151095879597216926265303628191428743036812631123825527799229711630596072413072412892485744253006591850834495627038764937646697596244123574351140714867480389411100474010557552967731573065589737884285964413842269481440773580723360510676513814315594832968404716185608767958672078312624955453338345845939527534709645365486544819733840948122590306479585498262614147005451658470838952709600572953414449612150033172366726717557953170484715856029908466204265566149233179173317880270179735478705977224517635157159233836069355796462473094536191153884102295569457588609641985832433367863679613563795802725274011412773391530041790824752474698586697167100975143737615238932986028198396692641643502991536852420514306603177453153494820299989376968154667748336619176324319287751030539585782272436040346056393553950051332392179296278657957900272021625637870949214653989877248591963407010520882714489210015024924010564343341651538573616968229222697098370178485680570303480126828292585994195616596811194441022471412343450394275889332770780677273194298596645285507295549452171253648239921230798428119414631321525618253637410477961643361694771876243916295713740895215588145920582518753123634820837028877997922486935999653928820315088953854266974532043356661572145494396499959104487926477415028608907202231177215223615672095880294426194430253669583623178696197826232162833779160272228952581405733082808444632412308038265381496616405847988190817650346620126429597268955509033283613310008796352262045890431335375966791197967627185425619994360113425517817106090152897938302935175411277834232646473397609019571818511607375992650819557282826016969558081092142487325314897809533371345491910957597669721847936019358546154997934755599594688053811831693986201976733719667583584971433136179575608034476744347067607696484458972619957101468840545139186042238154656107059729971955643812653703522806256667540438339801551406431068221841681132158898934990245763825287964856985525217944889346544648093013002221844262817092417145851699630903282087874680489356760890261810509950551848654706110574565823335990866455635212927018978365331119566466328408624003931370598148846353397725841006335676219552356794052659462044845270342558783066657243630403192166141549039915847297430827325575394551481742646989752742425830208508182737800905375231437247972835505762855660661172968389378777304131755509652105727877414514422310632651549626997466634085195929594974037245959246508943744038495678486526680380172290204451896848205946928509001972875712658327301473514195765566682017701225020030927397568071947149899808392189141766724577020863196266971708161019638440157594689590418281393136826196788449306267028273087609322749655325724411419945044490259624302538935419692552847062300313352310973821383183942465927239236155813496224949654563500221825417714129069579859064115293082749267842400170250057544091372973603591611691261522413228444319601358641966091810853530393926551035392256278380178973903949530537040646081374348846838050915275939997132177456945630528259161771896630073043695610510537525306508745125758155191367766576771696175885843965339942506290131349948688681666963824091216370011132153159862114637770300710244637525823211521630352130172093977624785201736701201388290024376396610104689869143348980924095747479367199522388071122249868426126961252131910691740380151255439503833210633112172468967632778324986168036097717539098261455922879215800159055259949091674409235626760166004704270198085079691223685969907967778512221680320079701920123548310103544611975102033266102989289543466509771902180609886327394201551824772896623290238587584411871448908305351658075080823009033827869512186847888606291371154240186007104827681805219237320271252964665582688668422593276217551110484560468584370649420661539423636625159473393199893661325650316517971124173561480141342175433666055026781832558026108212011658341769156190539310715830900979270630970185192817627889268669342924779957850143075760530627957743166894175137785116804466483142316402516310031299998206155356209646456867127120009925637279648791087300846185099505687991216468098364569438672036884171876240502674367842573790938213842305325246667022327834478737042301601559054348312522245980894688973236589476408472714337191935233270710869959661878120474115159405327998382366277210273684548670738310010395679297362086323567819743830584238798953979862792038512427699862999002346169322142522396814547055593583757056025335747018593281882767310674307675502445476979123257151471984216799146329086317116886444596148254582439019014974100930131603643317530735689223293900945180313510342676528401510661233893116188137246009909661433665918771338432076153680932140268267327867511991436250875389707418299481797210343575578590391511075618106954995090348655899302244738334663306629333217640444418936659421855038967826357668951594135363715031401374346446868090897716821825702968476201107836682416177542246182386622325315224389246311712362915299228896296383365619256340666596123667631214643393833361747603403886465549481863849161391267469595540999484069830696120487485999858059813372293451603642924230928073603620819662413169199346704239039044407686381286867557849202764931044951134483901833832990376841398904510484256522156328900093873446821750724988966121903002829944843060718505121486923429474967552166772369876469849414582935888754780312496228187957122233645191667424207068876820842007467760784817748528221745203188742120154250358808286097222355422696853751821352965089092100232872536420514177389468266548753519718730323376874220685320306557977471751375805395138476956053612964369113429717528311316633971538662677110627761146770481456811514735890531980636103453843914910681612557707109501663946191606705484190143891834388832335415441290934029848600173336093917898894086440401787539561522676754479818404653830857990263592712957144533736991409356786304764870699572525112286096462524766236631491193815315534185280572828061200094496475201519901163680224257441893674542474311562470936801378029847983718280634694128069650431505890356521491708092373625154312557855758318988649691330276078280515206787159285604269244337092780896777666134579121055085728104723911552495062701713415159010801797713774532454760068334137829648069101515040796020354538639320883663127307047196815012147811537718079395350855042025972624359756221650131218866141950924430713850482145495983930214415660872419057697674774062384700591028623403087541736213784143568760714737395773658652204331859891249834752567028586401113972517070568815724680788219473199180154606282585305241161820250682506504987818204170863612909288848408072450542081340311483797817623245885671490123103652113497999052493569237464784777527045367703725150092715111382741224151361870030969150180873828960538539323287322239296526578022229803020646556109448961040733150269295108839446879495277046421223304747488439026219869259820467646147991105136142166794229493947965839080618663312223020556601240127614871445254842799441109386165023836746794992734264023529104630583252619156190309254855127333420138188045753898117935207605635018205858475802002095584966408384239905852213013376011202230998868477373560051120877603893893874165663300451333852821676127805951108922267392172449015308283480184470186502057841855364919186423124463715204103334183264339614787233236373041808039910085845301817365645940393939840695001309432526042406942552598005254839987235441245047824494746934619143656157445673835113614311155708166139604630471840526984718421535612297137749494707169939853545800161418880239587747896110098345539977974798330364785441073036414594330778030237720822890813039232934260244083576199883532238849029624780960686499637134329895970213002598858842224250812145543402679106216945619045916533053867638615316127365798205698156253528823081118199401056218409613499955230327691968190468985373885966402845657803643891888560557716819940354816045074738315387289963454777051683548415877487733768127914416938787983230785459978636815114474954325107077905878583534772670043580970978929676997378138671682029386144714061102256246212870500816083552000676349307797945258542641375892358882429194864616838761896710566058003950719161789650045637816022108692751534744597134187900524947100987402833586202113186991190443363103286719253085435386721454320675981656957946600697186853861821065746999191319861687366427175910357251377978421259970741708979975435449822619453277942250234665731017695498706289202768601923011755551247081026517436327201414707281010814597973416517676689160976811905413846237535034192471608430527333107719175065870571984637943668702681016913669786899581059493126020976777256679901282952342683243972796489099008844143180248716253060770175433804577543362497270902862637284004259494120887770187087132433330475506584270695145563418610354800520060430143805470905743701620736823892667004795478374071984171983697646414124894041987551620336821560789121401239292920183435720182321720449667339471887755460209814587242995602628642350113503991191283577080256810421883843597620890389333578700373116224801339791407583106888684156371649049487458022481974476968332672054595868342049762923254472385811506219834939043490058543217962261120523607845923858780166802276724134891942313118855807504483149149656866407824991459616150786541282426631707365419309232112206099199988726950015752756848249113056492981773563362082486161985969227825072013379084538837161999496498402891957019718479981072154768980120277185673242744113337872575606808203865391145497419998156620210497609143583677617163716411831251654500659978766442782993294055514848977284269394197479703869705366916406779733261850539357964496453967541969785454571059410968961539827915694857786259087600069077151643038704663963339262713786948638019933195559202747390901154690356915395498477718384476903501955289989640078722597744730950388056632011194589651707655505434831198072678520410271322155082827249900295111310978949171963493390636213413153572215939258053685232367259082841913439603051334405533250696154441192874665978777976304148101779687277364797858520541127739323274217169854829230835904490456188783153884137466095143341643536227587555429564012692304337720758077099124778457013047342891260755283277200006161412265441755729889374754847441670943013577079101721212064904788629583215289624608302956718552611876630938928057252439639578973304469816759776014414790871843738647835882288188515748020758991136426565528943687756328606837141535818642885560643385802317642087262823323323299287631559191554481229901282182693277262906071369970344782615390043570980856104982184186609077493149219769155196324028084508235566971481587882916963436640168750873875603706101610399262175655146509352760822609347479009845389644011625936073495569929242726779451800479900707023470488133795983141166200838995396800816609884912921575793964719788070713342846995302637988635748010822827309450784282578476667782633142150932301466247926254243206183964250817209956446047400043699953048778142513224959388365543856435783915886906348820875048740318323390952349894876603370605385514628372255281094983917429183814155849319985305294435801030537139546822869162502303340383422485535203973065431894322373266000844767569966337218878273784004045381024097478028383772362440936875018093103364403827781308757501250948304038116084831980343946680766435048875768849345326679167426301026764288951151787258117781177393734900050283071831242747933694925755666525549984817695749470433945373955616743348884679644610200264542709923306980762332600719220504215642466321905069070619099002725368884512460824061046448937295028536826930027388038352915310141952938688761975271975714822095680568328176819702437357690559707440805355753666205562051226316702674622306749349885448697115599044821273156063734725272218102123531462260440144950402180116229364561680023910057594706916118048465297748168961100159492080354256649334088193421783758949963206167840471581572012210664956650256989158511194712167836161395814554670477310210159187049394117405081060228629626853731992231410697594001966791981373012680135020038299732222583063902172813144301929216091000751103825931155648325279634969897685246761717419725762273510216176162298641869134210008019011807497649255528130179064605441149237480691108023832558646051778288171966334981542216661461134384215866290182836719838833359934267066045347435086875345113763844171462629671467963886298441877200851071528594799552018745779535305289877882484919655897508495189289155934473881188683740436376512286136171657045665099227180720752415307770790240122251681739099704245434424076651483388287320829236470862322692491544163937446823269539742487886851669914319346321093043857388588184856487244345308474342034429722260218520595457479661798377410428011366333463761860794714093516502575336200328619807502870282915408916499342305852873874736539648314043121915214587876410402169648305400997132384431828740674287692516180110319432171399987929250174200991847661281563915369626792894186715341512840654024268577761372386416728073061235443281287359423094033189935904915631052699788336890970087348230644458501046598394758093892320971780363494623738554092488610083550930704369731928329560561715332668591637431580895090887832202505283093918592662195580824898211224242308735341015839499292705023720330271976851507135665078261263299211982976677869082557860041445090777127007546503523549825928344485642721897806468846782997064932720379647123387805002206072726814897794373874929730889512419085321473072313033164027574182584267469775310346851729067984918413995044723280870895184710258609723595885829573752393186751705057827076243259413563754229551396819373042430793606734748553426473192165585141592807180893268764687830947150101783109037897058045640202146798490164492912089509195937033758734444073828593808600062958792940887670425985853981895891534344936351708304272444435741055842215397249260597363771560736852187908674576906889892663042718471815400104536186204931593169223660448795887981631783965667601237430513786131821819409350232621473523761144706238182231105483720217540676900927430452220336315933222929375451713251391289713783866088823520110292961265834955841124449905220412752201507165342879392882846124877952815256425018588414064483767020610957656839981843801381226263848852196772981938263712106282682082718171023859289106424018113109436411413035615179738379178124245508429247832354452590449999958756205529129074052204666174324873077502304496187717863290191790179531762812186747601506845386313306087486703485185559781436366043187841252066641114063165762695654168138379792628385217487258927617150646263111552913525837202729066364847302568253494477512938675852426357870480864832578406655127364073191772256647778033730225484354860224037609355961052592132323457267218816771975029715309211403754192299546141004631046626888030045803126756158900779044744482548642988159813243005017247990684992091672457058022473343884673012796795824779526466221422468304495475735055388013985063282255226552765601137255047337288579116561913747452599000289170572822214501600364871124252882326190690814459610951553639194710903486471317420777480705489823028043080722116983416321737433204664272258454745766041607618885814332119949375407599853815202593628070462773973308382562150376854906695005837124484562057133884199270401476811824382111363577911105013723766103438262072395823905884664578697895830285851727904197423165174525023135610791343564261604885550640515584143551026854226352062557419710869903063709571947037046690503359255203724893601211812698294493805016837039993841317363722829797386689214145975891992563820149813334407754486576157452024562419032968774895088382455934466913328902904844410796190864528240275548023446442967217577249209908520014855351492412202160174503682749908276171481179844074972994458983836972990915562718243790710497092237661445287025819592012052318052338700044117320597424608681466443490235184266076251788538343251194352909362175093939084274474045676959599870724967330924740913963719453095254627446824570787318333683172386150939884988847670753379273975815672476414686511901021338870555132944291597260888853937596531467524138568917446311131508063725020444343435492965169508357826378081321697584546636960073397743794579323003459272893384932062274933362805942046115926766268121260666626882820255368366909128793032204536951048368559616760658204993223380586484783683188094061649454220240568085351185816327145651775166813379638209961782518790278479748055537199242725387614403133238794652088583379284468945657618853683227621509136924585341226055477964838736065699029334635089895041308312149382280415662603615484878840501876052127325082566997941744968916670595368478326679105425641868172124176291351617393028742051524353892038922369094209671851487197486550707264842829729884709830577271865098524446236186961961028427768704881193709772440248563852934401818563732342741458139991827200609250600135606522096807016911314509752579332104897502797243047324701342937588074559255493658418649931534494204001664967110883882280109235197318776294864641595531352676682048402701465734271941981700400846299269975026607687648543697441277747965494820965626100862547334949009015485749764471800903857088480791248066627336543524611506476563309968351401295509912945462470163281172813274848020910648599271300505457810804074486917682176972283538170165285978546798748276666089779812849084720416412310406903679482961060897872570069207490991994344322390087320991797415554573246913854180020085319095633166475452954958303478631328467418394072466070351050200582581473698405524278548258100790284132190836453755764928255883082638032913815364036252004637655834911160815095114496387661436229230443803378586430322484389952240864722622470565695584292928815988186976212281934653257185279597101134145839232209046558053598699923484035018016415217585907584581964766009941854211270433219403202001497735134538964779013463490733084803210642872574536819430080849776890523854443112512120332169448003143635958121883150634463214866991923415214204172533287719887631448651374922735918316256438883023926891698739237699774000620784449610495333000005643658437238959870531768615002656114555207766821056288796027598784223800890081723188529704228888626156504816205585718206373207648245901208764970970768058968262472272604746729295824669927463794130146664970336581581999072949607232325119765090873757438775422912452510764470347276779869923207344070726764350868559101258762003694897103633735680064348251844569467085460995673044781558858335275888981580610237840447912439101524040309080608106597438260888060255090298660117759504803809282246614467410075788742677212221393059408762384471835507246679546365345867043236890610601819470801762998585865402906876865029824393219528452603901327624302039004231803914946146203209469525618239241751874740187887751384989647998364379068054441542366931333103043032454434813229260601022240084517720610526630690840492693849834578049783980977697704316270442140575183928190481699080248661130739501818494190952781252331471159473508081086711573395400435489653553997253379838531273291354394021339818422198344105785060904251829609023575454542468629196979487999789672530485549207575020601699098086152161513896043947885689301581352808595573873325711630048344062559810863109147535015551826708628870482307280618152037996316845354876393855495333056208570099897270468726070787865789352224958123594316046892211559114507996092135400826486809075938541752589401152044264105671164278377172003247802753606003642991716565597180662940580408151228854427072275451813498585114546871078656354862456822995546592053712230009858307593778524341585454078686538327719994816205996814621085355237733992802628648643973545753228604238334813130888880572667166288556813079019862899194045772865185104212099921410320318262068656228654398455090916788770306512089775448180872177896889476480202256597559505496621319520975364288494518022364228993538526623261659710103728955832905082615034925477081033942736205056420206335056408657118138344259802096647343513441431416919111049650042053888386524437883311373753633966947024844279510054128781568960113427979139819586144004428466763476999272911076114854936215030344167049549558197005694550671233380135879605291275761734764698244770436510885396228917463524548176311666189176374241745109488151901467719061630406149781017957130258841479739427091599515109757970916727363462061627398082369415048095135308470928491906061748567227960578106396868239936542505301261643481270794465468955732105228935860083252256954320674387773129376290272966900904330908787750374114937819066567764530306208352973402948897431198097540484643366855681734098202042211847228546631452179032952481530965817427959546138843866461520033641402356816393307982873343459301158811090533854238370638048503991990776491439040606378905140550813449919219501376366153659998962460856847970217676713201393204277106262905078889623298477161874235925267653414868961137504566295931499948698238837367730252715832974818328489068148314443708920491293110570741071843612773002286531406645704032288849777525333373229479540490639573051233881007274011785547085763112920144273329660471967240408637401341298568064476117460762081902507163625274294641347227931970906841587746601576486375039269731695972248752241056920163834910114846374097380986745720334317150512426145946690701167777758421180387743261887162595565135044855627684003691900344940548868977834350619424677110511869389759771482499829703350646144643849850507488252153460686993622073316387348111409323154243913243124535632742903776957939494347931108194441148385190999942426266143605365470295380276181665682292882856475978884776124631903520027687855693460581331264878597032886693058376652059380565085307812445578257055389166226585730985439443114081643597942174747129992323599815276092863420218828034706002980073682675469144920280178995500181921762127970800998214684686870833860528340802386675126453975475260105378241785762973169167169836976555699955344219776479073396053471959397266327035282626506271397127729299831847939554255453747846848319113602908731266214047984769120181957318220351525891979753495200280893796002339943595259801985321197084632824794370154253168002894858753133732267393256495588751954234705467614522679157664471067104648153129991898045805785009106886989101257828369938708399551124737096936405969992066626288227642686950137576354357402305745018134080341216043462350305461971134264095642975203739685511686507133049322100931880092948370124879847612046305102776337250055191996013371329839929741768955778164917300384655695315800770971634186387055957612779818324094875159039566392842742199998202825040739787296570876018646372499197917698737555095734274259153029427571103851048440330084425381124218890551446762447143549578048104171009062828862849642280878062971457121193853657073981944472776357655992880765190279426022455034085355605018650223097928538941294065359192226432394064377425506145704093931974008983888125300700166314844714103988541708180719263096245425776448788369096023512624154756032565049642847427516984058567419346573830459354919637593033146895711265835512552761034320464688150022485863203662761193278739273982110694612730875170272695744273620658935447881429031646348759123842631569401039700604216710431781044196285541500412839014217305246459911377316329958047610508733802636919974393050600751957888256179691839004980154522116139587443897173316970693297132109086262384545822493725596979688948964053640064760125440843906597107111979792587517844426695099623413108124147190157146099761343331880826255302138604033385452449243344040542208022843158428753625616042330104181831608505597430230396813602644016531943341389059645024021093075686266291260704513543408024473703514419940561128877789257735073610270889696395161933154061888412068746469130596674746249067747226431094213699031750350181687033883735084340247562594706104765883181653734552943818676229118813829072338659866169969153744375347791231284072452440982628593779975447337050938019798074789693993532287519779342605195296132637075394144096869187916498040132253501421914801641549460154719127427628154551213804614122261239372280976948492094925013575659299751063901467369862384621353260773573851977393704666153117668706532837051259466046246199668632255976491682616524359817501753387993765096401520414276973609978618017317800688202874082643695859323393722953200274017686735667186084446882486313422856876358714777391722049685230125282641265797232038935671296253493405356414864748913117639959343526311402778751557229654302749877894579280596304602053169178285505572954353683115629282851241607863073375436457948020735068107798993018870401465877241583866872777873724570331063797642324047101653014703417144685498542979970982065560975625490004497221094255035679695979521975385014327091804783224374555954867852818443421968879027349068996595665727600318674792566442461603360721314529689419137920015933582013863431290333315044214371632538919699416922601906004682542167926179194155371254195306249987985988948264163324710195636429688972457623805142020514731561024973711490420851540249767810331816262222051725396717740205388171914429272059673170713974243016995557232045969911428856849311923636969752013659015316946059566106878405365912708297497710159691643063533849165798069227313366443689991344072418684457877633980270518543979086240353236041165700364900511948389315134529341078842060984562217731893460104582795181694087159315115660182187659892268129585539082769054812422627638336068446055629338479583265099663357642532979605968219806453790246832769097495580293955994802041964637517263883237480079673068935178419080467413164680948015903035817523071054544390995197674556214590933935876186433361278752557873164739901412816619103836659350483257058091323126891177830754129002656476767356901920501842162011740251839532580917734638163272964040517478030878231736429733981653132553758255146958160273081853289458862943462038580570683131719843765290912284462435168416509844310812490206732192832085770318408282970237846651282815008961612327026973031568673222453438546965132696898735361352129067695257444051793769719637646969704405188437474541122882695009598600486751479040062482671748462487651096815186925925897538131942955570183168238960482062684674683629952620418381559429553742949936830119122862336257241002981460258992987035354520954969394579473069233883073218424771461778391529120998049409671930570138857180683375947158013298297296157084537177804914265245022460417265321229178496067298100376898390117264003956028088688696294747973128907628984534289610268577651123814251969404140977376780668486478867627619200334940083705951211671166807181903398044400844366095539529095326705949457952769629313533921040008445295235061742146356111759113631153480772532381801079600519629379478499743746501653495420386575895936971039407686147733017294855264907209102264554406344393977220442498864104313801199943700611665624288469523278272421920397633329361526168411772619986176608950813420116763561807968308530496490516736969202433867517503047918211728900350067687954654393706551351934462843373288074109022128678510909294591532186645174497534885584952701241693107422657667482906114260290286038080240192682059107218884984050617851879388727876993084511533653007738125597541947601131200044836626755954340198189069592626193723648525368716056179533599545919770523582721539463377826841561167918187871543824529808317488026898896420985361811573554151490750760644419059408184015264208517882920293614196712587185467395043618008265358599753328797917320725695857848378420547432300503642936965816677742406168232965750967901081856753595300798527830466305034459135231703701571123904242121588194745819030684926860486043048536056611986054229876993514143317691087281805529105306277207510183807480400835718246959732240114641930736742484415049031742393722230079308742705794463037053140754988748830335376260403455402871447203625332861891212843517557693113942910539587819091340010770977829325042740198710158113623571978524111123630906038760614361321392605315928281564473569242766360504792484773820935039863775457974642660629532563631253357867114422810554568639236446431735458586014284487381362569702122781748233010958053334885089902493503039291257862936812238417201192894373021709682297851824601195566578472661848673510082197683705516046903244527820551263175061931502469837729564650385530134317877326604712328245142718251740552528152876243718427306976669705070852434114424679281135539914438764957280262918860148349265431209695728526653862648683036640059885351554022215008461359828240536180458422110952555140145163287738048557545949256412429175152667705118047598835291345876586613312635188686007965591119998808693286592655607244095250167782194707161675738698203284648797729925428609456880290165126372278521163200810093546605185120576238949942929176349964600884238687870961001248435499368293074951955731451911277659578784099695989023579696848060327704250402704847174393617468987837629810340416434286586787797168771215743899105540554064321464314731567239575068987954428040240196176347830968358652087291484386943890806463258441604637748251650836906590776422831022022705523947616339737551304054405508209921367081537881689239953646180777124946221282316752250170966612865598616661777319426713739702199580980162223484177600695439451224453507880921354234661136813385040267052955979121397035784175609731536898079270719548056467253870591818811730050534055454119393772389895813815707875058696605467734274445524080255347208233540071782636695514889630853365875143664942519209438454536486118763722986129156136272163852902278087253672162352674308176235582554377295478610532199624887969266521274221147858581360058633972418618232622985982565848391421460121718629562004023528107715477364173666806852798665373068105270994540790485178301360715087495577858649980853781986108012426931487481236309950953509753785558325973265746295302712142668458564735874151119975102827597434552216874322414011530769251147611458417826002517750276453161762798170190980415040984718449390572632310156519153994457031370414571609630080612965679337266210511394846514939744154322809562507266062913875907058199293455849685722496799695972544605930827367258912870227842052919017242809360374180344206143049777678904821734937633817401560951988938184384060344363191322749264130479485063089338973378364863097004538287784136258186455909804824841508593636189967694530214391109727393617431523966970128357382434131773390299526316587586013750433458072308112131628559726962729272672301323377534079087906252025001238058772912134793700815150045795177226576827683712827584700722255714976259041435522755090195206527496512874144897668057505992234654978587552567468409685299902037515109968042729167214560391646897647260793171278009964713602998875376834283687834429813461597983873352227356791298496015633534103740810527334152033795768721985544725817516761609934614538808375930174657010945817832990104060779314829202135232266286073718401076561035165374881081332641076833274876741234362076343296785638786684017949709601239364961254052267873919583943462658772872072917370730508362142503398540372674165894936863983348836052687563204801492591531926147486116885098467415355210313110956888692202720790363859231257839605580157255271614256341587902337630282465271111600240665905155561333625805145889204331550416278942543269784503001132501161015017409769606251195771246450636280532450536899705875228408101190849252412541158208249255340594714504749690565581132915420260668827136834656671713821497956654588819796818214690870105347928163256298429829504553936941325496845184261008387530649068928796266653756310537434035829110201235589264185209280683804467073011563954699609670861440341139969963327637908811929889752370551301582811280116877663984263761636770522836911557739491472680233095864738839608207259097315071385366402138622960317163932991323752562848668185087581096958815894941203828365304185539081798505175008738180497033514655556779297660934714087778775143488583754852498823721783707209892781863307633404315432472560043027268644708799979094910918608092512692715458935682939997373694883607485327354485566798330915157700256821499659714809377692145943498869053097811697626356972288019601940227295727978184484870094321658006558954970840532309007986458266400452761547972370671914412227111738352904538915569154028453206722823116108320723567623201060799683599189531775876746184516753090593115180906129715174566092630446459984437641548867617485158771396279170875458821597757811916847750870003177275007489350575067941180019363996366919723803170454695681515914493982525129852844462360839753662054492073251076338601546141403383567106318924009593831567635591071425733054643545089960897179435291946740397710635341808373813487970852822673060680506502528541655852898757117931571096067331204166731246893616080151382211710373845717259365179492265614446178347917564777653720274016934039594428312947117193657306345088693309116104868534806816053384856822316271668315189510271922000099330744557516599633459368747756778805585710347468548910201706557019070459102185403278736749677946864406178461603757390829544617892024450655208855020190304122377525149963986354150850127494496034690149624051152829160729930567837385721395088842591936585033254465019569398350642203654052027944414228190888624062051261193455575476985158685963462984624121360995790534941250548458213941965651989174503514991178325003960754148426375707837980225072515594731104951797325704824225239440910902666363267192477378539728212641138373100331773191386965097437333224489333213574309250977217033413857378275350190273788034412699984883036603537087581128551954381172571282509484151199746037496587072348854456732560564699967173316649373633240140774054553898384156398066961862227443624255488983843689623878848605113821466773339070316470317078308503930899039187785344505900150893287888207323484884069034009637287156210941145695503829691503408467064335521404388055776952348301442603740234068096193190697800298740581461980572184220522024455557480032521958311218136324474557680574397069449845995111846183891943582361254543946673217718345893175949780558547350609411657521777022942658312097189628290352579850194793777439165269377675954952358884118968489966474497135578433800594556954750920979281111722458934653821062213609029327633866724313125942170861410408649423251572864271988915281953465877845830463542934469607812617184428550191128904954115668427811206631362421601974801171158641009046916749384691092787867407095150601090283343158022144280257184675456276951273326024508915709886073393755255015838763420409197088632264946324727554324438087975643654159430236690988719937809126056737661131596607863275639497536034365690319888757333055971906883072529783563934443402667022064979715640684474670539185957322636369451981932092577022304733472907152659924445568321101535176507161005674229359297852242809803990926613367930806970101247818420546886167545340294428623479611389943749873949515873413103446048408356545998274437264472647211528451639422111917980242177118689221883154439870149275878030261765143511351171585267109898811166638938241071128096413979080133635135319242401603563084709357245666785328839329088568877866157298876643836859335324440684013034629733952629443567120181823778661145323975950696411908908238649586099616603584987298268296673591765970785501652512368992796114672234503867623174527310963055051464216507239249307687268667726166422668036244943815511417890998605023439816105621151168092855002444070614356939544021384748163089397607669121774570640654102119755737771784430549891116428824988709183523787213382577437109200393817743631182279434499515727060309467054219507883862447856000264701428350921434362045616983566627510690908544233159013977564429165253257425809162297488898084187893141599886653706864984143980071251249789908580838285901729336236150646225245043428904094755875045745267057539915453483341158762071308777161883235189517900627493896910302144642837264807447830331313240218954825879490235074749152520459482635072526669845327890398957962285532253954326736800354321964717621046600782325422576564286893059088285266405094018316679106531402281194771936234233846299268757259700401291652440236443360844594800007021390368983432155254259674705984541529482333157029921569008350963168116140316140301808932310513195243726261587291751179037463056003612725945065250527939997087636168110290090035156400401297464933685020889346113258221960048988768392716076285827195865600748350601168765883904818833112279610082508539257212357195259815189643786862172604847367935788820238198312540828010542042616535538618257748933704184016226336035764753142451282396173000777828509294216813762330216915194974869114322859960179334618926788036252892607856039867094610690728333539368937659349066071087311033811375533659064762739547091064287606357293982802113532480178899211542948270073780610340822026592175535152949763838758830113830090136080860595980982509318834828819927403895097724972342249027957496377652228764706208771368417181566207137885961614776299197631813201976050625606211490820949715084852035034261592183610683994707548137858312882557001328303975691248845793543334733751227852059326991846060239447573311313960260002140534437580751315538413294120163114377686659551331545090960858195925134434775599361308130494549499582815887215887570187470113045525797419159025611162362376719764396615879254567443063091609214373243327175128166889069590636407417076332813209990280894232231748536316398996553535532881591913359690391522540254536058335667781175474869589448953074130114336808655745203155275882534630363688627249407410402512043219772260376926977554885232471393071099158910266040159625750034378546690059315535334181126066586439420469180478245755466234964731888526461146262808578930226484941072645948744137064329317979426404929373260640407815170080386983045837420183398085402813231277322589119391599941161523800281651109876200526090678634622320346155272537575949716050103476174289728408063228268294813795803992723501353379359254042879588890864065647170165755838653018145480421143421360486769004572574872919299913968841658096580226278965298270850667771215558324384707570927405876592929162881966007685838922500127468439542527414162663962949434960020144505090441664578892277533043871753484985537391880440079507911469601019500222486834873812874881505850934902937671548477438074662984322571075379135088429053088615508468027038733283955731609039067369939603919424246385140928410037036548007443519916140212676564354968023404071909681864539743417652096983987568004163625859680952579084933433751193865190198661982117771051201767431351080363354446810693445504122656791790166517448051075798766850477361518288438643853220374566233781591183648623924397046117503694660046799719709327138072186513133295603804068083559539676682334343467838076759921050434695485522123899311803775332252554931124317029798064265789130439467633086726643138003011065405308837271696927048397153400959001561580079882037220413067820569415640280499476006114575876829259445384318547900496429833474118024990195187683307609715723289441158185230858754011664298100713020812745156428730349194512739026059382454544579751184438591517615813900469349032264667812813760317852972680245875039815539952304837684835922138085681112993039231708987594136871063352485421568061453707315019452340724024956285744876509888203257151613467324455610500884752592930246529840636024655105398269027611370937394692328364080383188968190315869042372036554057606840102105119630914423636581986658899105506691471444396340432452270650907308767892015004038255199449903146328728746201054063290233020290078762848744653892159991321382198383947820358624758667512115395134381268757667718860353529169880740477530671596027816186321751469274535537897102864371635787102167730151314650445712621087857346793292099260552496762651843594514326507945156588643890048317822168332164917245359418145871025234526714262057540468909979005071197960020531537681252753090032684125225200040293779660392874847645868969261397118088336321650754057370476174590337236912157560642053009485435585013863706603919400137411948946782465018504548472416064669335660029018006414279283160797836290551569782588897361716111933014647920333634162925875645770392894207591721206447615174564490342267160029396054616584960386894841560047568014104413126252642338443880776032660429763327867914237614224050834934998236066937966970213626896233352295039003241513074540760146485120572122279974685900526423630329264574826727739229721686939693558175860144409846544961703067801326026026998916732436581981603097475477247579152193611507702328301355332136507506176900045805260914093234372808729049005320236786500957175946031135778787457717935836691965852458353158276941281168712043741908747343828126245316818588906346781069964326608707689868165444588156222103477698357246067618218290003216419073006617455109815130514318896197982738687223974074669224365972564096469780720257128488008153256115604861643781277443871400202744121641296582931920801877804641308778790249043218040740381034848156240427655334940057603364521316736671033440501863735931373015306914297181507420939240306277205905990713794136240975050701412582262723896922704039509413955924804051240721909881176524852813910156149784281396557930844358756895594979968908267093223154426545224372214499921405629086417681297056423458890909842262101830737662845484935331526100138228599539841504331227272287100211088498655742081015466817304217184396344114036837280940415146400041680134692729794728060700820737959571418320518411417821722372282319704614786650602229150853321747553931167853143946273464034583022317459779186194686974084123947831815845335857201516725717995732141080349335310138439158219747623580531302956364698569881268530264194864237483524984396256076563828495860121145794921104266176250942604963851393422144630725350478509128984144943519839969087944439041818265715288336144566856500021283810647620827462785773868223442834236517576055322580247260667763786616801677196923733744681451795890447645900830938627346364068547287564700232261742870013892263377218642505161464571603506433599664857167629770929200959884575978921155444494553526385610488335639048903940193139305354139685684068969665483389396084601854963494334509838007974602028645122629670628349360009436742546237096753636420037607526335663946890431683538394779634706372946392668354682216358531643443181555863410886892870311846573804653152731427830886187274276124663157753517536119631469497426057910056445329421411338043158603502959485379975892434094413318079270836887057758772619612861508025122331395962006911790375947847663778761289817938667968524268737621342637835541629545810394897428663487553152741222482866812840623282043829965140588576755085470682259333860571546394444156967361272713195555253630352253879892894554901520523238698277612425904134238449221020563555026634217864823153330687008086343832134089738344607985358856654172547881205006027423747243353051892266521337691849410271226184295190165737720676468431234813761468828882887472615177269127225407355238013640583714884572772001326701223515403845133259001872119872548208267568163797324122947644787320625821467616764164088536002541495157009484632135089848312546131519147412445473076075874557670979459791470117846168275954032396579439948662849408915774281283314822639109159307100823161882773097860669783215925014633068801213653175501451192873258270231123911457826591950325982161022562796342369998327438770145349263787063477274261868883960324532424778611820553674730153758678714318827548092446754601735777797942944783700405848200418863606229348415010514214305238694659243070171080097014086112542787049722123174006709332803049666495105516439037235516140410997630060193673495440728781096685773548705257186812891361900447321530414713363993927733986440227206615744610802623830952961997503458344374751867354727697519825521312171581308991386762687004778757905221953271426628789663771141152364422922376783107906457439817974066329311783195606116070062895421140586784944977616113786295048919405146333246325216124856791847949714192338179604775822292534924507887750023532166338835607680987105303998334499547348976835136197275011660778236163590103922096346848078159585839211355637700700313199352795889896383083739819157985988818809657853512027945197509313974832045332948486149175501532226454274091805965441454079418013536538197754512715569858212373082936678925039233275238328732665713413235606986278130118814989465688586446285947785175783306169865991076185379879210507756488219279019304513962392296878651231709614691981637991941029195059019080142362416667811498113180335860131607323544188739396728659757834187887323342536807529594753715243063622595249909284440643559362323409801829102317368224486241291422248516237187149232088594188031961193953414718230188776655810820593238171179217776504570727720689585041000645080965986806524941319376757812111396364258773829376145575869305078833095300783640248047470434728142158607055244168407785547359528956297535080742947974202282278184341918845078548453085154843881496973890166128896108565872431105731061836465655958585509352183406653321557631937555253921214995664748765256727137526586797169474798049008852194889845904911177923094716593784878187605745975019709832062008065512922535885529861229454187004189943539592100311846420530287365989702908178147543741327219590420909732161870188510036669197681601533681574209186926650596344221646775771475108878443252400056881986657848160081890084404114927711224051235326770910572184362723163715630533901984578364079899453768808225900263936313410914016692653912970687643253987011101238715013202343317783254477563028125804218089415459012307094638560342976443000341939653852909008714413199628793430690743328497158580475693539645903100108746959637458446563155239681165432844508371203183268772670239011544397732215547780752540575282458123219232723184792702081181318873285038506159322329025309953471540244294831285636720104375147860443550268290280601683913247380069074086377028820884960034637693233257623196330180338335618024161935818164118112375226001297143880386997760208863461961868666340602311154184824584603037522329837810949136128042406251344063728072875330271977106230607539131552795945101267799714195374380217125091787000319726815887788867117798783674593362297794349214128464108746532988008548508775474724874987291231121003867075006268602785863399244383505027189368319741357462469517138728995861823325681511297792147091870507438871478247245070422730207719989925128626816735774997326433353569874693178581703491845806108922998218226605821891840590150080712505875475694580687030322328821762892680392456409731683609945209749552451743438601711004984835068744437118973123464498135778957731517090541754985468460939402090586014291929245705183304065262012636978179108282497012206972887561920719717663635859479030768311488965426650456985713588971928833604864885601897005501105434549779181552418260653627337366120788313527748012271915332265589032973016066839842758941370440826859707431909117315417900824485228768353986970010598905933486844824507980675590200227409612790580884354687904720871977584952390084991071057829435926957279077176159773717450579723067324133440969311020345796244878284794454350115196021609333440968405276334152485395723838977211228714927825136421989607598645871302560374984086786640752847395203034052427469633321015905837227340697571927762980627326503427663799785096818395251870699030579543414637100043790021174707456888520608682651432444469223584700694199777813597652978797829915859424179241206564657779305392937206910237349875456059043761966176376286947683943053906778166203986373994878775632793978549019426191925379805792340714748433472107120911172160517548130295905145461582791694797099318053841202467784030121344209544025756937690652617108145305849470332036264835561762367503624662648952743243504833819973524308356664539276564809587275506505668511075815322784631075105784922161955194790418882992184818144288662021138374784051720175691611071106639056973261212050389066810404940765125725725459766443067571133072220010849477341498050640217521059871577143230141542148199885628137320438568150590649355144847925610716568765897058469907076008375899222582625691187423101415091789149707159275001270878662564903846328200371508641219588266147237671299934200846726731175540048414533374366978513029933764275690772460636501217759267340736530656506855323873807832663455794254844585960911847145405594401630073432863945387623379945920145248585891139167293870447819405772646067050852337959478123458890750487592459420013189110421479108577904203400503809127759774171719000123973121754025986341733923004332486149370909179769068524926920104436498743767143114475236199467034179561781836733310198681253379535736663532295512106290844448634190176380127697803622456369716161545113721653170530876583940558244309380404739741612789381115414380433456074596926202462282430950017705274935398187544586372189387614934711904385745359857451160739826671942973238908089808344969318576171244405474634987530445331685531744969011847308292948039527943431189599403161455725572433374828956867417397604660145957915093693675954182912940492118834645187139884190826618720080299072070338990629783242775152704798142631415159406094971657228893277920239437498297120131093231510389664682588832547977064908367167804686377693044119531580465853824747344707369545324407098580601029701058984260069958662331211142188110630575317219720134474536354488221926297388820317502583462893749449549198022629731320380272084702785659181033342416070420567539394095235361713087235566616692383190024723035921292994791754193342386400767966938307492897306401131455727568632373358707834553917333984001092688462079725683235529513079496588687864202837947145301371716357152690752124259198870228306245124185172432723119151081082751520965982271068210562137111887923978599205797244032654822876218168089082142576642238753995085409384902890875774493552948253950053135696457503354447575052862543783136860940180117756808838451096445558364779644569188061483858569811542503233863655520981140774264999985673396724936937783489687568828477355381824623156279547131162417878494648194176710247100269593414972861115489320174104641457128035056251460928741749271090533421690979830880219678145919853211598639471922615110903506855824528515215171376456916714619080807990503218999886023766606601077718403210219716318890489466669064687015061025616381159364984237084251617395135859497626512370224751189623253462442588831675077661581562169350191614231028189649325612940429725907662810729946203549911955676554101601143734218200707804917895052457441043638941425162094654490342922928533024040939544869831119378728794109458049813924132909445069523396508232709693571767030378502193722968664117745818962815871079515208301957601951498272576513425728257873447798790691102377548692043827193330769025826409520732102582637062841305707169441986759528453822476026021912360350115956595260669920419514251980268784898218776268933433867069076683183525283918245219278540482854721715330841433281119024270510975591854433095404657637052366401247840699758472796163629427998008749367363479072156331949513342583452078122518186767808880346332252087195868359153463946664791870284691176001309221912086754292546052585135093845054513009556464191026257113018058867384376105801316472521449569891470646376057491275363480409333690818968544343592631908440668341849275714971185924102446732545724850650533329848445869944555689968709748122773828813327181366697319886168491321700687773957106980789160645961896394794409513504498213275714252773360397544039293588501086688298043405103050632633067836293373802902928908502755487504048829610999284980458926555361685289900870054580049357629983613419662222822163865187853143746781942708408563842365336174392473070140225315728054807293526034186287131957538590009985459239805122902020456218809543497535776509762746015855625937574145677162548028627752408378763304131221532463660936165691040134547603740046549374673718937954192751431802175493002765344071008294885580399101865221611415678340245995010107689035962358099127823501468087725830823651977293570968429610207698877855465286135234532008031876083199151882909192902991952509619224961647188867924388580657534580186647869107588487335744048706221487952151859383032917917891888460335298270169335141565577806382380256608492312347011105653393367246492538770333586979332732651920124748735289886808621261859071233068886560798907433352266778507710032727082656989110639171137652243329059768180355052828580453963253484074211120862223785244789135828829727688737347446171825325668360497462043943890058703723085374210984649660573328526437763738849431133489331599322730907532266449591086089708089081670850539425789696454675016147369050565768056585342642022716339839180824033496680336780463162566674774565576254871499675789433002969853206122314924213949639241364584449485379712283930185104810853196390220700008936289255004022226101721096228377014454914430402804076662109600079862605040796538066674138100019644948772209344725929978570504084536663899543566213061712190419608720990682973306495685817591053639790127390145016794664057505632577397361954954911566248418422815623295628767895936989097644420782342254381037421875863614804437640741951913158749196012555119259385134610102646870863405059883793992464825147428387061770598992413946519024498404716106107677573943115513804219365417622136391068301354777674269000959236667905761253750393033689752615837624268174673111694863867129638695043288043392600664145695860172269632522494736218612171200752309693714485802226406629400946235487547051060211473687493618187450629747247058873900468793530649772561504877076087179878833123727719027845728867925078008805448198019131195561432105361557616807093432232823507448887477013442833033674288767247915977927844083600692447382853157232754688666030746407434393344042841635931503951801396703177799296696252885646982600636391304231054915173546382774246090041716213008742400936043662819802517456967040431900617975692985622519932659490308771877166914223429585186840716336766738104277324852259274813438940352221534971135414853731853216587735168299939688462137810978738718180382900893477300014226118712140210122492662266675021478472576983880662527580402970880700053096709588523929590162537607492922391290095856914968491418398264636817014109712692532438050575098261755242691665010801268387489139234706968474445524587037349450513778038660633639344806117326569393110723812070501187834253547099599779190424573291674537824300240326640154659519588858714854861948711409355851606964270532713976858203070052573919999085250894658134017742147058582055970834070987749250650205044198203891686529371448752995265117953034930522316945858760030038195096275477630762491650561618259569174490652723241426777155896154448609382340507300673629385404370288535981375599035049459046255934403995800279255701567032493972197682404006769390792530984567980012154283163873807345127895326312252363479294386435019936001604453728081970114344600422763213008516900439616278256728941667584422955706978745801949610137588198861770338015332297089596579638512759797185840423546787554526458451384808310667045534212006607832042829566059804359665205496910805500324636723269538466229080868657964178271845848791452141345109829694826570680645585472630696541142149914479108413579345433576555829129047502844383781076090837285346954982537680535194772110153372477227444194286188117721163450255364950575953286846561944709771150588903246471708779745541757253627443872336758519369226594850944381123711829576655117994260926266455725632347298739809077634771381481516947582264054318901568073914271283298622691640894488860706613048484590375393954059158727533634352043772120329705521733187641468384695533423802573523266293249196396588235426382913890092306325223940010086975279211871725444522757514684642854645389191870645956441088856028338353719124387815974544853948057821903642912899568417221653970783595563090870043409693255682966294195114442734760981665836667584832222920746464168363511570727071815065210006277911924862557467634331609079698605746635440325878096620792793263888047081774838766248623333825939991176176963982633407600641520651651996997592987865472915128096573045404004753404262467984436673293640178053315184527056483185061859779689149952902590536655631193899567667787376488803232474015369496168897149465083423317517574817782637306921893891184877367842262631155330920623065362127836841855802559894454638564858364589338562475257215704732186211408621972340820789965540729973848020714203089665838353879521301667139345535882380839248820487602424065393406679156158353490519994193135231226729994295264407637329994417751727619636332382938150457685386343362316558792030838053332827516125495580273140683979354339523520454347684726002058828216546476058125766492091880364575145593112828613111740777482437956331854492032705265244854380338698680800335120269178359537245812794867849486658680776592056603091486852063514960160947409397443875950232023946976264684344030050758309661676801910663591442920929610751609233474032822072696910690967967860485284321656625300342865488538169288356611924233004014765609247070883421313036176740228783571638912975751033153856346761044166459376997556884106693173427031909210789936718649467626508080994858562784520206079880397169894485696644471705742634888698694203529746890366538792130674774267614346288987557071318566360077834487340011786256878231567394561324737824226894872066743562871111437746216135731326522568827579473118161890737223162307584932677926902056351585682823992875292347458439678080284742342516405223460016582760277958147121290690437893013098876731714108694089609108748226251865913800466205029763624697550811748816909844031332574535881471888618205424600718257219395923072049186051363624818474512962491831883227586755385246897413457719156766581392113298320619458913294619001872767628968249180002893330187846909440585630767868771634081240199574296522128176369410213356063298772521728805705365908193712667293908210366825729043648460366014678051404298010290410683873475505173691669726521520747327796512678690993803266308110092515305388027163035458560203241141932202163033909372698755032644698180089657236434573565720246192999607317028960193030229591572284078727235383745275736415281127874993311301502352311020473605820854610275768453676347801227123029227402060083145084414198069212114059475724382142107581955887599968358091411329023994947599659725156413918190440839169946612846079350963516387360452385199625169757002507789750396456243680905523449820049158809148478669267223028291839976844099795890782836203916859764887615481680672961640541364617884485624714840307549672725647009667014072993752035155045402616705033016673839617987511807870183252208488816249165804973052275245113377650623128845472838703646869495596373707603927914984005070328311337544289190709728505615154962853346752739129242698643650862068206244860219977278705611970119754863946954776269192109946648213378787089944245792707676897359316009075963770294288135162551826760630944881413961042686334691476741939024336979059610698493333129940331977740498452628900324420878277037172856613896171780261437561771910145571699590087116840775983296642525799737721149010756342384777178064559959875094796131978677702746674142265744341237666285790121165958551651471670922888221465551709876827733357060945522015289109069536610234091928084209161655673853178984690016513772341778609208068471393765020786911527189037437146584495660007629142249679466255432992018083646871299589964465883224186331527849984011106336260093525947992719225658677220109124941448211921865567032048362132327658817041980956739885846237702602695484331956955476968138744241398494916829753411008778929460181729235285565004475844493522881602984501408156594851114572204147510495058548157724410884846722214677527113736698630102360759355960349278813871669330413009746814398038070619604256849448847235431495207678515338659733556703384550155495099414384308032373524957389472948503264352620880692496708323546565619608621222640885618668165713713043542205874501501359540079569458081086934021424989241233952005368836634266335074992350356597685765048010382349068248451292438045357742069598126121491719828293859538043458685759806558160513741409812866603966370802752356986208556817211254692611971967452513543939916649318986139708420044911459317004749953541088474580456667941433956710007549133594745039497491464488985101185301776415860269027026858800239785700859759424930533631911311756310899046837560809248461703924611045306417608445082755471063440204635186481793646021815496784830170831731840353664400304652704853268547219437940696609252348061943959689279693354638877876100746396645846343989096660602414576440087050785984655751594114400981480597571007961679665707790122348692771200142015850301855079303995195645669082802149474975048967087183995074541971151775316451618335606686603762439281129983802366268573225587700958553862541270177886989320663598959554523795685727689874235657408048342203173788284403786538803739673704291592098154816538552271740027214261636422272234197269567043924258566500350115801641584538231948277585798896581656137183115340816623905003840284448159953946365541661867387724223136928201531929059125691352598061206535073995476003704813124141740624400411692440042275731468272046917399535058594475355242564482260805548995840400767471476028728834118253132889588745521222445058756668101372738569375670466419005429510518245702227401762123788885665385960278664120262838263682438389342852039723108336360017651530223608807343640974099587857507782438537557402049105958160524650941952557027676881514489220454172309250465545874012178371988542942714114554039978876313118519217140431633248487538465982341389620446124809342472514116767361960204805629839109253587314075459731452174639666244511710036156894299630012988416728716830695703873400682197851950628220920408814203666891102493852980685703582580733081601748591144812288674314661294380439356256018742623658437934687324855710688441459895295194919483945504111978100289653216989538111623503276251125857979081423611493330459961339196442580118381135800201689175991293255497909833386869096414743632445304731674008096911952916413198154564283666325907256290138839988167345714605515401220249473031085714012648226986664383899785501272308357896426944636689727669960214429086060330873653319656870506005130079074816813370944617010675068278813313363539615063943796021676147701278622349633753072141162319707232439393235391141973446173316612993030380615650804466219361440813926549884019723982205736266141186502361983826226558919268895651477128437545448906371003990167036643453617765305301679485609532769082467888024090944155854183387070945772482975997368790416523064127064360005202923545713851362098115964821102076214772411027205197188797454326385097116832650367998392241364253058235516726795617245520879963197418507258297838403386596993032799389997908665272673801962667788238912055559897288140982197637495442156889947494694301898183606211452456764634376972466383166347349443200015538671234844981548407409327903489682367320411856369843242131415138784376466437468754432002466098687367857680061665103320889308214731830345345924402078988760642036844539863214978128825869112060328092859452390674071812695657787877276129711974969519800690009451875421636362644214465170426750121061177735271402542382949641177307638985002262050040664462487454043061433533345361381458734825076988777240811508588481180533759259317495163093421490360258249588450123192385636988455916379574763473268426324880792122957253905152992377963674050612959399180454308946743715343310036587519860073201018307840780599964901753867936035820652965588588313541406002086522816753858831609400638382312574407513219354635253611229146759070806589261103637639848391609310135340216308388858022559809754819128428005580276970172817077738569175779384372507342210390475822420999997512661420085497402624540294431685022798369914617243181478350644504036721320594827639784098834692049645343024405381984145268803359575755334489962658545207608463115747566738517439679220238844361438062195619394743413924117695391026643125468387235425241512620077832459148281379157823521935860695909832586704013723671445422309840963243824218135067287227536910553924680845501822571475598278300683855846972484079394851651894006359986171193091415407952398063392589263076526456550095471551443392601207214573311614158105065023960415309744779854134959919464302108855635470140157076649656106799584012748681804451581037347036559745310907645139821284842120725959380295124079565371306185982840642110758308519785802783696479407687957642159258162531776756630938885876793947533381427304281146568736498953931835358162937403309350991202665394382038174534636726824558117922423179719395729947364064357726144269007404352296363212497624971417297281654878384283628776283785695352954639419875597634004206561971707072736787706026586607457063788727475454192286206914137609732128717423634608518825160797302385301031676450626615532114019415495598214604100249134994632323544240360846934714069116257672540281789434099148647054162741507812412635207870067184753280716004169521674302572317659120499797668223000927029857545456259495649971078695016951859655839892186568759915602027185631620830003883760393268445150366760821815114474485151288615019670013473847869986498493458630048715851646234210496837332086302543340566948899071280272316667078105745049915312696801078960710657173777886586769241394664072572134305532278909116724145832394916391113516842613668501333979703341429813521071078772656947631804196064564239354074372747215052981207357916383668666337445107203343856638645144056367046033564846194877565911326745536464153645380689733874271137091993513963878709523120786916103385826453478419795770943629988878970809837203864880213532286024067058697384845189723961149416456862148234285318447780518100492602494552260481310438653936558213807534986409193836048204365615021230431259209395232499391553395709103646091027226500809678247669971286348747100175857749078574066020674063096440863352216370532413254934638928300869392383277602551353034998893417299331298562094033199152912215444250599654492499051408150808707550998393559815248613957119096652662806846875499929351117183973149537197482928007446718964704437662945649646638612064457566332004547174684752202939451364113753511704078987709228545998009046349307497327034476201270940793308804731006589430208317338718660134470616489552584546820768050864505227648614120450151962626410192450164347551509524731556000821222785006609299424793710287881293353494024065597328855956923054670904592724448723385198612583996028013835168456082231482408050955388312515980050255347639278084917135921359908038149760890005436159887163153684886435754902318499627964402413781903530213502242416528767109972116389696887160117786760344350929468768740284339059158284117353041675199872603860184545255425183835004943070482742345619750956108136469826900074015152406384238334793736019646220036878635516107713486294378449713417539712799936123102779029722900525566126503281916418853824902919084743678103254114545115310337089810871107545442994575525047298148948183735686546889942089748955375528306671504753907034876137908431596723436091332971753792552779394814514200762597139471060635327609866972514209161535154940883826838651487781476562563906506280180760940118794872934240480372344633420168868363334609762451369435512653104319144135261548798277136344997414576846623314992357093042475215287344773287536456687687137802826716436924928355166963492548153806796677631109456462999112643976730162362740977248920714627029132035626036326338648190071633291091470020973073867373669528146225096310229840024012471922884936237979421221368916305820492495396414962995452321648648890052070432187130979304055280446562429701293205895670219037452238677745439243568892285385687409212291915976578535363829010269934294739580509364405496090093962986659287447448188314949833649258780554169096739968815234302403894656506189278533883260262770718445916758612489938108410621340808165902810996838986298692294939640576621072145174187806567186940281935474058683461223469731988063662344217197589723462957499458314313665249108339414183148866288716232796127154476800958722703286485217315334296292004749449789191633157275100977073401659260541427054736440798226966506996331938158644202483619045126501076182101503577800382437315208785690383884753684392528051043029770769977344217925173775099405604122062108457754155045319392213089681142644384889463124288134210639618107699999419464707270242657424398366567593777808726344889076438513909588853034893448011682674165447109793805092136667994057531150837874950869567119913857396574314931284586722612039230986157274849279560225024216019212063977495632523963732054530294351456937142413278436116136209676213550210621265364268930171325718139128963965733966118523918012269326114591191198543175219470856963145094934623252873031909493470269693078562544948338772760742364057315341852356465397088399281446544578373149253496339498850721788694863672844280425329790713520147149727416750780094063901887291503663943383197279831635368396585938378117158314405173156610640505603892240887418808122579477709803117909579189463288331998059446611341882023404538742876856619664399347908053187066149537260285649515305201519453048221499122410640216961047678821811980492609795863357671828395803668774050936705439166362599982117501032610978625234916513806503141003929586003429816999960035774541941579472014769889636749275659099616559359710682334177617829752208872697526182539235558869119947425775451836083802949136039421978002259584966562483743105675688032176506949510000330211178772570543716466814384776788413724466418704902439735808624587340069051940827502938963782935465307925176124120716108694818513169583352517977632642163283472023811369938387900567966845701864929526700538604379162385344277839331395990566945416501130692453507678069551739647847136955581726522056624298187093389042487015917471243924569851210500688640365036844110351244604745997571872898694874554767314226870516024216840430192893042096474941010106492541037584323730365879956496448045742000575813143646539621049344195287587591646647207775258873368929049594253624853045745644871214691173489136600253553054093622436438945575737254071362208721623769413026833378986536027439824776425200390266960182749501610126583823786104244254741785511747339387430954983437054033314166300614258205928560059070097459352982799847707646111125895674337061635465690172949263707624055423618970855516933269220322825231749946959894307816789275175712572973371792992968942628406175095023928414421180620525826835898739127256563408479098438164293925765487290854117162195932115650234969977462878639193320630750645814593775686672460359201923788771595615254318003635665808219227723640820033617845986520297757313820393545140649585896158127095975369675793458258458859794550987977044780150084581070917969626777757482148292860697486163204636452090369278487192852310791333397988354615373102508095730087851187651388597326905741997342042829442478331260111071351600328025149781040458872182248975490650927412277787573254911888475836392431084290986751488566879114688227739212855133938220394524026680375458004588477021960508693337555209524308522967133426751496459790960273456698817211608320759846908558597333355114550857106273269366936579024258151851645991211682782946060702283394736030544736193424419622804926047440015851068642748313494195164950721159503430472316298964822003631311727120224425561000059786646465280997689086676257965711417101984601111248854787178600193476245797257866299738090677247353430480572621471556235249314933789351905030627303588241225539978678216208546455834649407155518302255468311869289534124487030912285296652235935759327629394878236351249035077586905356825756263451268555072696799860096511961926022659330700370667797733201246648582124761981509149275117357444778801880366688118487936293449883506916640336554856033230374353525982175615909410587511203270127984980257416216236159892832364083252157458999583051258981274893281200909626087435308586815523006132645770147654430674677629246400695247652849900863756562639804972227826110228003016795744013094312441454812270997446628423957185792083171742580625648908094570741463310719043613899025412202540601206358346893262186889075350371876489239649588683434987468858346034032129459751792835847672426105793281392407706449360334218302198970319136102372012010819471737875649352595571311760498291437734737585935137648130249893394959950509394004170131060088389283302040618919838174050435993758552848298961218669178730567496730202207536482374650943439906068305392025818925695221225482174362482573009841639102448492381963580927146535207911312772320824515154314643217340690576415579811268784444471030695020835427461800789526278580472477009988567507359325291282445547994343787890154023491887132108585563753879027873127996497383517569737444168163669124487303433276702795064575527668536617308295647938639170767928433202640991009847675111177375900027011385693474441057196949266188569525069308275118471354384190672468361320950752342911734697187995430350534531360819310222892893039808688833320414523673343948298671764985508036644057231514026889653301597739028592084702721554405047190672520591525025161568086418998120336740027420994287751254093718606201984529523260480772858326516267416025077323360868423517722833386070417478095348415368172404072891063628322893227387182935854545810828240482617272567831036790772629081279074767127458374849312310913751285074601604784220345918088359397929111377374439944376920714077322464597628847611783668092198813887203761233408089070950186847769339399551458019581998904142252535774233748500763819512751861789339900440062471128601403060924950835603132347281454476701042455978190234649467650981563676411707917463404432608354462018661836257754042152166810120711451889892707628723435657725413871151059586636084886354341601985687218112523523605542425774182704994608118799655351657132468656030212746365505249194334494322983170324055569521403750019286271687224987631125544450492042843343818391173896386119634439490763899329221765833443170565085318154453913173142020664412334591577900828763045693204792951530733665490679788219585068291721013520938427268112018620514675843117904956664069530910198537080521084337282462697434851236377596338794658299631539609690236717958435121691224603626643016025450944357622010836502192656273913707525348103299585994070115577694218192145127948787224235621387352288461378833736305972533977019828488473264441498470458571126049449773747969371702383188777371092880571118064217257537482967427232377353208313031073143950123723948242544295776341275124900945665891761756750754636706552717837073013685379864271101708405601626063231288112075455329388376359943256062534995540394118723461517237326530281841359850330080489366523477158135953696751373369535761983793998842325546092657795278558080601209395534831586496560484084320804954807690089223935036254826070040275805448877828603841822522544548224137951987049295280665190474349897212839613622489934099607682325336474737808540016815597788462670633705646308451185158817224535486439788903058527038871232673812838115433870116388342061700390961253299652407569248150035759232890164178356996931162679838955438068228421556007072920026077136227233720271107704005311795845002963575868445871654014700298787330656484646456585210356177365137540421361273279983288342140077813679942913870512100288482458833479101762290076802630975533129155108566971980654588775834219915873848298283152001370435969511745646637725866078075790497033222080699802391111492946508899643766621940246442874651878337410282441961932419415401516335258488695831234646898012984749035539606146917444378057701523481645578259770922025247908832953778963517299238103314855445326756772229423932103142537146979088431872814710090336652636499286075343677329211858214720372382010661741755566206076136733526045621350559534074720633731647126379092111284873948494287621367590417955832171690066691170082105396255084337416899179630082897996277663511380549482273770976041636529743470835780691958808605810986648319384737704597941917640134469203928781175588377316492371803964211792955695884469893721179300692789247295291963257712380430262236950765427628712088822798874143582257195463953637698995897386368341831059248740704693627231306224717579764034306291887663520655584109512001570527505200975108095309222155169118178034630530999804674772573782441184072614412519099879964416703793382592775619363779930070405323679463704894980761710951034811620396901200807476486435325916327650752044131736545154045560045561163359120247193421617466480496806950799116376886250128654077598734158000862014598954238489625792982386613313414344568211741714512103369961198296135820644798326008791190815048758388423041142938852657696936344835277050982807698119611172320073815680958567046981616300780596801180937065012602765587105657322249135842629983125655823501472676885516754966133464889566222635768669364340427719850529935379655463515615970895629019543055483915586215817117530032044100186306559901368183138606089667608900356193581567878701008929982620391314114062312228273983774693263169075152030356289937349730694402100387657274925047297205749535797831034918247531264818148240988187963246416489817625238542358140098517757294985880381867528129067497978141933785060918377602346417613476443101185948700163743593339327232059773891426508552454777528004616347402188382418072289204157563413682242145725076133606957738776878448150078581558144937076714169734146192115434201332416751988361143001099268376974827589422750789507059365966946247124251636201654304778072716479005990963284515652203096945992097450567585185543681514169749231785695497711954546420251520712052410519862111831720033368913908280175257946220094213365522110741648001544972193903432220835387005531510182894214949662448445558653240036713824221375386182281088509628981743768094113850519646274979480167029714171886199418494022370050007979598360964356296256282837252048388031085150367493791663597235067141527809052563634832884318742796053172566297893222683072147772238298341267000463361271576295724883158221248561385287565320761992416197604296542037704340415358749442221357414386861947705124541036454620347465878106244033341265270299944800736943034313226169858467451356368667108527802643146498452494153095065332598042692306518495540703957027485260834273938761260114550005184990740645863548106326469607164316705489111652396921008717540415801023196366139695979662018437931703588932165173150184982163853427181914353298043855334700425980773919842714749312063940123265465304079608696487382083154548767676121914424267166311531164643827029096752642593990002101890520712731050382171388402696602415329150744366308204604053248814834587324134200108210774054423664188498001456039058283184880091303430215130881959026652808424795168893784622919603096675491100664996240212620442474584080370205406796736022689048121813249739513413455931847835116889991548156252973307535142694933546005938020169770193058581973080637590329421126992270725929582467665178221430387117261251533178704543183953209131822065472992026040564537812119351014762698909888351422959935881598057642135033752106121788711603796173297355441653191477405433179913865832078764119250215428513813631266726800848674116657358604616896403365967420893883979970848494891218469968993485787220814451110962823763756395824601277403099368753570594900461354567380623815040317617591235477102800651860597777065967480133674508728331592966430588936245754985354704211119289951890090070805976536082495662788716164523713807599607978088246635684829467996458482639979793581760240224449094306522626192613166225855148957202518892849380716991030567945933994241283974655853061284836398189199086752865727862654823606401705095094979684877462170851877697067763831365828471076328223902574932237292330811154148444246330642262253579098722251447454229278127604746316087415967617444431894801631928118993717374448443414582166810988750395608530122460844993232166007163420178113330490566278454712876251215760550856869638550083212689894734207109000494591001233274368709982467234578120750005332717808229230877119910433705404513017279907720738574419949765834820688604345268345927332013647659262029640205906038870834456252641251671861364218900263666516299766146506105120540024025062215332386951636706226440106518365270024049331585364518068778492386155609740314219575527950476181311509131254350066106181387941733724976180210475125416947353374855726532822135704850632333041851113161582937434791990385644974458368964007498762037958473937076115292804411661856706828417741707120048248527975130658179569374756362907405155604945180453528610246416089350735977967828989165028742369593180438156837448398158286580329453673266468024030926199408816644710925805764922348491699637907997906353852474140160733603149697163177637507196392767242574315700518427001526277910480752509753602675632105960379787358867951452316375379833416784768774699964446658959977798943353434399419741015733100959853821404531797917646813173946179083054626700629913497453974685204958001395812110460205137032913666621787022449452303865008057380538223130716221805162513227662037059827862841686698606127348082428239707433223569821596110808679488558768770132378987870462140294587776428769354455718109126177093543832478444750950021461297543199229527131964219806348871526513193236256942515737676568255071430438596501791587371585902437926375702296203029068844887962763768991209054702888291875070305310192042591541593164704395574522121083751584508951462079257454787583844425863991073604444315820227082540213953671492724303154503195894709629713421726997859443799702297433238260590815053171844465563319870696329065680348556314878824095320961670774274037171600252596608314073552406268042571961721846444323478557341225423921259317426245850053101562546089738586406976773371132017574058440768888633222604777586685141074308641726404071609127545801202919774578547755984014419093497116331180299846316469211539219621841784695581931416653216974401787871312094407467302035584850280417838436127919630996546858111552797433763892307220636878762081826879078926894515841205753018195413167657822305336158929140476023234883351220784539828010069219923690418236779311149038223927479622248880025459248225470803309936453612593608608205180886997694440638949125254259808087310234216397714744949458239680492025823573647263834300516768274823969967460691962628239946982406227656592780596089093230099053047729825889796962274169023744175356971964512069843945373993109774271718767466197899059774117565455315252153595555482363804326895355654231432293939782526541833983174895011263703941243405089313758201648440588053123082728717109625331033557166657244453056542735130600479512360840466850909287074549854571652910552308750810150076631823703858826576223861973589876177286338152471377664974849134993677789287546404092400016011155920311288517682216072381408692748672688893595268033966097435380396326240603518119391887034328261429988244307250474401749292834031660934357823606716419857706732672313984456399884709165074923184723162935315813704055439375670260055838215149026799613009460483944045117859610500358392827674012023041787693905474325427424588533993846999381162906437943657948156631191222443124242132403333627601340037365788959412082763547284364272938536320299512284240265411964412374931969590460969585711818413085034793504221700197643731316881459611642707369482339263892088483192158894411691034168852780225850580821942283656617455772044687778348166148711217917395387913757806760163070849132473591593969081446280360869313017654959943131293914291930601155055392829162149610223848391783248886072709634181741913697041738100812765412868186164167931824660453858612485967755039542343447848727533143435699779148256113885811317656700122004139077116706224443204878503685585854202003349370218159244771565308390649534270034392692239876284688322798594063184364831715675195397861002078119410509022850764944973420992223054611006062099731055949561411593594724712340847853681704962543730351732201980983648308134357597983885841116696723967624564758342108503458563486834800398670397955041449171722264309315719155668320445471905446548190489606720051987353802849422070278698391600906408237281433646841628905095871413790750584884964590909639016455211219105952307927213715706185540581043546569611470133972108773195253674860800701854691027261736044223818012863941322658353292825162727156483884142262232163690703994436660198856127864541773483055510325235211862330226552362174013647187043319823764252189028600275746901716218138800155392860949132922827716428428764779858958878761229584593973575210565650099281855696941223315414333419971620416740886309741106359565673771230694736869298277256979334807551388417890971351352622046677232514395000133969794219090635458753780677655627961869883323622730473004769953748000294953266720781447314571028175355390859845096695125465429652635025135481209671576213010340119813988801160348854234172760728351315088876026582316212453850001245763320733001420638159763050967550873301465475127689455776817923259140184018965496273096544852821430006779404866867929922328859677273481700888691398824130379168187271708138959136978237395565402242560066001370131707616463284358135027691203488101144675450291562452750785205423119672877648029079607369843692704764880780687562853280377191822771462889226122110708808697889712262472948020096586548065585373163448559823336076118165235172360185911980610494183928795162131518125912054859876038013677867603500623664209325687221088101049072364239314128577619502606879662140265645723125109411161569202496115916759657955577826420097861037345253544725360603022005984151480748821083861577657305652503979044250735011150280474207866395537346885799560030315995730014148816864982695263974981054643676375896139071326703272568635465039961961577449449798502016976019631725678264867987540633442438212806760474629864263149936876457062538602405417255111144807292794553216195523585719154185026595621741340461271231812000434280034321493066177487438893760765790913355103215404768696745772338234586444600557105235211214235119187070902218595743941282276979621566730972398044439410520854016499889656190388037468241292661432983009639939528350622935420365519938519465970045968568229239945449624866173492578213396254333987559099421386390134448381489903008073811007325007921531230157694794822576662649160085850969297079846393206992414962131858210154064126454487132234051401175374894426464912191619456028219513890878058609187068499261720523150573666316902096416293344335175947738774046724334447484387896990814212294080002050103109168823383643359255091634023928781403838799480103302911817111496617756161447232207876035903666645250241242863620993369950885317995626324075086544138111744412746048710635314378323737034252885163543600236655190477998030343210093708794547444979309648568430621915662518584161409769587222125289265697174880406425060168230670479081835824020945216389758098856312372032184471399550169240398409025326298908581603832180970930683489108196438028174760000567604875601729682230765320993756519722291797569490882812112481239297121550472146276091733285144254600526360109300745450808775950535493936557177053546470086992450639220725498403193041848133614725702984183531625339428932041391470420200539604625383845685307661371819702424516253241391083904968420652790972548060693953341334407609116174582121165013657114395499411232360752554467081276253312141385727281269140099444421839737718747060908934747705200185065074775922730086117003303514547965013323913149155654132159412629140809279471129456705864177540104895149582229233472298077831841507367076469022431643696895612652697382661483205053837373372129945788908901199470777647692868097162559920267441567713433980311201735565160766887536923112350018483943272428738980813331377295093104536330716118463434134830694879656109817103034918088035668313371036140478868403952578156757398313345433171713904385405403252069869753476367440831266913421957963039435803317766506475547223248197102108711449694306444501761650498788278010747842149112435969906113556398705827057909277050774279853181122462601422750517143314634368112025169714059785756629384789549823441980942607497164418195197499917743512029628318030116474530978197730670480337001335453406078358479397850580060477698978735504391680731024785694741343365157391153617065418355112097921564206653613492353480803067086788071386289231705680694675370211912543190108629300727078417837266397159779397669432194454009189527942592390226202139693828705872969629003176655654244092233307360946632220473805091943142356096416212366803299736965339346858136023120575255112206685757377155123146623477948503554049206329444708078997429470786043634720292997990235640177029594293270895694765713779643940412427277700414598934074600795829597701285412584326627270183572815811150464156942868253456402834655778805618391830159655461307557080510042658420139637440684238182339000866279618593531229122263965087368413749903570594322573220129604724200485748693795597767944065353689870620425178155598714179984618866522210897445274975528352982183990744428636052955929454811740967724064110814650527906258604014221042287216960607878844103443704781228800847735998774042377520666922131584673082625578608251156738714102047749268496094769879880203985602061183664212660011082221949508357798690049966530511711952218180998814265279030121454525465619259509854448846768577619695463713052621773631688609294919742066900448945749396847367152380492719685070194892500337615656486176036313918962915258581687241269302302552562370595632940070498462942674731245635613195181265864968411929405500275403050503510685716069661900725243037448038137297067959029582588845411228897049126856371934933680196229461386830096366812258187912796137091157747523853759770360486457009605043936602036914700873497755158171705254447021942084633069826394499493326463446242783552590041091372637036270448513332091066748253127445401168503421063164673089058956815070820590381773230445078929698074182116704412924163471826134483783818927415854963093700749272605744848356744499267041544928976873626689323685403984659579738829285199427286648733555271412304186104589470124714317950999306336293841491456474424357544367202330847920837966947333310296758483466712161609964589600248087928377819956551046790071052518075978635240343416458797976021593690405897269697846911869545273308630687524953719521829243636933585370819019425750996947848184133725460483100391664821046873466316848333241860258148085738064251096266249442599899563330694397502077303611840068304683211660515130073230625306508068317856305263038245682119515847798655318496885478626136868653090730270032389487120970209068254277975836896704096462696516255454311168235377224504051007060938552809851930658363967224505064830464502324357858212816452250989336360993807781177724506104344923999213805851042533961483797777601999007549447006106785109890314081498745159894315741501551722690186467917061917590341518226391759449134705438714031563246889230283683767589025599332273430911602777309649672291648953891254515614687478440953994764454271076617491771605945630983293001171043464284832166810518906803702603660800578524238111590892077028016780575426489091167148729255054101467863600418645621650365789019989289801907269198136649422543687774171957516610566244583519289354861696606863291895852272629542435437045758258055286160419410455162676629652961210733996419419764936354552404815759431837244855076780887743786369645769401618334513184044337261362346772141392829540072037861026292215166469097356745651798293332998776455388672457996293150083264208755049271777411078038133420446665410482342820122225686309495221631211997997076620820210383420405481042393599823045088385479408681771859965713558655152160855183338590203244477230810008134608294981333186894208998599800361410410454818911175409169658264682860220580243309168710222495631901480326658685881141861178340456344599551433704457015227349922040203965770025151367611631873070441847639966162190338801676335659819384285889591692961358817731718674999755386483580755504653623864725744334784741762595765571393284608966697662891145683166308336182457512695034979214284425701576164842112551119304062491570493814458274186901897412541372837643754943945917028673269118568841085762477836630654943229219518801472953625779082379919720309237716808759095929818850482829531522623777825564811030765931720839398257526027999356812946222299516561622771997549776081857539636300699292799132062422195296010187624020227677286171280520230531046560334003297339465945545858745150693267400706096964125150033491520765958701161973767477967229463483605572517850547837163817717216971194005304443509780621150822224017118875234746112397602513230427306700679380228675756311391408374593792871284370283862725513029343918240133585795229150305383097712260291811094586391968882761074912417878345578520943637383933150729146467777885429687597816908229460175155049074914188205486672867725862317202134866868083167733167419572849333109654992273777742473720010142546264256841672037847657493510410385103309914324210772305840474797289823711368327646649533323673489861646489648085927248799003899454402541573230769759667626048993607779442350222907984007294078526698010603058643897707168596787389304099741200151991336985249326320059953924878697687140453982809430196224578505334086116350295415142663540615781286644357338227842431999200224830300408143651514881872402887989088329464520057467080465249197049604859798159512624375430863541813781807432635629827791514346001535927258618030155536165652717093409694393568814195052635012325641612181616798088177258282296905835041146612938840162316644113198400866477493116821270943576586593880670460170584440343195609964460343464546261958554432445506487662780918339615227643783714708402699270842231901019820148839495440598676563993542180229755791148091499650493364544111397213713215469895002005571473469833090702078510682829650403949290933299357627063187270910269955584639673438578868821884685587188454064194082629203623217549501379085132130762086629037113593540940758833616321463768719936682128681996097820520071202332420170764199062532420473553018617604096709979664273222201796602055944111137105858604816719031071033185927307420141704171194552796176413154160425162920674028224839863367610911453742080301837726776169424300313214298052910169402528687222282370310441941806489901313126866401149856643085191703116732660656324112669694518412990390062350002957334876466564439329697901582886763008637663004234903941667469351634613773055785785820794848331752577068225666835282529120369786273324541433415600682736361770905464718159242685926953306962496770373396352202165647894842903441406507499467819259124438614941890297463012849802634429768086434737525953243334460882365035346477530492340121092276151165009834319048882665433261416782204766662692951902154134262160292183794974780647983966789632803961152899921363354134427594362655807414115777674426408772080219490055634498228039762629114741358496215546084343022129532834794893612865117870745009309933712789784131339234539227087620414308884721569006325508359584954610299961942922579911965425136659375162630338516418113056707439542361456939645246925326421049890534372889263462028986190448982831865882432792604834575969115222113587260260508024740228584329196000238159758406352820091863703659857514564129002061192915056954069413177126794689671302505552209082836720298730579239825723084595721996655553799979670792827630245341262919297241878225709694511404175330247132792251268666562522824926117962569741628107792369976485558187712439430641653278031815381847004877376019260876694128328907590389700868961531471061154096232458652407370340509994735615266920205377369723132101794825166601568783260702515374773948922812889346053252656529620366942946222795835264963493694417221347239487008840966427478557724028947553603071178290872769549540668341266428045881684310035693281444191795987698190535392210318093404952549116333013250177440214307407555542851303077422939394519688717205209860712254066176474007946784420771823842207571413120503274846030832882481131972746806177118724038705744073090555579146209825422594205738230998217013620762383130904681337330936069584868191992337230633759162942665873539607279336704381441545801170293376252808168474827360867759221622302211502805601136192521775617535164014563384858286808821477466606098820619919006019956516296418876898792377112752170693529712482829149567827693936915368853700912328700203660108118436856266882399097848816535553143406377248157440271112521926619718086091246118892658496041554128847893214076620247760222729291544147740016454559432783060776402910577964915834976442818646395637375150220693679663521685501323115113050860426057601918464967372240871223947165310812200478419673368928125139799827786384366413508323227912050853018798020640855393752994010518612501939534703632460959460691191750495969301361728357800081308844588327481499978045443020632044468905926691107708088080672100583260214080745932368083146199085844618947635137040672793901212115305673380656446186452315754781230216568083617111330004183655176182426737282150820150459388790176819011392064632607003448764231379613824268084822708643823820283510043749229595501854969177417005656638741420120188327762590635038495302457477185575595928919719067925190677269293563503711695020291602239920660239168300156908580701572518832515770897254462762369480465935141069282657377241633802068505595132550011899111715454122665366770226209395737419762896026233901545169590926558214422635191202008825490721549991479816623915371079088611360830331321943949455595827666983437954961576119770712410918633755245735624497848877070581705470310323300811429835463990352514190706069118850622440712173730274765542713034707333229736234752192123984891588049520316899105859104773169333470833258115373913227984507401995224407609204620623518617708121885063628184174150291050510059688749687335904090642350816836631872939556398199780890097237545986280994812494029083202981078322371091938501847524415537616779912414015941125244340026405757212780544812132804674236636974738947081518269846554207330213414210602467521240718552993215063509348075007973425142628972531531875064111705054068353516208941232230307652831037133465921648620580594002697265075835693153929197678111870028615320715548090404666596125994065847078527343253781713715594001543722175932422662519026584789852028290542520578378994114299542304484287270106994122669395543084711026533332391517977164901344501526605010731121715595379188786658062341357882075326497205165929198079268705336651940240389272037083714265103205653065929780962830258780927202284324858640673721815286179048339949579185442766139454506506258742963589754157883883703649610002323733039709999770862701806753879644497956855008813572975934185353905841650990183000164813779071864318032260920502276115284374759941046798274309634806913182060669261185501017548232589728419751358715468202837717729767514522321043154044756534217793394514734590844120772865187645998172333352387501616585868436642911347011968585559186882718012195203126349643516664806003405373738220604426315949738631676115605577170154350837710469764457759123947584951599322171545474181874648785607731385148964280775766139550678465145246073732325390635693693449187572739021550928148014316541267171757797916348899795789826964140666585266469865375752211886970408412088335049874576666514247805488670570457098750252715587107473864966144646161592309543508449283246859721560030077347677871017726360916030612745086458122882704539367954066991633613606323697081823021246612970916429098525361663286317343567027460562112289170111018271387040022469373832970048827391239939977766441968618275379434429951023092445313175632634753951834820161130111966259116839244958428873049319448648967631112103195948996181974303386559290619953965653438781998422179177930092673751989851750376946567122800463554049670696006955547734767207099697382054898424393154446593740163136687215281329286444229327652520181850580840264141119325077916379971785604452714935099762547470629468333385055844125982610354277023610971561958361728640378561080161599779981228288847079026579706567144336788853491694129251313534877142837306145787414252497231697766948366860840810915956276831512286383571559198880914508692510464331947211810749165914443817075306251982949466773823111623226739266477253382202229165650340995955850167845684718839618302519478483096864096409226813939220908505866341987360750534005691371562010832556832873951485397215530258047917371408558124128946450186466323344598654542470261321053411740096457479224951162274966539318816879297230346207855636432605826087619224690903384341926167822929330002918994897030815465799999470857778177868923216552020307265999070589592842830233072726709585727027081265477530261299504513764756454646434839035099063216267039456248573949301785494468561159455486600474796097524794932069614328886896230969506209401888414886863649145160912129838393761126136007404587720338584711450231032629951753212057450177575052851983477684336144229171892184885182098120296135048943843295068472769281563202888800305585283276475132778054627894778982649483822553337631319301515138802054283598006668334035220971805238827367850595897527335173432257447456567453530231020350729495978350442198677439996780036890565525250055990209650907107566295838159895928307410705734984252042911980726395128107654278538543435253709668419390850978990867696971115606658258428022375988076816523801449729901929501077842459055831394340609366602572674139744588974570739129999478852425153023538895612537561374023606292627413383292318225558305520960577443146509651611321544223477422410954187589229675284784916849412590239303994817680747147898670207566417667516375403638224656474844248186918320530031906512264338731055630209443212805377378526692097398092077742213484308233643750519265523711151550814438164522655692719918432764822497318724906593200232219700693864134204913992527455956684377833953809584612067626243054522637876892109695768144381612172239603063102595835868792580156273294235390421348953751107090255437471654074523503536699815322050063434558201814175575343076586168538008506781683091470751119263846958835586694056361538222114592325118637847317364191954474244580536493771686383878519516506490080866849729430893769394467569130468354283521307976546478692358624661454793066428112831995633910837632987198985528611169260833599875445259750960576597547684948421679175531679406754379024595074239454671893478705703271614248863848020582192056126564545349409019024651381292043241638640026816106444665878084656489660172933227777188378899753666412805824021681761976196931936370603603127763460673578948204624352747306779224037927245165271949516971845427102083030915858160480172871053506551888886480958775741062077598082385389492744242046845749697871298254591695017631161007276424669499402190538096609706785977862564292299183793863301299724503061975137045421456023560861859530219254048572718557787867570512389721857397353342674700225725506426798033252328788497679833721048428051199099114089694796725895841385897570728402339273477519502705598909004686162225438757722542723527662955753346154028420076572757216978291388853839556540056516029227175775904031416949866147286269016465912049084927477767555119727030845015886089443010956233407103539613165260685493107201052330938822739850098074683500500603282608161593642997930278702218863107881214307006952158058719802476975639722932109858449331015071235517304919131447713508087067099140478771348355644992126738889770483181593351560744810364829482218900976828642264294761231494741873999536413389237900845860378206772240499447374733876136228524575015226770500485483022705375561480706761750456542143959411965915122152599488037076177043134244442028380973015133658781952262164404740215844369429118672454543051307461929817540993358388198395194463975930556049675652899727812478841860321565975722679431509820277052668513198524352107038081937035444896677796700801136318978250262057871581861964792304143161505659777180521374395263677195191878600452303099163658508395959961719547298150771409483192457427269512631866325577076113173454572586308941883417011508352367385201354385722657203082487512208337080709335087525067204268072255188647851606011270621462395859688898658177903775125411810695612566682860529352967028022192572389013278158088982692466377755583443534715718148723709225338827630187332133880824025515416659383257128634226796057090793674917443029881903829098462837189429619938320136073510835263976852915187028335076500998998226445203085568553880756592164673004136804369978370722908201991314600605506382986044370126697249944433479092472783484158054322993602784305266382417322063577171377970429159954486757209000286472790930805983632215628757362418657926318654970757354928784850215434556857138649083854123215327301938796466231979321501415000564166656144472359680841764070276841820604436488014418606502082241180980799293152217571695636112516987480363102251994579392489363623078556255129218625051641959668397728185454382637860802287574381803943401287928538844141618265908254483994012834345963382714389117716507877398454866123211165090568954378098641213067486822694073726266557214513977992947266732466005350644562159287130930697149658887714487730953457805574346277992173630463601110680195616567961721480991935653626291586332663209995151500550240815767484414287026213078146738475086496118739657079423056662842043871422463345917358964784256295622783561337033448764973218997695612374482423714213654208661198963657269966998810115515017733046651896746083090491952144308335736353184990469869036757582211789481689068800406828642062437759270147649097655729788405202811451032894400970857154428554303094333710008181007540385597440927631871051491569650697062059381829058599535846862842306489486297016875593129993669870766641074911833117602898082854069963769371838787086491507073518767724012101311764802052896166025833836615725815660234185814807156580532878557724753927875089770894383696349539804298420967660665529631554999423989118291405221249470518621065327252001970236368291859887732498646953476536418855467317161822031532049531377255162733702139133026426448982828312299583753333442852186555375630137173950343069673337445595512799002510263137385280231569302877374778720762223644072085909114891716729290644816763093957084784049542273509826559105022669194398429847948541988163473744732443949903973411488269456909277611980997717104428059209377890126381258380642736187253004128917010767178077513277377425056025315081594129635329334039105368718997585039649897363454184404468069872977835323157410542372715193526786235931429971622492811998589949083520567518241968395177099859255969694711427400151297662448189158164159949470523660583447219836033660564201055609384191458451263779058475223376751843266593176501059176856273764494601445277092359345578432705050884187451716374601192436613417204499722576554227844474989227550113750002884064158032690453015510769850873235141171585490308572238187926689001075716681797126179589758653043854110349986440040863020305751102204445705217576783485886314884280052591817748700420024074874396959410301755458713984944709966841198968013709066139506895090754332553266778317519902695689710386230147926776109996594614356269816339819580480846359558351892181466721586662069657435574496938100133546215948832450635565314073653726006719837426351555908103361246076010154302664554291499986911776831382209586014928712892046058335294782686134697936478317353049362309550584086171838772180479058059389071694366608310393167000251103425617195860681893446569358793617988516388396515490891094646224612894981540539978126403582029116767170631125783052234325075680830802941769073792482874255872743024406221310907399558518984068492844027401978384435595637579822451150505291491775902444305132230052646203552724613366379080607015560213084926118530161720481903726602824043098364972602159792249418819110926982301410318083599941933810618704529968979252520917255142307140173058137068576502575416611724884654793186201261661559175610576832692978531898708687740261869067922097012627412991044065452998375199269535963005290731358176705167020992473620549652337085314832131517581449474463853455430682928904508737465712244004128328645843221598227134411453357745972107717522927767113098828535694384200238633062675356737406777992495123215326557933917051567402707454090047457136462269919971252537299183120673608448610752578570305864558142125730911055176188571921810557477180548252207012464471866165996710222909429293883365449802607756483430366804132665335313258198057496390922062722674349170513106951322906179446785350670462333513321023158244119173513013731893510163895874839056987543991266713843119769466649153973947250589708203420541015188187107418629061828060501050605767285614063954574693572216882290577230141049548842367870624221847966469027748084688337756101906491695877842897537710201432173706062444738766075262410680030226775481759227624584669597129095597673017166063034169744588560599509395884346565004555074558109938311629656287768300291383734589328997544799354372956115879615322048644069644846736887006067720622381950475898848414232411811002010446751041144098180178102541445815617697360983145148829472345324578214126251458719940516887286355351546860189035042211547649855099121261013408782556394412917482414538018694156719697506527444820447665755472537535956236503537452743293738074439434716321904696156553977836297524947684962226603076606067348058151700704105323114796197060751113257172352883293114579627848987074517802541014194642919426043375175089004139424918449978712441857621114271514949036540866311917483959545068449383150950362781146923536387410611428160092756542192293346364121802722901187064654084271922446978218957512685009162221686089792901121454135277127477460198447052657171274020052936575384530464744221664984335248153768365652868866069153430865670225272790844257644208657127359944622159811207471105145783486950608269374848656557829534852993499515404426757084867909389034099010400975140747282123126799809852171471860581815415655635773025349114157797389955465694802968821266336147207040149096681347963006398029573939113072305049403666841013068052079414149215264228223509005090916022450992769057284727548164696928456922091522647846767999937217241080771987730452147215699271899325891203847304836479436374735740301055902579580051555419379482413701866218041585337388337139073151294943914356792186322604550061283017288276013181704001121543896014154915840034286578664073803801082955055012328841803890809008749034689487300146035000559918814029128651414854731113104627958371331779373029335381581460950472556115709721996050385206606220749175352510195235532934799932420221105542596862687316005565489029905705676920606381044379744229944937826684018300091608349170053941184576618522003531541232074876324327677708682455186984546219989704074098919366640468199515710040460197119890165395093674097324871135706211798921341032237098382855158512509285134199114908508992916370573865706269826930818849579799422598908015186475130058546241516494733291305635477112719053969865161414602295969285099540456538166097820551463350008555193206435349063126615881020628922050719380391132689030973206527777658207181720448215046363055478326742301444566614397444951306112302604157901786050412076312991984574049656758559990855701300559919834059974598896328718485877999530532438600883501763199772230956470061226603587446651430996096606484584130649644391656285151684811018997222885948702299205588242033802382597739562403886551074290834426216446328283321674563908652503342630072828578468312740117211560714116886479212306708181339568486485948354498492814661103922459637215634422283129988976971962946847597692438648050120849403618316525767133513863690539565580587709395781231938545711999263113988241389050950751695185916679317069936448970068317639879126631188723031433606862928053115004699577039697669348920525088834967425623062999186773853968177571018663645741121314018930749200160372693699666951832306055183868929022222919084528052046848279508568143974009300750697656961594108326811567048457243007250094368829617904618268190902608819526312521248483308296615541106990786593980127659205558692496062564865647347412817669981517428835792699910694018384015855959730111615323007722826957525216695683178263770310441069241575224778552220336834809421729202966345155833017804564320785335297792832970414534473130375564345789017727729883181801809577301261322690033608685064806672783015930080090783868787449738979783578254739271604700778114092941465573310825649557299252050389967529259160509671763407754254878782096564089013840923245028758394262879980296876116253635736340983763966397799047333159195914894289591554332564607301717549247493522399496561820562679518146005067534124642888695722824484184004564944446271347237837497119753024998975966131975552673609680561373533699280595159182387921431809733903613548256787835808263911914308830376672734761723536815080996265602715519064422416669169942311350938526864704196844281220915884607275683565721871458611531006209187891222463745599487580438519875935434756933723326291228107879316043274097040797782894300182338583068248916183813421427797933901263312344899610963487131062915606214250180755337364708515937307566339355801300279246152279726003521485012801328044712947158226405487585883366649471333186743969942515564231073576213551142136871601050776251584849463709464082085900952047326697965975376644619328062889202661967229603961525237019663619516471833640513284327535217008555801730249404923708911760579465208541442459469680928784846798864533814398451888244427029257539072647332679969015663975749925271199145535682973701255142340898832960153957035069074358787639542869192940697163112043431778467367894512281339532020593631542383732303237999007032531891486037690049801606790016311967651938907945832694779998551151220530089811681228208804810358079009760557731160492941636385234790737540000284919684280642113673836148406959471224243869483826350768598099322030073345074134355661392622355755863663496118809655169009253179182291629498784752790305584876155462615079309401401362978452025186984674983283292704437533103890323471453718712973468597432096580511122451175935108491345978318407064021613367425879996959508946251442065846515469329826797959574349790471826552636802129966593910297044929571905217042755144524434793360995490166900905059455052755707721435908783712514273088449394557613433625288588399746102513090100533032498440861023310224084037709102072222686554980862282060664604337273590177779547304052987141770965630913726529287561734828580660595548294475650524179798155129605411322443618932796765885866001351211516071531663173805705057167004111250172769009602832834681643184771537627095910640859088648816442585164124815895897770697801203897764459344576106231868378574515471373764351679839169148604020162758253987039888466261705950702942663182437703138359260454817488312614233619144280171560381634484181339630894182293035373038679536646359550957347905788077917229225592596604372320950285170551620198302022048408949934912434011472671783089398521488144112251069856170825985394397276051882672848605967574310547368627954152573131548080087494869270568238517662924199906511897221509692174158719870880521202936242746922512816911687946111616726332773411563195524933770666267274275819621461847437194343099631102436372543578690384613470782355514603019305476438440259726212726231318949377710385967697928270683580648211617832656728889959015452166792533547835748741928937566704305361390649716210133314858793435159229736784700062155287266542644169951108751528093140821453250318262093690757055588415193207186836422494274325211448156272233134590347694110515494994378961359323730325352003260417704488890210698949661512457425241669261814132959174385832750918979678853333496741281042899969958251693395962427228290029177873004189993553574722091829590519768678278395011682035254400501572326802300377210382850343409405215229324017774838236860034298873873666805752195050088661398530025381244428288192416387003324915263067269301930976314121616290364350595272032828166769804209354132637834675536487245460828670398187007878932782185995455019388097326603599513832600334269687718820213860296932968061661796540762080280862968635125861264570693373656941951917396174296862973898786473926143020883161469677980725321659267743971210895563210091832543599387230950326800981660726050786753116674698795198211824022404104811643806207249159381205527074992249448264029069251090154255214058848192496836859776544873880599798250398309844937050498408159571900641586098915634341161234818027931336764209920646537815464418022525361113797975473891245345238469591895543645263457919592920134272095297095344078997649001984141160677994661698026017635489176592299376384677082047014572204401715705124658897030693550908200997108677866459446076789006385904647122889941145487702866204679515485152228363623535626411413614036447945691020003784212674537866411188078454550828549334369792011033613911929902114101705885080025564770923454923279827493164210280184443545446223435475683362041132459332769013503565523970397894706977692157564634902014394463663195179902510740950814439287404015352383408056574374962358708597542618179577567300580192667453825083623440703347326019295130167440332056065150323279940883936412116375357676857034450935608789702214022338694109172393453454464675797437523243266898892976999320559933056560007866870452277509860515149718552586711090787888972668832964015214670418489667505633863227873276377225363320623498153506524643085421437360959401906644848041582059392539991880776783879603099503447453514507204969516205053252563932440137367407398982077689882488502702145803844848108668095144272676588124655628484284782215913457936138718909695147116169634004504834607143248408293342128420922111747079019014070241395979918066188774866547112368618873994774770811801306321536849032830470492209679182004472323163819062712455360175918754876427980975373740458631793416510741690988449241150919827224126919962009099517023234143723377621237601361706386117861558157799841646764239556095600012880085669290584697181019076593016379514830391485614859544829331669603373879761919760450037551023940704132919914170719416671969339903594722560805924949618355096927191408076258347438964892446316660868837990817907465638696620680982210606815193888800255149306455734626613825751523590648333946711749758117799920036284689805239585337977213162671974792889395070254930207079450766958994141198828839492545479248504393713452153289340694933164138208136624152124464060860891009113705399573641420237787988126236651732943082820734470241274894187713080579125189238144190124515373593504420921739440972349028099958837369670453405722131954270455325395270552987827453604593734587417957164420446116615977745496826083414606465219806183523612913479789695983110781703839537561744580504283309620862633711965744099280848957385507598525132539311955949297653004005017286911547580598461225172091228846257374706015207879820586532441914423402751740233002238377876527266320173606891929910598039984976494837011392087811094572123395626463023859087205542388891637688963829423259269131532485276164016205939650770261320541369087446500310173672979221045514513500468291135432631557390627626382571615441099472678423219804217930892597809906723273355861275756749732750876115439046358787836953593043063060920459491150143046134670130345090455680486180872541586135224510802980321936104935677960874980462193336712855245019135863896541903697940437658309308416997039333517908042716316159686623577162356664081328550600312646722888337917890018528463037279161515026435205483459587019857577256257168244251122819350197370421136448898273980824392791093338432403395600370609533822083995447712223105378059775451889164888937307277361274823041782690900062587592214994487558947497184689254540710742175588724562447718951028728053418413231531620330191685873146896797362131033080893570873372747214181268121860952866153858754464289314412629446358809419318155986827816664561891657285782520357824041509067494087555676710762492609544970576289611034359284301064404731751706953059438027829024269365345840934882515876654102744018748772521637320641609508521238978371349303738307444053669690314081804544481298062208853888897478500902231726043537023054910008675087582430231440798123174949502660481963938348102882422797230081264442411459515226477708171906944662632637609389540590770987787166991894659536152719474821939813706342430395360577268846051993470711067880784611697361170595490219760363408483161397250523227727959183222547783549187975906203075219470828770003216895084641567775820766124989948373128780946352284333429810417369427432850356718591421052357116686176557230090453012590342690853740817751885182077351985950846092707951751249241368006628985086557236124944970031466585739166997742601616756604322613097962481557286654430827654095231734691998554138811567385320005373939833094331838638515271665165565344586949449114596726375011419812244693899174698011445451291272800710129065092644344227602673586944612417374662712208468191666302280771291362092971692152302385790383510460699911540165513107555346305256278869691170561818168592566803937389060826630486114359797302262564640447888150909072982239883055423931533199266821314170079554773037820477079785966116930593480730854354522769217663439213283273101593458246442380730550626959987617313466657367073625477981775256001236872068383251833900658890632485229664734893454162976985051663875237507416924544038753983295262118976596026590319317018029724350248978979572055928997002812830286457983259910218839970951249829953320606207079433845344879984386847270407565459036665438531819872324912896880134008961051118826994097001076942230555391746513302293661865196624558463560343350153336736351597679117874928391092087130450117038631820783842048387549944166833576135818823693980383468048554500063317396726729109464353482154092410796150309389353996449099997235514561461196077714011575161052135021405782336267794199591238189930209254919467253589311316679449276374879833898272176451286373552608175516874018758956468980107424261284434202484348322914362062153739848408243588207610821997292394944811151161441964577315349870156467645764820472752247805246546242204802153513962356724253956087831038069445755067737102669662050638002041567761723439132761034685566539458054669787347260566846609384321061325542222987193627036344996412073100898531614744562135413700640756782372411766993177385096773020837461895804650716077319223777840316734929746246622910816002061216064714758394412775785336862566106270068119586143292165062508544425464684054229531397327131955990193324344856791874754701917025987860557551563759097630739991891084126096210242042989093413249486019270568974991360971075660528188382835961004256616553076074772892825818198772306982787802038302930230063176327055730916750433998251535567835263206076515263754118715969325390167372427222543302778189488480126424244048564466125762886470589718146403683476680623158317619918835964277174922431967533328954485710335469545941287320899540606462685798294218055229620248672604192238264579591978126944227357273738018691977392434425104495048061349075903498872554826174275381590938683924787485684579986292750580950314071440033533708010577239368580335833530008310278159393231606104666323624827381384423224476898890819147000823551488989781494668684054506766974723900484193341213352427811182352170080353308133412744529756735880822877077974435388658173503389282744027409280248179176772489694220791314489911465364360883273073504765063769758402252326561483521476384279944282695121373697787466624307185340403847532626340365916951031290593547287028706446487407267873811602349984893739392797731564417512347707288873113310174036879737737089198973100809541743370793154869396992208463086788455474822948005025798205586508363367677414192881256599558202618522318555016643244970727959199735046284326332492587616333296953431857196742770415591384330407132649550676955930869167292400732466780822991238686635121339654119522636894385842111412866484026425539679581091261521106377820162155341910720128259490614109223187047287690359300616049882078510283780224361464047679727662714876282429026395714544758941722042051632175466522125604292907239555306938365628683006853649629305544092759798900113395496022261893054226253172623071164258191708054547799233200628341782146105287203781944093885843287191813412049314208829636394000762737290360043613973675228307612382658325832789528959574389023659920559948686346821419810057857750471658802592324801632615257225543585001408958513169703346366690069176800532150259128537363142552542407362564619862833869109601045912141232610093159189000321720989325463971316488525359723891916546836513912255969246193163666841505920962781448524764576141953219765546496983874836437101029966550059243033516309916253565197295067026796993358627908768945846784236755735222969836401071661794082449108239821523373496167866805414250607104024737506525511235336039579702796021013489205638263244077429661717458954365369484315915938690105546420478859431158782198425774189628441174985724441515200857160248082792208579548148704139385453781009860961215850390488358958866294633902282666542015452616210847359064745268125142522854966835046553050012643449136318456595267940018946484610767889023662100989406166658571975404126329680357382566269298271883075063057068901582140543813950730436668055187763165037017803467705906355816812768869385012914667677377142557783774137795076994288953534984741887294213385662175508690243637219916906520548880666277241792890191814650831004090632468301497438910089133406835429669290224063719905869096470372254936259405507544963007125272789403775053614373093908247190044432341835621784524720088840262260340942543445502482504783156678466784148698587241221583879439399109063314969356643695473232719117103453208752831010028995678418973569451965547719059897732115224460382871231899948514970772251142526125472242369705279511998516000553211614233562579615098613697824296312443635623866556622395199060543404568337849865475254371950979129501061987540199878104211568494975162598843662660089200166807601065479175120273074695346628783612198330815801276899979688617402327390986778845542502187801957345548256160548882694540348877681088020235607903323675567314610835719209081420671561822926289937365778068570417375092662224298732820957519344300951206098989640818644755361427804388599062844048872495778178931510506755645242725642066666405893161349657729570777624559524615380065210651892017509703976277530586225341250153522305007305700668708223115052470869146298271378793958819258753675782437201623181050363172694537455404211135195731920818640780662076124500830856414320245640760383006164642144642882512482149061440527307978075873581636618255474569642007731410282636095984903173281489288874284804216124378151589965819503224086027780847207986963803054658733640937517625565159072826115699583358677365833567221774633619326444703634433413509334651113552705335815156081392192520604786798553185634088270090038415414986532643715698697496693091849659780299668531892053282044131548833969945733251649358007432794564146821291839718178690105812293435019905295074118329918350679516301173832800696308379587074597969834273596040633278977371242790329071984955490652987070072697499146996993743233672381750466046767002382535400635606732487576213145809748889924177008768297483805653605260122286579915523398574387720057408331627999042309230458626334892321756615983078976642192258612470346023351826770166001602101007730695814521669421226801649071016671772049303604664326582767121733168224891536360497843075566895155369365021362481057397876883641349992288722329335327695053553771450489380530807946478434686091997283889659388027066350291402526601289072870355513447251262312646453763361711417131429003616764829201297505938130838982131838994825900900055435143667244456156781803322647974604645282387350801449321619054172352854814382342367821859403620964413842191657676825687810700933223583973677667413898106304989664461965851449033077541893606396173732269705177172949938818887229918450295965425195883415902629044741374850234847205737910282350743666343267981424682208982243944412899751096651595043821913931158743328694064851417296130252228990294579879180858435826250186134985842077401230208270835291287675441903762607069966980845767726951808152387320776331157002955357421374650584386362648659408007774439437414981708204106407606650496929694359135461248217403984316073990225259759479200465878921889600399759594228075929513967663303526429478603459236275264538143853446447848268612655483628774811941438956061654988440689325677845922915025552396511884429157972534358717562917339069708568445039321219204875003716672757963604562532150819594423331659065005482315308617637227710138031460233267203908452698324527913485647126639887117529760385200105067642051100439780408185880691800899528506662522726707034109373180518310258916635833882926583956091298502350880806247790612740086523865512965771847915997970546485923383477593290407992314865213784787828660768094650186553890792333375177875531266025451190775396446224485892863803108120535373539955894494380124424704711339470349489210705373622896241915566890478949667578386594634248395954475744614731816932486524781002861474799163645341701851481440931556008621393442771735381638344100433208606051599026211702415087514606457914053460159183371270609920199107675099831994673183896398039501256149691625421351236869792914461021644622960255795074583505021946967852100787913436955798859488070127108840387475531362512571314723579125637154375348459950952068989233099110559512640933020261693570073044658536504983161661160486223375452249788315229545057603389758655031226242080311375409985861553452386103880665183020422256537315647633244342022658428539374869227903477140367258342232238944528906987470018903117183892511432837725013222160824385460106226155569330220226492658909601638846354087380892797786023063379139191033134064532917087842315600043889690978765310715969832397223750320975336603949855850385674952118558604798761708438742854168336194415952218938351410310564787509063353656613342513627019754289246498431584681907178203229582862162379998168649853298653449318506514629568908093816878342187360022954183191628153889165785869768747567811502265191111736082632568175685621842753294472460817877663202611403395779241572322021239401654797606825601134329633950735782795262528697287580740379251798963220436257423832882981213942556349965317032378025715057914882085527904742091589620297075656903826855911187550339189239619902366847117391030884032210836691921140099584262155278368375210360076014479964616650961328772102336552481102786287623393603006604154837582239545061127662128303001337580230026121128488483990139429556056805816327768234579819117103013594004320160377260117794735074694305456846287587444643354750391227054325786146031580739159967152059878281420227911247836434667280108609890298200688301081847584590204213132538280071712290915445210346756571631250191408521763006243316650762456787515110086657758815570389449090626023607884461725539377514009203689720720396494854265849141620988538586012797771715710352283310356836274074551679299841688752304725472532027708567783882982701702125035742738217419581305363213412751361561143041949125103866142354432935930002443703269944515342895299291316591723917536970600975416341811933786065418230756903491968717613480650118550674439191443658420522157236633570685034659406897914821326498482043129582181491875521631287455457450053033863765968403837787628070352545760566260495437644397890817881411147247998894934132864586832955784578852922026180843262405929376527410394757851430331441220317434166036449034096076286520015767193521279700052436469214080856419111595656624225826628071179367855859921101634764587004182358920223633824095724846384650224375524699514856904795702528270997604134171472003000469522327924317392245822740020219108651316852554464101557051953215536025393557541784432119825124642726699194003416098459386188985559014185195969786825538366927421569297481585085024729996225686956603424312352175466514327106875265357267569840860624742196759093645185272801107696243519152834403309791282549117994530458221596480147026804811746566210669296982171139028205968235945438580993798581856103999111263493113054720417601903326891280412499482866642739631258661275282562314219562690158758706159137611876278430518467697623978004562159099828036291779837140670639983285608202116060716649827709067338418592169434797467709329598407854344322694910693366133106253621855233840935005393465844601023977355631103962829138328522429124359639578823458741026772983673579449890079265345671481529498136591383109129698372847927567779021104550746788940892422988012173504030104082465566478194049884921017057319461049633199399361617612758912553269603745375380589024519329594946842478846682852261103464207889294318633341250521380593020991737194795899616652623867872240324283060439533823513798140912054811464175164364221429869439156053606129888723157471641348163845893303069981009855275955725700830799397206120327075223365503159923487674026863849420166031669744092496514761505143077254029078698509760112752991464414748472259816269102114974696680066636942781664013230191707629288942173169021649128305365522355241432004187058517224548733645263460622976865756520441091050278542873066073578116244656116643849786159814855332440813233434649689142390404816824511874981512544769555553074869916778830534974457685060291832375759102339806605232468051649846195521796518175017033821456671293915477089727096575166709363163467136464415991134134705412012566057893537904883913034484444536772794078530009140702993019400825040484482073140324129247646166992994975861440991274190936376832058921033808524493554736246058049277461589242183281761677269746600536742300380986068917922473632487873854069992489117548347718024613695918967978470643932554884821320304088989195696725911816396972844628222328976165994907547511764908746012045496600364096232577658244361946172267137871026962396574274704274686036128765788067447276222213531571056435775294860101689233507266580417999372218312554200726297718944917653729766280996337474816610826389473383410525256324639311407093554168556986836509849569494487760273258098933605159796001505251311253580733024560592023110170826425081667991910153672375186845786794529586830796352162155688462520521875679820929099373617070432733413669245482812504313146214692407331679643705180279790052272313441171646343800355874953716502568790157537528237329933805143455300139682498770547211692458203010487356022884536801477936454833398807231468903598874520184669521604392695154585337224258606820493317291023753554348573896877602779380260083066543070402240461442620072078793769600786712256760176151419097050212894090961450215235064828193330811961502142818199532375187534183111714146196141516329484738946369079055828117274220546751393774987132653315312907390341316163217796011867846122415092674645793408324340161810662347993669766177764295409995276850130692534722562765415617883988130403116667813393754502381035549224603401185951176402013743111615546385506577742839922328555011518643488540003932083968665065932082988333922062854671674549447847973722976776761889710669907777307773085304660455695777546358416199714100454388451022886646391978558412926230105009338555104407297142099563270364648078998351092459382752412801047834893066165679924574923185299226947126710512387735439034308562146162764489253099713186436084531169392247260339568909501764074481883514576662139683463404869688911166612903729858587653571478345396702657057563248004827195847482738740209234775980318855770091567531678183171912990435786397617125672921529736897059082574470730225416198049548895831635272612559228348376068407256537151917235403450651286085198670367210311303247708907247003937226722942332466661320489246170793333882605832925202999063304058177254052554950040426736282517022802453157166636592275313844503803758678031978144028842275501206506571448030123817282540466496503337262832835038544050123674331821561495353369219735938581204479872204261272346404147971575422784895063846287883182320710627943899933754109460946519297678731935533854124959033175543546864533988437103296937036263842210408323178518465561774561149948539484994977085279212374870265147757207378790415726962777312013967183289590149303948049495042110807880841873532579789687919740605529568600454093882792067131203294280083190336170576359949597341804743077933883273304015224279037288694211669343218542264033071117923407087526024409999616855614554317865493182742172413853611413511395591711437523793519154031574815714717342319108334834189457760298507013958340941301278616293899919990537002397203209181600865070661052372055333564104856088250796282971613152382650834026505044242151702782552212899801762744458826623524158207056142722905106946326213818361725352553160257525419623974080375478338520375892142950795055361072919318447648774845800030122703784894783008038906861608283454958201877152495280756439094396046411484539918617588941921250567228334992554238821544589503012467556157758719644470424980231352288204840999548314266062934606390344085784955620747606231333437512616024390478936015666387153413658985318251064207755355007514659279512984239802690291260912403131272694648581098806312715327290340629072802513500122915936278537339533871306251176391290254988311901422761058297696333927641831802803767540539374029522344914847813765804316161184325008538298635749161228225504231850370836298625888927268277187192380842006745151930497128195105711039900561779348179575454432290922445827074645520062125408131973136059357639802030177213052108706630807600866480429330078544496176823899487051203095688824483996536780115072842383454410998104802262332068621207932957660558004143610937438563017403299272129404857812998174968688480957959881632940959803558607710409877802599166059480548184331036045363513174746760704194598046636204214378864508109000555646866970619710381766405907959658624091415154503694008299237806197063522657993958683701113824287594401746064976977911045957082306624768564781418728662002049680758619386753512795544043375184468443114044811460565042995431787325057758692749254857332989701249877777262277230214099683196687114446045343514910533450474419197617693206530975541373496496464606978275146702758351579324331116435098209375823697799972785665528456460994746160845715029203874602522303044233315681942551900983768972211219119074410604819789552689369404762392957046415368901696046338755199939014569585104484103697815521974065548416829871722928689969379823457545357025417974221827255443649931064768897032960854903434161273950030711898828926347578335796874107410244325155711096404084780208895261618676373897888457241995379795746685249238138675977268492955013472941490083255355333500125610148850114065512225751620788075457203144103701536729033600240365283083769828913894458238812408301747941091433714995013879587058469017057601258842306421231350299834498407482423656849860600038497652887306764924733181806309612336740175175091090731639374506075460046158407920641297853103256089785296410781552969266714014705884717534283414250978861151061381752064970826600583011229154613742435733859229231457331619595968076739412059227997152101727361087896606973230868341973939113030392795681076996290747781148351796968086938367929611308500901083327116004296304226017316678552491784425198466629848221481174713049498925303327597323042767825972219593964963909740053720554579976548702845988426724090531884487654542256966831891032512583981366516485030114445092141005290504813271071665525416404819662377185404882683721388162854489297528919336587468052845691256591021399640509830402399588584752956456285455244219906637124511312079001022038987835297682179168855925543470797378255847286825032091662633169217849389849603255712148845017599869360129391278476560379543028048213542032021302735768034525735386254639988558438224293892755471778103629898193418179749227454676367156564617660726072776315375950309627585766958351018258002752627004942094342688010711688740556531128475656172951618309665441381822864665047163049692776738354876412938451269708949301456272906670660533604859011399781501979032845132982904472641489518281306452566138841144782560345200006474581573180846717542709211572988300213741991139478187246615682853568075653778505416442697335555257592455282430427438436443900528320566456946078534370471592934076065573811212414194978125204060862086829173004779313063423070966998387994380175121438883320847294420445917613239309934446358028873143963216113988484176755106904217346014038605615553782878134799508415465069035695795286274793407169598409504110709895979114524112114789074688505612859837452495008126022227418938762584052181579061080985204711304179007944796101311578097341607335911681936542102997839178084075866435958605137668343778460278845778201412154276701511390372504389022025037549308925589474033239470016682847733364547649236304813803791140232760794234669109623897103299847608860536369878245578121510819058626232860867093112778655335881843201816707242427587773491998691728416172191116438385216224619032946615630076085603145385265940176821789542393537434223533876472748677997766558095638135299780900908113534085854878250674630986829865770513281327402716078823686545302040923564557098160104223242205434564810381269239167343824217715112273021350243794749577709486960187131965431068674063437543634774541308500299774245604959085768214001455753449602876833029998196053411070280666193414617112097927940985326122194286452586204367476866984156748125088431796607501609029564580955203135696303644581160247089331550954796965716321130148792013753830028428107739657185259434078166945606878101492463060964157606913486469548079265032411347886371197959117194217076933630609139433130233291140398371585658642285893517259327257929855300086230254566966390473068754249886213392176313144759063530852898036088932719439853940021133215378636860425624614271509558000471463379832554323470021379965034757196691958437235536469852813777230601059795241825205569236071891354380984168567319864374420704687418200903911658305443141015742347304113759514613526149732575362823917386250242446637041360408079635449870021406404868507158932076148456301114836656385696793651001250035278635721599567119218390962886551632297659265264873907637205525114816719723524979826919216318468745461130362760483052279775933233603665058145638303149770517028979085873407784435387095376019768613809544950304481418201541264854028545621793018946580842120142536843078822298514140537398528073417237822992077469527188536573287040241554989494749770196716177253033790029974487776309999370671933628558592401527254910226837879467535865250101338291177006693332292345181751600995334650166151174195235158539673978007021160538826418222531556705810987217824286310119223434065861450619844332733969179584735391407362206378288094121710563131127283544254662024759487535554988900459171126506470393228287181487200726560722735066018644591261974962593514621497426241690712972327926541387469746751431034624611915187125896099269195936881662465909844651103709747972258504688268900374166010930624490348801628844207020100946345942067018242021380556647965054018749780070619971120947345534571295362980887963819698923106917481924572441686740533451350282304898610429132466043328628651601718710487458188262388213338997965108481870209164848035303733350337488577773588659870498922188793916163759875398734649065045661937196413282217639482472408391640812973167616797758865084137421427219014016900430068088946919038357121505793916128722835796853360908856776072120665262490618646868736047221489685741525400254130982414764229746459702958098821509187928717028794116994577352013072390948280768465183783979149975142319037914255327971609490471514309458697117164615951230881381429728358493619040398212751467923474830596821010887578888088814978014525975780691465261231518754665709716410720412626779565520283411222108789426044839865597999315978454392417852462528239861467485026828622837050726463074932441876462480250876099456044199943684418401721822907027247903385987109433571501514988659386402004376491103904167491478790841410087608022092603812747352958621994846702253059995867890612726119329774301703252214788637582939733950965898109275888681528392491933848173702679896006455497534149393013692482690381538979896844957115145749355581050334899509294253190756099923363343557840939499546350310859407342863464555736687850106272752482580551085074767820990439242790589008674516466774003003728989036488497886157455760116788659863095913232042597680727801083431891397399368197348415874225030283870495403672657520679411159933055940913768949820354133723732930817891249749441454206779082095295980338176479522992796053581402775278222348611772237387043252459499192880281921941086308462727566113087737835914781497269609561360397563282366935569852530838569642230079064990526731378189257821755088652768861996564358940483516188624731280223283997211221209335830119711589833415029892204255067814763178790747138084546814960140504382468140301038343644999505168515013563535472121295740499823440645867596220808770246881708928561473638626387076941341103758729118175276030527873726809050261509705343214178561173451629986515277568050190022861723697888226195494817159597888481102706973014283115324175877357910777559148084195392209634447920509788437302661752498455389828496844653335303331718213363144695503966831394026936774020861984611033108323247935388833598492347429856701867021075543442444661822724238953441391844752418641443530413779247511251822015578341758383292336179934300515536688055106656180110803503495143111459216058672488946183683979976228099598064570049432629931789046087005325637426173840646881139837627988623386722663194546138591222186784164338486073833702224022946659596936885219596503510409929555131519034328553225966800129906688515905111470888947270428020442924712311927471973459268660351386945725363765333135412313640193364451484223068290287795705148235494775131509759365375787240517472178430954338272047298419892190801201987599593607618703323965709030655644972427915118098139777417478139622825331810852339977182052694648928932535007858032433388655676847216845342621612992562142374956180180640039963749959436790127459756168289465030207590393999861913455972633206492708948204471405344884535042683273003504239743800451050042560800543632226019708278826599624372610598056584690956389461548670811849380598863563182882066101849115471744258060627492882796769768540033966719230209494010172846358491107845153989200730455193863678588848520267647484893699176264026996409313979397230339983224835985780623258459854853773830973671280079009297072658341460828064892394977726831576736608424531574194506868049424071088311764878753460309967203234775147898468398772184728755824832723043257953215839318788342253201436151046480873143696842678670781433517260023626510043255585600338586935155903721101711225333219712078225618316489119817847083983253808595070273852305698099340782964197458705171756282076717545890197924914729472390632581395520213792663802807045251266888578414551410856423780958772400479227784404738757969837192071167119217097843769383124330866111458760540990609428244392478119044808075778306356987657321091635741620618674906691661862254063706504350881977154238893358076547889586509381842346859548587912463887477195110103332237975374734579067221901530200208290215751142515604528427933176868912288229457487633079135915769119412974358692107795367846008400854869937072001774564488246206655495660120834315031591447697877787166009610951038063174326358598855130071055980331472797160867667684030554546319544483744845394111084121680572976500017854258543523969972331019096332252410745864937098311665437397290041913263964076912889900110718369688535210253650205526062506247305523163467341485371386943628021456174169089841196649867122797461698250829767793466132232288434307717557153340812383637231979599710114480999427144184725375175896256475552372349243070137060698879483262519631258608513788420240470186216356990944079212236488815471272463062706522778255547242090180111630968279695830536973387516666813745228254623788664770410829284307285824122881924709881891884205238306616877468550758112631304363119352773601311902424415748293184237401408862908915119292532416625500522843122013879329743715060702687413478039709089430677523925851576665602673499274222862924024699855001474121327729696171549366572119573053309447482195651074714498096053550259898005667774831596326123730094389427722875290630691428190344273693196093517469555803894689489889491416658448426834033871691030715588760934652463507149483362040966639221932801471520269336194949634286141650746014071483084862750137300311135635973702466303199969240432176375959489362485304320930272792590594031873708148487602883993828924216994446853189727486142765578249066500361565548451249672836954012554930409643773916006217275849787542889464100898894991128813459104598293561265307828977621281178311421114548115788887240983853566733188842479572786676230127427424741473080979216228118786342588863822868196840326248377302776048546385257107107407459658781452810015814637982857149411724234321379450537044608552937975609631751726468377499724010456727750046769767537294771211015295456252284124483499748464914775971563387747801104069693477729133491813813665896484875996913320547238891562783172417528475932092557755320683940582285142815582641613544300999976268924365677806261680495593813311818118978550687017873847802268653322487536546606503658508935678465952660376909367738897526077511026671930830082040157469117723494048005386104699861286420957227575201447481219958987567813122649805824748676507886375687528353333157008848695867125974477799070963037422783154295635510294829587196987090143687033535662718171349417449672398676891999956032769235812620106840304189378456451803958553878970680215929448935546182902002990472798896014658881077418220747951573676082891095739394230577694601866526729820102011739850581841968829150745222290081523505175695879992263882136470562405624183454165868512449268433109831815190177645347154884797990381646248976621798033720625995029591319537569331552040250482156680427156006590196424851292711992849354110324477757237168919158190809039732544678954345606939702293163976303769158095556402854374111635193236029754863670624593523559289418684802746908244101226869457790313800062680877877147484635596363522739810939101565036687072692932439813301904289651784639375414239924175982495367591876704286445899500257114381679301146315827444333333132672228804475611752293984796976101222956735114173488917910764262500003401477497954776178427130942790251008460627228266280765991637145975707718991587857284767107144752815338744347802725368354899563020710007191862802526567447076655865733485960580602785044727010959668636744759603681041021784536136083481895599786251881998331924866829444901970941302028402965185024536051569649730782404901250553386826791675040557084164896535057864958233447903362326865312558730352321609314749009316563629697673578151057110125984269918109591959080316942790704779527469007483207874170851811080601571544772384303754009365873280975420706468962161952911146659412054641451709736469724763975239623601150369964240257253291754865347527788424399425786526222200820731440131407217718885887872445218801585067226271214055586056850934938998724024448987611909202979100013212771095944880715260620686388889464789840758246159043269476854810585176054383991953096306251816369273927849042029922053204862885926343876829933260926335078126146368182808478740254631954634105310200286565287608009131008308508018944022933471842099332008324315754625522444343896097852043197138188933116828361472866935859113238600931711732377317109413551761994724867812103940664882495743797394672714834544238097026762209919575513650065364900277797876079781756010285523791943764501599944165457264698546552543844258507625267125762272475183044619438727313738147542549877242751821289399450102145445311840524768264655504338026151684068929461109603419909106617568801259462054730385394036462500246404643523706926602255454579172035528863665744782582352779623216562813309997210276300945013068859920631321210815033465822235725858518500282800902182436378502536315007912875090650576877583049170782080354459287279482308674657753148641180750571690624988144569515768801809399659855013288658921518870923649872246737925309281113592431313639927952962486117748267255913883123650465767818515621028965474998592027646301258576229733241021761830638435069197863858150318174244523492413082766516465153788359241391751068399284747471191310004761722640370750827658665991613519601400163944240071247134737635343068715568910430634742985241762284297243084788075610028094991195286291035136880523242900547687982979227161109593885999315150988873811714906864455880155093587889147356629362619700916878036145700951035920056816705428645241914188575690498299705834341584571469005037694252907374155980764196094820126603044645637266787438668458331830515053700530864436474265877151354530598344945358235877331824518294958516930385154374181856109234163931637645076835414922974531121511801221311605069002486067253621544406024974151072976755369527040832061605770215630221768548926810967460807910710422920573585305825720789918787778998669102343832591964047280994319142125915116263302128036289699386565963675992707664213668358345263371569581408426808487393168452249770994602951611509166598843664703440831149916628180578494506509027736370629951637873881388213343250059281994663504467102829208040132592497680023355988566218478582238504214445010829716268798679900915291813908995246224343317621737974134161551003434146965881447734845556670791920343231979587272026197200002882267600668246167470928440912924995232078464180110622425060409727105861802338382317195499652135022126827002861795831459121455662906831865012627500227569380493747259895824719809112039725719769535120249464838772249180513813248919646139226015142471037500870103925684429343401666765734384611504122941950693014015461474438030718391380406584619972684439278950219818301713437656124015673681345743249479355461538046237974571099522114622504797952346024256163700570987602151500451571380987110472699779314716373746374873101938088425873810557512207277362829012261687958881370373405011972326992127198548306022890980787245352464279961888687331267455092041929476063858468744921762956860889317549350292884270557624210469674912413327050586621470785394355281644276538747324824730627754248580250899538418261118125362268703047434341925138968897299023071925141761109378407526285025799194618838992484969505624660001139002918951402693978849190525554089528712414205352715566647026195558449886119415055469663595398543859393602746432893572062034812985913651816703735066282720984749854296335612676603900267641863883242875102705183214476683342410576689273155140556450747089817580962618681635921515208589234292986880169162625630723339861862624263311071633797597027201741926906312266582586746349576889681609570677420175841400728645077244211470973275693301186561278723732517752120138706405866227928836677662986435277185577898202130448647461720614561479899035855156985446368516906714219896472607090261182496116413191832509465622412502802968726765295644340820451723659352273020189848073403113467320164402730121030654792299142284612264125709577547975685573600070221860346027217823955378005519864596211798700406276948693208300881927420945579554447408954346327586976108309462771139193556615435264282134686637397205905903117030444471977903641168429096367647247532242044824954164154495892341802658988554690055783383928467700232697692755345057938113642414517371798150226981076506401377007432424341056955856374041946843281981933932254594337935662722780127491861119134011316141656006608527122769001674893699072771198489161610640500209943368916845110149848411890816059872450928469884202991094283728348388780801956415015386596658420382489055903749748584464720101614147616180848949749366916172067997620373112646206051590666262017033866272314295251747486114858905874159247747483021040064730126761771869034619546879876774921275097090057329595974318907105294369601621349924149238824770056718075971058009612129992056310774927697323111599936054716558771436717801540639731497095332404722381147420394509428412188598504703140388887797690750415066806033272252632685982897341255506544199337768198063520874636546979240248702174874077284405991950045208037817467527882916619787509513546137605418196681405859274703866264904755287522769133233313913334483076742364539691050986471306051118636766602420703783680713074640089154054893378622173489623919210469065856176849860616104030206208829559564504022487534302080567106566928890644627913336616978210490865833865681280549885259024101503534984693005388033982612544444055235346717554581214388755400080246520498577343081726244123049483944225884742754531513285339767434241737657519601216478519404434672667588937575442317964912902645673526962479894002224649945454843073831126642976937929812625145254315399265165536962724175802118185550718358348317410073401059071235549254510047279681506211435585035350719470209338722844592228280960371633480390499683751448191127144349263285006036078579729434960896697501843246438068428408762856238624338569866410210316668637969705090664235177393865779809881791356783977945242819277043122466627603047414555786576230307339166812673464307586471220942205732932648248021087547953123866531761359142698388170642520228569955479206195840508006046197022244597637649027760181583713867828710496380008575538478717716163245560397885934589004238995893522562395444499217668278694864837951770809726771341768014658436882575588033323440960407438450016239634303981258188285654964019933319980388799773972478936922681835817085371695021512221145146707651698792714831915857982875789781927410809115776304364036691522962833267266552063729570305433569755993242065367037108170003478072187617112451452998373145311847436083613995667422637695969525416293277262513345705427448956098390010286182512343318548822313510477055770641412367894309289401061097853682804674700739894992967098336144254877067491314118134054611535107415512443712474989140375322438838217197935547633011717365433172613908602413914011863624427964627027818126223941792517543904117028052786211273765030135914773305642272862908542930557277631901253542665656634154562150809245659169547796273817223646616772623766478589809960126664079639323904316056618376974636582903383557283987480311494144546649065480891488599232311883282815798404468197931775936666563060189109121571829369555290232476418004934454759609391790977820346196465775307636558625960934549510820617183767703941647639973833205084231109476970849719361137762964518749081871156403305842591771990197527250799626361810083449013545425394429443328029909990025344078837537333649375399342603758986521796266019478710772400927500032884841310273133549544381434811048144972463896246787489152583590608095259122265150577484494882135696330814365894906151269756728656372387940688455249505175484531801855297547011218711701826048729275093579215236361669087509220486517764592919524938386165937697273936119400930472750475602804242345511997910928111654755215386848844801070832068074210859291198396309611748209332724112158829725456599112637924769361137118658322808556388840278140549243984322518082133669308384684670731096715456405024997852631110434427785346219150450634523156072858252845686814568350423678755534935158832105534138436009103238388020877358248304567464243209421876083278325801095118656163536680424597102045036899653715687957852451869515253726630118968310196412897562505358240082114441989242744350753034551117236030698549165980433451124592641776013411221456590333104366295867444118721238133179869490620026179979674215695964316113577240852594088530992552847854682671453554974498386912490165266957526487806763854448211755879877605519418660948281607959995929714583532209988129888781272705639757056397945601561236813114325773092245522291355218971400067836575674496710321841485773124770364261490950392172823918176434072952507259369251669649015204854611458131300411997830921093999053028695587437327786196168696174158261459705143981031874463985650073646974698829714050565028234786903744685042039921254308266693059487800464509999024837849447514852653906815239052396998701016243934009605816430240408918548455845624328701934148348281050334185825160312599806955670264863510749284423364218238707528103255643587482693485703712813522863197195864988096754844044420218348421185605780120532176606926540122684729904816990993839568581829630243307881828096877348854011963517128414120665969112608204734517675557748907715572574778230876203755233527274684657930007928932658941643680762237871059124938929424103144262102838280896192210715635986004339567575148495254360858775717392886298330747153089932332038682196083182336344862429691336912978088749719902582427090481565842174042670468990697561559458901495356698469426687372504639321624760438357186280500217578223277937261254468173985711771193677521991456019291548752671054349067917389294108323515599744564527970053359926055100405989169816566527665465100480197083983858795107269325133948256403940164205642262589323808197674287780065379834699205257583169652778125137237016036142694416664489372895736111540590304125014210337855621177868005981182061996046881625568199651481104502781251736796884787752363415658188372563951451120258489534396256447297932436871528709282138680508668060212907785216531533860576676399989996556359468146415878152694586091731431590939346674114018936100719520603744054752588631877641811238633509725584054146362369314684352868274363139423373324377624093165143404238980669931212409440064063662628813358472897867326317149735316310040105209332205888925690043134992009129750899701548149174356266052893623486035786273614139616737243194632284778841226869411001829848946267611941953840202652372524480084335141615763725035091082472528202414831470898527222011918298170680282575943101019978944113294358493520834163384094571826739539239415981903270538426213282040427370848865649331427143840382873527821118236750552206818057844567960988804258926185652119131561260851020762192342716345352364059935902526818135287717813849239508390609887567642223538221334579479182209682276293892067233572095555204631233192940448806243724111505425516477657611334269207937775074415891350424763828769393934081108968123516219527096164731980115322385481639798096685739412087716194225344122742371449419590629076667180179316077709363671005901436062454059422228920845171871539348110440317229525503260543898945934489428379083664978702247849173790507719771108229944636880505601179888692024216303361762580445601181122939370482430681054280314616370294208359990950067695612399318251231625917826629856480795592604657976525078044979572785475958481804288605663857734252598395355882486423331330550881255445719147084094775178199272992340496029302974828152178023336632757389270112458850848081386666319556895672249468469213591695185461535655021478031202267206602618649795448677987269247187762692887741244906444756652756275974524690164124657347887257046174411927672600591214033707742066847468881235454155660065931745884787183910951250179801310259946267762187783809140394652244669689370240764558392772762515637857103077043014034069732059590372199237814399685600017561007023187667615788700884306815165679812663618012560695354388419973928124920397959442799766151188757822221323933905007770831736775942727361758367977972291520893263943557493727103290328725224491847511963562675386731937397888453882546281898694422082585345845442678070145154434200504950621102114449070898206771085269248154088940139008043366681538962633712888271287569785396426688472918750539963711064332896485262731739249816851737031627658835290322569429074481131787936588898208738605897467515895704045706038190237502915775832015752034339005820153127246145618396917040386108682102417817964420450990944084231055567118528790683663310836448288810385676444545533349438744318356827604369285938878597033949424466072551995552632662286868630481317389481113190712801761034823109756030232562507028097998347765563456980752677428922863662167049014739766445652536343243957996646972931595748541990402925023136945317134798002023601313332813399655568466776198287254647232577136262914313076527716268839703509447839108096862161714420626347366303870607536537464332536229209766799510326123369809447207111286601060161952862830706002807146616700119953998036265334644527904639136100199032091619259169710438529851994671506329897378482653550120041327619403492241379196249253297409490794492053637006837895638362555879049272706875249069253929763777307036572052199686476722782574131182766884075767749858865761015522047498296891888302181112047109188526113083698668207968476809831488618955921654648489369771187554957519989381289567684341153388702927076498814949297927593520044604042089314969031243453992850764588321378599929396346649874380417584136390235997687720495945216575706678745521816686229308011549143238492377079178104256021626739879700476612857898553864484626816144565595660885834646320682438860775035724631809432103825048979627959659337914424814052584914879210180078008719082848000437643834284701957507721499167871332319452198039681461823699077881418110759600674490855536260286101255287238202191398725374755434141160556175899218080574371719694018801155553920045786433186812539879581444353289041959670854132251737278218543844073398557061168615306026822797010984289668918406104215722722922570787610969671757522540432024892837147217645674646689109351851743245894972457889913046752990450002433107135726632893764604733096549918859886658155381778991229351708384245646295572238227606236155646898720889678653317505118081817633374567344253904730539691099997834582037545827507400346831485503590164570457234049980393696917974745484653349460834442029193129705720491462589323452911341351094193121082516250820143196443498124406909618840849931147086515620050162761745306136135636602966870015931466702762154213868889738968550438866742506633260246797004576766365611692092981107481674339374646016892518180990921929271932496076530091105421120339747113349532324101083587936190932640471997879252911185589362876633184188630397464872373326948645298906721484472810789159109611193329637303511492880011764488138103562919633520244147414362404017959966281395412913256558251340465338284833416988078521630493615012676998104376552066412754523706342283743949289564280262497565100490764920018691915517421358839030278338815614523913313777272371261593518638614867270436255636899881722779184094121546124921028319180921864213815554553833918656874943718871105388742247065102523997393740426659428471632203451032574361641546490802855121796765005284460975821618690972264482001852927580463894347533144869138506446094989792641267535388718442773490978209652820972614685875156758300471820677137521381547743119943687193281502286135250274732529497246841703226234478013818650344122335771004809470905515996982497927834289066036787557159667896392454837422295931073932484758115058123094604892919301874640048490650807094223629050791979932772645005480474540750708403000479831699381661185040000565714829397734696791630272448220300534313383019775241047982261353655018134538199075831438268678947467609406728473593027367040667278733925929932128219856687221387111053293715401489026530611900992583354812007811739939836310852321906165081235565011688211145063997410806289963573418208699531765735404027603067302360674677877359612607482150608087382581448404318905212816004491099617884840361887450072826954781668961931574583741039884253796095441728072230095794561809180093940177925701127866855988920034063196447365817337207766853215205285543783233658251776598293099408053331334164708636244564734310384685605930934885385758025978595777350179094265137923418548187303338062301882234271856813953531300723449480314057861273485862603696450767796843684055805476536201241049098429015490521895316863321230508180124326253933387712297398973643426706228836293261275010998778347593507808867320172334264503030162870750625976602502825131995474148815294167608822720221763020884667791205608309969065356877614089674403894273815776926283186868030141337108078634674295326447777308999634118615661489860356139124395684604239196647427533416106558931038719818672621365869177385860184679486337240458598936008105571207061663635202167417969304399885629890500657894907079301685421090287966708555965044109654931919044321627649163120175542189444800642323922281178486539632036193115340006795714426670198382929555065406939436190206575449754318982810351897096383400145638160418633887847217136329613430877984807270168929445790775407129483725813477757894841276253986791424545594949901937325466812938481293105702517248925342894462583274621278764279215987209114806098433895917271203977336563726019490099905180896307167056862897188936512961185577938561154184531206677902040632209443956141815759066500371794210152674100077115278645297351848923938614750321018289668248172937821436212560544498742667630091345168650520365766541418229577052644063594077072092125911030670132936990582701341134150705328550420486022760862867238562170212022579958679997841514874195332356842391816414082673326428710523978314506210882337330728590226835496211267637407898692235200893737929782307291997648722148692277735217718431504356133338736043619524425876667469937696443791617260596043699424342135301270821635521037060651911379297664575270990793610142562198074703876978835204762823658005162352844231674929594270956417218539624373883272830821682631782825642208483300561394307436624304954237984481941896139104730939745174876643090630195037081554761744273093506118896234265376052897298722737491018945256299901321845280984208468181619583494898917557346880648468510585080149324732073964503393141601462546065830017090195008943056753495139596230180830697425146791395445141060375270762002115977164960648947979849818130196191288390667341559820902387982090372438233919594045414498138662582180054393716684105693814438858681673131309396031086554278492290371797086720390729724595283875226977115716225298886930749207062326981031567391439302842224420097786834425819713922564772503209790357094090764426015842402015578552204812908117350200524694233043705987715227392992251203311036723249037448380322031549680213961883687305004971782961857216030989356608103665429147356351764296949337394205614251641078576156318381397969833752625771668065083496499097693954593008601119556518253316162148598480405178299924538533017838800217659534802252114582899756206719941008513959047702051435019237333800173460731306795535594513058250982046568140248171034909536666658365701014291488364288053852411109859003800997871310573336358301551891178140320304236333822367058527637782387711567359519074729456838351004665991670104393912232528329987699023143563301619710306171820753947230620436405059112265106249781147878909468593877550361571852996818394843314176528299197137253023213927518708243228756475536307897646596208571884439236585572348189169206847833488391194217043653914090533420934985005944839487802541256293620670078422684275817195179461632865761554641424610171644176889008825525870160882693885776498788952543895214760938022790733281615217236098936592162354496224110208230695715708906969280135795391585672090199558765690185767879325568173076609773502100904024693298916303115103080940171727976832454148780142706211890526558385165058741545773255244785189037336925345704041776348960022379228261603832070164064590665388766020520007392651114513023800368173743736869516704791056439447729048491865723448428943966101559503735778348212014435629775682643367308306933217551669506045735180995788433910383804224567470186668433205013894431891921993051162294705772517708196749231644666909744696221828858927895626918291376114765119030773250176805550580108754018468232183316635311621437138261927508178701816200138071824665070470107669993555626347940718744248535659874149909874205521936231588454681838889525909159646587387630736894981035270401711991633333171169400533650713081028096646523708253059390652128503399532939561762806178882546359596709956508107049372167072781004908849330682603248183457122901251367911542260821217126816734249962493138018969940301436338916936483877621167560038284844099796520342673443614310269369382799815838847860828675350490931047771911151743610555890375401615661190355924153771062030730570274471852060285188652596523418704733048174871118087312457031288308426455033893829025940799062975466698725679737539773731500618825002562921515289128396736055198477934549065028389791388167394158700515558208683546274657930618411014861163819076904764129954927727866646645301049238336088994966301219671368980316147457305198361447250972520606895404051899580396494175005289408790095124381939499805115993473632550247191709421796291959780344566590148834481101240851274306294654532837553890254654239431660524515273796282084387545033825928873229829685404159710080173809163081912856085929129497502912130276981320729818941993428155742358636146043492834912243642904742437745526263031489308280177724498042483610300691039154064928548601629947645783583601759486077629726929256610074644350478114632336446535634022528824973898894955851027714819928149166748846086010311620274663030399299123798532748116377334524481207034487823841568262212582319598591881150397327215451532516238737546767453155418877544264234882970740912871801752192930121396013416603169687665839668316916791823939511159513325985289805290038598751213696625149566506953970570160684174751417959572924449730744606228901124226696024554581906978383656454875563544181482291255428312589119231017592875846336945937126693363014602294697301036890148972348196881898458789361402675508452262543357757378209340452440182802042756778111795413849661578545221933026686634464078772891260538458227666574759229524613608399371418886353107293119331466732380001454962005783346148149860837491969473522002874169409275805916634397732506023089181538633655585820683356804587500646611709144590918612537895817358233475841032687320502053892981859149497801734750106682474688192693041687425708658234265904899837020482135461233399996675101171888677728272673557303531070865874507031117002701920544540912418644579875092753435845842085438097818935131555862237347153888254771269859809537926291595853909212082123705030488437874852751400354421962322572538861845804653123549590865275430538054917302546797804505008997120825154471483405260426622966726705980028512459366451752973464819067738467906481911790299643232148110395818299059621315671683227307261898838118725782961521124202622416655866534428734545796254552960409582222296218048576897790075983210093206723848646983264245332222898011568094125870158495210109029163208378243552961441655575727660509593755307442834125230322799465633339371802969439750244042206660233206697787778589018112693001891226851729730688396923817459292771897520272083572828543571855040527881705348643991381029282131157245241598529787326612319170467643790706075545871484414686860988381705475628508980726785187054197941156395705902075103905034977000195315469916817704136904601138472264237178524980252091825584687015948929722662474314632212784757255713035143231400672920551511894508932141203544978850630729401169180242989400556973251736461916620551282778198380735334170801693834970865482546417406931294047424369719355697625173758203425882671508206566866563827338421547556466470902283895519051092269609323121563895701771442934531150320017070171718310045793814056543434053707314162959954327677978901968301858709831758235446784786982696788432999803480340230923855481745210843285211774011196727490760887583984503552101070627565929364482390784815819659049838790180443980079500301032510394308020607802171910379376907242503396387380055003201935986178077599779195540041502401415565394010782088237016475575539342001699887328082007350661594705238685287656458006899615001927942661820513951465128728220077789672800903027982699927373583091183502040833216404622489336572696975047419294249189149322525778245939434766036085730259486515415357403098951458729995892641185932925071957638652264985735435179347003295676806548415576306141734330302273441570319962926326123013413734002731138296229355785022575505464478552918983844165502935772988138142173539225689920262461445854492808453494684978316306121125249002110311650291524457014581224918506316266380808464361995492803717653596462809339595656464076717334339982193905567573296434504091792821729248711312447628555415307875714530482339986071769548794067280746646613689144599299578847753519660137053393862693977691085037238242511155731162916976519864804378502516463238553445572124472586034382792442422971459615865129129050433599271306907616570921207745871848419323880156852159455305474255091105181600014847322504015863690981190684918220122626647306923731999749578049071380619189863590452471130274570457662883094123019953932981876890310755918993449218984711118485706639183584063043078237640230037203697232963748950406862696761049914302253701566605200997425233373959191674786019254096435202069843706401784399628387351100823199986862038134619203916517220950032442930154825984831798465441718709002712435380802033127683413287079197262701436314660428418779738997073192841499912739495010400747327411364771632602718120667224985555558746852235149917824105637146174288477558405182700454152731354444367868191031873680161451852576734539345451855459260915420934153311470368562380466949567098015646167398522137759226429512274597689691732410814551550425516866653142295865275616373218012185499163765805100390295140185562447534169323591376749060747268483638917349762359757751724490996915560284540071879218644747402523298163213623488939912938919835714012864305278291519752799127476866824145552910598650463011553764652166333090736477472187361260157396919124811979182944242978455761722707134694284090986444094846199419876473789434346229260584223273153677418547602171496701598289787706472588237984103482313525631968568171372850130422565992647529000077426484788214858296078852270346326442438923370173661783168635162439510629094835039103709772423828238445492581884677219831347088707391163314916288917460894211539708395502327851587493650401344482945765565177987238109156770779258995836755604990671324431117498239054604729139256018997402446069684406729432751845156250251175909563744838319406905455584089526084324138619009388234965047671769436013501751592399249305289250853296085735781934243217085952192682156464818653274928475803262611310496344163002343203926934908719030880316089623033876399776456650590331247640946912275183473378643317303756853436776673798214185465518349063830181487571377793843873966500770376978703652221718669750881344752851890192034592795210876552400906572790480094982536850145092380332701398205774555486505080454236492247592413786250624652388520346921752521665117131474250969657554920047018204798861614260286983759980414811962247736990238385428655549166239433432615607192280329773734573822171711768099741438124367939453262599749763101573192403215328906182544970800638693283019415821280380489566168781997892644133594387904902543163916078182547700521964585969608725411626423981420714834073093409995023891108652293515153106667499541767704740607876992898904733448546358702551863975281068003587662650467773632210189775556502470224231844209178321271395239388280387927940159418649955947550826266956470011080862052930964440606367808531035075423928913083767075528795465266546900092807441081249072436519336741846592503716126647426713109103924289768794583299173396200405272801265186332693977587815864285531434354569418119330470810844173631738565403456066905709836714741210615972322941327619448431749741286013572215822915602236265602499690678663833085084152844113834545218835007725831819523317854194929428462270697303122568590222450900517335119665181627483910677139865765585888375406059447258897204330651330531002435161778946171035708918411900365092956573416469757015336470485512532290684345588442492756345562715835307991906588391873836218314070572925817040345007180780804652169627886903759366195185565911388312190655784870643323421901364576993927149968089002096582871807095021859280402731951414934565300027458949191376906797969276531229118825036314026894424894557141261691283656668036670582846527348574982724968812791711184311030869467925351325910169243864587516259731132796089513364667837996807523606548304011198968968768931602920628160683435563905043024968321204670579717682674839395111312815463805141993431480464023931565373070959466268817609909383561013440622270526848046135534101782186344438301806855820813774323294367366675183159516929252310547804634363551576746570951838581922052109781412908343110287113144963432999619622719645004914097900127840333561730261396031246941825235364676508275475088915083507875063824365896997372029243598534048451898521534560345895868998833191460999720600759601351863010557988283564509752414589715591872124730376134207339434485162009483108475767789848250760888134700017696461793323762651133784985857131381676075781304052259134598534939860431572084387513423566419257915540962442552832270498868703605511208764198092903842315558165263375479014425072413352549105308366667906822294835512116079648123371158740996601101983474665636549905460990862165173551059468410321155915200809077778263815481698999395662878599314889847471713046259150736472461379709637550388478065653247207313547988454905712773478091982720523439137248171457199716309946684896806336420468269907467786777003329686743477345564944424928546107589734189674373889706822258808577277182337008040115896690182886404381157866137220750458654932975401337928469404322034839749099214308571361435911069848050918644286446489209143089926408301667279700872052464707318264385278807492333966564616646500315663437614605061390120244593273542284255951546087668309186445860323125900400768503884746854196188224085459089754587355567807754396504520018464804653148911497299429687308234216575694785009162902957701408693474634044124332782677531284954085469782690910364764281662204276628487746061541300112003143273824970525836938362612746117842562336822151431732420949980691484167484991369712215280006084523113513042663657967503112964704132144255480672895207740782571543470948221188295575722774101495576728560798195458553212390901166103448093594239307754646625401548256145398033804500533415413393314564193557894944217722042533657814118848141295149382471243891690098193114570382703164141019758458079705712961016312915007212459159408298938378551044998186364413687541240075176919368060369285730869074650048310388869220387977126712342699090468333727772339512449335465632257237672607092899956880528827447993331024364620814995396778833925528526636909122633832030062334629341003987854400078330080978029646569032202413458392972748430644358867716397678293814700045175546025679680568167939501322997116314147626770888353055586998481945851320917118675060449845184259845194885514720180969891838827341206448105420338900058273463183329336788703744467801682965147201850429756869768469409771054673870176026180661196147090289667835788725563547742221203521818000407792979873338521512072179183387011364534714982905443079812701496160958175789047096717674452420681899275306867561818066955798110591711591311806080188482703869553557319444028843559540208851613600856597347228442587018746089232660888270918786035431707405626274248761466125016867185412163476816308714732259390299636976803843842974656488036410015069013292546967763172181610716324930877550213669695447726104765535640192105255334299215280254970890491916661549538184338832543518704356788274927857155919520841552668864513399335994273996068104980834468845631852644401031808033514061308138584567861435397114325783945731171861039689809333031358360336929098794163664615895959994912976912956073284037550289389310255810772494670919460044178650989397229563333614906310098608835839047507338636722527473926107897204504351348970698707030900779497103556196209474311011077523068630407594515626628201630348095955747566260767941096438118756917202106882964819669361257440078641119575562033175835658263221416117661038750450401425116602847713709835681501601386616234343125460136233201359437196095349008103977608301135203375137106447155589391242052999970133093825257204735750686288365416279503437322695613956460809197677394289043391226406662811686709399534228753721317466299109819049100824882769463076298792541746001633764048660218919771997951681532471931430296707050918319294917091926595437669172562562317880767437071511544076592993856113533730689873255329418513221456540996409691229466090813680191780757449326219924834891383195447941318594041397581293489911567950680929471101060272467065524109190854106956749592243499229909442067279168410375844777946324234972390167875636051161903374601718155664467850799491615621467442694730083707670404498628506862327829374268810362452927958409024165088857814176606984963332665688848423523623523529130212617218189311737387055148196800203263091513394239928297051482353786218610609973315958166798179687318918403094818626232085853276075906430284719533466073933950211500119003187555445367943462496159404669712907378592231755879878276157475889390328592820013906667961770525296859345255974929899910096041466219297782544750320381596119002175114006247165485408674120861480899771252486968927039933825971001238815339631707829400601814783260251305398409485179738181583142747929785065732045234909013884461545224436315037989870552025678402092778879257142973897711924998169082909809118875641701976975029827441849168073623849668782075970604794561414005700384439649547058297807403283716674324323468819061075086104744767138559233047851562903446439699470957168209646422564251061707211914372971811387541152565827887932376280934634240826531414604352713240799339407803057291248152663292902758915731310406960709364009428958277544444063711335087051719380192710545178154462947793750453629325834393786494646102431757842348054374906453925716036639650447248331002911866218974642677733710300670598088542794302943895752029316042473358851273414692259159540859440598593435366243833656358220737654186203125287943024237218852504566724357503887906401272046932485730504093286838364877971890242131848639442557994456354548862694022134221059192102560594741643047561835072965817072137528271296819795370074322872254064204702672853166067349215822283626801858191209833727748201944402225872584584084859771022298577688107141833470968630676534458999915937130971538656477655111974922881617392556174432962540107289145365428887986143015529293880102844926596291267303138852656694120597847258490752658210817512857447371475714163672717161651955224792149854343722621759694640490331356502393912259762675279870583914543769395256927061630725518834393834659642875653801269771137415972052300641003599709093261883663021204177749158274666683805446810527851578233543469794440944629412214463191493156893775039022903608931167345042877653353618118389041842061465630093871580706644552948255429046070186304100173563882725722060839636703831591752932892151817619258374182280843976822902696002431988804628208938840813013017559420138462230380211223548370909880328166818614401940850300688596371478077689044080454029910284462754973345333282633147921606838667056497516323064931719237918942883371275040427084763266483064261617285886601985632812381297129609449724175083249355026493565853177971283333498328986473094055844602423281920431392935265339107439313691613414395547351954066561233768420390584007342699282972603637283693549447029189800516782413362062435500472814140536490316416044323203628531413020271958073306867414518881045997120307539913373913488557909514333261639702835180863351047084838042566732491330105162280022014802238350886890692950255924613043734293753109880117218244091733390729519663122188870236139215751554873358363852410658180512621354954346265719107809475945472155751379628526210256306448267679968998084070298320283862488735227929292088086693749696976571329445854371310700532080744123189063808933163309171342765371226913362435869598169579875684668246082175964752950316205694225538363947608374066613951217774757460943236073803612810521265213195585507055981052693741723023972295643829667287429184751668891897117251238974001315908191121624026243978323588886824643428930194014907655230180277134563175089572895991556068546485743150148733545696778312267287420323954599263932864384035036391644796375452172160130357130552590599685513880629098767595649948847806895829630875882219428184567436132139657043293394073934884790335953460468032622082177823696304071914899810672817753266436075526826530814121537042236913542575411631813137839398322312321075511200712280709323233289013871009982339835530515182951493471265216687896747100483126640628299342055404084641359167475892056481543683452289306719121248420932469235529813247581516250085494738116286644633221004800759520256848028626802435867417582731932340852932975924667062435932336711454973603764155954369831420897278947762943999201853701927467479793315309325659498491237324233415174308322379041741318564723518056200497104145576607503380668077575412830642041481929183129987283066452269903646870870309671238386368025661660220657863105315360891674700163426736211828177340443729108007047136354807604597354891717900483709161282261836469232102324533608584453955447373480630674039015100915611542977175117953945078892859659295662720653739538707656623066006952096588334388329751883099424063830449723652261328626855833580923897751074353849459271169329011317301054896254845226700923277577307311827246714099658843291291772577576204961715890597368835402187605310199048146459453101871299750475753589942297071971286962004508466092125022011504381952965321348734396972644049124878611908350328542504739851967153912714745504615641256212796566721526774403132542341272358927049228056232756943132676902736938244328186313892297399274201991684383377235074432630555840047406124705380977298064703054193079723588211413867538707347503902733607016703488290718922605537576442295806351437749707882985152276866882214480001124596519961671074313922728783718378753288774730292697755317420294879435412042959144486771492654425346452901927122932761732663787202081585911805619790553281272093798531837334923469025491238304748958646528822300855673563365376902232584552671891786338586437064085667985241680050534266218900247800773844883497897386178191170296213489931295146521764269147670221553389406599014892090437704946227785914785743116094970335104764147627442502246941510805937459691752769526078331483503237339786330501600297025697506046271620490470260499580828211123106153803653592283431001716474256722072423551468714747071094501882317487881903128615081254026413914958817834003290348257781711931302325492047037851343731872329322521006093820122459523611255515696305234933212024969580017997641653168698944290975604453554645423205462843778607612264736251520252587442451088341790607558802034906702664904170370381069186728225429836247753200546138329444995677416884026243777952973537966548883296410014420317832366468505576793617155865369381878078043312434488746169680707442955671889465829497470640292462851863819240213899787730139961943285247016296218847372085228457676554486999824144124240866331995316118805913235618102585057713539479415296092045382808864498676584958410809583354064357987296004634232581601444560420798979073686164198095385194589692607039589739202452044325833420980666015214862854131134149646172356776565375991038143908638888693895624759664908825770890286637657003591072002756554196868719633071133057070619391455044111003884539347149350638951374167044012095728219478137068864307419966534323376779124912518607612194503975206178610569107022699731310570741754578340781969703143157812304555908489517556623582839156193537690924584146733701590837494449722392960020432997225247131076107204861423256781379246174961225032791666376432364607082658319857044889678307170128767959626170066554495439729213297915707285391332467230591978179432904935282746723800771202628738982000098274421260808186526411067445800922899019281663098210081848050485874462463620251167113406830938135854915604477609484623926186487364400055676282635727499060208781978770697052672047583676780658991792584128826261315413443663253957759074097966606286027503932391567252073484587238133231247533502563061711895903845237602312724375933245619717332110400679323347102803091563732345297456460413215619895949302791831486155581527578264004469609606734678352596488871458139503050569219278127698603551182967280255105455509658012736472479796080784405018325575596775537121978079000989912256048080591373316152527410925170026258996235596119698446813335697821659154874746859096796275083398610662496901086561807057092315550211728157582597936334609557814946051316544663083958399216475269644542684836229817418932818447945989942961846706439157456264688277307189350714814210597332780802891617461769762123796540343161631254335036193274089568552666639000206754817536723954573129395955957218997020078378686949653564671620157550168760734147362619188623885579937367095728165951974653059860053638686526211336154189401176026532980714360514747315593523364282602043341539092627215559339724797404864632993222262833910676619075483580261904347787570371387509966235991126022890337270127938476677052590474906379404530904555992021219145776696734386949855596131525727698137482494910634589814921771126369799785473389317177144828276772135664697767924791365545367090709504824432913297389994346906307689578789191880853044660535168271341297401641878514521135287527123806791694657153878581435045578564049282654378628940916679358603615513448639725437848414147934046906961634449384298447410214201562961942547047713172853073394044117723813587424350828736321017346512001698629021499755187421357053274872725272082952896363707161984771737977293816501290444406914420565767204700951901426090774126441281672140761272031014803533459610396832012154643204194864316396167096591298366616194208546648379143882986789607364902677250851306586855097736800996562940761543391995087416049759966747002580940228987818380196172892412740674442573426863677538488540584102910081221258333118328402270844927696268393429017145492548361424012919280584103719702521963878977381575884147485027544563365342062220240056602096459122278900393236050020627723781352209769231870056148791940722621037708508960851962054271491299703997910053660583058285722483460697972320402476372985998098496769095637560431590315362797331195942772799080556219119670276438229317492540452791888969901355131000709635593920452432750468698500309795653687322741232531477891484352700922938361947700179768760193986103056926322724967880973818089107362667626154729440271983793940032665900996257734948457149961913069103447287988383043284200566227717103951947047983845826848314681842294542874336411733192811041698303629544282168092705406425732784866228172245610783603631261445003324610930988215435862748611913035610099515675241822725477773466409148036079767378463986077897171202565397979290675881529823357428941700173317833578604943043223550226652890162556715778621579021201925400854502340641041655293403122501906510649672726490040034769300219089049919122641506565163870327109757370618506105018949097404913347736050647329543666493267458718326715496530754194570896046128517185705249434385503021388004505723849281017583703942385661848079360409247086388425879523877234247751884979544972931208298363593076152997819976938842191418258783367237057670174090937071398129820693378509909490709847295046864057085521741941833946433384924432807773621982648015081106407260530152747800959449808383773291165821227493079566612167077113492730587948103520560403800511479583891904121774473327630784875204751411827164568597770250054342705253901883972505750974388917303518319487399354525279622649824798742527695881473313305085140680050456995024206748624680882506031813609604688270930902072238249232108736111118533325306335477601665539841960971880093039122817579491933534602546209012630722733285158982421076931263008923444994597983483346482771061459120196700156929858946492684839035968410170846096480170210295751190615377220641225650866329854418449622080808710008739895775223213625399689162196647011740700672069236357349572735542698808484644836623375672519304969855624937680357735741388614459235247525564539341702356539414994135598210075958788388912011269463272632903889970915979855087207289494695876874531294781784466927726016347497502792356339556541950625843489940501798560692168690426500203577902843514983602989307084778327603062260748289912816413850102006008543754892941579569846792109506211598382749358138023336879872633852491882296283334509690570243321070218506145743774406937318490512392836378366740572140450552840240817511764343284172814037475324928613864251935461456820969353897393060372531787165429160133368447848642404379089627812297893022945932623157236512403404992691395693242507993527195970194504120555006647279629814494538792294962132770859276610108770492394129091235896806995225161118892362905475888553744410723386956048245672041992468267229159490901932885754220166406213734564659072517062138354948470243845275508709907096927247428247563377488303158387822051784623018399248293827849386707087419287964569205256974026807145506673522268644757938929915545147662617599512427848667419949208847710366723206585788369456816308456931250134393993071359208491857968180688037866379926510059038051329637635971864022157636336480391885030445578550851391105449732663396796178527993087669600547039932268459434435165317017251175180664455749462166600131624379074899480974371643331304996078185718631038310276602485135473559402035040175838914522524393353577510055565386778403408295189113841248153505573902645639286209459572437930737287709838172310813938889763624472093165222148866153073970185180290311353438691621103404149068353491250042599895366543357828150091809225467778750280887160529154728973917594761943498347043997967171174760207313913683573274783529104612209386418960091097729214766322727665631416466605550207727462050586948018579912255541935170599033923330084964508036270461869329205952735611650485587189328137232455420532114636613225357958442289832464728473642804588755990686893647321754563586783921156760555462664963565100477761384672708944458902219068212072123511712920155741871807416308801611110351067420703305360141308752467212640567795192239590974120798884472098024922846300588653148755954816531218427506448222048100030596657379758492424663516021399531945093411092136718301873651656321088650671062806104737787249834765503625603405779797975090186325901063897368799589044237596886712556321377691608100793416861833175398472792512747290700838141071783588084187537823902868276016091470929515028623377559161295585734121458045358536505540412534583406639902282641156149194116807122849981217812507354653667271105265076403763281413624515404891160021260590159862897494275828197273401539022027983333150084911631823768543212574116101728191057025698727901713277964289657598868038843701340373396155992225138698169887782021946635907771978782167472634215062690065891563059419453699352442593396237883876537584195631002383083603087215528215661435417946104184821045250204965681935061444243326177995227173092129304856002153399103023473486480790024257545109466068954672612646464893185482801818364147629297087354433344753181906201682819005348867664964976925058695742174630413378343787540380646012664398103856282279993928887723104576748189791838881149825238898221035462430799552220919776272514067632205231658894563377864249626733785002975061475900654485814149831081454474512239396090978819059068509344182110713974853871576876244094566055054162195451098067777380441882375569299617744463837215210280529780093265723584172099505472221003170371553058553781450412134293994714868064910476549620148123842782499536803081398577789888152900938440402611740336611507921751838830443802804307654623165930809246780925855415972645501993270129312039333858957118167083816496637907598987264721452803843810884588694377049211326168803926885687883569248798224608908537439750624584069527459226873802289538195494530767518517539616516289428562078132643853299585119931940503729395123568563716444727579219559408111424843660850578603919268143965575211835038652963335003764352790294611526250233704758515062482264059893604322407395334112616000858596865005612077054082748586054890893916252405915548268291176875164992174157855861933125179702463853747290798222341127716207866013843430872655929219275646821201732443825254163623805890586168414262368750943508960770410135167316747487317566502192784887992051572355192290266723482457588302016911628122663428601046201503975358398697869782602243768914777143537926765330830561741391755381189728903447667981256658112059840542437576584175739749265212481627293762175028693183504147435701540335610400721955799025600309356431837327858139553669835678034014796657495553526480820459862532951322394315156445823727326824438006207829582549702424339484614076508129441507699053680171012739702764364185831898592106305084746289945769294423523015498368227182664033258513750092824757485679144029118343246084756685409154069913786776950101218699437830356704842753475981181196232622789101427120825737186420019432587522409497938438389804081505901717705346857458603454837925031737094584913471927994333334767120490921916294705325213548063394380891527181509825505097304846448738288292397995632845143139715485330492290174658863999894428665447755777077795538120687080117786953883026803277470387099742479809736629998055369586597675778683618785194984179861307254601135016326134388409848319484212498141379844082486486505601409255649767488191296745525286567866043199510866438083370132838696444024836243358255278910980524817157633604935575228727547305739578317967889931758451134153736548557096648338139347636797186881758799617564979326507550956602816183693484278121612739663771895585849069113428621537275254049693099846613614110432349040023984836347810572179595853177907442046062255621001188075348199014641222398404198588526774158554797052121591786628236896241497881491221105840875948332005504992355429706012181736008778893762312775601484926217509209921513681190117254388572017147866295053019642657081381195606541187458059440041619365506124349549689781715556333042422193694945351217234144915422796628262095477437251131268734781573742839428737698553902900808017484518868474799174235479573718340074090730100221011432476882957407587805408160319748302774309765711465163081711139227292405867583156618966805182621801827137532835469722516531358804421625946951707437051834664585510826028795339941323418487760470040924276433059210450440023846669843796841426047250415237427465277696196244739321559974575613182154136618514450421096277378306237377743710295959003440546434105455331964627724881803458345824054544206396258046150052755583369038598271069199231305704987224058539365832096504551925122560223540535725466300656623101460530944579031779308299083521404473801662481065158908751563649367730497829112706711863103867264259753633872592392216996771370442976327835498629569499143900406351693059105438183892193547985423371508705646526579836040527987359317654061680062693256435905046458558755257959082860871107517455282897062589019944503024650829072874234200191686741994705879230131583142855792995589707958552012391444238728627082652363684438746038710088590861138277361805035975099207428587028261906741713845902508584512031934731878715901596316072233160299395300194734996301591969631189155589944688798567755853917024115580352888373984002111229712276861631323763408531634792738048790142173884661795677157496443828899012015981098975916939626127532236863600029658560015748088831285903041993638501051097876936617917839132942012009607136583146260766754029898522038615245953661374975054585955482843135488367595259313162248223592927759070964207902715331177957072512997914291278682801544290508121419752941840497933489587033342810424335187280490999433722345843704998536351736158112574685337793448563428533133433000658076037027493925122175694273573771218576410816369926552772306733034283116427316541935183767232896253078019985438530035800396749896198828675598214312661217495405590980596075799077854346126426767957935066702825243035770693166148574243097716072245833174263932429260960139565767613978198023945483404011307242716325944474977869688059529243049544429384113027170337504090960411998815402909067007175763990395191845555810415318042434680542009545722799928522401817182589420231699653376285583960406732057629169777857066932349170118296888746780172317896993178462098252296491668336307030679749180491340671852484320541808191355259311683888625653723785413370192614764939897805096824507554097621756960939131148024929649733945645645020529500805933284334942349269649897522015588777457751940454650308158451616939094612619003837923462119181979937815164643682875293749596478237582623424504037811380095674356360501766204823605619866088578820135201091797507135845466640330470868092387096934055937280783159978591945285357907525516580149363726637108438964170331998388155708819703066087213428990272863324798671938138927062952425047520468281404878289965111851836590268878034781751941810537372592427310022283982154673275858969535471376482306463881824383902697003178311632276963566707514674527727639206516128109119563511446232345857143217748022427961571671350304405244389204413533587095901137969426502116035333172058100328395969553280105012638133506003832418220883757107758499244300850871053835620185312989016933239089154965734539563338114398337198241895090843693234985363959096182166764594811166694158717065653501715022711001053307767641388312112488455498784938700331021938962300536153756658546971528762890666363985291767276568105920820187212514892397057818640286175231322129424623585397878012896041169971833645569825117063871089135368062321526781190614299250563818114166767478377498456217933041467658759309905660141436603560454669459072326192773015343253758857088485462937574586158385690436874097439253605545547886682670035630549132193842111307632548197528048613489015746460438174550629752796541649681428999679631875713138760247904266464006889331669071276983840189778127560970074428137162123386985790365672635686801785356771967603008982137638826123530988826963205256264740936725710209852461132019867650782434736127440230553190681798755535991802310893460650566001361228421783732924422814380205504941686915570959015557905518472212366890417743786723731447238903754027549611193346472177388399921420226529575780998915099850872871209062631580318448292823661706339789646264762401143079009974062624355813001168410800615427564749222899127945740141146997229094179126467599759802252015296930422878360634911487810096411088330652762466010875380527053460338534908220977594394172491779501517928177943882166283069552214491414057828261768241419351323238524966713661301261834701859344269096257381139954670314389776313243096707243313583181828035534852827158670656291608871106187649091323134740899140107751167777598824614054991924081519283796391558185588847782628799827785412008560595462292996490577728475151218791288867848080970740851058859586805959207723896866351596541157670532732226494722944504802578904455599671938025582370051957792187035247029150058251386408673167955447675253874838236307597635264063184781092787249633804866629904062421319637457593931883444035539159678427259276554865217997592026157471863312212882122110564968829133558920588435252155309991528727563535248969235419551312902325806069300871891614459284218199931571565666152931184694776445967257312779562884735890261327300808414291259275737331171085884375544511506590961165863814777949583488350927633423505242758236970861037659852717469740463307692604602038110980296586919520069752348833479782271668210192323910432205791897492315936658286057501604264568640406117722228787106315132643077073671473096031070336462462649097063355536119700825096592558362260749016153201419924999314205308286985127443075339536316692526523304473630638025933861737283466269863040077033661108382543682911216322473794316202151580503163627407531215181572223556822955138919130821228605076085686920619184307174991173187746367897938258818249998358864087041739420716014755598182630587143544786107698684643479225584838621616428054433197047137165426420140156133310129873099489538254557470705047649185238775631369073262304563896494659925265550377696530510775285786588300641222114684653667021023003162093570353528377788720145997604991972190603745886389590623467722134876105162200624173515965952129498801199221499319851435250313443677774323697152208927899485738332650610893604136346588719193963861422538563510575386308186943431193978865150469882828637009223384823347132576749684217567860326265517453000969507001873399443966681050267148303260279520209316498085817377475266273642871522829258933672076692838888130724673161228075992064552303555313199872987474555300642050528445652540174411921298477510905598535944717881165650177839596858894501398455348394090953874281590360806739112296610816884258912482310832950682272483646892919464207321827805782008775300248953874005747272645950761523132276956246264005760139222582965964178608568699474077752625980015922912623027987101095010401816969749299010946558954780102810936237936635451845514027741709964342091945816119297420907096011617233554780839554076024329723371217962443580996591412489292815189066625214695090065028863780301931874269908661417770980708779480592945553889183221250752122132574475914373741243530221661991511812157147097550998075004748832163894965536105969751641477088322413038345410210768018892616908636901045799933902129836320360106939260461656157582091306774727325060375189488946490765197302882822187413423955890541728858403530194737345368976757789670728726276846428291724371229648671891928030518451727843349095032768515776575695238864412745110825827924382900327547641803824938059271944820070867998007458863625485312139939277705383177263145536676499180495823069715850235232734839935422438129919774145874269344978900806304135075913875031532956709914510989163191713534592475420581430907724352724911976771001314489756092661594434816609670861649003883000096440451108936887263433125199990750531469686252085640643013016867808831017932222606113021575918328626696479265165292727087065858683792498000790792629501743488629779983442198081153930593836853438183206248834230268174579444122038603524852603225034883755253822539271910372316924197012323482100487665322374549081091056234858432466841204984634289927176479986539031134809590771033595361806088318495907174046460260580724288159467803782120171466181089078378742552614211081505184585664231142607330668775941278392059235447292335507373111258630381260154433629537491546873089714927541093610662554596381040619095087875896175156015239381934853428610630619194510847534963930065423567861902104396295188203514033044521983563954900311598701419837265500086959528811978435161092535494687067255641307244542912143515597926598163524587731401858264422596194274755769653588938611260208790925762202707809927677415422521033775316859685240560816088962178979117237218759909434032124387948446751409179301863216194326394959931136898807828221718479238957981055005399219919035197263634399599226648547149417091189393884935840143882844817624964882767339914301571726584563248279624611217391788800407922482635480965723232296199055922648414485521297183344839532152059466894239637378569853785145555658387830009486344108685801171661948909516020583251474718261358607801408381483293473233177991266289565404512194497252421706239010588177152606357443650921813191948974704155568780176020208565038072078132812300864242910906077332620617533213362298741087005784043012167125442826962869049461554048621720290338851993308279614758641018021588050043411170899074291980605530406660617980119122895443429033495687488778004650515506839100205914471805506389949016322064316511035305878034744537513831495021774018908053089878700402316790807201864875115367257758496115701380697023324121653935893485081967576352849527121206682643116227102220455259225431713402991879247844671271192438452014250105878138466974649793052687067292996111394203321836093712366791845989665085636999518549294473905033073347670394376868042987026786034530926295595772448945744885428796258676906679765026273012696052445642209670957451018358709718967661321736434815723631944707098540988363079024096210538361569397520995602005118796640605494957488221951217115374644526549531244774396052690892008560585820223419057861278248560340074608024905974517009561020626548983349739151049784251618836470907186566552530761683125643806549220553481137049349110711421296997520444416657754615614727872672520087158831834503714563044448339353966133265429313786139988421869197330164385702043417483397679281368263470433433294486326338592851934961061686666583832974202989598402371817058720764177030147686745172323182076850718232790610612783486048820582283542822017814276561979908611474896218371743485364931560517523115902945106914791427423091179160327416813376476556457339107636001285146521491045250889475034729002158602012611113157205829315103804651903725521869610448455847141406290969726278948105403269672573626986468982445291771214353034703976108453416534396045355174172235074154352064020006029237354018042625892838654813847061765328695307060139334740797111425982480244823218252258774650515104411175274852658413814496798205075404891400987971517772254122612936589180786935173867964383036834432589435476787104161135769841581449905568451986692506127634924505485432551086906823505242787944106548406673741085730888651141043401773704120257169097016243534742431041876845989194289174621500460026662709543992397969523935532441430262841029870542494382279777487600531562717674679175214511631550481790727219102896979545213509514949214626953959588459660601963184883075322643920134873927404173420895652779936256657752059699126191148442925255608455394546733945889774024893934867112337809048729586987041883564838031216230527634455612601856073997359018012339781643519824005302406546811454408062982372164595205918235481336346043366658686221039961355015565620745767560679302888110793515345272360828333449149081878741271169621184009742334465487415501599636227480434094956771927954443184607929975403084217576325701775022717175612755072477083737765832257188624430486914655852969904056782844618032150373101988290114112679811645910244938692244497493672947956879697978900233502723320879170196840637151980690414671065227188274402353900690804003141080044498970764006470559986693505702632585305133616999016958084062337771728481654922714473661578066850253925165961362116020238269087586376836225759816647806774510852106057789947600672159091618220641852578384192733816382256029990641610509565653148351686148918295248698943031753031477396232298006848628935236744245219024938004665365489566335528226028023253165315024114245252335089529436605076068090719476000542691749296411912789454725396292577104328646192590246722431727920043058586029801713253725221936696207915715794728854664543887536515494694214204408902029228325982705951414934834050652953542724276764376804643203241484939592129937346593666044492528333887540843046376493552803027585848981170440309950989321717358248598742438074630356385670683353596233911415510636292982695715751776680179570778024550409782940890190618890945682572087607568839044569017964899915980186600997964855330486114183227210123881342573630138440898586907899363076537030289855193703761434034045079491800239748485586386749009404705831469745210623565604466066591325772786884162488805082696176757988019786061226069257945257508723772687433319958980054050447595726946049737362061730789601833979169484342021223375075103795449191317908152854749975832716344335388575151506535796397691008345553232308254501350146618627178522047879918200378141854696010997469824699193463630956329912338282348237781673870447551173166714381694828162393335479362231172019761664728696830554964322757147359276064625814118477509027847502383966425958313963300237934494751764311756125258907135290765698726026645610759940408659028049559466862221874431103031690817070735532354547982261200862628080647439105705561699945904408519754854343445572918938858201974745419142898613807132116366722071343979747788201736296538382510963161697686659979763916384244248357821525822717229929391899485416231236879430586979499792893598691001908337839116654790521657322629769745849514763603030467246326011370960157745063777448246088677322085779268010976435725246599402800983164851883715843923239977499700372394751123773730078857694748037558044235769343120835036926984940602994026208129141070869589007487455739866907903536013220739315037630736222986530576363901652334967323625515925308337007392654875459464771683542456087759893059671643336263523565800512735089207965831532783519924588032997742337107716182359665266160420237500041352904408068250392641206532758053090841248812883815696922721112916076504793236664815101603634094530894238896186990450712533093618750391401482135072947405735514041772168237712242296296186780971785484878054788743836617732092800683909101008668219106884237272741082805694922518154983516144370156222176061717464715632951901475952706298500057393277596524959678471434767337248420544708189798320708456676393823469188205863429070110562858315280901146106926981934358147385683421398827771255628769726146599567101379604828975043902501164385401171322200561678579328945998486458129334931027219082799896472667094518419849054984068148277164457351437186096271500112485812056865240127293608481945141162311356301956846950431726774333419042788585400931951882450424092609911690238622366812961634907078158167501531255775311294850561769782061964245426773359742125368001063456150717592664662403623921360706346370289143855477494440333481380743069526104451267985112227195935373816015957413818380696923497846850427138195815844484504415929615680859577276476518580623924859643891512275668361812634193293319766779584916646170272604473495870235402557774402069978566189309245874560073944096051692464640076743183284769484362909301087016995915471596673009953724645906517218155109836579513865309187543901902929133516361507024048326927959588718641887392799589616742088663097906308688483801831263792750069619764936477441496460592507683800038707638527087032796799894768366333397880727102875522535732198920674729158882911840379325239080938248760578538024286307645841987354687500435141741352161540420374568527654989465750234727241183698448499302654663748955044917123987775453184858465958341191290598563020951933388606290273731098723655923940316904635237831083405144646359874607133031838380815193311002606994684254183089099782188623660396802820229248212219934655034037003675496753290904458621637501750233989278981086412240306900685766505188145375309713586974926996686478826948895564565140579118798861167920709549294005373009766581197559138488544497742415039165611295236653984810052103595461506362215125841669334597400621850339158443795910820552054224654823013960754664836050901650306111453292142829816542909801313883188986312452665730400239034133796427543847533117926388064664085940767233156969872401458776359553977757042095967014580426437733290588490576983559636438740672792887639479572630441874306270270210089973992013968913670602556098397564607812751107442830656380381476652895815302463163609595634474344672755152073822692786278562746110078188386513519817238802832774924962764317531134618940684850757330913546240485984466882008311926870020098888213651364727689687095182887170514263553732205845232032236378514125040447187610206861152734380635768081907274446299935091190746876513802609772139930916794274263967413062927590342798232972293088922037240587270775656797904248182402620854810385701915878562746437506023202644835869443734984611030814732250143790763673602008581817477658105894480996399729026617633273295158103996987189588365286483351536468080152484965177259098133356808706788333754636369487955996156710923167540788706504049264842238394792700401775045431934212186778200448384773696216545748455145254020107800945070980473117010883900668360004843815926788499484656431958284556797323656621759899134552768247617403417688604583802660261776237711054897332357511631846825977333128810962751871512172003974185163671099085918999852196424123411123538541445030851275793772259225937727077497290427472314640321107413718589960949000964326612440704031193322639548615285853442159935834366195811925658606399698577365731930915856086588344759175487548941451782110652532133588303612645497020564082343617552808921720364659673350410544860132287194308024771063160857360942045078377121825854645173381346589837738912610313131158179473417397828651907405967216923343877290386524470057464269456503261618010859344760544815051453578740305876634258856737116509285602582302553273140416794364157692789583622808196863636047554182140186016444094828727266280312067067648770809073502615484708798492939869015715705625527093976644556515496537658375256126612369874086580847837575263324015288565059460915890007729846932581634025730073909704453180444885736611407924461676844450919819263157837850888683737310015305469138253666910143502978670514330775227341891679384196333560430758944251371693931786539796529190921361357160863211145663426233906363234722262580994265775767290037182075730398358351383352646186102266408190266654577073748697746978653304370085422170898734066271500640406156823320854552825378583059436881991306562893348813128815098131918527979071720412759467612901556085553698839958846636908978079662425554090123252557442467594573560908504880475108766865658401946601796858248715939275293809421950197914127582850590299352388260202922218961069134295853049677668060564424157413703556227732261482161489955697111859309894250772961491177790845904126183113465671615007244323640286628079381348094081579750754230423590136066094607894314672768798301119006912079257638942618695804949831502199309410284163543576414607999303112890453943527133510576562831807719858588564908524056143124324617089823669374198652168140340109684759241396659132382584118917684156457441078986603406114785957654885216663945946213816559300921169544117207847960856588766993667888856651388275909892326135667010814199639152372913517033975482759101783726002221535201520381020410178232227329959138410184367981011357032649132038220411035324386610879637462788636258726727648030543538798821027414446112458974495724634628174384819160325384700691341402012343728445681276856502119393487259273434721509837002096378031040611480798032814668952048477002107353115975611512910560846901100100396421197599642510826565386260424320499331870333318963733024529319644259510881370721116591600386321928178888429584164195337955289348702276583758668491123349011906077162235103985843983472611395028809608558354254337520860929743277169225344096710517646231239188706787721385484570303405747378163712364665161101499736896471020093810938646916496954404857485897674063639984290569092125304107445335242242821982886143664880476891498082417905526087574684324026827508842537895156981749518361835866763491503015442626795700919997801443393457302567820822679072978615551162649031003567283557349381908848709257527154428818816620670278037014669265323471935980368972192527886309033144019378640497537385044224564938488721389186394918669809504740114008083052871188942247198653226363213607094281216452048350952969505868368564530017498236977355717059420063517108028948128320033236630743837831784851812362434527651320486296397355465835915520324102356081443176512452450093678264024944186729233079101131474910671735816719351856962675943076532513616889722735205480033185834098048842918947445106635792945770602245134853384682586681002451700270630854358506108480939243597336125621385177741964578441086835172746734397939744965035830919347414706283079555888994443721130057588800714343786028620678381589387005895072518748126449278302699343940406620655039360829076208297912334453284277921892059133990439529007137493599449504277148558185961586173001444463190601930627327964006038707720227076785639835364172164808783842580362454094456200877803427936525772753139469371926736827526721696114521589227026330967907463926675551871505790202396548340196890461234689213080550199458781062469079412525159149724000902569766737414372618375328155482091663146335272101851291173820532013633743145970717311254729519207339345725308669260249550508383979770598449637746706868072046755701301766073305680762212469591458576735489269933623938322487551349889014977036160114512598961571151997383417681726102920894791556291156327256830693022670685409116779638781438737694032032156158815068727246942165756311705780364733243332013607106963571661240192815490520555696012124909481316258688418100777795785197148591955981277198956545408330751855982205493052799321048903105452724632820504368486509905458488616978676548641258537722000962746088619002269571410448370377793667650161037120014734122945258517741721474676994026476858403041831655186771692939217345185682225350578247434069227173349398732572334249780400794758525587410382612645866988013583383572389283322838087222965502426602615236665894354392912436577124918441949242964562901344977721798376650910111944669611244421319863976767993826668257487755394389796999096433607921215029702490877004304284164117791474387685652841603351627165442507105647386055736970212687976751869950063477621797851937141283436541387299515369295646884138153368633934445402895460231121404886493306137090330341500797930072836004292647554647137420800410425719749312664090004233555527432854896558952818553375195277667879745323703558941018002805031577550335448546293645603818485078157370462070988097848136101779643317340044906998853580548050545001728625473856567966258507072370055837160801573775425761569667019093137907546812977510956661067745619693390590911019824568225759315279087416468590627563337598726789232029029824767173259617104477845155661994242267067892575554821066827319621873391353008554479519096054857221117462055406688220122159615189555163859687664366966975830618054400708917076940457869050236445745279014447191472758403773912572932486717414275210813148660396967369419435450048317514985132154748527746668725977766472337092557470190995649257393958359524618405505059465463327461803150647391729655074123730857185045608009095313684417052660602124296321149347095306606043389070234548857399202030372656040264672370471014849060499522782158352628078924447068643479788212247080599483413439477127132281553303837176917003871880946597509564094589669424560845559482173702554832117114071182264556201587195576815168236675210062319498526883758498957334802040664973732858848679050199806412887030578080928331457870858643064988708759393975718317492702613179987761669590657057199250909337320920456060966271017288533225517557036363688045637064803171526086455765907208284132360066308729380997322605362824621323569560617037704837289390243947808387960158092720066621470371397421131109108028071090658612463092716930166222591220053586531588087153723787238923967001744558206208595442419558291272554364952882141294539014057413023099686400128097768567672513691334077007911656498832542699991230207946437429870045574955605941292785937377880252013576450113941163596821636336149629142403108151675883290540186180128645946923443530345849996994940503485021939487550237715785986798945157701890211519633383245361985127975263683646243947036817508127295807395746938060005655716706883953316021679902480056664129550278326376295873046424909346284935780843565036560844486164185716334524005088213653605459333886907552482460793897352034264156388245231348753495152871261828152398726555667739669502156314210256588509976802075355231795751579102512184654062840606682986159327416704427732078045657372593929777498522444649941716897041144292369615988520528799702237095712729754409782541368474514600786359896275368581633715796804107191390974834208889734721738266888017518089859372336835295456634229876018049543433653645037322584897468284167917191620871007808007454843759460722888371912334872819072705454168142767547961320166406679248110741857419769505583849323811967696574149852697451152065680157676823362645880979420118466337968077473925903073156366733320170729895155965873381969625715074159819362152555150741812040100562548144477290898188085241434998781779231970009593856590559413175708156290366256380267462709753903582118924909249158720869409536615093817858367514896281339568203387416158291691111458563733249469508626603368221229417314632993680246817693924692795019626414135592422056278240762133915394810633505446646670709522296942485380573345981004917570493864781791500586537931500378055953002549371457525396010985791148714397805045361966499434361332825432885969164666328326180654496273756786943763483840839052928298873800084407042929142620360035407455095203083308560485387133242316504299714982374129781282098546029329223612448652636088378793792832199454481314551968377448760473486472446066259270424125688555682304317377699816219576621509353099818316801698547752257096929427658833715427999456062355410856701212649314827489334099278512047193019956772907885821419045483073204848288541098846916423086657095120758808896666396499302817981621861871680130319647024017274655402283966976000583297309748563486451026082110946916360774198691260457480668693917047184440168700338304930663855858560521791681283231192611306594203674396254976143440221938124487119821149131397956865801909078851616562574384488020672300461627230365477466007246059614777360009992980819822001608172615398572353045509292735781487232538018615898510106825658817387150490873155785702672147695973834002654652071409731474421805364997037517384074194855758790770525039809588890342863905628114590326822820671331662724240839603091654823349666803809531294264708754650684189084726599180065261085423752586823661572526955902608092567034484465342528541386888062677354033243876444927356734644997815182734839677764683467725064081806875465764202464521989202890454581352322627109559805659483068502642800378115234498769016108533636186471556146053544529830316120738129773730949351451286539382706568057599938855455463263427774639291654007358989488017218446929773419414697256625883732125359375866777895262513774314788618842164346392337373286131365502487332128456247469727232400306274109793935777927504445154509876499386265049348036981160875907762297111786251822825873006698384443562816382054335719221854932050240407412517444844975335703215962779659316443975303492873714898991932147662387023143955473516649901798206014809643681248306344614611658587351760437680372460371720306723875164158134729713802375576954493993035228444208616719733739746983649773791266165840811894841268018431879498337772296023859189836816649047699473380698583990281884051168200100914624069206339171554640329174512343556466548085049384534039468809257406620379074586525290540767000273944993885271921286397366620592675858456393386053990274975057472564121830682590814637334435128729021025938011402990290099547148716315318664791730368182466654474244189246289906551836893771362313120160619848676581840482744067674602720274256110239176917315406866007754868813190648496035323083242766739151636807808598132882424403004797713797591704470150548431492640632178925535117022773091217710173149334411539978220146051724613719966963177235359852891123727931320987648327908359702734824373046026866343639460440515654869753671798552078618244625961618562575631768083325761523707087152537245875863861709609453093164765150059384988103140676849503887355826373242341522260920511305915647217457644086479066443065213271964718951359716645997550218614897063292520133669800330778056331804489497684150342552579910319184463848843962858088196622121729876176170757729578433982026393423534187895328182973647007042549581341851727832800084787401871761037888779655720660581867213229997159846203553140773912967292463423036211518290051471957901329729850591414457463733603963260587021103226375410708903101373337642984941065445096137444965791944953013743265696712010592832134025885968967657290788172814771049002429648139986513358262608701622804480531218478459136902923135653549075619211626054498206493079235020639571662895982114173357008867249046805407842121529664224707453855190682305098316519363827961974482521706320535361481009179972482288203929727676191380230864470788820361998557616769923169656985915576758856245161195495384438897777373833905545946444805479633473292778180409244159192450014382807735591748227403529813881808139704183891546852326115582963900189353324186361261663216390726768153420393014428561426090641807650692008474610781626406165155144204390246748685630291118089310472923132108786360989004919415900890139342815085791869665638033107431131588323039119536756137016689253211666937864168992471997828747378353344737606040422770996012610842190417199265760000923418084642256688528822688495545393265373720040930514573637449573308048016842671175212096416882190290338893281530467973027772753619541969512604401729504399719417273023700557020537233872259510310382979015160576590656164673252742687995967520139441460550318033974148900574601182630739339979214929579491600552237827944830821138389579571007874886978009820443239568343727557569368874522905501561561298294672434579895621831320726150092907825900771968897649113177922637659054770677041089665210219795925203824502249122587107391094828383022857664114773853960244767375729462915510709770493809981823995951050988669394371610423434063626101221093333146107358652329753289529431227849980706553820944109468179861382206948868056786729357203529763126253426713269126513545035279458299370633440454235678499279034057041332881283043186580338527376122154373882739908560417348386734222344737425886925489397996071201359529216091004513428807245602036676816005909348872316160941370148012303113738938142798843730123076938446740951083214700269243774660384058523030366368123046254686904005619808459400667658322319654578445423031242332106049562099110534377865870366061003999225226358219652528000208927952043986935706081623937148913273902109096791296310956432498740481253664368170075748817358603824760804318200739309394895812082782585183352043032581478875471231506296447820273863218930670269693223305517894841775150018944063358799939972197119784398828435794188098465600319968587616872460704283274038442069961789009597957127726247152757279718546846054813138528251899481762206969817867559248329102174245577842986965891535120875195335239280395880972750245163594546502586974019894849304530747258241549274966411018121561891453531976750925518526226739893156691149334299070546897705991956944066425299298573843093173514408909729785212967139275111451690080052898790195088235831291343118477565840253151711651073213182248896628384218231715924605436862190176102601488068065010297871226390509608746871816695032903516694779900796259717455111737458065478153336001068861400311907337290574648376177172715855421701328980356228854374501243447659578571510199489725451288906380480454072405636216287324276587498605542227178381633604785823240330052126117264286583710429482661016313209551991743351587851355628542226193274103380943570775751537593871999593544618647376331007205565149693927221140917108551454135727677243432418575418017818805719269661794841442178711915819743177805602196442059574667982085127499830569638569022643924941967477296506718242988651285857917602450946791544730346593294542847152510225816822726619748965087939190386882042645050890064727278316328379845726546180299865748770568806078532688506884258947857572759097845163735969485058905420211512313207716280522662432370623731037783489686456151469013680304842346459803092626046126012983033658799316415856369487663812547353085576967420879582218843189718997428584264323463192858888137507238177534196881558613741124604987691663598203493675447079784448650893291356518904264434884974461782064965768390080835868892148806983709783223036585223163670606425749368422452390324904880431147066527109909177535619480957273791367380056586656973337556762676854859696469549398970968844001821983262775047230576221668453364612615942268154323546105248465856539533303585570018092174025463963607369189400245691322547638986710570027124726869700282896798183020664031381060867519416822864876143256708918147102824825797172254134860863369421704506616546028435412093645848762559754590307828200680671446448659724421842708374159055091577150827701124707211105892867800498168517101422690830137289749241511380831301297274255996057494794416970601800239519295452437962427430362370064394964398993263876114135981391488954919271690070624359538511328493933773258508480351065504652578165595570126584457793005066920754273027384080595567713255583306425041910945261385759847233167470781879625816696073880403000081370639120484403947815158975386594644361791838365539233758474612471269872638341607171156730254408637692438549082942820483759462522968690389532622045084586738830749569266618656006334540592044088828899866208105859954416158459055774319808709655573398450853934819185838130730421906916136885583479769655441834135679503683707910726369229863560180118527990613918123173127985269460167008730704207644853769906149190877654540338652265197964769592759909092397553599048237739370173918230592550332563993365394501489401276693080722373819376687761751419642271791071791644536243107284957194968824917264115643641147891338411084778575136601212583817193524275701301901118365555928913195458291946978504914207526765200139194560407088465271482397968297934128553723421461980224863370177648872221861540696591465798408944584754000560518922280185464217668586258213238957291396830226899362461734081755419132518676554474825280862684398442970037643813248867122897006171214736418335934163745065684693989339294101105031569811920852725335123850059605498351325407432128985081311581740932092790928088440072943956023730939076507946049435492861416942699214969471844318010792563623465009905811827212579423067993103729915704144811844388525262359881825968662927551679168746586622574199211031964518406332499569431042485275267421099494278669802034415955942375935517103481811068372002466667528504785279040907550703080279986202382908446707036304503130614711875284711922221014583823646871487656095685681973860348326451371504062331946726791878336350630392430319157935500482748031330552218059088753058294343834097697102336968888604980054187317184957630824919533989548810110016872869101035635999417468128926487690326885525875108599866142722475098205230026569948320488643865403858555408076829638373487372793944436150821710242279098689652584768934733905896636414061843709350635705785802248819438230056721927529128769626606024722061636396071239181235739585929691963804538516784572762555389560801397137178862743355529434815234257102263618295079800273800916655271841999432830253290756438054421831518825784984279412260685553078017207442615785830432899610569501793279936557686650671034619187653887248233753377180409507074819746473729925572770365722386107341666122071426268047986608688156266415637230892168755416650153955249844271782390129292573041295666453688023170733352642619778569694238434891275900859418460819747114998829218346866091046744906020440548657461011870961976474157167723445716495994458956968887547543127101220447599824191285075686584909418041653540074035736696790104218642186809723215235075467475481543442609417087428836084613682701949745239286379895142926881311816262100904775516840374956447616558789151075627621257085569412107258637720744955902520054049208397932226382918061479803068675690354563267776777847813993601156557935078808860665837778742700839315841835805648385681826454410102833212052015484487714889398378737581451208688410326893897915215753816579299910366822071789508153119006771726111105950506684780010680948748048267411809554982130135225146207308701626815382816183982818833620486589477883510422929259550994919524120154532532080986445705790998517556663755559283074368762437234941356642354331821836901727579535488009292610222174335722685870323219328870134366658477665431407758060704923986795346110102524654026753943153334243768315091163440333750397629596291456761656979307705968404529824685358843754318978595590750020153937730144390482124912214601892671992162150609853941575224392985061129413931886270054670619136092942413668868176955115235828180961797132379380303466895752151223092858551636045686635529010234639138648084239601820693759588172647129583240366726874065240348339353749460089852600646063027597012963494464674389594533144364861637402020307442948379650128303983221209548358391834306690214396792787677509929788963318671433986196468791194531027996612532767185400857011052044138221742145548376707540547170974878577286851849074266775905738321534434681000434869129830251507078369428821180131290927587446647110502099195118831804834804560444508490255259700053191133398431096368843555370248125105318617209958238412691289391815381625243068765375487261133361922340296126202829712511150020731377961883612542108744676995365287909614184213732040708518736382666026787251922835935593936042731588090116396980546273705550188385953838026108979986086718191437416167173746036518901108017952647898789186681779598807837884608369931898210002905189310120285510686244077961803860576957862614287274295397113541139828254085422060231914123072624009333180469352344374765855533208162353533449427127943377336487698208446391145450151427102072179564584368060022383144657535350167890040728866157561527638666494381763228396096061077581257513052338357718466099282653563229996654214052807973723549069565981751853320890692497130276361529577032710817463272762216415426910312182968789165599593762108068288204976091549888043963809242863896363133491612115127384306271507601269321643442391579392449365845673793082279485926514765820845646439146106773175512559251357406668388845875596275031147058866605977488853108458692210831705348764516382762443622533479688401540483073108010760619818684094799651020165282870127686038912350471487723263440013722749485023718103741478361702035041292835011240971937888120419401355380216244700009170487696238315394176175649765062853811885711971744052269933638922254694017232651573815134346630659857760319231026487246736531162476829778002948435577289663428895486030124446003105968811977865252570801680131726604040613130474991906426887572163605195305613756979137110413381636532011158408263889087336930595933410969728579817686409919835280413424646089081828113818008596892460915950768626260516756718995896780353419488185089519696239503745818849234989216946507190628600278378650286600171870817853584580965380638636353836187623837011913538475075486938699968021354926675316038641857998692663023971353331968290899370059798995740006123805879879531378606511973631589028290109815651508569825321833551831508718422978467466698207736411325506616552460714957835288916035047121607214651204020114954655932361887083826612877855844247104004577674914083418789133426022246752315077915259980725674520217113486627188460137097331571209727138809627176607339183300380133490470251672945521475003076268834996093753936846547805524164172171464345115317406663899130889234217192999390760586120013613821693867814517585781711881505623566361379647576185251051747457634505123339050984197708669975790538801630344413302424266797002645073432728270968153052241346118061766003620403849699602276809896872836166383560272073017766901023416718141016948095712766685152181100975994594980694362467610131044877464757596561734832440664458573085805697273050136037609169315149284175803711303534494953930110357646604505914455862289875894134010203528667875139583549730893154001942979189838764971058031408789233039570567648654599013595084915171251989630497870598277058372582121343813519979265951183843588906081668011272675913200819963783337302493874069521700364950633741375760267888544901393516724211288423240340914199142569202001187553240328701607126417105264971181983656564647946265131041001017332534112997516247363416833373791105979381520084205843904893498146825868981165873160630879058578185627221309089474139749030030162275899732446196914445166596457775850359801151028357608543797753609133949137336138457008759810098330230389399545454658767424787490501589635154170871370806358897253759038560744443894175797534813724961242808078345305698031925389350611912815659609420139162504575686120245650919173007102945207667846608131703721441207825385372691742627021136979716175329258089469927595918426765593931611642942585211660297681412440048416510879531436483021000379586679402813073399440273579902914883802365879673479124795590317224282424586947663247769787233159491000805380482562446019086518840174837314165781557862001589019904597101727641913602583448177655546676763987801331888752594993774613073798715593712346326414421926369596753207060560955789560702834285540438239364206771571118338970008670337010757112089726785141902270719480998466180347702714862866615344627585800167365999299385367327955948992101150235272413849931148631803659476175313524004638190146960981501882774702955194969779125312983933232913381343076113927247431014929270768569056539870062978673497875542743075953234448501201385764689724060341367802655828891535200983458064577426766895859733542664269360840779859186851426084168062276406823073897076201891032796430638945062137915764474654631424244197254760551051614454813205318167729651019441067631912691131172725956360980672553156955441707225311385654244608831507062395054401380017085522946403051132555690127215595494578501715090870588928171741846966537400668329723002857542267054828374465043767898532257319343431123546568755939715505197494108250332544093426351355527126347453450896769419631985423894270101625363554508547517907551990679124211497995555123547350597139068631853873524754180996496451920122384182711020107691399988546852360696343686080960842697751332869263077304827287754421091484051860919500641241120484845790145210647631084760456739526397256922479691094330409458211292062801256491661126771711304837285252679938582159908849635591898884790896602896087654605723066838203378778129810169161228735176088110375601475674014302245382629571025798498778748468099015503630824754611706843916420479149544257559107544643874631450348831614640831036756395333207929605389934583612668563768682424855325038988148352198969733517951535542178753680532863041794548432672111515869104809819451021987303840789557472078293303827795347372076431244829719907963466275044420785950858716861560191371605631036983765114096390736790624127574408869201178663818004945656146254589775797626804439711342981573731621539252889677221513290495781449611206846579037005340654508434008489668855890698038655004521749194398150740228803656669718676985042082027702554512065005682617187089327055798441813549478670791905879977850194143135517398736525860383657543446216532303295530778861255331242048205490851563212952930314576155132052384800575277991493238834479389349739216765944849769214308823387091137005000746207917954157869840292781030992120991353349453635738969773446089747458978769264595125215996804812802088911487018753129412167036181610063751162163734364837193614353218904444814658337537028009731139185338447177177863186913739379017000813976856849595473672321612953118820033867810937074553715660878628303392578624895389466384988098585082458519299186830998622141530640209146572967964681006931922384747675526895010109719221460205164522552281064249569287002809305443709616382866854918067426490563814114236489056210623262008760977142504621078032123335866918281554438682773390305537324083093951626924665524605648088823560848377538958882169471380674113445723873762183294872685389372677135658974908158027253585200847345121478372155354258288846003622801626580231587606741205118365614592290693498566944040467705343975290559204181705982964467453009271207081104561654064864872256537845168293748195160318595335515907536373094497159463625051039072840613732873903214927536959065719731590717153429976725953141338160137518998909977852511436154593009531996077999559042231967159910423377185419354068102015696596644999963652390580158110411435307673599316347330335046298570212789751240751975181034805939174526994173838403211075169874754506251917920106379868286186166999987099227386975932148203571327724820071683437361153621785218779742482068361087143372052946529155058452713141285498169907247293057730152204676194810955110621431218657290114765950051140893043839473504243815773575538566774416075417228686238761481755948896392399996288900069175179857692501872213347967353203013143537714103471349352565921967857228416432577044319759656289588201733808726585541086953389223043442138989199075036648731326963969653904276690395601428037536628424371113643164720990102195290022827531424688668280728242493799112819105054334687880123708515421851997685546949741201536343593957553293350244595254272195911115016086229708164243033916514270462801079944793560472704114513529904756045320522103851558968715009965200756184535357090910999749364273203699674155889594793224182993006980582945538692211750243994513806217288214250232895529840898849502106545774489690364173180752278079630301206568433389493297301290270931889794193330154880325962028109787531353204659556416464921249386302320216641507784172240820079717782214302551618034965761041551884003796373281194660699439661348306797640930259323752083223602525579201712831224436395940391076760342386446062053577691210732187742413790617946743979213629763037374040320358511403418741030076073249442840453255765811779723423784309878063435330027597014780619848722666297087011458276684787650034337538321463707707513378751780168641765630338908744422919800102572986190409260136042944371706799262159344504476345535582353210965747289302390982884122378005624068208181237526951530415313494866492734166693825799680466092377474104823413243185191824015547678246753206512794834481617807443623249950532071203059995790270810492045045243866073650049909660813922913532161080046586699260587982718607316027985526692345128349796420115922698338214064461217597329027529967739455571588007864891407355471439589877855406517598722301197655894688365569641166477984964428254874401592435086764012454528091541556028544724103726721703249139960402501710525807219724442463576432324748619263508887196880562620842194018105473742754187135275776554257492348717271846926488475178101958779290018821450806427106717052214057298672863580735054831415225654109020036668932983992623103635019653186934968088861759986048554103875791593631411039636929404412548497038336210925382452429729521190286667516153056557151869498428385899259204665120513574980636563430322989202171305172811316998931779709982918997630643479760338627608879377307081285959226293854467063069997458570639719987424774712280769824026776270145371559017210511149888811966835788308708507660573773548038120276801184909289993753664865866117300229882203724185529190774890410258341723367052674308903013035403613381004491440095125290804806509543025589141500838157967077809549456425114984986012697833894203599159110788621453951428783751972688203107501551280040069058799952914338783306203035313194125503079501419987731907638001069531647096970975711113410767756047250855808767568225505536800263620218169247006552703952240345008693019255111380787102433872964594919650183720529302914666191750772851305041865265774127092899805823298554096257473090085386481006517456424603168483425953136461530677563607600830872871575195113990229907779830005083013462088244326892150094606577651394590198048496889154026158157035058028901582595546128088232077110945613486357363555028555453874179152164521451197915433349022918511502971876290402309384691689220737211286212783733827733859699432961104227418931487950726890214067673260320167791305664823315359085465904942684029175855815228729961473094562329295785830142964778674584216586716506623401770944528627265411624548319305543883360789582560225871810521263360714057515624846530194973018660220199105118180125428768027519524291483764817342524760267709116011133086507817890337373109812434037641387909940647552119771530391641463548762425196661197043809922540408915604795887355967372928011510941387972662564562849746647566175929892269503298280394749579122244441875857174625354118875602597512015581289601205039971514912770810107976933727880927158469900566469936725203489752427361290150483700145389302062634120321634292588847122168630642653202722366834133455892729021731128490738300296614451131856610418108915666893355551124494111884120583278253392071092315474090449092293852371441071263280683871865489447771390322331705585801602663000499479674103661685462275566535918142470753447311410345046038333728200692918121709327729271082123109782801481063404939867215247825308698783371584676982850860587268142202654538676840496766134694515766438882232090608695156670998065435684489363461410291327752934699807382408651529020808286596087891500109794717979209156968952476224820698216551999697935352322744095368388325833232546692139495067000801284195865863855656119986825978803712398553836267063007297531243352820178970807223170267813914196166107614864331078674127385456602091557507349434920086972973845180673941593371657393654032631687150032900700310340696284748710594117089331986675984304232492279290123143056214435281656749545301957767730711974140246431428485971988027427205672568100704954934508728739039618288944394252513109990807518150120569222210063889586961101715191694137314528164149450569106147874877562777612710970260955428111652567727447377180304834759265243368498246844058196733352183323687960288712789894102538726779890680828523528339749128818613151229392352056206041010157790817172172004932366553796840868802427825989845634739240920133565897035833075836845856720945888729162395443345662387192801874432018411191444912748039363226173809527569091535900390091788221636776619549470309330411767752003803629301353529827636231957505727489139180916811994123329064410419578551766642813401067722582532656344983461649296725754961858546889785404328689038495266044184465135061808600744999321397036860931421174296670688313321800663259152758368251416160678683138239849472955245812633431907533851275702358813314213712405315612244579536944774248517249938821870860506674727439051397936827798132868461155078606558970975271977928230755046611768274234465476710542108621824329545728836647107048536841937623324688074690807790034062911771318953893209775469085718391969389158368690577297863222557168301213574900402076815767592431002395399448511075818992776785072455841587793103960998022336156920424810978341760495010214041930960907598477643441487541559482953878931087855859101440182360696186538903997212891130484725354557111706130286677264476547223522933397582873909255079785631139404719010158455091788530855959389081934090341340507180180199433616801025799387146953197339787223049849258291554072205912595643382185839599891357569837033307192738363400267558311961739643140126462355718536111825244226674558312500674544606173727897021239812988318386996819039640738585004398537557503866973139785215768801432326709341461097757379726909882248984265579678598264202489016956359437079309765529991415202418161196360418910069485550849324213947411643271088245143925402438326313169580220374808970885130997305021953814968530019825867515855430291742012514889029543168444896061062681451305260869265663419833887975756728116289144363615147600124459886843978840598322207508338158793251185527895680662625578054524414949612074518459588706082073278812772933525575786008038299816772665082726381641764177947504908655484287055571766798134598232362382973299034481859306547091612567339536258760838337224669367001732963687338520029696206980881739311296665981313497452161082791338316185574520308069008050830269476541479743631698927507134034074167013758216998926172552686028222721906988424812772983566087880167373586732349937312642123291505324668890575841856926490555202374302124925908555581182304870425047432449752476118278326620009545378655700545039411520562909656779572198793875869322209041544831032622318794370554150597125453137441479943797948182162392275322398895379182114078795832579990264207576033187050378106350098161164592169858381288027046993820742967537461075452708565151017234581731419951882519158944129677649665791910797605691111788272245006663626756661000373530230466541760856455235767036283775584207023323449207695299875325782513925788978720621324185543729787247905862727996380801882446686621413937967603086058177223139961777380064843605949728641042314960059800352184477433772743134485593769419566896663986713392475317338827225519328359901761554200859245002021761886646520293960088528888724473067598598472279531709612501125189562350329691296183286831822726432918352497266543318985996231091141436958296529507975359772106722969472040857784628814818716382808955725585947228286434955723060263242476548092849446613266040797160629050399884180621515812891460808306422483304678426868792251593113281200312687392558279573544294362347835188358582594056752536538222181356051456492527060209783631485944357360636487075002862534385199783615042590055724322607055318799479555422167107337048507824604346658860881085068606187626196635750030009238579923632026936630819723922236804016271783003821596883034732684390855302213116050560932723889655035437716171674994067834969547424886345795737031008252999935007280120700930843943972842126174180133562869762536132965785807835582762366236650958007964128144095761018460475418343860017353466683056782516682262946267249504324136155744608055826718550396650069680002364671609027571172580650803512639170496715928618531203145794695317390438295527447979822613388794302595299917060926241971980259192734942172524051887250028689648555876262323332602456862191374643625052653806703426138581989628344265696428930954687748917467168053235122243280681572523137967280976695603902770992977620095718902832222360355672500452199009489315627674218957592286710505059056824202965184517082138754093286458983752942082938426714674824881815104175320139923580585850316781986276722952928393348313092298213440058216187285195508634378194945748192686552608984348686928547453681996618171441193073133099857328731935192900067745212793546519974414282158048619519015607447249328548643683381999154248055439451363765859422111397699577129809122605852666428299806737224847003463523529683225484659569064062830362751832872828201346341502321634252918592233061890414503890072410427204077062507201644449968284033727714628973899844844102526342643972943185433109927214522682192833396250152943086830562076841653187152009299471221302170492169455161994660737534879799240898199121622074176908952139776760357755011206329571852651882603263645791264953653304304084670782739211235208748529849553495997747392716807256464600109511500561926897902389787930033795186910818643553550808863500071314772911302769831160289624338552950059682565243850000434438148770829371588783634993329728353827181324645301735170507537301699064611867943714172060413682381254478956686416620956514833325676382732885673029579642069478478829553303304569667214784483127610173721780895389888215199957698363886365989992537682878276206786822125644374504501766067496079073756071281117884663143902501511048861712867543491589268746215590223057486739001785460259101339791439693216381841950208875664508859528988591837325507349797975510356103936338487202349764230460242674367589476428873025167325539783640095968983272558344025182289243498994373927373118647258452175734066863090782741051104568744750122662233830114957271178087985817204185803347489341000394498310760282540905664075675467201645653022112842414679233816909455942976899490511305275438985902205343234508006796773469181982021804970478726377536684367271789953220310325009555384625608057336230238662011748181996565858731741335499101171727744820680046560120014520197452876857251433854199508703052377318041045637222311329986725369374253965749159857041410964121774810442455989490111285512318452845022012331336701056475058161960056963197800774402418314362427828334460611691797788293946399432448073072336771775322628782365847135861002384402676070540796335596046566173175608315998381595984942449568946891694536967489362846234326369699414417679786591398741938357476942683893525674418548028485525145631586905712755277867461606707226851887167478049537143594124125681616885153825467989655579552509389425580628293808952302969436100841695937851771981451934471238181593049022813492200420649569894339044736603690310884976253840841711498359869995724218695832119538256511346249650070246886588216594283345704615689302728512973669528159804906888464530459862453965132224500502566469085470750331994362361614730764131558323140169681573841682919597828982064138317075401301911029529356529565702396715067641182442667188167873033736550155022292189682228314534896196738277585523987749818972498891649575396011557421995020574695013694935351892983650518038233251727458485082798513229248134107355341320899880786420628849352258626281989945400433831220609841618700451290556154121501057113156030229377259680402631375672425128797195400687346497087541798567247784046277056753646207265428312417232514627891455853878348725693216794979091915789716362622594392657279615732621350755995737222794444164669450548693313729002575491247206312711339005495696334759963181505659987748859150520233555591013624560308591634633609817434716786894741642019374900698715472500236036037809728384108928179431655173845178486969485090555198039887493022430796385452152347040860779531006095289778202476832237854429101880847012138277619292341165682924793595575305372216345901400537668703565091061763371547518306129386931423472274997817599086487213701253380826901698673794534613305669871267915701607990446880526364510372721310836555220813978244331849856058951999385831930638819580402590498323937874667681648841819182269913961513183452701705974566272628320835604247320422490331132901058531922000395074618618900238073230062396166838196449593496894784053662584565246920528215038775600385408752922751290871278634287304005724191139516262381947224088457050996392154612102151447976915262295728817729730207972531623754651926880835463583199481885253816998021331632747852651202522000054568986350309478736431476497198422514638972026067794720640365097406898059231375186797507441476819946000231732661007946352130892921320377259492525708836001411013059815821707962099569333504926555979827871918218748930884601025925925205300139423348303890249727424216498457870760533225073585950184176521569649709985101783612121935226816513853515473346923363040101581892811178061590527650386709622302020465260107882872262442999552884386510427087149575678669291891088339167187526111655093712191627274248912215951568835968722171152456184716391149206557715205196145200133046640725312490182767256721337748759767188612980666306809216639075376835913643155142641441153221308809651944060700056113851924558145426121971417302271451254174008332172831288543928839331726761671681475763851919874977358573996378172165503882592504491507382126827402732245262528273974093546895984290687238032190991873214705691365572587065246403386111332965333240997166232358094756907532514446130160422914974583459317470798922693384123000394413345737837961491875709431864972523184992900307414487714129963655760984391952878659012343177833111653842114803381285823024439587284067066161468533150637951137697809493178759268807559052425490983499436228971472160606137433067299160382142642344312454230689138382702816526168260620423125653410385587748248515933073611682870832414793310538669194610313280101284831454122018492745227180489623508689994253959294576032536917025502287189032558891593382895921066609465160120366901677148217491175324566340432061069712338616892586869530043010151399229457991176680809046310671550152467540591616682845507895854248198160420898366806567553866999049783482414791386886142812136752125055604650300553792140662149033308041425137391763312449682713381795166703251668621234405094534889837747411214767818326355361036533500672793253104767498815301440254924309061479679087299403795277876051489933511863912517155718909081477590789837932447176013167339961942919630937614883618748513802284775990767832736526701229398401268847098563814368010300511341192744974704559933344955701951111355891657794702914642348371327431743011930568636377498149509414001102871609975458227319649904639506041491811707163608507027735383337574197407810776733811685754326001480959739257961919614959149690274881112750861076772854409608918330223752336726107835798633294035949493878454229144046013465786153640126870303170338787719805607280870267667723744346676081568520250362030285226618980939641456478063939982765013460758752935973441158852198011006275088978604568349908220900166755384528965781810562941935920330250419909527014813199354016164361927951419456436335197023225821080154294284469544606788396009657356319941673457455607924584857086586157418754054565075521554215168170365565969235070846794220544150976623695365621843533704841035909075625756257167675870166125864326840767938013736121097924746281553482055647693282042509432028241853172605833174387195533536216394658373668505746922085849698316637414310645127765521571103966142360718867908917406580595514860446265806535434990304764769036366655021313789451679718679212047785194628732360647322864530394653809836270557145645486527747842255479229718570107186388231076097851112411322977770223714019435300204844654153350249966321509968704507687458700329032526711188431536499565543953354555826077794771117677295581143401731035458238045000921242521680636445056295375368794939783217277226742126509326600754197021102878543458810564509986578199133388132750439170230544721449345037433736596365080583488729563697164341901575365410420616082109135666069874732750849737170005755602896422612327575063073851258422140043145505556101791444026421759303127931616674952045810933709431155652679745236703702600276513736605291373961470558086790881897579571029695966469968558970947525353862494617464208377906602235358575631279603656410718549639066641899870811030309216834231080316536605666777170365288890693103764445554369351798960115561335828202838362652597683800400596342621002163645345834289934481587311602012771592328773693145560244727859419616092568927531450309979526972496752244324922767022287290588222425458086669567706715428528157468504529100553904939761080163227139363659723975612592953112069519609192340706772339878008847317879014595195867354703426248014921273424426667558358104891828375109449418483631254614188727155421526091335435089528461872428764648674718277910700150898992593570802704056373889481904951951581452863202372901565651605452888261396452568838995006155963795171136448038095270300172355950875303058805555567687457302314058709874646058699521534485003538375176525248013501771910809435027021163509735384540446040351509099504206794967225439922482806336917599211288601496367451661011145219128939409817119065484759594147267825127590606125198661744986834578773553601719670874375979154652387192781450713376711961963447517097100261923631013115101871506321147104650690603402399013557813635306264241001154373851576912560024193260855272470720911430380220772565760764359573077565873265692401305356332259667825594876773303410996032228652139511621521780648353039443744739479361149648112166304763267266740568382952254710618138253928399412052656396768767636513305399388105635468387356526412576050768002809034638245260764826233274373116843203101992410444505350934824606808292967947669488096619636200265567511102212706043064800332401678924506206478522449357906548976426533192700485355265559195587565406306757154291452604047071715638282888975840152837664862232640728165080165677365602966789670603737099535489728061576278769419360684426747634394254521390499487802236485747404657329518184176587461050980647729817579198673877514872409341645786433337691624123621712511487200453088431566277823099989846824204746868016001129119825450276310392201425106131654725915489270332669051755053642927242699252129448605670812945528460811032140490446074955142165900085987619611830593980081392730433198453640085504631181387496257949719276744826991554197071354740458756019881431847218479634103285966579913878158107562703920987486749955261046646024480500866089701295775732095139247226202066103772050866242050833588531404873294462002440748920343610200355782750298552037456540095232966194576503438370332482654690824100692619071295704592280744074393903668078154279276240254064095295048698996791341640458817486994505771238970267278025595823143504813268697633401616432149786999371608693184710133646800724357646242289212474305789762127818560835682219181776575839632489606016395490290378129941114395581479243132471506901371922507276048553769236762342982766364575736827923978724716663870485978947619195535058159027757528200380265797125084577735094827232855387509993888762827530904101262753349367028323844975535978048183629990691203741815885202606671864706409188323624149423710325133769477653993078859939929626916541194339096172487015246857158835336017655286311258648800840014471208407202016454450220212137854318435210962383010893868062742857571621428412429038807778008939243678269382626282812710603958257632243088523606826127077034513611375411473172511632320078336589319260225115130871732765446886387589677321628159688288817603514335450975643583616392170932764561337901168554736331670215436249353921966468928478978390802458159969755375105848985172780206244905819513729801323953072599348492445267684919693516334242696791358834743023423420301985902043314538676976695469354624342086820785707592722811766648510010867972154380356434039538812985672850512530196337053196748009394905810488378025096813066283671980349052847108859408291706677368404941207247291877019994119308086283098966471077004469728447088700270836607290193990713945383250430367249041698867496324777433828522855448373965894579892251666298680990022763599125475566013472006384317690519416309344139865366128570715218974460676065202822085083114060760848413875493590326718366700432806658272883467987582378834628671470745953471530910841617986537310976540162812729954076154238199058504083038124078283340136286994385660969239183219925836436807301428326819154310999884264892076602786861472775325854521108131076013372055350789806509274769592736182936420435098050922132557668349502056032399317194016247426271543964425873685279318217621989743687765102054660636702269223838129974645755927735144975521943322069372770825844013003625721668937349914866278949354383773866194961682441278371150158260428112375778667137680610050744039978006322665210758370784075606350811077648475961974656921939256084414003325301041664355219845269820721071496066077725702104995525089038484283840277679618998483360329368063059609838916993664756533667997117704793789636990023833490757806105437818935240611988764667391261997702609932417731376824867056877045611264068588435695387125236604197402529634206615063928483708466870324444546170260767686448813009369491590531230357982168796314622353716685435156226032147511479652462331625593099197793957370931546449946211906663403371242960583734149946946605228468998106934709239310309647361725539715052388295006072555610055110663603243996787551149136085117978219108016701793734399694973806613597390338600259195022233602325506276306480833044502739427722998502322971924784806179368021759842605356254669855079707385029714490647494257288949209350445361616189383540684910736743020112604565362555747448952962768075836907832016830255087698387264127810524720933071847997884423820803052695942942402360049230636948742410662290755652293396379830495984826020800397111756723769127676900246794973593336209259366000203161692173899840470791426529115021122690675102514932534783685895245873552612523715344879250100749218546184683290119524909805270579510809506871960539281462666015456671661843924512594523539802825418179958529069197936037409313418866437304457415993505482382209922246484001456333533343864107193681040583769672942532413276586580413020635477117736509998867315645112612265560982438370427083090784118727452752314739364008379642195620502425216112463082334521338685686939594372348372949084264024376387076593728074242107695912289127543265034304509850182354641190682740299586289525366879455730608148203032091286439081847881305843036689281854196968114304765065955883316940258667208385130443301646267735980826128162376453218200287680177719834077618039815319922863574333672736819379380505174916486718550455768535259912021062368877540754556689076884790039695620283069853999442367923111102368466542925919845311055088616984232854852246251155249138573049159235689509206475287265159833846971531712974030256462899945343275975431147177158736613708185216858961154944673241909528996074333702369876244738851361630975322416408646016221501140850078345069313085740606705808464916676604732181470599535156590568402049800765408804415348580585862221024485476318435829730457616646138862726912857814512422507237180870186610158969538155369160511269002739862458070536285426971728955933484621102131575283224090405767459717245964761382440557760852765507301123010614380516518982239755334114998685082056974913973244994192396058342900205591101551987134796138919634688523339582745954041685466056889847596938838549603315417711609887464562132346974924852705281869535443701986664371946305068381623597830670977108812881513941134952155805217306081745617026422378841859797617161816515108817206253925317057692277366984401338203717983821297909934149351538891074214530194467265965554142212114718352714277719853298207502706899434802895122679815455330658485751840347594667595773522452895975025315258433890912472549328780112510661272718863108338542894384907122185830641093686278343718571797147366117670409082728960903523505334770973418841205682438507658555009134843226140514581819406544806889373830918762866083246103457573046803147348314488518993610416553402836011946218944731410678611651756600225632103391110346115900850360719395359302551987861990049371714892259750122836711683321998992607713208437264757450077866581052167333110349742544183435955521728262564827769151991227617302031716359579173929717253899332879827874981434209969530650207445322300395168754459219285751269350289497009425007409573770368537550444725395181942826190876357485499838691475021237308278731617360883995260211892611407362676766121000795162831697099913080301242543579989899681984070593911522925038670940456948272190749257267127822981654890720292779058487175501573331499029030449212696948211869176614273960693092321687335104848449588236435602373178527519411839058123928428415377423014952248905197130481610481044598696126635772863887118012420654496453209606850164908613355176153502867331564356066184767074711096104089401447094187221341495670929176953620447808447603551683213072261375699896805398151721489552353988290846365195733486331043531415205399664152649794418855765850513942350083697031102522332426267486082478313283640931438453198844647317590102884106976304836351463148108811959389327673567009608763545009199278500750243103262949096699149118841116324039859119958217156064339777152951903433436650173577835358999414269345638572512823643458888128993175900990617407529733501421665427976589688880092467638758512793556895866989603283397535463512364707266751312719999451445019916188116608722810029899688640234274829697710353117461739347902859582914916623342137239854157779120608809595138847833217921101910962519816645882478427557515053781939162418961625171717381465569234153328804669696535062610371188822784930527508983621646855415437501169344927037313271333262669997681095130844811244530885532646826420485404000140275960479239885208887360272298096915694615611715373555120856631989185874936020435847669672640206816603796674953873702342093966897518982582268529081259960289218781739143985796070153781322568417967449391054191225543557673122362473271670471171946805877818371411143025492573966349929606931943026219191331816963132561181873065117377828285244891280531295975712623552307076664711477074848486204140537365553716081664394449139028576997369215929625041750586781821122329463180988422642354246450304842471209142305404827625755831895353624912822492534438413746452875797878932402161271854532691918298292726261156657401807119883666461675409426616299438953578045856637978285492128118504050020916683220266893555458350080685823466238419582520975688956556501668667626513635788060597549852705368545404937245715596208577014215588947571529594546606424048325938284286659073102783455113828771561584743419189559624751808504397190931495908651559301247166216612223831953295467385593793883580587154201306776701280960888443084964220342808509241781484791957988986508319926049837896192830560750062502813819743056397567374133697663596107865067643450200478240255129040449711535407954604032491955180228899799137197651503646621485734394741177851370013944891332514473971376017451872643152924559079795912401511957821924251531779671878410299411721929484712788271379693238126323723264940470914101629200891346336928054088455315168050557873902152123738827637314569508088534475829380671516803921653862437302949977064159684077722276401588778782216631603468397517038336034924040462390638357717738505419790717728291600072026437800227688803673675937881038557164111748147785611477714287163629953167856055336189803220246276003739117367237756230220885958813178415622449266471754275536527234028718687668702181796787735283212353870765765035897697974253967976498409114606685813744067317007748816683173805556102060779521745054136776115118274300013583422309586623086903304775876332209120487140964532986022237709455376367626663301430540930834058264150536314257343956431857289279735979644708956527190757084765703188149039220829995869300309970251766630929239478082349966512352973076374943271363157130472883412770127603378010980898991250463451210165713496759931649335636175621588116296782385242796026410670390154974311750371922403326646164393678116669389399720488227465057717750334094422956726108083734190412065618654216012916839640602656334919154306351557860526680435513246932437759740703810076918033615044046596388113027236165759568470956973278454159432987253529427377361634497273659327279598958469461015466507591018269703729365520634330634376994545129699197295670865317157695788727096263315692392992492829807684715557063308727944567849264331958998405167699416578505448675120203449525761067241916213096825471788507763671090043545391369203301311223897839767875105602228426285137616336674460177155896340323453813384416424872987611274486388333119133994414346594232550381507014694254702724316126256484637967414190027448185786750532013318398967122437984416742422611537089817946557723155342356358754886025172391440114701033661673501889799133791597532044579154258115790294062708776598778244486429417022438109278720478783692183650494338983136772888020091510768577670606572009927248685639924968065646890373307237567966143425024149395444968503611742349912941840962362733724874860021553530208725979203510156822312179135982413265433673615613630589015840852869619784998806726515138141818834918238877431157252372573141746174938235848825928001927915836193876756885020556748449572208935357152529913636004819149400137723595262095345894655057245423455452494419750510666745303193302022702867079714649340017114493958574403677094112016627578485037309857738374793244966531437638708603955248869829025506903844526093070146134552112375367577077774956466511757016169885651798392997729718832023250376281506495376911899348498654908432233575675757680784334470367299349653354528503794295649139032224706530712524411442107915070563733220239257255163315754076197378212378610106674867762767383814494808343541495922820583599293337461989809417736445476729820559428469191636180405562525413448390838052251400399904292214003545563398277085582401749056647703691411806098324167445446214011366059941762126853954103635811676916625061739248355844031083104185667905315676771269816830400719521082527271839975645116469485043963735960046245529785670062645883059431703177762647844901024672870037837200912430824212580888575980589282137718154971056604573807425605170068943385427633154387445131406396857536022558765060224820234326090671341862100265533505658891727796614403546846639499401184893131153702798180114982622479794960036962036508974816909890755660406442560578062298343343437459418955984876007530247764569025661744196165921418953248925729871782163984009159270949919912547856039357935122374350684769561482114344382450336428750184474280356011402481970838666606778527241280074658686531874955097041182320229971951532311322091679343032981251278426933292282061917904244683666120508480633096591561772340471826564981840249429490467106951350403051883603039679753793663799675303340064922238085822358578554811567569006099484310513653358546859634705918200277936208864159746300419320878224003307916973202365415208878500251231187222194526504990358825344500675842431102526042289294267777622849790407319948865786924640600975654319706227684728185361938704514052241278563903815131023355791999299040249765436412826809232884457563471298285674418672510523563460145835661072673274454994852759347931872529833487947062597072124400631241459697998203480974272307969791450474526343881401033989610661766836103255328227650515973776123034122040501960853506743464867547482408908012222374258927433749167578162788157076200421945158567022757878332236167028752881740510098030592823219041157501444096067342513550232038548594978985083620092049089644044922916515823845608631219255885742743265525321787745188651427106095411188939859899663465172108678507720994128967899487305034043916154646567825089862808794316415037545633049763486991001386315925764130007793066550850379344725757389225597565656762271500704912263050604652238239788559228663972174316418397784400957235227979942877448995820651292369924125782944730975479431643643388336072218399054842346776938013129779194215140823328944795418273384437433736709339479570804188849228268335575084493446796837183995142984688606121083257170471877402879393231936852639357047674485833310619124347181435370911277086448271615942787167516946770030088368355556926041517419921614648445001418926455774513169059882539164880310774164944736182822284398102724147736466120128315927782393432244807356003076977884202504743313419892919894312034429086473244713385847286974850759691090246230615016364074720222965301014069589079669432958555818007533415136501115472725096074023151471333553252339262705928157620281754215271813644285482031792319698927480243669641643111098327806928379566660720715273400153105729759492632344568342896779885131844418015535328636773988176285627619872729644763948264247057332714175393471275376906604788575656088316855461421850573632408561246231807905844147852261464062663164909872414013468417772975724653661120944713846636457496406688905374776472746311852849413470182433421131551418971132484324685272439319036853053729781232815011128578039954432831892539751020543798091251175692436441118848167069294294364035335142729741603304336710522268344047252214240231861642840130720571763041451205287883501796561975614360229783930348538829221941101298432640670551696121361289944240615365418583248086018091597865177480734321271317440024049636234960483463219962478552357518270525731207126634566795126344773326186769943872407477226426624406804438404994377111673943333506580363951713654838368578874170412023554738683860307836647606427386202184138581746852932093220005556411554710835770323569494636586154238136405666651146442072942007457468456453216983142637433237270100157785029363522488066164884476526033044382776769549651841214576948550860744678198985206724113816981369317394128706272149708885648431704238091114917645513581285534575390848848789742106373253153575477890563602687595444645591210938153911356297355214470017452127168066063311227118933897124519748645184083773655701433393678403758502513541349143842872031610916585417685889299735536418317088797652415156534393284854418901989526976001035556385284769282030337623379324670940524913939787876261108363187123901979317816062082400379250569466089247774000179542579410893413588867234138804710297544510245063692644737962428902098750737447294814672298063856078744713979380502495846657476127080498674329495708984324904347113630774974395967279300702140866352860024360817567909160462909214822413213740926406599644959402826688344940878760558233398964801696323509327210904698380463825881083227445843129136915385066941060153108526724153821579856723663485857290309579201156199086718929110228180602743359670710147651542703025223542514720991549835482989713275586782183675689677984881663372624338607477319425287955655318624648068141889273384150099717637459721312760851183322391192576473407327439325057303152327129195704547674810180153046138639992645003742717571695062755379812881573990518770790374165287699779894480487925054833924477707738813298993058859785310629257664902199083990547127082964916264019370839175434786751916691726231780456940324035362201449195256064331953276499652408362743005469857621915255739134717828166570197289055394825426750884429694134921501601139901097069652062809006484443995802498506036726819285683409936842770578145309635244448791152163841545758106663754993299705233027643192543679427299902945757839341631620768777514821801599097403170939553665091425632692947120534803522687165333131476974081773186751294874148915794970725542506657496635969107480999893090742078971493483245848685487537905745342087449127800871940077099392085845434515904500063929634310276867602672110727284939908200959521411004556048557136264240499153270834891527521510456352391696321942834912575349827908036215812779989953954164050697330011882310342429494905582555495012921244499289072033330632311044191916070618451035890556594628661843727256011140562191235920626887438276881464881188530080941019597711774487671682925397540182329792218349484061778674137176049920453660344105511404213507728384493877176032635763761322471013035841328355702927575898181303296059026545519903482577099739719239829981734062106080288796049706335215067062835918445920005092616360612333686054944387285473560902321362603021570314154338083523607678304001273081979417630200335120882940041048433592674379208468283190915000449451272051359788858890775583633580944347597495334234588956975081732313600090944529738376973150148370698463593989202667460996721054656576294297887019613087991460871647794683753093544359641146310826856804879157630328980408673841055422299638666071892410340884275795202218575156357920266581294291974489496724374336425837758751131074916298225934014504498803084982245806271447557819615888213126653101359498514684513528755964419347206984617111636733314850411992563332968761545261342299367953562570861758989057197102401295241925975413237331030596393325120035404495764599297840005888484374122646992394076278659211493478325358044294194656567918385586992618395756265515528640250164222103496825454172269080173374035390631796730587652707669622967271815309951426933111142852789257709872977881391407832265868476551120067305562936837642748737913646412532662970328261527616524019386985866512297497051941663137323424758685423897242142989704088865526507697944325446753781234432194760714086197698345488509678993563480380421560658692908198931703042104491475403136603696817847083332852993932440271173477028594741665059489958344824851064556747165008368349019117414229021452142249359362620545866074968761163724218757666621556028297853611686198334232595860449208880329085300654494357956539611435761246691778083929711448949873682743940828602544847704442902774483604251911875527044256804578341030388613896510833730703638815609339968757907712646416168324843642869291489022362010535968820565849601201007143268002463180275546694556673117225051398441253804284757987886912446114676044075353148787983793917184177240610052339364397220680676850560422004635557251722899963385813918048794769782898711385346925615194577060663242163627525521766001934164006126226165502358721895402492388294599984867943967763576510831386097420073014669955384718071739347354855962840061240988270107937693539965446847504339995114381036282934423590986914682367035309663392243522152262054005572970285205958356325074003268247320904537195544539053702665695275151481867340990716875818813752728570028714596111919547081668940838805361211761101470891570714932877885219982886179823157508017175222199035570755400195909789413051809947380472122505377267723333501739324111011243077810993201225480900132364147992320772812832900385466749256073210271740433925118867668038644692757622215129377195708032604369149544963899426561168736419463778789573550581285386386824128115817611201178714287473506944947499338827467365394221088816600817473917107822238925142672792488600576806221616317777116365675040529691541206083815631121180623150319962647262833739245330427279179135651120980408408377389016148748442613402364311126570793045485171176633165470600321971506836239318453021862473059632095223501342142036881580403924521910265907023674119043362503186341732120619558353278767853147244867786931148388061062507970113808616777929930107557903015971086531588082614910299410992791988585267695090224518227974706076372390490079260449341569028769607940451585967875985309970712591597498546093552656666691072853628860004463726663144576266021368465374589362458255535158384428673126933850417718369832886002100757021547293664483957226427382446905648047956227614300375923779964398457694720317239727000878661197749763018914936040795921073704827114640411506108214966367499206437296670812163852104763451733927912914754865578606453869270093844173556483351473217406323357835366900933849749013693397693317217583431000179483807203875805292012655682957656424655597350344814532988786883877657971028282509519225213434924028082160820396706528219270912610963602309130657756515410062866503894221830557167474451397324032473050824487544130049019506298952895261386328640595023806398595150064737063134074689770379440657494491328187075349926320644755342034758515185401833922971497849958505860279931372553997020810789080540948495635688186773476798142042966258833682808520910665082176702007712316924452596797265371962149608364833859166431810922894530009846030777575607212799366254621529401975021871900993686941783859460151230378449300139493595723678421551207207105983829345367959130184232767532882842429486818121206639068330009015514936734224319528646289441802950878245037813896963553712351055563064330467784331462817811453633805323624075666492059845782854183466367925865799635388149789307079658206471023328085584016678161010715528437711667421366085213772674320519461261254011066681765586477502367347409766706576354382183180166983787218442767457051092748383936063103522116444886266680169274657238189555288558552463820098952166021021726750419840295284875793557695781740308380956234364285789717254953860919940088594795316667626011887788102219578554464111979398757463517412475857599741139450453258329609124520911732088330322888205143102246451538406009304888596384666115801382829876034094426030022325468093951212118762784453119163527953656981469523443475223442681512870998611202507378645020804015264729834116500773634579325441808731624176677024245854371568281412532684086440759491425459761509727975805027983695647653348427803165894307613785449914405903198144709983042754103307758664658933260531581474254286052682394589248939342874402891031150959034421799612006863858733985031266560171242108293845045686891376202118313082039255101686558031150844136476139985683824680755763552739374440883892493568037948603877850624125144298102468384288849360131176382089143616269532452892921976616918805039036187959406335141710755694879451567291173328251394946067669838169092885448064531926208279114847554213092812812767019881889789296700944536108366278323415845132558502361798743410934744174789569963493839415459367077503464559040264657198881716085664318787988128996602667369420274982001950828465726136892447399202010636417408812579098830152237144898587389075634840670443869461672083853167640514379715894890733005330894565959213411411265322510668268429457456118877235749969140636867604361206855396255846731607496614298691233300887313088403534049576651723428312977842406822889348606991670758929546088346545127831160876167339755604300446830677615377932733579116433802646201880423234570665651302475906047771185720336574980003681223868850628349346578936258988286992726162620174360103504248028413222217508494898169780127687736175277553217493542224521880973715597092899685307177465901012578639690745369346022099245246729531651430144280007383126823784306474166250098406866233807595020288688591120687670752121676682305398976165001724048584052899625305658132473709739541630569751536226451452926206842828892160376890941292285252790589486947353718467705068865949983503554880174004597430316569868119102588278479425965334027210708802669947778275956502945548792182999006834295312326778406141273778358408749015091759354799328766777741140945753738388678481187445821150550574387067485416355314352234580360656239137633818579822775186871095441874642398832327001872430304597179804580550144804597868491707773469159330129139759154688449672515038721818793969959053603661710101461636512211382014522947810969013577752208378350962846793218565561668451043523093380208579474807721570420958202811635028841065200123018342831822290492053040932243331728378175260927666255827819982746416735466799160602166532876566450215558164764187279609353755985281847293645426709517292017940390755392041627935393834533326038931178700700515962265349907404061365319996099584814458036362342412761215288800618511632014136324110248558872132315969231521500254410242643461091559458005486747577737083068993773460307147700424172577185257198435409677482205269956688499751537486264341423505100411213068161726921261707964412015008588409392166743238573001854088163425195220728922562673539396217808613625442116795462796961418305583522533481983985568462613218816080800039975525710342241997460175051623085360357314839322765035961391184711084752284119005630821143513336407922264869497917349610395394515951926551225032325209964440487491431081815217122631357828524731703481252214019489546958391544142724114186261279291760822310722445292390380446595978530594992112968112313487516326125116850211057488355230463020055704505493743457207507906223677038297430588341998541186013230629656091954200749210752109410009374311238452533721324618765391040277784705081273432935738349859496146231341127711995052614965887968224743077753072284445480755337953498840725984053654318662173111799086272138141897594944050047174674099925066908600361644744804047801403694133505595850798255718352153811496593713282825755971745960472262309592172565025900213327003076933586454561565848835354133054031897389358624219260344392988718050556880650790824707998629177490931206518603628785319134825711068165358498998454931620911166987120199083093572590011797363118598240893256660742530240816600025889371537020310078435398045254340784407203878380741506213597563440093395777581539930647942350312463055138627809102682322413477222394478724525820061083215564045553687622275684334945603100486760765414677377169582873668623220629485565259900384058874786545003565231055636520761177163622318007339246650516312766281938287907489915221103470971735087564436147075120214666245936316739355438215767010831273828215062852808891604742533856843272769250762266264070192875487398532471227329034641663639526089090071803106358456124383791301187249480527507149814166908783853790645069848956785061959479358629513178559037714052768477976130931246305745669792974078776064419800259295501566149124389442626055065094551839986276071827467452602269388127491439699164717094861121708466446809277530040717465937010218488563445013926266425155650472006646982541590551819580892809342537954665588155042703817602077569826034833872507828014688343312320386436558001506700761678399656217854798617538999603063837041878652549869053392940840188292080365665948632372769030320112007904348879146629625716567285415725017914438245821898393787162212433762675372289010313247524727743355013611586788380530449827086500398785013119320317780828544029438671586624413543228744933629935690490762815432882879413574501336855972366311947269616008286264476197367346406965498379163211986684456348647371965252099891624289954228935719668182748764652968874779353761107430880660687399666398824373442637609725160829443054612614682074397629149421617824519132817475494581012636172466103246077910804453235812501871386036465513000117869483378212321652785654454230365087408533480130108331067199971910151470287648394727193461720140391613617480218428040356773682734373155690113905944417978168794000797552920235246672822625698995653003269706498977377805665930699556899586230427486307294705423915104755955607663939855986042700285215794228872169615792201108177325389528168976725209208805910300569826362517907334222761211995222740171541711459218973991461074136107870928426786469764431412224316513170619181727393162622864882255944148437755077529413932753110890595515052000677064206954327192416554803562942380538802679360737118515844337129177871567911897177006250227247946287197104018243706556968789653905334090964220488179308478490980866640961112728903537276203270425676466407126188106493355080529081939346624491566350808251113659383519459643171658575810849437375719513889581620595231005880633483258925474960804021794584604909961929849580011915263676826781527987465766026577023763684829403903740203886072964312149166807894006746704559539042693004761116817540807994135895280820050801776772494293946515724536233872550253541056871811814212071427371986938666148121857593108033391475210947515021822862410195724151835790663658035747948585409767827640496825626535381085767284939818811214928839797589976315962335748501631342704990022102567933897350097652129418437960815558543338357695492479834287100583931470402127069949504275185625853171785158469813949930345627898552676803633722638583089310750903104742656886315795424362303240639349724809512386962699063181008278433923274127400228430992504208190346872992919971696156479910555633617720990172647056114798884676055166673167019343842318470730438919699991003250638779240484325292659381218025357442731186895379214559010256226517466905555696946676965771966700548946758940382292156562257517098805538079083532744290679329415286712128367903627524983574157022728227801778399112464627589002999665305111002692190994277375965932480830161681038569535434826578752699321911029887765566698477950980474542388420226504934873317883196523164730173916351981580265023448112240529689105732905641601546712920014497835646145862982209613320011293526656647786096848114263643309530373829339948026297520523631168436363826706446668809607363738816425968720344482410466492061011378222367152588979212270012997582727665321291566221828045101929465973040664667137308659612686641029871239179210689834402330892250315943957188363063530313286036937598625526733319808799249569020510833423743546897802289676369567514150572591820082324755328521699052119308968936700006213147938487827952920375572728277065338877013059084064341153962462427787144335403366365676157122373841248731547707060406700785705554009683697106980414666026541698095337380750658861452547054453409490226091839918208044320772491643898160614275697859352459411199473757688517065744885293908912499540259659466104741613367054749069906691353923864697959229879651147200773306651683214847591880817434991473330713703608785039155554799973148989264606684309349230396844788481938507640202704634995640808494743638024489567071988908709246372271635082689629260561244392445160469927886071825159781952646595136855765037586685777029884315690741547733276754686958331487825714382809616928418586439076973651725213458203577785164702958857476157001772944449304522192489122859076742777259857133976922255007352461386039755027144139116114640777093661669092861538289248695604778409970256683622987629242410979397889665609204372022603633454891241007966932639454617575627124511566641927239341603231785416086541758670459984307795588037668077630493340163343777303939430009079534644934872143291820280276736736360576127156596187918741616084211573116019493497209115729396611892036316713359531103398853731789605468789661685443777140256655591583414601947218840782494645603810192916515686872628350324671400500357580046397909421560674026808713137104549066560495946244923997487539430041029921658922261278266966391350723628392948394663938541395248310786466907652447657949981334114288254559197170607754232263177654113868756426807048757407396743777350429454053096236039725549443366189379785359094739412508417195680482658421488804415606026158222571797663152725788452500340272233031776169934994906936563872201947732802842832249588099953263197116102583087609556097883083846140684234610568492331439788626088797758902102515020893242980121987225897920806019091100958462617765451585895478514944927537097671136524780427329381317286319539314244335033887003708554831392146500960286188098216039162902820818167689284089645882145401448504217765181884625144143233800940336344637674534376602404645543938848704515079768428969215625560452554133486647508400941923619701435464000091617880575326682965690980251069602717251096906201848674172133170805184512354609856311513940607430888793588432421232749480672145421635651479446754543591707660965645272932715823221873023239284084892804859220262773493381048771431657717479898266991372768529051451338345325766509276655866589081862527239022222622572001752896738656761587001243997055840700987707037257774582935448042678935857877720491905082790667496512375182521230658351772487479151963659479297875848015360298812682244738188936595381951911147213286647866518993238019174325639219773144698232781827634598019930175097731035508584724962437636936201710364823567770610172922832371087756379686727716963605221470213003461947993742082365643044022021214422373845548330974095842371536987418061486964102088953466469661344597446779237658909717707796799017726609307182745524432164275604250386029146649031849060994067246763069331450826179316604711209215153106030936300150903516057488096932878273823638874385333573790162053344115838986373067395399315466679942227325890758782895396566826650502922145716726629261431289965819871752065896412187213502630134067743254472688630006297076682015098636980620583285002303179153207382066866130620587464722377236887147225194300483265055071692473807995094711651881739329000420092127324243799748501290585176209593588498339274626988830904757384213931068370861830105965697256646237839880149268407154466282793796920450654266291283374715363766834441778905193818776219301967092331128432637267481793456322878939857786673468196578850119252151213055323234306512043164824479144539373257749305444644082453405975904660917853879489975341307439606241193405190112921520539868639286735110012778732549155063242330326216158178727945779894718163920185900056532958497095482614010135716882152558091868118246074644555891417211870915437212206481628710279644871818256689171652545584263351410604541776418981547450043475917640161865425197009246769892606160649868881427438743058626441068143483440959415202997917507352193288961593939370332169330313278013901703895882134647112275021703522228422639376315238489696295974274877139603400274881901896658109704471500491551885407116396342125576434392808588670509910077050668650143027288057171901261552284459382437591117002396820920593785603399603916747017240844199996224518988542923294182984457103913944992608146833888013112296847163254744400108461175725422969639425613542253292869637018431040342020950838937995641560828303168552197547937253322315773805488517223942528624228994267570836534812285801436161487031255559306511739855751988010705862691241844735084917446238667672318392673731913964077301402990640844176425759283866578154015607733726548769678188860292358549619612554890793172856907620918156335943917451297839004837337111734390230540353934524599202651747609740412878279919993694538491050887636409305127676415327119350500259799082518578144071451033447404148857581620927237588326199671430144012925310384868639721138873588312766891514379991760277900780482772636461587443033281880686583428054815542279573575311666751278524912831293275767618036261805975327022114237764730233100313837972131552491640102032547884508969442438305015412986900535623999565561146014674705654934526645767854084095882640323321840693651424492334070308941120114634358169629432312732564080523551350135314266106897103662294790941872738536233458507966138073915468308463411696214339563520550701055037942106293684072268070136740649893300563573821843190083182019874143787102076631503260471253369005958530873418262180141896474336977805172582011926376539636292438912981663539337585942778552948182897150072615240105498817722367895066571834872627135278998301464505742581190667987786642878958098439253400789220885125798042861574784988741759593846424586021421339266162936380369438821035639393108379103271295541514039759234506319186865595913951468396844898142063472355816838809827264097468919609585182645969120323782548239291787274165770625273288648950144442622761721749406926642052634779493554238716805297396614614553214508513501082622673723142739863498186947619651854238661058998283277465848628656620696345919749448468379804558567665729067435253325663440128859290583021581966987624384102200145740943627195420514439247587259421005362875679042180354647293534490276802733576946575372535580346632071822529843553880157507272436429344478527411371472880749758318170092146602042716596389951712298847182341805718395940474547664963073107014123535038251057347940078933323207602082487044228163146062589291909440289654539215312841095028393017023413962072550492384062211999154544544272379614991266477039753951257190475182318960973562503662240489006744009218538801229480323469931210583357644841030995451473106557458229049055726803435739891251552393566968117386945038076014269838833794378925249683359318944132650383744135707632269842587046304337222696976820562234409834015513424167597218252810388710834165794837547577905021758773308269319472660530026632392669973714884256913228047378602490480428326280825440951448842272363466946762031819346465771269343749256568637917437651561916369655705301376075545965478489370323651378091718802236757389179087388727127385261808207824047714497853987937102786419744099993931732848473302768996959817846781830424148255722704699836037935558354144669405869530619185217657496486925954913736397984713735473125161565133702788764439351653397079600641786532292816000720023396532200068176850884499070101519772107240622898262462756131938246475197654795213733242400472477342854535286756354317217794619156313091534808329698409060114536697590381974594565185007879672351956730277067954808007183824044095981776505046657130542771586333655839514844052262228742552886968314423087280333651754344266268675191135435148888896329972134987885901760691493275176886736204308854233339793603155398518408484385956652374494791622676774812344432671573276359877823655549567424883029869103352490730393629524830197150530360173343349178196310924914707436627205685704569937418807306296310804550506482154950343756863493750154982167926124536331403507898191411256331757762098689002179390660602490187815412081260778796948596817132705210288942628630820655218652583860793776834062430632699881113636666107424354673500139439540228714712755197131008976336283773080133594405902358779112194167191448530924626008392783836101290396542388055777583994217332527821388113157501831496790140043308865168159660765749492352842264332785038671976083322684933987373739243914231826195082956228969049862575491549848630400163307367767629796336944785840282551086989141178199551091881851689805344791672493681315766576843525595262850320232365799624009589880131831828117320214586875034641316608428387777161053095804129817065263671444357665119794004142777770762466204856233024023334863989276986660254865797431509569702070838803447065440942704149507272972544904496200253570612640999722016909055712849493463241665602192177263739028323506523042461666192338826550925116394883081905202898290092620952250261668256661766457237113535515702129901396473045911020899499183524865711183874410359302467332565559821651143409370667975196136685541571866216370201184175052875923745546135933090769612293075074277136356751604814997158135335599907784580121825328914732944313679109607124939758128051989601697268758489572422459779413468570812146093654581419577713014583368023124831654853947277229222360217884975985440901423130193091580777592097560743750555655176927160723112036968458017757213327450220503718830458889180881142548340911477379062248852257698837858770451043555638335998479654986131582646980442089732130398587200818086981148944846071018923414250162660858335933812522760399457755692563764559426204314028752526740191771575208569373681991659676267641131899996530283638477024750843930980467108659278152229528286018521103007479023645508197434288857698413341165339014857026455803004341612696466701965978824865567049859416138790111598655019966958696810712075335340779848239965867748843528311117470139374547172285126219221769181242047286991775751120533859082483379000582873425333199046374834098203925695120675535168499507860726296759712326490801090624627178819144931887117069484852798394272224532420391521923176202016190146416569634754532422014714357358274117154172523262011537029916964144897295018968974830945954778896323318312126856575558064902041800366921415027929916591220777701023148741081784836465759953856576395979563935020343883011967164238418898323891488251610881024256993574039067320879589129434541609370362468115186454747204766746380764162634968601799627695662491474001882915181547298222977767845565037745781851305828205117193177626466757552832890095555605433210187192967665767648589476577212792905963721147150431286380813600837948048353854620118179430295406230628392802945286955701797434435605551658827190577457430776884359226755783947825161447937091700685768616150111614501631739734364013757273956901117676450925431281475993238648194330832198072569987869353072635284326391469666459615356140523454631082657110649892538771685152162857046017630992899547496986179755089258775227736820946711275410283227864309774483005551712992702278722043483755320676011031303501638887473157591319057094850855072046094782071419089900796131465071002911593715519944172951854339295188764153946474448398080202076171061116374201165385534683109488625991666971943496636802498995447516743477057094346032896156035429358058260550651930924128721216700253974247370658447814587762664662907163950058733609224637140964031263168888585456577048937795614291394262454266389468035924015569618403901394270743911806097170831391219687254909578186926077520250645211156747045415896075125087961087525048038688849670878977560097024003770904013999916768511717318643664925177320385261060727826216196095396079082490484536084259197313950951026469501273801114257705380837598147022157336024637642173962708618011327951821554003939932063359238615975293574132434093297957357972951878590920347347452279138248818559180938128816838155439573997885522252227170044185999932370444821601042922460009836508862556804334577109967746494744153057826767278025330648114955593537402109017927352190619088618667559785372997190497303302880809784346493172629116308313567039429770448841264259185555937015495868309954825108761743652897267196048782066768603769510089354517152747585915064440159307793512637215772588418068346811578172493408740538924291833680091878014437716659198814420167715679516278439226850296541704987254791086767382205081642570705842534823271359908716524148777781640505641889957318089781163177552532276482437093813823720116532786721189690454528028535597386106655008084594146135690791572550015760763549797680648362641818970319177377121779804003999381066739932190875570908210838929187431321754563239553387528173204254807455918680472332991940384874161419882875759593384585911237416566786385105196117039209552850280004538648366235061825197214414447425813487377471170189069732781305974334579725017345899161557615211278628545827630820554693661381844923443469804707504871885876867156365185685226970716718456499980885854497349791132878311649251485646582613125666282169614773981436940123757133388308723227459627636958350951518534154859978115741110140890063645923290690706622504537117023243450296672005193210457871425778161109881269501680721224755785657325060063080698289068651018554866018576083303550414228250292284401700796244438756870052440473461579363770618922989577948701534015168718900037005056521884118419413169734138785767694671932742968861282618359494152371319752059472977928903288203656089455154890783659981271098256470441192293856662686799107310030928799354422659388176225601972840556359925771897024793432037261697256140040352359382125629443825449229980885804266564477353357554916201211049675728919054006397875627296898994931063977835534409462282868348015600043908339391448304148691376595217260874752109646806719993093990131014852006607014702909592048783088222160361141852864541320720583979743528574241082175029991193506836817347077768204206133702918980708689954474242858357154245018786458394341331329272004544325835413479251012003729274494307684107563016326462713400873425385387505488225356628387415671787219151871284368588329023677431723810745944223527773668909341327132736161950312302906120576232134753952202526465479109333223273012974959634639187282040054326746702770482375775565919506616577710012953629865242497385519182308575271640074083665063997552821842016495600215804573294236783962993667385399413765335257845946642516393261845434374945584872885379748051220025546669521451800865814285555710304147893963636849465924746011742040799413140013738326946192535973428214506636004666757442840026820373246986240065734862973404555151170357442968216873642049443187487944905667902508749186940005389080524129798095009888630727759884071155548176155693817837926172922361326509657350732364024645071059001453565189201390769910698372514369833399624734593898394246598439391423160424811968515167179458518981625469430249220610985212610236083727010168264747322359351100843190883589622209870232383173336461646027027719970787387810026069798706529466691786196794942591347749746480653294664100741624988191464046810593895795763172587294527848142543358411415532687021220224241638354063829516496695082330699666909672021519080163405738422547330749257854565254428822474167050446372831037713507518231153080531190116708873048763031463126442307213260189230700358914273532841706807685458584761890978312979727918741017256160779827232828577961819795290610188479579363281888657203777402256171747417999393455811045312610756555048095506130345614962141413919990356721553625089021804904493522121695204891153486769596647141414289994016230773463463799775590937102564055633870663473452623195741417178023159325647233083660650141335980317382573576626624799104560350277467528432325992995600466291932875187726408291869442946599910852872013054453130958667600891553639352436418819526811259959795339966079932134335201056490562099583804051411897909590247587947563270935239734676722945554814154228191450129907086422802169556841218776729403348110466052113808963639609040168705989435731884399271447115642348456612077647779295994778329018454952333261175637122632684616095560488582841976541921899822436951759976960249043842945419505539738834690278210959098072850030932261334169363543231252505065621452763551171030396126140150284822279967814244040411821007939892642153839522394829236053410025913748422975254430790540281532770859517841531620362680829245183876908820715121175814219667892995227131577596224106402655081898696807726036602582036633452851940247590166506095958724461256125121823190961231248875268292438958719571885078337692751148946237574921861703665983953984289637138030359856091730849979702775804642716774156723798955028676486191937059277940743455787919599587576909187795736605993661547735631740764395685511258195690494075105469119809387909342914195733179280096399432401918199352849211176404866497387758581498373171861616163418984983515603809572098747648349048330618704945977203983650987651087278241436684768941041480951091115373751578444151832840216004639065597337257412281398027531766651256209413839548767010040050811744997935928793791517068437080652732350980883989366996373649558296382951662261225564437263634166872899003610620428905606384665752656484862736378970362765903851310249702291584326127681005501199271934170532698131655500664897157443138627580345982197249186224013331609201909013421309613180013683514722210740210602507371870815432437359357546018309794395858264532080874506695716861611296880066286996055593834987700774738054686650083250783495515695045177829591334219747389042399461871682714985930672506075892274785847278475170839051911095041775033987853452143912404469678249381737988358808067417171366760373365712349234034640353422075857463201538045477271617925773692516121091309119784762315274719263805243237070918087477160769522887699614252578379218015324929052946250942931134108830033580759277926441820508103830963875516852856872567083169743891198246605392549045555462879361587015435298494861659056268436344698411707253642345397177260994274605499125897618185336473065850599888917903172566374338448718466180599227030783524056510054807085524404021868838929222269276414955303309021805675773617847655065919026215064909735954250241701358787613864724889082680396967637749416047351031116068798696795866192097327715452765124852914775987675287705554968543008674539548364714969615925067850120973035922584772751013133728046036470692234111198087855187823473543958438497558200735526070314794443253411575645504458971700830045272408867314982845072229079059797783385357978277094233625327276981863923103568641155235668502083650470934792628689157602840002940048735654905902580064253260269074782368411743983607730240587256736667355920444279338553103779873577398562282397540976858962542523661347077470662819199071813692235360436184060750374316488601281872546759212661125800831771575484936781883769592919817589953352138447387681989665394922457745339723828840882473069383418025056665122686271460931862328538965874011668509103807760687127401416954014789074007260238442566894020995198911723277366822975681512674987223395098492767486840979025472654868847526448161899823697193284717820154519071092824088370256493701994952788508400484189226612210517300889864494427269939648644135976462345508521047833348124651725409119366286130688734423063050917162972369317508990290749478988316301987926952049844743494543354066481439658708382138334592842569544581980108480330063114870114026442328992696192439085951408195110082342192856345714909339428770739904903583524840645685027663134585040378917818140315622140126780866449846184714145003040045517164144374160592513414698512838534782098740747666042742717544318628639871056154986058445583214771419293040387634281816464038377448484661459969062276226767802491872721471468867902261301088107019689852914568975539264594118301641855186293434244668002242331651378907960673497837288295002890321526592702136800654374076181590968345472026148545097242923572374050088495706696126434943423760817826768323438846912582167411823251048217064138311654804249391006083212572206030725408725750168288922997073776576679676747152076777375434492711191302265381946905431697343535616880802004727718297080047166608983112591105754682737344986427751483613313155669132674436128086757506661566726026890345829365368230685834001691125261209636376052202550639282275333201072224977720636485983119438618689260969251066901169285956534601252084590125208402238133993986126082232328936334601623208131752996601867418082831191738623899458945634565606583594895250690469256028361692925209906156871961373045395984953210051043998045478784536686525717576371448536465102510819924204365824534576226700887523379345103253467339278388414435008454636095353348660912511588594721249590077810712502448655698748261961552090948276218102495951313680808710922824143025662845483802831272852273607309415681024354227844984051817585666612798918656773116613717075072994401431161520593415973600056883273444326202711060540912698166079942525800381901615192373444540174892662158427161446653127627911981868315762720829342458227147981108981788200766131494218236981858545430838392991282475925188048912290256783000720711955210316040307298184315499265520361114664974067968158891174307386956342868869469959335436405598601123651435166040937611672827686280343960802620264694008201682550155738538995090517043489740421773500241165741038668961836661134127168349358557826888680774785993581394869039036909937690457180082919405275632845336775643745040293817034286035366063589950261408802587318054628352420321082630143873715785567857058026155724717188664676653907486310477032076084010129865140311768117841791174810761779235687410950859602556401719221977433260191054461223204689550417038120953672094237419310114310284110479381746428480388714446671785145109888718224499464871566497936259646810852182588172976063017562161006951580764366951886772078743986803600662319025712788732212124835927861797974005096192075169254183275523560267829940065602313441822519860787813929884391984198932676559825408086136866557732396117795925278971296295574244856149392135974186146732007752538377515473907830396268801613989750692572370965816541894457053664225589804808773804186773905781395385176284198182215705047947436367355192999056444541106936204967216337700224328877571721346707503657390693051403826111584777355668128229526561446049907660438798902458667828692808220215906307875999872493730967388552949682401706444282690349277209021697511638637444832216508343732641235305782534357152985983482880397068763815666704652966568472345104027358376925059519271073068049557426687033471801735550394723623905480985575451646856521389678519866512457660694596267950704542065799876046293496677042592705853751288095421189929604974327904904846357512839247260581194448818518709230319255179256225925775619482885996153464577315656117701371192323293287537911818678456664643978374749811662068015161886108717369043365022829770291780467055529397256655168956216932387532712027836587480565213724205816333797845725804953420582260972725483896310454044391548268222930058083583858337880150441835056161417335481004865508656739923295747239678637349945476902250300129047430370471407777690918031246804701283084833460740209840769566908988583727796003837912469338515222405173627356383030285431282225632359025211425953706911671821223850932503434247254437300608068213084176090166944138299481860076282038232088902091519458028919998942768830197674437548968307818165452552178738389600455885738062548690741992287533467561910631458882322393497049746934404679152573214218966898542081940606820544007623262861457699739121824199176582930617424722038665705777506069349477070037232190101070963106301491943112871335763346716975233272643498189274361981262114102999351237178436939453241498282689858423012874955851204750712000082399887426173244571058500079541109500555713649735938194003817809216429118508763146084727573414276218080406630737417003813425189949793733698661140738353150411033000566226117349141912746780653080542613270020049946951605478976838700912060279480841427734551950041566307198510834383162750361196798009901485806185583016567791136269277122888654898143003434552408734495307887527555189143898428831261419191805413065862134156427349057361211119267844949174183706484921820322074567700471915063678898617439461320560404934773180436027940482590553620183989287343520301833122185046615611509310677843113735518631220171243998492564731070927239556741789828969748763259971098341056249588540378829223084673772255107756022331828692631883581568434164591537014657067822431369203743090375380025845017249789298717305355211721978479020329468237259576137069703111064249950630442100484080951899669426539571544319054142985660089428646678086381744546900312469219529242057701695374339255103730813716408427097761704053575047367492259374463217674041306012026492587989596551660008620418383364502238539242934100799949573844613148413606713942580017073730073627976862252009878464306166882539672773312148018510694567500914831885206992681222514220773824668455471128758856890511861413269134094490367968562969363720894748377956494161240635031647710453051461874246707713613312535281600632180579931783567115697656575257561368139261038716253608215297775372984668559680212645200871657847076752510148889551761361000992979988375986190992274475954912260622367586179668976066447798879024506366657999512725626144220025271237745643732811014314621133177971130355947166459589811412027202583384746884227189927650920161872103281336206966012561843899385352456374221043555573918328655359679325841191277828137113573596463445030596412774732119267906108338811032923454232006150825416972985201263875513119716525459648582993763310202083673241947592532129540420798945888959094479514831415473239112540301651673144092743340094255509314309832429823905813036137967424958080070358376402416545514548478104640354805876293602056538196660386723925429737858974763564811002731759154213914131234222717458683969001865016314404489827388196694399247826029522069038210620377967686720606056941809387176865607592486855120929089680093315952834757350926199243125754231760677249862179410556164643661575947184132405181216739444424966628444721230195751479269719565566006634824060800470671422010661747600917758521534582349200240827539528056208812305877070488622047732242890397505164123560063198868374827421514377357631807280819415950547856287663643039365765430446197887445060742736120562720964335208603959078600164670077848478888869467899718313660878318950348263305201988664275569771720954455496091104535343635245154065968699693441901914376775605585525192736057928071283114537525386929760713359207123351902465014196978587349145796636464849590123645405097324147249510632603889753830117879769916757187097351317667028494382683083428111382707752592491484651487525405799859533269802339979892347108598830585489034908340848291294627596829729445744129675347970424876707891365759198931847271434930015726745350784207588339457382524791890466087021327563848478157000227854256200407168343092057917785476905483885950236670350984776295683551546991587752957850041501336875115737469797157523942567498029866947124641265788684430155700403162246880996471090024130306896815715017825473523416400234416733679022914775445232475508499271845315651921016932409236238830878511527337188182794681322691976876084905072890310063313389949730284816441279944386021001708295017379404486578364563028784919041296683814684920847646035069437090912240069441734299001464926865974136489763787470474570572358032179195830338217338684327913476570272568609475301473310386557242700040888493114559866552187850883285341893945543907182759579922240454146026517851951822546851899317527936489785555373062377699694709743076931868810193150672075118386524077356531171025287294618968964575311466416640091493119992227726000252960593626541641957836658516411515622022568524153243181084150521822572806116757182450967748395834114969476587268429045700888357614496383791101058760077545352619777986123124773135489138912544357761079844136912800593633139758060519170384986533068858418062556991173522092108348291693799933834763503527725220326960806944502255528330499308009037154653644518836943700823332390882827949788811119654441445642802304990797335695104540445081484414392593651600178400109717858906704352140173749859063977386484278822237975476768000644375427134820217899185041281231394511195322966544019939714442731187595723455157128257591927389040413943015525686933367926357294602933969120503674446370728115395955586606985428135757001619388306604173602526563540938952237537045133702926175397676093858942133370701652912715539842528926272040717243836666966754808913400431838352700807669772555048810933739126866951272541647015409797738916844649199611965313434786981133238323096473596371506046527412503170443076028883672375083187721443838666505311160629676769055563178545468671665059136832929907922246385382623518818623183826451781378070230530057235466596191741372070414090620573380762197135650816058681118344130093784002827979704804581774202558898620296763822000448196986352751614483626769440407455311801419647946172050653857353415586346294383091399767048116285976599122331620918782209096192814682900334881721468263575439526723512749421008814305611651488785838475314508396901694333850555962859509369049117013441921832215655345868570808058511333778223085057329604635795572176769494192966613560563770685023307938694615480197149859947994581880158237796722655192777815849906837319307900964507299282700963219702867875757374436071972432189920262744553219097319107600406231124174968765189947001975840857728102442453412647500915393215954203678388765238910888825337589627186580897290309379925884299203775701102672027810797801265443995245600500858196983367797413469929838634153039526632374346043320349097986033567214185699590474761923803712871583331900465353586662919898621816703846923143450613638807800742811660344752646984581827904973326023612432208183912690069572427001249465711158667095256613327139915150587530665560231228224556446493274318057337532911213277676951625492436389400554682152351269220265674379548656418216173048484345961615939454328093158728274243929704093893367949533373861731863477616151081373301575059339232315300215057514936675092246822421644929741649716159997703685574193550386633713455151079764824353301440545401046444821687327761584956492675328704639509332092422447966546110695203800779151237820220317646541603076329331846392679180823138612451764701891789952408557523287651604693698128199288275980069760002063884545380440927374502077905004345387292171914153204362315941564110656176171887432712153954264215611895851016704734420222223946349388595347744933743204968234719912355680398527520557078323142572835475457277475255957975346925481693006532701451807408585841122377251209373998810808137255409604577855481171008810035216126487879940390542337585589499027013489131260562541639626474131513171634744254034184444189105346943728472234443209128889982407117110282693780128588655307093620656042499755111435225908397623191000159028254852468063883733329371967400006936708238913766895076767185487515866014121432270869073195275447055199632495504288933518373077966333731480533579121736735008230974335460410186579521038692644641763066934510639919390308642740256664339075590822474956729182202398473456224395955169718619385938533889781541091160508086688761604990458237212966093170583053040332850537107633788577505073799678214695434765701175286287925151844653561910082553669557771694914904146268025858989119524894325968206246833696590782474725594389956809729769761430294149281408150224611550537171205074536477329187896646638248438071235684599796461479517946886984649829337841016207616973466237377787288038643465196781642621537220381293740330596864219208260000263347533749099270278425704593919909271306166015588568814844611056266478069147971951071497796210202332765204668848065466530638466070366018566815037660822557706937521062938320523130708108834666828716708774784253980144828986071647141558457699114303267718926825412772982902791144389604326860683909044820194133656142061531776064414485834655425385357994234309217532378875223723585489436525574191291807281909853353342076632616276279019660602475754234563913829573753674063429271337933336681453269619874747028620453211018606580952545674748984390264418500576711570298059365116902562572797961305846898795588943787052751376207572209460890908215666936843568616162883390277610076091851679866306972162020703569369406372832067674941848160126644770715311318566607198180475198524485693526478688303632352422204004303162705535327457705171657402761837530567693764480211264088305114331517650671520388666863656424136131189657962307999635632057887066690916162380588233928540896547187673559726625237966266023559217088247416222004733581532532127172165475537150243218509482004641030450378527960873533367339232664762544738209849151628335646846567721233826138276113859006442194688198554603706592569790225292698567258507064379883854574025506085582225820356409911046931788264695964062688518958722505607445717537798267425075462976095688609344043906168305193870204295537484175965052188777652225700384231202161483640831372208568828998151000023458099514407331061290127982343073937534118877565559263282764000714546635265293470215061706500790763785594832410324820534075483463854845477808137236044126547998063718062907112288458824423842401423428909100364034695890016438045759574779081141364859375776592739835700917043227118738692506231900812528898639566610358575863486904846698223443626065900862547138960854327371234003085160259397589839927422719543611222478221225163458016080250085435790878757956040828997099172845086255757998251409924970098747240583228265583665013460658175897425895492734840190996785443739766861209997326584192767686840551369917474794631109637201932164442647185107089336313419992613753678614086524659618925487248209833159267334612238120936180983923247405664527840591635758545801418599792685713545073092325398380369319420942849858847192443540958911941906180055551978207814743526493599669241134334524045616449273483552585248483612344669676510579627831498918913001344231486811854349344737477563023123880814096082390513022292006736759143488321361233559251848336918097084223209362099503628381313359942728356425459492895709819296106696125640773653021237845129257897914369059976931316335123768922045465417471292275957310238283833111739872188686292429893920861207089996791623185747250580822238845700685540221120431297214053013073436219477900892851738103135448471976046395841698739710949558719168395616488888959568723471191996746188637714778496909934845033327833193353595667918025066483545064545516463244456089715798361863861113846677043574769460262576484057706920057278428218713425389869191545176849034832670085041391095285313859328500784694627178085310669858808429534892797371256061463034448583618040289268888847411792720296099368148990532707062955629911095002166353641586969151262907436205961068598852557578798200051895505382450335959542497102627098215911641688513676633127065001406552122048462091996341053098491681961345219201229245840658356812722928788520275370172589382981014211596601720032605391119022250570228702652818166053902147434227803207589534151426484849144065841486714805519819442152342339247333836396420717938066451499834725457318832500002558575778835932787233699762258998841566758526136289910078442007806481014730424970761132485086397151815531607336473859872248323928136436879370075199505393054721781488173587932234516167167931393782336468655943147752684819795926254104444044290875843110568008505635628170965718816774139106843803088841703079866292260614448595610563031731595340343158102319913882465664119466975874435368185721899736133534304071410599281778042561975683947527205312310201843860767560755415897634462588289115518695972443092476707252028143731866188425142988801443146708253853155789545965366707389594548761208579829229527432762539132447561790805866992198784048772089592706232519965982535867348484672955450776598200723763285142816257152710323542967415235579187118838145163206615246946374314388873654812839458143014858514711476752531218608847919922096294972937197939288040687604954331073749220964679919846793284931039959322049605389425809331785532168484971213155463318380642060889678937045512425305090832143800181982515604763154121256898309325358490499154503465463192928217580208471546819419384682034841214726491997711349279942825281989479855913633911881042692976594556717385185601347172757226296650182675906805965825790928549188677602850538881517183308362248330560829640412238002514000884676537902519610376524975721059805352533260468555691437515449470070939931911737507636738154576568973967197211775643372517023246177458009923895186054054678560659179574041180149200262357186852243141946163181221540047580543210601170355201496940466606068951228432813226392121416633979228379832098699565068296868047583091620416389414792399326962193800080664420155345803694279943424846851586437580981392097385718694513485662455859728610377256098315934737063010276425576122113854220686753965789401113039608609997621536952178912156683230365886156380890038118792876640861359799775531120615083443732809867144435522866554000506835859110217198997754608633577052350139741446834117430161006274123330911461114792728231571651274191500672065199018556321587594196141876973578880019173938314106980069423235574798908971505468277701710469268784100196123427687717620178493997760484208194582991402084057959802968279700880245112267871279523353879466610016113164124523766846037137487215355878682030128487330416176986464942895612447564702925979525943007064298906438884025673997324217626706633235171548417538906499491972210815920531480430244740834286347408486028346877527901523292078005327004586768463946050053355715677384045357673301116915557379833468073126736088745367334647153353166959993931956849831306337516388966135033294256051219726114360134498357154444665219542000518571237556068434518934902662150201364245076053514598545502509657939175128333412649927611601440754340554208836080226717761181739938807662814904580457505963254274936185942176600718719579373040094545563500869703738444666486743817498691085499340561825017765089839560337947705087094269667884989091212846716581804098748891129415713388562960869766111841177899317945211532128388592356595520501529988505304891187914956383608069509677196466996163554004714474118295666654007247545556739517221926510179994891861444574090604246799001588522742466751517174430897562074043450504295267580975934985034982067271632249029726186324630236021762253052576476011161956694972170838027589891490661814758090578802542116076428012411355705417103937291881011545031876324564656148931800432516262649657375775393956033753392716877751979378725129429578076400625434592292818646041057470500823574883626797491721160360029171125417966838057921578709055916916196239182345792336293586971916115233454736229198205728741859387840313552856390402933687655297351809631508293459427106506492725897452579660759767836396434727527572036631596999031462045336092843433317647061109609995066131345409467569264728286867598348386664723782227856182195954655401898174835931892833236339106027955929401085613722343524448043859214423671275909884246832110991167384739463463283719280636530135852913556727710466172744403210862151262156160001469266068179721867842293757957772382501890389974214968922031835415452311372597218391352434702448152620618657397956929429389415138957402725221916057307311712662876292614362081690242668189692544137332439016267977010770692212601194462410188728555943585187478237528290709358062619690114789454160780164320982526266558467315351470790026933390743874959044939357422112909916873884631570158559710263688491840971528170898856641994097047806375076895735343998976291144323184791344785278007783606897989586288191062119569158813930159182157604269622470538505626420297411234535264231294526003752086736759711205496440664399666785508822496565083763022728140890018727146521139924056100194947857397660087256521321953033355835288701244229595093630794902683966765608461013665415560932588165715051583102260523573557454684884224774675382247577621024587198527052211962302231856585437484983375969063712198047254328561460710334455195476771470901215187518228546791486552977065106817246513912857697245492653776512366267511594861381229381595312492655004459775985322857156565193057454854555647293941126997310310828020878229303151230531616832336155330265179254720011409063047640648503577465592990353683640711222688727766316903240559751374700625642455754310881422197700150613667865061526502996608865600890206544573716928171363391480325450802395578177518880005295117513486594460640007613797572907539503647920992779914692479878641130586329370739238803637210798618041469230545558937381213670593590557613952243032522037033095176253867130413020538475109314348314508589665571388600370493216058581091031933492107935432811222302532702650937354100140371927470725601063305047738756650695647897604685887586458659760540123048601781526662706244917113445658792348408143534843405603998813863392669709203767658073226476267103934772708941424600489820183756079816208651596141831179836672708675998019845453576675060465385975195345756795926060522599197569873053327386437394744950682439600263585983298324923062471895966639823637861949263037682265925326240785541744848490068616353206766189841268539095947396177834138286428096577317039708015993125236462973185804332018653166206105373422132898009695290805079574960623734129572164632101412136647347837283439238074681306003530598910461326868094796468828112260513886229192894665473841269132469071216473720366682719455551694498330585768233857536807465452089875770717692140192912528354725476499724548013584562750466252751808030961124147966078997202553344723883132473478529719728578405740493693894003722134791541359982290336966596357529683488829372968698860431851921104744833024701026232528270551585746445292438713266489179651330637572248378718461550274666514870962175148917055829483785253286435436117211607904872594273113531219945595138268587628681769238904064047172793778120167294863149614442376490157766106743057417756741391740557409392980438281600173673172439020794721704072052513935986552434177785104392393363668382632583120602427507034519532436779338071776345604403764872317060279521864414216714020714608814629534717730227403442025186881199372800021858842758944431920698760843374373360377985013728620287788700403139438118395225960218918768575938192507779571374011151634746940019722442618660985217976532520942209049276684380757629897352170097483810917623495376117124964073051868077976964853488907651266290131376255167070191502008878849853314592318686519907377575008874799591247827100965302241750399090861058746776622168231656851187467883570724297906163644561083263248162983450878334632591548897261804936919152292257786738178832697417613560364069768448808209680135435336126542362146751977572614352583010349459616823606411946434735254235173086722487087951584477964752551143105817284425666238076491338604356229306035936530876752998032236658971472935043627642039243819149404119752558319460414967826163260764937995056474516736775056871035460496760662602122301047266909339114511782189653515708015634413905817549454183430363913766545924552761246918585225927464691783540036366252526478322923453379132945037982270625520214521308717709008013596303482775990048479565655911724509601399783240671224111069509688531500866334159352372368136187865849124522475277065121451600957122860572963212044143322429697103277792586798069278728925592565445577990496686330406051295209200543889410168392492500272676891484877893822918759169916202883131678337987537510436371710285744828704473942743521311960221018034102370816733995937705689990040440962288435682457941866530177221307559173320162918303064508010900132547153785316983631654513008530201465639940341960663297040547167513057481855212115879948749173897559392513522843654956575151036653095830486343173502901949287398141858222159411541950551005822020551761542052135692984421219533878654445774103468336114291716024319325391013950427441205413298190339510204635993623090282612924468403911554450701095611864223811389556067568965772616347893630770244505088722636640729590844791307188906455270031905565667261113640015005058602804495758495475813567632052882545590964050338008526199040707777591053032776382063471851547316390755318058696283357936006153282543252725309139207912497050182654460786354727818233017635651197312201345492117947203601319539786544763395373143724253700610476926680434094788708573594191461124739148683295098299336644994650828392627189380180022045533961338873146380251070263138078818494842395736747769748103480628319610307074507077914846862412196949319526070930344234013971121949851458577507303837049944898157995804410770547287175838151589124505164392830374086330533864310212528192515296781313782201053688980726118137958894469048036854573361047691193023844249627840599215696074184320767438102914756573309642559968672543453234820149888052179501623914077330226299879682959525117270523376079218292539151961185994179732077336445397569959340978292532082120794274145417304673186956146229349579430652617986936552844133781842170234125939354039951738713730312070003752721648608383028282000335605041242251375981542336360373523202995083767580048424327576398050945056924501903270355472430490160859840824861712935327900933670981284752968445136826242044905582964340410216010012373834770858484615445016334395395666357832847755978568318573143720354334168578324498917904583811308728185682311366317010885518963386593767499034965145194490590691955732498901000942428625880761131324608201271443414859420788535236317046346809379422624124230955471294833405522512128687543540564438651691795863274427373440195021008381741585893973445013264188567558469847766608744033926852296866410705207004806856175751511825730953310838306261342338573045993522884966246085659747968897080948378146021134762421577958937134511408196217064858522972621305968641673297964334883221245568537929442668208268577275834206024265132142330289944811169705351509646195831487609493150250333674448076652177334187935841645200855835955514400097852179743403727534952405858616903615093600323579330122431797226872602617819169127338710164762552366109527233186745793591766731866805641912668168527066168029477271421856067672282796841364966784451808236690785895614085239192807987474391107208827056021281429287863707090785158568504328017836823232852557490548547900476631995377390584372622727411006483070261972483985243595863102615555834364999721486433919022547723394564198871934395902266536507079241319650109634700069288949558164102117430795489077839593434371854073776258165848544619335646415930144360012845594057468053098591492368005320662594449837278219147716510588488936645266124395895426725368677617077143560257392460917719542960782495954614046764218483686670430394720543229222961640075080642444143832868458358993453826397513104626019232006018857163237515263545824700545572977910751357002599244289125931179479661854997007982962435544221497254372218870848816457094987446060489849486393423938316792145874631788196338301171626155311114669195505711040526651761274620278855795368485060445092207267117411760091750554960399201006090971421108290950820059461197141653778294166498414997817941274647892978576236818520688772505830753496364284350269061772368518912427076081607936802576080241949354736427325018549798810845091054094491614139200650450746055775999390252637488496104193195810746686748668238984721479269862860573191260136879629153325497590058629946114411583252774527663349583949552676012750132396924979346105318448670690159136515856499400388011691373319902654026003637324444803043962764464316134800135606709706312717029654995685158624136433078818107946464300165673743128384944720303269586206803190569102907276407638735566593248754812071764945230542675442620409834931718360182625247040955898119443088254079433408312290445734162588815992614784801970608057273836210787519178358105261096321998032354199903313269525124620558455233222006636529888742382239982845724248687780050227921956706852037229747069967874550567190176336315783838736406790604848545008773698650258057441431680105469316522597981426735915157101344619464061886917609287060571518575931014508336464766463545181065593162609441436489513367062909312770572336236232557546561193906681401762077782461445182476370069164768569554067103260325584291182337738698763614784419152349742523892690740347459222637078248439880188615786257268520028922954016950443187911044100746951785351163702828120170640012830366509721194714052854647846353421665236202197625467560370287750134475021503051970196174001345883126840774821255864485691780974939998158000886350286073123717641480265595448249734796268478978680829203514895518707791080842113495171781138929914749627101247240942346021834732255181872673564396162235665064352642301081706113139419145341746564777443588355955265769519260093976360458179408902987423052089053345703612664038961382310423488279306447249573953234222043224984284776073648321840158294619883181348110777559542729138276606363021285907855194804485301857785553413632198570101029891846483359383221636139044628997003286269667861380526022245861420164546235305248717835080233629123056673480483209467430427904399506710388764229252343567914721245356399617243486860211165057146457956749188549843803692465276777352660209582099217407712969750524375629939490598631120627787602048400190207974526576374070669862619802528401855588394858831519521712077103881974842219470081920106046026628188346905438910952108283612444981076579581367251816581515708259819631389233399375930997597497945284867269581460043565736985103442993158740308508067069493056193953261763111028374132078252336420534740978854997579124966145388874312583051489971941938847013025655821449782412448158207377181942456740030584426887068181142008705045669099252276117917657050657905109682823116286904400964288402778365759590847968729631935901402439260396014548408066805097583617077217039332799631922990018912401221352044852909562716974835411838773333462237803510879312847788056218604396982280086946271382113743891960265442432201400901259511097028238054384921271422055262074402574580596876304721544443712936111231996758236572015779860978822698399363634271434361957472148963330136170358519286460130147846142155164271481237164251190317722548102191235683392304687637233267680812809724918578406758434006152359025099356055232631068723844803214551661710145933174234932525802744694646045876793901955644681037517981589887688363686078217180303755855105818703719077145466939213867382547487211667912506340818762972372892347636162794423242258282656722296309510688840543463081151029730737297847764400088920606607006158326175175306288559516138141886259465534227301262436918761084426485769238431581468885298164039792280509993497921109965992296952562250271631590139002804706161166217592244227294250447884651979874670842233922564471124879980427908657413327783530322782033217958479042394188682020087971948116589282696589250805984332152675346518381560723478196934299165035335720199430976797735166205936791500280842943739214943677673483889632903939058619863625979168923530069242835130934554906900997302183732587335672070780627079501180456576362520764461858105302559576154040575306771631427880311819614639852903973910847342086810281578572901977237261281473570022527378567510754454134684931278120910174847859803364898224996833459232968093304000237065874998009624318021936446318362589319092823456488482781305615335586997701953899943553406343437633538049087478712745008240283024640143721344429524020656340523468588531851604306631352708722021900005040989331502612634674490411005087216206685895068381160188912454087027633946078797229447417374703395026520579781106964575706749214495128490146185437595486695412546801470566684623673160024897017485070122460944087395428653043232447094994096365447429143185341870028102440566028576148060986494152826237182950154192525524281808631716791368679956996224179425422352863731753278164634816572751696382440261822426062231111642329766222721761333966898744767848480436980559197417725956628833693949636500774737809009158770806298129021524277423653469445465141006782652920291294587886871888595179192034596378036726068473089741991855575057760297716127917092799979406675353737290150921047190644706847999703069845808850926925176742142156554841598675602434612757138570029141868769955904227602259579050138307998209760851419208813732549916585144502920947978929609001195469850366755458187590583715640817275795588667152059960617041764833208343925145773687737823850084676366704137119627463297041930535608811951466452674333615316646608184621204289319611800830464277847527175021050656266887445805304226770594782722231129626383691413722580486406416456260739080810588188079442605078265630715210920508551771066759308461202565110190681281393692704214806004072915969083372954245670985773410442876913672027758942854664137548059835017919680746997349057777993078885603671537717177271091537438211366318677855715044823896447578642492786884513020032063626966411402250728372795787257393337847655870919660372437011768499322997530471546641011432991221123884408725602129805436073687559840678456617063798258156437732457771640983793643612946605206458524360336448505403313913867807206141552703023524747089449864385325977866171458109587085883493642350665978902487414258180649726596143903608852265108914446401760691976570898151573036809330310742815190634041166265135602144470863860532516475701473980339099955513347420840769493032236902357570708472851767668717048339823073297292635016524665258569402534667349530827201875372396703289204181605671791448258172861261288820810788787737185313042904533309043678470017370289831044701237161792036015165315850327729845259263853739428774918451705110984164052976519283332364941458575142775453713992079027113010772860051752281976784331957317831953399923938381001423679589982168534298566942131272950039284510655640674195084471181346115766988554366097053792074908039917100010811242585858299557990392985191550956617265445704243974766704228035511103276537308045286722844110164948167217075767819683842008867880074561393301853893849711644387500560214317594071299545349901967490167781194803292482491037614363801653730048622500951284256706770147675598653071752639818957507697195951605582932635848078579734389796221314595768758343747075556648399482531740654029569463310287382634397267824512600303039760706580290981995315532130469075585111212710092474568553442270595282093535529465666629253040484980472139439635510998394741225568089044669315816080630070081736409356972840554371968444923445538664640515810709761721065055330691937211113384606737491372718911664437784505112798817413069011788476934731731609893581513056158998405953910700631346434005563274880814637979062622771477380975953610432520727494436207685738535508480430969338052793686800077824961700301249807936818960286307534782374935437372202088451707793719702207370541267562072003172863407355329136692276800525189974132102082551007954072094335305569063401003318257546630770728029254441583021638014564298354384637796126123933238144285801431143767913458267780616817598331883040104355961535786439143998488368362263696542873504936058860027504449163023540421714481294242016244417944605407510707940039121660297227362319809182159957407965293956859408217123157649598628747925001812812597227074321315430272696447256906975658984756951653716936780206982130629156313617632981151404838135288545201069272062691734785718914477383787066640477304148416871914168212603589581980511909004376506456196525054963444968679381055448537345747638090102447568075992162774912227533790399396374757535886272189252492560132905219212041363766201824927778552610810374114985833128712845317055367882075492079049555837734763482572684132622360008632481811051555882067738785414723612928364648795650647392433748670648680578295083272071975336551083384673570339904312374166266730896654584899661186522829345860351521647881475929442356154037197577882540792192237877413945471251743708340963783695032040023462288928955405754680651441447334127895464913891979160947339138798588807211832065300072729499067757355001254403916179381062632594020655548707954583215679940401974035320657049155701726375487151306034839070297658984828769654550493845013510421574343671620620170351537628366284459495529669213680794757236881519954827049491577403075538318093124470327178724837275276271816787984517157755271032870592143816351426281258196851743863168154416824793523753137339470922750436432832112104256835733471712521165434847876009257001166555717167314130678552453603679033254259038433163704826654712792802774200467411142045011191090652678413546219897698469353337711718350849704590323443646617492620545182347667603945589601474529873268498809864571058047626803071050049501531534622871927102459624765592881792418542567749469434770181226217831101176109773430429708619367738501381865033057051665284262503041869422775601657006941524561986671924071519299851048320267204204141512498278424854232751315653114819498638464708271757429199972180282017917682627915204431684349580366378666734811784459153467731053860216931979378428618454482723681569148598211836611320900603312388988222734412242162982476875402189828352530956721347021776352000922711390708538201664179885748155832332654127377747186499564460872010554697908577687790679618046579089563366524865123722477345211099605983164711800547360112992965954171807448341029095815772305307065220065915250110747113691013334320641421073590661314601878662031956390089380260584280572095945926130546430275296206750511555810531590253846751088342680546786095813777730699745380827527494744557504263256000536362006057037113864176163234715981337358373932618695235617643968022252755295148298187150959989634261870513910336295336873152966321907695561278816007175362199039883749432425206243262070776216467035240229912801552904793005274664031410881865564948475740712283747077639339570992385747196603653728628809259355964538850904176227811513518639543228401646028829692504548151123326726185536372043638696056032250755233753832388007791823011943751057968066539956884394003632762788789151742765035289886344143290171693305100100865245712637104997952501266931622065086913598841820869962668600564051163012997313698374231768278632107251269278004270950837637067239667576872468050074264383477225754974241153328325160776382194741740674196536561164381478073367050400797718808647931171973996677788328455010603238221939359447942635347480428196257927256523880845064243891610636762822875642282550588047033255825447118691795888906495414133586095869797765906904728592011803985246840021123095194679232478709206160565127585322858994612942930926095483630222810463142751373671033831449968495898035099440711467352451558413884570958589133657920650376794467072308249499985069786425611878634962951344863314444191065813582608438013049402118967234280619368209368627473159383641118935558023170769239831390178352834920460280858092770066908109744680968031355470594869044170195849931328500904582308283366711890903829404890532737596399055775553889439891869279469071447141732513027232162354358881570952925823059263699529905527488798541096966877407215696162707792814603551304289876252135377561895811095318638954494180443375709077049221441085997251995580727191415570488149908957645427976124093308371085126625149183106503915003197282263536316748112770504019233603194353523779180492419350389363007814888400380232487415244480260340132542880927634695031309005974489138514412222870593234494596826687230929217046172595441505373993058680388926886431072600897431247112866668295269862489206460949859197987519959131116567197159383289837308303538140130488872262413104012411632978200455911952884229158169843541818409882984944327562707826954461210368384665106939655374265571033520069806697355936178662918733428059616422930317560270824689295390287268276291774081815580439655481573569838487775303845131149591601918247428396539457505651800926122960377345164754202570264080895373276032696983492687373990370398505439916620658038925501166048893928923951220330967531342750791224211595352034378430276193682411096181515244514493502303101490074522655054439937819422448024142423803669125513163598994718222618703566106510695930592181020713163959012093595076183120448505611576389701620611765561674729854242965011208494498869076755832881681877303618671150532484195179635955925251294259710201393319282290607023093009287037550461580206068735178312387964756137058578880416686484494912609649926821701066742907319951568572173416621755980125934630519017264094150194756456320960258531455331543441912117133486921132292288605951288414479974090233526064374903331656015762605963209399178527837359075049914763873204485283626500776275991583092576226882374158457267206290736331952607964316211392378126025362932187866995645198903983349274938891342458142144477829392337610183309373386766074879018155941304119546496392048776329200573284504819945242432466476306048099605044759540890052460899108795740258910612103816014503346713976656428433497461113100854231778622587607266464420714226609218158687922024222190532484933872970301239677821105261367479264088793057411165705776583064505351106430017099697187085229089604408814385376759123184315390700392367995633392358069346007058362608464421489237195719206187558478292744605948880639618051905138506184381126601195635174169483744956297412355519194554605559314366095860976701453669586049147288807546753351044684687530921802665667196674589412234399621231171429459324069162484130811102649529392424645216163199845917394399137347485805090098136572108232778299075453367575250593556473299450244661982986566007190816630181541843666102265294434671781762838865070659900586374611945941796002352170793031672962718875837742432633826698419396144491220611625772118572271773029360657959275815701825176825398334049886071456647657387985268642705227425042568436854038841393620641874862553655578638022043327519084312570786294189169780101493888639518033238389272643923898582882058481483140497278250795708803710439706399396171235832915968830743733965549924126142482956880106090964684042973659839374309729924991986397206232504549428272649499199663642582952603618810270876537108294588414557660405805970412183181651511595281120808456197710336218876948559076609912298096789034801781965509975051711605361025395552729412051001982804877163495927400121507003314780083779438090045652385861460797048132842287971341142306512206347602386767913215401544100269518006939665376368490124559451586229861384322749382379696089943754514770499159768116011871960601477399745964804120915707694174444556189647995449384590144667358501554879334017589635112651243119537154279638053915883332351853407990967941446945029864580166946305842518310966520612077674092210654962787559432175497921993754749926989669563473766377607000855524460989974984450106553096876741882908712243236873186742245619519887033458135676281964699077625486143309719390979118885301123035008488083278316490098437345036586232054329764526454088660363989086750789677357986285339858743301819510935849757186131113895779786721682252088395834660245221714992801992782504471161454867498902189589889234352329577263051979908292431319399071540609854349353977780304628309500593741109246213209325870532469604090449854876374710587928811541004711131470269275868035294962784001591328840630696798184755840826620342500106760061701816245261995860894029813440110170436189698630355447704722944440195511134860146670524810241982310283312433170633519124938819482776033084563782056131630285537413986232720177855008692407561823690556991303890452020660930186132200223324392598785276691470971402896370076750800962489545966950423519902191020199272376462277987314014273872068567886268188213512946301719984708110021274394208848830516751063196522093181931679518783864231331429461464917498178698364923789581775397262312971771425264234558085841938421239156753966771435903785477532559825211195876139827385722859410422714426623875963181008646934033346597903324311026902670083627841387940304627043103807638528647582340064585662893851458026048179925058135727571871775548027646354362620258819359363268370541047464085717838544798138056799936418402601491335642514650673829905624576624447570826698097555176083136373578649181500341515202551885141272802005792726254727646235866244560730680493244096203107097291564766123662298532493118622524883668821817616474171902336179569930887145338115448366620252299476333409012029707540957058240348295348368638011613825522475314741011291250494011890300735029024679436268666095252260299392991646762985050607247289133123087140636818633988843185185113049475979578245468512487885028037455843985748200375519474263642527606652830947143755937239081511279629776447967237762451715717981811517769163244640732698848203273902672178985038256824804110945107515852476725488822972723412083516524267006764262522445689568186997376252277830010411490281787238319039113634765148601147849498736354048252416503761613631912123497589312180477332748108056413646749355077341053662360548158686531080840110869033216498905981994874252911012607785526508472740461002850035565773014480731225498622453540270413112498499618125902041090155841654444743339265972156019668770512258239001574546132638208270431957942928196310522915922281044216388859184799412664410167552375296544911035864179477341711004668556213108647003742463363372156436597460259825072318560606657934327314294727669024616455207230023977857949864446444606829531258345005411184913240409854521462324130850071852633454828779953873689775814763293373014694612700679380804801549666984667635333814966533564331033850899112587689393953072687436705410802580031079899987202431583808791558498718383818319944393910755948979921319566887935352644421556222447476977477536929096115936062193903749176045852744937459765348349766363715143812717311717872167440364957729161252278179051294576736534132070687995942087271551181830316773038658813831628930256278218641236255468476862905298650286613431914524141666375695211210152120539020746855899950057464126999528803619073362518341365739578120873655194144604786966571681430624853054661776620798125733914152132106885297482021222444391473517983217881131266608074195928012634253084771930334499476690612391205586324907207438661157248248273303435999781323729977967784571914454217826126026206770203724404323573078250269996621127140463139621133352588271375427607569594292570867406707123411264784780121318170646994087205497756598228215719097042834364764127637297340924076646822871326365238359810669583545390493455699450574705292405291045531062073933295220012785925886453164211559229305130495797532482134325505444152830996476024600670290781756898441546044377689263902674944895840489450950131119318232427438744530729772574239163743473485140867758376272122538270542719308194455663492629213275545759148277369866141183754532254079081443674068221751488625865279222377818980908811075593058369368455030752332610777753689695524123832260247491717364680497387561165831142153812001059392289033837449089041063900681305821806737559466043609527254634928944173031980607182874927899951389664466555269713859040527479232344500238293540069513173424539902979390298190221452471221437869940380444525160867219245156241405401808085487077344805689596273467236018869381030949259768170685412230875035027875763278674009550035667570247008944191814886660760662845233919081916313200845692901018993252631800224199566517444630454338926739484669666176513888533000244863194605962668203925541602097541347867280819649392599568913968696343048715827314910218829965370167407037044582979201537881030733189030957198746560804461363845550292385394626273311189836789230185011907085740355826148247755996438710988771079209435137385666187115430763394896297514203037660458708383745231794391959363598838236438506567722566837912755861999463025451917927891150545117884147618047453083548394339278419851268081070837600244078227631967814807620203004176157641650998291657873741271725116778751959207283349698941314999777013593030736017767917929650837287645796128621526274932469073295243846592977599686714470247842216423481195832999891945531746372282178599358718471366688344848266897229832915172238327906291131275793569849113595043631419857077799038624610098565564603022572388721777109404605035007337221573418246365084250264268455695983963553744336973317698163970220666927567574787169707261719018070727677217145366089611560270695877509330486992110607725714791371285922596165874256149468484883615233987442407903201469383928874376092247626856981471250867150402576105934455353696196733712495267634378037416072075297096097723870646649255754136231811555491512383090828820909042829507718318695202472574983508132207463450647274444185563021834778506886440162061274278144866552802859276816136147148798943228283671862745130137574197997406161777225249401960238928678537497105237205240952339547487063094345337500283552551671493747972923795685155667321991538661979875619433798873860661746484346780928122032966642465044118417214344923864276200547561539805657053642215535280770470974068664165142182841033704478757826412530066223772106622190991795312635666869930987000344746360612134373807311404952512239564725068051339999040195099106607977712610276835794376494229891150536576144002792127436683593124793911497431445817962430318326589654188151256683857952577710445334366203283406130843371242408378795010682900418740757620189056504160214771725692846531833257173058572615537562410089301373073958025878607615803697778052091319084119104232650073832656102019017235711759951410752659658206515019263125490624963866741828115670670797235277747149624068479316472803497492607960405116198901698063126552505419552237523012029170443001688723805245374931096302615090676530811416367950685956122468183431272687090781823674917770162512923800748438204759647052255028560878022678292023074570578278577879541056151789322581740839811270298899567344242180881634048602865052274618635379591068621188226185579736925703421343554612350605609066816491052309469290890296013033135888517570397023924847170982864881513267799552245629681806548462401365309227606666207708809651861324356228747325629618565544556808766229339048021945379086335209912502534215456533331786616264247371455988708570318445350323057516947894276007032185155792903504538599263113087485647865507196311220388068977474284233117952817748942592480488277343556706139293972042272318852088157467779090434805810523730701647557318032701941176796470179068498999124231208620955277670022141323782737291983656341081701358216243470578061615524894323804660013030117403079004081539827150928717906782194861541682711312633428074953842402036920800722791804475163740706826497917567625266106193991246480004169743682752545284799961338293642169123908642406909401170594522775912964220681712647683033921522531689157317898148040268784678669698845348045053277209127941214504001803673596271211198735789844853179825370485152487036901136187190511314317768518263493946836089791401017337922531910924293784801745306644537713129516932875178382619455850612925619340425793936808425892186273407254129245305565104082117711539514365775888985819397702467518838055720863294393172346628415988026639289870412048742322559919115335215846471206600587581008547237130533782499327085753069874019503521170501437107358896991245620661514715755514058592917298040337723034006985310843978232548435830069071747724601370331357479146966044428181501436950509138249979722544535841169822314086842591939024633261428149261776376771051249539202795435173184390486519389361994227329948704212762289641291057309473455543737625999838497205266321247317995999555917098445781375114312499112876854122799406977162059896889646900239584403867186900227689486544120346595372714189151541509700827182172648080713100637129682738512787623919428328054443806205611739283999925332705368501111254921535956125782613022992621777990966488420081916439929766482171642351701607278355870151844914469714447868604655102577381203003669454943438634559897764344993639499098644920622904433353897743921682804472801104037299836529887134402329860500217965996305661814555044046101180685263063475933367619067294009235626563154307662230107699588360830507894006691934549638361053642340746642668611935399415080351696368900757028937860168531487896417948920648071838784900188151399729527694051255854587446877517291757540263173063083439011424102004743731394996519570199703625554821372364955695638549357319459327535342579514522196954325513245246113607932443650699423668195007228118820571155374455538510434103257784478326410692304560418624108365796985790367320955901847881956545702085875578377436661952696713750747188560697345798477326279552831626779285880019782984324274708198462858405088075542214826019068488166676091640181700564103357976098770396170396236114065452871207078163050774818967620758826278344396438384177649774719354525067522883807032045939038528493903509684733636215215300496285591922151769806683846520771987008472594871699140428348813448469534304357171297312048105842509711494869185999639886676162270193546799974123181293274982269939571154533640876944131579472872015583543847907582308248464357639771957618321137993976462046686263133547669109038967520383059621181083428950213084867918987308247677756337694143587786870022633418408787721500384814294804449262395167530226116829960964429551412508193301666166074384357026197518549822117517521893377222341135517887613629914481294242237096654899639308811117985406276331954809067497262048215991792787350815546858446547736492552195957603550051178905401345761896247819296876874091481558318013890171992701220470071728033609090028768882366165661273562868277802286153424366871787217608097887014935680240722100095927683515566707138052095123606132080039026712227712982601053830157594803974777695257771519982571678652915510762345596782389137727734093589116458746401186252363589321889470031346525139911160506774789721052860088976086487755232999627520082154322067116251946164713891612267820850441126027821301204383962899280213638635274363388303310487088942234557533362438860720627798771708482792923124513363977557572836070747679464108774782111896954198511238609295769161592608157381196239212680031677207907180650534591934710909108915114887524219222366115564752242890043300149801114847707990917915102058708259678503396127363923017210645624208055738977870416276748119935359772371376569794725161508547608962441270842296082949553398583187787690465598065214900369901217758551695892038137366662972611844353794457891962271052109244535628750263503157197773738863552619880849343552980426239059071205544601248255570135414785290403129338378128021767911734167075548140392433746430414617606570040065634783827798805799108841314490159825574528697249776445447021458544170502197184216297632298787421511498213314581099017129214374757387219903790361821315658082974491692869227899810897175659779861507618812274400280199716612582784604385136366239609564308763552733334439886566666315653558094750214081574147728657548613918850113797872752915195575443343970328018663165530192180706629440937372751884623584176162660525614158959190917760074677306811504035964396053664599373785972659108649450308792963832972400762715738935706624499102700509761990557575001265454167253316283258049386767429278638945398577492642649418904196055002721480615883013015869560099061483896975057672297859064368853936593265025357817601666925144301934737011941290583260001659429065073605814160901455824405349917960267091151593782567364940329853886456528870884002916404493064386116294098016408100568478502234769151576576422902323527759187044622056152169557794420145326481233426937916980377338898912930453582282262893227536689239798845309734383308135191262635657949157365038233512103180760148924307978468849432466702200104726709984391378954968508218743747661899467814275640908166861392305965629510159865322241072728938100043792069779266559333936909810546487059192281051733114153896655312674555854054019753865406543654236321083345070446474445814887360564192621469285954296076731769272563224237615542733269648824969651750175114492370209075665583436189092276994726099457599036542318910968057768049452937792487112841378638526522619974501913870581512138389306516782370505256648822454255024908230500100972093008122270113362391785224854570216071779643459776481965624099596320496184766072874147352366716201140668347201553145714916617702480973900565654893715741772852573985039003755985476405726892880753411310886460093952566278204166315103884230915467430791310727350667334677729103449812982714750992364618635085669853758296912547704568046266784257440952543305153628457263067693653579450608808003658596665051944867273225357015802308849333386470230131146424691833742510170049853640763750104696172719950531166773659589363969027139582665321020522516043262076668392845770680518473561356475612517610615314469818043963683578383225029765672283517976154890384982763048081687817118490950155942917380789775784459111527314382875678869876659468423240926360130742716980262557406809368240432009536856834195719233710647187876205526150634300651556875060009848450936819338671675627642081900465929058494427780073118110574601414440484287008650430776320290358850836186361732771149397218484782932747587927286154724386584223127632275576433131021117670626548513999323524942370259642911379412889240134969744467138010786624033453535272734347182091738025735583629250794776415472805814280054370841354996243901825434578754172340198355402639434468293406608619192658401045789228603881963180824041627244805572099240051557223578372742066210446846515151859750160304166922537325960960073005936987174995195698450653077590354682820635963371506285182207107005697488683913659638850846192495361477019166518344908642960112063067866142426096013486325759129067696501002553255020548914714063773798452138286347489018966884074969982647652771298971007980676498658771443617497515143526636219634684745476582337578593624526044805343330691404688211006701793164739027746985584302486180256733872859044235966496931474261625365127293719304916979383862047108962463743813434966215363443133413267408298022879751461200203380118102483362713428001538496905368251801634789827655107258114860380096396744166682262784789720037070857224669654423339217143782681981357802905076724714685428082267261479580755618404327175025451553504820669452792966251389355451154358881051499091537584377370025548457829642981572988328226257347876917785972682895676727511294914595800687071795896099442360262874808441114270040552161554685157511929297577610512164760469640206826503388018547211602520011641791503934775383161145100729643548620029087330444553389820564427476392648043906220102378751273785633423315207274860158777503359442759318791569111888694954381109247402813660164921750764709833265084115510041641289723384321071707878355787379887237044040287611244704593515567170925835104916092676254536276705215169986292768067936548707578462679124867647992505881437032114835170138679183889798113657624132182696674906350608905738041268642059644444682399714249781358630841959358897160463244222705541946967208657562935223101788181921274025418297115725601838195677407602973007590369992371501536264890684412440648966643105442538622617443536969229854443106751034589826605989717465302439966047479635385174502477434745156051975138927496441546574612461854026139355859398996736224109486603231510620987145841061436671840036534424113205337390769461237266566226465664236272039576676813008327835059850202655959745717604811585129930686686083729233611744088570582783646719582563229132471616754761541164276830742034633989597576084958619417212773849594375734081784785065936868090489238170390320264733457171126583522835913997389624729012286220784678532192133571325062061358302146943174536755814109306515158417912476215731244776633612214192607609082933714272251460483199733017258167625845284753527799434917904411792977225720338447664961022440102386075987338108136867024410259965389269390803810045668788673658906016529214000185214091308938504173256536888284689839692806842671922837438577650601769632423824502803944485949029789057132162235300552642690492118276916938737789409187474604953921258853945930460556183264804197040715631519263444085835520582657430748606660349012689046664639828082793816045827008778251082971122378826872655728974138877205158087272355973798785087544725226899503535023711186517352754406255799348342178208354870437842000419988754023253192048114170045907980274647276571809575056634522697397859440899968539063331681913249364357088173881850534558129815600118320038208541165044478381769190666085891630849446080900405815044768136073082694148795713462642425213634114406600209475865478862110226842177938508948079377454549462181835330006192419050216488505013871533048963363794377141793252391402819400568242425054471620816195578303990955266688979982578004639158373049543714196610286971166317668851958716876579032649836447877331956831711871542896235874810933050308172016751176036240176782428832608033846484777109604301462376945144766264613316332363774373763708326700777817387151322737968151651811677959698422765631688023150873687531695593843443709632795940366132815006145549291452068792162142958054839555733629987627401877192441969358531460178249094389927876338109201378946789027085913197203570229349892770482530326734834027491482408841810166965474854847159278912915812550564438862142080560083099047732325432025591815469177679308299793417249517364835078129129144134720887061930061090845624717214030487681508142111227589759563227417582248619518519475787710622433604689509217246704955433905796233037603341104657480734819474869856185640035749422581436690436746413275760539226140546671318025291618815600076358337591198892149052624371973520848264233439099350698612421711411238930139930636417572107747729055665267369189510066760084324991468908727031044716683702807721425706812031094403774950716876896765348016560425628382611494458777985597832916770067882947086226685517785062542318531553534579690038971805107134005300687522429755717444480392246683933072511936673968872326400800562630907920619010733348412196048764915618732107284020367205278523611047894722310975666606011732211172632207157527174415827783293326410981909008837192696562605437084713511399015280079112618843560676844535611871204221733029833357029600439632825438513574490567088420653719955871637266097498827203599002450956986511248900669562423634239771253815426231394190457684670814453381272241724271140250074432060926316442717623960794705577488980125778200104630919099823457232893869548033128405617234522407742293274917200192044071083889013157515685756274747547567057497663020265548389188729388267223632175900586428672161484279969966310534416535683026389452026914235882260875711580867321441853760990560935930288280211238546311600695975205626494907920182617038145118562328047626143792130883430596386995757178420155850918819861842721905167779044481469111805427153511461607439409583532273259306934229442342580610481912889824241155590782823047336643406522825196034508269977987960017878868397813305775823129228374898297945333962813273511299850953946043189221730436978102511134099642808859176141923501494471532618313328424758642635351748306208009597272917773578725932048494273444289473618356629543622955120693267410437692984199374072265874948196685183872930311051174230571928788632582544364236302702590398328865672258946991711702852075724116395226150827858105471648671856307919532686516182301215329704490715321565120697313022095152762367721991269952669851766893409381958514654609281622192157880631770795185556664312569838717451407542803903706529952700638093026334642720980258086827997749964742452347310019581578583746923405772908881912342234536238854854433081600605208529775753175641355086559801259636492599583110036833038485156100580899042673902667999662528096576584584058233867152209626439714435567336763852018038566564173094926366015072806779130581788509166050322225179643502611466573897759698694564922048027223362383290482186316550366333847623220011170197669821035123141112545635287270100785730088850410918574625693704992797256588161779343720321799176079569162767625343525085478266055945392031194009115231755960221809450057283530654574858190390556014965739626628749494738428615714841708739864538508972514890691302968534473412545518464404714284783723137999377668452218265248954706579439039198937264062424718099092693338128706053320373889197922855369771199938640249595267327537465851475052243209452684686862629794014403882524509162958260826763307841507866318292744957641965070918929645510275093254890424727703875503214350235976472723248450352386806314786240243969447256131209169150604791596184285330398990951315710397060104015630366052053885444763215248136013259101901531093656916610587584375872205665116637853218628212254896946935380036613432188982564053292914135424439673037025117208274736485562826770423024316330824775574741614400285019984720577419286178046504971281217518395898873122868989638473806593839392528923134339641438281995382260696535845402908581418974079720879030660147421655141674771740210685701812833221743345249438402062113614408309610512673516375278602169394177177436414024134869294798539459572382621951170186869550979754219397568099270564419261824939393318830032781074458868285405535823993164180950866521861978625518785716910743940333966937375681506652819832844464690057750531934490538120064692827465708149803451683963462684773713791346432225481463476035420538381492260704803084590759762740373187312570017150423240966901562737301757153387285710853227448077126530215611231223624801958856211211669508822168164046753013066991986181280294147591853975191155174963760000232576568056247058471604163491759954619832431130476860198265010642791548375565504566204843569568642214789290348325407126531707918871659336261725488253543382000689104407364102913367805004017390879605982427380861725615275754736065381987790642105224519280790375455504009190846711236234858430939253482456004610746407409707851798833207852891974774190537056649350666005553037104339858353455674931428854150410668306560937583586808838168951301537180669904542449685425366303730352511951712836918666835982226703222925596006709431357805871883238831607507403787645397660784013889821787803581335810353397515452628995879589382808973925411963644265349998551063068739569819534908128254859720172080919263855819798871064357251679967599848599183459869034667472349551070495028004865831622663766351388263251426311056372009515284527401082072991593879885474519073093103814831240595093703744693219180321155801982656926961208770588362328689335722166736244724270778330603629532871332164672173426168423303299668426076028509305638550808784492225363268984124463574647999706844044040228837744491186072972026565402268845967727191185222059587779522136230881333193945782204623734129982209044430530390470991518571922564481057200290729337678899706513505078339968877007722441620259914229918605337451921634373077505839309574700042900091042354147695457709381233333848526609784905973085610455798256978030691842975062130763232572221204118362259454292010639104713764423954118123611346416622967322902896687323373882544026826378660086801892745456744016570251219155279700988117788338962209492496215862400476122111524311866635949020686327386279615264325698264645003330929570000565465478772101591947888319529372723914204052056321962695124377138476502948249307716011269488265126212425821686486225058223470384054231792720139461557529951768777828881045160223710672233075702138607525312120317426521973019037238542678881415921916401559326988114147482433000973029414575656685318040732859786513396927623016533272714062772074470762782153520082506255673872880957032716618486433925723578968887586456683019177426290622064555757584960503825722820201930642115423938481089679260294137989781127575992846407821735841857036610476279463476263190758084423854099580144829394319860120957900125221592031125642186210691279444269727912988892674631298771627961198352018808001255183598416803517703718463296130003437081842891100854251829056628193089598023286049852723790929026710253412705557776956313691649264333143584177464945899199677527116174383192067725855709860657355929508410558630330849052247661746225470250710139898516332739596613148725067342740361803633684946161333501495232514392941727009009532297015931253776967578914614252957624239268952335221050060713261039317763178431816833726794113220670610899995549824029734262045169938086324621077499784673314655640895971842948923327722692629389155632123231346434139054940501784340771114860628285009456497480012715388473624217740190998423534704642209104004316719216322510499298932170987319817451320938551049427260196738423134581888060091099143537952281334629419231457556423143700259844347996334674602376375662834822546012847282505133000280679167101471089902870611616729999339761666454707882252893456657626934650282530901849720298711744332802571455755768074014755288713498908579359681456598950242954220903219441621404457377238816958207253643048270785498716179640637341586879914001841403517053406506976142793636435845822235742647951223829221712831783766250164822620793638719871076563537583694620141329698316292026474041078553505327150248706753865269145659975602471235835676769298226267607591764746572431477143621833783884734999102187923450848034552970667542510509958893928255742898497124705078556340120486287966272333135796065517032561288477265431957319260424830535626591930472649373830373165252931781828869935897288860597823605799489392854853191386438316108217088514579924778365468831219679279831208413647509249619205366304994219164797098628120815652623487669648490985207270770907683325769786770609806212801741955988443179949924536717893231074561959845040696419632077609244818215500927529112297232770087459101637324293678754126268066399881285667361126528095302321371068316149434639885618550438733791724969370767345606893584188137337935853116352691599273546846655185845379954810080976590757061549408628872569096454799141844879381385004819384292503542403208392833179191300013301694668872789526812193266008481149333404801387832012753190939889546069386561282214441204869185703118654025453303266816721832960727030867991168027274880413847818907394094460939698094678235302122228216820051365382134822297908819334610999298447440097327187584325576731366226916333698316091622189501581042093777073490604390505230566821747481043820956985334711614805491077009190514397078773512214312705292116525579499051208047332428175784401724060241483393727505577032132060936433705761440494353721072958137910184227603497892702702182169851751308762723020283636878332502695773004122537661395432664119628831503437716471263623146183156331891939059173345088101023786578369731082486229641977216009916842184153242612151218867700303998055949562371158426904750062952308745950176547124568595713407061816676500012798269149211668550071511096725152541868358785641756827031426353977459149027287390792038421439372414703385047295468411677329987124738389363257505363988688585178819101055896144830928586554950741754817877840452156397192100907107808984963209549142368095122959162406157736627635939573485057223540139938761091992210258932346432550544115213211570875314520368482549060133109952982059411543192032392457814700266179602868384683513723532890212265214698401931590875095469829340484432127708033259745355644126683523356867732277683974531521263522025987633136552075673799950729855844965605645548541379450747413692074721482455337843517478344895201193980975302408338743639755130141845949964756360884904210602706064224807604622261335203803235109657782406757288598767353220520698190243401367470844495802428479530080723297077689711792164715307316026993355350929600962011690332935624213923975660203943036606799358681611545966090919475819603690249894116950349157939933046950975226416939433040491033559318042699932355178157099489481390003661100658058619298453605301578736743585279388764461710345424027345775273074555601917547956234584498231499717848764537617925109289743340230037097294590947086608450961452584323252340521155111155292068432478259528764584966727291028285616337000212010714664258215744871840081441633024336204002162788272973980168265559817238207545172604733765560966178915464309724051203148094597777499740473440533241357146200538169706090937764435372177613929244729219348305849383335848214284378008938372103386894589509708874318773096734928202802723236791483815696061895943316352852288743749208571952778844891252059147179091935623775444593881447153346445609392497480000987627749064727309894760705173815372012277008055207968516514060785874651656858209294309223609626184775037384173649654698016701016080265384930056936957089552566177554474555404405300777031535720874117522096416720765856147848646479421762781185389548437053781762452283754676228379903006786411759333113199077655524245997393403779452345539682054816934965096528087496985315440862291517360725708030366698426631545835668346321204566990758505034726262298653236036485892156470523914326840506978706207118899942005429879654871754133052057086667829541893422488081438272864547293600968939939637707347597715030001494402429736971400592207317159677527085990248179889998492191032142631781402067771895927786357608457845755743200020112219359421783482291699133744668135026949571350917017932523378844799284266963752550458592191569152090099369087253887474438739979221637825382832429756909562549284782562463064422882608881702504083236752952597025319789768193604745707916307815381015539674117720089018567429219122113090137428383139739930722729168887188201296422357649357435282179516297230470774901256528438479382356955680930839567238477871195037926468019857047703799887960639528238984059363322303293021922057185625497684254571963697541335147766758490977436386424207693832812613601391540915316888655020730471431805468056855898141409427857238853467206949234227454171967951299643141036968608294403730503617838158826830976005164970089670536856154642415751483874799868206205770811062766957902605817140228820883600956037686280685960294837792336886553848798296548208652860438151527744272153912908951697829329083505394368091316408693594843370880312410943299066012967200691088804058622034498695246474480028237656139235050564035528675217605812221745910483877039089790624088466478730673408540828478787237655280951492436998654860894601900447566670860615302090139547885311211284849654315768960457799091683265885048954033383653332377703968896549646378776614220536418613537458072755977693716019777740362485319386925670267944068103769650985516401315311411261129683289035603110108459725023183052179739323644422203095111775931243911848113491294807487655390039952819225590243911176715491501511762677648988961791306401949550006682966738261264116259035477708038438126635940807275178662571537330075681653866312557526764386284902591269968170944506085437483763498317993620688589668334931550146336426067007947999662313335619282071768683896693134111893657817510445413362952103446508233906805254846624108046130243533370203396888221731725385912570179092191618925269337103972602719015482881115520189489289358185354489869544566256333567673755346250828315681871060859893565921012174970397435939341379281279046241833279147251965282255275197005810600929887939581500684365117925106864430722472521448120968424245935702362011593437374877450192172827090977770759345178263733864943165617413597454342748433976590346300325158819037192494509415358102900904304430566061115443693997029987882169927713789868710853603424288597221527012537284720597596156748062498187810135790624259269235160890445426432727067132734195761435756484693856796600309431030614175191350337867096499494928186089750049813230388079625295621356434616933241730846005333545222721051055846976022900852726949938948987763296362476318886479912793754466505430579068230886795176905201635549334690797890048102974670605768246164513886404974532956315993447945284822501801868532093865173940493080473388850360830984876731187543734733785523360570583607799176411392967763769713792311378563744014029813579552049851546269972560577796312267747435674572676831454638985772434119248660985162320985978431963225711875026261302657573417945806283170783776180521965529923369005077989294543019196763080546255235371726811115145989944608212405532925284474199329615971919922922491342065588192003610825867411650958272767068346238221871134197449305614899081610277303516603227032486871124344808785898729493227227945302553379514676469272081422848676173252990010790591490810846738296673969987208390366245066387175919968652843463650597770100576936657484876042826049234596940880278207338511006956077053025086833690195306757101606654556466385340160103624756387076936147666062750834178088605766546009559887146350253803338634629945732307760398123403802838683917002572417964048004541785381434808174465692200143935285897654634155175368417873499782351573196954856096409329225663525071338271780110722769993973212755184413015919309236298106369374820493415429172240742672538404821771299465487845725580134584811666597737751639065069359445030038982656193702473323694392171682532889467418298978268113060939161417471669632612154017781031522931441853660194707850554517019575268676111543321652644093416919221249206903085989493389750070721688898325534493247226621377211664141897862110419551781733646639592955221942480549032030241296497319144182388949575772638829119556572167250293927568338112154967435726331654239263592450752281110449014069460299066716821253441244881342263902905905341451614727340123792574485783094207441812849857304383040740067610898435063070620735569585068924856408447980605485956157333227512006940096754441083875082852003365277172139107441823026561767450085874786606500499936158318147410481055950319403465070650938479259483872398234111357052484295812263407148634416447828263007295067535540240333903099974672543269755447332693880412962246847817509390607756828309873651804344235491662667749153870969641133543833993270978149675433342856665438254046725773980812688013783153662564120798631593265058597324428558451057787360177829705884996117650270658811195329467601984639932168080539054396647207143689075270626265942665408660206655590229673690813531307566321409255961862192875291933615107253689687015672428754055787740782860370366620517401760916380498456069619097264320122078997267694802183890852647502934856223117342469189934987990013972229622195091898279704824570529774421083677614233986244576145141018900317752366177418453280985625741673340109617475217499925367759267150321543355991891234471084858619267224056929297979556260579180742717920286416590022517541052261382457919791111703972260342739360546403271919479880045836017608027231880813000078728725941113330675448025333890384302664500609208688100367698313739835105309547097042669281503189075519331074805640409397101678092941765590289357620557097220065092527564679793559562526890422856474378843159551687418803840052047049985813564432138545530061101664954581676701230178111041397311039487835575053381315183067114369540411601382974560177316915481799841953237418840640181475657211551635001447079988386777638462249443367976082469462755172535876817829476304876243266068831358359722415561959801406467871477801403110241201097852037594198979180853249689086088204420640414575496559269370020214883210648116092227139891001876465993983679166582571155459926064725781344873444232580390639527286715365805251440332803800649323601435329897924628454424806168158673760687234827214284530791989850927828841049707700792180425438590920029031584415698304571681404681892341690939292181689160199339840668764101767856497508043207515462339848414587032094349624756792675649106293098725220331343542937831431018901936916747870143728729248746579267527513477602683614909448154125613994931640830742987171293422540868631695729171928192115314281989468306733100175177325077687203095482198784602580668632170940135770364335288070429076416339635220464127172833319197962695587596340983480024126938816226376727176248628415935428885751025021975279854991685003796870863397110389478008955748281288153546531859122083773599845001976155071296634958156994168714453940524225738508919480713837340889360012945287098561193838646934941218894147474482625356774906376326467287016309374683995466654505799165765943428057656922987983246318050444522534365641174357644052156604177171303771786066181570570801979623192885759597516992255387623714336037102547165555462297291952792463232836531806902132932790273725173095027799203436320503773226892439676135513226236560768782122915189061662405376040242559376311167629923260888825714777147297097295669154032420197138355817420069701242991711251011714113810155289138284233092657809945695475543366041652963055329150312778523206702603861151883118542014238870757108527072920353234029133352474941203839122701581369040464893126593943803920467883410024429826246050482857343220272780433308595222698613893460497031094277130444365250889836923130692887486436187057132460302375633273192664306742478233735626863056653395986266061086230842074171083749877860037822855200067426811838980590205759060609023806922764224815113134097907536456396341314811648028284326665372874963233405359089985334523082819776747769448175797409273554900730439595077192348831882452008176298278854509099755094790733701686342246874412560279390347341965372357143379933071428492747116026289891845355385520022209238380596450682713380020797549403202693986373913788597284222141890362095304921837832656870337693517108653771852259129992204159497642700391885449832205144998317449314168834566655560493786602275562315506043549839801855228509630037054505016960263936697980503281425306474246370295312178641477122104186255698236355485392253923874845867614194686627150260729301062305437996726913007903757317017410618599854784405144952228977615615322114455187542699176200374186880841757589439952048790435355212203269384681791063540425647777804911583998943376518904815009321253413416610790804976485894096648002740283528162877933376907103489109968539624201877400019766806086688366033476331103205408325236007029093002269104500895526678081424611375140357647392323249466406535548542608506039334341960634286175657300388157343638714207803589113299250219784483095286001376473105235301420229486078984474021791099647092669262292617650268147176191298907600133736807469354509348567694594440837700323646314571824561639020131187980719320260459857390891529914820232408296655814960290579376288026774912422972625938371964336769848417563552089604427306384058709715121958941273494095892617277793674194323753585986207657686920102447407626126308022039620730661007683441341168837722478217849919730968275411436373128503955449523027879359561766043952523950473124118185561728548701911225767689386638216926719588307997693955164089910312993872745866586828524503916117621009607534434160580169067137946753948766342812139714964415634766080071733628694007919704632068101792131043832581184057209548733168178097152246797947695421942042825715473453400194699985861765096078720606687219376164457001722057767838844691209220643859140526915704796923883146454192406483033139678904895414936137486666387083385292473557205527915647124994294782359959080878281659725687634578216199303570296812147009994425620364609306028638464052982259591172269559631201502276325708855993478124116935524973052278086478888044483639441153315300520511503375512832308383115589917469472490894659103193817420069776732601210517882336316141247230676370918562262363692190435951805969334638544514380540754226279401236946137425510225385027565923386284471831148062306196423931242274520061657647074870541101839637443960840754921541367254504196947165395482947723204417251070624774598029490422243850923491401173619635520635986993734836023153793241367757960216719873220767474370554029754151817386559114131063086305599249934019179400279101992216514499342168633725628347753892853225344182117954967840760978100421227694926006638118980879152477220852009143450999417444664040737405930650636130270622059889674079552442803160309841617096311312442734238432337457972721309071721118338934538842349661511646961452970478205834207493742754890186545736027248598630455780355970654422880752344647068397938744947924450121896373144494580072245827482849622740977577280554082860999304416511649298981829566433486416962402226116953517922030532492052537266097871510961368418497837352345079637823750285527100984235086753564456295952641169682284760314880052263534332649301784965041020008887923395467492146232934810576881739492978059374161884602878369311128954448564366594021295218989904928811867524976200892347671718482765310832466976349250071812930166463785563641924465619729150988822707669999439057247815328847640978975381050623669253764993877275208687697356623550152421259484503331665267372137101792944218782693258885308725846374848094622811646260083594256146064018292690875453734427214926504619417448282166137139928348551513152189756265120943393869922915274355541245608337663125010287324588546154848840658296497954217074022017104822526818664768149176451334113375241957814231065810064395539619794805421269946478496413185880817644208652154930776736386570591016221379006665132841206788411733527464524142982225091446085005499806864322162853488226695331300509105689313875890895631291315654477484644809287990584637731029343820136632932724691285771202188232280169750471554200650863791601622630073883159849757180168591905753834735741059893655098332212016510951284305972051572530704518860008227588342180876550045729250790557570618047306842222844454563075452006272860537996729064555449666957826914355768545036225486825814257670747550608687598089602545040260038232610109127020573891460236811738327267091738783617794405311686784408582722523529675970621299162534338776633516793516645256183093631846562428541957134083391263662168804218906518815330130475100075909868755202622718544433707070256601839361402343756784309253749369883626691837121692470817395333143140420112217425704884475206686213960551962521640196624162774045444605064325456578792837559547726908601483880868438198332877709975201538058089153628701923860318433952450248804192737518897474926014091118834200281522210678952496042441642118067061111561823086166673772689663405007792440686915739433024523526971152935119260990695979702184285886038371379274332062272448908746925010605336544408704416345757519979026198903019345184708113337227810536628133896932279579986593520927450684385392345075376762119256809736936335629751796441899531780904046186647999051002416540249971335862201983245631016501709091612556074473608078739306384998410059065670280106963143575095531737384350111540677341248971340644368698602445473093792288505621124280327582051525376024680757695562963791392563830303507481665531390494558392817550081814094340946662231232838660778175923692971212917301732392596935784549980174476890588395738250825812918327234776653643273042765704981502087702894295399356533146315526006413211630368177497938989203081071615559777298654005788248522252387577954270791144739618427043017673740635545037698282510027938182126492370161416861964260625322566693818371112600742175498065236174942871614734591884143514977858515309618012608629495643595156313326157538488893684211688160611223069815744918348113618456037348230797518336717904764132400449241797558910165390760217633148391705798405648736603394847896628118577676080077492755419406797846792343660671446797972295670977241798659732402869331903755468032359155937772640837102048822997153138733513611704494170548386654728259096486146073698612596846713685232643753766482623052447349917615683965196981384280805826179532026585754287849100628654876350975493724644727518739342623826270360215123211690578388314188361765029480785520102261831713632749885710486932670608812773624869231699984339103909204205334536621477108230267275172693432771744001426394049804384410534334984091399393922452341141211077164575214858747499147484402271848247143415977899802254974315728926759969924392919242412393526748172171153977874909460098240377522540412080327379888095763881112023151717291425725909160592708151079182571537589521808607083376843888278779975248245605629738314104890043120378197183305352699523648690931037880901934732675927743850935176403803901589625104523575775723241125073513847772698421568753270619936867903041522034532616196397631438698890330940530750880444939834881173755461793771285175971962872905697808302728245332698115771541045810210978036048569281886091062320653845018926620634269858890107929605698808380249888029762026718156253439498683485711152269064769553980468807783720035849490557941507808525303324750114456799421546490406515540170577249311158780054716493945320991086165351546776182001279682118830480083370001692464573216045308319549256879137308578337527190534624350961881884571717994099690520797685266508426498986886819861797432021062716186139359455382632936517605425876867581856379017032585489411395393687380124734938310608581213312663212385729863326396741116432525553352059819301051501480807614706871956920742428681095805211091406813249972326920065849579739811296190321845129248409218893691172959331800760380242078687161592945709426657314641325005660084147887560058486930711969660662806624484800625028788076123653309975894390754911349222585007935774930962958454109986905756046398728462527754120491844038930424704745293922508655022980803721121234671888427603021986826560086047981906059647368202937075373715812592801501361237544419679605867224944124183229761445471770277804567650913804216212925696633246509414656599629017978654225528984913429441707377123323865860894488800583035756615924416264035740661736949371139418939759104967129335225460886042000750048958444521734079532481002832435546089070576161677546686595507390131646392733857865375818432541107196054958832495151715233034545438827829442598348860685022226768171574918017918693615204092988049308113160706246981290571404443373166209887868411399181019893202884179073366827417732232186608441566179020471710117459610138007779020601144875720104758009663350935286140073557706100547980619602737902293189853428451104938934230042482476281920071149053689742355245571713125998174494365006842078236885035160976124438480273083256786404510830400388367085429661308733970968959088885654404470514915069678575786172507168777198835133346686661210739560519453540664821991568340139244738080995705190504203995159969911707593302278270356988117164129853885036026576758255909356221382494093963157231171856431498791161778044936802122002954742826271230263901587737846257325058555242506535420918673085185170065795010296017196905567263517277564897024677313555698193131646889032152244576763144117120071796001082251663842866076829362012645125820121693868492436871519953541409371797608033120371696328916458952363592874952018597159858843971369427641591100156938534663242156585551765751915333801102337380839239694130021887481044680277644792895520366201092794871243897492513590165133717974125652360509905272325557537025647296090129836238030661818265584836315638827828366004594591175044735472985399418123988838331729085233613324524177061431938440165301920671283680906001009520793767237604685765319442547712575714673370386984810139462561425120743964540425649758805648442059479914577968018803518893266160219321999572196076739586215751643264705612750804049162691369159347295135567724663205680749744039781565368688640453414724492092796820343062542643890039425984569960378067495708639229825163363420398761784168169583793220018824624016803754196514259007109011398594574310945131532156863650213675345556159975752528824386508618387600662947428672193096876790647052368870541073910295901374295196516166078254433187641536315447586159679011824318771007875931778643879092401434297130435325458248026868013637857322511344455171966650656386008213937146199178933228037698394891369592197932929825327545204342822913914900173246558882052657864303987916980028912174564793854958528004422767539771673467753069807483346589849802123382384094930643813681237835762383886469574240693527254872141835325618441438063289723648302869879774284603021017532014940000810210496210704021727383655617591095409263363353691427509128143892710321507547878237234793781171462471181919573128055373058206276659348326987566350848212366368297918743405403134470631073780173710592404649114220577398431715546175630474861802223530610361263061633278635733254158934739505665764516504868091792000234975419473128978757587957970597935053232200068844325603602145882499113870773423839492794084242131026968365513873903158493493454471112792665548484648131035229719809440852227174727076225816062720825671060882430280411560083561427181852410013990663465371784561114785578993901092702879001333205781656706622959054399368938840104036760307413349145813745521502448350758457726637623228440739468259036172160101692688130162959880157790460091184846224798627238189975060111983352959784694429534427645707957876056170167815433223825213268255268760059597348669634504851585810935295176926261363376620222191342021574763518491037498159293183759137272606074287725755298772161612359735036283078394899818633379922994875427467853212469470156619887543629830263148054717041961907414760861282460731156350361490698429077457503078928942549104787258336953082361186517794115513438373011918124701607032011881579605568232258322955590582212618971612347653392520703161963310746127757934408717739856461634241335098319808113859417922264080886683170928841202460202169021863186168349728055225111550546675281740954628549345647333759243468731939133295964416958801080583886942423470724548202338565081926761796911591446303891612459779006068820710676608137590903783424064183989542242135425190682054757679024188494393976106010153853338260466559474946195586376429185177058684261829220526569966763782849143022536392552175372538088149295008618011397864898025222829730499959890139080710072120393561684502047998059380078464342617070890778190613013040911601833153148613403324248573958913162932127398793714689888137992712640398672802132863231434680663702166111922634736112399414886131005740514122395877940124510526234921892269438428756382839160869126021682150378112343523357717824025031547146470832104262437131966356127857226704454725578336893479607764828210616281545267018709668608237656929109885972971182955722065535283012875872582741245288437019655945079036836613699953711699725989821963558064369094900432054851267829901085928778935306647003170075362073561873979446540709757961508424002015874987627857395232438004129349601235906995075450027997644872464396993810277877741827019336987407763591262676037123870139682359788921589740750322561505020257020854520318045832454634299966050013421535683230063118538530060707375376331092701547295451522415046276451780068914048069885274618042799499755634362287379829288508766894017761357224678985445101548437544657068794634080592423988613003468592845762659132143513255870983933937569388574321884135040111647609361392361049263249414959044056671981074217626824288934328231000129234498808285779286690920546294974108455965419600287986041129027060913506741355800413896597694047458018241124824817117383420253143314020783008815722306577271843581244244824665646449672580948842015604638442801338934562404306330183480730561405070307740010420799058829095058115110023957205281228349343802582802583752927796034882549957574339172128999393452284803776986866961232835704104116086285312669933340804021268380596259648624230581943214388406011779765219379312756841056446830731888901816884374086637923798626060282817602781054239476096679461797049283437449824459226458893783039629728481544745321263131564565424537334130851646675272501787546729773049595436740385594200803648989502141259205267636925236777967105398796771908167592745454945351089708335937043634764662927844354785727870332717829769777349568864525352966882759634227478585653269982092194216428585653084689578213232774751345804179565576255713122563106412140638737009894438782374938466805090968625309350758757050071741559099645966107025403537525457646943613479829276299065200829524789188426524348024852010405049298268386111032133271482870416728205338888473881897769341756583031927004363534935694647030442798283324638675452091579514496299178447187194605424812678032871822621881729085239808821191740054856396418862317279179956517332464292462149947948619227532598589780368648251158125735784361435111073493566855211806420906312694798852478911786291240462953277897814793076002841386601951995930237795546388528113232113065038694155234836673541169841931283129344086936282956043247287050312285142440281035655718004686991722284208325323917149623548971853620479527649707272688713473860263480472609009070310348577393698111960514431900863227102673100533956801466841440567241477371019872876074740171157549906406329235518184172498141836782936251372296527844851899792808081660745081521167877579149983719538287183018370950447220196609666215692084225400674755873683972257396728861218989622948751961122625098397469182231886774157190573411635235103119212306065865398822349092650524819279455842947349474719692527918181059462645869321340141105654714608544985273862767969213492669782110131777703896014366459606708109013298851848897882498568256640434455661262522967237411814807697571468032987622808825661824845099112683405511672640517303629980913467658222992934466924371033523465079059069317845766155913736523968452793930965056962082248436553755002728252165471782264247956128325415091562334967809632090983414981075764248332050150590199466356083805430649252797372266122247084518043716665590584309763246131601817396914047982577072947351308363385957210760932957014266568079761892534883987115837454423698423888351737172019320602922995589651845687619298368905099012663269951103457581952095343855296484702782654559645624786854762784507959974079406358729593195722324316033484919092722303400186208142990090416812756155115960406814968153751263483142580524898490638911975612857129526937258822306043812344962994897544182005115374780841220684254859919770435457690628110293906007924925443769430451815724716400125405405402771152333026616692944112220529939419056775998514167909681186747592408128976150381502231534353214727220101640801020450625589596379791079191151036344919172061638083807162191045374686878676989917600604197569486283108288691323382933609161103511090530950415996359562053823509822931091270453693843929268110578684929869945362463222787766112211209857723215276491548830854731838054801293365399176295829958217560625721741938056726603831359192463169318246478693296103921106724593547547524792804081693905303014504351462269205593819225476915035075207295759529791248481616796462449470567215811590048993212432063189682823370408923251255028794439934960769169997434825487230166558226655891974686055957211206320011434441623748939891606224322140108796838217743448195227864415518928455751745390178882546031812872462130809377116549809156924876169640407223892732130700108400915948681438223592037197888340119484082964324246035666814932816264473927101222274861816416991446857403621078345672301117064371373322394677209356965537430214036275985520842705362736126439196432210397240051819776783725226605914762595931955252875773278241104353008334250456326159657955512144638191170442164028977390347899091100794813626248065846442469987065761740818427009439890566163611808687308414165351076448218250826991825773833505414373887894916265694601202752559597659347867587823848870245530152119822289454560667158252389670270924708609458995901427978650880547521274858302966950206628604109636197355813398247083228164658529479063466021261268857070308028905668303515474729984052064379903895615946887139071890511895337381805295044646256839335450583438933525256055004539516283445676729628779846564012799543702699290653592433988130486931451772309650749330827955317137120930276160435053741408013655363161282540197752463929640550156351648850193351357217669440156038651398072534352711144286708153942789303751967366241260086414368789436335398129076945231620785305612155073502229530604049718176269436337342758818204414061122289806293717780304328172459415666201249332208468187833943068227109307453267926909019949541339781292056029138464471438379094527717862168856076163564152416368621918037859182542312505302026408247292072292983722131816815228778785194186926379569132959009412065943458777368094156146398915750168718253873397979249995009218401574378977035759601000248255158069307599295917781362348488026443943277152620054983265323455165957413195028384386252264409245992591948658748982416583945896417231056539790868301102167495501675138725559723868684231330499315217972932189228290619187987202327577464163120063242278221417771125768730667793683530944466493414013682619357850671982161319789587667154014214960602066009250787772290605642754835369899382306556067724655077375430663902162388379437506680327511644676757595515507086663290094777939212945568513833127472478956710338488020269796188534462770551311807570719086065635487323840724104543902914153874483081708841808724571868244989948255344463358754441589338379626983520852461973496155026789673503803423305782682098297196691490268825974240909970498664256190279901763822806587436401419112612311825984861561805443949518531297024920738249029933464979579192502682072346039368420103445600041800268909387755484072426054398025929567431132561438004818125905015574847870107711642895091551297507290455801163459436385811274679928477980617173025876024582186217068704366397517298179476511669663953118673555691035746076322701124300147388643320246313307240399706413129663584412849602414783329048636835979649392782767931402813282713200758520839509030151460969723065123351159900323680890458899423318536376723577525819544851409640659223331129261071777206517941014170401661306455704053291044057910797190285336251439899280031802969335361005536445961620509234983854562095179614367230759007507270222845357334636668057400109157593609649519540741561447156511499982931985698482500157725458929853043794146791616695112734887171534528672706333123322459161597138731296463134125156205248564363051889244629406384377791243893836905927278876525287319363237234837845983708549045965866147085809220235615283426666410920937667233765106847902481563221245509279814804916928370975173242372173056205207300343489914153673741032050148111280132386868906545097048622738713121984277627407176230754989037176931836658156943577761750321092877620916144701064532452446320813716812640529567527885029763693922125063202835058762573622272489319709984464151271072599187708639459112032909475107241100054777468842869156887209480638083518420653220472461020301603832038485435516217862469649861833721678361479112178144562604327800653404841600111430649640916006174589570624735146279202502283442547529570169980952483625401258583810810492981098765545234533208696829514066546756795575857952909830253707535874547913242219859482836581403409906116021795948686507289101090164841450643715217182171205111217753949994376251545077961720084063586829788616684625257726828896282778012737732882832131513968967057664849127260960534121332893973683150836443691793319485744267686836794124287189029928091939491695786285020107063736904985964879106629473393329373486336336449699366430378064280046307532423331213775142851133442377287881941086175221340033015373529915672074120152297753265825701591857683086524791630263664677920813622758189926780490375616142971403642705799753848394458553487885389552533359449005126706702218604540976024898784578887367039452491018040746181234764833504713081737746616601302588743445231709684754735233386939769123657021981530616340260015389676998517210969058938733787902780937966646186108294336279851897432343471618011689734873065446547502849318715440213707998018120781069388195662501953261095066169994321103287878723996308867308994038597175055887461818348068424327763547242008648746012189141787736312306407750258019093418612305287033678644785074246293538907180326020600781065065391373440562058278799094694122780716557771523450975981981028699817050378288355055729674028443835940362412934511262099939771426116023949500876709533214725043942491003237946667590119071669999504172565513282410538101929560089643278246597311008359761369402886855459855636571007503542956994556081108435617383900457575819874323036060262291509076551004833157893918779370872307543074619688284903076522856903949849029263695277843380985954869963525382362398070659888586438975840583091891137221013238188278934839198218273761577763808035456475867372643446536199563668036735210935292488297694476355619577080729271842759344053050607652543597355679228675393519417934955074387682343124584760817000104382590281144124896756217620568895321613759279101208040999870468384688427455243015558580634470286677056882514731139665153482321133255620376848295305556108219516485300514263388871124991535636502818394448730535163144165195957538931697864481987242587916004381420855979410819730774975924324740730529956369700727193510088157601265176166883428502837564205429473032898358028850463017873990421391099741784380868215232244204639888667942650490669837049172249206602104781053229179077567309296099171955537727120163250973836490135416448184976918210136194809137168360489583592570614382194109477818201111647891693603335327158147636668443551898865771520460432637828127995192392987216548433809616637777413378478846847381473104571473739200390786172444267136778643401718610573049182449345696060979349914749618689438692549041466398338858522705523407007720364200070735137380928476685509201947025293685019851977875669395480215072084333590065924705164747413308724648331823944009453088394665070067376569465091128690410331114710785338645337062195494109888562986462419976293985848212613705332692351952152449318156447779434200176296044654686399723597208562685958612893777455053143143161025176332528451834677569882079100710764626559234811843128932256722943561904015053822083348414269734592920041921980950990837518534255532941713793511499252218883682992888176232507775136875709591687532231012382743406096290233528175472501307758196765207934590446392080173959245246108144374428067223421595147142021749734982403479014315305424157230407902158229529937683974509451318082437291657960958130508851914452488393218090001080014233715166897179410937485083614187642517159879509826730343716228774854316785649010938096895798711900490119375794211982491725231428578968564684112672111427216296331356677104045088929511933472721538460418601066295416345818735277552667106066825031798604733121891997743744708413938514379228430679611029185325217156818497729512549325304241337758297834497553333341470966202716107993015457508560467445736999995665648246584014434158322418267272011646356718556486912954204152317617106989084621836880890078046561512297556731854229853782925002188490027945679147146546307561497321380729093379338513701350631062744865503291214778847757169341561276086411164485492685754665195997183534612591248115378328371694417388825059916700193081555513447307743215465375993290565596955793760980010802663198887664714492279104898050912364543282035601706305224091688148770223222648491706748735569101408189929445478485772211883234302073067856151327327964313094729324820571920533952749152906249452186340373516091996667056988224638661038805141848630526964942239875727609443943999122558549106820972236452718356825833558632598465749550411156708508379659262252333191291991980775372756725818216174979265645479524632596750465295473540800757878661992706135795581661121992032880847053896999055273432059710394580522555454398356267913968665156049822713552653275661614212739907922458282471773298151340041575025938294748305296916395646727991701547893204505135829996217384398079420211193109579722790050533031911017739421975199602609828694761571150072784011040428505982334535288081451530922245872419607053285947211767638550874368511122475236752007496316444735445350181316842560174224910129481624665350870976868331208065557548320561549173151466663740518154004558940590721528361129106021740435358235514243735525280858744521136844062421055983555599694525708353517698051815405544106222584859660003671767623575535898159137513866442422994674871460322004562860066374338563780659086417548615626632537870699080573063144417249669558792010966777022912800833627278498060878568511781103329909699337866117997119174491913684341015989227090365650721061564068766519537127414951648854586370456484644724956532775380175680760531417486456142147376974302000051857721295053295797386333547346055034640857036315342096140552806740272891787956676535228192989225094306576339891494497759673178529361800519055828937951951137718538594947594842406474041757280009237395314007349804392349882354093894761471289111524343230937588637197386288418247675915542047155206204038403324981107660949557919168638759435434677905822829823254291143836200887116412428054218485202614360609854743821093337734936194073902758478954528398247080216234525899229962602650885859436469668446776413220054505072242959825983853485671527039268955413460455641726405024097776840149359085038908966301181554363945918669961178548182155251213913921807513090160986965356542549651364389513040945949159966474654224569595649105923278513534691915597300134390015908421465661594757083333246858982114582785931207018802570407056167025435182203637987697987011430919526048382090112401277346459462672955709390914475313659022044218027070684435530850298639285425102534432434448745516208882338292703129269006250908916491878346903469766459023335123635713985231493700373846063546263106404058479718625530315220920646411684338546483875334638001101093465386861118408593484147965235702526521529930940788574058066444915022879961348960742769552098489688573297680971885296938270123920744736908136591141078516898592701841867349005487535725106135321473662292354307569766574877996155470693034224290553136941091762533259151743289253776020728514140585391646340363034335202569327312554140459380807371998163290580095978513566340543787207604672584080413963689301344591060891036921858188369760254337065924972740395600244193099794094908124131142916210579900870765602204792280878444745659029589542946725089595718849746281331389398817868052635526196287269152030755155773475278305874179060668819204535654048536886505751692332292309943022608116454756315255422238513627367793687718251147278799313661250704497267106443968485760354008324246952679715840867199609023976603137068687562375968833572730874220667379995434101842700534228599489657987794094723138184484300007445163683637179536612062533093685991049753514276513661593587209448872373066648338742571297798548388621716021293130116346009853170243388115407357286385254878309585891295334134899663809732434807205102520689425722505346350558582340719088261730132521373468362494841421951420010692385052835320908879698263563509245470349611606733775370541353052696993059690670339998582061583795121283384842988391185523553764105646929586535755705877016822385748338424956279125501703281572623431112626254684781861012798150013519433813977462530049933815622958730842303417108198717475344722134785874690297859767780479059591673300160983221458996761853916818438242306867276618109181882744462034108891612936475351311426002331429596813831929527651043053616566777910761362072958109915678949664350008018415571654419621036258287194958032649651371395948040466824932426659699788047011759830325202442908946207589479550589481010043269154664593171299168023483670272274495224717867568393448637099889809860516112702943968513868173559013037931410391239458611773295310120151235755151828176507795463420362937709485083131426349535796748189602025279784661444261912130998286162711801650060558092205578896694745534471437309828100371347254484142780923330027349397927986855503548550379918906540083816445979265913131571841894789670643663873047489421024080879490961364515184597582182941393819627004021727245597498876367793442166320373248630014759736690556425584451656579522253042612338880820190936546723897311191455369006343814235064496513139340614565914869349527886445790486836711699598099537510957985430683215143792892832332503994435515351976410964949152642452599729213950381317358144251338504238591106783548056131956570361124488819172422425914781761997892112262384501091383520333124591807845543547782356274544343243758642835512665338333309667370147843032740342309611432313162636870873574157654619298025334755599308750053764098538126197777730046142772751439315800138847329392648860674109216662943191023624761228578352835934501068659938238749818665437274865992597017514437730908173144802687329103075950776736939716355301415838456129517974174630395846016286112658352455663317591217565166498464070351691288771360054070062706992376158338836058092026023815527710805365668381280901236603518149274811942048924985478862923305808006470515439339495338222518777803792189624873882596409514635486651373936545719104033571294625984088894951328382547282138649610777258786010436342143781851472130804570432133408266304977047134910211667260912894256644661120770698547288551948699069863532344429718083811545716022967390329652837003011929143524217642984477778201713256421924442159276943489086599423209134511052956309060538471705185666594078383849199657733113453075685055177610002027597512113577365714587194923844503574631236277687284578168160130743820702836095045529022424277232372139349133458417365442490896192295630367067326481536211354821003329909987093119736186857638440557899536054457268427021907487355674716715668015738797202020284821864743423806940379221971707807431609567498174530428913954289225351263771521244183406821855499361713454301090287515195909190500469430398437594316000224399787867957470222714583785537666690693104530111397378030676636467590370908558865420996743168297273096341063830958634786729872629816914620880675204932276299415600104290017406783390936945039682038872168864105812597678104082424394591066089787174692698400362918721122728321464784138772400369421145443864330817461315922769056703164823821535670938285245453009923237890984952497187530013414969247954641958419454405799823288029761107041533862673155112657460608147634983708518207838312790289683054223617135712735011587358026728059311866871828725641628863888734499274064748903203274249757051706582253728504779699064769167241874473406110796552015680738429728790988425204136073047173831994731434122792386260623256451200175982520066204064729980743492425251804526940786179135470529313616329912415872865996966493442296337095085965550879501933352751337060958600968787436414126181514024721626760544355559907903526275463516660285383697846657967290199258091093585959929721226929480459452463272164784248123546662037350694588923508646488869679559888668738930687293634150633659557562375406495908963124536288348711743251309287045151763732055676397807280775390593734563531639283062661992349947380577401512920171525843694711599235134784424141181577713744444745722058845980741659616826901680942793548591913692957404949203927507777594254277349011300361108886028481007747633144505357368348861214319031596567145235597700432959323973212659814284109670927406507604140158818554998778294227079903769303555283941218244667799638161027282731596306084979611140221679381507928484883836177017475579473072261442783978807207445123593024714332231764523120921086536518451650630902907598027632634117801885680589456627751161425408319002565857753232290185602252086537359283334242064911754638983390173713788122615441646725158290377988628765978100692218633678519151293794681583088481750194858646094594553526004745813170149765315271935086653335662029859557526367596012245095730609638695143358631612816560361566551202739393645622598783498403868266576377869302570230276105293581451275789285629454856035298323761000076686346509992548031693921605766162077978353047099793249595509098360748506254870339419831806518400267955413687611282348265967287282561793306557307017510950917706379044547726729795936462322660596972875835779407153884981553728420799860351541214414892486344763558230448114167640134044579808213640746338069884321321928204666103970808591402983234615451710826117928546767874635700957417140294541026692332190057812779575586823029724466185085901371329586318740529446816933293030041007928707772258877140960250667668659921410252411295672245905790767277404580731953625293867889799862241328516792633802888225275892356233977685060068004636615789302607646426219128316297609935628328293559411778960894223986499628044364439713114481861944150151534958252033386401319111798374955742734871663439716452819993715835469371760902651704052562247698975167196437210878330349676250838578192397388635688292353768784937775951505407075118043792949242319019696194436577855487536846020155677662159843195890036192774675339955979699644924066133761052703067290211211863366545098430991418138773126325276047247335325213086916423780857833562102975011486332393775004680831983890116979036897897117064332025176629826159364462049787865946724726326595888489628096121239419228879050866786074093189010911761338556790366518188225718038252310073242160157007271621744989117611736231238039002921539224302825715620098579713037226794558340788456968795720378913902508870415346664967800244712357639410631831829638696073890388742571630163966792417435164218612967401389723089572183396809546703226876507108168644552189967176677645928006301299153855569537385168553897005460396634699379502518241155313684888711256101163793104448018637558686664902818560241425673013887314950033291548557100989181636840218436477220346410623836801839758498938261428978383602155604425435753796682381605700774790167753183965189021648537481429575086476992200271560052537344896388699691413141939866117375676380464509998537629746572042848674366841821239752711778018848094380569643870113775317176985857388657097830801260562751360571100097997380578558053357456902460508116268336173418269075071892495040682876723831313573435444060236333377931181527846711922622513625269584129632000102833090401789815694478650139722032279908686938287609793590291087079420795343373721424648559864365231206351802746108925364291808164040293482206400994951221125866289069587882375860607717493720518603737791570005612991705934972713708335288254598932397953364621850572681725733495415243387145581235369980406149001071186531367352515068370773008281859849845730253650133560582274404749766966568107549872845642162771671605530741685622421919588510428172927161686146780587881820877328912252525034905706063491828844748585211049211427135925264249434096151643548947648253462339504120467292523192459356361615327486223581320763668581083701886067174157792691632867997543936320576022156501222717850199361389517046909136502021878287075338446930461520857400462033229883636583667468535050172586368300262669341988833586026090128388210961864614394847732771280751175858981883917656861083658016574330936545820399087875001389724586344572987441102688510300483266982383811982770813209991468827702225316841155776224647939036627187941093703998763433538587758440332994991730081801049017525810004770140255942679553461684463675835808152098314913310965418587756469791364396093529712000555998082231278770063528178410674787081185686550978967485310130694595835799782846453300456707227595125492291267440530208738337831233665757253712337381420902757295026985416903370404134240390788220545514676388710627363907721116173385977905227780308676333033640409493965448119293391659470864500146924950475938386980083186745770840256341675207188180725903929784537420005482942100879551353338790489088900274331094944175212068031944575424123140290987620958970609318228602931391504609126430323055627748265270060311735073656965122747592027376463002252845631774023557680314394804406133971520966880850931729150203973201693471823724861215676737551700809346561182154634277182862379895593441332424393715452706633471653384356345500497496396261322955156189303723826656055476634156130917471356811804195492352940409813298967647078121985915669960027468173472442614209795063431659380862446746158030321794023235353007488348619776203764549977917341342066013944901078963604352797286383810491543180572373464675843786108707273348350508390807699558731482582853086992957206459666985882368504052001233701359121405930717901708053680193719043971780309536623813403164418178242534468192768693872991015940569644012300523550019398788848574045159776438970275062997614598027896478981755721400219575826161400590761349326169276337579052530811142752072650989076572826601336087753845806809426095959608690384192242900700375077376654595468986224112677110251928063355362923806359160719145258059502587325874602299595335053291878247454868475527340910800801220097779825939066134019512777607729728492410230101768923922851018920906249129725786711108242686915189378876056145846900182704913981281445668583457452443523471476604037425196477914578838215790151077289401349361926964476347005160410484860959263566398449909857313497432823385180997486856444731341296310582889356206947091757722947797997250196421553805489929067548688612090882062414920031790525780721025992230306368474586266406952449835835224154358749422501099904927993183139509220719054046792168167056302080220937957000681022450133046376331889037308979767475714617396317211041941592441890559123900262606439619815780154007318213362529792597151388332448133799399255344433301896962967778154342404403865316894075331383149533408491836808696357556832204617843368028534339703232336099969387374237947543605705454823603026901824619072415607131806723458706123065940295887693519915100411157166744255955275525429834026721958250355946041374577402295792653245920090923204165187625691508743995475986869740676538580803533847357917971115331884884103318749516052317942617641846294465611241586428652310186381225449993173890481689552660893842578395107585651252429095596223779830086223484099076905287765659062993968750204559588521913591786471649346187003181695784927813915867656396981204343932304725947917134959179660112080575572619032605824773794854849121395457194347746066779061049182633092573902814026525661281494727075011018130789522995902174669197413945184980467167002269597560020514512209495616147013957126722269031339249488441189856175448199433167713789703460451572293489321602181180801794035050358829323633423765909742577668276916654240399311350349354685831877672325773890747644215656120687328217167023168293728923794475612181854574670257424995242743715550230257452752065113363108298414700615848024097488974785279069579203814830346413244509989625458492325720852466787541726290188315346475802639090571506640220075859850430921943473123252778425775080153487693303352895861524178031893663887140903127724074015667635330774998006392021053636010212423627770803247640740834196529595803638263363477295094010397446066760629507350042658615799923162704286033620465901851300245550554140320657762144699603719977534581311258834261620412941954902883785192869813450525330938247011767333633508624428603430641024243492351008429928591045735334692958413626749035553856644834583486176610985544114615930016168397029169803891704204070041039048565618983205840355137824727888234708274119778773946449523946660833120467710496118983206115636090712798956664412903288015433499268283860485307101646276435728869946560230141693791769905848714939013195027814351162253581757837908955457802305715807187020357147985111409408001807492424193033149324002788995139607022113864130873391671824175530345722396298716229728437566058105234245067977887345122104320863150826893408875482729602697850215187038049938271308943578518244492248974328235442824415268999192098470963180020097472062417349656635665737198988553774950618823313615726409231663869918648511715645084060796224191587997372312594936334679645134205005781083731865902756519055264223148022252969630569640599870428997286215246447601858279916743553717436887254134565178839419921336637026748673682505619547655583657718275023965262320686206763433838390053958812748340141769480880491649063325316496936536313485753448473699081733923245285968710494156811790283253415626128244674649078032013410613905332240130208909976759503839956495010999845594744350786041738380023847783056825899271144212413937535543747190446853463650985267406636719808652259360890107993744861398017951349643970048111152667642136737408280931796386459588402124049153394622960831932226301713523639244124026749329445738134806047616781392482103687934203193010520503707598085377352461115092625038462314044089725576592928104322912982542335641542738831030544621577438086183493670612971554341708086373606885135312878902727898862501835317699166451909364457226378786358894906013132821693780042394100243304136743265164054740248067606021657841690002113725882123385034968999818318305751480424667669559273002266087025457306637853781108501762884560380622771367703772643976917986850060653309506390716495131144703396362240550469819353912371026732294595859789993590165893175471564276946429379752499382772480795564842026249509821048354380475264613497554076774491422644302440415316897932591784717553736361216262161586312114500157471599305498793476286677373105530281820669786214646520838784946353237346612612753900257130269161569671221615219760410276308513384149146803525520583377413310272074523692524046802618629800163703882752055939831142309012321503560647303712270143718797246701863517485493732381748413955978738109196663542943291778711020830201841128593741575962492857601072147703626404375683753506255384839541489732952376503664070945043351005954354885677573648370935582177532037034600745797480881940051413178812049340189755677369271488770110726258241278365943801438849124957990499561137110157664387405155917253190546966122641220361480898949353334736259202374276892810036272754994469720469381896910547592762215518292973840756665965588136904927098652184805330702936350652916736798573353122732162430942436817816552625883387690332265624788452870958191127481064857107990336138770613454678924014398071286102272301681884505592259305740568042782927376821469022695933058005959361003700851382042022128406865313444322675773059123634252656957501526769857295579000846249537854397998744132431077766992070754321607840915186894565239500582900386075534879372387908035184174887112573758673175638170939850598003543430007662894462360996332849385927149371911899369885609150859027267529171541131218659797744480216148759601658972502879776133018730982971099514677990588577890942205264125087581258426482447361089489250736348416975176445868569809865734235602649544079064428778569077928570777358424280284798988099872546618422354594658682378181717392567710071419838090486158009162631687398101751606334456280096878103151226291531686656655911408303711022972974986701132432569879942685393078436490841386665789917926155901313132690040826480671734671808306071664239726514667193223564128694487121808781563802948511713392449983403252789051511611400080726577553915201596064607777859980366810422421412233357785562975781062023288434300239180819024278781449794855683108579269543682569622370490992365959752726611748093611441591418362808592231318581811176468876507319853807420182541586874428920785653944549587582690675993047429490051641123587115193896994618914575217597548853939539909304778162166950092153040546690937312555090290932765211483713973651322394073745904364493463546175014349291468795728449925809595570028044874734134249676852561314524052481996100932712746298456778897155758829698610535282549487370233689492605873556145670256686634997147854422757175518735375593127753875687966235110183929803421106595036684450701295001021658111497998475087869343219843446066319332745544180612447330755231356113577125686380424902318622551434256233872279968062916875412768118338213292957027704781758160986313975937684506998371320245192147234658893640961010004911444135869314510276252093788114132347415873732329139485879219254699745430095953898164768080052610706864988088035232491231291371730680206477610083478496769902278733157627553834139994997059470897483293279302864101204293475727489831763287633460631162506092039796702264736776677425942879716335126237345876381548335575946196667170910441083676582623589700497063410937022669014423877856468982300868370474681069777826787991928618588718902586283660757801301983614101202053657021124163026043344938778880013065501617333598331763581998140110165307375427580112378076110150007087803556640170770819499841001102977973400613537115159674498781159427439731893799876275649226647435828450339876772567151014915481171624184773403345715681211684497167765856642881063245937308786507638211866871908052380197482488457289928017987158870244388365746783654084996083361688393106157535565427904739492240785074922755359200265222443480873763390495438483180906038178856242082494515968366377610221654166640168844340931953322049569417022900599324824152629670600195698065134599787698444371595571389511032486882679817474172315672838728261906452041645224050196198492195258255362683397703093958748970349144483174664942806139544835048725595091597482528597677907049902944634947636390934124594786111942677385748396990625694506063147155990963437044939238787993800877778003872213898551175069649587483617264278321045123982560556153515445038622143978255124481345058053790419557546642842840546384372082938868796726308991602179520334223918295098986773206327524514726001580224677942043878491835095644735162676610433597046079941026395018917987034806663443587777475460945085462784568383303766366613100590046198859767154671243388406779915267284084170179138699634709848986626449291071871304613675642794203615548124106471005695360483490345285161671547069915183548775211331143404580725900830878500381401444508847684948865513514067695443188519907252934256821140932150671452162133177858382858283409715979351056544316252147047313077035810464991189020509809297560591195375907785807510656571405892484643644320958951629001343656475594773715801603147635467188007810131308794358976969644765238956151390355318863494141568821897405779838276690886000632493469606809666994206673696604900387034561942103864078080122478499139393478597033190294535296155546771038532553625477432595155096310208725196827554880839948043283072706189707738819077706284284545417387899653227965877983828279813416806435609626875321575709286800659495236795681789840939694758850900962671932481534548968946966849315220884335010710508352798688054754868497183143496270568744716905903322761793912327898347150460894600973803469147303238268296369357982099669945775972839887187908638211697517904693440970762931758896838219036006283832219976562243027149435210165279209612819214123290496130244656025206064561536798217342026575485859978726533177424389814382256521361626925883004308534427583043169996299315076987664318219909573663766229990593358789973218047924720840530455223888342028867601258388592725377884837883443754670025938845022554741299508065374413026086246360569159398834236685560639088989199977162028835587747319435061040948146312364046471996506593023530598813425850407901761275287490835293812180633931772189249446057351246725406526390245233478779461088991929204251250210378023405069853383877602406242538345405016241760274247050702661891267917527703421538353939567242802724133077987488479608547780506508977645890468048971556305863300143411791979924267581894078614902724079363031198100016465075991850162629572017439845843712605866107765055217243224678909618843418793864231671665466774763359435266440050556976965367522189117131001033069516096246865393554867747083195736176331608534837480108976149627572685072064568830944369455612808246130671979398960298373500022944208715546668359534986356259998743323783838354899972983761673325968203039970945174186424813578477072174525589193345667712346394071023231671712042946417019537121424974418761332402279779464108717396051308956256338615661526673842868692648823305370383990026853872892348012375172409231867256531350350309329906284981415446156244837310574953296998690429627900324369547047068745266180327605282845983807213621290252138539923085883781923644224602317349526898493810823905207566329090464850190695495872938002744168915369338685416358349381027471909082512836399071968780823584876056855150754104323178538233579094740581488709628177871286340330981323562328048010394847990445753618542837909827787108798527451869518856933360471724096338382903634710558363672357366793778280622439473567092335538548751080258967058291615851253794401488964941056482549743642516020159162725524665756520678900044800012656619785493718228661560271227296248451495728382903445162845072078833352741106539227196017910820891293572009405762156054516997115752251016868453629742608518516829092643939729690151947272832550854825292963178504517819573783580226398004347732179527815440577409902625291603426131869923810956491388754812516100240406982430736973464669469178255008198093682833352432419840763470890093316795509656700589029752862811193298457577488793768802882113575895128327480589669341711994697018353421710632675412281468418755729372921614055916944962336145886316734071359792351162008782200739866987308358129578455357697107010407109982098401126309979781352825224361976659633378722503408740616047588599727395963352747304170769823834402553624424349302498258251693206015308859318076578387643152418546797942285554612176075776255637544312748304689754875239418928035160334844982970714489845567316586164202766032982531888373307250362624484413952422497138733307452430866005150576928621024533761183488013923253108395061360500780839430452839466261950995303659545308851288477059242914086701715073230286960638077807667077282866049728884538634649889430046074118129431856298131865654678574325338694231569380111286390208560622865554361014479965043770312874886684404209228067338893685750006927828016449703827072218290986990753966568712323868643143775805359517560228172658844891314901443902909448473111546358544433967159618699597018240965930948595766444501454586088249134727784519715704129116231422699264447193187517472245327940192882169410378000300090416926513238221635566855395831366808161228418130621095441759085957739951263678327209381325312437575823028884446282377026082843841246866986251863147674971089700689583215424689191825053538454291203559199496913018960985822582295796284063496237487566851914072782069084367195857670412160315802710257796717173772078158509523476620348972250861901522510648903050924495049415525801765664493232497893351867109809205555408899751057972627228787232359751657282400959885181757913543850746029703847220833931307252167693875561357056889085335400355037168439915181413846441606551569872904012264882992805406343672850798378491937550444950957257535199443021638372245770375140802836624053855171938912235686273646192576230510641351622247231404270329481031423342533223135227439455033446041037410205720388164671890121564498119664391756608649668527327422332083930407726557753525219447642799046182412246376212859242937082970530701539470072253627631496912449144194083787916709667097494299478894027507459634942409630452878765594568227089289839884471467930527044204800253317023633821900295428817769222222140551127360268934244862976812722651840567870508405607661948748912111676724564769030689313039022291743643894122007740375290411927818851828906576689425067229822122479036032688537047733392273800267611959007140207422985377507363233527820530728829040066266926626469951935116280196274078116576798260324063626214862553629878465130258226051030883208438195841426260521228590652911344518308806894291558657844484527437189949810750595052932885764134776418756803609759467044222928078130335429130834577902554138829572986808782470634407303660306801585630286050982647447803888328715548598876613278803360243481704131885700420572141740614109480525245317621884820938650526802227279670532873116717287263365873598532350088091279543325412219412284727364483635074072059539535690194773777019683527584795534799182575340997152068706428811457720332071106477522754445215626658435404995497096945822201815344210361530205289425062008230969034978717136645244184659860604335380791436716613050336613910082461524572432710975706221941571430785977409892018130259645754217849222947563489191546933131105706390995856136850260597726857692056395992873262256125375788852821406458082852042256353276077644894375092233172994295534762401930821202310501315449414520701850093163226385888095098912244284337698284708752179177889346310534043659340802033553282917423824696186774489797028620151165824253662030147284680416545920627059770298589475901315052505964881172501701461756519780014387433582051950911229232496058773214710959310549325825678529697527782694688418719501631636323034308056159478237526638177662717594680331536357507726105145691171947052272773377267523876737123138797044558127724099563245638106712080797310046106708416731869822073480978134084048190042995050468637999958262362816140121693448260687834796107753253065097215039165309221374689871832070828747519095327249149724349746441422119716044984865162475802687654242431873714347444737982857212799761821803075753315423904351021019887319365457037573446205765843183596160527433965643341439695722739774859949889822703805044397287493346914733338001833025807407279882416512026114429438534842371215797060117438525366494940367622391759820279390187131320969169784486624128001827634562033188688371301902959962296564103994051768654391343685238495363652412145442681907241892717354921896412778985893902636746103909524555913827238734083384628707342054068922031160193273000195479772364586991990949142755730792005150389708981296113167217212512478138058323613367222248389557856564456775134854865847191937660433546960291447107437553966932692290724095655288439912823083753854648319947415062104944666011376056981162460512951069370669269113496618888280446681429599789124581621309200201067213548142001966159344166957318218075658192610743644313367555843816104648610300668139235508819644211807495159945109664575992432937330208261660754871409583446529375321838482130197756582925699450164247128796476302435877363847691583269084343520936697856931413889150494363429079177658428595438745453429006600047685036882186746421305459534225743782356187906677103575796683024350381461658437730004518905201667780211692344159249120004312893444689199642749325052652053438681906716724673299743514704566477724374584022447481961060356996366101278302395197543793170510069093818626143857721334716921770024802215854684054550807998496951966184160331403182325159004193194343997329821599619190233289640566189190564167473763607925833562471681076260050504254530541407108015255729376647994507409849760954591182837435767699328204595676570505416784757490870862261802936158231334920333433448571836644054298575380443316234487180206640216873854355468313030799425822747427249197855087234949163335685117032993826396306594605629360699560667878569515834379820009169956360877048785003452659782001684768832555769978398416014230662580690540121896256557759657431774119428390094640218536761497476918530189322267812353452844522224169130511910170108038187108174995453053324335951658510836926869849038364772282800400218488941919657345533166573051853507423799118010166614666498444581092103355491457418305534488797435574206807006266565381113098438531010846526323582470075322885425049676415718265474400188022528213057357585097873265130668378985067668841041323105915777614982927608571309716485387761673765004415448945311168674924135805503939748466913165747123935158108138913986066485018749886010748966036191961800145383752232858516916271833951815378702541726026662347555786040311818219877095744263438738593669426450691846902680949171404548397901948308354322099537675152750270476980546441916137455116962317883291845871881825614272133553499458556918453146409406928618306465473605483206443883816357501136050170613079946528167276023795817638036419430435649666004378771006380971249572734677112795695902571662102217093769976810577086054979917093111783642077940620069829625561683064734803726104311935835845378839123470811841721714262878643768160088366755678881852756583954511280502321053219686196722862183708871929798754093981724441976805821406388656509310564551972069909729320960736291578318431559690974360224940921040112015452473237955550316766023917876034421555461425187936952873053521146553197644269250693518499002338881571606016456004821492530646599481421098697106724989908772080085728541262937233672770388013612558414353509070861634893029849043034745730690576108430714670557276875631803077750828783330882418025498305645422850468302193315162428713315010311361826497036910090772232769031634151670466472166219581737513856700731039959054512499437209705721354167784148411966759190189561604328231511901054661644402639393351496343527584074748816557886023963450272334102759609047030174216726647365284283147594046141399148622616813680525798952698431262963936224546964703574204651939856257026349463165575552704558899079913119688589921383822658143612978411738475353903882397748456367392339303571357325989979121055715628342974552869362489746100291887377764057680946534532596160799186131428366277845822855109841527672760396196718193166943067559761479477974202368532030432863076763029153032521848951601934988331871476321372098194081504840719808169499937772737675195359088607492658640080225731429932306852925257836405643418651485627397371036825204931777659033098818526813702265031197272148405360822689975861568597888228440635763394150335936531420131604509395071435991559905074364392363650351980973871928739178907314644316010690614623711042649036551790378817668170083240960774063698482718394122993225632121226331930679208760179558650435441522606171076779679895547080747382572664584710629069598519062175814666449219296132427923921579558938749850484556930167154851098142304898293965005422517867156186237696855130214132128949099814144629973139153000682594679670971355205623989875563813150987280933777808371123514329654321503326675720939808280918125853020942670914809440618925759257138509761344319489030007510223404228804704148315395271176418660697630846512260038624111320760823599697958269467973122917640505574517730657781054819728331512256573206486287464410757017804157388488871021577643584201010246530174114024366136013635777106352535224382982836613834845968737638395990465292786174751119342677658515245620053652856615312236431972654863215927779443472808336454247411449234267513263778884061419144124354421205223808368231363118891720515756800527957888112010189300736467150506127417242459921414356846236340278047640312981088659311509246019738722235668090648889321649523031526799106657697835440817887701029702405074749551684516979413103983232526360351438181436041464267135479070295382522237688251656401084253614606135103802400727707814834094713851008121870170720841558146649759168904265642081986698365425666366798735039676395486185390153283458866841557525619415858112820828296099759866378999261893843151289827608795126373379124300615650783126218983972639498101070205193599563643050029876232962349501450198318815980650727552717790622645726923792073100932975316329358364828355955929069868355506659824955124103894507152718867007686454362433284772059416857080368372663915959968088783048037912294454581369180032906247164577929842113110582579367130209919837259285508261856184032109179371889094892457353617611581179544969624703443520701067340524884791258586228843145182290668585015847757687446728913411754903428336106504565706872858116374114070313422178071136751626144158453467651721636267581343685454716000910143156717322919749723542226699374119820520848198393686095828422589846182739443761833099836624115816711678269077812846547597650873064425052361140465958531791278307564970463614480383926520322606597386949331105315534167815405836122120149195976693824358802542931587386903159439793943239676771425957504585629416033374874736062177905556644849758097589909004736219843119368880178143940074904721582092049541727189701690270503808023867616160536026166033639342191100233889733248150547428215421935369266234670405204377965218015541639874440434367240671622298360801544128506260748396871227952223064216602052185896249829756520471977534856146824894606412941179992512182428611883544001012545612605382301512068973807418995530503621495220683779027166959299864729661448924168810458321849435095452650360904234410443688383351260911244555257104729584190263583639634344812802751161766137206973698939576910922782740056909860458101889026076390472412044345618128031685446401994273927039303237923591280085598421425842919534092836425195002238750672692274220217395864270529859915315451376909300002798912719853951766012556862053040082581411243833595931378273150836891783462914756557591875106584236383184963146509388060161004354803820222263398820703945143011186411320847033947901622359686827492477747258896244561293965671449809020474130381839041687327290576706856791936575287261941103566152043899277518777985148826161221020438091987661053406815161418398297740456679161297861545642266503896006033295159663827012769053130209259977965462178338340637657649790718087773827640068255589425145113643044151641979989297736328050093031772081369642761898390561262317158814277903829187370444945413725803120004258737519933553253622906949933161309654632731056717336879918882666711896825608703885051584678561883962821054122248724653807402562554919237381801402097714945826222329337818154284249954354537511269044695330247682736293831541951475936350425351109757157899207673900846746009747059373149625721809762872005690754349988352478058384596797343715972259081407946496230005583974246031683679720610887265896184733364905792392674291389304904042767792245854948325161680495797387493895120179276813643098078166596157089195307498674561346946972543447182565412386872943740003742359928585167608750012119557290422665516963279097155173371076815599092251999189611794772236443753865859088594031521919959488612308418328717674156927329425053444211169558966981259795011498615193894330863233342592706547116998224065393348315650888693756666191459710370116559464337873279579773795045307990169168743786084736710573523700181955085670148711786219046433122865613488381900150545129889860660776063800210256390696402515806586811560537310004074542835067642856621823974094920807012950954011016007403058304831937193899331329998417195745513142789855096511312218311457347717696704573190777816906516675819749605708764855613953215053030926367003863017859549343173927490167359878953620419137783384383190745459913997951184289732108322229148345666232346482932597873402251520624538839011830604778825023306573313597604444886155999244336210315276656789342408485066322097571450956521452195954700866529552453882944649241724535028999716657722168120887799104129286614325038066229620341967621999283507571234144268256247773331255988495352855691406802254918022878503928848741308951089126483758971037911920000524153766713857312808297452737995892310620690953422826472573691241355092246612636150334682578531089880273646291852065430932343246816690910207941527732435029436431522853298194253210585225767069477760676605784539653620462196949941422230328943228917907871477780641451164105771452621952725472709574240772407817058490447206550209929227563995887859752316725310875863737942294019975600386543742766240626720031955844660632633704516013596625462409172072072063778298627896196810507058006434879056031041657797061608216255940667986940034771876442622835506460832762090486084701702145402606648334931728672841019285651619808013986852724180890183339398423172718032788546988738525565344083641573135832100282133373044554322107878575685241572196783794978060800450784054937799118597995825361136845154948642213296434331250473798696810137633315080812944756452889203955011442070979150248415543601300213333089161666550366324017896248393920646385080982254553684077355682581697493292144952405999355294844907866880068932841996158810801779453723730567594238447879937418960127733037657557710671401952169825084921376138068369708040394672143408949987407145751344810454423745345804637669609885107473456784698586230688701735721950974306300032661070457787783630708727153575837601516019837495020085695299038564781340822061681536267156909383336972562722824836351453308334756078849215480335725092296268456536071165231865101617244272937300244324539244585472167456739987900982740828948151680666628279667686465571057378768782507946766270168292104943220526847733243310542162517163081877301143778024050745141140435089638556535403555361001283964262333453677426140206991792661760907820958121350894078346188144287313625588201696908782431319483036477949691249186287676113498978730483127068613077302853162698280344935287164282193051854555364726802551499988000921853370402062898137869100663135407905837405998671926022296429337278221739470483364558358833423248913025962663748759012102738654943350374628855955821307284394043867061809606810510228706346056261746459344817056522168916104969272395257663241009259675756753167532288853368967360429558593348412261414796812779806920036679719764402790034441229085266246437069281781425290711653937420891823720847338215198083007151581376834636356417920609111984321085354890983143195810416714817699309369168653414487305600845143362540654258052306010473110807319620165707547509021706736139681303197427762714946836696489285365332055345281318255983791953718241907841746446321427015304961175190934496804312578366070538980166883657578110674359147586920113273905809331789059530535336356788830881913963426377715562804646545137434959629532738408227869263311500475857668690821736060225739199814581310018113269153996214768877525504410100692126968132186096497916292873225506724903076323430077072603694000151901496898635117426982893635283947112142465440571867813005673964799152185632459685039049780309939897775900446598251417487055808256962937490857273015828968679976561171648236338597909325135190256139539744156990145759425530151167935470418377896035858616139969090903283833564341157797768170190690037710674855981487515054849279188352100511617796803272802470319906253525049497003100894550189213196722760561312899623123366070938877048238130394931654825185416536397692723893381862982304541699843095101366419367588938670485147041703767680316338138512154198227995777654739016442205878180103179655940944110019902070389188392164189945675872855085564324421804728902223323352643764123926241654931941982164519270376683786149725478146158364487411200551795599118998016268026025371214025852081899005501963115692906895963855628999627576456511379350928104874698001228195681406760097968712402152976700313772946821180168155706062194065906830459772950344943676339273322368353047578393128992605897377281687902049954762779187951957244830532024778290147481814379003911781984795811132190158334345604618959770445561175777973790563508643662541811890173274745447223967449965967527584180876428842850977126165413887799368420646640748563450949642932960344218192988893905154183321085706774833940399286676202663152089887222492459861982677579414651576147668582451584319041976071431334742260941266792718019082989636383187169821536737889641199376123035668060495090107331132132998168488020471998494927513020877822589335415209506053491955303458517591143524050126203272880965411039877119400539972656130300313743969580161036729840077526006257104983911500302844693760958806721102388105709260394020724966374836415172727014134746140693661467305920998201514234733252357438459233158840521285072528157902407881783127767865326038907441898037917754657326064186793384967045749946644914431717608887174618275929036313314368483756822366197836766188833711195868188842815153882643827630743310071559864509890517269120626044901639838936747519576805816593129189218614731902415957106347704892450033581205823441510661047054678218122184653777120696991431725707863095755352611044573410221240820906072339871528734525727314196576907562010497334379644682931992509028337515928968804264447435263553996432656791744591546130024538732879219464389177080057275715338408493006941087657338911548260998334215448592406602251110704184492949693856016762814720824342946167958427821423546683604439521927730312700435197851183816067904220258374232392700428053532183268262444603245257405503691385189475914071310994871879534225964963110043221020026106072560438489861638466430964265994634834351577308032288847715872198256628097910565913815754989145488563440965442447471174269480604178593290648757588894505713893428967836254257366754570975323575405680888143864304358425066610089712809358765933795251289215022881681545655205011801116540885996365188528788205717211447853567299417638007841222046404838291528879090776916211997742645081542245298667462097851109210809478054556331134706175743278916712716764729368239439884280599758568901259763408662996202060958950451447924510124794770720303726132257047308059348798979330565076466935824148808535066046513897449529761188764743302511578288129015777767779872216437431838577011081184312848885209185736173276607323825714258522894172073815019740798662558257697432260569745266011150523699681689683594879301237825085792442077700724468128386672536010756726078103703388847311707516534969368849017007429750026365349402490906735761829280686852380635328440749279457586823576884574985115669811859412303787867676766534147588385882200969322086318556524914863423138462749053166488898804244182522828280223254059939061522165334899295253297797276699266722280225007954462176636691093811038346748444659564444305716293101990781037137528913997370463840093923400878866742935787121348443229184570219707884232926310099832789398839768370512807994525321606229920478392014195585146343822001873960681575172239574116264939302389484606059573866009804193501259981845453279201584214751252473858630248999632386883479179385136590113837254355148431151531612953681518713116692551523978378629234379026686583413599339418868907161068331525954525519842303860888816386085749607281821724929629518448298247523426140906007914951280955811230742581488824564305989034675435598938149496146286654174526993892886476541065447758092079328554476509534186219610078183700688718915823287443800540803276347099425809360339445623884526839036642113305030057577701542768170029708395551731056640479447182507208862848575853272133362735689768409141843539736553271525918130723732617503081735201611693946408945343394125287738417343189770670169181594743690225590679934037810985056681297714478097253092618752437062018881879560173093147936150823791877667940767238271627515234534720822280171993101142502271510389268098629651349351450871574184592734776823730195373689515969874996483739824269960527029861201490053047069147715848901818893486271391763452224990322306356226362948526061691600198420617588002419966522578736780691284122063444778248041205063555737387122288158749607568045504723819579979294473234261646320422484936123061488706294699024199853014834330425938529168688909305290200646651934927920760646699054022244384791603650594006085477416924662670182459984130706640631346463636476591945414963391719798582108801721363912365267285702470095037518488990006314215425862642566728365406524055951965585161815675371213067786526452005119297398800143665638772009864276020980510719520443464773745585606318230771472641513039653460712202288189127054212894627104697708445652095580442749108272739281755585621552983445204237407071810218220613212923859922283993157117147810759387546594080121255170176567352368180174239189420187604946128408198117655699918146578585340888125229994835149429406258938171275754813365953667327643785634265240007138312721603253782705059909085101887868824407780407014353845547446633155087630471587878134707560919815035083606515083268688574216335065706736344190761173523635628211092261831365631664026994838927721150681458443566222019256345854756221334868138242590634760778103004269343823250750306092468373837540972259412134995291223317668504636928061787791720257314756067668386778428539536364112167082496088607715627672193553429935143341784726923807427881905031728657253211114619526356039205279922776890475037341738242620832229641913132789331354632525076992465342294839493946904354768459705046892756222581621969166809843808131649962915627027820459850826063728725000871731998361456714343362012132371280810003811333756811582246499749032349670894307172789243741506057776777650424878140818642841017055705381248435602796620561318248148483463074560235509756226223936758278668214551607202914135853621941463521812317208802488402025426838313194974430276951083843643838689892686687913838637503576474660698555072098295896697180027377906229930296663384125046731992537424879685294501764569854109195113730538462638297062678187849562049662363190386760160809945586508282907053144271730443615247352589775809688832649157235914612574965225266883960464649845626596859424226846734556484299727819651177787105311074672272644295701476309611513076359671232926116584678607777724721646506217846216086705297620351550417271874125362535703195739647432939549108347314832695641530548249485031034760964979083231151110883040261024962512966302683022561985999555814697822106409112612607163237216738614734604995341285545931428274939775467350487412597216564612159054451601440543649283350171254205631058139678359338644378743745490822090999740171217608707851401675179275631554845310628574027610255067798115044726318211722643863540836041836927650612904822405608125714949562719146616733131002654998763355887449472456024837813653625135542298056111100163550701769234921147915572651887569606496475382225888747779818391409756417034811803965446207422780893767214545716159119807370003151725049991116606658028394845134785562820332305430909844168192004026985414737996031905463055229883613830221334576750139935844214688360741968135967234366074989424681354036950167944683961543363685971549623044910446459482931835216356325790812395225448316923970900012233639115331231430947707763421130605133633620387190235754106128667884625219137965586521181414966701005682974607593873276729678173598621313269889711365340789167284650506688727552720191053565980793311372120576999622698547658085992104215317587431690165952741495048589711151736207022495865982023714632662174090585681391543562960708107979434318882341377221481228222906251578388026373891969738688252780115458919240338419970718211183303949517160466480069337223537341202320910206157581187136938326704845715858684494477341699724388084506455963376646669935096764840943323957038303770530576504906473559090893877215521566685485553639225292251671874260803702438034519588149800674645294394688989299890826216093843402753941082413616542822170464787053396042519214392349441308281897466125560436416719748989619560219500599323265691356129296112958464665397762645615866402287702617431375547763184966578310683842596590354317559519669467108495227185770311416846123675765610861356480053580879272833861367145817671359581279550466579839237949525745246905122717099201537592803948003863641380595120871455053584042948568359742439076048217718239574724338045412844421984372863483584616956094348794449406729652967811627701863582023966949164043706410572619221907666238294537527021912170481600888069087753452729471550185118292745059879674853309226266723409281056919923616818141393060916633318601335109223677356943182756402979776893796841764840454069431442977006262440767297407093218481154415087517541587033715227256920734057267635893466723700941121362696854891695258779365594342326061051061697548217396279374634686831451734294231737181777047156045688711774091753955249230178051358076727739310661741050058953535239485425696035796555367843150590739043899034799936492324923830791193525039031340946332001910980024064764966174014703939800051228600552132673088232396176959382605645719332878923361954404555119300226719011662998561692348182700300032854885291648211360778206952252244966049463132701959373486628229437629632494514571134267092797313736962510797470899254693736522509604376340943851448961635348427858439193956449134376763095201074169760978635164862558707158121134847345661447279620222365427931265972002402467328776031781624865933619779141888294858948414128950009841520176875379671748345577751292940868130718712425385968835992473293159297240439875602236963931563397336199952357452932842860455759009552052806200685608321364187906530291079362795721608269271739580930865270515083825754406189175421902453574711718360759947425752505197498561065258517908741615088461288027690728006577689451669713788397359619191924238259927344139157927565395334306902403711002164447795907854892153616824424663920994388491031747620367140899517628925137203916945067850571831669350595349656403350820524942103464583684517110615471708157080954903042369484372247726547421394288492436452132698075770249164232649146326436045167567258845497938801906794820787835775995241586867391661624178791339908516034667514264260544016820105798362036591992998994175622740242994609783319631109989361427258984422090974985680144303889120754678705793459395024473304752223751636883591899875029928262036428895194189925774700976635979073140540304667278135461428668665110252854008117416944567893156025246984066068777658013768045807171663658928147862628248589451496049535956201403607765639625696511222143217040299026360639237979973533344785419656695022167082231607699651319053964801126473908255536366129666319828819579950822414529850675480167365731891665924627417106371848965490098815618705643780953053360091038563994579539011307242273640895639345043017260905631010650194584210082888779650726273276155091429843657121074421059126783189648304369706555834762224977597778922486606805984862740085369793909617166084344787280731199807598898056000007872987778214427184297387757044690914882341616668086178539186702186829713909641788406352820167830589464245586846023463058678515785614507625631199471695414452002590712262808090436499595119605906831583766754193343104794964601502500698967950480898104830327231148015938898332248976339920132910223332180072467252775629597668996462282522956927468686798852601852062771592105868530722831139218014549357624702570412956406991405469573702461992102728937554284979838106665401857879128478575531907564036880438196284894449101234186296202139058257530756761163968239002979434683389089137388023311072671624222123432931260848007149565595810682690159888326726256394565519450114294046671976413598925455273202614556676193093298676946043033757216825586472186195291373578765738602159351232346511323040388419424405811914568803594467618711056396796243094864074567525922855806468616828814344341357578834279278412707875516415258169903695008950571895507927376266241811925120172577016832323888085998945551254686546399727006862650201121741585899234346675952058104760994758374120678291215768435064693228640700185595616833027355115619597238961248621438184457611284939069116759848773939310201303773440120846605626762749188555307094159097383713869493429357501929846874346187439249962028527974984878511395736977912332808565764880734009763343696007164151124747340922940416915306124449261352586615273750563626046805855780888754635163209500803054557949980430210979460290135616996817530458977646967343582562575340987322632616311383053810286823413217069790407424064948024246666086489149956413562967493460205308754959739633352242179514755924257331047021579679156770806145806385748949899604834030304555999452710288636774546520646004469087898773277148724553172705766331867227764787561209506295861420614204399803083255130346646129055408844508404539334064917018552920560968616777148166894212214360743498619209496341695589805958783774058512659415427086251685968223690851592171798919658694123099953905604833038546643217177593995974205721617607416564960006161538373804015339162208016504537635713352045147769193054693739019976970306815525849773242668048768160870569170421818709689931547052435054280995896105256041048295946236429175187377101155058224486209602877600152991913137266010184595686130780502264961744729373007270646685593429882203626072331912128261110197302621154004862356366971544293388771304123660455752736392131368787786263017660526889436567983696808130343807982226561129665637059908215618617919087241361885357737478715792263142056361842225632349624636222252357451601613347073712316552418382550003457929624046592851885609509672470448963825488109378443694793608597403334341316958169706649028736197153042503510561141231657230692213924970754335616673856912606568011133635927135045870306696659423360599216007675957359639240944229265429978487392300974061781830062363117810477916345159960700392418472922858833604219591794721623883544882105124050266488573594763104791016485052389909488450156819043918332420235374281884623697092424574087321569218882445770634102382963458691158202346540240121609490306480736656812599478064917780950567681248140209725482466787967515005383230384506508277459207501806961124852455188048974376561268399795993742337235707540776684765686671632011744721895016753893626868402312307391855964003657723965759750528953328526316183562597938817735721790299394362060939248840800914361310656399230145003804890350677492512361187679026804939929844664470295152945222427362114421114828562368540967720091763228832564833246683786109854043118026613733079401387321442336796551580781324809416794424993307747966787361539715567899017694989296747521540025026910432643859557919420338297814002126830920575723246102041658537866718229388214865124640903947904743203316200943161392985999724584345880588828157947166193974005426941404568602372656165306606545229373238871597233753943983649134001306812798929748902888663236242989616156587512099923383648270664606355651028698618709276088501427119935399392866998675166173803698082184641061228592804875981821235598809147018035209732611841339605581548452398684989993259034072054827358884861717496833107145537439221943239935243303555694856062556187910916756052554847567532244843377672440628430413951463776728701813698666184355858597568250234404884881184923478210851275238536396695232256979217534081301323906921986016746044781984296198717781502853494989136938035783264324546695926960059375477716544333863118505141829631409149761020305810854462497495641802001388211690796253065712794585890910096195596950528738421535892079538197625478692930955872035869301100879650533848381914000855735740953774548422345048739095260906570732845186537865995489174199331758871744057408869925808812315555652640236443576316702721675576631788131641519645283586164604775288120123066443478997819820607022436212810282651473890188327342515649951277999861306283621620050689801614505874424762192743976198852130207080743893472614028441862850713695790317811206163714210972007676465177835979606847788908279335133648930553668251571175808294422311987022454305805606741803821984291849382506146241855299845140884929280477643711832066349344158074401582820172938892048565117922858534112220316768941835060317312823856038293405225545650003420007991877720002697164262436343224050213034487656415038922132281090095209135607904153282472582736458294959035160720600660081791484268458573976625858218438370159222251021879595968715544425310645015781800794139156781206482187462789348997616914966375693822854582208259637276318261602250311523205635909373606710607567600297073403146706465449522415852922733228779738036575671090852472973253134692890069992276096938560287273603923206048187903790890638110137837214426031515894867650593575336781526659878713104327464226453586845290948645165878805526382833259828288544507336395550678459960539907139414185243092111283968178415270592191971228590933645233894409093571290042559647615006901675098218738825757433943165307006118106404191099330820919048359373751015461983164230757094308540294403158493698625693058955548444621888276827921650652280379649453034848749922763630869620914040665856909517306831409668487718305918837321881186333399118240044617901932409107250666594162102631591297349001572586159874238169286026079407859670638285970162738304237181880572396886422787106177883512574024641773408558800416125041030039988132973628529845311817630194990329026598147874938065232421368000460973010522152841011403851552634711111890673946635730910479634931721540175739236409607872745728548925548428296770070315182372601891844784868289050490832054138564050293985603101488683254676518491657481257422515195478045447462673477630504371053782492748766352873905508796435534600621201928038211741749032694607343887475226261557241585504100522010542291037994695217524709469057367357303414619181677205352981069140621580607310034925059969430676678248139219427316851067384963320762168236391230684871026185621982666300204387516560198921086041131951734107098183470850185833638694596361702304196185370386689310808581994045152009399582252805408494130231792859864060850812474709259547560330724958668409335925239476261527956903401451112607196949374958071556438251246867215635739072860849180259968684344384570821940632872969586404426301708322584262323327501390329590242258760875218756450399548733272939839241901077984903412170539098130821851445751824186247638110969423760927357969729058427493434118917105770202358550208280841669590970599089344910698098979899005940718537540172848450914129599787721998569032336040144823723486936118213132846472663244368519756213098433257339803046237151356134980301949058609253680789684781502561046265928223024131112842044109505293201033505771690220016176499664422374641237468896439096469386131063376380218157679953254764900632370175401824441625580142049777371191381058196683278310257708197468401563675599054483008207714242525463170446683578346135594715716534258510768352826135940457421950320814300363294286751505920935839226420750515541642388777840588275690546786527439502051861796683027110415845342709718575688893087624992079850977787958544729451187011157845165941736439665371813347713601277165124098182859641085186695123755901532601897501535760606061288542691666241083301178493320893102214677150545157521117069330717397721009663377410736271161173499761057500586698939242390459011097975662639292700084527684060097485259522916555453369838297207033848846735206021152107359644696747215544562605610445318200793048330043918863005492549228242722036275297149359988102440170634162675313302154395862872134568307585402117693400746400697926361934349486618869936636157331018162923057229801035100169583745603719303934180880393899249805111088302259722846298510506386896897886299198739468862115133738945759472306850101629133328772880147813877745257833047175828825128356926289307312861035894898547640362335734811827472656273467127136718807947949074293868466094598664698134514577496764703110268373557607396520442493144738889232318795591596088869277275445463646058017170168784925446735905664083437492903804536536318893728269099760761944792287927915127465186924457122194529012960896461564409337261258447545990149244941655623873031331433957367992879273084852268379552830319679335336077902964166204903535090449507472591205071598148163435004056916173251933431411556110356197753902942147928240250489174764464851000188843449714839558863489309322110074318860813837595972904013995563141176363898626924980845209051030871749234965677006423469550293716528748003475272790368545633015333375671084675668765588841901661302966248359512430602818375516427679391925567894161511586165928332688617511955531027966897175615758115544506574078837863702593906061920511715561953742581223375481396792518941625823556265614180644634865505194755785014291755251819582765011039490396314742883244765936103309520260805135420319766872243482209939260711494868755248065448296743261076597734402366778513414623975742877013910059442470829059912530439546237607203757749022131195878831786575218334536153179027298560449370149843714131140719987826743485644041147207812426910969624105047060740359537715564230483528512617487639244146022801395038493507266028067394730799394758064838283143888360541224079099063755252684868316146687183101576797081286275581606313351149204660148938555739066957123336209829727843004861618512956909770117043382516176236575644626776234686150744290749976853382062400329633796001409906844656491611109791590105259260473000735530303374020045840326954170318340765564388123771676814720001678111883412307393988594009278183792567779988563782292430231143946152106566093222581646025401210196237411244854724370595930840021561067408074485332993801371908027817079407378587990121537411424957460365070127035587713470228830776689960332660736264862372045679666499720014006007455389049602261748254663088487166936601174132782192925551930401127901930935950841269292845245160858649560395370656605025664406258928629723892137265036100485983100539136893911471720431851182688689838813936805526457936000818661876839464239627238234785410346230485712812582915437250171050330292593159650815377089933847121117190862825957563690298737531123763798658526284600847684028652332373549415662688640502335956052657058716920613710786271736606881485583525352046815098877577403038367061735086496954201165468593293467191388971412777429997003645594407841871394419534483082675063219916579380967146522096930289247439089366286411985093584021620629025680995703657586748851816181123255177152756596924226969792162419188711033843676689782409680310578405096512392633393661238784203651701512243994512089600563261735700843146249925210160369510098881396537376358839048662327714358805879131214149659988542221711638130047020484860422577072855727249717221730014116046543596704701288322714129092301746226904865598545263178414954550061439792870195455420771925405314380654574667035212092708520372086271241491674034357422502785888980887396436607479734461530586876159736558946990490146583705749685888367891803480650058418751158936406799138592472672614473877254112813349683138966500896162549298288217870499977832650506831470571057561477744654642649163727006120451326624748608478117201977848723644288507788303851482773678551516641135907699254031681636207120023645382241555967541538326825339329639186727779289442875596105213647880092470017098047496430433624172223518328737055279881317568376245589499803225422985688856807540513008068781799224511864428213929347657919279251523184673320565430787168954566799375678023398429944464916800483111787867193736643292615966822557570435277737619444045846353969869079927210848403279244767138581625869166810430141069669944307811934552276576779305811315306127623486198167980739686604649395458509764350911497881510231327256708666640409892995536854206540908067404392848105858317876186368956352419039117770614758144210203560787800234876234462290968597294718106202216973542659367267258037830392987599741027061373032847028364754725682744229439495404580520822555024181256650678368901524778144024446016357040930110358683640881874499688533371587471539721681601192976944538314782282695531048999806332220845244035490621556488224398957995709764246846390941744197166485436184928465613485477805919413135139182306969617463220046027957565673106801735685179031497693794256780132277316071933405673368002080389647196024172050797542591740799757620319585128765213088871575556583269607431174673279320798885232119959833891186601861426009365111726612691745285487113649923391476510931068318066696806385705513209050925994564434466911788198982327522306918894909900092582023579492512321296246773715906953459516970791522780105407600412509064483914130000472586529510880026086100782387794161820312529388100346870637892328105976767599355309754579838202943103277646344213238911730202803304587413589603338370276928624716984021634523615614066126574324815420746160383839961377039695265203452538158700384524988008049444909543573751540554026352244346950539695109034183036263806052653034260704474354321743488785288952169370471237822497910834305018804050500194575507163547922140750882608568325253557053598227506865049444793102224926924796579634226963374459865508888305191635497015046404442857177519503237705192641418199071356257796570122868108556926048627382335969749354220250147583072998691169209147404968301774212688047032524889346794656277645913672571373342341173487972093249397422379150930821033334894301055517445583738401968613752428537556355729061427434780949263797071865400102800067822660162310013637435033808123405132681350195412228655455388044079796008094401336249746077229225797369453441032139525144136671641437359922693462921524306522928516497791582500597849171502184633361751059211797987314393551031148398958942268884891569239365735633883881156751358908192551059260328309990013687241792561578450467828973580637269830996423579637023934628908828194316780125270543004347753101159046473900902529199714319985193729025489119342190332722115185458452898250683222565808853834216127420686070240220237730476102796295401195833066914678410021294310340163191437778924467146777229632750129326064519747098974141421219981650424839148420097977604352345913628869975745934440580422083184347522095077743664285006046606305616676152955100731719068987586495402249309308356520394150346566677892487687088853956361987620886688939126247349153641548061821899629606067775476124402187073929571327220629832854967203452010469689290245503916272079015613565531091299645047154177107694330293997668353217384571498660800534217514713513067086564840922561452476330712566677240066520832227352789576472645755684873273228931358825716743062947700557595368680020686201858761578070192472835598962095497708383072597073056830228173146467837623159614303474713996226294706980951457958027553239319908456401324365626509680825588438604024947719478026609063616183868667830103547064396937644263967618284211640712463729558169643518487894205778830710538221508923379627111857795595272605661803860104086648202257219718151510168196478733191059920732852666664887115867404820052022238305303199086859773608971771679673805764337371374480545608657312209446107413348005370906100333020341989880780822643772835845793772651313446033391561173692105814307640751474916587717924806949202325694052302242407214700211561725710170851369980897769252479861611232536198809427694303313137646088865311560628229512157524985839750264424173520367923041485100591158670725690839995475212160304012228382641040855300929441281291849912002316041323940680362903820694316145902594464317807135362417536782097501916714987784392082202879146644774391505703729393846965423576533173743192262889572861647112920420431356625335354328917662794928355035056005351875759601849704267740938916411682604600848926885432588251477778538767444066616630790145757773376514309058860326705695601085181593951399376521506491488946832929596624770462428353582780894728717790937212198129716454834446129400555149395750636367882794115409931554474627854324350942773148967092963931268407977721205778012283452370368689668963346865313826515137242085514121696444618310541476434473401481695616020416801007820159685382315211046058045650974156341991789784533144988165958328814855872645642856256877598251350427738371159417936458268025479493865213465362141635238767988069201211604527892920474473226473009928271710618866970581715093928212933351391309585655033850963089134036799910872483543515807803455870109384211611554456976696423301122836776974034249908022054184096933154645051943091451770686476479401950378557909223666571090249900288185783515197956014899105402249235543796190313799747922967327010669440867301863995411024419977884118442075022619252679679290424059487180028259217015471103067178452678773606598935055501418749128167619093347219489847833592314313809013127054347054828533518617166881474852911795413900554084571128237643301811747112214262073168882923948300869142602274195968093935686313721232756683383067524608957764784694490684708827920186829282527305347352873337369740637213150518649913094816244017674455069785878926912260573359523422172508149197787292009892797425069357958394013377538333337113786888018377444237932926340902214784270732681797333711173080384844310451476802780209545739159367782560875888883865568763159018160118955126933783553482662512763445164131097318879478997198027097269068059669517908832913505547205330846613458192723069706421951348046086773989478373688361428696816324356318478904297328851721923389247879027715075558296953866728276843043299350125203747014390051440917981621579430201779748666367487206079876103054853542484734847933560344171301131565288122188806766980112790982096066779535730845712584386040813853910518704489388810522950680740187414780875494484688311860829907003360739649152713079558994744914732021470920567862344377366385685455393152199288781805296949606659091307749238125706408956197696079206236228104415154227394095024073700542271709518898675565311778670046600525785961462182034998654068040044353867733385849530023039018916824122983944911997954390381504693662183380542431027279816349680657987102525639273146454623767234012618192429717053165008142556022064209465312981679832489038973824490452188503573575953664600473095042352241391812826800988484593419027357739458964312920940536701024022154631385503136615909250578794322588280284474698739391250600211315465728726498590955833607845592296012012010669518529173730560526744239498061234410506951519954907920301939557180442432456032931022043907280100454748683290638672116580694256920406100740928126352728084697866079090043086752352920405646070550979894673765585241658265061939301315658588797226352535960388549595396250544879544863248031040883474714687880303852830840727282294413942171867215801228857566807679575097618559568866500851437790462352284959027823051620740768398406595384514319021665538384757732342251245104009713992076905991296549434847709504550948394109957830849690279404432365724880842836095501329534497081108207774320105497550713592541963030877786248342665356504709424381907416569247874611212079906078939285979121764774467937222017645712356055097333695844882456691301154855507195880296508712687249579233668568381111756492479109479706542175553198884961847460621716323158584127880656012535465507434312768729594516141586563236746410779267466963766008421025449826591392630622971780078313931873370112997734149522014524330118592736135551781574216103651003326783079777570592820880169616669176000029403889735772964833864127495212176154374077684915589767492451470328171288864202382947872736090593994338373196355384268981081973309808718358731195823374617215251559541531754580394520958916749785625845003248450204370010968139251849542194290831237328931114745258248384898742542358207268134574225810735452886415617472801681335126165741811604840897284252814933418219195380023933148262140514662119445355975086688338616776774011674299859937983218628752124967682215242068806055316527459216466247463166928009784024723864163376616816955140586514785729755203744041000664711912341339494431658773340198097911734007848281267684026683863124045595597128738193972135503406900197769752736555160107765502243459586686849122582448064943950308283439613483579341140816719345554127400746896749135587929795701534191450107712704567699716779200810287161831895351223529194608576865398800304870733514512245463469006538121028882682123839502688113419471179906081694009681590564198688605445977921597867992080085196024613276469279652794793681238637046028499513636878646080323132696021046144625151925364653267570270505038401438875204643594490743446158069508232605043214487258158201740568273209881409542879157563813142447185612382697278132870617074185423795696279123982183092918372141841348869857377407732366515262727351048727442658286925713598299047455733808782434641659671248380296755842472112366132527877945498545823647583635746818129849878673887592306876886464543414667130219343430857670911364074240962004617202231958613116459023036514377863830122075088740187728365942758099784481434521533340631073783524721218047386720683709533638816482548876323791327464403709301307371258162768396508930714061582329551108083779990874874918615164932283814804152777384816645215030485115002906975580428030968917936099879604207401960264486680739909007431359279089206696602837715098457698586927427506293159931111601507389721271361156187050925659032096561417899014468770356316549748058038677685574046425148722064953333930514998616365033794866767385556504769266920403059745678127414219360136501126810119780624179407429371520431206462189065551360862790954766142292770201298692353649080150385777413292702530000594298946840712647247426691313611615632317595148914220505437040945196807065090614765227235267931377836319586155411193973246950327298609896754409054039170082963130576540368324077885085232368680113214301258335578192405393057737220043750203313368411068311632468711414229560681763856039379274285977030450196132011756645757591650363114446141641663842959504539480348554613921901529842785081166323393243505742717864393897461905888674214971363691209596636783269136772654291631980613409250927338135570512260070691726160242297054487358161950270378782371223696477667746693389638473271627886095078952982898212115966840416690611287504768106813308684423624164639133821431199026110409485327859618210725601954517099763547030009937851160760633304990393592906378276056996284398860578839802066396151298597294149115468548756191521371865533988907635876144752768734003008806492313168479978822454704637282465033336227527595442535065916355802175252209290680682197392672066130225945655549397289226785538681084906114556758101853580421511068480764925215045071763861948572936450453241876689698251606014148193429284847800884266728267112783303205534703248464693499235269945368836060851675140341257085529875202621032994448266957972409833684706168425253676535983586353207646073424440800696675019099568370459530647237410100176149825714121096133851367303768330622986397139285069942576967228978723699013157755088657477057106533455343848745506994646370909349353121158225069253541248820389497295557880006010249658766646028641849133649230060749541543096605129380243840114632074541928129260196589627173521799303896901996676768273991533356107959201239822662079134695662467855707902453031161171936422165927204789711564873240986498581037551148940594316080378608823334926347859229854481250447941470099906816313327301916012273907891939900864631273114574159880158054513941217586418231736058260575982492379080550080900629679643623379287986696004062339655871743599142182625401581588718663032336924332358718693907704026520751810291570704615262382130853464376976580357274072876798761924509075573186455456877190807999245463436678241580943149190158664452310233934266999581445317152793112153121019311779413182160865250019388741725658971410917086145650040311459653880507826877337988976618987104703014176559078939862184675926382740591356293397999743231652066508358629591369015898693973753860152562290906288493099808824043426048788478464440602096714558191530908028275684798287164317052172143043600383315475287424654053173817392420177513100462127167755995356254135721878278527498902745817251515481082377590458455656086544992155048386476195563917172605461531189958842796497667857712231498791259832124311369645224697864751567040006342506776373087702249669307297825893750022675870133455267504914166687543350279595462555888861234032123190058755481443686719081591682188386309737047221779327007416508106621588713690073231630855540659897575941041559899924586017656438055756810054338036154278306302700025011215472093414269264919471131267507264382231190878190638908175327937618153496190231342777981702183530515099284914814338887196143833098731157485760930964240519514315245668169481904784353479285892385619288368621511609499638346056798617834510735456029679091596533360137811708939459898395454497471952731340326061987400547835392707516411464798769487333197451281040865351575567349030797061692771415550213673213726970677941891224449730776921182198997400117534295439839911153613212928609927242911197995678391871086982906333082806928969024494453678861374798073130728260449874336368017133109150517144931484006071060361331739219023756111174300852067066569738250187603905734366449654479634727219172222045959539679090323689933229819241682451378166722939074770818352584674553709767318646150021872881655818300879369340375354946404062255864006124504596185033930298514088723733319644400306044481584391711947444943979672286523915810751291992072913629270704073936030425514372478811080838304588909617106808279244099346968488221303534566828875368675791054438819007149380215010672698471452649590218610813328344751061550442050968625907184044681145762120639669510078609848942870183819368126111440901859363407266056658455086346898020772460769238361801858251908201777253274146308213489975956024895129935752216557882711733939933052706168172470037727836662200103376433676320114947071985805148311685362684083714995524062861121801507361659775325677785589302613564845923229165804754857497465483433000529263017609313737537347583460695562479437387399850079941572757781450678444549366536592255985441535971707427975371445387148181494973529648229606995560837008321117741910203175688384818541776137459323211727450522045029715146678686615036819704686756965258029196416602838325857453183320108688282637331508206087919568795762274192016838073937481632071846214526044240017010727811309951786395876345714252767313711717402207326689337220500570476851741735888243787525772804765714512955146269261367622328925705608005917224510618672587454323479806690213893699756867048842683354578283036246493658652947277873819731284111329014009935605282739648886346711516741937301407548321779819146661249857840016744288679385208995071694566802305584455490070724820324966008322140488097684140633222000271895696621962038945894741321998235390257939395991980141550468402958362460583252187700215169782702719575477325682148489905434789230927125798107580910365847042467079486918608385541586046477065836045869218755181637459449521945591723757966260091223484176321249743538465593096553242718452762046340298643395634446829109151154200559115496186747893220275139373183148996713609678064668259455540450494750780941049698637332949756031682030989338355998353632097924017300212507545771255846960508687464398905724006820927545979353266259342446219092172864341607080130104987254739690311712925857230358202997270985210462061805997848512560798969202848478285593467998754427926321171017748822377889519278543751077130941071241702636123675788118065576838419776662858596675451894291779853162252322383235479895067930694212406667774733392246434441152412188827448232118253713323019150509399803778823406407574630038139341195675081129361792259950566078857544173868579829920369929892794290009482353977615598166960378067101217711075621651903193728722306348279833043979274185273493397347290387241058106162361850050370127609171039130494577631828773039094456498914384526243630517886937063757522967646690252344962979427961774426668075538260682010760091803869209988848072429826259740491833121137337493707593645259445451631715488598188255099279461762675584383322346151972943897439702184812172581817875108967221349618351938561393809543479788779398366025155060684801518183091622387367776726349515691906961908246894428368793347825363771975814411876249656780488562648055256084562670854329666385907902242967233624427734005769388770778852433146726772921491331179188338956575367040792323363328463061975998768641926650781327102314158312047880839658065590901945519773154942045597900314224988938494434610589205394004167890072637005600806944573744808237463091886126839223475191656572946600341702834065387343193784094507036203396275853487770571833038529583549450003713973876303313330469305130403254295027163572392773195152088388396985385462900274333428150923309473740453305773971536033475745505700198407928886640930806201971735618186323339381985587017922715262792666611972012586109228765812629281346352160975807077431353856769247142739523592386223117105983868232149273224486970055722103557132696758267374325037536877047014445083153777628894009558490794104903112683691476882447507837309218754217386628721631619185056463057117752062938830959113520477640230766569025042151846397690943296148258050092056945556752745417693616697376680470268697794108006252350973250700025640617656515832109167518562324126813690806166679840033585995726698726898011807250813375216544414124381552929867508196337187451695660457794277300888009723808295024224103260649273886123904782310884852843362277872472488216413241090325988810672273234803044008726382692521178256743934811442420761610945930248413669696347755688780530077082940181852981347700633720257778635796114887683471107743359870617781995064594441525892661299256332431217564952443419668597066836555964027487539262345431045510007445241337750620472547867599971273971686632381610893794010664880288115806933388711988983037459968416408089916137656898517590420142376857235627655810317156393388511184949201633615211723284860493728737857021751580190623769004726770683689308360767964274577785487956240144198239770731342536137818344660834292101826694563173346118235703104829016344696273782915915020186486680017211653150685400369637178260023367270710073076676442434162386012496344386072536274621753456502853561218053923841245875246094864698934829357527308531444992046108486649420884758457670084111162560492020398416032285643250333400745126074275337014292219915492419013177547998249029577599725257471536718547372421325364793457172633949439844939588858825648038897928086207108668997812920036105657808893144427516600628717243343206805484733401609767242029063813335312055717442723494623716665917782154554618360873520637470645054196534027878277556922902920615416311236401378620409664119780027055252217323627418181743764728303060453703250758259229018937633408147615587785417740960391298969831827136985302794655555619997052264980727990556035602645982909908862500362871629451775636159969192367523462076293412369545950833008039684071613781227021849802090302547806864899486075848832685702005084147067832776468694013628690402654067279335696429777287705510551087344698968892038527530133915870469164355816647160362749843283773019192073631170905863265717753363463381626776740104059701259608949261902413476691262964603943101631779263407161632761355542044996949546562788941254097308120042302546617013058794159679345532410323535073209048239528132517781112884935249723998410783115531568430041229101574860270086006523181379724800364578391881929362568263703034495819386285110098705567717501140390075094058925464727467941872556840787647254225920761121059695204084207871605094028208698105990461469331282312226261348454151267681185748985720195552135348865985991817850765944649175483724519906306608256065126265842232652235998605841562946918892522233395012577026918106407390557933324785404213466945754977564273745704459000197057890267821030510612821112051069848766786287586973563110394478564145575929147103370747077572823006846094136125149373889679518832705629779127419605819598699734296654563737844481605111637280199089133599953271698535461967743009940767013167756663372137167075053722527393243571287124992564222952220365704282329035516975849242627590105874646585600965322483002292823394539696476264923301153956216468189131322929682265440712998913123508363789830350516387855003717374510646691119406396683145019184296765108046777370144646624659896072974974206141161441884432861505018069887901995832856555032169804924243647273914533033978944396322389838457304849597150794828652989121841665185006320625222546507532964915351185262044827581178464208297169211380074375401906540982087706700329761365195218821344133370580423098223167584537976136664900666722079149045334444280555927769201164811044985513772233666444570724239569844019106894408448129011822522123949637595380008419960899855406053453150151733105697327024064825972535773449163278491544534827698799734885149268951709845827666438002737401395517962536982667452369118020332708237378254278084077885515229329418394628581944081051336662548456782845227286379545202430301908097372335840819879371925462453996538127244534286099358204193722741489054143452998845217938458813644744314095835918312666038591443541695181108170175212939978836913850157477704572841531612969976625633481289095209673443015334807168873995561417293007009079896601107122128576778145513269106100693317129823900291805412019072778005275307706228766563509042222685628319051850178104233425071007344431533442681116864414892902334017066172029337321402410835431059158180065072274681476162995407108661101949086755195081585707840065565015026763117450207365384091072926000441240070299788888796297422745780148715498736567866063152166421638120778779326606118240206222991634141284531746934953700281463022583164233541016219575592609690101276442058216521046447170857300127538448836487573272675322287087077847978488599813278367970473407416908749461418130420304222383909851770170572223871266420338048251117612203942696598005674134419900272988291523769478413860089939865845036369058679619308477110836097275109505265724080842443810394535706355700770648044614830010517090043410867413246178585620798486218133526760477487499702224723977982177268385518558324613965274027605863201242528020992390859714903767126884911286169600701988916010613598984721877762306183342782153659467798012831261300980074262293126356116204946011101396863021157070367397432080271126827037138350859009196695466727634572209517869661354238254173111359020656350383215251988015850041574384071214061865080339853522382677209071172064165790264586731094581129650952300693700706664308579730486484323826093347885170992089677026488370472515249315583226393486157826729080597341323832380714772629571840637085427706700893081975502086972985558446080341750413125300874744937612096761415325594701924055614387436245379648396800997185269211008314953071152969999140410076521200807291982947223234912104594835126590499898983402071010750705029498816772937369914322932838448438714255372856658179552800996243788222129874050091265298117324343879443157266430353009002307054301538852978757532810532783525944885655514905741206915920764025573563680802221029270291926808749531103369792042018712443675594239878104828794485013092821903049897935608481985729710728344892983557041924341490870926934302132077830391048575293338093504641274175217467162286922271115044682696316768286896400649591298164683917994940940253333064035231052079207409824468908854686281285075965614319266264714601056203187135733844810837943184328157783364505723558081774543309547983469108164207873304756783763223151309844353007856281971632389527350379788340175523185002914553942542468243570709877892959970963796555595933983347408891197781227686642220196239205395207287151308296462473602474579083798118456981783555723923778516534942041022063756205715746053710467341125206530186648436030574132202114660023287038344542781685419688883994535858798240814167395827986276519763577109850141377363102940278240154173203139659893346484140981611567696121480083794068674998457506605122740388950756987091966997226833378144100136511861538798536377829224865669245544980802436174709778420425668048818907447410734964753599757636470526265972812362099966130303015335458873290791826730748115185232519777865311416242531308438917447580792849402695941994281066918779726524958378198173326591348433966837251550555497058152282360732126470091270931242341463546277001633345769127957074034802061257864636941164050440836121922107916842283767686852534304347737644808249229492944151581708042032435348361353028375640908467638826324392734164093578098764479860694832730695047235515545330508763808533414569265228386063893783290336740079351946113328192817871656275468939467052726852866533594409428728610607229948085379567850217969670032960762116700812291818473942299083372376156805953931849180258307760375889763801352336273710358720229057666299051033025307670078443025339277551912409113425591827699807600204109191276336246322351596830779213415222964386479866756859422448730275522302898421942971241843277437345871385308525595264346189954738142968261353229329403584887647077631183274441736769870174822783296276283389698106079307077057782875450519400058696201726408836501915952558223282708109793483771695426071530540579973046280538566499494371493210801868373817441774852147283242273563834526943076197535545269602448914924001256935765105464816437788150058970874051030780960933558858703954794520403772890022355700982177381768687667612003555260724899099575596002422118065922090011953799188428933253492265090177354549240257876377077114074258109798381186701805405347763374381956390222603322295436086046996303996914369504083117348522314617682814181388975828626221536891594918704564993474710093332788067052647230918025462006218716187904662220625738557963386731536487931407700665753428511806401362789433586764849097021881341477820343506401698713711426122296236653826476431203656441543721725133304071776819499281459545502677731833512290668038234142662016913014662556048400904425185655359819104840303749965600491059154554156825899766887826365462728114502109311048934102050293866625330656561763955812593929584770943153763956011173103562372537178885949487508994126465341682879758837804958684267534516550351866947875112127245062184125084589646590527803259192505800486019209457241721562695278898861353928951532326573555243170296021875185267891313142182672733762274091420407570283620223020482896866594948256413215481545178321788361322377954533786868887918643579825145796955581827117063700553951514372868323455484334112324564822754275298232675050217231907073878111697698950192247740270444545480817274643186333065598888106863885085193360231845816999418177095281170606061422459925816593219202465050489845266159477528557894696219322762951024029785857546764974137992232759983345238995372993046703820548018775588383465152884731676429353992854857838984086614487764567064877605940463508413804177219979294024422101639594620895493056250635247131400877220085693877030389410817925278865221392999412255748685694275563150808244109239099597005802193713820243309329295634307095095361273857312781198781244026344588048009396518988292318051444778207303849876760692825797980011486954419605267952541747911644885935045402987922475092031896270279641854732127507564046796347012086575654946771274636497385367195154226899512876762876506772864124948502460313695477234576633416035671994690406856033556353863186617558012403806601584636371286503249350361300247802514494582118809915201054711060579817454304706296957670776244261720791398859182016042646340328759250673502041502427822485912882747521332167846665047525560183784008213374822568534975184575151580749893762163843625660779273382797904648871736720838724623434545274329116623514102243056622681311979258637940348916738333012629698855570566929016634594904736302996712914170306459021393055784251457452152204717777709150565078243384447146129050458364258455812491938284329248621051347001326167999128204013765527178115872828755786406884260714717537951805857026732982908440925040132007553230245519020695734728257078066407034198225123174587762528117174825572868210712446875777514373732604477429310276836045173729120575087037682982888483477814423064094048714100569965471930279456509373837682017783525827776775213704421261734413228964259111344652903776380053802768536109058454481386435317556547224299831156794864147158552891686992638281995950003353674065910058938898835222372822014657711287905231074323303882016899683105522187905602572104699788841067019865966061471936202190013880678025106600628830947129126156251954752732374831842044729513849661921070926310973911037577993324826249021261454357691985329959578279323567416185123491229675452047991179631375951496545020637407454466244281957088811804089300591455460891966242004782796441028067482954197967555838805241161492060286405625215558676137813661692257236776981838629385427172651643707544685178025946473070894964981146734791178458192260085171981106771984757674805048303204641560333223553485542472412945460990406267045558469958658340187022489046791816034113418078268698940924534311200004070830749218016559387035717787185550921158770630057472222153779854552913697304975853289459915382019074738788730600156412483231903192375410885658415583981516176839402655004605412554524567433294432214612264623379980745617741966573904767052321801974678018560239913879895342739676352653068145545631574523051023964529731542706190607500675827545695140265489257502128396653090753171044263329713642912274227882558296590027473940101048992565387307077676314508624171916820609960672033364696133243054762113188165931440681398292863181778786861193411581135528073966918986919544887241190048924256572336669440663540636440360435264336840598724895633362364324671824886881809825109793964118805575437213897160512690545412139869088969493452311039736250990180071285142733403180337262565559650232953797090440896453881225059366584897474029944515262299559713046876493602986906911326275837893154989213473856889134053469875826158156463926986004972437372292670846321112322572637197455668832076860512321797546400946848101961266870750405281848064031076024075404108494609854011496298979696043867400430439435365307557478806045756193026065363137512356276499235680904416966808034115534690747692542033055210647658563433036093493388556880103029700399840247435154556654850003133555596603135352747998578565771728384525897344457846217378920820679752379572515125498356121257457608762357350918530257552767315038155118893964765450214244427812351914618887054810486251814088945957159185128204418218459533422617093631193565779685093539202499417574048317330444768195708192966107819181212861008291242447787036772724622303534495982136819458543899158818870674684617772415344836250527905433083101772283643793154774128839960763030466657495057225794078901058912122061157612218736783546124482491459934572218062039561164572318417089174018181972079705858321150162175079647232914795109512808135127072269846243971884452838761037617183748679253507215195467542189781343601642872807007206067284235120378874169865855682699325858359904593962876251337187758623366243820763328926930227242380966140033873438004944493618278709558680476960468326193875610902116645316476070645586969408577346167334374041313626499195188155919009577833170814961605140109324496844422584605049933281200792229476537722707100697038281503347281157281627327312321988967389115873921332386795324745355459325091719835731950202972982199465088829264128449382275182373859427638371341642881517076087333966293418108425194748535334170078654494363889686235514461079656488505222335269378249427769700792026409575662951324301923891954623569153841969625583409408135815176508101867496785888153794237760189652198033782082121239275647239461938949486374719465031061607679029602465847756374483188705406625058741583520966676328897928630589125390083352613445555732070417841775552618138233242370777417587691945973152384626186922257969322098512179866953744818540735602373615319172797507451937379957386037723941204040064636855478523252629531211631103792205524585051066770759136758505149567955638436950575732633962833221358613179230625606884994959296995725482854301859875174695477199111197725174239337408531577699863692491632309900544368839034125374317762730208838194384998779032773215379182506593965456870038761894568635780792109116284278023878667184852024670212273913710781047751878702034199990480870155702748293008596725869406453754685028299455656856180952390868610851474509493836158919358581914833019271558640577017467983103686382259531665346429666073335685386620714349937711591803895444390047731043226736193914177391583953357114858084288028780504333146970899856816097046844269556250412286386005530551043186106224944743348624913702776872498953783954004063930809864022685864390989890033479446169913117050651555881369747181322692683359014082099509978268387855039817881864381024120351351665117234168820177260554740756285259414996570560136635193476592778433903093841663562194705365240289432662721844499430336583116761645775816572938313738188544615708620365345885976419663430222492988646082352672323156150506001802994340312568847323175756357418010956473015584387009375425464572653747353481368854377536258699254111128462180999440223777195334875079392819553758293402199233228802723348087225776676917289723525243075142999243915725112970715242677548211036715813697301435179657884109903957737501931463804073854401435069314419130628809450760435779180304302340127126859905396445332571826399426605898131387273787650924202706291211474693847194543170200736004272573099044111652551495703433158479562065446357664975158302611332606507456783229845656342347174121318614710944216064921724783022303166179287153541843335532634078474043992228096558102711347240920671421853391736654849898897025889346776523693956280153643333948141902602952188269176697813792235332811332572810854320478686126366333514953292405221226908832933922435556900947641333685607614809102465114713919141086049132319854258956692340428155948697172315913647618326552236958750629036232176077346274448354491780814465000870454124085067933680859262843711420573258641725914036136962628047406229991732056649080096368723007076293245022048370492471609296330151658142073716916824138129236387317200294690731567250902503809993880506757689382475996549328163364113241666684111586416897794485620706935175272325147181687577023702282988938252663185789437079479690624410992006763657207407935089478109016763650182501910054515722378625507935260436408438320661178043596825716368142198320003610238964071056934479166899470344865208185200938242560350781284585012640698123954049292380650866096085497215551887952721001483533874765179059142799545468225584286065663074672484532107527026143590905691102726503115475051714081671040335608333351800447481464195646752279339892653319289966216460365669575637629016125595534521271128994715167948047814822169597520070981982580257579255799930595196828689278950256447440231724276485068743715508265663178350703205888616830048503029855636330045480946777388441952246677080668243170424191887265434361962379902096949271290928727992150617240396628426603277853212665429763655379644711999646148589562744820815298341861689385578702556788484852395059965655368939714061382604362578699931231501240278836130661115213717267563896829285552749074514659285585377492434154914951257890409845625721407003868462027321762025029342979839741845913505331461311954278472813760448258535006633046334868449556853095843471696362969578091594785701867118012422722684161426563387030775277321696251523161530165498967295921899478768475491190111440342741345656788951652225841376638548757535200143237265355281470578602072079832363857379364343633243525322599496973130645759244455430964604152648084226067180963077407718748835007493975993015486944527591845860073134340193870544032135183913871400449862284442403174968613988561227137854490464763638019805464850223307719485756129112283381951969012571010327423338058776934818239242339936160023801092185085218625561690151370299908484489840820409670712432896300912756050896366432145826098212826384518669288916444157980425211364230461501814131397021792435941895819249047083360270913465828720759174857128093534961543991765329789663247994939885510678176276672239832920189995362096475162290044108074400834252743436429957264621506160687957906612654977846008543966492728411934641089774806288218381465293371398136943367758792607303508611574392014004547588334638737002582729343947056564568665049301548579992336492351202179657849606516414211245066320430338672926383923925331532867192601412701274653017093901502036507965328875692906777036972748950843021214745341491654044740662334795853026434679788339952580868092136030655054215060372021847978059257398675161277643530258152618813515361225705287255787502836115801492369554764949047112807447783660073859359356455758651786716822746907687228066434666130337546788535421231636812425624433057439595333882768408793172099552914735079200344992393507573279807436834210239455419244053411491230725353099688337119756375450280643529820210268650572976283321598210130536168646625834497258825376657023702529347787583597034040534937738226799970314996750216938601702312487718133999381190770179763429268293280086022071165251011578977562901623978006532624229246337519651786043449394079641949956516528620833315972682885171840531149704286313572524870920840610460470655184224890862967528105753593645260890946987772960346206907372016391565930157806290482850843894753409952630308454618808976550799888233539633714184207396195950716568540052714443274415062885674468035011834035261177514722002330625041058341642556941110572254045368498043301433465852936984664311979857148764130763677651026967117055194216153873591245097975264965467803069456762680284420547688465132472582934603342936483716064060154196779106854770514151459099672049464473029529636279051210271789877312712488305423226522436820211386935516087959508335010479204230694363479462865183678452903929891455182917187951577320304756388349403230297562125896668971901883284347555638743545329611218473641196950452796172952390235267783489357200169032231440416200333212847445721746092449262664810110506359256460307353356226023152689807649410563423249159016405029995563709284871222113411564628876802270059528473558557482627396531919011369773926177977948935760938564641342153254563830750447088496046104145193297093252297040407640748448758877855121101360611436732289445542262727615424706196127229023336182752443027313457282824401778077679335761207149215484933308247381241760505280333527664978973704492965385010221221457977216099913153424159564763028522180951988988713346116022603242218087248599750279024405373066145690958367363751252695098181349765631001781337000760794006944845144364047956701645398170590208545255422221749530313000998098648185253238223551919512312652139048525093172289133898454578116495174311965311516972651323132388350030487423858430573131877426812512635105396589911608778492398486696392260694566444420645863911062580901108533015073378151990250562809518048560268954776189246425465953106051027319915433553204702132979338547697600873002342104411212554909153003846051973231037933344844763839788932865710946538861974591267115918457772598664328995826589759686932536886296417192437299157785311618573114132463469516422142803286254542673991155319107439694056928048217135974560385163471953992900479366695450527004628949383399940624272721973999030323160157240096188762888186270878419751469484900173208564911316661646301108122459540557861967237752001471716457261092641968021916244935686626599163584183190243299227790660940126713254922218278853788185338563770967478202020008581562801557534642610929949478885998188049600510152349986283722266775421072223093011638477054190040039286999171168477811884316737758807706753407740389748525987502234903236809614593187099948118091557867863718893036096626707877017790553474261653250206995240332900035841277460701081305533266477920304116575647497721419017629024851846841024553780968576574008309958812771840250017972548288191027689841739454824089181823951695879756104084818121917476946346157639621403070560941955817902398296754313360301394826470092525686610447739563770511822562751836769709608017454945450483763766867326040414231164674583802239355305918710843037174494231557266554039861011979138084918346682638466495171409957863986926415474083095788347294632781305541108097291008864989764928832009008871285481311740012195827156488385564814112636756137815311320873899474137924946071440144523468235414763474209346634544285272804513213683401243903468745485033528161592546286120486395237223532626666462481821827734406973078829908783166551199404509025909367702860944941021514952894222358669616677557889551639927166641372281734895011433682486262994014732179098181944592083336236603077414647515250199692870577290880737301260900820099331809802340309746486546803566955833921537277975674173879906355408932757966695822893283602713408889968395228533487820929102125341963301736698774640171080724992362265838338224552152660625037508012187943864402756896800139223809565637484714265220576994046130700444217417298639364743115360296377166805381006339594938585123439067918570488687389326174696425888539847332072958015321513814890329251844847664252477636548179288384734765568315813660919139121629988648228912967081621589748169289890203676303791148926723824908043466576746314245523626089121912648450863977900655437966458430765291051999608252189025575635244575988892536515653188364427059805104229625866958157519453878827175781410389614042310917562829267078855154507380873219543443673141651977836445044587000924764527547637890014702418090151648415791322934351998511672984867690058191599809011602752081040642955523689841874314122846466742031478145704721699302763742180716108901358488860057714426107538886058276671054514766538949254183491758948331911061422340550277290561052776105504477685464613372491194085610588628153430176884362250672584985633619133287269096729912181765387287061632446028790861879440385779434551825113022742657229801057416996708417209557049068265538671300137695229052472061347756221578539547059419285280858208556345145244495797607952732900247701991266168085446695689640347688488602323795244772068313169581945480558949796579554988728366238462835005178615711814815506437440367015807276665953632363194515723873158147258150058973682109754596416873860220272818522398394632257143592016893793156649085653381856972105642236432215991230292937027778553981746405088756926802176816845613091329967950538741061993844505182503775601783798065082325595690156059831407515027059389890098687384122615473407594655022924017806854919116715050220076496761871162597699551347294120944047655196683933826696399972589253073058968777776277478818294173712698169211819112408231590729465561244458099450221644093649583870849950601673260533690239185612693038852991337284991326680929442436893960369363668529911976546077281484809261150954013596632339129761383421426481536085439270853763736922861038504474759309638998178699635313988692564890571697653106340355638357377531000199898273946945974156195828649165718779168489418470619945004091386854257001267314581874157206407494637089107228209669272971137556626047435334579791468229398340550308331469342923483488847729456884997701445801919526590596264533079562486888181788682501851206133719885432087849603927449894909871197310461766204894905058134324707449095031737775457285647872572742887126599255650179935530340713917891298633406136360541171458311053597278150859264522060206813916034589802662534058155720899142151127455201029492663444006390777131189687519815850718081566660775388577725214115930335026369299729627430628352683713621008352558422285440217952111902557901416143340734469116034065800481432826212585456513073685579545356893166674269734199724276739066633823747029129863642515142991036585561147238203685152973567593843188527622249173275576518878853686609414286309331574385290014768615977898606571826934949917259541640781867323715629439098637663711886985063388053643078595253059069005069760834949552462058156257460558345883168351709996010197358515597031827960057811711046408748413115506029456380574549498893618103152245824676004587304375067766372061182824807578714033616686702252352282457848614480437022809342597238212376673369526707671390957595988786964745172838198464877756413773863914107404035160207084059236194521524335537143855633659050549441366436844008310060027940468734954764577845144591243919331316683072035543952769383989061248939176793972268883284899045137896900120336103290934353749386805843702576229123160650485318693673329992794965626078032949207734315199208409773808203551464639321181919415504210453727078747372437494371633720462168578187512436580778796540905497230589679905851277936428558803047522411265007341765567228293050341948775014573005159011030381740692295534884936549624189759378106665567860980685224536134330273385164979935464905566883703240334269815183720395302420259621259584827027735897763928498847118479114041902648973344126323880323505106809438510450283924953635451430099699059286567828844667508608730930034484005412923922473154120385415473086713193929309469621664955852613046863397549886652823922853720837301502126405387839155947902340000125248744957956176129599488421185140802972256252159429014245512649040673870690621182556084891074893893432130948282456714662231774238140282173575923280664876042087444881489558100975323266334114612515306106629288859701470338761698025064622170993247425534966121178341689020790095661477329369813870523643207351295919705634220665794781762031549771347597572662029433089814915984152297213906009986854004456794075759384158233010600429671015989907555137362624789433613857558495181271339395031483470570273638517150084427895320058706497050231244908823090537114138083965752625411013041517780050128642768534383181631311971989740580781704938570133347385219870834522672435528275308276657035206912633940016220410074878246288108196440373566806542216074682376931176729214986493068082802169462098600898399701753331318166711631112518584485815999815997699281468827349741672038430717352640052574439020745553079092621731856124137185012498949039826889732716560559428789912618638009532212746099414137319544064060460893736373875188851271431954664713307476351720569575412531602404245925165414076063593497532460349855378279255797220902990169892252534943967703541461678152167161803186214252098387738224435788164421325748561839750281025577162010622989535044786858688759491695764995248376652146093223468511435574741829050459057750753900602955235172416657859869555189115728727581952436583528881138441665857969675688183841368543072507085432859503381448418958602962971821423605903766262271553467088189656345107366950277790699691911740614486701158800080915634457283683933716157900568745129542909990815849697823472126983433188509846300148491635167176156346428400578233710973577718212881430154450043657691135329711669061193031923540448844807953095048155148977102234414215750876975557892039036440229310507927407025684819053117134033620110488334835776782759873952185468034706456065799802500344200566717372040068234444185712595169533058937178777352020423305326520245470833348455488091586664833716261637877797041206497536754164860679978144972210806261509144755949070915944428612226334720573647970338114479129220769078434249034544077246791566909792010584126272525380310020061907055319900502720856678827514310118514857920315825649343892344051354932360139380974785065940186393442616735361596984788943276902165049394508317451206956957426531798439367697578243440111236405412007822876959360629403301791428508070841825105604887639792679944503811261528870814692601519065465522961269457853614015294151675028616332932582275886328996694933315950168886743482041058280329927128911633497025824300649926105045328393838641437555150710465369483578245585364824867761163567630655230742559312924145140984587422080628836458514101796192741035850334119649580202767050878454630985271527236820695013691309039262605942255359402244136179436513983614687548106567555409953809488173191931531986600193844955090364657325831238739101778936880923670198804950687399428915622914885462667755435844433215222020687490767047388524995155952515916509984987114288813385375045671205862512573895988763766603206295060388180045379759135154433499853766563244822224631179109586018595161280916744464880157754128412871426140639871712216155850842033020088789979008659592824776921556946416773747353681184212609378067797850169964544742094073030940204831792011046063604046544908146556851132309513465452974706293288556900046080623383609878899801061320299896280490556429142630508877099851199953313631980163590851200943921186809980826481600463912575276548242561851217186245417275905353852442908705102507810388793545377486103512669519225264448817684991373257696402575427660217095294368066320346709896721516109745931567709409758034133403729402150626945848661346224717884566945902922650082200492173073119891752151431709495375399236356831929486026233765714222392846253644309814580181253133445690192513886572028586865825746758392183549249066075714609536395215976822469981523165637331378625701088595204077751889790924744138993334924136124152722513901086289982362015666155052110176933526857485053656505547439535278395237564993346095836061601232076812053755016064320048026767150257223929648888492471600368298548285884024763870683202932224014758223368249282825765579008768934077659680853064492096690681235941830383099752948517478740728037476800076984728307227520626486851544679499686734377996271784458509310188898394524675360317937321918054120186797405602383402906783625366275925421467921995156762435407193459887663305253422398139106760941478206531642469374289722060994824460390614956184366821407839208079408941542806216502692292824443540849038892908125641554511205038765689859491500004522536754030428388839936035470491099331552386650736023692621841897827967145158993346380196966968857307049791759565444374174518395825603500867918038634620017979413356999160917563211507663084084781250693273621880514175701985038066298913575224477274534306825771849910016795639378553533781442183802746311928458684493776816099429534293853515046601814174426496448882347867632714536668045256849392915716197498858479943418559251623894992702049953196566231046670498577440274109973121696436224460849773164445786245566204871400094001717021481119497403602524875546708288711031910330814519517302280352473269724251982517466779452170705542083366489485383308414133456082494851579394042763124952607270503548958605342407665637497559175856556782473955087121242357699040639813947122055084837253455062531200131859191536557579284544637220141639720499624874997157180795397474417913486642851769475408743808531614591583473168007975465064980161936644445013225616242933265078116998489500346711628982334712077178765601025754558756959278918306341105701635931580770126039395842349102098678661933324047809764560171643787109554313725254494340947553604877437350050436661369123860363251992404151462112785023218152057670908521626149264411323298106621509418742460017741900588285647863997419363835034424581587729110929012240757297741570721610504331227806677065378652719291925490432022420919777054185067029930847650665199041429336033512307200319454500888065049733016250698885932046779838945384929464598934438334765950112662204461645856162085771480702398475470173213287442545885567984543047125045147688906019484904581596688893518418926815870240750039986516646883770521566095227058330931235181268529481779032835523235320132365469433496149577018458944730877227254351028354223068294745741552782606780962546041559757524543161174494722934208209685532964559268964940499018307367102333651038167002206939495101198153587143286021957363182283135583031452263398091728371772132510408559723144969045788091524725990578988387745434692265154594949267898487720004573158339827514172936775147559673007933189764378139134023528245038818083928527677018154249081317543707636519237936681883625096753347168786241235082846654104792789834710874272400121239836589969405079264108366792865029374046965446558218544275888378863496226933122077692008225809831226382641437131757081272829248495162560103545414538065947594148029089798984638763914435013326823670682547198630343580023171414878477557917674511179126819750527537057439401495325441260237549840508142662890889615543266952481991240918034269716511584897777931933492488674215958055612562299675173390191927537175607441880815762965455263872639959738071026028398352414162039177709833951351008405018461622997252709045856043866395587207748015609662477418521057712950440093823301075141623625712821023427991524409777779310329798960803126019080414238640252177997268213315531858953748519646820982048045284083815444100358040677422172615682448234675516951624479743749987967380796686016961742236261466633407769236681558908982438025696423608902037646195692518464564365158593322941293174760989088164907807518349757828000034009541676262083809583783198768057027365738691299246521194625828059540411924450401588795227877489572224779708464782617467112399045808402889566669391517046069818806718089465029290225037050952552436064879528809340544074294072717622511930931002764848194001267361671294387411022781056056121262797337355353034725464583069715710321540047047870227540692359276688001887692503695556734330444465118467760895477056774330408726291092946223999035434031233379233382459533824622056681197206961864166560845262026807308240938837541901146898531844732896472815611446424627918270937654455831597266052061079432857790470830215244282749195719402872604691843849233890958958926943285534851269882547479095993831582091487388324874383186354227117514631834257314655457418529206504199062335227316784114998923371116570762723190268196305419006943148958468156279239998907464140234831114226873188252936251522485204848486132887178165040146849391337634101492888401531530048759839790673904045145290824974998334302437385789211420372258468319037988878848933432850529210819041523111641451933983141080062653770684805754111671049218320065597035409185571002652572901727531048196990072626656892837776354209032134265288660016336367567437061781204907950582995316368768715183873682883931539144256165758136501884951565742476200878387122046880982174441406329124422150182027398031560835793373182180606093637589055835413004850126529238362998135617910523115993016350029105241020106035822901035209458622635535966379529160870977624016323288583625624155865278939373912170346379324037809082889730529681600981629419068015986540044429399512133566872845884117080657199388873880776893236244619148753595600227375849508297722626945861326139465999267923062124520716226165295496709173798864828783690773729853691597774907438305576800759936191253230715050613086623026063224917429071372567661534153458369348291179977666802501452436204341794861558873323137949075379507601572540195873269141809233848332079496899242434017910256588597744245834771789468892436224672442926402990148837539611333891132864522071862346187021332584936278865371176207779262746386191615069180463008775585784581373414054110750292129868016356838559875109621803099815229266834940605325674338268183702931823148082558410421571824677418974836400084911347505793051663555857770966570772754441107712371549483669335893028908780429463370110775653146826317642906549984329457642314622077632786529174217869510662152281394889292644019689774632113850176125934964714135120248495873228332684838573353582555566192227084854051327049686254875090930490986994275514320296863184562613831120033865229221526335002526541648850506161357750720589349725323530843915832233526244991341557451413951908621386260070758359151340084955376007878721774051362902611560307451051825067228372843134184740190283158667670856538074057792972489721821664752143292569227617377273622073865402806136373549693756737985890594253545690215899283260744643147173751723158831363197271202192346419447769315908880827525114513560197534296899481356351479548269200531864792779503307489051794879759408322095915340839296084531784755109850904720126287824543120045403302226385054360654325091088455450999610790249194543881185695844431942695875588018352499744067105924557924759149186152697130244773252100909708223780293184493710200860788685193894272908395782839533690780868493813570019888701593181537849915568772060120519849364622444878462357485355508768788250528740912088687325085746106706941246243462518798247169615250652348153265288844243733393112336285867352553444503567624918691505130899277530982722968974427658158022155995199236334717985759801993021688538754985431794375319866685684175322189502047019052832322054349863915846774288180870506355923173928102549542410581163288478225552970172961315481601510236326494403979045696259843252646300542513056451883626241456148050655260333222157905110686072593402246794661995412535536712368225904281861935852376931676536590506685091239053560300194941430007519489642096928971135843239418620894745167426402393531150959904046320796502032079087860440158466024381083545718588071291625971128508059680563441772450183257891862904859708991208411541997540056670753648528310425945057817269122093883018354291644059581216658395811054114210242195058277668831086186517813369974958680007103173586655859551951558160611543943545640667263871312754307548745429666997235911260961270294744659846079731926554410145188159174665416582336075004855823543516926941506726357750468847349800220995297530741899833051448470350789408674477320653625820420816759790565306483214658589459292769364890349039983587267977143471645581575317328913357556902260098012502526570789143346663319031603756400458284855809015599859193775364328891377556252107253914941946323629305855971676420036362481639841822349462152577439127817444274980070802804129568792967711511889923152271033130029726491882026518912889024390371778237183542244923209780246836822158122136975337990839618404735416011217959015399537861811169291030740631930962579057667889084625401821832729244258434642666919534085491224571141826738159280503055163840014386819672238912032184181878429528047949021102383522685185841300470663604370560981147480020010940915730207294610640051541738359700458828573682737171257493007469353373317425387087084748699677638260160714648388995303547380921282851498714357395067179202271013680229277583310966635861339889614540429111951266974549362758666189308563712618710189940748429334835227444670122075288976793995141593995759102608811291853223163884339960722453830394437892343377550853989279597968071440008340767984035593957892524937493867115949564356937531526693833842424209648638693130992490935785558395950777110465058486751628910368559642198165782195130245648039919470417087666429872973775654619706568381021210752037392780529504676169936210828216972592212299120344422617463355726057283504344202622780217654283736178996905847833529686538573122740828034057455477493250523413301851670771416458829329211441097920999811560922482722100474971266014976359799083042327536192464404111880464826414873307805035410888745175546104512564348016964031726175987936474162704745850484194507212077731923556230064094882599647454967718672091162269262235434104724071859615992510895514709595576130438541394819126466919702764809057268378722382079277849060831706828437506955027322175736398250645313278792198457061768619021541886262410114093595183819228486690554123245245113372274150045462949034937089026965556187840836562402710517118029414464147578474853921805775907274401994762314573718311852641683741717832978071250651332531170711306047735023797277205198780756392911484876229839635275836056911821164375906613040709597696996136430633385283540024049826958653761827866973308105985746983440893682223599217493510705709172920777951721212404375684884754087778127494045957675579798465536087042905370986266587694123376645874554317360490500659432092021373380475679487040007437112053122993384766090149150206105645543124208710562863806711428033020832712241278581382593343840490331834636277603950214493182763031605165113021823170029912860145445558026448575847383551789066236992553675362743860348218522208542630787940965108472190616546486467076108286530281676591280754127360470307260917120042335480915349232951304603471066464295366449608745415530434555574006758109063480143844727557785538496233856736028071361907973706916162725797179452138909301287685643236144633524268384216331944471238430424991717283578030092864753200198447574299130803362281732421722652802768452015694460597961125575275590902257231322472930396281501080205072620839738560349412947001963768322317990673577080592380977534512260943694423313869484621419569803195361028614227041845979098465571582663188292262292260576672277497835168941181607549398193066692690721265675179919023448312907453961830113617597218879303168713393215716337115037599372761183654142803244324380544326232733876239222780945013896622124979116643038042608296456937682297559722110340868828392646094306221866399375735619059362378686113201501039365832828350168893892404907478915429469391778264036435759622359812450160245269773271520857617498705093438171652959795040464283812032191086013182267935961621454731737870588980666786041672444472387985333663506043388854342577052987057228810042182648581712105930219162211184212101082766009831194531190430030846955279756266434132148573017369808597607577335600955012848121245920688448244790345934857807603868288964748765473668335285343870189228721307468493575880846667805424333838348896065028630344883261196332506514063477660621191414153451552400800036483870043759954794470992709668751210871662426770643065695161350349233667599776501111774096379829501743916050839751576131201884181083706370375901133471810037045253125743877078831693621147540589945777519542731333134675108292820058549328405193511267243006803475989065359311356937333898444971670134336557768776871533782830644570149250074475344358490875566979048964072072228885213837974373202327816881364612163263067124439128232640515065469256574271212462366730993857483857621251592011323868154839522835571915641199102622165032457271453858722485341370598707103745077979172766335438876452244936685809119888369785388688539816680225682556995297516234646021930574107155003776207617233050836138420588486925514049748611827613971848593944619776998696822278471154315002961278911844632215195294841087725642333296962637574386223374154707544936527074546532123765360314307114231186450290706550391458776787115003805404339677343788394982729265621941712351883535890245275002317844482669365882855368988085321362169202592638761115477337490955063154547373950386613758861005610382560834879812731277123634863988170803907212109792339769113404479756855631917984113057911018937315415154957701150298491402290786536038672224803052854644235356453559935898999695430221350621585082432448973447654568232864729733766895262542283400733441626019313637804689718318173228912900074121972213521791829022343958753272621739512021763487338827494401376472201808371949224796779934877624744470703135550779781493707690715427333938213203235216853858214901449053946784178613253747543723832610302154984433787538558159467820630003763323601839196343130428626703621167326767036594814836054919423092781779545040648339568149737652096020672908806523881484754281410123482817836431020765751865529807725200964186348109226890440065220500606882156462533242298036369844766137604048582447502400538414583885247567752756405446933675897524227705021245398400129158117301952471766813859165753348191921899928603769631110752626829947618000934698139938469315951781961950542913259251717324731052873437296649243009932362987514096951516883285079400519132282769986967862792390765098346395956963158926283789108359115649216010110451398063446919266018911431391789016987724377152823494549641014060503367061304172750822816426037809139739858262755483171960703999151141431870522980039668815868048453619569528015868614696805454503413141833762232927597042490602398240104880361433500462595992322855544778838712075362848174753782749720189088235623668060450593155229626507469595121720510609370115908352955932646883251733600107136480970450800132647624850414138938736643049693244659271374590408951092643140339296070959636170235668671470898260315999511165229229078674593529898286457913068096545813758464100752929273421932988377706035733855549373946490169986320561748052277236929631338585311066358199742204246667007877920793961747090834575379174362842203288903262480533262832529137841434640326531666232607526247790368901158015879606082455690348326006773417525991552929574937908917388260587579131534183815070789834490249337710966216104030225708574714210588387554526355726321992495786733929401916828333256891417859241036508003501723325973368351674282636955781969089962171443840991578012898013319267774464084057735663314073332473133214490514251840823591251529170764561316553520425677144495316794336888596639730281631888150319453218534364092208192029123929566796736557880518127009565048880455251448659590734401171280939582387225602664444166665269495967160802984722232467057712516264828090531228538382265344895034752448394410977909638956298570153484249166993632735575522956792463035274791690122194987961381565945608243112905364183524118938510217019381120988851729811789139337056339388327549789931218760134816093938416811584097974394991975080687706523225827510753758070270787914180209259702988779407596147195440504908025992736306302165062866034024044116582405502934889824493227989622173086691300415911171761036420895549281693740624525212547147726565052558559561014368544552269187048182665822869944780806240126390777353308858371562782197536298756231114190131647111908641846046832666998868275794445128779781199374908371393173623522900073593403640393882790788162105697860553518671506951868082827481343665968887652801572230439447290389756127199617492484770941842316217233235246018038354908908603678925536734780410920111793244471652335937121753307774913864386528101010170306359327068234524313430957353558886369833740239207690919987431172495222987334235427338196262089826244400485423038839216686090159680449765297012988823391707725036791016002493454338958346056022238565618697800586466767385280344129039435184236723550498881677635082529124183289655635145085664274169025229919063166376809958579974714011126123036480205008367415027740433374691890636104822297793072101211062605814601619456953894215203310231754357296353799111082242663087656594894373750653961071902965708380251866138971748152621060675474318988183942689106287622033279849900564398506511951943694605641957018146936606171605736682984690739850826299367747158030928114058261349416714293234908053116009263557069423505666485032304133286687117599325624291366479488587925086330355689893421174878095952262466299892870697971893472941495670253055165362343369215568296812781484910496490179000842975587003183400784208833919846101531377508200543775100615240416185456608633325779466265796988127019067964045972755219609250220586795079548085575953361265801558194826854483946346931078863045784415670759204618930590241341493757241952682217973127743576175755233308839656992529515767800091855045420981085155494764068355910547742240820160735945342250688045217333527190779223043295924904977066647139888988808688179041751138937048073927841156856578240329291063841156301513827981517968917510205915353344953864028554732962273606189522488894083900768647765388410147669413781488418779141800379810620886724788440823030039118710174574592769204901952633802493850357113918078766562733888631378647740335958740344716500142532443176323196074403326130208931780607299551228050966537127257980564559273513590577867588013580717322331974910785717841458898284562090145769421303601733598945623417378779452407058191225251236033058279325609467116508383611383700445994093583578551895514406327023230757170642581298421494181332396656318886775003066563755859539836742714219391812332512985209852008625253166529583054794151731689263699140666677242045612221751733050998288275565890010279179763111740651931795404219528044064323629704690621708588133520702855877289243896485303113275923841633295756093382687460501812178259239429153265326070127201885078381261549037444360657274225920611426266033063187550017314398960722872331768888771274167317956401574151331653343235138097548206850741619792191521091668435278277880543631420156892173781931238032502426360261212481234007135981234628071762975076790348053948027123250951632158185384465995049581051136961803753869241328984842846220699981356060367211766026404621067346143236964042540059293448169315943269606368084957939627508710262327187574683828679617353451942281493211723249975409837119250902264179986511402345492048703665523582086366223029523693834992516735520441785243852031574277609327362049066084605783743776405097817706803458551355672963023675533000049925232213065310189026306222467241297345954971366970499911743703304280100853346794527939251124697372205036665594584254439954091785499756374249570378755050756645014635882262985753018026445933357743880138443912470598151723541837571585817903586238821829316461313113438511858600339443559875784598264267144174832143994463144372949068739867528162136162870964746001855186049640556317037153322238331307736893333488879459809538121804316448007341890854957899606313022872712587350983151889495261331398277921095423700655449976294036405632926409840588632433014130909246215691484438260542938691765757110137767390253446090852866627433058443338161743384295440016661469914395156569581109527047437575064886010586076778663964648901706762883187337195663559119706639587052412911222252425865771755951693272474356736102472858245331254393277907062878180893770557273253544527199750632280094478014313635086841324990931796099645992912999404506325768357601751538839391296089754613683626138686128600490940792811329528410107383452200018796996241566880455478893954923082331003966852006432158012107353333103805036409421372657528433519264951220488230229071787723192212718113018043525776176991229461667274823193873368901228577081230539286408463888803257342357760681967393005115070531740177171212030547723447567974988194486962738769179733780374826121029484176478884755030055907820400777672075172207900290554127208166401732582576283825473191389128899925048084178447742828103138303285141752190041897740724766882960963694084007876923094053688319795864182183544607285488734914935312128463672636389867594797881669247416975179800153712478300573372622223978284886925867701685045906085521242557921945173679110789880030441268987611526974574260109184480182046330629860465800352708436257626778295281472291546213899336576679273629766018805548967430894705665897071058732204490833601271270867531878585317348967415953928778533697961566097856418293528394278032591819478556792850698960262573625061784026398412215402381483329282993018246682546124725302799646948444509926330828054217406696118352222908013425718883746893481642802218311386292661034437842948752034051925292588487524463885471198139768749318412934759957007931796001599103899870042769063042048742750938349786944065924672761619114205577753593763085571507908355077300017617510364107725024218508335895884809165915841089230111848305783045148086673925653530393999308875218143739782272436338230061956192810456410167753272921222676688585704475253066962581808221536572607437133202778979136477042346052456040721403330745946794563739871281556836861729480672030597910835397156336650379967467655050758227891254457131143468967973019136371858705297349099925737826239465446513411566930540955025676529393927574497358888092031961876329110022414809607026035639263942683877747694770572586134890569480854757462042016964697153884019130764180487867244048297233022116352602201387057464144388291550118403030626435959356088846652845134998273457971051458689595757197229595754007014974104355407974232953953764413549562251395126089702092596951841240358539092088624942792818043151654482413461173046714916728245565683369555166364164287736989393459805466466638040720473632776634662061424687023270086765241479777166010263243747399359086264616500129254639716223715195249946437678320752724940878855813195025682620760364193154273687233507288200521085950041050969943875936308547333413392766376899476181998037311975492840574945677585157752610387935027212754187939093070479763533854536863294244310021426149796390376749683563384834402936156049002938649631310653480136194306753251322850440771760722113260956090777161958536646011534322094112480682027062584972008107239266972234911366962640783024925794300588389443086971026425767446701179051391369169647345359447637267476076943501067976328101170841512965983828025161065178077785881322785584090638244316861046960403433950902806315484042994440833458891559776380237302683547587028665156453606620148038992401104904723913483651857817973520789239693786431440617115326458024427574193767135854494938507435483010873531743008360052899653122627985339500874787953880109881145452479975306386747291553024142066190636484325174902891026129402464231248889133768624154172692769911776367210380305642101010166642301014967686072887860747220087741580294195428269687172493218977444035953433740688943070780193434013751052115140128957333903328496298386336508804591342714843126884503483611070506817751547683659809237086337662586171282587385796052518118483081358701726037250415977188881875994207786430601518138566895157150233793507036751665878218439869018927185615765629780249980967681893549394738905200369692379654264922607290512526194125908306082865194662237494503212973703154522492221847327757376291722264850029931148745260683014695384745476527656443377825689316050837513371368584060737455333478761936455652201250912790196443102149407986046391962271382695773348655767729058244337977057000938518766110746745174264487252201081547702690339222544240919738515834097403101210640036754299571501343747253281172565170409932201544216502144240730220756559423338417892458376976194996556659902538373231894852711079527979952864744912611311828788870329911509709860641110451345144614301775447230934859949316555709944556930789159071485799050947388298434182738734174194330223994040374297875054167802791856192715732254361710566952290464837821000171733619207757053102880724320558791487755937146342752929584915659638047869932930805512534941594183765917647120805587132993221679542425504462548230878454274648609711887947144977901344729369551185127480411407771955236903776021812530192395417499122892304765911265449595081970537915256007727487195627527696435272416582672095864921839992744980134375845385532963053312247704042975797245840836542956174543876276601534008181770009597934882549137598549017824218351851476062830044119397798044776273095747884059629911253211798580947190586775358994536506124887551390932429796584244652286067281314690568618649165936195750006538307847278675589917886207798014662546498973679170379326826136796190864651182798028562408870403871053601440341964919856322641753434169252758500903021539849674253132082711814770290232345043626717826624524744852452200291772719768470720639064370993167151818742807685906051934184123797239174289768300310922676388422092635882035962059819851995165427552788629288987436968431189120491168322982491886689786775913473303659166047597430938862778132185543507554774141400537526814974628360485822538839158388178520868143365886696345513399432374166522118770211048915830592318293059983694339712965231984358143423848457396116602592173610640570331868712730459646156830009306287869710605131054566631802836137952026024124632216125753251849106859213147408902164911401812216519949159700476921694843281536139155276899213546641256385555671986777999856904660413616396852927558884902609229233799835835292592330392291301992193684983689780397542647872863523200520164192636959685675439447863290916292402913497620513832641016290044676583222907746256486745103076940831063622760579273442690088049981906536029771671108597653392406686074004635935226017669959308747500801407492267432365718304035369767318789783814332851819707457112297273464152455235174396287684693780485261795257472389209705472251785373535010620874279339289857614240446229035976532852646726044665636601189785875022298450700788634851258466438231660804104979572177608902325472516306035961822827914414346732552260447864853152531174257079928552685285931643336609483724826360540317480467936693972644613085445950758707019719549898912514165279598181320682703888072992858578014123233083295518843619698722038213643580358577995280117155634366104983208114073750936540355221829049424151714662027095609333346810531951481110450004720149485054558730339203291551188103221401142625245485151855457744046178539139332428636351310787004162665957283595331521048318365088021438818003996678049973308783430802352603361077603354053166813795138848696562335709169508097554063419582223891941985119008828992243805590700158247388527617128303716206472684984086677131771729465372378277364688913497982208145433241470388242005650808105462424434242909627724845135420845627490215807094842715755436744556527746761364087205135215284086518893035164352316280135557779418998966241911752996033611670367193860162350740196388639990599754863384303202722435394420480843143683401671409290908893778448434460734942279576673194759438391124427986718914705417025219587116461345186485039172009513801172992466063769130813789465998197191250203127899998870366706216223730136521567738461459980253588574309133840439804169399223722437909796091998369453231133231709631299257350521823345124044779022873839312650388707409730234389067308555780935294612330465721798703197747442869787030680259539734215945236338016371332304602702004958055881923539526091031098953793718768416585098307346910995775118539339074324296287525061977946353498096523320487183361600668475069683652289747422204554853709139043697336852988940231078218511731002287424157637123366981372673916075611410036033602046669636723877309504882294887506908510789804412889683081436840761923830653532060877336437675524402082501155479530471905094874216154691002291607345175440431789780765772354314008790684461724281601713802745947251321126537839254606425012429304810397241528456035297375086430328309123398207891692958085688012315445381047806047969416669791742953967076644692034924882736030311059171649729259182759817137840663956622245592026585227920655176474538292670819649178791962452457212809761472016872952492231802811624562117789479273378808007155168285974253443309019855686662469761400246599300369921062245286638550281236275082165290724851498429125659497993949680862231621285802146849785187781637275165711106557769236507813765037216257910036010694618556156041264760695244356587543007123027995241270751507973595280083051254730548150740536077614387722600271815548065483985708400393067769989542934631727172568173180346728049140463037008995391293880734028456306865456047662160936889857328834187445945829783280847301941515292332092661355095116384071496554211874553128629006946117833660756248313438809519411947671172906388345522588817678292221266388751261555296005919868075279741680217764221095745712889919303373488743270838764198148356995846369577140668132464929443525093605882587491611331486993055112228696662932593580422814997188902286332513429504264052708430020991165517958246091952558442282895304692366723966961059470653941121325796831833985993697027053662264169108276152737392210745786438004729334754462684666425463975649535910348714749495163798684202025600213100668395004960637185567001040190654614890123794474005549561718297858115010041165661207928152582000634235996642723731562439217171854437975190923396523111982323241275085675245188607342963366523061102470836160111355419100098022363194226851631001090708326060563663080404833357071148105261697653861401344366356880562394325188916026182014011843079609664990690829042477448622799916192147617692101390267867994924705194978808802441052886819882895976710654730016742869636805447431902013454767540575663726006918090478370556903731161770748632899187144768301793892262757469818646618644872687872538026303745579731055409207897899364316488446469987491298693738528768742338664538886451922132872706513631400656258973630537906127877994691301383970971449350433081591879508135574904288021508554191625698177301760144563497532135288435787458523043737525510986437916081658548997012282398413967076343749380385796017369996399548002651676191777969171006413980361916313039164463493300144298904122053336709817585571700869943484523715866240387007287381098643147249381096874140939550756538264802322061908046608701832393809164515961972833420921352294031995028827376513433558385059010066747278510095777313436447040918479921662918031478841606618098646488807066086417249783116898053388977052916584599105021372312077457626511682544878246401791372929812603130689694894510187277121504097012118127250604721135282414203660413778735920911310928409102263853754672189631035277782108832248865650923485222349546452796487500010144664218015607884026245375201942851512184809523481868881974879019107219360306294001470251813769460146077234012161388583738119797824250761303030029252709496175279657101868768483922042574996624780051406608577936952551707164561216547829857630835707106740729065741944941058029716004223470985589424643371895587154382857236198720990700061271782149454715766948850506210540347270207926455884071433447605467292085202836581946584265824411970033126675482108094473175988764813306801354610959269392560747409777994222693298295081735864209500843621783779322660077914302163442109069411853335571045510720975293659803951339362908690796527360835984195042258710120136401144199953078298459108292486924214475544851149025856537660064546807781015436386617436582697379122446316597698991980068648429416536027690337977043244607115468264905233523713115332524277918860514085381642512257148880287957325008850745833763574216299446955510946962364684895738829329706182613356482783553086147829574517154862578301033786829978056113232812417476619086308269067663740576963141228792774099010936711972424218478049027283540186380490252308470125836421234670111392295217828643991211311770754946787250543543693978703114749658310770768239456159407949889655288950304848655652207364382403361754213068360069299580644997868299878696572450102795368620714904963005334718322038744870780829708097749306738623172502342476287563071122649366216595222856615243387629431594345439714830678925800772623540727982923276264847700428116218296457279565099568597982362964542470784758816344164859554546778762841594627061562387166083768034535665002149829450323220769119919544920569853350028652699653734149791464433067410316177937726198722716054584844857225336947578556848648973087220118717950765587331257389023935474022882053605602125487836655797248689519138499922314811611955768006736102115595009174793319989026846666757933962313859745996509046594912938962993513408108771042134276958271628851135332066345734530063097596910119270542317407312747130886528179643735927458125247292417763320511171717941500865633307709943254782144760244567131994264997418634941646395811036341242034555559819356643385450109113866843337572313930302345315747380327562885692956460599920125413310456162448012470702607868004768131662854542833919584720420850250149087218464237119826115466624514048923047397219891486424885068446413641992277295092934147651777633432406397042729263369946490149960359069995266227315370549762021598713761616532410635387488500942717723971288398470250203004363064006783146105735730884910252818148611919045063765426482813249997061520038839860098704541883063407132863855659519246020936416339689033167345653124347262307968877857388773520625676955301181157281115554543979961702541170951295104469912671015646214468759362894054536990378153620040711031234062790556588797197024652299419187481972379651802480625424105031280371293559673548323721009089826403619665020510914519369626763225517489777430990988659849208280506382621014509384545510151136866303074461887263660193249709257323251317156984747669561813393930994860968944823760343821925442628900564167859376371608759568458089880959143187234466629295469693682765865037746207404425151973349535241833494645326087167372741750308829434157120832974122873644200984057614009865039192614221518964716985328221021822826525454264213169659459117818056276869852253557081475187179126168463072850686407448788054348922045759741561218257431075407073630538885950565642620596458162919430803328078289577611650947469487981113286985126751994291596952891787901761352488526649830795481301978473550405402677232553944152627578013239427195700431272569781559191894840699001982727568462566164113449727627116955327913084682573105891703887476560170641373921298514056072719331393606099355694626887088844288507936929162735394328627104197788106978727139699442291935811345566355650107204531279492487186797124012742287976546226472517925831939316824569756017673470926403769683044550128821055104212986366304824780321316754672770020843334093830281440633737430011224345801277680299351295980341694156613342243633046888296342633158238931756344550590951443046051722359966156426769553630767410581956263565396305052939887647041332164924808255110163370836750212998191941340901380837849933023750512861165936840420189015200726092413272627428850453041518016742732642631612824634395144007681310449777417261042427837683209812723396863971807454443736546373482950192495509029010341169502756797931201748121831422451553793490054924475877184896844316164331395548963763911797684899217053049859542157862016108142886223596616428810736743889285145480992803907730251068371911596665727700239127425401513515119448282691051694846661726619658424857464660217874855212869026903121737803125675543069303208401825258108710466333338320810115774906617357617835633527552567334902604668567470737442284379826624938188852870179645931712280001453081266171175653112219432042170870114135491468522352116152536237433776878917279115694014614037143532763164857804986964014879705690139627367921181262528755405750441172820968111855192214842677070292234377262520470890265488699273409244772186225657997475151052602027898458224692301180961395056684679720635767856061956389936334078902089266786556577966650250703438851243945380917285896781011986140374107091754304714010917316940263814070965644914527981564080422709514363876917199091541011917499356585710883331590768034686968289306392011421189775870338353574812484814198026474140600324935066972788293272820810957767113930449337028018523069256653622165522307956679149881607032311972720151511311838342140569192609331894433434506102833939023007798481239676963041502841308407769119847116550098638315330181010165410868200570937276623161491132210853168486287737429825309567812619419956508494140795707150441494287845753387915803607326354705683762849748289387719629089188796517403947048908093287238451216952686524339086925238869744165288084418080079500724669685852052779457441452652949237354947027886208603877213019172004153908552381356440787227046875269733785799812893341072177959579544986650871524589838418881866653236632571716487467452521724281814361455962599661117746171819937894758361666407045055815348274089421564646918775495753084722656495765722342690182850427801953294604855093765295259481864000556404776695732300955505031570353013184313222985257590571779235976615963682447598815388803920101695267991614137349665276500162182739959114258097988368995202352169954922747629174779522903818205103475933431036739328297453984423960973106993376288706204579663451395256195336465885431075120334930820331866555704195637287341261356526304591897561482457343088991402100081746782630886733150767484511511622937952232886357293887259999197127390251618456686255932802640301391442402451033642293777247512715352748032037170087229384344814685954644461481171651556855214091842884798836388560542166918261987700174009835136204907383159197941102586004844022675469360702695927713386990457801181948703470665950045761355483347684762309637876500818967468625771906931541986047808022292118134029825672727107063401590684647786800714260466552988846466862243191011014917356502354030291256052689291606732919721182517834286711246474769606363717879195004949903038693714683324344909963281520203945317357308843153786533228498179443440123660267559169447568219631919750503419168759555090296138415689562364932797034814398767906537597666917127514449026279353943889173047789498216883006001695624008808878463244481835035568052634214935242793996399789257460891453745854811968727641172607142905982011689910955615404579732430314071950492044467343796279773664447104544797339345566777267114423464678978194789003755872209976131976391778496718759452044719280598264921593155774132272198414223019439269424333311843329732693466018921648067569971828375845510643251842819084856674200110968094767816692595374660110191203755522818140400671987820366537368927566029086231161389907560329636741596481357462761554881254561987135784815074446940585975446574925777469482382696721210730694833264628194555616600274810978533059739748889733010838470177735130732251309084552715713058252312810983512445951049661890616362725397872559120871619614882432932261524823025275028082691968904719584588626883188527509657290485648666314573690040407457500572555554438683097533202642080181789416109340959272502733951398363369316971640804889752514388172454841813943663934478142572933535704302811602984682565575791552919170944257708170582454843242498625003355183385194351112313040695948123725397861666309938387662174206489882419409592451061163212986105979397448326122990814548802837294191959656322587327162544411260633964243309498594785502691577969680052740043234631644007303640154359118003058994587081760841939103065333856255399722770259176587777407129864471288978852616079422907105137471832673133831727143169506450852215173758025187157247939269755711616476016840452394480435055424965202071194787477966792975224384372288153065795848853281005770999925760396060911023401395740640837818951806422765005658329270158494457704350637633050805191533441917897407133552840893426953094332205179769192916908832576583377429083279834481576427286210898721711899235664149360240897210174059224321881003634887362136504448999116007297957432420073445679632170922572303327179086923895162927883087527414151232144885075441819982485544796733963962661382436778820363151168631573354472923430941882837318961002303875828702114884701897913874838729737759509272041667089715850643860583548215840003114709309890209505593163117125185269009186385842823854177022302658423808975342444347775777337330323153226752822503955879618281222041127003035214252431470052832758238651632397026098706546755154691118447016056094963816198267687913570377198402508966150965725748078871622792218170916601129463883738525371846353391732019718748315840685638920069962249408461281171308455963856147575894793962330409779102389556903972441176916490677798172356600736718734667851780885162670097444208007923172425245835282069694962371498386890308220449970033480859809426666560526730978796188615840551642649482060937735974831001193984993048484279234900377496306615909375891010601972824228415829266938128406155344892088556729299669672664477934771879703802493634355098859936439398132160479561943346296750829410570330576938814938432294218269656106100585290505974739908761479811756882586371784543365399905762583530886061960443899246311913122860806624448027850777096071380577983369540406425355578504668689323281808691993850192240914036358295050332936372806763264922597842591711508451679850918301624638607717747445753263298539643964827218675863374345204808211635089080632838219988687824051323755992520238782819240529643964438295925163735590797149962318849585536831378252511858659386506011129205818916490508576274416160199589607457851310804653908643891496046094856106221871987811495638335139962413222347343454777505074486689168799722788834165156456457329135650423056813288416967182714957888683625021911918632009971957834079494723503837304469002054456561680660167090214426418432121410169960600099190307672573515064017199181649339001870638550199200375581111974247770385924096699581804860191904794775965532855774585659351588651246680945750417478516633060406133420387216091408650127028952649943626634925753934313910577236238089022870281941774148933184799266904350369054838756063135482468551705300235816474204367108716940604334863858035184262126309775034558203335152259350445332742933046647219274086276477655817794639032288137565823391699085218120650106548723081735064216623320693118420673908921809054003002229061063927934488097004082967439410726785228731255782407226273076344065952269343258440100971126034533231337806081627894565505686504157966158510347626584816443984376479647659435167734722940698030297411942697987974113742784150662211644207828516944045634838536209323313135389069634547246460630123857773338475323167531913401468276046287160109011547165100049449706881114265631068417177805105060587233218681110260948899072531456551459520421347062027993970857467380686589923562953949242425054820960294227695645074961890014493492678383325755045273469623865097137334310503554988800470953136436603752939125210538060657081949122022567734541170498044115629602162142857778290293646797807438993413651193452897102688465065873998688609038027554588327859398866592198986527851510589910171398773374239612559830939459792367574556714998803391528122920420885566477176149747035253621188335988533673311159049275073827609884571581238923329500261344446633063124423312649137819752384781369336093933238244350287764028812969187483917312143532226607380108162635968334470525823942590710709391222338518888513814425169636785065744358901642159986222468256957398551671783836438929348728297674482534133627898698071969057574216503747723045487065980217446653999698168066118914415864661909169275702470411291621999447787737765030277218518503502577613223024636436437869897231662511400530045594341226649037591406657870064629247753003688201738561351641034467788658927674686239203816540945704460725066990419492953651436541403972741760630049505888807121909209676848515441688272610839956539291505204124259639896419181160588129799291818971902366160535178353896349366925094111646443554337101507438461103782208442035382409376551659331416293257207974831659534665120144036945444859309643201409706057723693951024800520560724528903406377907307963889758357499128953010177160578148505277175665639303448164062740023477709350202609375584085812436342221521113006372794317678319897556865681865524999894635132667021932074847864872885097724476206818970629669544495801525585078252019167618807255664473232054533654462913869350117029029422731019352162695036466594905677775391317365821116897750647949695791781527858359004806288217231132894708059642248229433219014932857460628615643491021369009203588518401289963167706988280920471921616050317077739349904012402429131750826884104697445714433305985602234532629480497996211173524461454768549928326557932435922833940696791250501038158558062032562871912403108445429928632727032769760785526664176050934187940939153443980963619132440202268484555135845145838568640700280833757081553227903772821616679422963962779245051338246177103718764530473822555568971896054451061181195304673104951236104136195204805216381175830853215001801582949011876121591553595223981046993160958948167610687997572178327827630677987823059099259662183332080193480038207009514763463114177443102786582100002333871432619099120366983131485887864482255716964402076926165878105189898679373046330527829308225044926805696063809283612603255671756885191928506454990220003827607297276248737835019555453815468329559895422103057441773799525189305754235671201683119257918834270274906923440903556378990914642123646249098438429718728017611135693555267207076579881914287057948313705424375158601071001456746339728219385405501136182444664093646810076908653914801930984858745778866881129521236501746358013200383951311818093771453567185457052484484910702914539195262769047134675200257679877500238002101110360444180595411049576652925101136149542458934834262535253505675006193361252743522368724212506959448043175610595519721651442841270404265642371884699842541415661532107621135816817807393223517788451101615819542732652048703009624011615949085517527534319253321670327482074999016392504254159892800961684336416103572617159671770135610007084086947400840508201633732406580270983781669938842307167421189807432368691934978319335455122998179415102631296270306963027709540869610536188924708125302021234699936987188273225238608420318465910104794483483189462413796443981095501128237213668781549006222505160867617521463991386141377479792705732930491400933762822375013914444087999789633407828909406976863706139435031781844244171933973973346998796818832753417301071374879640455222507656847756652224063682583179497749262749007462740223567324086007638289343012362253910246822601953295406889237679582797855015775506006324609870830506648071120369827911244644380775734497921981717661458767323439625740365224722617827094256279332182563853080643203292290080783591453246703551114880514542739596492134340634644591338939705986150687426229937441975526903541612045849791943553336748052572308568324682002383747897968796930044956500176892360281750927626312231443433193308692731581834936875075811464657776202597259321430763441108620526872273459120003938924852690496524506976118692431216141147003683300902617456543337650689455198982576097922735691785578833376402096130660905864987900896275376698788512998399690764925302604171176930530130209464899654541039155637976335583812943298067147008798949271216486422964774728563969186858279821253323603052892524933300471086978966255923637806499234580187277001462323090275158952546865835105189644837553685628347388429664134286925246084250487453912335622223142522640208961998934189227078758717592325120581282787667183083959040428691399735399871585806630408110977934184376212825029877147272841463904633277815541375466760278018993858681611150175191649021986876660945616698666767856956042015104164421931659438907747175503385763693817073738690366873806120725814230474684087501650885357108651426942068803671332550186979462145720297306943843423674140250155911241137760405614544216036430227891662328480759389338873708184308549916561094193429326151668460285630747680778068384011578976935624689947411856805224113070102669757895028459202715521209732537895752158775171057321897451016282334789053192837352905475029678380945252185635953780868989552402835530224973955572014350790732774465830822904061036034293292574224747521348505407383182510118828922309435868041547926861047797202026671058435895185237953556679993304206241639122271386334404609212516276888904349936680163542884936363175506789610481518791943950177842118121475641597605106036077054390061497055682794525687999770974667541640948037045022433463927622073777832560469626412507130350212883768671509209088699277967981039365629823062598146296061526780367930809014580429874662380276706109234096307619319473250210245212089285443979765458042072305134328441776197591010219478035976524729515638138903664872766337528002050682844586829909516043540077103401408407900432926264802803822768117393928648262965403019540037075478898842992004979232367294301116706173870003895313592450103902066625693830836877510650408437978926566361925031226530161481163196948822911806056957769450285189727778568737237519425662476646403424012906622334639375215045997108060707739877408397879843260024982172162104843286327905776558461667010867455638535809344465765953675593414613051264272621143016378345782965964944575013444672902324151032795522264654366990669726910852721218166525173523113247885622776533392790454966607060969598339556149703514132832600183647895022906330035936327992173783599912590967809759411062228462165667632846289186241458466284607403048994100605362350052854386310027576589520917446468462792124451287352375209915408891540010571783779649981708638204422151903973093546739720476404877302531988073284489982010965257279763266153042506261782088972905582938766920520895650488688774958111141388130590215224814629742799151277485671472794727517642470877966294893310457068697913962709556445059185953433769360591308127988515562825119453983846923100495614926789138478638890341855740699514017051723784242768087114533321263943687663212993950730076359691310380485766060517411574310546648408318796510988632343002912666710997030414080712783326244238106612031763637916045525814344532237750730834699261346437503751032463359271045937894101317926998040658778424078191573055368495214611338854635796302955804637490544314758723250330888800054517767837665387788270229843328675407771546586883469145136098025608034518007546187593812728244317834944091591913452983379940584111565381899112539734671487793260314629455537256223140532087753483554535136943669470459464060444375785396808324859530921393845750862148250472348020995140981870597683639585237583764483751747309849738898992167247410264921827943670882853304864746300739129942991214496861597578373618682727355618622051020181327920214323278179681604837882645562615414941024440545280382155175849228530792066872793170298182778435105993327276746963245238878414253350877261236184307329441596699334316608633554932536415141374702205550796294711849510593177069971014500910939493168004269070012420808498570694463651698294471039679118550022051402034294711892800060774605310791070333034698945020637579288271947096279161305580600089423245190166514909150565753572794748852217669529612999127409058785353260067304112939540975969924653363701367115526046237050778668014312574819270573064017054083160242719109084463007175819316253088048037041417951133964837801099346462592805094000090925862552950242177096435609061754494480978176011771741090053950764647190891960935716083931834760828996401605898631517211520429192130855561193273921822577260413583916134199937846155318186283326365703525827326212892222875806717787686978883665061444351153402661195510577495848259453028595063961469357787989711573959042692412764582505989348383040631234650227977083759424863326612241509523130887181530991528670023435814850832729046745741809371463925764981245520669000343689402478634287124764754282509834491046035303001729012666005422558418274780532388606213771726458772955494547864470561528321890451703051964475964134202293865967939934093334947564108936531942584624224274557576162437871799872065200838635351844919646175491463760863442272564638552368470091991000446591338700059435077924982783617873045854462286651711072985766482654292267228179038695698179037982269993958392177362770287618497239178922635590700670864522671875281683948214463970315177840290323240227760253138280151843285376121922408728937256064113344241850471439854854835666349903088144193763210697083573188702656369682625790566846748089890701775574116747258413087703953103086252747956122258157726762435029757373251119197292944788745302840265139844553014204077820442794354225113530802968923793587374218669305701354085884676807971170524552192119461619555582328141501021307745692329285914214006534255999265728784383795251278401916413435617829935762040379386065829113603582873652558943314827318748631143182449889004084305732196316760324931940678500453616917786096247350528880029776611993285392690370633297530384873576375026763869823933402653522499732883434838505487278431599158198759828667446459901644316273697232100734304538802679248652799847849764802898471413339597179076017575478405538580940388966523602645198469135054601159218463183388790120994748817694613235321280105413957489587799538464600302876005149054602928753742482739983251249699754377857436349844381761820774779445495013275568662228972440098849415473815738421392218443030727356195484343033621861206841775737887704866944956265715022557142117653573147779534711651139670616760787894530202349734684936778106377996575745440225585899389659114341466463714090196357310402882975499732117065689579995732681879351049840306151290247298240077668659295770012547049908303746239043191864507357682057729355134011103494133208706578226056603128214971177515379330340664554312613703296975091818807074370370181159254584321186935629681729144239512812112600017862375608562343153605598594347633672883930669156816415985291625955867419423298192988413216121332647987361308160562662819502680816490001848084228467613019729284415022927310453979202705924665852655929691568628260924668604869101548020207495025818350207662141778821424882602878448897496962460265059300896890625297694425904104268912988142269319099314829268836375036355997022447245990583393694509030814723705568489118384347565057459025663433217803476598637163854271421405678667727001933303216980706890743600669179549946566645207218391319224784084240708614583957316588141104135719063256199245969488475981275365115736182202137116757031184402099157228967500971109415856893691543607896800404262130409688781623329494795213598988418295136039894083416314914321106000293821439356508842259771618235647316328879410978628676127105963744572162041211419999541721796824320041126022255627301566546108495489760864347970285151434889514506897106185412651093927764092369481708685463264023258060501570014622415632046973589011068588139833934324383687572806108505145209491488247046474411611719031941254641726168407942180854601847886018081500076886109116184632786933480300617535656358109030534481437013292373264840195107640185084915916310395048007371097695129719974580725288542829547981414128390630320400467303574971248589288424397592453636156660028675241221099478261734127325745166258411317052792624047613098984238539003553359139660350951596812800016390957223052011392980987269433517930314244128755157989814098707341372201639218803080016846506337228883468018252626422912496399353082756376786119954446573499288681973304773364943982094451931841902934384434037889921998761482115176694158517844928614148749030604519326525147498595583466449756203763258041676041927008736010199331927907154500980862528755293902908244303440523334697725414769203127122602538759247069015516560371345734466639927385506986257270482369178588135465468603076247878536626518591450179138741075193158828158750600046867110924438356272891817895313893323585198684508508487055036787099756482543168152694937672401522260212963436470818579974648244722050609154098153779444928801063961735510412794344522453884674712233598403722456981116511337192095306603860085783871048612666630785922670211320879337825068108392622772659151314423415429395377603885063174743780657419946036008200423634855066361073291888578880403535782416721596897260374215875327656438961232978352292358809451934189549017005190369792783082308598250673259617400637246080445009828653041394157638086737177136846440892288738087955856138883224663756133728495436433969041923136507678233250674086624847855134207058325447491439282981592896256533575656594605210811276552923050614842607122034317038579407198089351353994841935213609104825594657126328786787553206184189577364488882441101132813378245167110385185394453588811941871916310862864566049164190757506128588058346643186556442721841585569270801976481591187923452079961527531573238866014863829172883225719087622437755502974320169878822353790804990786759747322869864513204680648750072994447504340046811194823725199782978083378664372875770858066721344662316357658785047640678048795604934913683389564220890720915912247056570581766882079085713435410166670485596214694699669567888567026673813352731420138974414372312220380966665212349701805450466244776293652351856980855996740423075152470694194213787436063969667812213365926957011328133093398589006708670260199852365881227522727326063416975365169246997647751975098947029697499519237025655181488215271859144470103109329279162293343842684918234074598068835671170215558383729631990231281358892084505952465991000985863690454426317687399717566214250305728560751016423635084802414396601168016058603862983462051049005641589931192790990784360022931022463844362230494188601348591228087537112741685735204891738548608822042994510933427132203978262010477920072898658063712773130559567698587353754403587962596876392324504269322063315721231371870143169208983875298772083449680890547865721091958689857340230241801831368368412202092793916818377611095271987522297364947115004508466081989149268626702063004390024792842150119509931985764658713597502325331614036083319994683718213260162911328668163290314611679102481923936522037213614711263150618533680475714501973325911367548136946171136351661636397344992389283787162665653984440311954132251392193845264852549225425223335240060695051489702476644160126537247729052722611169770750940931965735987854761887335922331173322894719627273811661743620317589772628626440409571289646686609852000983648855597950470508646074628916820585064830817733108672886022901944723402937175736926872914078137543289059876216710325475463849982223652839867317341108070241458890207359694548892353017993032145598538307109848470693731787835476529163414021068280664932423397275907791854537156466627447618316193757621488096928785446385994563813586941692751940783075322838153714009920399546581044498639451455620827515558511536296240799150203081286624159288246314035397522487689191972389097558708032943273872223348527325491976865393486346370799693080206629702048647296589401771663876032125720373621520238270691560331759070420338145524602522304663562186422520024087933556816019327206709596167412691524082681858334281795101333565870827941775130553414689546041697351768585777545698952059366073199442964262252047195411291357700100868017088126159200162562499817205751873795613697412483879008189605108017126741180934199819393710882646637412429682025677492074014653626188351413012276823092453378579315948116702050010473856774933846194302737198434249406904579641790853345155557339866140161957161477218728738483715350681600267499799500675798658627288889827855568148166403051089913974161341659260269202665402660537821059386759029493594677577730050927621043139561700936037553035824446732287043627703705826874056868688667777882885415290837761951259633765854078631744071130121662051800204787130301900408851851600261919399655384284857028987914223507107830415305408485361727292334970314961671064249179236804169925752525168491904994245184069616690697885790005500008070495695169058509391956840398667725218306579389718042889257037397068113063305103919718746322681152545139856199332965968325790831387125961439394866986821349520923221475044495828254679705730306680695237859406441305125823994919870404455491899381598148991948852873492954792473055917480492907128730939897341083427369895296071548552946897908861126763864282243295840442350309486038908133216747487061261354870622605022260356796613676281896373590747817537116512791294415471839555549036028894803673247822708421806019983410042347862168196327795440205580274098301402026848151767455232670862407905189026858014965791036472373424049203165814083461930599409133792610005551150203986402557084624976178911042253659434947824087823514790996375198350923993370096396874242338267178544769720743742722263137840996790881528210129689994132882868389247147446272144468817918210547517973372059924877905508953892555149317691419016474672540646679288432000935056542304258006149583355441566175700708477871997131392494550122131600322598732090543218315867840698895931750772328984082901976457134680828867645653835852320121934862819019326304745091432206042685367471515293037529837564839045427199965152722893360403308540775885992030496331842803888108850871154461001465021103945618944277801499676476213243731630938383489120361584210510957063316304644776237221191159384838821031300393395239064695627191694998121903867817164814618018675533317853711677663241701178750042405558262460108911003608951633499957469950613818934207734532942728358735961910174194323329511877427562461466882288898326887938050959455992094670906540319978337223048704675412535012218464321528538732817397255398519152412955393328111063748523652894488459321638385868100091117735580797444872342099215625812177037232323924179119670622635829600700284779647860090740544166275232546699809818784464052263758530372166300127366316551614395224951836927955241124388008831903544535374646679356875926176352263410221415188307962976226635607358544428296338834645605571638539444829894889903514238140910871741568207615268309836409670269873247265190650942113707804846204579418185269044468082826663650311408829476131069756784259232997238127524465219068628279788859335969427253024410307365266924476242725766339267165910475105921452502104379462766832015257108719244928737815071862228566848085485271407298124532271768534148529168823363113657262895086111412896979183165538753077080950114479789108652543254751810736927625643026172629399557274778070712243648385578647885862793971203733604192362126117574688082610707050490419521202320480522896952878481414821680098916099328653173449166938931008425982792868318654528225158385304530768294471237777754204662096116838672531699101366947165125456334131957080832265865251814258749804125998063883701618485932692176259506360348074515386582163354952305914937092482249568540237443051752408633973607423985502921314616437734402371201703009610580107683435446131817004319332091434029285253390699176780273378993472534008625726115564970453014464002907062219133877186600619780012400333857012480127753111092845680925475457259135231117150968546496090687853979611599949290675462615118229128726889928323822989594103837968525764629988805340853980977440347678868479760761432599664104271418820245896913598582348184921284347751795232214745397356921223338027963002117949134373302973214605482089988387756183883439791021523404363225112004166821159431333400727359768953339507971941392216622561033426102363081416012612764000272435537631397952037412440705308391696062642086322956508534844955497386681582622763521820262563250083642700383933132084331366835045926742069549445624361604647071321522374760127239589998177451383662481430588217964797109104577537340263849230310049636557528487975259406897459359215514044667145059599968527514302561208634870671019018452011917599515197372874893372532135219185552636553073596662313612558528826418735805052549167905235087454711375492354568104448707399841578051964807770351478565875328425989825713720371558890942823048432842423732702438531945335099035456961554485224127907341822338930822296123204652282586227704601657661546594589910553645765876484243530442930302044582912958151000018552555921532713668632671401637426610241874645596483952413855058888776597405114459582739837996011239793067371289159686222843140788823080774611358701026728045962401538354589814037539249273246110417950984503856412076108044022210774418217050909945917922162719525165760109588409305578019006510447805582081221743146954582465831711034767086129430666579088356815955335640709864592594196527942511047176790460213000926941849639532969898653347250201259622639523011023700880033177645537144895418871477589837378789556752415076047661812834167332228606306258593836186619097460162363629032675815957468636660443213884046779216712701925994265841087457288930040165795925905729194708802247486100876862166522951856491443178076426530336199427417567109054409487727948204679517259460388277049824950325378372911459061685128468860380228581015348106833452994101576393998103138918571561873584274050259466101262285956610314450038741293118790718095950516114956703647306887561893038341488217558087699092577547435472067453449661348532054262887181100957154246058960855155141892615210850106284531048963999659154766732573089864589591681077270208184077446748032354557733879220136232883982898487409457615308882875084699728489723968182868788632644279761985085650578214245738562582257361937921951515247998407807916381490536228238708603186903921542944135693515344946252595540311072916519192664965920501381764363010386999934390364779592110429541709187068250882828792394723661682355246159158101543551302136857310940771210449782806587253048331834239007078694038405486425991783762810569939140907203588854748229947642297390100274822398334609977496936465119124358821391244894759022100210135470170926497016744516224315766857152956103681134962767738962807298473936479892073392935566846136410054683041112359754138267168747320472499579757259292474033706944253420986171351604296449297867569419531510386834975475444360002652463783941038057031157000599677038951341981753867883024934737349367689462127154941561231593009376247356175919617314147058062964855225830397473409673106613127251561443131843708007263881480024268890869910360480096150006195341259141669354981093090445736639119694598038789515655321729916775280936747658669863412953343834353521824883496371328347563826573618683813809018144315046934573537323823570096804104267133823110072410452742552240849812194756687220940922128728997968779730808920137510341004279608415656767846462009348998579636604321299235203229892073923137891400028325682770555592956641622719780867029430616910199994985785141234672285825732302921697354267334190594348248506177719271627577323341337266083249707222821255417879750934133824228849765649026237361599084919776623982385705063826203191379570053012579624892379929797276853475937321587423743325258182155189891329170988057422006221747485133527214165603859383557327231515465570419632628269180537671768055718327754148888964932966106483958379680887481879943716359803979833395594286689361353238007766360132192749897696884083167309433710033147084800020791920150751923011677050386999757877164693836708899065867545667868728575530963445451964486105138304779759782844443562608869137464189768882346527950083022991416375477135805262639265969884464161180057149896646135336274430029850822386111541136924440444925575965007569641488879637931123886694480968818281963960152203842463563505212410028965083752840579439602950171968024682586622127864152556992425124645663472904079206611149412754035182940324860056592402370230016882631917480418940751965066423466011259477991543042478640202865195038596408140158199159476520872346622049189447753849543260670669040567013107711138823936025627246927205921886602267425052420381855855315047675039235057799137355536026807610825872069921238983141427617206983392211332855051393718563680978418419327754881526823314862965862213732071442471366313303112120896121413270391303817010447266192663217977143714984398621300604355399592062052619923134142967543676342628266723720195889682109127138692102411831940647774850683321889217227879591736805131686388430649676563620602291772541606202923796407431092957876201334491967714593014320049874875531739613364215659075146498225037161108446970670707537195782095770635135126260535807377759599835424816016442674005209720646574255493986868606730881563245545747567651380468427763810719710575149579430202526545720699906157293337305410437776005671842673923796290144718847101745532592554215818487403212679070034807866280771651186448321386335570914384073127769634981095154787916159719574334424841485980132435699982348114335288951942889503163001087974204180002933976036471691936660787475708809003671341938050230230067365211896035014970519228948307709859258462464367171609035266699076407743488369481468862567708075358881592952761990222470414032475584102053481562321024951127109201040707502534030216216741958295456968471461623076691053965092940150059305444064778993747166590725975122460453956346940974453009618216592413008038818932625929758380454356608791146996108074840453643656658617559256674518485231032065852327470215986991746873143444484331835441373026575039171406736706604997323248836051593424094969814949578990719662678020679042348112415070993216854139109423711785925129037418222522918358638641575623858140366726123768628720389753844469588260215527290460493845079731321346966663023638890185977490682195712954685902299980403137541500553833363891815884060610673571325978857483553081332224791916316497838865860374557030704445761120654751978724829410493772964689401616338683877118420840662249166645988919789541104586976141260880361752518618396463607062108770904925371044542767769369417018479386744499288854994447955513372564971313372220598510454145440092052980997341526830154584682709733647935452310489417576269210151939314381651470850685580765571651405276507507914318998842125576391894350482469694779461937886885095307898446527231226509797526449102360552752696926487112784682290505540367881735271217541940987586780689512961804700903915106481295674313290905842144406476272573040068925201933812085278917375780209324400201659997682646117233004021956306771770204488289505711937192874857602419727831315325203194884686690145662222856205745545176600186358477351425090266836495188978417676480748344345294621592250550701537866403498342764174329834815765962595372666510644558465032572327049153091718788698556787060405148999131146495031884850477222279811338419340249507786528573975217164401157455475807323256977928446610711075319493174436848501656486396407847505364142520379435884638118285014343951870068519972221104355133297648638055627219420863421600421459497841807399029606048563923038567521749045503166446159648422285928781987534617525565306798752322185045110622353168242901316734027013989622398544664874512773956022556425589604533049572180121718485467735550316837841718345112721502323541083163420624549771674876092047997726708144498480601962014028354079970948379768939871919322138111557175452920688022799169973731735789720248457013649896077291283126265070735396746940612247073953723064118231136974608260870754416176152985703825422733685651477486269401164719595555266033701934792826511000496578556589064854743596602647781019869095558203094834962992386294415580804801185247009483145770310432290024452850192589718065723111446170211263061105664344481529622410186651391332926545827735111861454978099932979809125718142434937594626636381296423183372738436009806136228287023429696092021315009083933762008726897807644720422825993395289432920464060003445426247566604114277285369971300774111707558302169691588434952267183064146007069829942276530920343687343425772923490528283491191489127288564475180648112609739340629983643296397484328256355202690156239409446071032961873660568228848749714568282819254359865487604438328755675997162378829748602312017257447233614282720557926989920274190342100941272276674353757258772861223409171341663285280008272560852901575825104737465948119264518862156217909020606235033966974559828157562724960848796872825055254499099443276010425536039644005332444285728789130587293914560674630215195606561553184544994935338161910837346408561845523943494038599513965125575789108498775323249048758818534346529213678132435599641550379082105206973439010370430468858053091543000625412375502263578323327761842087890800791365564597289100843073118183906526818825917949026238888622720757149763647765515031015547978012663298977617416459147620494890946089129752232917234958259413532649321016869311757831692085399647604236106189895801976698312412412972250664912932149471503509234976195793894021757207808376845624771824769164924097406560405892495604347861103327615408696076797277314428599998845826440115437214135695656800042195444415735493135252665848405730140863600184882990671686360425417487339948814479970623465549284797599956949816430468408566431737910443786010200604846827025379544016291310357992921670610034507384104910329209448384865260108724857306501911990283373879435633937520617285179851141268430092676284804941586447135551789706081343274047002473184615543404656758701822866124934029886782085376680758196854494411615319411909553801840189672207348389990432704280801355044945224301187320258703672017451774574759335664983145591381901896196940706819852681204489557592612872801628514111712349422772452224644154349397375486359320950171342242102529288725422832121743227169833459706346213362666158357143785721433444582617987797762115946479980948467848246014986502513211159713240815293348131251138977093697224433885553480103836932671522936032724040037241333515952174060787332737592914740775288512452605114660414868970870928661316942112606637098263849805682057294412622384043739178318359122158846054216111156020969091729072322115094248310414608217012918982538399979012717387063595029559953702410430343414443094688988959311300582373702649336120262865211828987449617989596871993877819506568909083932712220569149692590436027431897619027988741067383639528610883147491626111193033282395297517456394173577988051847306329448847177811352962598695926951463913901744648575326498737484427102183371709520419596625716230656328267610261772680972996151709008369362126586506098489338733471282304516334242507802609013371317022783302287991571386728802560589539743752060552828969669102277396261823269745663825601815400289456885962884823729437822669168035290150225685316796850739050758663578174150584036100205404299910158767291003983766808100938555410911602609025148405834825723075571518269825517699016484991134559544317545183197301310669799923590126993751691989514235150339283252568329642217090489522804822676297076075631253773419697803535091864429143063549492742981956686936130392714746785802898018624624672861604428106837623336437508570017677090313472433974614462302296060544536717534416756368289946036238656721275402224055530523473987168826952034361574728305294502767161029042531335179696767567039657707492805844905216176972231228027035796220644052978922232396034472902072487985612618648460739998051390658469727757262253674998787122301027023914383388036445398764439306711988833577985538951651039812712508711654961253599140895709814549312063168548878022115980857638496458279155592282283236097384049211833482153182031232179042294590052243675417325741032927873552125921185547543417221250523975527406243465370237889656674355384987698048162212567499441662225044363747752778587004093977084983986197916721966591975840751864569448629370961476991365651915370158209678606491566537567405907755440916762234267401523690871867188937676146769017364854979135389428052925594316628002654952481635950067817403400258395222126671620457841346852099649555434419783301796569613251606826867140131429273694261569891581159990791923622830136543873160036958839172733709230280928207830303849017229171539131076962263251855685164420683818034686204474008163904242916306478997628718327653291381312104167208346870082636880387564723340953104017421335265067881732766486001456200388287108084469071168816097239397078746283272771072607508132499669858198224559285416679958267502059349726359506093086079534208362709639381786326449675502917919294600025917533885270243549251614758938516149915101512190415199278461186763659435251653273232275315422622692383668844031179678113223696398047783054096003642927931159835329035471869470312688758128818197764924692866784827261385405573742162522844271779973018778549134366862467697373630894909484316117306378036610490825269679651749509963060342433880931611738709822509321442319253907860583004998925789696264946468345304614241889879072829654689643001600680039956566808838540114326469491302752928257539650577151544604073961765161721440563820751162427609486464445299438805102147092508074516055631313246715508046069163810603792168529619418916311884052148038794354140718026846781196453479803936196904964420262164092312964985854494039471317688636323388236166612963285172456544361099756924071887494090160646980014392247846258474222970057097493388647637282880941178363179106268441741357953099906152043765845461745514597632545584180367428321125071057416857721959966633930039025764171580032665842392149856244612053719770940482965646181804851372828187929740076737614823360247857803077831330107711620112640767857867819292747549619254885382612333602939228893944112734542623956853759074354913389960551518379628253081402022292352304252462444060895636493776672554625658580153444521200317265826368562506548537173444805820969378075191332152319339959386818347213598319524631084187970573533373055432359444773008553518188840040318289813957291237084178251921113755044557404458853717560099484076764666602480944195420999304991884099263707264668364028995554965193140788578149219713078069220788836901228097423214660118037360615887057154815200701750372616603453310492447596072333097700947523884902142278143272487674362621900470801637698566395575994211916686943462155801363605456849842477184275894676482848038978829974467242284689448939996464764072850834387047898361732413264339603765093721976982543236498108499633618997979716202724562218417160602278950325552071833801192194464701887162291133950592411593709951615754465631859768412559382340507426426126523546006709952691483781121162133316822279207953160997899284038862072780174195483557437691242283398108493817216476683589637382860762318258093655398208539915065858092029332006599949225599575779512560536695300342825582131443408630989509071328835894455313157757725847630231675782780122173448862478938116382306333883203412998496361313101521189916441921627345684101765519380044576925101842367054391793129861063470303461955479177129164282079441181448103694315575625298827388994479104441325745225964672552431254441122779224684466824631686152940058438445645957779815574448027315653934470622469657595907955474497457460877003974478161086132841148529374539214857586588366257590642131683117254843118866069452241245080698379485289017832533410945813047440269051367917863734128603991386101325498100005704456521474511944841820931802059358682711239189132112518115263730397438409665755818568866195361503204753941032981117327575667009006560108661027519203667931274849764214351526271932052257182953186819887836916428012524908725714009018601961313913513992837859504741528410724547406998823941769919263970226253206144764699851634352914436271089029946862738647450866105439908208605757454842011043666732591301914233725370716519055262408576635540741102984042668844174978499470873406168522859724478805196826995841232251336410995415264708710997800602569811112383878608290882019857611862470071733111058958901729826538053687947998089459341698666588181319130607318537497233606748794414066055790702833612673091033362745788704857537645673073804873296863472584852196062704396686204669079436886029608300200838697944999689476377873861518047406247289205477824320562161939034579921525486300987080038163512660799213301542928591846837991214533688571719671374196153506021836631642379433533278326218522992097424283933804508154375988976749407358281494890553144220254311608864281361861502154170194232842938645987589576181780168174866260169263033696636283021391117389321242995550830674033488990722256712993541779025245486707888274802392131830577285399379844637393870785039611439538552088933476299846218650471938432326273659393462487789015728481780038026213992461028582647462975139967672725792577321765411061668052277996164713861820102556877701359717740454813869537211085560170302400992864273442424008152571511674446011728054202588646563963768693589287081292527803169878817038074049831582941623971754851302226007445698030277231918801498824906680170791042433048494304287213566661557165838380334300660919015172414839866342344625588156725394462261905064803011838017441596901342143951852253797632804895165089606949501126948173779230022809305953541918340970962870240133431258037680244221416003845802992022759497486717541237188456009770039474626592360353786224180395334602477485471866938037361858346591217426072821546822398642805453773665303953454942204796382759769641098350054477761529860645669463966831302378302243154311635007807432317256795820175662259746163464795723328442186601826549952041691576014208462930033106892375997234168173154770126748434299099505683512259235136620386974716456781980413497315746455110370785550259040163417260942988070220993851684210926239369442579397141403512998421474582998568338342097656483773364776853539487430342680990722329844021033323075210269325908617228819811559643876267901615823455338740133666844546929361989593895034867677835701705501148217295191052028413895604074430904250095179199872303126521439839013140840428532507066497233248454282278781479697343394822013882845168543719598139880881119137238781309788410456897372178806073996684358559408837547898232488363729389272864440895611263005591872813886938724537445348199851220526715825217906144830166815397601811347643270692010289460814790417965305878105459950544357695030076515733711669689007187394618954635389540289571748574410991639101254722093836213045632039831495066204082721037758341870218047316171096294484101918920429237175401450329670397952010958626143499192769171172161154687466432631088683748255179598417869413973858295346600991036927367818503573314541842329935951070538624580124244379055442616539515694622390591127445182215676432546669381043284783804057968769592100797789730814382571987693010703583970197777937949319567102472226085876202394381950424189716863206596498914507730503599999999514539117236133793406180392465615901102857825390732244391918384808449422561585637062998324236580110089164757859547738574127190122923193174576029816248315046082816840609323885164837810752045401581651553205626648860611312468027796651071812082291153644715278053004862215614640097273165453551922501391961389813312917749806929071343717178985337492415946659680081491416815191569721759139561629431966573270739330149666612935251503713471281885698773916473190589939922053514416731516320836445493288124154429322229540848468672233662275534601191506317478610909973535424081864978296301127337093478417862584339500667082959564305563669581109991248136266106400766640961704008256940793260061299382462002374329029914595801874421263234043454276338966033069106249915836856042671742826132961742105369495196545865576606447228931972290962080352124913588883370442536203340963488761053975051261100482735295466243242657544783477520155608668300119858259881669924193622496311341238188534046258033215616050817209176807564326198148962496527795239178918539946715910701465926952682207867242571482850815247428774649149379952224580218284571308175991294951419623813623139693737766182727699821105562109307892779960690758699828063985869849881023621806733238935973017103317282737773520986398067281072613538370661944779420460678169387050670402036508069544330795642984090608695682782996211846570300493649911115558970429836587138395168389800231777492598663939722724544255302655218055457331117000210605751362948928295924208827268449006931312497083244927399342269431618719158164331486655979701513410755231067836768837278773396725935600959812660499293356008562649126929954066250722996856406696359981128150148451490308938470409977601234364164229403083062088940270833462062725752702879231449117236905535575063149988290413169986864770894968794195569615586500527090993920619221445269229497514284240459717994642679053587535195154284646301551863255969718860197362288507149433795806237828234194702825272877239382523378222223401622625478606519715723135514440856422164271477865431617140620917809467922816095913032649765360202363992185687251122452682713447183409114470861142694418916882359147192593582850286949736041748806400978400705666300396351934984194024627491182219045319765750740859984408542088643691429761424701336075802306608120931818934532170188458221423312352684289978285717810753064161503381081276128965418106583556530005348502135314450615156720573287441925554629587738848344038969460778879707814184593134699718789808631924238358653704424991974947128089377118227934940809718487954231032084202988070978019217886074075267960403591861062463952883132304346847877788690237165215854653900940892189489243234979649218527133542944705292261297638404804089107730724896581645388856951602916264313636929011180344164415826031720359440277719421684983880735090355770999766219907664203027834174744088401458617629618433895262110721044971585160571868125242289689170604190921527917818070881483881727748107094180997994911552345864242139568956846192661512104123856200885457130492407283191175940527738320309987937435854945169872540648991877925769628879284590208642798449541205334164764354079344008722939545278963839064391008281660697579739835110358430891747848972603874218081870148738870567656787336346573581013819541943463665274869370086136022593665306478293918619843439886496701251365759098053665045029511840663379350291576798013328377892989833348979425032319897607243383200674278904040667758720109127145716931460892495519606383698154416163497175871153520924912160679628480443776235611002396193897627567299476128178900269655251445373310905415438315359211229721874833192127437672026121689797041438904929325700348037365083565692442168582278720269463392699710180233786837571301543162573554835587569783538236436605358303379367121746565271946852544945608026352725212397205877399643176205698408587353221737625746002168314865260291684405904286686383115249650062901653561071376524442294963843688755083477846340106501760356522573910272797195321409416202870068254609162575251680010560562076095204373048710549673218433235803196584130569929545377006279393881937285608033796641352277668992461207836233581212901544898328646235035549735621483346601637071988992199089602347929392792399750865775336671196452307914521826787865729912835938694857908875676544805002483113433037914807519136143782867163252812625713395103785941462749421581820260472782077870467723971366883740746035795668970115804038727156220257099454211877909931909947897826450095185982092599081644217146321055952468967576618819087179524436642984997898986126103811346498315780094324771777191508427425356978109261922696338349817907382952538844015398686530435972102936931288817445050323625705695498195800912200835598638454300293076564722352979452147855791164197873343109301171744761736585333836822862011894923366111500287909711821791156492211952217444573436215620391821844419274307479633177901883861571670485709653839294556099865340339230473942973380016675149246764639123541426521958584118760890808504266943454936354644679567393312435011955570689899903598223027025708820866469618539543080285119571420994436010890575743050805291216961907387510532841551093511080495477366841539058022879583903938127368628013785699198354735440507013726684437137150995968465607299148377655015016968366636824437983899480051019573252416442901353858252682869056727130480180531576317119438610002369558647599587553271678165902515848015958523789460633592387334171993826202776780365775192625870469092539795699141646063212331364428324857567289988053316961014383992632469254667165490067646861264664799044648825438143882581831874684570861133603426478864097212846648305452053959054908481029175443182451790730222142321211105872616165347342813156986987965698221271534633524035039319881884417535929281094673331581385702622043168819834476794712335465516109136451569397581236804532083696480676442910121757673671685151621040234176259273292837539597492680908746850660422033427384855038358225499875159921136553812222893456835458427610574739386187043541894245040259399266100283978139140170241179463094014010245455958639538198125380205145941600539802754435936269684021228997256684772501593748590545838778771639947895465004151729621929876685744435677438386650148828816923782090591828184541662135791193867327880653810155404173015233811016369030181199044608631595634434593392365633009157663338558652376775415746108009970713777176871880308318967687636753900756404912608824219146248304736754659364129244182460962236580066651794639979847421755116655704576510877053433921421311092474736326287800357809187889533343748139792530321965285812236679218337665369326771807015333166914329757518177771304727122769982973559088973404738931927435945890562938779296018670669091295611051568550982144486806915230430625136392448159179335892978683771115223377843749746308933342881676083839855101042409980098747115844867955052413197892058976602723038550041885547085316877465254448306948668903379394975800886399105001662276990372113025572536358871623527569631104433196083162397053638447223149630014742055688400334776034855046564026062571967794721151575717262895120726648374313880231769218143420423572183761006661866461443324716108229214975905295515897833159896912869109952974104283397719196973326339305855333747708781257239141071475932844456177020518194641300366244921969922309315206674307600607776562846335061563465675529370179224875371617859469579732316171281091734284439171021393636742069751922184224579803696479568461075703300389680899773453701692159904956299429485958865150333644941147121612626041718403748360223390253004966130368521366029675003107682003228330573161608981379590065528791042881602000028276692357815744786106063908538586186537565286077720551292762682588354839610676721804420739322196419815410328059133030140810669462276928008281834950675856555303139091034705200844270953295133160799414774819082079090846097531242337941777978494681719217817623702020680915506261156409176097624735836017576708037871834402685692190454089140387785445933718540691506858246958194681616373665392431220685761176227171914102564658078421500574558707726532668272339061195809088096866839524895763354894401091474781993445640634574107553696614406415949995823969610903416845578366021488637036904501392530824022877957014216694609843201913080185715905908976110901498102323484756761637286107369222618037291404074688743138907479072302390256415801414602175979587915841297566794288921534624713635679423808933194854360261921852356866477867766753670508332258701320721682686486380327291398453543499627126470179339568628058353239860096205458306992762844759821697945221125397823517200079073763287292981436997518878883523724822063159876183156627753185090970320315008143193823709841357762343770163804742464790674732808321440537346817243823775513742499062392675680872380975041785538383658620821019835898707314989899361222750692151498935718069678303440636440948032625552391345894578299141482232879257449826079286393561522935837367478447403495003637262977397486346719751508516505260227325353145315272766796568584132350592199930022079938314355649917583732650960408086769344502425472302926288632239824679241649873249765902879229696912316891646652213516982493123122951542520188871779154585993544775031312286013408288714938570978216908397441766755376416874903283899516383207013668024017921941676682176675849775758699388080187890105274356651748101138509466349998944634142890379063233693384490121243951306903674538549485661493957500412967788115732782821331583005222839894740530007746334392277215506713123480458434903996533219638552615261581798973092411248190905052850214406766187566588927883088977600408377923717061439011529764596235627746941099246767566396380883595771008974209335018903940005208616858343321278553655870701501302153751398162328572578504418634008118915731050881651469537250740388499904663374777501946308369531242194491713436836578451420663563637128913459413613956413674089565630374495065972635029417505078389611218205021325038800653923605261965388325448441860042105011222301285509499421082045743155139522129265375852710855031727807738034488228587027487276607527363600970516787300510972865533246841796198236627732279882872529082223076666319966446771204571155417869810956831031549417431389997141620704425373750757294414551047576243910557797611530139531978325896390598277061733514652824138615094109249778960085445352763955853358376093907413806442573361064458781306527726530011284432226107614385463835813465764892992498123315986405145639989006107598420938078938016692236098786574193868690675765520614366199398255495081271792398077134391020278948032708905126562426035032824021006138494267524832242120637597945791144347327166589142997173275849640605536067457479885400757591320249992581737868589660259684595844214787093514240999376255547727588433667040447188414911172847604754144756611996122437307852084676938110679923904778643008872539349536197228899812446194215890583924187917922544080844856995923290495335235030829675269838285867655800651337726871995056723416838252361577079882515361880767908429726925735018626388103784936058551470856580625992143096373522735840706282317021709305271925107880642859491598289189878723733739412895705581854004868452280797763940698537419395245943298795100510311151415809040796827616440400692809697481229805704228756629509241359492979325251169957896692241875604935433137653124975854951518418694546120761711718299689069840014672892552322064847671187445674505881875370171441870229174133219113245886971227865723061638752585845124452299380694058197139069243936881064109470100226350640972909714267188211707413615109032555871772662017897660092515306649652714473465467444392308301426486628956749049729893664411595412509134012947704161217911432915507900955651699593325222134419340402983061048399509277737423172744011665737580566304335282980995677389593746238281168478662183171895975665697845167869664677090026733507578803913485309188753077814957084663691617822769062764729686032186342020639986238230661214564167024038074748025298171817732297159305200920716768929100898295971440302704254654020237722387511334134296725135819152359136500128515607777758266442941860084866974707442470766106188070913689178600430597366747176486676481667631793838059136957477850907888795764456591982084070132043083930641184827732924502378509373511050456076514617052070112342577827107854915865192454936799947426385153477562922286251618926232266706924135130084777696354800945248279642742717748504996611802190414479547888098375308939161541480413790488472562951234444404555629334858215842920834594717231956258069649126515672810706925200964588297048564796695243201433524042368891510633481828532423799255422352759984741991208190767799572464282757335426091963058802794094668879712442624129733101001989750158192276872133894207830152879303232025281993803637480070930201671413280214371445048842464385111581007079357511754321459620470625070479566487559611309268396940556304065288395005008181661051964358218776758266461297998736961414436108762863326738880381544904457171800256524812114334244937497803188538871637279067372541372527990624707346176514151150571381511912337484852827171978930985746482753923981181737292809898861520581537804153837823113023445928847213476360255249760416533141293461805016975703846721871892304158498289634614927822045340691384091049727965426833005587457758258389501081292383820013641908607887740622844001792039185962943811199114498747727346709231601680853320015937306647321264366282367179811304894967747089245304127521847816299333107745469029071693264647323056261899340067613060578604098358161255117971931151202511630929978201125305246204550679176710254303588199821288025847336422960584614782814295519278105160443141108858071484141481986147928367365394388134533968733261676868471889836756013277027925775702092147364983639250093892946906615810887198283810891999001344869521965445675542857548784283173722190538143055339494312178598507834925499600498032603428002113710337975048835106261823147534234296564656296513418658515717026367847157278197913421841745706759388341049303075607689273644641952829470302702223825695612740803566656857369624244679176336186016180983390002267935446330011437525597121931439715343188923736001931426928831404688550836949114031766021689838247097589243472660842706423638809656326305324336096292822448474429803886201963873226822695341535355074738069747509908634581091962961528176187016749631654015914538622728581924355617350804117751837786706949353949886478416841637966997635169365365105911172910273347180619815558895086644883101189224744911741519355322077280255051064572804594412947500017248588283570590174085599859629407477869448343396405376352503909631607595972114793352044612527259738106694006315421124041474543163364682309191572004937519131144899022013378704586132766092603807498525766400425007304235609331192339126822741748400082234997629607153226591792060637838090916651897192737090288955168645796483377937919310838533223609364637669726570193304116653179254037354023602716159106433102047559743442784384033968340370248729379991975271433662633690799829525332462356286157442691854974829290734016652111389962985734697159686960624542302520703102766194449855346611324338276418091900244584569358537962852574264292167175452303067929726592945849693847443642509898222917948216446035509582834151071141824720601160724161660812608684651497823709469503207753978681307923454544730775106858997273782918252350143984278427922916917569098132092591626261278638687099741641765124139702896469601492698583771893650189552940312869537729254144848134870929194322570393344486576944108153726671540628751010289978638423902270133096619267191339358489170947969414079501588112734608842916004339294597720006504422351847651273915961708711894850242783906009824733036285753148198600636395481864409209553670923991365235349818257350534184971797704234232257854287363624048854066281265023721920186970038103429304902318403537753950385927187665792269613199003644961698938826350655627299435427724040791383991633838052478924265251073751204172406795738493890972945650042806969228770986984598277082576789051649598584009479841168863917844867329565336838777261511517598953377476661130358364957531715169186240295630969790597352838172282687557840101232075348933557504872128896617800714367236074912068304311121439720613391980856314041549100736924652711466971786726126889369241125389650941503472988143550433941259926941050974076989306294562772048873613282313691425508048610323216547047226088379687168761104662469787430012984850055647716320201220572353932167781539747810985409109390102340356637836909764544767720289987446649607030366000734066771008956774488811049786987468479707650100059743999010787602673715006871500066726602223565267047908677773048046997979755850846013682631919315909786580316786877090477016940728892427778359405078129850534339639817082470631546681000552210331567614786138562845405504202174792071675109223950270043002224406811492071929784480720369391743392467558299833669275338113001255603077108625354050252970105205360389238259609696099474155530318872644883425607714006568705802483066748012647586403713224833591730393463295549013215987284741113314693713236237122607801448754271692781390740850857631572993902965733137886925454891392146378852721885607574408130309766679510468445295937490406691028568783377213643562853312377654027300270463385654817062154918199518343186832871252891777887507411621567978861866674431213340245915846531650602908499994420432804389381236668356700066087702823528998165786030085703533591201392079914335866446089676658503720389413904635607690487713457180270920014953406981610857800208386365445266033619134772856326518171581370170200049499009389875158631496189712742402041779859297873941082368656664569925680595061129549234680400037044065827391177197040160409183617175702282183238718900035016611443072291713203346817869481328291465645435780952968938789418284647476867364912305701487553936629684516245505351391012185984744358832037679565705494920600015895333575321055880022576538910866109283391635509203790583326097306408009229865778420899720871967839786889503242714440852818485670408947040490864996494648875228751133978678203436027946088144642528715180347396287387310367956798808292106170901033512584256622459591613482764839478976541280642056325421971087082083564906435353736182575367637226668777552083916253468407470855313443816923397037202860782787338398777298745478912002577730687822657100813611296846757506670561784420064767626982492653624134255646255301273138531283717101641775904639234729532277529416100331787241052624963914152425500456058131554459755491026470429911873483592638800516921230700322349780007933901278759566864387641903596084041891360962102490322194246430206868253237354391019766407413055746878178878615376413349253684412651065023918068659290735602711893231516782898436102862442839766353325713025072640067327752458487359325427302610711938025734391453227973318508457458879658894271323426229091450974140063025108659853703173217849287780779682404337967908148450009071306647682284633374250786177778043746467245596217842239895068361574213267827500716230910736668178740943797255217151261144162343525383097788287585222109530718854323715369718266879756763479645103932844796910242684102052175370387801721929641563381780748327741168294028033274387294640706716468718084863643560374415153710327651491415871596497960566534924753196229200696608386051609525924456639095579059870907500257949852316339193244865636378238640456403253301857886639602945135003085675171032223497838189000829807714436308434636584096541493063670018599095960735935961426202329445666180810871723503400358036965910603574423731605966855043660653673964197530648765680929584265961265150549632725649463672110808459779460009053588150187242614364519577579450495981469669935399049456589302764802292148731390040906517081588196605291123434837666822562522640262196428084977412902292990129538058840515974802231764020954091656800565708480956490389935588422830263763041409145552726361461019870461930306588917702114910810375797991619544980731046482347615772427362659137043602365569481817552381246749974040479343421749741488351816861557541455087481691774031894430902259333782052063039367234274999538778968272987825090432512541569602272041728587453572972665012568868884257168778675314619111082181689782978624881751703524161088317362228249314950013834184153642945250115294712334114750153061661807048685752333756805857200824686472450331781361553316441406933970191641395361368485713663375759320990334685557945082222041374344672142936185304201531362531379757185333764665971444666795560045760886367033808676467043128671929226124021239890639703161118573884837023463929845064891609396155188943336207638576588986675339314748225785756778774569169362237805983932211953273527595369429705674364317450962349524177420685011099409137169871445230380669630960726253717556301247086733913205338789166199815166904514260397239523595925542086601116257502217220945916550038939200734405915777762242117626758270404439879600116489442093365568131200714494757096869162825894353951331073387037575643040186785095294861189905023357739619274727414882743277802515339351035034242647839105388500776331428310595107943734385176444654264093295392903011955658488627553847168103323415166433116723566581532992163660891931970803098035509970256976731609916405329633257591163436637157038632975959731804101203878557354854547566298409600144231619439060081892377393956353412782452778361223026723425483849537445902253972797096457435260619446455649651010993306959006574197795737058570144050727530325228652150206540031400430869226309411056526439297178002961599330965043653365766215183088467624726697870102348116857822329152107152994307533571025526228927911642919927855182051372279691408724105165293936224756847659214230636040236981854926117369447337529722932469405702537239499081162768680594916319222447420439704555607945778030173469409317825106557642035320937891411262357036313363024486796896800213004714950645275721578381244688697270274085895924406319708696988530897457854770692149977617221977314473794930726454916823104720882136003215701700440717857547784004774096144395479985745455280345573691458453059622902263636666259606622404493865717347322088252159272352499790538688169715313380382506148195833339524999904405285995092033711427208692021011167798769989427030580357528319479194251556899336712415570533257657034357371658857920310610448193911610881544591559347778680853461410193047586197281625088516182764750919759694362012775163774753589180746425901167783462295833987815233955145770068518536658752720149746296365097900986185643354325189760206386019157532518277353384100238701773866354206183320065960951881992298685107216968574417067037693305558740531506473403318231721776556778760138223215798853732041360230667825747691128006643060387632078398785344836544849754150198672377221328467772330780572029948877042731178147670046488777319149695845623400043903572099487862920441359891474289908208616394131613734447077168132230666330387730647444369281359714323344564524137325809110075248025993732400571813552261322772076749517945105356770189932308775503836285178666013228426712069255699765781975283627604005023072144629334217583612732065484293889327549479013516612886630685575176234802220444234476899681329599659938107371360609515415917153951928172245210609296184814402082384048319181601229256021954301552582664318654339497106353802251460048459544738876214290462519623289978332045407742335667940414796216575262991189030247295279325671597182692454139431322043810941762901592218407327140222525094808186277323899068483937620080960544468505968802406133103383964493223329532455433609086539586873909862794141862986476417806733606672491884905779685423356887004068317265198439861792455849870078453177620388026064861943414071207499259432197406646898899341830575849677082978855835154054100723660175960203737602471293491623303774743595675253222642894462518807667492353598041431666897680670900963523081423994939967135735251207778493826792435863153701482526964289147230397270241996154495511886631736660164957461744094151556463235161769276574888063463793387753253465241863426231981707361914710153722832755009619601990600936745244623488069935422468972063751459413189126270815046432713341102138694288064736686900562163984211499773935765052556457613271650297895089015732491009780226233254887058963411846157640048455270723708648669940389166441515126577486390018804694394900080742692685014868215225844772191540616900221140211089473651743910776439962297070413326491595455314585466536193535080809138068471559053477828655466417626142962689136483918405987347552119767630469454766632752781121680569573683407375697501154230140906755125167969257344462155964333102003682002886891941041717580689428269420820620120196097235877247194910247300450910696440160980998206637534993557979468347736523078195807363307880758779111934207339791581967097576695477622179035798271754658616484336293298541347110753908188474756189448068521779060502793558253752079325958244810644147717559086467882678619266390335739120841055625501106828547984749824868550875405711150105938582681575896774503278402263183525663735615985654147797409218041765302378956072360531295501847754842104777446750937933391440228442567673680916866428482405653623938434550830012865712930548848664847260757661854239975804652611713228240461352552434688521288095204300452386306330648647233069691773100447425396716169217294558690146800764051258812513059397130300252787003195947015971465044372166855443148058932949101230750486059039580531161025029480821763741115139473763238944578609323094926304827557470901120796936986510701080146150455927408729409389317889486300129688268743235976367554259098226783965212911879682911807576256152800253827217479296675760669268606778403556419982832608602861573579936856143493451092584319584012993739578552913223366490344125669065594024885609836952945704332834578043550522821526644183061965604435629897619967740554467956215787166481203972140875797863174131577608896569847343323339879379294873721754426308655919322241279615055258775350372750885507348506415494311611485271384604005374119742420263263216589328542494345585401662486523717716119526882898491012173852236279879379030932677441334058415828326250954955816510572986816897167437575003008696188106303671910144374394120301377692475691447585850547682037394775369599571493556387523884759904426782008826167920246542191129964659762858433107574048515397044670518395329021474590766151964864165989801955693224219487469018352744246446886988558168628058386205395030483669079082247359674084781066877224947350631955717793488126198612047196781957142808308386430291187083478378551162461229292935423042210119466272289816929943985375034996372967049884311794704699988041875399563215533114360718738688582825589912718169519424013448050804508109683543452272366681012693761344671737232104449383625246470346669524800822743795491423766819512708945404271914703044641812491151814234763847870907202181018391469949593289753424304196421153909041360670886899980037053027282466963569266836265581271851266964823440052100085646479353816348135369107290948118178692299715975178609091253832030744643405267579671796090492551236226116572980743924858089517693945276647586296085755212266090563791091807652475115016364878621515451625179571337161186731348592688733877432838579034471492489500087117894000902677926738483329826468325841973650982891527237446590579432596342907321028718048326849963768944506225771283343114801859897463185456694733107782261222515015217356827629931300312533040524777980006076748856121342827705382852187514434863793923547471562105737892466060550160382007697979204027385122239522448010235155633613177410616730670535763697095942672014252829337777047946759108801009949735967578933993095827136419071671313913736103522799569809206750089163695806108353367864071395467500297186846896374184499556961460665228922649872308404012861131558904457684270598726269626519279496064085980596301228130593886185028014216718940822084827199680069739348606032648688087751944876364309093010859777352937574278421824173287340920179597403095867460203696618732259572611842119634668324437948436154300884762490463128451823173903569706550096434122220469056498861013513489452149031302828658413981360403507737609379057706316804636648097350382314296793909091944796472607921255535321647016224881152414430251924922779223830243020203457527088238832885386328143664263837224967699365197537473826245188290645465442775734152164734308751559329350854498154252814338628622947905479538407212252195679940042013665731064077437327341972384954636469226584148487631334444614071642443965458706378642766462235366796017345669641246292947026022395103006692514799263169374984631755602962611788758066456199044739680696308773916704483430005130429155424076920066578850038546746892078706942964224386900894356308578469837173782156222658835844387101930739077745052096844452534392329652641012728942405299046672134180953133724697728748672775969918080975781978457805278006627696314692399416569483686491264321742204024714972899652602165475349560427918096444667644448698928899599988333756519476750684381152272598622691701547786304043303148441623593164837781692888620767951359539835416327991377544524497342018173981645658413982892456072406064212667134876838145599187541353321776102713099588446243935036592390975972305692470742398603204174157475424063142240329409565345629317027063848871328364023976716601674719137438001417040138321288371681284629498169572344416098520634522724966715596546573770929181546783032327841740391659041132181242907796442848149938819542442460343198591377046575298884509706253767072310423288155431080887936012956777700015008416769586020255756790236553831207284440875262213618390155805171399909098386323795374295994577090696713220151180554017582856760525793070669704760870080332913978686820890873960354667115334077405985810048996683394275916027019760968795015823920176535322180855359382873697217773170747460285389748694330292161399247721854736776569863185548564055532618167097960095438835303379740727679576668925539375726596899800001834197017425146439965036458932155578772759855395313628233133835170881003650073348132475638713116650544914146364820739094555696882989351003564983567005523469963931314823652824274697122327164301342384299521373156149898629266934522512418277605462534094467841596785987788672679065100795444282788452178775545708498494084942524607839784654767683148507088713577542970775079649602407628178336625349141909055666849093919060014068347117638680674622147282603086178762989477562657368975717651629795877184074769042086175236676780757988445960197121426365302733799546512368645251522554358629820201652933792402938653710307430417252427319425024262770315290966655704010738756440291406803332950157679183893496406438396619914060703039101764185963050224360656780865257912583440745463183429539196611524410078688676116982379704190455271293540231543230520588189992473874272085436507912440374932927034647021697098563887878250469512352630928312883362705241941743997888483319232886938786223554573678344646510370909207138103438497915954675225346058399067585455057942461648747648836924820401336415262404443354888375306347115624181491297305920978474422418987837657573273842260924632062045594522060455522602380618324096422094832837092799620211716982620945722085114884267235969094649435552922626709011836393268186075379316368377187499171615977812444706133220837237746184802327306338833668261394291999260409191641222436074080853497840405834443148395718657115523348473405132194314964074942820531032228173953549830387072339161591775539511035321564173428531520287169392913070165452297244224385574647845419614650728619175109863637206994539152379603141562941162564936431743570667364822716628431648666243613982432323664237264399231523915767777771440980721915149038224176056549298306413434824213033714461443847168050143561815529224414818702199658381818968703417719410473981671203110985931832716210473720215770788747087600894016015384754656440292124550176435855198417654381626653314212242007829867306059216605104129826317781322350263315243202174320591958035233134759060402008532238893429328410101496813489611141854362334689870567943582422843812608428344583424795675677799992874114687373018932353113955527964443898503648070773371473023520520007377729999333790874501241644308998256202466095460452865434076678678350012859475968980720251056869476953653516445147850633859620910994637462851830606611359144511253583284557922588377804030904612445262745853785626385915526584791477898424920735797084965886333947261351504560122325152307328994559797670043358761349895963671196025893095919476704421664122517511153061887027969539796540909577826621638701731528399173369955636516853009174460476162095152069028851224808912534488814370916839588860817939696083353714246745874886867278285696240150297743801189036031334685353735713709788876357007276995693191925952949277552369262046264721405134687048121149600624725291636948833140895809492635187693961494961484087737917943820938405402755176820948490418706773016926041125153393945966349330363598623038324633980101344187881441895919036708307974618740209438977702699063618913637324298202403652891678386145094912028406418612549515595201745012211577560775833783745176303464417894313294688482835769306211523630644396419037106501526164151562467431020657355422519619088502088980551247435307218115903936411628345415136359167399835072383060016968718400099068559022514479415172512090930429008291179666097629613117077940564153176496133123661777493825436500207546085161419182791403646898522260389059439921128230748025240161137300164467901856352244692799020709830810340790039680710884553530840868183463566623654755684577490510883275107927073143452316430236511959364459222133915906607420840014941876550970599443813358372919225690918828678313298882903206357051354317144090175881417726532337863558421720589432269638456056802899617944678860470796514894536855190769612788355266493493689533949128853812053392855199402739339813777260836563451318164061377270115214412455759750944903882729193536805032765707634083454862938547769040553975624184703697235229349179007475867505295814513209415246825488783107393604820998587775169510681691033255734604580870046018843004739336040640484766566641741712193242445251231790031676277082306161925297244838585282357605037506485640560990611619277932472255245870494403011597329290769788504766235290829363567014129302968155866020759326759326635452324511268922872189787274242721151957803955900019433506413996700415232521545097283400844021083717211187734651717455306509150044678793592163128559043240050942102669349675199459705862137305363055350128422357424756546892085496049780875894914799390192281430335838522602942485370685161307093637315962602500452904263811804685404643893402072105358850065502426402037974400600676440850267084283811100657183353932628748217027355169678535071742081729351548839271400416095929972560621069806437968737098354643659273157778939833872373429608757169607095798959784751543703304651683098605816760708761752896312768160885778416689716177352200960315900454666746870434929032041105431775178417618688040153538517168617078123647824183302538620675150705372448199969970653434308783202005469681526513956326058279637340371381027313022224139034298709588061460888807904823770287218135716909094805977761784696817843647154806664921740534831695346219550244000003039907585789757165695245377884833865453843917294173046941227517343114428179489604721972681731919089069029912172260659313747611552129391052527102899008052018953047904241656736209080540981125334722976485880792986604131894796450687010487320609989586517746726693112803775838402644811367191611618598793311029946607155239845156989183176795732710206209148014021900970313718047449701472913993222230586266572188552035599537713373421829450072296595014758728388242928557795766208768321172190312463880867060020881539325042577186353750564977353786246351401710776947932567152743629111021262711265066395826603319834486731302775908122021663401687844905396295890830968235739374996591357875568496818815239612023508284614246689613829933163506524026961494970286929243608932370295685903161953054224025665324302747406512370607534766725983497136617330301623459157763741655188420548776281936117666023272219752701531862265946502587310961329346696298386478300478307715137497761384457533081307274089373137799733277933805214629216310470744566538325309676349621545821390263885439789771528906587637838461472866171174273969127382207782275184425232034831626056145615960472314368755542405069527158498127981670963196275107225944708928950358201081858398084604516645829964125970029785730587842413264014743566030139937292793967355252958479135154936685302335828053553277985162600696694661210574246257896862196362253379021525743862400643526770090822267766249991346445777965573343456522908873554281368662223491237234083627470299959909634697377911706100590646821908298118373088362630179653688332983264338853156076825542797394346826878763760165936105733015408498743551102763184284221048487644394706576272674442080688049277429880953845376443602378699379636904141614504031853945677766674373413191957693204200375239190136041698841304587322776233726695678618864269058399406910302743708605233071277619113913280601612989100274702569136917191843026729339960024638129873751735865039826432937255978872380899616194256386156339626334401487408139279239253921122887500792748863417639851418786517136516943860160274884447021126338015732272654585748330947754743336953113701647385988291696987371800643213178801758169781392917504035960759453021211842712689902883422190669259551218256151529358507367680602094202512896389304934464642574766533430893484210816819263909533826523136490140164425492677111890453304371756367598059907021292138238741185799254931844273109412263202860260234072193525045404738614052991981078108216504825034101631067676081491197054356766917398720289739862792879832016761981993249024067795720701884234230107173988621700145878786901735265272909887889543989328634771354036751228716227184323312976227944570082567387986668863529976153807841377872929674118848846550287168649206317084031428549128858808543319329451277904472064010870929279415815695912083203144553565541666060061122929086895371149693936174956011323929487145870754857850621506772342194682835474274096796251298763630437621958882952730539970226973277362948869150323771202192835715219794805770308683882412271509393372916519948139973287657221065156891523721330859194248470421483412047258555394075345272105392397456703471081793597289651003258461279521114119156763058133129204803954422515956630565513759310031696606063540822790864911296056969923716673990495006112989020414383442133430574115915477765662913591125828722773055541903952591306083656503928705867853064484811911567997763241855295025632207225219186689039939771258602492975683275063060793715646314462516573585486291097574431679461813219106917532659654310515187419748863843353499995739825285402386336566611264707581663798160221533958448602160230361871340155775280176867127912047527751413428190006889870386546860139138029869094306267667939798649733982939561331239496250413414080713544889871260239027166598704565413546967112971107136286440459194022443237606941534055895732225560336189741611641533907976650731555168527655217933018511297789906221670025791210522817740535245767033892766472930390079765413788085270974743687212725425652285416069361795265276435894113519421246446961884391950826363468157327640022686490088798653981785251719541200184480787717790762881197898449452609530827800178362202490101049422114401378815943067891783043452554313996324046110147498005266292699468520280968425340774044368430363583207078106389790296034098110367354671683236350017822247196349608913788352092535077786923859746611485201771308953540463960378942301868306232592823646520263580729876538455145996527268451955180598705943510554470092695737657540590748441539482753464868186453699162454517785045344520290216922737639033808919789233195383366635570647119663568087535499833201917881591641247482644731982790160244121033382662054452342889702225378380799115802436436480165981239209566014636214733833108496861347695365260263756763693565735107843171557629434090616435701402185369973105792981072753674239548619285553917660271189071516164376575613728946823714240607317618561067722983194065470375177355828151542478609658897330931458455296011796520343530557646636263964778277840308384648784273662063246892629677465516508663667564047190250022394777581258290966936959894139358376009765114016754765312980626366351687735204044693540314539334515022060348244760649271718310491898017895228186583256109212186464936630093419688043173044715352633122459059719002931164077088946926548153086728686612137143981625520556622098825343040552966243780614826066631428574873422148171793383120977821837854042962194579835146868322400391007721479947324988192382721239282577641955423016954949283720186335928456059985899567899971497191036526140199889677439489943043158719416990452883789696284551209373488576072200733655243158949903741440762754417678326770296866288755188203455888076980471691004593353859109669357105356629096156071827276062159643260824910211078057479423595499527101952353614915650729127389766158957423902121669558311520473217213427920558733458480787746674717553275750220411462225508309279321266246661558515544701629562458317352334665902305978612032227573838840338329335991409389797717018773554644379976465466027288264119707717888457552086519826302744511541338720805222554401476281386577030353527509918318106506981112181652178939200671776413899842529061894256164693855422970866202828433530569625199770251182634520581246436037390803114187568422897641658218214265554758792020313189331403383982086908122668296892294517824596771938981869317627095570908327256592148454610458686705091063430326977459441950234405563735367325187505833725885825349255728214459197028053764809421339554538504848504558493137093693849742343388944395984453251311748050362480105236557263446504976634950642478150848242984440076570596832931765827634109036042536728014916256291850289892698561069108246454788935132581953096196467308680551174387560145796184308331705263117172745072716667767875280943785971349631016655791410381917893551756163554379221357859741142490957990339292707456623103019638511959842982083765983987017779202910365186790814634150573564132396581720898293047099453373573317047299137031636319388211589407161107702620437051855281125491040615597481947526481725125366363119684151998014053528606493791185772299892890139916484108131934971175083481209605501138922560000790030180979283853924249985002975676838727533901562249997685485984318109284929615337797868829616628480749157526196854503305618204999669366169689911185425883559034378543939094847918517611119041111088294524440039848176239524382173405828035801891397756068321809053293276264499892529266384379545096471806678827218651741981499915405624930041158012424427767675705070286110738662399346895793032128162049842389196882836994107454837347492334662269889423468349009190618037165184274833859138404220907919930131958221369483680159000090910559391039519067822655367407074088404672542898661411412025060084061052493475058264520697626604361981793956152007324098334065294910735583920785962117282228986051517024218040941172137132428499125754877104751578433512746900225162968215383686961042577516860477456491887124144603489489183031340883684106215016927029531635111866842049084715747636070720259155795266383148031817383679303856077148175931451613366852029194758476317678149679386875649503175878462579309738133919984630442777382728224237184889247607466111482032160641885874858623095652940700973193016347572349928586514169285109221763758216059293583933427079305620722766555094212282820071681422498089124665056592036335364366487348109437326135304536562505441128770064218512083180293257706699968538066146718127656793329271588208815247684569223573765247182433093479155393038346973665517974415464683410684064960733167515710529285653377802637976764344412282902556558157165980761523977321585331766067798574871410047818324937895065176784490560780366213432720505516469353592781896053048590630292075010020697100828871807132403211240780118757050752759070207203607728120785902714804574311331554858194617167678080097570190608801218650529099532430560485125374165193479983192079802091597811459963343544941501037503281122307611771633193986508471868263703685759540746935624073332002408920949522894027756346016512190839383549098833754355357268893425072834349255549499048293870774052093926991434628940760878818140144108783607365067754350393303723017315135683073432243707997570841287759706260811055183682668873553380662893122542100803081788024442633943963161507080169150841131371537279491013619172048719607900585666952885182726859861729109518376545728544365583855066592393157619567234313160634026260390100059864855078359387250253605730193291631374800537827771122921766968804646165043930536853091039316093173563027636471604587760219063311098907584605049247714630570165263637733474477502870474500216266162173450988004577995362903953308656703687660622505251059529738519357077312020746634988068659223292198209851944621308864899207764101793110843811675664829305568187264106679617841372814056850174970327303715438785917142935435076497534315267005479395364654495999964118990588623224650524541698836900114682996289373742965460645577187963689642709610216146087872416619065504700342637693709794309192943776288333849218027922158305618618611645479849205883720541117798436167859422573800625240538419052899749652390321522760552056269033335171389671498907861121255598204115640550663998968120243683982443265639675801498035954985866659334975317422399696837345411640884065789045081663485114478297384993097334561716048794807961475319374213857751647419416113175561204680847801695553064813900392160149321776424982312689714671946826943150785975647118867354258773559252642446763907976324560265202276018940922204297001899930480704351583673566164199676453413227494431622827512555966957191887561433536049516249050950449849633115039314054986827286498696596054799935975280848194643475164535284201803925557370648460813651689472723459984788098352933573737577654428297648927498028984921764667403824442676903339510302266040535620611802484231850439588647128762618090252373107179126039388847084519985621702200965523600391525710382114538171688169026525192667538085125000832287060486781572098111905466859420249832275056256417914717304623724968044002061007997946709301727513433164088268057533386000829022061451478335012749961403678973290314257448850239141116106648328196690607424768444706203543082200344167938220829329770772571558867668229479477555625210643189273998816955469419925046388569879764483157811620644588068174093053722760312684769162568795516549219740220811462356788310704886737350318652813258426873353841724726741566594540196805753772195024079178033165476046618586425750200724654214628994362563582063692124308300519526300671558265901166825185668513804994309733500234736802050120288478006210115648680817332184864551830511368688078120935458801787518544057876865411922741189890702711658800531371226095056558186615502136377599857826593567281086339987327306317935105479847802225247058007240252773220496159051628554482306107271767404379829581211102912670192791654649243199964688300100283930539641693522652752949600020532671713594707903408597321993493933234663686106350423857494124140442979730847245035646131733851748236133980703470435368885407601024885845023292748874510019702976932323843791775700208772989223916239485841354389736459584487568295192759224840866835671600028105481709266614801374873534153074689320940767937501179115238024857450145945174289949099093116243444076619335199031097522758965730656182875141904224861489277558377564306978713213503288707328024183221316919171308917496280096487058406812058107730039908642916791344894217531657076435466805019945879865317501773004822850158119388086574467369638881494058517109097491287923039380772629964373886356262514902551977690448106309488264755002214019017753014069341073644551247901289053912501762443351293274304961886610567291694130793590746827715086103524687332867457214469360801685738085117631980349990620922932308504064623141829404734623971720798184609655233795004024659239974057967852960921295075647064866338453663830261264294589260136622803879859204302910358273204925863575639325391205072815497218959254370785136136192112511357667985958644810573232198607081980111863769767907307199576554128026750434428357853335638259762215068489473592059886099144324670597652147398267434651343887721259509873974863300853569598985247010509273600834230474212420875814219675054026576705493632138805558211864491629747834423186194875244062369768835266419472765799449111384924677278122886570828110768495697497993305307275103269565654897987529546559823816098710843371710716073072042518468983912421791491398871656839776807706475826604711093764846518606415325757677808973421846690934848488329766882572674504693015407093554166456238185491081489525444196997293332004591690271623873405903172062461642668121388510719657120724365867794567075688158605542680460360329440913968872477418460694731989111993932630859571707587819009297236137684028583214374944672252919044376224872582342023105759976646946030489915328676189179391354925572468454384525215159634483825752572445637661206605137759111585592215141932242525667324688819728773940517040483052362174250416738938493797111770097428688061346269737848985255970491057631372381076957953443097315822105954151946168296469470299635315907428559346413265612032353333151139951980450723078200659079018477850594877863109539494129154920397676721464347853231672306393016558395304485485421947181133192135899726072214253082232425172430786426660424561070723742907837289401728862489329628799180198803097925058096582946511822767718213949195586144328781609620957190433283256777626110078096292402452857471019477989394632691623430366006492285449112106390574883067947582888975095778542181546757032900579135982989921918297308124329929643974907226238095469926914682529974859951121579708404003112683456754202427450517416053919690430425445675433963223754824943595977787009185041053719819037745096391329783976261786219899569437882064919148613365849897506178375044205304273110061336911623865103120720106869523443370640685007837836425035464143302832702029874655347109055637836759464794727788134757679669070492645771417627147675018542778006116917599684828741249344392180650280128246464424067687397551420494139432294446376324716242882450219390625054212392765637718258949659870982525019657139041331112037815541624856118985890698270678006085612851399804992502915448785338859289755004087704451591762677348863451886662406085078783718609453117226231652720465488688345876924615402335507158006113436405435215551007029638371278530015079584599082836243981049896677286017199607961817366271549447830339818859197915623544108156961323792343258023154290483604327707126696229657654646690568131838994633221180188442627764019934747507842075257570649342753356299867347547992493646488181386129684634054227457978767001293646712142763559854243789012401201637496266793186781545788007962867838562495117529436949115626948994020342986372842105221350581567413853443923869453136937452908750960470086936208991552200963543140926060200081295517097493188509277653415018675979941115126242930764131899173298065192759974253263241096896523133706502134729098647636181877121238275704672119624636768257297416182222310879816469855136805583015947780281701233798073461178083635076792655309733815628732313482682237846979209093512987834903452113331056403371393344423253267009644119607572724233126329986504253077717622379383644782889293538432260803215932944522096032119601331224307973814219963102827593698713446738333875618640676287258867984252992161363243175498161806333483438356028493454974722495227586941841220839881014371931413276856892058369952282744756422049611127794689403640600192183885815815741025620121921816554990612827450829766010075726531943181458700358024964232793519978055666857747033989927994503707301600906519548114565769545068571992212625054012180126438536326629932573244717534480099709799141947443648992466983459292473765245543448137627110379749590056817637942621630171017702943813274085284978073164767072552064090387968956187001407056464705214092090913973667271424932296907545282681539720352220111219572771947577064591008362742720377039532886379077732185275923526623756833793487321177073573856285876335334321298671238765340930845059823183538029218443578203948146682989501284730198724670572376103049048832142767793543236802314511479920120250017764512760951549952960580618581001693976020342416100846236664948068550573969065481370155388288290296977019954076134401089615968815488796368694589330548488823462694281679706900213199805196783329628154143639101626532766937068138041398856709098330776653307622289934893654216443490928211691585698006243345459977354681985668468418496617562330229545758544793982980429220221328871555724054629260623368064683536890303779791837209815059733657390629255866482717820049679394536091514332083158353860099138961942571426040558225808828483213588662097210147245671627014979811598647808646632141760471304465619027931350661194445524356271120200013009240875812552611365554402516538794272921135083557119291641449720260537319183220036635946453273529800305844856252058422942691280212840851889541438344941502266223930849502128462897912617777723034536464749948390273965396004193068635893508813650645907148070417615223323016733010259433807422597640999101551368976909826371756303143859028427614158865055033310840507773976892156012786627251816928093493971904926816991765454859373926130656014274969238374002432586858197004413556462462520920842023025024003794830919905594717143945943972374853593536910974663473268760295552137620106954115812914699651283730619712872444271853506132613435513645527762813253538560026330360819919306537378844793234903698382794123983735516850335611423492341098385012199002523202046985965131848678652270179315864535313609837163039924414958638956863217226854411423317082069920840469479066935245261704599911263837815109261616358519960705121621164818086228464680316920709097150078302186274191285530689217700563619333243459369521106649299990134001258016696372980020062580108911890248609273652219271790969595329116460272923382437256646962446342118527396747291408638763085757626442443230007784045292346175233963979033582917374230632641067740895398951946046128520993132074312396168416365194481556402185649796993386762332981781290573580788312428404948598313068463407330906350961392499392387911608961915937155857627596704497272369801069679585206980705083563321618916234634769175124303496691954246597816821501079269690764026121175855216047039036049692883502869876984240380539598742769372560830708731694136805660366881863553761688712119083774044751289880142621856306250285121002170772276006946697079945939496327150932059794651173952008729681361977111308419089036925844242087678470287025559309368510897683983867615036091069545529895146691307359985489032341793645618636609487048899051656981688238410883069883897140666837363891422069523299396877925843974757952085617865158877653088656119844444900152902595269307772315046063290107264294145373533712202993451805538094074048931204764326672428165078222471021236164002364278590744257229194219847281302451937501680359159702560455119775292597982565054415533979958918629715525172225451382261069400080156637800756920374995786726370449064736258500412896626640472861752575085603440942100678069129794228753673731441984404936608093066718533038759427165864400005264196770805547717054824852284971155654909936250276111201028919023214767821202342844107292589494040020734636616221720799387825516094847301216998136632453704325994608198098831330826328221932352044228391317268635909329364853391799738503105748330354941000655091197190339460916663534910287406478173403595547115996804064567421118629018337743786257979008966552947162257457868594808714911991662518048812938868329054061042886058622614812773582771996398970197076331799671123109508374751798022620961523018952439761883114195116708931600460385931297151382945856544399045535494434448674402740847704821017393461141647156088122074182885580887561713017224204457999250836576321475164337442455727935025485321060648429333931308607024598596865706536513984249106204037859182890923615251196794696148232644580464043989075167542271682371707619761052044120045322998672705129941423842388774592021502503271907765867426607641211746841330916168918319820284249454038108392747458705778096093405186374768061646535068195284436340722918249622525864774547197805206093808103114110585199500594216181633578094568763385869013504624643850793360596944525097263618948056435287471063955141468836955024141329006725562132756275944966046334581744243036592676525262946556379009956281711692717031101309706885014585516675146970076479198672133634792326672529645426157944917061520851149325321139929131280767338263405738800527425157164800314030427625692122640559937758671960744016220456105588573762879972725153682349409709312530728384089520033214237245304205004263402591009830676848128477230011414991232234441797013254719480782665470564976336796640089409054220888682351518834688642956178529489417156484451278722606592513191645544984388059318607917308968222804822595476708946287368843122878969753794194461606973024802546805800393134857913297238624733971638573389664075196211348503780503642938157343297861590307045163021348391150318408628099649107686152194054296410109647143515433674809189924044128709179993715984930787372979428330519910042270191367328279172103150223683491914055355751558643118458389854753894142354495650902619812457985508508079272980161887666191939594922789388235218664709355801999388895869347811211478717534734704080368225057009066450362206731278109800887217500869113017175681266951791101066664829389734435011514203136352971269873972686994703660228308932164664069651984323015141592606147885761910037667870428182503323735760109901568738769530183225689593178181529248092076064299243098264849216858408945916764559841240714970787791791317254852191025637307510286359743215649675247275955140281187097262819305506683654657505039019248152549394531671854632208732944162187433215686372130872485901177496963501510366964992121142337349730089771083394099030492560768229977219897518525244978529728047340958777659643100860095516143336329385702513800805324721464890632491421739990826165314262955169961774645288660095697532535922995316091192506162016048135271286550419622314639463474860349247515455785124083708573304138740917644710018314156503718803674625882845622522185469131169075128242840016972297118264127861943684424974134242681348558219945025478216111479529227605555077445545030005047607945317937826494875447266805813749314392621130204977197559137903419908553467722957261451013964343041593448882095223704144678922920973170963186375982331910812621930139473237069865852586218279650808394793546499194116331492313675055734152421409718190113920615595031957860789255324357019312060851492937788644052271178920879395744330830150089053064889326999048533397833314984362954145639937059985820867895789073680232656044942263223812800315023754799938778810753830892923794707574193305198814458548817370403558148969802157724346384299756687593826095506254596550346294389248828494593761631682538496150225037888527555884941484855917124941810639625040185438166131144699665836847724008300758661009837862131068485011273313101142641165190962658267334586103474295330219708529426761080845075447040120875320232985893827590117793834885890385687697615975937474762325187521257240911837614519327475688600320956374253507148449752360094459704205078904395579860879509826516241047016494417255694925560359497039730253869078858690088575673260439375794653980873437897342079801532242594729605276087529920296528517089915474860695698794999217455213644349111671848679902575057768327140838522638558249317915594227978859128615594068187829637342309349246733074477665878554516927291184726383082256784020211334937871330568041961191332405206031565169877188751035564275911910484135908970974754857097936573758135161612154144440828888799320682996517094011731033111945201985747038746058862280965612448625902951313427830609434271382457197063813889855673157148800755067382962464135267958615470914923127559688320851906727407996430540680655541712096605188383581049939473749021307549646895178036953490889232111931512121971817644208872084859776633736535996687367366206430153244393092645263912151781030708443949576587043710351747046492530197040060058409923428318308326708231229096897062725014429742992181268171673021063126835357928772038181823738373648530201479552446862282196347254100489501162466586494662259065810528873525446742248152967854413903388309415083438333814796009007796702748415884819081875730673550708651362865421271798724552953731496202641059493683810957757691356483746400136203766148734726174922124267478506550933861644733032266621386234559870751210726606044881577164707847963356880353443949022554375942154297152257652472608638059892322658775529882323877014112271186931471527814582818447706232436314187990411348092013568049894851948181162026786865184926582796974834759080891741873074306429780911490213392318487080881597657910960686700744827668882376345003319892065751779110391626164581507066354116490218001431324184299356266572605085722695484612932256926557460989093460560759071724827354083031224540844107970988824890435081323241976506127800768387699821736728895979277852693167474092037063419851591568713020913121082236640205050323632240235975573991182720838416794609147180487332318183771322205176596939481550289057085811492968795439461673565740938554200914325792448328625946574796413558964092470670206407102050978400662008373555801467167256869072248946492811592398453206612679358433843488663197324227093008492120359154478271540213781909375478345410147131161737070209568295849102917976083552531910175675382092584605014492070510870689655300324737171139490883192176687024939020965634018910930490180529543049627819414120055890661638161950145001890750060914165929702207079810392828277958505582201397977727133621791043074198298632225717190025153950455791228770199844306904284403677710256613986509968225766245256224023243340027250719076750473716526787500212907514342892162464090700219852409411604986737983532854221578191323120288487436355772358331981247728093713235751836517483990595336015011251127553837732331795183764076133673366029113775169023463821335340001735027755807911647966028348110329644053990904973347776266222641344501757516020658299880863344652998959149269165358809621886632578304894578750358168414785782238863145031122138839226986868380667192956472202709420481674197136625496628813081488833397391613685588120680536830655488888020896949742409372609118932558432068006946502265332815179877218404051757442555637370231587722847144511724191692405664161005892969969501846298316348086386614135000746226465442047660318217977308816802891324561820533268888474965083611379424556328292256744961479033537085463225262514264929696118079725209515459772325689094368242145952452329736564891221648248361216310869414825487026311070552094546990505253840319853899121750898368715798911820376994808416761144581186241726958910720144042034012805897396263258763332397899018446257609868717846068956503675254685233063777791099364138700425633489430319693964926651938669989616257949262419226425054131115824965561267385984115749918779987016771993772919137974527223433529161349262091258616440350224063116910795027283916982120099380545875543306025631374235719235596272116629271068390493452216390924153528165472089147500439774183680935492184260456246632037251826607100712576094452998986319895899410383447629418133200864339259287999844270244392343433374564660944728968272793394917242133989642270198136785044772978882600680365014270361494136732929465668716597607670294504462432514572056173062765141757009599148707703583510607270192742658011815468714665717681765382766629766339764441402920820203375335810897491443082211897820021469666932024746521470684512685486779952023598720393799020678357796342530770979277087758918559165636703099138363703906760129539980061868179441628576893442784126420995858627312276033947436079504576714753656675790135089965410107616818992566305187176988254967400103176912904954722114005300578897429021533409195570156388548801915658599972250597696612542709159880168241606340700573409285495914215934735601107004422767656606162648606667183811796852666339700655543803399122246612997964904029920862728023391182888962630558881359311958633615150651817977590180701320891610457704290374074441165837666951862900274690643749036809443732246332327572001870801188401871454934715547873160976652189938307486702430318593838169338744359637608218432280917105439252359211361118681580032683053277530013241313860796549527169958536827751036481570370070826366382183150313758304102565618415321383796868939827320045164313933079227003517209872299915618121632287033054207423704898780990805278183070557456882795991730295241226659850288473545701207110262618663295184063091711921223391830888478828762765844962836068581288385801187255042044587417109893420500437475625708602495521527885211353761027014831075673346831536268535143433894233014357075769361534163693867517085705853590070671758758520687399633530916107728290347231777353173489554238349668783296090224125197379235113525309647104386141796690491485121191337641084236561528181870764233409389214611294126962133125579574803948193404856051884639240488669320186097541744377367737961738850231227235199326554392460949808103987259622385332008932292835866624533886020677606806704799817358291306593311339593140021165318105823226332352566273809347880412158886399938176346109651803967078881535148479513158950932898003952741795490132408039037713412641576553848316806153787344290009281351398696774269628984868623171946547975705856516371837063615580385920865913055402117801371327188344037632403677212459823264675469592873657319184906864267642414600116491271530353924439956577869357635163752437908394006628499287731114306307467700898940614628760848276655260902755550892885612814253354043098602384606480065079280268048673353370229815869788888988120757081753960149629300599888157832810280425017610473690447816595287901232666187937480210989812653682216082268354592805476230370039171370628705871927280664058667527264705739977154424189000825393248842924578815018983737750462875422971159481199081134839117213804477166773507085503067655458562623434961587148548971155843517147420334039826902157200160911463792822915553684057429360975885937529831070646813669808996289133364545007591774906556818038334945125236544208147242903946101068751654414662910240335981612969280310223699165463901838322715221127360319698817100160298542588563516493334430635575542822873937329265161132456634821567152401724996885046200051410236296895588941633929918097281776117744182306263755240401975894488923431055820730266269281528370743681175586270825649970650950567739474797375890538871126121466396863689216142747466517870944303626618456357565730152930280833962911339873300885105350750587693812338887344572780880157934990282403398062063984508979782219967729293170958923613200793645532376738780761432849539421578600976876887864908481258497272531800080228089300334512111502736503063134416875723072870934630709141050853742674265518507216907577105790294347613761164289743589385331370093897958336179759951560042458765965134309593881963531648859799294808966912925167607142860701592314161903206790780717565824992036589748105735974313250133942402495336305152345811751989238385094067055467219788971929820922274445047944281874889689700908274741135704789754714842974533185322364801101772741544705761011587152615226571471550384891887472684244193994111034273431053268633780208791357104051061046686516059206476174396408570237194243705139524794334062100313039222461065559690432015232539489928141325179576923888445315195832465520375761955825242467040876652246545840469497431450824625553059594816312715077547621015425057424364705494548786601866827145877589736215166860671698786811172201063930852076412863658517538926454127034514519442622635324613291845329713352281447777952307544424889716209776030077061430350500116698772014191463568153556607007501751943661952050487098485940276018542979818039583650019916637033608249306096299853530971408464495307590712736579164561187159811679106659880463173609591207321969086087485463583054465634908498245905587337902287755111722864522667189031728996259336897047196007644277799140296479892944513430560703917891985575268413787186853928604908692616757810475812705270375988458877714817859714963993315509907551246886822458059719528337873965689891216395961960180159824005497031495349581710891279182651483409450539400835135091464968919557025607813054988843947940710506248165720786200121153906875035929756944735188253504013705563005571175017520385218734804618421165953247908315710604508020443784376216526461899431009693437893745542227716896403485331303443206308382237196497629196300403720896018934472937640426171707873835825092383026426455737146512308506385499593535423123596009030615822449029780059231048200779476532812493981332534886523401973955592390138537014522078433914248802801070338728568301373945316201067757864426883593968365479257337906968199515391563360951503133964180503340522571068931121819189885716061389758320578681611392507806875527866802237855261414456894637845548911466537448787349192112859659708272785612061936363109980241017365716760660815109911634801032855337741669617935841797233238050346867027931594072401895540246142909612510136434740278663817882324977176244584670851937232565092320298030298933532336064249721820778545663843843491605829386615403068257914730479315872494518411948546073260944414944697947535370705654081242392303966159546007037261756039846310875053988354446239977049131338200568561600911405784708116716179770528147925585372486388227064625813383444644036516025377871788863012029640702427271997124913566047296739866515301664828454688980022287033422512352673260700357570607243573436378577541183698144791437035657344271666330947199470201887043965593916389991837467559742957099844178130341655893058221937264445171333230698368118263579632028384654837690062877367505895147461522588951454419978039509635961359392694090113358688142046039546366874307251286219249418983352590028842881239239506130201541166562501002908012659716291253136336665612815969485697400485978133350699596836141599523541756079123811187895051468522912231039895472340799173433214445356962273983992573738709759974246020886552610969575209209874083506986385255361369148862391989273924131626733833808199216057348341865075388847960455982182654722668036912463099931841063903541334005122052483579430197202050647450068542224743333358211609020985014204594103963254614549647892001204689225406360805757306176411279913273692082741834040720073215267242993045432041208780411756896462006744770615119602107844811062776661312604164512753549050089331649214292939468127888972086259663493107348043969898321906854201593082631939520936606676498754817588575382763342269653037950607339476256259676996758031163220785970960574737901239472730927619312743097743864687207241369205973560024005284563985188533698601499535662578332208960195990288434238571803965876312961725068431434577385179513897073790798007939396539787626738373862956395153769258083491858700953765742827091572738991951678516221091696206162928074650795550403744809911716440411921666418332556953810586384080194958402363938370111690661204051426765596795420966456653614068685565790637112643593147054240818172305000995069452681538408335886555437700996525557585175014629234662490505683456750804859979173802141206779978398858402063782476680593499845609644864441781001987017650715624736467716844773392149325954893197734384728649592736095935287887824544865033838737473648473801739530644778073956419888326182752342421563084693436317429946911218283947836027344338906569845510753301220913175792358694954193965431869056663077459880887354068298739717161805671795298201075197153791299065810270669910166926461822548361723924589773291387549703943010167878303332457166245150793296058308644337707886619125047122811212815203766445768398804733363102573911392153210314417652335168690445525559487755598786574119637102649330477459478927447052137239217124318801342772367320274165058039226309359749650922465881358423518060419712062736256304518305930571071358188760252230161093037397862384770857244061152985747325931008060422188090097459500684140965944315979190498606461741377886728368635365050529475638959044982211045345288794099063297294320165885768173899640742659155180222586614323452924385990034674905068237112881112160129717325961518478254369147794114842829903125924439247256796694960759064488484357046723131941223822959334001584796143671054692768852571061785053030762184130545137162979453854250341494316561144758576452505046823418693188819733159771344693826132087226813626419163423059035124843389038301474566248857856932448686346531364119444845264275453622878363081286963972404206984383587789339072973258120342184734988094287969909680846334762793464507896212905463848161856023352240700220682880767688173115643101042219073101470960002153702495113772866275871075814197488281567456844350867563506417171764709014232853190598170234686990404550538624446647625504976257496224073454178601845089277206039250082272104846531846041828427362752142250365993417150742797216698800172307911816520247442075914703932000334257163776221229941502629036958773534577601452724505931166804385912328045373154251438510999872234858726443171839979808769108045956100651593370986245300375631715972096877539763007881443912911800969344553883471073976873591020066455599250914766604397891029639294424131243478092912088172513780253538334330712506924695779099592570520435500806981991929684607364976599859166930511967371215364705145457433931990862101935748376531297021496808771842718693935717619644038591095904313509433970298304148831216228933142127835322226959322457970565847682828106509659784537533711380833233167134005939711493037882781619931554073828855453668917321316972176127574565095440068519776929953170162024754965745176266935321556229744097314545023289441243144733400406866212442083417236305610164200404832239603852667565860452963347860666018410180201554569241793363143482849589219423810555850595012993411020089357002360164080041287482635219075996007694047425077522884699431061121235564962952417145629984629901623079673555404805523879912084651202570537655108650486426408553774533605470566447651297879406684584026651692686980599476673552697242755239895342760400618880544612019562319822991086149019011419420261350577873461090742223671579624980609798183933088848584696402175250652569147662726756572059629160814087973512736840238686059786174916207363566125653168405401852624584669477939733730715351712658973130027444506973710813738479997537677746777239687551405601750565330956193228676420670706562612830248383615857552933396169852895607957736256921823848477438199624554738397982210652154605688891870452579609550970200701311234368256298361481151510360474420958369947426707126023013931925464177257894916265831306392649028338998763736309714053269734972067490876146460816860015236041338296560512554255869415140030279207943550766008179117121703322475654687178642863686625738496655905790411524956421283968977347448779939764339129878454548246096344689513998610042623412269363239156152605801399340618732153954594419117837007622836796172292978898129379723827590019019412078849147696501391604721187761905445726557671900308618937149802560272083243982510887200642632061203655062790587766006732202647405287358749334936288190471416530522854809101318494296077932462457287938887920097777786461787500283190941849342115954391629609749159216982952913384518710189839817010094750807343401733165227241791910277698292317846993048199132826115195143178785336109542532191686641966083492403864104358349785728879266467775870915120723972219557356730868866521429821832550459432997079161002895977266512046301793520959120269556378752841582878262576726703038129139353016300572029316153167116033083374169055250161366483168437430365409025722342130068924960107636082683215387802553510523262232542615933902301208262191294794210982716647606989354350777529049978817870488309943167131010070971080206895996900271062357915624203497601997659157180381867543029909649128654042135434519876994213390561225059940535501929631269178653101765821009968842298742646035272790305615805858092748920467413141547501154635670741183218305556384447257045835187505932054309522003061619373374683289384613057839514284449413789243744948517745711670839351614573005484171969763322534273364444792376104023416983294974466599797393326837357197093498244291337231179833607624682805164585120495346484319421307396976508201017725452262062184337465396546120488018379914161857984877737828325297648246974489000322413561286963528591300039481256996567125210736426937464575894794499379900900236061580573310838489707636449978915863991315359969843990585632356157147920151263400764249009169112339825718612506902789957465749819419344961345817404732167203974154400704274097852405642484009114507621718937186341033418644108491390194104196028266176217701565239049852866350152627560197820566496611147819124933218946847846720354004308316996214210952840432945987516086974246307350331255752796731479545360518221074554033771953167155452571100051372539546577320839928259235246586866646198862231238732531823700862479068535002342248524495961030185306495681910326780411988215434349900981630465376593224179006915045125792097418389544520639910962617348676951029288344354148426927644653544612142808802744461623406233196701059411353747320438080446629853324241614358685736550595156462281511008859649991286721085691040117485387406831783602820085252505490891496829870281274381637303351064367772113542542788924624273677850372420110239286077884533331024739879740408670111195022101822327449526390172040967638103438859398403340392898331557863532295574065256335028834007173633256630829026108857279946414478310625090850574797743991735318739356006824601988301546755150657259083846726435214709907444336924430919592253303882354946008704414534323475595378867001100843996992815810545712135152526554975906191501254222467855743779032014681053761007545384242648687289228236328311533876030094600398471760826808025094723163729619700852601754949523473645945744922647442127900793471657159995184061077620196015918220372320570397848841241777948876267679200019212514512894996920646653358936889542931027107043580199132721795125635927105024035138261271001508018375346530852909230322927214765919609159429582009294483953825241580994352122050750754622132683015865257198771518174970500444474345647234894966833213330297244516750730175282401278756830383495539060680651601112826436701855725918272095402944269255189963721353665374311597588792127331876903026646701198819237815490273408955193192650724840543900701744437142573696148276570618143707993794060619338263556834399614067275179291687095695110483045345648760493340730741952657248102451173532913642589403315748673683021762675649302286863365716744708771882100319334549941913185030065224983329096618819989146709355865341612115209202132217847405102307812103624376869860936911837563137901418646664458626227774216948717086846462159888283692371491870157963358745333966142161335420604133255880840687811317104990485143670138878165250680386927627432742550676508930738879347500036768803706189001195837527963710148244914298120815917939636569355468564299620350837166470271506430396320842304435385054444331089748963099453886738347617473007253108171460049374757949113016796909883822272700283545954506066507784731728914907480462892780967350749485775827636179431238872271316408325475286493518253066616136373874583897546040933241576941123143556496494556862487579103405976136576714214668524596662792443109262573329090245487181361558796414327633942078029155805890528307856201177572904683541038533299316288716463444079405613118990930500438148662791651710166531722257650658253518590545855047305298375716803462163998128620981821648122842509252354787040430707816760224814403453483461324665534111019422732552223440619587375196202138798745469666502938692581037119168843006946121244591624933438510940793257925327216469678524968455473945516514970208752361554546620112601356344053623732981774769078168469305338703899567086511653859980809041962460108103125569797324863586933335212603201889188252903538110849014579089994630673742156150749836038561784138815414610869717175824683705666763865972044206105315844382574972518284960209799091254943465322973869140261391275481899981382422739147537141080165576175906134445202002813225956855970115500738907708230899395204787871674242456861718919543453273813101931021936242103385970534480955928889821878823459412449002753338162823668505699677272880197629582917937458026032298201495421791007053982139198285765084366998730381352223251219573702947509026302904652889388752807918485699145849919042008043034761339775576764468038818139232175540481420114227354455207870182342783638055191856710552779768129075869005663771739390948789254247232252550542419809222963155377764405484936948856878479700108952297973306524871669586948897002363928390151877470289490207040805291030815246156337179336155114015411382574909607438496893738458408836284431820837818296746922747393008969440172917196266980258944999524892458918434462573024961157572795337594770145808734549479165832820818767424815568502949409385050513882475839583548800646498638970513397635140357578997224436948010783327083530100047131741528265222926910354414832763167510008957895512175249789611362945551553605920224821606879505488806620355241755292185499271369995136112700850645086195410345491315412239150623068273157418847930865802198227824965590320052460186805480604269331602725638942541944305825690646950598561262317602771535125019951620591781376684663480092970108198105572187977793938854945976602996501658704631391796979810624165023818493195212325890014961048212010458692113576634680029516688428502537190438682603243769357867429761520654164598098022259988976732520321178394057776486971952466435692098927159177626595217813565127850155692015432425533561749889955402573382807550890678038992173425540590616598301808660159487461369757741453384290516131996769133198342751615455196296111733392770476011273206989252340291601000434524996323456540171597101692840691774721560339990745873465866795108798126107775389963167833976068595829808046454922646010787934065385563235443710355850689961104785087120298439985371300896232866606219268104038241898674368847306435424127246481992316326100459313132021181833763321670891077628109546578984653796003302923721854942428478989846703186948715050555165521089090867503637647608012345014853402526613909345132055327612611094263285889910151958827068163213103973351027583511216460207091757123261115558317646756285109879897694218993200287072973969193665873382821130425476035334711963874030184548448610398721972239027488816015309915996554625110162414095892560973586307421895810179128279283254191020080299000365505447640247174850653746834882844810638265021145793451415395508176041883282626194011349347054808102020228779048835057533293672293493045891872357736138770757205584949025608946711296847552538895958410391090567285363655127356091897303625355084727517814165386620755611930835108735479347433253639801248741313013163104661500606849639785482201043748483305956348492961141699289939622135555781758564506198963116388201122219771945546399531374865509645686398436631987337288292604764774937187500538297843470888872887269241712739317156232338897753946679268194565285969415508945271692941249404039370856356494148844665061664160156415191716711282630851826365606162854646428723151713610832172992889890893611620128037722684503281171230250545752444196467836420733485879524494328500688555349768510381126884388722336555967672929938162932732015211174878636959849609563637286839734071048816335360997244790442968158241319481880446757535402883455618747148171321414761203586249847130182588919788348037242679746593449321407917013057772033789698626233414320301481691956716871847195305513659262003782241601390717423896588029345010257043694057601548604357430475958143804119323816858537020987500914218735856523225481767765078412261111977570650303249176150357573326330747823885988388463392049132053925765696255315333068997154404753209857689298912823463505431309810942289003874431591329299469214678452157117080443193913056169288706157797832817621518682727064568060833037849258862553953081082475911107743514185593286066024825653911753101252377279195030976541183983880505846101188718413566346784212395082453516608833186492871538315808447363633170218331749507955709907668100086865243142452962176603825451670069560422815628353043582298327019499842620934942615543074517873325642851407292114823727825561806206876535867081750955899310771995609347579394750089440978364516690520279658920264728969197993164323762652568932058396665137085338604412074067881389948751016511554372887160734599849373842937256272966611861163245715084083728045361382287360184890358224802582448180672637330726008004089579324522656750824853842006242852987481108008253779851163943081549918366865160411676740424755146266023361409452266302327054805639116126534084745973299694339481294527473114424227118343881359769050322866125824527016122794979553087370744057871446282473791453455384522482902579987826688655747579419400942229791015348810272211521391146435631469250979499971070348593789546357250794204294895534915451255728614251848285067916153687518789239722166044068056172209185183816177719949336122547007475863304172965287217903325746322133686253201820056966447031526915237126875585275783055027540784286231918110212554243104939034749210122742973727154531181669998923372063962387756151199742922877020502077586364685455603867332453961206841679254096102927612221096384716998908274309162218022029570065229630021740587015356775550798888328620094107195915955388135540200399956622171965423929366294893580655225632480027812265023928393005819607087339260180754942802545852323950681286122636672466696610953136069992618639516677177725639853587381929440131185187496664052640941322176693606215940364214792713414637845358591242903693174641258393902837680386324694651011760410257940796397160920711210167548735312859685985779582681571706278242855995101990281740837537967590608677883233088023468535727271263807900089561858017630550044997586928187958940992918054878940375019781455887783418222334884030512391760468572221680977628265537661227356970902543673548729911682381769151499359891730249928751113450403167901431048400476594829501391916910512703140085171221245119639010200476395869841741899106709709503297689163190585149676168773585174289521342530888994595609365599686399418515118063020234316393647711542927518657509538764425757573953798638706767630464093277577399455831746194265790945389715206404044455618716820561721945024203943565492185165902005003310998904071890219569490022709830058803871140578434643557389647749706191506488993341990386387022640294780378395219759490084753192792504641932923712669122022155267556897663041536212983669877370915810280240357779279818763533036545284978965457771323151771204946014272495659825103533909913010853203309856803972815209983731021053665521993923535279141190443158019864123976244688773978365643408424730150844321971756498796760077502651269580355742109504582674797388434401103149170005834822138094531922405105084289114426213939430233149008196047308454762633231899199248203268893635306483387090256021387170850447777035560718624523543735208560442482732946632453155504609659993084358482469438603305622966170976470560791316142818975752212078010923790687054781565519675237860607091222769475811624282447806470153025519676437666109440986485041270534279759844394113083238988459127615156700261564920001124756339614611019446016957874830597535716788178974360902205897396441337341491386904363833622477760726003649645954409784972136818366401183854587406865046479188976997590731908243591371003527797792356359823589900401965535468253710956555707985318097454198944837828142475596682415037953785644041033812678707973831288833684374395235163572058826174284039104454892124143151626681089347687464823323686834956715457971149605223595801802173852885675518480932717628959721231648028292975761020574973733903024384629562116753822249976316214463578786286017617505475989942202150025594636274831893999075537081440195644013067587589109136921978294050739482197691418444896595659775796772839568694722686861184217848367382594717522955954804828068420872351180891422935314625222849259882447577453433072318074228133290987127358309282890038253144989969628799360473120355208060300400034276421001555815652324994982552612155591588960965346737207317664103101528681516929258452734008143862523728138481132327242693431901804666607850030356332819001505159436165341238470469184878718720010124678447191844426485398341734054540708737900396756719415298004311392244605292478848324875328615726780469188736525318238266111591342380579284254421982944018563966938329192400288821581450154467390731987489753928400475858927867071135635427491735531809951860461368798031126680348557863326592564218281518242949796971843841070230302655576084935617676807563975138634370098164666004791445999092596250973432445345626768951457494957104742842279393115543257173710971219858788094504081728825862447344581661709294652762550616228772003301759155995740291747259798059832390236572987437715315154937485215027176915066505713221853608342716115281915231565551221638127473387241520697939395804642697190307947124085708739080451704284556328029012626183960884664615061212247611002559071314221006491880613239038942070956989041231485113815163626383522115546525790375308331836721280848488891306821599982033027690237966587069857036829900667994088712776945478742673112303003729064924879399827717436054916299710717456658751662248182159573275843232317694687390180162983790236332234866730246892296686857954359876625764834434521952541229604817706467086828099476603163861132111175511535335979874193264124910884190111910042031589801619896382209513630789116299655486847709799616781032904025909527802463241304851014676847707095864680188646666818331130749664914738717400736127969194240205552265920416342300639270053273915642722521065917370089091053559722377629868977999737005762487443430932982037484237725372449490686847009268650361994431276820256498053362606305939496430336876422227145076162428707739047133619925718960326210853273210833163112116773543869964353545328625598800003863414620965529385685988546921258292334184714049681309499728469272362330000420170578251039999759364031653776015521010742452031087922929965788931305874877984434012691527628200229896904522876946052141166812274289594342628943523543542947610726972178956571407311660265952999717124982622741789225725323412951960728346092050208663395539999349784920496978165957017438158481202356332432300725103201285141790176337178294692581945359918684585014736868652689341163771604774197629685370558689392345201997531586443223052338970614773531162916299901388951369680269181098952659231253480104260763430563182013459046141522366011892302130224161035783942599355786656949815065274001703144570355668203007955864777660256271831591991318622067046670792691756084144298453391666067849058050624081392080069830217434549145563270825358020242903667635871075840422414341487137731246381515147708455113258589878888562792050436397489737981204153987582757133135333204083790107581128119956570386433179922058888265960041295529354992453053899003841510670210910000171361622381082164857863887800149399912856901666372532097928608665109817912420518910615884227982892052478536328109417629556476666792471018587242030317634509545430872004113407909143511588680025775749069314791732248059448972423769616704266344976435024460261116257619124414181392188703607647319188066988509760181784617509505050618321883601535488380944418143782860622224223659796827801232366282684032577311053922023742021731850753219588367878921183698902045405553898069046277780761134914488716951895395133366060017210767606460622657889443977318191744213185352796512775831866450603290788403379616514720582517712034652399163744071930645794466936253964663657231457096283291911174013658959725006009582122970427553721360045160431266740247073938898074397280248396052434729270322640427997565707712301271209132376869638543803538529669787277744417619123869551180639392992703632858229377608477351282954127052741084161943333748942015385348180979003667222050368516406088385630569821498000311352709280232798554883545319845025371808404211448861768320887616439378091853178477125458981931977007055562168330621515962057451103777994665373512673586844948269033430832801498861373298523559995450469915919021239137766275178262247204763282585544967349592113655657193799306697460224490118366502855255852383911143002446638954673261814439273567016840676976916735482305485847102203905073813213705268452476742488503262574734401499415569637384808207452147211604777740480955225120173266121150876846742636223996844901698729787534759651811232565996251659744581305809383643695995087139413213388322877586362297694276938696567168196530452039610252119081436617768014641122491662432630883207892327980337886536236013978798214144341288599206812939966820451601596130003083064077800702370785286284471775527591343645908038870197914149273197615685290329291151425412820194639757989239747792007394009728603275336539665079786361353679008289275909949438176418649616458240382676847483663125151586829635530978730446503549056168647916674343218761215500988562069680715959355103143570869225728574462924929818127581268069398227707161671985005303722368411928286273470322668679636249637397486172183618169374821022668495512967742787528988683741314231241123397843214481513593872838313818543511203611372884650900975995790052203581912705932785168494536214142661900370928408245789924468265607693529011864323729693174781979658596481483096856667616824453721169873865277577125324762789371636567507581953472105589465878858129713586269295444106154743656331439347197122851165731645719731127923997773970249597490601643974731483208529941124312748730520722452942445964758892686970434313182202093185694420024039694098700246026015496174313083289987048800268122814841209626004068486059390437557011347374249868460471065015109677379819103209290650784738051717411575054691166293105356184787375810347088467111306271235662660408285940225251794807048339046108052861228579804813496762621507120992618122479205167534619823083442243662567894816201520295334390422652034757492458757509213482102528646944103822133361665358611500270398027929349282137195503978526206564000778712872557391338390479443861155211901808724142584335931332895603442553097405887129754297347009244806836310763813248906658047135699147261776922952822902777993188866678936848585951182919375991421220478951406702170143182505664520978958191209789136205381340400549361362336239701199087223705712123225389027260055450134690036532028878007177448316995337311935548217421135889621489920636526936279046574178170356247726731194555826700583489648336907179398627567257886833023147789722047173190749481758488390865673816564665473799654307917631554293702436707286465845498191948169818095518095781279462178395194367371221859466802077394586565804464986028265425646230296790108605161050458187882139277797111421581397634086209679924717906044344247925548997858993943838784215252051433505635957224719012448312167788012201998004700247114453278386675453295373438303634556059145470330482564412629966633263041788964636501219044558575689299956250264769160612043880152223429172848380774828282727935238619846619356732601655945089827118891185590768659821183739715850939270056138930448526128937847316188566307342317946832620104114515058527437849927145928976646650737265520868522584465604760271944257004107353109008048141349417799891947930754299301002314200485276257919390270968172517995197381305171324304440524151250714385097893329286016319528313193678059066170496382586534416168538849407053514083775282747060549454347646606071950710043985687310156489459716905309674122195033417230055717421178133223627225645394877773644950993532652109815273190806924430310329205356758258469611335025675690158381681148666012087319040569807325341760573521721904315238613329619399544407489356886861761899881210444203953063782128324388244448084929987528277269038560924869066649029749537052583541680907415037888084308759900000412231809434196937992306178032440350621672180209495088276396774497914736712054556301139298376324320614645949516126277209734122341475919386618260875348540939378396923539601468661264753744222981426135543978553804388424405509792026600501895696334972742806755972974204140505180340704848567340358324046950939937195242758848339611782587947567031354607649447286006387844660480081971197674237007495335294405835315360366703009797110109827748799713458733255715793062858998262006819680439549130119425784280740111176453927973811040791227133738687436300690583670770080237716345783823821344620193827010121782591901618950922225706355665822479247180628067067500668564446131336823036714173285916477457415378510250487989681595328453491066238933881202279548342421088246096858811352832984573718532507011007840295028327292936366521274712859933426802676714316906233876388099020329804489581929019833288054291799661505490030493612493001417973530670101752895758649403750221621573810022790847040136126244483103208082350443410145899767843401451319589336815576400677554944819381124774687335389832771405706929516307102019357774661600576110186789957979369759796782176597744179059697978720472386878319632796746692727079263993500313130431026133784544768642980688794745674040722425040876775318593296052260777281130301779921619845645752638601098679940574418351844257512896661408429595456374719155132391552374162983199183009806247154833140429998236909152535829822533832239054598320684196305022537785376822337475314406580158726079895276842090613636195980514784014631055599336002850868004454050516832821291334712389392714745894214355202747304444559248404068225895931396067633514637430662838935623102133076611109151054035754381634776643052625764974571999413984784932625136352871023275507516814651762024243534228030900036691764021157478030289750664000610933680753660752738026407257265573184427828376013353643264029907700930559369298618021406514037154032326436072288052868830217208788044014230276850580750398455842493492485788905787906048365541894979674160913562134980761398572587816756720211032014656882000706050149824477739176498762062672368048515015739939572716581500279709977477033321275131287165844210149877802067728460952974195145489511915917260955785977709026799664128900705424350905156743823061916838161639865429479384774914080453912087068616654901144671032678536172982122164939760555136466434321141477000059083012091251390072369092091944742624737194578215022507736282686101322730053689301428586240662112688519019914949163015737641520349701787300959641720461752406456218074870231680060409652711385462542998368481135710612978769197497106194372538442173998000910148464156871874650585319741587599973148588758510583782939191085903084359145494257496203414770255021800618470256928208355876236488004189344092810941137209080678101244175433345416334331378924693074056244662653412215386653193620204334643032772386618932691173555179208922458779995996497191684647841234015974637384568544453722923205422468141321947358645605990537300606613037960693961755405722573886582294457741994428940593328542643566931208992407594603321923704249263163775669094900353001498920720412022316568005180758175183720547114677009605886797130544838451314161422953962489722378820469001969879676005903379243595667102536247525807565611046963383918915454464571960887586734103450099970596786840776190091423617378225363467837333792893874213644747546011506892224270244134763248301647309146386096109414257347373906606240401453653051892873888140414406870844711650149721981375648201535020570188484937987363794426790676562112801035341988158464458160820808467117398210149181749153313475070249373222150724894633156698726646112894260993312298551550735580885678109578325648360310683700746521059631060968992188956326409564156846976638236103394463534747282640599499584933934831904723284539516763657586454068469319318236441600919846663176580443503876564253702533806885949014279255642993067921706694373294388307173247910915054107712977854095498707931621017281610401071224959019082495357487561165939461693165826770149574916972650557028737816649033738265864123136359395606024980747541471209389295217272501763976113649263772748678071438174653670323507694547122479671558670442582098393078659570067090907381095116326780970253971688000087442174452729692599428528943044290452966396982026441553187367658176242848551064362673749073103001952152924964655319722041968721791374719838489555242916364793038714665838098450908648777903051307167488723149591282988031024234678051722627551571150583443714504626937033262084839388592628619090671172674022583171236363730077938449014368073929954930288028089887845238717898236096016509129360127610953753822761367538805328976809310602195253640037430712986935072780161329429369388540360591800911655663510507869481924668746819728113272043066042226106173893369779456247459030170990096698655415643000002352065049118871041098029612938774532664812108593140999849731614085298723712420189934910945775495484925095149983084316158536909470865912389657122264435040346117477757986257693242090874847255340207413722067054194026052255696026383564046149825939696730443913017763087828894154208180696770148310364093977256545427954356461617933573728970182036694848562916870314572816117167300725241923776236606750332081231964701684801954157692573827027376346186099956118103747543033882812372301906512667049596763598909999162657618702177643233614754608099215173931451907939806273753893757441262977948931192920979540759686287053580636427740337400991419563943464676400156254699471657259309785532159635237569166937982485469739079966370694793078840371761530774936397916201374142331383404957480950158334187001936766288434234051585301600504711991423867013984135345704379631092895098460762785824157869470078459920660423154910969452526547185070317308775530825306653130061465615585710618156579649195417940183768966792386644481499230548449289413983223212767848144697941162277961526927726498002041934393987958090480161196947012260400439122129046468728504038373672970508411465738147084505595055347258827022242897227747179235833680899456036375584387336314254003539851258999664016098877312351215942576147959667919432155510381139606998702891785118785695704273219828475819861783933140014772025679597104231427657111768952361101786857972358957819226308527194213936650852716912310576678105147562425030891197329265823399211182545010603324885932626124807713065099613783862097092209476443519702181823069585997991970945755054722369552780659011610533054613707328617441984379761427317305177649564989609679779228879184108629601471280145082600791509264870270384565296754987171096756211215515037533140848934080711855928307970825979472165562964426329386083084430139570109961539406569268518779698058352530819248997909894298581942031553138430557898962303658002636691977723153897390196244474857979512297279337314774406635745182883870184953381544862611475856941117236596240750368955154672923810045233834245504671485016497000584654391645130671172316991388149574764107356556146069959790147337447850143730009099343791383294088632238885441738655935297707044846115586445961030214642534339127251087917670503049284683131928126273014264371818719129547085698772119996523273118267984479874677374471250156364031480539293514625114437550675919758883525041795985266722371642899521603625367727644744778495614300466491321760888711067377370932647650458507229545655711704536141124296939937554833904440271140534225200247602364400376873976766825037681460588441674089825246865757890213424612922311177682135457215379888489867973476849232559371352491144338848960582922389840796125485642019633057703469452968693117684060113637876922157805842041992437089234040152688807324650830728559006636726418258450665465753297060288120872009587497013670090513607754925145417923585711391866797740878498449430890609269195787555897349505705021637232147046015887283818253196119642028774288640029043861705047349848978376604041815371687065129428864053892371041922686899807641956905634456316290242543709424498877576738532437464534983876467502987787407444393639456499389883309370972261805966803120780716916398973386225407343536385981498677298069287785373442825596344325085374066594638977091985996597363749771740584919477819472852481237927991779268976815775784298828607317539109102208668938045037974086606792564550099569600288062922086093461802112976302527285126768308365421624672582878126303057332453735214365621345504938055720185163306201931646593999701504097680789137161062584200482243907689349367700823980581398284501575643235723350148760948017407986674055470078620630899017914683831341460475533307316077188824771921875717331878655202784774588487362049081836068754857858986716530336866128817099443241431048984376626473587431931871533904296501857416016672002743552259308194111441087886501631132234800855541006501243505298143910910015165999940675328320006150639172620486905147237685908821215490119624320306672058300421488168854560593833920571015089078434608936724702141275789946286476889481591338577038436757682794725548492236692154547318976648715693473402841126581631632307847709127462256552612946250805484998438311591994342877492789087323071936070084746576212392511150357728328630259392599900599601765645790818574671915521634345760840537186847725259611924402834976418710907774043009371111545683050000742044620788329165418840216325762994640450069750651668518499371054287928972903874792265526324477359370734509502535369205740005069446588323164199771995990652705566144679378250467227350066380064348641505372784644398993160899631111129396211888153258546019268089996194587456241571255126021103829050254679349920652891294372664710449906700710008177762262992185483558140405593084542847021179086900971048879671555069322108909589024985210490143332335122916821550463994618008033197476939246628581134407964153422695718235733465133548435583226847508491949336050189984684928099687952904966450291630636571230301256647261828178912346696753803672879235124961178990966760683323166326145828664771652183573781223015891024417888711649017374372856300839924284281589086222369853224390108767495971358731144962252697052344754181978342485243405233329237249192679109389252796055415769142432964728805488426344255837174492977010107643918194692276450785968377074795180782823591303163468421400023229324064681956615353523686479002064888069180839502371421087526807819041533830577665341052230813613558757497333709510971311856227275673557396616490150515936824269463496582787391154707340738497403707702445471533263458385484125133813146903345329524347868037384640563223489478360492918509712108230695208213736978267445381221800990459831275332398302452148948872835908799774492884563949940804618857952462633921569603822752585860713194595117054111131507171428582267168888206992839746878722300819976308826250697348677147799879328930906322391352815138338441945523779409398663286461987286942751085577659623035397478368974791826719330063214154642405711870772035063229739786883474513619337441603273260090365938363684385320743937234472336508410534586323309827385352096934956313291678170593326094792744921320282312814106497427463576182810536318817143292716055338439388996300164058038019822603644606890259017650285418137814066147245880281542444908376835947373143214669988710456503102006387386766888944613376243761857684183901071324755059019239950656820632470755438744384155982416104963130301106850957453280277759429485648403961002232678056858717429239327659792123403897400775507406604821650680839921341199361462552780805823539781332402607056382083821646859666547363063105915882874242368515442310538387406457718906723935604925883932182430829637346731056311801665921031164110078466358548079226199023422176439625133530366350489263893219498020539739283864205057118829821767193998212080264789510978036081508065910429842692409153033385567474874802362449036450745657329246874276750845019476720828590643103764089997332057457908449359217388452106170362403603418743577548820797299253445184263079459725503894680207272865178000573461186664275213068660329842217328345496281911197120076138197594386768891960773248261140904261248750812262936868025318403184278697775797331784574606391536592006168326191216082195636634464165387459029277264706178230002576361223699039931620436151182060794303897539210142233310151070466037440306910043545692607461869550820609433355671783035323659488416816540426211939444435121503378060158703583527796530455271291728156311388071696296909231195313039368888436180677814449586320184059372524630965391676918888583349355052366869068406911881801081053536313560529664167391173398893657865717125208081644007822403772132424047444098708423227697880329159755256877184095373763767036602281964020786680979178439501063050062770077429753587354464282569842905669349045951906697474801874724416712802984682848550713247667799150065958677379633866454907220165424315002261020556431543950292404699577970940846270663265648390951585923228796378723085890891649172471704964140987097595977966867554196110660405058475721694222019378731519112022389735775421528179581671325730226998320555352627607178153876478788164686791792877134096232423294285466407377104642911209093307670105048945783287237831098815068195202857958521300149197632229180793486231649336215536037644279234342721209761911072420062278552133384332096438173002088455636519289497955701767330609451040053803088956513016583795008643698217106341261998829138982650590821163089685682248819014502069110592792709448560303634774190601755072432962583839621233896740205832030165484162713147151748505103404517934372382130544623519758268489361513972318294778512369500612477716136077243022568837412365533553581009303612760749458883935110817153200261138101308216485266322079268044768464806302636729372617023779281302688860685608803799197019006131163923880473822730762380702030931092147053634492176900067454790908004205579995375515603414325313111479035215300933028482780168191256136008574167373944243656139210910636675062490456114154915490979791453114091610191302063536942320450669433256920426997795087821729741269912012246994962418579876186178612913475117133576428339976045519131074291845870760653778391478091814365722997094510069830191569407963481260619978652180464501505504194609716112638093835698148499405938633271888776180963295867697992334980996378984867767256776774735389512158740296840538359358662691217543649127881901875273611100772823215503547321451163999607518645672033103096818664446664030515626398016770122671100605542376893092540194070262061146602602901476423105117398397510351818709426667323362863749426428793692987433534139960602262860402365392777701995794156957389959824223061342333427283659466405469858321524387654504338226930582672939983249205081039418674652057079267573106110309705680383241978943436105530273453924225507893919788338902198082936792626745303373395983768382888640461106185740041645849780516308538120375822644607996734556416963970608575081619363598995828085405287173340493096597534118489627288995363064928239477511644943019981896853440087761918294845038534470459548980723689333354422068878781191480463076614415362757507070554018230963079153828511771475021618965631132047576512634030134525100765995854846825856006448812320282598864251346910442826413381548750832661042669574760389734040173616758239969759115049015610449476690201335134903150731827186214106827754282689116301229782453054358657155405891044403073818903233782877825704140962892830052151446148949662024833040739595678694730161021965283898191909835549726748936058363725009902927271221084757750641480199105952832422076981579152853104087024189131698179110003610639110789968030932079996904649888631170136077925075089533121983089050484988084370471577125783403963096827951326887008505578870541267842370896064693533274851526376846156615541888924740486033713567310849560235775279101380635436505588802045280767039314219954557559432036355299494349324094353591523382891319302334130775135308503373185255193105908505033072409472655156942461768377940621642906747262075754141787164173202479362712892313488671957921304749454288165571645286253220512472005084628930877067172582024433025921735136200303972380161940754767897338290151729770334084598313402601928785427841451584697521285318993717780645705597275467264278654764861420208564467346729815229654054180802068277809463990892158999309924956814311768865294837151805107601475502432995523447448373435385768620997615083686495292937915778442214481509670534316724007132335587718239673966550875354988445315194214561410399235282557169070982410029336189117701075458176819572589831358452054713173759205994829452899378003512014312221398254446786906774642008050473696805628476332794416248805978569404565724155659478320525047861491457166091133010001198433575808477820096311891423141724681510619049057280036550557224837428806478190036091257461510016201477318700159738941174040568217723216798847691918295211909008282464309084978618655713517343112950853938343149566738508500212954343906747781945750794523920925712155089036030546960980656273356974543905525408394141329975735676872098504913543677966942371830616078870241965699593706424707870828688898850004648338985619075277909804738835112346237002545221730300618237673837532378026580969382199314073321911890417130360662663702825988681160310330714470500255441582825143590905493865845613589361870296698182048065032180860793034212775796092184171671736529973557981206635259052140478635470377966049629410776027528251514810643409996340022540136897262927282123559526965994201629216143460824297009502361333500552781004386963071826804395600949326796448143780269508958204448425837814014511458414581396052112381690181497585541037552536139515993379016852835729227518154655059302665235032518226223785643015466778408254937624421762130471032952332527565046324993193100799080688124940233814554630444155409258479302124853649782127861990073335087698929463738307073288002372603195660037476893146129285220891779228322423363749752004399244929303811597062842523339663390127326969412910555803071179021458920017134016276684321774102647350156231919123659753148333989330690841957058317335170873977496197865032166119057209891180183825724454104944020571212213173127709294375437218996699064402236695498743357619757055097393227997595347600423617731572897636001244169926378092185248889433162531243542994786408388536267663634854699674330703057582999306845424618938194225474222651460857659678474487812179916516295265194627394683186072816130021228735884849420612615956711532269818884833346413955388066241011929948184392640717114281824420718612359396988981279804298342080334435998311261141622262432189406069210653182978193367521220798522129820063766664499751074063978062976381971762906544040478114992036888635214316002479051100458711906907360799905885373239394512264000486085208968592495804842644330085979312781773829452188459147540427424815540775562820777315197912149938572798589872056565781942347993617892865790809472221861910343977472784001239708430389080850309162168249930363595349278356434391125064896200564567968377666593829063564165041291714070259647912476679402353772737329843194728302196315204712638124451442360042177333966697060035995321900261149060621634960876297338673053084083412091587080043922835652792638898672378996287353018262649098377819667320477565729433857991169709724243804833740882065123121410345057630889415975054360288407623808637683012732668823079452640991104238961989058177277482087714025918876130265936216692438554988377864026482301631495015795093469745404937084433377173261983117532198353736442251623699566648522783248835992967865624493593111257299188103971869461019812198154869696768870408034180257218081477849076065631072912400170981999987651723372710075117445394343212934657482353992934584448731666209410257753369486753302554247745207479639055696437335699815044623157258444730020986830275683845088561064058561386320244114168663784738064734969623782785240907281097543978094999224654047296379842122403637997483197409502346013916867999002995341993298695588825004010028792425385081130247974224058478221127254436616735395837633749516306207556423974922220408588209400483039007375275976108845847562336788588455640963542203918533792463087040770502334220114738039131731093799123911138071835958132181202032440889620128368256498206689327954537105804125486906569475725873253901887472261904605393077518210995342528256234518056543981968730418056377789683933540991485251623532241452818968142851109113443188142706742447982776442083332958911196847663343403647925558665770074500836575343919963609889078928237071897639150118732576394865354698519395734990083953265460886836008986711522805775194294873940408843118076278807126370332298728123616667393169346265837965737657103285266708634317130153324962926910750633215102142353559784692412190960586286850387672914795166845856885150213279979160980885876975182229545240765260785185486145739719189160741689098316679628822795637553467641608938100819709294314749019481213666763064272674746595388131717607790347240530951064151280629877908140425844565513226426458307758988357826218735006232628371562440959656218865187177951009424872634521199769931170949239669917519466254283873736114995555425908911036402343523588668902752589204334291416873433300733517377354888970568010612002721598998820028546936196187877153007860872016539531322858614133812811990178848048527981060456500654179390764061809264033222178280593021978872911088935802217764509175107451040750328692528787348358192146054261218835510042888337559401369938452755057142245021884166893191693013756232614099280882102486766916065066457834509438958461465452733444508741681077540087893287590897192659840846523971738741422386065588825097194122445931346589751957984299605650246692565096967997371930014292723700029874871241778346932993289780350119514730149905802801327794146297877347413963442580562567039189684310810584255073749656848474952512957155239787558862806032770891372193807178062733869700286401820157247318110304098294898281299952246400967107720311068626011067078682958694996276625358099827275656562466878490226853127943032287507629734249821335258295679294599368659871783486758984518385051285615076866420131764294092701229793221938068616082024505904324477847608030560805415432814388257288290143953971388636186868017872813438490252682197943972146628906348600569200330344395704575445701879404764978851617709022521835405270744961147122222296466478613260850418135130531603982272928497415624544798055817191954804855614635475071620671562069171208551585822278316677072090667899085895736327681124402494299733830400367746103150480081393216176689535245668737706211290226673078401428088722346699532635223693227182523518410060330632968288184917089679229737306097636474927799339412001879187931416155940087344576810213000816624462696044117828514279345722909418258850888004752835528004674819740362871554797587241515857408471290477925790175716822200678681066506945948219536116993577145402207806201098240078350250658267852101335949563723336639022807070916560876302580754443309851682069750172354224360699100371887063112329345396996179742048628883862756447341862923416591234878505289900070339583207305422378252855304761003494670145992084216084906992192159775983997231520885662020367059013027566895920388221058677289388677333103364090225446294531774414884378201461455297126788876483405154628049902873298406386188948608728588991571285901703933508309361655231226761918433183465575287947694721437967162224016738478306656142361388846775090211334981905468010295612417032037615556098724142161106322795644344133616749070260414545760759421430003841863190913840199168940779643405452045094893240989735622639300890129282661470447144038351862008178863950982205912871670864766529957415968251552225601357916745220438963964294292199529183132388407247898376676605715668628774386513922267556832705871538938128994330718849240956920989913053295069709831016043115333879499444515397645520531774460291930368755896369603669256846483730316038726820141208485979205008504366563246383351196958724287724525020157413080360740091869186072765640179298831424146035014510465994169589541095564131696212509240367426809893322992769020658744646983951952155225676206001871273418586315649951176082324388132472902495227948712618739074308304024224457919121399333664984152319192196809144709673486853127955143895282179666371089128302205429223308257623059320952927277815689457490147746374450257083463619438651905922093826099125921751936960064315144226836147539974776396865508320234027856147104000609548382687848911325914811860085026023476728449952289806955234828420629579732027581257356916176469645742854470271117111835211182381621663073260076930590808633424191682390758597518362166351021008568158227368835826662105450183879336082672321705587956793402135625545633579457152458726900354073946420263361078138669176522989242838361184529897378702048032198903618643725326952792334939423252219405716773867065732285871171888608139551508806719060191876692246469611419031367485355284120891675940043627445294498947091890453280654517055723989549925640257420210602391120111429790874047224556951791797981877393336326700478244907872410682472864643827597666480636040424946856708852744959516535412984300033538386175173350091033456493216423696410238145731848910494752928808685459889803301926767983788943130823098363936703006723326827275303568711845741419764838566252506163189501758120209944656301003907406917289090625142383302830522189039373969126676832559761450274587203399686197391495447808664578703746209129738715023701237520350219162217161205214357981039809034432107927716231444551174033549032948357846560516474043244313501813344307715107292746349701433038634439509151439064313027020474376363818116754748592862413879623722419496581339090689385914034648896503907676575344442726082910925258882589135117374351625381308098097071456061664883430566588153489406804717739931460232838837940977069218304426832098058256616220625078409460134805544023265143558304346728174671329018424475893549664515413597835782030753884073914831045650789659889622217665072846622288601416109089615132280202409774126069561389616878413653375648613016347937691301662569841476454167960649399618380060212802339770678708733980247289486125414514373496125401341275685411405975656529706871105863553604689049565443241347511785817547162525223849390361182102921001032120530977280509561427329057169147301987230356524544280504997228863915704566592320817207681605250863753629960565746777827528958995877706690565541680618561340370426647376000698042937040095744490525228175184886096511565808876277857415746933605953692435756154753430595624297225229470018426635437559851651329862954266616248683967126791847477293215569662363738927204572371248857097375494921157486820584332528338206637798744980559263962935770935350426148775685851676492496815180981819890195123593641366653505781968907026600967426063022020220961235737908594667117225620821322972511988806716032647496126377085482747941771519233261562760314089017886000121741807735480059092319837989938101800184438250831906969533862647856627262421480044153841148651287423785062656622730520969586634937713884402307159463053409365930343785995684923941713578741483680639145732880429780336879175164463603681177600746586564377011229357467990746916051526028901640107931547762946984388488986288292989540198329867924965054491111811956365384328644265261978811651516688495643229217134380074927922983712556838679814239662459632365513432727786368210219658920680370915945301361932592180910536342015325941185473331886892825435968261312534999663979903976088356644992115044393845191787369905380424152443633249596045347156717971718395037562397421826966648719844358731565445434071932078836112614351049037168004170570807328823145851506007712402953750703743781715947704165016685388910686924249217960132622583665915174156322300440586226438914354168933238478029428508429115075445111749244568847678799796937649968446354754067874813626769140539547882727579361128968115457876808109144572105399183290587852590484165748258019776203314464265085420542536402237956870647141533659006523909484679088334990469325539102456968219852699259242103185512315637675631292042050134002837787360310186588226097663551756048876346813678495539934744094929311865470554501969570842933024747449504763100256590926412083017314110031799511596703607293047368806000729418662483005437824740743754620434535692038245133205358732565220666056813627074746692554365501513303271854959374728920656521041035778742188086384087137657388545159382263177688596194270367206669299451141044448316250708992721362854065603167258823110913893272064622470226334156348517157246942998497659532062935911891230513208475584475995473858759172786007606708661464612245726477155966948236319883277272235525381049930402460362987257165239909630901803119028333179206421272874505611810347114175078834080300789181925982459987800912507655079085431832085645645002555775842498959869787518561901475903892937467353667815017939229459541043121530671794254472667269660659253772965960777829596713788017962365515493985312353986964345154146125169772618054355673114584953291115363639056355822153197485661490338444253219551375012294330101286078983884231670307213411502016997865623711762513459463955695178037722726742221526934325230671018719493135772515674098331860129832456033127097134369164307190741721456855101752923965721697593158309111458566538952954886846728171861758294470698934604429758129169821030052270296298244528640610504785869534588465906652562286781824929027258736176294825610511727477716638161913912586897515831827641468173874486172917057633332395235947931653331592985096283098727216312007774167382034529899259164154128011972561123516010531222081743252051187416786793064911879001301272870672973372729809567538666734632893196370494846391772377704659222718168015991530193803130919557360040889597591685538328312598998718005057606086451508343652580579068377581661806898424424661181667255424422185685721537482362796984327473049089147406166877148438847377530107195334888771017767406469481660461808524466320202626675656410172292805784257215447931316969737593847763690456510820772295422941519922834427888683269891607412829101957084364542129387280738657450273291092587971014103621279176448072292222713547046598400893949336970306433041436242544404908041383726702241675030101351470625985300275148778715209964266711241765459610120211173949936131345140463996272104082080230064188546232112301413880073767649722516521684673901011176024253737040356922912668904600969512652966741297753714684021981836492449634533654351560414893484542328883563805001851556285477740111236964231087091055366566635127969979302499254081252323912931558691722986806215846174946458308958249100988894404579281183232983476994061260894563172135579116854017448899478721320332689885468206610008397616343173519505252600521562143076634179199968223730003621283476496384440453534771275134178903302084597575416676019263634023173112901587148501906631168044025802050384551551592911406423264659738319849306161270426353441759279895773743649802363744790801404929429442244293804525466051713696192636050574833215815393386515139108135755964054378573770117986826644699080422100990702847753866951812163879650952432782863259361747448789908512325448965995849015584515533749082813769002054322232400816191534850335432766461929557187784768592536044140416771562561418822978752374216265716840904317399110662710207692267656505421035792378118023671912920883775157420417444947200167764293784047652720215124387436597698765688099519003361184228427688728021278839970540568960300505660039489308420897133509139660005454452179564305313316000316873002843559549780697283066450167458728337159054857561647399549051199971746602476840390978411287399665909781816593128789292948313144625244419111670065653049100089993889639750396740607475645087680130084232343435816319500038976156538656806211709471759250306873251186286092824622956997236745031489343482518525381836851639291541086005734882470741481954399304068375843104436577767141532045217429909346355399750454761335513668285953266869038231861526067156815052908612101231000111259223678270093822509327368587265878334890456661082334511939386912396332452457964377589313077863226234716289543569756729355649873126453335200415782824973539528196111225697488736044410839699564414807443471931190421605812653357194138154636746219241380251871387217513254632420987897376558287379449157053291789478294145791576883888032254603359338175030821003616923149063136657127305881619674797149405804563251780753745613387920132585517209701351030395073588656675367727332249941864122047474670937729464676307440499773071275749591061510391001089114238536131365732047667775177939677007266714318591670144706860902864672414793903605030068282248823487314896511050884985809875490202384912089763502867891742723304387576524101309267899377092777887988422377318028485203688352739190999627905346837910622970742947310327607891954142746049686312695962502875053050718034338536000559090960636572330569462720120450981690543126443118316716857589098255073425171693238442653703690205979105393704192110981664427296078380211486242508701719938701871332236339892910290115729300654492302701059131621464027465349715142454324894657428902368002331372966491527873125409402779281269227448493283214950376353910508502124977404393729047402601137391984018626794838144113287342320388230070644036062107267375663813897059712311852846680513285754189098902517929215867781760605402665881409439407536208117643776747149822570798250721465217732835018350185761781256196166246008553618416266677836630921926614060245959755115880121886343701216264872772795208512296857265296195081597793733703413829815945377182622929896987427741003998628651093234593102963798673257673137849637226179981901144694538769445626783619581563329869545819292571559080784991198327342033810649325962460626606270999779805903169253039913028463743597953232208555811492324125765900075003660920635455305151715466705920139224259977735059850106879669700658218193322442182532141379435858438524638839009725320448857796804036628986065203725976727769845926517609447874817661020830036952269461232284190741188385430879290141351372674610285381596185894514236725749662227339578571098107885018536182337005546444024393658960005156819073425445662042826507672875016430014328185303001774398692351345356574901023895249360405904642625026296659302792947866239679149877290072260051806442442516330318604311264044893709454025160246081485716320126936490724627248779901244932367892138487882744876775282350076518592457564990954666882783154920898563359383693729444158000165345552819723253490666072079768695007452437575103841143210598445818820409445139613987800266527604169287819608067219278013133445653033178631074230501173722064682297758913826395182756902380679691165425838430304577408895889335262143098819200969690431284016873554891082977019329482183838737254969972521830230321677023668547312843961433774449136887395174172309736287749774741976351407162982198981322886674856677730856964173948773033215641987011443220319116335800698982581447457074095611092218680533206737278192158484902876659138381854040012437230434614667372576037528002982970939364050917311781920797313121736251631079758709765464628521821244819216075089188495190926422719953747735345731145027841817656328071557910755129401040715850459634913587720829638487521693444828799398192283299755834339444969493232645418141305883478567366820400263441776524048360720113962869766765295915646769030381055175439308837902864679676821262948310917832101331154223854260869836861241329411721269725195208001062277599292369276776324681116515844379078421277422592510015432459090557318025434750020372523587442739569236528388889847941277326250815275272720506548793153387127268642253071543750136568514955396798652669376915687399154973856215963993263124550119879851202297789829165505129999028796462837067319170173882514353683394845187064928586499009905023043991989974886755325853380251660538882254120230530671354692937662251174818496972097278870183961677748923660427284989361314646428847757113911294098146170590212704655012794775518979787581319319784473197271365308488773571932424142818086411477340466032891510277755236602522545332449064418424453534047083946218068098753463366884492727235991149496068493996516178696212239326023596970552144957948527235380976978537606321271984707117044548468696632000406694387037083330502585887730607047898084681564538443852694238862746833693077234095131728766315853000868676036193065783498258110950218212465509797259225000889716046437429601288501539170867153597095867058092983377384901568083136863404970530752190501534343140003683426019993826962404914534838724683333735338830315317436257131778399685585276283485826603463418057292359675087517254363693294919675789386698362672164979415293335084357263739895889706226284992388328536599847941519101838177140085441467954175111114784800449342784414168150001456927647058300259386698907798568839411064744954360740523964870168361676037892427761209367436095814940591445155336719819473179626744716503403820941545954170506163387167657701648701027525732947909876694390400413229358063058688966386233256582077609672719128447267919541700847523090744701545865082865136792290268673577311660555375889947159432371551728584211279854518950874058378449554639904791218723145904863974402198130628169399270570823071006947793438225209659613750872004133269143082187931356899098416580563177753213053127733627615832685566579176645945837925220195560489819425577376771015320687131426958723467277949408496467414275268860273397439248955549641018905188242310948501777979981834646999515320739509845781030905403222620449523065646032126516980743970760834511412619332841024145464897644149452862880715832084191779120851934942528440974349739350136662401603736190304002395085688041607187529068298943868755067293298674027742389161523435716935761664080269115435811856325941281587954073542404027136834691362140326138259333191677832433981049131218530860471747597582685609450078048679147220278197064586481201892880212093832515305178159367833058604409295913396870378196086716904739775015295375554888571784800869710221768174735845464925273061516090493266846743287914966900399973516632719260446917308040081381667484324947803733715395835328253529157602731204319371106192479584743156054031669293526156910612803288829314679450480322275290313002433298145868588052133914033418189239409963845108848603882285255895368270179703094954933656079287193172977658963038507487058137499356250110529664418140630839437193113903077135929481973493344174390597890978529338295520811789530328259956925044377655746557623558253439689892744618213733072978973693815210393429218692139552932318739864258192651625858097470757582492514573449674835400416211530508900615323773910307744476920114745558873064630987368339405142298352493549224176474967565196044751646634470779518684917106285417819605621538015956447762616451143447201490671055329151961379893956360901295652438069952572615280587000149776513677896597980752001702706951618580462737071343834247913187955599013122192011346243174490220195142521785824311301250865714479699975545539919987454746868018882852042370034106100758089376262076518506920332080715324959425832165140039082548413943852220166777034005116512222381315052293769483694470846417281699278912512598383738323711454300895334503743870376236424305264968510170089831520732381127842379081125758883984941651670498676749755777127669505099764193892483228040594697833862294668932376606257758598528114038754953395076101861392417423649048341828618933691841370712525181314219039413166414032412504187586627508175962344018255058938017614263387118835478986656874199399072950907143587084698470608681093615416497488383462112363996902262244291288582672912260007818267358961238688898389257988507997316945778744764519814592895333385086141749465902503033363035280101261320395126246726352133222316253375633740375270309361847273330018666639790903938665063461858775336108428293978281617262318086954252610101474649654627473781480566998556537272901477554848825565376691240137195273703396703465218409790743534059730183478132174095940638112350685544008500772212005421521264222933846842306281630982454600379206027143774801798707717258444362682774251588019682104755788246636552229939722802470095214014602594749007283932133770657804550367631146840428355123462689917158469796852264422975794213493899742117042103807165506573830790917826206239185541839059822183133707007767524872930113138643965131456534538318170827003802716271408245236628391322890499251695300574963757621067872042119436748355450190006673907549577943752610117635147323192890768465667052672038115585735171712797242716652500171715034254359982171474842768278555922069434214553497118233523853676626410205099315209292145094999230800335503673444399471303951912874767326353309267135069716820577608325975614917709388213148355767479506420249708859828637205581395604442289607963320633414067406328749824902262211706889434278124153831075458489857677315690455875631488803886513466236177441884364033146053325316460473183704385656089181626681091289106589536371548773717164414579205622633618042301510947963185970112736564230452288968858287842483505984761567008150950044427823839695812005836304412623996947024475716780374665879734720001641130436963430335058144828060780814575293163898750199148689715060531134062597949805274823153592986463279836136591964465139763396892985711917054120770419237250770002273541015447334504751276747142838927989566453800169990218036584358836370533556787043188667134394126511003869634940594654509204061351000252533922125856298239361124059084578418032143635687724870135286014256685032044492944406884400335499135591037171808883556142948706105070986692787045435122454060102556555817948297794952668650746775540397457577339929859605864358313427589949859762716923984261484357101304343338140465760605715443281436419610212115293247253121489014199611358220340165728902988004049443245044919646030122802762420516556112099587181062652110343234377890309678715546423018486701180087440135649659383768036335705386949168529243632839194402242192482941562480310844501958455651191894393571931299587340231103910234919513310302494468006569701938187563880342451521315190692989736008980384136473500601653047688485423777039179500782359561482249610132605553913534128605147371919544094196508371958925392151083747871492322900923948049020826660453980475082771922058482390885306315961404349803238579438206824347222051619057455058813933173480518549390348347032256895532749994644536452952905028246421265854739060892185453627257386767875416688260097075525525689604273862290050082379169173328922380805216027279456878258414130267831226002732374634685387843078619818599296741507456671805936911861096197168792677420528736440405946222171386672296229025705049923533861189275016497292658619282716312727661031685187395172043377914929695664995047702801538132546795561604374573518870796208199417904236503869881728262334709918262876125756187531446827005710202059688003234337848939319174253158488218952378787529274410378061140783948501309911280357110152004362620375237090525542455811376315839588558967048102106007444946384725097799036719824887023636771045664021026025780061286915495457420975473909316632594035593947969315695198408782280579907402939186964134343123233448242258194249230184709539858843308703353503327920236261513326646402031551556675070728315017271959073801472138831774915434793184439267600343324663001221707595560320420667924400174080710119680093212725863836775883939504448383728630019290404915923731087530426409010616360016271879207169434114710523297481502889542517351762203948165918431900249370335579818632275989299633392878518468180323854956237385433293023060000417202293077605552311302702104957287914606675065576772164976086084066121582769739069334992614771529733989759635657131294597472294312441909222615664158703384012897080452661922956891154773416455997304255941493410044930976388504160617760830519153889297703475469413159616712506220264308467585922651787727700245313321509395667221016217677406486931104000175270878866857478012626221905301524692866337595355077401512154149928616396227760193517514263022747215938495125309220491859882773966786008014737931549429111640580631184446151959897896199832414113183924712959504798726862734749709580051743973315337233648106446925889234056904268542106452111463836264467789619837699336677516407970389039196120528316976991026351531175002788126907071346155987842004590923345569682559544253741503722123469695154760374497898465861538822378413967020047201635517753365006238835876977183290140149995373001711466937802099141897719815168671106930339889830376525996193863031373334281696737555040061701042607049054767672871446039094480407927592243194168967867132103811337832262272460983093868338691922216739314267537640643136119881694183809000658790428015818388452621466315539921389679243225522781878049343461337203990999280079890990503570156437920499608666439677578131618979582064483342703915885977473476936091459083363251098063224077253141897275747652425955837711948004462589192365236044181819331113970036702481831071298294843585592211527037831883494675049073464654709089539724661734510946346260926329263464888807132566697084318881876718093375583996013767603389455478676943451777910740578688998430759137526902625411694509653552836880468729890479541156956172975146058687113271073332808945520983092523752337226164927598619007675474547500076126249850621586753130410525885148826847157049790144056951916388076662839486547337397337468024607467051186899194850735025697031257993375758487401800906613340775744393887155565776223475511279556650742251983512316162985044187965718870776876711901069544244951661392292106341363914758963186103935026610552287676631069001962708063073091043180679841949246104155154427643730177123304149243854826389718275793356693260928675594618359116949927996268153459360670109828550307475635664795243870920624302282656580033656986849124088974734511007825548213587439072528549947576462015367404292009205665115389772401850373764875686943865361720111809742601181240773437820331007589638286669057369836247714901894059473687068737152225043199532326230685401528046041669088675032328901205751235365313029945807794417501170379983976849896988698140549518805346230617084546689537003794823364586021013180473153315601299248178432666947945901804022145622563449899839095610745696862958034349248357502886558393146972722749331822863908854240328769537326673849699299762973170971335429865614945144880016887592655840079344470010235523010363479554065296622057741433272457863957730526425506477804607063359678628410105816409118655595488377337793781164542548628347572956822102175971837290251104234846891857445579447999669378040718559853998124849387772563713727023228411072924750548561538912062418372403618244055856072858442563811908459854056046301310893564495309059228595298660337684122383948339717115125606325265057732890348085511601055328758115785161567637483049036029222708380118448750660369940064535594875557498786264833145396354703589611601006238574137336135135843891431297005694480198383804441257558654206518231590577029676874655704209827129399578730670755129846627160608905401989189984225145415460588436582627802757226234916068829102887339840920163085469928613915022322004013083603510973779942004404527007946823395876803498374408128596277781761993741451443479444444371685043810136228878586154569347774843430326426393274623566919066959561888743498833557698853577566741036426713313116566530735200649995489013146994993594168884296474798931784005903108498507696043504373437400899759665623544480013983714408714797334371231825518642780015527128705043822013262010191033451939573647086467833516875152342586417288243875447949229724798666132570874852344529377459450700355074942581636457548828734891217906660994440326079782851348013500104234898771414181158540977614043847460591122901083274719583844426470915106460556863690374659309503400522294712663764528318100819398262689547541733352275900213989177906446775734228841727961897463348216612383057345044763363649593463514157727028798385969154677895953757491160820581894021719278151570082855299038502674082595864375177611018511326329872710626948650781574209860864792778573045313662124652357227706011212951485361902631884549402688272357718791391285609611387795933354336512972137691121757384750012123719499015747873898398253323024031768373397484534623406226113157353594388697836217115242210466455221271543203833901895503057163244460379188482244646285363181626861598029055829560562258189439964862805665834613186859637008493651897691741490631228836656793709280685414985465744851697816984416032457645301281715724076389554994649993213479878020996884282381089804903543385230062607950972181783230868500812471656180574969678878916397262587818443765842797713497125290195264115480332648600927935210573702269842542219354035696604021248220638552939193530603810470479538513706024235045888905582786548427802180264853206046758346073978608302507807140362173660196255703258817230545547522174299738625792801443906973704680286520618886045965382692118558785171903864311120471409228127614760916256294372419008419280394544625538627255091044606653378467686451642610211088205670128084410887349936628943327431184204751821280826602693984572079783303734618433525629926477372778443040896996296922495592327571017583785730428824052890291034989782149332913366001872548132925993493964509867224193471620960615829416977038012286256989664988702743737732755514831338600198880980329506366717577059037800522027878609487660548369265795650665897561737850496494826774483761791256092334786494052885564826813881019025318225006048055685291978158832236964011690347692447036494236778111219334730786606788777074669139648050279807795132143913010005621044533166703982966275852123591546007382287004295922176209879842198781031474036050251786065766156540459387567991318483666263584326828253369539102253904698540261780955698896323746183476888989805923774331611308998875651634843711011465281432555278768650017128754681314516876582593855977777751813837495511255832277849072399356562631074625825844989903623453487376037152968031196925592410416096925820663059950016171025262896790219302967300951064746733033759562864751749402711895990956831548654036807571183446227337589229973728014245001105790550642012960662738567708270781895930550451410909835249457075544431669348249192890989890281386815271881969590269244548406319848093033950005188819944588002527236008184530721061256912464404166418172294112925228067459258828828365210473091542355092220448561901612962151707089002894709184323081685159740651592367814252402336937885118529304690426843706392356792019184774524369749596107486577225498883157739006728082269899018162509141951579469844968986175764957611932137027797009347045682013612958616225181746830898960985776918769906287149020912191433136133289244881028033833563202254359351651615399959187579325923685706948343846169539739737306201995100938594982276376652472979467245021385204666370044242044858147294132797521623996707082763290800766719715666019900484144311714764651124553685561116363130947503255133543530590610784203083821882788240771420445625162162313806917852626499002781925443647775240385617403841241632761153002605652674139628317213266023026123712792559714500879081701160606771963322706156704609531633934410219004013016737364448578283006021642665188421380301092461963031179615429964964079087939151358143355502029046169788201841042747897350130567860656294739812156755733328480467545265239752928091838674756857004215976477995752579454084344299008157869520865933433175020891390894227391827285481059895804033962738823205126553815685685388029271244305712911027328331191618529300959037659165257841417082661435843606782894720936037665186390038766063886070473593434790243128790537293440388139053250574771979098861533441828914205198485853246262990475249753919142794862266434458182024192853430087337983213845290093118363139085744273794378890542018010244393622774492410686491866384562634171387274243077038468416587241685885825977848233278348434709731430989735859473292564928374041429902659875035192490024287450187026539026846379465401332534367101988879615384414847058205062893406856239894742514783782370940287449997525254073693503900175824315699419595712805102189267453508999344157693307635472569488022137442513629687285707883806525383652978679788659516436689054372404849050111585098908119692230921870080177514416178339272288706295939838092885887687511004795997840551773327906865150117890793338706959440961509206749823861985646080919007539351594823044108079717966052086567067423239275949858268790427548530395875556679042099014147797449875665608537465654847154674014009048589219529959312204753037356578783985937860253964872817852811744967804136775959195751163746027859302308674437411384772020908182999394373374154127175513007348155940595308203642399994760405638650569337639116302986224742941503433088262538975499593603758727103704098190896122550466165747980240904097847739867761374147552964107574845911709911112310677891394244593311472017805591117621681829596190811561154229799244670470185836494894496166289553819335800733095967251746101982887081220227600769936153928337235912575541208889332558368728219136174433913843171373496194320833502919791030187035115967369727611944808518120309664144716831766587512095107880049120445161982269887807770605177901228984707657969490215718413531726513629762200519797717358141403671877727165863987923879353466756236628275866223757908206273482491733375757659487367078877937927007873696678808645824422097622836545358411175970258235368583615819011999425761936756226641376193291455032134648847036032729647373642993222691014564345476029004237154575094392211106312812380173502384101700265895173233486466533022838334259848909626252683585378786030745582060863116374205918126599763136223898013208465415881693768322775271600059309990330690977299586946433387432524781087941058740159310830568383393111001550836973676744464683853501168985459967627262017367808519041833422660866826679088034411106686878828672236754429467343577553524231932466211200795114283585679271346378110479355535357134104779452395270299833729825757815932418267988840505457332071447277860343849775389345463864770911574619359673685175790097149499178197656280449026006604469305088154449060018133214199108628054861749186477170380548891826383058979900902308128634182214949283072960638465092095391563030664974097775966230890897844814250585884384952770871753664867908484190725177914830581270629484786108223048099968685860369623846967151654581345129680609783443113432474772192317666662737519308962109224240094808652341327545977421190724879025579980149144789852379895455125763938436292918784538048358132037632012619064572736495405888646060156001378411299836469916273872426806003587582804215860487915052515054403357170087681965038070298972061605704540943437092858274513792372207699314278164098517372460192006137067685527682085402808236813323609833975322177720960020796688603551544558984608800201171668405040234207111598364554204683822855827784508906886476597184241582716370808776443691008977096849396816832413161703843998516924909656295600880412290404954899744716514000942629402449338428812944682762690316755830419099925850776376263763517468310045002205901252488593780908832316396857173559386486957736486692205885255278105104843366699245286572968286982758394883046829510467210263720870213146409250377949779459704296895603985200555141803275345607279534088787666141621047099422032246040668697765534672690020960330457604375071434230637992802237296933736260827269500519599256033723077031527984637385445797891781022366402265286226583850658777365202711866958910837305388327733078762521040063677531056278953981373540619112645422502449247898495227095005656951988872463170819034257573807817840310528610539601177574730527559837304161714935368505518909142291789442930269877774777934410198034182718059695019046057111068113357419537395285578136921153070994631498272895217403081436340701037183488421461799864701865033702883864592061369684665238956559141825780241816862410582541009992308684105286153233240165607331722808973865859864568948695627363033391872430768838563077442116867004014080245278514607483405541327488024975143259202025033516168361187547830948662495602502111831409989169806062483897122013343261734030937246198665898941277081422670823217983780603314041354561387421318360897983571764474932713487353439561369258218978052697036870508285041283598371269689126697534086683311707247946592810706167248221994679648715211670422899597509309152797846454161281662593014620790439403413379380506554390843053663230714690442643026155286019850225541991492540709860538545890075552312025310678747682099127387949935021514656509815117544981507729652969724836737882671809650224411745664729100559019710951075467446058809789916640883163303349331850744790571241807874005192918999928616346199035827378549611409087815868511848661270721412966716151441317590818533094119700704005731543600227422799809263188107740747641419702745289862561878672312752712831017628830241280306733263608067087059937927058906329112635240842381089382767497899374488229841136435892991583881726061034506578387602392903720123156957382458255908920899254507200591253634399782959994793909653355374073823246048739199620249246897287740205041285831599648765638888875960204559499190813246316479975383393007416134251711562630567424023103578364208138184782374521304846481606533999584035787735296415285266953092436407165470473999519017256334725355321882166134321112194869414713166938166691879042087396604762509042312177403255266439588367109185562967714288685164594705221708926205207480535083401985647622343841806927510444616206863421118692227398888257621440361411579729947023141736940275676110961794103573247152808564757899479847450181003515665969006911281869232853367022854935239352413711425596147658266623688804393456872111286524154923192390311653384014946616223821853663331431401807086307997717445993129876809398511370018632052525492902093873730424249139513434043912932094467749974794351172384523323091758310141193787624926151461582262130255589886438368492421712892065511160859177106352529436339471011068199898313650428523415149989216760085738701668870826266642106645554364759950449171128620487335652961006690385108691740724588794989378656240976289203238198232150201503103410234147196847117409045953308381664606843364115043537959425160688763345622498887103957789460298678737765131382173806296076108592690505962764042660156301205018985283031297728943215135395539550305048444709703749318181220861800238480516179341436485671851797048262190035524634191981516477463277332501971415121918279822750231297569801631995088785961671179040412059586684844409975173477782833932138314958469355690316485291475659398237350937894866505686051345513049863288718798070251505264956346209015118580399408912363115328521882469395220237688080769304465495779992185546480372965803010849641324198769153747891010160787662988673128147708029542225616577428365352412824672914420400481744098234419555567685537961699275431179707632159890287186958826788675525896642457485060296900463729159406328663827755371516425732693966617656532908026886159118795103661863267642225226073866772139937234448430733261562316713754032157449046090357998120617549760419398309837663586369611198224288018177870944753587879539681716850704771532120927280605844809729646187709422506978442517329620651487340184511477057179435753379225765639992151470466354253301899793466349868539828513076832692589589025124669514313617509251541074920045029214092653370678547978335723066814456326794366165039141956340636432291999469211529727473328797509495462083865542343783593288221401364559665830496538191655070075742907335194537958688464580343119346110860720075569269453008491038722697741905809395300721344844171800319957859137424002312776668274233473981266071278104651350828955834553028433467092977928744462428625073455919329015116654395093843179882558332544824907111897831920832793669510653945728325410638728183466177603761025996393323705219866734102467366435855892752131455731505554951700559160303268141954844175960504022338101732151799026887733629035450676448292198403278500350735031158235862286973452941171920933853934725247541309533430513803951525839720276981908047595228194617100751905288323110365368947469755499222738599393615328875367421350850370242012917369799631992328281584616047056198299211308196847401655038007658540388192350782249821386844209694250022591960552382991675223558880578472603059530218256072160295992118715451850246633645997028384778237950456234809834446853381292738342214480404343649904091688669816751507206742370794119189937716830359061922175648286988053517820396515387561926956805153868747053198085457436227011257996737632089494825232494188679914417934743529994602831924436710121129369144908208037876081304759146836154528227374025230795519123457386780551165681387286660822937630612746461350404245487184656431966967121985564634512456799540492222197324144573152359181001472102179164656555423546206543595663421324754321983188343404243033031704510874320674418675847357445142317714882502959609662442287795243610314669504817997708131438209618895842026105173401097811225768325803609089572390442423733722270436701280826531850189683217236126154392240160323943424103309107010583497824041892987433759774094755806254062355905312112326710592236080569965974274079194493391325737268330015014167897255178144740344122408873735887041609890666617789122722080982127733504114570185841995074707164267196745734798226017169461049405534154678519446761945968207714202369435383753413489847673621583013562969708202366214507683137275616322460390097839899494247094002298054358026075389015005741712727816299852407070753636650654127646586239412030585134245418699615235054871971368913778250206118628922007711631070287868050533727716323282785956099325758832307681818036299649923502451890218006771087356292253639512433885025457055572009545089959610599414659069077625764500815864576733207836300923994717223989591115518627645970895890802148653414947673556276236501168908178541784816628786734681676570166332682703027475633792736241177538929345338214600090562828823363762981030711541761539123946657392943160801351703122059672306394853670707236042842561601457836351564090703617925355803123732658161336717639384798888661645985943231799792662751674783295258826204583503676665961067280011804379130989874204257615383742879579387177125731313055536751088454058914677228797068388242411660303746333190793237731425344239390793714288525821847836577170718537858136691421311250416867608713411056186057389812580320996142406059906256752780555894929159954367234174527515917224629865771018484971773371695838384788745469101160777752571274453122257691892223484118088275166151831830045136527075674547975881085434103206473499978971680657921230296749865522503601329370954518891608376564159971943187859494654800561564791407566927990210664127943204984236655217503767933721059028870822208060145258403639534849115683241245815950195951390274648178085806582410913955370390027336485265402839015225106180179661199389740973094941246763181455163536172877847002895801360838489470352412434535353187509822498192611656573064962239644169377827052649495838221767394275427768771306628554940918625780115117517499622483177233128715498412267160092109820988590348962294573216412769911155111368808929617073868088674376579030438216932674018645622722859818780101222723635017985489002905020677225286480890728851973792189886833351405829270073685288615490540837519353150934515409648187021730977243547716297649556411055483800538311323157914993520777036262532826949128390587236677519954667577920715775745315231510949213261604329524456611645483175960378272012528911572474058959724388317034511933264910136820651894525576862209336322536467147547565134605776519240659341120300496807009705585075345039758188818975509979868698151634081262398582461869391101793122037163640227436407592091321358560136386314331534070712181852860001483791222968728724329300937931043793187565417334902847567661637988128083533338709775435601908730064792463863203647039758707460012759685751161804707121943995543726778066154617773028594835596863567222749945143080224118744251361570630826150946802128083873220214261616103116004048375674822537317936199740141943396755435663240335430036793834853690667159139392157866398208739981296427770620296820297203509715531776278517110127198543481423799925818106661798952797033336218803788527765560448060592497945195077012524740067284227609385035654706262580484371918069977238412599996088091047898341408504250420382598938430588365819537248343521973021628654473704237510070014380743351658570881542400184491740841828215847418217951346117893242508208795147290776931342179952654792865529457562291762724237275147263127899312014732373537372113713771985101102457571157354637726679668779514144502394047549396809568281807065448129679910288608013005058615069983720245694376211080128511735280737249356885097447800906889259828982956472658330022975993803860902873203358335668936570628598694203191425679903193192495572460195150514997622076840133007928157391985748086665315077137923249253102096401606825371225052131807327819541229138770742340419469097255212387598244124542505974262067397066061287083545048387377805016645522696646399391165658400473722043466013122673821536415005960765303608607931240832355805006354053313743859573486365655794823747441253254050237532275233879588813697130810638351481938146118453451145855434041099508411948031640118050221417855562534239928847880616010644042786446179366708170164110118359155061087410278508683330624871535480728156059566708138509334568527298613380035940039074938650362256611367329963439777017722732827039801224194288045223343050981367954042771217775132875769849887976358423284569193085511016163992569164615881690770422250600334363566103054069723199192986243709318518723611672507885411583497821448336651719262317156381074704501956429449678764909327060923292377676927820999158540893379080771447070545434290542760806199640110172231530970926881034110588094362559604750318730026157980308604692083295416802879775503374384655822244389520071225887068836998310599915784985716508026750754552536019173106400189912811855196123831723882271640840662069096974453067498403483034066530612603056724091631801954081846683905076738219578364742737276745021404545093191598896852506073528093607192556327117858389141697152034125299130107004215617555411011008749950238124116058450884421280147592765758746432962460911911196568643999188441416666468093819482395229459977475258452368932823946536708903161265339978361743873835620644397447212701664678772824031508397021285453331799198019199169125923873679226378468626037277718323042447151662541131567079650256179920973860791296137084857881478492881616869789390147365372812784254891185054703754543965761729023355096965587411227032683499853205501533208055398185629954726406689518340676698057245472088084722737733705947602284477484076849343366161906846161274043280593307869987930754147490087310973153873860243863097346689229804303574863133368084637438080009285676224607356875543220047028681243528967808754311112351396042224347818143932923439172084988731813693366118332936818728766036315959056979831350816539225513570820599293114384036758546733524254240366397376007149217004421396274331607503071290964579533475292529227822739112406613556981866444472734198468102367077855240289649737717201586651412887811816343513802654314718003426026823237596811197243369371922120803310311644547734922714130085228131110356631760089229688597813304030825921165384354692543015941661445462916795277508515348447974782227509696396095733263757236840918843053041843854711676922172942812532373765148817972365999115649826032801414260170322519122574837679081470921287448578312686285839749709981913003964482278237445590096382779471171258317318474988344999570090030989858547584856155649949881663124269772970088066388080956805036322419553957265133456839577126591019534791467945269208672215862974881081003135556141327259037486559466912328743452767489184730025071274649353819874109910691970914907285074469200140742330469220317480928294634457752177528006627033577510571309993145739852926715569584851937611641866308347783583342473900525808472975482948099306487213678538128949935532230130137308827725800810224438924146278720878426702818300752494801655460076888865871786790989960343582867505874538123652286666054111224912446034973809841559694226685682695147384490981980373198421395395748930276350229969773973920195901399165703423090461683647628241312618847306389133534743081935644147937258951420128942723498163004191452982424011328875192311902977698086908104317243421175894914433099162497736702640087472437406320218420831510397753387208572582280145931952219514657580606396502104394733860427088239876690115759662953015157502013982484213971839132776429027704735919800980553347793727972335020126040608410881860932899443859691558912029251555442316907560198369475737399459069724966264946389611911227856921770277457548989673607973686882653027818254933056890521254053153536466761863495107249817842020826060672971378787892552567112100635815103951055351370221601667963174718506323418411592010453006335347218255436743754430723000301293006095976946647006638490662310184100755016744001505349050711471345928023432040990439796823161475937673647763782954768429110471968620697448157330168309025472117510361839558181798606460024288038527276249789744790648365942096033546751407597372895053768500177912666395044614429306950408528129035155957254454045948533706908585797287641454746658639197036116063856175603867181823412130175221952781473692761107080469258735491824697739645588519548859894541722913700716350093257692840991999693644206006524541436428961819366311938306963188853323551527686763971907485647454265836640758995628657699771879232223138564200695918222651023822419873575840417194970080227528952633555551979695142839556372126586234387327181586048217015795137627323671834690859691437610684526505865092711921161120428575379401089636964326258702084269367501277250903195008764173983960339466662152497188824978604858978203986200123951988839428953378218223371897154737510808915500929727476851449445860726549401793371499232029886177573677810535902632361400349069781892828909116940280487009838706697588417032427381846216755340658211432613609187551265414831132007756640450321240393943540169792444337144193375244702387037159940539987904864601150910268003753366297787780523325106934194441423614035710448986627018004381602231368146188330747602506307702860793241140301047038273692091460857503261957683901397409125876964579541335487612363989593308425440396320696325536916366858314797935468974113453949258639309873522792750721235151019742249138436949652876408043141656301554691446041232346039680452372217655890354926426827222794481653327819716325558614943489627018801131946310909771421878242896706915798214569044834319297915003858567866298254527525921623899762360760954707955715206546829432247408902334698767629351978950688944238560044687757935722345561658373991322230821964565708802045919569645729989799113825763937102765391683398724563290430416929618896553509346807764188972835682695508711655510702384431702176956741264977292455893566015515921932676963284882402964887968347021567162888750711107519513367213425595738353981355080755625868571980699417894249767342468061118852131149532045322527347966767685804276683997580619791909585405428638799970049941233416584798777485889279058668487479006752281791967879149870792186698103659556472854019070726068754943623598920940653949382354588881037141307484904185065348081140494845572556034238764321413733956181308961102616401177524275708142419772459618958133830748720483044545057505292600467469738019261030486945280071183575936628097563588105487376087570780593616202671181466324777626774020668431189661529219530186850584686554460667203031672850436232539307107588112617746345867885553643006618739089946269678198069192960542640122238683052839663633942676224808740891630227209125870968695328379474511292895968728298121272434683695697137290031616010019765680245823157058079313268574195955506723709236748377912863194550494553571582445557067035767788987589404048575382984072729337531568594296702365410331187603976553126856103068413383516597562811519066212155601536307064056034112135563702149968022473431238507719954698889708273873083292258577589230351259789863438653911994802140002729409816553478860918797980902018345250877810707303824020327476780267535599471091674840231164096696273983052558390032939853810179807871762003292292699811434534236895911000595705018226665462582354457103894949380142922565655378037933245007310968180701946890424628947264619245809152812514385105047706117210740662628068541416765270491284374725983317658460097093430543187720249934439643844570381811962419210732160397226109767556564454964087419423195466670178504040969642951621318368270552348077624077234365129303841531121972578300258926886362233131881078939627807954998039206191334799965045476854665189518456673791003891229816006375012047243561757033030748522281140367873104710659227332477760351288442750380326703720227821504964787844483366394323162457541991612654592031766130120054928047579251347435576265378622227669225977226225279222998891949830460473767052848625274066249423794102544984247923502515846757917335075165772021074410005868608798280814743964421258290602656755908708012245663543375446369738586447257962566500321199888781124420749079282974410291456519374499054805458786205010528094643220796720173485010172567409571682718961973203507629973153148584024011266197658335154309309145893808594840695393153312475221479228197888540442384228972423207872112405053663630090093827573838857496512924026354387061315801596059362540648965654797372795261414138156296844332011733138487204299366772439797776454481928130169628505998635337309850164926261222830681045945022707326136393649606832221785474735640198605004123037874573125988795094199185541986361618375147762495106177008160918132736163449520704317167285114795637111716783216353815526602123133093287793188042148843804306872682954334145898908321216827785767776477378090756581163951149189277174585618454096095661856672367159398202986810345435214790721428179937902650126019880814567085111597496530803831776862546267231261289974298510412783356738255031301547290819170267726649468861935194541985695594868883183812983585002865793181241278633484907538165597988377336168475198379069067504438262923946171632725262832626957240602902223631664332153226849049072208537236332265318613348433807966330509106429082251933480647217435402355577220012815383948905647739137005651713643413254835430987213449085218548983440274140396393981931083633154474726683110239158299385682044611038410883312683236139808141969391441806927947757793021612965664254407642246609207795076934666045296043868499999833995016049951503627905349460034514976866626788611420903943771116120819381303363966171079809706772887892999333020602688856712774449498300937486447029431012451118013169135023498948029083535405392889095053276606765234122278923941039196478854345549846943152280257210991057014607777694923257705149055261814430327420734928762982751144516186053354352100126500697631142041242675464775010120964222191753069090603328416157110107010086329495715772458174342102625016462003440057831068611780111069030399009767207452705440067283165169909091477831349719584281174764131250182812468789833336567852627847993155626341708139192594916629249749072244333164488537448650263227438740910190951493192470201591802312271299471610248979933412104615072086614818070068494697998549255668563347766098681381389204062099595865690878719712648852308389870623809128788678981797279914262040427647541317919267723869660279522119275594509394129141501432707011169211244022248040749254042030719681827953525735256471246097166053330217612783216416529125087385754790801633367974248354201795472210210760130659393739574976432175090533979324700495018337159955091777206850022579318290548978264753135149286047844319064911224458805103358238915610862491622547141029342509505034587170687369372825104852937971107556939208550277997909583236726371794135647533507986178698721441101659119414485647690299260820426997838142116113871281617016527765680569764928571601882178935329512000495447356697122334169843088505602661152249668064769561919212283763807087370158296501531826848765735048053072684988697605649365703629786808771855135609872072573569983260167334313688868737001990359958675712359702416192113970522117480462426960252790609487958514151218739383161017080400497454261900218439686672912909581374500219228220752515350352624492397262155751491968784147570956264912879154850030685390544722096877241913429680968919342516353876940241288025816775819677338283170717097511866734139891351364928936587186326484604296143199831734220844653036949751417892532217867994745969142148628143080999329631346951472536424689815029636297410747038228602894084095200857413034804702715172320593990813007308373025163468927901873425712918206737554065237621495517959954715721918977102377686225331147339658929003113352719799912738075013002853106837712311815010271777178439443699226776440491951298408548238289863847026309217314876781118872435755634550764501491242861925755787212139784182523890998828459773287089375345148697217747039339172614496552457907356486174490073618378609018844547308613369565995941873000054733819493432792057222324905702987894428380385924545129789363080965089369499603972208500501472887297461594331954733261744935778357766062476794143688214892048264494855652001854267081747206079445238454539410018578093228968873392034906511771468793349243158170826466652991907175067322500201556676699960735604327002716218291562509176621376736474933929076805962429613876851649846026235800425197777885181938274164683372229653108146120770092742681480643640922711460398471220329142285925543340311407193270321591767236099893477874391583515950214688886941381221248135624295227697912111174943898807426406420639141638392776116419674775774022928811267010994811611099183578588912489707256486763230378994609519657962727732101882063425528951491990425281851303944097952325900143439177266619535734558356197300018570972180373894406321932385004261097655338341346769534302892505639522553804095091986020428617342442354341756316161238566534472318229089938958257663211218546553293891571450088798613014170405710615256953539647848751121589379970154837590444545892354090429078605124531893551414551006375640136886201626022412840711653795278091209897306629726000735814153758528999220768795081755006044149669516554924760973965828265980523494569559697054075280938910872351315040434119049893453496692050368519697395711359902986378409599511676557820039583835273572432027260269366650500945066645431260526683781257592063922882234948593355485091456761335982212283925820365594847201184677040187493673481093307193142762094037486338676184457964040958909436761208912958248830238082991576491231486306860770927633848475187989020386755978391511287863911985340051872034281224695702675897868520194576213411513779289311296702447347602322805595238705370351626348198345918303541202102103656428853088770128966371165838445419271507605147639926641259015678039765491430435783956123218173553954265247841797979153794784248985616077564137304103600406822237927188812315988926361253360637093222039966113238534294674991776489163777256476643742858440067010818379600686168871429420661157517414098329033751468515486426497640449537852065895608330554152829489904204792481007967578619523976054040098915532630370747585815005595615450862182844783498981604957408137158178421697747466414564822505672309102121480668885825342223341761639625122565416038393616650134090269195306233414295812419283810504074296113781486148945058101134771155979331716119258797013075715826931908024643783711754280717401896073066828845928342381484487649294726048479596549057106201260761740663291427893419102180969190024247546804370423055115232031356990502874106023201707633724263159806028531269420787179616226531627516324400811654467732247766259626406900582550623246309630408640223878622254793782184112223207519860967218704024842583486069964002331073208515413061051014789659078438221910840683206691122456825580954741890541539136214934339515762843712122424116920409171984329322993462895964163267455405194552158641144680882847973643644112829500761498369407585717648405144349662517390496521255518469794913663298136204087904994715915016491402017709587141133865864186077270883582183469816598135187962412185587257699635590467002805772970324186615823281182555587189768299632418736433423093331789813385258670284957386201192501681866138645119947940674192023962519574119919632676379051625554494762169144001517430456185994193542693319871405682308717569791822150573213242595560578378885612471110880047049808256293323508967681942646611861034346483727470107364447053686324640214237179275434624976678086001533168129011142421155240787006344063682062193570417231943108628505258975323153199055184859486567393999241433054042163692295298843105527781950479691425531018430516719475292739282103694199874934079130825072907997612412451688397903351342325829295426913647883258762612237386424821919876684094906817822270839013231792095422256231710714528162744352058465207313982284887532353253697911066286184969709435254153845578459678805503673076251004364384724911699037097097290026138503627343091905733922125288227129579901262332286216970947173174982796121114832471792312127954779585640136613074612009506497168277905528947496181207508868791350951585573579427337383063410076813858380691263990834023391587575685096840582661808352277025562012634716184509486018210744963810457572383395924048307941037554834992399348508489753203397036390397370517084316731656793409745498505210272859790762735919857867891852344431181109690215848027962374000813923450485115194120153909274465383909371015114909790526746482167934179118749078002987591506415955407317185792138152229981225399742184521315256226858253155026302543356970354286232575899637163094062164585183208381873326585699947106551333512173368907420242229976164708273749115670189272109426837197837248715459956330024848727554293621129017941714582233515612809646998502077679670244239668138210473874217329173339965992692660387696922707329143181776208421960164865037615670301208466657354289304590535683742393248488555890235583495751808430921755339026184675738884336490225023432432099860942117908964090550818031755533808590705604208029247665410138038361681745314982247578415021122016492938966170352861573563701289348335780248786549993584345772790852167599003541844180817028217199795418802162506101831345865968621976008458028533246799116202864921731428003627414552934724413339089231788296497654803767294868829195852892105081123049442738970007084616369680630515152905209071606466983885550692318169359409235746145490077426866874978019106812715583289905202772263902558994518641661388334253687779093955286880296497058864515047231395660068881720497570796873733176465917331097580209195415693476151845068994343535049170907725262371503142122391666358644581898334679823420281671470191231009322691618524482100154376082848381445214020437072933464524544811073891978596672674933287590266986708057196160014657854243979656107102933260288159542457943758981614178305004298728009122485267585782107467042605777605586528850932233842399222447386294891799795179243123023864069771465764820595514718433833561994578720777390713857873678364121171479630362162643681060124703025932730656798609619530224091772152139851226160537129919695075068828596295095685008175470413207789301968615163562943952251295533641840958338605587610278019411986019309307236580562504997589223685294670579376771535556912651512798743209252090260144884001314875155038334843929133397810730737014663443423784056743785422972651016957600221738315424792504778578179705413614336475806468266276507149416495547382672375409715172950065521597536547152530636445094271613282684209170707471919827182409710013971136558414044821763115265506908727103317983794334479436827489715662510193544449181669269989581917514399110064124429566607682194910726613573727409198385170344774549316964345883305858832555796740070586972960207659056887637624737897561129539089261554646925612145173403872110606447900579736848076524992633622703372455119164789462992072930264270510975297441943710510133507216682062703720968999060578746401249002414876414162514678880581560625336244095500653826231658344317501736818326988875812831338216024144910919734346820550052253829262435012748032969321050561308346963556036313826693860153053244794615247733742772366879124228417686201029135605747213573025346421554274480027053204133811736958027387071661270400930424466817356747465595501671546409475201509369959955483259834374482834845798356756145653495613733947127151855489911056223253993342886990182295573819903168854443208033681146860835565472906918096837211505860006898897961429370940033707985976405211128715708763293280670836000559227691446381226331448904400329960351371325932583828005189253167255726372146430716788370505933538812000107637284244520156189579210024261215546793946182407264688550977804088155787223890347223476293377842444625652997954388514685304345185293888878234296483562101663136358603319519011267920994682923920958130770553844470824800829086803163409828681424261199317574772746618515655341171365485714196360691154677607370274654403525811610377806813387153561513471447996782926964172546888678761152981003122137741990144314317571334362940202433477479271151231749028613598849720934326899156718152126695333069164209454698357715249314898269946314404450794848821460571329946264451053694416057777537226932324408646817699464461104177641797717496331181230544227208657966922881794376519534941351318666398947034375005363154489593256305999924575429101351591649146284594850072524022224054509613789777681753287323618867092757229521685900522797106050871398096071014954080338254847333423528186291323177165503350164214785514869942709973464539336251942380633365548187630955908033466437287393922204802327276084688588657055417417723024179003897817904415275560260499086910398233749114901327548476890924429258740014778553808979180064058693882256601039029768465646000287556720401839891440143151096818111075351175936808487730295721747012149886695903898026071904396868046741353142336315979927267918229938219177676270054545765648198421460827381937162057387918862954136331778227167355239407874725450958658220177393201041134724551838757978510823190375607034817188746685082914484123543081282792288806104533967540819502490428332283960063350697758809634852387513798719530002811897166166895279621413927528727522510940182433912357410035597834966551587555482784857665434676767536249069653895701358420478185301030803081327184904920923486505853584622355173693155128803874188248269577796930137514469662968685999852164721393718838060634211236784633605353382593326286398417560147940276000327806702132839173481672900887302477147296291742573072261746953382197438941750396587746986410670061399951179167032972205426391842536265283614464816801239551225857625215416249774161110425321552475036467901059251208905775343393522361199458708646808596496386097149184943456344369467661763622020718538896370006035008088766304697895235160564416775208942256059684719195403076008232510373229946332372555050710126366710171687311027103179172051952524781549684633618268842046378255003840212390785321049866015910473818075889513094665616116348145602534693633743236750429240597398833838626703239408562646152587365232608313278320622968618849248492486654805697865779688660130372219386629828258026454448649558585331132450065527266729677007260537984317522978228659609937000930006681312422734730257551373932921860332952884555260128915584983628645982638825552285046972684361305566511112862095234237018099003185186033057835453215320640487194451742865898457666167048518804761490219697047124929366000208317362580441487158979269221077115697328548872769440280694908812558072817722512116755442134823326352643928682635628366167757496078914236178041623251681431214525340190789420405016943066929756883928194469849567903653454253139322202466963205709423934857060770491723980489020388054083353949828595994529300542320483747358123848258134856519931821719673456780569571898842201535860526792207438644068728110677241451461602813174852458251114041513290060018466729101511656869334606580216993273651890581562827470810222349419755249601703439317165505972039435549570242346294237760616312061660128140826990660653516680962282910940893955112693060279706255471226275846435054671253978842168902365066561513703327742305471912540176465057033001633559240189908093252005937673358332038310813596431218676354254916822605560172564620642538783346616879869076479058763369242796299294043718403904375969268775363563642191098014680811727991454177146744886403404477874757106689179022662863007662806979367726433872720857762549123048701760894035464190845669964400656973645517507442805687460823351122397352826063426074878587962244256193559615234290228225103855823125582884764281704134552951395584573896192090317341058463586532372540799910568090083776999249087570957650835449810904920616385522824690804444447779815467873832789644732949177703865420696326495607121894672105897068705342630921192292992373728454342601004309988663697093345647890977889031683255164289438498249977102000386508981289237659752712632696449618681953240579007740288680317967927922893616259955144548159949805819085105176645342473729576722737415704301548285731502013128932679784428416438400638721423344255670871834040611865981040486484697227957556472349243669834659621235750686387395566060518652228725191698254911577770980666074477825587134005977571640148540591183992045423400864676765444906124421153878062627826116128786141584372836998132518838426703078915899972635989722313231055352468829415810106496222223645134397409939990448664332285621570071510592277406879231326875422521849281067183721063233192693863311237453081764278394105799144794298991335722896329259487041899329372383056799788392972701838337725211445938170678707293949211553462409950239521043264555259886630545000171417365784132790769303515719112225338316398154040643205252259596643643318994448436978813048699462326723243935265012223130826221355730613608421776581383971321285355829493361040241542227948727840088833247393514021673177788486045771310727325865547129352518561436128410971817324113345805682310665152687533264308151892770302402026644085299693463883014099672254437516810531657220321849116717564791893761507405283441961429036939889968793193339370919805467998196424911613037421495836489265617390915239205089686323320679293952585509834005131692513964502946304437354489766780504989761554538586961955302368918982776801168942560960857365459360418513949536217078078890891517951107296690468172431346973372085428606279664991550635802794968428210412092070629931925788256330586478063723078910640882604275544505159957605582826113025428704784198688871588802364822233696290116649521693164553261041741909088475179427025884293595604867556113593637748491741677262965531771276108349414849908251642533995571286095263336426451808617157162751405143150810440745600249629665829618014925059311273272656517713489280065303263875712395753344981271714677621869990915586966278239659768706656466896093317281665326913526999616331831531105796823890319959316162425873845537080171263314865471788173166055987543918279897892907997541951604084217466390650397285786757129175156529216029745911112585787447502736829115196179456875181317453370054482332632228491248687441479527295787762861316928043392104661579200941683235815238021585509529881811798330647417235697821437210749383135017699643158822533428381636408365293215003098482983698737958230738321532678884730772668867105016043339816207048818249291402160670462251959428800298379902916478864716001771836394175999333022300052363279583545072966973077154738367145716111216953191822187062069500482395442680961702388628557997947749675890493170766625932012707042512559183872889094394674951154981192940436305686205740889519831858941222471231192012704424520185219706329045623552742780093314553690188909197481827621971739165098058570681813390889318304163760235205193460176383319376786276377837712496296051199739576693536521692441481883344560941865856586007654406589156965198051157249574493159687044028310705414829075033717896465500417550691572239481641595842855040379379540215934386789808823712842216800133981549847025117850479971118532081890586497577834999658725841627861597655248086625116172818040372994109538171341350612267572635394558424410604243315690085743216421235266585813161198158324965124636928500523221670804181323981733869651381031275214401276258351202412547672087905868246548421679778757063296008807826331287269200871224453856783581449594294014179733318574794861155157687320290048943953159328264971817998062621115779201574073731527116656169825584718600151407542028965805074935903184454750915453096019758269217112091250368809472849028564128208666626677485020170867455223971239106911811958530945463176268249061930822947893029218533348897086728010022208822945448496606772621172311999151361864592116887027152215783954737786646239787684134300045221906442467487344784244471479324531866639939746066510307862607894681278995736228321246998940103444762772191947599509554712101886907466135801399983233511955480946127637274578438637910670111705597175898466837860761035955463352983794982821513123902309102978653314511669289430348773352411231773558260731215528308105005039189368085356573492827708822455544791393516171471320076871776086732673579989895863457414987034687276010666041854954113014994061988087044678674713075911363872168693845243877509569051659712087517030108804135752449622693567506653618623477034359594271024020854760109770970966780487403033682745895106084002795695025191522135671137188913963153697180421149178734470135697870241187600133461974701697691498335758034858784069130164959815127234900388349663035762472646562202484150583900437766859549403468167446511712932179948303951195041906115967289908126380873967382019446410334080980188884486660335431340463267089179593875262568284770997386782809890805762699925573259229802974811327296105104088889880779817322289774662334862892674841701137842903385439007342326049738993077356737248099752864309350095087396392490430093228329003716254506063781856054157316020064763200655138648406214858350396148995871004191120441660672814331253221109541804438276688808616531956231871308562428565797120274855508328345211002831446133532092840954772568693104996380621089115937738996949761211926266619559514772818494286341422855091183195310043744325049502761226200765414971995497157290276514983890851070195614029522566621142418856348759516356595459866225299602744926853889231956908036243302666722153090959459005545479666632185816450134730192463271133849329614386102826375775136670011782666223556618191462679642130479808216202381309273495910955451283679452369378944476959021042322224179963560798482458004749021164598201668075680680953399521932757318742068027679930685139776243913831799819877142363235060755096247301882137169851200230807534352545413989104051712185975686730149921333553160603050991230092496197600664204438994154202524502428683407038522083316357969626838120034375499175607516535369198346229770094710783002870374334499566500233217953601093932901514319010113320330575887763914679146594083528403178825089462844781504525608035877962749602451191377202579486410215965440243334335341945584188337581466290119748758933587272577098459225771093964603681627665566761295380798995533634507388878840995006077287929235692148674381248820380964249398933452742635637202930943557735779557753346943496739949997414061761085166141248697766604223291275748789215625198182134814101109003476408211326871323016478138076613292291529958882919915986069334581474009601925279447340696399098141610675868122281349714580425379639391806867995230568755819630631289278456394620679611869961179106521883083900569101243938684733871255390313343177711430465809895213245556273941443304837100425419736320610912263248667941623234551927609419869398631916273106320952190695417740700720475456007482147317822576347070298488074723806933716008945415542988628197129957100239836986663867272370572151526541432547829221969057289767577457848746370618669124716662340443012403251886774609325194175869454788481328825665746503078449579250938290088684146081391023818466662517703865267554099001386963383296090421416346199388302385430422933618466457270169780426078301724044551170393879000798794582794389990770406328767033535734440626395819483913767303871088051888937967444944858835906159986081735666663639225391087801207642527591577861711730997009848884395826744963457382953025347984004480175886319948287163830081655006205623656426035434061395949984757431294657142274089572128405886928407632935235287161985021065702118561364561259464106173416448066647344518448906799098605258528108133732087514034853517167969193195366263191386694496152218654888386886391978948295784865983753487199387847366442104454246878716144494188863797267857125197818114344525886413128753028658343853102129298604102138998680427788028420836678668067533812847080203283568445058109973676652798437118597927951789796835325005389672258115250353471351875031383268609486147013998972104324803356529186795186796934170591112517474857511246958214397849475274591378499733567040079112707681387784790900791775972884495039840675490885606797833287099007909132357886759184482131411375191700590946881045137921800346069207755799256735996900805745434580868636068318443136576421121693884826820446931914506607993325631483740389622034816169563702536017905128006238767878074574057198638547322631364046987689930854349721490868757371559713407053884258598200389737808627542200093994489179756967088152391124461077435501908877043717008807472032989030910668194507519822505533543681789768301308355142640393505210208215035856536130342662392704409407981374709280917741806199434355680244360977437009777314937558318194160645573379364661165792500651256475239216730151583251348013423758876223435987620644759009649436242683529412105156552957848908106855236007261652601620607710830146674896824452731426172468084439090285217927194061790678555000677613749631091962865181854960319259561980564119650362494339063704436820046002495400604748510136669144377129648365144944898851114163627742133757116410280004966463249517203665980607531942206880277954652275731492401643429338910227100436505455465935007926715471861881049048191039965887177322453740498264207502984428509171769314618846020380200831781597009174623201617637599682208462656113887010549553952903905883998014239979054526571178623599296082988872232481219570698367167594214235294616724441678319681545791076699114685990779751580996351462362338589841021628118301150729363386616962680228348436838375454074405692176311730654118502483519341352858536508430870229364016371082696511678741727489979681460636742550825452048948864885026514207295798605741888899563715013943452848958657621624139494286580715409827478971376512246326182116313884018523963424232923763368879175178727090257810807134178807229509956596567454451270014031491649861608364022898676162057009819486775546375263847326010550397861819190997228106146720183179613691815787775677883972621527499728135302527201701957970356748443509682310744921050042172267880821801694307002150613185684463834952939338389875590528204685528717657612460677826710433405831439539284303088699826756831345974339477412058594718978731665640626661078611272072003485366068693558782212077404490449743372207130043066996896266550118444556792689019620637536691653021568479419412127587127837991287656538683139584755977976597164367837189673217451146010695187262119735036113037987948718154423789016496262486537619571813760888398195214405816320127834996796032902520331209256095669160045644093340479376592272691523912729518829532044427812005861246878573920378138961989907523474501778135383420108649047228709645893723879048182732158672565190850241109766843387814167989947998249385289868865250206840413576161265237013777445315035108352845121190644644307040232686288228078346532998982133142272448635676484771001218908415185150466363799135576199123897497517315203966627914824575101450142165691237723394004980428169186365831011157456422804298468599738217056936619683581372588244473251758639958811333677030985660477251758257558147216975402684582814113075364016119257303827881932629073598874661859200988280290911662928788618374893473176546473879638533330357856655878981593288554665748664655977033539438547456412303584546351457334461154327566487124778156676566556153562066802846348439371276093997731375103515847856275743352748607133386437735959485730765262895711929909041778558023509837307872294693499522122071812460340170564273841910199067202718238334127180031611599269468431117231528847556263776150739364578118921321296037844200575117794693728944907755056350784214554733825640236565046838726489588269507915245522128740084636045958281309830470909734855257469636712078337468853838246863657646922171647655982056858703448016964956561819664395297895880987244085531379044346770278811516348256279326488029642438908544861054930786766175551305875196853094840543302589154722637026849590027402248097223543191265127219941757443378036949631075365533262121738514982582080474542876949240273457916748660061253709450485605683300980999671033184099754077188629961862218891009856254033876167277187143257633231062477880980522733352671661396499043568750242075474686346321285954777177035002015063428062089219254990440695970237950141373514593314801307055901689101311487998124078662810772987792863903030769582544577968417025432113643714681131562509374331543409251559371383685799846599362115262577775757279632037508352156414591815694891954038336731229782378805974685211665644577343664545962380653897245961319345424988085227590669317503926159248629601233731496150853162107197188781494453757526771353496963692103763993518517205834495469840700503084041014862100860507564935931415694531080754744427661047249637198708649009448867706559360762906228330279280352811960775690123904874766248779560818829600274705693390982814819819773062369102215352600608330541912743070559590849291577120529197990330269267284717826038363596228028364032179396731928384634859525627159644408231767058935992177772355687179406498536889609275176475608558117441289537640491145117641788406109801167549637461179465248402183932413802293909788178371361395043589740789561202382152170980092937785550677739828435262466957890312696137022719175843568397038561440234356625568857159970240364306366075041953486383938913161068473039220717754253359815808280474216871827525498828570591881615410440320855874394617460436183623867541289729817735424306119645287272645001213023668285729009063004870056369253595177247315927181972682783422983607745414693485071739525698691131656745858054162574715751017134232447003988958195257025508540458440845131373075204668456872810435510665456592605204193918209321709711944852954317038291751361061990355099193058402547801556451702384581829876815956300951851770409806766080409625578311085919393608733877289249032647331886661222885670924841215283164776569744035567418529211185861918964217833096741505257140749276894568857066278871699631829546581450126190159916673281133041491663569874820800373531408850578281350337003871058517669238687202017532142999681560304620702098931823584074859296179983577786788159865250913735989325247756226237848030041070012392519366036772963622671862228848680392759433430050917171466830576793800929836316579668095657160032392611918225631563018989545410664439184310671923877683141353160538445709644325738573885121014986220897891965250156203422644521591099042819712181769316659588666371539913053941991072012798020940884389238229080390661725326386203397322629380952853798500635435446682991788633496466733612886803966553626886964089697334395904035284665900943066562287460024935200355544670159034392490875039815542343187045133240596119931317865293215636671111875974537159958217751805295915442376903790037694111133027103349828413933680289026530183997882565437257804539854896366321965012784334930660886187966281161577636403947770262446555637200359391745201389676946865750604865782482154422968860738045524382262763957907892581709293774987229559559802385725643954098584276411503789632083504665974747049107359452389968537196119220356054119423639662690109825461325834033491067313739051618386375103750165256202849443395633890671169898775301624922916026424135404227236922883245457003362877711907811108407640046734557484974044488836545948455685498424420514828475902715571816651845154893036654747242197270100523644690722805901254384431228923274823033365171954295386290202814481299891774502955028224776182789102528244641252566274751799876964919599775157382620055727140077075901406728813051392302828974443482010352663946336754435539008565774123141002628756431804254759783553342211384115026633156029036852975309547294483855463870796054642262809691422987283673337258968623085030017180481730155660991598971036336906381945650167372508477897330243460846920841266242980040090282566486200671621933640686955571401131525580300086352178351549629714848277145781467968047334158644215038662950161351878559086757533976320937396219299704520624148754775259506862106320859271562503388624299962962089233375846878438086705146008282039089247738708773456719072544425751412791239366976931723410067686152192408911265980971302097435017303206095587642005623495720017662839960871818402092316042132522874239160056067800497621892150586369149360524934455051840075823373944571520852626796622249746029178067802139042605819513242111756506363209942868607934028580945768451265412252471667981121281169971187702433850094782069809938070906722561673053901798753996872273469444225306677280312171275769028859495403124199166188265112317741998952124101834802285750610032775725391047340117202348592121471801837590485630667017988967477301529697544432291643990067097661207056487943015813026668845977883465591654660549849243753503193602069341715905965118469389213484998737699532107473433197742101799325200397105244435391886562547783673781589620781379102448678503974181947468041220633800116030078667896512047857244297156863889967162240327952482366432426000704750362188376028708446521098736949348640858774393127820752495472629224699198059527018990094577129039604598336559225429980301475418913695860000666308087419160785556411164941471568853418743837210053395324819683554918983463059636227744648436330233183473815814984474153312779240713300469852511725128797084072684693838436603222200237276999292402498505642109079465190212062728925466333296961689730460575802441542991721486655805425436118785465543435098789200374791375532727129559157390226043532859250625289347071461063295354246024647003452157131512957707540982276906780593797902990381635337422256904755640776370651803458497297125237995864823607051077628048902352198941276552782193448000549878717768521484548421132918332808313937037916390093451016041451655597670024013951793470289065853416311642529602028441832688525841472410323771905131980848146168894066826650837326373042397426058740828609190716777072516557746833976538688303810413612685389072329883760866004242525474258706761384694328525589441363585533427042049945416865142009319004306949551545209168582725825073205520190191754302124611545240532350837612057304516508549413271024552801769775671108794160516989659920603967660482808840577395589623701717418748170366866156295493980536443853452266787513981447362200514640793625240401028537113450025875373779144907036281143623879815319980336313486318850146905689510538452329187183488270913698203685532489334664062137124774865042697723872339207295683529818568183231880971850442280040357938358755895981899586335147067220623533584546873313976493888064653432271372354946167067513918789566864070610137170800974780801722392249746527916080314989164460700968084056726883645064515465685271127901182104958572300856585799512390352023021042130797101874766629214045923259483567524793645578560452696481174681739986405212554462541651385200581562075188310940293829164442113512632451321388823772313328773198516678254692766947695878276579260487198139975095932238373547646090775930684476350991019661214653801588552776391660845412205093148700003360223647929450705225985938812194592152505174036647484200960542862555060610940221860611430271190881068834335824350056731297391508149970343817548127840656141963257787611487555264826420283108267915423771709722213545740881857496315416508946279386031739630135897721776435223857254376194047325744526187068865871139243101113010280170372179706305913664402724723297179369126022371990653371301459808668597894682171384447593420235442773939251723980728290064651635056870718558191940833118941918210560890508799025627437555698026479634509966778891264193291340646925977356168957435413190318155444752822518381001333421641881772576529372469972027636340502542268813856704457612958645526426145734205248268493549697023971143244191499292207775744204354650450779325525359756411794475560521647049828900616672814297511571977389666806336675981825253181756422840971325056525663650595865369165926470256635116711573168590330030310209276670782929207312857939015131544610114772751051462030802225819349583269723154065547493695769318810465822216796594851956359932339014867645334656415872198812773260581810805412093183427823061217255340316742786644339259878551150514082875778906025808238689192054732251834146288359334998436566801761953186499910367707740916687178389206465474438253767655841900501710395527972577404565936205619297447767174803136769837828954666976533040775280566748992126830681687080118151516638717632396449641979409500163762384674759719529863228948605426717321256481370500512598189290028385187422223035131430692932916012042020099770307866877678187243044584625946088645349909752139190439424135756355166062996768910630191268163027039432685587556179694138305244984263338453212210775246001807610211618826431728417937922918182342674138728510553274371074060480904366565397449705374689704173302928400614406158768767987078154834210567102270696856493942421345991333657918857427825114620764438368432620641913832782308021205075815018854172517941638419886117541056884105453486957419472380519838775255245001963735899209036506337246993770686582923847401483686540131077826837488539776592077453697041922805830390090320986173108373422244247350702634074817386697813853101447506026340220431521278602068953036583333109951805438635632717785743519017159051976350441769413648499854965792781518745655882599420679184821475307774316993432180974575685429130107738263106559846914259212477350939940212438982172406163897245128644234894375809624924998405381037695512543769405155376542581989642585313166160159205557590472243188316231628143943196274680937109746458550971504846164883887781083071033905904311632661346445257216986978851407164632994220903446281952128507559797410823218793391552765055681322382459813482723438065317408293514506571032099176012857827333519055622662061764820242776143747204193296167122894854731424078901271902056845720910224767314675707786280435764217032002672536015631463049158763769768659352729241001910732503160412842484108972562165644949010794818358258386260294117476818108927955475479320281454773274519104535766372879320423727645566063809983062455000645039061344353365065482431448901958264074095515655979075783138105631372975235992137426942803564237866111087136807021244131028252185362533831605411202007488710600113707373210504611944315815718225962985493057873473384985413404120448881219158204887541466725074015439032549769759552602379484498339068481644482491456298467577563076572337746893117140608508992515762536807245576915911832985270814907206926891012633668503783939005700004265494485077939902023836652423843282941269136487444008318236514803813755300481302156238436385446079821088185105298635507243901374046536893778055018656954341466729675808418592658166516340550305499362958683969761096612885501071073830426363144385237046185038646751079675289465948239446700780622304428943605125958333181430166491394933805826419931628169246218207238153916239755442073449519405822190861100181455482365234033768800317654201867859421174871960824270427138972923633286570918945325211387665505150181519617574535509921853921505747452120631337597663327772461353905917493868054980446820774758056004038498806423370646147290595100505710620906192242292693989294906157251571985849646590754910791393740837182467251308930234771834115168033488212549225866583992562244552314275236434945615416896045233984105615156889096066987087881051963904102766993663667560347671646142063175568345458019576356017029189853981430201689104267242485373046321980704187943017556844411132036403974607375092875104172648047279418351995602200869761997088941421283445362055749662259816982897491945551361414479071379157911808786602964809639405089112841938256603344350026859850315914165899242583158689065324237772103218166913887683517025556305223638935603996538333378622300152304133769997373691755536757253817264244518502494542065127948081633551523540227620207745221819666801992590644054444619824758895933905856693992202539087927348919636370419075573260088392586636374024915683368436506568370907661458542206617964339466497072904019893555879745842702017318045788803359134326338917670291054808240069701004676716143907217703907078794630394365241319156313682155831715844646753989899243311357505224620402394434473938242709791488917695591579284204718117469746866248659954411951967840196972606818208508059269629871362726937350544640996732597699367815328695720283672324286989870645754508369520115235800354572070848326558482301083547496899320944380032681618120534563797743660205905091005757512086541491114461430287530576314225714365847781673721625373201354236610313703221316800457237926403113133774382350598773116680883203918072648545413914820858688597203301522438079910283206921006218258513095829961416830454023681338744558878997586595557080524783049766346874452414772665173774805370111062754246295799907448114003089841221732587822590690515523303289763106656597211091477077577635152861805754586478536059020918737117860208756708994518826483969750701768179326851139385217656857785613467092467588592665029870560367099799569691824506135082257646221573186739841257954347651965683441166926245920213114583605881123256945880759464057656816305746643383051538177184254931598010892530822089688705253278220230869353095943305488657435683022958463862193324368140101961387190769350953620695738839334815744791079389115743531728957211327549402295577598307595034258287183405374819582545835970362472314218663281776154708888281075999236169163681543170065594666151387680740868150651349508729781652540078268422532056046921565941904881337168952900764480489079205409248920468069965740581188321703636482798694862935506254857406025476310426402877127529925801003248173813994993548637912167258587579202446134384069698331624291084807690793302261009003202875143353466298246992225559633055408933148777976613071615474296295884493078648388737082188542179038574537152419481540497128698454261213368019554411558633923438092152384987151460306509930715990921105859292632141046247926244690916969042279251261591192034502897980251643817896159715297559714885850422649530581568091018500319469505306503859023688926809108200045926888716495228672823540690427765452943620698445123652929858935169529553425387328138016522678245409622903379970660543465222956494622759346500022832864198237361595049215289355601498635267447206735096046388268927631858772584392007459788476746678129553853494822852471568306517708586780591126803129531607201394615050099382956877257250170611896114601622061498462863962947201672644810380104065976847613631972220539411619998676916010993918103529538863791524092533101349934778363388038215817118991564327220361209215886146415429488987491429633935242512595178333520798655012306859128817622083996117692843823607483594450401296696330875643441499020603574936416652219409657728650143686508041156939324490234906745804870889393205979972189561024454199947373428016755039804810104645117879423735017936855128153105368941585128077475921343385737398223128402673742110815935262283921587589640544660869024293411509831887910969741118497151062170386219401177964607693808604427868983749234438458168315697524220869426547311680351932905742911640838436748147225846279412853591621935685396210339021846610672017660240320237576872691097729254458344134721211482208771219809287681749630400074634947601141482993131489202705698943252137138520840912804869977296833540279144930161860404835178640284039260810919633576204392313086082742832381827889379494838372508438247877392345032410459907298125374002697803620199687260138721797148750416063710015938072305425114174644351881703077266955689063814823466757974237897988154045326053217548099415291070903968890468279561183586042000838136752790891053287018845914193292519553940190027726225073308652051538146919020177435885153384557591014689001515690121980708319270263502959120817290953898274374910167412169685373927548633160040426693913669047386308330954919127978552042245985485794375515285442398265155279859168398475531918630310092360282516484204237256868461998971133302977658860162999586414538284111027654805004597125059832439164999612372559693677957921343743032955206500107699980133738283920530515015492891703630694561384954905005450903913610334942721614642531737176761433094262419777735151260992321882838699799174478915166450850800585666432326813942562526280458345292565065214187602267753946334976186056204187951883037932823123440152675729653131559517631242934743539399896770794988023052627499942764857237782249671590583165346626164927318051072792872566096084787197452056852009142037783680725438597924055897910047121575160711171723498741997132483606432603298848645012854236005114121363341275465973255471581195123693772032475768874617177001998015298610449383656048941655023936333536508330961342368018493791927707885832333603221987862337657153332348925312774299288055542629908255281546780593559130040501549560303194584919562551380988437744475713794598116221217860226752543656818186301622573932256235651576253334716163441693428718314261061908457976841298420188164402445172301381982252566344831509878607387177372508972542480413682001678457733779648919147252677866784981180864680577400684265110335427478023140513317383502863970780952658544981062780151886635372924338514154268219386871976820154339444559453429852147791124347383424003838186841100367570798514354843455820202872172041479517179667451656075425805888681418996602793194693838773030655954819317633118024996018402075218310361702013658293949102709285857921137738821098396413789302656223661266089518987730192871359500157899519901305680164878304504092177696654537243442596857576772090568104533029565557953680630514780505906283890252235908621452721902068112904095743070629064491702103244747609203700314640198607521474053829606149359136931567111577966268512295254782125066306898751160082262517141572615306091712287174373262419988326942382134338077680842555374959319890993933577873813436748957755326298882873807633347652239020658243714669389464894537615150178300589879419396914313338555055397467240287027839807062575041474079893776720887167384282628346328943290761412856819192029160114622203869613677781511439648480008484468453839184178004773416597612504146921684695754563498056397960687352456793008875668807559332334702301439834982117583043526259746580815254650716393283449317214852076351363499541396811260954148668318875523305498096089591697864910416341861950697015572702363404818592281962291802294711149144969658443694879079536518419264213816800850425037005920142428753875266509572582927213318248005828164896777903707265294618838287920521864932409318647547167518121759650033420965916137859154913271979444100907353458430228527630878686292234295269434589940242829072039829789986795488193815120262557690544539303944271426607917285357386572600236658297755486232132580127550063246613382640057499642526958828686350181472571714826484339101988132091247109044730471910982478883409295191864096513721231901605888548228583959058103919503002188070496916265766484004195142009048149689697926971194066365679362272929739605460784360034907389759849059016989489942974463816264420022481259543680565045170252622537399747985896275521466171233310239272622143381672995794159576028438238413026859228492710617560647533718075130778225081179324724941570689712064953709842504300347142602313543640453512245501075834785906796278216588081193540899325957024106209181672763880150016569493949816422651847202520996558747039938365134950125299963861499126224897519113617142613053803620752044254588349454794690981877853031849740847283170401030675916653076375873843101439451670375764887058496977643971101716155108707388948191486326026944185932513728864265590545538206963492698212563948716563848204384929452557704679930757109309696772191622614611946714624062032643629486956965376962770775408854051925303875661705270283081280363500369514695185592368219398193832287432666227181263203218002223804735676233916439201653014477789372428655583233944493070674728516612970451802412938950320127633893201571551661847368280928419758094863918509205950714724410806055612224901670650847572455474490575429236140527409274472835035676698609967351488783137219133427671742732692216474480061245497731207233575299404398775284230839090167864202115300569307190385915714089967747918249726923727843856454878894567055558523498824183340303158198773633926944199427744970282204481518095703491320470474468541413748635572217188178250416402441311209518196376387437424006681296459645691687709415781114525053819852707716498497503286781544844546463833086716609620644993130247397144348239198305224134921832638121472337757658505394138815010053063283028093927890323244620037881743430024708804335736965542805802143110132203478538506303798237202365626933783052142077761080437334118150016875274659004923205295211840236193506869056305854274861989823864709461306536392794999862998834995531514962515223903798714233445197381436464155637898268772761164240329083093058629078371210595708787821160997217910883180858990603906151854850772578456353841778272995904724785641284562467870386191940588730116092642729395371520640293870817277481038441921324823666024935225009707499959526624048528484409411987507166926274051038398968188591899834235085246766785673007975278903141306604048771290193936262121015474363363837449009213727373324735352517435064715477259484926383701513304846426253921267733001649771814069115693208353534825927984329413604193467866076172255555982543359628148946562233508719330061163561782304945830008682845051012287989802286014935133851627532452082884261951033690582197456776350997287977099281366807627879534052456111897246295532417003484897407731566342828353307777260385508111411686628544304441628121714697731881911079844454320270821790160183788601930678692061998723545162600252150729625327107308673542351173218767555339347595299056822697155800742679825083167714891896088823365886941741984045745770078544466635819669440437903922237105799752883499757358247551117171500130088589136436679007921054229038669203950234704640878864183519816117887538495057966515235593331669991839415529579176727823656189144805400027343226164039584464117055875398999689137292040950106402185288951745425031856365016037864521053992749358440540543806023788188114909748192609954466787921904007821340547061653100806791320303368179394676360875102269328604066855227076064438511727703475419043958827037647022252995287656389870901431101731741913108906986597566949333564590355912104614410261126796109664725274096471468521592327754993036053114459039559185945521709433353362633142023755856132277802583860315790705887398164451522397475135643297734506122310314004080720832930377474137043154127770220743760942309311142176560587214082881841818961257553696718959856242091691832600352185645310565462169386912800176493916697196963042970120324469801611520996266286806243254961469084800159044435865275476267843425709408611053048470667490584678978505553520241701762310398616265271911557574938973467949134702133031234368685269428811595472558155045128281620216929214007912222348687836414136133407389119348135555606141895537193383695998597050064297255176225884266059708859962211213685193027818763106294600159412176914145582112676627413234762408952098193667209662536862740074612945086654406035284836412966931209143335067816612644233191423540267728065101522917793706911587017972159855270283502726411708904256009068899958200165461480936748299434740504440006036547823639320961316267651083167046027223185049492299571085964280930086308247802272204190211986851842691225328824714629690945360026473635548130336456905926920536077168780910148142824780934412538127039625414116596539188026201568660113837509786634414657884301979562557387929911730585259428214568779877088808265798894687395164830388262203405833094354476286380865456784166150257515008386196507785953124058557013496792757585822250840298586129698850181963408165574677483304681471662310717846579479637643161180133305868616620398123820895160990024119219890791192663034143165345721477668185160224174249873853385019592641967650051063326146110678375757283227034506143695352987957946971581006875220367872307925398697172742066367394203791659155060264284436518668261682485969234248968235524891812496934623293990938993278532758731025717942087540453786967966888993371766399095896572475718166100914237635442080650564352486149677985025299445230169292553643755791760477152403936744896535271378005547404977801661587730714889079815847496139485064571651464616813613994578053522615178324174750307499597227779977629718190861841301478381140206642772434674559508201990175681923337367229663995665345171109048438457088226065747871169355966892396777062488612193402644966230547957157962630499407955025384153938310984351643898111309149948806259301403511073165008193279541728728958739671135359399369539482923380924777001558049356945614617771036706437449601510078025855080774587030902735973256059604089956959978706653756929846643201388845402624600396957512774497227602931083383719781235083101847794214205576096638578549732089273699318907340338836032003371927335217773111874260227122684794173283422613137093098430891908779440041566833357277918947143836845946147925769452484881347905374820063714029189621368824704715633499338761858568690254199048085932377525198023052389060264305008032652772387065588474083629384144141769555640841146433643222065688398331043895830968202374737402761798700851847416494505902884568511685269385420357665994551618408500365143180181835738851011299368830221445856430132388068502316533064623389747217202028137130687029745055810933293650925461584950074266755678125845560608555692310283581241972001907173904843455244867526378621370427429668634666147674026447424812903454642750193583697216644075832708185472523876017632044631376784077459289291854734795954577181130922887659040755245346214936492348165029602966847480001770457716862584565725870540835443851409150429801281749201800642818726880885815042372536050536107313296081901505069064149259112027637488154959851636896130956704515327475933918344179934511121505876832953851672421236788871432956277710921006647212536447955600656987045518131431427507777233888069163270827899357699530563567247644252261639166535764795487709507505040819283138931935984102993360113255463893780383598478692184491545738250405901955315910930524110600099939681555792882035191945484302546874653486033226167015973118121078159499885934050524306660040036994094564926725179208806974077984562408538340897929342395927657980154929307316173695625190053902973214783617630332396152879656323685360001974631332800820620946325531138154110488984804160850156334724769760013932015975109457678345320765507503276043144078090004612843548088796374503541638190587900175655881144504929992460063904453230212440715061872846170425080386881038856211130299343839822773939174770326066170068984448024145794211270752911708911525521195093673729596610940543944351555099820800734006066651898519148518817431979077695386757415380439702411213882213722561006725873534946391562359994730271006155837086862763358977703119551467414545627508190095367472804031612275539988199139246001769328122587605847591872488074156454068029486947982198416826200366634243566004017496917756649820128931535225643605383763477640997889753187266250522922218484975185506455893373054651184809962332632830960905210327758894978265524697506158602011839911337777374158647253830556039814386992345549068389433076591503827140873295090094479809594239440823355885409838555263864908798120781388977034539622018946696648060668253781191020507767343579381953448183197380434321581727858847674219081321474858180082484492403114268597997050963367296158826923029086503566980031003130463373834172725306311983588513372998353522761422423871756489840080042274538135364621492234233075622560444347963637893559112367200153641773697405176729590292423139353501876022472066482261534548649042531458623219488503795293479499184677193715043615569847587441255867836700894406601255797198207874334059759749126208000836167540636644268311032967218867471905105062738664317306712867569655587615991620085536755438333481558374625425693838050677054095123236565221629782758512233460184212950497264474557264454805275255117117684165708656583332920104164044242029622840197261681734241200463339378949974913786045437840462696512134888755841627939591384644712877459274543878097542916238871024314888108362557639373915499951824870157572335800225219859734064032118715933350454187217733647540595189621883442394779454026205633035463180122740437057684571598423006954840981391603862378401078747407853314007135154527619448994924255918949851800240697773146770054255074435406635027945021028826577578210219014118931155999082991429913093357497540986938968986264380741930851322877120195303849296906730354028088158761388971190300953536934844932479098285147974341109835580037479523028360652364757697253632524230874003332269075470217581702030589970686316286260559862974362834494321850272657636494115976872936117402698140648553646777061211523273673762231669299791381026525507042568112775052829410319873155290131001056268769501066936789730611772413823004307315978632590402321714571119666822560685971921135638953217831567942786521050545589996397701540645290547279030637360398513743446295657336143249561018336738384424430536537209820942721969282185104028084816302168645677806610807756012082477170165091002141405972224562652429819160192020933612862199751376888629881988588201964203008033934865207255362150193080235142705433500764998116000815940549024640316290908106000235810295045205644120160352770997222355323261928269638704038362348577020994821797378784738767915710534859228595963419426847884491831796383045828254898911442801596582214470821491576161486226770166961250935306728765979802576520719482244844612736200095987366334916837517026899457391352380631693384275347226507790698817247806208005012291509671632340315312099585840128207993472094611362439455731245315204304042465490608042039973979210627833396541820922406135593702222964513141236037412219597464544799596027730819978993818513207948360231609477913745206952705309399694850229737101954276023371432719564764319987328723373209175778297674957109944029133305991738292669056315174798883551545275262082460730135112253685894115572964514081299777101829006336124165761167351708415459697332982703708573695013426541130719204146262037531554807217336864591967982325898209847530666571531258863813506325650788140498190519449934579045850188500870914455104132251449681751796907678656167783757710660030597989981220355236360728824726276894576005727184293911024042022498146245078751692806721250469728613067245364679501994395751818040908518931928751133761525637093086670985729830527002812663342107664192930312397725427601376849639976786587203359039542496737067245000336500538972056580699242948740485052809374378193864872917348380577488663328794072913584051116188186680001515250896917131119634779470156595330117944908123062362729371359321192332804387029964958722200947058469689797761514715516896474157525151465338621082457324626679994775445884611105443671750149469576134179831948629448944387830284062427920779431063535415510325657915238370584111291528402553321360779856078491010088810482457307878239550249175895282140039564080096573487178228504071239356864073787589018993099077990686263230281686207901874082700031830526924487112314490018986634993449611111918169300763094469856091067974473134684217576258709375191233171159142638349974435185831449866278034718146956337676630768488337023130163884362919514681569067022570756661950665606000557621541321615425306366527177556714348753874424295974455688204363043339036272074075104188742758066574720531186028989085540246429453167520946572719440431945040879212166722189677135895160483815242026087960475952293322462729531545068368574693102419778094017996990526247618596424776565576692400120902952930148745796490766562080330794747576622290935871970795491845816335498237262635279743564788132285237427098833061842721156570525981771224323791101109922406490532691852875637517900749045129948547360278481670974557002218795657541871377853872972496815492527204221033229664252936161205605486091716245684862692405513224105538342274330790259877651888158887179502667645596193401501319399040764854675825112901421495755142428001017993575691021506545241107145869651913125184185183836483761516496799589400949134484900708267352937631061665267763440446301852105487594599600415784268406906175625202590026581946071778365147066644375780738714956363646337914313516119275756126149696926201659963787094147630236125238735360274797761739387116193746157319950302795583801640618187888621312633874794277487915618044368068886305278168371254668604195906704771474905603135291221134990824699177969314080722393253258839334050526031616331831046731683938868049303729310445000383403823727524194707869738513601058999867758853919873364668785887409232401526280132168758770383408364682697584134740531220608414444333903767389880929010756327068570805597738330646547591217624299588477637259607980330174196076120087053770537190555095305775626139649608008239502691671785436237243790872847927430085199287289681266719776586555328505311329939558425434912358472258643033482489831109547308613163545012272570003440541579957026955019835707184089378470117164698360830247208982347019728364554745988121272635923711825208680812300243360378838133019531148184507172683590344860549309299290686850502593823885292542930204144180077191156904835670087281774846137338113052942621871228588432804780006109741862125001629088115360059533808094610190803363171339118267235181666433733910797474376573144021410727654440220162559021449247638352159196839319263944859219870770076216536383558731577482971680968218214377741493504353616105293879381153210763294743570838227034308599385384676128814814693634305067701834772399574693131181827715347377995291002336128964466979638701773082731649848643746321334090803588765193238281886745193704307266000920847074178401414204366479716777940549516189961560481920010138880922253604676630025278586286383016528568878063617170980384060609891134258517301872068257692340918623719992558476347095790611546735169359949360464843206847744701206849482557357451719903028398445201263967058727786022612650951387557869750603973768077373342370434151439727875272416046318135055342959847385022196406733550015567841645030948238091242990816463172159920632959590874603245144530944820714068421367995698015521492206947704076505579676587614048835417653111806728255248369929124828271795419435667484140044766597734904334807264574684508418681268589914773372952119496830377803978949357707855433619009073736074191099846279688088592610510257695212610682710214220851200423614433050127361055030156463945069757541431224624369419627892324481664772011885230505546544312523156182571416898200464166070597228958489326304944466747830045927698850741199975817720213700642686870161513083024807142266813485132060958088673345537778162585514704396627222439888634326188849322023075831633052598523651169595195132591590244436134711283968402572738103485937729472278887869572242559548167175809266701152213048400660665836754018943437231315238385675563524065119325389814086319823809730346013094330001561795726448573817152780240291089046088777500296677619070274254923053490782240089684765537559330675956598072368281443984292268185887560738540634399670640457495287579554916693007236649484292435435275665840076567184216832512227485181001416316418015362748396753144545208003099093532311160323203438313917728644385800005499558012414109585332842091469749287341144314335869408210344811453651522945630602333353912249875807088966208055443114937801906817587501747542043180454656391083322899142479624361663561987279625112366994503225501806836953760050483259897281319360440535148758753156857119958187256530446722975339908775882803030365358219468375011088927664637213126490273660623814049209255646266744360884911483113952052582851717172440309324285610666318771868851902673366138168024911244275774445178958068097195165973807722759802951745739562199538586734572817096514287978783532876290355259905388967694015032367349845060606364164891696145570192597105212285303407866648576691572031942749999597435962855925553410932482942999105291527079547683053742984033435543997976572708777766552812674579891191262227717821872034407107905293511920317743940978984432314001514073122225578276574923257982365908585354446905989023009447164098606403158953772300007048403237345921059697713465453950925126378089601646559825142557720778554802012153318458484490045697197227758472313176454273215330075348672297434621314209396825995135765504549343102703177221243552026238422602501306670981720084566043842065985244136279327295563500798594564100111924746643153323582621897308770646558071645230571899714238778557533606053954909114010464060299380425477482752314068702185155020070856764574005280496706485335451765405115483448216672907464680335841935363772370277569599251336127455433877148533384570460831751503923000474679058503515549556426540697804465221255032083497468953001674826763917838737260783243080677093764260568875170157910415379294373977282652256237364418537610126215236186414724888948889787234031247013865114965477685297516784693121371167793918487337717150694824599802979353190623988596876366297583090713460055169070271168351610724653564083181734416069307093695750412067920286150761356272108963749627506149898594671719417587730127934702337190848226875021063154733820962466314311499494115690355168386719214745883611053190927237248747376745024421312122221518580426860689304436755521800138321892362066069462008713718925555701426114894591090643020435242724102022640074911663997577495161809915410820985813549437318182784910289892625399298375476971531052209102607413013718662474346328687254020261127974543541503650158231045674778890889116117407081843879673231117912206787996104715929339223899970387250279759914121272550131564043866795884992397457130155195177265766919440893582979839160012619282046319683808455596201107247453023792401408726901868742465421658572770265649118017253723292650624943974070628808047833146505523277037375691792550758069105548683529195779348415762100664716671363109664239350737358150986922577654616188612299037487560876549640620958903182702483384942024401020912418548207735268694808553376892144953945383002108725352094532616701979462850227088721240879907355559706755932970404384713881653530758669696170834909849968335983131008876418148922621137437476505309697149473465188433012639218065419356483855308215029746893099837701911705128696713125088947386970366446251672405739345833433403604803593115836187652784295996794576904687841435496977243998212699399740127983215228292191276039375656645350760407196380274558571844190420857739569155193239499230928262474819293031492207520452959265157048319634153627766333315009742902891901782343580536812516013778835700570359246479800301254974421348307672953585984667735973059235927285645082569939963261638670849115049704362948021096173245914799578484257530470598940442446177730468311577224280114726468575719991460826232036362867812884581654709321079270576716105434294579101770551912634806686882752739113239193356313809149847457975947948321384764907264404992352378159600794785052697405379567096849799756700554625963974125444512940012503716367196461089984440328085368510696751363151939561135438016894588610360804582388468594494986566681928677076588698819573858490799283489020546911715182693348906656349436792087649814829244690352237340441087914420200705619234941558630839367755168672426318758716750649996085882942609106750201150732231041518242206781617607703801350344243117264009698584119996978425636779180428797354619610052076853410971973614090968889745060424338671320370144589901785788900056121820690958686960148484015624673894516645926447380161736764177031678954565740252050786118324666198029935795325165192383305007707262058699552355334234208058900987357526088158760622648812031484259460834670497842680745033616051012573399504947598391005351975894384275912819875056443667585490245375370421109880120729524985886103464707333645010837364827565626736940820928610053578004408685742261760276464204854433365179298010088268105991039057880019474632938906378707799763644159107377007967162097834889501386923960506447240443893717601652665399165064234618669047236706550497838168490126891400002224797020821863459306339397466762435020995648178227739685355308484499748679249437226947647727377402063603348823736337341714400649894735328814502446822019177931129430380941430562301893900070592330233077050837806824718726164225052432390839399164384517703003554311656346476042863383060368507155771452276639847923971505578764149651149374812757197887344657178624164585445608062293061620829814547233388002933704651109689398633695466171430862660643107313859648216231783363391310801796800791182615485347208418502559575209485884052335393422587105458437635400931378926395501573041824585649245382871166110221726072446163627896412523667235933376668873812870674679144868420119314310959936057229606016238112363409268751130674722287899802899383543907467525311619289205030197077174656737543095148348622971212956878327526014564409544325067078912931748522864453039705733770339121489066764961242686137572924321073146338611692870558257738466498787034103925550813520553407090401339147529038238520757169919352282208472654593694924784536471907042140003117971928767855480966734948823080717800143859309400192945771029810547067652512982304769880214128209163245527347922068673624310183162908617343425398242434555082468756764085801930889174448332686085256139280684444793196632988706090909068747812327497421517855882958489226982832988308039197429613250978071774917979352384016742345415786304147151102287943884307649417683000582300773031160444781456468291626513080435641724371587900917484248097864710088484662209536725375428612467554668644584913167063151011569143308968543247956881036362263997253481755822992508580014438132808272904037200480313201893621059674418375387533878393918090688328087594787541979006241320577604978902561874328673745384202395291644474873102427567827971642846957349856448656600804691942872299375556619635289481777078155624209437706666853320770772995934646934703852018394564958941134588489122190648425106633734690710908588503705929162923433190789522400736590236687119790806017992591627817997911247382077574877507767179959588129217262369778601411596109882798809619107039615558703753134344215720118388064661703967531769330465040483489855644535857876332150929592374476781910653509610588649361898065820146653591723097145532376500335268785963574578374773132134951135886051993588741110864472104788744831236660032271221760173301207610960367676043030913678336781357752058808594336929302901671139284635352683644549219707659477194721003890835732098378191935592338633978031138352871128827270423040823520722826263779708897661792105177237427182904745560685588414815667419502869299707058211036219222770712323039594252801878898610143138677152780917136160496723178373725429734054705935598791434357833499912546298747100411122688931077924514096145329292374055725490622311967794085772650590231533958035429112158929947021881506270595810044096772364488169977612755066191004901155263648819455800092833203271444421329296497347276463634942687145404046250307479998839728520399117622431539911160658081106926902906198019786931031525457012355074448034497095552037404748791702418421761094646215265332676179902217266009862983929868164581073051482956846089879324383284133862795646872408299646675401937247963498771945149491080056962169148641305911720108644593601630762433000745785606170430779794931489085387653353059120097193598776446940708099899367443741204476584412475849383690369670487214707456939828552467015297513035374251622306680830583449899417435793352067542401614523735191716287270377449358554948213073383949831179182581188518014626416876486090505595177538744361830411427153885976680467094078033242176237216720223244284859001743677890210385071069540852997872284996667000769611908955705167415923960297201749956191769176117662221215753582331154716299592044221976768271753294680164860649460402256299765970727290800550504050851454437404755777674738507523175048288323609326064087326640700233799773787571033911594633816896441398082938936736817731843310215132428409949075640981569151576103757272000409986917628642615262652068198188080117842618019818939077588201671521701705572662472204166903506450754063142288011106639562659775860552122055511274979976111618355099632472573832396181215277794607720589079758574858899733403804784436770789483620971051514330984869165590732291722841259896535752341770262091512778552970099643632420033911073290734510238489315392342637808179591242767814347930096205965315025628945059624103600995136655143212680902444343243219295380894709647555353316294599788392430493886433382510739863173222734922568696237160293705932730718366222621715811725871086027411942772141310038575844983669593755031085221527444500412996340769302320890789924685252625875722561207659350641115668194013384811052187724786624850585893578792811660374031951289541802034220310374214215963946299258463741506713598988521941196398946698622554084604631661085821530838425915389156174346111539752962045720771140749540392090318745723631711870823690715148367705394877223925007845377114854186145448572634358769324416452551096509304835170336623201732531802301221692088120386376805888453496246133391902865712977463921404685955815893628853605210731473877113567902737704301085826582605827139975380902304373152556027840309624722879904343935997336159790419579486964742392576430748006430204436326082757895161093772297410471430800858016137456823645284000284542182587307166899067922115163577264129512210718576486012474873946234110689088821430391637436181182749412088685116536267312436774575933357636037745665195116941756407631071289701652938626914987999249641652955803189889185513734605061590273892130078108440530920145155541256405296938547810108899842167192176225141900015025658385986581682200731110293019620415088160983428335511388778778864466206849251922270522346199350720466839061897048054746045176908056750362541200714009043198122646145123690809561483953369959895054006534968580947974198635540828530504914105563978597116490280637658536970519016488476187532526495787488307124450510740532304488222465444924065679367709601051865732946053027877433559217080689106230295898746816041182623669490869929128679462957010795886429074617454125082023060320679135799183953294275110667405962998723643740661481033987010036260557307106792081932576317621702998409325113706803302748432105267193419149813067289925141929471971018837608818138061972525698245350999861801720594505782468012523117444190784830819708494491808761915812185865415899020824697268661468447041592928778844801732580218474493601089208715577157539934014962043736079597917791679359057010688279877216693716314361072675719681872809817094460653404260835600391417532486897785361691272236595786917782411346095389591738272911290502084912441413056375370248968622889970879345689464998001193418423709029933183111481313530168394455538149519862505855288414184118021243919346967578690998218895007955847445587528705622681112727168373045849345074305204149036548325490632074846068563242517198552240370306641366485085255389507173111822108815153932397385540547895359309544266429278919835433495720764111793503043974197686680189643514699537877922908795984242231353373625212518260824932080560622357699037209923637008735612132405517964601115263139715239377854859369214825748090263858926894504317065384264681874276559288975040213916616328434067321269196415271801246202131217399258043381227795884694555338898730048944631382539840642999597835579837453759795470902059005916032782927612987559718646720137617228219387437940383837075287791487308493118517551396857027669143365337425634517716419845062450612103058232800284433434419158630203900793479777486281124944782758272664117531820270784256176890663948501834833415756042015128265457015399085652850224154648865562886338097133812766009170435930590234895589626343516010880555855401907640730124038441163080377930177144626550217134274924760098097781485275766913321927033892801694244413835302450274537665901457291376130475060707328386307723756863669300909266029469305043190524647319672523373654560052645440431591735483658497316104939310513882258087727878439993484224816701675894579101585504180750035889073711283309331761212755779586470971903864391915549420323530811531729815499958502983478587087261655736633938364785731403191373096882529850634048133859821823077036501313189751596692912556135079361903818790987227643186445902842938842934100754464269678824320587899570859971012121403217683723800243346508709054309889348548074029630739454615464465163986369525573279059537113273137181195798088512782081201381310033826100482449396526452258636407657262976156773013848749543980267016832282236391845474184829910977100586977877941731164067037225595298570648672930017688917326158180863250065499358007767082807998656590832035847919834312703041683761391133182380141195455348543214099073767362389424588346324982646587715545067124461430196137272676453987298231048579603971518443949994759160061615250041433845969287351971107384108242189089937025625222612782660250931179376125557042050690287975614380030773091145752152060062859633928307221948431588286325404143740998012034863633602593209781601963630399882494090817818251053940048593454615229455813991358032666262656677548574480718564222557430421577865808316274516203129935278526654887852454789592011434091377618392810445198479707393332290643753000525921264140201926518218305298901883008677721112811093673507342611595427995559186453470491767119784684445958165812071679949075206110559433537479736039874768335197614267673399950238374787025927850294536352083783205469791806359099972652260941429435609580786343075370419360365462782079980980622029949570409726049882359759708990722162468454705839199945384471110661511893894010277810888146745700946938570359800011146955620484893752784055795774643411372414427774834653801048281942072405013497044231520187676826757979789347429565837434224514765649637400973159597550933234877810233584774236504832020137187213817169356071545767974621830588330376976190016417879978200847391858862329517074919150758960811531817070282441157182357472907618689550811105059799113090285555095468660309929549829606883695362674627828384957512741660546456725467043284926555662091042355474979534432988659188255876901796482841886544585916287638720857826464247924777005373036127243540117907662171811351295447987285584037124837315525192798571847463825765179984781977457202495879959499240072822757872204263560739071105502022271177274684962174062292511323203144460635046448207509792499615682543011915405371793927665579273843432773034056916502066562265610681026703860681292406823424630939014533463094809238737768993710816558959406912265237026359891500063727986359382327809129422021752962584123982217396793172162066814508761735951651964610671332432802504196004728748280755216157430220530947063307470519791792273822332718810924275474498586878494157275184536218061429623761764542326226953959335267835357755253632055247166591020057417233603852534149999087033616528934746971155420711213946554705230719862817825524322968938813313770954345528112702729379922087461496390819569531194815508091528692852730347123863795008428296698547445472723882345158688162187717660060170215759242324486582650471359553304640016416913877887923216565098800975188875287215805579600554003711385209993846397488489448497765503344778717251541736118603892568551521674068369797626485902077146649983946554916920798879295234318024990827031264027699714157913959398037234110780967519939219568852499028708668008804746645463630266944737965079794443735173737748316056640734067861570064648261439427310704544604068227745835358593184343310760083532862348081993369845223253248269735257885906781301238852077424401175288337246802220041513229240993150593499318294363971881120534722799546574201710741178979531785886477733628472718855720260736868572564267391108652480142873719875036356095176743953094955199557974106171316211507049728788334715924408530815061916244538863161057347071359418990764677655919848680398484245897312301507314883773970322169768218665633574335827739527143925444458635504996612698601075221149884463912229048271752806683821136115757481353442937693505294782306998479904471199866799062066257573377682826721685608449457159903625234193425236289375726284184618918663240754550817556182317901965300033768762264710392546429146713380361219940838151365157115698987533126572174021077893865453396031113661871331006476011365921205729001480389239937696347031555576554077876761152618930164485358689817625161026775852993967925419362721373025652338506416745319966434481470150354608746707804293328786910904513511573085309346739809146603779735555974123167066706347786698563776490162952563904802767931516167142245262623251218258702407783407818630334879993866844036375830558495378157659749308180856808606606574643859009759069777669996971965641293782858194536703813695301863263517191744929818472287142796567861475090590828561257347192428693707513125503528439430126159002099657282986828728512550117353817988202738559770578495182255752706447169388372008102037202487816868736381451984708257527767587205546929209653246262014292355266270972558962919453990745025195696727011928837775115834380592435152037444572413580568576665095737918605264707546303298483508799637902776496190472854420499373336985292029781549978936673256917808911395609352036734318877480647975056900999729966811618693113053130260174941501234949111466044381373610301183103331086257163814669881781051119486140596609345410564313928853372355095831218481498419593284648487278196254425541696163884850547064227213074865023133394063691854955099181970901124869321737463036837692070749374700508220698328723909143904147172749287455317126250145491228992954532422280356703595029167940333072918283724138713484312259858742101016453316584568161962763032249904694770465051533193335445450317720051143158094856616021351439843931608263268476338252107456915065521123571933527169198311921889535663184614743361534503255586778405415326259914791466130696509395149981847214969529034408207053953368734357738808841632399026155363679374781361779359653840537671634654144123268152488622462297406408829871866074696416781330750744375021892156612154080703411026451612788928223136315223537164216052653627342690617566362563396659008087765744824809511515848031187725488174155818357194519757043145018389498722442669244988982455494023931416039742552902149227500255684799354053028867591885630961989669399102630627706239082383620204210513366920986491139466248559210491743708565746431991669589663654189419631332141093575780882320316952321673158560224384831442645417205682401744260060845107732126322267554794912864969618886090882750922488286616286651502944554937622186813997505917349000408519482952439596185678437636142159123279179111952865003980296123772981255131859011319492154211954302015809335739113484783263935971124743506602349328605202565221806865594163069904268943688207640399275189794557011478819746315474360633383517620586821837774084836670619936619053766255683203014984295945446167742292856950643664369788726111005353155506851718414058449538842453499374036880596298615303535729347786494594862255886603941128401300921059257898133859473994786043731245882443413105734581734232937273966815002267164417077978615669501532560000615977219928675840256868058864115414970384351593945342938227896420239027799792320416366736207953675766248811677547564621934902026602204853490874311433328848938906898119427128467387037491007986650251228260528617588388831565238178887606647784894903561364389932258463958556571667429038993913567983727832168537282046067266003720233876431252671018021285118749795124739346763242251330705487352579922901785566690786842734606198991301920196602750580221882454756978190425747966103312568504021487324751846714968611704260294436657723577402209650320159621174668193295766083373216153423405030421589173789935995688341215101231228054888764220911636833896358404571210468691767589525200554709074340495748443279733590864161175687219737484567170930046702269575811152562535163552762124185179804124032465800891904321133074032281468693865016245465518705908722194793047330246436774518618069055895208746013684068210907722277949962087439057017773731419031673989915337132331580065646863144739714010082748794471458790761048893064221688638095454275725051107356669583454114532531662857850288820707525730454736541607048158190475655796577316031911904905439300200552426744870554890944000934120024102764021415960359854138268697716467248635211010627993079721820490375717435344584221919576747892572851218000870624278957678433781820101190258575518089000681479313280310014283160753486880099841480611493320300696034099048766584497663698902887586003459046388085348532347870085926625708203480535871055141937085147381748181340402745736940207130375900736438566155525280741212051607272064882942158985140680676095043312732805175018638260397046366115291847653013226427781278194153754633415756694207563632235606969690059358380019626694932453377445397585338060668669435645965192729399972863165950157949740747356387204417230236890568615819431435658451517891072539443538479545006347421655233136126402171397927861248416430819697740433696815077617046794815961456284005027905508695285870335342612631016350721595762521988272152549619598964681348711707409497674999789688365873810485331550009968656037517382593088492772879159436701859931244329201940117980408074634892586683226355006399320794446246893134522267297474074602961639817974370925053600759628961766494669363569183201992866690216884002309935039837904502776048458789240919969732972070449372856347050391929390320523784666895474632605443447339117480180570917658228852355932791298193650737314200078170291328484272616613944503900371011201833294382004685181208630170080370808326075440241626714763218839417314037816926669205714918521222013337124889216915680347814013770834030313335525247656854950722590674474877967291941377203846001075557801186370440353903496876797197945449424724677699309136478133003930803002223244899943039266462433713848437213282172624031020181073791229189286470162619739930476925776315833625087606424360352238443731821579253843530655330362633255525729442811177106488293983731843686505122047266896133460996148012070331109879275144104572558874960366553970767979468298638717470862084915389390317302742775292619643145911062212757032639423843461980399994169619164804582195998084571108454178792554423812023246112801358780366026272706514890663681128665083142155114932114402998630546586310294972282210583959566231874367562179346161134949321705803725186394900424010355202579896904951967641751502950556206272983151406471470456343602506158785417184463491841725965188987243831737477131394785838542913485006723216262712456499859467998304358153867715431747514613129487246051147228686671535791775806202483307748418665909663088416655108866914656067039332864558520186005262779671685944101519604606227410337751327530047542894260152112248953370021185458255516205570439667914986584281220083256366022697525836936821489464656399250437617965824766797830810040591836464896005996818751331426250970901111809732277766130706720510976087623983267904329012705923474086327561736572665646788416474345239726823534814229281477344716300740218185291316992717552914160733057162890607527599528113322091378944139303578032280090532194269179992200104232187487001273052895006706481973142327699522396772892765648349446581634282726998843074182921748624899595508367544892016771247401865777882098081349653293622672780740126835728264080920884442143810899871826377290437415532193670419817408669848982724619105552519303721500926403528576177980583639324145378427309890389858505648708605254912867886013766638944462270536516524118010319439658645355826938001537818343024664068975814400137864299083362691803679614296792987716414026177067397961553299085664905428076818791364564274944990259365988173063606305168192951708629111089887470333101018183100358376890973312503861272774104480683214001827040762514429155196773471389811371264228575235921502190100202714759875094856027153026547619440043289517330511373931446864694369425386843711350315067427917655244284314718666034726800090253156305383252503798919504537238408904329818918566078543019774211828274536818205946148878886400623684657326558495166534828475334041130877172635697539284844952964249608809606034630755788949891148561960898652606333606670938908982996493278620466570981335972654224582037966517719120945828160328157808843009876423313613881289167967501078528501159941027756839310670593328285369459913763398396407530055360546796691128708947965876063435493843338041310553854564626322607695275534880523447379083682112074297962843900542403822497044085703539958311392316230028583695899629466911630830584371285556805470911520971843469981961791158958318645651186099957483617161956691681826068445707332412896513890604212814242058031441836811873194909250951977330749184184763661474276345362020218423855582646370900841608912600452211285439003390524609780709100837854482905983434105289478842466866290836240477969272518973265895460946019426942845997210776451136804844030765749185408002408520529803614812962135368682998205943840446267355004905020490422600831494690982505881076369762593587415946393576791637871897571176516561821161004177533047462584190552651022348220124958400114785789852061131201949710722973625658567939059954123129366552775838609082289648228496633438766122396412454389334133733683603189837718732496181713908167298079770207513526773609201518354945690150632973231593898989560320912774257234133768683019304981582276450849843505904483094011202115655559372187837081941898495039101555693783146841299845535459780703862788090872578168141459324451433668857450166873892646882891289188323117509860902666345023349866515082270721220561376847196503609511151699382309900010635853331955273249233398611883517942441387291477826053003808513369673516289707303640359953893984399817818902777603743634924860295769957661921146902618216133395785000737601854654424202265239378550598362931418822604650773427670602634375495011944377296833373692403072518114204262350115741440662099871036481520439428427627811502491341176363915763501331468059985071651024153758169139941348083454347173310742198960635303465275577662767529717335284832351929846558311020853505900706546548296575887843139727259794205191169367608049244600505084986955674773314355909383277726635016759366425726048634581294241574734997773032522823174421636943508894125828355901850787282603865846087909737065392049841388395882789811205521514122132886860472015028675488096674711725198697370857130370531696128147321511779193641300747787718216634159349268528844433228268134666634450806481620714251924717878806913090025033030046793102002701793704777627155857090048544429730653104353763949917445847516182686258416826083478573787546550445492830458414636590795894354666345141801324285888971847626111967803147608580754694966949783417052483420601460255035791504852054900062704000722421775242760821319555389878715836287740826973704551675642176610165948069600314291638708632925809625472158535227868707371090112150400475736822431721867338644086765317160963886972827029126766995141301011848474132422741196552313236396035038605928621945737326329877526767104381073943299642125727166473288171045244732175505098212667949067763463487356160784832433528360462565016948553331172307680984228961788377364647255318229813472947307275238033994309532377048156411350952406989926834417763320516575613541257155149136529946246970952741003380261234038933545222997193000407486678769835865881084195619225096444790612982082252260416760701636806822740133595840030372639429688778282384739218036688024496480938718248971583608685667614987330214096978194497539200781932840242708302492988358146536257140480478917737604896352950604362429224895422168656346538262011179884684705906644531685937728174248344642207421783630277469104599789100553449548147367343924835701526825175229335768174106390641004512127588865385169420611438980038185231185236426472587232792579272266543864734671756223107361554005701519259320554746152718643220118677491474906408060826228765596120228595138141427741178933640523782823961457360407717520992031042232434245507140126270813799905886788596386536834468013338805282905468951529766929410454786471114678849887845887526178530753255773729357429267882212280089623665890959070754610721636403136451126861905585433625339990808551129015067584375493078189992116829193296362002947132881103333448586880417934734727372335329188402617003349640054673478480065352366141787060656642150903281484373318160001028488563489989478828450913506681372676378297533908519432084580904045301916871777878123073707823890814160548010847109419690402110513252102077421573698030548173396723465085813184949415984324730797302558651228740076191678200048782350207322989253829979265160494531220694986693851336563645242066952519976032291492040552206807516757845413307323426659359266462324777183917368446172044143384433468424659044786697075353034931945030849719071348958628121721032120646443724374507082394228915914260351811384989311679871809613561086672730709677722755745063521588566634347248141910942638728506020958882272905624768574661830060779487371217554625413482917352125967254423254145678888389698974611608697211716040413382272604823633147031188561773310046885179039948547970147482093047999844600685421029567437872006353781782218556587256452741438418743101481296962178445318484265050386183160388949934198263490962853497672578977909474013488424141819256451417169691939054899772497718967109982601873395943062742944241465178724185656857683078427033818396311940063158265640108767156140115561958952275794841172030752640192837538632963350773345588624934702390921771899104616710533783042079756179887294147613691209425905934591546502192897977190753040126610174551608868849933690436345578935535647757146196528135067998537343658276366992792271317004590862379987639310582338080699995442893284459307192226298389465096357253120841138194385570490393201003869417160086862319983733377719142436205750514275814805504498823587684677744987167327587983698950799986356989203946614888722533471579952911019580430194916404631084935140356634522409508314621300251854620842195225637507613195842876661919063180014994948221700796048167077949908858155013516367783827036430208336569892670703808079813140182366637244099525150319887368053545246451545035207190994060457520684018401638736957039741292084952347940117405599842330195616197163932825521517337663593933421130139977315107749962755006561875267775615240474247489466087806239958738506076447248782272081956036353980715659163635026083219326463733245683685063491992337107218953575443235378679550544460789004172180488544318726569865474422735403233413742593282973159026004195995263490071817265280001061291257480626357595624052458847364556217140041210200541454032744372726103171460029623274538245213389979123047257565113808311742343347937915001103532989464422917947104142599417132530256851374362361534198862129338496473801131009571186045017348956668574879255683224280869769604425726554555510925207069743233197686667382054750672551245756389825182644893056075003163900639253636540946802135322327648194871800396910360871693074458643848662678372548450853775911270869595362977479752822558918981189173878179061410080474844266662672049398563775065168666602661692160400168881134059113959445920092937445729519349515147906262312568850749420718718015318848537155154181148690761601866417322612010485164833295577888954768412741642458414417963246317264013616454676533798008280091664625282377097146690010176082253522428123287810061859759550017340191958292160971038887229573981156047657392236214816676688560016564382503752829280549727470872020622426518629076484606208032242569882184126737930870009836756734972308311680654330085282325888920888658002159556669248410905789207571619734641311651848528372357324607905121574222055235589299334705031673748662018507053855595694151108970905165828540195513635526507884352893064755454804612240552337888627118125808996849236723888718727371373876913265615373030821671464402629273392273184168803112044562741727132807575248729884948401309483209411123813219934373126286666096043314406676233244820649267338198952702062622371810076744732367385531227703229242284131355911215864136838813684228460127319719941403518504452344033807424405502668704728124026037153444313362125541996662633084705684065531509312818967699975692876199951180574372250726829035627666845780147284858780129739539325717801492169062216353348380400805952212699097209570820527433785392459963286296728303062300970036053400927784083191409653607841183853874770980104251143483363493399718460677330331458584565167667777443364138613845016298428460974894209017944075784657757375213283948836078966260418108564478212972957460938124700267257854623777162105516768759055931223624348986225294412105525636977850291364135624216689034181419834402800526444768423929387598542894865049653661408208462381389642046554777340775241174777373055401434924835048889268984159997953371681716134808409435388366927157779269305094376978707538277454201723870646821699805840263444420753781554638214430626837424156723444130277338784174690898892800680736104602126433075813531962921326437476759756055481521550529122333964020673763619924501636100210467164482331249965767002256035542629175121230879775878254952837147875185961202022589088414863949777129102550731930995667154107267384948966450401561331544214659853700321755682826166188282223116161154258440099956949868479767132775502457864700321331326917713497101466050833792714484374932870347792874097260446498045017117178840094499259015279618049617337292969189636576890427823344529521534342009532218622547939133033735196221224654812633291190966973712602776213147048915520004293422894927983758141233810384863003376981691452088467403440730477912149704514530170584781394221730639405109092937308332995462766250938469905459559317751539310366980268390782523626875258319741321120811289339103944663116694361050119284488035047802951905465759085993297824317382950968075425619405807632456609721730879422421157667280610304692039700594305196716676894126916757909813814571229638130435468455856363261058305965292695328521385612209854122574392121216343602329882501597489262229214936338915745490919757584096143824602037885124500839320295349064909520951499239986556835630917350019227204658027384537797883157690769877252901489478892448722333405145430548194741633458581457365616812475262107458730687301725952710070745447569928004061732851294006586316136957865505038589200354057628318965618924778313362044615500666718012632711517123815589260910704897827443646292254884468480274212837532868041398984829421514199561104829939930482688427043502401338895285880414636849766011120750171227932323530151629004538876396435038539361272353453769066251571338710560198455393278380833720717026515309493006920553549481349920375585708011432683638887805656347289770593473666797048840061188562371412465006111511681422842393165282891943575170456452162430948978034255965289207816707851426804945213603824283893873387194562343092565057967876595224217681894005027121066097292702988505151703282973857207629034723083349303107629706754083709987911849075880444346233729412401729243778168959534092287241076751527295472842261408833646648106632966873621310060414247328746309750764897032979705416943681543007243201079638084171958666951063286212913675122545663338959784661548110279514826116569530932289213949165380635084299358083995684264378448620981991099953057397304961846855191983063788937793965514502606845693003821910494012086903218454479660413172159184151276268156086387134525630500843591619485380334045643629176946906381594222035552921954359964335785723715697583797014120059452383412840710005647202688377211113558999283346570547591337968999914809607135139691263857191014822144604098090802855587921420593382111803833301552953962283230244238643456330434567910122264290468675313605587725970633409507674209189458233132683881342658170071137548424135968623725480786650581566532744446742825020185104296596219923336658064604670890787074513536534035558687232302257732040440476301223775184479565178165368855705438225719335870897773453767161402394228537616569290190994267582570816192976066191556319195369767486526759678858141834805648123022077890509534380359637604918974436862289390690643583446590233404578953901818327168640059782881243106136353921570898450547855008825850402884948547000519233439450025378778950262666433090902519203195756716745707487725247133953532713192335862349766873143402974353497564360428853094840075581998673168844843406407399701855393412771999824716440730735582752193499230498301403496671421686817477440999938252849048169196602829842353770729523990175008497985911083002739962677385591840497796131459829816962941949188653692036343451855248978370924042692533151453226147688395342235836982709431349274500251731887995817969889155566157858051418960825702563596595791858672944225309034367194220327510990170254024118890398914172293172535669339453090741043823795779313793845219632927214375961955109314911041228725521609274379099693350639536557894270098923830785465357171124589551375653532388670499711582677749143536055849567052824901953757525787611538221394522064842779727976895717734419951740591642702176710290518977596036070411438656582796600193979467946925748338972896571349669842318724720516312279193354501320023966668941186580793157182838146197438912459439269833040701772104831868037566416979821340603500919646896824018659929301859725803582149474069770798109611615043400152265187753652993302845554903854964037803458108862705989082062136156894922884400055361919285605389542819053594902918679324396894434615332926405488709640247791357352081962586116374834122273824919622737047487919221523985509949090006182677256356068432019402117218025630089258765130098943003637750786625393503477343345086225955967984586922378854912573536113271309584249692277430793596543947272002028461559008235151454736351346551408059289186862571199316037001172846986684362658826782224694465481918526363454817385085092336579282220454311660712253125552882004081639191922898062058651171404473305408166728735017585674268087169369923197656291764120992158435226324618066758924174302967748545372039449567175018851695654836394708235691542034855043547093397068732554225734058146078175947827213682828897508074608829755978261924592135182888232041001245057938079103752002625019153492233031456982681452729015270110779188276266717391291164006952306468349092506739976540483778217540064393501429830225456913235392210875358569290337432644018854666957017515836265695353186724171135989786471394236764991994830879719653981000214136568054906321699092865194144675749334557317822896671971408271023817282610166133768330024858674026208365179488500592464734178568421426151569619719550865390805433272701162391029616965405830447372657733248068097038048002921408131538009662189432413940157401910489219800286969631540329671942114645013025880842779803210413956377246461054059170442749776243937209300313312296422256403307584301980983906860795463820930032969108716878078558819231991092451889594399755193554447802330318476541918202200422360135416718512332702285519806573332726681846215344909534193105808268334231326915647553806050083105625793392656669772487331987407154297798236621595871936803771253819904318910451760196057475790006178816348689491808300213010463698702661130280424644116501772715824420840415819473085131467029146154593206324992599160032270183743652659538341990169985845227855506943605249838592856999141583246274162918931676389593367581925862585004887220873863114279136379813615007437379708900991846081957929568959483366954617978422222849550009860053631076568983968795401627324514173881721308787870362744996141175692905940847744665345372510898758541446247771057934909634940812036413250234909014984320900771606395308955878097117755040941209642462452321037870846069779214319822011901986382063290663260080061194438692543668479043886591527908783175289602509434031971905071995751542662418515095894936342189839994435345148401483661548981454693584110373768427098450119332306403742868082304240875420000801761981082074069340252161058142698169491467427739681528289516537103690026422072653472102599940212994701750465238588457163303603543806530476859771900923317284939303824602289209768449965202049045127821690130140765170576246768771688273049665468755520361692630650597665426213994139112402466826519488834088886183740833904351607048739039010862217740249323765271301759191543302503365932030430772404251666831941198201833750591538844950725615985673102012741789709509404767543106658291549491578916870244071879932128251645341118280855562473258827711283876953907529887149596772734933688160384370260454648447980440333271199178330354201834170756880095595670540940151291607042589725461915904346156630026441072289431401761661687123436745239906718126730448075301440869237881699469245857357709427109133310234874610339065026157752549756024517236256089552500736399019767742421713972962592592101551381611086204378690912741938663991620615960112951344605766598633996276213069749849387621395381834632086692724455957107789539487335866677400078802001611695512634462956938883984632849632010041413551830984036894032187219269691194798595302194212524381439067769177058372744980097280818447006245000120787067182926673075918735062128517930690155578533273940756544153868539963634526415930401743081077027277324412728357531320063827381218297016671129469466582312673673908167854715094421125699859290837847215861551916741000405385782291669030726299510194152935316000985070044475762731979859493527315880763471197813299202326610115561967955990089891331459828453278357538619650080623363762874194242861629169045293233648523374910143753275095808890789600476008314909927869477190154886838007278805857422447747507179614549081248239129160667989937653440255407341482962466376245594377685450309400390424174261529815132577447134012622682670393522518064069187236483231571343876725696281200472940438562724424192764666848826320605986243145456684975829904513573557559914990117891729839738759549618352486379420587316790130058482323942244019380789141170507713018536803314776332105178562579356780646536166336242408048836155712832270307439930388111947648767811712093352358787609043053490835973407702691153486569906787264931694557376487333732345923614181715766766676693086035819518301803706768807883611113058859081166479686051770208044338072377548939969653918208620283685781713422615955203809197449577276404425040992649621027522147337357209974823206799092670092195459648720467088215285591251781923074882114479270497060248213209937813918721893381684386112246254055190546009674263821826396970035319958378303719411772499611219362012568464180149304867101373199963292018066072748994483034442045387926023191501956462748260526127435838595006359527787091625780947269317263598427668589016330330624280191221846043623768556586552828687870611474190873247955290949404396817361080367333900396930286474041597348425068939001939508595594174383401893716576351998465330939581306027963041411582459598470992239673068324790110494487261708713612587170458320367302643334779863364094989416249415688837304309612482151205882783538325412120357334189868848374620915810624287736191060131398225315608937545327238149225332779951068191977738212496221793771874528536549448372683378996124911768811566079753402223185592965583561793260019229650963070804896549331450842803331432626406819374998084500264743515969664142517012190682761977940103535217833072047925644666803403381519081122990925634966942835516903632804725546513706728316047532154497822451189346364539814229400203102892298611412919691770875212968300083894085955427525887056169183635755735309821050469123124763783339251403460911545969707210208902058663019401323024608744039443519792837752908693267357908552131330492730381613425915802429393357868673514866090179516353504724318822525144301374155438449833981349976479560397341082181690694785266985576211445954964520902647679958125224308393571593012526781347480106456960867172966541503457601980809921149054951234987853911453542606294086345585623616471554578226811649526865144458700898869200519414503161735930637664356139868282360659541185600305094071277674887912043793405560499256449454965271322445998022509850812891323576878097458331573585928094384179706049562956406103182254920997502266341424840823749163691610409053885372658570921301764734137293117697951722640181557997740380296804771809338144001819812142070602931490333799610173556617917720718533421183709028491030515911881108025290305686990586216900700761293128795842650073036372107002603760176883746285406559897227826132267388475393005328913114152195181188483972748149586628336452907844023870019145244689141007539437230621584437925126810629294201464914555208222477604295538428373109589325591037411170493260440110668224186881195283810747237238466063936673835156767553950889263466463038620172885930847895730308958794787737794804373081443537475271450861287333461830363200638354006519198848891843970196173694795742631662462406837982101398379530440838872491617859803105552661502334209880423241844873233550798262245607725024177416441253411020253431210662362085187509870848881807799221060745177105642128244434912603754693639994124288134515052137220241960310827590832644141036697797500563696507178629638674319739695208178945555619467041686810428323775634379483986496689512309820490646116071540447054729308469555613098348853032159576413548032008145289153709358287952124618959193810673951850115228566792105187676904918908277150959958989888965160394518992812346201830951841322852192161578497549215622092842301854899950023410106087246101857477516916586258254050501697110496980862301318432302485842024175653735275336938955115199196188534195166917200034463682927986435852682107117604991376905619488164381896598273669411860917843642559501796427246356218423515358407256394412865558712801960624769268752316137788210868162708765059301999903740988991763106418792675142183750939276590317575963334914700941710199759117942889249028258767914830467275630888372846988132121331144461166450788300974057981912179313631408635886358473588206686879779357300785398276070161145194827589136141038251005404371999328323286445626940215909357522769855967737363681284904554784446669297709698083561762497992674023456963304359883032058925513604439616535630797484916919700291996134110633152877461580562001916367726735756482172990468697658494404687868462764163212111076437430039976321276090985988380283039026762816813022525765775707022853636591941776744659174077251832671582980501780083599282659516391615201558335740533648074017209934182552178505027948804672494892459267463395366568106937220492426549984898748078806030300145021306010085843070724096620557028446643940180114095967038073246351810088462062413143827121531510757048595905153985720706987471207267733617271982554298772782422338402617584831781032212476547536116739268182865828378824035431240571922215962829040210182889993185795920995167347807114725245634937108555511111739487957145392804849625554027813580774546297718786853745258035166845502787525250998002468991352483543871592383990648901165663820991901624007444782221186323665795911700762095225841391527928153425981803213781786506429211542231421125099767372224613559473562426925581980962773072584455577144479633153068949038113945134687711127356708695011797001283225435623295286369557199423001308089599389621667119788392681302507584550317328413048389925969030416171198220543516223831494691001386741241799396989592684815541916795073546462647443361668782422066496454299720884202876390620180138751943445951872631768909191784157617074281950217029611570236577122479332927333496362125996722552072996192369018423315145146048361229908416163792139137119322225574456809210215969844131380905883237532537648120424701308652889515806742992705986168530821195970600467940395333751638719772004305329692416011066618894121876030672509170988657639276999471659323827821351646117155164167809320334419276730092808973176622362891579705472131598184559311115336872339703740522312003826324015084126912358172830194917519922431565697227934024522828410083809312847463178125454868213658154893720771616634361014758018226072293301146453003536141442860914707599178326933091164924544170598935985058571131479430204331016322354570285297945746138619422681095621515726175739448867205899531878584099436534516722040642214996505302887091538516039425977067059630730633981381745634383198193534098004645720986394214762024030198346367490590389701099002379831395705259120331136637144929576650351283692036136414032045128641208898164328411898310921106402685387254040503493335144697775760336824293226051312052200379888277129647827049546942917852005834009623994434264160889689503946481852632736216636269724620640990463825133220140784175100597108560343849111686413767589920418115635653885549381244985738268583508957124082707095520505467804572058206942768437779733788474244380864540416706295729785136084176710805959533039752444705299686528298211255514154785280537989182260724481493300089418924970176255108210260852115066508129891524878083379030892399655255867565832941965073662879323205997748519252918650078769288804569353235056902640277355335716937637359451803069923693099051025293265938961325492509151752350825288283671327902035076428870319651580657080686137883154344400499081385801816185805036456573449390774487833931298230240508803933110307769481958140470088044678176217733995669627940348942361143191580031800721772058833388309014967575501105134951503311974491254581306150792604014868393539629218025909384249849804098748795624339370875688799272323320678557434812306008568772522141406905243943202862970472555654946676446405723978417156280262775762474991944706762804764074805552674720476445222924402722409106986588330226837541703141667948414772756761476420314156474971310555988949080038224519379420578696698559929765901227290244005111810156945369097483907319542092693509169235283368067271778463091478620149453183720600137573465240624516655519146110089006110940435195978866069535297062660953983122141073273380815583434650681941456358604183010316471276275420028614969678759053018224891312020973111955859211265851457033236753766096492821124038902421603719318496572385832786000261679018338548111204504504441792751867132950394451668078966308767861277694868782002336651536426050544645786368985671513691489809160497391011948724940829650853932657598681878027649472474809846916719705784251729631011076156091616911493257057887333971059857390447188624221781320326442975128558153463697731354071478612863503577238761626409135109174734693984486262116396548481598824903184059956913038304803835592582092593790746986958920409591447591846073478811954409157507449708455481999251013544527566879006264147803715104970238616324164430880558135434004659017156215673451589972106776311927893025370556262365451865626535440621012774419589738655096457848342653270574997295468629983407278062833467568225822389731544728362093894236262770960357987258102517219977518887083742768637449486600523933781347344549477199391829414297806142902438348234491660420115981582841250841748529208393714284639648888284052885393135882517471544202687613934697550621368872110012847815214021754711661651787943659480171910380385081073710092911653191632618343791170148140431441810575360738479119700961350920353526044763945436541347011536335637175015567646467380871507350895822749524092917288947891865593880389503087214330063097682981000022031203173591506855253495702261255224235665284019141519125750224535504032969692998272632350647801310938133297964761067292018266884305745228766910915345071781299492021316075419955580043969808357959657280166105465759229821592104242403605340061330525823034844929383664881809034389723133496302756448450754709730653120514697889055773046130904019079999876156794825369819806076633735608921454344821335748760796328494701243252735547227515168475125623960494544435315458154123669629885720674193868409557751443354988609784449972539122633846084696255241253468779663042584572972930461534322324299012315492751970524630385802523198843495182350645307965259564297901541720454928887942153314334213333847168057495321082534694707193325133773049144790535847092553679806355452092807631807855023409609039848948247445597438625898515898147215429043144041478333659207760108351102631845087387119320061383549691087193209457219151115981525180623461185261139465909097393750538815549607383420947735324564929330317766881230618839502020374157329186962623774032803146150225919896252025223546691075684969405772249816121662119170859641307568227566595551891501839119456532043811016297835500311879699732242134390229923122239302873234207321889155980813648742717586416050778966963432741634939807718092659598529408512816086728230708132643884349694494045506331735306995040294290537692096891824514991517580782660030279108025714612570600970210927369267976948042102070285693514440113945180117558598602457181032035615405023405666529256206049919333060387984046293686138471657845730495311726346868333872370881454158986855104696230563994904658579300791566531273658174591478450738237395415463511200589739583618842623466948525176303399095823697530346148439923232214848457675949077869414195473568853611743650718517306832135004211049776020303122432643466852869151438130940867407998965667089932969054979539117275093246307243812165061456518183624140940254896437917935231843655876839908810289789385538164294112089946988669445705190339823603316801304086485558192157461838318635969921434923203182877985832007630489177660739632501923282794791929796998689373721394091196367158011220612340759778704902423489623457146883287567050239720040364740974438950500651118717007275435529725875407571310828216847486840649966296600559760452558738328053196535909844092546452208585279435654759329964387337122768686559385999333881173410400396255774702902007621576871416259284733296212094839620974861314377581345143923298979834679323813793229881681307383233429769386382340463174075998670384342393883284026684092295537395558495000473818577893180202736583855648365588730909977025400289346374138834271864950695018389765005041026489669344650402028520455722749819866937719217350145549242004535820742258627771873746394431552537385927061965231311790191716134713775847546485305449288428675114050936935564107043664234444856185435155639882062310108946253694059515620792119012658048483677524796294363078256991651132220355569257911906949809112552655954996112523312377167274762176194854095012234926042070673801732158850287092134883005123276163633703777704768649132732423659331080463147545675419695745573938763300848680825379120958566480075912056857851434367550494473039981072439004371739076684138162868702793583986062616079099209486114375771255277960320077818289942123830339941301954442567648594384128519833744920734108202896158544523969392517728836163206145724944079460004236619405966659206418287125365554870059308445744515939240499859405579713009378004314569046181307788726473053619142737960003107955330206225373593659342058417237315815618323612025861281159078919338915140933636141462875228458256241971352949387844885546836674638223491001119781012027734455123762283956620500141372289000613549304640812831983732206592238101777342016755834012108527013574492876634914885614856100591840000573918246803117992364036706463882063438496343799598824530217500171980981783898835083697118878427243384515401111236498952093423200908275199338530805241591619426639480828139984756353882532956790126035856396352450192731503683178090099297331084071302612804026628325745191152781433329496759043865333958149699248585909715534831900580936251573206370299267574642058994892393995155406382290162343914022666216577780731223627203057947974388158124375996568571112635884835339545352196287907152502953481018016920894171729321466141907201100961708000121330660326650715890459338873713593600926870961441990610866801319573081342104585725912928667627694256544821587919086347809109162711344811938585304113302432140809752786883688698039506770337097125634094387798209067019358134203697145868594684283043446714623628059634520806689454442321323387487987076362188727302170681614677363043811274602396460794112231085224890058198802878284551587547182627798412974798180049566772058885240618911885994827248559362264702834074695884842803692854024849206791403726943078866042269844897953683016213386731304577640347160434551971337784071656503138505466137106273671897554867458996128439480163844422176802038963362145461114245763863831773577871631508778695612787641766022122495178056895630133339376622487771033785955123167055952486500964247756686667591878991053305321195476235788663853821862881212111099053621521015996353185924320248265424253464906300459598516998196225727780690614430687020078576985758080177201267184908511932950392723016316955122550117439614172413002433140750594859785936760045277922388390096879526508231144393249757275853233289979123211696632391587321596873739133826521117226276618924352694721377413998794510030819998806045872722771366885561605357543767331136753426624063840539431157287066997990578522905683290505862821140419680001617275081736148340768448884033457758435237223838550071620599200347161841543989378240101661009849884386612924391848582813815504121135062256685894481914646343807975860607866714580841411034731136857368370443348925964951456745848319600456592740943632533184918438832282201092612827376270827811233780896353295472693833022414285063836218590330612350021188910754945291917735889356064762290742280217814814103603568326861631781145076595321599804628088681792971145989268089042542054723534431281114354200840232704269134116220843948461611026366979494236511820510559983100787371961469275161123579110681044549678020957705539524060385370107827092694214938181187025063668235129774859085424662644213254377685522016934144422904616955764371722138173021540906328916259747273022102767117332537348630902150488532939355042773465560575608786056842890722748350838003522676026443663289215760553794276782206639218966125834588272733767250295205910978681725742501907718702201360706109058196977312867264949314626116493893804517615169355311511477062299173261971638997386072073249169003628895481358641342618000616745580281297207460128495935239941941364789011950180311979042229424959804453790772121254902282795925740545697663900691590743316553588365305741242135925744596185780528095700420657121642159276273920527510073355639771703469173712540591769947911858304970192615656275748401561065111621519208768433324101658558296661804043981364702998480771206224268662439981323302514630723757339372765731703473528864890247823383367795112708959307738868146984007795452735951525202961503975037116386311733593077096997078187344901019263770403339412465981930999601867405016797709724378266640042604738989329041581228832751866604451811249806584590096766953899364881571239102990869117289718563164259032142481255497818013790009687797944618066983740211277329109510532720737667501955066254803957377498055209440774485083004687207277069157735378773215478117512118409093939300029467959355272623266206766920542392528338749424438250202767632393758577492876470399321244503840206677404332697320419820102778949992057758551466796239802769004102876127867442360764894486490130130041932769658985723801390960134957079784348252625101792360920103871475353900151924497254189793048726570856691699033386237749559359448584561054587530009563871216526745886008285883878962054987671008442902154002147685822662501114608810705323334858382937317678787923720088683137986564292969227025431717020646767945859515217120430577652897094378978600842129116128515677450204396316961956245075451886448214472956896149932359328573837801163463464293399953968701427621100042950934827170545707037140794318515534990083270873732748270775142850750085335934933817676526637805288834843297709815334936153833348866500743599402321428412735547335764767619264915545251276276839604107329607492655879513505500685571657528777862151997701473043005020420569050036992583525033971718184901990670619414920562414455264328988982653920101327001244042736045379418020161468398746790209225474736172889084476578242615450291617714560897146022628509139552549209951440256714175516300518101657800443040173098572831605222408588405349939304874871359009468459463683151910455524134596284857132545445291499934697011065953378960804606539805313331297580158337273145626911545104918197215990994198058960735342072296617714324267517727936587518221612760102672755276041981148246046457705767777697945853951725057381212440694033553946733078517983298417749013238754053103317356688899559186172475163217202649788015265970848785789118722291275465754687395124492193877394018676345752756350558046691342238943357270765267676720188747970073456575372820823820424084188691275431696296615289480512765729605232306274270480508056770968072906972443690665249511916612627482158444584707553937530457197314079969039900143902785110366899087882109367178061395901161340102100604115417400264815101044176879338719739727484596574326967419832491011036848937106865983833238500925723403907872012249070982651302632103362023246485223688225602769295959543286782720774806233422368465360899198394909227927499214585973800123998341417067374209278873243042977325533861007805782752539450205925495271695239495063979263197285797851170767753406460236366382722589172967841324035678800997049806102033321612708283158367378662630345956151433740412243217500957524122912501649010000483222478546604130098474232329384062771237400425724541156306044297489327426238262993143808828127891234580493006748887839097605415129595083892237023109601710727405259329840754239825501115781443519103258033826793760953051890529696872118860925580751758503014429007608446298518823017899342753845423309459037498734008837021025724557612768278882046266234875910877510144602154442245864126582575603430612793668845498050371376889671737213064619256194946760457487057659329566175667718231077558034230492365409570348212058365286775194954057703224882973105681893584638377164894978949926961566938054471757897232241906121146723354918706070325236332432925793226550133635529882979571871432193971162517509919998822173373437061428695908515699904253401796466936835726046976832471551516800284976121034030079700240322111322406839520341736829737993320174679521201373065945027079684563057140191836386665435144577471675475428499021658514831024282734504687211284548199761581191353415651668362027458608644934656293710060000440884749688863555823793905238466286140165471462340775571218280898524737922389134328565247069835366941795099108421600393760949069171639246763320096007723248364101260810896295650421438785939399994600008018440901622519758149581364242851797664524436978215252948387750120104524487169931934612797288111981662625314885874255576683403924463611379787446539984582206590100745031837401323830402586108925417467836764080375405621645212562730643408339841561036378209171030413471731887732189017819951595278166815003804255121370049243032145545846862090778886825028141441571781308792357814826399939494059410255008890165477740551166904514139617809419714513645329137761194886586191697854947348980019298332141999768043197458295574456207704841323677100050198501426551080880375016896341397746115833706466205039744596745185407220989884629293890646034820086957251952463386279341741431569500939519152944716968468188311902131617223726179143846461611866827947047064099776205200848187878833297040835790268606366126013833252048562363228333488693258790094304821920550685962434661872095694896631298272196108265141908361632218134859833986591021906542405547346859057325820514730401082847443734333507131949384878906827871506731975879204033698976122892919278620241501945511585749068955214201826825258130653051994771210944759658653806026649841838024519693959846386983586786579191545806449221438307857357503052908304368526531868444393703068976921854243785568771226594124758770341910887566022888466145502610305584038142343102437235131674988876491515731857885417289781047586945844986128437184024534429630055266092245859922996631061888584211038488080871473577359174061838740753253870293237385544108652117465976982992855675628727571173414471717608934440266788352008017425847607047589129571541013018390576756486508687366668276712941516401994837692602811833416650409384482552884488005185973595085786368580956441408541254464236655424561508802993119304359254607924917707317877307478710505598559455793167480794241483767659356052446122008484655200804431796510249960799102966338275038718236678079685055895607049094917775780467087031514111970552959597988121798681629360614994054626269623733816921130606716747067548261370357869406845761540455484694617845386965298995094079434039038313598219856494935948681362786483917704852659253371571727217286524534182737643252874708512472127565451181661779696062154230164761255032809442128037780765755743916692879686722767000318127018151432977425230188827116589129451174695821268350728068325234607938627095926781185043221421148709279260596515989825163120252658893652470238005601012632498951106830273960024183348958341573690295401907334534232871828480686928302018226538575625169520717336997590707099410571991380974531483851103765367997338615644319027289743486926384928889250036509683450786192040531981611174824783469363594340630723420126234060379815560570742162135317073911876643103583476219340631883255865855908259748503265799487553849417396002218443746657241249053861455928664059060100381713586065160410390840611270066097442578011980551369749057164078658464684167198758141863717325910703882476184257692478437170190846397746345866342055707201744653613709809008372468714755567258258720823819469390930017611540363566574438231603739854377935644807804013870952030534398154321762747278047206564729795149862756601265086295258421245735922858924788790112888645261282760016817477656031618611589024807772968656040909261619196132418083858820808704638931654171930781697797051453234185916654886906781421231598270520058034388755130040249405059727479541406604954600988749113125020177156249382467919729703113114092785825763648550312538245737360112412193532093931125687227633517351949609887290443965391941749005394232581257073721047608544860804048981957065267231689343987623227742013922845555917234014451234737252714646858666024433916930403222505912373463675941634798478994307660158256531433576157776917091518503914088960453098773376467341339703219972039079823635360048769214773495595925456583164468813429457148570012192279444268699256553186326201440628690609228262932850340892916780833522971728839311440109746539525960154956323632591442785395936897769373972522245768596554103817402807252300361613580562344900101784043422547907236653271408060396513662009477177302188347290835065422219290295638843006569490656396558552432335050634462345035997807622355921980415186193599202687053255850398339260914730983298416596026057636943786948253307337051789316512420757337582337695150091796226184981529534097490118454213944397976097485291999488684397598050116100201218598535630501139368746603987565645426013689622972587655698011221554873428713972677387002191625047685028341084041162735435728744150713296859732461880639540945887374833013238795939243740490985127103885376311897180412288887667102004514777375632108399034940187718556253331759487266746839025129832286430338052886120172132622230576452154774608474704013198137441916805784208420013232704584209920084981939749032170994588202948541306828069599418185802890474679863257393282056869423137043481537553564520719871335878839249566646866362113488771528186501837056481768675162436519137999412497933664749177040390621077965733645221332540538517042924007071731662304649218735540352416086550913593337838521705530334233696543158442123077156977997042379649173417891175910379226502476270333598178372680118070338215611287209429548547222475221384087437375528041330342199948308397773672464433189484115514624062207070546813607181388592628888095485824055353691195903221502272814458090290344002423734076817721423872840164115176978927976271056415898301068380095986096184485536280161681673781680346793336192552909621609800034685593786805201590834207347683530444341663942699940100879797797997180657480536868663064855368550864336791450297606643362926620340710621695559451680432734744763641264537645688046166919652832577996521927799781971944974241162936468939205378444580237560251685013285422226807090266205913292133382838449703599828052553153914666037712164710095320877218639381170128452462525340695329639070183226575524592554141537571447626705257532026389946437690698869552139655690355209721554115378294484921572722956140711750886698837851764493340221756210438065105039851130686214471938791591783524001934642746954625441407293794266414524974282187845945370921830686285789326860089013562183510604746974304697944589224772363805918104805029544139254524538650317586421452323358643830913581763113308713172355900123174580542132349989564790471597039034048540323989035120307834404440546562939675174138022424830421753062598911071546537353266434077840521191287204207786486784309815383692703279786583607115081558548849646840177309387242231541993217019013732008461167797848001897955067629494422533437943123765781559608990513158010664576879820984718829010958698638486304587960405167375540391171949062409612719629389602042533557427316106672061476078135937038426890848997020314817422238025834165110875428634267382262260844662393912300450248719882648032729459780228044334279585552924500596709111162059411428288474635965229239375980732867192935114229286784179358446256498891599887240829603483513644315058439498220753412024125603522545960250165351661307030684166351964341411350777349049356165754380696435815371227924544144340832870275452856455443121669003758966421300973440345236225708499077623498258238207166914181227744662121800477947719389652424695359879860144194331010147989334440682956993506238739768082506560589540826210096057712944260158395109744734556846844629068547609809434759108586756571076147582134348479676764321320585585927112042277866665686188562054753362392163183324486811480736908766748974383161368692491888427361168764435048892453470186858406134672281274025515835038811049085475271132047739724334691704727306716089068015218008554780217789612850820003564777137141834974030923862874412876496514212415712618162769273117795849919816396260593775014866841924783153112953708677993239795010023467793169329681699424359118026993931878817021769497926465648943662837205932733756006155922749300706021369802273304181848291805507406638065080834278719875192926075873014872396830352877776601921569960395228534785229205702838275309178510121643530350727281050131297560745244183992974791939630736250008269602297443511039592813034869432214646838310692829789580858026545645164286800868357937189317012867999970307611383063562227500752041338439520371802100579178256329100793161898611952164423595339487030284645955809084466168507993170958972260775766773073719433674267735878415145504928158426712006639576380759238869025478317605296719014403644493508983212372933826296525638409597971655135896208030323225876276368200933905368184666248282083570842552460308443429820511956053999864431408060079708853991302189226723125112682001861091529245348086643975259556597160445681612922512906507997771008159134198431243457392374729154374001962632818697730390298327093543362756079895112787703405449916929450993616729644348363515953684542341342806576396112181112489252388130526424817430311467921041813319234378929683954628058358759178605510137820668223941837108166162096241897002827617858813336017923944652862232953735704453418812426292616292903056311651763018981040371990770298203017966472168246468286880182461567074786765296595797556485698752923335042061663771765297199024966782002924024059824592576170344973906454348441030858640284580217717974701802553485461605361538401306379515352088887701623303693073328736459819746430136459315152316045977290319954345683145235618062918559195527148968472655797963548145447730905287736418255869129976981174959689802035389385477129887714404472788221591957929558555557565738040690765772089462008181702891294647677322419039995005726094292365722371700699425884231522881174469227891840307960347122624005535534897676841577512509770189574988512784345111744424522019821595072271217646707088526457868771582449939127612458792373822902513265358932599923108276809616436138868353359969344708980745494292070625554602906798120087782528910716538100875802298206768215394971759643060915955883524246444633335485721213464309730355738611657389704886633588317791663935624098376079345749847176210326444796888937764978328252110378442327812786139294161579757446011898360788026500089218532484807732018921792970580928809843048150870859869253356564353553124994989798210098467602878207462192294496754138150680290464927681503463389245972395045957016541555354583433195511339983078264261186892987820360892449978077746456744981884311932105654114254707421304213785675514618970765033852116845229271580100088055881475926139363732638322152837731343030619949676262717125427377015236525478363654006501686500816503197547031765610575327448429911702449883562790540959231558750531548025458875652147776088979415487920948214784859934358206958578266874418646253742909043201604494627214505706722357704972927476447488868734835673281007329129126789336469692802965034865690759148515590461359390195017822276392084010590220117607361653479191364092216874213632714957731623008715836964184137175343901488058417033974594763951104639305578292840182953049571142446773815505453944730158457174815478190889694053347133706396507576312845789167709414876690424706058413595801595557541682849452305342469601890748484243345931240466863914272241846885612467339877498900581222441083473401874785771521746488585418456287886424896994932647998512945426650251590454712396547115308004635862990786814892594106550468245778281983361345535313120541610571831826766014304999466643661190102764305059791773803765596363310374729494838511060234437819139353447262011335988804292331818972713197522274889713562483428753539816536849540089478160464208126554459740610747003647977670514029278202494323312902896438039631787913116975504267771376962196056548585720773219280600116036840917910480137694515187696761793641388299710029325996365993048472465881232943569078030174600211677150069523866000944189552876363576117633922618559861293076020114726950627522671168877636593978537766205653241364967384010745433535399726696251667394138595475767428680418625034570553539361966145174910794989590721929507372641663356967440824846565727767167188575127536180416841958430496888209380634056438715580335947513529065123875310454878129940480241285773883127554568292056631142355527332216450260689706952490035483299885469450548596921080032521241342708230266851927630387337774688156874159895736600713749679567998397081907584566240429561221741107659979159500190769131000831838270398624536180699326270378748258866193563419673921991550540903119679706300110489923376261439158790066508442815726147107926311453993699669769467722579013892058637518407758310061264443134561074925039052154538332701427707980256673173459343673806415992798620520704594507806798275790223500956842594481394950949993958139713542026285016734745991279977451628362281417187782260397441513257037460310516999111969708306307497973565713109877625182204370164673099575237305981237057153314570117915989262540127853769057036660472669982476268836698149638993408495806675558568136155748101348272941860949047717917475847985483720570933172333998220210451046328808561784192177211498889981990955813131948973461203817121357361852543044361959687165971477826325734114386661606965532411793080970520275341744397689778909121679788894219209493926037256622749570633988620850283640349560799982832627091572581595243219481259304819168351629302185503614196881360875037607438867640469953683189018273635855243552572279358889219207178889488439284318438953829378390468457695497489846863402945621565472976202232428549098328714300686372758094815009180345694865456874532370677613003133361065043834157869912878981717284555623988642308522351380563481538547162399295651536978385953432936234645977229904471581898400610638973328799855704788242864810257162326413911526690103047895388968560701316286470883775031797879518350544897329048607977251504107372103541915202274568749813827328578180247995763272648318199586571958970537450348536689915672101476290101254444470300259133629968313514548056842468684204599353107052566562685686633645890348329381355346830423116958103283581748304144033510831943602093416213026023535187451272918548439683311669335899452256990554987250502748961872937090256083900717086448662704835797925605606673505161904468445557209215008329822121005333271823383175613760127874309843070209320520832374835610628954207173821915669998461255374826401265772629604513682044177407471168298217407693018575703252990764590449224229579245894561174342847006806676800948373257959706047272972378455592485212322232209391700615631199996797150483213641994047258262665791222445200137701212744577484549189672900779761781918188493094319367916643706472417346600587246015103520278267367599966218738775937191313938984436557876823307165059377923402325589680331101944810452387870154822070282264466436274696834189033567822191512077529942809987850429094237316617087564153109293350682478549819690297204812429519861871705270184148715397833427280256039394049098190609324063675113730608769215615574691252474144241864032044978495760460239024443696399914474964841406991056793392065949825432678391399056162606736993469987635773836745840588231419646410770473631537330603489689238334122302797644648429853720000329735230729074240443588750790312607055739185337948727945153534078072916047721032511589149012079852399386338929860954868351297620579217272188634359118052719879519345501549436744171160560114491429782732184333698495501411640992924132768644241452073806209814078321297427540435617981769284343423028970243879170662442448200604087247776000974716638995404398540511384474703247528725016471399300869036867072575020306031440597862358726327549423687813522534188902141406183020157082536975160874865144390265210207397166736202476934055139573259207040020631175734374715879763736469424499513512746869657450389503517810268763541028272276202708002800690148844044635565276805193623656629610816709856744553523853542223954144855650502989410608098949060058788114636115468911287742292519095558604703158310446882474441744516808823927656254810674857380499467256651202410310734956683113168177348841688181674184579047311537060163601671023047836486754283808259186473155778748296794810831283602339601031123184879463391790624380539903283313360889387779513668774749326871916504781515640151858293892852716255269866554832938515029336619698759453489375704502441586952770227101948394220932737499541832741316402905309676439483194773657838639257301023188083016629085304877513809197537262451220634656342042648526099283896335665349214961662855045379169408210064072854783956534439143971674672573507439214928467481910281542206396144247028458640391653281591733501803073446549919310030271229694305796882164895305136556706901173492257469984239017631511312844196476184819312825619323848718092598267411781999230528243970195523011328212076831858159322656226755637872689191542958695802798480946864357069377340197989291960595032110261534198445383234654564985176162851312265456563306086191557772797530432786732324953846131558810570081544648734154423835580516862619569902701773008497893703075873720457659913318037159561644937861538828432429137278347071475053258565376190715581331377765527755526827586785596852978110491919166009747400207293299870111155502644300239181311311934628813969334335896639255711182059885905209299049959568135277544318480143622718030538604953642666529157119628810160408765050049266651919685441418934602729584877681525305300909205128427163037690220497269115289825763117019387019547569265042291389150766766955024181412402419396580405177546172105232658230660660408602224199114227565228851381841400595697862332069712770813079346867275821014758890255098080970357016772930614476499819398987340821415934876439931748128555169702021051620432443350771525999070017148342891977957714630941648963615376869605298285157668235822461762182552746272023872583653621051006546281265321624170688899148390738720341907186245283226351050396980486280142354879528579914121468124773694089981123045858506869417861130185122017365626015888190513726590342544201848324892537392131570765151284177762473201610910689274063480382569809282247471678826237727339882353134884590160883145050329918426228701560106684071507611205410450769345821878825579086425913017788857937396264588905946380613221897391019959021399251197781491483989123163739394505428963845759621024660759977226167868042566050231310073759329455666936657561621548431145417053336628229447068928935867755761920411287338260353750803305155891511717950856084372597901767758586252125822184930394778268597592322733968357888206482569547379794349591240004319666186243234956502850508453613553304491819103882431928050317261807607062106044344335355489605774246500699466858691092634978815077980549818331171209637376082359740786184750973715635645927881997669327144071366555994002653071693339352245744357776828611985480439951058349054545564892302064108450270462875214319498621896141747027333148354644492132300236775551685898759682024025146021045438422745299603173128498550280422352886763632264200737489809143100307900946672300453883530485638124797082422090928115165204355692695928810617720534209953384229413394671658629128100545645237037701257631964210143777652340187152561090547538371573752242919240501423546606379784951197478896357669151480347042542869851283562276793247905125840417530002235626353129153504911021108481212733393604592445030837379535475027562922971030933554628588080107774811789337168010681154227975751078631370194420131051370063875752508794956021852707196875625816835355124564747307557086873807474862446920007661261835208990445913918057333564269603887984507435035276086801621240186173123807079939828291612566195920843784101120270065932362705235145480411759410347419376286541581602606689219737347339001894367849581341801714291357046704329376169878331471220364297759335207723075775146373920504672080335165074509035410992863996638732972163583079861752048644089401530837256704831369819037318415897992744162727166281261234648685017283208044757551387533728948483869880594364113216096695963799087897219794201989031243920860303800820927577336525956145051576006025992666275595003886935664574152272066380698319653190798343646977096753292710411747951686252437754738988891132767641950708420093232167634164571158762913159908696112285885692472519202940927785698559083323674482034772860195388455867375516582432840601858311214991617242321833671319288589116533146241718844597172773816912297816951319549986405342227078758196004591626646372228278414072745087032291179314952551304185790419770444610744985517217166549983492233756258849943107498577731070253387334090452647074125415137250099913631091520466191664212712914306004321661600657644957616144365668830289184529252188763855214708885444966800133337179330293195912320868660883613384423820263828241904199291080856530034940294365130322396336013560850061726652200634822135891629755024857814787509887177099787119566624894511873112277132946001354018710524193611901316490551168678066809599229534994483774480815420896659048903457554976650074637995266460686027131447914528073971614453885340692461720637025649516928041866376233630917989436796388371942468694269191409976111700992735753654578013332490986638073032891482563968847409686224165405738160748492279649962051006872972401355819570337263867679190118230832463704511554826668298167642875183417200997930418029194508308029761322637298566306926692414345736606352285510811819767233500513669297946201740493050836885789637860862836931054274949759531009487924743336852332356662104732801861832826599798912020480701643572107112422206579457314825325811675439378989091174409471009216770326852009798606376659843669372482599133199905810866318342383008842364605546745101805139240046098551130609315755392839784064053200995217026583338132052925815279794337091944049450976068647975111367499020982590220622250386147442675542142864188402876514349668804604901559363632432611670084801207611294711274166349574116477995072710013063246876618006506537657511506900744374145864125743958941529287081469001872629111935296696909733928762415309418292088248786885944294825383694402852718024406725194628194948228487661747988810275331310159094950609932687028985480594379645670548863658301976054622300356254071870282183727702496449831670131125793197800725066240139009723032794341341711365339771272068017111048150370095295804388392038238131650553139123614581994700875855770777185069980182615683794436972624224950900935961019025334914182450476689316726946130773415862913705718683861468136390035725835189957312864526446205918700324731860788891072291896281665614687972868945623109657089726877265333740969962500969758554060298311613000821765760618745126873946866400582631817130250556901609977879645106831705218300808251542457368312672861987027059523710548792394962561792171498062397034192119122394557367606316504312996909414838096038694201154396998366907472211990264061973603107079517084321734176882437604064975400978350324945983122807781443671726800428046888338202074674474941397317468040385953068502420689958560739381970597658994647142023180995801122176391032690830576433037947810327768095685338116992278077235040874364220965882648657130398226981409626848676825068501179124922134600336910782496383559013134588112151136090346030729965652140208945296194111190362338596492545726346728787817027520433284432696236970941081057709696588217694631798856926675496281808062741569298918740213063885031027926573017906191835158948560181473701771497925729019432407816060799640494140225355735733616492362415668207652328658325732776844566074021462738539220853132331527765336591908716175778877758289298321573625086719986620380172725114916880250661786184007394799963788188488868347521819564949854121324291623260260985178426191161748335245640353869427212833626888614686003601987082302508349949045161849193612014844769371073693316735904208101501020172906587874299248289977406032709378818084348147506027004419050579367563470758951758322499640598988790773197308353967881041960811296681680268571947169111525467777914705487638709417871037947192363747712641506364965741001448872345149294537863922183655376058996636856595258877710149218133215074572326387340558772060929449235006282540638021512601320693395418024185254423527747903084960072554809997410401971255963141243359553015669073922232170612482437887795754510174467991167342322274883292917769603968140217595670760387603707159856425734594394813912514601593498793354167024695554323238348625268611136554742704502160726211756247775106385515760565263769852934367090847898978156669104714425534979648858085274775544155584170475782041774890330073056783267655283857349064986825880868910019027232782561854341757378009577294297535165274206817709734140546703350448294765015060300788934016117944618225831181925033864351795877597671323199928431532661217397653658973672669905748368559950011954149282711925854709001296611514471735748614131985285801063995664640501349394491096915998298427791578692181525791537057002196318724524141492694583758422699928041997545842703026482067723997764861229128436819139484551539795281326050219681467479186477591084583479446534494164954067430770909302694750988098283048954598049092491900154093149013912820951952772317572099356836490538019594985620845386206171645085363627819144831967766895155006420894250654635586607269776227591084436548155319729162436011308952824750729203961453633403840049363572432729695902643340117128284519618291531336312117346515267980628360497058980355424564610125786892659764083302483044822353692890997756574454118268724704184521851192867083410773705338420465534184651697385362042199325914709553719931604544035295403645582513669963562753883415197479697253069777476365946189154420538488122140891201387101378155848822482935347755396117746067026879022892505808975592867043826610021770147583225876951954699208109686204749465834597397718733752699643468768435033881277529822518823751382091019797372480585618115555504117777049259361890379619038217577858458100671549855022342313138730893703688959990076138512446295248088726973051351961178885041039346730193539816605314649930016808683855697697034124762800010244015609809138431619713169745103084046755981548240294915568963815343778109031879396825297663742883100159378770107737701251796797180907668633271853608850429174628753506932483964553767875952963560325198405035585444037420432943251779290696267895831237017726977260698432716079176223153712450717239893575110699120211935441563183970408128218517120173174138577092503848111131173829709269347533777982743426302734581290059639987256188810513897052296358186362123987132139749274546313089266738700210124110489736852682832677657611952319060386566990329823442400713393328046249358812197596562180646505892541954750085604241882372451297994627322411971014269777210035879699589980317795494566618715639501080469996619608215825251815213602507125021287833221592711021187042948106224396145696433244896846828679494513709508597517121663992003361911321435619565895396128887449298085844295973422329804734316033766298257296508459937088169833946700885287042302320780259668383323872395255352713968716506512229463412898186059494654609908342578896888781573507940838208482945667724677290889129516457740837070321787813559919299487161928489872645462602656548383297344856175541944234562653442693995180105664716879726592338641721761969427849937787753756420413366168262357570139094734488503191448150566091902970006639392146536873573938692804570568110683588172703707880116621012586566686776576302285048887806889874828042216090256805413806128200339935370492315810456454213226195541851732640330220969110543715313668736226195007161017858658658360304915217246469460836351116397738999680434395190143501441603096341941881546773089095255188164165237989813565451189243202800753218810339674117028346178157955489483210608850079621545953549679915260509822464053671541668506307740103412168154507357825500698346135379607303506678810735652413589452644977005455627528595116859882698212962850327837912878875877456769718023348656803927358892158283473434186400762339442971289171386902560066241799561823264435809323132529084942241376414025953520267304771200160215541647451747589459739757108570996941862835373744410906995644959296313931385577448161710931845847625562597488317193998119628212577602864205529441315922220488892329713381764065457705118776624695846244216414514833060523233357443166092184765732689091094756446170882412850531036279159934218346977579037139957628463868813165957151672349866263576662960848123381936969095899086609904345896391613137091086028140570165536932933573815451382910764220744910731390571818511706615989038545435765719780029597551958774005565715077678440001750113998648599877199333044938860278913783296024524998527147774302628201580994242594688477715490816459282504460568063653479271076903460030157546938368773787734520491084645401587280221799186357624970134625930616894854545913616469549975242326511599058218413096766348744422078127735303332777938961615204191798814157732673360177560200874502717570006219914518269953791346674761851503941709204102658265902461855182684829829079336014383906027731737338920091454325959309738914657049597565537672400014911130275109124679049446264797554885672927682511751025950223525531639620171754699724653746804605799974655006503933107612761894151647890146707002428784936472537634712778618405925524264649569115303821734444658339202979266102847220209696903893705703269666313440915174663977677845955832802483776317090047092444397092700667486044671996404523728079708444785885230457684725489761815468108110089797199658455248178023765378881844532196276425303430087246310013200339638313846489807133204697307959920970600830173844233252591849419147983994981750068024332905571689099865687549620784582096544696342916660956191899541976072631345077136427787975046853900581993798348848016113703490883370517215413400221876037433092301532476694844422174496917302508629824513007360339689440476623020578163848863730787460588862143920631184037145954683878968850472689699619889318260834109419441710992189407270714814761038807567530497334978833620920359383394902367063154250885292252161787876410591559706474518191479730344315828182777144447881271901373285208313138888617974755170152153388684407683443492453835348708841633227831739719465327159853204054456251366437170250470978782788991170179270547057997623489245727512156293362448450231283402932250857177988858171901569268065363886441826400718728921700449699761249140335286111528367552772099911304378642060380195800342947527529601642759559529809312513964948654365251059354018558469892261814809216072022172914829824546288610206513210662642162980864127223190681708235806386859897576574241716451392075533084118938913473989005655887182218040312652280012110863072872526101164301892006655372526438046092555496528236320921991578621626043812805151986645246182866940428419245564466720131128341686037233735197275063553164175519817984946318167285477993186919711018617986859622576506405705011300401292067968144997107465928270858900082982760802927903499930141829111533792696238733376067025654700019671867314425192349793889309004492792646369644034796709767885026469136711622942492539548684973819999025622111779895651100783587066789569071718257007821635963102100457111484523437933776982631733145807856752729205449004379164344712859636532642973621988686937010044961616529865631084554816620684144805197727096102854011435131452859534608682743663099890128384388944263462461503716747523357944794422919710034986684578159075869882471433125695482040131194719037598834183459418045657503140794252416076335699985368742013886160470246907472898880343920716016876072304576805948620220197331107351159485841099837905802481207307643311329250612088888090287971131589278588440418378968101763000495237768458508557620399624067942006497121761201302775581921096266855919383812076937352762791580201862012960834172890868788357372245878594316169306708170609884335787077813866032124423445537277318051689259687322611452761152674256837931776442782687189751825716357999159421568948373075753130439683738506533756666089029337666365410163153274989952501649524403248984162067716340289377393747947620734187481573193922751659090929143107509456171085374649490986985928981982001909278660565663463442222123169043359721289177196106601156490931312951704712646456739939805699430617585869279054200296401786660771019712691132229275782374864730704081026507472876477805448763370652959429100741283192801349315670079478979911721271746317314209538714100715279831393647354169704384404070540572483740747067098059287884797467252366498860820230123494445172012283485105475341889380573084410885371420320685189209845291286216923056892839396847633935957145398057616827339176007707856445915465359690871848381364211739147522492301807712208415519469098191150804473644475267106810668721868025547061428909144054170159757502502037713707683043954591612875581624627384965106639735519031250546956831218938681950379674714780315302780485938487020827897494683311224652850777972677929791302969517387222657617664226677244681203172338195266320876077831578074034041255061779998282254562112684289318610743971521332645484817003955181035740878874781881702382373228355085488072775127837821832409935829770474890046875196739829501690688677200009645486947416879098938694571561221777059569779212631387699710207320497715277852794557274763368801928298619009157223851630106137939420910309628433021180602910111152910453474825428085409915895278179971356657101994001057595875460410614142839435322013760640306746744054201814982634177705301379645594980730644151709276565048683061151356252260844098212993139297679647474987434032166672393240661678800774885192535330985361117478440888955602566410444470765046335073673941515605187455497895986164800557358156279826230123262980408837096533694632755988389759248512387528717023975126909769906039919547434279869422730550829923396210538186149095602716736601063409064614140835032156189951209426454248145131890081424820197534548769790138475186948451780970915792847349080310085518166226286801508916652443148899465194301545792282290159904676875932601312282338592560267237052018836192203116560772178471838075557037645137229688395301872450406302008381495283275198173493829626674060979567489489267487501534255114070213546323473051575508912501216049078578824577683152721418522731022720943811145332244564033903525974810332058772424270711495173082346591882357447162310117728893326417024298407867210964513215038165314700716970723897321764824183744659148591705109856357367447261227637541765132012727582470419871635616451941846828902377744527329908832342643410492760429129259358907641097689373236625581569148651626870935548185815928181192011446717227303395731358407998936096236792167214066996791098699554042226205611933395484573362303479194190090885797130568405602370060928296336519143877213755589305865153507581012689829043648057367260802406665339433991577626639744732716210812822505867978868372977685604397918677553571955009038763026338143255179072676649742744909166111895165638437553785367258788214240641279789228251063574662719235826800743466624859627773724739217052485629016782198612774009646251204785752469284518380664179051665008270487257849600101683236184816167133396403583665503247148602252547798986723161118467737664212179649066077560818658610139627109065377706818507717971863974579595489373708222485457570671701053488718806280144322483450988227698018373705584186036214384816509336330196466759106155833580817264081053027711527561748254354948293330864124218077105970633361047714343536924849154685799004501833515551995339761821094596267039850059476052121213952325820510603726651942535888026904698141914110844556676204138640962241741844368645302214686520806475866511012638036804449454837077037568179266015689864234006743069478308518851178082136678963584448222246132481532191008901290040187794703321407111095446329472172965773516567127474186352814562687341274313943148882611605059326400959700153217993310813625666385474576191317864923052014845319279930450118270127776907079992941445174717474418760213893442562829989763048040738595206203585710424321801273147873145895773156249515770022438776867741248320363808841465956160198974444837297014787741630450240688982900033242166139549442074612831070044065570365190249606761691668230324432966280283418138555959604293428157525545540042359187369289864246513967250771836829729297946138565236091136236869508083907145640373863310217513594682337200724674803158820471638170966995945210862904824541720686710056881725386374712840882268818330963760528421155280021509482065103333918641371868646822152539903705310589549391689124219799112897352381628366798458453408365172240871045856228151744788798550039376303245852993187704018219142733320099094679761679916331801997961670257239892343866246798904419659792753846303223872100944195629385889020493131934888219265869540966282643649541473809045298689071086626710573235826990608595989989382543810261435859649361772551497610163901833801910072640621702001289707636382342944496562184534673619927681030256590507894500991369453944808011598198815173977416021964135520202721037113988910890401317059937156347798546439277637770163258309888859672725241980314213504017464557758832905089047366908335094085921207903969333719112516148721519691797095792330920394367038482067438675325110791522937570623327609811782759767739784768142655295647234725337924131635924142784496060331288904268549056731545709918838519120364568835334826643427258554480370389619389749186142424479778475090451295150975776857486309436241709981935933537359814648644486866356824209834380283427374622718522211963965473423682983171190646384231492964210385664877785158561070160778086768650770309415887245267812186694904864370309873679396388131370726620290047065623976025048058094717293011754005944763383913687829489730926057060193695464607649134299485373363626356147828170855179450201902009696499478068382463361500394481013559713724574685664434820162892904232639850915914260553798585006329173525239889723291551616941060343991074061695855513824927297433807683920036901868977343470029045952709217734896958375402692145752334747514435800685654749450326815003884475956028607668223692038432533945616335232269508737811039529590167000705716935559523080171833549026784800560371449748350592381500896541884350032287079792125174278916633149556758895462784144071720379322216305685615410323491043249340572763161273822994006222110988071535150298086410139436768199110324937097772877998108723068293675365675060930180192577144146292488031483702817543867812449951705664200371285416544287419157998012961332310309678365229459152113063904081912699007052832212405392370398598414556514628237622888503013039326811739194822794385540335487767134620195743489117632176131739381650508142534157365685589258364270434508715921285447654489107529451713310126523518776556702386603969940747316688806533538936782739354141515203620737031117140243474991282033593805280532210516038870075642838700968248848811915666530566561770827406216728644690957239572883890142771780017956293932779554804938177944552530183034261496196488925278337596641591611238890765631069331316442873515891046558037960308038977303091144324792206034485213807881589530125730049387697083028183311580127788485855685336571837393708950738109107262308768715083465620809961810055513014037827802527560785518067603774159023985560369333646711549405796573840075836968247987909279779429285112325146669014051660218241886330247612395274428104923264175927688006793941544089391546215474905271200102825350740623756910862505846146026041487046291163537096016034435307872010416303788809454914927438655978579671608692162377518709462290954757945502521917012470436005012690151193157942441988655545479290025635501169416326931994077548116455053513143396915404950391592513337402212655108286105718337546197344759616091790651145392055630111608429066245011168193235569129544325845528940053337937715732514428575620679442913700738761499693953881453354144426085734421891837589532773655370875367447213150858593065793490862662698609543805639420864685622927863053316463018581703948808377952851948744229884136854627791924231789101800445768182615080661239160174635622268186668980113833602770808314173111240597684783424783975959515946615016333431843681061389631836832799094264112866175957563727081053163929158100044931198828385708824320287736377867716315755682290723592831943369496206028182894097649126124019578899230783640077473675435571898064132708459245217624991744183265225137512034680887889778925486319094664742877932345902197605968674358955361571967368082753480459177537769026337112044774460340812384560998100305560438323051371280644638593260343395262187452710456631311777081974609855238993335565739090735056867575880496597445679325885304965802518670981443819192175306017676105067981652844196433626179560545291150987528272168623175326989056945555772308042312990020826704926947238038877408766102281903776106084836695738144352082415573398068961522222082991070714265030558964158465420034867661145754303150441649366494192810316444572261905790711529829884899455601324777230117704754431078827922679914512387006930809211763475183712570392294856254348399232737468450381223636846587971672012857591708888787388268931268885722960468011598508731420390773078088610084533824145383147956526488849084155664452904648461399298090048637699486765273112175644655174142277499905932056560326112832082024716719296549643712663207184779499427848248523370563260124589764725343551767702520532141288508815636502012886435683637992606364023007516228766305136681004234112173070435631149435167474431627874248947708247500200368737552108939202943430713510858560372392202961080843130168154580217052595777195280858814721211543232517195540502570227703198652291685799739080758672761775861745066009672489187541575712339042574207899950016766342893934976798691192167813740545883738575275037916060282759571890224235285412488019444608677277178719850704335418804332612134619533353718510166807197185304933308699415082300458293892620404557699475751121492881135669918692478913629939086661232338085143748542224402171781794493810330269857591133996905323543213565448354060839462682862521381596472640975287348759305733825007918063116232377772529719440694938563698169549002610379488698859096135977426721418618819872770860058188538522822811404358954558088666384990621518556257960186525555964737272883123139415720744608984746732109699734446602813913201074677384519988021845338329345110444612291068529020542222032011177439866642468516364478517214388567964225638594832194367503108264002271214723898300114792834461416385681103297241627165689508712479215391472820649822019636927956567558365358424003820229853148850224368653492465755919187151558065761963842948345070879050858757003411852068027013229101739570961172681322399752679155369008753522213058629682486135799394551457297735318995026960013435966154039017618951319149035143629027119385776132388189186348076716033326192992562824383928453172055106551668264812018842092568015848883447981574431126798129057288531368552445407074089315301920667771634417404713184039308982998519659984540083898964777085386985257028227697992009991331324234677808999087936794420543338714745044513142523117732924573612816025822364085737425278010083930373837077575633350056780086420920332118373796346957564334095050717430869633801919403408022218765588660448068492967700772740675039558519476523650143127674249861378483733694119431627678611256137162221560696103323775415898600698904721058233271822467159737523374633158332143246908255946976427979418262165959117198878357703846282864664036780852350644246209038729190648219910960489304883684782894528162764423467970279417031825894034527625261541670538396191631486256222072126280547472931225195929657759698970915639150841501284319125774790365468845148628322331697580158219455928004541986333644952841705332328554436995565774042482045977566058323780453845186708122365995845917576604758090585407876320137319214439456119139852802140136403734087528555903308933211038185266529836147172459217299945037047919084659312246587354736423710117481885297983414124445801903954499713737321559391844823405459047150045930237196894436204860376519315624705036055780227179522328484827745952741374610336904978568701588841815043878823389889588385992427704015483287293961678414240543414867431581449033785056173571183343895615571010875653588926571223188191290597682554300309960004256140276443825429766659405821971715781644276842451640410512340600259666484349132028912109383490549472530314798001646090901472555768007382470389766231302006051253270728545762501648808744266227006172556226872151573255534800272433916815922529835777109356366938436336909093978550082822448519944960969928880215855864914497752955491960130626250080050780898132087969917516972903889536721331247221600236439426844313653207310610426013275344605040400603370190492636978063123272694780849368841871281842705791510274581933017095347459264497190722472403370425937960670682538732900247020779962535488791534680713162887613717806847707556321444117191349578291032257958843866289693508790608339592437779881942754848898436914139219678961977671630863302619007988547188524725832720399731668744500962851613996578799472477840939115707251136701387612445101388457714936123831668342837762514738584427137060522838368096101963983079557369569190600396172419679331540622539108676973994199735236516522823952090412292418137761685333717532728643075607431967171762888515431415118982283761002288366870740801109768384519808930061632773362630312855131273414601002416580953100762033252620313931296005502569989421148525112177492954470178024404674858614019957874789016940319730396489102310296551620748212981108230198919431894881541452760404276387659420372064357966478319813540232116697326995437593543977909946525110232303738847909289190362562007891517179700274483341453088543023672366195921017504896063233266156707961859379264687762168767238196239967402149680844230603180919874167657282329091652291953737381291396202891413759133786470354954243875562781146778491668459185191454567052555917087950713571215143038443552302144366185490501174088662123624349620183459207974074647811360168967017182187912711745248730030709890744378756351201566027061690563247096049928690089947238479469254673157347829367158639818678634811236596114528381274782652804392709505063500004697021580164445883993624736589774604850902223638943676305467456478014271680329458396956472420253906147120939328597641929031593442840617665758124331835465638081486816866525838142677792361547577595387005539084793547415752928227721318755416968745219056281103696517265969295666960887586879662538461122593607183130054271575712290486107446735930473863850263020418596382369450534565707973079082217735706913994498240876533577787653655623518136979558295824976278283399826723615878437498147787511133674973196314985069004185160847729110532375442736891702477014476371621232802246687007230931227373312014719668460260685164472454227731734885064493100839755445023073302332309288558713365735141572486816869117855669379475856556721292490181471349143388012780052277899801134493821777294889870835771885024133187897979773206267661140120072492897354792638393685840033567165142635418021026095168172968219980467756604959226150411195029218131709049149120104084455298762942668092777495682289333217474081006145222130744627704077048912420397126720094513202092037277055993442927981114045294050838414323834408785425528280900432702553633281442147008511370576537424551849158579027319662164247723758439451080565276573869117712465122716590919348308991121912902868096255133850652090343502504243229175787466318123465378926365429063937254216545110569295952287105267203373634697376670071154854513578591608248875507884201970468459963093327705137146504640785490862400880528519472701839150017179371812107789632378438920473148997210532621970799705417039609082853089995162576630032909825303782260222302943683510806081050973709348568560523523011039970978504530945773326177905677696833453067354078599841297032425910306067875096908449715065869276969806705616064693455986084718749580902102300420429384350368895401456390337743949838311880196047727780918505798372509442331432078705460134066067661436017467559074716424210778056476390655378116569378847538523468603319490439568113499707045476185693598639618705247482341444774178891823413493899485214277945093927189612535769202929941312120677426876223700924165213762675673739391492168414104638976594353228071038624440972494622678446577028622982602379031468315636306833194079688739712263525803800430266165392033075207730927507150822029953260474795922724797537859060338738456869986132315404962735556037828326619528922099921145217345906368228118960337360102078575726440090590656757254249643126428741001665289384008219448938202880855870852801633506299296158744728191214407388242974641304066914875399380787028397498666838449141053937123015904188201372157136930825392863708768017429991828090286784467502911627600300624772455627076804855037919889391963457591315570453603722608481990799201693121295955882693330495229207217291526779816351642956354073130078930044485698570598914328827275961693986863697117558089268452466517457643034991592121009173822193001184650920369936250371397716863947407617423483975686060816943427744174214400012934834613573495190663012044982206348674022795134811315912439847206513692102811547205120485893452524988621693611408171717208094703406994782111845858576591091059663431144666398019438040580484075258887085071072975949017965315257008221052132841591101444296702576812326867614420109788942457991055880304830919210590877663758770341769638138645602874498113531704942068349325144018699913746507942511367125223154375276780153058348567636263270745481064410160312304507907798969811022291548587275769395841710242894980114713011944533816540804409697118960255043619031320167232332255483771839548471733534116232059994634927039142493175070621866344539556058043245218955218209014262189729063464452509927883857526426137131110072048608941156837508429168535639121865739640645033418996472956356385578143480461340134731089715602620169120168173513109472481383435167508526661389319670111513289629495628371584350249213106411786045066131269632615029665085684721503921149195813471981548134496891121338389129789151636459504484264902636615348382850337997403026889924951367533388686771808645979389282148378673593701479879601810605115119250333732446513729104218604506199136886535762145613410017824560529161709449123951086836961097383736204478604643741160983187978200939456699393637907949076214358965540846813305221970457651490690953624921918681400034423842416893860283959574364351489159459981125015324287821205425925091090628019208055167818923382020194247093919528315250764140561045682938057142789900984831883259845286886561971442395431272545949310746070917936401230721821683110041852573116207890279622965116442364689779651357483576557346369214815470983360965278735144755559375774863529385544654363974124938239970032693221028568718350053739630894208863030988323290838537547457682449819174252589682057615202480180425408551544667018472177489237658109426363304794081444326216712413307076792108269309252889545864061646454228791522691364723428741053475672769029621718494425625744442611623153214398422488084889797173516987966668358517985249398403714511757145742832686854191615888968917182539412517149374428226055006230538410130901000412133331618333834480448819452115960579174229053059556534131020916254749033598259478147426153631557124077617087149243699527516880630628378219719334518551385787232449090177621657490324950748623005761380797215106229149960003095088259464387529244068248707001873445528234509320683414573549118294565017229899462743077528626840801296298789768943319262424307681966947054273897913856353327197766993605943813218059710028075359772427645437598988949130848380927964204115226434797184438302418796687403088134027166627235457655053088106420938923068034063790453571339439973629765407057571831777940853162447417387465203060712537655674631406266834036754588528893852631895363348163209784536875226019015797778340526301641979561105863521085218168800543410914244864240610761113615084898831591339520945659203957371640384703515607399374453410402580741254540215432300561985157698813777416010885315566260820434326421290280595558586314748133180392353557640423793765683822371476571371565948809165830214071456864247384095885773602863610283230528520060749274222607523777667256690373822864929959553829414288472408942992529713171101168261088386067421730021550003244670760560425094353366542899987824583788146324390115813947238970207712118715441974713234476628165212636732725223297267782259734063195841545852642904800383165909585636724111941107000056658406484588154881264402914798265202119537474548445570334120853855452508764652773225288344958600561854947836395674572483425595328805683525854226821844650065110014847677305508884553554119245500637035301667108880904933689857850109566388406843939684293148861326147256726541639955438857291440130908131185765837949590556657541131344644091848266798033812648205214674399694107583019829616486694292792722462518917651192364757141010487938843042730447101566435284314092469063332023323444236323520755235393702904866229183334653391657547049151519191705979990063706581447581919854192976527175178927390957794168100405054723265266574057303389261679298032874828192047912975154532963837414483469190607885195957625116533986334149231823535130303918626843827384311975849578893239301251443867623665521636504351856326305004422066502621864358679002381898775941629685740452178167680887068991413991945524298235430410794693800215981843525838609173395205813651608157614016298978118663940803053407825959467201560784944569218003704353184321718960727045645756806809366688179533032369953531056104110798442510681489003226025541627237862815819421210886760912107355448240411064994096264262079866147374455592208778612600973766914210375981733552362798814420865998690471029405703555028727256760146953198948248446148409169905922944943843574240426517820984464257717105280512886527582940216667363516690009825383802309226306926238988562064465381673102200617693174456439315787059537140876382699665276836552000932394663974534731342949191614473150239642434922237362240222576964880168075925994494788273770041537087482721435846018458402240134582687199905931004181954489664125386203580487031400486347098444132968142849979678365353403469082797526480581517252886552212271015750411249308137124808569596114423000687176813967253272852889349444646105106802543918429187372243975033758103623288681362872231314649533914407226988998120175529450757317638111089528891135872635063718036224956057259572049396308685209621686254477510017632630514265003064321490536054828776084066534773260487942477118625354292552999816792019647341776608323500795888104865811440549446388658272358809197377331764097601038079504572396824781669075904495779728399600905643130996578682924281555238524664925761572690144225666324253678377716704864303199205078717001516217871584068687623502211066826707993131348121017055074972455805961094709232350407963514800510311589994650134662722803170291831864653664591688021982969889616744945971359661317127022245593732144663689275742384271840187509020270230599066425507713031578760664664966336148486566699189603339822829381319673617908156873955989653012812103590756822714848141381325122157414137667970566074294807594376853286517219066442439392211970435247656868946660921444393391181001197458621847728501032457396508687254896412806566542562053616912346969119694663612741278350064907399211530262182287246939307259837702806388933338642639114076121049658215766726682277238669817543249175573282087442318908179661882922174006438932109640799253089959079606917298666463442410574800125811705299725579606243327737405580342326196060931318585196798098640576163249074202467241608914817239916311911106325299468395257509431822127809583837237885602062768375667709455209890798932465143763249842089085623349118459280600877650839407046837701138124952536952793727491279704317329005920911564197703088177922738388341753407232440409718090612092078986031849082446447768236227257339156499205866169958800047162839175654683319949120050609417547290615238618223716870889236133413225822707411751122059780290527846100315152669124970946947715405409108614869971901074221833015385354490593390037186977710776352814742588135518294745168447819879164715744922116489348422728184880019251625943750218430219432632976764727007886127568126609812588019364607624103698028697478560187074465778643742344639943374913718687246630945237036065491619757839996253660167606611368744613619968288282198368806895280936488079044526144509073543188241740243785894453471212671399579765754648574779212179162286027727529402827424189559923769351307295986535146278768653762169573602566873532378664439637253777511558357482088793233179658452556529283612871261757096039266288628031707270450090616428566650187717601210656121380664885857217306173300163458149585268963008195970346410437873211791007333537444419521798638032434121978632479526233610825732276080898616716695620424951875925510212501600286212224338941473418451105177899452726668090654874248930597329797875066852408504332934600868752225806083763028330298514465715032098161067254509229841341131334056270900798143190957953935549488417312749947440610211787145764491072428468704247416298529762118328029883345578560446231663667535506650705727180161226235058980363311078620705192192628832278454656778150693121723277113211904945348592722019869227462305067189745272481935845099811930163909572474140725772745326930876733513123697932273446283731441515750212932275046738571853952274961242613664457307983977915918567354622066460047824589958788448255402619772054089977425371158779205348814918858570104572199109585632433192756006122271849570683492299554632116162392560094361132044728580829699571029022472399691689557699378003373969733910103518473889894324871643207680326669978656842403610430757492681199218125059521604365677300006314539929670713986709146253983394844316588761041792732737273254012953268647375613430800115249012923020682195604522970836767821689059212326704887160875842179914158577349039714072775950015215655199339660515590046044779774980526301523388380051747889042144920480009618200621851502158234562463811100127663865750659772061093326746884380348097390875892993453800226912058799111807776621410340327678310487447802226627496162134848182530036566787064634781161476008254924901911108287636727437332327710244630543328716834735314434781871183151151318349133904812376904111503224161280930399682490689658351833695556751968607803112947761868612677727913772570841607831112098575483805028828970205974913851982333784715521734505622187853769302530941079244202443608414148300842035928825483085721535521486659561636271782741399948566374615859423194197006426774480896564636931028389005477934814247881555586920977381025372970350038226823904191984271189636575521751502369522716590644609091895929951661968152566310469519600516084690708985426818366072553646032232191592340965779971583143346045969299848164654232155430364487004341062695639844101187785346959488168155630620783806271773614969362019628649089296243819805252022486995242360888681075369350449905317408663552459313236224603078244926454706369863546657679955918903819990085338433340234803331811557995626271597610945959972826120362177932746248974361552891776342066134856840534633154970929612390242890532426269572648231570882368008558787720900609853299573293715337753406034062283717190533623704522795899035638689032543588818542835493078171247700375103464076668530990549138413417346167683335389419871219559428713796548102803909204179152677329522418270906631152035012627580419679898996161592503111269929429915493745757879238285389856458485568609448760929434599316073139348320075626370548614578796983589137276572994104258357359365120805309333181982626628479856275481912207617986220608264490915717031617552283144866812265725093957234345419256652182909059176571929146096041281113093033936613587766244208747854327179580261652639397917693534210259155442577660777528506356714707393717667811847936288443400504239587276419218359362709192931585412155688235845152579698381583951811554100672699188499103918931797429996465594859251841245813679499167733596983417950638042297823046160179212050209304061342127023401497207049441582204787277507621779950629171831233986948827730693505973987215098599904157218469539544102224188059527824252696929905343034839488035800224474773960456101736851912878245851037116225199962221479000198619986144198071030308545563867403954263288968810868017729776135691552647191682709347815356689174654304461625718288723963601517288205642962183558777835634038010480986206163423397330644304319265044797793396090028410009202336024126308987741841231065858655002015891007834422198578481320736495832922601625421852546220328432026317556091251762437504441776424767720081513339576007147894839133688620669567190569333291130636020439506170768174728120014779805551739158918495359836497893081981884636764220285866752860733098110928864070311467849664382952771646726739782043394189970663461054792863013588382511803657889075860789081924661955406246315748232462104510545944942089832563118102633805137062958708239403386846149591404689402322642305824051827180831788053364635011334405164581871931342014536266480120898428892405182306187736031881828168185676358813288395559914946016553853249190235739095586240205223320882983394250583796364693219283817106143676994118153406168110705322593182095837373021880506179893066335514047869544020127325425321377856839198672650639227995227756327371860354492255342610172882587581879949356360659747346257754821659649821908684271973898585423423290064998443706244739688632084416280077610174348065606439460921767814400952359866360286675347559500941625493802070549759179078724222171488252260106034451359950809907511460803861345809660271530366713879378528399759281236388793154549954651696377917070508034648535188495617605894512194689039197463762004317206254131872864115391049107427908895806758134308552915312643836009510493573525845231377283336592519915761042401406687516539634858582547836172239640167999582183909858034751742586304767384890362375174907700299511126898733733764469705148556269391546981686527171006973527274754121163155844146520640158120940875546467908034645897155449756355757062453161572183851718884192845294439311800094727560468367874275597490271472623997818592068815533372430490921983259776202550674568512964097365057243688539591643489725291419073674760579270153746497319089178227464027461302205781056546314931204697289545277965406854416176763204698136733722581210420057247465810998150080770624102594049797741174481575960457178811020837249860160643802812821095033125777377706790086607508368216401345962969389418872097549034268966342881393878648599337320094713309969370545913460181802594954606706580067178717532553050565911965758282720812310533530768148609868274884428719121254522626233042753461232636369277531467495146784948543555558934989275587694495873812886759944695425881316564793429052758797326658574198347726625295996389954309078546876957994892764113325550710835681565842956664487631416806275325313633497638971023033957591918472376845239035421205263683732009606455101441891220803184621410343883216831922082928417410290227689323291501516405489177714760352320160223090473245695085991431189154070828480693534253489767294732874080840393210498607589085286091305544406541251113316629089214710206397473028813796143254881809072451506068511312511956685759147491656749454750170633210744935181540906207494872245937799068066622571821781670381997994694654414804823558201341308243972333970353201116479403132396353622863284285287224543944192801542280129963866472960314726372870219737655836631828549388068448427536605743270907100925463857810253511004515496908919733381650085255203364488011669072041044843468109548279629694795281504787200111428289528564880314697818573656761195174791088523656832304571150395734130852418497753647270097893608477320798145717304187883845889341869958132868430758553539634123781906975827655784765853041919189167719735226092624533752856713107235621964568683476370701032699071599736781833308065142667687913547836850470311617104760668821000336796529704110502005078615759178456611783965902448292847698148271008226078516074715743058886190624274294547494070540991857576940170225580738311180502277925144724901739132734457184690629949637493538231812296175661744163554857367278426474048175039620947669527446695454167877159768461886429861655408432626291007646657169770426498932342259901581408775675868743923612547620029820777768882190001744091191029033586532469566504693890639445273390869757595121696396312243767836531653468745340447045078943591330216817556707847449042741069017475085117646653577370796830196881175245255750607724305765733232511724874831815902364245705256185292900669249685389475157031419575171734705818309076554083734259237231682120791413088716038715606817469510225950851682106707151489508758003803044203455184834030961430041794016348936712571929121986817124733520084663748891347176402941575643645287865800342935542536298645179221430861894699795950125037813654140389825817241532559373114042568021349014488214603987161153274721743469001837787357759863213538505780394938896795994997722613044583543614535275672799915860090724488386445417529356775144909427292606999860430623431348870533018549019450866667052219009730736608032276130983418346145465581152856849090497451903536030028823599411532977046453558728473405475638541053274081976201031288877930379571807427294359799433858281309443828650787871937570665782768186793515116208141299916339479213771038749032305736265285717808029780456498346488082826861809780748028791054051856435558798201322951811565844246007152808064303608317784971094915600925571292719877317986666658242561824849795531590032865048494472018984346423746120099592181661119202824852813629328952745682563904546636530921744060962977382005275219440112179351716274700836578798571500372365132585905136268006662694835547478606423706849235585466294681152177533693982883555156332532613317712609732786607499618253448298997037575797731656383513774386023521433219814550514145460858069859110333779504585209335007246967681451831572265756890893560454448544869778381153426816673118234105539375971315289347664458247241868070463129343324190888768498530244202336216047690210353281326966101817445765872057391608882920490037613156722296538791716779087033310390959748890709376867885398995310013408208599816705369323756328116760630223247523251720760168906143428332807424154668328817764101099525075956759760682404971301209520914672455022180639031356456942775245561115212466405558118102020908940673516175750114301967673653529506183066068075437481876914731630165071716943100582956892106727123495750794057797106332044923885851860951294201249728679666491423174037246897584056260435226717347087062697870940355942654803092263536389738939819924152963365548685512826817450524225204050744736768026698528373391116983220980186486405903495496041940631512312017547923485577535040734701040693643852522658651188270421665330654304380277711975402864764773461421382100882858089118766427180369712002112283616427057827437196788235100503742497903940915950947005143578181733485825340809651433664169093459350356543110108253077005832405670915690022432492292391289647552224259321345412498933386837632362640575308346173790596226302925238789783514077991597612766787507363977940250238514000645262822903256660370727599907799684867004408179580403721594084848946770262825576283633363892768984358847712278854650770228771635900889940656642241654560562042464647981573108326148277550135651873988423861423962074022749431022317089336256668298292283325401883066635342210396492547207019358126478709173913308116766135135611852429300688471397479669441757568127951849691547163267935575691232897347001792098799870724691240866466566995103985010659708782417484837104984357008056181180638005443354393109528073098687514951841101674955178207183733738629656850578201577777285820976083548053330702855880565210426837883910269538354197677560769776453846076181989418591325639964622362529524441074921532482840297995544909137554534919639582139518117854044224438265022149315022701708679737181600387154214883327389964904790465479260469260891484488607165008902430526147391084713943704764839747546486179427072293326706877407281665179970912048798169815077287127283731540960457004806010089764491740398068995676748641791775818000841662633245717220206839693749354047946465310941694163038301020359076998426293637777916453689501710135799082016900491728435394177324642375510362289640517868717633581718754990354729732179164706663081912919123942941579328271368874561045081357502037693346349929418780993740410505858377778646807867241489001236315695283032846701953317994140634118944569266855944662303402773968766670843262413017625667096837878438205268704565109861929924386542976670524005774681163282838470797414975247299304713779241667723555350050411177113798466592983903732379150367403924970982087741115464554265480701571153495505796537109960154334023572151726099438943117149783848642507709347222640201504649349051250345981091572685959873368149577235508854398462456388366730216215513367261412047279473300300231655728343300084222866397968627351666598331185982088260839677854096851783519394515607579730872409652659110258822460617679005139988705020378929995142183003197614016065965318381152911159476605274463087000940943573044971931563772148738690559333659042499368617627745402698039036409210986278874972730883589610684004152739792933215415356365800952951713162903298382378579990235165460450488562395933380123047186366768184610709822093548737472278996297653296118081182232684602891906407769460516470735594379462352924347052819504475476860452240461582544622514544391020002843609343341901592798253790359881648072473304493972197948246221135091132828473934381763890040067299775912885876270070187776381961143253017553641184910911298491659308842377519149281672551578849454440819089806756350363181009536468316451106263565360458508332425731895381141601392472350034762648115805522310266945808070092001649545149636900304839749562475716815682392787541957281705024310521039474293140864414110480387475226266235622697377944687252458009483101843485502219320727052333480021149940082711981058434119973551414041598416352296350405675723547992812375202450260210093518481131730642975325500415839009537048614977497281303334577852064915365798009626183097360167851725151788773510039216049371116059171316981223732895947400322932340281392733456198558360256288867442448703632754931254319136143963049204158240139467240220270563655821527707988444955491093953743849833775255516751694505841478332079403394436380250379698291187441883467087571329734681749784426462250095953169596180178195609496174300165793586429919674757477602493240696941059262589835540818563825314052010479147723424182907937326611463881076495568893178616090690427590265567441868676757683248350709849085380936198068386256270082717751112521229030938421362751691403369320305888648307879057339740899779218436927505576934803126274075526991571653604775353801638721515299370957514929783856828797454785681353435160002213312230201347199222071951670264725209823628277692184454368383380973858231121034915192093863286619086290019904288128785295646912323790180136512054462847393673795033523278858577670077272672656952598494984377941135355748333751077059406553838817262946221819333604813903285377978413737070734179886424231475604209658668069035036051311857657141481345066988720104596675606212495141230583216670265807282668331737145233421296557548106889069315837289274841658350668786578174084244961490755870271237548353976735887057507921187946305216889640692432741267244013024466091229738984162491855804072686435553318579467644528387497588088743859722428313440414152115527406797662336513405098968652411065341733215852747600414887238575698106744418685122692704015152659877711556092504626784043235461528668604447713425186939419398303833374187880933898642097830664955653599231375728008647215732207830821181483728098779210984307937165588852491026366455266252877388871147260240753521677498160585221686073584114087539921682961004051166874420243562194127302473711328937775767608936050434855875215264061250916478931284818993691557562109180546599794081633174062925331721711043299954224518884840476468211499175376874732748134184978541026339002268234613170754768075639502110627467575651399658008124299822716667938968447345020358911550003967874850847792627202300746057221416763807723864677330934640263951625688080155981176283922890633049018487783212872808562416908673263948006879384379305313587114020590082208271415279349434645855132732536051690083409109872884535456739442973896632599412946860081018376118927893682564180870837471651309979709736838950451321803615229515438908976160524112051031553244866906699864253788897211913164921660972614178387537369306770589537234390635504911024096646644685401016855155939839647269864557710052085449605832904650434790102056976956070092542580099102733931358541441170302077392872661387855278468965860814372422453761744750094830041357189953033436315929198956869097895971371656086958275593835969526736481068300810566883406116949829509355172779888382412941571444340230887606416829795855953174965297520474817835384173549382387243384236393062603507280103148688748521443157490431701736337970642303197579384559446981525859896038008134819345148339931067057694490845617139835700360837481577522894025820401240852186376000108318609604466463525616506395896482871714448717441945202265419873448154424525418229616413654196130503114647395672224376436833164558811988049643992552477339026296761261684562964299430033985696369789279751600140389851849554931453903301800117321881955832884228224604636148688522129987176921426872945383743881117223555742984871416972220801320883310412501819591523247100546806149941301474201736419969126995664527537849217148945086468091875441612642691440304272247116803260272120781232901383337894539313929862881948587412985074334935114610989672725025489184791915595444063467393240711897083986266148632006230341562461914256825435099365783686091138049367135486622722610966305024375415616683385625129655185756758311045641185366612219180520776686548033200791360108689871685993154283880390545422049577144463390417743375578454730251396792063330205642496199047800359088591044601501721600721178881219259524538050750427045881604577440213436421409830072866909389127842412271842402618196260643447342567587018833153461564270922070178359460305324659935390575366164700309084052104766004812180581681628601829144084862091975801710305934984545488313060125935641715662790590212365330826715174357896617301266224756269368090405303908463305217311045282983689054169548175810170765880368314666797250541718642050272338396123183857673956940904293726750233251773083966122256945061216261388555179307221941235508634866041790018214109331352123879289466897936211785790979784803132520728488975730032279959275978292618736554411123853654040830014086922427318004204056774051995112288350619603254086925941678829626825986221501816381976845655586416036503162911353168816765834738487596849925355794693863207453200953943553007591112620234835987756459887552074157385742003845300731127062506015917526239057638963151063019794114995688606480016577435608950410544953202842281030837266329153163522178257731523496966338534811414858046996777038302634955311446129006895886842688170643719889030172256285425643080082494455272050048394280537712625556369745716108686708526781842530709450160909670819406709946218444151037549751658306471146158290288914727232679159233616981713852305510655203683465788687662049688709858688564515882281954924920949135737286642269025237559983916050342835841885442949409476992753559655401753093191662813038540154995284377851533249105872968354676280919045476837853588789565143841679641696604131329334852956694349383397942057696952700604262735898609579320589301523124028529229499844008488675008709666653033808938859517121347602584580898899448317166481262735377972686985901429392529008742526644964447187969395035998395671906264737151116004447628740144649442250619968139487943016349159816523548210528965133721671280478990571357307819564528265875026122335897278675173670196409400709470424103369254640382869755224911505333534020374156155819028107824867662943861518487817155033053140977930386741136723572221148325297193941094962325256357536001507463572369875708490044264783216600660514075160136617414575751547869415610566700011531131329712711227031340988943153170834771205659675509794994028228738925083051409267981144188937342810803180393810561751386792272240042070089540359034289158963908309603225711413951918252047289231493809795074430711652806265402376754276628896297647288050246323969833663885121061222667742132930152275051077396259528062507940882500119333187632187860392044019869813060253179585498215773745396486753609377279463615853010520994330123493711835059772244018894768473023668124018201543840064328132541642350617562018015607452270793041117889324425850730477165845956413075766708452631491082165745182500730997250995832253820179753529963296579407694630389859934116657840147517202082723279795153460063428810197047609632877748931193075595750855167267721883372851782909018249435578966952017742919264806942788002507941637505502413695981897197325137024673725642862912330133272669983914938753785449190648590852783111935073476526422178388954418798005290134876305651684533652961178436826646381597295697348476404309876194533002191740118718835174878074092920553253890633052071626824251923578658080279576448227016252341565819486578557818770867083483858153106103772010823774337221630193252312575298972104417560536517915234473533657173009055341877151264807087566388570309622085101408206316581295433652488890276848648879360838369950223138420547791808257143003073458160238558522554445850022320395294936384431958303899418828635324992388175431978380684868932825689088245425934651940114163098382933149883728644376673491701369662035076690127233670947479359202889913435501255205044145967150288227440816326425648699350019532481258264391532320842022280565548702990841608755605938528045823660076730081011322953949876143997404218424449668718445868604863899618737432511870337909183513792401250534491202057068085424014435807553390807507310326280828350881377791307561714039700223339607219935732046818089766613501833661322604991405694780721092660572253307708207798663396445236673763304074323013872672983470031534181496648151752612413171790006112770574781718134746729397866862816088030460004290009797089981670487451455433597238675743394050021815139003001752194145770300187948451270752483929942970283751239009959783645334893162500645428596750380235346803579423678815549373527290296904591605317146232404005796217292915527433577839812551380238270305171578634548900319380304402759307714897842607397302749808889906376761758838225305289455514168094730480601395015158635829663888819223850472919556465432789622833978411715724937847116350116621368034756575242984093389036959402306897435248968807368861599521919923435329350770105878453817955579200131940798819957519029969607257639399170457461888530166552702554372970047892865873369801021850359724260149269877868731821751318806226963604105694019138487826239786924662714563063172354494277380004332503371048307902918666766312781846700146611256068313105674206930187755194993078159002528958526485281773522091161825392146291914738613780288830912472305962708616038258580260481293252280545087485510482705559475469201304375969540640896740883651688476076079110643095888530561939702288987064502864337245324272496894496677973390685175933256579246525076632277984066243254329515021814789110724028057049320610178459795542120487735142866723846509277157286088474191871644175503465594594858850631667034771647621660662217293750186971955436496047467343157806552420234213417137550845677203867035585094239121018458034079943234219409708054351576328581329435357460766397293614994698514131721602798665732529595640859119323913779400798049942753105988385349681712297924251452028511723280609301512292382595080078636726460646022080873126733321325614977518943954051137305865789034684053031726872922793031281072498707841150977288471491966388462283324376014511077334203461934206236689297877263888813268112669360948825570130027990245016116489276628920580550924287748283634311374915870178688705791840846729930954092008460398866015674949354940959043900158513831037183486747472023458175991801356903491475028701567069726003224270697173759883875759674634223056690826628699326959790334439073495894257314454066860655165034305102208601037449438334696362188186464948516457527974925288778829162000019727592012734933139712403384625647081623230214394258171911138118372236726173113322102191849604415701696005888430035699653329810769027723562776261003851362830240873862746261246187430742895209837827252068426300730369840586644331373571408069536084340657244567598215919262081189979569550303669687664895827495181939411584579038969036949112498000641880734781725478171106599917277640469333924023856200995200046223484606930078770690582145696498032657370206408889821418177548679602727414765565311688446663067264292729335159341904681083109767767805738595197632833457929259130746911974477343701640739371596163125974259457245163309478464808433326788585314489380616001403499331621596853703858239837851419018471685676424492705136280118146210312846276287865613904895821319399035258250692725390282965438379226655082120471942380830615815874695438679079703463101088584701817440286883627666354816928474102616731989905468463147726463016403893374038028909804969175982837486256607626377295826392973987363374982289214976500513478516628991152645559202292828248545035359499439706951529908593333723935493475487532270423663850736199689888522008924131666381210156030977676943597605377167642108502256518635121182250929673426788887911822553057845273899286071825063211393009322808827654204363188231331725254287872583659165903554425932381951035929439228028207259407296187695095295918858930998341083714256483220799224462696129904196592530037034415975506700317926425540688651460069393003477144489014430731414000552997756171370752706380605196200030175006673729147560012159532043752005650833678370492898711319695833535627156927813402334573970594206779109297381545763203501619338797496803770247445416337489637362783309507422159215152134000225716015095468290216765257489640569100564724451544045719565367283406166462032212189987898219595995024364321297218274690832104744842687202141825735227470323418634551544252018386197234313707982780109486070110841751787954221234239027214609619328138212046984278015229115840575090075479801132628639096597381827304531791012770983569140767468291556520440470148207360280854039494669279688097882881589070542641618637143982996856936198128969425256531371879736371761779694931168630662294110343666355871909503272588380732631037885616859049535334550431993222932888245754475584120959669904355989502503209768179740839900833493353901439678248892765156726272886033009707220436557883465753532793237241143931462460590332277897988787315269521726845639910341088754120138571752771747174748384221395050094766238630598121336147880506459687022802186824623853205144588920423119134597101726315077717927190870031192331377436941487687687418170569531111440648561381957790960272948530013805004585097425285818353450659899605091151917485234134861064106984176073625596221511449058030225945230941008621499555958750991598765538061807471610405640364766375228723191701220450206780903303789926501332946072527721613693975587790208070535595947845393969177064003826540218610615657475748604930841339016420733416545092319053315532278805023074677969952640102646631696070846984316062589250733379109779844432096399948566388170035088697194039953889359383347696594109398147217948822645034105199814447665955194506770186087989691878202310177664073646809724930767656079064569653660603893063416304323292660877616736423088984918654658719473678038719851531123667515527817955970982123344304665069318672366308153402101512027346196694693716949334950974433656169266008759892221693706693051765133414415424002385336428863427295247721874157311211425051921916802092729368081197042297186222607888812703715488295847402161517026734955227142776208239167652968960428506070531170803961933605550337610219767344092045168222554577333058153010061579663702879759365206861393593177008242983749346220926103230474656311857403126181621948672231841629360418694153257383507213294955460112052399737118746346298620006489284647859405607883081200751745570579995167492852281789599198106684297939817120447479928059325556338608697578243817065149248861995461001381289190102387099863085834053288339920431035145337577432458300082781424928436987303860337262934286972056655989460305012808818301150865157127061464935493421509156890067652937563324810297438303228037787650702607097261369549917357815892616518706311081317417735425152186255721283654878154678696851131666219792819295612931952351266497249697882342219141153916789852940492799607241945754823694302496321769239096862103366517849821404333555181297670512220758030274924640632555000340424311511301089566387094582890871788496586339773251372326449867819180862599352627973466383809655147916711590139889695699565226523510579068935107719465527679476192590420643458135107591372248233561836907801537948755995125454746717511918252378354605415952091133500431735882026582238477716469285249662309736015720315773129481101073167145150354021517374371662961191425862686176469366590813251368234844561132604626968959092288498152288920384833613310897868976566382542681270528931472800072629802727818194650561597759280702745657368558193886953566758851505106854233796544140648450058582054434589820631084054361236428494593104097120232142758717594092384581635303010380400130859355543929317448454787009658509502009812548770185565261935603945647207870447119267571771304700645943807431164100180603834490938726171686148636671976839812920817659886947535997445349666671758322719803300935348509598827629763702351959175060009142538835000052655445226171922425245953092762058144417083731496549412900173636040211328805504089952937400849605354008368399242451510160093780937622470698383686584146205215172511660027250133646897936711330901015061230097085540929252451710249506187609726335895065645695122076208135616199564140751643910467448051599309473751547100923855194958494634419616731765529541727674965995178015315180498275212167951508460466756234370333888728299835328919075474151879375645530370463268842925797459158705568361724855793346334500996039856475164785607306228749125389528349494353300261625589128634809398817146529739588402777904284451785798910086664467480001040789589689081543654199378681689615128042030552628297979368436813447326371139989411897009124558632568336677250348173464655424344738382107500331857792747315325445055059699415504836169721352709774529883097583956518580999070437144160645987771363515204064604372444624865971592687037746004009153866677036116975160071367645926972082717154749419041019722218557115557460353158106540760134539128962448077734197511084220236561078414904538231175180593047873122887947015832520964210403652915440244502203533719074696141292571219703471417499019166495911716839318107052647973827805414432838343824925809224642525571942078130931663767063800357804922957225385777368292691360152389604647816510582147457354178293917045227504488167512960771764426692962669944224439506259757121320321329251535989681105536802315099599951057592887876161882782478752606074727746714518030998985887962145718055551809919255125773493413490682058078027442929708996687735383046089103274766099306051013210710321239668140867906023612569566463711571850501358022663300937354017616695028285897158567759529423288496875718335234940380490351629688911009134234559696889137824843154324336302955831022020269985036292468134806621127277618200435163294265006218846522772726626598355334456647146601635178009041832462331107606017154167598172469908644983757619403124992382095694040795792736533766002402474282448464844312026942843142938965800210683783219226633137894031919688522983756503928683328920277863428281447814739648847043913443418642302271327291840308808011121093970662249905597247694634494799271391880280855527124992508881875598159893545079127387790300987461317708615871429788809989337425817846038654290919007648167831523035145659955797208233924664232750108555337336835191771510709881133073435813848070875567995026925445158454737113134352486702522572712919864436198290264165663818515660647436590383214923101785805441847473074896738103686108846808160816459826505646886597050514244819124329073825212409405606143214656482358823827118471708515585772921203227960724776199612854454417690367547595378836489557134720105188595958702710585164506225053267944439904331992250512210319883642347212237354068466379326925050227315209025413304808370342569365740181997154958702562902753014301720644130420547981474334031073613108474092178620865642386727622273961253500137159203566680650033537220372221484737746102786710293048841025007461697505193188586282486559822868008752843586686967458072966275530991835089614898598248006329152892699124385088335618028672748028638312676091963771551111176462860912738877823889229161026422436124391892947102162549045735503729571591001662507084211092546614283287829529838371689163349180568411032757348924315049602663531834715417319744843557778243724399796819233903264129992361340981708682259430086078667996833441119162196016471972769937594715303061558674107591844832231077130157025018817877785527185093614792707657002155032665703917665471029761997632146931614231714216920968725312349882105282594613959696013817821584104948414705600882627746949839893623726337381334318945308112033636788556783004682355862586204308984442468938929269026080069546754901201882436279686063234704904157957608301178002129400223301806222443262520698581677782240004560059490189370267654950009561221005583162052008373279600039117532151951979887865446072824450987342486312630204542697181586827064287292857376371699225587706606102017987639133463068082598739192579681978326978673187455168002864676894749681473687902083874467627459668332822748534740958741289380907709226800599274907714542182845284307716675183436631500929798751240751086789519563350673745389044514060059751645812342020495497735095017611008024736098295735464696089773774632078643322009642824435578649020549661205815314293928662289325112639057660332163170230064057248333126006005877274408576433385668632153878656515805737766877352884496420258776980473516341392131369137354220656949405721608862556174197482842222827436855207933072738290020136932227706138788545326028152517499960367146294515718317306069524470844952400760442866954678888830184319806485618509783099746763269817475158690188444740671832029265306784111401486458456282050225378919754545026167668581904852177016581313253819803370329583557024410878089947822258474505914417591615021974844510835141083001731006574606384934325659970793561471915094533395648257942102909856673153767358053805751965355357954468414350567102099166360313152520548772054879977125463552960430621434397074861378958385347482180130903694663913125874598569912679361177897817851435404504902740713252520808120441189307068153757812669254214122724122987995405459312517975061000645530740795443219022620893015904388714116561590458977561394297102170271626186282739673466205436182744900503859791467555322349424050625471053964058457659267732229380029976867047285392190084787540123050485319832871707898186684315356301349453373457537639568094534604737055433299641750826961762692047182672967042455959724253488365415867945031056029393920952216517129302210418550878538636774316901857928452081176711594882932435403119895889748300730869357816155824929254464311397415849153212388420041284769433795304641381273429407737921542869674703996619433876617945285869361768600648347180034525240429471948561288081320174046773944796706348202049368524864111032089537891512540719863696055776115179214967984836010185943254519368119512243238351570746939080606324073898630339612225751367183862401227246016915941515040562726198157875721184287651554490546465017037290520099530475122142540661418687773858007778822152681413025378423415819165573314398571658780744644249486066659755064249957679616630658366002086750947961311421131423268962929615690681588179423442161592588096912586938360713094450278394423113140578188230490988825688457089403577402956791795111076568628825316351494175841782123165032745660568351640635068977270946718399859030405444166523471038542827927403096131931684280501587058563452191182527579866971787006998990251794708224613262650741190100408780488662603627418454971704495282538994595854528999634036949470643013746434580407800652220537318910581904631311362721713644497788609216710301964121614575861039962658021427716027493293837100391750810254475297542103770938566986214217730576387756578069767866778265481285289086139169611375269200746814425868242046964595487897038825912777154956736786168364342209153992475589210201321134319735705946845404651723504254977895903305971481484352713845616600718185296637564738597904073243886945575417956795883970251180117225175826485380869654495560983819954289586707768601927197692484711546728577069295602715660788110347860753986679286616044376066448875502859187951240632869578382854901506940480796643261904847500512771842512210433270841997168474060707054320648558227503088899136067767997842077907524549441148204713632201435574359128950555516643378357125362071723844582418931133391384999316429870254103948495667763237921877359392071662199360127254919839943914969944859919568117136074493231848178933303822438823046450811916391163865801968450040775636292297412145495948835753639734527538449748589609710833146472145965071418819984749825874259734404757934625426780521660308366407312992807955275378214030463268298062473046228087065073888081299389927757006652596725820870587805901910952878122128773964075447730530420671093537224398344969516328122607476443030586870261223256661414535278033451539094344555884960368726018769192892789741787484746510844092358373381304498519189076889695253206369176068705984915124130871160203999053070526526731246061912097209758780361321538862480110964222546996491626231091793948600530847316695287547148253037741096844909868859725239035928574960945076353975555083071449181131929294777487926162225347251245596851524830607661496443858733034379711883776481168646052930472705308003960709242272667303015472696217650239379133372830109334430090976272087208815334755900023185697442923195648992022966919084604428321080669801336508042257389520951378929728788940473808690242867891718412801947197670164063553733660123849532530527925509112013356017708567656854929320367140522491868919678154118961767759204618237801869894510126259325581317655048489036824166832314217234338158630807328530634838271980472623768403892325589620731803345814958825473680453970510312989099706951892606166312450074510463769263729443939463027997432650639142339272370359126414999212777314092997546276040493245394136717715393661783283596152739731524361461354855701415137197892135998098225993957459318809830450202786405761000127964490772206566934365708940059044178273448523557486762367562827410938337208779383128727013497237972113307812424911071925313271605653547412550859290233768939826336505745283226594527586710835809463569403412655097106420901227623452198739791062683989162079141410837710729620763474988704891719270414542574105704360412097888717094931826144501500624208451929231110209595284505463445357120662506267124101816922738803016520349784711338318215708385114923289819322963105708948064024348084334803748657153981595462671867933632481713163992347056638689538581052997828402857592852823238956649670941831804892169491888098513414906397354224918196215185353777033050615085021126975005552386903303244741202070079266702817073101550903496459127880114554625810480578429382038712990156431826632777427708705411444216275713877142816522286506274300076195803715100426896421220541063342874973695237901110470646115974662522315739736968297332262431556921849593262867363035358204504668081997410022658893982825462258472038128420150494651761000338047932538508742241738696967383472709728358012162638791239424503133621816646153826014599629638742294700678623004481988678453322304176363127771141665602975943110013726112303663326894769499291158919444850172246263880904533927893904037330784508228735569313071974421673543559498216994191082305962655398267629116269085995109570795360481776486783235849379163421243577992557902439534953662656224377175844992350896184600480257637368398592697113302122259036792793753422361689516332989052186708433043406210869435664682761838594677152492611066432746779588628087581549332848389760792708681933164138111267113375382763552148819413513020896404192525094557229144351310909957550413940796380098746534540140905322599081431486573640417415655458322336834670500279903273214568442957767088561817253457236373199737177115936367849466219933709219856441437194957186589677063117076912323341893789670252762149259537713260256244303036307573787461581583182050142626187737948202501876307360213004475136282985182126994686687917965806183357323864197922303986769976629202144278199330266744598973587951693179982102514900143565730820192788966315302972975098841324508970887150912540682763813589818710430123413657121724336226916060622612670843071807759549277728696190017408322889764266816571667442761352931950793218727420571835269809192140835819199959161991965114032951848747688995144169749558031399176914322072502621357114818794396067777902402015082365943610790774794750628483930124045506756305145496764333758375630230122889017922636969526972327705313663757365955932881066753383388710504438245153779593809134992115771405831886850831601009541101433103205013367789330183501560747106618817530462512173303236426826157906448680410789195844883932859658563113589699487724314909217480779913551521120725889433674911755792751200836455670251973728396923334861227872009312863143394583380369997474828919494430233137085043995477464112368347891488138901915720792593820013852520866462619033877245080179548746755384475189421331348424407251049435632919844976667944920272337017116790715474419858729387448622029238381861601329307129269811594164247867394529771060559379460538708516164404341547472319199981689018349306317917593188781370950691820341425821061442867499214203186687352295420041286480295419445727430105653024768362493041869655237184019956443348796558793235920448620616453612988647223042223487332611601542553746822679107578420627289052267260527551315906926617922268344259196880775432362366827457438952518586278756259675536655244231581605413076630585933347086293384544714470065116928495878509697527831652702170524778336505285153801166178352642011006928778972537116480847375650359776754055874528193969774484552917408035870296184321666709261714423789326531645045366605567524384657688056717673743953672945040324788541824210333968109744815949063919643169518292957951520765718053248110283642736097806671888698776171743359759572317114884986869813883240206290808671273286668876368222962773743543283750659497618599394469829965358982315609284576534612559655270419668358097771141142461275104334538360328916409404256558261271456741132936932631476531582407236185961398461127495965087667425269059991916222025969886757850941051780942852763743988548447946147510783304548440382690154708628069630772943529390783953508209109666472359419779153731583796996247401963537271344433299833487848131303475343818227723471334572906732376231250283917735383388236674740233005171673431359632400990090447413462140236834021788821427596498952868730580209342601431030476633160228390202231009016863710861920139894774898608196486055567522704580624678237598459490792363797670703813858613364018416908279900167609107006261714802077684508136654329648005650206667492798594386820838770296130245487259070171266510566138074430740678189730608401928685766524926256161595639472110729682167830223397539673323975937371500009973240682642195670325451654410533811228142125167338486225586804244486331539302336241375318297441937748731290732512687176822701460964837699602461401904562567448976214096268343346551503047041106783115188010962813344475124249920464536977700096776343500901596972733220640136849330803461316338183924761824815779385449656892478150743058545433082774328755958841033013254857446793191286340184066024752073120868548018039903974022170214725017095798920779186804540229252117147976706296976684216352739877777421842951410511324064717314531928676162930332820181276299493374546813131416280751321261758600296346081394633268071464069631235884754172105049537744876258459391795371419044942530584716264035911943103785425544760550745439695926169199016764755435770424817447900495213560502562294526065301542952340616028072356153106961908903643932418288023915429348531249276697351769625727681289170561770738152099125807960500757324953004514904029640472631557324416987317455840658581014157646114534986892377209659413630215852975589395654910751629082843856624470555213849692037621910534779816641447665697436071662145658721634668236673460814803246725023300847748006758523928425887455027817343827095634207057176901680197603253777977419085626032083589575479866895115466208562781509727851625475717397979503536129728341729193550581988980531100816872730239159393567612257578015454736533171274079787738885899873446556145371729907663183669522475369877205711680040059813923591326496973751144832725937580522130325992806448457670430550998656234287662506309731570688614470313812692689216979676722495987386686166780004855650532503670488423158025550728334367870167629120185161840162701846397166238651636408105015738613640351850710456567158202197962110491091469647592464617255890215606643837295842582682434928495883710968709227377742440985616034368290874437486389842780871259825630217279504375192657595808343858220020168675920655864609957248838661653809269773003722881232501585167788118414229591283142337529729499782845148857510281441877360793122745107507322425265699665094951388155060247889880201411157816991053519654819026692165102395666310795358952135057447239484136433530872425755049209681971437939898279030770595117791383644306292744572006057675930428864221261101568466670439576943726815862468047628059486619160362802776011069148472973709543170123692795144673956317172954631109026011395293899277512467932600121744191010522792923349274249916715007344076564699767961315456101975672121024565219516157851456364638284413500831091060008867790806753168195315472932979628922060003447369955024262933990789933599579147303076388724644656553662064916127982508556150974358925791448405598103466931140440014302032635542480536117916336183442694288402262076082626849851858873458425738321563672082219434499526470285707891613850989610564633141796612573978913593935215861983269243569154397104025609981730379473812589716023172533263150266524767858070444112723999049693610321047514664571238883304528226358920737534996252872701945065617727572451038290569092982168951342950998468507471078269167852489461993226933469926170134923621843425870066757672124403214403373714926056831104305573210360704031943743739009119467349071342525834303682962028696644618877642608656273469482012426932849612478264732459970942992966094795528799851050539952463137700646258777638391788430564260537727021606600237051197359276512609029303378629253482693553671662319899508872134613523228280685823180153793502434551061269535486159093453663516302007695529198182270307018444022409842828022663640658074881913089001521857853088152878354538127845998688667270173708327606136259065802110629197588597107623723957447795679300055581434176196974254124922418903386600164129352762663874635045010416545427873064043135811000104152268070626354742293136996090980106811305752608832568450407829418281980322699401424053196751059675662616376184780104440687630632463373064387805712518724243070063418825152446640938080342301861074648826809078858107599918247736715063015990328194072561871502953832327800036187696731214839856993705432667810896143505917329683072407272002980264415528151018298887363714780553144943002711804818844098062789677410501931307640513432859454645600155651671546206950296989179301481508638787865713141945020992501428415650060151877457260685241508037489412433618980775180504933754250201769352494607564263475669059883903541024453235842867134459641653866450565516790495764706319795761711216503043290383640478956159421371722918329586541860230822267963646373417669319191070830486558445665515926209094183483108945418427900699387172716347128271840231509424021165949233482531008357438360873921752027703667674851273633379539910129973259252801325355125627819806644880203871168464694883997345364020162166285234324372855962096480558919209914510798522549639251445800076214134408648662016098801916082597408199402066417241339330955674749737353977245895618100549097097999359760967222001619949623408500673050180738685105991034599189935428983817287353742318138372488130880676790212248566486352031352009840877933941400770531858880745881476268796068685720053969960975768467100513953426489463301860418521286392878696173930574882930237381394964166708202018298880250852644228609090093382590753793953850447388809883238217498518612059727307050211501470005233583046352584655914519443964311004350765331618664390794278254166867333270481627305555504711480928088087904721813186994294680325043650104578192648128694031529909825237023682385672084005635079239223366659903294025451670580587072462943203982756257097879919764164225369825094629435241419550505784793389372524502603584693856912620736772375161373071044581704943650050620720064025515631750733611357487712785707655843296369194181100857848798662261860339181906607208677492901354679405121452990436204349860057453256854502357226232167099379144734655740356404057150740263863917596177160511050741943466666304591328158046832960211380365399961022361619876618130325373081604542270773114711213719745838041437056821559325682621725253911878186911218136642134868975237998090206462263133293146393085651114840405879831658796142992635101780443434843068238848876326391720184387895995324952179097368514767667234641772856038501851801852700641393549426999371535551469300306082007459142743790121038184336908922984444827042786578198868730366303822274010393841779799062007078177470837244564932779357933445581920843339662812792956678212638351398947530259810553242052580498880435456533926170690169824093430904832609185072507153929333553768020586007155830038082931481814151269102741416941330883767164815711911058892736599264244501104496691750808330621207465777752551308883446615606669466965986740797028030912588407321877749242147640109794792553727499164412837341469639110197233308293825329063519904358443191354784843987900886740724351511199953349246799843709927672819975607386024293436642868876518486056094746283713180184997144686014207712046134633202774076647320042218385194161314648363889867013434515624509410914210145367996062821924257080182693887547776578585078988517061732737734112295803735029510234262350928334088845497078508697062358351166457833162806720374333852614114930336574100072965332538107411820720824607937183105493015971378518280165776415498054689817106015104670027630035974561997997770705067148551935161359487917860434222539078870417953576668503312068540463521424431154727300234468040364216689118725011288292728531016105772793968801733205687116220841468415748540846379071847646248366327959850603353972726526323125300580868911541066428840294240396442222679998578395934643343930372043375192865870770353221000401666883361049827749100285043316031860935219640903828452100036761330740633814143017805450772096706167310191008989673367481365638838715782011322191056860779701583460203822692311901842088509163467355572506184860168900262919230886218856739567239380604345510933056977386676300833910457393279654202709990155890140413198664832759006929455006245982024225862252641341558593263065313403993387039075617953832121009780197898029013389432863865717677152256717899651022786486901520674498342988339416907988329874988272789759183419725499810822739551169612371884399584211662202926830064213479189732522911086663688111194480588966170142389258706186324396623671130987233642737062887120321239848312341542559022908418796996993860275432474455580526611963043349070849168475087326240804457250902175681006047339414344104889777159448754150842079956580998026907331564747016605286834426871638061328834556651778152583335537366244503431555448978884740986174024788276832813911529801057254633542367388787730831128474392478512827046511906406254123397050773989368868178580755691431237295663736600606829963270530590567786670729117129317926724855989309294747848735706724325521139089062805307519428584162908264024243778991591477368408516320855011893540368710769020564079263568898924800996596650771408646170667305344826578543475538762003104355738823320005332122562276135756842249561866604379497313114710825374241724696164781721639845390612165727448128188336880098926634896151113113854533470177330259012038435310045868432496063626501506018211439510127158539236861933203369324245940003013347220916276098138676332253345023811572949900925357462761752944393510635583744094564010332657561903097376767683927784709192396139566686178092263599802174644522349512961339180349236081203161697387409174704726787556354556023528909947951223825359773549602578752071874710047191726789796409995648843952727802942322051606170607805055550472430175922549043258790345683462573113127987921188682783290649931284601905233674422338765086322344927870559757069251882856795007256038407488247794608700982103805372097060049622049668573845320556526270124737745660355981042557385554185855528609298303919132634865564941568652576647667677452940199783303469795175826569001731121408324078326877632743323452818857491393601301069043786318519609532650494806869186707471896975306565079296322202790952930483443162000507067302076712079501207193381778916814810168372349960230670558577558820005756472105754812682506053323588636911867447114140277080505298328251748952003090554096057362441309468990482181302316685372123249849507193824899673387129174985585541754758696872126430664017679081331377236756178236578409698025146478150364734163049466490523203723393137324449251799113590313276006253685248732849807442549297356996926099683145830266043792915819864289319291479241174466854283589789193029530542445032515192491445651109459830767708023008856455809464121136780746358240581410370742468147368503880282395856039977067449080530070783618635109824240607346521817295320190037726780102075519231561477299833428158955557408305236925725090762705093949343072981131356793239131885862070754934599783040231116988440062331732279272942186896372453607107446399086932477040549311279170842454642984856083048788302923480668771448257914236066851725662879071165639851049623834773279605936694320452227026587116265538996317967112832047808700128920205357254920555796808409535120069352786705748208711627619245535092700080466075370370983154369518274047770094129837735516412337088129357608280032288296325517883799196249944610312247082133077718063018093338053834743310415872676693410534214363667350599066440767219371397777880839396009492865835857819472716774803771444218172983004891257899073235331443084977614618179326837089399418759616804812217449286052578764566744242139156415305889068401418448890977047192756569521106304469805097433618223591271281893433101357206012177357957359750661519280474088139448249808866350165474490997483770527192954306705836559821171266855724427977819921718639970306302840110149361703426094413146060595100503514538592479684985555381906891663410690380302583072183238135906059559742195288188509154396448891393696806133896120419140246484328683680112545229892383125851989101371786452965197147366295013227736614772954704050878410975019764172239903035839688289692743490821727173918004887457232565835898532951451853586938881366727506798394640739919506123050224005048598411486802960487341249192027355419604290960746615995689790887708439389664035670691708881589908909695321093725019114033699182456568982785856142473238599093326051739348341513759912851364756062427931158967592517996207380224307843968945036388160708009847273970595504444977587358202407412307973650079229860270478414418915812627444078714086703383912016482069212510269323514122554710703989465254526213801666454731134171168362171887327388086478244399754287911997258476270681548145679543785219888968900158045611997107244744379021057648844371828926875382026709498473274032464461588605213072635223628960990577985305705247926400584812846792314898390048615792292578337304279916202134780678941751066704414515566699312564742561862518129929921394868033012503100846562193368468622196418891396469060161378985049791123306444073451844034671947280763806661297498834757330241894211604344203982297012411009684020788145803011631587573290704218863861096973335299627543803598157878308475077915861501724289032366367828578349953215455752728198507044894167365586012966069673720636398992079024935651885232482115387782508613906279548978004018609548121465206195804782420808201866583951157493293794852857855238336757989082686608737501275900553553343350617291342277428498511594612016738677216480368882344496161090972366304929464650207081471479580799294383741671743853774975947559725282455455764487970989046083175150052752746951036052444184836863011495890851662745340308933121721471136829244381828960396643210894113204879046923712626200949950310097554690617730817123771158398565873539571914179247641980328693644341365258107540724885679508662723720584680062085580659026350373173702759633629073718817495307142211751418138906828798129915099695949253635799414415970980525975220282402606513534086058176686129432633547929012901537041112265235877335281583390081281313214850928377688093063533704693511035061775591474523350960039099386719765372709639464976965239740628201975142058483053225501510297849367467099264193959416947518094920017884299171431797012517077722290038685667606906058044044884357956152819186104833396068367234489050984263741346322068236757816456662833398459638734160427882685182944780819771740227110840445448876543418908056881059806973168152011180193405450966843952933318854186103914140899183304150317600753389992599170033699978444894478836046537285227983917062721906183239986221512622168176464112508776177122942286801939362050137968246776010131842293565794744854351461328590223482235058580366656649206222406355565678957028417921561040658400503913787424758453628786897527379355072125044582900719362252244312057255450691058859607921733561635953055516456408411343585211542671552678583839684908544615117561008529718892789294362018355304944008836137335664534128523037619263864850453244280324839623342246338764567957903392057028222761746158748791552682404393264485445574431182630542953996771679337765476683760673314823777374124207033318166929934698060030997897741277516406323374568925128034784042642051809420048392352565643246748737368062617998825345674613015461409529957852380715527806301003435068804769257036916042936489086241570917074682196645468154870591178808495299841054188305077875211160592438198500193659201483028795880253084921934285075745073510566883867017033589100179807122183392136805545660702376867444589712197647730577658593493533886550980760171051891259797662926061777241984367356947622668858646985405460949030621667217063864283814186622497226775995524962673329607132479483925042260546358552606781308518440977831358680564116282332779148873614478410812071725686875700637617265005192763079313981281494364212239242119375151120495226339287398520515231493341587421620645003218080166187270420960250246831197594965185970205346507212655607223032752065680868705305991531996334569648448906959682017952013409793767056448067869097036921259759246186043790699905916162867875866755319336068281210882199964794186666258986981631526672836261003587617057738472685468454421752172315829404366234508825036659961550188722370993006386605508310550628816333720750399377549100874763759923232541264164457678276199385057984525234366224843159966063409183652618643189991740024961221844961398512363188117074398861349013917889167358147943235222987195980237847074788837047609709181806914440551610855012278803559063759756248892442519536289987770422860046386684977970693289845347241209708727645319342853013328289333639170991710881046804138343184138168980438961196581285746823110271509942574162386817603424367086717885562951311589279656949473507557662416560025458627683440339601204745160279108066220373013845670176923162795467103997058468553753033557206754680693065108325174588826387640160162236019509439222443146675747237140854622240354897996538292327680067047659467648051858766442090850622860817674064495360063645058834574056418108820794221376134093579983123510459985338174715690655225655911838338991757931415642691224456766642873340945964467365220207033755399186116368863000457232164729206588721905411223429735842115114559033764148759007894362877023336829746296736123115075458619562418068033861534145840535652313048332167366764347734424446700952486962529462201120722609838192089487914375714917070351672508534761108382362457123064789314782251794881373138177996816462404803682328936455040383472998504622694923572671240029286884217803111191561076344003190554765485065173473907760085039012341721130502883621205735361780313520140864557562619142151928738045537044159483631933252579655148558176107004241823865833901755758733392306451596089896425862735694239271376243691678175365570913251592822935604361735717616636400639061548352393545571392036914802995370228937928088784958245114791514851013983764866702960768629005402352276992529361408003831006350204876503381894854772761539642769060318500622115908370932924164750355286846468082599069249259445765715943506389440252989679561856882299627344133307059164957167914076976948677327240067324353341575067884506686274974964038175129769861221674970420895644076009665092678496593375370661628059014069629512080515631118161743077031742058711339593705980707769787423970150593409913359008065821720917882265681276956447700508322301111269248519086599908327253433254943580524746927128191534063156587317206724531066245877420529605368748278381603484472968460344742411823728929288526153689667022551146335790066931024149656245368719974688221084760395285899234524214225677829578226784258148053883128580288763590047406515821972091915019410956625908799802375145278772514671100131086718995710113408875707708138659328972451503289962976156793759565300395668276731124836125013231135119069629197337505508905801862415362756096964499309148035274307114710587270223149667276603436094061411431391697426387839137591406403615558663956681353875051165837996279224663052749118907214295794509405937324454824591105897781475675125021805179756095400231062623494602468862736392050776610555876327570100698243541616817575162767459220891378044508934213726656216260976771963534578249447078264247752468369068215234278156159570653276749346525424184451917659313364769592534573639838509234338537272217448767883568916298725722650951122470960523349069673051808283897226241973721866376521991012182215363846084695871946196329516572143247745743300179307889929601418892976009349275313049554033872977347293598459958687959514245290515717198453216121680983150705837512495384117410966298234954651368647214699443343188481608702385916798337108357363251193745067041070941858526708846991373023725397389511526368226865016505622866148865645908616567087851697549205101010556480800042538368578568447455256685168234396915903022835700989106651957735422783079334203549262663436877751565895965899998861102537839165457226155906127713921150454051359904684949324130135998922880812818216127655536102906226564509660090937394954604604850057790015563246488822763217285909539931970913253153722872920189869181499174407796214957474771632255993149799877412047075806877262859786579926332256720394722340630975970267881368866881324788445645579567171805660230097073378660886125226770181132813816459146805254473723395056737126792576249052155453361850891335785272615049378093255215327247330840720547055719111254398776898870363738577130164763608217794453492566817178119515092870094001694312426335429516368788969086627424932519793843568018088852830304250075117526822807466525878711304376732508341148614320600985915450234459766063157995259119172624067642885585645142845694235166318261142673016068555169795499523457969770983123283929424948203143481035399175215904837195694460057774284489093347477026744505971327599090721733728139904975654842644185587727845868811401897495641833023678275421376083016528015023633784099148153614737751893427479516578572001906259108708526696660589950388695332492648705296514235333436690955316089209606462852724166059710971257907652177928880654175998166021782004915847033389574802176868746226527769080962560074203791016220400351123751853667811839000312879474821742344505556193435085848583267486706281768963375842338543532810481657544735081777331735667237063951014543466025058560805398172059736118544320502527647487459183065799750032229602267776418654446844864584232411214174715940365503280321824716355101587754512859362395718083099644061399477079612672366785114017484327630763749819011579461476332289294842910905658973271462431206269259702924421365235460343966669031480349303018195299937895264638100671362531871236721679357748439906116715662130442464411893546791819071850738339226507788212260127757758223315393870634947773700186681436622050584828608951945737842044310062145014708244149339704028394093542436415222256303992195650324825070634709477584221767681621136691325434726027886086839385997325050918996450124847663382036222908097258696353852192299535576820021440426394502406490567572125660881493016647087937518837798298469926786387106404431609340299014970812408605985199056195585200131632762757749829535480698905147363904937529280142429140365164495537236938112466067724167287705082330937244933688450680210348235453167870315313336783121441561418864689913802859345791753570095896974455145403449281693617214118626968444443919843301721455785795677441890542948596233757941918606292242023317635226221521224040734252652322630536172246081807492329477606548052497136327466329540456259457187119296137084931766076812145425511740386851202525809079214985979632634734586848085869607622794660959160962253842956101179668674300368774490805172771947890609186170224311000799408584356535761187475104476513120550300104026284222326201415260163659758313852309892025471885132375100890584849683847365767602745162332821343682435938640947255756847286676566105519483258883758051530195515815808344196235230167770344394697303138282381926947886402654297772004304828846639128270006715696271351324387299314030987559253825092990391696081332488130007729006830350459315688816477535243646540939968583256983289728210881918646162158557301586236943595778341510278012462896233074475787357953604518475732142111296487199271247666998521854833733512839818959625300138947682405201400138555000723250489403713391642906561715329932145154714155595930498960107455805449035000709863548429856433643704928507545004763655842272213842852601376815243970992189307329526557615960062946267378363250211876898579731002476371143675031122142489997702865157833150841200986662523797886900889983352179058843967065600418711496695848337081854413868384396134421584767896765089381496027715307019130171779209301554627717306583348045837856351745490909981380458943032874598842195541589303992340538975519697751809936489132918738248173717764374502843658765374552603526893324518461044757242693369084764181354976380184388271090750126798441529659067035641903701363322607922176526215459210549652483034702873573716391787424175093990201893224575280411423780597813383033683549162979444057641129295271183873023556674016430572065218073722844716302257043555599223061082571970832485507361748245664734317048192433142874635032266062048896847868641691974382215823510309254239079244558194030680736010258746939843065335405978277523114008046126401751568220838218689150890837749875209821621668357905721540777411216955279689658289691945460445712308182173764102202150147814650248408423833176051401018800021227599747921599168055302634103583693064093648733348491577020803220369782775898566106475467631243165593247739761233186469004548636525243535184702392131600200344983684599694980532944749109404135415256436163081584785678676086883971496134647370032516256459425985482527023982342831747694862995706398070410631372380490167517816254241583548318612688734584309712198766652015093593635627288242965104077628427036457935734612539124850865010955753791805550180412930327804358479818848719592307988927511057838835808169929686268450132549307082921701696945296430310614922380563582798181343914291715397527384901442685898028244581488889654151694484464121862388592616363970749606387261974649235811647130333577845482697944502892027786211702839147372743832439971370637907931867836003811443484209880286495799416479051491994230350369965658688644325122315575599220923583148762459121931683618847180613186894709769882190426274552762799173867327997851085220692172797473662794644707618095463043135901068639251218045030391084591065939917595992942502508714911101312695996869286393465972142396196198040000190062423111996641453380180862006624581980876732094081064932731210183693542189667800774243555430033953267458383891558886911330936016562055241249743970716401536094862298391470178051862074360682746794516186336941094648481547761669354200631790088744461978357165335990616846906053549475247115450110342129491816885350591011856335414821751094751952754468985444085959653069229145516211378463175214572060408625240179048865867860403345622464151148082695729463889498957157518987140003373630317491038946601007773308778564668719023852892698593768537287362583775542573329798380711644482141504940516505806308934617713961312337231192255001015702398652126430906006545043651440919253361913458008242434781980185184528267140297821114271853816254704043606680167573012620075182296115529861793478527380969774786462681999023928814887851313512059571159891963863259073793706178556607847600931972687235318048290377469020512203028161772450422347135201067216408827515585443212800839156286898500552042727298154132145825727327448790981069764623516704763679539726138453705312075021012897875110345122423840146199530586032666863878838425120962109714888524815109972783292142087239633274648795129757935996802054008312218411360262319781767128346400161563132800444130856922349147279505404405235830182098732406267867994215171977678668034811756400372038618906345445060864558652397196509470853776391309816185772163884694385155345767972356788702752584670795015436394356209030152201210061158151050000541167716974455717213352508163587081209399525881097343257028228824464625705950058725569290554026368051414435519442478093297954554084507806361929114831106605025724341904938018645517434276427754635628358656962050767093983186362329870852269243797939122984829548449901396130212977119651219524989925463262789577407074764413621496876872839693099152891032220149263491719538652787162752936156278509915786220638682376609289649982360198634382953217818096458982232038618781400607302362724909032171901294183783769677138452347788311702806303509920573628403870209947123333521951436984130921747917820507678201478457027334781461589052062460292841046741853891976755137527000812939792960348171630134371768910920596111885135276026194632353256289603142546267355556642046231026336250505121240045684900568621137091428105150178311779976791798009566569419390826424743670310233538339477558784573559452904941818374913705173594319110040304952220602774662011388161163439285829078729243142748122634241460371734001930426528314852499548535990014474346283881947081570265651358913573858886821076633230609856552790120636722860628170869121670062229742859267018577622833209887135042458474375540849562198455693710113566861120706879460472090849631708753963745855001830076156428523326789924882901718112079593290878964431228673466726020873400334909813665014013944663698437470588507006558713072330812008205378618569791669774950154246449315189166610530017720222172442952612467418671000097418627661912244243145427783446537176321995103403652979854623752039873364454737690869006409290773147428472790268450751233297471870074637237372364910234787229877506530560219318796491177105868281946886308004343788420305959715217211678056452428134357141917589046084772217342561812868221738463840519990486383792532816411826472084128087606285799336041509173794197405650582043903998322981657899562829856455576148881207833179885176672700455830087723463313096917889129836599536131008465464596583638245623504864373210940226891509988963906948983834033457485087094727648864966181513344909443123387585226364610867875882119792354711255579221065820124276007200965480462542245801737658138281238340820514293711595147648912811891082751405576145477545423822911073402761111341158509368692189250978055951178575735691998580063964660116181689239056738872169885471874476734502865218288514503312028514080445279291174491981595029979168699848802254708023893782196902938048719717881997083616493092354239122577397092481936207166961166713754112821577209504894906096837122759420241239532406845086492857745162655970715617957618793835004205845618032139845641007212110282611435295515584025977666399951363374724946777052122182616766879155348044620277323717781834846219302176617796447770024365974534445521170828374223688420550491547872901237675333127566477327461841367792451337810441034527711382902356080318091003240096363939968379610090349957896665736343038592170401774433358247264858156306594781480869999074684931630014839005999189152823735095475698162358208394013163935527822699089748503209975768568057554744917576412722768082227230187558064226567498968811976411630345853754769042747150507260776136678630236304838765546905991424970292913888066903150822796583111225132878643373708970541718357125273322665075715283476491834078280988217276714323366918987881864899816117985045999888961318570060348700199074595284737876210763942882934168368537771023469617261984876035957002425333976088824002585875954226748276804490605822391139268473498103823087734459857855550522937958631458759487759951113960180543703848603724325872462801522916694600649907364978704720322204182793157130577375457357533001755578154023703822716479320270163773215354802129433756525543876403319817011015975613421618780273632342579065777963014304002698836475114383930851345841454161757599186281502445646190911756459226908153354456546989197166740422229262387560120982217251924895091767303270080601235382866648625977036622212020621198447676037346094336370864412290092559765566550578514359665336890716130992765115668022396484965254800151898912756068491019496174891473192581848162770948160860086367323666120509140013377699498599733620177188699111892361906572173656048984346329321046494107679783302205903134254580484646532373033983664359647927903767060123967609549354380927144348184925157898245501781453096897845932326403139366026067975638759152772542750141699849991453425752714812743202115664185361135193852937103421105718766297909686169029924192361654512494107551985176972645439706280901284400695139542690781562948799795596251089983768445901220098294556248274612962377191759288419246974838054960769568728450645754413374758552277849411069239408881630735155322439609475381564153799131594495117184045576687870390442289206123373042774375652743125888331553364765951546245785731949657903592081994436447164185101966425886590654426895594990565720750604315370887082667639712642196657074944401106668050370065588491567184455508742514908877184840115570987814532927108104142807970247053304243597159542797656267032383000923890944196273431110229430630571705608129746912061405865935482956797360924852706091166838057165522707177898072796972015796009719320141637514295277450427098135019738859232427220322622715922679100874593290299974424797116142949187587727067173478937515861641886468678489372131885333203615462812711792948964425682096896896692440813715410636218452370590236081889046080842390088774202840438085601729793466672650043265328802377580993672543043729025812936320455789151096765747474561266229953802781623824770933624220317267074763150158207051710457421658815631049500749623813061584611680030582976889742157266667858897190434388296800111061604394373476987843911240257271018562091414857678044169188186712773408117443046151440716105313285325931651128582886191007041898767728126643316548948411472845796920208182461849964389290184273151748452005379489928266192962927684224832196828362162421979348722044674957177626232622282463684712867674405686175947669114792245178513394503928515882792864050526570993985124527935809433187913313676555761134578175881654501166029098494106033772136701917629541427835493267032844004582351924260285145275705563867335715694257331720950860130162486774605486520426956740066173870404828230569628661848909952202474226459383523190495953164504206661159585842426660040980241654850877820181520078885733097328864796708945903347015644472182199520847430089294419262755901578983131730160245087817286584285880211110424126967734844096583322398581700205084613354819441520200917217485371914760211730622666071843682082003227551123295396843281801577669756365150911573730705205032677675938321691243910631130636150935900429291872331305438896923481922297520575148356642150764532404805353400465389487100420121884644767757197093509350249725037856890658801176054547135757801403504222106842317039894124326031071934398801451893707844781758515383243557565744034929804542803013472249044155043609795937197838225751916359004346391081595148630417912590208761625407844812382916659179641348393841370713516711726389972742412785763695096071182892474351484350518410797432090977213836657716215026212841462180250118136784179187121713555774808038159224026292541710742767681695223647516353019351836863075239797569198628085430836236142227684142491422865557912175370046709262653711271157645371141737113901671295380895468945006286554308943926134593589129842839372670586194787619661808639787545014067764474722385576264182062901227290210120455569460085277794724117772550948236409755237851619549555762128690102883353503208056124779651363681065652806391989138845848740420712851722335132326860670568918832972306065386155359939725024980491913796143461956818866539232753237682888081414205996373375951951909613245233741649901577780604760374580453073679737981288846398421627311236322248170414535698147205180293721568850547082186781478456983386461776721966652059452103767657090071879161166497981656606781015670722609312404920853792408241922392377063909191332719900394894558690255787754291829967193245987220769519396901669710320630769317317666742626634071525621059611358207865024788785825904591460231223546213143077693921676087032170053658420748807829417406975848168504344669485152997062393456172883295056880340306157596475283011233483465183864857558686597066542890750004481652613804831415627709175539952604746179725012880326617552840777898737130310706368912891072919746250214587235129816343772963286069754058253622261421951888850632323911629449628575737318437813198589139129245181903097870560532966309191702036709453120906217489909413825558819604843972221622914549987544039852776948780824314804871523738549127679011470964226951417538290827235057079619984171882104014838463253592381983953300766337446758151290159988104773494422289956705113352415975235150817189271851860537869581573378945785434438194575716125725141007555941501829126716603221400066046140676304729237830026459238316547448866067285288992349826484354710487524924597870608573578086818200146040065950789118282292192389638902595012940982146321603924875351036202849128206391006527526893265765869771096204798382878897437989135993221264576067243503257209886870549378294510125082320187168507135343300091877038040946340249924846382078165192822071152258248512485468069209523884829788943542269088208503797440245251081470021739454120085950968460306209118662175146555574716631922087266541166045389225860801087991201150356662380386577461830784005142309250841948180926708679026647600215842303559492549976999132567444956040364106337843296715826718887088856145530506723862392447507975892036326837158992080411441143021151076105881501419398205141389876902674344317315144475360887148642261030951007794378126350872942649296338231035742984740596918978758521191777440896781479679994247552404114619781623358366037813679181843748974348638468235261226726049823218805880207173324840199397746094368293852376940770642856333372577191642580404613394359741620615197427394530893155679119006820396941160267419171149421876573750084419399970177301303168742791765371936700469174163548863733790231862577126213148181930677209414728833950296545063903276040178114444946877550807188571259762003504620032956196838830904612955575964537766622847995637772184131371005699931129407499360535473166671091751497443793552236388221375527693733710506680060526808446206136994282993825844562058277248386350888952274974992598393171462931284812616511534686667780158052760983346170556932866647034740904187846651023476810400130693215660024652543596628013567884513593512176805623935654687475585650984671108103262070446558679058661502833523470310989025999788172941566569745493288377029408213228091889855284392972278903590952451458436040610894821857586820287705411969678281951418859179272313016769956650500506813628966746765193559994329067047753685723309620767836407354064519846019665005356750650865149836069006658511745987255433917452512335596439420141495991883878248432079886879703808733789170957834941571726132262865738772851867343162876721455901176624008581345850231079577230993061964212704102299616445378648498269046303877859949672013389455972834372719211325450326547528123091468994621165297063313080251098647680942774514500560058640549382941247238487579571017855228408585231585018979658371110910745876246025161191321575863660963422151138985971970286816921303490200758532778845040376180869426326532669219632460563243146951760686300309215566603932927037351618844630297829103683665413237493969892621593109018647127629623300709359682689159550367486146880817516868937742948308037870447458779722506361520799911598376752459232786484569981429655276319192004779741045144379200324349047185021515569440023077556580482206099366545171087077711422167601179040686578662752546115630288075792811797454388496329990586483740624497520312404535549681883612906927034777190049870949459932236713329502545307337597682593119147431322256676550327086810091875894427813072023241286643478358886892980910913993806651920625913868869385242440998594839995086827995117259983259069598233296343312485767073927463956251435880355401161427538612581284613257882454235661060781909684057417329990604934609899325392523948900892864637924778691958016826991317912879441838228651268780033352484030671868020903563122285429883892491166273370006250287183428739972305128005496225070721682773877454824536091427364801132939071275187176043634013029381048899678048272195958561789888984052153412381281114244681009250979452299574313219351884144773614273034921786459125960272974903814424695559125701602894527003673862812849682802363992841633686110020900764316483499507575063760305044698196606515598891666178425840575718801223345692846731507102948625188743122722469619874169054675333140022710685295181133041084045037521955450235572658805943977907725569976407398247444231155122386580471960538331306400705607541352950997082735569045276922845719759428649148596619085659961995755908890033554807031394344558585180110694033484531187476623191165009283983466311653471992796142268186574874068957603871576897875915035056898144179619381780806659483522395087818741120433593323531342658782335790721361055253302625189609970205544626928500308299697645338235681853598784593933561198541163603712085016884822951048553065896640744538763739930232244843883629819490340875041152693565510500583904990948020946558270883519349316463093913651823761490127249814676425324879265020703324038659707704101032994145932221671530646976976425260378769602129430659611632598779509183448416180527119767132950922259909179032438413939796475253612237795185952007496240094377243051823465080487774110267012429533806592072723315945642252807843304130492126866362341648748152269701582635118177427092995728857979255073157098660744197327241275849273819235538616954323826174227099994220807990585105015938674059937694245175575030735596439750115684591401616923146052455485102823788139085092657060294638503036671655477393303344324553635313090499304801595388989051948743026756764176446805784999786892914752580291221318015693067205738823905587785747622283904745792760119955943080237569493986909127037637563551905097502986836826727822018051077641108849898144513726484312658088190137950796649902725759613342481596468487854675474122866895590231313634362025068798094328431936208476626610058830213595722354958877782097176294973100523111580943356577074459343859823646249614663295021349021521392501840286651087900011930057187466684212267504025192331577051520263948434449865711634258685751015111670872018248499746141587471255062319252265066065863354220708934887991273950918072683612660067519629554192540944346744968503988454945428648758094728454335901662431417604274997499877799237180659373615758055294862075058465468763132555553462976201066441679291917732686967850219082448006075136304452280163873000926787401366584965709832781788591705161227069380509408447413667707703626695300762426408701885336060237825941243096468743180008634707356736798466618834284477987176590613210105946232233640651002422804315200964583723552487950129376892904401783456766272957504035347295307425571094075466635667533153285792224557382576394855581237260996935020491129760358592936294470884926274037454906403306635270071029730610418349714523987420286900507423358428443329792833502472327700791954879465606786951493291116532915414104038870564924312833826209188932488404939632566914905085412046473527610365675507768353477299945374318484445232123866347219920540832584746009171233577171856710859450526788640681087036332580574150076840444891873227593625095643067280088306642191707767237954542355714125266622261810307794746174745246914394242827296190793571710200266670007582281466866829862481216470655499213636606555884425903137451185981619951409611176511962927747588640302031788944871195106794601077223706023211994368456192735155321196687847464783601623628651985422827947524307219863420400757497943418941293783301800812856240719818836784799761067159540112205973283277586545012125937661314027291349095931387154497917032427880958735246920767480018920316987044486912247439262082755180275884158247763924557589770674136528408720870882742247023715524623677240878645163487023609714950596213271055091786593195847255564609239636184685239091906418479856488524166647477342359630785663494192305787972657694174544357307627219539616411995890203503084536041322436448796786811114885700523956291290803637023601227749453360488804136886118145603164955171732542714579753832086583219715212754942434932677769102889402243061178386334021829996261762331734918907596533222031814299775023005750416365127485942277446663147482622772136791558030813411903663716586456738782001443163407100876990628818101457858774176515859854579141185739261452136272189106136792109730790617055752465987460252702684253971456811837243473047232872951863211813100643207074502045758574168100279448687963310849881349889658396099026870520189068710111602370245898958813616625057345374329977603289429155084189729221700962532041436502036612409967952731476129600931964088735410114460781620227387996942377020196571451501508834356826691480389576841357952923912469638448733431930491425093542091674477316747365141070864183308583447557667086437343650190007673898905485358000788272403273324353451415704226190821436962785294891315004134899638646244388774130907079148349324700651724530220300304922551840836344277988463946494902527198928759955481053580478547590252804302323918665725007772708631502435497423606458427797992569771189134384837900094671108800317676197603849239586161352394877821720056558492450471232266392586707978325366601385135098241399467280223646607899350244299113053790247355483756705282969370273703451138727064632123249618115960847696404822962493236915752447720412548024358518159733964998244722555768308391662719186804017360641322294236428295476273217549994730254852654218683822301641049543483550031357523395319932696033041978552566848450097455078222991812479408356924847561424406116984493173016925604809872689954106504125292247155679130713084479755420032138761075471868860982612743156233626998987503908519022607684139461915135959725681879216272697482026984634179364888020627431060989951050294680614325148553868035571250080634714298999912173819285347364767541093483071167159457791185196972749351469200738746340706873700664645040587908436698316558533007964571161391051747061308840508753988184843815185743094666084377413870530178446345162740322792976550798560967085659635514493802293968768120605751179429026266202075616311266587319280301535046172797290499425142480213516344353361375911786767533166485890688286921919898249883582623095312768151317602888619480375429716233739914076850390483652588027066560392181239130095415699416071445302514656539587392679616383575537468148063101213106788386810901369491712900377323977630991145107821293938709968341455218092267578643028698925444185164462438816440840543815331576336338412604323672538506145330935738109038029404315743688747234634667700976804937493192167404208201285948544683766646513251064294638154676172088259966153461734917876437256278081422847954789134240341924509891596977237960518511344807373343302603701971485166649462130728680411966055389526509276432585023346444674238821145639247764597231502639975251102031531234940074030977079521496775256885417500788668266954270433047574191364321789128617320871185325754550910106848431691733656166939821007361278728945389654590674350753270310862276274466939440911174804489364657676860707194609167124926964777462469194035678826144042115573903727077287172097836122457786383250151755240076335780910054700163911929209056460275337551673959874966824977759747960852063233218522678237224524371070946675492074663966439704013459129745214950366200731340873086368317428631971481804115219218168534624455156657173147155493508486386732725999260662619363230218954021742969447693747660544986991595774480936340823042246299713473629401228189296123069725205676572661010497239578611594016074999687341139902728030804587032825662533050102488928391403922146508694312580655715817786891126761102060880196944830538416738662360507072877886532653405593748100901553901107636342091024216012746505672145680300337879751319910667035842552552971865613064339865715292455397980638585837476273410913090622624707860450922039043257357338698500413737498063737062628794925803345580048388320321325510221313008821278197148301797856566019983275900732238560758879639124262516518408204541195091694670241504957655199143513715767226554858907834756820968323676234270942355390594344425896031721887272231357154972564813943692935751965632310054931398148389007139428330154255757150456549141068743153413437377239651316505301758046500746979922617562055537690402213476975073057364751276567814700927834659312106935423717005632499367536477158174949791619030619100257890771801804958727713358196362246248057961109371048725255215382954549821798856844228675807762033570887221537227272955659591009195275634358136470133919741751380277302918657890647109852398725323879222155519276764904906272918440158281133084940202258201097184322803159206633831725654884888124287300801441206348459774858356515905940727634843766827942451410111701811500621892877577044390327064844778710468957466872596440947000050538364155077560681207748289421133895863916302886637544972421010160008951310322756944547137648000882918571007044324863303502781092461265647124838989795235762883860497220754933540775586635381130057979977114339891320499525832073218615857042615540524879100880652141813166239745937031325884394160154670310098453166291083025724518635806750777735384895981950392540666657967131274384944710009568880672551310419432118616337033844031501526605167581384979225961768720357350373706742882115816129903965300392351828124783021150360118998418871628537347731779085223477055221025098231383112233788771064524118634829540097272967439553028929496845905983492789983076293677138970800112306609736012181682058436235766450798912591246162764283440839705528102708567968914148133026411417055339778298259927957582674446846752515156150994288469933964319553424846847841939962400940580310623705584674055435373744010436107990174166421640922392368070795252205431457937032234944686588597827382588421219187693425245508777587782203182188855339103046022493487848447128401047498440393485204237962767350442326942773470595354615344984555846255210769647009920245072712775634095699506366787786559015415817894306719657118662586182531420979461519645454081259872642281152304193431618537322326637243030163377246410778438299261938878239992904772029577399766850919135776494861833192659424621746643550633832101867143129357683565886491877246130521801229693404934372890451799362991138194039883263446207600268017471418314455955079188326200395515319678607730001269466690551504642111304791569143093325015126003680342675930986160843172448760244991098972967639918612734315906353845755034207616987244743296480596790801937794671027428004294694658352955897207789350029954785066126272816180320735193024576913948729979803249016443710445998953405700216677911314303252751351051948993403769647927560206102548868771962110471147220562756262211066826587843984139160527111294845569434453615193778208975742108866636049398343778186969825338180076659432933296702256118823710184301329539979334597546593944659010326131459065326711034128517296523088000791160844490265854243371425292983926919226453591989764777655374679603837504231976553777954708760676984093544586390649936251466031530992662379091852746132361992090131695864812888112428249992262708573052885117013796158661957145980843183205508382981146330704021521175954919656409738111327512953065404330050591140886432141204212446522871460415221865756729926837674544175910589500889449489437232042482033883062307985548004395420521193801220093093014891294031313370052111722608618779297212765272368159557695601569555664724946351084905565212242749791999962363439108875869123475894810249799756502957132064250924882997933104605055640489137110733261103595658138499526749990045521374136927046831212522025219284581331220626089428498426572579928863205502071115358143732973362150349670064928199153575396185455633186447094548902272100319343132152788265714493046044200890716419191977951093746803526679322585538013184235499618419202850440996471189684265763328890491361516770039319407536601578177754219776573794877428127703614954793712950276804141384096782917182490249534825013091714395336383639808611706815874768854427746564116461753345785638138452302714019931444024832804845156287832339122401476942501870361903151846804391777074984367750491400603381565382027523681406344056485557045608269708613115205598184011267086813519903654625345178038514127443433052260389547165272686667923549995025381533087082952422776448922384072105552794548723914517870530746196517742803097943593340278033038198699619847554111935692275944198095351518820220868174803156551845391866620315958678999680105013017611383326514519949527926237615035768947647017904957556785685074960337372898926258175616133655427994840455778881349011937743048361237988263009441390424780220422373174629019983879288601754062313997672719168581044585045404275003539734553945748995803552132006137292555115293026470286998355870089191355369636354201414312815922483357766321526107911514249270251610035037796028989145465665624180996916044664140068767515703679622882754318812410534921973111634281113126344326333407090860113040987210853663922758210534805562040598703663495410315614047434399496459658844691818959103799441977057320738018669679143103855996222536112078565372939055620587611046626668819996775932109841808397212400717131221012140493927947649414182937628182217926113995259903373803015105191319700907401807594406877999635147371858419003232752503826676867068194848208508964885805087421686730602663470997304416774052604375049315365366640321167225990766271220479747436367361512375418557695296615829237395534405253975012664354938153047282511708879325128465984294766453656792261855678929816506854787059650818944125578306508382661128568915180625921522920796843845341679396762622507925407424617453579150477215437083113463691755976614606478626751220723792960202961163968622523396360953764971414855801660164475807471914783354845518835019539506531225887078673806738141712526848548713976877358366307743523554915457838204447045342418580245846336627935991186500638929139352991579393846379373475970006833536275408876396503719671317574562222812767049027907961741554327113448272391802905014274095338102734336746639859077237088966399555826023796354676276107050290331063949097440467056875736356248874250351449658324159094412190599732394414853392195771917176439133475468472451625618851092567949275507625963158193331714955487237601724659655033150846158423480534168081672008976177414775144403695849189262071435102416474873673791930980322585106578190658198393466100901423252727287214498526955977479442433963069194597308825711443426405055510738178389967917678848289056468784243692055401870836090339800860465229896572981633561066031314195889428614615352743515544625178931687090766558974497680230664625151586053756466764483369048058229255294405057244335976912080970192297262536180682797431588564471286874595662201938752382875271695286313209929625210886513264026533249781345779131204014798289918268213334784648597229692369785792990012128710674479130443917070235809414789252316257788144910169118518832014764948067197616990502647177524000742675122476261167375267972778191260017388632259905682654184627489017271682108635022735620166144134550354627481719813446063737017068904895683321786148753540678984318378391220453454214633136864745423594505850129299301926224594647535627628904709980946704436985260461469806842794582443999393358003970930296423167402605083139819536180818818678970712215532857958037657831833498160230374034865817471839987632649439100382876240606204063566637816971981618811833280526844910482524818062489521411138805902204568169385816507569014222659047453835512372477774328970184327260982066472494586161271093865921048800231979348726529452665690178619927761269276376062202034770452993987955610475400590750130209055130882538983097684072686129910381765013100042425906022942813048108817640325215478690298632694446951991763162874465193833722781703473808245315550853674377503528690613212187781410640159200869577768618650142963685886603876925303219738927310621073056034052391419246084450311281142283209271854567716407636873123254360169569796883404768098245517706513911198892345790969515002892159840415629268659773028015497313120615849932713024999808778503637893232669549440928618363183258119415041510685550346086899198836497781207197056243206023909162056512517381033015785849956874235395366794945802186695192939377811433279509641444395748670953455854552924658890686505353913926806654795597254057804848547446140386454007895986396021595172117579063370469327827651008983914763839744720217909356120397265584484727216571556930629129798789289867083063965404945047993245169781686438999767773610585274349980930593829516702954274156541867504948814913606759909536603600145371836151217967606138144415268384437697969092080114374078991388918522344883498121977717848031216455122632596059566664414464972174468565252828659178949439454019100502511237280785514859151316582701709521602195135527458288422698334682292541822593146820208894185816828113061738641188240083097485539146461331830636282593561595537234334201124624694004821495177756250734533100459773109557689172591768371925238867509083318976022610344294720325275845289669254280819022576154411455804090520660400324888347140870071286113138754469309336332251253099392550226570797033273026990029974574568506310847904056549266606318212617460164394910233575094053534020590569012453818454631864634975177208682582189665937419235942341471223600878417318382332141666489101364723115776233203115497693640622189390840082805257852215668402232593971470922094163077244197374020066277986565625392874833460149577160793162564252996598891801169924018058998582953300366835882831785545330390353777381501880994874330155225989713913161657823186317438673028999233332605562080736770658300989833716421183929586451121114393664331148456141260142003746399053340933860923588530929526212329451664946830886296632888271506230357026503516334045119573873686209883659320424896921975661723643481146040590843129622750614227002895864530749663974877729816968546149986142950118576857807484984630477351838069580061100830171349888434182091437852576998349269797711305461846901325238317614343674901676940320648031320155766971865844295190405960640190305698315273862136381387113237018307496392476663509700751105572015632558087475293148205462502226288548811525931357146690951174222729617224638750986641613600898129565229126803020209377896497050272650669532096575894848415224861745329897370754444539716822985604074469516882242764931034313953867025091674352093325742193017570107797006103704224276264075218760038361588997631733131795546846162512857885737662602875618467511196641470412030480340126776409071502559045654891120614783605756183993096468633527420214427318873474334648319013174621710827292965247852727779083064556403832114226419990325606120521633137359832094060316434831473089545381018998574549046127136561213715131315977708675652120056307344082473287005456660242143585928037982097084834611009094283661866546384406629570361952541871821424335729090495426041781122395264971645991179796829270180821293150756661795522401213261923901383008757463077980144582445156694905889595254312042484127800232481286882196148174016386272512894842457153252452769826020235148301402454253438832872732380890241595446939333102887718058653884102646700487503954756962292847545487280443593410227064402674793087443593429006411923532186595263430969240782476231835816518562130745063818749739878128183711899612359510332243110812153474219379151046803340306119687426098759294546175798407554856258395806806816967689175297942354980410372352783761348879011456097456846323387288765068888030688528282421810764642909344983603230852106942219522613301838726628506816161737883939268291250616818807026494259247388974848669077600001719160004281411614630834113721152278846593637129808552634289756863607377404091530873389208235813824732823546998726254619635561930793504038744737966049702906583049764402897370645203383225574656151194666167347409217774268813488811751734449444866045170141661004814284721257763590832742082484342019709428944994211006508448617985675115049489613778191955527336285762153125265368462002848556275318543144147067134832579014842205492201161620098967609424537959417744372077734049004264169034361425801121935997690599631444501547625505346826271729755389389415517011305618226466540495950034515732142032918910227877357973721806044131592832173967892908385238394490716102890176917287663759911075636045536167883207929475626191680033556128671629320752370632262576880093678310706364007248922356741243563092638405217028308693085335358567575165380698833950734856549994361298801118185947568590341331716215999496901734236879429547465446824542062603692086178650802786855484095649504430478852845350233100976025448136703201680345128383149716147637000648572702316698455124505849890856169257833453526710970378327464449587150515183047284485954055693745227425696110178617560862314019782598016107089811059849644877167496598776754002299564277468034324358910732610605947788007947025461016709277536043198724530942473682806809986775678059958244660530911270031582249335132441342685262989745979344315146079188858349089894199008911236690747663187757915321466118385353589891873999230454552350151989375305443349998122955155591854080336417487114055628038425514145820306117124010827250527923971334453502759416410903210795779602556965227413607623258642118418267427252664502892043847269159264072596609206826931453115478203493130410133129763095619868945903317187081646844943791595008021265733512560472388342227866766446961942581463118107952730550790771352536061164543773668950279074924445897431070639182904412560459898488187037335174377407952352023923717874809091768573335628380928773439638123748634278518020134027505276313883478385408320471309003571487644696241130247517398334514493964941499669296859821716582712894697967111547313683656163928676049363140890225993684783889742080464983003833065795855880277527461359782005145864564543010781983602745992129025643344210131221432748961738673985125694281304349461098262361906843679981142239413464095585959266754555081026122691123939706567390907964305028811000042902938983142331117133566342376460883420725262370343942077478848190243260630011886725500368381561007004729538178022291463910345206747181424930909045217421289918543337103685625033251622602500741989593467458534480306158843607843830934450978388633264849727419280997553179242840631773908986987364912713132781502396042799180657245643373352014173045390352466833014876736509500983106266318746748217214008585522160196723255719883217391665782584155003956996596283252554661873315594382591824808047206232505656931537640930771598832844248766233905227372649875312284037139669522017697401433140182947290027084068458061309932162614620451345097358461616140103237472121340807910996519872724959842653358846184510045856090487862957418556010169978208054463889493832277897674847923373524439372538289614138915105130911778567184102637086327315135472118984612557833133724321058614434854201940860143273336261115563239368732713986293110490132124892267313634046812413106595702563843480979954435404575629643496366726672022950523217746311402392966736249629075123535017803581842520831778015529453756265563247876502873528494998373886756417035845243607187035432482540774873321290490315147236315066464932610183290709014340694915936279187515206046888826964136639681066708754977200777182698835141767665653783847910615073136683726410971039872939344369534340631914084430504649293672659849279872381982016980317590700190411757099266657835226766810474509515795281105413549973319161465536597723309209001327061002236749749023744773335058870435402275416990627947053360948882794723396380182713193785118712376314037281439570637457758488407317628589106532114216835737258554846617533910310372814482622794386219615865754146081121070318528462594995717661231355574307579384584688424404516961532654510943793121716346096173913901104362797781866297117722953857394690226242478139601487545237996095622770891659791562437840171301126172325853129985920964340250695739401485938991377743163619667200112614296369361926294922296023902863734011916700547860699287570246543332386808255927885881771390735798444103273747153606767689515941291386278853528427929036007108577606195951514357718862903631349498454320020382484359941714928702765838329905573053000358529204360382176471598363553957892245858437643905328849312028302375601704222978340682466393568346949939892116829298246023857580972781161115392005542666611779184971253437984748355637194775870709116725156317575340654725010316730639086593106053494249924682066397012662637777318639287505616809990016553525896489063625334975654204075923772655982117733640150330221007763144012471967261450669878293919027355726740684304193798066275923652777956004986964338917060007957452107243963366412155701555257284337012859072339241748997403635824737196554888607831657956731113342672206638672296261318198423344119338372464525888024766671279935629656668110283104193750792928087591046626005618730234409903628392241765926436543017888456045558611438614899347103520711115085023656023290361841539387173489348371247029146222521627840175010719745963818382984982581201363541841303251677313732014286746440878947556183095301294013904336084517918839991419753424640883399958477117272339693765191940405188956771136783074394964924965488569259143360171801126724510837721219128241980946744756155276864022368575150106620806420469109773054031473045939724178819162848408979971256928544302046302357956372873045267504942362379469220600909281828222059929605917084725826397544066397634444002383220293224163693711518769965865768938289343127330189656252329863088957999468867897005472799742060072511541674325305758858055787964675506071945964531199983525776581796205601065600028256248423407242976625307203943371985523475914559185819053382488853446075346590097842371607101411457015362506110798879310282998240314889619487194653002055352265013953065459990662455956496186763860510863492893638261042380133762965535656110019377495466431455869389351682053567320863113895539086778757791997226796258350089303240213674468593510032643839926721180396899737350431329022454613403636470522011338733995448477947127575901668100232581519190819101615445893416827092180435290860045275258616545828430432902344580688672120832478158528120798180863140844300601362580081422532181127845631380917836857016469321372461988864840377729535345581329372767426930661873167728106087756874025616789438174194423995990921568058667770511377998127806720229606137080038105997062764514991545500109067086184359938416547755798049239074159222586891982364166443232741061013513894738078687866762710910227016364952697267858045484886168568270643230268474924988988747462547520290740346110707686729904880968618068134183191226250899186922106501798085892529524523879250898721124765128477083360934023840173832621969900690627875521286247706587203175590911944884816195775115211482586124490801517332329924138846097383110376023979219348553444160934982392577776533389059958848624643593304611481486601883188192917096829359778863198562297487212687303502486191068037584366763213451969185202803561266872659856829106760219067404305610342717812758384236558926961548229640493911610200626160358264678551263316926590463917610329131804766664223480820651818920124813452267905724888874202366063594656325513365403831231190798926017378863617095410380509058887859343813124222849694314827405215396695239087832949891542219323451571500615313463827069531228582959507431798832712489354593921251065102147520314590029068982306795623418004952698191601599993198956359723504270934434959508582893673466059301224143971495619518704543200083194164669821945844675512677528007176687512345861897682364340287399021231149823252360241961021299270023961780690453141197794496166833726769294488235145283077630930971517649737838065614899148522497046138944239231507124824996980369891730724590087056719658468434163128474273252358442146950997609380270193573547683823845862771706419783979884987248192051571396147815047861911536497637336520797929700652016769830306609172476054818910577768323040441757191976455223843722912247032348471331603422595295137022531298880954453984838051475756088060963672270434998927631957476997464164938395351007010840680956496724384623633336821859813115685978783433040552805932377537377256832870061830925068254005982512052612918120099020444287288525906555881764269383337282184176957372483626619550343226338823062607140724996535238132950494618374016966562104544936964801078806002260335553603436332509016716215593334156664886215123516607980439282293005816465877860705136412557098038281796276963002688780792936652121817063423057004590338929329872606749519862386181089297242612028916012201870401495869867770606359776229796452644755608822625756894294210897142143093707302130207207332036946579420318972145583322842139857847009143399209042861992539953724213620719877588746116439078458833513870154312465772949703197973039145957864215877602856378911419835208654355642989645723496254611350067848649484951727849915679703639196357792369390742626148875947887112819510958830750497435547882229652966405683812652388763227587872869879394329007313595419375827932539917783881611203512502416294193044452109392191028557499166629875502539776217166620015643743791918905505712820132245746206191122048054761658830642764098877705350000323379369535544552163153348302172606115186894344024228458230566222961250523990704437008726992102615517851424243646677200430848494448603481829300087388907250069959346371062554629462625576033848221264530706034697716979208823404354205715051193524849771398015959053347942983421666381828747257594569159381589652595639767851095718317936039538523212536658571670951437260254052060038192401699181714124290628623561351844451103244105070544868076584198378134511098072825688360676506332138302204644068916657148683323062891453103968558144067829961069677526361101688262343317182614860161976975767629311899787702621912550335143871464698530540872249564114416293590239985909647846973288630510023886852319912547147736843693600398315043457276671073818876075021493286177045305161330463047975476806402365459459660162565797307737036107530339616010789651741811904576559642373723038424448482825357361900041228305252500336910623998698786252394215587538566881625013323723550849474913486079178990713359480797293516905480433740944013777066424708680861665336181203862190544798930618289335092567707393060699286441315549986564457806265033541362608329456731808643533901480501422737650615397779122331673911484531574430098848601617891964007930421827040388113425252489874369105270307457250659637805527535056500805616392035685587272082206755386569689326241630846141886549813632628184573934131621585903847317418416923843224798695483312554119737065759694019120322300788032916583336840506248900844478506023465501736936465642485954217933483014927420942896489915133083094347849384537871228393754951425643317642958568436002848213267215156053158434432249528427382906775618788302293975811967185905931369599672063352635050766512885586120857000128461225033126746203329923477411811736974971260279883511039850485463701123719336052233371861548252825812045651349373489526603058310728063287785771877434574795900706553354837157203261360278649219479201459216767741283453083042461659140259176030597573446087866962471180730666669316032112446244341865099674325155180316677192532135048075885218129440211915607474642870652228899831302357719769343185692865163425593758296648291276301942934708053517545754714742201693157914020008875554897035484747835297349541335486723032535369118681168389578770535758132777876324292598550484343078861398352992694345834754264812307538346843374435527225681285689534484468479364824273476171577286391838308881452162941697285851498218667130762625721966807733156081496448731392864279576836898791381131144302856963159262342903984503299965459255775351547386922734942702135655261286446045263812957941855744498829016241794264874457687459004948517780671297789291967665742348008171569588166832196375562976437438387273501141136631397588097052909405504758463407490928380010067476739894757071528617502181587226822411943438662422746103099756117824875687972711188406159671335060199374143686936004811565948063812524143106336308125355829768481698126205511295171975532758709022932591146068088182595478285789992638222971809154982415199827920874547430682873384078426255746656334527142574558797074394145614462546488709234445067652794423654961927652751191578263964925165375271392388992739174818363704958037539670324024870201536393504099888088035067119436230451971919807487192801259398379815930143314112637135363444032607021887594094930261964700123944561826227931394947440833233525021990413311589853627694030625676503165336550710169746671012732632708479407191564715997986791806467304454983776989249669305861900065392195022997393095083553199364469701694545226429309453475149219613903583015159661553846646353425175226064826781193866966255916537495517543828127283501213086558585941336057706327772452167435561834504189505528449190894405255486941687227257372103207922545062522259243729511680421490475068471855920334782584951129534195328838440154965514781592063042444960629952922682507285823664954278710259749795127574709081258997351630520501206852841083918964499818268134084901847047919937961970566639641648094107722241364440472076810753780312412362023396812664643666079573282659400894193918560065724134468655020756016495096589566178395985657938805901102479993362502531555155100517859700716146062681328067182443686885029348885718345315906000199998275930146715443021297384797811393890336921570807030042080338669042601064331554923401320756342381556380860547504769985404293203089393832210074276675890867375563861738696031474915195457617044009212732609620677385391521411708679212191634635226789342005750113111326516400088321530621676508740101440123838053731797303460818244166073962312545583043848360914949586646727329494306948982423881598145538737057522753506329086088015748966794770643469082451772206169975696500682041936271208620423931373181905073317628831174366459801342932934221982999756215083093883256925852432349312058031739275037765838206311450905976814925640898576864054939895894573441225449750522853654263413142177921504329282887160511128667441146054012863715920577102917330325560778398616419121105173374994422715192920054216437638900696432900033494460112302347857200497541915549686810845731416557000235388266798575938427021533801473628650151811995124258111649046914439426462944249295304030767782322162308655728453721690207007999692321513007154439408402759710457397982809154982520504656804236507531897942413280853493057015315352610630570256988111942959870615373044362127046219901043343600391382719338793165986489754936219178887518627564795188860296452582279135310114555542587732838062608403802973240453376888330017867044424738794065990562717312558730308498458046344770820625268856117118118273044362772563275522092644137426033283681798846294129213399318333002063835940096842980018582010229284109014748493312377107011983983703755765137609911785589662775806628883161023590323368461604575722832859347007568435557308305258584854464755850495081073536022669608597316118799728258934319086749212598535286737389522155762399944432728140096385158346607989166997079753362110756399236213406330033491620821000180898960813251639549764392232551352167799299240343232402145007115529296554346548469490147737013893138488682831736474967903568226904301798791681266416801961597644814548247396834160599388338965245685282183893168901072987290815425863797612147692599438408419976820006095399047251866187310740483412712588996131546787014259368063999008438176681942545308662377869235635960024389645253875259597098954721799161012735625953170542912646910241741313328167792066593235414977553460641549600380072747505118411872905825906492711696963504661852298258309599042340976769692855339940907749499379454323821408265490006545448212202367375025467820488966478888085607676993899037882249848573368279475159388683609328059214777256348352623672339468135828463283633164285890150839257784622053820252923609000825953366312892292295500158801601335445914880436892110319150281343159413075797027566144884546396103449524226485735088765586837626024128110222443389556661763089159695196166978257723893830257399763684483920568343658881147369574985232813618154360994668857464262994141980646355083740615587393747144565705682339404736372339521103762327439575964900252858741402162452999560031206635729275554236381182593872899891447935060406279245143677123939704638372011809256739454119878958220612812210508984437592744775189543546434845990804966274549703773490261782886422355741634609366282419871971089918539534516354194922925426044373826705840907543117949502271055764448526959014482679989699555142134775980874762221000248288281351174297727014039563347403265791116582539197411032693012638438512408518148959125462969713047853849300805749929454604697700588820663006919278409248233542358842391422880852987587067875424116860600578294332443668061976100488784032253183147050347155078795120865455527337889105299150209607505583187770220439484499379271363282648328042171597778610734109861479501721328401921265225725614389751971930569839675114215312462370395664684006673989954841119139653619983942388099702682817533113062443022221562566117563703488667053410742999299639704173285315820411284336711896058437267514209102814198248954522172316481022547250631948365174369774000027824495244512129715086874787183200581435728469412913082795302535257542782356005237420735596884393672202146718699364022904011736217199976729437666356857480378306149232588546634353635279212696459516400604623594512061876453637799271407974974012905162376714607834235545707701066850637294629419320803901815251667676226373708474823712739555301690009865803054138784927535719830843631487171065232342491556701719076004672999182378055339338672177995946182140921475685367322043657896735973996742592948084351440906032310738846360408759507129444855684834669794583666968882262599871520919290768773353999891666620533288349006029191870598167876371599991973484259739392328977072695819334750510172267717579818674400908241388894162625573745187815598022351081548398569119569316448486714553188948760656313471069143383642572980778141320340291016468529998361379302996109323411174795412376576318025811147578995280186236569672000317002903127853921807730996875585174308074093176527512269701874577006108456074522462067787216942161071032302796622346276810395079903562311003359442370985371185287634576954855076960861260607222543731790098428135003235148256845972262423900945090307079070574569519809012153267444541096777246976916624503148788042730324130758721665878319854945629812237950996727255161182374995149897111696446978515416750462023591430390866648450872953877671025283341669812411326484805667908401231689340117575329045899586312973327518531423366936646315093035423875926281957187332207644081932432640514924130783456097260946098381303501979861101724569425219992858229456768195824825229154464517550057063197816002518348021957245629444195308817348553322742722172846779898557621718249494362336324073772227673710031726199210171322120937097764261037059467006822306140996301266237888701734617984618027291560120214815829080190220592976729916942055065989328167827583856159782984806267283974288505568787034200289788725049956685241054822517370598304172419182447741126852981781400434720802517137649312867846291795772368725154529641025343805487851838044595696576942074756736208595758070913394857359758183184955238804423818899015082413081085913599553243047099603939574986202134100290561131102538097407215034000744564244869111396630331374900666304489726176348461822606067753552687963860749683885846541235836514446228151872499934712788227700382585123186394327408354685406001892560619540041095602518660216582910662936177027205842113658724862428758496641507079022045690269918523829913953374429538866803981794815224622373795130107593315968205932670322576427642419772962669599176308982637983373489260268917079349864851487144729502432662379715362858440589987486086732101320636434644840887992418948071762392394382320230865244649143107629056691705754698752207487436230139143290152237110790164745344960211078792429603856586732255467581789925923196172982021059942356812920354014403737590646840164963964393848664321979771854565903106043370776970041615886615675683707073773514211932744723747749130759658418827656800170421295532814719858979751300536673886971638325849641482822841521393205609263634084414501145502744152938271996706145455065355000934920002892025165048877037001750691845916760972802842089163506528531625668541879547899876582833488958926401969627421200919862825408935130308837534422061397953479143714689061301976379704716788644341106089497035132570334234618742451290537429025452217759219615523674635278909858592538486582783119235606054073959445847606297477462524304181559100037821634091917934113921234563647159976299710719854076513268988151098446606705038322541696197488074044798461470445782284929357465603525859888144955839445678548066191004023189719208908897141260015479308590754220159325973727203695015238519609661443903097182427642091198679357049784225391744344421236794797633142760788832641566923045541397269387032333079445045968052235990209888990179142318089263619222732732130919386543569957691735579997124208892887570655569796024281498001759594647979369495843780166795691653417535646081081211664528067414810923292684586194914396601863984193777424319744294172213665918678638729568358300873465343498004574148517815794927227609042419396019509854765294501050930391101270394598773707184906093180803698495445371248159517609934061065720726824488791837383162005530948003573624886956220917331772931086295851146147459838437797374465070229698832557017482797068410832066713666446188859435536206830108784726109830639136834881418228136435373946745827776317100245546195911531108154191985008015176653401727796781456416337717418513516702841048747026499217139413349768477448766027410330387330747700732685564866543154311222288651598879395318416872998906359599291088327646708589173868748488743652575029994344381849831468257580550908242380339278453722620025356730107427615454576149757129796174106963950508251325914434418208806646023110989750256104304598830069059764002059824803190935732908638792438456315058011575093218260747417917585479918929589723166798091401387045188571081292509511813559873970377360931282199538954664563821570122587111239496153638271687234866823813117493410352262086732700720575961753514524126861604244913188049071934282401789570427298406134039487632800086451902187009590297359731310566000774088332801973016011861176483525419487173364115919901329795540576354037927667435235275706620388996955975987634821507711633130914463237463746287108052995150151463521183534910135045430102213289590289353844460097843629368206265175540509065479302265794096361595568088282989966103338285983937002532155722102038353742854600224850206274992706622600042263239549155993755246944312916576542430765663710664401059135383127835982547419870420096496731721171608180462754202612413182604954280783249466915491616245404855130815323600750486837397367330328248329563016802494211633396907102324210541306242313425235306794034884050519810030352777810177837403092794149476756171099019029152536112408717476690325297583667550535991850784004202133277709992268121477232166664824057077720850896768343132934474186641200985978042397309362355142966119969066094178074142821302599085101406327047572722650678732921070600079983822364580401804074532749272020508594104689427393354406593116158654540683980365555384260310100937343363837970808383341134383812333931252010178255025284243932607954479202885502386064399768257338533842154781126725362633947177456115248972444267220625077494699838629477360632627787916401665847255078535421122194400354564977431487107215142462484688495326709944439517256269355920998526614648201072754210182617225370898388211379543871249965946192885218084959853439994191883025512494275974028684674767825861260200557524186513883577549761984184603964923412086501961090542960506076069273089397890084692471398307141230160538782079953900761689301284582497663943534440390713734543896385792236866019067632538262436282113410163469790031657249509681792126820108634667216278592377287941457333256377167016504936998266672058720989729448419362303296760834036764386045285353746099011052446964593527719599466834608960011147850905003879431919385922778416413215209010478508918327770465054775968859701400770839440111109418207388314621585682819586070435893967986304500787504835740337141856151235741254201984589306488737729687687168643272128624008744857844333534017657479798948976496855463725442730001613174027697657422423853210190388501990479305308548848373400030961211716909407455756068931325505515093614632112636917598744932577238965859196414252938530523624555366192068551505308263710627699914465106227796403721643374083957583481553980537495074068343185574627014946938752308593764144248034482975490041911456650322056672304410910025354768495441237044501774192451466843669199913648394556857287983807714326502422486944502793150522371748329191293757815426628700181022828321520226518466194792796203400042801801867000137106334253647965839806801344306880582537297792598960872848878400038702013765756360757466343389401709603062636547462999862603440261200774136363777329698830444301939002051945922411493401035824887549733842461941368594522696233218805812527065749678730390544925783609338258464951545707325284543300398388577048365550125617678221271650354302507489248709492572920409715010899249513391093900039369785968039453044639290652289755281434375536733034800089989780346890759855522489106699311974513407082480021797662794567173390118633600593259272098447114995848399723345288722504766944126510325065206888133672444866544520287415004377248314188064091271097044237097772269948904937139920218972139524002466859691809496260388067004718797571714505571257830850074987637178241420452274056067939717571631620113420765934561191633666942786523720578851789274527413462878093011169537426780360605314995100102818891300609234190418425613905810286963988055621218530116381430715251785920782853415193604629375031948974048286540411530918597868329357005587730794588360946538929473123250917884166440136121515913033726720688393542099977245608134945427219881931685656648479587541985431776124066264691834195972470459001296510513940184731658867000485480230531636891892340077159095292800883503694128946224973720763702536414528449789717184335057149845543819527768482176966898318109292584367767703507522878057223278685960943358313615470130193298320435054775500065169374452289579959145896272514864301818436134712618225136094086467335013696395971857523343236041508348348461323698664325754306473515561175386192142719938684775806284878470088006424794872912279835259417745193833311273983912046727866695454799634753514074820613410520141087270449661115461299605411490409748975150128941871515161701600376730749479192946524609564331637930592108413367871171080878083095271180579266268664678689472368276447457320907462558992856247443020562090021979309598159349985965539506477582844580503595777593989412965286288010205058777576861332609362633895615242089603002621933881080173777336623254680590036812623706724414466830988019605661933058191122654702655431464572511674278176107064701446671675034386618205508220764504600393036295034948481535552542639330509228163133960028334354113546618670422322611321137362178404690131934097911136066664622797548473214601015012366262877112702402107880568785614826718212066481494097698938798889752121513704961175011915338771325531729083505417675426703733393224499673568726067253862858847559112318310465469112937272891741492800430868887012784894248752894058896438195214932826019095641151105780802443449897507063526229120259544230275162725075775936708398326613954491156089438054077493719914789537815134305702885135111887622366219106914372896623378969755484257762747961317020302972558980520984333785829568765040232851110381743924600904100516489462355094160231529737647240442446429782494196039358684442728092665752969118203365554791330642982277870043352957589799572834709846449917320914034189973935347557964895810053441960666432624620371126142567411963092806729813899172274984196754622491110666110285790710441198079856928939424468556554962943600443658060975468937625310294249485092628029626925842459464260377788646769876210113088796543972463299939709648276180145893909240831433180238923228072210143638579109017651741125228131165485804940520988060363464632110344316041996374786042605880200490983913240311421537050330563516228943532544203506568629752284488748146178529703419897458297538206041553777767040988698876205242184417555956706870541777127562501566814103166270162668310785249032449582640432585780671950490006367141737728114421543209861071468324946665370658569762762462135980251307654492171550796075423354640776586760469238330365958931777382335423404310106520485357970598520818436690615807528628244044774205441091386981814709730551047158828530811777496920021775206155767449985011969991431181943979982409302871516402342195895709979171315575753346810664373700281312984791365063823451725503956461635065849376592320133427037997923057899412839734590753863890874705433410753834387090530258340550077971537100591697327733469391118475147987528472445222543281082521688364555502218001567140607735791980458203391222822118587779875895290759835348273401173167070479015737408932430338910424202177212401958082778437952157205645039396922655002687974372745731544690690131567207222993082649111517927865776133167065097545326808372068916539283455806282529517811542353705213896902897210723002532854370615350453053848402197141898337512414774426242079267352117899794695841489459707952378038909645319842858870390708658945456714031025259440514267318621453288837234642199580897696601547083569590533344747596784862241142784174024491162628052329198593841786944722394179808127269779841502379530079303386320608606888222157478529392770567418977493922213334416505781255799094592132830365948959998223380319316412814840194920901241139880489990175571755559192036966967947433042151733770263992253515056276920874629321235299632461594174541042113717770816685185393941760992846270204765287324670706934037840259348088543722408136307463389075610229876387910192603943557605865869588143632581058733008002457438716299277229512226667362550533945622631293876783361134192184986440815387953518672170598517080122239113177108022366681500578695646508086000964562985849247311271002567321509439453400286053738401848751533653316877233844178228929377453925282688195696308951552073477708532846623308845889812725017991778204404111174224069046681954655227570676629053459811720516330540382890100460449099391143474650564616187984847386591335282870134141423214055587713409988271544880801694275785277202780070383930267675991909307416998586271878263113722413298091848856596840931691501538802442837352540212117579667234749959795513706985695826645229705334686031255815538003425900848517876175754463158860099821334470888766178051830009761606396322735431334608270724770043229148074894286697188380083412810575808023900998439858132167703772133502589083678433293810033262430308758687324495898290473345893437610406623551863148673252672410494278293347368018995728463497627705888369308502426512410885105980740905208808457600305729954216224584613876292366269592646473423576370592200652583906695595519350706827225402127022302110219766274451706558164372495946544980949195513502781750268269797175359222846392211018450779005320077024284311835203935991622557548430675660052342881505716397357138096137812512992899654613168301992804575793373899823037894880653651611172943782664151018201469337189867057463063754094678713011199569399758453629922810640000451622616241042586364652945109403158774553376969771960369331374726412387228304776045549051108207349536927639545783924092711554883827490924714831704221979851280882609483880237011684046603312017036548198683140358976540168602958340250027888485887207372703246710954039607794972948053357105274607010601658921319887236164932461330003972330634780998359281850764487915069573288614481317110206619624622748900373572048433082384012111727181746023274464447067349765205585941120463418496828164755577361192926149975537793734353839991036713355773321037223080717478406882320532928823230935202445507132229749493196832786205000739351958148819459140251080988006333635358437445956542000026430768198432169233370972051840677845255698993832360964537279517702910359809538839956263240015075747475846941287305167029501984272353179318233423449295890086656437388685283759609747166114079768634009298533986603720543238404335421641879857571583081312394463700347955634868797880765871321878388351115080188947223122399253796484182379460919903313075682063155196408838438972780041784959988004268500489970998537254302507422229423007502677160428487336632417007317786960278979467731597598052506199549983771788599063524388237548349135705735760276759563345790224898990204639404287909744044902589146671583039640971301539605140828333250674503501609434912171677173839168740995198256633386010613499611439629311081333684949795059684499967666815064067493848165587027957551784543666945541522121054128407970374688518621222569856276812724230654566794005907699206628165445875799677962757455342087133435821786437916510978293496136316739056258155840081434651025761287024217494534272272302784897537037582780592800473020960480106172567318292564242812281286891638964701411120503425457036252018466615739524918191993481149187432668315925409493656913178671188437792623541173239315619712020768785231963845199553911684572066091069688294789682081361720029501506550400819668721685356994853897458940925819840254197038601976474511381708983124685953648217136548979659683645196146949707044985731055652003178916929704671697181706084618481180839428527211649704579401695524307670504422194387482580287339531169199222334404685342273708650344604329820511069866885560071650345807661706778344334527222636333783720091202671927689385725100400295075995218480369511767678668853118368778322436170898222949691813764985741880727856525879699656545286803500381230703767692271628099449699254828858382250723609155734041241423764615909660059725513365129469708515744668048328589240194451868359477978854439310445594079813466471578773164269296752154849473492716099950614745591995111079109228781625753151921570250707806393486924533920713331484337682481926198404823728147256175925736272834134697806510267845079769416615182414023218671543020922393207719505023126311511054062037610773072633323851979974176221342342501488188229029333258350068480225309121186184761328672029814865641256263331904147818727568327698592191055156458678216077634222391701535517477944963515910708481019444414410233222525729142826462938066291870241257789233005093194615428218561318792657108184751732335268887546317041587891749982855880632466497057117687875545716678660093690457200541212125282821673584557225748702847937619572152183573628684378181710777426707928952955967461865007054829728401620265738771291917559673578125430763129899695082805168603894824188375045018811561888150582711706256094202166171070766450786412838562807064365078202835077553302839257571625811616471375167239326729081446984723839561137499528359134418771752497300056300508407313072604232792048090762207002980677251405419914340584774410651740723322054753126187366435989161434414843722311183390582095386867876626884154388759606546682129590779392455026774593979314959763503594128251238601731643285082533861338825679778188024017364492508704938158350218239830986987124905094865251862222445445651297449824384673258120278226703389287864247892356242943936929245681608513793090796017289616878628940773596692684369944959004105258568229028362193343990076724558000362005731877828360617003145575724161658359138442953990666895402875223473036234769071828742653684482994231763753191610171059267963830235522913340037765610730216187313842970843468244388311945763525800658173024651874435236114457697538496876639121257306384540998568036355349007124974629030108258363615880449821889536620311085844757748933838462112126889411439260363061948565815593381725972551001201934720211049140590453544441488388010293060988516371723594503425587029944106721267643261520258898985831801362544837823805097474273914652386289189679468176911791558491342863921406220187983232139088942842520445867717468417129806214452706901072049059035147236332040749597817083444521541594868893633060486987551486814385567733037658426503884736743217879007043457715082895680768015094720055803797669915655238235559036528983425771955870629379171096857285374957376822275212775034267672590553125642898714782750785940380649728957624291183084732341462371528821148533992419129231739894254238647392921710585098624524566799230299763984293153995810452161848191193729955325278442024385097478362102231912964433657002393327477113555931793293400484077304310984032272582356448459980998279647609683629760584582666972498279440993155040789187114979822469958060961628483125019508627013414445066266243519639868962380116059782758080178889310488650353180194323433756764166215910431064582563924295668806038942069765442240717695366295933003341333826293257219077015569233376209786662833595725129489967931329129963422210394662752296459357203360719019640642005488557659137102008725573770970623638704575881396066696767539413012614398647306392939453736627979508942648116688203628492373490459897785329793672249075910540297744520762703289086343762728324540273533531096598724579787428200752503235751228709812511319201259378291846610946743947733175156740812044595424761798319018933553214763939249668963653727323722890443349683516671857872505408532629311550725022069883846819399929061232902760994932317685196884236065900334491605453300399836096360666641616386474079201595814861729966441100006897401100383229777196332955615388824079673548341688217710550774417281561228029572390400789717482562512741135234504862500203544150935573960988132318108043248072713191012259606161290388290395360530009429945384742678132478745477591279024738148886083054962025997039427025489006344816804140814913343130414779130526638860286626846162920860986786743741106646059629729779961989784555921428375260137803508569249094364633580798707837923666963244105194212842600739354886943447799996967736596580062823010049301025580352885658680758879686661379111789782062658112299804593573834209888632856023489866159965721166594301249718262306167468130677570343958162432450650089737311022290781490762290929475545666520340712063218504596778735817361156875240844833998064342219263392247557873246318224872699624564796394437838633186773050721030841702488933059578899369751044393056285305567924696223225528987421813934508678922853287924373702354339977530754775325886483710159405504860736176309102143781826756999353662056295614150644424181384830543927955994481739370445571234628596641394050829858849412694929285859281281613287304737417386096834064071792652272631793563308959578216148281384380564571615123806531775614320067008073109850604336380625077779452966030938588531758920849025685086821448327378648732228538312409451592182346184688334732609298480360095993203382219609640996769622320450321318265334931431039404989351936960006028055704243113544136500782949460382762006266769109131146120106907203399271611612054445481811489771244763833457952519669540961503754778423190183339937604834790407350046830182260873538201038398770338951829084803680530472647237858494640893084200253765719379936691237459106888284658463062900332953301286570901853476389330009418126968411076322326831398873124961182621752972232051666210421895298350104144268288741321311730148089820142239396762236979893144855768334220749910468154452508965584865016625738977840402830823866107586964227269526244016900482473614938300532007694421261168566991734968621838367245902653305070848113846960769327296106497937974400026743104709785035550879420081240188832227147349404618485220095350319588383887365800411921901145570953689285282946628821877598720966498377340433350372634895097205162069198414115641487892040015306108078920463169575650094064274705803013478213164207541252339211331555815606266813807876190523167531498195444779849724331498279588301344525817348325075911576210148072885644435694438820747634760738977944582720023629072689500050157157963860059883622768207046850235696102955292853168211109526711929214364273106567283302564176794581517421384801096217544187070365758486785926240954253662585249511065126842343452503027526315470136719667088009889734544774178386318076665667584305598658799399771117396224624218066005430306982268326554125451754866936825758269474703542208383405276084307388244821088029604920447473636505774538089589531263791463917461488254023799846725801332132377575437783601834808118593100752640251095049104579691832063356395748497326729965428078868421851351653241038244066858055961938074083771563291094242023971294238703195080696790674235133925847350632689569272230743737236409237668820354816232750230759451195379297388186698673532240519498442362926573389333845565707086130404193744641292979411082522078284409923350904678315925099446012571040947858650713625509183658197015029575512027609690466791249999327738289410795315035552222465651840329970850006461060747741157382741080984694733019283141352546428608434387597253141022899953089914777910523383081702882068087891440559723395917615390770938777809666209751330216495050994519224068851932514657901545510626394312108549014458951791451130673346707682877657660946253443677796621184387432355937848345262576544745838295644413049489417117330648759970811660470872174213297633133246500001666572269132238636147762988790719033343414498827385629473413864835277190904201369756315694958082645453686769365226736358098207464847296555866257672435606398621059799125785057048584680180220212996591638316440468668981433019415548177140963681785862392362195220683384800450894534700420643090176564699315547097476886181438372460976495592786588567051332266024791889096280722801002632154482504239314789171397058029409792517627967028374206851997169632628978139262060557768403302584617863560898691150518169283459665306131359987015788230748556556184835175887006918130178312152879300931117580020523892889384858664408598999857549523880820607030466753263893293924183472960347695187839754163374967360393978816283040596526924389050707760169910931592560688759272524877852698364230227447863188244447229118422187655272583747464113976340559358190763250853455483301598787835265015121298876802088913781178587843946450571697385201204255915755984633473847685364233089183568113832360607663951232819934477443933688178039741029132346459336097182063588651428327000803735228673601093335196241945019555133138129561782830776035384384156542714441618434423223826060798800953006752478839968889493401177710249171868947270449136154146380936671406800961345453510633915805171285974875965031164118168162147036963748455552686037926815809745422666203140139149763579407204750147510002151791067034539788742286046663270899698665783455313687598373324629283914319965316698311805094205975979141496696213710764239304974185664200993614202307377802050324572564300754003178196951204994501689231175994514062247222091463528407399011116727806928908257540561240912389968688910062301222428443342970059115152032850042460714065022319711564620348312807052606600227937846972413776969972151212109325210137547170767790887566033161717599637367310511563842302094744793234609473040968085651456897930204299751199106719305703983969410497485350648733055095105261508044195592879740482567587510466892564495425326251237970862096102655803089795376143912547502518549873992013904801766684357682944878960835501863055453935835423440398314525936564274040143837605565076969052523612581473160327335541950706965743275871619017225643197492897729847502935595271142595424700633997765783572923947752423329611947657525008867066027399016409739655215394763291746110308168817431980115172260239602715817855633717532635768490865820173742942437830563059749963992275510522308955582210464053079795233774297149309155511896540182266136584899365191228267374474027204771247837139548088244909491183654525487843852502112209722440233777696446105834616497359831094487264713178156065181926935194529000586743080238755910704512472178063456074838614720939817371952840174889644625964978384284168654889905059843488465427964548296257493874313219522074186044492716093190511081031288589401456029778705460281399494642838138314721959630244171379676993470046037377459672810806034706702182118340627053697126226916498229217397011890877398188919444763110818569945682949550149893725545461595991381627634073912616309030015969368644085662022290414239086525216032750137659957860083987250389974411086386994447580969782649514324291646594808701818123196760782890535733543970535052604565595418676912756796473119549546700081508326193182777179043359939204017014231253732079069221620170869573938198344654303903226202304687327199183569302006813874735233718815943480473046805271705438968790153278690129835808923266305904359318761312652778393970157971756234931287286227247657020921104361972381318287596928935044251616888108538354369841911931463185972309999500697440191762162047146023007000389355946924059990205271357674664881506794364582214453040778329463913699198452740301140620254437102232752339003755318862554813866484359293592370712145208438077903785494176561121614326600686862353879158689139502071848688411622251291572748951705701874403221896264010941160941879928362304562608071784656517446123396652707432394671081707698735380721212107147613955858144845677612066007691796121403377071799466813755109074470318338246383991322819458413816422177206065318945872124311915522956174198053508688309414126377615930426613875125647789152780949789249505884866239140745214617554188337711726118269781955249089649548442798526921918408454875563793609324642353751308365641195249395088360858082419578355344503482517552348242288846175518777770473742443610843342762781770471658716218079489086619654138807109324274288294429591899792261100927521702507268503604764077513690375933300248224901642987185672764499272653055207202783306017027966365807049352221842344392940976831424905134016924919322769005779512952241139274862276223405011564408795472852769689168501720359990643602656530977702447954635654334190454116876348757434010116384730577058480044453565138710132169035946643266735635506822288762190696173290471550195158828480242465097545055291157696026963130159652717480251500487689127909020649393055610366587713288543250472366375829069413925125394468239326582564944562692384024737362980775122411428287860477425297139857205306510802196254459192098045317692891976528195535568124775891743354770602170223399998378450263041491601081320017385287404720069895108769736341588640724168949894130203167551984127578194022431366586421675879509525638439737153537769414902800455095010293933655552231217597310834791520468197511041775706622507721478127816170659086620210428249052411249115340268250011625438718518369136301957560645385092973179702327920992317130637485052387115561583925314200640787868770119628699167521441041309248091975899170315812525000993008229751831290339211979895622718169648076624560130112746508200176283605221886451218578509168569818272979537271334351684149051203847371824849671841058352575417940613580805560825403007955005887892289539811713335918227259513039025410657917210434064449959361116345430155483846487969392606118402042934756083323989114855430880398310780175071377835811212237422791032932962118437008835198383078435274151691345124970261154609210327995988265887330664262793147413156322645058593705091505806123114037335886892259934122639813066075826691321956001384757085832992790968569751747565711950206290280033413830335994564852908280447218821859042026410395011860238853764040914794793360903711501146200930076463764104022899071573266878037397623265882153495832908278021020851201581322634562913241309147118159627976768844180172781228959032894856534963462523182018347044669874379587234930212856183860982232672812052011315688894120321527942000461630212474475527003156056009007133086306676910528678110040462290001814927320828859529203408922101495817065274252232806537201391261111995795617918139261284374589105625245812857536597491462499955706945029757246620285916421290253979716618251183003982883154269584581947868534029971943016210271890091363022654425128053854402106866151634777427823617555052957691596534460833820326978806823748861698248974109523481030936273532118902086107242484088510185844583431025393545344687552786959793463558823695866577895485764731937084064628503501555868654598463772826163444126743870032667376409362296344498313425675276690411222047565677245212733816217038185733541996067446445144972613193167331260243476754312416393563053314684166798727185743986125405272207474182271496836429647638689868226335349787574909619954034950664033948519720955957830631992273118667790850547888404931603359775680416890583047600623670991053235258153307458566804243123160956406131577799047598005847166529258833054761789049481217653109940389016786449168361447713184318550814827182710589135357929510512134050608844766635062706288907711496439965386017177268003560247246084791015827603847578265215968023564261275086100059564488867670609469487527054440648968408042747013896900445072490001851021076439082475747285126099380841148357356919770903521550617855908585557238560289521572581944775115226934607309250918554338713931020376712059060567108034003033708308653076246695049066697731418329566347078299746000996234998561034561608451097210988410022846261367489238156477152128627293889694188319583354253824839868925020772217143826196427431375033961100007372275387040820992819731469396866190901248327655445122240558730730133900636679675916935120790151821251180758355875081327178380347082467225360589275572741046528764938822321386067498371354146855506111742259905126225039833947112062796132789803155644246262651861247218436201192912973123561913063808296003326366389446973410966738851780416249966569295691680630645655011988946219093064400944713001959574685545748888338730704995571899141758441161645173565906762018757894979846374479885370334975952856437808686030405609557865786042720889451449577994928812224041725949802303432014280701072426399786569822418990531965894517881571237499757451069037725351235216078456467282392653630453315904950473662648523352057709061438294592590130300753751699254610764874160218935021552704535087190243025958808939580316417319685650645675064003342645184588796520220696643042360563138243710864573235640601313662002198262490221683876228003477440552572581448315969913965518590861736687747421524436214277209922271350282384864072491771974877444766242426257907427673930223690905825935718773921646714400095573448659525425938517738477519911304222364545565107197198199473474571211567106830380611295261160101816624297941927640700414817003052503762484116417491340717999443488251274951836128638503264096418641014704033967656567324090996999785028107107494608665933081940369975148400564113614610521970839933166320891909904536225910417610441690354759590142538342705905089451567548506069052461607551879077631135108517529374783046788746199011677911459838337945256160997909410045727667535980492153347303310860816662001262791529989011379771242378183743773298660912122284594557179244038957139796873056413183128499171940029901504258213273031402385018320151515559984749923858827379094362556146492853808846307897431486433227753081558608929672802350706170478514585419803536336016000608354960870311924020272896248263772809443439762628212612805618630906067634835946395141299342537164451331462001655130564099298835877955639347417366667191858225269855048143270489796103617651571334143309388263152630489294128695251706996491453680962472708317485488013466268829806203177344297680880084040201779688594324118805345717536812274673143143229543258378311847729462043272188941284619572561794259994521611672441593434114538715660668553622504889993318748118692125357337155664314793979828475703396881657812281376653336955387973457809364704548610893799430430929588230415140165044776599362183991068804311424934150349523013633922436506238314387576182540913884897140004348542173486059938650508374722896411106287389022786731563950003795352625240420168596246326458944412300337733605389226772708234217091904312415133894639033443508818270914465782390670551601742367966384303288152074215157334027089212936842918600152229535398717064842705583863200199244671580248827944364073494878711085982630007187636419562903159048106670365566931415351404289500448873468071367073844879327923629167574395691975682951942196884263421127953920183919723446909030775984460865283918031334059152894732038854930098394719979364686896520838979945388517720998590596654768317582893064260276884845468716583520627765803040196788639303986042407463859163893883285717410079195650290978283781485083765846943109565517698529880543338494840491837680932375029445343611511592161284428292158930324832206081338790751931256458072700265010994754484572259628068237816128138645004284730287599965658911099743466491872612942475130477320248879505582938837417532347307777558108885767794399933423923376059714292333614667035936138456572151303229537159559253145325208513661278808297739213223223383474137518529675238363947121415318342872481863265761844630304044927472728295136134862662711077594210091543031639981670047999354801502533607406969579023347520354563580723347459918962232831410783179834660844462277823403821060083165524151596568979468869064471047476892622127090748604410951980415418835290010909313363045077651055652460126587857649880217287552143794491715149701983264070799418920264898002029322965830630098901422374126475149369608675773201324942423957887193740568134834829490399894585336415768736552764682167549115723191522933440700070714237302296121237234055096904868165846615547383853829686225184238994560044254620484953636178857069247145367391400618372086787830082977652963011359263688004479451850050334963567086364872088761662915057834710925353937538565896435387459287176440696061241106526492163805906578870433053792598168830432543405112668374621646844091669958632649522080314228932970298300734798453420228363771341280223354076790004709277823066950436144058895716563038849064463474068153976512979252406171399391870764456483063341407035374720689023100609640049938329393162158653326265642096359879916748511885158448208044035545337025825193688976824111254146345018606125087659395896243976427231737186063165600594059117904097447415738994333272437182286251820541747959392905757710935139785641011941505644378075409729251451655971657149011279507029777161418329678397500186096719007363484713440453132547303358326316509563613636598474169795573432307243055845329517888269817068653352711488260288516461643256010728623462751995585233404939466219525849866905063942437840055272286269595363621911895387751154226923074969809766311901007618116398982909618794608495750063160052534568711806478382698585018317840543990668974892774271761753944225773033820565250709253652440267269574526391262517378677544793772087419550747193694383275645798988774567093540521509602163078420832516151546557633329245531613026694365328206832117759412823216661154688219867205863530728847471086277278979256337586670318684867917177804773599772740773622510314094568323347463075849545801409680670480501550088935459082132243499679506057688036192226780570772175196271222065466646916767148115072203359475015606701089943516122455985067638352857968206703474708164364061955249709700740065827850047085082782196292953908077465870212034014713771986441214959240065539233903986860463124934559851062861184926480054659459731027679165202419307103371090147558865316956510098324146010547787635341884217744467547224278239042666244065717129304985688081645782758314274935883846472916006527706908476539356385770152197325723353930442080796633692744859146401710697828933202570027759150561933250715614484711714973589020550630047674052051701983524728775027113332087757088453330302797640160501568918988550869385376794152945682371996511852081540330842218619300571852726956799765272006544439261514321292646252614044030781324699607133305248568430807695253113123495015938927769884101544873712843412179365369302005278509181770441508938347538387312996473548665556313131322006801215745418767061616901301595537331541266658915085821279416134025579893056727692752828264519910659856560933956032521252132597083824397624824637194332904178020464282013615089777002305606457967697930304447616057374564630601918684335724823609806833377078791413206261505414564491875334859560021362015699150693377883030760373438825190705062025118702807208465230512635165934528754762122401563645866076395549006048330549931391545030338760694664489421687913518012207014811194954372583056392341602306030974512217651006546224978967614701449644108194840746591481956343300062315918763068303565197868717984840395123644744331519082958571107525674142493272901778848128210285902529385108451513176785151438852154095646955257099416100787698035377338728346760983790736620754032423624468504808911153653566678555759991832635174824389906024221960747036527333930101120701140472890565098546094309803309207202632038496670497982857859007804102006139486503877538645400839004223111387924649372040121344167319664762628926398735019537189658302441536773437756822786576057931472374129502173353229294978214141942109232921229750780938391714889441591100100326428033083599555727034127898606702589752349609890408506809125215726466311742929455937836320081594048025714567672340905435939293694115578212621638291514962244442115487997971435579035876875498929766906818919275603603045728600883725216486454514666937795653409889432729573780481340569416175941493230186648205528121422266145752983502659219002005921286832467390337483775429514893975875496319025733909753804683807069960948021897548456804493509318637309418234059180172576843992324931661694806494138901957266549504651956006558426421839578364779655584211102647657132422257453787196969523383193866603871212382297578577380726486579517574413523376484350757651405665572466164103246516519752245125962981864345200655457989111281689146801073026606664163271019866645173530391880754924467090727105693403455109020422145391476808423428507675222224754205593354440495133635609522503837625535367764225645406908938353196029861360994180005779497441894217083137472870877590857700178593979524983319699407988890513649939286289515285335517305812188257976394716761465753359412636969625997111879221061470487730266727640213737374100090576501745405121426983805811096095694597304512090845992484128188374459759792108057466509281040850140512936459973778341371669374871333845627785982309880579582927984337012289493829514323113547633150354955578669846438353441704482005201521325292183810132814612898892928504823695998267044094178870619991600948775937489391240123962432974191272611403587304639841768202217631213101303018867108572797951663528762404596259051070933449735676557370636026822816153404815585595005050710778542570241308764044798699201820967341782685242576934530442661016466745568983802201014964154723475316838415323885722309573171749003510638782240764654006686587954577340920631544562042261670972922195668508530729174842487189951058120928729369538422950947149152096007400298950096908452388962634399022588734298187236183586459433067881913718928125376655133726433657003482897206702579843902072207441641466429159780436307947333831686064136614573222844261361330322706845470112196949801946915101396428011345519273311895387793272939689415231995717392987897926796945064080001407746920090253771680107805413968187353732098821830246970046738884586140579008674605814674150979532328369811397400434779407171896214890334667810313966014573183072353503875325143550830277973307186335240756522903881570384655398437632977755340529998171263304164324902466476543554642319894452630181651416047660234806673306028608592059124030979763673427240107205463479850169306713796367522988081412644926823021788898489224371575037459426093570887806341305172347258108457878146588442636184873072281580534250116816740773271117075792503038441170573163756921812715973275555644916250466991532699441751372591759229172711485124610944293939339085399561467804261602410123587595476833266000006499109662003617043572698123504435731760603265932446397423650476498769599846975499504670583638678556394505391012749447681742358791250250657591220689620222141188123629124918583238859810196194479213613762545578531814888779391277639787775233131398407240693462704496947461709677661739313057716955406857837807137652424337791463562783943063439954262658423748545134802294165540017248641278712460469149307016967414395571123078540196120109420238636043998958066900883146414899396583801530579657623857305270301066465373353268582064875770249920898285618179388341515413992740810345368534007216219563370319791358919941179176486488354514754618718382398310679641527717166403317219394421044445687770150985305829724903830149116352563370708507396709440624435743626619663003061103473689556309088316852534164589330419406563242754004827327273360198234904366195474147670115742111391455904510442704525323734096663592642055974861542923702670920069092624955749534257766598531644299675953775539535369830928858233046901123327593721467184037992159041157815614014035043048922969161224921606829952916522861528360620715514423883679458347345688179488648663006246837405182386632403338594100156014092561552943232094002010123820096021537867422222660336944305286182029033503563266090155401262267232622361270113500019548371946142630493953677235849943161071550895817707512925429566218340478568228265922240525489709977036292466001703496695679281940092457526784867584747776018607597463822955633843953257628093783980503135141534510597047791380635772383621683870069291026204319707934612066561609157160661661447922699442440570634600364550540732025618576077491138064512397364002317130913321711357904625955288876459649901290679660774545107281363101614611720386966332735304806616330983437001454651725733847666544130251729515008230034620436805309440936691437347489580533716005416245700330902384976563973392623968991546817695862617073893544335704640982792029983714978050372541950001057776680092616029186770329452261017887339849845021078884438460571348276217438831172884821196292663780550948705335357606501799937909583694506386177192080846322988283380473609725488872329786285819545505428235905710720905478103527752235455616022979019481852941130746896857290166377198893080797502599118454007595415280312036300787018730963975456681419731195507514396970510621896560254483485099214423227126461955610832832071780592535728255820786506903110445134886896440719406940082637762329084171076700832172373075643245772467515959469291761886072812786678610993869473179688360587135196905533054242033846230786853324118164686325095664334433607105573250916077352215981847013606427280902687128670649467888514112233013934396430038653860388221379722801280924105299161635316785924906263185389813653741020683703192551298110412984072692163211730131628988864651832886963992702160575309674534928751390013709544239785883232282202263461797560195356506881889455022415654622604509863904622088571342958549925788547161268316851932708021871510055841509510563605825880374310399885039271930680927754517633114600926243086164116560084855398047474864730692215950692067789889486720990167125576074182940812694196883518533592957031398527859673845821163120059575414712186550926774625144520836401059052416211709584188581538309971005905167506090764480178505715445826649737385196848575966126901766836842673030179286061916561994721847762114565832528557471041609505264369357760401074897954540543454327523758024233743700994407976897935726331947358519155515029433461705594054793554619167063645159338894991115638082007613371413471573781056964377380430449330399494440298119426398779698262372160571206386509887631332906729991630352469629627225631552385198450966005475672583633280505714865574208037722731294520415225506260122958929677831761312838152532736468162282304041721239540488036785057486876147539797161612749477526877998905840656768567222709010426424466293343037018997527303357532774383085850294189490576697372876891275443185881727696845544961512102342784881069580041047580370265793319335811591167987666396316417658574273091002924686011687860822086341773782986078842112574713426759858111518361751824533369412683288052637119595774952975636469208224252180821463938620871170713193721562824646117928249312155238858927449590282859810508962534623332647459063915681723695659888042730751214583595770628329759626673421135904485832113950704734323775912527879595430595795360184865816697063352400117429209319171075055318779488242518034439085089955641211382870560479975998965707113622104371113100398365155847880743818796868541913817720327034984638936293324204465088316210018875776335720294003584349482363444351615849545312544692409442965654348386135311172600918925368782553571670398745803401486031521035965445302337424032021882997844928744679676035073404645733719827936801191835028525392641916872154715570472419448464770366504587876387410629246086334782677764568562167440686537791530237141230291421576151323863656024008066029557695665286491072745369559570975198985314699683175567218766436825524416068366788957392987605719209246959694838884791821867617297715131954365114028049649418173615519350017506346104926619670056993623456948948202824805926092267186342522669263177819576601749799558005692703470149867117245567197997100713743637805339158822899227623030953178316975706776185354150186121985111965421266725983286524721651547805400133928227922240541355396214805266492857566267500643790375313981786166644246505469987740007687847457853226358685080025865887556075334259285633446673917234748193907614788451646050387094120981643311766668639517994287999090696887332929613618115394974911164886585240565308150939164116484058903079047403169690148244252029888027328338737551694703381286276518833849477613727600536815616336530945378442244801030412812354269130222717952384275492444235344566317790045482132405114943900430669408906643238613057275822556584369914374434279230070250767779397559328137517734573365794946793764036605588988747291198892284378799664597534418342155148482380672512537495955602255644240518185146950147782553530125327314794169289245790613466669773300276763207933745653712316458007580603738759130001062823132884161509208997788025156189351464103132913607608174072255583710154580530568843312094895844486893391295880111769217955155745471097811247370560315557555397838654254122841359505390363755522957330746283194270470229163651713035285111354693653985653401795387292613993576027202929138779481726388994859675559623343014735370360200568493896007090387051289439431990608511059715633850884339347339947653535340902601460029084992139276405697588254601602419029029653598199577195118767920156486524196456102778981552997552080770852262975037570536796222217502193950823332397127505685348279399022162064886880290821582915510945623304174803373239538816682274101824977923651748165194516281424602276075116726931262333845370403225141901208512373052467295170585047339003795980280274379869447503860079208454169362641181027969961465356193759709154266799330743971465649836772745234130712727671057508963052620588540837638094031180552695511570118761250163892502688091487665233210462678307675406022885024285469305197403403106671995339941558386447352681567988750068695103501033827030853102057969314782116282669866074771495385446183981770140037824304952706222180310125783858698970418113297113649306942292467218926047951590025612069399768952287112434275469296861542136601032444084318566331286304970579455204257211268656208595164544482378003158483842436902264338259964887796325973855407139517199753141619328301662289840352227362360290630936934345109030732613679743127276122009166636303093996641918248449643814219793748034132155930197044212516858363898533038650115937166918499600963256096835838170453211381851564446441766185332747553332639490444977894622265943314609001417510503757095620681769784719914806672078773985073242000013460038916381205718001277910842958405743183100774620428602152833759575964148450465788492183719148951565821968234442173187821717575144660994448715687566183158737629879560373897238635253307703943018797242305325158366174572106111686176833023399490218792522925465238006256802360012979195569129143463644848515868385744088156243773171909605647716490753672540426920415390054688167546694515772282331773850325672471226522345461474598649153368432737961447982410834846011110973616128918163168734826769858781322741808424239385366474541678636154841760603054078143211924602641230577583793888139099458169151584931599786888249417508378237549738217527442486677055240292679486874881388564317384619066672524746958810921791096410977405997591265872656433401832179192270316281418316538014159690050300894961384475644469781939033761966108947338822421493348673697215229991740569200918597203999738390656776597587358588404513492384760955105004003675259778906299590247893897482390980292131533961241037167702884939805211206750721126467112552716081710696548631660222472346847226786972779200225542569960246332967787764824353036181817069177758171028847666993014508414253605240290770195462516705105696281695267363907349415033343761975716145409326455324857348291624902188704762309011558704813502756652661673435415607764496200069124138341560391018128591679226950729748497971147209431621282588816004840321022807800414687142336122910201269533353927515622077006309775531521197878567932870748769747400432617601886350046649384415460927227543877234965658942998033341731338693468527032412660505521935669003685568010277055594600630211235849617487100128123861674711241510363323510476683939233806002048312018938878104932689917777829297155010490172423283306795482872565360745802545084263369871955938076613627428158403420949040524038928026594386506269185643496020017262393535805695935389238771308732467641786447284850116669196214712596734024562968748188733485173292178495466441979886392583777551655614985233175322803035526691647699966530469028861293286256891948620785905966839622933977351530052358678734077363952107395285633297179393936323086456249533358194754443597836668753547972373333434878629658095492951291735436887699088964122575554489401417354519031587177297228743069938689926574412141656520635825940217906227819555576983073358272366684703378059022369481095369854382561486290998454004253966854999148154313011599660330811905057919768119006245548167748841503580835202872936896796432603014504538817931647595033021856656835263623965511674698324383611526561941894214165286002557995604125613437873659211987763772030432622607375394485409453101866479487405498561926202315073479901800738865690038639334301076674896834581757590188338795176816415042683415830060995669868643789572140406121284545397214516727346049205776057929005372254326116776761024882313103599264333887629741792880488540091802379359936927122980245378152931396541694904102225485410036147830095893004962801121377234572060729648889409725575868702459832769421936731643361993227332038692285451186167370241716568024143664058922938798403569845845531362033840072951792331420534312114936695709410936594817749285816724974400104869240780140987287709532896777986400013151075149899134669371309153354314283807889001962984213545134788350006252588978878594696046585618220859531412793833142585430040314047555285733446875583397285382657135826238063708906811189650007959257103616859378393271847057811133968839165736896169605055211412435682348112829335277046813541313694387802899478122411360201702385241685057196071271717998799576058919391458050437186693812244002703807528552332993025125764691827340943322646455481587480432264199164250665100570229484639484346719867806598006044889852458475787571534636953680972834405065580676439775943202157994887964811604033737253612981126652990132157055463144485018904984568981166651456138951759065841927745799261877060432104914128982636296414205672713989494494473537865250977591954702130389848161641782998647759482318209839514538677886269944017085750969702915410084607433487965809554052096615988391170632966289349666888805475661834251755743241178207125748668230434022357507727119368176395106354301892952463561594939954247284734195292931528451664415873214478637529612484143885866565111761599733912491764717994967170727351088947286136693852318616689542309187915313530482560795495921390935218590154715839017316852114996017352379605898990765213773550583585799045206834801212575048851679402610152442414623234697246327409071240819694522291685927200439435108915954959650843818878534063534652708614105756755990902424680758833532087414866883045554625754732964208881615175064712064615412755405848084365673145837411946671400482680103648325822802626311915643321661065600014003661502604351602743556707300060921566394387641518875319880042391847996597882064820386959456837499626453808424448127300622377128952161807321773268329203266228695946517419862907156928663293799308101023581947131524728383583704041334411051793262717585445282598146825265849496065745232022172908594009893633007872011071635113372611741611136287292573766843558187491379474485980073137213398145805637388967422814633360231188891851263522472263591063781888775987021182671002623821932492337247472713571561217196126894273624562366817651048322885948132199219452331165096535551137236092016686625388708083645712778162457545336010669719215603263834279079737850657267997450482840903376390274048149031146070883155319090663503131989503147994306718007586600115269890067455387244117783901780679305956299552843539497915626663552670830793036463509049026619107538488499876971789707561021408863990255612261668019932257141719667383211408741282252595342168821372392922359107566153332998510550042434831016622421600524892981949926682500061042092500170308781617919462213335748054601554121326773749724986679402264299132940479689861403719443037579420867688567764348240587012231930030094678263620141734338254183867025142352348062948243900089977644789337871624140716284235331125860416705680964256475999452019085114486516914890061109772849676443821214639331690553546370226436273162112479347959224588076293461338460191629285494766757158051155337656947175090683600389407064879811172319681936866107202840995198788747844137357438981007361929846158306751570146984591668259927781522646277848700430397416995312927381943096271169706225242287053278852678243153082487631362967533949166727532773364847155437880613115669084929798134665821947242415544050741634203293986690875989792644610624205456113397763715393385088319592729743650715518123854047293504088812952464602757919157272330984532092163699678859542637677592600480947446303549440642088736052325223367541757858825392785852861701775645393783223805689801206617866011554133230512551468017460932206443359296372754218433484228630603939921947776389573287531687162489119750278998861788538269313456319677928578802969512499928784538665248407992942480394033100778780079801056926539488968171700206204607943652570150318092437320857797144722374854463387307996881099919589590610603376073337985642479096250070886030338557926995683121831155150575131274008629560046418303672070752293130877161382516802032498449691665828136784094439925158481370956288645265583423890698484261650107274872132027708946962499563859109582058952722003617377194545077037654178787424489303157912620458542262405916486953515370400531903088278218462329877992532939676851608521300191143379195963715010996182086465108154433469395241234096399872697648419049893816167161298612610274946144516615755306275237555322924099248575586306816036253033821105656388844792667743617910181632665584656180411188519033541131718874927180909524322104211226086079418040736864112770672556729855979412540427086746050140135900255180638610973974776291439693298414787116671188725279536139854586785606929104210143760213632623875846793875958857673117750091544315880353703734306549151309174993761938248767968014505209985463413964611110191479318878699265644879458303531931753161107775011094163996055315709355681441879680100305890815195045443706393041975752753914613746432316092564588322115655340724150790863007030283519490386228145284321498052443431598723189967099260318729798855302786392609693906055269167337392198658947584776558277610312229448526221605464865493197277380511115494110607248458591662988954227496023065451494091722860849562682741874070945073803238188965000034061787294885143068826576513127104990089791071421428824264988649790790914813010952479435177811666890399207784267409241710192054762117693139455328528554464349832986164648301846647422088180723822156188565932327083890842137167041573019330733810750109141844694650654060826263490961883604281133092119283912365027377775196728024161645321222133614107634907104438154523091670125392914064641779221221052421831303168577513553627563830006469785278100249598409286981142185222548154058479912176845368910246926170540166444823245725726867925438179348669498617969176501997694375224357316231218980632643352290346127993711958887929423227231925843268720166477120588324035735595739981798739050632631664727091840011507369546909697680684168393226764527312877771578671405224505695693846614847537015090462129348830795047024234059613725571409005529902963173287791000029601358597028256683282164702183799417209029618933362505984797222709557502331401112541445720727023726179507801325991469710952876451456985214872788125315865792068353162098706796342225143439415737860952855376622328835632457160654014865906347300962122309196691299257656159669457704716845133158684253614378181237849946163113921970420970092757007531669274919270889891855393111854378055411512583522332021055142587301578439946985525513128353648623217304440839935330757482524899380772440747540474456611211880857186482045986551200002151020251750018510132727678960639968505895741638820879891955243866657575517042368974040979031537323897037763909193606307444491492748609465850255947060507885754033580263361450580445945054238829001643244672933977847007795154763230532521171178772967868703732612481749321655563063915817349942893430555816475046169415814571156992477360779197641364658550565113248195038462520853155549480179110016328230068058176754146418944932853879311362663777169404928735870433998873261842908232166726194808312115158708130321443058966444663352834573682459665255522165155877039355667454699641514984945515457401837681613599126808075412619439387039505500900223348099282224286861953535315900375392773790702761841520956700151413264372693582420410428029465185648461311665499783720639243249709606938645381839632089315064025068830320400779761880530836915756255910551321814541343091107711582110788510560390111396408836071376881801072365099498918219755531431042370607702442471904652464781688257085661851406293976092347397187842251431467691272613485104902049430852261582438511341659319192333305439290441643243997593868942018977586197939870537290461561418069410162934554260809590526842120868477361553568685618649207604816234572928970607150156315408397414425655077020543085928917738846337968285419136367777566030009786684295645236567563394359822259830029509266250901804423043461429740201725330915073482043166958283121461353984831849633973603208469136567716650517886618427963715980115740082318352384380593636153728770007196937285279695046755076802305971274574709110178869891666468590194724168423278313217586596510525882635516041505488972161703512078029024860529288784513312559996386533910041311699376082922237052698242974339974275679719236495324498480797772192375922557085646951628624585223201892355126161410390208987156276673020885358452431160951970311216915038105941561989071162656637766539488165241998774265639994051368863535345638644825602527737796868938705015617035281456767799851610481653581603271074680881004412733606570610772962477955961198540102226657762157454256424559145995281280160935078247810645756697656984136022639882514911114419708648958496372746705139254125632840589743731810076461231724323787330389468209235153253465145016977084401087035577393039178543297519152027909027109285173273023980586807183800652400066786581116939767107283473927623803327498419582043195160299484892247755896708849763493213721555523406545796482392530903766507124490210825780444249099459217116074204553106443877491187530093562544047122183342944792890615660255625615227987282732892693239551240819122986328755725154308862807062538983263493343031336058747381915155362128384758113374221429041801495465374103820350950758218993001486383079419205974052850014083402653362178083644451724898570201771170515074601364883477434066317374987589463436867749698519742379855295691408375447805427193403253889075170494322964172119729033746638626770269817860660772364817770341237854694983389593837820560919148272255092888464744774081099772935689475540237211859656923847555146165736004192794696258282495644258197898598196753538538982801828207344403901819264826726621297625986942122414931168874765982435351942156952751427932319167140185522968008410852050139460007881464794245577203986964104434199635127421634679789000078874234268283796460234314090574298737659001602522468888381362596683009234385417516282688595396201801204802901126574962700029785696242528825575656801481939995328414564229421570884237974898403448392257544882398072486185261068254464566248061241113189964753216554738123598108783654797396180660504664989661459314249599776605357006332006918786658142123135575564927820122319368422758747508806338650018741865581838799704088162326185277610932003361607944505899216114238112768138338863933808498215589335549181804048873274438363892852037977343462816939849747976094023419232258442927529405325539459794877499748078925822694896437652480224603928560209540978729838363612511920973725784009025268287950725649791306409181776123183919938479890817174032888566392498398031473670008154440945894049247060851786222135213324505139290107789078215932411809712732971573158424894674090371269407271391346444038196111847312241088904040256490379199951487182693196219088071193050128739994630821787118988807865362653119672388375901591733814086102635088921673013383084759743677054651266482593573743137285260245070126677919699167770745398881198131858318952346492059973891632945460243393023849966238646088008419655180378024450664877626411921166823058738714804511272240973741014958166006681638676210511529294392278726780805063897216807268349034522423512580021797743249906825042947574639251340780816902890571191408024755087081404012998603226551009441216090106530885188039884903522287642212221171448185632472034605235895826365635768398417605631211549345511205881854421070306212913870934273712751982999999931921959138999978551466884968683363609847957417924325414121340371878545329548328338182658678316481426517596596367466524845118340191411833899851045597342981097529782205598240187161132754603045738299547299861344571733890077996593781758064604316558122326065846433039076197032583755389228056252872929175393780177625230984836393643479241110015258294601169540489944468487687956497013395557141768384415292967034864787972341624196496035690230728870235596836972777711080252318828648447767214934256438121778492281042324938788260872604558824056910698209490528436593454987256570626099257566254100835704495577132696970067711360339791420209248287182897464717153483786658449288922179008730441881438507243049550204363749101029361768740037307911144193158770153023819647444763395716292435065289585653916894333975858832882535871868013837172170562444539337116370887845890752019136527269608014527581968064929435683864882908450235083609469681402336411089979330958774949549908131332459314400175107234162688111574901192506488254190325709837549653918889138200589021939611858572656318725997642613515520915306333644036233193707551306732666157398962405216360909653551624537726201460827061014186707706826919933095893785814173135449299430048442807729419421480812437556312347290451571482112224275959234518160962221311129598837049379285689852389318074082588300045035296380764811633153574680155010901942093571100908969815836411360467627437568243766950800339618399451771415297572807762783397952860098674843333271844263446463472373869020403744178528662090602060841610115719640000146813397526958959059675474753741437892012478593516673071676774322948605207666699271815010604134643168616807758953769392420439515086367336495056431721074686404177854676331485591080849947216453797771204758389822328773390140987287321876341213051397039987153310332043285967315283296610317950454133786457188251908584637574176320076331097264491640265915141312923380295758153740368996971153704291596002841270077807885769971266664594014414118684160375208596174985492936918345375412206701820096960269646886243230159039869427692900649245194807986410586795535558483867170568345647157706017913608663937075818487583029499352951559260612828307622777448971012563999415586175905930813109391731933886118513819362992744382827603351849575734881477938410108988989027646720561755590691170975943251474534118524751355116353568366530817497129616165682015107459234581923933196485911746543458093219411430019705892264229912355414479727389154707514420928824521812386355583461359082339940780132075227011933970664566051748375906636184935765681236062715425160272071341587366725245495659772042527134200462252890012286176935550923589823928245670100188629797777081636102679050551059905244086567014875651668917422166597318011013310717136343290807482266001906576723603127750102362039932688115829947133528117406864568391685752152958762569317195519768296291144463819698511483751326159123843689101032018002857451333247757397676849574536347605663570057108452927513086251626452319787308471190774380899976435411690333305636545264192095637194360789306356910223956165991511292418357415316713165567523087953486662255622361922971543188677159234247181991733782322491163039787315329258961102775813168447315188400388972129008738993057572072768709548549028122759044385066854184770437336505687303501826772106814199849112818068881073611120390063849585978691510390268170132578218588486796955115987693687547232588245410677863205461098233647229305681320121040745075098292476342196827870253119646722785912865928379382418595785651343923190228620549297620504004231674963658493797631565655539580753648380479464843097149175248925032290901987446759733892860494170436578254667990342489465186794342403629535743945216965286379291634161925462694339968593824563356759807926638079727230456149829928041659949328343681048785870716086388873526226591120983287207789499867076681699403846230500314309415667777479613026184293149058102801089455609365710224833068470494882180445800899103741715841222515668913967942038339809804120504316962781945337498958550542000394752962242096802411331037632671572950298857204085390300271263186759435270267667446894983550323147700611818196393995716059611037590832638349625793962820865898101887226115988746817317845896267037925153810980355845458710411387797201572211618385635133397398995288299324886850072538765116197919693083485743112880099619357996844175182016338726340962302087163330788575058217471287201553095752601399050515553827680428008225311873353211217897195063523865477860331725992499115870947779880247388507514727312205556510617564970042236689003882637204608443911228145876636965135427202342940701519685843146792287620851292794815246229355759865810914325745843797281236066478305167156261982941571822651486171994854570774039950156408644644894569849150518761149758362405191384553223109853458129828283265134432419527037154294613338749406664960693546232330241450650737641433319606655381537397597682509564147154646235620171606335406462631081614524695702845845561241876902619419982587346107237847178134978483162231373133503339342916863405465257021907364034289096076074710664803871610340892968100492042104132668713323088175451997431225375411294152496228565734002601661654533236903363542092030333187267662866994507421382056624627763898698961955442877761197723468276979469800149239446334397649274517591098740394214709118452732715015426272098664731811467825619633981820404059894887627293142961531965788400334563244967469343822303448709524790240493992141075850102150343851959102213539025821837893365690364313873314313909911983993680787928437606467129146349859783415728758035322208847239048059636032904528137297687009745214515132630258526130017694015050293209614553194737060742165312254449712291025826363142479408723077686947457484340745526083082755930998161226899133251363829269866333517709708860051508644657725793516559576184560166680635627205469617091382845706814639305649046575571541589692176539093229845898714484933468001488915894307828183822381941634014496157605254631553631303553721702818208076316169432718255771975345471247904078146103997202678551217197939192151549728266801770485453294554085018761157398068801479508119379186531987727829433101579483056345489069179303397223330446773526709748684204161130782202054740862699662668633526998204782981276291653803174294707419007139057898238786592151078891545993581819569206852199594057225924163736630262021174616264637455185603620546781163369404607694967208156716060507380472732095719105081832861343776339703138046957992159597618025739379815020125480773308340379718105035112726848026786359769979195745416470198834381749244636274522483811686684988589584267963129129953907902272219345696069780870117947714528479972665484024863294020886520135799451885911232679280589738055918786885060595199909259774810461894920800241548705000520339845521752768565763670013013750419881205838964544171197636795298432411349560184486589772977338559572610894920372925476720308392262768528678415065507801202605233034009929944681569226189467354711663329223455079710184560508813602671859373038067058841090723104286894825373180956286955231497824738005816621711784973361712417901332920663151626601743352782310085137864334968870852989787951506918583672471418162835128928529423735149448073346284656415029464452750344981994519771875842619013187983791363634148748859770631251874771936963796751451640059800021101498235881239425070969748360458346083364277624910685188637154113927031714093660120456736330203800640592041627249166933305053100787131002696079282586774373657987690688975698384544150971343778740637626690113208095723184682771293394083390267900860782377326498831200581724687318209723784744926967972232767870178806426003424793848460568609020792522376026578227289935836789796484843995436904919877479296659711687647860156654678236871106232476368272481328019945524446360164823088226422617615405846181771430950686140835063132456283997265785400443469785191157625037012027055010122090517573175185125111540340129553478094327889339290197703988309701354013147618104230553907306121557829094105803210542403497736830641125820630250547815833659352909976250603313285016105272334611788659259273517490718744257851737311445452448745008187883407843126392315510157014474696800974559647044579755337759057783130095407167962236765044131184298815693119806167517570589214960712649028023241376630431746536984044065742640570965675574351238128616338884726326838571818229144895890984390036311809274056957157875093359359171913089887930672007462802851173640554062936126280806196067285697466558477908699319180546261279783270861748622142520252607788811319746847910614373869576537533807965813843833050512811677774105328139427552966792905982386540273963577700868233478190389961709739959206249634543073950625707953004679645969375172918586601857998374337350094696788367607282305940628597406162921348839783329593789754391379462369068805655756104462483807431932237908358571616165468544501969855212242908083550191248003953578441828934773127437003824225811555949970874609442071960440541613273633564585135134347295115682637340473401833606582619689439128811852979386927244252152108077902578231909353787815964918327243724369380707558976233606514756795134267281045107085259992719285313545138969216897839103839269681301910536771925858318959851180516560715934202215919354097127387174611639229991959108382349580725159374139179007032060194208615224205611353607284185791143676862066840292984627220542799449848061030012123586490907730629342090061053188067552231980254803592961021540717997564285779292663630759552149609427056680645494867321030335375852717301065641127091947449484468861531564986047454645296122009766198907531646544876860715215466270505487906850253558257826248233900633389862097203948612045282028868998332361201248418517882986553528044989186888161582793525993067782144232629773437754744521933835086245327392354533264904091605059354213306878597088181688117442906473558724653638722913310254757203066083999356537913015317854356492548766966469474135887894011400292103652233323127888740303011252651091596545502406268218401857897276638048483915557157547332587822465306150220510612645617135474233471305000555261249449676144083152559786626242178549362843333803315229556427614064094932659151081260756293636751746015890765236768207809020973358949734974063697705176024425269226988068243389244172691126387971941365510152188849364735462389911187694450678287117811873224470300877969987757532775298275088761935836862453313396305797488131337822720635240697839949161532939864671936701077984012556163872984452121538538873726445385949050897034084867705455163635529609176112744680806884270431630758174257088428208313208952096247749874050313988091280662857792615786259079225240435049069706619177809290524344754783053539660213174410066516378140334979503773690218570079401930476234172548666113895614048045749531595824801601869326003676666837882859526776891991539263400618873131690182402001257531053814167308955699158286916540771094805471695474401329886428684791300508576015357388409893378150577893093671030334111372137487367816977611493808949618175602614042476717573425509874171082686334344745387982793465714133284474519756462271293029491334775672775684514039390761616071438020134534939687746194354780044298289043079066768146669501734148861496935624904746438854721008566882706191786228336668447885377357692916969786962499057093769080466218836999495306230345522180075077566202043504676311211167025318923630337899342701795141589902648815166344104401502978892670380004325015527195670294818557809474227688781519729125091852886952296097865305618674451408166720831724118269037711915157390688523399926239249060744942143039590238017890772946960724548647202991531969979541151661483286869514171302549707429086076990084068625020068121282548899214087153951794064026407316838711742914429485222975809960733068662967439962529628700778383580223519387664872624184454166865821379562764326022088038466384454191239541302832877581410699671803200116141538764484148287335285598802185573138943670629029907080413571816075571297031417689815689744339984758175393342500016498045473371733822377830259372290993975867166527660054435275482405147491739578296609301865740270084364138054828394748808376856707933220763300597462255442078011694214565118661258276852665356944961320228634413844946686975592739002394422719773047537731047479512932684288803907174019879113539300852773777673037508876968337465959801883682990779663449997227932051670427491579861830935874142423698889389659596160798610282387164378568193954829798053294551145297795474499153633894017946138628853144626495166833137597386286746499677213689804932754275909770856857823803260881012608894566104389392260323662389079321311343744329073799610303931284048754070967588820621452651338295442026291613088268023114795635980312972255731258259407665231287305493065610381354469768841261848394507287257945326002928318678221712687945785440499959333428580557395606641420582607319621817555899109043155542470589180312310556360986920095002226230285970579281331801163903669134486021186366459797462873966936956094321251107670746051081525382667472486732859740715943538958618699346262710564367607101593971165431025678280623207439931937856945313620058919737694586253434664781111322949790621976230882662807652742207996223796998620116040598969561689987806657785263518070943671824325206142732938433841584183769488653000970939024314994544184206406003282807482430146018951416738120494955186264055992975192199804131711500826853628065971875609505782154915508431732712671763098160540174036510475319559105312164660187208351671399504006227785043793619916185424104371235337564603807451423785019124453120830017487662964540905421283809485806593888484262079674291681977373155635091215230902093077137829492516207785525487931380304851881213655708905741066368221830439560434009311573565925174500245700800758200512989718111993018455783539388914181589799627738603964732247093502845166195282128574432843311316988976235838504854748997809229550754870212011752734270944590791317096830960572210342452722797766821433708346300647176650436925176850805429958636555203066490190335522038942514278593877409996040673655292141647572556048699638705885848665858973954797371518943977846969946567804915458712036615097558457763114030130635454766152555699280516124761552347018087030209497737481337442894442739047006171854682988057976573600652541044793941229125689576278372372701991359219665902021862134986390421538703899737024211277674098730468929436676158958585246728663005106668851914254707425427845008177575514868341797627344208565505663647025282505904950727149553758467609857615212105230594946195365786964790262053840368722970947893666291112393801695005502068357652703019435002787356245151129575042765798877675082331505166028243817824936583493661559546604742276681753817699613170374516410608797508644167605429628727745073932133756135797374640664721241297392835712983144048784989144915772732028758775562447768629360586525094405920683948518621041252611765722879123011481878959737411251255133998602973003006094962446848074381317674415524185045807147111494826537672584781515237020927843047516031642151663723810004855441602217008538743907909511906618995897441892319714720407179713675564923957150654946864557064536002090236579024218408914706258756948150556862631428995409339872945790910337359499351144036020647155444894023930301630879065710236269079248365469492788216248374387713095891460301722442679154865021212421019590494397352793166124357562935545075281760508677371410668888644281175862425583977666827277681481559402398834344070390609926297066554663091465978198520247638056131296280183624186086354050788727595179198683734485726802193998941807520168150765580840343770807551926797776791198723353530553315794740088301625765680993293948960418025016914917278395956178710990750975581906889960982724912927704799090786651723940946338426151445632519454912965339506349083039261123161021353932827030878135852959897507106497889036757715473554175073448548717427658254799171101895970254223458160141921922617579118261577053463432742063417570328842585570422102965002185321723809259524394842306222349599494885481653567648953684429352049693515953619928657948566109633004550116209183523335594875857850097611122705235429470461726374107727564254549956370134001327701225246173587841980314738849130680968241838453053977479503788669912818467821405147577532678778765259263802931529992869575179379613593305592608666330307502128067799057616509710261171637899106753568070552644440034506417358138125323690227717474692384654918418943919274398131021151311785689816988340379675574546995784958429376147707073126776982069280311369434181673664888487186551790862175147207615922003741845690066579434254894321618724985537617488943133132622238841452669332316994406555191022303975867884011362409397132399724551013015151216349851736021770253185971607995662350097008536021741241440935827775703767580646178834151462971136458162548600978312287833797252405887349129780611728374594849360457445718254582946963033643705554064453325845908316563229987010583183821183601714694643015175549729913676912637504952647453304313749974285999268787074853755084090323692445466119773237525670436927719235794390457576800723188198291374817158265377718626785477815228622141454120822048826141224595259273117156549952548033114341890080760606439664267988086348526213312129358898659982921856039022775989956387149084252507169231045201286842148415910200559683028106588965941333999954061624533533598229434162092075555994545416569262410862222810283821955797766650347519306001326379618554334526266387942310483926911359858289233143936278805798323630536654064879372808086180356888273162434101507368996215928709188808720742616428540951520765792665283972880687802509296591998483624978770973479277007107132801108342396104608020658428519803231129426426259522238984024993387489358039517916761239333297073087770907306793098781502144549697763126024903382837742817687117551120107224554458157306715527080639774483563639671254689048388213992062366588913183547146626211170375953992960664308218119499962185905900721181320553936919517432558329073917302124964348256440169487644968069334999890988100132765434726661473977704092630761310331240234835960544750996432416665641920984777701302918726662486784932895521979234326020456806418538158403852316937052488438582339206542239370503057657181886673506372497907015553431876158444500672741128721615111707426045384539312770782242022493917542446514953470045668142618189526548669093681698240008293104567625933659458279931225430219647239199039317710917614178574038378734049039401889343931309891733444939970077876635356490377740372278607926441000106399200845036875831490839820208350030321770040512006904332393021359055070575935699357711130046424582410773932709366177342110807035834642389334709994468937321591900156346490375045807454946849939500372249976807484036750616918172166546262006576134155899872272556435667160687638312529891984111325335783507009832763900273950543606308700943122761515491165355504418535742059175126278874516805547584712308717828345639535876569120386593147127803771971116609086984177515416638445515334715990310980151000543003604455797343317392091134517522148799243856942667541005266665135911994087796084129374503121933995100903621982681054375674686648402160524509719986990659839261987625858411195111137309485003773793682343766516069380892189345802477941597763575005569186299562769806310317913971245275515848492398997029952147267045708436217283953047524310267658531289631035566518718714539261633249477807302492550334441926888461213013850562295453047893847534064250377065542156513045200576951267140669906883155118698966512192573394638072903301101722625782816745152910286624883744821336455963229618827345575516431108637121253614435245086652271268132833210651059075135296412786595281569036070070088014536347892700399673772973568966804248347585105959741321115407657789826542408837388628438969372135699877801772949963703986505366464754266365465960425888751677622783934521197298429840116630604437431393384908374355723137522341490645556104684327336349906725848598439313067374316460172103091589579559934005462525917809296427757354689597911185588319049324318094537078652005704737390845794336472478245048768135352696004696070114247462500041866517480496348550652933904080220129271353645809955973663870536940336623430634081042037445988726857297748681194270942369640737597186208573229037799023302501817800549046340439075305546652075189265397378873020982470268369011788914836846976383865174540020459976079801807459344017213339873209320952426029737680534339174686510228902393181202659715464533496421845995353457821104939489837563650925854888937298370939776997925502257318052258119801625550172236426013251042537351781815048280440483097217796882850663464423520167639757134396051995867543512798743041750950904157667843551420423074769605305575653846472357715524981633338356577880609483589764970615944399033121087482078730984751982043126323271704243656838750468886290499650143840777788937133139912473182362138290163700257760859563499368038320905759111360348448959488589712924288540511891202614038333965860031504877926177768107405674527573517968219247437665485660310129364541467970748428340615879655834098313429637752127094494600839933461994133444403905131498415896035621868620677698578254137052084951734988219994378644343829262044730433880946536633468438688099602872107819665983945543179146474391682875178710326718422281657715942080329362851436272958826314249451457439564777949345370390923010094723456554374022527954289730016998209973373052807575526959926867768965189584928134783601657059498883375766048659660492869175066461289387701393771242937070378965652182368443028830125675722134583127824000268575385461232627325540676910927817774791363276667529854911720893071075944665219265548903029327716334401580882085187209372288668192390134004043508183671795526670089020214314591177810279472194914132216949853871078762444362310898198785289610286068810175609881448125400398130362496736965909353077058320621959289637052350461732843658927942168461992023905048656517136188685529836694467763864955876701993481658849151630408145486870631111444541019599433902834885328712726726734579591252401877254850425539783442640283144069606714781397360476751053459294579263031927779589195622267444609880676223585622451151445305942848080955694051714921512141048858912595264872663718132097751701625941198807633660198345502223484079284228176914971448963022190293977954128098253717376430630366003319014590798483461425014109090228532237313763274129880937290053307303946180328635930543594057624953163102480030734970184156422066448773914838340589282290960680147571717828266765405579856258785742999225679471322477585436136918771824303596662931903317288236127480824459076358988334646432530866428936843061125557688226269716210412181637478236862621528105487013764481240982692489861619746046232951724908814828376203194012267558178074309774841505893678444295589729800807143186756235474814457200847852767436473217681430051991295280014105238380164858299482794198324551805884801498801566556896324335972819030897710941637642698037494685619141135384537621099321839431349536393501037545334154251631586628081033162040627200701539164649992515576808344184702352522419405772121041809864359534055345732297818848427790289225759535595667895811324478058610852335257721936854478157339493309746063918505994070812732325284113581970076558312940298718668941227259441273229497875600898654915429917199712945032051183558075298689725640687026666169572171682519284106540372976875488864151401751131144427808477555793384318415815498247448951892458950196450909800820170346933627556570757799944066970479210808273545276222899899863667422424716960259579560285720651535431698731691705456645146473530054237515103442890134951840977955722322261072089896855942331781934315678037757682429325153033692066943544382928859713672556948254261878822639248770842731486925254254464603221815376492741420425756875436618039557176131422485956121730737233782900952637195518801966260846337551280006567715693072773917692562676317184911248410009288841916220475054868088757368176669886826911655491519667583023928922111822075821709787934203624677038878206376219768373991663649982453060619107347509194336964299942159403076258887885505903820165063149495605817234688081577759284549869707204112831079278809934256381671072753525613903319809870396477833538875560546093225079778598344502646678254743200615843097144954788892506131591882445566856523084142862297671844607671244624478268978864166956930094073501487377584484150476554785493051806120755378465488181333230537580823543258239090386722839580768148803779509112532028495099968954627411404334975407012428266902653348937270039819334944692355174750063630887837182701230760040033975586079120296717725920676528477031357371239028535082919740887140898228218367134521670511034889587212837629221069157978654340573403883713366154585197163678372228522363951199639703286476485034006351686985554892428812120810991026724449419202156482410434451124738240265859900178441296817814472007420372014314264567266924435490656656858993081070442792127506705928311215568230016670989566053862382164820340313642528366849709506273548487341362290455161671950806612688987330645959161851787501094008202437281977209947995985491781487641158077711992174766816905203988632901260037032925271935175263518940968352301667419543892946963391624965888110581828385100360364985792585041771673232911122339457067870548696250740164631188441589203887219393401797701648041633855913723184660118932274230274527873947430548688313199859003527062837853969698901979020585695689256408083367425560305105532835338206692599957680260721244679216518371923990619998259138999334864062573870835465498807977966729168095325751116858838297162659071249293558319432532339625381096092795379860877751927206665228647587060158157138256433429796836582075528309109400926314705240880796493208237024636077375626845638926504691721984523103355992604880741541024108979643863532926255998411289903086024663124865221516550227570716950340840691851432158850065701597912178373857790989745377785619768266381756232107019409011316713170401452188104706303755406218258552595210134383768206149474144849759608020630124887140347587646319956275716507953908254316504242497481851932229363983021027767219329020153849955794280023903562540105158449165598100946711652568570344032002180033555149251468700160367550928197851650307996838826204620987980550787267552041348391971764102014944053263654736965392730451568763704183285960768972078731005113477988542900667404340039476866722710539847405374552998437626900527235982829048802389201032279977089160522082807899235326281955509924944374765692010017226805267571244994623757239428998461769400836570592910302175622820046061233199690740963417714178788655994701577442571258643619463719050350230437556975379482443369677744503050424206204677448986051582297999268346570125002024171779747255716076000251299837750693560189393145086087436958951412063580857523853142667641701606760998211611824195723291374472039177895803240532118095955147712066761264674716387260835496283939204341612738655172671662553922303426816119814519770146556118783656071513992409870685433043892283942572783979719012568733161041539220494875129675413966466305595422155231636805761862316131230966566401625699045249705211124446344665445737463479425554613787742836881244068230652433138794207166496517420068470632258919596969666008459959888807628478244114928298083819374832692762064638725586119117874593361389007534028547498277757145645541456183504278972651584740272316288095199118923884884534498903187190772321640577340405669518530106714765894413286580926343964972985501186679819956487628859852810701710510032672224841666175277955499991722752959992240553184369198585913899929695459144002002106094245283567992576071656758159591053235862844029841105045732914949737679630277561979973072542037546966487160964492594354869679560023097366473180339268257735995451467615965194066689198921772763325946408667297781892447883436746966920717756557667113819925806736804002639650624159359247946721340285223552167666069334015976999889273928656829301530650633067839454944937283528962825638601863029824617756037133325114844881254350141335497581877685983279854404848117853019252992894028272233881669800713146595153322623037918184781133673692334321438891771433493519217118300544496487204089697819268411945151359308146795919050891347639520546982015244436002608898667133697109901220460552534862327835546157693704002636073309757006843060634707360509570077791928540236566276495885702061755581719794876939517955404688462708948149831061443793879680404427625449382826035242550503506019701089887690446036065290414651523733178859954486881234410684574834369211537912609122739791636181857583215030851157623301788222413292127351979342852624213943192819800367548578141073806215360606555042216409728872039610549994398676387300619509113991793129049893556965360012125605348855542808463609699859630702063663319446988553197784692899562645737522281643320087884260193789023492607818689649626098092978187741551154948774870662397201452067350747094787765953108331860262878058237733552593067867105923662826846153704461074933203834585488263727056739001118500302213809769496695760636859180145300177556108913746425688711480283597306617435431362474245760571270838793800255891522178541110826250349738206626249618704271570531307874173211451216043680950088760179200941124579367809946564894775495618964810579181641120363670929498695170477010869860102788767244210264180591435946569273510118389654125351063205679257322220332174688898206327076238388579777254154103520895735409317649813256678450442227176744544584064104231800675128181545626181436675869481122107038681516608779905292132450717691732353398862681617873312192735797871547706764064888433542273955777804829852886377701930041374217275604127064291118667360372992770144764413993000182709750130857918693759722116827201575331482114255659379127158248280095805025480305352689647256905818717153969993106248112952722311568823679062649301509263487124078219467953167224263134837185435269822547332275040264256172883829163644207340837395000194344578573697225767975228728381149134053349183788808809448880078960355796134892721809199363640305078952310870717505955288987867068845961301941012254512229965665417860651108648171637757354739899414823155273114376937862250514887063198493698007299709685072534273940413167564123884494705444867600414749013383983247300946953153898093007013095940513158292343873899209028307135366733547688900216328008252797701756853984452177644250257139794331864601829399622824393923682186773095420527021100697027651765427104387720598123935246246234533270743362453381534004549531930738626780239306562418957761351943069532656514642142530147505487827956522062278863767166379175604415439096334665607474919168370770392782881081245076797949600405245244354400826179204634403692003134022827717981432194805951529296669289203765414012692459312303710770405739201785696008466639617546972772528649392765436434213466743498681419497447161834571439342037420605983027011013385666013933469444198263347965783984398347151176763321839021995881517281105550703209911090033350715931108042972610109747741796131724583718249194215371865473941239820858199782808316156078794671034970254955751001471797124912953166728849810887253809490050272069314545007372829446548613279231874873205408449735277698968372681357261798497868302942959271294310962450635306956960039906458531360544170976127444848663020628108478900038374998904459845856988973996251790792268906929960902845766751471370782653341872122903978125817839837966222910476107294635419897638537748460586301539183174105402277191907255293474147523619086867272860289203969593247143143483301744971127255922428524731206706590557628448167356960497951309764224673842674320814703192237077051365621114667734218678528941271644946731755647006200225700943443571839657461455401982309027106198976251092510967174589221250638783845703192574846166380688901842642009761395909941347362319451088155326278274427176238022953217957462833013239981078295020728194354696566439972914046563739529162027201637277083314231681329999021422655744932335802786976910091537393276186830675295831762359380805823799819380361943212774062877932905495279055190239464609497435272636751215563732755561194626456659580195664570844272423054176045040787559192047638926089941023841749427038776011253965972194425565739809394821107310680806397842008975231888395313361786401751783735533210336808495187208125386018886030050496683469772055517525118466330515360509996100901120365550051383231565383025853226529158602114869633309777889785626731168096687291341335619509307466645106283524071129943568800957916667687274279493191168060916789499912062638270944794634778309828600855798761185827057973039093316218152899949352592262227983147342116748543110794657225394607436526254915799404247098485792409138054569339130060058354417770750990753502197944213040184035606931060553716324884233405383370956459800040410781490978227838910943519570576144285064063765724698985056455924137300191280630352523736286601149594586555561874751549882906403996160801433476596934848748669316125332463432941879796670580043091569056787921288646707334833954808751799396281016176547857016658087723233350760572779829578041210445318890763499783272167472291549531375228759779277568872881623928291177611403461308785135404846894967214008789473111253304260504231460046114975632138246226905330691636327006577103457721950466515547248380842817363368528643607038789620884011337225969383441343783017537443174880113515514555886193724320810805050536482525868768217699744912173235518086300876699810216182035703309011550734077113183522354965653844512737794870570435331955646378110939485193951548380287886674772490617305084987617823078408450149226913569812745536073254973162341301411232162443336368729275828294588157045474732972393361790667814876176473112945556528536849543331892686552200860087996962564410662124034750415517322582531388432498759489810720844900444350211054569914000418617580094679458932787561862706729669334859367789294452055445196434576680886673720231153145917994537483463745974049544953431430477260479364640408866510862775348378770227541377467654853188462457512897964280665902748999364925572407394491338347088425627498879425802278968798488887289158925270595400557629826591074797134180646912611879926229238557849834306119470790303619463478767365590161317335246188213218275437874324716459414542396129414156112943489059337589538484105450691260636258059122341079468269691919631502677609659964066836292035340167139931973682637796501239030537596536207577665689679926970085024222124058744061290863427162208242319736079158573738605951263284788995934235390869898979029224769135444929345234200841378389239992654178435651421433729485116673087629691089104951627753040487695387925014565845942747027253606805735163213755261854677692437136489164574084147955975819153060505343669818003035975590047381022059912071670548864955622312214610748860376857565632766057913741618693306557476089007821938078610189938160645945859853523856790171712556898473238234983050514854641015746464603940567686315930659678228914091733443494961386604281001220425058383542021821164565792344905433172520428894168868336697670221772271775427010524306617395966882145599521321429802101626360395822684259420862805468688075643916012037471483792111126036204004891903752391547294324149092722780483569516678834958132450174008238376075438784985135929022771675171281334922303998945699641088993652977519135371864523765002814802180549179343711813139000402206163451993445762324980217666240959371575986304595178129071628422519678956509440926011658009302118390851465256809856839147543950400216154465568213785554990455555830850628641732289270385317903478876578963900577320382123283920419431907906096066574599258788599068398321867248829356985607824004975629938859822942682120838235015651485907727396010503041280376805053219346867002496652788846036684151920011644907279799283060784071863072185107818852619302843122679682652406233618377249027261064087594666963231696669722277177555702978936987753156821844094675008924715011292961219248296028437432737361265524111546097977077281406838938191362595559064049064857958901236863048565318387638206466989294810352005538972803520773607271799266736974447262660703033793734991166848599561464475040481530329127915434531675806983899292892100057949616009654798345774027666975291856897298409798672135448913673030948805394523408149171407937651955593343203735441319733942903215550680658268785273471379098779910987414171652643781353359614928419277644621743912226486482352053385240647513057830346548853513574127811515888173846295266107594238085878261343370013621373116417137154928072335041853477511019944770391539580873568125044579332618966840116033057096336193012709513258374281653028419284958521705375101115097890682186188511191363691368061816621617839030135235632834853920434534442953161557600841096217211469818835151952793386394658303739428625657217621741515214557650816754941926176730228282391314497808367275526647882951621684050985518316536584598602367579438025783233271500128315788389357634000167981754970175760071416492430261784655047460836757408943227041350136248741801288694016383848097049535690123145540276652481955688365027803161534632084145342275971780745516565390173713623478313814474384961360732746817889295948870440005024542113671910426103210448178757659397188570806585671578178914596845801559474184078262000657349177838003135636619215303083615205474716011742701218265752395157295280299055681662979053954442726862670525984929253221539241067374558715526403488175095096170237170916484691509245299917903493977852195372397712190348584472532100841540407801481870322922273480374790949815608546436604559386205280192089390588556049957718818656712139508845074721314126069149043699270416568510178419589633092458208489354055296284014956587127951978535032728692806690448282662648889931307233701345965767298308557268414898032967591844351338296732177021135487500409157961189625491760934279270150815592429627325709360115587523826917425135114783221363680597126398679868887343791960854717964143838617275467236066880454372939106279575145078231586084322945839570890210345300932517937652746964637672910994154185986106258572700514403188094368163865001012739329159503962799983291046181099646512815051222348659209385229035822181790675632394230653752288264615119692535532016728094601182984147545651310657833996308993152405766801603722455113741328948697032095881593553925180829450340298181522330164279482989504201793102111258336186519957330554696757730770337913315462011481244833373401425021559651682441270468281293372231672057708195588771849821072505583480150016602136662601377578018126265299147807176311443292160789540638283206080060205483337949250348768989097049874924641875948787623707831000561476615023818867902520146760691781869231236401033347486221255294946335609100572909546930657641086083509605162838878622193546036847605234866124152728482752804838709459889483569178535579663616677109847096037840550054232927588386691108398448921847405080869693084323858062678924588324842759999285209318500068802846755267998776226150130094790816894145531776457866241427270301603937988991809040701781062986274741146230331941379285716870154102815174875370180109538391207296789314687343175411743710155242157428344625136793879757021481471689119765149851664244009062253402258005194269513812675077693034543665065152019778964112843527000834779607252603045662725202812709179488253139989808976208794383787173254596703120015783983159483484007549975617903947437126558873754659960454430977863460915858840659020742550547971382324352423150912888160171959500961178537474021866133925340391348657417445457353391681254688198369836871774410739309311808749895971544145326474348808504077857137736151021980544543528481424985175844087796761204001620191522228869932706664736487750828887452834846619617073125622930894801570880491287898530865685025093818337406278394051691892408217261933228952096264423838286761610357395421235596293822965243171897893562011992517766003150914244126643655224908762077469107523164405430455707400078368454981645653236402196415865730673960861161470481620401055016758117539164402746684785684369894149365802183327935663503154061176128788827034093930434311115929587470166535108056544980236875822971466335720099305639586531135041402379928767771227432654287210552276058764544441885952567103527804268894487848118399110552061746322618068622175806800489152222476108742516716936105660993604322702167168776535053640812000480590124673801145718490741148110125951496899382566299036316586511453891510721200136392767650875449902714116637859224898195883233121403737953501984038255293439527580338785686656930911952929945111346402387706519579348149882402248839360181965114972501610376516818534284866409391587108374088297115293302244747238008771860297451772780690619010920840812159699994037036316641595995883657101931526727411865227352420721389084269332862814370607917830217767996143428941552966837383615830437401001617495149627758201497709757689359438398277127741263558937866705415423825291044698227322309306843743332132318518663174178459958922855547602899086960891429136134908939317920828903457010148179602005615881091331710602654704479071389944834827150215912493795177329261762725172820967372105529008667272174862127346061759203683785992852561087794405453069565120090646475330530708700983923645853198628774109289596280410979637355950547793926803918714776880483618033206050058935581507622941976484076724612131478513552123941656054155589693884077151731603222678993319521951509344467969325929627217275567845965564017726156853234742569549141121714489551373255856719328284967507768425683347401915297330158946832855109239784876513443296127308675668597008680172437965488538929559866969506106667412211833632268506596393453072997907088528030461986586273251058828029175549249720860805870445554773297447797582024657350613907288055898834685399365749884537033766078295669819036618683860654999231486224229495132985861437891597678219638301772533607060517304321996685929254089303667275034395828230518376724253887670099856825415779767531933646260079518143887176977932578904423523333894703897229903224353482274156617428914167243957592393267150910411810573833647839608338501798997917239353283392579130205430610504846255140822728484461662835235950650959269296280735235883674961086055509419202580667241650051211795046817806075971754889248039447671668658572867663948167376057598927283470942074598629058109561243154486816552692264435961203717218043723763543548735743087787436908478304445207679151029986046510999521030737393327253947390363770570755984170708791810174113116278070382836487527940100275369360924631631302489648233487598049692066667970793994928823295063686700100210089756785806354522580247702136250272021579554130112369246266770730129806096581096324915801725488727553027447498720354507688836261503165922619167512493271116158731439425361488292540071599317426024777551191296079216823489624101215252799284284723663858264622380042493408069121786182025861723532785359837869351779643250488040601752516581975744950239450105212058028651841026607287052337931206203094205031902983888085705502879119313110969691682241279834774580968395235050256123135579375725096322708216794445048848625178477517788881137165868929825733649362843314402126369883114817740964632489614712683751228828409745710273070334632106279200429794892012714013098708881369604409727070108300509093004795477486266341987078528661721248149812110602948033482908029670996631208389595135465788184722101924878331943422720117229962644791219471055272066149288034070344667281119926758907919597988443329806646962821737237891146369178880683935289843222580435562334323803830522322945367998118280155119249581628007541741378608653372111495986436947089566017712236677653555533031841385940830692674989945302224192187241134807194366480711469062233751015608634201603046699029008358306560497127603241158387994077451695354213817132811132623399452618262483843299895369432193450588638033145635069160303271494656480769192053258862308448695278713021225169916154128598930498378089522335484741923038127960670071255958404696535079425197859097991680992125937120174065671085678118788709724475339175009176053160165959400178763169445587967407228876133743040245481561237150164941469775826282623826824335212460308131954830269616091979580699767000265877062904465587398330798675946947006767231971094871861773142151080113575851238167693351261771294003093144791100484241367648156136104100628665550228175853960084253134663545612309768503298895475182054484160956305994791993112476369183704624218931624366673843551483750213118881685194209512032813752604444403946432258880048728381311295587150089130896084307568959716446731441741012928400450269822568334120535328542641081952900042220615754050179755802069273019669858015336721494994134659222038164529528390152027110075414712402123831671020313564909452759364330236523486570252256597465645008669480466423655732384324603141310737562260148093534036387600263202538961870565520697366583224895482207819802842683225843535109935367583485230616985944013760777643701924788641426134294887047856530293485680195477441552863352551092052480306493207159777283234367452861260762090904979175239256355375155497021508613378750847098827015865691463565923199442948524983357281959542890861646910709730434855637603095695708518950826588634605228995687998709055919840439715336546571454307385061287475953282470007817585518590189202086880711964302123548227391433086715534988103572787878940238787756947952372259370555873821992528173875155080591758146212852118546590640864649635935175627843408562856745690086488878950743107536767903027137025430948916054650258001354469809323691878632381560497714551706188343911361748321121753635743788388893493373839533069704908544458717166462575993453717480733898261865411212927801155385295288719716854101123257661291845828310767561138005107434611821344068997348181147253001541852151731495350605463417143550925513008749838468679624566477048691222071166609525653123063778437087919443891938773308139881953394770459136466811979981353371467132439688052034885501618350402368117247517874347788497776308032408870058584284930842574598897558401256933098078742931762821513720986868793624155915309499101452051832181732082597567094982748628650401912906936858982618932904115721184550475883033447788530273664375410301460321166913211062007627559368889446678960830245090516054234026790774082235895743617410685936317186574090406241794519766845945354203910003581752303923507023603366768996174122594989243582470867045706530593304825968114810589396710428665156026439586994441284803888399797933496915159116040574081596957310982099826218428914266825782201480046231530468040584786733259165842180239477836984310177942307714990782929665724820353881452719395715666187898733745632227504945965432071401856307448051925843931197640372320859438635691430217848214444436274804617100186994203032696978337732691769000693356216232992322808474422929155815419002197410383650463008772926385632559437355383029128930090482502863453866375123677874486051678528827011338055717397623264113944728655154776088843640004411405668313357067647571749346131484285351099933756640019841346795728126338776447702075959808705787421622693186232649067896437014422817622357212237994221516075203288692295353498643922589811190024507997161364972995920919311340617722576679829503991469405933214404813711871217959088428134520554354077109368363510879204418136816737661647635545280893969161410857415071979412179973876050236781424564935084760326772714622446070883267216578259983504708668022695558000066498249029816431120367470413084580808503864552165303448102537429434634553240592882754572597623005427671260587957293909594981664202179450825821656481157797056287034491414538765891811976746177714504104428398915835286352198374627763447158881467196853052575005772715048420693876805493800173152055360400440209499875539413085896000131741383584297831978791436312456018937010055666867562403515060537038976118188627060888721412689638377706975309659253543260121879456103902666113171073685837800868861849908294997408431825926865150009907794960821991905845265050867939172256414573518801327394532313879992602124467865999591306817427981624276080502798966934685601509878425240687078233278962043262970816430613531548421116594869379372573360173765234050738570345501711655121678263231443340835033070652035468352330483345240709372107628187771016515617127260719348477722937489283361781924921069065353043039735861178042770303176175727626736568145722442333592802491150632910205677716918397313239385498708509229631590500794471960350846272858644876564959608162443600699666912475797154052456694993584647430043731547230479099508793367361554197508476148522828842138847334865416030551127894995715093301775107531088229547672795308034997601324418506619933820018765661774977128854187174780218528388641045907365974768459854137841540466445722991591612248430498814517608862370911718970810561886847731899635068528643801442418328168701385435954397462853657415081229572332617473751929982038434129012555300773849151299769422528386813226207474281691295426271053627505121317025128675149859863609924583395684193198586335883267743111269840203645899650709550162407479599497600647434091382959788766320988042638793255475988665327728987256884049112485193436029786246140312421171943808038620462424935756350116167404872662808129707378424786689546369214761715859704308821320935223676744748710589619667865136936603875344112086940269288285279435556329739102497074691925146819758815460749228703338056149169144584541813417858057131768457179530161252446393579311221949719732565856099601371033433763408245760349105361702608214868240528191889748867563830876148967096349575044958137448614099477894360241647794564521969603283962477550914789682651933294950111914198648204939102051784631988692714059099219150952371115917321686463422737420515792151027577620597250146649192677192687870182740398379781661134450341166684431963349944348113753460401739239029097568923390467395748573818688420687867045244567770448266886214497236387349512534568112576301253753275659896994891952976868380012892115161409345234344799428432510856375496068295517826741171087040705507338916834010651899901277182054611469095340476994602574546025688795138246893908615536440564072719460316394130729429143354202710286265080897877507304193276168960788671578227885402690227353420728850820905366006383213665245394910239810101421768361759265158400825790619005889672595444937045055297457703077984362493226180746582318345507038960700099881568798401454762445581008399761680134990842956853865455861712163723878413274755754746331509491745150214296682876013702835016354891973698106366299987397486311159840028518335062597180773664037718138946772499113884815526373529741301668749972613153831805471054750172335565881671026478211782848589879475110531561351977813148537387763654990604767002599612828832089703658639943931472755302416697665343354497535436764538388624730079185652438757621146790773129949796316087584946554388371450570351362759032204996475702487441863639053173107320285586799796896507989356198091905365887090905639314213900571485458800316464237449665063230622213648258734819340749073001016976179117048479301950367933302789817573843825785110163938518271648923241764199380535417094835023484349635333364233082812571367193003804757833896236485050010832938492870114202552162221284169984914822280632594320415158829094209466804048896472988635904052727870053166831195926936940407657104909267214699979691837798932227409661536218145606435280061137728689788138433816041773162332003149447708361448779331825630773366454678413680370955675884918154469845228527042662249246253298387368402407532603581444350131309290371033699505544879912659710987455947534747510956721229993619786812451864437746258344504959720212764375012736683877366784441389563668961524298778563044314469306880461579536542952297765208518457757986512371793892591440333843927424451621360224705281798246456270491538594103990971389614788112037165019565098331357153314734958778602301002211862604823600980539871133011309178878555873542903971418619744796463197290530454139638197210952977114838432490919586067218159022405139792942792057936023483588126091939904482530042232224726421423439833045786570113008425792572635075426249536314459536497654628386572719296283151584603169426644905753099454361324886129172030281950893147653748427511929129421567946519775582573679941551159225333644411908508035149377302019735926285278113726342155045509785120813694342482803712557363708896466563898257782568326987567927753913814769149586517850120967726039223550138776187082179013133092456509526846953344965332411019054148449479366659441819645893461592256503492336248813416177029389018530764538513070135789200814345500322063495027892331309670016776851038891320057267619472624246998057431625010095429684250797465765513286812541923363552743365016936209287056713790151013735701106282505394500402031024379753779637964350754997816120862451071393852313616273013592697542619211270689263288164881399984745666814285623800077016095173581470315876573999832544619207439727219903042386250130752868826269602129189886169176041802004344537346383394921607023926367750472518801113095893309609684205536364635158357944197971691093613988663619327443646340544849385055208478775386343702987196624984180212444557759768801336127994851908849123241543353849916035639541290363718461064274985402514205866700105762428760313140294081387672149875299253031701749145011512138682530735235208755182426712341569251596653695062816244510757201868794380247923310163959138813464411905902427775734848656147823879937372617221267088089613107411734875143552855603396844751430512264376383378664735717176829945938373608816535760113929326548932856344259892483979837142330179384187935425229968796897507844444726806595129813861990132826501614088753969564195885601924072933160380797710476857418640728592773480948345746035264246226514519980885709578747817871577106054089407766532011306665225074085643453531615350525071428252265675348146116025348835350000127062844204424271982238946419185889759305118047332922966450724349215536656633357494606822655942513297732489596871204585751678178048459004846800732503761449123548271784892517459468710388855878814309974077127761242261533892966269839274973198152152607108802472399272920100947387867305531801580856056195703265975876453906401273997297909859788716315315004067739845851775398978146648468261642333115345874937836377682264833986653649014589825545673434816746028120060760250284736973274252996079759638879453401742214483165369446882334077453137954949617163278709006251251153887694657324746035020790495923419703742835555327239065635137368053388122029786685347487105537975373844605260113565641077542240492102945863275797904717106385001347448018509445702457443684432409243956525705262174955638681437956815557946854807294018859292742167695530676476077952618364283506011057854170135365812489273435866500446611852027011293387525396929326644181670617640874394508401198444224192398644474408514662887780166556670500303206591504695339215690201093416453421956622168117470825608697608708450759500241868503890000110136210938587516516084971174902788450936732123051829444148883255482791434972584411354976324888255359015465832848505868980980516380607608212756955268275025637408304048381192441515324564846571694387983747149478872326762696803133673030645348331942129903859534224597344529785357641856997888593138045744066513053075874853303967851192329310616197132143094068682597662682250641379144095194440694133318040821477933788355737549505471272021514412691684809958389560728812343286660340856488947670464626476523503774679444652600437549315480557097797847841484609406537386367843985909939409259070205355802596417221386220538171517172174343457778152138294015970257114640938827999019353779045899679088029012581648169327092394122713388411979506931336149641054210287558390929299065050751914792767070505049078029085109768727925585922741602334984629945800339600462198314792215270781858051469513492827286551781067560036579640106791864242358194731214434301275580718506499036100415945047213002838113251263135262277616474506864358847880712857393333507475394949966162893634334336675848421130459156782330569113905167369102798675906031596155173529620420499044147843088939052664144574844664398100312343373001251800559765403667673923503042959302720549373964190627232455329317199546971723330041429489633243557171228529827358273356045872845586977683053080704082423796719236345367414585897644116609221671871098630872593592172646250290207795707805353842950556995886416077149586575757219451428328107483641952389516919671859950895098303193444448632628992918510796400419085498809930869215976641638852049929614664162425455520500812966281267132273956799196512994550422544190846656177737770742122554423845745447550792811582559538261298020396709309279784802929236142552761446504782761579184762069473782532884466256896241466283295679788816017018226985696559987672991610522335031199034440882406434467890900102952750714207820408542541839887482186248557008558367625709240408469569569143109227568931235229701087295017751886983969385645048323456905634251602186679527171053196436667915815296617851267594709477481779466544907112408095450959361943419686759268149646857987214678497116496243851484921658276603357521104927564154856073543640902899810431488873787982132297457757503617373291062752626662817695933908499863339514029129708446146637454272758965187288685448230981123482110471528511758967586203733987551134223802234409474077337534766923835167872225449056954434751024650677798314182676853844373308346207840876426442014678670832660179221670597868750523403654065402723783912402520664437978499848416990510132552897285012573856097247905154719657777024875545164445392749216451812892091912891548311191101416204685992546329215004003817416792571503415700379334120731123078930438447594004337753681983581460264871143829616320278015535766958478332558646005826133012545380794578118402959124984009175610202154516935218518397843081685658631986571021448397407727153254109752481300022507663644137631931887570764495507018148818553955833973157286666504054365630696411658846944890992638495384154633349824503226585519222419092605708247900059092272225213312639082176711443664534498856009223734266724305003022898396678726300407599527806312031629284432459711282261954375649908146556046556425450174064531954243009865423858989498634265937966173372681729355343857003778173726616517310542290837830266267301340294218409604554817994760613471099622569771915295950366851373205307742320960697543452240262599620387167125590234968229118952123873039659741409977996222331343992619620801793743823736197057521991532285284595837261286537259961409665396104432858792728284067442515521861578657132910322741373474746515980114754103721847254583594479470279537704100031018171302645042468553567258082571576897653104797533397091702108516968319218680927694945294063403187678004409945992639607216383473715492639932162248221742340609864049433075780086825439793519803096812849117181695908377340911619909663642952754747571274602130578449677014483853532906475920389371729493090072836075814651408392323350526448938202383589082218305661269404534625638473300018512332819679205287739990546482347577626414178911060910442372132937549523923922348935116906307820166129061245764670197358119072278524605396877722746381107662233890234399959111268133441292797049701846347028651324016139247003079382875397069316293707413870554605399235021508964175928971761481190633022981143574738876041658292239757200579396473392521974495948835336926620221290216627858367879935096581695259933686452261249019710112105917268963450895962211094234442096623988167586702031647467238197497937478473516652126506272117041927703354526146640504246142752813312442591706560539933694397458692201447374938950933907843806814192026418878533870704413942482625472418266061132834857852082217642115023829256316294463299082738103705014641673988625065888568663912910665884790763039476970205360313359306844113210483179188794914635552345696355418760145482446855466035848301579900376277788264640639321323708953090840601510567065770500464349882915011156528646795133693486940566768881227296643616047916004903041031576759076343135422077729364616906052180119359584330090298284109518993387995195806542171965746038395620450387441773423038279000850947928644061992516072093953936723765285304977985483786340689718444482926298269429265433659372906523934850511704187937850310744085674658196015211433227307199436190925110639707177907783175900865107600141062041185382011096983256056980317378340563630570147365574657735745593672156619629817330375000930353724324648695405357967911434089838759876341797480087382598281811790331229826234509685630280294897742289842710069281012259790542252067908990922931061934278559631549841109729177891038582019548921022020707178751823244634653086035896428807496000860576670372947652852694328984228580493742600105683801912789002652275459553659412614527329427932645377518840833040935870693080586233042330964433691020654196731361078172081616435905223082551494393485546294471722347766573064517249170877053911227249196160956408230254834691855209868416953254124457464801085424457284962893884437186216283784974080353102602794068048751242502338888467082790818605114498198339947295869740852655359335168207377081930992936861313320550336129319758996714369643940984105067203690223031315065263214663285567241419315628057434872423201989981847196131783929876391627015380291870718646079970574995827665045561632057643449486131079478068055811096476070770942895245301971235705417341303962846884202802158863612296861176147556134573118772591689109640451355288468290509999309642459151007645094182302440076086233418394604332958114777388885747058269010244593441214462209550249235273178527512552232402364826475866626154032291846085746110949846895725773521615930956223648634723032351091717669048952675905538180801879036611739007017731496932331956367738971471256563891229759188138941694277326199956832272450704993977830778943855899058737310068154543268025588132287847458036995869436084911944389200062953391429613639649757529663002121070166499536029064521142343959960945438681207088808131224085597239735055369277043486952283281059074094483703341431358982213789115545533512035045991462784794394690957319948851861807602027040558530883670968040396174242072291718093946450173620230560776795578547662017189680112419249624932236679651310782869093906183445165795613415604474208518824337835510963933873294847709643028273419531641908928935906312512741016534331120714579715453146816486075015235270840753390810028056246795381532949173866260966760446834175406612095783275177393300749812450631078078316181880862934937664646793085558454312368949249632679005829469486990724534107190167260154435603320404575561055238546153364810084193912195735548904360276415016159391962331280094929053665562173999914291806247791539815679027117131298328574642015118163855436909165120839350361024804610513390487007426555149206659177473076644039321800468500735773611272817455855163269647592050542638673625941319295058990643389857646783059707538998373743498437242763746857535811644793660448405769823560830454172140345842917234715484385889185396677855638568144360675284545294671195275367374746737632444534738064418055173322417158914770741319245512774656174475147844034395376479387069689906592328299353198017434301434419118806997257215102712273822535996398950173594936018072795674692660752559926630615445536149980688410644414076412015184953407845398015421624722639149135221098109226358371325537325272281344328963085112924063638326376306848853483089120918767527583089773288034358196315019666617134912480440051432801578183217849904413013893212999019883802912577773326650742207140607745853913280297037795111721184825595102156743230109813349128509505003619012194861146587870227776321903247489631952884797195746202182677429486176466417352496331284459482869236899722264030257205183742314046498117555893236514115160945932546763642018000924977619542106929486494321778681998596210894317124325656833404303136004119145713403550442233033896372465220798727102595197472592599342290800518834600197083127343467921285649744139816012748789253610096275068857506044326418159629447606356445007300078406015172729602724182713219209215524377200363436384867019805387096773977461329949723922238771537335179299014146708191800952413573712731538167461282566944088261747467607595026645440792286937993548467737786420871341963244031363761276270214706726253335389114511530370305249104615863967745098926716152615567501620652331417152232494379757681079216745768899164824277389039378865083025938498172162059387738949127982090278491938399300834615666623989968034494340853388930854126359505603692032859639880471645394832670020809558101566052825799369478918625104259579506490820254445827567547425225652628963581240403133283432788447841000664627969078846706199517472643705730906948328206663323313398312664629221476459969397926239683734363819930194792576295216757313182036612423483651667072904369285579395796779445492808096854461224583073501426527957252560955153915984236595561291989356982357000798146544406261009280349708745654930204338075828115346025927756031054341033444003720646462578204112103066430744816547228110404138721385032400761596176071791399891431583069560973844751464783042084421935131376078707404421668734510042037072612690113787772193169427329790635741573916125168658442110909712063017668470018559554860585974721380159568975760453815542120237915491796284449044307064349023573771401324833577635110150813773594400018072411389257363409693153944420305642417410045190380419869175484612710147213668972155008051743810551231432856056210835699577834693410779590982024972794135297078222744128288490049979942572720203446844140198881111049388257364410195473511014111668064622850587803825272142388633030363548032474061851950541027684377808617009406260104966536822282657150257242142268161246850718479585380413033242059256616201986721829425059611612739768324562246690714760581058040320555948318787931078947332089556125671617519944168522163353191074666948644127134122382137032577693669303565943423805633293799521198775623841965509621995149409474285976774428545402696178473941396706804485785111917048165537349124390852755160917191401878303835238433712245665668124849168598117852451387620997575069841583637833994621836531791725960555667087500472593896876804621445506086334739306872149262090723043405476349249476358183400653495396148007512023468938668036624141946134371396898896477781526458820172422449425154592377748475506954766945664209315063370450431925067095803387224225475816656160981136933304871827701858787920587133248785956127840848245844538190162517114091104179466344830899239573321484478169195438417157645159522007364661351274905122940706023725380177698106961844166955672847022325627313338566496740426640246039473719056404457603584516713779315646228158275734859189823184524587907605368266836375034907502044950572233579164054528406285003873564701614303365302131704834068549033792303560583437721045066779877310507193606017293272081371778392732605157344561711314584039999369936969741485034257226367999962096399539326282677589666034930127767521898087365589727497683164122257771778014904150320043845743577617200918904606902972872300662923796146895521659596809927952148456853494805723695580285128503846310666172596736057722223113654624524695756232214321504888007967275925152902592975082331309526003339555325590298538215941185272964176530999117583276852621094267811151537365706314854577049374803901312640354029454027912891278307061517629041487329691645275729758188074108167423227673056563551904714249969368423533825042387146781063690725625203531682346913880623094398955544811057329298219757718215725968031730650201614597292530759313139810509222848803996420606668236412371898717450968227179246160940709854234659621038082514846828173135600774755754782521126437392668259371182203253400611981586328142909187034879273941006385092831006896294781093365531614243152406138007404517870700583736228654728622441887160499482427659052505074964187044354937238170177764799259324459989858540645226059618694865906388430501385798251145340170150848001249051874400727544182582729984558600784558956999755608717255283549826926020808894368138566276095719188377583784930369812983386136547042901765235377391691264231946042867775921135745813508037091799913918976801439251369415829570010882961145134526966581022888573018480504511292291595020575627390876403811729654491053405440345811329351979033652120683850336516850473133976003774536997461718889021594008876121257252095852697890484922442769138642954108211568238709578408452516711716181878097294512044331544547324350068336435639697893214199374842440860989191205935872104202590069293851293961694119404098405535329674257191185259020364708856774354857344102208900444356863274760746075875897560085128634603906674220305643164061818309009543079032485348322377683699325066153573947248941214445540471116109946294652193452874523572828253497585012472195291389773615246034918579112806012177333593357351314047561821580360648407356068829667863152155891535163186401424658168299226744452337886005228572518341977339174949157723544698662340124602826743677147967990831397532422350783215236788263837846266354434735637452088829886099865692377457598259597858287615375421201308006275624621193281952839356287367493999674887735852815533866755206442265815992822718082304701117318483570101595755311565288539262213283582429775130636330831917581066323234695053362557723399278218843172580291125370718482028291452248081764548407087987290247390920128998925538260847415575409636857372627443741258573611882624452820629381197970969356661076769503925657603430859188850250594507192440749313323629867559290281284815925632037175713372272497244736188847319378132081897857513923832818366887132405593562001208615550395701752403685632801132574335078281934060073656329736947000760186772852338944459660155556833877549344069348587651182168148678327783234255722360891750438557418458485161300140144411297743002177183764925462308789930544274640243684066065877071079458274182554710719963477720087685392144450362536925195636187288597217299554778733574885010435157460145372081005477313314130545488235291290295441708927211749740280195868361617784971602216978460850892474447076599075798829065063169353958250450636578371292856088654936561501696273846938172410934262187686015491554137989639391108576194180988405242661683771417016316707164446791572205112135324155914966955069723100877542349457728682100668793109077700573375187680315633513873501906043760108875129008789396186734249444147420225777226098997836674000080632329475739453205030459822528479512137543376014784609843820962493099020338274116503278393300079127024634991468124759428633234951896002780802692560842586228677886665922454669556416483909666733798905698217705951599380933026456914540950056510229063871385828982999727245536692639180318216408264123391698926896337827129191682954075457103856966004463542893716217378398287492248257186465717097475624288200061397543653151363455073904761750529479811314865744351739503362943882287340203441654748247384072467898884198187852761355989880754288341814361100545756052785553643338569913462867026813523072833303838532996637364868575397684849417241385678995523011503897331430553922742683592384827561608608004639355353120356922309315819222806738449464441924281522198776131660856154425171573424954622184958146697300753260213243791803122469197759509522440808208412920965671470185670638764367657789815596105168790306442797209353796749050412220319722880510631053081026766364735911254072601124276920179475702037684115851137216877542264455651172760148629452278810656989126800712601905331310049488337290427162456906390187745149447499241491623125953984480187307201477579791850689894446299956783721050280393569409825005355708354635781415199821017340967959938179518763517204407974247021236842196017468840346930503529558548364853956678731078982986144125386075202715690869018804606005592527932056772223704069223844062979827742366861631921228351173210224240316446823194589941830510355553647807696571386169986390191242097836140038555821871407507807349875360538423804074390093680305504828751530556080668748731412346553774328848247902165876380914537371730372476046406692426695456511196444279155117536731411010934792471008875117650131357113127214973521624224818244305599864291004269150658730138689101481544970058604748081520373456937754877634477268021285678750325146178192864622064459230807790507480818378299401784472908374258807419972180825699297504859194159650143115365560841204031576707435156321213051478646007903334183677060960119430395212788575773897731013859788787555681444091113985879207732934810326031240389689801493206684118887209641783896237747423327688750163322861920308256950426649890192503233502136984941686639119840177596349554383369749672778516236427990958576350909339500618599536579559221543541675124794834456059447175909823043148931675550446087241288576433101286068512279454279771067494316947949859892118835737882390804288062770728139120603753287471792329138389886276584028190683230244038004512800727809273921959566205588136750791349855161297137691674868142230034605791944575073982819778437348045034901222561190326868775093384053102894448597276476963063438891439065538108136768904865805973925868092752450064538520522433679472997047679055451981022733875789847901388439034927357952381566763793753722767817502873157143263285313726052939711547462145273070378332443670131466587698108301902774276896202927090618185904564335616118380371473124582876088375566082739942863365946834052846362996980556750892151920157147860564485995724123700137353832477012133934002113359818110921721146045705314304168540912049191472150009528635612228998778525422712363422921876537368840410759180600288550305247242300074617201408395445665708350477710857937835212614107964573888694801352899021690289365241043003304534009227386340961154673288441295012550425455965377721334856238460139870156277837631844814310983115935694890244497925163883659726715377560769579821792537119730517919351973174246099758421705003445521961888110667599229382608866236358433843823077453171414124193179288231834465879844492744344139430097597590777724040061785025679902420417417388076534830942091525912681590607665671951112913244365472288524899520755790636364550216266253775410484372380101132578301504634276442316267903546055439063119387569135140763771081729274736546402694022989371414107721984721801978438518728397156619148355034391036485647222430589689811494714446656839728661708104307856307618643437219278136892985995772351146980183629460537755378629668520523946418805311620945026000913227240038388737847685174118511111296817088576232956968789712633536053143131265156235583118272184492899208465183185963045770105116589291129713806063291953802766119182725692989643163494879728470022796461147740722080597020402495801636995195024210000593963456327600175018676497078037282537912059856439804466680110853857172427246554962729148382911880855029606966482713359133153043862711451541943817314311073911764484656196761905037790596523926576943232342108911539902989738205394723693746556697277315924210281576406069646841360338393679604399021725347822500731989536580709447069263865403169298570570188626573401114266373611101125047464336961573702009115988043967051750238550966934952047866734672377646313224007125898615185143307440273573769350102330620872001708615280995224390278651306155187757922913272819356310846128196494553843812185339581639443854762859341388614102754284634433870114331919618415769180232503940135221018985837848534305415749686035469993680362988991642857833381557945977485782467439217532235501695573108504535102594720246037044881377950764192354762394608324507412898335444147866860587371843127535316785834449343474794342512422466340083512449952360481585762177087066455343647303062418182186310666955655854528545605582171118218545041235640096154171349577906657519087404604075533065047319120594568921716940001836214590499688355838551841968621507451602258823907935851746315735071832476612253479618287361500932226057798190782694711745210972581867107065577895116313617830071365648084413467878511559918371253689699421503687708213158915657097315938267807155785214782236555900187203165466328927140978187003793454136495202572148955358710798816062896484385874867694595439006480850670769358904140494066647802685437200809344147853588947118222763948120287707441479445341757858095840437298437191572603574441928215685283645352280598219168699592315830801619707810178401729854354959034488873200356904772642255969664305080806433396586178214570823856818144515955471424485242277927550488726991878655214124813133040551621133840866594750372897931089996451275142262436555895936027652626497428205409094857146982206917855609066753953968210197374130657579109100927469637600527335678962371794241232185938975613107550927417261590606025152132704829738028697433445313704555075682790184064511768734213602825763692562383303190420216178206581890781162883519769836737319732673260924219900897880503758405311868869764601023016126165749080115549232977944442450933718046856737954951747747128435760018794833158436732911303847027456007654760334429585004412230363928247485032516364587848331932118924823023439058325321682388389832948292083126100013451182381271061914643068872598324811671935045788509417585791223303611622454601328102835788262799439244309952934453308950953921013533433602744684851626653053511403441304341986793543823257938687778828927170929196950296573763899728737952163112849627289880446878288514624671081029812364378701802810841057307301256174347477838600759925758095049005013291748522649677186344782161219818197351009948729910091587805425735906710858943551653176371209388807747454458564423515482883472543940877553878684727278209843266826489044953153070868942957074451153833618089421694025076778300085083330343337724560491299620249920930288673864913547421758007589488797604076040207134118810177605938037520997068955472783766336046460471458014761375864232238804705039428195328978552124005229355943330245636600553937074140836542382800692770550879735998135638166400189466883218848642850979379215247935998122981988301652254836272172609256145562286961243166728765293566630586809739414570145593891077015571958452255661246763273782114357763473912267704826305756020499407617191997997332583555752948314406872366285335480038308754450539607592379029781496239457432418244046054046448540166126889076506009196072859372129015700162796876930619117654445125735990938219712791486672306289438872249347594348325962403563353132241134468794322067499831996329712185263254736665351963505313788248167581467836347303938889882768394395542784439397137789139267045920536942103112921515541923607578641361229985098023560208757757565982614515515318259895344031906171545491388235226646659784016540609483336378264117221640844122301987603675399545256599138601186063252597135637158342853796991810051121832559523366573508847304941327765893831046550580003087846362192399327607680058191529479710082608569893693317062618189143924422024865264336877081671145010909428689680030137501217720712831502353797301687122186580332133955171144764515001152012315385371774249589972921843528958246457657842767473754588542798279531375247955519745560495170625758496552692066469510951741814416606011252664888757854424950396627672523745095127236125730093530449568810764988698648617574554593035218862078285882708788109519714420482126454075255447845250328602353696207678850047150055068175126046887058063743764951077970119619058652238343057188271798009736605108391761424432710681442096922899649251899222123909064287607368706065700173755278491694054618103461128122555476321397160805315031989040328628910790146076696562756059949408520860379847359215008754086192250415073675749565312473350514996106241388309431767142154041330307691999894895286852638372646768126259285754876886137504606705885876269942593789525416731523195232518821046478632050014159506968902333153799361763501793911910849887688710824936598817705166751394828215467661643091293342012532861343525902472112014413362135775219970255413986293802473123875334440496839271317981937401283383602041208597074707603004313299468862089989197356374727428773727595002225419299452843454174894353953462254631322136620482028362144096066994006131579956237970918324183631621825891930658540714230873899722829862156277656398777619812355560769845772232162047362404115177634439268220323237987907967235341192055502332702276978223070412842863869045423038096921489232339124650928092548443955027564414957112430582526915334216588642622001316701017519079943694453203657711022993717519785881983135372935084716223319648748405668415904192195236933935767507161104372110182115618103774641563518663599065959113474655173696957189410619456417507711588967680057133158496106509637410071193684347174756699709351877240844490193138615628575195517348726859893398062119120061063070732750327869539949973107483734930693441640269796230204811002777541163831503616223235677064519290797041105734358446927725694772838563773781869821825489199869955335876172222927117081154996563139261933157627508746923961495066507481159219887406460988385857098121220506585040088906487417644094276281154679280601764073258939000598007888801393149389556596902883078109200467882274540951839839793735707262937625159485410470171629549405541644653710525516608958573241146669171884427680369168476751955887717804330595461683695825934773619452661157558203383386121539586470066300023798473123686977485459635763545999034969213961855693760063453704093404483047499431512762358865807749762588959417743166144868282495968978490389361554127506555982590728317534034840348472791693121849128755741813509988607805952039745868970689382213660314735091913115709938558231227913234014105451944230981805800424523284395699275269501988043495233590503543427941963104722991435776783776561485649715141221041037937142765988245521543879675060899493148885035865244939849093031094646857752699379740599313192111508453825901199416211012970351844433986159614503291626641516190835352103511255067551298253569822456541660552311398691032611152816915123976550034267269712482229677136886089442266134325835087175258674666629292612968168127739443597225974870215312712177535134783271808330736589156404771045188675352188496654528095530357657804895078872476865684381932091629090776460914136738286192160877105391073559204351894178657785119781204044050795408316084949669640840880808625871879176840187691276551490632773042080534824568133807795779503270337651683100240602024047570680472468600203922569607612734465988526730595084587663138539439501990105445767341978042687050245152554413713541207097594221780840461633277052087599276277961442861245921901793904104960490921666394248277994614392454491134616645084076148190472179498732887061364059241825955200693984382209515383975116958020023696903603550434934273084296056681290854066377257696268783850368323688238124486916969492381612622029677816030517522266823022574695060676611506998259426748898473236470023161817752605545923900256751093867546295604159109290212287081721844702556886799440803821571993984159360577227796423012592354469316727775104214514358147998414689662111494142352217133908350882915075959861961259993979771825554864285534060766512403537299596171388293333175522860331121918064285050747789222994693051249233131277651858367278814406413038598955866858821039308686245883768646643088670390927319166991607015128913310272424982093205869574419006769908668906246727075970040363124461389496327792544745555535731332637074293379709858520659714908590905225688427947926813208466523823068747765761059023779570200820578394973811259460770672148476886160728149978931716331209474123411638651797379154237459943836888207728374480009003815187634934837779847442284473175543404067799216167149824753269550511508016158179215104207914477045470750581778912683477794751717517312353303253517297239081979723259553104013530466933891966747014113195251422444295502496816035544110727882083347273344573526417374404188798273120437870034711563949803605662451922676944466645404933028795403800412491999314094586791012633452678818403572590757481525736592193788127650913699701667018774378110064804181341105538460372491071009825980391469103437393829849991745037315248242647602773709110945898672452902141677589023205754884373785320678487657967111674885028037097604876376648211664034212975042226852189362659162043699014271905738145199049078358151187860338527685932534077958405888898554641039265788499433033248318020604422398545668407930668736481558496032854202558639463166601136550582776022964887869279235168562433516965815773611968325082073395345693417500635750526392527318018372355863126191742601355344477318344755239243877718476101318335263302196238800032400461708159506163574749512816964986335717634200585881872564006570854208923760757268748282913973664419054978409664944973739836348059009877637986935573229594934546955140030153178712671491944265282661015281565843868211181328599521733792656664715963087696016048584555648284665219089430056311080247664964313142936378036402578024226773753237900916340166542025013246691216538022048708556309188180911746197096760887486860292460220507467424752338573165584368340621225383810789261662330634800486481774788471955549026003698571672918194944831374946450987707377613536779469114565206242143259917867102956771760684709163109896438341560271568488295416671645799393393379918197300237082082288021854491557550679026056662796486217427609600033319490992560348996340892495766000612779246564004382428580903424136478555760480646595174797621666559690428622329646393854637662550078164107590510845400005284156151331767420788282241618361145808533151600868409645680370297891674831058592451295297382190701923483470559066461371300091744296361319009784856468082813700186476092842717608636515968599874218588366074028697559539801212453849977091684932333283375302053452639247564798332561517305518147092910251308163368045384584842302363784940375862103625517550046526004671819836556099381341944314891484050750405405210423298967516433485164955674708272923206270203592443909827910853662214313314085903892282614016926809973660739408275944692943446724476384042703788622228635180936942061483351799211340497490263572909504503197632478033668465476461820983099032508015473458179821885777889103094143778083172577990703814752582217015456313284099105838176564385177909447354113988734319091253319781939729350674677738562065964796173239607057721706516722594285156895807967767022858632781555882300437788703455908768824756239860300485724025902825644085686374417711365909266015265610065301817342961080070115177689237410558482003968489257319631104639332689971525384259703298593660689052444075121126795763999619021437906006286761245551455745017232479064433918017877895473084964363073613746726858321660745306576345138433960626095507479414953978650072304855281838410357075755428724180646664346936525605535420887708798353087114595526012911247882241072003190803228278943712245690153273754815255276732814361520949103086413528058631554744986420812608788150674967311829926333574716041353014383257592295240636726327037856513870664063577085411667675814125248548429015111246931134483776577565333306835393451755446510644160561951723036823135418593473472348837887991078288624154615900623772649275880775882796026725388435787853979903042706797274542203005896931567995076171019196606133302834990631172568970865272746909913122535972374230089607591704814262373216582307994754521321458537953931113750248587856650063107239940163698805432306163837528514670525984127018922318744036610965802550585626262609834589950353157497532514018939928278428508945060163311554086800895193204537835931459006632206750534964686549888482636377295566816540074891784407353816829022897541359600458862302477596509082585623450348265413589664078321725866569556724293119854916176254866105751774760634859918552112277431663055345552788061786704125565614120072315837446847202984964318569476791860811109464408512583077417615437886732454423995594336497579167009817789996173473717770584241703137195779136407283982281156082338163404917110899549151384601247556691173900447964646848845488825860981569329173921813111040809599522003699329447457571160913119345102288262535325381780874585429369202809454358805154550185486062528048881948235555479047681892537647618411234594703881815273042833440281657298442480868750066091265092409093118575328256971633143101305105812090905949964446261697752544774077444283311972103152630988980851683002425316927387751368607585479578928892992494532882806326108356864420526430099004154284846395100537752079955705280500700751540230746480544871472135312129999172456468215907391447402578474963136606552587672859503247638041242020827414447190522551195454150445504793243280427549003131075252766092788838587179912697541122796205211190269118732892702634425857799165020874193073954288687409849508749871117403747874074485319114745353709403313554577370086914193982346136959132619628674603505971746763056372609717122235642167466328416922543500087197166120885277635110445139784015664747836490140072742108351565329409223138724070066512073938670998498172352713490809464657709861936962810494891432935944684048892939866030252937080167200420251123667619278239282934879692965664519870469725603313474501053855154801542570807749571110728846172117883879566854494155587567351691794818438495606526204347718809232197203233818560753398532478982514166394237003797499676991674065640912557546127192966142716405220246075191189053808123287371528355067360917915754708420447187822276194132455561042759824011381905497714136291430666146946505961466122980061385808035086145501118151110489392741730444863661477053967022761350784057873846170233542558909500495227533588610296165794099681220733277573477508908221094283788200291284916917350239073279161573314371340039444405672197776786197834621589045764835289666584617932198354261940688581445678082747526930642440391887778560444065286872701112026696443345035851644248006663410724321910683931048212799767039081690848172062448991301309468511713652084290105207667284062664685502508249053832187949492751647630230839694057969450674416053256544907284919500115525137971305591760037882807682498246591304960457329456438531070700277885397099555632569747142150435733187066777632397479495436392700399880672189282570809512469076303116827449635482018803989953210229668939429615859791704005744447310523299322816852205796849243013213517906140122517118641447462593543422945621912898444470475776048460925661824947960919054793702239811851205553955380004608123750597930181131408205268861498385798809411790958253107146612510395938873705522431711987313499469850949592279274212545947941322667349922311592274681946286215445819251159586330623828858512448713258169580824833008821228955339574138796744343374489396698099920374257856560582701466533397154658268322515715376619289965481727592768040445746778804594982543155384586880334809240436040447188474558936348394923793228449588519471226870110246025997978608456104301496150507868495750803847379042681291918294902703639611445570819299154235415370365067151659052923742948225288877846133110892828258648371801416519053704003407337351890816104751351589912450496273970449448545275850757376924203683213222314960650548869708109141707072182767501409249714700243428966554722479903629834065190596647083869588587693184050369380599453882488236393287717696315016168879171765870769942019195710970298010217605517127072763469601715585958335369616576927238660372679417235056656660064281141177754881578380159041761492544993894368461800857543494489752269245151563703777546887672558074856497994420902965994847420065712283247749064013023135443126541314819625002828959040898102095534664376840132826741784991332543655105964920458932892622485689667920042697858193215776863450952142417644781381774591029608779794925491844606332665833634566200370357669935906821233104045903119127182400765517770869677620797490456895387522813442447411871739927785925302119138642725989839515998617989722196646696279103729346289054780118406141226749035354995375809982414182320776346457641140555123365917723547920719814486215067335773356044395687668798420094695358950330662862246682942585272950420788289890972552175992883435075961611206786077461677246629549786868216903646337447736844994534412789853667471199520693723734777017034073138402642134396976260068141824357594254421110237308348935931558659425987307201003933769957597484888013824816978062297615954246031819825284140907914435484443473934010144144087317645128034733105175945641453509225577915387211563395102114558828607230062053247890438951072820837069470200314522103181730277148752807303485603640541994727751229727267463082717224916688304426714504954128110845732587066683384725675988902421727819077827081915437478891910930174089888622976396201124663001291084570905213002910850119659847184956481180512913190081120526339228012610418738918251146944621154181127515900249251113751468627417922133905370771938766431505761950039300987820668170303950588436308038054241687142619328313902440863701769666876446887474294716525978639804691440535007621968417633205639687236270714151983786134714553196323986011962040277725832947714481388715816747481007395842820132319462797055240294959745029056167400242222211484550792818610759890970863881662510826019782407270122458273354712009432596956688294364672622469106841805023560778805848576585318933912258428010373804843968036366965916417219214026470107640899935439009717710880201604508063786985670913407676184136601171903534475412634099482860721233291368468701349871445235927578755773835174658735733103413757688856400882290639350156702888059366296922856802320700534761454338184319022259643453899619072066462100212448525692042904022500485457282164733892880167514241364745831561267263541309640504252371223954924971522368069157938069741381764418143897347957788211535974046596353797682030242669984732276356076484481998738566881925469239214864419580485576028668276604604695768828429551336082376721010307769193048317488607196832999382405047873450081740991503085221640664049937799940432715549446154889033028438448591849391567719859706049074788498797345315210290101943445754820091317973319587992644873855898268614523937748946881253325612743855811148202343680480149716256466827559335180700209999262983549736514224939368001545939719709091228595834452115583548575604539002775903074607910960263429121694629153081834344491074540206048434377786062266834782279749181343951199320029716143390941154078878809643731512512843700606315961556459724622677846426172066981673521226266315996670886539414238911301069500488596226419727205597748657639102802197293913840717062958411465121061369408773877602170244579058037065375174196705430399838094586216783498142756475780582667074008046813509514415546183964366481075040598886299000102715686821270234636518033150336494115493827432236098628463473907418641295711590056356974298717596976027779644724499051645238576177326914383267232221828095568251601571563840791497132251470956463628903555901868244831462778192367396309580370991687059508493057973704735055912456990882358527245352162132436150432209725495779500938631008913813474050258361151343365997526134782047117617788759002288757928990573419485685428947648589212923051686331067660858908435114750642648623036527549598643190777364586002029945216809741169203563698277796983390936515607230324875580544094145549316444880115729915819452085988304864276089192259697574077446474789983022676268907830932260403919258524245352922147806936535527888871304119684122712816952877417784404389814160806468759321909459030842499904856218390597916725990061777049166201933519247565006004761956363756758886506214061345039643179587218416737972037918351782515292197430630623548548602923469344894276469698164090824141737297968385513564167508987366747483871267525149204231577755778868267698393164081476368438627655997054598657708926029170096644428485144265515399065209150334368936000914001113094045824603923498374548998600795252601967966617265732359434490015162554733728934515242213914250928685899310824915079101065738309273102557668200407584921362357344050604668156667027648356029687091092860311274011001494825079984617461574320503165991424590140462553839650133201883073558080320551059473746742773038718325104349898267473472727538971420907544877900628126018707822220960531210116201049152831418579160679339247433742014650875738128679412113344715804058127976636207405093967027828189795751467643080880454229170635249032076059457043093768634086741553414988232746498121726067349531798826609292792925832546573160163342490863438067388693984383879747972273634459342091027938156614624891380973141188945036926015512617268564665243117023020488620028803932311097025086661333525207582786876380500281711615313818397442847882567817985557907300427294911198688206909582650259621474994069976412624821730326136761062808228629591168438991272089812804905228802496527472044920926549730519859726481740188271881796593105503682756461532702504698590434073622068998700688756160268155437562779799974502434780792170349624494637474942632846164040446340312285419697010225915278069457621580679803660787868208258998912465985795035915502305065461234556922009246437532945146867155580834408196173826878176037341725627574293707054365415206241607696286905098901392099766713165748578896303037095943371320029656167407518142880696747139923943614998451448470150405981379865064592504472914829829890040842443807121439255082653792717907679261948839443048194724601939099393995080886312210421669527065774323638938739509278199005784387177860862410377314774369705148825165896855714654097964859074743458834486831926523286766765066902969933686982373317614092017707788354495971558841147325757138967990608400258619761501062548440672518383919715031768022435948468809577643448554621939986279794379906528585877955619738204646097599878786497740693173685716056197872919498443754596641665571347617385972110017033445013512203707225768426942302930154042284308818911080826413823986685377995620797989803351254721844595466418062961281277719067155307220641121569697971996191895788514717059299646863816908292342316972156828090333604535967863659316947756082196064473966366999279442141734541291615931480933536179252187000854846673891656595848746668037268869721132679438723551924665984494052297980048647800168544606544752640918827326308592281066302149001900611528112268167175266763479898188609605813435961964034005351220842546770672772419895527199369807218728661827079609246816163185596169728767576942405127088237941724140727513187309595544073872109060945159347568582405292610683192298032704335213794344622142753037930935827953843688599688973391601796387064242169791203598372064517237718166649143266278440335289344179129116838342134650249922945239508158950821660938314009496150023012470405120236313127203144868661614046276742670543373309143102713006688199753606555354802120504627495552761104058397609622020426066283688807717529364460196123216963252439119833547810472600993005245128105942132148715644975262023655462987718085234625790666121860514646018108065795242223124908860020621269944921197424387589416235256245687047595397813324092801064490606433665541563223427406653439107433816184848205168899664723212137552778424701293764477842909372421626361248117588520606876113996902915585390745999031906653723603663975462808336977879574916982175379255915807691548820295855539497291727581259754575926577737846427454867954285776552385246101774984861058391417092708503190565490798035065908881558182969338995181910082181811848901746742668142370413995282394180530660454582342135563670716437797708553981439078192308192655749450895279236890713558307463572358773537572436381719536187969537454553733378182865944982962955612088780948025454296389823693560646392893726569571202749406226781242414613377142153288283395351603365845061743871056808722315498351173142704397339435591417580496881072581813397594180901634078561747248574404712544021217720963589669225474777673223530057276429927509636301726175410098146479330620956771052094734514887990506558562118929411392459548528840132686248404580917746206568383024650313551742010476610511668414389644861275397122836767502189742818917932168621690218204297128267095707293245171180902883118583287412344224897247708583754586407710662517929706214415490125456284173806219099948757796626356342713472504081819456679293474451752031231468773902936592652702393424756323646578215684344629616110363379230632462871731082272036040201849617005996459564366828879825957431697812775263705966930262305475274471344830041998078682162668774215022830873714639919932044304228321005187547530052466386657174194838771275619528660051024041050679452449468126404134367052558311133396174047714676499385899271417226219788551697942606441248046803333563870861732579413720700484252913113904203600566341279628426553308596752688754797986718029228590379899837613681282750587554005928022809374874483376908097873712087613910742448789205833620922611883535688552607753462310154568266223046671555212677207732535854001026695864974980203597921043379259034833507247398302525219613755313617293176564657479088906786360737765198024617036784745121253170255313455254459713086147461242254841040169072503851060382087101474984489361339582783207636463942278149103070831350226621770269013817524674095714838566122302946872725671355088751920638777148320593179452798769000298986712357922744281269268639580217058591369558302782287329690819114785304092002783268448679076461425936241862141032056915516142917603074514281321229283168029105902220031821426535278975433925811265130003232376555344850858323695537373129090369638068593275408392208909293924745639847218986893843695458051748331516823677409748607153389271620687115512432687663491703244738576289469546934434522704114516383706240679784661056253158795774355076136355735081864841486521964565439566086212537955969119274448795197699705518317062094918369732501117312602593236315013451213808229678584806695341913823957718416960913312860542693039885062704293613998099850534324353665846792073975829316198872221835356147733442123640879497751037412621157759710978661823839041346057824001555204030832526447156431969192190641013492662101591548054497095675991214107345058925525838033321161113033529034494629484969581097140571877688975648703455741956961386962714206143914488863163439252631865810059685131266073108486090820316332165713151706417098765638989891127160115335758187917972015100147635270225969974268412210025011256283952152932899346047817649774807421653590866841406940561504908440870627388980778903146777749170193884017887465378889549310311378677031155796048010248447239032728265632718834514903836324177552334909309579932828453672074217737019762876921496528719951538165022232262922101533744253627567470005649766096993445093626430264398654815834150544648184044143362518079956081421259010989730209297787885209643818601378844890228094316598871174026284426177002571673397054265951409455532405896524556991053058822144911297274993030472324232802374642572517105118515996053354213503028530466665376549137993387028514183365985314112806600901833158850777919646437085336909612437339152680416059287530058531944084116452266731294664737815006980410351146019013740226191994184007724953991444414893298357246077546605437731223549287859322921293397564676438148080415019331810516552900815889562957897958739831773911678172800575824230320042312437281639169988765113180321195672073296015527197215720964453842819616993482671162768286428528170040496130088062546376677540189359357320366252001207719168695075409310365534625026266792111776701606074690406712896313941933642554055251506278373454036827489244449070121467856664632514960755909246154647413481223879837340727008510529530364623768623912417385856281684429636678600631895376389836348316407058149369294110802217895606121135723144278929630302255123539016438979606302832018632324229590343850662303939965251621383947101015179431782123039983607567795055129856789878981578349287831731018412714114811273718191709034378901087014770333066039863733674959403774150260911587655022244349050822173369385681037323280852515599920078702428273123893947755951194684408390978366881772504495451368036005912036281342582403799002507960324437648460337864525354196303348220085117494933182695414850204007778364801604415572892767318062316403394134065575141121957133335340929535025129410250874134634212534669916783480365972881056721566318200331687770389673215807428733876535315083630897973475253652875981416473098048780458720268130271452538550717710133136724093422558361916450109808696650606641113351951571252962215281594184792924047449029755493225733609569869389415996752342213299025260550531393303415325194063885579494703698018468296437707733953656956902256586164662939429788564872885147259064523525015574269623153740434482658593891205392619079460693759369517747648417140339133061929327733634389216237962008208942409172148062828532396936864624982533500880042361368546793470556486137502844787966286644750411835401907305168556568024991799713341836070177871448792791997981801289620960267759692299610377137929895859312878121457355841609841404678515394499399839086897644800046101634883530118254166363074090558717722949378746084569793740545903906618038133943276064721108789773337154771517952972672573119639228036578628131536548971938720998879493452321863160644484998432876923968533094128862424372795085828845756568444896916119337382703470663797708115885858436427168686103707446177861570903127044786208950379797090482942896038644577114709821941160238726951992350386837840858557979277276602935132875549169747411693117713532565248512894486271876046767566860169945349649174297631575708632798958509452782279508382984575475054086669584700123039116051741959319184347738011086474620785363647353678231396468728279602683532853146465040898330569870880013126290644475880108698184851126920252407944709448044344583311020525665188994407411510972655772761977986450789334681419304678430978070797799016098976543202351873788313858519069763123051734280432981297431303859380344362885896912639561533371650555646662719484902282689837996875720046485893849568846067729237225575132358892506611529228389845272571515927399468424160271709975238148183848833536282048803324894229398382212613079526028621284337790714481802616556500765092579785745752347985734466086156220317298019522806556174636867890858353001222990385632091529121347610725293461347138176040634918273392226739116689449045587413566240282169420671414078577178188610918271701805750932622287983346115761191751648047147618888247263691747238171241760493142549777631326599395671895219728410156579312257430420749411175518999610480075990610128644100953640626523341535896911869086070859155383290007421565128211892006385696282230118219907433231298239166081819323711425972423835947595355059143507516152281771967108670152365062541953671135409681873219225069755861274997840337597612884862866875400702841334645667863669893561943444848721054175280276253988806825605172328165209918454205317314632685800455197673120653720151482477463203429531179160471918824422178024263249569904393590799267915695062536273241442522344707276345417214747264596486733517066615358216589090322588152295033341386358317104656695469209045221517203949071190348778343430314988597452124202277307842130252883014932410849138863805345117085424924706039328274573181414373896921050135513723135612140724497713106297386259189434848444907109128201415830500856808680983633766819328745006007328962040878067348249040923780054652575474647609572309060483484004372281618393133152051237797240750419025583546561860831582147254122913100503163856619376712474408496644980172378170086034635873401985308749178490920641840783125774814208886439129357210766776023577543088815536674545166827301657302937473441526387706406159205429118509725565239375816117207642838432811470251931733985632573351153977661759458158998121448505878885659641593330085903110701214340806086698330686550019110446279334746572434819246023634537377845384890664916564802023563631863354218814099696804112130817374526543123897706736791751088383670144786141271096468917768316717959575723979815461405379908275528336020584921251432411224524860063183121448982554793298764250315516991069337144049374336306948777877436529009703548027963321487490028680366450683287379540686415560364607926355997476334379611958781749536717784307008725354295049078905088391141047845504683513395926135586396583666896723022212933911732556723284508057892517776592716779630015622939702679283220333995091442425109851322897940462766074828734187834137765065612320542536144988713557339718197622919983821044234231483120984609796355059013271058003437851371223873754777579150396418376375293845065560748870971916538126720419232115512911855451528513733557243099288719617466697031250015218043765152971465381032393926597389883498180654566896627686679507972287641528050003330772717135324475678051354208035513808193113939417935855036246830437281876896895947457245397389909554283437459704405381242323179961408810828104827568021574040354387241786699476493880601224756878080212668069135079896848506412072273599404776240660804038010450897500892022529097255243436166941206460513366184126723858830375130223508602925608454653041042702639091304179055068292261647036409955989623413093110884834718144412234617699744807336651017687739205089079152138933492319446784206533025572998836622925834562498044198485034790694163585034206608435470503162714001992852115315521891543492094599533860493056145153073763538475865613392779316709892147939106442073367798315812221473291867924129185571271518225926550894525702635631521441665724546505133662890377019448890497214450356098772036838085041278921473598420980743135486603297949326746013684003020540810719007014218646089368145338858089954751890256398047918812097948037839050146941240767632993783676763404307027532441199446748464439366687799191107421634406239352197952611600028670718813225910745929203866780392094467244758802219140861532563997236391513221394699366082105834155076980566188621141971242816737664732513663062000371551651708322534928594267718754572619077040934508665909814643503168776070179683749921518101732200976009060610294027492000157763340951272561569365445119148690593183354358266816869026244378876643484182429235545711466664125657654230108717537240189777710516623005611570442912696656125852806142516196166710353975479697813942495683638114229292265740617827521399863813547370476007660836488887517875293962973926673826787574571947101235485397944045098381082121988004094515126039888173300256340165899843043807745937397971106267009401858081542299096655817314325567307710809442708033089279566055090233689306107603197418226532840905023959179119869287399806468931261259412561871727633813057929509148767108910238469457246439721609101316646130093201711511603554480556143564762663536729110639189424348016256813028051172724613700233091761188048385690399467072094592560195125988352006822958321468285242541907939337267255359602772141691783708499395896094598503789263457568896842258244292294111833846425465015966323259902546301943836829499397191628507044733147594865896981373497304954966184773957413260741681846295211462602236141155460345222243239332259180800166583154337054317183018460677895008899600634182712355432767984814850885682874891480475363587496697263906381788388411186941867549360570656790963230354155892244390461654142160639806382004291824916862179335793590159798645756617813571866491934406066474598883264890692164466616341550238715539766091061718105338640039641016609183552135454747095170455766838064942543517425363535410310517926944843661172233995895009226046613863355838003254993088900757223511992712940154834874955125391060678716998699113591225699935499259609106252692807407616356372258447479629580511053807043048250319578247941139234113345801961010706646743606079904715013104805871639155691467737992027671524813064710982417018258481224246690790655478576094496802163369744773887756686551390509712134507249554584125649535019559894157301122700192552216641966866634730566303909766605057977406347264213804253512712891947869038954959209832020648162475992125834492567306194946362185001923758113161719234368822632965666037575523311191833598754984524371975213325354674140328621956895797222964395964746761482013384417337876746260414899004160649490001188461366363972020463751251517722698337660013240563558783883191215022509541537685920836186561223767338367733000050937620268384776613194695569094149046331677427143945806238546389006884722773387139648813111513802088041039289078895586050673206011654462148834410424867960154521931712346590108542618043004625231416425813995315334918866150058517448138195339490154153101382433426933148146261454398622566645852412597059407720175218494577982662008900005016382112483985617823682299831049438232252277616968011707697477333908728640950676376920626560227032167513806362045365034217187173348094031683766539355184361113984426013111947018998909873244931436140839616832264161862900552884584203305233345766238773679840515124087811464103770250735282697729689250240259025002096223569338750576546095575645659385012639854094304362838866967500903513803090042322241112875382389718971548509399386867270125961476575531507536411062585195659782417945626427513916593590411283451137148957496995366584037476287268268309655035993336091610966477290574445567988215942145850558132146109226497374398957572077068969039526808476808764380681328470718682752328954215733272519880891703937978893846710565053072185215181481194128086376567575489483582342884884177649183777050733678738190377952997518326276123123489816885181773272164488050379516793963000964528115322315465490089706640358215468673539020536539802923969969136622866074142058770765972243412147330948858385377811501904577733197868354773539149064193151609442351157510894899093946136556866846978342180011729192528115482377443459867440782699105279202488715807585795905940899885824167440324024575431621224303843069300245295968895092093877238507287405506169200665717154456590112627391969821640599269120111136134783249616535198826045538242542154120634603442398888239803013423604079225848096165854499546202388343509403825794514439942682981025353044756033907113638184951590165174296792283511829164449255217102286279248828066470793800148908991396729425628251739850077485049679495438206849508208674960962843683978619321595263043645070494701785411156768361366540553645000484371649829665330081242685755747853824059680819235302950792475115643324848325902051482307439194240768529976136951725695473924749073744973046305905812990691104187223477235319120815623466858318428168737297438076437257985869354727203922888768114576523020286666469451729560953583216262024264246154200000096171774755604279652504659298789677830026316965418889614001474400333179988621665681369099448762761880422192058055607702029907733496040098006322572805585904594257643426273316093399286369688483011619430264685747425169176116783622377812448287164954510288919612239194114494288807742072525392187552167643389394516349427831155286367523352212991483544409421445145348005146105233247820543062036903336792459512462160058754150643898345553448650319764617293181155961422603945393912722404303457706110534401428945720208098240718535570271171747191354800169770145983998158902785436234129823942973414301077181843236184860240022488691877105076087008953172854103017517577658453490338439552106852601160573245321097307880726916556826479510645010304554740726786872607429365397805625198819838632238030792613513682807404093054701599589110029999612013235278230102740081830680186758324646752410548318946955840210200517576833762834460310494014847196018164319882884030180526672407829616840598659165934543293521508153225292443127921525526053140545805080428162888056637468870879588639907453389527245295751521828395440888538380361931124280343643319134819443648162402119559685609025872839196754609847162667227460055785070941159493489734428506923265401958253821760732452645622812336496059919095895867977720109989815313039350693685619088888010155155007671374263342268509411809355330253536174604400003554865123816026172507933990018605602277076889534452499553046581319568730904187212521100203195112318794106886798393732372740143462066460960163311426027499463690957865304018905520285576495618257984289335187663963123023615224550524238091347512506871705658803718756471323678602270164614568668445572744642990653452754028595474426097461141085079637000839987974403107016497505455755692493083215953635125680794963399312991017666349282688343036508084154846301191485642172245719995472615733523274172901565804750407411075279952337881594154454715364086135079319270672540725988924482695517689012364441711976914253169748202583542170986968828041115370400357403708011486936598968561687782492158072342202981977789277732763378950273184956516345273877418264361245283930636980348159060115826016638644698851902333574742694234865452238616350141451481836810225146536454634419711694149391832629497577005264966528372380347778444507057971304781862511621671745799128197533140841252087203377021610779747089405953338369688928178862268222986191430745653329542728605798602409455337347963858938063964058388097592431349407154813620953506680250398582423426670732958256028107616301178695037316497675541266520405572145715989692322269118127631120773768050350033412729301294139565892560275039239808727456312162235744899503589525837087141102035570081790604123019452571033110640863140635395732973080050628690476651554100608776449703378179128424639141865343234152145066878037354246907579362082082252718074413481823529622854881521645595693825063401875961258560208072883323566299240376786702030619053820241327062248145329689392393400081964268114070953723303880724729793175413166156774986570419174357230676257883089349569099837871856531729753002283818399286573775387039073674113324177697525313991428272210815635045195404747608808667800290985359685618505599380934469376984270265870940333560538320695617867715410630610128432821559263845082451378578351262441936566496277766363823489282302011129438751034131503222279725616468597130940938357554923235419071171581889600738942307759753849540098953384482171791628953613412513358849965081089028866018565917117593453757526905000522894934154871734262496407226242138345499446446421306718191992339039087735817155023538709753214492211241449587494799760523979002711959649024500863486774834322154890018296475002245162890130960151507907206871892298396022776943497547679180978214700809651065492134133478561589268367152404525633546555257531470288516915559531660103664556639835853516507445953010835726389241243137966745119311494800858434272234926037487105884908638142048613203943033111773088220768881973936857954678555604627878952501134680430768323625685352302283506384715960802885325283691756470472248430011757411132251890381233309967645342054841543397746994799747138057371830570379455295822730193140317533432987560734039948153804308855169510193572490068428649307786644877291398939957282076240077371123617574026354872295030036778540368611146274060215599545477892817102577392631866597580978251209141659236132015916955300549776686379440383844357691273841189280280429629242388449615791527731094792066052760795236791164596793239977251018519119721116965112675769685236982973015712658841425966045920109753869339737143440845240301838920829254133769242409470797850584514153545436589587020677125355354188285901078693074240405312220155466126875545366491330677993010589210184510081649400182913881918564809092758786212789643761216341348551768977548969048453312017797843776134698243229017423407126376402414005553241058294969919477948981703627929415946878559075820281593404621419301123689318541717058078025244492019267329472495277980173088139552921624264837201550985394471293350408856964273303309563733744599125389637331847941137774755953420181003295685932016328280895063567556585807312775042595237909860783395255187676291503416395228872629831835244415593803697239253064018223489868380521566622696169782262406402989523472853591821295586196069207867562688833775080859772412432274610690502279019527259096669222967282106062660123957793966551343317847104170648191744921447727171540874374245086747180876054030441497381541914020485907171339412331453825380474295265675204082396759456405916713361245152313858915392349092454982638128357410721141522485735217298956259275032248028377501600765120060492946154026723440852381115378451125877350418688743292142222119449815414674790383841939063419311478650690798681098625459636486806655958556542330479482167574884201370644998970713412922299671732747673274564706378191244914082807534289535982656632964174498278851983055781062818126374317356671855320821790234170576656079778654855908425450678067445262026465908492262222614151430818364052274187868689733235797831237133326825775149801406537330812856590265092955950103693187288258901236260616001362675897122957969010265444322044827294111469867083846367308829411475844658878770877732956095515531471666641548679788098948543668113681238198451460712731490359580045317053698187709690539745297769118183352318416216741851399223605785184034777033529668727185989230438029728604597169766211678250706499765078347690270033823165819540837834244741814375783098885046147937239776770980789592549324407973755306434660342197653911926214311125251329713315387832343422218447078018144484869448403540571288743960448235479925221782483957951767426155173020421413390087901777129817391219766085159327538866128512450346165874451375273776302427940818482837311469566091492459513356495170727181306694809668085311535736302234250602001478046339576789073841937079095280138946173697093668413862723819345329847033421715065035456868370204422073873207564594133813642982723755894035356357738031723987611524199361647697454541227261718588560990834189350518875095437966580510175947100402092941378013213266135186767005356567905188430496749551617832779362184443850695394040047350772387510275697931105253132116180377453484594170508127126979774826895090982679165509901044855428410891136893243722548998577633853989394925747040766730599225797181511847788349608051466525557967320999856361230352483023523591526076924508733273515548808807464914420538570795024211120047918123763724449949431753248550971950750318478954512282593096825587207748999892151756672140964211871146436003798609227175171116762268358998712899484443922746690065358268067177715523360132701930450424811472576293307973026793621426030560884108473502569658264042505965956127206142578674852851281061786461462410512284572509661834399940940715237524527196500341611596278921480151679602196515944617944997116593310996807355899233658031041366529388428708308773211716186851490655056199675396078948043579326556157013261238060697989897017313808472577475245048445824154301049494682184860305469479321314566899438453433985829754226054690377276873518799691860869651118752598882003931981676792841393746098865725178625750539003706817905904054514943420334426567209717311650990735584070666740430021226128531020725784569197226288828914297175216536646328809855659424759161740658293510150806298818355648167787911716001859523524874115485010680354449813357479350093824486418023774758016177774539953729628014097217640105567709519505941388295766108411247868138588488026941517611390737736487349906640494690416988576954857182949163959327247800192129849763060549670509280300982173642695666125902559066868842148772437081165796499248469937666356924519699465928836188902658831117784421262719878928636684575139243263670934263172496929999008156198381995666664976651299191147568287434887912154125331952747326197502647454637693287671986332642281752706603740134894152779048207627112919762726280200757062453540639677906296993594872411374536925091989955542457324411654512130661838773088977273314213770368495262691404811414772400861650898193607959921160554522891156084222755646309027579371640724704941148044505102947036683424370965175872685106434141627099508601452109195471669459597937510709826053954141512202604090415173608161263855446990335176994603959440234793552003188498602025890506619782583977972048304336227763391292582795614697419144053134062963073680528105380289251098695520377780261177018792457567919071403673208955815942137294615939461146504923529868734831450203527255947598694645598660765238977674438981034862040874485733355150075437067267731955020982110503565743176903115555701786285663287610031355073501512607971971387022547951932981450215457582118448872058346242303062646716525754531099920915323666359138241953183480618387523833860994812983079472810319909395613526482414860475529227180304218678313229113311164748945673982334062795406781367209010648420801906389876865384746233758016042029582656163748114767023617465141820234418624006003453308454868430431598415045961934209647045756935920926288416629650344341709575414505813261788118162201059346343922000086906599302364612964900999826562061552976995201873538308118751594368104194822610890110576953526114346952506565012808338256171762962557603336420328438866222629301475992217243489543659225428313829541456891714737264698551426369675975807825229732921032625756192727500582796704439081732587932455565704559717862738599713729929136374955088997615541528340782389220950013802857840920416028317321950257945813946210424226464831498232697135866575660549754584117571192901380601084361292790753724437586394186207765984661548394952421877789935700813099567732922313557200100206844198392206383953268948988501795731483971559206055914542227492632882709583761995725700435247904741192928195102713020812761129884644853186105604652201230256271011059019919859909227531229661237806381828802144535494085748969011458012375351516066789717243548982396065387813391890564127357511453254676534035554420096194080630332123819870081229141021045190306683558621673422786618400023853993167537440839661368460341032480827468817604736838681092113653441335578174157574994394687279528376640378557840114623719047615202272193986671353275178663787563696428301360705097630936154976914616532098931916067217547060717712647297069472801182679011601497718945089097339497273343166631956968207328767600941518547247571187858581366307117695929620655352657505049704686934718091969790564327710948943905567884449667346429734902541915210921581085358527950815387368883103741884712815748700169710133133318835874098106027401137570523798688925456332832122856935158573473560620530079595121764203329074936191048455223070037442305089620535311138904195694283813811922258108749489604370123634512154692325175187524200028159096804200275299722148618491741690736711786536961571085669060416500484886174709876341847198229804426892202038722543225927409439630310671842419565709749151056731091961172310449566774789030766482051077118834982333912849643926715760271019371679427925999047675669920613216857769544229363226004919879356738251367678738629944239392178674562913750334381427841109928940590324493047474949775755852166514682357818691720839023351407169554278759012979969203234220368806457400273439759831951999323768204896465702640834738704091053175417284911978723904708137604868240068588615087860243149971892280988808512147328899178517578251933823153213587803901306572056102600719313314322586362824923599213907658110937413028569125184424757331347998457360469080102937515174736562451063789460316478324129457411058327333660328123548878194480943070782375971482857606832114325244403841397449445732690382812233478136710307441170710669692383216619831744944761464949582887369683512639545380844889863408624722561340210697294253168865866364589529986966149951095700267070709263634123351138943025325491301953575357959818982092581357265556838952511490677217597456155737868801841970390038280289370860531782424246529823073373493314986565821942803602249259273486541978686458100176958060803640449190876588718464884268220531270108732535761811365354028676508999502765812729084185432662675685781776300197171255400114145836253693489174569517650734702042067523002296438310782010848650054987086765764122111681258876307883097564797272635180818869823854692332493700990714611441995057091730279236329768663716847905356930913169509509668627329278376599406200989282953917865365711874386212451144113298936405433448127797735041461073945896092250056855085825899512851973580351990252002104133445026818159780743482757791478630563080590729113114046800783657637489819896276265106403633340323594229361786185545603808734403577719432671525196705152253647063380297548894669092938776574097442795467587745357857976193663801796372619387735850790271979378462411846715687874193303532569057873089128069885050136935922970118947099813791084125881386937359384251446874218068716463485599495819404819650020233503352099425665600915594505146057945498021024149829319381053862977446286545632845234964687866519674126049127395224096376333258029170949332422081441219754616918745403556374148780479647756212883088319024802710140354240792315203882494444483979654247998053071378915683952281289218381619920561648030423061035012531864517884226243337614599772296739075041071818917899794217742791279601725794769230567988736721851358963149936120698112351838047717575302687782829973512604149805548702062026035954655136556617670562315171619105734643757158885579767584951168986172827952997974432461714653583849463722100234012846840079135526534682579963659785112834626073544891564040869468801289484030383702862995509374728382228561713232684503359567974388932623276224020727892093950975071829096840087073394486473602943287824218152970822166170246472244395664028746193898692260325780757406758572840009531366793352610462516251496140792844490652690112268459983681157329684076181010518722351693409615286036037564311913510616284824211459101438363491468424727074913700084566759764697608000784021872875596491916135504819843078296520033523608500941036390012200863817164035036553238709470618743995538020288411800101557340238752914060198184563612142895855022105650855857339202950590503138403016829186374154289252751102422899803308609862891974066336003279515758332081267549961458770321234132094283193329803235986003596328711665984046810154284812819439380074462281250168739097524570673442360594824236318495054957900725907111134554874187980096456030222545819388379027570583440868619629536412112356772878910035766608453785187819425830545655603044887703169518308603928662055768335287761111675424910859159128780866544395973267474760490157971552594242564701481207721590253080777636642533502288413917627067915141404142980871110939624138416973786541347869964207536166709295321948361111436069606128838390814396859310449229404519523224211086736241816394899051128990126548746896027302777216647781188624662025172925594997660376625836480226144209200898513564834762581924585367105726753403412623634228607694439112881924951812403300274210351788013722085257569813216497119975164917547334657533331422084852187332566688142618468533553445197110881639589538539474572169675097622050578154362946267274655250333100612740555475457776431372484758741740742854926617138624587422452318572670860086288050909098783274779216605793177187251551226227536269569200195110485455851484554677914500264789813259839447553704405711752011211770577947142202756780127008875950904548796556059202146694303116111518260053927672101121431426384378615509586460814519949767307402410185682230053766850457590205411945248710043354223034332073720092529113236698266273752656059981047005785760000565053565024926298387782670510977546477804048140347397142399180137352262489237289520670992202997985584846684459644643331252179335531744212859377268906866421735052055852277887712584069229462489072068409627881240049689242013562644221818443608941004141205502568482325909546270547728326791982994599216277977284117361697365894193686273546274711788462578975972017995520491239172448012505400987636063367131790554003043115305514505800223263803488823879297132499164191656627592194722238044980579911787928608555890918109492168084185945582752246588633057599322946617240707180394033703069124513922208795091558845254153746906455332526379731020709289172718023178223278674038729865827501524494530048159328305270594830131610414339219189258986004107569557445413835849181781918401121251310640112458874943190382380851709355240385894603553402494284691092027618215572339527025665533461633061518435112187745596425281706495219502821771770891598810240400827688062951438306126207104803299730132157433683230381546488560397849404383380189037331222384275925625456118465309315679268655133275062849272194492199046169936459747497178998920274835990684937164111900277416333271180230352734816087537379537112628369046250439932141529440968674198776305348120563874685228850286408447297756654948951616333827030621858700636135147403388267642083556040272262961850272878288741897206413146068480307413143767587580434648402058529003625745473698605126196026761873643593608971197907311963260148643464379781714850336022771477549026526917847566148556711268105093369722938893300902947906540887836441443175175546569750968874573943690013726761589489733586793570433554514655156318397672717415106555943631146934421167828405582649865168845271268191739161875879040664681950809417562710127637648411729645407221012578892686547927324814526946225259468039379812988205159178461787309256510867280516095841696653165887610788922839170527951925337149955606522906853639035342871247074382984130802305077019739956677226495663984571430672026603741951219431855763336394142310951267829043860683775031036021564280175989282283008089071836440748175929673845108303911329713487965202285873188449245936880979695184733093042961158527218970394658866132898371415571788243221819616984962123175282792428986272303495850849507003341840682889758641565650144681725518641455948307261213174057085010986822873676412325398986339982796775618100991555226846876506811870082674046655357787314386729596283589798735205028856545066356453821248985842767694722131444724987131188698444190202845507777814364677302579872742589743597293440164205363176281570390811199671051449849756004510146877661203614850466770166465676566738453084924607668282458626954741853827306930637044001753421177640438133647390311670647943421480841187393033209747945524464695795042215585140936364300959414065907084319202340091541843307471955554133365174997254213669227761985688467298452336614449110001156356457824815279717963317447406656185930243869518679326877318007843531739326034074065449765425120142743931233846455079449092162198685364191659646491246708129675270654650274731617230096257947111416734954301832134962437524120833914853966555791176660945129434335379159461398951094345196509603021187374113018791441048621553316339046564910216236330938197999567290919538397914798357697713444583408303494871678176357491430582324038609825403942152709225969766850274184496655734338278132954939328230216816796511657857314380130773686738514860648902559021060688028689058369823671614505775854796112324913299952791472218563349647992942714932662514208343218878079398953860847757599196298171385876333158475442738813972293235279939949524851162742820259997818527391981246612534725390126391219246847925783210344411672506968152113676169502858538825669067102249469004638853782023591304813698877745997296164774795657302460363069096836122206100695141541245558256264041276073003122015013305408326146228229257507256920133710986095251365140943193473673734496038164019634439567602255762539681189779826868734440510606744756841624588687900115552907416445175620415164539296666428915552633441143953336470541646837594225344004042552441119446390294552182655099023459041445707657865505031732783281369578240939736659968497298529363502292310288164825401593689980825695177145129665229555241126168428165292197345530760806932144873664562028171695865801902742825202220268362311326240766413673254998470872329970344115448432338804185786944642681020191116079426281051947692134643286128943961304258985038942499156982816684914924976741772454765661383034288289766712346661860679272701118499254952272312742600529446430122119925799891195691241245258553092145211468294711604790457815758754039809508333042247982546163506134789489922244985125388567502884806545030758120343127987297671992380206945057695761836525643890241926007933901843033535947669311721050077680109675851382838149558789705427290800100300822691791510511056088310697641397799836058934215723852669008136488979891933214564293185768541539877791239542799452604184373555540729765557445486290193165026556698303419119605314667328464727585226114961438975035019633355549238418028584659960910087307721899144409005352916161857333263008174159778848120806884801944029743086898133518115574082321338174158149617324420838542520664600274108310443782468215898196662169544627381497698267310686056950377381679422367697305048275080149734995777862608139126200866503542949745896633976766651252392408082320510322867506995110622820022907295969875965063662994788593929731340206545933667715992566435701743068947757487716140638668308895597005524666170004862461479306004145391409593149287978003850954227641612710108833369979251908803935236616093281557407056177266199021789043108167389314603296779312218645026661945926102408628746724904885128727677074626583359604140185899184798016162814097718922218625315621699497885511698542224302630633556714214466647514327293520638136709813063399758324427456183027279017855475900841534414873285676868446774089782839148701912959246013347851257513551745891135024859854468392734159760786996690965321091550496816735476282272464536845870572196368088977214349939327716403554305742328718787716444979139757054120850806897703041692482098463506539759441315234951561108232728989136289064343274613134843906213221800014956458857236120685958269113274843020974069674578299240416096678588982286085484161836761499500956399359557086205192861401038392492693331735657269273832445691412555422629331237813204751263431581803344422837783753396449239044528819341832982618057060934332884323127829509787339675815171305386508569545654056711370729043057141462800529722955888804054082672097506120508905746918705561808272505312698395072407573026155297794762119894506928689084721281116965260331820670098937771662359407031498414344897531859643383821784034887114508010705646412325803781802350419209401389334733336937598030569896562001138014128827423066936882606195041585833365928436003157042716107413615286010226880654524531681144477498234036689099318077498348569332732577153068736344198608585497864552762496478622824310562262966810009860876357043041562096435657066291989165316774262564616633156185831444631190595685834977768749735094928946417507616471126811225940310375173513560093606585555177799152146287402240421996025705235964889933944243087352585794735851872147893054187690988583111805552956517412850936056816170931737109227487147236440071469807343993080500435860906920879396680088064099090649063453956079596051424426322380748031788591417114818594114964257921923680743189349940355980589790471392314781463415173552609045259826841694971928966352664307796517762891438816684396577493435972639792713453791960792409904536430971051114886036601217793785702859871294112158424720308486682916198292721991311531393851234221298578025852821784526441269543008917004241170203975439361194059804109131042022421699516387458608904562521166318886702906624208562190041436972878046176017837275381264809633674980803286702179277708530180954649713749032998003731316274204496443346725543265243032443436669353628293961875975004364009081815497966259843798705875311343334843114072459608801284745815993320090966687340520098622928111657438391319268095762082251323844092388897070505713574025891794349396659408865584416232093369428918670711464486773769534787644922444402632725353927767605129978652784911476510553836078265058021431712840825357204533370504977527969823139663647178190155723770773517429949707748260264984107381393406131040802507321283933508931038487170100822462114412042376730715650743240164218160356318751677841708434813809991084847492881598990324384425851094220504268128398544714052335158012555463344620264228681103510002917013772770754177656990176510849965937770094729385926065633737607367369251874448929254527975754189465662822858837094702904754108120342844583849815683948547249962058112644100663833805793166940717581658071068834810445272373163803262314713189919305249783115190779796538983325866493055831851795212441364852821072415566701507054430716454359579983426214758861641078415828412596980713654751646411429361439024126541304728720200168839266731806107012914120532461831043376990930632765657296381345424038236171942613160880066412736312023987769245094457388606151846798486985342344426421592607999039556780585031111965958158313038929258855338179120137704672442109898124780708131479625484143419357202057884488208951282003205469782850912542957741025644229445908435115311163966565722336884005862161175425384447173626884076974326166598511368064984646094788300918048437520240440748324703419853246639031049914479683135066253829697406259153382132966395837181234093122517491375328620879819243529379501846912430465918569136537085337909416456382665367985834409850688564967823632127867218944446863842506790897408728977972471608776884530970628737101154154170947618059171880069806447092757634769483717099048300181501020667208302170812805206454304360924091091126573728141737536783105636397441465604281469741555336794011330331806658296505211187837702381596963118478679354420893964800412732669392843550897455949617555632743291185577727157312196427060333352929651331857847959551775032350008527315987508328003159277790946654558991756883972224189107501035207194684245259166635787468946071305012272949657384441896582277984527187122252516315874269170619846214474984321233923883365607327511860575790530442536906675932108835143508298206237097862861740216133445123552031259639298466086785274375102872672630439776179095913516030575771835047117496016906974655237281971698396043859054237511188321115411041469000832193684590211512752252803623718789931121278904498960428002348999438621715436409493878309895676050734298238759690924256684535519411233399963373729057650453901375458669550179640456862236984787009697789601243301945987109045218345001321310337427530435256538744097332757242271901866110858762314578990846098059866702026761312073398872386393117756112185974675261159573749444596419321800437284866607013184395383324311077325205666187988347599307551666630478728307010812662963888043720243019802052219316929084234420971602887422450618257169367275104509815667158699967450538509354004598870656580395448127169488240724679467032450564002543594534829221879260459960639115078112689828744483725472735220885965108950396767301694198581010614616109586585061730804554053880026269865268915818841307005584795836653409274240626266205692105342577578550279641856517832731177313886535658656985252594028622083715580934397229126399202869922137379533262547321520240824221873092184846837861595330991626019072460724680599518076752050891313881386810035406366470153855035098599669467133722680511167875591577728056957488768094949694221268682274563760131964276252548653631459570835178957788713595225983195761577730215579431509925611396521556184148413536858447662161710327705997679154512324295478567016508835757932979606555519732767131496131747579332926435686513748801620991253993870575506051510398675253241384455634881576670340819025390125061450029909172770398654537099946328992801766209536640179588152925704289067652390732715574779277940959399090947303113623631829706779630978999812905822766921330001158088933646007710512282254010351126050535367978231771613314919781726246938306319084525825565853195308989701691858138677729690290220650901290995789281426076370113497126748963060031918156693201610173609305249635920801465701158997052348985356821131914985302266923223316389215727327539809867143999390460014264739269874627356009929786543902779346090728423855756505899355726819713962164616770224128435519387855135647605557281594481461117841533576398917170108137056851931706543996040158726533294708554504840168711806155680143469922721178027326839733729588280053339502399972256887159581406740840074143317010823579163852830798483879013802608646627080347766703601983412741322362987490394430112116316558037139933565067862302814812417578741660412144418945009781160565487556592216359146417560638499005049319708624923922854886163676226164684974645626207409127760833485957292325397838367378535507400400524395142536883669383293086427571488732656470855543967628644152369376716796712061789831619818934449945355655861512011893416288559391587642420757387089260956744515345445801715537003737095029452752230907268297296482964869941109606412058348152532535139467418840944713695965755856621759773217557990480452410523465551080087256483393399683465462852904332588555281519009906991110422102442276741662184968191870291042361026867143604759091992515244822193439578963024295840293714450783555090806737425550888816986942884408111344901342257838064946402323008048480111110979068551870096889603091978815268389070549132508450977368813295363748694385056109859310929100025796236869124362494399556397102397953638511589350223020915793258322524589849463949659401912739184285405263173017597045875707331105952605943213669840037881991584279012498692126336962041359015335010366861152484309458424051162219731967807854972981126776283498775169333029221004838409076418123941933849227474823165966305330097276616297327241837881092320966574434497443713557731213880556611410343602384473338569167167290254438298552358110713561332199040949277352385935366448668030145064578754159466072544656918705856480608032133141480148251002478611529487701593262242162501803923203831354252034882576102751462408646238371296063466738111923066239555596154940049530028238324181740503978719943205077118542846959842447461167990270276801647215863496043175457282888914515453637790433146679684427353257293815156813149078316689841860482499236199169345012902345571336256847735156156311487243854565088885122015338118989460936612041056756319654674619315291276982115175077788369426239967784712842200497862753959242854738030649830515192889757098212068693495188197130315119531231064857396809501027654823496440781016734633205143740571394641121533580860526678791993845638373198885067776909865483106713639263089960408042762337504679507055957379339485591013015865473756948128415443663948016841274719477005214462386557405713638724057517272412601711131775249514236059207368687858596493566568758635134159401312750323126696188279774753231590932481408168415877900790020386342266876946873760142854482661601463698000988077582642575727322807267127283783553894642327644096009603028176391154321029775226202892127049825471760698401216286610909921755360476421288035557482226168969699381897291117594669276950536635468038411553453532048561813865045352562835841950828324837605369441919997643350928299770296240031605359274268002588818693809311717349744587287095776759391626426142038259490775004708788232294792219976850903157543321395484310628566188114879697246525607798200374819264528195350127882685369677293356948900663040843414839931696158759755528824365765399163579986051145690551172411829236491644810320276231394517786853168250727097389419126311814074305745122270179565893532191934262075201362739455308511485356740975653583122021366971158664627699151561361188663324040922703510178524546483625297962733582997007162453212887762231257433768265635680508697716002300736852639405803188790693720601465342352212571706873858510659326562623657366463568930320009664140822762392018517368349603451781147877454712071838806940361506411056222798826046387654986830905805146884824010652554075656225956623164569665666346433902303699584255494313647609916959825934717601788739588097225017373102650850889907825443373133396458599062649075084329522890195719444113401088216221876416450818726940530538022047359015479481507433047060964480318909050963785854474510475924570623595649041123146613557395882689729853989844416529444072375504866237634714928607350258827628964858494957699988362907965510071061900679197878660502147411975318942087884018153928346009628148871280092166642364197028303835880652003504351128227535130274681957638389438858158582721539240452271381297936708174640159297477714408288338164893775946339563060129000362349729269322715230042015974215644999740356934248878942489195844006674287985739227793720480531293475672337100825177512231862489217543255725979105019756719642413594392960486286035506368838109997152573921690238682996126917294431998928766799598681594994396945335325188527200313596720271419735633686061992573184054937026036705643043644789783788411705469690000900890800700426315678695173311601325888781269683263109578438553481631958577740236313723292405012723236001007459701577858430965281958198051921013936008774145865698018772343594627599827759461980339837743566962522173238608275917100256743039377032355391814681470283008467193992609108052181206269977175000139267241498556430168206650233388486234146571094644497810633866637619363578837767503807886847365022400438576964295866332865123026474917099510352951382062594623027985668180252192078639119002265454470515781740793463067206287945202695475354118840088949897458931368649279640802756902310028151763349679643205259337872748207755295764565595650992226263605965620601727669966851221312059876129242163359616827779780035557736665808230366549006061536723079831993332237750690292957910017933788216401291337066554636408356434529243718317926647606065448710989182300984323834834709646629639673027417686354705047627650358700335594608929996335764573819716276971169135236170860265276490774316757933575249253152850375595032531468304134023622509112256690218725437930056700392254683671151081883849204995976171222325353793732760060057657819604975847864428033476475116667262172074701017509859341207783252964570730377298560943226675867212719474989720553519488189045928711560418933625838971968157892129479715496710559541384620344897254800835311134820865421639303381306838296835202209071099887120182353562115143265596988009999462048450666442218165065078407222038975307477302307722361256650964312864013386265304970729818470805033677981305110649535927834513065437264360082727370442939223597194069273933100003506243809958618240379945091236943707484944777656792682473388442017192760511119004533203842325946216825809390363455930476858224995957330555797917744457989140011877858024787524745168244435006755185056406677908140815560984063222971271494194493593476271253312734805171604281503694315774398123481937732359183078521886765804096622039666931372714821329292183442813413399667732673032710912333137387927916265071543147971312961313990736343070827771821933618329206285289326777879182033720851507937767252456236843280249805956000799817264209516136047812308205294395876517936809904278050205050486851632810804948070126375255685505526616945878037254284979122950444650381363430798180214961044065679307406926127934919923287505997575240379260981254147079470611940903406193556356046429166821674672267887673926795899241185879874412010627457167859446125539765577998604795367225198469669579823051184323846850319805967592826466981306448398036763638147116182169686718075911995706909854114076191616825865778844725925208387947700712108189191101282512911901269215794204156401600644827900541513406181650048412469781103009222963435704319231149637019292914926936700398384935241838314470899025258641173081409274982694896341769464646673810568691510870850792710442780060544986671436205872465838245699224539946582084254263131105013322781431211847295941643180774727223208044645987228708427577208892091764896868763811722379649013910606952684904849094605429848182379996572240254133175531259313046507804374330963153214248771933918915199657123666541498299279908452697401566617212281359511718591694657135203470954628312060646536106491972371455860832308302824359536677356196749221932307475554516624098554832634525637463871254779134861816008426826112466273401624118402570872265944291315032407667240944122679501617897974190191611331226366343839976120921091632822425791568556373249803110702924069319911610722963102493526747136112734446108993168022990296171964236465367544219546989607661699765916874681744243739713386548998289124966313086454158212372626859571884625362539551454221906289727763204826829857599749913294474854297066524500834937640409320494306557024542608031693600500969280999829395065860100211911683741164325307111635364056148799697413427504396824522929966460714420558904429698936266786025972502760415715822047501897860627158369194441047413741402869568237111328571119429001533269813972139843669484681507967100829856318512614071506805529277854867432905542308903615015724112431751291766565108841601351586689677988245381807051639056077130654588861895802239200804235570561136059637788732837213275308744098367860765502358683125702247107112804282887553756426021104086852703825079362847162191983592380986980244504585719440388322554178687461643774220614826262121467817476430526850547038144264239757286302400652438092385396348957363371533931640073138970779005215357902585182957821549628545034600130679186787388933427155625598335437969854327150614119924187690619344130271285805373850645980993049475600944705562804288095506626498281076931785630488727906291561124949675043130254305054181815290807481964648735439672716116981589871636451844528435012046375623239084066325116626038808419254323481502642064689387112348539463158444601759477168684299234051545722602395430734543933039142381697792199163754109936303897285757959740816813605997359904373313987678346619699567683935596686627769051531598678737088204034362062110116333739094008538484188036298619824940636405120482334649477952610473498285258159145438782928410647529048791820431533142553839964265049691946605353859406848669962893588349975416642714856274877915769527303965704498003269682814930151383744064860322655623893513655729704011635094855619656308465205694810359274121378277211311809584299318645902791332473719540784140476122869231118791779870019226187186996429067267278484486289846661989533316716808328403576671348868741280959836085394140015283392087412527861317902330057255468078063510026926973201073361601271984314358545373476095653186603290658574280924577490139233438008485662319207621906704366793660017171389353562232482980094858354251100540668626654501917964347082055329276815871429904412963413166489087606307622855053653295319625048844173109963198383912194709442136466875059701899887144526549106958910151046777367271210912423745707044694160271986052850675041508923452539630111628996369618896130373788986879775109002519362017964368087980439817676356588654363209512096194348615873256813924950537415383189272794452926288599208759390755343559699514946720640991481151399507811417600382847132024038966621583343576266948036807147863132461310000892220736392476926680716676008546996017092662462092946922528322723311680419833213191284945504202259929262302270915700255533970536264528481235205132687188823122899979261293016348238133049812616143448068481207103118833979261477349459064349978225312237019235079119337403517438106384053305150571362983318489436030606759843874944022755807941064804828824179459224537411688948118720019074207523826262285116668478294650924359344092957731658379765453482673741977123330173591611458522002033340760782227223037078336756272721330208328349610940269562106162218580512253853868149241294528754981421487539223852724273510998032432681710124464923530844099873241616700759340797762916424913248646748039466837064430091312193258836028215310671434649159997346349994932891813987118009494933693193212075166682003227415457141241818763222625870932030142390609392207241234248626598453018459627962403675822878447889260411763290509421866919394643715114550410272344294538426529411317302802314374003592786522124877038627303593099423118098643214733739629629834957539491020091284917224174433763445795116890862116435764164130630386130417301987675404293426100467985079262495411711478906250379673633914637418974665846132534657000512658852961254900110932812928044562540542298143035505505524300083651615609564188963864217491859540958637988679114364420920057141873626988537912747664763262133253822843382051969902235380361031021636637596755901784141813893131685538696086189463888946069158657945385854219813465416459018885775155995868434325093081163632738458186061683910125476414970574275318723878656412358371868459169693848213991389423650580604719979096755745649553902697840892766144822543727288062546291524720073055994099931424404522075622771456448845402270896618284007758887858471293820847193443811692701297738216427982024267090201292227801794431964396799335915896491479193462388594197979124754040723634639830667920325678028306219768729306014866476518153050110729294442779790481207724287619305963958790789514395308213926764510957192667354260327446282054543104084561589241947476915681952579554658558027544262152174307812038951122219510811355649962317683121308429746258849639048240167040008164022976490607848949460216047304635014458253156291261625275502655840037421229054329668161488164427727439243119786105163880716650962947971948128734136814625703126511947682037865207218728271331010355782716945575325956170293333171173094038952082691919940263702306493507019363957160455349775515367604251408045164076291939246038225370360363905594973627178659847347850111687748371128195472029106860952735657866330304188984037773707989987649342954717025830315294819629903400718735008454971837795139970684153215109563888425719316867218220050765932518525858337981954917610328434960284604133615376561366440775593794458871492061125423463184866020420207211698809190155526087918916913157179694082558033851722559894098379164313299089351232889649886267818491075660648833865512973464633102507623563191338962849183944792486996621028371155403099604916350369608195334446204458432638353193018733751743215530532656135280247806272787995752687884944743917935548003709880138254239608674877636114607864968388087334754051304416696359048145399363166826003823185231412506201490993758096970687640086488090527591976536200819877961616000171464934809519809438483021126776222467015849869825105719855725877777496825065141786878076279589447959713760873766134912512494368875433405508832324848124514791051101103043978674055451889620268652392541405499953359914165094072213336293924270509270930319766910152502837471906567207237236519757459293450659235674751708452096002365032699511499455431164443724154117698846873858285515053588415157112352534729851096752265002529470053530473732858563770106128675788971241399241744167810098196310652366925623454026759017164322401218137281065857498756455372209035494535381041166144410411076202705552614981179360599415038070131820740982277847208972034147754647713369692044924729458004859574633751778349940681791697627412485559460069335257832064862531379100432443666007021519733728693152511687033931322816778445172662464776916800649993902177750147043090199095680167041506415576924522456455144989812686522633156605558078328899244214927546648234213899502070182501349812544229439606528384945165255934097093757640168384741073475167010958660413010747984303813507743869578327420221298913213633716917267233557381642151229758695382804909206273878764569373423488867136018177601170115736337107267524267737608773998248228730847933452435395033285972712816046604914012771006394837426688101997149204204123404061241938731799667224684370680888017322258672786245942217892274635688933999399773889687471335859174285939675648502080146924632340683519908689397957977121167573318589579066908385624449252185750285837422839958180539882966783307495882660104089433246188298903999523077530734195915075953142928836292643216393557745377870548267539386378225258840662222034028668836191986256378741644492281874064369082564051345153311022840406423214890017908864318591172679955829892397698055424943490296539777743984407959747738883165101852356397706435677018426010471296561680921618541955044299077282538491457156229715234977203829840229402220782446830477855776356974335526504258809469460403746059838988435906529045517420222678372202610628088761654942943121461565709828628898209824850503437561979169792044971883010484323776436312151697570262120029253038933609912133671812318913948478087847658204312158761813794832961264259513478984913421880491859407890988172296415257165241261481042795401205603123979166067283228722456797762936737458205160065659205354400865306714006189179103368928896026553830661217916547001864479859116470195315192461963734662123053207287706377382915964406029055962472497347828862573255727061983465058663929893143173754067610810516726791229872977010811078452185409179715127169635838098760182382195037351593183019539658930722179515396474614889619926334144253720186333337766510358667199227758181339428560567728661039513784331836271182588489884373525528772932861796244895062821785916672649096557751280003938565540492841869850256294726664032949946368437544810763980514557949584362585193340742650213446155389984384909452034905770916122819685062059213938317818790498358247605534936107319333584585010441376352542261010219322067445002278979504073966327160127371382440349303287389250623876041737954875083676420894577030075555956064999519285464005680484288016316633732693407590584622982504219578922830848659355855991461037804004986207332182800445559638234394946705531160467412194177429667540944647596150418979808388452443653494317614434587800745450329962395992859836043674981265653358380896386246647973906859851547009320019125307069674708668409768384729518822573233713374395705188088903045541912778677488550499630974404724033028665842755416169485437486096725304264795588575722607029604415088458440709926574042717552887236625953065343128535521922763351832736439516603341257426942414258361923961392458734132848600898977760742990882096908195672849676287304120929318840529360620079679112025341389858290422907414012403028732066796451878658017178786060329912879359976595996974909668976152609019729806173201123444891094891971688976135012172287818197114920890869378419547953932375974689910208646161431988440513041436194955164487367494384480941216712340543989980093573870675556517661102711801619326972796430673444866641603675365897955426437938388463026338366985864030868563948597298070650852913178040775548675742088828242395637115329182730259024110185360437420733930263982775458397117201662402312258070543144537425671708763876429830449224705990060963136248708693479701779323052367198513612943486580336368653738652501885071977500954817655726981628051070467554809123759062487461846748408999365551641548634536194632296455787916058853399805798891011962498646636473001194271901460387622494628864920925125812486631076671805211011035823385017249223449090935967373060319126969293686115363612904022698577814215896991043310055870263907153407046540711324261953093552566285956233122135417894870133882777629754494608331559715287513130173144377512531147750666274512446514066644460691393114913979932603684665008940990773356042592188761765529429428706265017151498799631495540720746499582842459893056067103189423861384555858877508158497324436281546997229431824978219510881269363652698962315297774656167586307008310712751667036937804449131490769367822407011359884871737090912862865058931665450760267373332973438139723218598177660884731487709447891270177655877803024702216771735150338851838744319907683342025968314097795331719773766346870081409020545276283046422917863967238754679075354585959074253179607178564026856893329588787379673791818116508103021366955474210944401378869663912445794413704603118905733636374898609337441901629631382050887233963127733661510675490558877042145237636864018933638498450661133910377279847470799133699003625921051621756795444740608108146299396160520673267404143830427675585185919423584872579808681716674631183905807635693412406532127899210697296230417018606460179671761969790528119597542405579771733272642926671577096653558681281273372998182847310392445510233032569341325799490523430054294922676003944101859138661168566141781056196326172813237034026655416732194321667731183743346767862713625767595450555862548654292304757126669086518598848505583921093546308175774508360567148598219287576350253463266085237039071777895970273123209671778020428458232459113697205986340054475059523328752874256769978142258411411493326889867040719704472566296646653542537472321498284788340289927355857005179114471437802731503141573441891600112000472452225090828686547614875153154256965599304155221274601553085005110015937905195596616303454830698384657989180898677972821356342722590474801023128482991391839516007097991018849474139528841741849619658405756249780784431805204562878279258974613387150693189896950057509913821969594390305897176931443811459569712781521153684478124744103842791652814744484242524779500581287274465067897941007009185941703736690701722751044628023331064590444547592394267264395816828757907021950901314126774121042715817179297178294635835155140531304052827702835906456016162195170011592983120936207682968231521658952709268492777298597672479158960074427378270908893882867797759449726058314254152716889700763340158333932320572533839170908392116780515366408729560393842431361944921986900862119906800559848708697846543355162668908588637789255381667872953328077956004925432973962442212530238749176600775993003726938755049343886150282991326546254888031933723823968247860644350890783639616381816159432916334197698764340245492578898026528759731085036901248039891977538100739591226206433770816444473781753511539532498539192912828665903507059974057390120451137376237710258414591076996030733207834895821854911686538206395884899644636399929798228235033513107244959277918839271463584511610164615301623899264514193061711828665354093978400368413259425499830901269841226825697859291735082999680537777799925898699453368274221642348248584355176518917214918825601491167043835082412135226370210529880301796015601921772013400717788726643295454858524050712423661516941093704342405473276659732449441331614724600292950985215554586535348295319746429401415845247295736802553523861710354564187272272523684671953958149905509293268071706591978639204962081609995612041524797597724276512686145488603035694651518520065612784823023811675110388346139388324449448407007546984880065284936398243249658411794445858023050675902947237019061171187640465120983706328431562122161208004572396566577991870510270545272641705239008607887308279229160049730968268935582208211071596682254922691973615298511502160893856768355986195058121479075180799430985805362922594322145596510130619633103762703867595683634245923369592109130724224185988737995346687694737844245753086718537192188716281199871173584588907045031350751978376042097511664225485588568403777605384527754627514829508756017019364259678001200762307324356145260839742259082354255780777172272777800821979253154620862645927938151395620826513695293970251707458010259401335719668503328377772184015431227472724625087348138500550220728252691393138857590708646601710261499954045312388396297355283760931052190773829240622510709184032818796222473145676301216793753012926853068130749471169389818112702814598611439665572021648347017009411105227706036320866190300208567229136394817899533054087714515937913604377683267146880710267971564362093927123240899854889939535772319123689576891592409744878609128758596680158206841073365845070047539789580188022365231672454219760024216628621984717223941263929634810064484360806316428690172770541842229234204440301438544184026499778045155387311432262918230572789276225150224829560392916767771930343082996462801512904077743011315432150400028440448564356543924706723603398709451646951745895961536988280754628903636315038831973299320410069372749213893956722574081454352265744766498849562693715439691105815175120385068166365768972507398175767546224986383035750313844344478208736185890871272089518426338147398592622154801191626585849093192181566852919964982130679000193561484559120101021409611344809967758597670453982950338304049123131882343361619075541812684711384403186267226818861793389451224087555867938855540945957596571977546678459406889097313243741167485819556097820689640494156868817300177708214900827838812838371270385675142754160359322130898324102231298998997108117096637828292673174485370500494138964887294976952758709817052475126675113369472879769381906519810986737260681520131240934124103770773524759485294012209238101400581167424548185354945264775581852060190984263976125255802338346611954233680727298417615108591758971920032785473611346600058711635071956478388725131313635764618740104501395747035827820706877141088994630151837808059846033226542199654867422796942930193443079941027162426888444360738799984055045609477407263680017284984039661862113933968228564061953585862667861421259709306092078805441011306324751419899961412308698070100738145316845754518875099021536333460022086577547317155883435436012728671152723185329681266856055494017909111643271693303549305316062685062980621126819222116597527757232343858949860712203766894705661094730279924995453496611860146786879107612977784626068766402873815404976603959973890217797462934902833411313655365813035403671054094641328234597033372173326738171777595071913351809792637225506670662994122989863970180007345262138986968851638548833496232181808741142757473972143723381725519907925697649577574768406950685979047601606418511369545206958126473484911367329017893013599012726945503567344781933249848383112635395377363788858245309117963074930502745021424212924916883934425928397251933860019496754476546742000941870038328575484058659997566454157496147720062008855576828818909136965212822369255515579328272726719560365852993863522822998647636565067060662094963685340827795004919860342919382295802719993319951097354720882271167843919803109400107262624055712504289614815241946009433421008429768111531085928073679793029312894624545306192609741695961557122621065555872032816554195422085077889162814096598801334612101580283439049787213642939292276594303946309191270261997016735517281858840640522051593557832694536598525564454549545535114480795407066408401317361371582871362327972620689900739195271049586417627927971138118258321756899707039453710999357408779081891844079072683945655653270023979396556570177032053106674600641901350741813353022647271045191362142188279683705799939885213798592102456208237717367743247349297681740696633541010028001737722130243249887802920484617602409350091259858844883101155591935278246994944563936484002273464031151762379728970054044439328259001566735333587047565365710092048825994744596268519122867828636193514324780518951545094281603602772846918376004391476036579595404186741258361886413414504537520000181825786983177555455113554258218372820235484049284664685246073250184359480187888651862915136166939860860956271651819788088320746388841431568305719777996286461544233550998672929168702475269535802440232374285004945092284727052394809756571308385253157639688114287392126998622044551645274530109118174639342458268842397299212555921554719405286030887989332190458243288455565638618000486655088501157989166091347768840285705558001550262281693668863184580282492496411005414964619202664739358711770988637678061652548938658193386535431206754108087883004251741558289778270313273047656387124253596169447853856792403845109306445978552912107083443353282864042300005836877392012858902688115245605904986876297971940552796176466108144534631676267758923360009134457722434213861616651850521750316372248691485491065832881722264369999014412775718595450082167278980296735782379456287167171153245442118844098554882720668610640855808949710570689649119326048636060305619529154991033530635731489389760075191121059838953915486364753057905582906486931449212950300200309456127502280269908741439533120599057383558787071348893257208175379113489457336417691050604233733172803910321283024550306878388266105408065677643370983778572899240546879131417239242103303295637732050059162206115530281498391175265797669148378338851684249006914359942929424876423983104056050478455593494357792578108102583120439969037897975099147537803051028795147450432745538159468841792700870920370447813327434151157423099586261828351175008756722220545934661486816843431137796291151999673658080957547919457021854744546288233097858307680074219722564411144592689698972804468818246579549169265592727990916721112282487291881479637486513804177030543820606184009567886477464904495377216249967257343625877666225991121534536759890267310955501545952396434203975269580256757180313008740295027184925954341767923658402419533544140899132553316372829349274728393916042976172124428954157523597576238194337735266131334546631650723605003482082091415204237135466121754532392459543142455911751678815468256513999836018093364341893323629202342498840746434384165067370308635101290715041361802358932295787495396874413806947689475864722778994574223280617293831783164652500676616911351120450790427097202548591723365072737337994264335606903481000146092657090860620739317401245098740089717990974696762811574695459465771594888425275649950772818939934358846777389335802343094399078323489329957309258490936130785297144693587574466833844841153203230909045461717526136984412324335886281389054931651278973064642716668065972915824552680841292880441217006265941695446346958822019377677269123171168028372446346042196775723537202642721411232546636046622061842207425685633134333409306252501565625298091930969675569704334604244992586883952961698462548705939700042135301417520477859832479276754943272683486299943897830986923988167127724659746643970105789929002318949045249648191458535219760466796580026168679403074846577403255713403279796845677717519991709874539848948236023271065163248854773738933810199195993013350093755328738330066726148339843548410410919565500885490360530656260209185033865707184168242864299843664445075556625436993520168513990338881341693482325493373268082600941678168467128309231485917182363135204791340518316843915935407985268170019876489908524843780885462010060192471557553297207946115890774095643333565531149945109549773305046565016978380080512477090653120670279151780164183261958064211471648923541722724602103442559277044087683063699627919518503425749454136255907855336745405136264200318811939012766525583164229874582492931909747958348007949615960335102915216079977339497272546902028675405643928946850731366471648574129178237046950324121593359201702263291866133568506856257359046231016625113094898129835567344745498924004684130464166887513550774566467642256076236504316812308099232369440526159859664807565515182745445986819774213616195367813993611796913170717321731671139333704086147545160848534126169930445100024285877530253149972034938742940425605725558511073249456149303326351381872792182590091874129306801341064741905857435396042751200769730761079165522989625382668213918633825069429240941522479955543145576252883915272203349762877467873888215126274582963560882028295397675614576157787237948542899508914369876232762603719381228021058877452002020264401947393332203548906917151265305569477783842306364150507672705519523438175622541089175082545642851447959142323970185631021115861328688691966527242144312704224365475199672958351504604217813655885825615182700138986223750455889368765418266265947074541942493915764801543057932979115318872072589068599038032996821915912996289991045918426053435585374053410789216717209405379159152714340670745319998356072648769703023458647987248841345182769074382070654421460417240258955091558842838934508081425478172513291509147234656891067790881856449495023641220761639359924278731260674433633007597004333768107544698086821286172927093069103732441864392924093254045593751361967705680048150177119015793892221536681926052691459514269180633791751753849363648778789695877103077242789051784619541764856621103882950638482269109593692136819940171295819372563643992103948648025980509807451328534993113754490494250495916500483403759951055197450439316945941406826350281056897684854009094348524339547984996654777235403092358523570913209322694317289077846685003068917516451340297022662208909511270454695696877747501945013396854626650869667786700557352120935264970005013688410454170322838002174296312048430072319448829655980855655477730683658643821349870575217904353217377991343215082915371125377841216905072614863024853972735512554483243764155715869546689793779241481342067889365503936067009496455451893649345493441924448128642863222948527528527195271396828114021231832227325498724885785574753421372114614218060865787861160206901352036797981629965302631437602973497520314372744714750903765597997591101096798061412274250492950377739141046101992375005182547295602559270352506000308266937895870439079658025504904763188518681629400580602395120542093074539486973996388177172073960710944125591144171852599842296465491178116275711920877686023240718483225536421550966124628368562502963782503497850839260157341375868830853842989698937305921500376830932799511789713814683967546810053270696734477812776607065894685953362578796136230264859876343699160973227932610439926424034103401972698348015251039061218270321835107477793534587379180770979057649072085500430734134773331011488513885860287145855628319644844320542894488352203837308280233898065317215094417074333620655269198952652159386193322523072485736386251322765536459204986452337404495890505113632154273775493025450332446591064717894945731268737179321672553314443082764991818848181768424631682865219509151959261666377271080906254959516257864159786034932021112292228938056948966246547112559174439163298695180246169430610359372168555947082394872938558127312287257088036945090755329875073054974418651165458127320101166719376108010165580704490466564522482912110613899400713049016639500330217460721844302917416845028829347652295470330968290619007012584562792571810712661412555476854989856052329871445701685846516566220845063076704506934531661619573522192857006155842915502892530465563019569406956203057181458663848206915597182180961012221539656545878785816454186446677842767100985202362357472171290385785842589289878715122350459769932117593097924300251838828446795669976966331558860871532475240587861818628172986496713666198166051405286644786153745788074937265737001811551706964783801443866950061655400176065522465796717529496393863928742384908535324762176053410409467738345665421410904246826989509436525860369354517926708338059442453558548196504023127541221096536275508085504250599441894447868276954416471338136889060089786080058188777892449077789883172831276188072351331484882416995366515308645726974144068860203878184346892669283539794318770975299275490332145660519757926085240671461849442648323635585253122551276755280334254312669049933740744648867298048626840628431089553885114103506264485562065825672576101705656835714228284020712119012312271649227041330328579566294245549212661248573875623524171197806002204580641218855675843991052777138656831462274045199820246035112709100751667323085847917029867612098402015836333500152626484800701865522799193249772415308516801966023606169871818314391788189352833923666848890182978157620974345542252778960743284333644979450218885508337470448363319737373837462793591694802681123404623754866589897409021357201741510130162464510043304281569228389542910022712536861053989473245432537417417094973212144190939178271298515837259342039800544522905438640125794252389188103541037771464204831014545317326941184103127702363278486370292690899830311205362243928659681109248037288305190280169474400040500375795647475510392291011291662491631873787319461354111050813308251643996873505456437296221622204411318996866861095438892766366526465169942805510244933471432992921122636308173140482849256779442369723706963823638415162394227955202030979632027967383850835428264191415634864204925969748412299894082601127605533153270772210380616256975670473274893406338624658227717031074958632355112891255458525543129787593355472592873939123753263656454438542541995577011202130509592643029143675686785099766325168385017256733799010456309746532119381315790030964051345237569233799894268722449575779831597906397988883693560374395708867476071181640772082455588124129061133922140910533590168521024070103757475857854055013052447833846112115191519262779473291208895215334287300931840676266703258428389035995288911816754737852292620442600940062042132362864339168513048564630346062333923187280593511224983359356451368248179021608271238292865289375846153638219139661279533379886631731756087189904536967003380305073115763949232905398553067773595631251344104402019726501448089753277507273389430632125858182278419872413813348391848710724916377332310976377685081361075605362047750233893020699468909369881331073535469825984904753772846205786154697553457269821815746838908869675355094523003351999856961635718209142195322461527168839357588953977849785149430446643877654217197192715644517739005915291054474685697370058603323271997196305745449830909227987655378686941095771738701636032608086189501999319212628784248836560944532609376077685861564523615160532783637730105712343813438709878527542448200217706868274997350573689644110936230144599708620886230858071041309040887506280321877430389719001824724268660096567798868549281607276480385179487478920533890551432933473183269746953375997250270709388939694534569196496153204742779071437108508873088965109774649659941848006696910055054100635953961090460639223183007725377377499093800070042117414463097559903666543568061225511459054592766638155765103616961838196944311071631772474395095350952666201821727619781057942605657420188553954339041999196765200408084822351585277751626607926790172048045468702169237084050787317265963852210090426042306390008950082593130771587798065762793139028448688306724612311959262517759558878801886042591373288131047874826351367218063918335668579835178313848673291234904259375266651476851741753669894341588239808924430441374459063240892771224610571485816668069303318977375263336625822705368850484339047319899135415934467471220384798704714134207294116294911914900426878793996621253257629045129799466069735756092228637359943205393247300982048392689186532083431624556383314989080015451598687331950941150714397600949458892703288011593961206377233976286780336423704917600810475930235207944796884877775287645332473365049798151980316008990691551637487961699436194648257359156346557316167310502713707399020838765429811075174434334974207806758117696539981300661655111894102355880912345330231233783339616620028690464330361867801747968409365268320227323954756303377408254223532606133330838658882081407846341607420669834774339334160376526361561808534602023379844424402756044112717798916619630909994349125852916828951961518186825436114431989874796248982355935569229711855142535761882222345936043169263980800297539236568713527871577340052235795012649704923378212610998385926404972083054862277058639793242607694813774923018161694935545234360399922622715462646468164361095855478698271939824245309991739315643998725108546690917767230844321247867056631178389998449291864603700090947045213333734853810771485127643543468918272461652648900135413267376961621554077237428276114945170395523191887580061596061337578843918260729174151534171324100433278024625392706374743928627907007867424880465022303370366441880066590765195064531746061428316316076583836856863143616050084270836475605254109726969552550889964663537276986780293635496282855539867559524160612886944444348390344531151571451591620588354542688288847115950777730213502012577535070654661599705868764675560226312340781324544734708892361252694938719151501290390449834796048525408636217566193332028043340002415995304924404111446360932327377150214452574422928596930130677524257069400058076778869188574454389451944258725598333220037264628568652417833487086821082695534870945633762826221321278208273116824850295607484014197312246342187466937774809374748031330516115260006045126328070219554644612691398488908139429458153154386956365843663864295947771804314637276565880990736828782865521115167799175484416519694294803068297531483319292299832737093900568609738352494412089700149363101318851825319023291254140246915398948955160852329296081826311816864839782063925914565530984110224944992616386230111359343554392342262975066818376061746059389852721997426315644792267492683986606417717462764323142048288319921255298952101529301217106365984763900757731206357786366989296063765522944134142744744196577905824287602606667789528394524986135515521496561498480627151159931084932505070777950193877831258045890900518005979542954913682051131529232904161898706920942714326889109387462402023078624922714836609203247198019880839168075900159420160701552980260939345255000668602862217931233155405777343952160736958027611364595604065398330601249698743727435114207769027391197957903999955994044609639737514939852944964283913867052497494756021660768645539513063690942470839335750732272438405332292969339303759199406789705550755873008458927755709068459700097465895091566191878561805318968766149190908591020699843557809266305101725846631607580659940603639072208841433465057585660584167620777016815213361885554715216306736196487257969705485048725159946607405774850357138350594855261488848310083569837673740612546587006606663694517422165531724631222466022638121896409543099493524812488112080792938157065548769360222700707312952408956977067294155510833456583174285355967919761544160821364121517473767520025485984432529894667858988841055762743373691014390726555793930057108133470576992731640415714713118166155718484640599700844963579156731415019379893354525246922906001759302289680468362842066220372758272166385465256501923298945273731529211516857965744870050061380026977189195191258340856306956742411785322836517798053815399487963010500853460939518498879265852803716261533583642077100957879035107985278656091309096376775972945658957050225447941120970813500298884088009206101942131764705004842669057342382831865250908367126622183301827991274236601713381031508086757463282145835238201132847282782825663765602857687845291710139341891230243796433252853887130005177569221437650222833375871710396590290644641925310574118780662429780026415952235843770516175063767375690525737744075804335229270467594121411517641279762743138543737732308529917844071231501390131750651106727907212324161297391140203233990334657299065950585116248826008960093575531719386075611265175317057151391798171255197833921613834628959506217905089888342993230531423919690690470277105165707498011725110024548125393981837170147810537033780528597146557871667497320995595105680453373043518899502557535613787757269837414908823136536297786513111664085929079056354031390852028244783620259414903755442397699955654526880267247848062086645238149933831167927854291716115703124881190594805882127823088511287684288517621178051637526569748299239542945917510412554253517927488519085722189902871142658191793419744932062433515449643864134629850694712492274783070934915922886830262926871533015098317139597785554238413747297139865257178545448794304289179157571206091318794049062905067721731393339203750688659406518922200864076487259810528381646483055403565321492547236045647525646187093065653248648692419041927005786049755233471023958512940878342588568984103469706112091973128128229847787922317684862811659844099719860423234597606213545613372665188565374536409504376647042252503592870031280583738816057980959647637909970405783192503829179309583138672039069356245129478351943041522229956283776627571162388971435062876979684810250477111301539171767286954356281888240210376211837940173330883186784081880974580435069070253704885384635192087558805848910975595240175091450471343466302039784160839031783189379374954795696137282910638802574181201699259095721563703954395212406204913064045995811115816552128550781243233814935534632408045411910881953187690478803302403434910157904359527516698983472429220207786153936789729440340643302260212876309979292856668931885356933921342165641287786540937456940363271305820702654855943287705864865307723621963525564266530160311891621269781731048941671058637687179647325571549081959535304917409283542290327250000842232817120599850252081460912677610660487070182433721088761778883065405127324895871626679538950533472378458259238058648767301596833806551359839740462557406868660118823828306561370219666914202589809432964659586703830601913401986853214838274790851741794044344806835878434725852463909899081786346130340869952123034125088653736212892062161057593496515635918607251773778504582321703786279355424495054629281523244787969229692796008010789074836381456318865406265541443786926203540066351463707882136129420636520162114574445722039016274464477266411700032807637479029670695944228242984715461628841755089679037108389393264778759606937932209475434699662377791948043723641378809646693395005081438734332334596886963521743287278224873644419611035330584943502622359508620576883931982302010723514772151856249592197994995376544128882127921672124623188587261237721322890071101009556714100066059354793222333750764644848841721935755040966143528462731668544110477857889891197565183344057003492789375383636662850601150043038964933378307011342373308675467411809578035892617672407986577123627525280083971679545015250754353328948240423098584007315654052934638989624068865633943177214499960886592806005717793329959837084869439115375045214854311292828272185034073820935627389050584463135777290717470266644929045682606819506681417535407168317742044174085128818613991067730388507208188759143497784952466180065884539481784291543401706735350953679170645650155337926398623335124894924841869496632728313339206903559268105171871711323082701832138819336377493107899185615995734496244159089831743361353362657398027536048747676167880075349037836830976539600795909279217390188748709117506831418651311601643021169255233624433338328958635474529548025067482850340120670015421765901418153449024075304037358840267367838263153890686236942979170044132828999099688404618180428714434457780820261743167150374098531251170709709478487196313461855731413563904166323537777134024198030936358267439865248473709670990611670570242366946402474014354122100841742646511406958564064692829585630821315744499893902164947647101611497852898555350829717126211264027460274272733893726912056463143961792788227169504706966103311164497114457858724536430643652619035518979088110376721690834057659979338790369134298059133776790066275151493419325968932731816035791058757854476155137343325200787775127119278001587109518690240625310467471412846705023613596191832063018349502058774740867974564823813896594939805048258563867496114857670746245640963116006508274276254548523414825114859830865151824466167831735884176028581168802791969839071675925287244061348668445953722653810073229586802294816442942295717968019709476418203287681812543016682790035604058483001505684741808738304721961534392384603444782273119199832618890310995644062614574582003884266917754315226695250126651830666486567328596935659557415171487042799010096593582178684701027852155188266394014683300378123889773386724640978705043768801281744136804767228719855468719251334868104149104840256334125771098427192073223455590900183872494182164735216237717991797523179063318561504029101314291038366114246220029969993083012808632721375084865860930165875480536105592925721844973139149571215521202977586702254283365331516850768523324253881372285699973845206361375995162374764228814325978276758096810966299323240290235701978945100528716386614424928268147789842871766771885825816036172396861999839491514254844278176889701387092905459187585118769628926655581602807300747853799766786439701268335073784424254989383567060750043770764247228826439897238418989194429747722039384313901716871923210811862833394037587962008526809530000921653717899550850559850916451952393166797001588796366791573189705901508715129180917400388975477884751193951571942114396916139733809358409625524292091174772876105730000538040654335530155542752604570319149358735501617192250138570489038212336608499598035978661875576076131016885263662910033848769783572662711520432225351600848705493585018229590072690832679043321661135212969604575294817832978619406409326032657852034772022719560619615123522739867418307888347396304855120807085008236735901394196811160300956712201639844385298696079017704528913620296146125142271392413294593945596802414458949669403622237827602637983128526352299201081695322616886013771382172388028614314265103118249575395654423958509914836154875741594240010834131117238840862614770776654672630425104037449420439859008890120048174192274863762851350898160788007360365090703413475578737072930978814278647558234608088611296926647782256754440028999418037743864513540390637509658058056707158411448954688272973266901352585341096842086167371465254352920287269760200670474395485766906060913474788949636923937845364865232752032126108397924750770254483453191489449614212914847107422949608245454965029945816734837814453172674523074775568468707471127297027100065009176029846033701498223825612234260654333272210622725163326423725140575411328495626631063098323438771971951235110156053056422451202753655778300401685791335164902801585189254861587800179472734510470181313037719824660840416436296303148513120708049923148537450151522762172762918178706421078404090252102808479228526776021721557463227444213535167596784105592293550068940776580914710883573096896738042212239593792507626225498483573607208491677707054651854116031197813491018372336549341270217740701173154643047611614978668551581342507891922886786415533759847543069313611570723217573483330799479697175662128527369305175294226951312170167829673054233078528190456498760411746000454946084937034821417953248126556711010099881297573489777439197333945259899638813688264884268497144595529823265561249946868494773584594357900940019745039458712543851872914546012949920865224696627819154517781925985062446298387819970451658632183223077903777969456086225510715237271675149335579421620248903390530114358899532226643603393743894636001368133806602463423042183245384611558336975552237899426629946052541010807937228370929187079028082929778243945391291758591708158723825955501370519486027673515453350205245160289686379237948457591488231686703039302477955502911200480403758455401804767876618602708717657732118609055271568274480471204563792938951596755980985344825089173774427653900315325223799001016746180423683763438966557474941793967857639501645984046739400883411237076244291126895586197862484072280868136836526058479324732882743625027442670618078178611732553201649516230607587652539522982364991299028479601356070042071758166653810582347490174980174960173870752151640690810626275082460435591029431814800590519729373347547003596375955979867314207039798721281053003443800722399282514122084828421983566758465198918878568058821791088679048924764462039899403377324064169059417231076454264284294336724836508884486849261125661810198838137159568887178976271018685309814088884341232750148624323107628267198216441066617470004052523059144275100568098638281144249676433895149986565782935202505515996103745553719459307139517859140184509598167798412908367041291791879208332674331186632740526381234038837108727424224112825471656937354196799375411042447952657030151239438805908239730693731228845626343268916494696911852709171627075860608154117551476304271004737645905385222374778482889926820856023123278744576251994058551923753356494724944166857243079199411710182250119519299718715885344284889388099734521044631354772059669446462186871574107011479757331273998371624662987964604274922512958353860190387242867891241240943924520180919348454663181293686489789487914182380980314219107171336473079622978098028424928470622723750794932415795449222514541321926440264653348562930518462436168901715510043791779151983400726994135443096105688748600329144832146058380753081797283977856803795050868652037397197940215199254831385511484095054129680848000128265368469684040418941023233449585111720218523927506397047524674109154595986008469718066320230228748527080219355671302256840927953383546290286911475684741637689402686733380165159581555244096048056119426584594139887812809526626446544329950417449844989166114370773576701041817922127044988079726707421872614794573266062388410718067701461716042605192251182697244370564972638272056861988730501436499673216247780161208581732683253681584981863647190642273231304870659333733819306198083182540356975977157500117143176432754068811279313113514287070235757357975100990998850609253282269449360087665788374614627099354374879571972593438806041675192186110091842810230336358272698974137460996982349198516921017646597489361833154534606909095443289416935660881356415690109948534031260694719924746022459317857434573092429509552040580874524823333385582874030929228685867306570902374739721353443148709117915036025268819106106116266467716864091971077782232627999127952660371619715413146063147602416812401645033175750466849295618903107265080996416790137360907338973297591641102232138278706835034551446424250304236898176284366699283632711944793145124858343152296010037758084779595852766813676630754770823404014081446845953835900779315457367408363993973525072991609824944270252084873813781434348567154981981627509979880408877933628557625198318567355684454405376259101494332474476762078116030746259122419999200209870843464214120938605769750830524386308798316183261875192096901749430503899128789856397812883666955131825366456023640772567632802321401964354556842157554666896906698460628608867816429937062447667043379637522953834249785729947493199931469978719708695968189134408321903964276223782434098539408602572936097339646782596687932375272951499781493054666273726062554333937405903463831813356810992243862739583876101460127897040496759566568156828889321256118272608426723707523150750860963373708527339832628482735261832439837169246873518583754660564415578009617269895798771307621345407500673793378271554675296024003075682409327730402784368781044267217991456762165713277088787997759945184937477009578396247933505498812844920655284678193816563294182843154724936631296121263545923675639317655797909046376742967128990225239065883238339345559021449307953571633919773249967223315536634569875529959048242242846760757109781494594441006745294750204300171249687275984409755162216931941639344925359665337451085969341385480483341641663182181843608645400522591742464799928057569270229227123358389506678166599366524863274477797456935645001106384546799465415389351209695182751763934703869876552687740735298411585280741544733152294096205223425747313427243771124825502553513318786194876861624856567187436190598401374542865250264313245424685504995357213338257257598893034387389921361224151595030599161309372807768042454344588973801344244185288694459689547335200079392562425996502134799309742427958173930504187114989040294958405394882334973298569642079132977069529469205674514087027525666361078827540842145850076843690918374217456116827367803464316172602937989456618932229307411212807069548354113896239255694737095572814673357842389101373920151804516897818805083046536741772628625094408533556636820626078987191102528738038292595413839120180640086238684871060110069670616901199227722052468645334431980090917756340994548413585139980900736389700283232154993952169522777118871185561518328513908700504518394616669172512061556095706618799443096886919048822171458569407561838642825217484863367741412427471261453543400310007119587443421804642747367739643438187473671391039119232317391797919633701292248984681044872753801507914224950293189018222459689251818199065863185869935240663744283969342259970693069080322933147807187839172293087646156239852886890911617547598196920135896848420355798744671476218192276407781860777607439670342477189722721834825333969310649419646523699021249166715892691421012095517405395259913043517308468950472347076878148370292501757873450290225065755338701967151360515742335918955239109364926320334554908192335011538437170312786293286399986745896853636931040101813245819764299983936051574997611957240279053820031026967199400716444237287086481621631772034873833839207851825854910372941743445891515984370682819955099236785221413462524709364459216271467622757289909162263544088608460065624678805998984601548474269126298745825139743311554720403162806021338496829460475696160562290333776453598531012807238099634586742012866759798708717219701531158683397190855892130969433593415485327044357937899291405966112766439523560707905066952180145948589760163289200033132509247704043449345440190333714403212024120063562849810921152176208517435254447049743650025327049054554191239701093893412390476282780456990180453702798757422106479154691086521407364817271952111525290228673996005008197897461857044333991593339832846815878075201176758935176233539604529279008168444881666139548238591933410389742982657192603916884311910663311703773642275149650206480631566085716936351114909093637129887735728668328879706217615821582757500845707820181573526400592334516188178757039990312545175547630926930651754276636064212532830701747776623174441405305890357920551813968788695104868986096432360515457760109597055134301188517710031956732477623233214626120761157907448465704772756059186074751811849607157285757723117048182429941158213096217579603119400497195765826603885666589578105397919642971680548103365040973222125840987513284402438029983604575666820071891256983131620815475618124432993128984042514063472229022045801632364747006854622514192184173947237220636476532847982359967773596720987451987976101353391882133181955711432833539552323007112074309963427296495089382819313426987953586299035731469952234864559340538257488381416090859597044417811539590257172740069937725839722179929130985805447620915189168525277760165064620272688904561760587048109951667157021387084066720045478077416473696373002315626905566691545827285178854502125065480001910995844770722420155935906013159837507304408306351841510625642567807354556670208561307032359787341193941992191979668340211508630484454355363837165923013063075310518868552705246449936250125909742035139191919531828111717954727406184808625623704756752019764647900955278327741178305966435748882150955566491958982978686476279617205766882366116206343900832273550579497206393248842304509804224545957322409994701691367746523889758186757429712671091866538588714138759040603954630366606140680347201457855548843458711539415857094371313036236433150427722041805018900814031701957493751555130928370237838378806865858153976215242506650985403018363827179660024229427797316502514290237811845709004579650983808622443350826978252001215835841606084136208924629214624930956282804950362463031199308953978404489395653202525264916756982226919919993687124486483693993206723262319515491573347417874115717817871574395254431262533629531862438357116076335595557818869675244279771165137857312051018867262631515924555698196873414273784440443874595616041333109898507687102015541341229019164749834167733743255800197278461440023002158909544658794221616010409917487902993704976834996740400989122557351888287182018943316106106016512103583915463748780977041507192508352255563360567430438025967935990340647990560385689443142178491210058637689316804255254855311861783531526044546814817324250314204730311453091000467314927485178658691282805658183202216936837540891177502701664464239281340645751951602012280592131753997504348152949308964643727402730767313312971079156655751191967665795016806299394950299720366249700580858740839044233186783888009694389441396492825768998666854360619306134352518723473611291960748646501034145344891827635597649441088042686814935880910478380422836274104384962360785407424498747681785324725221533756192854123564146269631222506240801570776117352307184123972095610908465946674520136945719692045654455692104117910432261678321533858151713039418210508222935642401672655981267136542095491731593878612653976233472683766516176851883170221973653075776081546727305898952957785603561102390426894419794882528306628191964141251336083186339247752867330752157459605747886711647987600944030826522649384797036761388497263553812157566077145201924870517523866661269225576243493932043123889976364314120843445217873812720480794945543889741943822778114333394520651557208064054008638903093244699349373124196836408101381373803418580453702125780165897071151410653615098165073048105266893968424365237202985199522449254325826864997020916467253131096366063449695047915582987901873693299244717612706449512805841678546868100575798933949596078844410636788665060299490800441432088668250423495553921254483666493916264593453909991580614756036811393587974594802108329550194504735803320248337504069793462763330990726495865466207264683175428626934696478890811988789375721663558177248444029285655095353032984206456283761703524633866399533783567631298963148662366875038991774729725411078899598453332920166973349418063294800669298400456103238752380114811927766476099103790121171938809619187934616516265033870535055979081449227559393364042977013108142898161782592843734219248863196811771363784632177158126413465364941829338591396987799556558415526460703049995711701833376240343830464865470137826030730143441524449841954224546291109214842345259433830318211220182609228833731220659837041450474849510748218638897576397133435857946199410432311411903816624602643990014678932372052171927441426340073413199423138639899824148476957097435257972929723939596351200086299428363356529713797800672202062762232732666055399150211051557320163474664021721196162601569621209785995003539528364541632850285076719103864179337453825665157962790088146674503852688154399509391793883070608125688406776367448460167679863997285778594891957490247828484481140008777608096306469273907969078267955443403651964912268534759920131471598136074594431148764934696836498384183744787473716351683944541544228140248934240901247800451322513137963546127349011251079814002314182033906909005536615035724736498318271915436279163242709778147942186851632641053678909688291775600161976588646975721248738054020773022077575643193545861715159003164106808982089870123363571064366730805385308492037709129792751471175525602072502823844882491274077522482952053711471554105357578446320068694945245854300890748875663570758322839037633580841385020883311287753062159000281111196867812860928004751748335632056829080560394782797597546436520564198159335082600875386148520097972319474738302723905008764900565390438616518850459422536303824800652656340930883503440884293803862801838820509473101957743578009096732356099887602902011877182080243469281716936068137005410605677470964057289306909548342104987949657639835684269298302917927567744158885637828245645949845931862865828572696069148160283884723105959972591830612112840919702634756389918081868012673147924943831435646898693181348024519966317505315879934163308238858983024175831542587640244081921924358980172508294093742142041840454894826819659267063458293552044838504646536292654224546866860772149336306596579081272136216517048811492947310403620823769173052344127827885735584808100668317796755212170690228664725727498353526746112981004071127600159456387830311608513521368324717272247529471884038651039162396573586600157997606321005695805829834176135580186028276540513588505670165721993949259392583046622903518356398939293743843233607696264894658909633672598404453797379311265673630641958643748050907505843507047904748626074119671332586542082935512552596312268177264597148722867225197907316016464037954898104935755434549190300064947356073116076878721797894748649062700446665666790972081271944513007299752970175730644544577302964071908427083487051959695188471188081412442259545166832488337718037072006314024003820177210144926777375851834957275701553383276046655745832110874463884480016382111586933890692689475051665674369246906291811655996175721361297355140473881493718835731250777052234912903150454804828063575678651204858066674832671376941888582135346759524112451359905429241651436050505958547700837830904707347718404726450236712203096575863790237451806792441825461485349817960172992844797795374225468618371039453626792417605556835435848915987375575244026546971491612003488592552236065244488278261295349618360828141482853898675246021225777800135615742645705685814606117658726767746813970916174276175538239874828294871023999284688728366516476346039251210852576186726185148485698026221961497393724530470680716096472715344885985109782473410419504318529015703030035619555640774508203066643885910453224049810413708154035421934001800127583714346413686851679306416862987908654874803683862789353209538367060964522248206871806468822579124361690972791039515904242355324142089399334339600777545628897841289906156993573607172442862718322804615426091847122647631038857972185432216162684596879799341144279170380266686011877770722832914847408476458391841570074155247763521017647278668679449699670406595505715948391319647177699699397800218719148775490712652013035357141714040228701903199881483156884859991332088332739141445114719533765046212018992117396255641747726347987707292016893138924275412554684616981778839768802773526442598086632969940906475006301755682971332134342612112802782542293948356012605248397094469537033023215132327024728229270927625514922788130428937875902880844598474245433107960170103675613466846622620864729676121023498900552398756972820613001315912113764520588130454354239580341565486056693501139233197869441783381084005430665405280479971666716243258197313447865545483745569322047664214568973919017200271977424518355330156141227629885040728620287881114772035850513360221945828418996785990143297459766183543077377155085508221363976843456923888758419632186832687532337916210105812732547988783783416032511564855062328104600857302664505677534851609610490014370222617561881468711931146566000563440903481892317033578615114011728018201620093407733852888024539614256947010597116964960987857331312987886100345195093057542494082226638532406301522830978943181367848778740842206525871346574726481537521021589864056266002356465614293150913824382372750817074546730997276047898248917842546303192249912943267459269514377239432416525465412046847093917966231993427950224644005852253145840996382798176301504700215694083241241254732401109420543537260846883609834263135808220688900476043273459777210160672377235137766660952485426801149432221512128511152761527907675621038704204514825674689014760303596255487389762091538517675716905837277622422352503810123216588999658997377637005032914963433664867468411604828233737341986903454979163786886408685431963365468525209764611128950399085937050829139428095315726474056457676385719750231048320939302130026081140829983640774766091448938498732854210173227841366578267357318696993962024455343395877784640173364671109541200192244257556127791541034614232013711222139703386333716998692716251116197978389565306873354210673538261935296680717127897632588361994835309558961407136592517353145238255943107609454243715208563858290918124360137947932444258611377010427249814315313965830258381484177093913786170373190908989285158233200489848009280542303055477658631808307180993757925043022183360740835992291033376348927879911224517294081509539647707217362002802723445348215467416410949743136493404755426041177637860400940023249253203755828423253345211000546061068396206358834505681783196105953661698301445651131568833224448077109917905433686800695782792625779455735142245363363671703398357988744074352435434538350842864100853471642577974898133014070487503964367019844140559621107775166597076625731623539415665833309035449563257877924100882394138760310999894648485995527352332486991436507157928300557545650808377591317870112218848976669422394662197040389180799945479738525811094748003456669718578226703753321504562296140374656871239866547221027243248002814610728030732706278316862227688727902057959147582765584772412311664795313307025112577965760563209819815009594159990028816694107684531374686197392992666282364356853734598410697314734867974213604209522493219119128470839652213524841934768173605101782170699174432891222242534775218157231947508979581584286545515893184983054137426997442967289039508357180190269876656913785540158476318571633778077906198518739621379481128941324540742434568955215367015496226410905114602714196760755298475081273335584345281619295791293739137386257125763483891879583381061137924385444784435065678823490607359711751220306548121257065854128219942959828051072517763039443055579364248341737067734415929331873899710031416021555416658591369240560890410640862988990180040786663522206471321949093211213832608652680936758273706350010558731112317061753028039568175317977293198202939407908373601388924240752355805823237155092518704390561404134609029529090387579100144429963979238417218469289372476033345566021391583790767566730978539139423418234449998029243466991198697667506304900636076824621499897788307220458454532145208131750203597487257107137758770201364837194933042377361795692042737105310992822046020246945860673624736682528264413763230878099608981537787199493901437888643948196553398815324398349517524205556098260400484317659218934488785053135944112506502820511097424829973802783451447949521280099482044541714297578455321773725279900024522967631638508419488296407146297653996917349563521512771374214124507188729433878848962592078390854528216931935958932020701908591561695409529149188878238277336235827255234728898059549658893482337568263167145244665151114677595121062592030348371376546408521060803252486722093363923572292111891872149725187971793728885496092461149360539795785138073178201388859226038088853020935227391925865452602736972318037129511675428292434855232398299584186745117842741258757499208143226373952760816614594354527516231195226874433250533414626057960484095306879388780393775101521576436659987512771074863222869770381834230565345800305682011075405580520687740568713087793550228987171692294468552206910342898561207143798892940172025020148128995785105587437913132063025073883758990252704358323543719458338237843377581574699499263519662948845597180525889894534479814448148955937219853477819906558198751729246461347628278289214709376677524599757135205754818069811766349193748415749338001934927115805292262833635439722856476940627368892798958311806000744364500252437796802701966866544404381433766114793356175792375289037001599144210252579353610692593761833182103253709307775279082896840553284929570224815604238542143409751515776832589697692460735271562343604672204380683032998109442711508802481940488982083803148309924545784019368983045652324838797864042272036323703421277004406770981555350907654450599632904441362972431548863568104633385817749003342326669531111857334701890061506567144685276690787686487392216220832481767169573367717027039716593282562192459772350709581994054172404270560065303427218323752744066690039879992369611143279608861671226149030382996493834178022358798192752785593211964833278442369043515086593315373914481502237482687195227745032412212032477695326346133143566040403434718149533006817991232747434127693060954440136762024589601881657210291256231089529930064141103819939217403849964987558753558170744540172931369162771110968532049996490988525756060300501154400754832084278385348166469329351513480998650344965089205379339768134490316770175834336086136010956529354400673324848798189548264132960556007101785117554335919765575239241633497993656687711196789387346544715545986921360253207690416973175577434482683051524938446404147932709122658140918692252338697931214219839802053847627964356917376510363417835508301914630270203746556102956478960359426591719711136743221928196702759348919161861160604785780058693355050575721030421636467782289372540106847973404042651887239700067715142515958218646419888890036754670244167198238344717399864809265016066917350675879003135202787651265657367941523846850525762689822466578251281725451711753815953853725588321489734469510255287101099160467197609424967384680377969487117550839642939503746527661082380831184917469780304432372192634534102280633610548811800378196483899902519753755793200447977173086888929708173606931902333551735180696168468143542138352361224580284906142917896435256918131880642566635076857418297152950312672553800659688650358207775176380621432390492921114315437212412366450227985867846276187720883155236637123653334522476302235111993405079211107213954197182573520459327822802040654343783503514569402108363707407967399524416372747056810964244081124258848474949091407811246724871101798874632009789775302326849320634893908351934692399446919176403217811040585771144875605698504021338028118235371902130544998726704065191160583308864332584307911913800741318579222113964826159876195507326408761844277767912935251001398340115357075616009396646145446442417731468150385228769268950658214054300331608800038784560937513578892400847209913293960310228394253632274746627016388726297367849692115633679607536840263189264107664351559097696341601441822075761876622236825963057386917326432811089792677087676577015691098026389676506161303026044272414326075953367816223613290040038906589084053920821503713653760140015809310511384490252136928803431088248288780366491795496734263688909664368016679095838455382561148136897521209832913716555650777409801355299671279069677612750392849876222941203690099659197375364388927257470647554006679823296526775236422286731101485799496768927804361536703916543975376102273589385815372549398493475779651342716723844965261210188886523964640620223022556154290911766750064940581840838085981482535123764110263889372045007296639136470084825342321128693475009989539894481853559423252716000514472617179866765712531578238247322130598526564895992977680561074003765937409900123514187344596800762010888628354731776443634543044572006067619009888664392818923360432839016200972598735004120456971082346558839676803259198684961454107292175668462095706175303154184040579324468896292761628689624756947462606309579842816168511750218808304153744832363471545072981363419753548896968267691961075553899777629351238743615804288888536015787738123683887837392081731919027102017206489596526158469037938015831240094646414447430099316100831932140067487191140861674503565332086934926910763315767452901243368179694379439499433074847092565138708627347307196609240341293820969067463552027956370430598026970045066019413944229295614143726109068695971203971875920979523817533542919946374813028738052028115460550059226657464666741545145985142107291446311263823597774751229244843016490692937978005437878118692229669382116491498728069977997455954436147705284003704901494439642151035439050166837486958341231157263312544883835209016739475378925248386972563131200686411456098799059143363636282801061940205928311382558052050300157339453199197283614623885802419724002986302931073910001507324041472032034567125120036181934036255545289398823108189860900861934895866788406626097212653710310869841613296162268780609573543478989947942751742892296295995488474351219845784928865117485454022756775872246571036750150353435817473072370053388639034152848800996970340531943837932903684809989003561519482142709949721090196349499262661478387003267361094071215530639475754339760036286874834967932656625406188268920938180643023546214182044477089289508542917063223627252492504329609581378829646213392938033953789212949816007697808363575425881925319196257198204333831789454109275964048393529627335887595107510648756130132200531211930808651688983900280321791193437772640434301935604466422432701867709019240854713020927847293578324962769567598279709953364505169994494833377378213056461639469534860864106743916212564633511336625377205351538774411946314281125433158392464691143156200091081583109375331185700833915268869278551590155709191927406147127657211433487352680917074414345171220294540835706000813154997038024659779082121667540797388594973835079960555135840562342040171396853856470258313259489572673118988670338360002256575771688075444686403533472927095399410631947954502199041504019305271010118360972336614927238021760454003079389736591672271640418615648088094153224662925985338943000530716454746388995796727482422350563861260652379606732073861726923106240691487387921630970782786628341289707949483972358806229604454971927719849830756809990367541182102851016794480735377158131071730765508979597231152747907737558225003776407491091556674509013618598498048881181266753128017218505616541955070302955217303036341045442212475147605706114375652845204927115847840411392446063762418663748097380487146438220805560474980138339018220937568763470594635706690595983651070355658507320111283365159381938927720024688534041545751036053933651734143584297851855258649287964215965837650396559939469645780526886616056739173961760089905485695053309100578426361300690735892401930734064436118867977197627130063173029957456617530876243299205494202802024831991513172354096139184722119257304236718498233673800370548433134692025410664287329359201849865882494205473732085459513038396521308596818773985877277956624868102317539739542090056860583437907535387875263399422724883854831350316219611753376041771847174868340855909253535196205355877548839007895870254940259933230273526878363611140458611865771017859606589076813265543530985553394179985186838339717056387890467810291221890809689880797927044071716382654062139275513243676620657932012006044044510718861172195759622246480617063654618244088791270802038667127764268553677626003254882863885671005531569571232510119032089911715493385313535024433029553802520783281738706991813374042723966772773984285956866944899854291743538453188184224308019932468575440884427114264223195484709071166441109070092005361256246635995181799319968516081394596616346874227534422060013671304441559885360942142270798890145377067946231426760326498297172518454032148263908613167981535742474799948366343347798010342571755697069701807620374431608145699686665807095693031363306675919292287021408964243414955684046560849206577664942155013540728424611779037147611566945504115072255837446359604161855839422325385352198503513505323522706966341433348799473202684346214549194255222958680547320610819397769631916057827886494293277574109508118837780429676876793183071144388118211382990051404036601743914218436998454590124114199712900412213133413950560444757051550816410380407209060391913188414306371326528550868521999783492868112634359528357178209469972238688657513807756460593676667100626970252357047630176008918934095987997003575928628282814712890076609917888145146986045742896449864625736314787091186830650402121555400079854646715526458536149681418233266734407190582811617140864638514343559402992258217469079717388035257853988194620963308096836858679053462181501884770759718661240806597572232244943677904519435187323044704004142550287704368051789335969890210175439692628587223280154798507089719910382394576615080544288976540387540396962995920391965498056609846193143292023247393972791872147897944436745833781194214979669975624307073182077363233091068121992622698793900530156060602127490330543510948517933700901496802285317971230190627515560646064815495534697552778609192379272633914468842586373353802336961403242792389132085917207205914528212555804852468390506997955268688522756370696084924183892132621730677902660805329857138484921692341129915555316556506810186519644503818143117169825219347465816522354375353327572252131367654514681223565486283028306846965924788672437570708522932797479767636482233362968469764715683024888704890714394573842434245705276981954073373761995168846195564290582193653859246934901201866265322094315204091021227432277921783424827281202112899552422660199612565946263619137944690238867230381778301451662692126803268103382170512410926570628337063356785184633836589899787519431177556330752223954656036791056823941180861351929502643799359860484297864157911949634464801978614318054178449244592349813787726501660708910004461142128863694601579273478975201730470421992035752611328761138342405765244192949868032107405364569325283844053333392010102733157634010697113087540621945780318262070516916775444036253805148781280624168340219222515620365884970956664245967297867201282829520224064759794683995748670664514257595370232745107394120584406578605684829467941061618004878165311383974557862111676754294574746616053918068402390293558747680731910121124631843943560823796716898081171133410152302786383711557502940412342100430443246174125891465054983931002960665637470936363869120360361156861015043690955540781840135050907425955151521233167783148346676409125082687276077703430979208167178993986649702366412752210474983767318787558516366470152527095252856859880977771925558208741546209984752723800408935079081009973948818216389567227297759769140300566330817974118984099985136381108083803634672526736948240218617629436218174499273034256350529021023443599489405698872264575014646390862477634464427194193965623580908500393236302344281200657932539186718648947334658580031401383324956987096759774119376566430143020207069243146756417786343758655968563776541744917886158697561800381884807732758857497666666060531059822346606899073772983172304900368461194807459647237458583624322912078063606329581905855519814872510147030808432930114821506022281785581110253948590697573958206433408984821948938194846037404716133509941447392644202453431395185845481103889834312521136385253388602897137469360090174079130989040961635596236551105731814572451148945681138334165507985533463281323536163871620153212915072842963929809273089316315287026065410501079755348780898334755399616930797221135519005449560833271159099690865306690964674178803152213849000578438044691908151113494874661215191117800241137244267898317773289966077634078721621050073929939029529756889227201158723204318008485044678163017014094725710500746531665802449077112815684788708145267100875860348844541616341513352936447855936951134318022059676380053354604263711912424853350870949898498996115662115595550554307395551150111303501473872022018378272691528813783753348984446879480345550133166739845056574610086448510078650357818920896407447500462413476834504250974250222725801056203374479683020937769666859798041964140265012778403805710710637928136356815815610659412960155234143988380657886515957010586937488034493995003403327409470523147633099105555428882886871018547289876233947796742763382952289856441879696944524879260509124609502090604941944032200401603020073537879645923105188221949213958875208775271404714795314652582234576032208496193714129901377014222241724669955322952913346170545286950473731492011649040384854489432229374150746631919373054252592523671900574340222029645787443178096010709663310293319832411680861896403691675534201522151911510465498246809485816709211167006156101334457728898419342552919671515423511494310090726393044845597806941150819134789679848086805746381206392969121972390038410175858611279750531673628957630853564916241097806515324102583641877049695776691566649686919455363692188656705398680656974840113913413735153580486977415390873469929644321495594535802288380971695359141620650380223490588689627625337723986750609634930655240939549197272934238639377720818572587539435975453588160634512439809300660602773299310922369716321378200611052639925839636318547167897245438869093970359002315988863127960018478793507573313632340111779484250218709794441646620063097160387768838469026848659104107394286852510375655901267570982736880113421003533682972587670138218649349078587447171138748550826234495903578962815596317088878894457522401533823099184089564098512477673936816581942714772716739310058298304550012495370581152467056372003473108640306669377294353325439267132972734568277646296893685356753531492116464859339461930135507286686857756548238315754441421491074220887151367030594484119992292760692215564457871947866823293840863242336672446165427331198405635416011266636151062805059616779029008792894862144178265286692457503884686678844255515944941196993741983293366004524653592827811334672578531473463625023333842070189595150998282479843945856483214313558376202843050660663168969793003491293634491721799820929282307750127585331814452284979340724615090092170384293378220822459336494702245014746873922724936524927507866865719114143737202818612266854251590110304590475125624271493113477021582619211829365225784469269638013736505389417668259686003301333889930016390432121793032158282263194482581346877801813848222706605121100428357741772313558823290711267537271634091428188580389352902826443063378965208892953550806958100904695861087406268475175190472885012410791294170937397608119161304730888973054620774178503197213972995126051540649428622652158568879936578324191206516088328466740240551806238698766321440088943196162860994144783604775747243286582062487632343080167355704055359657816852818417493478702752813285736211182773486874116733523663107112130255318341432525645079025189054510225322865659337184843924260534191759439509613444913426183561040674543265484286238613022034891608416746031314208747575314686488431812499915925462285338323645970440952910201642445698853230560768428057342335293313419308477841442259972684611813329040224274415443548663880970665537966757216768560324464473833550458362454413949379097596546176213239886533467649777644731698577238537449721751601840743097759934350088782175382141034902822298991758184870488930687710512113911122960612531788033394377257230987235904873965950963903752802110097759967936244249685486055843741423265992983870672502253567145120096129224267869389253350233083453644002186854192307318637603610800322672941135797806251706727459621749147330115602104930435143483712438889739073562216662694269927092743323410648057433871819215572487495494171786462958208369064556405568965620827517562174536262075063261668022638055948210683904930747288886048005537299645917251038345033204799997326402717429391850780125888207864612060552170033326948143808537918669049904079508961863721807676766454340949597660746502750076629848061362552985377416354422603472606605321584243170926773956944906703698250089534726619784135092208039776493114363428835001282534414472198455701227974816147916154822283507773750530542375655734378504176301525740652429631666147111011606814256420493967108918370643131912130697670861157882429569477548568654631019283775033815565945941584673869322421614364704864794886809639730881131068829113444696666694896302784850998138388346605357441317638734050398457057664960063249682178412263025968457717173000032130251976650196565506120804847178135846867212001164917095287479492005755605082614050541173615013003740413659902564358148204746389787028348790914023176270337044369277035518730364411558027534065794570831922190142479416023810657654916082811088112117963467553139795962159580796909774531103001522011488285814801283808874592134982204840087997329882551734405460879102584195321986332092672693350013303174722869754307649476950612818032451531751668709264256784723885777778130277380541239041743592893838870766928734532557014937575717523871223953178278802594306399096614441712487922646069349802513408529872490415549496687472846185121301688744624325088523224622527397804745239296743933149150473875346741441198660602010687251063097177436244272623346343938047428123384012402819785854990354093775826002374940246931080943160015964173541360412280916537279602305015680863754784547028791028409839866615715847577183505369701043980539581714208176864626442808641262760368983872481401772158435275001603023801218314501320534582554321284930277913333560919475575511169838136451829325096155944098344196659842439212858174271305601038947173185600289297053989134683584423617584890093669090009264455896589037450991269956208583869231726373084780199239035513016109270809806144649128185107887555719188192841317692972645432244108718061288521180949382555897634998112824558249789467510917136740480396673877399263227034492437219700621810198484147610271277444177910118349422087528326587312761829460634929699541907246790667023903753673329196451464828791900162711003061331123085747049984721955250848356416460057381062259558740397265152884409569923013048828514320288908306696308149169735664714595669922991723217859497059721630442920485242412786450481051639350835138778279859445473147765518842446660034678908571326504672542555414436268806409029270755196747475094614143085717895611161524809704016420035607037612958725903628175168934722582420512798959738992690468712343037907249442632107876154200332427057537098421571958681767599875139405616973801356702272141693411365563571176494798960751176600415813254127103140637722947194287790221525059148180539075173368467121369029297272195060762857710387900996582211115307827566342809914651159513836374035433916468418302850076766929275223514758714052541487419575773287908581987669619733665513354949467184374844100851858460903174730428753092737224996431281453805092060964082157748955887368132283069912160547602319585657854612637867487210530545961182328749172211764951473878794031451465252536735503510703289535445096718405095980356479410825624559577733172741201871306793615382964899342404653503283366243600740924730930673851506275686474600191212058209235155829656508955018020055008260252658650650528135873582748729468432076406652616596225947949131487071296041413905912652142114368862748211177768119561386726644922749875698403483453906530171542678724171990666692300079923218059207127637279724775895176938223228114627079323875047350987451864807195815322808031125109217604047212857105208810540717222558830928474822972436439192503658158658372474999226449970175252893178870835869607006573339086302198455060198019514932074945193772657648169844143550192462702301993384292509611159600954497299953439368851526176895546222931989553405222327465340465030603320241944428453564101311188031100320507837974089212203998065903084229896537766814901914444712197044253881977458487744821488587321347665302478366107961664385135203408118639047559481844717413924667444821522750087859098197824543805877359632870682221410607930080152219418218642746745827791485723289437801786275820359258514980392502288827286199257102162964303004680427284423046111428306734140458212269121566937257854995775185403459312779574528312612575845382012557615721648954701458040205852973313575445279873124810617729566393151318562613394884991043757117403687475400952590827907501875378058471732514978036529764700043140999262896587324011501668766895153404302070414128755274789363721111247858543787228198069762681192183581251580227455919553936588528309495067928036887755962295285303600716740471034968734644915799761055886768621861585729104097072620984559415900971483495509363372323928585139041388850232458830273144703753033353709859361997561507161520836853995146608360871110729155837625887366666023867754846321903559153645656496145540236541603205512102838252230125835087836462267892239566204941059682120170150298241927016382934731511221214480576673279624986732224934077649881996347619280257909170746560357312671016589235110952662890080652663136080408984500143698756626293529325553538390675450055814431263173843262425390073890381996984900810846652391982710463745119550642115791634150335709001372631541409631136020811379387870969477573105186245706977151749495716239905419979089670109573477151364527501784393754381148041519337924707805086509249712733469048306537442239054611920936414301537605330863017323812310186644125839920888711669808347067102339243073996629479652024371821951721394112296998156129741686848905680477017551540325159589149983786596769376415674395321085772655855239550755951107515457932378708792052254865057571256367601138815122741775298441765564701515086542579309521464936721106963022976428249904712340078160901807006689089556926595954194528815720537586912359528753955575114559043239659918251388055426364803464712195068263512744006542161498112126009798611052774307868416301052351084186201783319178352883279122178566934435452026332894000135702467290012419286024539564083366465142286711463658726790383944034546825660486345736077471005976348210350234963058524511213030020549205576289168450411961538000932344411943882420937120296313358996360568118923514344533658834865274327574947452251566543238375936848700715168428038109724600370878579123209431784536930765643296151108238801887627422849769502738046588229399551625515153773206838962804918515362146247685589935460988023024986091795664263508310012122027120481333350206124500696867013574590488959565667271146205533933595972095373584090446869091302966891093856627861075209980232639801939635069155099605314531905895061678428547706922024810621369567586443763892172707732458192203725476311921280282310373341052516452752165557409511742848640763180415831125424513135885220148991079444279659127028595447892648630997952163146891348042683788849750529495232651574079172101740674875694186255534224113844448195940395732205657892839343913360404124216660428629824462689460923609511052993630736456551187738976581897951402488817548453400843725491778103788614006872947380331857849687933737497222370732369220499578335231467897714852823891162144955942554358349602350332005392203328409451573375149330946754336261414511848241318308671070960908198164419962329135209908870806109003996897180464066446794729082972494785427863965424048843831013491835234159006012503792182708676792831016057750866893756575862613540597502820022359508834194767626224270696899613094150368752646980961068082349766311677406286539171725109469100416189177932777692539750156545137201750534176782165930018688343225697636390249545068591531033658770566820225468538750693793949286127765361911247876136888094266612984979176598837868972022746120506524917165741807988555482794684355979538323409891758157115538170066960211341543682097132207635178394030107731903027787286460888258025224086266612558012078176184248636020290563162746793282925783538236135625512700362541048909308612807394804595628393574103364444358651691984868739200735592158405251355435068980217088649877087697037594537207985638547025548056412843667747318481281060601173463195430971155761801720861799919963296748894090503089614094316296722078242216863047538887234246600834125729538085049395333225208411180243360877566412590798492633210571997511502438060595999954737322754837189925448252099862209177462537151477180853463501322208496789766929701261838540545816556495252706317475934178426611533305393577376015577198827789089440541938959179466833783352854812817420016924060985378297007351854453100966077887511164308560306320816353042970792847795109368921026822891376167921849555578286595868752430664412304458006897040291723523655519058043653597268399660297779916060044391497714349645257889912138252356502394967757179057929612838416818892542891203633480530747445791323469067986715248729115108702481405552484565872100875329324525310713660066110067291555383477969702283802437355462517251233250685778071673648954794196910995364768640449621863798744718974476032031939877641872895253630637524805071251409251263101059117233889156094093385550936955284803551043031070929932862295431032295904223714118418419921214388991192756546120720550484710429794935199908602931706832259980464832354247067232244305147058528927347049118463099153173654977164795964563481200663208543695806876938420359524779386257242044780214993241245758167032965646043587405640900718678143848234979744000116727597568780623983984742420545612592463165008618809342962602757890195113717457257947003661328288868180256188727852295766679401121395304069689512470301253597790568848456543643760626803842094870326440683762569854981978592363046824416599162387264577987348556285123479178996575441197010325955884635559943734998569616314817570850217566730709000537525222855461296872548229205472079178976430512780600620739980713472009165850197987528710617631626157296921641273182034924379748807220448540902138992989950968812056233246820975848010827257171019498360006193973936146282379511174372103281272870456309258157312812647374328894269018756533725561600992127204344276708906741617674447135129570461705981777990157909910136558302254756651252136428719130113989166252600689930174028328254981153911523163032555971844760666044004729767983324532876875905427417705426546452271913693672188217812126857659834477668657037201770127194032231609781610776726643567476423275789349830091925153014517129291622760958855815498833375363682133300755728903870750106136295764841321396700227710567896602049304773197548156328628681034606558998891130992752762497231474963810276729013630057840788988471573896993624228956746339172696916677226165122885449709521879435778752433847729369293885061401391989911698580536057655105838656113779396208113721043262334201150626281360309117674200111524249559020762479926222242821423557933086622310439997746674372486830517918154645982807641355719231362387929603754749808481145900654072084629696693831608917492658142667565425642190166684043474811371301871236731950028949688495119321255594115827743662965904667570011997500498632897291910149584727473237870792785325490983956228473323835978243796948291466332381927436475285482637519802556552744462682170939247186506367847062359319601180643728095267647818879230055806467999248085344969973594428846039169596532829789801343175505386945606729917535766768401828348677298000337106161762757755081536096419863454928444027311226270322296746818073990643737109436383701481612627394624889994224377416836936701620491021799806151524740297663789142161511367874917709995177070537065770465938332838054299400953193693400070303750191299419804107662025230513936370182803635767352199631398125618145991449296174629568282594508811362777975478475937765005631105805678689227077662303868809056828150957772243632607060637725257079175543037528991673248248708187176609693663773659837947768353773805860708180475465951982260823600552423910521370987177469703781480571122914254572147744531977133202484895313502562643162977240152331665603238981934501327108226858381819334550701729923670845236893895622520032855696719080238755294516078843117287863225661481871276446495861202522143387270627134498522387435689935857348482873780604912120352034810407205171671555061265305554397340957742860137236483381495807320984441851415611658568358931449970531083918756212868092897540631273490778953235064109993469405316989915240006388007914111873761522880516549826628789821763967572222601487935244152788122551526718360342117011071722515221645554280941299711283640958219249208827861472821081800125795614829799298404623616628700030778733793186418889881342245274747885357990069363997420433317807063076824470277476918937076510982401949427276721077284656421828930388816934512714732812570021311682758156545723809442507580178968016410455136398868392207318150627061651422258535470437163340580619971688514663697879999191571924177223327429323219266808817252982470887382514331724473996565546411755289242465921392429086768233203678442910120928442343376082695918911271950733333521102166379034410329537072085115386050867460079703618956182269211790899236022361520589321812188879961080543555467948359048919735285631503736375128177504993426224260727823606646583628543987313242931409471769896798515622574795662785119059489514626224283554456812929102331959875752401974898962573280671473545095030818157982147030781675981370147890085408356612834968265078077852835865476585411156772107204326101859715788095995631352662659620585307158445887526014478565378089332844165110261161867406536059256493352594757101770173657699795515692546521029694703525666943350078306405425426140904498284067507452954142304595256476939329112001979803409735907144021139949089751011975005253807455243714999925999852991186703787535460980848191568669388589045555876292352137750469214073974403619299912602203285309141300212441783632832487041858907995998518390122339714536084827692255598147223310230361432265191728428358329539382140380844597723950438055298482657799455410666909952198940382464952219725097010397632550278284989820894438846280003583047695234324006957013412701053369167344331078588750757785393170834355233242257663337622372730982267992716060886656901862447168754745589506184521415268854416596037697358919274213950534079370820970867108189906623760499520566506586835768438799159539147209237419846644882202627698659541150267444431912225527451236435820573939256986565330637719087744777004391934231439841512859251395716933086300244651479638215503554555330089094172894202618968638588071294358300651728351610545265150758507375702401453281476910252538894741014381996800795734797207734076450346944997902215999208172304439155592325982562588725204410845453240393382743192963345480989780102893727121609321254414799212942394581506339333548835366748000792929478415820862671609070392104537856364308283667089199359273671688014769270705324635186422887893930284598176225111811534537939493003314303030538991951728243460479319018059257419473063625792603273960414441671909112313412256087149799422592231080005790772566092809648780448740734477135233094362185174434137828104313992791495182696649159143435996885649975127326123247122030744092628290320317062043368260952383036806075270601548354076000628381939923305579716386781031035038664548559922233403274441844001538829916531993357556113149911231725825923705679645602233377395387611407662107715475855696289491142603790271254095517093905835658646670743445890861755313819991749779259656552929744475633760978239235118652230765377750678163948672545728334646773250292497809083590369783953693257412267646217096761501774329819365873732924966125130227144482331805907002854838429227136802206303248331407671106308846019103506026388104985975141968642469126009848118253240479237381000489662384418022041237258160191822072645974953472987484595059104994911015643163472789698651160924020635435777274642970558981073256679318295954506404605291277477341764738155143795994367335874843265880242178284153361203110008669833121105556026841375715972975903766535984695921391903267755034234412738101259999943153884947570040446790592960333125334447598075673613301908153530326362063493407319697628128208167621805303351600871641150141462867854972678449643662469002255711742508389474031575586338815906177643461583590866066465281059206748426042052714656081030185466433290092592999548638013313417189108910726617904843923987236840077744267926623524751911210856485176952032198895843988071041132205624946984338771905759048255183179595341366499769047984724818956457335121199638139935878847596596767195135030809152907218620703953216314483253494109708505079363062479856450647800090288410553943817037592133582581871292305436629666553091066372492415021010855047974223913845783168819477768377209316120652081279400613298564825545202053280002030302373140113366516070260021591142817584582546177501169833820907403203853003152202897332435057132624612727027096810226343523034065002451140058167688154886061411710545596717006221196023567069328397389771049170999143990429779120222364968288825210864214311682330891538348979302005177903126866362277373948340851711459293066883898374331833075590065056146332327429208041838594131845432547367147582147222960438797410619219507048570110978559912660687198404917644321996158845427855039624753134434487363772062136766287412031239821493893680768845119728179532365863769378169394290635282820982138089607735837198073448416737208689510547327130702532851361497494947008576517793463062157681933708376897891975503538571559897810790427446441111328228716490805709711196362044830455334797353686219639020466682021596217570316427713911758116372940189834904199443503426092218410918395317104381347210639478744400405133053703443440636577300824503061461541192790080069245588531846723141258666117051041883997799827816636811715777765914966727805957414192539084043274555265108000132233946582365716679555917304243063749124406973385590868471091452626886506496917222075794192193671365577629262917015954166125799203690633730565491268350972824713085936671798599831218220619781852800335131198281693818338058816976308990851328980507395268460007908252002775457204662084365040980448776742836500334237207201470295318043287624537919925273215406547279253228658118390848308657823599537601499932723717827144504539166581633644150234611352101938657276166178610801165061812578374668165654591076548212825839183643422279809045514711397777854234768502155593291936831751672450693023421676203982902677184264861870546901855351784267012357919900571888504952971475793766795684245447071707056280967488712122562363067788817448293201584402188360939130418385863815829469410531534246231053645069500805287645774210017454397369164123184138369732518369905427834198649367154124871009901377325779802289579187481868220894214749906432102114494448249185954158431516999416725944110157886494421447233497838762761730777701621663281680688464406204540147547141539351115375052980288391417733764910155085221289247775381018288412197108591424645976420090339221477757256884716655622796177208649468313126163908764734867600479904244062914255569068915252931973239049169574290903170379108028890865834570437372534276899287928630633772465839965616547622005421992843897465264222354865957624068487719794084828102242085158659798419942571405233584432149377729325476109419230533524494615873444618646915040190638921199721745221119892914181725272219200138874413538132347617142982113001349883290858950492595579890148078149189840099165324886984932740368386597133316424900092695636732245294983901581096032379247383459691508900561557107536886443285025086954151311956581075661947989855269391458141279779841586210162621101790768889149045214553518772114869713653474117250186551167953685231015218830297798207047010041191788153714540659242794543957374602487917870487315807498805357605371676148135748303455952156747350572424949731173441404652380760216356774530634368507889563822841536964048618298719543796057766512600727213667499728132741937855584117164257799580079544056254583024658723838861840667406174873352819954145494706950032951593839500051190203751797764058329178785187867070036263193811735099260663944327203379626136439032808436868029129671245036071181283592024628538383755041914170160271964134633717568019768263584228929017005894164492550726560478169949586943087774103311455487538903573034230350954529696480774042669917380275235290177110168340601506553678633392690964903462086098290826344925804587229483218327336557786069375787362836560404090251771361442401589748329131104273176901204529620021431126639115818965261006574900060010709674866335980541021827956527891957948905382859381842029252861535764115389934706943040567488782682840254010322099768418365029122956487249339841160955233210317071632655664519118618447388418450569691606044226843193365261821387181112696936402822305876472530292442059270141126862073770757696784952155910638141718635057740078881170223386930125159917673409148510510906387031324335159319560464637279876866932713307336980023045440633576567413518049385058960261157625920940142741004251752434446328933455093953628787989547584022367097580092077871496282175063308486255525692758777449024753598951718848666677650967621606448453509985844212260912165699235201502203776324905396841662021959896138744464586790524906379678343968905516616484601562836298731501580795885315384478421081155792039311436951277858784512175530324104797046718883631647972913758109177718611738187471068208994365746777481874414107027635664227982284051636838733377373854008041659238915540672200181791092718821651345959204181760074771555468433801930546428682480281910835304929400902716981185235135233907553343931490987383770115151032096976414028882148617865001216566275870121911489294583005513505788632331321290082642304858263978549026389734220081841789546024198423435304180766151962032194472888489204304685532104709925881772029307538973871161421021595622889870824800342414445112339449613178913203572323805442675904688869837849393231504695780333407127426908600332445088885402913230464891716015253814936509479749544037836883317957376585095160752751525241446085644421466484075201689944714581225974048241020506470106814537218338609256767813046667146463558654523876057565410767373163203342892978198438504785485456322547880789505821475281704634316678544147591278649037396603683682781821448602922802765128209915408125276647423489410694269529806293896800948659556818331163398423997613042444008350820177187485051666434046228624248667109521358721782597003333161221799859216203439317124074817867127324364485364175307676325913838882428461396084963407294600484237874690570570544576344730566280228084095979536549153750573502845352361523349327593794086025011100627803098620241895174270417244114775322339234415389302800316227335225622712698619629957846853758102966275973826688912219387340083400853660996247907653355972127594150428450293712316386524164460841212045794646439823594660274210897085615616843282600141801662918193725643675833002344047107347093603688206187562538253473829200375161612262976522287413010291247069367529460458711682214387292083896804607811319213435813209572665506662546427695147744033379913047322199093653193882027266134561999644977402650829299503971647357684641081217431966427125700348025333566877171345742575911721084116051822963350388571865026279285800407304323381500196953125652482518070083368802347126687157855590765131030250435675197686991746611480497833882791663252568112577616716421055023807021412924393736643550502046633968087927200608428384593956244293518947094277008304997923815013689521781808563509217054058051942477859442162475012753259248867382165564143597220401613610198941087294105137609892051677559004270680014711023182954804786569050159074577525292659999639339889054485016589975585951651017023170187358803119344284420370064122287910352970815169629089239954047699542986393157124693556488905717006354168012148688013193202059459790122790020758073812216166600718690434434193165045659127009262923525569819219473177765750915530611943769455737903057169856559850293190583964122242276738080738363225302061421087767052559991038430993817286159625489303750629931387767941854761264781155010259169972981727028933436918932637802348338403487567991918839022505093550962791711282879139577824158870618339944973768290089397052231532607650539813661165869410417842484874856652162007928294028268739750197372962634328394500633586527568180920813401569096782675531560227981511139666786072522561685474888390921635799245254117344227675753860968949937444948588687252170904208703529525183686277011469243022324520058781249347452255231593661131439564014591968613589080335803400432632480601673782607609595464695870994532551294831943035718189208264303976577556722678791388390139006157850272510370311021929119268466635462048876100801087250416562367520668698305698708947790449852716000230636757780403504273228794851950368501995059242315008640377163038100543219842236506030412080516078657848578767236369674005177356352941020200061262608679974091509150608970779732217959150779988981307209246229962547490676230016351019815274822555025715798391271131043385277426943693436066182787430006843805362774393116164235166878300313991316990009314472181588505648977793566767437501550547592704387325098206136199556752294770856577305992167494005037151493614404443490547069715253774388141142092025354195913179086772464183201381594014942981823738206075139851865421879478079320061251406654036531233695014165713170059492367150429119600036132077012853688398068685561521687385192389750460103938365434081300421187895023687184554509164684072379433758721826175743625059784599642503973779549334372548697895897417848794703748670148966374581881691258320814497803774322386129990270217304768582661992121458265518969892655934257170391798777680028425028935920282953106685035426631065091551426272843034111063866147545929770206207828369342766822595780123285525807552476486606452705279539933718571019913866256620132255745504196072858717336745969867441219903132988503566512159657863969142306880728808138318901131158438000209398401092348333119903341671572627047599661759677359926606003816867917685079862662174841952050725171028938989838690911055670722114229286952002562422127274947934540177893434019673044166614554278789334468764965558864396019867718155803681134703448503028123866914443463131409968815104068576473906831465461073799173766095907104828858653430413629587047016298337008269660422161744780002766029311751199008202340537976132690544286681580888450228410948930314356083674258185383808772260938005586221673809963953812202421327646362538217828330791926579547885298675893642672589287254791225307087225198473090862599809404591241316522384986579324630813932180742058461738027366305811071071486143960550752324558789151507998215775270858943489957055975980620864998547529603060891744112107807302738488907892177147164820123256221538340504825277139833276309195746861663568203232714559477928527663697031626011763370333994425264317449083865120953165278472387744268818011944974379652303119050488903272876985361485967898573995308681615946734229056631820786209122355333576237533350112643125001322285492325578128393683042496352361893501831616397077130852638458957105153325486284784440027993245322398362031076948069658541395321201827729546247273036697427837445208680576744687969322535978634815785398406331684497200560792259371784551081101487205153104352859470688821203605795456578539280375328991192300762616771085445572676714494591410229594920155267868699580114468572538859054090226235574972476881382143013486951201483267007020426246281650222846224980307107400797326151769413468651456229952293609715319093301790162318321406595490889761154449045119714263888521139935922006001174610070490197624695999416104119458699427487025834271064815612381628301124187336290510307674944930612860798802059979835070892942885003705336052404434532950971231335289037367449983118561389504191076380225189729362596368564306926788218450616210989445430743188495929564945209851621724150897932345034310036721408733350944256666516131852182107211575906149781823898652848511180869934552056909134793473829562152121395585521056510328312748621649885418738459233538776413105109556470650128733465692318873160042720168188828218760360348192862968466850938113354997448955205224480463604020899274253094930669573059045408350155496591140305477534851107451214457185863239124942548525680976136736982056917514009083078574159401470740323018615696815290882084543788645370189706479315196953088702825180800427617212384309348357698784634229338580112849105559603734285401186692113163388116925522527050008041417375615028295973742939485063235611943232788487802660561795202083808807531785169604116997121401837593354782470069070621267882424146056331086316667131629428499071198947387392224049989955201520176829617043922299390334280226063815180212128904540204718665552694028504519096881834218592055135190355368228269592611717384443410750843275461410100660239839965598903693054965137768834786719693662067835937947164725757917191237159647574004185433742136962483045276187938451151712317253560203737126475027449237274397699986061061611491417219580623532090861490676345215984226442102636958353588714247718515107919082458272722988649706743511067286660695696797432224288603747938752142573548591049387526272484163667091085954515642165060485196750174830243752058399488217900107020744591130252538504126494340945906729796544629307842706883039046045309596910795269766486369599090041090159372647986798562197566091753122600596695705518148235712152355752599511206767976313678424424163151820450138759306010494167299166726433972491525224420420379082625858823495798310792368990037888295224826052696738362360909627096804013800815962419531898620265002768406979994208554712343758154489352974383133999809126159549623793523720115166172809378156824644166050172100970440635051000760574733423862253307683592590737454443584406567191330361541280663492704778070497696584754283648712144298138374613339582534594461355758579024260346763984776555718523073546469004628430244725824540280745062692669155794683636172194523993998034109673720470231105905087727338249755078011698497874710770273729112161842510353968687164216525006611705077021213261991723983909024967782114618362436194019276475206418583033520135501782703988825835312042423266089224791960958300531470357110758355859432144498200377210284191377408935958623240220983625232798589336290239599997666796852763930165506785989943939797929491358677836654654986610968390815263616104122704143368710619406577925241696769170963011579687538940983825353251535115637495374277147210941073900104630425862273790147414823120858258737219327421209503431127377935433941987575798832357685746462203460260894562189143038541368721482974451507023055424746855818636925295584473840996882463028798310472385115269113580820631453578259869231705272543924641631860772347132013538742303021545232825205235482207773512857961471015405776631365514195900550537795051729933489067160046482852204170868338360508962015187786010532258481132998650884885678480296695619012727325257523570921990462285428655113091535896060330040656458921090988287167164305880540699538835670628508472529268648249939285176919624236220048863992560742454798262168213833906898753181353818159062660245638364319047271357316661937474121188556283936200281125134375537297619139171060744914510377782834800536153512070656666777003855362734321275202160557087017826111432001346420422387141375742090998126819040562276785706039880628082701970885454788203387559792584456415221823720553429896011903620069184038674695536920093958131384876933192050689296270632566441118274479997415050879744424898287003901675654995553911769481778978501011679614815079907398321369710082603276285086267562288270760637997697125339720432284744992332996349908988673730124843059321418959584725789854410716912524952341061234251294175217225319861584232527499907209043696290436982733121453192128262567042862091189313083665431528911739337865722355176343407963289170599884759741698466642830407509997512148135244582295609605808637376106523409553557349305042294672115277211474649703310953815597363037086136048448893057781828851076010960986285945010259496063770762302228189363483079062608460714026567738531129330663213581779575029292579081767869971062207203698955877182353423710112908347405976799392887854909513081461265247436226605516488533306852736068611120873191028086407404778004005592248096960219497987421821720316318839350697401666067775867806301749704141896734908500915658672728558637877912970661925502655498567051165591055855833502960686827113391105758832339318259272607207798029384098502528334558375009781081330955196720657978969271624962002024838187455955720732491027102511474598811897025333479339228249322049515334269367039992983304979929477262113337280234064515491699918877629949767115126697241670965430079380575232780971979140471192251777379295743639388035499204044458464600010560408761086855198540352805710033864219819989747054171057321231354831994058814568381917424201407919601388030505737029989283074788878885040328905471313231426884799827225766905852841980828612486996383244344648906899822474033502237678620838187027180315600946552194080075306400765071721480144981409779887393666421502703804136912673254934624839451370753000217913376746444697708968276148373150352633910201046321152559135709122231110970592844648686086022787859937164133117199704356404553528364354791678447228990899241824336606980740922063284605983951116932618922842658431495986324724876839193676991744232970870683057299986971326565280096931027918974900961784475600229081717726698066958461198055677250570852619519222954701972411579189297157503765507218876183301840809306552365234019601213336054691506255167085125364292929440176119672412440121167979302419670272410425707357714786936728758601579770052352435912818306117385032458216738529700050511861562543585679135585553798411464358782246833238725398899150003910209841986957541737033161896523940963557539648335743619454046220341179129391421320751788448575975820644889654291924231058037090034382866602301696356262512968612925780770150288293013832364085981820362459339424706469506298073969328468868320063066480765356675369260596085738274569684976591016090567886965569499493780363415409344202340089714361558278899118992462456007830721319913731655135091918142015905976583278573261898724981735473273455181399318835490381196538020367174135152323260779929792693706215430462474219615521680078976500022493683674409626274859724064974726853835079456270847443448244524562373782027777558091893605002008610624388800864865244341798616009022561106080769206337876631394140275647733589648526728290124420901202813512905296217646235065574632091846397826728729098319625833145528992636323793797167991555461155281499971598083896889451584659097216256284440380312816629419030906450639187037201836727060390129292229803117738366821525065835036845260825240145379384471337749722297262441458356592447676814759851078867217610053536230697936227191813714396232676318119344854432030353507700589025741739454186289747980104665296814885920221330167338480471479493488041708013425546082084852749155352565174960974484481212792552249194428548534982544224547623470539213267355217591493075535653948718794737728117692744551724841968008201064555754081983327897473732287352654209771821936965390862484459749211069094618810928625362713901200514036332010722917380269857421951785715600893442198178850021887970456091430717454154384256542521081867168864402353101392008203749318860950157745415533049772780496914224066913414768371867049636043983411428240930512719627752135881279969537595934092821167127373587371843539685501848509352275433260800701906787744538473939331758014392874669898913458305596485254782702366639167150887867808234644573109546245791264633852685599847009578805323397596279927001214196907027111549719784930188013040516905183085955902713972861652627994351843486773280319263470188229319408337034542812129301107085384151779640883602478477457644676255838483846915983427445332765048771159737916721278566068534694712058096115204441679861251731437359182215465888117461506307006285070056947318610430394461773131430493182511590704927815155060233124299446986249289369407671812222308309051984665401849024647804941595754115048865515712232190002857753181827697636962394596442243618142921347812377982600260678267681647861676945251122371809815946026044396050480491604923768308417691978629829101435004929536639452486532179379682717633380221342716028714149261239402536516738818827336613151563427205884691784874240528166226377764897867657825426110084577448363340279903683666654139721309743147835628560626644952379334811343659179777422579243428740567606991872741887989460075318602449544340421516243297046673067101632119351662453497513892570095733426974318275594442086608561015012751566878592673591919894900018265925363016928181717684068689735700264979154282395815535997856689353343502526452504326638619051913932846886930456618495898929761546963052153353746935363238188772278877769979446428275854381725491752285290820947461468618671217395622955602480254591667658447930846927808821914220015940595874239262535845336914003691853094014214000352027482817040079317291275560093949530167366592211455116349182061326752756614733791766578545718891599903702900239783094080432704622259348151473035959557617284828286894519618000079660845238237110635483480314582257531091319645979862918789200676751889973555367891686314487975723757517913081456708276499926280335350747582839552390910771456548864937068289722088028024110879640938061287448714748436064528772680674780622816124834018682104375722090742819357877124893006046820572195495989544256091360753009528377854062060991712244877851117390504272130835206315220807904226070592314191391766021406006817463402608320205946948121663248548138304511378960055872686800986687321422378057132919496260289510406716941740312758683031915288860616633569407858197781432993177985363463678659219640057429874006691800314248134088145617407934915418261462899176203585171272360971305886817550596596555777953503337897217682506889906293738653664932291713870338086719094733082837127174215546958137665833749378620225660224202207004776361433403500072525842886687830510706370587691553392588474715136111968815994642387982844280448994107510576057500778292270378315501617844028384110999287802616661170016213108916956652481504297300239614140824410125374771589583181184497613412542634838781398801827923673548042288287443356854668470277291918591129913050987348651855735497393759681437973955369861109874824479628676302167072326491753512477079379312196097909057351544597750553593707090372863609053381706790145177301179433429473321556771893294574484896459446088868331582999276185889073446954654978946025856426969704033103164244126743612410130153120433447531453003543912582430112226436316968901305238252954412037920697250659570136195050179561842258379225343432486853737702980530260665778671148134211534631003935936913301316883990088411477368641729800980452851379801467693429525391677825252698193162653026697748802233610583370256797694034604505302238284827825468655689941819908133919492606850294012749306690808410773395169778156681702905924084886547154815220432777185735346160336355050101801081153929580666454548193307935246488146431351941236105775178351600186346896997409612223611736553963563668771154627135064100070132792567584529437171613573347853531606631214324719183199539789413143204660562741273352056052442743937702211165343175172820967373028296280920524733301939635160867020017955441437716422495946066174896574959256171006782900850900930788592890428125664420036687578513016294953157609716901925817810509144534592908500476535017639143057981386403582930605133463871450539147544834547323870428732058371601677607176877978952335169849936340213496251425427780466531437153678028006491825070737763789939597575145359094531751255128563706715034960684286861205416269350582651640058157773072225608422444011623765443067093677529459494071589684998391488804598109881225380179961873315916762585925256232242999068429233251390380443064629653470453544488893091568483426351918592784976703828046918230914870616550215536339953458606771966559421069865472918758033522877216372471405889733031722810529232960558498520166018990489041579897353093362015608801670139361569512843074872033066305685436357407734215344028953096639248999290296500262386850668946178808475374248962511183517883621311476017914157075862551947487669744694919241311123100387157190836940739795380042836916162235800227707587909833447425527478330674159260185763937934625301235040240812171823508809316771835316867427186350814703699059372099257300514558200053292104850457031035462529789459818279541016176957222312729512762977594195061136473914850809285589250278124342350867965605094323577347510433511809742064801762030141788879275253299459999232233022329183780476133722481438756373801430629667269998145619213472083799749003858648723226573123504831797638495955790213923370724181740930182350467645216491052259328900487461534852914773339576540561143755900542320897427884315416043726098290626000648551286568258010897840341493864302839982471525608680985552571447643867040346185825961103222497442043435159022010782554675687358096195300227358576473855782506965795880853264621151019425177900215854159981867822441706408905392329849118957255691312325671883722004248775171210406286335646366633896719884821303805822508803069814795614845519125514290647811572206996043473337471636988738205621970163360045468540553019302628250344682637181460561652004591383540301311581222244614917003418256091621940560732004170107717937082051241511490497538537519274674475507139056321596234818986137981233660556713389983577938161176163281737925409863953405607302736518350135249738196174225398280874424945696475857193097958965498737146014159383132493787531704030144608344872284772837899397365955947264523562189529822469260858892128216339148066816676659871055713599875308280072612549495545827516790507956416662808260219259115797975398990422391827645684452329627270082518632117362524024053970432080743338398073045438402673432554118767379757822141996483692738432039117457108083298829149350951701402183101489444942861739699060126933456147367268504626061869421991432805102749966839480781817599637181106028638460475402644746023999409765976546925160098786220808833286310976593324847299902877575638605001705412799570799703493552909063436339080789323474488192152738671718001434510364331124831958823179608417911698798636164730317520404330462672635738853482308422289090934293865820924479141377148636350295582007851416042321282426713314483218435188831504761896405343180557984783927047881305519240838854814923455100679601481783573380527952230999074659962889485345585164187735949225577940221607937492318770984050871588626615745271091931847378718192873458034247706006130290760558641647237117554289713365765058104224048305340735854248299565774996156328470905247979786880155604432391809391491434886948809023907820058863778163455858043569299356036526823397982416885507134472535389564118141775790770124505891477058238460179656335488469630732627426833534570393610926210095404455963591086119245138906541584885380815554853585675496889797550994277621520364358480415353514643585273223188445833201471234425453293148567804775827592641352339964170273709212765794982087247675157788852593847244222744528570548472819677590319968069673904286845472803886680523733059100200473143634138704391360750831212623431780184274667822096704112778205169259917327327083778421714731551703374926716945455838492638111908319475277282354374874853017840910184199570165355264639467737630383439364922820828564529644869967798899634535597629419486837358011691189148361057567847662345099418951483413769546861836964198644112318037387886170041124612613147497636353218847888076961534042889214435341533058809616966192328499747089823271773765471382737817284873410931943599951615357290510537804686990321786578430526551434630783130493682510300504093321106765977296486046084380409231314896813934473731759464757890988277052674367767234390783516822690295211383988858722765140388207735627270384631030988794735017362941341202101909239615215477130214782206630353252195475167454499699825365402255070403365348671635563232865498380494496108916361603716903715317974957131611244585831572763604377062891872811936195662696164999577525069681263876807959187264425507922881128600763166262258313595932116257303554180703935642285439620524435147053387868547528219771326769825205443052130377245865944755673578668507375914838049419502222886465961963867186697299524246866882672601721346888000057065308822835575888414434930372233314913563722938795727903553996041423668525437401166108916685972491048617353003629520348255587505583840647265463476110735515119808434401282047153111899689411168656468598563417382222645306797604960585352269433323244419984761051135426624861860842509538130144203851078675566829562254055939290808402216735156050680463860056543301206784883454540552822320786092354479127494900971844670151052863113889004380011032115727120126719803652298434278638308528500076497015407262664987580241573445700838879461150876648323833146269762939584484938534445195206002636762980738636200474939737368693369665216770630321283555619384490721716280559183973576618513231170974408812290061970998256087159285116169705868756395584107293657926952648527475447655821541329487364156923071414248963246965660904720012698994735897492950130185105061746139606443705081185446430100187584021600117129884178710935415862957544144263739917168965095467919321173158820986273435341569701594316031336529844083070734814371343017897088362392281378892039496700211534547846638252491349622183172042431927600262786579391385827295646693485561527051609243286992107461281638653755391324222786587223977170159623683858599156710471085664610246688425461516028213864285593056370834805233067859761417076442280483446184029085668865966543680633397956573143635991650674767470548331343483581936021949149539591318241657951444140030541403882283724165729654035376469798010599289735965488383615297194329204388952139782433411336916844317441750754582487960196446835771788083866970289561335600370805998831714690913845368298207531602588747424965996890471820034318263434132335736393052052569644911626802623291559445901071431717812336841460190695862113320578183408430459410666594383237348795056447784078776560105585887831239623261440943530385903729513955776900832361926566415294259641735072906450306128596472031706259008507017967518068716411289639852831845551207812599992652616974952712042511054257024495997721622708489865581427531413620611847190198921783544476449398099044200515427862541203629047429900740918674095121208198734516738134864124497403923717771664753112576390785594446745065425443971120217136173427175015478207722543855986653153258269783305179583121016653458166834175960951944172127969857803613131230241552005741517251887125397126688677924393942193651628041215189299146333546218914766211450939070632099143002271065031932854627915680451565634069063715636606302832402918093000977740633130704894704850434116017156635306096136881015436480049300062658716959077831729791824355437816115122780870743003082402587635848182494155603416437913344784186288092910798202862071511239712353273695966919434050082998951962375534874808713530366938493005597504659170728049466138998286267116745696736176579094702820074540644962106457981028935443248462417662849575122287115320000221571381438197443020355104779239159283407605140163899339280808013284438121861815190389543024309200021129209510572750103317705598832526008452124956807033780495063444333238855645272507526497541073835298041867976592390325088275254602957624368108486210744038514648857550551957935867270280965998101979271881712277070937226108868659151655465443267717747916110891859537451365664200385009118523373574754719304257645246937611497558744989958672930692106452659390482514898600503528688188238063116213417680462447705103356617073005829176301059070444145616317505018338560795585991110160414720088730161090182777657811164173059585103286593682794856145573599349798308999057424955224735331831170664676446159584339333779691645088889749501727102339774057948020775958507092643465577563306249319986279352096902104610060426422716722638710974737144147958992522260764785801527609128883806582843506574108005349059509257400478758912731196097156747139871965918264177454511847210389718922152740010527837993250575972074938378844325018648961305814118847563841692304741455650910446497166882986530995462284412425061066855705556171388730824233771219578508304119111467104275833303264433861208766851856053138218564288278246912808661960972809272691638643506540813051275708333967839054995574838038518550416111750048745004698505896071181777310980889843878639095304434227474646666115650760243694171439547884024538639915866566125711438001019879024298681783345303143840808464145334066716088056072181663951064305579107214274276025135167810245477987058080988033450280133349507978281551009894748569092005574266707484868637844359215725473826274579790981862795104604606679857817973122197361437769515380280058771079901619036553339922955220736415675309399217828044378082236717651131434299211657830376180970498309456220932239378808089332998094684399929699820328555574039572770662974064325451516651797871880242184152431889052954897306800976459025710302667166311691403067076940504395858570810662548337596938697210117330425811572620220850746363717564958245131339346963755801452869184313234285750184460395248243302790267760557967532411887181157745611745524172105798146772188114761697184324723966136407152979055946864778342768348768276271268411669731162320121606108852714267684875976026743309738247672816018635806991105007627726518021637383691413396593983660800185972931785721882335616277164473183006769183776207416164053498601074157359094284875437741350465808075148869758203924558647374214951874281146592923087284549247947715903869598450762388322847536193279879305770688597697149832059398181675456628106746146560174430170695543760173121628924374558095679095739051005189696705912642024097574452939399328121399694087406343479400137310260020613941350741936596309345197137045118791497959269623589689860121967627958025720696234003080255758450348980637741875649855473066773617668940087490071672834807835369603452296311661225360202392279811517719976643083471596291217145939115858424242305084543926249656752675076263267150470610863886903663928230549651834452494109887316161202686535585144071359945282863961916132335163513054204475061869562812240146674357977498982493892855711174623990626797080295100007170651845272568146157928931420001043507793770575940428923707649984975294068049175918150887754462328700857301715320342530291053678461704529098440971523828810037015999033995983205841107382224715692837355885082269280606766817585930642731947789178515607918949287814028029696068674252453615269172546080458516805739805337140349388332901451101161009101774004166071299044723360479684122530753870470509544276027608974066168205565084079644399209569647424695710380829256321066756739421667848048185870630374499233469464137459128950488428678671998264091169595572047409078758113835436353851242054194117251888965946836296515003008594441679128740176349502696187804987696500834747666986538375437401710600557190154355737016489037153498549832822807246593586967599924449622844715358099797331974760180841747510043291174447660103358532116557526238476205750970220503701383249318501484750924475767050299517422103954162145254887489994429169317097139314540425951636613572980081387650815972021131564929949479187114700889052270953275407090594978064228287095000581569538560939121109652458001998694584641551805261434533486734917621500678758175153732653760592158823196653785240315917402981005710323290832386851123828369019400236779371788247386839391234814902889517268049561167522305607367787934478865243752653616508840157407420318173024524565900001554521820417896878986252147088791993274723943494225582659760451154011345288848433004271860160719642336285089495026496533540348158195071939483290894687343626450004090699691751671493134488791327170490576526819660369999478757301598488711323038685138224839830995424318686607535030789703997156938715920679418279816195192005518211084120196073277777845268107769198937894531947486046978557135428722147685665132608527903246820909794661986888769972743632201823011348628479567510453779676234128805813143455499045896123281247068375245098284626927085186193234560506646530091298064678753261918677193244432179360969234011032652395222253098250828301996631135504003851199452238664102488755443808943305078387354374911069432570608573531369154343571105189514008086416578529444555297366782474335729276262461628795668522859739288896627335733131796527878989043267200477760706495197782106869834381897073755459751831456466072184593003810956471865971982062149033198253471115868754018118884120900290821786220454132413741386776708056094659035934380919987720738643161853288670221653105862074840558502004670470817693126801528236518674674410337472724622739613643972011964550952272427873620786242633311862798785707360856844489254128831221061838038975074859487011196333604652008915096207273372755881692700477908199198703078388325714734909333468134420352600992338156763725711239785190930243835184056717071147120615327863038004446727892749320531987498204404029855160330365120836938968340360860614752423285625067873957590393158873171959831098381783158272541351224489106092951430279090470659419724075972218333478113633741380008617205758452337788416545710485970066112783472392620993075477958467217998437027438550855311791336795026775445567698710202862506043166785840748577304423930136223043470310979273351057951366452142665982832571442862278855312926812375788576904066185048414532913295413217858419474991923539315535929301821516252196132364661102828177829989333658917053433358524717901709053298925488109612383090187783770138253947112871504871844498182324675679806786746963735471235156538387945731977490419805871726677980185135911417208638750600895167492530226357086495637769126144657136087651045312136715696847842631099395392197568600880558157495015039723359852346243378511806875127890641189638100594831645000032723595682497906667917236835794580380563845444111598085418430844396581274091661642714117767739170622738870415243194020000854943001151786070898062943847737181854645530216259743198296853574378641699221286064565863495372897382092252826494666624730713161160449414978398152900073416097300823329634159791083716295838078846868028483670654973970490699171592288254177415873678221660798559914815347701287225273867109025175879308948957503897861262225030331849681974493179136637974701867476881352688268845887422987420328808831649803870433563993034301557806985379541770225276566290979911210229512920318837551049161206938021519720369089417991178424419130874530611015370535331019816913708079117826078138938814839243280333850750148001475109331836094624308075165244112248941233393191730205746407763298983429904424479857375698072466033924879188561546516797240140404342200011254258379750525196027612139865426148189361093685439359732975779867448671216431944469837752933367734473352817863733970051848578120325260303786863579072670352438180438336358694988594884399539679699653554488010486428871592770510750097966596780490610312789081501188135446964500168356338598532384448850600099660102023134543238942262949669455249854587934473899210941824867643235835898283388810523757843243853187367866417481027227804051269237808290263926563849153760204931193838374864162263016015907197985847066370956035787874126107114248953625889672407820871261607374323752971716892605663551991478565108921802158129549693352193097479653962115218806390556857049592470168397218786493346956957361115033397408505114713422506059235700569841155774180518943588946483400993792576986208231711998346691766770797632545095706965997057776984609440047238995085563578439748756031995751135984308827111266951946878664793038425252134247679277752266030516161032052319543003300719711801457975944792034167869740330814710180566917985138363459550829161512092738059862768671499801837893812034357131229925023172832367208923688785998639897570653625006190010480129483293320989028281558148429196809576643588037683923410792716169074887531951841178594874203879677203758393228740705940691412721476814222670168712403100304341954764325178215847124107964504675296904678178181252496842483133164351133883913600614933842144445862564266003539485061496329704902574259075724831671810457746276418295481990988475799886298953647020504566311112849452480550998361009571529369354991581248153404415951547428891991238972037536415076924024168353834884913528826985560088674258604599777805802498036017637545440149465786194266995027324188512725627047570164677315736790907682649901233813996528301701760742948378745708050599304416640259922858468424032124485626078816364598154201971467947368883672817585018170152551540618161204893708321540556610015348934185264403379802438161557083403963813191594328014847624642978649116255768316765797068694880637705931728809853629757604805846518893852609101433881901956889989361733823970440752159256754864783206223377742232657546092206527991972451428007113111079836921707454572835811410863505509058872437673576707167032996907084611662860538112657032695775952007437375539178845635118711125933991132708597104565477551516586494054009937435859240758546837340073480937544072436009791321131528811575427849540270440111598097147790392869104772888646932002852759127886006852471678810246637021910360818518999303623965940093516403284309700327983905946176124693186312263555244493011561645549450882252022927808231955970060259820018002248797856912426967493556723152185005513143628453852490214330277631475698838662602800284815433644002713843027673055984003008060702651966090422853436708737109036710457165985162500434825303228667357893249996709986748593838988658085944943101511224905137661743584120794403761926967664272024139526064220511672489768079165994773941151039498211792638653870216500872929879083998478032518679382972606783407602076506791705565581385490270517939406204435941191125648273889755383636641307823698068530931550842161749907451728930062766367500738112396793904166942710991373184686405133017771552903602440915947611442310255185916866474011143134423090970623482686464324034473669650287396158655431234895356700592703314682113835451780751200306526004599737449453798907360478370393059819437816012392444708596383085211993977461331038183683161140839751548997016966017433790412896444028699078666383983695991636983695219678117683934486072522340335986629464543344428200135373062218818724716451491920545511290645073414623263442678853331565884345602749691369495826075769508804564082151242517115012425015472613030216795430446276168343220285211117828440463970651267799443418962538676496299455801950196673245653691355135736220873454179886305219375704324843716328398571994215261001614837639246891052228174467534553790294588514872859903687456732234218042997452454687068125855456607890473736309762426740704034826493413839757259321867142282478836550456777604337478186019770292792264752977612286163922391101208039358822030164593264818079642522145828033361340374316006206530587478899233742457676153550578698750879790132622471496470373542505120244088967241369965905028060698356699951863425581084543573300420016552504156192990952820788893369476520062122902542844488711629469756667284745019727831789701380139252699401891801992590111227193367416405098100530068471342491381606771440366602203664067970961879451711992840919790950787125371704737574280406504340951620993336085025933715929082684497055744459427571009529368782034165914399118299596740338267652268825758460419141030816770277726897172381080364987891310873993089002440810850432519854295198589253175734064795488119356491772287070258943906246820455403912552127256327484597321022552003225663602433974259557111687463428921187664520839965069586453799742607940065613467023454373530787879219735955910645697480998755408691675940231372087784713709719895513276049482125363582303030919253587490499762186467642641028072481483577147478437245514623296103318903277474960780605197003572690203394499875878140776138011081249206394974813114063426357025378882663802262298423222457106152399140577634746629543791076661851441173095556514425858103795709721077444529864545579091636094048152760706368271920256376423374482600467341584214810041094049774391808488516735824343932849926909281309831783292174616795876282807493550758545521868652134966217472385655384838412364144422343984098731289289449766950129735085165940538733242926156771929170215328490554993428344839663840570732889040464182483308197917530568966573084867050335526353041555531911288415607475755807856622548410658569771034258329392257908362749866529810086713845326895349040038349524531068205255562707384955933901960485139824832872496564812426129756254761222181141638126690073801050139481555470925664321380465520095605267691524612172992599220591242539471610240282652027595310364737245138684185262987153579604089257960286131107895239742363390959341692047387715626811132566060197469226692408988708320547989348810379993047532552938646921481092397016398527511049748221731738269042462381462549333967802117853813116467961866232488027461595554544004340655058549052787717885264564304408812696405559926411791053024648361871593065009390995417318433426343462656751081388957158015715849953479620395999103599828282353838872635888333269434820203423558971744268033216343472105656910842911719793450263247187525320814502591022796571292781418832765113903626744905182883797852830820672250886417091063648249998564845525825465453904628478852231528801927077395175476027117842144180840219271800239163230698465663660296789460144708936538145015475266131346212011470499924620985069060933242820489666314839599944359985035765769198563800077524298311598694239703729306898562375711418767011911154117731824158065751584855802357800576713445095516164829323027629113932322574786658910521427121608712352873863932547267279184715325122965196057035849661917946146643697575929871792391103062798087248916562836058659472858562332102370344946966183811866488399037280403544757504987905638322830121216447968093831486090646107381262770680732741087993281888732184719455760114623676277902005544507697274795277649474332166398325534509572013797848387542257143266011947406630456809627173819705958383268230466687920410338574886240338426169402735224230008851324382497207038295161030831755691299267693158261926993214368861113420030938800899838806570164716682226889815641667430584855511516011161459807693902799714914485998786042585517159803157372923059252059684282967529420404827660360896212857991269681419373324329565601742373472616568406259694719801570365958597224691430835506366654882979833097779477441782247911409978238596066366219904733904526187294199303054820819576260455896574813088419376021647430622043170816300773513150561196220217495710257242529078011861790143702835996573225109763208951735111462049148733789687977212806183201487313425154937643909887182109103954596069900878191114718042873697628588113033778752816094911496190771365154192559440618773071405614260278537536473080569541343855233467543365533293446251490149864727631469114851338869964794789221684207787746001360779043485697314759057490394907411428565925070842292027202654164306534343590454385755691352850123087400428610137682962158191659935300143495891922015500337176032350702593519016474707464588808939982372861230961531002237326656637865661558747544081243525758683136672920741366622477957521226090995781670369348307983916579827480995753546683351965637655859586983749392593635768239892015035951014362602238480336321975017069194045841872985558325069747922452262343876101618596589447922922143621249315161586396140590318655450047893489074725426029677286616413207059919674856321362322357822712961752715612430155035986340089371491729084676088662206706678826333494038835083643961671057261106498348525767346316463960279466432623504635993674224603738736993198858510478130935351174287839496688884537504477422790962116791074628496881002380823990966471855337518520813833108667906785402697665100179646973737599443692715664607842594298053878924289375120671195712287221291948482375659530719267395235903265739912108796947009899124446245772998945589365189224198969175989469843277598615457624772962581781200943908129142511110514274796146575942943651411861369583522864624530133940870329047364779010933036548376308965616225579045739814379060692462974328343075858477329621560273504350991130801941374870707922625710567019006603870574654084260854630262200277728109932286657653001405459298820514012205697235286140032283558191678084598145905643051552665285726783467862401450293491384147693372337353020425968900752409249148276117211568293105346404288616036890747747617822866103640625812855506834735627097846657581989894547624178417616271608761153109367250796389151012975182081230597100361904570287486205058973174037884330725368056826697186073611327279625258720546447761540406407392767202877378812713655511211070541676921209037652828734727046227642965664806642775352761953596547948674732288193226720131845854673000796194543874582542430855029700234220856172325168729071603386522190252515156666812380686654308674414883386186430697141702997349543041638007982368091450454847033639970055296637420827127949270206972501451589817882821927880022305095950024292459349781985125886505070106214588167558910433464177190411454893839682515304116118359519324590791309642453331822980828367798727963926348480219689753852495923862249139967684094620267573627102630339804201845187194515641049017889588679643367651706641467273485136258739188172306680558635614082551798469580336473880584209619802826500958010762895392460869318131438247182110034834206735170164031199511440355291957874583922160969229987508286149053426155005765836296206864554664755115398662886003749769771575731146641741417222941115245720154167877761031325144616211733500887379863967693143077613531620689611463178886634830232834595662199736259106034505114524367070446358748000526691998364111499615671066423212192351692636004553708294937283283575519210108063078778150616549183536788026041089435836007184436008494566309701973515619791087361247445743200896234065998958631319602488964720668458314269723548293049097308537054806041948912389856597067330684899817647109935655607596676128312415179616739103741861162438088910045191270684535601257698631727363718890502910988607209373383144709987579079025688818524769459899473548273679025835916810440904959459245665119275973270940820332715051080312412303143626970584535949243895531924468739521749294905822891208012126910300819140984043266452989920450095659499282231200654567184025064502657492098159266995396328104344813011028098929301631315014361930234617749780961238541822520911961487861082471149792005135393140154668716105431509622055159353429750702291422138141773223127479809059183097773457635295245083857044724699129014520813143704313825294375282608838444445273346228875250502236937789480686418359456489720163465978035109256029188066895678557440410166403593614183287737898990046092802088998022461765151308614835118671274764222044131837521137128212495787518193234267377150125958172335908389170216930125805443103449847702524850787566979673213220586749874040066442560395690724133442296559197476211828054177048139526930377901164002100890425078747910176937664736960851817502469576756101964992688561466390995652500513403904765364867741540212993400375178202541802725430520238366103113852906936853395387599796778341086686632482466534622467270095136126809683613611968023642082492432188791595616812796789297346907899414795017994931364389301311827035112503351988978030566638555059393062250024624886769921139250801178693195958123935156041718656128807116045173770673825790269321559639255948502055115829261292545206598516966272735351525659785215349293114341198667962486720674085917539518801858279182739937094590113665377904232153108025219180232977990771958786881532502047441105786606635824983548686324180755620441444879419602353200329014309902821512369180347224821181189581571763682165046228096536690684237745156438458094441695421161787096475414996138533908562122346707626230871530420240600376263404546913541581193414070035972092877328929714955775239951678967082070418607698268984357455328811954919832174993272857598984949674483864896375425844417534113415880908368481876211705194792231779792961148200550568315644532330332370104678385270698638565870037597407031565644087054036912869006422107728852955573052208251136837891884091256280554527567397692075937811196417562650064591921493143863678325085996186921108778076307509461278501281406715392935543041651017005133786876535474550762016284676824717548360407317507807871420213103652914575819554193506320381033513944986876168939405877889501715638581053690046630391765209369790770994517619055716807811069425858976480492301230480627061372152202620130197197195216704089019782655424520773307418430237642968427076191899422426713043119264290633084115180070146662704015876377887113282034724711147208511393747492737462846308396063263570936238226138857874451621730058783948928915748157445849139406244131523596865578043646601345889668693475655145004483532362599738135791445477994510852601134290973923502376204167954956429441043414433489609635148631442561239646594206285692672492834838982102604287058051731494654907899963637403665455691858383891708155825011938026614983577893555785595865820376646363349948708599552244984547037992221468137947001133292928336669690185204950325081160805317834987715507825966708212014338062943941028556924609539879454546906389936576555048520640470400092557429022757157882700543769237107670757541931184843459250081793848940940946688901936994639344548435156682861594488689055075712653031567909534720861902497456985584409565067579760529688897359844339723219605050984683018305067048706739930889603254873058519461480879473158733573493788030226504751454655381402300625156581810717532095928858373779190778199673935652364815846555293593765442017626924327450018742082432433952788295719308606234036333114915849428943184523158381537631124814246881125892709879475630306303784149632849729136111341857720880380410562389539424983077931122344323380304239932882091647892522201480997506101182878815587656110959885483881912914282057665236682320463991222421213719074009502561628054345162696459815451346214591317946106782595339823119337218632902872130707159469990326008678973077697621545840505107459723760923340467433486949198910527628861124530083790297216620340908795287617220282410777081923620048250582346948610048375610158696204066632659581469535908799608865601767622358875648387138385567949922626279253750503876742878956585500719747828467982020497150960592645880463547869594156781975625462913649167585665510081719995370216651985583870458040304959124472252829222249912128356138350272155479589886931456054394847025769229032949765713836780829182350188637693251727577618940245877991200270634222937597317258109229208274728499045550253733603787365174589704471489835647842185165199870288304301061995155397822157314256545046382801021694235322792356822972075390579269689893852199589207326199767956314537426175119083340950100180123833446608513055555622024510932560528528810480341622488586022743863867163783779854649904770919113872592793579386694970364679079009839157030660746188468181907309013207516825467618829353767284374764304091106277898882411962102150732394647720927906271845139299050549207296278457253151331960870374376411668956939718307247156160652128082020214993549889714288319427120134901114427637960652703261148807052631774306445001130565454476308300590007077229311473023604098245689142438192561582815957333902118393896524754869633437222258927787615129898117351871043519543783032054541895637619921357305714072409486612369431764174370234833235897719092684920134764792078723912070950315079455856130723987457005512809838144343031836715301857977224381480776494019464978553993805067515597316718139588900003009504400012793361848351820469831563223331200639374764287034754810222487646333458973315714088896397109560398583935007999086489412354436656200795061551626473586085387275167900147823890873865436222402652375981809911458974973923760670821045445532387768405595597265407224282380776482599757527859134543165201737231553872618271593052398083697047239543930947796352106043712856200703351504665085262669772354150240406170720652304392026853540123668397335018001524542057144066128006074270977130549540268661908620229471919443163702173261747002062799185588374917006775812225190765702459175173459580018304713392155083501217404229172383300852207031179584882227974096203556546454233701695531856006677916065894308527607716818552035561326850383630774552639754324355557751696784936079535317935418658957489998731421702040832891095686473045747347576383057458601912200781921672866279388673910095750867094159904910586019329014004986652071728272353877327961019401323875060684199547989113917392711378648272049585936926131590514433272732091345863749603517370501052360872171572670967058723017523489525867300600537997488418683752428311471310391369791290704754028425183569699177506305836552240266282860328394793558694925673983268743908011183770277546290519201180003684617847396142167943895503821613306063865542210524943191450355521512771330817841853284655737281498252359093099566853027444336139443201930490102880497860081345378195591885041052535206370815305165506131565565635327740077196734022775996303394514329700499240005325774064034230251292269410997512082189885047373339728329216283470817255854935657301547703670682164880993153448960212851407408178083712387233117966795220008909156235066060693698228666962813447593401790483845926035650170746522656802921734971534745061211882708401579952413214796015285382846679068500215294725288765617346486059443730866108204743294449420447560485017715986908837887018098299720707019712985189876784880810293338502096049447528828439573841622294482446199084428560512398130537676819215229975476967923933037223682029715968793067783604944252650706957504859790244058374077462985042190478316196758040327749805371638049043643648666224363822412299496341696425623673761389365190781661284676665189229885312311871834435459184177084223135963561521054051341299434495099364348329208055374689360782551440006780068781450693144143554213432171226645017512646491431247721439978089964892612155692006205559470303040575448674683800774150558526137919786617069655092959018514752413085472950188717236000768258249609662036898182077059077901850750829864023735801794533645650382632309398743536752406727373838025309660967843743404779518423154757736252720301666281421201695120314889871414446713337136717565668527068870914345750305821467903222122669577837753081103192502209616896304876234935595873611549371527941429164443077144303181360845729207758292184329617500279537065975592644458784381675695451986122471951686538458545025244015461325907592320413828484127484084216617491944147671345669780936243679119176918269010168101848146762481229770079469015581551670864313334036143313852655378189561055586107533231656947049340022754677618673795823503100025075317331371301023897901953046567168083251823901810686900222743038068458865050636791744705961905205915506392722635999187551151663335043128512305875656956107705442228782605779010036296111577160361564702769088159190043140071389524253616729811219152870519586310510534353440656412455518288249302844902891541441756882687830369682874067385194628227662001998052724927934248077033560823935023948184575497347830166528805529984293932668524127657583106192019152308424587860294140947826236781376841646693533869307797460723542895254693404725607078678122577385857919720239562175861920491525690266332637500952971514458187744615343269004703289057069175854793651510801634751736556550706068443560168507325695109645417275774669858037833702748224449515660188696334047935704896795847560367533106215399779954793146122270366987831120747044679175975435138856087657566382974134603124899036857461289371090098758810662226870939832483545893623328896487772346187319491054027150718589418868407074042193863199860199219607359301537182648675948784677143785176050213606275550012992314082457588328273965195410264838143807923799985173360326816322871040330029274608384535621230151838969816274362195629631948348848566219757486159801128974701718629717599664698179663622243691115087538934935074561897715312323646123200894464269149878194948569675674614480239082380687035737449860504261501069787321348909790039635887789510204695170465975331813196474439722197033825327329067457200909584593937893880699298089920277248353602593045554069019486087127568072078722467716917754348222077987866687778986763540122806462506622430085808492333299719707819961342600765242400078196889361327128294622832752506996397308681946292600425401318245768596873834118672139988916699830194164670671297482445265392338956859904168707410895691885695164999555194853288650909870171794454258686226203377957258050639942503310200612885591628624917858955702363321776974874142176280238262311520612596946240961660595744698705536562219173305112134193749619429193577919521906568875872200235107946249139257089144621246463894901253622158942634947529956757805205937944257677288323273078563342303918025332600802940159218491517226343193763210007555089552000223653464356644337464093485007180427277941721921242201715160488923860871041424343473714217629982881795287160438656891192052218291791508405846993607107027360316476301889698321427932599485729760384165414784985008115952755214096651202426472004772921068337720270976871153316178681821339058407967216283515260834550601258200871575839796893268350770612868473098195848961724466539316763604144858134087593690762670043332420648213719892802573167662363738131880744785593253482802628316328232513033599409246408244532094279384460647873060867363484724930596329369572322570278530783873938878152088668014020386785592350189473189973353052886577884437608954731500971950374234043677049278285657658879059536599653383422173263754473844837357021865382507701162838423690700827434109932990462432854995213498740279130155413269559351964915023818851503215426610674709344207555872249003173313714521275392350825590882941993587633572965474277026929961453915386671853565035863108085636931018325726436418868133143286902429162349938825460103897047658267528061085154052199760556843873875427062866286764262048863353496440725210642957239847011062519058284577202710857093449175078697449499339348353706341061923144432711510980431878156902995415141407810276445247897785388703019454692357160746447990174570823127802326639131660066613591931876591186501341596908033220645600007487098133568168974996782746923045922652899269220770804550302411468731361525262281769031217908677919444667405804835774910861122290908081249489735491326732934498421265865563624727637089352868969285785647015344450590837931977614468649843354078576302693297487798387867328372217225641624489128759914662314257006518482715513569192120801029989504305562701005906784466132706651038070514853593459354411299795832213746089128810805227435248476345066777062373925649017763623671994330887162184634138096675120898362488438267209773784753855797866653233831199679019971077325683225995486750236127833086114918122098585592237350819688876783274713927321607852798543123416423695580746358843120756631478557853383404118943301656382374292258751288583976459240828026100058703328331155801779431607407616651464450432283752415854572642080939174078563120734545576666498885893691317646516117009754596982913559118827491881142918333631719639341698405367097090294461462844892310689315357480495717288772899092093883712169881618600150937718610854854946475553802624962589861666591222429318425229608247862194435590119487979816446374363942628502801603619943838825976179403688389035429312800204900624113213934332963189760069047515887870382565488098688196627215088995705738620436773261342462328460502025927192183001201069101412420124570151143334015936193041559051132232527488608427534322722947393592213740252840144767502805347144742317375275856925011225459003355862951770850390230403583545260896207545937278231660885926337693299604892159797490520138032098132691295655964571439996172347272652168662629731669745497778421204332156622051594114700381261375428517407687194967554582633997637747228779786374211397147050790313178403236532280981114694621939810420592545692228109087649547423338900686372285659616527935515794586586902295733224116416672491883463651680799197832808072383082024425225785814697910988405942131315693123300600961009940413567093359077980630726480883799399429224696126978584085862300064860253060220647968693309361834133776545364946403201771880336456915041593210136708507902608050937391166928282690501365962175582186300704909730731412859820792314122957349353287266245353684837475659735624509249485838097053816770430691927632046220184091008083523423438437466210467553126989610546063176093169424982782529200051887966610402698305102700317032531125451555102202661498904091674011132783997836994671451109362960615602325805915019577525047114718283342128407587863998099673628644339430616220126122951260209814349970889174438433369206634556641606427380895329719930291769548605030619621139202282482323911901405716252466829081588438125240697698585998081207639512327794595155688162581222514277377946743917333570726372500354319072818489625410517779559358799301779840032359104524523217013885266928540842665012664058824966179138273285286415854692394022207265370308444191564229906602437604393159367372730276278069275591829746295791546305674207172689745558280975865512348396610613293162204597347629012247855034371655485016808860959969939257590564956025728026086682297501229366718105496157029210319875572287218752414145830250867189932104421696137889916371553104609510170626749735677092164510655627708560658183302089553653664122495792336384994030020310930031716205406909620187524442782374671493653032676096961656407839510246452598212746803519808529466890268628909505848952822050143923763927248934742620542975173806821251250654767913688450399781136828100406874686095530354860002648653285986778982683116041163376245254931966973339208109488272001808674944098628918511919871383625500064657424132778568639927705538780051273421416411555070360608924012936433820769097957171296184418259019024003760846715900049001547350593245184425787540362143816354764351263552410818964868843572439437833968775026747543160139186210282978765512596841524028187728252541446683436576112295691240061909498606051570080723588001182617309940443187887588060282374460438738779291913275425728264963695323706176423857260007773056205074407482428499460490144650202211408047696985965227764894076008065399370224651714056683420157790496773312363024512469961790741617544699002312640499929658348422992225016671334942396461400831613878305214659284430685659199190095519831588901712293715815217423126420862776824895726109654780863803117101892925906678882680182937931756347859653059750262239191435931835608791000714333657476801657090294473315996885369390713441277849727552391228688704438848800687256636964685956281863429512100791509925879358815555375554381167886245185015098863355537622909857008459489716344170642127095596565476877463455592897207745699062811191508477413365514667294177663286166628440221046660753974210717500147186266384776094659375730377111613250683399864841201723914153330249886443093182076614281697625001344328279575453993961906559162572634659056473887282716141766904487191501535377243761107230866167193687319581838287042257620588569159563951789665910123094326821701405434601400719419829624712241861824990045213453420632305320728111062625967932687338904019558878177200496732562493716439785849290185672954734452995393578995505990274347212223625068146588329120603809892603782995430678698366507232047061580177697677799093798437751996073547042597707635063667655455849447069661688996068037461761016863110606912286777986190753231726889603183429836416193240480506448303915318967018529461793878797430575340845072257570713353943956583741497315343524376503927407291661849252961657574117783208480382001620027994925828864606533172852155129977485269047244626268608007424806137688961641586652798931002595038698819110362093086498620251419806483046141253247882012807579019333490340297267049410046649784152512152842374738548779066487446686519010357684543721891772129606513738708240557624224218680083904606852726033613228159420437548207298865374998492855479095522840206953231453871394963039291206634598547708640807671640644319089142751423113914490823830317786562453213877878582620787591989815551384902689056893609848732454662208436585894251697879727134913244736519488125583160083453199585192893271616873236266157097326341548900590306663810613049326642325675730747022710397131540388313377333812914029325000181508866924600116810264212949691445344953419120016232760438789318440596026035275857527310660725968238510285413995567932239323006728203335020375549854962411039061136559375916967269120834878626751701747749882840979141910324756758328446880332831468896100971539082851285545376298673915935040122914321161915368886843706414952125743850767091605577467043973905720916343640177979169415234586504201369506454269848553123549784107798396272633798668563072878291760143719847274045769009507335369332725103221594415154345536373945085906946307500450888524030181704084559621072441571216563101783942715195727266309927564000787503738465858375689359274893260564061110391731011222303959003118876358050614117931405733189971453054846005486222228277081255433294266755497780975702595208761480394434136781026892121739173375584809388979836175607430922040461627272583759035153557655837363031913242454536569078553314866027500448897185869200573687402947110812211426218955288012743358638456665908383701758905274238261928735904249416125298656952130055354432314952242239608949394699924337514264419323147524981151345295621378140575413188735244148652346677493652141265383283669334459745056282218117481384867626711847254959609499957814452965941464870082155674117124286814597597586454293307646790529608676520099661419841377782245136193985854055843573467593845961882464036148620183301443944569804045964811268280335591274693380035556080188352757415869476789655958377590662342755565779669408189132598917354814052702684813017379020824700176483422691581153813632096735571395898570932327285479895020085870443399698357759692066723993575305868904510747109525694829228112913972860766953712258804347841278916719337249794084731664365189571897259998773463658856333474951753559459500299125338232864299430553914123690260466527968796178073087767082721531566598012727744484846667758698999757011979779874945399066902924683583399103820515108089175232405466315202500006714123024623574364324732938339696855036144838201236313398211468632962414481729301567513367727755162470258392199646706741127101364735216619103248479159046394915402549808215864837122497924244707172644974064231872846676593363531200158061941876554850742190208881701276658170051452384709108797966852677341819405685828894984063285128983437947176123169972593684338072212312348656636490641789432630450748974811928714883058266912953570778917250652249772468724943722811930678787262262464325332532118372846115996330746235888912075116795645657234614956014533984498394535327288547869376792577561162684187029605897449366115400449751068205823579768575428528170068956438891032349983936493181224106854414886898780438755560697968272298603463358155564102101472536073360589309616888538659446819183495956697563830723432573733094082548921280955369749924745624417974275196181083428031501587482441570458122919932200706651531425619550338232859590223422219826626000900403492346580255666018022705626755304853931797618689793734866677286040025344324847360796480485216571368134750726600392894180471862179403259962092377689601146289937329288408797293522205681088858116771979247668112480567049386537727173583781220026569799174431173415523556835521932095575230723948354083938210239390256695927523269050737463561763594583662345626324031033619569596702821544473301977078577870237177480636165422806227490487699872704997117376346564050380215034932768302182843549542483608534336855679621368101892831562663423217262545655894896810174486767797735515959692073435967868891021005866541042505315717800829566683213394768586933334136199107266368980251731531475007126991842423275512518343115501826101184828495584376227689107596561113761208590238944463536962518684363730038786684532288104450731289052581611042131148676484961929437981392345321340955127159041162508636706372552980947658505212844361980867302995382263172479337088702641454070800818996105769892507401703597294516936242700499423841933471793206868440899118497584422471912898306176475713059499908872924827809546802466114281946467373633242455617885282471794917351763413743647063697189712792292286613608230887657783762673982362484430198455491014527465833365796231582118530013584163912603258264173984967860642987443299592914513180455624818113421401929856280618635954813371623107375907211333599499953825398701691279137243537511843018420562198321314674530197548726077668353850233629727511625885582963811615506371468678089137668246076940427547788214883069802532327146365871018770896776907740065355856573245369689534583299087336230985213638374427535722620892946784028997324071596860350369342328379083277013148150394258533271493897753562069635578191437556845541557860788474904822285848561667515809206707790528768546953826546301217163482960323384852501983801536078234863442736973147185249518679767908099902842590234408784386602811342632880877817492504493350752414693832379632442019804974270286120834213407512241852510212932987942218681944877242188181123889251881528757423265902195351129703205560053010313056218347511205621712749728214164792923122004592451055523745635124958728275368636484308479498176877584917913557197508868764733642633781755766156123805923011811449353852715368116674232405479753119113394652063443796873940094786285452292742727445909833672576499086598700172812234020296733841286008866154044091371420617320719294413938671065583075082621879226142667995424646795184977038834875722086730165433483915265817554689762936207170637386508443195037665185379636061896477498314181075323349058310607630480360265911984153077453113131194481519851101081602480030618758536598279043529020878511916927473296122668183446478281969651777808123430406825817870432331244356919365016047820430543050669405651136357114186970239967329187747738894680481695500573741259138079034676896714063141050719855774094434034478943384509483735143008027013159589474646513130217671401884577916769283867018632773025009741705052370068107136259839227562528267049589563446044636027702105759613359954881200476672761533495927494213570607881720357359149435190680773582963615873804286176631910070875270001242056753829728137700507558133207767683172348387407286377602354691417766829915182388923729532145669105456138550877698770380592326250064361223208301992324396250901848237853625800478855653029706603159015685775166104096913806708798515297908361050135134337010538079861437240692782195561441061001433411647044643945913642938460541785612562369676030730919542345199602426444625582143356187558505568362750806617665435590456792865440124537529648138761568740377333364112446941974313639955289408012698645961032622651393232853261306266681079377700485283855281341368788152295451477741542464298886387309698584705744413868651006949782128736420343490810758503508330274271379040515339410490541615270258333237066468533851680512110443769714522536870266636578430026595862784246370394846740141477009819037347647317799436326082202824353655677579402648591747975729652622152681426865523469705491502842575698277336400458248680441080743918914238685812445352024745704348859598593652144717317985061971938160898857229391814648577151404239002055572099726727424105231762196799862852763744960067155708476078293532013497663266502756354020581053555699207461914726799049692769092884516970631669447862576300798744188076536595561889885529428060432676078210058771900200313355777245696215766872960577657503144326343021626010968973065075052130933343716391902332879908338506721741622554277091542566419883711786127338447342377786027169894418194563750835405414013342514727424362487412333613428242204374756796617853311389848694878970626001279587964039380478423223425135944934411008049162914585032724958450447175695146473911331195741692036127845524142756761367957717018364615177216982091868328807675763079132735703380363820842646572985080837918187142865755137992353994630963567307871962067110716849022632135078605850282067462761901204701492323912213209821715510986488164813808366879119504505840349068394494509249941689027639962159428709755746301837913401615815428029322748413871358499628428102734078923756538079797634706777959802595989235005189079774928045545432901715234884001625292195869475295489166764764286990735732612953183763044274751521599094366595270994855448990988775015222821332009751799575941488067667415938339995823429954634009771390258238934927088195831590057817270007241506635354452526240043603270836796218400992461314296656376040296643573171627785823775612134721536224870378300695722606239113123408070327357395624276978212945316880802895830547800322000366894847019703963119748293366922734632752540035746072651425934569641322105441034768337113851749257616716363548208014893178267549403517950640839097357337412350301141968879739471103904099876920390276644311607186774211754785932832176630160948937554527194913401526795742079528190124401808065502693265188320380845507589990671641828514099711559088419833364629210387570582431050710253563081796429272983740862814048908076879903107268511114964780200140268429896810441073639617342132241314322295206745964805225924072066078353558525134496524146374840155079914406209530062091067861789200266428712293351426807195831865299594500941088223353390572441254924408445410037072903605812064354083166443768666184759568034971819566982579849259661512103325342205424230120461225950893711575732503722498334440962034370951545403542547936059261958609486218802033811325279584503568694406423590993044711524525226949109721780080669832702479444948113474289570510952026617845363873844799511298420251698614365407171883257470087417130317584513329217992226714598158313939480350743289989401874686786660532831269420806473302326766560164239226016846413660195834173697674452086232325314230480679028662315466047227131880957278074312036393089540749852818709123166317876399558561326577926400675031415109323731090058815548437737689524774010539137868841126269763984642244668510856392222249243492436984361565925291567777368767850407605116708179278791107717407482258978145629285564729125023021493298348896140895024648636616143424611693461450475593557721820695215557785811731806393545356348125033611950723707111600274617609393685997685206420145895448113402321353001686637661352306828440645423602901569198707402374310446327595780034236492465127336034126757213918005827537018336520243058544588294807757007144793543581130739952786019050320038296757774898097424171984590372836627828565772061679314076070498547460270653123967641365413386272450559875534864988550161136314378079290708463996824306839555119342352370145723284896370088485249319785706474486539353706436076944196343973977553831797857799859875392148524455410746825165995244070637544588247098587175011960322836817401942737680820941794775587197257745196808988137026671813646324683807620233220793127093627163875034490692186909713964420070285964941351477499656780558200426247626391997528006973708735379259717816978551495375510126790022882730882390081349006974992769619709718096244602687133150575838827728153072772612643100485863127078067028638002189779064556968418235440697802681782923601494397568666221092449916301989556761086719762281156321569425526054682519088186471622555664166546263266976967703087277113858977898240105794678412381463927117134048751798523458347463094051587165465449448814861570966217757854991333813913115091924418653199168071884945199329988786447625956502386262965614127977639287571505328066845545415484530503804124816826019338211354714002620406939993086844700689668564332135902868696752047692065811535288199105270293742412474132161536426201983600286890577145346936235749716692391671322774832193600718468067611170461537855703980978869346972144933401069980835817785907794445246866720657175576010676760815371283605317005551529017356644619823542874146244826797447941118986608159379411996038008585301115974875238722050164010047218227043742338412492881046989068985336201007119751192123159525103717123080629635722538222959803395579615002696696868476494067497952529464746224492598357600424920189863501157470044727648298785907932444089595737167435324438955638063574933667650654160206488977300509853197897486884248502053667555357335170750278176890319348785690131979717369109709842835390986636157456841499039886816134692408816812354485646277607139439754890576565734661884620715512593749150112484578373015728236148996322523010316457671842183459418289206645658272360326539166388377999411327293399173985305686508283855633573293329474387170355448797794481027495280887492297344737739743989058779415809917147345671288252927843811668456290724273024448959094992215840475325379943788859900460626836440555641892409906723487699267392509868087179247718495807625293002138466212462241232692428646230225817292151068441846287356281745813118636445861810630264073020959935072429817108279745530717289707064071362812503976632187384325359784134190460026132121252424077164050161447546186507218314389372099753708382897602605738283222933504192263645578432727303732903332804439385406860829976076854553559000783186300701841287772899313336804239627195963634179861603851586144538104479070062944239052686517088564927391732866039814969535546159227747309164370975669019948209323653803283588010858350378098919093394522316385939160615977098323091097442381581434508665853454032613754245190330595624219683901740293239905932230539209381971321194973079050122452933154018784032970476375879904853998949054143839680024528505780885304696875011682227347298311754121907160806108386049982497973569412737664892629374719366999278326511580298778592673370065551750589017295365241620988006349037766616943470323232225310254309193048593921201599765829998026441535852441384539333197530083647853646894878184675575352612274725742622504766047927616610858022711494543649303982088359193114468141965756137087397351692566957421687403929040222823288615844499058153979227371023451960420350758721248153697014917678413563430472745824582878168694598290080363984958129794288315669816910595315713608004668136494476979198841990694466900791274263101875985749524991821671028404219446288340586958509360509470489333566391617675736795070047574932631609904272336268378437828223157035740121934403465026918959320777857427244367290204217494522783832767077278141674650947804122809556153067185849785249200382627661507256270354144590205675353059405388835601086022511886240564187627776473174228958809926509883587711181366926260675689620678770549482646804423440722714939645676155954869101001482512681932255119067539441437917749815084232397501417723774739252677804873455359460006370234685848072371806693491925549521714501755720043654307643207742851186959762645700594784674781937055005444047182402445335257819552086079096370378667168083896762467081898999403313577340963556050609401874794666515062797652358428987316770099622693180151845587437133550735370615786532948605887205733899181488872457067207159174857913784773546363815601675649181916391270678486362871467853191835168947992816806080081073505627998597579198451111964247708942552546839324933854112353670322734651500539008160599499623174566716471501087502142721671444546026536625163421152950662570404110394442690787621913814214218842882671802580866390372541491831309442479807174917268529938327442108459673141636666177230866940548808649217897719001630860318381384556413124461991442412407721493567076791727746272148057247150574172209800301986051119911776917531739683339121904471471797172243538121867918523071139942328214848773271102975964653887363873255070386692377833266681563883172862670282662029669384183585753059178735871506295499890768153112070018279423173493743918996102280720126738240056469802656361284595037895506985330136247997918801049182978634118009794082859811119366974180342999400863237595238415208376635848646360569337904968640908985402728187437395487225059955805663808902276023991620500655969553354963357743891925590090231799151879488065227627038041148707996598008087004212108543414488549651689596028559069963691207176710806520927228403470714714207951677814596165590478249336152934059378827228838468982432372789096824573170159420485852820373204756502785992243764437156890568590115678161301350377003206546417144843887541413708181478916257627558782165232977342616617289574095651302131227567071021313749537310014029387183122762958267698822364347053442859707974769852285438510560757837765012211320169238245094586441031533443362801013419342205780739222768275666213099528727517849939260476954509925637750635651362298598502467181934529578228645245433092380102551380156065311877966123475048051348165487404487281828171827958575614171477041764097374533043912603265990992236518311923512241463431679623808838028188932377934655400370289272637806946208926473011498860438950545588252919625639878961904869617411910155692165138035223823116780938247379192195052235319763220849433113507817511600347296004106360102130373488305809188662686359416598083821513933271538549232886085345201306348432858643125191806931425118763184328599751204937474962721696059393818061857831262428400341778141327340443669915611451867539674409095037652280163411533073664315892312436000382013065412456502056761405545052163701881981304544352475815753121643018113701391659202107786319850322983205650086543800930921665481827005756789008195776103300180242013742480404571189279398386718030045916200944223159133647343846511798571946500423861981387702729898960197493157599560845308688363629567253703172625727225824573684443436180024348798375052364664956499763121419992555563024593923162031724078255436035936504445661696387092577117785005660802903515359155482724839373560981844962807009324830928940447934602507437421699630780506074612274613306430641273041336069804315553634400100467657010954948865233246157412443505302983493354494236316556382953389975682918062722105912993922986254811504399327939390388820989494778192639801225148629149271733419568868435658168528480022069563721514412130539630697031877778804562293517640914478306657034899680238814652306284729802973697426075577870013152234166849003812362724607720321017146590298985652304719785002628780999600750965298250305013451267600127277528182222955042512279860608768355500077346367355372199468310035262523679515809885766646364205583316569124689201478811122283628693504739642395442412200981771074598993840079732934734468360906480665552208718417615611497583702986313003907745208986329469051560690897415108571097350427744416665272845381062427020313400674003172123080441237910530847560109471548013526153331441433326228334480446059620584394430574341426239564601427744128407042446048589010655816655896349951130611946894230652120520468780341583230678418458008652215790830323088866716852474114145859274575611491427307074372952234514784029023714009790427893255094083808546967815641066265711031840240217591062249169571154735132772588541529491392817163953482731295154084367771773982609406287127209220180538986333425107959044093895403098515579144899247724969201987203636125734768101066705387795015758522427547284088320385675934169964169448157608609766712942425294154784782172358190955038937196634259242369260307143945779958228825140134443551206850004748828302809386627393818793389327258272855371459628164797173829857410856930426081448386126853196927184315630396728380873144643836812979183292456564212209098065571276419305536442429158638274258968103577096649718069872776673704861935610479716110692324055320274037886393277247447771257461944121113523960284720146813653573428063579357840539130283781915544414172576125357913368503108010393449844915785879876005188247682214144780881962890183746789056303957638158860751047168786379465021343802719230115769029338211260300299417192244495986357942690997089239662361283828849620864615733987897036157434217664384045378446807558868700414916763031977937386563119945442998507478503855949900353510492743101917405510206958448360634544608582992008538037657092214691388984410167387643252767231911228156845969155755227235022422197602195642747940027075687174508163912340944931212756922121720809504953725868533799121941398298220863418751879303050029836213469310961760249500193268186095835430510214506305449870273386389011080285569621836132378840397426667642124568745160905833383683051895926622958918045230469167311838299001085710304792857034781194551715463930917214527705857360683008898442645468101351785132898584288191748474928685544781020747684784044644250815976765537609650198466948767913753962728703983579404893284990562619470405837489453024620146344550639757602738949371807443276889749900924039010390698691966176144348331058433605117945445722109803025292602345479945391040487190517075984024391706505825035286884127740035398610804151807590677908044253635663692311928229586149977701121574340783749934560977211237551749437016821105845847098847644504372696627779120398357691101751813693352828919806056213842215966362348072011390412426234085423901842990416658225544009881965548249711143186382167698875805285013116002441968779373982711352480072295610214935388103343029668494394355815544607090021691676791837327200537194277790820499789971255128541114649415011264437698227818232119932527005217821371556777633158871578991720860429332137485034067516618298394573312776183722050916943446101374467901409580440999656657960842231157887999867269481066819462224251329494143828611051166391878906763653164532306682839758609220849982707645008590835632531048962927490002384843553736735292728127417031292865529408707960515221577656757345122752377685589836457687111938465515380524688213666732585876462354902757497221691321840473806702411712851353440046890983975655183484527974554142994307386441843405108765074644196510853607563591776914533455432997091460230551184935795852603706765622182412523884053576807890154368045774979389330986018690704833259527251833003494231428340446373029409478747640557827449292749371052134494219698187946302343703513061183793926500920592042378333463001362547653080642722688786629392057771241659034469436033173524956398257582528225961329400460741522780385230642235885461540639465785107748732194657887512160701834051797576250486962518035678358380674667267086106662777798350262499255385471713373821672343347022935902692068162420404306620912388415297722510805434499293592545531400185679456655653861268264853429363925874211789499059950511392846730303274322952933286970699159248643299777626259564987425348827976488906674151311074913048608354114205573159928522080811584812891499086935579284827467985152333915729708166380582606047127347783118636093620997981793545632434270127815100346424249472177686046753762407668217417209556692116360355662264255241578598770301821926310089675463976751430141084321626366078256704819010829921296933103062761964056754554729515964920457619435916224182408158447710853085491922941612810617548752132620914427430310195656198735344942598647399916016861674328489027064274394817333720070083765657503508213878797806750543532383824048131514918195931502874226319149645742526271203125822763806545837488314888180679006572594651134908229089713261129836069407512058697320741676457506047298726301609045595455525695055784130855946713940860869569148576489425639228908207252954857428957005315689129949252719879825090956461324060852476921149182107245632138732697889674328605290935828223878317486407549441641647075675815602352666918629818109584797239706793166587900218891847310854751972995682240516080559131634949716959995828009562039440002571688835800086473083983566899056047355538837413919216810322388424285928779448077686508821989561470097178429036705991423413865965707951138437212469208511669692211216995126678413343162662399416778174081402030599909371793277496828508394051921421733520934087024956348661582327830090475064228698482302524897316800683281243471452549635040640943785754448055208288269825021620287975107132480341244801461247251025102039800116631648222906801164758568868533218071803891539732966734928397526285432180484834422819049758989517473868975328207389174282055418268745265398911959340481315668089048615495486282643832422746210663276426317114255423643063429814345960241074982011015325149137563965322888923127050037654425688695652649672476898290050744436727248472699414218698872859785492602143745384987218518888784837664655647683660571640224273899323843527820503580636649054192637781658973678286834639019109368128123474161251155463890754031013518064799737966880408425600488868096902207344268302781614643955657389273399749979937515666898673510987917648385898201156244417462479860405166885014415377205504663416286939284272119229221248487120766800076679327487817513560126914344079735403137831744013101604569884108697558622879066140301652521947225535168241518152563977107517392541554047697204951263224508187181687986192186428001128624845007024112911417849870616925405469651401747067814202491763180748553557703998476921752738147230854332854769534414264957647378758109690139866118573667780273358642273328871146727471240215528527262581199302670212780438166956734526463719213344122806296941076747179359301562558483454230733942764740577080397257546392397026403847087816509241005308876305837581092721284229244361433534233053376787725011011376186286665233652523821449366906607489419245059864043581493517880917398338635983102611095357007702850752789506926631184658843773779899564748004614138795749878754971636337192133533990876225752812772545308428637046438614199426409947934099890276962263323426513910053018656583756011471012135243280848700146780777050861212179640444685280061572030583760918947718464165648767923423262118236011153665772701342897317594028846553003807975319118969274211600516912839505691074487032550621308640472410924893404861931594620775682691747815367911961393807378767379603426960766556323510087909625080154104162240749474418603179427586217016024418609810893366578256387429075508248825617306315015403669011507673278105953674389757889024385024978698525665681663290358642737554833688499357882423577489294873121917558399763971736008405348506349354746656104201709189062619649230653548383972383504243922219561648123563208547377811774354335512112677464811795228276338341808879112590264872656557094401711025130559344385007737328296093024183928722314363715584404258304460218972279316388220813311440932579792087518034401480854137260158221800490973297729291515832575879211373190138242390804191336595950753211627729024788974355886560389462329671142895724216655790763590056597816794385660194083841871414330286118444285497699309398067244847689134974631474358033410940219057663618831951426789467689760554346365630530006111529575778152902543552431671756486774344502614994511819926416067277976403314834660812278165601303599550765184119072953890269898767226653104916083023087621749248050158502559968980040045300188950268410688766861380275355706483277713012756163896899788519969884568170374935479708573313812596024487360024610255428702928489035244625703735616334979260550728255441460048418978229417914961741632616814222619428794637160751507569737358832332002341826139059173208512488049224567129142248781035363612383595575100746593324141068322675353413640121933614271869829032059816104762061785094329838876445043916924146539402273833227106875654162881529358841053083854549034628255618854502128203926468288045655548640193687805802051549238598187333847494299034997208922312102707785027675258154942046399100499221866620326798995953953893107465598429417590922495628676703841558463678772449018552213014913375780705429485048191028041678297194150322467264806413694965206266016080413133847415717299631146603028840659834876087323306678209787233906996437667921044553595043402297008447592547676321575159943830727995702331470642345118519266568392352601473203343113276196255850556593318299579379003367217207593395444204555765988578533533366944695164355276988767335342078096185089937892376985712345162135304837764881335128999694042400498679020740314732565484356026008921418159088645679058939324241788970829880152018168084866088629553648370784837469586290202734140308244102566952373121346580576162124835603198904528623562968895064063732262666816767327092728594224663366434251190310620171706025274795149520041703574449239183395726518649303694702018315519190433593573426690422581461938483229641227482220356255260925629176739230653641526660111620908530782678490298156557478147703993857799936889413397666609618791623482429871543406541091754171449055015687692904721803811352378686851368459818830661415208745726945063336700983910032466460725848749671305337890516505436960855459449417852833770115653561893598951949204319546138073802355445655633006061016281159912973189916118052167343822446829746918349752642606933382102396936916438903865868682349709119459064347722902345873346088478283883640484725606466438999615655642884040668000374873603780187204853443987157355927071910064646942043474117136463970625992137970562728331563380655578978047320798775103386107236848928312523925398734879215198321429103893223752177917691970610955526499543580699227917129168528937572228044162420684222067579192994458497997072608117779842199518035881987796071744931415429384199831873013510356547169034834126169910112048259449759903297166145612521557758689235719989932506165456448593498320519612936527305577506172170633093804008031242604245019099382317069424126764380858305130453977497007245748113974710672707330959426824290800485642414669379904424484821003765517535348484709323226693951634863898450643460978356770254140383511024041590070967713805738098235840527494851032477885234769040434595098566340254229351513725254641130340749111088368591183090971356468645165172281903930320361981032545545514936599958810797121548052213571118141090898925595029628074060832316374966698627297573603148705998879443976388125235199966225774263870964703903731228138915620160710461816134689989467961452655332990182976154577762923167512578583359325155779126193320133299745394803283782915929823353386749094603251128854669193636886938049422122021150501132251353489887392013882617125489655753432668017647753263797996437521230022321684862622713956671575019218979781718841565481822465048382983663869504337104900335178057792162005874545525196392639043610587970344615830320592683947973843914556493153966254993602422326962888944837582864675148272044313910236821401213670675828874370477452747904223585281970759619141978323891245032638331730038177026070992521802459301467986766813602818832655173977823338716692301873286253357197435726283155845115996186357241498187132683455783870411213238121827208055330036316145622630310772134329189120945957186739886985815047841233827810794250650908888989744983411933741674758435097660934273459136691695271369700114226967289360157870811587416481939926761739383038641581198773951179595212571611818815237031068594896475116462200151727030745504017287076923325883335054289226891822124183012077783084089691584727465656681248463164886729135117374227374660427133667291580630578323868900891001638886399903383507068559768064281181338008650881277007879414755976684743944596508502012232542719387652109469669417302592235413186003494253216121309730327920849163254714863185309632716739282266790700726839349276384902344164942750738457135404707682813873508914281315017195358835628614202336310148335820201964885903155375061435401196293524992210487216717674118079819449602657784774114186549611016922469922172606234761774158608974794518969651628982007468284320092655106881008730822077525508586631670416257217887882868552025318554309052086604628985324121608469862790850064934204773761317799373114598866251071177099137625276773186393516559711431128795865002688796886511648667574372383716308595216598295968351214369412395657072730555511875525683573249225035299630948965263469584727722532133743823912371345695015339379522690103790114223257269797181659814148906283217739534102723384568977958830986260959376470939527462251303417630866180603450673902091434828091162848818620292815890126815743575897042507750811579523329224501514065789136523988082002081544336542210895364387983238226206726231573103397668631834722218284672637660659209594109882055008056128062377647209131044740580860035231027049688065170394145336490515213191484693205459827223268000758014658723769632360874610205723333231835957359618962750206439806779828177727066789834749516762107983253920150267486371974737556244090021533122341083691410253728705858641006374015822534648294994073737786549685042831732411867036050752861367007218554878661411912124540510203864629214764104911433894949249873154118751211757083626649692665352217260001202483775238365265275065610194964616361062413661774934662903446593650760284302925580946793087013629443001277369482351515912277024046219295066670311442469013992138047195006986343066641515059442719647515515341254257588736007878038029353076042748036538240282534248714679432072752556344552563948718264596878169208603510709725515949572940296756034685411387987887814697977931271283721810294149601130638018563867105251605204548355830690643367050263792543964088565243478401771567303881348847258919892732497080415707875077850331239025475848194877746890831019997405907125154115718053843019437909191498302624300881994323834013344703526142219794155295304313888807774762090209621110010165797904608152990413763856957445497581306772432506864163588009319803941945164567434743602997009072102335829413930480048165986812979720251947291702448114024496492278332140309749624144906040899034915696687935139305272029156741911552247732311547209403624293988901966847973986920451470175316163320813881597907366386873336733687038163667071748231945126855037968401443114541774409082342531938295277565233678259320953995804674057257693629596554795622145565083742765204867202780553808056952083948116603418245738128090525944554180589053342809542047769562461908597131536758204344602968338321362532890521169160758465887906184547613750196397749735108713242148766722112727008170911732462650022858576318772132285695456326014608623822436543686985441658197632296600719188683411251335072566804457948955207466874150591836470248534258863734201114296928434556487499980530736548964562082033913885119213786259177145083963018300739439465469163780563066877969070110041327905748284454543452277462785331599327299215926435725646033760680492719139729859853649393080514651150298898149827712220448776370783177413902724667287761515755606884948953109010935346931609867710787452699801421167390041043904411152184374325670438067277431432728523154390886046884443125469773535177473783741158458322742785809878634061330185156300815165488476764373949088404633529873896891970559583896683389902512552230984007780632937574508690672595748145070270624190158843859653080715430534941859587445444789325402659544105123526915612562694406266467058772291783426793038906875548241936066292931093027004826471401335296135213154166036148082033727618912968794001254139211633424000914479553522917171314743231812686058069436324472302130335281287329436514905582086106743394044344814789902212342757054257798156914383420754339056094633091370414464424874644740848433704350334013518626120024893234520629993489350912691271962380945388376862706965526319021825223236118269996227384548167365056722869485737757812335844894572316629486226071233494667331670785935939887606667403489906927669983119974574545127045797227983999405306840256800945436424710910541449347152735602860278848507483067578329185485341881457170762033701185714397352739352372134868529293150045434403507988982222747885688532214328760872734287343984617130352787516238804803434735818791869792790529078521567318396418154959404439093906795238683812635573231318017546199111242592939326824457869204650959624650663059860133405822443179778920973236977615697948251751382306901995774409362394590803171795395352808688782091286588086158640888073700700173891602042278081546302436777377526514766132432426916367169671224504918313326040420465673262772015212541308023309211728924569853673677517490385095095200595564238871554783792698941348950771404896534909689382940227841347467629560559580919922666530955087441705447046890422017991097992970757068104114089662798203821273885608530247147445380092846372052923499011902427478862277963436846963670681549926527005708033900127866207589889183400941064403960550229207923663383843205318167192707679411599673185544724061487471014537431345902858342048416624667342349480676450176333973846614730850561046745397910304479124551302522576857235844107268542110961131674112473125032590928535273053683484464719217885448260723118660953827896239146194278678759943657620439889754215855389101373920785124399612475837856592255840154022592004827976728922333052060836710294597713434041750621412852835873056791381756959948220556268880823519259277599698315184122203591480924863428773420793223206392382677644857471584331846966914840489813861301201788915296964261165881278841467225795891054942291224016019305446262712664906860139709114061226560381190049225062580684943027344727344528408034030274484263278959916530880750479139512464502074796336996126664243656255885958087397725778782761189711111677705201861898603886368039612058293284129771772386984605495243716148007143705336796680361174791655790359807488383807308245103543058646799228180264814143385448184531015335271742058125531477493647367900079754476660594185641515654630838842161539905019079411534398637891975355816169112437433667962638053690446667626307364338627838259582533482446610928428349558658932584526444580694163735451382635307991746264924612162143662602996685425358122311231350641015090577918046957040879605006402718597658985840629490639832413630367485525618837526103128003872772595159772165026815533766084276628059570472539720486283266856890790662745857255637730880717066518700232972967435115067540335932911592979546458993722927270200831776793011496757528249717043788963312176923477440275166858600485165886956114418574262423331234930868981793161415778473384869869022510984749951710177314516951075994558398085078955108980523127630494953693929772745411374838052485594144409247345945567819440106605001055964216398130022561031142483591473323441869546771861143666555784092790068281165196182888779755190912977900789202967960665762159068469344055512654083780171933225679401726377348991749153588123449870118280118992633672638026227699184347359040134251753178775468533990198003331180817344937698335410869389277277828980579458259337708690748213016323978501638944608715129429267532089309306488417401107118390705201716484078926131623803705785081427453054211236311016953157285779042053168422208751013193984388145646579170206409681817565014656363761264444545819942140121237628229367384063222245891270926848840407525002874510274406118283073305241151476505311553905062262074526078283762269847338957821217810255650442455571980266593032426533834983364775151351014120492811417199048322976443679551102948249732994261660939196440779614423941172060696643393004385158808023258598511760838837967385847950310289221771413225052116322674260492940674843340407259003203748470728981039925413684190553745303425934815465244615071968746922529569194724845490097299665787072022069115698036102690094412867531634936546130370786702925348304009583997554602506980719378077762965232130503337721775568557317019299610718890669644087868074221181514240857219381427747884430658244352188224187616796630964669998326661218718699633265411265027569715723684263851203080992391266136587242465033036042983613242929502335316525023718264326485842096492453203643405389194746147203789264066533991474356446518160421528747393485257358016656511798810676016683268469778278793151871964594448898801330363265846870225543734057398664083434494018267357990533352516063723549547581690879359626853139720488833225802239404685269916583647711725308698370716169878183545114912034073385586207008937390949407644985640407460562997105073901582452146926122964089109080669340411606838044763030852595044948280057038688291498500050324645650363361354995685950305639327761454347922961798566468204639664410424384055038542076214543515045955165888903666227164368655240877707981598342474940997656688881868243427624088761686913966288554644529309327258060736505192091588565037031078341411487741600782272109572697881864201137061199650190939078450120912390188737861556201091828682306946214629163440215823079062547265897671880433086174866891150455123747475784672184710168738650812648637452656091534886836382577867630098286445331430995939364552332172952157080607962615282511482978179981777243392983617913234796169698121864267697793199940740172044795439284536046200966545348223782146270781206044485235240507911738909220191543986546963931425197775822916844694321539581696140125513440921475642753570841277555032714967983646891627689098098668214367148612359255478351919885548522367371502636128926017288632269627329639323740949978879712982092167549594537639782785703793378848378936368503235580342476096011207801096537205380392206617017559072657044295692905343726357166667215130319242671934656754703311522336879201407031237525626290216448764458409316478554254601583064679765028213408517761985708212237079464980742591537067957070226996745039253332808315710019903017524766883398961391942263963274899469996312334240255214547607936929613501875546575456240950866306288792443855824313915101666716712002628344864679408362772370431171085586258389519082620283328880743380174284022758320006351236575340654246410517686001079188275655332290865571923287118231637232829256621395528656173014542140679072351132916236113064253895227126313994415776747412234187035270964451587063973563606522292216493178904113170438982400410411006374557097030555073496106274822633626463672822210904565656722775578057578325276540199094123171979277078146770280705208952746066456003425172495292490544563942775107349583138156221675486958325830986748469166712971518050514950003202431672500999250296169359693475647967781708166565888598613764852307954569158101396860921779162996632863308866181834837968742512376439622727256175981616847952484992571422093631604423563043083521204981974153165743481921448674012109420086314372314435779081611097208411709900388203999738835264170528868935323148099637454881770350479409607022558538221040240052756428872108128478274541874552310075085211254406877048365427480101541577390785803007675682426961525197332610585206515474836920934961822136379936365655553993493424417037115763687270652833838900067708360236664774225029345477290604390596271230112252863526180070601667758780925587143719791901265960275103087026665839270178582468079959214534276727213803274983202516035942586541827682126853813647316599736107413021928858470918887710587366694940147936403589337040914275102303762247065404707931949622393038258178083897714504959949784130007511231642373270895745305121360107323629230474232459472609903608400897223788825138529718814824907088399751249674970054003104511243807223835148485960880263700619720022266339003777153467430504786771764152669318727495343491245378759810671323134407615566828022135563168652259100956924485026845081620248048581462018528539110844350247814202390191133107391394493415464056669352634300954995368663066819596720568568725191078387677854691592341909261233578004046168783474105979465582413251769226484688796580807434935349556548220612718007788854245783730414863323357920378251133330832337309443440967433448103700808906525931578886540904466049101738830572375952505603612403170750623404807346585955668656525187080494318248259123763083427471290098775068882384207652473973396184391383452312467296123538548990255127662984929201384404913623697217225074572615917212559038658668403450963311099249141298441182009648148205787224711972213953939416232622096402246615915042784487100222295021830354496802974542642519365212905477633054996217493657257933289888449003129879037520515336560221136574040245398738002555701015230303737437389595757833073249608961509196613614741598731854572642109088265076388546332730248526587003699197902712841635895788843124155097698377768853217914398240559943111243044413709630856561897729173922276667087354894376314675168605174753951566029012737081834387646228311395746626338529495221835738406161818746194549095922693556673287221518360431231487628010797233503136035788007968280617212121087540610360009288908112285627200184665386117825455449842068168480920922093040264885213303595626655019079029315401862550030464829885876301640695169500725212144007408272689649046323632414203227801525590968071813062797023516854994705643805752347703624429600529130674193700525346831234203003379184776875187099660072909119661450148017769249508084029676394469340224713250121016953284216135474254798131050827768997932013339802684106449294714506524868923411974474623824244651977503788859632183654113984018076719126639412593199010419753171146917507589810842861463330287338264236241394975334257698661917521334563618424005806770627036557695430491992900721429458685733952355224958248774057513126173468205379846047611897060072200166048452325543776311682838095751653359927529560023836859391279033928048539273634304080724680221092110482038170322039259512844164340863775716372705844738130575402490687354237959035260404813704594891145781392128152156188462159625928298922069320648481261035932168187847057280070624139403135966213746678764385972866086265155926037849806518173778743183529433169952199313810075398515204785943789481940183626484234574412159909048879232524225267858146868484313954773964962070619199556630821157537703934207532237499221365011991062873642368937858653835937587917321629715654215015649579565785156818729155994795936641180316532379326821743813145090754366456780677708842359189501182943542983127059577071182831690593979478096788443821094652217388327799716405914167419968353537213819935232887260645097183013435483455653906129724299740035776110237312861633547386680025593341899658856742998806954538572474280011941722531777969652020514292773592078728862587487253044674804020812148136853362879479724758717385527485427206070281766264043268506321362559575764213422534446357473013745565242821194631081254994300065285976768951173965813303031177664361673241818542407556726970685325309046350339990884207830519629504421714131422281531695073894014213872206775986022536930406778756939482193504097989177994530335274415273989191251473531570539578419373557128925601968796336642207088486038971582369417547080113576514837345138434589640545332179357726128969951500199834073556401583804167186755487029483064167613527286484810184675789679074932052032424147230368051504340919878436315032384621102275949210609451172087910964707670763862802964922874030377724323266292263397911484907799953384306319509766450721851276003341897115799997485393607921277135871194675642159531550588120091997389089018141624006196998454630724065721532753282114969984607844105260325894867547040406405749313363411236507550664273664534625697657239255953013767699026488892711826956006186606885391748918061364934905910775785180232787746535342810388891761743662306954189570426195779344592587457320800596431313482428719033872854831821827041256232700142883431164736210724641693229368215178116608391956611354324947681932400157798529416196492786846582723021859602057803767642439796668103889763130939215479525106753763473021384799156568623127586596813247499108238942351853336883605590030066912851047246387325785063279778141359723019051576254175991066358424626421921799291746794940724178789972238248157531732757149387003547940834331723674939183355743392271707411514453590795478730034468169908625350636934438237143898024081026223026060339070956598794670135556649783205939791084494149604405501253320155074439283062606847937629556468515017106518390386175944312825333320393864333396581732841340711246309040086455195168716092879435094700514513095862086754527788816456679989984853457347773476667187102360175057509309070107969341382312654035844802025650792562514407904101062828360088240842896826719862487677219293174282671712745045158402676340154538515543199688558350873371016403168912965257832852781472053837402505018390421025962703421035792796785040914910043169657609851503573430908961946906904452837235958848286300586481152019709929257498020338229824907278300415697375227637546631516704797898883803721129025973549880875349698286312885749775065684328003162540158812333450631052556402151851841339672702368878318736644656910943292273312337607039867750031656435020246002242565311918898148874751767087165894619954735741508834962515851178607945512710216006008919928461813022149695057990204369946725443971743029588659352162671049162865096365591380133739235003624708949840615275131156185578192232487291419141590067988817462825585693126803439462731866920400620964099100580761999242480907626671564187870411760682302585481513982138791011046292031281244410756338282921656982627381567664264426446564905435346576282869892369185522027412249359773603828359584416776235467109818535636752566119699549231822462383643087448965360494581181315670319761469468861497008446225500213209814729181668107735575624975395122891271735030826112143653422456206954880331063979604750598423119248281628775196210051283154650740809278959263726734796875094483086000076172245483433285924490236449060485680608751267149349581812132604809609149276166170171454007596658382194991911364785797766458113958606873120497205357085558233592151421731363942769360005360087844643208161102952146085035916127902052423493437038043698182857167420934943164568079450633500170362649405018690778631911368125498583341650397396566725139977571865785633950978700544439361131867506272855993880460467235561781833840537820584282121305956849317193846414857433690471984673053300891288269060297807665524447678967154164701557039881661303418515589121408447118690246630749553643208270505981208167431720668390292215481861054625408840808093578337144240716855219393980118875314476924557956973803178078586895522489079569131941673816215118734761646576263431558520119459125042952498694156617450034239384198319515444290899796050179735328800475523327640521413005968278800301547249802158615774014638252622382224848899410851335404776898690812423744146805722639227509019388181002718594401045269813726129660190205024023489665163402147610144841604315490030427955103504573605039739636685242845057095721758476922288415448001712297448608780121685204245578234463841459400796494014787743951059144239493117823257049839638209337461479941470804359883069601579101066009615182162492022818487418705189732055099718568293753864200260579228219446722119021644640265013520380564301615804339609654099034489059729067510726871182610803695159980614818990175579944953686978791537572687662357767070892343860790415050856306262910825371291680157969682822210205578831412937637288569747699492522763372086657037799586359092090371027023023327350217981316682164219248088257795260094137506001242488012347080213537970086352111111333671142849191802987985520541368863361696939834783581441450655723577274172978695751739144044442689243644401660331005565016986745856365473055433446959474283720102954218970832165833850735757464104108248237356609838217480811852658185205572499695752447581488514540275546440395774656588339198504878838440460915627818143903470644418781921257583596191867170838588807706431339456598555488962143630636399782600177299401703916629020983482121482090557715484641567713550450266875621175058030556291110470664092123403063177105348285108363874935327998000960844930192972337835004173269487279861454674545275466561323345992466383064941877719799661931977778751713650473757597658946891526008338644026580270293227366101500508608191010327693822705959952287684432748912563862253683232702148696840301265786249287240697920689027426443192788851437192328782656791857950649870190110261792489515947159434885798702589572639534333384792148208344951892081319993834104837855311983262897465482268957746957521499574321392401741532323787626116954516183602427449826031721304871004577793933919430175075876355116564500268594100585246161557742475224457198087621854067352185271520096062895788409440077184434326639709602793376266789290987364900580932487054801265089401404076863691010289430807443527772765807785492240412345362132715853679228956013300670564373543278092171263131063567828002033090656967056482700503258873275658208565935691476595275775579164080857077199579804780535778237556014513752840826759533954644488191921597847753534577100711728708980360417877970706343023191869280766646069659212204019690748350520027057950974541995395816220891634506386955710482075256964784509825497772038419098866009083520145092552258583720381714292753172304110357793385457758224651623396477904228156887679822847917469416373920433625324797164388231076691039472921340524846656780362152431319573980982378612288927222909554639394617509595496039442914603497199638251945768325769015676376714334532448255298323705195354637150207656545479820574324719333980656759181288846541895812510397459593597125780508172083612544549762816418160432618206587982957223712785787185393578294237787970178919142418639745609757533565232881904303799028715791505792175709291379352131908220252331460261943778358610628609029378934791185352940103549388920268988714597624512699563995455863912433073311228068169653004137355895059806672413409289985895601102419658917282296731761651676038465154399923232184925378831217009607834369054970221645688427459044652092261663601700743061158834942830418848303856139626642379589839479589050271797590752500958216159926346326286492400871472035507541321130777511118140435245736908410241993729348507631235634434450815192549350499618583200964597991525159758695103456952448256316303445853535741916702110515955647505981420823336330781680150119183412154132206405092587735488774084258999609144783115756899051366743041820447817990450590345712585130376811562980097146628546847158305827106649332298686186446684905481547637658104019780514057777443283178407773008109110653107086628783933681211291613503391303767079113932180542646932892201349795946080369350207304386237624920237562337311618199162613913059758816599410723489349654548795263263833127659872672930761650072909382061511487857364330185051473932339956051460242246971201354400359029308196408747886607189627425698670447910421347420131296449968276832430356903019460963434549583810215184661914176602051440333646347177922504436288808621573684383433053084904756560760960300367386092950145062510394085552577719260010615617900935849145855575855571640859317546582970265888436152979462615577421576084515726549796780284354591927642269059373466606273925547240784902560174451129474813743466830717439228623222106273329837565235480552574183566160098630087528984613779306269632429287960461402380337256270183179001717767770699565798073182624590435999515953755948485335586901509270109962493448840807059475627797275472094859136652121514025468472127213514801899608834623163543524904567199962061171602201339216687115057573923196629638357765405749418115960616475933619942674464923370268633377059671736369557127638686214000539018189425433626805551114856791681210199935941669163273959246361928533399092675828943964074868510703729996742521089924528634740043217764075568655217259928010266025995107637742830738378000488416214994707804107967790223602307567781747794452015127661058913485951377776488586831924696265631585283143008540467863285515521232707054876151086890816332337475448325922448798268915212176915938402743417668306812362648699222453270862129501721714036830655333891944122538597056346523274891716784106722214968345376672414887159825251643150595223019027466856446445840669960320564090381835662642966886123627450273672658294567628598778568699977151471893330356116567870335475422616114477014103962917878619847378839328851190859869143215281955032236540774417931307831342487688718973165585747800151663825778359252154121066812343835776032515107750981425248349054993404247872064747066978082554216411035795443980166176695392976274379263555529260915061850665911624744710071830135943068864424367953325755276932074844547848428534857790052374976310558695322678316154164611349950851684111807338892401471665340565618152637809510630855944895735159612218234436072507917215684327062771662101731863709179765776448225598980595124592788843075347119099310189998109758077324175534864631446603315223073829928296486842059913422150147936026494381560068296937669544117621271017668633052153573331869766917450444085068502546966615002583361533555564398884781390032619375067054651470781931299825127780862205940177005525659026377962954646708660773196420073811654609112079921868226042392865822997366833606421926015135518322101271687194334599850474011004821319005235547430274115900005718489892836673172003781436297443694510281656146086275610348213709494805453403286343782446918331673800829508763685678730029473479062412625944569275445277877180424806134271715072044678400127352432774078220422546489441235679977987285261015135016039120036312842489159937528471274828084921185514900715226775109435477552347875899829000629504214556169563534994754698267474516331133862142555394843915725068493608243391087860193873032518093500702913583297573559689966408070917992014443025416246388989302176156480923274455122932444692252641628752512626364648427223898437750387901458771069250622002584615192025872019132366383996903358023342545334517904149330409254767693407445434050894311460546937036697279961147274757161765278765330622420138595672426556573351971229820000477318861682261782009196264045452017411890728928958177161964619156257270249795290997958262491855812207792102520898596291304798422011923229478262362819679899544702465047112566054928648692705248485054364474509189091957177677588502725378703970342628616131884811323576208557877988155796127338435667811981552996117179537522338867398560969281021723208989051293854100541686307538873560629125383146042392190163329723485580202117517492723639800177414609128714188495195963026010137323946997096438610467204149975058101069144108847626419233316722735752985967054116826099539402293275550691197623508848119873833053124780553686953469034553672320648004322348137623077732038303501707343096290932156212810933176905784873986453614384346081229636132753046374672447281320541991547340272364064360676938921093734722628594259917047084563120516449159196370655637481045722603242221829605401099269642562918402451131805417613156366614527431557277319265916744141696328176477638869415591245219344703301117731524991507616555708797035815252693599522831401174703366507522530464052432252652267391452943611759981608529450063914992120617115086216244086047274901442486274472176499920200974384550036053090167851298309004873677916648267294149741412009516488041991120901944785358504420688100462073357627122417823207374855112982917870334573739080290747058444243430719304308251481817250141560696908122298480578994651741670686864684611985232688015954348005009522007898009776439833731152167655858100479783928850856680611856699518716631973618816262053817810923599560086615095791879664988910364172222753824244139041760357757544772698740173800081223084366770828916460075090212042585989165605563367031913437341193734133531041279209489055454042994098327215766519189524661046118565551839090207131070152937221582890791761502305225165268095815380262111309614328893928055434480218097190666397883612147076296135790795317302987958185080345458539302611404381949328722629606472704043803429862187029882321706990524927763710644951069046698169033664292220224267886357868707080385712792574852248374646089443023572099287675910779115304988392933806564567700980869298210115571240968113035628357913004431287480198862307886639816123076348652764891744871687252724730855989792346073255510482739197680332473452386161832873971202320634767205769484033485215042687645623695200687777743834725288715098286289429059223463490144062012638063763728151984082535176065346704919634443051081459109112216664362777081521148381821068662898416294930969128316927819265836438305312920197429200371333912161296865582041581839823633535092357819556596658840926428174336970425304922353745131373714425558929341311594579266571965643435838158133973469463052928929237548173580191580574849459181230445911091495819988865906054308968530626368567675906978581536786137922820484658420075053683895169394937394117628455726534689234013314314534912534047248827301942673677869016999019756711973916177580870313600737157052748603296173509321796491716482420843477702320274033303091718180396038297115563789261287866222329405937091362595877354693959087672406751955073165842978925992121488172677681264140702824335354826136504135659627463137637326932208019058305294350822743081201078268846620262143790735456985049472999453441011660530065942889024868865143058659817893077403924042985972757143446468371294734994029337898705443715777462603451738182827561551468949648382837638823129870223675161798498749291180294015472999117013376694341634401776050860165870247207090194305224442594293208976017774803637441655243849072319524223365438642925471459070648446498965921678336273777474664319826134194489957972196032006748813834065190469173205579180370353731749809557460467475935032473092295660184901689253364793529207407722909930238697247911544299537727947403275970209764520942690287743578422466390668676095312974516807533551116731859626492705495632815641742979659743371076703086552882916316193970502858224214676735868814858967214798888388831361038780120109835024671658122146861598606394480258260781905107900100927414857579248284699791640898204792474470452804712528083592279352585908394058944928073230307076772444449698332950934143348820893211345261955057961067790253820512854326816639076302136499127221859520218904274013440576539594524756153430349229229655681922639167921044749749387896470594722814730532937926314101630713289735248226587235658859111153703904414983744931781550114713047232107744364884584678757504585640813285550963511430854102088717156770957316493632687039572032983849521235287317431118482685507707397898307431279538036642525629257243451164871097607462207705531617068817980195947224829512631762748221289119142298575010380452224527795311408339958285086230308421484727182999159224758065672960194440797174223265269157162326216217128923110219250591661401776324783075403791709564222073707111156907364068285769197554989574771453653802139684234330892309664051300888939891335330149675776372550531184738970456022946144549053727282802613068553197572103230613175988839799520649272665699753570775090342981556108657239876459669209645759795581199748887486707093891314584793992914730856080758430629321125874601129808240221032959684144806033676723330946514495603259636169061229360823168957677560804133524233782229477784909168813491659840086759641529679156139236641609248570899555092089728177682232144979814791114185606921779209145688594884220144010318460387139865213795921882614508373276188484874126993520283155999358738343534779803016412495150889029886004990576922734935755388772661161670208773138371331619443208538799528671007232513437735557303771154982297766921968076444015775027644530500254329160058411998808835898092549782855264409279973802112940913755683602137946220270401035076533490772554638924944956017118896329946868320293986526961276278926259193369893600981797595411717037215829774759063635813428095893268014805528260360835293492776771504365361012327366563448449003444484757518689552796917555089712717985372413108541794943188478607482399689131312384050868283329076425901376482319846653662923007244788966044348944412708944487356284293860141046307478997877501758455286235690607528310632802072742702935336380767569833668528724151061615731593997404083506550589786993237010374130028777060817493632412476771288381079276667465347685895896545086459986781721465279472407563315453100563101598065115155119728261144469157374947369346830217068845838282422326986598646888573996895784654305834548138821403718585519277803454477677867055681401540898059684157953683349450021101636874832864314928286032971890218739695297981567160044942036680551679972367619522347242238044302738381849379353818531906846445628972962319233154582685323794572853901884363979471958025940815511237016259936966538389060649402737710647201754314150085824429459976238272877127069809997708464754070756336313603611371920505493493477311356251953557611150202915876000021998906198491292135379643436909303529447206381992313030046337090643836632347771045125322989000047713328295533352939695137993502552062832412412048995649811875310642583717866129624118510635272505739188123795389549557467507361643897358854733478294712059521465473442626840595883879073540421805454612981322901156607487569311579264110378404470248004407273429158639575882106673607037275395755404527034169154038937570926189416354840832938962437197423656542262658181600430603271170704711931739453620902721612655845866012949278966203246802114036528990640894929783611329851407639170084444991070576572605593853943367940629803799488318363691175197885569952634836898144800092554234584257743592984040368913431560680051834480798647159030413647772400434649999790500124134038508002758008218666590127712449930749067911292965650872060000072758276629262635236577163096300238209396456914708881254270865692624675925969576414146727707014015989092924640917774397613973673620596386044455814009784682652227672634640440555382316906412658245138566606211250937241907645556157890521306451229540746517334116242366757801231918956785564525844962261248475106115826136206383286950922385451837387386193242159410850384222895226289210762130902005368426610295912618743911756549555617488480020178710036687237849960370894449930611432468557347309138464700718859320727874064433407437808432819071878080105211303648619847617098249600858477299787146776040558224896650841267882687536386087224043531316706473921289807776457973067331626520318776912579329121730688385680202786845437390032019864583859892815408515934920292421440139360457463917348251758431375991864723812562826764703157710710123166707988782545707267538382483559878209569911603173603276550833032509950510257590677444634775644135871397860775696465999436475810647956872625477121460852659709845630290057115721018865834764940891869730722968911514448636045841457019874697377341692698021453023272845851773591889875729105609890123342416319085480890283620549787625721315494956785603779792967468087657709035491783034521065799483908724013963847967356651477174599513449144358241240293427260456753090464120671764621749833298778168971326011887482089482488389242758176728471436737298958844131457219805386332720856471945568948891683212688612683187065865420991566589492202256369049572091870598266399211251189806944293095373441834570446200996380470618724090679976003464277592663008332551551633495404977135575724803105059297930323114095344593452861741721275836550229783075264125184635583189014133085437526918437492441698098512860857198122872795871256541653475431611515645620792127573804896021699606031865399038791008095683664765665739601963680156655518150793508402273791893865731013111534134469448932992653457720031420573566174988792053069888592091624772737192628922246998728653948097035553340805955808307183676753713754631861660351291137315729294743352452149795101473689107053805211607500471098900095585595356794309729519650944659339865140710580558767291116916917295263241408384846481370542539952884216013497909175868878239220897807834634456401876234793739523350537166831972976211413735714569524538129687630588608215832256897411376353107520154436768208887244733188550241527906862718554912281148216826203933068075487873001413701716893890540981431646108953880382447796695460361235875397374986892008967356670729658258009460544228428384522969902524644586937910812141816910708993705999074257855606227122977524743330300662884978788742755183873536209815016971168571922279637378564072009853358134856904857742691104263424536814289482484616392216251063428073664181718142259421513892289804979220386530656287074967321521958100167641152256270347270205593644491959990889107247506106828344057882867655478277226047831246822142382885652394022501213647197435416102907624875622379089365185164672947693309063212267963332702162018691227248111172898624933837847175089184996204993306475882239316976453361421616164483789843003459590073130108545140396911778502652476192394024963133962866637726381766060469277300050947350253349142726663911663736948974582498296852981256083459707864208906898360199485873808905301199040360882091259957995717758973406112176123351242721433004785692930494324208620150998326504736946098502606645805578765667730751020203971088350737112387111927242609717770251129299632822961289253448789820010912616640147250435719812770765562011050024115707576942697275309164198679883516705179330609092068431744676757396473531906198327693045553037656217181461312108727118000512822745374519595155591005271497259102883843982816410437114684082294954852776490944017872023336333602504858335080051421590085353803638311424751192510923994363848133534797461953221254282073567227107772689240244962846965350178106210686166638109446312752441235642416604219982249059172428924298390163278966377642180294734776100477624762439697765480379652865636866048163593705567732508194283479516417857578778381486731404727745266925169099141257139353599319965854192905663277302875824283734231626014586990727050363834866386058736933009042503388712054331969573992443637898457154461158023645063601779282506260238519853197349430067227630667318971900587724234612725809791253393858110697263340553569459448185522624663321643865485006918447782559924015124000972694756147536939374708730831863009260048038147110116694976887572733471610082622048610227055328464895651248363239473584516385617175685469982688205167777015702982933880282568376322101214876790559371408535403888542531064439631855221643491227349935046959351921257453900171981003572869531166640957016154896774655922811863674769384253473528950615265129240724383639919892594393315423812813592984405987816629537404882622419111132069308744198039028110470402817106416477422000167725018539998415807328570417535086438651271564417122222863502443029392233334673937992007574274996200940190754341550829032838177836644688225272987118760559593754394618175884894368399842375096401747265539711884385829375279609644892509266777205397609653339228108732581668354527397510836821488097951005524065859959868918567645149879344084877438080142137642675686558556778759636207311570596668447724086689480005496190009174566005698158218017538479560303222753009273503426454854388788660415518270914087052903892078480239453588948656552272535293803281237906007492872974509077496110909228966055899340750136914127077387142837823670796116545040409203759003173091499274572680957050355491459860210656564333655514534995484123610044162281465984607672839053796979850324128213247774592903552782918038839110474725089462328741608031949903692041081784925065531235695644623636434463633099101088704125639820529620982299412966845989409497665621183832402478156893041784118193707843073808191998707861806301365637077790246760867642965078845597881146405349161334301685868569383712039178259897316584276151213449158876138855934595672193008585186567658198837292132850132093752006965344483752566771362893651141693382465681491605772204804150331384610957401793083658211235374755540720684703602585723473836914955120004075465253205544032388356054249097790132347171211949281851291834955597726678723334320650148278432233034299225667137770859639736109663012714150379780091699526759877158503715907116229396621473354357250204469253610816376396774738723717341349407947004982500351608191864677692217436223287323824512113815717302634939947037992588466095481539982850624343392221266686856530808222298807338176916615303659143127063325554166106033147963448982487000282947538969453305871107894482659972489756029521569394372794080978268348920923310022052220107253436381998785996837796668479698767564677215504021921897230085795211075468278386870380772258808750159139255370651085167170351858341630750529752995705555980838599911781343631484337328146355436260886766932814472538623558766114691550919414936832058520163557098779180140523419098047136309817673700999705779681068815581222658735744914588803332176940243135518520009296789058293033358728063512682259399850895773439826593967349376741480156464914249590490849219036955271804084037598093302976044129180928235716525183058004979378587845482860686666897981747728386093801047450228759067628465548905186681481458941125951387472603932706708502896109202445581443560923545404090473081873663655700347847954100164937043677808064787170195474399920923775220735197710293981791100450160195636169421560074435062101903481877414752707629471090300774299944693097033675764069627172461986559739182766638577266659501868352311263007670675116683665565448308029601833453958462389859913013074839638048847956643167400764984182299387386198292362300715606221763881477876909453888696918176487053796931615067168606904559023087491113913092204265444745580346975868016888455824149775711831558626960422580105195863260789244243079288340243089071826838141538988917893248139746767561248149952860841860925152586485244262222692658748573879883233724635928725641356541494423551258350402573366853819967365584504711726027171348622242223379569319794827597468849195808303164014048193953496311719847022558335864345521090937090523927543744752288383925935090558527328656170762368065289784557241038792011597161792056175543887698225106047161274872002350566313589389113493375369327955570518010175487862087064111267595600011391057619629195864797273608610776959380219052861651874627328798709466075164240266613953574789148115199666192741033857572410202331465956875212500440600852504081304671239414141669092450004245048117980093100474062232203201000822438660268644090580319483031224656610327009262664196420683894660664527989374772920826136218457875355317355194045012605535891209186716193532572683962158706146794647521112433188337984384716350660452515856998482701245383830680555648551439774048056088256572418260566517987987165305998881274189525225810685719118421747220831815039211453288263063829542298723229708116205963474900779004026318243071464438495315151059647791938939693436377552686520282568667827442417939866724502665414753461965001055664244495938856876880024664123430992591235038141147751177716035483199892991464067487455082330823330916978062613870275561724294572949169666000070852319343377492448729090089920564059967282776373068934071362197639818084155354532587594791351303415432249909953986270809576109491029200008690004335447230650898709837919490355718327987269101818114413728700734321895732353084048150274748747496694476065638329085036767281895013523121669911021320229273338627144291970841562165764065045891768991571862445791833000866820301404066861406419554730308091976877344291951029113604441050101745852576453056585571012503378569622548002040706202546724648356770273998400326617900059039275531415389244301207466516553747583046581019637406985769482623422496096576153887661979152129154170854736448521796933574172420704126364102455938772549866074704288599197554730133710702421171167958877387933550858021836340652891611352904576278961017908671842009391366225772129417169114024174819647419261763331465652053955416601997194815182990798790125274234080374106902194129994979840822916121706490128921187401877339819018243183736401844743916737758954652305984288285996051068463567865585403345501487495222334847099270505403300371052585099094114621263545360287840520325653722479849918053404467055912495978601599438121583421356033829848834645546748083765236898414768765091077722990430507480788368051343263256663857581238505027348355272018885998087175810322915063806151221339770012252902152992558893212815156922042824545723137748268394926313131528421048833669317146153838232177236515853699205893299174276659199289321757421068740911977792006984792633893439777479546296207534939412561738287020401307785666965988521863208764594921177482064640820206724468452088777080507516041918860066563761015965013087476447952929046502371608618339827282727864049856162216812120425158805903735336038441920103885759566422292333441151801379639602811673783228602303405586552986185581333383014043434056254053909604221350712360844557246961869419680652730585368508237380112788871073127441117787976756918368351438235497762847010664144879823558261508487069020710807521985219520317872157917970444685103282772755791600433796036770584228896431972268615472570682212653762774812080065548058653227956216553319259123286763704963226207458046263564522706552611938012234255347271992931496560362085294963069657247516115169515488284377191774863754129910700106677948416760780025913938221756017959661219041566594494130739450674925288061656332840451035793969065408495257686661791904789417759231397246146323139406687091686584967653830358642255903981405776006439774430539320007801287075261731887303455951759326381730757379413960532642317227724207972204652640040181062834498770406913492153910783370037146560584689440153733169412507522992350386713916462658006474445522782347351344357631148759467121690258521961142190040946182626695448678863280283589909610365275346281501055169776179079040700120624956630888127513030145875893508293038631227734498841178131829037765765469817988973637101411878816100665155079468815391165537959033346248437511578005836610698538562618285875912431616204317711019227420748805682892605000130684208454145068595576617308886977988855636503716456907769698711820642750122021679740673640106047134230514451352971314865632233280938586846755488104407084785008527658746039164848289258268186454726868584640667402059080556281787098629943085831762867220104386227691505162512899191582062505396568117784850814142568472512703355955624627692895428003524093101066114881939826207189894235142358181936081160368912784683174242408056610921338747541826786932703582521591494871098668112749609067867454910117627498906192782642164905018722073678418215041796320790639112237521777152948686495576791967539915956484506178656619878489484660391225664002867757033073603645083537440479920491795216125495111498964190291778055708759804195179953114834985915639980398261618621405195792880074576058215329453583455483954439296097736008253312931997150393565539000363664447535845379999566585729772700659563651196453691510457108322162870997394614354132410117862866964684594424730243882987894904227920351529114954756670482974844659524468060162975767525655146543424526270164795934261495632747656244109989508728587147657117974009656712613203312268493542363235462486620131879535463565847346434678788356418495976627302824069130430123526557056734994539714158636135802567437041371103570118268568257292512819285436555177572200190802590943315612233650782705000285261803179525422575819888882572287430897848392004657100780385524693840295236247407100291388114802907947645523112688531160084366479453511538958467124509823032983883332408660335737853420380899910723161532009655509957813535032347613349694906687125453254155756879014303229002930826112920872345999671308651258633806642238633297880465307546225449740495201814482395353265769872399188429933148899451243934539351334093472010468339698556314488612946798456778767210021606193931359620008934725397657208046553406705634502487553100546468297618512564340501932393224679869284586825631306499039586388110896399072912026612347870069029890758213379550062899610159510888221171376112237230091199209530773964536233037227848524190044115352764795184946206433210989461813236310996240287313891104397203816463163743397491414360937197686239980931039109036406230444415038595905106948605351333013381094761904186291916317011480983234494759739787682656821114793021232192147312413779734633169943655767167006536453676841876416263468782765250296104814626557996744377937331217890668923522094970110916629750882809521013794656425598058427894789484139822781844905525683323743999861317953478157761230611254945036163363812863873810237445723525343569843925371100910098294288934788050719934671875102260765357592794059472352314622170604773407274329702566902153488196540972404433487086849220058706161009274263736942398363094853122709326158795411013805170133925917817261291807148228326455246585930206902068645097295540015956826398979970370006883769036441977242542999864379419839730241613751363716069293703455436431311944025198743906129721942977864308886749548845684744552034765342017042550769449994998743810354948875644867283112311433780190218791717813963597733023900882720314958002352487872344148652327992193571336476659729228175310467301034758969950831199402266999618265924283589599187921547785501073928404467022111773646898429516647696957350566156180797616418651314924463502738456796847309436151517623779172179454484688615599297505761545524306689757790676351645409744456376494985652901607162149310414037633201563728113386388224393861511053989317115420382372674957986201657721828374485747306909461152220728512404080266730817247253598206279435418647741299882339645943302097332186144546185543087795956738039799074153147305124365612463740158627937534237179962784283157854059642638991575934981663396635224364696544531365033345064190206725097157084978353002923991591679310824144044877975135345831795481657204855481506430018751277562842094201008121317082040731708629450364938635231304111686235773862731203745824460227012905040096838439320032851033335694844266425035433916438773697071612851859849274392205673121613544326866832460682637158327707304288474325432757046555649984153029842431036723192465510926753366656929887313816076220693564936287528431677695291601439425265071847362162379601576962651009112643552075540974098382346391092849068630157588901594167776986089206851683380816989284571263257832343186236817832570533179615387857619728351831326646374302522852019819597420472482070292717490114085774904871570872279672498390366805086673446863356933854695114498364443785212170542671462032994863118777931804074218570702542154581422874731740020548863391433986482354415905627593695196246356876610290946818437213344337256299337082596035685327900411798486404967277336718381830093025000562759368899662496434768937202792234917594000592325120904155945316696880432426497752099825235862819010573670823268473112274103495640168625517007692721633797533721226533424510874143628929250897167344137062320144365934202435514272781384813230263491583037422160076369776577524177735267348489494163536424686683289087167315600676456077540120165794698922496276064935625313511778674403342732271395666399352629633082831344786518859477210440611759194825726045446018334384243786264072553198445915028470278301380728124248582811621978318363150250797165866633511803592231013556186169091270889325747244346484259420493867234411605180654124839446377293999646618968185915748379908318711554273540938112454961270071684155841872162120195085442890721212757674986248413809615738113308605460579808078441980230582057876753036278161745239022709631369178615215171758606629930171327787967673188948683500049597039100214449818811531713503741406898388956166220551187529813225382931544140379484660554857536631513261108022260719723509975480899487847270432533438189319131295916152352334861044053568715119067312873062665241391403102974107807866669629486081286988527496226117525264620477860115574574440926606294431995434234681172474074967879560062096172464268183694169188000240168704165791727080839310700050847201497941985081850284346660956811592753836382158442007646243372525046738848152392650625475190989149744233674204638423866780692198566489353094986795638766708590448624169416574756978406524170423056773513020085538705674263858342870260464979007195989109722499190320181322575862853194775500707309132383256962848014254130932174349070611120236405970151367556181237425211985579435680740984278046940589321901832831806790341947181585588820642430142043242687843582650692579435753668963297254343474741398301572537987309328791574558085401802354107240343028800838959555945096895347332435384041693014626424333990257781763089152199010388378297648414508721645486343538144314506582258943712967369622013245362889238332665427065816256554781915461396566703079150334504651714142273763880202560402393104433593433096857958703558078595117200788755775331914159851633835609683904757389837692536100046831394208675525371185202021406057429352419082049374447795512126431912539720993393148581356717599395261642382908072769874042920645874845473991455938042294841826281249576242474884099777044397868890789640677182976613274836664941327123530841883461723197185288728811579068586924934835241475350436864284771256097822507745502885088419620586260870989870110785743959826154388796765958021036905623832484878819966198782677509727698791300879166699507703303803825521240702088282982895997207651398558997642671147669969828191018248903504119332864442552864029813489972854019007424863587426426449523642475256938864121376485433471959179282980750187742375404038892640158896569246354312836216487410384040690003614919619339128732828016692944101083906812334684585105346853488635282572768035212600459211686652097787747192279398660382871723613295690167091847536029878288813629011961110162507055804826732684529085725934681593161759630596745169655958200075315634986973860960447205208275099608404870319013745614929135904001070218877625811806515363000761919601363292623836697520370573833640746271265580638363367739011764223545121728213049760965444354768528554776588226323747566158375299377701211765371302113436580450144459115655254031823616860468488499121151950275478784941136053687244679570958596922731878147635854082021332793026953634092961431962323115181589283060616969176792921182581449408853676785369871843265036337404934495092356800790784206383998847734891387091886114651767913125884038399049669427348444735811798580459724102948291279156640409283169187147013301170028913553299483437438600747326670160087363702912167878319468406057979302172399484663068402828145765973123117866717502707735194332153730254963383127533595676687669435124952435642836400167757004638952808329287576219914959243307409366859046549715593486106432540151255591279317291707259241724460964631081207858191999375450987449876367671773898293118677893087585322749856802207232318352887830665642087340882337621240742352589432935345838603271300072098050587620760082971308859516748832317850594004660138829273538034332340661175716647068587292909343708215585920137979009215872175107903423413251246587790117149189825101166916885265757383856741189717361633723457643773613358020506145668516641677404288230694805257803329774120904574975966831739049307046732251314895231692141621257492131812145610402090088056862439692058930813257965281834106814320563371914001220288816300074098528960611602855338921469148884700865638607264234146862679056632756217452965655058995389813771266871638504292526657696773355365698946973103175965604006824087643100746989740231835819295657456489350007493086852631842502806502964530819943008430011483299867885825468376830778194182083614307278476866426329409452644435093794915475659037295032437499088064280243153879244737813779067830612552363812497657777994915514801328768454096185747757672946757901635016146206998948612149140624527075543169253841443349842759317801169422259461461144366790400611877252889117824925112333536382892052013606653595898836251768638041358095566186366432112312626369787059915895808381736878160784838871713463445186509813726081122573690712788594623243102174170095852564795140036773044573374649365993437101147800386575125133223236283103631853834919979414474649218493908124340405509881052017393955651471363325983532549898431415577403298318503668159685304622175844256996868095413531399081635381295319037411772224744829819382398870585354832117899975795450291645218809495004273440256788968358601580583950675332475238875376108963898110750410592221353346553041268759744296457415934851856145604075471966332750447330450163316930683676242320945842080813453493456595734400314458919538325957189945775483071187011726701317147537127540948837420519441515186751825128916817919251382415855579250966403492626857570021939886309152488167388827266786915641402725253972658585524861968641107645514889547955939130589137560134296112783812117672759700095872687505957052300770962466615949932522390003829113632936707271396874575766580075380764094519444275607840538311265187762838620913424571406512590572571492111812091582989069842159310356525878274677887933841829468803420236110389146400501278482800740724763159935537300339454625475254197863384021992830941708564436737510469445595185418547262193095662006559453069463571708787024267506393010396496519206346551580562021989231263872347302535228615060925675784062038660394254311748818979497053838270264548689130874830055674674175386005140464939179520506679720323881589943987870054801372276424411280043343794587983382496694062556274455998694916111094959133718167095045728851317774970762096044582306112243372311585170469370671494035155769193177710617955279800641823150328962019026767113581033000330555977554174751732729469267047769211523257502436154562930239169270109076734838619919017383659589418451322482288263124669039965486013960905885846235999688859705611633080395902885044185390999134345494114391530191853021276060208263449492304800431235317570686518627624550948224615149157144380591728671791174658696753532442795401664669859828285300437148858246295009688383119937467070516423958876437715753052375174611676654468785895017953324211690971221912584403581118817110099102806551476067303679861369979709741904858707990329368156686061338852412217903605806528472259648846865336714691304771600473956189031972968038117636369592939226175860406997843918934538512208192212269627324304240669209280410553415355691170785030558930638341504327298552235534636881625621167588897944295423679249718902730220552376263693550176538766739917257850212096473877043953478734589228854719637490138595293335634607101006835682492768591098501720272203641004764662102867092820512669056534424189459733563986223145424800544790193045433461095671442605718905610332178873655065932112717468249015265255382893551772223108503257794598071486952057597737597966895251015841367852704466791217205409602403235884927647828028410102783752503638651694462564360323556132174020832591473116102420118148643994455992877668849289476313486548429726321900371245410640264059275041363314610422395985948359739856953749798438592467164322478314500650384886321367828349862056878696044929130028698510968149999768575410975135379353371101067284099477727284875037168563413942348649110761951035125745853198562010798245500347542292461497177242453852825396846730855881359469996117005970902640484739066114957416101946616226326100723460105551740372166373552193325641017855919886708355020533259636532677904200922789204634739378614341698033773283527676897593546871232918800106048558572886156973634662383981141956083081141625748746829543016463009175865785219919227025820319525279260858991582851428776068119192971329326799963060333269056520286149661243732369213981890672993140946416749396031590150166871086901378792346349887969000701637600275258336277415970292368734918934827289665112553345609195506793175367976152593196271121727548044030451752781636238300050386836443711245736116233039792321764984718461509797326740683304830069074879222418702748330969329195878650254626969859428616873794896797953320613624314410351625000826050454669184663433079139548212754586715086450612076726309307424721067695304392184698515518798091106614971215700195874953505390335953746535324632072744620755172318887028588798901029959779627769858059447035321642277180923106073429647715656966829078922585951540717325012306255754775025743850682196576072912066207221624812169943339013394822638730217646933050116898364425710235496150138657311334177816965720492116689983997523794517346093001960058010140193034622884601829384377864906747362802648482326604725064937642728605379638721601997363194955672883279236987862207599056633948076335773422979901313386660724382133893088329545069805354570031103369443084594277105249276865245125387558691079101358738036851212395889424676614903186730999613694993334144075883930855773920142655323315835906096497926632927320724860866089517254073628903164209952561955445339489947259460938828518121076746255938490702216675228107475820564243407944517263285599988931379274662805294290497016667454201387360557038883133627222016465896389829764341747712844314240435402694157449509602857834851527412070724115725197527237934404506161390565956894966398020906828827249117007221402582622642107562672161192388182221471204664180527149865776889601511377095286888800877447466363077624492130428208503491257604286545902921929946313670488003235951029899443943395813297204002788727183468611682115846218260240198468489261221091330681141128832449616567120925512317863274134140328515470790297891706037542299193924080058962391131574996575628022966829150298105755202756095162758755201727915284441896736962017256756388705217449451394096497564492670981362827490971072114234655057773365780941490182956943262804056737758589236497257263867898965173321081365554855268139482889352437458480668825145940991945547495899368996739092823418019572800851172421369812036564309782378026596233783251013095560401875179001278797272287886861789177876382320401312811176976898925630281613995706154202581645449186636140769138110812602086899996272768503950412136556737644028207852466717952354653502238769000936429199996361117867704727024838403956093724039457855424909186215860056762418804928701964966533912218772299655147857034955382397524636672790216546877083945639096713738821452480345402171542768480653676156720184917425652009196184174120890217600812725190432443044734299282868358347388711197805946192658164122662045632500428866625939474223442730999670605601735101232414495747545061485582376994189476334127190495635556863426018591578435111575189718185152551056908390036726189272545787834753126020608999907523642750191789414667779070861414658981553424353977218293580688623440191636031477761280488753144683923387029898025361022227763882139915814777353508397363653722467465903032389073740964988428653876664847757240468332436630001055465342608331070130065351782582299244129219278181249274494360068006768707450068301381885450916428538389051962896412646371541782384364899228358198544967831795061537887341283576223525536665762726399855883013578192216865939059285745057201765595799084111619173518642880910125228570392418464566113508835805110524757992785147867343753401192707423516872322134774278359576569150723988849319486952409966518485001401309266807429829739667411971612766948059609112758615713764191415403092836907785698136553923181996473694410703232940286909870029285451889010891248662192325632937207874641479193132275613873103544474987620954103810405364069778543786936670824423035481398384513008298583572272734718188501170134299660911754492556159504239964205993341119083442865837803458243890454649264579175165538432642594868890921382573768708188239926885294341163359913604513230052861223534875081427177461941079514492724627217172192633978262770604274249241240385868589370786034149579407936841312354959435293786110760015139804695963160861677925115175040071246296516304503774644691522988231758343537824678832409145398772093194242079252657461226471453500855396088207108828534456078750171381167008886635747779723205669282038604486538320138832257262027860971848958323360665258874241497403385308098552947523317202431285698069872208447512934471362105797900566104958787838682038076934778229110191352802750637404455971037157414716183927783864188414696867489800313993310729954506655000018439668910256932312514057968724466390494595084908889361658610080819388531188399026474062335864519365702861284773432719537804619077505077381580159478035515912805067895270858230621345475690502291621924969984826839076503378241184140198336753790799460295684283056348849972946971246804053093397066442515840191792578325618421825152520621022023989316213846770843515241595443318765051704844507896791775513526603643436612622787010136615249986840489987943222361212359806872844480963018373022894152079762792677864582740119599648787366639411114136158957465275246695580493236004521454193682359566451781725138272197359924628233134954613466013409402891090761404253129455927484996319745652461207714080898359977061107854548777477862865595812716623515383286693687828220603142609816277369604463024741129090095021944912177519827437946298212683644695905194995002325484330161890552590374992920787535362135105973497058641954794116158335214754952324621841204794290446130538173473480260174132950838018662359841082414998914997058561222056049467496561999503983486044210712392050745940576218035499980080228866112913694982327592755204010060042962064034801676482274558926115908188913130434512041527132812119370038757592050556475396630338704388424380597519348272629072918857343247378426700630649886670408238758548382735030726964883543043237401092985209018325541396148823698143154082118311162038985928016233351986005706826204669241424673945146880920255185293261246389115236553670457740974038857115811975148284925129931592351492276495731647940093197386338531900459317012974876484426091186491503870146849812489280027398068167694910152504493483123522144183476745205834788896768832208149417077051187135332504271425343232509908898936886974812891828036187778602333764923239722330963430864257584875173074339498243675619704384070044157671872007157050005666846849889927064270675182215099751509419527029114239718838661809358176344498410512091672251991455513617823042282498497214519893549715057047033910764268304992070176184590644326644329078886806387729051685972581229038628343114380064565345656005888800423912275551320212745312660951184731111158071021504836584232573070349839309216064035656837130826144599073067435076127123274591903148719496565775258141407578160049089969859208851249635931550461419532478233343511995824812977099968943407134638200596566868009381540635933621941248135164615107411601065232063248779604772852154482918625523596527562986650037072106882399106466465351534612925226215399108537546529257603603318598497759949176476411073463409761534817465603510804228007395848097972321317970122998334465599130296501099432141197218503059168420593176068782359850023518021460157406159986688527292102650378986343004964653067610020980750507832724727921880977166087578013675660986216057655300268930260793427182124290551161339361879407911352579975895541566170979857439700286851819019709237471230123885742013883219436238181954376524195903568399298721091946653933300792925903493149346990172686026195588188926166139317098872391902206714446157502373265148163475372650679327895100465056861100463032911191582714481476937763853681263209985628656974441314083546783144649858564331509813104539509709967727695482615530877251555309537719987141387394734126031176277902658930041555479291824888609238649261157243272293611098431569500719749465468533087907978168272520105184697468681636751779251891271571406370095990558658571549770175505443383980682168742054953857583180910921994115598953869336281767612099530994316605841519241190200765398665324592646361712159219234727359223015272071914028899353253996217486869164038229765813784739403021923085908499773919734130984788270922760618973607626936652529341656931564082940665616681554765907636781067994208795058862716345111832929582208209813248845305994112393571764343923461116781691316715292378057987402100378375997860692352517817872097526110461672076677950869006608628567989436080081906530121197167160949937783549621218377088833219962994233328357894271083514442028827895319799478142590643115981455644878852668114377795270696371914948014771849146933286858651912043713678934275360701969498392805327618777596637179431217799226417879477381325185625044708391425068563973456126216836358125782452110635637408696481937189910940169937457324811500563965721552107707510579191463269315200102565658893057921999034818450664944563898235836278246183586249521467281545678357479544068819928245526611180217621082059437445538924079505503563243593082199586070106717897973976338048701879107280605516065976025929465498462763339910928380614411697624060578388462562399241139440769282279989183013467841264986706193675060035812938727633011343285834697448277156439643951530380443772287736115766787997058446294114657319628527264142687266675954059329096144513551648975184388345854949643855761489570866564500931893097448126474976808404374433908042473942006695822042312235069539003379169203114951766333296267332908322692482033045010900682778740950689455635536255836126627649218545648260642067391972369484561660551843739652927123011000854812087974201999558073687440878425883248808004847878937261222701220262432691000179650884448488584524091248982172329331145108268755757524267246905529552843701397067433242712520814796736527246892117057370133420262598846880032604744048007308761216197217394181828000982487179565867729647129277527711258307169994534398344204816467143774909990369651479254456614706589060011345711010699733364401704388505584302140782557162349193597151123801576500222529146510618663142345218815999160858086661292531353804142204715136065813278953597290787077142671529883814419700749453678984702780134592286778515271710462383385421805908223338925534843661951843319691750820497828632238138217966437445771423980324518596332238830589529654867703885510208537079650467749846821159224145693820948389325455683076835371547775004747703324119536194488701820255656461954170117468458558082425292425040097653879176357946045081494159614349033819256209485427030467046909304536398009569525024534588471811545555786372703934237760830361894096317057436696952136449128430070655440141905120477017334617790064453167060364630233070703591847468915032451709362561361994564156131375377995049496399107502731566636832542205121985203691547756556277322770137733069993078181239157259427928959957464948266088237942204968206857723450998317667816523376788952227656557805033030448240293032811882568536377974122505496106525890866596237668123742635970319000888410936533759729163169460707013490678127658395126590218868563982006809507467518525004638982171554773477524718191068863554259635331182987895507795051345316338210410584406685500280119791620379530463910603089319869330015496269610474655435777903547974365568493652093431915074375175072321431284589502654704212247029684931292898321583101850343290556685802646768194745924063192198713870015976408760419870956562466696348303105223846206667703777021501437825041112735258805053956590695918528143223717065691866482134641675678705152168981582747654970106138315170935695877344488457125330771400616306832506850665776367273434806958398957518839701182399005319576011919197059990241537329253246800029227190078321986466477028818229745065157690913884702201253940914640163251157660305019507476524361412270651543447688314655493861093631514580818566335927632158179731775072356337990495277449250800448462990172275610009577392125000907935296973018708050133515531733713792627867920919809688433141365529257624880036960055356901409771230680218520006863227424524391605313657662874575161220477438942209161240321147624605809176569635794178200337951264180036166943973506149446947475953545175877457933739572534129521626763565100902497581093870984914489324981355350030195997793333105139922595572901197970394405876441721262866145625031684044347342736741730178351556538756114094806944777534247050084935402750583298457589196289587569442633186322141374760986549940262474703675116474542151776763132752284130143932841191925398059578326545948861542689566094971752104773087446185864408983457256890637675574090730957464171175762077926371169732730759588927467082241051626793925744958185454531927632668014628803671003229119664251499866286647755536308878416512478976122522856594289312728773610474927440397395971191969930265190339815228546190425845490202449265195917344543594393460149841079034783853940998254069911164566600868919368584880314800185481352009117308871009821741779098580318750426060994438085302447230959524864070484774081633405479994282278357135314981276717898303358018032420325475158086231689658701409728033252680759069500808258603979953816510758525930082758980456551524758847373891268911821189201227333848359687395418941766196151967847951212717011606829885239725025664358180260912121434840241199320212590829286283499861642795345561231545809046820693799901122036637775376588916523715833275886575653320452487767478299668075487890606666255668679987921592756149202225887574413294493721192430954785724069576880404804054449419274627959300750738989171148667325624096270411273341101984154318606533728312309831569441788220814474703249894010031233706784847736684504366114755649080170569845631659356730913306892857510377895581366840815160629478990266195141421941441134646985553289059778887112079135888720606850508266380580632890108571476064903383973935119422051426474553124323189215104026756077084554028893798440183768355250809518721324501675168259906908151794512133441565139684220637094141096979802402666257874973551824245904975529143849236194910028606478006697710798686606428678079694487670038382893274639480623508358264491095836118341569556662644443095210386499842379912295426238191420524504505662434311034761986811449501876952172178138680646734341727947063345710275722672966923125018125767774647953403714197708203064969217963914557626414866098098273986690311814962510848270976519370512980027201882609900960988709174466434440857274592066596501828712752267848789435164110536208669903722716354707540030251759047708756483998431424210432739176698974057806371096926231992114560697699189522087847337670413142938372319984591689959454741134102355623342751024036159277940958956388588457606032075458178883938493294336143717249798031470637805903721775826655366269929373645980558578352933762437961141436644459852815722494371087129653397437342372929658348914505987779823066262681334422584089252608997343712016270737011040667469649394327134329119175026799206442101195811282377745271099631727267883043908416629684034393489285374550607270274204876006699507696205133733138851735729976034651147048908084317059810310347184308136960868933187330819364875460207758790246376797138952548229920653577253088742589222813933964281104906020103523570808302948543684367959685220375669687324995015896876798721995078242118550415291235270887194578436934270216841110503999794089414798843599232339796102447896702123165723478368114090136032875160742316908251358148713759049813041795931965196872471173733482299505928921431564415130449428145604888920194571941827512944297346615312883493505765711113343004286605270683505924693787671794611030684604035591858480265063997981372498564717007346528551208813421507012737398836585792656302946175746986514771938396984770330449232284537254957342675480527590504749781435835828682793833529870703574208429591304365377706153882960168769705047345214522200849139477042455906329754205512334941844689002654974862807886605996525755749272484946086607113640466880473734562605183868855089129742713947245950943740873138191851236344677263965305494101007992232785374716735698941343761741320604416896210901212548849584072723723916468009549348852855155200097296229974445637226906858142392969221635650620284136186785216657164171793190244654580298013735403358571616739216393041241271130307012242705772220172510149096074629186150632386357624545937040402127921563704667482787244060569738435204207113570881379060403090015063482229043877734910648991310052583995920310119589205763730957546717499878126772826277738705956863314132039102522190874667019646174916635750440546733185092278062486894321451787474852377270351775514295509095787878081086547313102269337465292460348386875637152836694724374346429910427259143859059801481204132971881761778404946281499119385643034342345239396227103436905018264284987395344305237671977568922195756517709595130285968553228169955560948983413233666930417916837855694051202296594090474867150243766983192576595285023369387784334440387125739688989709901592646578181778533673465124307154806024549673400554874803329693425682827225647779440961644951979827414345267556423266206835173761347004442789138446115367925077926401468635822873883028530040185458624241288174898007651869161697950263321479870586653112031983178576668500427885048335957264247181795050340232783758423145610073688898396358508155603811264281575223468206373637716799093442379714955781941533505913231897974458333162923279479519292118866868047990600994885996406504635673869100905134862398957430863004999544068390120628523926689772361963776654736025770817213480221243129376089936812597919486396027169590266207516192158653616229055754116090003157163291062371467857502899798272151850473111498396597887935414190277244854286215731518998944869601821044731566599064002337101451905072064928326104331172615588363094031560789601228498176159647170889145283222873778763026216381517914848548522718879858007191258269544802564512183753775540445137490242013738718841734691100241833951586923829594969272613634761278946561028567705454249151927748321592094865746229260639390862408293408512581087194410774147965786073736329936695390095584809797771196287966410682408962662809597536240601877933000431833042456126996099510627802181936966311254876898262435964021348574156253171049314642900893072560655029095178513095707692691259431038435952859654017662474646803302289525580699487883230371374330938353725993077503590892462489167984556458701950582448502790055313758044241111346012894392548089220154109556755648702598189189067960237683390980409807186246976119358946612232746327592601692554808440586728616728729445431998031343252462646828186227295426323925539423439355646891284827281973143513502161688090635732734056872876545712934421216943906176915097844992322322254235648976841090800953728622870087675792807806489444084048983370792011480886145748507433902500696824881471886802168274021614202921163802060241592022100974749402981154360915031228474101188207999765329481656249345245590782056799173092568932792122289549812750574477697726351336137715494354527150908368244442381041486174722058921678706928723329771067179769997040595415342457559572012896995883967534339238739754683570050373646596920919594920170386080311009287498562486355956484393775190939037631508021376609738157726590465405032339883155280503649439326299911985346495339163173742498061153021196991771710120783809382101128596712178686714071307389265869077751389248479391703073530851869034909626978677228990140200186848017341899729474090346943233071143585404715975815662151400217100232585454978999343264488929127931486951971108583031419407416622370499563814110734643493458788440535358211108972817069000259086831085672905806077201390525270634263353859615285468866638559694398770303911061952065202720271139037874732663144062818086056847984732225320224094221155994792984882003835398055005359857273286004253402839016830463776364156589475204221477587264328131890674725476954712153685081414660535121935439455054280194432473522112129245208281506515098889017972445297713887697859249955028516691070442044923360351056997917986184702413552797150766610649283130765386236778856210506069367351732434693398147277626060076755334915667851611859202336195082140240865435893951914082313413941728365301350576953252181161445051683058122397774300835972917732221822754347635667314791940887170875533261112656875576499241920215183226737443413201274574358670113641788197279136411761842448972429534477009004079119887916106422338760474448167762713495397772965989989907254488395930780667171041747352719302269997437819386699487668972212390872922350839481623204023270877481023957584567816726623900337767795418317050981454304192601740568417585310255727925702659849289168671654031775492506097648001880035092799798180689789969311750786898612918825273787970217945690492054184819507164142825858745814887922168769051798759686792133645184837823122940744971274616946070909952566475142832234404304282288421316776819019794723234260276274060603815460936229585887877906194355904845387108382296776064150068232627958200239556847203237716238094366854284245049788347491285316300937260929795806409730746841907664495416387959823365116809522560888186266149807210307484657071506726709042026815467538655808606815493212036792360404390340438092820548090764876490402295488922592093813321670629453790236105414082966357355683330367152107584623436051057618119890786690805594966795366124929792949974811965056575889908971579317079572262508964451362957691997972038208345802248249216143738075014641007368156377339740279947074848291079885564030401862120686821124859047819165148584138422188961900892781065626874887232129816901522693950126546576015008557945658038782246634598946983278890790334926491220720951463499039295893861476136632650493712562401417168856047084277042706469360631376883550341168599679994194483719757672523154904013064523312884672712300577583415163600174571593889652876719616134165491475791981052496237781410887580247074561559956302611507056993723770087368615446703950587573004946942747807308072789143171795536645335544639647470790758431852491195632593423473313280743641338445659209739889224288621465419121200327972065908655202043075570062045722144929059550797670109992451366458014485047328355944842018403704118758171419177472720773783914374365921649898936594845919326364242261007738479989144999958258544361050184119448046268602862830130805734850505030518669107795748545326104490525619815792323784327024383559883059184551677787875116923546405425219907080545118514859059354213400225766125676320712850882356569363351616901556074841597110091827331229903686780738257955321725414565436124630142581553907985383197639252604846242265110815574330961127687665199148812460225428012948063648316257921962131789140972989406020895463802891048553138766171336476410008799128987308532570036295410126111477462533125856389279131752880714751794516719596392696972464509058425008830256927354652271559745076658904231008443717982243079556058418925332739379770058519429958207065807393376306533349627373615607001126985936411519074865563625193024294006029011598166885197385621376141067744802127258098041756310682013571902579935468587500726454488005872072694762468683715510383788672931202678792668495717739523957906046450523727577148572035907258666371128908808517289694064308627937103798561984966162087687266380074271478418675701148893162330616218151796900992074110766451601374334931894645761798178296506181748567074859370774753739063056310825016095531420538430426427193724820030865385022937781239312498266185573505344578299869858246346929525575888621136064498380840782051751988263765546790340136857962505713916878645308608640834499004749818206053163979927693927647639489773607697011110106039417398695602622937103212656761202593811628096528077024434363762455215615605351530527144662559412774825026335675433387141481451640772399099902266864388069491219113444916322538396274111518769232935362092424453687434660064160489133649975117291337210390936191534217737160418701269928420866974353510520382994875491962376782969224274795651894506059304509116394761447570365295619303628042134279875681702082533504001045950491873503263880362979217054252529433492295577748932031626273983573122296958752814268008623230322224313456115825857552125649311772495989894911242626559072544838591667864063736422627183729649652077210063113388329463729669655676351973253849341724068130014528664391332813852543620613623182197458803515183623486816543948186145056014193933516683471318087777054700266757899330494691395799168171569326027838519273636115186660052186883785813957587570032967154471849698379506257762129279875747673375422857775271466353668811801045912425683090825305526340440777084469070850934726787785304139334419384554746333613327704083655857663154066764857606276483484061758599528504215128321746238417265447606977239511785505904494198697650196309251948140412507538712834102960881004590368412519125411064445674041533297800645653980612898832888349578844078107627595065859870286342240226315209857849259839439996210610211155776929166885790073452629006874733692802959232197119628488988344780147770591669522308567696344394599744647522089669079983760099663874623028483513318323284203033819515606552839131972322294091509440239980165332970235346611663555742810151841899616617004625707654129622698211932136347118127299646429192677398472944559090451874336062335934435955903557067335916974881028058012039824087129724371720134747754216397081984775864115534505116141581616345591223654851844795791273399810977989879036325554678346696267341562506780404410980113719613974519764874117725191518201466613468066745210586432471638002523723953392937763889157378830218752036071466315864415729938681179530119905715149149301792853759701753696892808745025460089454100978383551860212518051073364676735413538504121444008665453535812447054835789424773521312291674496458886370441527704245959772752913115933614183411919417771535962416342611566040561761995247372505867933359406440468230271946463436009222817812435829576149430212003031055499542648049946490456244775696580261726569969650070639045377869250461529504680285526929044623909556677168160004434368211977555109873116210394418407366765457746513027303482491229116757070831681939017815182498497982046391600067443240070202931037167306059124895339416455961483213594774862713577033208026006232860329796457640596111635902370307756342861747806616706806764519444217380831300346569253617235734072903053370708618659204307301485865392927882298609751080781335249004379743271883100754257054389701493078734293384245656700552450363929255520701944467944093837208195138251496976375843118612177654708102269244728654540669645605186602111838741360396375250664750114149109235480148558060420089299333544687046732528082833685964574268706532496885740777429415105180614880951539360481843990997435056427206159398490596285971592980554129086589316477621907689081797397823125207529579666275167192243550089916311635794260903710831813874906052120193330748106837532366677536959964606259450980923404921076748959620216000417534719692713401012397457314219121576221301419387058065257176075282761065226191661650583959348094976802010767186140836540337643583640712179693523257219383782570508482559385019550154271233273209012417326988216788619910788413844544967922689130760372602597419480408870167529949062140952562998675150685269948243621984784265418469427004468505201632199989685816825034154672270374767026854995912367036586396264945149028000637476934254874150209203843886376371667498413207969944551021288504369537966682770825719007530566733071291167061006489813528224112468199658262533884472376146116262940267137849466584170376722276244812538613028520271258605538840352871804166211343761322534544697906037802173203874362138823230450222874145738195553486753970634270075540966959979471043481762544581524624669906401937722593520398872468842750632301551622505517573439520990924976458712947087080801683665601507150253319782199823849716493783910067764494258808014511406081730067794124494133133080549568081420651258991140582102329094522240478882445530877044371366868798256845668515626033240184598786603065836640488091949241294321522051156695444859489764849314818788036564600425522460105162714963936906169413599264009340825672530252209550622015693363894088626101187424659886984763181485932253034138722018207301618211526107129724989881454048418860066549696099501061270636476322694363599809022649229017166191668243060596497786004246300102671815821485054851649477135883841939050909592405334370142497172003734172445470114654175467901903989508214075452627801908120562273547479941589324594075289832786948184512939078996047854378875278155137937182561328049171392064005744472683212328989260199064147284754539170648153692506624124534126256728174903429135819134820045436962173405914339695779774083217458386953936597546324801107984669281995750324803738883014052265142511288592231891573401650252887294136988834029572890955583568516511282589466103923678220114151960297439008124252917795075086677090167141731895614586871778518286120853092677170155862716162522335862598269155679496699315354541988829234214060523414847847972436254681736013436848084764024234218416736564163740765918262622850824820856336218984738551390544014701904526775153157746243778438677769138999871096777939259987804078756476205908618215540561966524823651063861955228929336227852874490625165270629788198408504152738831439581265993651370983335323616702051036878069124547924574097129902685107724218176403348736492930144328323828831816998330437271647438059165336965279201833190633581331199184763368643044247216933864242811329805638286358787483246910011905887912773938130722816787742785056394421632322930191529489667451435221592915919481501080953804631212844817078592664832336848239968261452544369366105667286878707076391828079567014839956299006663335100191399705352128896997534925660986681212008206322720016149982662596341282810987445658764059111869110400308976382353372533490150209617767535993682827659203919934126199038058397671868630674007967901551666894399931017518370382084599253457343674207036305362652899338810041768019821474586956138837292863036682622477786901454803713303548491658821105533601431334536761501613160435151003613845485766304670748942836326735107360488282982318039307073515438458444684525198470846543410013821817250766962534578394598273890727229874649457750810514387320202579033417312034171930088095646406169018142161369699041780105063096403747087862589256358879161466345811337116167666043764099440417139158284482122912997764705162903306799556290526867469627514262837929889280197048132851653316090110949608644935306693553275175363246143164702421060492849467389336616379730272293759726970988539033371193685121256442374447107497905799969262902636898919927254942207514788405503099222914773525936907053952544055699606190009474396347669857296458749237785566544469963117552215929426860136353711005160074854403259094569474674348197429675101929185010263704451500593443832907784391236043520592276443868230782741004289747802029402597603604356292402909182370031776559459586469242376048554650696348023675640335377452112365934852271160023544454776048589995687070508420414616987719430661434828967095672845705218357528585644857685692452902979966324733253106730543954976908804811334908397278739627756859549506640215567870590154007186038569445931601513065872115538417974147481825937600970589312889809397331228554019868255000730683460356450299255170593438020093996436780704951799471584449347597167741376564809126307133563023045379210627350808625265615575544377605175492233916136769232654900334260421394509046895779042717252746399092340809151225173503056702874599620259938171518817884624023581875429220206703082526802589819704448396464204193174648643672182755082895410308456944407653641457565824636372692359668121007864109805038718072227731080681615956647791864780561262213996825433325247050653760712564223995284792972497951131159043390293092635017183482325321748163840129713772193504337526948582847326436646332266731417257157561693448602702345745708127314299052360253902232953658499122551111031874098510841441305402955869531120218114692194733635178732419214115029756498665052521406833562301213282335533171940382159023238948180466274637775417280039931595739701971999739722810740527985637343359455014432768669359650532386273002858230616255205818003992957412161623885484647649438345039700589971390872442601589767407942439864446985408817929862540585113299709164909456383122545021919972213200933804426657771498776552577571802292393004798479672866816421067585342299578484855103891409193576595237968950510271102841414548175681101817061706767193160152532066413622705091877576501497997385005405754455535549125260487256095998990248669138142530444909690625026576382173149233019979533091099783353255057809701869770621884661660184806372968876210002531874978388299560033345945587344561264435369177827582727933440443746555074959394236399515647942073733290780468296734089963520514672986487160151276057069515632501806597450904652739968865658492365878976624436825673248329739063143039140006267722291149194103508215497086392480280142596177393128937018436022175218824848972560751809038870191114739297843019151363642596971800153598951658282693062309841348515438849155277083331463341909031962636343606087082606974067000172240132255680726409499403904951367284036229515640649320271467966254566808604652839830072128492322182029559833201485341449652126278572635835923506651093221853419481252754271026017643371627260430082913943464530674517781440667591876301162678449738060203723471057005327799471581377406476771410472645589779189796924433704187345636977895483791636285999987842101470254079940551794397090630813284685499117965274414092728021778924254384185689529370669282058238611980130123510336648241811144264920911518890716195220070194798588386214443770910151512068055908191089193715362261888862308388205806700666995120370764295264412018266921664948152925911158066582440358090228838126103571683473672242216697316903172048313477633668627473694170637057585142213898100294370307492888169405624407464217159166143989665638643230867314407070071211291177660907013656122378625556914949209811064102220922867157028612295807686132626001144707875396625647264514750460912620428486770663860508889166157315641506949979865781411124673803456609941875920066695005832642536175922772659905004174185247781898835091092166115690596317534451948597710793494032423808087454850886881420228892229712496489431449429252293710294574350983031205603843378001488409999392618432150478877049683681859274679437126658385136311715807496337615820033456031044561960087257336756610426882928344563864651125337471751163014989678669201973232976551453057818419755245346025863027199917613266092115520200748913437601512792976661784392617786508073233634069273161492120310463978907928953082333268991720302216004189710126673097690532493494666944726522689961025308635749550582416896256143620145777332910228451880574604400973303937455751101376502653983754609323786766757340827475371848206273815966238679895869172708818434773041667360159792798498709683640959090388630527590362572699184645527945407484043321199184838075364711787101065871576852772428973446188308953947864909179703588855539967377295565283781242708644307022640211083331082593326749265499907710772056983210808101621095764879908474367876120759061179753909934033686570857743316176816875432779510494301550208826253144399586086739237395495801473996207713480496813924634939339257658363605268259880248425970019244144852207228842891100592712909387129559220738743486354623102989958588463806615998603457147285059639343545310654583222992086828102709313252786000529288711140205693493186017456099197578531097458873158185409482972003728968159187914142474710069273604522085960999239969803188180832463424715424897044436422985212759437139447057661313768824355162134499340929020484814590364273404385679109533363835695586749520617258028149138261287399225045773464355839316967430866821999753801827036959056322273307283838619517938150036830952595256696438114138586700780048235879338054398116471114396106546168961548372926833974723776348456759181945210604928690502650209459820306362104970523918905765633613346925294271120838607004956035857462904765916478251441692104469712686718952531311934003435527650236064634157168461236204784611291449726934843215543774048551378664562507084658368946346126293831430417427080989758373333157178527174315497165168582738467080707479893860265203298246474156879387751096427641867483600873770772379369996744492687198636772628262131545638606711023195856210167590488022399848185624388534695562816040499026386817426154035300636820407272961728544101047930936471299422833825563856498950666350732992318611407344518046301185895234337076894061568197038971059994845268917251106805969233269485544850972321294290272259556313008928471633056679959845675142652741112717124423966461299900943706110184673401300309296819623648904472292972315048492385862020415263882974644074295144795121757981908896237805804097831608837798690794257522534341447184364594909120090328179066068762326844902042006756482587010260241358959731161509700302942090764646413249352710061789999204542347303009724606041121500571691505851082432048675971599561849494883446780051989162784056847548036497555875534172434883312461243803040402908773294778403203241187878382409278302030808519812462182395848657431963431054196049287518806790985162492795856863344017695650818010929349392652924274542154798612846706881300639840589479594162326498412876051956438432551828726865466216635400881798146783577366133084781226247397056353136716650581323265621150399815408441293725259276863937311358391297265337361718104748370938445443484713971910676946434412955975071095416194270235396729928477574980919835756253491104992550623379207133898646784307287347513225179467340712966992194722656158898941069510309365311582418934202971337656031500120722820084252718032817079616108900397594315126636753935768681298851714347591090070087221862312010096312553143765926270575362724527268356211110871599738823317650435629968623058022460363544369329429557916079028856657108599557440509830278799658516889181408529806371581957359223108032746948081117317626464296183364271782164150555035767193752992405075234297685797066299553608388052530863299353786307423390469772623647328994266623892845131045498028887141685419659739439029726393072994483829036271108115146412509339623133660002455082046829413162667010611467066344282068399988125911423061688874820982777362329835002036185124784727399099895134203362271001105862668467870606369448357545409091332416807212122098195838299697760759842642674100130750440422930886430754260899466977555040593384823565558506088206475884755644953520320229341592709409275089275575279276857962871783573790255660506237018278395771728128038037510133693307759709142100707223045070257601937973482070000194506472305426067965014895254876562646984376930557040840700377733896525386320912645438798695167942399611164733406320737041176704705824891215287794764918687116217780281803443139872840423187173819833952428445799378922657894670711073088151648707291904407103737820056528291633466600013382003302745550860839517224235688740632040612321140872921966865065116030690983604890564383094395027944434175860183946181166733365692737851618692786616169181516218582022229089684579002245547719882764357861173536597598525148822444031078338954095299248345182569963468022071599848044210319801440802450351101635166549746764091436625761271573513632155899692164829421548082211932626031073446171693873262150610668414583001579628907404547643363008133919514784596516132541511489337984771661100756647345512490323402431086483145559293065953778800854599895078078017084317321429778454031791857716841090288249754846028139377706065068264938458188405723113855152320352381620733126611606318828070962847203633207800438897378973571006283407982110542293742249588506298594730451470214097110244416420092930078676658479268372915640246833633764714556724307933482358979293318287268298185722388659408101356730836784156223504705436959516427190581144117120724621021930031988000804064719541759764364855524625296181936086499173114977558420274992013149745999440923175377400963385380162867567122622690696000235862248382848628611517048121474938797805302888580875537555340989275259583496808282332770965657250297569308338505181020935699724668364201862383609861206499501436658000805119199615713474331141542533054010518522482414972525783790431669179906504951016030832494787139954078401204700305366353129798172680513250217904945765717698277456139895250257248910230315091078097273795170032596896988998584396121144929218610393255107570215900632538425760400392155632002016344367703965868117846031147371978190360156589586570572822902057422618081167844327636447914410453417411501794109407115436134195989454856755530774428720979604662639483106548859977012827853258443307369813412407354152739848057869658266532508753946715407996691376210139455736882092073246861773680244548778419568315005576062861566047990486968923169523095979948008942946624330219161006790070384273830671726064728323836163558271183024693013692052057121917507291746955036024884747322505588123966948143182564330194455746789617909886071681134113774390402353330260700415174665145416592095892374952017156209552494273962033977283093198188739408377024157110497508107201364684956873489869295046609373471438984028010509013976561768273822460707729656441202062834926941919138359176590467346067513985399060039480633659591547617082428689160413787891386122694063246191201006078676363481583812942638732991657850960575265350772069645509540797361226496317346415823986977227359340200949622782531506143765901159730223714921037897437677304318226757655886444009210839694475154219781123004965320973164021305730368145790297893186327032992717412749464074368286948792562214059532791061388138271092035284931738410950213075641376167302658198060857654083480892048143985988866714225674255815584889273319971535089039702464306949349605176114915393845862951900193522271240772601839744252025751929103210897545376702144643970898265296553901590979048037903413896761416920453194480007059685672194493264304211126956532481427035702654889389838552845693616137314806976532444557574257472944999202396531346579146896228660957449838377027977182939023581788790760244633879497827689638532748167575040053975908273072028328186176378353527365135918811900295722576010324338697011065094431442159939212933082479460256153894160705684829501671995857071021174279409957695134182207154757339506873894320859037790419427401618920667872556940883582329950454696304604530335589370807536247035955543624998841885761670310332194659368685103633530380486229629813796759540129092528161847925703773155670378066143741796156152911340006227162722273412715274534083109771713137842251274233655826859361175846757955198020055719062534578316983670273784418095701911010388093578448708899058192473948264706434882213889141813945816591969897843913700562537680368207434480677195646451606835894669570150336564208479618662648834733546472080363946936235144477679599264367463432544538734143327626426080527819189458826666581600704557252401716873010091063430664116476500231884728264087801239148334231008606615010947926559570822319677645788397659050790994608552109935499649242269887055200643429356096582306669719032843165387388555304982249426306551468508715855005502569614816040385550802766240539536371637134679775338925694306356770988388595438297744892915750991976658099062004034383181210518402941190608837466931924770407189673626507297719467256404754446820251757175801204058756942984071839104830173678697763487166108140635318921749165577778885856894134707756889105070584875445739032385794357186665860925667749806549552396490486754248074903760908128645803725899283397657666828726968049043226264807566912827841562817365513599139490837790964728052651405606857001913298972776360693180683862225128606840993628792485741561686544946899031710504607814393110284076770117985991540139349054699263550142034569438693259405039664725918321330786314283707337713413146171010442492634196406357582228114025244328337766876484674206228012892459722063594826469670348598749527106843431650898190539822945555206619960268012709832636124099259235595779326394988155411615864762754458632527558345780129571037221379155777375352917928620329887386501538257978759013156422956223417852638525734212078210005415778164305030461412350937042908452430286410699320638279893901790895990829463741701595540623344568106493463259447816338330987476159960319463363623734474812728101784156344023693860984364099569870833759029175715263950410200743502752727796661254232165983580902432867002442855775482086402247758505791976402211445512679513610975552416826710192977229778111476434476096972973431992489010824423981930817230343542528554150898345725087915795836524444850956762859372924154701915962300743754270053452861971304392463320267461467974093899064112303548095440067233860640520186224378027645236613924136622037344374989245438985320504215506221635350387288714251213188645422997131334577386617895903427981149592678793932482361609909270657002361655046023257154084714496749103837098005859273592652952038401092923509572800432832909410345199665948496885498382807715830008469751758348577355023026601291698175997290622073308947333361537512375087891248331954530850193532970791597419519082899370795161985113822925899443472106198058034742181326788859048372231735955597470500038291312325775747103836157245713940208858810653824561121607768430165081650832753965377085598583430892418884707117204195629005595733148552613502799836546209111063693904518627124726965822801718095932703674537563468124123087961702950060057544267859636409751560578919912056413082014378869446365475907511404265465667872817096105893497167167958192078040051286563821756706234755705550031081617422290825863192855015082026794095603903072998252867857911927081664897858596053573345100215567784368998515607519634546898918265517803652704164508977235769773983262501596720243612987941968229687686416293936130543038598455451355448222267268736603035348181646200995469472011311583223606981974483779472596229262907338735358850264766250803938376902371319036657041289475164345624902295495464058313293077486975639866209672849553419951580500270840599411968706520052937121965372218544986729837760334051909927417560796989283056128918509081976426447298977936150989136557925761042858486537244027131337619073107476805853607003038725665871300797768392751228291773331980718039970619589116545364950995803448038834763905461301732464490945681577044384336954927220193078604513534454419398215559686047158518574673268252840691442786946591751405980044520186915033446917770065105450877901836072329746757365600739488775595225609266786687850296240300544351450284679211542414574559272220815388181946285589550406718194132996795247949896880902008506350309392417613695487517895140730303799783894344100362648019208015683165766474241375003326079829255952829849968086278006548036586656360093778865466919855128418951808867233394179876574081523872237900622121060414276364577027128312288513484422846831043984266478814137151798645641767376797930988328822290320345226899995301373626369504584757071428758471138893594908431000563637974689389090789754638720601912388807412743144210753701500865119004449671579732459792851276224169257514519173361054772529104868804170531944931029896512592792775310020753595285634248427034983323151968495390913343674710798280871009603739649063829935698203184630895366700236704005244517117998445530943894535725779629805992018270188538980551023129442266347539120003162149547558634548926265751420933635827105556559964580886502664563582852365291513686632929188715461776962900875598058738111082810576326503534984219205286808904692554303976213234473086605422692196472835870141185368236658749966253559483544880611852142675141726342545322786077205719125409857573423430929796415034218542293426369033325055404802291910957984437317190698082788657931252343990718518802362931422097458765287878504287061030894495334783905658845521440770655633846165898818719029308651352286426974367112169293140246524243523712905508233464355717244706645551269649084759757062933486866522642649948245650109949787382440654471725891146903823017551602041375502237911109559812694657835997795348674768034545871267915552679786750925366224860193756536716136300379044191937656747536224575679301462968755139627124344843905509906209089546859619609503860853831548493014517720418221291363931761713074144737200887803279865501111860006615599082093101624487020002974039894943487003851172549849373601314810485877619949413997073368004639572667879150701248228027826671081484078136393055372669546454777231068282487063195261772611064333379119217009375697428599289411254626172707844387199545408438006052603430607376009597209469695644126783469607112318029212760963398304407900305088313624064522820686413733834254191218846096759613973128365290175150777182443736592125597053291833112919069765452439870922454554270319738845002183721217604009500096111233363992555614318993701088911669285639989888316951470846567161099691435628368093831632725012448040484004086712155122983391990218047597410255134893214078845935917367517701068163062663537520463642340191857803192976798041300657614508263827021769321599448483579956259329383744640173786076044980722338311583816035539823745817227262851156458404834032870682869986533595352522574086950565136492723974934864493858900407794623005057002106668765151212845338927515527155273643667238708031660234160738364172776032124564104046327981282217306964252282207843589190124970375874921156282636531589668638562749711521321807006967810526143290259590350529727189187267484695524502370423527836360498789886082587537496061287125037710046864710649289879127914538720003053320713977329221147064729225551073415138981452593701166621612441296534481294320814908395142624555462550947850359600147947191235679113770098830586735242140423452394574658644583715010012363762414128943608119858197506825319846468076053227166741216471648111687007521036724091481740208025261765206030876256297133704387814300124507311909502670809913544702279611413790516140715014533164595890272733992608715334352279159220041250375045990076447959960322025420289794082070669820036338759068287340570907804134714647416392968421232600204977392590391255290534025264639376833743545277946359022918354426429114012749703399360386391840881560945427677380636832166161706342102554086490285540916430083884388538855939151104555531118871368807991451508573571019909552842005496639508063658476654728753869004371377164173581660348316746425849341845287756140395855586238275919080448003787558248549306819788717669827886458595249347274535043527033270023829199442339300584772333375378037260914252103772295575925780527761365351947572036463933495129498103562959786270044413944545870620030213253234438328812442369003065280734531887329549149727610067676045569492668001751620599803822299215883632061699308726015253831705446009819843325692883073888172952044399255487583663670710178855116779533980653384977806080745607039459872453375162370324815889534976105127017445184863216860683440915416594257318847957798698154502520661888643663719327293293294594667951447310477613408721748262266119244399309150499025879310994964412472451634596265684769667775252889142305083031575108138694327895868486998756614867324470854809853573136704330760682523767841376940554368839016219022234299858015122688753836474531643518131790689285184322483699843914723454443920618791080202337450311710158174671298310554865444274930385988563282350939726728636983646943704779744382510456216181688989203350219470862381932775104640538977587725489991294440144949659077554372403983161007187918647842119374616346446416337037135958607410082131699834562936910220498011992183547759813895951415433574008171500118607954289820523483607267208053925347754700032641112369882591969883835997651010997577604962919963195904109799689897400159578874958198789820903832853165543668473497315158883169488501716688988581963253320811770247418103272509380678936960675934944128923214088113025087796560956571572251404090449445185314080948428405085669544781315281229029148924797471490772233008305034280227916487179658640197855012800776225040218002687158906773467464175888278431091374744555912906509098797390688322661219538722566020464011588061861680333365414292437089317355586123396452784461571244448758781776389214926871905676383904786514672137233115367175628580464641643310552107367974480918282261934140725895230484510554333834010712109985287783122123332287315929922215725602296540975968148299736563634004013998448779805840422393597850938658096345113911899166701928119376989916902586991745974604537058380643372422541562583013766673913551588587091274396099269325481619343639253426113449707186255226336537758991646731921303289500640504448321463736471749485518153921068061159395591899709535070704356185213315134384737948739954847526057384161824871364939600771561212404612555891072678424490945128093521563994192803538622168370297121722355491055442589806388308425564570408548555130189367285069063392637518267972332789758656391786799170643853607212109289250779123860933000078992553836902913272302580857352056183530316858437290821401796334987916048292108999199101501072964910695250163804780359347457819218725951515923866378426956491213448601943796225101068540877597814591746300662897718662027406683717829924582288925874990213849036240872552161515062036711644662719223689864495134560818918270619037972785032916952643853199621064046875114291469119809997948478722660428948712712585486064572584406859074209637027800390476591367048576783780548477173695769485587784019582737719004156001926456530755059772890644315616076575718650848398534405588947503196037419930306207153023205415791491762706907204841749872234103574754213035614482410336473120434215184334774186531281338807833404560038198583824768021888867311188948672249092796015782027863747808778330672252829832153937957394231613268530618265767883676825341761237305914218021135499935690320485353603693560890597281587597896845253989134766358040469677441182068057483925112272355102495263870680408479448161922345600076927229182459786631083221712990184281424195989906343985883486456414266998801521157364024632300906969971729336628039826128444841139841697270362589421045730947783960230610170773134621446728602298176882332604496143358375645409031751306148783444750947067421599851547694690275480249196955980884217752748753787798366789761870586589055915960066568938412445109091440093101247731071064959080296684031607709343662070110480527818283746763730745052758807881974209806280329912158552104791763158394671165513331372481288944753325007350956984806495513673233906450701597289887373869952745414813930406292546876513715742126177389927689206349094321263331191336105291745049470960812634838300139243733006647558601782752700118943129923622781552768793103545359572845072259696119290784478397213466914087228577416535681685180013702646987583164729580578088325807577571168533204408231318470969382330907530583149859341795535245052873101910035611827084874037927684266006224482458608015852294773930222541409923316792131272315970016125016442263507356633903329048801538977640273454557276242488718000659204741401752345402692045622572016686617495241155264449214536465612146583605737308421313108974728269177050031113468582176698070277216726304970519579338387468716820513189058184616078158191079189022446791505980968908837791573395444230392422387387406287337928128987093557886354169954248375983678674214004758784042882824654607967710109615012833221968491821748532105317554407418615424673052183499704468388119370689674008092442487186625813912688987766609347717636312242867577768221546415584222159093395619528900238615282657754585713335083085509288844869749124910727186181126910005457676675426594414319810060334943901991712592950795534626676735238986535414136131795589924325542142855756422670504029307801449379902663681579798415407311699360000596686044206527020102334684473627431908332859831278578075919032922932244298241743248260144651813818846629590808623522990473572089975688958834306373979448743349497738007941035726600048969815751894236448995380243755093473606421432170785130901828571236698958565621877494123761151803834992628240170052497052802825295910965648949986796798139961897855773535326745577485642015376319644639591072501487828578179566348055670838255071193813213787413258716761872796961975166671086319166340118643499869777194793530499272170501900369651697605001147688543109673404408418328918879285360915039820469014441691957651444307951095444593575573451003519487276164341028428545335946053327867017668751464937942570764266717130656675567678700399858898859170164059805546082004879041838618352320581613683042557659849897167307083959635948100869511548322765898973301032955411845698303998733145940574520769990982509080980016573400126177873684404066573624288879525937877259499840301625320219334836997165992078474428703097765905607410426043329603174338514023993426217612836363312828293092820179818775384510775609382838008027297539804542323973885347081269549009969171956753331245111170935846491199454494315470477431398070330596137139622605046710034348457481555074991640006131614220404438507452519943475380381712744523363292786790215438719132162456561091392805039952791018221816193116460989067977677684990592492181680946639499492904909408788737327801559525895141448125890271464189971337537171810769671144863414092787727246365025548825146143645744051904087572312894155807581385407850617360153599155167074890385700431894479811626788455399507179800590904948622167874019795323368597449737321483977143793037484573740791655855162929843893921499621436840662786843031136474519909087100908744602831886967582156836778106725979337303960582044801660060912660769243262058499465573199810133273579372681447692757578134353633416280236214289053014456014390859104329468484465225276067847018126566652340623277552063039653611178388266767874047156688507918003704658577833501997853292616873991099781568592911445934826288326508758928346142803033923060473007723251684682262346864201409457232837909674996778238926118760314846483683685309193992710439729767726763843940962957515300974537225573285784532380674154127872071200745226128120064766464227486552558229759317531090552712199633334365023606699084125154911068465721934874012039105469955523561315376275277719958272467006911839936452626105220097112629623730723863055184442922042726973210630585118472044715408697977388906117704668811228881491371915115934034275695021148597650073690380244811869355040666804777116416677074887650540190568462033504378884676277790616355396593147385071443680166383710859117662948042125832622670613256532929837737517534830513736617735828026376322965890916584945680863335127728314605210145579029449116771295533838266606380940869560975217833721232551280868973896065534421974687069240579184371660963368345481727303226512897083385682178781267602256241573176801365237931877779901378412902834115762705801892837777669416502913140662334627628693160165411742027376522447874182175255580120152262121350863339079216865619534427917131254351576755517671571441794538667800028995839108885916861106838472826751540619683410861230273227524914382557314343521355895071914082000507072638206382833024253883171338959631394123617443829380138163478710965806375576289881648525349226698392041714390700611911676494753193565708662395846638118727167924135815292158507547148107772631365554886264842563785452842835883531725265967125316081272319479457456272944755722647390273219321495201100258163722054672095226657142442881086872434607575633028840812936113286330479184370483535590121351263452647183534660176401374585658000762114272607691451891832373955024853600591862178691868259305520303578758733959320491871314404268268094288004065131914443307680291326595011992414066208791897875115996569444648892281385180471550664653185459221339576779935718497655591536432711263825450993548018765188919390849719097356561825690242937921335626099087061955534482920765866081950205134255577429317752258731132321567008007286712016511699746820830770842331559432626073288582385369720977104054572798753323585965282231783521970737275038323210571157049220034121075289672821750170981217561055801342033356130177753664310013966061513316112730500975723465647459406288109700121737361752179253396969695628848870842082393781024014652625275551329938736252447122241128219767998440117759792544322082438757436816113264856888113622617752698129209979399981599359195900364104726498769667802379457900522711185601900543606869664705270246087969065451987189963113549282165733427217641356378054921369773729413344598060067019758619674108309708340125273132139070576717981546530487471113789807427189131869657687887844463583339984386911953738847353125307057755442466313215984769649892420667919893015882194779787063185491672602433497269321821230170869806688208212568635693884664478597056600648897580299827220227127382428630455756003089352072222878221989609130832503841179460116655467998484861208630305923249866428183126533886329950657312872628893014184897712511072866053612461162128320010160624926613094704950713266446962891071204970649552030209520444608849063922495406655812985560465727506660569032079306507868126800716466465113677284782312603932163530956761141164860489539581713367424696533359586555704671670764879922518834446820712975039681046269142185644672401794374347824789280197562827798589978316830011392757100842663754914040581268427727557966587339839037723277726623932308149579530425080079722528500468202463644299607061216641878789918360684534379128543253520073086681406406135855906374894724137010356530753440236468252201760372329338453147625614240688351730809236896725296114173327096097986799368009617992077035384020462185828998270394083386054836135861039185456932713879046499870581419244881747870616922037512144903520005951526624198018581762923860240314325832819404314449020495548421790894250709392718485521122593133382534877127735717939221153955421985016918130263780564910826201831689755638105885156366929369593755509285361524877962839636557645223225691215702794075107525194234677262360110950017662435070389402411131891557217190524435339115450144293976327208635300307305410958865947936955009996918243370803959438826209312446584550785929504990542823547644501955868739846365477571532042615431995976802537717832892818296826084450298053413660709561120823380731014195181224938628015363296419989912509996956643308863848270555763160739116194669944027721888710821158250259141137269997077350138696825468066184236225010170323471347952937472746445386113209314425105131077266437106984848754450273358681378140141708992048595659109254193375232162706305923671543041300453971005103276642730600093148118265716290337748398505007570017470755391155829732135363254178708398658306653840504942442462431192425263282896027089940300679379711722534441124310819553215609581441550837489859659039049082683558562635856468101638339012964927199161051702977534533544733853726013121143194984131003769675284679087788220021630522364834892466745013372483332995056970706056503611529887367378263481131582478076504445898434213346582359243214636175857848249392066903522367789071608843810827600501192685129887889115210872625005020280918288513217411709319194151723214842377070722933322563577602530990051937566788139586891999030985751660447277080107480662564357337206276962705694920722946703577699321161581835479517488704641553867791716205994352337135386801816208866394639151451959261186426484863486139995755419600859456647729397784054729266932716248579064867400782202717762382115148514935698658659397948304344188817369554892928989583492866027738957282816065824845585251522424290377673482789754442618372458645622850799638341088716530101585708413880215123505148054403380413919712635713516695508643273509945737666557878986663526811070551614402486216295459457571530054798240817128973989996107512659634555242842452418735942947189598199970165444782072551841418051482751628087695308966075655690567803073482844205324991670551895046433465572681791531204471517668094362357112330445199496040154612146321708270429898139727297177709474475277718490682964569179351622041188201154304177590582358098765632856212728444818868855450899885839997992531940270605745706824656398443796036581118945826909189265687129559719819649772776397448792099375659887099507398261630975537651798518037665755628408546481196055300671611120996701884111880125465092035647720905113541325574015281494826287403875914678413105774753194558196507002550037088459482215136371826598139243187284679706556006688346546573689725074266876480496045524614719010875118397548518134343429207130667559245570538823181988552276121943808480091348569965937252399464120807209347612827659828015277968298417711417428462538974560738578571773693519662495325609233407639415926879435756966749613676051702048415854281288318862160807232707971324124606701514928565230183652575033491757711258479229343829413297055003960788779783687328819901778025518464861498243462204992595846460056278905105213726467032924038248319084477508536594181709492147730498666830401239738705519704019198178173432591075214985808166537904875126378480335151186409413107320817961453072239541458698089695315199169531140780280403191716780285898163851479981802490881872143157059688851431721459273244188722136068655912205796675113206219180558210670542399572490136728305621966703368207647857725608460596916047506096223908493212541101391715919604771987461143549846904360277769294315841987157812281643100309875666414998744409572469954310358455198969668872143747269434146946678180185349102746527863432586740729804707141766737773932735296918187838884338666426388968629103576543382781055578992895706724988565122921671404266691574844824791797473429870547376892902222999672148133280397310581704028669304536766001793927695332841337280712087225552064278261525835983118577566943736957665987741670481860299387623733051555150671516710217661668880534400203191994285524202987755981061257614495073749913276286924108563900529731094375798652553372310221438568134723943079634704539232687994319015508535850560580523569876992429654121755629137460447674169155788077270913647891120694029886263107451477345195032923967830226613426092186832190433128776290120135064159470342252791982730675112000076931489598346210393429154122572149158593932614246248057102814703750068359162298877848000704608992742144571420639460729368044055977603572349433256089049476664317720523489264945553785906690862282475854363097071732967562612920712403812466871821474089110778316625023238989737957976890143065442485216288428423533037270781344966151935257412077806251440450696125330997630036012814194583767383502673227730867900366520634453435443581203845675423714023773422259820979126837388745601646794918124251700898109934700365036210796455270956539148325032626918561606577854884416709603302488236550016270127292782771803901270327895120849006474222465850906399794319432929925595133636584913271721162620638631815248391150494291061466966726137723609292025835755033222727319140868048149457437930750989937211146554889548526049506220205370510133253409253897512253449864618808308237740391452280416676002973210897175298010456524565655488126140626656086699441067409787501426203709510199956116383715225828141027553564283228150247177062257087740846115687404355493595036512106608056555539183500220996422230284466214691035133947078226443714707497522835945938598500965523450475894303489825059101930282792218184788899511619599229838586094710689917236668309609939762803863462577182596887789452153302762099738097558950800274266591636533147985475670431012086368678112925367516184808623066122743747865781241033848508577062295617927936348007218419767790098814388130768329716632655890695040158600179017900390370008084952418355457986999868461490614505032968007544623803855972606388138835782285808200960060077626566945040314672257306708748253028225038943685203023707724418276120726397438510401448619314625877431474982104054789850926772903405947697751828744600880208173572942183230491107342987948830425680643925908770450383107322694422773897773027756772584087631745281989618925813291670113463551384486624570709038911612749976803331204099243720911152077275167454780566869956475541864743651497849475677230540722661022109779016724655971425000335993528987552636784549589620098345338090682395120005675781732966134029403431208135251458503238403429526646824822577729190357759061729701974820111740105504267991606348316171380749942112853043793698551144321232486867995240274006374531761190556652511882570446434092968044244501204332410871987478773552757939124918823840284266990145419917780449930807121589787270227284987706331872101360385111023246874686805607147205095142612661612702464912465651600344134484076862265943524967923054795407983126837264635849286286736019836234506668699928177531643227689928986270258028517025140279078800212365501625571111927639487868078113445891367351524393514234862170935810685526337381913208065881721849155235556842209339906418888148205110525573444939080295066998128817631346226902772551362350714268119953720236153124647885653198660966100300161868567204502270611619283278994485270183510876861084315617075994603283368669743926922752282899920909850173085589548696495202091144813170580958217982066006294840285332759519025019092831803183398357383288977378292372616402969197893478068190242962161710592238914063533127870012020985207007564692927888696834883265525579752010139248150637189783134714752822539323348325294155095898518483116136412914236247387303591779488764103480670583760872053349541646610176400989273758985924035119895585670260214992624613636571989257613133271420218053388456419616413861100749235863006031973184476341985787041193391992690170427296369466019437442328925101346109181294362688357148044979682999997702645249997806966285080478070199123542080234494959878724257026653979823944288060671437127900736360299219629366672237211746614849289917838570221046027405120163916958200316684797343495242835282291873796712935630866031357061492432507337665102264787460147273531128709761376917872106919017363045211251292821379040943389195743781123819165047575352039032627240535092720606892428522143002650153618393038177777074437099175140146957941315605998123911959396319440266730288259467044686605916615302817738577596349681058880630767367986843883287531307005911781561213489164113197012922662830706763113184762714688742729872118269362807515728088752668237705113378074553915824331543784922290576848479854027644601846542753998278329855371799106463132023838936194652476113590723957917257702959396403264945194263423619991321474023501145455163043542927848441747390104362603552832147861994546700059659267258204056477720851749349305259033262667243404056289501190621182947253445377098889894213352177557987317058932507821317809894973986367311537277617422284862284725433083918008035851663326257821196020512632688139410263421947925478389212745018906333776591420737821417725999131706830568983292282061260095879011656975718624933828599258430932108688257141505133689969641124317810813961208092833786138021037541070224802471359678904390231223430984965258474758752091763675495654337715182850330612333604023821967892206023875282275113881988921943879399454383663243381358790988426391812414407939406662731273466582477158922786633454395991229230694988103020893498502093818811741957313388675723377199646067376939081662494524254098274602640906457569817949079319592264356970584452494151809603487122858810788106477299275524189167716352016752862356624655891339384617533572776188942904792151963421209140978432251679979028233602205660274105059868528203604198411557473296211689016191004798853124988584302674961656966732185306347475693828735476345057328134304281559902298970735787730802790415601199111987458763259208597913564340066944105905454407212926863307866160840121840353953008360049236458640996781765657123211613082580739956439976650211541787368110111810404117887993602491166317493277128450701502835865704544423277912188174254879697518542314934391614609750054819495094073638359135129361556900360900598247952438244700639215547756811742709869693811291664791099382279990909809591475096762436487474819442024858429723725570058061296560066875214124085221829751608135094308796186633636252364373284776521361212387948935528639715640769775668391150953923948842805895540472080999568255509319345353690163900675192767207844955022578939047959563233335393855157374790597869480621944441078121912855314356478637246365449067790888874211247957713722741131647088503314848424544875406092310525960235802412545469324188006614548636448570266469766600465052136162752982790554406374232235597466317296751223454480547453656047155767800262371673268503334124095709938950606411088825986602071273670281307837334950954284147962187462536288065163028783011060552831525120097066660487054110317854731264330355248345211985249320570250645428597902659300064503546519943331853831478856509583989640855383935586656082364671444039232916672128715111127872121538663463566686816506502573322278683278014079844709598116054121271520929892991554770445227631435074581385165878960601224211244866445809187838352118053742670150197776302236806562669268730249250723676833222092115356005261637682881799093940162001814641361743938024626932022708153202699897886782937683230632661482318713248168037218746858081545044159426170091926351265877417042160419891276302749301207510152646296600015234548025393250372787595446455557726669178108066699800660713261289036542152574378615847079018904020908909952168910365601270727651280459890956921976530207636036143762497020943755721958902624427892165573538143566870827487881303259020032792203452746262904310593016654826612665585320339159525886166732004257403735148483877516782834906601375821034730980752662563482643685114287355237970579623398321536250095099425277335867372125116417057780190694036507737623999203912552841488196787046112485796528951393978809955605213561709949369647820496974798840626278631096718994164995574234174961626216427219072580735373014201643581796488082441527633301917557390809465922611168409400315840665986141282887956683498262666108929057074775555113767431330794272221888126925466939859255205952020067752190428280179265600481937025171698432135343463328159928010041473655255348589690188800654023897872728451497484478014682386038766661815390760391849378011433866184834259549949141591650182301458357655950143467916530006476267366843492213363243193090408930715542497032528611602640465497225130516186967512778415657013991365478059635115211153696346167582032273301928389258748471082063470509336800830912080797126641535781496447013146151436023889899401826871505580726618611144468191580068260152338246919326342525308861129816189255615591931035281154975946759267693606810604430490309105080700510786257716374671535896089715185238526304922667023519987335212478626625417906526888712379206858461032809473465059291036334870496465764597196919387076149749735606376936116595766240346461060218413256688174591535839569119927377084172574023216121327284219818852201826972344245706759514135062944320433763753685813655586651449339737602392605814408980330890444758440003393666277901503376334137268207290464793634336430011877358148590419931800360388148770999983947902531997008937699771917706116877758350283475711484376686270021804013520140312742017959399446575277689741007725955210459080901524017508678458794486259456109432438631010611204126686153709690516844482080448082993154902100144123556850276582193734777304810422249804349951344315574795067489970349652947282836753417028613244658718147524384111778455462628353167741797568783571648228492571167592324639435742776110887334238273362147114342838925556066907400103157481172270952821300997805648813400401306953905842701585286224207165732719463689987657531077661212352824363374533683075054535721166720133886366692694696833016323844134500100279425717815989757841285011887108293342360305297137922925630391597755996437521086551412827266875321953122069539109285655665647475825478605246129784575637917067887594161847119528554279915172933096275091832137736620155926835110931577616261015450329162351569076906225994272879501608157834181724450222743374731830045732052109297135758477124698622336855439647951469695354430170775876647873645615892674926308676781255285305903426588376683648616704250204096842771365222741629066598650181064323558897669027165459985167247898899334025790830210826149302458828545711139585294348959203578550277823763810614182838193244492035465748153699826864911020900998459185712304867102553085961357401404037376179974730403500273762250171116063893663117601667429326470859883919768445461613346279875903376076310392155281715156895418168956763755482630536762028897553055611220540304212967476886230237701187882511869684082285041665144627638689592472553203198432870366346475891159693850361158523937145917976096280419678748995025999301110840950933468726469575146513488740342609429600557940882002683399209043236157995349938512424727676095217944681995926587516421701035523431392287300949266980937350796899092228120164859515652989508786512401333069422672668329855754922497809997715926989976819807073092603033953232789650261509987020084699771712690925740204848220382763445613180167782576203219797442237334901649071989209372013010022786852443167825984483856977703537096354310042422875077437923365737510563230205422548376048458952122200077000830706263304606567765568182334022496849437920262946727039282431734261334769883542446697326785233793610890232764730202661508519692659774446713502454283111634844524359991263758052888841511598058404213594210377156267594945136259985378656355056415424384447947350637127022114099152213222635776667264772610899869503916664518998818841657528711755399817905392633780648183711453068866256209471710980498335452329588829984727191700979763945926842484520034255045927920789505214462790780924927458448446102062880587353393273785646154809885689526038757479321800511866124353395281815630306978807843758632532511950523699257387502472017891202439570376852800318937994450909384940062042999487868883331088307950672162003057873824205163061084651758303893313624915434664153932696305890237015036838079522939523280596231653428380966769250655850606605299047527981237969934284081768854963123928342743475421276133166564700237019316166987166680799380104974686410192889924944978465986006102495227465990465601879375145793942842632615855036293694555203600306466426608638686388994150829570718234791769296833415513898961350383606686358216316279922990939149940503274324417643137501906393017110599903163633184716144520812981071635790101945017974370109276705006459708164297376705303175906629644537839448389916019055047669677602243984916701007335997204235842132964661008825752806911374928471419442193008484637258493872872605296596937478524364726761909929798412183141472237677200426874487237680633831238668266000525225245085276782632674298393275352736133303198173608208107494307482070175477170554267719388466353049604214633297540908923694554516567024239256055534708069164358611827888651448115967457530612766396081318486792257300096979062750166701016929329856618840168536326484994643270017754977527890211726075762211907804251700136350412580739208048233121954547277915611814745572111277335824663964718624739574957595941801944673236809717310843800684532070759188593802399000793250921787288937325542153479108053712325203924681576028821449918849653523895132210570086655030921375773596695381103378185798754038066195686650551117182760144003342229295245590062636045311284187671230828147929352280346215954575430083741044973359854974378985148983014386318067012152673112464809144467415099397539930957316333914649779702018917980703999700844824297230055308608174897606165238951395524003692268625633678609647529260030194702748233308264610301219329022530122807459014923065087544464876363880331604137423344799042537265602842508391792430764027707922042823981385109411785178693154725097897489978140412675234642335062991444567649319263664615875441522623559677304651696931985066404220882640582379707281529089692582551585711070573928857495837780611886866200782961663084056359224049941129652745436117585318475335495752817224794857943780183581437804309031750537713476478530731550911683812577060720461973591075026161548204690366159225715346607351642994263405659220436097895719674534699997640091577318744407482491143765084806149342000506968874043912285886687971555236792094910095214796881580795930734071454887619718778525416500397669201361683927851312309828793405978904920386827139393792072075895279679575795991941025831923461907274676085510109637703449283343460916997832057546485206302001540205440689103953541597353790193941689723358455000660257269615678645228557738589791092551791340121784013662143927311918012046127702943248660347192076589620813159228816742272553381875854865326677897921467098107031770345641202346376158354088463655570565623270110256517890145589021996031161134800307920989171963076827884508999770483634150035880737134323959453587462261155465132670122531944322901372625646377446232121845127217011991879396008854831857789074518809114164337385758098189180559639766054833491770577962982713781758197945240570664376764957455660571530825538003964472460508508812643951260893514972902441857466494031936655322352691968790926252757928940420129698190743794959346695360640817413584171933184047299940842375778059333903130966593976680754329114192788454074203928904824997965435184061095040575468321399876593968710265557358311241374076845561318616008279874355284590230446875748054421777161338989808227432243162513306491214410931969723527356474092942003581188207189405103156802176886560384420247467617426438295791215377563926597223996444324451944751821831404354785948298915652418402869315999177140922139784930049566298213304210466095573254236352095198036015450056006775963017857843098203762441485038188452447349144507386456220936316178585878902958245351542305835380678479350499050082665466513906190194022477920334381127199156269152437345150055157936965655437405047991847303188746068110957130637359819427094098537051163580967687330337637511315826105770544805402818509704294405689132594299352049964060144813478839303142184694300524054341109970741081465866317262575469958176947065233641641063703220495966625855221344590614514377558523859153280577824151042071048167652912993621040777459862254528174482320444970861876184664402145939599829786634162888392942452999210626600810646249969429148463358031631835087501202076783895482891388810008615090016747777637939343795963937334657416004727865196066066119383102886533060806840720621583518693493277277984588110551929688742143115617750258490532479780538146377906110952352322099337889474269003710289133687705548488732060453419229148913754644476762631258065259940407634307171202945649587699842548657374731097394279680732819268481432835054209456693802132229692561660750848491593468881281377170743535756950186438921408208451483014486889819420984239162842456790089330343895179461398426750797533694605577687948911640329024271505714146050948875133870150018443141468364146598427622519110020918672648328184637868176107748555150473676987960262539460372507065579005189297717148105139057053588928911367397257992114664947519891297201480953615907133139013924432148428450098911065926490009092406944102864583987505207566442642423664069647046430967281669163358101822636165150439438000344861902604048685553704505950700199934864405599917221369351503754042237918394447627495486188502516863201317292477066182793153443018084864440150206446866367158480079050437491422934278847426875410378169088497428866580027881884944353382695664694255491583231369788681860933066600655195123568284633010515101765830516440540339444174372986313614771098391514806834280983335385706492930718945451284483563063128785061648990332960112521232977935969152258671861899066792548819939516935769740791924289165032126469869467553648146420570255922935489669874140314822711371420878686357010145508234274778134158301267965167706067404794763438773788229997847315864914569080400310708787641166643625449835428928094904315936919239276535377487843632194444183030354453889225477621290716883745687890373041843951114786190392696570239127761807856125184246413497745753315648160595319488569659265860578511057170241925890119966531194761485792833617664692757726547380677743470897069586898904775887698646325775517259532978132986244177208760521922646783746286934098269106977587407454687653878893718680030754675760743234943148612314662510826094550333252649087377125412257092209242584498229028439594673916651737098663737609216773413546439486588946306365955960254846224942670352183038012637459490567360496485339936722216193125541335998783852368535619422951605458734224229005072096255223467116588768511613011762342789619409807203804555947536073669038189524188337214397545692815952067127602045313407942167759679551609906534228779040215631863189222946724612536766980359711376187465098264060873779469411461936813803129282689408699194707103879827905967298511418486114049925444780190206748300942625494154350862859900817624868827296316965785364028490949346306719803727425611881585265906394496077786414655548179298131762895832822845560395240770309959254570319115606546061789017257094898781549884125456724907484821028047592120695464140488622783736223741243106161850912022563919786373615252371796510928065846201673969359916802988177036646015586390730958525241125475585048560095789320857690074280002191778348637588939425200550415696796565337394494812714590813980951549999158857090122408089413551538740129605610016002573955493574657672209407301567244456718496665002703207824116735028531099279568594347846033244700289854812557668976517763489881652943640867924776705859354409747911505820882412144502690312626510837927775480667559726715515107921310436856698666846809686158575829375931191740620061383538990313510583981580216143340494313897141815428045708480826166659612401076943942462746624110822533757934980067768962493085497082996866729922768173648091183700186969386364283827922820038585956965272995434476413096259316562711437262124524208170748028413550171773661576865543771968312903911790362133154589922563798961790109055441157277968504198252336483178370319515919968549955055163174450410778347712802857160479394878247918537038990729714986583849929634902206679434295288793089802159554055795913584154041404448634744359649581012196965890892755204440751038414241006266777482838642634336957723142989740337011041274101130124043488072729365536347189667057247542242844397434723278424643509891607252948492856120249815655164944856878314103033535660703141407873962409204233253175835489231287780044374107948108734550082925854637040837182361051821484297157138089906178669009524412211665927282404780550961929151717255602208102745388039053648575167657192808560457129924141112358270228028348182154405144263975375005399260995640186766851315217643057946770988440560090289591486527974797794109462220067798890120133697179312597475313222163580780344113753490150866216620001440388485113137140159955463212144758476788874159641812730091029142652813463388705241550468312937387974094922073872126304182283921159101974556468597585586786064034630281996742005119194495365129618580121373351479955856332336468532056394299996656951383691907729013518667673082084972430309710752034458988867705122764449929701160100049048124734529663660585493637263988345794279116287821361174120374959138281541058872000536462062143249511672533028209584941780525277565547000927254052948058405355316593417278496775095383509824348710740780589544082647087642357946995139727543544193382649904858662018194836948426504773515126264925893281949224439074286793510484659667963828848254688729893884975767673035529522244592823769384911734735201930251752689016087726740688703539192627504689875898610254623324280864324345965584787271951607001267117722204438225976671360614105272306259050537949465592542951951934355401590122721286009607993952124608498930312785665914163145877045782016222002785693493427827943842063152333102542437684985522663506055305475767258735398465872190961018641065463660821605801533858634109092880724431673068670769789484321039204484086857619500883561959923361014064210416022923386741834912445704386370697560472985334979076573162344718956101050252853801056229928973536767790046387622042334161768037102101962293150446472760415630638044116254296709746037950543181870493488734771951983643432084629123483869336737290674495406703593251507227879390907099851561055638716576752296981810563001158725416452992936115994884769590373823663744181116878787760105609520591292503630783565264553963474326942453341472199279384354396259697148096463039208943850365373518463293305890693641038754200728094987278606339017790434606225665024755658808720261371658917824368684544046714302729510638845162669370853741403424196833647434983444474135155630147986658821932305507898925866081055988532108842496070194074074462381614628496293106572060853285471679534147761901705696144351726979812079825959062611616676871726268754402680055550033240090540339057034417746857224309173005552129204505109169478798122716842083492296728937673090532181977343894041737036579080608938469231864640702963025164991267065768216386187755795382800663221483768581448634408700333085995370943846920332529077054067159887220099806924146415507043638359025153629690626065104203446820400691403573922979342200004956494711209239328466724453682846265913986653843657701018761781362892765452366498910100501471189945032360798788361124586405198669414400421947450694200541875236100119345971762918168443717953073195838868670012972227474133626503944834513083728813824687832878945390439956164263722962095524934054174275981463018266058308790737462954915872755477040547883466734974931377872424583169110440074383667138416322644295652820059371106575540011847341589374842060027033622377758678686657160017281138365462850022013129916662855918187576986607192211265731928953387670056263190507707640859642607383876983705107260928508147651195308397175367675317858792598916731923962746449066495945829715148822610683788744628380591979201041001213881629283119368446245001429108432785606537247594311331833054448748063306424911243896824387679088935061373802970203640457397192838454152034901814352300166027990028411037662912850068810001917016961231082236674433829827097343413429449979329297128304922016412321569154227954391414009961479638286717132197491959605889259624080066482743235806465693019459980517030039523389820947303446633973597556782966886148771638432147836195829202921401507047717807496328446120397843090137348464113870323590450908473530385485791532949347369721704202487338216030027237979111247520733076118734981775283833607256774636328085510994855759659236703205593515480239156115504474026733119810240271217016572139078734330309046278090761285514330627990854742947178013409825622920939460901142616568221355445511059661276127561145327633635244181781711057476648773092687849371613659728993543632464118250202002637291623108491451773673025510305542203261244237613140964180082265500781167467566241420274985252760451840088252417125615541684277497928557848195083897160415545726538717215950946553351245456815542292742009444323622102991616655533443275843877851246715724164922820747305531144219690050001993034148264855690501580336044069617051341645196555271788623882110700051407652300766126442322389803337175281884672126261713363309048920083913578600291378886895814741197195194446094378854684274161210003781370698069489106555300470867034669443508919840413641761828998372121550655429983144554473148101831530819424204483616158413127052657426411471514935623051348094606890578339202249173336325629657224616891853194106203206290322149833897890012737191420917262209109203970286364545033394596528402819848448407947946677112641546619635349223915806416677706550582911358315794735965418617725934279305375002638864515877034838448718924017103095189035903415554560050609964686545371848920496327059578022095871854840993202062019613320431498340411065574491204546332677792010947072382478055635582350754010944236898245301856904243426122454753951116133454275128543535591298814322893301393435034133906217098054813308630360502537899931471688697605299829700752541970814578990427345775816714316577180777304143312391706319695088178111967635305512534176000222606487192251116199344790880775227236478450320228185782459536028743130499286237804397376212083971607436262238997885530376121654706211437439577996065012578485728846268707973192614750319807189888994657222514189794193171979128835530415276061864560774514569197989783611513996392243403437721652268561158844156917121848844396727479410004971470374211534392855311898633316532212192685408825955304897368173476997671266910711805796822637949796109384304669000098358456515557532017450917826043452048253391882397096748007999622074339370221650974997867636426521160663616114242642947560853577333184270673913873607492862245871167949015122142165802058816697326031681011900467171024729606368889018598577760453169013042217859100237642757855882607499789047293622073199762069209261117374335932605623465327743408564730855952511635177184920433766853737687933735308667760273966761045199086266132311130672707012453773606041429944884274056741333314326446397642637185884645845463579136033975951412144942334157532456446023229525860579463199375993134263202450226562642015692583477435740350315702650498551912379246398735301846913491564417002140169799201728643505811385209386042911780030819901425058663887988231898624506276049869104990422736756826268297218067338338045123592795229170196058713583382447453882894096385449683666065584361679128705733125578328904871645079655678727892366840717970843565368131014938236287071283936728750908061499507423288898546446447434046103897267320538146922952475037499592176518021944481655682829217780213125019501104856220497426975762341807856997804232339134739337337415933327902188484706713493190392052609332608973395617510537158529678101432909091679355795378181774114236175542985552044630213502494924542554353922098065836041407224681323405652257689864420558931477928754760508449802276549242858148309500698753511531084576837869294539527941229566213797098090329461447421859653181966191451320330747858929971832981351935698186055113845609166072716916230259432601200967547887960320859555474124781320378115134598737776852551968889957013258466566580705413214558392366209687645459911443695486833071543375396827197125982303693640622632528234434163806784645161775173310649888455915519845101985815486871265905271009592418363919581133887063593128382762195992913697164775406859468602814749064052596072263239453473906438667352201930443167271843340080252629921536945304290251076057903744000606836310702960219873571302481366153506194139704422621538541133545767688171147812674211214145480312466926586828318537586859796019083704048216170645284715845798557546828930094801590844294467000295424547652901869467943756544962312793455621005705983430878985854261948656619033375414352930168949149975987232913719280831631863501466652975816932450738730007016358459121064234344681406608184772247643640276114889164720885758027125718413620784088031764298809108868301157481013594512654128425164450024960016693704451507341163529517561100095605937109832753072641393810114108617571990497049149449049128498810886865851549321596164371432519357573828810216704160515907320474431121012805388948825686670480661116446197629553229217535496329902743524802535593130055890715093533954512632062192636544056922231588646756348218092521526760254296351973871115858713678371672706088233705231852710064819947033575517838654483499108122615069026515317665459105055824615047876888524264043398080096627807455578712828208990440951507739241713199517078048851831219817179988930189563014638580302875248978457722685248173307117655124382931032475813647360374831816812890301630099990677803882709136804945132235813065034630178121422916624583742706204133073722616236826191480981855403981065201995043262643037957104139773851210078874289911463457150295476915246194478454675364149880372677893603797800741491073746176554491835689634306977799765344961375796723183658003235260846851189514113877191994726702223262845044182357946331680739181115267699392598775813415700337163027058831789847322479034694093149024346559196858986320165479028447209834864076990622502110544967398712216201048355268193569272641666425718487961189108472709588042192900940282304342360718869104111358191895920902958300113365227322882012559480069342737184545557007440021373919566261893895459534170949238905099141045503795911830875193241440391111934979253156315531291964723393370935463065678231851196461702265682564319939386758962571454575513146621131089886180879179795534801169462683451680062355585463722217282286689523162438270341435199213472779318709539156699592758358831588032229926161848538302223042126623111212911758955249012948718635102330495933318941842580120956711314150520900237222781285301178905106302816849556279545941898962155301353288742498074276386593741953428569034835375798852030131441938611709956371858017829269404436000172811340495555398829227523766041533239423430252962476489591383141370250291967249120858219972061934318083912545451689089267759702228061817682801204474144109079335238787753753935524744528562615710008608138168461562662211311288930647799163212958844290312336622211117034813367953472521497095143193820257297501398192356697427573393398020477699796473597452203695696128933439249179762252329791893032587341581554679519779529080416791161925691300068076329411769516936321100353100351774854841802117003203122990489544042241811890278687537208805600920580281874252442192069439226220857785695144608278025774684833565457691101277072469385401002501536683159986019754120998804956949422111741187331392141336407070679987623443572445096313683464079284229775928438194850389079981697892774196807899902321322423860053785793695547876905419747369917931949741618254252926858477473459176714451826661335791055691006562609655141716358899958415416799522307777073031757932909514671785925270613643482201211749803604682183953180702930398861705580789949894995584459599384953208239973182756070662788785348653689215920826961442585584791699616054791327043927855771747827518826669914906762492819777023569786767705161169555299779615808198445166638576096276085666099447697676399261327580380560612229512125490947997798260317680910173671832119659362961819847957142275054324056316701167223179629839838861164594371407310117176141978636288260083125338678068345889754852749055306168897676042127198510526317516761536336112041590571154143265091725188530752200589000821844710107094083491321837622967403665566927248251322316826743891936703918319521674569018049220683909337879348884200726943924080962219875627635664032096543257176655837567340508935669872699036560254398031219594656565099148496273355614122388166292572145099301817002086735524747660936095610052290560635900036677274659587165432486823360007562380105209327085763976939067679709966585772417835648007385894570059600935934464476386725521539792459685368625748846093510843682490201603054074961091211641832088855665192257866016863317540140755113229263684579278634450232878657410101770765445707001217543257380596265828447373803089344466605316711130781600150009054770531305285170585782786015813696659866019092540327784369617946539763160548767542091905574586432699830378159620607999635860938306296370475480091106280382453020568720798053037347565929518989043169477983272151900366172466109945412195545850063255718295686097768488401547775340439281255641894791695468632000396983512121782526072458882218657200956378720909616205536741587579427214463464176967061127398391398866053604931581224184166116137483493056991167155851422298210925298548780407354470849846525382447726769832830127431608263395989895654441975427506123752573069816021667724881656999932881809085461534846818198404413142678956314900091441547757986284485661666429820092773483612037540985586820611268294804790734300582102077511601453834843153853061909429717922343654443858872725783880792242897747369561550252492479840081084276221645019872880962003362778794651784349568088793116546205317792487706671033404497366941206295513964048340840566874991278099029823488274167132141664117970944336941550807494738180083944942715409318632026944843067771216244558744705538267018618675150133896537273509592612778320402703222240498462732950820711991616704265715907980718618899611785539857816921723472639376039508447277205156639701117184896005850876777195731318380270789226551298832294506964270996459931961261429675583909211203093031008908522865826748851206184915917689695663504726518295848814518978655060689597439303708352098427058167798605499649859342197593455296352636237720269250402050878826184683156598294195340952456886072162089774898737305303055572009922644444219323511013439809558713365833516055919400876912266826593462223917555921702305677854863610990014412840637015852728397175447694983871979510749742774486800303814553999875465178328343958653928233067328052788440386068877572725355677519493742865730869285277814202428025607321961731528853493013184794441050088399956393779268551753394087252332354443702087539728572119609022239587057721114437146569768400022462276155187669730196386379724255128637211836887633295381966600433700605199709307614039966439828868247580352221679593377358127164308886566310568571974028213771607171649618659052335302625530963730515413274607645690165332214214245969231315816130695908923775933649853648945742214253162633981704770503445456492790790942750026962153474130475066561001779009220240869743891479301838280355846533017992215954220974822426477689944136530877257845042510133468177392765267770515118735798505144666203220790070809673487797727780800066481906290351525613543087673458438685147278497504780861229817319173972365293399318783675890095876316081141032925063880915340412212656132245974271283882776096668307581061059348225327303706719039644868997147074608992956011834534739752169113280021910766607942820090931828278262011631113644236217958506467024077701229099163300513116136731581921403841904029066058458323887870500592931956334615993657536384819571736350284284116608084342097639103876834367646830283606219719666973643877583274909240659231382588741616269792680581697838252933785476479698911962478558597895803502753240526040120455781977189705093023493250682815849523995958377087737092781950410732161866668274975383562197571613908315627408239681834387448823181031365061697936063159404665637239877472784666319827271357076261395239627362782222300947515302816657890287951876112684252652132753323662203095649338930516030777446480265601000748902850466579488217867684899137586718052749954772442624981721667474770312784088560509577734971810424242984084889820151010743199581080078182475427815250106565913254304037852889564758878182463616953706167048204668273907215304591528119005059337659275454727641072745594897567434519523309175857646788308260574521197015648834122352529488743978833742196143987258765776060209842207843229053322867628408785411872685396586830921143326701440716143604815259688492306168083256094082582744981251799571846105325527759856164422407465246041423511390405435715845122802555026317086283453140908132900537147439020096486207349734199720798427440977606494949314005823238415439000015655745479051102023826097028827605638680339181966831530461598860698815732672899212810857678738260443562762836891145596822187634521008686291826962329714689320922366075210390948835716416050969427236354313659316647588297636684737016181912091283487494722789814657473475710201624139397904101883877597587775379971269775617678182291512383626196345232909772497632513644271953828361097154237426489005632161833458818720248941713361748480950408547356229052797078180572379332446691194181719062146908061853657514427924356143253308224542714293635497977472250997507502804792881498697173126779022826299232110882985070028716880882880236838960292804140155585001327111647923186880864001143078487099830356144751730838655477920660792636389176674718633456143529167053299955908773544132988703895543107501453194082625040244753465748623049249593355425763338699455778682966552386339801785272990377734665364381339163684158044312724327482079208499972365099958965228919116025345101273663755704239177603521961411193552631782992405578040891229622117573269513371115838618204383886960994728125279146101659862903595466829183433480806703916579309288513411225152226874499328893673497688890268284259113253738699869264656480403232801381334419907699527098328563877489230713539458630816645520807921985301927521701117544453000993479432430529715892899635730189861004737397661181855687760521896870082024113736090672429557187390745098888761999863610013820047434983156001359297200326627036913143070538728930261653832350259678207511957558472419707299182333264017381806749585081531781782780745267640069822261998530465682674262673188985891039896006353803155747809936960933646312667394942807208030776389659325316898552985782436031504680716807013598981709513916674866063789252746744430615231174965915207153334592390152727623856283280347653804988162719582817279513820752784811172405448340442073653039064139822928900939630830369431522693972383017352401053036401504540087440576324009155546389710121664461204566226892458413995777950923547415146687032661631893800219983929997867974376419386255741409498071008082504576357336428337999739322719932110663963546950583851653221669396087207376152392348853760979417398766742533747353916745244828563023701443456198226561523844515687517739074365264130313913227922426627174486768733389438119382365014129833187669818477341843833292229309284650453886426254357417392895697939548789898634200763177918907422204766938102724827664162288401081722756899607025687164655508914440227908426001715858967536499333819666470526334578644506162779813370666162139732090243579682510476418933849562612244359308399407291528900676125940968511469894399777580303578525316432773127891441034876013446603892045647969163151222720075268621639794940194678725722844694577489832025079022194607945774815721091786125587552772564381226121099940231484641267821461290748533155836377556104154870225431469134551963163831221649476068334674235062459861409933844031765138802931015945744732584920842189503941132640734247331266858096785682873440011144664529787065819392524551374930712648763170011098927319709277401196684092899077284409876496965536089176520648099819304923194563933403842497376220444978602316707543474254312883462336519667778253243682688687366141488424915099050005064565860832520679125544881001078866973627065780496354145697565678669639821249240576796317142833202719074055276453176302772236602520799213148859989053739740212339858790197001052998275452455882067230395039468470688154770336983786387931788482692560629837168704751704291257819494246065177729230853458277343148399848989011938885245375119670976139639326360087836657468427985677630260309058923664902981622951960113077825087856422603466330794357898555019052666130712277910875977647196874232847431864708050478714590192630312815393028859578542827585494970407927183616560256681161925264690048028528056191415711629153749383372035557337857983762174660322533943612463275334662901930290347199466182322842775395812071907059372030871591676386364467409841080133795153694457751938569237515840861461605355698700751142361379604746661807205819897953666669493240095198152338533028793935978338379866690127947759491636713625475321076313520485521184017579072067344318136270086997586960811946604131195651003917382289700414448416182788595092238180052510189686199662563142974627679164291655589013625856794981712670284525429702988576727330596242473689051416385547131548355840550567218001634440369720483283613203197948297243686150850212753026752364364106240023067108064074296185492804184757081572152924493821911369278053797978847328009138663027115137036977877495897685854674713117307524055455199029223256409369392605411309976864164209867545484910208921920682769769275540334910186751289998616349005856516525788283359846485199428806607162515645668950109658497363584861287207712977350814628324985179438031649067401414522161894429029729236801334728072667516270827199865107016789699593256484211819610342487249400536622615042681004607155213699230680794030848755876034589828441780229821754291963422896273368482427012561912473548588792794649241372292734903097355754563704211885175899916250138278982665218908231631422647308918709562770110077867198394073988885660237348677787976488472429913630025478511198327016476684477216187523587402439217366007930973439399419333504172714424661248213970210534471231478062753313680712083651241322882946227709563323869546707592418873130997014216379186708835149869671064327117006709533471358997515612975345718653724526336069077374912889464083357815001226522048320881886493628150235894444577907364959425259142913925606971219101496850214401535215479404369750820458777572611453038789334238415395515845987756903721978072091446937429432602599411673939536464239453351064799980402293083147728854741091760313729391114770245201652307501942845851179697613243036694468620378492607629576486908814636202851631282253996843108403621472309581361394047397369749717791407913565279288588029415619619721262722879870169388875876177645542186027512339957802996211892152312598871175079452097804642915906568849025420185392311702685812209258856110686286432729417716510614173423604240875685433901238978257479094904466557571174947373490830361997845715598245632476750149958254301741279201403972407776682382445435636746949660606496862798255223618875644570720536750496519523355407771897843439405496045282870865633404577790176811539191454050388827632427637680108620097935752016239037979157039690316086791307478537567744895972396831890681640681778933837904625972378260438099454666193041512189081893174029567552292970850535719675211995642628566419653146516326942972078041950536991584291514542579592584802424256931105366813232231273667748830696498811049437067246979256479191342426250189595429517359768262255461314463034604918138280587320782334563989102475995535852287526381457522175475481023052337171457767690823851027669293884628768676141891945592016470248671841585231659232471543198896815614883969546067561046615197770506342063972159632433776447957521333904003939690517730297702530560535440387201840730732285966021807921062068916918997830080410084594210588993587259842347626759298042284631629260047791315161979181290340499709183883393286254806535419695368879589318171715962923772596421928257837869060548743566071045830315679212330099505757280409039676240868063016123376685397299692352957872088306274105900158142897274379001686022073148122728577593550365576475567676462609004272318359474807653271319924873566327197491543843306046551348742045107245576764220068330912495505609233049776149282733984562805468448783592474232709698163359748626345537986267562651278925083949948870013587867381153270289922227405206869810228089717107123074367836155074372094593879496377822071095643301992095025759628239479083543708205096833352183829784055981558662304151454548151854738697065313127755543308382391479362525246294092909618092340565789254860882316732036162420267532564201039249539641573194093136935882039579575724275649857117902092306467590735317346977227508406788021225062524071504309419236568866613641266697562177857568282664786694776453306315953576287146317350702773400598033097566501972724338259878484429124287364796315822575180424603107802162686112889910271789247221509381927036229152385878364609397007830303766884643260092944265886492628997342366051723901937851885328631781741108288710427293517814579552335091968664526347081473295469815942271873969841707498819404141258500378690540896450923477839222899711686142418731304264244343243877832146258794475097971668396655208366448093841479032927159896610282205134176343846884547693628800031653870584130379950482972295194895118792737798031832494420837771055964799247830233283302960177254165367184704367126637334887632990907504365652348688289196033669126200465852087995422389791375627657818735051612295975033696233587414163708891299365705173991430197544929145823233345445820791117218276816765843209644678425190322344001337483651179011975200893291169330784907913443926752079777068174412893708908872626086482933666430105672334579674778146881279904876648836921614455032329983903370044927963063203386070527362736106592327780165309948013399234037753587347949100071638203517265814297298593068429990169907688819503362129786674563296247001989520165036729785901393807996949156665751586474617737490103327658576652290467604360642634319734843804119946299578900075875356687814776735998888616476360992142359467535137361952567529336558553765010777487482846633884974091340589077318547204518306325854384377902887929954505811197788012034956561378828549600021318217740857738833664366964881882829696208739716720574524101589362892892145184323306554726281030407031108850745547764296021441205059102358560502611578714138964154947171018430734913900119234814744999731668925514839237054218132764818979425141248812046538786744936816451662244347001810366631969645388666581348712033879820087898711842734901348014660451404666598787044459857338698572879186546449809732916771197563455121553775928943905839502353518119489250884756853924796917273138463752731749051036962790553438395255649387383809805959835828416398120598204254056526711321457561395163655122107952724661264594075665524699689037904450529251538300614523906359777994441476211973669560979216798287281235123965761274677736430572569268445622223496495952563652938920515484419004998539159039892759357505892421917553009874250086293256011219374691946932515156669284901783850698258355264064233511528432246431669559563169530069761316953741729166329358122440575536658476522549640463754307555390215453865036764083078048190954454752771402978446445138249327745996094379453152615094509788347963360000885830842544546030530830353590643437934796908112550779352370979238519368239106160888353541552821596709980441739452187803056950048523217463321119060660841542542659079158088832035428233797396731786355707511769771861080866115237041906523793431733474991062258934962638061272661820473154466353812284229224544531422153667299531056893704062338308628703851915727014368718037993727223442116573368631640982511704211577747824567302931079693571267081251134826551175356860454188740958110042511899364907407545935667889614614097864291200407272972587261348806873785423974144869130944015434204920042448127879423137080915868445857519887920225572090900140331802116108796866851127385957632873911113303597091557020080750870985767806574761818271953148575331405371262317237779064840347838686541568110939465793135480657451295677574312786904677285958047720277604909869886864719568657523410787504883504111526721134773958783460661031828070597017173195445029067933180883771019429608494896969816762757630983503234266313449682849525342450010140984459234294108069860311920982125257992692461971853402170840597569482623968156736275783515348181143802930772033240393253726972203762787515996681301653404696024435961831610281012955724583212546523468687954778299696626992421846626298107600629814668858294047011927762241117314730072208144202693952082801907501741912141675344902393741659185328696504527471333096348271925265568784806920079945632366776273480250422528957603687395232391114890897368223325054205419737732405282641461960287699293013784798285388415844611447262026023719147454782124185310607928656019546654091637822766233107293176422522268822935221592117063894132588758832384775737482495706258507740170204681643481987859222263220585080452309212834448336511073600621837341389299860220855713636875211495998713418231031125072546663393653326353836082103360348975896610949157345494487283560387287171872957335950238958887447512840314148463754447475979267114817695118804493225394817578989952278339492964980673380366821663309034870145068260600865385190737116877749290900500175120342520480329403245449944721145303169504886231791695739327358591668364975958044446895503600465804724146686626618247769292922151555212696285421482953159468578931634819237654442719136953423052133884572211382633797804203465695103704179000068822035222906240454878663395765920455680697643814068940703782638105775585746431058100390210698754314518501677099871986071367973761687537610754313229621738588723074670512273325693776794349874786640756051505683685857827165893200275011262626647356711156603103395681183580131667551894432530868571054338354321223850725177057079751690317684558109448807061015631510794980952302152498758741586501625495049118647880571894767182284289543559418632296548667522435128189524141437585923275323887881861056178027467866551604433259307389354530395627377275223906541353983552415922967124446993858348013261154389734671686179596387309228311979289704931765395364614067887325315676188361709566691715117097568789820281390305930031907724475606338218777221032239598900019403375676864779465136727805103102538263613596685271411646191071555266306084430238157213306325424457925391047312095816353745719783907721647627094302786948586446535908687068548324512901805090798636043828741220139941833333473453273613647075875876484738236114154987543983842178560475805515760027399857252781161492077730320842424124427381201625261530915109601188402394941075822626526043686989548604060176236607184395068004699014684675527979022655065173040819208347971648054595198378930513318023345851045860057908264112122106557386667168448267096253394414827827135305952847612603174938078151210055954896668499262616833638753492891483468750668002246356023740507978857510343631565365612306872890737443410513027263278111935205310207738097723680438317063367144975274278583998487499261020439543647683489470876584624977179188284508446468217328615461860607593003430347609501780275886475486737776213381127158777037641356078827552202904744661026728217260860136959347705464025092955635334470329463862405939663400373150696604360248731381004298174464142268646103854937579029506982450039613511442824917959002497779153160801558306731539763011471709596781195497524904481468265334360874666756661577098585388817340644888855448879024701233206578282444219348952020161521417527819874508571572376428310557772369122455409560389414290219656381997583505596565822625804134013788854287195870734580169138703323564227621647804060832153581443484251720283200348717672328868706801368539172616631482661915790849490562590977720734747431740248321538172202877301785213245481905828017240631194700253154215255228404886340065938655503488768884188993638687668378985716611103525392471314556601791808544154214805132944793968501763963006228813351550263606764260283138391631020545023530172758378726790036544908102517588680472486312619201442145259162844893745757023102095329466023534579909815737268711196464248108669556797021994844287377019485480635448600548467389706352666759709113117250108656009697319455533595003178023555080427165118485331138180867790621610734339849455701474371528255759654280964916992127568141087275783903775709758507995152714629587002445210140738515333690924920565492825919163400582815139233836316709618753888578520982185000666222184687633357238058611186522117595022256926385422300299036352518369523657959935939938860032823042144680133081240775235165151983208881527615586814895441495053310500033025755540728584731867292803030789669455551137748862992800354525886773733257470026249711230884364549789435451544866152537838841178056011871540801279269449188021160764411697132036859560989799894719146846959119199696086976278943245791827385232081834870112594295171227427120396817146163669464147889979797654495926819331479414475082552429688206683657406664768610562243854883815220035144941688357406616985887913424958095790064989633656852343780356382193716247482821213730668022649849097320466379115590820511287631317367526705582729676992923846137783215033350602464356050171104719600318793688459261085763817055072174693954840941750622881167768408877305454551291005201739935135800221172078685909682875925139630757915681844969699930068418284347922051669240731052504634334528458251366521797489326380061551050874810961366658293186034053346169294957546945153964341153131380786230459739015454190720341175437244803850710970637754849303338807184715465140149737059160361038590617898596506939872095639187830732844674968797663361044537749685360969315068709432478096748721317546747401737756317545087095352459815611280932172328729338000981872156636698617502274284176061641164817944013131611832267847222414943018580567201838965174443029938873672175082422448276075297965139004561465007780077292866571177842192844156253037511587096796284569034477993483810632546958922422109434339799142763834165550122009922501950910258460179304539224421483971696287652454062586935304301031744859635863314065767758044291488772248766272795410641386310106131897682515214304580117952929460690425590782223949812109958113155210601972096229318355159522259182402415531909751600841560473962569090530722738754072307106484735236027692224727647531597010722206521494818354230974854354012483391181847154879037541792326215858268051016774568960857943569346194954363254284726499784237245448981970813263418913916813607316109882089011282837672415901172832228323184077430662186218882204585653099917533231708020226643361529403870914238747677551488970898028485395006108776535139556466294798002328015314162841856823498092826762940334720361736290391690700869441078566974596699642469634478946675324896171609312752919863149474800152072260212168464386142893736115296473625651295212693276517014415808047695475011483821581750986324137912372233057660875980722823582488592473424108660521427686456532591376302854450611106596471333653325363812620826576688980585064117606930138074110168125307788730945155688159996596224308957412257054223765774966450046737154322677591210829382112442358888635524111689472440016904864663369396792296730784122132394816483425161959466008809653889694310576326011023794072666309492897014519330991546167030566443565205182110446980007005284196702765268894423093716581770682738196625448547571911984845423734166397051088105590961098874953346242846757398999741839614585927439393001055468240811140849060887465953232957744349772664251182035057479454202080062230146333823015996752968994681339878105587760718695327103188162348841438748737848589784464658251180664483655031108315406281733626065448808268215196092481883558732786969262640292266631201457956671461551883065096494530067763114378049785897391284097222708786307444883133517829538676650988920325159582582120137268509886037120338109603303816750125777508442729662205477446226508285536716635471742972955978993552661713666469380355380092426324174628131874045308044521396556843541990253169013128803312981318011981358622358861643596652233591349849427351283319275278503148132292002695154595743796418396874990862355215130568731057864787986556490493629590478792438211391336560158327415282948399317522302028196970437459149949455518751794547009419804520333335923960208646053534787733347852315432728659251158339155167865936304753214031149593853442545889454747014639669685187192061910277607244816901740011545386553809997268920674356923725397949315140013347658053231796922646389162061910976700692924751284756226372453979722569805074858294389278198794666698368103310606542152421955423069291070528828262909214977195447142189598041015711650884562521647680956643577865261001247823506679702574075455118375119866049483422041851780740740014497675311610696740112041829602085910274226213328574853863925330870685431593862234568373275944807795721333098286519285865451852736763627480995388788289093545013084827314036995448407529465558740383021658858668455402240146149119840069680671755856561877036860144257030819819724140727340823758439387106231095302202111939181131059168204881874700558446257746173687697433783784763944248977420721913709101114211314853390367989864329692294267989388398880189797985216261577026852855533105362670015575315941777128161525864128192977726870900223034118484532158824304458701073931322194156385754138600182340264634766267425477878485094836401400402680932172873462306643631855052465776698681614026325409125874545989910260719091391446881072380582616162468598229829577226197564818605741894404834080649677513465692173069224820216666342111239464385908924989391141898662391217450638627547378108468094974387228224947312550360591827805415067963026148743438721535920997889382683139122630494893915415225635608718180717318711840245073581208674584948497329439554887623331491222970892135515490948948402000349788547409548197166594445324233457638108591675211081080709495764688634216323078140454833768448850380071553633472737979479192645140794580067460458170850674062594471167508079707949213462673247142590710178689029183592735601116335798845670851770411645661083840504192215735041733465983255044773897920329797275433451422072161821489276739111389910025073299902769542729051987358747980977266714053959573150255880068499868981967585756198239957379280633370343658846709386256279401953039036014513228794794144466535909187436096496067643703370423883240213804676110314779409693908769026631833770449109314343702536436241955168641990239055561854695171050500200699898128860649466520107478316787411865061294502749696529955110117258755914057571652380083838258039461699504246175354704100858843027016443776179235974985620749731778475170223771493975939343095582147320412527504962765328990050489041081863678247186134111449530317321776701550563748976286737023425051755088527012871869216155834095499843257523189145297429146839195586297269184612225767580919952416010131199640989612959774499329672742050779852596540988559947701074566120554985360497592821083625012073546828634939914639993919239348088559643817724329516561020167915172196459196918107077982284189738285778449631566087474840410468830472834088628735916378738891103531852683601918418874600412443124335702227815794513023276145549211620377598278721566269887503062723455112649239164707880688800628362048283731292158212037279540311235726163870269414344225596927827666342881687321219316778243402158998398644493243750662928371869132427041584788800904540805516063014420119651149564084997478344496454009075102032792515737372417481919998869654861697137471664217531518530972381574890922398897556878857199493359510301881336510700955270758221939194773680726790909537280766079535083823009667103991829486505269880625065011996214140601067179243636160130679057199231435143071127251955396908575615368186924894524197468559552063371244476183724038623641440665202743476147320193775587075322427301085608930708227449957266044896032112445011694073986609967412865036919124598592726038721592520722611137027069051178787021027447290614915461323626010848264261175934086265232635894260127604562854752251889838173842257892044398070250037837041731345753085842054485318998874491436971853703755874987673564240212881725803851741624412775752383157922272226572089536017634201650309804423323389114466711941971242120836713448540104778145768191941041735978374561361854181718582004967426425888015518110175864977030038591277797881491315043990094189058611140198715363058343691227463870690799967371369753998929150671655504514280757449458093265315787358507770329044786694359203092196486700357978912575334551551951021431151804056351056976373064056332552617949764309700829122089518728539032598563117330797996583925170973441651776605688734716218992758472240292916590325693708780606861108909597467291414618896426769080932669105958158474707876661444563140116537115928877209885704923420658585180616886562876894403638730897933797948913843839801686803242635141105038823219365114663233834895352025044695545356400007615903300962189177057944115205833408388906087736164092410377993493719073337073982899412005853904109439048313909954522868377528802428444087043512297240795226212063070812304684867864936177665022900385546722650534035671561930729691654909046968444834946752093663272119461174087864793614342087336463949006420150963675838539381452705730535130477814302520221940507636738877975210038319415464379149642970948226336895464022530674083631839425749075328415180385128298397975208952151659259106885995377771120755858929584900320210319235085720407087284525844573832779888687885136126472570400100275041513654487026068658089507334409755609298562450385858935980484849164826730755047528442555572999357944952906431908481509981844537617876607448550211891243731767215141366491695756837318042782142590438779854181601139416453197661682408148376335725672787648990835410794761089994494531551505518438843869762193063978457247589688437368021366036194502745533205892536456662825465008429133128257690926196669361840297463301449342137670924183507955113608709332808518669366239289940790306444809268565790724334013026347159471359414495364255286941975155024408562017398955180778165038062565475247684236885869445625571224035568603857579461861418307453103552753938246440849106300269153389025827326497309396620884950496025309241816289933222928939595569291745520504648277265726305974360636293950843272829600849954455133188225825870839446558131108275708779568440731482336442720724441553006606371908868122196496126750938685383650213272813911966944188633780195393677065014466891446702523742084822568547245296764816845764047602294837271495728619542272284136737620663619144013970316873598403547384082117588849180899787903553665874347999978295618153412985105179944925137461745005376317546515014483904369313678880729457818565313950177100295811445708401937954259005541803955957031625026571410684186890680291982066135304074619424414617587048085140738821425860252171039424628365036226198719687083940629456966350574618674332654587924995143635780931327774876098357992240771277733275761226888061928007668128322983944887947769478971377608621170047781266934649560592540829983695880896336676131231166228562875221003883294622161993761127474565539956389443374716005270498668040313921468136456985447662322926813658681001137861231045648398003467936783762380200913325016399958101827494549432350266293540202019245830620456705244737069157313995442408812052373774103651683317863406295403848447722270185993522698657712658283991406794277306072360186022749574860227410977050631505962124216199848484093287678539149643186221569278090332256785262560799849239788373668450887367605494735547376004233670178324471555089944699991339790296237358769848542538222486352118126821719838209530133757596521377926835854737180100075084778612258945297206024382802267063911542516124627152633972124045972017183343998216686704545861914713622601881640506255187519927186365503146847373784846592535612391176615650263641934477110380546650219608377886193248967779590557052710602484222717188801879870047789128389440491507132503167931516600201287053022404622998409112058243581094439607100497878197179500270932534788360498346023460523900043196074459447121251049463515328914443037420463472337649224444914351299530757433790371863411107113347136933335386362486273962042674298664031445767985856156015350166550552506965167208403586902673903511131294836811390913710671160423174190369358117548060939599999681003651851545028003104112704875554059688100687107575624906614941313072117499312399623118682874048711516688867924389683481197390499185568144943304735134339136313550532808625996099688161970558240429380853762130674307726949171707948428995093571115689831114971515260668434885387767755044086274056823571612625499888570253653265077088807242161286828544476473202895709417687647048916597343553114806535566785777923599971352902385037512142301329340914114298658902145564298408104120096542052172983881047844737669022806765599106581493826155447576620174457203052568766300694416105588036732194137588469741749372619448234119197378617317415514340527945247452263625962033193635378212191146730627931724506636313039858584852396482307424772767297123168329017402988478273412159771459769520015724197299199493454744249991285711332852447259489721143086089644466884640946588216103986743767579945798260545443094812915317657824677838635147616005959851795140202346111501555476885169798048337363292531529960537610386460406765759542677318364358028334950663680815849919681181220139021554624873140921851820026672015437264920516576135189942909917063355791259699752021412088154189325978546235442448073314136223690570131655568249348432333129340181249290255347154757156715640328665370654799902208418030599575491089822972283609500752476585153933461506545866716379521839053266576485121045031287584193254152858277433550772433412249056493608831333395386592355091753722734429128587801481124419795942822314101214367925411410619655682306164613246270536170767746632837390980567698600970127506803760735642415119529047508930102454083414384568579667531457733603444662056690496790855456056309812053221240063188652576322166565462639567095982383878983945295764907545450377650544887005511059696878960960290575673567138801174331583044861105753918222403470656113903685790535648217078076263167655275664588755318215868566119623323091032863844794957963151918300283175557761793774071557135677343709098356392603355476755520934658297675647028208078876366557352871091607473077086815949327587956835261115207279452197712000955766589380065791609905926538719039742533156529172029800383820787323464559289100355140829175654154833889274362658231232553940782588736822686768513141853061615016558882894260551221405111134672284853048063579682754968036159183735128919320671933364493453868360150090945514718255810686680689810439847319817733386614813452052369682950254608713806230049760196195055398926609083072370102123331229004593931024683948856192498895972460707071567667993239440264131163712866833852966383665425187770706661180702799811014455871482362346942327956485957446603345640964456130167093862268516524714610505686517410947133996084257304455918275549744035325314810838258822994362846663900237855727615678662981334557910069386595580891323785562432248336658013466567925648561855434779663665404716270386588325307441438113738586409030442486807398653219819165667578099697143772086668862939524240692081538041371228269071442410844643162486820650556343395781391920325989781360838712049862468880056107368913950428066453294126252954311301250750805940820571565136841547989448804568572870005273643629867887142997541681863080675521000676015475872285805691851844543133759002542340856094216069490813848058755520511890785562007720752417146307601915527748265283179923842140604861274252405075651871407994680648173278429324433271856880301873916829168870067329683237465204756907284694615312435361279305769935059262244331363612551652188233767507807927391000500664155893825353739075807198203326300789640770328686558884383385859014311263011829880617900431096043928446896818778138648684650116729690582373608047903672520499746754292352060698568416708065842344433265978013401580916625613110725436366748202398657267432753963653799553070859503575749516378026983282188451967571862042378451371478193048321215880386250612160856414749430412125110280081035964551835803585034845252406285676254733274072152452310487595189112322835850105576781214868368289671478649272075766143784293822835472525595683736333107472361936755623476822867936808116291139509274858116052731540609189308611922538487875062091145320887941400867107320872893928335100118526709268770948053015928131950654604473228423202731888489991593053100004382823234741695783480191947467270445919676909730041239044773896786019637533458378508425225195575102765085984380368768054539000408865767207191115003786581297309983885511763430176202361067440510422610839920844131823315705006080341002687004265488649369143653369635126407252901604387320775302196229095631224585058748037633382590684842965811988563579453871188632958417889746913655805102094739868794827120874417600528033995806396708949666778408824532393962007801607656305768077922636635908348576740907005099283504629001741248345271712435170583577122201382977285530505368571377852540135457426068915113808721994603531469467290476057482909087546425883239888972815720428425841052918510817271319238022813137976290107212192463966507766776559072178842209195947973075547114408479614163362437008955252599115600757454354528527700450688678354131689752169687681829068837823488319185116266441518092524205468144725217194767833540620852940892938228933706832178870186699037020257701764538465960500396486688493996876266513723252127767258541913488915945312901434674235456567614182499330529277074856476766008530730387851339544095990596849290328980454876355331693383265878087925265037067305714360558341956907643904406686040584201002110437694630482363104960790041411048645781450001572786824335235985861691146220970812364789327924404880015926525371850893806523028963846424330190239714250597689145895583272169808868390958282921442445326599041109506140867484112008860767082921827957998820520318390688574144917532797839146339193995719922466231860509544715137659268697963294434444279924596090531822994025924714418446749778603708654700186097270085888844150935362432025545522518453538771018861290411996996382155228351205714013317382610842465447258980857684787120902114603832182756007008483215554112160344103431939811976423469903965286215245854293942884874545108133392565051778322619772696596205788041589497620289078350724323775666244528703450213184144281482804563353437073491463118904986289841713575323911353876926331724939507400850047320275609118832968143687096544833079421586785314582952124591487209670857744101683593894942186120383251694676132577943966113262768364000483545291000272084736568898986203149761547124752755766570222623428393696206302493930136828578114380714367768129526412368632293375556971571121670147766080075935076759198408932733852272096151374946423709730059984624977463963632849186889149210680025254490351468763703310259685335287473105469098517374284651520537102970531435226901832378825676359737341497342849952747842992612096722007920137319026470746809623217288241800160095174287033846676919358714200626659893481889736748892193441019528183569462603142133683384412260460005517210819328686255700497850604753072326279726112620092428714136653666201640237511457842506671793903471603482060798285034454026119428642830899232906305989366843095698185386637086811964610382157791228424354072946129406337209348625223150179039829671089739289811832436458028651184216655812284295129851879527109092669692143114659256988286523449828695363890039010334997911479660541100074720466530093649801788717886250975057347653776105599323393020092272137267305209952230508010153236882389993084979643344386133377712855740526152935655848756246136853618369170524132512350597587016354982211084113486146370964760261562523951564196845015261563719487645696500025029094196792810298789055050180097206446639476435931512901564610584096020147732596342041259763109736493821790998192768052015320135810840093419089204458548812128629291298641619581224481052806600156732161798596469324491255485204661819408103624580444363655405831544002041938559630482954202126092644034046016284819560813201364129392962538301283273174038461014239016009095312703834980381635144343344727636332987383628326203235150664037368585713534710785306122845924954821848754470213371406468853777103139108131911888603478061725586434005510846975598939878556753304074847304748675810210139254610203373483231316496099723344589210655818869195697488603662029609646168493327347362435424579038962880645198747746597748111391774454767780489217577801496626626024670311924744430224395921291890683654474027739509821180696287040885736084957517373241511608992489477456556504381183617768226320166561780641462760443555440691634870923717470071787593060177570634754734676542820905107285381873253075935096391265489222241127241104314497274822830321248922833367961866996201449049378536387931463710527833810374590893151012413798000205701439052635182369161626336506345207187137009098586934370229505552839468850348675625635998135836659974800156688530499082266152000591559752842775491944921407380590977289080551824621970430962411312147319014810827317146219985681419749572565076717111169397392543776220672108907911872026250065022702841813159947006233803948573948330921851824857448675719745061681609722437152300350492740308595139309248464166767552707190335072389269110782182524045699065531893073113448204053733251644517540742165071713408634406807122996183494345879280167700881091930882026455839304259606435303423357594223526927463196450518847377718595037916389778556945327173736155407792671993380104426616121397261332163251539460908835210842027070758263402805342337883987308739098553034166635815930472590236187609417132824166487644945091072605022063629885199379517449886787882825168550884082121241292615434357837248972474316243444894001362930576071584094352992312434144927433897767586761399570745043025050993436735143624647783677229346631750263875911540207262979330205992702461740172828372038547482311086576709063077583916446410379166251878694670217763131755077189833317129649398857726532956080957718522648853984617186122148503989374911764451107185672007865946250174365083746202596086893916870198060877008011992813341783907791739674079805706902509463269097563348062810890344147495552652433224423920658518195758049921012934207845874487221336429408674096933667040827834589309519335290439095481306758143032926771885289600858989592555705845516131940970378316222885565817791631691218142641554902969210248642246096515494111564973465110002926756882197283174364968980112859795684187284377233443818981974370084631343509875961101016766478289779338013359329551164436769290280680373018656073323579224500048599410075283472665204522274868118514927024919060369045758314205727487832002062211467473412454978347460026489589068150394617068908804069864416743086651524537152143386248865785718978783525103307611738986624315184782585357211030556302889802156385264923636347333726699423998052666405049980814280344161148805557646735423131440114770171189002224726201479973615645913771781031265781503932651399944840861634792568912969807075992962608299752836246640553662883752060344206819777792237216619750241561152515948808021842502889644160303929021101094252677443317340748366175151650640393194077225175571202415450227521861345824091395119252230309694496598159389122475426044320647771274244532534788811499881555461647561288381282787821123242836099684539986394698077997001069952493599983034793857103027153749154958450722323618729937646562769784778825364553479601407684885300861797120577537930247170776060041739280308567752231085099030759988725650487704636967638375009173078159419647027474780821308247464497832333710653241573975147882728158706185095976269646887129026280842309067217079283719202991500393625865321352238855237577805888663956560020804199528068934199003074512506289377910036091256697628257290408554160252563929966791281789574407418150119222071766951410168542018958650230452507789599066987934099019082020429442554962452220010617901995206820431802304658426531870597999624365464969720884370227122713983627620902011441833990858307353270312886235949663312764651732312132577889716173744832799526972029469302117858261045619221548322470506031261694038453171651553565118718790660631502830547761090523778521223677455016186176472804159734806017521812134668733406692047742785594558141254150103127462824178528030782199006183037710376839460547905717390296047362394324712903960940312937972575637029255985341248565079772288044312681427568017636741633229936228075861152817665034852487232880213542337931992910333762142633522547265249954828189873012969031943591872727430083498394201624425392505252167913328007133354346073280549509731251206915260675944315343420322494843916110136203343663932310249701661106429498979567841183767803663073633493520093753936059685177886011053724263194637413732996757100880320317906920429548323532947823121937179328954639419850035615784519968659394281078130340009706281051667998457416399910534824057119747013334246586735691788626613907452051566321260273795117108481220042095073022996351789751948188478657267037224408666411460902967107696425687510924367830488826036421025277921564975308671419490471290606796625797739598882267881084954646454908948692062858554585573427004977753464384275968811186270640408458211777380951296953007255285499498789478524760562990220292551091054690803458815059096579935994123422403550915525114578386944457891640090628288907592176194446853167563233530014426798450718979312244514769251475385065930695248183577538468388539144732316116736941503531836056913908089659078062583346692245114130080086755396261913331443353641510315779369208730681529103680386278464841191799724442774698728263245883177454249342972919145144523806482580485425412098940560907035696921560174268307164902162606377169559142163876451164904280229822637667157522778024021906660756528560268518734221288724701523794444845074762909988773791175120946022553310897171613884246754596832996889950898197344474409700979203703971802058033502309485669986359993860367702292231243385913585823249547357854032180808105706190888130119361203188223163535868968962329632602100376511080114379374018991083919965408691853402272380828032015287713301835208108069898056382681961930703587050680030083510948507150102522869243386740879037509738417708145192020937950536833518892755651016302642232789818415168897344765852210419195811929184640979847404591629922997274502852382462010693328015770690149129186310218723690612226886755493215706344168599450061355694407813587165774103973293319479396270049346148006944282985950343036206733205001516036205089168749643574666861801582627096454764315642470563806827409852416328931048541013137682065110814677932626029710619594198653541879725307462340415582580429527898287464338344250209190423977559076535394914840088209162950964448641102117662168295374558847212487535477759630681317638832185860297673136100305135023588495859197648060983041506608240264700112712161706829344620652430843720263114409695466107633999798565859267204352516083586376184898991666549198250238703880541352377018681772851547972498317825449606844677269025550933586824005642920002697969286863632164316990626558011590549764706511664434789673985742245389498543650751312663897701812294189198880939724475927702442394051685665773158978185308797464597242837775068985421480744332248459392903921872372892151290594084162258453624559826667276634019769848996789242295965441929258438520331282233815021136527644120069181358966935586589194710754984331571934135710271650208805379739847105036271203294336642182431645773328687511205472323970689327606540488527438137899285694852044193076884978211969800340296863998746669043730215675502050451059299288563944537661246649796787899985635221504345837635897625410539756460255918767441023764527896740965543356056007173423271921370152658011427239323235151254845718724347353743737799075014099384582093684063635772298505391891923902886704119296474551159868102470784284363131993110012172031424030992842885981261021694811563292856540566687609831468505364755022390270570053333409712099501427536423435644254351633137927425514952646594297198493919483979899443869600076739438703923019310595533958826880852223174063994925948441863038507150686637852146026154870486984336236067899721382308015566337550088493143785393726470063680422266223250677470829204115438598699960350139930164646876505723267454703611104120911003772567397490259920168856371109864691913473236959679662230275986285735023538311717516293756527077285371791928457251856290750603160762666766003995090225609078050932497363674461497986342163648071450839797269509833689919137781328476158404415200286190626176281793081023030185753121508173434536876057564234817403500493665433748122667921175545411239291490480886258061107851593662779486838274726277758888696359437475104677255654684829232118207185083437935533642858103845145894939798364931325406450004818688186179866671234131712412873291804805024679393451146155894528469069624001436313236885932198184319265423822475076675018373429238861629411006683453671605886325862986199441959828562995158251345324143560722112070648747343609065198338598233807461392634945533868239908443995482902638207082396848919312546177325184817549928301864390066321357600648019114192550001929916865926697918881632930374292060108562218943350228128641783579699890038737680617093590450676794785395403469692438219425589982728063304581444272188221035470767664928468080823803106838548040821772793441560899441581080071154003666969069237365727912244685901380935432705720244208784644357377053929737214684217778759115395525278827905304592458542469191025180283598890976894193616864229543860237852575205006699219776945618454963685783147795258402204350984903371625269265553644320735140275523903550331006489594085582188995561444633056948656958697197878103037467981663173332507507912393778837593524737836298574361959453806259718733123341087784415306404620118728927549574628896028361337879418171856538511820039082204646611438721411898311536692124564998452869815064533060202059167642055883759343519929889039427767390126683603159923094335866042985431079286241208390403291833905696236016488968917778096418875264873195673244953574229254896591134600574448726774724740552287480445255781812074110788221761390490666255485781123419645847825777760220127107804864728213009993122197539113802416388462938009973898130317776080427021601786036732571281435699700991662446274032806410383518915898688325948335261756889995331538276638595915292114931616666195214048941091377904052053431503541641574696660494907256848063407460533887922375410893053216904559770016649188911635695230166693207249908455722427073290422558214438613044945116165262997102607507314972647455448977377702757441542504148888018569378452740374120369216686122581471669826428621089936533353936389570375947880633289865641215649220765202219617170177888631722256755046033712333720308214127962809047327457094424628823910094456062456550866706901387113968376328472004069630159851444933889423206466800652517645684883105043717137442934835998985770742841129031445709090594831569049128582452472047185982477034070070928565355438106604958750885622765618260329327340468639341165013529443657663135155616384472285760458732306107997935931560252902167327490755630546523383242667810711920879252379209759390291392352204221248000760635246976985461203748982603751584930768456128170869503707842771918052773002069366684996963403583939000589709019107030988740242566608689546607163573322836833671363885555968966395089519979514790856185068023008358202068027571670911431216974528558288875516355917553867118370108280450666905529319652639709266828387373034419615954516681341380870888655916099969252523258846187169469525266337343823318860150463095375449006962168826439902799070909382463397457602919924902162203523551305342577010684690724913053189757090133824509312268387497483987317002808924626781514738891731730100116375937794073046937823904378213455901655514651770471820222188769290355792707818654159718415100881857184205500106297910477692178732848831453401511598161149143800552161727798526887401846672274844570383297711883110745700244465246257331489445229173993609432286819704062215541742508854392358556170123492639987195457606221051080984333687142095410719530718888982586923182436831048156219105078724807406908799711009777951103985502512717653126162989773425426107916248777920685193596698191720502694220458820372844087362562871863104050542602775469228031904466874090670376202131356632056631891868090222341589069523175258932199050570803164758644944460383859544987578007331555818425471995733801765911223253166634935823522100473129451201770320507897727958623844801810152799432940743044551179209828777128046276947418109318663774744977273083028515292881513695168589414641107969554625520200424353754491432843992182654713409737132436809192229759525090628515952003220439697450534871807253252307189480163361442681292372330970943987092943482532293223232875289781167433887930491673487736392474210984083901511724283562475345039092879516765431249983730799257224418103914959965555310023249321154001190728330903735685569445836541743315722043681643160166074461174728892534132410393053524946820045016506976627660594768464582119405827837870417953737009539617521737949490187385212473638922876665461087322035959597782746735555878926644618452089121507193165262934390995201492443741423242106571228179489209434369250698354586460528408943756401119003716614379556068364717533317531611984773972128199800515627264093964629571608434832369141942548023929618095116865777076742322693030120412664556572619222661404501849988299792700680808097398276595169886060042410320377834725983086420944282744895244681749851677868622315277437370057045081010457056044734411743879363842501024511221268957381490406252636448250917774723930168185317986029943349686369250079820242714057309176626196148867346958908470797214264356462725162076903660837852618789534336139838801105417034255814788651214711734570068793115163195595543041255588526244297566950113270096945996780580856622871354299033624417717469833470182614392388819694693269398109707918547925780827562263666539283098733859088032856561069688020642748063738794533688085264659399513834161176068279646639608045274208485866391240964500800917266248232006839875272244739270847823248568824173836273625154932108581033494426553002263131062851134514516184280067604119636187229942348876603019553086564908494962066703449179595602454381020601670841997340193565403231241945559533095369251540814147358293282898619208375302711800839079929944762924276791100359043866110169702120249333210101345342870878565235333723801450748401276835464028415859304236431801005776931685960273449830210516210884108729939318314846676670849124281494457796719245713315162430226535334689621675404053988751081675391349328056471604192002118917908361039162327487082660313926587577722724087120300832069675045514768818668822788971426219555254995538608315314301015082600467413200922314697861015223325783548698195978546588383001271340756162070276536389603289927523930202503431520235290619960400394829733494772494485614016601933759185788720347440726067322966647139855534687549284562498400694786514859365267139427002011971943961874902530495381995570710845319826849101069614430465535972879782784582062754707126052165143552894873393341024797570922104361310944163868714788371984592041050699127874628259296739421975957313445060321325309794716606757434511249411473484171274541451443786083304658214157630735736641155985811042656048741204474642576543949435697206955154734546920656953147132233113080701971457984443308045651658245916197213171223084413580110637935217188704525896161773337550742324716906134594235353460724346626480651169973859683613374249083105411061226697080563159633166453161616567048221023909128451382975725101372290016646654910850185765897277831634049461893847920284267313164245062252421850114271734611301494978870247971981794918055527468871186813378368963004444030761774949198287217785833840054113320904368606228874266442101439448571529278329026427307095629795543049952172953006242485826337849486024161001520982441560960115907634360688771577678223902472247587650659520654603829347169674686787842658949215249205667383704749128380656980223430263149146643695636782990731896365163004098992284706708340175835678169638052619205977462499529833290523624865641920212901127781287198723107573972485049169260216015285837485761593943832840382271568229652375760816927935726734930047571882047010817349758898544610980166598620918745435672438443976808679226021223022037797519644465373855963631521345823200990287265204190110463819397470841922255855916427926349682108991072237885216043430363162476086893101552659910079761439092225035793885379748646546135461383788209336071900709141170593765965450423051935166738935085347925409007447727124165294265486540238182472417860728828884531929186658035224236813983012365327963634885010860593594719330730111109381179182217457428376359244791508456744309747621936308380292611444713868297270524220408393033340817146651147964021303944778878455405720945151720621567464715959741339933230277583709131133291000830901716919191090290314991754200153967509204145814686351590312457949568937215943150004306791422784799864903875140578008853784243245285895967115652022566187286862400841347326631574245746379870394690790776089101007818451776225473145170769544733826242636937531231070104664579078435275189761214565671001544019141994340640896273622515083315848558885273787199097034831343055047916399551564440565692759633237480175761311650655465874221670900234515776700027790410987877818897853615679513632612865218930102946130108083299907724649414312563426307390318728614914855549767087938184996311045753830265084252251694455272063454694098199788337278977466328654642826188332645241756911116884347927863759185712437416985146661831019513362807768918124008236685005592880274315918963648708710573454889466910825525171174003394375703685557395611226276080993190344646459267903224212576348369891753961332283226381175987298053230399924398162505764252275788086360027303474114674552148883370373101286372015041607986374780909209757859973090295132486625884162328688549231634856848250991705724787408039811244100883486303433767194089659617851216049384131316055110556916576368265521108457656233968283695109001515333719820235600342296032894193755564594648073648162305024965627105637848807578679974646623459531189264478618569211445559196720297230331801038174364768819216433237394481221824635055175720129819191571916365454916072677321882739470115551067812931929861719599772846868809947723873454919786729884643384169650450106998367194279291864095352105976672289800209774741522389344237363764986107005482636073657503299964392442696361949018440465258021197631295617780077901487070033104868390625107438415004339510161142989269012345843162671713460762575887208940126067474379158144488218495224561097566752841363316237437412668664563454521528131303908698664679838120490080450393219554168370392779796536377662921445489328713759732596738054357997320432413724500434575225587292874016933648033180796648971044436224284677297054315142982316856995425045676895266421978775262316215576220144281281021178458284227854886691222012877710420224673799476771595674402551874015065881165006034715877967409706190439111067467540536738465085644029167369333017152659191227888931637953984331934848676384417493040762327969159392022568199623704964593867012141027607132341639647886697070025758063250687070714196918422623907112438889844126476881526988977697880397847860512958228146512464643274997841742697787651903150787677082073129983203905453837233599119650457376983544725131664368223019775041047974114739012511783001796687090102060539260837663551030803883224594036636256669034833143750373951477328241309528977077380586151432045177008324922599294024034976442032079187526276887185649343648527961037649594667687760318382326337604021646723508522821564854305035531860041006751054643574544802690044864392796210129798664964143102212712755317438594357154444367140254431758009339744154338104939822296904842285506156708474568597076741538128197415030059467353917442128245182174875976094063512843076312568279413167123146233539737115916313018855582231905212583820468821024242234460902694595106387366126821154786941248959731824431312149853203275039154603266727821351487680417229075698766065706393059784214065248689715008786232857619511390952444123172445285524005433558165259951372172870837383414423514860739528180293837939744387479455970800190817768087281406941914281848934431342746520972143307142418731153510644518488488576119536718137997419082739817208801415044496064528222113317180945671064170556461724629510532450581841582180627213752089414434319763337954698961128061866355612097235486420782113944545098070439372055910173095628964486563334604254802982999231397607084169228220273172641152650116108178322645278313012297607269223861679071091703927606733149568869309222533796458976125319586536719679835489909703273500767055059129625695833281376435856901046641425336589122516116081856728456445640025300761128816780457754887497517698908913340713211207995331828370258709461836490565101008994631610125418098845642859911455345104536838574983568420658418931996389682494739806503664737589007453088922270136445563808533859442368834493410000107511271246291362896945104813400157521138209083949160321809677138157286994990858226814054216600053071869166676575116333241896118624397122746564478682637550440690296408191701670289434675156641874909692759138803184339866400467974556158641706714261169648197583973370888605042922227123917003367775487016534140216031870135188910516961297523228802567752200739188646572267131095743665744180571147940500800791120284820556706264147409463552060126466527218098606318406950540735661224799453947153649748278534768044831383574045960657503586446921803313789625719207833071910067337511728973678209595064592573587443773934532498224247006112119080725638277603399263000832667379182821677050683854882094061349954812439690575927594734553033429824772805981150767553608845796821141475099742676821071489317690493949866124197235144039367334963816755273478490884817564258221197938897439405227530184963584707873184940785735234630860469393570195094554521576574229134502871402986632004748915366679777910779655445384590359804565386866447163059018765846903554674099496431342547514804246607010672163036090381043928926059712544874168727727310745282030943888714678547458754848289957407433220270650263439411572992422887491765003814998300681477819643955437160204439344236477929051266361312769116013857062391698371849659748062927149373315625682319157759503345452533921399923882231787382930296252708067210921777672299204822055452154941597857138989030150633065267365769579657462813655388425929171976435727723896357062987448870465273792247362937647305016716777226154112722173413722777604841004147167382214552158247040637944127103845845591739775874794315299096099267063187868220761082521778090810938067427732365657583735986364653068442318317157294703598033854411320447644850735888358561661396990378753408477481521334036776189904482196485750169597962043655913201341094105092514594862089525033769939673439936474307312051877073577429710669238227475739176537654298951481567414166268936433075569831106009233810530928011111146831204885851793405074821465794888764200062344799566312555284480423408015543740377441297804669629129051113920169601896151763702103512031135760135614010757910393142464690847655892781306509486216627865638959006189719797569194815040331169223045531518711408771534120575564017515606129681315210832376320065355677493147992989799398571690423568127513207218963766105854555249252366505851512914879964321148239495910530523054713689363534393443914214683965814007323823177557886419588203897652048809096962862424315226874508492105858850512340268758832350265159482938502580224755751402194410604550496641884404372289208921808138164788846222058500134823690464669376683147900726819091437759550624566479558061692605667653796429157664043775300988105399225618472117140306884771439851849552283542173406466342145088628312810531472132366504770103886338031731672020894957055091527695731043590986279251041370925949840030293772354425194356859335886453257612164188837107523282310094103223127433394110940963864030554282073415661325949781372975521053729482361418639771865718648695846690858664562696653578487375728707267218722887276531956188763744751607865084235079122866067458456611844333753967636181626230924591908443777803558275627391088100260263042811803006436404335438170315589079950721033669189815759808086746645312015814403301309633790414744934387218307453009998021981926183739714936206105445734989840750336878974341927446298547754180663009255960029752125568462039732160037250545222694044407405318894774611300171639653233819219246363206077849597414960036137823886158322296412554501645656547266557464695120266051579980553078975093378232455113644618286461121805343639413224233552121851351787817836103763234591788861190875548291380767876033966818973154889991439136044612979206596296291888637892638282251614465837736743876796610988014906943107591497907863765368163917658339952118492181551077661941873754893850762420348169751497130419390198288033248817126784613052925372244903030462704256970077189582476834339018647314459910785488515047260176732244476475160149072828925536302472182921115765006480508009573133095123790444660208186476760085850106468822527318233413369786827533239198139628737193534068692219868266842084998415667254608621308916993038379706032070821745698825783986858826848604660459132695507644480558346691368822690708724140184952187715605777119584828605080070478710111422129299348919832991453740633675849766031577780955239387569016023967196924170712679208117952425126013575831503498702218266070335657793432481377851885686484652434103255503998802627393380379607890726136812607278307565369640991092788136761969942932424405671012043881360149593110117239516427680952201483231493170260205731813001192935602378874906031199752296867819656453402966536634822859477317866714309366348806856027281796959967524350336982066969450761554416408686204532986564400151413884089744900800712210153033994415938876098665531239812353080252308626121671810673917050541181781503574078310691368908814402688468660916022309851970317654417952332500307339588576232580908688798071021824909015688550901857797181768253753675525584828776090845525784007367502982497418688265254779651099104285752894105800941282675084268354793788541017198141039516589062635876570494487828041855966558199105929539110081615271889862216677066861737159841324053317099075707860326002741008835240911227454377966837375558967564244947083606558461436260174184419313201013456123852975758728965493286377547417168070209049549235467308636226944831229259683511525250692867726321942963020844157105712980835683433457250724304690873831156157538075313041711379711777386093104587509401814368936205978300590740577313568762115221957224549647920967634441596691970285572510820485057273970495593955702771988566376676067192590449722777478763410595675239533135181432678460940748642173098311037349173683229523132199779921611427758250679001242714837615376942171833256540095935976098234449725649886298690629313774275308592499180082972964923228222470765952480447570540410898312558258112802321940057609259931997297191176712740946486627923968521529960228807257721698152227053653172857495739805984333801460445296104998869641765530429365734006244016592104538320276091936205940421871144096333218897667479519459127945108479096128962566881458680095501823046051151713635590155629176447512927289648409293001258657377652155318169855076131803535095926235944203817488377890210375516662445742272199160847917739064024967612531558688987547159303603658024061807270077604008526002638840152646080427257001608361316311219399975152062509037246848912315201290198297115100973569725693556163534236150871485537795259795044563038827874637519649032521950089345516299614943709731887850970396542881080782878297995209512266803785035236784586377758186578904436186683341205572362495176387931958712949486152878069582429012505173124048306834338934500578630546242114071692849986445837371017003649687815278787963172693381701463466196160412375674921228046346937394569546512797831508223386451964266617698796915822765294940020189515067836821347551726922217509337254129470358718768443083674596298923997832891863928367660384994499309130344054488889121224382324706165168589332725565851727992575145215124323748385971012480636562615742213173478320894586255950982261797408403358633039666472901644180495508234746858045298461055335393710695984240210670577253745584394349180110942303358651283896868543735902493626248769177735864102879005069154359757991077485781346634048591488737206294445651632850244072305765024859365798321155815236369447037043212414661909571869924520756625310913818048837617452855490317306417194661979788306758280385189800688008884206920750451862349475912212458865515006991637807075788590021780442933573580699408212099510106065910608128209917404763019618697588002021873394554957998536852815528363533555532156451588702834845509077040203753695051136469861094024254541410971793461542086194275630305514227063822840991233031719106371640950560940574387852716715445144102327851936850855408597818415849296139295167686759692895425049897113166301272138533050851781206478097237711677898264077221154390288096097699880035028666451608530987971750335286553981651921391632395451069287245782452555692395175453963992341327935890813193087262619995011141884767654546208947331064669456401669860200986753727735612431561212673401372755466585673445188106807890808455471387333150463300752156172202079486187842489431820387011337055376224385650206867843460567205659964893309611577249956996269682552676320672664785050443394756972521442454747224070836590057106632248297181140260194545139583171466094007874439456531394240550283935531259503062923059021809903408250021191143066714837246975535618956344291374211550414084783387612114216866711429405841458171929256395438651589015948887157974309483777567900628537091913393674660154566503442849511816156627681848081340698873725345937960686583782587246379583173455410722249865386766382506932805412068921830725549981886014196640024642735417820930985502216403824557397580844879948977689401656077977609397707184831365733626818161690525646961974666393223058276083088253373017604643731588862505438740991738156332537283836716474633897031596808212555096276801655831609674802759473807249620601899062887450791183495912929865471776739897496955628566340913315509476178738052687356339252408322904566087251912784722829910448261494949583591077861652271811102569467158706800359215403761004164830522378578380338733911473712976000612907069850468387425710097272009206103899287439864458753638512757972527844587303034481003630223095641679429184341487326065783700893206043975142498391041477290538625916874273671453979409907174135960520835189198712612937425843119089011700738399356992452924011136375178918513869680181468643761530828033352210300642466721745508045379174944471166448795502591780544322835949135216791012227716357369003235286405333675801259327194001661577104650091385278272325836219090029288663308045393420981230305882140212074799859671328371601413906297686363616702498108677853697809623397468012315889616824978839114795473576897457820596164105220830127515415483823127184869281279327676368709134662724895228867212192651928624602167570634709195870650648876920936755826324179295175263546944893295944825648641753519376732392618447888575713455210461016001916454308535303881220001652735746580681762423299813178676039203150889901786694804080362392503063911448972409322852293360116913310579446356172400542084279967229406759149364435946128099665132140305921423875811841059815421899898497799970981300600940165931303918686295364260945186835652336488482213588454571732720138450208815460764508670906783481976333814865500293173919469233822234170710431313379000175970203490268482009982729665802716794775040570339256709755837454824376412617712931056161550576180314173475688846613268934048056655301119529443232759224422281722689437938181649882426917358033989437524581901483757840164488938309572793858162388351646220029867282352844532920035318756705727854594856472056816280460399378868167913445624532459024817350399936941932256591554895880957297249315650465807483700300509819379591995990736332589944136606410488014545802721977822509879855357874468261742043725616898351786761740357646560674220627054477268145708145231663097680717028316690239728169748221274615961584800609749586687427015180303637702274586793676863359824168997776113547827478731479931413802588349783027368986100743919574507428511135529467140962381057565333609431777169710521047911799695358412257457380763494205579596733551818363231722690822681738148964567046157602184773236526717330191049920318421075691458912009651936273081516504661517528135353160089910531197080846735653719304627037428661527594198998764400568605799680838303933373560772571333933972745167004326836656500599058367737357149678556784094040886927440250015535986584550937807831050846561306235991243863426499832182346609494844317205903625140591865200982663474870600335530379233637024549365354803884480966775773585115732963399043464067467234918802969040386372989022653070528752766802784291111034989477531009601805378157235233145555529536037409180467569724622304222734705654336836288734402566098692821582010211986860479639894718401183415845652443579025278421038649574064752641591224031715653555728876599509241534239238709060618099102147000955303288843047484363156361592176030540997745531980316673688700269446025570312252266624128287998405371320026366864219769711230501360406164022595778188629156445414587001032492710783539902097408043144411585988219737988204104044559759101061355781909924114896486901806653946453757978026350621795877535584893369079374151669472544480904064676152319022040264288946733778380686068529143187958831004603508301559520228144204759632380606772120033960729004492077652152527016774436411456343846109200322155824995002595605259774778717190624634169106908017962409866110524143465766054657810471483424236673094270880783072845757169985602952352278827646386337969350829860386165488879657335574782006059774169451426538383362863126579050169149213369335453970516500920859072905242958439502815891654599634073955917965684358122815263748679937024378214803242086164215814233260927273849084903567607791028172692392303691076117637207519871269344592088021073346762212116627880664378007327211266469846783136453174301148096199759498147532286062974938934180037083575611633735936768025421680330196402985359753107583609297447017654795566388754276474466959229308656732948549484683069596631624357321827387955443101694389126561756308369235501930845061389018138851670923123051877391909822304063472123508921917014598012426502573768986539118908579860001520565744563104596826945936963993829932490794740893757424728731438666831331085475543786583237183507223990579411202438246300854678598043755809729275307496540689424385119145750144013465924800624932664719618250331165510055803769639917359167511052050211537679037298740586465374101985147507602494409511426267765455519796494465952227950074809272219553245002536054281930756735869727775666202823999426936725970409385080049291784343353771462894245847834089784621373488324297905257134994193016187319398998441161900227133905240112406796528045156469628874446924177694374540775621612807578441506765957114714626673548649996837667556895593764184013599880421704514199848143948594693317970972626570452318279522103655837718721166691274558254981034395276445116606608356271713442645156101583074635923417900658395211724423127926921018070204351891617400463212242970189386322275960545741511259338320321185346445495249501914147837308315649111049853100509488049744223606066763813155653306562193717492344646833566869331614611502638860724339190360713306841729233047860702962634120782434251955539475220881482623638119202828360433572262254182700042146259280452714993812795405224013901990482056464387289504465353115513838839508678801650416927335148942034308932926730996132981302343368297766644371538979266028573133634001892550415131316749762164750164315688238175887441801860739493590132908318464673951305192695793422578012259716266495543909819705354307729229709456941789839742357355992450896329983579480639016209040521101085529742838912567696623692571597042327560613975845809220073319571988210009184006424154639845114365940911982287910232065063050712742961752271595976245736703321252321420144174168550543378367244605737414530501392207793828811423398213553219004090397590742052211219730318188704296419436547682786746127787540207733573476757421420916283756457373217001316854336337395815941168720428953571427542410171445574027918126588792987286828158954624158116939625713839676853336608639009673032767724518470114863811444623739164764034895009606162190691893147473935383058401434778495957662211228744769369548727774847171498557073480161869645078130658295425365667830003425353438483549037631523846249382707960593961118734630929732806525084424089730856716641660700385055557008187789500242384682867339913076730348010389038724335892538138767990370201799326370060891556500057858090639079676196368171075273303053237072624983842064693958280198562700824925393515463938932115752140614226726832183393382152371058846759282236552727115857536029212416937450381481995128373081831188649903581628327136796818402356034301496987658427416418115067566652324491571177548575362943368872408052293690501627164194806105098088547711840495400195590708914317766031064696313949831383225034724517785765848327848929575785125718699240808325048143187659849848990490625608981020366743774090610273908351477783730142449732459086176323679633954963837538273791545744895103899485555808472528177961454707413777237109161702679194240596495211040510148061082514282118801432223583351646353666532465367654048901537625005189616786742992073653626127503434307654999002670917237229604497794917427320012394652950977956024563920101834121679098302839753021543182558896370679335488768812786336736508678378392788127333457080580109806579275269276390907403991411131200087898768419046091136035309849085130380584533767482284676807502083167390739977160715634640012624212342956411490551195367420185240836885954917787156967573314529916976637802478433491167179399612341108254848383897651865828484778916068176284539688649109631442952781025414282762886703238876416915390261111843269233880722508869313119735915723981936015971684214586501452739656037864826112161569986640066034402211642833650494956184059490917692652468660228627181086879957977644442593397957446209954806987734767760840160063929695835283199166412770862949358572662881894915662809092950200114232531825401088887051699174691420352397012245074475113401444640511316557013467950850992599318513624321551432605765023221938598830588976108745272481267478982685795245236708007927472193724941437839237765005023570729702481799548287905555105832190711207480050175120162172483751538347322520908400254144888082982331042519294571528423088512988051780678938489926418572330242485916676586129711150249522522213840044310617946662815211383584914885611162837237848834877257512066542958547750381956955322295332846115864069935852835470687293270338233253592988294874952515636180962374485429383347800534334093301009859087848866169353779993888260646282708904257196067951667653525517111812858461152795666250573367931877481511854269908640365588077072708763006638783491284877312287882916591478119601832978016731967047294040426961575965553955913456829288693151976875705593467477641418822279893678756656017835650269301996636724697687407179709324932411931775798277930073142071049687018502435990573323271578193074320313838303298433235122110083285062416672729106668989275367905611712799737250009001676781070129349559999996386773434029719838080979712587921558448144639111499233214262801635028059162183773090142620059679143740789069952295990208555606309889600381304222050227203927190480565526060074796489970927423757583074092663881059342708548253783984574137413398008546644097593569391777867336246723296904552926440304901391831377068614493114575286733489354429733751584874683208680542634051331798399082817981675106336247077029116540919486590638792049675561724590611888713013485682492119179391851709071813555513716669805374469691712938500793859203685691393766586599839032033246870323093820559989459744392036631280119342095243884086435358465671123989808646095972837438491506873720568357898922384694951277623181902380036170564567157035088815693004030146370931942647424122703778419994982984538070695115236428217675917463038186508240041496624365045580495652757272352586018465514586835025628692437188631344991758004870738359433298258727625860319924077110734130403159936058808449676574212189850128865040392400436428639714229493355145446215838120230517188204688437690812287726540571559034446862945282700718999423767870554395792876873239015967349059404392863782524575064915839695931386106965731460251088716437930350536852414770579198747993530600377523986310571795278119351800041405480171091207586233127568133909585670256477458254408393782860484543492953473694077615215261155593111042168350217091767522366842273940852546326095889347313889527560834349791894895621930904251262364902583715890111597232855117493493349555732878635687495392570217291187839150322861123280436718013945495023465246412574838364004570297923362109544416925629505392319148414344139959756095250436349830056912975453403017580477779185001168967970922093118813873637794579392122235079753979870818930638887749867368961464375588137780781447528681902253363659744598664213840962077998430639544637682366783818304362125951040724377644678878749851083420202298347196140487343963308172096307294697493857431649245775754151644933273051404516497797545600431888809087596046362934404189300858146781522467384730943575056528354198207333926366415973498636870023091737986075205315615436910432090745323153764620384536045000361333878975505700147684049289500389379592659868317301301807555692628263949413317108509288347307405419180087313168825098531682372088367077662229837017388860481663865536505427901451047358516871727811157142723171427186332819572651677945047422592927464652393151837909133618175371131808502117067999539314078996667841610058118743396195202090943126835225969564197989335870583504047524782013804580281859279535933414378125037936268984210137543415293891478052835638926493147952565369412167794532216053482503886994441787365785408618438863993416609196917488994637214836104632919665228075310935796233798747424045736152667451170077089786480224260179403013665667333076972440903940079278405511275003211657456814722992434813664418934555304790067766302616528276007612587749319608762276008190030861833025708815644218071831394161472625304615713865109866724960956547480784330230623119872126752211615596639433839165456869745257754775381441632804730683151042773865172880838518465571140044574640226127418253362684614813440171220900055449273519501664133157262967696212711816497289303777622331464091396949255844409680440591195390982147571461731712204742242252298033441113661804983673094935378840136529882907170022933771307408749542993218843904648316414308906140734650181386454371714986021700440086589959521427015983600863242166805474312766370407593462011975584016211339502651017414390352021791114215302328699515655138451614594235701328974934188264741229203460253503360227012463179301560512033927240068986311601713890092430955463197965973644333805873840798134688636586515219885989326502697142190557283867375618307968471277141661408818684645691255786705884343706405456091280906885818051993793358339562767445152735965940961523551288973319991765245453106929560781343865462288987375801508678541542897053477583111331682804790561176432639383923436308314700060436188700223903283598801681903525869371790962177924992789825132162830628248874386753830113841501045421816185166782893785738800275426466706244497447262475418401466387737867816335308367351478291459947369637122692058130929322062937645757457541593394311746315844098890243010037149220166510002587632765407567795247226157940476757211721051593926457088702602334296744895685961202040325893208058886643992570417617805460451790689810201314150941426519872703324426701296069719834990724442758959259629291924732217808350053057863894528373572527389490548421655033703094289048170468762285569556905669229423582708913758893677175027004259324169321355562445749517010042458829101116222854785319567474374300732644484450633465961058383280597832155011338147681634246769034726765154027978512254918622806835263102331595156137743105491976993560423917275494964824161245396236483045404651713635800977890821671665834961283854014306180610209456491839011009717130392822873585419524215236812044614631947426104997191045644816442599293358957046443934933945926197579794019583471941138800914519910248159895396295920388534673236451954123663945161181247791625431813088923388456795540217880262516983652976769646260337147500477107555075605659342818992459348587732047731236835372168264012743576306303900285622261638764474045621536595102319155334727276626102055170910535388206905397094946823945146314915959493170275714740192111169836551541942012612986892279414848992968555258393146121731428972915601691753028767479243184063966512047764224945712253250271920820017041292664128989837534959680197048880409094555099506273024083919761874721476367726905256434641892058836050817134807672165900186977327235400689308521606847766966989765539394453742553765693048035445871583646533208380405284330058572471512334744135035639739504836666746134720744932206363980463639697543159318677288033241374937866215978585251440697457349467386343796550628041042209201593272134934235452073114952643420025517576529640751154337262378018857936385002203560229630455343057555567607183495758915659628331741649480197841576992263306039316953130966995882907856010238761656596964040315250581855632904950323166979544199603653256299289206554617636285582194232930864692984100408444023537863027543384624893727157033725455058016453513304342830312861960459885247446312981245313388710006950202882810379164377777221021731475910495943077478989283947425408158648201493397978583523352088271027532624310324506889645730439502671134987389878685230097217469268270917827577852209210482542679882020460263092529740530067082845019577134781607934569011523184412932730344545365721956031970602601010622144810092642375865914130530907693327336640842231806400765375576033747270333522731136677599872002834018081135609080521266968789584055840614782251832509079615848894345303654057570058149889118423459500617279156113399569920798727148785503549468360471519885707838898653353313796247980110204182749471187833924938123013360066449418563377846474677007913687602847109773109011044986360080555523568601329748651708718219042221453044127874340694545641529883072728626583551156624832096744183474858108562676342501023299998273569057745674805468189598832827655218736622956469898473676596649665005892575714865261576545079366899432400091878058908222480307521557015140644181009652191794118667214494064676202261047310632328378550480287306228920426675285067848907368805019720120830677304487624686599156325807441918658596428018338441629284305770741413181309743867694477991894130520280536657881093876748341508170598431429432015776448829008668571713283651769201263138911918544270508126917067535671047027112435314645284422263229195436773125586198530996284265121845818334564768436947695933419830017640622877478416520038888814334420255980769822857102276217048136877272416250247094638246920383294860963039308084963834264578816831284803554086754130213974594404466248547671213666883889724243401753580878043810604759959009093383266754063329916839968317527963226335756911129021894663336338358293353256688907524126260965397311100664154537261051451833873181854048822528668038665813562520692160622208800525998242117621951039505192767362915569962959536454097863707667253095103154350986649903237978216746205513927687765894439215995889647360104822027888927653056611775193376049005381460920385874466242388095351214941459114940265987530686176651151324809314717724529767888820920017163212443193083506645989583060261332005094698233188367915844150371969614620439334255192756915767797191795079460573994892140073620803175768489039083507489452181981864039138686951100969466741533585735988496990544167727789546674472705966732938383651307018290383417538737399350109086946698144024093644052715786854643919006622313012854225259360730201085417425856227663728115555434339139646291029021553861474634746046044758181576823598881295176783059448254755894162184346994493767951784811345630830499469374527703443946190566819862035643786298592411899386261723478088935139023835323052481500131279397076629543113061146287966260295665671024186755503008945024801916941378386806092063318259394655297662663134421753131142405301175221016455978267376427939516119860731440995952286830915472557575182016955954177846215650024689548798498354650863011666553529530876231846337113517291965687454515354423157724701158241051780064679466236091841015757243096219900588787489421309490289901805201906471818945171359387262431627137995274613624768140719121506222089555689841644611327250604712539499391842775237470058506565587794762215694645502835535353334128490561100754691053131459905281530018635859334934518535330798117030522128115055617438326045265511109601384911037675739709384751294769628715150364501540145335027948190819364170050564787426540143079957378235956296461538281108062181889267220692736762505071383357485976744682570045381207085305349950916611615589471272148527248104360091296514814814925006574400269022401059602853658448072584958614407452573435399368214524589704027226564525072401923780656640645302372273052167857946620117314004200004896327652997992178257950955367663270932394601075585455932599144389292685187141544264477125461473912955313298305742327861833859936505201789433714700460470378930249790364531672502139431173651500026106445498029975143739326123685695573032121963701607285364307436301011946538341296332434957203727703191758519927309996155740527404909734706725693101772568188355949526575474504838671283126381485395923025942707286505473971988632893295083228191688405991663781697902761742803909544843539470340024576510564190420332974984517144109512791570646900011405800818410766300433041643176027084861054432716994485042814307316132297907660856557497560459844944085804364248615862664325379125244945463005868990062592453171306260022355725266958328152653919384810772857906812347881658750362596270167793226139946539260423549138457635902564577582511066422334359140509733826352108163554367069934332172082404675954862852090077115937735058753146429535204345482392350897813546809467840455463945899636403804480294554312783691706591631185730662211061638559237242041693973854741859190298329095261162206822080620701159149758180588098815592212375674862957987090452006994116333923751030100201585961973134470524320781579193455981493993180562547340344224049636712099296944149756788251186111994447613867954842051832884440023098377395643585719271150599699665767863794688356915848778393841459051677791721267178050405104488521232360201432904431004801939465913671134404724064007395735431996076601897392526142966259838554128210571982892142585039112166526251858750963022348058666759466374501838293488640508421137840916780625364184100175911540720187127506470612949204226886613870307558320100212515488503699341938136629680401292778628803136892341982254317974832203699432593216477437909333059553094877738721454000878390690797827528765717520390264080227270120097470486992341476621293081197559854437781068558231493540874369640233589234856836172680761101163171092666900839529403511961698988195057651372753715812420335191757615644045446473162753427160088944322141017159385572491400157187491455156895977377280516934765201213559820079714230439407570125960933903544554871687232502465377039805643464075445925251792560380498049346143750322982174217778921922778832627470451952052754064198655374608362746516940447226070462760409961873952087918443464322770248888915825675523559751602953204990863279490147851644415520037298072528673871826385372595639154000435961131972232473195483100616941061501240002475221943901995744998293521401514157042904219530157843775871649301901320854393097529745212513852852666272760326671854689810899492744179699505983300324909946476610036245479017723520057497084684583974823236131787763727759714260799284857674649394709418044840191297854634457280189262549170486002269851351038855953567775165309804810436094563867959810801179058536683022837554206583551965669251332098214441202016014170669737085146360919821908657969683510024358570199824913921352770550614801034160655872573654716573279191822302634283586892389121822115455918144604754730378346693946150363714357349809817909693822778215924253216674536098780477479747078362496607409572113586332205901597846239154861839257443654307817040108844991632806237234137812526461811482480621821221051981813540650896519255467095239807941448130674986658514009249194971574120426854373328399146908855057133766524890955608482756974425180664136193283314084083832463932148418423726199395192817439203738166662379056320707440210367496790016758454633140203382519770180585992560758400806700532864249388773112973614674320858113720450661216299295289673326226687370541012775064420456621051292397582255328884659146602325405997222077166212516500679187528836138254494259030660680267285765333507362803859185837274374223468850220742463756921664685013473453440271680232018791681854616562496852000114301006437598044197326049306481737827953749664362791103127371165088528729372041647549918519216501184369998015478214687171402009255143473451928057532723927518196572732706537207244488677198144000745377960288776527147824102266690959483765738776957473983814008334041515152101183664347849596837748829799726125545406186520045874534947948592627904932108084923710442698818128740379246760236473532106160984044510492181198804921640346859073850048714959655428009784132429952243462365800678340943141845335609612258477366459890690525599659530383247730555569784751144397883041405684727251272976254131116971156758230297311764239213082017731199155290312030938837690421259756346771386599604110231287947634182103176466689380626265479369166286379898902442596831514760826599897661833782005349143952960838230370880138358206643422395286507125904994069399801752255368794994968948722521848739508617936114900969154851037221375223418205531193418083555544320987825689326074401288506078092621048021475347248347988541845220112260355326000299534970416378540546103952947781544825052437397988749080867692801977570457468499823072705188205626107443201566599468377470350499224749197032614411739608767129825049754599580202031613639859130221074535772414567802912844750751168019990592102509993850992154568964702859214255190879954039254653266769680777546591591551726706642550532480945005049203814538682483281664594418092062995033418784111173751747726689169810010775009758703465267073583173730715451926743405250654825155059617425045334470306004724539314763531296151388557361454719140913334690272480483294595965743538947690448064731062565418801644668257739132469228619493779483373053040952532783606835246331756718764067961264537205483607749562731700537150851805847782740515268308239018844974383044392253578679409003263250227190609056911867181475290809227768368897252180537134929080512670120438979438937552975455984414168285591768356847668785113993288325772939778253660656732986932410806028446435323454183516987825433283294169487734854966480955161754573362157485561392424115313217897410054303087120532624073170440074195225248624548515736887492907304868327963981713470872225509939903255481090430292110171993017920881898566287332680078906815970941916794117083584190741101930675840568387038855863273109867437049834471025247336931043638819350434917738956392304902724157842992209028503429873984929980463478731724721763924302324360708638111593413071588344928077462697278857150210344288221244154287980311380076587339381806785068666164693699991390729184358428341594947196299932825800023166038011984589528260832951256073885519543843341011392696400475553593777866569121636355519252389034378465453223264964898780069209850802715278300941464676090749830075043067910196436926677659189683857384707266806306587845914593289349447534441733391579375308587726374283189500743875017053133253353490469561560740958304479818298409874844267193558287212027176583666874640438443501938247281722292738672773516965450857203103180705317587804908159541726883321210287725159490658960688745273379767241184738865890202753005076091508245555953634336677606608314011023461083941031535937498889196214196926716455065386576037761363190715478669045810182995887332706099881250387887779848982562918255638011663282412372120371048963016796122086924249383913704825789087679612394697323788550127356519098925035647719150668750208119392674015693856564426094546897736999554332350914652601949144464491295330546473085294665202630800612989683449091218056435376536550987193532016971056597135304844761595887606764439053300061607034102430666188034871193857887931019748356160639519202068287515037973908864429776993941196372380507586658544565190941557853611627717419429046152779365103349069307934882101906335316864253181400082452494399701820452656398451748319233616371323717615669346675042597449592625191616334062284506820273623775758155688425351774614062448434143702731719950934917306281341091903361139737043580368737864820089942448369562445102148337347595390746716137296632467239888941232798411023288256318167572019268313752316180811695210484254968811164885026245641175029611538186504262039360773405162924356308968929088153421452150536402279272205222982027753177704264911042496809011702181230072468053818694790419210024497920645050253011609191613140416498621166078754251178188643012907410322633762103981887782271522537510185736158917271449435161052316233892621721209650193560375413996238986530517609072628098398594803505163791862564735069672396586460568579375100074776881027676704357377398197909273459838730375904743617437193836693991735472847303561656768356110818355613387290190783374815508993204699883798840499923576461573743489817778589643860394801207253377586891599919552157792773387455692455384267718328547717537427588266161196368337117755537173676293401827020388810064586027916069991823654309609865743656163859722136287457225385817928266589435219803352057686921505092723443922563218759955402343214933186215073279925482036979177112947405790111194555699180183542352699831512482864428595741313370843726459607210551539331584418721375795380533272144292619522598601452123926043344893879700204806181784222212981992824432480815571599899751316805016784875607336293582530280134133124774968611147030043920524547674048986185920705107112740692620035221251590426836234204846779845971431087178914639143395455206782194288669714783383984832356245951992899630494443809545498608039841320883284500993518040541246171263092671804889701965822992802457843525103716020301946247607106884630121473491771468227331609671072605995056137977318141128887849984704270326100421860342579338374010490260248205388555267135589555167569290916675026991397623368541784211775399000943219332692847285071339368450831623020723197893169004523004524837190648322136916129632359993262034879473664496221535279660528448542733658880992575837206875639750482967753326550155141041575152147535640151596424867034791072482268082962627523240989373085867811632492362861332149509627200926749296812771927254779484839044482281971102250586235740794372502968123188314171589670129323761807194768820707409365098817733047258768347133104098050666017869038662080787572312864652927692424410937710896771784294556843184007665208863014611239314461427575551651424705684585969661989757195712040866982971753121165781883708490479695429623363767315522910738174522503656028297397358167817908517656260811121652240372570053722381582459923068077007303242506582302933304459097354239888205168334201803161750818292686434793941662860069311710962901136565027702240089290223644654270286797462498606805255731470207409518209229160220646633898710294299881942756469877016307229095846512132446370048938952800604620957656197124334101357953356849731976505924225888236636343976191042297337098464523773181700950791104616925149342524341410662646461422457809836495189099088394097721542381290072778558865430232947322299422850515949561964943621906067230603303639228497709802656654974040531762497404336237905295808948383958749434127775781613562857071219713266226361490286960719713714621169671202108838289018585910492988343281374948850333279254349510182245088197703549629888818917874207226397417773045387716422315721061148535335825601130566654791717701285228299974946170227910232588452966358149172999760991213081915709139647495314397889274959363579327128979342827576405377194209856931986134193240896084243004234686183453539076392278719490730305856068411718062620608744940828062824587966061144212417201314184456940424384268326146947592855791176496723192809359008036307870911099276818845853719359367346209377687852396727798484978247875685557713764850750020469995539015077232761874345971395546604347723003752934872315099210468948743374351798744631960570542709740560662797063566139470240169724999907550129047733178834982953132100228103038103757704686091058327692336489954868165805104785985374777077923299633678404453531825756407212810322648845069803380963175657449072093492000885702507420743392312017257047590485787924303818977823749558096459501427208213736040186780046485513758604607587743348210095018483370294991829051906608558409230411181876184250512717834049582813792162464988274738337614591853460351867683491670939345682192662685555633544135491454937295631031828593040018263810703784461905289616410938789212273959488733042541367340583952907062909481672870060037384072588013385850953188669826433658756055938435861688706367243722088899719540409267827228282473911390177111601558927303022135344059313078477325606094221594305344329769274099325977154108814985163425965622123478901282227265486210718165775029430153534915193568155116260104492605505169588716634185095842994720904629272545635671929789619386982311363711252779521058715887930903221054500085400133923743583648053267747432854950423286476118576837559327903410697793631180965052223494452665202059712667584183519965026325246267112302938415136249148910090913920246188415678867680197054724596223196946391358207662269483178874454102954007488126289688489276061064853167386950062961765590331645106134288715598902135107002391436708802467780965610411947505750781488227613472377167600715839238287724755927325465339451327744529806713263920174475020473211873469775400373095418248679177435259691122834227154286868045778294312604120280740851725862315138371700540380876638027052341565137190680872745454289573888274803260398715120711364009559281643039202225905009151847048250509214239651646158318063811927071226994692340856709474618122429310959328849195722729770066091575793827558945192206680148638269470368794003077253058933126694060342458163151962140620009769933738420068582115294264756658439420067416739813178596017629348961372450898986539390605714647362516246947539182379809576838680834651823866147152481147222463979695312873895245245686743074744331382515860603921461080352263514107680326916845893961125530863571345326499311265594972594130124674297152386001718242566042597426721731386994957189779966431330586397579390348846658019764684273182005521689137256604988351688459137461199646447228537650449185320840027354775634413269611011913478460309868500375127695648176225694056277504413701614749331928217223436769839260597851429136098208508310325463307301595867566060284587995661262717206882935725578941199508122050922849092822036887899373198170245349009118654410746562059597528109436799934730063454150649463781916126952883884432876152573991433022332687128807697697406700100741138911252865787869961616077625992637528409807942601086706206935265150026182540766202723642165344665504879352066954059523581349258721330418920981407260589332932494809305135365077772949744884322474693180171686383797184160705891970621440807161209601608408654585039773596491021046718048219674909551717684825432565475761414746841368444494916033997100392644655647120572718516645854857211099619730558492741752593259431490949127364717359870748597622045633735170079617571795443464803707185061791224068118607280428479534565058680346190174602951481560329010621066452975297737050161758546622697002835538378788853552431390059652980771128758537429717857705186142783072344328743377949837533534903115126837010270414906872817029390231605263702661767060387204873970026394075043111954908142658127185668230167292621363233612342700754611650787813751161750315801310254721922711338745788044585574141964645353168026690804920106903934674290295941627668810436004501151798399327733135708157648249133961671966188673225331907114648359165784587017507589964783685695185961965670519671426845902915387743371884042235145837251642987921902232941924145623828293945056595182769276950132730131324406037258414904713400139177670531645447210254448013395621231247337762579212400380239497598971030997288183110619651169492005583675405250410666552110899487838234270600683128864006890885338886490577475784070438704616419246575896519430839265315939991781603376939020922693329635476057220913792251188702802430567183549005169732612909543499430495522033186778666446424523560902531457078956748095495385958293416797392243054915303411088199026852938553691911709349490956050702388229191644524076129115453484895978599593820749276053120441385112249253474885400202429708046102267877122648560469989056078872685394829472492214861608076692482920534322862989925985359224453954636252396953040619266814892425464011530810410673403439599761645198629293888704318205529063972010684461762793842088927139347710652468490061698996414036123627197424552187530223071467597946664996881131354946408216143455944183185949466326140185749225518494994373285279746129176357053084678718924666858759340276111080585423624323420432312898955401463415704970010846671533220271644534524830983083124751521830443005343995533958876497754530720687822730636947703652182411410476603595839303815477655135748867692308875623581483260293427023762709356526346437953706194326698752456941401706284801446420047572696494855482994067510266866495658935615335171484567175147508400147384951397732466814457944266028474290354731804854662737929789229454379113614171612875721138391997729465280488871294267056677514578991301786781913718460405816913628949574765609680019377749231102865192801963752981925520570457625515715675025318138815829041358175719382743365182028312705837086350030255637582642198206343268237844593401583357763598078131585297603475112625076279078322644184050353506422957438108939587371789014758080035364571388375010009553066702733109939324821868294135153460784126022555687555736537423013980345340249111442138970409900717819280974240536093497048825770234363726167118945714150454408047531811195425030200280307189572739375014284759092783872828768878987584588128379982556688095463331142098855637795734997546921670516676140816665359118286447011316021301415050709490610587623193797690005488571300839334208961653161772514178379170321403721547966052407811497884403099897098403963615173321865421378869432921434665598904168671783437847351287345973637815978735521031385928720935305692153447144030140008688862253458352139873690453759277343276746296183746406548494101649231128941096655748674877378261476815820187224801313756413835184765260543669828261685137682798518930776018115845151625322126555204741675963607388956315394265183589410957848987112847183052092526031008657331472232864136645344164967294282685950481648253373457162679100633462067831822873847113134570982631078465964931802553611025149141687307131975971629464976163762145575208153959388061056234507280589133099936974963511662246904783722653888353212475866595691403472460211718989366037357380953951471973495333403401842668133374534821149766070732747644093152939738713116319132063231778227638982097572641728032863555282714540294853071883748399474828282310860577339547354004564989208413931290749003337919466891792571745151834937476038143714090214023651100402725672492095872933557592440612278748198618605226475194617576878102085100909747532880713857552823766871183961685782307142622853592838904387667089837682512386353345638241407046208100307615876096148261338160318570502194969419115261784717715771223495334837948956686663002231278018773468119870549614437383776819886212401410599225600039374798962663488736861134802545315294047457854050705900724852276130208420003079128537754943224987265475878011004875949703997336742657181509545988122424355121742874582639907127666021525144252679867562508718069806308906822158790777241450694069828788866828399791209910627102315510084232061633468418189319544375692996820935173760113113627428109271529008044318764478312535938605721569015381684831371241644224569820430365613177128234627984397594166082069272921580829743378721380717682265733148268248189696228716639453070766908556525242295888027826195967508413041913483015723489360707623412268808715083850738570233910471801508546269355139746433709733983551201800311351627141611284835328768285986493503291254392554661618132329938287210110580814439518905560747525173404976059015183356162873560866386653672830263085225092987181446462740540323838680478381655815200848103878843362615859316118627243843096891714142841895697298802867881432614336517712314932230430354077254640895203845350107214624414954311425841598629910619163690927820456337313817798611820598588372041831002936255258247289400320689046994895995937325553403084229869564934236934236603506847491374763295874898851585686054248814496905715644144402333726381670778698539155485133185241246638762692610205074341068728509830562501468238233866929567371461186359503522532710650580144322204110548330057582592079914477649208209441355411220360172014116796391582381467191692708381798637230292788249189528561923594372464482509779134683730482384360069551623447665666544564946164411620535287650367246645044471367587472194722688640087499142270488748402486327023653257869211755129399606409482991593345529560333053526440705926521847787282823006545619501415330982495017284330210077326479113499452114872416785669122048896610113876322921906656863534955268291116809687788325645273206000706579561639015714133931261093924782925248467009114671387465619814869918597820382367247420014019935978565774536429241334251032237706269133981625515599305636291383746141653637142010950823086169551402218552984440616884442242236001586216318033862638387767019549982410377500347507360069898338856092972992312048045204231038433694436417982360610595409692603747067024785824485579397508828211459680002620874123771670478183078634665018831328122536629486978768445980808668963902419633369756985143382117986452669249351847125891735936407708923192972407185458767326479872354894824710385549868660250255717635727712620993582283647587564537367694768296707168655736440774512531543944044673551810985090088996440815198323518622972698953251302508908355527880579671288594994416107353583385372998962513612255199390379007776543540716624327874948637223777757604129339001183041195661347585157915705858288301629575903503244081471157874077330502568537550993169437717290335956623498212014436862623273790615282706252304352956304539283786258583055085237892747128949840957038805791566117097141447500960985171591600937357385225086053889563797509732879656534103147165254294340018398536480719305318484126215632812508734389529287382236878470969423514297584294916798777725878177028702687124466800487477799051672210056530918636856521025865681584520229950908157933065829864491676964161975326239672833014898029264749824369425599920888545185518677846937346113820413057014220110051513122316236647405890609259500549497117580196252705183486804257469960884494282090274633393306078455490309584355876192910099651015653373792991402478919676531389134422104627751385688705897291259411331559609573197364250036159288387938652537317008515532661503104912515706855097430271841989386028460809598075676177579046470509318422656926271705746084095161625124707169835174927819436316479018714085557020394369508426238125375380359428291088687795799792043340332340974709438853963422622658928395208464596970454823910377284899608630493194058585324587689823842602293963210910072147357318415226966341362189264104751776316145594160939952145177215028769690237977132027289106266393198159664137084199288221983914734742356932151548691021051463864230218382651174587473755345806422322289122042712651703732773298741959920679033219128631427716754251922854392666919198311838496783133797743055674014515941924209990010642528729547587603508125864293771229062362457439899192278408800113398708721805291511814318230527881569020466966005135695626290631050432071070106826053946131966847476070111952515383014052912571546586244288392792568386741545111303852366802200634707845338964122401566882876387761289803969632650239331053086840360542293150686135058402893208858592171755348687103807654792081118342948291264708626379151516718910320232747115686279722089941336521312841985730763610355223706711204040955132003549599801061570011328521886498974066114519925496257079412598130039121111329919752902311602678643318819282324945149394511037459897192841319473999706484575933540454612034883790284483882686773961199349735476823232909894451594539298473138046673099832271600033993665654505748060846438160157461644246211072323804572830889068328530703068301764433150177110134933994362574143652874557887983795127667309082502440907044654898323091049518305193387875846852608934571780321288345754846794305904782518641533302618307470169642743291264560684884401612204443586921881385324877585321185771052301250404622830302033994716132074666791300670887338323804566226762905455133724450639249841521968853304135907770731837237695456655092253131462279370953668431223066026603313010775012558063307145932550294274141458013363150080159212261363525274288987634058463846052919942849458517123996331571840230578940843576192608606112477467273379367720228801470982547128347103818547878484035820323688030490227666032710572854753516134932472608123654985547638728784032908693572437304950230201884014876124548875209987511647303915345415059559758378285862148346213489172554951949917963017065309848296613982644120996053480783439026394999233819383549048061070984810508345861974000686889039711297215271401480056883312628972550225549271582879720076564663761273680890894711083309255111758721687857272086816635609494087248549017465158849782631503746642617557980236657653316779557086480280204807619860320025587080068216898944975502254948409199936091085413288639843692285913287373872156385711606785984589353547562527861795637852451699465897979155948076495915786666431624634258882833160984964918022248825441046380029154480533237786553595486282307549130503662701808750941293592931690661957915368102750604614232103309737060392245043089002202619978092349018609443157064359357609363763837394066088954180842738322984959386591450628330614058482063335172232038944150700865825491163218431411428448348349465545559375002625445625191850511613997152771157301892631656622994847161557151201651125501592340442106531631726783240636119755578735460832582397976948888735054217526793237620022415055057414619717826060750362859281176279228783785664095511889920366074970024301437619055692128037375530329603288306552836289982592357829118670744450906644180464141260830782632997586711374284434938113772874827823036116192742708888346484003647301425280747500324955472497122925392428632774021509764071733218814947660015438079478103747832377822043191635999688989986186645933784250336079855389160559947608811918404779952594256035431348533933599880728412735495483718020416764754931966700605065993568761547407703600371705772625130946399293599672727215573072255757009652554197969093065442661027138373351559822502619270928422984807503504801279796368989120504874386371241401663836916264509920846403022402034183621897358454857411863616902276815609201169869650975275423389787221277688852428886246863905246006919133589213213651367882060758683909205842233957396816026796897959440183961992551490012885634716104003811326505577648890665334827877188285990876633937354618758688333399144160888888079236314898109087862505156453139044898572449699070463000346083051125947334915300729766906162169780762929787684831665934738822268309079770155315689473935773839518200116385290589486271030306449822861765802632408901019031980215937023282192695439132511697759646096055456631173380378971694983408444812767222038730291481651475188896842832520022470050334097793837700115283619570481228281634121872857475112637482946437217239393427080942448871960543211521878655558426082153980003493917151703819033294258693804641835395626527760093774300075073192919195824728343420486577181790341042680502522123839691857915943710163647800343331041622022491104531166089922625659801383051274509775951648369689865419451554066403847895498314110268902609187791585466709632970213759634788597893400392783150169323862323847832630740973014438673194905509793707083499741474212497175234911115287712024791365181105100129736884815982903683378889914728412792715148174068520268021934719446494675822736433844249581030086645911720313817043511142096110722878691327153900772134513849100252615449923456868417288219005252027203656997755582089636340962891438700118314511455614092083872375224002038235398851385720812703321670206410549934132119673818265442457159003245143100621164188500819067986857587348541819470225253370623440159419063542928550819639774219326680420436973025764100133268986268523522813837728299387823353413437860871945623840870327663721715051602517045207725505978482119680603464756818764151487187949656626822614275264487564898292988657534808054383827113695162147167122974699340302189476140832482582223402888633045322629893006332045340258452448944687282960088384708725018533270174988242063573921617096502719629294842829871620652585978118997692355212493831983396000990947435630503456691396223212004161599853586138762083861959586696804161699012304698763277768952322659997157809812416711247324660904228009162468211337911553519597928216654403436496379310541217158053938095821405999990217178799204846430759106876756728757975443270563200659155942323308592536357973395252872471899019222318234412793336756226022555324912353604969025218762272956365411733051309242371325943376960624717846621654078890324115027917967989155098684764579656354573629832266377884238040052220653608526504367145477975011918587973036606312426847826932983446232124101612847787508760939359828314558021067201667239198951069913438067895424771211918675768767030607213551466728472767416220645424591737770980038868097876231738626341788633773080080139577480643065523159672813328320692130087411965913784373335933557076053373490647755885839388799963814601545960109476909654241581622834084549564337611924987904396399371615836840591414223173171709901941607293818849599405460938404903280794728321985921494517458816653693222421184420875117002239558235242269798160066551924858253689327707953922626502124146484530479462913768746782335965705183323286470025255117757939032441338241885701155149813508895424653714036993702811945249635817637889093524574499949526711157045949346934178510873249200627736918259781085763817378940821702417842679557309945142739853624637477628788027423679022068102356660647037897019795158866382164564661224089108634807879626121655763523283098610157330919456435994261246152789600795192272664623379985695516166635208846787404823524886606857548064985320433197574231619315328262455610946826472788460580320580994845644271122359416585151934593189816301880052962612143361214787179416261143868107968200900916362808328835728889725679935423086787692813512067683430160536658973890987841827871227984165880003037930343341152453676670919178552614422927922753871910801414321408384083855023341789596050386688912637008090640846124821292152650670235485141426782815909658173181112400008265619081730077642187332464755417076129939058626832894489525073929702412872560673713560180718655959889948328331733594735766287534079019660452037486347128323262047961045658437388366749707702073097299405279952509812525586443264167754155584815814600137402217656318374829459164948536028166453153479805172540083552013922953396582477245644975751857212596766928111049934707530242030874167158627140445297097916138991035180047560711961804157611755113030445387167519967987883599458396381083435272499169337654032727802942804160406307012066396066241466727886361208004016724374097534227029413623534833705012308858667520243935964754302903388807585811725004163762916290029833784828397417726908158545957848311945309365238421956700121335833527757592121023525017515589893261934261694002136401328456884236892123228876917905935755274838730963713527755354061687870991635727691901761437459301482925108603160476314244350524918712292246647141597322040389407941730018012713405420668523758582598136551618108833510068373917926881462587521041859608079626544537511443382210650494901585879081209930591625102804412677993369110258711130121637788286402174843632978306053461458599145467870636471808593599486770686611785848396670571267217738034436712405212387591124991130620482169305600563225027086642920306053420986058096256643040460065717231952996057179182592763668762869039442827290148350442168314963459303093352942584732177409222699561993779412988331654042943273155899711490420681231893045544535428984168600967499758425369031475989728744614785399223139441078350226572494035158721948555742310368339625037415613429781748522384201697251983354736080657416734760575559283887469442920803765676944670508989163660612142540885768643252952361915985126175058731719574609042681986485052620217316021745993111561997754373563912635911211560386199934498496407659080024730937547960209980269802277831628909720003108710831611875669859612999565785263521324259363542549514068707362316307755828606109594016337785548889208698832545928758283532981068205917388245124142962950844897322254221307469093520945347149608532584063112639886851827972223876198790929774309168401987738021728477652391819370829803359638587420723456480189285090021077557892135651029803576020632311604801441770058918211242002701214694587146384567056787119971589833076646815520361276873839027357425738692335725098840457488365888163154912068644172430852087684084045485733084690264823214900010916545248301152229938633348039621453139491242374621166438557262593589493288456613499720194682628841323062320212652735259466877924211080811093328547211006398020688604682188248202331425019015591388645638410667977256396704949688050359497617330337982637454608869598169111317967750057958544024251604029143367104043992212947065082394568763887781391673790788332533352705312541851560842659358322580743586241712135473400334808455977566791153707237187058236170700182460482973974141606792788059508235168161091909139050917008789734569798376040614123690496202922667673296801794638599147124212794562537836775858909552127224486682572722061456886281439687599201004190510614955107683083763197568164500958629138887922801016869202672858466514428143825133355022087122928659234716231022580599159377623364031476586895512830851696500922228588189561808970028752098353759198017344966329372066692710608231319279562165085552360164040678752179566814253509796037626007904564995123982647587934761241917240659386305076513342080024336482901005570681212755895710673618971690765745459592344043785537659184839514545796803447851725178613976380247276595145391943365593640716363107761600898933616095033909104514942318880117252232464615503562162281284078422209503799899396638215545224946579063257053814955047355347058661876557445241417587441044501973038116109635288295153759334602672002121389586538682308109905446961442748368821391371918910277707230753409938220118304533878693670202528492819591213675111492239652102864623764581462991333456224037317237046154766507114920717663294667946932200763158465903958159336178091619509741427136572257695241569979147483645285497005999132970594475370669061219825814709309294618480314065017587810502899977169374009877373947334449482014119305050920384198412337402913318995514293512478948923493463463038057158314812498231703443422477950914610567488924656758166175507834536736227797412613603438615750557643071901543484222854461044963331695607834758706917406512399929433051365860520387649119011360564081686935751027700892861106194537470128411284011071086006598923909020546514957456926998570775624888249715162542115813007082677701616354981504635912770571195716224797856290230234757477451801903432687558591807271619799201981905457500309231879046985691309172737045067234301482347244204780564970269227852832807460038235164851851104944386269258771289780397725764096955193368386670775660482026128276729485441138960913550859377301420982937570601003892596296228516059712533882465577808490230634055419201855633575322010272042031310974430371801596982995852150749859585069390833190296115489393298078303725399279251645051715560218832834690473421663907979446672923949505566623359783749515734110321037641424713611605326944749890392202192088260138821640497313153327266286822153929145409496282116638132559200029784843936701689339688118595865608312409089316786843791646161307434479919057062751119142774076875926997980325938821360145260000301937896014139331475939796501038681071888876912636043453756838439578285307788210018644385972018271470601624379624271533378463844685339766811148652114912752775484515032809273391743002241930852600052297012631275719281472659422975567064676865400379702185719271826583926825911384493243358629279914866657519117479961174067231422193280802996393290247082958152103433100516277595196066984475897896387888900858254681191270668389538199063668579654023237964713384051718307480670499577803347196169964658159235446280910312110073359054618303278808081934983109341358470898915694285162321158873546616846378959176472937682199336776514490492985664364135656688590780937262911101089224963457830632167705238120395139797724050208046524056584694326297396657685730245848016780357126283111070491619750650513178732787990436613945906062386395819555504548410330023504513652893306526910642394620491305844397142212226239079443285914395915895181628718877628629235301352030616874526390698540264533750524740912262437335065084735601432385355212933523323745213234220916099406027186068966864625927917067880362021120191052360022071448913042599037439062392263252451486959018904153098925392364511972931830933660475949930006824031640065976405500766009844553658201139604759783301688342137146565272221661567950510462550973781872040750123284576908741315303578180659587149065818844891389887696954938469882302932302965794366263257512444189759968529488830311413993987679835325407191065912009847263758137587958265671020664597317118077220613733034913348448044310252989025509702982811593337457514918555461279047738391354887170623049729591045210960471520897903540649698712664140112217565256738384461819656643115587076071244896847966496670179481711345530772411187940595051956693580373205124970269148833585244075968377550532486433215284583044127930510386825245448484947249707344560032630316577791550035654361820249600090227152293346728182713325078162398654900959126054179521878709158598505300476833999247255177600305491759094512423211819596734782742290513057463875212188039322070934161174437840891958546256673745705930660464800888667043547093958947320674680222988729489393287452248783011298905225254250482926622564535956304247679156410637087082324889557745567748166226853311745907358333566455520428795915086172158185914673670156931037228361147145557808685987605620193479742984190374003936667816581338963053209996344203885446529618721637411228042435738722531469461951764788802227236666256330603071292899338801289244508328045865801226725561520467844445179286005469451675680059261522725799887166147749881378493582974680962648202909059989447593857080268111499736642652120508814168233913342218808765135899192882966325127661207720581438293333811201791351505259703790623915349978760342220420210076714398861784625423005889151208346385703608253789602463783305915038296303449875403174272687391122416780553142342531442497466690749566348584161837773522033904324682086410392609752590989805616349686262232859873160374154421436967492762726749223761888741577666065022013724222662036972052623220493297446217345121688841336622562538899162889081175235903026816859289824604695681413471293756588758863366052461295179041800761811306963488061938005931085885353751204863453538848007733818322362349554044716882303742204764397412043811042370933246594165008690811300300903197076071277933419151333707340260604385249140374416198101239744727744260372326717644392912245981815650019854057226528315293384163842316448977830610563814266259571043837774302675022324534985289485960156414808162516352321489485195766407063053650842587292239557244772738844747560504570754171309321793030494537817750427587899252748120202249312323984854911134122774656265059157770829446010205218770447681913520374750684153925232982367533860587805644665155914575348746055973328497752185133339426894267396415613532209779158530306432947259320142149283617025117589606419949525733292484020580161399460996715229870694106622088314720106226320365604546163461195760337726544946394287510629204370956609366626371914999707458612623723237821478284842807693775797179415855479187436318418482287965463949785282196890381129527897486990963097943452577735143152135972318925931200448271685217907550385406893699357396285138551357195259743781871740458854503932621495009285214509145354384399826074008383015540597898835709832484701750117807194966148739699518636024708344646141899926199554800518573654369620634900543266453428174207270132622935818053153197931644466160435498617034502018324413995125243797741513025338995406630833443393990047075006668469103779978918411672237272434994009281587678097520869740657216227377505682992559313249700033037460558353751267613949451751087228328205618635962442093011849750092661461028347912978153595198380165226814199342442134155361968364756421353866079534263774225546456604217895960971351614097750928159776559248495556947221814242268574777133065376223253219448811843795740060484587199982384255705060007451185042983571697801504375977566742050559693088674891077574069929738533005543503074880318709304788459077033894052327993901087074072370041636332936117841394834502677948323781234084949238225889873033281867641569035122621289627367433814926853425146349613810676978820578560160369528330404483799683798462977625633047414920851733122170044102217484448575716738783522285959789937380838023587265115156010286155540110820436806665600201099527003655990782151404467401351886513823251539789458408516615642726870338159354669275111840672518564838424056074738990672509665809419164535921048870610330846516172114760232919351662438019811853818094888892914245946630909459818771794153439444636634986172676674947014153258680088527970767933804351639924614468208257246997045651057180984813501231668100264065070238591423387446617716355305121967561209065656372481400588448108233702832851413952791629574733725855887655875839705148105070652514175132869379205266723714750705907622653554004262671537035905997699324449718828285659647421263615665828988956884700145746620948119676317010675171472115011870569168237947432039479784205801872853799001138137955476464802796258616607206064901688394502788545711931237757813035609187605144345348399158474985567159605000786056052428537819407131739630107547360323135460870897438865057355886456374115090999435891358790511360924652117927960571243731248185075901410344333377748635411165837080158636801218164602889392099901243468224388243641743336024961778543170024820035888082128794290255099448760368324032769946438105780486501714123833682765604643862019729365994369692805045938893458580127839188618264908229786116913630733578016499713066503381028027994573176030188209729789416532496013472348483532782698680243144125633446744226596100502451129507608618552061127938057918885818920992486795632458371765154036633895421376769311698559843910278459218894342884499322944864522395556502745780951403531037249694128925823196729595175005547632455002895329574963050134248258906810145204912731480508745047995269258098345248463728280024378551313903285743064783510199783612301689637703801619530335984551471486546057384149511889917330547927856384366143594535939806920061921258335294437965286174000135338647497683160310965196368793135659379700627859519099893892884182731129238254285712232813630519570007915226005407074165792842122841232867207481735593287017387563479980152080321075392704712275388591383963753154918305895238257730867548952322909296071874580172353508609096740454237127174746468425204235472327142922324107186759541577687112131507921077327457105814572954537025689166416938769568752469571035997543077058062372002844552093121945390068423588406666191574267551702801340989683970341186467557700706274287796774549045555806572540763270356492642666515989473326471416353207411261595999341764799402064788916082896038645214625234631675974385763529201253520858198796504263066349753557397838960506886196000402770754384985554993247154919180602154922037823783228863437616946194529202845193521880433692438805484683974002549811462777148819775849853582021793522639430426745437072096210841404568867222288478303185566117380507301238534345990263586740357765895486269633750664043248129857158516570625295676592899371872219567527780966755940481624440785153265560742728468152619547728835517821591849115961002475750708988366823869447245675814340205100881637813933586368690356829591783518981426317933961406066864766035372993177139871243414911792893768239792631790197517704674904431848431693529768939105436373559587850800982051301664751953367965695196969496269903742364163839015248323508719397438280905117569860759793111812758375351526671498240942820158454629910426785198043326621412288324104278550929874830813608233077406738688751203688714618583843724518673709154782944672391792443054738629425596087638008207717412531049728499250716506694059790915977713372051656333408662684031298365514272224518257103728214827901519984748712101052200888291417347454649865182802366565349502991649107602134899857071026569555845593868910462986550490050538501635763422365648681091555615225367516481098827131219771799282464929509860241276192597355471718624391734037001180382504534927299803881578655475106506431658912228132288722813670417170758488895486691431151486193531064869285968234882114947740151936894161029133624441110168052113704658896678387783239293838461281866459938845892582467627582415173392105173149654365279590826640864880651032190117228975341953013002083785666541430406137115651833032637376614851097963771360546352292720131703338433705849695123692062841605429663168673090377106905035472415995676380631540402820828432358545163586657371585312372801193449149956182971427760941537402423509399869049538749858675291627260380410662899728721148232955145975607369693796333071839460396917967453398583552027545209828312618813163714717905679870947303349734373956868695746660155705042567837439069872418930544148994945062557835266989919291134042447985477826762983561185152004866710743435221262507785846497901710024402937482085751767860879414728805561136051373310362860834288611845293751623840677265304936955327930392326456265879469664213607717890275344832106914163549178702124297428913094749498308969594504096656008484278880723924978531056884490875748880809236464035051836616164411331306841172493483668477038772487041485330297659661880832888446869204224735973805719197727485318134974405121774841854278419007803838852907376220076767295557954550607444346610417380690713285834717075773540916086635723597204602729179693887890647999413109517194796593060491060827080618240665717632561926765973135011515067093041003486020224758835920566790740201959335609739028688248901288561016623036685176969542098283283887851459394201224702400457957470038029711204992514817505292715988160121163935594558487501182042913097757820599196576763026045299565512926040678980747020686649782885113255830964580001545154969606407585154017472419029225462267666971764354529756857104424156856380890730996772973429727310801268119366739852059732896076515840633125654255265016368071808939560167708689329209975300674051265093999427477014262250493063308924383635712830267309306634268170572597997116206529465154280307395865039519841718586913382343104431410340162701510327555944049609140842629249972408149681526538608039085446422090835985330064246614155425146062380474443670538144097465695999936038072309595556869283219255885333509133801003077154693316937710443504448198466367457055962476883207943831639177900760843807518491982251121017708041778030894588867342823024402549512653630873187702561275879814372732707811169820433076742412866481475706222563072003356130581936323899924926881481978512603507590254476146540072747705323993968553259263217512332847041104803827110606561156191323187683986755726292215832751217145045910834833336125847611980863764617105887995545556535748731653266690697778290359099854301315048238137340285517290028716811310122897584214443707724762536864928157066941014455833298536621656723691995534311307000243623817255591635252491048738612279158657758477774017339128190532279681869242778276361358321281825792877647173318374255114692167917348960576448594681346037717408171430961626648783930928705655044932779331541751702735373304932650723036792764222904190620452818320400033494035959796432393638013110320518082061018524805738063310876961400732798184991714599303477270469826731018848691820126579241916148751922119866697086039730775425269057713190186115535732528516733933109566911814643759660989950978321800229387157846575577687182948773171202177838619553498144239452759538388801432205913764292431678511889959678884863503987493029933526821913903583672977096165248718996832389114533091965962438901731747825267370301862250054027725666842240388143731687304476459113447792476721980212750365282431182778524906668434148815303354436443211558187272241824985374632347459429453185164013379353153408759580922734265963050734049519508643191449688354749326575698694043933855279884047904495284544330547812489537174847504874166870785350936239757344002188351893016968523013144193571353044325340721490293170651167210472690576800775929525138911944283565010668351062753485146198155910134497123738276914332822827653261772706281793740214345305424851752123477796985863167785976375460532159050998244730561709503410962265406527386956857718816501883940634047925300443249640049552284044837221305946493402459034605696654207506711835472273518915341302428606607704141553322333013416490000793071263902406359107231593649791999310260248359988011052443208853757944516953078908096670017826748029509766622648106865183099901587233306597652103581615175748128287847735476361150871727443304224196632686292877114693523978784980913319139801554095044149517063827301498474886642639715494820436258418767085808502682988526154125736231203424581901707541817185138285971846331048919207293671410758009873592467838696465716277594463304837622365677929510604815269645595594892086329010379394651144214485603195528629926903518355853407518603266122624319902745819904025954362862252020307788792078512316860222353338920097794336585320698894313714985008483903861862790575253621158846927362403633197066190984460843184553842046798325370165013848563187539689652886484462487395853445017899561903206747370636121858334993382612417235946147381285637241022724864577293771440886398820375861235060443775754227842596639488520116034920582549281842484162991621975109890804832006014121207082987340929705501926073788187694217854086159255979878681372316757645996331996273768638104267467568741454455977863437924495031734824392419861607533322670064450346710389354246147085474017999945976996205432302302712231775018673321848741265404646755575504792746638734142073375475197803484318250158899591851745259768742889905902972157982933199312035226134916097581322348869329009007557161466195545930617944911167882461425160201069543377186223035852279595658228231857680021237348805900300395174735291478083864020251718952058610117200328605173185726313896903889312967747890784613913363295491976740058940075691722733243958934970059889423461530483948526753720815222775233972276754537958638185954989502407837955936744110346534851286933950912796983413249608297387061747051481301366156335266199795011342224258104570044616410509338300192804190813315800195485311860889839661168985777605172722223811979808266397242325038155270016307199628136726628822034650837617319946941472724591119838547867468738822400227965210003067312626701468195375620825152334404970817045181416094296302473817991291295953430318569318148203171605306120879724777201712072343853908236885994565239420519826945505602509982962921061253577590836901068076790890972955862043374408350400743001373557636113618650858109441045115255737520932123693104001210988665293703927550588106825480113808001559205537027458225720703713045918327478677779484965005170917994152134538018509720529478713308749153494622563299799673426420641902781774631233084520507265373244709485478154608971844963772527545462966811386806939004780652059707675605655202997623384496126078666747517946231379310781573942966133024066448073708889440251881734193538081245161749598290415132757460788051313814719075187396411236495757307546429025429555729144490951544693370839804889519258178731145887610353155320168329647529641204818486388129710415534011637970623497051512015257294663063031151757167293477643385101761242494910690092796216778685767506680316989561197824257814511189239520563509231296243459172861320804979163202266623290077653130596291663412071776748525069287831780724143913204625666088713434244164098584556798592776421342945743322511199717493561424654389034221417213231715814108844239803425254321450172244962476741704959526267533733825471092250522978793255739279994816781164042034259991617707925304198627993941791100272164548185291411509002688058569484484124924929107200878841770378368226493813033920898120752471527972960303545271903149928021961316448323072340668639841634402733466899415202772846377107054070066605811571476928152463327321196238840772704717568378302117398479647813263960921868413943068736376680439838740506723332535260203659548179552150951702907686657906487492533679263724279121417466471520380133502543454661788217428083441630204629052117295239709155295175368024016484536368583673465569188677288519236656493202306227495174608759334248356929417410471492231443257623750437146829414409131526551817217441963129379758278728801530002967184440413458715013014177575950159953997853678071165257043023420281035732878226271498344239546978894015905001833633456645114703195425005320863384184621415187974761555738423559356302547827453616044002099921480018139276870372898822693405121485671512409296356433729759287754382017993537830847394816840177746520450606687237078058730321559453118136170668388569035973115913757710750206309561133201308901548215214245294824785370081308198630369755269238701710251545025981140388405888816385404496736019790252343409974605710143842718256123216216313785879588378570833945362822482131308180633823848354251302888508839596318582060977773134537049187589254234748546971704845232881420893120136326458098910055052558952763044677267148153205549940909084859717388803067576477809516251145477073357952787222452588593019584160946859249250319987671111465897144722334999756929139268560753372731683084020276174108608534327301254562844547712377976917347096347714510587747733378332521950646302816479149052817341626303344335859183474814531964035346906622159483057558070015726583388500491675168005056777475176217751424798825203072181873397101685329430888429048305254777352718357271277383791235418366167841881407087184234841293533312969236353870333530593586395583580619486150247862450810873734569748334186628601288508650877056075191479046830356493812720642693599690499582164055887186176550392756415916291401730974525793172085214756118629022656967957564256248825682597733042253290828784217624226931114481238509218940142873107628058323890797239906415174958758450025067045306355436124695894846251709451878834645136700751792695567050463339831735639320900938887819545613299066972212750324729903354722403485958106780975938128417686427982821283848907181130578789028654275936843372849627286241320954638094987033484156351570235439369438152144171128117879841782311796163824683388139326038017035796845140839338875316712799279130950058842273601465588276144110756224680033195284839051852261219033697073344179931835908539723869452662105977582580631441237419413681401827141445558299609894130006659251196773153686570941155308377049784663550362514829764329956925627722710516316675259937177981361109103129166397835980776418375089068239135462017312120225752291739179857164731328276960628874570916248689437309385105016941366135204560227735658184487553150680575558491482502438535732019292681631276101971751187875798218104808830108715942291712234420656006583027587865152355132258366320217695953624108972694081301542731174771199109840029253143964476483069584949588116806925190972271425044438015525142299778035955539469629566633469368881293858860329151248548624230036092244597039466313296766657218996756738128272585979479811684847470562503831712891737726526590574747937053172700421220972595299908630239058776977378335422982507713111659175876087549168930588095311830863743815307082465554325046360706059018847767563567810838301775955699483031709571144583137585678298907376048035606677470556556760670670983169421371937489534208094596058961842485969030239653194216745085214332291232587809531213955362804717080350794589820042516156619210598348346018285260727243230123471977673395694862326728556228801976142362940409539492826258648340614061888975454689770873013255166899587700768525106581889778104086700780744481929431152047184577804052784017298853965317936339612415694139939599087626913071597091869080657840541919519554622197629225972420458833295598174822679574726680222639695821279682130843373873791569517619010234010958263485237908337640951649018840201556014619568268411106999959225582926774567596894416762558035971641989894948446935062037359665522773881739424837277092201777318411968306835704598638874690887307310950299175247924050295284804515038661162736537320594930409717272020140599557318468852283429135736954942147552870960358659609815679942459355354138492349199155150233569571293420532196681091456947287989855925257025764489326015431449578324591542455243669383573962639109650719338111650338253402742729350554267509298837392575999866547666703088886587306504450638536704228469489830886985823398220805017560049604820830409076413316180059742288551342120220235578216403175202235476788317807878658198355431360004771640455700381961020916390099421991028107315963032294588428715672835260483080692903342418378860451503075833180384439444601233858182101378588943517246000650317901737969764756200001308454018651306412515566491135296538773315410569423238116495691747898915930793461500640687331220389827453122196352961363081975865718569520366375817598927658993612978935736197680473351829572929553192075612822288921938534790409400818305362344962120974032729038953036701028912739292756595598431725046369296455576463859475041200128557633799060627563025796213090449755628483239277772144891407911877687611241908479845436927650904315696364368166020928140823923024415264357861972791593117276399552438223177690447607957583653447297170494367302835112321586169316198032489673815403653975942634626739398856689318817038079861624897557419534918663921876966303458660714134632039708535104996645974713155656300683388648646005495541743384575182340544982200842651927565936171384249376368066383501230424577962555086009420155995310786557046986160490250557525645948168172106528613135207124658909420560633858212477194185335184579174263950902567747146581462830010776380209956932518156314400971285550093332380442934164256507680884214129005733956533081119631094690023649569145726550934718010999436989900724564251568141041306246568470762356603072625183819238090706540898761342528039646243009174783370366232966862392689996997567444542453023222848673168723418976196443281534039196883148048712673168258408211523024658225984748391442167230631376423541484013168368928773994451319097393606178919937408987232324802750345188267335671464688790445435625770364599222265013478928324170737229433964492463110477274780519062415984764606643652868096919354995320932651072977235160674804319185098464633424404671161178520540972262483005417061367906611962407808788838806543613928136730929984101621496267403314319161779610630540199057936079085941311435227375414833361787722319377443628069591549784327003929745986293075981407778567474509398121837989862970152120930099661026314462127276335519893906665196443134432766382774991607483330161215889780523161967916945149744248348764924839672192696406764912171434326721120547624323774374712577671205270091680293803186101557161560183682213246521198483227263729889510188279325992671602250174913918710321590057209461261571385143660700531855333043161846382328015792857010377780105491985340482495393248673815270708571914429298421589910273583157620659908492307711505945289073169599900526502431381627719443911264115645618856389524104913362457368485206306281804282173990205869420070455619179261429373332234331444279694444437575051063667346967890487872181245050053421374235460755300744000455389561562447603506799237563016920723930466872568856955003338040875051402664502947375302832005278549606591273350252614334900623545103140554593334754138751166712240509750549705393889845379228784795429990303791423511982909293848024931452357354491543301199824374714326086864352647298396919143490078462138992365686199932392988579191489688873730162622818550282349496795278489531959150666217782234492815353308498775808538802613278536239340284033282137490281760549653582936109482054534706731628153664645498113963520721127839230817370902513305145244598473267441947253197637223345390634924987366833284668638585510515648580144981595817245001854716545464650051407751136240008899416695308829406369632694173012819348341995323003082570342053369294769368734063741254546282512072975244615535088945038830937557734539823142209731175645401368760685424476405616085999655283842468366338353336616037435086211753990767037454913751086539833329038612463583277243619319776724369289931619919555952890802369180449386606363118076600330962425668339674682014055159096000024964941756065886358240132622763280055162681176695126208431014217313130009823877147413823163681710467258531871686314488194963236475145026069588459639687288155259354742185176319692858937323198891818246534533779904677457219144175245135193000161641251959534150913768428871196188874131425593454999237623023894665973912480906211577900963891954067543237844975538650126690204075830527569156136501654256672533067389342147354687132262805313711176746793281039642333687661675401599736472658227917947748872301482556928956680157949335327028397654361235934846453044358621511154397257136707496779060887553045357677378880728061430501140806338670525062058188655206449427543005592462964274524839475689065662163311469476834811400635448659000464082692985076672407329536422756975043830186872333664721933815019317473771560947511921834357389750348354882718882696325696838505669566919832328978911893872329385844432865097072762423339747333567912773720296392761802728413161445059195571872503469568543467835674341057983314338260322871842861635419551925013977139692084023216959162152390710300860527078157836303638884290416914970324621483794561077912459675381131970980326867619259338183964263562969856697795161916587052919170119145292966680818005989570424609254203629174168175301922961076707771299295949939433189517490383383553366168402944893069300801599123397131761646681051030871861362777648693858203304222095354654178842918931466631387183197114035514133065525574112301113066281147886189226722959328643397322292489454562081550207800262223894496986680275229315665496063191899442105868369047617317620446174107529723883712780326796097969074161537706109538198105840998566298002560980379762465232937982686786694440912977890970972043941508017946823851657325342384630938101907617641873417190470495304419992255782504553551566611550381693382078311222802555447660785227210004175045001028658405985663267711045091877306189609165860286663225154870912426740184625142991203286281833433577150620203526119753377937228282683497997751006470373067445736535193417275231293916130554924562443226313283142924119380597545801565742480398097605457575580493052877333659404654002371179874807490778755002303175957567952407171412621220915640595643667143031795397621133586873393499445917135655011546287351813047937489362427954943251703563402544439474740641431750618329024991122278544525031802052407532472301121863888501522819895126997660836588061095544879682365752070771061019541377524717256271754115256544999247294140964089730475851498249383131641744619277872623290660551228807869267891013220018673643281163617206213552378788372689329222336998827320070838847728353613095373148542719296810801772221246976144204470663477172542732690696744330768496542526786712874989362677718720696696747246735254916839228548493370916453381583227293835893142064296417192484510420126557768624346092464534941000136423557568492908897122337744320372040442089012295024237251738078613464524110947654414939376268373551094989181773292371508460095757022603889300792186725552220421960760391371644538284289693297589647048513814876222554915046878877678004971031995586702887048704774214648604369177293360805388524335944737267136179891554072736131298848131974557714883584208369221202285080613582186605042107961362280054260098210575822520773128571041232175164925097492596052786733068377040744018902803945984437879384711188560106952211019091472544703416466552945037840186305254014974496806787733301319609975686270340706087925479807907581716344599601455110945982201617585959087315413904496631329085686212889235977888908100129404292371750427263125058131391576722218437729778073984016076535795193538477207476914085686644520382552422906881396192505060742482351832605800323550114945288204925348629081456631847487016578011894652784026357383945957365437866275908419615300713031158580210846977890490063147547891937719208308287249607269339845888543539973454419580931430983720548861023208737468850727915802076833506442572926723405368047393876379714089252485040786496129688772930855663058051227025141325677645508114382199709580834565877810112877751364671964141259647175336806664587485264823719996035814079875068211912250666676092532206584104156556673251386828948661604429012748550500457165776875107347542817032031687148090411526154584721709310963636837932296166494200099340624012409004741131236067599277298259225839524463660814902093403286094582830270966833742125063307151579542339118500939938352373467103583883724166000601652385260431365476243440299568910928061038419920666291937976328819010294154413988157263793398480880759637344768093817303065963316422780840627184481404727113480392353616984887374513128079329159360416656130008247808154501016698710322612580502152624294306543277470434820643098997711559375779973850656884244653219202529380962353989090925929507564456474441850494340618837966616030484820120775265703335317166606927811934961095322714599676209981709701326587617748382426677568336445040375423403849332130486348700269530779611552097840545193693185515377127536493229126631968877251744630058843833383111571159967363499051031485595278096972990472092145762057565430635822722841750986845988499359205472749031591541557963097674441209678180216715837581388631948810403145211552532822569004663583704551433648238903001227153234847451875602841839101628795012402253199275492907510662047399213130997914572792744923998912148745046480155569504363344743673003944686651197202077923392216213985898359953645951737979498613785134679434081391085571189053332980419671761466735790301065999569099367057339664249184226175398853651177690132727779112491451484372447350912449055099725232462934916371286409558938405149300592498944860462115206661519685243709503712323579125293172979788843018316221450927213872776309175057013798870604497987117490823280442193278876191548519839675892276590849191297472439069561656986332716512609155898054672643679400496898581921279481242091482537966196091146884751328049842527061193516578283932088449033061639970825996978655090769892431825088500813675810383180497344942506598283392159942088766680941812466599414938773371493641946818309503938588622911531678476900531154051682343420238458710141728924152562178448289472985082958373003012176274573306286704947811234988414798601064603102290656043201284289151319381201903046173253348660648618542889714836871847457411551174186326195414005342692858565381075503903551766344325100492575372214929112731392857239887623228384741775879913209159671022678402536302501757116557832127141870823981302915459437384780776161548577782796088800399515520520266027742173584505710289853903072546686766825537231910282901550341404276261081573701548560649108777318541293145873139150160500742159265998416902700218501409906505435122811829790846991881876978495076187348675764304920573378093918286163043916639954705723263625919856529500267852891013500680701478553446246113812214039265216342777926498881988781303159206139904362208382234476536573961518935101035626177648825571995233605440412232280030474235476852211104837075697530889742100165043019076821055639309030329126361430730003242929120578611969612552841809563078959692902960441676161033293503190207534069380104220686207088019948075440053826326007673815129753825947453652446150927666323624814089226103560354744636886114621535885888412156937793014232492107613014836446117299345517216283094995513317110923947997971013481048274253792730992598567632129780572529772495657727638637213206543081726501472923095487983705101258350123294623287372364899172599056078648934213635017265885789974031526555882344139623581823169578140719438500242145933989026998945192971128465510485380819477683943158487060391340240693500928572063398938192110421150191134573387979194758752995826322004074326161477426187704422351724590591870546597975880205642727397125623721526181741735824978708839300468655224187852547584112077333972663772963134323622304828019931361236546141425890112849404658766332387638976729647333624431468964264590619525092170447941478870312403243782228576150871478531793430842571924598973322610908307016812471977615186820616223954291676423522682613427315500921047657210684510425219937887287126382524241064647229397107184535084062244815002965530342572149540396292622478850925292314517500969971821877296953665105142706786051451967407207444604637388851045347913881093646524160009203987778933463722590343853917857886635254404351632309073530497253015432830369190878891109955558995559754788014495689537982833360691140270700640785732457592316740485247664033798078443724975381741396941876110451168916396064027207742363005689632458773599224728353772961146359931035676743456994177325784115941802276626888242032422105070822485749844233987491647134522684957017294844608425625285226789109058143484484575381487171065381290939152858353064294293846408116615290176420256585933581012844783224627485046042102556301626154896015245565772837515950056623566357821002869697094735522087829293931282695482308941895042994972912568696016147412001869298760366544075616328826306078565884521278777433032781731836855556434191335885805666965327774515941619063322911925559979676787171139396623596951172211839628219160909676396612862203487233299255597722126516825610412270520131728122403951160062446445986431412138055894777469703742269361095869750524146750525547663356548439884489429557357516729719362393293800574250890421883656763782978102589096448024436588399113911025283409246902377348975229469542482530325586937675306260584958989424490870695805633000741087267053038323655510077244384417490273443319722278850281875328576946011838386749833568155531746884567030843943162458907353616440254590384490756947795657468934205094692894507003795282495903068616023792210229015293079106120002763601984621515620030390262160003965287656878197415739999700578470085717932209079362519353049535408827262583714819696554473584721947327232105203631643656471695957974930801394030198068941202656838441950855875577860042825726594640140948170010226720006406864951230299704088477988988500520632845425424014535540958198910192850164600037977219356172342350938410959358239617843391074508023382839959536681181775076445952193619029555868777459388690228887026176555200144694957245752601725876943280404819318989216337755214445973136437736853723532785148582414884466645165735482448911660493022688784948838428194134210319276837030855601453949225276368816541728513110587612083402309804815817258935422643290048328644685907464174396395395746371187649680946238413722218464403264589449278150928809678337456122224326606320248920952074443738241436327083344854467252555320246136535598456889667783035148901298329370314395342175578720354160249779388298119857911259612937234337187227290272768218757263443877385198635980940962007944445776727751212269970902649135122734763703059179349125745595496861385937379336014034787839341347067015157389111657979239932391743724994244220814983613450216791986574956102813764991169159305357583727868913232905738596905548458746441895042932524232297315267574984312267534217592209374644607379158122889628725556042354442467468154588897014189341829938585646633081544580150374169259045291778472353116104431255680239568024989081437963702913248040859364875416137624566738924799852984190370035059421038922001967185491944369166947002804805688428930620933469375687230352495230233916212707605278239383349938448037481959783980456355919893025087342379702632379743887843789585739834734365668522313139180125945352499815571916709877101268491864866454507256682788092203827406717560971266297617248280734438199647240554106219280909040368497122909904400516038877703703094814069993596140633503369135496037306488537622728168644175870477155174528076319866300276820938926425413135404070899338900556708679523610330453412555923282241449740793214518628188033256121154604031000285265624017122324700484654297050918916520166417468767884649717144965165098803159431805775254594237046586019400761320374749930390630335485817531179926065241282967552872377130971198571798495499067481728756098339375465061381750482795868583568124206948574895110787474050270392975153067513194760761990349830065329181805975777715380066071756916202714669732475463063009270068807012119368045263035549145037779686234146321467558389623700721250312277033587679259679248779968766186285600961844487932105920381716943399056050087874415849190119956083391425099563664115165716764037213893075373962137772346126920181725270045762694699554529477131149178750556540918110143273858090477442236982404236985804757111990907300189088731818670519865739200456749202355988332563931252153186376528834848819846711525183270152016457978877555603215743296503172669022004698612865892821910586247862710048525943177848303328531165776354793946070485611298189138613325358952228775482448746201969663784573007792941223372747921305424154333359239970460604756631077062998415135740733042225986690787605306531790639860513066180749496387694892745640863978704875568955310308089581228591557215894079013348873012051728209048150054991864509977011096216912898155357907749045686612941004830842475609508355623960771821956477513738126383933726403882187211224109646215972470142750074671646724860841313383582340757705204497353913498159204887309948740412059016342778703142810988705259929515108559954794976576818140286689289527618762261317860602118674210446330588082832021208383204587048776641372379963970116351975971111133954707708573463581241093370082778740170603474548443015282365852585172620372218790753753338751078493547418723772093643789986664752122606774993117540847392895380344292605098242434394580723667795907223070277640239107356055904643397183585263852322722693601372490660091876214020757630553063565212742035503835231910041171915053051398978654876891015172388652564739684697625662706899649786908583769074417654731590630726315508164238916822430668225442991398294573012231035167947273588881349173978369208003776578457577298040491629118304618911391716752421773527385346101057955966678201096463636666029806540016243073447676603889835985497857722749843685522990735325703702834237149278820766805996871262704859007065121572120379187636715736904173842250977708925354866488581676242719593791695990282397050175703720149784545124153833196868821377277124506559556973041647720615709872258745671611592319694224147558202445616653309202513072166840710895460540052101917582357370132027453564259911308297370771803778758186021515743899875020683134787449289976386757737632093623501164728494586087006304434531585035870873105635252054463446208157022085683449585702297980351112465750809155589152288735861014006850042648392763670201783839549875590652230871021969467394204060066566545895721229734008835134869371007483736572989067563975148065713068476120452658767007466980964924647850743617236429679740719735057978324907814614153506773138863492485474971153707386526696024913763067395445857218344257735321177727902919443823554895726402953155499925588598743117133212447548958251162856672271340604842841472469214922937116616789497449994081635928844392842982478194342340083903310808226094514481008960037421889314889837705793609972465324529596168280720257910570478673658785378724887725991645492175914360200000748487583539723880740105305170916972127542123094879613035285290347680288811711253700429926155182343486702525692089595970290151860915108620753566293387233557081214495627043255059947621575474099439852131372472872457965756591083657133473599497437383786968948481284840764778006836473813674410341152520403263522145720513455663512762961355767774583609865718400952666472171608099582152825051947381533770831770072883341569086830926004805377713969343855854458640032912023202820218576643071431129061694239293834197567779732678469070480960590630577974116863252447609997822082517084278376252299932924669387597117772636309274376373484721279519760004911744149936575887318832525665533433349044616297967260257940801224783144558316588626469249297454410495653471165629915215186996396572056377653606644592738226990151709834800425925222344966182293464282449629055645629654307785404032243739129925573451147792861237123513652901291097565127410769344236646876411591220932913099728405311956710898447503077020617773356681370188445385045143062998082549492335167107864245956647217418763815624199522956856018642684913604808771716596524201823909566453377245778732794172448846096077553627359246515782087838465558403442337577343568762804702724286812661627484336428670572814209578516459002323439018589126889686522527889383598047056542825353383968193191097814775137373065677558788466712375869232017942750592244062855779145007996354153708672763679155948562908134015100286967283458105155673825240365391116473619639527628941807946815773071531654929936424961669841711709096704963907392496228591197497215764181173172887200289038985370865099258349452336446376472799845038863458899761195561687214864968441221013391226147940351512113987556588188591414628581332871517215543437150105598136296117522754370000255613665043769791191975757080611458470923997729791284048884051199325375913467930177525033123447482676677210772535767087610197504704078076921026277547159185773007810843058438197798930210476561892393376493268439730231486368878842766198015973931108312963836370314078052784526977124764547523070705767762741628350944128447130144661947181798505713810689788289738092218296639301854683362086591115935609814987374415581524567953048617344924075445536516089505202998857276505204698392407838819221943996783257694016342800869408434226795837112664825082777331644429412989473338785212063639250393883727072651114420427418824154574018295933375109584667813111728334681968634621293480545176022230609389546959982082553124873015121164585021496497042904208777196248738401165227558312088915379618681222292374287070331651791848545922877246106722584345743767512388969661385231789930350809637245554045295120487550104031575883329382386476137146618718100336152281562073711649689346377298438715025639979440729421357840613642696845606003953573157202057181704088120516759115497482433523861490755208903714228023306078695195458389484512595474462358712520597724666016523813846193364682246629353023327814316319971048678046320449662768990554269449208171241681781489978340391229650703736167583895959199680744489408379421078226924338972517746016661316000675743662479634399094691339020174651548947901831463412979470103772219309309391895342693950735045925578299380740483284414369737653722120917160908823527421605261141846350043047152647828991591091944779846650628252456456913307639215433643231761404936630038437115503680413536195358005370655401489741410303392501616879511642952307895236809681358061004344809692471461284259028672225978590203129021196349937242160684792455945962260297364928969559133187643234022602011831132616475404813636256867760309624225058883356557679964843840642942029032858003441012832428157273738064018357951037919565435517563432497144156408814725615879602128210741394107154007408627652890112170598149409201539564672659316124898704422121293571034515854490565484938241237242711815246801410264598713379468168842282488622220774242370186373801942445680873101667194453707108097506812348250703500322463936948282037753547793343960695195640431230530930476078998402258013248689437252257935311380870976734042561837731317514084812959622691244124343673367670924184766805032054906629768857291867294579894637214250910345378430441608575028049943911355474183291155280624957446601912064800975317490320174220041805855658001011618556397183754598348261489651603707429172192539323381512549560744477409066201879207825137746442165011416915860805510026978209390334106518734547418786113346371906748107893709204987799000137776885778573494757035887701341404913564025061389546787806011960266362977199530657434904803486091429208471528457567638705586954424713482161287134301298436765459078833634328895801680265342275369538035854380939431899323308800247299840388177939574070776475790899721453358869547019168713900394915415263829388400268351260603056726774444819105399475699345043367418941820261862352331251227962238461979831430650480150968877545687498861124895902983219434878728523664138306273326002987302673675570995753941374319996270996505011676919736729718482771518188840455047973757028935485193669439382836848587646315515998306902996348192523833639719386903086312815512599170835769514023783051911535977760800420475298862564321432991752409108160584544782656156847123655724812225459227970586677204528718100464295677021344995546683426889882153471144039955736624398624712125405428965765134525570296304075104477211775596263304916790813848103415929422839124004768672195659649667292603025994455135471873325403182431337144113453699022309233081449898988198735057090764042729036137334520164331337898916614153997583368002496699811875111719261334190964951825290949412277173478861223610884074673787113143643582833216153841755438657135169777687509758674365934049800255502300268012561788085336643597653808349392358823729821992118077706228165645972185302694614501933320207076100218720792209391847852683178214584792510635616486133748672773205956909677708639237275530638303213962505058229177412452143552660232105683300410256827991933035859399261269386852007558800030418085011549591178558401359166422626861149073426630880301680278156549297075858516889009478846492687622527271224878196473604844547929789224401886289013612325274452041217981984668194250136032324895349745701388390869320486318280342322340537238961494743312631554343619608349769846001434918110081658899838114567074085887025071433619244706220765157987493657040598746737954318541940074984058433986905495277059589306695399142685246295781526808785596166277829402852464252635912363019053362264317887111807769040881646112060798685779320824809004180647529499617659436539629352518319516817475734909043084122568511737013504492388028999754837628764765544475489340928677111737340058430189651632652283528785076088281790678669289188250760421489208169409869922613121810431123236131842861503897810282259283536910523457712776681604198317183919688217162586845175665278379659096479647454981904029847114101597706005791353925113729889714737030375710806249499180845501537204758189700283855968828113702202875750378546370718874214479834765723431792642191606175166771981008520101814199368535985486645655928396923824734231299810499570220567661072533006324237308583853887045185710792724352749556398304356427224263628599609411737892202140058738256077561666882997410490667059572955241673677159700873828671839086329379252514611631534808039585609735574189787209769225794542317831232424470651425308577082554468414810033536165043224282582895081965499641203559167598022582747089593002798571717911348233571299732148747006081669429519633023324033727799182503282001161092443641408209090205737033472432798815360230659792720690914716145031137132355393364381661552301955295842879767927696706533828819824570311849561573718818346035759960437619240351046253867630764206440322935287165038989865134722415092464274648717091370369387975287724893119694012603504999320957671349695397386551092550691354448383186311148202720144523014492865621893427038242138789672236495130649264973980702714649263377932279361764519408094783033291804412119251111353804166688885753236541090710460993261284954427747080252640790187923435162774746762548590243156129498528396187673052627579765304599871540228386604317487301443069193597028620611731192931541595635684796270314020682271506766011252793804795986636489233767203525141132842586994306420006158061495895012707048979050460239099524220845899432380701350121431173506479498511328728944073076497231339102575639440453242028223457545275501590143526914465382313833268004428355507205262176403075193658224981225189073838152647901681631127268375326698543814661442136308468329065267500424488763905065576064152749016875504510886474326741033582497585285532722370369044090402506808075304732228921134971456656421214014584488133739853339670137979943977640974932799093760392317100576157163536712671133730266387794535664235923384869667032960943576151831402333898542940515769264494423888981153083641053189736752602540525557474936677290115806473955494180480343645824302531269087619683132799131282273960492267082738016301288459031537605541351026122296579182989544795253712757885728987359521504541912762627219615868912485367791937153012994320762018957625446916203670573772043668836729402252676713340339949703309256520927085829865992013638692992853758530744169159487846340330401620363286014053706859041685259881999251193936096372815747097838958802771571921323590226005851305452784589180581742517452422707976687615806512287463930395790286388210476823669986367743692231530838417244733647865318795189462255505090178181904577085374118324872470053376471323272765352568908571595149057251823027788234490676409394564007499235417242006739639038729473023032287001134186697370088973507977390122998761707779855157925614208612919015793963009721979439249554721941991800860584010949810819759232452741074736865820811949676735894716093154378992945451403903061730396511668411273825089589195472575963107605887653150477536510994781364030382491361597839274749234257780566836054172866008786367359005369694310225220123085982165289420407408541410193968080981891446976966247134497118086186791720056794379546545177685487360648529816930719786819888745502433812926767634063580159863027676110546506656233821137165830962273512037034984426526504090878219681824905094539817283454506228877049048361170268253885977679675768453442093489901592109465170835356491871409921541120401357393933968233273270150464064486410658090323638243115534945127593813645858871905421368042936820044823245569864948863028352082572927426606932960092978958624524302558274896706118025890833765017183771356766226395880438863399734947849162269329337297668124619354624287242772161441882492492962566371744956532657000796626206854085939709465372210216890483418120980860491654952509237694382678770321388073658899005455928364704605696241009552811202409996204694921748092585658151632081092984753048863605784514364262563747087403935711066499152859186539037718475886614544385271191786889515910107933412926704368542410544606326541620561810507131769444780775425412432932776900095839606269620030728075244519780791213524369804408632418398336665505650723375810714713135059027703947249051064420899828374372475186295497130260381071490756296764881539354382056037612609578108873961440708620329537357468029451216785385192209688148668212560110198431940445891777595837507000570121710377362825932110554867913619564502581255174066355602258758979690090597972685812889923884303948853209072542926764636027986280239215506486838873559260633782719508303512418416440102605892915691176985338794166703972537565334669870740673692291076909669856174631978220041220551743350813669341352294500446374835363925845329056224727390235576774857406826686711370556993422659216142949721526403690539722754444015762856180095720301823708447876539134457537299005093816277318816543831168258631493089533149707794467407994784014424456278289952031770785497721178240848574405841103041140840899532017381728955970905804729998558604669534129828179801132646427347040723095663567298109845145042173694646427649092928073696349955843152259458015016776918723298220890716805808565026011177287380449079619886133794675627576289546143768597476326867221338018062862555345587364626915877815340917534431521739662162033167644256911516763451333357594716525479126384852249721932661780851425560170445821547981382203910381807003717604562014328789106593902924515785487850041806307437706196587307879726725111487094062914181723076877686831844647760427039813247529459464395237765650035889562886631120183798989551442434354206876168612908701692953285012958280686446172881608931469852814733311849228345475686620542315640570100952607994830674602534869688516932282329888325263735371507888517889903342226590370293727732060451807072697827532383690613598942405841181965925626497457058962568319041975871727168388578692381442075440957625891940634604965741685398397277040543962025058937405026420574831677110236968629809400886515484981436321698913843212669295335372234420487838253678702267467099118878341950159500709171626351690847318336360352120554526822697633720846617636374261653763583504845202739130210086916943603863627655741073843373580066013005402531928831123941526596823248276462423522221225586927933122385991079098058698599965730969952996079642960976433689050644125333348717937591883939707923834219823366334401895462091113887842415119506304216238508957637419315850813494484728196375445672646852142377458265507567104756860280305508958559643383883097315059713097089175700548258507736260060088942093830607110415638763291618316738846830405374437678460401053022608339350591315489622667544201836523906373070430740520301539603527708994233499582760310435599839508857389634432302834527951883890432018717903000271329268081278144801840993815894919740730033748227132366848273882200867649846995367318555496317868928279998809269784347812335462958760802316066750447295285447951662373518312369544124887946742810828512862216542558292575260311516921247817091404111274698778561446642965173836062475619053894689665165697604398407019742073732079287755387868335010781339543700162578627200246120563713952277107337976551852015541780725258591056481198664634546500259559292370909804855938982613196066391288783619552484537786423952628509919175628795574661450928006613636695211035229649219324445278864477486622763643237818687088318714103297865434967970154883490516557459984141685623636320781200395988285045548355255780890931899581142171722892729312169820942258601904417728944185031675548469128438023676137010086063962577948337252417320207764010216344308697204253788396537513605556069386927211655389365761212853901702050396917393458683140434077839851011581125944150589213704295954435128771205982012094009476741789058080100937363056185445221030673998440245011648373624652324234871436999826025433375304984607831940656945876872704468497099409031740920484542328431906693150728635422023443304217184811771207763453071899827419324828450389629374659366347538842950548257687762598992719423751405441491009900434952173752791869317342949540787593418885359258632595441019629012968232584981389636770749120476442430824826132258696551077919007452905886188569845050811744608357850911007939939486156805116715245576470889843226224922451552300504123939907844198147594056031374342889950202516689352481100295489322127780025683432496071557145607257356639231687261084558559794325083869642830128694040086492340441304914123651320846673784218322220376877680848026141945774695997125341164578342135040886453175854582618733643124760948605166066677349395432727397886027131650868892491424228186400676451160900455652073654546410299183270359380470333173577621459698178985521410889954410561732825107375301646635691187391284000510845987856987669008057417690199369183246817654605965153929987424390052528056416014466531163959971279185663346420899334570285780256811017369985607836917455545726647620060159839492039017769030755652725119359576934938635107381247613608651252665850331584334392110526823073172486025212992081018385677496374132921353177140843093857349237383018101399796941282265889608133994136432796896827287276721588522295246919280306008883073959518846968951868652098716951063477784767621450026510370614004842430377201785514432963335233312285424812622813443444075262843458093791390309894465363441884969203654845418216147044214151162782283495190435142003955553132241327124618398507672138995121777391735943854310795547818800725206455772994535757278096033700856962805758730283825426656166360406186331819333349924214504894981670217434852070621062886776960866610721137836942523887417788726598028221440081672753874510219160936722183962122627165551899797645719604729055138920604269381760774283177766495424243735469105003547536457825092763727385188248938645360740773518924070246469614027635831138631053705630730681042657402718750080603400141091570512031842846290693850818304208285967921711733519331341710301799719523542518716705915274016058806934036978097773577501571960174723097852719842095722045252429547453098899116434288817444464840759031710394089235674096537818560124118844079324720964786087998181549499541470163256854273492830066377755993937741484173776704046294481882821547180536570149496376407255947881528136332413164224017635564608718173011907482173820984466725620564118777254381685262717947862901727580388047654055546247357137984807352456929039926015213464435140839142645116642828444018427747148304576359449276334840711290314384045995340731200084332778496509343910802379929528468339981002831554119531529009421165846977980871124595058405935893528630486701428455888191355152428418178257933815093629067084389217797790453753610331280595174779731235119707258820885519964985719634849652356010354550508368953148217152860862031443928709185005911333773004382767771387447718981381370548008206859190140432573966872038830246537277162282281860608456982155544798314206545895948944246463281581372251921341110424947674177154767132481841649093915201747927936634927667510134348652032875267871588571426048726500298831917975573798932278823965646395013024614079737454671314921495208440970956296344010614053620264686385493592988376405671322725968798412782497992423833003896012141176780860329209850473340049185028604279031455158371230127779430093513541964121611348121582202807068059892206634593833385818065457911187052335378375514112559790863678129665405082802377515510284905812393115541619918073345011001894770847670544256335252202895620507558924730315410569584815005259127025945239874650616437656922080802649405912467300785386506675262871552347071745976877598633451439530066260481926054438202795899657208943567887607880196054405279311463160797598378686636834111357427106556732216790683283008655055566815522826724869130731967071448381811221244203134488146349012947259431516143165798618635459788037983196533313000056115196063133434912406457130618924388886786397015140493431858052598664372042396161787658496276400684248332808268315833121385038231206120207959168297318369198496385076660640142164152786015600127500422367646023814967878437739224016268427578556760329352352043324254039970262975015402524657750151880283246562778756810652883141233471563480080479417083625742319724886400614801867789612586846704626277661456732299549859050469300530938167808553348125736402047809375987650090957244049702771786270269501533665890551084124116736780327898482017271689542975826800014989372928543038429653727751433100914684166306426339543976541230604803757435218522184841391831251944429575325885252358109328824939886440765435041622077821947367783005097679537707993375580123570560635904466746552755788822742850605322459953747423468068471310280256729773903572452765586837363292833535225347380524191566505655018398905233362233684000103345789207910047688779667848195378208819448315069745520956013470612176163215259722547427066249107388114335660531627792834564413918096237131830065709329925486080970349578290908690642636984930924143520591611404003472314684176787821334870930429876208812327798256785729497452879400461992804998349911694700816789161453166124824590293494653941052827962603281201344478929650513462944899883385193008419348405682945987533848266386680750074692457787296297472281946724249352120245669122818146276748732810772694749144560687258103269823351120535461516170862460322993227341164231136149339693023293217306421592274054453425764608601068168471359710867090407359454563306848323138218888316998095519933956593341404082272391739780315787330136197525931565292317742397989637221016488482509511968614928479974556733534388814272370002985160278186963966913405657432501194236919047322269132829491551245859684196843136403239232639972040357024256446158913543134102735555138740336785709745524925205722652336887623739639493102979234569412635359368140837900362541444837393306699175123462831522387555745125728279153040811845800305010390721340780240261475823040480962624925989744821529996442057428470454435323198397431062844905738839682937966321305832719164187717496915370248463220285297979037980760673178586873121780447578526600983493054119776041905400245512737300209725608277744652535338849667117132503806935522995615284385127132870705689246634072488729138177825396373678315706723002890621638834680240277626157052385786000254485754366736025626994835289186111947855136366741667526552700653902651018859806169486221577211656142777288553496148702866271308544847411128490625112145572695840993062579025792774190129888682304855004547974684125546391659229037471830834274368852894617760184952000698084823348080144636949135421599623426570432590903147731008379431751585513013222521574022027996289815911788560118225972393990762042087125363469638729441719894428185332135898397946972781074256980419593313915239243149670392437660573680477185611022085731217626740417750739319279046872860149453188001754817412814732095398570233646248379233213368863598967568996614328829297384596805687984988032009551605396459515515574079763212166327867573374063208394211368339490067477268402207536780686756330772885235423218282848515167090620192439830857649842695072082605802505817343488301397144809911792473797496233912322845233323911933063078019636723542535043327611245605230250040049680887353377283558906485057742844500532156778119512593986143938075997190820618389441925139362357581691601940679263991377576458739312166920407148579983464580639687248675512296213940710861326674179779332919849563397810605574438653003500548330887335642979472006666390527774918923200047484259396736047538796703941099044295181260116839674990397612413756883675945298862151342488651486058445806105831651408464878193658097565523728687192165902513210597973653361495574887027265257937550512194123783936271327346204974845699281379541672197219451129418225724616761672785706248822964048291038971223908894129169967858370084782799617673463165325254489395500754266651599804315017663298908574962637988784246670325614098219985619965673657688799056666927009548418635259490479895051752204861264432265999570081886966311681489785729773608356032028035110121164616221020416832566569759900818346433998445923511339510712070405868771243980379909768676845732917326860860697103078844335956386067554182518496670273644778386466500723451533932903871617396169663862818969398205659786169612591487056836070261063896431738966406126181037289053056103539014097863381692043707662747695251001025504464963528841774013646793177221252009327733112838306019315811047716004327091106221604708215762641577551733932860905497529800249734993137258508174783242215272705835803440091113523913915216641491455564550339351465450470122853393113728831765511992975759381841912267439251063316531849007733725470801484590133491412242215461549249113290306862440598756966420600457868368760995616222089062911157563718876878827431942062612649957897413691341390440472128844820088664802979445117626903691144123843518538418774949953674983758170306354396174519764728705387478559478946087942793003763938215962608884571197862689103435082495317758229754219098489545289632296050541100589290024544190979641200803704921739979413062859917835789539923287986830645855090364293046471689514801596561055267335921020384004701032887705869955107773468675206169007667114201614456398731080301078204431546626200176403208434950954679511340231518509006911143277777704643198335047611011261564504965782933652556202890976010722750728471122590723442331710839946953376124042700165872084211615933161542558627156503357571972290802892025001088307988651684610877298282755938710964314141310653765948362911156898703661975990528361366808054156859331532681935209039400536601767664848305707667459486389453211349204904824894317889654645872697882320056499514280120372562430088992298708680149411105851966695618415911502666292133117698718342177387308113299437325171395182923388265134120627529862148123175495355790968939236604484099457762350084091612987784142162526807115429664306958138085088114377599815754843673413776146338368758301897684264919812104466830570643240199458737432128785868034025643344218594984080764694761972631819471870267177142538981897357080914727754344405987573588152319680706365389245869743377868121746263072892741028948715378773835394190723707030445867360623796458848834253110018209235558245039875238798815550182688227630812572215817965422033911685472202161250142588884917595787780855120442375593636373900961647323616907754643153316562944206214161207716687637048282797938434140777068590127956722782665985090798506242504559380586423094299648213942726638064693502963362929617961626852182854112301189749093840769577494980555907783442198829749090092860310649752413593685455806559591597423207576437895096398974127594487419869682182605748337404342871628290511226213348251778150090947392801611714223818981382168480649045774296038430637095405885791545829898767161301842180778002809670243819885900432232796928368052167765740209970107132584028277762277095973905008244269704266078153106249144198818290584513422312162535331658683483811407199410991340349429156952460818194296788687979045654803378863650388153883326399323016406416977456728499909500609333584628535392222522945119044475584428921877810240335254857047889676376632436423711968738939389713009428309208001955574512744521478554545061253347580523006563798913889016991713191063581910350885552223282687953653134802048305923844326696114168938092107187616905387993021030289342406562493337070902165248607538954159708301302629421249791733913350978130085032550404550745508486586778171697996510336446962059059576869090063180793531936298904580247384380394838989407461384878370714186758553783034826599348770488235485071703513952107819108513014523593915553308862853370926529977575947596020060696983537048902267276951605055362651374319796501115524340171179128383116776390446663905822603971294869154876344534484551998475694620537024745045953177242708941432082181874952658380100574194270276943801160011951841037667817935328658056691267109807335322172251463432653153610600178147122207416428262954241138062946255585768361160363264834011427789396622144565181539222306250207062989465090913055934272055013455816348715580359872801332361841016104421633793828924812698416493916327038265469551919689023343837277853516571947578576007878188098473373685307813814846008211339226557436239391488219985190842611267554371746169302825700165338571170618876048769170084769729222230962925023441808787032996479616297390133635771584621805750345251734907018791501594774475776585750978093136570130238885479196545148237799034462286875000403166106226641345467940372674429614659749135220948658739323629546227512273575813819471511308383906552952300474449630993244308493895708287479710943257919550169196199213292826270502516392286062757573155424993152923660132337488293220768486785924271316380587636709473795491293037186965021386964858355155528791222439777288442066686319863775153921884723797133054603682470862465890618155777614357343569960191029525719870649652176724921973812469912275192305172311884266996416092015069571011561978976661980186249042787122812273454784228852727153466449812433092280975758506832874222925838216157439071080227193146973792729644758754014935925872475102883831099583216273444726136853387749105551738896334344849972970320731340242834567910978588030700082164298829059298819038485760591317242991785983594307501143121173721001483492618610554611383382656212669159712052343192417382372056874969012326535524867339191042839242168797819034623129997209897513161805805398059860120305480260393345249614894196612708949012345629803497810903453932210897100411842888330500956887428971481583153529592545461254040139509079733526961684759062630647266042347855020281849351113674193034181691585479118206618034401046923843034179646340769937048221869190075632446533401813081621490873784865484030884778833683030619528695574393931250278260549587356061060848003369881153269439086411283105612820027702298741490610078221429572468933251049085400777734383946050218753810313013759728860600851413907114124558143790671582465257508256465324627128360245990791678390773194746876221099834914661231688956903902074908786035681629651781653553661670840020266501143457205598293379214521072919980011374968968246404472268924721357817914448233697308292021918223388546159268088529629298998406068853588407921741368331804696524948847581039668263528501453432678595526409066362354781348284587118953878365306114151806244204678552450712997380903723624427323222652511982886965726910235435972211127652106488129420914434961837270617139682331565227147280232474773884909074722697125193441480707383949780494309771632894555852916186353402634900104126215434039804678407778604988702705583841120980468902934665009316841601389260495115901513482953082775210398237322873138361134016071031693665116604937662361795617030572238503581730061553629791007936198112124379095038540335679566304415949401715717108473311536587367863592571790557259540615430067484318506747043782957410775249920876661936239874960422535880004459951046453212626634178919632666354199616340571702219153182856745986884890752425267393648283570220462806984357954951917144866553592054883597640682490056806951290747258881728483434172033602042569667188288066094698128521834026598083078205809890367963069191081381352526535656317358301628311629595663017351542467339720138181734687649820146001655330407650489257494910256421831485877485765416316921792943562066813530867529912746597909618100091794447813193917281525053446376011631722467683839140129108335567711366388100453737918956236452015372136628082078380834353372667465382863839663434149760297699510651307447527348214323185144042299585687864110897920628486643276415454737400085581266395991576757112803796872046737734509111729535640540990456486060801226284267165165974995774451018272291641965209333250539672090755679232122618364237485829857660673913640019014632081524307515705267827981170975552679481701794502422806024471589631638013913021982357079808651304311372636149210347246499780344463368839449770562515184733089378990971387593028455926923243317637015263601584205464745907621147301655699325474174335257674912449091402317237368938276386378000261142479865738493001520081868586581837536482654681123505806964701537519596015799847364534732227192898687338669429695816642477978833898398072322137106294757985875780883581508922706859528612084086634756022505554400642789979601174808772573358106144515158861724804548972454684358755639192654659087475741013581616739540282782059153996749629705047979630382262770081128616220769857488233458600253765764797565519202218251396927128290373078733294668507546329486757271954536091091615177940967500150590029924305045708776568471596628225030394714163474076480869752966338148024554339008387075593075667414580942016591524129188209745723811456277567736018318073869307002853448132071959953372244307346079800516760906149599863421818204554105063555928120312511645081197707959485502448589557509391302120159280088992293916244538277537814919926610957779613825542956087392974256901722690507074717920087838152746549821520221613458799557627341791860414160334658145324067733540560113222949356954407915978572389291306569897161621480182224247220273027347508953408555844515796012493408874511430802180636328665104759153044184733892452828653049376185611764512511987790446993802408580072241500504625083940631229400955767288269993025940032309507588425982087438503972684389682579052830328882511077185390196905521587550025053764531839826598209256279003654703085952661632930247260857372272949219498319183458500822228055764388136034337522233116352588345321557607857037228811018090743904683742179357545097764357204702784687456556764253872081469841095148922378235246368172448603414258635052598105418461927799179060762178118715210258377908614763673180348610469963691474206175849031028436206962495454692261550880768456422201096609988479602400713894911074289211267871966086694638766401750742674772002577360658568372719883573916415555534115328073915296830106769302089252524607381678866101421974002345351317291276365877587463612121103074976414652333165852985630654074462054646028256043623529158264297052758039432170886285045626364474801590751887687643151078920825650992368902162601901116537159657470287646740311779790848178447678413707320060172254085713846019796356837520337593988336754177269427653236960825676091959127257749123678116990077877688989775738281381128472856020796728247619903262123598886421148859199673898838037616826322610850499734288996600082135559675792732956275322474872894369705905287444395005810582197875226261896450416352381031003554315622529779697647098070330884348121375645107900282046769462927382057610913979466251128081090258379803816713454592047378366468510080058539056055968346021785407450833633705719303728640081500821567803398397574556332049898108698286490297022876039178609646903945454026932728674503402276714904344138492316081904736860501599372452681407524794124459941724183615108605214854442900744960962227151454285801969182717015349518437578678804285770462658662738010238881963412693214053973497184708242966571536552650811266515572332040014727305554573729629468586910242806709879914450258418017195720028407483590027303593449318471455044071645826770393914150432148885687340276346545250169633670441523915358004286780697603404708115526348119351913168943321253339811339921321738473859497581548680795946272612063768779823084422630868215525108369991506055300485028024804839358663529982179080792931375490769465259168345058365192787779564982430611125536160098751216076756434124659386836054984175528628533731848417633000358034032261927533654355668136636205756614589565738956593687624671169383681016846391844847737224069008246441094429659924300458239291211036067040525312533765466486077869467113355945264067476423566421082447142670316802865055753224877886818234916612323816234563362434651184967788602128729316713835972382552967009254652205109903524135681083562229282377535817913606508413269895763250143291783010031902186755082023153485912406778020803927648867042259048912532759820480902058613503683421551602852212908687220280588094848795272660875535659061967631101482060353778662990939978823367263683690240228338307074439946117631480657230406793524237618390699442490561145679574240504755584577526396427809636839876740379297594656186651848184982832548585478372890912934952166326151127394956885177533958509247184361793079638388409172311190113059891720474409761303268826442651892247207435808519861030742485384402232728040713330289403142144739324111159526077271237555197702400335075037548087344609196689140056101141253729919158443265321568986430724905116097220808760791759902575734249113209372834496213837605500987807035697570731043100342484615314150382579045867704368342525757085233858901049064677588311023150545319881614711899376012022852635190406006755926618783921029617878559627000494280795363979361994547036367944963724408368362749203472640992281449190542130438040412400552227826355548731811793240696537413958386724575802358753727745612117036168818471206222406467763381285726453816506077338214209714775466939557563276508786216850077437614336635900014534086371368524926741402164384985960821286547725863786762820550417944463459375289101629292124256779554309646854077377902829709888187370785690872343022459613702087126792514874278526254693123551331117540460203922306174699968164774768871726738630420463647995816616640685829539320959818034415035775054670064097665132698627209777424345832405398031413597043609825912347730360163073005236281507290820481953598767263241106388383510415097170928409859173929705206672103586812649074728018980859275810879700185145801683014229866173076525041216913996024680921311266162626027951916065635868736502310875700931315355172460346751770105936020474763474444081557809776586628368211042575608941926654321375258362993266829309716077501185569248733078952905340278082433988518305917470678687705419602530921315674073843055123932045286892260562050196234742011523939215179399844997054405705588408426234332293488606710062757081447734223286412121262174320358297996450117576456126521763311395929049667327388250094869681347805906137539230979719741101246822648847618355768228738149683635116717352015387531904331367623609486935814760888233069736426727911924542950121414641811638204307916633699747695205428947133238621666400041074013848700982201651287688294619408938966496598448854487724417896963354617158486217775171042426284817160377144361785873848479987280267951530556851858328141083818064197554735334748911486322053426964559167734857750327404992144493452591838582493540277498592475918484649001200348517165124919179372779102821078535889011208362200584835714312855501384885460003075883009210850644546219071165851125241880122275085410866439859493934428349134612956646303856688776254780481068209977565292667273068290886562067891667657883642084632918631437592301102564378783838188929537588644508023516923715528601072312099743616707732112944379102038131223901237658329426243251853135970384433708853454600283062204961993721117150092944162676777643874424671788142864637051024857433656079520683086818425391047174872378090199772311640437507316703386791439530286278535939647402713651131641179615656942805785398442153238617973293735991159428745634207461444557408295708921489628077688599745505757022433520911432237721812521385090546018892029153727961205046436278354148518598596735433858173092671352594647926134547703206532936297663376631994506641975074940824400087244567628055797726644288064673403722675850839621269183140810571056950241231095304170539049821976357557636545753930056108782127511667086830600586700505917948320931232910401277846920800030382675457782265921339457278164612880842042559138811657705770739712781704610268171040281189145518010869666479309832802583494223418195473366577375214799928567793765582062631548578536371246053954137908148473428489007025278958890945513041062406300338801388342734993060394058443312108918970551464198874010977161117409878885743112363129300912949124856959603382507907728451844803972777954407227001484097699103668554460394846692911937495820886964243634077045927276152392014343744787180331430336700509960568990515992456634280067712855930307513114172419371052246177211062971413875866279784114582335815062544310033533220636904687348626319559392524858790002759918591049794797813652025315105465113580331006498771577350950965648215041504714965360387636589402520955350748176329351353712952233185570146752361683621931059797460031521442945657162528651090850477653483859402583034822140833297751278784085866780882620388752788475197217880892930447084381155183348635659552206500332011674327854069834499586805839655950627955015718456100120621860595581498092748728149107967812578772798823832322407685009863078499355019937868044895293997276199684152763918903876749413851976011093424073311205291597165634669369001726194285517466146287631395359844427683881312519567066730044509849396033602984599016818273617050097432868137628960787743529271128720205969568273250732144816872905716538055457434768973238172278109941017460281325493781313606163677289695682865206278786227145686225323262071466930702973831064536224232333819505967881123828284217710189556168996655599809054849481171618846191503113744439206726222324601708572873926813331831172331143020996113539151713376300218926804058074252646201363200872532149507537773992027883604040578982444123470722156291684210276001540274187185252075456102482391819996337765425779169344201004162021414148395222830348929491669495712060274978642278781438155267121448625158098724447392554662473728296054470606432471134022584118681785439000692508279092706583035399640478990780175413774582323153030582975424660364690172494717828909181839029311998271953542520251963755935402216871679775025509697826205282971921862351962323426419551520537182140129762449119608411309101247247285745538360150812223619430176900428340233284972010640756392593899453364293400754697562340851726826580490829997553720955701118625895823582596069050568309490498469215565459528208958731319813021140415013654136946633130035339944152741148968604265295657158712879335883645896935623718187596355175096499280895612147146777260314561279269403968579944899691045231753807077531174766406393247329017790393368083110083093413783363756619322198340423146240688847492744886187567611075661134198499907085909395813434042967238979653622629233355060289240942620134555699333195474633499873179652043930788748221434031782760978265101974073256070632541597479075380541584601873940935759445776350609009985615711156510289819553602022961602632445301753922216731253733611548531945918562707474299271866946427086295000820234592752404431133741273169015882894791234169755781758552010551421797624432968340413190783488855246917255568099066662488026434958619079460141035671143569170592484983978857083118233267487059281214627996414674125121546245415672489137926164024639386934367498704968638021815643194471614410240890882340398757797971547907248366265968704378911070310373747146515322634344875000578120243555435074789791793786770904006455808389565527751857381389336342521752889567425010919257330910893327185907121000635459237937405035911121361225608916032754490291941454263971348764662632204287184831040984692785535428324623221881389832262490884783234911277852669693017525529138405937472704620411629651932620274637323844572366371391463616619634272356326284233968598849570676104500173242543402272319791842198017008900597741916363862265576445702985619103923751178035807724692820082824010663126424830529060343743895026749845576305185808258241092196408154012557726348250635338830545757405228589269493106589013120302862702957473653867306819755056421076753012291321509794417811059507477713704536203886767013716012550135673379092813098325299380002397505916311229381614380347701687717542469195533666419547273624330383420939584138042975596645907863862730195066165089684413123312249424641968176397225514912941966653732876377564759574493095438876244127994803403873106250676676114122033041147950505096085525801739687711486626097974384317664418374502182081799854042404502534189269435853884379050958464595652090126705971637443496446897303553003824871608367606977399559925781015515573493479850872692005262072813515693338469757348983516877634298084345945935907810585507502560513976719784986882992581666036519826356364849090905902416362337014756553334558127440863268676346153818726267371794041193288749125822187034676424326194731453536588938305192376190937404215521489414389956183154546868277212303501714600650818606485274033160773439340591188701591616707181628715514240687947550999741523822061630588820990245986385510685296886006851927806391055129209643330125516082451241631520340253027319142876966290002419693645606403748405536507843586585495757344940393577044085993631658645281852633812730931934639022693894449342569823794052629728843289671464612359540667344317463975333253267746520665068076418189116623273193112724175505614230596993889616879032626270771377504884853441578836984633845431044396474844219640296055358195064406834920660436006673892199410989348174626134702201860322497691457787552950581616940903245433568192019206374773011277004491772451531640665695125238413779859971450760633627937301179402725315444792536608830918157709416196736156999989321007695287761281154852854796539997468362794817440384512025775743226390818589785383904004518399006285586020398325957915576438936545633189181704161026229494471236664030519661033307677316442416385527847102163773558720500292218285918104861585778887565661025750894260485683035040647167106214039416237771559469662542674757671196150249601516621832261539659909016119688278199686751038701075342137464931472258410594188612784091815758209023298324453192400365818041605329991626209713046523845697051283062190282673160532478522741609838368306191784011744647388388037615629731024381734251450057037671282279019247562018098422239511508532978263385054598426109330519857361699303751297304122558529689109871977312158716585632918366797058266084181657938481278271188405491575285666592331711355188234096199737715968241860833940106551380152273115551126664162626829793366705198198707462662355594938569114002193554244208784241959689097099287196893975115769418407003783215800893069508057035083575249613456575694711273718658068820136222174273097231590569061726286985957657210402493184526579535889627972352166677906538983661778181698190037236947465593090191438706408081487157497088498552901935842509979363777122904242111582687150312907951417395806650062752567076911053310116978184346604448124621620889057148133006133130203023339467774006386604456909424547918269895982754090441433676815450061368703516988219150994730967896429126540653445860301710379176543593509275264841055988989727441780358571889148966886935911059753709571931747176236648836146106131234386144868330380529031706318349542543033294186655328779924760135517528560624828387244085536392643397671296044247575924600017096384763783127795402284888738008866469937460495982035519450571978411973357348097255015992524017703179732214039427216088824594174101675279497653005256869642979061827981583575176076191014195257949698171753266594607527157541955917472815443476772870421299868093497519829242134719247956028061699113649699930627950501697019852270489034345613446193903534847950336656615658124090142151708492203250719385836597762556723022289607119988194196641077556365590862720400784279567211464796000447859830680569406162794903714383731538026386305830876358455671741147051766986800061565709621122448696430577903151838870781086465538762090403171063323511948344731904716090349611704900526249826547687312140470792317684628727418640579386725164866231439655525804427020099295361144048049534721715285721342744739283000342333196857389894714164401116533762753176210616466186315342021191112202246972967211516291922565027855433628017040770052320998076198997817271432854289985833827450700770040512960319135639615793200467724179847913592748380253402927917287169687784009271599506386246247073723386350540875414056732935854493166810715397903794757911432298122397045329238886270767258004017747083444345282155840936673690760111183619157542882467063908398556466487008796611392935788806403987943455136366922799559655666923655500369532898284791675860623321067043508565164259110095865355789758211566154739358482316884331627235308975553741048198491896182892527099835206122201391604226352664313391384615767234116374180572296270788614049112219731354282248202676307100209242038252783932567101045536531336784908010648595652334269580637063281109930456644315009266205389404450779578178079795753188225957119807090199495278103694772609591193527442414066053356330603707891513956268581865318476006209327311426403328684748366346088502668781098554990189519797650512803173349505514568017496614017957020015804935301127720204490407471689499380866498138437576462424330027901442317933528628798126362052657857410363880250361293830883022055779034826511611300452487991080785187915298395240797094607614533499704138875159561377892088350478294371196451758027800974951149233429366208730029846350964461532032917039656288062685111006940717174432456430061616820553855420249397400918036459620148419996489734792839548030370700593202921879573215664587613182674876414161507982346566815926786725641909926740261516121366944216079683081516843530084451467851985701335432316157184597452673965307410470799767629232209732987987715186614489039162535588628423863721395871212900867871040728602381911991588081841034444142976212511804447215761616695209826724077693150405010433352870445966821673009684770603000599574531529009674478460861914967805704850927166484914871449853451309589090475877695807026953508941605229523132240216502786837773106629132157176806987631569168838523550301235805017189805604019508591434622562038178505590944922360674070745408473934710936147428336769916035899214963053643004010314708246855448893149794267479247097229541234087314701332827401997998316660808437349659270531776658990724495769619577193985530271518233254384253809501562742656460134780286947519751634469882393011286944855936115237612355691081580582466635991319157412696661990777435681672937202745515825764588515138416002194149430067976123218574920083022145950553586340923945752185063962149782431067856767225938598303378785364942621508653349454178698095470582790399407573082939465681496620933835459504438272388513242052911997046351493675068139997931817382497424678126112845426694676379856719042140930910684877847907821120662642199283590505689620029690273582413646418726967412462255053805014593904894858847187931351010596192334113726609592833121242622561209792460389896566924771873071402752509266753721009465809558404704485723126427490779792744656995272636610382308668958156540979881440613995657516341333002009192253394116978970409871751817863956253400089717810689549877680949352469737363259983936891344609003890241192586696244987573645217312764348826442703841332328532971395447016499041268539192823535108979984331921909053698509625739365108528620590415250278284588966515128544716286180489816398346595708744126451040570944675702664637787244342919478380265626031882957847749858764906522223976264331435127187350783091598617238725066887155587943645118550206242575590908612443475123632601222305857992096205540316296617247271697165214730468420739501938553172351019573970261794879529221812812044093875582553859391631715219511587871844139001421037971363015104209950750186804034401830554932660298412108129746624789892229362755427839399415998631175188260997737313642910469015417062714834649311138500155385175689252175076823194240290662649705738679474023419040308048324438592085550535587287422152701505429200242182379538160105558902680683956865422214896591120762156101717706711053073585585326727812250543613709114972904791854151240700758241202960600115456570735250092226630602293652138087488037461216318651934457981650651711438718403986866893320349393762724406888862744645616086275397299690194713607244453441504981845814700636986641030895551642998661458300720809901631443139303657904782426711196875573996481771035960750940829433150732688021434438641643872841791296920642739614940389456734237891424519293814137123697034394516906762824105507083309865331940027181760802145566869309393048273480511966929338500111778471783035060538887607329834515911224967732984123504600530215435652063431674119130486209935227406924824224688680672222977948940480533078766954473628479658974191463512756014539806336827262439902191070053157973517991464700388425814855797894842086171554988474444352681487643187364092602281204346043044620886939910295014497199459903258611027795137386032779639786581036018483475441136193568617846758515198764416447185964191532095601410212250420169241865069845869675369699771587438809194245304727885646959749966310506127914142782908350171099400255561187505123320183932855028548584024784485366081397653980156090083897213591800246797352357793295264172916918411144782802131159454244910605496128668564270681673490701978080642350329991531108810686531767550518599964943021901464025239526867248657345992459296725078471716178850882127842466361948210193391893333270670437574523762746351420793171306518327991535383610406184884198310741329587061367837115079701411696100633082988855711298645300460519656726026848551704113398064490778123882711359103737101270964921758242306993565035137522738648686118849746039924199566892680828114457884399629892400773235921004299873837007605377537112866553530861528661970390944104297188844249428131352807825445779298073867350062037937331659134119631282356730908868997896052728751666246311576112279537177417766256686174967493837079074107032905075091307802234978405587260964705989521307899722026857966323769128657823869546724141698039934610836807288235209700524617830089648478338794268506812022255747305968356541564855922408533561660309099886916611707120794997476751460524988731958045634941247332434349803080752976692984270981867769819795416807461419310002892853845139153283177907173397831855195060387296813944529522331500843815094125092681684302283161728434148014145617870822775696903623160874331571880586778575725260922187191375250476413921784503408873077978053287432405688601095144830847481981734898583132038477791829764366500337178825371612585064733826541092713839876148814508238944723209290762880516698670722867724701662508023712494163967539232952046267345289894177587309039475894881514331291774305439722676866311563305710222277842954863890224775168945836643093121316409774680590692414287810950387755695259903937872160385473889429352288650258443029658339102654383205410450849525907959864218489199257090433536330038018541522787512558619036842288800295344771361922189940410291501214416418724602573113601197199471414327064066922996214129696329598150435622523103383585933658900116085968032769364056824269716308698674936346612096426593650356381659873433891831390422962695454369654788656151933096553340303193783460233770137551458038367454357767852319191675270158577544595766931035612202100287876433238107187892012007782002060725585401858585318367950896594432256767858889326680731877069199312050068857501361679636390330694628922237354557479637543693484575747035529517993629179374342560884836953429801640955181138537099732523134451776858921656469536363424962852505109851221316167618305347985665559946659225600308521622155320890644705008726826980900084758393405982810331681582741134553332780244452315587673122204440415022124523553015558065006553488512704296263393832434758926571922545881186586745089367598945338787967547499462927724150832559560310515707250944003530631889907307704546070634169694000423983042680383621078436103741031954577826371555225698384426032350736096028752982329139781563316150831220604949519166937557219654428276881631635421562192391229792680369720343179142713590458105195443407433990962797130133635068064881308633756105397972673804037009443160254871970685253058297393715872645721114848380032256787288260567031723496212149158987325016194670817342532829301624707235595200537505347634229983475775167610681218893386622687693753944971110678827734791099523981383186777485647961836249791114104720261529690855947697021328973753342187420382255128577871608036734748619518286738240273644131609342839943521256205290976482904796965977233393647914373213249796985858539380705450982036476508167041491067853822824167594723335719426662215498898038327291729015887314263281814766488105216055127236909330636119379515066034430139761928576190750435525149602955821687833495517802264434792184018147257344748799366781863082497411191426835723588553119854300937593600882793222075137420988357989442991911544604072250987811880867225480963581605542226133235061170805236208770679002131832485463267499029638093203747850343257553300505009963360492971562781959099925295687280239409845167313092125987624024979168487658493974426655405310411011969822397142880989189704221950693486345024866064523143393213112195473680699684383908502501271926582314393326082939667215676216045323551488851775184907945610759179625614844472786385728986201382084105143307582060292125316991281001300109313262036114341836097458060371356757798381296202338723410935650933811081949318179300390938396784850235264712966968236159702488023469633199764662405541030025481272530300353538318195858601666615824855662958238717234452959442338192192805579885862309613879198728694465432480919672439188024300612067952641919421462514775421728169885740276742527333722938079925326891664225758693529116484042103310066338800651748511990379227496486103411055669637571393754672313187029082008397260297906206729609452704973982958565594335009212794842361417370610925991238543451218397781868270911839255770277879812384850198111620556657268448518192230278769047459612014150819634445612427662772059177606688963212004267380199633463468445203853871334775272750556503605408322287258618727878289174133919660921680715295854451528720815971662741524520457657111077275755652280658172821791795244759020578090031601995444946433564070238319264527209717066530909059212350027033418998185856004092775116855627858842591897465026788564551562997656786772928433941418333296698077357636209719221879725192348344792687147612616508079437826801862454349434262489923615132849048244120425153346777203369211062418338630197591512956043252918208007890841005657609331351835950737683466625955832267658211494450529928092786395917806826880550857500748013888798330715266102342517361510907668992837549571669541932687567197870242971098380815631627776117388916197465304260714761008607669766547605042994018222471473834337067716728434302127577168493970488175879161570759742271287915302207066174329661326827833513921783716722432480039602277700955865903767012279358134546453428408035537761348653227769086389054547686214683146658681885024536090669855667520593831165875291791640211211353866172968840690028660988553463599902518914568429366035188242108792281305970718874934395520008701435805998547719163645352882031802969489238228943228416877961873588851215297806235711229021510269286866417888934116898304766561423907264439697815183967392575604639860634437931630328306193907518387586798103227426086760585635598817729559967995073963681979407710790729426704968117662816396914491839159300834968446302312993866808826045362732873023133439811124541887804244113774513277519677352849705937811517050857229924860054322661889133476192556129828482853962555892984431066576615357192183659972132860701888423356178719780079286189684699909715375520796566002292621324281691284591037672965781701604287352424625242894333933360417465381580034137726512229621004403549154656256127863899491085353007137322377957392706888246611647325261174253110575772455622481723561513643832919159666818003911690344692329098116369264950925597102733835159822509050280032716296094602482248414365424815110917946696486737666188732346507189911343696797032010480334032231315026837365603985892162737586200855152732980451573089596352036157093652688763497282237195914481297409650525836663288622823832101391267933712671614342952253558616316973800586705329198587729140784716571461167650177044587953583687106226004768042682385808482260477495017519004044684492451225925032062936208981534290259471311255170625367586816526475354940541041761366075755548645195480874388646783906053676563328126522844251308190759163965933776876672223666473083778946535775218062613912030486107916480386378453957272832406935139160474247500237793174445267479287732603162058769312834305251042316776161010016880738885588979652298802510396082473521548282082737556923611828244302930427424052533413139393125157168765670668047021132182328716796331346282897865703549377646256569794845201473469536316313132287032446566977751981811781929985716326339150486734513968141789249445365128867889720597156664453214832292445837143212449916170871687583319896529893447485376056501138891699030862659240827789144882501007038290646793236693399985986147714085632192443684373212695861595668546816247962208432474739341882014215604054235076602697813950195332572086011818802331618791783405818576174575599466065036391965576015596477666073407055713908794061906827581822628111224357005598293784403908484631747696928080846272282710411975659872257346862769481124894704041571145291056966237958386673396784546609241613088408722100310960068377427376378033896879995622767299456402839817565192266687429088768491874390105452930619960557752127754119528648760004909934875623850584954312602362902055303302892704732397690644236165585207124103903891095211931885413532048036567516319086993167591819055660138241882759267323054543739371632804165554407275367416561196527870150106829923459368345816155103881045682033219299916247284498230470132363793684338614725310494833416565400164140347570240513551574000210785438739129004300299457233533145852880151148291166921198229293334415819201402481014773819475900448460212562687946686031376740249376279487156624623686235715552088651806397890743855901903377210495564697187983917233150175620953161622181955428573697370413137463973241264204963371032375069322771353392842430241892869041832078568659040179819409127589363721181833737569052645492622325401249291817047138205808323653536593732601446165479063804586930298803951671703399208472764562276300562505250674970587039119642369479152324837654771423223239587238130755841379357726141239065944555046752217232056258288377734419549146261849863000109571799539737685212567955327829257416863664402164333362548375307019777759954549566244338092698583390531095533785849754060984180481751971089947363818109969525017432439806619096148404624554478238467199271550495168636660835930361020877487445441772463938123561111469497621497432675771394284903675740221912178599485671616551417149316826083674008586664035668196166573119192257536185763162853752460122997659526872196066696134020141120638066287794214198424097747438576751696950939788043980256059273475598419610981286331236825432306031951507643439469835933637914924112110978814556476807552964194655472055080159626087455105666515064023958354491145036419058015780648660106699185754871509008861620351225427875236832855554733952310348203717295970086731252001934315795882773236578362975097332940089826548019920094997273093295705366404247015508575239088816169638545145099944319761193491724892107761057204858583894529317338940690132120194388889464923928307203047022716499428483109317716622425582933643986325469029740549403432391274619053589157894924209301942903356325381050788541640957871901208420354520543608430794158909498005167248499812463397380522324944749148594351430473644426596822929344752513954646078255097224765598291353693650750168959108375654440424035799124513472302154925147736756449915333805218194693131508364718122947957653349381236617192061526298890820869152795352009291537648188875160671162086368733308282623490699933078300441196291532952976028727511952116854272024939896233390514775730919804230503701844667400121355099453248479879810765483380774335909473706063763825421282410772316986628159132947513428128924638931075374353480736843310370643122810513434108400974796379062705197937326285536199106160415533509683852623942785987681552147224025372824048554240692681561169278835473646324037947208030815169160384472280872857590728529783060742274165674620933372878681608326791592935503907904371016413901525770613853678545274317618639707370203047989915606923677176694972911582168164387485390568226565536711058516187841089632523724211433652531224512951489529390188674295488248824159958339040320211053883592052706358283763957898731945875310174252530564853911912149320520491156046277999889299241839877333101202687397350333728302343170787242632905394360637282893642584514851889759620409320700482511071084089471959236372685493815623781469963885903009216406100138229665937453849555921386620743939125517503510546695965892253689930453031518707977587198864417529883728726288491928310973408831671674308563195349618218390159747340772208962926094874570096716522168391327697566812335198574376808906663358460834905468242868873317217755367705627534043840948188725342069911153175227421212119683191230638527434182039062684610842716004423314240253473196345071990743567485930131887377493466675250063877210252768270613773035907831992041382413861096825425933309675948279950313206114126859775685513727410331303631337142715612823309389961313784621208402229558921522459664384604360387343954488300931391192133356079878743869332988984041411922312399731028349777904618001116186988935733925437434336351987002597687362210396946256654654023148650431669488069414752059449807201105822846929838690021571305226816487411668786838954582390036482542928718609871586180388205334849002706005175732842036196370467773907616296617870747303330907922014072490631398038692384123891210198499411009273652393512003532720331494454723284302378736224254083983233715978618607738445143773823257868163736964894747375924691026004731476497932817196484946580068069037581070292720746315709287460728936993964061937483108490977952379304793829253435224112300168460899322501377830135235785785018380477134611733600033415416384323020988426342577845335351188835221423219372241915753048320757925175713336134070249742000408982065657412151351279573188534102112866408055172560877517781614053811710860691113890472826542731722507344522263980532940999721544407627757966327139398466760437588077690167667563259049408964487012619003962031510186458607941179845080272247196664775739183848230993854682836060448588666268400797155797999560159149066574768038791586409956472540763658317716687130874834911397797492989438251013725678220629023090569123224919998240402158712807682659467646796667049536006096518977321211981871091471508717957832244833842270166792534673493579191415163063987981257074414023498053009099260324947380097026883545297325946802949883489843585957359337743463506168218727943045416994638811619221490298112013846439455288817769496830508360076731869112239944168106013104846089009852877093970566368485339602748794548352332393994912662850406733621641651014981967432853486451796632225831848805200745651536810108013298008538024160590673212882352279389730932614490408054456314749219477312023420695042448175623738710265153165795021966033629341298635666592569658453083594681667772327983696889756270365113617659700354152476224294976629736507970023577078382172565629205165151078321964852334604246127817033018610337678067210217670276211529301868468057801235775542815795799248356277821787289280544442273703830501632401061514284596458321481265685346664028896575310690414131412812472794183840752739346350576029057504933328972720055057095092011137090030380250668745794040769867650419342727711367247208952961784732582223867182377701357054055521156057911984703234733651513185593581218305275228789762962290981867256227958580396427563894049119639005620930288897512254091250625996223081426678088454629837255639707445576189510634005837070413894764987763535146076833996983975641904394462010953476232903638143723961999652477125101722938264997108172729550176731381340848549171049315159168744187227914762743911068495678319258170042077322317170666351687098937909539041731261708773107765757267758893775231002687280194175092647439701915545760172440094521782495195609598289736186694285314223938240034248872537940737051834328319175838001717001474057629105525037344234995887027166406322462770328999504276869454611078055295970364211772148465504182615282323951625395431183665043404307588688861227776984084001741223193339460054435404680514786749404054666434917532693340383893786668130106407199400086681332506282198081195736689578126484837669191400776785383900739605978361625583730785867490238822300604038755485263214140532914891421545118990738536726453110668511015542214313369183121440289460620305605246151880697214786161984505064032809907404253076915927932265562272909775549825155777781025759478716604820382935482487527379705005989577645995300371802482815550659105155289777904980460229092539863424427407658142373423994085604783173592560594687007881224415565964470095369930903559870399072051838669906770503757890692558216505970495292689285578755107600899910107465535223091120667213058453660512244629249799513387859422390428935849595720295651260642803274946455999407343495054265430660663877813101401838913309000569340047798795196628177574106214645565824002014702975376368204462694312133933532733796420417744101048660009034259484474315130103356063213805801612386925146139698158475465672715633483067608513980436512777903251646107601000211257136393904871927186745272965307297370382985562464704037045630968136733810456968871254725689152299444129418120193186357773313628526934862386247859542337128243777377918609703131395894713479827401501656904076509228720409707060799069158135527398161750526838037092390283481541289965355395295579256422506105442535825808755258944190900170253235247892458090260608265772078410086607583400309596353226930574210116631246370481075470338422322937649899145018583626258603169007776538834301583279910569746535960560739166500880871021510440517631086732191558235902602228759757621572935571431587898243091301815619360870465611731218830426626983054701896550925524543988047589162880188277823657535818463447523457471433438987771126498023801266858300278557977825406804790050696304603476001989049267675063929333451173941163954160729427755458259890794744402072451276470399059637286343158601476957360507852365598469504384014260913576947762512128324749056035174957317144508016611000412431985168595478976853897389712791241023938874216393660811625225564154129971930352267581441882325767027405452903208075904964375630063250918782172902512730948743720662110369765281963351706421579370993004187814226926366028153611352573545135262336120763692947309333376162468533284466263709384038940290976961980893783842915355652152775577529366269711497690687001453497323314258377526555717884098216892964658639540084621093668315926524885955870287495550590021681594613178520940815413282959548855849155332172635091669430758674453417321220990278205548106551683164356115506965379686548202301559445208802848583644981357454715439768742228243514683571618804111050204694939029769263222764687819053897251430772947636763427651547778058442778329774420733430141105664747319503841450149940924558192439066825616583074646428216403946883811178842303082080254071704504583115973680326457857811275833472324926728666078943381722200815135687645198036739212311190411358877796436583651635128484047194846020235215146588938714778837735354450829418308807662813828508608246820677657181105057409790606641767006323082351109059726074821043662479786175534282694396348240259288687631762309549529210956912010152735379747662371162869832151135510093838328375759882150707699344306355568576414596427716772932963571709045215663104681506860622288346760593524636118211733031579328706006174055529625952540243186474732122401250203760867923490069332051700027128373947783024464466851449752593520752493996542876925827415598633689451215316560037733650248143953773936516210354791578938644445733518715480034895434529777848203118813333548009413534150104088489135433387989785973931232984880648534549459326386418412146291770303004499372090143392817161282161181075876694518513088970347001345916623236553003951318074871466110706649425397797065372153207373735015858450371267381791370751346491509347375969146348042991222248751498920789181277331458835688847095446867718540108776729332438735800625198137542563394011504436117647833271702420649622843076633836883107205536296229651478385354997784555475906398022666734853447074661806955747328226677867487052736587330103173966539359082388527219827828004033400394977867322978135931205439684746328925486650653772184785403479658103290408924722038850901957866819438547410159975275792518028007033340786373416856727879341516830088073591664198253348479752310827200101813075031790192552574602953237224421957108912181033844466656919208874601678787047076892226532279058008253540650090629961917156097335901902308926203749693354704280550793978732038496186545343966881934895278357588889264268042295792590998462228782720404511011256534797690736082648436683032514484442076076788251795436027879759236065922658105419816768387868471249873695612378983776026254891135019960873693359914339949242189770578011274888071561946610290075513895668303071668889623680942422610100407075313885938583515867845939899622434732346709503274629879579669952448307500356732887421992426260893586075788143141012659323060884622050817501105504035425291468912875698001168484046537279710463227032234506651882446319423390747481741924309973893998937937376588785755835134353481853903013595560926133019926503057074808110311889713464311526888807955881154338446995765797326666782915010664257067266279731187515363956147443968406426584517226054425001332826765538490001855525191018549561778752726127934807066475717448556717298591508517123707525425816923969522718969820530352859120561053492585905451398769492236905153554183409804919402999974096159341069998594218397526088359448473639613081613835814090162901347899906112618980573344204556986860757785774147294069931501162672433844446721342620813232498968522383596154250879084353814475630426058377751399899037973708500351545043884891154924377310138162176486785395142519172598632403276958905130203969626117396796259356155168462454689662954859721466149158960353057936040958654646388234849658882245205612185015371410548664059657354027211270818896360487236239072498677937126374998452911495713687248785535739097301343387403644520580369735689364815505635289573227324439234026198816861733858651837078245187151726015133172809979322533305971569340843430157733796914968232628615715637102125556478484224204717202031784298040842972009484269368942076488487111076884696532767877785659308731429290321531401237134336985787158087005810007693808675063418213108533908934969654575908862874538659225555488066893904957794124273433409910089419207258981813933124045622703450840399363439706688607046625565199301472170741143456155306413348726467289697816661011821338620243770170428914899250195876746226364947222904128650033858952349512198553037799618498376830420824994358588982713326323758767808226882994499784783105540451253818940952644067114158930312430386366485690359766507943954190370276852894516662862367900409977310567973903225148292122683332283023535228955281351740204516522206367734045212490140917884070965579198812681683799892323585763849756212939655615184694089101886757688136393298561017276353590813732578053831593773849530708983093843787482870343217635575684672643223685495561931253706546587808545149535859235490053766908772277520951202464500665809138619477231956633518998280867718739604222901159096508356427085881383960023536196414208696664918176979094568800835674487834692035074243871281506027856468316736978423199205080710841251674558509231818859443606467628624980405333822623050700384870252999021306891418848724877609427241369873332457444172754785544704443607597009311372713393102975174414730010975593898644243621339620222664027190912802259829482649318126472906917268928472535108574827676462827536035888948704018583966721337077745533984624031200139324066242520728541924653115070934043216355947598024687628439871074293536656651799958693433155808577669028101840460869084258623851480413421131565537908552008082595504735032862833047215540559991520635738642686816813101866154960742068873565218945953350777792741908092051487351471271637041840293312835806975967899050729190470653718656881177918844114238209473977411722866187359977933753811111762758308819231207289659768400210471200620510840169168231368062400669005699865140980352144216370231879262270575158805322149794702427242394303813806852850997074193495778239365426099608489590800576941913144205862789991082318060170659362219423572125562502618637841791312397684795220923078139103653046744611449002683531178975184262127283000209221028952303921239235605120003056804155637174658659178153914346812987189899063259472970583890720307476889755519140443691917492940880242135748061301215497474334677303050942494852951785868744649082684326579897075369543791558211683542390554042826770679985481330071148624934775958466887291921134799707390740983303640933566862661692061510556434171784730004390879663520640948479303551948018044774706694548019864808471266014731894176807485647391106601030577045451549302015083980827535840402127231545536833951069751634327230809049312281043888257158012646533595661713305699535252217183481105891626535467422613787989670252502300490901775098335580655463487643527479359307522674459513302120353482900939221858110984208934842608753456538830923621388892513611562913911500438122585357799727346808124724060471102941663307476298310489789313950775008335000930343414874917460939671630998805700508546286512056020018735343214843226719272565843954184950513120151119717903854592938768469667128696201328470839563595519920299910699800240444994239384878042255759543706740252958545887508574254795593721786140337935916602789244353454189476668312254647047615169399763723121336229390412448601869957049777375099547910429806416057230019094183620797891914981959327750406750292678800234198984564979305299082528254802179116205974900120511250844098696479326215421775457966926892648425759818019244865457004692147086570557271424094394058848478627600646475682465918758151491247123350494222263024829882788497653635780558029107893207175797551884505832933887014509765541925916055061585204349750969245539246292506403424454678667066615891989839558559037575680481688928898439396497593213403030360251461908116229032815990845219564593508186707558573891520505511577962230141276714844669510650184301115868592130254545101307048448275928805798166016929326607072876764810460521309093801094929339258718018818862642482761010467565435007400417482105242693187871801912545716452540182704304044386723609603292244084838967002727686855590953557876912719499909105220169950553082745358811608991839143632511450868782848448391848552660637769624373055001551890939048843478150985145432049999728844113808199713480373571088784757494028654015602502383294437120243011104312060700534408317840897574026844808412552147614952147618182639246642599040931832189882644758386115519429735850592696939403071642506838406756921168690195079425887723744865987598525215908130882499058839723606840485375329144624752107786027857783811351615463852455821964213954566339082712513914270805176232828517945131024141614664397726676648836505937559197579622038566170392604798747693310524004485791973961491646026130480294107231767815575424309211367678371634470516282336845369738042835933194076807782798451004898237886817646116012172885147881058133104357432355413441989089851517666573151339984686789837876638666928358220118149000573963180446652107494803931506692460380705255744242206494077834344864952736216357807078487970188075328960030968986548573931667683432728478829578395605489847104451782653073476427447860567267465780356639456292446255799007736914680796540444189985027913500234538380292827092344774915714252011393647236064150346329575859667368694291732763074183592699928165006874621111793661611386613368873166142475083799167327287000671406600444913607172742002271326104123495438286484955830801712351408583015617609333585209070734234086203740567500415681397451799627528056136657687556401117920776185790855052327874775441420308790158337602819557804522983370102050059161585467803726616977858154602528704549456991053172464260928036819098192264894948424534054079828552622263800972665194726863532689275488776621208002639543467692515068648216231265983288488141797850860253092868699469269033875599137774766629316783580315018567280784269772386276958507241594033313032116750253424422193488379042401408259950004777598567640337803488576226273850988104540866464786111526968099656897402773499322570077674432182822172106427740919503953789922525700332424923344541775698212325683535732061273251401979850779110090079981369931109291068292307727717414148386762680616702686953678004648841418927853234963296490015064556875796363675982954517084534825616560115560045145900683998259845134860579318782305959093314456505310071671039539084601805213067846003189861764636445620687313722004809950972440581542468971953283359301661773842046572090673300270241007618513757205932711393748978823108498703423464897658466371216649326739800011827462936455761239385065072831019711768872740313899270101155173784223374385162319414560009022892988571327303559204825779054317184687225600088395015360852827356658354633612108585136865743561957573974043733145528397265265243276553816582547437736231538995407008958174245828201777785798188574133327376435977523474275554703306149483536662765158538653709444135369613630971376611305095224429512496319462957238399138233057965282997045374318927714315787077385293473770885897155912499942776710813088980081181299515781683214520552886120913396423155621527732734229435466506275798869713317547673960994410052073655756448823965002834480240230655962875967228730630777458779627927988480750062644196514098986885261687374979320783887155114786030588989730834316743942634456192323118580246474062625766037701455135096291184155704072087959225930850981404863089080296304824220711663975706013799069691667766728846276087944430989302590149951199168257841753407245373335295134966316847844426334522746530302678724403148113591603259450026839790629845559663556494223026445647665588021652079151572653135150034690490796614764065212511376961408662119642684646184275938796069325869031874180890103776184366686362358421661400181764604222071541957740844462982796036544923275772478451986029393783098688606517917697951713764334865110080068966643874566735486671340359853934558104826475084720923044677656425319011457049202955728200574592373384004616411009872291499997661759407475720024995583284529318807929245388216374284811058426017778735074033687488737433953759449500869515863042984074818975132989275327559848474500338090173179532162582467173342208550232726341012471057999569848163782783757667517753686632928045223949486997153923417372757107793600933941333814722852165359117094125211191894161079142172224806557494941588841414426768995896943805040547071398663772386230692250172571464527976470503610823654626294589064479866763667239198128623476574929656993491235333740983735951357814510714092084906367394586442476902043393672978087841297988340034889103940163874534835550682563499648856485626788833491438418689419042143979991212964754747363978939799542912708564824917350130679143247499789514223793541993826551323701879735824365718337917394249435248039229848189847797359637781972823069239729617441809140010742956310146277854020302297904346977941960393108831211837186281352404226198344056118844171763505674969582938101627415940315715289061450983659881556406242301030322408475426322803417104264117897947484322480094725081078843035901500273910404555928858486812590597957723349045867419202368197796862869335821508995397581087850193886377427279722621508760117422113059349601057669693799668368345760181702856232433247109385120586777095644520578605993870034038522782458825634396611607414744642237267504471588735186391157886409630109070651866584407807562012511171893576221912542266987087526045764150504196690717771540273621763604585946478607958011939352085699795759238143039256972252940157743388261455104626015687260979542484424788030134910835163540850969305681521061198609343688139321516718091267900550134708373167536793491209486818204911932793654654402637072896229033319166035725715216276691691251348250402368165712989275767819075716470726908882577087306266597323655901047137522817698573837890502850064937152213476829742213811654741701852345214483499979025967147444282073405486423438990580620345626658581055964990383488312922213495635200621646414442583927011486149493985845469830282533744379575147429920475408058310756860970141746405278851047794090688074044066290740421164158512412832401387596112229936297742062672949858052329779063965271967727961920648313210112521407793039824446934345432118251822295250009493906526619616691371940336294550229969371127795682433393630546055738163068570443040329690026211834687026438506084655864814847548013602013156367236504179603827096485933923547620626438380937788480874578987622637260668536735073441133575126119113709747747456622962464390442914281534859009642002890283239175936937358349226235158506006329663486164844464018655608682293594257745594908259622511995332317648880887103614684758587154721957798730951272056502372907543068166814562085029879782607319332951465485607799385147919538376487150681126612329437642936070888523405298803323692825085863130114567895801833504993178068772858482893041178968129985340948679878631330526857492723968421278463762289095087940331392613695887710512475981023923702461253455583179796851924385689057892759627299986970731785708607453989403369909519483870806495859172432638651675015819395622265225499312977736475338266522889849704129124371321533947562333006992581125482523350190297655793057204367586491512672810098489142090123761247168046692640232972530738111830855643536537350746441418933000140724131616495466497086842118796681836747879578948271372897496723447574174327224409084426313443904700041110366828150038493460325070049493491640462471706119677529296505020349844445470632136254612887148319873144878224530267018038487958005024737794629740697488161220122738149387501373846639494107677648779867888874918888332927984993081598720817851762840930029466698585026494737294577958779214282854605420292216312113856054341965182673391689751864723662558364598173341631308321626119541828938085622331432494911024207929520150455224219721881765149334828701116381540530757346341266630065339102084166316586835859105008546893871360114478626236155391012417544323301636549825772047654962545092415073895189358613863065168756794884522814956475316379273605213800013616803643621942371620248833779742716587728113661930437003958293802762896958504312757285927574933645418698862962649005924871057221891824925257057338957016688739536335989983852168137301719589224625629288488319067010032819849537399001513615879147163189144836913278739001016151021033563301862946102929014423832325809417905020056623693958844277182508861894947621430048336822017256963801539807742920782675293185441021329671733410676741056502444395565998482209856127333165819477888983243800681729753806046326136087306478814705010730868633513993691962011095384706326318688252839302986470851569078755099771050714863511607140180681575783504242161698694454461690734204460257465900986482652444200321307490386200175447679808129002642009982132812496396108096309144513655355289078065264251807237827973590227348693356157976400331477935193820454252836345461445052338903459475304642597278132564265953081611952318239222066275991100751519413869564785529551116443631422350612943316503770232570796393572724166852838718775851522835299523483217166997590571822126515429288151231573175112381122775232831704021150149622177944016523288867787065134996472609614556311580462662635878430110028797128903884877616001082319132089192385141094255722822462888164266118886807251275411660924152178750909772878498994202248938765250893069438907785405491713371291980050772143936794946220779230145880502703850227375575456137062049254694623056250629007974865948269512246084741622715526426655608045687507688313568997476401028209021286780359166789141277467907612859313978783424917936007271937265749184215985873651084901487933940129460429229940594699520717575711049254737611119622881164396758055258979343481803562232178734726930655550683620889847132113400080039791094506532063286959260624856672498295496051191174838714750055483423604823968774931123829383950398231097037245788483633706795114985591092693346289927686363572413594148533590317640617616217780855341100271802985037576344522948395302402022582557415815822775084261645828763086509844448233706416013874592273505822895246928080494166253140947496291552548328932056943348538168253927399041665659542771315014503049869956352911897212146124565894171827160631399576656288715888436790133612153181907068165099264822971097842417714158286669133791767566407286199676370450711906786824997717412202347636768918895839837148529492072998157006355346009850631731926531420520323650149883617894475018184550500145196047056698054609104531172160422461993458288174168679564022138488601017008880631070191420551156306845902165238339781320287975503421240948622948441218956876602588954197880969007332635735246753509392277631872388038590920688990747779100660508712470805607582018821946479123680960567547531665905561991534831681360556298978801306802732025509739135270828061922533106891797397765601114623172279821055705822997600854498275283370084235381170592469407708273220565962043094698788193312143757258464501038710358334586980534997127765651822825298494991678782177154305071605695719721670435213357536293167840780809116600922806858158723972342874138567984517850059203077539439836574224380210006619946758237620343282040480090745038501885472607351019774144677999099778981429630403763204115158256111328180680142018701054359431321707965136299555651865218363135824050973615116557210592977815203927597150996620561162949894687411653595442020931162692782360286303301846784822749009731306400321736853831868834664213971783380083486550728279087378908424537352375274143733839650112100515636240688040501179194511482695769578058319391031271152243591164546544998945196974629516010584780140230910994518345284869698697985238923557821660323587170901687611955519493425154008420343999563519517584247152172974117629705184243118639413917889856989784468578079734510258049814031804068689493550881037197743925517853328928517177426834767714113393447347323664166258481202819711725537634902786492028673008274451630561879923509979848988555649771310063111446492286285987175732072664270463349028111455770635056661364685116053535617859254657852099912486138001853467593848002230670651361422172089100353820902000296320089520268047859716261786816722991797928498068071934648859230116231003558877870007017099631877532691866333235520944809775258860694909843564289874699850924424471597552626550207400217862834854567896722909586789729316553542089970444534461614460289469109612679706523318853468324883761124308143114868024038786325692439902783698277785768692340046493677412173472383485370266030107026340795508345624847228573814356660748677862724810355816566141035062506255316058572512510437288127240346211153295705558636850773102071315864216814583912679310912924101006124907781406401052342243647387180819300706154120943002832231960380205111662024367148059899203834983442156851981329376148909415434449497490291016872075393115103484018554057514690441916871274988189333046744008199001305195527707242460976015959387483990286603026425831174964638214173042033795378375693811703447221638057582385449391981783913952078583037231560755373251283260572702293651626441023459819258018182961539237701843672662717709102782817041598825439372918496973142550258358215951032847273362043669759200029696580131182947917034210553296611938006866230547725233949074828885105678108673930926128367912783235697346399912638570757982257629958852685613577845928388740163777073529313843524271471949049101505476219115841351537923707047036044784558060725682757396431369662604593969233586946758321578477536118760326278223663684874564131853619601705586125193485589360883416732571669344766430527228389036573381389108226354807212408810587959226647187042154127677220159717795844244245245354567059419242362280893196030414230568501508180272394487359233938062924213588331733323371124287311085306160038323509399021383140387354934279230023791029287128270440757462163123406504019938817690039083715008139683710872328276024782171195651469154284748832101898875759522000340870465687084362790871169798038815903059668806794578470706309245441016902703959561032945802249875851430343410254676209577113143375947127769317249739711758958372253114394566444931128950378573360631538076916853519462494878108089857279898730772634135742789809953591652989106930018333575781430509688246116574515067565007712751066018822890051767922568786227293458085406121026787277099021481902082185402923223999149219169438387106975323917884241203178708191632088406533336650957404775717041404739873635023692412424438717605250745881976629375332318235626793462048860552633329199269717473542270998641036389836226857774735299285018252666314163133267901678363631768602237954605568176508212372777012651983741558912099242467182002552111023015482229404578587378843486811008416486783183502060482263146629481283478844682224180149185645760482940794422499572094200281517953025516530544058479931443473451146948674056973061189841343165212042778566432242171520017696007640758604983955566957831757009786175488131278337371768516703621868466673862975141774543102856741339321888701807167120807024673025572740033849901520382373325138296955987070065951587948186655268236076269857095364650889289822790581993508390333061850768030741654845490756042699679115643289474610223568653384141826878229678090644538966594994250918591553275140311022629409604627206106619441326260186211456665265333845814403674605743431523434970452695690434476056772676346061555210343560521690127682747088479846958342283974523661064965168757287778915399560069867410807369331065399662740098212227677956679269511868013755181235325236985571590634490767740747065405245100944902986602215531677332033207671736921979635363428833395072370159517161362605088150205023642051713713360054768635359576474643384482215800772605873978458041499151666597815681861703089277713367202598764984938248518433601369620298096268280105342181773384372943616213968671460185863562153361568423868016366222912943124126958385720359864838733948533560905440416252278880024910253711329067050355542624313426948445926294403141437891508316156771844237361360260640860583461824575423137304984127177065511700597924550313779540887606046483611010277516190217971944063121747355952287294004017473368544360288756441434190969596794506678815289501071238835943120170027372031341100851211213345003406475353810861548730182195084785564981199207136718057188027498343965383106978641733110367664206156972453072151333837280259053589505015706440071017319650674465219065199357616772781907929362443414002896845462138872737665076159902119726505428941496387926641863678417551529825986426853683899151061678051913163379927073289118912551624926852051984684876502794807031653758440428808607425506818547976498968214557470057946944816857620734967372844123421048491883802772478140105999544752458811577037468967895964615491383741209273105925472300701667959700392934217177423016897196544462553495141965608775984859028429751980600019770201251169501002685551315402751745546494220834006879095141284337215500915441564752936527778897862181473415449693197638941100369661193456059125081809029200819179795704637511258858075217999740945861419165237205715061308595440978337395828219699860879250869281154776020968612284002559141012241112150598553040726780071792956313495589306462459891352079743539664260117633014741175250889484185422498568070965110593031210286587552909201422451771718365727771286585420016643725375430016312547205900890396839970594923852250737120164914631510616470396061339259146378140821356240184997412374260537579410394408262187368226521448652232427986412424627949487307180879912690513490906281167874748951791076940832250275267955771217339564392076237173981777670370980625163727830543633248185516519578810212436040909764111770963589502287485835720742462470097122245032799374322284540050727314226714237923433102513973864915751551815409042489891377574325800235597327284646901526907708646160291895283770323495064240169986302712587916936264759325307553037659128475124055259182987259991149852974642043000471120824177872543370822449019318738272593089599248205178965503642850729051402857938137293066929774358003823663490353104702811881481260407750189912624434349326828594585505498065123635471316885523349554787690716822574521234247114483456993079983614542450487653116188988626751320874641526684579090250955098879270732126364176038508318523394275498995998447824111017443132553000399230236233430532774623435392013425488571790980414266333857298391214943548644911570903948891162750338759770281179448426682438774726243297132101412686512113277240649670372421794912570477591802492808511035171434409661804325529970164232558041757073866314202423451547020662805207410268623617228392144193244563487864773128499617768903104410036920059984166183244305478972277567638607296590626714536397511574817236502752941705414286599566687775805883563064319545025115649229956461983720185750303046278224015532290868608047919546864399891262048570224572284148198288445636146501569198836441691364681826456933064890384785235930370337214108067040368691965156588614092393871261127009554090699977764064222755907292079832768234203339195132602163916962032436625638902907583873423999454008124622193530039783174846178376611524318426510131970011451890118751447249348212598520733807345580929521679208661729855333236228380098963382673760722972416893603814131453201400302701686261798836442565749403001136778819049757551456312155299102322374138079833454156054385684186875902351711143987026356541522886574007054550342955292155121609768789613706034824247259769406122376931351174484722589911540784637607059495380275526622337513915615101151891567609457451564776015310566257758093828660902357866939745947543036607962128590061410906109001785657293479816840674071897344169172766727210372105654221459685398423536207833306968464918294770628595304673214627225237585014491713790327939070213135675383454314338086767944291857989115220797708518412096070458314516976889820042461526113560001829188544475730771140587539583051670333388207636570614803558982566338883043216691074008580686393206024197388974145572779044028932736565993685405991814283580920012060058492033239212603216663394918933690027566637613260288548738567893678807699262952920223370418941910034705764778447324914813192338925355835354614501460191678916466020129278608363533637833251624576796782801015813567575940462806734630490986098857097566278610694815000629303525718079459553042914841321243504456662898848669542980134945787889887457805438446598644362894683949986698242711982651904817155203720455329131246089227958223794089867984446545827708462014365037393996140048532434014328710119348755381656958668586625703644396743547879562186994479081712719395159290255931276307895764174996843836177484256281194395550984374950612726022195784605486664964314552810249108292853702729009118462873267693841684132718084387405261179568366282777143497380412644005509434784013343923506962764749316988781229864291808944162100862307589521343976649088824261907477698683703481716479786417055536163709467536824697889265121158605738536656547648701352642929902930244686182586262325641214786631797730438381614209128511932396452939745711381096816240601777409836738108504254247076046812165909192969987750304200111986686843722186214121352222986894803140495723254444353908769353275573869071076775607216828662669196971490357930501856821944093917995376091476262244587831958111967396406140338437846179699428931711921094312099100335178731119629766475249467218851155056283757070941935946314040765118249126094229419366887231791065926091320795936563220626375633528934725298898990522945457573944475717393595340578255594349923739792968642636541655129044613450156561533613451817101054062710646173337519792504225824950771634438408262866413257845567870391383272035734655453541236608570131039039750493152236477250303277962386047476799177329760615062786304158798862453010942491736834632950868567443755482375837398558842085972855656716079429108350901872607790283296931890045153433710018644615870061413213101131326047283330127626482281854277958846779682046279463341348675122574622416681280685854582038055118171848881750533656206354758743943408193983906656905278443417349001276292971234407003287340454892638216338836890126639445577451348424848874345065491950629993275061594269497099081232085282818149468084166780894091308934259770532474381019628711609539056883361177372658650481349240425984757933095140837142830774413986227687255402693627206423917270544783202051614045321218710375373605593149545409586724354667987639213229648158293428713545658950162114843667001638387678154207370720069388873437243852868870638973845789365667584332842971663231173151361089708222064167508662364547700151840696625552777405470223728068230808992001616100150101820896502954893928552629562921433438134919647950551925148585920731202713151858896042033181066874807787894913626324327300814550845948003299260242268789014092621411322780199697328058528129631646273576656960270028656001483030501822015179828937460493705332579954300082879585361474350621131733308830545052781056131793403947595686115785868474484339318852574640432435998776677527688861368071527587725659733096778595230737495820848358267835230082164812671212687409424857273736654038031013480773562855794229270946151492079415350931756115793532016610873357847410483486559029594365742448083334394643268409785953837783386600345381390148973293524214781734433755416159211320398542086494812242890705509479763320119599302187700200813752264099070023354222433819405646222928371859668682594018231600348044662573119617766891952926601695691281410157706928805283640580925634430249698139212029848356658114349954960969196799591137667533027785669702949920086003956615352494164852679583825249069560771542376478459609646175897448359828065116968109527976163607548971187529125256643213485999703087951742474463663936369043793038105037819812050502774182151216383389035853795995174551418391030502258825314346370133714739810425086621685485521448282553423980651826968229090433497270716775105580494440650417203646554616250537370863656697955133664754935771489212355085144215213792793240388544111646886920165089035667857302628979877339808926313919042368961458897087179404788904491134343095521033167741801452852874001932240331149190831005313434219070058826338988554029963357803119805155995831455218750902414752086572273263606528401598551454301333519410109373906008661266583130844200156652794938801720723084841058695406731514474934263124708146223524694475317714149825360445966440911687204874966209061087486148190595292111138973383118010544921949512012378701390260062102077093547394602851629793192434996334139733488195112177961352334614968500242798078760672884915467043805240372688468820813093122224092328912543450106779114630469893924804100312008297523633804783032730492550407921554525892062093846080593978190315071441171863032111106030553299521696226305896334650487275955265883241647369795566680664040580485245836071811967615058547200522233148864981121872085486807450119878107591503044645743611238307937779337828732344726253876278966404143969935125357945939000389180444892331432283334949618352543467023127919162451485156777949054991567313106805184008967646894672603731310337096464154495973486497865027804789546227114183122499378849143496390721134790459846257301200830396982024812348765330701343857014040634500106218683757513033860547034223037413897459115612827608067953989923480021379130564036829576392514313758055070650706904519062161819436807103821188178853583838795570214545333333726438912666763376553858676506637259993715937937578662218108121648969406058759550639271867334428950597839274708158899902911731770800501052006810799112150533029291423348819433864542896460331414719434912576448694409811427680378244365632712574598877056640699822394375454083553501566390783425643729113852916342976337818600346824789359622170341275364876624683511113443705063294609014801768426907854123318902550621632948195512010915631789283618713658754502983694924142721912919122133057396797970665584928696556744323550577842325328707624149641579824750803573971762414705701355890961756202174422127714487653953447792963301526954008772733942104587043558641219647514439187037738609313856171014678037875271868970940679014049976812775162978863580977849948964809376521172112472480490533827429632276338224788286321955740093473920924030853539076953733099690232060004645377956922812249984636094586294650222064895605750376462529190990899043244712950979509180303412627090575098581765620294200866796182496075783959513225157383022457731083734701305904710052419912509766395508278040829242441977259895609979470439417827318241587097818955377119514944982045222247197346743252945410825814239791141598680162653992488477060733017224698934332034862543955976974742932997997011526511181140785792808547697858910152476329148976787037926561324347737015306046133485395434543693781352181686291932846130201642983004579133584444620615079131434140441161984830391525884870589550071738414122299652028775033232033921796205504903799957979567360885200630223903936764487706102650815204630961269161860016570144370435672907086480606407622733748129489345435867142865789194792598731598116019465224022708203978462790781488133640764220492797461768227074255370293017652978373528125297507503381915348406165457199687649133307079135109729677571412923396112008801406255681725883824395579881679569607470338449713014698570466245363471253948776549104786308225031317086873713097195156171124619166516078194382574248937470288155908536187652484350291521426770331167781232679597814637550166306284729117533032056388316245828508828001273700866605683576998177325466348838295066239775651213658617263958545390721299382343819770536034940286972502520615250606742159288360151654196172992735523997482814127990550226307575304395210978147712154424011097251920869652669410127694244495236816038554081053234024210712594850489373909798694364289215660876067790760783598718175161681999764078911460457690602304315327236996196747873401074307934149421413109154353664190878516787494846599100041499413311673630742323832880161977942471527325941853808123672623821109489541964595842801772258483311799493762105130792148580630350248365498374130715477122619024226494993792066220437168816029101361722861011389956813586990057831738661164318931483252370100563623409712895962585149873615384519273737591893396105275212947707683160723772888177214365684993776562661886301790377760500176928879834644874699316064657693062616878159765537114978803537227990987705144788896144958516650668820286876638451921374278325445431154729738986060529588413423967200771529872762076142609881182137679209993294555450945217524849130032124815902480066975020115308018438803318557259376115208457858758655274885723781601393982914866741081843551692872156801564391806021462736165494648826142114726212714595083221086999742218598965206986250901254779117133362310508056856023375035478911245296594768585329156189078963542698030308825541362223752409376172218542199255687521934276047341221651330875835598649602256927835402203329451605931408331934894910669392261058334016160151523599197504173292873388253545975542854314609938108243395153637218010283332646220469153139213039504141530176825170372166116794682038469786899582122316335386927300046167155153044805124285040450533590920001424758552468788918625236787294795877754565043381992766193066720741856427993870337480635859302373982875737757324254049607209339829446289984446722510893384515840742624682718337204012679803746226614937639685060659039346891248696265220291393107695791687352144557771825749318768369357434823299403734046047193953669883374522931290507187198176311357028315972101852461360089604768949899213764259423387158568866262831423454406420615934072270460410404344361610471362849335566276652057456653018579713330706465558944772978346843856406377615744570802527148654735377200302736727771953677496704379511860108085695627435765145810858628706928708788927249886464340912931809863123497923326471135820015914514596329055676435947379859528255213348367455442470026645483788270319997683590322855704743922185365277030261420130524728131970375544915589501046322935311772763940704151043487336163197702297939184781605968836187820848032109598676668074048798800989897651993839159162034761670041172081357947592140170893461393971973065740269994356945119392776619635837294272623386596995803860338720783646654451445036077986181838375566749507847809378372255759784749396729593569843729394851548782193593508860167125291435573634374471305354023262655470347528712944681199063787298269719046740232245070824810512550580833034083563633604316240527824861551087677322722654476582787130906929856481318797911744137737072351856061588160759013644181861048118644078713697214153166567408639196887526964356581429606462236327273640521448457678979885706800581641585629594488640285860750746148270335270460131185479756356002934680937637420911925495834853769533446779588715644953897004109519733625948537831337292246481744866413266994621746098935289932022903944348434218787914391971719662124369888484207443239225404140036341371520873579844814744821453258854312946514165388142769329876368758996064284863825471551216089506915090329613966004311019984244222673618873137817581943441843143646291006598708852642930943735230913120726283615663920736681674363851909414536106925184508909659920496083202473179977852948777905512340781752434212990032491675700002913961461011498809753746576280340633275150993407920612737198789484002987389937244311944139277714270118572893633943589582249518678754749101372637149534985281773051083653195046079009966446348793290147012479376990245455556354329225971948767633492969525033923677330675297371266854573842259245084300378543733940611731188552224723797984907661269492536418181819796962798603668387737896666341956203042225163872888836748032457422368048729528190261084625366607291036115951659546742260197803021109958383900875099575262125494304311816897056078901703371234179711668821556489223042626573482578864881022716683473480390857236675655913063075567543496801423078787824631695801392230077008644362621196521845210563137343530338443528037038601641634573517600284598184816335876521017961471146280174392604121415307459989710593458487604841258093807718255664780009821176894791612386224702151513131218745138756966348446446546785705194875880968989445270469758040950989561525294564342771166269884510675319087504391459897401961343300683091186936123796083937310019890190643745177484026780716375915560203982633685562868362285141979820024774646799395356265229854300903612153558018065805999972219591303739868820438549330901400652544958914397157657890512928289177474861233754913052682342071342383473973770570085485007290180104960932011882875447587480819779687633369046764473082810815955117111864247950333352921778302945872309412233896281547542848077308132525436505755820977795836486133671852393806741403233661216084554832089055214740597577055231403895526679411571018134299197536813370956044464887820224078134127970567278648233035615055565291752784049290488999212066927501327812023120507760471976684615760614122440713617255662962648624031016315755040878455614052654175912073721799208530323349469338986133472768713997660383594471184431669454765062646221646343581996457955325934101577067943876234770748164230189607103024100902408732305038146196617431313036225466216056379901939315127427676180621416414684825630973626606609526143623283200761455820083520222075906052184922187118850711976883940572072268583261491888435392235821963835999231661898298023505859457349359665149953225365246738750387275278654799524706048228488138353525960675576883135783692217680485113546771309100609375940144008560239120726247984021519429607949740962347982625298166282555888927238760366989189182650462700455865297690585663282402182761497797017264910058155486917052715327446090469902254280560961536432672734996003382659469170692360818899418489151682730161478269126397286528152677807732625221803191214047532676363731629761255083513307523909261723603046536937379050317823756087231945401711686125782858846983302795672409684371194074007339364854018202728618409518309571875654790478186590645412332522550090240497627258627848869056547674477207134603624526556968690139328413641840981813598380209581695705606916523664689870753891907977749026126211367464771276194240016031421975530212049165172598858420901478215803909846036154477517799472501843469807548886471540225432745415658335190065645818159728260514293513620589841732502862699161085330428790554850402220869109307990889891580147565172314915997216345835657431048859657388606188330406073031299477636123053900789025742722064394082101706204183935623024258606966392521239558706823105259717230582440385427462827057844906719983739312269336909096912246493673985703817001733409284826148334275458101443757888778838115485443158968043725676026495090622711303024358094052559046173796845845834438715672597331391307867108791634301044949683992174485854841748426609464574609685300474989016267857926082141167175810506869825826855193135757514264820432355248280794963073741346630132005932050899639573734063477922226413363722221665858599205669625373858671713356768264886755966788288495355119940570335055064117043581738291269199915022000394196937415920408027519920798574564510703715842484823724839785699096104521555064072043831668720144937412356902192260392472734427534488817808994848583095071032859623880858565920022699939649730948352808723034689419589422933679047116664311377332687644462618625815819602596916969603027197682622789222985615320986475778945116165925800533405510235044998656952428942559909193580524188171934602664264494743283062487069555227631280894319317457699984926438223832131371352520847647813697929044187713079806674501438119256143281680673603944451956871791541020958024634380163754309740493276427066693782616733603899914110727677385554752133270075172704866252234698095800622232883698219582829228893497062628214809831847333887065538168352637110445329821348037502329347481694278658894701828003749662955713441503019189182362016898726826056051656925676604165209735749341378473919829072925290720473271278741560852628175480488558266890935808349398737147808228453698846575989182193424206013106620570203134146545877163762670849041939790448787897925765162403768681236110232812907639869450679245590730166185464088757965701910243120758763698080105157893927100128632971566641648932524743119869812134612350581363207288526898910034636400811551253970450329619919894984089393475965922094461145783967785556425263994649090317387759255752489744885083988729303936284229367320236394463641825541792701883690174991811248010991645232962139630147410310839147478716351309582084970519778011117500045682664177339277665207085564869669385108970794561670737665952470928991937629322796448847772408978086401903568565141225572745239390101488522248425874585823075044891683558471100905711668949517225052475017910960166928300105284589167626471830146430818529040602348622473038824457741394984935135542670619265476286209492348762775235848272452988301187086102379942980496207811529663747211299005261190242358313031300865623971468658421703418676789872448004722968007397380235717605626142566544573870788044005795900063412040000424213423801669845931583022041309290814303073902502892418063096544820856904287479571335278616020256526069526768245105550966730142946886331256016469820727037375966295937696466422941410117228926090786152680749825104694813179700378740287809731321622935333257877113779202137531274210691112464738583601971940385587331108064955153390875942384022832536232456284602181087429126032807805219690540173613419409667234993185798085820489013554673809896611169696228164676424062636412768501933980652002885515882413403720471899969542502722780476573346765523617636411422344655406596472802131943912130575800784071949395982424748024044575670875411686103816140492166242140406080850508774903283198505810367571840568678415464673067895087816307736187605744162144945582752533385622880413141819359361909299121036676821132576363798425841177463427643514677876616979447938787387993462288502198400507504985080976211346989087134864005639223900435126892454630352762632873194153375996544346682962468518583685885457985942911827412673158988054256500846554469801758328047976629036843076214015612160779296810602918573867843691456129009897926749014778668083898006337855807015319340584956297766226358083963744878717927690874939289479828255407467093786150169788012557487187306056526280773927053452767794415537848148138074756111094465524301770670134780782504236272055796923301282037381306724141781116586799263527928409474498445346123534841398716813969805851014542285559526978352738717241903495167967396014459222069639546420932267474144405216947756337093894645586501188669714267585728191038518649661628753264985516932573346994483479223807054526753101200418021426267003830814613505969221580441476398802328188461755475789870130082477556273733011937551444788989123784676494568833435686124592334563308228427057943557965180627932033237353470619666635958634909032483073302908371538792592510812892129260440993437620304306119985981428357735439914527576660184250381583261699257989202549442897863087733348487143788329185847324757292282695206508742308965835582195480497986713475024609226091766477553575353216420160364407322709732374810380162754781028857316314311903959433228141561181826267286549335110047145612387678482368070451225581910363229939635171392411947904152379035795403237008522560117415763728307822003871616404164367223225044741826453847822129358166402023053733071245938394348689365177891362980785045791502618159524619266170935742941794022176223985388852010507395981972234114813519518822200921941477682594655735362522634117259616481242925182698745899395140210147779718854008944604895197695991096948377262129704547404157105273030431220644958361559261902616115902170179999285253104371343437488817590542190478632705139636735312103775363849775987138440215927116208549795499548852814602065645197989283326678741430811190103593094858379591488166427490649190733929514170134706324514339928041564632348687458904951793173435966250031215782089703524202360736087269893310290910137223785536144765095363835377526696274128022366499146549008746646152478108957543044015078414795501196550398000635522194993802040775438502369212706428887170364375357339195306166385545128237242892708342319752414386030757118143657825302792790820572477397313767245056128143219902889056481885878777485292932326536858696168452430716713291296192671034306256104165114405740775829964612693867763549833338291199112084455619008794435144339090804513059132637822743456546074162355844635238067701467099091658097608236752467227946766585516771470405214126492118869905940378800719124440099601806888666874679594336568120573669552666485173110930515521941160950296122946723379566689797095458496425112056740924146905981117584429642096168511233111573619724815762975626442090930007683104520550937172375643975607009456608930051155632922969773292854383648995801384523098210606759311363941416772502113279369609236015319310848196730408320444381566612872350078490143247635112968828700103153296739793626336219224575895645676499332037815891340017267661876314821587009618047147315058041968913265881361805440572322990519200744185314641537096426962205051626650811283548960663415492493931967042560276953958985785040810136359594470052398928696668385314611702042813649590941886908567055418023631612635541935902507456167132894741021328685350948626684529315071661499237446389914149775796639527278551412741774579753227575418017337840832532661634922515093573063798872393604946723350378089148742657394433621836250685707085872398351463674812350582144597205705038856477785581603697879122138257475923738850814213609756926300652839690877910049345468394412654913345978988438877143700990244669166821979439070792491417561090829140324144133365952385687472627862877135629122903452576607259424995344029265871790601275048516770332782401270512678175722014610203125159240284240967588296371666515691824279044254085056964780743690688809893822368683910812796297255884550999007481429261297779108921423702608636755519524192988145462843232750204743145650997696015968613640393415239557516940698183984468976211149526360307775459884566762219923353173259390656089652592275885652479821966485590676229712858556225338674398982324209847513514916237204578476631747245848733940826964736027164001389206493918505065032384829614026044317212891294232626351522645088630890750329168511499955168351741233696697447451759207412913568187803671356323094735923505847781736593111813542833427932166619063451194687340312139716308507230103277815281792945919981871810235984792015057218311096026234157432540420087224775483740802991254388771811928227504877437105387233523621610843114279245114858263211788825805037302792691741396292791405218151048679611369586306934534049446102961748898985072465938453007383161869044457733321282677002324811483388262279464008097467555990531176052787693818068116216071182489616167804481815865429119551040048432577636781854905213130006666376223835234365521429919739630088813377827744804228448989864500887371203989898096751420960909907521016427150252615434094330631631378920031969575079748429092239114685812427076282359118302868804921214842396529833792570826483018975067406380671681391321604233253836672376187492455136881825416785209227803415032848939258376382955059472946141560811221864765135817832050670971018955843521254855125723017963127721393079694831288225188271005284227426910589683870259794694917126096379712071882090679367203111831725046986366793365599757798514125499577428556517871664549607345761416279446489543921624065104970532715038576235253189117913004790779463919714601478419959732569801845482529558488516205004426525806948606111675057689646310717010941932510504432386376744323458357742012868179995212531391672635438651465339514160557784008152344924777499184780635671057560171378932301861229851799631508087101868626408130513299234795871304238704897341970093754317922846103875191364063881754782903960360967320564674244966914820819058679566954947373670767716682861222275273658875565183704353658331748926542363695324942764975062160195922931007227858460156062903868649332953995163016957562248578664260492718406923145088695306823885341792502807712658406228440782416311883203538555853865865400193652230410946736768511213944415458608618462469252557634366974240587640798943946989898651336694105245815024283671827829927306883646122603614374360571434159788109505819556502177954821388843089737603024476783346039550167966060911026073669913187550139662794406650997253012140976429636539603454664156264381406994082935972816714423324319028994910668631445397248896729803272274914916127759238426073979262757441266975573302292337657701784265397351663400107366256799959580658131343775955069490392798261376133013924763852713929202577827318702019163968327799020709478663753916317387858496203020851200292477101563948429466241398289130365235304525639756154152496288580866493787591257426169313460526959831152056343237262400944878843956171868741875711023192347244972211745934231524211765953639735447774915995076008968738985104806565127309275374504037919343295009042978540072355282923464077244140004811117702479550937326335057869030857200513028832316798004451362340821336295318652390264823831550291132813083882060058379234427504907898775386857224644443235300825575753924979661900972998048662561883874987990973687466075218323210842333708797902957199660981440793373799167664865282222878314162039285818837984787929524188891509974989468154359018612256238317683019282619159664126512908051399360836703934515364447098319467606215298158436586145056296852481554981293195247362922216745605623560307711006913576083735085537988866383345229755983565395713489288358329612578518706481046798496243379201788246619049852209287113522930949304434034472752756025800694829755466908109159534124091629184637339857108606436415871054933362403594393972914930873531038305421852770440316483530592920946235865427085500387787124270762751975688520806760674718333590542254018009120774667153067334078276673782844015980445243478226779839616752134372082219043182080025269003231660812224092243342334783089628160171391399493881144150687117223884534307388566477574735215363307258367286035370228957114946113969800856379868468339683387770416631981937230091780719484417069752752901718801630017805311873956855759368093008944727032088080200134732432450443585387246959750450599050538784098757384394118329625949602189028353098432386792531213801381818422331195845875745165700127389798171587809364716387502657910287393283961549949715370309843368407885988122042894869535792893459507132615113939164476508513851180578414409413118168648759741353535710921269622018244151284314759579200375785680685566493145058253553469157154652473824781745525884810774776231912232546319637248810723894488260785336458199733313397483903740737104060534604949477371805284409180390181720346179794895350004745799861307646019538397540491218233260484761082499991127686979730431552817204146834190421899226434173541855362314031104748672517684732979859286313136552405056114313061533292555269543194896077334881075082740646549920709358142591356494304660351946624645201521002193769370326496817817782551592211978998564340631538033901445908338667623883252630014408426760462268612530059504869680727834468005359330773359999538446477252268423259478244298690206147070309139184860012793193065440972215336579747212074088982688564760149574649075918859609828707338878056387488591400969995141206972807947333661612059236104733819339426973985168766015618313179220139388170830530783007493878034408824686025851692647860351769497232464453199514029466770418760123856609769234582541722773418170282571476180642955745551940186321205156001118574664786690133849652529474421239805208390995252990974477054954284297629230818284665305885956978195445989000941699744700506579176523449323971998307545701762787250600289584747375117472591138761826831469069668198798269271459710760538492376943105495001705883898812754471046769159252909740201229455277927294052974566488979672034566782293591143798012352464186612781377557670784456597523357483527737694340435755503678917535648554021736694878397819825487524993496359287856465196206051671304452606820674093703892557445978443281618280984104942510305022924068548022488463617316462584303608481911924727581766468517952788826436728745900334966795032459618238489714352289262450610541124547012887450810861634229362459893730181878661235305108645059852463021534551831450433959661040317648555961298073162491356730915275147019320721381360091353282871158025147304399163656312743941229270457843315387566819151272686119331323016441249112718498052133752633381387657347685751777155185313305931924924053207247261893949716233486584984059187591298520659812429223468913659581065162274788118355019279763812170312626362797233141029508094219401077248074934121984159663079876636270137819756782312403783099763974753704468305278146604026147671865127666999471599838849783616160663343418341795302618775635766902200134183075720898111298548558837572785817382423099369147964421257182607362481637269459446627277278230539189328920025421983304146987449123402624580659491442805900240511153536415306733431098606569917901528614821954686529467174788031652372558630136325973222308763195116424016401138080879296961188820815068530678078872517823006642069911337322569227445292024314196536178177681732771806343838047581602086715798486417393945981173804627677939680602537280119496151539661754771167558181492852473455895010325566979493958818869889159470172137508681992833688889117006794145970467715103538690701714006587006331042058153799906893913176293606425552739709546449219143295874667392895476972189748546125781229453388467908888956208342743641306767142329774603976293549054301840089389424084999963300884967382339099005307080609728252118533455989194353532043762167403964036662791559104349650876727098873491666807201948854192190717852091454149819118898091522216353094790544095904678441853939713197733495283768148667295980416937032549232982331971042553840388459208854952955118836042439747563862832064534175535862677686784761105978737755872661268077637040831406411510273104885252988122612147119540414714066256842043526924513598988709201225653431028810197394392498507423867328009062373410806346451558237405154638946203541354088736380759786168531580085297889033589160391570317942018136457846440498472283482176531942281008114851244375370634949720144388659888866372824801987138758845501432719945708234931858498518351023849696326521696262163220242347084941211895324235478046980811945460310333986741810471236035812147985759536335453506916612153643082466613107610592549633417330267163132035081959370759229700598417784702693642071080991547784198427123398387474731580061381052542442726760372009244636541242568273844908411887081033958583196162006578785636853715671066555917417013875349187728297271187195555824907361458421442516516643686636929863552554588515981933455287651804237815905621472327484317050988145114766522234650603636244533684505954012249108470783560058473852228845553864977730073427043125403134435424299624682903992367146716866870240364108933258857010748637863851868637087941510962677110777106864720224596198074699197078774486071773485373705632800144606870885076721467580550714173049208419822427060456574703713801699048936587154033334477351537693699957303620851592583448175920370990267285663833708683780830509756437361637926035778978428865443965027117113583224787733004230833027722157685303778704527446809697558267297230183165215501853284272794182360546877139170129984288826931614578880514083634349232139309103184897217656627881046020120231348019231938348235533786222681456762943641213653046839436002568977602815634375609236948925865400298215630485313643326191527794470321450443033922554499162222670558412445160120148890725563860260161404599472323968860592283345143919721945336909791523281223882910065762578077768306379153160084053276570485159404956583973999294595130412580668785504218632745996074717712728088535855789380077154059031462628720947795493702620776186905740517007071792002859169301207899345321162650250738673138137746942446526841692187861596350083623751148186021976055316895028750603809512346932577085869541085345430277548214558871302309929690853937643253287684197542148703799051497073343209260105986098670140825704768849967493383684383836485915563994370591282895510102533118760100758378297096691447628910944698698278030754560106385901704766454372702771577385915997051960543451449958879427470252515286410162526315468594999199102732312382975270886483139420102533983392858826434885966851277329335971516849441525135231467397051551693607085944828083070312635588290978062419369382213700139648383206342954056667894994156583903437794614022375539631084047978548459550847799055296275038610133254459440295158983648309321542185010211180940441198404857975704617341590438618310662989055752646654085176060118779724451195732549643575261365034902053588044688208372692003028982474979311263516085353887929438229644949634584075485565648585393426714321369990775417935459878018669240296402648480583030447926326833061615963020917748197938729650954396143595799829448912913097136690178266077290583463499429515004338230376046879116396656293266795371510253112107437435337119451880620602639610460846751834164077357114171973118556924615539728871622107915882197993734501085737105043269467469852158740950918425845944843827834025570500767895722483499154344425307655421517881919200462819975650503718109560198219104493243651854840259388568620876561445843186524741109648058407216227031107832467422615096366630414238779628226586067964485088259520827335465213822752834988699023862872683084396518350426236320284754041969949252389772301994224573843509225850336043261791761045083382247670826117145794320355852390113978725341614424318611359195926166853131803187215260484309054750107549900899115894747889250852735871613345389708027786237623457124427684622212889228241336295609505047661680432355204000255863067473657613105402951527231251361166899812554974413168667584976196559067907028579469258294776984205575899664717050899948398031774026472641714810107615585944849747123935972285701986564203391757038294266812210957804850197061953629618726686970573768479616949817691403605169369612483199942798466431999787498812904450788294476703659946204348441857531824086627690169590164419960429442266054186963983017457367498102103587508822643035069029181242017130908266105994446825015048099305043183796582381747817225471961695596089046118859305543844167001169186581302487161710216699581405441590812589690945113845215432671700481455739354245686068087462193560724412732719804190341870165285251713192165250452980572234702848031637596985398045214184521432856149316333802112825804887601061037941495001431280415771851089343472358912773128830732409073945081653689832376485540635505079046102627890106516577334154464939017183772337111933214364115822841022015380431982797452528767246886681347018566222046804480204705155815504719886408579209804241324904982331528403680789518960932358418976819205080451961283669808271413585920806515108211118163600188245993841303528907648882251959226205028168189392118808873328699472808418670457246429035570738776546860041047531730654265347653119635948885331064165686715773396116368476933813131351596906070225422580346786106640198555035088128658828466243409622556765562358775768100911792202953402009240978973972336499500609307441304332781650077464037556561273113186461747415146692774235672331833188153350365722649909216673418816851386128635806963649107272600092657405849424030472391932549295146197196991448764703460692077580736095234029365638990209894339260461420203290910440270046900187120627472431523145654213835939895257490715313009712591565425598027068011222774337018853689458016963007685961638820990205416115631380702947543805571008828539630562991934388425827849159163061110605416800557707295472976196598479599702376380227967056205589466665305668178410008765811636835628232687241956832753276008955198867244397741214986626747314700112535684529705203285242280674918364026114592460208374706096411792520155968933162868458657040806176943498372822129653277711111402019902984622927440937402475565045227577654921136887165639295788341429254735098906520112568059266675863064994415340650919121652769409840693172997968191065387776171906292553920982472363769481398326989174318080373882170229154377975954603318047796902808057821184865955049694342148136532015853994054781444096870615200851709722291236969998973284489923729214320315649799247279138960824105579832731142202071816744086371965956374788638311130318265070039174970013704670670520527031189424630627625882088177908345853576873481317892748422479237289038235422805527039429717331582863216583457373964104505565759842455737064085312719648762700449758169556381812229192640615879414687857565752726571724315165425538601345707360718413893976746068672663015950809159633645093714098747865212887292402136673752144979116509524338002931549125631177769063180612663862159409493807089842823060795808917062868074810290510881811715175644248241017832378817686475023109861357414541852191523379859381198694790844598738706922011499200922763483009467458009284563851660091185304418710012011805491396354649475129856238120899099396149878063630829568144045732431285806153602788640394928263667534602319628054515100936924230965739827850624722906755315186019367792990687859054773213419780989666215882169614983146657496546480796906460363208299830183098434749891285585703240220461892230214444169098321854191853724632401965587069248964439479190219784382710349589615382585505626288546666299562470276304261119399120789705867163238094617203941510620924527640762702748569560023414261700501107859272302653707031418468307328209653230325604624112849242825666473603852347285311638582811504263360541810482245233612990760571435793877925152443093458166821647997534732833149738869069085372932337770528667867409241981551830684384734909033812710453873862604145135951515610482636333514184672353188943378043322945109145470057027140741761374406713736233044750154519003057371786958094911260033753908734501525624018286405380894958229072449313253427066289482960759900878141986396411884123126479788847469053718920491234752064847531850394311136139291291125221436266806745373603935741969364753674843041116132404237932614764922041370667001317281030499982498701084185097385692642508367528313924655043230310537351904044007256199468076835463338712297978202558016967864656905729751485373507233347621319373925200641295997613952342288925098203588415908126250301827510412572386896805563370298675744387309707982580484441551215930211131115933080965149400114726574997779203917290676409455601449004985469948239501372633391151495519729129927748687133066922500980733019278863860420751620846270169313348216751230489417759932843145697144614496814387749968350890052884561695040337251162532195564100475852711561662485096575428440706734612644731292481298916112925778280697240979737541682104408785083765021393115961171780142363669425025665403086841799761011354476861325414166388628719974193553304961928118932380304095829523229916535789987969246371822053916005838274822895568093957166678751808846053829766451502100088924017275533233114373962818223499860297760795473243184767816908277294007598868248974190071249238246256991935598307953988976460777292159987279319965073611398702880663240183100611532795913593676104968342133076344638483647948478197078942495938850318437461191993603299032625940752607610015059783430301492318400024706958055511464395663154898357113018723121042132342605395951664789361046706976644385687533785086195420743602021705713668248979872055981902733734863616030502554309442262014406893041301707472503499613762999442130528176228875183436273562908943263388887995155980449049750432366719331607320287921628896960881864216101042436125655338444641612251381985229051840886824200625609765002829551175819322157108577085541825049224046084345615618144142777922340355919922435198158088647546973666640802513071745089581681586626484682484924748595748664014398400747522666103864620215925125643676730921304289822504423225100375940498626858837736562852733048981028309435344911513204624916634294225043628155160502103037592829775553583034838584065896414181389240165588254070540532222903813274231580830218448783684439276434895218406273414143553260869077491466890771955230053125037224047695387268615878237149183611311843513045284728957265022649731433568629572523694953446793078697473265011281872766262797985035368770965541418967924839563938627792159062547682808076726045311540414371641320631992193941220728212500428424884363866724886027362171658452127421545653444420130162793342847414505488272912341085413201546694324997061968039896015072999181885058953077673486979237360489309731802183956256618273419509511321137921357194885106699254677078237366324038851119217216421080179586677617298013537351482474980472625110221332127444831474134112297748976090401914985139226055579961737126895573249079830839351789894680466552055978205986655380528139545960053907626732017507123959378260692812499979624796006891549258113950565210607689505689624845401681289412604251396097272967765597080223445269758947867456827299871013724424082747860004340363690830651109102480871827366525484392279532688920916671571622346286839086737443955724222358355385357363124449647606759101577122402219779874678842655527926102751469400034438121411669322210698663575848819953676007122078108328430674416606888702247268302117111885792332958261736523563210852795650546687431452688435305279843865016810342103646418390822929614575642907395418329255247100104622050424203045700801824197943860182791625223709905157666516155397786994024561942315084324591887466346404750193029143226746632114274489977758001646360394929453349298957921732124006143286934717502492607102592240731217258066288354991495919357435848463788981636035212903278528347014702626575615042290207615373293493177211671395422528301426722562026417638038883251727595868765066315188248097996479702153507648848616960964040481396238219359587557767456084215746151811486647387449094593749826547837050298823040198714210030416745464007068254561900257612287198459795756531458761792053077342014969162243565875376990579645395706104423095960140222564978950397409503734289767605707862850306361397663285108811213078794272611306141368036244927127764164725498235994293169268024127180033576790296812735220366166750471964413882244738169857339546256788349647558880467920082234718078832853786404021871991287376021320654701422897545525711316345737194137527992926195396879259201371576848914520856558150787944270286727926723756172658390108210100527238944819855234737033264886748424689229919254269642083974547967784068737604753877030127156757915654837542823345218273763105605571932066259455446870281384197803921163521730997928703397860750710929897504156391200720344766789145241940009066787266439265334969973417033793901943948300683191312877903046946735041480837117118559232427093139194399520564625303350468446473966502794818856169445321759540195179758345137169049654869077383078688121737166345401108205966963023055860054333658245058055625826922439537658027899782852908991557179075196941881930143263389100525926905868753764955476937244217542318165697905189036591528175184968193797783579685174925130759301646395080053180899468253653628233389916875955203758293020799197070911101566610777842643316171480283774588980175400699200462226832977089256482137747506217002380798557227196046371900026476504568982534500900267617171772563940219519540735230718274951555222576396357995022539159322402678507177106707768776533930715572991151211231202994346167923049764088340550318319345514469607070785319998962732134514183325672059852120347772474828758025919951303006792396722698102395168138891687669823638859537136773135607962401814407948121973715932998385658455911768809934681557209597067944128891890876653718406671019171165555112490157886704841615084101035189533092970265987299995863486639203936225690258695257333204873613333677195183510492165715960536394268204770034342707194486173745887569507083840968406685077007179972573624469736228915495400481966521500378070173346157957711794722016921547258524803792798658098604696100559859706186680647391899980424568970420270734194404877621152148477744009680960589112653665044971378303201017969790407743867042460099887135094775557234879775930916837042160311181130849304482800012314403577000215025454129230101912647295735851233897238734019445754672254554763571441638281110099833734155829400163660548179517487124405307321526733185940807843301423777574647371362728786648614353247297976318032853998906640620569356170282312315560878761535860456267025034647849903602597898049445967892071562504727478416902175979409411456370983212283074813801675455879383157972315241741432734950344907402622461176794213019935100455149235988472970947631198381805980519737602500480188969528925801229778480931778808696731603582256429624529084234600648372530492149812547014823418625267493335401787403782488600101079714824028973955033268846025900286780054274961774309274370440678596188745492741749365284189735442149536884802928239575218953886672175350529692459224347140087954820091529085469922439243120674178129649885654260909539533461946615480548297559016024838594518833918162365839736437209282853923599996755302197343755051580887520097779198200404461564029090537014481967055353801246959618297052526325835333268821790998190958299589575113230106090123485289932062834122370314042992535518857414056410687626834084694710086248513343493080747249577916950846438514133402907030623638103073057556622535087819186905200411684558751196640930656585752387198987876357445135934810054725230409050405209747837889795074032317340004213851135327730054677358432037900368882215951470423827197282907086494270270587022562981313249579438985845105462799090503699960592596455867135719422294160822162043205027810052743996658009914862966898785279547735320984325605053853096092796550695088508468034409174097535741402907029535991790999345280143493101285525948714431371087341001620812569577491165122397093452781971640939567919184601724416600029704130501673401829364625731017593515040582888543975135160657017940269333639955873994146826725228457506367450928916158222415562635114430604065067609421579961733263396361656014965396793771467009270243649666900359339029283199972251311754341704066932349227746242434796731415218497429920992261362618924547645062062118652734871866805125132177049144514592700536236192975339668093734528310562278598751034504637279438657840974127150194945159108750893727141800069961764175139340558973084397595404333507512975302732477091170544972248786105992229613857243745784927949714982779985069540526166089205822125720482539283252653657782207318588182032360375971604638844009568302033296580220634816377317238599624613533022234861487445864054190742160644567382241635955930522024652914149422452469383489076420107397515440168837468613263403434452981078269260405488456032462782081371215762835503652534958499871578955421556382701560000507803954523009542213895531528435522138104862973309637622434191460139305806468645893921478825493956778382619153120554861176352555558766287792489854928293239618310997286901381575785349728595668775355119664042822226151631234362567915350955409035734001944966726833120627764278550745390355960668069504941082672517428837318784892610925118800244673935456000860618160927159980682678070748371183024712556525583775477325744227972861942163296880005758306667824250220008836640042460158638069615445182263270634270011689742994200064206328520691032734507143656422233424626032980236180597534910827726829512688283899469994876575446393993473534907528874808721161929009835425002198213357646620820287915130202869066245334830200771328943950319405699417114368129834496439865482070972889821707022116283933436826230327301974867216540516328555475930208078158846752027469139850979529865007123679017641873238947849214686465551229198454656899679917321574372027043156502221483040661821802728003144368718135960165896819565773108381116288265797911104107304109528682268547330051306105317540408327899630880815978078831711190134295359166115701872547512424695485786506521799740529196076763302556393812574593359188197612921611786915463566515545476253310078110663496483530425287426814844299953220056833745309301174828867096293896498654495966459244363780591543695458796892346478052923738197585822794338698469286511722595294071730139137995767721270254200525350611829212403899647521841828574500804849806995287284496061916332908691212178278267399154259272864215135477496635825656590826712635321145789216236048521452097219242475377383906989460914505847916374846810889781591272710628875311570321433409349667605968974984574939394688557538017989478345663586167103570001743598236050418976648081323236917215995212653961885903845455403605400846425889965354690715755953528392910681539207807755178740979283102267927057984465620068544168971027014561009509910449056879737313653468830723817305862050308428120537455164562461016449291786406321826347191722825648045205986367696618691981922321229316441662980625885652074785801526495008400873383191248439705392189651766399323212639026298943554416635416484132815747389087910687499133811081541640384427037778777956771717788391068893792932096684338279040596850130338132362966391079446629048451964086022671771863534753644802603194836715292994644480605608890440572181555771885573257247030164074591412751887371612855043473091411246202411773023487996293959774145233322130874705970534661624007653675566484714340338067304745195327819444792371164685135371295943399874783746518024857534227909554979593588066793499941986540378710142646049007551686830594984369225557668728230146314796171811299892848282156345444586296125851868872141029877856731609554248300315229830682381949409282893233845291117396731341208684764090082787914885119850369794077864189230127099207045034449528206600217492548809812655725753208846828431893332384274098626527719955814535889212745158287868474780833201227975702953569604075827430387077219039471307098107328464057537658044768870822924525292548079066054876217230975367376959956789603290968871169717753761208677531901842650614246122465424501701204946029471545678912482227245286661415317275466063393451775017922211651065385389653342705921835603887566759316999447569663860442990112737439321520967013222049289767826271189980951498835887749980181121122894688943326583771770654259161168943327622690844946873264334080703907874680681326927056682755989370865510642089576886608031215510910506929482230101097355509035427382943973648797000548279879364868838199611877991974898675761567383716064676724044101328467657813920077728110449312176927185915031859473821718224311616495509212406736756019510597473221327009946751149950621254130462648792811964275276900380211079948324156325892250099596234503509836580118801524456582196118867143483532617785935397486529763766288322801134046413474748686634944750024735580040504643104374493478010436875845105142393461618830825792397744524206068939473026964327767033360684138689819784841024764145084321101303000831770368773964304269547313691132772830121897826873244884655292773216578027164217870406682607863977178689257401838868742365652669300977160113683409941021387871652178278856510314828433768861689612424849660374206091601848520012284672920611501096480200718265286652238370956765362096269737377965638918348520615835246439615292452004710182729000603186017840472710963516635005097829703549767201707332459155792766159495823514158745706283145089071440850660946272221443655564390679428091730685403605672387214516547374229597017663472462949947434550647696702755997102978026263499514154461073369667581635807530120311399073654706023598671463721516686140627525679863049196134917225970515926743526787738557398395487122171125740510563503161415137720231462857557417074398737079737135766423750167998707205603788871205746248365021192794781869648029319594349513690314465230036058493457331595848651028675618398744755546333841712054128755191091781018332715190451001158205987272632441766711962328767776635256487199539684581276105748716162814973193687815216826425070064060560656539650554030655554176677326453409119423907718537861345897366475706029086432311882363080820754514247351587228343172438499526625847396011850590027578050878772091719361286387102403598484830621749026977123691337187541261134852572324357705772149389843767640492740252340733658335761779660872562978861040720361538035783733933326644034703004910520793653087297732933916944936113040290729035502138560727647478803479357735498494220431033853018028614113547293389544381706884611864947746161989446788160635388925124562130189343909099370487583572132951187255674399402433963834019251192963703851005276124888353399548111522103027797896599326788929247622194069226312062731563035172231906271730602940943781962292279731569947981891009569271608287275351367991175610397352980434142220945622725445062377194826351543912992327109329885335536277188628098873719368129461509400700651133161842877395003076145815316566433512980855312022006180066947350703966357343384491502112909823590820468345828530004265024948194061080808210679716652052795951147683635943816086629084806831847350714318649888109027186014171332765296623119552279057597004744523671264893895488952214128814596554134484921853626344715495681067360425781112169008167695737914007894269656497093500180066064862944489770631219101010699633411332929301292161230304294273019399157968487258059234785035105425349781702785789582317524378111418505120747776427842564822243909606947843538941831844677368007270770786644745113724215733294655499596180589964298431528922237085874316265307934371982233751422449087328543217313966190952303928147947971676766958408431602886095140257056361198581425343503070765138518478444288479256086456231410015975291755497263869931140905718107573433983616411081076224983857498064178447416476486627615823127651780294419723122286097818166861118288041822949771448110092377732541854317198020625574473165988155098124217595012518940748514102298024414316393920693850386331136543364617904648562631918200344834506211333056692471391185843294188803220334717403711221446192708600384731978248054335405873609981878670457631038013683228867723017486124707029811419483008310875315746981581475515966875231524235928156072846342518688551766976674707229313664251964592898814414049461694717900812758377449743108521121317548905418895075776527841541084959680906841362314507109714976726473114711491381892729524439021698501066286804432664558834675506048993814451888042753333069569611667859856916551937478699847401452735582740104554973676325623729786290558903438032065141217943727920206167726700405214643203066871711102781216567220661280413804777124610864633431504594098332606183435472203485602145582981968450288513633438359052991453476493555616739493581759976327891854944106574281534986853542960012288795720414486811235766823593466788055549029335233360672784364837468729991659879487188858891920363933315802352080568814615167618396261370785765416477111470729750336517129242342390207135670705003512848086339768439897660191200582798156294607653562866478971550733375777204713710093845356051382409687962428123654343162154699874677602736669545452512606733122793725039657079540527652072392497905807656240607883319580129695777023240319944890149587688088837507389817064542712745713882873532476751909642980933341312472676831045733712081967330924598448063606759054637708533176662527174741942262638756091641140855651757993166381655961776529193927612042678033133454197690301804028350992624185717955294072722967272247839624260795517308309046620288483218876629489534528606319671388101416787012005113471496774584732230687159364732435035428697649205142276335782822880101329091291133262848267746484377555734756244647070768302924016787876059228931432158637420175336902358218325708566716671535641869310683609248435687324205780479510498208781193593441849394727949922938435153277884125869081068355546622813058286459857132797053031836029910599508538793742597312132880771236285835277690988098148707559710882325471003958477133548763305419532345451084871158494731841585829341732253534306458936773462183249170456027059476202658792517204035485370555909748106460669610394718341972562277714449321989705959809341457148763298410256311749393152448859356860208518179022796787578916006349025024663801356536102359180231341550366903038849176981289774295054094804127650506547869728597305094699830525589783242003389860903955092223943414020917858528010238034076405620828804909159149801195439336342357066291340729242620128698155596061931836633982528332122972569072165884284103477842949296686433638060662807926835217527552635648069665524606008501224681287482902432900952556914533464785865748777364636927321255576751666783134852835313278395870274382780331801660624966249800536088926567329120673898971275267061183717131602450505876296446219477211651489147734128912287149513218952365111011588248119322837710321350926775879181827600719910282706297904632231698599992116250785723588078717636507903876465115031318567268781542350112431023825892446655924440826435408295735892847732368768658910374606773076367076902133116965246925779602959640662755253669894229726528818789645283967824235085964684080686168993243640795935016815917548280758514708802602297128923119064101172217139873276320980224860322266656841901111767093907312971754787693097075415346147218531867590782662413530294216542193009832482744011418273066695408674024400752011808993196317960069522769893875365366882996079029713018127489780570305363217798414752192929767038544949045138459217192037439775499774426725843795169556786104977185247121630647648900147948542916032926114487129799474828603440344827668626473038073518043614739719937747658131485662745112187457953124756866097285971857763330793434486258327433526167232457393441465608824514920472060271750286204488784637703550544987492774359165866349757259861513789886883420772944517333441416710368352257978331375704920508436424686170471999249385056275474996835487374510141632438645655796951219241564856607947239951929500381190676135646606757097448603079663213118152781193396853737932526771962553440080265069610261713594358915042971867404826875714689394315830849963059694096067364450204511970377762971773173689584647216726950917576555200573307277740688832796293480473008482791466285931931609151672430058430919333611546829190953834802344072321528255613872953386097294466063669572126359408945290465580658802279848154681269131048996014124395004176225535385653595944157271949047133188182346465697330167886462510256648834868228442348443159073377132017791200617689235631003487604392346350067392626077496264834970665140332334189529604443026577142190203104118494495748945917253724550192341184594104821295116040884634191080835469930038906739330462791506253385225098874224345787649648820434264020191264454746780940453164052866537522580518940456645429051911686744001115386412442922218936045978844574021793220068809174467157032175392396997938180755308694847367142425539313879678935890119367322000605814532911526301765252612194136718440762808412151156661819038257964494539760148175279044372667180695136321447256847907021449247853453217293540711037802910722404098626784172058022186813523746066068204235089892990801186670847575354336036338992791113576129305573388244411031712581143841174254700365853929725381642269268677006732144109325816941045607589310504460838502561576356867192921461251399688494785758706139011702250353346723486103633158397206548537243485071398618897453504659690373097619715714962721634437137122954581719230987944793441549105583880943322352377380523511991454608089416616160865421878459359021312501170255361144013908276280462853095774831732361350908783706372039226207518946671206216953288211495824885649350165469121276942413279994978409809239234851372136262544920638928005007398556721331680579916919766554318716127307384547843437927105386072274549693917789497869086018552481336424378681796814795329845891914858305108336798547825064699088388199354706711468699979555974254249670966890537610426884046583761404925504375470347746821763020373705552917222132226822843058333834293786064853648073404286532961203665135453824909118776717844745748308389611268793264881168283012209915360862825072884752330014824308085682380757072184784561020467933243530203251084395452397017715019528158879383451978342360980738740205142093109677742659525674457040387119997121449447292471155334265502209954184025394587023561666645413733795372957194411046138315045130109168451451376080005486617462735592881798499433623431968794729964456009058520771929037640731373947737292053752052029993103535014884560056387138744661732879927569094181614979740710868358618030405953554247790062588854972811725635283445431682889564804704766108946733010245186970898233608628545108894316132254130879658023316149379101638323647731316182274480452541113581455034870384138407229747820195301842847668690349922896011900188122989112973675153794903617770698599339349237538399771792616432721855236302407946436407676551347234239740977403355561992606614969707644152754355991341718802562738110585895755863562257749769164558819680935370570905579536294082276507899212058787912555957270376802657544647830662192401046350678521022383116167526614525426943447176060812311908996661806907181655936339159634662796220745598312424065611811756636984567420788039300667438838544490646323528458620131646901329009079403072352129898139023667726474489055111572623798082182626760376093106675858926960403344449934570570459890467262270696977894057876335181542893148005404797632474088244636950382431463712086217367089551150345989012305815429056561974941116979461952684503939699776895733316600855302100490109040101517697806928406246643410658477130571335131360310922675816813670890547553609453233017819121475940547354504654486343188743631902203829599832723584867833671518281998456948571171873774435601042513912849464706622823032208553387730768547132980073344146984327320863302685776060181089414883577755981270847757874783154465052899134027739255901499882594265817558283629764849469682326825144298425585255598503878510598042573026212218622967013387575084751638170943305505898687567509971173778680425487004062168404351206313878679002020717228090604640085624899225937432972791246991955314802212492577517600233926151460125451511554245200792032584283397814323898869140585458342592440217147394311488117895784800442674623488454827444457690702913983827725379097248691763975818020957557953840398792539541606756936451538925877056350530328003608433193946186064957027834691497361598889982150831609556145646347679286466870357044380058916978561099400838864026519401417601649967176786722871531858090370120279717158796870926879831205683571488617241521842006385709560014806567331448340594774860044550504022035717959395217992899323779259525828085798334473852496623115915113292512016616852068507758973965744501996726090604766841381933470231782221100945833382301740988244301674735115883969766245326666903829855156723068639555380155772560976168857480757853069547819053824963922798755418030996565260862959595469580347133986522165511831436093206612856209446269154157856925884299924805202954529430414342831722576859803533212337666175359824389787236026846372177073947148548827503366929555604231300570689825435001458955139847047427187654912095966996041634913207454813960392920886071326696182663149081388221031445374399296669342820765490264713763880247108895396602108639177686259437922783894935063916351004137076846467536170374737988597293233148898120311606766268904571437661265076841687496432097624609419290287019558842096211618906311000370206785397464815719474491386450047216382249002030877368403953555756885917987230006303444686978556727887823300880604487751410008223411640036571961901125556609149482181912520615416861562009783293078678476378173463748970236535726065171324310987682248594299876454755885468334320744071279082184385557481883929608363535331589975615502788095359998520166628387044216506628399660591040310016938831496492007846611712738593581716825588714424764907589455316771832930298990759713553236797615714677275352755705574682466827611365570758062979100652153958885089221408502459545736476040130248417041531773868405728201197545584708554859874970457499196291655988782551736767175165890058498131099609951455675305634258408756249459500483329218076835100260363439205752392121582410262710631756694849224010207517454963198881896063123846311036996003981255866965649661294823276636349776917101170346392144830198004025797305552308943430999489134345469255234163549119855761074965637171842802207300523812619881335989509547920984634468084890902667411027819154076169413768915963389472586269429448363828835670562670567914021125136345354741810591020671293499670126209878053873084239253651299130340358480899511800063810008023832110957569410179363084363000208189195133809834540005792674807329969295188914005536104377980751406727728251010090163166791396499231585624278830553766752350108756187325809599736412743605275903133937403387723921557349759267187151540564803616192555958631519233589524817880595637836066682591014279155295355510701253011162637046358106708317441281191326701899453570520445499601332439713695060510320005026708946423114361541652758843708737582298036055336512163361722421594016421681805410453792160471888446438113812009053222075363413020254088402780278943652890859298727184635564353444087183799902401007674041582631767975363322923068676519889000285396166638947386554392097305899464397236715613011274568126640917456601235414274545596246093469338786196396640787709536578663515665678560266195344013544241856902228324865218456429582477720439938678362142383724319781395588833552149159613291175183193022315041083262520811982035242399647627111106392477184942642433092784557898064393317556020219630429365621654792865308360509014902787158615960612483042920037543244664886891370552396831355845531240971711115371204347472152927094638427928727630832509767649201026750990948471943733174938582732802663191725459852827155932697728245099913915835140911260194647735371383024257687162879984765037517884187417851578077569978934393149724531418936467596295288026005369929792346352603272147601823282713564581523304344120057138679842788701766754959593449604406437157016881470481595669899144435524870158782210348324066288131795339999153374842618221952375814074781966193421899510855036273814808967543493334822052784891375856626277285581286294998651336524827302886137725422735378487258281763226047408700161053529350697440071440589782255407004057679984451045624044254613745037281642214908602176435090570972069005648978665499230958706008634307470525392590641116630326753061173099126299978693855435031237825533788673681579301974691506299084464229429432859903839870814622529609430225354973298178695875975450315866196047302579831415846993524371184789429292504433440743950013100171634394736094725616273108956849990657911697267981317679024596414828877125854037049886996234600936211497070422118946139970254412034217720896617828422793682709201962272696779449347130375684566529683416122079575488781936544557672455679686729101838513797281724914187398132110362651421243088617741416853905731787469911727054416184738267798345149066670840200124631159314913117368250164766413870040166733048888002541478789085652149547370648140250839344080562320554286442529260062098947663849183472496800741035417974376811758687340818156418104042633606285977462267122861172282816965690523920037667992461453062770524711181019538624335211636456356171024465888055180270334519980577647032914842471999437322920326908753729569569561123559349989250807754871208768609410491309779106740473646771539739879170404949003334874622234343595382286418256519446147184927632162860244793179109419471198826708402265129545199200951648467155738600397809054548564025326510033214199170535049176187719990895654962698639629082257557143968920497944804939802879880706489676759723506310403114313387036940556168148657251912294392178773854483866682385914359978786649936797336456534059557909906506033872859224897821058634841733373000858733973563558147202332503500349830041990140818458618616945688449088242216984067550360045884812315154671730730861374590246916384622262449200988063364085303561155264113327286272974065415412534211874831030316284538684789804295533647793728127945767068688434864810383166693259568178001699580565811950977369742544140840807441431283224165915186294362148632265237358573240071446893250822700770089421518427612146825724368838288991270482637484519958811148358934290255756472860677714065560492666618892672222354694190002180311114424096274102074717636366382826387299644297194140665715737232940837941661834434892701336719699071135079502215308853633162267519121225684080169877857310912366940968621304117537514151835103991002181535626574426476553069646427422393612690492247029596356048080108233924266231587692586909960258684554405439839621160082074347480385689769812475218395771594987044858889581030946473601328590908389906801482749428125952975682451135152073082691295562610475923527492008982411893396786050683824534876978993842481379276918579564029643903996596504560837269671740416592572413743822955689401271522616083112676959027324733470033607169650406065725341231055188836013266916327612158016838217727144187075249701171744263154594590877936686554208106650565730112473696889565802774752976911366496368037728397819836297208427158888946483287892694381189263005882359836456312178800794023457315769058039322458363368933491493320401633013812016121773360445868855955716762897722762871356028517684416712262715217813278158736214138105807362971645488704096725308682388683027408934751526810759659145038335888407243022880960622268032112905602338385200288361369656057293704935816265606982358268958140692493853426053909560930081727479756709035021006636400226871047055779264650667522247687186813237599156503104831272303717515785871822201953179803553704773517886469009459989957661098359750396802418348935863195017942175264266828626234851039348202846329573593681627879723032660993024735275404551484556261697504826387147233690041743356197763934332024209629123587804763747870585092612421649246900925012985685575421301581331514987505688561194104233357975046533887427463902845931548122450504806172425556237084766173474125612082282219304022445606877670706974884510328377515300306076657008246490095509119025627812229332499154789473728250644402453634977940889463832308598197873195326431153373853613981062179577346519031067213383931711167110582525391501847340287379151557551313781210277382915022838171128116153965276198285092668689366601592642235584397921020135995693601354461590566690167167024327004154824937554057985338057556584585533036901472403624978624379141088939205639527870636999978907643042340379950800197806120334216432772768134075504976534213208249801870490138210256854591715926366383498871223078411856697903919985889993688392533478130232636524755086024643827563883795447624752441256911401736066427776422981375603670017863272193199589001611491844159233390689449691253086059192058719136641079808244355324180549094707093285777962068611843530135322566614507946197823337831752708268093978751129475805920069457932313137319233182630061570760379981182143009841473054521658257284935828392321869941460509148336314445252803326772258469402666817376749359456610979715198675872204371651768033254907255489882637825803801107336849841338009562343114805823851839276191743406485061596079450178448161194843404345064087854121877959394935107999697437011366029268555469729654828694389963297801631247926228282712349647996100787708943828602987335096490554407711207666802121742346808089159768839737435593017193057247058913066968349551154727768378772380405109630918824571685574369752552529947290148395250954277766673295286403759854298585686486202448452048902494018167347469963714005376412398521041679721220771009384201094635138253476974937304128431930780950993815723060381025777446679753004379199610638186912478291635254614637534622204176848892763463902239464049545336793889065149400250661984909978256812765595433543706784516888894588950133599806771550940776963937010559406196114327797745053256973124471992021381510083530162611457825418011285142364418908894321968198557816672709726536229064980026698144505573634085000641155254333081457671045024966230371294659097667088488212854522713718910586657358482228161033858594264931410318439785676120437294580138683423809473861389258780853560791194627889304045098727356261808389560627983297425188792747716529338405188859046345496113965695661070292016946806253231683670548384536175004653017495277679918033022766377079025854626933151150024402713362111496029270384996684001605976731807904332680569511787844651232889590543720855271954904181585432624869851020665610096239970062441809656988789060575358585806998504616199679593489510973642395878595998808510203109621906208262741757529510636735914058330462561105048054845180457794429111415645704618820314720440817783531242081603228435548487536632167116387180356715440657847743924543858395111320622208848929420148597128380420840855658284985951445078216992698634398729836518935730241515650357623896535641348096471942180303310361901248364119912519658481796936375985869987003494289390876939139821646255724730355896022435797340681692435581147697932463637709175827307387346951823640250303248393599364073634321699093330797618879465220994350220521056572026140231581498432399129730147110210610595787017555786873320596639916242720337367013889071486649781228343491997726738254117438982403232364166881208286819671801666885873223627853359593003035293073191576504114604947672422426441555272933804493032050387572911022566223702110084829827631305472858259408753480545622408165293460063444354696017104548338887291061111266166386366412848238545490484189660543977580709071790288729628472323615202498409351076958378784210895534665303521620234975070910421002834692478196577517717312495828695451395730213812652630811057037531098835350909129284409751438443963382117161254480718635110572433678466734230564534475938231679365157726712625432225593702798007614771635848476637498038331785666554455862179756345658606267713027808060349752187541189372259368441766828975912104912335512333838277598633604784589353086633507793133157402665112398405038166536438051617586054268938987519556865114586978261574502148873763544325979736874885164911103088226765265769390906469126119017103781779758658572120712753419417468208195166688910119354524025350764367035070723927318051003392377254517563498320349869350446634949261999915964645728551758170732225647752388443336192517354293388022548791424461340269694796240467039102011346214538757392753395113317552948418066945105539670713852995998867633662013803175594024580157896030933341553017040674362941646785617275122889481242122596001583908437216623667532830047814871538781097493901809152133369058499981341464392570028671586049823610260750692086132487309234079527511231653810700462514588076481920159005788878502667417159657011217841227380797120809155587430212928225293248075908744076219244266495427309717272258117681465485454089587940939503206301611732995719518795790874431976331372797881935974956777773841263575175026179425157841804350312289560159522918419102257752695184225484497391965560174860826294848108323926101102634395174190618068592020356074775358861092080543817654405698897568764582725568728462495929026982392689703052189911425868059078470088270700114152357157139401818365750868427075997291794855465780934684322681576285214539550854482241921723830918803137545887973043521986147524375211754465974781001039390316317013758504982409291553906076838563744443423556640216008052523575057492728704429681001569208586572580556359694397526804510081398469114542626779551483874157104727653112289997591182552864610358049728655837325819013881424289329611807325788664408487482031055281298196271639154109845620566130493674362067828800453577890110412175872927352288301655544548717956383958591670926498601667053321635141078242170724218433168494225430485447918412820299264408313093071825078734347121250545864183209080020293238952040924428450730005421654600228815904955082084835201128724844929359322430067554315614243853656186009583546379739668106046484831154798882689325524684101073005493732406666038560574658476265372985525345967407809493262511299224909643405824652732511065512904109428319144117033332018474955490164108568591731893004901314111407701806925015258589024616421990617594434267015300443194077589651908173251742441770577379715750637844278756009619580049404221139942519655986756807770850594558548297948413725850964379985147153666486139619695358861720009117713438349273132106656221861146828046967932631089307153945223751614581163928568195330107595061567792947563809125219422454754328976709150308075504412396868760281834194639944068079485083841785398723001438936576177587516201086483956642832606500155767573936273125839212369896899055643430768754523673553168903269378267951893912556665993173155930551667790494343737295520170589658001484121182482305001482674186643399458820981369746116578571207763971736431962199375035488538700885538768955308309784522367631482317963248438324884264305074530629316571713795294290886477520942433450765565663507724619332016174768168242749626451300067648512597941487652261629786481615432715367154889164769110879655784434892570514209481044199838283160878824083465511236442814359677955032102664696180744238374935574187606192038587642141020828108909979199940128054589692458255780662904234021734394576770475865971092402562048686559250548673529585558082969376746086004185177769945737003442885150010948736400755071615167514889042768076532455639923295734396214169881566411157108475396357472362395700794758618161685285744994818090077231823461565658972629250876741387941709428332527742149004306686195881139370625249849750540306117615339207873176302743507266976650304346085490193322694406470042244723905979381130405775051736519936662531156496395002846412375693460212913367141240792009930589094000733582264768353304214210328896343593144349405490716290980260435048035566176800246076562994838115657465370511347587062897704085404945198315428264428235540770822698279946808334966512923610438536591245104302715396671387823297170683261741105153864594372142658443031313905789750547423113329198799782534094361020962813569586405029701140548767404040725252764907658962476931705374038019607518222666737745951119742097498020738290188733937230197381025338657479304674790780370116129291408334103855319027786524758407523983507917887764800771923315130030576804718768778316422115838567399234143473307204201705386295833239907286392422821332807806363284059943988266071307526880082293826453979930112369989903343186551848001385732383479311674185566887993399345659354533530720654456625452814464976440843844429402005405800851679538852760849144124352739421339354091555319306642904679015373297719010520173132827785094488788711117291402807228607879915546469146070091096340674348819657746025864590895969124671249300794325161252506551034113283746841967170890511745173359980041463505244816307351175993010310776856819070674445744671156342181997289942708990656588315544895094825362292706003143555081126448832511195225295444975975249903514454396078314321555883327168732689577737852740875277878542026330965736678841459665690301992941747126868984717053734863685904455682100657059614829476523971837749497839840170685750930981967487737924723269571312194389322895399137972912337171728481550189221980315022599685748614319061250887801155815569087287172670219269684846371019542520144838756315478235332488555373036804325105459799552907311913543679407142384644053768534699705564838969478840470587053744216225896239158354544974812248650674569513944775794929269377260919877994141786501049531199840309817085273496725508629060676496157376179851509112614709723549914876813059590511952893178907821048786757057408833493284118704794379040760740940423446578568455152038420075270235090378157160419017375821329004562071205967743881070846726236161837371476689949659226425972177148717325780255024790577541205416964362921553172137985180817404406331466032608953535050213254634259705878796986761621360573860007999991691840574726965862643848089870981131505778903576973194919824099695031902035961186126147713002387653666463370834519268771658830579561755316529200972934398948621383936573224670169660545817488820504721125472071367063316476641831731212558829526613908688234205470490391966007485728570124293040415553845114704394551088581729628817215474490374625357547936852010227437809073318361294410659435559597098828202487344688921971020329452485442141146120478404629634922058077622006746222855729304527817941939715703494590176926727395626916986920988483701554522558671755968908565400717785763917843023141361704328285676015795194351702078085195792344759158015171363434399450958813954313195763475226830202399674895761841178437718625924445769419738426364204151973576642503995764173973048696097953435294080666610784050767043119664916419680641951880359793715650682094345241126608560599814796886142435230654240884198777572457940803124184448812861653845892273933034013761002902217612589299790666988689939511028517787656644822842112026192136036168438367039409101672303618241579119102847369061553362599302506369066971911230576722898879161343390371630630305448039672384568335101255037804191322904102334482761199497773031728476981689242698443767889351620006156364860462086286843384488994299915481005890971939351238846365863523131279402980998368921410215895219289845970649279387091484595790080432884799715710179840302513359521706273036352238174085942948616631610398698414510352491760257025978394742381805600625749209496566429345724703911765745981221450726245266249876919580673726092300293742748581649472498954284883973957881019627594175132421945662618126505649935665029995394021863510267732371248340554800618868736234846836295949194762770488920083185136748814175090916165001830668581178810455900142461725888820309955922748795075163373107784534665383776470911339790886576102634671649050116131310880726753195796375944803869571441638614663861718913314812502958828847534365315821668362311840376456292581459076561264181891449158760067595776990375057852620295225176728800191162762322673585648126402270377522819969649534848295667007892358591174037718793929599908191185444504598400068495159416534037956689733654075599958432460352509600159825799049632071676469277117784140694310462197891933436267766974607434153139032840265932067108526047878571734112968837213589916748470851585253654821918721670830599277983212978791559795490156547770226680168521924077890773529439578355656698896315909269572857121969376122888665012435315505826372051119612411114975864144067795482334326479694794118714779494575052625710898368424570221035298530065359359591329632288306674927373555925746528143300972963655542271714393443897058173535463371081162425553198734845311103152486374061933410906421410515988707832602009990235654769966467892151485553654144657491063292636858302176644845853861520927254259038982743545077164068216274495827489546000949450773128037472147370350420303495597892335329396142748167130770525324804366666507859590289091854075061838269037471861181592025503071384043831029337174059719016722981806961608991976569987910637204842734264153302710821912119413069125012082545787513061994701009088995515365559263564824507909469963773459533708839668549357974741491511381958701178358922046224138351030654743880430601085236388015386304916219118866717554669952919738778220844712036495188947127141637859503926223202885370768876325045301412495038794436733412748907801509395302811082706707357123244057803544903483632135511833936256719827394263053653338032657178163710388648182298589648891253205554786601839636502251524201054876616321792001763922730640356108479244330460966744362685972923893343638978762640265357727099228053560928364976727529124408777283466617345718452476197152103525595352883990971466825458602778915682777308680442434138919667513180175823164491508208336182379576405934139254777905896170483229935117766499634387373145651391334904650552768213521865059576710835213359876643000709763675650724977059326007963890024198100816715398718232461931899523532492290162642782627872981596114922379330996439683392263027751839360966971302938328170934618105782330566554312603539306510441095095901382573913364492318128436000175359750425972080074249093697495564206964486747828633165595480412065110208903068363404752466805375968493632612417089864528513398137456526705776633755792823816410866129332089850072741829882929360041339200838604880560623236597950063312667790659324235304756360064661099281300954477075206545396404506844053694037820568040164274117270361869481894819156113814505711793222669572388486962659551679094666611300441756425625545700356186976231552631943403580825130721238372998250608314756164511700681042448142031975150975910740864427347538021122770176020828466816034795033564677776151577402814881696234157863388636646074841718912515073505813449612267732440859572253521543822323575988606190947358192376746091415470747694413468064749971492822078588682706976214196665357528866385963583545631620427537932221454350939576530628748789964863545250345284202025200859450949600068086258965124386367310791773682529778293260984518576521686089801722965371762639917280252376328106901238176696186202963865592762943223339946426850496694820594996511632038896436051031796713520918320817264779393592606880467752981943933653649446566021917859022201311978444373309857642835501083250099209021987584350709298887686378420868803069159633415932768062530826604872225750009762120681253545992610776506344635834453952425683087190927137112091008944541161152541706803709928765805689079775802096585989638569062307740244515004021533614542548005034963167931809197646728548175562446855757159076464862719901950538084438024099309143682883941030680357340094449822499899103722869707243259194866989494787401054168819529613031305231032593521880468923730116313168305368713199424376075649537633908418817233606428728366020185356695650183562997264347704411171267815579432757150225313172062743058393921759083664323617495095394172620584829907460651650846940460373121893406817033494817061753774592330640271661544593331901496421956571078977920539270598015415860303440329345000825324338371291546432021602566004683445048233360632108599825839776661586989848792441642388648368096134865286402924958735782491688140666200573952985951321374647540367513713091744334458837650736901103991567160711921625646034456709967602925750117124366183211827657392127033078228345409574703645910948972873554961280626104333997295603438688548307555658481475474845869332597791433309145562623820162853460701699503493174351375187609820152749205227468219120376785231628910657721008866815203261988217333880540046687076703953403052650257120258194671495518923343103832440039680891342423072023360904608195504668508594425614186264311036164186116673705706711107498924806852795533438768175165079536910461713922781377594136110260388140310468119088310797217429661634418234388408309199077404047269440264333370421481081875930691145566956396618998876537828633738692376352770548847604812820819855959686734843862009311733959552913123473304593120142006682722079142286840060772057116068329681437929872847072204880981747499324930697306960214540598114904180616618453625141576220537183572518917585907359650632726930211303352628168851621164312770279504441131569608483019690576516574535430328820832157099482102739238579089626888990344300843597386608027830407935232391381096329419666180961458779129212630871751379388886326815287025383570069813103069024579535046843968525803723399690146094281328386421843532361960610975871767145511481994990694086068840623840064027885276624125914674786718923302626016400139146834061828224800132762449358729362247465220594007631644402954295213216692201269619216571787522737999230272326049944742920954071522176238888680811523056230397659756013475327980196269119775187062747976864590750454288016146660564605784041802976874945280656076702412264428170967799318077043679598062824133714167517247834739366065544303138627771275116118447927572712036043444331374007224618595268558000829122767791508996998084504114567393777854171587479160699216898654884175071401821404869954322304970780510400498181049708999275846768212273632775287176191126761636957235403258442480251079754844978497972604785899421414400065059262731506518661262361441431371536065069150969833944794206781757198496475269306452321604748317256761718577194004128466518218496606570671485563290878837519145768113452583679381994626231979024788863566672227997014310951777368410058485945911478863837337440242614395287385945122446739062799460599115842425424074246733620107691060798848364107285917620923422318771597787911883405891204413647125645093996341547029038340510408622233900353319540549375356298600871813396192013690560169177261761447855230126593943048150027480057573555064840549360805567928535749724690505015884687417034172938117288381626548272235265850200657930178683682947789251017131188513872733421731088455901860419874882979217952930729640974170846799794575710858492579700092642753447240558546561155754795698855562747565083988922486141632166440984923960130891116627706096266995072659673856070066447872830959071863523834882438761619200457772630546424376850179004057878818933481567629357514306717154557395406036865898504878147582780826930843695385895894361830787671425833354620611287247089134350457314403584605639204087186335840894709335952164338974650328119157849965544177661203954363082023200101164082886640917968471708639564886348190545684423017693508055349307201840992131448664790347987416537839977736019726989722087050587226850947566816341839732146008543854897323173224467138812953837281342533488364095110311867108234468388180792073698699626779477842854357911402446622535502270678141401123708279486628517670091867514140274013021584516901087945338953227080221547886477711967248092720443322366228919062633008457750116633556177236897725649158401569725804074786730807892934401304971111916730633517573164874856633272687379997194240520333560441487581312607370547296449280393678971469644395193068476649350383391074975608460102555620812312294495303973380675400548056409800765309519624117994980358859414417396583831851791238042890483953719591018755299834745038765438505775596332416737164960689796918550333539127126641396985965331932337634562240399798064955243789008779343917641620044894165787800365926903902256811181078025196029320519252414440989739326291913200506654221848462367734018147069123846664375093171789129306385231239979686299541290218237691594500827365947988422311969190467350219728052627584267256990328218103846343908628880811306054368736498988092693751889189204679291070127709848159678820970868353850427753647868427805427134017521373038380914275589345235378651810896681572200056595180994465021258232028351300650163479932486254265275485296156736317487370282903341817025468431603451980454618288521356139324241212308829154501293359908681567870377441940206676234596655868844661386282574687640783564799025795302770423824789066601860297339567135552574751498540212205126897116654485193314885706573714831332302907459532415608920643518308391398265332973266373575853467435442864027657121401925118011154157863608579265024824496868581403077057956874585717115976034313196083202928564038603779767569852283060043770714027962441432237092754511824884227233579884020125323927333142080235589818663820939586617733055646521726576333753152951843163551097795311866470511425238568975741202877765876451507000683833823622186225716005390974473239968698246474897744235950582204430121078217652943097424234471347694842352427499322721596817548816995024219462830187423720187071588125451978381411800303332991715036952008262583749056015596383682956150015030406943959760506642646317087320873215128393322841179612004431192476704078858471289937088850291842789804390904007720368401135819530693677017698011027212358784098903374443380760018907455665685580204316165079872404684513652741493686515657236016770375087530310826605632134938272876004014683644394271962095259266958777242709753236030490091948061677716446671968610224462205627065229109808677705147808120039540888004619826832794616419114537612349690659586983325636921333082558620738366094508791477649301486980763540670040416901621295328089232513355305413437728084761808874035847638156742277821018993895744003194566083393054418648708052300735712262391437006356534400560800580358461632687934501006834947032387656536628779086172795875048331909600204868509999213224397987996004562437834170217926176621337674569576694615663093505225948139775458957892955152044120685348106044448080965211073714981291587860878038615184277783882202138331000694094909848947911533065445124460630686732953470171372813191396735506426286424096745300862821280414793935028140595963807671295669242499945127391898160681666821211387427938580428501044652591455712386019210072666217150952913116575131610538045354109674305854385218941242105523912083826212866141511298494261116118706851389302864874767804892664856275399044456740188623839501190480961529447834942763556960822553899664293240445519949772602155894799556904103521417117645418045814270182238922512875442257908429287437038305585398246235304616544319490555619535318246341974433002143712164584234213160471355138821921711141769604756122521992139208388780127644987120425934050209580575954482992551441979445430479446581124715090100411625118384923437617373718647468035971128014205841117581509709841123123491260861769161232725233984734214816723405340140495586388864977781616783448364855119210676923203171856501700996576881422858680351356081933789436801256034218914104997771058698280033688936452313363935755781542457603274905504360582792151547538627839245705351365173039630159404781752535605400800366050858836982808668862921397109979690752094482034720131131724445583748873142576913094756243600831807962705060118624688913001403902429642790913018101365949396007523548185217716863890190051599629763960894767846427946998769235884858262898322479285569108005681533870695542548162090862146059247385705429774239896650628227450845542030896755551600128037910009829910732141890217299675005540184595396377314577447885224831022820269629675045547030710163250349813845221259042091828584680052290787924461031820637050925736121918111559686017667650672768196182712053980357546361968882424974607335654994225115447308927579004654285895881027862950892403953054756454010856066484671804338745245464498992843605108136764649724399742812847812858229013286852097217195106861134141359357672609491516785060614051499809746778621504025727539360108066026033090418926638674723282173036365997860543692915414078271494380155235464491483921595335614482215115447360857793983097351455571965339480727671235157378427978632770324097369643709006930989772764051756455943327991834889389313370263018787019380680864963210383776766385183409043629662585388599018856076131828756025311499601189948204900349223456573212097556606020106718711195069258447550926106911901975836944302272353883299609965985330581488174291299107810199757143214061531210859769989916090793410195055038209499409094382356381416412212311775590145159281974655271760416459511899226742977834356442867892587840237772018422786273225974089234548832067702890537999262524671604568058145617803280644780849775040417555393988056773116596594164998242921627182030761172680891974288069271859796354316779623699049089685471937741239397820343892672012724376323704797399898642380966429811287480153444801197941706474036778168007136626235580508833249909061656298379410424588240892672095901840219007407484155425329149759393938253264139161461252688812874279951804224908656302197319968632552965547042366655604197319233095332303403323209597679871559335132117160395048505423717746348201638472988763232945842752443034219878226349610990597041926896888115158038210034145046462551389089276475574873364917353399971094344080206217315975462049514984297717387204007689944530240984283650079986554041137008059023166881156050793097234649086112324697573383926099971362103104998411770087678583790712822899467155306010446516045433834169293461724406582092186616088022035176118685642717923884771854903173374707954780996240671180760194808887942125955421596222662518777374293174931468025079543201134129606781383303110572326527569086969992004553438257572011549085371345580043999928878233079996667429227151164905105838783274827700069905982749801154490667912435201908233091130359636016738757964476390923146811565856908836511522086542828721758819610100948606196375622014413043383667701974893435807138501159700994907657972130786214583896284961901419645758898946867903261821614051925779045522525198203634070410492776818463689879064893235553294803126769352919494477044252133548616670118275724553625732790980864216916821722782815390881298704823681088529274603625893976043992718163206243629913444650187582745804212738044404509406015469924301640756265629087031568757529761913380428467472103386638010812736306408733413587151871202125309894895982419400451189086183691832634990911827466830119645074246586072220166461654972232886884787536505501769877541936653658503596090435344631665569937609086930609012188205187889185649234345675571017585439326031443108094565595912116804358561642708099379934485168799824494416947354770502584216338727930734118675299341230580043599469273611207773441908050531732863788457292974360158444276542129897450381956843263457091101763582966064505895357483706369260285375993516388335599203283285740764608578277529229897305263928457508638061120871025527126666801619742902422689426015069195561945723221793169257212819811204430502319311587333386934622392320036086321771880252768535914255260135489088334591079152265603140328929757009245390656690621585333056533307703834078530277782422835923618015325021025857640393021939268334220037746564703452949252678821545278168074243956423774287536273724143321569324391261187379497372251533757743529505277395121027633713736670343990999261624863968350473268359772214513886317905822043238764274635529165384411349034693703882110757099604339955307545016355022211458959329792395725088272560407328063825694645809392763726751915256819476079989596579607664351656220574053012537074780304968642826856522997937403552000544970208558629972311934842438243237259592996273129958549423834154849021290007195165799359299809729028125326845829355352520321693186830559270343708348024584486532939675850959283538075297178580916877160454541334541976137024552630491153866250768343868584349712830407541801354196376762916819243792393438771227392632555084294910563639764963044965829609566925497767406234701324454042494280854728375097395257227646642577823224163839121579595321450073259859106252231801529381524662569936924045832541756979920142461888126274968848035820988175707175790974243301299938168554479243266751347643536960838424330194599138797883387565777639198627401079766698868045679871308910804370476646407227867810794450481331405377488590883380071367850123021241724722178300578958304448370532550881314491653458394678919380009797384717509600002914975065493172774891062590978586178019986216761388248958245815685257077232203611403365979511988598921277039901360776115146712433423616269168727472014546600117159636213299203057696786068581033159542361199800258372881453020256872689488249411817166433277274828967313108730125676898168661293845210615064718008801125661531034458183393896735733602384008418705279960534267915436545015766479872668493502842125586154680053162818790723814225628744700419556280935767316423642099894591751897032083904044017789521807066569444979998374286827056800255112247127900921588164018119304496072984056327537717094443170937862817222379962571898314885112475255022742704576899611108553499659072071923615159538127514619416469775778413019720924570075267906588370270855745574407893460056073183151363936420748645475853082711801686314804373213670134748352717910477329529118474606667856978612411099309650177267338081800615736847144118743524220220143272632518517576332769878296629860073762525868337465877302019887087633512914433273080240289708142023532807166201244281266698910393842405590235429184671002984657316772386824246494217216306779031705728150266624511161226170773429350271151012877998086102986907033442700950382870478152203856000692660812732299234422202277530753469099310538560142686967407548617268124749000282708623311157814328894975979162941060697979862541765587956729239439337408697999503118718052224098220874923102219813028311191077626504645622211985979437781868331989035018427066214488143924383485726487239396080486783048124268904001147125677994926896636630356808545193429691267486266807033239024688531831942610857773019869873062731536274554109712129486239297220595071167151753194655409760972227957025758028278217546096334066433702826301963299768638530866170729684466930157952315088704114223204826283660875049262369377236685585886079978017146295879655037945560773970011482334551198566764935497595568605824355982466038249826139086998872888502040230174256302026483557116794256115358747463350657178568355473709492180975566729589186683017927793923172694183427993170657398564707328545545466967189982605175189090265967788130876334651444016569021793226153811350870155047437181430825123250803113431208520133914680638356023784978057073125435676121298125581472785551492728223388428069625853898459523370584779605763421691038905122477847745034175136197169445353222620227342516466082914466331511227075357425739626120931047654342691654247243778981046143813311976261897137402096225956015185202501776350703772013774864491882282798195033685151244334863455040759061099146869738484515929456928272377753054837451575830768313027961542663972171000962748877016684017160643604349524832212709693561032945252503791400831093933795530390775345772565499386081636486114024051452750973877009107638054212409218979763940572880785955423205290558118927479932432283688789772606829762285990032068726416331917470588509837876732694499569591495510796858223192489180032429222351632091351984451934420693033486310936850954672042107931720902145601079084495911720800294586996548141713526809473024471590740582821442987900991128742478436330226617030149112738307606659619371459042803517754711192400164592967610402984346929534903080987668701493878255462244312489686814129669780551341367147928404445930136045190737236001582670379817715265141356320074885725321437271951416079092667599119307349371093981283851899020512608007802785610284267547973816382001105295935193640982156061463511723357848231637174285258600875957594209738570268875395940685348479702089193297074973219983511061378933092687380935179606864212803920106008781351930401218008471299105330960741172419054245544185045546833947369884894377842360398653370796829924057212355604436522292152835776571036893292178582738451031087073343021396565913907571152841410750681282221558307713963561734144736662847879656814734913805366681228271809756318040324505973567493560243441153787914690372939454489639490785379083348173582777866796116628207180071530979184066642949994118909474621799939889949828565154397979633153852786413286229742194315603400477019573004325361236647033687098543543987226396895651648857114871729377529346986906106452485540236629292776423629376375121780626234222388579340506807930225857515991864121754329334634858991167962904395614016874435253287416343720041694961135925459030205110714661343553608657368318235935186742376640486573392406479936461929869597554265070230075661992324300848737225844208043607946359503343260744467275643074448443594843280938401278519831351253492311133734299777973843030113801834118464349072684991198985759703788924747626585102995365617665190615852076828983122158237342906023146608624200675739764848906007322218584138377334500352854389436834986244758651847098578539632906122603880411504900774723139501018506778327795376000006449469493806891692542371538594679757678685959035579346225378003978763254603023396553236858948290076540340061626648192503488722012233244711737484739885207355723732751735280372110236374132071009167716844936254434798116306988490685458938737661775524952860234104231166574643938697342694763949523093909150994002395534076468897562226948625025213871488940834426376578821266414444712090829049391963018830742602838610084557282485353514905898372521324140177840143118473161064516471794973933522782064385167941912683434399451951662163086852034465473916821277435593066008150910089025278509537700828487048125805623368924651608676152628355471795089882789874694714679513324715218296430018688014370279844367050349948996008621285373262571224796195456216561502577739186603867699147340204662742205141529409076513611035939511621660928142145738601169107669562734822856527508248685128154272084544639230660906270211809059049044639382907626924031125332642483322588833308046116316731695160683602045467610630349880821054917656942131270070374583511888454633910168771920430971781079364707091554037470719321112208426658411730580161612021496960519621744926175047766667592279746201893271117284979428001422848772623048668160492135099015399287226374018463947515520286361015689140902330795314826626099044088961960683592697433605842122918384388940431557165249156495375296238938007609720181854109206171613201171010297829578065801492005363929488130603745056572451731190150401844288817011384480889514857871578641596387678066980250631233073301119782498807991667496772201512532122494774801033515048804726814062538030556252795502025909565880752221199056596366979729458979572488411003691387926490012852242066312640702251061397527103668199734442954678366778968684435703017238038983456038052709599524456838447435342679787575711120069012456105871916079213482071210938702039983629957194578694018804665223030196228682166222287712950055025088563179994312952611178572270140576718425984694604641993372301155841264044607345294986940816326839404910605572339970009901753332914452901248474230107900681535151909856289802230316617318844318472721786621404980644610065005269750960067608194934651033896344236274896790927662175669245286930416382611478580448352263723837387723950350886572804964098812622530397149625719191109450501036942013734063594089404047512066069595429218563878327739248976488649603215905954982908350963394209053403530961969472458673040571741634908948052610104075219937137138316648079889197688719163918527919128399590973671737517981598280769660872147177810296900247856779879033559277955014965910026053420966302433431116625897193892717181425045751456587571601574628084649870952523950807416751554410080166768425245160582662285785932517687636136705544369295064358316140311164897132031277187417040714891546196564513290147330437898733743859690367031248487073145234748341764536259835392136695403870852551272299284905116119471486830120724767450905683622656422876450471309925706921772729902713754736138290602888636524212156457345814799746887423925975672817705650420300561670627729484117493875081966533706977688954134612408274247681850531624424047676134929540032836932541107416734363176681101023312999927724361389306117558496489815414333722479151940614580254376307715609270663681188306051391908821118320751220730211330070832597449220635910166039869852001687106578935025458431590906227801167530259281966805611493304565041856479799969970379407403476186059968603332191596141390525479337353525730016154538213636610378291335725387110338103885429804003369911470979594091112476582587833619510051498568182194065886626341508986232572001512776880234385654281057554554434665920063957850444728289738463120911380253425977370569179265049217483516542969659769613335351291867882892168207548476325451978258714318546796719620480553822603763808756392288514232785430640674613314434283453613995164653653378070875389610776835938911252295653332434485590877248708030369332444471536678731480863922307326837053051385973528320559005085813095874461259856070391563593918142898218279472952353296614022134149745659300271261218237894408772931918910550445927591158992122572720132446459624701675200734812378080102123821592590454756579719048122980918988076175305054771229179900202792855872897217670001494404158129309280245471859800166549100912269121483190555097878421096082508128493876124750378482975907015973925357104009960283939521372714667151144085358939865472847156510122515415348270129970341747648512228998802067116956951024491900210390432097949422651727028803759145803495726137341672272614319471470783870797340417297015441420187034251137741847642188451261887900755533095925571809712373796655615987136040951132120901794481565320408494298103480711382308309094175177610797639739667186862106412437456558357407428259718410510911224546285084561637862963495173386919868811021393494314747351726633107474296874238165526315467418277622114601925326423801975246771752364177347533310282099679947684637831839120968746369272818511629267786040212707720352736112467917710568865272838706018833499770812117257605017355586051727621038468895127731829517857986770051881604402055504936670657220059680941037194422925986564739229356346435064209101607173189166249013608911554341424951990053049000414369313028757686969009975850794477513683784888020175172949595866199598146881705105477745174107661018568964741021096664150270019701114242533253173845506774629726625697669228919213596840510679778764745307308669240081313069581179907014622234167911732668019166899527600454415405638242210590915639012058199954840309851853147142074589303609798290687732495915588263691219098978772215545832048785727136272656890035276946512638687787204282094285905536708871228401214215796452230668005385849835869955238869047785460887096211215893188851895466107058857232118257249732338168885735448485568123885621261121464143995968391029809690063171947702255497447529934986678076994156457892990956281723954997612311699858342323811440986544568653784022110242394748708840053317816023058319609915899084443211534154672890297861519977720084217455361048984784544083703150102886868615049658072365774792098840089885640590825442131002912279701929064853201759525087437997680342224890253172739149950957821260202264212085133816526386087772569668603003051602828113287896621139239234342599899494508161009023628812471412345944144390897750782168269386396917400329175561062568501910540962143799576905424541228571974442391466095539198917824005934207150299162750420001267373121344520389161681816476193568731911907325812527139936224822672520747956388159615298706591405381168398536472917037801922565467819622315853587520158245939990686592302945467825654804850667151060300541249804466525332036371910369822012444540254274927996417817565432891501295393754578648186793780783952536529622938707482615991792072184564995817380592270083224426436323695108930984088274875500159209813337371318818923111024196186034612187555294681781035240075762520324018088624339406357717831780540805946145222064763469836186457770784498433980684097455804537929434959612736684416834078485812024978384124164829145744392240297440644545047547529283690988890153606480047047757961074772433996488219402891299373664375984524613968460715335282102722422952311658399883403776741819276796945403645593124573241108903765205461124147573032745709526426678326285421086544624288425958595571951006835698306446949539623103388371721630035413522095135775832391918567955972827167880692052104975886273558291275640615698036660447464943265633578175567240037615543392714732286492814218920502007665873387732157031378552830566338301513226100008628091355762534152930401940662390822454572147169230319391183065638155384239670342630169865727124067698796141981068130594634290513995604372570231697830501328916815936595028664643085836659436633141762566378308076932726164551271392609563856086252675720322391702978659537528359994434846775696146804508441148087516288225352981208801485287626612786405173199894697467902689237610364905537193159924480307014975909438335185670300520886635802931807678083798457121140498286433061623719388270416478576385270235793655095516767108614885251239854291551800046175831686514969674552006250361801867459755513528591582352624198850657456775975782361028163191498230227831654164710109930319468957777790074827816567437968980234084269945001354110349531116537816797180919177741486749434674520255828245913175983042036105589629408551091379081139286627671672983194581704471872116820239190678923593522579128668448536710889420993239925593044506514039593644471186204625888950990563934437897146512794620021537304400879878436083362093373043517865636287270336515904606622909971195823540650245249129313650005257243866692110456389580183021736143501787573267356836287546946592238053783184009503720238296256905724186023870711763604702732785999934516808265432662976399097923830742888551807921582620320028886786767459156668286542812449180924093556492867306535589328056535708808996850378478886292154290836184758383551195053727033511232318878840286638846292946252330987410991218035477311446068201281789955467164907577487659691852832508200207190550020195561435554055603399761638326901280916614561200128822951853131873276465335020641561056756869400527488621147409522797886037907451816313457775043324298600625145585265359634790060782550357965063444415407500558138910077616602755452660148965578498086324858690890377928162319629546064958220375850509594517469488357828025064682690067304125942974619957794620911602000262671927589833486715189763840394945195227342309702487482432047837214226197426428470914550186432553065432970548799871908336465551961562417114559772451705295526539293101983093376278083909189300459833739855803319903274510959723897393918456434670182269121622786293928827258021704906083180064712025543740906593969496724849656968863460040906855141624475520308139694741655784613883656231717746822162534822097174827145832926577175251252262787888898808206704807307982492109394203567843541385778578948137843986635696833626587439039234395181045078621651811848045513939615075316049576619819012768639605442643405462095788870270992047241465051819124199154808020699868024437510502423426309506875028228184139729734479337326455194002206474255142767179800033530613388036800537245207779508022140322372656036136059070196936114808814455945055338557745456072440117029110529239231611190870837111408366241166052387372571723371591421872715474058387916952380139908531534079566154716597590105992500320922462034578994197876783697391222992959499403194222148966121173584762584587645631268649698582229371717588025628990017165904280363773875065987531980195526708487302015055131185179369401773586784646257319647842826832982094497804049581648157610631443575227178638874809295538939814284214697340976186964488929542688378260917507443897731212119624859468232227119911381804586374361419364712096837147909682076465256961832600555720821914192081222068173389125887087684253635026001268783982203821091244181094911825543357352994472346153563731369427450041001774442191043890897240432416252448289337579450440649043729345462473309826898454479867802083772579443497319011739930357455270287609949996147599621548959751236289766899699891332394845122109078281891863746736983060342454140349705003912595875829120740577759263083507563391422998574631821673254025854621311356982782076892354346028990689498782101113654982986408223243003480164822289509664524650609307337788327901963007733125631862746955190078395701262756577338034978250851021068949109304306939923363211769073914916799852202451867716907711932032209164740369689727960049137832512588110127702814096666778754382010465958880011854833560747434030088758928832347250686170852859405795664154038381994806769862022956172087083935858186959893746292275616692188259464637507854714252438495230422304915682948777182936459373413569008488570167788068276612398367488203315559370187667658083229942786550209725165026171557834791784715486130858456258548375626040416037115241567236982126164333050533042283875723170471512186293427821746069536754668722560356558181553344026301375585275942327966782559181015919079530519137134884259992245999635133266419248604177478841830868601683283676303753693937820710091394448653040634601686609381883374815932566418856206407018318047766101998500621650468543216492496869900614459610252552299409121841782000869399239331395283884645956584095219746081108713583761518873300118958587752838965023266008013626669300980782091740098845304579619163955710554037382509537465594503119816203210089555056779511126652043341263013767213709476813802625404502312743859669361741602244288183913636857659225782334371706045073441920267646149369523640661323858103561939292050200292298504538894784513893253238310591717719129853214775048209412739905393506896131279141621237337721336450051089079274610922565829213381106032118046015945408415346731705492674928423296210702339655424346219718842036689147156118245054944086612254901985412637025047735627355247580603103130848974513526428384898439590157973746857280432453490239034494504691184998517149117756170193830394403499967785243792584951998581353234061653134529065629789134485198735185479284710618991414614802397108240694332005643587452652394572518477193818511720310292412320545792290053415387210630092571673781459705559870371709548825705936342510731872442665499843431326940217584808895941165377875407001135934056561341051339084480070097952634929785573243501893997172380361960415845146595802098888353454727351553098227496201499399030287518416610650158211627495430346535506149117143403435601579027042109289185125532276612067793411444789755163411724446151049874030496677272162705930997974570462451914198333826909100378070841288707956196813294874593431737679503130181997542947388677400038738081469841180451852535399251511151539545683563323209862782038882642272408493429645797471376118647855905237487190212404507283233893966095159028799843543524326402053782702290443197354032079346548807489464641728465154636280702648973703071430272552505329878060404550399650041073727924653849070362666299157001100008863744900906845232864796029343204719265946214525016288544388832650208348505660499426867630587365475869249747863674521656294169073038428246882703505268823808915126959525838970726577425882910717448531983945115490767377067456446938696710467232082190992490000072896398624526644174929669876055804725937734096086803545435385861042124833446660743941526666749289359006619989462937121012608798877858401560841187174167443325249318297677504817602103039296640201683696913584689583100227357737193243926671152209019590067046089937719217872034091184489157059953897956282610016640864311325558272987371640578094166012625672761680146179298922420090831061523741556357301664253781053704152055362785894839351890858231673645790593836702399520312351552863490686857339501535276602697520471336907661013888210635706882544817769601368163464921645555492170251875185495449453239976449640089739160551128555842072512206806769862429350199908097676570107083044898160685579201914087157448582745598587079751829848747074344154076602712844795828263872803925207384606849279003716824544122886982852060873741299944889924085766068196164947536364758938909192543554669301516038088912845738969747298413892192258768310398242955519495359875878537560074708272086189462506373036602055677838619942739302547149178463322144991030250793316501921637162763153905822234050522675025739341691299667670312986441902432210614241347087629415324517822688408500967172354376499775957789070628749536831410255921878837691182096870991743497728027781998592819454072520882959879777040971460727527084088110233345819106577548219250897043480804778236048176492431978065465706766765389955082963214392965523201817367685332447852650397980160308734391281798227169515453213888497710524608849513372953646364027755558976610238147459638509808025942194339295528016694520011826056190518930801490148001917851793227679226317422771520291833738033580395918932462574208165183534213954987517108817649864443037802080340801968719382699278539976599163902828703565956852273979969968142808629438914580669018449067472292487462590337372685762075280930085275860063898763169502903563232707330276550998283702328466430179299823910802102528681772097906316297060863374355916796664879663272172750614630331590548043156648446460022613665655756644415185953179355321895065833094426644116451741491414909039569560834019682087913894062100346431017871903516252240193164841084737158768812634636020425973418032844443123479452891235236680784783881120593952825805894404427035622442646894990308667064739762067071844813653127830083483682951503051788448452752202631713504108700792852689108755000943793223283298662865034583708159950293083244488765915676717365422640514297072724697126854812298395937096359084605880931926966317318591500273310008285694109617300853155078034427718680974868559949666179754424570814952109495292011896343006039386919525768435745413643735634342195149018518148476484030933150955601038728686235681270042418704301789046195590415161977859586147166125842677818340582176365490576231094327956847077196259997801520379479790293841717300883074253789041657674406488781633147461279183926226974096728241022565306848741413508333975531517789224105752803833885990683904188083208335607995824349537965810856343640600845626099565833315911271532486281423903833904992151867629740963082935741852752477827573404214342041576806829548496048792809057977290381990180189169551809588185714585025902423258211579589708787177821529749146478334371544137527050156349612224363094616855413140663846455159576293612963909067914142506153523813968359024162069104343080727270402762114725725480062226983128116972103086549857872527447481920813136093953617987234244762232518099317439879890273638014642399997722004652496973671858196410814329048772876075033030529279972333899324601373162685535597825291489861250124226632341299326728004724878368357752605657491317323106142289129313317295188375668615159555651048034562758138011062422224888345648336642199179337372825916069213028285818037964851655396053383080202828599605305091360103116202999638301556989077002205529546610660583875319910802020425748388174764742474723434459314200753439973316040856899919374127117025902413139917223532755435094913860421491540339103098839307989629363904040678425128032216179799690817635743480925020668079368780386784411353338796283928168732527656774447999912651496707526545151540256133797946185414084004930021489998021567297992330368002968389992299779169715343114783217415088259510225905548893144720765708799124864667782981422702623236361713636866684953110901563540349079851291012502239782902865154893907130014107970647277840746961857603478043808137571159316507979330829323214566367794914187250161860066554760636953277157767655588638716313407255010969263902353240198578989545978729010523047981531543449166590312400478858668741925327793495335954024131546903027974227704622163308011460786648817084747454202664345621228799135376036648472369563852861000930155180810949533054511530393192335381903438611518292497967458413188872557256619166501800475099790166513954782675934797210444980647363700128680369332434479921812761408660172280830974386983912808538466781629146762145194341092950685447857771639060545113258625883683797501289659695778697645505827064832215832458254045666290735246554545659376001176326377000406325014104013041662339475007190650600605346410922277788071608217784389344799004721544098572049670324332229085547075666895918565045836522722486898829015163705100429196883439857450190889661663691020734887708674834966334532704243179384462018732923173723705236764231414256966453971941227885163505612695944780727668699848983334807318694433489996978644015680758450065885415598807276588143587884401379147125203883340981595231339720252119947656262321915463042666002136059174576615727421738745478331167866546837162533004817472558220621686776079589697325138768426530961415299848049228635876228420875502540300868804468878742399908277421217671019025746728791322490296001501707938599826736442596295281903097148485662980142052833263534635183677060803638774486244285315209418362146744958176292712301628339918025894721486565853335404665283200117632288960636719834815208060433200283140110856115183842693711501549668890484145455504074129235989662212938969822279820625082573937690021030921972702386290055384389774910359942819749307217563472091996995142640759280443625095781975512272987712805197158913882828484657306581392536198754618287678938423897709603649273965261380427463884674526117980334878179043546786082042903249382771589110427159583068813029210357198789595395900874836589054608699458635698471662328205173427752083968300270846850238767028557493256302472535296114539309920397953350433199104841317615939216442344371757209177271091286548177461902222861727394144621402113341566009101709634832839237245372108562215975553679825000284650004459412273717556389091036043038683682948326093097744199570630346790068876442472719761105489743147898300426565173675507005675695639386425382842715189447885945982496918976465926332350974397593434084112125373547972188559313711536083151281841784563353397457639319154745950404098555649115103866175553902462950447502803929223442547458768578611210564292617907471207165137059960635549493823912176182168688856711310707096288711987545447872744257460703468238727852172478352993614755727668698728334643822069889510541556212131961903920046684002615305703397105678525602459761918954734278802704070550917871709233073637510279371265233324252457601200788376825483730566207102677987770408549790025058572307727377888411735388789894104150194963806454775250380252733618316065179728519949606483988923106634636587622660149479699498085349311008343285452366795112845918175230800769282875877617867742977651164572332023172391231235405651574489710806458995170368689356075630719656545842963758883008023691967512323400508391280278489660844288535981049848669106581345627468311176111314243715708518062263532674175851002431080297605468797167254584968247817032416857034618754570515878518874495655107174858894364930344312808975301764156834032642233705203513025808777299870972434011418978470847349656283472026210098429774081009993323023471869777849257856419594905022265455883678951686900212078615427564611733860440620565765646055119191833131263735658844588698941344923725811022762247891626057295015227869039636174361604487440175245235958539194734759907240308446269739034593937091621485511245772628940079316909353100820735546562171298559250097614119880501283106808462509251239522040533826370974868513752702433121631905236508953882722575965661675994198665289287318045396088699398618457999505470442757154688050343549893609767932636705696290569826745708195148315510805470909773946793568933821638289379321418606392459175329680964422087944031500895619860717543141385653993554269326962784245559504165235311216048372096410535755725089384582522714840174643200277540484552604100160484416101592676320909870082685920145449003313358378512113642523882612900038256335095844748506722252726241375105154187744825617410765803963067209818024951320324320318687989308454500262722613998053646846027094320110123897071618019139148948886422551789992016246507188375526969552573979095435338041668595045101315472277066737150865078419066238561013657513295598768697440823168310012052691846991758211053267394736284101165945435932773084909143566888521965291602258925275450193324495961845610954385157178444448465553698011158675584265021022156504434064998650965163880773271943045684635849584875632361118869035153614710850256714819448123988436016338129324202143224650678713915111996947753900705721467175277723372506978566048229957287753287405798928999405620756125735236578094775025707170785896784986626963176828512930749665140658109114468432520034860671471808885672361423732587351041816654640768802770440439743518834502293829423197403707695060001956006375587408210659217325900238903162199553911230954848202919531567586005220829717981399537091232051160189697284998448463937846801676917727431371248022100036475793418168674560330908103346218970739639069221578321098443154927719817330220459443400764264887074937658278655904727225051311822263855968340662331235197290296073362791524595508731565361103185185746954145773324944103318138693572163180602999482761439499355267741116112584513268669656438566012711872359725253659739437443564086396499056489561469471696799889039105647662296868598593945520375108034208842159494029210371143517368149010222716719638855374682607850065064113664986741071608502111300146296394256236905936827564906590936713806500213938746120653376005905809552792209755155475851676921081686485939548898160609688868399841992645385949152025957877569561182533621135678786090012095228118678259245097638115692599792091840940268572387704956308447852743399649914778789889675027238515803944278697684140421108061645312955123109000761208011690202732796195627695275804395942774867854715124124319538042131022589743329414524466005780905316113530420355249865295055742946817027323486655302632498103826562997070827044290157044885664794339275275065502637008872236065284891780341274945502464648303418972264894271477502119739560909439727877317929521348030460023588729403905246520056784704463683426118416373035523141547901401953412469392774393291011136377803295390551559881552509739899636606247516872051431640900573129276124512669649954839396013292471408268651814528519027798004006075015299991287937307300150728762400240222659123821300070216719663598536449907548075235341236655732803122313897460956556379683162367431711062740947932603648619650516318862580809197159235094344416229282573602530429109889315905599799138268656905471123423351296504565059284434629054858461368230869949453341666937250297063394914337396504131578953036849625304723266184580592974381960617179184738132122295283669082478653380652795944016659857991304403049542603136334373707585044931161659521854480293359211999713592421386053323186185654879020283233871525295021534841450793033149250779384361204549441334114261864518922530165192293827918598588809261815333711882491655798294493766479725093316574490156766685620032917711515217339537508424119986938766949138269540628792505108748281278755285231643030676444992036922629615878949872010850088517759996375593569794344983722679344737854778805866966684538493860690506119351878072815243689254293950145797181045092199414125106280628411351606213050672178092743676516544068688986216391335181482921382457066449089465461730472993468607163179553521747167294540930751551661067086818435849471780520947884420530924237794197649928126227713721196860174675978730638472607228503148758632064743177650535525498936016299739299099242579857480593715884199316682572877122935229884051340300342408433108429385686859101440839933819743767366445031220273835482820378757979852611404671120977857072635052740523481884446169437891036094019485698543946907115552887964569548507504308247511449625130652713923921036348651939857754649203170626774252303656992294227952754398727647865798470351551280356826445692330202360060493834337086706472870972601381205596560071886792243532228550799276679788480448604326072346406117491635089127270197075912966492710758506756793013707499106555404335386745820653472100615095610282995709443563676261936946379184480112390512213475348286689057313699685601204841849032091974021765712412803656530950828364175615057662193875646563997627145061001335709408981238562523251595596064351823180944935769414057711169787097276434052670844744255585611973443138782249201443499398572912677021381941173387950911025894564112722864160740790804159613797478733090564766555665319888506662589265627943815983984499152361110451295322993330771844021321134520681301040815416312779174727632834823679702887007580420080385082027205816966453778372375445686240215847333745090159778466089414504021546523021290260235679624457780244850101149206703006658225317760697803191461964090773782848391271639053678254425388918002566682986415181515792390141712304986521315842927491848969122000685741188544941306200870293419407888422922448882046697191378797430117189738674189971197397155081109762371985002134327806515786433428774513824069949718584339902331806907749157785462087683835950137400191325543580057797076183192093127678778924997641039906547675109953517569880948052628749551427232008097083068588641988293397536690902086816081680978257242246684595574053535780543491966155074874674892638447935834387560946609658367387369471886055596995228314040776131294473014023305558710300561406116801082676125069460160373296712009326746760094113379747889408054348958827436733238152260359090235009810802016157649713326677452589167325725881981759557393652235622369098969322160949256644546043331586167911000214912279329203133133316149337119063613514680169095611280732370737749977483268656469632856503873317456509066386866177128792119005811901956574435056884814626517057231218432962315961968951500140555272150004050567379884336134034072524939671705997362595241387648621907952260692103386315221228981170138296496323071891423269518772218731070191420470037773513920284796636320178011755722776972647367521001746892560342111506839694708840841288702545644272880004637769598615757517953476674376772375244659630389379906344905411960835835486418913622779373327429462300010655860368294589850290351338432787804990887696250302590380127594680661667339925355369443979867369278013814321113537279805798782953848532082170890329446683201404162637772635790175651470432610908876172486462102565411302095917300817193627134109997321110100847309377233035691064894770826412271878496864925875622313488799805253620533532152139309996728324074683794311268922839993106570629111638795235864530857331824913595708788685985117926099212593472735027072658494372136804129025356020983886230447170621097878388293748145577917465691865765970869094331381716972385431917615883093167598648465268206239431401145791140098511925663772481698410869896203935482178979317582790043161670985160933332879730851450620051021270815953908025583756925202535074808779171496006437292512263771105268283061123546244271802418168745684535910432605372774190034680931899101938184485540277892763915452897545978953224594504120296359618438299693156700947464884571130182087137651167938239961934077950118339625651286494372117745825997194961262291856717875368035521864496379049793526483832561617907180907998421909071570707804268006369652640171165592029306999314473775830736231250321298336767021299867990130110748711739483513676244374482264307161822281059421112625386534323910044547517560976157075903291737883849027705834234720361472003099176535393463334654288571713397767555342462471295783901477130848739274577018453492104356769246011906985224415776835817563300405136211852956365616131000815665102193831162545075090499876519927363906122704393574364890533668172712872165297107518458627039286001840552054685435916509470783461404797812801543399099142586510365113998249139427238943842111817010153539451707340067066580834561582156397960022214056640290974573640331828782653525036927180473997435675341019390844354122155340091960981247339028566079893234548366161787772188724751986810207475088479319105296976685434503191958859841860067269491822039928729457086980006424813776271714262172270627746524801146817295519768916153249449103434005635868826365387625620255586993864116508997810286297110039201344143110597827826982675778983139616784196512339271247459575082501150650661766220719649441206666502512576778269995425964589019728103054808507645238755414078220282587543375418868585053224966055037104504691121359137844039154390354051913633881333500759495723205167267968872763119772782898469998606317730632194410313968288407204595155810136519059192522850964324178555292129543158849034164230924529337339256260284323449152214660617080734624525330338107928525721602218377873759270203270403685988351674881217128091490264806601990776583025456562013313396983470515865323514089870493189361518338635362304408382685027696653463815973160112361440326449989165656206600733249115896539111699013939196358567173694448491111966745277409148328242194435493738924102295978295929317972130386677593957736688767418079509303362877293315325532911730554617231220974428775614547856222422749770379297374353298082553667304902275474632341997408861201877652576974853303700974649237715828107552139860148034358979349127477362871404744954925180251886717438296704472350524890108548515557116098663294868257916642196231013842457793307965778237148166003276142599255381067799961340160800662049672742795436118442938958355251697827510831805741660449034043566780225006612263864965751474532653337563677035143234098037414421138948143745439972014429440515295351845241399257366364278641365145536093112913263250797885811892826511086026903200407032456848713375303838802959608121604208656316706167468110564693490779431768051852197770418670882971472823453172264215575431743557746433010769358394490568664395870266053420298347934703093004778245962784857693413738634122913532768397713971777487944979896460657049133209142793835074085435262822591312372011138248661247529771840559142981785141765069151007674541389471139722073127859304648573068788803907329841453833931861129297251812790030978309721666007236635745815633383523276666949640805748300336204449122618763271353920110969259040011404031259934487189420916882125384828030617014281905667893443270127093543414517481812056254621417420859174889320780202379449004290802922161844726238289461922698258700471061775544179691226082401129966214934852947265641786489863358361083877294414113521088179906767033560849963378642654428255523820971934518844253950532046964880992807371407934585747573541942269346076178573020135576657512275750645253573521991118990575074348063311119655531387682073251660120327741851084687194189505191681754650383760774963177265292284863564232021716436718749273175101709752658835116308720625668405766159461691544764509410529879574453370104665399302799609662109347151981926483341991408505150573175766833975283596663986051791706069816580376186949938466755615419476811482019833199832033818540640134108041300338023648422610771954159042181290156834100201706449882757407602169680305231329183410601308595528696130139865755449792810703040233954142488146640831942930677443881954725252493115640295617147091555421815124934526078689942085805474911051350933711494266889750800084664154952017917329127882390910327591914744672779757549868033415796833304627660999186579554162306937120765927213742583076052725104354081417639082477781146007631182726645041329284354091854102442573404379754388716467191219545946433801943829111325469817711501465074290669304444809012076764617397700800547998145559855195446049933739474853124142293837801700658378793470711920636799476235256643023546834004738805724894480294326531355755117939299401777438458632542360620779421997022103629202043687889438299424852770663817127011116587077757260574039104629839745596527762301247777995090070064588229324394423020071957871112237167455213983103116145033192440460840590672844836002923563111997491870902514759575496768357653150231332197654194046736672405452735409918186229231214806974581925516987391902079076909013057655798350053549917659677991616531093094471254456741841330081573276219066771909676503725645679226915582130601523783247883792124600072392980163209504771744630347095573249778233135280337860937586533042243245237873397536116237930173207953559860494674633055812513348273248215872085240602866234179956632265495739923190534960219705761028172922655658252359753630445430146826439347604599197077756195914872088049956071979354053308511783720969557765061487041068335703217319570403329004122495201899483277048355487969033200704379102360601802723138955213933201418638052747508727197822019032323554387328689068910850211326103419026326516122722906466083708554967274936798902208874698954503619172069825070906857745958768937348001195521510615949501868396894251724501882285535431659432041126714973625480308180537473086490117205672358058103557636586212716681261275004130125155833201038560027155442414076891080059791313932605414382776516986151243736542805847578212468801687444414533035230002093869763498168681374664265264011405683003383209942702185414828122675329059618101904524500732519752548767362157380155278765840135469166704177975771063885057494558980565580653879161221249154114452116490819860811140962083229472877974736620821092253740734381326513079357479131612821632910155713931488947402579486864213765255554496941177612937314173292184072683717564880816520923255695806310157887631051274808054481298567159013664912825358275174060518125599182711591811448256244363874776617244400839869859627471949171168583036919551776029663531971416828557239275382190760089514580966148689853536199927485709756549233227893612558442476517897272265888964668896745167945847464066443151149098706360458014379689990957374786962085797830916572692198913102733513974369701729335339267319812326001213548601179552033223010576033931497183066022426882136657066723085244319047578257354797387900883393398463198441745536815047970171136507184553233574856313509992148742450719181430877335585052902658671959959501484627236803973152003468820780715481031488292722027137239080561936732590659761957612044758789449499016173203116684358372362385583221174691958165557788666737463923955168337725293821855590879376577181137637793737715475534827676048175057783704276248197116137095176955366337751902446050659540920777093789223014528725179353732745622739780816319471341411315461066896808145962015851150053139983797670618360886575184055129378947868373293740003223157813465370847353407112781617174655611108820953885011431249976489663766020811834577860590494877283040144385010280998584116580976065527183673384806977513190234627212153860083707443624242115755579108743924849118536710990690330602698120843399963730286907115948581640383036397280045306265437344023548316312920086732503184391744573953852383502756102072838620746076232758540482732911365486182803005028515986819678318184659425223716913442022948307447527992595823019669961864436004900608151308998522752706151848577953566340904054091204127911076513872768824858576900205883345963301529922405775302331890388875569965653225437891979579270481927154924032171900239540894652947518649299266861085715784441665751783363894496376407131786564859048735114304997252939517615144516977422272652052090664653924489088193546891294461241426971130881724281853248376594057195907046825458091571266673249527152530548261577385243061500165104164202677680687142501921483248198495120151344193152495576832438366703720764391432343806394070792955495708203067637803079933887277908934708210051023799062050953234184162830275326017314594454415961638341807438800069755342299925058689796525378325508879966651327629731202545818925839733603162796027322386166618380582258093386048093631504810678332083703320703719967726740061828274282328255025347105003532597956799127489472601331502856897460424837995076032370495780338029417492642970635271217785176758443928976787359183258389123821058533706922526988164449704760527504710650100879122943713639303343514314298946800566058294801829994681902017662159315621560009727692646936167173510017898185881598765579860952947490665943208427905610502070452548795183097470671774310849901182324247066313238133690158280980862305767608550829591047433652839573189011726565650040655694143551861534229494971444609904961413723756415368630075222969633408743571569104796915237516431386893956925540183784256190322571157051555981415771846573706543792898627552731269614240105648758751249376095716387940766671800988000753855015823571042544980986672641851358414472103228897960912635759672576673664345895488659801195967734090990900031492369203924038808052035355802387919352106960564956663567950626551766873615216994876745736541611229576698056879110364504862179538719497410992207740039086006931115334678247426854439428060516018969320419774442221194763718632172334220891089068367565370114842888727320734929053609117235410205403600846210037943405049585367373134670273103454793389332892783896925467031288943828879781731499850860851160082368226297585931333744350144490016267995153321079375221923554370827704930308022575988335140659916546461329125421593590498728059048691633465185189148645329841216175689008756732032359167536557697290893822776885108662055935064110102783678034521298391723502158426872993920799087634702198991931921229206366021230849096599861317245740012535339079993780667785644215027055658366534651717390277674376247264264761822168724214215091986305879534246172867332049344152803254912917165116732899231181241497519932575794636196831142646000167479608905417743001501696644108233499644302798043399941163807086312709942699164163018877899165468576588277110913877764571027687693843167583696502720331754718571580312651494292135967724926112849412975937160011405441924216015008277841086119475472377121432573057048264347520843296803707544185105531684747834587677876027007969279317287318562003772322942954435802541538842803165307507246230308414860406790624337633905791927921114179781493549636204950868267964918244555511658785414992140990688430394842649886129678687740777631966580353668891182302977357726314467130848700115665733966835732409742437012740463635928994251495646426368462619016792294259791439019462312687703226628640978936649997733119628284385512747711242763674375742867513402292855788927164101468399454166978154224234163781714047462471116009024694422720145167566859636252666298518370376126803655338166701912741296229846864698157788882277848538873650626429638273060181482713602153418005122501765739934527859117266673777234949840930727083087426334309793685953144683698042130461198542625834498692406428081807683011460519007376677603053489626135719949534432671945815068619256622904655471862138695920643190213824069878664476730061411337631662617392079027720082977318509528589201681781041940183159559060615512986540776859690384352561671352589315251264284658969528850391663077873893269569754764691823244594780935006812452611563817986108098334885604525930757868463735451561573260687851875084411317515314668936849186105710372099297576064011846132554771971472220503100579728537788226406297490089613042119334098247570125362865150974847404622079887734460212184100690037444282668076931968646340856937538599146105502293233781193809206776336638320747453498640643278023398261891453645457120104228918351269596053255727348289702987344740966737822169951315927381780978834789979046433452076391634999939815702202354139568264904805332134387809772889718270244172523915953943681722436979811863718732476208726578744283758619468908406703977176639146740142197552556303753625177807736000432133546398230155008911301863037039544267882383385366417018441062602245702082474191350786204499880972157848286958876425805513010527614662801412091105379422692820213925159809190399568083486402063348265013754879445828983609773716439283875469234014460023751825292891578874646672861552976853947883659955782027133310434009073440040722152258364360231256156936173145884957017223458220661573522468026990637692887457357902759586548027016018717738669915103939285166712594231954055700159360130885120203889646189445910633629254343152283586397711473591192865481606070657482711985106859847799799578316530798276860870451074028473214894879607573833972743715465534815780276794575584377328122854791588251723519608266488522752500054304900217210830080464287719915967411575810976611661201162956851893505608685807081991122734172319455648952629366282585364464511209537895579072488464365531450989660130606702590377923979165953325794735955835071376874170374295135101833543391459512808416848061948943450188003190783182311891190126643008490411060613852340720553537963173480592465480577071490563279054825869051550205135077042912823436402483983310558555309271274188812273326443293176738045502352908566735470255603108626398654014628889150452157419247138402576121703456655412882286622907665535786249674155049276408773524540829829152226469659111973276503678063435377008900574086488195325332480441636942048428986151284531307752472759543652974369308088989077795172974925970514877217232227100130459695203120314175664389292354256560061480486854674418523019279056128790337103341223769043787973619990159537708646953781225183026358889001065893722266981775698593760677761483750461299211141489407841860662724254655102693751844688801332920807236833180392796104911828847582980825772158516876582427847041851572100823735119966788442727002372243419904237952865316932559987209481557657878521091206266287981259201332157647963338439485215592224546093314056866118214257298724560086108761917925397363164119345428914725955167925423351767735579596480518066387469399770330492714251884857759344228231029934675099115501230515798989604706468936138857671728153207484161959125303928258065225458176013677666015379616801483007962495310265300525295223953417018868208476003834388972145572554018466654850644462201794095521221091945940796515071805886296643100308927476775433159516124503945987873372240184720884920923677789409692499113756633224897892882238332152087638294583367083715669397762379977892346001688937318095185824710064999329439306986079173812714559734533714949458272391179561258879199511339714135732949602274073933568272458772011708231775567411654316972995536768395475125672019062020215933615769621303344897905344284132747524352620039742010769030613389103098344192263666484257038698576819267589549909513076691479012743025147768929514430989252957735349863781153103301936653472414070826487067904774943165528834984574229939884024887633515820872974167732978876227423730384313218081345378736416207138189216790774285737826270442854149991568664680444751148451311688805000986463097018443776921721112762108830462006240708284120011706833008691538477270640167784600287297030354588560831896989372552156423510570402560760069897525251680077009640262232213854434458110096214648041642684991864508292999692236513435813234745992053850451850414650244013425780258643529004845789609599189275448338161979090356499685841804684646539228360972825184120793136520995361297652952504641234606730160228739572164206602043686644747639833095101297390956510503293497107602181185281563139799851928680855868328609336402912679196339694599905912042561762698897152520676962467027848073902408479211411973305332981621153324255475078996833810309286676798799698754858034215998776811479949722577228954879301257037751669298230180858446983307884497535145701845882150997008233580712794808668269340608721704459006641793197100712519956827941891576716402894430972595040348220816968650774901621757177743657742281377287468901722285154204049167860027487879852182455738448819998724730739974294636810289234397940311826261792799701729670433506208433099979558978216563860297887274923915671665084755637751429369472467191425862600137446024025869108045451382353916547076839809489762133859196394713259131613854787281717204867703192685868147202957175056114378699726920493906770542148380559694273132042198147938890812004641036419647353600676815886158313476259721242551882390877487498903889803109150904776737998185773658427525761828434879774165602826124882041680967348321449715935755763136497124813504063245809307963796284861822633643388270191680735618821283108928454239694168601507388633846302612399886144548078857144772910828982638076855668689493630672039661097515673954315101468123749886306218101001553274527465832126776024600417365260507125394969322943178424550854394192837021199170195613608578698411643400456496301976378010171583406721857703330815328700111888408505433584272583830520302135938003392132665926435669258184850041215440076211982994207032503329984624319675216209199811198565070791590949861234094949413066314056270903039168953354758759491633160711043069364085240217596754403006499661664901162776979180238865700462437536134233989173121624577505848822008070779820447296687377129990112961078417961526967891256552621578969943946285584607377111658216472217204739087407206072921341315023689742045648659093938286146871018569158100420969560380537108840963006508795674148310117058538376283073720986485987447555132753809717799439714979185426783600089939396040795262966184230822885984720203397816912760197190388200084422658451776297137098512746648982004610937246229925185618725182036193231493724598877122926070427436175425624638641184245438405437581510633188588577952396381946632467303476382657877083559150856787301706670126070835962783612189231618610756238943191505773898510258246346667506023381955471320270152372975879069869074373983126236603464706189391889952957760806565535167956254997575458524319822990083823933292484731367715137027390145767830977398682459560477654461471040657540595276435445943883038735965796859500732435022215975659464691480391119354657570592582180470795480374024061674093928931460311693136376361680156549599151490666892850661616675622984402765156217184368993531060273144893362236665455205241727918935501661466134674678003867202713518619617889775045630519867900104682512266410363162743106973997479495875471109432645819488922744179147026594509319416503396527548241351124709228228670628170471010164595321525645247699528982610144228140851379466267116061360941742715223181863001433928140928846662218885528070541958972760202091300991634706683341618813898983755390698781594569698461872706115250284662702969701579152985549342587821148552775002439041437593384002963141827775370306142011595548908042403980745267989349005623934223880890157986835294908853652027346656688868684707916099780062814933849175680959999575672442227427884797528122708122197235854159962888076727112869287023325819602895891267483212304317732826665937156486632458598426084115344829170305220331588757338170667318457231482626434623654701007583327758321585305835159615624476864800202405135944632715587484102899462266384790847621440988521705748813768479834689699002614769188130873995319260733299176675997768731337018866057866181812654094651276209599234665075803559500785652719894792655193976750028660762929662283977315992294210351158304458796781452094248548425295203152171803564968351180507582935670608739966149505207254737953865199020321281333180797954705162787987639478238205532945080113481609211824627535916062845249674969162169253980756473568026249479755585428159286354841384367120658275960612607877155234281995373511454811046295786903116030848675429485031400665629818039932105362835656020912571883440767492882136777291240426834875905585400277143564028252497295429790318844790298083581126493595459173691411436926975920485487384618148713867251898084731505874329669117937441952035895541648606263595372281655214653759559873128214055586482751701932446888218287447766945370211130933041251009163777711937438634273385676578239735805064473360141374812412955074077517035021785300178210241392923647761861956358733003147029634210031899530246967111954130392038257592391610688305680513455712253114354607218698599689262686614939410387978867792579340714105414952081293129847098848130052127400959829927320815109406416039294752369161815932178438186564935717350879785739092182760730282529433354789438900049740971480021555414508802966769916108710330702637625005895485360952807483770311585152355566920900142087910440310371427718374996111467694128162931294878422557881585770792262311048753778609413509915885834977793391652263748027292531374170663639486416422473262946941771004168881743262471066996009822145677941751465675640234964577960536471409015729596078977694981872935222998338033208581643401187348273252087285517352616235531001388710506129823505119373368969619533806565659735990864002561523517952669278696703656163020697925831301132216360761441910688776799428369855084241693973096154978734536563287918306776503708793639880366378497007241686144006198849086541999867038904135648714283675443733220175306857197789885728393997080586236017677909731254502206962990910897180662930628283925722057390732165487691864544380469115032358514596582798298980023590028039071072129600592992925787874307958779202407238495503230755266993398477886341400832763066113164613050173744365826407900161185173112424902884483263632041499704969545447593375633940505260458040302661274371629098519628497013891233589730200601059371465339305843763572335366116491032676311202838910053668252886816397037946799453755200919576746134980169211614963728330991164752504148989483208316676090853116067815901249512901491621934038601834658175625560943260715601007589320445339993206078084571037314553659854921098544585797869149004352726313758075962788505521243698892680025559732852843229319455477413092144683394270220713862177220781669608956885926984056676932210916784943283644863631011222568168506460159362573788976392803804729446093792267348317071327764838383848170416745703685698142942316667186317330595631959956924486487394744345654384417007911522990430736563851170752071276636652096085439497823189062414654779643007293921661658766359551685843263816106646500224475896639544889284371483738563669298286116589515234037987605783525708688247803508466707312056633887639830782006435283194859928608609603867577742207909097841327794386078182789334004458335759264500046085365267204173060819377119316705948268565422146600963198614484987939773482512747564795333781295771448000130108954207713473912520894947318474070763312575648296553420435277040471493013736635534140233404942743565725556738540479405301765518236867538669299104224302800249755899388362835166429560021871252234442886080944761402622548917028418011026043904743823515882332794495020206442607214854099675446244846004338654261406498154292858977481457996301815581083478136931668556785448452207778507404474106510449301611699975585879466305418593866316848931000247543127160601948660725249920629805848576125407085695089585255941495443033758346067449252478508998377391943428713670170886335888848195429206603732161400996576118100316588138450893448526548125263374080048944283592014579585458733376681580427123163466359324797852326862870671973438531242688397441266694102321505899170251455208849603004130007462559032124140447906422855031778553091641219589378074692487854752263194456705871430423340576759695770088774398078718104026366032885554063424221345846336018821474875157958418411529671603797155944792194696589494335279603706052921116464761563237263331974184232930447267119846678325561924139194042812068962985892975065018536182287300398712388114663046190586004240103737807743193781332984103405619006886985345996198930751251382959458737504536093649160439549799427112196360474943124593660122499916225765099349040909874082289929926004955112503840532973715679628877635670476518671845655138125949842167446728584469445583448968262113205727698862288172267636389583697009651673657470170702925644958727802555198839063400673423467711978578292975823041216019600747661697096137595208302351190070454989646610097741663922098729443898607788726317169286416455516175371087539704719784733152236445246709668272762762921654827668176614453723101319305147550122508371184974324715926196552576221838297016560554538510412256684880933892027512013449477749359540091005584264100045869724118351329830831456280869624040206840435190181582686259739078647422576301571058099952407419607431454130786894407079731668068934169913053775682914173526833312361913187051422686971379272342726414066839701302211380985836711694548186055841740850527923568035222023151129271831708194192590329329760318761368947954424787894007110199105312540524156755433354540929228351360415497067347792579115386554791887138920423615055640784083913582866709291846596607703852491482502279299199542856593290419386570254272279762957609126234856446142432041125757225504800311686394878562760886941606903911367939836254125214562568110646645455610239346782066895719580237940432183586976015332509807346961109482506520944525500160446603427201555275420701782199076709841650996089928832835315373290752937949442509488538436115572939039061576345617502990912391751562858819400567220032072874790269275206865575563598408444897616871008436480974404042857731868945941580922611601979313695123973904747100604362395551171340348397020438028112283308352608527799017092224664888236644689528308636358552306279380629850162714910827147246955765485343297762291283355019485908568338996697898203480047721175900955214873619224881036135500477643566049788820985326365744304420984739927615890223754060208099231139445676293525471145219844270641502724675127690156593389095120924615424346937673851327294954090624035302317465048995955447339474362700350178633665028806829820190540878783933556863002109297167414643671020777181878388047009955082934113194231888598438628697134537626775608296099878047756025790215108914725191042674130197220885539942500278007087518472091228973677823920233680965584630969399948930403583308396020942864475218769195700854982126963835951178716492240357883633461197347838496680725196659516323851796653766028674175166754579803410907100266606158688222499078051389511296367484895503896002547111854354210712138008582143685920075835925549257638328886380402050209727663798416210539593930977388388906271044619649599672402223025350688426817912571922593058483897437136304240795193148852679521448412889474461925637800049330264301637760032949558783710452219887812772021801721424054354517082362213238399512250503414143552778875446807011603892011721060061068393044590645527391559162039776205826503948153651637555833363635316687410201742309660937305055996612170155878003019577152031167197099740858559294302119857363686615562309696504229933356856205812152188365821503604417016410800361760856628738066212801054425609068076701738611558385669824652394720540474055491722110849056052752437824770056467227256346116432270201193879844280191578097839899329813956169097738581890096843073877501555701655737691353256168323698903039356011449083832005487690147578254220569762624850497736290558629843916421531502222986550257302300515694362540323220919476218517994086725213120327179062598470209152434071617648002775650390214633969901065292857990934751345629256020223224984299495066006411146710504985107751014782426023175009332199541803801785133733843644174232342335391062101722423225273439639852581247437906757306863805199075088198755909869644610101118395232952457853199822392001754156519774340660469514913740313248963655637387559441094302793557265553827427310565642363625411924786372972627063621620716739031034640404389357098321739091216085265457001590375916160238240848786656855081469477601435271620161930783099179832273789493885826377095934324844074108248695517414019642572026754220822414980145874817101331868073939115014506795215802920488002380539513792753414767597618115645006001950446763346116408895295793038248850594031517289512912170087714328436668752175014473254500564047710972590560530510332651385479516105124400830486972194782428415910797214132906302972825954719643973424548360900797441282940304101680531940911013731337833242319150314776108680752275854021515727139036263940537514638076496820042586039705905918133315866742922287037850605414546060847818994604246514567130615536438363647264140404355966655942947179242284830909628246925693830044919434730347688473304009074653617954304359299061859977639453003182858771288262813969656030720798514232440114010878620359160239812931753146964947386271095240657255191128093041179425261956140480573603432924051613898870847971413944909694752786198097152139133110945856648242168963200283977838383357967895294678337915834892115216479339907664143433890714160549353775392499751204091553931526174012186680583300127699766159658201476321701100002589470696343632079616188247449867245291940121009112626284105139397914170827013171968109936002868892357903391442600747368387015772445179386044372520385177632950582665940025423485281628851260309271595022433636268199355913364526352678590422795215048315811938366287234600953170840711737047529753580832017378031871934185144532700159164963043455472921344166321481863684707947049995106010479830805971627146607395983518594192210144335503874842134169577201433416886956839347917122250173858494204224807435511729196479927541086828074386158874792019701386863318469377131891389645106850398497307926567223811312293323178717651538230651953858478169303776078332231234234613775401012524656811628132861494271700999960685606586608954478665617227166577846988977650118442495090594266735413089592939447361958232108922101264813401239630917029661659359645488878596747224243994541051495751092236496103472127434294130096253087488771651906505182497007903296623971510443554517191146808452772980560303939154890451904585689629794666871642841349661792485579810600202371376944637340581855997673830850778958511891748120604320401886063086243127977379323676982847212611263853484668391816466441167094581329992866746150268172200640460542977234153104955723825212173437092363834461094394140918778309288546895111704043439901497592929676396761351425556108444934011134539911447520373734765310469653766480050458177023191300497946311729375973476084435961949867299671483247146243582663534526656348184349240008725579673501270957546006171538689512516583116581783192024759004374599895150424048640829993328963600429070836673936863660075232915160870361181387031897585875702171880017295132365194878207855805601619115817746083024901270715019914618633334059701578200334972308666950392611219776594095112141794153336532697850205814048166152078181162069714499625583207047572084453876432734257720932397592207894450111717868573031619037772717765087253350190411417719460358381810977677201465837120040174206525170064917162742463454367581849513293102868713378752314877901666692839866729320592105253586009466098366302221648489499113502740004154603806200922626019166085687372114986978214316070636686922102651755365841023052481856639220069759519745187438595664657630165020362703952032965799013996595319977863673338516090418070994400096012189737239328782384641805168502319151252806153540017976425981989319609329318984462588425627751334607577371942639704467257016855993353634676766550304005593250155720729878196940181307137939206779323466800795527270483669567116677617848293348070932144693535249417550534338531947254686421936796963417804328366449261751759719402737643188492669483834892773469372892857936983620204313348866876434444181015177746914420572583001203378592414022542902736484183275201415326209412306192569242053645203738550411648311663700010663972635890116163931119726526097109951436771474554569620261783717400231291103368112099847308293516654820787501283994197850159783173468585833236553434624657203779157122532406394925705221737204750519634730905536689263941298287930251588577740213511625630406880837207527173133471940916881739165384050136307445375259338372188805214030520341758701671719780888482346904603196891070692366894262413362074378499027128559477393502155270209179824614929434289995464385668443132452047355594384331903326509579522040324649390087325630373961535097576351919424380157865537403176292998585224348257682029878796405320414155561113078297271926071955019460582933992162220002395779982650172703016688276366047311328537449169808525449312308628660396507932129382889169211572648624581081345678645887466326550056745750095836077656052156548759897146316500621709468496236829572790973540904752979653327103926195693452534293935316131879987569035422195129245638783249431174959914589655296447404863765942436092494508716974839111413859980508692648691475481037660043924258258440316306998258144643342243275590125351711562592167671147050789668445039696184116807177829375398196151623966827133579532355504052243718536409105515302346449268251523275388805861665291207762414172544909987459889921187290561537909999356104394427785395214577959959032391872188589826984787880762804714395404557830025971576567641087327135080696524425093914646381195390799688370277594742930741852666182839359430531818870900973189886345545075025912480259506159434221107880511950886118478192093754564809955990968908530710525416013277935045528204435689803374249164279279210292483279426172746621193611334259716919529059432104384185354889369826213805744219478797616524724542895569008579214046199381436356114594194537054621466661312424847553631471443340198725397290168072230048339150760635349863765348695415567806329909235512827994590169584834524702396088648661166307831162636228548058749028984259329642232026395319356793938517868966534274597958945275394987714606689304405683276332678440054661239099385972272948073576107362305716120167675803503326472907643615768845295419580724934456711502884114959134730038273970276608473965846800402349337934582801483753869161556082541017661300931091382697517605063184792387706051281094161724658722817594985835031194020289400489822985369607397752769098137984028263320430380793737726337441068922200996081292165656023997836049700732417052427558296764912228747994242852046161444701263711868696070267613483839023023809002585515507758471499803974847825871937588034854691290098039980186543353687756345151283506679928770187844393442397511603658663075726058789173398682366257647484779919343168048377518563362181074748619774712384179165733215248319991299498440898453084013222044716093908520224664438227636753591670673815531967654981309021591429981991958435037018982803700888460899906070440262172968848900693166490469998368661183769944745277880243987243652168908509691133100291327793742815613872615129474226665790518964337310815156024539411409852882068325702096893494133988456093545589721187945433470160319974115133115580405176072297177717897997513432756957918139211963764462486592467868915068080118801274398568873491696812693670221736070535199602219512390114221407052604333064036789340469206099106024871919919442300148892226582736217817707143369235238870889837637972104705419320491067986284917666149401158175960583060592101697667973997329421517706844675794559792116390822676112624631560775291676974820148446901653882779181272125171005207619153493426041638205327035989850140099533293394105671447796239238334635934365771965536690868958921816313553055221413002679952665899777404061478526078272322000120395253791489444627147721421594383520718385602714503212921646953070497206333700633200096129688523358910977132363125957724749344735341617686411055708049899714105838683607788997706104277513220933543377559793785383887683226714785823433617537813667778253951058517924087985334852538961186449493404727057073975588665506605309732152800061861529067141708643771487711205963364577966007700455176015739641794146554477952479600048872822911532265853566901699244514504833466519545334882223162860747105628018900318598475544489818577797212719534892243441437260125460420132207858386407870895546101108034469895430136332199315699478808508597473873938462801813452944319078309784526295276687237499804488878512409819634912327483398353018706464354920026000004502399261357252544298138187382406926950652546699430552481811560602377784612359642159613519431091486089837147716918847809695454956331082110079753558717994879278117563885085887582072408278423794563045678507096971561329269199323436681053333926043945819830696965817239441083649502964895444363373174261845188313701820780017185179845312965018004424823624990392174808362578587531659360276747557637232082656664370413788398893130347305476506888907571240271653303979042749662872132250709841442755474231637003543797229452351340709887374492457861314334349598432415034349732109027735311968919278318345510157855144580829650751353161272449122013220265339453701654154507316739111613875086734811008352345433674627597703002446102440060481265293153057333712767741895346647983146608303271503771167680948047237014967843046748930408404328691535652683643871575290011581434808921337462603484757466833934961471066815144380379454002297653462396765018392279157142097741160888589033607858904814002065076921318275074054298763337510282495482954352041166723259254231000340182072433879533699155303241232535066546080178956433260901570875092897584223113867950397860427666642048929100382487199181402418523448025181585231947585963598277411914742002293698458234880777546922668925699510818148609951890685292901510930962925823979487058061754945200881482321599316892258168889734033198344595116851909640423563499653830792088748793938799711914166301442889363056768102050556819337971990652539682401651987492853393595606721361925851588236306823301056131417112673571816623729129630657867402276510379381967819654234463941871662490134439060279253392786957750498061367135013667626869083174254612716785978482196075276525253538875074258473595695102725308044020121573303192084135401307194447521973452055935803645868181827851282789007502861992830644903726711222590614332336949233880547613074827995496851242611569909777320917340561081358867320360011921780974592882009480618345608613395615208178490060289163932698173078154619572073772908187483787517364956584274525478548825409180389969203222394022247962865602812312153918041091934778572315034448843982202319968886493530687421112139332168180169530708056930187691597071638331379231560295177905279864174554037153233525223372753671344242575616336664498431524393128686527840204245693505641840310176575555757989714424415091937658110789995005180874264619495599939921203412394330516817366155523987016690530806740832752238418456872520575032740950656232672423687929666367885395681200945320680640189049751538861676337269594168486365992409654190327333203742464646825071226856445130297684933086775910378281377209014916921486485076542943537075655901034040288985300521586220328268604222120387709624604709891575630663984593009136632356813359716099380271799789359112896438522724070353016911514518449050846861151273269152826613011394996260177946944495858601383674856003346074745903528463463551381274389726566811899192235070211033156380864036033143160097744114424530311440766077583000846394559738231242353476264912919283400598498666224467613460514424042156342945766543556811773243787062395903933115099148546797300600806878549757956414430754004988663941559929461584258083328030954031976593464442747959377620750429560511329795678135347110661380177503786132530354131882816444345071648947551824686361814359051646425481709322228074680732731351091260600577386826778827563347456909147962305078137104080626660519479047653669498983968102528607786675811941703316401100508261668062595724683009787300986748788843330833154102717313723343043853949433958117031316529553273641470922909315244965197018948110542801134020975372899012681603196010619757341793980697283639893614079545849938309253216356646815089111797701874703434519561636637021768324851535608700485173775207110548070541794860080150618456728287631980532478715446928277144989077438497862700614238129665327168766424939263754488910633389632351663737156053833489808016566551582300440732553495781974455022629998826156115380355353780120358332080125722272846924715746190647549581807707110527323992212629155503604573704989225700075461181910195359961778181456806727883464651702410530125536661684062359115620293770466183175349573948517987325985640494154033035806940577866698105962485456294920489788654864512074945093179058827902718055717477309792884754808512028409409847908929305680385528826360934649202670454415330324267298915119092511491125969945348314077072240063089392827561175373827558065910337332519491447395070339654003306851406832886087033921500170587681897984119384330976976117009012832121243811224479433613651944771707491058873913608602731412672165056709069163755099656228940942087398768835263767512163366084512773441446750647594999087385687601238659879344195729199818949813582935043498820486067626982856453519708541029109709231048308826224289752814536833322297936064414761930152706941062809462452556282388673432781274455158385797957131336176368386823719643347878544978510279926765769806409597995737077829016462631946080904950119333553823567426801683129448539130355545964737268871369400827866594556937213816608399763976774704186346537192137806439919196526680406226491062599343589056897018814931564009454631889763766774044980929082035691646201116439296879482966760813182501939497013892477462450942485805501647739805518230338027806851435886589393956407610933030093564602100911875181270680667238675796712960125099024674108996820088080005843073204034221659550333127930925942224798624963708975096051230903343796463855545237056670550453571152224587553427950885650346981180528507258197606748977791135694466518384057812057165576958771381181856928187652591560367059007239576143845950695772849995920438513284297677068062564959990388397100159997946060896992714554838001423180606748168201990388126701218882641019263098610975492165532877848346029686502356456403524052393776829134157287211382894865709731146568768367420816962696912358745911382130297308260395812130173325255619972643964433534659392212783639324294726207460428114397927292270691153294522263518585474976354521829184945849056542240224447671725273692116646798964898708229157565689259572112402038534993206187709563285374429919930811518631950599020424198962090522576725974637021665609174054419587224542907279303946046133962051369133628281708176978498719125840975273881301302038753093540308604422524895783597558726129868418131779247284848212872685061005310059699774601690335102437946204113179685665496506111541985405679606482561781296605791748852238076926389234486963124710192284864542451911787268057971293562057089151712688188836437483926548695512742494586044630103681079116230274106656537983971037559575702030110379455189819221010427712431885882872905053548925054663760474134555819365768643981936365306728109286998250182590469836884635862329825037167304703424192656459974568328300557339346520267634128625256944293748217443381791889302315129102931557061499388923593340043406033922834553699597205152480973296718579703031479512623515764747231484461955320632899602453594527500872298701625766480560683533504760043167633124200571715538131147826115048941334084639758830682822459882447621446409912479836530503357279919889640816328552215133038175198695925559218270417762237517211971748457926377127709485968998632243341433034712653793347246654413149832691605441694741169172228987197720923877927942592271837301313983462987241346019665727904543343012255070452523373548228658958354713697257973096060141806727650670925883477829080305283883885087568334240460511046933627646681964349748502839317318983991827627488058590650382911069686103381275505169738382856014606500352250663321783325117541597465633449553313621128792697538645657878453331023215369173288880934014049064168096490966398007988760877338561425225058934674989900720425309913192321817787900106786172228733873237634153952707292308429974155167461620045201812005333413350034375657559338735974909133574928203852623266942284275857626417388837043616482930218239431173201438938714123668171155537638221294060406784430601983958204148204776694409859980941751022080092843662828560240960325228089509932305919868194676428302537420216236381797328215303928187208678903962658799059042787105754645999536200017377091043886720673726230223006464160254589315997306033618833878439636371533973167821196530857357680542943977930181030111214886937853593841791740364182514147885136798186803570452634193686005292513450127094536932790033500010412239154352999121476754832234426257258808632089244953959808611873164653503639473628731413043342905238844815582982102297332276191072365220876726982284577103724629001606485450701165243037892101262338624601180881552941343816395826834560457496170864728488127729895021253217509560876542352754497437303069109761285622540290213527956950083344881732276098828568257713045683080325160120662884294703678711888658870298593489210824183771059035167999842936099060236000964264043711229088038091584028229402310813021041180029562130548875593228463904212123265193885457011608570231214568960942387085357155341345101102550219341995576474047100875044355913063463163697497703118524410458799094244412250933387910961877217443400591185205866434829578635498473395919278715863936086898279209261805612163715589350758520042705078565045115065662590246877194805476645641603088496357567714334888865313393357608411815612619204914897281059022854206706258744971763706448429298174000243794704165381224408206846446569658642324825361072659495332476152545244421784481094170694993131279467355900660618041667389117446987173385650134672481515014549357049288809072401575882982458590840650004711608438766166166900990269286324630332951293155966931448534094514026010234511371919463612662415249942585380250174599911263764143973608549892943846775491550982961162454746277253136264913507858716876833680123623917782786902381932394787466332809406866633333484162641073749381849510731076154703464631559254762373272302640884075750476276074855228235496542232405189766976985817794596159491367469767625330497090279607126303026612116148777174573744515178451721678047610815933275226794783453456375703326824674332883393368869883116140939436872622039185941621985432836901558277245276301920362812027884430912743957828703066515051220437275438022667279773368106347902540699577555318528977105095485905581235112342581776385475906221828603798718330536742216109593141215507248784667725977819965392250704124576595659395866650126796019387936672157831312778690081995736969319761427110194562999092269477488263365533391377899361619553399042288550644060547397698164445367067673422738661551870342635782985132694719535261603132104808894597784408883354427824425580786528630523113547383128370671929557635734977697661378308484344258860651471990120359643103532772596407140142628600213186020526358669394369654038319962909994840811018473796631360487061448718973981975048959360190734040346431175478012861279941825996555771494590475765546982996149870906977743028423280418369215347907732086650208120987490982072158568409178227610852602987319600955896707363409508814015835299965625271615632570413988843064301903771769023758512707564570180433051652993280447331910214935068089543463563184885904471080188245231126714388082269239799538353559176404804973047744097892663279913389760163279204231494104846933847706354258039075703639181325745704788919503286863554046428025482709302078533426349024344882803504072682812081269856134833148203331894455830505226115901405824019035095049489213588035201935820966251894725081314231785976658593495431969630054115731597293559063176662180079619899958631928150061838409558176634742859802930646212732698333892703738699992775193507049404905911828195037771858451250906248970054723824302254748984836116836583547846204037810207441146969801643648395099973374573650879084524680345744881077611960756988577008807010246954063126936316516683857390180662949311215221177296459084735096133061473792358505984945903782483059259001818930293126629661482694745116053348655948472402095673381750545295312052705845429429525418632356382749359798793822315311199304307378014035508573758395359226189511745532176443738094106439523009709490286201996489230861444159143540281645663678749227109405792042525955667225915085922952372961100556351016950079377794487975502644399734716176466867924188351214955611775176972978508924666507827238808418665145171696638846454063593930061293792340209510716439779729183329654952442053643812301914768420778783179845210989398488396253386602085227516513353167758821033693867072423380424331799535904112311512051027311273654036137317873943656482634994765748258665084903264920930118690926788565940731999185874788891374749168030779187715706193669323000339379276359152305841822209727140936181881319177680631625383500090453156674630249811182952408493562798527623018863195655735752588879864962083643999174046310138192920985240950853620288429335807472440310116218896274927109511695240854933002059075770704776739311963273572827122260938915463449004293247031750063179453127810804481376093015948289895722519507414176419005715354728352179532516989743866716204045924509687145796098244929806717166905479165942397912641295599266504710246516217603967328610667951319418735804014788944921668306737611577672048576164572674714103431969060289828646134330178404095969795852040945553852844650052080473588131975719098613976906883266781451143619595674189287983773890611536027995561436194902146837461173391306548450530458141220446450317935537353077875137054727644214741798859775004781638962081702286875464026701792098545340976658617542780092698584847543265793620675417182864129223421432913240141311384346373792506308446964329163628885794002034554016443081890495306037693024566516732611196640055311142988606730498212139279284042920674089872450742454160041950042531647084844331914645650664236684968684995160416294124579213280496668464579119703170471327529164276363286855745285619832675763861922205451360830254905293153989096535041154804899890340488801444913678765323555038301710597362542164318881356438814568062383535058729359573716543961653902520678467853942333129802014026610799731894791717433715194449760003600068822383114373753926086911165828269180009272974113385204783009342392651859673855834037424441815431001702385020799955675260692665441574168785979273768095840281426528463994237438106463883520103037152201302872628919115001942005274312188939701817330864197283793355506288146857633336420651831956923887108515266564297297744099263662632738222300922475088022326112287139724437949325743298278302143744226991421908758197375395091510637751449214402363450996237131773731615396303188174322037735768157702767340904787686187086159405786177466235078293344119191228224495867479296118445851550798772116942818650315116461140808856767256368874097389436775558774138235279400350189633093733023017037120395581958906039040733349138111641535185208793341425909297624975253154198977653580083501561830835228876811229257446508585172599757293835581454498569576219441483436579830065882601599376300931656395195371523630208919171554308748873372363214101590859104279063510813644437763388874576855035369642110495094151966977351015559072800481776477843234291617645539955182798360091994970217670996625156610228415624614448261679609060436214793805776469898187599051045997727264777722576926335838312654648170526574407839350834197031125161785650838279764774990529747920495936050386386866472968457550646805277679568128265792161892581297113880935516841478069971127308212773233703459038431916961727483465394911388613363524825992443148573913385660997596701126408152170074768838602212251200888299204076642439302233500879887419969502261598710529900310099610133144299602580739104821956266325179463146749772436544982366343027527769083271616517928358907444268665649089345180418750277382099052971436021362343147984647628511600625428014228089675175310119492519997494020505886376358300160876370902165120035333806788353761895598447191269843963526871203112895819074540136973213705591590199335944338631693414746839542889645407241622418447297553565352589988010631711445259742439216581195555428135425747038889046769008924762835667670812112155030626669106364476897919043661300357193915962999040566299358610472563890688662198515013658135496875490168599712045891795582431027767916897188380658652634019353465960286192227211229635015267132028135144122205756781805768753987295051221935777981677280210852076657591599282370902883245417489471859399073607347292694413350692190001858627542398960904694101103794095505454967251703993471154108523257914167624712632989791362154431316089634782565534012758051279159541553388769663714987151934615119091047616285839372765775851624141626163877043388078654424503268653845326621906541001895361216257993869971836917420677219639969921227701237469835154761822031398343318222789572652050986975271928593096477620912960969934994568398510443399460115025170880286612720897300673903252880913538761095413477072916547923556626789791629288030806944636772536643006897945573350162535816153298329975810275930417337234710552991384983330731212531274742507176194914351639710793031908240060435524834229745901163959623757934401186393844968172751447047133199901076057335743564616163662024951202181830453592510401208610068554002857419940383906492528857965289660469955533379370231673096859489737066509846427227098422265115797293517445733102282560122520192727601878175966998488524301943920553356469438524219754533795871075211827565766696812628579763136837259207676667784570110420915330167573358751780724152020140187421039102456296711231370909347131194309509729031055397124691385132019404893099444880899368380610388953645346429682101192474321530965632034312760940646591066964045342515945470440352857560501348165509488817873628677918254647307080504010384865813088255008894823499669389050571218851372607487980604196821356129593537414490077399954772237965471711856477808775092539034323710670797525639723351483315172115798631831930483045500293261413322358202847726859801106492713183676469192938080060050808347165677658760605996206759808681943654128939907349484333112551649840961988668062535782885872484274797272460957160403117004204724051016472409344978069751061978757786506425052432288637368162492259537219083707144380481653899469793177945434781717560796164709223438339520173693338885227208973635841841085138019945607038603757204643050936689648452356248246304225492990593574362149882678612960335775286528390266406939812181826778071305333788568546999600781391390265317047928469750520229883190241823131146742424572998241082518055328266057296258234892322922936021278213840374411581768658592615815076898373418558892396383359015341567988539006056962658537614606373462817447075117906377372416069459986823489456076242566299364737705754610283213654686365205555335461097850534130595702631207227164323797228189495966342878560625428183370789454667342596729802918873710285189635910888769158550871496085789865445865448901747650052180780762402540556768211762175457952633087801898434742656449604278443066618221994826603386371624923074879763139190804391701440789854694507086520877367431859769353838476703384070207667862764596934799982263613279208604503423462767068473443152627112998244358386050997336130609936643321061488795224241688356479926547218328406598245651115209650459850259364344364710181588234142425777540894193885833544821963893984485694443172250464674079063094505633694887505907153015498759211955581789352142193505538909908280298698355778444299869737229189871301431323276994085782028287167877545901463811429158729751743480908334733926788202518029894581063153544596083223466681075199023594595799935896958444800811888101906924795153100380769734523548607514104919298684761800741104748141068508511307255079159679271026669993766819670700540925757276973253677467867508871006749594610745142193671457571565134485717355322963384854361865328063498185634763268929175810028866323326438279201753614385761309057944678390650804953990839998089431729766050432392783751228498686989821441945089774864547090746830069492681738179252673391007867699417557107275201276463009094561437480375971913678909623933140247031392255838834592413115128450732667792913041025068912803978475496781708711777067694557721520314186755191903786748969740553122058622656773195990897133534299528727479361562465592619595331799430843091266535379658729313027121995767647437113707139663713468995967321906052652155963805186449206878502197144597646052932955929234223753356195155918970140731697841115635207388045305042809398618190398242851541879408077133585911731992587421039233260947856435162117040768250571703970583088983186163744540492379443052980193106379627679012112192551698871929273341768329800823355230442869687205435676224675236179984428888239319028673112979304437601637612938942468953463594296882292586480242029721258274736602438704433413819209681296970583292458723700465479938722753226799933786933862340105799381030654792297867477545777837996884016730089339526646793331916810102136606698470152459807522636424935653009121855110658888722665685907982935962005049210154385493666495369077152340285397955543148988273741238238156639204720599324746565615615623649838376111617041104821072255480478220602354141410144596862026700452703703283309993706380381845102388596761208585833343635833230212319516228625054641210630803437560921519586296215211680157807712275639191527633456029590731868136775286860173616298861884636607840349111820046057153249511991497591306687160521629959974204704951059912786828954033234404539614979695884880945307653266333901283066556151284305547589260814830983391549817636659350816463067666687121550085117726446179788843877071184397865436091145181879414512373994050853871157569130787989784355911518688309296749094753888270317170992998075981918411451707810465998270398078307636835078376569683377665424797361355310177788643531804174334721276612082776130840583452521633753066331677390542683316400855287245421617077429599482512842035393179121479269153098610432782613353117096530786688530176280700188453251179767473586362399087562120489097778539310655312434357162360396656784661351322369368407628051303525039477392579501848323855585004704623489157875641544009462086750299824680743180063412223800865457864346541706549416552484053435857319225287589949427272545786706169250115873684923315417214175715888394393366094470626132583971161954116325579951615115104745862690280066535396946290923372703581192590393816402150567774134994274055113724904433676184656029822858665766202657846986766945190006993296065921422550737758626235750455631850755642312601405839934098879823359146791868151746485733756801507439031186602196633643700858468814177227697411830567065825890043489068753528185366583638786524792846304991943384153435494976137739018099915998366041384367852102436894047616027114090765530114628248489660263693875892999332113369058301300062150730926301482084518356010570829648561193003373106558713465982438561834676408578446029527963088226215341945176298971082512606376538504227719287238019171706582045037755072535598416851536712966797069770287109831782613398879024423551984111659525931433987725813723227372381593437036203718088350670731973746518240448715312109950131177234289133214036847565290319800310759940739883566818844482189146867353439827025801794824205403319581860505508465228546101399446601199563934317393685494853433521928131761936505720682096453926913111300692536363769270122214446069383372583453064430112084303914802633534090084319105178489432019214048799517295305811029592965239051999282198734054777859467313538614074321901939137828739037398649823785711798020892414223167773315210542045494032608358184206487152400677053806309809021808460356156380401152298338931381240193943464129062025211140655416383050453240771768801674442836279755133906089184203902986166828111351871964064859807071011238092204055070912653575016145994727683114708066288182854895627835511827079766204674959025761384708363903120056423210468709725676881844397654649211126746044720263204243217374671873775936434041874990880248589500022633516255391493479554082614395110515398681971202718750639483518800600497142492002122283651977413992974532521828909263875827326268386596024404216520764072188051061849745879155179154348812240618537198686873950140975163398971532830555219663440390069799803191435695650609411654999147057065703781767277618649049485892659843313332316306798437357963339155815859600725979937432087982712857237511086444873392402484921314640440448983419949188293510726317634621605175877188408507823139004915896306287573198117995400025007957798749743874566932576514891441931504121413630308187963977902564958265734395295597712108609816672451410822912076493794793463214339765784255142649433093446557040832463039382093551128300883272653268652843036113731551146244704203631478781480197755388114111423346283431162624847283107469586388940775466066345256223321306156654142259547624676103961152306455250222295354542803214267656276416296922438166162955240741962595644239103697375497503593906022168131158592897062042982099851813320868353301048723951392810415132933333700134857353652320481251405698525806019126688291441984006912589374451415694008406232887688851516284387654035429646363351037354135650932250127152378857221306409679297023847700590829607354238626867560544517056800721893641430261358825013524490363217601481395161937204318860397152274116513884119954213020397190983509501192399997882684013232250508001530062340371982832962087288603989412309923206773927850589887248656921607707267222084732520727794131263900210488534651270180124857348174990419095965790596503824076201146962984677853705632485809186189873590758065217538892287008435952540354359941591980912700894589932908824053689389208247834290401593996681968253697826305070964394453943508082041918787115245169647748682128835712904158190415130813949185055760564872678365174593063240723311685996261434424951896189200214216047680036342968211820136640385995391510648515544153545429983792138438207858649249123664973083662613232553540266140662929581449497352395057388351789021422331490003605118263396727593870698037648902133217705149518632488227665132542228704832038046648652263677411080730886058300354546341884597742410603968171232291571654100050189894640201401868009562703452073184230677137845650053488126414808918832029568398175390657198921487776952566982682189777009987564965404959207654901418666523180468322811137896426753021204076637528003116928859829741401700069469503419323902478238334109968977798418799435852797269670472967365789247265190319209394181313435348205509282413245760136306396594405842660137931654356453134696711832583189707006828372188056671557516647391591599659075493241581474075019356869653689781204030099848487050468185796908900593925805671539707561192826827948674174928489400965530527465778457072440949343273678664630542955796015920634050738176529241953630722244714131483959391918021083788562880290841086640342793879727051273980001472019796566773203548268954938619845471854975024991315275958565203468730841096105384489705215493991667085679866725482167815053696084597509323032878975900409484656791817360221205845702252225130432465765638562989227157808491116483935607268855709676401568081755139711851720037043307914154132100194139271945255870740126154329156562542206763852386689275398265833556367948996319120045371086573168432567756936533133306153455365457191452410139903015320110208297104745747483289384150722716405182013129889265587508212673628893499500282667743859105088940818506749597597455614099696197257673565715687127336161435529832124364006797477888468167277757678206337591903919230296354060009830513191619782321808900816586444448019484488362128270900824361890130444868439283408893846877232276894171919167753017078449679697134118909493724476378909098344690177131181713973574460816322446266770006284688725910587641518293692855048479872988257042757681889055958838028942092035797848593462342976034428025751760724429128974310380710358623200054449562099031281915427418002248912930038229080039062721429337022449912027935370595700413949980164913131709311987367556961422665868862975086409150926433900188858781523494870222441992086990448070069812060169850935709761347416089798933483241512770095425707972267965640224197340859330995606419812014695309584414101315263707869108637960298872691292784276577099775796671317803151066460253378576387127730664664563476194894045821658218921876582216398073747656337575474785735619758555340099297181380478749733306716944787279545172892781441768166359275698855505583832614425937433887574107503899473529952915599192041984006176764545276958852109268642144711413038362686369475255446096717872975421478697414286114417729611117254912723326360854069853198787438428121656443718965238932922872997448509854871295954229535612312472585963952455782725105152918493847735425200870376005044647037418935513726852581043338384431130431384110720893313484429140320164103899360728865606031689673829649287268476666690052992139041354616247357692429526615376152783432606680587920263497099554636959236870372762510442319809466372580008224669530010482914099049262639511289312337064870755213541052962550846441381972239576627680578814029930875695334885709930102767982932872526320620065046665245150061676451278942200585717946519630748847177394763700323444619782815796465847528569122851123767116449999600364816683005949808711782482901004597346362627075953270712495649216557554397026442298390463759506562466660561765222730207430664621497117716157093969183727081848082158793775411274954553509196976160490359721187864310539257050191928645762970806582302121879439269399508401492999398566921411991584319649585262872639180266236680726490358039221864156654707998416994800171106504218222749918228498463264783221505332316076065307494522667317484914169996942057736121043168939670226834314434156999220945099366324256663854568636419037273315884663780995985737925722362587110241982378029456555962585873821005965497568170941752119328658233739047586374662499744176706038560571000105166727906534936833685654140684995601429822603582255284259176262859030269972605270058990834188738128112094069236529979812716292519038496792760500356784142335354580400763433945426057960176913843998744630083772710321195521970461310870328012599751090942561533726149525701654124399311279584456619476058261156326602601625979720504327252511605667797188303875164892945378217931953779418988705606211609460752193417681400447519941384571712655566183906032431777185056181098291602113600962621214984230063330512944472836977768057790891289839949676779674243391226205411077179223707967795097902862366168177475912650759085455134966417882615060355778333547082146915369582007698005218346098103252085433657114107608946982014301830393614680539111336444590013474076000972791968135749984145003601814242103156736467169533896128300122955877646974456968643325087773736664684531482679225580609933124518473024358407940411987117050558088493189558513853383408734879846744991448651057722037781960322174402962617713870389370395971948494601836416666435045873939978742742762476619467771027064846255744697556387335445455283863442278579599235183665264630998638691880842659814608373151804623340965279114639898732975249177637303383133206798951782896419665382064792463794685291068391182510385731341079156221956336483632929679232307423478370854270531526007165099190206127790479123407806849505832043859450199367514214982893572259639592929859499727011790924884313408652100998839417397179726570088501280904034349468025148515825069294074129357848890517577434887761889705341957179016984545558026239662112896584878605474736328414232579488298142033848222686406775797852954076476647180257088404893741967901151525043678271643284443742970145165591295106737180079604667510545434678028986283062148684683872195319058001027117890472998048286609185244675434594815885342216319911707011340231986773653772805509283503486034418246753967980868758478438787471028290111378341890773716354013848315998156925443029281232459318055269413854355223688438241577318131054970503200202119716869381880450421246843062523888272662498106076796410792020362410232144387161474087596261943636811006788184938256791980687578182956169296231197868180749029055853842801142705091857064086632743918687608381509450118166677460907182035545723968222438818847987678515569882319430368592185967480244294796215002007981280116310330230401648404790654016903127689477399106269166857957332186922312386583944189788968990897865073680253509893727409027395663167949173881788965768631750590764951071046217064514224417503495907502917295777897834053789095719793137686332471652235602954272634034080765297771091205899843089878907543701881373574860179701406593862902040666287470704966276516350610592672182244855366410168317052006871362672033564569656512409319863469729887039137843650373426095566766170620523864971778021768692190603480624094820452217421774109963337143963575807689683300450420906787422430096861117757565138260487972720754393990872886892704392006464880017934924032214200745356341066638924183551148014777867946859745046648825787545078804131606038256125739030269272073691665413383026551058526850313428746319241305774862595743042249751249631630620499790300641852406287635304916473571465723676928472947208476808341981019338983481584834641128382891019500267697481247707469639540454962490177812329412972897451693817391474297195061616321411280401878953549911180011622005503193053017475287346667557502005404665496109160031358537315283231899325023181240773315423804588960510163633618627561372041126220374981678635594874094167039757531074756052520784126840302095777285555068085530323156997735510578835939992402367351210973398604701772710992539956828552881862113280329499127360538204309605207026425035825928325304220411435127148055434459731912554155803530966896463386681768164942413016970899114227627090395627112971863549852466344091415782592536362033139707005998108275468460710673254217279478650080333177533634491683100447786842416648959779825725724359822615812702219824081560939026653102050761905100124776901096498939155628975982646236810568435224930204150370977825458731027800977989532290710754422147548021541859006356692339310462729048497887330441978894919839498310617133354990480225021166951161953482609571065113718329511289689718275905503062479000293444396418644264848314542569443445196428468623628990301893801231755935003090777332141042955378755999511020456545792569209673153672643046112632235726764719557780216130778908649854995408767946568452973802530796672619004323929155654349228805432998779187246786676064243482429996437024786249502685414605102419094154320120084989171274817537211043379691547272413351721452399893501185627574930655618216583402764913903398378908763504934952149269876783377077359252904270400623486907924850287838807532901063829371615081624780319451341565539174140591345151461459193002257329076961422830223708252425200082920566650852481707773110183983157591927394017689086248905556062466387450969079754641114318396465920654024288427208810887576510989834318678056437102826160341972842759356135719387615540908290725177885329760083623542462979660590376330854778366590970554750028175808133681631631636254037725896615103924975133821863623086158664252533946401824590239926970565548887687075255894677617065831424199082942441669433192109360340512330854775500754674816403364623624016401201935144961860721662727489278222451572450672467637959375897197084272740440573039661100642057015378552923981004982946008700055231687501637217080570968282341405375478351764162924189219870843658087089164585332009065159484193267190923083486602508848554919002989439636750296225966476026221668404810137825660930663530360828639925722042532816032146968322286454397534798635438609030988782877944229390263159129113048685004050606293791629383123624080554045125459720340051550324666701196855894382288222981725347632076944740791144711273688610703398286767181891408059537859385596972020069733001076321017198051358641950684760963251569281364745246385398334889684587759900601048646432507686236457769381379871387969879237934704681907694850019065683982370039465104526832438848946165416250051191510703211168551396736328555987927230629258698491393442273043601614216678327094014755664259154238857949190599733476046548742097188871180753302806228504843481410544784108182599642082563670113648029282841657082554548286740908638508200460657026609932233345042284655910889424603346235315890133741719671510011808660400538236978344109307860318927216763255426046021303980043569501303337896523145742548805546050048317781820180193350158497195371541444255722077241986693749973918147015318947609580156765959575605261681453873430984509007639364432938647706469456103603392434259448472753469733525524149983063983747716427776808267602668725714586148626841875789178399284629454474630246346786677654193980535539177042464551529020013433530542698675325269658360702452331455573904951246048027565266929455826633020053142690290186005838361140698086776413176881023110976689331060229835655203012442535048670210751507865074589932803386812504920385975081074824420811554075538014875039803573998256311794230416470579521793264526416021488810832996357598756986043754142751743945511523152709717671851728225117123864287497788839938465575678701519689892781112207624281342482852326050152560151755001852625125701248763154699700139381062353830992774341107123387890268671178249452216478663237920174461664818938518309787895895933800008986806982030619272766222209370176321365951836402239558067443155046990518151023180216448074784710165369717445433375766602120174423766618822052509260113561386728111540138734207178859162466266485364240601943815245948749068676007498183105890390293534715738888159924680577962656158441217916282822717097520969377915917908684543487879084429078729697495222754264738293892654263533922196201426028136324023619688014927658897946800543637501260532577682000798750388327095555140533159817407351574421035057452447630146949902202124758287322648836478103700182535840584613425718494580673452067934203607569581993786397219386964972058865924953509171738407426759990475366677687520095201546672308151508869224701092722095070291584565689015741261929352555114368057084445299796601805242492832423036858080392851466624930175629618968988350051536851749437288630428368366389285293490450853154160334651093458767705686824559863580965691871055912070593707704911709531936902123900746421879482653917132820911866834756356399692952805617154085050923748844072151806325051643455269446111608624994939566918320078200272183625473186190917339599051784422887441483253038223058342372424583241994932892723084669596882386401074120499005029252326513716676882775256803292771682939020189669238868086163631209877297489834515821516514562469731050800382607409834888903566023554286058911897040473426568042145102029465397585549133990254792458298655407402926775646402043345265179906190308425366329361064026177028236936842499192148978879841690939978036035520782830976174451147684560621840330329061260941046059411869593945505389056411402549428315564352399858308870090616956271850415107065608495195322814662810756580255318838417805320709036304482717918406064352015947910163530796986120349944182908158177331539381202363048745449844534678333354988517291828428612159312861850954411688652367492519881483345657996874966939029184501608085873635778066388027803072469741613292606582169903745244741102075969399651685709602229367747394343589305709276009549693318377911248830584662711494421368208656093281477558747035555470000049202993836421297950134528134650832118748896766067601165851842908131907098056081275796972105995465374999961476608158247698607457200747386118062480506893220986509869705492525661109680074909344727789581849322551943104968463665419862564714832145743647388322080271683862108937089194729920375341872852797142428163580925670967530753163665602427268606860045448010482892999268849535099259964602427492971416649249274104628307051875370480061407586027641491748214918881655737705017003690442126971138774237780417605576381252344724347025717640530074104766221894611664274030175950662755137661624532342532313102770053516307187608332699640756985026383431229972219630708818655414504707569014472527243422036719460007964273477002469856423700545156263338862440667018134986038795002189843828560393335999891805336943224940381346225847594627273190786924822096164993916700644788852315546420740152608596418428882702924294448247727916110341620077651907874295199021816505067031726845862937495660452686861221282267693565439064521250385504128111995965108731496897417325680157287191435960958111036128150512328367728153937418172630752545379481641341134213465138196929135599387522425551363154998086616606950624007531161618427685756411623077704445491040851089290435883850198546505415905144655988233810835606199919970244982853844514603091457084457222530315111702079354209838948997187947434391881049721254857391694925631678677717998401521270303675341594569397410436956537588784788667896359589873708866540659904100880414677259782256770217368438265424168357013345150190578372804328591795253068897410923574815785772409003829131100575206200326531363362282562983025604251072538752103872853510228643291606239033089010741082871950105806339603953595612544215450680154131825164885114319970835292442171214659385133391597992191003513278478660115918290745761789462617424769505313506814228335559785480394996897891945754702449439772041392699746809394062907027638229805200277448719882822306034866051125312945141157093918736731527070943584230000313187645370247611242909704082754230257362494023706713696461549958433563174563665508990146629582311568844644324552366062974067824000623377759729207840958561535042023114700781368268576914847081179248699713528463183361409341270294226814233994622361496664529134680347822042587006884519229151309978327956672472143947564993337637560420361627849191954894671603469695835805458299605705576784453312656663612442700823460168800527343948247842560892889552276249574548665196646134584251119107102530018615528046996331523957892364243989204621026536621871883929785875003850266071846253551645224035530959735913021562751313437759976934628350919433550605366406530697367729460113060202547967528584109605151196435555256666553539693487019449091549137543351046583749766395857119921431112590265988860352029872238485914758816167804784761276497454621000987579486448584416388701419796613872343628609438604461664867318132131360297970508084208954150031251143358024780907573648806078693289036208786987205201806930358138289477893908192272029512867906905210283464399717908850820955315011352581522383514588077094017349479288059213688081975147520221201604214120902251063932726114908122631911138766572317368988662173053134635783773288029649612349688576519449577589982615258084804795527205759584480605932197436982520551783863847780092839082031492372496623605124848432527087138503463032307430074832946731121239324659325047790118322602586788108668842804412632118637529260631591003319119819978884942347653003369549141396313940316946146092580281490212837013925324767958341880255407728276793748852386261284405477699921763023332926284689353006842515446560458640679759944180075618883544733132373679748636344189500800880758810209003232220548222324738308059791130890940191822581988848122067455945836043450361695475096229712616516008033585737329205976630075560127824387205150860276589537388925095271278664728103985338270409715385261521954118038713717421101169636640414502752808627585449802808076191345884865087869103266029960460680762828985482341387696978108173087601489570640430591158683411014146370056070527794517441394019084033432189510458566591009245629970684652844693225840689373595699207021495767569838098997640016781288680167494083525554002327792705408012719528433024539265484188206206544910077970628112145511976755945165158881375844976650954779406930294486853508373619014925165600482815408127783380460222696226415869008704366421183695000545780499990572300303031306941185858901021463332678823655520273486690968516932329543139507621626460908464545655956687672131398204819998173892286693332390222924151888221846410297245875624667078768186089208643532320141949790244559186546355896367800411238904097831777046723798681846419890934800041135255042726371523933644999721867457164180321483867085084086498831229168528349257214335979753983035540910313524803426458525082727362873223186787263484649843713549448102449241867406192643083815847300301348150304915036647163946117517583652589225992985536597348613286113937267029753419030297471826866937189297609848307181042801997289524925061934945667796320853550870847018700626059750809656875713267401712717066295673092103022476483616019650077656347015457820788691951471862266065910149365025961130824926874712664462519472402124357565602222738636487224959564132769964845534639247859806625816427305798908111219316164598819233500073497367913619940368183488828901767068020958563533816987489811558718823299411386104273042910829075666513583595220480627834624454024247968100319099796316822725196762033441963290912066622697364451863139050536535053857685860667154165063682505350476271935985885802306936717541437015833177603061867077441824894103240503191299905954192571203324168709257422390171697876443218725708583426776680105633347911856542818887097771025857094970283771753874458152729459583612056995603194691614721356855212421934545537381113167738232929272370500220685409041556770173966359639597448132579724546440978857638359033985698884779352193288704283519510325036935795155671333048122258399219501522968968454312224475770369701766440070708515400624841429165275720676976201879016468574969442618874547476712124871136611531983871422209133036879829902632646568324356365288918020629927708918424255178677980849378141654841241618614538431397274535358203116658465128814487624755379494835219828194385162300577273684790806803230321554943660614181050239777852118369287642960366922684567670877170670972563758186271974742301566006426434881751882649606931761747378261594079023464376374638345395496540437105108694686533851083668001967766604130517465658604123180925903300447867593544059720618596444030662673061415218016612686160058277824703576068510397894516680155311456382893876929232973246121407621338875095959001154904926706071006313356100949907372967448827276094916948347038124890430554128704069975537338688651234278941733636359163531317738358103460739738709162278851507575216979369826262807885615516007575252264533890799591225881462062802215680495593664559541475393655753891887843860315938659623966310118021720456281237594936894832869487977271489137091221851953162436060877060495916744622033774055703329680662188062777663856031819663417509420564981612887267264152418881441194156563726160010770377272524371440186086292711953922407948340034590538911958332956349055994179617037415571345578707447145678248422239125269383591474480502667034845520585456041287035626379313382786493196891577789271495271647810693001083216442303296415418479558088518969049434554098512310446548403086167775205130112776751816935025770896896144002029059051553181258636512503695503174703150695220825317607221377846659287565089412623089719032871953095836240100984052873144434063517013778055116906515579170629081370468682463470972535618431764556881425815468190613249218710821955043374369885190780648371711736793989321802073614025944416106459925297626924251152659960961969415307107636570714371229145186890927545354314104863794203365594074075015253208732740595574820954556160302103913333753987362572639039361430708040359899382250343485839397157905638161427288300136812681112557543924995496407694144082912454678089016934174856349141209492515517246339661356570078227259619579567499188295392248275284554104811479095956536545579191922750325294240776154075200187485334640985481190966961068032559686370607171940460693863583433910394300678209352602388403663693705850894069571929854838050166680256828775524001843354127186242081926481129575851263953769065310401609103161248932665321326844183011167933525592802503661080134068187994922370296910833797746547993363532622810655347320063713784288955276938881755133204609897460801415244420231428406932745830900882238687667639779616327368350497118183390487869223800052701078782144775818647699426837797112703430870809597877759511699448908136770510079795124319198792193363462319624345498200607564392329663239969440606636203391008769867050934378255666052582328015139719102727377839986902816703782663040821734451296574911372051068543876519446293656425266764137483420311810715739164306718442330868864488410888587594613289435413812096502731615750172660539243390220208455734197261264420078890482368043464866902617229295426589011962099552218814640346661473096661585478986840986388818449447363300027423565554631944595068182849349235221620864047707350562584282825272415008709325458880144080742768753013032290701933949148306971028006540677124221088487138761988401240664861835212595700229758682403227581634041300804424043220086720512083397008353763946710319193021803509452615410108189368129635801439887737698185539404159491931258633169365615312158733663660829838501403404376322696733355113059715016770378392013175475132162687552316658129864263410627518812321984399123887955161113889061975596026774696389041750549402877868236607508953484425000756174327975907901286628628054530382197840675301145868864936376663485125124504138185451135142236706447391185092253950193612027122613476489581125086369188340428387502977055266491733557300419045859762867992675866297635754225171077240089834582725007471060384204384238096757391457202597299147585107403234071605275239591960046043637218163586770680189639790162001215582964690057045050872690909633638850007710800990693568702797960492871442028385683917166953527216938055007685136095396866642923716958726895531997789455108658774087058213109835707276014831688602496006419724909815983898309862911903663795837476686367843066842699488584295554439550510858448149302940773252240531751107626495565220566081817769085792905495017246466962174669123250677382669137364135017230749988960728347649635917365751162963440735314705618236133541451030889879831875261498205920104374072960967601017190918626985009528750704460880322503153994203117031097762537100001246163320114054753982812471562710659260916529683595879816140142862402200054047382219137647793535428955599033154755695139693453698141611760754173105504726649273101133867008212672616448604901319980349413671014632874370462762849126319680730362389976776158955668082994731546825637622030681531105217209227262188077478873094917531181992723836434429603785604089258914115395858652899089098777929848469947972425718097374010334184547291888315164323964875368252822494293180324581246401142566911881940159786839404501913333329765160981774287284988572637647180204749554496908475586588644104229966024526637676083219305228890772795380486448728551319890566122054254425773049698184367060250138008129524340713287117027412413160075964592697952512243880405241049544043795997460956059012702894128447651404714140136956544799833703756765903694375778730322350179856771356066964816693220988949525977088663246861122882827608491452847948014252353704434728622171659790290020602923129158496533402324278865220770193259127361757595143716216610767433254806123757652167665807928210060546193635587390654228011723387953857094052494207861747194993915527842241011401683053163852683538258230137935209468242118255633831178026990002583589400915720195425134781457389815822019133830962613517365373769509193239830957531090024103745758049545407279491653432215165408990611484520619756588480566236449486169664551080408576864547147615434643554648309653755929805656044248659306315480930262230631083762309342652679358998618154477874506629435126304000154576832560123854369682240569084595349955582597258645865449966080051347771401966594716873714750256351029164426852528320674844169175995204970121509708536526487898788642955924375194401756240945285378323474518343366425912609404138630966696535529038296981834264887409376814970389104641427709367422037918380929667155718497069468860698969202857978113446932778822524078933808282793815271663086535281963021119985435491087925385928251473465340364695243857785339539336111343832400886197434167222915478886456591780158507605448406479954983961163655736318443887458282544722187128389804238534015576549128866442129027611500059906938055848220370409567028451606421598500101949145130542648798925440504344986276519029255458968675933600497573388135926100812606908163496517720241173788137145439275310598432996995186559443377215555885108435513264379527989812629255731839862878643435776758600506435652731133265271926212690714083642418736311048986148789304885952684744356321913228182591972071080566323936172489473254663958016182224479901885129107129145687311102177867752605312949217078188322815988367532361597235185379732328578897794668798398178740934333128748414356927870656924100834033507318806258802584187979578355520438212052120831547042941842643261668284300610207232206768058397400135310032269055696704619981963326806977774893291840004835754726547585730358845402696745496289085873810198790755510751137443507902598939656341406281694844319767378918527598619055793679073148077561528929355674784279086430723882054420171930549196765425790454381302844024761191120152924273219081156929972112897119268067955377863593692257550851489847005404652374466223507075840788357646809673449609618454699196388756825246062665010231543271665378815687396128651202778695661606025632402693438269975700096080794142748522681046996159073910133375349455455385581104389716655233902911929873683064652140981856315689356043276154156089383339152571247683738032876117644933292117750424922293736459590853901925956001723254060166868432657972822928241998078929168099572647905427565587081287233527595036369495052376647503743868755965188641068238405322510706177534481541905391979098879559905175751638644015479368054378130771525463522812102235765607094500582073897792277991720675030767940954654709526196329385105772241055204375376129677249520833366264102874195601329322974872720195191083327064825550575203002217824528465836507557663137072590916863163844601106529324418642715962027961875712499417009681912777007918892181613250980762841912140727168184405891082184102652618193472995772809216255892588382585777088565318482992393353607183582124225923055761094015777075519591015720462342358534022445024081178606345503138750901565520368117274591060484256890474954130647908133074967616787803333325536092484539926325508430668056403449083066721795195549950281699794428060981301592566927041968548725750540485113658453941209329714707957403257571152468433597221873855107561723431276886751590060623795275766026872905496436316132665943675956479613285003506371310501643958421077579307002845240100118369193666032359222133103571350611057374928406332171218619717923383561086263008532320075311919194253650500045399560262448356565768584866338990985078280356141624451110906863401026632336195593619992844343414938642482870324789673094450225902339875681596512011115149105203183766560811228540291046198070787690249645134823731205118556577013102634377685604329672511468154985323890729603998985343088732134678533675671945747756468134009809428980851644211144423605245746662605653183334674281217579822197427919085079279056311593123714430544307567419485122283581467661590402074332208674265268246384966469134952798561833211444195174330521164764407079895506290622862963239309487442025821898129710964748432752613242776679081518328383709444784804923273401334635650958114806298322056475783664740067857109838251517500787369702975403542153722859674735776814512166038504853143361602411406338815694781988392584270017163918406398777798023551940757998393249830825225648107878921911349126396969738655011790891124768506536057475953142870683313401705965076400792853381174986412605595104790551567042551063118492873485290650124468007992167245774125866274877528026550287670557009057977915973970739193608604128280540937010729416250699069283624355827778124246666310350540170871996592909366802378514302128959390322195296875838526112159063014617092993575573131172350090379177466283047768421616315853777471589592928404321364672599150825611509346910330826275526946635892338785994065563810466396004095512660011007610552673674906239821670245977275355661085695751160103960988704639300305373547564235043761010185830862640475453660526245424794782782335005819035008456521232055534103694149662539100198577356533616133503456326586344286430583974869500502651873180184296425475013461354699894936809104712396388397738840362350962723753678251859719274622670132255501052993952716149615560921864258562838933762800010538119319216164033959907004816508663167698333099578073215759404046324362378526054440177540267107138493670749242030277376503734441963121855631640910387225732646718724290470485110708463972915973294396216785599913777864417386030578472122499723153703628649084133856911522485630365651107261244549978695673634091588036962998543408684159420798340953645175343207209712030939428029652031080090728450995928373088348031158282212450120120420822272624106398188859225714710414097202040426327290272177067334965274920665973238271984757267934504787311739192286726016775633441458556667217531762753960907507911732170359162170710454915095992789146458697404198312858470920627340552661073971347141113637401678354518743783185286741657780496575521764798331159823447283797231700717171080755777999219734617132431120190954418876541618091925639556146821481681879010123519372034118447899959023064537283712657193411613324007440634927635790700724975451916513308367296527053045220648313521582898985999671579894130765384298635310402290588907980443143406671748852583753434001491178072625409283408941668458332430426080953473913974599688835209415718180254111439891894921479276883059315431684955834790062171376521152361935303731841331450508988414446514779342652071120875170704655739523105148447348495111078855980350625794820430463869339180680367532786013155189037193365059125348165391689146219114879541928747019414779144717833076207164121239403021333383642460355639439186533315012455054135109546193251582742342178963511198303403440552648424424253843822478758549618015857527125327884343585619969508070200248233141681618919696023652462932003296949503688597898406640221393304069463591989956373997694721644137439207527297675371706769480199877694416994280259540793653651381453966577743870522999850731083117537701539859185340321331323149782233131286274773346989905819851605380389099977327205271399749319399954911763371898308523874203972989861912736611491661547307079627790607419258766365898949987008134055439752204197812077856760613780847481406641516344613877189389803721136387123058810319102349883767851850571963464381849910405058756284205023807733026777854308361431680787323537283511578011364455833910604840179980131082940747811152301588138865453340534497383776952224969640948689206040481089341902562806102799010776426388372237679694131593791309393683736042160523729312539642020463669376645953522146975956613397951122231788399314989311144205758004167658756509231075282007149264576691159449012553951200787837464122762026786248180516820851198086476728552728722591376975055312481426427754456349971696289386139028748328972333912606312551312452101617252707978807796950446136897892489696522957306296032614458104436537806209116116661386077772902686530861572950538110974545294553288708082615503938888672030819792448228856646223585730974473631279518180405948568094978469719246628255092881194144751165056912860791359803237974733055405157811608042859564942840909438057447292482264164110420659785267292351038432121012907511323813848598021146576975753687821759608174344295226510662527007132798921743790282993623379202886718409664974580273067071133146601294591054889495726401844486006126471739843895007358924493232984058744914565357298452681422039968694411946842564928163470440403268946668985954576942340214914325118898049441198148714308912474419608023099631822192131936413495393105602994095396804385100663344877414547580680737294871405809791749168990634004944757903195567334840357526617958700728679950809797216589356638187827765120841082418292952100533133479020278452421980712842673777477016604856024107413332659913703100455374676528099266669173834821974191643772525393450878784777624834226430337413102593356769498887839631954054457950322885122518370049656605832888242879259647421126548520188180159132518777577719625725317103976255228787266712368851922025277269494494875905021982435045286648292722912875487210912502325341622172109601073563888257947057567221415217473337209633794571035715420042476754693964618794004416528112347224335857557272249388883866425159212891650213952124242858614695171884604267522475643621896785014154379931124643907542510352847928814185999509738094469214038776901107277586749711277307288492225551599667737964081433122180934056424250254492097725969180711523722391700674101328375193239197317381756807322810080814064792207431874503809190898871784941302963722427955104233956465089045540891763644407631444377752216184744959685027776750875176680446610096391158001888740430682735980609400108477021212395771767817441865096091091856898333959658971751718673392294963123125176320582757055403578824695562821305138374366405382424498966018510163024290895435234376148250374529628230246709892955299821456724626786770060940086977547531137606042336340413420167457332324429927812512549901231920291876563947625692070733665898040836907459302156805546565500997508867043142900622626075041089156211911777143687899382861434305834057095068515301957467642733150783061637512024711464601433759249633999080981018420624692385565953809818413480081727460952189261244320426982972326067165301734586244581839818643045733068676236846704279469242915785392682484256529610574488198717475914608718582952912512168459609982723035495420488699351884320297808232527633993047715600490260924546215394579630766274637985670406047828110055330855240240688462396894007531659924669413137006952038166179135784808898528219396045304390987951378551719086168746448710347934966453599928997497000889125978061895404221531379523411635370184338264678933236570556310001632222462675986179199738239958610777824161015760305750934500231454524967823887443127198839175452063917409981019350520086334583649974936055300705853541180146351350421827875273793325627028891532650761936519323785139278224746415999001440498254076123211959581506539508581356288689242953926640240857859777747524782010210850592126974056903112944030734806122420973664787272125731593547333065101111922968619160189313475530024801856216097589061025022436479180012008006623266318042620141831856653739238964904155065768013661189011397912308432492820819345851210769447859203925427447739693909340554593969320517872435367431696386669851155473009167521031827236045409403823143524269203669494597529342514188991847622077480774210840512097060599582829095731492000485620873475858219190679689326504465296310274751766490249788722859996653237373514134142109273502948182638004261836474798551263830909814161380357603858477357372782873917109931594682697920289660617311538451285498724853764076800292389034226926747288643862726107933116335089216635947147819466205103516821041503449104130661241857381770818595423741913374041189707166057583217488980823119687800157581444661186645339175831532711581637448864452458163287581040510120551014747107114462475178674027201039544853854742892925062032442745962067849459168991167091018934715164871449159795178237251239856563443939454720530850657310826636855719599043743410437555126352272722599456134355569885843292495520857485299042623456937321440510395495090244444236951533619970708468361605315706220688757837578441067411227321375996378569125755015377838264942254893940811948993845124938039851702489648870349414667665573244520531676940880052353019690141435249069690604822303699570977599299230636540926903679039798677366643133605223379486357875268582130782844135667151885241246926994530726188826044861516862492213962869288072640640819390581650687674359911637324626274641041817986045874760322723760904673929555711307258934718516515832379779463532524337976397406457113317710099632590855471304226029047931328420984511615522710729237828317003420596624656140532297006279100874904833558304190929989504355254830785738727863208888498646124913569580200906726689066624318939965516399600240703041642388292100056953817081195401132766346531183003944712766838671899496948949104207211948869718247005362606425886603001394441644714299304642953399994844313324570885994465507484450292209763729114525089318040424983230929027481754398409487714425402163360369378141556841384268073582181246144694670916897701106648276819893518973245842388753395493629584757827926155861171813445186317873096277864430359848359291694723294967963185288336830600891870173261515595612336391044113598732852863535293293014917956173552710814068422455802961182803578859697687588291827068045820801632847236302781296639016409589693816379443394601626025125241744549254281159015408719733437563192150109290131700232570274310672576132016317883433024532869803755794343231972300130707177441948088617107699933598844926800658928130547229537882107922869097749502584573360919978243913891567897282740544779673908238086284632450016906814690342106627623592010775221908494244933244581443495041608587477649076621896186039897712190182154278553556424344055684946704724363655825557152056358264059391937140088060795081202700968511578020504181156949416881265134025764274068996707841694837195421390806675012428941020684791594287068295049123334224238432180663816063158079287486079178460116946822514225190435649017237725424135830431457373671629066115686294991365127845895639657585967339324099451900004516797634559537590518232346714568049764281139441200626383170109021197798708224142195452546792404284858808461633324619865442830280313464016828882092987262584345610761440907092001377027434836385439652647187926150388455723534151415308404518223401218327970881992679261102879641711211832726401529913259701530727276119895892548703507679487375543683479009631039318734467547301388853426396726570941647003994750220294020018041210026528935642786856008433341797956002911542771203343977449713871659406135860817188117775798418588548667237711079666852898326864204752965246630766793200301348252328750161241756136717539767999292321032378288509695220301291193450774086308414571446753832092785960907309127496413656992447575277067359457415732034992805546169348504110712088173011451825442605790615826283545855090434548457514352997927730469172379231954125644554373666227638532736264690522759411883269748027631271223172317610874596457168928462746888281040313391648982299068630107561357459292595846409594370147313307987443967123387669955946379216651928860075173953222531103931601347098845485610042938161446761111123624297020671410083819491055488965755842620871022679076856901478333075432090549524182030143293798087873478365238840488533734976420902327234323113991676852780593873638153106423500290340323380093146593111159660829421450413304639248875042014338398481352731079224839252352395708193426468821330610269147710705393205726499781420530654100981131106160709854453429437972400548636607063444127010626622206911583501356214392180190064947086541676487955384372053056626996666167785225866460143514029096292194050581865065149535208168277083316692015950268450180942652543623748503006710941604964975735561417151401118890879285945668363926263394500828113749474778954450090078114595356586777633608792203678257486655164185536756754676871056161955242217385137633201668060437504178130423896445026510932985436205180325755008838147466554318170732924649874866482532515019031587228523563016242576519442248333809113342603453441474864519270910511278128083886005506250731215384825565941216848566609596456214125252268073459954132796117422525170015472210083174220374833515752279025528069061477413932001315172752938025665667986991360739119544223616134772201108855823298924555537600621894168471095299005789397747476519105344880356194607778175140601944084871097649247597293191942171932145440139504969666077184571868356072692878114483847443631571974384677030576256464697143894623072013012705619007143053127913379827922879724343430164839519844753853127239890477330684917570549480738578985789902657909860700270810758921293560163188885578241809764146668427507551553122153970191460324012404929694313513127221802400653751623651395706302379898422690802154412457428942153141519530691251344271335002652076237815442294014457102659655839502791627302357489120321062308128688826294530589293356251405076899197626412547647917086915025065892939253741452812817444312678841811726484661832454927028614275045950781008795298421116696590251750874353740931328328693103886019088381384805365917762742963911854691992675110022688041313338025001668186028180848263132287396434009983627376951401609261964712119970809180839476461038740573579151067082737432703817444373917136521216345897744981451445694032479993865968484346105015279686539732655331558946721535246557345375051642710407142873798206169136541946304268682007404631780668007129287980556634389982005375021383724922730034671755444195439177733632548601368250638864603687355095652569638848029009825909701645594047688721175601849575181191838029482415460458033865270911645360090104445978135014432561334159518832300967058335805241308537242618945119655431882164667621288155978331517650559449811273697762533024256385694521736962348449331372444851419829515573381258476426342295318564240961558157666193003358581595432141077597094701708144293345349759338020201122423348833531482828652280326485319697792929452443513409688236973041561829004149239962720905147267893176717403880079023141749712882721742172286982722086603144729343363265871936450996674504481700358158840474279038890215953649284311536357500531513928850485950999327178314448545743229716020108663934631278476351281166865789287961053175518033264387381704417160999815652397254322692010026308458397725876705494978470568018372645501485816906094387122079337513653724321327600538144484568113647752322662712123765654581311762518984008700161880069319722675084050036789520124926743404949093949064424090530285062102856040695603759895804878551820065316433608184015778014419506922192678060969372915082781120308345153956515197177127231805306051960365701901241941999721934516646479573384070615679903541784033253038474171840476780108748451341259447372417011411320617062639997128940640503651474483813794744161528758823810916915223596332288107884502528576537548749459864813120750599462123780214241943417183501787344960342797957107482302673434502722040386226431776877844209375036935149518162123255397095670926106401202611751103448874349423527022773012163035832480528183574002975876014978780446517032004242003906316454784548116196929760301223466329261406121859732930797909827859800762977939211611703661103656269702662191851007960267664625807746741524675000355299158263741589538772351640859553983699589426873248897969293985986116874575038603059638835822039725980894411477404443131708046972315554926683791410191788494645805702596000217310088413806056943568781478954330521558615007175896770469456025392364807809815549600876828215519693623937321595138169565885889962310831341880062989634408833011911167705540008509056954142076360883291100376094734947842706414235429019136496529819719344837963329202856273989843135838331472587460698681101891960901147893779695903478531917715194650512143968901511135443078081837429987325578828613881616025031641337644334518685646007555588162885356730804447492494918473752414378859412023403612030177618415186075943368234214974783062537522760409497063700936772409257630686665057940336196545078465995798701055094631010658599574704217009472313088156358613300942605508647280921391573723531993324956126619239519890227448174792305113310082529343845006422934952512069328020280353807462878700577053915851669600197220638007410282822058353785503717277670666457485486594897310391232149031637535836498691261977129811202856081800080103346430033191083931217790374618232443689133748142485987285509857820688255155153157952859729643722478586847796327438919786217741778783826312956581872139617939767764650116897557813505174767453821449156140661029173645036939444933338406231164623698428736981224093401453085459440915236914774893439539940547604549889324241329434725961065827978889085097663669322990752165739761235828149354527309156801559063892165457058925692200517484114531168392171867622576430167788543442966102123690134620767380339887626815607831576433861990104419388062357116655472165474405542686534550245291095429422129386677884813602573586203409267818476281726803362246999139114951243103283791083387678227699745128319373048146084913346795603740904325877723626441453791476461044130244042459941564621773516825601180793173921027006234958110962336539522236920497757249148833525524786383743173769393835156805136055277473767772563094160247488362265377700734280266660001942818507848264734585349929420624487954611249417923025245530436496799844396401330565968618970294298513354725705151850521782321784386242640525766978526548731045225756216652017201560189145121741471553069399260788066826399438785709250143504733573957668833920222692633487986195628423581613033590155038274186784146241909297323048597542175738815552429000082506624194834041118976740276767939869308419625948184332523660985338477263178221525004777495074055396592749205570546345436295738523144590683215391963978374217694528124193491624488753399100383059142959336135456543291011064613975793518136932339800827179954648621608277271561809855056843729848537817662336538889869269271527703903017741121225741065445259431138647473663879390209754450737474012625519623629581380024797248179538465475727694588659266658127674459885412570109269158140745079985914858349757526582119980432093743396616593045619648138865180995760343754212190190406838511483931990904208384179333242214495843862318684935722081849834193818391147366842354564958805266455092249471674924047985705207748299581746978349573795093092923486378855004940017844385191879556472680942963146904597612808481171671018298835477699406985551653221271842284528028867060173674985409010564910868760918050153408825485546885097171431917539746287196451841346057418543534943776550826624363978080717259568521499557355095615971337465514752596887409551473239066652507425914115078280888833932648013454732044743406189195334657386273954249075822121188242982901116585627816587895514477688362748992414060632667922514072181102337154757849111559739287009922703473906233391378097404571888586692239248010697633547535701009133780209805030212823537968122290126845274306647082643341369869909974144416455876836610894494997496302968010006113273572436811228441067460298480806917231872592289990156760141994204155461187819354550129415591728608664363215717087050510842585823749109398866899453608467891696504697931133883951751084724086849968609576300592252544407603192745056420807458196395519311211371299881468134427191586798083644056687135273458910420377797544460075475910974599660521651420862211086826294674570210063530416729442969485840592887113276690059459994272545796493112468011610135669161842736662008265378112022724419517204344805942927041973906733178943630461873731886247043308369220241043254620133556724765798312946239382255495590995106785802814530176041699288725360806069230781296132373733277117222881182068101408958923624882789238848203245738318855615673740914329770369027743130541587223132350990646660478017179837500271782627833711250743733541817156108876083577977723174323494533667412803431018900928358212957122579248768230538546645293044655584108981956444082543851703811336436461671506724758471225855118188276014540931079508684488736362470867664019744908885137531293793794715192267634343353280714390262875849378431993090805422105302474687597390170608290247596862410969393412351635167245028519634574996952155479796042629289658794559567859589480890709344585124903645618411812208045070531707491651256202378277465156111196949677505709659736619264475974635265215097774709865318916892461637614302604111953458220323727077392114052700317621310126399121110055882699627903625096487351473611138956003259893906947571128850392040584874511378928244366345975484154245105919429516127297279844108165837048060359340764932601492146974190038939313113737937302068044655181165482117985346895956171392553886258773074134069864806792411217427088680016535190427465135224794418576120042223969324952342264504211113484469467314774456160966287771660502021257033687275637913365223329117648104784008701484014783338482695428688185307793643357692415162486778963630231715499897144072108245493333825989905643901367630115155160649699661669740554579494663390505384563867539566435128949527064668364208156619174317699330519743156761853149267100704877931516504258484251679986966346769068653518829774337904275365993622375000345083844320864144700441806653048648585917212343394304317783983231366513741678102422513944108157224089743577895821951943405154394783249344226221116194857978199022302769329295132950222389776166122714500888383274499479437267829795031727106237611637577883390182442101968612331668859861420523745314377995885790047694275873751397594582231144728401174599380866127452971149494305513543727952612718619914993550587150426092844118231486732334723466965119468584645090908238887810866022309491991306046771388601840123004811463343409651344975467359680343841122485400525113242570817297777449794906418174509869366821316774852715028642794001143502286965071596581809852917371172666922131549763360632231963328518937734559456551584883849647214081778494041355571264955277470862791459966828254370365705560482786330366978155738091965378691837690927829971649448985249142522836587204779446946454687562044726255486001680499347020434807988191864391982806202745783943457310950683218686687476722201313826682824043510472443904613673477232334048771226240590912939527087400331745581746637140934252043032008417752067974098410959194322084943510335959448318420815467206683346520467099567710803217074223892759628079485296525338747451911729492874217569606055267648633674419343940907386734232884126681265996026093876866842880559406249807766295275641346749767252810459429429689318857743829006684555932498175714285704808312589241737406286040263293038521275567202204842597075219662257614702113412762970371292627276375258422074869770901010558697939286438819732935634689997641258313534085420921311887624474872709993663635362332221567273569176336907299401744250151659896169749085458311595157789491520043751618098589310256070734001053134253140003148204446662451036502114192516304635931770172857179351556783687787475867519451826423713796387782443784750114861390655772638015361801381802550365798644939739653982892348560411460597701519567477500109122008610627302796425653662739016972277115036781661543669379321699333719327994838353624750534116082114441459684735467423743506033305368214833811992211280771483773307059913383008282120985796442289927214755460753958567802453417215451404050465956215931943907346313939377646014130334840289056620973197504693814453936347056569172811889628935909697449431616882982274575255030032795363514331373570331436489186459937737626477079834023860736020749977745262144057010654974748481289670203868973885520880862796467004964139960085146095977333864623389055881710632283438338709943956688081238330753530867858686857126423843687718140366191904402142467610626938374301529255037532355210586091822996420627609063561723015813194823652489575062601943912807963373386440546851592946018157613845112951938795474794732271523396737432211848717282812113730918359253093085323481625129271225517117037427209654896386119536454647884277961867836154531632184961518261522855009061848949474204902225384195456939515675657516628245972653213660985354447616639432579944283041362606693030605441929355813299929828225089306638970269149491388811085722481956394473577451959825200128819792267394143795046995298046423654490447681257722882533297056185460215556381034133909448159604874212562706070760645877537641815326516947454852337067865288811735594806369315272038759398639166273856412844997287315460912255169131536694559103140260023813420982005465407989657510650540928734528780915799994964919656348032549838884087676036456240024597994737993209982790361428617724215595597824076112193948063096153707770317065520737599411146937030319195198451753947283600209493174987301106205581171180323747434338584222406198827637693633089248474597207626995305750928555759062741553242924821435204335723010042799834383123094323193404193708203532902116945927857677625030803421958025679275727367315211264632156113454388415144082703984993296401234487977521571251649804124689086309029084088035216704758384496426731579406972042341007232840183448024539384676806842354078096846666564691402911792891865821427497011929287702102849950374815947107497281223870840184968393381509663250396450085984290181169068506285678210860882274259772198488165384558352345763999939599926994458819830627572432982993679706969079499712332223456009333535609526068995312866846567557726905801790530806984477453667391738671582289182988539260103731983962581557720687707596724306039279073581825229997291950482512789116599553211504985902199838149851129249292732988017309051611411002225050021427723341383613048420527385189560053115568686174289080562853398129631894659914484394302214020754053718033734367769536074731334015873341962040103964935017408344887559028841477986617654361058525208069258207996698499525559960427448193483500483638750624037698801913744341386818643584402217278911756208800637435621846958367832745968281619566895853988712030231472956283654300451420564306955741750198847767538579633276280126571649730967397139130237874530171964202814940272981305590120902488287632758123589141301769269337513175871087166191539189547161054728555026694513374873757833196445434561528813570976194080366919254440973033803288382199241105745155536328994343631353299425171447353837666614645961285320850670257157650286188271674870807786094980825558209572547441498341434621397527952819260891620247430175659883621929470970306570308554932816560197339100869580647459189999315782623468843119948525753169816893856341468346075663735808662931589963539467466106586975584952691431258475022647671329603756305033832748160920275088022094318639767447012260434302114618588417912157698974685538010647915207399674859329526800090163707413515249202376637643558863050858393526839655592321596555173808992834990047047743368987520791942972811591165942179715842675750497385478238799432890179547214782729413865669958812925648244271243944626162707855134741027231940656664433796878587305790530640096240785128221369312047710001487383729511075423642408335134641782729559980553329446692863964406460573970712439246028517116891993366847324858742362845313482755413770564751416970232826304262008221096353031440550617016380619636665659041513462787941002318567110297938713383927925372918635206947389632591955049740258901899588548854312547462029617487490520791587577362069729521180385870032293065068927161928978226923080306005495679359641369659141245131073771638411887926830927384266703466599574080071335394795703183946312371829560623193907072461101704238431794960545872692615290230875090277780252981068695153532417606095303215206153073215764643984498544339126220076643243930600498992405803134554910401396308049715956547632505286186306683250425901338733431739589615324122797162615728115017409385989684868925654542790809612366237216737891671495576942050431292123445043706093430670116840139343357299099725803684655764059760287112677406921281792964988975586945429634975771889632567851136351470409850499380708365546051486807115424474477485072892861053368218637295552592888341388679035795242833073447904363173517390273121643213142487473403808017206338572279155673515406941354835916618689193473933656095931808539578956147277534266237723010761559114435586207903479552428706715767054645276611086301183297188958380176180739462840852484806734944752853580339140248185041324640098687432994813601435870419206973641972423972551990425325559254588963610610497836343072234669231022395694827525754930487303295660629570523654246568087264838771082919089658840355494217292640004534416779142504432559336782500629888057513287923411012479164741878263007647671881248543862619633465996307886651052921009609584130211609587188768620747888137457856098874295812166807762623130916802985418270647081562413843804671500605638769059144489395741242719638986920690765804518545168138048135139198852499444203081113653161996219645364287060930156117789669948412198771550524346987353897281145724806858915887339278025356906003327026457274448089916631536294991586116979714741041804397362606604172989336795853700288599675700754184544701416244650892751550362626602317231155412746087419599409603721420727335778685661865668523325567231439461461472099669971012860134051263748801124869637368729779407494678235932167500233720897765179076172927075419673839110874247241081548532457161499744205746086082209820153214410378096173328690408256849462921957392943602104391448352513369866604580083474643799700402504937785982362081026597313624757048715241538195371170267143204557537243128631922845736113130560970213865570604310515913969878120068320494212694649333413537114387480012610111614152349163264863241649957752098445163527296879738051164226312963284316030348606164328393118200929156304797211859782801818262040852839934161944392814149301328938966019959551159724272170946786928433543062899368647085866971999871762144494197644450344368973786054383599971377584122353512783392109358504983918955293659119240064788801833769511343974655675514310177746140859930851370569336196241846510807693500243250603191322526658762013262637032277259973518054350279439733476328505561003552543530982202951924162757270902937427281033228510808481101985335733974274803493402359889767512958217589907764625769994485717785416133352674890974918891166703392713751189202479227916561259694685411115940498622537440106155023670601179878700831343210432399601500059531467656920967676046787713120001668304310213289673373656274653414973456971158501819713941530556556052553792793814239530701762353109901398665019601122030297556644771948331246994658016776189756315678730253487149903472769532546373897058395289304082690257444249955726784818083283328111361708633081547942301422950320370942876736231244180533077832337067401481136526880203379900028444990998360080713437890599171211016533813269710707386374365756569855337971125071334671659290834327162596829612435895423561371187507211564283584633071013303495224087554581942750246560663744800827711817016959498136803956316086199403122689131704598160493869678399948195806869035140340627920249030173703185537450738852966385514091449854707045206229446955828408498112817380235444713556883978507222243722818271565433587532583545774693798664939109220369747365243221541585384207919796753674429114758011205290751422123103959789222963830234232603890718038102882787533854894783782413776626779325387017373028094588640468918271490707650835898345362487772775500640682318755660385599440337981463393264718598390357095078135109990630964928795175950115326975518268779908157064783661286688838524342754773185452692872241681646731194984808474921225084940119617885098565723169411745374945657643297724036667258641927117801476307530866137181957404102137038656529844259860234864068614774782752552342866587706740565572652131675987641694165189925841371623207558845810493233583930426821016647000884676355915262502159877772549881396256462676690104134494421196433302393585821524920324684248508316188966934454675654749391174199572923696770111946282602062927503923075809594738876059171081513521276241644187434346572297620874039074998977103634748249123895153912324030559234283407259963862221262783678427589470472831918760591642805166476904346553701329206829980688542275085925480528847156741162645193192703302823827547845764827859768554182540766551094410517887176760891662961467827361700883014421359603933508424493154273417424104585641075406818140300413241630240714463505437117174015095129968432232562510818336689043207637202620982445984031058625792759047378675180143021543162699634911446369543713976446802990100274428465115411617662458387527552397964186219150339917828578398776360892335829673237688562374400397574419931522771192968356004527081353988275081513329993791717326438031895136409100210260448284108151230471519871081969728483680605700583642446213048754528752465356170085754372441707127654013503083598267569832943837579182372229335036090518893289256592042342768340936935293341778426292958210440428635906965720989815373050024939738177257556936866488472768884958740577049078574877225469457681721542152970338685677705761851176211985672505385476218243292518043562245118824187740991622944579522039335262589661512140784432366800038498333676738710635104611774264125982132716011164411434907361622197357384326523032803467620712867160509933497019503079197946816144111312797385281775002569835783444472232140502642454396057073662512072713552039299777925530218184183537978297145970976642557432788865677167610984856434005518645680296848391603058669731831127208260584159124971061280455054342698380003547318061662680228208422977976037488170032921190581233098019070984629688545747145011474120463591866828401814553879946727932005357899038730294030599006258764562797788696875824250319159565663307384215607349732794865487028712489628469569419116808094294975204330533252234949141372434866742383386571440202718971407049910955214113083982715558134054239768863653424528483266471696328335125755544167899807433502603498177137588364340773609207627600908502945910492227932387635471141496055928911478868471782172357543868174404352794568675351703111457207547961814438516716432572119264407453236771760787633268999603810852226385854538579075006484212465662015449679951936152380021999861894211359436986518788282528476705459949068339954100635842282247159246428204240442186269006202813810319169175044227377831101211214364417292124983821919818605020825752863015215905396012273556696520680303792208232037482615083334627357714544953437779486220096484510023839088578332337369004435931700528693886102117484494121763889452773795700007977723097716423820333667192976403935099533625256432828823446957454819150967913618008963549307329860682918598271346912460184994007949832725802301050226736783832227301281051898591735636162179929810475963400761407751776379504754599243217753200585438402088457106525199458292523952527359371438003941237530812402332358451348047654193831516594561068708823282870796410675313618488666629729197954967616152088168196722080025065952428348456149489971639851110027115656637587883064680888164142348072498988327330636259075549338126072897245750943266838782362500652507907442324215316615374109270921866290889508058128950494480708069378613834405324592841862225313346562349589798270634679872928342040424610903887451162488240840287959778514424531752890783381147291151170569325667611850376418844497044520656480792386075823158835677209036766852607273441929864141628524197938346562600070747491574505443679052645756932010186800593981021972938699555019824330950019841910598026278893163068384559999226583493651424300228236222433303493979195884090515685367052437703823025222401305867146497784515697675313848508284996731451022909662074359968852132869053219561621770323965639251300226916439512482897445326534869886242864512545772491086791099643577626287663583055859655167146649227667707937800932742250260864410315856479380853062424237188487701562595440018076561366984738780213661879790589711797024727884493243434159839673519698831813917508403662002871047959658793342708072716068502093873765226835628047407360034478806331468182599389559581769820875565601910421801958741683183243507862375782985468407404453798124419429886055293925289287016212595355085302832390354550412835113326349791292986838880443808550865625945693641523784851433805959677288039280559462832966981534264868970366493688128058288649420630359981244592720063396139559693874127625638038174619339303943592258695518189432565485859226989295645211726030786625305192106772647265751288197650901786473248010365024779599040765373012662131698986024246219903935398012565601829956082685385999085424393746774865951109420736865928875389874697051830273817640375787384376202445274733468447308717694935359325248976929236249959164471453362595971996402439860783116387378285495070989560612552693721078860914481632252432392514010126397046823345821198365975435285540140410507480612055399562972529741616343604600800593071327180874280557043147388183474671921009855985418927990249367106652711623145375011797181043354914795643817074023563372318010065063907889062628900587354630845674322439012398866999973331649874460062194599567055373240186535686637672119965635836467919139360813973281107972180094368543841044868316372262714455692839151911139219343221851287521764809327315602511499444478032017041297417616213643747944666570602951306634112116754051989645438396058127807859648941850224076594548941952888440279040235234591389475699769494226802370753123038083829633405285441664162142086446193108186974861826813484734431645601371574736413067556291865679066626378284008226735646161786425647371773762227617900699881368548615781503045463546927029891482739103194164438993185867712613392022548304393772293092356372633529152512354600701992742694552004249430385615309320020359009040704967963279394864487472717978298528951662716618254497014590353899672374393393058254071090424564343567205244867414298729023724957923931123547436944144708530910506078805946090718019948599413269938428336669481680288188359979740923613487147990838357187787696322565374423336834359046752122507236372199191339518388162798606804934139687173871763738649073775347879470110565996341522582563080644081033984748462027592950459041297014718564587562231911019328863076704837887569332887272325980810849482281116426800198191245265587249823550233153614582962080922341060368708890462594181133334467307744702216677806509051666468279505219217447404504855924999549041333936595608836546512881355947279751165152292611759164119179802477316903164104932226328833048200337474005302485185349531894176845673391007436875404043981293978097630099800725017590936045233774365525777539306234411634567281294525328873142201361726499503177457686956499925091621574438699311002561576772873577913519674759525712214031357539865451933385998204329820854634468516549196277876464952376638824851614648842984639097241248572621550047924940363714718587711325055547576137065031382180790531047362551072682499210152286576798599947868383983233708366893510278855016108093171608717576796695006215402828132111531805336844515604020495413372382642040043729834735582034211384899813605602178809011061571996590977903707532553802844774577231343610525717042801755431165264391101514652404071423672730844820829172955511099580674563215379022230367547260853634542973936282106327257982787602083002235161155142637849748912658899810180205468282398829095750495183520424297903351624425125768491708812178527018659916054288623105305935633621742746896787591560287601629717434803887485460190375665175511454372537198723985959903438631108518172148962560807979153469054962997183248714334574681725613236587432484591360141940120583908515457878262130134073635215375702516072151031524460906476335880438889140363346551361202491928018593461599197689368861505292445409400973244253977027670267307577643320508492514034645840517859992017687255063092015940486330833469483751630809907385828929607873979732207893403291243953734073978248897571526338614083760360028164543025260511066174913383246578301000489916932879049150297309891223192490833036808912744431338494441394479437481814077868067264010489566660758121920275921011313439945818094994534978944676952635895137774291278228446386112285719741083385307369092228314551328751331933326346573091066246688222850202644094147892963118491274820644818104625253812954997180228705052328269484047836844626376995354129773629935971082968715380405242587769734417494365364663289485741075947801723344194481444412380752798334156019656116633499160403707246391980361244849125244487886764846184173373737105204993363637437236220638343046082290749027601387525625113088128760367753523672468517447705490083722705958810868895249082807399076063412485749510731225718309508989283732471228393218592531203345505514235315172376522270358219821020693744737005788153205940913397752104956524384613141241933150927629587341958431724186359343666302294998807186279099687159793668489772894726725596597717731088692387095494518503425179038839356224165904913092705471683976328782371365267319429336398381288762735417189051376216817089043017426791194767200204600679203253412135099394567654769882403288344225958818382916749749672932925335121767270898841733693574493445944324193901702298138719338605297678794232868560912265810069890656695216590537611632140444347348798773697624605751101971496213569269200931604048316883945273302613717019538746162445289557431827432367090309433858766419340108819887857725500119182287312573388049108804279623690236917754252857739886466758166585813820245529808716473533980822797470752801235602783287988559271164839831492166673866936787493052789937822220405182979128013098984516726031278781735567890127257148499880531459803634951489137632771174206319404441345577057260308007528874730415471291313707340972630554826752299124653887629461380906954145375902608653102380438947702667364712072926888586639652055796237193467791574385526439135816198562731915972288243827225870331118015836695917796060769986611444176804226918699305501746891551804237707835975436291482534056671335386774251731466396934210897507567331724868848749971651100030104292686177019291615438919483917202198408554214284640040929456151373887631651064241778352711458688763443175270960779834855570091699003245685667608763039240690785266419941899839668773985020293594242995999135405832464705283078931649869677301659094111228928880785337882886950180433181144027403321965052242302541067046733292447670198122795852772823305189384225567905162480649862636444352016501005146637599232058049957537803359318605924678832875104076459251504540823747088838981561718790940394402299523822445161595721111545880736693353902331630111269339097263412080388781781103993049973172906444103134931594884508838636621065783141932515656590661443660710747536473243059956666773144986869117075830187080014855715792886902681796162308471757150249718142338860671972974681729685291345377725327377352725163436930703103429178676129542433889082663655969085897747668521557605399354570951982546742037924762667264903486628138996900922655485714989650575186961923394208836765896692386194337052118011651673099704214760404966592062964418860197621016055805320175089640370283623614644371593474635577298330855749962483118543389844433524134960551903305857711503379095852328761190481887422933446628694769457492307664241876540536885188514364699994369878888728286586567407875406685351059988199184065683886768616179831556174108116748873327955828654395857680078347493445658550337595259680359074052318190173156994000020851386816856430194253919914392458671655312250031762486022438495802094810824986964172333784946224096031071996427527339562902333531391856661642251231519818743827897271910130575274867237687269640552222709928887210018594186797203556856576174082888321124716352065156468646437538991340498364799779278333684170014587216080277166432244859823490091908237222485057655215742147853033332230169744872943278284166169021672267862662254479108733658967815179601328465685092602749729428346929472481034780637019111560895984876577496122455473488886978442409944882960391098399652232073973766984024364705855991440067347511886753610907967142244247739158359895675970250862689287177925127040767135918693862066315774874295090266068540723524979701583891090996234985908477754369452375854506612157290304573854017991512880734996856718694060605455769021338234832299081817336338072097737380596623205613571708522484962532641380196648127809769877186725453952383809290911180055011350288968975385275484856306935359833879486895870863624981968916702178996060842028551293873436451013297569821025314458719948332862440349126788074134449807762612006986075448270938528677195904999711854394394940214288888088564825886622369689446132068165479900193884321477849398585653441184583448947907401145198711586187326779257615734126378035570040886704245287361004674197756827620254753005708445190892358433372429303626299727511977778430756848737917623632470236111652346788670778922276801041226428937347663777337410216406097731311442028301120047303762561811230195608343276102608837232219734234035024508487923019139556771160392773783305316822403334679682052101739740937782526340561306930777382087373340207210097275855421330850764637545737014776507812669823435409490997845317892707347832036173583993720669991603604791375177383305632580191807912437531827709281232928899948092806955717472579587858226981632008495793525337711101232787102190115672952840812875493945937848310898416508313753112432221460997296285558876281960092780815827225748533606280630467354942167268847396612847205951546471799445951675776798158032429711175006477274463162191388824930527826429645224242439667473211231411363035895969227364827329517503259913932256250939420833206659400592709552542458734347764457838263691472566242294762173850936121996851927219218752567497930664421009381397899906385367962540559377394330491835768008284624802162712548346324445604268052983123434384520830169735099908770197583549557520755828269188586802211390040893449923792354487656875487912077658738130012379990546543894835609384619620347063714187032848459829661725425940430275415986451252532316318951295920707147950839394301831423914949744902303313479550801744352351471065420988696250749183239583405320672260135207338320995579062298298218672066280263054484995149339287172918201863373906179186748719164422146237145543359382876303868881131163140935335424051841830686415348061099794672705905682436222809716061092793131420084349366569978214126240858278882255067093511042888376717402948932508887149163129426830937388240239849210250317282833559103740276459573791214066258326309077772294593774567610568798926727475671497541719574313594258253329088150489348300911990226668589340154396374622375859821295646142279992769000394321405288483964591160115899721707849511104841332800174944845827788811919548126043057899566050298110808543553376397802516142153494213444432578871916890211897763029075934869845732726772117303802730269862527154959001124847940259516669384205754151765711382070664272903953774612933456938851617963992664134538260811906006442141195558524439366573095004748220810887045013454517941570521573333646420466924994994077093713182799869039923759742835244474841624166161189708689884741086519229962264354721238674211623579524999962142337432044837491366324878141058728242507666314852952072157778003698357787715550288811574923138289211761573152551279523549962907157298420138470657619140319428560627264470659063484028106618634132319644782525855572165878741880824511277335959679795222378155402582875031486132165132217150211244668400844727839354336423933448425664718139533945560494724851404472925170221839125176841048462808929094283213570624170172262375013121374647176064254397252708196984465155958483179064048557294293774426776131208346890084589404937991037058424175154952058929644280865115517642290226063186613422432371829877637887988910936326687178088995405967593147844446331590983918204799773420300603835545149931633341091443887555733333179885527563395991270699959938170218715751909686330437541597522492242790642268729707381975300001470853493843764988882887849629228875433968823528465075579844711668205497293354300961264076295569613752247272193929436249777677163775946345060358783845869943712852470387189934822074148892739196498263676703510367847514113296233624186641224345311179880032351889444501643734330448211681696616191301952578371231005531150448547315782421564557537705153429800026420244188175388047756736569097775849504162153263755168850579165899792377070984558567773137392368712166209488769688990846691647945477264102949974972589920762591208140762246431345465154772298495021434980206352730114808199329777309082547634594583467306425071262116098238808222736760695294782072193819179779454854013674396496690685554232988826804568230412296291470087616175713939429467868627865672941187105205586526827754184247851937420136215727707607189772762348307267270312385664789744822660225286561489164460141449243147065541463287979299056182532038651856858834658420291275916320662025430970399476105165353278300372256027759114739123631548557105711839594673057194890756485083662456637161779223548311051547006857366401619899573123727688892628298167509974235927625575136288668221000481025034791969069014208223410770197224748628352922332702577263752936315745948156746579390775845795118758116741109923239654951257858935542880541666824144764484143953539488527681232200535371395260182894002874099555576650508050645683790957318058012239327864056152400465835148692214075237526597483079151429454212534868981659961032733403971926854056972742474371641905307435286703523288185138731411939406324626419110374873986837311094355540164183981750833173621201158907907015591514198894767589159773872795009884513337851815504997523713320296162836875781642633394402997999794707244242622533416173841449973260883519393982971231293832921834580653613457751938868469127934217209374284112905777199577555034102023094383321681191413832855480107677345415199141332581656469595904873068940122072538671298901311913719480031465668724247825845094385957556894201587174853740175033278368326858290839089735931604934039293778069177846322075978906289158847966712093513502963374025963143327182653509754009038604957547019277902497562725679040433361703454153926546618832007169753715318118965340609408152086176885265436306449840483452707309445725819458541107474282352935215413695372261793221983193250265147581297479545198183441727103766453205389472835602090362769010687963300217278930207742806796131655704700152062314051906078625850260114748868858892189316088247721835225605343370671990799148411909561164315377315623205366096918801784110852967824371985942966572677280452187889292097524394502096158716705271499429286967343110185670312131044504462464825067546222692714365743424758349297535930136119166291818336593531547401999104193532716752980123686939608170857327320766967012193844002722604366698963016483895899037967934041162058598268037332540581164083944821988006463738943658183961454893893717016760342170716741947116143754811165524162014824498229724704770807200348740994416416237150598072095389633484136844804137562483922798685917211932037675802331010604016013082173129143685678046666384417603264322459192493135122538001509591070859643080099562312594892247901528418513673753304159227317538418896444126780423295610471585324587213158820060087458797870926730891788918917061598184235810228820589333262353396573510957393904371997716162684436472972344921410375224302088042862514357195763689623106367069471443863537379717524263738644990146652713058989434429150768922106366604114253363661642435456616346897976300315893169497218707760534644326403756104453466759297165580392801850621302387823916607594759242350751860777863580334098398685397590146867490506125424224573650765934658692345811274119006470658554572675291753188044845189369523562634965946606715143493144268052284367695820919006627041406663341853508415361852531430309115163224459337369938492644541383454953851755892519873450907741151298636238401128276062575450414634111650794823515121279645592741627559310269449764182612879620616253820423038745100847111931686296366660378728707474668738927584158685203546992654423360014717522285796515858116922178754802985801856079011366488496421180847660039968476641482734644231485294705211144585869763877968358380421065394122363522323695020413437672029399553833627258622654708980827184716791138807481116068565170740447839114979991849443665188062495258234281571852028188698488430658035949140669629936484564571365302840456323331188792693940039415097513386621504819205266751626692802543232997363136719695925285164452630064265454928711559869440074826374555771451727478270722512043967721396068376407783298925201450528627694023614430043652155702011632509198582215134059845387459310076800041461523702124381811560698186293829745940123064014736643224997386888333015256548051290982936195504529903343418861419603768355186515675208706401723004560501267542281694582832693916980257519069546845318991543205385966440648273954221265098998573593905906642454074463206441445533291351142090095578905722237385974925099839483082981111782808868030670883636625338728120696217784414835425914811992391792595149545648226629999181426532294878217384215993157180125614012208952265144095112958429993339372198246421811552552880597658832256863180455608951700441298336573749545807232210771824658432896064252870937031731343009075259314930470246239352620153867541993141620308296267566425359284970634134761113139751203336358016533115616922079390641543691515231108581678155199307791019291051801426243760019153239517230292752162356585684194327838070404621776929117889940464849225746692875684594329403490939572736262533880276119329451090124607362902172436552516070194767667026109930508000532820801520405009760389935541357378752039293407722433163960912916310151379150470612947627330590153796886329221126214142378820266249058629310672000875639872640724028535839238320249114639614271674501350229475712537197916580152303553241920870946064407432213263327721754370311609547809347312709011849937908309909947951862112375714845432632686893690703656700899542241622411280573856574061208430889862273287524901679977447922173977061346136530551690127021235947164615553357260964055712356889656971736464612503315131906558686933293204927396404693929986361787749797524317207971364268993074374076302206696694178042106385606395757563196245394533258997834092062313725088426283232389550571340495279184404431856573747885885036528205541868861687535065112094577698698682416914542291866464206539521095121050291645180476416996054002203448952480136259024586440563568631109945483284586299481703901699668257076919317803591545034634960318057787925306467807151228940035209469293289857749036800960323025901929549836587594778100083467951976022627083844782803182641608207527091962121226245893654024259612124197268791750633685871010816254194449235690437872614320282027709937499125117634188734694193436067973598892866135184845436430149112212484376233514044226233197236758789517669270799214919400108711549576191592951147323610903695849318180482818507954298554832553593703985299241015951052988431020398140407707938160064374449173842200979673441369107527652770567716168541646807641289688760505931911858058808670222047689686744212423487159314350089477590895154262648705357821756755860604211907128366454198668588390136541785384905066620702747797707536386595094467223784698361875015251088852831111529044531663504559343802899539266118630879475734166357926967487558744433261837247536156095932209599954797462886818892212923149670209521947375790912420659242477492678486604650692554386295585451842257022709401506667920253283974331786940570823797714104031708399026578703508126900687177830414036854429856237207802786547769817643840499974236818192368421231454371483113770769755579012427928222421198269079829333019256539668162553113866762113195482927569380243222278482947613343406265756298759690960027334191030788924606773023616067112831745560714452019005692854052825666216085914269633784630205376680615529024863162376288591176288732778104694830671305074628127660042696062859855553923751189292906906682494067499532014530336819605533403244263750875940832985459216020106892213781681589789417368010488917473763908510736150592521853945351129421247399506951203486894225489196232638490720782555816544160186321812815096888629442628435625809645513217327582157715080634382598566625460699930758699613711307339956064793679523686592035792343632857925223296146624238976140126952650715611933238649877066858511487613158107772057511670071585159759330696275360885891550285697704996103117469874425744775388530111125879453571142174402991933774880079379746766033915360228000319591734114379752820708292939276363280272066082468335897696463275185957403019142081271161979389727722078794330203096206269531703242299344645547473232607580841551256709397974597814862225392707651698796924486268987817661871214518352668224413516208630948874632580486651073318914321586028367408085461157739911115789027309482239428687682887540359595249724613768460761222350685664666839501175579714766506737991160061399160182721554523725577713920559453369055859493121223576418688344057434333803534069529731552673455943842060400471332501094482233730252653588567768058048530077060538836085490852104931924485569607908295888626492399013012503980289503247374841655277131198366687780748336407431517753960920912598188070112775847973562557447863105441344365277897508220064474753380040755451344738423349845316705979604916444808565483724631176062005216791152079089921284288113802047053882915220606222636843581469782685351995279922225152810040657796434924345055331742342423251055212270859041788946960681806389949403782863860768895353623246992087525299159692071787947981567491805853065832971210147992832476219731898819300982701873560727026311475067379307329119138697556444998167321654851718667059828074102081123994310760329386078476142485916537701732660796482422059708936284727271568937462809206727822474573461725692037320433672762146527956490714881361427268563056960616282440209356416094737775446144061752645043855731915066541556658245923636974761846826309397329366932319150711943571225322949428769019032985053094615593118019003290769800590187260354457473250516393194248770860159780840155579496867622416777118190085781283160100387691600982570858636925415072447271721261119474236622918660369586646053837740815380104611114551713070693783788511407704973278111516028237625110291649986115161436896671887765440795727228952997156106833390607863266594913388307712275566558128241500278737536384059706423071616279221121295914993854298855563393983589449109717600186928627330185552213804751474002782733314680861566119711406906080593534178100404606960129295045146685140012847671906736070975035548158916556045232650094944945454689203191966896359937876738850953532907015273586277166597499629967466590295772665828052504599376830974481556685292343779507417330266120861350693074963916123514624336976953867306460795672634608089147832071364951441719027941236593276574369210180757601840255497199302498425210506162592327366675091537398921051492323938121587380155458113811445279926628065185396322812222024731727492798557496356167587352381408551576203366098577367066958281076678400166729715755411166253499174260818973149265909088693125889817818539375870664128321645613708607689004339208990249231372666491403483648013063120774379848787430759603585582106242604606263666035316978076553354998269176827198084823629367538726891773112411796950359093288411417522219717655111444027198664493757437308606529766562094166170949951328516055571821544234711194457943613998065321280196466860886902308092655078878386800550104075596737631633280178721195827962382704987371701837734655728430119153411458606103951453300235825328019421301919612976777251637831006004423426041320875564224406773210420453267225444336800489000558629610705385758956315534206410768850441850734946336927164197472120878227178424149731717515781393175331366985645692940410845889098477671465341599286584661679718378342049932147462322059647706992583879356125023740902113755523451613760244285155153704623568648136114524121653172418099859515554099505457520387784081533950373594251179544588831204887520351462599767014563281823652045357821156341222131006778994905045808992002371417140946053843834078416611142848045153192207749217407365189764388816078365230981968562436339886323091856874342682412796297388882369328858428160495010672489580994788713842490746730501765328103177827932060218533391421648685593483121586562828272436619325780806245184759302031212558630861182536711508563319624821326947664147272840201502200373784323514295805869530885551551411623632701142315174994517477285584093944623245713280881978634462150556700440382582536777979212868364633830043418803471515040186876211823927847459123354471769855003034188009889665105417202996410954206562323421750481588278560274769327976610705998667368173681615016893218634851832535897279070257352278325140712222278770612402244759379314806001106048768591212422349155522133442370581807189980675354039286188607686953705311344041710999296395014767102485458893564715875482820659786157323422009386099971670392815318945950723962604751105355533953067781333601418709107247403303608471475777599516320567581794243294886124417361601307224809810708237888755525891963572433492888104195440080050260092375299125957075222690590882128791723631901379515404973674935208787919588418470184721958211626619094653692202133295249786981186975710288661866707582834882688733968289578983036140019706327270622127704974448489268029910289500874744082379672411899673516759155011935561974509948310919175348827983858294918809770701069340739128506961515044548456494412431516185350574737955242988394138494265223434906442038278371127244001206774213251266582388928820683164504775727007373500875878221630595631910395802433683815999515855467128725226625335621828201495713829457521506037111682773376553846316862094758720060593098834247525715663848788394788245172754596026587650495488445305568713775600912159831448661113567511738982102930214191062554807038349182025815413178902410227532800413690516209850266434029960674068055073915906990584380839002572087131589213556975305053737112309937795834449990839296491531127851186215618404987495702191431533612307268452279101869496645309715662513785107556477644669865968051043629839244363407358690398099605636425748318584411228907196684715080399969468314019388978296133743235785076956671647604848912459513547796073672018848420872604963364042054454717737421107392900067836428001711946675602969192722203618173445376551602664228689097638638230446445325437969172974453299987055128050759282013862864011472868717371865357911772367026995269089137392283097215639435125262795129068705132887897484151135853519254343219465369675254944529153827589319955457671742678681121391970875628450779308709642553616948065776456101400021664772113644138986125549520219836365025360691330346786988749889105077489428799817746107494412545542293952120519459360713821005186101093371313346124597234692767095181136047862716684945238213891870580384666559594681172794981193877730621437176740693897916358208234614818438312401273450958074571124608264207705808546096518898012262345360450878103609351227948584034857048716558258168227022270680014028693874683679073950788711353539218708729267570139720484821815835152420582411430436125990124209822696804550665897526594520467942856553903556906109902407447998890685966130064962279395967711683439258018134337584044717186026450969165343515272018565236956195410402419649662961750345438000729211845803218318467107891169184530915638405436899789848919242833341955286433114009799238399897859593594358717033615738871886576130917721454979281616289742316527412795695717688570296976782268291035320069178065684964046425092510998711412555352815133225375665709738750994971341196028628806880287184282283343750349476657964404514721347230496478324384416097280582164550781461174705211715415732985240204878842153272004425954197075080943950337326928151886508358629247421763844218200124531669101042440427166044870083082132571158889058807259416785055521018853821259340173833019361829774057911691961842488396097590570005199935497178154601863699048638671995100683943012267841803443806672715453481312748339711633161626748716558343623946875828831255753083798558698347643528736186391470846037301873536008369381100233852864500166516789137804943839259559302495884709009700558611482905469167749297547981161210963274902703164988496681782670346746680436786147855784519875874761811704959436819483148444563547532193925614062264645582488364941060259292105387736070649358179411024282176030600899890484147563614038026233192948295145196657701124064876598831395897668989491356010873589820345550921286444067560859393710204050798742900964416099899649746842843459556770137495490294096746676034767449672782700832171048132011090294135338910788492435889465251095700238953131176874089691005946949228799778217181657199410834657081451346302867034972533497465641775207001551416984836810368716335271243829924091234244928900445355674194164759810679010264798881068901783970019199655454187478872513426420728857299460214508030716066826299410442122444810912126580383278767242421296049418353786572890893560982348039897521533689152479817251559948632847969132129255428834479087900785344645442691709098344411351556581924655222254273383437894444171561224819018016711127563773413343382977070459705516584561137170344754374817120925162676334146409192837331010974996144320742638327318990546813695915594649120485306103624969304763335477124611259960083944186459907683307387973147018312042242382374489337145622414032986531388705089591018082021735904482338384599634835130970691506819048362537988511327674966861277617814763529105547219487056373855131395781962179625085844275349486288934608853926177351629157225963511195536359524824068476756144215730780665556841646351908291641293994390822417350288725659972769249914894563717265696364181158810009183309206241426841371920627608754666442964728328651542088378687734082819604216263687007456660585793714215755090671731982429094019519419121727388183968044663671881830555438951069778167315187876066146040953729146744355757935333827811656917435928382901490211786273927519540275195176884211575319057265238388785849534318861214997213209086878145975085366336415276224011591677562640150428137264395923054464099182787334194882952086202369113083448618570529012643692743484200119258906285045662951805532644953920251281729064940933908731140213689144551267935789616887040913481842000308415791058499023011046836231512914540650736582734323662565401500067149895144843912104122765001566103669684135436212914953074552837437289076174321123615329835348368748715844234669916675473087853756026548942895626190125649785223588697880827812248602577927859130778564281300253049838533963161132524376822459568414514920915325747012083708065461488429684618429088434156462401471606195581967390765268962731107852022746368479955957900060203590430993227329419723123965457782382247542482872125367408669788982320939722305168884436647756125353266772702401797658049011927237671907377422505100894936347606772217289043645477604273929295484942184662799112247217776857954601397120033079761306279576385054237007961667209120668669202005980842075631165050773614243217144896743683894583902585563231567799050319669722455786023899844182116380379237753606425532473506770159871338449250531637442296992772302241161513075630807868406249261630299205095314039525634355325538236367373583586890710633655852192828604713317452327228097612866865970958422074607972518964400429954044555179287422498317159203943353772216677165536488794136164488849357584975057708521753741802045022673822731315502241310810069446848425620914828645706311732759344964426124729338767477156376793333557815151832937499175246926584272925894059530023419978384976468973701733714907152889348674211852275404225143565670826323561271398617333428153977273522613282050226022721218052786611266064892694843121337580192969281546410608147030306366078450809456857458041107246198316730745999459750340221335678858894520657821927049660056648436950598097898526448748145869338988178527779930727816262512063997080491647915769956386628687737815221664409333662224625808005311871129816487085718226914934218069521518530768413226177652940775594830875274493243256098450709007498727760724126475178514648324011216626700948821275815704538100909062097435425580274506506075894554965727967504440471753958465299204365393282020611385289423130816511922217559704144914421760176456207125215416964061411161257992279502023307470300471092291866409476584859264773899298316401314035576988557391010097102858390791441944339572578226221059549419594877975001990449919568053453989942140632639786586609526662369887320768598882596157806438340121184046660629274150469324261581236276543118110176548736496706442924922221735003037624234733984727388318458519994619328170446756876283301900932790969980606474340912388715486899254430594428564102152844505124531789495040347757590726843081446769664609679892810893102375147324468777967862075725180334017332136353434243286053553134978907753563051539494621800233364590906920234022255220160634387293998984831442875387971513049895980802497369618436272624636598917646764957722112068597529881777347525415584802522348815325185235614614176533269498118141412821636073921403791436953888225100301775225207112455937247278614430107610982935839445753265375295056673933662559357819026867621413223322925919652687784874510249634704410048308710098174587913532279405057274903876552956912240234552499143112641497804977405179714436920266677537562894225046754330322770689463810909511324813565921539337578771161021170658359455945078291070347814071439736099531289665128069604820358924739050030179371696045846013691147845041656540093069477818577231116469913843148253676138573870724838768541299121830011441324248900243656769764109411014839839475740362420111393255206887674808832323636716501154442946538102125831137976591945178672677270227713104102247662798957553084404588298891755142327624035442873406489822811543617012594699023663802604971704773218579421049219979037507718744637814250492030938326721566400507498908865461088964921531018050056860053695723567068230631022726705400655405235471508636715396091573176381233178280372464668849582437264006724289695456001080057774560725511410215105808915017703104846817537273145045005188144104296665736319437144666612867688052599348999068045667327818199107331220521731695118882220698583287678672535381528835795986900824387629943591970950887150546986553370552099186531704246128866803852803507179826599573210950180789667640156083562306616168512498308282794076789168098492728860768135803465205364667406818864682211873818870216258281221406935187834376639947137725349738132365843425884363131344542150044823831924352137923378730711551041030683018922238584276107275059284561388942000983201249656091135796902463962953374636473711594840046130014379183641280230795689709492386951236479857158177371883516847155501954522761950460109693589513577594638227837667027232025077093378642313175083570302727256138128890828941039723595376295792625701442444010551576998812912969150022480728324496828847082476516170956564427710043843720791425672641060566022202242058990306840751455683333103706073363849859798283539326490874111366661871886516183179548305353077137510202640879617356173922810856573887081921412430915304401521673158154567232338130197314619713325366020661175312154392693638978408766736708380318299663296724224905118698344738516931349904270702023725875615793409541367182119374378448195659716651630951841234420138447863384545299092996678615966086627149002077291833852647211827477602832260403457965941967242968556937829034972375453708942802903476038376970685395003559696978688427135182223981895948831282490426838965155949931613334658813552706881429983656626695799546264326509732172437551543439215160749355767201757900495048655712410829135969541405706172883828991048269768458011591205122589214709273198776303715014752700732109017040639572892091088348367249399624218559199683795754739621116952129079791632352737379307729002587558926208908622518167668906661233428076343205451790074379128772081489535881414859328304625805013245585822148067900661283958162166544125739525885932229319011974916362253797731192966409221704328633518025900501511099948867947565509246211035513270541256596801595852852754435160669990785667452801787314581550254555507265953440154791740103157564666213989142769845594680270870918578198894111742859765106292635724993999363779224551032018611990723172853312717771615456534079824221335415940783180561493200641561751331805369978122688840352087023776243669476461004755147169442902026770958996660410368443556213471304317139781101059435254563244244758096691322217581851067541572885069381809752865882093447643851723384435272304970678299623648238375121413004067888871358967841457608123994454277641366279522413645375473011446390367101689901712248974491200130891307055495297363816628799805594859880367907438679296856580782664755572172669397932876550520129743183194302110290147888193582853757090998735669494011991763512190051916716782579211845861500041329536612926241829316131494735314345600244855994391355285931486427673498860220858688645624931652607043487363464843358586055059865024824779378629752834739743590683443379505448831014002507667348665150599236914002906045124861627835173023422070874013839340971034341847335952541791025317637825418498871204496442699721576208683480030704290842619553346975487888446939721687696572703992181466929160287932317712022646946577876628384281617924840054606575229195748277380885867624613603741459693863603068819160323647481354138792636631382010330803405447478794073924594469126823178614008669297915409867492389048360862834890489242027756459337164399919519621928026802160875553816366364114143866021561165192503575209470602149403830472505175144843374803631737533426927358174335148300988596499275828013590460611985497416101712750298105614073271595751818507314135438680095227590822849558669954343787277053029804148228215180999123468968582812664331028976861462634469311115504138378783299732754747388472900669330155383302149947725978822184161462415394255901303379572653664938529437334249671255267166407766246496411710939835890198002853783346066497104993306871113628201121950498346133830697556991675239531716127007481683674473141654487179727231160545603134594173632547300146615977827885210745286135965821475937771189178409681128126091672268143031785394885613373454255767919333013581728380761738362121462288926048065874019175450042026918377402018050610883832292601702707004170140805608292497525390162238016303820630117872488522161210865345996328677936677423070453069398171526572797033882018882676787354997612098201472073365482844959584247149018979753148738161819095944015760058458003353528324621022578386228426165374876906110819847022972936948097269498601069778616845925946715460090165925420701791528044806605284906460539716024839325362766169282091646252087379394073251983166259088254750533192576387451078195166863809597245967926477519586453933277047354760468452518521760979873854251589743119667103857842188134605064241523115556637795652918959099427275149851146834537268613006449930424828471864715949720851122765152309159882294048574383917072202033124854288405725424866188012593571855515195562190233521527623257938365086699596374016158765236578168852246667658372475834144490645187680739022071378299555486930667197601599570055963047589746139639127356916256445891330032336636878810324452395674200208519876630820721169348698627947319785393754615703622056993760222237791643803099031874461284081202308823918205401424994937361093534711106859902222796401345469962200092642070018245266819069916186869549970629228999586758657261019171840125481687196960967516541809162065319759821600626901779057851488349742634762331816492037165171934542061279005690017083134115322064667178684508872511036446849641380843205617567403928264795834086867756155479487176768679884976784310817340354729882688031992995494551013803795577099478655412978876411308730613304715332562479829545801084734498016567963862451945009631121787697883569089850153522001031353385289619213939783337008077223450947649978495520134195334393570123119636243447808433940800405344870064881712343133227073029247612837971268769260670452256834913270541658469366935996518069648762330526001356585831971125734331382316400876796066031043155341254601209262473598656651872769361122458488719601813949875690513009434937473685647491616519788186700380134980969212857565242332652592191308876095117476776950493017395569661764392576434176437362809524246909586757736628674824691398835349599187066127674133626610882684148741197001897638710188384481005181904913168041930634040774156736172091338379725722712314102365441379248036294690224392746056653162719613207440859636560866058662330641079534022143700454029255234958197973308993625497716198576726149533659673329165849140892362822465974418018378058592485521453270848278248040458990837705972907831812871867308149987196706712731587468491091190292288676996985657557456659414885534239494604068743210204230907237919825451559168497665461747141991478407975884806451004393603857993474847970422964485216789372502953865452683965285443558302225247649726903837449892311518198071768681889509733981248424963271401503205033027214196454710993122799336598223557607516881301378488278629073817539289701430600939327699539546989573625674205742557817389569737966756041964614408759635887448258553488906990212802861848861656061823501150478543144073285639398258536535766438962493838599749308442241951746565759397892480487997017319081270217593015987100539513100009858758705741258575212506577539704718047496352475195824707239812352244254842435936208954120992917318375622031336858260430095861226478664213666986838791470588521551547849505954013603224705159064541517757560945497943418916463231452944154293154109229337508050088882506558389883567669151038758827240974524960267163119482134822972432900136260411632770073759454795855819870147373711054245612957656182938053616956084262177140851922289991397738945700045534466658710692107252303296487834007982830073586621014858607086264752860690362116353716026735810088752539945420355358837544462164413380539529053770609786805779449100256313819325295265027280420375474817572929848175868909538709856371691802343904025605736320778410639747644461881145817434689286958044409721823604183100148380391981174817013047807057207814954830506236455138476138760680724250087683259944987774148400560476774229267072894082592284837411162123814757647309230734851468947003357483116460693331640940373420647593382674495449100682226826837632073362815292150933024915216245497745923117867642707014709226078107333073450804019934993330712149793718882184686516566912984053950745347724420938941781333877960892551631443020229301215306767170490705085095568714657677327690920678790909436195046115486808830903061889388693422877306391171817281516507531911007252561985089322884972989139628306558704260203839614778302451245310120674450363372249651587017667065678251555573258042763659176183269288027617934430809141269539219955083498335984416119327826710203106711541734434104029330390651844166489619949823635455462830483387529509535072745986027492049912505997145048317228358230300988442221345941132048990984383342781250904212443581052461712730223480848037728362290586689852848420981284577120603717117640698747470935661499847863173402613032872978957208533438817713969635770146264139916236455834067888826152958279576256568846558335575912913802359305304179806552830574133132631148285609304856358853382115625948786626331360339863786979959893145231675282288211719079269799177471971829575723338904419054884742327903436666005352417694831113818824106474284746452808294561999343255910327542058734085898662793446895074256888388072303867932567402733102833544803841073397153822024265149548142590938305311382423126275223594595128018492356354929096085439244477714137812598531815079721263423681602306537720572637468390794654802295473762889453519620803974478921255140519637662796834149005757154536501665147102552429440741192490997325484217598871357287789817034372844480416006258978638555335547900959200239171333460152762887351944414331932517680169350341119903199157824812920160450430764289223501706360484267322867269825319218341043008070629791017743387315552539871161445614099395523069190372510903289013942305695823175620591909745338498436096489244219777251673329093136569375130201520711729195691196719316534942417427426825279518897131854126656045653866782539240564933230748612393299495690892717433220704503959226187884836026413739451042875191811338683324131228730847793353386705086614865077133493064963421517807898812294162878624897152756380345612552071723090224068877438646886239318165302412851841123366589586293246450884756140829232065592662092600467399577238154143469913848072152012721132400120051606238381601880398181710688581986295928529790675473600811170280915221515822069652170404986528026476478243530266626325807078085321515387487421073854368554136508059085841044004738098670891140398129054579145105433192717101710920254520513315975473892528796458049833256507629330616333557822740360176733720128511262361058911364893393748240471388051129939895962320838217984122272432695654677186055896380107875785235478415988168684293309659815535894926149608415386072128007770779073531813676896161955361196870614450289123252322348465911486161996699725626612051223499548074427054885439048585774566641237772090865618500172517427607013225587393640584319430805286697287347532885500573298324515707800922325080424694091972579831825935211471326312572566148394050866853947335057801793273353652135691153699692919438615681726076399014971551442096897529145340296208471387100742712516110370018280836635506217952613880721639530992412949272866247487969821023024048074908561665227081991278966823220126421359323066731416214483976671376675906109856467354109643518414885228629419259724121432676414390610513783176198740541195893936428905689716198237048928898174639998130746965352695401121386079843068216043807384476235038328386821914325999560391314822772849147719705839289871647071964114030571545924853500912642036169906165833137095115027552793044362376876688620313702594303059126171588510549279531352905605577518741195079936927117156435794741213393731527730801122388996852014830110222861118589304479676872627792224585899194489602028934099295877740357247332761797345289886503481329792097634690437251588697759368004050492125474711706648786034916692931093992249082935570350555021013244085937423885822631473747172095208305469277719898450496117829354715456169688216212288808939419852960531932817762638991614379912165918908614803256363167251669766209527927672450146546369968843919470752038883347828395882109530955449154799713333802565745028961631560474361191152778861985804639292558584137601955723737510087504396185589350754280342206370106830685684867869499057381900263373647018558693803393226424688958017009617108408773720053088386444416808934636626984684146574627016760840295308954577309316759955718757359131235909120568296327019232874056535878882848042584757235223949312087695979788707217986583968687963902899591454505303851715483099743823566371881867283764552698102684235894634331332564188330751724699819482447377759517389138638167383440533599642842455311056571419204299792567475465770377281343785633660246464076003890419529630663222185041434173246011715899178256390470018442049257542659409541772477927953807469276932327612861181067744519514352968276540761297834505152402417031915154197201966049957703458714360454071542719480022090970564026775530205366478870073000296054184831529486270521765424798137120888978015128739954999893525563131509915748657962743762466287594613724851922613281178494890987508437673357194674697506257655521856012456421931497775288390932210977382903035699342959637253571042460406158315357793635595929308238553433029611904021340231297249382784986480955489220938896044457583941294125844142300932000917360246781868027008077651519742598024290466812850856702059316912411415370136167507951034872457294542337495264466574778877775233675947280087851086573519456598116725493030990651484681576060147739867401482508917469405097534747822311908318318287038704381841023964356276417832505045117908264856336984251445348063497308973390034939986640851778917024785826470249773417923842421448096157256750473413438094097902682084285158167828646987011912420026158403910521785568006393273703766579369909572234068595437204846489364325529715004066754127059900381853705477970083374626265391756374201193574080712955590122590922800531137117611586598631350311508207802660003416326183277343427188400739191115812877746895278955218867682378660113941471352805878234777962865897757970061309642806036190082360921187675910594631708240155248941573106416034767824293549605129027132401723961120847861695705841581324639740402935813190436744344404933231083096194613261185161044860522285771360141773613745066184060213569397159942246431534750121382335653307391127420841694189262412944140344170533447227627080068519252488049993877210748881071996022538763934697979112235998195981255696944938680529237824148805764772743902232258201592254329391552986635871427308757528395006404306326007664665954221416095863485765325616840308034856242505979944702893819991442036797573665163406964683478571582192255852688124095705724191413374487836098447867508718422366213046216061044117283116382723101026548663037687422405925337902623397489550540071938159861121105768102484057333629313587639064027481656225049353368570516352747482862447089836170800143573551190447423210796213866613156336895395755746442988050630214767103818281821528238197217811628606591671583075120513410569240610995349207384880666709154591641846836610273339930394100711427771593743173803959601146488295271092410920605497145552091621100880228085741072498962780027163067456657900203426985615978950720139673186021915304192628802706250590357520987078994224125562213697751524396268518439882031609924335317100581084624249047802508056614281717691647823933900936735918010901537259330121366017104505366855522344223830205952866280289008616531415987840056332082877099544585359865222785453450278472780941638349826128571952261215796502736477055865808404848947559261004649363378161331435255774999836494355491219353888923326702369053899357570501774229404085454048074683770657121786970547740205935594870191404101274898616223727099403656405554935522430590361452740542700115378421765924351973617519483832857420648199370953056527446113042219739449323687326251927462214824089732002935420562167530163132408873650184265211085038357256812957822039689306435753270513038804592915876677840608692721101227312411278063357355021528601154502060199101249407981692586427550653458572217544196074544086355244651653762606748318731137148895953001884120972100234338947328907420471240047836831116425704749061433460473397075329307526283192145972431697748415372569611013666207156466033571692261575036395144289601360735905356888531848427304898542133746175139368722108965762139433420248256251198948187386733950918461124244543936098944048060309163477508498093634314295653318095355641733645779473338595475372801149918669055283525661148424699602907935164101453659060214583157109044610857720350147482483426347090783082091625115429825144242341431102995581794708892313883085608070562903568573708929802318085945348466670948339005085549703072485940070381035081838373672938920331811830795443520308864141759101012203337390454910418644898455107500667720494593382540939046639258869368577636275184128860474355428227760902730809966213504089650867729291950917338432273913616811155645977606606284102006255380667577244033517578293086780272443810705610739876738504240906771112475170656718749810146691854125652719435666785630531856476301894215494872330321728419561837249653316343945540805590138274728153275480929518823040605456377337582802363011763843448019783741118547552023171497280395308631236076143560178018059323935037700049054583663019349426855383154398549925153403249599827762362198758917390315836169808992155590050194355519171551960924975518048331933779944224658311126271439803105459354729506854853392843566460279621983723990559123336360267259571441237153603225241126070461364319968574931703703877910455994635979414928817645214661796702515432518609969873737672888867992053030564383359816765350670519984830146711891169376511766946964106854257952406414623663331983872619422940899330053289995854330311110195234768979719114084333922752993023165899292253107653020541278150519296774918788650727698425584286949950930380846091274658675726814005471715433158810813054845924506168052965539485254842893722795592435148483565110343681261063568799442883009204341823389851636157460347244227541559841367442354633352971325229663378886906392654954234543771411153232503861257768380692963421942546977111847512105668112615494708502219711689479601351175973899031118743707531275834556075785642479355031283551223156937459025362451590966130636502412302968991361741819887540637403571783214299963617029172835389292007348848485383397185727401830919216276502840729307790419117218396431469569642226417020073602974307126397577400817355983465014172605155779024837662770011166417160428979834202599345812441954399381658050523664873505187197960424643871417606204428498749194217565890523076535091149645313690434516936408085532906475471664602584517743405387739729518560131289041038372579779626876327446032808265145739434863428243038870672931462595305083298881269482784401246370625566184327934465535936679746009794117055060357993896181053977584182437747128692487919585114975078257917654192452808414679661417035782548435597542546602580701657804792021394961227185266612336791360406541498579599429964823591535723360668187224875025760326879615222785114629055671290586017655828056171918706439694268972388626222775360548549175729638421400403641204586045185370784196842388110945515655817829528154776328101840483600247780429240257597517076374272358119267489085077005468658019359841754208924237490253917277312304832204723875903880051539704278573422469471562559649805319651179001365044136560519629680137247301148259302729383160850160237360493763618472019610735287468254543318695022027060390103680557208260510507056205077046176869508205337490476749025774037418189867159180242118157586155909235164344623320994215253340874321868006713154754326949081754296445679057214342247582999363134292623117529438255045420585031506464928978282394952270825057542722685911060590533571583457222856304283181903525277483639535402624691470088863433797434455842729616938607574322330241757330253725094918290371385139327536523598600920802565187931752563953444465185903301952911846974151719709811419845856575911086970854603416366434188431261988306638469674175244997795661182964095730066569449813178938100189188936713509876145279910215575114274626439167063049966494490441833911914154935618601081267416771728362197250938476934400458440387091349481630827686513107222934213388579561333039091242279843628401613645047151630057705391014271486648929368177084722742361390185527457592043832628236420506501930508632213114490825655185601194034678203692263459278358782959214292511331487361253461019255745617553054550064573031493034332757783506637975740064790335651536642851355288962428514184410945404025538425130903943042717060472340476296768470223207310464588613312141228531022677955391090701799263301656826511695058185546448782502215567108179451125499401183329168397251286972323114289880499386529628606363995603873255460557096743187849153186075560304925994263616869664299660803768848197037114725161297423826374132706788539232236577862226220310505243737730312080103081123894169365159584236214221570355049750313010659049050897375345490808176037026800952089075916654916346551914275298224189012154166776493946981153433885800950387269067784745771210965348026083852094161595321520853214047459575345084240703948530795150621941974016245075077868048933777639490132077703128541247034912953265447907091604554313069184346431888183792028503677858948963144347174978959376227653403156249548690180639299375922749975060452060426727735878394261641474068010282244640790021775385854555558180473827801942419218470651303588419056962818950340983771995050725504655571144228934051721103587554376673830194694295598421077604739020633588693100926356251681345754065296586324042010101544224951054919736116425786255292323949773916174273009759024173534258797373586025180346575531808183622586017337231098570374677636230376478013453440292764679078765920211518174159019541110340183307654922506431029064610714496918452609262915686810000499557223025773619821438959430298707905606093120812062555732753392950666367568042119175450137263176637551951160326239363327884446065599073326506920701689333079271499510319773838569142607209050849723625990537018748948373482316557309679086082376469384329262332746558917489684500047738235997774721372863987838706167942507510103834468578744310478102978128608855036287343862605404898055146421863973630050941622543098338613986851350024802826467063660923301936221303528833692388293808023364463230513963408743217543111743214122936526651552802618353839264139913730921913192025667450748652362444022188250862000201157230193207464015550015255887127663165806158984968010156597016387460945100663133670543159485384664204721940543691875046797110502511568248758888155959982513886174506213203103006851908103883129851665527023611123574534682572222808110815473718634977218584000098646740905869996119048693607336130506899249057730836001080679122265871462902389610751025837825735408683942894038737389264799633400079736235103566080322627383307176095379280129298273934162361280635910885249729629465867970497811366910681957782161847946998976105043693477256281812376218219590884189437735335653260867458316794725399961218024494731559732372569967893099998203071184924479980269939985062261906147428228938325570345041284163082939006553266134318929005669549251428559116813246254862337296918101324090392255494688979364583656390285418228410877860449571230794528463049140306478758288764974355254894569134531135444894415149006026545230847432710187477718193966663757482250903096696263569935703816878409733199024918935321484843975084518056841205020200913097009756931753259115446169946890583199012356465110667001901033402726954367406127484059584907543267478370932507108697433374573440213612340857212553649006511658254151516230866836097489605324665982469382675689313512787081434387491347993622246448127737117994549498403571334027856031280931894483078244327638772005153861074889508700364029765454454697898890234134209324573752459268988050941835941714756053389538128190655966485534548807763661618299784273684907693508774356543067259819974027794912538915369463243375099955240864937258762257928207779759304703746186274155920402534171006584169824105405441399192554137481391478489823863027017484521405707549948624710054990797883449522148760144263618836372239655272919553771027654866141219647767921147997593157437207340439049109051954357565799160874975832080564118266675731263453750277205149443372035949100902519767924305428144001956793404532115474844609547709045335250028458978158583549365185757240168214295325747587395122048094019206067206627882961630544174542023090593727701356926634413800699119849853551163022137594277152793439224772484858120341084305949644475914780994287623345468962517887659466372172516004652205609722346706457456601926157496356230869847278838268010374223943693451309921704216952947869235193716576341403399174231400274914959818644995548944333737408966713822610439573930595176176872265587587861825665296877412023167353775937225092031341305337500036690818172808112024048524048393081984254048238794578283030414847701791507959964620943354441624379852547567162819062120907050368897734589457195903538220894222148573191472650930097750029810183267982051092491259143516869328987608800363403186912204544021116913822169848252112841740559047700780471085656245697614053066046330569034222919068409134386303202604001720850475654702809110922702628725595389950428999814326998121631099946501765762181759085144005540606721605660537366704664725873870913220109389590839425740356570193177130144892131844203722573745743152937872755869343788464043738731206781805004272471242305132627312192116237543231620921391391401349878131581847209828376663179809141630025651942153291002534754141693538540692925124996616261050964226707696587726247835501246825850856593950864941103515964383635273847723909981470516268443470534566870035701621303221392430383108348850085435724881925278450252003330977851586595458457450477258012841325064162849039140863634980609266903243096972443462829489272731130179816291944642628595472949842288189421219946378122782970315765612204745123867060497771693408687575502948215630367325036731758649503776662514250542483441800039493697573983316448494558063650709147303777199812551988865627684080968754547738749615247131086878146111078073829060046261642342492410380089500858287522799083893347182458829693697490691847888890670254097475543512699773466073346217751494767443769384061902914807099051134384049233357458970233621679601720199869936277585598325880069601435031404295031951452666964143435459780145308346969992564455597181832930281622080065175922475558757622323113541604558166951787500940351959761005782447090649317173983262866286834480090531388535169089775119850509255140454399182272920193580047654301538454179759922155356148022025703110787958298349065128621209236708549814443916160192035011425532263591965526917043337179884624003692223072843411743804147409488661816670402053749695815985078795045111795476290923014629600381595292065921674647642069635773684702596254462159372123830370972772152018406593479541012555855976559102903346849196721540871810368493392448838699454658393197251859571105167807260672478683914661168810329570408053044129113906524661277295114162888245939250302428746887678326707815951457340449648956347357871133946481142301890678469006150399584208859543720910216473260522985463692224481899920268757583107955346516781228588283249847754562791435939110398967297516151756370949644910389140906164965766357366400656876890923363813925836541740472586146245882791208713051808347597254561486977982583090342077049066700885015692020241836688095420902377814463525147357393247719394486970712412409676413134490779029292329949259194506396586064195993308843211985381472128698486515680817865164395668474196895200094581716757160330255863766323810988782672290603610822548880302900314156691414774254602095517537958846287159927169960727807904790788178326589224756829141412168404296550425001498211387823086902397031325168583126259259043810984575714226781930530905285081758299079397896464533970112264695616002834929624452146866290759699719080973031250793770509964113621656831315174515089845382723679901998413143386854587465607381258743627665146686966636849544403793499538619574858237369492436452873160043643999022068877360001155127683258020640894993048842077259253512069476594597391289436091144401143238438418732981364845145719190017621939333262234463757605895056275986298596841109752313465243051533358771957215622388326292320405290613539849930610422777944384841099337024936401172128690346675053977833912268417482440682850128587685865860788213490280474870968399755736047867475730286284752931632591810310931962214251788748602458140630694356693137301048824284449704299569465190473475560055594204063418893044197938313559014806732866294285654731265711295218957151420663645456498843163167219722446379504571762521808693177070857751226628303274260548845358685351312368014480367835649951333073675371569797122883183185917629310705919486299898866740910134220640069795157514549352445582163851029502578109321959067784642444073205231996598855736725058660822151157417323431882755752916507816526428952123039095549124466662640552862351956369472117474284565332325720869023760272713689562972915534884965320388546946665602754641573298154038127365328419442845901672635258831187458010640090779997086421732759067490429858757146805378891813203554647874483461004533743513384145803522350287416722987098686963656151030486557467322319103571574485147096288863019037915691145276869162940736656208139153722412145017729379774930312133421501131497574182226484218420998571520000725956211912220338253008492309665187869922307062421350355327887687792088037667745133889651125787724795903250171927948665183711925839185172112014770385468144506256870487997629111419919436725952453772095276106658252960672441305343941397311082642823248684214562905260326665348707693519482828405714213023254459294489790695917440548876449954818273530071494421980521403369980137750117553821461317724142463652918849740116629013787530514245271574965560752549882318136596274846171546215377105114585963304621560768065872867354788803984421639541508572109637086567862721929349590340974217546823241479781649721943413668166465141535338761989531566561236620448044096617984025243322292123825439371992424737335193354285006992770020451705197413665732535992859644162580666093066334703212136330169158971354644819852326677748937789506096756502764876865736965382404300506412180336590204464082324289506492925312918150711531071882756095681349184111978020405207021975886491435643096326932154431349815441079651407755093298324865972636090703033210116203814721746094004626062544116667185943386732465263000521898311873566020694249598686856570942025765113781389937053506596692425391258763579453286697778808826421347401158840697909901301867526401560351932362150288602728655002718020391135265562761528189316925983664679602439756607056592819568660187080772735602316986971801051848734143248073219413421982255606541662744283985436019886159743987721784942571184740806518676426090128620437555317915609575958770741600516563924474753029789328870022614359395223772922916389603210252197034561231110286557408216866571397747721984933651393218967019476251022346929264179337310001019426488768338449097063346345192463859542135451726332179984838903501771304686157299200488726330530024144401925028483839318799098853164646946464148027737744568214646166289060656117814800096011542835758117518205529266959623571065871137659595479926057393979701946682056222351481229972560522617134536877381890050003590519804448351076003023589901908594574621459392807237167604909710851663906527067412387069021815521858170563301027382819407584268328052774503385407503689615501777820253279241750554886199459607681064496610997163485180966880303436752589716440985286990750751537141268111642567963599158021380891432663290412496781048083472471276307106106655547405868533683199848048749826842224040878629779054817581531427084358067832329570548409806008059383343370645438768562020031788291204268899205110777974700032078654686640469261636124925871048233423328984321785862342539099662638749742750392021109433246150754775023899617841442010379820994252246209452134642144154548200321464155515249322423618400283418757698151710681353372409662146562812430063883728327703623136922740588615459087767180715805131197028212413407709795892669228653184888877155979163542599682682744783666506967016060821558720836496702968500024837427814641229033679351530108316074353413887296160776692257412890067120377084893482477070177793587483819832350161634052293390884475190575321166483362107669680799432220897072422780593357016520393864972066932160691908691797460506518202839719140231647727513897665702091518631116691504736257226154943919232520059140805348749894219027457186439266480939811092855781691014358031379365343136096427934771769208282332349550949452843568362288150855569695620601474911558829250688440355876413017430355970208130388012200465272466894536641671738448738678112573501802360867531892821048237507714673695618970203595722586799250228311468481897036134051962615388135731231794995976572360276505619131765749040608434240329289424185137701895627994557764844184619137326229038578496244672289627489262224440080244422037495718621410024938168199869135063696686205769983993705053166748640858475233503176339311692694488562469684475056919038487083213959546357371714120967748459536931850398853259015415414093778886012747402918343333914473762058636862669769150808010355662465829356006280782554857958872693241970156914396424624212032012164094069836420175146777178937755227354004295887066835934157601653761392287187392025499536349451829985160886929144147977303379386723010369334429686573095947720445884136429548001709764694364556575082995156244259723926717367173104077631230901900340108749909787745869702074108657128889691441665402668049331016597744388210214754767240579291634509849813736686028073712157254299090499030041864365673716457805586303501072387369901491008549230862903897083229154836659867130611947262968779297123593538117412485773795398342022335394782021021251714798827801271010300182204952478555012513429413153705029963364379654934126731937552995258151469727647358871031474323175365274043023804126953916709218616450319680535537949151808579181951285193728417920151482450781045566879417475144210794129531284646366606457563341232157549027148195883365107206899065528711041387086785807871195574154861426654574210510416829653377116933923994400273280806121046109222525993562178758776078140572017623478380837527737858617378940811563515766572299413912013654453957757478672684279035436830808582305767389818087282485393277228500866295862457755843869971205428692557537242598127698822700557813175263471514684675699844582749135974457574275663038527504370040097040753598772896104362504996193374903142081784562212147086359081460855542822506800072607629918238032626719655403223528147889816592064531249511925673256965042782925643419917620365499966309614377577728484590261003199278868516508402389309614159310837832113093649840701882269578453343968753075623384652075999388461658156755703602881319230339367530823781185134571692925358633348752856317479978415056469509673186428893023669316395518906695385626697801695346332878073729965677202924642203842482034484408263322374962507667919812358433212779616786619741252585926973554456126415637872379047935136342181304638433269155651704008343632912408661464853766874459829057864350163931461770781594300704293246362443639862067452359457442611979834969616463700230000270102269105783658083117072647974313829024338400126276987194283683330122034683891222719877686970176838654473663163515337884422628310661100559310755769616170119513309073007633886549205557313008413783319245370052108896312115348575768703477571787272423123674236063202377852359335824174342848953212948314252163960306250528555492126370027655708598508845669795569045245506523755524280873390449554546098558599801325657953569800394154653935666127361571803633561659833546596176557312408561505598594009361556369246814770145353764633922952962015474203369813041991579962310600957460410788054469327688369499121305663258929710780771673650382161398209865688900672474626892191845193753938908472328159251095633890460295720131741501509227397133367165210793776454233909081324580190064250874527433311619785515757327748671927311185606499559772489004885311060835198893809939162000223218125898574082028558081017233339154295099950627470561764257255590877432716804820622043983084160640449244628420950867907819381953090055022309587167314516649762676052554001830268000801972042938500976690065929052480712565493858017832004818360180977879007748265041947799301834303847923061276307791564879679378635900717740892992173671246178742100383693834129771164350846996182849163063126795086418312037257273268498923268473704041616758301960300968220010403133581046483648006167051719495797439961630408688457455763303736541087606142520948642884170031795763648830205384996466472668612187056192473685305537336435255936045546501854396428783245279254160962713767521754776234499382504296028827401730574784168486357924253413268088422669141268867519477424921935393584517971933982664530179563980674300119148138987066526985721900233683366147529629508060381935827371158239351312822332538700527457127569000548816622895196396741609597309562765663639962567970138626735930316429768281366898942557687501510503543350892570444556580967011578674300584990448888801816765061706985643010210373287018215928941802113287734933603002690899899312845541665322765421401782560896085690762607783631149647280008708942659113095978539110367971444920894805762262647609331959441564311767426463252566335140987389711963107782414673561609950737610834480158832779697311617292034385858665837107289860351883163265712723559709745648661924009409254287080829409193686524048518384837304706650350222964102809311593312136598047488555306132297898129124595585723829325715013295352673024487738681146644605997351092600732107631642268241412555166888389771576644699808204553582177495592348138532395101239053314028434366567586500631406147565036279184884018941583845355004534946538246391828385887655833244745330711562556525514350755584164220462769751931171095022717306008138915511382157304929323714407450094115112008634475019105650260202469023079397187038152438269347406664036359153784824479186249530257336017314266140246902965416036023308241512315197836025547711211800663352167185987552546568889610284094827947998224424123416756080533193114205265130387093508506555911338622114243965127537026511823509440651950992902436095355654348967983444970280730646965842553417651750498820390817617357845915929833041636813683250927491935952173304158120275485146548737648670664282094633093725682876412288724391216764089959059625677895322258171902755226979680202976846956535108304074044527156000680998235986201645654822442603481867648908860310479629734045486587734221267066549761655607499537449144657696248058589183879218087682218140606939175442189813978030319321582669908278040413305761821886861250901376805753730209474424686835057342691915485152945192419657556144382409172461523369983532290475156922167122667165767651696091546327334976899260425849577176186349413463129426205396253710264783071012771318487731375391131661576411772795966328547126057757900655223387313905921206599774012613876978141835654420349693857802671245894213628149429916281476718854979896490931293631129083554831030553496123347165690546859899323753766435682695521302455284970718749475255726685136371229821109470275073122238587302438911909458555819841378151642276398094315707909676176338964868014762237414800334304976988399107311958113167049775905281111616198742489128196660606641131272819546579546915495088016130617843195818593948345460868033917863969320096321165394496599371633356056336558238897163582465678703052406094767783472765005453769144312890838283381367066388258284895537803682076756938170197393888749175156189418744269340361364794768344286590367500580363431720813441408669918060231586232936035118989720495332227750199532600933672914783682698701736955046947958253595994955454667988301756597128011959727919451278699855872702467459661400764655020552247503249378128967627553229644881405823236862738953035080024450897422022642976287877771221888739262516729346543243917038722360807916946902958758517656791374693865646099264530474810897687207453168871940201918128265511311582817204393144014691180529719096492366429878014085945270724680072895391152337397717047802404991546578641384096236975949975113220372607576948544250267099872653586976270718285625049342172672567770547111851309263192565099895053596764572058342571002527195133583362522737749607885988652891188623577553945320115930793707083881405214085050109488961148839134568278393643238613900479905305655738026853588135957225090683700963543897214299538094282180683376868585801421662197767018619300145395687363662114662335472618626778010926482582179392783052960017174390393767787521274265026415057998719731692042867271977293383424528828568862423558066513504534843486271160234981840050492874965043961928220329403231555100475339032233791275249088334769797808122852200713470583147476194830757569672856807196591574797001560834625847872860329964729887948778225472083945955182336841396822279162624415574939701463644058414456582476066046315878700642306240445585767081724503198150754653169090653210491827912463325473593367229894489877001633467075995162492346790945498078550748147808979653551837818058529760716387701587362366507134001944268506753861550013663835667370250601805588294829734827180237461853304829148037854007147086619525089689200915662713995154529420347851336025894579143489313984909257936253706490985048770075971973658842264590168337460277990555233549326028223864237998600732090295456300598987028608513385774485278359134887200839759424052426186388759243684755913017201838044359620972407444275077502713017164929359241964726465273239827630415680488109983866405630890167128321580023728555683252508861381082904126665014213829535467930460247642154936276983247864480564799482960085510351123267799784091755410792892008452513251077555100632908330472158598023977974245242423380528575714398318627048245669071563970780768767727927948044079355646616662077908180155585858771716662881686987479896565805853946674496521854446230102591457724676436224816159106775486345216683066122492563019321595811307932985581721151612755316523691832988220974348332895766931040724182405476569841208071160038787789596562103674813446252997192245030055739071272712718385000764467719396820774579050439512226122953784408098095108158150817683880204844080942464288587115698409478102373574128249045211848840140739250219994966821244891677836668044892876982224626448303951080560150330985909300459537969356464199774645296986835796709413866992723116961307907208469048132332826002007361630047778083532561945343812475836773420396395161282614429960620747824189946221732322804294461633117516639850500641018399434099733854047517112371822490793554316871518267357365470855970264082012889181676991646505076734543254129239316801917429184353531112863746662835950952885221923291366211508554363539607703959593174981870670832234010117720329414601439809571210647351079696662767166163170422422070269790004009360763825844770350315994353892267140280107070727156516876038697277216151485542931989831236490611947895061894928074249970349555567750792893475312561530517617829061246872107236732387533745442400131964533427756174547475115511936077480131712623109084588656130256435931282785117920245426628674999152839279790892268410031579187039247073159531321482570885797816137065788938577699046330789541292534898382715723524624349566831448277541490480553991085479963333864616705224438376948475242168193787424092647896138469221465125478641694820909874744296139303341365679318235907353742383988968284773020851563962701933423421211588068782930113791104905094527871784484923183844962509338768952365849049732052491030040823609746393890046943599189316898092908894614116247967949957022045776371669821130525552652464158351685095021767892447899789404239434123869074310227341216269071119382519733938626981884457982616193910834828395353303651274491468253997617946529355853500695574050570343212931200319195610888827539112095320123747528780297949941495230200761060204351426078982050580850321910680227415304909443656477056590926814971635152971157096861205109156313683479297479974511209346372819280753412551987503071669202914014923554878457932821427473869887179710467273371975668722798411364140577001142810123944404495444439789132619192740985742916864592034496057600429890422885790785249245957435399528123711734671424307599634727638025092210203475294823804667678676000888383640942282940611991337452036853183646239442224159796992693320218490235393148858770708571881329065185465690401381337914330112075271883134722331371426915678446820777751236538295680873874729355886264249908072899447480774419073820421575186588571130072745703198878420554841980226923878378778188266614839806633164299582006217587213820263412391541074445839357042032605867593791029522860621474793374674527637882896365819300552423719092761104321571784963047027352154856635889777231432547512456130067730284428006336805836857807935941864125741480279413521445203002315884496147024404089078615509232949129307383526673216141366012964759707594643206682198834181833555081735156807191143096033230647358289740322249784665882923925350591580244547622333600447814846609917278487340470884653196450394796135950680224190996491357631001445887391719486198110540708452459161524653859312865252440173721575305523878659368881678529956351254955589207449741261878944213350037437408158996769156748666885237218233129184034698760418090158229728376883085365710961061676135454881119266442545227930170361757116156664510863381510426542432011274364500742780875911837380746781891023426002473242784095586721781729000369041675768697780712185651003914750383253354238667510387765774317927420150775890331793834859910315420285152013096235811559744151769066085806019411941804991684994673970828536674474373508538869185897538507690468403150955964314349433912806466743997036970917929162318331204757494643401420488574818940733169614333969824884967278580426316201608483343280165283389649324548582419568115012677082962919801403130741676223321557307357918553827398424507956790074344246674407083587276657855179460984574357409545549502315543485675950966465968013738959423856882940067888303574445784310255377226954921016509980482839186334220085069409955871865194593995997493777436918968581362030620297979489895902370872133655355739286909381809626942840575168984489384412626260790653683910391157973969890735386880209969231161970798585844722100928847855687075729121401490111874472648733934676262147866678518591888379633776932869003911816547859365326781637732464306766481025592316955914741957373310265775031243431988595029323228924792362851349867769080773217197988526058011664458562759784306211249037417219138186750469266197832996311182995141862923161857677284442071810013646367066522013122461591453410375560885866175670205889236883249517169589786219361774224696650127671681464052228702632638958297996094479192349733835551648361985824888696665753327280050399820848055652088262500044950277524620653206035240588250055325749721910438314310774591925505133349010243971295217773230440759298655114319488207198250546035393239843494955276556728350726755513254734770441342303041858930867573466007772289785500549931237942955232916759856156444611287396402469576530664520446962843179072674824498941095674045836814412010613633046658442975319442704466787974930225558543323293555834581428145998473496232593164125953122147248918724977954753310879697748259869579886830076749306688218547280936202808591119201090204673954891211574759308401671497661731224537270812905836663391429135336389036613145062000593289382671940639163650943837514399950078495325912594084405183177747261377355924484773374464000435204449695927877153661668107194737003838036209109653793804756111591935624078916443766224491296536183048346526910526474371925898061997444848178446662667416513993728210718144198564738927733482653992330542101299395850162742076768997376892213402133026879657204648833781544822849947274394404481519554982758037960487997233536105234632955743776337800936146335899793503929692919269905113662464455179822709255704441059824949724576871873461069337536461477629515809597157139695825806323458181984818733867134750378403415270966416604574668655662645181116014057171571577198181478439697026250217110664557796079409614935210405935015943231665624496861007443992216201835206797259712808746994480503863483540080889498404706567891269390771465461485285715173386578049916713200002039572195936921984564083836641242089315187142452562086929454448367149698716072045997315914303571323420918177083021591063028615428192891527697031718863641915466412589473345876291531203231712992541779334713542277504206930998583225040382409466605689632226709738742292780582024242499632304224408708320993789125663479216520296563174705039173853316378436392935141537649025062739456983616849320519252935144269347975810606640024116222754068151180722774604671863927513896069830227169172879572884933216778326409670222321911741559441423538641398870862579543267678360464079463772888999272963956117440050762336337339241571098038943901188740356006128702409164140504109345363767530765419012857966075116155479933654683467962950208752115086320898267774869348132880022508110097128742542503660428081687501457250547239773592700042248903906673813326933071254233671237188068843988099201138221088448542684069447882468582299168226521392955854476605689402923511590868653257017307011693487413176901308817227988287681635662858705005810400864279279168282957570490313983813446892358361887021214412811718073780972808467795571419136960218148451444189640591731786304559543116483803101780095424566505366928701722761788183164844186716903409028520384278274458523337278620416074924863681229608405926498658160194316142138749350801467086366704423111024176501058465411689462020466125940190844037412789083256481631943043580435146482346622404514640896794721323467622392845359609065441254076206674910344028351116494692018518551681930310170355971708504873281115683789931592577746278297795395076694020365084952211052419054402283085466512137528628482872852278256958806653120973984741399342931762650646845621016234872876663694482549756371523580561405824505506156067383945253078381318579321697039933852251991616790851510269102889764010635550126540572939954622165995390248233542190330720328107012937649356479348541099760018761968927307501999527910417911919600394509924983490540619738608978489727162589562542759897966939060820898535796559711462686224946523746624438845438572097714386312048882799055494505952403388796519713197375334571097222242702731396507555020526284268616211402251502965568722513150397581852942817398270876610447913614032094718654597155388609353031547742868059095098361184785444669774802501142123061469058822241823000432078940229179281741640603983285305854941910345785547962718741403043934519901149402724317467376211560672577162275508550954841778687274410223102524698802686738336230241527070820470719711452636847632858735592037263246401397060158728218592551706643943725573894314740780678343143638874834551679497939077299282702011591939986767299855474961356636160019213238682776946092939250607233860060728610604882325962537640850208168969923958479733469005228374654074341238623208194964445651149534398491430596960876268720958319994290618169466978065953030042542511139408614392786800061081464111458421208670967807417562608370438571262201237475975807330163514694397977057797741313787383445770593350872703003385672772821490640043909877204746712037266221854682077639882452693781313254043549044671198634142439479306808055350978683974388631727523549784081736237230633792099382113778213153588543846977635385524679446826678356661461446427629667684848761196505137265025707495188333834880993605583128924921339978093714047393449046773139231560212013019143954961460362664414101465555776305162570332743108190309021982581947603181796953538900098498936192539602800214685702177283688180322329920835328884702780489581052375511860808695284183628159601640619979717320274959780463912132537344374722461251271862058641342728599359695436214563146580701603881351341865464400494336324419667921908199566752582587708479039053507001676072529314110128620249421805750149030295347359971282835909231042578403172833576603986233981328869525740349625071210303323442981768126389957953910411249715533306408878314725098073867330070296399637410949011434191602570220032023788475049251605900887699211615646654264053611477848025928780546768276134972580009444531850904548631344724477724434967721353624752772749536689537959945600936156265926843465767165278023414439863751186951193815338775901435296675986817349358698282759585982739266533212777817595249315026315898424087705359935604653244289947897773957777037938273339032092485514452337100117845613193981368634320738040960060386679110475146379314015375368696259337399676089635262946572427444834154839486369500490642748633883743570381179920122039752441151775521338842065542042390783815028987361573475161989501574002409475051028127279619670239963778345722166172814600752583005998952552169220701005023450437042224129313981251343064913273998557744095547791690718628323527145849740727225693094552764378229715391516722402683515487364211028123361484196467600218516637356278016245273091290242901093202952336169310879810389413391772863732309862774538096333950684195833867724426266050184133887246923286774710312811188715092973310090218265726134835124189708291438516337245420507580369019395978946365923778708042685967148037599745275818427846143746159161797748121163852902046862785586735878746583086210535589974429443507939099149192244174414101646580841495830478489058515368127923869352580200649340003953389850445104040040317561073499303193857764289369457700329961263128339306716655792166536710469452935045009882788415032638116769497437013898845897485722278307548158784879966264366865937612456803274987041605984023637150941752693059838835222052042029896925131132313648199676600091472900025273088125738493093441547355461650970724335684635379542777738642969444123040671856074613048793733700341565694710916834543266425216887190980071253458254239832198439303551605901315492009303576552206460524171007915421512814266173394997618943290104585414446750887056837737670837622445915042263605490060905286901415767387490677758433411280816537372348522223993581512704563776962549908651674172403949248417620976237678769320296928564565813541991351332775368711316562076288124857230574231706411065835977677028601435439171854874999016966862817700928528141588908729895602851950275374949291838035199995370792172028407393308864831035276004875394618228629950306781659362726899198584909018704992305945004458909387117077393490530549030999597531691092305164949807697689837320139810361974907321806593147074375523640716622265278480080034591684052315936106394414102809741494521557507191565028556615029805641904722732209127575794564809251393678660554731984124951663856666863007949219630316112501873628896569824691531389541180329065611043044993491133996188661596472734947339523121389702024128026177139556782553487064390133406238777169155721143981380422458601123157337551850131047696232857688233733255423476077188226220904842325978670198047950030140238955907629684352377001730161572924788820219740335575423145413096605730816851480216668471032028969997500904037784679890765650689089516369846766393091717014900793199925218828505131512103672932594974543996977595490932505487749399915754554072030601767094775289320064451337617922742615015913301346730721165894956420393221814794495397836119191384455858786347650994106699363448868963584537023923777553568741662840570554593240308434921496355782199545897012227464097603367368934297726564601270964116247962374421597548123491058023460187273468779775656373124712511888420670921386312333008666197780511453407265815843831934435059704936612867957818922196751987597950030809269712026268792620730182684386287513195068113816949281669485658461476015852455569088366509819305738209033871937878411278982555061535155108852068756892777098952919637166626597865155270581295007908189245614506619894626573020466515061570266607076667291054217330268957425716998771757257492498498476956820287367879511955089307558900709566331506083054116533899833728688372731863279289520463126310947321078754929137713351051535311241421225591326898164142201070342494046613402761785063964556212931280901223928180881261247874632510727450125626516034985185685672916083905674548788066961875744792650543177239636025547921226155181343363470278632200212032577518923625730192008285342434416869018394396564856175490017259572870276590756043393284310719187543587436774155844904335282084751344823237403120167754951185650105432889300978444268865324026637000800531750274514291693766298806020174368562676870400759292783941412607616544662953338838155070977129782155793681363439857127621426260326645112884382454708246730398716884342125950972432545150898412942273655195479464839494138084727624039744953192229421265092709493516318071809670144878263900626665327498827006212084117524490195754476983796843344544499649892989332261313022775366282858403187066661414942457214423797527874323803598129452394345723731086188470514785805382430940417727663109021232764759953779847153204926678867197610787267901652589313796091086587247735046089146852483705261589462813720528781796105260792003068453526323174960384583970797756975268858757735968087229406597319139080247624204543853316376273736631472726386901542522204672531471778532194956725221323281013577893807166061250467696529942621106099493332857142795856399298505206901096506501190016462187251260219218675193067891297883977782963238118693510074727175401048337075912487254324721271240175832738579528136889775336820938037525666807444595772240709523695228006701858087067610734898191486564429266474537984615478419706733364450041912403053250294408491070754229795336916496421997710318621589819152671993968791488487987756843601545914072334805990667600301818262749786027353150553916421390048608240974972832425494669301346648618294710427990131425124767132851810780423943612776326902009262380547636341424395592021824370338264425690192736749984146606400804501974384155043003121368497534122762269594981262454366214625920565061291283587236570304392381426010445541976196771352877423303181504832032772271320543028060232828012326830541497746761681034226235812678768918036793348234705364395341645776978636750235270593578376796325431560056642569974474101257452770973431740115854605858112399661520691468502115470627727221397955899734753952967848273383851722015287090481245969516811688256695371196935945981896810010997346068764862556414655960994722128111158967939373103717682460075808552711089432643686517445026328761123678892908200622730350210891131411340571585321289090579215857774816481834331349574195006370985283977316069021020253739329302207766813253889507876876688394465891120828025050245843787555605754964184505124314836126001932782983250863855948879619870217207656976975423313307441950433206255960755573891979347868356179305487537134982885894721536820299812721809293857480868951149404573685216474571853027462286534041518055979464451902118311112184168407438892181105908495427877414655934497007802559304427206851566537837552325418663762904718094189537690763810629918750721809075204103032757814515667930475962681663691086886066871300291728204809238155352153321604279099103027539955422823766945483142256740097065211426958847175631295048503854881669839545322422212630680994174797986591153697065862394885408781018676737454860831489614761490511747609106157886633219988346359643716172657560777286060970615517264575506052737823544828710146983536680853424216659376639674603084472892287129165289208790835888328155459663301652231590899965178527272346319406160344613502031997147827267708188573915653568239434870629160959687473119459425046460560024331433343834521972162808345162871723012914005052515574884290428800300389141581486767351601900772636375418773843589843049996926375838975070286782268041526556236283158420080202183673513400420699688841631316986213653041295534680254540203835576764440274337372639978222656803349396831446431755039711118797218522975409677504872704491568268540028154362689112551843053461737251081261379105042448542553277046880886933745794093178151119278629271492057225860676158290410297147803648842513759944067359572690167561122487316759463892863158262667799043439064021523156664942001085492246372737921699265106967035328950282997093288829233362172011623719539739195162706500789875600439847156198915011495189171806017584946336855544994458583700285703421353159750992697449932677753098769549090296725686800284369033572667321218925499060747665960371899763860373169773052921069104731076757732115877727467146120888715501750044935223591811408634610196002534065815501616105803990932429224365682523920281509217461236931472165942773248393186014214943480804244054851737242022322001208048134180437738104067305263042130593055281463061765642554626435596754664589275582422468078145146857303216374944314387250296886284350248608836871785138736888732602041505021126431865671668670973823989393729650397372052376171696330698641541763945342226885103136249931764549816970116501802961632970994362070509494000044015709391853754662493468922027768990571818607044419087722123954743345741948413957358155725287231151062949587262818282171590441436345497825808656183733343967607861515105978607421743946252301606371188717780489190257674417646449102822194768379828018992278907228809229871912500443437635189397042363108113468971853445036555118717711538110207096437769381911342437914721021105327992868159086928024339539520783164172308219108825437778576019071195294460141925754000308871986969305656479329419709468715328562522339452875674698448425229811901621511099918421810564632064044282619987198811008085823575370446994199882370490329437618399902149469418243577503326918836853708593294599608339008534382054722293157746285442955103277132833201242771022319383216388384698288533812733879493407398098824954805611351742181935173923153712263046268592311507416284186460819348025302663569531584020320363157651591587661103171836409530408872201265153717520158876120350471379445099108631777013383961020732605123999215535588052276622978231988670212169921272294091006402764986224317653427935028148905978904916331700036830910766398400678328885819461639936940709454065793874406983692969111290939376226236224632794163232002202315200888812907429469146327430716295685897366366344505417848034887093813454346295145729554906744507619748098651976104728252125567468965747086029011517740477979993837361828222535420512643613284047574436037062602977866848010107685260838452858313124504073138844918811798060166642508944817808233082413936527750688065696611407880782045684370637684491270315598003479562439727554950959950079479734810663989894982522848590367652685671337867875792387792656980906787618149596699246182612228834038936773435827915141251530066642588969883309033700705394663538463701954054418391954345556910157826950422984792121345337356099425786377553816701863576508730487559084837036674233349725819594462662593137850362164851583245648288932279764206855181773515374644688328425446356584926497747688589211929228587053039151021264039577231843552502659568601207895083516591114325225926383628000355507028342796711924467379704817440142325044972345572450231381864188299133797346288175473942288631604162598262479486620838490725936951552651380634610349386683824131436466236314144690625194979861522030578692798101083151748107427678332246021779181094293509678205369690678728385629491705011170504155958188961349195168831368266734269566694320794530350959650720348906846610179351220145877146499836275449886812568772790643530617726251740698477122611042789188734186675449804840403060072182185093105092963917804984772127735517109581061811615812456362201517671334775081300473108880354868433304480885375371728443701595773923187042144747316302386389072739884312266405539728764109264191286163602676650681182241502406230708746343563931224559353594968946187112328926495416129784434671700702019168060710672469745086966217095827157439619125934122448595266966939778493255037603745447695467009325348576380199188372457624403015219750075855274203528282295974554313477123522242449056237915653386576641140440171756758232615180943359151875126448564333991971576785965508734458581491717865238728708820548913650756527649324959721262250327332938456338990788194154405325629675994324479844547611863883245224407357657876561341752040377594463274358855816930400862411240624618708890388975873477374542657682277710579704985442907809321048991468299803438346978893141369128042567591702702218896247249781380640564266426728038483770130690412838388765545697189158422129842003418629922334008058194961882469160382152821859611860723873973699023870462735032730318267952364504620771083659637319905912736705404128711425309444195091076517912267922683746447452041986461505792658639029402306457181833316106568827859863385803843295519023441320391311285128247028990579940729854715605035074247079342984976075510947281653222257126291082025271163076495233267178466671199640752336161685019861226781727174368809861615642654034409167212584685694924635604994679978793474806250989449926749593466676262258325220248336937765735355398642791565429930698722108018482553875042272662918397725211525849969712012452152571540993999358493617276523219220920404942206058383703092062071906397730892976311337595747530690190004104001750984005096210943921124095418057979894006677378034075620778697070299332312623298499076406956344961294405454554025067945804763671073052903967229559046995183835128803370012666106514986473541583496003214600668018975563666738341550937950085437173081607305815297226537233997406702435706902924698735976102992257645957775017001548677264869632901270267443117782530892282271011071378364997759822126564829675100414570754561814678670889483383993206559601365130174912762609372765703735661710045106785819271810998666466914567685794030495135159843706812675476643687262301364795697800751269273799816320090535347583479756057806893173737153584866446750781733016136364478734239974651302804917224536306607840371050524107833711495739867596364767586648451447391695196788728201667459939509049559015111104671143115097622180306915514820578691722200012128067605583872679890453613494623426375084653613070884692523507275326420232521707836233159832651314978017963017713898418116448887228466364718427123150356270777162294896804281885900326390854784857313765459787068993118622030180565141640333417332592135035825646867522768428352443896908549109570029576251783583138482236526299588134976025752934549813223303843604138983002000379090860007315776382170989919162631852941193607449370745685685858243894986150613534554591625926669787843699200610808666251449537637089089545939965820879968172667842156760695570904098066869120581997573566555874864714599853301711909244309015680028711242213181250674955643134671677881810990600878388432262508494147497453209765992042915507473338088271527473040838529406510106965817392626369471519263454890950888897024248783656109185922388866965032676191200778107561849375685115230537754957381631489009219284650511586514436522193496651793913009518077532770169830057593023005396494314141270384941344271062032465189504141800940854072728637506635115862579927522524787308099070502040977565303750076803695675340052253179840040256683278630268848772538941026581769987423955130403907849759176593626382135080124327008328192808068507235251194120404134066713962277795930633245025065174570429957442572315765718090992079258331800466953927847816210562743659248904712823885052205385871973448654275556758797683542482180366055798941189443425585553739828240202571652479149187985302316070855946794443624212876167310557828969842394130524778157645516747874334691342487864227251418133118063127932539557096256777580262574255741715637410657900199135554198178439844821999516532414049788616575741530164958862941895762057519639466771408373863991785668519023358223096190286631627555097715586806697966060645005420129635169967504208164826769167476847533760841611487433988859951961550055723865207454997366454712552896727102670877685738618590319729030691879822485183831123681985105004562678225094260743935308200061637208767153940462135222330576858582647045725608797895011907533580381268830807984708444707067027795722180798967160280378827357763693053570638575741531254218895996184426506148071937870832779375101439172932415004734631868001378897839257198497065858032042253069890063335484490044329614532992197937057290585617318917093100050531249939170848450680472961500602252013852560707920430051406898785694669995705613416520035967892920804199842007083469654895259047185996307508358568227970217184745941575814574809142669089449486166947961214964957684033130205010722656266074536329409955251090833010109043587430430022281488765533976124539241812839555438070160703466356579049073416602625366487549140765258911208587317018210545256661008872634434246705533144677550344618360942370126430549491303156831860453130787791211052630813219240177333734209016289831332985699979723396811635778822774247871931669436517494596069858308294551193591966072746542903049637107803764843856267991281086678898268736701896675003348547456698334086644051371485850869889525424757761552876985734416744292506830068096402936864396381946959693147836629452284618389620384420920853282959581470499501342920428756547079809070401552332182399272769386338430214315901654995958154253004581620708459007056283117663948927172179491300605239372844101504372247668199517949105977860766254518878497969677682105973434630060261352882872544484205919568416748616615689211763730288028497142419636692853533800970115618881225997554181360420924318853723282835054004870170574200778632207296677159146653226112811313232925143729202324011916329968200843495498861726821808775567225386626511879731332985339016239761015566655768236085868534764019344304331542562413560730527136159077234206000833674774783816396550822344266270571858303579361051414351143679709119520493518130704373532837009694764120003707688433992537761930585786210265262055021061666111285924195112333412630328355990465600474795524337011449088625200640108784144205434621109336494172960699340200902800324533464988579151309496237089345373052340688108955964818914955602343488786256979634849270841190106421643309738573981676942814875160787854449851831424017473359746640125138724126492086780660699411301967701555936378203475106917816536314807966742157581923984315834589678223745224676908056040055968386229203331546787409741133382521186583227158919816486311957095399012004586179919722715909149639867371867138703499613529832541390319166449140642270808038759894338374705084012121087387939122857771899303602864827383200135264546251001612749312362835034891802770241765560649600737820234678701764287949825243214570860190695045704821264380359113716428784784107957064505763618756317203203066806800485207734311028335739892799164904757337908225271845651445147625774319069358355025825637408083738536890152661920567727004927616941196016878865958240198282379454897768660238906616572941604531092658519425598379695959173068899928233320353623607961427077287450142138378802474863025420820396266186604580702599650757512478414232859120639166980621913646700417938340139038811387294774052417344653888505068877386795114732207992836610222493720050225903438983172016206627881578584398459816501439927332991873394344136968322027365682850263882989969402604205061053316737409362385913562779168196503785481606759920493091764557244846317648293343639634397823238888097035337441746587193188774986636354131054174052960969036896312494157246226435236084956660796486764479777612284725732341457583657604694091730774043918151491697521402415419820843324274819049034180742865844897024175333813475458521018930164167786300553610449957595966862037537467105513379711711412524966978367155576630632240613487524071721644920855358764209095653873507302076096429134224418282416235663601647731292409610314591697823149687637557611267823509913603464875814681042328109246731129276721735388672038124678200816860069187973128065114528447516701922210832255450510765643927710035202182405782053250502485251388518258621560406796289447912231285032616181920848380884519586906346170770783090352107179375821041492872658818336918554570368763242898623635637041148296779990011985608347836648061552039852467908388736320612181742464359688340019747585139740265526553956468104175238347104872238711619010593664731780921543226507457565530052389151874112178863462837543778752787687608617921737689368519147050262649934689465461456576797060265736745917826347431807594046300201203989947739459573743445181128780007739877132015186209825061480990638649741874063969288959684680332356942532384737361919880309556033836834334216738447297142152163616586744810889768050205159469683961968247093204265571963977389718494081884375754926905129039314317908334580201811530172663249528334102380924381759334142894169120800131270422080770796583427322478214333869347081158696390583616275236494763505064753194500014446009240466331733211223232460507888134728117816265642178364618092464557870341770645300903358453481705691859132821567736136857797619191383606441096107934415456669072256632297880133703773543736314213389729591926173632730284210817628426935434612965801880821920101863628539237096331176346349751909492820293128725068505280980836980880261398700401207918882569273679214169250254089768623879038008373670140340511912978837110590870983414922221534558418722862909891593940513023887702013983393181245684386972063141184338455638301241154612133860978424511211565337966221401826906389491278329578194945451463090918341581583164756259816729796329837957889276870533024805438125854319781855808086661436831083207441261797679149731649070290663176524613362417339071065932766106776342002877756006831676485733889838048781914490789850466365764531426520946254783824987649587680620213342627757417243941828476910105660560453542895443301927926794316756932947967242383523924010956396051935147773849812144714308918246148878295313226321142846324699025652243073112676818774648550554325705802905116168608069506116150350143126185617253108845508852458506503029355601204942194165306564784378428224559297826043138258322604333489193849537894373302984769943692767952589849990341215378169628078086737242909086575121956260425814404652211590358848812849669630858266211263730755986614375237351436131030893358207816635860669994102619530827482722066858407122540726184161982292833668689904022583977287360972498647336444258790668125393927369702602433898962694966554643037236516010407111912501469230316736274032837158239728165029939058239213074622648648489683212231907327639437560962816946312601102620643603953527169476346377062247263961300150477022664405993487378151430036543188848673622843702313640931377239288342246286217370696754872133277204507251729522556457830919910256284502295179177857848868784344853612037296739916407813694134775454667323051119244007565289745248680843403425377040777434606358116705962740389160606183653595312156367625932230513006439814649440506878075058927846654368489277584047798289269581126361963135684512735807260545726533536648885980803930924897628270990703107994680360417487596396281546028065049104831930740256022456649412748650947022302704415127641115545293246365470362744018561491077935103971495789054418017666781429978091520674748553541491957508195725946814476682842081964197884839870951317808040606276139680068351600809795914655832555947289267191463405212062258819520755532993043098668457489719298365680840070163272537472594061368422239873473466306228135293511447679557800152001699717771038122933754087072553896909636625415635918974866959976752148157161270700190374274738554499655342551866459566379519471974767609864712221760531915903930959474081514408792319967691109113214460154341320147305371086249903314107819554063749770634976050299025497012757748022122453450551412273684128454146818700243279213699548039904870279497056016355298911117328499361223973010412837773417237753698802776662789308494350378589799866128694872822862897071441701338185665203953288620766461358575978039342542806767973430200484677346990680926035606450395347742658633500296738364473394635758989762109489245044945018539780963481524919215246026735597719672238249917761587066337522209788781744786591104986374963613033460123207418759905230268669874444772602140047813931072501968724718156697698315819825453180910043929838057165275829963607703150766045432974366546112211281339428721132632192196033039587709332860314518109407540113517717749754240266709465314438557089802295357689517232218881806575547378281317367643409181115043805541869563830615764748953507467427358967875217118851656720589250971862484570551833032593411779717519965914360241623484545045900184704251875941396221930705380766601605185274456768814300263462988512892323109272700951546971008459348919341517317067750782975188068030471832274247630696866313130933292245794745713911623065710978238761469741955265083765874518970015484546746237372824673649179531105137852468467335397082011033105008338871531724296229255332545461910602318852758388783704698413835568028977992034481649703826366783563037358139358728941444789558861587130881727856888765220870899958384219943958836991570202637388451399090229361363147458331021371935362824724121879367310577948074585255383055859503805306522152702264299230966068127499084079036934320274060743286883750558755824287638928178470893000612831241888760419100814065378655117223669412177057465864626510750263408714153998678700275303985866515695032026394899680718879087053158487338711986652813071675007787042919650756805892867180334163319552606463023414837228806216424906251729487021202261700381543905013163026163613062015246875768119277796054150032656410165848742035700167065453834414737637550860651006193440672905831436714361577620596783843976304624974473965485963552172857933788542065356455091348700250624535535640847217041847041737459040210801109662746053867354674803006443328054632594622731499192322421402133416634320767994546581732241629409951503229583717769056341902204618519653737576159081239291223469377215889128125526831811388338993557643135529397672123501702884261082266042020796779877415002092454693292677379196111025886215486610561873887574901125515328756404450930410919196106070257548171884253549763641818861465594581846518906634249349819219801172710948102632496545308511715658566150278330057807186984263195225135117539921412575706572835644862546266494695673348896832486250325860702789716597534758705013488414181409614796726560839261363634947192487149201991808572258448391811949274091954652916826132509346184345152097880652814315825507320189921509542200681040961282316450240884796994046378699718228316569252975898961840141206212544490424625022355661765774113335911123147512159885036094175986867899693171869423020480834028800566255519335124436831820089486838249592155800284544562959045346210335289955399806776931848688372324732140167110896211499324594567811549679306525990726012330323552068371866799376154743543746397435604626283510556465396908577276441165836346638970570405494863845411229846559244396873529948668761933790876305992801682831298921900751894148391249690030574038113802320028986602477976740406777957245084338977187133298204429132520654396927282444526314451957084637606748860889687382385838288824558575610905497361694851301729657276055649859250449716188881224066431665134231198029843949484445953312726620324344024696979828016564808236911188253608478401568095583785043356446366571757047762639686546581958492068937573053478905289759518643477057405510181527081168527391055512223781659273277629090125569397805631097289497280573892369184264369289629529576214343627219790493091730232874311729508872816326515113424585413735028995909206300106654427713435390176116281298795406850292142107378646555887304661728368573255819334914338992252094142943241510449756709998734846539231087089296130782683131928330316858209086714747584985943211323046292223678735767991726332455576204764888148977276035718019828021703542780207262786358086803876843685595780777501817840703277955705938031125344689285404031063196719440366001701420153963958131016519850275949338148291696665926202514221996446365210057316489077360110953453369251218453132644100053753744825197414338092483668375138939439895353868558962189077126442398224731920078991332549031739122962289012746279158105977372676669742402847211065281083275607336559005571769019633343803445779502331752136790436722730504432098019565885090565578709346201737418676987019034164257994182688865207891793406272026640715539279177941876121137832290624297640632046813488353750390770349206887446523049028004320202183265808985792426768688755801463349090570011791234470343297105321382037987436948476516659458457644585433669511727802568217001050455790084960573379860168439316203631480919699284946024851760116251593623568608890072500135489898611269620014498404513839864453393235399218839288848171774206168565222615677809353885413993041618794466458374657644954080703461796199342280081842637727387860773461387790706257954006294589775774697860298296166813403529075017033182885450661856657988273248083561097532136177653950616383937116516204638003904693097633001251705845028079398438695956895746631389288304784518170574715692790825817978862107010984940233871922431747808337463229972781369447708148834553057837475364577282483030122934557053377226876023039850344074641308716553176594534500717565945980765830729987728606076681014073927484008664106734142367114678892749549486209902921923768036366687570850215296826506710613391863205823061468253172777489867331978307602161218936657208681225112627404745722921543880865521333297128877572327556878331662315357414122270002712104060557820021835931811819686543323517666110774955765212356743975250162384706021251181545935609029806530318245223096565920154916891500817053140284331586001631994264248578976801047426171714821315522014930674547304120888874802210943613432087562741032314497169849796545021847820401450301256843584689218618031380366149184461732628160199724789185404527314407098002266166446332242630882047843162261201912816583083703719909826693045448368455224918406219812718782961343129742055998240374881139913458783196167945967175077732831521022556706014200465654535234365476657787010680075612993148125182953009801768524594857998708878316858349545070208776549616588517484187092011209278985984478168341656662771911817520673402843638693952032189747079548780013136462139944094072080555469017464040632694904100073330068459055566103556410192864425008893956781730064107274770075751086398153624497852276535735978884524406450726116904639696025541869835785861763482218672310798966332720166168119160294694086375868720153749499373109604977655138199277015363685833603224369772119935077978721907290606155960620100467947927241325523059991730047325407822346300247903788013254597285246643799270008323413357852235235570222979185814203625512185496172424944137464738250854075765085482846276871312695577907911566901027628217408369302603233577198650931447212324268229216956937563338240652510368398902724251580862912536939250639896034589622723541260262506020243845313550457506108322793144769259185709776817071604745546130866757986192775069645510949410243060737257386657141371421256565287067650156639815068460471688566971153217191169788043403896558709197637580539648658250036338444946136680896082814115336105188467063742080539111009506564784401854195752421287229680481694067172716501374880412949218564214748632474211392152737810212719312134205877336929871975702359128977201858932238186947026092859657495455303039550209649082701482223621751839822425938311544137880695309948368109721966922678128666409200714206862977612842023198502318271609412447321320692873334831319777812613204188261025233670223753133905568721233041185771343790416648821872092016069837909035110701169952952493792594907273198351618097671956259742256983061803959927086399578632117033780445264153475724065408384529613936457536137210330329913216062210707672563526733945782231136649025154376005998100546242420560989836356330442025451672083417904548226643018233139623651785452682468105101032128143114813239247747845133690428446985116222010117930881629078827757633815680647932072736290153220405258687253281243671395247430877002581630516887718865486889362210796600137601938256299231540541952800451884151394765113376121616112713762681033589836363078395895363230090459825426156692222873262578155337938706842575258886281928385066098391212984438129267019667991702503669396871709895975044699351489114709454654189609280093337692148439053134945398867367758649582112304567207676517927435798582758192772111106251242856585337470304590533092169984745326175033969157486204725564483102783498069760285743745543475682514869703315596081909621548150261803996924530957524921598065433054786848369810733406498113908437719768343030505144427769245390349814863702213752915550278475083958385343962357612090605062205279839411187546315487524399479335496338724138957259317549739478863088666087178223991995896444312455583794079291619550228944810461335678790427443396236853367745084151447471559570750279644595516465880749234507127656265281830745730039370953800351673962700755529602271368246440401044938577790205057545313443263251602839952087811783235868029412642575434711756027413532656183357301641126677869715567524344000658416489682297083785081337374179189580354747761581847571101718120031903905781579564026431631717798391387346730662752924626131236029706365060477054225970570084701773046267692575143066742233765503481577095713012741803598248035198257080507430987245845473601671235689548443177795517040298285341853989932866611232234475053119137639604369109426881078812233341786448331979842004829040550780217997206477645022859837292320435879905205160525154526873867693389222214757548525212856454191209917662869742650042530425973021388139679375071571047783989078878159206771984906128978172599318083284633760843710316753548163957584965075227318605257246254308122504504562389298090921841715292439662266642643207413977305783957665914895519129311761810359987010703634539015105359961296453309440314993171706397571140407342742979852964393014940920443272272812223270105572697122381831105369941752275251347560496454913207909498201717459491859151714833197324665786382059640294387180836517689552106034189107549996974919480549810079690368516050136689528052831716636675302913614646143455325121523447110791057361644267214966830453667784882525287219284608220254034492208495308893825942547024278279942378133684341613185687143263712439248358925951480047691319126310098982123722679270864359305281247369950990609485252282142517191261232755751293601608765390999681110113239316957016532972842422217134598589946511073941321861452573004017134889588603898132986584289534209866982790382092872186445233492901931341055518692866326742248379722918515597148778913746736023679133928353095371413319384747416340756967970598695775836625994659876420380044063999690434037389084393438891847098296551177466382094720647982495948682434577482572939215290395077766234859671922522442305604421699423003068737662379049905655367887921719351006853454460572776097450592896971596388088809901036018117983765113491505792875117747948505873559162618479086467602920346131173383017903411335821798375935833924118158110866061396504353880154894115641169163238516999230619399436165359724543915910791543297228084952338274470576288051082361613340214639908848282689056848997030101442091637882929253013889347084952025406978778864387572002618130126503931977368315848193136756738751548279073600598370365285789247053878256513369291777512227768140904386397467614130639322297460953460048721241957028560500941160495647547485952790591888809725635507812101994550840391863130614727511580943151932672831228172613775683761999200707719763651263947877921693962677152649649872494490247817576421302641512738019247897584115988949132578830327569071906659032928653494328276487691951264083880064458387485552846070902527594785997942721539616287560202267692290819470463145683416450901878112309494887029668253214629352175811575430055289598349035270985179427021207278897652327483940917932809000483967758856162291861299666246189915525000686334427577840300366689888644778812949112905067252158128421069124660644870868471196245784557702660214781245936924454931739486375012434902893433332394545957917713065589224451307213033168245441612330808969431313935601876320781603636589388489012964697383622029148312698974911840421231747113352431967180674522088540301440650985422625562643133942642466423234024550217304763521584240459610104554275824735828813031495542608279640971185745288355383958195078789818174499201722440952862472498589543682851798934962266413258362041382366672595073802919721504590352575067537743064235057250897827903010931750148220148344514568664374542478287649798496567064595004452797711259138164411400033919316287123635203400695307378413487180599283469956088181636977604178977972631164063576614449610525754354254020996973603501591292840487576483950860184043641041080902343636718196475985294045046534143973091140678129680009711239812035306911380897852845261199368956308902141535641719394645258584457166102240608743280483681858943186286416434914130724259718339580787051803250717817943326208285398784908046909105367110909282888248676928707587074856458302235056515210706009028344749875601699174028907975405291378339194623215912447190191061906028143699040090432195545628973460216374535822530454392097781069494427029801728851803697374513060257802211289491607352254257936693078952028147863586239185006452315291691342348357884961257386419509796812415450216882064944604774925034921981940030028813342534359847535638442734548397214961704607767199581014962969643613929037369880847972958784437944656371506698623505142805976440573196886974581897000690300047062291297876633928416851123220353261242831600785489926545652162314599294576712650133894272932535682574221649439310632145489556367317849060090025830550131309899943852765401512437818881189735508377766581652712480988095525969179778014094140382464864231356314189165756189583635545317666004461577153738326073924509979241102890803263667499128783020605576986317266111256038070451681986599331049962421053310128074206638580344350016340568806643925956433223792020747479736827273959989103919759343382236055455601980670685457811736227926885375757920803669080201991861021427776159095054558732799193109487414629839251704117108559268725899966352955651295050424895473889396087266768977953510680464365327423575346396364465968027388648852855767300776616586668473011231528225109077209342677725470514460508360328215592544031646202512087248830571123320973853327862258977330660593879687419579482630902372195244670922637799302982095558970133618906463449901650405066589374257847766047472835408713319505208549180474323054175639839336738799466901281781158224088317777825862099344072035987469748309633471088784287893022140844183030054482384498014408726406249472900986506796308777996333895480831993285290150588168346603600220485467429079213554400149768041914318684030668420341445166973384955903155869949324282922421954376666174183354622506861071751342559689633021654236444533513676927216498726467785516370693551188846587717231179676839821861932126032827669021378036516475697145866027372789155121726775414107092693599632982480625817210820018308639776455878294500410192642419004809261490975919135535404688584190743300682595989575621004662929934326206154188013975438281128396765529172515460833045166111539053800338809421412578984060698437597896185067946069587037999053209844283424006365155538066192250691841847270537754964612266865785907480524323460768280539047749977410566274245629768008197666939319134137769559766243931565381557988091733538274911453083646786187899008319106330181910978928586599457383448278245883113562900610026229322624867314447772553082625417666160864250515673831434077804200806666389787741281165896934202250064682751255977040600156012025773852112060370012479676510378179220660202418267071979417047522447441763151191847192380739290353785427468966359507558684269667558272350660858864477366390711331743182785423051520493197260364801585806701862577307294218837978023831139680571832488697316095000412216055488490467538270806576059578019707215688655024688733839990283181387306490678985587142195729731385756084331120688768043222577053855507462005108522183222505675405748423487542348837389752587295766845326296592767357267618161921637191435432671253594358377334085766025932552858203466113932868372762366147768533733016937620124359411785888859990099654996973036826720118805112101484154523597558309848738925599192775001481230014354133226870900896192449347159891763276694977926462946911339048527198738564187728576074578476426004610385088257283195280089689811400311966511953060561101140107756691909102391645235927047666373982497003260384670588841246734400283098538938844091429079508118380179040528435200706879125530376555615940434531532243850526323425391184280706415942445846368571198882004668805629367440239031301884438853290090255009769617194607719318274095826421806727366367745754191294671240832122794728014895214013680572291749907392736273877032606769585001007577854350929663959399351679146096365483283946687491613080814041216717940241755205804621493203284259608957329769844591072594905048917171585982078480924495514498464212852498961572136427036034349678692876839389120815106731486069143205866495523405957361425295357193577118074365751867833681395012808148475520970359272747186243343817973581189132197446020191013923717184362171858973224822533531309705977492756389570677604134780959631746775848502218094952567508879658516394646236351010285963219275425157468431857385279196258301868230193369612856915552095131769182321483578842549715551630701226901100556635263107460843289023584045843806713894514181810903416745107008816753034432371565277183725571211899866492772210102054111825731472784746318476752643620531454026320683588264841511361960285882161052704792193842544389423532742463353568491371260446145939355601732558583382512915020285759740566329320134598894914140968495684314393399273896995418532293762238708765933737262511549715441713036690416150379593362128265687493295249877315926913984936319255921290683648276070949576634774154818652071313392520095324779831840146981502946817735829436116644667106018746968877597733958800271999333777610865627513942823962470596537832479734126416512979434740045189854416677473584134065498503711259788060518325945800074034770265968024673494418983153124005952234912586998486864259646834738539625536969058581575234142239867566557055995269623718449504719568482109390855836752476901306189594445268501284380243154115427137074561155949300742211666025734342780859603944966294173660596074988501556828042969162501409205232043125465111094704348059029587261059697542293160076024417888004627390581832644793051382985001682031918994833361255098798774632464456144243474095376545791974231638355132596290766784098780734465552076786843805994875237929132036151180415242485927813375744403240070059899776388792145992908950457987774630849224495988079853020832051339399311616435448339595985214335845712527525366954107893184444875037115970216840952269236956427892256456630738257273691122624946769818088818098906068551625791724497274332187306575494646806305469948449751783698433851899557190720762616784303181134328643652249167485643962847074871720961609830707932345184671330368492320638373551202950178063258747537615964558234591050427441641410875545852132234641826922944716641668200895590361482995497413701021798849902902355417311251708705173769810305908214058097079801648084016890780024282801554032204697749103584547962371591894260879099283811213970911562752226662379030039871208798519181390437813259075032815924220302585376689981430594296737295551509731773900329217221371308748717941582726379855008637469618205523959873151920400344232321282145810911787484872787201794069871944190340255938363148081841845000955038396025495917025412005316250919608321020804189449034961877104295493141468337211679708636950939633084000387444553227402862244290208698710989146913223605005054451785790985490079130075268727930279086058496369542059224423096720217996844342864293103648876980657301234324060893071889245643144785760859061049951102890908091297278940173951512974589683320524320659788486725315792475262910673086009315521439497174274439442817715589963894510021612160122913978575326792621732352012170525582058123932508558030432831390299794990637669085583881418365996269972067701129502316299822706698657007391004474964369775942887922556277770407510066111072793905186694388661398455188820645035441887082439829431135724834467455020156621983658990450487420255253026484990201735689847331470791776079433324767361743522520202517146021847678690538037701904048737830905201825622319824261800232688596581423258650861692535214927174914195230345998322442113593127187392199794160479600282605368548412253122775190024496251190427195836340781513141746319182807564575791337655558999152845539862629458374932308199019347496355721416640098516954678542675568177604798350444463744765380883843237278233992726425059582893450171029586002747717805207703946532385112574295597678993769766521980991793597889482719249771765552651903247601281470906605158006485083773282423863409744405838589056171094121456566034508486134040662553492180444159972538198384110863567078744688909852206124270871224541424190015786571521648806101912283193496523866535170853562406376389159631060607132223849675984974868646356259514788561970792949854370183634497594522757670223087777004205108559474582001994091563696701304661360137126717683003054047702990613677250373280803139583222781646537684907862415451178862347447384865109112971271648850158475916560650842591877667030073954928175483180060413257223758557041110842031292774179747678419641220175396141219485961571635478096241543198966199956917417868790464574281779066996235236976412464649091194633825195954598844120800885198077360693381472827495828635536785365123127702888020651800331077707665649653401671593686803749283427808356856124962141519369291697957062761022155317426114630671177823014170134512478933550941218349548391546535899227709137441349419772186807248734239662762581791691492461295822028840106819097472700655050002358753805125795864461464860293380260848072600385633177174386584990476777078735579160133869225153311848250576410788739573886875474675437928129972525286350677214481591496738894559920271647864087228542116852281837941584038342209962930466656458271720457194112653064050559207634409841259829906210549063935307468029862013380043842822013501902319072944551785884842304067403011547070940779072503517291908330769894981200610051815499088745734912718375354805591988964448550276672090859797913615707297003829475551569353365240250482031240771735197834555587900878327812799480342505416750260317046311216606145902126802115313921135387966545755793573583548814360634084973149091057018366703820746728123673326060052373557003599392073920786681495975628543002429318096923454223352426612752914330615855468624862146097955966978916376308740524334371922064648274949302440760799557340325989142048499025561813757061188153954536283197668304383013395478593330509636949344514420541393287952177266803838528132871201818460231812295934108221482378295765585141604754313017929619925063405365828276141825915003125327123206823153051985548405326918778267125789462074662785801083242947154156208817684064463607092598781901125545291885944372126937678324732970149274607373818419124707271643223540550565099997549081038065989254774837904265102136709584533072417211781061876824132888613336482992550646133864202663719161044775617766576247631694035473571940369231992003403491809592648327205703290870549120373050948109509219336464502972843798999209801415600501773943706909332203016898045005235881728881444601431460712327703299649796457120570878063174078136640973578906776420554090253109558841270955899565046747673062971370511542081798260369626066407618106731878827543453733283186100622916119688238672640201042200934004584361887088763896142921531426108682591450096165959249120604358247327823938166074692851975971999354907213791883834619662735579308410098502742326088897679485137068445426178105470904846536845673262145959830507406002270317448604631979250650756721648710264857744112880428572958907214040066605851260694792499168443460868807618658413658421964557136936625018989085665456516750546321873762798495176668297068904761996597369528728586719327155650599405867316072879572667584071655598741792621304302948906529833448361483281668467885384918452503693876285702198609128085056890576150756225131263485534623575272577746299582592440013613222272094366593787400549646206492914339007228211935088302682148262800178658940874353155864991040353328590063892384702051383151600550693813601237621805838107135244894785859900890464342713602459080728156717585809542446003049162306695080645521009672969641966265941095672634055448218208184149249912432231558723901756187480330004463500454826266674495421057544077100637430774408984397651322229212911600510485942668959176545279381475201169570296363629923027649640933190381805445002363408472229017012086150647992807613302449408689334032962299906884839353059834233418435279062140641754773560842740439786557942628069029515490811334263064396377564262589317847773602977462226337067462239008898119262169695307717682965977029724283322000634386468665496332746110049955586865347134658513321764406705372030122711688619517260836397362778640007394396889913218232624114555067646581804695144959601702512887347090554550024470335742350820548349973196924439029267124343026164608131968179317424843002069436901390236290017277574529686844644655530834336679545762889098062278340298952303045914752495965958984206196030106252319407289968673585986164957453435288015109124394982654182231000790103619570594411750716175933774789069951383252348558509705625599121483378902189846528566776997247467130994706639250482702908123165046863237877648377668167391429414184869628359950484350214302146266689222742061114113982961042112204404591621990074457018405525162419110617851577824310175945261670163799541109964490292773982540308901342180201472898048587631529918317851189651588516446812499257229402798692410967020572598544728174522323082162419082140570549547283660488033028303295393721620678907182090277522358456504756441942780442792827536974466426573291862336075383480627340566963085574860014733286671059785516168899200180131478893281442664418333791107328392884150595859548573382473950648711875714258210131893244855425710277956308157738631570601589745139190868627985144003405066821163062543582927249887894290244014327839332273615104106440020993598617282598919325182599221266608285935198857418417963524964014199924988517806117380691001865573979369144944186954277381869359784428200961894651329121102827326060159708134547641815913006901311349497475546519924083884772070180991615485290700404188369866543355611901158871948020555763222957937715129574365815034812692458625459115864380285293707774160431081077902603328091209569311934379960961760078242359694234671591831732139945310406831817745896434516464050315700478725863611469376702329641874538831175224735876496467048111162998068412793474214691170711530017420583130423556940302694773198044659393201437420747628475104108718811407179490086193976089846832800588825790976686047849828882851667665056511546127397695257051351949591225049306880635237893093220704260789944297894042349572603377292473154201538217416423683461480715629962758014199461740244147873002571656406302636765767212774098416309376178258717753111457543455304242391237140319920811253325170170140515158803116908205488052966281428839820709861105323006824487033456253677168990238827502653326832178395221442591294621424423689202595163068296804728279594965315171382554632853887384648895059877855306651712043309698849559493356638200466746068848016421516008846195460999312023558393424525278204897272222767977173787900149967084928019229304854895329216954245545632268390875814055848476515487826326832957362552455428987369315768980790473957671375152873544671636264435795552474820769783597811010627424652786151875254003859449963218472915231832970260008651501618586723344024479923707767818060002384431480975182006691032451046092173076698756718613311888450954756848334790325082780227456511555943604446091023362675126767532186056710524946804594564848111566650272957163660354531828191636218729673652221244955925293981852060173394925938016139041288935265095505856504578414477078564181156693814592002444302125094207732599144008645095891903421331899112931370357742887292978794241443535370803930944846747998689268964342106060031668117026374587681148347409532637610936150256359933853829202406008966734548395011965887341621147174621032412360160846638127607309935006155686497620556149629080384454274499976849647198146336555366361658908597497046137053810501835471835578240284235046089521381042394991132665229574051957710865950123271555249716327721222342348385664138960967705905762307314119751412141750723188915368551727547427911578079628209613201042441033642710315508431124597137537702672284674457481637957392269289956318983086951751987951590235747204389563223289993742200686945538062134225145767715010738230094514382767178650059833471616453501172053124519005277090147780563535079316952029282343888306793213252296715147556656021426604363517567065234513206192747278641224464415303347189790949514993071105027069535896813006022715865954651469191704775076611885681214569423075984280344863700979513563268240993908120215751584014489332973819821926965638566449486282182548206625188274383389115161358011808952693636597274469975121937961883527496232560049295675757864013222824453381836728162153321258584213941352637275063406639360534685377731453775050370113624591315503331960101263723246704283892755541701531984028753804101330294750756566360185932899063369248896437296205794417963565224364906295575984226043235102856245810002988053302103755582114772236894208724437108895787063002702622554349023185139643728758043792061147214377845636546782655476118443577372620801749880255146713219898392720158995750838517187830927580091202148162375303597083892849071303898795155631086274174779075206553984713906529499666126828179057906685482676720193313756190473035159668049767207965583670304854662478780102970961552931198942256379749548445506254251962662963599528609654625876954215311691687542141529144482542076656151969621510257017770677375916923139391592650998772930708743757923262760657041032178372496066886537026237762520639903710824221848373385967065223663619652422905298280151591767399827919531768747025680504848579390341980274029641055034866734462434935798315075886499345745512905517012074337635410352609063190237918867990173437032103252700217273153518202329607106246076250137828309423340677254633008841550961163690270382459995390392120924371292820220683532151802016183282925918353232754456331026049806338227931715742074469245653212111168472040059635145114183413968187242412576887686387807993427662754808650030917564667863983444581924502230507578508540978720540534036166451686773018983359361535873808316348424718490979032019408484889566335654611863958659374072552123167018151292492819084687369420732288153063595339790111340860205465350079041938296162870618312982942200129108361647650298879333893804399452804792920859114495973945640394329872350394159625749413076212320894156355801705404539858164674384548811904508856101452220351378812571626348918696094647002355610495073800995816775905666836382586291442463110067721861562430820442555256389326567454803463121837006541984879852174085818508144959416064573902306952995563437147137864636223944837503804501953178940049583317763008554390372995040377120707039231762002090788803298567356756799946566159977466683684824546170336685684333961082652962633096201338877609909056169758978199858179356042136882448485407331297881061443832651305449829209422521859397808772149081488215979406856063910262103396927462563616762231223481855476427981114732400578374332430640723091944854915988200570107323428647476935154290147365046411902548952403269618112366071425526819269020473085856990458059637627018026131509487929475901812927137247967649316419620278175998618417854366234563431302541829212108317874814207292277135412571223620502950531819673488530382449307964846185742195325528359981776331704493218320872590763635047007760613843881671255327223386025890459040498382548760086228887533123432582632412997300148536238097059347530937233224627275303951527327222823821795036297600282563971972285004459948965279660365730839002640380768059270118932646036639818264770084681391374352396256250758950874855295370593381138484941113306722618514224839824667798686028350317129542273082647428460189306074624521344092446588176994401768401245536090929922860863048747522932364699337559080914112156177549277405816435711692804898940204390777427549330134025598399209171424421696804463525364004985268073416945006760318812390009562123671509826088027194131115244947940669466375532010570719088742940575346933070985117339207837702661481374261741386708315802171586750875354570255306614556763591562201179206207104124155305221570119760273696586282291005735118527173939367251157774936347277151052652069974193492824465786275572677209124289179390090535043865110167560447742359417271581053102783176610529658638456379620307743338381073046005862711620927710553614345783697231746664487090919266443242519441370834044796632890917024002931142327559123653962478286245795029931983550690494616171603957908966930803664641212560435566358050427579989867562180985926973724247209465346581585857265948883772403348921284153907027562618538571403380359305405332538000525176334456538425593730149079272453228819429853861071834787526713661396061216224785225714658097835672002098799167044994732860980089571929930795087725542756479303731574289430616702682608580357706977088740976323480851759720478837077989184625245422576416190455647065588981465269858962907994743907908563182275374940894507098922974363242028504159910680208551270551816669483534999698596655678434227767404330520598449844695002004473927632111037308262809253425270585807229426852642358343605924507593185743095122877188121779375218515088268446942380798337161417131380230697183717791165754223545078113723441521523884594752111037384726482979172126967288769844900872729401973867460410037774736917207385949936606889767991234804478884661842746259216144737443038492765151829390750924388154815123238631172205606300957523922755486321427537812027428280410992913598410118981630364446411412708571516485204653220235418351565677633698512037875642629888578568514475982925381134796402511077034292519075424220798006149173564841064819824161902728016462738891232523222522341420051028131011913350562660434495956756835180853811990196101724541107908125807363782771514848959129382183706093020008808399942580436822426782589535712686902544604183675166695672258180568073283391700542677521896571926156110113520395155684400853500127841657917672122369321411000414385439806925216886010198011666180374783922577430864014871884255829149610617436546277829833762298888963069171729527469491851369695803499934791619208945398977987543747008203446533505364404181344665687422359187954801025105507479466834092350450666271521508107340977075326602205059620957659477839026904197077239421728214639914533930280270375672770710547431199065757381183522571311547559874238731090622859653570141935811541213641508275852759274190362289977188426939362648644051848362325333257060650349377642628439569107148235291411439540731320751928280152464938620285495385195331210941852513855999481513782109377846328559613724556289576163838734558378665023663066306097781263222482121951148053654596775904374006162283793924559830272689261286130211868984097997610881294204077662846180405922737164032633202067933249130800065046165593552537582193756437978959497476591978905017238919859297287664583186404028981062561646869229232174588015865638465879960115701577627843899452629852133621026171985557071074284308595759231476479914742764130411046672110092679496718402250263487831403256849689260653878520310231979341481417709141981544814835032205879894767131629715034814468360834421424779701773581551972474564631194094589273455422396269641095928874271510239681721061660826451128226762248428488246652616582619835973176143169611611578330080644522691739033908423289044434906165189002841865944320438132917522010988474939837496683273946501533498040761021489372500133952212830217024405358530242645008498111793818639184489694706147408624736961319874824744825050031511811301614091337720846644037632809373089910970486010571900391235637770247976452487228075564778358798879015192221681097845091273824163926914829164768062917550362598800446322350887699738431980119140855417487344693032051091382461628575066851188392217226463254898103875341531034529276574442069057534267865379786021576183546433038149457568277634972893393474241675229146088076226043768102093465013670655565995252225444110208867239338787235640020618859577206830580562390360738352827345463958361067331969192844104254578117311286232944951257635509798211321479937250148879030958593147741058390121278731491469669019067925675522364766722272723312595097248576247330263232334936240135746944313028414046043782467472719192065013587428228077526679644749597661988930805782320156412308030757749216658008851580417225708271880704014898975282307787700903183484240996011462895792461413028828732960777942659825911991823638087987296698013185650037059107132849874613420138467386285645091087344747186065261244792189951236769627435107312816782351608854568637130180719689373799916146613145499380481256316353930877655852576657251545139043107005534136394424693255905448543251893517216278929374270587472154249575364426025081850197161608601063297680552801850074457703101089722983823886882816718471407818741626498886432760449254315965942451965189626628872298323734091757880468142097403764755467832263994431473099648590914249387825132064964241279135937662300394683058963688617457592540850966667998978886129239553314599997476369587091653504195707174502370706512753508642208437596027027417134762855946122904925905469697110450420842267309044201299788046172777047413522878065251459565890232194035389736153012860817659310100062230973059224774946060546448857797372622672167100878985568449868559755874044380539844703715449462457296524337196739292593488810797972251318763830124783310103411105470792892815648140947485667694627937636833147760481104041568124965687403768534348822576075821790170758586375878093158418560602592518861455416932204674430358454114889205118896004111761189623306361207585273021770944285426297042873444865449309859667665567603832479116618534488013192362552178585338567411854547230910378976628359535413468127095741068621475076866275494907923548526753205801588277038720285177979190672432651118296722520705838527931040219671251811164737982911197806678187699804904565800306491900098329729295769467653167197979595425931883217409021229218514765619472303295360637320110882393584728415130732951036412851626963102852912959854204975315105026518832428544491853477054642499892649251662404791278222494767084617890122557631075066243897701472221180262987622375340410246389999949864550921931002193796142603193946394776269353821651229824078940235010336525620029860959882170389491810306631215931973070366783962665827420619050351707030976406294100692479746998782643714431890466988738304326288363247925662383019215731565924473402617778411140961916681209688806889517726172825543683507292956370158884004201307764040782052540451259433962726077166862524876435799600100484626205018048588306571424202528446433609562894008250281205657289472626314754880348295435660113633124448481623157394253035492137567671226138044638597142667559383454441858884512223696134903081698304446873290364217728834364280540242343239580121269127917385393750498111008822360357725685276246843177919273965557647883757200003609117390160596452377709694725968880299595557654283162688890676310876699125460214116979494896632690073208757899557316005641377056159267526175500341514614263292697267977110871251206633254743697337095226854002676533883416718244505937898616376428320874150512696346954990780090519707185236017644669319457285163051995981118811852781617723078178801948846303702308554621495941187893878848862357023812304223106528819318203689454242656508369857369474747457916223787726567907230125922446814140468066595682734747273749744996214526979664310919299191412925745849290555430015141953081196890042569421080586019548060114379518148392226890280150139220786465183379705081626520516334206821094433065383196290160598228955823531879944662853234279749571772793384398679295876840106008381370107674821396638262724088487803891947036965215712243325990754741638180766388222263993664037809920430979075131845811388757096012657636120152987251602352643654545691470992171724795675629876747102207117556059855389589589858065842215972974312224595637454752675212178288871990602537523703952698893562775583702452631276519554096485143929760613320150925608531550827948772938213025472894977226734448229701596160402096244681050879845656491675241331441050401565762478995439169365703599808978624155394414562299172540401254330698335766371854722064406295064747106278030865685183322516222825310973301509523284413239131414652635479002911337717061529402233550478330059839993238862461612703735790338655660062348346413481004605472528345389474180857367612644588734451082140152104827599761319754097956032817230267630653784471234828652134513904396292298787096739084935104777066956168904782552177399009661533160878073548551039461217310587302677543021396740781008235790751940282490597409214186337008799716353357718248788281673794507232873278517471713647570992813171464068733200605549451710876894724240612276971930249314060756477679467638624660086956365117367143705358091834779970207981939428847968981343387541595200273672690122702536833764135579107551189780124147057026196614407627229710619244280696436783697960496597318993933865749556501759694225981361583215735026943335431543422579701810555634547880348679710427468691682424420890679498377257175693969346708664669414179232804383059400293465255025269251696683091710076628207590138079904064624307273552573773553516331722900406552902830863845660063032191243445050215252458805352436692575174888835627203520638287503291155339330999220734100132561403508372565074576516193315246822009342126855115837539264066163735285063546589121321006267028803920083377567122352647427788728001390365999304214810173899533668961151793951838351241884152302921104949800324912619868073625835211074601314518883722892865784197690879615662867682872605152351235462571435068245804304614756083340787041492085756509477180982919023719709106757468115490417272381214360143428400570558066886933032740426974518100339232479007742109419030344573908389100224430224122828177384161923733468983806783461747279490097374555732500171997775161501298216252387667219874230983908564362174731977529276033964941785851446274499286027042718062953236544706487476389317001721314444856255495123326610222043292977011410064392592626395923792083404700002896195437193620568395707271986023336963859274680804770093362062384781034122195818872863325219561819529449094056064711171611835865556407998018025873041457974978222721376214435482107637368159776239909381958831166412420917419489801364410277492917342969390292243760689707198915720733451721787242114331196139383032167070732675825089067751669551952276205661479368336828040173248429827789762287740392696540489833181784553908271965727590698884150489671439605637164777581095000060979096007554836995457155030724707617419849860796861067528013856668925347050180961313203883496983381387546818378727433037104966078481567343425682168578904545493452195298691228332138051198650270208472828923764998239312314652550277336395748986374281249636170009945228122315485296920590002419544090476780845110910640541277249841111796695523707529100048057115654212856760148018971786768621855400105230509711624071310077284366512070790113104797590925394826941385730400122471867609961629694004133245305903563881428199713480691447735373209485054525766711084393653075537107244027570331659234926930923800754846043238312544319891471978320511340581918722761643568383403299233238608051740450062760646079209312661520977095294659816829191174772261734873572310699561677930546470926295630831796309784197915726527174921267952436065711304166610884603651229471368721319901571979815749638892150501716019015872443153923150148863496409423263506194386543513853459650554303956723599524185067313978906809359494050668131253302798421264492364493211394877254258161533476670502439327394417070534385601941029599314131746907366385599216947559841374869562689676575938810542041283040354546737017308710082233631791653425811765997444969109413386354494166415135425496744344027259400240163686724006418230982548165158731932390789228177817746237828925685624054794514152693211776595712906105106852596898366805691737158561530678713889637533899638134962299434128890279291021624980239905955540460610515023551837862171509256769003902474246833393037587623965596540431631035244151688413468716497870310898152462961418904999893824803547569532547689472689606299007953032600892314871613432830006020422992830657840918990106750869119419496787195740752837413445766050719159033510077043394010368708624545224930298534168895247061154533423132043685880056959910184443302971434295374375613721210737564798936116938699914930507649114592768083191809706390624021134237069577975253555947038730975341690179605052026914838846389374707979611940021310806762452827878275586592891838476531955738609926354721062523496839485625053009609793899631366359426079344339661377202518231719103532298743094894780595718828767878598136444016335733896679099417111746612676963241688652606137751783921673554244517232666401555983780611891421945906251739687900572340239506279278797727967361413703882955029981620579123831027234960331579498816178850886639875135974874722419624005100985452751763112967002599677402913031295915469454264184993054619842439445598532351087324145517920993332990820695900939976278402934904833412482501069778711254433348431340986575587632564340493418918524506485252125293626024371358942348304654539770377651985633845971669724142889430327468274213419620546251883499740337041725104011878575428484757489299456676271711443833596348638366280222342102976698247908339940202546792368690973529899445047696998573924506862339263521920654585237600894345686126333170805517428271183421732686320322581917667588694186595584692370309321047155308317575166386238377365153675980296904618077112139231691782974495596165228505774280862346004698646735834570039559235455033524918516962278157086817116093098068274124214465381775836606555003646590051317241202329571602996986978970954408434461165156665605656768921945730199567560945048967194985292870972338105467680220219725379480420512034343699074864988693366950005241916189227034972993714249930179123567313610734512766085921319774841089584287548975136314614036620767638366989537678275808021067405573972519599988561301464583523975373923128923773208764179317919594980385687588628998735092984508806247044538585725827935044256288952810257314084752902442459603416662548207401374166898614933239148566130985545577474749910711954888538702073782094321194308839962200844365236507057152459523135709237751346454337162890373178529374597822028623164457835924859404396025723459010265439274909112232675020893743912609367256458119802229402486451434796627751303778691913489213336469514872979193871393075265070662214328418013783492142207661634314443110436639117215051176673307610904490393973913007059067800641384405263194801806050505383255413542936240917069695884323667622119620738723881465039924924337638486037371071675639033379551491882083163148128056936249258776666355655926786980112450752597584636359773801945656203727892183059523092836370729022460525032846793280818332408036753123382315924724417971287563123833671661381601105024450534208625035617787927998251476384665600491978862970333255286811780400696070378541885997419045412418495215832944677714531085242559265511526063169725915480203227533947523310145949386096373223314207127272641732351412889222671029513832745410472255872670031719583934727701192563576830873017228990389548547646591777362014462968833687154441365952841252418135585889437976660945217617904049899596991744869664918029030933179433196013176645356810971047794229934572777805836405631148314752398637858792519370058421601061417787560034985192109357846823927443700831127662151254452269311380666624901792647921785346544601201661498083310418895083286525924188830404484992437091892095536417673823644371483505133178340150264053797417809046889718043312403958002968008002184572125008210609737905423958197029295336557005918468441745846350787878964615658250131718966929086684707854307933624823608343594436927893781417080638958800248896706789780257180569342531979835950088784321597777791087475146166167683949917638584754977560459151871200199577735206910256640701061152590066839138116584725883170291371077773211892382986704695612068826964629812168697675015772010622734544706450399453894783380205806856574535264261779454925367765500787733747772614335700508336914776113313236132241953162596348280190876202751819908464363310001313885642580466432448294824832777169524141777299943973344025322205163792951498556012959222828102084254271739959895479016084374935912639459410046973136030461105772284302612250032445142351886952483053986293206704270655336687050086125422081413853553370090923455197288003415790970612013418551440301352775731108331376645501289903686799920037958427767338651108571492246028957255723042787388901776673319160739703740277740182352977988780491984034820026539960471235300648780835665056533136540978357845675886140041644040604649489920179713510665126167270142957886915268177690446133150793283387034476972933426621473280073315202383266409325968507907807931560537961631331717570025877249980184934034387395451302641158118040143013530301347286056228785030395599961682364242786398590382732576385415708126627494414979933410831748940200461923151473788639204077772163604869857175159390618686339717633761703209698645219735679645320072791892906233273591542940924875567439339229024964124504171303579893691241198369426916803453121912258592798185289001809551801293767096724017689259159385398152829426344686951129258614823710118619005693049509734990887436584230779628836159694237138820711110804004946260520323483180155783791085273515442403222037956011120762909836894369303158655301915530454932041799090098028147359993745848963234872997907771659465672529747362443485202744801542898545935543859425760044731681823415420490362913300870538635035242178956572781151815948705666845652041389413342489523209705638536158045991465766759700791476699032558271665169827223510559857960236105681288892883363627674348276865315380359949596522564432412536862308097659578674458788427652226711893128031056838434204119074411074490142916398193119213480657251338147150938869804084035379253653477653376783457824459657087475556264215157732514937501515410308724129075291227094758740113352682640357682129370280555274562704795739489454928895893556722843864096532090849629265109683346637934411827386173258713324995125789999150853010253972074464377097791631140402799206727468321509708233845150155721616067567626920628227944609100473948837858552279436453959378826833254764339749969098470655866283323872446003016073054110268279447664475806197328931042062296381700777884150481518448713193617571505052064878106649943584825696515358886488217002883960466596047682681353470721489307015593873529896381544776814400683711111045969801182547459908426819395070214659832458925312566287398622491371765006253799490660987196861664431641965699604019191399146781965632639547472152225960360663693866292374758447319670855141028949881845334951042373898931985726190234838471041061400320562593195948835473025065605070868799017663738602989571638619398130508276674246938178607018937149313359856124520415691009733357231952035162858841431736812279433522364866136866586808700154820837549496056565210120241780767018563338250476585503383127131713645222251798827530064900171770883221777125035099311221416510193141229282527102156943297329503192603503671894497692344121002386989831948252398085343506844189746187944151815047895241807505964979362657558684291063034667930035576178361487241711990818959167004078532442026514288949022273304899803922073386200700049805072380946826194173239067787759602045854907328228886755061136484645533860930051464457561014308680197108970429487818418875038011003890546718189026363853862070182071064757194767969486706127581315620392969150371606987815566192552781004899122770171597112314680031297688712094514747081644125504441387233161791335460434249614793557165498232222780196149071075615351683307997767098977912414453894803096523333115503217374314484746560175760889599017353386307777204659178049170097504154041461465564428338843546910887333508635401523551383778850396009487098758207774189263572403234927939114761163566778888229396628661588254029585626511004974095459689351519507545972950794262581287357514301799222949612475153876068061696302554653862670723758041530522198559125751334172967328872434839428308659701728605041945683769595606712732194424917718055446120878366162924457927159855255495794420224546762631787289615124178730908298741844536161768840229371671652874732948521282085043381067890511630812261313336072871231984242078633419720758509779028878677508775306866824368987776581081588948042415234543308452148805508307573182092912726009966038481858548190263402790304529211168014947410567785076756497841468814174481551072869360867449338886634190434531839550803793688701077194275868176442954611728912571484636575006407269372372833982028818703368682979504054978822657542974724642750482607210109952861209839028100902556682735173287147856671674262800593326583189505235373659245598168405258151819087737957385647043040636830197801830443985139626964472272768514566985405133345099558710521331680269714780849281042795236801539786445234468663429024830537689008319343800697848434607745517860712222193706643662992392826812331880690894544756583811208918587362815413865102307681023762843565343213758372500763472559289968295652754935474864993744621842865596873246954388599701468751043585081731620501271409499545890997325313659336828983693142945599386581149353502650235271382604861279928440512587370452953805126705216229360266461637043991775666912830328524575862192395893715055193018118001344045715195506535384499007246270198226081716720724771033794801320246116868410161732843127563266389446726318405865798867538705626580598336218700949490417115252472118205579257544597579551826807687717427878074173928475287145127473139418393819001334159140548658017327925539778942561497539708933487867748319451133123784555791816620772631097988362592986186504531230876547481027289923381106417968335415191020824525097317135996259245281471447700992641347363475478890609754096070764477705717625893877537855013878407196440821997488802690038852232070693765066418213770285546778989499586737113346231693081312141540283582569580714906307453644851373327608058405725381417174290870714651241159685311952660962342208472393399124966987930664794569083060075980278102578510293483857712163271037548854778845337734650154234831991089248846843414343281527101101515665944757124119701127145141861614741797765767328245882440132781476156309285114749504033131437568418452401509004160310294553913354254091464049311402812434791588577060285553382052234105577765640915357134037028198171765383162964064528957850189510924871116799232960218323961895326529300550432060779856336206940596464700741338605480588710230554829064833249576878513765036992181468025934046371473096564005709062052275399990905120985664349680113197645359988719780505848818818096656770477771168937038408869941075541843973841208733017260125489727966119833220513466549060918530100966044688078211792254468471186829996214702673265072051183438512608467753821682509976165111258367465428000359701801279014964085364162947605667674674007016395662859568937417152817163018033159686090453168874403482469828103291322033281343378209409520624895985786769567077641618694688810480388830576659991906119271620899354009363745343035858310437181071376218891295120583637182927367513285575843273619122682474720635706763641562645454888972301843654803190662904764961022876363579937227515540294532063501272463301989706455043476213586684071766647455173784486252937902829430134062888118544295883579097570249749956577388262227936346674705132681186657449339345125590635407809272411121628977894569662292896768979503894081194421843090663661012609637276781157285505628227315499792270865738164957295022690604033194898189936160790371043289617761403242073429687939955055114274752063971329319741870557026452502887799946536376983648109652541424539028106573646747274949076738155326988049222955476697245872224391600872513140580630211002325700652569097701594938874261593914990730732746477859679056037355301379145139598413311596455603496222188409837459799406587897702986006866844000666717698356773386231434748107254534226698997050093012756694227990227710724153077857143634225416444510233320352804644014380749331455456686762449908383895521169536293981885929201319961808222484789288380247263647467850245463416610893871303454534797638610652626111859517909431911839138595234845180080792487028921941914791180740247684909745991127815438639995731555151326968011032293655292721972688409049274282268739940225889756573592866524774559050351938767262199430783083910026871088081152455301119057485562973433935680203828672029964735614906460703706023492891433269155404285937015066514807462026601380554227446233118999759381856952717884945557230514262632422142765463340541350735923179550357642148896273107994767779455673474324104786980519963538748789038964965772245725595746847517723263179498091073928738500709360244109536359997562619711802428613998542388764553404926181891977863751162814757021364594279104602398995725954518054135678178068343026561306605300132330361817845622052170388495872574754770563470570356943107768328500661178172492760145510346992715508058553493645486082986668562468457870493171609661085684301567734665213366567097224514872631968561950415566334571935752508778233995940359698018064294196710166161380848944131796397087201770198666787064349227926268862543002983176505587903826555063530922604618526770093129817708399563727468362018368743372949068853311124039675923012801055075317033412053682824252047006109734421362067153252646077595969603112504499300276777994474914056739256532497538407734119235507175580791056585998913434722430140433738750388087387600491564651096071717763649435377526392124016119392648326351514228353810001532294243514196312867540405827858563878047056481207175136473082441585909758123213649532278038095420334218326162332328327646549088652648510837152574929394979394937476093816095485207144389760818845720101392502782796574263552415200346913502786667769968357603154254964384683993231583356626242157191981229187010777907678624799886910056222168615474534952854875441344387461719540420561190924562030053222410966601977528164610381792091871182001254346594648183044076836376332005280234393408853683037507941027754328631102602099278830934299371860317013546373914918863306630625791304014431275740736105338580537102818672023173748345843314226428461091611405875148360497468522280195894838433148442168778833497923836186215593764972596265115033462100576783959304176484924720006612835708009987913817157311007639150526047744140484560676357478628320075534820844338632000163841929848845510630769565631949611864948126095294225733254945617404292219244509635277387485515019950762762989061606389808768371501551275520193581058110253407293520122885019972326912361912133086223979585350073710396572099523277453618825076097664020591474390632390782885193559298147244088544968778636574520552766292312212421787631913286186311455194966708631095122634563826080122888238754593464579014463321439859718618542260237885152564858299357775983985338087055052079917397150132862019159915230083934767480532997537462868666781013326820118423059934254196646407745754368845434208053119378800730346918021739820022276788239212397278089103730836823778374146009318485486995004255766390129951637272964120708492957619534441400474218267385615146099436135376039044940194294752909089478102869413433241599108633697151357097783989168778853575948333547503819402807247280172207096124291943208642252763646000432848205900362981134180511276389756125550735638932100197004309437263448994667585740886101839079020126845130432014665698436094898928580800428371633208906872848034767250585646745592139961333994410491001557280216636975729606815080249243443870400335297774971558190752335279931489526416872245788286128110341864888593055149290991013701486917381662326328342542899833368756035722509858393938351785497981680074470505427578128403809171207274868208641211556822878640606734868439713788743990691987366079201775063150546986402358788709131819742147507484939138367987913129362837941579880851456941994730054206805874386993568553732953010816899839500330216519322458761346521635237073713063502034376289748655133207374079860186674456978743078101448877101983794530263166492525910668402511485253243391218111633703438316987205075645299039732962187656680166880163566621691590414299190184623211539124131964597897501185682413322564091813069419885334886378553336347236748548295585960907015184990918453543794024397159260455978744958042649976044361763111465390156418521620022568075324014121739158582955911056082684728255862963516691787096728844589194268354199647208297094400422491803594803728669739469198773484756294723227180119876243735766121275404332984960872261995801251450219564895441960934498790696945514629216440676647251473283501080262185065678887709306963590037624478928570069704550308590559619554503110105570118130249832911656036997415565778265542828899838044295107110492103106285185764343416083474945038228543156776828637782677091808498290002271033112137203259742622870875768720443466199652398677497721233262931125117890894669909555069370554381395051099767857957809484506187938974545825814049843536532268094070073674952445066003722244930474094617066831575410930046010280102795939614265445427696837591775274747241646129792321812043228781141613766149888779643373779941926192106436675790177081902885611388502092996451589313044255385880898075185615397428909316205308835098700343370197391166233951998126528538742255456325687116132953404295208651734579234279261424474680302717551767133146525882496404181752044954931833842763734810522516109438290222749772754365069492176641409480172290636290105149852516996457465327980621621769120213820805916084137683254341951514748865431673903651369294686801510967731292928069514286830890953947788415881579498622941990255646981180467808974072602122257427680332098575975407644150997991461808782589606341752202486706099244659361658641395605407689467091733121655769590712185943830222441202341069294223887750606755976353691650261792563693882764238696463144053620658545846861111872812289615637844023298590377140595620746158626062908887401136158686054998956124016479310995792759221156887824913931662517775750453922471886015726135079277750646485302360397568581712867720914153593593600334144071440031068330557039722277345653244055693092307065905446016120115922613498729378167085420388926856201597183435567022032290459698458212621853392602873380410955027937149185245967883538470958945430045838063811853905856866337904717672216206200513196831619885435939278325086583816345233764254763840661138664052283788317326265653363042530379050255259481322902681191065234166775341428033278864539427449522454907592799505969113813560545408593725512566035432642311065538849030065676161249678002939829121002334735367148905294371122889677121835796773725807837238242991219497904031826642269274949976361160928918258221445859069945800543510551654274264600173164429883920387010830937917872240013908039790593371701856239951789945556702205266115398362791892499439793509452038920572136013635793218381207976590668392219626117909248320569270473390392129379064059005325139577902809369993594055480074896962444654261064978420888536291264116627828244651079869176896686399966992348039781103471878128293111234431269023192094723582894836963174158956434205942276374451894600909277601801841974721392404903270994323455112812574519470105805416953437828852470833419174600557951184368247622014613833166937688788490234647307913970110867076117554606825724287086381902277669790423259243691518347874732780828175201360290540236005943283842727671901352429939307821689496691699368350246767830266429531710071366093013474648544982113362537146673988492566796240391071168628490465874008018299777608753111088777681870172267521272360363730865311812909110269443525709375917271693085711208843127766747459767530128543644693845842281376073475984238381315843781127959294978372928429056862819287510329966201687931788463607072881833343582307760098106790444197896644628420678767945924000683080930983992764566787506583069702994334212662746078343527949365678736560191470899458028386016932396199540066128995335179380440055188104292710108967471825161537658202153968321863060954482543738509696362328301369991385903748178436925330957905959893185077027158185073810895254455735283142299089961990973353405781026423876204382559518987737391479739707516021677947618771750306307610340730879837045034488272055283263753878808113160034558270340128043663365826299572767034461339690944621359889323101977984008494958653791834858153500252071073835290537878508651032405207639281458756586926368318693340305213121770429915088802066157464952329365958114357229230168818726040744538961914548790207005807416368415250698861033800116210915561137803328348963519087766487735360735483839390001085023017950518800439040554644986174665351110949787890159654615370878306507404700953135915898517160835945885919689429617192971018755784816034170636427705383022227270187738859262002140941216694785674864155683305382188325492772425097210240891316868923222758050562087527882901740398831694128610221145400204676764907921182256465372162841992659971894976476248846069275883733359517403279437046636310825260066669122135154657899035166807477749735065298085680875194253341466934165495770463640912094767478046520060100921574542065208669350074036557418720643485004915528598156408717011709676317107801880520349954408983476408112083802493635403534302368616880800162013428263791500858062080952899441921199323140949428241393225970815834114352715070723614678518007874785361651824022644029825618823523349258413139771933136805277381249478185978457601520337583910459089546477639229901187490532512875440996221266139559477441463457100085865909228684658264330389661803678157106869079613334652349915511738167535976088736008382979266553349376925529826450663278766618606913384015945165217689022479305249034816356795760855185446192083533197271351654945420804743893480295326329028052512199097596320165448977303149952629022966292165187590416849564539548886478045901805934355603096909496234193756535279881504887523626629353754976745938380880181112084414438112482682830798562499745323993484322949326078344894230394685914649978315358386421292178463752503062371461100057376858431978621605880734553702738985876160300370444481961389197186206828968953778750979475721826597480962724580643551529543094657483331389690612591339932133193411190011651108338864916593331243768155636779103359585202223182275177146829958329803763589303161771124013156493852837714591384992778118713983961039622811354820488874546128844417828867915597773142911351017086497069017830865929309358876853585161338564744492328565133994863188566624267014311665863514982728535464710223269478701789067971956654154388010781015520009128861075349590487571994069810570359247402245449997050971074607043891039133777930416767271653085514288373834957350286457268748251617362810482108451223838583854914096142378042910762698994723668933752300425373543780685000968455789615541988421143657205810543033860224447426429096683166114559713879880246922675559474220148453446385068234241158432396098570905928028263364884322280500843565238734022963772142380049174226069682756992567719616285592073876491643231336123286991027948366358334859460341744018896989945481430293706744681990829294540493192492301872150896633055084312759072364512727656377129201657741112596254060486805313099957005986750277585674204387859702525950143177607809637516585496770919073838677598533746030180893242559914909608052742916371457383465813491732494923460206004155876219006853439529752712387400158812063361915795183109957824960347671615754375177540881089176003471552600274754750066356560850780481996745899141308542928511154560341595044894628274633543115822672883074998887028260809536489694064322767593462529991320764927435735645817943793726744063943432561111764216864489834415032029078580515874889021567753910213661538670725794560108526166843426271204792636392183913777835616240546198140518324051427992938894841754635963717165223954899011741182436688990725219631861856613576346816419873471462415911290709473897095049675160298580427086246093639380663377352054528864969116931487901744188681846696414542142915151104484668858807664495755191329353908882405046798244837263295904626617036708853107945544946994351015960791462332786386209497268425438295421964461634576946977936854626550212088004858267609878805891443139011418583861264862120569040011527444735954012776466702382973547192488992959032679805346156284075152196643986169894359576740429628384811575774194624800736082818889193922472661776670301882166370851631550964745634388341235553052495774544307160849634155865162141820124936677860718087335387840061520250537369459890047788942023605647295406272860927445022115104583761202788880669477750265048117711872650941085264874244449156372387762451162610608958369005189449847293173757468194355293401443615079217776926714394781408946734540795244638904764258403594661588635580470916084883124930294709014139396167307862156532646803190873845251425295974078143610312862611450434145882705467174905293265337408298053736474723311322346773928682412624769176353230334690178499092275788817710018530053872179107043495541320298328179660495045103990074144747425458647465050606649281601283331288217873669054242290996684538766534883342425190814137457547079404765489162731141289255358357821562217821534069561366890464644980052159429871218961691280309932599576263632658553618034391870997285983839887514862599699564399774693584288881294026744373968113651521975918093336262265923397642479408698227774649831269437753382911154410090715649414377728544355481683191881784588402072610010904824554781681539056904283169668526704488518122285506590476190437771305539679790425176921111206146592994498424542424039622340755429819980247817105697331344965006807602122716720671925974802550190156800736821571367647589640341572245075893284846076235197654944900796254171064360797885839310072277959263849841247111068905065813796321642323455605942299596221486821302145261848547807609815925012679532961189168184965658581683957790169766672763040081774695256169396502614142674984074874302800142872435629339735593117331430202434827632605510081006048615763241752702917428330032029462351373680529868837798705783129172847309038988855058003326377488694808791712229603612928740617473335724811951400078566162011993367624198606339132427876155842794064599277744142173155189635239949496726426982426365086945928710042359987786412397038701281708100255729200841456243912349885115976645771509045472286029556238329282390122436367757727931949682814019518801124877790090273324848878186090391195702516063533561013441354545825920859862029226344072219085971081147900862957394494126586397023525955035229571818184843131620561601896341748836695571158986474455678695497010283320198036151143238718260240631281456563487949773779933934534191238369451089639468193064045625505880734110219176252670570572874813284498444411558972160385807145430177889010115436394491415992239080642798957012138034298486714545037214430904278368188502253620116046227940939024434025838747790383676109547906221566531395938709907715760202022727936135874258702268668243414640730881432194352649326024747667918015247232109947602554503048945713623096514015090301388349425341422040448327260472346057570194341418167673674460554404206773348601704262611676010257933933536952736737052825302366636084808943689627531399676766464876298626761517584176394435154096993115474731552460188403977580663680044833401536416270501556557172070258650186284621280858328402007259069868235776899370369188510262442149195146749761620352521173633280772608409050702741219781176881968497707014568234719477029342620278452965483160713448617798915304333021658034070924528639583218526152678160815587957137940865542941748864408987297573770540673425098132770539425527178880096480002129041223435102289379001271726000434766139487794437850787776048855870527602614987650534261821895279385361152303347991984373822843778335034232789489518642662214091952235501915250503687558771487886576677802024563293684150328499584269268901937061054342305839859745504176952286921392546805273777966311546365398792577816709202409775627709964914044529545040813115069879217371734954544267411990118334084753935086968599666967413430792385274962747090479556265742505911030994191010031147412861587868560891185293829641350394831974312798896478449197726194278739171456057916266977887522898379310871506378911197318177346546686873609915174725552687540701098706800533500331408078427468168768588172835155206962617655931523800618840012114676030574538934094924161750170927578403518909820391741152478742193766625913429336222235083917165032480483034351092705561249135602533247398643312895620465992215982919760371542953214249890603608515713666485406730694865972754252296975329901886425003165916114571815071477553171299819564674524486295555689696933744642351502794389702373219421651978482529552493553002538855811700405637805488831145649864580037124724321096694945435867555496670046954876113688544300946344862891400112410721126372897953456194307167241230358978090672444321462278347823745376398299850855972146156817324286864702489629809309549181840826596743562754880111491057394422731622293946642274643236529148905191670029907115059542744748415055901819262614309338573484197051775818600807120244203807076461946755614197877320209174078230074448345742256642213186478605599440211944346489249616311552141175520013042267605644998124437054601377153277782257686225534693257626289258385691434247651528836691220021946435963792070973754641818509242316207902767488807627732743226974402199329411434315785766598194719562146412271805871515440143940905285014940568162313615490886515723021025519094683333812193160357751093662932996397854479985095190669893833574338299840619310661097677109389257952702014273249521376269345301366709441432209863149072802637311333812530340827446182161688717876438330828480608446867888016349533644271771911053348840012275335465020214195061517523703200443311190410441929629491475174852752102653038934108339123066500941346678816277596641475284481115243883006341775116278692407739905794933371740678998523406623444422897526878925911448958670356363700993258873002946878405588477112573400965550637746761104983447241448129129592747347531908831953446852727019872547412916064301565089140864140220263546009623839040166827462315934295504644409091370473456792879672065782121263700991479294348389247008607060439804589273147550227473751753782569005274214226415597824508766152034764085214314051936310619914039692959719426826061624320763513873107763010479156246942721362312397689521172525291184695908547950480748492169298163577205681327425391236286118999814058025243777073865912957579431599041453371603127930582705064339529163999806774824638970264521030801981330961130568142515279644400063572727211008689573799724418521109593848550722428284280796216463240945919258683846634158240806149628154964882137333110241966275336984082406404162335156484791399254244704706319748220847495310762081922912076914058808000299134932551334329166407928940656171095996572496974072895288987505579226682086954922350818656355255179426821741539506943899963455718128846926209376428432433147394200881610997056811599254649883003619603773855734758673498464499188638362219891682551460347632577640530618901069912491368821951230910092049478761198603903506599765718472104880425320673586953785336087803618154705623758573905258458113695337492981146731383243398338886088114401553789329081682396718296239709537911322054637342801820009368846984401753066919498539666804160732887114164599894672865587615264287612217267894383435644702706973591059897596892981579951656983093734397948119801637390367854579959023670362304112957617767739500941877703576392624633435630358532175452153261607258196393945865920290162809412277493132842141263390634935150421632886024949327305550009098354117269909209092831854484624501404819388649993089389829361356677164199612973658868718240010663481916426529678431934241177977701227817264583259466739334561830188518387873504430458830079119242938822751915849093237891194594012192716500408788525867585012434510052978621431815668801406082964155927178331234690241395200402739889627813473441654500018629477425475609302867396902705705921654957651901223618715280192111907786667773632547640025713341976247820920562093169820486425366304719028588069298457606202088674439262889996428557416147005710912910553855837814482076671463616809792896085870964651511185116847559501640540989078758112810967116299472778334485255815428531202801007414420227836362068067870293112211911361974270636650389040278706464999119546984291474523620109152427126634104217190793526101741913856469325977301560929791639347937292503159208533458409051669880567798518515043604643913337738473538904112430837486429606454115776086308643555271625044891189037634833428830365461192766783865369368673856870968616758144940063350014949023893642682147091978109121328450021606225873366416208528645594304418995442905310342975875364993173326692936726001338932950375646224851819260133648522324728752293734712907338890996777785979401763612300378015710508487925085392392794584801962291934522465338688422369421863577437651599480515919239286129299386819899287399874887071859618168992766182715677066159332131318021695249383011544037913611656080761335541171315825812813735560143977030468006148992725503582235363163991583738542589879724304363034665730076605168148176312139892880872115247166559532746921754407156779458578378168987478574485528987875842459708433112029876216082322358119121878308263942904648018153504360430214394970975175566065888002010569946592867819426816066201871245827801117868946341532908782414968040454153871923223184714908620404627790514397753124315986479849471984277893849219577500055174595112395935412029833725061839417482244079594505007170334396834329278295433338487911424703645532349350939093774913510698972008303912254110653168622846358925169760177567018146775457651171641146638903318797257407503582347067351909510169436634902873213602198295204530336132111678555504245330659869844807355745338569988215958412099818904969352136377222600487216298924709652102074471324381498277921436396908217707049825084130775715534154380865488244526376783476822371545511450057670005846098463868378576151108704681169797417633685456664499952288651620934646556776604404532821654890746592949610394934952360352522797821047693286964800316604164745086587029062475340808122943328022049494140934211569246000269746277002831601111986191604317798982737714113583277786810136589756403792530632783432404519747089912043521962730897921835141060574399729618315589493469765918301123806189528904264546480801026219411802389084347557854713539881073286721975325023604532984207273327363366642437032072312868278254246118811729019673798567718476310946630132547690295179094024706298089635203099353653079258085158866938349061762927438741836197701733452322864497835524375777070769982410931460569453769520542514214043225212890793708245142345737688734085417550095949699556971631502035183380183092501866211802014283108096910938783020217065707038995717749254972279729945188281491661368943276389765384794712927531418211534054602367690975513107620675938809268596591969074074474184452363154853664453313114374403243625766556423061349407641986811173683309295586219029558499030766773851501061038757285393880487564295438842046114344930428596971804141045995962415362615271519469829321423775099519186648231619454452439013283211942740229193883509976373090220059625817823560166968451137978931015326747166357609196586598887115054835321738039800640958342942538257352266831447201856492990247501889997798662790842682128052349117803144669933714459463282568408755649540742628790474209439684487607947742178562131886186930518545646139153974858066456656151524397141624108046631652357502291671077435316364244782570312713815683372251052382442128457633361742159710853717570952529286581492924476710835819008069569125926462589738462931776399099345110953232391860566213567089080660353218463848399447011322600709873420898323374994158047494388737414578890392826157988998883969290277176250322956445377847152024148439875183990551287953193860978132967600602056251124758364297427475461982425547628113015742026258577880242589255580296506057965459036399857116971382633103815884320739227105758682812660718045186436159057504653253611629325470204347035711023850771841864996210461265982389871419620197722171210109031542790974071984165543161258235613777653614298759220188062831713602826384943006179077332666486257082130084849199097190120057381655958913744375728755772368705137909559471562013989926632587716340980945749552254400834920056994722520264788117258122082075114784810137163291693613815151308353298502264063409117749292760700048413460261579575116375648582662595149763126253720490492274733885006713771325536255415544594748853147134428615423394691235536216062655520036900403330212525815114603778879513101920728954917829228532345025742081288445857755988601847386513944925298073469509047681689181734582345546885873048391776128001937616052910314228389757095096622795062678936795491945365869939315217386804111906031332790058999056970656522593702939949701103305829644581176719352290504239693181751453767347039939166653519031982380025922831965033568989121386457254942019826952888635469247590206342556562332699705499755066807361602838808122975110141958498501187700063546741056049804372743079056841654220144482986688109356088896636045018205707455682634514908810528630674682129307582820278998271548451686394569698577999543073960022856435298499009266046024475018416276273867316964257651620862754038653162637704932323212181961506300579864428505471164784070317709772358071256327484591350470458932615802910546444577394955930351706056766991320646243402178121790879189764617482725630917052410108518619148329976140920209622189250706776411460121392339438037741082593762808312156449193559194619687287680892265022809139838966964649258537553853428715693541047026845340566006329409125616446014917731686815150103202347164339434349874101474523971611926098873786958145253830067313230783382527546023285510935124707801334469325333681083777483445269010608656569696112447125834245804021164146158649138820742146206839417226318857530639523311547280294676966276270328967608005516832018217244346283139015598957045529146975276254319667884579942434503208684669337824886018456833032246500551494721851610099915930983697626348198436650365413999147811296942172093930475492890113300006673863850266439226493146077080092328073431807357217093323823658585237231194060496872453283929052937466679056445760525305803622928440213657088862215910092954725907995728063979492712508393208354954973794847895480900752886362512960768275930182535741463451530482913930389060743383964111127628150199218507188205255468265228960649235141506793083938124485171563714706516016378205903841648553549422673917939957536888293827163939090808511477078749020500954722857026520436604543432032970806836372443340113363463411609936307785257462132811954450694968269853029689026933528246973405072145148617798083082358019951233780008356351631713116207904838423463389416198597561751305209023079378960265762794157912798685033198046881514421460488233392687682385581700385364890208926922065779938122144459772652335688128653962069889944884547393730250100776956549644488857125268318381716858565287633975728684788638765153067226716557146550188740810063245608257611463140709872046298622828227316407370710286658759791373465860973743766459299452604484635305378738841211102802896630946283197909722425473764380699335310953156005952043175117816351361410508728694194540766307249698551677530894878673302523741550413347926952568507731190111616764004221246798176879849872854101595799889135525109786049051342033495826445183533600664788306314385566851022294965425056182131350925319294198280109425646850480137252893339838906077062236429244140055776679275899948463509571760747615803705005622188285982945931373709101495906902614397737959413586442585647060020870501738178793586467615481416922641846388834590025182261351624190308318761410158184145695455495590854369790155882463105937299624289663512236507755595825351069355946469485775763165928261614056501055314382549136063761836809260927322679014478064981173208100606028914520546798200365407393738016190909998059120171257116917985919058203143909826911530668288870741997668742242368209561578162368349155803537870578164552894981686158396353109372376146913528096747817358516439445265667039312806960705723120750900791296486969427714026711823931297068047258547126007022820459504240012269707650007695885993462400729178961905264887830121369772739111357102057725955061020902685830904855144848364895970998738207296417787091094525854623750893360484660480253433605228009065589981705840928440846112305109111142724710864795104585074175280518385436949762059101976568007010060215648360869333667054225083511522418695370498518043245504758359203729787830318678255498690214190517205186091906272401213758206166640491830374900838688843726339211181678743229829548911991497818344163287665487059940332715563735539760040648794082404318993557223271933258297929432706800605436236724279051160419804964503011760220083178910786824317800821891800802299033349117609505553660164121123836841163056675903159114178279397121724545930808903405682637689789637133530229184789461300814835417677333021500232257447221438530119193726778195044321769126462690002518716143224903808040739313464625532839413307318695159030013769630423805494794165125045728902669017735936289647416768507003175690735307425301458844956801757087078638858449040763772068399450438560948377601544535952890431758292010724144843846874455770133539822256976725637564440633786930735592443291275081769045796205359077730656690963350213985856696381790279139318680244578929585396961083955693360478982077553105903901916381880649377968286527628748456423127801020896585980498839806339130430657088221661625914753800062343112356256815853174202562130064558782768454744049770978567013354201301868938155192453029027683859159637174648466696937268880225997099099036683643221596216548255569163218127081337787189741549824329523718189966140226949809795025684156728354107679606591929201285830105715570478984004867093567219675730315606124514778582099548608054553108422036468501154405814932938543853489404145217097162096030724981634870995847230631960851999576887531828168017302422660845388188698183346244165516094710906874377170469140754016967596774636827325867132980817141802139419850452058198049791243169472391003025377186766059345378369164238386550504035412568409385601657933583986349213793453574553438214929292649749484382576986810096457567344907624128030549228340389711953900168578467970551068807627484091868753136749336278305862136764180557792679089851053067960819477631298829220529969155079613202601638563338426485449650808681790748663252698139560578595996381523394647920074879132756340201851583755524964440638346421526116628803478347136981358665105188169327150856295484892478085118831136637161866423140286712025454768919926338125411418398503856144791627471601960259555887522787008093735650448499323764550679936567460315298960780519962180687711326763606835093581574028129753094913117231784146303675433906271050426799479496463886179317863379933594403344487602445851079589641479255426141110224854991506821610209717465360856985716963456882192698291980084817375849011815194334313901142345706352575628404635661118987415834944864073112812582538221331458781547760353524289986019316073714008666455125697409473145203715617918247968784304514786554184464350761899895597315770333263828608592230526826859195751135075366893547513096783408466682451684774322814459284101105021117788214388405642816120646620101614324089243100418632133953469151944664068025532569655300531748111808368647904629901901938808449645069003199741304379602981379553761889704884150308162292843169168447032777047908177884722924247237773282490874543099190162078201623907037681873923485712441019182669463006640017589841747999387835517365991734464837981888692277263696390278068680359147652432091951290950650562593404914044112712824656736482636346810203082038373487566984364099107334167066991043204372117788254736762574943308174560904695729826474983810237971815872106813058742622951085589856659606662345143551609521489193751461123671134498587772798017109286500634283614749627416096850318121013497950972068400873006769132326679580717142444874779846144789659705899913355576803986570298979447272549270433836276565432913307137061280551156072069978553958068220396962056369886965504903573309819551376985036984709930415139169736666244254738042059867259163475426743315271588163633642502467838358339517041363405956723889926002554094644220746112334586307253853459158528641428241320477753149548189339893987669573360437645918341911145382249384699921301081854592006476368676943187044127453384563881121201742268182802653050767835219158222850089794145476939736496410657831850570582448933728377522989020236315856825698817558158405691869177380467263257757676823307684417415265951071153860403306500291772088955498568477849690065080936730586776669347378440224986463853725653090979960655223929867740311001273962719849335101299896021691980054525047354578981006108421778275293493606982574169583649027612820944111900621648594406119050150594836629556859594689957903994262353575776128770340631984618700545549403380296873311892977427824020393309094600453229910131714442426041239622435641590120472241297718064116476307463818673505927031751747267911805949588744440403924687661545558238396419190914031262512707773033364774262156424878765884354197016809984910609511380422010843495735291044564633198566470856289459553735280232633836320713084173443885957433092441745262808477360651013307556573802718617935108118214286384467819276701110755049133774534582918973663194229165036066055645011238031149892147963033309826061486245825615303330939200844819295704553216107151148121548015933817201998807246216195853450882530857892444743435344223165815667451035425675647623573454411876270929732438522512349497836510285105734233522152498524716292078144843910122255846595468079737041857264923527685767329141351932478373168202348626555631330829237300325883871679468956689789653243413290938170516956041911965495042862840084509431378737879728949633521689827679674888278234553809510684920979938001439971582904200938029270645600512452428798927286407180332203436271639561801943083243939086964528564732980684599483037274176937636222304616852042753537469873080354345999588330089909619851622428258101615203284959177019622735419202674343540162589954427347702772102639178365420882487978925035095993237068507029437104309394854828252358999878760195442098504114637380518884679756089914179667517534735525365319527263856800795886050335768447183168231354507463744791930058645841400324668514161999125151566632964303698232383091723362688916271193210858723883428951479166694931042729395195314348520523903576178841169420821696880182435199649142337999872413192995108995186329000141026053524217964336120260461874108032736887125959314650991108482569810143957999286251195084734728703489116873916932694153431748007835335085369933377314086396431487538990117722109828814379376389104825448253482569498084353460446872678158923760874840583865593826969612819690922734021295299565930514932194812028711217286715520350726695162932209012495040430136016419392588180042116855542985620955969380337676833826947910627851006970128769307380454080946768693880638614600532784485601916133912961734298215721288352806639693057593740405251359594896370553445740059758082234266147218952535332390316120229091478580013713870114649355767763227398924200697077593818872282475071675978860101063686212911054623144940703318832738796002380418885586052886780423651360876312416401255135029955966721718590968949145519287874740564284892608105654417402688365876485412232408117437535317785057531854619261173106722901430015041803754732121231325144991417560155152065985851066549741316351722560453622901401214001507516330489105692287701241861523816707111236749557664932977475439302908047856289742949852216549133745343447384233422390740756061304829266814999728880666247721238452854825723337943517795181063202568660284245010074475127644512514945219438091712007813753678299693178659771276595353558524276165949995060349936523400888256108134151023043960605320478048703857675887403683496845284501883554930768254077419861967284414119383917641710318742266250124628630582827629706368721921724794894695002128779653266839417998617149384850170364988293748525000350477797802979615246244148296743295159996994967023907662564884239334628611443275774386966183643059183563290607178895837184501498445989294519595854518565954965962157417308957152895899975772389455782483342730032091452773871815179251692357969492501687785043466685275495417216321996645990737390905878844630041724593690011135755847512483650178784795782009073973268484580031325554610177374841966193710899732550641007881311991332793317757642097772516790524004115895597813790254102449157101855394591817509390198442318137270355531447430114351807143271369534558651966006237619578456814704121365226331951265457921834015496388093526734502536361373459461184372561602517633704361385293902442694598735836046546274166756515725176527976683364582850427599690377826065896464364356937980970685441357620094032981462363203500505505103297180730391911964684963774454504224994151520916976654701907912409906039661889852982073283187665586523025058037641988196034753196144130297205041939638700702771204345297918822440407223883230990328871739679651587170560015583138691208844923666010736099427527790679058552706485108331991856396209482163109885790092772811151236813326509699573800252768166535201412659703904278526460565427707725826503235814851206546641170773556043115981173585914696632713359862070079534770889342136015827744236356585613441357681631969767293874344870248977430822317951354512796700284192202575388474355643773422404946196502040061602416277679255854724545449881711794351282345824382428034366550436603990627108787757716777160654265248542044641479873726570078288215172037551351403626133217355114585034385503758901055600854056148390387911450759770178316985297946559183306015901614022291924641130016152321964105808383685794613170437890164320266264802100802445699237075966932236628176615863149072174248429139226303632210372910415818652349857334650183565405194721681344353159534036953733733137633894404993942226093921523095325581808735541164505949682794374402669195898325081432930278284776755473065308116231291597946979852657150066790850109732259323103227065862618038741960477469730905011613154350405004302509329910673386336587395438078934442210677091053592812496296002907849351890528969234119138893779726523761276550442038319507285129957341893373380787160177963005599556506650398532967205879742375796781872433596363543450588456558581099782770268877684109038315064008688655465123560061388224073259316298794841267953335559168797877059908297033263937626749163103076061033545365476227921100656347895989207602105152008732106379832911920860915916381841565802495159589813695321211927830096064020566921823429164109373475973283389768264280296175588393764111223977829937807211111041904217316376512343147899750401213091467627225724216152650801789824371113266896534793310106766518668994970819035296591192068101852527064166564053789816766058588419420300148609586151605582888718991026525919934668836364682271477256919311316211163365450931162692840760323421430641302272591479192100017503756060558957703435716032752498317476827123772346117638434282230856783215758715141166788386135297300101696897330392559543759294048466165240386860441330382899036721464325595872013719934700230229963697094083648991136627662563963066045489514391024268834818932525510301080678263464579428731543498629130825852409983656176179769485613612284168977192068040276141170587929973747059158098175598341680561733949120554023766192917764144663909201645210583001161005268416960759285372476646617117569680407936565737766908542600967773743577329836126645852316403869579273625328048995790415505171848914421525520633195313764913724783618833326850059839416041143211968553102152440180955700186779723717343745982068686078522475574466594437118421867373770875871957878212951337790776148616657566750455124980434520662099629979661390082198101125453773123795805852557172736374897694910668630848461509690141899650973949627645392381364114578838356647376796749472556687346584601712864291119055014287828484318320381172117351706028161976327487807089350890113654598077572835578627486047938238615910985949631163213130882679243638749015226109862898035509272411730656498824033005324345394856004010151709657275190047729575670546319363471053993294334461362444804059485928461086846750426048315803353485894769774562589757807661195109504320258530546360032376479546843369724573648393723045341681540436941919260056991284007814531006910263339603439435476842064030499010040673375643486065435694687422982104296450795906778346742973072466941896354290177266614284484521988089859247117230488048966152175572854417347142321234321970317769489187711221978505833129286344319550224145578830875945224552512240633685524536320362582370193249955722011434648693355108256666595401105704128673203773484608054715588121837113167341170132470757973272336655051360486129846163936781172740944660795623342630351150963360512326797329309334851846279999493213088986489139721374703692990935548497619627428326534865710669956977082666533341257261176768433046068578030086880473087720018980901968466569929811120881041516711548566175673307688842594590889499885774223001848481349425798615047857867435864732882285880611968248651954241812121319203817196830241587270637094682221793819299046820088279451253305737804129252318619812518234882372953597164080403013187464221139628943864760035961000146771209000289162446681752401586492595813524966261126013847134131159161639133867729396996947413815410525686596895623726416424023468887593217120785621488659954903429351438329236932407247766218573336096358579839827258646570544876621038012238631592478635998424375738881913451049243245595981261399562390431921715371000079153122960334076217680369063910165505998771200000942516590377243945422412920806556835731289715170223755446436778036408518617162184654557897445503041519926008730339889703144009379368305395420958409237819472763246125295010561559441244677058353027824542811172546338538161976002512824313690594804660999320956431725586800276430569867818470712393067071463776943149223801160175388210537000058934189310406949805518689281456883171397622150545711870217595958522315208961229175143586518488865129092077701825923041500507537685285715016867413193428668478962435434657256925124340522639766204949841817073810590618771099737060120496316718634036512595427356327788712110478718609733393988681092957402092002653078385740790756198134944116225424953349690602041127169774600121136376015760604033373577715456730573781646131154970333199094783813648239642227640655258006495020591989616819731371315466376900024199371342003569514073698726923555767264711213513048687315169887252885191955229261915235356252548900546559683857152607458173573293145190024694187422536960799701845405490776331291721519273156414281579287563504479371142799544355670625312065366461785083864882102012117364038709220155160999481714864112139200402254930357197595332732465992058305126013301408925417308165692175191513601572880043514601423432641812969366829412578004906886653069525896230960216596511249199120318461102696060006685333366450921995139146253561207328604710497492118908363010924002348305455629623192927628348450675901232556951635060828457540768471848903932527465439469653063792110256818233433491663793224427692229152592555149934215403367670668855220880760143385307671634948541962142913137088591829504762746826320848566601169449897470748507774291733968318455282448269144038502643271912454185457607813823752285109052682218888984645391560279047835219140067200067660036060238022180404332681260403818464332988632712918722127516668125741682768120249811272822411347597409131260356487855319037170222621273257855239783433471117428088895049133051428211271178539667237505569317916565797682834295227037595869350086291776672061449947965921015368882697934312618711950685926090399519361248792166271227546312223373583154147256632672925459555981913442558750702123098131462863194741009864045767204060142804627976108196952445445793485225275302243791179876573447256194194448245621957137676764042783289380682591845578425552888995021881027522304395960978632678225807600506503154169821342376187863006541344047245801375458730383049117406653464235638225820570100375130015318515417475828215024515159306183377036506383565672379852510758618075656775844403550954974364780696629198236823090585103573888586471598892619578622991793069741796238642597199169002256720238807654382927556792810460842149326821928431083404416075872767398862965290266078095751373747497471596858394935332411572432932272145648975586076068993543461663677081586747359288326312213969770098533103932538111079812024790433471707227764281738191001342853611630632257267759648707908392983104043023102354211829780825741460837168666807031807310020370316256739890908337402228621426889680379157355368421077079548282179955367507245051304540729273312594045999609975953379484983169445133049608192079296032018185754979006794236521540549339240629773099390415505104993346063901748250922627090174130593853131169968256475933595697021679861553932789020236090286849064521507246957671460066850417486026306145235417594557712409526493982003601754366164123621503609056107422270938011002097597389236106772903905663386475904394812207716419596064739701855075488139517891392301038503416902044117999113100489323943485774252023475454743937983359951704392826195297940406581464468315896249278535438338850856577838409187441981418922309177957417989029065248675052950152326118055435599659770539378422964231128493583624741016914552842770630543683985959077667227451762585960317433911106383768625754828497172029030461062023309283710965417269756614593490921057754774365112814465864407637697682576998192527433930708243667539582583374165134064763269270324563306039639372457712819605288508881517076183936571044334506392637182435703317514375780203550299718750363673344906011362610143397738793897824954724667638772178319492259672399021210686795863284517433368353053369703739684872310082039074517342881430170796544480581625531166602205789049520909792454031223158172414288819414616987768115511977606214980076617885791772953693639170720586018623935903284415683668802810612313326603308393551863074621297527971364029955137594093566909391513828178681578421409596055683062341619560925032610236815539387644465553973178423216263687933168426974598670996643381541647343744366416977158382337445979705573031792559871558428242055658689221077768017997830727554425681324959022441789437942953925230686372296265904041917927229621735450949174334139246856583593520076516030377423080063014186159259549313972429281264016024083423842224619800267313629936972141074326697568308665585083935880170336754175555723987460941598050388989819249147977529220103730088618853065862655291776088822895384885849572999357912068448667674371370789840761919974058110321500702566043623632868026721054845960969994449638654744712468094131325836465729959632596501544593186230755208676711020970899050049178611999068969832245083553040636436246364529620178924421541718752689818289224800073167949235360747196062326472881059172290632805885059218512494603552570962676441561051123159465152661754381586665191885546059037756962798444854386681704251328774084162220610620151240077198542160120672258710512820041450025136961959792462634670638946146836618735652710057955970699811479335952729192130463429513884349671095468764525699968032326285252117448830162921807004973465076678157793037251070255717281930705709621601847587361843241945841061177434106582792427073174949788974169941537970668920265586594247165400252931347769938447684857867967492852206587375554257197609346810973671088064818762813743107503465913080866242706872130160457662419866392956618818241390137216121104247159666742707266366997578107195037181702292458073029729196151030845908764122604264138133163117213977001388170212188718806454737577855167903987525641935364632225240145703702708929166935528180085712539513278667577489551172515799359765538566871570823641069704147829013418898105257865654921139870586724918653380458772152791287351310537419650388423044973570160210950570010608530344743307921087149034678413068059465719730068877171086265924585269890573647656959097887863829737500992231557028567962315435507812452447630869065403372420157512497798532926105463705901721548500543274365402406925142296644689675828864200197892179280884542890509034463545423475643887300244935835531168705339500691504019105099941855524210640344269923259622148458891965253617448999021477741091389917757299299443548473560601005671148713507780764088572998605532631135342942296925434348592561190848091957815647145904102432744607972378259264896803478535547053735867633780012944615738370363584217480288949702391572692821645437210371180042292863566711487693495505986781133201651047181639051156089424667308597941979341477516296942178964046790717883759421018378815364791050553937153960364107189938970656081827483069365771021780363679875566472251390576552226582065919302653982338385644881080528847152164764270126922972139917559370003038254888716638661154513539474125801357291989640859330841304952045439210802904173693332844705747002428385368088044806749279155507206841628406836761793389990244288174895156782365527095303071334876082056906609453448414588881028051110219716954642851490740231891280911743363072468567690686071074173050397914635536841578146301177200822470262941622782839367295415146467271752787544291321836930831205336468581733279986107010194652411966924866436413479357296813834990023501664524670919339941649649023303501971385612673748291875887053402702966900332506179728770132752190072638653128646317035474938767997508366981244668640405693645835966118843572433553239359079106848998465990945923337696775820564831714736458576219810923792392369376306437042707886230247391992976440528723512899364362107936250506143946741057456849186135769121831490210945360080508081665350831325564628833414763817557786156355420795594583281143062337375182769867293251542404619284558057970290036914613158798184255047588702186550454737544896670738521786229432939963879137422150035875861784530318394315629331790133986559154523312834983883618983157980899339319313607867840170310065683827910494518936450538377475557499727211745669897216692022064450429719260992932888596862221790540654172475666447964015113750982430228854853819618710244006300902805082528717680203091196005921050798556745218678902350346397082233904100894847334843270870769392050708677294359921155227458852245000927545941580110905591254086470303398429675400823320211283010287200822292958217207787205913051312977445920786724351101873949450141639324260520213661566081399945217301399283533371779668785487599514434184190951035669358681275096967600760514225880756577095298669409914587174789595817945454008656077567113487210457102350030026125935603914334483107092357851904737669536791684406597342230237687250517375282056751600213739722112852771399095976288671548592482274483432745902799717814535344298378995882663674744697137911931040180156964010793647879018464183823002640668648525332285306207811989703914022317901530414504351995042206274564904909629897343079216085538555165443566431718083735012712939571035827219443501670098078053634701546731249120906791368345878017905984936983050733609761413261742326681917796514309674830242135282164400242620077830756018654697615962547675554052358257817214549713668425354639203321738882875774815581289706521489094476199223076331096944379037937751614227804575333653882541195021559768500518447588179286155093836393391806940329559433266071698339100692983753938047073866187874417552507790107309159630742170672392545780377130111000665748870246604486218672234201368357114923225250037195543948242831591559336663744004048208716273015463313708415082655551347054787841204241730890214008365942804119450955640390315702228760262032511746614269702066442767340165219718611639774181683004577683553314406108469697960019492434893539319117295567023297998272966808308797095840950205742375187748043341326391509224483200353576361997586186667597957514203103882612001966478704641573025604511937946737457393188711751564876806435963852822615784611157667768660983613162644952195009613303285814775193243081165029658569341118950920129253240298199112170436520898842545882410694485537672678053703415407129447936721688502320751543922547800828148482334225046783273887437389717823170200902504046747630356885617202522458985637785374242592495465076724767351748279464193209407706000246903647847982184261714781700014922593877834862900134406633391685130171533827951051541142605596886432782669913857079353685817067986778602092458293847414870576191680377230382022120831238549321508149911592981386785523183898012073654431713094936736930220460054606758461138221295125163095380946414903897509055817530514370741167770731968945756636956014063644547034979363664858558403703453522962939597855324816562311770675646250224473727714522639776872037594733018388760244894295574881855872997856631895128699725444022452964321331587421087378554955755606741107552368426482086193320760737471833700561930468577739254345513979757861098165507621333309185359485994018744351876863980598294668082528526114677489390638173512372884128852013424292665758485105465012957993601621791219510814828697679185686970406306568122952098980288759071853734102794001749832563586356688094564352535150445203234116906341073620678340551642541566594351741762813887472556986253917214909880150480326828424864324567404702315718769768762960488170182266729679295420304971705728754884382853965538857965911227752650930736934738522791603336524994800906428450194708457375325712234773521300765852597155304396938844291419158472425582457078349639870102255137476143846904816520649159356364570489320571809050382026535057957708753357356378138704606544564719116164296335242303945881180637248845813655183021603490635280891620764011082472811595436786971212542563816555944805289430733976482318199680812827816884977834637809567427015013457857537944917467112284762592078393294610834627706976940208993666090987348247322258229037025436407906813206974505639885840136821617271498039365692611638064793316510574910774140253517863650709509244738905557060839374207995722708317812904386623893661008100585765803117432991380367739507053820059688492982876473060262736586099742449895499197461645476703190953030325095581153182696849430591695765317336784206392340479571651541588317131132832243365307125609253948169622521225994940531422320908752119020472642978517454735706477900198142358253798246738443291399076342631130013016944549883422085533653995309895618585771403208053648169432771494770393046119283668608555729810523572119395543496754358882307166692338218476148323619979339430166746655600444345533646946665667407641393579920991919607329068730312130634917838983757157074086157556771032627662701767581874662071843902368064807271530563172241685765156538730558647456782273797864607828628490071134829130559265063327433278457177540740394345469677547999573667571477702131508535137762638602226203938058224754562294358042844109292075104454067494399057723330268515137108858273908821837041401939306387093641993389143814234361785694394117947402382882333831139130999644398705096083136358897481083519004020822104008554566996670922754969373945342823489034225356255805886004054069978081145765987924539248564261874348112112524011651421517490425856515709004807045490001394444957500434049845574831424572013748852409978907152220801784707965886451349680424674511396800948445546960873227212667301403624605336859864423122542603588677126635252888465176089162671415447184689388282644609245051426395684214649610558466972724864114290408135808350466414568572462861525519826261902528829996405282511301329116178894504180020688533423335246550387815031891512202795758802130646012755674262966512487600958110691749266988326282237747481440769698399550029763871540358878508117001644836908481328076316808129193812141931698913110186580927333874591692933474489738294003574311862160065967372170407716297231778091404938050870774126601917721801204977090274986777638203109912021215617490006470855943774980612582014412390862592292899849690510306397774064990774050457342129188532600687138569040362021028534135909547089011326819870985465309590630499060427819077426353291196531364867522974230560465408411592368640123772387249423492389001952698265190972795499190195402562095242713540858441421394343152842473200754692618958978799116542245948799956491388922798878452522197446014742834597283682085168511511841160061337663157766917051125137132277233779984730722433099157973670150646174789122176839105463221506372530549640365720736915224341463539020503137424365440523433021813348809992833141663654455513203646581859922675354168595909474112892674066380604072955034817408904352025136861840972492803016246089636734100960741091131961252836718667410586161381528083696984027354083146265917021773793106691402076081419122668441774716529258761451488072400917210336292523597342693828596711392626249364820462597104876027468717863210198474352814556655775006247189249379404872265646125596850664548403697299891355346691991076870546913815836741555063599519790044046873906536780495284111815828362551465737792624619659277678179354654951624707173673791285414954332397771613388910191133785519782614902629494391136370949684158737669281978373390386008604863968554532549268728642878312345992259137128880750956215219839368669389960533458712969010413257787674938670757637615112714092036648422778671943656528121277887651584361886592363572786642614417396548656456300002494401348409338021552662995936940020182183185782592318345181517186080371392364007267723947277647527638165933421515756303222867845216515289376005361256829567837470086938460386437545248586508115330218685315756149700956280662927135269899264534517097722835687582772236254882616818016814903859694667508091694657171197859215542364349008504347648953411491931023307000929599813346670631383839210634518864529392367125751240080680875558813319986769577011320813593025342036654863787278731255947498087027865259054237790571882141067734663753824202812211702368709301353484205305356813042676389877497019267137975238700941070021177720590014158650820110175403849668615121051634933789225894870184354972437820091222081293376212173036936655881448817157611626601096611149165875322979331294012260685037766236304220603872763613387278944822709301589460379405659195207670353627301915922289265839378947389050890479161206587968195358747770016341526128904786951234499014492743497327972477249551430210585526067044545605712147400791269248497411368881731976159808722304161430541511709997097066483474294835992612566486213207237902388577988556679135946166531516690325227015772072851029425943974710877613065339284020372897502018857736351092539778747393833046600891821186637766857192785522759392330700628557116614838912895650269659467690729607733246502644146409054280236687781471271519813058077776647609901704444095125524454376319283251054885046682824763471043266286386803385222644844517670684424098061702991718457640113554980592478624853368779192056890505859054023586865020760079718259748115450549838706503142092437864199923515447845944629371364191573099661030206115263187773029345349667754557703032768560494575920914818982010450404166586068972220777338924060282454596573807234034695691819329805888536147799977526660444174732045634617153619906590548327584907654287714879379552998091375420448801829364946176610890370174655788628466510043854527524927523056730416237012156236492325238792141812960338135976455600452217077520596534110009993065105910036968798030387581038734889915553414713348685830568680048119218399703933203401006614517526476074102599365603354776117816637377817258757952118741008080443147088522323380683230168006937455566391904557062656561183787310230508235868947365103505318754173851938286845215629491543743769520938905432686396541266487120775118873138560749335296245337654264242271079205691431621525285673197369931036008944667470308487748246305397514437816308559669565545429313005706413746609209214104924100236855538956473958001382117932573718639148447871610313401125174169080028394972577434460344022422737659551760235814278135303445180076700557544289427725164411806003819108269380428314169958154017233688317000918471085628586510168088250483995431244432843435222771840878694656617609492767644429781250485287738981518919061825348320472990394425675543079039087974108292114450778836339572878392585038728022769818179647753313358581918373453396708418155748663125025324363032059983428965210232442010055525059226441501574939973196422587814468409471167560550424643285981956032241910791608698830384895338838908598959731637939813473290459643010340807778024158551483814758923037334761754348170893471925776025567534631073463956065503062961768334592001952273588833762721526373532558302526097960178244595503913702779150961498229764729732388842129279065196078888762493900689341679178812224834586986405941112377530197744584736564818793331113507550384517598291218177780956136106051855346948678524536669434789153062331058946226943284025184907811952686334335382169894005621448519254320539099853367427394488395618738652957634458117047005120105938973846115979397619756111500585872247324243308277568528923440460513041383126270770695526004957270455141467913144215780250638757596844970680945609526084284986442154311630343867145572213756761707379207356440884399408431783319331846778370424488752487765569966747471918283431143955468157146398236819454447321420410555643370604481639073446725830172568864577003536278177063839683924766118843762819989683538179716146847204036833495511192993143458815648820521399322771292139869346367941904187279247726082484507515094232612868484058835467660191234443597222160070063196067968080208895796010601419425074226759800503354074898459016487631635490609632802646708733076883915005102659152034735111161457079988673469460870054052040278122454277188724446343677951747059259219953260189762736077468239729716968279785276424139095560940025602325708303072255820629575828264993835743278408243585174128298513200709853361623649541847408403270028956769255926329283657080220368382973486465074879539208204824381582820630362570072573928721508267084695152932169763143569595896612190151764950882802452274981857670333910350246718720467523810908763866801691205499814127504858859693524984191498751305973383903427854655481337252998678131451239905109693516136959492211928964185235703521774794579154865133845495674254939862075513078698385802833033335150204405443880101238633111328506026478920602702392315929133994329492687575881244553941169235133803240457064096119163839683406595991192514517914329489104428802463785135995227786577844232613941280998521188194140951136127220393341035055988035348171943603913163872691415436102263902578224725505737915276880360379925966186936948113759785167961126976922394817320690937137385886747484692159939219129220573152465604082041108474654059514237824614668538940934747607451941794226498562798910786394296226680653751537332947553836174156501872221032394601497780559057454616185620780392055522990353415173976568906707077086600958340785935590915267157452773585001398358226650100786858551335293694397276121355265328827868553797727445750213716135669188138743461221179214722883412524207279082168267567293342524258254551749620376651173870568318902653154669670407475183145397248336821171795431350762148566292864330439725334984171568109406670671844820894434629522039543987690824939867234144214846819329149096441763072599415970173192290473422291981251674055909617158226766896597223838523847070347656330016811445210827367950975391776262016818530670540947232051852289994302024498321689272371644975960286360366020687074211538192494247481000069467939529787058124565911421545163673506946241026174781396770880606388919856944976094050975062825160101339489953619207733269025898394587945867287796107964456213692262816977258205921111302869502940413625192747053928548168918953129387925052779660080627934856899768073762445025498237891686272538059041954263913922688159589245430586625020318890086989113085674902430347958448417119038058803507482138270552867334046304404959818689775456413381530919280869241204190273367557293889856822749305883247409677300933898732358766993645886101956174893622298252109411128399959515673178256961758239434363947550750448686039550105171013047364143824739826021822994281832631562524564579406579072662170178912233737810226790410936185977754191087312194808541772177979704565808209653107574857131175389013197064004501367356550472328303307716426890893536457212552660011935353295146208581675319196987225731194950715628902745608674339774671549876738947628723229780363616375115601055328384281575338611868857616060418360567055413093356872960583388307905849433134537035441112348366942580266819138409765054950788591303958269719653201460145309377829463449651389920177171395738977035664490731161186162742803054148978108275636113738991311264845091396545110963044191957049730914538929527816896092964114891874990744995246190785339822879126473782644134912742760142019467120344040223590337926135709574087156644533805613008998266094661223941463856893994300147849453213303921204156582721381296892936369783434219382471449227201930307513540592032421469214899855315076415711604177264367698802162587354226708016524078524101279760619550464629265131287492880584721147828736188927312878187899088937658971718102840255518659563689187690585566360543574402918943363805933721140639544143517308268577859764318657270014048788834406046159155912549439857199583818574437239316061319051588904009143173718898241649625991968808259401289038623048178909957445244129508129912279001296105212680488696097617025185623314343460322048143162147818710792942582480168467806321431528446516367016552626919663981704936841084102608321417685058855755295979291634983072715964886727627632473263102398404633502816743825982622520384026461755657550359512746313750297137468238369359308915472156730566131371215897638532405839325311837139623232027561170819544288699996923273382564350412511858534171625345893378418970697923968983130533588826012825405791509274968200859185144232685906148062877905491806353907508026038308515784036853747324458707305146276994345545858071921740861725207032081419722356736373085538032245794629659088166125199798582254695304916826921057064268082663370406404184379043290063208149475020027137482354049852812503882220694165583046188552501128074975470091518121042175945767845727680492976079750901036160395339750261353622482658790709847170476390586298048456497717029340026764198178105161331495150040746902838589943102151869861715345909701835126047588683495140854194491397721788311315698082331836043080228174879825202743331196879450858282179325837953235104010388381173002213327831227375634353558023285823075860998150630958311652044405526124204809011752555805187034816042113375902592583451045662902544093710100787341153789695272922765021731398817621251676469956892898236649459427720822255890343047440652625761022344992996939854686631051017551445361081310986992647275128586350084526629879482613318281205721141662251765725150530353280395109661321761177394762226875121305651775692723089255823522180161818945559921115546851781148257243448243707022975870331358020729952133371085655458969512464774586906322773906343608772138122887129654820431254978736719206158889458684673301288332178144862606162160157251543479431125400171587508606751449654874984642119256798850229978239442784134218177317726212323583813981924766142679413115220665979177754417483107293984942179256503653486965596736085371830636668097140699275851101703955483528200144973168447000795136427344086857925349045961683871572561103285674480292600914562914253728843351259346544948393184133323020994848114042460180249840743257093988890320327201547414039285512043003395370000332905256059270559732957811716507848086710216729687862595865291465446381294465640662641407176479374148268322448585665766574867127723966948025095268150835477652444317635971912212647212259030940276180902562829573723181187943272941159600894278596583113829304730014016860819882361462613302576690314257086163823868760259469895417676270377316931630909597635095290311763086736530341424439346580780302013347814896265467354154572191849043896928722584423602390406988127114333151445899069563504533179259146579884005752035973833410802364842280867349440980470819063935564874711506019152769350295650667037614154075927825967982898083660946143069980573887778962907387831082359669672464221593762345791084941152003910130028525247557979184723315336639176283700165609341384916456770410517826858972983613285873354423093951730523255825143807264489984033032339773151459618769621849318097999150193537023217712168824105551309593366481546704827668844036796281541604912279278814756140292709164635748774881719740940356350433365848665378262625424085827273550070785855571811191902067775137100620268279285395103865353009366506918433203367556249096004537437027309147469352000279733631977390059626474412832733089004754677410896358696304459777808088499121305724124980829892742136186851824502676557997032924474479033000607841709502115822964389098118595293333699391719739525457108393684083151772499272463224765266724506220355337908134572983780846800288479228256501734584486068479663952172452547772201273979493997945765761130773743252824642563965448186804125293271163210470822555668474178494933369512098294185355489688182879729873833859711317183355131284407812953303041959608492431996993025200777639712886784882185422251140763450486630414954015044732229440277147003075805348910070911780410221188184536005428976153691256224817875551800031014590163659490651421054596965762537501786630107360182824030094332535893125076559936882509881835830799456362237239110682902401722226999663967406688728963517805291245285244524309835561219594392570266052207571650259953669110014827728688971499559173308823584116165971413576931007741148559155944600727204811471749034100866312349941318922044879951789892224783194816083910050828724016699746486905909567254510854727435235409106767198288899155292385600880578381186480283975348439407661456819244134841478612235635617298275098474593825383059083005195214838183746476447382154885397102765158025617679508207603340762009162047611691996718107162180016094393969043340358409685578127911194172439637891860462521807854844776545413065628577823593001438838736849980141890104543768004649469247317169221188777029432916559809519106890827766941372693435098611697465728276441808371700196094402241570113487933744839013292308451012636344675799167188758628207374225121303102672501847480530022004584928520664802228226350214185985091142338506548221504463386949491602587631126966413655974638832391773470589331549576777486317937889841845569207598270696356303125659562787445393739385627093579570547809061532392628271890911436521188413210734301527786761070003240714342518528069602748596687674986955268973264042528686496542081194123686721763472521041973239147076017205466673078504089464435738089879647311479926458735405438159888065842837706754770665408125918594727872702289818291311871817974758540891635560135539559474489941219436132417342755929836299201572757412076146619910278919315243292709944794537574877071204685618876125361393556010034119169949829069622567652992910352235461966799396457030773303323937385544193576829344625755642679517486837698693478517515161822893219419239981505702771795085429398960539561348912629502084906010872294847990305262998563704164823367486057908637172792423520783824354345149103536469297005724932277769396566490806708703638590843671021543480569179158353152904910436529938930360187278246969072524410140646354185597847174541709291916790494226626420329343376474656763468107649595031361457559686266013406586894522643611037192695838550754267074651302287566451634357013910360699476391653595437299294801963463073956708672067744677537192025501950463256951063819825581160965997920618480446092781131515032610873272331812190255235883933194394129207309728880836705689622178236379018615283137520072529612645223678467710174028616229310708157747964848796726653471973812491185882312851060365463584238290649410686609413075245466723145313858715407267383023848945357823131056507683811821866496774115620319740184945808469152296561410923907265393446905624182823123380049340905362815740868783524278669044898573403817073662443526311678561834514726566640985397900172406009988328400717047672195830995866522920364002899379067174048309719415829236366464903261412153368303616485788279262405482787712772027364858196304866153765051790650085628114881821140359738860148786013259499615573674351258766600833392783330525686178712247655208398185858068049951861632791452829844034421317035454959199043836926497219368818990981212360043893021703305896282448050624066926912488602022672051777084564647146101772335436804666830683709499989448718244067381251300904809772310574869011331195945816726548420716362306312188071632997146150612195297450242046659595504656286803976730998286356374769213113344871911578673575317274291683417506997280279459893654620328277152045310967233335246345551472892385590630296996683752845136332418575539035948015080372746077616600420531174055347539006566576053420132631439494031480426308613216743756815745582119152765546736190799843964416810599325485121665873223575301871248664023273614807308485628976433484950072002315926274774991040080249286372635339454181113135986644505041317018233860993033685182877415922073571068674046833962398324747433165138591975349829807433117384256385129737798419636651167012538394579619532739568374935053915969355588911422762182144121603446729299221445727737887976533418605246491364272696521469036903449864174997530590148858790249001672736571453443004863527125672542809888701848997302931946857307840090216703180019977677877747185280039988180772449950114743278475819764647473266122314818286722599350800344208434712181664639953755934137507816706703802046328954714040004389884919535866954343722418871951692609757617181023577805645071165633301195004699564630202230147652031325465252130769777277602472316737211464606779466125581933980012034077565946360721195620638619392934176597054644872838533844291128852924565319935861517027547963601128792286434920017052969788632284303264836929557013449867615050000262330648628267290829186718203486746461377612079031301247920542410223802725932749454835632421488538986008449733993244218709449153174850359572378374637783500337444877810187515936365591374800968714764632561845101080883755064062297957197731387881675498058404774705034631051591783736514685377847326239707562983902664120079145242744275113994564775605276999515032995738778285677738154820971322152542255838255937826331874191487697711980748250340160295675169390066945822366613931828271566443804311200806966774104036781566466520206071513198487184811671579825341296384466791022068969602353635975255570666750196261778806250161020650669959354747054450017723131942400311429106416276473525431754453881350066627826833144236784841275992999271260831200830791881867424681246106146287509209761788352091638543025522279127439636918840743580714872781540656076150176179153335259789478906480896518307568533748391791076713813257879964011947856423666627548883543348276044139882013590553247005265320678064233603033324331177126247419953632357078091881578622492764972937514668796348848598083366790335869265738195343931012414871623187076597290489224187670878416448440095325577151396103026238130614102573114598115475855301002279567497421131177057898351960557191268088011745349491683471245134869643345271788686327969049257256178300781640606267732039945667828019205413368700875221280447445348269350718862677274940571678746034550432516432966075527358234389214740928653727119345351715518956604979183878640301769370357597094930396478688926002257922963594472638167845476548213349762226427025334011691610174720365988564887985708676932215248077038962501601732338977947444014858478154520631885632211339438281654346004235497999027781605578454521919347760587578399449736745906149256908058564237028823100077504719856806266443669500679259173715309589363973213575236054094146510991483103717039448909188418040946461461989082271999599832001226064132185768868300635043725953265474530102178157575653600782032653775381909629462908696916626560723790285168141390566767546887409499229857925974508790736055072048330811465607738749562696920014332465445466066288487929072247234258739410743212214137882017295122332076424392978419275124110908125429632571579074906468227346744604158950466715333572338011970763524531259260164979310800133366410430368692619794356572820112646183820642157784283781789164390067020060890107249860827934911609323315077714072634974338419604263757648948695046231590549905038417155808538429876734968197015096226161399865048883220151160209714602072829008483933525774757020734488383862866682952609532374246213160335847046721359881366715763331763672606254227578129594159148719376720681302595870163768084703317516948964490808351348217193220670278468214238055885796796984572575451146072496808654411564983831579682107823643478270296540555697609880106338288919339919696248142979864702198897550906043757510372471541137874728486828065329562218575576600109661794707216234231105711845330885599537642592222509621255299498839842248768760869993251936625208187521465933688016159897769794710253537091270552547340689193968911850452196708580149481904389801810632436589156596867138515250207932668693311761136183920304865044269685154330199488470309174018809441041723351163739209512092067255419115726782219915926412487950614873559332839344676542331493139837006125487511256640079535876154155338428925547315409256518092203462749459567168807667409452850537013043761508766214634015944563284804736445768768890141422830031926597389972761804910041365137508203980149147925283299602248755442643526873705243307217836799454885568619150189158036041892996738123453341339985088585289757411506638389393114522645646154116674465423040506149454655767088198932723467361035789697810063442040038620158519358570364517803120789984529382564415217792729611751237272375886533985298827044721671185425564393024047902631375276002941872822360851691330268487592168437843054085198991234888876810136787817501495999051505588465855347022169232867109740714318327100086811783282180708478055489994481177647228025718637436207078995173190798996864460987997969030428934255115388331488072062779886817263865493748490250022864932229474675918772523429704537541899969795380250771787697679127440559122501383994614106345065480660618492894612025048069491499623078152280617692319159345481312768821336081792528559603608797834848823820638215383272020237398155360530945380648342046951268332958990209883827968770363400217581329832339052282561900107089686600636807808981896172172300698362262298532576600056148960336845093391417284783475494659963868266720193093745510743388281509284845079676415691206308758500063396853218199366359261699178605424952698211650121448528684281961499008924476198453427222135631475713845193980136895661269863925190330425028384565020539516345395904240898847703721909687522918467800821519443840801597462612619844830006904169153917785908536461634077902301102902639077572477626514818542803735214166807847789063275692039129638242183390058085245816810817818878560838087994575784811787318561641859196476841102930331944661535643656313564703177489242142364733326860161174114086864930974159785057528642078118514136608287509224586413053246978913414604511332520633097376741123688094052369481781561214252009690896521419095167637061360904469765190991104758090924646999146742683524450386315843671348671960092381501028349723540833208681301420862085592174168235216410424053477332445566043356282509485909006671619666693487738452425028705153899147208412287827930457165570355413399025758793017914348967020568828602910684552951657152781853822539463691340511600882621298003435761254239299109308452458419459218657344262268447753461803684547066184992775405121309853842636806436981513595550009241317590821598787911272527675924973947646063809727128439483367082321368107770438278716633655563815303814467718012806996923373345352691335667587450700745705801021687168832457747411490010295664911934983744181455539959348595528194755529656842167119423258161565661666426647764417724424432857557772002915803919749434041328929130059829073398117586508447984850352479016643487569056351720456439484096860744007531522218561214576727855399493643470658378243949029459056231965739167601248382903065863162127717158415463514252693532596411979965158080452664230745952446658326735753003978365310902721152996357617615818928115854839877978335381800233973815598572819364125348786815289221973296212157137085063923133446295404110823859656092035702976710911699073785764592748919309028364053155553339319853874772128403905929114693471038725903904063278259059197643959253570734245176736305844712921193530164932089079527952863511633579077883386878104187629650266024227824111126205155035858400400675510596327173564062135802556129658175887149998365066994808874599482655110613356671539223406547229005736886660575223795601348676023967191418245337813286170612876791482245381053974108723336497265349241971903021809175436063994628411733481835655756016384572128163817024011608508878968778869320073545054432018842262803610103557156304204279057213854894141300332467041180554145584435204101074287214926122112445755467809824608254494849138822003855492974701751428295956099958182798945036618286220114619800059156014801430055902105283464972274503977104023183869230383303473653288534171779584639695505508979922482485833276872054673530492285839695402972845410015169048713974362761376458194511590701940108627082511738302727673404800793853233439856985695388371436532962109809462609270255060779600644686971838770438635053838530673989170437085776077817001049195612741061077043610578179475426194011987144389964767420698086358540655886516772284826561690941195030481587891374209268523132948855070667359024507109002397851320133269397809598510117288279626775968759220535543393011605969041193265930614469660519692550103243160635251767094488715122210958795327838104516565293517283386365870285893213111299164403327870627061411678728961274301130597829669960497848499097950163462752980314033126400274760686257390542472780804016667472318565746250965111514973352161159165110207017103441352822774610799187179888428096507983430027847196468518149284744233130412877703310258286336237453075279100466594564306778749805461881016063911169379895684986989053414177236212116419342972492603402448447548879842620019620864177063813102199372363123252985393967924752723395953450337000371306999353014820990579532209940795001969814860239308943033668439179910644726867037626264482233062279953810203233705071236562262616451900434772024719935529305957182181131427609213075763204643432893330290737872806844288461605948159154727747347364392255150569249266090543133810462076204565862831174852308448646454400618558621334814758832665909937609556626388008921347208472129587335831001990159545710201987770520926249956117692069448022598790375250013373772542140237486451812120038674529053464355462826924840166566433494633216202817201270643144845542204754119643501022343102435433916434994640975565843739441472518347730237737931400850543729182654094781521386887557588638628841890361573644434640600060209159188618149350778798675773935896651957575817129643278339174653181660252341179797176979037598429764426806273000675778718704764263725041087845045544223716040038066848047059750387174065858024297045247411991172250934878841900231019821231776377499414813960316075207531717920661822308079525236708342829109174446789718761420075431053726086275152357171513527611830745621970985989794525952138289465930457716956345433051229558996079718737328670039892028824868889073138429613336854880760001937631808491279957885065309964997712385121451573317579737328353573649216916226351838433426527354065209411629857559059928539521350670559770148158547611803565667561650501461706915519206578156524683727176460862890275169595500137937969766906869834659665628499895953549592001560220002356264991881401092575998189423212669624362850622973179127976449769132039818746556432314014419799590701526726259088644620271612078546601492592592187297476028336991584176078591863719952240580709658455810674039789807244288029220981164185269123699755748109360739927041019404056423832625244826590929972443068268995277793089219573700948252473123026694553595228121381196170636443070761042757863449991564668169908593643594759551603179340096127996744672812217032937528418147396001373070302549954923294304125543122232063390245558791433684296315115584939256319499407076444823978381045301340870344778607863462770238544371273417541339177033907310948119649966166716800789304281903038756196571531389755592017489484627593144231896315789468988377695589601120834655641946700488863394929400351557811397022853611645007933529006555729821780013479191306731964524876324599868659778439491227226763107547911899612362843912391694695106987985831735312278812402479165038346897998719702351926357226322355101867766440877784850624930562201072499962583559297218077519795428965023723474154468112900098708235671822090150058490055172732722427864914149160272906252139333035668101748500958919560924562898497979022863858516760232144354119351262658911716355492013573658928356761698556257404508424631735188215621072298431979032685869035252211438801511287917036379695562192342972852885643872477976973311932003030782815066771915461577284212712838757230082028663161409391584458593930639505250670806501534856770130746976959912263142801727342361391544038239943248436815529924079880946403920894380757255949788530966752451421449910989962576438403538852153017050978856483219524481952199163857694145206591246073308592130096137420459505029782406491077606308056933519444445604349760924071141369390303068344766766071289259852753688590159552293991765119559042475770495288935781470721103968270388533053524955313738262099446694588746205729060091294561889529806804868587370334018309898449032765774491085507551354826765913490524485380562215886760240904775119637199608628481266537252209007808322199056300670099128023222196082032466323249853477473713589091573258362026925508247506794148206219815067395577304078726153193711278613556264760375258043060636865339905500996100583640705888271529637729247336865453378198476590150637130816524497557993963041248906558619548247159087491740712082993450945404719207633801847614280132359753745940540434366340105917066521039353611036344320238446819039852718615170561199607919674483671041874719162938505878047659278385629917388753371469430123310933530107297893795533264489383771172345115934157356965812684054734488752490816648292778383880416786771797714096107625149062504847519837892937229495103605041449718558803684354008471917162459462120730337946102324366746850527082793214845405439906457053717261310095914423652074227731828899229175369210850441932395069642142227249822219834818722838085614559343405450971981998317095228236633093639441034723787457954206048383063070269024436786043653808043046269106857534645987604997380385812810734665892386066748479909445031080295472249527093006833204371479157646506744260656273575446008072631594842221227660679219171478577464384430561044976672376242982764669319203175272496585968217231070805384392148852152673937822892510432744987125564203595820609720908335310948551302987015188893362630881844022926738371451614226082265229199150840506371312565663590064857474565340605202919762545048284101081465089455480978565366563833060461206240171125860544633632207451422707047619399652549840580578058218573090629031725734240772323997855615337522979919518880693768082312383829237380372767742317991494718544374518953419407539171088252347973289450576273572283813669533545912492732887965887125997936287338639556761406396831268862218851173939078959067706613381722306097284164847787450342060697987841171680944055473818985183295458815174524164108289604981756849952886944719579685124418691872712819193756678698603094668954624552005650233269216688884744130005269823658394968726986034995528615793276372225021604921323929715415672799075390224370938354515763690639061000819126035256519050571694624159348775333037746983430105122803725946674560013065659163479622735785077741456071941163286482740238655697918424293289429436134623404671520593434769992693795264081151606309470452879331198632954471554346791760028503447608844123564244497671089221060497935252860073638124303739411274023481561931857432338873815537023517220584381551763404176228321511836464700494923194455231690067766191082264955056940875974346348618581877390163420110430189557957235800484140348659226968923557434440597716104163739632416319922144609192294135897563567064745163348702686320294557570962881324117166005035217818256382776698733649179526461303892825930381485309948898439245699919561222862323112640183211362352150952762324228378928552372796694139846895013055240929923322481440853754437496496268593591779809465113521623493872877265073207557800575024077110729437508192029282934966535130047098132238720930403210055939599968713644385877010786013891773048720825018629813127539716892711364435001797651681373320173316043107103288725221563377286263449849436997650912474683099684599554256549967545653616854674820249338135981594000543720430614846390913333567350301930866082420238706048818173846442403026896973736641581374689428866444981754949112174552271039483656541238530216505839764146241394402991870765154271870428785226623896220581161005154070591420679702773221129804465384310160825116023256534555270116002159111427114578967548843615223574091062051586387511137973644283778436211013372379177032041532768781811166651607545239869787267614229133024736598962446444213394957018866977665009345850353673656023514578293871032532830746375572802034949824750036832838389872934941434808148599666144789141027508611734122516767048365181571140247908185333088825079065132959879260340629768865603305456048819693595118074188587590354812523962205533282337790522231534863358215254339347532305953615637706527877497716218989494031487209095136811577848842240172504083952988449468001384137215977575141841700567337173754838466542227133078398806877681895349720524203352317049740633341122472827217856486090268852308551637739435491588029652549604539059183015700172498170564813405363195388273396423711084441233502476143360683860339238838079187020089624033359275017015420406973985477902297070797905842997234008075262739796813363201466085256448222464452063565630640175311799146359449622309357431793216477720329162044414974785778692399441743839160580016650992056198277349289641166990739247409102879059269818272998713414011900778730377910576952366926031299386287179493074327306712594864627996520582455817074787888798740018377674420900338475747606661995631936065706162685025418783610893741216736965307192799452090727045887678186734164088059889599659738815829045533621317684920911356453856274356880106379597801609156437117279165450031480255736423659574056147120873898161433889950660692704705350935638200129859052769971851090617515300717322467405706427190786960681223352700350916468743127540305717995174233845235163790811636630604446463233808606201269185752909091106522485867339613771226829291827319888149622836499681292636260739084673981642859432507953507382435604177418598370805986540989818327254894258411124784063746701065087809892306732301775693846841071387639118371559133392709422960580450189268898673034192037956055459882821038294314125051690986136136161360366392803805438597649119878445231558401107801799087719390056788393273924526961858621165179376948752379418191913536946108409764943817706054486411120480461236046014564613333407169234473032956020413861799214022483828605118026272296494118154359486439269178650120570747442152122891904704317937873228362266925201562605360113796503882627213747484098708679257684587519551751205092570262901821886895131375808750281586437999367613496500528488751741899456160962743390684814303789540177104522828376551194594255868523370394913924773516215830062898790155925658123146224697448918155025982007137953942565019592258751131832301249150887069181499903297193822241096703800999628695770862695697607562342372039330866359955024375119603689429282874468469531560034806954744320052573192435631743378011825983437474366563919181277011315200276527962379984416449231917784115265041081250099705370981553256814023699782877121033728854182350727780532631695049583828982612319349528653962369727994461147906405476716431774564920435910819087601960641297180215339537136359216854200156772773703451410297026772950066901441774663699408008033310325173862185928579365254770567472911598123953702859479475992470965624190591122837693583749296405145557312578017192882798471319153878862427975199332747695250172536269101298185202224257247111831720470449050741701616319777600575849831568274390620833361975815325232161289023571805151833631960841289998514723540528809414969334270760409171408268743436874795044257028141567732256499019785119500859031207887450885623879932467264259977222562543759720470316688501461112843498650467715571495516190167657769101075277161411739388645693162761127085750043662219178905291499736025791350879650976094624528742109602959128339990885019217448713886971366510405652605362167127699597688203815615506741185920802835367208831201652168097520802105357131486778823138795504785411602396620346944486283236637512713147456322944327469514877771715036623150527911242309835663179021718403693095633681252471599154017681732923180837938868399132036106763326118955647203642727769312317103526619330957943457853872654983499032815377554985495068720042714694697069479183529904252869333031845139381766452855773989158907631424622195439467791177110465455607186700592550234779323300151435758192256940997390984841227016787898982702194693153802576650793055381853507899092809123341340902686667276789350335673923168942250874284107164872439732198768294227948260650516138080156311226680473152159366296111427859834861615873729673049541739186682135020204792001513791786088523398191241751154709670973156964278535583750590209423098753461361340854143039799172059383993042572958628597440855905984824559815058382794857940451344290417297973513178745459443903475080612548670798871564491061478470163374555183039024874474333597689937769246014059409033678949931969763541692376550675001683611522815330219332703475440737668354051410850078920120389070004094074670827581888443745025875889080680546374912998194592250339968406194993297965921952027480872984781393417792989581174089676563402802535026665431191177901230271550219685219605369832697545978456390686593967133030619608471773408426511220698763143180161555097460423484164810653784412378575986814596206584316332382215578876423329213249280390694533476465855086074605665242837405302508847687547393335813061015586174896049486650417421861661352131864694044568681499218237824665616306500546341138887041490603255493496421065627212990876344425016429119611356847217545644532242987930577292646799342426321577573703875159022008409072924644415468615635753784802916161618192702839444679308602384760141455612638226224100180460459722456173965146201006730703723931879411901238325164849289796123760900384191084940076595391040545083870345821256800386983006145082815400175697526798582841021986688240866735038791951275330750209326361900950598186444355452380023581843144717442307860666679924869420632046276561668264192814549124827984234706935933171733956633545745689440851834145877236051686629681109777694348258802582455917234381070265788232523784031934838736733301014391389976403610237356148905524662551945041545999040212726813116195863387532449894056687652093182637635072673507220117396486816891511374889747741425058786751086765804387758309516937817789350193140223555576003755726289333757088826384551944391011423447964489560248554725913000515365893626805246702234098340289493221136589374345834506859564870497607702705425986630476114792570165014479733466504064230126315611440549804679971880975297673938420345867154325666468168478801723257048584411541616904047703068583710950384562722146584480185650694628369623676725126816035201865019828408957528946565136201199014188692331514116884134590907039826080723761653518350192319569359705410717640170206586221949639268936794271625424071073981480730723318440154903216694192731569201871237986030503556594361632734931011124525626971689111251583044973903378027091159310392741627837558696152630698381198083953652234782889591028914014360261546916952827371099623331281315483209864683379973788279163049694665056628521106068999336047608331969820386483001734291673680908937237176954401947604338904524982298828481355357269618875099365638058735279734205739062825764101292404216199104685774997806633585940441772785311028274768287873977323900919379632106899252712318645939171177314199673474092626002302700269961648411082371603353729346822536731367447902931922738170415052665842982507404102819732869805206673998379389948885509426451595674389055444608959338465920484447880228603595345141695458939602330112937838800541268086562955004206500665947040130118929151393514095806684311811178778262330494082753352455097576658183574359936639358132365676087204382818623493007692781213770412524822869195940207505358128879827515706055128136969999018432998044585483175865687554546918856060669895112727585813897337797135014335518951198365844721730141851738794262418741025229108783443713514569758037009266282122686048836793873948098713950082529202853607452336200873360778205611006134842203619209785730749529423686995569189448866981026671278260720733177483629265847798637704021161007795782399345724596420397420253587536755052128254458851796294740095134193720115694012279500971636735601283305857078829401210091486985344056413425718599417016330689331489706166680230686621403209068654829617104541653941072503436025027519891784680560397422328587276411799426144165455999636979674750091613890500147628545549948311461571423461356904069955095754570081850291708435742227185627463439157255041792206060760681384536119928992286527603024362234820217874921315592923618343182344780659202945258911224107527688920433121730878980692550157952198501285375523876474163173728810734338922712827199430850570310844169853818447255149541408949635374209275028680486854430978693680270099268587407832203116001428781087035284937282348032059148116533576951607035186832430006359856786378566639597844017355337987824949722430593371126761016437550146037678565407660487385015887839586462313530069977982565081034345077280306970060141980619602171553856211819485244166268395367305727376319449657869061042329272857974315931377935657644410064091395665361153411851236918028560707912484139170159815085939111485430286472720975936862406602604425153855826397613445180688348368059708190894295403541878529425400102350447130395081954569310210320961205499599800065859066248482626261266246095192684095878762005387423988624869576697897247492498783160324235861413683625370835748053771483323800483247534786941726955001353359156102062108001661329011779382062365774561011792486039468452057102112370875860498699152976273215581017720213348305536121406025779082113453414108907933594492182177707505540683206117669270050612604041049844168048784414847595795513062368933176788443199340128313835981415142632783103921992136131628737882147573487854868557320000733998778065289127233348604294380959483394432074977276507462646286141394304011647788117118867505777091525201431887782837569685129307411382523450131496301550807670369504481600653703439322192932277372357970420870568549870295844337823779053302352855526752792110401209097171185052037222540550337944040627071019301404493124324932898381731920404453720657052103678381605265551809697054890350950833159615844764677446116947284379356565364518482729410708452836849919866653616327560837249809950587266535402975605251202901435876543540444668223664442989345905125457658738372110814092950293677331918117676711925082105773793091391254566401952597157074101961837638355110161971604694717436664612463323992363622251793197633555670854592697889759114448123170309025070387744335371779387740800305487037805605829493326550149755999491092351098703063143359569085705555187858647969311478320649060693857157125121371344721725386888246535079707564702872646323889983526998426465858685279556481322524645084319893378674133630839064940785065855389423523309386962365331282898445939444364986870609679049931284887142744487983079320616018691902430460739157461698334219698013246672909231360612149086581673217452093927406112927074155753447894251238011555649145800557278083172743446573933013392975429161011530862590624071977909940982763681188956019595990877480060110264333044315948326635481975961450032849718046852625259824402963339901311546891136629068257845481480851270997856285519200537540816591131289805360821766738262501666024547140134648196308775843935063313861639831462349670145702516034995299197208830307794651910548673185303326416118305461224521972269274714124381675675540988140109859126929918189745086439092332271489457777907448119688657347261958061084851757790940715038444721845322054831071591965706649672720584848742859214719349558187448435524602209561309568597746691394550223531012370986750671238145227634508379678626968861213439745429211671211550875548784070380229517716973920830113376662864228196822440529452551214100882899529576211717267620991984371322923851366136507930235906363346746907405222992602105579201448387321888155424365405183744254358602420708574363663592018225271722631858217629866580755990801261559416823676966646151963641544873179136464330995006840409827271293521935939835971699383013148047139528250870427815351701840194866749722618894767365682875887159019452266818633981460076516628855813786994515657867518659131066226752772207966557852756420042264118248505586326893413782077861516379665288932498739297548403890600433728182307882772410473514521265838787073687821565700480703826369907303793612418106417667502628399958426869859179663494586195866269283513641155828756631561725327022665725370806213192976405449510925328015622491186853631259966387672406602279781556290453897636673764613766869273186819436529639839882131082666551705687396415978994395722509408197047889242237386037248513214573927020243665317482060606584557611086125877063359324423570333307313149204346340979957024515958973636065433603043193520907376514389274186918031585666213575051170625245783584044737566024311070226177040150030791258786002118708829623672707753496071279904829415306610301764264897318491244512616918918111333250569686234655628197851763170086355873480445567246628084357505617757984592768257265764297755488476067769493979899858087281406142252426781657737252390963553370330323438929782480363572697681430144903639444182281587721071987977271760608708569005624901381265706490818886683818709158341379031028511488938041064017852040822020842026867595442328334421105526364148513978740123872767415020038242409682370400592618575563354349525661003150582065536245472266462296185390470341998779770474527816238604027940703728773483655747858328876948180009174251670380756330961361313507336020044135849249871345636819885983833855043436868282094065806716622849597977618369270448131925503651868328107149094930493355140227044102381655114999043664694235630645756345627450239977286528713362549005778699140456513037212393556822546460971137480025213196593719783460183026330837205057081379211991009255029204831249019441537783642164394631447772664164880406477513306264267963363197785482833276181003843566437697892292617425995522199048375046796464732957749227823830559954056440831658244290412142325838674911223401333962631559532248318034643779926442051510964005589431660402195788609781526735046697489884632669135882655421262566378696102052941269183453181168664663431909729260332317973675329768965814743155890528287717414577242518366387404985018077908596100058033576870943789218537438679252197191082169770526225846180586991358956545051401829686554206865002600998992813772822589500847916821792849969996804390801846755403079134513811579142749373487380903885047730698431246622992897667279648967614555212254366972710785832274884649299494037618070029323304445792953060136894935058628007731188919151048627858792331518698579046652930057927615658898045271528827482551446307679606088498992337943092892220700382279618111342277271750821988447715467019891922672422064556728908136619660782809077197004072722318942146043844268086040071621527391327610508348718569840796521278632097825765435069793199676468860599063911027809423777118731662704720781720596259553212066819853663079571401710401590570209057877519908318306540317043506486964229183873989389360642604411574656777348084946305300118875356078832780620875568246246934198638239967584496679274739051056331965197421523121698193973888293611316961318482627077357336732125117302959325707762742411472873894546789606673890182470588231451649779832644317541166482974981649928533714920933973013344441272313471416883891839282592774482044964282891244243268701485853670355517864738983154867124334822592183183623795034469796036292939431225296915234881501395509441276043292966352637039022322395446538180705264723862896744712845820479762053701840605071277070046801557763217928923301884544129863052598653705366715450231421227548559531465032630404141712753725077608063078910031203878342736877511512149670208364204268249814230806323400502994927682487613999868660419106232168266044238290704773898606801024149286721597829117471576810924594743508997193806843268453582896069480743702582635591540373517458389240024320689450674410199625998709943056959178628672176062129339448584520462743133212707108421277508192808676225875802435830503988392497609252519047374891918419565129563591224829427324219251793578232088753613986253054574336564380604147378037086271163275685694202225534434463466726062015671643990466669492420466218014183202880235077033946883034258877952056154252441807116611686631886706197738840231346519115374395634256677236181033443308343534599390139827370473618848493752370335302348489696521388772102623743424036757714617052048726435849908775808888288770594891506554619427552909136987387424334856507308822358458338205597738760053371045324402967361500521214273010677438120994767923061627072287145680493072552254841229072512049124396334267239315173838927744603898684923091677959173368972124224875051908053415824039177475902819281501758796413379130162708571188600962141559862570309490993322701607903902867685938573599969680071998201186767606229497869760457044171049096218527704211548161895052257044627123054517828326604288354936029704403943786958737841003077248062310379065294527872774419037093201099219401683901603054798254762597722737579812450975743375925701162125085707014184840625798957151692362056422031959405650172906598205009490595963226728505667299302846847749501365957169664031642273582554395249796201643879839582519251939299197665637160442404666038457506136346439019942267501053705467964689951099802023189162532108473807018733333315972312633539797697762827056493380989069552909390844620521770056164614261774887338681044551523156022716453958564799698539397936727142090256234059032173410221425003576150488885398194267508845166525833306964023893209612687394722658645427322542875932080068458597505019685282754769970055536703671616573809252802783405321739412785352515365017767724379755321951252869015617339525814208555127662188297381150806602805405151457515341333228085575388546315469083819357705066569499757843776625260954613159257439360296991255711650671450142232369248055205523665885765977312857431358110075107684503933376102655195300045184077388051692155420286915940728404235263741965405047901054294757495053904582535746762050304314220023203562205879205541460468177687617125781955249072154934886465514846799458396605818429052039721484386413559307345667145385088959798580986908741855674374741672249731300082799920749087705778538219092608282905725867883127056430772438169486533394615661469304389657148673352032330819460818048990564483013822524284154056530613029209402272091595474369834768173261719538248795098519711732434894448621777865608533859926528748581359096047365047130242297882276171291327576659643050735278936643415036588185883646470353832858623373061874228635041545943962719349424941517810745311076863906848872053959892260389824762197386235126095354891486474229651958143941367522181085877308743117735475782274038375405685753733931762276938788484913848574665183704869322448624436016685690815710396528212980681523976891531600898331800168069363302987376466415005609976082450064588129231678740059441140529033956844901023878636621476559979158665113554235527288028350693061459948872244391383080729432635266131664650213310355680429998914347240028659007183871148328810957610814782040980448428166033070463333467629106912424654932148691615404601196885557946922474627136604943227750325281242473619908139837599503218050526008173122008761334990108680189073775119447691861215249900858382857169019467026376074495002699182560096476267606480776088766444111279482550593290696905463394964731139564956313962078709896367626493544142595311339997288011839748929231183502177227981295679401249805326648949027447719781124336917128253204415275700073192518232252430918970440436099924183648486030254800208299754840110910794131292841111972928103683401062482366325133687760035425416835433425553264816178361076844893457627182300842459686721524866184883158139484550441034345471203737840528896757190557409323319161682875170247509924275393802767376401026165613203550360529734159245052545649707615804032858849489874267601517405911022138041997398174885471677007100517155274377866462350064477727407713505990202430860484779155122027330138053142842497709968303976370400080447532101129242011795641141649233039058176038597880566195770629341538999353724152237377302071838103124291795983817603909560195224781238790218808626341814009651176241342625674400765404151683867617028190226517251873108194079730172453429614546097583028361740135076721189175018197048343796921736485470232309139349093390087545901537525566248104420479135087308518020328796039932234711448601985071212902280366870710510334521133891126302520163477721586122570532843536259924736561783256343877648272184179361418853214482261063349762336530931149137952212357416486034001211705650516889239603340683780877213557435770997596468370060227156386911347235152333823968846998147142413778801455462259786102617988712070889804192972328838613838122782220869234985646896513740685618298089893372070515963099664060932027272985174571685532235042047101069523502775063161670042531547287362847617177161475128479894825335471383118034309907585004768796513237862782570218456903238717039883753235681882237358552085451559927863231387692813216270441738827695405952044880669234648865568756412747846234710789482951935239434878783372397298755642377376666921587699620696743915078017871514098099309663882005619564204701125870853610737833641285675577774747615725764191937756449851467875702091657992313068626083386417076169094645369458018084851504886702612750787212965172826123955177247535657256461086710324243859980630638366076153336173576254122729393576503257579572145777923931546463324479357047641144882621131440282602450254513784750773384972048246513081855816900929352306412135801407705389352881418665693289264218467120246288342439319067793143825956024351089578855030893383425282235426616630055220611185837952425379316792596306750405084685830496933525060963808277149418223255112580594440570092452169177199276657581998952620535387226138320309080091849749564792183270389372945095895837673290906039644741011035269717791005081680424355162800549137788968874232970611700168341690119304861009247653612162050144502827323896366954234899189468772006448355111225007452908757625628395645533591123771987441705693581728491079204444168333618804612667456313891595201396296109580491489554877156208824396459267263147411046651293161224342133051374831789907673562362960894809414547362960720546253254678368479044818894156058954955475302484965739515611512793015247949089573388585163948108508223950010973890877874683179845828114489974442380853357292217428829826475869289312341991779497033220229015109983782348870952171807979544589986046184466610610344764180087710194249021773058704649374036958414482153756726725836107826552401012724536079587228616479266183700135965301293877128239346708332371029287967429465401777023542983799832735121761012074601904015453116787807936413999427735621925551161009141860687816223927982997638041312580327915173110086638850313307607070299193903233155086770204523145001940865946112135781697076051948366469631361355730511534610019667289459486810683058665120729914005211846344958688920950889657389543546086593876122632139036395422979591445193553845743101054736471012108338375992425089900445820962630346406650626364435105748126017691612561086129039500387643455908825490684214604821297902403921733538072883233603839086717756277669614479880647678762920055697663823018703460995904961605206065296544613729178337533994993690415391066963659549101823504231164962236807393609305379569663954244911668744427181152519719300924927259943525823781726293362501029541458770229281846609427527952171410389988091025409412438611264685475981079164419714175327882827686640315184925352933688561220927397455865731265415705700170042097477374128696613619249086613429949614257657616061028599719867637577806852017390536127933487522088277297067031170443401039436548564121293717032757167011038814919103233942711972585995148259655090730051097992388363700567890225645462985753581235714380005289865694660534692959823135461050924402895058193347627459912273627212407891528857221112724976671100501902131834845888027328925162271247319495930293961238616222651078264753113850071451830357250867699706982304239267126160754363806409843652834853547971901792254622651282991647596320083582977651446833451484872329288098063383512371398095482414999152794807685477456186493729592997156961826142520571425772127657647830237419336753411989930832914582878220881342758900740524165584742959614376010711615713698607134655933051441857519230298687815182619553887400414723872572639324607510660823052258174665281000594909583048797476578653079635433390573249531807030732050849535542287138890284863207286003231723226429461930207392028171958270626443849211113577083387666333192983833699517861982370002024874563632963491227002193131270068931912845759738936198096096643863684808289604088426722240151564330983019841380183305734950492188795830764794753389059804053240085896788569931975490333306895819030093244177318303484063872210756601233038709308267163604283061426815184414983023149927281067414104618342890897468915254864387130395214700589116375606704244027514498260780786892558331712687204258965131678079566672770773136706082145908383010237341222597399972282674256026934021492781028191416591113702736036484866542068717962170535591541228498089862248950231771594076659973563750740519635053603441181066748897565354322272030272258858245413353250345508249224157651399914625865387174595280774770025295395559954806202329329866155289391583463077750612232785920128965931333109825185572271229892755480322875886049417295708119009026539945681209566837380761038278952487431223140763415990338429638637938885645408891709308323780642432043692550196715134128853843621494180581702487261276629593417042353231716143893911140260769383278712505456309877436491280230180297080267612039539956557056317661585518381471588064329921490476039758321049591195222962574349311683820191775910833444740201649187115306175799638098503120388166423609128799097692693949482151285381836797301377013470363319516197623628839193524307268449762020428821914380183532929499135405848804025217881294520910680314771472212044370482025377113536115440362988639787420756055057399693260588332402985664266949254425592610313797188929265321488529719225001704425189890292334627155845569446812080224198065662957894504586275895908424679008067602482380399682985645997342557200508224253599527084121414961266934611236655897170232127752518680068364029917975081690002940810689096160667976224334459872007516379733457042040267463901662567829590337792997086184102423529691557038640925871044161376919408768269992578049462994401890597331029408267517173949213257765315545595019820060572718724850286590829228364451136814232024414567662990047507250780825680667526611318145964269307582961031373361224168884738727702421989905987237825758792977180660788832646660502409536865474053139753396933008098550411103997343164667943618031754201201903071167291695968484279025540509212364515625180255850884908998591938698413682635864881488925490542244533240039845175177459010967644601097189055618610369475820241469950177722722014641514004544654253509523298839144365086166953224062406913618960262734672744160462166364296493054839761152994383018740030084292421118988492856685475978436563142453012116869016621670518576241121928234441003610383233844830298728921721436355330124725127459123476906775670274473149070029693375635798267577837987081807894547919644326363623782829650284558713613630880879659529579365784808258657179065712626343134614777099461072096592959525958180206387255049181708320570780212969243882418225281895488703666746692691321583370381144224936646216031500098197979147382096173822600979854035503551355253391436524320395064314296608155600180459109049728893959785123880434200022356926195741753598317294184928805494555865432828009222159808380639213338482601854109151811721460335609746921492100475734003434855229336948456847821620131671072170180622970726834181434025293014593160286687053910189031290043117333720482745710985886244481716822149228495126577026299406759845153451661078136244323663864988661858941371999469636657845684184558067324112105852026353762733308435356703411717427955030481143527617389403507752418628298365223144623059801407659713521615885057674761392300897860666223433822914615319004641190034071178289687807584728416426024339686007431092844661340185896536159936894557267513182720807849837572437517999470970414001113667488539124652422728677398394598540414765700638331126650646027192189217133116023374447889367154631269076567545443289059543901222088893190098354230124868804721924591695530801405540371910750101471601709692047148471436419176833334153561400628357543563358827298052262506010865699330626074382723451127182590463198450862792700432037869954674441861935389088672480153501167838006238390121780660196488487536859561097859295898506441852457337365006247867209959910257495087771946206171740591982438185668926892524445812847185711500616813655776623319953935115579272510261121816921371637302287368836250889658967445225626540764028324664680179553018785314879843413221823236231012970722144181743060695714902727387277890134224856759680186168046730679230832485217806267984359596139710471015455751229853044153623223482381021721573706394877299102026096592703481134193066438900563088894100390361844171284902363693791019563128543551179995858916592581699314662608791668373263896658836980581714720460675821585065845240211679084399634329113787661606289882028015700064636139750266707341126904182724705617599862456998579828877975554156869887565988836798959862642450516818371897334069369647245935599210118163514954561522684010122016201188224539774856007545222200724309329723203109314288849718603299116596647897446606306753505472043515461073156799764964492720934062983701559093219372767794749946774948336940987321269141687459047561192728036944428913662472267235935525049038669152425833351656327465261095372617679527501712909918229145853048568914276286050382051158075800994041185317550048374384412036798966203241116455099916354482503472804914988871667349875910060130085370413073400872609292605048435196507937211233556612336157346094305659454520722984913398532269782063659530856119407405341826535636724685826471283107035613268401337539833387056081632749765810068594967171959120428673818003530544381045478686992716233108453380334847437825364318324628114763047946107585180234812571920073149752966951176312221257137164208948357361905080316198504765184581265723428701297845137567347350018108092409102069045725197988379885523301381848856114342119423455002584661873386526719117471229915330665236004467143938912709478642880819506026946781322072993935594409910969913721480714191508119108191743531320800466942402474254883830186022570072309805453981256140280816602939950130888588419084814816286994320012942079942950807801431645872840068122134513414457088011060815823377492086551107839648695496384493047326853587415004333245323711025861615212774103398711440563479377846863160315543657678840923020385689357219016806018665748864745807190554379685843314464283685416773552832315189453647533013308516652161909997937455355838282216923957120603480146873829479242819074318965199895157185895649484171074136793520270271335497044317646444574921782437981886028367610913288046358466723338543992557298237225346247590861442597891315150843982728492299415690321235867795417952094414609147364972081861252570992204340789156686371197368455293375997535957532698387883207152042820717890611759395162904336900584039977979817529123266386864479271430478930629566764722443883885198692069951557720043371225705293385159932281827765989944654617695533775593242316665468890153814282993397490768258259738553734056644894862008989465266348131108512623803551579979578744481204877316952716020831569554859930016075583198894361275874487697205482927911409116554525630031166534390642414821026530842175365919053716383204666086874622869221369098507349269508612890553108024919114100121712010794724872731540961802299247267514138411364428486167573118020627881457873565211927587149922241532637547642463122367951120312469719327510017462854348054640233361017388199326011476821418787998203077818401252484416634060808820523927766900034087525379037333485445714142214162464045310135812995775619865614036215460827805306437725054526778306672186036449552033412776311920920082811481135650679934285953261551999524284569150823349650754203151045721742941867037718344735118262268863523947416430615962182186186664963512042797833480851558162221397683931962225174468347692689933256822365924980751288647236726139989118388915274006419085277353938307809042232781402419215850835205431082212004753605694414315159545811295002592792266150599294329921080584368966307685406662813130776588577046155951652104872085988324574635741476546105177645292354628093420536506107006482175243594513073993008785117765714170230215193633060862691579668468907532312815486505634808818112596748458547505027533047873058180656300435260771684563080024531990164625911951531291201510498601949310725225719899670600304000387976790739786584872924580223760712097092463342022580141071347116641510365163523772613036118003853001903543633748599035872401251474395331990092904561251649194022604434370252760924869106527253072795917323305325871708145386765967317999150548339800467407153666238091627481516577736096781536969881466057891940512108264920147475694122522841029777871584344532239768168780358524950450683799898871791016152820691168603048369889776371725479798538019831932660644246418146071781628899967683967474118432627990437069444246802052211671828420336220637331492355584911076866347418135752873510546534495225218372488033768510063079464831563982704608768891998452568172658670220210482319923495840948875118476356186206173194594290519669644589632220983660944768591986263558073759103295887675988078476355017960151785892583761850447298726313099601274559268732290429813686205344913576695275695237812163385917598266094390417311921139460370439365807823324726516545029498031484711950212263869354193748633923252604936539723689986360324378973519422831162664995273534934285879545867027337030372150551387388143680302229680934216010505766142042052111520508660134121740432179153896607685762455743801120201609124848578323800688451413396209074851172056937552989951998633385522813688369607280223170955010731833031519915736744583124261377036638784501287263389212292369255002482881936494008285846161329672935473433772290156844515953885552308146971667112288549317376479174050030359230058708968255156857833728524733992212993884167834705445883509738275363496898318318088201254934977104003680010861624719320454953890723178868797964174328776541528254446085205560746502838096930182701023719882282037266420358650226378962059944567705779051441601271007177814539517979156667042409860006209731226527966807978741515295024128666318321490660202710198355679141936503231769395575742622172693571167752327423507007195190936520114075502306339723281434241465097524471682980339591879598622211365103236354445542218623700967193623603778394381771168914475781356837237103317244282229510558130439818104190179058262149333233900981220936576115657594405477932936016801795062675772707557891676952829727060459233597668549028698429211767995641841091776796242750097689960917525596111922765343696290440487088310326985504977554265090723867369015033969561998130905814249022234892120376659438584887632253761430560553018501864745033875853145203761064822800588143246757766133410302405362536508935485600686410942740764445432411067730337242214514869790169155642250727554574675901812140370862179128464397982297544948137118961562783346405105114421479013421431087885751211130893264232713941181177028681090303765712292826208860368818174011916345366680914706003889158269939817807161018451654510092541809823570035295162263967469815433778593700046684731746027105269776483672687830760942326065870514343033866546108356856341018949489222147499670117841690850684597187525109712984534321437601720481220386123616307398401139666819982118221693548443929079624725268438882346324740917634879859205861415147731568426784941406644064443651239941364507114758048779662379090621611213790363323088614863318620150142605896507099894577591638832407006048155934006015903198108109989271618853789530319754912104084339603726106342281265384312412132263388627652498483762932416587223444576286426134496658787044960333056352409219769054904051063369294202817977270808856648199716738144172337035871253362997614914096896591128919949057863188632369231409859427293810253868333150629997323403766878139706136445182286759960934623637406234128234392678887843072319777146208290797230797417845494386594860027752827919337804378868248200858291944766916876414423890559507917520701014060636878882127398424508319273209394622985876520190901022050069773906623887687208821428646132589385958710051904645395966889286782107957245054867536273254731732963675318583023305558334374021189605627605722936664958958729562871697538133272085866655088425581944947307028926262047470970763679790507246362862335287193866307578165663960348388989052463380602764682596063917124755697676347416753523331587190751644875082311240094378960349136589676340136261828639394503583751719839453914180665947665517158510391480832978756785953729438080123981651131927525686205579809598876844713842758666012949256344715272955582439300697686737629018505012670905646527753572735052434217861737992512379840972789038976867060036207560458016947058865175761433237802130198835296804657830142998053169105156073253274333674351831260425918640873202225182736670749803238162695353090136641347071578752013134216614862838853062415462004976347285530840186682257025692014980947304974633981150367605480717852217336048963676705511630347435035767407473995702678686180228030537037295825986274309682473840828356291129363870570590509336909287629444360265577682686896484277302617063743704904041249766241537018720311413523938640526888415724136979348085227727410697976251954807754481851910523880336974221333639470247629253826895551769507352415141943871602120208404670812022397352568165234099854805430189373613715744007513387206126721103620717858343205898628788588395217744946301713996612973097597744253975745991056056551323232581755119941638410559641305728130749502861877878560223482934249756734706046304705410340812240605727576545953856467884122371077910168471113205908651729172821193077481563024480941073726236209660853969756766811558093721720275740890639260257790753095795276513349189178405016054180875465140732886246646181944920282466172327986339261754967092692192101437409543419759884479851619903632672516965642391123742782328091303843634052078203181313703119529825299029686496313704481073646722786507040154577418108234910891704574994179482723655864244901899561457564966455251872202019110125878612906310248853685049518044866985765829065626878445810831502858727074914947752257865975363458417097028529428278198504925222796546793190651309521211417666590723111830344655051015112663712624472143575807218884539154699071356893523193309731089176341452371438756232369982233856258197084903756486354304812624698179739379404490447887159037981087293170572826055199016992279969480046112111229286286821655217952849376904101233443574116020845094890436413853255541707822704427512836068574092651660698535519605759965105489511837739331882456636761259747409524765490895171798137024132301563870330078337944833690981129890802193030868925909487326141604487608128169660774724831822882874843239425770560453646012458297815262572634071562993516704199064744776277334410578777422577068308526598083410232104587765116508665663444192371303751573579543766093859198912678934795091197508680102016579113386579307736829932494669004546171872922355694592108534361429172563660695201725998817795167503029447688980989240764223813524973533522850716871759929089410394541540988766622739985701817678155657432377565959556147951816386304936876592726580444933729036003830628854709132011476110907609534823640580250447644944807290170612623568446533238326961929863706143856830142955019431221995053607996297477995168141084519060794268315786097529701028481798629481829966558378878277003297775247372459157521871254953576492002228024615748898768857650305550971209284251681606201883649615656699042761669747093026096697300590778102467932391204997238517522715127338276614087718087644270963101688774697996394325417555202140061359859736720438803167298350608985464931567320581577342161241172818995251250248450807106974131609453652565721380298915303114150414899911657257837012257180423938277609886102070263878225635303141876099310624885612010065429467450743492382691315473195271015558369890967413098958270655242088848778988392608249399526477873042583392125640447737530405415508684416377189747143849659981605444200370371994206707920043114824308619115014281072636967678139931529747706486599780863179170928042989437126342895816590944594456993306295552348951145675965086532197864486609721503824999958077924353373663842710357232526643802030708973756911597388224958670001288693036834549239873132291167878185480931683560576658549128146973338203334719490869680305058721969227118401770322070587352448093914613780969017360430251746184823888295303818248678430740355065433413843008821692704477175666107925155170629713858167227695688864404791326271483866154930610124987506042247257045504559967633842577263570074680637881818685397692368791788764092221187430946407351225945361712988277418540106523023232810205693719568588235615067304727219589398191983865326638327078370936950033588516242460880847500779488836280702066682182229894120124271494466822246153950578980849069854956792276044828786801707132818692905963298944894049650284529317883490261982999499894726967429397775228086078960488527930173142668775248614998709267388151221278643617142210798567760431089097316839228193512322087658880120569247464498564241604756121704281636358673307907592097877343670343874926928752041885054204361980504156442553921659144729895357012722832120650442336335241538661645397320441544529464485228787055037870472271325979738968385185173088415355210934791158387419843496819239639186343583663625415871936894128545826955999353575315737399594219039889078590479409387420974560363554966687922322127629623400542765191083380791418300055376451456441183266437245169631926450411730424077819144614549363328513045152031912692632809113752831913389480171374648490738285676005322921106246536151875084661799977752518751688278526722836602470757740451316083301359501648414126062027081631894291045646320447978507308472914897526741851913251377414530255526521801217360805272670100727244714106530858211916804785942688513128636906655235852125544431466038395396261163528109899463475809740854559584384432397575037142834406464995904900979668268066800349501161135016885092697796505254801801917643458328444846499432878930974121375648767352323448498256943319924164461827256851572601296055509082799779516487295577493791480195226877532526758362362511905017962753330828442898291646405453878941660010070117191545834388041842268708034740237187035962581664249768383483955516910218909990635290360202100716101524055032602134455800814192959012824740786427025502097657895653945397377344122936641367531057383500042340390259666501622664416621834879081632264637946962434957641537811082897007148594645461925465056164237652883980079660376452222859245013327689178824286217992888811476193796796858965199117520177823802219259937344690506139961950176551833909589064350296490351165203014648997020332279532630412413814309347776819009911099170454411568517134260097886241071436572908822721211822889963573590141257428549893831006018794178651518691941226923525545271895834091383787925072194815344860422119084581877922163561367433478102364561600056552676975321326176006078082479587425286290325649601426448919760147275078642541209141713679100907821157501438610744027738689200571608839850945399423370699279589732234927350336114477231892762736602201617658332043655804760751750616287327169126580877811169931775202608092207298822582793744319987330020452211501099035485568468584321261413148099441857102045708339008207785692938401643113298927397750359928582890598099495591288526447876118378013606148608412188860451266677845755782049974016577657965184285409503268665530836188117990418983634600884782951277572787107276928462711851553986290517990365472794664750076838551412531060784681566159009637231133081165325164703643901928827159986260252211058244855874399009138526254305636631928800674267585414112340188023784716424793947303773182092360704913738603612515974324822397993790220717554710584423315257131872621975934335932283551039878657318526208426696550852887235721052222673317024699057773758168849453267268275690594052654623917755698044073239220373694055812847046674906574796099960285591026637228490522257334742370852403572052947243996968080542755497247600826963232029651944582355379340560932424638758929653459672814601085453164879317686328168769112814451160992793879680123979224460933276995739187689401383074009071055840006573040197434011464337928172296733352967737332469981346500378369560387549405231995480320651185627494720251281693826779883807098810308557714998731878537085401348086917867972455520241242232529121032045846126864184429676321747323255603740275892179629266409692591303918526383661088211414514004177592435366821316744620470620541043684837323212477755201366970036020444354214231486408078430398101586615401454861059455610880516879384624847890696221586309160445944057926305676257981760091957048025852119229127632802648351093862109383124137719725775874903839256698696710292224288746904912023842926070893089598484109648718902346012998329958602914863331272846039859192227346987216869859378731805478837584256586073637153756883374969900785919372446362983297240212542953367237851581609082496326079743947755522249096239905095769993376785588738755662650111634814118038043140796909104299005107221971568395799323626959073319170252014533125631392391152867457747040632089248633210271591269158077784674487035515467370235325166691939483157665291113183182539674440257640048728688449780325609961542514428222306515396731511195713250572328737076476392106737074568647943572939135530809018162520085506997955321801114328376233339891289452695264270136321401361094290513614004728017593544126462794781260583803490742917323869736733593418690911476392509400209504822922504721946614785631222531868375681123970180454179466766211593844043236871578554561750457383144536685869457750576127404373406181154616540900382732618533649445045931873984414723552658161336171428759568523339884786648471500289968974901121430613687224071926292715628173700859882652942054750071114460276255597180859405550763836784637392905388607017674704663947492889091614038813101191248863128859209367873888375582343166745040478423079722349157232157905226581610003015273895369190612252043870332943047518747343364592998277386313707060646318823289257452388506944465343482826578447321689116523862750971496911598162877980561497168776659400037640130728603553841177711302293553358456319966769027737134766152876150280269515171755588060558337848607097011616943681185099107958888623560403992726201499321907518867259448223081003791198604308108359524229617821167424425087644199529840698663454660622146433109839417694937113128909912249615425466967474988915689504816873714851134750767253103558731774494110923338231325058857666545547457171326284471678593026172961098152698164140482668299092475216585860388046688827639592028824650525662718487390508285555180100876010690484287920594713016239859574358189067964372339430070325018949608905127308488864679647188159515714654764408695775099725878660224371136680246847998763024910879279281668179384859694412963531534686140099067276791891954325171076317557987428611674554071930118403878607914265781233079019896846042128797442570730463850264483111798329415888770782309081374247787693578680535293375250779342048993661438588783141625958417577493121028269861047568548361364759877153594827414956924874063542959911940369233501145424358456575796128062344922558383128322806524742315129681078893870872236930637934519627923594053447123178195058303948872395987867231395417829196037704586133216730664058531607174120788294608173319886095130592561409617072217916790903459945847844382703329486443001560004859890211677292091713124582238758081126611206308463483486581802200325432496744995565899497176413486219083825407149495589759985766042174032017488745226032447725991603813371378443783851216648469301195034114507465408073013390836516543534483664067166815283457740916449314009876093564086164585470610311978133628149139048987990310711984499468518518167578933527090694269278590345622760842366997593307662234939411675528853865120419954530685323443640198636342944026170051608720997340034920976784948617300890013383592001330156580131520820278508512158238013131644002877123890300852732307333769370112917892870589446877360224288001394441937740014189632040668781328854140159188019524699395923717842495332518471456116414204544415937356931607272425817135472585933823182539289317555300599939433471968484167687061491476384605049967063586534172049217261633352385429115957149564011712276835699687774244860621649900570672610482679767554060542391827351497705550424823810656362123467709215264525271327693071541442813702098090612742045905849627390306188369834911139659761710182769004970796412552478110352835154254701420742839922342702804084697872375689574080135591540444245832563240683838248496340954066200921126609904261108789862550845839792443549821065297826343105707017138072447421770807515976111648470583370337473948827633358686594474472350439357390719445552340374876043104529619430699903868579500902409756038003741999663747465235017283916721197804680582518586332492636126570349700547356437854473488611135312545617329299410827831519153253096027240413294961795533622311781888271075795383722201562232860034916132148179393044424092475507142304640850443236688542778363453783682313595899470189065759322575628909841524071112151303959182360447244856672974586438210641266525480330860943089698642330287268655747251110383346766986718129984816536883658852948967592869063695560508175327313518136731103225130403944794368931595339622623027039351827416079130840884648452262784825243935157495886459106539344467818053821520694603430890054676474737547228120748370183432206528267889347524671728399232333428485448932382354506976747616170874143070978178808568168684991695992537606242720452169715108387487210408970924858793560512856200545025293562848310911938670612859521612812236206310444352892427767561089824127290708975472220416820694881593991493038185027555566580326496037846300340467252932572390764748387048211954100049000768822103687719989817845615611989014055799961629073655413005340832362652202795403273382668177677122854916403143929236715770760925762279201044293368226075049957644596676313159898452381145729411651305585786370547944778351160323543112438459422932425039471280580184669039725366869177588938074356809900198953778745716004559308273889970199530368549712882024764455467905232299512280273010137849297040531596462159823958350843883707403214427887407937394252062581962356352685552252864024320913960507713286506077848740216328049608380281036309641503488431941900753536846064605472123795157917339769470739200639104481515879582351236795607022062783888782500934480713643657673806331805067404009745775371506515596156534007357355573638642190297009093595651306243880406780430676725880006934581267189516986578901501011267502431507866896604543765958975430981130729085717501161294601529484139004780434574166780890725826691567336189408155546781336780569064797450581890090191101629677146552859641076931553620211203741122018142290490721618793333241343206193917261614910884679684926102669736315757945057727486401233670936305705401918380981439132175256077478443648435567764346278226329963697344909262014089521835339587951171189040020380646997644032920425575673194978734222023030681481885147886266079977982000374699275509333650407511687372972416950826537904055664516317788244653738568175025513430416764802575375018590881761658656137928855086251640430782647925697902106128426964855360619333243181622198856952170593822642509559148813528816375144680777089660150048121863236600075646654047384953568818457609293698654660564551581099675276296835635252469529186356083187099178128812495548733382342049391554025045318453536599516074800693716740568958109953575627151282041844075696701299519354567915352043283122743387777469740141111799753032381952212353355729748643746060539172832314669756782379779101190874470144333775146948343905149661445872441914989935650771019799400557345405511226528873655037028389880940643259278005127400720337657206633970645880142718976299520627205434563898977879427801971470275856603347714886946089998402840687650956107538500651550597717256271577329149439104127211356336673072806629875617363711349323638916203158574500927340224197922072704154431376237083475050814830068835254144408668612632590864179838702562609585502481337481937326556271614296309886998465190996602487883419074943110387077008518861626420968174936671071185194148109458342596688363387939343615869257154995071039165669658791337261277069105007840210408837863688355499999161770895578752529221318004967085730981033209302468116556135299523020646253775605719111879484409667680084289045162839732516852437139665218152768208821552099608765750716255979575156309015618154041701581130108728586206577371236830232397394619105820305502791251898078951084497725998893707299001509118799872045010925396069458677759372708897730892532623537805973700659065015710264542052078303280978386217563389634774075631709206887666424498898134537124773786721077918578865410231313956929352209224321189758216902447787442952199717021644143498677519676812952177164862227306038484783705691410461827576506147817424899042406202597141512349046163812328333774754534867512672278058355974783106465043202135098551006729119497736299056942332878845676876641712687692132623567769317671707748550605607850264189136323362465528557499571511525049286060829037448955368344447056204022286833834949462533908918884831588540621502533461737192109621444206190050384291033730638547669718458858716501224049382221533813260144635300709442176119032305925418489317821522504062766740647427022757098584137166664755678987413552581170002117301781580392819341231662856390295526260137269575603426419003170176246371344932449110585480300276747125816166394617124817839597153885084527426602666703500027394903499027795725290347796971479258519114763907102321414227122023478872036105634736801116573968129955977323262054074710190615468284911714746932421415244866375751977922785715350073259942451145750157391112753190845074310677302696933732144065930443983113112669222738409065165707945959224273290968232260267395354788792465385553297724871179135479221784546541247890106919398796032886250760483782519037399776352574489510235903446209815126510638292662566209785988995396586842384767740472139975334848914335366495474961979268811395898081222999916311178470928235992111028807773053574870959754227188859002181257748304080212854834143957009086818122531704755864976884161649697742367549641486424123629019324113377345484826520951192407440841978532324695365626415462437099818431982040286719284163071263911878022138994163565504402708299800041353060150391131375620090060766039586205698542360091664376538378896256242964603974458110971711119551965351064298613311587105523026008500762023950612905307313476903593690311237836595129235788314410040989782010069400743420211176224832183038331343275402825519265104354819919278232450208086238034950967588647888503251092797499159949872664785975901218106383155262012764947290965069759464687848876729234228711959228753856780507749087678420403401419110599805000556731748652609790868250058395824475479846470902274154108129591493870414581721248967717733702169185384183161825469306870106714509447882305601994709627716483446868978653543255673681810737024894915355137351279948855774088869314802735189176279162041292753135985946735910707203236662270579625713596730822151039544228945558967318520537902584008000785939374573219813770614305259028943425583873782270007176823440096377425505188339894848996290244255216149181637680132315863846772061564273211768567281299827651508510505006639273780393452388953632756527119941631977168054632064813246777748622309237279307005388781597220841546624511892476475193589947761438993646778216190456648204298466655490805380262944359930873359324218072282194782451022435411216030432316299101305346828825033645430735003387676956784348372718435320829840871844459631498059382678931717781724954693006345520562448559055908578755342983234011402620726609136356672155265686232075595621581279596631509990714793389924358295696394502855136982236259596161306836434467942930287843143217005259968199934189894516077260074164971785686813580369111999957128692538574268321181520908191446935430941755973090906095830305845881034502957294595239557054628917866160787190889922190077594104002493611348919326824633396580054537777470180426654200716647381153444731451613333633923095575197607172439343466811273710002677168208767896606269237221626809820854620369325546347565888064033086837076127521468043920000682511861988866149546235984652374296033801187313301865718945793241379099404546243326638511388671214965485165534408582632350020873195531903828508876735200390516060641176483101485436230191587443085053526286220803809529577907548532728477502155269822743728357909618442987294171743118196248863372079971610708118133684960434205229357896725705252173713979080082908235921559710698462500327313435271284996770606649544644748328736340372768686046354339990735747190750673873839451172865993087594212902690728336632121642606216170661165730494933251057402566153837164794001185372963163114923789380594257979768451101486515524159438015570524385038304079573816654819340093841000807008240888497316324700948624117377613283705894020812265534376961642775848612499855794888341751048146289373707769323435724563048069610077123114228856312040289487308964394640468140835629536484638962669302556637129262741250846563105504915345066687287769887582173761251387653123265278419173961234727265960255922554026474425649896417858432569733962112129608581211498649589510886212050451620182437350608404774125790562235946228393214255138849638111412283456634338583618025751717010496522810815670345088847952878870980151070834598998029224437959722887893153852193929718598398790122558546981195158325359928921416110553366361621701115871395798917763944788763114760731659936810105029316931133476960605658216235366689889832743909155473650647805389354256541155650267737596188212583621997644112947928565388424747245879789632014840322461669462021307132988312398906452014577971040181245210222719838266015048470960871508645165911165687863645480937603503558668468756457401565026733415153673648943408266333127935417139460968705416984746489731007065356540607184439628157296098265872641670558524026285076468530598904310105426747211558807472387290064913741632894867275870160737552518145125412400158198916463195123650655136093200341583747571962743315274259674829753977324079500965498347983431484410863623529363564084860257861789528908609472011029334086260543057820967704794984835954203316749075452064919632019606732262537681640849753122332742636055703870301759345779873422056300661779609899234105852790420898728239696237154787684275581081277701061337258566883123253891429552051778227336175990999296671156581641722187752293329692283817814324835167230972608358383765402350813694242675422413316189103929536851706639545247335508403411519191758861854400117486057089107124002284643351541441469905039903071617145995724670973929571873268591631219969366082595966636358114040506892489955340751644094583964872265479709343000989675218228311802083512392396020471397719230480332416874945060603121836144209586845722873248507864470118177242044470721941085429570877642758515446900938259234497760017141025726094794919288590810142868212588132066761631869169562853733154852774301231223958139543021329592409865639715103609646305942228779092477585117057182842916291459068773675517273444400432053272630014078247781630312907850844487301933864911534901668087831077630876765637320080554359499910612473722765256199912042356383349263507131251101970778959497149661569113778861998181484605745135309518581175579686552407449804411614394108921581929864784290129401043728942374034102444209398481354056591553121306320523697960339188109925039675418381078840876477856686315779847577978447381888098233084854075759133490516742506450876022544422423285825005455535600453194418137281466980850794413075348887797294405447248569367254310814742315273879028069757617926251701203255547746234129415395801914800515443163783422389002180697191689401565921924221846048959705458677206374231463275329414138272609472794255537221229385745288209135795055231669059488507512683477636319421282494415492957551242253796283901009977478683622660238056944705588878723050739300279153286721111652280364561021709692406922559907264649860675447019874447345559194520846125667281181408884837433766846931975304490817243950744987514568000642742704802265681214292441692860404954392233365500068697767438637539514795056560975265421708902645146958958181514364172090411513393387525824039510511403237922434710706786042575201575118974736987978715538558622310088526600251220483463342359655915507801329981287623431395880363733047582879187386659331535111164489683740847112104252245804224975948966677823494399405380775771567760603634925307914974109656709874441620080288313391883862582173102614233607153800294430141714816587819976538670044383133491678541761961673787227368089537279141983876702650202049349642091882415250422924128513231780607124049267391184435473615776272764667614946514767410035204790244169089541710147363887224285279505661912425942852104792882513993007750648400135558430080363881950496191504615909566327982684288330473677260530005112619317592474632270881580021966089232292468415253242446720049332177020391390247148450825005703501225799536676388209869339451787924447364842847202611290944564871697127160210173419694871733178977223077766882267369541932454367181811032009580003195083964817623865184509288348588582880928332078013117333221564030995621914976066068833472147759700911960713806583775559278875757821575446895945943282143514154560180320922186597562903799700388377116108066364630723115490045033571213120513289479230064850715153080486814917961122141628271126327904164810012901217995697774430372685937512532223551163045196102880857844240109594500881128229802120551199114457687535871422555997419157908874913782045413416904649258787125448364861575349658889111107026264283107017439991044657383040022017812617955008272101086928832980847922939967272189370023449673273998248568124256706819683757482433934271720545773109705236314188560638948200111371449008880253685819290306485028246034814899918587251038360248248944766170734944146276385561110256047471367979024119242920327343767125349158846408174262124791438850710517067621147856852071372759810555871771619436411057994860643415167950746536999118829982241986978039191940733242828674367802862978791251634212094381493242665759719594379504098750230109739240596553430801658494424387265090578663091899578133754877348813124872680571871943258448496379170071181079727024269106106446233392718648912769914530835004338058245211151521303182325522215160405717821648784436031049779541938225019285027549728672033262471163376722895573157968818855433199418128122013471647552008909519022235362975799322118823960567506239779797648083018844515009219126435159009534625705175794522252697832544729998000803955314538084785702049878057895687468091878781498252602763435823880771166539739242556141026507784764492128874848950584292302211046713353598405354421599845089892554861170760798919570569031911524051781200849103541048984693579741944356511561661744331310650358046575835032469968542041918964218565488536872664665270474466444598986313241167062360534033583858120336542559189504408329896244275498595458036808055877039253001894583282659876990782599356691187306755992042201501151695356392163979559044931454546441382759987953701407412132949822598824207764680928609357061488532624700828319746640331334080003113874384632125803648431300833184767208902488836175171416400164152610213861805219625157145939962093177516769688332364740112667312641210560994019700837298822458225504170349090782661692213700570516964990524165461620842378966259247789914260476464385621741975721809143660081826274336209200608192283603317323158986802166222512765546676696389107889245161925501343584293406116238102490933248662343486924634109991185580670427456051584468706263115100162464565863910146579476998624794855817517508413060538279858036677560057372269890386781382944956151786679338756468836281017152730021656144796510554283007903726075637750047612360795029122589998459883787510926286837630883109732080582697053251245982338675332653115415126005330992209642499156371462400465907563236575258282248558863078365132023986982837016706379153632509474030855666744718434405074759466133138086553589071366133676349105275869085459043448231614396376288303399883049690690088185520944338997086342170894072481219036533110027033756180522921794551919717477953232310284383324659586738871088124642876731631812061545672833775914306039535739127648475499523185088370417496198638649834893963854554417280054828309582532233551506946118682558714292847513096618020766351039993360779264946228988282232969315729191059784020241597444603729429888452337186061862616063505767292893458913721581920608963989014572775632247280364307595071243823922770180664118871947463031578769763303348017395279853287702071498821577089251892273450534054700628535426214651224249649629321811859028756932626166392008217979469999360016987995438215362351689581676581534586100485837289374815522496148215943404651045776005131328683937897153419497873031157916579592451740546333148571714114929634273241020285242948012044289692343510558712035550639006358907593943861711286717411268741578153863389193672580683784667098944555904892419380247059529975489008198480506463658504840555244836352876854602936683617288245804363042811396135275904267328837880152886777057674561299432468037070504563429639410613363047095018213512112441790378789340192652926840234647694275393798346200815411177906573452850034402457863009516633860873204573007542908880999732599590423740759894242383834281711645017427793735544044442168996873003378244044653836537352069621253922876495892202087013699698643509146800912739569478813301816851484756763374896239377462048614362560399476491033907651960515786931758953576422818727594664561809393057088476839942668926310548081026861444782476340309620250646010992528065288343444279998849372104082036619457356389976570402920034205774417331230662952838035507322816698582838801606661620211404615785277544110725733180948214928713129146976705998809982399722968349911690608525202790923604962178178413483201256438062594761126447374603683998443124624459167582291262523854936005471739571750691546239494573404118701613683389545445495485337013720020681380110100455433538838351095048073478201118615583632802217385995896610255831983171391356578782147409376242888148473824928652148590562874869039172414007036680073601154921675757763735420603595733853497942682622823886746159866593427375263820137109267907714575850849961346427589680990848284340513986387810827489906480243232814519907891235180734230664029820052550565437803998180292758526082027972448914261717000924648476038989354053342798571415903049156173043985073523132426971817274864125950541502703586550311309099949619880091541584944710553094101132918782822619833545509927115924111285072124308372600591771891385670161923908756628311906585825363722571124423802221075627305171194417223118924893940129531355936418546229553010747446140685293828567095796031575583568403165404638219779002822683557784241084083214076147061340346565988990409844601838078948358687275497148261062527660067141211015529406486451349586951237165640095138223531668161339134354982489827723427376306752688156982803992049744617172362135312192737568236039673747417634669403772340591712386039848986318593310385764834285237726750831250133879241769928578441766539454726846690923231517142555007560137602332704676448053158201536612509967162400873737917562341829192309012586746306400250623916048032639222332063566254836570378982820014472740368687630122952435639666503509819974770503375037907282202391240148403084908295007554391199621557097886981444193106795915281350993161921272781408514776006958745923027175488150191821125801719660737251530432349868536427538177630018132072051938875394723141674616121033807882139205492347415400466148299651085237224637031864712148487513225437498983697406334337356247978145319454276992871569637575765929612613047058495404811088290871494039926014736541714747037873245917814571610608323169635410604005221243635859988228668616365360646997730962226896539017942616352543969524074754146017042654995071289331165616998733098046174713284361533717208251955746352087897814674550939063720350904270727152639107199132252170365986549920698041585933099763483300149481119823962982627824245697931937483841634240014085298362239384368187830175986939837801244964664404353740857049020199403243997184791269631381912770087840975349805213910945105118778474763748390835754332438707343552170428179779280719848129483792774971719149054468768891150878559065693115472172677200701430259047252496712007068171700600053124864733900183120480754915926514053968034555105317710193198186067560616520449674984636309963006411038845385837552284723974822540426862745967364835464669872286384721318455240727311760504464150114045821367905877406021322925292234351550558949322031610072468754562432769239293231706520419208178491138748257007249320164000825133930598700165792647637749218863306387680707684058253911968476405738097695205171732286985471761474348394330142882544431009674588761206030288377736333042401474655584219460321761363315385868443090819631589398410653589758671452619804964193648418296718033528420286366566815952073646097655869559431482020559283026491408356163137491507073462202844929169189493891013221300329024242125723558362931856580314473888469893031329964693521954167054412708835935201148209952070337485337218404211230431354465965833367130077637525201916752263286542403931869422800454295564633431130461816955994670239240559497823763410435423464970108362476305192518313903832890192354451164755420788306968716429510382572463130289236475271993369205733910134830301223609657218107959830082473909074383161859795625395092341156478866037210955932163494567638719645870471879508202311570085109383727275005081700483379449295546380680681645476447119074198432218339039303574786398871930115822282649767441901680962143704628608248641588101583973774073364702010185307774181854176536985175243370578946998761762781727219232530923748965289870073701803903369797152509429504168010433870872894405313932461703284662747081496384200446451576992202750571312986554945705312628295006644699477146869398024450850661243370371640758127993646662523924387903134833841356889902326292873483455715686342592362166420333708768119216105675980257465711942815633933448121891984066975551075908943152062846677233105309955373667683250597720743597843511409325612900113101029440716501641626062106191414629314718465314535844288238694230965431007543181018818849035687652143137124263386007395572272837899103266452216821661407760614019668026712091090667859335977224974825791829985790141284940089735414731046113986521103849214689263878058672843684671053013045067793023904939391519580877337044090850519882774681357111056358885397507357268468379969887983364572514560349759700460507213849601781957738360660773241750584418335356591623012822402440595671841680216534156305521512724490984524290629591390234616879631871960725905884740155540755882661954371149915503728498132753299956247442568920537302177740493749915970613802201330014104307390683419324273485195325276105749719900712964353915079106545499396067289072019780365890548203921452101619655321731551557550993658180457131878924149077923195708479043828302041473215780616129614476170477380370942812910136119027475929776497837581649026053292834259466100221733846600135009153748018763516288638507186835545671518667250891878944926848529793811781531382430169495641639055615149874707631008562883713420986832565062151775917944578548853485643669707112093327887375979946396921872051045289884261324870204286005807308236771653032029039036728939278248045471997106743645321524184990670842221455797278220089926523265682795058067674992922025720937398193807298429461577219915888859314650037115386212444324048475525726011467847937147341431859487845844926464004420043703246951766220967048748137100887010861860607157494594862977433136929727870787857614157264012777317753014991733248065788706375696852776213487219372656813431334327056964030022420253851167430063531888392638771710749432841961815271108385456914010332476465218686431435973373571314092899550073642996754819225291090558784580649152367971347085439586075023444881442506857380516574178113501105292075479200879130340179185583999853978829047314854753900215305601193329288360402742688608259913700250838820611356669546338333706832814644867335746823561226831015729148746650010327745419447977928332966856008494027275302247770154023467120604775917412826129271131315007000467259448192889472265039484212346152597357737763069638589190698441700953819446275574203685005628821240124759491280568444640824950621122826088774999981987215632807692808468944223987297446306469577065501921592988371564944505924635808200952940024782030181752938112837710594038337108936084524326482261049409082957975388386725745371160672486710331098889345331434257832007942245907599478863054579589391605381895513954347431505416684104350264077340922419355706325439731737143005226100018878767462992354043295101304487696222131052933632385056771831911137867357972329986899381175832685969725443207906638860477587930130144120193899057869614103980277031879187155933688439873948540480218328418688409914334424703989343275860711023324187382295221330590038204609368165692402627225761326529248736746310013229561099207147922857973828298998431632295280150999828693010141748071291911540006005169663739727796325836661395398308133079599784737530983568925042558863239066910902356338864949778841571841907596065019054901385921780314643866164305260975787740201293955007168865868209968801626965355097161768262707383633683924917764477134551148621147299802540383366620952138041138963989949053540094475266522979069567413825541703908423330500207205986167591907063081172002716184027482518177466926631598742192227290592409113179572487426375126105906301701385840968441761301601223860364457454596098709989788993126735767412594329131714966026419663179671116291973758376626794523035537906032038453277777864854582957079032169937285779675261392110470935891299939070812905558619647254727071300070530902141424261746300720551817178471929176726172209120376591478732226082200648964330883185845842038392529277194559189521168770178137488290782114269985523937967943106954177295324963028474119032264244908658256626873130752404566268257099442619536491793707737165850739970817829585164207828808144721144612481184861481638344757355989073651722268733243289931289677166392470272339287198632761724285579819990944985566193488557862112019088400433579416048120504019577885261459613372392975820817747292089463415982762585770594838539613446889888361058263043322981978640826094730923779086788419828046402624683620041710101548815750702012272772436751034399097929397382711671676371767455862262912165700244008710028907096718735505929306341781166875311001750301403277741156255869211973028758728514798424375857483920329533734427944977860782761621670695984769413380854529911570586063316777986347155313168391372771370899563698937115214718774704402123264568772937242631832688097121360716685682273005336538371160815170279111544584107631012809693366897373209349932036821241438382581133084295776850708124157644617592631201523994193163357032657003100036490533215509963003793994256947641732614867882952757050336956267116787763366908280508411676312384710676233992862313848891638397021519136179069737229519443468328043137701946520879983642108963694243468102864250086754448803107917088647620090783533820966861610147176442314848081138934393789608961653147782382417579392024891559819323339619338477063204107270377654348754168976118014170208737985503615223481800803833704120791047195737566423841942775808832337200222866880010747489832224628056401723780598836237940411526868307884159499096877070463241995122395254343498795391686165268872219069752481284036556981753813596090943195823089157889095540958520540363218843301912516213710562191966686082513812467656258618135298931955115604342861516497836635647374382814645968095668259503580069565244727392075840644229003147048568923847198107948659309510364184556449583232621946246525071534337433827307280773470357929954911042228259121945120327740128574664170575536986394283459344350535204513212370645760355673514249719736055392455304100448607903374923299342229953371944615685902426379144658070455148750405009819516403066550455026553766213712069672442587591258331625706760411587450236851215479950152304338093068605920821394884150929813378823877978541430511574004759034715426671312519472790227024331073281487827687401524312912953587773563413737833687734113777657123190287831807217993986527540898816734145536379261300978126560049065828288488773854014857494258480072515462209097784276321513143911971981019727251497599755800616691346198761859148532967651164040336914086974273929374168814325970890172106566924183813833095981812281761709476349342059927310494954847869357700387047256677001840867110916470521439272329190913221961072663616141936211055204088745868184548203384180306584266468205934209588211816528218152384840485962743382843613709043440603828735593905500218055639289104743944770934946294267986461665952973091224738153055092957563828465628828417580575580467305547865357794259512304876402626353995938899546617276736903805599543999758594896850453098790347937721692691516516034215925202800071726690379971633283239052052903220085556987567431795135676361357245564803138102136078108158113562299522369007131618775159909992033069369226728221667561258519330501858313129109479431090988813298157514258960846495934979493020262333762600378287815498177260455941005403223992394395755158357984338748506359352537808403322055491590111127386977505970765122556592591662873505920098396291700403134410944680594138013063448598529318624384833853508282745257276314926817682679773109954981775397876232146852013743248589242841128279794831498370181606144423175357834101250708479530028226845775081635497799740568070838912602678948158187827569854091890504019595918887106287222818603320511666225250410601488689084075079973523551483431563315035790905253901893666883329968822832928922125642081566321663182989846449068095194961442047980367241557981656986486269340939316094458054127268128343081101800758452979025877441202800205152116562658336688490859097382637856794635430139460553615570559338973702261241830804990721431566961142682094146482356210295839761257451912230564819130286890069034463202466049017983064783320722748382979493229752520116222591659860473612594097520049214924406959857107182099106065846219111570469162479925296119199535170166727120793178807372253321595726812149724894367003787450221956134550302813387979712526501637511041640502088351257810534281072227508019689549432613052583398516157340906778134917706567063213824705944389597242149609510474618414773048710180816295069395063792248072222545123552502986864171253101082044024498719332257523301040158819525745327819671921777510222179047375748120748814859306428991672127130693630664024031535742295590429996257131277991430907537055091259079651914397044461339470775432271506189735347115852495780608949754421062516076651834663525635904744634684128501862760903069015309885573347844557072432452881215301967163219904745052435612446395007878906348643553314222186222360923850598304120758679664107907062980294428426750954636284838184382489151784082334462518746924646872918422448031018548472470798480612446315163255340986704072274668248031341434905115355557704829840459348675608731005298987267077649072743438622901505023243277095043642487836444360495861903806121302563514545153355003353024479530626488006528960727411402864470457268056371780954504068531197498032590306214217313313412932682196156194322669702611051415296887439011643430105396249572739107867915112345163530192745143887858535213609207799352397258738956477889121050498043915874385069840662923088791369285705760298949969331261971990960206409336779329314937951122856857881777650652959999044414447296559109251268136089708080670797457398519649039623193686951332964994105249924925711933847493925523760360557969056941772081472308779632718567944435458645000726277016176133206690556563830064571584183824207223093629854242474672610551331462928386384671562304652927351307667502461514105926205245534304910870025937830551697164603024996852393493581542135907326685634714025829486986820931854335533550338355526500398856523393604977769500749029619838047587497765230482031225949500804565699488790910164885083536188101704251126731563174856262333853166643477344688287498514855374595085063045468301818056257149479985537400784278777685927007752234900492298186033983839420291353790894257957367179203448616933748843919184602162327802109972458137998408457826310264155343366079715310375639906085333336905605109388283765404021071319866990903040418508473649599157077292588999317546075950423237936314952466584889651116858256025158032630185659246071834244577105371855397815266039608890448288428158381222234771839702616379461571122264029715725014300986649169866125519431042175510176849890595889726821109852215348602317907417098128655835423788854674739575390971950519831501398959300736903797761613948574759763697183843306402190279733323913452442668879929727303253243636821471826365617376871885723816386793848912415537925371538747494616860409009050701276787069724826052514368466948697112373626585420035035932752519011919122122015704714512509939175838071040792684986569736597588439169524194587797041901280777147813274002891116690332047702210780053528582654895362694973281613309613175344847307598261397189046222252166073352435803816626193012082004471662116317294274131472398987468038263297178360765996057236279065454222744918270951971926429328437280203679431264528231978656429230221724719372377868176879083150918553058268827880812742965471669692579374511750900440358771524413453532844376958015958115185310441727321265796809664331655208389411722790519495515601373084573028674802413590968503843244034987307438329206175959486546415462689641646085939275957989604628557816867958429644916202044312587357639482879997122965959495020439141423021896269069391962221831569597531053411806520453392687564086387583614280626220645551904137514820504799503924893015634542903411614918928999346342009993090532100771841732299457606854618972576754108464027524221288635228505402881440305947913400645393203447646709665294021771806959770922066980726083889812548096109472625237823736956278914726338213804468277058950990278959223087708554800006099795920400285870901796476205239633707691396891425406999061257597829711657634359809648435340949009782508598998644795276625919549512853412168765405254174985283341662644096361702783558590492690213265963143015174829143626793978534682752316106068040841297396418412745098429290451718926702678299641923872913747566765685135746167051035366344440460179554698687835115122129507792273040759089130387129945211211310499260663915236409906541844837750282269504175923620989881304912852097611261387484091890136650034340253270775265308870686553233308967154446245279396298619361165579799349161173887920051146685920501822974388414089363970731988413447376620002617178594164602503278882957881536061985783718067303340059387877752459523413017294766641698183320701544540886219504039098611115221256250955765924257627750940740770651295379781749162512182050442054668099559565514499369627241887642073305233053132968172217153439141856570746210640675579414570959376660229438789926190199822583049524954308929860648320833945045794595263946044626117406657054953262491194803705078934202336440326939251381913329799797807096128127651025799264084721263721229363763533447182873803508528442280603147181120238571009661723613278739125291086634806809466059179240539461108092068634475520753232324891107915668241306963900035022227495531943192703963033678481987077345569143227634154195959901716077635217083956754783717386400649428971032574697472793363697111786864880600315168572834392141718013997186367041610289757835351819379618137633385431390921035014806036758785055231099413784271919307749462464614341434705449987420661076854487792188678251186884440263892902675032181014667368858566937221338541940718813543108477242383965431922996777408280269485604481739979575197699213834081205553745145071148223970108637682941077538446460904374700034249196526824889988268213979139640589832577669490542894438926926928094349061386342244203789908426037617389923754470335293649873919157316691124241288595785893085807945318204521474930094713944478717651210407175486232515113709467820520129592481009345412355265072298209030705570488946101545074831550613627028746794383394956852038225119796341988859006388214696266719155307582866965055865325210897449810643028772321432025093328272470205656729943269278800492465196754734491172811710037345079389303852240825668045907406656309503627192752815575646286875154656567298893222794049614796945448468670909026285679230190743198658851600008281170036471263915096923288630567585880656851517259547849735947682409119344374856428972374903007305721208217777466677379366365114963604646609694312882744694973025886412133535683017472905148730200108753227549202190539291516509410975333217996190390139547177497897714430256274392063429222571292742681437946915456461172446364772798670430266904193989076124878858106979038487878410547742388537003279191280314217169660218112166966572829301940686342177112920370722314285689458920238799407449777421227901605574194432265847864772869478560149070975908316464798190127813332687187622663359812061920084850636881852340061096831354287834454001404144645697775516984421047090194537985261715612265169766074108965532124405064539741604828113610159995952239881342418043593668195623703466258808265696723695719611549359923531354566828105440783423294063380356189253652688484801321960964987904528485488454303539292870480538512055989708449699888119904873832519171230994550535202433528024474702671696699894649340492442745102034532204422114281015774216732522000117211791065163204282758390692066813657416653551484652322907477075281701657483593909976587843375500134470722255250152017209651708189267709638485411520321519071892386037547253045709695772210969921990420278754711728494762457954792072458723174431920034301987898755834985840127053140295884456180689639964692579822347133872189333216753721588667696558351287796463573851848863334534039796975154642704079439972097164153761101651900821538978940267665476367608154575297010867503869398881724443408851319415760728320798651063800757914232260787703742855300740128852161292120073053611219981304026185748064990664376066318362255537240541442966327812708048791196600924186948398004964107001571624105210598707322129501782163031637942382420333018436353337814755227466542953915787398130285973124299313460722722067599147904826989495024784363004742602698277765710555573421803346009343382537069742948806527074414277950132787398552021244909605994524196963335140565764072934709150734661195500127300274591718023815744970081680538440257673953471792937951275754567177761347247021115499586760480888442777455904248572633342667860988135025420001472306550395153532395149685516610380210721690597203141835498492576476268443531365481013273974389446516012326703869634707165534389944006565832911839010106921668783983204427525880820838003626411539040695881841133175291185507925502211968572505294497794709648854795150185263134994365724068714984260521913756393952238926414423440204510966383834478084823623557999441650402728619255022664810780186050278995617768735621523887714972716381396706288986955448006175054004236825849824632775302489463658307886838108605542709704796785421541939814655397203889929884087030881547679262310658439438844407203364042882846114522866416469239162928076466224995211629680400757511421855999509205392546924917985660266844661487833575999331837161830413439653480240926037373347069012533278945554151582643248063512020979486478096133756703222405140690243767520626362636229305962786337140950706745388025548418750691768745081186604012779007707929441575085429877091026462801432889102347084749765774211905344444596579965725054751105454542186794996709991148045408169788107218440414576731741045862073628849836733255236320176558306551382201827209708010587287304235009685007343538289375396816033319262937929372732769107016065744219969271197037469483301977242472059204359234036098208002398961132105479674560481152005355592830853818717550870743098799878515116477112958063262456635140380077054736124365234073744848787233196584134760343683484466146091687023161327488472116014141548869332141569871432750955032295866178838713166754321015067789356138392698900096017790974279285349610622507526382631461315169523744793366732519303959057507985953715668127861182944616192589789196151207732865295660973921898314510298750131949364668494400427165023465625363658485929668848828716971990600329230663418328301557363992110911106016565621920734080611278637849380968669883843976927537416835028378523630460037443177897249729806486451234950518737915364475864924053665234576461671372802551424610837680128178807329203564146405233391037896858469834712216224024633766085948413351353362392333152622094315647235006267561555741491532656569566140194492870611464550852811470075626328252141114140309754697153726875071084852200368268899937017685561101137867179272691834863526290520097814388057109791317341480088465537792743426715564106446291565476288636551614712984011552121660423250751759368584775293304423102598136354827409178288576156009284914808648365932171541074638437627610746087529688928745243434220004837407863102846330602445426548816216079808369174789237681084151907206031407121495716502541462839496097723539247726080378761694565754417440752735542763300212984279984755134485383555880271243420147920709391829145534998498172754273034073250137368288614735999428975284533097690975342777672121346844202830035958051854434242596793396275637074648048065612242148327709469328815896827954237108265758321651934994133260701330140774278167992641777468062335268063289555835679340539702251337976781968170975077756535922201214836858323475840699669335968956464102076661228464537276677064230069165482781170501367891650602176334530441744134200939525991004200398124238019346765231733228289431511001415118744725333123146162455898392282019703514474310810493642682881980568209638494167372024146877393028461468624665388766132812087813269651859519955153148388366372389769654393075850638746638883459617847478256902166651310407746812968381791132708431947702993622482506108381434022106870465199815703152193305618167430813396196974550209528146482567239915877739302278994410788658734586999193323072255477696071718249914316737805878454475424841502271624297210683416818752196843483317094850796103032326835654595676303115445043778674157012747988049495626567975979300622405835934285209023462810450994159906187091528847498326444113036700521788494288090413394981130775767876801616828092455081481856254729919103043226394121276623230691083318468595401564108134088921975182441890010011333881014859072393709360744185246522644514492221217879522489106364949544886905484820391192748954331450804310522547742106874098625309467860490824775126752858526829658606086136073906234884025736478321584877357793132952751160391405844437699753518447202166822299853167722632211338999476692534122151849830999489984617194716516822302283823135447143016685273578560797005342137633657641993347815155197762277694657096545830647795240908614521401741913512472707046199451462994001824147297705327494883224213070274139472500282989252208591396539188613500464599934886107800543785680577750194068331333096974591916148788275384580971990617895388147801812113940272554553087291440168451606620828111815135745767804729819829922734681560131963434533849260123227763351530760904400682170235990094469538307631998904194900756518630817453444386184803719684939671825827203604344297570938442405402981966700786608904637098110693376807118326230185124548021651837055748092434162579327664743587710820236914009905422626594787714207884226553882683708839494882868204351584157333163726159602124036054683829383570541804349229865030326286545136350699486595807623144037482598454765326673190735235881057257847572256266012324412869304724317523493543238255335035993020948945456105696610966211097290816149004020270134889562106561074673690747234647287337494141544145999099566751809535225094064310059435621811002862128664514324309947148885497560260042571644118473404878765530405817976023597297477536216917162713594212665664887779926618059956789690579792432790954011240085304179947279579287296056115197380334242514363591252593486036418330385795638622346868911001027332578551673656588918724582662405126015422467876375710319572307459719589320022806574337639994140178839171469269145944186107889022957800317396146320288503297360097581613117775038713202893509143331039344368829148221611752628631981792146157112323102785235922494113238936726199185972156055931212918621822853488467283795601020337220761751709519531617591416047941323035647817080397955927185974879626895771896446949843153960521515877094675916659787822046767874676878272769364202157713538588081018976588471658593130512352753860223439786197744654901655849362090445038689873921556029009773299942095614495282492103934650813762728034154595592759404360627799813795751591594331765876821191220233994579848786463138591583927251706793884270593442918404520027580674713090147229320718125002790105624707780997822179726029389018260940388748955146419617175007392851554739795249549882930757980535067914463780612151430261789210447190860888783510204495793806000903949251566987880826606706517808100689574221323172074000012942444833382581536867705892811380015073928884135730512613989288951507022852775219342294246657576103489194455058671766542715711519155553115575312285487420672785492247775704404862939783307556573902943228965984341936044274942689590731729518818444987776399928065250475073905416407377285539343936964231331043148193605698970351431892858132363070037178174696539062231778531140088383386172571706220961160437559101894603656337083479037926443184863591813314710071615152163442987269516804216094757502564569145236241218824503710372756943736932203810618939948258705724039424167611592158770318841363885006480818112491332024646622355503335335093435581152448048770740300986453034599993626938393697406650527241738831860406185566359834337895742868874563932848320233407813779117219714775807265144174288918338974638497628440778559781833652127333394992727160512350457482797568734754674602239062283070299500695069393418596583011428520704393974428311625787517497656141248688308289043167710885024521520007512087620613182348666455685291836323186906522892872936575120137328110206614959519282795188077925868868833973263949611632173541471667757490978978383360417936765540031276759819090446604047526885053231948644650991141851371940353864251586563299575003536503883947539653238037214086448960771837897690312281089908418239393825099360581161477154359428558400197201108358950665082532099563196381461828670405045157737904251913802129105967979733474323671338661500336166793824331852659193363497822051645291435564205088477166391672823940290487827213604718327956928809151620936192578061604004522012624254842751377554633666387924558289738584144500455543436677126448726239273244349239568501587243259597277060077530940289955628176078602307356551007522908579209473952263716146962851523916432028843558538980613222998858928183521260260596390083549538132962098126939612593112233858736327090643200901907292418740606240969565474823956589802401871476965415006608953285579647806851819124899439681635910654051892453769325233649486154586154358582244234877776018915164261360905045913723544075131178608820004572359911224883935269314117044426378850406957705140500387001083460377046253959526878256235481076902613497789701939059102994887531568232241837320700790342877917844172932109263589475357594052860165030019528982309516364590924753195364899949213410869803292950167861326137691401051887337048132454454777663913635618437414719898121936276928267081770296390708973220218369102303631493710914638931670251761987598067086680869495403844150550882161371039104819751977522251292025990930525330357168043643523653483031995016637295878726092496047788170753351076435721475740513417712743597729275179980045985980433540885055645259912343795003310078227172406071156012291814473385755707921486966620525565751641719880029745212723312314710444827990871853675031123002047009427129067568820801682520016321913769107009082513927884548411070857992807750076649100747555446043043193549282552990069973260643263591503808728801899241713588041416718331084595638066348440061162652149342012219720432440610859048498366335600073654705655903083985815672541767443730190215495590493792190123646843976443478655241256755642044612411624960480827096261252570589715442073816677074255351459934140721685371763754790394395992254709022861662254546801961184025278788367008183426563743192065916366604176763796229704039362202502105509072702303391465641088013995267295921915875585233786810189882060953376907380325322839472984709743871083506685115832757930049593836996747399735416366774203321914581070534420388215765626152015232179796536282691564392562801961071063359048415539082082306797253833529470027001596381280482017926296346917427539316864131607661204749420144139324947305048032524017543772569746616513539582829878914879841325223818381156397963601150199051361235750996616647331091366422226558521577676040221978078186669464016002712938377810017419341603601240963290833418773208454480660109015920151252548632520174296897726131010647504354972208587636875650028241807951929811878145557935712573041803296157857416236727790502956683528828070256535593351742534455052468012109205232727080284536479404279150237896788520605489502525365474549600430625141408864394249333456949173503227113371614818410089365086920873821672999493346833942511279490242584782449515690951367856980829982833192586864158052444087808996834502803914274631074220761317052032338816301417086175039642631871753460337077486756587585113005799895285379048064838759613285639363250935811378082258575766143623560397903983009321337496186358342335702671165934015036901842352649068302679520590180712030010584569538616620386388434293203508832502265187351214431653102961035255580959303474157383369632383055152052586003795120911027061769175421558663392001433706868515820981354870050378121006289711599651808064881667318494836974222760106362989760973325905390504846301823853228464028500589702039724617342003310504375690764828988437132258398370504446174039825952119842299646564183736720255184721005181449032790108980926962663804912094025051117577151464620036190057097784902093404502091546839658153859236390624513295912330578970131731333704834708852262670368522079189111000292759428246329047859389427666451219844662753062957570475914674944470807873771332843738190691332468842478397741812180253470855944379700528565994736027533753616515998780874338326444249103083801702743434399903617335849540745320259928716818031042133114328299208142413530643555066065483785489819040170584073932611017281655326852325939460810962981706534984357676369532767844016409805359085103325652992078350933392804717220247314151561026296184662552356821290054601642600540629899450628646993942943349715870155732675681047976112502222613068957245443687336016832761339193769665137022143279882446348580053057551292504093614496832909830326937417936834967340733737064641521564236894511130909421442604906228948369251721782231034828996323933450015458850166392671432440407303979852003569790757042616974133778610763682689041255116195831548228531872508046625778482561670606823981991148172467128007161912660004472063835423207872437757563554353480891486675557227414982758408010520197373364689304557599790476614220285175043593177698757474232274927940404354740363053122274445393248508081443881127056368650729407823320691264455028266092298538536434923716812739892875999250775939096564643329536961614650097920379831861416130395494022162184559548093738762848598272017690050528029952370122032421055815478708725909374413226876964853279580971572771447328000036498005679901590190314227980816274047005134856983826968761833579196796725682585066158468538617593312585501099345799721508199566819937353528670042032417409280945797400143685065080141043542516752885700579301931109412141953708668282376812785663471422890510934833783767060328050788498235472934299110691705230772142992707119150294592327483499638997463722498038134707588195506102307591501780893067769758447360918357666307583502853695941221893907266340107626041794793609662034757301935971750307834362716165128513962400901498727757012322678946895053031444172079819352261254649520697477739071658051946721401718840236634319894911645337729873650122731400072310141506822539018546432669746040331333319251828707440809310969336981142489563589699098747748150451422618313059314423934441047527857042388855266560436639294860154487276886446540528878716844754511653430843694207815026827726347712627521261603296734927969445826009816349695261052879295751812833379657446983649310938699372894249983468602834106044950537756109253375201672580933958909998431395543535641010931990049875495488516947571594872091620829096164836961388082024635182618795732081465571851977753762516232591871281118336409795497997054961198989414067942209657887892993336014043657759822109427039970858881033108490561846891858071513681051908655298057753024923756735103635898026388818804703082145644731341145307595480624442265925970951386285020728660482167103567066594197133093394059689503658007333515906094578771445431042293014683580691398823795350177122452473921924580762790971146769645575944437029224508041682078012715688330372848225715154039151457208065585696631962892312942866298279456791464147776078172710462757964741587802704547153518934614542301349691098803376086987195398226611541499379167448171978717906426896150553460332224288523116598015760280211985734378851727208846818992098300824739830112097688882556663451839427593405644267310339903000855680359783610310488771076292167615019567961331831712173676547557764179496651301081204417713248196919306517946835695284125580828766844657848755090541274535575830605570923159636798366446157532305534791569870193152565194517547524529669140385996956308038346605820724515655787834764619317869121332914112608992067840801956320663596331431249049180612678230924774907656348150144009057109613428086551007137166397462495450223473823733797795550942338110182628949257237075248343413883778935138491105748274508536816294411967210368048781355059291895954086690640696067969197737137813633890529568273299807691984392092657913590011073222280871240490497283599398800966656129776710676440833332781408527678363527755839881262456426042372294203242951293449937314769958311874086133105034720081322809613060077586542545548316359444003048885514432979811540157846122774331441212614360467372348497201346790914467129908669494777895844354103151360915501307928445391866447000500431058422847332426286309505386268480413025864036590897100918792775451866961962192382547881488956603494822406183545199124405537133720828220240408428609790320072880442612760659048603452137982201316750161299499526182998287911805811406324347205785486025651730634990718101617150274792342078481782702892872535856709547643551422599692388393794163889987478571266159282129909331795330457298182192063612239006052100279291394015180298781037208189032207801949589772747497268067532765664858523578821012259429672216648389138492432411078340472137420212508708140555774591050329426914508773391950384942405298059662435688662009034726510492917560045026066401628047922864053241508775379409955933244110061343055422088047418118189664091462948164490917129218969334765537692459889069798786071475619401074342095158794939852076143983986322804364954044124729103118316194496334961076653801138032595857376762801860489452747573700142799639756599822824303544639688499631233865333478261162968674177598266727701635980500483740285134884660260130023545722656858518012638335492515952417443780835195523827124096024697307482548524667862480958924467369587287925833885601203803870194539987537938407858388067645123774864419077652178933300966915534046738726225420388652903372200485683291393616814320958783203241397636371655654185413253284477032610499187373609820402061475006828995792716552153279840227863118797473666062101404227045310499459824122924484892992054620435596353273321799076816390327588563250900761676940572634993698046660917551473684532197446556625017213414398330794791874635585269220558325162071059468993703242957071795875798969236784009045938345914187135781031640942622847855366756063068608642555882029167969208471094283285317863951754065512839995480616635546838165775051671376614569308492795105934326696469510907328740382288684501970030435994717472802008655414396076493505821342734837144712052001019574620019927524518317193931940015651080012236244849791733623404691296042159814418896703852679984985676199482124522932396976943765933185261670176307015385965987017266985652929896927297124150631665344037677017842086241328842327089690594560603299119549892767828414911730457067061157776438543861343483235415421776218115904292943847705376046699377977326008191649675762542485887663055707289474273959620700839988039799366877185567133619203095432458716295933460052205974152090655044643211804699474256425905055864339208320160910663628358677115943850406351659683782689376166358993242760994200711938411666286921652633670632960397853071718548217796910090248394793635140927338220500033526927448802232023286283198286781498151817200516370008203359898105478417735649530050092448237211597586930936325027605472603555723262203347776016916393870715696035167760331902932378346632774486567726814515125129615159895098183258236357596280193643996937470739391334257653202421742068935407508574832094365191033892471112108301849808023127088113051669376171714030086711599622535678419417194302702344551360431121324226692454445660213552710464513317328243224254647968124246581459971154128957121836405628104543422264567320779760974661129117622120130960619242391503602994851246825634973189140475491385451368275374358514050461647977633016313475601918895618025530035289382717943549111708178163048729754810861961486259319493345003384127230811189951005336925684041212862148750346312938909446464374910160327279077506510601879160333447085602682749622601365970810598112839482117321562496452627450062988855497223143356799322163738119757490926596377491731959063718359289236680085105793492576314963136477420990844729671719089702969228220103356106738078342178006017925767582354990481857806326939618475935726816538017989239057792205340214532752477480236352681089913132888193098627744183648726315547057863312723888052801126590689985104335115623968150847690343801678054390568040354221600208017748971195157563798943266891655176754708539098528388341981840427455158310020201859059468385597326213969239789512731781903455158828159963340476286798621414026453845468283213721623969616203065673816087474334458500342515268448271956112397274932278514086152786062874244077356171658272880106982489311017210481919106472285370696130462999367502177534107789967389154808654375654215111662348152750995948267996983361077018771257586624763971256990151646129303195008382897177924917713591449807234973877697577733845580879315441657805040747245158664907906376039273874122842972450861503291011995664434183761190791082750616793202700728064786432614637275291187805268059408421492568948288432045254040177278455444644464242548748638606042907674647644743707130146048630397959039639074623917776891639418326143923650267089214881417326159339326339108240462669755365401888775982881699005561965428838905986632117352863103579466909543131378595133541302528932059144022415482242028581455111242341010414509923283404530835590888394882928751329852574091982729945579135241767431180223111726464490754994689002877666087961295972198402369558637376554191931646007931130289140652239320179294763900828254348057200690418828251702737730178879848284585551274626498678752122639142778145216053709681353721002574048787971050345118973454272406834900278877595554384465677343822773276991551672390525821283113456817140306502679804355821657447683781525902787916382616864263425427337544526100727375168668424166920796752630979308828414185010020004224875305885151264249630542819880009861174579862598955073526679794921248349630018491524476442315909288173967718016690904028042320731184331960368773744139545389773008544013864997067654900687660248543626328914345191622330148611721467843635330519510132711327912549752352502874777337795945327337081520785761833750537648829638905350720683167995291779238641809947816579023492129354796081566815798371557918964154663604348672140962538646184610397749440190824670614878958171092451815770614845694675543519632486223778321834765318206646796149916615989486489495100697047735954377188815939095810916874184114014408979478105126828422540046367220849366212128867239528747947270042768702697188393799939345410101473577271742395199557861521101552087467045585761118196473960665902739614980083020307260301498070708103807721844458157759735447667741141425081864322822181675347416101286718489971444669975787409448855111901275247201896135473138473671411707178894080535943518261299936787825238619415293943949463123384279954666575902463116231396846834496591640854361836041116041194348351868625326120904794947345629609400857152932715637433900666862211984218896172942194974421329801145799970738300668842243872124885993146328096573715274796596971204175453953006701587568553682350167430866048508936341141218897863468474892745523355775839515102983978781292521213156476842311812591444604798199239082218759526068421537347449223399621336684158926369958696840962867159783086225557775268528644444114674858635841944461130240941641945785950514894326299413971834410001300630631415995617856533859284670237832213036149660711560884609460255808360376762406891896002629749561039559096814430851540920446510359132821551518522495104439345424094906190997133700361365307918392763427718634756191109273252158983199176480201288328505215930371464482279549057786016381385535558292070334377049479763033806128194139297261969316967226497269999874040352764557055661488638288372111192902243572606573550915654179508519606954225298735876666745270503208763703942250463356943133734549704652931618120306763706992882647237126714810463866207891323036633371804369369611724922495326219502361995342040714991343076973849175978293413898104145121621727764930216284972764722336949765605253262984473972220161720617177566181791356327344510995163994951186820267048592713593849071134874749534453002154180644723478677304377293914027679971087890303989583742456101778201041356919638636482888183121991325715392008811476313637928868416542869579141664375660790580905486728042973932908698639168844794318660422158182781224840704542729551228065551375533396283880534899744244337532567209772120246732138700418954928954483648556514597579928768063461095030955397986161066604654049182481751687727368206135947881536192423946516244913811211798124635774211594794032172741763378042677210328157350434701638784311767430379807898766558241717836235004577194615997082868184797239775322090593420212037848835468136383623308518466281450600466076268622779273173033685147132118381577297908796910234773907529848636236412546330542270042716037101508569834646073291669316986718814852781163547417477095387006316261465773332557237643885901808888435939040553227721764438760768802538271174233935411596772002580552167912317430969952048920845878701201687672019317207138822038374383842378477000736907381852580619508391465509809589519294994496943649395001336894131674365656748650722495368029912718869855623110400678860671895482941021365072472527315631402564471333418012373926009500567376788821535377214817594307038508060746730218564243380851648383194017962453605423323667802334996714563692848497629960913171648580522104568358623569421248493077486395778685967817804897368732026742288099685666189414580609349555217083622259075526471437945755517038825529115058860427760380873221782910268041566241998144254170360930508382073372816255640387119245741283993530748936912151758964406440632210980929448107384302593998906308951115008203147885446056259679750774759532585651870498627901563570955008115037371239991936680568429162654162752142086451112540378485364943896141552769044731336725504671127978189849669234489155689398683712044905634596446772368368943850262945491431105540680757336714112438431228253825050277966104687850744670360452243274409823286067211783496758575441243384377290172296873604672439380460492034058079151787240956008814683739997119652314936895527607712578041205234783466921000262244502182554150596799991129025095166485850920605397327338799193045020651069804574150936599465149149163445433894774758475862833106960410562837618400103628275186647017496391188189201058688410428964178083358764140991855115274212755199753305021002689834530953301176247335385336677999410500978731707929959342331861978729223883041632880372596391009437264494342485112432895359918637095994029264850055020975274452246094829035746958045055212986401783268349425763957982356346456892297992270414464940122193952136431326266108938019086424284268871753796655270620247284796088019332055616048030757357927914157019495610230070891205262582329708099383564240072204015235437074322034535346682080977996171541670536242268783276684957281048684388150111589915416701097346349675653936131268314855190296213232375699385505134866993799288099174003632688908150618946816797057496961307232629147006564208185824612322861122566252948257411637666651394480282099000893928497815402999438975534474853625477487609307305126597057827457295946229921815844442666845714442683024808959148179999238660721298346875143219528745344756500435814401174735329054819416795311347185046235068942845627672823069822717197279956388138438444585394985415508091684064447065995432817048070713107837821909080141696888589586442142562948198566633359962555352493202246932674967596711438840946026356806016224376962267533514226250643698194613005576893696102779101312433539436058418113996493082227022701022018833329337202974959431047204817094405243410295882992763874414236136035856883597601749534560153012787388320682482700744825377818228193156325753829946957008059695601009001215637448320147429726768412818121751285450207919017252497217929600421338527292283093774923789082509574079227431671422184871986659584357986042184974230855244086219983566527606683828842130882592692842348445482448350542295177458182701831059402214667019954738521225600187492350794769616870461506113248657475322449377778611545435234909117984224420647746168820993733214869334653856173291670288753691174933878682009467664894748457859907398827885113628504186898312587395920250986490722480719359366629130802381828424186756301201183358158536469132972715424771337940834004053210727836646018665408332119638403529578857976470414229406597308066109723355121328746756023785851709198404183652942025112411651655586717638198062119465804250284354020025918674749617362716351399151220721697696475287376412259483967472529833851024569995663853930537135095903790816614254446371923057418486203371830040861716104358836132145402801223500132449793587242039158771221763782692391526502113871553372146736521389172816654550038651966513504328031821182798905324586139231266094059816324784218909012131584184303523010445175140849381143950697912685549012614625731245977046997091961739958916128301270492578396030710717234621063842205164701198870978945026499305889866016549015588500873842644055608875080155123840541881952269351690377159983949574802083833336067088420414212615165997595426769847806424241631035080055298379897880596340664870286977734169581147484426986554833153583689524217252955923963905863579938027557672877783575755330964909995016341842889532345541874182322024660589011600940085451827012109571804033799005951113619798785499976277164548325560621180310714257969101756993771926280696639789805991189202729532110417874711809263526785798892377172118441784000984669271103418533360972266041887285000454672398638487928422828236992214564389123625646590459397474408510506784617059128485037789734966606782140630992657307858556638277574120012542988963726679064468477773729975527044180862754777334751762220010444830521317079664221769981183735257676144133865381920652987155649168648884836428246964580181058620757513278156487587594610636860085088705513240496264968121552869064215819395511372214056516637800156657166235777480294280465862976476976403679488925367776677288570478509170327669506474783062349278857587477564688068306923101163256647042119550308886740776132100443499839887770504269654840221678332002226766929313744932835584061170770891469884629693693069567912453806007092670857221341171859598412190523092154134825368527080809905956650304448016602233239722246229672581677843861796984996941154947227716487310034782356377587038827099667913017284244031165331110107903074826315224600034771638987442753454593796255138280614121627340738757758106153207809211751789464255865304344750027945776419614718418069654414813298438770338829220742579640835762918745948875059080826155830645639365432688679944310778353173587926696256520136994817716332042570427773848727447365463735928520378195513905338526429373155510660349534296636504919258157022125221115719631998639751701324143763240994933281903896639418845391157190290134463223808519634136339966299576903467618299389521344667925855599490347401446810206686562692674962510797256940734245820386543867270723985939639466547114626290067196133644391280087001939690014974847850862072567916332688785748598875740097703082128786162357122977161823350056618916137039104114929012275201807717269191060427418606723524038714000310608029952584771210803076365905810915926086599688729313490911898404580638456703699374725311717191283890326627121003203595802023481408441264120449135614283193199567189950163234710597008851269626042281813964789502861216714215866621325714781164245133166088665578995126968090029205130564556266925573104601791447829351288900119784329373381815698187061447641280806737734661385202415263469716565766676167971626245143774372518199541485005580937812842594558781803937956912981104594017475765130591512252030782137106892539315128457968431883867640157123590928659404224229128400674983060503793220772747573765642917189482426161953308910650422616900425588938666206776559582906539680266682929037961992979214518695559050894644577478879062782532620245968310678264810460423694321789507016074269726528515403154224134728611544440164914685333196978660755169025639873710279954006282516394754314889658694523323904947418991430643801607401966051241315824388600407385328722356113051171851277620139962855847189429773073265780212317794383816711366947902215802702778165459973316792460374698419060632620995788099795303166431460190028733076217105548496434289342228568527033390089605107859013494412873071090563480398991649639946947773326374365978781785706859030797867988984997431097535312523120944325831078467360230607364949001494254072641667412391496879664788729063371971325004327677808093254717988629482658914119724962463601052360711102773748291570586306092040527829902575859639571763988189595961776632443183332670934859697121763202132698342449386463623251891317880002256594402953014528253527829833398187320159792688503572760074636440084748027315909686000871718083913435443295880975648397529008280045636823678756434678615897094517380869080517374995793422318961197823146410827503353355037002271297597746422981647860836420347678433644791517031131307418867950922922348276063648872411942431410876143018808317021914485845054856655709742022293952208486750915399958749071054297345512733748749201031179614335056675765531326358049870450800756093793161822240929806957310519470010668605553190184087333615251235345474188863773805777378441981337905454576219045322109197089566800884854426269852177580229017845935359287962679589942844252141072713346463437703139660563310911597206073364241694846678598529291136205117423390978290914780444827252999818051527413174343906421360625916585247725464039050582188024701209160627944794774121100511749588115167502543494294163940923840110104576146750892822096630315093863687895968004191622656871175087837253486236771627719271408562660976556134024859354755716604257707357219414877254418761452843539067070460155129302854363848148564431046213915724240641385801103225820451417631374830798396527160120574836196016481580206251750244341329624957172615003492362070364432078315610219764881325238891389149640609907952622219577090435003814629923076574334528391656973398250380853929802439905699038923474707478079208923790981840383115534206090786123392593332369517707369187472993555098123361455106959679504763128619517349462460879349475569870018080401488029102916733656082291922207745662063402167112807289015426229230671935446820178150658974299119724647723385107173601747992645471758565993471247388495448865644987518622252040624404544913920295050704721763551836073046307027449865992470635188323729906660861993196746766717050631553868683534514619226039668256769231352017436895866454383902830604868675245546900759235118890972537320148966961788695759926408736550326571783162703493940655356709180428033650333737793974006380099880739461098812918650365299025954829864999766369482767653301806658253111519596129311626144377153138477267283082436255667249356335090236263098390063217252322144088447896585937884154035488883517486226530289527715365393691672420594123824809143265478676600358588093289588522537096330317399817557550589879792787488271833071548664437507424821883983087352500626110691609114802266365397485168003166858483232894113385526517659943015856992987550137885999480591797255971396314797178126283330107798521864229186710647256644375720183100310926058011825442396722003425308907737077569508558170541110058815016081501887426921922061859326604069155826304665488381086257089395625210019183756279535608737980041403416995684909051128788543970367471605053852357398907772583230586964273815518674250010853020492856878649913587750635651450158944010560053470983765581103896511262287383656663406752227006375616793166136353609055660622189666303667839619310306693803617701638472970449257848553372500714006064248566247219604132458245629167177564713152110434627660317608969934712171560769078605537419868449346796359388980796588494630145830289822172389701149294027891979650907202931676764936136110065601306534770680782664254833567401417646968492938569980056524992974977119360130458577093053383582423855154753549169923565323172234147340606117466608354998899962107219624050357895447502258946572102260887223774994587190460741144293521334576787639605111123282172801950133619271005830445788402425174620325927558871921944606780706790420140935729515288221019093085655854808884908881494913049846406677285469302608707443724214791932872638516772816184834095532178662647172534167338765191835298820642641149778509643827605307906398015950835399973968997511178322323905249370108087402908010292902694506587683914655925261598091132486539064374695140284024990502483075125752775289092672888445413925589479193217851711514864689171179659787136029545123573912856775432326046991966395278300834098862844066722115665792051956473090275982575152450806622700421823745405351531491726662303595384741409542790519490799141829297186658927337023954173215348516001190209786465671556932358987512469406248576685976218784501456406825637776003016768186545542167088928182398462892043961730043221440750175882255898742763229918814685299595201587529936041232914091657071220765907222469902355837108799146217587266412318485644840762047554998208010350803949299230620947481134276281722072971275237599920934437331367918450231638416885023704542825245606161624825679394876939841213471625523691143897180696910164308681465420559002641118081556022410829542848826510841871907852207137611930574233861587526197293418651353495527197992128625573215157526700570848389371973397903037826973167073331206125868337751824929071800170191253938713207628496270631040353159266543326107713805232944998054090255035488892038574517223536444631751033486127348426641711672466764408178019946674931888417357888325225335279967520608685158090058318092939115025744922144900871994468901197712855769959016418244082854491685569881043465369128848146524228374277375111925146251225157361706876785696702487026699588854578251116045845776731736215915323234745009877729912171543671516350976772515443486776609641732582910342683048905019348889215372217226283645068828942172201933139786325135762634132419596983059537385317891260745622506009721946115690626846620652198270382283122897742295304255705946264996389729884573332915841815764097025312676990291380710030883236027925349480228851897329598505856927947393134309865488102229103895268361092348545581548268619532829682704165585865495214895598317747895341123666015985629260299950911209563510739085098923436536828824974126700574019363733514879551075398928394855731777006659293759524593243391108855971420278198012303122528589774336860517328994688397487204468140908156049152620175518282311153973560792240475030201763726358563056159328149052657027502123082054394340209521337154739212728760480300186142537258435214309130327953980872403051443243400889348741791277245383897482702458059150590697119867898284092134847915981757168247948746556833336477850278911801688645531048865956563045312898090502590355406355997608280546684718567566719374452294864341849146575655869847965113036684922784981476440698299862708290618492634330445295525444839042440116468950459964803982816304418687317135953314959514617087569460974794369912406667275566293020714980878114342538091907721205164444653082402120919799308532588058872601686828343719660967391921621018976113600058040417861258799949225762481332674994694130039097651897045913325818971586196486845626291751163988713053166508168322157853567544149075865895099352264894384803077736133730916338122116364646006047699988639995021529704018210692200591810448891915825412004233771268250837257808010056071306569975020932657647798761307963447703051103021940923920840321378807211957842898521279790627003747865239567968938680958956941296395948398207416138870073378526454734954699342429026495615732321404619575300804858913941747243383469198435706724090070358014634348880706162824651199105083393676167117397949660606362081169552327207351785848192958647799759517244672484062994387963611437713754248942283046343063218206930593261628186327876420810080900585425284292899513004132327266741240156297353916125966377347660661302296093590521486581411753500613618944663810291858070007962414612555935027588950920419347654487367443268728928848759675173239483057201845255508463578098053187009239143399331982906588652117172665178823353311825298618051711591890704336821207050942761929781358756267693335293788727286832310208109089299129699593366506470372209386444473425355465198846321870422378206132257348592390500348531514264798980473460418261644885717315205075416888687607321960054068134076077495985242438913403652063973772463299315116149379187634810096001307175243697986560013560369830497545033615808557423824812594038255068460253422571122091221673203517855012165149687781080202908303515907721560941023334684038874916234227781094049048445115641362500617828772096354725085886589527077444081353685844077570472746991944609809589718910307291206792345644045728687419976276355246457762828040523014438333203625672659762410790146791302685467933795599570727244921674238508538730018238644819157744637971961333309766637038549055597238090593766760826695571718318132353980726231085529978680222101412221690034276688758004484589297277543626561689843703967925168614812976472835117689395970083998676018504159501610454541322791386895870388882961290311103139847119392445078598798124340713034818027455192649671032113450742315026518470682874376704707111686289296135158498297941771349475559597431650303256677512707324272921538066081923466295746713511185646920012249433276722617961176236288750518678333233050707172053092895553194422909774236298076345816302507985828677288623999409311264618954396245654854850320639276955968024122027234328435637097717905763756088245568463062731712898955853934039101136854921155782333023750099119000736962141789651793726083658312605765042173212885214638922699237768153262529337921563074990843445964432947297332955238591412364231254564697552066695480157996715372468766058155238760247331265593412082171033339785579343061518760288236466377364260352799668497973285606782412581381418940219283036579962202827504833559717282434081864098486339715912302124281621052245450087782128012620439344020036919045977389980578420351609803237017937742679333617792066832027513210837914408320918041466877085426325446799345068879866434632302413723232208548625441543516143792948825941859616487581198388256522252418031349386961750471131953225982435640035084926550368414997948452245035213964784102647315272938281364922997339104040955688802286075265108917258162246742938176083944191703770420095669923158925255381273453877957362793391503657243072440724736801752835960170750769104300564968495507141447677812097985988049716358938169713781607536726483668332495529685601576771346181343641680713741148339832660012488203969004694493563024902961294123099976816303366296979811046748827719186724443435876943674137250610872738184602737755634553657258450308553501317433388354229500192319478292216230523628552037174176646885776293566315704953028886980733415285340934150100692386588932638247385233966765740497437063254649664353161726612578430984336453237408606025760129342781843308601752783996314327213922323637638424062785194317508611806927931743777278030058538065611635123128448347079824600159646135462308651084728410582582899815450109862033176018911818707405824232677174137672124667713064262308388083480648439406995842402817173677342781750283993949347646173812066709955532139834107904144842937406296736172975818653493315082631259111542787448265724325127334786532206146340138164244490043283906055962105640669395115606029015835453389899672253459907377116046164913212000240885157041324725985267247644182670219849853009998301284686803108858811837327121530517523368283628399363461803855380538379087478081634919746654422909417471212797944104536924040936517245027005573515789733000099436380872792927905391321577710492863746892037782346984400243339684057256723417552177123518038898106028190943022790649378462318432351989672197425517747182571342447701564475865325145077801657129800026517427809689507820368259974885811683167979987250963644871339660851588137918190861075621040266764662997810300128203807464175109994357155814006366158572027455173261971839259314341284782469669990875249949498806056473604648731951998296433695584486401125403764551481409278501539767751459524348472851357421327392079227408214717485156961990011638390470445371141075964233850138069283693680074443888685030033050921888176012461392200422232955961145803515167516449519700354478936653122902384441134102530021451270287807138199428669801383408499498965549690160423681189368996904066451966140411170481632361136919335558664022912102326115829243432344848914831526042387028028357320374752028964825948063586711209547987171382106458560954860998324849655786725087354764916438739086373584518181794846160610126451780535282790929057955232029747411775915134707503395240881662421070330635593977649505303517670343208172035927067833713354531576683680992199948470324664996672611298332921345207206734871376811228037143519536184516352515028152403518969463737099256045930881436579765917156796463518002335428307549683954154730487176585760353969744841523432941476863107924240715099962935774079764347144680668423705340759943939629858519970303482987754988815918951148342138806659586753182623650951194717636292041918323789394508612323319457578995693453403031109083909557002466729508420354950293418907069122211449309913850817843609036804788396410539216268949361217675909245082544962504706522291436597173915550864935350280799747039801681200298886897053485788716481567760322529451224812601445570660495054810406279148158283884093402132837283380889631292282590841837621878968699468407793746533466226593065506385457430363678811502515887991581992887923202449555126841910879963249197831872749685296739705111238232916412106689822132129555777300340339659008402818451070795218793593444990891237964804925631664245146067252809982991298381792346117590469889223749835340311951875540191432807835116091440899937102050044107895949228652065493512697468666932841034452577129651603929930388205783158914812167575717178621619804746326704428049768796298058272770856204641947921235190518601892928507225969299692951024502938813351101177900918751042248264065495674753049054884036345913759598781278954299045565440206410142324942620236566033714767771457259031405251947504801055300114467513432604167081861258600536705663779459001217494246563210190512441286777500882474338705491366054169029125770719031020865468952770174925283793937225764470668131667764665972360716160554455634326681620519772335941277519400150818486466428524723092555521268364575421816008108885041810550108218950913531029099812445084298427022655215874649066615527082134320658143280606871370008654670144132531649088750123446408588100133274006594100954342883414131381247469711697041839280459068490604311874053918309818590551267747279928056029815688078968036333487241475969417353418060472832656428604316704632799200325569466013698144763813695721606716213454874817357404666927546557360102579819442843339960657629675741280363342733116978276134189547818971937011046835686389927811994872103951943760866509801017137277987492539740883346287009611053166172904775052463618795481554849290272264705563486286324914034377245237205706555092053765697872972793285042805047919891818973774445820995642533284909794363394058808887544712495623670638122575107578949892083193383610207000767474410835269334577925086511034348811886258820033509974200993861057153564999165011287167860897482243701084860248601538001005504780882902097670370731812301258832206580378434717367029801741593439176208935329477967672711473298677590644642626338834660717738577678888467372874939748060550484524604636526185701571627085641743349602309314593304373670549627156583005282541421987132312153081146148999194439099300305695913970893641867625184198726174364937641615640829082155674792880812130917504235860437268724673107281416220756478489193015720726861636446096146685973262473051043722058066566574126875209140409483191854120125599668000262381483975950249272738812884847289524078629625660226683339023755832579199112492623629769756926889537089021343191153003423499694534716336678146205019720386538954606437138610797851077116847946045908346393168198218384256532564517171010109674868581634197588372127226108573476970677636814749022387484015391692016290756029370563541230556964397803871924653530141191064077798187804049512827693786879252728431622326391304321218071706144088845696607362709766082398700328270013561612390627191323534895334513992231552607869587088270736428151500483490751364268299832232448179254828869513856799452987181746737572105375821703221377149904556524921260790828500045694365200800375239015814413786979999314642253340062048539851601567386568874330271815914242789045067818936967279361104871229683801405804157043068899504629873010091961213873064637757827854697284178779877635276353831511493996497831600469031581562776542054787517186112281315451600635664995631676285875301337941330132156670421363113828269421959764225513281006388265832225575904052197887728428598115483244755141719348617708145926222547957813877135472734747228516158010821660491461546772521048648053078446839457964472888953820076386835972489195930920866121520616380389146954311192830305446745061470944514938882311764136491032598005381201461518423157254382660546858597009516143305228635825159666535362078556996934524915566366910993473915341777679405032196470069727804117233170167055970914892440149812350480076331900713102265456733398470356961215860243362750000465402858421159625364199785514020090448167253180932352347823346957520407200051567753215312890527681198156956675322558111879061634497460712424161367670561552350608105629532860774119889263394026487260449492968828517265907115434732306160823994080410580544493939847229327193394589652522715373987963539399316347989679107168754304040958718663024544541542428857711919503185174375898912698095251689346673634394739111072213267575969391113204507372228728184600326073120554098354772060369719743065336221681322095591887771068895799242403244351301921575530655783317429447881444412959715729299518032611878747950951647468750497174079142236515483100997119320298622687393721634664834781948448395496033540376042448091829132966153651539142517993942085877557229506729217203272407190861496858438241764841036335319958951285362906731444972079594488293578666200324045762798407515935053586692194900697900497255821477038124267800252200345496464838203040331021783743696898518612488877227323111222078762630792179777124768911817772203478811370271653181201948242513206581752954101015642801827692278520466191321090778180797680436579359177091927511901668085274455875629515489569316326243181408192795426657573413913746919833123641979078337300328480794652099882948498194730234793198378387253250981990331140413889191429712431956481046932486224473428989619770052757959116805843814100325091595631233766376108913837964730994734874044099389916188599582948437755451306185885806814697559605269642419075691734538857498412372052207639628971960176896401642256540000754786130887055548662540711059292179639195625206285393801503540250487595406195170805126419134001078518650994019413648017370647280574819668870160949688012188342027456553765603702723414355617633578143124160597085654533795335616892973793845866296368959091085714647267310936841757381413200450651536053660708630142417314629636886616823082630544874070171256221889120997954008727277363604350472319324760048154568256258914348834145749701304955017513496421652363623759967122511174317569065869120143466283669214966744962890973528397734123893050927567035397588715023910749070931998926441148986010586813120853036646271156284814144576406115491933928981647262788681248349305754126989136126765597518453242410294339812131099423385920078725858750864163678648406555145413702846042499465284802590933488175884833230114704442064131655658781869754407080978825601781340671367278116406680464396111434300496826508495409464850066247225843164353360057378770967388565051271293328573256141397800424165712220104327602945747096855397140882814603132336560971309185040996356406298108540105266951339301115104631019106621496908644331997841123078585720998244187324870896211658142104256479048111100344876257373870943165642510154060141151722003305838573032587858946320548940716455531485661036590944125450399311008523633047145090122678273752977505083989320183770782135860174660872487333113501655692508738587629549187449883505459878942031530383323271129804344282997448626215764563244493505044121603695071859593692723013388807563336717595264926693677346548825149727494099771394332196355590002359052645525573535837333843500243372394951589359664917653647985133142358600934103021768173312041371318206330362253234039958140242990737362054405841064041174633702219545114317213330335664227437557756919316457314964791207523835973683225413202477700206507520962430353635433777061635819828653051405368033511010204799509528738595860221577958051174496341824802841459303524732270461223353876836643561405906556980638670792159225460636619258586948066569517194483136163334977952984674967939198505966286562480397320136914298089846591770258188367962174548548759169617007055688362747722271298674938565063096696810469334666371268208275673257244006645326024453755269365600510793686880076108180491366292673879887713412129926365211067248213615779267053185772693808670982904686089276783232949405587142629622089484162082619243473576520735415523581746308860467409048059523260324711233881287406752676928388776935149350874098868434021673136223929778002477054990125479677093594628370813787577170257299146358844234094652466323345175672709562236110546803923942264126143363415125171733851441227074108359056419686739098667876553902144354703497196238911369040968782858011052287831671668418301421651057169344078167191377193907598657256555865806091102972488146213935097650248794105727702179474485103063856642746318966496498329847355695890553037823480627606680893328266554294197760166200104545280378739333530631555867021777429466064861032464014862216844652324591318865264095056186189180177953103374516586046546753303067251203046557688603458242671748977443263075817670362132086552950706653342165585648328251443753298226705232696658774234460278900605954431056995886646692315259691201529782935583869091171282445779649823986732965774070061424192732077881429914740567541981556952110113153670281464898260729026591544432885767070451923494074784994562930643077113929950250883629322668893268906638419417597797960295025125730431756535287400433047893787645849334510063301625405973823991772489314122349485693245412539842158902924035927968555035980284606350350650765120960344426325132668277808017765810026739692849867592984396357549538068413126859836472973669556054246863046853357675724076736062253339151019214608884896151743892060456224648834559990063992070727720879033897669278963866033401129974869657200608391481864355107419266192439103378468016347437519853163959769655073892333220620571894781334848687517506578144808232887723878225002497676119991837547619211882987335351493209968150468551748936587100580013304512247734872797299023276252447728385632453816642674244968362391079900045081967537015883456421965493178283157902825294810516708537867012592094507940330902425936984746822579468812405107455794223346517473558300817913318218156888345640696222378892983849320107616779086455786960232338988141163151966869544355414659067278075701826409827119596685614745770215739663798178530149295418172520314012795311977624744503272780502018251257584537323572902593590426323188134096607029114297555433205047338579512892859504048709702591398920675191951589544589216274839887606141348206784839999286209836045155088432482317622345074535972808270442177734471721432701836335426670194981597510372745605529654999824915519929278800208964358537187866671143639356343999456346593996053658654377754512360563432064670634697148672882972821762129882584713920625603827004012436167482753541461303279146584416690101683450796197154110214867678262614620113007809537950229696400441491173116680494506342752236927855610622543857823779182878456692093135158822487875943849224934724262508592416736095418197898167372058991585938349333892712868185516781856935977998031537255970842546479329126362406487944374874433000764854211649367484147670383139568555077304326016730630817827927452366785934813673594510754952409616153767839872747282818189848798957389664197372121766920835896379969706029772202770175192100141060187677894419481958058099448259541446648409523214822192801177489720073352359170081847926954850995518022175672872671191082032470475369146675000922067887213351500938141428705938472709424224080610483770898897051892997817129935583121860516694721979767981566192985212995433892111775323772412783917363235268463427241431119660162918467545329329406359891218707704914333196145504880550608253999069298675942407151264921882967933354944197999444024433964336448545884617795287053725804877436123679468115374288698144414102484238089144592095548223692335982250559016599908527353946439577122990429994960620296268378479563658302034882281807898488581318456512123592906585649512844763890001639610250869891873601417278226166715381916214450125950162373449953178287207989873757440844380535544497170546840344284152745080644695221600684209932261352464650008663796192137845341007926484078943303167617020572918500532710197312783716811910389660212669868270013685607304608516257584670892563306290438978500390430531674350441435562387823176507932105531681725905886792401188790061787335825359874155552428389328407799872829099585924248084841903367817763751911257752562858292541791360692896627388036087678190157603058210732498778742777940293118911953260655713277542344303469700163457134578540404761939321312490779831599781662018306039741685711912722706833322812442013248792058466499526911298018950200381157862286833507221156753018223708155063773693382628839637848388688036120527171626266552834697330383288185644833112326322710514982561587052840542001367603347507135854880510093682432821750499465522804177289456936367479155797730323788748596440169908937751845517094027818571677929220651325020764491876680626127376605086957108971670120641835370916462678118703760430048301925170227298085382466673036665988773883436805581871056369941988240462957520191957564431772987598142873706276537747343626537357443088686732970896397331411161238767830957935784746889040426306782753017893747016008684150489733139718970732742006573325819395905636818412203204253600745447757172187840323762757561254528966394484848064336894979032559090986269968980591212479701088443337689544002441759727523952723754968424994694569642855279804997922530127723271518344806105338736809886273375465201642800666058542850190153730450779829894264406898584552211205950054415141554093359193275547041169622078784502533540934914031280820020592837115176051903051990777842049783941579468628727089715965124144471289687617726008207268474685083479364329902594265188930346992692821237187062615174576238310070897483844652101493382651267068856946262306442970449796047264079420548899756693809074328998816773018927761952214602493455216386831248586854499131456753299131414068952376611267028419167637763362937141833760784592572866381080497977365080055681097763963527605997627289314942913455521517775384021950428162711825552664642805284226251623866340329496628044126010147728706633995572098381637451847118431310331601475719018219006014986876457017463021712613140025916666548949100542320608757492162695379198163013331679280729403506851404757475288584876302811413503720990600947463704638638992286909270055877621392632711359966215459016239229766025313855643798515998574557642785217370027497040173754029137612852223230893073943333740287656494244317527260289335252679957112875664111944525569541860917145567676368836954488484117041558853609143024239154682500372569050801347453521692447472575278660211849313699257371641261606289427613563659038787949170313356990637053555730533716830305280962096759644150769612291465054843954697897032908752561485928437522567059315918668096565986865956618372801758599116523831480727266057639076424586206822704177963141516688641431431197446272974130067292360631119064170655513600594137388689798585367086928726001069348112420128168383505899779054399310825341785818231066749775126349757941363782186571108564208077100604488848626982425119057324561376223629981667959614274222791891919729336491109282564611695512356067759898978572594627647693616576898096601777050784763857437510552130427171871148541049028926507250135240171853235177837662771274507492531930624311387809450245839779818485923081710088905060626633278010538945710055355296368229617369846985586568216068413056581100808327497329843151582926795922476851063035679624804263186187897528078588714090775820095111063675068938159316005305756696483130552714164002975135112662667569574344313036001847520392124284631647366568674746922843463089034298112827473187069141707237448689992453155284245176503700761103663852770350600527870164390098547481383053076531041252722364034470818678394731000050693905187070135016366131816096249718974397761759770519437907564562576115292039726308772651304414345059434318326874207461340631760965887145679884269621205394743472165801108174731355331708454123347966176312901561986406355644017049596492691428420818749640429545855154937307387649515008614235547297724366002501906771794401682672909273516603812917095050496435498823203441828761874014280774828635838390150364579800194771235014710728654504669911517471404831421582798136965599767777540814592790596233273789575377070513667666979072587006054790210624595467865660484587690165074495456909769218497291079663165361478468208511246939211312776726506374708659481523658085063640321615619615239603389728371113622020061978033217316200411921317675680476428432388657222051297840891417089264763141776356707501770255939116972638418289531145348346890585422156522570754253583655277496669488675668512885117592677819051161187817632083185578302126793609034200932734994997683361233783417079297963551489260295790003564895088714243768670576462633617652778976718270370788135267159431704864837442415816574796563057947063304930772796576791465763171158846393143035029754045630035824288822068312346709074028796187039429725062142870920404129956307381882082148100514233121219519447323386912281060055932377810446607948748037960381536184848295941819572238612325320657044911141237645619532850832552785341522186451125152900661845824698611269716653746885756160244038831450607090570563052012265254734738199863244738413949102273881978599002961293947519183994668581618646446454116810720034778659390964352929789010990658321118730576864057041883854680283825678354568877955181152603854990897409522943756283755296330564330520839609529918675219165150909041513619025788486396211678683041226946233787666178915720189516639998061067397920249879702879182434000819969479103115521833805682022941511243676149500326925964465050199963798283415869857911677523592915617823902016539714577699217889504336730923793758162757261433960426001590389548560464542198564575267782849804181669468876694798774375873147943343264033569190333928536926842806832507306855768728622659988558522953783516348159431127434565402368832550581471101552159618014176366376251082770263026376017742831336835994647546700903388810326041675953948605001905024457463113732711097711520533196338120190138468228427659428141639822138746173697770241388614827510588639281333608940459019154083019136245743205588601513924181092964741374928746733882224631183704758295060326656863203164949081720074859646183982277516417946988118231766629800499831839481789185902796356643733133702407581810301157177585020384220859892860309223033259876408231156271534144859591705297645028163716100636009010973596828967025273559171422597947990461277513066587242213915501629781409866122610859389163906865139491624365293317775857316759627211090587388663890127162759362299062687557903246564873171117075342279220196556040160207881060528651687663247741479655054231396588603639824061868943437540286862450533482149873005857197205196901717649300723151238785940306306373618864706545447424875286797248005147930746052458706339676221333913863953139294048719656315166244835013422532183706993035525480377167025599068440037993557648723924054079603464973797383831959441946056573321985103480741337534263678324141832723208172618101322672574899316783628819495944707313674271018104511746104744743866999529740584970470287936272831214070080383217490508417344484669996380867524371075073959471979559458734712927682599052104330858475142671693425265798951504040026282058059379268687631407205092978457537216096720528360861659086228686491289451980861394344264741197553805730761568212116137749062861318159454477614746533712846240146260053069557186090848317763708527041307349018027582544221382951609277767570723967417220678087275687827303805465313027862901800165540737595029972934735327705785788599776063098817910273418614389101061507437633442899482222453240852782434157791020593307786334055607449183579521176873992029979045735819159204573657139908448126035645746901371477191828315847861281499641554327493211268352830085530881551157417872932635830972157327408691062516374801125039303028001178847362130274249763310834757828548913324461025262538685483628718668832443822824209172273096079391714462336168238953334883337988085165920188688409345546009848343359017003494226227276894363480396647297606689755299812648590939133014427483956270584407536071351110409235523993473652706350074321991903934481755670874944301218702231280791757355385327090663054828989866201839055398587225876395162055931406899717971412832969502020165130631788331198501492251854465135130205684477379458376983243902286196479003208990209545288177577911704752549231884703587202700964901958398170464929532280308360649068719124761105402915798999925293629438833676892479599170512084594319079735391661697774321783841550430604417254936608058622356239297206035592551336279624938764111991218454554726107049325278740517500058625870652898187511429710663317690569001078037319804756540947972715949834436030064253355617373034348408330687527197224944520677737181915553824290835921641017307127598908191856672513742241860474273957289836047272991239036921698310905875974097945795166923083530954810537131520089268167657207543419575062436095535929902077954811985263466035286320685642672293924718011186211629456830674181436737262060464466532331555870737266707512898711244628296262734710746938257608046558365326539402883289765050488289200673318556014264852393494185380140082808303815385265650882742308153470485756123885117501404240125507457906931279316734950265990541097174100050975985878821895942698109068416876596573617607542717912224500586095194327848960163489574121602507598133011986699523225766505690942539733298439230833479385067410116080997036565656372669978663070579194116483591494287022416360783388878479769164901366302601844493989464086059087084486458375287786791962847874508973360099239958826006866855269597530351714930825512698486058854675266573363618772227752390928262490603616640510549384859978064790817372539557021544416040836324855811817933975065666452077326810314351316688909634041237603674703316321812560140487974992144109123937592908102254845629881845544614659252263194752606027281823782169894821484033723195235816795817946668959680039507067284025962418784699780883582851523273653215745471372163208270988651495717882309617798943711460831021999286769913794516212483474874836058422849603734651194852486583304682209191421695805234397065848969452357543496877202883256580123069602867451796478236601350310380918009416207955474617533443422810085214557682308939642473921489751930175398285032434219723392132112698746433033164253197288540963451037507971151258540297135525912899423567135673188033635813576070522648379826982120485498998128871274186930658434718294861129926010569731519097159943838001613516877422860095601952202362252536352173975416885584401507902634683683532271916013317177421245827968051166805730629580210718142826432404793196513225542092410018625792789231070914325531457731013817861630997627548891014092646267763311999450798972137265649342309300744685149607507916968212318118848960251689150835637075777520171795765463088740753036253866705906297251941638429359494956904221952615324372930939636132416371668846363008233683544763957768522240843099269687886634728949324001358813592241452477819434478657999794288852534073540106914913514684044079707924153297431549115328417204630365353747582745587265263892634982957798405248050351629329859295028413934189399019733729299185525871979790815843474577071078105390795560518414768847754493035965642547970476538707356339775853927131803385332891854780750261096687062973550337668492941126671536163720389293366712505684395838071701716284202573287730460254543991654539159926926448861517512849598304393222222558281571546807023984137510077594332625273662130893290956163506038679654500029796649999569298833957325164270124636188599309585569831366711979230812288639888486150803218178481493391707100639474389350104721477587528116967754024733895010747471598377687335813894458880973368406032037344253387785258539431270503741222454945212029950789039418364480074536982979343744373261876198936736678775882117266958327513035030410979836388622304319084116577576262957975749373570476397471077227897986702124993974607744106969578093161596096184914527133588745394620860124789371482343791607747270723543407967970178427518689786462032920927504568287799451960582325092675829061334107622480318740682670451709019527781645586759822620669500334251966240112015081378230492616669148979696550003093125746197734135677659416699170601403186218065931414947587486277399500616464588190712071565906269541294221077930199822192658186536841588359317898074276521702617757847539073244716811024110370467912229227162590117028184376383985239148101233263689339078122368854754393012542349948757735704571808775526343451345067722234650785448571985774687774262950991943185381715133396066500680327349649437614145147460532668407119097711783917439191002728930921507475769290708017524352473355632367363971223567638765816643849138832666960276490019962974009294764546374981206775431207293760915081083297023485436257392575807522041248937575177728154393950300545729727912382751837082986017384635791451288699550053858183611083273639396179044575212346360976202811194031984888010127215269036474227120728663678833700031267104828680730725016230225292767474601694877580802686981424591846537601162631709927114303791795465139559447869286590653695886835359813418671744921110707354733787001406370434764081022131875686850682034550540095597654020110538828289715285895075413646457106169057212553352430762121550125267258253511273875040461384232175764081975546039119747927577067138251396569963453079897313503469493200926894440557741187123913414198871262582927095752308692136048675593638357310478954492013546683060828601891118945326784301717017801307544867083997110451991953511144997635255046758684155408418956283470163855916928649075758511580755202851381065210141236815523417918271044362779759744818973443920595725806864842638999424014955770826684219623164186302512582475405608552384923115658640653492373052325680626837677351360332806358935621074833679475384030529136427536549521793035255083890483128462806336782234537069731097301503167153805866759963010014339237553036453704121433449233480084647370946338674449037300309584396355560487846784218990529110186404828995958452782829190620786322709628485373747495040509244088366782174116491721957896050119567135438604476778505100156525528769225244135609637596067947273500305344730227417641324499057305973205474584621725598753386133642835615031600741642833400521593439560641591326402462512691339224904149324442398230689571307172629113204063721601351618392947235206378201035441460054907401646831967630525938856953221071353957589839642666815899202962889326402594234641980587593131034386042454354726960545466974062852240898805407462245739933871296108104071122193753993072604318160154132494264954342083381736440328191965272156499666185793428816387275847241635008343796595998117363627619448218406693430130254596634348440867073728178599268712969702958597860851537237423934596247772904357779777905722205001422377595072897315945237328241444616186026291683762982251771054560556505759937488381558853400034193544444729914592246257685354743842598518620346010864314234592733212214351961568434582526344589035704198227312295993836619064700439889134841772666274059585957733940421598433889693937726484919602393045525975749762644402594863552895478427585534442195799717895744280564846322810770417370171731826598684580577066457321814700459700446711234441113854528319665746193781301964766519780359046746656492307812540486658883739288114767817300163963792024787423144674526320532640187969848735008642115962199337092412191620611086472662278210557801532030946619318304482814483280512331114900378071715084733405301843672317517233409603151074382073337146692181478337011295460553102295244808011344869471399800550042715871151516591207115542041985134181621628478656115400277230861326504811475902426545789808104440832627072869527805315505791721640326870849698148409387785875171765398384065327773499665508520229219330466197845866829031666260030547179962934779946557484472782411076092169696727016562388505416099909213248367190941613039345979872657143771160095858677566351625080697720100789547519782879817764912411201184442816083552394691822661502548511052835272233628542077791569500270122991377561021823714819104589674284453120483538837652701532655214114986227103950792021227263911734211443928030518436174334343909785541897859696322844273958377421757837495089764051337731459438539893460771130794327852742761618119327504514746380424379457446268243537109223652376142916827001912417102092003518613383038649830668287909361165357443559593003666022753969281687292654670123212010022797189510919084298706751468664009344557665840698236306346944078165063989345609342603010100049054663572925520601717264294119336106397594030438182882119655404424699822176834747642667443213152959730467738735264584946968243263189232141383777830048291925712174817349841175435115710507952486988785901667778044149650594632995102261307728605501117995305016264016619460694754250575416950829055979855532042127954157946115277281099354318652904440148030483914703174343681205124261675500495185978874946437997449955905776360726939319348378420240660498803090879064806835489315001449547446625743017481607617497550178427801198514807139061167885396519098627570866251341916160885708339451383435407414406692252147600407922249266093786290009139077156757073533716816489831891422219898794869453465621183824255062211276813180957286406578049264527502431692018549470532179053929560380758268877553806118052329019664122573131066652020180778653888539947515684684062523010274666989776045410719510987064596875032930726557534069526560281805313096556949809768299355789433191726172677468703003794420987348879850058802237967961655231661684035047891758132353227195073891442141116859305077622136981385462047104681281136318402023204774480995700649458795602956933316197554788444139893647203271397483218210907757030096116137128817279931537929457703385430938681935944026651051779539703348445421772915389768091197345258442585606137556498208181846995037029241196881473503696188989119909183974520928979788198097599363336352384351081389800274933638902414427162578996199847261307331881252294153291024564565248854787280458490958005287902883835177284771317055016329404641353190848348103735795497268924200881250859522952778101732684567143101684823401539249904439519352209696541521008151051672658896357563144144356640910559080081321668759347413151731415380392745858366910633374230783792825916980678308306147012069800368639791190675351258295915007967576420793107189961224014190026888865307764310438779810302431453116708062514275934007990658096319670156260777631989390712022196739486982573663563200623536123751563281696208956167772281770284219553319647684926781338286120502428934383394799646580926392334427548872616353850626201694570933885845593511529579152677239696107423775086004671793517088341207731632964339768166895390051253932944824206282829671975315163623063236128032877855324240486503804843784900917334975540740123744507951873962293035145120108294042021222885597056021130828797281156308391654818145262500071612878818023329431058527118668184907795804134016267852918288902373994303426527886134304271897794359563284817559380073200522138910930694718213238087738454901111603503912425836579938118229624899124702163336783383731336747152941940807839685648304252122239315188315833782930561596292165592050495996734683313352652489983167903791134985665333116980450433926281728148305428870989003676303099510252993032246646760024290690560213520833056227834621041642317153758639620063021042150895693517960630273711033944478605040052605370305940827905571085445378455803854698906584013174665306722283142979161886897483233691342050156342653603558073701282112751002317292796352788960426359702774878576300108894227712243600898590369603515561141803983398327380493936770369258480943772721329995284383546920148382288935960522541704488985371266380678585843274571716322742640444780506256633847366774742401008676532487201532381189078208862858840643819165401792748466940904243210273891352040240142334932425821815293218361265829570341079550378080476664521896456593604381966685497952799306370691465613197923663160614201618402434268401967136305351887507926615347967011406725685734218980895517422773320949706543187023996764234028737426011247302655894911273020899920454483662151651404064354796576535519609240257733751320310689786962366810712907962297597938984004665816519938622165511142053405838095063247104770638569251236684745742023548918945719423626078164422204190030595956651140331721414146834088259716823698089585058280385553198106854809131942466368404133803084633195592259469501396888035922651833416592707305109100713834289365278332166598177012505232153772158800371914946074869266215451221607910283545936456890473091506750495775802108168730260074174600856812220911247148474536197585983204343181815549960105235148443242781180868568270519504892615522054639422078847746336712572379701363388336932940088488754551318605049198807633314381040059901368112313392426375025896583302242011566188801254168250285681084266675814774843925494934542062386494632755895933154063823332628943636845713626096608558567441392549305972875151696310729596436864216218951247155699285711940513282674615439694839611162632405484912175616028649912486913351150643765463122467437225699497797691397716043449321071644173982468892985940912049426324387375617671476957617029067930896696728599100839325282778702828340319948690599238454260557504945394767676933384863460503793287766270174168352875016377493802243621960123066531898113295559369098035605793007390589044323636655004963029568430871745223749057039156786525654682653146182439907104087711343924700370898150338098448634094366581273900701249113652619218872706628668892322545849849159137407253130105323330679831339568892256477541874842837834443843502468250563710666157423672543209937126065862680451809799508262534014769884950635179982238878575038650506649437287433417286573700891458425425588600768352203686891419893208454687338110071894154345961253617514282305251330004521572913378759284956249818942286027281625861703086737649316786806989387339067443582227967597102648911503487315076596171459913769857143667018874983723332969082261207772607913456457917615548598789891894390586532433368300811592519180494036831849584797949385945050058361334546304678155149398985350658554811496615727447083698800762375825250196524910563316530143747011502440878922688852478620104772565277050460635800550911072438553021890030604971027319582968317597503105376118972284114157215566887603386986318202502940681360051478670604621261297058936974212049654119058218010188223972187162862650605211896105010956742097574030612835263513711303926093551161309133432407164298534773734228163229085675055345781322354939195537580420901200097842201311170122294004863887839092502739041912975994921300829986617062299802974018522770170407659834922851241488039733842615653345079825193758868071165534523756160386780980648902414932827648370047962940228176810625057700368207708631209769575123854592963207940091077144994749181193712931575826470669434020558950816777142803387140613235094020456909204901838981046907701319512901456647168136176802510940829432964296623635222585587594994432874522088876767548282731727061093570934572971681562722138505788289511120347743327738499117566077462303076006722720380893465116179062634768039880272459752433208333139266772789439133528535353273281805919495531072869524490545629187880353887578110040114055952510139104966195340871750549496468275038234903852429611904768436649968361668358170189664587566889044411543196166727740999866783366772938139114746105800991016157919288669690599059484884441804477970237471374335010776453658756815280963184207947082635936034606274186569455647184405943590087300005456253474673836421356922683229266597080125413298486611156945808421963435650465001850935555120104280997009501385426869479890369294492652330515127249471809217136152376175893326370041416745405348318123186271748721946662086767861072311137108809234087412617157186472703504575459561724819151962447973454607746470664650525290112487788067201771933654662619956184159089072564181623946335942830121953057299737622737703907312094946738259662718953478507022117258837610907342581577555915757504611688342899640316328804921559619719328238508839796250920711860952535254638031462983030648733311448534811981014463224663484097842750889793836009389604897970899978348795692186752194543290512497758593401243130537696532812773848579022384133424250028245306437353207451371675193594497158839326526779967458930932101414040429936762755234240917849565762400733569485857627109903375510640799867503409705750397502928195732031473013966521692779752709909359335236072974999323784428682920512722851259377820761866731282730988977408411795410395861626775409128504998608555793048880575235417088767147611476752728189447864315903684984814172880169627325569446772499930467916526168618653795140207959213996167267539298634516030426715639978174922887060407895158100469080637471047717705001246720748098132161968865419584886360361445065657887025754539563725889022168434937188528793857621199987043999412634432889658193312430422067237527943055939932292818542812892813531209132417698220859735924440436410202883817718635084219769702730162351038566480268073487577268487609937804631702368230015647699496390760126251935713044770207842493454629238304659495733943143864992334007530602333623020559272397505161972883848103105371934366102096895427748228506904209537681480352547551708577147921641739662907769174852226637553859048395720105891990966749972872043625670851153265868252430835896654525755407867286355778506396523104304348102963068594129726516414676541829814303401590076319524421020177200795581328079419537499591498554043275133152029813443915504950993865165776781135193336084259933938070159398756808115776442981080594158290133131289980349317107707029481009055409018707620734881086158475033416813973579404037517966511719204456130605860969374953718904492095734484392468944253354969757053318634704545820862977426533227601596041603324477052868110380885938019661380973868499262928535404913686095364268635519562220690271165937033583568335818537983899703803156060123388420908329515904231829713616663137254650349125552377675947475066466105453169607309117140641552706335606754268803170884622682440073717942231518056956968056007915854034312718351486481124573658494537594164208565366798426006849453798971717136806693500422176556476614814277498240847480948270494931283214343968773100272263839223612406175816629485733078009623792514408996684107401072513863411230019973158518281502121288820593308717070623085585669337813904279762545310728286256392733682825264912446765764303355033489049100032595123583942503842696832073340920038764866102185522358651790151202955011959613110873945060132719404434011517220271956693087500758387815034543384148164076340040369016014764983682670950596539179114872896992074233207753176913468808725765320348450189101507503803898964706360636310919903170076721614458598074797531473270442487807964913962463286859394165307732926108315739432392093545909049212632675463921404367989703191931927647858467245962073178977544234475236176915718773015408478046963969762155305537430866125620129941438970896339812046194498211313677849955780573143930330729260705339529522770347092661015587546141328681235248290246737492212302268858429306733364045446627872942260810931890986321332881240450533702056382630699771418657826833927976118972044760971076860948410366008534688295033896395374670184377380886778621033263698388143367667532606741751051220537384514170129205642235477189539668343329321769403043736474518994069713755581227809037530353237216658546570440927197314759206933793849341848128845290781402452870163667748583781242233387582168858831781993632903114299709547885692261708917555997308355092969055058388119922911862223819571158593825290419380680220873086138003652440540324950459232638483541314198847062494284781967123444010402823938748202797915871650175038046148118894277513613578965514348888886396611847740468443680870334340256073938541381549487637884023555135095482906808502934885096688722847028984970510855693052076532975573177056216816934632901710503892094191000596161795303219174404333660354402955199511876221085715256757013539274726842258732996864631628390812643356138920882179853885647207963098565800304051173576251635619289994124116305224038409332574429930776305159292018130014207091226046060511724985946862047644306125900501287285460168236876781538403906899317826146774310720738592535323943993118340666074398315138492933491099215262177507489956048973882324205792103797188173167072664252228324787226265085429611657046893911491169321314965261916818294919360889364011042595406704082913772383020204982094420490493254730487363264139384527935459874110394353682134898108741468042192959326864917640602969904924221952796439203915780637240564538685697545797155194269233085481196315437249818381849082892519161499445465858187910688057390215452718554800873952870134492643001927782903554619193618254225543197098237817126037477264746726226982593866052119787302694037428522130897619880646132354813975032988861537315565955239257901973023513534291443805656442243146236927566424028842627727431033158345896793857325216575988844485476558005440917031204835316591513908841756933712384740403725433290475084128199090277883881011795793508051612814175139743858285233589362175557266198184993932531965376774975974692807259176186118969190116682221387409799125228860707817455703764747940494450004998101264325816273222804122561863218942911866330403475646714283601659088840235032514098308394396563058812764990542890407083181258664351807425163353582774591535765443838743607194707977285960798260288072669586159734924080710566566585204097657839991305049475331361980627597860991346677283745869814675312956888871180792326895081570979860205179257381605062323887472492626342019950715283229559065567865596990960152889567697688556464709742317835147036789087275686503329555701652647117432681443151902042757193387648187883808538671080861623990538613770927244419209463702452861608570345124017155981974687219115162718852055299165884207593515766071852974408675576088879758196247926061609999399291046686328249173773362799796023495679150510895536230349399164060847953878919823735482935828407285422771411404344389758417361923380969217514928288378868647114700833571350667433493505668185155286318386512688395431931095156817439856696749899377724561484096490136733737572905760187419853705864755085676305678712134912948860404791293587243483797373644373495323821093629114788488459734689898029598838941613881660013235731604696591702093945887469391486057877621447602560546066194342756898439568756222415076733472237804390061352482000947678870795334308448241584463080521179383069149464760730496851555745473208959789777876209273126168697675236173639671180411141159962108742718141794922553305271224641689710700200469131628339011522667374120611533251673911565533970264446318124255738361473988201410950462068567093892121585064633290250291934173896589850712787296983914248426159277428518286142436194279147694905934937520252190120830637520500288851999654948703141883084589731890860439988021174388418334900985172005667775743062022789568657068108129639065751235220704417360179201985648186207687593471309479518421370842041314496908341725975075596579953655169133719263387411718857193017429967600122733846174739057593009240699614022513452539801680843034243234676626429198900133953004061967886784141162768749136741634700827916081757635305522924727989227310240624125160132652391491139513070366193491099673581582316632709307714975814837275764360541036127362326277980089748058217746806913302801922149594502278170311927339549110119373129434083546675751104259971986663122262080305261649867390529670363317199407392628763283466547931836078706453525186110810226922102646127536870778787756923191541528808035437633583354541829701907935220868353036135325543510924030702109126256430392289198975797801903772817815566852042105170816277320160593743722176845048320941961924642168793453658930723095244096083649400840280647523201659972362928372398585857674234429944220078910851894957309638554762381343752838150807907093397373547422064682733018500625536307097278214780859693243605639820444841628746039753641762361628531907111022003230334646748482849471339997224587565890522128918203228397822918393804388738751172653170346209975803524306693103480315112834863829488500365803669152691840137508099410909972503014509876454746812232849388399307885208857482833716177468624161164350994490064188882238110769707784814779969155901590845194325313508468967043488434412309858222927252578177132650901884077333890186975090287191508918508551564200333830002520875958873373763538745215391487920579003805496074407025979308721150041481270853868268081312777257273607147213509822655676328440010270009401757182700082843707424619437072211406556692403084170950154497416184688214801136394174783667695397520034811429531943283934664907525859017998359726783784889195412315262001772090892521667533680383211714062501137784603625894880816185844961501690680325251153719426740696405809994100958137933125558726489703902505903179703600775777357674829455767213197315499667119572508044830758829933845198879254915639964930408885634798690278471643565884957361212872625405413145951176649450350787242434294280617060837547531327774401595961993721417117271381759701265563429876246432920383273957900841721999304047113220127858794237505595665540243147353408696107531066143917853484384549247949849777793758773624115281941448463594181701734980398079403134811371719213087670895378121628055760981268596354894348750039920815787919267649233309208916778664031335718875070097896555631663522817411240884627529688238269501764444994281107847768532994428391793215489855785693397733471173216020225834982071715925587410790824656346078695516272039210869925051932471513804334995830772013064247166201819535042291037603002663355271109434180010584892089296843501495773993478310768127756220657891777394296099122661374718198620880680335212256724853755664057598410787331761766363452491401307856482646462267426359020039858812196766673604697092723687983335164948586874144094575455085447816150677383946866638999377239030109691959314474499490233392853629754202238083752788869182968810088614591602214521195497733292464747953234361774515392692685709414814662018354128591160664939599884054703831607216049213323215312618972989587266730494057598355362546385947374685854729500394742208378836588162940803452444868721962694760802240704513584315273615922148070037041411327411598198209468090220931663990126570033226499364242633761306401323206902804108181241669087605116505647903310804144392872039258343649544601697602231548589842581297402223049528756014096475362844126392438927132055833316497836948861007249522258264376686546654417781718196325884344063734269448886930738884337517596495477363218537996064499491249151468757189878534964113844554648400798183027426646026671601157423298414364923229098586584057664944899095293208311143743697218381455643445589795572441400453625151569345269650147316415390428817587801114598250015440473294918327109659616619025361657691186319052697954361663496356890500404589582057878001074295160348664742665432842858300477702398526821565587311901825562108192988383399357825849230341212820330801608981936874098062779079846888179313257858462966633986021026713901027599630165580399550336066975152034167854346726500628945522068975380252877905609388033993246670211930047514480734379469413257244570637396867443105759251498549251184961371184071090725447328231743314470525782941345545547007681574184901425151667113383861306198793936454892993090719653044022556504689725294736937014571793746525613871948159831813134184284783916955278044682493436550802003714670709568636752162323723932543797808156268100688645397004346460407969773676208861895194761789942761929054503959960928612309573770005778842365512849293370790684176523403280857235132851531846927748911513763957391704532831155728257371496025833549184691502826386053416983288745418685420691064521941430244839911575170791525152357035005013084862927153729707669418238091581749154886571866175108489757609616292662403206904181561060495436185329472894414020224363303175758337639621901447225832314763034786659394190953895992897708453909066642695564045318896585844466860862778842030071416058024718023889570320368846086459851088445703518309060232355936271772305662293037565203236947645773457923960926336683010770047882388901568120379968776274017086012991407594564309517278956046270278831331192935660220685684410312844160629325865158755849052308633168017651905643211129698830429405699503463431682425625716680583784678065405193897976132257467205024797803001953937680279275269411653862109075466988695568374154669692918531193277060036121732981180551797101766370060477466048396290802714937415594826890958539969765374757482575838364551894212977240665460549565518277214380215709233119203744283019216979934645708856153572687457915017656691087297407817815231696085193908115401316866655187081614199581901046469875493835975814883440880784203319885070497203641430762637317454596364820254028391025831789581014281545399691545149766662704313327966271061302037179798557411830221146477132660788935514259724444505819153470141325356983315996500557916416582489501245940802835412451477011970931163000664665572089374520087642825576614870136194162661877392743597101239175605002990861929690535347603579091507725817604508293716491371317695543827392220626929813093586163630046280847701781319338859180222635465633673834011779978436708516327457677002874645293009407940090438136426243761430582865475935300284846373880034491653221960277999506989120472136523168445898820553871724191385445122315281439385924834711193559636957156098894287912835571146478763652669792077438239503990417892079828673281573933663242262193188854587045600716988535128310100361854629575958371969686140037475948654251529568541355830988073369210706869536894048650839475326618467966851724062539258134922000669405782215938583640323849642452116440421484005344956100359832300899868681235767793244879104208851267372626208483698662996784707892950287752562360016958495646626449213705088124909106772518054183470877362260391335420061578556090673086499680483850618763675004743534057061863985124241974001602497453924920653470179281261061312032268601599781905605787188487068385207800274558916755355561453536573191763798787554110323764104761204615751576129558840141555634002426348644126867595996554439718640553942947712743290067508737358339578732574997004880911933103312625839984168897113675570937341644847108996880059510375252330397600152537336084128717471332222273692406979599200700187673145562175227918270160598857720244179160462862805199792311819815891706527320829538060260130911016659101799713113754491805766612399994188007323227979087253990602091144345400830601313466491526379695658313233962826066241763050858419622589265472209795732895424772325068249928724192342471838376635307310753027871869833547856279777444297282621235883567835880802773641728332182132906599790579338897142529757686088163344705530015366962332333888452096579777003034215911032593011347845402581886520388676912101531421706442129993026994643713992468070477946155339086399501153928561220533930344232166661235936976157430096548223651168823341720603174102860653113944255544754167211221313186555608722589329424016434087877629524149238573973362960338126501337443984979128676699079134646008380719185786341229159697029631931232854944692924598212003882401828094557459460549367908198557755996928557063576692512746744198970921476100239885247358726235792554516781231333424801482615974146089381534107196936619767961384757954386086707312687988103111572838768614684152112301679918933908283942291270468307725683244372420735906267805696722505970035803297612483954079284300816334677052126292429421343373342023988442882989398290508646035429971194176368669344449291709905911257611350145504402889038092339303855317216306245070167344163879646446448017657809879486261109680277423529224359717299903311213231913440077970737438971050987062643736195538105640680207226503769327143694193511484539888633603929533534634035930090593551072705436412052160967867724783350227050456374523123535255671873338994228642364030301894569827770440142690271012549251371088795657101055643840738364863758979639866474141325306398487359055621182648424579641015193598976122836944061722406021257189402899991058399501223792432384869705782072114430204946488419547021135619921264542502422608292335927263674270633775595478645342843985871958782957432419895003785338235140748301826454076031364759535348587436852632818363496520660206461794318375395242003436331819954458803890815993868531367584654139921071121622295551865975751920064420730542443025454485055535271951931467347416828806346545625980793998799147625684071143570885650992902526400044777075268937387529371494512447138238294850483743941893880161102396913084922764198628368843191045670547236430467141265791108587688287033867513615012877681366126993265464378570903604359905446224340209300663731195202604185719286915719778526061722607603072819677331810209414621524127553172376935672370923162261552600432467928418744103965749090442140465277654461898789220420466773615051267783284508287733606785328164274155293525785655713505045204437736532985878684244272250495617063637181448951278746417470433845477807751437790027150578506952602674801755747965815669294544969620872723196969432456305199502586599646208735260101552860292137465345057253846780480891182171583205783284799655632171403287361430643691640117731708400002027376818320518835685889801915480846895340416904305238315132856561123399283063568788600896975254898084491168735511516939487588090377160534883230981123091718832413044050836533655989221960961658586817109935967724779743479378272328596574042849611377150727986428689935912088140257238044811955031666060132386038969577019564482910669671415914654290667007080425428746268080786650081874101115155413828570886750250994309976338477522567618700268946270674889208903387807805276293271150774011212894939873613598247973677595425028839245148654204057115025500460206529563872041563704265448047497121024556249494667071698610956801749250630854406379115984525347042289814146486835469727864016214049894079082706875573422731589844129410182900605531581375684211964072564877102410673931977966998028566121270583586398181124520909951143843412336305321040080993467031315239419943599553633660031160298757364445889134895114028268825640246648632584847326004541322135085855632555017164175919884749495674717555435529011797404050460342664424371520414718032892223003093050127164824684765347957020207225731966197799120021264847782356596469531910091660266682982586678633554438944302082583674492278754661920648179832353012536502648171709070217795335598000777577543690351628614908229901063513741531512387159179233565362156077842943930115649319402766869861649099586423595238210127168595564461072876073994171204870380302998328458074325626184800157910107506135381251582583543497506958343472101091945369936969665851020416363831381591837105194535369303137544544614243100728294664857548793951872488517229981883903452019939691789534991655424191537069630098353903554404137826082733438616550597383802544568726931233728554729620961158730244867165596127452436787179945547565946481461822815590880724685171359311744245497840239534154500245025965868706988468906350667677075120158291095440576700238422044654669524547504863433887686680653809474136595476800907487300398304101578876974163571981796832882078705128192740301810252732740379207647421076572824012917441306321958942140835251255401561380842840050550325719394441240369538136586059332736393625938549023673891079341620466392476204369316996970808980459803557764142947779886576675659061346114233949695301538202270796216920213314008306226594569213957522171903000636370863588974038671445995134013517781883475568882257083137151222824433238501577256692754103153024793312122270960186966456862989914032531491299351476512486009934119232213882758040408273967169748461016999162046205322791123453511789923992393552783604617904949047397781064729708255250746815064633091840930502834485946296696010182593207903280383133936706258052890194762271571003857475253800830398540171252152005734612949306476947155742522391703543288542258819400077624178165695699104965626972592869172605245619047532229350954926547579264305783321658070686119525896518364237649843068458301788394379107886423923859455046562570770560695079520083125776693110297125248791111298777325048896884796309786384506097351836829568743747959715291105872073113289402279830482041951605011276846949975887951456017113613069763869991756590286921838375126032253730616332805909687397032431480545265153246253249462045838756964647201296231258616093894461768525511004696923501147964486525899844218722010649407694281769822285960566772586959841611081881880851724902943683702557811345746915085010431349370657542756997307172324933102780600375446123516303942465639700454097142146014337539091315105912310046475888248816634680614411948888468530271377178138995000730469224436148116684619980014412921148992851199811426583869793140629455636929203659180313053202564821646994759278461363299878090768849345531859747655293027762200732883704560654237917569984863211426967257549393216802136555120518905451039335929673308426687944203545526939813736370111610072656894574724361191319242671273102808241171565439522887734468702362415502362168608595929040842266618131872971640092975026736006146817333915701457094922138158866667229723094666126918034449217811374301823057224276150948249979779051581452000578612554528988562756768175133346004399323202059617848678959526155981767866768058919628238225426292860028457832789362064151449004406834529675123384743432321818226801502766350606129624840006095975923681618549656618416498574437037606732893891597732071013782058179956034074824297393111183687278177662099318679935603690293571025729623820922216266576768206441562755522717481441650902253619200635034011652610946649089271330927726936884781342133878749254676960585109075250939433778067904864213261692257813020077902866915590888122871626364750937491893338700809764049469563669136331800231946022419467109288850385151767249332725663710664061594419543980471984107282845454373249069143465488092153870169832607777803516451355780100836604699859270417542407384572841874129641500773964190813627487955209177008967400011344992009462203697835896535155029606079208287947628835143610342877025740467805616114776426267814071735653195378493618439443300868245054160397021939594104690175103545014724648488906579121758617575411832790661032452113011871557626892635905669862406056451702218947524228400562325040918331334964833130532426629516663585027011592055866798252577255667423510658456755845186284043452075816739914912585885273514256662382483890337363230187855641649230106224951846911247743589040189156439009589844052548911875428957538494414576826278022572063253410849066920516462170450883183121146344871429919959591865230311681551862060895981481831889136795246691418513307095966932381487568184000268280919372814057422194634420471290971633928965354030963601323113712616220419549701549085122840353015094116449891832395713704637095465345882471684546503707223661471129012435882014786655732444737007668388179581779348543422091545849803688001263173794130994092196747126121982973060504777427853065046955227521117735783223723255359267527253356054875579521273867977230132887824131226994847404893814520950548765286720273704949607339196901748209816564387532263071433763392798329458613626399965775887102596106043138646937745682573981624252746039269517897042829221145309423490935236694575436761500290255908843137756186347213986239518597312616883610519075634726930395114662999879680506649160118724053222619396928502654345009829138424858108067329926978230066604812272083045609156045610567643148557735197529907184857537292249909647030062289024394448682747432327176444651825088091187243484868211714963260743858235191345954304218746775655368634390892716955283370456681448571329517594373485612186786101485825369334181923806931712894018136357592405706382702877725583452203313808791689987897285401661946603910498959459923133951776540084239107095897639402848155856417980044542177182645540813198896853012861414690839462943736663427431848760085236841017608276989374296206442087240151651014208584353769393790331730114609382904004371223714620886142920613831172322184873483095458913638756228824576697988066972439932617673163476515815198645554281998767052286256387021547529844695010128647811843618373260076786278001195530931882133383131782722667963506065071816771641380092389100723898457777109703417311724775766423979229285843223958524998318395753888341364029002055370938329415041318067441532769520761436428235128221327091014129438016725079113460632718067859051212118870461955347836758988795620285111300665346581800511532097266606328830077405158530977238770635007346985134676703554377111076336346106529972912432883415420931905647501617060532904063742945802670930682257581457472379770121848133312886536942833588107997198295551293343754225110876468885718005877481095377132777702171734923013778627086616209799307842822930699881526967637546425076277555710582785410107960539060395248467447732701465613951842341413867773651321290825236945473511639302383738983517824192039272892584916287334261624677498228032813457553740923405806034007385551237294106468839870091278400715429991454626265240847976920161817021737542607381570020998172747956501802645335350408954682812381106706990435664350431225269128800279800055695288675756922574287597518667565529859737992641425899053652315660607862617247253854158251727687473781179844879222690455866583484171884873338016824010396348826044741831700246740349177334313404473696463860185837474254295592943765950932852976933258498359112106116936616092129950288723303860599797052501086833530607236670780484402023636711235485538054179111104116406647176251308826761129726184184248773031155743447322704902733485642660718364837766939228456745363776789942279138806666031982350587495008045447518038638486746270522944229398646054174018809456473629554789711498932663011742087905543711177593563373821017209876258849161015487615922905762961305898278155653638816414132343538283207784543446127831708268888205115448080833192913186079629146161867017438908232904784588099957562646103186117762179117754478470482856150511631799619966429835640605708742720905273657584968885267133031494242939279927992945866134050893029406605197015615596051130809066180525008899280116895223971169889027467870425953088843813232254783782432440091064582281339987734269017563034094894510641980437361525014843864977125231686125448705244075855730553418716113983702691594983891450330083848889552412736544556574832276466721021034520938806312868322265432413733416956343061739471261007032911680087325335575273994286501970620730028371359854770247802168534271067663960135178368144778904495967057755508364055806142346950533888472209018531309857694280369093729838398240046002030409830187021496641610660176824297808148191241014173706554045798294387070697587594126315921644138370736034018003484032350940990419176716018334750311890839206197849183342264712308079662764355220347720369829691300303391820714970241719967175844413566926087891815033086778044450211999902497109262822361456413612457580957369657880125449792320164781949277030320927668160887474308287644279498610552836787703721595694788427795673718795067884950951408185227165918450666809170554499129870502496753653291884779416425605383672844032089626198487186781366110711474581683359474680642368046954432454664195113842893480633125806218924218846690256947479754190406865154776725669825089302349078722052192930262218787884731471283040319699359298015257795203520798332359248656420372334589513688295936712760183024504152626021441301821402209317597953756299957501927242052085680450141292414743732515893415057653447285655126948194146269338738550900852709695219438616643105486491217082443311340602743586714719870533901578722240420798105035651816347291026012746395056724877542909970132575664767766947416575081627312171226594271431579266044676206925914587269985260979568592344140176128745352021570925887436127616852353552467970185078985449363862600527644453717322998815908596062014117478604272637372525944334955245095558642786523744608085760894293666733616582151657090808759296787478922733625327077477966723600045296172419364218149026616326683735457245817052205042596653049116440939210475457330494229989153663347929212875628217739715840390806142563683653693672363015027468651247008434296382362064234835055366968002224693814215429190065336935132394459677036248513135013533062926172296228243663075448508285457195000432634423625353348277969601214199926697478605807931685880585976800380774844438767417959273156039656844232439556262012703993583261832152793860017324451681804174096800070005663745381515814652162694604777644678868111275521480540929098144812573544593763989693238419135005683946737246460303430961987212322870746877234376439505444919530349453365038258005321888267032898001726763317777820992015117760967399025151407971292177992289292929464843615713757825849488353101430794996528853861160202680132204565694221270210502310811113887387445118512342212003305376289589941670850855604727677632869191023427110399472488161410379058756641394832385317120911748773270930487540788806506281887131385254659529156075538775877015050364375036516000611458602837898218461484655272447565155706811113545751148505976594728501785053395429338366590005460435389597996678998095208370689396659817983876893372147040498093301374406196089144400667072272979062517267536571548116329703371414430864131853223581525971267699287354943915983313512651463201025071770504435152334900978942054699194774488049245254386005622261001055645054127544930041073964679011771148870181565610636727632126605404357823249988052864051131101119463752829303798884309790785195181310156067752656193543413517460614435485363448706111856279856975569943264843195459831518610029084652933012144366545450290203230798496173420530464686493431633979362345746088515336680216616685939412110389172113385033483684399054055125864379147465681684268268217562085680611192760463652133198280514574518573147995337590531911930289104779734214090683424237389934091690209180013448452881491728380292237829856524725854584842720968511859055965455306996003183721879105463954019537247545131034561361100874804770059392414118567617055275643107648402857602526578423696237980395026852487854189784762411401856739526094274104049087324073484225165031364593888024518020323721972272798128019010619614690435154712767181495372983019578329722077645725055663271289088621137090032245043944001124559741703549198351511888452319476739877513604633433008945324044043007953643188900115518651391219878655850154825400366294047882313877452914175951770119818893293812059467561415457047283259074929651837632635913325589056851168701976393855244666162309321967637186929265861752952507089668922012908739151406408645769424898017233910575423456041303345779438861714350725286104934583680808917793419964344071479252213023178316600713175758757189380612453136824677783293465203757184632391739615342972173120552764826378218672356491340376070664422344661451838105176896566792818256567486527269235875204565089047598207686761890958703261596808176126189905954002269263275291698431301255332319675555803423600927065381469938796564333955354232798574311389010801887149652455119358950307866473964467409822010083802882409495067931848155409291992261711430965441962774636929212632164030743755536586465077611332411790200404011643365560163769699104138759474901979662680842565892561996763861969234657084421688561218014689395265371890204465762138727265293890799246945050366944073024780210488497790700499627591018592791361179327821944160564958239219321557202639210460282559271636948383116437774508635391611179499490131916600977857948671460532533692746712557189921753989808306793564266275804171469498661601289117063401840067386646832001764459103867396450052719505556572059146613232078849259615480214334305069355460002635141558165779247599466455884374119498410401304490042223035889382946787831154098886166609901341601387236607969952445246426440398510646788431057349846777786025219237088212191182844080120205977413151473427619736234737192523757531360867894362406097446976129503034045232655944600782726473578875314045288905997833404193066906992001114536984257975962627644385781429659626770106110673640623244648242397048984227848668409884939958503805576345980745080978958609402515578398791077554832418020831119403758747796906168465762588174689730540263977121541029937693305459382448657908048145299273229229135493233475782241899351552718617289104921823465602131468987456951416205541418234878445946242599856472495392956714112269933102276140107453047420251031158889080093988897665117437587500871962073380452616842710458713167943274176770699883245568408261318281504260113361855867977118382717644623428602007931507915417212290797977585443233611239961548348322791920213512002216217647535707931224794768661375131136525404910808087638276083194770557331184411148627618887215083284477317687448470234509689763795611053377281666679061189272551164663545788070782532573014789623265589242913659815016627622183027984741547836058697891358697519757324943736046627018688145261787600039098435135584367615839789688723874311723238112469392628944566551573528374863178323816466025181599624117525051191523492843469264973038313100393145023541587891457053212144248096108615424303741060504859956713164818774708554232256209041149722017475251803282715411734696653381604056819425458381040456995227867964151907040907374818986648175023230222764156914816793056826132554925166084858201112774847450021802997102937474475477707147672303257510080604663271596563180833322275354817994994527140726925981497905585172244043075070127994724371806255360330143834254778778453929024497534289362714280436472636808239462154906559780635156566849936655101052132158195566142139398504427380723031650791946119785419359878483306299576086801391343915583663164320007575045187183003380683800692427370354822505758520698746232728636402511357227832056759222124006818402315087186068799309248015765944650167026311733932335341854681031352595581200296437518927917918074125502904367445760784330714478067966867036488808733392431143740529657703946449511577083283114776102475849737195690171638419868986744989419032063719172854416346594465085494576834883115347445769881676717842312026674663838245799841833280548959719610916679521775740548028701029504425029883864355245759346815710468695547638341049508930065702707640623210720336741525603275016636695247691580134887324541062431512394957894652591370880228846643620350200724818784864176448862079023488445973877150495262554167372077396128090056144249797031371955371488328363639665481336127934431131946185143344182486117354224399612251265896479384021951989629895598337893951098252460846877593152137347013548825614768294848356050401694882883724339699061109306503103497475278627580098754431849465011854463032198983855803453685839587424915484817790290901264769438326599523213583873830989744643671513199779265392392896646760131752049863692161968612370977454527042863568530247081085792969319231159223953141125301821418527015057407949024168284321049812059224262217485543847487012229808941540451962383073043919653836229555148846666023661856615242931320175820184122704478544070422733006121965768269851368708029085297300693186189704045110910984661080412926600382678633895275642793855566306309854296697569703239153827945554090787441251781738681936752165941583251068760010557096167042678588751480119561743521468231257823273129020109398459016281753124102732202333842822473771305010237786189597385463483053913254850763476835553887713901711137974010037551733820901818855223356826624831501167715551864844132841113274428268506439782363742816295038068282783468622038084954829334053429030215986220371079517615903402792848432436393645451029363518619426744783363532266617243020363918840657444711034965061386904716044596179089468677241427243764827045776320560500859073186157181990266265426783839306939227188694012787188804518051395068206757436614191795357438580878581436906560662594613370115382918682445261548748227525936766048489814122741110180317338237041300403591231573578956410536993864636135282081131512671249852992624300308845017407779945947014417842480330677966518926760938765218338238405110861958620744185108129597729635299932117582513827650035459813246609695936526828942629979266360439356152917907281310463537262711094540106901332629306332997565160489260057474151360840862509690825453517857515229482126945278880044473120156846158164604106741014093975692910954068379504687994614524839983125601505294668499667710214195966134123191563593952787413319015088128286491956232230273737607746970571632290271669146536380387742620501243104611482604513364689751006876252560154398638648459701441151944317752594414034379698393936848300962547137016519309092780771279207669834746395694485984005783226273640155305090190745921843961263394152183986791465403362026340220169198949393283678891950706517164784045618842945211610033279578623928585360787599224758582721644584370088922090291793893026254364475254993971640989707859128843400707812934709747297388863723224230309431468773803360516790931474306680941873223068651529393518556215201160078063118848220011392365205807770276964012190034534925869374952586035698059819781506890520333020026636479260188485961502547578537156897720964915783285392266900576913114342272012046942191479826929728326901532815488174904476856980258609965081895881154759035420717228257382430748561628044990811854669761940696522870806843757217830497646082432168171709089116870438605352416489821086019839837148649216732110486234636845218027474694367874169061283296741593018772211480400727450916088217715114429663573780502503567664445482478398412283775977332389769861053249432190866722397148388115452083740020018667609007366617786134020876918936579456164590992053003458154697349219981044577603721226241327253934404577310311617326320475432296100872240391429342024119905704563275032603369832677941891129382482461580118509386923924469985284544844200604876844603637163975532529620618189714283485793083936112973797678544888851331170591522584583502430638829696460654731293246995461009511758183146307698227297555550754502799262894377643593022473080733652684405460225296838780341802356570735169482043706601524718882895461491605862684551440276148051148638771422544527005464758852276674425095501141395814219450546317386292833091552641350379732951259677594963980709837833558023765702341388001784350730249210196574359698363668246232115306547561431976762010376269130348932168486168169096414541377611390354885543771797670739339767514704848497325819537418765208601881242123015404389405757288176175561458795489117723060490005009406524599087807921365280772826908132655731035843486555422650882884764466862187705673690746493893528289415223857011945034353415774780202757303196884218936616417388864032033694657198784601675892748686127569316272563609885532899450116309333820877382764111344454021647446403995883328740800745693634859482642282024418485561402079262339562785095077073780999401359539238232490505058113372212470184209814995415176194981002775616280175153264327421939652323394538469351919110637049709536132923282139665230595659365125569347077541477306558274014594598779332300751663353365050068793117424016148636064298244988079169539049840210756061209764462561777718570720746204706313539641287830774661051033404691073946693042641337610688135988657969148595411128176236500574861938088194894525490619847886621081353471561314814577954809838342226405614221471437571103447978400847338290152277874388721585081278487165174906018908794955795482537871893223954504403774071472221816360058154249422239338756504734789838797241390584332456744534233134740379001963320536149560568537675532249569523900043698351936179530372571018780891897368288435417313500816989604200292843408038857662050497462945188098733835552541117159274600703005855404722484043040971609845737062785951984570133173505591245125472400200913535407703263174780123138680458002799933472386871289474112018923971050068761027244900779887335016275883598904376909647629029457417810517160423256485179327981010625445877732075760677586647675964106333982445368772467793450765266024868307191963958971242837391165789443209740226503859112562547557446954067820227625552407574104780100363999005812426782606989142879338930691955767862969360879931897082678419948253168147828606711658635409428830657284208774336490717781910660046671013259106585675908340403848052633022233021037239936740019602820754743437496821572267412671221225814262030867921954660272853747354755874059421127497053990294407273636251065995768431307909452075033793488857381924920486507460291870089259536158772798610495396492039879354913271648592941246897006819718129771263776313684326045877663593729745431887182044706793391177960136312411927608386667728258072057398838618481061887102943384738362815077796956626161509397223548045328327111871076732749147649329143867636235274003852548032105415168209665402373107071851221151768557764563882168928639380755042936202574974625142831415150239504063051196278755083265429747170263616072005100487658709980872369425251864189915868975842692874342849760446427779306191559698762059747660231955410238289541165365154921121295836610227796078871456993925093688402170412863908264132822493389599685858756126255938266777556055014248312081445646298720142507852756002457263444353673037703262824574323658822103900629154175407468339492803673653801523319429237260108941867621276821239577422144567032410392389984758071304447290492705649680137592579855130527456731489613034044547112059727967096515105457283357231060215786415993688951700215354818117065119970336725269712541785861618585961397576128537756027193581635055535103617845414759534894428141339211535240287661451391864450365550980590457347428606890496595393138473564265862307012271572245328720765083359265245670316776027959993811712551171809582241589732659697743870123029656060871888646315481960593363943189490700088251734529293864175790016456966236177839545248903796958364738112414446816072537644766461311898370194058149903550311460123606758269110511577861583089073904205376082636134194407441833056877692835774106100262101712111104772806511661451851112460165134819328515364952991323084135717419371869520707618244423367516080994271861226590432191832349789966418094614429421487324176169488333582964932703196902720740692986954039774544286718708146026887131634753022015688700513077324065907213962985939958719678818873417478788556498500368579469767828215674984188694431036692573118593968006796073312785119697812828678631077259271700998454624107029048415400709852926429823102940861113064533664594256086723279045312845997470170476846088037748052692168630748981889693591764751273517691246196486128841092349746284811837419191506186764524707114350865683603399236509015781281225932639471016239324110418414570898046092567243974141235768954167238803660629235379094187941361132303134709796187246614294879247230830727249258849410008391681288304520150888069724365570476572849182649825031958816352066583793653569656958409710095281567171518337137401594481383246909318672200022058952902497324257377645452293691372962528082685371007204143788898430026436679115269037361266729806827589179223690224464344690106753614475962283433129278041966499762041680382130360206469098451760966987060027031927366110792415007404440185669414632534072122239683026255511377223527431535423968975342287092025216232716107875667558552889464843676244552606944425797057287477457862282309061470170633619423293859268242751785859630457390890371832370789969460157500818578545498887555497023034151741490234725537352680198898575928058600399494970665548688991201299603283487960477388721074779809584072691054699070189632459939036252902809004861490116770788089496426953657856159094869482779630380832199911156348302362520665130041867062243443232900522069377276506832871116521430787630658360481618807237336277244616269633522256673018050477825419590933075036533477253298639826504720102513113125987593035469171782287699412222540390182347399049277924799489553348643241328762302299935846221273137281149281944294642674473946677812971122972678504908602766542874179152115911297048937652535932263212097936282144496798326922312865194326827407028233993467662410319937526577706324992606515073794493491121961849491129732096572032696103874186316445889873252050156885698984166181830021493675054680660899377447453686265497346434899833858098538060877824324910309802241036043732465904650801151522531082333733142529002544451907067999060296386785340887230097650456819533514810771725207554110216998270264443931728794858211597160222752694199440774478319844739832440264524164184612740286373306694908735845139182439109460430180469551531068811600193531997382355435034154791240317648626379040290270594181653519169299222592517870754154614782142930175885747274647677164996248099597027350094981577055965391536635229578786218540059001898707120298132377713662827707456372604542325592530411461909313370193304207828796296340179075573641447141513976831686435429582778208123514526902443745489695260452665829819427446140694195174030610958552620440714616731057947176618204866226972511778741910817027491092383096866992837038754437071171756223079474179644444472744758763845044350219114367820455890132119894977737082093052353655710838415095769673558897754115996689658702175944967880659960850061534711651878857124105474968617457091898066767353530944453008671565940592655043955812787851575979937399725654236761065537855518254794323520884932400111413768713293559049630871123329405867593222984850983066076414850365919622180017813136232047910176891485203710179340526156999586367264384564149673820978234412442231269639963035345555526576008369141471104976666376793536297007705527169166192606317692381589777979249117296254665715904996100148920332837672056619404433813786847725138409847510570204544976703508742126810200727986472909482912862168677962002768312360778210359643755234598902584449057755652759315595485792963039013721150133942351560563924872696462896558243516128344762126704957087278570174778450320693033457480431127947520780018917013009643460131967666712550484817476809078671907957083537444351363526578614165874000823184447985108047738176968354671645587970174377516989414701574051682697282225172008945715811359066760522009173013464036421072186835829775316320643119837610213931613523155978971987789512930708963911808651477724779807687811966701062480232981513824422200873367199870191485988022799562224050220126379809458649740874774181145516168417930436803179057182249204666397619478582281468590780462840753889473476827529868195951925081158560506209761996984264209367040840593809846500969283669297951583735348349419694653080740939059001203450569666717075354785135911415082935526435013033309028305942938605460884981209010179975829015757985081305125622221375104561308304892053231066798738312336123114144191864963025147600153521270084003705414717964538030709208209600933234656080358891969168252835097513344716129550644178448680208065853997751274432127489653354689886013322347878538321457360132702867952139295856323926418607895112370763968894795112305702198236400431141652407655164096044219966150851839104332012760009990779125245390093842337672090363044944941833248778256309820516871241650546147649916311185810274259342155147985673190493938197968486664730240930775318622576054063424838900971057201025288095618467468724020491999719168133181865729449411505918878667298109549251972198255573776392321754278504959815436858737413073953192527039259730703610883137061262381180245282938055680555068375146985279446571832754354812834837702101578227467448785516626230074603824695543261369187509341012567087369790940521819061581405614466219735127133926099687979503509703073331315379522838766479912461585169300147936534079041915387471977677864079774783524246963025321888834862452102815966952715090459346487626177852949461189462491224567183331773674116573630218330776194085562498066946097997796196972226554041183317988053589708871835732410450491417215281297185468978956782582376065188710154997986181636375439946409015806857962080724665570213897944496354018828166572918363673557748174186467018868107331856135098757851402477478425412252136949977341004491485526851123562860576970098479998558559191230092843069257590563420069671098477358636246187466758147589392583448789180924201801325249575675771594370308971636580233688972426341381442489027007382303852506164170760444954501722886547199076083935803452388744184870987579739675979903522497357936544877468834186804323347005135504233000135340545701649350672645192495299322202137155465004767966445875074251059520020557646116593815449491508262135671596264287854900769676149013435839441014000968660977049615335056519776410396296084301337732082760511857541647015285646989136288437642036672579108064283104252702137616968180985902447021034557878808302985780388911116790620146258956346527717822111134091341674926091080031737546519330902160366937488954037366087967989489260729631130283256026722704750994719733889321483860448937053645733313300142829479783519191868803750133829628531355759426793491867907611761060034839099481691940894622874746926598629863721203735768429841586184996347403647175114328533799632533258791442512018288304101220201396397168573620093616657238309819318092181725360689135479090363973521041292814656930671098848640345551558333394384621493432700768017114558148919841571349330630417546012884490967716336917897069911554752092079305887294957211706514405820040815762263957117204868626827501655773119204708137389599970261574639990148232968781910106165291505288593344736443146398727678326799943242391755144491576496417919243325171132469684559027756064230516961466702620407655346227180703701814387201610089257519008045111038017994896883104688223995507855688560681863895183875368076359176453834413798678480989407455596930602186053046954904911911191310902506585707668293939544995515429000505172098924264393051253798670181975188604258326374469219818404815300693874780002047953634363079890490532985121891168661223201164094903782414842352999834247952384166812225587983050438911224520724977536351793060012162065572793452312442521321922971932723074854203383254024805302389878827393251613319044850415883380959701298488433677692275583045179425202571339562249841341409272017415572479989109067963616628838180706576744811233054893339846093469313544757936234796496845354897427003590270193542094705966941397784218774430421895779554521312606167727899405660416151217345685974738200280896596172521596641112428066777862683061325354515426828237970735956858568440867243345380734596932402877312367583801975817364450873976637877546693688347984243791525438329682241173378909662750632297637491614666267509502641569808513423506426911150200071232079321011445031044334493123142601472666160940662155302744507589183287353155855499752368005936087776153509193140532608469313173977444578159372003742571896270326012393585949669921025856733839316217583347855396382692210205596129288879971160539297000576801074100321136821239960836967131289108587144542957189080091283307016282686970160740687913602842144439222544606685659413548239183629660859671013193671591465105549365046848486013511058502772931115461651811605025658136401789676035831387823276631291038404531579301662406876840218058549754745325501458692089398814254302759430232264141445438348298201614575299975380228959034739887862688879312212057592291884956455838854975643135006925379294321745796214845474705804120666770961371019551263446644409464484085155309592282971907063280589751214937670580366769950553335196338251537386102369294193873222923149403984897518606523067398068208252952930431654970660543737839541713330547783460102534512810976384435384343402802628180470490851330603251430565251233458358297211418785288789124318308063424761615786969601539685036956846057383955203012178591707635105549504624602957476574155584501124655679695770690221526115627274123894781856424197552555660368188171264753667279646217687895478087470402109001572538043686237836689158697004336795064551917756223113283970986808036923039781521294934100792732077577954992521078350002081673086348781071701571090240917417874232893582506146597624504225252661004077524741762155868872309805996954121767924753735710350870545310682967245924385166784618105429297585761458424655124119383424360270846950134106261164913715886882402965179098676430819042550889060364763010442410627387019823909613976685754024288920532209701823161379466950033820863104441387540819774827790675693318541795180883825252692897832645529949838062747498783063916544569618232843828905393575560407158989963115452507058308198060003765222483663516743487712165005868881021019511612791835809366780591258052819345897368508984713207959471458123076683908649706270046345149305687829730446236683902322738784533172805710393876497547605049746619453830307139695843140116192810822204576865812275103885781860330485372754782133185958810991172600062823389983664062399607751388000307078481996801859319862500793051260818491723888671498364891467088991224382260650442565706848765717739655636432958318233527506530288098338646834727139159605712766677453203623952523510264472531907327865236627995598119786306853188476988910111607808945792203822589320769079602937948387329297353353119903814074253559099060077833822961148120454007630310410811511717676124125521357467841375465823241947572772021521748329778800249717787658599461243605447577705515115774381182344551696694975850518546166944565133751136168716680713835747634214645599317740668753788359105331796082383446875308182378758398946273597327048161870452798127123070155182899380294245987764455453420698403441991079676138206594555684155446070846047085396264361944666417990740764642625406539613895910117840930374768015679840033331006723031504917740459574377223730585564311124359346393995412330776021018774700624254595950500099714126240558320926667969915261382561564309682701567761057753605533332180467601879763066503453933316308107657238640360921087317864174818296442800497572883906711597922925968308660317936505375112651361836555238468145856342761077523932178412845007918732742937171297857005963911121724677053108885618491466395103230180600724621368957904435989332257819786773239554257203279858055622545664991464807757141932045765948430665145631378449524568774639645257230118032776102385138063048957927304764380398520777621777239537288128392122891668100649476335052002610495638797102325441260800569373348952955137716681824336818852675934752538813834619977868297860460836422847523828921272075775367654177355152982550505262819971439185708150367590393677519770129863478816906013103067991499874065579779569085022159271456695849091360154767383419988396172808660483618683035952627736471866502524300774282110461536754593314495418632242716927118253462580046561873104953827639948768266347546747294425600465625822589804411628988218109632903504658946087325980057591189971047701909055186028735462955956250655491557303917762062545251356941933310018478381756974102443372907251548584665232225259317256247530335531881472422577282276875872268680937404553081072745878629057728292510217132367987521887588217389254242762579194329933650941294862340761492092074284120986837237463847051357923989522799336312228868035095073548736022655240370916061538579233445575232948964841170680965655137882640608816920585633561542259671533140466574419800691281823338139696996403544829860667181838310645610708886241196042180858673840259394370520109908898177209058030979888916593735141049881887477994066521919947801706504483274439905682997092636496398674217105575787482414245213808728105541451566277316419885657844110688905043087885339679210698084011254489709617733510029153978306033656411764166905160057927715756149718698310697685593291732886760251554751609261340824824424093048573692579851501233467264750922625180974141367603294439226792343330780848617828099662041092358681290851933995276817461873215285721739530220638709130326317195095459805898069799023507541656813548301722214153133391992710171265388990459215098935730114435153380214317889996290847172936311052553201896558286898333467639897713185137259685429084317216778258241012811626153234868529260921526581239817011666251477469750451575278190712305814448345032454727133807210332783949312657633558885358409741222999054487005542674320626817734661181303254164773207493245154315525464983246793554048838878360346021049188280455202581149438414456240338543407671540184902059065491120646721896192780593133587284496818920412165523904493614947777431643885492218685800144786414913486844194042193677806654059485511224081189255733262862881239817074150571512412326644149247019515991770275191528684215466775711055169362727770055390619651032868884070208892812989100935311778052070562614201670760722236595310220994193489859537205309889450676156573120770365629033588248084587108357027858132769129948059287590432807788401361839537038017440727761830054311278219867343177347217375977015500404670333197215816336221424416995866369013526650290233429556522793380202180821494286376180599541232472435727185960537792881365024727499635198493552906655298955478609262993383213975715897791703734803122593995590951758979398905034786331960904275101639544344888411884864268994944404145262397214615237299300071764558960256959256157751117615920764418445478211033016053843946543429343483131744750473745258563364104938905068390993860187594084298070828200977149837497709900253080661743351396055430186720802782786218531780358412489208265439003628923054499247690840801372182591393986068264296173472202423225250915037190305836043753036339740521274291498225842740000455600134451326312234929749359085517241699021785530351439064748897147915050100775142206949637000348701065199078482130075749119135111251824824474613922566539569469783158219475747069749217702198908775361243274915001409275361958290918970025397714232258244110579326642506690287640206129748430336612708966387942813911482290334314903856444790816575607907233441982879843125859740736320779863902596918029185087903834082278358999909400837104318743531131466622280965357291897251291732605487115231485528156216198140893859580110342798504601231150907714702715639095565861463958627903266933676022563746857427477284259947301083795802665213426258710042304932084694873775236194206932695460826862907142109766516383706016134883118701977724880304399929616942715209198351259419487776932208928616642622279608118154311245058729593351253202805176802119556564179638390664280377453261883215766859591765074224629946358458566636112587232355115892738244718223253965528727229475077683544059981447389446250561108985111806045967659452332850431363453475235558513833668236609677698124353105583003098864893666317559221770280926274697445212946476151762081945063842525207850571448075234746016036895553990277480269452763864108829601077806894671130453926896540445299710424143281862402795505784171519354758881876831747067531494007567584837335615808445726553251053358267814627828239436084841638545680904723712053698994070757497189931492416489870093676950822935874741114486264522580352107921373641220660239639962531116557289981989970481473739249810527128189665337754840683098271094684380720807564446330877819888104797112952143834540383199444360067670122303792387192158654289677472078939860693419677813021886624865685589309720494472618108257396265988694517712481542877630821233040025111017106511650677331564134283254406773111083999092327098839461961395778868367796975195852606745691564695984793311037295288609144157848405328765670193173800445945566275861013304488044578399162282661500689066611897903996746274842309717484878204675951648961567250129244028889158835562465569521205912296197382662166444041848135491714330973122909132948194879827795762222196136289808956811551760709579724626961307541704364318715759664312481763351633630214156126464871946734867354423545477324286100446371540476965106479485858014126902462879244968688232782684240258318717413320909950149580186555065545507275861531344289886503682806681325078984942484853451613731146396338652686475172017561990400943560216816519942891525829416698832724916998667183764160022829920060276198477261833204222299008584367622743706803953619579191888842686746035681714521555686196706278161567268203284166612585205257197218110824911744856777628513998942214261458316260709481914714886573775838299449120643918896072821557351682446842702013332880004105594378898829505677253505567786642475538124909993922801173683033814920781976075065712380251848820044838493247175578611647175973014089491310592354549450023548011318659429800743719219083227997764343803450474295429577990324045257319525533208160894966237746922138576369066122118875784626390848631709422106911037938442970679724409081727960503253027632996047868256495686768282677833462279136248662081752381475955937544297763160349626151711561798111055303848113837415878075246814577044795718331349473482339389416662068692263299454171409968557134430727778705718888497485254530614277921326532264024850387233143200037061385394920193346945358717666955579221550878217157231808281865016302985607256525632774483443180404478392963197598052278902955995419332829879078968547329164685560561467915656295743594418793633686619108973466483941012514425759325602280331498862466209605167443156682471212575500861313167668907967349916446694448810213636924861750260889495484082081585563446478190556627102515389337203518985087926938602106004646013491513371552190560737537683109765073527016981924039158494137554527720656312652620274884265412057003664855610364894344221181231794723512169599565243697213312467032340550663924665862922430405168917082575682756518282197495393516194616257587652743651394721869773927685689209312564913667548490506207488214899939954356063088811237621630941866537135845689473316842635148823676832825690271958856813961531508254075408223969112269660002761391205681311469297243629747947470969055109182981893830637297827188990257444827799509445976357503903486191504604672158283930843775357191386014350084733600189660415061796705683477073382024265488097533102260819670962856619045663226288356452968265078929013477275443559186022991247672019149353274609462224764843290892109464172328059875897292305004325920032251236457051037048054351287392155165331453181069958633808126627648090366237010204463636265511127166981642529281905948731496741851451699521177081650930912240051146182975606890505394706463415595771373061148884979315378100154905481480756709960784858522198407978806067987532865523109411113787659597107323333316833731914652647339425939522218832151562780903865090103299445057132684769634363701883151976528189466235091917473676767793219938855163666698835681916053332291661498171299807638831835676167788969695000292356999050842921297988376262743660571311334744457519807870329229959269306721403596287106551344189407847220263097446682164193069135274734283571429682819835173378355053678749721496100575424566433037267875333057892503442214613610145903456238268295812559997870934968946970568423829717117235965749398015034078663227963073929483154983933800889735587065402892055149458462648494436972684933522878147468986305779282368115345079760928012289034051421031113961818646514906548739190201941851476753552591515653473705314835110997634613703189407310229741353239940134580995726605978573277664806825749727304781854379226510628212051195528373497110004318162947855663769101258522694031994157862374538278471021118053765614205812989329613045760861620895170236658967804419875311502506742011251211109300746036077643660248621748648771160325772351991238832191796851823125370103568447903254721487229312839419332553979034620476135063521461538803079531662205349700742621970303509424983955664839136241265038364831921407133220670081449063315566401225464758009503490024001497373356821350404259041565212641722149470326629957853321097736881475982129642473334731150296444493344367207910256997186248977453581858638590983688187694732886351988515085692770552889263991613341544986226587986941724565632093462762434580364000493853640512012550329763214855389867690313821419726488870407306780816364635578321087931833174487257514517572086560249661165469164207621641154336782381775824189485951659310547840322929163445082083076286584014021356411610306539565390862965251558422879619737303829638810805543371147773947241781087043521005794416056537509376618058671225714112209394376075221617168214342587401239482597231200761314089200197402136533177573502346717004968439810843111726431298218223738665862095332052620573793688373230147123373752531521697792407725009369492567039832560080727782107621467077187809963166421221625106468467550971462976072122397459713369415837432530223546910832881343705858961766779463092269363672471776151044110212502777270336636727588163766538352399320575534531194162125960493970384897806228699607326008197692083249027290511545210467388445768756732816376384056252264936744783662468634212920873858795728527483530053586877374221856917592237494405819891669451440896714694014096911997040240576575914821347094553796951468768895459770574905692215297977847843013773792939921542761944184198311604306197254971251370386281039167582934814415826796886345472877587222749209582518195210097088841939567279252739744992456028183513744374756844909072117454740873562410091256743438978996060151640210040800281478014952801849012502104592715179828956320528000671137751173234882443860249865383157671765939407614072171040409578458051709061373104417660494739007160360588148845676670656888928790900311064145628260987506087061021328686050186880475267682453702125802214705938418442461451719466033861028560624665109312536364670363681999130398497064732061309057487093200521381489757427822132840884497430763080308201416652942195672039486487322494117171773104670798922426555641818387788749405624347331304526025632165432189777880382065121861571066493311011953141704545248351323466818587720213880706329464396489814567127724667984867823990167817642532579731830487111920522106658636928316089750461081170306420093104428328833507190008134453442261519694001913612402132683540387311914568177778116265290044301908957789362666678445313763981110580456808745261822200609794371275395830219400915813783363663885941309964591943658373379326170057014688696138049175078769897014221524137095135121103173175248056805573849494976575443991236765457699558922963487890602346108548777841654509900613606712125112281248074736014645172666507848340055534282332005597724113890284078269133353619330777370058016623233838758849983677760813644248238157779844402835637296351762646157551749907634255338791728022463663783552664134004480448143749377742671109518171602332837653892605037174380442955271466366576673115236256588757778502164938018139581357799500249457102126517552823576815470906238714487963270662466557900808395704712250843905139216196252638570489205770390503807129480489857330379650873433451225141729118593878402510887524335399230698158428380428588531265851659076568888228969459478001816488899071337373614156606211774471010512041699400442700324220285489630647054416019015877666577884333651523087535610518471259527782669925501701349572377047238286765519629782055931206959770419393764576604199076338648397687593173361707139996197626095922557838268787350732420841248541988194033535111642711960275617174222626130701115773842908463500033145866309985485794184321917470084134717252430184274754832896909749069299890168773927482219787580943376186895008128832209950619298701470719118683794653240845811685301376960807128958838665096239003147017758670817520291334371590616417924346817087643528000903267189109329801497773230262855523699211154766689624876127999266266602399388969483512527210868424348495051975651061160670427999664885205980354977050443099700427159088274673243903591196135998008946689385227510113128715159524411012666400178091970690859174794048604961385884978840279540954528424865852458370539403669740033059841163745521717986816898092770827240851203363533668896610682149579462426566422111883956296553490437482227996139155500987555369145280106503820784716235512443058956850196748877550364249010170117319048836419198087215613692515728368731605739898527054675695952071034772520506286591490292207480959866658838891435164753653432653155790104374162498066632130332449938549618580810437137469077914180945193379774437242585959502196199885369245234121188429157289376249396294387790594804405746650568439690637788107058352040491350841485455107029241345821464126732268932061702389518519645097038818828916855371520196026108556678111207788473172278738898865031641359538355669590146686922462017380396238839241885736467887960169839110493169422513884492255627079243148605621239540965633945373403561860029537104445052031491212581034281460442488184832713769095045372735947570283263968278786598773684788619734515781115571352257078458191210801787200706436409162098589631349050433536010229790095367594045336209395443696037102549888614074024658407943525797779195652264489568680906355576092405040733761515961844055062243325857466605546497406175584915579096536482268015486767580562985402764861080356003489419896377320369661102819548197870563556549077670981633101993175337049089482153746323299370103846710977652549788216649540624511593827194182476870087076107052406133001745223546944623051183418149295056955895757779278995127082864820767194684825567264979743116100546360633314018157064768843207949323278423953366097986602548644971797243964127784605662033613954053397989885504961914806041695269890448957500808691445341553548319294567372551238329658008719046420744634105563452916854144682964770523667152000715211493122179278496522776453714183778592831666829296045887094262240901149437070500198112495033781958749533070539009154767091214189442507562875172666545853088285697662869450226243797196459656916660772780518299838633529464891830718520435696356350433748280690922985273234719137048123720449851175931179508387683250656788658267836832615145332817384799288514629371814378150753401372154253418596960922220781413911456268652819762990991208745187466233373039845288720159014372757824806591674530210573015289979180104451653586621630990813815500351084530014506992244339344100575797825430457402996988647373196646781484063753609673130222465217636160220922124711274682135213274399601332682054002948053391949882194160123457325426314133877473010827400916419820359392678495291597960811951533673578659919750535496324974545619021691651843112531561790513545745152320945706673261951283590127133667379585540528365007346452036961673835088370364338774919446593792432753752975472962025740520390232360469047712700239299554723739060335788135034505619571692510443359121965571405202214422286430521606457364292459696321676832484696145206642259301713589494909186246485055613329975157631240160658336512411225772440705541617666726471522986058438418450446383983263436660443262794052609153836768165702521028105176407441290539671304811282273769643121547095965838077602526978701309769212863013036501817128979452789053579644812018967472176019654163514219116543532797690738298786325258393821031282080412560919371949824527334337704379772024093434960003889165968659333014080554326086133035912770885261568547848144378134924378049144608946181101699290266888960629035465871496825258822141311870160721823916064089899794046145273277195000668842457970042412714210784565981250717151536070348320784393534440877623266647963288196046584165689157698933513175770972758611154318812705804847296507987933855728317559373586652430325120237539147734682547432044383706087285000871807356526577975267414564728346304509511645181604557724076237519226598572345669536590571640311975352964036168151110557566726203261141100458221039605100970565299116053463542876116103810650171267392590831976820491274508674350232903609080694141026660756914530481200883896975483708379809028309499657893266210078998086581687330583174313739296929118554254885915967461755050937352617446507107135332458711594843281613302400986809126535662793678533696457199286000595987756747061544402710355185955665755885289490234979519605082990237764621821611503924398516310059420596827899147894263201245624673905631334089804157865415746869540994789784379271110954526418406430368232729907082440309832729088309809570785327210953630502211599737556553133163525707351248714807313675196054913174164857218057952890042710278767334537153320195048015110358303771295887927474393531642135075029012396011922578487790444486101898897972637579802752788938271242957341727713450381719949826458475790562830178385177747751410055728064802607684903488041986186197280157037036628625672007731393726238178177387489144169142634613538064063264173418852575123777414463265935242783439212247294095451330356157260600286265253816093090738920744347181387172793906808606068680620503751974747877846705268580051970520177529202779806517064959192114369733935766169445809767745843120702049744791767174472453667333575426460812204741132140737989962000011401646096516263500395819154093775649580586827856425616229314044363524830898440567705575278483827052530607232445394297613217405297484664488551463148807643376873479252380502099611230327711757556048588595371849987139047616414649052158910578592209324935019592477807470980912037920210817990574879291544565243386181337987814943197025473493419668433246797100769900690914282087259224098661775645754825106772092749976667332238588787118050824696971462676113195273973015139188454384767951788492855619663077633109230933138840950630279342933369026372216268198864560839704281419879787486003287801518181225780426046216582305084733358244189463687461667063588974044100237031778152626765518840925585102488094973374860347138751593545692225047155455166289260959133965992462619882598495550988078075460242698834740141462943412734153911892415559616990614138017554944043845658313511962237570811510985219244861840199448713132290326856809565224745842313454134124111715729001000137306613546764690518315654258954740255511706223291137674735162872912403262254070633442222751641741960824488068708016376977828489221184188038071836531006186692241873432440368972141725021642738230002003951546406475564645361149149796706539405664692361288502921873888292847764071875975244687278064347165841600110306236551723758592435795176177091704301625817725394025758062093629148717067682548929592796081021775736343475372979531933656196971981535218716709887128921093363742740498034232882997693719757580740551855057433740895104190338903809308899632837494810825807504177149129019237669813576226622346916279670740368652037379533295257782450512067969891332862498406698668490035601233895442619107715607098214646566030939867158735689785073773390917838996450036517146201170633815138923758760976244428960138275940841857110071034422413071464976098578827078396798626308408473881055794739836593444917548076945546929774793738696578978516913824146332696061919034609042696724000069967213427701013618515040265247796679433294755923021653791655300987467518803663003957640563344452586028597295458475984174792455836678794723562353587810133010264263984450009959389769334076095370580963919057263455038179575582010232343113351291287664425176688813588119508683750051459119757583838210233781979908783005427417215581613054656127646814709104680934439066929729652112454063565278490897662922393109796159545223776626347237970283612953099344836869680819075917144072711072137345463381886334054342505462086946243582191176593513581604164701551250462560943937103068859560518921115669506696025300720160489081851937664486816567414161711911574761636797475587690543336986426213448367811282399279807905904952088636931223704256050170001046684487071465369062663055130852214103916372608953036158638757918989025648721123210101692042056740678268073017490705183965565245353381400496228611776185522151225949444216768326551534969064275560610688981825498320419862610976796600244266593954913333194074927883596273908003539697186214271432332212113860281714947404303481363981410475826994633079976770268458699616636958898680307572000650109385182038052141699148484018909815372950292025871469868745755285490768334977767656640764552124275264220137942510891899466672244272010240952660498589950622306133386243789686434732896816924043226617946692488682122326775848290514775351961893390146577567944665810387154667428754816304865326285121247732095793729857250432829579016376212548093133206718997617594059416571376198496922225897867909454169536142326748298559918796649756180815852774669189559564425673936483951647096065735020340494892266412738756848256640899441991845804694430201572118144865488750550155716351960358543253083310513179158559473243872003991833399572219680435078685360308995539107907192076326177673111519069508405736350356710418834904876789095041521548985905925932527646356764558643326053773767208972015746885857733336623553074691874685951099298813261763501470091328562039051534234336931071253205286257868240162896221536274516378643113541671276308013032690099077114089230187908110207201039183755918624572266495164131916904180710688529743595844380023563520680461448062763338954875618707716987770910031942518782932288049281931616453475494211781908114026798700488748801639907378731168870716916142080751242669276640108939639247292776156359696678668080091391017759494214986466457964937830933966261096288171909585828814821333990477729689298231290121153801026204336212348062023906814603282072135886766143758496171687652770034773143541695408354436667457943844717497813280431117808615043340795943465310452346741193877229582821320624416434234914512534697924211873096824173655029870519177126754744573117987578158261979781223628045998822758016043338650679237645374098709799029018563160085397317056998348702404247627879902154219705004030894394828214934053465728933080611334093170109653587104638343965003476145529226865005561954391248137989343500241914643541751528019756799862101580397023728685155779238234289802718151706405155277977082128462956559890202557021868381357232576629247909917210218757026659906368576867378024734011498508366165736837048425750928253439952272480528213964425455789761293878611489157146273350231530750851433392263896927162210210811424586753375140098857371439620580028739895898790756506677514959513952392135521812344815197330811278524240855000878752443549819736545960866851562755029048713051945527152698597302266588725551354133001557547627195015630643634922134420842024106482195920216044432964560387611477736450069032649028986447485899036815582216701094352651716474993511479604910954724508677590008823713506996215948493658549312206815824471670646070149584881434359653141698106452174634954042580738900720360344812479999978375603360541523116677233470609279556415462667439977940942190770498440192616517076807865924610604067715458544168999948779237072986979821291277156234819078213993708515381037009949489695649979470198477906610787595273991017878148250842417270732349088562283401350235477809151734195373124848721348292108885909226561772471618663494522834339655990082136138731087854133706412116386878783660607126785473239829265671754506501440292044383622206371686609601638684624800641971098366845007425806383741734298285748014598677847680291688227498061605651190874411110429127605353346249386016374233167615792947394809692905910172960334145889243218616323376742852635479696082570717838419865678217831233009093295460246164282070901810038995440785267159891040066278665449003307777490022014769050511123897395268818779144128687884174832777063510721477889060704679783043708886489737913412642241145818194189024848849935247961102208599130345681725920449666847334922762568682860315249071746822088014240266445831300697724832904873080015109723516968946459875771621135397623786997960503396134770458034069032479633040088726231412421240271682411321868976512154070990513167454044494965974703565744367048774175276068154650239050341328110184459712028736663468488276635856274066415384076074199358934629829488440651270744850540487363422541583335064780051652539996920800616258787453634784033611023685386380166367258296519017598024091513817612426927364207519691004577573953257335406889757028908649579547667357373911132727255412972860729865019504591658122682788047859105362423912713958852466151588159666237592513829839631135179675732314312849117858168918666707443148349707996909267667919219498763886391536535549976942572586216275615664952970557260656941713840407064417623639975000006710564468718018297097875795521940029732259414098336343607418888540744160752296128322534997470723755090517082707623930818185299064442642924237270487755486244471852672955790675105454954136481231269340315087052462093049332391336093294155859757840876978256799581552362519326085424343204845672334356489753470061678678486884223751151040929055404129815390837957487386220079983465330725664850216564231531389551665353697002554307428939095949863842565528520905500138740372261858395356536205168668845550313350051484140851834818814222626144462813328543703222952711435840233621394296582324409787031644161400764011769790195502220797338761412199871262186155029880419233656021018248736376897579676239996427074624997104786638690688562907869967331842747655580217472222151065944546258665485055244863248177491713206815234233040338112247547191977562020279434302472540362323898088499294286310483265911775522582308250981632479535164410309858033621082810884982667669460488813026092757530401220582933950258011733891002801094936837012358825020562991732894083267634986662764853701278274381119873639515849157759256077650016442399131404446716201650859258268386671871591799785849195861514061978923991610868090882848202145966825461867015211226099164853177038837560831957881226995579961789218624574077787971147714159459417953047557183755217099524323883812726183091928493653633501710313513959425767456071811410886902886992933867340047507966388216608969299403478203002918199238352706014685001466055428702002496204673881700798926626254362553868083050754037710834440934872877844276260061429512403361620082312634555253053432265736130272534552852093475508754660008985470172867069286060635267415653978340984235799980838904753822195717406668017924856066888694714952390879355217979643997027779188238719628771010783008657437529481568109498708502014831770828391391809745027627924381148350879045686336352546013231146000709307399076607517465834772605845264732724155940881388306978824582323032400316816818553993363738750064245174394999609786531318142941579704926072155107162132552422024891911079876728762001942641161689914591853477994382494566501346102108262720245753202117262673330527681310103082392078414516104797962295124807899389241063678531619413018569408779889476681851669492020996679562207636291036462642879132909346859816490043708382087937628726315074073941696066628995342252225334891817147296864206846040738627935512500227101599102300155650237511054471492752737596982312681101929264732118605378254592506658349010315440242085337054159566859541743947686941118004723095587469737967140641632105544458058517507732861555478230546676674694794700313448598416815348746032658934274051061989022902457832851929031140882525012542442490137928340796109971732729793480388944136814864971148382722482613172066887689656854541219595214412970840740670179066078002955115962008171917450890969592182845882949370342369413295312218840583501214762302220618730381911153585274326331451921256795850129496567585704441993407083899641716815588872980380748327806278517010907483591669702295957612279756926783929269585486659737279402331624460179590464724815380560785688411984854427062187432670883593313688534720128026455190914133201637083169567195473017489313200856840551801006116944127070762250177754921046043865212488629434502939525146491724103854925506310395266366617064705666333802780548697822791031767739426006620411654329534129366748971185863514858107441804144420422563024346378065748446076729035965314179831510059366815000578874198546090745133419862311337945530916096475987069708497005545983448283411723315262447260067531934771227446181222284027745131811685216944873038461900977107742099068446860222376508249342475678328548993663965161426639303031991909740652069272763760576099870419982304919128414721561889097704789183645207086125345926820821893584907795301490634283018490938688875953273608777913884192452281987009072725907441568791384922380731167193451299416956481353997879717323598358775512655310454044206055114098236736340881037909766631560744701131153404921226861500214878636101841614068839097256730483903939873494832026340825894622481628777456355763690142359191837173839999289560483152866729477201105231073608886129204510603513320839284633893482539951307375909779971611852080049951019476580915392437245218213014058848629536493864678156448151244248490649295820057089971691603914665734271616556810741727180836170447457733265777312531795466165453352209088399066539031814098424773377717896755839530666407621113945363487008515871066637709110108336285797239965268700918711049342376570707999878718368120495183509985600073844847122964034210512308672521425883209537438012066266197772571313971327461734782411350457608805081481341815262532679605577641138969787860939735344250572927514156280163671991549040855565783751138331385477254499984210866552876080532046720053655287843496190373585937219712782444653215930081683601641239482065070361256605180044504025039726859594524621468395844852368078734839411031154514249664261557740497323922193883578745748165821669749621227924669780620614664287187429937168642628321957775555395494828987840294756579344922033247387462622783189122460806180953370249629962458009437657023329206118372747797846048178247509210719551366635504986014404275812122126541582603618253191552931460228281125725378515630388671712539103072319857198185979940014068136489550649184635131825293646394894925012903874868165356480067062258183319725645081855706499840515007447453987726299664972362301781341248496449072494251874636204436838584837816268150993832527019467617805228860897450099987897400995155045806531034116965701997513259568376899811037224403880730583392675195265590560683482558457052528087928532091822539797928607189631957658388591163304049820607245170487592980795096899465873681264560379103459807371963464859396004710005841795048989035477599016110419063198061580462303889438067879901829857472723466321177843866205414422890015278143470603653232102793050003541917621965022247052599471713599776688199282749945848630102198339036915256144973511060262363848271737172267102306090520521572265791416744231061490874393882883551446442718483025919892593580565589266040144222492922456228801350537224224490327015385994215040621044072374100523703480335115054162601714899304984168053652545064568986377753426466799235808162615915631101214429573376458443491507998696410559194210567077804244079920948495698624035007772309093496922830779908189827617643506260000744368298691709651496328735198815898219562240764498469437593612186932043219317779837441977180399595030994233113001762859795418426543848817117170435497449867482832463227833640782087493961661199541422782656482505205256500311582972925034040331416192324762678406946526853769433562961314988226855899862981247601707848199042134120886029924396303286558665604945330699991458904156279279569527151798953530351930013363307126666952524308781874376441172917267814069935909002236002227507056897139453944608797270511866775447062183877738630652624709770366912470631043505873929924548982590143016339133366754246244888616412995303534963650376070522765975962490221360897838993420026054120020345654561433682054536916335793057019405509548465899412687635889980440275026864359216072569416048066343728246464705160772156091962482955498549273048765324443496499899419631703864422186568638422971105960893849721896968465508117122101233479573222858338133885335359799583980348705595955588185934998317975903231001106907108100447253568156305646093042185581969994004797412284940585830675359884426208550808244450730673261562240777307403000840284835941184301972831419795040092571925241281349363190941483855748946692355324242199842653074911558948969969050127463486093406910707378746769508793786106122099351224923496959843702568324214839762469116754026363775297953361261387971363325309963664675930289128072579877109968279367837500676912077480494471068244087432799468694199053470802745040166903938033325059000379364017978291079337018593269130448903623914117097102478468874528400567878444907910766946069157515853603449417836433963202893152087557098438683581640861267011643176665732471647012940635386147528111164762843318654651348560420274649651306715469816415516689983539244858088441933438538196845000043623926292124062237458397974757864622718277038838856748102701106545474332672931578588287423387628102061152377814081028334514179056532752581362384184423942387547431456355511976235014142004723878273922112091921522180921018579124531284147095870601793487629277919972144880182838836822503486188085223075180472057005492091614917572060884030588229364475696541595956194202062025399305078758256275481988186322244545485460254709741435141465434261816563027679115437407264245950644845172271767829025387773037638214567553157096474829771312599718490848192572538988322956906494118889990486996457129162313848673980577954654461910395526076926061653589514690182292208188888484550273142829647813695135357821059872888879154562753626302514541868244981406856829461959413756667236812768714011764616289995183929044002512038401715028459118187256572980700224622109715157252806905238903404272405896472032609470726311897470493182647014047129307517740262263795892332935158452018004966960271564437608848279135037493278226597464658048145716656990216357850800652746235157297687568568962219603279436037795766559090411671825330732131207078704816112890942520313908580237427884153870302864598969081007796916175083946667412582756587670105476602107944631937715650675344288090763861518643805699068906410123433364417743182652989184606431440043635171474420301889288235494440369348464069327463665990455032067672113707363331898104718652001209795665214807287053380165029274267019182724507711317147472807874329171701860506241538780857997050531964834225480307659550735552154957317934338627030063161731471545734927944037582068095805729384786292509471223824510804011967510266710447819977052382450779953507066908654044914361963657363912583517965857613585059704903520676235925752313418487061438530375761943227146118098035135570240311458993914920940785269603241502309127214788650409551773636640678962867462804167942175508997395334043420468136852572253142650079147832154617388605274301160469341752285979910314472840887906740843438420681499819574474756984073054366403963329842142640169569090580971039169914228019219606527299521428279993391120400709814917870683853570207043470202649604540590953144314634472184054475325006158754052872299500311805174149885344100281104302566357719668747539387142540508765532808443271818426061871003004751252241089624081341872624695644312414042000267732150718865448328990922305906681635759108295874509325888059500229982749081716260668519081142420325745182592562261148681134650151726473272599926271472903118348386213400848910356479991344610998197628621651278583774340124005124321013563593506496673058702353998548813020182008454931227484220374193796010893043826202652068054280568735294186354018772741699673382090655833016923890802967768215151134769380156223070361675097552591026696457514654046235050908726677710996802446740473818462737693566304258494373233970703238031813101443751414424047941607322106761759819327944695300771359506410795039121395128665598967959044221748246116684731976949970143570227024778143284058325933134771478868353765943229940025997894169516530412395717443617904951137595929591348532658126345937426703411251461498997778338485696203060728990023156348860543796516900506078078316507398641515845100217426580676148299026777241694616897884055294536713382076297652031025414526721096519754799221924202656563276483367120907755284626504689567940136250746235533944740553957850951829839411488500816405712411899230628121838434473654308632645920848951181058740244334896771107336839582757255320399961014320395754357169986615778653463881274551746568484987532072855737260733951385298936097661806401852805914271365223403262614882036649052917182895017089454027587477420712656673939109566974310588205584041823886117766821662066015144440431482239472148016492368182140846213925563409028876781940796901177537383702782142204213267798456773737852059390208816282654996202912591554378590122496248018293434340764663770144186741319957901296000357818840050959144728428106230424246698993610512663591936099931242515818966875374630795800085594725225639414166302249128716199100700474581364923127065667582173735994172352951248538115043568958911077422518889956535491126285202429688949864928755329726104675638382871026534633943684389386532979308945304173450997746654501561682390374227163433675012227744515236494982765277792096212028374912287036811015073787855812531772955992816187964101875811688809974569721906742976903854179574980602040413148282943154769351327177195935852856694024658025120797326468742414539235279989282639346785080878281473343518710335840046933975017726465253335936865180380138500698690610873317714865471256534168293045719344872832249697422440130867227912596882332751055801700071595869128443912957688956252365291152715688636776521076103093288540133007584619554202335413071032323205693176648685622979875130951803628828451199893911423354776586702410577043724838068943251912749564174631858833608818205125324864325299441687239132563851907353919883480355575416564655532717595298763132924685314216333393180915314034307685675242857342694424845844365770809678898183864690944536101594897964360565211644936626197746878016957126800627128819214426578492858473202977112114663001569291030291860514013934266626664212298537663931383713947282872464739213258728169595432202716568806492804931244864085408711132933093858017649973293925835663482355744901912736881668937215984386395023545104429498479214625120879192473227881111198565797960086741143842011052419194761468170538479034280408268972992050948723355659502745824964443381343689634734797006762766029405883820371915491980160913558315225169341865305040185098418027451433943823518728487859820163300030683365174795771091941294359978912356962076919763175533393564641712338929794227126194258694337745824380125008491418438863177367336072282207207891365136984591472130843133981002950129396231344107829051891468535174204653046734999442961384464407479538672298016813583386749578648799820402763864413795473352385227893556915149136538593499758533603478111331303719569436106975120393362726513774469595401526555739742567934410119098028269304084611632467561187461054221801199097096706153173266705839098416406574572210006043617539277906355362014135051128751508085483396566218948801056819792247685009629680127660657652238252496404474881508444092523206518814556745325024872094154713145685206475001378899309350625445791705068901199709267802917910054376325912579251780261844671106911818338613081510983664292971297996158044115998398299295236859827846179810849770613063312457885287030073918683877492345524567559942272976909215895832779584062366468801286906930013854917847034946135204874958407280307812659367387189193681033415467115656059538402435528986035275715197856498392025556167321379485151055406271793474248112559148615070894007408316920431284466655260461644763247996493319221503985935823794283064800007302647739334790697929281855994124057897588941824453827982474993326969894589403603465136021699492264563321761671377735360573628389335791124731030916755268478378378234550161345959960373400986470965630753878794670488395930392621012465585409194912610139593525043407445239435331047543745553872090282229375047391378592201552929346363153312884851032594569499107757437138449914997207751182102820761096265473481572494028601768636313355633502058617167517154600910824490430719422735120496300793303215051942379440126746084102332980495774789367117859360155889756779654510303587440785570797662872614307181062265463302794240727747996300795812005747571372961219882729831606343949749512967802447738995052108226173292524290343841522687512739659027938420487021402833400784699090947242443992291080324806001160507099780545400342699708651066138170619563276809129003764363309565990847854916847330127453364489946276998218950150943701129776597314987292427638735288931406233613051503640027965512884820684007093012460514112350361826492133211025903189974938899308535405593787539265862950581211510644919062582009682176274406566076131701779270966907195274682744891219526498644674344524394200814089070154414743317116369259663427258903963878750547109821636113010825270536134221138868393342491704755646003069997572778467332928724138480323317349630175713212901982971492577460925426882077014085100285602489935969949104881758214361255165801076781731483872012972475370232579172958952334211369576894723996834822857848620003698777874209598855764569053054001854597419657686378240626643638047758040845065202660566899131887416212273026198897617691330835167811679967454067332778602042947096243329452586884752504030091115410485761549688624614244362889179401358743305550963324695471845753381130202757532304710084424386574517602365101514983476926052576184561498734452719449703812273732167502246286636812066998269513559245275886314667204829671881374441507797131087365331616674125168332587275802020062553226103903609544344722866215998469562799510682711413548883099896090792012085201821396007926129458036484928470157004495259953887472189845928140061284554729083094943186864745234574383982673331084392061487225378040064561878354316032177957235925353842425220736124757365738943104282682861778556556704168654513327950784357493282502772355860115501996414702525583901735520247864271287034100873013016839986142893667016487352962129867722768355765607549429517694373167270856411712561085676070158904582066488487261423025736613243708133827296780940330783242207896961141382830245654407595785238817602397006805206423415520541022185587438989810559661198515714400822271900109905977613319072233311256853301020558245527437605265254757035429918017057284771081753620267837283408084854661701188030864390598877891216565362261715073754150125103894490630033339812244160974890974547097162434280659671503769497580916975715149515712291482218751911475497374728394994660166205325369510728953598039181715528077540439117314402998123004719381447596808318955633387202406569312655041671957054983793829383380804440446530096400312072753902924087168573760382477579508431190722871495718740598413465035998302141386568767449397434335983362860355298706735884870367831400459480655497371581325436844869789484871770348005150556031630156427894633066460963731892994278746722161349662725029593336769614729270056885917287248773303906921414771548531414284946728864772462580662276017741297074359623675364678856506313265872820129806399893174418345252298281370818246058511176530778740566138934343664404194031349209620399622433946626497913340517798649230566837316562577232642437129816638687692058733449353153770282754843917044894521539192394293570157476492516545076163268033605699182206998912236786267001197491283251308458167268712383488318376122849008137613022515211685334745650981265544649033954581471485597669893766227164514777267765652165916463902183937761417818270651740879045925922138504619298302654315569947961583215349039489236846147125728004924097694777193595174105847964685707676200684363879099661533583898929099957662077991006063393398924885479793596182438123867057498558214616504166860561660480897415590040328943268442789478526059916828073300064830612743310218635553413041152688836068898019004022173648434721220819139833216259209708706579649542220420471972984606919596040799082741332508877769582257886505395303376772157898811357519840895248961129946802588344984876294932612393149819773367942395212977419398963178830166774697628854492214796017920508139400433619198196515200100620037329801606791407222003627829441176674312054316390575914893205283962920999209310884005819337041359928742637603107510515495297502402754655564234445372623870758495222495186185912194005545038309764012335974689990035146503590351266341495420962720500277301758614818066032147114617655634459966748947618711402182094219257331790454484415204991076800180034311663314669750422846170737978393157952152396836252896338872838169733389001327704702590702159314982309886305557542749204417913025902726890923123514754645497726001211984115673442516599784736236844362575178610539535454798807670896060021777674999070415554819011497532026751768852297012058139478727350392447925115021893541071778753012143563874365361247717428397930967595881020166233599530963081797142303185732803480244961868046320971464554007914045908417719621740385463690218888266269419477576845872477252690066316755987494474820318540458632892267879932635486169924889518838584238430792687498305821855022035382934859679699174077249685457054475808321627686550372892155673633169838312482834913982103399727932987179011330590220075054523833173373217068654808211162138304716617821844559851512022120791532140454227626428429144561914739547207694722212409427026897350811075177959398295276449213474916567930840494927822797281621102294673650715385346952080326809112159473931946090391334961703017855545720677769147275722469568682280980625367470025684050560116928216216820581073267484157218987067411625122024018143109753893610053393472285723537510569073573110056263985805675221893954066431808197544228604289995806345417424579330829671195131027394303592376324085984910308616242479151821353430882867460760387174583177422607282057839657598283661605707703358750391389789132279052800965710279970090307479697840887383331633079443571687813812066433187598563587295361791437117164350852235451380638300692358704268395554406975788897350819073644623207956954266796645781424771069687781432430548768108940073464531184512927212792826528254961445132146324313862265853546736581608611410387525227559586529773778253687991791168524712978632631493231765822571746616387224097073455007598542884732706007354114482301610695371282388992535942127210900192933672400853756960700891661788164444077937009173575194227121435094916952622769029251158638210376538376162085331293234829535053499587725955902545699620129627322157084075393808042012934897311263986145195754451488980963339568205439764926998610865159825966576641949789141302243091172018251920988281499146380405518645866871176373414282557439107935488278141565745788204359704585064544341473401321461973244747775804459065369147418014646309598115674769861464401402626944363740274644376563457096127825399213830570497373463294315201898339351600151236066506910534945357163019771864747634157505767306891311903876208051114335096075696634948742491010566413165361025364206851200064143179782803415082839384267645447716691051581806082653063179443828343118355997500359077647035541883910380036116611642499789699429957100651777259020304228433874469188449401865361099301962475058488599199340563633215280097395143710764216594020271419535939505723957228597036441915197595545508434568834099852716076254952898569131580764907575841845723788623984238299410102660932917610709897704830515562400308676316117245981549548824678000737892770573667647615688340038367396060946543136561344408694289473901764004211870360232364954614646438551861064419741461971105474213294466272001315576264650215635323367782542962470525746988262825801354189343081120491883394026698597311813136616166626973622676929684718839413931612995396267468485203375820299006331648445882811275299644356123723673003374016648985576962032106805548072783753773514437798516587625810030607588766557543218107678270470939240966785705304562972713295263508416344081612701562770016644201603320774579878591273917067098033267327499901961223587384925313159399907979274281924803184819383342199947309871131615727245107427407844908650484865035436246233349085587335914621761181233393581190800197403510785051687021586710677146951536047046147303288173376390595992085346683521738199542567576546752991394779515708331354457374776010919411316461882020629169966664057850861959418581724899671483484369514462789961636459971431090950717183353826966093367357496372051282997155270855548269697621873559894149310564172941928551705071284324140223248415530909623944260811543521193604284859933165999668331482718249815564995783352871799280295636586014657390166984032358081861102024378158372419722030968934581689201336113042085008556281431436456202749228013512921040141262905387019734943456840585449205629963706179111722081061082617824028046711251336127166526963591112742998532063490730008798949260649549023726024502291584676495165498165400052176269964318500878625658287530132742976732165430329806046912003924084187217101263710350062817030562440320780724850744140023456351425138659806307360660230844369130523397448360160000902787119783933233499373216864182902214749861318168586399216752104797185281317892464269516784671148540324941895027318939935648091192613379801773814782663497494358310425069933612641397852998740838627397099798363500473236644166830786564493249047725015481962128226522481443951347528490192482691138894498698407688015401824031789719709940991020301644790735240197335864678986039920119207157293087080476852264840017478252759148049045727098071240989480698398210542761681533767681058201411662601527165198419945098433858214431642261170940926628001621840523064245675428973537898388996420721153128284066360863422822607534658062329069809873198016661821595634353320931387453852770664984628060997320023968588677528593303906559267122822697161046892985869549282789801394518188919454491067533562508699455941988943436346434944905890772720151201580266553188110456188205869635897144482348483802354948788710409730045771141349555208421076034381366659586392962649984675512356874529157853399425869364559756955416157338544481381166310271441243414043874156153759430689225700657856469247068268857080279999029829059151846713433079859869968686609236513707145316194250893977824418998245097508765210302811376615310496222777368551644366436550234104910218205313603298317026532803343651736284065072192128252181116196858491640618628082728741788975917016815253844109908486606185054766182785734619062780224132162753730955116445667006969173159586189802590872879288035446954449377299864010793437152943439580919274959570543678071437112534678172366406307777448341011905210840426580696571253139416724191794708110906384015455453789790227767656002745252195376080158160758110595918775681952086776215961732186400749130366014335821525583549813211163032638925818677840469273192546786741864169846505949546774827429587277698676972139791463979524830918832424366364513618638842726695381556726159628352771369482932755523146991195204915027148003571812607371339741410769044881181917913325621897914566588068482897559632007193370257324001756170304115247839069943188219981496789491833843290040355051413390141147305209736898626320187404421468887922966196436821949347050586300810484035976153803215879067884117821035273275457951006354867919445157588784136407807859986673736865081695332282907243115631935089575706802560310149269150717988070204241627533008475390923704323603539082509264377628355348207208281497517876089304722724264570523734377035299667591958321817047202429303650254105694926306519376585833205978269390585623518390163958387508314424196455132744573151119928055938006139823415521077362625802257343029423266545092226405474178788130038701148907492795907836831966796411860842327162707155964700339694111119301258131798740222314491071399137674806772720644744975192331563690434286907352379568307121725185827906242505753474842591122113557490504038158074248021869447732785246259533586104830380773413639751516111904478025379121300295039293267704122149329587217048756313012789608878923553459015638032632206219280134333846177676288795099210683625563271911043963589350605442492228957035267243423650069123488193458576111571110390983524679163402268398898471745822013211523103043245980760054713802820129526476605693037368409009450812165866983453479944271907045054158119560177680513590088995122521291138625686061812647189645039209548857955164844251850354449189921975864931924892897156643113365786905111195237106119234717150019911494334173734695518188343401712542559066372209249488673380649823118402893150433275429096397519799550717406720306423045393638002455817936580148177985973864848130671106790260396722484981376708421657281025354674133915181579314096197315346218465607113268162436786298875442376261312304251354872532935761077643157305593884787344619301354484182415713947183343128802852798337014964262608838653418154901470104331884472746195566777017972559955704200990917777676377338777688025158075042248859547059045902742792190567567272434689632381320200389855342138697958503831843023077666951549435103953148575565493966126617591114328475022577546775045582028970965559442356935063836069890347039277837035288088303520045469120991716870534783640233206386622114558777033302418857442196160964613109051207343168847894110734763933477567067005279667342204047464256954539353030884443349618843679171726688709392916597987394124720029245862495085353167410991900057470755237790799490495852184941159021164207898217653333646999984898638390705067475101601130059232811850245586589941853526570851780016323986773877387825039530398817330745747697205439026880540817037319916495849047861157096237550538443678120973017816131864733375381474037936787080334458038213454786161983576528009953267001661410271287029968812107146551538272915401921985585260897175752940338948840135651968578983157103583300818641323365851407959796056189351796369568510595916797328857553350389824368266657249252815630055473522222488238759666824497631031301705149517621673105428406772995637293618770367175984694835093010351257389486036826002538503993061327203016521582941724990163416365790206438539635663409728500284646494265943759148866548167957069125318398681124701065127989514213247129005865979572472894590987883557080714519262070808262387033829835010582170717455361039730318337476332906069294640738305754132773820767901217944323325621016876729704945297635894992335537628648841924340143300638188571676377995665264021632837564649652178140169379797193418342527003829616857106772727179910617117364757830392433378917047739026954443862463327343607222042549452442365163076613553283129424229278002421545698887552185457155985733429883071839293538905549737183332904194344356623446292826351060840891370637220723613307510209650585700088373902764660068864546779292026082764280289271917834817798093153604843233223461726222589624013720745364874904853386258852776519524306525254219858859669569022547311394726928648637845298911739082510061867723916297724920560361828941363642924091211124192144463923629800361186714211476019571290603831275552653928604754518933404941098975823726524102335155311928973517566601168165143528224466579992511213689330318358109524961544153943796447334542862002415313121140737453256355303247433603759947668677296661235946553601094083455397078340991057112664819385285963145638720403936687137831867538128428370704156503940435432347176738517586278471935807149735897294306125775305372509533388961869379087668326354621173027057003111458080364581763242703292254895945038795555917445458800521677789530273118968669481644923263244001867060643299222520457779902277894823564413741833219943787160653795445019253066599710630288931782232045738678900282952617725780878396844005249971720769231166410050315701992366652414089576939400508663273947737991704738483479612491223957332647621368463280029347096202373031224388397340942246292329989856325526028063287220594514431705089366317626181088571536806693548646790920549740895089313172730101384971260354758504177490569377386490456935006863202348451314938628718694552502827260292638595782469024709347842856484968012126387343202066437582948382465984116932240487999418299046263831644299645473125011943493482433548327232893081857198808196984613339502386294660429248839822358683018314817088477156674072828271980431686165920273560647641142458914917562043933935748621916232040567062972924618439243172661838211431841913904934329054958007240605565981618281540316899243076522621464776839808748025868636006621475057036261072495804050600134678558697995260168186473251980073696106924796648249260924257778162366440211822649652046525589883030615387478400841394077443477112919878956325498466545719231362934762470663049340588608528600506565641447278363584871212297448243944847210116426354593641611836117225276558289332220262333608806641244583101602085404532819962327393925809327862551523330651383117251633634407154809714434881621985119065940469091481891735385644260582632255334799579650525943630882153418314822263992283388991238117336844552488629578681043286898859915872725589787451637389202000789337824841125488788124745594711777524553712832694140457800973605098838859575917050739775434646156265017428378561874510940056854027225521391576836767198366136738925814572349093457565201569189038471856321248796366255184268590803814456586396408099279729650157173027731504458655297648881508836628762062338059774952829161058903208852376829371809923053568987906931877508139930668641108580590350701435736200243170013106202358024255134258627077911847564250720585576847955193001795587187640174917178455697868493252568757010055525240429104552604385632951787093935287610128524943122289561360167704552134901847203079365866034042206847107748186654069710305478391207203824747545783017786150841450882414180232488807926883998985669934708021794583336896577248350217374079473271374456479075538131520735520744399398103557683799771808778501066466119274322838100804300660415687160628852443840946822604616292100246976922977486767287942122961863754852148830062021160892328139701779584869379114863194586637260748395360494902506901781334906386714491241463090166041503452885713938104624470585669392438595161512556348232157315392145283966103570145515836108083851007608062830393324219882094450590534567763273587055675094753757580899250450656870237884087849364553738571138702974752945226471649776600209920920776297213656968917615914687234167408253262488958795619590304626568309643730169798937825298881346165915163089843092274413016624821595874135698767800768373030871272359022446177705744310611310217177249733075741336405414535191366129647690553533082342482474869645482986719287425625975096009217416280861106570538612610610879091573174939846125856333403843381274201946419815372972105148771696383781275008641939538209506620307125712212215311782506284243668314750476810000031188907711332533058091031196438348446663480440194582877284749392946783924900894328444671633835908824070982351266636000804233517857867267378996519452890445798961425955886081516479150252768867447063629855890030794923526231708632629270965568967380206018553487720935492148313482321471564561991681320366239586628982306366384756345611842539454803149345878563699531600746755816004018589426043767101846397045357992861929366022856394214224880913624795713294982887376172494078380767864700255574809048686116051514618609210718869784624514168357132195095983166764736933105092131851862453565239705157384233208698051572840581148509365868055774373770454784902645781467061805287496713731225517320380835657409307726342285148226952381235486095794648001117789867006760769152662049902878778536516983255450582782561877957201071204240222435763881730783009734835598527838308965182742789056730528813159799956125283178636546430698262773119996258865507206218752578056122741996788327025983079719232489851871496922163127135525350321146949648293498293858354461841237179555673921811590222943830261929447547801555915041232737719308001035833989320265231918431506560801265883300162591829572653750330865433457276433131737590181471693934819771886903441635562823011490381943293802744817723244820529584564051293873330199917635685281063007609865941690414912029917466342911892281527977268387982248742374387778914007007517223059165841041937190526346403137266882628093776849256947781293620020906037012275457554643017657480969228224283304703595226263613111871078350438904218418432057920048464402989597366548690565685246675971197994085874491587912885748989619439853835357648173174134588720798184156535903933810616194745936774475527537886533114082290427513399270505639802719308324653161999256137235950889814407150787255588392102885512046724385858488981623315862789278887213403029312281565250388674294984623640343317094878309694607199419586898686071413915642498569341598845229962877014548834311032242909063666896510783289604896391255677598268161881571908225814646289056935043280165469331316695881119808650095704142907759567747815079582193094342940498280585612355201989338702650026277557260509375058439236530710786446161661626206551057780731577476067556431534252160148353468512609686426677020070049104327971834387944905258122455675220247242385062069787507520959978605785665634428473134493463046760135898092025900937003672784300598074166682575486840097939178663694755752318602362870513434615229151745457640615547689827765752295367019347889974401036290001620480479795033002725244743157784137557658586423313466368033406498090310835382887458937682208959711457834647441259579939542074527520732974636508014807616678519165322225991545038324499001939080651879877809824153328654835352495774262095882781331339092026377568231238555203224696199301405361908509949780936602881437860259847375505569120724767611379943455766276640285362351659615720527141992270771298842187735568141308319815513900818614539321377298956831688376908540828072233019674469484418508414652706933359550287233808615462964993544947640661758441486122199272764919917071330780694702059923786536498325010640843632433529461108747084036402821482943215519539353020149360346073894971860083460141838389558757395785982329792739954166582901406825295506527159132649809292636642554483789646420173152979347914304682383405680132870743906178127898311555405600857970464476579672963385060067776158588875642685671901971406139341327402021774694504862958053230302800444032283877422074021928221829411246953970211706923850485603232814404085348840356489024911586500898486910567290170050727567906836507633958180630217177619378360713044335772631165785649384051415996686816896271706598016269236084544802981042148870745086709329592114831682235401448372808931327302046452573735881737168077112265002818793106644870858740507746765441259906563525311124080733991863974626312764794337862596378414063695803033087557230966544216416711514465764496763814859375104879513522030904858463773668364704782786578213658972149378959750704157099676042907807124677591292412936586189322569755120844858676691315454284386829420777660526941200374933306754343798347190776014851326096585246050516959268318338650877661681910925824765803118823252001464930248979425307108758817983938277932283791514633748939541971755245875366427944712179088734826817769295499113742094240593209188958568575843394913116099994864636722883080916153957298068678186000141205372055373261658323398219948967906788358757517046252083988201300649589858944980234975276561670495252653975633279721646071966723997924397129556628753474193222351004076123140251446828971484227886326785781998001521428309350276045441566679167606177145999384979042585077367437864315005216185362894041139086117423161401137183905560531171539446794873819571109478209916542614162518346001228797352467853021189247314212450159915301930295151801395543190984689078533996753911681637751115248619829762768145385604559936196805413598222834351260875118781273675288886954526506107004975167266067978248875127298780899118964117051240261564943394777721628497608756425240003283926527690198379611465962468582105938402893255281257293562053977992961216023564210679251368493959405380535984834483440965900675469870079944493453751120107283077085331630736755944374619423073580733237441378563931604864843729241757489974670564543335954042897457742355674122826804785230402504983557209439879880954774669024079814969629707543349792763379833522497505805215783675273814136597981728191754787985491847721967758017329446441910654850979311431882343893791091650003529641867479084714841995619532726956132270305146794915410702004788986758607951832341134546386476130060979374137789957886905573702647312753303714300704952153609097486864135838095179564759635331344833604201915284554087898695749452459166206594449060517613578903155286164800227473828259790065966724871084579617384468854556546781853402708488843379321088455329461663195589119030883900522785666777239435926393413598078369126050309867719470906505195377675964404002596379536996097265227731583160465933342369678554326913269574630474365599287820556228117837157580557894648464775518729230665156589273358367777406199462072405436248541572033473124141791666507810706115595910025194085996137369481478365289159577305675568907215226241186135688784723213288392337847551972942662283177876232109975427236686663308642841059353028050534898576095486660535559055974434623407524464470810613852730074671073050735356095506150001935413527663558050245309150098078193935265277240560175645867008877248887395656645967460600898138392789187406589791710816938540352650900586023150114043963432033406970453072028760522395116811195344168005859498997879710409257416104392337715134311210727269923874935274403800984557074190815680860559825942456088355105695834216130047526529522324304981997554251845005589962201426822727116142041367131344663905554903287407546897101805175093982803522871231591488970550557905437776684776882780938425894178292102907581923259446268740417066838765371589723722037485914840988890781448556400673388208158334943436438914365495351306296041468881390354663529857875164273540692783499992843282383926369111971711913362202386655119366711112052111188561865628758282770530447539841155786862432344945370917991044452271483096228922042586939170766920066887189939093320055749513275525065482442522638880094647933103676332058895785466441827477667754574147331062721442243621138990468539509782419185346063735394900021424117905566098290529752396878737213380024170972178285774501351393513428092166085299089336137908548757145639692333153390740916701397655335529949093163564152226236944586710966097577129601557476092334282000189156066339527642149885431977366779891679138969382090913212248024083686760420853985770876199925451592440802222677176339419310271590481271560150021042725089521409993069510261688321659401838188826706277396548277431806348567900411606088429187143303235162640062680783610618680357465439641166169173717325280535554871696448517125063978647366486482774502624847360261437527691208009370520261359857683417033496781912479633917583276000024579142553591299277241252204661254123056246488365493627945337856357977894133433445774015040695235998456497843044463942610927572614088492386477516617206201067241730666355672414369206735410190517099912258410245566847635292438402036292680158335382435254995356363758140716153480369821741029161888065628081952654896267386279719589249040015606072844422717303586242377133348093309934474235109097931664894000238561697343335911310747687091719379708339889307861097096436124331330006729744252634945609520533504724853299739005797466653175799229853784754553899492926522941295603323471001902050904178930161291806285867432158752950102520094606738909578150873084194638412617455846307166642329631050619795986875088355202899844218576269776281827561270244610756043639199048004877510569091405186367687244330615401471331279644346238788497268332200934985721723665613965600199107494268377227705325831789999297042749744709007735080744221885669865782977058621384209969806113906343849351415114600901217909109317677563797910876093838422143882616466049559111676043459868297172620989962840725138512644619036502926561134898731616025090949346869979841445344379351525659225686752545339681897373112329479924124446339202104492249900006202961175678934453696289803054712014618007447496823570403520695527425959951030732918222309628988348783512240489241957490298753585084184894800605581522314501433912153603933283717666640744077215480264906310976160390338824350966049126307165350574610446596912348366165059136608253630488454222652586461389473820149117533014709105556900607682681287700054230457200219213520832940671713471664989622521613253841993065283607954231571677415012341373192473150151920798578257702503874014399319771452299893972091100856303282102007513937852187538493532212518031801513559691439582972868149829972308163463677137187506557565574133089489195756047239139788512614452266144455716520041397190793638225916569029536629439796053157340907553653075719368771707326360661046099724344075588212320166848145025533452903495615022178919007068198234727890225201164665422496694223595592951925245937413481956695576927860824386711998514380251002881607562218418849102397454323328386620042281122396784121624982120735990174617263491553107367549421107884625099731287106741384080365675929471684239142866797288963294675644798281687758667385760481924252689402866019299547774714687049365738600013141929849323145404252354711972083555363954362784327464553007321123496616338827971411908020594645862170773887298941061155603198947839120738205119961795636177100339990781564931159679084148830211839127239200554135361683133403225427235940316540214328512694380339368339878621201953770287621517507939690148893668195791459697302963381362902032004306756435018504918200635141435656523361034096730160036045186764405265881563739712293834908168620541466889701752170048780121627836830768289663027314487557386009684168938880920416649410776979049448927891932802522288031702774941819843889967273959365975680903709692258413885140263976890591450824456538196046731183349859554495964579171551078069488941511970557813028244627571144739583111548355343879946126979321799516130208548009586753381229631971002104821014633638739746813915695523677850234247490084113319447778739915820124339442345464287144166158402502613904206691749638870827588204170835486885059226584674318656947251770449875423552096755690939162468456482648295428735988374887021804567123121937138109898906751556504102664696034404791667175251431143345244807842278411182794078861506154578019143704451536667920101707839988991278688685980136600930871634903149916095078699731469317463719712230919962382275256422689491515705805128930467266422592774294539660129250307242942996239044259130346537053569079233195261461370705477668404704799026635524698997406624090479322263045591988892054191936201333239217650539960204946876968487646398485827863748333698569224156409414429770268751365966584334911230990717214129555873347095740020187909893870433347760364347294917776159651903603424543317587223491481942643734421894651123430083030784769489114085950795837937795646036777058929850821865899898634027318886153676790062361678093371906609818003173616676502360814416916905844367994458795843909381339166374992854508551824984292075761929089167194720460057650573433412991024163730819593284211646202383235959445929803340427113703128745886219423124770399217901282943260809970759896506947368798426575478952333661347987023295696184861617375139847686249179049098620693682723562560563251432701044819448892728187043311091308089073039372266118956772990531825371203664446806951041465974665786949458504062410112690300823093794741510869561824656022210320065559705150677512041501817412592467377686788120651748866001641870831100751341493029682312175511850631793134430886461909731890367038933123634595437418860638726690334440183363209016263273531467045606817526840807251708682927358441304205477531683341813629879273279976481341075960206231460695186820675040233398519226383718445035185025139329965321951668857792364006458932934051741838633000792439521435793034729950790797110196664095170166599030918230466573930530964030766529774296387522634505046170926099863368217832520927351850985494526119247498070523234186183883592359450290871440499693857321911068706594329546916596298351551645339002663385666361819009776433599729051194405342488361008921484100476062511840840807359405779751876313697116469741407267837396750290031075451506522971843528166931472852655564386847093817649644092681023375448246714748258479694411345607523969065762747595773125987742613717113041326450652735027994713259745894981770795969165363362736918310699606598922103508740819707511011443898905945546489690574218211192543974362946892982392102026757768294634315192339515087341680814494830217155444014098533286800042603143648380696107659034039954761630086373280766327302016030505504039811309136261586344249984013546495750986964444759902907317283530214494389423528724105357871858995104688340579209704958143492230234162525914575583509595912161151144767871509222243140123664303235932530389119303992891113926734437137373997765423743046287266221833146178599586996674179055558035528144427516131094808740828281426272232498150843486798478952376673698028447476903752873184496578868724748195181707155109676548710031337796810326010096709476061545589216276232893849317808600992356095074719439925419643204272148666893412646561602975209150608535238311256925358636210674332790976817073212354509062781971207275020663568619824207646315759042235338663102002797462350741651567787338968871162187113887835554546764134362962578768343707369855681005870660439327024727050363353099275303773093063761679528002866954610327554815000995956310422762904064329393973280828658366491884927331266414507213540099714747725313558076913127725327241058949476702736403534350396316722077134391135861782488157994965989984449346988246461427349336183972845753987572404078795554882652361039295289526167904021386841367337478634715277467845143083941364702632851010234966574832377010434424460229703125045639896873058917355766986857831878022726639908663801698649305069470065444662165333060370963153268742337719088818025581126034026872755272003441054692433596974396653430217218734693960151334196029599119623870009499361631870020067112982762313402000480977659355469416664555942971615059449898176783544795432969262602030887377974240322557113219498546145741556182059170009095525730280127925530356392494678184891971942054056646732309151257773478365997432322945071572801660937323972442227640989612999275252834400043975826202754969151466634088239369513785354031000043058526906870832486404507694385867500244285252620962875514363023301359077475352818368741044328240417202683810685381350555411060557514459992816458342448265494675793011956340625118237308792083125429013608402727811802304343573141518813893393628193014656099702877938445299552289015719710688479608104437229341890855878529389658076339559578306490417075017002867110585340049431846161483768792003219478996216086323475733501302909811835298725021093389111885071059429337431202938161485695054979351083097711286622561506412524211539239977510691175772978193302896066606748002513522794880802461055932173632625348404197776255374465521143684294419609447510233381001906354405230254958418810108853231559736915360641293464392160177987294253467547390758309424809287769988302033795088934645957537828084207138211043040769137420131071089118264986401866607803821583788293370212183150398807645947677236373739330817298844075072347881745777213543012408846190559490308073178073468978090347003171136385810661798666539074533793830121208106134076071188397064405215806326714508298417293396361655617317942894303419727426663816919208173388216698977086341450438379271767404841509959865450288472131243496624254598706297126740581368564926158877578559562615600399222331181545265673283318780360064853787084014605398284607003512352217884672268009352465207636880483942387462445233731940997810030796076929993570599128222780332780222204303606148987756838824166410113394008423317132625565475576749537831489942925329152898900653444416115864725521837143114007560168162868097165897693633459933061111137297974270987270760073565225410057565172101582035726762937795401040056268661737645255196753038338587190915245242446351219160466221712069516225029943080837394228980501002736440249547147797478588862540320362091982537344857746715950968878093902721341988804082293976946119222086147247182678371032572985900193791964322931666397289228546252641478505137730867100369768241411526744667638538851513720195514034706072803057196260734652445424154665930216290832704326942256766849756204318835487557963603763932408946701260041785326948154847526917519823403374615187308538123230202998911388578645739678836753335915174152496995817754147593607531173411275471537215825046396791237243905637885937196193563813712616612067574818876346033494345250141575873449348605574079528582305793274800791329022315523780969773935036986136472514708527223184818043722176554494604990084889826025709824580019825044868100966999471584767433049098885032857841520964402113770404769906025787086240049803257951799934322874418990434757159613237564479578053013025806910643433290514897850451956411480793164608415793551232360223752937524419754539821422458892659835569903932991311909680828803589061142375430896880616081642734509691036109701677826386161860209790592809056314011356384771007699142924527278254702589210858454220249609923862295774664112668401072962650984543880603366323026831944557657313328698852865736083473276405961511908105932423987922743295939122451038440114633113387530530780415980241794561739352931527282420943510560070439565835024730901552356668110088559820479998751682011570443417721394137691992607338968710432239678370571256919545649769566805141748046293355164216522560521503210609153033206136530469022523774769690101613731753971507055986819447043792792110377034922159016723730700405906078974112333692108436197516917879234709174604308991734614443401659908074982006365598865659263046286036074631348074684016970107887173939389507820004506485293891263730008818643357688072556032349433480781617756936115586355399858667490559073210294460518028782626238855074648397498048383826101698417411845280848219201115096518948562127947111854383177587193058344729075218191719623734649895617130091836531265368230360657652114961364099378219323994293004799626281521076685679805191873755295447696887073826389716902361955337543775531982018127726347996547418784599278944183650033774632085155699298041275099716120508321274385792059548609596717378950137312389687147931816475495031679211995754142519699409510905441997468872040597853657803553949945369654999335990931353213130441312037390859166985452295109436331967456959310680316240810186960717501736919936251546231866249080745958819620018198313887361752164602631311684167674762383887248241680607435161837674082100187567921920732192359351882602343202654836775464604614835726106587982515508209764272099792142002063624659515675764977763750508478818739917719515865535639922812729592596138148314396465133196709695118694143654498717796928643652297089634367502744916867587359966047619941873416089402547196256126919391422528679617938734218201748540589201462211273635706763808795498973236469693970144721773156340127626995230602670302441373099981269974531102895265324333719891081743248725801770046553973317835637601640687578924517478924314403074263870676177963458523274798180892852234335483783818460188799524070583761040030802841464809596756649752855788404576247695261816457852518814854443759606086962331509313658747904486331255277344859316691051436624770959703763648671828829880144640861015396686344302896290917675449271320547322516225687977874920796890974591327508299746061825338966404430928514985784030188096866800024863975786078887823938687524856789603460475620626294494951242373633744406960018482801165686158845004655004366546732020191534595495097949917262332529965036192885057036470223895394997764656651262089207017948063230543384436941519642028868937351956993950996102188061692679309078284202458848871295172808028132667132791333336493327930125959779587866517112360201145230875102477250148574718120233947895293435856727991092618717954032563751426761276615607923201333788664528012339322156239476857997500342929503769269108014411165637712057213568540926015456771600606570280518685205540133531705132978800739453233887279082528413757932519594233429073160648258469662217903219083296315055041434794580151594229734857665601024251763700925334382743148854709515176099338269422378571759151308211224320771062088523444101801962748290466135807632785417371422990423691511526276339056331803965041256496897867572140635299879381905993666835224595478095247947835467460945962656464319767580062523437967818790100020977736916786679804253885468030597346034549779428160826717672859824353459036516019180074331421569697409641444052212404766941342529421319402863998386254027303800916591852328163280834800784197945040721873298364632056554596292255155127980204362831848755279676311540856459721966243990984563025629728031421766663291374163475297312450691207916015469363122805989632671262861484206368723944657326498203963239629997376619803377021423182290133925427167292050665452787654985547718016443701797522461900543770649447130358187424764453276418913093494020283510684368875250674634950077451448392378449064206108521605665631726936104267501889609084451294661825779649301348772551755589676915569012791231409012283144997409576482454056285337616722910546984525599035629319176313830870660999812167168720706528167978760000305183108501170804857116702420811903188591937168970824498984480779199401103768914966013774946365410107910081472000680164144924132991647842046410652400962573529396052344984139425131606225866528908469961287622284338561773538932853327960139481928038207796599181003448533441800977493158983423327191045657323432687723248572910318802971329007841179098518337960119513119844848526233575815378418958923331940929034070856890337466581552679627486053875546900737457575709331589187394366820905728779854039323308770975655013185769033934850754527592555884074176900070663358163691143087162998266144014568851516001506638486792264719467317846600355149264525685782306478624571677171847660382729843320601022963375814465377951770038081435286151933862018589929869133266637398945382212483292719363390160862993893419633050598609480994980296808341844854498445757783690381565430584827808473542566920316282905204507869897034863702292347265964577795079780995309139208309336321337644663210123656287158138598328902730550660795577220114180555604092261859891280924663921828942239142272640803276671869355932634904855281462361498810463179980130984055901531251213211377770201924718466603794802463123029998247600366103873299619428030627996969203365130533856767634779619039694585225071548122891150878296770375849338948388727589551381759972768444565568131111979381799914222194959580316124439670151891087060939739276684669662704907816484835292450044693058393583017590064039298114257980224311914000025066088123005855220188718487125572980021934814102839827716188334053407792282658460978153494171270079175003974687790435017631589475464572489676152912393122887352064930596051954779523520890104817991081772784737147470850499283796478007149652968193618709781673295402467361408944848681382626026294420969471839463465117932991049685663343465378082060778805026716336813388967597430713608774049102217864475537038761993382009672983717902271750550411187174374288256463433205019966863972172581161508205016695362971625791430885840007224086253024428930024771333232977834404042751831093048704627598687857524645960349825558921354296592146469396994469173299759273953246510250399256813436207812164344022775663013406043027956644328958054936723110907765233541481575367746665792561146426759037281925588361086258143558406879519833670210324411204318070298602764701744559781388655637127925893638381558331733524820607346374806394625682824155351305889666563178599386705608389186044942362070951721026073280745437200998103452176583251707635970500627002945398374729996173264465204653772645856670777162366053148050732755944483820061685012375064209919727226335647005618628467705652544614787047098411050425135611041855218655346194818082723705008201054586996715046155096798693396663348310344671086622131594693944503279021260778189733526414333329296039924824917474031287827975194366635344559449966069912757975559423452438507432560298601834515865239835654960017083486331457694637803652603938889909348394377017244747166430398085261053704606210482551766230516315069727106497978396409905243480946056078045276298809793497315757918063883032384237267130195575180286749074911757546712881434901040601826721143059520811282159791778641555566054322991505621552190628226716821900048856328674484427214464306721265598495020426706998352476496346451970734964901824772190630787343403805090376875598789788233549720461163851754415726318728035987804438287473251183288003032298307854729986132046230223255761227850563511291657606801267838640484869056146449905530075089811337663255445006642503832443574492622518909780671057656716901973938647384303241737601083908139933377649250320050899247430070308429072629197227632971625204152528146610715828815987498000547041144215951429046787992395112161978873734891160843793061290620552454156481213249922204111296560108378202104338516405510115414883174041771201902108332337663720886721813794112171625074900314648333108312069936700159775819137908397698437169301367617780589675532772417636435159042798131165752745504907013610955469656805874728364169704544808887681292442302766381884135195468968610262597148942613538649374835387539787164424238028900226049831026123736806373028737518625731602649798316949128129634637159269603493074382074123381445526828543705020723021974213305838770498929511233319952020560139695528823948939340170791213381409455570022183040548882025390504498450181537043728951255681318710201497223483781039730025402334946899112281009785421796178223468790522106123571861455010694296719855086287984280497253337244517340565268837854738562935501865285872686794177622002416899938839289264174243784753511023467425909447600919721214152387840345413016861176438396316929547381810603993256701267992761349138945296875926721899083186333586895771455852501146762244624217526980098803327112219480725199575140825617962161531461130084922882232920637465750532900653399172386856225150123719656978547562694783087711450508704377961587503260447181062536829438510075957587761056010056178096526331395773073499307994077050332149262416455209398572546820976350395440684071232733900016713568451602985087530011199602007163128129330066997403417668333003974078808675279872824801829156806762244899793512281944583714613153529391671308156258718533449016422831051848039243416014589788940755116271393141891132972877697579688559474748218488106503945412038375472350753217217468273730929703537522313325563138325088784892913702848345946219178644012658418200020692202650353997888041047474516651348993312383191802505379609342289962362965289354770527332374542805782075650748467115343861241530522403429125808604982097185336302820057161071948765961979922377614585032711647593488718872952449604430982029052990075025193845349825726413020843833691348018473563714991173461140053898370235159081170888692970347701452817378624748096656541677159662176163881288425629271184689077695984259973863363241345712935922044538273839373352353140761215417692883896415117929394436584324400886797497866645192014226558137485257626695188042518642836126355571802706657132869825654241496451758020290599627092666834628724060670081321826330076101577420929911280025415525725273554720760558262850862707457005986544689564071448909842034551601223509933810605602069334781725722664923413341475380422882832887670440270928012205029771517717578631894816172812306270816482706428009972855687743967632250725546518484457637005000450905612152106067185782954833360624088695924704570639545831506409603505777539781856559731268607589683191363250474542722548039893916662374352846792409337269365485674496881986266703994310211447234495039918389069935287977793844722054054257063216216714026932933513109102393356521471873501599165789541237222340032687489755511265080210617494968671699790836228955459778599627508932693846720922927750060986651357890493342097983257383552819545047771363344835764676867565684210057381214303423870409118926529133240358160797570549833311076379339159881930770030620260172492140076300430567420723462660499229307362863883731999078081700297227064603004902390359420782458912878786139967253757849356156369497175848741545222358708143828621615394909199993949022744408933559547680947779667709110256327354207176607402149855892320000953701408204949029835599768536806922578479761701139389546514078652191737047943787978894183118782168391475130947515370421853563737703501822063522252576855145353959960054680661671744536364166523601717984653909853557108545681916548779656621380064964989901769136638702150589649397801188327727749117452636282328520369300061676073561982798908321790175433674253304452076893466687787255263861219318106549372232259943003794930383659252173271007277173870028987887588814356501836820499735834227925184334084450028220658703334076121148078213265164389770552190715686878702604128261467522317617823421174891887740955121407901515673709524839900946797271589936959491269740289959057029967396912003026698620587398061052311681201983886066474576251968764204810372733516225619292365268586554586442524380731516455924838851006210672558314540073123132682381345418019192601391543077604601333505356814276656903845267815480311205464322806602630343158704753498010421128854264522902258296560374892412976765796396220130096353397156864676173189435077116040593573221209493517012193221248353717138754348666776540963063361056441365405466063632323072430886570769024660541422713765712119793086739887266028071346407821640951200849527137768177823136323274314859516806140130742697833590031694653438032703700342102016524025360740068137574138432391737987727455010542358156601995666603501942939748158596837226816508638291186740000898213006949983758986504328353142067208410977662403523538359627169355241233678484469702330031643922354728357103349990288658686919530262708612460809907213327877231662256066388432618443197260994471785303608357261414789974139849924934664254758835039188172114520256407009461514692580279006983468224103776898837846582353159366236555564889699356806603793609215365138054173533689464608578245804703224312680505471730525986588362690337961298022711544535523168700571425253808099439060964148013998753150656015961737689147358313201092439034980124488590483587365155919942513008438005655073502594869724457903877606575876225948586532401624903680872972942547712319627405074357295385363466063503636100090927199032544708980445040019852586006656109763656025444404134506484222412207744076308874981166488964475086394294727040988735204737435712180203645607486437260788772619359427507525270364065936789912344451705117091143959171916972583692522108512539755172448310417212273298949258908290331724724169773296037860705209189897752949017617622490906747881715537313360808197623674130015398315954949592105412797756805933195709912111959578213986438485060856265476477196877955582437167709254896337722494595767870962239641299327187683600848266530492360721588684916652610690679810330607694838222256627618619422679981358680659131373780548920237393636714760417417236888005095943334804945598007272550661421775255836482118925443617030336114046857200645116901694498733273850047851807440209729613988849726781424490910764564368414030992502383584907149694981923183270984141796292421883530641201538829753375159162643480908971429362425464845636298770171625661936654103713908140137754374179453589012727232555591866716398206761248994063498923228483539296853191546925243643363374401191601815448068522097640648918179487996487701582674984977226084864520290701107888044492289462483717396127253952534239337769467526557131745067994534413345457281165067694934886169519233249006455775979440433308443270407715685650585756740121894466865896863397481982809021488614545246701822030134461383689517927277815214987209152280416576835229875690507594381172259702113665111246873434297198800537356335721946957150070307879231163119327370046566981020356030262617476740313763576631292751313535752280081150008761395745733230136788590072017613554887245529964458006866207854385329288408825081181733379740691383978223033950981675318441477007785704110289411484793289806727685580389841454811178373223599666896946237778591237697072377084181096937719706482705647459296888704310337610366786419301233929784977735430539922528254092358591744315772627501475894794300742181323630294574099584070193536750761939495525258296231237979688498428553610327981875807872961494892408312193620573734203947154703686298085487743629026793499190340445247092866728659597530323192259767257014069322721972926743480575078493274872556956716546234855116439941377249109759060415167559426226772095332984122777467429522535677042209844882167333962369370218867135277029043151105019417271552735992064819710311850984747466640336505951337462786824621247567667525837420568951042487554874483958677587786624793399978022126437894888972955531808963626663568638848926608152668418016468009681743189643872845906087934769577535680744127308161923232077735972876889525377062092740678899706765883066458030523630344105107839818051650594987059302573894210080612305312369442018258237553915457442253915887306953421394875984527327526868179777106363832651697915471181206507007975717304838212005822371264738064697364056874020308901284950647666549154283896393832075767788056842479795750332763575896771393888023789060220586560184531276962067028040049121670482314320227253711827804577075311407077233643095803452510448538284082169716730833392967009634612116875622770202291264395662011212155001686344863588821117811354514010398154548360541571102342902301238732458803673914077416074145688180868830664670643996601775839020630581564261898564051464439828275852064782554899566167810354055858742909618327823268719792467630781561372703213331389877908588397894236164724198790197300031400638858726043615703933270637500299174147176564898933916502754898329860395586699940807224354119438475001991946079190707729347676040210151892656522973440863622162209211164885544175602445558431261901713278727068453324522423617171906157001195079940331705108570608607755395477592925371937445512240687014605504935945501449855335931561353629227911547574424082186017267329105205456311852153414606919356015419693784341975534595017433837238590837582577839724232710390044770386667470863513440296341063841780128203931523555878283641579028465948867685276354127406913831074955698085932835233941164450754427642354537034870711901024222470015962435660652914225245692061356220953827561923619828257296936676515003977571214758764244517157969665153897989313025295162852795732797180963000951403200690987975243443597882524448740588176243175491031067585614498755950813740248549230355896822781864313891191178649230770523954785354921340215669675545305876689848727430557795259789583259221666091591334239543525544508993252292180831283415436438576441548803505568943736293748247688954704502010385742622475163964834905670085374548413031324975425532690142678043634080656257316795725677403088733816953377658297586095456082584805969304564942791777893883608788093046810066679347189793104916364300551029597937364360135518702260249675964631815244940976221197978894314917694261301109543783283027022165525107775556423219275581085567419199175326841602866743824488169564199591232346581907329411587755115074394918144482082272584860972446127100195521948793265302898066173571909891791980525452615908150384425348421990055502249532487174522854959742232379693841420403162489509423505143657702595608958148628208641098773834197992855476328586894076553357767900498419822055845643206289924463168734556626054881532422350313195816229389007567601405399028581154181115726374817060521464060848160905872047943041149806119430425147727031318298734849836467804345709871049080071567793780771389309986217279272265036798418815424756998549969706877213451438585779574150508623906217443942750149379328465411328934397997487806122089519414352805808676914226173445875302986563179450665280285561722304137505436590266897305072063353593164638568729919093224219123668023551709484682393005095990219696457975582838612776527205319823824573885976578756927246131872314196200273417516561872262401829796657071998980241034741192672539968805836821394521849206253461318925121909219418132703837804184152919122627223171696506221448057414479945021897978566450030335726885981979996415440758264711022766419550087809553678210248108872261339698087190013877615702861305735162566906858772601462049049944862091271643456591442714867308723831883305682118563838384438773243095247007372214267903661899876256808154406454135984534427871229389876588377412216101644064676254102234477856321376930441343165710529732391327143561302152926706684769959382582807580078740440956325595338280165252613534561269799836727770812084386603559846759797923099841290078498330025574040332488051493319616042424557211386475638354321388171627369059134750618294556322768185670509370398856798950541219462473684926956792984437119424293436855617516975448563325559162559905706102871280255317648968281336001584012963654801940379811613074447864510994200964835722271731338883995304162668567425045455865759059024846642795176851009488195078466876492912451551790789258398648209402978996776837131873108333109525319913436674655093315657322160866339122475771634747827454719881240784028415695984984525075929288144548551502178048091904353903863616474293461844111429256745374896988282964443237674330902590033087274635578279305908850238752226876787800864130262661348190041891476307564807109112015655208019253176921908472153719287841643207676984140799676772834338558227202643291290366428216028262744001588608829254414425195904254423473147277161391395949065726328961147169762469259471652047592840427261839827902706653460912840200553585900874092616016541743755086807785273117553238804569467212502640934738894387504359723379247160527061179187732138452546882356700331590056188447334847505192935947983230536166240640829639855107963858561371032632858492357091608733102818343963391950010071555730137300556332655454442883601989606373933014153278993018306492775102671736621341327425371633368063243093736030687077123165665473459790101055898288464114977594694668335171627999794702456927565579965496929867673925980743563634279203125764205748542640861151200578999279788458903553070808348324842172438413489215525988545955551111108975925379597475758509045229007019839022211562285354112905290079588575585737928728049001036813739543759674757965951047146942052185462975810510457221559290598487756721629650576983847307044055677932858377476158387785066870966000151663797904573933673793072970870839692757188290557006781687647397709789532006509677108498626997013940151954523390758389811971700060254186845310123972388674411049693173782381298895051045089412548875907105452836737867717045388241125831792960996647255867588078769822645754886447515854009572748483386066601514646257823432805411296362867534495023536889150080219884163849003466767641975024971879733788187103165141793676815201366340328185611887679161505197709975688051495912134325634695204915376185347904885180595870538192567109851233023368231150540125298562600823997317663833896179435905434349992363005288716987692207233535858540919030035633495777610651360163611705974848868942956947069305154452644865957870019586718544746436053446357751943318555979070511299171840326884238575730390140252352583801464280524312263019194651609224638753276376244416702279955714473771786279511578581731322411464640677534171355857451826945340102877554577993857373432515204228945018038286209323800325395794300447622519939416627637880640638677366867547244405164643353045908954779970408007208454500099530243292590184004014832292301641992798218802403709799914602804198803212925406719518347579780388632108712418888472015829470008599405210874646305437097370795783299493914413730037604290904047384709277937437252298363963702881305612259853562905037925064388296797083462500948138154541669486687171488097374864816663331505936549894085122206741675559112790477650657441408725417668370814301110048025859693086415768890947508558943823747266536087109683634077271821432182318253622432761464221762817108271437254026279763562582527541821535887795814309513551338651113459328563024540347652486069347762306557283028533507179952262452743299344632219045228936280234694895694157865455924818743920194668729435388567180942950636670221674061369441024569555565526915971474756861763518731464676969968072703305573552303107517935970691449726985704572909259947057257240314195594962413939026373046721476608128001915386722309401880118719395423051721571769093193676763388967895582780032474624914503118762324916954250849353881613109846594053960312994351922267710501878880019728721677851399134611904142414296917017806576933980884206540927121617294569542534720328927025706799958273625222341104580044826890451245710980823369573676558837366427160117529382851526543566088449675182840794898841538900504197242385819613636212176893054344852621716130202038850521388751332985691030355925495267736956668312321328739576325331208776414034223403908110482439566659345423135267820523701635705302473440502657238313808656524160238775781830628529643365961814516021439825460116552705966132495078292759868274081916379484780611288933476833547591990328217457823509712419309914031144296021619602864635747908430625828450569785958364150009499951445168401019484384017117917679840925945841614322408999029271269750431960347766568925756053788721543170535115545987613151951659734057672183643945200592164057338002519522986303247057427755008942163755799215186319057675632502184511048688897180503142053570227834782040277133526412319332655113419505137475333295011953632087049151404194480407791750607667243658003078750112456508925805273612193135794979079058050274211632264422265943898520978505765298070634450781520225783437285294036992046979362003336853988924557971235728544855408844520846826974160129535097613031957399235673403010131881086580674299858023787900445012680461973748552158901242011469779702350676196198402513867399540541169578769638890043376117948062551069559094731607161722231662123435210329405591621874249884710224133721979534023931826542501588217850048491596906620352060164884711337947871521962826118959455496361736938007991071177406504738565566688866879651906061134683130741392527193547541662523899484583010117284493013623824494617174570061569713365079699674096470406647015122158877057041543342847473687343434390612131726546832995287745822070525362175146075122168860661415522828372495414548710377740086226037927452986891174334705134607537336926568086418107492375927860043788802227333080199773048575986656442827620215708868760863361150309634312074647640039404425815714683952599722891548984433110755641392585096882276488675814535592568649541847349577431929452252364157733170023099804562505487227039717630333609045554462337833590754477304812435971493877152000651241723267425331624011412816167424244735200338410261829903492628954924310196518953446027604249483813653779339834759587168663764058319414107477309165882314132844931260089684067870430391352433972688059419196769920009585181062952942356662338589594151644252172533077895102039768072838274403192022676072127624976506248736486267807225273066278921482285413771435648521548013037420848854163727157168057068845311638936690951278700326986697256073749173579032931420984179939359961790196663087748298627614016332000790030460585428416544424556778041776617682918051421164668723546655132964589881982633566187485780902847261825595263297468079983729811023657104885279790866715225570764439086955747779221014050866200350937562824648749702388782283163234213381075137720163984835861978502013511710672647324323544347936895427451324948674931532365055449486026756005439541866502189595955512691320783531682006489826548743211809426000611304429639599585334321400253370599456616986609529800389267509355504101848952746682982873906589440045454952187970258040992813589719541464741586101699886973044031169569879446445624854113726527781028999970758062528983572489612034643740252412612951673639839902143150409939760169232725713758026485491939915382818553602804429650508051132850869824726648967257121078559663227916230524309877712172816203378234662980424380541303526888412670440557205421626561637050261846443570310332893814202885488409346987764465488807726458953846595214352615352407116257045137169101321752800357957076559249798680097330925255942766346939271780418182708698003759004374924186358479029272663906567038813242425970174993556164162852771487628136883297506675224575006118598555167943224393410440808892102009680286393132667015196094876206854035896222485034441478750662428323035175038440626748460758504256325216361175026881745164683293292583686906742834720693533223541638455529974134151866614964469523272832723509300117364971664104697983849554508066456317154824087436012126454640585164614855233157254363941297828001238235160987536992843562238656423717253014809698292207218681740884804050702716260282135441411239863511897057424956964714952829797767439091897469760025549250444353167123295757880979401119640216828827775452286246202915630426153778740066429628966345573282694612730336746360256775024923494655359804994567031154117390348533568625452455192278128871865713091280318065408507437374365169700536655127099161986992696027443596862383277405061780013233146396176719301131373933895726218221439722750361312477686542937423340370867204817364191668841163858155259500494530843867973742206303196533518144914702312796281687194617350474798617568003790815076644291946655892659178221857776780588906535673691524812220133621437234441827891696947199732043787452524909672538453267575557746666806071336789579861687333386336153781488583427349707059450532285003104886661094981699810868928170589482524391499611266818303024304649161014157303335910474589575245244279105643643195702361996771778891896523670972337538377616959280364521164170927818987096698819138811976289567810486403238137403535447336999353598573917167831581883500452009574096282962910475927751350431491240478009354701091275190407331796388106651862402804137449056753884403155263927264980503505456246050490760863850490937299996495645591210965037201199554565046822009432400140002247690006477898299635400497695385835913001161543269046987789586582110594431172492112276199497189774645014686432123473851075422419651703882827243846947546543581877014600033094950851237920240611627004806688244094228309694062514816645599131898640820579140799590569841725290921352915977517271243204342834860572293623238166758180194795053079596539722380656639691888585775055232251338077621761836551486778884489668354130751229902803536990993116407586444319950225122058756590657877055184470567677928243673169178098150538605150226643866546827455677483029190694243089655272224877687509219456270429513961934575326045289827479161623703467502212225831386583034136460549831054842582571280445972144844590334321131647937060932470180379411719357482597516849610640201384343772327721110951591565022678335079277106965494834891382227625452775275474805315778453351503666196048581821710709340845456464837663968799125218785282093393929010219860703011018081252360023823215368765541680049545356392676247368895563420328746173468828805392704429112990435072204059429061168533787303532206969729555296613003044201708933022970372612047872042142481213918479541682894685344034254455580062380289436459365570274610982365622255430973626213717561792127828897936557983267535580296527774906767360996630989339393412941769551402698897937736001183454965330751769351640139091417058066751102076171692152055361829608348525258801888030920739558504610199007750381533397442535658286091916635349607919191406747686281983342064432464996608311993363342963347886264999043361299794236630336718945763932159667440120555997092903306483159405140127004644136994474852955928413989284725890873834578893488329087308592286326482316078667903541666541178292119538342559334612023256079271823471707802369887858400089473434028195587629948699509351922514895863066331223267966760068727327570305996123083550886515630547865139593317111191074510316757815710092339386366615612078901589768030498271878438145115467169088826211831503283728263446644715412148786748527408681817752953783354131400205791201239041818843831736153490957227932409592413452388400420238207709984420789302855287493512407268420866210124741879318643518325883604371055531708322566876828912603748080326315483646781500227782763878762585168199884666095092810001350595656544731876022617217531025251720908173357691062595617961963560691769870377678145699286191770314392954410085999560242272906398359622376121705293022778167611455352668593546254063516296124278641145886532416697885953170084842875180480188704711069171740069944959189529461258194669250918422739326857299027964963661468605399434976277295341590684064373644344925587825507616408801162322182160043828602254222891906493628841529807596900485754962373332738716439693828625153383602173632694501402485199202098983763439873227416115270173531620420129045441509880757851469774341090668768945873330676210070807200610226236120856194427213869297917456096560377810220649885925757872340683220615290185901235327709935311493788832917858009729675521187294449527537991213190959907199182901568215124671922567382175042733917104815207148317804355107970268129037575240390928229461771599897965533782344270312185282628284296875668346287000249630257076941047679509589457366551749966950877412213058917808049488116128969411204126162023680893319700801241860542347668371662887680317574922536042756692476052934100833709243153724308057353089092722275888027127224732748072710924039676325217229468591453885758138278470260692086049249941404895885967343149538957310949785990623170127127258571170791412430820887053028548553720519272914862053322644935060058121607291062076066609072362962744219391416519658947964609088210751464572873123413002371599200853591327790970463461503557669496795176047088078432371677421378568078274599229891914219637887163359009752475807944947806619736009725738582553243306031855096788033986338510275686399716052229057157611983278035086416252807100079623677399486358252134155005486341984237748881947271651564882062558261804970791328719461123858094895824030342516320897103640607305578641432639075028020389833736769909438426193253138152994451035416637065793454743055850744725470022510502973960874018734930639422692466975345087380150469143442382084922897653690642956910373465173678751912962189742097242143191086855204818111017972626374310462934451741387803530352045788576172251736053773256605050005368439511947993237052024943860860839249139869478130443790406661051233231966673368579592435301153501400108403822751002411915404328700198099405753747907751525190718642956136219028209619908725233419004375852928587170909866250353161874094121460245550244573519017013955519241870486341889088278056068703003119923400070781232242797072892128180497276071832935396453923378268085524479523856324912178730574702496220829131172173063142434265592761896403610834738531832080476286551973125902018175515771906432775646824451242235924991743602094234478998948667220133374863777494047078740583908498358958955704979265741727140933651756975215879558892214063234555051814114801840137802485234784588713986840292121146944528375090598281551931506354071783631595709160944327659344715550331262445944032008379883173594154812336797200660113767393835602394479981925329054189597720766554126921219330029865905342445379636145046665408913371246503481132117366904943462258669182463056799146185176796352605265886765905905960293136383230887880370768637678140643623153433309665108061851638599097794566646311059062347380854560298079352406783284392968544452658388737806278335866442803789976465980388559488071280498819287723598696840803173765153022500000569392621605505669103429060146478207389099175454035762748579224009289784780807204290537547619420897281232650326974563396331870502429106299871625893476741369838087295134937060188678983609952098487746374805787714739800616462309051716766373852032959101506558492101317740143603394006684472650320369790234772477151868261643420493591965171522508223513783871687254865044117575809282664812107338332911486472589166594149677888677427680212319573242308484059309397131904987075875425555658418124190645429584838103886690681388570190784360534098097526191140125286853379519407460255018432584057365487975026198669162669562282033108192271997156539203470522310777063622384490027876762959860011178710623783944251362955345396457174579654307269643075920700573224179760859047740674982112835442108759567295816448663404602196229136364262789495657602709597596889454590982673944639995886077092172878793644740244684382302264756103976330353564571193868224105532396374696526973766211968815181270265602000549331495464552990716499448242795401053753024112332297640243418585993174834270182822837764765758658300308894094084587696739073853890431313184292795908939942134425021803160869015967581699608537750887538354100202572282485167894111326701740076710751411668129166594211929818489975243829977208762826138667602914052382644899080511564466540639339262958270401913430567085242565739672598847124686610615682686583086569582088930435300048621238191573827617259529237988560150961743096796298704239873585894119165249320620029755300253665837989211979100815964129014320906116052582877148523109745211255175814866211179724834187350669228582957229614768827661358996369155850235755374407038238332024067419687384272285853072526828419817416817743179009410567903975555862977979889470880338292531498213641773438666879307816850649581529479130219102330980872432181152206693201833844372927851798420986718281433789291657297392634799183703763128102765014547752592896482408585481717151081845062069230446580077119466175016955103222484171003873490018863170202939344192390196269270941092670480351836628438871384441560286338812956379021291034691056738162017786129834676620858269862281555711603778407384186413852297942602163732914587936464384072307293845828843363920846710686860196057634562911294527459043415156303568624362298675113092164079571425054091331348475383608920562287194154630740223835711421065603925937528929857401655252895974728965004076337491350236209468360636931085718983198040482045086739548630454649566498266310526393736996232958316684259709383043708506545260345154770171319638174473925959807349601739264767509044031969457081010871241414709561861146780272035128349952160795204346937546951939018070643445559039136410053196267274654841500521646265177548514284624543097222457408477276069346622506771631838525235912742114254388826323424537994294082097716669328141380766778982397030737573482013189982405469370058585705101607934814576980017871611987477445378189247121908664662499963816686481505026672370127900243276217056838120107595125562541652319522280834735934474306148587750258447556475187963696649249645693576246153510314736738637730438721256928584097293805661370880222457666231955046525332932935148237415202348968636691728806540578286895091346866681212663045885688893970097707431568654711648177827192270196869012983434932881868851324989688126995451496210024790255877373678457385720576277694803569460908793758255668786042152775968256281276578636258646702617103753313987616596498794301345827299488394030111541604686154077427704647433360430246677089814475793243681356651600536480106491124097691085707873750166718694395888128179991123592750319761356513061279435893218335080528904956935677543242022903191536812664333304408678317396668749927501628499349975882546185035769747824255217649055954089912934790713325550867721839920009881804535801332740644831371410972430010275092667444594752019427613039230889901843247084630845516826928852681455315787384985051485218033873108614963976151605343601413945924439880308006541834349609386542669687484309600014077996741034007387624506868158077586033658838522064925256383070080766045126670751395883854302552479820952605795705721863760080213868255857425173619385176260125689290739321934991589964707080468096593112661148880007619672475272703739437128330079070307474930873950358883935742157609263731346356710986210695665316769296406073594364778443671781216167147644895483533088796466482017764033781399876084437382926779405754429257441544098670120226694449967418521701091253237053680438034049751552251643028687471384473346727628361460866671658801609652865205034414160894345179767937424817973171073161794951788923717219530318951824590849598030189370018742910517310188792441598028567499192515562370670353011171825050307212771796075656940415673649886817938835007156189707083495198113447569904352343900140170328746087441637036854477271500393608163475161039329769330367104596609351822752126918596452488685858565092697110084403386881464767041542768798451715662306583656873984812272919609141758475886509235061330526392626905161570956239971132436949102462493364308032862361701298673272019450132810284923782010758443703631774486502434234030718660483513947941880663893087118913654389714268193860695702730899091422981990451878274792599573954633181718542823678955096589302299894571608607781462252580926131750223814563252644909968979257964646516166996213942538170844246996464017938084975558113272092101383511716941312394516937501829956243636360243831566567705786856871869589188840911929492139902827538020033597638092513458498433114284082608798393430006838340665623154258305071747765666449172498886075216680520502500608690889522689297880654648282168838707184051387443415278740092126794586557079025890720414387059208336510130897415312132384966434800807892324570803562854799038538128016467036661686060237072520560849124769850985995919570215035182998953577940573814543892930855214071154433392410860424019961294357368036957458483367350342876533062341915492122356039074828332451019195255880516898560407925540790543420913104428904739823392578104158921195981275492705853883121473834519161435898656950793806909615139172789670731838422390648989414090130122574567777456843181858911560299777803883201050697809911558981690907415342396641016044992941105874857187030275538378821485819310649128243822431716988882096349234541612436376673961774060386476346708084710839808571982901007069908584291709251671710804373335415859035557360207660075721288114718179932327714357499117839645378586442505865709616682960027315696641773771074248671989904370281441989803504032582860841238405410840722828217404279748834439161312611205427702244506822773777972282360388014589454070139036743923943992982918223234993848511914344027435424916941331425826741032796837603618951827654351834805877776968844351484458335725409275451944416464567686608488378365906975075155033007720667806514444571977976709166551862425875322110168030294488721816610477321459257046337873410632569076108334098391749455858857157651468189164886326538630683025831404582675787946663330611533570354260531787080947225010313128619935761258075824077423290498664124555561235960251956624998539844249660650054062419651423417080904080352509756422906133852222903736586072882209888716130803864133019556737590065196673959366487461937484230659919150456604622263241138220784355572205197037183205776324415378892685442310176894448117324636009651984300061138787282574763884077328117159974523872943576694311215656062274770988237041728499301721594265424692838961266761680884059452912166865324990847517785870248868224322262145688958024029374264538629521671065380537795963404248297597729191465570084852511391981123226782364887147210229261735033534149284508290274753970251505526027583316593661420986226758547944800014631341743298607277869560365403645941234788905951752606672835490470831879008457365634637407963744307003979121486228109464083236649378282170142555368509583407443914614821606035117022297571898125927133516682020494114325225356136453510238442729294290042049184200331460990593797486357359621505850380884692679781991854935671746291745441069342112947081072601320664591304529095050208870475546133469236644086868728771272628013582122538996837998961550702232083240536318123537341024988222061599419314890878491180802522018326270967325772959388111537995156969936631910424329031177600776499067862401755788795219045142267942326327098952514737062606957547728478277827792295392151078007393739472079364051801614905879887072845857296699794052832442228814970832348444559559434238116497740081781167422861533497712131281898067608442887092770871335061435125854159486530435477059412436869668152419340447389053094323250249988437791409060002568477473693955556219738277295265344747231779578400963720702415550449854314339088106593780979884027576688982301265863178969484562403661392478938698604216922316377696232369323625743544897609690734742910109624625125054156764371992325425386008242782026008349879753701093152222878643455993961229989462856432841135172480971949284158960693817771196307492359025094063198780744522041755203264720664447776680252576500341209367741276255335528576068201130759982965365951658552722070847062363268836736032733504585607955635535568807595542107966295059978435426819338225153807968351889217992205486373383890284749261660212170801187962073571642956814958745392910215262339144856857919281760172792743425335374325273918613154348754762528308308723422083978173708800011025586570085762782840132754356674938680905702374258802470380226006881517416840673743746567704258049923192734608190926206473460029905267190834117629788721196339017306912135423337693415560478166191256788500314971287027294259082922188339348399710508254046910514951594469205086546532071635607799608015433706868175881997112185115634839738602275318512796180108327320934621330054240561808457865846265465716547628360551033347215579532297449972864337408676588000542331911147490036851674288825138621751589693114827156262832746463024848410174282837678541206341553308627780669937509380294953656406163156998650186831955124287468944668733732613128755441370581225343529801032141759041129623536080413463498829121483249229109705168411723860592564414030270366892744646696112354571841164073617067999943955650444567553214894679859772422960723785677534380877793395947263787083035118108580819403241635565946967874838487051553923930760430769214476183982238995984461644083698896034527023157812556407731611567378844944744987649935996823586292639667176072334017907182843717651122107486192703932468129473242750628878044867524609484721968809431927103595537366030913971141330963769203323003574168406107329871444228746554590280629138116014910538950629546079723760757339484095667107926787774681775922305830916322015541847085521239402672295283691464841486808099763838990461215924603508001642988732555538292332068383630660823306117055842549832389576117279792294369868808333996858145200607150109672321681805296508324268902538301256077689623569173630994119696640304698573683474872415368733054210553954212456128079535170697054384233191421360211516980009308698669621767231856896663757235759222221826436760290153941335348710659827757514453081182484460789840141135380439022525090819907442251443427285524481601315643987154429247649330359104254215634149653879702376107960572078095272872756867822073667534060913814895365845489824124593756610658773624724689524606491641053311601944794843207129004224916328453392610935258665053708699681200178427674141532119835351546733850517924492768773798135160129028067777909194773658437915892308726006861509675899050706169605344551797464733178126211829891120175716895881017734940131233920856147902165768421561723432461102674583536686498564047580436922568579751364959580365305307022787348866920651452865203636254571333022556341140551133652972752486176929795677238108162069020845670929284486987615228704406767531469332343663027605002112361209790308935672068251576447001525469039735668372590148530508957605620551861685152228317589025152026424100648388589915954593344414603911365103829893557246590584576569638935352337237720936993526129340319084855564352114150343855810115669659650166733543992398976476257311433545105909673788408741047343022179557034073422191864568013791865369061899854920065443028667173784165684263839764110426649089735094460849650921071948615751454329495723344012989729427105492016148213368989282028410073618374782239313881542026547669339296343121381705561991497375468245183579681994925452552357030065791878236476147618402482883686869045800269410562049737883773693461170478161156465035146565166073199944193944312295820417575103877567853152162138699728115093909506326130490716611366784180163253960343525449278878129394313275912188101436890696621009254095985325223332008086621061743946785039563028455559366671582192778504642404046181593061742527581411056176984386756004358291352331028214651764253252781582458820149743268142436193959897326516969798427223319981934936750485249474939247773831219434773142925031708682402698734551730039179043735951656092848970425058699914836758655120650617549030695586752617079088096171341958713528823219126640023596809773776812174160039009760461886665405526316820631360460682787251258771516555472614863936495813538770126470517304680742726204050625981145465892513947387069456280920148394479335904024190532243892687744068827145082636338279828938744893116444926161419169518461908319461281624291899636081227455019328147462669202529561757417256872891152433797466680226291579656700409037498833101141999140232676946198832656327994917392759467764576293368833287878513110059181623005886656127219016177266889755281272065546828057724254665511238156393339947568577648135492003535397964566759141145595133749123478222062400232077096260893713299965493487393005647992301127135522481554638034104323745490361505648126115769406082397408530282919193837979032070331107749476392574635213555049937401495332271762183643898832447584170532430740303914249988931247276302612934468398998901523370760554782512713646747398341591852486576240252222376931713747190186357660618980816680780055307215762460271994527759988595472260438744792392903879616726526886483554393220318958004218315397518851176332196373716407706582548461129403602906524890769122340267234118361231657957262188461880429571649470117668438231784490297325330510696231052429536197207758491115290473340949190453426891885183813280034255467946898841380233677609444592076551868999207527361847881409444772130151656403680242586594522306076767150451798189449138274070032714412422533028345349731407226995871019758903134717066552738628030571400661716347568001951237268686381546086896429621164518600816023172864020464895587590625068063540732709900528587397308361056630693023930821953132732966245768499886337167345560291033861879678022575008563686929580548751907604377303902628291927051950724104443090009392700659202270068757626912647140560066954587461444428054388310369830905075412688821653696816608455622894362510502952593895069785568332139951036696262785715077672635392842610291466066596670853613342560880717840293853242200258532813152163227536155981402048528826634585340537019208467431648139180244066849836443440391313690466486570159716583839984210185585125082247725419066460053698230761998476722428689828772198685020607362190760211130658676108647070980631877240018104748718290500596436743146803892703547249698049611308273870877225650158128687169926686264387915675668851612504265520744904891027233220314436405525016695109422689255006222525726473927149184835961243443570262651948196609968256381984631160563912597399635106621611165004877410246350770008302464402534802717763572247925570085557606420398929882402767691828172710700302376136331434127211033956570545190033355967218518039175793651680005313078290917143957283171590186648047062582092124018510480730581473839713523770184920860860276962592065164060574632397435829684235655235856025064193208535897649755426029147986666530135334978857557979005791109703590477719778133244063110579668132629301823066169889521467943013915608371461087263527813132408540566720325673408250563439928006374242100821337266650719504553627841651031125591844812752971102354001817343561110317957422487984032424207530150576706662827908394051881350575596820633709730913521412462863469847371528908422455649376480327438930985265118486874951260145809530795284325620254110432466521201424084191793614959075820439171120877399789611050625569351008480772009262691707411999194152437656676618583296472793914287900998616147163693718311224618615856933420114110239324902574546555962761153757776003679599679049571186401311076585290539541234062482157999872869410086056370184215313983600256389079548217724254192737002608296872240193774247937824069470405046139708681695286486873702072497224786740355641348723404353319928415955195010425233996317416242991413787953621037397683953422086408647151133766667747197081146854483407178058320880557911928334178465859586965982454844637834108156982607646964547192581059078866819714947601709974427191690028246037897495087664351696932495636505839189355764791570088016764076422548817875586578430162801796119563991857818112808178157069140300410983098484327914238502772392708664914403385235300407097137369947594639211740032395892422832462812957171270795856489360296350362448456084320426639286256348246017794143034859579866004752059977574896436973955344542134700793148627527829780143594606368768872404581716062292412231995164111911683496233461977848271447037139713755199233750810541921777237030432762982683275465453149799951589859743839136055305177272418689244034767683613289110116443408712986973431135204106966074227029970376198541336995337471356521814957052849625256747622828376659679950299389901326008086430453616025980524879886124473748837883157429332656781811006480570266665081150956221774862540704715258649050288663664974010820103944102522621753236129666664079535485407679621179848883908431606338125351143670687181693226622286326513051236760415403124665933037860100116360377954240417550320583980809979945803579964437916914001464668251321848198968943701985985477526014661892126653729111993935994144597049776419736356000172172274334770676928857985762444393897371112649883126977003788795037502531823065914047654500143768615428465553220050167307387758198046833171877135853743672751086872986192192891936752455677143421839370809797939809823074379525417184552355925232428883251757257143361147521380211951788938233241281034721003718761500275080910141144355109300123370384171313925895821992977457544167834220627541294393864976885824544463271772031072010236756747297351406567540345435202614549014355628943646638823393106373902565181907180806498579198489757505695811315017096374799947234547345854046900007140499746155734187490250870498245596567185344455089503200856066118889827393689874511662914537210858799322359822951970613750433296023002250719474215288443999519028954618125960115420877735162794930206075441559102658272406402601482968198940797285179947294390857178216060069023135765334921700425313918831158774107324756831297146245479868941014348806453232632464057112682388400866497140387823756819424407867499361951154840409785256214375029104069015742306526284029057500308527016332475339283020135353495914784110349366099885402097534179778128638298665566466319677163812274548468172557407251522407438072304168582861914148164208693675532857098670418684652584544368871902986090090992164564333057962632408283175339222160761151290048272351485005119641093841264619891400337196733521687186995993865860565068042051813803834489227428177795212265368128823410407223499706531006886401377879479539119804224008785158331529138106770775312139947843000114372719335406866764377303203654305382737348038281417798156129523642600375303279361328463866817116235479110482931070966428282502786231959469479853797251774040887065354728640086001489002350395810479953563818813137883474851003189812464376378037100312793729159277454337782443956019288693217225275839493520927067453668048088107123620485774199831601730978040248439963225946054337404499482354125572780397323305733574151479347689529554808167219892075160737515479687470903327705429068797302983955765354224607922078528437671361334746223351414409428513651021888765398089295140503766905044130913819710103160644670176922847040888747500675837777718255678507803810113578097110862903087007594544721083441865148734657650380837727986231661876022810359898847393176356524311706382691854565701275106052253892851946151994384052359433530405055051702708185537810438387405863140163819398051586752184393941431755173059452101046835448903846785979698665425499515889510378103497882414756700063084995756773346988123489857268565800835093729690138844565276135108248388295873487267882339955723742025052683869551431725165787005419934495938209349418557648179882416295682688123877847962797467877445403146315322723405602344604766872248579292863211339456741728930725043988389020446481482974903244038540670311463762379594409430559072688108063541741961894642773467678224710708288067340038524513142727822632801358381299933249629760501880628800585204992186904179511404013054746956138310938381164590104454633185136584733905291195806053258683563626594243993746671329356680795428699305060808937984065383389642600902794028755972048243638976304902662912901377926849911207614896703545847337082484148239195737527962257264073330928441477138086759587546509824652179574507467623363754411761545089783560074294978141227405947036637057734915865946661333179847295998824891149990841706260709941998554567039505689881642294322294654592060706091157093374206431428938667683886673479050388966845809325010592594693443302028586976423927931529917703047722552991927696484878876698395521691385042995298045810151815041541113898491475375767133917312181561766500908023547760104559001641197283828609946048550218156618242087875213127121904745401222404238125605629700173037733201058043427985840439639625329054483983781023274550684506924415365633853137673767702695844176722945421628467931928637154306887716749862639157267861257815721927215633590667426395073861372753260333529227788012599148811042055208318766381891736933157762342332651629229429782666396678506408581856806052802889803374747128872037252649855875999367397182808427938197147769541323618871786559262183542169135326646715182702973553564196557060071725817612934050363938385887575958719735623575850309705508779936357454439287637557451474048365885361668640586062252485731381266964504945003623735208873878275275838572923314811620466303895236312014855728528498399674509680088675116315612784941750719751284108202492823259159391273120396915768020995608641226032654949824680873396612495808778676215138313299974939621069580591736110109290304327584187336966643105383322168879047007509402410805049797938915036969486163482141551550925299202227741079567220393593942816442133773396277804669496589178034668213757598592109888270144552627986441628393749644328512989471592125248829525808483209717967194009435742438004190398876577591101868536480557601203631634190328782487910613993823966708481040557870192809780359683628691712093893493949345545933470405389475670186318530229178964110035032496786642034936621639537178858341562339107310213388857316903192255317866300482171728083957833751567230910693989886150188901692824814370139694008403382270420966459279263642956396641295894384454388956514473123182351038718485024035323794499144528604013861913400789235686267091508730492660728727951233945736734396190125634025573372270537906607281984518168387802130043092528328296331458530446434615849505212750362663815874313114642110212047822062659820652110502021899990712038408598905425649420246018449881762390920321127801001865101413557587627285475721784341782104112348493758272477614387591185149711974195050643599083653654495057766233872972497003276418433629195818198089451679929925218781410956634484639104444560577494717506586333017105503347897447003571188196209807082970343149743099269175103938395511737356449044226433479566936869755567514750058863244540021362782357188143518103174037328611508804911491091560509334985582903760394116125211053602190858665814180661092515431681740629292412259783024080465295802591428325875294988729980903586762208716648677436994441618259183879178939163350011474190359444645684877999859936599842894439772267065336794529359287603953445730191492098645253959999391181025083837394995566972341991377926511092499156082950777182601270772411080670354383885202330410660462375712354704924676505714143123838237429604433949600887575498952074190345291736261066455955246246435573411114965548825530094530230993551434426790275308135561176081315738918919340690262277663329706881462464760467918889594431250603630998459121327891999860852313116371252847039486418185161625958100366286214368686259134156933873942455777981285489338940425356685808203875150759653652876574806732969652092592520561475864251611526398759649385303590551771036602876762845678861159674841069844118797941281664982574559196002478135274616603651715510266256265765902542401883727966443533442781491934838294349776798341783432563387775969877070600076400612230624438746851190380383553524281073585896009752382851411066230005578633729038802607322950260791626078288185457851164936862867720585492911162767496606174178325911426100207251425556306604930761394639495025552614481704990187868734363203397130135954414192576082559306136546885689245070856119109173889729966837335735584189791720674976770061969854271767964357084371147848820142092619788592996632070866305242105439648739886428310411343067545658449233907313384834007305345123742512115892428525937506003804768566563668106188696441683677010913122702723639814336764777709884067569960112407851440119930366264750666065090572653531003636882348568616996889797078570089060770949622815404521477702968413150848253633074577305599339418527854893971835668092756799654257492286633867165786218843420474934498757663760201045330017960717962164522407209558432062631884339554751871417193676332105646096167714694594152992906316504795558286208671005608585953995722896611535057357590406881826166918771318910483200916796949542132795534172102910005589762431481600356097396548370913715654799913181785318407565263459516589346486310368773221939349177087635295661998104254769385372867850437823547949628246068605080711604152624632999202987312418470968878766454142328347893610710906832276785912250817635325422548032187507829114901293165479086017633542674525129602987759881264039067079709238565342894756165715717314066768058560831562013544638026894448115837800997192867307720957382269841187985032804919707191758997827267647236413833681967999802191509154468071096330081644355292678828956776935029959605544827717828166392155658212643768811682285873670001716882791217653074106722062158828590049136948580045194602762977421661869023782901535811696069906662330525930228047684300497630453893667345315488635014166345464828577592052922236509956828966320146235330273448187060111823006831177239281913346312161687136281162691698938093160100897641928790786827725814663673637791665556440190533864857540397812991517151962610017219701196696035214033712787775285381479045668330361023988433480456237042206477492410617464037818014074056491441322357118203777410119273823912185969071244228507222613767655937000708427839397826035991225910000008740785938119938773102657499608685109961846154833024228590725485511007967774923519243760708196110024863910751818510443130973996672116506546863629638924465130789916014107981854233151470060107977796920392395707415505839757849193000388468223668790946846808773836263135754335707341251523242070803763117327019615419906997960513919424282123131799157881563213544092851814892372573249947967871062239975271310580529125154191553995247117225541141860387607295290750148798548869323514705159644013981297384365420166609295976596822818598517198848526703053428955579948081377339454998648425477602719548169832114400435388182897757701856302140933185323269977309129954563120611838429175575060782737588068614850185302637435993970201275319753376317735425759290932589252067912915941633311715653578942632122329373683441756478234970004764571542270202076937228959266127637011052395477906192419759976533507867257866391937330867521351956780216459364013751613608559951430709871646316458727099545041941941363188214716419721696167212983409320290901571426602326726600124920567177063673429429670927579616064095045896925171553582066526402088743279518637480634882946945462935027116401710952173441850191258959356368161104238402583710852052368754908888947400983084168367990358181593315509710728510131415506462383243231774933786104981600534901960919583987931311805857282654597478515436635275896863307460006622245869864310823965273655740379316437255222977534892226440904149262189017143694982452687547172520529318863506539099930172728683387554042018887556898541152228787032006906787934177794046558543812213930923464164271777666356768744581365695420126985628476741794215193172803684577479251254890229572297727339828660610238660097415520949017254905367015878450925051534826423576558527567226345637971663755019227851421491668281945503519294764109678980692431964933984889701678805666316728050010431670518724198829283900411651739006054430551135032388151659389557817166333489652305559599960366885478201307994585475530475738732004213293003063827346705010979310401175110697279543265780810858478291936889406719562819554985860086486170747014048840426486221361738006424616354067949992543306169499039441840740827030140581344449206282299397530348393078929168580904344128834007447108666243729628423130215055022485854687030925724481190762322367462754128914311938710747027614148529916417007520641968392290210695600510417249705705712097452658496115241555876795986610547876250481552116943358995176944262635301400335719866547184979587219372941526308334530558842697673045404083609534028052506433238890148912706380502588724903329901501964947295009589684876282582735467179886761683442451032863635861103683556450338146622882132018116993303099997128194717223779505234920349561855405814948973522742705981904519055651940737495569893952865806651663306109754357670044225463239974169509003947432669271232422379605107036485643199059195569429892789246089067233600013184478127591302553077925455532088937113735805122474340109115709666595696448128714586168068546046092868823411327315108590916099718604984674840444858074794169421788739442881342648754048123770934079737008471113707544173739269341155730297927748408908658172638455524462043350973803641325570060291086934535405286571826378556718114005837970255519430928898044164049986583226035139082839292027644941509802726844314322723084008934418434135913331216979619395176170474652494549027359916805628801146463975123060861688479707689295909404717495429721337931778400618649644962057234336674988914697932656817362792020855880332430201575503350750510915619005323531617750974844505676288862690118200479390572883968610067912820683838411959575641787861916219031088172696876617193788547887119464187067684939977705217322923686436253738170344599447843333503021218935806366498115712109534899378537882879140755816289887489675317750580661679441488598324105868505187919525990760640530009582910945070424095739029887432192201065184271851792635311996656211420582190925159521410104291316649101070455032436605540110151879138211332946387208986425874717472548737785658227746821938335673223748441929052455999934694816581335902921060918440241091077844178960795692913980933793575554735607861450811151954028336086462208013871805848580746963164578621998559137871714872296587823081345285008579399091492563824984914121249904005059996277039681382316753628057605193122639441002206664955914553441050127562038784885836962982541816508936168937089335987628343081237575203550204668489215074329364957946230721029870187095483466775855754526779622904338919869694564514601002458896649517160398691394132210764341547441851305649455726115788065874358614732958247551605724931970883055252446562807297972843739898440286639518266495264918007125314791862914707052109899766848923721386411709912845611706580879264744538914088658200224055298599189924194501136951882183574663885487160799667506837400637250030397830633009733563562714525663995629296049242839366045421994386970344721856670791513257332930580343281274683624271880892921869706977670714008273653761613486095607318239836036451599847833850181628666082971373362926314690759786829151053574863375857399750259155950854086747202877540404349782696302345715906572205396682061749485307407595426768926331480303494516743647815377826347431302995243544154474146018518880266123980433507364980377718398478214953794872038545755418581009516870538463141210024443955542219529459721943355309390569308098632661240779198673903812120677134770214849805871366541928891512499646250716781475467940257556269776583124521292493541293663103060060715661891230158639223576724566318172675679885023777928360312239313145203340124372570529079581192079119713843633685961927259753866698961701020191877601001108230059826254810759874468951468082073958701510840100354352755577570530381574246116440531488483320219044673751190395348484430850131710938081927834081451155185201733634024140502259321178687528539552118801203374222894835555111378256201501963557071288473563076282566719372774136439782163275225177609910312759402787307553799291160513872538980970017591108761653890410049796493181626098930067526679238169784468843503774031606820379451021439495281137245973045328136799546229967990403547559238182071049419906334759501337957424011163077428025872367466267924167791607542280512981345627826630099191721998491727889513280665814000370015453877934985860814667256789704749723124101598791652183599926798704951499684480996676741748102694956206416794187692167962648898673398097468752812257707755918219338949754258539063119455420572840472978456919885315770426489592476285273195321539112139973099325949221986475883799408529626805394365629607648729408064410119207385312645018317739258609814202341820562680309577348924059093092778973952657246754662894902156088891361704015437245416829255245731343938571721648228104225811694548192690732605199869767008687955345230990140552080560576555021679144639034217608457520058643669087021497728157327606773099790277237563678825783327102382660545669701820975062411760314666140996803225662199255219715946292978971482747889497330720886387315450007222419937058995062854720825297346602996750502223011069379782417212809845317185315227267397527159997594922080766715933784194622728514718209139264123390032607915521855188874740936683655373770037873120596338115909174849845119148165811672469785880863557139574422235289917076399201466713666569766758954989236385577736650335284848806769066525444170579945899850359439064372917156967238143844309862537451055871304851834520471302437663982420713419904710241316171570114878448733525885543521359834872026083376325897165735028988213974617883115470892493323402891067889313012244725352224704694553728160002890904446197194549713066815142335474746499054920556205469731639268094362784892779886549058992646698990503866982364215924595700761707181716977569578914866415987397500937614186071112743919208825271479582221911401651227311325703499098870589452335887270901862648386247610247038035732693119066083741058811685502661556707167093817854393899907849758423852918241281573353355928318660416831209903904246853919058658416405074089454032514051685704413739606280080279777060080785215282802883526347135629406878268180762534321763137032360320167061844706749100345598050202424610153823285227972702746331303586331666097834645757671463592265645401937650022759056802714389533782215432822893666131560076813910917492573900961355019422800589788384400815895677202669830416591697507948871446515611839063240510516374925713277062130251576917186731940781573072230337015738398566330937384208192739096679800953858693082462355863643903684044740139028209669989643843956882647413314504502622343439245655241674675553738839355064757535186369661718203272065735649474369915430488931421132668914281936779633536569558056966206655132145611373070963385863898298195855937356207743397628536959293482946459545772922502251007278664282204894323463024645461949505183439686836201076654712505054501199246342033628037958796083269245933866027453735779065542201419384858952408150092256475935595013562373394712833194339621791685094720191458504957188446068866244412921508769989182879002929023789324777535952663274499151815959213212409806428439308174105254861921678566601084442242433538682851231317119035110944410855278574296809317166241473221207316115090405630387283609674532292023224105106852981658377787593267120736058789402795318153640837808652015296182865174767420290875502503412769813162479984349173877983626166201357115989848387687481728643341414810737175106573271051218813876392318630887416315194408447254485964985510930754103704172993388795257823591783553676060508419535238665881986610237830626911750419312816306356006349870727349319994997315453317066462074687294533431787835083035229721763387690621236076251873197121270409421459897813670918636390799640742912805264019582167509399752306632279739456203713894508714245916498185987089758413874815151803652441454363887598391250725663309068803804647727915736994068819622128353762602189436961443455005928782178109525542716288405586716171377846106339825815719101169966234764658165035891131635739102931356526465148337484410878644756837338670032110079962373708761640632468562490831454442434059287023374644050414912794470725570863373908132499628308213052321535218770124659730516901533080483965953529051595884037236862211909164777448236848160036730863158972461445165294577318416993199053834809746942066307554626823561643322816882704313449388025285974490383113095571281877435877829723843269234435283076697502301669988613212350276592556400647797912036839115172480620103163654405031451802443072315245282756560887850268096335248175496163668710153219226302402123820536125517820850190318291472038136977727231643559397973064191375978237781074527635126086279748034214855600159039426859780001604333458506432665407097866297476803517858386529424211690447314632752770600340675222711623330331991007463600183606863746942329146651444034745129432101751287484495225677328295910060072337798635952328044752265433117051524000072634953001780976390474394559172342350580756752399805340626635280379652720494513292582742699789319334372782150982249594205986776803071815909188970268929888498293467503524452616351968729717387933524013959770771459278145507207523470087072426081263600813742854561173613233624537583062318824042835023115197636158346921074097982400693794407810562834757063550235612704176875960900434774741127570868351100545380631751240189289757177763950954176218410927632531055367790094653273101371702708706673495593376347553084742909011732725898517591815025816044775425741419020087581685761205660753154878875622511664217385981841006244375132631745614058065131891412458617092137996792796080347582414012379400473942148057250000533589981737770665637595025942894899416727051193679925265382468115236582396579250876722262316114366363517216970314577885180631635572335226792507218789912022974116066436380105841848314268039496104883545390759861440689017586504399718543709476553936995816116416904126651771427470743702652552215945499695750552204746791959939501175513300777530195530542617997208796767136322337564580099432756001469338057647330129293608259411036306151157110958437433316374012645284438780157829307026529253575505506416024102748303157132653342812957194846815451511039176106535874096652249333665792159625232763809359161061460402029966607913848581873382872552511637584830351627346264412579867648682528376531987683730558406033997485284463059347354134755490254390490756144111300854789663163321054018846422928107394242475334625143128344459914401868595998893556044763296268584533135610522288975965334170477295401102388672700373161789677575038085171614849012310054566265781445390469773314663114283254497665421264248812815173460517987594528711141641279777842096303503919493827586514529007134666433998849236489912541684792922700808776389217523221520169776487724023658546312498652623751769228221762913709904458853840574277728259033970578891533532452792425771677005082601837291606904611125021968986766074502628642499693027753799692662812781407751593055246880519522430382845616600399987429581416774718602339459813213265059794926133557412186557547962939819848816281510898416785967328145934783382624760832402940090490748496589188915055211932349408985871542504197407985182206375453805906950273503887335039541708098584053324628131409023630396689712798713494012442057039566864495858691731945438646527735826788211161497541500065705815826833359373028258308992060765958687075261303322670954418255803650923834915416849279835814649631961636932483804790248120389581346196712322164452676106035451721753785144095474760780006590211762140295641421036033624054813441013938075978726552062929205852717152495961586127384600039487741918658858541220296412383117075010484503124161276761504688296676375613521652326674133171523931783532659863850198844768439558520563050394232498149876005353859585840895232825332972156137602363230551169966776964528162607025441380318542017411806563986242960443465633054117469808235725751730802108623521272718506778934827876252633883847370776896298369661787481328250712567668553086268125877508827014779926251567799819356048120873763803907490043811376948416954002446590532573092985500741323223706256841853091894737293581462757406543883804297497942989630548851741670655699570239779122881537058000712617770607231134153190636664853847874423868473560627544521208470795575109708738477808045957121542875563932666604695997453795697869336025233995215042816061161210681389673346344707998374602482231538962374480993008773267548114728410158064578329541666151524586452733796066085396284389135970384561205707462964703603611441591033400516898246358570372509203187985290606388273358774670275132307598561640552940672945988865857246301323053522559191283537318297743435463040570868727847938392867439664739879551435927947246440861487377538349689638850777212276027896929030597018573828842732474744876750626669322670322226988125663435071166118452148742939123058743741923311403592895311759884826094966938364545860745843248606840189197250923533757406956553194172176164738677127271517444447927177402380164020091796045756567727120912675613449462529522634130884278884885107248526902225631466402371366329241381102931877027539325780452421862665403383214853921454482697862794884702773497987604206042276801814514129290123621694578602344749974796625732156799166314981199793852272907359902479343055548401182077817850956615402855236301881977676979814896741292837362295754821128736052335255758243548082998552022529260382875409377445050718670892069753283933876990627909654829528081498075418665726640014944242471806261900770525825357324517960649789890443947313042856572159157908547490012761799382571082180931974762330639777807505480333663129776567042950574587312940365622812682671093341756439042328721321569829548622584952119528990908796332408628387038977831535560945584531403760877392087421437429835728136388709369079976934972660278481998303894546925903669348482406553913020807036466184758186152385423442759572423320367634819284702741648326256969271717084847646180263528685053382882285705852112212142270677182530973230288350491434871830109451317247861261238655849137379446811515012860315867666074651441254013504172861275143323282974848944701195270013855174965809028028704295183788159257950967727942900674668385207349214939002818901479026344848814726111325275261917009221075118937372566258132048937444849363037914608825341911080762523265111388658174326173245395592943237969484926716433514827418583901591522815039905971756841596779980407180892610536845286616854673730748344158802063195491215335082775734688528543206185998052234125579470286780198994461620116665584257953335604330871613943819740062370627710068680889323310014367105098592371753760066838733732857535103298408378032642705763684014931897842299672639750899734172970284227484472226213481797819905662995607320948924248009941170757753100058870717185864748986365152848751263576717414901956559303614691506436365599488098521832008753114414745410404847880122674213723368601888924505291297369786751936693181499874217585794649187082452127290216239089748193789367808489617364054966805571294133612702215946927448637867096782516408180679792003887440271041555228939615127858275222503286492316916481641265402478475081049897762030689248763058848231170919840225030228113307789531135935604349335093388615997069144262579528830155305067767737777056965724943327272767239217880268975225879135885161457239186079559051705992084044204269366834772316656245348184550382404271933001845265551549057048060801048660874208519353690923313023636070359537314980621188592810540429603973193569605037273078707723416655702746599484385117984188534905256762827363613036273580204472364870727169550624963660779670694547251743400911712841760895483427106756092829290217843745949328919721783205452711406353035898638942637931048229415457658024395923775028650737797129468615905282240499212856432480466112941178569505960101403075312204524699326716831335852219144859983049838277718643542776738734131899975776974496607618697093672141097352746989155124303621739316094605353535011827551189169874939630977179846743998527799197117206188181344850126646862976803240336108997029742236171850992250065552116676176794489793189498938649367667025668528780256117293033817746965769628337662714886015718060800928338452238732775304349337996353888917121981516156229298199803269785326153159002613045923919852438720139780114648144298721527345888522685629545332843345931063944456618827963311687898795239647592413128090329958197511817608195148187478318773003686800988588983044061250910001976039685995636028117460445153399415502933115571198429348246842985879425184423374897112255173360323534134515022419382882112163160109724882336558407507117181031953520793763921316670481121419589025651239637269456574985063503819120425827350340401046870494175570364887185526545812296648438650702608534966596267693947086627441468026588561668374952951294746730272934461874768519907531658393482441694969429551200871161361917551942093142519475121328692544833812320295668711209888843996442247742324122408429587227030103519895869331660968627085460134291478644000244244628772674792743322483893604078569822989782866487320080285666180957250446124863007285716874452478282937634015217664923307905481478330551607219162133839681083300728730172460330450946187061517064208744161987507746609459720620240965136561190353571670324248895248457025563591288277997026638740193435432300070391767283072807905707461832810905299203804524413907505538188042321739243178869919323466302335953257955844381732707467018021413218873659995616566346745178785309750283555079865312507483461427029367796896792555670758878409916984706131465852886476850023986446133527242415139504033634915893973288009600675711145216013062901067587917021356008886268643174480109936232186948560505548376093288578795894780103664725544640681217530660583575833623012431674549958168639061501215228712016279530982038341035656314514754567292971568711531243857987207798971679956124893901231401333717152756966541047436167864768694450368224696503077780591231370290139517331279653109279273966920600496011538740820925690279507698831181302079739076422850588828746035516602058155421187128484660723242929409581930401966202343788293601423571728780911502056403064675866498086926611945557817522354849847945378535679619527423137320742059011904877046709297935006159160074574253972737628369723836638943799466386831956656577328755115719766618433896776071356697582630808165002945175088498362977295270175518003217542650295640638628627105687574692512599714938497341030569810831591847267736887445786278711509821881021297630658828086768228757354485263661549580774150607181870751381498698156791483993981433228354798024303168492859548376605560920962164341904734864027700152810319515674449538623296869050556496289969570448165825233347589540146985021903881352380236513498181567275566852349276773001196853217726281149342521856389540043955336016387805994158921685888485641708479023595918902129517097578152021127788385456741329190923285263150146874634144145340554587016325323157627255543285142875999946665899323164944524252369111023206328676659673124457590230881056843755597566154074843576188650297794788942679341264882862870469199144691008470410072251189188551603752515739454476189313929970349300084967408933563836505298223399752263811617034631576549550184119788761218995467927533192234680744102653989039769378446059551351472824539894255509978568044398393004794596796526474947195056299891725677984691091783840584808855119716287015539241464397490143812542484011615171981272993002875701379243860870062759421404920804527579475268290286230699101967571537955870589918472265592417370259717497083619654619577328652147713213662909424283635368478740015192726774781740534520424334733563742115594356921603122735822282286998717460291540966774813422908855430595147917386923429586147385923286104985939590207250194794877902050825026824844385951344441397375381172714581056886901781581771142857216483932060897084598863949432442045821083225203409075514092203278678916280855174268416269265000814573496823298711400995303200313460791088433511428730569165780013798149196472924235849250813368351013628494942781794200483434243754952819873259664871205180236012339669537991284441976086961022580106075504018069195677795261393620294146406928659400217070561222962930165850292336886893674977450139532428935973122224406670954593996840024967833982245452761913060521002791652473622319530339482577128945702018265895241146124660461105564997705421453858485057592410386080579580806789322003105074089090492576041514295929086874815282092941653750876428534513511549907324715499595385214234101617989114666387045060443643878262517130106416452506800101466102144906601194279445158953355555046412411498551303697237614517605390940676918253173033972729597416539852213039631423065767841712017181743745133327998845822857533279849698961768162197429978590076521913374344627685005804214878208049489495105021438586198622777318239312815627019117090884698024764091316172237646841715515579862229084677444151325518971934683284121668072350937565915483220608650371896194965468493827300118947635832799699589735915367378319820867247857047930643399188375770938059183269859731438011441771208423254989884259634122412696775374070453618797948714235590556390806685566329057096387802036095785055750433748316547350599313512600635279333297085306353060829176896969433766473116036452894193448114913420775159048248602792503065402742324505731910771879393179814444668786811155041901867744381656650518774224968562931769391470378769619271097159373900819324958935787421271161500172910156277889673122964024505740588523433592351025711639382213331571617886888316956952328842848413914208598342256160852031632000182056862533752246995080247467405494952757228485222329193703693719112667791613012591615046608643743148288933742106984761185676662985579058290273030633357468338584740348556902777560214385472357661651703971559827251513164311287975598133820535617489747474222732804186318305304106045850857954377265669360173326420231588175558681333941195259342421241845177195974890697350300421456667670547997852377728600409558062752851378090177518336023856162710802901732401228264895062702846188657595310137437760905286293272690350520590010492225960555295164656853134855867180332594671169274450172605970558958848602310450612236275967950049568331999130852836677823597933085187685585914108930225124622222173977833611392051749564018311735219445069445686736089346045402597128162237935389839355660855553537344194878267817778600367961500769806371665620139895457263502045049129816240868713214276882345478776427304755066797461376099778881183886697628597182682732119651370594121943110127737011588235279270253704725894738097596161256284474796304641502643293881331192816523708017658713474851134888537468257640572035207390941654130193539017477248243965022608672923584849947507565982113754812905464355361699089076190082955491786496574656498474055514193949429877544885172608677808159799561591510108399961606350501820267476254058124555717561572330803364771605551193887478272233465269383809832660538715117301718327793123021794023043973222477529220117438182653691304201810106168752750637934821902881778605962631188547393376456047290261682126239748597034892017190807058902875802207600805890048205617017692573977067948683017269903092298467944012640126394862303868529345793707943767232100911060789081499001117869333920385852760832601407889731462810432329703553345643672294574829522496947866328682287558477919735365470140661572309543726066909548188676957272819789489045834637001830723569508059501045947784112931058622550418948345359157286010315573747036467484803046421785135315206590476045313380359049993606919055988728091615381231565976721451808649738895667773424125977392748281017193084548455143710278892540137309682019315783542329531063444391393089875738834157953178080717167530294183933620902408455178466250355407374290913214888322842476658868875274120857013705967008632086425443778079387064779420974257078566043355364895862731399491978458124316328101257012774039707972301017508355024822433520467733340399171929645367559366847762138426434955539327882052398191595164917702714091273087578273930950039147897845743774705179593544413197314158949038476340623653171809562043494535844988884457930138216633223796843290577934665020059658696692498860926748286839619589540080762901266917749882295725402456081423362322728566730719810299876330540439848861919956987044035431573116719302324873129481684526017840165763958078724047582161536720992155771381184553671212098534116199741634102018556783182230619807584961251161218831635455569202109633052475151692903598213987567371843843592767408178963337407054750069053786829019471819842051140219915441789159770618982296729613252262095468711669193832544959652466035744708647584628779461180568710745370423457452549778575380330808981389555093843289253015452145057837994695339414211636076291782428072081884252072276149038705277354475917206921309509530108955645199569889446810891002253939837853135368489380119206714616457611709281218462985234712264192727822582837736344806076190081073068092424309267343872713846938645856442739940265525811290209236904134096579620178901952944269854773739564707722482842793888602912419359123935437952937677112653401647100445429902242688951409082165979379814698999132263155016243686490336456530217865093725609534862223075974665054927488743557089763976467189651938130181731864789027689717018377714814519739385007687612145830512968209746990650865431901289803955878175821069567809776999276659275385247626627142645533961011529283638842144084807920217800058027608110393355810537324441564534928927789703003202904116582430894863432319841705255387153420732344762665382718572608361691803135929329332833919301769348600046915716070216465854082556558371101491276715563598002257972299604733916557691105347844993900401353149601257784720125542605489885735093778244033135140232328473664081669104165313018668096884636559088682814476770337286679059960139030067907247999845848225150587571429744753804834191858420599445289151727796966088088363708551554763542246255642150834729412242270667805948405808453300651743643891501674590747278966592897935432310847374910113324425944683735452919920902168575871619979283081805062434029583396802510199191300229969987112407753283766857683805728596223283593435472959115384603179569362636172476133818287560546272795902249003371900439739289522275042921134876145520957255042908483170185936656350053000918063874109413814668381710634069244768927800687743973006049326980601639886969601117009507146432225446380218080180397774043344692335517138873825868604296044663331360096889066931305785366418875538007728230240636304381524028870994584914612922483950804060504639282993769507301019506521964982819225957715478652482233435145133344220320727105939538705620663201565223486131455195874610267387380653181158677449529199208141504829310272531797717085034978988802684724780344854118398901882199220257526123039328882080571669141586047167697713080321840283786374517480283186604721221362572179635801614840537334025628944976102156411780837595012239646880192572242583286028919935994582563483157500247938868100194301472380194372769549060475438929503037173216163882257940754593185857374289718124408121053328106860035391926070382387469161679829280614386887016772262757285478004121061358042213092770168254484871331654941012103249713645099008274951917961275751324731425950669055290837193895274988596190664227993819260301231502204866146895655139586969725485660588706309112165885020091751746662483087165511398056352495557036709067705591466704108589820415600891030755958700623267246682286859714305393692980437715669273110792874845997991953240598900341402597598784989981110926806811553287022269183639272984630597553409830497022887537698932175546218904290349935377387342074920207913832884532977309924158972283129426033894134064868076476993102687501356681854068926533524101707712995389719646808193624390509343414041379342617676740405451963570720028354149086032416487565472074600973019769397022427474750602257113891739908884285669821917224814915139117546409620078683497585944073294339875382778612191182966708648825990697380249007254721972708048021696701046259898990730693308987800379630374358092284037948308092426053234728584763188343687524310200463582456914095420376489070619848518379319427991360134784756363309036071133809390768506873309658935503173616634212535260874450901826986415784184486585394648277702492915601517852688538459127926859014037403188787788826500438922548082462121603003552090713918398266404001125445801237740883810480234919361648071275752371385947567740265164226630452790750002064936659607234361033096347838149663393542727556251610610475617017528353455728021426222191617918386611509832860688885644376669932994291678328814286672469069767997349611362778286424817726485829908411380830994718296305909929996911900280557381031963066680919721833470306820701898321491548198443235102372788271078369761620487539142417285179761110938401830972194609127935716872391773690053417881838653097087572441155372442952083677223398027772409067859627846433399386048320913744568476937878988269839701308271827619407597175925918045273988062241793718697051606195067460980148808811029398792516593380936102642261574470656832912649446612724131257359915495175698186006475543809381913534871476789120045860184350583243668171064058150135910851600710503735757788807176318757749165058995712495466615470432222052734751336610488952131659321319705282841798741926875092073619534949199041602282424860906650642951895664494823253151777028218019976283197602487178767647916159784016206284386992595391651800261250195571123204687081418863731062321721203322315956091743118992116820716002137713994591945633455984121238589661202830399677754141889443564101817660766573640426648642117721369676409682027940462153055972363639718721114586325494573558689667028259503405361826703772379938290356618188667177111199997329344304413130286080439888293090749778224549671645563065366979407652711188258000557166531026528709106684245440536330984096183605934882777547203499516779977232927902448793427693259024523713754614625169377397825961477739865212699251435902091338071119358878243287859437557167894186237560129992217160972782189856085508006332719133511019351052537703471287697538787874854875389135453334486128317732848405620429992150073292248221352591283489001699889508965561629164723753453008311716359163222962636496215623500640966657855339251705679009676999044601246217906408214517865080806853238714379905137680066093006165792818818676976272428904177604389558812982426129131036221752174480495493786241747863892365073868268600362603236300305144227215855754216252762892061445708316950454327688581266259806556857382348572588038205485189417848177273020125798915418910711610953573896092095324403250536684148869138447259494615357663035282226433068944110722373064910535689637821548217968447416975111772138946934734277442235578970109391579716432766202671483744941115435547253217943034439195758906345483102659110402104202777763169777186886556405209214236696066002143556145595506811434955228880850149917521749197149883496707427075005473486079899647274026476783606576289215103598128651636299526188196708250071968180851216925945735014761386967899268818388402382582692280371654462915927058475877258128804307837924337283452065061228103785175441901549669640222018278639250609174486994405448987098570591812499203346322484580033168914640401724558426846706993827055776351021122633697925070875448344829216704754048898094740613919684073628342607587591500272811523786865919103916672087959288144288073234404928579227624131260500113483116342220719248559490479444633071411503508273170822696519246537540774271103882155338905330051181765422265282787980728076256793957597836146019426611926378426191081882553046669812774416731312383296334898146904986621336202535609664625764544303939262227026524713682204370455594155688521938912158955596278728226379778767334327879094048327419110034583127473492161807494629297076868944638369904311245225219287453343314923894563300725933533368647701943476807567012805789245988317158825605516285978214655210992582430418106026429406465082474380594996418641901341225024577434282059933530496602928468206997465193854884304912619475958109109620628106944411383851255229409373630343859143353487278057962437381821327823397146916278317182294064457478672236629985611154631920993867449402476803736279605690407276423907018537464834185912240614404850575757631332920858361419134937760220070373471499223134283193685267071548696373538247720973462045268542956259737502163309087571630399276671616197211084212200478441970943013640385753830314233421440482674410361210521750503290421169436646283144740912917340537320875580510073078813975339210982566792521273047661915441545356879685167301948436022286328801908040819211335324086000552869455401926577450334522234201985955588617116146090797557431653693266513622239577442547043502644490881497560041256485535734027616880446904561384875469573252597277867530168252537535043073520504533287409147002845313342156841225827518549883655009157226178942340336838871959049373606567306728400862754099283186327837991432943977167033438424569704541000154927493823992952285987173065431557604099655725663552222026964754030609573434587491269999087435777310945347436038249915014896562908370497842805505656760274087209179906550728148289026412000611434921788186771926195716058301605491299555196279044479224360964358331970681550626348665835845637344444629303388964742097314794227473839019197544296956091123821632679279287824638090979608838320418426837790949990570694333021270153507534489613043305162686255070812873833454795581592684491755273066038618596782630212401703297330293932887149764989563623957201018915001517635470491768667488794933303390327689542055784241667395448603024250204349751933948900545228006283638736087175587454781442445983317200386060023551382310147317480465766157616044694995746711348441016717190005972349162894430833670574246804365170755592198185772225416344403565556820431553811457706128390058909569147415850810404291133144636836312176608546876122261844169059018414769402596940218493035188061667940204716645787596246671706458653323243692633907570739410693552674050693274906164555007788837619577814301964846742398785502254235674213650825291430310511937624442451443289830546293371526674437838214928310403777409487593595466484393050299687682126066671083418119605465616504590917591956777812206496525383875841613027190521485317854496136094912311372281668090207536987037935967862260351322162677721736320135843229547109165826357464492555349192027288109389179536699768765481005825111377146482294504897873281328963340949185334415140151754248754384717123275395060233289513662397071849923887935670028757253828751016585373958427429919401127530752778002784700504212241762337910259173911993041761202567068468690797827298791568091040716180216022740999673772325199165634398675109580345193453799156758626207807863260339975265273441239439497269462505327771287944139951013680984682690574747003943676097131377874334163802808459117306716655267984068087727580336876161861457152650758263280208482363186592755251063036003726251981826162159127692394109886777970284572629425910288788881818401707644145077180847261887729123223963446537192190818252120454826098899206693488616143536735696814993936968371324555543862342450908931725392955190679406060825514821504743616293592411192275251050972003128425785343577022320213160766867429835789835128294897329886702183599711718818568866350101318509301513971444060557743649396924517403373119571985911068895464747825501346536270614611673595914895517891923488533940779640385596250222361416503577294846490447774017329424959753934229219964016982466029940287339732351373842233677013370378098703825614581095689823015121597228338054967683506868384582395854903735154387385512323693973116416899299297471558073761084608917309499361846294345584925689334150553857333273747238580164974279613160595530884374822329047430932996045547164091833979146943982602843623180050706134336581441578398948199726899553098041925217244421512165314442151666080114633539778637321520095665759042522383761240023261734641908077830108129467506982672425450032140629130280044261974636968621129737753084626644173756121268075024596498574421347072717723800750701132744195620463986889575254918275288926611707901017516586745746275960340412153323319368809910411077132413412389290966268363542933777875640852320683126060946742492229750563041004707638666901258741836219879486707790997443978124618047855034114482794142548386235623120593888505423119845237745911817305680596319657531994180761326137428502766158204445378937361541381417719297358822167085975421032257640983202616804485947869303567990706142967962400094237283281279852439093569439337206688127075599921925121985274351069813075824177839976612454040673488911826842250643829173966613920676516248611237055701646808720692730724781032690344189822498066701534523491004807863990647563177728926745879867096631069037148453686264080824686905391760829487924920063434761314277636287237565667338348361319528655991605851740218623538824400693625435547062785383695036175847460813934380068087212562640626194700829747066967209746020785840680258113091174649257679296404300568478641315657795199377634791332488648830833374579826233519487354041651258883123132505683279607217738933250184781004386539219441133772644717778660532288056633868606516733794410130835517088328773252278757251216139060881025582903540150544949603626779786026098959852743774191651894927815041707000937655270376536356726014427151541038299839859900828065810646204135985576015546608176636757104017802264774973390258363386253570520694177399124285644930737164045554797635303036206717392755884886163405955973318123749270677765700691516892662580995289366775855409480757303132449117258370147046541560426968222027944507160928097486407515928141044675595014772884567818808807588414466095678263614098449067140647051609133902385196768536709659432383766852242894050575902895761001351367679260373485874833685388946425469832266738537030512787121653730904985358893669166880813341150744651800376977464014687207758840256645191017960795038148044055542412697525656574866294204366599572450403516902098442426418056633197916831201759901111316560158261849703386519278148531270244147841892733432357858656774050195949607749206805760036232458489020381700944301243268191952386653009018120170522353008368741386325030223220222468812454148387035208326539585596833768200796784204540617188274854815817365579721893501375217789490283150465155974183866381072094171734441929419290522532538512748959463247011371982946052604588182444018846049724803164853791442909947692237348638939211744643259166377960110468705479586479130351335079624690297236814671395594471296832555431851829396976342513775166711716826672121723709737444193089807378769933460418235928520699613077883663467810045291092535641614770993494135554545710722876017163471948608396054526002503661919028353528819584678226683036879175464824341868267457745289520690284156419996091240833313408319850709382230180741887238710576365901327281057916818509389958071312071508057299121225014327134799236855433456586429336512453587824178931131194643879141320796278048032021815213853741739747691768665152738476421430911923747549187445100517507714953788001730548116942806846567652489674017641055393831861484587751882028622895986002785387723907473912226704443142464667263725161855658991760584048346869428786824989329863505954955411387069877424114678518263799015662990293998843961545091967731646344456207584167536985066748089405589217014356877019316154860178505131851928858419356413307810514289349242028332653060637498186610194939340139339843772339323350155976221320360585762912379890714097259195081181981749058308288760953957381433203671445076691319923176272646689418277275898271523611092997383572006060144592373395782592134314306623517659395822122076351506615410573133888970177069105728741220553633086772117072724626810210335922183576705180365507685070834381647506552497842516776778199637283045471183075640545966858661263471419013981518718897168771314555225684262290416606735086602836923601376500419906485927711386479581023957309310720685159502356907794270575785730680783028253052288219860665434456881569169957538907910681601596911779218950308418024019369839338915269282630793417240666085694699988348988599580505844750478133728224220549305857537092090477477679327034753699020189165746069865286094195266435907806987701583557983813102349479103343979273828358026981985126029428701414893973309102683860993747168142599481113008053975383465443772581022477973234151832010618931762831857105188341381917355110428371787957188523291912732666877810748229216334652697228033487726149440537247738159105189237170957296952790834808926401153012712070564086295327412572467960690970984077564475378754598787042830242398779598025176159447908055020868894542447119131601269995459972801899832510749089916649207104315213312334298170816620244505188891361051351025988381750626918804235014373262047246017582135394376141925289860625078156702128347107939851234244877064161815116949870272627662989137956457889210406864451339680803289047855790600543278250181346333084183986592985461039289999869815624353158817208164174280690092819178294314113583983075329665808908720908831410534993581367568456280819671519748922352567167510008470992887817165600664659203204085075388983729959407916092596104691348838317396810967219191787010595217939582574482327598498398666272237989235484445898981640457993094626002777860950673548983896206318259753435635834417069941696455038594157580285627610742950230534797969692298175017617312665885631471168682613103025988544652238081494718752134815773417103967709458104308998733867336749337763198940720299130998740919430115462092042760916735977923036986047239860694453159693411466494796621382927522603646236499129851795294864812672436885018762652521207927732349957285070677107530918631464935028916818380929240550867417070600520580947051255148163902149764145074696055642773837053792472645081890597784419142049666710604906486494329076364667567835956535669787870900123807484399886308297328159210670069529776719102233819496665072441183638077418448331509246001538432240838063302640401851421622748693021812426230214218477507307924079085156643673162375345750502234598184436257771754013280315863074720075426041560256352038403257084151527353167570382447279553576819712098750343655317216757905964277736176836463432960066382890745918203627837937035086410755720092224689748542061359623436049640312836447006931016002765538108131018873512713518645720739281887693474712561631008066342225484140608587817936616063159704606826666176419921363782356222249194161810691410044391952854989343116156133046856353786917982548750480817521769060215967984001768513757955159195670172679259703759856241681098970821203350860427832151336548160709503358087152120703932341377311948905392062182324736895928500800204219653668265279762604506299592225451996772173760938148682053963718818673871088077701698798874064132139645387114206585276656729902181432369712937382739957809111802212590012601307554292686166660919868898483497461118831371924744564461156741202209757981052776330592262958467953818669669434882510467737712752930093251466561356356028537301441561860802517872474730045123475470340708016482328511387931279524374687571230219798562247104241777475853717534080346568284315082616622855317515043631288510267321596020884771597261990222551351879729055153519617697399987701871254302594891119760304615783741330082727201927037315981402359708056495237232395518159663200844071727536722717828050500881013039300222440076714550207430942864313151868089680871361755516977725180254832981728662452017853362476106080955868259341798476118236363002231585310203003327445975797338818033371731371982602532636634520043184285246021916594546471221338675065349802445938356552557874689621653644397904388020837945231603662201303806617178578843271509075778976452853973259284642687573633519236636397206943952682365574692419388657848471672858550599452666119435118684442474820264455412673677311166327878905580294869086515714283225744418182072630500195193070428047746279126280813832715303817773896478527202577540782902976031730823546020857501507401593466315267052278864892576332350771328734187494617776417546280187901329171604277112154878637647406893144642011053338694002532028975180634781429026795915852141375026684103449021063355143580975572767846251800118440111626163865511668129295776765903580986178964084096193606719345051787881010222060752361170732521768784942506819947020818848372539050650971367753507205835874385878353748305007221523147407404138450998772579436352717742339527602122597373334008473031178161755335995567396051562307988434209679006386171746087620947648674065687949051706450290249472270231395543176417566478960489892363795277543326564587062770712849568975637533700867330556127297263522141311699164683161934133712493685244845173599356254488498810488275568401113467824047522680828428936592355615808698428994075730621285896271357538755431544899714834131745425435766742208180395422042542712621742687720964230544551318985537019306906541013423137139301726119328854282977432975020956679662441771000395972479968518488537096055989461166608677630843071223107077544210889033540295741663597390954647805630234893729945204938625323853510190163270067578543502810634281215392539118133956907623203093180824915442142440432250358065728699421180994243999308993196701081465686134993607137175360386082317016933019939185178142312563445760068633634992700071130463688522006740321606853237034279232808982188865747379405257725304705909995749411885008110577860676365380723046135973305894632949304178633571799529685772468697641779372123969817985914425960596142658139134676769839120618983016685252485655738001081997986571829978410006235981874397954973190226524380642431026576182465142904532369082092324185251145967753734001351072191044911405764013376680874973633837540784658941440197537733440586384796966633615171676901600701408292939495212797522272107881680267111472055238669012206278670336609063922455542158151329473831798012926151651337559807073405426026099010005112000760793064019035146126312169808448142416708128902441358715075809141502820159087512837228636046136007798144906961054066160535394223607835165454164583501493816018414285075255558883466106687650617334549741844014926559537449847385222052399565707235797771290618553526916684968554486564518482888009123874144437268636184634200497497688469109296792963484622262301044532756617357127842383178030692101114128741772230994698954002686622122759945580912277708280858015523244474099234072779196728222155416283625178610634317453462307033802601448454504360361702915723315860821147598288774042804962361555139690385016110212218822959230763332006871965515249951892438676882378383347245402719166446355391035031762683945210117261627519737189386251404859387733574240148831922930234097550201178477424642486892485680532874466881737203824894691190085599863584687224407063882884539429502779067951419830495946249286168295127932009378395551978617610195132429799515347066238685432123008159609791048778091473732216467501605046828245834918656038866150870059578529831534476791790061302312237713330878775031376294065770215196979950081258354824544397103094974728969141568033448017209562833343928343198858838688345645967486288884955956767332414533646782726396055701836528769796215151829301157678238431444646064333456045618822217988540173958337352344343824854927513564024802258816170474892772848226899845353346936516252805443374615112868261913739417488918273543465101979883140911372304277675228800763989071609362320093745548812486964005346244002690717860424067633862214998936642437019511855133953605624718840624203430545341900247684230853140264069921651358463652984989096511675673757780060458595283819042815972675014243525071797755296421538585178111892611046553326390949334778269884608046046168713069692556282435103364887989647208291652193155309485925275404169613923933062964233745513807992631868125036059600088595569361710389677597375712086468218429691304843922879205802481330682252787070663241145446848455143734326060078253454821187505302876402182606763693626182650784975226818411499795847032159026053698537700401779047539660005638242662530963901842533621559543773951816180861276256311281863137533408836256648269236763737635300373986741043521363484451324558957293297297084856462514135810731724293864261381921256689209905067742277251420646081123531579162097467133868044131804134271951340520938030346787761395354115594348862545986777801500762865264102220172770576993737199518197299164911314453543042748818398911408326454859216830731168104905649574427560995860384633933763468456814330084133997425291989168065466059655043654884975252229823287767629784253429098666750341721041649270660532350550458389496935911562098209568109359746431823445253977360821623532776725464421245934782721892478454524063452185486392269302227974161227423553904326234382737501509715135880402519103720459230290854673062903373981691972031789598839106040933286066839419335121407420684134051704068553725651844139274811993252863889712964397968553991624098163603265111045991586735111808900966220406121296484954386647537084658690353362279368986519741818483250936167161164769224169346764667943791593777801387756862576250916873370828840453653145854872558752371199672882335151960859719941580919139333115177096915331013462739991848031624890571090880945683886126088911499132700978153976118305743142820471655670236020210292278766669028783500997297807397923439470110321980354504500471316224467467666287256848139921567727197163354862823761865166293466122225140199209470601268892991696439468972622167337546977240200065931917906330667857892459956988978028704421457090113891949348002067055544728982975902907192499309984508218160307678231479580562140885483485142463391397225380962942603549166721342407106438001618051788100394988967526917145796996574175795841510615259355528761097872285989366978604172266128877771598188780194818315681143582458237024952756605677794534021372711449154196266929211610560729526122507777708133608363959525101504476742416523735196163983246134933502902468033305835011856433136886734763414602140014205766074972599131353755049683675698732524190667621711708119775493400272258638237923191624556072467344262330691310939512855665686070099387642644066654958410649903427089075058503937713609365186140163554889955072877505064218198166862770652558190989512339202688655494108817148125315841279787450409646107811011614334973640921445074146123503847836789819045302332692777559073631948812813418581218513060447281433553471592905195056312263518874620684969588431200380985846581117751318970787727053362915925261792100718408776609867110277576876210249656388552609645883610334152060188020881446473005076260355208881050235089075826976667218993806085981878376347032272140971304773594239140729368457271949555767164293813413614774555194080997491616096316099852257254951732404244082573172388985048911679086994123910439187755128045504067039489414459234149532370679250080352031100778923932581638150239710627168439009278048607382439957478106207844698191194096001153524287127466565593840152138800005767338684326776982647695254379400713283590249953783402245477844031084167043245291623140868325325129157323905996382985553218902440379359624023664820875767982080167429772816129499188060840455079184878008991078672995245694628902521648741893266583159311439573313818487225145221899882841080470925945593002789974586693262470679042898257687302127869053656174405085720283336150403834950513359464980421672372734045008886438267342982275883705676215187073282033376830426918395836840439305054384072489234465055346759066448400059200622742596510507474186767413265101680332173017655951635121183804127263464785101105898121904873238197945866335215091747665711239376935598487340371673617300546148834883285520692573440749602690150999019899595239388567885134537241482183038520130668302631657420839618560909778646549982893396866838772494153240832287315071054007947026816408400781123422312025891911564440908524978081066482795186915998094984269978873144477930353641985009832025773633402122418841507776189223386839576194426826720878547447907109598535258618913223898600032447554373349835632433630827130082714096835492613943731257226893797990029453707585505057505398209430318554252758278595534018913531763716417309669761352712540718661325023588210131486472826941148773356628185967076484451495160846707634009266217451842468782491308014134599907852437402887004805485357169806291921769892579415108585239199650923620002753200145946721941157244109384904297955777353239998572428090915857064203498285930803890634671521848802136322254212948524203412637337007139920309932787033404139554880328679843316133040513184801323963966439543994936815423429346111159055651220517145557753107311312619913924296119265587247405605009115969795994879677471586577569455016140098034319298886055605497341918731088941381858743911072634236457686273612666856529831254084015361308759030581216677790733872722796076604346680687763765350402371975724317897776509508572267570252545233383312617102633342044063405091515546180141566546341628276149821729314329356997540883972526476574239903897390756150152403256922060741736024042581256636568094690849283206584723391493334552520279718086267202613319509654885674519263816510017677466802794336181738052836209542855375170874764118178162518597622116734615517647877461021452001857920264513698676304862388873650469718940710901607284958753087156047309082234908654873398938717901636521299627255316220294042348576453853496927352490623283179239595233196446784524114805115909785477024286904419273732702495813350347109344635092051736946987499017006422696130844558774909095686058134948863052207835537456585603362448157921027403280557837427357567501642194726470656550710022604533650612760753474907964312912675843893334146409265171812691240173770643342189836926626179954981061610040419765766597204978679211745012968776845400441790462204722469565116278688621429355530549072604003961290819408805146408515552112709372802139153011388691518148788567104709328885818421717100781759131973507959192686287718754616820674623489246268047717164245191344233495012926888899979515300678664049610577446367308420587138701609469233786284413711621648166137596971531833026550484785119859353602233282093453889014754247037186146810297283242323850312026790413513533362994364616748131384684437575111315625309937697408903883720821517760450576746098005754563578946364553184318383600955751414498219338906633280136663693536469810396671870186580419926433882903663145818068348813403219545948030178038170261377958219009170133634209750527424575914071200037074102056799679723914397070668590047432483981417561635341166883727285618830999911789292762715742030898660984008120241490327330508692520319737462743856566840694559389095261509498484789905323587382037835507198802626135445398132691953774567427886191136753381544149762887710384128501894600978718717938081299293118766454394575005847729925573165765958335300451462317720274383050997088472303777412393441223635597773513199422370180586239206606028994913856489190940834155171577749391490989641350186266573670565603502155891718749472472374377541141103588010839223013278748960287335234814251485311062818682949371310706163340658923779212889289684100302207055095724649891262147059999144690118478111707949994441907935717128203679649312758411217567803937476456670594938147181384327179339004248368636432432953045947749210835466366567749374222289677030335243213332744317962166093938239020436846572987466555675746717673761247083028506177623185774979015643581944344818788150156940357496222749942964212334225821651699813098882373305762058785491941258581853930513566374468159859091968190844633553297738738157296483211087109742284087055348520421489401384326683739574190119111541496364070503871108692890089395620094381643985855193954717633864564251987336312978787672013562949811101433875981280327894349842601800752215904529594662907541509147970454492537581051857777243856259969161654875073779045891751492427884179862898626283307533299530065067602667141667288901875349876080579425421978849144451170471514052797856885743661300496226148819466505677673683809976771486093892910047379230326072809844166028289257034963474346124625164100272309481421093444861903310082724500055021580220825186950512938669575934877867385617502936170196630218792247135528112554790746604976683588184350199245814734052049858572452998988363197237232098288840373038133321788545900265051469010589257557723902272505287026962257406316427518070974110972061089537912022558614228685168314846803287955013226361925657585910197727124965129520210923736469896484792723057469148628185354214621627255841848267500077434707943131000195553685148697483720579004712085637143387526700410456392824693603037574431273700667639519838106296257745492091338886150011859754045107344952250711187005807770113623855000322732145700914476109782895920546706150565192241902150524385992614732904106202115128416577865620429904356332653927657314671715503587466139560344857512564983284824196156427583608621768804109537916340033031565021869290255319351151081599711762521268109578716581828163175094001110904981706470532969267641967932141233901977045198648293598410799447802372108843498556571608958291004685369868190893951907178972219584956640205378772930285699668102612282781698013102824346652950519735549889689892517550633845784887158785265094690905809334833877911216008551759760430256014394265790970106588403455466928162356992024763969890879802794104616838796078532819494219175583617054902294539930771533880872884076764187873145907404281053123749503126828951542568996186478320625906213734704591008158146787393571442762506702690091712676247684372585115387496236812441773104334168944291091285448197267677904349215091557823947710877683197335085903358962486545333049025048589631878381870458598355411386413824211721472074455449989793388994741531764995597888844170694239543065233893246665434247748997888026450063049830125424937244624037056482482903835103241115496311868337483814297008779960433789633636857638276084599767011579262484622818262500777810288610458419458887495705835162271236778417694774154732269725122168567547236956828537097995160125163211258993631942589223176973027918003839571633316915880588135655840687953669123650954377011109932568166130329358787790832688573689782659657014258054496417505284707559954473985823215702839631894783152719050451202536464218955463141930815800846019243792974204307415019688670539670817313869372233634676414851419059772247438743606428588664744518730931110843011137888698103760417680263483733300677008128597546238457099073811588887133040111098807907856613334150426161945216565261497203878954021139352632628588987977464965545420281555311415502913681663993764444921759452532722218383942107909118255549769461158935828073401855072663690070863422323829467376531195568445285621709628567755167224213886192284214852181319693574286321930970139467037715602738676649763247502324173964134870432712610853121546638397314207915406030217886712748900287753194902423013485540195948970098230013210021475714411662834041989868991461133819322848119875587847008544571689902171840996334147365032859273859187710274624657705982141042836165439113098310755048004517549309842565902490889262659552306118402148071471805259351641692101645454600171849768300031136592404523066625298140494606199256250950042146700170892395639735850098968131881434112294081360897353059628282891026819620114128726755296042235997538825980645572296134200972756056565814099047618808136523590821972030779509300852489886355292725423858854609443556392403910681579018115550666924043360621231682621181528862930571763076861624757498001494133608697529443186735542540028415260707490429155656292593567835795252693099914164070612107508464781536799468611396121315883124992267222767780527325542523335453992379371633728387094923881991801509553720583570613771769736425255033368625905801030081523373002435790571778112185670345509543753372383021369836357403368175393060850154106540138023601311832981880287424873450499829787770137419244897576254062880956154000800301183395379436032489401944226294456161786303486470124408063481506984634428306931844043885308946859235150653186747807008419541668848064155786313455229763867963438998603160355379924369292577431188166131494047357144756392094203052568097971963072161524759394906512273048571136986447372578369012491779970288270450438265399821181140238426395118760321845482237545151769819566562527367464050403578258868837778553984767448297355024050384405515497962237029063256554172471905077527335047556098018719637356610823223244693830642632216708802765177564502390196175885663827423167877057688806530954292831828896103892038238640439378397518388065709918620039482521033698081060744772128902498757979929582312490020953353407812475498681209710427872100310233453586108088755038333387897384405761730997178435990643946449190602945596054194779517674681952312886239965566010888012563825598133783259881366097278297212873462943929730706085585265834401100462053797537378036041094119800958214299617266860865453151706194043729029965211412660607566071269028498308671327353800776673588823023817666068160673735923385683968157245525191823503796757030392065220625153990252039041347464691054451645977640994187980756291621969946113229450531712564229951591063494531258328444668370082449165896920598393715247492045676816764878092049644973057041294240709487020516622081221330277157804708658432743698045060541545167809791127745036392613229548485921454854345552630955420483647644509785503970040996988674658553158317331673122090906021501559364742673966565421286880154223829765068205700271858993705155877346915010798166754306828116566839259449122143177346893283463158824781183792736800411441955546638919850806136848645158232214958801276497101450945449441030150195117510722127553306464015454397340924929662303004654553860748865987300297650060848582964620951843652956678635264018737305647907987523076056904637447828547537317971377920080445880421778455612999296699059645557333597636150299013627629024331993251461935189494479481539395608654204562098413931362358033679523414283898744132633162685429277661885826960938646433766314473077078916604222915251588537790009466565642894336437200329794472408907619448498878003715891506087755055814214563418101960285541584920681651248473259573896577502122478865468281338257243564801038869359797696873305146903785742493574622791264336901672570514599161109510610481937536875820577805685759842197561255569001057573265137085500722413796835271310204959501703430372365532679679312700626809414049005229479411045005757315731384516047323582309763851252411487254225599743076031729983086791047295998063143781730971823370068451724607224083506422641937686394661718817658947620351571279993314838767507196813145266840123634675870997494899788823533913567229528540605263298840533417128451291334549498947324103696969121764303893995536794323288267389135197100848719467500003504323656845487647657557630210462370448586199313204252394758205514029530125076129716696043020557079000260418785990759559881561167434819207530237866362837457696348767741968873893993792020853750515529527232665046811801023667714007550942894398214609918041925534818704402338866997172596721632254444328595654334343705380963177776416042474163736511360907552863985187787010382182269724509029844812535720558815958361330552685107936751523325500803010674435950052180876068069638788139666208311920801516515976754793804055148559874049051524081017836372267761926592648433587872759861329022662041159686828286814344412292328353481450091880826877760516173200442900284984063032213317262736752819345560592889657885419501171527228476486008602048489979252324015627821440671111814879185039287513398087273572309581173897097426213625180106013981836158400994126660540559485824921205635743150785449289370596386911119187259109803282711585838786343181841006459129404277815426054447068631906107162546752561102521705995497090556687740850118453747465630532799693294908593908720715457030922704588287741690830009884273460271905911239313810994421154105525932525363603729612208552718901123632115845832761886696932383584146435469465164016547639806564634995576765641512936691679658127710029345995976518752790892868179162082065108798844872222904503545800473998003747397093532765893199255042611415307195472679481014531565330224912207048115004589957950685156991541543795291637877132542494913398434090977594592432090575622111380402660726041270608378311433524761331992232991801256553976572811273581238975932680699867574992170057154030256345206034045813646873466716430752871570009238217295856960508659742475256517205571757494082359928887698828854210736068749566199627911701170666770256700143866427427452275303675547642559796587272141688427404731873790784994295582849966020917315508469083476287541416545145538370807464620043224559743570855455019202158122520718814579230274866890656870015418103790046548750788434376613984401483050967160456792165785245062476552385287933788824435182868675993083313798811016643736390347329253248410511242554061204461658857774292828591758970820501213177081255145472788085681801802077711088879102252345264818244495003142832573486756869109623619889264827407719551430252970321094693273857739378130663873102162851918829778400864683285344533521601292514220317674540601522149936313320799118585623522368666269307085846005741395385850039114138942295177591850137719734808266797411288719884554586237543939928429031076901215343304461123508996087916519895272939600788416144645071788193575976940824684719799688936496242399805881018726886548888275626176934622968187730281559461120436704632862971353774759567797017824398495903487513484123182152119118718861053668009806350970589531041662245316865567413528648895285737069066702682263224406602802315515371923613796038858619646265845026160922725844639359668277981313123399787125414388250363638498048636571472004993803519905454063180323946208164594898229325958449991952729148286674788003023055232076199802270612879147018567917507565624740722365687803638061444234237940609244302667115292170319649660373951846648173005163451387732997301150354363366992752548635071581617434946866589703974819488162485480339954931526427730691562153504429380053065377452858009408061518112098156789209033843200087735979569737284033297461699447175274784702734190583707248503256939918577566796066030898341931949665940329130360216225633471826014160186014007923068520675707715743873846088392517994479052839115115533126735405491776045143039591748547102637259994990126007655989016025227027899158882517566608341308928520662740627767413028354179155228029324371607931945320248602583000702755400583108576632002225916118503080534111494778238032187620508554738459802206669754268898560627729848440883649448180317824668358877786854753431226714841392142362361619529897867732872610515084563181230648157912506741523664845626720850223939088873156927660134940788662366005470514594269196075062325015538898954995208616159219148070537418055831203427703486927203613997256328783546062906779899512470205427396182873400404848965552630049907037334355225952974576668271931688488663816543287543827895785970895269058872046064266932782299129856408333370416125823872256601302689619260929953156323306565715487043853896748367187148817081267715670959859621149000625808410389001076099797130516440590717850352769360030313688110672865517735737903095083958118113059783208706532062895312200346070456147314465663646101383117538782215590920917179807004523385519158223301976748438881394152225773248935842443168819887189567449247307683777515893215778215755059110789331826098224399606772417066644137626186111251040290842714112347038663379667320253793707073398662860220293756158006949859146288074087087643120779677960467855733048695643252331421565082869375945032358078498798279591317441406498935372904755207940667181242571393320983692244312636706548874911642223711363485570348391870192959001994700744708017849052480845353136966295087044936727468785827603295566412630068989244030636946665964283843136260683699367287455814409905897465921062916095825669506889326442131943715674978729026768933675819953269421911196249273514265067880192436907797068272601919107797386399049335039794773464387560278811705120411631895397877197090252388188420575903795073201787510316372266978275745673191316368076493371499159899769173040015939010528494050750122276409095478632737199386748728986753948203894388008044665643802812426043005821995983887456768799149133294524580057691957990933251202905860156001818480850518246963329713449830693558731200054213689421279581607847672193928466461302732700998533347958754175275570453452062434986024302260101766508073225410248256228397816463791643827378854585037637056868720516837930831541730815214896590940631219507707455242657776905369468597796789893411548839922112531615335226790022877401912828625917508704502411870693004601794292812569416082786065951431460347615832648320333531717745028347881457520498635636787720720062226091041478094438267833384980581843934419117605196046259028136556542330899851110875206481111889089713335042738802804446418082492401358084991503075154398894019098684043191820046481698062639590316035388672354268758258644706882310677414914086666424242994894987086117376222467789893249142872940232152522586590243987005653975257450865912555079987694739386462815189544221480867104417735755842227547403073457620200453815799456474901160115520397321467042974266048905418983295425816711131395003816588065570072285929601070672896983194676042838372621286115282142831554141591599663430509945351342128929669927561468286981974511503769206626138950082958419533231988033159329902576066801079060793768167704441487181771095604214282754709592350143565740213483991151044197200786947702439699448887996128888192509899238393700131333457869134617531708057496419023755170051704341585997902687001643706057171098369023358246874910122038342524784954575934572127848008629959911010047398391043163788642710608726452336665421839037363806387644425412448106936158747654261993592888839816291614926380935816992841738976998251672988484992867398593553677951652869593060285554650541418834104053338781205695631107676609752315846322234377287740363862434255086959800486470195986032039702689102279724285302688443936830644890526450084767037545664126856593303144191620686849138035193627198821222988550256401953284141619646455129307673494214004783566443289212225840066151281759847096468916093975086134596192414144349740000750645265818538654615649974779068464339271319482959405541349561050093213975290292176851858451960871671181997943253478770086686148342159482946363629212372364381583284538626551557462255634626968370221798500325438647839308473665810359139205636167824090032122770189323782797395821322630760002205435146833249595070308616290383705467839097106817611648610591844942634749374232421810014488461835510484593027809583249740770290888400064220069763167221146196116014784891778326156044185965706744367452030008082570974560520054451887193180491730896194177922688071062223737508341951792152044332567302041749213403566883780424452913471751792659856366644254776907889269216592267656264419497763271182944568992733086432677687596620396190935003575898162476539196182180205004778593425007201641150906902466074115120187785187302649408124604125255818824625142414019556983490264404103278519156207345696096145055424519590185720739211226536749179473711817340419488673744492803629476162092853284950380126672447697677220505693249605610385581861645173590677017203382097959458274100476880141541104382333478059256187458966739434881307124266094409668542947110446507675974898120858325715040826398389103073537565683384168235410668842006430187412914334018828886257942100454973237521527987333131473222899231251396929787396688467497862295837977820906596866958703295486836550434112515360165366670353224172256996480501397330883921332634743234760633603159773491612109598545082265422530256237974512422975917953198308326492404781693188745946142896617762742018017465745889865833026003841868571323148270182655671778949865579573702688652325017616842819787942952760161169141684926979566483064920473261491448838378646161876882318896961912876296156051389510298139237005358447831906959560479101514485148823935238791370837483796374830534479762813693551940771896902157009962789761491991977199309398232062034136746650026721269064418407913656240528480140212246902239363959924986079534317230209519985196084820991098287691092880240715431192803378922028129015740560908265793382964523089059394034476185814248016158948944714134958710332620951950344971952619858986938056982133838126667977058287717982079750551961852343723057141524638092844579369358313645155749177708949590670435391812093464121695374051195069010497225227736599923230850431221743698633799018208319648128594868917715264659642944398019997164127985755643857986363595237157382831085647958691273767893553757420347218264508378175206848501818862883364554770924720350772162636000355450298523988693750775141480617711282792799599506157827611650489777513466775685055630544349919649715639579888934610432014812713215022923065404998732691471012302962990212871332337702218008027160626691133925183694545938746804119145563355925643331906177502481342303912234549515430362206178172155663032669522123526525804072165879227605786842474945494826946444030288475108773191665050277863718708171596026409913203408263969114149495457677534860798560682890302666253860164542146033457407033036696622550274497727732803489550467559052195434464772036001751823584352011310840820276129699315109182618627843383361260694391614738548592766642800057712511429879949031716012409823094950744834440252443392794837809096011314307387148899288985994857467067753704576142103475780577877094050913750969079651251874677550018198690167202598343769903889537770195769904664711135391995852123433869319933943172403539718873692471653262115265665226774106746168882576897131000032591226336488213265227545153547808820892827653774492539425050676948285432493796444539851505588214653929620999512861831744693245286288801230395268569296260009491702610485502659515651455178636091928412109477464998757259109837977173263709879480771686137967459085096133968899917749105717755274262771554802824638540741145001753905622627867552547992589250118430346235168670791617201750490980141130889978236377450453176934221084431301490774212325260803954943268252676488256850419261317720662309049597919672698904495840097432349309990979571977666536615795109168236576677781347261912016332963485119995124728485161089114673618051008291013535180044033121845829166720189969460416324703686739614213768541083291911293639744975791151129442679731653195055576622617161799975618794310209375074111572913993767275673167205781756219896859664410624029173821041092521428481407360969283165410307088337390868939282705461611431322016787324802528174857732868238823823418533265714778947840870414211265472132809974483704100910066267932374739896577862684663153666565787260670952233038522723750695508752308241195060118720547905374203233452006109099118260805211076011827777461819754757214261746556708102143193111071893978436227847961760874904018138702887362994293497565473673474172253781640852188251878954816495420508139740610304301178922082465417306928205084399927417779504421673422769974984277823371252661692862288623534270132737252738579150017375655251014144129795862613866372451349166077579757135466026004878475670030700353482555465173388781571382778590092382048746616395861659387257025694306675377146779911117736820422285445859420931426014448166690678409253011349940679498759194827426284692716792581576859319045361186706813853037284303496291593446527716742954454390643729856789512282200455237435826138358475391501010981829193823347525490138682881997595569757192380867707581795063216664842654523399278928603548256039053517375871407766196810172947229113033686306442868304865840508307941871380982363589253972472912911992647294469686190384315253966799700675084580564339394064507730570454872791300663689987166506994736022625065981876764186873418972254973938373105730103201009539731388269684139211680012015157036906493494686610384668355184875228624907723903699697768840320554800949669103497380160167355802706249568593345247283936941521330726202730083804804618801013125182746771706168725709512148421364864370757871720458742352564924706501312902656833767603729092319173731692303425788868993109887700341103724707993096862317505301267352445507350437002408259440720578596013272625443040125703391713055263133271634815033162202785613308808045524884782240519532239735581363458089574360439203304448312995057143590244800975349745316358269835588436078419667205607574021322484202901484086275773473661889945385876945210281260350398223317774844064559228172318840183511712092215735702222744189947611939973754742868815764084448054797144853983103297140629438230320151289485870680130580450613498412814974731700241303535521210927995531573967605134469943090410523341905697675615966825805267943372770771059524918111742311443746508028849126574492234987084158523914779843202086404626682117289641947982630911186530529944892752567592586818227413740959491900484188755593999162156712235407903420913655625480700226263497080770354320952958068440358017510495544514971095940482945853236162211888113991595787301300972316629845646624218692721837536829826263310309709393797022661029155836450734858122940938570614498286081059997278151384367627283336952560318530508576796321202139467838666512953122378253388372021469659418952429567882590818032245615633097490431550846086655401271580319596268158051421780803689141683476489713507550150641373807753626479428997988519463013785325424667969854034898303266375331446498185517818340783246572820122546048819685485242273723643111454521710884552679303782545087669894546340000056927441296310881484531138275827573773493810631476157760352328850998825504787853537632876444220956204573331179658126808755698541809749272119962919275603534733040720774224663418813897858028386675748923162382529776674334034128634261563826846697384557129604777331438974389755145972766516259247471312529924863614897602876008320912379757505458503753265979025155870107132102515203852016271788599485094949999680807180862210609392516304086042587966195908614403620231735703569804778647873462782705671432292691823212821905086142580122387742958321679613250723346705686725425766004720293766237608676653865383283951455056278252463733563662702895715521739289110082433358359863972256986272360475618923872074291877480145699248256536582584205946495175776864886269207747796702828336050162717394957914492477620166075365243856021286802316688848728789224598384297397557502530702018483519775174775660303176620215422601794379730859356308515747375610737641869685971525600696118458469303961277980697080573337630152501896315409660718708138197657417782201460743609186823716356945651807043054884750905245295442460242053536382232415766904624526831877410780435597560280667549605107013326928871707333125936106957884406521097884438723391939661083467970901632075760460206534040568262203794022904238600145911033714915305186023975180635187883958758348709063874375493291788552570537792315447589327542072716790686878927065116126065336543048881161073329781358641664062088496389613240150842576581606437544405797987937129144829023274233253085960925129145225998562729108750118079316186223892673630995823170367591145641439363748764793241801852904400593814345349819546680205639184815228043728185878037288115186730821316101815931601132091282767272113544635609123176627312796970547263399733800535216310399644533622079462246185519112796033882784464173924291441674060086213500149749984251366441050026375701894972416750106361210576728330834706360153896379570237992343876953693741424610841492560365118576467589471311495810631815505430162993734472743047995431581197301060981627777384450288026455388689079372126118549456367850699272554413938832788255583151822991432198299693275364376108897327357786621719171292604182450587369080238089918442050530831971638707784291195741691687680666540367165867016755183918580734117243103122381834959431618283865253303075650057849473087431471440422373618686017642603551464431345043469074013977069930191836075796349779214736625127918142478130369242957488508015227342873124839540340518428372325561939032360727303285501761010538880766470806767590744063051691334541725351866672835219949021695915009116984620935165409771347062160335687840057920644280377780825755921765203315185337817352564703776298753242637867346338933942676652610949529222411236642838886342006342597191823965228818412604166071332538921565636847657787171230981461985449484650304519536313468250993291498815472097410750392792392390927698507125104420783323148420717610335996874483842095260611180572973485103973932560117094774451608929705188455841085924566220499432784861783083737003629519416569093802788400727566861437595518164456486410451619444596097292803210194438611538428974137583972153152000851760084413186710895641147349767556697388800608478462845680604350775819384914908377078629741244132708204158354336770921049563949158155673466504164681638773869194342510450226477731585538420967454426594794257236538441067509428139996651314747800392670781119090685967327275323051539723838793499254243745431728201208982541085280003972397799038560276435907932362545663024405388926165022971972716052116139583936806478460548439606890988137503492592432159640034320498540056071763446047811273333869710536307402374394505762570699868744035613242265505489536048503895137557753006919338044352142182598924371633163178972396412152188457012857071228633350303367154689931642813022776823149814646756278002957155681859253951485692408093305393735917182809242369495406140346333483705653001571832950674352925994341589907775441409044888950853381298748194600732223226387054582409746866394842166381784402143144868461658672402615862156316206758226660638437717223479470574455705991184010760024754006998741927495261346814122433118957717566042726670510486032371004284388299934487077779086757891152129748006145571420139242582920433720456920255202150183407977251412339235148971816614309239014237400339346971425604012137243979397307427656897538874456202473550743522174027164768397599579037417281291889842155226470964832458669340985517551773727270919235584398289698896195630244688718486988980628799684411821736518020971223797549269206958389838872308921907393072626653421420601378467632429785517136619594358370076636350327341263804451347239352457499076866722862440351180629391456328280833155540407179938622027150835232270417755863435510120527607099844534471423632990650680371150688495684726399373791690100906532422576113975370988405863505623637869650950857407331659941279950386086018162102899017282808000349628533263911596283099317903982079954134984650617569757892852759977127870797144243590166124412765900092369891620139159441307719371226223205265145825863910358804502278764647452268695999605464391288275346871166036543980143078308006460624461582505481659236427095822546696819514622602872508832124474968682170238270980790974164852893005380682059559982652145171666732459962027577811847006927352916733653091962758794731791085977698820302396578608962577868898193014195034160622941380095103304552873154038338733281966038965342611950044839466831900558542733681282460478953066510808432197923109082022591056764488484292167674957371598798782758300736985601944845536399907451310215769784174506523775663528792816458765401467904177698125892440396861585068711823178161659799893431109746812733545269802169403559028205511310969354290384384252459676632400011349970001147390458509540587986843321587476167933850013121734274248182001121926700516456197773160376821883476277552416257299204601645699179756967974769652596610305952189761422588407862254196352552378200129780803032183513817218172750238605593167902638137204258376815386437283346635630831208403918851465015580563756955541239450484110262075896474677927422667840346090922580251259275287883718774533195377799658814489243980855732411857407177007977355767403844856776584261085718172094277583714480173151160012966765241841537170040322782389433438359794004607674048732837671043113291547067237413872462464169084923489700997340249729901662991015111518385657683973870305743783210703997446134200589375462759207276315323298554672300510766448718197515754504905818859838932621365514258844068322952711027384557232653827029186803376216434201147343809867955565686773040020878202726281231911054111630970338375189893876168435543214595590472779711000451383560595830387286975292897982219766360101784442172585769434779731348487456547743086329270187119733550544873657623518801771322924903578293635492339312666047123331991399062012799160741058691783911407231686065542956729966642705042051638369062666194583007468314528054394334845560263823842268840328240675988536631276830913561062975243883836279553154362515661358277527535380756273950129024739618789763531533280239558663167980368553072742618438601351133633461546483166179158743272967627176164395896679640684683170342360979642775383976315962433037955621659118384475421133822756046361218359518638875093318356248426090095649466540649518044404575964740871980127209482738406979545226826431159521631732430774727739333583004080964330036846376826861039321672898617240336952264700114748922599408126162782213357190043930085691719562031100240942424138695482148426999379536424526336716429165537407831506016915736502570184740936791249357126889643015464770130313017434715547407241298992802552337763570930710344047108537355777296673001181848558835129679967547840709458576173417581609637590387687407221126351171909639649541424142019456701957892811433328842706847948078756100560382620025601534606062656242224660385258034517739691513986879985765972763448124773175404924723635575571361703804910624167084471170147576192581642496662452795833537373997478311650307290593736542802260709850742517078361111870508817622713537056291543110766412032537055880205138590214036249081096994170509936492289164802489874052449087867093262165056745288677469335239775855264353951271004126860170731033134972324651705312201293609869246296253309877740542542269482216007297262682200639705265118973507411783037881805177562449561427328653305096912452699727887610397217006648549397841013000857070903581462306989994531456351363993624417244854482219523564224385908143673631356187500491545993145438706068988821856817205965711445616592331579517948832639132290212885473822651292560592430336138208267900900493305308559545055852552458361794372773665958971266585182608293434749671905537446169503487214864738200723617861307933254836364135319240609635613193779984349879762100600420117456163276121712841427065028419401329428914519697011897116087618475075819229936761550448351826044736504803302614073892364766076405597751776570563291471838744217466686060920739854486041990565706678570949130913931871155760176367430326201253144945468905162574067652918092247201658614868986715195598153413522014023076743080997824541296610571968352924831327149038726495126217742833978199223209951122226985598297569685085359416470685436588736018724385399784310958118265698810239826712263837212835303795017308622388671137893961650920636969634163491470189620844403583320971648668206795702134792647090525142013140961963937081730747338260967033260664887446132980190207868446321962565517517804587169811212185118422205916561471974124490287368825425161922713272381437527070168738353161320900809697799322959393845436425930533690402338021817785647725317636954089479599498720123056450054502039843733227238115522279535186521116226659802846870820815146917692171563720151080100531131235958742803718922445600044775656590363735087578930174580155897057833163860186223405711612027914490198005249179131809819515688567835537894046714724028369000271457414827967899359601642524866820756439191130917451248572731954701882891903988907262516529150920417744629377009528294946003403665904014724344159955961015361922840337285779067866127157255960860001956089578309968029110106346962200081338262536973557922236462417868724241131209450009876465923559803432620126776254008168949096813600744147070800159816745157068886197589672538749043803268032308052293420687680805185554952666617170510284315382527859688936293781539750282576881529562284445639001833620941962159698250422892397585790352673995615143808829695459930387573030510154567595055734750611510070926716118623710963459544230064660787584926706382289626646584226916550892505584933361522326703790861087363983727412555053059948060265929734570524284977622340966772490421225549665262888456266979886317092708854419086088675578608276879608028804318332250525635561222477345384314154428563402111108929301058213299973687593490482667060252629272477091521511779114686036181858803998879654558935964003882392189437403491822155522568626849202967477901919376467781087138045190245500838759436922600600706461126959235490912785711582168258350989165804876865791466623639352064108019402749213070272696275867645323689715419059927699083685476743292148505502879350928189587236396765464876491168495454501841346537287020294191672400772557046310703755351730080274243752885366055725170891255715549325118601172730731986207987072622826779471169412743428847064265217666825505452292385024397313870083314883969010522012365427238910629208306327658233563991998287985366789800955332406432882572203959299423743893917556601096403352522207921984481409587383776370599487754162196163722111825341374659090838152447360265880461798065969111342385061517313139337734459466099236579955168668828707381697015641489493132019410852895319077209791537264232413101091258932243946771563421826463648729863942999633238708652140835809475324313228000410626755876469585054491024052768155230594400064842971008393053930912215904996998063553891424266638291612491647641515908270975297695021581331169336428393574068709498191215285370747391162352570639994837591385201091714757308847905416669246710293883261888122708735400419036804649041994588587455594259896066066557404410351370141699573903296835681892953467353036838153864054584352612632730624072151864282677732808955487951046193847685038361762063847303818477697132746212282116007835603407679784738173583045456526270012931427370761513531188646114070486495415818360843953605972836756471536169518644901662456057700839219716495341341452592443783513815400932584836165178861098447102450404529468392953268633283655342499344385667154818411133140750807272647600650772136084947376192909672026243230433598508730064329019022312895463949866584741703968227404167705319608756086370064889224102735466861351854247235417926791138041709531623420637511537781530972647550378865643874342835543257929821342238964131837218218623841476601397056164902760779278254918833301012220113804037343460135140515225416791263126483357245621484439481782539366089632402781033641565209120989265675027152840718633728499828929846288680757749154097812831610918012312685895292398600000463472021839381158927724042484454208053421997558219151178763850505169692901457815576987063748451395040089816192371849877824126520871671302606469984158674074959341028392562323719046654139566825110600943201623459635097774548525079375090280776945457553573579156129557280395185858136494967267656845149698305874037027531805301555171155936611402228170766235568439204282266625792600921765175194877187759185529144612372762696483524583060897467949882937296780589069823978516358641743448311493311225036867623718446684410687950889245692256049517485033934117403283149228172353392892901501319238260973883203655223025598820771433052737264222637419593037918291850076568103124575268717848127914896154579720444071113192750060240772031015285446012792379604434768267004735866827155823165711444187670038449684985025922863426906921434672824756038840677202188983419082523591132775560380668691362629283009288544407083921494015916215865983289978848864500713994840310785626050164290631821196489899006506185424072863878453600807775285279099314130144464544392568871257738481451747038157318322265831358857904725050750240242177214736882652038762916476795867169634659686796840712506670506416457410396780009408534303342841804665038111646679177178516398074495730321577900866991519287059205505871284399827904229513808071686363050173432885529835467915909214176687492651187072547405522399545420922899493574546407655699153204094914956469444601989029747613502034385619245773644382509002858230512832325565255248051368287847361266557941436862966026396191042387095741344430489803022212979554583531163093037249576747912744304926594689355424774519812757126378917740727217026641122176804516026736744836009966544308321857620270634014597328764019573150541044550274927917105317243320776445794135212635084742871107632316639973863789025934365816556700931832871842066149293173476536128577382675803524650606980324649314202972574369717245770999836018226904840000780620867129764980311438729897450081661891186093122075472530299470447061967251252546366311485168511571534030441466317673951723538586141258195984120548308865715673419445575028097646157996679524767964170706602914471642466503785523333781946672377814481606073322503008540865408880418381816938733906087450229303871882089197529019582859100204546637504340986629740306911558039921067722612029966928099733402844055130662372379132869573013774085465416669471455625103105511434529472740370608261373785261252385560579977247399471835934302202306477443027388686662765244331661336240772602395622610470421208415842245395184851562982584658078584352616098817756437112455593620080801100129840037680097578869236824653030363087530218296732451096927183521665227932567905160229632217300424550259921086279724140698981684751929096829975789516520059380228748086394964773561467456242880937032586229963413164316012997819808128463216655119590538754636148440088385461615556794350911472816438817692989459173757067431855730214044802958215483970404746482726171484639965021279665343758028017227400803894468882276646294567446637444078307309765988141968662274178199262344420263856856907660275800780245670807334868519012753628060897380268277304429745554805253315682939913925550539010204002110113086620636693989502497088125367766748448406277687289213930180594820226649177233587515363803576503348829352888988249678755774940996844917925409098698341371832886606220451514835674950691939772128458403233836923903461695768669085585798240764191651002633128174071413761526136979905920930016037414836327992632659645189768795182014283458747977674955892658784295378438859735619473966860971039109566334095085315326806508433304244581497064749259123929496325766054744144465047063572640493674381750991872956135971574933411139907191453625281449003776422322253717447570105023065404763138005425129284413142069437697348111730329988432560878613304756310328901540651203862920228264055136668556557204338266452790761508369999400532113236836948203414667060942885133552535865104964461264845812199084620565068749367537736088801671940204792982923242802204186247787607009960139162423400172676608778949223079635412314095339815321244499705882056880191156699093012435969711786885455148806809861320562282063313091094331190713292889297744099039367885777894653377313623648266283903528390425820404921977614869069862641548446260301485392589064144869806026874781972355323665370693404861595245856968300502491684711296425102038687441240595263125302039491071247995897009868407936697099881946029924655608345207117479522612045962981670915168334483747376486293885268280326830171809843129766802612915026416156416509371982790496810255213572508590359836046061448497953430352138589565167576006507706249479083690321796419137472678626920487809493611360983513698236045049753855773380690102358397263553037154214677203880320163732901127807401826105919744025839701532109451268121042423654866993826142842030660811126809859452832802722471796572035954424996989257368584547358328073449911037571883703620501398551404345464633348588617150502602377379750602628184743146846974304099090148239236092708414592320435740245468176157063408813629947947073076118684699617325337913706540971741237491533023697673969781794663733515759385403899427931094866152919030671290291640694025036938624614867622136889941010102253079218588613972920100297990915100485805787834659071303843149391414128781975715392851021016688715587788755682659782564236387375526022861259923241332331250468433472947126838276189594322836879708954971455008925599415540273423019825181537360010533873828096023189753372537855227622222153597385467500887407057771176516199379239411035089543789790496047481251345798970914019260171546888291224856280477805875111352553512413195085069957022701469345748077618155967679062107896886440996591547024465761558171291169026783939853841854875753832951260103203499979210494746172259355899938360634161465269784992548179163387657201236289409494197604089921076009727194164950976619573507231962970720274476328461104886650862484663083249333927398401375033415180689990161989480226937810637194884797160192501051504651527467423482963239285819102802633075289316592392227935596606693079914906169956480878321946328770144460724560468352538087303969166577708241483673807286121010685075365670822558773641867815122351951557839885890527513613713182969798703647249228857261830900922851330104383786051846696236285808009621454278181092869882041985917010587887495826874916456894496609042370436199595891680930240755123368634965346818910112318916531977018911675123037042484200176274757951379367636559694927664843628358793225659734151855861098443734447919978785782659905501015742426962551684714921105420135435830541037667192339464981835173317826939902945073902411334202578536238555914601115094542515662773873008789934645247641036993855275058750834557098195467792156258135560044664785281573369830557173592028445606932706457724049816530049211074102559981194090385412773050948828495366100113784062838012600676620999842717134702057144301288587370206981073715649564959436872500301838275096225021066796588301533598455916539432641643879289127134984686169607087354284871801672285285349489444217123774006629156768223723000377644546310013461500200980117354326472316279319391253337583171107161752789230307741374600322114316583249033775442108595239602092257268858398946290907972531407021649166163899235912058790106338101098908042284854622796243751518646302589983024074610621884837901846509973895027158937087401087672119888131224001754534970816504263938214125107461828728831421573235690678741796694676308824290049117203600649726895078021118065591187295796190945098017857784701752796429204292741437340223325164904499538892492490977186839577459552463511899378506488319652708654603678969119016430449712387665429417836791241051347244014182536040971979319818478142808197098296223676822197974489638990065952848447978157043369723414571022133803893035537426658204446849924878797600427516267984643931644142554133761380627551379283237734130345935169609905742297988354175599396288815411181790238437590580765366990669533858304265579929054023604892506052656652181134468457890565080634101060767588792983416153683504691597481662305388629082599798761304541707541783467622412851364819504098848389060539436891266350053424559375677770526149733021887478750083609170458802823017988173382021500958804079888759667534088899809873017084540950649121759115814400327649349062988760276918980297491769239262033346179826975454716293996356009535002111429932292578813403456523509710258317177082492545382891349395373291041412716406422160148447725701505800311501352546455289244047739985897339898451679891930546920734970934424217752017283683443007068561101752121080978677027649890770789169716053768811019168381491234183343515856902828844072672463760006097238875359076555149291402333576238349467536534300974319889679561766448668276350263992501744270450898312895093949384253526944283163355165029487379136024089816911391290833334622507931867612179690162684064405286750841584348317932331085541285554056115666249441825252562431536564248136250502800747113283163095987489797248004667428870726789252660099360206817771498506751480014300779057138233204135740184296687928961181642982807087113334523589123373712057139879637306741433005296668129077926277666824321268743576524421745500363240020422992553484716413552417960795033197240904032785421770131090964434319505794501168147949544939102888678315166133988247634420063158217581118147579230582410217883966777778856983870950954439065778066300542087036321290004023509754435346517270432876864703671457295893182745438242173895127968414507270972698383185440889528870647231846079224408547291592311860757482494441085607494822990559108490289422411299850157504310168596599436117447642144539418595573327995857655079281360967446349625587066499790161843470534767887268724844089142689770635676664621395768258318392522530297693512343144950974367377508353718903565938006974916234764398508414120482018520570181098614172084404638645433666763146204171825425525375602174845110679231688604841685128900901920116242631706954431637815176634949923567076379276751443112395724990324548347655436935280063426295977754526985809826681290324775772584202959224615137040206650356853217217557314314159354359611309963169861096064498719870404528390607992878628859059931036924690657460330805268624750904521299428741904466023993820525061915123845089493473477898807936261212583272394952149544496260192569777028200836570616203160981108526120443125413355071497053915175501118312336684477886779250832379943821801179057295491425359755674413275435700885782257394326327369216725075756702833065947949182313410061821722744277708560473568621720809646874036636314717683291688224890052353828880235098457920475408788782719310569305640795663882955265748238877352460049214968593767664834965455546455881761361788291710484864757240875586093742811146746870126762886432456729330915059514607583654472601380877072720876848942547907140237315198838510704414661892906851936858247825488920845813462186064360908268155328513342983052826670560303307671903047866634588980690311813420749696404379592441901673733251596914503474328787362587081159834193477777271083492930195426998510109566301543440789084649706017203271349251483153648889259645134505456836178426939750576519834503106032019419010153317585349577554205956213244846789504160991504101368372287540915189250002054174006261583971768429463987182779508370021135680449937307705254140580461533424840035575039777185534299813225455361752356954995928690138073443079519901394290131258410352267070248650079473020053857878827162558048589784266202423452114182931574307889544223300099680575711706561259197868662559811780465398855303937062476453855300942038933841159161693985072882074914366785336963358395054868693717588608841865252288767239987552789408328494706927273221661394003940431261097255135532212455878466027936303283547988939634841403240679653108321752317925305308493830347788383720924027403405922541980824597298069178560855260628832148641357611091363153741271383429383927709021512190000109460318366877168189522693465207884757826979597900036434566318799006304029149242772275407317275856781320674913999558518756097750862846256802234068622787229402248703990421825545438804409603645041366487507904836375744955085479636705693718661172334958800479436049810463654135004885290565695775122424194899706953387346206278864432924911247877941563075196453074147284363447286886715707185802018738120290009973619642957837277188521206080104326911381690798034367861456183736931742029100808188112629808687476473443515799200668547086284821125156110529327576633463243435241298396658728430269468090889528448428318091604825078948789014658957883517498083184093441514391203892783673212326604111251759000322548662488176149099910610898177884309621024472498177202153372832521525501217770586399887546311496797054469747202668302571631001647154359583509697304114358825421842139113552500160128658463511442883087182375100593584598319343341345571083948729238735021796902011566354386216117276232312521642351664162067675995145931045609961370780198315630217666464552998035560533798072874315983790725417420914454987367476770541520998616204628216078260651067379506310916079964093302564979395063002094574603941899006781756649825925665162844792122272319935928676278479214852136799031711630258583019880274430995034728605006103997103199169386756305970081740739836823369295717618360583924823159739291745225934199079917787863500576192571490672724993300247827857826003122586854645219544603052787802502577020062774565548597583286980706959668621436954617114560858435185222140144020305262824000635394419245786336931341224623674774272906310426021203234218396473768297687795404394811810514704960567829703863082884473480797831436951289062074970892943658000344608747066172853004366685239616228112898038027662303318784405295425826415158134759890197777702116252862466172431702583638368269995153890913226544574945044131633027718526562267832026832520303780894843469618295467237588983756856487887631477816096974500595989363260293766229828477077855117269722635166281139596401111707459005609262104742996853294708020699770108788030058930771056628123083450730047313204545811525480148676731880650382700190411983597774565234171136065065758339415519214207197198248526977510039608278804148962524882470590654649132651393984539045789777147216041910137211432873358994646264164293764982680050423435643333696594333936251301586532790653876142881510283042398314335240105221920933162260036293480674966098551581632498419840993817197902893394251742576331877766995832680031274188682927288784782536038416820572653875373804487484342426628279097797035171814090573138543980357723219576178949802820787683640489990059081340545856570994101096662851751429247514621359567687779446076078741967933005800782731573217318895600732223282706994571158546578652673906198047998376741807678955986307732612659272684397683294499486552265000923268191733912000237765930111047171051562238627977577711923117788879544487642097812029283692323431908316400738297680414427819201570176569293836401810984807078713078047644777421156524319123648347237442154509990695084506528805837911917372233326528091615325359356787045015428833688678139857391098467531412952639808753542878673356795601845998084673543669799300590476613021016185398730659057517060921695000816882220111026987282821034089656440603815725674252618442170680931051237919686893237528399256560476973887802131993402093034255676851968024875524622489261834646449895575171608087594839947255657843060034151293278097166523556220755156695389949313952328330147881669288928399234034290378999275640180864797335787354135116674745773442189749651285411648720603609801549569791994840812089115727911004062048765015881472623014447786135863872164467562072057473031345078054782861277786811787712191690531292802592803030231374616267252177544371802914014054118245210056046712400838648051325925643956838247954777790827101591519729560259941924280225568621938646059051197005213291780246948662639499051879161271190603741596276459521752918024925772663889146287430934112985697101559997251760718253979143187323306812819562050166895241491539120597458611442771170386813025660589643980384136124870814553046485408892979764391031868225379448077426348508745651704801928982408634851989391622857760039729057200174195101841547861848582704033016529734756460160305578083131184519213411461202555626200797330309153076099379666573080693038297760428918917364653486202377644792084186266511226496518753789397854303423113508504452254705288322825111323215754182291606956703871758173862267942414021564756109461173845182022786232660057792997518443707676462105256550290866476791382704349418775915399928410303879875743354701080979235413666844746806701626527951244699212015034034691179483345185464114529486506710156738171549217756018388139049150573334036621162294645107057513338271871187519152676727753729908605623781475626455540952635865793331322538372953410230487723665494782977089608790757209049084206164171660531853541642872564908544167265995554714753542121733881555923707511567432606619914017071383374270357278614672456900692700197359200687816509864592627579533967343022171334662985532975087224883964005893850941067743816925177256363390748165943485764031369659050482846831519025674410388808678770481624985342509330588247551030771700761067425233348158431341391470209117855979742767708453496796779030265575250103578855952262866788321137430658703316624316739089568098990515067923080548925459618270567913069255208572632129738116227920350270318411187785041470558625648217264883691990135031614777620940518352331192548464224733777105838545991205313286351177424611104396225671848971398718242340329478514002050243473560908884669385042763114674638339113148115407344676849571897501925015029377860875176251360229329686767402363428821236870355777759972531787333614206959068453728995135710578691162030863618093951227931042906412129629146698422612670258835369068302917643232897601986991658222812349359356547334161753999219627661047007237996361885393298655105505882832460864607862556821773597773538847303724397682741971032730608683080155717876899965911865096909899327220316967339811186090073985470197683318310448294934954400634338160067736614247707691357538803389338852052063272236525315473164606650032911730189108088119824748376809379296222196478069290129304007360429847059347088109347767350384564551840924099819353031813707410483723277250842984721723474739001646370030449727435089157330793573772462127069750915361018005533451606492568889682652958448019200749285024041611384158522372925818919699562942917029637929003786684734752168425740151154929722637769759869666795095154572105397026685709016420564569876610704573564807432935183466862626165573383633879462208908800380484975552278335761800386945821353048017364973102808367011666671035436248724005581999815291210484220789655511305980250529952396156119398596908451091721498048273594387332633049224674665889190386335230383162700566976345846922446802262668640443098077736189497293441965945239093331141093695929049301265885144495890824020482300076899558843092384785063388488619006478416884939477040344916712165178563743458351957136370361267348714663736444567044827127453568213313917245582993271950293559697770840363681017758548765861602918755780211237696733736727290910748393111701380829403415264542484349945487776992797280060324010557407865559185884410396700416151950955547881387592140721049634019707683745483115511294135833549932780659874762361464169911421979165077289038405376776367852249018762460492707456036827927665319573769172809506785590583139387731650197673563741358788396776790215668970821481626657838220303433906025261513650201401135451387657746054666090899060858869466848895950362417234201968404406082407202320655219039769990414217764862171718020873799899881384630066851360161662537920573580567155149337094224675979553596447776559331315516905378693594798308874373303585924040733827103987959743046203140028065968547178504722392924094307024167979737003171105730106188821171750221111570525593419834809400695675681496550392932933789590182020269687301632648473442553372211314722804989313170404574453653002731351629806552535509760118468134091998667799394621709921644082436717160146050722898913811877214504150900249804833840836662790934280046490134173324947829403337128490590777509980781598284814161234682168117471083719156826684082483461944428982618910727007665718589713402854350612179005917908892395939298479974556004757039001263669903393059885959427095038390232649225863110304201238826263429552417398324757111185339014251711869673234565012257824227385961370707839358545655226932572464896498450716738760492337275172529623265064380477107499294857472892389105654962606294377646733725785848829654669305101861580451831939926704883155564333733410455920731867641791455871348787473471861494753806716866709571497550408511286040247780218634866248661922730051567153334973129157627311346465991251707277315920634251342562392912398579876873419121894080100341547114672178629140109342672471954190709610928448956515921378405205477688512713860964330149107838783465587644603573155760062563341442253252311277813773630297376806517670563771459688329930977221948420370719281728732710005833581807402977896292249278814449443378996399628743677473734491768066124614787732187048520290101375254765041818465119801908344249437524491751298401793398581124434959752415779841290021554024580750090937467445317195456567805037819276067245498593856365011591776864024490090771506946454194266779874085118818052588487422671083551322264509129405211216783875814070485761862233275660647668469557104136086512783769507771415595013655720977587994149952466545187440875024713591725761594155966767642565037623447223982011464459981413079650666588337687742370177066098472124216443322415832087289483390653527234112005697942761053644509943483334129586694582637368542476864036320406549954103454585880126435530147668295079207671167871144895396403313346274517200805049352941021340525109277461681805896018795645858446024397731115472168166989423280688590770333488916192003097964408661774127812322957588056805931889960851140642060330395430699309680906647666500693270812278384756462301356155146396546336311311731053760170504411271003707593241978203323197572257471166862708042526401487166043024242089771381799794867585679863715674510519945384489894218401765207159964752986189274342152934899964577531773489284223739660816094465577280974046813005087133665117641632880910789498660099945126565685403191736337995830832765476895082986062714649726702601216232932175174923517884341610976104724375346814326867575903606448614671090183649709554727058666769751729315859342051762209558599531086925387505796932049298188481732567275759719765962778423652585194816125284411437465350477465751832863760005765489167860693654140950909751944132074751246191201086380612495971210946991539775551706851177295518943056372920633282271690943123218742527820329981131758510644689214144756054542768659003128266106851611842372970610558318268886374329507919744266041276270230628517882758380292684576112214854322795070276187825588662850354956845518299461531604192265378355734423180472366931465629769120461605831103225763341301911024129181117708164560542736046173478880944241757163784763943735986341121409650905440447095619443288700938108616971813291274939003108863566354796994697176662064884339747760026898651021298307298568312888519035928846502193184299412640463801346396142532122439367813160097265397796744361813123949418611073722603321458177116304120792561726703769951085093219373386987936581380830396685991546924028606806322506428421503593924880812844503944882921499995768804008195449285336908368685900288486576337516572652081764639165285573646403556105473547106678298024695743129142684487250042305070165928203736245104674480018813721686089584543462873356635370758052392039686571762487643484779592414997686400197990241570591503413300271349616946350576531532021195925411209688162894661690931081704459422244031204226728167394972437225641530057981798199452628352208763597193874385390530160837130367927666150659416705096949865444156571514641922485515404108579840526726439812131053097401919240175690724117743989866037732172913184352945725586982469904642866554301522958187302010220212290610466060479353204025495919189358307077798947601072538537910616081508144245458032346149083428922478067939003919388376345156443588714898789765998347419290635692368401497748577148182299499524568742901590343655881419776709318172704742872878478515483748937278222339201809053475869796550076298035757955913366162614919676677274445169267943277567314771550591398536905313113444394190997876793753813131097486777644884956515369339005823567679725306668451679330476937834908691674142954248693520892600146465531152239347028000428305498741497417558986797609470266134877886521129226450874655267738702117157901355255202619947437521162358494968655404086635477336382603539868858770768862630288409896601337049392280771794229212869632516517237029197320657423451613811399550607286264521910096211253903286338224098070249604635007260316404059393678956067592087895515438990512608716674090244786294298032085028850805971216810302726951189820664510269804770921835491179884970154391186989026179972498445115390793690724894681246299807865250761840620356236584191528241116496311790841610377085826152658132733168467274104407516259162405667964764430387696030798677935472244043685606051296701192522785271934422970399204949929279494945663506824519429769588721170781842307308564180047892205580821116837535870591477087901720152646104383858212219332154326005291165566307191630083775724850836197583305240839263688799962368618075571436050305817630315514946595696719827162799089215177454114851910529471215173115369597020553371551068127573905198719320240968486188552377582751205368972995999127296775705993109635444647379964773138431509279655704981440741604461003995644380598845441880933842301253672938046012296440939733344188697571395916662562769521506632789945417711565436830520354814668346029768942511640565442996827338740520664283417551584341989567193087433858488517360490331540139950712075553976682508162006273640265476617708752433043660673809826731848658294880432455319115016637555560694779145081729538147456926241645470225949737756397771171240656660270751308170071476121886856648732172724483262399222583755572002516788643720369736771654213894993110419104758922775098598103579393975880289444471014795467157716832680343770378855868385462695920240299213751008468746927843615838500430018153633483946928912580964706106837912077043446969700866328977191337908075858701054978442884088286582638355195055579429921758632093430201479520920709310100685064544037546745687131478348211538486477032696387655107088947506224960322078011297415015035284643242438991443610890006221610204322485200246591613081702074699854957170683545807821834965050494168100594811293832229935472212879502030492972899903665780618161175994278730238619701788928692764192306097488827373065848423418108739141734397477693342580365362337522878471327899087451419172568586164182146630038270277733180284350916283981986900608352238648138662492848392808501245870421141675341059904184229065283827357939037246874089903852637676167855421458874466646940135711503433650517890620043121129239284357884819645116513177096233965747014402725560693655069784162821031770665276689907684417894472273988382111371606675753441916350850658790747744227284927197301017677797832002838197773051506446783501071746804489576371362630525962555920006162890452268299064965115326476689865644896934838390974751894980602093913212838082612981538211056408493457197894925139838590605668553432621401713117125478638972160728250262618013233948073859231957075317351879231092154681529547256011359699801348654349012141215381191082961421990151755180177581495325167781064916759448970523526788712690668185504677568115253684365953410328321052570712291228306179834403808729432785156363374607444488985991920554416357209269588900535596531874976696604332762056642088138239378372754824017237004582550182282129228201426096549153635741223960899792344095888208242141096602527091028225409497865994830876620528913662650990032281422199756906963811394343839725273304393660160034721144077585709890974407873363463224695478217099089714644029394402355499642764510478849066433572208942147101111746575732543169504695883027619891147565029053338698981682881770004648322321730965316263817800741111662958505224824902995057183749530298448959296120575443635365314603686772285986092520713969817066756524964577223666703796180127034049451650213797106750824089800467208434932933848304831481212990853677144260767605174802121604919741072821389684570085174473746732349991745315680481997796935655341449360061177035754660283217076941975011557172321488596834774864185593946973741549542863133205059005510005122944326303255000647026621720010565701843439406152965038344155801688998010849668949665921335514320484915706095474082645349439790590174098179465563098934554576569091687617143168300688390999586623748490891366840348876822838890314631285563910535979440787061357326004311520656101658563433659021823697416814481625141466874000816245338504408216335888594810712568219418670168628050203616956750476511940148616718247348463015145771393646257370922548356556434516790623987582610646497321910383010764517695918046000210594076630142954691353590285482313174232594057376130314595244933484724963669065273739275101247824047051761798054558461647280613238683111409726757903846055048315603324606348010984224012531921694087921867186627677407334277300704536406596282754881135260225637654602119035631693982200664141634406954846268571396196289041231556315234437636995333559164993066099225217266324143211860863659139543001200442423082911413720987399101081230337442664938716567478643519799742112462191945978032562951124937191133202751861202226066766315339318480268333974585145930359041341174594282379430991368987726264990919730519396239826685212633931418350569284783214876333732248498688420465305254222994709797780257461591697884547061371463103559372665779885004552876249285193958488262389414074702776376701323984783878507846092011377803120758075845878817534210157076280665748639135743466652995651465948563611774243244403876014639220063922074807003465054053539304115241980624790074397592818106739551859825947397475420631891123708629438320161496481976299303325743835465403057512939183913706197776158931945540447645240038968787427602071151466482663931604778791956956440454343371187184910275078949022661786276231375591715353202675393488666954368826441105318724207582477412413092536954224546888491264272310137036176199335200400394649854616522716676937584408257495895656256216304486007751017685826527080124299043333699462060429517937714744150230352588461461041627801999215987984009680756331693492597222846865444581152645991553762585989346351615641982157960593083754739163186572407836536450482930450207053630301468472183530559797848221899363687705827868425294368472834106312667333597681515258625663158339717075734600634148608243081539451480003196775112581180289220723396515974432621349127815914421271616543338489040654710131336867455134833307659361326556261316185061368181353954604477809649420552917980713272235194436508472035000768639418301944321961089989392665628140851626457495083870569556558353210713113753947724806002430920234373606169287459688627395830418879011832024410004036326737355831248450985993757928675890626586731164310907122066966257330663574581330779779922979582105163884028860163524765463620534987912792840684809610161681871800717022211598875012934378058690511133933825727028272954464093867656442780749200660631709158742582924406091232405601647064069839633035094564570266331430563133616966803439259130251769446603943596066315497470608382279853047914322342073481664949438095063058728343828160305363828230340356384422736105966408455617168587732736308599332696593435106612777975386401411356636555517645361131764834078687204106961499831279578199460330849884884939939863406760930681116320968124564604198844956676625096891958485081246307094632489995744060960080071124940326065079591646273461800263512943982833014569747079205173316414960163580837953644412434111259607374727759851306565194954534493851485159910620258132412455830214082224908515457105562191088180187247908479273239535504926003498106935858620338369204725514002821304260341124590903299904105977507325166498918330499230011641321203373188482385581290381345390574786229765930430700185297265313431997715773981397113909772680415772662654197282344866249059648045692742934104601713333991848477193311802633396914628295120688535581851373473708613197958575990643534293207141465213435083519186089147411872099923354043989669246629492316278687248829932812121165181816682158932321896225857611017972110063936664880927934627219644483346012377760587517248301597723408877730399771531259165447794138990444910890525246708452805393671822512167104801470760176619195431882451976163662858538853257782970598583278845246060197125222431193015000785381425436972113896996963330837369817885093111418074672291110782014710222453618467863502978829648358376322969772377095250618051383447503192679469218277226497801385319913619020556149060609826555754769064897132605638550271101073936390714361150817236643885936395356722693138629814753135042432442984638993132802575248245939128628652159935349344719253817729059795287292003544821805291650127367596954547150341668492028950085653575813467379255235108971759644112343251724615215535162406125264898240542086703650860208763420086755243544134474354314757704464881500750490143406820436321506450845266070452031185009741368097751541731777303126009497014608361382051611136794548559447684675482325411571699420473576125500785127078784714370415209876736762068286492617402486218206236405035683238581331333961591523670775933521662265209501179472794453346537295775445221669505586201488515666842758341234734174418054552113874800606343854761149005040496394718250321324735210382163932082663978590924363601344264077116943025565128257832915109011070374631552644472784992908108535240359897679418028948324639083882681951023759219232485138468171362865915426244631225987257941576758219532807882937821464926386958815056408802427343158853032165290533728390387736793268745127243528902715242686135324462529784897624595890684348628516939920531841610774094369863873182554435073614516365482195136585617614210845020730827698205616197499032815785215220177942928920222002228694172835000572148138768912465483996606764235067475792382187724754103260159748758616815146382671153490562644249031840662931958740638215024717793276708363741076329860407683766482158533405343868654349374688041993133793461584564084902578971418983473621203380564529472997301502323286419147329787892215534665333645190426403171954515709471051369635541520141389609336658425191836750478613632225701473632929593750310721083503337364938084788093775808800576873903777630638524873170614254872174578355061208283251633620657321833164010925371486455009561815164401480708250424923333636588050525212376907415824644109942643223719114285088529263358133426670538763856238092480433758359252262755924301869458428365738810640854938610686014287955555697877779194218894661047005622033837799309852533255606678530902843419747168190511972654605901488944742192088229462616936848827520960456854483932877294810146667648678187685957398350782738693139074184300735350394542536991525619566403610841272232743939993687558413361816506635644705334848009048994655194864343310949880336352462622023178329667733823115780208330988697753859126966815931817209400724068887117342212141652133444358297997718932922954958546865726540639915911005412427450625138283014203667358583261972778640231830687689135614958874266876734112378567076309091870299491514404545480181413263861061160630396998270605437483041803948822768947003996159789209312344816772455049699214804506227008389951496082889545580944014060701631228705751711662848625391441651208210732923779400899883745073891558082758669982970960946601413111090320986353500723540037087428288288363647711693843517122978134234990600925081566701542693849940660314492990546094124714189515947839368876382361309486149672248464255733652132021162883625532052767148667293740552718089946104105555882935168665012468338044121263697640583999859814736318304727613785921438462208559448383110148373705357196820157477039692290491599113250527775116789208457288893031906274418236577587863123880343704527659288970040436161885443718853875466248729879381472912903648532162880732633822273520418083439939014949996283668336333693427401949134656505653117568497891240254792775293770349972754233108836440290245347505274154870959046020107737062254191640755540660364000780385766450359783792023332910958519750317535008861554392713723368896722922406821170888174575892734923878536877409192238619824476024131404610575770842119373809981007872476251592501539478050489773237695435354425631775454456310607591601673546131889485579413268998816677189302225320584841778819899299367277457590050714871696763801593981612229510317515372437750096919767030653553666468059138624053192897699862727897913894278676440773099547136934658331519566866702582246831928916214976252453940872559422054872335575391277642534825313827885896942503467504967665441768492119889244995774039191845780412041936091704232876786070617301965440652308793617555396316321393983625034222281001868546917689032717165331451081363598765961613223922062044130577045456100060355035590452602178758585653974581946767307556258259734667028036982133527626906330785736252746470154286853478644712895611656511563446403782218887433533715909502069295468444803768137294010180729874317892198483709580393512807732835890436649120887127130426064434253295470713644679582809999789816431966885414967280365310461747804989113381838824368548524729084534671194692827116046392117793312329113759224873202513969205784949045176086310018086074885764521975059258913157638505038341643948592220276579220329529105725365773283328152175145027862347091993875059400108285223364674547745642970726935288224283857429429179529317244917653576749596841942452082415899782395382733185932249303335281874291952610052284431638539804193196413389546360007437626714606585137372390896557364822593841907773135608773939844778551859734708279711801067182501893711729661120221169247638359128644268266487033847763459897302513870818922622002439338708124679010798554800806621448807415605796960895910580355305263787302540780511256557360515420962488038308276114360829516040284850700120596003280495464759018395746479940318312864491506527839874523546840788299826959639355622826530050547476640505301767934342981107684339920052122616355403803913516433266062269015859967108317142451715327932354592118993791003227485030089563332044350178552010441022144410459958231356482764564652717528010728543485600631223762363634577240561679343301606477692060627881791275697556651505548248287280480589724905369961575278417355749138526580997081447870574950448336805481825603079673823263121493857265475230219235482732588580346598751000360358711925214435645185912374701006816489701706512613847178206290186262726782835743053803831503372667427438187417205064841124987200033909955688328853617004712812137800614003892949515971481643876092347245208772682751356027178829084665971556128347619363446937735846467696450073687024338182686418001771764625467930737050590930057760579009151266271867713694446723669320048724444036043172783781636336250322594427945172985259538039430426001665648107312127002281379381499208915919180620316965091069755978501306440469600056404696512480035999371074181080754840955939238216470128558382366891801886096459797085382260984264966665631549950289763976257212485671285321413316673551358760702349258609884803097099961701424491521702596131991841733540556768316941202530549665295259742012590086063844691254883081362423194861167927134017795111481706780143455988256068720590423976392882813317091894438748484695877966211010861892692476484708677524364224166753899279774526127940306006783596932831961351557509708690867404745858508705059497857600932933985356552421883028311008827760793749128385707546937262011485790158741914499225882694549179652765410732374425182883986094860990471925154885349276263112668720405230249448418804129655648423866181131882557958191834441414815430947596016779383790503014957081114461640336743136602703552729426244876204712915745776083942377341622611351160843117931847473732935811033628843096012728275092100420609609420284137996998748675438401806790653109839643370135027594543897644079517817486693326498895878758458128898440005851143235586448228004738900056600546727404697413423798840474747988449608775808214554236425489037778034589522259444212444921185612485650762355604596941479137979344287270178199110803327574308381499513199687511985351318215239208829920742179592053301365507269661792889882184244351027525953668092156117050626106577606281474873962824279010679060842536503779293362897507671939089139370398589799195405986753802114992899512288173337952460638593602594543742259745885496774860578068671831031833693744867083578178006098075743333479496876602439309908215578902434017012204528819429022757829481578709628767198840481063412169249493747950257285557074261899116472760417986113776898797112993726536830843940155132358952378038532970846645380557042513785572971054061139352110991374365114486628797263481870461648722459348683218121044409956073779446175788844839653668126444270149714750496595712372534854702329587099605933976300262670311749521302982888815991556695676571663644503809124305041570933412824293406121428841914920118640757207844948805392262512802352761719187375362774933667759344954622307161903516878493700090471417781027854500419871997047711388373951261922543443813689770988017032785542992976855319039544026317831128735361458085345529961388279585924205044571061091236340656258007911365267324049674569506637047361405598354276667577491143238874253686406135377622806107682386764327591782996462861385828801025987191426252234977029661512253161985878337635288992610194057644274178793106883360397113038037377437625441168524273206138165649993920310790771838611898512111260342501739995166463263811753733863218683165943172771045829631655132928761657101416392041528943745503479653796190014608469700072642333961071233226386201144251284318640866694681281524513331330861938704345770796181241117286740039349826845331548088488401632791227127461773154100491507395628342940956710340026688845576325879593540697192415437768607337657528015564283816072740044586042228959115130472479810399885743716866858600650259659054185039414857677609884626726729600503337705786789046365671284107280660377199695094089785960273907191529419976807847771069134009414100737940540431955061224855256124543623911037070008350019504681066727782401469422474104346414066046147194177110866203015753975869512752822031601230124442839722231012148216871437511113832404970728325828975568726770174029540795684530523646409241900131580131504056079251464508778454664023309024550035336471991868485336857505607348188397464936156309344580291997159147841279718408903138728859500213487316894706778304919134304045506761855124939040912415173780610260299002923457642312599427627686162444084386682051570707879894097998661284738173820748290619564639424113639495363970328302579953621809982913157801288622763483551313312300778460114351478263586606760652492942474456136002934808486372038984977999541699820451532284588806486876488631291577561257412797320408393794885208442389197176842406982336477249810336117485281627619131665633203962309006407405805399868208991988411464747547788268200102263608581146512955234154788309372424221638087662202911789028026329605571366689309236556517413957526833850629745797106897602584843006862427573441592738084320433526966802067680110389396059809480747556103217878834414452659495625086330217450273319982847551509009523903211302884045374222504734288805622252146488932022573285955732161570900150791971713262052926783541666729504006503813698330546729028381247659472418963114673048904100666303833474256932255347488891922769630045386459247796485397846469413345747824723557560869898202826734890681804791844380206417348290119397785839942553088628704140501462715766622122112828545350146901407840940725988466226800738847069800661919921417152422529286651497563060662302103022572739477329665219772726742450826309359333491668721904874653497220653006128820840290371291432116136041559733163615624782159079142760488838834673594618569214063935245761802219614203695663295260241539362591679616238777119067956769770693574920050260437183098632911233500137727034884613417234549897019767657388764571248710170326403024533413961660610740801385101502274038782503802331872274720771253859752916951919428084812496578907085122505031448862745139105262136650885948651220728713225344431037492024780269239178725421481667189934341624604186548017492667237186439293196761894838521835186554670015543738066880896062584651304767714572203441028784733047575746917967163140088757435454520106582605630050489748455665005400737463259523683789837597822773500917785164115861816898850034738381982164907743651563597700536710614978604286264217521757344755589160701268823426297416349694231683847936407489846773635930476495362681560350485835972426797093486875868998453271810746798335729885326697365952434483929669218118817019387856098918154070436138275202280525174928397089693803623959810695884483384870638867533592939116550508149427957552267827069576026740770279904628899433386564710633299968702339455868550282262496546722090783980221572154158279246827613009659275552170916106735553678847588796662056550301175068964762792781039665360563095656080549483732162748077073345999379257499740466989895096518710486731721351078666388077419284691200954822427258812310774490825947498510210110307581582729036161071309614641236473139413592517055426477805143758145788667794979678707135110478676917057042872331650486564203354762025177191859592360833906134582095568531988374421993583804277100902947908539494276075872308362541741276379328698699350784607103222064199633191531369577524937640640794537638657177960307335023806398652244217559662700057524395469532971983130327844704670545502914846641720973081017972688035809008590439050634573496219571427814512065226792035276674232668060665997583194439550276213166486770829358022082152072459888280684445260823912569837076365330868655112304302437522820970589188962214737002373427749908987815164928164485609340936378182207407577386782531910947173741656937836265642568586167916232028607646457674652901161896669560944342729257047162320815033899464983600868742492512463285687541314230203953364264146460081302981112298467607402558333233013186017771874106481308394971043815738276317637306558101990586861295107741974828062477497201581829447827734659724153029902113516916222417545765444559117146584951929268887112786600430438159314003207384452985325461645823489702533867588745846905182110797371629678139138745944070526891986895638630746444035904190579094057052605197460144241820587078459226449685221679967145627871239054075218081672406823298603607363717843869101758660313090151193587458442237489459445174627650661326902589635750291185626282621064094576278692068952034653615633726354802124076878204603449909934615079812262160995407254407466880222891947690284395955722760480193402918671781686429265703908799468947866560324187971594398750970248057839083346361448495123406717380714236076753182069124670741035454388950911870175747849954263612478281949155974974004652052254608258975859149333055415684710384021277436020877781967174228678670957510701143853098052765565656501511029792046725168778592862342244212660292972254549919885041753746410855020754610297896939294945013696691573952689984687193612200136096602888981984344044380610972811963970698740205972928114427649734409778335979038265090045040205830437537029241551345771842684264299804733313072035589092647396597708096702054957784861520473666609277296452071427276650524231979704984465871047918278688420990578742993554006170750168148776067882069440793523823964000339873755871913969369511255294982002120839734078750170151579720178329086001759174425213193214276262864637273908544825288280894175426833445779156333244849076534808413345608526973478080517475513282046614531206438411470725802658275517010779301645161728120305307676135638162664486089421840860137223490889718617024272012689769547264849765460608182740388782179815096505792463338506096383124207521647832580154500149881715029312720432083035471982497975539671047969052870582393145685196685521014154477117120790918613279430362388783911814472299427565645733434868196576447415555666336705503312761509136438984295233162999985505802196331968043740677384092461620216381953274936097175631991927987278711896252184729377147443211980384346467331391015146352167941382619065840800688097456603893724466283683029429695137757290103262344301048689003435927806621547899613195184058177911757926857559266228856771836272449252559911288006454157019034516367616699233015955079036115439601358082888019464207639102329941653576989509495059665343868249910979758812287055890608748954989184795189606704662495257923392941094822389404739216294214402621797767026180236824471582410410516506574151296965381688402100652444953871884394218467834202046483987831427904672095147517335482417849955285700935116631130081967795161171136544818270720666710999848415848361247643946063628995010272468179111845888908259044932545527276190268832824999214940675636643599134301106345323643296592559976952706605935630940034793725057777837819264936364373808492799009219528328431868826941014028389356581485815424683069088553183902188962505965101252578565808764328612840201915731489451260269871360386325093184028457750800170075417877280320914147059227840298717847279797507765120209827542145376767997998488036278746010146313795980245435549036784905509789147455645368557511395068912429584084531543524705451298350366422698156308046337367830307887182829106050951045488536895558674755443644865629693056457453295256446515484048230635559344477864110442688153503852643354947132669311703544620180929556123556636039111386630136197514284232353179156746354701249606709667076409779923104898622453215775108506402220951347954396601843146729832744182147580462652235996076504570924934428028560263818866835483044187234356194341843050349113978268242626062497489288026911556183033905796392156770195836008028093301985825580188633203979461240640177927179433116511875653396197831224425314470863557224948172069677088078612538604564437864961416762418427337950777960546149207964615765697934709472910062130236198175156870767011437500301623787423656416326784560710415187297776544222653295517826997150048134092713070537175379206437038137785441438576110870494652905413071777574767474152204646082990164129071311886852886782517452179757656277120407406123180507080347081589310428556080848786409917444246373709327914400820826368209353146714855291551957849229647235375519254078501055216527938067022307906084387103290200315005829232066514350454704662478115023757189313409943134738298368947977338724419066054403227447134768693909595357314931637646412348807039444120467892749147462918214746376318576638191476715628757738942908405972946112802596401533504104011563688743809271985402179346927722654077553422395479302596984814708190676555922680620940363459200695766710582313651123933115403521723402049668126545089175026613959636687383891022056730016416894388218303600678204805853381524484263786092159616489090111548601255728449924727062368893380512321106221692879224696747777464157119355814088462176389791577458068458698778665955341316856002430330664169431954745984985757135065768915341538951648787707687558915616348989313890438556354385529823061630567879223408323676626084919904514414123951493142748235901453997999497852389065930929336446315523920039050686663519878208337887149667159286862072175126370694491637157925847399678571693146299344091830277236195554546210503140974321932973800416061548613109580790708629026306568396464000362369700076028188755114170696982043507378817052245034728879132736288333619179803638607315590355499890148877666415673136355227334808210010957291902636988051510708474511409928261916637832025156000122014187643941414745982368484234483426498633410686571526885510552985048141902561836803452998617793374517935862314647310292182198428848394506353941840635814082442548097721823667536366368622127918178602582627825829922499615462737355536683674689611999577224136548262159110021360868544817302795002963107167339282676979956092797206618492052032908679557125815786685439384538869658457006206214822438240982878694236021539125548315824844841513298119769417943217225652373408164516585125064631182772966438553309616901595495831662395584916113639198263380986776398379144886451113656863793760848662852298060275235639931307012157691332251912890853118986047756745151358792559569338892286830925439790064073445556887478487504406558687370708037547930524239996079353717643706983330446981935758523664490088822693142595509767822930904215740364538444240983948315283663461438847769462382724577127905063522885066804512978884957193945372828970508737323416521576883385639705871644729416728915222813239798447033023382783464404529413189746538546175457083410551866407204581328431884066712666386164336318995793950952458355877702441626967785935564399488633290311234719175275561597501296407851176403147856516555652724958443985751207396399944953331174977995461796759862254390319404188574873954004918249299290192371608735178628297979082071175287575400731618781069756557001374697665045491735038324617103410867532564375364766550179114913002338823922254950052757830436334660368020290563344097760816344510741193869159515113588832512329329302483581532855312612682882105714244632660109586457919896703105052995830982880103080796739431524466131434316413941496263552819257079649190712354471372753247178558450388966515037705785272311801634430099100289976441766304865129978870758787292854972999626798425590062717499212229304543002591890100850765456394496084301836829175402390762079372922359373891264918424583990465562346751491569794656896197550086572628846208977990734835322482415889734589396298343038426689890076710193441582357918446659041453705376226057067493699096908115290648292874500362715429718083132941991451641609270270738802668394206101539093741579826497945348297032204052026867113834245364373907901307539609257770167241890499018656987023409818324721370877733150590329508926522512895717630203124923870766441743770105530762060184401199242287652301956013175436933875951779489135740022593734013808855949186718563591702838467893671641120511717943212034684311069111929241191582450604973339587171672884391090016454613579241548895677104891225368202752424807984194499009179691708962567507561883701231458762958995823869573484732816382429866467231576787308737098095292633586725126846364855616604184071817526367257193350052935816117041836926560273500450116032951972921426623821402996746129300671235158998428733629288360888543362475358301313803872933728787986436651915475955965751485268959776766738203503825574326520433598644704279556466891138999146031110824099266397925003419978098882634931701562344796530760399870128466465470162078063896514176312736361511651750802085152765936076840469922215820317247352963003952773079821972760840536057960576046540068788206559805156090950031816494548435304242128292798954738001285318028386484514161669136763913357836173732368307465338731440980357261765846025074727158203752947020957551722869736903269733911185830344098545944863403520046467883429921289797600506239886561873714585392344181658671282164825889837919740964149327805333747681357430161613339648228452266979682589983005714605978699857501434004702510009466486110005702867750116178410317188810528592544356038268890393820912645820195107859186545401188153238984423715889114948405806800206218186451188827078317749197241043681045084798968884233537460855600397143630283543658878813640139632962335875002537030816923148310602168557411749660219769907031285933224647905842542473338071606436054731603280826405439549334870787725543482940303575056087277848396088963150566911649861431545891692772858785752431282961105586868809533366686958796256896897481022356965142280598397544327761924317876342045404559886061761887204435348380048869798196088266093918954775598611179542436235094180496763297175223682467152167187514305134747415683291129603173418810599869844138844483512909750816638579491992867616477744103824630842207821407029939190557512349494667634173794111997880780237719290111683163528781093138505230608845930636676574648990202748285600046286200627661611030116204371661012371197545474138742308493710099893218811065698192955860504311003126261191591661807900182114435259761516035225866120930220547176022169122952333685949450567513153587622604303179947054546783051743612023654926240270540868454797429930404490821233572657819736615069876175133901865320019056315751715423804247855025958012333357287324400344441795693842033662833748663957080832363924684568901373838015040114112754040197558371772861160130477167659446920202701034471635620609711148661753190792093115251521443854736358791274166821869295554175384104775670112299708485650548522255379709149131911078778307645551202232513942003316356064116920594122794357906184541817221273083709074404244691505898877815289622616303977102393502332244939196038820453924689756010377652650264248572204360574756827077887338865308267653001824814741727031102638403073613387786393161410887616963290523668547040127444393327700041926327457762882418732919705570379287690670302349541586857881716613570648120546923924252870681195168576308622496571254051840614912286108893621838624643788652234609143509692455014931819902005324746247936067858102887366650367898206950338718979095606495284663120384949150470190643321585942818908510530520253695038884177596335271704553277793522276039138003314958995956742866946832825756940470714288568865970547889137227575292202858220755239315397259078652650457271517137647012540569952028177888634537753342173243285949470195552564323915824344575128883627716089705153350649430008560716185136933672401673272548187302240090485097991276645322070194973543242987038131108948805479161850927245505532659858520504603566541866527071654618586133368217626484184852012417657600813342995464333600249928193650801686699481213380572613668527883337150336654427528975768044968002783586551040013489390109861489636633366182967656418228448589641112070284880835454772269341528355829508044093507033517440469844102685548339660560711803884461014401106945354461512673990048450595403240004251776372023802553390158170111018575348808200838509978100088471279664758563174885505739587797458149005063228168961678863665021495930422105938315297531676871921775278200820715162530432853484304952866525867910365067103083168719795632237910663291949701260228800850195597921348925291262785375574775863415932853427907688366052280023761977562562801738672435011161046183321189390073124542893758981604886528078750054596358368541494537889738528546367599615873583611445601535436717962361864807354392693303875269883257035994604126468703714017913956355081318591441080825483098801285214663908879493647988787258277067715404120678036576389548938537897916685344231587546103646829233527417521135079216332589054731420834493302021729193878972221807523396728963115359502154449851966040148230440049550938552895454715212580674883042108019104678671997473217652627014574377663538768193277570383921503650453708543171357112231953634631885559133679659100087015639455164610711266747313150308374222836389256410106524052187957388211475315526039040935157983316492683320836209714133212612164161657647980020748592777594145308899138905737279914472347656519566864008834562929785069624500632019813973745311949717555936370773904011267041742405595268785375598594659157097307024196800435525592402774595894501467574249464662464393633390670778676680287953534272300078237589185347144136766725472775887287063251851423204409887384200317547057235995603351046574833775877721733704258427901616762368246120546488005397924139527866715244539925170415125929171741066965242733583113939009991436823985704001802133112623407897137685728269759182604221574918199038466627784896103380400855287802366750028859883213587972645183356004083502632016273348294788713148900900957453921791348124660643097159585338343741750458872572904995577064652053733053187426828747648635462057030988041829844384773349129518936642784666887907579452724858363537550955785399875275084968659513760423759622616499464750706778903090249305205899864546949154593836834922157953744151561173401233607572103135048632237410948135639791158306022357341123419740944199370012215199829662455330704259823694355928564004608565508247087073361649137559728017724253266479768002493189355478493414378044676517517968907440668702391178223665386347737391465550428785407371110421410666977071285986731419776241179762379229562719831073788429677962891715530323852384772911697974316991148190277254468533159612632066036778379507624807996531436351615975061362422418691588717591847755043915770334161427277643293205780897964944486891613056815472368772459321623256469224273958393044251549733177408604367778291540416914509212003033850933414755389702344315345798524877326324403144474028541329332014046334553230750739436833719459887924992518234104528453116656136342798167898859565710077365828446029974085064649913277826005028618853532807794764713654083267962661180911223189150560769473677704052809058714315451648379019386789902288658794516614061680051175913414026544817061322832006094993288973836696279535059734438126399132683837274225646669835168747597482927437723077243935376772221507960339258713444691383349320747499693971669842967160068265561831307057401989085085827370044314288719912290715115687554933714736511416959998327294405348349497227992984207993770125298322665228706138062690732908276391550724451869105975307835358990519898603801281483858056249101604372436228157315443001753316355031246060495412660518550269024480176237212572311604738345490145198639643136554705996701587405676270411588371358832055728730120514510447281294605827797456365274612342331934297225874674779321146895157196462377785174835701589094756790220061997067749170260639991412868553941275239155773902870448856941330854645662281235394669052604376536604803221136431273437412197385790969790509690951181342716389898432405095932165666059123859601508377406422394329587842499709710938421699305742174385125787476324549163629815121861873463068317961297197153689398821174432662759924523595463499200258774132120534543403978755963392981982218415555514177388602585221969710967458513875960432173733505547017833221931002704508310483290839847389784256526609745614657898117519756902493916139684634359126648962343671758906381993345039272144346215721048389182240877920012291161191357661020276525615009600944751006873232631101392964936373874478180582741231256573043037426689444043543437809253175553876653038173202389266746112396910659995673951843177172591662089285568945989931988371887199421222972516396469610907818646588236214535976897653208354759406419443272561826650534650641615171381294664141621235022706183208261441198539294034844195395001010746918925190929572448325459791146326122721949288669228229880732271069855265433197635531773921346487482871535238199585020468862214176482240559060070411667047486189099088559915995877499341213961488032291211310104781798947514260129941200537200097534303418313067611845197953744077049544269881775841196178043840110307733680438823166123439434651551866182422436238909270168121725594206528346224790876267066656059139727757557448311577525018055911719160827105840228269405684459452866978542198141347249523603103142684446983073681246136524464135598889633637558893669664488049866765545470925640452956379113841850461751897836379539404699993041510876380195955360828796372376022130922180626328599043636715098616053927155350920920472462929362551799223936292297001768824339414994514377553880527982602015323217241247398595965621326257486785803187194458157244288546790209174779894056062343493123772979434555745547019395359366354117016796928074597062571308355044667509285235968143332895952051635420710535796163530057538704474993001607642556433426935601853149859368975148709454689278425949262447342469338874996099468147961913144246283535814494008474786691690828198152930515064051475098191995566932721319230535014155952791080139300165528417188162289610269404740100164845634129896599990188883834103304585138337959206878115803692779306044963546315114690731942822822755222339737496034233008034220553350255096194785262126045300388307587567524544952160937938793731647105376809816331953281901929209417937640077476854978667210818560864264619856437437038329969084215115176449404362289883218866204037167788622072638486991258413003492684024239222084103135673107813701797920581696551659397200883899173483028176165918431644083651260387664188405186832757881446963331891003236968340073488499795177502378225970261249125468772565816361741528508138195130688276150627809670574916466460623390394059532028080109142186509705762123739080798447356046403138699485983449568884132909558407730232210744446389789718393489023028855149509528174848515646685159696521653730007255526215247847029810497394500516039916378861557072108442596094576574057091774320249554335640392718781177867962388094248884665804153381533170855590449104556921562147984499917238983531818108545198434342441162780087392304579539122781147396394375580889010974120023801454334058218503872587041951773200911193384134133283610338140156343820908530334208917891840388299755289262561827895428498798172473851194124623153646039697001967982507145775827242270751963957083081846997930327603884833987768685293963952616641843292324147670780474872961413813519318283193733611968655066909960434903761662651677325072207153864577438088928493174107318168246680463089252773542154702303354481535604939244387732213847072177354473010873081774016774404713173345119273974298567546838414046413752018808827022200504421274316325027512705560021115439703911187900731159611738566194938451121883881475439328588909763854784219397507511949428863017297859358084848671893481669439592763424338199123537556799557030202695520115930375083366883000467706975589274389110403318949464902372084435380329972414006105319183470696917130974427431080039893867572572002965152195705509547364873424378922206465918214584865413161714616892073695988929313039172622058923278021400484923991535577376195007595927962851101974690608391256855109852765274403048281668956268800019176172851933544837571052399963574242683293429543938615745284708299456945511756177800868178099280859443513619926885488849404881563844045302619321349793125304859167164602840599519057459435026648905547507988843622703520207722476865959370572384641372743870959951855072620204645786191508757680969199684920608429836440036219790730453508381738895872599520981276121862575934760520915399489661462261107132458224920161753622402842439483826822689032896836832206720447867412234277894107552732973616435750345331142097562276798938166444692655673020093193320506166366648882356843614958141227510183305928532648764631312022525885864095710697102169371887283858784822712771409665375633219126203558999541498390862900335342525625368748750433493341276415327741604641719293388923068426799062313605199099468267097980599864796119709818841988983351843367474244583094773211660719285865387862785347419820816041498929579023155426858390226604115053256796368681924067613773072170934518978190632096201728947960982622590489958558127059392845245145805343172509460514639179465840970359824335232908801444672001294246523700934411082623155143277623776287853954051858089402284722062923752017678974235232847907391225699150581778732032863345712228435313373024893714684577840835369712890951353730156652569219457812574892581865271831069232270540042345383083000487237568056841577972094648314578085989566486303327270258940949329227362867908336675874056497567360093926459254228655335864517037077032617030451160393808160274542346628296814127542740501276595004230298811757545352901905588460931000670097839970809986012904414921584249385125725523076292879585156264152041663197583213309210988135150122380177054007854832006966875873056818680639442374185215098726326612895330716933566296166931413714692678029751128188661516040937363355064475059914682226648219266731973908914301491142290209759045842759043475372015206561365353104241071766903489053480921362364007569417455825222087283370026945473429723227016252859277903976155124484830511771596883337736016601506610261423394208634133941020458105304795544996796630969217031907552278585847535492001005195097017440782021994036850138147679093835842839656711726029723890629898703937547606442172530428305127093189872706825207957507513322406383048148093819802621756908144543144832332087185606890383263136185000978258684285579962929658808175298028178297200101493284664345360980374734430216894729448019748502246779255968173097016400562727381033727098961044021454103001609797775858970971082027368389717190588499732194549222718793910017419090506758515316721148007901204109547901399238098171906601710994250991102211065686418758857434731658776454731052511447606907622174097676180320945264993810107275089732730726450465762918453200743206904889219845601657173562725779243649882979241952474889528144447750512998903884248460248786137872122585375776786193150505770753630302831105364741767229313219233871176488261669452863009475302435058188966579349435718538305098428228955209222273201900487049395279174787753849285600950973088538207855580029209246309907718571240882026459776896407078767112414908532751873751265530841284567753718704300526910414204550541046344194292478391534511440769759187638455370761212066690956797425738354548211746870023705883307221417368956163419506528593008950448113417896839948365930085210440265135785002416298719923337708780727395914409383512374345738595139652050035871247007165054810219857267993011400560823271620172527380210558367961931747839271494139445655214754576171209039109509963238404586534597937143249261382147011712148203532371678782124252341505412243507406102603101738090133403010359907584688209833038026568490585053345022216449712745297481337485053953544877178528696193297776840819439426612549882170932300626394909949053590277313449742705866504113762133428662302781294163306647320189337606509792472238398254590815986071791291407778318677568533143618857327597575259604783985043963250322368547311790979275043440697680446214092603543437244370948753884840759121140850241542097104704954804594937492352691373787007621947591208722131774749261878689409232135750268885448641781322000647955405433903535387578667788263752884351533942321656202507983782966682675570800323553240798756255291417716747410839326315888116981579295035055590411121791343119919553873599101711339515135212498729456179601643863994928837778814186766408453280181480152980299954513376060449822640868817499465934433132175967248503049222274485715003601083961201203261720596238035448576482796114086286934554057794563432571517474651459856766885543215305370448941346115455369679626495870016718150897501131056700055310824212282625640095053061920046351073115181726744502991333127256650648468028772983525054414352024459917551679840776040594493699395718042815689801417901997303637586170646346422847398317235245457084262292233170256463931603666724694777582417879739028626218245873254469028644399548190669999933675945779415145003237849024448489660344709068056719096930065992728407702283763161362476424386824988755483829875503345659696209220617279374456498128999128507822488815154675249494570523278982689386212616918050907294167367950962417980802431800800493088840277041045534046802904633001120926135718265692341286686633845684164658573641961965865555093102868572918032111380970640716951787939424085551177473053528019484302108279274468156524429034259690809097188007781559154747368013110226142940369154166177181481693196401249451024199210867411974565087302275808656896096860515467566563512829836452242969846656221868264432840664376487372201084174789900040244705707917338962132652542267542830908339692022740968109300590493309244899679452277819773834553523752475387268335538632628745088326032140528142156917301777879075357013486933486874225845406779137116786490576111429789466466358567883426889325932936445927693070366208379678895591552167534994075397496004562666832747186016100563168536953019688956052174101795676775459470361525689325737206886358872377696825683302817867557638373714039239573584805164334708131948993623914085493819256097972166224251874160731370607649236710077309845982393700277211082914639705865633389761602493520423843894112315055758490316084236337431289088587309692255132542937750317625734415667273938087238950953351997044739830591670735903418485789840030375129978229691256733465125117118857974380662612904226004583814694939196752275693496429404523149224983671746193193461941002608594563904077185507687333763938361141046525804001260316413886007025381341686680483302113102389302052407722104925136904181801387492617074853370887916947017911476666065988883725685936370659278815977073482537045455294783746537136933649606838590975242762613934018567113799941353052442545914505484493458181023615962794441778307535063199785875988859454991072923868669566226417188735355171315098708164761375803227600635940363735646519788910193189680249963438817659488891613041429330502541679385461330100975841748572302064247779694704431408972569649962539453744156984752313211626742877200847077062867026605641728674729733610486960769863247894373931801569254245545127231996614354658462802470940979790283769018526182666860557885441839782576171959507960530676530943434199136062555589381046131466089491006878605245237528742809120295331004336133937480794960721608755026970287288118108703134128454453692627603302533006691653805204704647304642357314224114071023201952051507581938253170729355983679782628469274307279354207066956378436733425550520552190208707195542948329239606576104217646794405191108004529001654408026040398798737635407676594222492302483552098066776520033058632579464358469588338014952783674287426117422002425737432074605842862573549319215392273048681181724782345752308372686540565439128568016132150308391040282203297693475757289175288412237955662651407003986304552269088248133523380182161207441587886038877961492531380334508757807254440128292366539212479019098056955863151221595975909062584512312745724125898215195179122638845142003087454561272281643636341342137709503117993061402655772547729367525780236993237385788285238397434387044540234844188698833091897482325646298565218250981591483469529213968586221087114175038528833143302697399778699335244665034105812551084254166292544348071199984743799382131982300302865412893427720299283671387033863422141604127475961292313607902887811622429954653094987948925659766921277616497507597107242669828110579101089494282072850370325524792236832436799284438279101054962021557285802393346141852831447716724892080521137320319466869354480674304436219060410868191251296640801916642121261225039696756634259161009833755643677129817478221281268061370698238012334859377787191793493618936893368305651679584298260549706036506291039838430562772586493716651548837269874744796411742949343807632888991254965731714198582768201089935363410209277860337650656517150214482030763819253237390356478309018050536700704585773907787720394917022294138418098423367057454533614555119380922047513758722693987169998070555905848275627784490929044234264434826896243662167500923872556967479572213214574975301902834941673448946530485672023988148077264092317404434807127312750214277360236819435594104018145487298346747732190458339537196566159678110559676618674720376446461523591237970675810790053966004313517757909796456599127809671923942025972096087891786975103653994335898288684560338179281038240179548718575461566644442628841657218322194809474142566570994268347362347345774552961331079500690632834516254997341950557612532269755276167706017807166591455534855048604059152591089891885153485606506425610247473250302143372898240660548546492263885882696279712124415084683972974430853865381128094695740616880452899662948805073405655699339407149495269955093751744378935861257691545679464367209616678795350891575521665507873480300815475830262662988867702005997450909121476930257396763274501331281996401131934866354862670199011564196543400255652743596464545908325357686174178001842587552500653891974597866507071370257121678922950349173477387602778473881596201047579277327876308911322676180761051219388161140051033764644515759639702400869001460984896726699765190278633082552422460111994151651783528234179151669290362946150134270957839157986940526457852852467400295750797086518455233270180496395097750447039416854180102265862681781096391684681324392223764395474073708165700175357758867968870453253388885921896250655446717546676557002418245871752880752030778992090013539716603199393107664490961880843077177078100890583058338119389584785886399351276814677973142836089831156532622532691090042549202305900306278202284092395457750926222961690474814691423202977091238630717498953537774794322900860409983376790885654010840591219586388113531962945025302117126404618255219504980140552698332609664457115177797109480012109356389668061834759310260811385608353964613983742556437565666114373611888063021768337337497571238408756161688370802810111550064797922642585577283953425051650846025987528295041685831427465569566687727865890650960567589120926994894713468216330231272389477629172982933619210828030507383319242728122979670142177192190742037621343490105610224285206468003082585976960540657283968574586609028684443430184227524792947010221358263226291927665599906151854273402453295862803601103631452670904735969639044109673014511584328701628963633946830601739860740160197382524455323141813572143065855487545993340058154329510174065940145690672476170213086894645108760355955926995047167762750229484267217580962479811264400352088765888440858440269786924837980920263779172360188090822362715193421785930056437907772550737195154424220310734389354491561733685608836282672435195895772648091571439702393662338172608635321379441310619047753104970719592719106525252557529560383322481350631611729799838752745300382600819981634696934704979303041056589488711407143897367572796086130108357996309693567308761365976720742066833286330099545370189721994223935719364490895511511014453734943907103511249256336251029599188712991795580822620335942088764310393401383449474748779023241925359375567409564629966779088621670318770022646785110224832997282828443269697336164443273488669037599047124941324186166204099536243597602815554502471598863371682092093892649915658500834245525977073765517154730503410160101361011489541487817891355200265708911543590377905235656286314766264670736366979824400436982548810480962625686696263143292389446323717426815881420974115653152881432732534513098453111800065005001740783847569903549119884243506182844604091135122186349753127277391926262301283908746867779954014536650745505283103305363588875031201825536512122312303468086864606760750682631886230620966547007235707175540323507460597299097099909196755990419140414107158635736129712959516387991150450183511758281604218785601880910415826024275770894068139624182766992304561796333722719660102738621137739039649461088992086333464193966259871649224626038080473556823277618863343836388372970301378789350275387371329257091308734976691794814569414124416276341344144476176072904321617602604283789589583918430065004501846520712614085895606412868519769108987823396194307297021167235867117964407143375429430383335183377796703364931569755551662961025885831031052704143388694020329184876139499687246317423661892547778863677088883720157222079660668362657916633931063651861225903013610765440287593275698937152313489223490226337588344999441579546124126204889845129344715206546328730139041479505864547460923041672952379568444263784781651730264242923990999200982575594573518058135151711221159922343431975950464683524710195644554344323459184508653298576448414102657332539868089866516882752251975236852122645680669907456041073816660508311366020553977963328594644203688916657394015664672451645120714102205613322717414370332426626395257001106096679446277556556821577190051804541817932257187503738940476281196391277799983525028816218134773037405010590509017891895701358794425699302347163151358245257303000504034712613457799515112568884825971407053645634046593277787260664736683499836351384615574358578480859669979545907888688103155498103169336616967951248402798435155438960934400049477007509442862490886945931665178205164908073587588877600400210771999196741027641594463665789469411613339769778623186153534864781666698530054138966481454093060518652653349371387285197064627235288302671803025283100168991123311549231173971520550027173047239911081823328094521938078400482130436220562758022709761421470761654735970164201855073836335858258649175761446295051117993495568311487515931712533673065739683261174417971080860151821379500589331791889843958762502378296859765616061467734744521366880756227773403979675107328746689438944695702928168054224054860934534087437190315125447293315817084119941447612236663279012058613790038430307675100375626085758181526820980251163059856034300082326391598071598183961965717775133234353303390410808529294428004826526982273008111680476738374213095312882792772988565782647301802801605830955190548333854277581453624592150068496111876554339609690767997624859819209812712853490299458950570417110471125840945084669292609330347379655354151178721746934158002850597286057607440637774943586515705164773001999651868599055682797837031631450537174309440746306805868267809758219176872543845175361508838846802716266299606019410498412384462539537097395634818686340954031883708695276427587967638762738228275765581774696774368400260900096425477498359950057592328206640236386316739515766574460601130738485097960851599740694125669161582745610394388716557662407858717515454433380377311363077678728311341190572528631774882553243352106006567643220206284889542398089109769257726658713604206457151254483502842467958466398128856319854777217857212114612734633723633141553876811034312666677343146176758507354273621261193775333315134930200757635930131507909066105640172142909944653530465140924023875891947315108192212581213287491004256158132211953552676695900602147425712161607980931637757022923495427574969202285899626651305143774851149836823361670049309106988780543556105715832222702191653938890381894233469887779379035054107087321890437592671153182177975470783015503943163307019039853907566148973258578530488411798486929146388179146663013468443728704079943650298705476080765733624430723000102606910744740886217771600539121810256360657547277083003561718361953841935755777235946543279233328052773424753112670682173543089896279500666949116000672444949254190135129228558925334012502788526723625301012973290678321381579731196648846704870319644216765435037223461490933992765505147879864989024077095915891141361159458238951989842402189026308163845933655780563644296450689572148119919841054034424860464174763164578319970929292860461622619530522511360977424737572854379530648846452118339306680146329312969563108259481121298151867449926647897734365348945503623144098400075682925802675494902105312690939759972227373671058494102243459181384592116583933978324155610091992133401159072060354510015818787048252176478340631085735845518525310080884315353097884534470324512818918150821973749321766374016065539355987422872091351013693577310427816499446890799530692710666547795997648710262657162460373300795411695104186873415392827566060846299168778270141229421397849682226292599498628800893890625691879520369816793269961183297895449112645529917600892657810011492244164282171620287978545790799614140433224582104345013399561474459544205394596570666956734515140502382568401447324093708638270690410684805848967081929593674072846305645452883873101956938080288224801342844029927623590679903571301191375501967592188670397002459628897655739320933066914480902646525426314473762005458856484215921854237950507267958206192173024758328546603217460225004993280962516571281407730479727723872450167707295026096675071195487920832807837304979281015256793047336186723275894213190888935243697158939128481186666539970303791804511764118321624937872306956058741968336082423312211838011222545061442651005616488136595031378671898192401386460838266002735696526622068409277787607521866408167957262883533741958733096374798477683492882774830166032890716739729636877417599402921672981019652974017593216338909248143035889466281847674874140543910809534066422886530664640365056135376875617221909153805659183780318947933206269415650364957402821573354332059803927276917716080475548382903429454855034244319865642765002879157335987610767533216732734647151399509005890557586943551265581963467001528899262990481427401792787028153971660649738357136347744044478572853470423241015468089197305920709606072744495950069995508226143542526663020815051877046432226944605220503899814869578865510689674630396806964974032978950990692328942734180868824705485331151825523506973208437311245967371063211977139693882712062028022351467515989587440690718844698638479316472918741751966878590944146556292015924793701481500326457295369151508376007599599967902227915470658080221015505160426773922678632138261876057654887881526267004204817269324912521214978045205559455588922299109869113060229939893006742812216693262247504848130819292182791078566528135738025215278037098450337914067771322514342634912754232022581724535602026074860921101815270718640999120224447045762735353635350218273590570154372151092973307999775014895171265395272451542304253846532455589223724969474813188176234694298634621891690472499931029479508346465206776661543617584004988068047519313273863530256459393912039365082900826514934246945898381517989779744490165293968551461611907615914976968467872335011171299778817111872317842572278528247966759877537724470630849942591997585025872238534266664471689980630727202240767915789314134710145024228606993853705962568504427472230176905188875392988741960043261997208238009249789339236367975606526281446077868847723698861230800032400458711744357079454038856161228746441038635226219720338897596325977407452982949681353236051779373294929138187707183714165479135863025220899482252941584757524672173171183548602090726558129394604452572774323518338736585656027176864044567637105670056032227384304709730947011758118130161797440844020293296737770503986963031343439766629504644939825924137283606305210781705799460534245203153217605451783186475552120288069332965378871091495735561965510940153895839126559799941632752276492777520339442700230519713634267152821214753915493887458532009955362051810887424354070587056386218514376739892684132711176820320615870948532785990816628479368907845296305585940837817002723183413079796619041218111690942745035156599428471947911374290342648178691816658591987283692383952348128364120248603219034852116357313684610836874641491495468101669870498344311471297974432167923212109650003355775700030826108730619790893604111828640678552008602765459897788750534270461946922017689481113100402455191179671204635134742211139299986395894981068683884746433855531583880608818312233401292267643274024394348452514010501341473427174913794574123199097318254850113416162909700601334017987607881471836265316348947338291218571949237929643193341298189978367248054226720375086485429655580468704217217720993763379735384099564772889644351351736678367981211784347665313733657394433785306544661749099412088181306973580805363233301571950565486104507933755869739482720090491904090740697195883839531646055489028237565917057545209203087431471500302156355905193116851260778099155109771081612632207511304502620378293630241867790461019747528715855233385017178396405992431757347734808587408064443257752467344237740616559957597721612564855722000962326029822951560268804850963998486289326452631473452529244757509915242031027872486207326852444666577959926287777934193881874751922111481748463273725316953332767789183431956780354675383459241341785737040239098096454969805202090102060054835448170110670090651257413962103299308882174698511391845984187053149661119134881307422647063887050295228464867339183858941390133719897028709506408034952075664012932860916377907359318417907243835608337123710830239663286071866246383662405689048270681793906692296978750630894833021886340438516054650633840140098834970989919011013896833048349567427302180398828060330555883633334526826202434239136668939328514161854480212617758519161315738458524904031608975568155192684225286008376151082975016777121966570644763029661080514978034349837499955412954159415743065425225729898602709497605648054964256524140977656160395845840314142703140229478915215965178647472240642784321721166374954862875857831278927403792851669023850221785857889898728632299617406666648860783798655568325579834485899451255445412041787278873134621020497116856684444291724321053284078994637054975932594919225551428583871445317685051740188188209316334008949662281269964026319346711122440210714783506200756659796005553439284711699699685648912724424024029516482679929749831444292719645102650245789207385826492458707307824197558115676514715572982823262635230484326435389015109426666996319101588644044440376790599601138578353624431719193520433522913791560984284632570764347677927905626562386086586782510715722185563957908164714646212176686960087862357695788948413908006508944612091363320351090727083260730718719134905369019309788880795612960687678757280322415399596873052734647369548146002549282633938137287586485802743076624261352176341534376937360331313617877096082119635297819903696542578805827007271854938942048152918971544553090595425017292170483518399907548282650801199400880554221689763605415260720306993997928794089968879094969335546329314111507188362182487668691839166373123466953481874752386449947194734576558863494665984799172778298017674832191987629857640249624411287892121125816869301093019686636058809307456195197172925605343899398503500272994141421453327585725193292554332633003502314750926779188443444754070052243035757994356262737351496236132271802438849179946164478083525701418231420325782341714223717443020309843879785152432704015236083851183977931555306268398385368742318385415327735094135222715909865066452965813718194763492178532425200024510134418575806212088448114831974059998493622323834051203392701235548428258638865360966290979798285033129059626662728541403298883095816956931184195699124929342056534644133151836299308759165261214749826418144194539988469889404264611382658184092004963665289739308526720278958608609795928686675292134500514439789056518468749584906409539444121376059030266302913466625023565632396387694928081475234445560328845430459796912124742486827147629242876798390577915339502354142140264081687035827120140490295404000194200816358702323899125493172297344044397946460483056177515028595244573345916164664488997270868131624440397402159071493320918395102883057384795845884021363472087922061947770564702583494619791449780408541996957824297441107756947613389135801669690528361258896458218663542592674420708711246367113259831534130552412703367288947402612560455926151172013223989029032985709921222380053483736467716725867527611047854628327181655501334556263751097600805301637709498271296934143697164588511457289787389406437465194846577018296330124328240962849232365296241676736159421095197119753441369921847612071903021640923393263167781809085467402315289086527818192271559355269482344165973557683438595155207227447342737387518512901837978334168207286512587505417938084463845298687219157051818471374712985376897275662169541151746445334979283519608875503045449953415584694902969655104297429856089005200775807989316904125725668185816958219681514678436770847783495117500588877675638360788274163335084764852418879582193023463121210917076903286799382273734252349134150675196942005529723033955509261676843506001837546474095422882402354258528151754054721894358263073456372698277750970980708716414462315473189338653946142216457355053492650220999028324448909532995861643465330715506229280819939450591885162652034548019099670188420624214769454348860105344417574468570176277781473648133508114551685467799919577386040140994067662245683834981132120338981112934261866142170194098968238515093007613678034815809275161406731643477552476559079044445225224367785780792463675261922076370924305952859271337744047225820444010792360623138595691494885827107925924643323007186228057916116063869726847813170776686996582079827518445781633236355692281837677113920889369961827287900216230481470457223192452492902166041870171289769874088367726213798583252550356974649131787520173249399117740900399544726363577066750228053067699974713478487462116315983705753582813747019102794952039140455496757564726609970651283815484040634619266221924737210649496819304808098909619132413462437185114538581676913636745824604423015804578248810049260601365080813925820539927460904041034946983096997460058041786906371492625011573995626153251968967828817380616473780310912338959823647942016774263448136742999923749633877178684977997468668470361743387732515722089152642830920187176222314966558169991607330649631220923684432207340778392316990389635547067961077476470045117696779426003775606651609340465042189158247342361051713051818576790465710316731263838179610353793073872174150308356151274317381125087781131469753919052432520228613894975809319620990019004863807542920079219446287744934330349723553556939419637534868724005505117701088250936819678338214141812669384879749840683533860028711297752106308485187226263964865112549309583310246500919739514121979907398941014198340582004212434773486699870235605147361487335325405720284650399049665841972072852883967522903812365382334755816796698240724413373711816683923572813098216137631393601898739228771764638928805270343211845970415303736080884570748202188482971561118904410572541558344631222029597787591114713378019628936229107853899467480772836722164342819565193703885980563757683939182075407420171429825507167250012460150937556475883757567756203025724028459845979579530557682409365771944145404763450890182626797717479143349008369488164001845099752047592616542770932983277295726739915713132942860785257699236739613973078229582798186704932422350783309094291461957399871945468869505447278351130896949979874513790238604065995075999564157733759048670392196006775747974482838652293082273460874669777688126219033561100792314003042032389088567430876948902558730880520595817772881461759526112317194924386475381810984880357319395282611043943403788552891718976500322378102545823352021253801737492468802263345903418199554299424666568940856071587838565639915671904010641764795605622436326161002514194314103999623785309607448058759374630784929825870147217896916139304813959187085783936237783800924349304197113552873557618218523691288891069096831260093490820714302773823802666430106241264566399281908626437176283332299105935663592122223603709604225677041877106897150516660197824918702357863575964770516317195915401110650654779208615705056314809985209581545111929935754411559493268281174045383305368216362649754768432940552093953014064413012659522239507964668659732506480257113138977152606347954143525426665013967975571356791378431559486238725961787877745883768797713148976909427546827054828782593736820749564932101793844486972434454150401792734313438909107396718218605621132334321198894606679688008824566712182673299698458109959803746976029750369523450209341153104939174826408850436974959670947401983725568111268400903026365553148522318213723856707364916385689281868842651914710478800320589727857948895364201506636887533573379388515399697394711265368460021978161668016959467828875347753609646206010336852715382703011070268294713762237174479104485369924400397036719147765305472976477158058946988737038975960049488997790430968100962859757624714933834630511637627207837560548589940117186728660608483948763430106501845681644443871797600540667016309316543224195670249927859859953925977565091161148870287013227945190030500353171789630825191316574697134011945875214403901071637143417496896623250593473622709580092732716382563960658355515107455685236424135916574669410553010781953469903496035908599688899492103578215305485915091438346617062331959952188643822983189666397671847963678489533148939614520037086213927170096116439370714025386065272958322596364090007432352500090162121610062472722698415878552613076398185157901277860521190495159447622973473832651077885933613566286211186472793703718826467298796132436081912311704490063064398133824663499615328732706837565007619181301003077461023242801246582316011949678727549009594314557994295720596422612044949682496686930297666785082910639484692495679950653225897900394922613942564837672701774992662327254307985770595325839454197405241678322318453529462852508116018892560749461413625690784538108077058994024904982431183152728777224634172081840127254223330629367326441222858920162850619097957519941255533504349424926259338556742710219990445416649197408210996605850733808140540474604790001084673830652967527546085947756880838713885290176307667843581990835993835016507948032004307344511787999753252978454567905061307386859657492901791351238949454871682766842838256779788567867421485421371633155963841256072547869500130162349651081688221865756073841001213109084756183036826561718083306773569257962104557756436894844690938463893364838263593020258827701082303134713506009835300232402445699206828252785804313381509401384468087169215462946618816852441321565251316668024223871106122023005013877492916364035470216926185225177329607987015279244662314570025678797818931737623666217638732219448242424012039645334369947244733611685519611921186060513631847559323411918036769429685765239010921228860220455458080279008865758021556267432979443503205729350359090222591431733343009273044741993962264597840488865408068103910127473941783749157221074033764885508812978816438650382383211973490353339360458157276595185366221652389327378686485690316035546292198681364820553315657859914737066485997802995213738584555748596185647933829127487442367404050958838696094030786754058076071344345501602421327626722193347821280649881514495739176868081114314703257945078097525306255375157566722308513180387221308372498576704759730323911836256447127387006513097250797235397504195281663592666961480004010491900023151905769670237954172905775334935188871466863945773225621529528756665184280858058454868865089186098086252298320577317532287305820810633588086138069857403783683545986171113486470838732358021597341850300771226095956932559171144838775584464656836094889227534722757296418425548611960146380354452391517236254352160236019365764927678098400919076140381501099165928086926030794799964655230827103312470123637883125084774276855502609791044249240936925629422167716853568176585942929695118412272253603009201803196535068982054653106243020593362074205526906315753524496589084596714117323751494780351319108815177695266434321884279030878427736708950859337234358732442700675099859911122771947194470422135106728816958537649800319557002902017694371557609792969469390149122848288979785362398074268824287695675267269095557027337552614505333975668267838701592527130605367989911049476826725349674224305226886004179772128938717882701918448940248341885914617404566678971763555881444295178403692789826162274336375693647310057612134229494955521429971356727328298595848546167220159645358075223404322702765831682600594333095774484816824510952182236383515821178956286532332142323176620765282027585501675003686210361212294712018794469010908908399593316936222806018127310988129198875417151120879098269321306734954758424777391304161662099370106755992744293636266081558128644720882902950937682300615988182124221376070335626349265423392626251670803720154035075509748618839590963171449602683198630635980537940116045876011196078870058957387461008010954612020383908772180614503709000267239331482293291268051514888639085452753167984760176733080113196489570590492795015132285305615846580622199542699456378012009525262992383819326598322704934664709060240153664519316646837052391281634137097615957789699455917363167902722855735646416209101956726453648387226951608642890901376859013326737828600852525348273616562795747251154054418103476848764051097485150899989462943430084331756408162611696408667057899240446460051102942805832527517165424895043102395555352686540252982592273862553568682786569269478899654128174444663130765471925753019137733543388365594533156939782605946019015965201127510628396403057018067313641910990472089039733426013124673243251466101005122924378056181079559126859743570343758859440445410657809401547754216321847733614447786684967095011786918378177794937567024959518791449570695383553906781639628563314102490927368365444472523100221273528613328472941821776463444001086200609834378611793197721832713913759896276463126134885219643404605796131936458591695032789777296551985571079400562415841946238926103045824248562121969593930776796700374763366637729896963796442086187172652091858292728861383300078588404608213384310512266795821000524868579383112838973235473596022977154872776056612748857355645667804426234165179301316288775452221236729039466480225882567392863514324166521418035465435013060861310833758353481418309244456688167315982749867478516265860521747914429576491169506679528789216088212450147226986660508748016687998177155789939793215868600512408805900115025932178670480976623808210673075286903267484149817913033200135159790538493166411871094174825267969845974170989105055002626335028116648747685703500221304461008236855653955296146036020011730458582362069871200933058200346249988748961290052173497025663065799940001148002131551979093983359085400013154807505039661235748746455987580940541356101463217485689586689234193250434857956183223071883010828275274754558259170529901378584079595182759555765877167272599985595450926078899094885773978792947941975896234869639347418232113402443784563798753183290377311980503323187233040886014804691929337621589008535176564211507226900270021900466659815151803860817281446228205722246517572994866543466336815956490629978726653476573262573912575079651748009075834141528711184724642789826153440258577690185504271061898852640185925173949766476318758577380744549950117063933591966758054327935068409828717338008205557789623873315009736482585647914285173747707118070677476099403797270828777039718140391052209742751842493124792545947114826536969730270896348762823360261754919628535015849577197506558069946551438015366138019940563520283544364592989837747289751223212268207721847891677685566312005242210399615957362380264804483975758138637262043543157777411644595595792532743817921438001273228947919249141344900870597948150437879637633831282143104953178149048242328591181356377013047750213619814039052880521704331841476862398296067026718814917575583097881433946543587136761829748348175552088408630242133555641496491168035193593635069294394045690079581970036981165600211407230689975110290610015908995636794201280572904076430690099581769230425367975424649737767818939934125024635340582243038688470928636012430665164223657423624173343929048492771040558494641547169403158883611088563879244725486521588330823051336682883663658812639814329868508681917128349866992910935517876728703132938274322208213792617347928475067648854950912594244365086625103559629518726633274423949898966742378385441328039293184636811608088606028867219132148724007401831097605754418464001585916047617963019298542720330193251363226157392625488315902272671210859274688558803847234550575981730550292810844232631349734181189889486323481284993454560125848517652368112169575488669232162435937694621957706100914376056213678116944224561428001122480613556959691504820832790205468765439476472482773387753611172198809413452152618853961640965450085457883774317887784677636940631610876851287394031038045959956867049793426534636181624285987914549112381116971418303645604130259122927835169942358831362593352784018189123853074888742584596747641900893507799230719313856180793245787133385325584222988733061152898440912998706532416266872043730774295189324709336172334930319706458007836654607019921146475773824557514052199380798280305225570361577120019491553005286754838866697672593175748739293276315309351256494233002967270195018632499057392443213714640301774080531599693730996487812625196552869888965303626245008225647219642485673394963435299658818050077540312591156503187096352278237770120578704418231246771298423041365427908805585690073433569141046915587989531394137047917815188967052305802700481325302190732944148588575639272512561527492956140828024986471815134039112981218132785418790054594623289909393018279550452491221450723522211240481856339015295158193495899277161944778042348572207200716775269241622372632970773629049696930637420405555305500743519685268501907360518645348267945826611636132023101578455452072019593805695416383873710101407248208818889986680881050714906654591673538053157719164912358926623166316736832503902682522640777156108270846962950631665208848920931028940494499885824935596384687178046070877076356944100753861437627387883566299293264765443942635614433795728328099092677534470935420951350343328014164648916565870581509560573935070922060680590103592343779911039698594718880348854240075685187277208584329984718494361860488237644993721231818096219190196768592181908468170077734869954220014656149153945037429100019887460894988981255677573718106096007486424133198319807449959524918664366782154096780088561203971728871826226183108813983251035686473209295831181672471737367286513297965094766995023001636282990892959847763162333751765146180699751148468440996032791523303395973540535999288506448115813186875917377003166300966743677332525065824793495719620401798645287045795467015633561750558249787338060865236877571306798923591096334368254315968126132729574643667011295845974466529122935277443781800076038239042024682576969385230412640356083929591212081086284782568032037415999573633044980557805495508813264906474754378856731067544519125716262898740416978362566230212073335647731183221614954841658767775719765404451032539433757416357946402727050882571863808274827880516605313615618883987425199883375083940204163303781426387990487998079027622220534471806827868173365636508753801513194076887006081065944883098981112357553819097648585405095376114714125903149389484575682315603280892219729830900538682727945803620219739658303955899470247105842602201587625670263982460103105627444507321489148175977700867033574065690055943498489867324292520922361919328080443583299720767508037183559607498444203221806930846201048538626018467065921245114690140849586886918802152848553037969436024319203170058188932119779952274267041091792094607318301656950977486319570212769268160996744750797533538504167541840302918855574684272391693903270431502930597020743036740883427685530211623545640106246500077764607434780987655683041033587262739132928354638983956150578364448041101064777807283140526622454651806152013179435600244973483562915731095241231091252867305716437983924859759359416172418286224549210534621291255137016341213922322218957174523947483193736007649466314186980859815404446489104470089746006509984096599197841677081368453275805356357822981795701584904674877861668144208928375982507046421330597529467199017658237321567393681526745730783926430325325047129757364841912868437916881193199271374837306602067949751830248248480690972613977177652504806087697395841101268269991470934709458964683747995348802083229226461391119501585931443917134806479808970616267363068457922652405575544989264809647601984790611218667763646028791249381745848845683065675395393328518151470486812273782721854920530877006045164597737139673617867706581626169056169500630890404183115422804452803607847910072210661400842816386703836915804112515368297778518222747147802164235566058660742698333246476112887413031798807319412511849792212780203048813705366862812417054503595823151391912881116305363880682964308123291801537965860857659228643319478815196650867926213986011485056121491641834443793736970869499405377134218741987325862124957707844943469260723155380752770475427905248349855013187591203729480753563351122299650128448185277980769778714261077719866647242855351026989870021748022501639967249873821532429319515540459922396435057420870460736581253987596091127262528412014616768180610816996641205447971210591130793715604165652155956607158596663711860694202265622090913344546820176361366489668163055726111311659895569302250812457947337052956457445334126949847646599072854169606165051218614565164910166445810084317560166289564179687302430393856570493797590023607469206211789995377880395433994850514537315594617225379957767176737127830420853777539426723839442198860877042140337442527449349207490695988470964683579345091122743398603040124606233589707937188868547554084707046641347274052525324866163680714621519868798192091110174226905677663932618346441369304619861565837731213816398699047278818927571024383060966409029673927215771493548176257778947956274666954207454438046861168666921238998528434402332170020193456932943728740881319569943984499401403351801842428279155880456570923845145087157282650266720642470983179971231522905768148872253742818956659900408036478683563623841275397751658612867679186053303409967842547413037561966437479097835280491134994135905639410552894845224499049516773649964258491931335970001545673703655543124889463753404940614110205752778094179705765075368985284154246828654166054770767213817426591911387811058371996828459612267309605290572122376560517096131693496548452005806209755204369301460676654356668528114271157417478774473189384039666123368684038736067909027105538254770900677006651470251341363129235590056329045425796726579451575058453929588681742851891832291673174876940073505192845795486059938849178663551619433124087794425118683509868776330593590861046813432553071553307873056787037886027617693849192726066943710140485087591111622535005173824063020724714990436414650321890283136602266987768717605999867150864150666603648123662557799296251230129243424626974514177029119663248573884805727828844405571466957393619875759996811383416564249322949024530477318722581278453448453637759214697525955937975739260311790682802752593200750495097236009786580325017295851654486765485572002369285134161021558534996330161671962887625546842209310309292991449717854460523151370361257023988635930800291773363768616435652249959369306996253559073306075485976518252657668129798412334667312524948615609822813604311133379080385969748722310110564049018711172489460437736213516015410080431257679316967776547556037297404964166292884808746678089228238107179964886394579261779775213035946833447950808126325523311529710107244159338376088745718435821655488551984190875158683662591068037962932436679811583567345607856968050989992772894910976355043383712547145486578252426810994860261623585141717151139656461751470167821475749878416345664719253872852724275783364132179770844475580419890383838636645170211993562853920744746911435343562810676698193296353998380687933652719511932202691269778095739068121616010061675383032623108624720448549915357989760108894670926164612161507642198124264011794039577660948983570134480691334028471676516445271522003977397507842019891623655639644078713170358022673799633302740260404161251169158889395428860697341540654802088599721623443317164607239503015326030661525853786160641364144070582289316325550300507454743017728500648152084055619133681011532019566075151797202651005739950309146399993775618225269367380403375405638836322257708831410902211998069728094502303429964997985549555017244702619273997646648453934073381605000163353596312957975603752479682661916287254211994341311615556330934002836619278965635415287505005750377939029094078919598537680813207761478847053320580713778438721435317308418531358354121670436651945097481723872665839034162449540390379212086035573501333702704198225977955176364670762718626944166086168342014935051918295498392348182677893604774209370434950194282725882964140371585497399448144528602931847080687510686646866902779647888624829157229228479370608317635274516635559978598974712044847705749960680233319055773113794138169828026413953046566885670625584996000259261100114191352748115875332294361258803267162568357182128642871370893188215242320965954682226922486752210486589357051284276772385105088587198991956517259780955017928380532727595160274955544517055242281195964917316076788131306550765086692834307496579263982857440897056942026950373196108299860355246090595907817654995961770332990350975213256197373047668582355334231458840500756504139465469953918442285322980193946101298349381218045426061170324876146811484098436474347709876188798971165106264625049125271961755533674640957019271725748682580484769330634182094995680817112043530866600411566153445982631347007699199474726107182090640881240212758085885016097723716348842006612743706365469886853170908486088103958834512495362791020256064722759338216853537907428083370519494829650467315901387003399298028093130054198702598454461661425953523066349042139793930261897007592859974174434557335231749638615377092597160221179248960159821975498001878909112876865910654713537231582010413413713783544639298009812111055606447702799701718900965324327915448879246122519476482613005689269533131661210485561675901860006492473259430910737404625256401456989276267714812420971572403614938400882170572804057901914224645390744496320696166392109829865031730950464434577816813500280233592962790829094799558809442536765665539909548508700405604227473222312980479730071680697827017739493029865483507170676022541934456909842693965277385094359130846615671418682877618452177137824331027953188265868586543416527741012700327178096856801964379380424097134126183769918675749410216675107853050159546358345626343968991178039106994365003517060477140559441662883946108362524477988227501199774927115694606465865371260592930533261260368941217564275211812209836663118582678179054184382214079778013841594916755079972896324525247915824702298928759408221199389161319163255192534291633172232476896015265931739731677647068959610230556039201221309448528801222364747434492032844358666037237494043834462617409290590457328550012482054723856731488171834798735953797496088212800029419171023985617582001694303429677414223394880125463137261654926243290700575745064855055743837930011134276910870778550593356993093586840367904062748402248162461797891782514544114042498882692745713211979450425565528830593755508943296631315386746525597687577302037487991537288229955798263341082620580855065961679254836629286086595705585429214683909065559518287144393548633369844827984869850296128023196137206078224604147353945200653860753764768549567971784916886340730354997184543591838926553533532423252876557087310807480548913278836838301428433544111003421723418376278402325838206910853666634661236920858764353642677394624173379190144184470402227264285859306146282716065737428801758569612611217595503000957089442645237422734725383169210274476346233682825866000735301856820066647188567632503689400912033256699442011981980994490332748628427577250734812896698805286362967933929316562432406382258366553853956874991668148992722574802851933887242243387687177509116534948332686492001866423658934339123978406755837530563856574070835371948230252048682566672651119058813530711780709211927636839013295980237053916356349587488479708651699183421819264789126311309391205247732003393807994870621776515442810482941836578465581465624855049029070100306992085413687731753183400006912933308197005084126715837377424064245653476210596936492324995519309538592722611020311897664395525126701019493628586459713106123312774739062365503083512021377698029599825647951438756260280200726253247235586921585655038850541068925580162648975156460467575090466913677453116012567965867272342471476127917769420712471740931654300920722409138969905392354125812359674115281569753820409689294622001729191498846640905959966341999889760741760350127390945425822425265863397442594232877223399930167073382216605759099566530423009021403341233450795221470443705503738223976827324109856282341138704670072033079701708899780286540373724013282570559475715595417777524760116148271513350890528987274439345547432455106683151115482601866340568925895417907299390933416887918665898750090061285053476662907710084964182079948660675455440032194681894693209648750421977008560581457162761826920763706701400695771388452014663925648873986268064420241642802740972146518576029664661701838938264933185477516514238839860019853325146128537826451468394902904410202461099753143679253702724824493951841136769166080961322820357075933151436575120568938502905219793228341403265987492395797434434509979585541912441124880352091576591089741755201029587238396008734930077132627286366246248870888588653398871428274148692194890050825776156468870463517097701500636527073596495063784714813460592336030098065498541855568587317101303989125405731234002387537954310576485799920348154605279750796950172188855872915259716365917520757166490664223827980935016778926620381643444059105626290811676313926835392944634868241843824583917861752863148715300913451762717908721724642778262517586053453775391789581080018421146187479517574402046213073038273464630667241035274454253836188791005970818467394817487281925655451335701666618055467455637421222020370374210253415053468631167985469572885192714963908328871381169031922480779822745309473706570227325414290779071615090517593280297370917064505516471485871015679098767830365889862490829583724053788447702837909541262889813557162504350643450002179079942442285316060425854471528379638907415763830568324204870379105508665370698322665708426812541327960970541702068043731006001943111560367366434323692787176340199283543949221361669853392924466973499628826801390189750794066794726135989069262206023365039393099233343061823412969621160593406299993292427202531296902444908467730076003201402158887979271387568566555478837164821161372464795716803610646362330402488103108425911278158748790456261716457015873616422481294340987436776758367954468774447957162325020095243336197706708848743178741931898457188396327610052427122264192288448590195242643974327708323556875791798083059360787136050808428717101364395365833178472391643244797757850105573888750238337879276186292616397088617526807199544928008359383302057673155555867688502669187396007157873643962715119013147359881894370096268031890391606782290901859113496974780805651263293215467080462042288613988642848002498577598997045776675083100144732337146361376683381925128438097567017943128081803234156555329216617433590925843630287653038708062093034693230672279611811344032869333458497636350586473867490813046781135022409766434409066452461055216038567429417566455110324286261168782186021990992337905534694601374380142069492186491382819326213553078322520579757061542584977088887844232495425934414600368253295288153224287331149978241492465577965555169880808875829280092830522456586787325863600486617324958660598406280054911366222048541525687717725851837728889881127320521559146573385364759665652585706316555471999024393511792191588081023281945800383272717228882928435134713722419551473992201337641154669833990285958141025854442132414344334363427667648648553549878819282615003614829697526114463869526367232667395170928651986755440813039240002436487528758772003487338216778902147572076995256273527923928936361610682624619148066309212672087523287637641941197505548019701924446564354033115140048598319662376707667838716849849406406747857766080454458346886198313323410320144556201083187898702221234209128428683989757151892609852598259335528055139119196050383973529994938984567471434026642134729580712730624259202145195088362866872227197891044769061212365493041883967444554673742254629252052255904777633043882059625367750928260416935325004929170674553188171525277337026900301705937608282682267637403215799330572483162108773540552437079988075794062602582859126243781848856753029646911034782853432664916095241469055850586057672765735921877515100938704005416743671103801552268656707730676241067275103584921576456724392066467838024892852211157792752470627270977686508376430163205364834958486453095902839855780622798111096075027895459279942008553440512823521224197512376576197966574004743278546569612099831794208707767192970176210299516989979184103358265261704422553750344233510484736538801224599291255855300744597004111507577189252974503744409514294093760184079859511652991496975583141192596252339687505163119436991001557272860021300711510487450600851535172853093184185716989561763712201364686829901494172785611489001114231703435649274995342235889553064043296628799938441610128818697108397893640864039637384434149903485000558722373634710473022819627466670880897847528690204240713041389149642829761514127772594949265807772906743965846670270793001710552171787084819381545903642502456478995623506189966508538868179204329795105101157020968015700748052250921964614249530499461113855982906477738257500400861195720607940466657613260623925784903030047330278998344836065770256316369953532341170500465126639831429795434118993705310109075336985963734548140935112828764720204893859972360110204984052620172136245135269852670645350770380066087078976941211671770928034360890307523109260004550185697995507999363095972055954175193396365633986267860395831820058248665308672245246443975414919474264177099624470351513490219204356241863728171892529950706034167397230159067953003415616004638927292778260592387448661911621744519911508705428976056334761352944122349193294050440653745657976059530988915933629613643220361834623895524711519040810982553745539610299629456538120077669707572507042542362952564386032515972069274750560463870422527060824864121615426916443982687666378612389091008763459598325865391406229846738054851128274178938040732056796250053846415152032445091328272808448167382307671921888822213564375155382869066588544071253554035397381623386770458836360012982193783367589817712838947805206677415287023581373920845957957570068351374245978720648643297722469918669320836763268722751140339146638046231306201708961860590752285801554641749948260168319723803033783952806106267457477554992589010642596534959802585680966230819823281179776181917725239521696262839788185280462833218172769818565981749367120017051628223612593157098813102474497017963282460199762579607678614224002667903441276712872170373001611943421045208440728745477113962189674246448694282746511621388029895932531838210176785226428074981114388023507449776316771340161464372602885753161916788971168011483703672380587645142955008320969972888457679947912894121802655667819862513265601292359528886370832089223708774350965207566681313328254621770116753307325305691607994127043104096035075550127088343075924700710471269731038010760943570877422524402395547210370276929381068365293754137241982616295616984806235981475434191242830701899606170666074117299587049990241722160802048519101566659353966221327486434084021664800197114461623678285882311683210723690010930319348538779954720246784519561835382569614863781287996255882719866851150871105439536616611767438950026871406760143203698817519685976501290692804691366159547325316570261904755757645758499775256510591816750243601350468085649093723748633822011612809893078775718511559031598286672397325527935069503700756445575963017912913820882376962115536784257717333373513730848545114710009579921471190687650974041917577253582622956426754681298038149039592678328236232525956876292691259144055794148253757355648470504652479045054102157910016346725193726039417761649984503327300713096138080776507184157474102775930730858806420883493206444617825754961068233711774999023975032345422817732231113296079218821965130825617041348479148350282860330902830473592589687531106661410303158272954531485195690652058048001118389131566330299112311528715887226471257015444262322593544594065104560308384981727920754737530871315769115513605746320778131437928608924725721930306236119398617483133974111756297300037311039947437883124372718412558756989373466442626290743485901369991756554664166922634114926389025702278753014274239275891212177427336497209580957775545355491806354426957682738402603835737044052766881812534060090898527143201495534284987591677764877921172204096541534483450273345999759078448339032699615449201372465759073323062402658873991789193365223483688076837795585432776775038009768744204465358801883244911483525908992150396507660807110837435920386853088287836853821032211031278376998607783286648052973245415369831541511894999923735562864937955707477013897671421548276778091489952113709754669368413329449764629802401310703859055286725158796803787667520940732182293891352450440577008578223864457456686248982384989941197000378260150782311919090230820667938689867940433650076247296332160931595885891654354126445068979074017677254025785645448017911176625185375591875619487341756803140011452762159230158395553566521136180082493440996347469304871355791025979636874775637986138619450501958204251332771761348477873422637239953649314861441396000171257004566036079625038537748464951840025668905693596945491820474958441947271332174275351337518492327486071644332330083159317577394595126812908476060358919182093653356673081083303554674575790556507977926385517578971696697723609130382275750985280497171964766570339921925228138448653845752436040833275001855502420484189730475741742584342874057200787860605933435699469997182993417529437264705933798159756083036711153247559337632271336312247965121389301945054591482675444428269848922802104182747984852183504834591109773558823023981935482537405042202736688216100581531457457343079544207968013584895322554476244250737594731375146789267022012594688993554685859440317164454903407318097624114129103152177723108599653608713197711918529429443708537403962593743637695643541007608484045183131040700697669354377002906673403607497789845391618726568604402182743337995772540100444583932984789510071221053946513411330807466078471294965968367874988373591448331156946079348992589971779720083829496166346718476626432638061519597774337656223412069010946203722416559969338551965294740620751571355686102451597172533943505335327721353940165138604191892052210443825138389853610053650218792443135851290352839751354009881378874395692987533538733936561686346945598271614161408249689404559730442909941698230567838265410255502440329196605797846117912005689133095991105182566208834264255874667541141948043388890732329774680987857723276350900326389081657336883087469175052412866601074452904172799069258148516723456637427385168683825412470721544104173083596115424370674799921130348974221574036256202289012486841350521884432427909077585315361637081504170019661600082647980244932697399633323337090606212618763240267389839182259019897245477926462330854755318212679258859609615428551879845805367477606194173603738055889390106710157316748788022923066566753968094985836373475377996839342602700097352526141065457302394255424220675851094786890222652484130814664567537694949671729420788310770248461938409173497194734772621139407353038391548662389433526158871100174763509201178876980941635613925874439654537974937530230614437992966174521389509281280585271008266088838147390944041768452767270540370119936624120484341055738071078036449275333467308004770549988506453890382113377856096753548536899576775080498871823573880318779181716537371282724051998559887239579840522063097532121728205995665506368056289183582384975719099689067592737326858043871603258607152016824738705670703863056306081968451016410503769337374482304315308039509958017420677197321103697752756588973864151361442754942983329152580718303142953757299144255199998969918618729051518138354382171291094990447357730463009924550999513603586323417933673811440414570690237306212949812045459624843066382108566032524202663876081446036538502891811707134074072817191217959196930537724760521260102701478670396392581592804015139868387247969392760464770091806083715652769940545270669380536408004997830255549202803884539222659059429489810982557780026276663397368937362776786411846984302214092837723042853337706577587207670210874575753024820900400066343784192950691925786750024966469638733961828429476842735519574825837545493982654542616816593256078686231494685855213815088040004139860161757943917762303620757569154154145848475762591724768294134123781423928145811741908227899554883523006712482752203926852727878781053407795463576927470937757153890898419118003655464514494691993558326021236908639444078249342840954445624123542890241818485747673406313394635024788236105243651688446490313758974062684845833922299185598201249027753191496946266366527419615162922713729864790829353005427103695617423141733086647127999114925857931134512216568552147095324643095037036774038319105306783148492343757764318542230368346759696117342357382028846695755646909848888119438778962323591051852356417839187534056120431557649641761032055273982969351635734768062577036834558358243523314783043687615967433183114000234164960085126873710924503643648059780902368823325733937208613201810506431381354560422077830281235488190411984901250882395721370382381252440439566273351716075910904371825212665865900280805664150359320401630978478389653384074643387074140878250799067703002953072895344779466845082772216417030301712427867092549650584190397423594517948536891518214509809224653429651777185561989625518781577892628873701654472173261874794233321742552964920745950744119358382585284281752798142618040441834505040544900603089545562642960591194567448462875618483207145578360771781305596364741108175998925303795675857017618455258484726977668993194039970219371967590548721515047290560323249210726620296916505718944169239010559039962684154242358266655168569096265972204301136246086227423243956409295215817804300154282612199124003392379442013891866895304232137420327073244352102971471416721480168584325696300218696675423760485439756593589985462889395964427986750251604229421682406411895327648458995244393257715831973646690749250269615451094668104489383638075253992899590163827245157039062062946286865541846444225854294208124348001884025282213477358790411437396167482343253835337845368995544350528846193650869269688219320061438315630966181449132248677500837188892667983726722498995488363317575858713545350028126516909023007951325581919281228166587366909559645788841965858652366327713850324585453483058079040616524422359406998754772180825812060956959522875362412176196060628791749999899741119150575058413969937858899047198195969299683603141658972127435159878028802481919634386663698152875804271146183116687335167488507723529549177108972848240816142776296683881740565670553090095122070409305941907675430310139216913445310391187672122743296622815600381729772380302535563984833026824247828376002802776741855341292578109328233608010643848270045788671588039332166757290191521081933533114457104317985163894566423258930711390797412261913868676570521646853913480129235326849596274622991334884973876963468900254624726115496712899067938779971559893114895036069269480998547889905772040685992822927282826842270993710403354461883316742557672187682066606717832528329841642606748402985147006938616025310501040228803518797369929898999781180111710543520818557323375984488349639605086865457691345582139872612772054239322441774192027631377396578027744612026389464143236678592939102239833314984122115357118914713423887779955225982719058444366675868594558995894059134922039110301017619641296418016151684451844040105050510750334772517050107684296387388307166440174683722960262160261441197487302772386318407725860357250902671407868021452072188833281999285838535806887920398185496969781601537936153516113440158030557980178850597162178149033779485776118081803054832724455944734345645896845422547528628644876464178920523311209701381046883820421062015691035969855525133179384547183972051770880398520315626781466244948556708163153287777306839570769453775913841829832416219321288955925329314801597342992446451660632036144251490396334095399415230046812288352608583055465450921859442354156652435961581830219696430172533841496416303984999837197396836122514889342480185376713444135796839266739726907406040724631465408326682691623821906856381286346040408913909117499213935505514487123671700466620390685590077805781954752475350442741506509352174654067074839674398065704080918774196974946558118508410998717236453736341962732100839855954036270601274909883553836984375009683226998206024826809206878451434858353107045857643681548224209939192805281656691750651236922257672390836834547672476812045859003749209931571421549566695010161887891652657515628555140014610742496954034298101012562228732979053876128884669597640231793352545258132713608797629328689790901418792520652304015745889599019490623262594574108892382708952845857640042219205673178042157972252832293010449705075404392320300447902029536521832655394532986380241062193840227449324479098994322486728471159256515759006694096450819599027316453707419511406929320393150445213122807663419489205605242893727031126796274802266232117049400072086638371473349254170138755166270129719629636231422460839679648665829807934681100206580436462368488934005209534050423932579533815402266207721283119313668055438803826843264445736060967722599972151917555131006123611274409791452459179451978052039818103579798417579803589736258967002706268960935188188370417814551715029879689440226870809493992720090686922243926602179861680045695467370018506926426574245900814263160818868402418644539512698200155181559531804088616500640348372237388090694479875080480955149057282489209833159478359388196254179951549006607445491006044792199117509761990051219583643428235847578378396371015711141622290936955090645758106806477168916919077890723696097109699419951927211808726074969743316901398327775082998176367368856002750259426143109449191225216224449291001380633793512519423402336725590642670950431863853798299495689674917303843870840244145657435004615838327551879336142041597820571948451008872085478031331274114785511987095084081425692723323720025996843107867950743236685552014570309548826443098078909048817928232487966554585911718917206387872808487657401599394066905184951439835384685764901032885769442700243445844653413218803625010993300020434662127613584679670170583411834007801122497219699219009294471329608736165248187399869702892022164837625531003953362104275156905938008302070682976925535704570492703624496349689433265391190479120802714067437478925236505245304001617409927934646812402547288004755557502107533817352277571159204694687336781422771253161042193367125407317486442366386646174227553407970944759151910086279537041686452621335685739493287896100484326180587573220871132997656092782843773062409439739907039262614312713791499252114801124025299201675834866543901835653873226727519612501356238269169646974409393546790802123847811163055022890751962365656048434062477754137247988989051494608538489196967322106122956276491837952063917128726829212210517612501193374897121136041097511647392593254761183803060579843541448614817160878863337463407124757793793359148604326190430767657365662678823067280217350307736988612882240564286207475258349400689171124051781015021401787686035052061318806822654627296616673306119727602558585692202759234503431890569193993484597624725250315768300574213820626443741151776534652755752706831629861306100983788023004214654099834327787904305502725492837341948358498384373799100796647114895971550274319659963230187556911917524199235266654624216914192421708678535484390019555732772691268538067016552274454781943518719745340736783528741665844471603991538425611980094068883973044851758020930920795743941905611545850018684743165326354868242321317880602270783422801169290274761297695433869478820631595572548165169831240016103799249163720613533016764596685894342036612846200694919997794102661788869508672633400049575804935499348280773539143095066780621721273747781093555900921530774581959743031524545195741682599554365354639339909148537640520900466859949209651613939721873904493171638163619668878506047701961100358693680928183682028152132384053307705966106292286947516845607020252456354618795031425244183651531282875976835340785407671013509787953287077924810150881622798736974426505003823828619233425524889599568479863005562007636914623931571271651847654886128601142504312547934107235416080197628664972435974506414690212312066190218125669149243784736078015448064625915235636536354490983210397602007478476296987830846959495066018218810518280914677400296322624377898595717307433919285579649023709032144016717146349168858130469429099303720660215577575635560377596052257299344644275713472453659467773255940047486032212604116674480012888630339801177911046965422522780651905830788686555694835010579686317907190668439821256775192185866844428899891709166830193042415616123877795888334049094142811450395750458556805585498228260805702426959777956238879003725020262367867826998185144693317520965616698789773692685595732880702566558908307553891162633369887971835204186407190911237329027204486087840556923326738627791160670000099291359922059050198735958250382665952819644897277399866376460120272544484818037196844060177628309384375975660109538585201690082729636967826628251314373858924728415542323312903693697655078860802702103831085613115231419405976730838870448630316656522492665898255701524134611466162861506253433497896065908396321985266927460143019029549288423509679792163818027620736092642524991412175110439435819303624298057091767206091268350844804558834123758272493796335292525640463444026878958962192407962980576559836551442625768638793660964114934803635585922501141813195803444744204489633296194318409033856293917071500656915903876143581952308004841194939106957111481662602532064126208827065591242994378294213156838494600901000153346714951683149286316129788887459850631412414491324131956298698126262576884542784487899961066002754366722710641551905651780736473399872017356802714143242684076147653605942540179021093947059175509761130448603359691700063799781321643396732672467209593167812060200858271245769615444940359273043554513527610310471212620946748077182224142321543624406857023602247159315483119134685389614572664725431026178663727891163051993811027568748517064417619209827796698366937232125357352763666469899707762246035918928360972459640333756609879674011145216480304293134461053531248095645926470814751426314159039522621539037591792499717138506924430378239123159195507424047865789385314776116863020253233858074410500753745178837530097447973770382711700242670045314137307417623904567438807225726840982186248132563437566124115338666823612146817734341575624996937853022564704946927428129435806601735624688241555666078362258161476736866463346391679730448649790014719815144346289864265694390482237605243373039841612876022835683882828049487499816093790833653899248632588179493432105743647958661789680956796663664374219251494459028650991097304346103267389611970980313503203714619209364099755145983048416171323231720195705852980689415537749549052536455235465679652421376533895660231268363155682787881127505015054892213578943939237473034158464404850214083952088081852204076873671593178235179589665678149866693988832895580989513463225318838716850632565495564675705668243441316959041040662638570873020072520057833132870174618630420103495006518742306829547517414620423797456685509750383850966808799999772258175276932230848093685404822262925441001008425194833520696302548807930609061073665197581672356146136562375941569334451822346242124585344971693552278231617854630773579164034619253706607269758240143309360510660025115132981828736865202713088615958019012994721338397540594946459806283657344006823484068221928405164320305380023017852171786659987688311498225070193661106750499062576434419447290072936772661141199031299476328386238585785401569952176379107272621148866977710375127744518727968936231775123140124684905330512046304374905115553417945805194637886208308440426798525101121111312700539004263567566243754088136127555655034488123075124466223232031678898489341609862641665354439138387092880947546897399081012292090804262716467966538249406546680110824920317340319828707692593489362751728609539102528260312695668415460015550014423510931938725963239936784487640157990510696788472125478768683422971036110612859909962781821663827081065297584011883049609147195041092907330845265352696028655145311006299850663388395702656321198058774590168530641783519317280302576385946089931564383542234759545926290706460026011466502233183368448220612018517117004796884828906016228278507870204281953060003081342836056303476243435836651929462068572418781479828126676559276147376947781746408399062003016407228171844065790072049791045969922747782500546565155235515498449727171316336425059062338026279800616586387114803004457956113503198517389967184490708385605513246689026936365610918894202411308452946357462822233867846233954490261629757054843380184770582565358060856620787618612711920845918136846181959922816295571222823739084599111348190639994021414823025766094929886684342412941356775522114486058332707971004158820509670313157512232951237950655204693037772890073627014958370496621234808732464861518518205203802620972703006571005272169380782023829566157543613612788615596527210798764788098285198656597626746635937558673398484901205124443810932385364135499404102017896575698424159851872701527317513087383801832960205569445836483342867899788698682835418250545487887759659884820761137892636703510901982629286139544031766039665151018061361324267466424838150600860907783151755957991321800567898309990328517478113208510032847943585759685947779084788069406262682487862601432297690180909108553441788981848209872747468941483940046859355526812955365916897751298705683264128664156968301332140073899260966736262893276292413926067756536589389198168800911235788883037742847535457781631410046311531745157774015134396982139974409857813657506981984530635255665527137455642652325947025101738375255840838781965081628206119684234708387823353755559987059512158281267466832448712024802167872494655627747067721753265746120137384287846794501170076944068091641217130543157525309915007477423668894002269925485407698404446096148332451940684623935610044293335264064685140372830253921263943659239696527532658748303932110021827699004999637121137379220651893032081574409104813741156059522990363081208950597059451235541607011504099636149220535046814136118260096896125995466963820789721506727194239081625844508495249123053737218311203380009075432506694623511065263752809963538497881655755537095421482993279239005718203980606615755991972637192281249565821654769849699965513770855520962861782104578119361128371704387811570475958434640411179368737410209587033194412798050364758775939012092795807160585888222537048472064812558229922725269210691220459743560379130605297478105128691366339282186074600706028063878450037593274780528246939220902490695748765471924168642469096170024861698843628151800075273106268579222342039138544139064496913663106239843310673566324944299647808345037944068695474228799454087143903948410591194275253396595110852980513992215218421081037465734161805636077417636743465689087046518985767612963398074656582403528380469924137641921649432563976860786588144860809664170728816758026659840544085947604091760432093057066939573901343093327102208798864243085360431977032620011286558003115629405607200318346076739467368914142724949184216121273070604873834587136415530491517543811936669802595810061877445572395383398990405661288698946926616213374707614974429703576794215693589865502413392587644276095305028108802984328886473338211839960084235405590360459498358883794120763261834568677602265450625026219674089765506915152928374512874317037722296000610845659289731606782015557790918742389425394684121944146644404722862859637250932327049813321173632046776184956182661015434122735113465684152994577288160062713069272515088967059190160887644976119674920437388635722905983580935321014847606923651295880092561003604647336652263605286363542657037250518644028852339891453999315673575915136791642023614193607821463156650169516525147957664099475592672088799958639081952762219853229574994295177422000098995785167769307958201068871005673024877803677668534809389746271931486292803777212400908537238306621422244943023414497264462383807377740423872342003143102594852759279695055922507247979023917800263163299906555949572569615440182858856699085141222782650227880884113137321008901366796769798193533752959421574797550848278691777232153281477863268142934489857622873153447730087334894936739538920902970758964215546700288696258743542262854038776387521813951227963746348124169753940842175139454710345275655412162347612839282700875669572141496325816508118122237136902847354298934748462711010587264803361311013274745016149298232433149224592365881120048656598184250537201298671818796968955562076751249520053742371187763403644363839005691768790573542655174601558340513790700806251784807719485892756691377579725980154004633149579012261962204731358986747823989459174046483745801508896570335205464500902178019277108289109622425548476732394898703832626921247149143270797360760333300917397397055793754443783123602278276049011326958528237406783350380423914139018446838569516432495346668635891714047714142243702453594628914020736235373361567359227205722535305844455204733625180896797591654943863506651825001568881555145378714783796541140498597114157558144252669455524734754951561086314393060284718496503011108464065962260032156240575761287680418859255690801840096025263827136485980813984980172165840299371919991090793426179349549464341472896400657542977289805271623185471989392002179961249260443089840613489493879997893098391526748175580897827006720386971277794090010094012614482135843039706397795381860317019280649698233552183119445752146309621681477383153242643253365912907194440878642412075846461828188990371314624139055749580595601460087048004819221955116628492265651060527694449829380325025196314472964925373538645878672729501074568313568869136591319803015076877388596065303024409123793837273149856642692787963427760028709792027937568797744780987927661723772958738088646659575352524699979139951716461571168346431547512198067757725064620089732891772541371214349506065099406201700613266665535418487383119781618870330691707238290464430683899831072258989233603376197209180594983966253169845401492694136312035492539925304285159176400483836270821953100242642309310860827956222677007346099906876366368266741598777334524984917917022988646305961651969894601247309995447735551695895341383729018063397199616360847439021665583438433494855390423406252855122192783763536624703583294573300074149128211868341294451756282327474546039242583346173317087296251850783333438449849449743769214508896111923501360004283398260825409257029662921378739072686728906439517019412472767261276679067476266598639786390858327238709243619846578041145442774634331293173746714085138573150060238665330302804288842664316935258925657589484030420030138599084264937172060165273524307691478465394043892649691140228613461322423513809095474919542717571754451124128135928960741122938961073321549271775992435457278997540229348522292129124505940654108083822312260736899055611490541397790472121325675762401734945749016940468045999360079634987922680991669601706988611187915018118234800290514655319620131262657287325043954423663856671168538072584299735602877242510657255959024230109944607743692337575492696763011441039914040921074042018101622961533131893265333027137216427954787665176500839598266010093869882968268435858019335424092299758457585541977450834770168413141022109150362348739518048151582578840017766673850594833669499755078882045445044061502435153903337386930630203018723283936384346226833066450066056453615838047330361051544260685531213658836625532611420707863796203449675220748804223692623429121180427956036688819593267620142203724327348179769215050289504984690177743511635270256689532875112069314025575225660307381260038371020975773005243297309229894398794044218070392751747863732967092084822876655387155878218330613804127615158576154076857965161712054200621474406815233370994586541731369404502645442157756876798629274862953312337717833366707172770823972764631790944664501779672007258441412150849069194777287266321962452289607513159310084720119514515055149740295596076595960400717763404187630129662439952215353995206961069510577286429900053101904733814287646414248100118558690886735646023583261489113750414046731594043684137314038331624865295911857991983011196447926327245694980300303202455900306077105686624824763372784446588344228868692002550298854720627649715658843701893761253596441024366775236350337954294336531588469217743195393639638606834251665342946779169841793007197971844682379109415407681670167935818112436972197706719375100659651170367255170017543515043570500554162545938883026322694691803947728824585405869551953395641135989298480216114925352060626276350233429821260594026502401228708205942777479839803625823767195672500414721284065215562975592683308712441680201627196932184782270743758017237707046781309206980888292116774923512405732743593346925109291417164821008577756095160936342924347063938289207084487436816635825159010109031169082201697097754637656446210489509543061151884308585606943530639617786701658280559225397684281795316194503941352045475230002871447818146528323939022965048143297903917325628559294478422993482538370321570233661078164578794967253109225185553086041126763899462641870673573866399693055018844255994593687688021460592294716802270052613326949288302168861021912720695980646605531172984197581743076678083048567662192894012749618641355375467300845709854378146698002377196518967800636046212353793845280537490774192697998985089218410974392977285625582847403455518024457998536755635248315194100178472744509510893032293031954305632530468874093575283280418769811084387881701063488089385982321725183519015176950798580732294984439724412277480919573891194854589174128412353831523149572850109219571647143382864680673553204133334955890800432539748935581432883960617690806652335968221712044000518558171546390742426156209655423476841038768442010711729035945358331491927630883723250875437930078074078741120139044397346848332578121024630186792145701246745068769991959385786573075980448757398399111709204582110566436971469584511217771237077285634763283398673273350080949624417941902832329661987414818244244933217644949018356171762190909792809199321575242159214410721547091363304830545193792763007007853848538894744253843501938144615565167888660403686905182962297774801553719034551501481609914388931317471823271418320112718506787373192483686032699327052480934342483904558611736697629002417913467988031464349772393109829647524459883292837920169314164246891282392366707566942778529447359725857671568274920106652885117541176578503676090852925687207843032996967195905244144074456038489944514819898458883178342196554413790113821191751135000018439185259998207810927342756801307295485324494786129080267464942360452918984764737877284154577253104958933341962320126807425529769147558964176360661465493204843000154054425275315979046989673866157547752915851509663513093705402127582897034207770477093451210249551557389588479426422045421276059223224169188399579105428707616391014244458965121272495254335095971421165608539266282184517668895874423666770694389768981938342041706659506353410737022699885726595329921018360275101694785029538893568549211956696927090582185886884696136360397984235489453452640870458470302647788021546103090798867986957531924493342570998283278511688332835061043540044929049323050707878400858171947145450932193246801813991486522118095267434795853905393039992303489109236087201778489516902593593977570096378353930576070848694250627126030242931846570124571900200431621320543073767676046687842712821500779311385267324865391394097079629427376793526627992063525112365051331130518836288569027853584048299418836023533410079648740491856948018478958727521410412653105493869240601162351826001603771682311210551309857744899084601737561290442025218442699154992989472669415808872621993114757497780343373256436494349928875937137744764592953792540115209078175363783017542727508921423405051793659860202463901327218314556567495538251077024538290608917585870620386476972302420742408190241759736671369486576453890597320028320041123256116193526451800632378772348983884707339009930336609642172144588543523777081722704052837304652282299174303393073210398356643158266233608137492465278005492598245064494831596539012902451128543570683456655217927664430119813244952672984940493738963963525382982455714348137323849143331347135794911970766681011305037079068367513518537097278233038903647415714813222977492157451184085321351306044092486002373710577100028588358099722467572266803963382142526805143322382593922072422113639804234569768981046978784243431265714803315436229557365083675318672037688827080272703349036913819048167972143504687122511697405010766758795479608762004548191032385898747924464000326092313739315959837235833663553546590124021772124634207971266983445222669291007679417621832114418831021256837045609444209994759256391441128663671732233516336454949610942722351620578831025728479222557584942060025720885894120488303927064919907244990471782841918363681421094148044280956021305334054144874778480656053293207144832510991482233895974235755004212434915295370709206553521295912217094783346400906044397388469083332736279549026746741529075771428675559573983144896625673344128696181098517020941071562402010219875943182556198272936025831661206992641277996633945988473780672507394550004144597922669341774302070614187896765686912046679649047477977263355760940019482269768449933070692225336819711137868252607822859479731603076654760381245567203428640524238338022383710952945606674886538202260470641065745429576405846424227087366870690110376849851929228159059295234005804061535255762843651466894566032296287693967157012602469140686577816670812034300064984419671994299486262602843585558221826044707827676803147477322322327294597774761758769347307847994813522672929751743598642152945027593651693683089482647507975802861226760367047128770179819585069430205143733405312667670864030489073982922037734039282199571125957083728412672932112700533034628189176457134108629088315658570498843124689783784606133782024532404522803989085244348333642286299130994702555828760485310767607995436838130027206398156303135391033414917988421135360286123227981699837135088134694240961607185048756161051752071040520755757276941894042365324698474099412804921551301880165168803832534438081312203626554533920092463989028706643885910967033073495312128895862475753256330081301746279611114137737216116774869780005746383174753191152105432438152734987745414227623088939535589303481502913824167414874199861386339168606350238501778192798964484612049583331772150182575476095924164187202866183471720613097148567262776355280807348331978689906638244095658406501293745075439259309620728439754969057834581290404298787319817975969677632465138197808775479521950469421798735927568610665068247781702609883748133892399007793572734663030232359429637314179884045304511183318729782212549523573477044527739710215087536812417535367727731530528466708180705330567680235298524300438828402674815530918415051096670126402179446268671618815352401153693828494716000302935823766307830350207707831989237730267307199819790839321765581945278848152477129195591211630228727091914741359679295415831051896516317066548784842294357542365149624390712644041180369591660999975955492924852661518339716832539484343931993856266950566002521719074879143513588015932254427987706756493805577724164322001467021459298931229568638464668638602017083521817688825468771851905928356020548138965226389905065473940022852025712346533747402927355938338675524120361654950725556891400096208113174853718892150350689836280453187866272699516333138316463221373722399225312797496067221401684833615560840452341012100584874321012143531009296022451985613415872400405365502148656899124413301952379715652930361549054318548287191885756796165473860816068830422882477002944882090144627984532755979911248289240667919736102148737916837818768112680828273154168207778669892181803339713830916496226918115636306856958570501768027581443343754668572254016990020455867239355891078946493565010435971283993479966282396191619639361099221703225480365584657140880238747175871697888323522945092076622025174516144562758458877051995065391399148429447218280587139149660123338541415245955889075847647395679659561811551209478582712360615319841681143247024014598161820815844815467394720358728911570765013168846821446316227499893327123643405474001761481342072373427509813197176044885114506350510025290527728902036691679809700626529842745643081457622563937483339696221124000476546690521124040956282507115398681542163578532467876837518725295693530778558383599188403551019503298173557940176109335160215113579632109666600811931218590211914946377727564372059222418937676556779083676271559159856106225396173852179124014705281518818000622703759907386116373013814207976745629547628524206803310803179338856317362391911789409195853660270708404570200457095040889303634965320964892405702986306625452254924493927741687889512583506047423936724918882802247911491317580076858950170535440652556813222012584393857556086485268010399689573530739155449286388940849383594586653470089448669339491858039391291005730061948725019550061894218554679149839365866007763501568461630662366690968853256513721501295981029054062202908214191765440706585362127100540141998285973238341194067292773125484849272723971306947525808421071898476815962715273346017758577218545531203473420054257741913268859617388474430149314594934733782698242576706118242651834487074604591170762303984816462292242695752545602675923905906037984194572792022815197336408301554500034678375480609528488510174941559369043797448387158177750018889256931812572580317914072087195259276065956118630022081128238561584607669699041143599687381732939146614403154061862330608564804518186460427525308976890082175118250042175647287734346672586874081211022011014826912114653220902028691402257834996808335158800276937246637756619725170712971277251006995425151426690249637277169842062318296798089974939968837249629352421808938692434515719321583781774447647660220197022967996684353240446844975801497645499686930338766230303286127534293539403768968393444503447611130895363838298294420327510947043970983993377824189060143041468587134875310287422606544024954340334048619323033905706443711164698020654357155483083420183549166443787844719348000640513053923154945514034703570755456641667047340549984797311639834180562209611852923226508222907866853872081320377728866420484198305109794168502652877575235312183950043979313976097494775448218890816846901164736905613911986258593567948039782923106955140474637228479095454268541116059992590103299876161828241744856472490985260241651192912118749892785364781496670628179887747009646336195312014154028855876267449162600412411656442751213715988634174397656882712409236944542665653352325516884231403899622801001894740007615754576713384996580699918003728662685977917029739873580262514361608223879064683660943976596551063638519646608480808672127451031718159281583354743044698292425601104374128000167613214964674398418242888939273708445382808475037499110843618658646736293884318086187902728735099241895256667824909343544714504947743332232501472714936214595376891489773077808364042101029513733570735358894468549738196356766024483756522520360681238505887365010762377047329868459853962619427043749962887857637495532632095112407263720128257007109820769612349580299960476003262326411688434600955034526328938460554721861955376698035249453385679029315173653419493382994818810397369231883214640467311635264792515018706592086704664531296889881895458192610173513726542912613860326642619124427649122535525855617541418988729250394571188874568134354657991024581811518726110067534733219364834767344300644773647246699532301737470061255753454549986400763435448823255501179727057438617509481422884438904432618401693625235544329840756539734196333224736447368367113801650347863727210618377026388355233236182028111407302879150129558545590108487182024070446607167331705363898391861764622029299260959651311905560280772245310664823026649563541133731141760778541779112378886947598925083820833220313738657426781613112558587528394520084605963275251758701505615852705730112674477894494846257694887083964593747941959793052829271389596211888425654574559904325566547578277434146576291103812936776574508910410918198504468685538823478127507804996340941136053826637691359004963097404160794011604164829349948302822641872748242403728855455417283155928753501982457143471595528165509165093669803884923813213912476634981157711297662781771321898488485743158824262316739589368376658943415824979677451993956799811682037901920709794348169634689702622420242116936887774674021530087394188900268617961857517667321343369997493889418064320183674311552348494586523597888652483897502627032473122823194358223426983660698402401622420306591484469738935596567741851556186770338149156651826332540130439369703526253054699480483636910172518998453477753453979410007989142242744066427536408028718759696216382136553489741190325329059752416830631938188535360945930365249552383942623013986183272525003369321253678392150094942365359836052866124446154826760820501659783109513017378948312275381292440994379951969879152076582134762385217635634340197799609702562847542622656833819611406941104009281776499884910304998560229925917448579253464106174069504549584453120385150259982209404273156635157174955288188667626449903103413820158943811655752214093880289416487757031142240905843564922525372253005348293539410545389287214847073654463056793254160377412086487747670432306328797611023272457324404817798587110157081757702403156246728473085634099927583117316664510495824419286351165536626086422033754803449033436888541852166474265395452312419281889615102301237049136631734344257912645430498183682068166936792887579075658669000508083070164806490078685760851259977718753990201230361513092020437751449420413278228807206768406723307655513948023437233801573016280548163147668055526236377164003733712235251109338105396667510680642314660672298137444051040087729854220895052011027583614005791860457101250151363730482320077162973356523382186679988481701203930275363422733920356834457199965737970663925677545546246099050011283320854074032872072725458805471658873024287863850304917610485005025278373360841330522634406478337442939111097900493891907788816523816011161245907653413423353819445330685935661697975535735591053185776359460950378195502227273136471337145589902782416524620274300330306442654940540665828668346181562202250091874012311075784686557835503212663752506462613845272017159155070875862002971486118549937515822647457923017968823761060791914942196642706591592026499815929936154748862368746792572623279648487099852433699098759965980033800385423654940482127803228531592505946654894755117431175063037526847852014736519545480611155142382826044834604769177744264327139845937705519470618909803922017924837968772740097775516190412673890111550211920541730420540022177306079476662727401036946752256852376545107685420667553636030977465081694547784018993274437070962752388383139225835168451368671905278195520122886061131625828358272435210894387714386450062300645187420129763604633504574385172744132171214045328035803356482742370510770820212321867335720945102463948229650542724710941128362752782919465971695163579262804977676431353767994024810709747169985483398327641727296570964713035168734386026694456081832318138164748403218694465527132965837957204403689965316856337942257711590626807198484844151052553785540681339832775602145306853441465720326008692962993180772801412457234252483919359661091167992828087257510487292903298290146937950728608077588069433393234414166731833194742460526788083259341115700030657279028151126708020454398000040499984352127416566127527315019705648571385443227903668169582908507667182866125522521733589456757139997044925876495478679726115687159768230542451503430003056870124974905033552300665260712714411360584597049983190253733002406898526195368174977893919491132269534648667687045186731199727484061861084766700963351620266793126067798546205360530680512449194797791025846992053168541244167455504722661693886819901207742164885935312397789152315607126025927473557412673122448279488362465363760967075576528630020995682439414123573894712826382974266346482260866361147398528100279596098615704732648612394781810822738769328927197438801611559410457464200313676142055300449780327176878840009017934213845420158736140116148761842097955007751013261776843281669229214426940111709632124201080349408644414722921466529152479836839648922625561608784819919880993062957878132862262093457709043581520243051005206980092830886927892556129525359575656823967508586420324427145266149305388112421702116152367666841307563115338783446178018861258085040073711773485490986306700904126908321156580800516546383914479885189241493933497659126174255672649277770418923697462595930242150318137813984116713567847181738001899995050263940512612990592315705122179586590178425938439047012590825272219076190440888541902361163641212047150723904228669645195278543284360702514239831940747599314250141550797314576736517789945830567876738631280591375900857807798415058414674478400407704616031395251297008073917979458849845185532426450951081592588974712295271112258108760945197868051900422650359905893089838002920094655510514564167635843061669282198252210157839558976297303644364672280633761042679521217743944091674867896416438695367078333861869153600223707470005594313420258436109365997067564644700811156197956721171297060347899027456551590901543783324215237239183918792638690696206562894485594367654773952683887551354185997094101565847404750074840217124910062767439923008262513587760509979778768846011137315120234364851250450059498185654081050171520977605116070217707114105259464942932914023241608240733649389977731970960691990368415536431311910748851532207589523441307886761377573495532123564510215863545971950418963276030824701206614052471037881263212291862937275710972834881212254910042322767704578625032652565352726810079533198510600673137463160565836032771460487001134258737707766802741572089512071846245681902103151875128542785189548542796633400468096766767050993068869010219899348143321090270198081596423272983248642553577409617867007276927219623555560356200457344588342705987787116629415278249509312755955067452199023723890338588344777034696107530279268388596989346532760427956849234736309705038438606124150413326385377824086855832386277567028949491338780489086932485919018323201096486483910069746437514882534445205367203455563683443224828845339714389523078039520646461699364188384576736732320343213216546201524077907568695291031818786538218955708567596474167379279887846254794820257390290234767758081240136427147368540072688896496129139759367471480690569403887205010426009841766327976411955968430859961133464322571440302232992696112755011595701557478177657383110693780631728440572386847022803911839477322949871931476581021236355099059690787878140552310924051949595636376298223474159555070913082476662540806467625079376369708843932529720837351448488802857036130922045398135671983986864645140256073234899790374026106747543765900929270845919687911159621008795045243175451326188107587879382759135513089153997135113380863439058824528369338158499248176878618005034343718380066784338882310243967346419709809479712068549805329799981533737811023802834093190772093078492450180303933629643933581595111996304131282496252905406704351218132093713442008298701698805129390114277817738203136354385194896012051088467618356153692264390366092281905467077670074592386487459904452293512129582823836028283593381995468176483643114295112075232217347017505717343590458536413544622772196019755629682985100943971009001252853166355003506125064793288969960765074571704625921480356846052348852425348542598117557460734041829872657057852019572345430884531490399999205679894546951709047084122446137610067401121499302279825348380878465259794827540765883329728312916235611057525104199922090573133608454874817122281679540454838683285080547612337534964953598011158146887228074373676125790145504932087568505348841299648141110652690671796597236834184116888214271107420896114099828863731927427120851323212508925685005065197198850649832510824244274803994931388405215205415796146915521684479939339148910736093442307919486117777123607538846413520299337404590229874107438663942704897119927606486624559783182815985582072822611218086638040441326778673544956729016185055350906188731587797766030162626988205211749020971220296469126680367472231894229428682767944589215275082576884868563824154558083984750777728545054213809694298813464754315920845407532338556309704452304198061073728469218607136774351036470057730403040757611504356791159898515232515009411714621772034571129557583328601951107850567073292425742185217164384226900413198043277365437299420335273289745921853749900289486334164576547416504109510080388932297457536724581025263734937113781838448514115799729223958837967339477588646483105356729826209690198921468176147965229411058459432676469502542877270781205210456321150744550322857392558944551520107511513769899638164649200727338609619211618628272233585509261085986585255069007972646561276552662591322155394218204911996114113173549049265357181900725953297091944752930114838786505304116607143809656392351584508242015417625822153414548863677657513826256334716153597240258610225847072167923196849392809269782550109743605265459832762833940713186247578938077097237142595788768822495767660094229661626887576726893523901454999343256964131098855389529483386955900436115521721290267704459902912667524277926088412215188528105051345191322857033740165077037620853327833081806496805711767861742704813823673745809884704932360513770365154933336266086334203911851227063731718209394248842607860368343815878220220037083379532261566334756197406122035173392044820554940889240526730188760162438382743916307738906075367197743028374918061555913694015040735801069376709773585481128894132451045429140067104875827363791870548803977172301938542901195094234644788684756889785759252214151334365896308761709991460673293146873186873177915541614052004062867083261628028315839663361238785632067532345857598045115733070979138289201769474239841283916124700452771584886996288881466789824112489531592442544909753419038696346052624028855390130455089672014235462297720507650491330488159893319642210718716354354081997160178271882308177300056455830368159750858679466803482414659979235309342841438671281316247761102687672042819428965563276911476278197542134799160430439581315771103995502077417730012025848764874560430775197958094352128614803374885133917449005680488203075346672388811448370955749177600962718090876621580110192721413166517617878700960729745759690835917990099042575236939176446576170498347020362651796092883550585423562202425642799396025736845091386371770873468790176469381046177492581185041879590347560985548350573430816125699630349666492082013628458576332002654376942767874285736945783993663952208103096889497891487843003464470059117667937649217164631076288912273713339889874743874702662336873629709431888876135231203366902315055250439953689409237959749517225363015686083425697282877333482647846961938062637632251321006420904609278221977551192435843096915247770155550802652512371915577320152139683875302794607008566957442168019224264245392614817414150010938224688729268824760100142425995920921431875189801625354552108251429242947302666444352000080503036660014328193259762353986442298489539094262731991073332202009305010003582809892043940114644404990112798894698685601039504130000772867760368868477062814411887356050342633380652480009061115876744213791211100518059907921143245319432919085572560298608135840024476706755529776507020678202252963650752932994221926256866581593399530933591429949215772088750528053328561017861280264781133565012306086200274380495065434485783623669117727981954595036603144592367625433973834583088380224234942340538176765715641620669679582431979241111741728492910413317777701322845783069626747064047347784221320808301548443793015982738465188461002398210714544445026636383406544482016534006684717585927330941014102551942966057613843167594434518378248491912739179716763692553236125147708322491849372641547795433725797356570020482036595165881559187754995844373460736270947846162351212942820269392973699512340323039054605841792050431039617290366417923480811111128690537472995045488577504130276170653485445588165762237634851608281741471149988610830334166082730492786898339200911701325150754936945260104819092121535585324842084210882307724066017926145145430261015436419857432028274747120033472032234622388513663362951553580044323566720376378099625288410024060079374344974096845362103762524576674988115428079497381414444977158104485990939822086516020459263813269259716014862640728009744848977891969910892634075428313075232140375811399529917053918389838037532030382579579690254143037611454995889499817270366284169623323045673499148246342869018555699451919298536193747045162005648274947174620527127491805556521415381212409164610296889736090639449859254863793188652867944267408169673706392178895633243755109892969747174235437510003911810957140362378081438249235042334992640516863990734970885290842194988626008948014524820079468553854375312257580894097927364330899487407341572898763713541030512493310647947697702108406338230280388990938428422755358894734230190498209862067714428291212826403045659605466491722791520408367395371850304091664529232708882910554871355660390508978994114958301887681759266781149932104410987007025086072085906398916451684428259476293044557339707871190514394577318139823884006757556990108000218220561608638534216985071680349355597254641744380755168913698897203931556093091301644527547835463652295687702418814541700608989166313729602335265268396843923829230542030456311604793097774453997404984504620266556075144202907503040908289374851015199818574170778979646477897567367402080267191754950503552414055135877389326677028794982557928340885960811899260505553356417375269739865911176739315114737850493990528872561541740886464166620953389195187834037746074588737898561478106447986086663233803559402301922568890809010179392330163868051525949681756323718433828483573106501682335743781882931823759518212623342620064930882492089144670207877497276481443793573679624686632940329507643678738037624377808146482352498154063408510160060181202308171160483778020397257166188567865785642348290157315795402667520479212712539452600296547042890717432717348890991798626150735737932076190282380756446638588548746549784077417658268719269781373133004971227889465877232947019522548410251818091457158678712740102604771535282706054974925513457187823822517974869386605697479265205565540722181961213238758825561018845550628306557110911343914544429282327847156938868498505114917252439872925238312476236150965070183568736744076212040409841555375408158304748967728740682142159882169517060102960114719002330587624051171045056278758382385766819314607948787712482944559228613591932195092751225787392954263076831976918954225981784027701267223999944938561026151654374738014051677896775964790263910616000389920098781854689355292281810129147594743211929019627817364306352042683983026997834292662663094197567470859385029387191985428432527774348860251385228262273118583760309515179681766372536856220884003983338263703766370399028281065759275676398845154905964523093558215156825993886156155040429482554697198529533262498727560447723455643029903672096233327666922839152776309244185858965689937645517504268587079238735061587527804932595944217066278393288341502425785179759701321388662739916068692831196741834918882391773991498428740741256899285250994836817373873263377066973235900175634452674229205352525509261622211860770523035436342149385426830825665441298016518951133107455493124273762374415993203578676117039081486113020947446495449126742708321587432072866424571063854324005377071584308039087192579529903333378309253045363770969676163547827071829576939354525234961414838888195166116713417564965825090015059194955244406742080311462984706138966687328436674042889380203986145018618502099322024105786561682551038699034076626841857087951854898253575123787219025260129873031321897229335360895932393932739079169153458211836847758928865925800375209285663259532782760236281368714706294484995309055104992441693515183817692704007562052738693573292888297338337487564553723578346537867344313988965431891842151207542052302680390155284466819897887191993132158951160329754366538029104896210557943907249130641712120698477890268357983700629018359826158944230412176667195878573597630192875425337986428715378447367953606898590930141073868548061112114365891075331050152098616821287426988881256973308266342473794843816318035912670787037259822470022646823252947267145336302882193347406748957105486773527847516112133311303016166970758569057054919154194332517822715479555995652143927804869972674119790398516376331670757077479553460156253194666682713726037259267705015379233399522206635075451494509764098188809535536175000924265295312985375187497981164267824182691652593242858874372666205144653413218494943083545497353699463211496177266433302704354101326664056431573980468024957201406787471450943825707725771493202954427136507145367326073524873647985099113567272875564114322081031708008231846724387903197329549674891994797042763614613882221319030584983967792053048426503740500608392590570623418058081068275550302026778274893023804581510279942852971716466608300386512538580709195464807765578600268571598120389392448854312001077172307399387761805963628732142156202182479886868893149622277591227122592102019315014147511287548634037745175186031081424332820831743631270666079575012315765258580848952311641760709649958342609479447291860639950802245423136535419862316028126127548174560458198668695778898356475641084450374714336689090606457238852975651437522629969506739637409626158110537502284325876686416928650921118135502845260373778361820118750599706614297206407038289828365463348027442257352488573177975633711680898561656449205042466882963368589669186196585147971881510429870181532164816527023726056743211707365237455649801838907415922475340385952116265602939556676353337508855969672997552116426478575024661284007369236709798546922729128391205649666551710365377587008869334564076730427324069395043311773115909163461419343071935193788878780414495379630816102044336875826574087698672076443397486536134919409126353567340628519998233971849420034546898246471718117157327792231771469362036709689202689319745989325390520129940211790636174323875451813915044191096175265076165642401298770868242146250098294962554995547873578119277652748165524634523686182562895628373988608739898096078838733903147414835525429272903175789234210351984292092064849513557383631630964434270240418621211113502923544140470421877991873674490658518269528967991379450834976015727892414153055178090138466841692273482256803346384767375552039368968330790859640255965134411210234785260889988864610072707675481644126037994513315640255273529826378293385537436517709592015274241339303604487446793798022306296901163944891294300162313747115039531465191286923535068897517794467593108576702750555597847679654073678513799180019291700436913805649183703839685202740269191953251059702119841328126402418821147338871218295757028458564172459531315096250123878413920444773577959351766276211038808687401704945440631748076483283562882955003991000169080263221652806923148072167121744715614939768054847066758373526582879469057316744554116354828885808615066635748379809286518445319695056163572486071245922162176579925568598738220178154601955064774268992719262431482583564945803498267589926338728614797681207871869327927612164606025832167189101176941415031124400857282166970579710194235153924776823243215053778891347568696720317991475151530376886510115623805359478398277566852740219977030145021237612080920462586238212153087730403315941686443300956697948267565826008603276935578815927668476869222796697868526486118545130597727073395873323296147542448760442341335222276341254065591791234333188157954503851375117226214573570746984244725020460785701173049574651827619198390321719613548391307767290689911980244392081499222664411679527577984565495548961335005659592069328172926387950547077629806401616002859245488876678775394533186426472714118782625867375931535200921311388705853562964710831087273638221567983814607513728012347012170286258751909274049993141903043712103535754059933853791719449576708889510611817799375312329332688817651834519848706491782160843371496545479680971609927163798928799241481303458132064920064006784582784167085976129449087442691625373974516569058836062942962054366613102082211513965753091956653411899247938566042719308339403040890896015329411436697548484642892384117592657599421082931356040863490600645585821214184405944503644867809187348957648153009147048801998816558281689916662345077021055250573108674919817579820849440349919526312598590907028464645059487466042661223303452232121784392443447708268060629398257358556987882478771760193357273278921688842859676519957934809673783766793242997432182438946253378809441875321975492221188915503006683112465660375870623703949250727568682883655204323935678781827545656264967914378381371875774732516953659757298412056081535322152370071921391643673557117754543217036611058755794995948235345736774759725308014603347436322247601388132187235297271060632687053442587524645908470689625286806918112760557458940324147943089110563649860188072621029327733164038356957137486164178537384732635428829979116428690852668722928778701455577614288342830589613571912622337534556838305599469336355188868813095236483183582414063297127435640688961027801748608956581655025741443490065494576917717827208919045927242956218930761693367200192981332261698706759079471390757753078706820698430967166443566046426448445297704071268604974450059655673290683978171555062489578742331999678608576848992031115111743054622416984176793911714841556709735612434640502080636306509726851874912620962247528014313003654794472675790314275531462750219271556422480535341389835070406617618655959870380356235611302690445898298774984844659482078117821748268127123146548217787729944348905984144098976711368787724162819518237151886917376452716603184756208034340601291120104202415222318641215566776305205935399799521577620552301619520169518805678807017898388853656673498808329759156571101579101883285975374925944656364521802319339650325356738198190672509722689706028531368337156951482713806535612448162673872953146007183157342357000057426333899128565847948578014836373977571566936234234970037768923160813243462195930022007221098358365074006302772286939831287064749065209042922416245604245558804390625443428869163637160262250484067063381250579746994687712112521503745151665604869655950862621052775596568210580281974383181834899142766802662440398686961569531990892643131287333821439909413671900610454770964003239831106096111204770426626186935433177712868220084217042120467014926060810948165535151047968318920397334230037400453852484373232083662564463890403987820622043842552588984537131403752109615566483213317402769653754768399371328129749011733875871867251980625156023310562210997253628748689373734070261165694586362622077594778281472738399542192115367686091182604620166785418730492062209987985791382032230514253861461176893032360545929923283698166398383894347124777319820523729182308168933063215658990375868894758510252626386651809273137346770408548042266224057445764754544666767858035964461076180757531556040070085371241876985616971359662245162258317701965352641094764439737091818895153201715988741350810340094763774933728629013859418889812899852325441742056848469659782055081536212114745073455752567075638215459944694420933876950271595480979673543737543401334564897908610545883737410561134426697117840367209343829319701678770742694933622640044468126869615147324794818128656648534882169147426503601460141866772212357110132110136027601519424650613127125330449223206213713127348883967990884644642275528609472051277637171343306776683342787065804016900664986670506506148804638628215079724407644837229309172477027417805728780960113256819100208799151850115135028985492404517426429552651998108417687739357104703823768765892311946611384835396531882564951698109881828588821685882358086146220412315049739025484533426031000034845822049118550589666099621137338270897459176546873345607490057286032077874115081233922040061351839269648255290597093988182961017775595928425856523435308419613462224749631102802752389250242844095058164336826036850004440034613483930360380452906521058101766088402538696711163708264449617523567025610821586590238506164679298441572156787259102978733160571947218907506099075531454057936601542636685260731745313362517425953267395135966204747688714903328707187424653131425793036523222760441993059803819242786525296501124198292854344299486780768186969846745281986651871475828530090547634050382392655848826290522539445908966304914375894588698582409435375920442940066730062469639475270907415506749085105691894571164637876596163602857712908039669917915473684935277301718446852702551288274789230763609072809273445289372938838584806887723478525315048303234370533156251031747645949812141804876128251193799612229317486573580369363272122035061519652164601241047417947671827277134791829292206178125788541066115470458588847902069914165107867733864380963214700765021752972038486135819144082638160125284365380776067191386457856552639646796438756428730917706255403973734547223192097610509138536047472467649069060757618393581624724887369067586161741220748007839551637002579516333716605423744362581169492890096541255527781223276364445189825982467925386922037121762211813038873235791145980888625758250878467858776962968393993561883328281578095165209117227111306196019175213346062508825449624556642804284751264932521786856682038715048540376412769640189016081441936118598852781292864002440516235168159721111793545727115711034661820826262902432787224503131024759401058065219249607101983007457037144537895424874238122225200450483673406702143599565728657051135850679964546784152571394717909795103742121267139490559783267799209348366342679856859163874813967925804554186012282846444693119857112619677397052207839581015713306557882866038046622516969661210557539544795720234406114507487683476553893653961318676613270252027421121207932906817086031478951378735286601560273070888862344716668957050536776819953212532724495820998323439395185808678308267559986362769479060753414302968540853261613531340432259201227138529758640050867186453794518227573750121241200383969046014694671423705140444820285653444356074716580827581089492141278801250791343887665959044846474117234609279300891625639955785524876541721339447647768453890890706345823639666367518947494777986039006505135163870456945790539159867439469192504243110525978418478917939610018809730751401800785461036967492936764149004669171771991487213947166985548633307127471738432360621966389551563584864300300605059953748542227318733229597358828587142870434126839788448201734796637321848385163168070559610336657645041632318741645931704364532589184074292785357109413007707130219154600868736094268875485985199744921261043045742544785790407664207664355034589992123234110294355297194889114937278486743931887137664905758585211658762232470166055122868107557247295886035139834513808682044235951579668827019088377721287544384625010276896559464500237326204709193883514177416991590224158391484745867472324431394285580554497671139676737791744076327230747942967906407374164720597767274961710557032191481305620369433904589719489816315862498533197004741662042733776203762836428992994063441052654432313238813686954230469843076871656869922055996019610235573725605634794090612148523857001875950829718946268596517827190248419135413656529835826948123445713486413566078819275605871038287394655025520415192441582328356988186871557167615955176172978510706955616393553130138940569551862143483006344340789952884302837612111394986207996238240539958689154662073621900469132629517484805491549625819814761021707391761029495209899036375613891103329217671901942142123960624923656941759604954415417210985196160486962200925959098676008974498217117405399520394937053771375256024149348224690041244682786544640739677160313081010480562344365725869807327431952280885831644143703823213579637468552957201186180932831519363038237420478006023584888846069264550640695392639374027099257852057490960820443569970040214598635022056915152479666135069864878475682407684649376275065076942288744995704327052301846633890976305578675623571271365687860348142491733582756480705600843609479588697589527445606381979895004346900989455314296491651150236974076231123433219830126179617699672667988750543596072125808866752972651525867967218795794171811296880909346081269755601423368797854679757210149346172638390731320491640677696918020074204909607362315332674924686912826300250494566575517844181097598532525162385437501653669524669655999426575222846934491027087644844292403823238620956463498049043358038986786485773098514376877811582664224424078991196081448715915114962535918830097985748700424221672323582122988834521256938417999334431144130562425158701862946287716417971894118027982543120684338165057424187903356087711105278916120180015502094605505963137777315277880029158167965506281958673550221335169874110934579639989213531843798113453528535144203451398527246907124217893551097639326629237421911021076681065674753510696213152904290055724831663761982989573806107614947544693445124417301874253382352727945230248800602783995635137625057959016868771033893427818431512578354682383549235328635955966653658338880106848749089970942885199005223056906505066213400887491871560694354137240604812375478780014351023190168230194766852837062727509263770865275376589379702998648390812871706877483727799251641837176209919471267931206041473196850511008452395343483956261643816357762387498022894461632427604680635398751389963835188411553743275414937391101280573088883350740706849200542140774733687153330429934694574260659214589887497014143883848293151739320255676591689030037895986105028049649914364705335283020816032200306773632422111447379751166187561604493245939569560324823581721322572664713220395249531767623520338962254740665049523701501961385073093413616373479952733579396656924475014829550555920794179422272944128696966353941137204195546464779048737418788684313850890938578776799874016218407749866806799038023092419207622671071403191486596240330302517022472860291212960678519598902099383290238278346750445698037039927727963338021136521901290834101182497583531607256335647946680142073589726535153274317193202595979679496397024408667943392282613635647804064154627910657629252193389837189523465014614577302971904592013576069801221751349922488448917034681518713135860562679123200987814922195007549636624304743369812999674696827380293739934109187255194785927702090101286882810420825438874075328846889196383380889335534202156689867911286796323563750171748856056173633890847918784798212147387751289596844169568052920707383658610189408738262200313556930737751052787197792847155887167679614316168228792183464079704647627581629096911744745954653884740265840386229053399409754210929376418604859386491415885767257316743605685107951423643116632284000797880578802580610659052898894616887310512231131911910289861475828904428636816290026759829916229917404338299020318491394057153546713678009570032197240847784231180700393892053523537664236001905323004224625916458933161870554192885445707011674629863258406644384886101414747817286226483704716379443397784367656920091433114598148600688894773047390584335915894062718514029135481930398898665523596312428558988019928738771870782032516010071595786534014024714265466770136465303573671664593200194303026895061456080048269968772281971149325962907186409085585217440363512701562734678147312132890761857526270761108331985717749914698283536502751474437000705186041219946926383727070000585868161779666434090188086479802763811230169110779085399544492388064791474158790093484034785933386885137006211216914307251755264864118268315113887015333935118410728551327167708106366531481595979648389613266576828133411348384967295746918611983052272420326959795412881416254618422004976074964451156298801955592787773587048524418868830319763005992836768448902852578565890953941705953314337008178402747474186938112609041704305977580822160699472810678675069989253238243637565400608900013030415201291867560312910607349938127507788969491965933946648694051716640847988186645262383859171102034825029066019766792737007251448215664034389545833569966828911715734196244650756519227676328632605698642056618670325376188245230819771590238809887844038358814960283731950034112703942647891368718349485452845844001796671818092262900758798640633876305612483966855011007911804507799910215882900180478591472013297576227845222649702418374654705222228447288969763249554554359461219593190204621158192888709089568448742223370593580475399072536937207185883782350751571208899907168864435169868256055344160887195079988185617233193401386344329154251200180036454417769776346305582729097472854904592765274210585925850419077227718899998655117986849422793044156238675113539050874566286740020374968218498692136998586127273870560633919878338471982568258860472321583345360755680910511873185027497011174186187157559830799028257331222924037215175877377375057028789800288571327053680728228237072444041872237393381212358478849296403896938565205746521325039755836380354563881413660037297335731238273674812358172728825329878409261743320991265484979029056867420610116076886970621721927942066242483821535475390239528887267133575183862864967985923635504368768100435073161781680233902265082639220641108204634644100744264937681391912930742461592405429532014817292684125448527478395691469536039474393885890166554411851579770204519706801883889037495765368063601337083438614256715027524557122024391166771637868846947848032857652843142981315165986848945004574514568377467777004486043706294030797843159101023979535203853729083462276879885746446476510257487082941273253192924305402917483125067824295376658268941134333114306443969830760338454551323448372556795127124877868382374569159614004515211129645787222134286512002001894426327561689722158006790585474974000420873962516762630804144088316600234698561720295096403214906494326962494041665768010576211564981752221612750481088039039288133972639585945591680657189795783247319258020609325493990049236208438392688628288174665597602012363338434952620475191135337513918406783817481360928580152422919183418903324874160219447039507255997179059406120886581353521409831333178227278727018233462340474610451998622919971107799950638051466658596945773057014917865538755554392653080630742270647725572373657736932928422159814035980773717865050435149899541471314878677398055039792489419149224555743350721237768598116571401945949506982755965037124179520667993550956348922009214085037360988676854698484811874274914895354776064685179946860203310983147327619759581928263008691540923428570691719236553233163594254418743358335789390358542160657303202286623026655596239855299913629402823324048894455313557969368161858896148301872212334224952001739135577369135096438524726537089761398982084616192251816836747111987770866127177894471059652886122194973507042174453759080256413718148255096664486071958276922345880071432552424227609891619917978476401411968289756914497385913988202461095656946113306816521085575972667529907414344763725071201292675681286646944115389340893037749734196496110218645602390099253653618482224290127599559945226512757149082600957083435320725360864116670454327100842239335251706305539684208346687854256680284316818863477751883697627274189569668529481225159686682986687553466849487240088961652180257367073959620422137316639748947437724402940696772808639392186682717494161531275597541591816508076602036447751313923790324113743088182857036328891508819922102799856766553183607829561364487621013399938600808340118083276336615510102031767413873591723508849879886729416274691419689735349266956777170108790318336574726514512364941660947391601413821840029705697007403512691442187042392684405473460174528294862624014136283537373535699551477252271043645326813340632682860429303420018298983278144235813004925074129131463287974055224237514804928241567932064088288757435267314086261223206588085559350262470410224833650294774114359983967758551449656448077052844958707489196258922592194705134353179834142139974091856674243781863778876824269059732609255452765835928213971100980120842995253182326719842152286430817460351814039326985921506161733101213628880999895023063733760410674531205141734041893298273184145752676198730435586820899002199013210885383867605290178008774536070495768244011938046937472991171365687293132061896823828252478816459894526806704225712240187916038048628853863629605035131810012837884646084866886276284186137853726553058420844602384984607296940529292484562716756410521932776496388122091185160445979161429163867508474061621501636794747892398666897660487056895461655754357228371971743139804506088552973507626198171979947900053863331620827782245780621731496890718362554441369753158432863964106378183380436871826127474598673621826189572711077687989536198632948200814137849345479931570050209383858148173398803445818358961624120582666334821064519009002586458245528144741016615006459097905470856882812731823082707632905267306274553506196581386172361172344469164257646133519770260358532759883936859030016754563525340663534700260906952053595173210844062408461339793416193707516559302864460643397529344772664630575289508572422828008391092831240275800773077158090486130177016491724729757396754512623682199236790711278673531197730017593184264571779380076904298822092463070930186778043586696291260356738887216772660900920844724702128169280273079138237719373691642886120933195234063260938554136250975764264951982182428453479075048447120483339045352932832068743089402642241384026689958636310646918238578583961163073675073064711006804325109885312617824947123287066053920917136332089660153740049738316539648669404732540613993710132232214067657510459675135542429274514549097401416497725697590108160456847783440867472961970830195177007595535799148465371889846501429103328505314253619210262870244580717795443124045199417238313164298700344461030852475339935825386805685730569752976083699085440099026898865733322726155254404320847799742398454827404281853173877934702343949235095593463007316513198464656257190806823795602999810506510047234238276682009193543916672990052101986063148432690984824646759303173401290768104315849176078020086394336266295822316190826506315712560091294032450566009724549966460448494010830432893283408878072525536651912464081326812256220921366632478690978151487043907886091079326028003618304997300353907081333363455682294268889816935923358304332252219493126807693090191731743940283652862285175195004190225384026568621298456277851140303702211755411598467404540946727247466572454729489283402689938022120147088952751271679742733119394762033581579015210022130674842793227340471157872250007429745803969160629758606541551697984981084178277507456562061004604168000133106973807314409941854030213653078276538302544752278002078595833246720972027637281607442942261925135726694937238716267472400236925505795892904265058994475318225329754331250565519835714125259395605485494915864220639079977587481377798923887222100720962407732720923807656013848475204830653591482256309486055430980859223442814881761824014941265247037131110439915818722328768294684126568812967278691160487288207766186198589573635052172173844795373987461956568807943615186883332030456708946613144979651137595716994563046966294427954846779816874969645663859846083288900326861969722043041164991847823657631551076139499410852439997445025512410532530916174023095749709776455335783558191141847587015388177220060098087032942030793001007553733407171972864795245362824252581744087196475758648946996066878917317857122342937212506309906097538118330985260351725594120181728727477841119925488774855343810788158383563292739284158343489381609143260014033942926841186613095219591156956835188037514636726809428011989992275850996620573295713105098252766445301666383301232909122848507990242751163940502735168863386439429261002711367893525050675188591601666771289246953002840633159539096814240892665450299777773371419651486684875265578069679653552771233968391826628831716276787097629232806366995736297505822112563244522094064862959866872910121485678040851887920391966753792185670024661535728588720339286374203603932387104032996151902699987484749384943235340289501004334865776939666507201539278178364299280566079163528197867745664563935805767344741871788444620515724994991773666718467536306452463916148014707097017382592436612425039809761760442504467238099613017038406523904279146486295496064480807514093978231359664417483512772223760847752206619288134021269017601407265919898986776344914518278797490024743078712148219219797246165763660383151144823850924378186656195710391553603462989121855746562727931223494299216792915464638161175620114833888913074406076468805560628745779685699432009618122743503594522894133530407453517185283057730731276297464028767177789564075749469169851919890393971480258666477874570201885785211858400126529414666821519087774493955517162535980214457902371391403212094019052107777291163967207468918298519506694208931288091691778512680591524363679341699539012158152739675173002646515707714094996973593073794869908947392592251055502268826229012359844002890260465511539675060610467145233018276928679168586675899289906974847311893285573679459439646363009852157332763069980514473811931200084557272082193301839227242308321925497310724771899675311560233613038384139401037528238514300364826331679976488095905986711802616965994203267491793736600690905127840031295630043804310865662444009113501498700374341009530465995952597742182695320989499067636033285137952915224798809033632873734503822756052129888387575004446720139455146574143840827659209935582168977635571267159083141186743804844940209009904500071041599063440700471134260491769666059474743190134804922927119616567630279228409879858677778304504610741283649667802287374996890820671863881070001741002024316754356414270189044839965157690397015835551003237516037783897948496357006723315910276370468564622718839502947571972491555080644577686308138227704207094724463259468687236354722661221128148915222083848896262707245362830716944015063462594446412822968299815339015960112742495901013892179751584629859902419282889376849505494957579531332410257487470005936939567365516712797546512978090025422771249376744331282442436534571879005133513660097095807588745340441249096512926000379821851033821659409884855148100943102052647877422833500138932495709209643499043682191885198180164974448413588449708329460271269244680766690368813719578480547445720698009283300011469298502114709907423416365070244416269314286024472523936870732635866928581473181112581975004663492833204989597167485768654003093415132095014467069570990835538797060823401473013361586770507052088725626371102523631318587953947324910424077665744269622937364160964578369960904363468775437039032684734437894836551043038157146621675790763202406447335980451324010494035925035798214617683054567066009008814499747900595437939325349237874786823719189722494199340961115705357843388575740896174318172108625930271845451107959287060405854136982925770264131291887339933200069597758098834154880760013915333213410706820279346946762759121593473049778018156450440532963038870280732382245921918162825730590593388195282823973917014807760386201446127241481295833761053731732189468137293749450864917179789389277298448330660843901647420854032751855134005553811473046759105982632686186049687049112743042607793039833821789756137289431004530973673418137777289390891971337516716781514691072359658737377515407339126718458056509536009219099852376423638774579539387204747706923485036755491821028911286324560843499707127599637446667589763327990972128187047847979267943014878529785029343532206211565277988889080256869879040930447316917518331228131976098798994328046763810135546115406527382817036751262582286455800610219635154530397099184366666067302091434585454268938723605332279452501204109246663175362394647563210619946924083293837137311070803726236197031385830767256381714546708578246084310923808281004119450062521801672518306076116930847773356670342377783567078007733737017600945889852156409219063648863865676485466428244260828471699642725084264828982500941620329166853557691297779398898428665567136836732418826161845702724018924745901588240721100509080823117035654397865334487656171467818446896603442749761879021344148817283930701510101362252499148538133701067919900958640524708374792629377719441550695777954649546971090620293033014823292387320701248516818233317007728403500014065969381002184807720629790568424763815906164129144192618717838321829845848377699170950686652708462171644396175795031098552613399491587061385352612791350431017785378796840326957021806797788747311540787069006133238545428280103750469347865858193803787095465688194678665789078070115285814800693523031631543768809097373936441746394349980250038527247672199379141711783704708989797436358583929933553927202173906784063127779959968271352453744130744047115586854645806022903204878294701326638475248518419473007429147261455001328823088286694838919805999448006493169241843175855750330459566031454347073632698354473832748392217626625244952899011613271446919522909327419441668733511247442087570054462267763182042322956950696783075971987537813711045326966633730493843363803771709203780736565757876418698538975692519090739079886705158517165936088946675459191884740032292007623698446241222100038341932958622551676260639794202291049337612485562298353138940571303060560492781914639120502924065442288215070103987165632956921529090090716842070723307627152539521542193043261544717161906110767929732248987805344288315641815952862367409168515835342967173619657250587612042270688987274150419999282863821204868751378847112282892371992884448366694848477709084132653912429879005456107405165819853662095010883019895624416559585106115748020378100926398234617953646475444595459816449666790984955962464497334550738931480872094540818627638823231901650283443436141183668715406238512089334542803517760111545083893411227727245764888596215838237158626047250284520090129503245038251486266682205054069903680965323382623019395509203188029252747723849616875838379362528978442054889596424463788258875098728306093296801105505495513835641979678430003534750329234535824971966694970465710225164783229333767564211929876077357969088401592562173754339125604694204357428903483864205851344396889405397185467039404968317586582321746492161149833361605692336987458454271202553321558976618729541039692681527311917899611754390536267029986289440108431996639852326737419497253225744832074843840594690325915282500601710503515302047731427002081213361925077887396384606663614556994071330756477850197430956815908406925079258906418704721313027275450950449050960355550804730353296412704878158619027350033747812918649181369454673400633393328862598093497008385474527798519631098773861215240370155153405113979920399524941282384018932058846875452065675544454485635736174179451238165377785805486667066642348891030879064932875309615208149070220888679963056833762480276023125065336851637854756755704875215679985452668376899161855371077805606092981461092011596484055104961677323324213192436188981977595479337074123636149735559850489068441640762402926718435907157858114918586028438794336619062416995511203997808579372218909926431728067930764479971469327841954336190965613744119729951934692364854844464702081405670085027545185851627380144744513821347077981473046790476175912414229561865416713537448903097100907906067895369288058594075533320584746539122215894899608313780897188422010635747331861174461522187395286126876815586702501412964312310076330639986029377760934013725707038156691010201650969685477083561038120518122373749335924750482156991662329194125141363458432104680241170989456625351680035030393119126603418056951744201204799485146549845225702501413348385293329608996927377237430266407095286004287077869119739810025135725965822044590550125291276555338575384847602569422593739352502047922542432095679548608688326351095925724320711794985427083440767848702655167210956581617776520415589518894260724693990227463421961716434077579829105424999975352211364545857143540837191214994662557475343998821072637846897103757672564926541459000440898372298942503406203255521481390399552339500016340392571663075557902177888166001145789983935612148036615362297538330719113004418725848371964598197134295159063809904622608286427638764846084826835754200339864206640859172808361180944659326676099332387512325571131213278753782809932827610240623018201076530490687277600146304355734176279263836270376223872742253949048701573555573250924400336433261277999075131712505104054147346511178783795018875724033454543764336145345761319574981395783907819845266360803716929637315212266125047446037154861872197723804699435319825033000941512242361760279914456398617926082390861320126872245969543873848031596462449328649225584299276815954678894689844161867301513970934964950361956325354053476677615159711486686488727826462265130687137597108126581677191985222797434567562176236673362707645485866103152175188890326600446612856093748546820473401532945714112601953892187831738186017818442216615909224151229684029632283507095852846617093197069922861484797120513737649491116751971540022985020628951834487216305134804355348030814017929189001801614448062450850824029529977861164621384607309365262218098090793443424033510609537346897575735284788514763022490840506503086909399769789186737065688218980679723837375529066438084489271405918719050620193539555231647481443948374761733108212406275264189409082621281866027970003161323797321475361823745559082053772823062467131992158136598081454943638491689405518103572647744450396906291425389581324310734582921480124453447195559930925255220806919068088235828941652265768909399455472499115282593054185489595644527244151657089483894628863079917351844269073981302891358122179155040674911527813096820255085918052129650109897375306719909202841029247662067149669419633391366119250753174504799086173163292079784009089830480710963704893775802517950305716569292528959227319320944137381803404062083045965290577358198532612011405477318493623053242075243083018193048960392902048646082884132672521336240178810789503834612484677214922631929162693876254710432824835861020956047873936250632148706262865132055988988744450361857889405956271939799045792555273642174312323678717173442448321642469665626275153423437988695838402556508634166756280275110491500671334707648688006722075814582818987504084601027382801136964844504234676526062734702484855093818918574798077838162999504094090823931310973634639643947148876924949929438485128388104084987680430375769784004242794672035991654198700200962216681802563582739051632723591665511341887691830666149975562445088180935458586485481766059876112389643291926250316343243170437917499590142230626695864887826215320526045681242755776576441482899683750597278474618541279462980605931330198125984909437609598889776789365007310859854095978921160291087963224775525524215750044872391018782407542950030632075018514851545603717107345284751086822078887448850206945106037545969006336705799571169550138735064647213403101252621747372159023029664648368343553035549295715155639155906186378792994638843687070796452607624966848447776810371694915404965397028826856660529017887925841065125309407825650464817333978327488299780579603748648474377459584069621986956721193894475505429940942725936887577216542919126729413323210907269104546576326442096844451947127094242227497266137571806934636309019115729920102181267247730056420500394723571607953778649433376828017225975074143976279376586601978124963702955537408572330339132997949860921441093971979055526233463819669205279958631378966618883527181715098734738277003863244815210601664855510547370882444422031367497542549334856736347763491646156143459968916310379301580894315819871413003346813018538718206071556962923996847590148152278159915831747147599212114509737363785684852285739704953218784209956005077543382246125181029062093062083528849141895928821317523564718304653115340842259465284109144727625204253555361354296276210086451830119749265770901218182606579768640872220853511288037836898979053436764164952113147178498779939511604312430759559228389304455346095546653961828967608694056699942388250812793495535474207224320023744274954648871622022698879620415721973247479434918380009373700420911444435981198509962565128377228223534074863180013402911947370494712677867578283836246393469655292804963396146739540163893988879082679306688805121979405613978480071426851534690669979724246728674425545634380352866394076429181340870482220210437749360663585317891318960905396586219229790476124718177554198675020041338690378352944727771670204775358251211400991322612344882497098352647369058918021878105847435672059397129327766335805677919036244769146880199616395012294571103153362677589131261982986896978365136492364979024386019928637607637941379780190233918650028988284499690576170361320986281685982353247256741868217056409898021144381598296374523363367973865946156609761199724041686921768559023161593424187728152705241758882863640752127174777761021513671486440544361284688044111783522523130232173066306120459966688015259815687628640817432490046793416815668642072791149400806695243022712598154776346889913859895981590194504104412703010907958799688989724460480057267173004860875696636091362231987554125427719458184400267395627179253088263996653208735790739512992665314295423294785729285549044527405810569460744992271749661078310256712594873903264517914140718578668308777112312514581487420084238590763746197475071896690640043775581347104978727880815039901854679323447219891399126861092724625369843474923236876250275375565395802529063143008479261188566817412418772266281781699701867962883614139550050599806812268147230326480053286453962768446172698663527015758358565758388734864518563028948085575050976626734145731807604013440607913007333141852540122108380892520656754939559580220976548482587441407302374865011022884647683331794589221112392619810064990946661599469882352856625222319308346320081900664475869971346192598318264993872113557971826879657926026461025097265776047502738812568771900864272391290719601263472535533558366852481232536116319606653527647386394225263269166561993484529199759379611688351910427542467558773880378504461622059767193780966567442497474876812528162758940889090098331671957295308965956902005676827374702875242396159120241720457497837577002291378100265459783360285165956088447202941733977111962388629433198222911339912906000975080358444337989417728231805274004681306864678576799766904652386956376230955586748050294934700118682642728162177623842277282061937238586712752117669201041513479618838940736495819359929602266886333180748683428369534011589862896272520715310679257679891466285399111859870269546202080626531492076976568508600801940657345745576230699643835895005069931027416604694985601597751014226522342145342690452380440862349313201643681650422183561776743702712324739996226473073429178952030726302658377978533016588279063113466251820228056810571807442851606796359478951028206272135075792819449730908966771318613113246461146746313289719342111723009268530095627253806969025781922149348659494015787311502785194703345700723711932801598205532523203559982607758825897790516428957964428128219664286964796614110349492518314885853769262308658843738646811200923938174834206923505593551249523025237522307175135275838986989259476004760876132404198856615763851790011089159421811688011088281347273738368332956271535950795377689616906849804637511677069376802878957993665564333729781307887428380577883153189271412043026468116654465296205385748272662808062909692828568223656819917855149911172431623465413908869612735943896984158745338972744675186371869787184727280402328401907394917618559100210052265860569094389846078861791095968728641799798795622441306595748473877330531265715448105880112814471690188060383231270195989827438114986556350567785672964067871427766906591115841263148836954272161011415279429073654664989217667740262329786779099369602612854943057772899380389079335331683282877353865940847724566605658896626034939915053439642412713204467123254045028929004106484104246676794299093134338079500261758896506656612646497451004518736374146762690410356489475588285880096055144382818171742672961100581531069923627409361106050484217376097592139098966203117575151158228672436749628802253409566229751839339346133049999875190853937697582556506122066081557402375874261256824234124198713061448378378963389845646472739259213879730579847461541632463076599155457056310527159390470695535078582620072503926977766046854770902389983392863184292070003444518928750005339631473258761322605907489423752790318962240557013483000073295349894071870745117486031096007297140702775744809495018269803080659040004603851000180227931090996525065587600112900306950310167842771067395962135549034880961007290856456081291792017086109289615584349417052651707330234886755526900548402790640194196824317706179284605118992872026411205212319677693292231318921423870860807407650499678888214606598064865301046959183751414055638567173623810201052010976196665407588574607184260364694622202029669346371328858211209454219642273235438914125050236426731906800998618681269830161379306622814887093616357278111537250467335913314444920754189006546851727977113892920422300846103071216052107383985413025652459790410530942013031267548426042620767356890410118614733233635503557552051885127642160134335101547903217487975833788850255878472973425572173115518910955306649995393227628718694049655861051433482643811799884370627329782667299227908729154776788618556968878744906944373854091175447706677097444962270224919857128459113170658705968954809165959913131282790152604936773423610573317506088089918716823340341587884564912019326997603839263954074788939547223781091067028433301077822537019466438606286357249700088391684263138431197893825509752093126100999738512764196530923771989624130648078615635130105434482641682691042957387864292150309681810420687314607828177322940942208404524186392121678325962127069731742704985224658049537013351155988039217893025993178409285633370237595742267957026085727640637737122789801871933796800123242663655151712545372610959696998433625858416101019828895884654035143598873387315524383955262090847557081055683732532702233911372450977960041805587060155118294436146512963139944841195556047367001315121021493557927978324055551670024820492816669760868055012240288323634823842538224774465506659412757007214124762346542362325742277462846210360284206384380335699981536614394669876927342528092681541441430716162581281793025685525769553659695568422138491712644226953878356424721649731514502009420157805927501263905868622562819262192480272075745444770358576718252602644636155686581592060319239309351610636145373465824983578274899163133596714336904342877079375768003017662798750630259091638933978044624055035981022474152230742485876834316368747684833680374925306696817106558276609152367248892556180570410955750082615210803063264836577915620821730670217064144297864431658615252411263895557567006303137769224256782277014548246549565462087449697007846178029554042773191022845058737808743948024850182725766283468489291463124553130075332802910396595987187815671028360415911315418259948707351700703072550645810631801125281805118117164352135302246748418699584463643639037138339562626847884029193293940675751901408210434948411365473461314698895905336854950390024629896739930779738185110148572448345174906958530383131009997122769464184593842632832394668865996570971377498629927931174770201364449129195840848191926626929187212832618364518470377649160686489300540149257757861906881031956535592818463604979501954288510234649518523924159885801468611898789037658071604605667587175215327558039816048356558224396392732275882702501140073331537142568829875476336209995765163177502995843782668499430014919835509179891955196462618572967116138452148115602861921701858150223890165946232420165003431907126810760030071878987812107266582314079640242054296560636386097928893029078765622335543283888959864513312167517361110938656123160985345780069873681245197330173696398971613910435895124074073527625072546317018267373910534151876966326440665972730638301624500893889823629911865939035438081048563924490030744949352687412500496838214062502920410761223916758757592306617936029194725366126131640102576416516643873764107869111226097310442336735135990970428676961107881771712464921558865028750556723378297320440813852057586696385499946956343322791655577622908134428854779353773759769941402049791173369163836219745765143498031914965705716880958386965135433024345066209040992770244689827893688645185268332359507897325934551554044786705195775713431484876310287139000254861865397845754035712786194251923433638720840424455314537212413487956768502394134701440042902292531751153301350903901151538220890008238994463338774487797969387158390427411596328839971823129314237333329999554643245582415086618455767306734282665296115476924301292968225202813672374729937239472614263830098065720748151238642017676285740025770594251108685431906105414516386718972365342375457850063905797884701350495236743919700338101778979513121464387664374879148886190803515764271101721027135339050821594738868305597497775583743898798210540966297530899785297042115824175899193997310715865341172164224395362340329845433064506022544954985972475824418677871263576644608801366289413709380205645628490380291161003307789559550867267957027432306579870063257867957150056746471983073579720007713762404651895148569213920096849370125978609916881004200973833307285966502243019497232360526690675800137363919569910620159573400840364796685046212699399086799854362161236618021147503294631794274665177704213670087525215077502144456496505486390021389800583381201450468268832492078819369528877556179483180247257913901113780567392523870068715403472536644138240858244239996738791074628054829233893043748743249117562970085694526741081428891336979903306271245499137656439359864504119359132008459004750999101822052650941465006416418871605224290682583231736666172044269507052265829365290440981130430159209544790933086797534130146357882493912870757149600848202713703436149690650261603592942063487944125953142582211313444177674308529648125613181020506376245685893290806930556155068125465330504334182187474131368707663552419013577448758523173193582222391859000678461424710176951838212265658388348067857685144081690776971212470147217999743468816022432853664145038536886947867175234582670212597017994472734581910034485429348825897595796613870252720845837995095534681679855849238011272479405677282846885317626563141267988662667261903548910508726594991480861711240916707292362019973355442687136645809263860152454868417088110171000047859231456679657548125170038296377665073660216375561958665259854808075032652502762706949794167998900011589597671269737048142796226338858577290042950750918008043582813400742959770218887462644303936550985977219219547752625925979977692238745744332426714920196352486361365109464907586486257017165168323860671894387861072800306476247622233639195681170164742451749277342496379130357557246364963496037204447719699793430313855381541690464621897723944433246873559244988482075527317155518062901559046036861544953891423423390807904519541950524803045907164493883673467642002307786140207660112713479819979437359974799260335817787056135337235686339312396143416805196645332060417534586473391309812041106861945893731841573480071219324766437241969700107242560444680021549133183466977643751708409810388362073884103587779956899962544226989766687739979015148415814100341870840039480295780233668131855077571370818333706018568413671965401141181075470618101178482460392746667669834795162262673072175257802650900080978022469038475090939854618609726584366163348113631599982232221781260412701912392552863553623350137337851516442604508007858838296879802290876445017114720599061962735503387795120813288813478618163337409595655731174364870740733690321780975858126694845079159192731739417456886732037547814708648151382369859398085072486675981198395097046522692740774030474444125078650575526783535140469345557992405806223486250582703238997311221855524951560246982593121843692483785101187802247953989327815040102755993079023409883635377681402206346237120767742446413734515216452867997541128554293548749402762990111616338746249949163423279408351250405666418316347247917332038063707993429691388339343070568902130742259728155438858570989267028371988166405365915478755568608026301660116824706038489714911284189712718641401873639496056669345439044597679150084191252308433068430663164721364176421517188665334307332334911329758643568269313964972774747071027167785703204319511836958892879537293296992163923290002629834230566262691326366646826317537492511239531905495376495349943623625288154791627821153619442127853721510026028543579263757624194966376486866562599393222400386568137070574531022738098375849530496843952461127202846144765164574645397538733876504984139917431939542616639705648190142638821100271874823833668890491240083621617118405756484386049984742865089911162309735866442566556193527892977353540672945711845429066651714422559333673221684180124715330745046838937004555709953765286006861436400329736615753785821189361431549911323155560112879223561891951682351228438788972086567403888646577241399034252775754064376544124969187912690011410185048985577790820054466493995296548139950682146076988994964633248631229755622088281638962552060361730839116941275134646606502184732654915628641475976744840619191774715402464043916738178286783073752107466869383521096683701441052862665943016128309293586400348583971072322470741446855556328995920361422541882421521031991354099945512165774233067307454204756839255145863027764311374555877761245317410666695348879437605283446057745547627735385954078516396684917984144690029021687656828351800130178227102670841346108832845184063890109170130941376320827193712930789686076468789232872564603188867252791971183956005800583552118193174535494704373378220259791163087172569755784937272964555600075998673291250486438226831485047108809270065791339204940586814500032654992210556035253348507364644113845935991998732283244193395744121259901629201289446020208936745024898653714783562976748535710910418126918071519727796648340186494255934653726923815780320303730478198218518871463272341164911048022178525476021035775736805518564183618741103011795438874391610586067475817522447177601275732072901300427458932144913318623193615698057603950879478572041513077340851578224739123099561065758768125346368996843367233815623584170386247736542982864788304789863881546829315520839956175792823795238009570444121555332460368614910140562165926488359400666578269393406392275770233945563516662824831297568018942343237086274128102993825915970926971238216785280128468745675850318884990550728588340936203237133065611999187289374185764277154388993456867689067028818368851998163764824275668966466667799199309325294237042754869278203224540083163253870455153108094486101104677371240153399054656650186952485645269806352472645539330803864185586125432641489732940253567991054206114795851552303202118632512347107960350740726767330591184754454386884901657318991481484599584085618192482916236900681393640498941749093417755883319384201293460288118705143982996093159132275692003078705649839155056052240525549536075300160584666939998834171839872198609592386284928620086433015984456573358409697044282214175285519239411191866878233617540674263029586447442469375743376299684336110871559061616785969886891438866245626081676773507909518523140280373135784102842665529462218888953866686755566672246023878000317721690438073267414671267303563797087547383217364907448722583714919231763924408072010547329784134258542757364911555013614448898243209905043380716676205385263759050101229494116007479188387034849809743453774540790622118984127296425099709835676272587658672490046558516488345563571178814689750925503024195957467912352958505544598507060948029376146499310209253667527681100454860666339724448511372455315335730185147094960692875001186889671169655748332774509335343485141684417746891327315101743292968887686456435619670572567453336581379854036523981478757682251653499510401091492922045328631994728887798900520337633491379912939967833898759227401615096088599298282186354840871444474389684112137456782694201464633754759335217678973007081296506471769792463051299890708182370345703814127574437976210327469861465290895570066504113777864700353896907274658126496192996687344589924360377707539175061714447977412998156623988069522099001209391570282826333496564848713211438679320848291021367667875996413000600590385670398081060860490263578288341836399800576491745022222800193835962485003880580343568351077219171539469254548814340215758436801086890843754778451032534682235027510673701385293747458567689344578247021528649412568855199870592521174670377481487185907728468169585377355334327368281324462503616516669748035173605111327450716943635980416989643732900018132783952432281854779539065771275333165324427272906464302137212333583550495868444248789806889580363316347969853328556051050545347658486639456304315398241321158200949265295411475113048261706379547679062248569177303196335123247428562154193232795884905431728483446053891766177944206529147196009056515227502997271667232804043642026409104880224005895844442575827740888727588385186821834462977802046389219986024351768294888691240695428681064596298097091806116364547271280617036024666608757577483183599723556166161768848770982576108778442753779044037544299737335940909924184413775028888329837006113321952104691312521770760314623411571627769175666466267069498325940997487770133742583596153138002094881767155367730701025439159883022116558148492616270507766449921731269073181880693753781196856946111153051674883415779610080362238109829048174163658755723686937094914817051205411298133645034169332809987106543312494221368807460306869012334547986157365677359423537110531947599897209507090822160827873762372042957928421887003492391151378769042066058237814789597586256450908790158585832307597200327391300062578843729139233020433633735389128958093173243200357219717359530901657880771983706421712638715577812329013798287418012353600071228732999932009937306653763499722979182751730217991306991626070979225210893566332186810845761565588416182867891704842338196208939130976877567722665524141309532249622539869562300740393028990147265171962164682517760703869692349776304107649003856241197062291873583460664154683046146793103905562673756884153099096305948765566799896875229807561838654666998624790746352190619106231379162977487595237630154065099189487052380492215639229256730213497943567018091598932017394483778988865585017829633372206469040964409873458104997758048805898813625881079215469064720898114017307011218114260852334624983609873961111811550060673787833595491237892386031315647891519590863959000861280289364993461583370445986957395198234408200102795571064424031205167918633206091197443950218296667889296238096119661241841145776472466991798663895600031315427114748614251385041170258743369029323647947116534570203752379026822862518053084399494065362538798305443125156416752757806403008022737677400689911640808144176233707936812547297565444754847744955123962387149027485017114052137651385252825074769708069488425060700178390198495557274237084102917179565939836911209465545501386164606375670274278479005188704852796140199545408570024047680080383816344683998824820384440788205618035974360469884553843217962623671335562678601646109140548199472885402102281268296598736390570071385033106889034750032666017630899853884753870379075717787450104133463482939989287197085387273159838533053158085079756765581162699274029564710885713631443162158076544131452102933759854723121722028321652770589188871487238342664536101802577944708289249472067993059711169179846733214658440553217202719567023370901623894005071896065661753088448096628803342964309912539101795652947264720389998513962762638143793336253294080134233919626237657600565867870791749231478099100811261293168041734904081944740699459498276861027974459744863674471495236838725621035553705362676977151578923186675244378262210920906676583565415562792117043349004069221944890514615326308751091749489480031203514537679737170160095381833907568718270636380693649026473406088094239947117088223462646844541328241280039347232331438362747317812699471526887990466283511729950491934939055698086733488541936665434332885764122478933920504176707993569538609440563982311818314659315822209536387780598751521704059798255553150657713025704244798584680209515264056516087863741831465913422664031713146591294041076441798869344881835924183597063373313096008529543930051897961448097486884530889651332212526315842180054783593808403216574766907856743680065076602834308185299495689967261249130977589093067773887604558929660348057242609007217196123541226820614781118394003612006665013468827567121294443877909037997973953547145987933553376764359844250655528131385781196045006173714827561108588468663565475660434834460167376747187330485130780835928851359343601389131465452552015950471814098874873604035764953121227486665365312080970947663343824088451692010632784746408136438304447693944845785334714928045514814970520392562399777159114012109924078076605109460207268929250145309704527463822307848323277954575079504837656693735779658304474943584665455383022433147561620818457388658060900565001535721794550411601570305755334789473959798885129034336025681217279592074888648834756005350731434603830771950883199136738621970639294494669308088973854154503489293997918091384880809667606716503229710419998144913251059815399813084060744160503932903036573307818361136722391141716633416475200834421727171435261866545044113089767960465075594136914481926938754121333817360755740861477538283961149840864790642882620415961631536842588506320831652737937139738390475024521392216067958734687692356204166199413794782249866440352026680296082561311616605551115392180812939028953857682129161379147632697114102431892777120838381491497470930822441071439346258824671524809789499003431966929468973710864258630928285695856328272581732618866022459024929494494334860436870749759827330589718276249411831107856332777883580395458380465786312938344914622468783751479097984831386157703883305823268219144250032597594650902641795168152243103132621527536466108839163536411945453716096370608229476896882764882506230364014872788012855752958829536849005035437304698779006520884444079505702871021286315138555939051781402518879844286128423541004366839909927543077591727879526404098545725019868127560526571894798531003098776201101322280698465967870338897172717582839869686675355794184206736902178385872421666088338197302165003285587530287585020495614528351530810612909819655631827457946237646759053274683155709728493971273661782892767655745111245264375024786169478410396708513406469771925785450275382639453504067420410514095939058141128187402951048474431124857576673045905886000728397944028552356461769766648950657644809654250023765324230477000281084532580023402900688848156441044562289342361703678060229999598700071352108983593046023678488355471169538850314670881354783438250306580729558688696806460198796965362850291109662566277613012217618477383094305801744359945312444562519756656138547078729649777053122245706136496173380559304380129471070395321631135735770483480689030389449963697723291343840939862424791263644741393751160654696828143310982663992960867947289936460908116314274537515740553270032884553576478634800497801134276899085144089815921417070676065450731660464570016104582242448671524283198102570701290379725815138087239506339121934092419385749588615933791800222135190738104210004141046279045926696162710918421013017691090868807095904625178477050154533311412392782220901123288638467333348548534652503735149406266811688522542132036750563396683586820315022696065097138009124802954739043339134682374497284537696924211122393454729640265842722767884292608596841558810494958962257898916594031995653723870159733403357862309183213745363433066979219766981574522633647881361389977331388478290179387758925301298153672710787227228802863637844224093328026016657969396721383584905725071302610920081705330930073585712943841604494166936525604234658073804273230458332085649369775572517072532594422209515150537763469052502996503130743709652819528730073867084898447814892099451482378060167326073669842165670584772555990892233097969012757185444622055060371341699105359106427766889272983801657953622209328016683804268586808014173590033263602882064150630423168087185919814863986505471451844430521329656238164474482478372820202416228270782173459103228531679930326117071633247558339548754609010159162248913096531957144388811075584581493267713749840435654390578980126375087452690583242632700389860990666833936905841194956235146661187567461666792976404123338487569087088680826382050509493761634396133255112755727856871962016319791596136761691756645627555626820411858846116960225956595978190799314968655790333229922025472588416742004623943399585787347188923886847399004070268344257589409430356142058742370041660766318213540705510875840159737734879477067351538007377760837897781189884260537841743548954207256795878809925571832473453071154545640385908221636658557857166738764514165883834876177980620023998202575543667451618747984472585262553231815763820464536555442824338598711286515800492096755709438950995877095192236031735113482103405217689955090117235594069512934949393202166432330073457141949087741375758473032875683288112303182616516015531753688593506314619886374451117419965333723909755592933591035416301953785027447533510531351285003435383795870402361375038951095683835886013843185323749417478599016362319511885135519191262747900375874115137858011381505153281631268947704279305388148035700634620010288214947611265051422516389086693438015701643344817164188415357260789632398753085191706750029228677777014967031663320251349608261977653892423675535735991088519402234539705670630386954303951006967074837727575532721614073529417034479114692212436116091984485866737881209941008764191339215111846634529182844248271414338495307971759620561631909002500756687987416282042775308693452654136666851292210652011858972194512798254626179341507925593905596481036997020566570245464717859333843589934947872673186690239120349451533980298207114130271737476986944728109176202063882397560807840196249062693337735144998053745235179199765797481637443509495704131947113990003374148287951649921073141554619061249228942995439196293952359663248406790413284767973599260460971045999212425025349775366675181878175960901426903298964522263845122241920783514344120078272030808750672142035486968452447773076919790416219151334563673605114042344387396335486394029069098645865828696560942558234663135013050777907456206897595623871804073148262550142709155532542572158640606790379948766066689434168848083240689290788232382924836969034208073515188965179349812715527732085338894699070607454108676027431630707173166228119866960372825496920867116594396639598528856199670704700606681018540836138912228609302902185678505756625264925387144071974085116039828287941137678637668902388985694097583676492725677224966323637463172596181357812310745190725879776894012872536623002381794947868815174160080139152321974699498627019369250287601960570146614429893287829402029116728661716661809255368175268157004469228110567742776422578264383471409373225687766491429665516634100747203938808691105224330257939267628133873659389317178463262571359273031647710402587450600194168895683628541036770449276209470949773957131297150582151773580172504795485755149707943664528951074211913629021904213603209676483803012684242871449762733053910820097766310702326839342217245361248838491909905841426630244737326949748260193662371175943220855816037311739568345590275518785868003526496458800754712524501904216292870047940608106810575554594736429904996865835001458680546574355699702703964312180041369562381396903876785202085771129245923357755634673095686166449523533729844604362251427716444625426588695271597412422165907679099055525746041777961819183588329137277627765000030552802661037939556431003983924153016658830354951142698587529325877713864785036761851320027715233074470700868487302017570548480272520455188874847176799813130206334434674292465542446494290451071488934788899163577155713080319383770991726698129111117345610364667196240741989890169111765860947746731097585497644738795193173359137442247286835828543381153049395261713862233423883358279274372445575899735910056477200175031379040622226005319263634188577541196215824408768263686837147544162418091045873306637431559763414018802992002530976211356836477291469532850440526426744149717070631596331238214252031893010470274979210937423834920590782386871600499723652317588306347129173665376104181623698158365763581182338521481313251916512082276501624466575589692900331452963254611387214184601453644350124073699002549376142769422279359541289011679375217919565262699143012562753506215761736834663059174354754540858201912047054598486150761431715361289726500836775475534795351165166686180505635023474754977110043500822431954168644952183376100291569225789562671388970487742218752197221162655725584796457588262740641965837724888886838472177570984352361983392372903808997928665186135554139325072483247671152659969127853460837035084598266081795762539090531625257115337509131406349219200062561120123937982570899558332341980234567635436297742835768883813447264962854348944658245656748803669795880950454482534226664015132096003358825018325245151277794960985064246294052883286335222778014846951120070986397279173361791385191434727121237979202341933147379267161719373456485177039111427543694474824953887617667187698936332877867214295770173212853859908986214018522295560876585817827835508615645578612365559220635822774322964106585749080829992222929905445680370771016688187833148971698049972597478257383080558217818583963573525366423889680256935803180129945040812322612690458086040798231818437287807441211434105616003435566477547174762641435113621166187535314532310789050388325641145715928461078854412491638374117226660853009684091746128592757815283703898089056533125532682094133364623234496629892594850432742891528539494026133349128907130341128852058725897756975138810930438207281450011720545223622477106579075818121776830819427231053370995608211111743321927397204613169096379060179998769194712169173040684993221288832648601021695335761314263329785969141361172557587205121662633365363125570598108594991124985994766204349751793868379938525385192344304215526138375421799450505499959981587696226126626926920172139070555613815124946829197326549030641140887747957528978346464704569816508660097222726960338099187248395620830777377724673242568692350789847504729053144386048781033193663685929069738329697008955426532194563469074012315066751469693304916019374393546308058365692231829474855971071405279057464567885046716058349471521454029882819535136610524658455626423209174992354202963882155756813743735452578613375657893028766379609877761482455341681767662558431459786683461648550963386684963518058403160794539717381695686919363067195589643147868753413146604896874846634933876885142151870522506588797591520587514504213822796999625138315651384905854038761777088369354990878647925589302271203896673026942485716258700616158014443663129747450572468998494337776075781585164068933140097376634618057296830539300284926334136399750739406457758166565226792038573269290458473747293191818906472900026555977256421093083982357061046128685247031962760992366328607816840180294671216849323985497604206759448351779143156885786332017317972944394135307958228731366032382825422869387651985591806611095220499028610968808523898137200536903064906302706271121457221663190809506752045428299464183882473287213970618550226348409737354610856976435699698390523456065564191466021189055268133715774856587127485461552614430510568192339404421331487851729956568158427218321223514909069826535293267149990257826520633571452662552293342278234938700591488572517596714034177432805304514986705905529735558498829902898982369773849695860136095596710380385716119240866834445101517305950263859358385953610020483139280843870145404334382523799729308262398456432384366301229754264870381576239164743295632909802298381657750075536511964379060266666146083817352771262233524572113590369361856125821641469571884483906333041327260459188759259551833715910684286244843367551561059624865006849935708027318802015129919013665998755575316042056789240030234876497611149381125097875344254157577024960275794658605364022414700723640938611778073441588538625634855910028678149331137778767761523766021966003270637338018758775827987685713709295691157525618719997346345481687968834548989280740949968923769565638437127752311796520631470106113876945529100961022958434771919275484796927952015904533741059060364028120551164295586201005680989601152693453408760251323366069778147954090459549892584044410157091127555455533451461081987683613100730036308613529028458292685278410837648933850863253053146118443263753463116735430590085079791572923336025794620775993329914694526787584750289424961362368078604494754918278999444108126049412590356804917413916465872893457997555149495697796629507269773990373077249078085987517272924784577202765841805048187083444736187180047034182989464792866085225219683073240726286177643297912877631791756925704042543697602930025319131205486660029977413525830890642814121604191274980415573153363837918138489039927212830060183540031480588461503178396850716227484678841362988488871382695593334466687238404559083658880055220302110583413782331039291276303456420409073992220684350525785657114710509611174379724483172207041811974401570504738073938720940087275267325155910754184105970619861115788693747504501686375187843237556382433588113174130429839932565388509581410093879624889483691028484791740768487176949463080143103947132975230763941652845474316559406192962474651789713911101748896251300237869040830615251739145840678390427320831665931174266281010391373222313023962748255536163860599516952576471815092647435639089685504848550138673874491158431794864494586480406032152224586788308377522938235316733078844080865779224506392744506453843418505219263092483173691545470871697617860861533584055947466918147633228156728139971704373285836212112313663243302461147370164014803244728367319615220286527753918857470391110452119964064905573496286155767303708999130199905895377086477954043983696567374733584023294002233891769196558077243915089272764256604057333102725881027942988830897387835498655310874335140763098693700428387181029090535807611050898514971463284134277208609542735226832483050531503837305612945456637862264276139301617590918278293829935935482113327815694206156525684912095459894137427227620663327576579680931864862997057014315888045888138761331193295876722498695108934647301906754152281949080038414799467405784037740051351433000123058351849693701368845065977917855666936751537894779352721118438892494099957184949877514646065089161272529976317066768976560347770780184143312717566855584222187253338939597691182618205027540586479059904413508292122113048654565220621023359968052912992778965041097243219454162274122173310961206757912043097498892241956489068406355561120122960035016167871720498432809190391441417797228435658859406654473638704431164220113611974248845967323218815434661945830651526250281812438618346724749562266773346076385772088758039585779331831446990334226039701651051523484025443872519492827801535647440121318877596548304909231807933509043324444525732281533107695005762946034706074580319957992464629831770503488415172854037762191251303317527992090211137970177843001604364110216294763663790790665107574509758486618157263775721202184798014563610363103982930896216294095270253366319268138730052711990277925777737109275997971907708002327909817085332675671148707448386384875284947033766792848131452069352882356894346913970423438916855386523430030394850448256625699070629461668452030754303621082985446357761834378745128065055188824785587831421623525572080564386156553249483577261759256155585249848465651971245503359912575454650796115697835329853038898205845533213353120563025667911852450900080381372373072947810724389648178556535983328472312844624646713211518874687145747955068527769449441509734800241601828992849874762142618997497335751567527658029820724318222870466177137184153190512987406225349527019438236441455284430121306843872274790095975588619411512930996125854819269158466557057755506240031612719108346473335239066593101788367428790489653224822016283296413563542726658873296960157049680570013249032369738839862297633622164977713210389547310730475369934686533555585214142238347330910942840787631098210942705359168139237718294039757854261783288771385774181414245338274752952769222243897352088273920181134005902451016744214777293366917514717264513797190526380374306944906654302218412705303043892747241593108608554739064427031904462898737079741747894616800373674918220134383210255334108501289393508875647413937052093836106709464619413541503193209434860870610030716258735737237606849264768855723956553143129714319204940491606324335529649022704359291526521277138795366532849992252079241721924346722150916399356355614370019426172501344636762258697279000733607226759080787664461086661760572571859980996098282694649271006757983160467604425903850464011782238016912715709278969371722163500983170308695115941834155200744667535671143133189839130685011224300857111478511360530583555673082897456241209834490556287575047919911133570382631394684274498277956733627049468515460071266974935459550782896559180640559331303346017289118564447628834321880743120639320280622343145822884450650386909933016485233593894725180243581695900275144326404387189856718381910572125905715273122981804039227010618171918753820249426465116332122648752099377232328539692400431186804062791612561728516271259756395510002695414541940025515389613463794963740869848279977135540196566899434082593188118522273367908913302646677948176638375673017042333355424453180433135747567340945941556505716226049847662578452731135378775386902912898916555464934620543261069089188942178351260070634914234694259064921228166836466362482026764008421962267865550985254881514374117943870775375484455886275457684852544266467511363739300635697614374201088527966522212131850373996305173134738679018823928689478688093285437465877647195835403763675393508511514342088571459591720249878160130626592550261642291633082288215941070225433218101441232018265779061133271899726265759024881695499374516512228787285828865390562811457249133111883255057631569201304182889420656061923627571490953360954021486411095618327338455189937688357734344962229268925037974888271509634838650851556262328963421411412470198212874139815584034476899239062089458067148260081435777269324206772761161568752132098155709139172756107918586109358575980643203527593962279424628014897762283509264922323131776848111762879789008195828448154460332784372648180348994799150432230234530093775284402617477908896510345773622714256490267098825559685304508584326053731847526156067449182374301849347020696352979969291154689063735204841162700165223280557535912988034888444958940978169526474447200033077945486744527530576086950003409863139911536503626926143054624515242911427526725537356998918944460049203958258397427911950097806031421185206022182040296698431220322821257091460127615848334142127228543632083333768404238678408794000178579747053051454766180676943248317703203010385350799823387809516991138097221037477935250682302425871139500041681647352461662974874750167150543010803951800642487152235221392800214910782146242849869076229001427995612103570105550015499207849551557666742446214181254270932305071694637246048748100916079824250036766258588049016347169881404670853025314214175971053007356353995171455049069911376066838368435511758763583857605244370935088084149140760679860568408416543125384417297466724790853647966173034692643473434852600498916577670463797534306699546578254386786215953303630788675743570089427972561270513635680655860840682647758761330427567946125696998383768743836606223273607529610719042054840579008748857840558726703225221088691239995893430255967433752608434038360992071390115910604630970656911547221792115928204012792473015763599411442872957312835009272699755772673227089924358580355250592833658854478059904353130147314839720669356164065609629519660003055387365635572633028516065115530413384058966295368762389329832299608201095250740632685596795541115999235294394848114601529557896981892886448355314703354419016495990403316479504113289665576569105575906285367274567628309639978490078289179581870187562514598112614937494794664343915618366431792961519459847676877860358042793937984629997375661701174658156778992858849719126857738585233805419470978507515212860109268169629732397102724308196611440941533122387213933915836353758713256648877153901185968407949816095700639254385897069843414100748596175833239312302196193498608220245245964206876195369139855144977403077578158505246626771656858366392056604697613523732863078771435371295028960033065868079942411637548708640620764368565333460082254475503847043233571171530711489841054596384768526388164698639448285298829445881181782674952323284768817465353645311302189046312693556672232814175712221155085154593259595283530073755075050709591804523761143786301894721605179266505595158531427260091630806335151077192456979877821460407338894369791860853742720923355736698845117229570159220507258574962537919364316928729500092662567932260351384283637684657959292839503621171813428373818986187124757891615500825159367877233494174850364883134486615933218535997577153025635420193640913187537488589131280976629034716049454203744357514718929835779795441852430208773204775541558794422792204799376534224584942693368013452466763537587699218705873892059806553514640841937193572092022150277660059426220615697040815504250059563381635034133600865915316772050668246833982612961202558637192207539967631570347656426282741875954043475518999675131195517608513454134991890638478295835908188371575201204238577065915682618975109503350418162686392641245026344840247419364095942549018566763372639283793145482785904393874751785414086181338665290131632344616201489203072933641064700756048912642395133649412151667380549658899207942881627792928406225961951035516308452292841293724243323009322419652818612363865575694024869741207376498124330209952101116796216982250205956866999879416318043386175799214431065873164267332857671750488126613781239565290536022463212013005437160205580665526084562112407210237498363091058008916996027448369757317704402516226568290091315966216568909282178985900241981454369511894427923173373121727705114856769408867898572190083915418639439548294449800042215865459631363157469548912784559189321661461122108657206556331206985440373424137880781150662697965821092364917805806573496039775094669626392334537990892107768543456041296792366005919489229482829894453870765816958638256915399527747824273123127567997078912488864603569395828992785635266909730010434373352832824995810539942748936832389147067962938687521585167291320802271947788397782582737494463290276428443473073240530094065650850372670826314550913792674066348144149319970744472093874556963790277703339278654159313563973628192435384211309468211885306524198220498043418314441042546329645450466271141150440644209847170091796090488636816070945741881430951939900581377598807442484644859631900509987803635195493553326398825843209768711392751866169505272079677598371659793573496162439768974877438113618117501994961553330175716921362167676826649734979876498724813049834885031614707401265514050982727131987170109661975607194752757532634817452306305543460659313276709456093461647805366280988387025175299152940818237076495112291003024387028934612426183247926980983939097434387040412153492449602884721193434834822988231210341038497957803826163611752664443807162766532593293127580341975286311878474216463149451606265465327388312138926506141743178730078533385530668535748353668921005717314610850612945025567123584957582916132830395226165105739904650367429024426202991294310375540888787115332539912041003446165139524460351498940313625376329018653626975596058093704541838034906982272360848905560593525829814244054825415054763380245999707773749220343763755348253027510957972020940073896794889018105527913820053124515652452274717455794901580217632999915927108197338929738465920848099837236080549331670342875463714504621199867228386365980608085134933908856513122578904150293773210961272221397790092611353138849765250314226755608826278943245602034693720879859582433797956534640548877578370370541595167176117411036686974386864719129363983340995002978813502525362637507639023536216268875746033414405238620990064117265057176358600346963815508885986013229164386098313811781276455620903408025140078604135550464225969094759662316988465463941632358972939275080765818864581039913011452425581318151419041196198165468595454992771229357785576384809161528731267839536853582364306386761834159524814558083810545024728757889493059336471191939055354183797009744040414351846843138117369628127186697814791876682217156429797601942525730628913762648620353406794263382088581572115133360687199475559598013120783693383980120939949945790270488423621185552190371744637059983847520464700405264503139902113812189142217246184085957435574120128451398549574853827162142817569988093726722462794822506221529633911904177291707770750974565835575873179407644151153522016491044560688827415828199891248666244337543763590104888595715493273938016704247777576807086501166171437965176061050732153479975094145738021966995238025358699038605212707732374203199455073953078262952740896142698490106530538233488492695918375582667317727986978754976228531646711457856766292192294799788069543743511812503545741646634845829080001364313334698419204596178445477761238014057068767668833885066809307129138788375208432776133615257436048391262488998132993946704693585687035226428133289026998795969907424747881846823214772990929233800903218821154879709716428125477727463627431013522096484688364552792930951306069605338939669945982163585884351307229579232509158922005305286142543465251335292075623714186949085370209719749917023418703030281013705936068340324128477378088398233468994367515075884393541331470386745122146570538765934826946194981537874287140867804169835976258770863252764765403672583288910385701171017582442614894114777314674687513848608247403367323849515427769031771109461130349202018208670975460061633639416735745283142564014373420672990461908601889965108957791663819555046729148101810513229376896728914234350921733107004037496333371205752000436536501889392458947248355217751153787190554141232333262712914425385189885128919854016513822763450397380419799640129235753376259507554499212169728925509548365346597265258391482588851216854820130728459844161053812736452401221058752596521668246469263730744325438842176845741342980812904486783779215651544996959895271477843362384306504932256555841626900939427734030539609400952055425540725226433255292598276394556319012628045967726600374604523004829718124376227997819202997437669741380663861380359127324440174401314454557358071640445861144110057209527914407240594480664938261914538860157654534219522931013362862048254661944574363046012203301504649783114570415789028964014420581789709121478574623454650002892137079808756257713752620402949855821277962524365703663149323741118724480073214870889090837289542954490552600174752435439232122488290293557795197289811819834524534270002370499868429971465883062023213871091588471639660928288568244064216241111554033964781909838040060262631018213305384461999963380266076972623324282217091021560259026249440786699423940261785499124908531804066711339944812886933137667199418804062427155838630031561254629958152869312792666047531905948048142711623470893853884222200736728564910760323033265872742796814711952518444847093030690610224829086659876219663637443112224661824393737979339841453598568785975155596270223034789037964424796133587896237541363140097090407075467907490180570788124213252933961645516420198450042078352130790970740612603990071953283000775852617681255716702555336047236566892547333431986501589283595307362424883868371234388048236717095678364458454515506406787682190756440620052097200392351285568383898886885841060429134479551579661671804352502516757281295084899621591547376929114449105504953747458914107008471279997440702393052278111236716968226456216270995135465206209654996445633301178026621442690733538173190234193379832064177177146263616781644016934985547984987599942067218248548743918273215510368336906742619363980563663103325688128179654026079636140136440796641420060145149785885115409267550305238434487135191496302850321686947715939520655032104777232332238658885776298201469694749153284874796198067533698613763493239952418117486481669003890080369440627778195452556050174554321680680489645296321513175726101685083599864819817015555064971248761321125477054982274404258640984227932103734488887738467195758567275088618706939989104417233745332022115915018076774040382828488271043163419697482521668388624606648114342775516146284562895025807993566782238113721018079601469890158932258859189292960007892360133985044208189369741052850652332866372924848183065292572263024369196054827215980311074269679351688837157923265648605017098194574433077449397331247593076566092578887038841982640257319658062605879256071637329477771828847832994758403718505257691434884669821783915767039553113381503381306010544400532691002000779060456540515829475060636508959402663470259511702101310943832353886658529396099180295836650063710917654578864643307804660878289306995190145148213297596808247071642694712743560102777215444516760715610650594019429160594352051520344986574460835422516496201371422847085398600027768412587695430217892334761408238418051472260456739065085271108417397773178909216784069828846812075685178731651104649209606786096988795397597469265770340367963169436837088185490518666945949017685236960150961243415773041139548954908726132990951921324021797031342186676962932518074600498103645660933886044744714958606084057185826350590590665625550871456888557461315061911985275861807940538902884060714310551214852984126809109859073467218751477288360679644845894573126243808995261242444920263937907281090271648645626161184487197851664844353830604927162699511479339223895885103832578420843097882871968169687503622540925853776213624382578920632187731907791166302664613987717111277552624233724574140169913653624209958739328377185221899966054239646542234463280943014033476011947814939068585014849885217367645512826507931159288796560935592451161967278326042066774480714499881253989757395869153210935900325673366237819986404032538482704464346475749595182798014201980265444858921770499507422971298110017785014094547239156742972433364187693979929231748255111373667505631188589515539022113064300110330262876078069002550631106713743004325154907988566965415163105273603879324251602489067029206230365917575184144749687890177539871085299802994228416508075906955112622052152535591168992238659612416532740096152789478535822187014710583659792674584177201216172133464133792625845344404875051127647954823285641994046045795554797310200241831441944316148011434123914630776986142099642446769008324393068760593348649135805014896751277991731804939388732770592800667674326977417185865753985833720186263514402271087474534805752712998376134231166394069397196917671070378013914430208941623230631101025773292240467653194143618062853313005649482379725445509841338088431181592808565223899875409769780754847657245923542968451626288805040133905525136162578819428994086897499448905877592636956255042381848744721986246817516194590112640119102396537979926493503670411137380134871794222907633153715847632771505354113214171435811168654071959829583649610602463904372182435410411104580079621947764777562272643895883913665305043815794314354128913277771759416601331747177465824750321699532790684246452505953405313620472398344598929896644731068321669035942380340374826149048354702099241293248970034672813459679733798439104808731967644765650503598515685166016616149670569174373722498220080888534669467430682678313596406771185828594310359741758681511389390791524964568375613263700680909682855036396927299934474701866373069140168158409077875601900281158811443602735939138448640752364694353741800818480075733795753194094674773417616167842646704020721597642005798954972218478972201371610155393497712095863437260294190279463667221912171781998444291356590147566868342708861344071603530309583516644504297540982087458134589722482280372021233564556640350497638142100141900989892501314987994101034339887159108374654130359746126115572299608917927758469160519010979622086025773565289842000596782386816116016938679785866157186679745714220603248403330134256643771325531678578327968970202416049630891536210985433917948364703319314556927058495755059181916142243134220682201159500749879388411391312835283378359600018688021552868748848548291219664025849808635364436366634769453254496765293327631234182176248922877378131222849230732722759358394893264922035250181092398225254519954217006912628014863736035072401250564039867979428101317565478885665439148212936012145122484343824994076301781447466069583138795309192533878906673075304149133070637796732312132357886673983954003899101810466227922271728292041824007178059412093652644592556857582117735174994099794414961471397639170801433274498690517621430364793134740614936474674694930342869668834774797974785968163181199086749683693947834833796062434197167158724361335768171379412187372725163362890534384409690837523426215207420042792668946769475018326649382219071236775974002361579068289777499809153576788530080939035386003438698708404374464953485590175076458224301325274830230625404797509400781495554066601799060832416097106061023035630884533366578751313165085606156354182892600654250664278688040423028463908558216624674232437788653032757179040506522370890671774570446556225392947841264537281718342125577215525057982105273499804286626833414364547260333854472448192845950192712278974183878119207923835659753753241322339444971755346749858611484662688556751482457156940373651032468932965795225133408431596576747827930554873197776588653453394541031652427283964539544483020479355119821993031513616027691929845087171651489773466163089940750066319749034737562068270908160984204444508189516962560526792211772609661537901102281187943735162941417146983204089522906580027886263721311332215448663458293342651872014718524106736036147968587775473789707652209613439424792993832881741731704175504364185513968211327288716532947639545014739430972921520991888827379470754534722434300239970741425725623705679843550273189849404622141680927368612115718438564411008904851338537333886993930027128161303848294603167669092467454688320485422978821235259994013409663101389399039226876255197471538018999123418762535248060015839965826808768476485628017768312734778483575621785601264232504693847819771073501854951202322710387015099713493467298177075365260307413247062808978249964467359653935488316489418861679691062463660048153648329884292969470833905766120899585888048993355063087015551162473617969054651673792547410387219210978619767269267357402551037008581279997959642931980535660458199297751620044870448221560831620700750368647675905190379757471147092895969401433525841668286591894119019505201301604968247777795019205751333247882005087327201583618732871307041263083767177919260385950291515735002648347788099236249789171763696734450135981543926980009856412381805876105445628424960482262313421005699049942308350049478389544182994891623273283543912001345888230992174006841291517952932447425720245167086415835514209623336931127478372901881443049639521658467457766990435854691207176578911605881303308613189470441176075382521450342345122882674941465189469227610986837454611718939715776559318392897972388805091977120251040134321254700890688781641364466503668297988850436044896939622453172855494187792107971176564665811889799398064591641805296165685354273755014228100926529173715177404212644716644662265678457126656299322219914659621463759018226302211094725759340424702296370754472137188510625955565303008733226889353794976217155106654548653060331961624347478906589588599173720863821646987336124610440954222723908027241370035251762334387755721003156585049983760748305723665005891321204530281671822025883752846196638999417408099218794188436019710241789116688637306342116308708819347337172526522862426095176369078486691324469953587960652950377654650020874025815901822017758279368548268848719947441167075965232698619148823138057165650369642812754963062018117466259676817895931153412499743249983873004156156963347954833235868972787795319391774696923902777483609558872832284393824041196951605646773872704589176104648546611750034902542337463425248631733071035843016459726075600821932187618437215565380941373245790445788837537827434982332311239315275486261671049844055644066436519062722235654107528013015566590014307245536340881510405703864330610561063597700422218567462445286598615091876087732282245816673575549069582780944403316400045748465081780651101565204159331276088428368990036213231576276982323121911455014007619507843281503033585624545628410478559502803799758399081343277569386154394946771814230705209419266708076952974884958377868766298915473200416246889347762069648104517465851968135172726291932489498249038453915874110323255787989979490588318150190824819273787883619841014353980115853250273172074549337506838286116434349121020137964398725021680113012938092170777710980800429830804738137517097839520258411233878654485364393236412066331746907646680797664512734283079192731398388913711559145033881752669185805354444249850968354708388399256493814602949370526408941299840427470939945509373341811675541866430826964119228933685749189309134548949725880180182842553054397011443351983275825022232588810623257715356510929256272327448492751981666426453061480072355089873421003360674623861920210958527980265160141996339631750445868299562896816735239260703027047784046110010540897289394927714251519690288419452144810403235881586019691212049508959351659637490235145449116004103554082161514531696315592037529548954551239609941844507268393932196851508823874948083754259100752923518477010124267776010902762344713022205139157383263030065622201010861936245014813409997181718511011752049815502219232344129386989668963737359100725629240055960424544647665165489952624561108581533217441706732067031459090952492734546680116324461372290599392416428454659460300717654764291192936951158295895205247464078480005885348844458419113585663700562259999795562557030185757489155030897974119618795755476083098915986730459614555898542700792778208278823500600959059806702374094757727132033789025648366637025198454029320637068745434753327677471747239742264128294712599461327141921459272312205781763913736908759137581903353431040063632705956600706293877480108959545417936076263408504275293371358744629620648788818513499141069001487378505419139888898441324948677932086998443646003822558342317450203232559824908103206022177391484637205334255704599162917272460519523966058701498237704312602328999465421079476586347143968518943692832052058397994681892839274557532136609380428833060255798002053114079577889951208094268347963617239368928007921411981623408832481822033032974330679354085212704351384098160057595004921541404212006907340128349435468778085818208517676704863670023188341237460154752391040524872372341468613137144157036109462024098529689473494463475868007362944437898626675575719177139315202403739515759857888472424057285412142303709575497748067262481961599564607517668696818960650115786236904040023359422135740694715560338719483532320196735182638559847031871372365128897575812556213277410315582051684993081841670987785669401221379150942141624053174547455249797968398168456518912735668801315818919878739594046265140142822727276824513901924521505607758202619901743029271481076231034016086734768786752756711162715812668458841899535979953336104746480272005812407057149282558074615719017732953801391321666974296236367825035424541388021555830735560978835197618524722838106499664779207775350547511662530051982583379736814816055832267294736107395143171560744443462419042785607673614900125695825256123890334794901213600632418930006627479085669020135651178426897766323675667003615973769274743502888389765619558365709377503927912143064553543696435903490932516312713595567995946621635934478576609872074424907545799219095960818228294184266431070442498190264514620584896725367476000505472266952246586395103834509772401701096258857450749483800991126711732891404701988972266021458263707293857839758365145504676774213522101079836900777686944211752074619656638985738450648063213249122937740631747222917917963302622205190768461046544788479533897682436709795132532755235989045956477863253240330159910860422464414523976289945637253199783498770105748631862094828027472182197616962197391921205533321911016295799640012918441624176785585907286436819203124867551614662636873940933277697119630239361645053205178308604483519423952424387636431075067895734369793231434864262840366131649389982492321868004378669271284865893645950493945442421833999202899479672776105243334347261254693788253436846024825434186617914815640212835928883206627291245477910584145115638326233888837641598478246835803444051146012166083387209711075392177820219521990503952832430668884568026302918668946631674896249321625981593418523553696837721234521872749331364311399050482142850963742485904689942645430306862609097408331344432450202600261377491737980957059582672805526206460772257411499599489018655575643848825406922934015292334081849885298141759755844522762727948482096417625655305104934979818588780020195131881977017284891515791990609406047092754930795905036737825910971257785930961905604128837927934621294183429021294012510239331361135331802612730046512937376875443010516234055432053402908931460466781271801351027281869132299455528690740835613745989377836632426802078623875578212905540565450299418763566208793057400872050009009523917829176048086940474739732376246163312645018194504318966078617386528758550132129856776204849315922027264264923501727738249328425329442384824923907314321656757156498592240457295742982513627317686063960836712008563873677945416349899145967855804999518464002151114664075185297092967871904680013359930439782825940904626263084584053797020946191608717654278294068721365976367909089954406926007071543195099808137412115702417282546120740683613882441563907093072692581769665828526274384139371892536917052559465912321971767144200010467421731209332210127738511563870625666439908027492451507296503878626355805568800579665513741198108105306525622571608058355040678755556688879546786377391882192467665653949760407009587167696485895227286153603731097474012452486314561410663613220298026501073789701388873858082600055792265135506844334196093234415653675345863909111301116347381119957485962373701495369382692333416841087713082066869777910481339712962930918602879741180674135756398386760876600465613187436247882900433089802750701931319000419991445363852799147195935094706139891143827440993144867198305853536101951040196802290056732167802899550114714857516426124835683621831309276857941652687442676742973776146625705953309906369918708518333630450347999298886771336152657021315038993975469628752174704607703001814252916679283538297231865582324796039324105671907146250859183923500752116320885238104075647271535293404020047739607148014265548303039858558354274942636352337461210271585640543564857962465204378240753496201443677971224320715501193143303346327657321449822291797974682315761974551239491621046926883347908767368169755513248152394603618268101938482711764642079537310976393898473978724786726253586736330153756340734472081952257138967449552384607260607108482977069112064985022488690169524687304771800430097610253098319057013392495566900026593469599274787038333590732906316985319995509686731142865101838158377908039943866390289168077299145369605808669281367119403668742635588773445617044139316336167523430474410702552458836175837363383347803673805502302147827401331211744154527474080167155006622962264695918601489834919827449240957019068651775081795045792477258100681754048887684232269974199052121623617645854826725602030132159424386680231426012457741289197208558736308429350119406344252934846993071691164277804401239527977237480337106600647011346001484360545117248790714598236786513471761701692937397408385439503333689931596517090226892324734887477398947956534012050735971954193395682066978029305720106675815692497411674806727185569560724801907476986966612477665044278565223419219168737551078265333553944111932536621677159133822275694451608633800914167135282759421995977789217719435545313386215794866885194885170529829890527814248113653381529642554039154261275147252383935806359210458931655954509598268166636486162221588176420489886891575353091081440682114536653861091460823090878233430088701739634716917753282048936128997958911210196173493622274921281101576420741643105799681825034357409099021322619723271584130679144362528395833920136768189904394755834441216892954974502352088253408126754032259818632735771242016354641934440023961701864794051361997070101307109094116951807437472710504248120719045173253514355132604895931176369283142176015974599396541769291885690590943750679529780153609236487012800883236431316643612247896589597333865857066140867565912222736368542394916306424514415608910416836280241917419770934691251906337809466523775807276209608468952781572375944408698037895939975502090705110910752389825218086893457354649422859449932301949281147615837888371220212552649863582251442579703977973986893130617568801902553734447318728014474430119016548735916832078368020926734392920309903032235275282786963310686507575636792244138421966314294468404610021116124863731975702854241186661032308510336736439891395341725130050571811553442335178613893934667264328008109542586749505894661953901928546735702776212260772811816353919648076459598522792252767673435855165233798329870003825839654605622769823694165307931231006220992610804799251374429558888900316489056391146628194548277704149793838852664206753412379211447744652478892080309886702902611975944619433661249934042536590407333249571746591940447871290869591345438476107935394582452621513699056676818575694003764381985649522450256627632161079184986392426526472177082487571934783304298918351985079672291098692928567835436429490486496948277886042580935279980545891668088238616902082432978203496632346365472826278988987821462738045916926973941005704420904344593800801348954787609202666781205906350911611517827101318029618443052739109757677689679274825305646732754557291453875706004691652052623066512065250112373708731879574764866073642251245841819560926257175518305685660790069374536789996578724998118357292067395527158119417080025682166893791100087468868947845753893878485893584955841122435012202018042761372057509321562135092199971851307316743937311719153321136779743020708727103172559782781686179234661440312934820770612584906271036991467939761976364165524676496192757256364324565739078794399700949554655276967128189267206322024340831903685348871316512871935348903244071134412594544075178437004423544829899177498586379104677951265886788023207075188980414254764664508621710938392423869565017305578758469827367596868869622200452806680926087000783717257710195904110421951506412518454216007882501489712472294256337669594005135430229290916750874668115038612364831409844542641475001353623716381819428321685821076624088375627415192560381207652394150331887524761099487522365216914685919733083077650359927934847812055200297054330106325473915921650658634014733461962973110260086799296485972901277094666693602138517276256993265638277410395595324769833759441967915573080153810088637233728723647212207489558887874247294815450453267048064646474481085511183473335378574878743030041860916809396449334678902895887400358355396002248135572621267083617438880304503698597116598762593388970089716723477084095236454116237722338268317453532019498606868106821635968750125748873322532335244762144993184021745067434979497671462091282944083658266965553079176043621665133080443203033544565829409057797184155692964990066472193811030805964913735918076532554312943275163567904174592254975056612455814954029408894596737715537264132686654313714795178710805959819020216166555185622511131373183655604433845185111087045789913286227614985565150401380829366321395657822949756185307709537686446709534036654930496540728628115917178816970273408743659419415055245776172794238303826424780449740575952912220171858191778459727931510699308024446179773251880520747391495995248399742937121901210004033078522367598637136008072224319720236569646960579146547933564091330458947126685259000197757993595344449681287337842398907861720207350079587776744464702040859027426668771572528623589227594233708790499291967053157824254190036016475469536041764515111366072507828373289748303873173614947131719968484442673858069535532949925041015071353944799179854043459953665349104459728650628641550705572763126240233379465553178490466729787656572013981542545383879501952986027058980907356847980166554720210479387811164773579979744431408897262666622422736433453865928722212594935002094767002776795947735187920761174866497174956685282637927543043071670617240217772899502365766996854335723231990912648026815514163235015896700684311329187370272151601861002252244187571060429284652335457420605360804545346015349341577965629275269046208151705427895118221606779492109510706471038092441633481329860759409387599860553772602752735367704212749180976867618517337175700860189216016293565103815928768671807574805043817249048939631918236189561678214056319238638415932037774084397279669971430085911444812621053435690365969613268763630520414099838328706496494562649917227857756367094437129161883423725941257789391742652679552346064215140746087686176107907763828635930075916019427093183000800675618380348657213338112475189350341365385108416199684500255714758804018843582870234734977739558760480596560110485455418033432361971795719038448072993483589246997890477813735431673524018938050306209046147612574491759350511783358022743924526255138352818624090057607842676950905744906410943124118593687517638646731968062310081296689807179552571420938704051859055823679789996218606848329266241033593709562909146526626062555435238253599165966064335777604037165574516725387045592552616224491139626178702730499133518105839713823870160324755330342152373092187797435571451933299354534275797922071300890265676839210665521510372400095616765109250202237962719763977048859655715892882488046834603976578152171459130559004233530184722479819162119502685445572190155806133431307817698367798528581384546736799520500937519619624499711703812603848409719820668423582428926966652954535952851274534566589726418664116934385149935828727618290227646798751094768267033508530437924841726068616058259483169549151711298095813329698200561915624846015038342982101878061171695748509926919983396079424328578431739173923235139764611359653892475839803917571164143758998343358514673722918825937133702219490527506796684456072653861038672060142678128564536998274950289451207358176563545600420054561116051320349677026113745922931957587249244723598175041441374592418197419514985257710625564206721897366989608229030511848099928833005022113259021399397739149089997400699965100428540301629779328648540603946591626405258617935944805381767503554455002166271526814640844852544718078135113430292100501752499887307882329370934122044174276923834509859147081422733597666743746140727723817340845409685241751779955613058215211627535525157441051666041853608030946221026164338369202480070430377069493677603139262784835968913062338961260388276756368651249923702691073744795700850193712219285687541211666125017076583271408000013306813926609867967153726041176751422643898587941367797593786024726049565555348374860836598426612170304426258034445831022885839901780595843521994433742802281562824315849200919773463410623446928215962913100849197903581827473378846902600455959511530218357873833290183905039977536026439961675151229447326552783929371102620601229299777304234469401570990918392372049687326974231741952266582657369449304717446806172385698549557623226888098353811747629370551303989135622215904637744431804744302217586331853960346630327399360934056369152348414523596870905314961685324180116154362777733242114796024252890306193527251498112510417135991109444188134865103050493390776479026915001276743606277451744569772565139172349584389946597898747385847010617068515896675165881803302770232678602481741107811313506092022170187867103241940619882170727603825796913150606338793690827892387164781251555981462148982286558853600251906604396103284096635856963728357529069734931677876251890088125243504400942938940700066765397311404238548180231257918585489382426633913287129561751011180783051257269262207138640315294965478752715861872454672863587910970289350114194830818289587101957445505688648906952607501453381324248455388546772586640775139484040006024373589030174132799443530594413803793021781226020906876559301996694227609932003952548746885927246294189399808203554847755520098970734562337848099370263563323185948010290402489885560104754898875810869498609861065697886859944267223162296915345440570041453082693562042134915989390296985549322510269474251068473928128933483908823742643440035275641497190151792203861542898900146496189999621297808611593918148257407502146575365677738777491110578819497566807615085745762345799806101102528663079714915123630733077334541316949662029843514829756547621123459881175773158498201783310485968290654165860596157112176140151661116191827754996359224986534686094466410072344102128449441818167729756096726186528480679189257431151743431801598732486714235896858086237423322980630302137213625422982793460995400463247036655475456585091054742831235175674212284830093281688505183648358826064151505797704995697932516139281174952896251403282696580136769314732093302258949146402506654470628723209958440218358306373083660695098535058042019258460498008812810628239846395228193251172496794701299400569645758216279336906200817586210452694738023909749074921323687465024321054406725665635060357562397452289125004354938785792412497399057350815995256426383480658425491304737480452058172111934139358310767526949304549189049722297415899544694008798723044229531256773830086443494015701357135339414704032533031246098988795900978780335142987062706135156435439975505337976635446520516152590006936846810134089923967353118049646253380017739614237806472899240546915126488035132635609459243116738713880519786884971198481580759127632723141749532108694432140193548042121536686072737502439912373565746823914152323638945994068270158569933616461349077114481437353985664671938067679304188318157900461119133116907026538099672132543779006274563316482925849684914231790348906476009698109537320998365456296417341895861964708131564518105258604002953616526630000538634440328687690501189321091159271457088823084019900547288122420072647288860552785650300178556445581461058417352171311085998809449643322919715361367487259021397528066283974887784299675231766910005874133580415285782363325576765149383953243948725698617976749931905534888585442285510670542824670116368486272816696143662234102862239976046113466854544232995872960157887330592506257825901821615041243435226373051846569666513294638442474155522821624353900734909252413498062503809073689741488567103980545538243764599883432529338475766246932688381738260981803864695267887887388059015575585825409115272865480040098008671749087894190616596477545594728390148682100692751455342362510448517505422735064265586260788961607234100740643564095871750184769990936361971510490933531921345430726148610297197573170532167824393345785680151412743195349749959595318503392796541117758647433670108724875507403649279405122173228369374884389408155032893890496778075904381825281842204811897716948868187900062748962769481252565714075170596013066713507792481993095213100356878394460037839930284047736745680711676236611737523414219346631675033768174578744782401412061678589535248330047159623407527311723185418921216579379316260166990815330221703944674033038313568844096595549214453931938947700572345161895147053964949168870993437052983762011555916056799491600342052640650319398817066324011078512813873319848316859564763536154380524270961566815124738835456802696348155815863606626077268399531790232602698070093022198620582132631311846508089263238093276544154735851631827327162108834111485554686051701569021143531372786380163061318769678992762992812790721403205217795426944003178234036888193636492394300360109487663348182604038614042974103984614510623222732810046123864107690373402632507827499857532026714554015448003178561651161013169658536139087230403356548326716217861225362531220604537770697429683435092100970377560214793609366395177115900897477914050241147990237951587971530209242327205867389285237661315211731017691300969911718194383124441915055625355657317848779219610659451906532883742316312363355214528205878705748053129193185175878304575345609063757011264327031717918254123118732656642820294542016055792883583204582572968349083276293410122439550405368909862614076264446497501090037562228282292823407356622443336330332785197484820826031698578613953347848058599827738395985386999224923739459402819330139388383798668528288594845831949672534930754530572954794190664937036294543339160129445518831301317288115804212526784107769926888879515273294889845779904176927301504345297385024377529812586171017149527197427465021788604517427657357832450402039203111304000585401912559926594598398492847622806706270334816371285068113131270680068102190599218988368587610338602283663429521029636748123443760196220211546074617382498967113009584161850148494918898981252758456380648703288374761859741152011585401984055592248236234482295500670522707721853146692408845443111795051660503843735261069037486689358590180144435708769150739566522859902250489158772688013056471702612654180270726820616271586253750074012328261319515771983554475936628670742204183877211698591550058890571835805420872176473606207554771452494084295994294057359032526146838207945784145847733496771039976131295075148558798537622788714267919723157978313930046374074093779365853314158745131851507950502019262704794951896237004909327132689376429680963126004534225124057011006480480434979311022575286896755867050649996178897356424529286813610667047292714418587035102863910426278448630626228820027897769295295443215593941683121847761878518744023479381056834010313138015344824390300548098679246045797572943292960283824091878983781780683856386830628886120418783967434686239533018488802738270597535880658418738743364220800743813643700816189380648651301819817894562053070881851430423461312631609554530813617920691823294124358347445036479657265144625817089403664803261828707069221665390239385516154751506502486655776963493052357269283750531531934215574485255474172891607522985544690190685071074633422999481786166614366195956263424396916872291316703188239809321491643859408646132695369262625597345182905583489655143448518279863196268914205413450214978215980787305360000240247326675160502434340035525432230294920002004837327525461762472338320339484611205588525572302314249647420004371695295209180429788563676243962446408235788204033918692017137905626210652814074946561998104845481162954996607565980402243281374136449191013311691622023678883215427915738299263921482876306320512189800121916859085243926174807645594529560410947547277604273018815023835513381070451182315632518388675877164862786815934765180779795042767972746241885774944572936293685522765698283467117269551385745518040534995697457396599495227237173529554872612858944641836831415560930920993313708258636708995768979699281787115571444781515350314817625750754646320671737982535748016281412260129386197423607728114104535746265008257922526977384574745631147546615192862918233334062234591140390149636999866250904693131519222723918743848713012884916808869783167574321888300105702532291471049813344438566729842543504972001925054285964226642161061690293030329588992794620387096485960728528329743754170504078535061277459797914077388096218932992276678025649168559991377613126070428702248217118149287676693603005506138822642305144133992809048234208765940651118342859272870349636071447892316097830240701974376762700079973938564917597145578371703234270916681080746401876752458243875153199423922770727367551055654117271249026580194985545733938942034685061069132857835827455729529847658064269404669765236651042069508448323823357258293570082537305600813726073132176671903501328226443688493305190413982188249032099190348560561352352213083686634178903524120754306194560125903161371198410462656516562626131959071613812770074397507858489494284645679264618363122785920420770073271536800229539468466952273056978198902590669177438882494857194814429801440609543745213161136446820899405599465391491178476251647301457063921231713905272230560868212864875771395220982966509376540683666301022233436951272578510897039148396516674794409694116604277756834494992749757871947609175343426184825318635218403046470887588325480782542952506405017930719423795454669031522456971454708255354715988995557998715424234102630968266297955419140640462200030265637918320538173843300675238833100608414769191179029470833007720080838710527904821868690840161166399108947091771882234963307236831730269660611778050660007022168969548291975032146450002268288221307715014675813667488511851020839334315027672208515626490306808431029321630686785172515605206152745329999314931999416741797592802498464060858777456100923976227981311472424510090124691089178704579194394807241551668150491186780294964419013628642412384453766073299616173791954226263677436261050138366582489975366136322536915812264676921985694723361611046411931504416975242661190223794806548970446142131428033480373785759910142860893358779487898986972768406148006525300740341234476389403402269096312848018879038526878800796205721708021569108390481699023292344276490752615256999374384281005652507848211251222913210407914379216651247522877899497694164756773224505686134758467525736955607830200782349837430996735446215540408914105124110964755863816640302793711045430171913054122630052579484926664222131750536980947421223868887053793840465367334792542584608492468328101657177165412678074833980861622585204808511199374539127998261922352801506971629987456974319684345898364426697808407409918052806550108547437213178269048522314254968126660953695327713765683178133051806993981617729342812190177977680798558932885672559199394173907750745669197111855616625777945919556136585279251664500659587773142828045421477911251735576860045183380868286130537900102208205782226442107456684569777682384428981078248800551101231775982975368520195101213200297440130443873456054927982935418873885221040878053049621910043417329000793649372285398328937285256985900509958626605405517905258624751793316979301482503327502484046761335725567718586703226127144170653935034928384776553866360006935184029339831467834821612497629290612108661724223498038557019310782464371899003071599719450783620388818253988481713488140208273373779763210527294911590926921362069112749397866925728666340364163884185127790669649410652443242143166978009199103837230406145052372053192133373446819445962184357414762350117595501171582042570997249921458871940258307990729892330930750975282414913194697965003123354819122633297093303426352539604726071896184286997795572061737112708629206574829833367890300001591435465681819896236153923371368528146508567953578570382265697533213801049785959622317747817227458185420449320420135948138789499432549503178847679635533932764981445917729841055597887993289541554028339398506926478164522043022705038696031623069741996869123292666738919362739827602567545782666155044892349326400330023471154927823061184344797680928645723831834587323718122949510780522096885171488094126380033715684061033315014877545028310849039012909143606089203611234412015236987028329162763356971485861440598007904398825091195748893329543696450079643977286094648260349386224465849875448435521583630012567682415223159495446218651100036674324483444316635874975535082346002767853650740416877297203601402282124567452438377697072699891866264928210130030189599238487864195113471237111687611167787114434144428480809149982484091977563994054964647451179465963460882600417405985495336428528227516525411976632559047600926687323066169768788356992623657146154074493842721726465795278986895398218550755189115684078014066945405472940266120318538683769944586460967672801810609666730781348809233997431578051884831041989301159345185764647263096947339267755155726081394337573641146312088204099565978294925001957314071330577717537188238095094853113498872777233584064628426825465437333875763984955488492326788055126131440056934044275142859405307621255027688770226547330939165568679597726574569724157675907274333328560286636738608710564989389726178776725846138035512265641317669230929958506854754734654201503471547029654557795552087415861928404719403221062994955018409735068583775654437770562599239483802238668875821101011330310602914025125166255628032039642580765764508406939045657946781148537821697968123994064479166400344219595944763189022275861908725691170997414585242467794908980569592964136870036090745632810025457849943224936918712262695910634568246108543818413852405364974278492881035286278009654369946806721092297104551545894854031401381360946040708060794630135926928545800206527545133476607942601581955559527487919448281690451163522416827512929394078731504809619059394686956302880485401329240886554163659552824121583165487500439822165531615316129426008737304443559373503871874821497615406802847518765785173794420536969969346674256772369580256395541727564307508353887019160909022291458633848201615209820890082485019472647340261564089154214690591387479136718908360139762243722329774276311109517404944145993066057839153448878139160345231469551971323026685468956494063844386326745916346520665128551843630371381001822341953990562041281710566647476095502169273476618980896076886986182661997322592845729947041628503717974771609002946067653331535178471462822150927781185411430961990464367963580778376143640949717821005534847500271445201724990806487902042041288134132890883496367837800818788429537172072370711949580686563968204977789402274226992224738552048553422848467012582388371514564697253298819421257568713761243410005212461738051120465975186829549847267217583260752248643683263551030622401102226147964849807899310475491404496477763415862290228871217239601393109895529669842329207276561974072992791527684342681786035522317376700841702092790739285989456782633243136076524739921186709916722152154566773309733247799656120029815061076869467142988260725658965648778389269355775075179331766301424492613136715688716939204225916704490938838739688881862538771983401772607905214985855243365331398563563134039105585536163555392449282774837868434384809547984983747036201009730745550656482322922358824911918623607466496210041430087167591012274511953940218784558601230185097492484017697570666615101890900173803399569065455210277519455342381670542469798076213550014414843895667062149529564580270789388165870218677874901699772931258368987883159030203958662943027131220150843703499836539957678365366487949799280753558333208069063291855038364423186721854332157552575367374911586079578371086870190984832387152765031063717551673435923286848613469232009137861245774515795970525588574025446166188286816626174906967070301231924959448064662173092291824662254282231405361301476251221148391206829790402844988132779871684346157732897632125697313552128221684214629917070688068653721247118089814332836908965954132393632068831733267882079697372491955376195901097133684763920389384560007117845058331029886250218812384258652883380289457348718001225272518344406914152405876566944791365203411233731451674813817683999407024590901616601622401180759911704505192314011387400309305313661143173403122593103965757116295139966878933508924812084925507167609681754728701310385391529360545826812261831492824899234527773509461844433733365652151939531913535082511772195374965352725092733541227712028870830608498537921291890995388927279832768628040411810089697029789877383233371291348488347701695236301383027970058654210047368993851160813852468590987743709529825508440814715051100406306916903474465568455522213362773705459482347304087820928087194682646238036826456161253192942010638483453520229729273081876859168239611204337276001031359666068020497735856873819373813116424465015382002459686480035793066503577174752592075253982585055968339290094067161793358144252380031948856325210373563864439046028436262102850187278895400458363975916123458374817136471438439673483740580900684858834769169545268170109711965588685009610418377771940846806180197307793577548428617682615732499753958122815087626946232294748452170744949809113843778237102012638825195979537738342731732016306586373749823825340408866523336111482935447233156611158140978785637808027899680228403165738493606380524261029181778613576692858590630900259793678152784961080291545334446318668696701547310533031642596258291735949210186044807185342404920199300359285608325945438387333860168905712867707895430776865788973993290808823731328220336908421242736059906160782432229451515962028973100735224609156238018176951557013918119253395147726467973933594775786694387617777166121622761457761817915248548028791406433961361121058083421048996037555522909544774522358592271425954226411682970860094497711955934387944099284184028766287174794787352996614675041478901388667244370550892169436019824621513022921673368446085925259677483670159745794560900214682307080700485306151970608484481911187305806441322771593880847789235553710651371121222564973251449717334608508324243597729247542690109298309282247261894061561619666954559043429057305208512926811158373739739902453677616086478292293426614900167647922700787243605221068139450615664312564846358370499526027976697355026914345681053447723959852241483710559251965133669230711372945201630770237407658249220016288638378584395986633117083494814945753367805705951207093905924597736636296318516375038826809479182920377190886822488220788901541802570460116617610850420677023727331517621565006440768280454524980538000867906104550551532694920795797627080834640172492812766978503315547644205457312127474490847958242637071740795555429911209456712911229934482749443654176398480508134724463024011614554379546395802899478230320088925898011823710292366015247788713215111130239571349629136414591402679936381568675236545698388608196347635845284267848459905463623143018133151088888636820067067937365424054753857516919756050123140839872753894868498034638205304374389416866160177829868357820748489130576750634394499451273542345910019635986542415276075580031412357962662278551905715213158687819021810513841790766820665438351562723599986070936937996034844595244541575052312138756615756122206895379577952983328503671147249578197023447728912912931530291663376411074338475356881307673499558901309187971181071245997707971216083328729701829682409515513864434076463781032090361115027494162330101131363833701696155576942810735972623764245177525696589949548653731489597896543508820273565200068289365084750070330068506142171391077118460678357442982129513169272513389338033358890851454751396891770335309090447478882616325152966381522759051214533385814505552441910387191362170375370339445900516826223579036022033584762166870243847925365310995426687618732985833711432111313317111070179769181930365643716450135334178503703415521856978683172809594973240779762725157852962385491611044933746328952726731937629364721357572838193859251041939561039492503854397532666761841741289108929256613766193804012481078403444561995065036910593845094769572555129139041624927219914051253121467240047432023566268563433372824918748920573166520418479715564993459250167645089459696283420865896700425343593802228003079740301353701124459390020627869568997339385553325391174711085726006721229474216863562280427840641021449132226668958662683383684449194830590890558445613613137436680033423524993002905858877844705521621820739378300659517939860903288691395466800026042672893703561498930090054738451656769782827926990967591165865697670454020406745685746200040030209183209849145180391277734532971374039929912661388088701275974553308651919281317750255828441462724654168251405715636926283489567181021676956295972648708719947448398193584251567451240065648747315445484921509338290419678966220889256114101872618024370497496958562519780372890932640886393088115004882605787341297405271060015818410733005437522825809397792774756226588068697608853355059947936624304671329351645518257278486027381569877004670209196558417735106003288224880607698009254721983472438254743346849605797827090811694852991957603396623593986647828503123259701565808849227715000940997096174713635890840494791526716879627382687361600330501589386692728994058799224830676697292458239810797087993208020333867483654281287730713758400954883913853681842319507877520919739953827255354416710574276188712204793641373522960387313979090669236148818180600547547771852168673753772871754551812207606332001530170075599193489250033182314778555845546795334015502552863707129414598076988287838471863457402912694535994620083489887379550834646135210870086240032163197487188231099441913008749409812547226301379398848450786413332706296073481224659735381626441007497837377517487392035860834140864720409998294834613023633518078317357069249662218993035927824823531355654626683537881721133843155364147016061726957600195339755148585677315647064117755460516583711347489650052754181034271057835932526701928663971053316929060147824058959033835640846981327201825204101842372644000318934392720739990745123732106732470104380136389601647836347109823724931935088211473950409762438397619019629272409872238467968478997053650574139775539442884812346966292995874919225333538972748423576668787625826239468799635365573618036121718983709592681013985651533603617875294759950496977778778461447705023953975973399143641691218936552665100313273980897835416707352534265044426773003135274380917223038023067133650113190871711240110029398953530667260738217838396033356493679477512672343013358867244141516180611171151132402934053014848224115145447248402505632765589673993234472468107006874027045108735587580340421289730970747579600899051317697166425350104617613893867172058223228178167874743643985755525885723855291605093172119935885624698678542424228969331405740848322319191878772783539102900389026534855142408362656171409234948066822116996677232235549667823128043453683501182140804895813224454398445946064256941675950690902113447320275286798153741785139348808244909059615135178180781407904737235324339161695163806397336632089116362435654749867938196279752647792774828464155369482600986401621169159615778457915273757279004150769043009222151705702565728260712025304683079907144879191138034194386608901023765294442698926389493919215381911858762016003326696660881526599915366198990408410094994740077371520156021370566701133746029748312571597972198977903812020143470134641810507299116739907569121354300927093122764789629494604231511284788091192142541376220300379352375292028698911406777940095738693179420257389637099626447812129949307403483100275857062231233027776823858130803460929675943726154282168571448312716292531428634947851379600008119925986908283092081188181857981458488091368717718920737981522972959777327424047596892284937426655012359683224494402758678320375711227842040118886639031814687008239061148561377520493784568686804164098654859094669179018434222504746875729946319949624305227903088726705531395043690303995393321951725924733109897177859243228335935291910982212957075882206369652664171365590256738136348148790727899165129750694397368956712980968364655022212562667209252150517177510739483280152894167320408336693324194196815198837761710655795167859719958230200100616972966237959434650205318565408094489323429787842691559154181294728451045371144604030114049010606386262401047680594549005846948577207578687579710366940140890588298129912546135316204710323182513118275872197974158777331549138017698932850568199171488944344317613908553488167911398691938953779214550243748580243920266579790583153523554998348607890841941779813848216897430116748902934119922574370037527762396851187272516326322182221759809801749644451551346864015479034423082677006034719074961973760883109906194020964796217899597961929156031478661949472922745775103173312301123076104947947210880184979708347555571569942458375341238243403613461926991511382334022173680524463174064669876572326779560013330862658438846334893109929226290874427827996926832443342545276422715467752662146207590540334746479894375772564150408766588497303015423540527957496696736246400740956492844724447057862159969359270867712219487196151130200226454581710826930775069624042917073732188401663628654311362226506935913812467660062462454492064479851461240197316448389926841805210649278834003180727922823166951558916531459474573665165180225294388664902113717680665299364943232006205341417465748801648313219982235995534393371133506175090866975944851858495251609837910398537906622930218604713097194561366644452134849757010535246696518240848102766535099237360514480515931951191949322432900115011083931223729621112316710639123141950385054840748317108433909430640759739577656742946375985344322293826079436231105998218762915513438191007292094524514187300381384101682339424606256473366664555037826056105539770538800612555769646117230517236056024301303489105831929627325585502098716316175915505322455734726375941630022270229851283524348677318742939474701277833702954222902159190622488137574312630076430047635878273848939256069941708083587073580594424203765659324492420285067905595902801658121330334514816998231664968189527591962262791091790641985648626383055777801786042794829233544686439070539982351351928007323266545851367752572087133173975986198224943487300421741162678265063456713439552394178370966191668168637350493795870086824818165390816198285213804733345898895940289747682952495772693085325812807361352861869828295819088141548937634166780400769379165786944598510500715205233119604292716047402790974476728760252296959898374171133067091865432145147212396792432463162169344649309227907089438734279042196524971428867026851867318415841930420282611016910364204329628024025594649320272721562650697609231303968557204560506778637473521094856464474667590292992296709790397993938365241604079141433711180084407647695980070268693139461077436017058621493456034145314476773237328383606536107199457763128049205284654724666982389358392809496503076168810500258473672808813527805063839352961027316537869241755615886561966088948732468293173881192991939493145739534361784193554664549428236743301162842869619791182324882528630128848293551863241718677615315262238611038179723524414808577185167222506862031119474994786014447131638788224813378208647228366333698102339283768259880456319604668499404587706395169685858311314603730587380122738131155798088702280108090222213602259339120998453442810519984421511029986062367222694729109604559633829081021296596472301235257871877710093594183556510684793603308180676589662660273876976021034124510973837834485694055789146949952130692385907297183648221366988542742315914559777070702658231641805274033574876834156026991401259366018600984149688050637659959228420221163333767827931492304191397974430929469043926649619644688173172815121470251518734752670911429006754084852448239108549909896564603776318141174147538490631120990941379361738501286204801296911815789443908643494232141565997460888532964397892142914522932192277658895653300186731358242524018151096650575481484437598917267726828633202789460227026828443271608936953092330985741242140208197126694128093498172027477208711967058318121034606141067473720046587348532607643633382828472596192995694121514543004439762668775531467289073980403216323315227771635561715946224609989342492028269540977296546973535024333113564484453059331359212061592251815923869350209382030427619531129802448816626544899659546822124807127036664341440721559449060766063414051497782670438444333065015287848367811503684256801060482746771015329508724232895351553399373587246565262739661481509858672431193010746729149362855989047731788919430500970424956071274158707796088101966544974457251464240243932128838097175062737640355367557486557051596365932964924733739313439530350851796162396791108414134212733315306086084359440491975540702310329991859192191940671878283699803695330567002498250235744694219805199981436122688542646831940977326614385930925940667916733407138963627109948652437514923690881233108083871648241231394200808757490419824020215908634200306749453313647727874064093924630508044152443054735675341284982613797773060773338825778345827585845343496190449868170514929213905882190534461237976516635804261538445975865942234776034747029788221414638482945881241773659246642833377956145455698203217433408322472925473303432614352104121385434074918598296206038330786331510856327428818947506328778395375005384712394533416119464674038121418793882423343614120040115295216457243000716505403590003258681371625980388102935188820178537813690777279536539946979230427383486710271820729668644216377861676388492636114644887803717604107945834996359563179620262380542726148987294225578321915303703199641740860793724678366161046494206137150890532977094842681777581106440238992346640300808766998112159930381114721233693031588659441794794536887396683967798785572644438240401318019025702848785580606168938019143658939568792564260111458268074347114459593294817869809248710896732620269688062563800501926254597445865817397924803972061264571500526196320751401280730816979051379057966343183861427055904538742431719839038803045973494741744340224118493520854954345669090836418318441452024333407845004246337961969484039598322621397769383104229190686673065799570652343458180510461718695289614413098418077515398041116722913064797247784374958348554519414190758248546105400492151900207032885604392898080132883600553887689037927282173679565129630607499103717896842639720146733189265882863987279001066567561298314796139603183996238068892248077639160372864160744706605169985462147188604161500420358061930328299596329556663662652944597737184185054160840739454470408335695874769334439418357708939783690258748581171854114288115387992876684564997661826150082889821914338427562703157027796683173013609807185089668562055470504037225205706043072793536733252666951924804070481738849782922702314378565968970597603921357103181506365413787387380208925021306848158265533136909122941795617074702043339405008598324770124716054521285922290980885658883673257906965474222670990709898772018848509638052913366518685568688217240540405976345529610384048872179656637009420951642142545500798586110271156466588864761116401669045424438862108666641195562414194468430981995377616359210364658120558050076499942204749030798579430428788824354232909758515688514417123748041650505014041830076176603803899453391218145743807357604016612527845251278867489169299150248727432628751011698369701664410887888492924754473287679055527920201840849219632594619994564023009630178567492867093635619924320053795972009838172054148363937005267132107823472488291601089108609006121925708054116978081572983867916181885074523601470932506066413496732234043036692036888538134521897986497733121377013918891910904663994317695221795718197649833291994278494136014736417428761304459100384961603486992743815077524409698449893163708535003066466387020324458137511660475505927323186677563568598725089489495797415960535270821289274475130072925707838708074556068362882235268133004689213389570070466678681017963963232648541455380674580458912180789962042130387525572683775820758587773412253634532695901805404359388506074980182880958370914590271328577409206779507613505839586479251795796506731864944527118710705460037451950383158719878527297531479770893138934830422692010017632169490563950766990635411274116722819187110549078636119891624583844358821844608115813828476083239304165127838581801900143854938171433847331048366816345483596779251502056770413029468254394875639517760883189324205870676098657361165673349494681829338947924149920652692493292656941767219602156742822446158321307166494878541158597321052375208236435731703251051089138773961586266852912479499012225292149839946915058775056505758288138837232356534788860319303718640217894030733152990239986343437838942419804232057480689285203769587659492839293647298845375419013016669915807541095284529920590823259377484566406612009888848275148702400025717168031732668247420403072819442412458686317812562980870850872467831793843896508543282098738747613670636290758774421018915771705214411972937134885228354596834211427789651614848854543615918524618364417979124002849772299651127866526092694673991680635929221814644489406520790423209329682541587467308996443116814743031112874657740616251701718317359307901378994043704619216468458530465127232296265450201773765461560657169944306360439627699098563769902452480821218886737097567756455571572365362094080118327063903038820519906336035642517554352986677969227787382233236093146472010857097024569882762298443208713183150652596499219497601495487318097842993832440841708695577193490000806381419482306243380448918428538494513525296157793430723890070000963734709884401671647246787222033908094386382204078626385063392385208555295580598337222475436570412824993000454926123806651231815284274873665790736455237249791961846654640517946761604546120216622692042357518324746094292823976912314089606009583465064728977880548258378860066540305526736427093303584157797740038318998832146225010080159334267315137294409269389049950278424350959152161826968410660674698755682769342786246004898211169106614429478239218467260907388890873133396556224948108400146249094120546449547425125922534620464551651643943934130487153059727980266566689625463617929681246390101881992460612293995204938220267598643380101573249299934897967985367576896374487025893454499975382003211648967914547524797860851586896296373792953652851335286985722848235798356012999950508815390324850278158721399735649325080250884416971417770416308748953826752354518893687703878029360289886771767225138219922127582619127069720760587810967443816942828308963355527591831500211276882284801980604125153605872988258500423756051110564553459314634506406376184495646994101546719415180417920505571967696424989676904958463724858145338976130949201150075463724241158205898947587895549894312583464896889372205084211443980189084923207194012921963115725861426669912373996819956275171111089410044981442759926422539457598093413558936924765588474938652660987607928699825299809684022479010700782619073787590382638345848826829527347664712134056765617442920199552923069443014786281846695106824054386351886737503043735167984799091173829361131193288599145123782296436353443711976846262544466387029213636667088770742535119450890190182678233373196071373259191672391064816949760451105685082929342191530399303158598230891737881047501127598596801324744646209696461673732968768823481050530754895778613748557497370355689631450914546940581474332382128441534002243807184151824377626852367917745522706985119211525264744405728125107547617436128079230940684686581905442593366090371370164423810957999139422278425182619072229644320678029528513934975720792477681209539025761504467361743142791903953486379722324109619517943492170470469979968064651719665529113180892829015109932168847109270071382012187298944718446811718435164470313174635161624076741672654415370081684542337021432484602790666320759853316968127184914691222227632456437931777315236936235931488077742123538846125137654065688274075450216677173149140166516782199648791997254889147863748596170924083206899329381726305368845929728557399254903508030532948821197937541440470329362593033145603813231311251497609248952373714335800106468687832492338825466805942853783047573474988867860533247756146770793507413827139199702346248878250980236357580695326952328289149082291323545495968352717556418365458513065982454215888575001231494880090756026928886281860766275478433904459148487821779457303122807954519529770069111723798164456649257876746887339555462392993457314448747776609286862329423319364387883407933029699068391239487619292070061061065960411057870233306961997857494736909194768486920254203878583923767630127642406654035036626060981867917719418878509066937802962385648962748932661725229117098672391575464089703451617147244505726308786587871101557344127251799585429409670626941013901190300205126580305899015795598315894634130260215367465007795387309656077856955955394926062903189377580750802210497225998274483728945892925043118637424617846766716461030034819297907602172809950613914749108906903465155318997188508941883186953248332497944702540031742581640606573693703136720967706013056030324677726355852911162472924374666961335459648118336056334037686879655677725888181784157490551741123751273365826806959445722410849100659932304884365909999676136342991496809027158692026085873342316436545914920361649559325808320217622944984417425953550751244302007758190666069828777797076377420935897138911575915930685560202861074234298366801985960320756700450763211771514301277003757168750090530979601826705606738308901149475553182978307309720513043323153104825067355472100941758998918483882904914603472528763675127495074148056279148517900790454499722695417961463327750298401866760697070545774712992261505571420250809959470436351829803540782025989179628584879537061228046062769340733034333027339401206138240753483607068800300748533361817090810807752943917803141237722101414977282409703874407775555916327236820953079733196061458247530229477372928721277102131888554529233679732674581830730397264604510896455618728094367572702579623518256008064380723687094134890187152533685558247839219543682766522849925145492350054143292377331510900251990540894528934138464388740446971199072958253838092981244865517943504318418837178009758477617409453869096245901186139621004352527524043626716443816966828222403808257690126213446718173570340933530459102051254026363111816603698411890513198778182891212420365231151330943193197476206720293024067945640477690365137277386744551590746479849907190148517828490758816568997804567668892931375764647373659347391193817587813066404136322037894434830591128495377233445293653833319246724937272584640638949160600310767831690298090782081460721436671918578130442783771789532578552051644791014359965389624513730610803004476705809457171469009718195963634296109870208515956150724653029894779130007236964577418939430280106838068561273919881507127711549936242805445312058025438147653324075192333017781969066978972424469334807967360485562898702275247311618364847358647204154579743229797619835475354002937023596752336406149685768728052654137574667973535785172131298759977105222386709553035340906605816064605215648561433781098213464464027579636765419880524201285624687570588633295030790947541527456415943179686198245145494399817995976560771139372113052459720646735037021479815042211779078160762494766314862406959871368020290695886985092187336250027894177471233874141703034971161125830815402860820530761350230756875128000301324746068615432512739280932200949878747196782713652800410716256772364477556095601783833773458853550794973717351430370444146160779377818006347988251614449080305153010398384943369535305310445888829697088065217814456059104225840019270623969756854458368255310827997281637957300237370838401027487497069161084498905519133136984339952771475377307315278638110769322256416389033045593405715874508756452361728066976372576307057507909225933276935777619341666256879604328739050839949342150012097777184631475845561482305849207278463523163642520750469752220222298271227403722578451300820673423532081933799959454848544071845312191924340311903990634112189472300513892254585420301481217312816311895506208218036718943676149596328866722928946399728533148431186591303830975670406032453058094836458912174739896272856914158530763640552228659756445359352889880915288113056951288653976346892142064995236636619257978903199564103039049133271596033377516959193476978722289134488341094001994997826895297917077192677397376222739981814816387079366200843850266728096389237900169997946329607371856105849222786404748558575693568492829723640610407784622822484024345987315933164566106274091958441400747018023298159679309536697828834795289248184627777931273923963493665931611579418775804973642658438035212021069493097956710999183098338599926774317942874572883516266704372201566449376528802320758866352092300719303770504680912460836012810437529318710461152590246561468549459089940197957975962510799951442844458628211907418929445183342022840780968237545668045737578573409452860040583427130673101719734315251663364105703904308327954773768507567415775386897962377644705167117977499906218847897031902242304589429861913431281455387112507803412813172998665209119957088039743809990626225191212343124167818838320925716939379007685349130133617357116442298988378336789074824700170633280125280573407615791779624024669087260498457590669688954256679983667287348341620858740777656078850269809021774996591499035391964691485042939742594848308288062651185017999277141375405169448679074476848276011071460210138362646405156792798695734446903460875469500059801204879024422015196847936757129085617366398539582693059732862447861464772385511813928985572580782634116288903925580470370143433484833503956831745812188992711756106490607339024639353847105308050278207859969389707882929117346305646099379952418222074392983907327446975324925171692620970423838387425318547008919177315781556577964045463986102922207829569499098853050458842041930155793912871323118128271861983989211700054790919926678911924734933585865743775340330257858105772801446182923584320459996278853704612005869705423560912133136429275767378196778828816472162923847969649108790802531021287104802469645373655242649928427736796923812522841276449160543667854180917750596901168519064780795972225888742072159702501540097763767330289021645312058417455320969398083040540958859941586454623490722963592556060061345488382206584265794757028430760409238733649486469891324148860179764106043159696174777763109026513303538604745241903735428061550611639930084627820395325487577274402116459166978235370219814151605321135433804471411701696362716436411733240446518370164448782062098777227998318939199776307580238253707268096111275189549235573252224615060592393638781148945393509792979238809253395361008578003474554314213854967840076216681172611400195797263299669378512367537933004257344455125624589304260009214914723292426906022095532984604909091961482659449706488134527612845281040487998195776900682271495276775208305856541467098127611877808337438986950912849008763673493143757425990968379659922547012769905778393007025108598065573402279536560901473147282611152833451360270898519000944436596957442695009275929689071584707002760433748109079742860362420292548926795010039848134647728187866282884452067479624769738047294781087277841638047057828331298325079440042171806146744035835682849898960360470877690423027438849162095237507215796931510639454083359030150101840391236754248061377001024935199191387779041594699448335690201688878916671517955045151269057227230873635764680827293478800873599863847651057674101511860679831579154784402484856756145162707767246966734305546101138285050093946342792826833103697008077599119714970512793804315866806070323874646693701764677780488663826465891314531326262897158709427004807914836449956270970178236789546747575705632331429552868110518568145915727444860552178384991005869259705629405609678108911584636274731589592965466965502874546092532457581971823446271697431144883224122085277188970544618988969705418720784525494265198532978638012016760076067841452738628798351811561758418043032838199155176880918843965939000085748030318451520888980787315085303781020640667459109981188296889185555804287427868491205677903465875859083666297384145735668795972802642129133731593016826315694713391415839941643839927441379732471982021949906391572582398653974954848718511016431230197283872313776456213573281611581722653994105862335811059431485025211708322600417057212221445468583924237152581082409850839812885382602404767435112584187197841710952999271529831017444898318868908717078776592088492580777064294330010283108758684194523137839623370725216821786467552538447914624842868815079257537036158606388444095971196871486116053065926621942130622246803921316147496673653021202614469296667324926613822024287627189561379097122131739222578644945521600457759563644712463069015728802309414094449759631671632603332965192212541343077530113242200599664370153671787461289129393968534127335704437703732601878470051527519705501001855060359752029980238848389563861224074065277224324323500491067518262258116624054095701897232959683786339006330809320815329118174822843348057408153664975016679396395748660742027513510633794739486776266283494898028484867680769535752896276390048037509017192367945475785451770724502580281460522882201395913216627801738218076481045871336680030429640529550136338637871427564016171373781409701630549472137375457203123380737680293304989748070277072094308550989713079907752414789910605247067221388467108993380989973775783058666017686053184549839001211939149537454857142792998876911766276439278598920484200083237178575726752379163320156968529898636104283107012059312397171897656233673303428300267731810094747034207969542982478298216120963623307101252175904593368685847469806290515058760977849166574921054197891466062751515317877359190226109655386220726342344797170096505631216176611348927992509601824884181545413694894542809477177015323769414935639974063469770032447586119910550890662701331037850698657275448084134707637250173391214080673931147168398135336299714980654776706786863731553879692008683429449100841579400680749281579076505850853524772174094239121698754968480201638156021884477680019041185258951905216592903248937172038969030512529903478702079723314834776224706331043263294155146189097484272526069097063771404322907017380202351369929436842636483820894943557353859915978349441091221934732042872663685503818439442798530526355514766920356659522994298014468651753607674273475770945386055148872234132516256371706562916965646267769391933893421129833702138904434239784565311807738948148895300100859396887274838008255264060680539890262374298454876675304402215641377170211410386244714560212001267493482316576616222688306080637864254283434974106643349469869114407070226163033026733684737429387753961717023881823656748564714369603115140694537366007443449017294731418683454509173691977354019752489903197698064400035422335083514567072609954904230703716690862211152704099593679461131256178636857129985154826199348282154264602427494695715169002482014417436127594036449490123543579964403294500205914552102325591844980529765425834737606833042814446088633368912117236045872936691495307953677662741736648094223782816076412296281947449269534581947653501514114604975002439852429177083670552670680663294198956498919321296942796388769823780160134656772624514012090131504265254430106364527020220599289461270477639910873368081740131476259670082808865225327688114496703633217594764460308100356070554045867866576070919149776856021652817319899755208988582377744876704789347759450792829807598997668518837914234077305884324412279666473542403213861733378170704828129516653261377836048004999938086726131577836741886410845568464557522828781212242775192550452550414478055744210356039464463272817738002385597754133995869884975857220292521612270372023400216735831849818695817081642665211321957684366567421563406149043239601898366257652503223176447942800232857174055004617338708447517172729729944007096301422154306006878421882309611216797263469351732508223510082065212297505097417591572371012139312250493888459403587253972837388567026460732187323245535436344391316047139276954240807179187040235206938943707663683030708432467597981118728972058623205448314178503974369823745143218509610236660696539427964944065327301323947686040960881595965513146014116142408032625738899610482245359241953198526176329921239645442655990098372814182463654701467757541660500404573994945622523203236529937720517455694083744990814217325376015454038981434790349972176061883886439970471830234136362057740192427504080403865554533506891871619265983553568861642317066057592080740580469232517981402270384281687699852131728744811267811228650974786956501701888995381557386844944464192000646875391068295106916711627615860468217033176515887215621547474849996262663092737457549872747747293146060481388101104159101742485946511800353888698657807205977838238477979255952621237241502112790548556480592667523513292146167865206838518350448325638849054952743016367449728776661619737364621126074613328559512225724891890581092802780995459616690126211581790828660186494419354610874447087421266116831570559979537657229209266556521018694110603531639713567287087425429753288393581397111568785757147122244858558352062141274298539612238833258802269967299396965657102213474128775852984476018726463874405069538386638327666301429192831000666618491174439138067920274672937327901457013883293303880236978367184381206031614660408209265089807103002798334796576218806535055154977778893175724007460638867931830443949052011860351705091400726615592259359705068866459997380793564504940595653477662080868411395471228467333569034579174669251280581577512602350805366117438407393826870992830975392556382634947744166841726299931222370219745513370062273110013793484139456676271890540604096181558846807880146928838885677623509409333200582002870750291915395007822389703567386543617549811276585455640718255153028151299396516755803643367180029914860423897756892472826501560728623575439892538130708211313808565985356099187019274061619983131670369681435001185498729751385247245141971261117507289686140621238227684127826432659721541351563601399412764109487219480776999355617171658227120326403198673698158138109510555089817044491369221118904005841033009515322583708273934718316590263830800338813589004755116326366516576083785537727914168715213180137823018253187376684298794778057336040034767927682984581652711573374310935840331365903299462413338952535397543519052461768377131237875030948985051457529906109883689597142253728423585546040275483935221850454800999273282592560303405853247364926068147049646748630782136573822289350013812266836131104546100186554674471603633316148258978211979978852769508566191652537395428297416486144075152503338540063234601930379237581310270156803477440516166997011453207228801198542979459304953885084709393255117989654581628380321710732261438692314751599632962308317011033439041545167787662106113621811371661061280465184739608228550623551638345574617295319574041775662611810447303805517637733188833031627037978753903355521535458936479744440536283129758472076021967555050587204557949885548384289429550298683760269610070483127701314278050581641481374546329577128486167702506775439807013517741565136023866546103027075815368779823191956465707910078132884072095825490345366853959451383794056868932958478901079258687013467202140509651319603017510464132573274640504947051715460799269671253980405157717389729323419944475333251742093152075548681409056038282892104510997074341749872750571492589487714150807239200541540738695250328890505227662365030089709252748523678873022539122734786931546476036166647628602414122469859861233387901762150506168137510734246152735261633321045866142272294227609956834746219004580282575267746271614352683012193181950969970188558683554300072353586854349969012182250809180991575314909414279401292934583624921399431879722860578206798677922628652354442432121036181779858906783554372726712745870502897817642912886738914035968535654314826495707587440606716724594579767682352906757510596796702615229296680404885811230011091388238148596371140463368389615061046197092839200836796241490952929007650951498302166499388029365277642085033718893937730495175693033195782592089980035414987316717858260523140295265816114862906137884042166077354907743685033242442979329503420359941656953308977544319696835278351815770363924951095021550929386026399055783466748444339996375655457514128529519215428359290851113231154417086485536494837926934764533895613826489776290215128527482002264572129756855397576869558072312183744432883092267068475356628860528164660142686453684651252932891376870360244511732932681987656308684455965120875928780647389212071570872691511698834081626522202077566164251548776422861698510493860417363413509772088930819925695903390006416621726360829242605289156018189426119018261736131365186612762597499322457747250045295920292294797106207348675645598190457566739509415677556846951264847249892323773498892333193494359381590233928380323204725638258520990319682867855233027133202809872509075199824671884341000329785590157085945048864724268899730122814999353465806291650091417466320479329410186732744751260206897217345180764483292701784557992625059798949183586681319066928780678877417053247742791657015743757381596572422906404568689015762491907822094113051213951332762325665667462660820808853460853333085468296008075019764853512509098776796127288602622328580547355004337456976299784464760948565596145514681840296712751176526894592088188852649060011074620521823061589640340500497714758192042316077235504516896897309740521819514753689338630701019981056380636977697296027605586369538693455202281838812180544667623618262579353370426507595051849846386382367751905587154058766251156445910068579512543307579808891983820676465646796314917202110605240550398516429321228621112915512301647733317049003295605070243337227495216641033957516738610379576439832315014517187153220940358886190484259803919546251328039896159988446557112865931627093546371094985418120303653430870461396982898612826422672979510989650775435662659586685934121285489493720910883963003205630921397799282188239928299561706816092772010924448502184959824755841715236066786283406521015468794603285201101004219802197056345328298240496269052658953222513847711041247063364625005571882968470719997137950786447356274816993827764424643518583362976336384147091200718106615009067529865599994173366657413699214742836834631514950643496251730155471871164629599876491119307977173821576445532004452014103022709834882039959135624637049556567980168349571641525417865361776478006320502080920160363300866422995211197198912788377512781646518800448572971473663797680813471756618819189966515761182335069799472640116268290921974156380935781094526270024926472702836395762942861937941508105684522464682839797886643159334464976448142406554281783513787328376687478139693660365759002352313107922659768268404485909194893704330440989899843361673191933049309035526931817151248016466995146159692646229029830507909148282204008538120377380473081698728966797002938966057985637144664301688404990345362020736594452972557085790829241831911076968261865173565214704007322579018705785960167193097916369064421168255004111514910854750686247978853385197674459521932345130861908323556541033470295345320257132110000761674193241874119892435108854408256977703559471577135902362507688337317877366491512539005365355217535681904345986399503239998158981582315189897686774236314883576329368820640825078700172886680145677628139613350196627951896521445717023711767671653822042862350450483154439071247186181572023850920739890587372068114439825140863620586202785233236837054858426911956931367325845619945888476658262723368303843296449140790262444431061407302138888156044307978338964801373582265134354287823259061110629724972876126378515182375513910055842800109855745763372350633167623970154013562565813009552541654093975394510362852717205196639557035614026876107601037714391176088082681618060402007736350624131762858764515120559547601516802136871030534974787875462218294957747666647426639299650082196875470819947139724540570593986494207135009287380088978827284360394832513697986918853782145826631463289881878379219469018745093003609748861679978295628546584080245627052034173042859630564959620197477784177097841076488643264906729282238723854545638332787029623820404543415308095178880123560800648106899289965979864809138127474951741033471297114438593288448388700763781111916912104968150438808247284110428186659626082523585169296750970963382808475987451101974422056104690420036939336030210150623951244089700805333020664372655609053323772739102444946530500784339190844895834728840052609555722374828979989566158240340229556797632599538439800919242373568558191359847118733185099491397920091718054732550144803083597993562796962442694675700277188512461891528625181086718747577343411955783463224485917488122641208090736580497353385605701832005373423714975057242837853045307672116832590470643338434987735124942937234798932588306460773509590440553145354333383153903914643787399226859438197190584242912569420888212289145702937884431190600369979470669570220648008468914931539066368137956402633443966312519578268545598657102262580819431652180231263068138867182143781460369595764233955274969025463083734444096303579322418135061607352676879729126018204863283815548069494244253499055664177443529037691093764070689542010266185250207810494334033987196457343971773458288605731214849399346412812003690017378251881317904999975550390489777438026242494510541393226536752096696722911601768305319760088845563514859688582690054771836181269938764710370037056854421685900754740938981317998365483037869107560746773039639862165029958828267884003221629710172636688477605313837785053356463020450631866223207545940103308955303101985823898272048783981302206070659553358487749785085713507255592936203337474375432503679418207721494362896614735650200564841548727899085357868005741276327985502164006331721681593013873493545198734759674096393495537897350076335735937223951457102754444199862204197281881580560397830605003313063290288783028643324528684221377768252259369841600560841111171728372972157718394756242829311747840165920408115723333353750550726773020879342972226642190643165326648617510956586217570888033015650689344857567279564715939371492607794892812501230721958237041672885204320678116168661756075181389774251901548330608850124914227419843020396740691538393254020464748714548321865196853291792671853708479243574238057692062245815937003501678433164782426212758759938581363633433123735738980982743769567459096650500247186049133822655625528880109512575585219266501648111610835532054551356702062429921473756254845854987034348712486925587305910919358665735800774310733168052213783311314217908152875046134790604033150190799259683278144515911615388290670743244681135423500207646584044994109806070569725426923674756006331851713976000596947272199704769792286855869904093558562091604773201084449228980190319596015906141456719915059015565795462560146153923252543811769156384248071024399424888888127001699595404130754294290528946037872031613521870208682897685104746168542317103949940490626294875484084585001306555810110963844919394134243000890875039494081403278539238299013101664380233735425201124939190384727321925291154446608902423569365215190853813941573361793023881920707410547392037242849490406213572538888305789357788199679911216073862928739759563251209689971301736481809985001712754894022370902551737720469449169957389226083260938363760504341754347562415419076739897713032856636881771861291237937834708469205717635174660620631563935099057763487826306598566329833880881843048925390517627409385872614407119503117596681171213057592967842312148537519230712468707434770216475441405887352616294294336370693717271148792742657590706037080809072816466259442833689773167204990658972616751010305837152637577132209393083042204276218700389024440716344332783301551731532413286078952230396958898514026478458998355935166470216631663299341294510024641826438342828539294764808511077035622817844545067685658178231948541654461314049325824978263776081599298552183218542847844198794977290524224531941039835476899347600238205067779236737353160809932820266129843470937408182648032136183085685644080593902176300488851167299725872900332954898526729886713170151447145913830495611654655672639895333769979104491368263010477183708297118566076766830304587942774695602673921617003996729510751190360540911558315130047769141376360761994922319761311473959122582767452402149437427550294701378680544317305013149332667037426512296723912903722848865332082592465478160161081463386204892850562811550997737800632782702349380431252254417110925900837974491352533019477203005525284865795096303832615352515527102433638450129564323531877556554643358758865123939154375032161108123700302579349123131291407064769217807397753579355099606284235182200331354355639370707410771174699184419063127019211172339370405124149413407854696792542748752998502005779246253754261286876637316157033127943173892796609124184413304339704942902059493054701493962843407885573385074126155226860044187991008416830564635473227369515265076339192619291317171274282331699034295983744234540086523665611240469396571044291388528623851698183914535459291904529182441992985206555659371434934793995810379031157114301672874267818528608108949347027377138059474649452348110157066037202859996731926441005609866815668836930900036693856232642291769457430828057086635002463121186785632405943199463560485674328907004662613725108346769206310115033903932814178021515981083910885142087402953210948855895039621122947305639218142136762225550052528294831451026327571704011788352951253191613867637629446235126171582761173061658361813313212315803079982903516148507566430202108876591116649458690731556710325193511806401887363700913798175453544205292981622788036472242017483844784759000194784919261621020784539036391092554580859166970353265563078116808965104075542612248728517279916915661555194101478050597245929490203579466103363221999385292794739631765865228171546368976268721555422520941937001163082883935947536855979938955502893585794057873603544058706544861579708513804363743834591811836395386814014092257355525728613937560893166045256995433224228895004859566314146089844692539119825173678279864175785214139991125904849075070428181911900521637067402481517595269834139205743725374390253254037347596901576470611630368535574826320492891542931086648306145955244957990610651601046200370957150743279982075706826862041346037199049644195498929355383540478601973903749531913993915115616364570266510411444628818289598419658999656460869325744373602709507330949267365449687435288753180978826078984056884792253703030284465990597123579751411156535483797111420003404065067584926721605298343782023822168829540862957303413699368844420750850756164835225317782674832085985856751832875888953307913990873670382354078467178320029905260104836878612393346248580856157993025776804982561911755397066140414103033345369894524956524893425085444990804877215519227073420417700853311518791753387326032534923765019510008775870199189932831997703021772466604539148059513603021342426790119999277296727387028616294723108199250877867508864055828149624206519933041439537449569398955196647256279145968955844269415938677151827505278194795247141845756832202035961649759588703034706806609156072380754438937534240639172633781005732538634295207480103852220730542597437266472057036375709982904292592147298702302369950870923527579722443508110495551483332377902590325399422837723757000373761241176968685169980407901198403926178275323611401158633003728423614746662834995203240186616933954857132527574516053283854873086317939169899633352954270813193576149406676851891825159932790060880690913162380591392264124137121015380528964791269524620866219746295967883035522361280628716954969130629339953158202426208049813113322955555876973654695964877345829439054871816136212515086426844063248851320543037994390309686129390752409552361724170241695314590931611266804538469558446843132182768768495454523130307193815629494842754239014736689592233986371451417086930207376240716697550654243325635798239746892451546512465158982536466202004111370026654839933623275124545508492411774689650147676492529456473599591650236336752410347079216156011984374399898589905748108495154200985881239167335835399856554147421371313181859749798020350343713377483493736523027030038190948059266837222664539119790966186559986648482709715505883930511304763669058898181276793921060428445873233613453055167910171098440875634624667948928098930508285768731484496141327415844901179605857040564750539984010905009120216221379180638959941170419431126639986252920097079158808299793310885088541556770478055800771149532826588405824688338232719206159295646196561297251539078263950992101541373076537486109043772401953289034009868584270684914556223476665888678727997667671836819356048966637110528625207235804163000883174050839605351004813962208590944394814898649843132009632848221083610915733471923551731797005124504269371371153649545273469468337255621568685512680805141107137056219360941101763505992869739227366007544885937843645916033419225666915214956584419981963779146367077257986097503362831024425833216244269421102698398168074970861644767440890532905064491854574328440581047343549208520971836962141023013032168055158459161689976498470162097311157917108463476075402155598479625818501235233711647516679662716121001295443394494902511536593397586018231685153633984180915253207505612801196045244265454932117686459525940902886825562861766041663056257245139947884539282091998010949934563041908915155916878301477603480397477399558357736926240109557034324773158716500347332409614854070216104960951898279975884337416784689525423611302510773322246338463017798717755649687235024586624544544978409251035273940296539124084543820180708791325063278317376875500817617957993496446332824734263289941951256802392614626073458293495118702192389730109162852357802914449938910269298444118502976060442768611333875620436939558039420887823048054598590340904172844991995486167556704796126347907446934620822034994893304719897767259424563279555048878044455420054785554116661422415036803933102903822072823927140071783678806845346971316030233779639872825124936377437522686697670711262247562504199078421540370354485905126792191443651260850346331115784073369141556981948277164588657390449852746167641401469089274274588451998360598514257350911438716984398521918987565681966408101784753480322448447897487382048585076326413810779934648327791761241648030863885535042454780787077215665130721718806262105724588324659024360946180251178345134784861287238266052069121033768372872098076308927328435351392458893610028656751602453760783653872327949972791108065009010162893135572123831321780175404465963611950092325410378801070250992429036011806839729322959904183364391907209328324228132179935524354472190177432302755552611735242683661113909526467253403380807792707084085119373113533901180068419151486335708728211819824927488374907145534250867870153005975270446836245555701082138843982479786784697959792460175547321742722157715658721745828595089392540478343852439737017934474432461827413513036933206951593075034884720921901863371015289703036520343413228918940193349948992488926238056364000688834617000590096120400177398120235832654588194458868605286101586575814257193165185321931488845377860645728005147814847263880866338813371688428316034263336226524972042946822713774236377187931763381791570883861976688759184576497555521507482804822282307477678366814995280481272607423595034871862583935417167545554341638856199018232318918830642402707011780949692695314873050844192554648552647233911051482099828763651390416175757063038695508972466213914403063615352513983822593807835388223046430417023509976578890321787734433008177203113035396124879940975224169107838888014070971956838673870428916274816973488205466863918331239139943153816914851203125249231399592123091671120510470532312004588544161949956616989547649591380019181854877420397924528622782332347061107814089833927605503851997527787967649809329528729198504904856051552268145191339273044145259775842549534447772054651568581243489817795752534081302942058052504968396718419163406718396055820492171650441160194034842626124395488850490655432370163333791060835827682042564858220965927046793620087467304990765166602613201310672094497968979655225095527030182706149882776514265760578418815337294426077918759270460308228569606947653423495033488725194839797107872132508256429735141446879729293660086908209491146962573743932733176566761756373861263546416924917550535446190231890636915752789659940172350249152339756941831806784128385172301679926961782564185636722120956871869491457320899778153023995646341354122588047327511968381058475408041983034260564451281050458794756299279721046463189810626600469763344876372340568422029362497059865293738127546532327189279125589790457613814741492437585188504952073212634506881019293471064190738341143765496022827895458604028532946742034263214381292873369114667602053824356203437460518459057867933427483569606133431701112080748434800039930461727585959265062925015215022914507837909973838904083020618723390818946204248239877522632529295273423167185561741234063777501787962890166319580811579539717735973356098721594047945675741083719629226571602371532495849756731548064867822639103249037935819898090647642617337176801629893272018318965691169287735704221581328082557154691771565258291889906476632139605413159325305265492575371326767993316043433852792655037375571886031114456366332973857573638980601170832479294116941451453138173808347702294804690472051501858086375774294028962737132175121032520948045997231993825748852010150539518424003606673569419149668925714546374588634014575542051901517090697695279552529342787533317531293683223523471323903865612900756136311987150512985269057970693190221549369952175070301128717397117173872680534897006123308452741973299008915482667862642303825479337621238769083135118529811674690256969035661012831282849590658721959340326423439203461843752733639848944662014275162686625287312913560250789190337292052407800226209806208024813061858272999711254231175516001287520176037726906836111226669779745138720460277477101173834677465401767210973632470071463116600191750612122865685787021651513389516032870939218211821939278951038721071349808869090325654925693922604792023759617068263107082513624504191673455488587784860936896019758161317289754161328503004142949876871667231557716272664882177240932522556876204290707834631095316616311291243645166690722890872081583396806432371873159033478875616456584716085563754585014206684058512969284725374161551163497758394060079068871227350406075286565530206742433752436951492225521899575310046054594169319913151248392354237464987534297794607545879390748639221030232347959163108982722424352800382412324688302824913857432362455190290448318069209319878902499268589442620891942860304768408683027575452205376384219697936874058745509501277595947286094637239011476570528374015269783901142661591753541235913520411991474718501943135063853432569838927495110305234933339454462482359815863877985133454896422095752034971335286083129047334818604144846556807645065075288864435790632492112546389587330085543023404369563390678743955277004119689016617540277479194532898905868822661348503631309771802754856883690642893803713948286265034283754304498213367693012369764746920889619846311311896175748518490647427683897895472828382713327119550152124125052691276161985305017327892171043380764346672523168674587352164918379788232790079250722728077492703432972026167172150484724953376298518767534755249712929716620642777763186376625987053170728871810945708390998296560644206667549440149076859301163788216852886858273137210334525803032568891677636773832847652239195793318288437364308077060221604565250238863362789108414139392271029714949229948605563840636654664340335464984996236944290124157749890264719247327880957153483777067963427333395314305843437743329509609106920100197402413981658697975896920251551751435324276564658942025520923728451814115447638712940466029790912706742486023335784186839701108510908425855153914345802477570998242701807122781365893473556114897534332398415122887034415597790339352515240950915592707469891868687791320629188295382991805167804616286290272804490265013058900379446432943248795493706025157806668585046680986308429371366913406361198604367747200285295268181743406170138525961971961961161104984629934351018020146579145032901869388558110226522763561227218355933579120289764188201845816930557992056801086303213367226718602671410095396536170655645829734567290991503959851611022262888517633685563247752205647121884932385033284622469643989839490436015534050906924918501881899119917031367568227398275690894262321227624283226102937444853105411901516580801971071793475003834328590729375766870557262916125896721569880645346261070802560575324683455603491500555265211870790361079638869536820160775514214051609098496033325626944072895832783810243596207772934338334899271231996351740812560207706748487849186992463823274447295009537411997031639334745620033926037413619369517980302803225057838566071071244082603909388852918509163162769769268490263848291047721277231611361326230084333928476109362063532037679575286666111556103462090925744023074994134892420139022674307149351924427241497903112034649909218290078747264641832244251561672443508145816888157162611970071447339918362906187457326506690281226292490275958095738866442704992357894164446992581121145954019534240927249609473244611639670156763417592779356591012110935547725375246107926087768153997433790692980495555607544048537395586696551462958828673436054241080246636824727662277594968692460403389574246579340193256207733182766688860497251288748019674864089459432430321693117911044851901836937302203757892455770032881432779514499597763172786355617588283342886833836984884669146297127833511598719816336714677089004972876706741545712556949580315112990244674652586948015264964325473331709709983425275517065678257660352647820399426515744811489244146406472064280648164454547423161855088762987216770560409357373380435662171620227191243971867606105938573459162172800751204902568456857846723556204622497391073323829822537316930129886695944961932827117824787485330438945974066281128989005431886560106497226740964278243724960828071007127167544659455593980958516542010989178708756505736640259191581149835242090014007899797136325278033965874589321071305336142245582364925335217411205213070612433967453711355190369957971548564168899757628137842538320184650947087046200580895656685901654153746393207343071607428644630702885207454300299242562822120216004403431664060395286449075783733453995720257305145575707974578750394802308649044310378093069566852850973153487412244094268820511176929096512652858406018427473876660196423185353597288138137753590372820399973621104751571266796364675623396089988632750182803503510925178847252626207197431190394443609240931200546417446600742539008210509417915085990404751153944239331369973745916516947626185857727370092462239551402050434503906348011892103239669887869300598173173548794519306752014364986144798053665531718410724488196612292240469656968134404573889804983982482198847257487928723052571729364774118250120179619249233227851197456379908775613672239818895948775335216403022907191112246044305295266851642100795700169240528670555964365480953164715569112011756849331518546147472141085241602718034582736448073998774588259729275393319487530115705215534391563122248050020954893672821840279574134643451165004886251684913884934821554412706897662859852985748697521120388680408875409470020474404373890274903254605284411885699060982158576681270561253273422361662935713289947990819565473536575763112241008589041322214639932879232149332352838253977781814194228147345326456633800147661255041894871661263483569498121977649193241917060991460346169167984472258107842785510667259648317419458754630638408144129742005465987691955644790564123739938467422347682675389932474708640416983179308814472883642257593032555866900564073425394750253201024781633152031417164023624793471790553223780447589137582910670667652968849097124732067144280627166790167199288228537963577048082236542531130827821439375412087028739519044353951375986560867531918263759069661444979222764323630448192217530563413947253478689890301963701265996255226108714420334626720734935140528273668761744320834147492603016236404661153699265594754850772165292048421943160724747634169510196218772177131740461141847040515620129148096402776482997842343532583586113398818521964325757892403859094992918199047123645578555155293626619907539203088869198152277278273925376932485531961083198743800972189548407010428418304808112055662162146361550023729655163056553412337504820037932176881749331057266107955996726530294774254353820276928252331580466995414683167263708940975968048085717623209938370166807638763610125558042541995761912688289358344229424109311036969829737766541620550614637565471091292829756234437217634881803312064437066805522452604137798957434605483064237325214822311748041663904862098379808177729201094546277376024828116184031571029533444458900513442814178343642324623278594075875948135769788330936946601699228223486147838428608149112715054559613335639676730806591173685252453335276466377909899819105796948285110620139054029349292350460877366452354073984707712880156189398909760462266876728839466248863041664840330218501532639551635128858661462656203960076696908420658402682084530432002724962465755431943203270381133273546029425433818274973402648479845142955289508530418916424035719699570534180402227498015485221664604893968583052566702409058300229534967176547737222804448663584336736371635073262564984523601003036530876304905557248138722478285101572665219793104473193318014451161613213540774654445930688498186363067308362454886729051832538072445924402961004844450589443693009559420935724335326308328888813409378868011340712904224160831299999978454064946458103485106493964866751739371654241401267731258811606035378682994847094713196021503928807797600224976113653213055578279307102362207031310965798864957161114243300055588168497442048530883536470200302714420964196498406040236062448747888738209258937809589477163734930261084777766720151661443969450202232457597881530274413041134044815144455065656380797259936763846702758568806374530149456706557084854632010088546925116537736415771869451056538366686780318825142682073192239815928262866499958784369837980427588098087893474526175598370675608577125600430749609907007658257884732582635094350766287053911911901043132963785311622754209086008663171673880723883021203038012376127045800455242187295200807771759613466290523503581459507357323080058881190670528366087305095505638551317160794143962194144071540043043565342122199469001633501735876390720927758201163591140833215433980311044842136889969922099235354198952949246604839016291878776513784351540607285962776395322268306774223624128068197459692559846840388089191994262944391934439170695416812127943492986325683150869307525460721062501424739911360494972638350363783119999513313680607713534640496091916404886308987239722096752501633908419475637679502429027237699704615166912541612165887710087881172211094723590496646406779548302679271381086943090050624115319161932236820922026182856312690114308690307812399953261962864677671964199816470450682902746604161765130017704225272862513557569966877922923327333147133903220306833648162730791922705257924455580803364504239647793147799064918076654667337534834121917181868349807946116618661463999159338178106637267468201341431251894429592887906956530188523236525010953837521448680004560424332711222499028510562149670340596055013964522512541834729939929782470495813909264847433113023939980945893764297545595851380695475429297269726788421030160561880290671292502169670215850504328221356630654415837301453429432797101219350777261649398876843955980922822535846666363608973979415434088676368535347145295696985095134712251267480349453628780421470760756762279899246013634677070542810105365242293465493924988316268308793070202508259373836822615958998544368626826666819867961844670405316303246855325171513912868625450028700874313303074333744120666336955892469247134818887824032766671894012078517525607522713066570799869312717741518690116113519910716713832180047651616820470553800770963763451690816326898820160922891014819009550905128582775072351661482519697620950018038062446798273949135488366055291976135960084830604104351646687236860360664933882667894673458693136564655637081209907578932515028648242627390578673764725975107571428490774571217022634904975943407810706204845450822068666166528432613156496307124167867857589289126074805468147762942426954093158510268269909115442923341599686339406136132768362167683978454972940998728168034345397658803852775487886042880956734252231174443526324088055894949857302852095129609437128785953225782319406955501918249436484116817091925458399046244214748443984657332577148656207533390043137768907017443185782493522542236068741688084846312451862005948059673634073900638300030071449461480834208800483833776559804404980267707340759674884402829324048315575579976920749454098533798033391971731103659416519888328288305154270277362975516998685719225471359556787464873099569107013994474302775472294091373048959214730972045667393397500424365605020047246294955627234879653212208740005230101605028322888032128891946706597304100440310837584499907881512713097579666995351102930361612480336144845613484950405130216085930709897720711639156661609091690316472642934107797653677393325083567100680999145658379692978024355146706671416050945463023612252751658964026595338828683018466594807587695798878213117583330096414336179298895666910560493396780805102455953907780443819448920615100918773100532858782377950266658799822346777020060047157266092289868457211398979102011545526836162667510355982287002274797551950273076067430546329753340968746749399102923599343128368219054269794089126748824199487321224695089410437830191701617433295465638523164440975002831091998410961701748613360466616533227780094136926177570566754007808725615342346513244603009349739168127579494243041519105879680560675428399483951346461696559291348546160657953229661940878153787699075243313172245071547175089776605389458249885945668697844168373558302218300001801445326593139112261843490118970763372352041225867787892390871008950207512304225756238677029880483787511035478248305776703453302575749871792869233295850376138634865142784816671575198264492322064819597275303711854326079746193357932012749415071402890293828413592057086762643713516810291295874716285207453043166729346183079753389701879038162149965835424269859367110732280327390413424902970793469147801807762574811221144198519399295029657633556468964942694992250296828486793997458221148018797058196032717859405311596826253509499990488995092803876127775649088773567917826189080269564075475031294671181492937949254351983410419720268708038914224796569711793422245596284798714617908970259167282608499880541830106620952969238243759330910476054565011888083814873401118535298700623476900074773976248939284658787153725225515980969232817848068706337475190547216227122689422370924211332053782390975417987340080405314976938629398991038869142644883675431227137284089292842326099910915379625089569288788813184993663332927125593306180264545325572459908299282659858175098994160187233527379799357884078753140286687466581231752523822311421931472345370100189286188203385200075164171603743149311795326205485046095049660055674673560964812191309496462969265166206100075076816138255345218816882956027489578425314830128858280781833279669810716454585869328006919359704156152576700163172592738573856065733723674122180646668640870547951856598171331459415660697249765944384194132971668673008466916266243189303339369278530345220333002986655389811908781742864923423313181145145786161895075111227053398346341408412292478702666209364909895698402412097830570094903123615462781477919105821448756708893935111404131718029215099694139376725722710454315255646258918472159585308604974319014064842975672757072588162728638668365425316153610765458303457975896960158525843193765256365564162181766945877050798440548155591312658644643204499751043711829951060025739501983560449788258417748419923927782836277318356625824765362421157039053937482716823932678056277609766915519516681720966034865424105077840024382825674177209610032520112521864921658866871006691433811670859014076114672021142508951068758070737205333525470768075189169058066077792519871896606565326747088041545881641444150641245913701793616164001063516349001371726526416922553321273341978833497167832649521496059998930626629041796247824494832304791999308618306838221997284773482552572268738543251196821318334262319268567240413980668440026361624136652525964435035695683255609637830801884218935457489043292719084237312885143017045082134588157240404938770737249899012441779196255867675662410070491108083039602516000787718677079470683522076638385329261566946631215632540039992336044375699632030940233242528599233409699683002266598469881228553849952729541551963811584067584507707168077050560674431662081284801846905398426341393521844782264856527737466376368605327679534630512513594954429631128124321471249530728261335598503148854619727297062679517693287326253523181110597952498451969736294596486066043982809310861986367143401909332940384031379566888007525618734189987665033809784245135328956030717869174611340620132282083706475431487159187425158006748655319497781074937477170790089242221194563898653963744502499824379146780527693337261803223871677972862927445714937077503837149671141961841044738704802470921583589096514568180977439897050620947238106541618361502358225052818125245906342722499644392018607276138495327816504411877590529395637545876966892349449257428951690557520876566769227234734559493546923970820289668469576284485091632049220529590617716808606992542012001418422911167477966253653910646714235843906134157124491786017010649416852512936938069768276516160170806916482901278908284505078345197456681929283412691980313981325911448476738570769455124566101924839337135067221615162324662860786563413034267611364290817165594465648079538272945323708152166771142379812941387753316875128663489688446504733421424976304201174893752948866757686621142117212939284539378954669117836346053147836822194407896602344602087588848703785874062279026635536300671743686395347230854218043344021685968682254300516225428834127232166772374029364095976878613526216358351168540325550815075262495470496087143120462403810029562664340224389732872192849784547786228630692342913068416407015619702478394794280854334123656710889118951242852742303528526689598521849069930744116108341021542498650154274146346022474317225362298272072928359073354269627962593079464898243121145609549024282607496900782100907028045273660585596236808015969730926090036353769455662863361723784916195154415449701466698434348137379393338031132131383827325114711405123036097644682273742606450008622761285088233004072328661320982195808508007002732700622077590214608985823200269278913687331720762373189253506159424011402072987183449246291479324973008749459700600769205286129935150539889611936930639633491253382562275814102937305380686505102310307184465610401715135943823829494960285559565382655203577193516091459313260652761364736920562306105808662450048040376344352290885356373195414965412583042597404954887658041987061066026735753225495302906103638990570089197064848155802589939026170763338487912983521909958776500456671495261623439362941437365442848041280676774309027171912064528651055619400471424559034448035323059048636184852881675906378609945167050654561252075657256310156903729706044158450633876306186459672644628677507101037171893390716235477385148867337237773463069020915366874308057707818087902897872688784226665799011201770842672804501691534590783776624113041892850246347196932012019563449342846325215629751830306902149905301728766683046576700136335749710004678450855966186347527267577802052143951692565322639347138622446691826097518173227582078905610520916171475592796327081440922543369017933829036235992617287301552394036168785379343968975246409269612466031722987407620437059718814986390519275109724150682670799629815950383491883288504325868349948394483400804545678490151560826299503678974453728206363494745979636868217877293020131721965304319330033486145550314074803262891435583371380804871338266257497660518058857629508660284012942247031652392608262755606487391590603911543779946789889055821894133189544504523516879041769811009066900642834451192816747613800192257545741522964711833956497521522012815643565389435443360307876987275073054963586101907836498776810355952569081898047698894051918484028037816475437795031375950470591491776303786444996393037620869085322845431153306443304422226739140729698962619012841049571097700341260810559797475815827203358256058410792861020600972084796651277645358070655375470206027664091149677607588412412042371783330534684482752640074238155565209640316310819299391538574786388142080336190880783160048042518112144542502802792606359444864664711063633818895343084686126898964767790617972731931692922187370401287038756193107913432769877857473242908156932829750946503795758728112899354452923443846604313877538685452460200344106190523542005944264027234877059090589227399074570360014184606328675753949986781572581415865648923457470299129583512397011621593909548510032393704398057679121721899902734818443979110533959769563258681319694513445133038579942106248565966061486387737641124293870582139004543395605586918487147748453421711829555032027653360813320745122816914227371178810904990066900233778499722657593538410214715598014237215720138253345198737113969640870638982311391261611123120727234721948479750025582933648380123217238024753014343291310585904898223337349091786957280282479277385151389659106827945496134000705424694872738840656507070310126402212846172843880660566754531958097225400402350717345116723415682054059186019572100417121121158281820261234701200161778943482657886369505533855419597466334801328410288476307214020112968486856848917390543397853315379954885231068504774946421206394313632967402000254206695119193977074538842462230504072134342398627818246083030651604270312944867700085355393557157411718134152498115244646127088023174988026349478678234671687442405543747932467744965465568743559618294999630815894327295547468028982957585349889669833974964140266323149272639977175333111835334196674022536272900014287983513553809999591879927251685444417485153734952200734235954853339953420250268124869993602604947696073812719310669731680134561534281289413726975168745071881631013676402732356094356927013080044845836514621086955640236508251292210444473813251887583747807755722907719543383425672307484088916278181338868781759277928224428964725883021969031064538799134990044982285264013829792644428859448875879492534929703427559182473646550788734992464113533967537597121707223553034866785288178670324394506655050394722231676129085493643123842318586628315669036067974709618661958706605139303559339037761330470226789300742948959788967377477037947330246836639578831689381116928178389374348005327457172809091461220835599642503316511163754780731513463489616862788948611983439595910170933230925486742346392117651846104097859286838316126781002518825596322579210393039635971417442626069373953328063824436519668206521233483666660772948819525688485273767985605571936161814466022495556089021570723683328657510481151385123597029996906578417249393009582713092298895644943104358076211290887000165140304604861753290783258352489230772321099265595747849010231575154950044721163858545182379911851097419765755511769940374707700057595273159751966595215046386679416416905685955171008540961439976151868544989971224850985589435175437746409318401831219842069082377181244337962953808938975109703362419252332909959370710138043845947796601546348727096158252068187298930317081992706231410908799982578603198730703277355761605380935688940580292968521331946116696311168520175911344018557848894871058368714402080923817644767616418380569955112066483883462342665234449426507665270437863126625960834839478906255487821181561009304302483527272515038992658266060923788925277520103856510651894223972032108088129290157700174956093685135502454661496974548069663891985459639231296878673613591252438693677851511812983743231664897270036800020829310990920130797036057019489079908996854703056937252808749305811942879662887293642350476032590970874738841416834497512374507728992175425727027920168813199665005597541657606111135480328578207792675601558388170104239763720449124026486848595898241396211198183608465704697037946093153643014865480976116161911701906459130605908747119676469960831227859653396673236161813287629226871351596882076029268290499109411190773263641824921517533745113046991925549412987291170268008485718689074605985610611125164865946597259774116552107619140652365009455278225319657739654810254571562611116044753899265278672172788315381096250825095691527523789351919312597075575464485961836874394346178580521410183857117623534867274898775370698461567950443885191145371289997715837329291950180261194751738679173650034766543556368594708919716369299387106834356115490595431375033861370887181360847079282780905253723103347470690447875560926017369117036779900617258857820476543504159300709228392435275862117729032320217374507530702296816310835977471255236497714594608091365415769550845847429072423455243320400125179737766726719589333167949642968161786277649138621950873928340173999056604078039109652485536970711329315774032864036516916130190846200945817594701985896908173595128711765227683708893690752626936255514709038017570403773143185937011909578994799093243202499146537502962288393040590183998290015659998616344173277542904516850380119877991229778749794360169531958510927151758407949877620810261314381107703810739001067506987531189282237468878614293831711124015887937418306287391820274912959921949517650768714276887349431570489048688633930691469373966887062783539163291596242537539324631317270848218676547474648943421875189903991786460897640477472471660307618846900879595206564464021920835290978225103493132579256477092351389264612300866818945436661014255920416206391548706580962708879976141469476951157135583238526108654025374981641036468116272824951775620905350854201628850946230994192861413272907904584964728174885534759956128556764171882917337986301583513317515881664556287499694737323157364696829266198529626509970422365413216717439443433018828905603716043830355801344705718341628158637589653805046213570273547458730256300632174705554625201250415724919868066752494288242824038866139226019087926607362623492424060047934118458013527674860683325680610360635623722153000113648960539492255279683264466131438559858308587546644312047094001869181448205293979997838001771598919584658448421868769138230316415220982331820957202463300043288883817776094513549447066232273111537472092679958744462045257161349518928829479983497999825520670412783718529257956456883457797680152707114914649763904598841470236712195246337190624896532237016295260875913120793177260177586341524388960905538157861479262989710155731848334785689595482463023180419068761554826715550651402970061864549318421555396145541678429054054128421396400698116900111035410872052519748101881069944783099077671451354180151612468799535581328189268597350278441641028206645923803003408903324051415919109681432685936132378098784336431277915995022928387023977513646633088449209741750402733063953432739746787942615777597540450453749970492712097763915837849026491086208504096185593310314002269780755177936432045626723151018764709473517254774684872648904115101581650903468499135073753132417456044035101213820060839245125271630458905454627230209472197182571186919955185415611394190155055308726973692292715279318537951979502794298357713786021342004025388228884673528231720006870885427294636172391832385650597062489112831925500652742706387522424264576262704873361625677928267986967544825732826730248416022283855946822104133446194430977182080497916104006917292200550334196931004472266809247712221775842949542984936054912599303176523076226638411255066640864107417161997771346910226514162189202516045169936551315038009341639760608223265242114062751042615287837805981310854994756071053041775714564159550705279918444678405595836611136358188702827570309936875886503008634376968211457918247201497414418829302021046431495302483677598926993698359069696806515343852305679702757761740773351507009872974724245503201798823613078307926502607551843629933145194300566687349621868455721179803825567172714219213661875835646888798526372761525049095115453824839782671837335396230933734731306719814026091997828920016551900687578915584567001445648548335204425613338803157211005732081798454087730380111525415044827139030307736632181102275548271834085211619439400201169487298369544940263549440629786844172296520041296406081424082514920282418038971505315877931243266297445933839511137397893319139182711605460608711243038745613462200579161764987784840513383436446822236534944916113934114588091790358335174585622272277372938194794878598723602424996588362523826625165314558742360421513297084852625657372199870569611111793918824685759944864112043300227667819829452221205855566499223765565069464847547397302666738063609485628635146684579063207138603220518934703915255497726782205029562098742167175560774344598212517186129654527165783351133461151726714491136466468927594004480421819436198275811569158564440298127359852748764430039188014742453032586208924751606423627528473204316001628667250989346646183492617441268658221399124650774785399933128052406488453057626253075442928530819948072773589513967129677411733500166755221359763604921812475631051954547530854823905373819304438239314231352212598078548453469517283099596735835756298704668873685348444056412303502169638201813207751629287382375286309649506983955153687278215381361963192230178049444981693306655944090128412686480183980325496829032166196852029625803430771141880076450374151502459216933940574624641690511085007467803568125434761657104419966630484641924900500349789187908554262308425450838410325396964203037614020174132648938954940823750196249350544537742640790747563805569025931144901309283126494158196331180486438704431651468437404891949466320609677067799673614755079182603948258887976125561831771670308902510541377841100246188155459453334467722214869972753928312879953907086547278489604035458241759513415426026204952739050984648313968188150841848261425510506874090357261454874690259761436009160539133046735168955714454714736795152500819903591531086237486704881571738795939584350659767446617209848562814837624103117651558577435083666598294985178135831956929025528194247271352122035618747586278319556494777338475130303416861917193629922564704217735202196409395822326352250698913315605419370530774480269201286400816630080635399108114331086575206985542132699948072127040333645059467461322837783428276660350514379783619314017874017578166578062604147560365543450063260630568895900978760117991247277655677545784512225363733301998570546842426059188133606291662934901255048443905832347122163277492857328747504017723688238335994081854509530650803108054427220508740748261859947683843465094906238954395033076106750135848406547046531501792676291584282670909867105716341740627030096456158432425841698763191740185377750793644018890987385671071241169190577485110263112234921914076502819592358303078847023078759291616521036355719252434547634859201159343998996180920027543436448352893882815872917258571449517983784819142488468895419013481197101837046306064989268514428293703497179174494865550604101665889936033023442962694687722166310329746271270689051627905438852059633654202094072667654452932476646943007627778286831836416811591792283900728890232298972965651061224147618022627715645293978478429773301470745794196792566608866200477899855857838203999314323942618837221123652736922192889726820089923045783441483956346133113660959746224614977995166104622188753347630614610139200419218626255984379651883277191864226259510954251473644060490679410153076109315832522707442491106693213711388932009666802191389051330086401643192572685890420369810565848463389661876989344110382308419305930721721417547798115027087516579528311211326006347032402176956101208965116892571304005952571718273244219393185670816855065297722204222694000928174812380749197489327467806879480787923037411660384785380052969482391186680598119224798220782446133860909100790428781455332493103676203792692278419123764449881236715875766049570691138120782160146467512934333891887719467437061096807427253907819088237164692248512705836830050657302509346174062415174631237221636564293832938370281503187002016913946778410850965813198177470474347607600297977605956694869373168909132214897729669069169688387008064286906587640671495479675223443972667174218502333369730624638209292874619036096684922973018932484020275060874835112533794625113022257394325003999331884277208271863529853441782465035887036360977518575274713770887944636705220036249719802493329789378383662349466664553902635430691255991626716396193631270383609009176673374998269672504419907834083252754445754523542302730761753137386016210118111692840768488395596766820660619989075911462416287507691105384758712826391173148912252266585191732818638952625728110860452051433519033252330924485221325530140658162658362035203708454907841979947463589880851083695993517761066345084304240154566077752571414730279357827251929618731492429509634883839625545992436501638763547440506099352424775918463534237702321919349771981560749631288301038666194349164686098338202567765875195347895262655487852065243091533601727136545108628754509097298199633472179884163569769047130057353811788482188393829799057822108950781091066671069743172248678416476500373122517270053140262608273855934496847431699273101157189328221692064697445381070508821121253863954097453119094020418898115351543445260023607946444231878280203018000020672188139205928499533723421888087912891110198936808063141318694322679946987566154778186451316858776523144298869112206013749722096273712763108189172168514384949161426511899400121269152438883420641343774468045150098288003129576790437057174480749626318087816756731738177657352458500241060675206022145148343355769328908878164352907621516500021471788759934349212935374546738518418041906121729324026501173372603401845689890562263452421003925178059039576648259001465853833976721960599597986562914589070113089736459222443345545432459146825107469134498381650887252401304947601696308276008136856146790683015095410614702247319290078601520348022778726595804383586416648605266315405748509982505805846951691664695799758900351203208480713042133598927693421321069691528917597874503769274678429373119318493833059366147994416850721958671050015915089155348246240315922994488322476433431362009865372045871960587252787099212552162950567710240248226726717465875814139501802364821228556812730890027069636482422971880327751122167165402755589687597593039145985541222214479111731127910978638446120364163150301434102992541413408923427759411040754939383475149484037916599644579771728191186038314296002099482061913959242090943207536580897578426392668622677050137510730825262985998875323619503406200057281026087871042571285082909329492172417655778011275844778524844622837624891841587886938770489017085469706639185179231737286317875918835852121407855627381106463450281907013108911961951654539423514960598572750242252238108988421876363496450621497753410997984148325694504417861895545112380632685246179581729432579709247242645066474663895968598120478581829427898530909662517290719599631335993773553155019075481819792195754404070313467401697164637702612969667351547538289752250290228879552450487673178131652571666987826992980849245522999468810158423385050882551137408968338764995015074352998359102289012494832271683044702193417155373873561515727319445794253236531012130287948645538298132362361371474245639280448141602650443164591885416268000117924246498653513750659129019295997417352181973694041911082819334887498145318675219645769833994800390948554691575149791255964028179816686922477132785756535630624317420399878183019004230033170772192630719739858182805832962395743261535747608650465747512929589836683606874443232835681574332968745110026149949169186758612763165381855119657186774350758085340833567783479414808680908419303686885818478793656481330501073844762864907184337606940983842868372949563487711090118553401774706375042383409182855658514138566477450843323486291027001228865154001795609203243024331040851837646238914510572871302709919198440498288041545242565288717928741943415059314966623635926238165613591954215965593227300368371423910436589289558553485234384966203817060277883514961514743720515264196994703994118359966809570616079558778236036088506787862676128385024368291645816349774662040387273230285447148386965188813079961111328395544101429138943410500208494376845216237461706123819058691732160569831053893135968030968355509218744860597752719574944955033063206368209687034450952990521003643478246576815386597002472002987391361837369729176463490496169992212081357294921734725991510757543479260384269376056272907260363380616305775298608785141140756326006286497313370868092217436454474077302242994853106281126412245944874843212165179076540653352408509948229334279157574516761945252964359801280819502749413568673150333411706146750201743631637802415580804254475511077259122602586041514225519726816927989394244192192989955936482530306085650620473321423971874702116217531705553820779744659648722754905509622426772137782421981238810666842709561907413417396445179882597596779760721086966368890271463754403398963714050220730487163362536239860354104126827679390359078240183176877239998334146724470893572158892244814697715221468905540514334537914639735830627623073893458820303253177634177109662105852634187886737452412274666984741191721123576164485099674305927049761617507553725108838363232472112397844235160360649515926313863454894214948213013307970405518753988762308781527389255222644814680707833002691485486137497404908848255465862280189819664438129626450446184523600346377379653405209985487763567892060924277694005374144568358357377587634144866535689770130124478812326537020462846133324772364387256616785238573926075192988323682888537323113802780788214976990785048439697940037523223462921333699609013045191684378261002853966388280354507239924112924037416618039228847229534227527037324181546539212702203764364500492988776464049930586077955450063602944006008306820654612587086636894845579802095786047104566931750050882884920793913927124554569377603017057378118097201199590141332239218433613586662704143486045646616543189701991453027277993742159633419478893045372138803669527370073928866572027805495607757434633054622699892084146770097906641353727338325434973875719018596859780698684865012808340673315057395735372041636154948476097373030287657770150416983011299314972820284934743237596679317380760765566596663981989753671257949830667392138516643589513498734728810631752213144653867693450066964183650204684940688252822685223619740799785896292397159352315681280163474648372837262542191451910809257981972303960592545969449926261087479237587307442693063293461329984473833217764652859845967924388672148048177391735886334558787089610631991246341275496458095436846233073103652850113577476893890620794101524529698590121748792823374804440524206765479677461072609097616966178705346727304504739773189877400061080799648237630965141957067130206794843265868920443405163732875737240740859729539537292147977057542965662962974273067840586663001955749535350254193902699170162759365566501330680395559862611257237981347867233804336850093907386132034461599795169466095847002493204720000332400547720402204454420109968429844353060634775872549629456811609440321279290748918539262208159115111835979566834850047626612530793954455373544348045953744328862082882509438000070793489833100843437251338174668535321091110245349309002097911218964940458874184429237652328486536670355932455858687575008670919606093537234223571535414395505144076826691612161457266273993569849101418711077262306103691657512362923883801319038774887044498219064579288560661981936425177253733318718566120039256842055684760680897655808398526998262046617829832164720234200416357724400438216091197953864397136091854841628857843267273663461429570761362238308119586337329632823402527983070510017004300864238078705085944912161815624874197891728077936833356312860736264558678068273906708693192124962850094011937091874677332388875492303661225819924700507202865151331807794302604747890223451646994386418556058573115735628489103831907565641395118249863148652989407844309465030158854582206376419728790942049998787791124367368401459855625390038292784985691378595919553153326889837530013793460278606389659670292095398700151985893932079698020458287082073977629131079900948775356507178969892959902651384268983891973722911148790018292938913249591120440205933704919413652369533694665848769253560090763224427211346351551992804482094865626448312550264938741979848549477785965142917073943842630750657158376054691839484123720045003052573037179443094486237583652190995919618028322281624334017205953364869331653829094733584619190368610415418630546187184132330565998704765790660002642569530288905551275385519967753381898994174155740582007844277430317923403002800253459815035645705421297300985141439282620523259505995951815541384703836159470138495108087998656591867610543460132275818370558464474785392004110891342076247150923575831987473726765371006321875808660169960807747031809047933416530164956817919408861658135335970410875905106527127729333720650806535927892715687636417539983561387776110207263516524425191702504990062034979750906405484776909138676049069120663763371445256601491867309465700205085865721779609935436671441300188480320559999712202244950072836204906447534536934170418371381942718115490663227043800530692302136816855426490868393693395734562599300557459991889166680801176701830670834082608344277302380245491235274846660987022791032952242535259718723739573224499461622300470850982622796078809624654671376560845043037441466444760811053044197791506025923813197979868600331503461182213807154680733209170204496606814647024884333902801004789083142564105105322783278794095862446952248851751996552224647198303684351297003244354970731783099977747053051052920759753652799460662952612441565105549864361809433355144350300451629493492348861624052753182117797903192790338907101358630621460099115560178478994171731795617204976710467490216861721406531922583568370951360723041369625628686228877404627877101195592702371087154156121967374217360628928029094327276289547408077052729402600139689531362914419463045427360274111290314789462572410974731534822640803496343105099835723886223810779529765738128174977942352466426133308811349779423542624483579793810517897171654360993499275896197478540270231566637108956531572689975964661535126187135661332892314457924457800543270003296990571763893636401480080796649822357274131419815506517361624954040753292487896079272172568271578811392084035442667831285367657682204972239114022776419978409310102648778204007317685976402330572162498630974249739867790566398498644427630115590409974601664371722161802348570175479067570666148774602591066343503619856619364575345011202523292292702562659244993015414120906094467487403179156187868029999355599398209789915817417052484178875307255426560786808653613259306240090901234037516148369763729301950386729959365652234232295021075200200428598763751423462199942903076527997757419121215972304584468784760835562621881055695440583192276421998881383192900460781046424957971865758764762492101929741066340294373297021392852158784714366844949601501742323145049601447993901830566251900550562056869771502536763196875092194099238755726701221003573735733449327543006454720477132759426758998596519757744549336686059655128366354858671799761820797158414797248396311120243518508578888404567557976565200863177372836595923186307498198168735562826311552414360103407902159046903018908551030508930885574750018932377866993983077488941765159593590014114070944992026746534392499193466781534353953550778270721685094891742736472600728429857357425188109577431747670342612398099762419060217908625292092128862347164411779994025786331593280967466832889599770114726545639122065356554574570717752956019111167463427337523968937237616395697165500788905124388415118348130728535897848711229012100059853971306324238975252499151586887122399480306821061668722891884035191850800686107955164727437192118527218886125605317313888061699973792532669671457367568713770660557273411528605251172712214224542196187051172881344647830515043352893808060974710016088718591917197180827563819621194141219515534724885104731205898165230271498836944854732501308487446348769874173306243315952426258646537299731456885223252611834120852031757061500310249629434422144226122145548581378563751651830488292460996006070137548624714877574911427603269740426970856580600266478191027024592944417466543268213153491090820401097019086459906170296868197755118261871482727655484666030842560270262826629128833261843880908522483865418544135749841335454563621111863702005406721836260026428505008572744887028872091546045536715019295433230008384284417824180038839211800290630302245021747093858404237591664008101376432946609683339691652157060080937020010536415159159238338416494052553184802452483845067223537548677869724793400207675283307688811220599467638346286366822539640903237671160297237996208265118686522320115825261233381248544599231558166859858371615647241782570084656330793232848260116878861711038550641007323178483319423127339982869121417595285874269346617160488640861119124812815056818991183705983828226095108106024312070193302068493177122217113096171356015809539681089194529801030558571534209297841603933481794907916624512265555028084300737259297912371702271850435800088109274097606859063232449100674730319571371250975751110708489296782344108687097208013061630747052258087275547867336080740884444293491592610159658915246699086992714530758645550887298154152586180941865088420700221200994465592011382250900874581897516722894711450834389221878958968788266009604334797263593566881637056951210277869847455836406683904793607011757593879857053087093273503311574816186016500419349230093899332261169896817093121542219979222083184006094936248836692370000783379104379635281616758696999715254173937554869673716196180114590929660134776198600111557758767054579958069318660773938478091844316523268536134651572188866063363831617076134081269578623005228272027506419756205571235403701632913280765631659764210484039861310857824718266978290129486608674048569718833414826182525547195334934390684022708528031845983603062237010550561610771783662481935109157002247295021864149512342350249322694253853639400226471406193284833755068327834167932201781030610971894747618686970500944507387128371217160435545914506206970298009292930124915704683509967266936355178937507196412645886378941128958052170382499084783196031040403828948058358935243289285545686992091634306322114578243065613792627052125756925978018511472965384943716920841128927499963922820699013624045121639311537883683229309069680692546721055853699154489494427444981660272166375691830433443117321186670173856355540107268415463313065335274781855819770785390723187821133172232466121268891702477954591652508637812312961460937554889391744592124380079914303428534401428536096100941919202599170186155081280392792988110838005819392460754746795301478865482610561934194194860599142199735179234871953019085779475744923560396301000843377835331660194040599890421813910318318267738789538054631764263784316120058058862054758517968279866532366258081945659417184540968437690740363216760727572513841159963954422561255765610491486992593774671017876043914705137741960406971705494927167685083329342720414843545387800103754972585318498042207070469688535628849921488685058093959301490168086758566354260606999556782069117204129210046750223969508131973023442571670839389964002303414241677733523971541095387237052485356138219882968496748209618064417909533965732635457876355976115913295202181044768770525839903257505443997445410109366092205846976468489870481765064254633663938620027690923501919774232286596018199117652300683855906037074751401954714030534222687488456696463676601399727802588926032959227595654252116724407736035736417308890077964546808290385328606870787179838041189685167348642109024108036852715909381561636934557204293272366433912830615278479749845530928247229909802401103237191842816644248602150225332074520657282804082071813489406408538233077303218332223682034522153579669908983249771808289509383385999714489190302618231832641787466148130035526079495520895516084795466922698217064132028174021583543834533980212689381886334717980290542717356109368760195213594005437879517239894532450360275511162974923002925742498132776826366377849487689638882053887339208586923572617353471201524088509638405572101579987237891411305289653782105235332431230295821479664757569012496015548351410662116891784056194069180994839684477267530231188008043963268627968014330536106590949825085658871077764027940461422426426712203313509384407349597038094294922088974078027671934521148295435529403316800878823946284210411561158849285093584716191811598941501184607960894027015806519581009331811712712571081450723818103887637873723149716433620634672042968988340380983947580999584856629591788286779466482036564591500503893117818357478654682332764079654618703965480306568453534214898564132170514074417497137729667393552860900517076034952854784326658771919480977196455512726706811487344761345316782569506320036719896512933224496342711385459707357032222258690069998100777754090616465813418012563918409612684043686511629705201975054493768112716351176764189369199866857431092290288163200106198937448702398543799423960026114811380973346814942676228208327968563956342516950288545387974134510651419456021998710803759107183729734663204438667135451157823711161126085050667769229489025547364113988353621276399661754205988225109197236676658000609506711663122779345246905224266498280135941707491715049103303702740842593635633605009453746308992440005311553260776166184389818542519931072856200449484665923650667369616983941239513362520907335412062756863340944076790679569929501773808226198970978381640774330053887025215354520459586306561528223134404496242607196748457382844600705464710311510718331429377054776433067909155662021133938052212135433669948079323457760183049531532517142347243152445406087734104058544122025594758625243060868497661979536460489450914538590593536799727535671933951878532147126256947076016395359917315220056913732512356325769043330183791157417457724040874451580579355542062106311647714985601756466368817687247014616608151868396497603373883489576313518905629602052136010841860780631143941895902527100843479919112500478842058040195153114042963359353599993650049887266678724339461656147357314073347366834713571391904555483350560338295159604749510892830703287552716809896811995316932063573824550461011124727433904168705033731445914903480657591353784550698708597815727885294373067605159260904463742034967900449571828435281620824598927143148934193409104255763887594952385315923288618756387637592032842660700009014798699326671828821039557592021225928232672169685471584726845565714729388741749058001437546332929112842356948024086646235620188860955049485205691122633475165481981158403739529515843902168925398227634721495718892379950594602125948376801663384940258880216580288518426855797604940036780619512905562053142871557273517459181890867225076983510766298335472852081400283792837965984893244977725637801916327435084615703353359513254626611638848819903565792053571240876209027001434571096860125695012280946434200572653522407147384445949585526505907539349704415579640410128495454658871687015360295073114426045451912336759392790656286266188438044626150968204566513642026942777598602408314018882618724177108869420205144941417665986470177928705323583269855654402172828994605629889706384259375710502499620322793723059222294218770901862759607041739104638840947714113784114745520022538618131833691251302424695431515557889799723512214472533963315518378611196812291221529787976395289026215756949584637854461091252877330017683309446216700662459351412460099496795363379064213456925956504900226428754679318671942572321047722468836908918716634876407206664699570140604156523524091580358455070303992627957523384510560860414468021427216189698721979662916956456650077563414533828110919486335891721701408068996348920116445910013723123236634015172845586714580463534587417891150010204779463070833325187581695344105424416032080928732566815248234901833245462803380315360706560495597825545780786577796080543272043487406914445844578899356110156315316018512140724395015662895890069887732243578791783781534695701511364825532484581711678451214301085652838923282492009894992560346729835863249383918403793836693392109333937929348485137186368959297753839093426534803285870086066573043943684925306113285340224229885290141285516337650279302204613989596354239868589744458394197368740656528631984592203962210077211030639325363731720242713696725992898566840719453999001140130865259928920269668782185948752802278506617201832207797370001448857169696629275312421737791202662866235426755775223540628721720300932356045145420867924730154762514255460580284158572409239760653532804261765654967521208338756114445582825956452223331136839760215407125894021024571386777626646620441344912505704148557218705071071651510367310495351471537757478075999956753696442550211008340567897450056185222298995583955601476554747985350978715964731846739975373956839075431591576373248023474863513215117823107511630788002487239145289936155799051255807920830226395182439792332847761182253774419116350410410468077199021160653716581926331300968066014336444743213382214577346149166403390928058058098398353822248130729992059086797670957589275212733113987166906238410149051375834861655862040268935251498346862470382123612001884178716035941029272878131583000848888590068154837437770473510762596714471715393097328082585624456234301195667921233249038007717747678504267422554351410171833955203906633976659663749065843539789471978097958819464761062967392476055822891793449377541248624945435878569809343803483258554146995648411204881441054457368665434946893440160851276198988507115904730795597564693798992862181621549766842295022026050175578919463804580778135839708035283945072162931291928216586041231083545055536924033838092328003201527161984937856747091004446215218168875414483078593496236911303954081233952579217983514671631847783343573221943091421167843612698795056062295172574768959937257389424180214472889232403478599031172342540131671311035610031279334833784174986438589384729030467118338894826368574616199597637440914232218901329310014172723572782995069090194129316114071847750445094156818433506502561706240035328440338268115748760640273460581056992313266406748155702915657617135286663178821106172790660021345437188510455382916865450120363557351402459425446879263446937406459228526350400007503413057067283898196640447992648419086149569927216582674326930733730566458164004041235541505385174777796511607442788143864864606486288121854446373196065451674720112614143066219691502342320162214189096448364574578428589230726636101790917203322483773481844578896810141202749057769043967303470942809212782594075145663922715488564128618010091670610967506158261068995875727627326857328129999311727028106464963337826459077127802243056440517738210244050349429441031438267757434728415283886310171978436806271524131200411115768305155374428017533371820481010860005966254550524312805539876179420608951720459285300795133316913446153762008790804970158576011602439085772618750125976371527061202518523182881778367130614008475448783640583082707173928715080472160468702915666190142117073443685537968245042337396910758626983214694570168353983099036661249518004319136171083154665653778906753329334657205035047779788641173705020998398542016501507451782465579015047884754404801316706454370208320226587810256123640994851492184928034389996153421258650356610952640440171614897680335209737102057281007242208834880644225155823286618475048454802273156426787839981170462737482074027966266761012600584829214703842807686080638299741779549620080856374561673627859852079583847838831336854749208115081489801288143538743407513498939960434704385308590921922600159005078852747977943530161880153070131378046670745521907043847286912637420714820239887557770065678717612115323988763459228081656683739580812008488792947739677738841589859718848542626344029514825204965926318473213865425968965751593076713997008629646383783340062171907153491130804686997927141930739032877785414272625804000785051922264912312337812042365919074455512950415827318402146058079947524320305576535779379449111738980702961512233133328871977815388338742091211898833387950360238454389513610810756492509687592014311431639138070460929393641221128767751326938690778152131610235153805597289486482576227865421920078606780563827179435920035970013285910991947067643223884380644367375400708633968705745049743580812839430489636896775204200445909587201192680982197188611702897406809575436770567939955370927515928431781875123582343184780367408586797253438827874404806349381716712264390806142605102586259202733007445057222643839428854235972599546694915132245903113383968701921442405110740585870354288214715638207141704032687879583215635937678130126916706085898495573441884581777237682777478464954622434394625347299618015542758501446180645892569158872172689083769584445039569511538782278250639343780197802331105183845350040849323693661050967895682146414694567870482043987064948967243586138821856165823684419507262608822738849076068597469405449129949170950930473447198402920211346251711474694373909589349910404350291483835994746644815658971799566128169781996594265164312087257532426478202260277420183283284640218632728434352512422745711184132903892182754675052729602526723122032844247776649032148036043535920396437752297542624260335648608877600683448653736747536910064148672939475269885253073853149048666484404157589591860706534134346177103278574373419026158797527316580735718654020376937165661212105725555996746224321063076233032650474962930587304198998674333844496280902726690938503128248611329771150993390885633837345876081263346257161191718576951238890937623140779196290338795058729811146827840746075317384626246930151528803243448175765548441280348764149699151879276816212320168354099852043580614720095466676584526140132940832204473185128191967224901997228995125054962141605509587378165963818861447625468031243639517819081537136912210368953444429055592385035352535799537901469692542180093735984635878407272679503322454627204773957131542480928155911628406294883671128510250875699749181494952912746414426378749596517438429261468612152536688173146381309096021747249395699019290613085157705991950458986881573373697097379854673286437282675325275268462660449830318549241202292367093799570896216261322052613146008359031391032947423866483519121394907698080921167814636027659398400075500008548589252368140332959387341224129137055194365976411941518117925043340330612628566838363851288551398199042625888888205121946720853544185159247649656906823596699163235169679431026206559389691389737674130645918404449209571830251972922064990534554173292207095097881394950321425122329234421705813259810357809064468914965771318315896711017373762305219804574670624926496375779278875758689444114563803949217421551423638358902717477286518391696712320651695022365222194714068300663649004328975629945347291531917360893302404864943756733089827039921127436812182502592622647552730792928841164986114772458538550629842794797269234423060819408637445980271246007792561693468941226655847572581150342188578050019131505018701334970264417608465760783956163293031215368719400601830468493623419415814001546806507673084707663619600421461418847731674259677674082966677099225761828701675980869771023792938100820333640639114342842318006805001283215379566195650014634881847542611222911989906044188587049878543569841432256698984532607948346539795281926745821803229453496031195180388715213332531456182888652863945855422240015531209489506947715370548470950833278492157805727161968849560963668498028321554387357283762135602034314058775291448353642765035503457973485161705899455079096914936717160711765933948127574045071596037003676189968105629479371264399306341565234644365186867419712361171946080610457185803641269428338628128083139795272725304034665768774295264960775449317245623949620502315316150482045869873929692528706311536077762594542459612928972465474483647165917003744278415338112863677389058374102232524074528545433374677345553613748908798856319570441330587116500564253634609887308621742042978117501066532479512279901677286222871411466118720382824922857543763298537686853206033309233386862341360760359356502788355381454204632812888679265291180619224634888009050427051072388847840126560490607444471544849917972425394315029818846616994929808402731246580264055495464063979523994601558795749936228115642362235105536427456516391389507586559454898945708348191641110433432019817173203568334976425764586024924034890478900173872712091105406373560932625630371192476556984202598581277833902744919823720433777085843504582517744968590166500772778895585454249925924071499948252266449022715703722684366084424924330331269059349782909138216273920640098575068827142461802835751848578116772174686126510812325754294059395017643024392502801659918065531911680269766212657491583938174527894605591589076551794083864668763659905394315792487514693524196498312882761718949379714015905238441314089986393524437260246807483970633746956618980235640731235974243453051254078693920736480543398113054384838630208460558354032696136590204292940846980948592215868097408345620835224605927304253322724458298427406241972176208745709185591863417021690963533313077891190142814023073852788392082480494919580928667836274402694346471451405599963780583846920129490082564456564126366594754373485534008145930938007623027955264474533297251457674789959764023467869469564043019579068543327100215544381720612160504763636316345014978374146730515717613809744673059941375155540517367381113375856312443637820489482082810246322991422196993275139155313975277563496387750447352799636959138429080678296425576670122926554987856921135528632401297051870072956304143476809268289811504219035081946297869880460850318850000033429805193962969428781572419236221410666867174328741642164392706379904161196746273621673004547211224442980831641137505074196472148073982088221006542207636914587542093609042656102114844464801699079845214609003489788116811756383368482951299457842087774253054849394602468160817790395351169850039061960614805241670395665176519761197676376622107716149771367416024952646511502987168731903335602289189686443133281097008901328177432216431826407866514510150146489108270143312888395532038795120721993502491356580916861965090610568328705689112557552817158995964209848826633447110304694914268301206284925975629644763475843221797704889317382148431550068877018341053889219147395336510505134552769354489472850185379866933281002626093639463264951059897449075077500741500108951997590664463527048073953167514042116796984934427344296369731098108594182406900027429686548058311905084220362037593569312394373974262552135461539079657832550698832661997125264921299952790309567543421381661426543555478637430058923326588533806371487839672289832404195956469089427230277370906586063270821457736570989356940828042080698609934493606907701164602240679325089585661103133399934835049442500979632278077751009927325841833050194602359065664498455163154591168397132973375105406844553204687473781142416885069136102742285693472873413453780185619838366270370063712515199317056104895446029492724369330693331792619417422084907774054529314039413780809768230095637176521768132204000436277531527038083508496879876173512121354494071729996117699286727145316950573505352416668587624566124635562610681202574619830810416004688362450096752036065131137284910045079210242268197300134709422719689956618311179409657289736249288902217889639027254544973998639170579036731670315385778332406893671148343182263589680208345263945652634647969668797880623622934688497099379899798111717139533299646473528698963475261198939258137186436546842955624934412477389546352397616738877600303595102405267518836762152942243316276550158263740823161211510205719879481821696482351595044389606146660818405061648620893792340071411984451002449187088981095845156897558203462282766233856293035576772313694609068853820276891964640179581053494573482056062804653744611254254615586474745353969826811487387052185195647715673785366255164390959449415403236019528491740453481179178044349302165184714203892234487632312452225771720151588916782265273822883146406019010338963861640185326108722455695513140027526487305406628758268915298096370964093128228557661623909951145470765702593186298020596320131901001503927791618488326105697805156314159941959498371577456465655119511249548591788981751051546785600670736918101880496232466417264177222692471302351606816472372609022173650886282733831499321815648417599686398866082252169285872958054441403998167405641672274456736138887598585984505339517219228369296941445348862418533556041254893097619218410610690731285928305169500687692568775301451951384489162717559245289755902073375737408285247068482927669622166028857674890013321377934941152284829839502369104110854144582133759005733333614873285103883494989805793221739563979772418114780364287583220272141309341834131440116679600827955569797589881990619004349186283496004274278507296788918822853057371497581516193948539597795312197007873121452433855110633640406559352336285257985907540794942719411218760982086862424892932277243424871082819033827098903761934564164015729835758655092780374338396359469125941304831526568881786161262080760527461741865209161612240763761162488491259516683108916980443469355522662292565242933214764384005569514206654519498493824151961569350962327900170732833924165378300051816515099213813171060630507029930385155258716379631532197563320462651663250837816572864249825393011020795627181437271679382997203789748925867106963612718906762343060488428202278370358327793210978540787920016543774572698323285411142607136593512335613177524433223788683494966829497007239501147808351861602633961970538686938802067029800440089909008261855355831909027287674776343998905862171410302138225391168836461430255944194391947583988092364015871104679489450661686666280620628911434127690109518001623252275847685731596011082818970526155381047117441039633611471392690561495164701108699057827672456724919291448590423837053907416108363784009915768369466975790791812577772278303250219233405883925317121854666182430327298716765720492476840229789933955924076873653822094516036969412923360608305040867182780840271217900880953812329398451311170089063044040973347117250878906434759519273179537670980491252612549264649247262696745712968974920422729610905833719725929938580904208061150207920718267066782408428449330121488647260445804117581098000147969734685363795101760962886772979210952925405973982651363554775805230904402404619836288570456030601024920344787514289841771335853638406896570930341849663764483756528755947751791917022349064288485749433292740760994398517660342688752515285396561809671396783970495017921676043356641920555738023992233973631351549715289340291984644747090898489272072272826272000336895260205808554367346558093748196311209807389150196734512537057095083673590895171709564033835542686785330957577797526515742255125926165069041799182249457371441310968210307715391606979044251075691933135899856242763777732265321925809992086359852408353714220563903776888662096236092986534843648183585822597426223223801286869455534953829906729666829032242560815459966710294022691028967115261509768468330545492735475155439879549830603629109821964731925301031798218526530982027515204580041005297288580418831604675596573291051057397214100930772228025258647963536188666623653531322300619159855582431372358615002421232129424523357388075107079624573286063842514562367629253634054111591225588348475700759841448437200105020998260519806428817841541602408855301888999990545137148519151533106155957506263635011719192176030646091878683602169312468676365043354201516513773838436619422613696560915538931600640546274621694205037101348117751429394320119072551713380929039336352102184867194207128366948728146983351203409806358373897146941092698457970979105133656786761485358272139936136715050635706809794507798054831267952721650743091309553673732161124559864536372691845288605994921464207104211948855717421058165073909121882661699800691388088932874659389200426881042530955419491640787039944080293799475788988942141495699092248222614428992625447813204483759424049233746630218623838372510086435823147550220080465487646186696994190134475973457277544729156345280339012945735056629437549342312470465821279619646463388862253614093693200525382599166218660912515013992437228038413694375707378467738640276310358131303256488340865027786595353968171585131023092435563074003525282405306558734823080562017969793462002244031194574876343446118893143196612253789163202427474369913928889252609415213990785466073936519627155169311470996467918715516197911499087968319956199979081198734156646402270159208556454328568009624893534310877512116774652546893962505555003447464603816368675880771346867597319375534532299814017806185999127352256541908130359695127726136565686558734886696812963334836161888024483492934201560911724715849734594823635417956408843244313137742147967297223868281748123424764888363512265617432717213336354160717509639573076541860343187314989439529011388969857835859382698310126173370846973407642117031837034269731279403989399653523777520799255230686102023125275152011608814981390177513020419433615499900085861055245999964483867816044101488485165500404243811550327416438964718022438258428005700472673343735205252482847736214213728602199520929793564178676574544296528566079572253686452394977544028475306225086902865347501695461935641471270534655560358760785784820617735486994267975064309984998064646644712135141138767049589217138312434757457644686690957267947267031289992760550038241650529914242573430919487413241379484861780873396143604470295143780503219666572918832843131027952883201425883880047323562624589797463980499977933714549346938031383767516118051311369335033111826509933050955451642328084435765760718140699430517827273674509034143756630971433343323452344024483851902132959013463093303969225259564955800857057673581902629313088512197220860256206170323766635858161169742358373542441671252090202423289464740489913560143728588984389276223421704323451630543497854008635153477464406521058524084962426031327763406355340557453457043193051312751534714408679090770113385940770589007891374642027541776900889616781516360568611146569978439950068960365779072131285111186347729048990525454667132379866086366969107767269365228230015614493338728657011266705720862804412427059102812951484350358079219840350670412409881758927157153028086209843211675122609643779904755962068928194928466328267023468481019618000901302686375579333811143566015648897475692485164669356400740176945834425905526860648306567910116777926502430054406518658760621933184534852285155632615951197613362938157486997194216240254542834373975583107497337141326943790572482359416811955639516938392503316386623877265825515552979831333512129506539002018867946361903586186989256541818741371191663068455221721901752975260217362529906343944750482392955454271240299907779440631517684021882389808807269091337938010046390389877925972053615105320123619850591308859572856889858271280287947717032832600937854719247971020670107724197250884844597475535587477270139072650214034875791690105653576326441656738018606232756685645338365499995948144244488569060285562996256781113135597222920307505213003157849626569678299991474773356416290989308064484426918989215404725532810961436701574512908329425915980177747483956806000308404201937029673694429301457240332585736232557602873390843480005560131727659012614149159680921993909629740560090603300837232132753229190837845080904475646898204420592971690718971712026840942442077301528664699608544324729994605554106525615321925643561559763078343537272406111181696668006199564745491898765701047993401405732307158608402349738839299342704617634361759934962367257158195441073902441354004338454322879148420574592958498505159149733583458246299951835298387639897876585392067212596379889533489870026511371220884721658963054772127605412973897189165987424756762541335815597255425002428829407288945989010234873126467731926164911637906382654822978672411498511623308090769693594862326850419397784628261564091934741691767474293222494992428640511214880261408080376395372036823927848274243141195294174206902210818255056833913637774648558927927012650508833927452790617437959764960988609274170349569127617262438763529595662214760266692959540621639507323817296693730436709421754331844279359483809933899896989314080933703355914483032168829284718011480973971714620821742565731904797112867125573417932649582229874768703581453330698659992170694946781476445088312779153464222487386497656275533027158267432482609668623306519668464132703886483957361939413327392244955325173132828577255192730738715528935004637393086437478235322367967504898382437837293461718487383089496349924381067846253417510269421072469425877870381910466146987306193753179719758758809576865590820960722906997329996798726296835569792680454966745200083711860040788087608308274388086202432203170096400764842890493723614628920794415240717791021879144356841532980618747742210394545761608849319289161967325817860700332664779848212118049385577704272324320507616892547770444921831955676126855159059335462085675880931846809149224569918853262158041960600942678738702770219303833580811440660641626777099452495598373254064530781614549768352382132514128129988982545491067025375594197030930669672243825475971188524934629898446110699092416100188597443196074511305346862310218253855342641739309633597777330291641494288608847570092136325247000260096511610539591864098675709726959784476235224290206646992743376526888604329889436219228458148141391033800147954528262693171570390252609757680480993923218265932638733869715507736179786706536107841883727226179122516372804389928477467329632969752601733023944916895887058988021321208455812860458229221768993309317489888126854217778428498933101247013232639154379782790226905299622187782902968405137501994473789612589190914167681988913876654759596849741301324428204955463055390576093769980349829829836445036256489306780605419926675861312020066435081667071071762799668818360485883852641969479582894963284008953400321042610447546962119568368080518353644742470691466213517301236620731820555674183399808990566269708723568147095099018188214493894635849896733648152731766711372996630290320941027903785505815344229080436394410055689733449058534890627931728106432720138154767176728491926913167656027691404879769571071890773797464867187448554804659138826018596111915919578405875543109992337224439965551205437836042240616298065537865493407493344672675967400012449697697572871844370208500532163592634996590746853533503551769814526013445511198031381384973175312711014704334075002267193422478348056657838245958410968568808201595333277055757710074897854095401475852250240881188848922492866120158389662074924462637325247278097392053367753798463176905642807785468824256607610642024886139594717892054440002651755392660508237688648213456803229203791521732297849602979846534031262460181333269641495206080551256573280777689140663367363494879222433588147504774028491276000502056882304000375145820187717925874310443951535858727032492446821591524613536768568136418150658613592705809110286664974960529848886714534034089089120591194921568672008601080512920123698540981637287381804471200823271890732980907590861105873038079433113557681456032683168519975190602969885723976916173264913674147064813059339047188910887356745776271123326165976343547611843685530699644910800352166873548039994868260990932392828303366103737465168652756158576320291682726042162823428330905264332465368928612282918581008376712432599329602435595572869785803341024642297580986329437063797695043041292308520809873065684632979229547089514191457666121884015169291050948785185331624549598473995488686061061757273951076194857655840970770550780675825564026603677708809961224094977760323529265385486926324113906273252886709989137442592228500302506201482091753078744442381540694209379235150895745805492383780448644017397196681078699039258861302795159010151584887781805937700405303191428485288882146285063941345431191096400284995790603814035229797692905415967108993067302068569293391573350981838526791081887853916293660993544345422219742662734503677009864866322269465515352746844484876670168686389562265797924456533288974712243104692446023836909508173243780681142011939313912676428445438527424820682247296459044273920670073055787342177234481298975384227321590853578401611378063405100133573896340597078473561443488647617403259888145115305618101635327926794086040993029422883263763282479034977629780718575350904758120489413841216953434067779012199647778536262543673118467110728462235257925283732268552879232913924314803428701631008509786096140925497031765591466832354390429332440996810894031478426038912811283195223621634509594985305709177514311893371520676899043487293686929363195751128760827162084098963323049297541557343819645711391801201704321701116965122370140726912169117085797666651365869635323638904598235201379984975892579135369689471153879248907631693617621874147829809160174892800272631504987025378486326573214395471566281568777721050272203296791191420616259845863961116262002972235794602163827701927986724355219565695846382220601200921958202022944401474322350656549558253185906474697379438517371723070243604677182086307561710325967646126457413437654045294122904935013354182173029921196438298667683553306109287658898753010715302299353593330372552629290502793539984557749804993976573241635019403069929961761329729169839416424982825370276967381723447834064571601912876340016458152512633611082455699911455966892496969862288101629484241813494261201592672705894839552689117335075460695533802518363634865493046968543153832248298968558022639191519222913062863456615815539582564362829663994140498856019050286380075004925831133780795717688847549418723709468778204780096562409379873093519380686305375049005300201860465072454259695232991352339789247744889377824126308529216055320634625053777719915052276055083616746475536857957066303053800015007863906756030296202545351556136577575646573889510178460106222373575170132825726984308161702369230550734301070061282480451978202303409606075937489011957809603357314287361455913214748705825796998693386815747131065852835795242895381735051313795246826211273116476302808264779861148819126282252694057872508948990977711855420775323128588586786208717209219216343929082408835263089315268455463884741474096647624098271757895420576903315111307483031300718789795437305148636296098969391079944642642703949072524196871744176582885364063386085659854188790953368520322203810377975567866584494160696684799472796385695146296356058292605241797393497323734517303952983452846419446817082297048056220022756987725516903029646547199403766299927969345272247552412286472832317561440799614363796762314043557716727893085519260389366155266243154576055462990606730105270683496203174196710362634522212358487636050611217003754191270758502863275448474354365601335236806114607887248906956907187328022178888064444980278176551755436580346743406014360810333346590979328227436601848120365693280072404383447756123335732879166874725903183106075755097592625830253733953346955586325242097869571014473127215565089964758030683125402859733905151055062521345103892742825101579587125706907217791239186438965747306164958887991757585246494104633476198707772567719255499555159444833296005586443688530582019530562925914377532159594788205842857378144905635578328276319890514933554701869759296986890485724888270790078472282297876001188819271174600112162094483083493570677133011100194461218485002224509685485702157921736706464686228809896826504296124265026320798927500511974747391699880119607299415666262160303532536220182016636542386085835850056922640835785360776016900055807972818683699929582881088201045822106183831657252058547747644090710340079383533802023166853494360898440567821912139881332283186323375702047715329591916599834941179448688973403364823802769610424204613704099036535666371023613090733272281341443662926134474689324944102154759102550255028918436643739114375744172676674972172275559889174885219378512141913430157984547211444471046422461518670976287689914713824798771692359814458462235266886628143971869681438419715823904243119346992838657579600799889403305231076850448145379238875617985991694936719438860108174938567916762074077560034736418517764613065592947702240126447781291945284265257164973344616881095722791244354520009935399003553388661796902703116808792197095036450091564872677432135125616310160705291207125791951664328595500845572639339988929311250356429168118266445845903175490912175219636604481022691359807088596595951250007671354617399315535739576482025031087275743202269909361942540425617271521256172854510457347673861835948283279032463148571555975582345643285118875401151285543716485081438096399115983531337133682996950883462976975554947062484825684684485379861832591547957426261380023860697362631806371099906294390870975426366547050084688330560980240544474474448297087262353884887921475233196042713930474703154908082759906065061668280771453384761723280191932666439425414288065716281336439075193826632870949292295352586037496284587515136746704936054944761308981116443015469439436874264787920715188249545189336546566404825148422393005195870463040057278522582459124388339254935150729027303529278400287558035891846797257173732314811309536935271890694633171016361410490343127106366310346852724705496335091741614509812830140093535824803113856088520977389199851783376681283207360577670493932181160073476920038283132213373849143018504725358360700126130563451359826206329887694069277852514669845625693840535931768502192780025584561279741019809645501686417361942612427763174431985156947572500313788871998728380862307678971648969172633295139089834843950397789741717377003179920460679959925698953873561365097083330696945220688187755147414186499913493479098372111285663710918692288276019143353843723273778665081413561835158615068564174689668053212191631695489996595244346447163177354493537426974771236561580499887050018354389212518091700723189768902733779265757850110452549624381249702570975022371671037511718503613084490646562607698153176646253869601098326780524316498046582076059382477250347223179843810419590348390322038401923424216802796815315238730559702983319677178209557294530608803447962050656361269900683801154868708521744150701002197481716956446840907923177625499935500090460567164653736913566857317245589036986319906368692687039497312992006890644621641929646715206089510750256578450233235929383180751005468964016084594428882759889593866421880400826448088676578669741843896596133627903025268816004424934263160153922762500678701515954719426655286468180165616848378815276367687196853751297321791706336772862617814598153142766654078961409204119616440249674536854734371451465342899744832481716180212932879575996483182609672923551511518259814557117285657764214198176365764664581294215797305132140179478451754729143354200529583917904312084878627952667668896162634842932482396482740400078625037256275856807885004428824954083890485197376250343722119094800467175520293975067323792202983419566372770942244660120554530551053166205110807029241984271147218284035198773168524081398365614759968537544658941855121695405696097735131570309946303580517142535281257998454274791547463162681273838957371071281920285725088606113375400949555385221685733881137686916403218457137447490092977082216252122139624367175666772069723338840305535383952403964165869018010544668550560412350755377390583474020529764741814669713983223106673563795578492672824401564530418118467657652412883199977231254074888065325941020287344088636739532068098359271008885994782675876978825487520388707918463828167574759220810578869699587553159306203355563155256371542899422418191045091924683406514671219690741176536446529823011659707097455912195197391550220850084612540409716086242047566532877891594966690110008680184499781343563992801309722481431485915382788701137835964791975189439795312373365004147483348496228121423147222296689722686637272114590242930180009847597626057807402252690293562510407490653809601307181811644643734680764561659548288986548205530817988840611464612147058737712868146500205331427000510619600327237332389983036831635180554980983599441873075589824045086033813384897483891726007019784581547602842744904231831393076613453429870324691518275125411455183336840644660122596901193788345261790164890417350728040970345416367596206918514633184191640907376818569612552784894082262239224309671371966435098855045041812045596307589333706947820079762540398693963940756477047540039199040609120764850088549532682487402569289188339412907885062377656721218408869810353926051015249735328902331862627407138474317687877748033433908498636483388127847415378898244844385387090011475840488110898237228322891435596587727115190236973766468581237111598417967855418285925929337563233552687463695574584380488712144752469748313827112221981322900447214898890332952466658801005710041566163405440936092582633146865248734749540805819773479128632336320662230599704717708688635105860803783531979978550754050298792071403406526872019979991189764444946304439130791468983234279109598300107250657084374184702323036901770104687588496818920416721510851183151567932903681599410983966395720580070897007604374324715287733043292396276732155882883319629546372972380204494125040375778640421279588489035327665848089081134898945802775694249339771526931275444587475403861354644195940920601817360106037001084717111970667211082450170922751605628277852989139738712917007448147362825625106224700611442979989496014306122561021248670118296500743169648270329984378997087905852834167098990690445311916940713787325698392410492200224791171283337109169809144903529324138503080897003772526816873292702530097145014450763840542305951111076386218644001119340501501531656377305867054978790998169004236209745205731618087463665051746109740009193189601137405178190981612638515388461595602168212512703750496960974678103359765821069964734798172146942703671635340811775032880447695175335634803899012342784927196701496065612006166952752525268090811417214828059087757395957678835438812223565055773467800087095564035341794928871085450540839346920980258646916865255442993355811906589670847327560768403798397392171146051718988807077238833569330558482216995928617411053734759231207572987104150776185816491542873748223420510923889307422216707618626973912274363593408821049741716313805179745973369559973327812517975224621024945144475748346069827320775175067580611488351704627374460168685253155654778676260892909551858347032843705654265663130333333112820094868653081574660182187693263050772327334400669227265931352926032192229286976686174519434892556896240428205605542677584599280708683895874360755937920861976941727816706724130136534791771732811398584536734388131904628528302941231258903618952140302382284648599269366290618288528973736579902601173867361607377516360274782570761801648078527615349990011527377608083379430256894234117743707641825168286016179252835819979668202930842526839224768396293871170883590020507967415769895858006794993437339751338034943627792523050390180104372741960514801783982556415980279836164494650626807878158418291133564015194547638792283884624127940020718699863361098275189303555260834178858350109495985183521791480274462136516254921998993819219460628005225968531764697537108485054764313599213934841907046953063971561400985275133762478262100414285678599435557468185140797879629856774686581545982216565772093985037249062888859583354905201588008524699165064995264850546213444262395098562816732905169734602168202464050661706969349437054818971548180796418317799087957624441581973719752773469063435040563494053705973994340841620659726904208009621368422694688615128508270403468519650298194932266743688186794883201713230889934051682383613679457313549740908007523880808954234502267856409757259866498971620237051689369829603847466816566370848773159888741776169048258882650658483525387659267231134444505997917600575706047920810046576326805418427269920793275215804736449758441198794587189661834195157711959876160934611610077193737580915405294962621052699725623792000252350006695067762789581542249472483493263372005464868298343715582145834925461665916010236669013168947240812682351887814469950100200352515183377386274300434446373417293805331412858838386971270331268866183620423892026401300378704171825151189452468046048672459890844554142868977390457097474064117826595145490837088714739083915147215706964911337780356190576088475981429524763601325367562718277883828214738383450341372822685223091051082698398208783863904645431316198957397425546997292960999786139907558025489985055444740806940363126504299230486299149628752331799102554100886956572647448338087722891267623804665059906919866402691611171519576350924382290205116701274583812465320489621332327428167444239252099823497392199591022652543783157327856692643673727946003794332451859841699918027394207322114124271064235678550389507773054010522129000469222807083787150659256763396813364350577700182977452440746720279318041529263801167339694446440098378099506231383658056187348985380439252050459605543130252627207607684207897111492108323611703613316195920471599341393239996046207908363823182049573066333141813606068447749356669529521223282098803217141173714051194757098941520092240028362704960162413611493003086021143556662084322278269633664516118994168382833473645412179723246683582211982634755467206521083803511736668347006273974185352102814334641287497912248498365080369671369579292241217709213782868802126421026507211939953655454734946006441963103973599788135540127211218814108500174192066892555765456865714037864825511715803953355374254533819831173636330911491078620393839610639290627089862672944640823780118695942046691847469416478306645393102909414606990530513415077200309658430725978840780517033664674412542945787164869863197716236043864221205128548120480363628551475043713703615625737833739982790511546773725311084713645251812101837548264081595660179921418072242861664311728202365752415911957912534163374285904640738373480237275864129589940770849682775441224140562845682349445617665911736996829290089564722283244489218618398919163552599253413806986468940337825734026262687778686678477705428866039597259161777671267869879694942490573521033330000554673861937735423398389331583954313351404264017174199254077559794019085402150476817090678287803059961046057151273570968952739807601978156282816204544117865526828647558686749411085777179423416065090145575129082747402195404844748946682654034409803964107928793804835160492891995279443646925073460067712091485177000043995654290588209298001913343770750070318500928360881599296652623776180093827183036880220514182470826346420052108769580648041782641283347618236884298673231630355792953141324755125733879180874658802180710951191782588015653102897321796602576745282839147896117026279090231100560674284719668058830678071896839845542989539069403962038312333057250216085675409293147042123702033561323146971779495014555726954305147206005621692837649047890818977642388197532251720307422267008454278513273932633390964967755064559866703621581664554050138266108621382906327847308035347281334930906107247456096328228996228621188709705089086381358785727672541843123910526061507470108914996447040204799230889175239990050880241774090717300131236564033185220499076522206244089375970584643317586440217941761765634382036222842082726100577085605528442549972928444305197023587321579185727917463539121187382861963909753336380884508909828858467853621624039352085633481227386295539901261573441018636501103232080334529418720544481408693678900623685536965607429137268692096792910807176368190674874038211352246854002193273512548569755745910105385276758805815332053461468549177512361360561333009251573554050718785085320686574673167846339150695830361872644356631345357466107942107136342607087951774165957984042472160254599826814814413679630130179403573333226814815751134957747831879176768227862185421452356678389658585665905942671302995323680534889142399428933790805686777148278518298152618973645070404906147851234704502129219589425745398003415585256437700852367139478801212118142369646774049418657675744221724972378307181788581241144995277889810533200823119073288536837712709606336076098383969925853559348328626050752063163706508034436629356992348549614478203333909685605585827810841615718494403436126793365543444715445550161848314123972187954839791344614997453576892292045705861363256020331130642703705663039763292484438139469455655378491922059937989788045118785389842505709309460335296383757850092896136947442713860374494604089983061611775484389883485838771602483930089028279043822178478313101218605587163770509322523102917389289391878634167826653154283925172397122162701701573491845438597397457486812503361525585979643954779451235987070274996698150854687688388809017441911462369657125309574894604306730440655676019088872057056408758842544032416689801616359783832110796351037551274019588716066079469180839691867643540596158398539957286685780692503666482866942070144920787754111712182017031406673309302465504896963405172523725658958631657629872031470964123298920511090184280916920728592317067227327313761091348180012663788393967565111821646931148586601884564161032741513320210209008049578075076025610990227123210017041630909609605298044162368252409878706225473800876711492941280934643363724374757236567100705892324045338537078349550557559012405781660125472155711395128186859407999422012241003690149150583128001094368626090942125296344472436344780717656170569330678554511992820365220805096021751249668202317859952887244202671789576761562393756043593706551016159391880853209091293899947607696527678667114004972425337265778261245529971398137252815285181404090092534328187729137689404404540743272494078112480053950549294856680703885302545206554685308255813315097030612522216524456751329917555660033596897122775541899565142133127668928459320993220022935761472913342461851997930420291011051508906425078623550384817499768268041448239958703249314283856094670512080609944283519117008394580043724669902782920280579847768464625948205699462962081425624684003137279927311861846061512175135230298908779840096823078766626186391587674687591584287825571907446859610672028027265174039099327951118057531907129167154064220822019972089604327368170637150072948103451273065787025032140806386989683182179536333038552912800208372767975811361359016238355512447862318187488401069828906354180375851318132949855792421435936460554221469353543575333370632503748512467365258121029424232689383138250530648098908065001598605411582871724904436949280769619313549693496255403143501106152890446569098732192841940910249504274269729001956965306849438572210965052542907047875972489685268034386899011381234980191116999041003227743001987822536697549654218474812392475130239171286267209495607099950207230172035129317833332604618244037776329134552188874600697413385134381600993770873878260366981448344416415938933008005398709664724902962906093012657621362849290125194046636871475672416907470585512162503565720902107146380048998050862351262952756382555597427665534148065478091125639903546175890001038152230149250214875450450696348976884609500770486347195126956017978537192448351393851867085844336677608804845473311493496139773281854856567399400225579817762425063487091134355796385852535697617284013725756957730175773928764122115282985932089124018503922983927555077003019979805288565006985577257463961637958876614022692617931568093952486954856079591141302304667835968381412228717848900402013882664085068253488629849557708165031895155880924480126163573349242126081269387411116630463860587733302340714360350880749397840628500935023830211897658393384086887856040971719261479114302754354482639457588600320609598979266294821966913602633106441512884878414238122083777058583635453901713169474806714852537256405374230392020224569326314010592885033736562507554622295772964666030220225438109529333778127021392914077517950595230649368206528582166195478217117712205330445888741305387181122862423139652019197011792624429478032418202859784635761847275594093069709937293696615325950069568267284970856999207144785889852360017227012513655009552942046449149173203739117846484464839656346896206371261587764191285611640438227687597946432157248906376868812855450752402491630615238883638093434284205571354245002797319896928041724967994659427597672268867133138095673698843991614479370690632839214404498856589944046012218953532663493792587197579251878761103976863229478915893061004206794089344170199694412653027523441944248674435012989332003471942158057614782712494308306372902325160734521488230638548010675545597204552665071227569383230881881741731465383740679899941437603199230155817179965759671167636929048771596998393207277213867896121369173149017598348728929751023231684027078761587617704057869260512779945606877259870081064468680820413690215838353034443976238617543289002578081370709450454838242082596074010591334340023092632385323081376369243185656887275474335588957129033064744325798545860390847083614164575222332971890673927381703224802721023909554504042244767964741624828584821404951134936337075419422975763529883621538623032559186985721365436041094951248950783004314992470938116913891463764445188871099899576397376501036817146241653795788417911974882892458192022729301778539665719158964007248223788270782634987002331907898828978191257948659483477206333345741101276383911003672237943304451151259280793447270136175210581595988026021651287791315266792019949988042567365005787756040140622707303093427967308440946563156737478179152237755918470913360318860048418487565288673158574861690713810837384746242996146336291994401750156345022064871527521912819795289028171163590140617180993967551163929542151093430215487269318621701878153232529007152624762129280108064055276124563710798530537490911543129417729287109638565346425588830306349373195361927724813024011725681249588648800991670757797224724794685203966467332444835281432360317279131517857424563934840863895707243859326512472394806264375327295277802123246059276579383755716710393248085897693569448344038748350307876678028442605753149724035671723207254023413258533144685471316525455485149079927867522660621978074471325449267966169852413361738113644199551718032853080386082689455459613096988765872875214245337108605856032424485011272140160726635805177596779478097534278685896790999525936548203129741493206422899597914154190231168320304069005414836606320342726898074949713629941325472628618916934087211796521414887427281775842576061211547273932431466189449097149141493239165650524498058501613699048560398327320374169606945664962889798539745476029979313404987380258821196316454840825067885324526277611309250212653092570469917525126339105788752469681066866053270580497041975250229824585206479646313260919899909733868966374169045664615502895508627289518909040707225254364182191534731973094158738295006017511042869820838987027769679699034001948861306647594188694478173255929865212775957362878729692957221111411615481776226435123834990337992005697015631209113057842226359397750871678459653361371801260367558393496765275593146841074684015596007658671874805834460299842452938397955077662980057884682607063012423348578805688510893855886241738582154713804084265401594511053746415198198191639606267992383728057300624093476967531999766210609842511076707359824731743200564412018959953343383625710624990142554180384774964165579099271137743385533783333981345776346348448159411844813209501383465610155360523840228843785144175418334914795102302242552657773398889385494487189677909359854789497311999443319249199804592388784615981339826392758720515636707234119897036024211701680456406651844608268571139023337594863333107566463941259332139078580764734805848840271370728998678174867740415708293974824796985113741494574602041160448848911556869690789615493106900381268281248522960928849989849247705980980785571805904244108180056210100467987324032107551769445003162332158682044957972830196259860800979176906830923095769948888942795762561490567905535582228998902256290135007313858692911622374978363721337882960686898988303053483196663080081764267977077266384036569108083651351025874117609410219445650147994123679396322612895730217761843589252188264282813231624558853925322647401130011182033618713155029476460868459024198515526665099163379437266049788720532709155656611040422879066536657475362535228363024954493211636171042885647809644313257413884087724198948772258940429180234421162828480821819991925019577054922569014955701603646717307063077850328001381449406270488985813568468499247762744365222373486867725324954888999829538706064244968959293860247539230253091442720338187712656843148418845202065717332183535935324061560410751677333620136844498238529153164563420710789891421243022722341407342439934206025116181472845141450518491495991743745611563999063943536601154710574221070483660731751769265016760695521111579179562357719756556762459151198615849599644576164185697889938181945203963704822478385227865861955620264028619834210208006223671612764784808990644179858900146621936056728338360913262848484382442637339173464731383000781238009855322974247716370397714012085847578452139600750002804443046935834125840530031060255923125096924997781063715253232900233334909886440775110430122345072780563166017673767941501410733244974282371653943647307511959495280060218822137513236047565169211175521825646286328178198254142931269783655409839549184470606403531928583999547074626481535072679009601307002623383660338011958465372008146000453065957422597096893346810171639492206576757422954404459208864360516993340241025468185361245467739582202285506926630526054160361946600826026498867155174088075901205565596237134063085712811896396153814031389666337066590735358523744958269498887508735310887332104528116443714408544899331046127985281855864817522416090910818971555202466752114382753797413871211058139338910833836736480191582296701889297048362159373051944292753492219121961443602818283575284536742949575433197103890374205658580861203157914188138889562138254663593420530355171256210932242642330020297459704158583623001594223019991137812566292900519796639367276699020636641486854702600842382503168808623045265604643641229250276738850082914998447982365018478295751139015436901836244481218497056509092078667131213674270916530926324991727513540821070016078752975367818421023391820294244444561871386437652986658578647424192446720486956115524762944582772897866200446551396230527827348421295140541726985397427908401116088658073223978723986616392709753206371343428485942878292685728631580347895359073477531568238978698135647192371971390186861496312891584289343564975835234079339552072963970426388943746692084109389147263969951971328712270120427912985521001457703845398952400048587873327949619531205239980199952491275600252248884028591340834839590086757115329939433737219203680704607581189634382347383260227603177241057088708586029704248578936365408822727780505485136526478603669411958483488265554555724911466246295878270986060640653685933739371561300316648821619701352494446574017837322217361709352033212216758950376986180938310327392760620206207579212275031876319657743613693471170963097922686004337585064292585735161323396024106256478501101121232667688385719755428400212786069591218032650716288405539021770999553563971480059183217020701312249292771588993786850504454553206193562987056051769715010160972956848537873859167841917230661953882583339488411558824275137880617935938429857970530810523432352461739344780636971770086003987157267645907100863524691212399092215090832477257887006503382828043216282264784255446738912388332540339992286378815709160069384496627080386095960468204869328309084914245852921248049165049435718059451863523187945072047377588387581826957769941874298908606206828443431832190201448406445416468268399442152323838776605732862205490347386811151971331279735463004043408811834836047662958136941095625333983914818023689309248882628312573968627228101773089712742739778624871374342419254614266887449973875210437950139484338749017444530493320225491206422833074942272013561388968123776190253940974258444567031562773218976315633578030304176641034600913310544774412130922082079463144940914984366664633072394466085414690654222303839445303111560005832243554172636111208664271342870692468356976247521588916268217355776797828356046056095900487771290327567301471710126988089740953780214047371140142977382113072908696069899039653480254825681537445874094360143196451482777757103911807699343686111629653029311506713996370200492314675732545615492554053541253351851144530369435512831555487314355977903293016738885165376746282060499850523179894589968563831625025846743405128828810356659856743074343384194886460778217046358163082692994855843678145873700521380364317782543707264036968183046970528329440045070636229094054841879583123667506581373839109804973003979068894515558322342490465394420349562364220149257801245849717986670930681100959747053318807283124392705990079516724970003907361264336391220720413475344376462896672004701934938162004036711324918967500000003432217739826463118253926314347623598879715901501218096322878890451877227489620580759378097194663646463004092728099203376523776245898974254965677823993976661114659387595064134222408402735422564637059568850813225805208216936336013185617738420042699758582856424899306718503431551099284293899783094199032692087327972574099836344906281631341451434047489045692248385795529000764869715055722173308820949978886662434740183066891290425429121326698173043726583990986358837353565666231132163000975489946703726203300741948644169086383887080369588070341500515158259257225742830317092759818053287355600366672767846330565072741671471563861305964280594864618203748888247845716573594438939691035323078914351802883971850078119106138490734597410411433231350411946005865778169326397713919810475177033085815687915601260572983969041443403110979275601868063780176262852343779746522894086743352283942942168017153707069185989192318763402928200503169568939447827972629391142885712909081306199439841890938184202106675351063927713166013860940460119976841524730101905979135101691513059018082644510594150162967605074041974667815274609262242836243296635414183602446881621691304755128722063447793856017601367212854767347000848048401136179172405567433362175065959136859727914070184037489884779272168394741443969587598786186990069672806146238288289672625233751556181698754078850127688573664440086481271332381666170766880272256521997255063561711656579223774336179974530253932617286616242385649298856012113806787093177215283686667410025251247475485284934734656541134887310150415276027327433796172029007023036512744246775175855703993744349576840364969818149485003499209474308033119145348152771495660168221615124233980625056934722166568675323042676959138602967540098055308802004046322559772676266646093751917312198197010537085842895171696236484709550611604468340778218344747254399463279545035778967654535423334578876415344625327071543992858407437494558903974789740176804724137900059060534425541033226573646905864073492882479871101558768081016514482516609762594349182935137938113947939165967018372602294554123608781363018089979088147116268846241664938315360337957181176533713181294138264493444452729923781503104572849958750384952455204149745067394711250766463559993601481947246986401858362568467066896745334352827711592828040380521002660458681676321498594217519417312547573300216678329526894777795844683702085738288047221286337249443162885804855031696134343115624180752001061317829397407973578618736637404315358575656498514391406953290866804173503996609189090374114854127458621369065176087171401765389526100872455340095391937779790262827543775193588687705676429492083131381577805527477200344410779062376510475543510841282465188922753210459087250099175440334970376624276200809644087018987843035715571321984992882039465279453034728635653984908232905291753159678296993175346513709694210552075445058237745853874557057020805857684946565626808748634331177611069180604787746548390302418931382758668265847453068266495106922032763515032017432852761974056755155874292785097271930932518095080619321434406022858891967957855501625644477492405747040247944359841513359291954019177374963371313324722537471250669471188566870020731774139638735371157640897558920790817534548527550724339870773799300794939715678056758812185462481333855474816510017156724228136558392638989758185294616057468664351043012870344620119457126383929905109790716194087269230372239851734240875102926600012275149818504211577856023621721209498373354000743834598710058676896502859345949199122080419723230729051958709275403223424795466251179056121456981180918529113844742933632542058276038440826840532499844643782025936186221778145024582905520410616096038157755228933101753867305518533756861732516143827651293655877207863258825776240021073072059546419059040197186721493366317646709203446449452345041439914925665168743699183982632514527706087680372546349752197855555535609242465184177154101586498518868645660845965318789972930393557977373062221665187365628880600638155713247009567809776757800115763401756262598252640597844342379050958785857059368458574436478473070241975334447801820539580637575843992467491446964576506007690060787731485817955991007788589356819435891434008253517193384982951080977218910929091956127408656948507213809015439649263309213909105166836841198657043975158988427278331590970502537276399959116016784256406144787711708597557802100003264560196448702155626996065284919683766682674395127704492302769162982800776337077779356425973312154824737052075245244541655494303788646405628512571238021314808632303001960341371540466307094542637852705082195514450607767440313876520101127841318947423970112423158158775000437307676051030399713888805197742122113062046002932625025370968165240035065856036596676095429908365098964342548474503218742737175632014280310688789414430421943715443571617237831681649493241332810127522949092470608033969130080415056372719153282865317003334720270024655963342348093747938865705249743047005872335546536072808835574551267847229362385626890325478892244684869362670637650040483136827265905016265557310944336517821166989847445001241706123493729684236411762371842948443777326516424022704124436343705908344014841740023092639062205258747957195329615938402310755118210571332915462324786537528484717451151145720048569365392605626679485205538687781938041450396920514739402893551046420353464242533395812481432226058678538553345329811237845910975544115044279119807530757265963867417555719549733133563499891594623386564169158227009458478216579783217488986523544295661988572979382236215759974701683245904044674824838462429387672394085849040836031550310914504951500949229444683921385210839503858763548104599202935644603753689374917819002882871114264697323471322115966431090999031430253066445579798752980059237084944688982924186949236192110701591756947848954491977945686859690396455908822405260871001667699168688450522890367889605827858223786444116237019771827773790544945276535051119192647944586513872460420386721295811205434343268616353862473252487902614688628549771442160334493524920068323182705289280992384739778885958689125419887946293519470540917397950535932755355860953862040628372163580638546899982380577088349462918222390580664737192579788868670977340846487221230485180497032117177803825660348330063832236261704604058829065662649520685551260326994845630329729642417755444218171233634080046706152712440742684272005090131539276025388884062721257030073081886205511745033031039669367307901670417494559514135699784822449191234127658893120418934630096510606003380365437738395850090791042397719400249330636710461821704513301291455187128899017663333327044017083194622322441179615388746390076788725939649843268724159413522849209847940438321467671553353017880489698033026821803843974508921262427885644057969199213505033355689123661509754601795924346366726518475183769422215696695074638707641443278392824750527955207625405392289046609399113468163781642976941736527973798078237822094737802875475714518056781421205720808365691850986068457930386220198481334148183917125274948599733038964614722025818542891330580624620043059829571375980308387194423055324408688000372399533161266099421277311815793669365851760213832445732210681824576618310378463188826618363540866871039206908065473285903706127907878014882377725549914015659300034359238420924411842263039549617934167497983481703393457226203141573141462179268945140177931667571295773606111238087891423125109838331602474176997876929052022705102844283974510155326440900127745519055658195883772280423447796974516970364484326228089560957448569378232866383045791080098842770436617974374833754140464567839472348022553418612350658253823024989957496253048064156292138209384665247071084614901336191782625180537219383734703368204232573951113939048851803384692075443366714351372779863307306418861862941099345888945315614094490972040402417230955120940990463779872769380522669840162540737629837650526107800339323422685783286173299137428460101200810446568689747908531845027242623164096232975111993993236534488249510961381428535728559811434763443172246469445038673267531933368161987580231463077528639523812511217246969615156279216130605146972174529381593982289750979134767426449685997865025632783413699612324532128855761948593277618256738671353291412414006083867027962519822969959696114578433361122491983657078757981000643699395768099629805349035724262042283923021395402837053418281864150862995808725035490331577380368698466500672742697397077912865917229443911720041955493618722020289581129908205968744301905023797117958007344305392808215985895782312103993863352934918817722401593875993250162749661465120617059232448743013925444750906776028737110717229900299410091536838361107596159124691772194402422425177375259875686451434635176486669224290811148583086217675907337228869167859098270762211287125629286971947637232974294098842737980403579378322399734806279672041497463675822978301152057118837370707784894762179602848500179920056644050741915697088558066541321898404826641495079415239865841576165831356990764744487877124657749375045240817257655531547318630696848762877352261801763412926113942731093057791909201410430821264103872175870669795414262938479708772882345527422685240793728618945148910565098803239829920344481633198204384661882255177090186768864145850948338285131213545928625940354369804185929296797786891264138434486422189045772391612611739522765754976848205658582855804146886286827374129568188076457441925213359390676331446631085499334744443599824245679548820056591134205062792522848797081554230085984883438484262137244194957880929893333505637486971181357759265097989371999983480970822195143681399742093663591818448083151949780686663705279648638709376238217104826339204361921863979397061722082304753429040487387614831051497992237679063298256669408900112080038583948765552068996118548075543639327908680411647481919492029948548542225260212949620523109429497342830460532302225886668361189416856261249535570216669711645956492974604044773171956183505016351905790355110931371157778409703338962305647373922346422321135327048022989386703813427320958144782071957906726099841385733419260224158509930714989905906231193081146140231017021872979260462716302236660791947727298459212881494032386466662746867995385942004204876923648946984106420566402631745085605997520338728909339903857704431233910523240820603124848688689016327579143272865875463762075838397226878613684852375929149835364255542898250810401034867461670265427849035412336081957066498380759052412527074869982755212488352749292329330539653759886656388063921337504207623505459898408662470420629467092308471893694010237739910202789104308435778440821985443145441007876727703436985350106308670406072428005102098471307431125765273115713982506768318399973475869407302461177866118364647096040441359010685091900480540850552090079566618438388097789021880174061086437942846350141102899216722937890932861770948289124487956934402558939150894832631559876470287302828197430487407168483343531055785001667912537226178972360016562698476479331804493574963475626289578105367482936479215495623740353891572138839081533528528070840741157255359897596728197535902355922275782059397066446521383882005937707912874939213356518124853404980823413218748541472938881156098164489254509828230134886982285641960029475435343279300226330292022172527780980720323155602484712782234001090787253129684786114179748352657531614079559926325385044625345759333147466789092242037854491355386076093519419957191882779797430492847481450734070046549789337885668035624070328108576175901386579515107770455449692062496964908610914979076728051409333621793698643895513507733535314379205426605115024019776319835092830618786795933982471236949304530027622096413721077971826898482911257890279456383210746317351898557318404929474472407426289450583441443161473300782593689941555410286511161668048975716809293043943036676088975362577577403630563232107613174867223473049919352485897319907207547335415870076454245214082400761270133204166772920954248320865943337798540639089574624251095103794659137948472286319045369324455439388833735756207321928227464818341930107286560794521193235921979521304738187244826436518352921758249557029033458153420046754215549731330052287133168291063524180302242741712556244418245731255812490517818870143924927444109108604409133427837675400416750323080890298358580120729048771318232427161820926683169654206639466681284619167991615196568172451073799503977857398735546226892107686776042785450212046431135222172790123452393919532226940915158365776879420494736867125065074966428492958131264594201441903890383732532228413011156821621315663756441237555104242117550046373720928500545738811244968791428719470444261348359119359558943274206406606957302022657467944169631598358679089026941841173248152737864787451666191532270879467403741913159923046683601675730923470648699638296272009026421240025089311636103423010100953106690197951052729245424907203608140506064550469462199720349649166523094255163308095379976374529795892179175368715357586302620385957930773974425545573463474412010755219832262541269551775322835135244510341243168649736398162888629163984312021628444685089136360380617165792581504849499121300959378865160234228853570262757981899897052819164966091176349101700250886555107150038078324752444217485139805759016240423354985006161990061404896146235629659469401571774504856596232086987162697245961697325608294480253519579598938092877292111353122344135307671413422266801132116760115266513832615172414424545130679702667141364826580996662488426617403499306845993440164396437670954369237692507067802660736832495677162328108178847420275379358128166303976964721134982667928361611829459819730583222063391113672248191208822436813801819155034786196608732725383975487349977007098517924755123328354463733546084115363628894955259465403037936554093010764141111620933069728046903991184060399437596264398946208949794890858106205031262453230537442354193447073241087656966862492327650330186583760054535055648751000851425747936725496144908905754355308527317946356887296417756611146314975649054771056778525082421994109715089674333113240633265099258487431356068254684247483961362700523852257579050414776578273721447494510735839753572546475058734774591438653801989762235942498724434313695905250970697939604722483981366362117669452449815651745429036039842413008622149184133103069215230418779634668951738242610150669324249485200792176112812699583360113384321716271654430444646246932794630649597765271364950893533997331023155694976829524783235747158527577762159686140330876273836116509953425944295924740902394348506551317876571547491435103444469533559551428700139216194243814689895341891440929544475747004272826105857640170602580085742167017394890283872784676239778283775630303000148176304300646745934747813967000249363919357084767587140745803165114064544556089733390429473664439211141865578720590149442451784212477816963155735513609879488970791432048261693129148018826413888097332323212591107575823428764931484189392358961274210868088125987720286087897701449605401684767540673206696659390648667422961261618430998953768271213494127419597089500526296201145865666150880107197256229317853680247641341265172613207774918294607221799579420342695689491850695031329385001306165750805721991417782978724722632559291927280628075843239362949072885931779776807295097855109452674261463192438058097937341719812976051513875809958505953773887399182165768235563064733291100189500748004618425212275546227261073830763267719409561030211323220646471696411725504008426146316695330962693278107881112902250855615901956971772116353956872123850227903719099790878613666575625670384381584686001964553786294021866123227589705510588792536358520193799650223635107027909902777014864723846086000961438032873695717599553069426786124524101011115346686084700147647332112628581955142190727232189426146641873884292575452925300550043169024349749763095677130424307719318237511914713858131072199574364371307361772489327224269461862457100668097358706659568717668015319394830455189457846644797387109138887226137787358754853462213536922897171843082197989324821309834311653011426875983255778378300390917832303999466231830532631540035291666871324015316104217491758695162606042389608175609015456043948370376871229605469186512546399692445111766588309839109889980535017795529226418178241071574822838528943549243513459449419844474254423668129849395877680318068840130169122850326350684393713154612583595026682390512175140508825237605827570452158222883635957029369401913497382352526207454367150163737394002503137336773312643796867457669986309822078428467252598044346095620332794564913684940684265077995679502020035072628979113028651912453730818692867540540729763474743937110926240678028475847450501304674534510796473670392114468063137759441309107190594312830070147496072324071516237637177199861316958147771985333410919399878868999380839553814875802897940032052037738997885109594103381456340356695366883812555940456317434810798502904915522480591763370074578811065335219714186030317607424373341484759061905217958952370968507546272127145989559476088403854051653687505525902869989057743786674796865085236564739818951808730519718669445368550866138425873414393042051624379537355871202939269669938540459199558210670521568002959534876979775563854786473960352984509621244037513261129498367601048250251250173043275176403023386057443898377409761776536851198768615223440879821104950093314991575207725821774377684784010867722157792949875111038187965846440106997245544770524744299378309498478701395855309805396772525682278649506603380631822186178275130010957343881036213955336931301401739736861821000507608849434749029985246325933490464115632776474272366797810928563896610399204819961851893210331280118737344346893719178551776940252065925089557185183418717170312775584612687612221887802464425563604178886635887360932706362606224885007868500442724880339121822070267407046381418172822288289757172139106864721699352583491883066088824709792928439246431803068135539703883515094591750025959519512345585441020165122142418986193500691291138466491115634440819863410991761762665031003477877226603003532438403402402779007144705801213502228492662916709437976487984756718115685131623658546689227778745080977300086905432166026182732205248032980005601665143012014498769186158370267007306588529019675610350617506009221800660736141724351612398119868570493555904734473253661178370045221447295840842414453982951943111099865068536503188741472779451841278664325543573393990317905620624635847721565425000833894994145996152700803440622741444086345278992022167317132237664653251258615943311443327578266826886394166657429387147681680312158863171563898648988073883419249448170325842670455657009614849897862006818906442554504414877530032782685346947001606470399241946146173611572360899098377673900350799286686210956053906265589843466886620355480442271947867110394718013973903435107295552663860419955082610418260816488813927759949817453520030658756499631587995572949743272615053343020519164844841514429950220057310867037898055833222943361612402586769856671973462012191769842985680852126656805743816862451636471002660928368189724842819757266310121226714375110385406312672679054641360412243229728603572990571757833397525936107519227575220905445790037136647239566114431110037265417533871737875385030397249166638694871618387890489332079468990031349024265285872762441976220637467880676335231287383351195777937184552929863181540942498039732070490446178177506610703524902316993232011745489338167280256832991002806602940885391791805321586978669581353939015469239851875202334322376818171015061818214767659955429964414554586582924605806202150798153629078094330248475393148876057771430898873314278493956695833925818633038168606694306491175503693328464523412993488289192535751229166439709392716159307601130264747690068139379963254840389190558388017001040261599342861227530709337535549149352406344904834450292357459981900879560657297900549184640989226145381577567886875410532588746954160843308798650505173472399431357780113655499041285525533964372123450237604203090035502636846439396022600119416831658170832065667037262753579962892927193140407047734194035748249723577796510371120656574210496539363870959826076764730611171203115680468955275974011059788933267862170760756326263290013502010022847667024931523948013403626304398415099148781312327129566494618208032695271086927140394117722742195844310148405507120207923463011744842737814096152165190017169692246445093570783580254186275576644662472824188159889253925704279586610740765099013395347358426458453544279202418460235001309708653135554428410467469769614582062768114486548928207281132557773957418633214957946047545746002070853165071641496893932749068822524139357441936706839739547600911663690495554561557582388602726066568335441754889900226553859968926022551242918306026136684901788987086844470290292275215921448083825139244305085449843480907772627526147185336074847423096844303138126938230317031157293914381545058466397584249296977287649190373776461603508150763324068060334893945986578982392313928862240446288022643011125563152044816867282368947717750515124865581298738904395744725514018646761181076022847790078664213155611596333040821384128526956041272745774821295233506025732647074864816728882184014239757552040906863380817924650069043301718607919575857930811101461294800510212722875043316532630297670263494314529635094696569596577706335752165446120990195258759880953744599309228792790760695581914158229902628373830351734346641803567166199622591489638879524102913135932679686244527110379377295422169286148427956308456488136895150571203223289167836599091046729727304230470333484648107251810746618865981803144717776976110112103416433915498594544588721296179540365547016317591786030053374910630627799790544576822700859015900906192873493582379778090282487722097128775935200939310368207115131498876413980541330689840309588114322964098503731255684354116655921131349175514030031746756966736985558347187474210307142667152503580721488768643130093467319592375152531480153938818025241072571184402663891674809204115388419056135231690209654120609998424731177098607874525428899490377883622296796100022419042214920966035513756363672704312735422759797905637224841627642585674888977221050272287308724641652204416133478405274607678416401391992076906600888221063100198255673927129581584784870832044676470418398478226445785835099979327790545890784055450836574214703081806496154753818532933072028071128468300786440637916853036527215173957028922421952637681168223300960295535974179079010478785598467329802483102188780770756386840678220573428433153928071328400928467366169586024431527779891488424300939278347293087423418762939521920092713932634127286545925250336705835628688778250479476689644429994025317454687028449983332327832077329794979487782410056730048823891794426701556776539158273771872757648936352856938826168949408441557526173759785101335522029975430641788759223866530176493864490924053418221272433134348770034763652289307292301178315200146171766193142890352932675092752895028858022410841826895350975440329539369953799705177860253331615188883909059497679631759425340041078643678750868523041183729499319892091151769164497884832702700432269401950698569056209176533423477180549416312863633519594756851503901215209377228684666329369105297918822573387656194845131130649648901637449131794153491475270536095250495764225395034063624392392656890252794418035904163423803800943677021643575254848997770897018849574133249684899678914611448088692974944025797167097009751028385916757318480181159174661228563362641804937493657589532349948104736195543099110714155925061898076149771185774361058669365610071817584867295514768765694811958070674347729721635172795593065255803160060028307277475952545276096501932247821718880141346811823215625385715641227983748526279171135530391217422682924472281474689931539378565959796694225621429450515857714023075900786659199836125165739712333008957025951470700365554158693709427486064048191636359415939310408426902731442522347156802984033554244357481584915342150165647409862602598015202637718527218956162978745201009595836419263703642912526027919784681539246909903744855598049384081266918052439805912601408779718822264830097410822149266149513583091544477756376885702837301924502762033130458024324510310297376289799117321364168403291272615528822545192750753299218684490961327986903837242512856224856991601068229507902296323139244371321999128396237129507361720164714893521040066555764801334306984022836972937807011144086406341557390028314731103208955351197799012295852954056904666385594136705728923340661878608623095854798880634386668514851362246111694773637883621178026037149338350905230848360242883886008843640779046281423901892671116671695272358265031880195527392516991389265478626838083054976115017306797163638068909690609091420898305405330889836996568776946187168283007323740992260646614884659272391718759782816820724738304719785504683250473815635776566268315257179907015901817359532119644968441493851266845625323894834287657292022600122901305036025407868076947360696646648310501393007467893753594056537188366542861424969602453578028975900574405472408639673430988986037912384898408271448771917366102495801161651795247785304678404353158975523969789024973941147876322008665698227888828059627756926864618265590820082022331791742464800035988805406264686384517937653679830318452864672171775852756092408482565259115105512793953343286378135212631551810119178678530488556208952552697711867777744539253690615948373180478564246131921499643480971270865971875775274899776220168716087346631726032592877183961059705647365564128406707306747984680500793463681333172971658757222588876733330390614697171987022726119619760791687953783913367116136939606240582473450148367817531530927150632939524007774990753281006926990504829205431512059676965040844856445907711971318763769847860382435216195720061797945787321327397603838068135503769430956301327909813835885517794048682076683330727152386595827741526752861228532587933045083241460006392834432924647798402017666855376512356907094775918263934654655215848125187979186003666093023983386389230695917101249178995263048030386930845187540665567881505614237787141429538077317627207238614439462431688845304127697140299864655965663669547204835261732051076853024990062016017657983511212143046557787452841321834337074562278747603553626352674114377585992017347898076429953572335166121124364164452763596026345585087945981162069471003421689947177384836578189943485841671918523631322244548043192381620433018328105010903537656325206852513804911707001721384677661865341822932189911920970038639676541479955448181233120489518992766465863432609626883353036332004122094663180178113813210253993942160995758393451230574969896212067383296968195409506410619216396891877158142628197957496733040140464022203289363405548706065150239744697855443002776133417331648330590768143269998976417707086268817537433551464706171297668928404136336565494027981493372132769610216231199803589774881996289057679663929164826524582646858173346241916202672891395780835914304203992194455642830660207801820659958694484770117227035007200221721323262417350010152615455526325503850624756587262664617205373610283341322153419144176613836767483456012655056396205991316143592384585151763965860468019141220305646802219445350413912101953582583547321334967251860914825019872372011570972739408862160960131026787247044830840792597812067109740244454599417876052707331240166724112377794763135118892200517090154225003423298033280320993079761012760189229365718230551668753357381041259389819184672296122233980661415592572327645014348871326305536545499623065423088822809842094148013021710647779056378552776608331162568061950228970602990960178968014902464282838712815390445830872861098909843585868587908420180014049588941171658497264704329506296811063279955965678380502167923863966414125093024279646609246655966041332314906684296275134312880940663360382930778701882682232534436310861721333184723654371322193542252081736540012176630139634177545936068972321849700351092767185937778377492654152086207490207890693045338572043932597004645548330404428020635652646514720470315348324950532352511514625891737912320060223953306904659016539384583858517563464952004577512036302699145419509439849930263207752866323480156202887265935865150119939782073729867959178506317848577093270084800954187070823694666925266619534443381158027007282836206637550605536408060508752493770881011897357716544555149492277829992559276836441629666381636724308179250801408238840539354803469334998548741817989007767138739169824517833412917940658555678977323910926876563578943079544086060496969598848763570058691110895967058746762702117640447174583955853203338547534507810516666474755466253137054972447037824721767751091034764697353521289545213191377389622820997700182035063095799488814426899943934984205981878908083165058450680342278070297135943564285497880421790561538352376250369012246929441689854863989109297258105468386006867489159662746357117825669903935891452052257666788298342966316560367382448361172094561344747126100904250664857259329310843613973078400101527923129385162137530752343178943663932737144452939208392825049152027126638745332738973806998675030218153681661009940612436644972028955148873679748604894351866473133493808040606351886514854540889445520170620443364182956010617963808319467224494761875242799765868881521367983216290805170512220528054302377022823347568539362071659817269807713843083343988438966706186054452827564704196105027685081937706889393221706012471880672857091718714601090531938351649247025977590019626931165759511504428000077374842443655205545229747545703331565854311794141871711891422880077881295324051420255748656244678470790812900700049861858991428992836910534116177182789597588049998256441964453485697971461174043612167892058666418619881955098378553090707665464156085400352333554421131128284197599424188654532290716544802277745350068826366142692378301284536977244399403445181575227599226567477163078883722154715346423322917932129915807024451368382545346525642940123587956142051587685742120340201836711906073025302306148611880185411153824022118998072752949001996161871743914020329640889463474215020557206970528077333106971779528874880667195954454813860813522081937765347748049802909841103422535550736389760536445805854554644818892808601247260300338812167890137358558257205405240059872172256353978435563648193829434375167960179145650840114675473650799087771551511253905811681968572360548074131357316370189211975978006295840172280001043222944310777967802072268936583051932043656598454312990748651309918268033700670215253494370605434787418117278234513532909788484142869563584432322757952030096868933683018564056632673476315046899128700989985416605974336475766887738766406202069883369917211329950587494920689373620789968578446289098268218126294237847558969258126900591530935639155919860366526063648529589763036530848561616866482129153709047736247254372511862956523681745132063203014011550726880958624560446503751173717617359800082657904114617797640108512857632457390351013304674515288790351482070574095778328013188718536746750161674826945312287314187157750197265943453394067147455137244080196114046675616209812519273964128927924257094845692799834007666281275565791942954824785605416332949985484546125984835284412357954988380583357590792076977444931939180313503033994885861268099912299417916827859000705064941220843052958659982876209994079921826947855872483837632366117618902435875326824337898746261556474890543393090017464949775231317571860598113774317527348946234122211050744248662844125593611304422605028734792686661358081208217309025380871398460047617620930906598848694541244839249992723003617158095078912597536158683338820894330948915966103436765624256849385025636121311714008013280152217802569769102794820584910353579334967921670201260900317991493972381930925386800519857609439591124073325993849282642180380509679600577365478654729707483571026890060704453353245934858261264040967704262515612352797266736985964550472112894268783695604057581173637688299078979409413511481221802419608092752114959055939238559457842937699727800098852515434271644607710027590890344784319557437664791653716901004662431554322824097386008538619176299921648703424198440248974049090325815489723528475621871552893981426833285710160478296310453162960000488559748877025346853721550334563514887069462317961115622405337712859855036013868532234856940928668872843895525641904817234488818966716867523501697842930263598960754757117517675314104503921036008584454160077026175897138309257155471213625558512054408779619857347877783399558165574902547884609786315004767238196473987152757813522220443400421635357833645890127591922757612084788792192024917364422647073795606198619674415349036280191540595527556792793715097438406678892840642771858156326090907939247312844215620751654691196276375436960930629725739415502868362197958067528947178120423990983937771490177367026021738679685661811724762540335684942506231991665906451155212909926644746498865687896670824423641334602492015284686787083839927115152204363763071788030653588673502074881190419121887579791086306349803294023964012806804782299212067807903248371767167755439722283273575056440524285885152368059546863812519294453114533002382032706697125695486857167218764917662304937448458230820106928086691488177933703362830445156304241593548254447983370435190957869663420116438362767153374941619504583176335253442805043928964801371884057899333381061456573231108503020763505356986802962009587908652458807257454765174277642246620347009559035873670398950503753032805260444231215326062875383471732364472305055242853767150635117928722765316978050019050457421111052199945586413962725589836020337028458808463154172713589816819072303740892134464932053348841315511191998351844643885330161205545909313052156125834411220072283509581729956239640484987447469599340557667867100186230411595628944432661596680073362896421867903528071596144329316305309557144574886655421169196317496320702911916677813057067206261434514622330033530469979824016060456134819372560115155835570575961899805311938847091438690396797881509305443455266432389381806041537578758961121081285220693007483166223378026752254138541042500754354910923120657998090789108014349165295085632719016306041571970719479384902728887969749043951525343240596118041671885810846098202813005594760432443548388087854717109693024102436977581684724540497343766448461408155304561866007311187687699000777823760923624232214936035718977196424320748857838849842579086236214374191870906703223755583447881265255877402322033671295885318169241187384744640855090487096780301660728825227593863728871432253824024340744568015559073163855788176762285099013397444000265343831825528979164521262972204042374167705712663422829751643757664627706735559688372947181696561320043758590410151741395645718409876496254657368553898522626992711239253846579906615290798553525052759242309257894727116075786943319624131362348466922134947707961640910829736875534928195213966458310476938390507278254043480585983301954161348666500264494213640087654028279357508190466516585855651248733932179576896991156814992766016998738091472566153514707261857100740192871845649518593584929249016657352709910639128557018525006798641933295406841278640606068920306417963253590127272061362795013972985937847091056508651123622806642180386713023452446738002989870744088601098292926061382263013061042663665693071521670512722580319536283943333236765038804043687966171538564601985693976309590669887759728807672512577133606696101106024860235988207944399462379107202761590105760152734376285019939276619115650646824089963861789783870800074545254814009137716835968669305087472626011721281073873186234428935766117796796791660267291932487468293448760826643003948546882919301621133906636283183883773367322438321913655677867227449329574368677921977937170780655946651918307662368967104869154518688381043023357837695364435997044525787373718997673506598778943198786460461206818399528126152055496355056040575153857002637869202830025422336330032538241338917052643075188091151248481834754986880711352265856255846393040022129681921451223941169130425168487416364144349976393224273074650998893442672311705811321435241393939784830370029914505775085501302506874615424304326679478847109784133337117812875080623733611300517409207273840365506357697174753989180650676382535476691352539977278093155267277511735682663125314762624069172879535850197382609086801601203667154240504483902632838552896521401737595395022685582575016819515432876403299287678579567999237991841550990254379585881678027573027677359287160275438923037858855121820265272448253727671514377684142607215662893105013334258703974253169680585144145173038474728391681357927043109526383307154670154656382065556273125545266464853126808048037738796040657098813729269209864413688274931933906113738241879949356690148889083658904450306227500231921116620574583304598784773594002309338774147323379633084546114832395002881246048697109081662209809173529554913123124906692138195127579856027306125754218980186552402120398131008861609729288747174438089360970132977100987409268893713226463722257727597744298667909058632876079525304647476613456285070503062453289391668400977325622784801103290437959438950882451318915022619994760068164655729257455672755264778252155253915751699389558038329260705228913388781618775347053016704518279182920886604244196975737532820222618407759391805604878388383816775692737658854701277361213158750893108027037596275889263919384904184274493584547397645185734945473832230434134022472760131244129414231011865657559252364364949392180851839650950528390419619819981766355923437119604720616145249809337536968123460229290527906935106778259146457865341326175460140115398619678014621172018118875912733562687318988714363593794041869789671988210316526620470514174022671273846939395201180445390011250379602101644655015957877173462121925069014649565426269769118054173700489456722069430559160818274234634398062822075073316801478225384742417534565979038877741868591592432480089994532541634630919643148902679137917782591667052667275452917196947772179668570057185155731813036866194870960234343298832710784271100508609888962368639987934178159394877078627398292435981792621836856946507630308527541679284303281726294547514608724967181642638239979707510049062096752958097661512138643894704101118595738682749171422091825730671531898291332232424006064164628317011365045862163683109646086844038026716394541787540906494977866733565547136087965184483755893490711257455562915230013200177528344220353874426441442063558350398590315432408999305112232974374431851547088302563671742518767776413543438269573209453467719650475958575209299096546339148220245013248275318206936114767123583675448482137152098723710829880442103993078711581779175704318882012887541381388994193574878765234249016434193436401156708102811070615288482982724204964212084317047542498460079053188120701547949337633133250222750191828269969162176150735286449619492431509168565547690335924891284288790960882169883479357920120772402952652388276296427541779366276398028186697548918407307707208360533207734002167192303390692874582808398438238698185231584987133249747328125556036280885862165943366470831492609923229176995928250516018480318167750141521911063084198766019284176559045608522681969456870777338544087761338979811804492997868281797813009222083272939413713814586965034782186038869188271289433098465897201275339804320910397610292731352984221480207664414786628824879530928710177505389231063230150400552289804235899186842560504120385884072399190228755533842427066677312277243749007859418371517973546248192503723122298955345998535769985124165220486202618227210068765619068114250511968869570646969073815283229102652745455133946516030939566322428377798132138809289835625424018695979137332966706431300662953811390266298217416751944576377668014270831727156824021676414154771573406893766069843524643135204837248568848602985237139574199564807767704348527202885841322517325769321193913979192945285151859653310082463413220434836836270472951579244127278703773185858671206550871465986546255136598473541726780993068576503167578560515999205991712708162940631639040746163839663083931721631577015084094790717582588737170035429851963124033483191757365653910880039258286628687103948555746563290791176807298428249038344567328498094700701429103692483417691409827590571096513490885497611644494371661697145253414114329916304568171892801609532799337101218467732333372157044969833277284002174209440083290976552985957262132532660211531168047451589676499500374265211438513798498878812649740790245858901891189886796149594373402483945396802620733432469161325710262246592478463198188764316261270835242012434249569186300300186950919801022113356052843798971306934633550448868299573324860818972923257495193629324837878894179757117585438652554661535098969380071417461172916446796690458957956618479150576232593129984469245175251279576415252246706672874111906021076146354711921083182906764701781517133127002749363950950411358315003472366103085455876654364435701871002627992726579556282486161242266742970519657608220840096039642740521657756789000704222107333627913208062451887724410552966840169456456709793465923747717745991239488197815834984914518677566921826650024773006667802683547436498827680781926904486400035079934193816754129123268665587616926722736287775782171007387065303097126843923253354800456903699441612927897447168833300448682562883657396255124025756028960507598422759578846112649358818992303791656198152195882124913406722680676251867779602929380398823103211493286866183268669361790326244073066111833922184112441336966209378591793999116116141641815635587032813871122602883468008866638944546808324876371309669173390603640315868394622780362798421281208023279834235061092921604782112448587285380512260496805021007650707557228104666928345155507404350145770136062228466278791588019491107281825967350536742711976466907373999793114366950540362474347299088667170991772272483693953040836058328590899907067079635629103753436018204253986614776538785123095048288049255603507032180792699475329995445696739334680150960104395526362289177589279513098635402504276972389713611813542972774271363975912639967517250696817486357067692532986332332631525231912015870212286813488496280997417147888015565523029066907599184001929021577298648172384924303681419307143445713236836745450329262289528609329061830128094786507451193215065254524978131565530140118172164222206978528137916944073464275442052286301721615271306580484900459317909891908737386971941711803353903215124209635270458477237974935978946200093369388617729713857326329270883808334091035787136739512201132583663868036234813180564528666935513999459548169152755784110225582467905922419973992877658711481468676949932520742855111228233988850515121235469520297098100401564109039159032719198196960732728788732824752323318651403394568632858714927777227183914618351481733683131798246532172932655015177892012684272849308959491752779387976000611449128467703706178287970144694439400703298849980050171058411900559572046424538303106772424008961599496797862688382434369437892269091170924706229398038109395067726371536268445975687249774505524705892201592715417234351952658424501227086902257511068293168472493538147902382234061614007839388173866170254746726933739987266147647531903955516691559949602092653061666573005209302600136160751718808924549041058729371847707988646837884170034463796238496457923313889674022219517504209998446498840891810231279580490987963683333982351603394653344287350352340647725259069928859085520878187548415370289485744252108641124359783580941795418726328907645689640425249245890686944145156706650509195748489617801293792228657001567693991745882474770342329486773506953370482872342274232402022402383673548074047464791518077817113727242144850503152199116846857093143781680675906374825934762810282514356684664805058583797277703683249075278201611766356574333131699553805917855535453218609372488245222533252452490995081145773103092845930091139332348138792360840922647641325324333420596681201382458796101505501923150465128450453529949525259326055853528265779695173463957927448489977400996208686051085290893369407835961049854621179906774991862392184813495210247246356673370389263585559518503292284453106665674391641218484888715095360607609508228372577189205017910562652528394288127969980371559266399767905177216942593378157631430206944541355440518527404458270840457766266316158351540306071877170787646498679491612721906834540292428471104676971380685517932233282870180103322532980203830252074665940582328901547752270743047745796681998258365878009154828768905693651650143455512948991742063145340256104060403577143862793896105399828536768797758654764705342463880484845500018781708065997806004387488647792844298964331170412140855316706017251173013082188039869491140561196725213885794315268937200882580890231199548034898820524706004122218198422216685989893318664225938292480002088245366120620026639197468915616628845637807129039470570254502204663135685632861965054061420473237163750537878688952945003938794647095199593174766819148655810981462365982131710030627856745513114481377596786560663746886734782618968825938459588957988995694966443441631721060458202655009489047003055483227643967744553884630166431877913004243435281264993962528299492017516501535907094971712324596803570513213350831544095216887388095860764631245882483150165790212428346689803234200879656597175505298395668151238630699696958037063793558981446550952034949253446569235014114018285450152566321903296861071934894394037639507341850132924488099940879767968585812882369795038020330414233907734888858868861173718705056941585532994056077029347925510894988059780417118487214978200998247754941592177399229259987043907577741035892971361455015755967643109143677286713544247218365231659396737211161149447305775863481682639703766236559571076592971640790505083215880870390912339447409121189273421434411858611419326408459560726458240501544560382809214386376078542734221561556158709828866788653866674826521967188154358020416090624996906223664565458492050842589438600483331634099038111114423248304023958749493099563757203978557595330963762592913918279413589323292761016079881136002315364125187028493698134573267353966082766641794676072405296209207515167314009610608783836620016613433780666995160079535227629203422628057786292331074799392992913740952151958865303585120322308933139780186879811400335318061905481610309217200080587899716762863068404815224566264017361047232620597802738447530930983713809244299217547140574644143962075987974645650300543121840864548269026805848946080774135298733577053470026326326038393628993313322506723482812962425559899980774756606670262672659783191576948890465535482373119456888442967517705122354440661099261793749927725256446784381565634944704444178472436724293276312179642553246606050101506687913806146984148467648032372342595979026264112288382414909285983678320799616306664818892338405697739358325720185750462164612251084842810197881696095459234314923452139129333679962075287494911686321749438459368151043846887603458508668803885337968014221079871089775408515919952116962345489650957642168033199521967814266048214489183436229974374718456694310918547137320510784875110617611843554985120128033980973260515301253193897323838599708671373442185165713132429044918644304843743983744992044067158041784294161540056689487056865310213021634966096607809107880556563872923048810638626335290524750485297816796125060539563910355038620001848373035554911757442201237680792610173064778505369465291964769838874077180065253076484349652959292979932697629734896081368430908237215650045947137560797841101193962449809821561979244743201904009334684030142946381748668395072687554551546094182135143722765660113387301324030583034116769734534880599428666839209863226231248259280692303125818950888735162125801204792775990265245843384494198536779112379930952110824825472233351103672084452222354582946105677578872675890256791399204047986098818192538443573613915889669268847065251248469714667333267566050678432419589619264657636565307262927239811055275199173523277252915794882147640896564566486779446816693005397090569006299959324732781201772798470292646684507226078187775897030407146226932571601366280724448711282059101682910568879257174116397946124282928378340453770136919490769260162230760814620323544265722367616438700569866996093966765333630249358900659607936212956317067540793933527810545400143156049405377927152816350898133954911695759175651597289353116392543271781512576641188974744198110017059427005865247485761810410005226595618676304908343725965130046617732240998210045684112839449013413270604140291857345212644269994371130601067156690749232450706879523990115612171965772550229460530474755733420362176306595904198016890886304210200714966050123337796819068353651655278402734561348505218422384351590385632247778423658575545614505835854024703484332109020219232413693139009818699699727066448753181015937983729081850213120742444600627877467829621041138403076048712838461326121013287784363323903487929631334639597402030733804941778464476111067929787981652858834948226935044978093742195504855979038991508047852420715643664520545858773773333957624097804888590587154603121790886188976351151287212056504085535060007207519730189994655874149667847221489762618385806701065456902872700023186749820717149439421414284737603090929663101599682137823213190009898588908499416173591103781641756957469803284754652688446146349502897275811874586880697861956542137369984381984337920650373876663752222135023062956909336622655879581382523776789697327565941883432224978065982081388547734250319091523506713284227028957086514118443701320558332085993283243823698460652380027808496528205883910787526381571021231439335862144804452632103419565066457291504306767281891633800031103960013451492752974228734576363864501732890963587942715817666862974856346788331196969251048451206352665192250525865886346530062477560091275209574293300647096867638029356431473239600094092357138593473405369008294953318688387569103365061996270009032405205424061610398563006288992624262289375754617364241372012388548104071587155988326244394606640689208414389412660613983964376531243458534152603958290308169348283612585723380678291175799645968253852809976753775021496378755543514989649743096795725510853408439544798115209988512596229205622182228954810881407091879955937514763304336307105371957431061404559140229938121880925123461039476794723444406205404744414543328560019824551994179942829368841553224907914396235408464649659411243655890599285024339057106344924462544139637178258507389836805563896259143879824373717423482968351546763378688065751497523758974854197994802469458869580246170443503349185824218244782967110425379518465036367954954234861878474305340821013186378088367256225812973057051660767376290418357192804688178364850556396282526708216644531016193943819875275199093362911024098804601172993233026712612900160377550656429695156687208408854036801914839525336319030578697408606575004312792054962817530482864983487098388961703397913986953219246081743873380434232170724523225441064553671356629835576220603494520401555363904413371160316964950579646149241478908492519372154967776984743507456591303122168567979800668795702339668545897405053328532744407894742768182379877025927240769849012145201933975344842165268979499045235170444867750199436918435514335194058999188175994679871648450456870729605341214661256986970042710709608834133873196358264717674356726114508788929300168509639522410308977865785468320428561637056584277953341707875176024377425223374671474731023700397046423227184829038624833193233057032175722161076311032869501644875236706308477771350975439717223212165927056323886603851570437190622039581572781911730222526954233745710866737130499422285963323593619756384928071411269397568497343712685601394778739331847324512970663335758847567237050023591075397343207946787986068672811193284380234412860936241998937361919862498994173947462614963561372564729806832586047598620448681336251633872582585248616403755940333597997274322976166181909027229620371596071235834435516443942981383971813277928131438155077611671779493089156469785936629714567310599387865896516762708227568642552462805056129297509678879100256413368011870959809052107306205496590885132240762835626427155578164389552216117074189383508389028616526119637660223114619324387052371047502079331325762568612271165107859470842223041930762619727452784373565692075847073768503359033117650171274878115727163206939883384827499610487748666399929947714433315998806727401035311078309224789732972522920284227364658027133332529924209747351155831423963747087353750776612086646602193636284077360366236797967582204825625517795804542152182108811513327673129949043511711738798267347108052565584396011160272440997697046289880564331968249374106001660353258252805471854770393223129442235375326079504761773475016126799910030349250761417151021481698797206578500316947763986059523249190274802074365837544409419978158107337619149643617253111146672229378311823108777212641900730508320683143724881039423930178578649319112197285664185728861501617924630315274793611106954415628297385836129749214559008831925941417071139587544981420665812082786608238764836265150131719010376544937060036542747800767931409048435482400134357025559555875107308960984088918249572676845187500895932863154477476162759842375276957682152361854190103008529163356277471669277504999797279582974851615300758114486960955861823670601617099070042002850386941862661467012562598870553261467807873912193564555685479241082560908041584851236826151334594779982883766900386540203681688012317248910012228864209710482484106031413531514087836064119483194443234323477356792848530070734089679147608833045187350027666647215769638781350826480011409745567682376713769307213023519000593505399719868232872439655942928504614675305461800258802195593665054754666600444806043119265078462153398322560835457251506561778651401007382139977493136383745831782210942903686290898366147828093028753823009449000999389896769053333795973077187962579865343582041990047377066083391760916425320699618517607046217755738454245644174009862985367849491124117858425324445999188586646337413067229657956953937693566769986976136685501879533210031438463223237357542162983204679383668035782607205680557581366463894873274991094779666285919384400462885075496372346271378369813780379951739766705038831018534503395424061222589363305777607995072527859618017935820093299411981422744805915817530962496576252557941838413901735770420994359298993874224989002732609752453944255445886397633885122089023235690682551523449137352673083490690882444652599822628618182606599332817252836459981625725559605095305529538865196837045892954151944923646490877755234798510889363560446728696042187026338771749868406256901898799100301976482885319827612472730251717706242959209020491313609778871516993467893927393643555767125779040108557171931474526649447670601257278639594941797363738405660764857526798032525654877430152482924484792127332310509923423903296796405905850782949248799010595241568720582003507258414575618287068862907004088547537081802294289737684804054317334356563691408989543292575142548467908041688024792884373820337735219857063831279359779346514604638488997312232312023440712395434121101737521176575651542947536426140717135762698846798408161764647489706515789662753054862768608603125834096292895729519730643677289159685305639435222891239677491299666970718607055867464866242172704058913800640804446034271334859313485263001938952861716743786361003509930553387583512101785675042813454214084766810460272828456172777340174022614289792871068076691655853474063079888154046838288739616353586116613496098860155451411059447469004941343266514395124900334033478991756284184857895808843092737570379590696603320105725776455677399773459431302950981950006332815706610531994759313757345506903831660558273034025227402574393407751956460193743065461240273000069241057294943263455791073869963748449007042351448938032775151759930808708463329065854270731718658455257715790854671949712587919368388123139347857924361263071678381128717739594620366108738130118439574753536162407536296817797128619366849352128921508221961191939371497388014487722100554919376115205417105346401004464159737648345214176214726375182416304835070691005410591638133075317338245049826683681820531689542526960149337448734892835105932226969300336837857916784969201836912928921691685335734554843278159547133313151249586202103483584315273178977029588317441994416779478944666929929728146426237016088140171965135454533112705755661806404696498645489665590590666496968568283183146607708200382338932775998875052985797581555212932511925016330724684923608673345551878300809632314093532264019575670539316277298545881103567197349205695097669839275625476003719302086382875950730083796709768767644827443896183222581732187511407710974511073667117025510892988401351526332776761043114171000158851573798424420109534680634176726620858787088658010830821909720353338994824951106770593442993316519715180362004153807901874869018806029552619955750723160000500088181927423261174187824063674960318958653835183681080076262358235069861419582057399703052617316831498896866505254966255291693291950885064023494647083927081344877280187032360451542038708391136706445267468864595242615083652493996500582777915881431606015524330452735521555451100523780898412043122749509059739142975931205544932983257562123084395950754067318812799363468780328552760775828159118863128148414518978294404219788934682873991034592911371295609539892592516165865837975883184160319060670070850181836227418757989346306955982438260416682597319055766604678026195788047522648313440612374558771312580324818887453647427578329140255328535572905273425235367753318623653581279677442865145556038922816841772488249556238819301266956828683180527586583229206274440220025671794505396979515609631961345288222320022875850651410417165605656018771352875510259243018194656280222910844697124753498782226521804400894447568698491247090693988786244653854008396140624217987295751133776554211035083236946222720185856566187703028247594187863234661660731731900212650879136575392556989801836852616028502956739159094811664115105294621797687623030036190564686038735399917028633500028635674228110426904239802530389444116908079438882040170479740401888695204141022157596590538256675129043259941153393630611287839603976115123464299404780829425101482734053783593527190946133646738038573352882121338168729075520219288017296344965750761759774137143422307583637491162887967590804076061718740457077774252879428941840124890851956732259423060138493746527677974698660069422999717309866494599510988112281832750002056361873960549823672381990841013510997145557649923365348445680119634084062291998158999575700106534207870053956730756300263680247071970127330360092071210227427104781510957930176184798262259614957747288662979186296679913898996920077627067964329031837326278692247965223149566904319240727661956034103097280981139163386507873998902338747577398536758606369794024934690775398292712863248870574017170768466936726160562692419977610286027924083195084636254542097130521914079248527762433306566448357922662372740052891034898365944282471763124025142644494557877916574315173364530316947144010917851922911524757509912307364622165145705803044531217044586736005258362427994692532621195008721021351412290797107354277628291777801745112654012125069013843315215227899202097560966963484900851332918719206868324358047274082396727971278335237364173367840378887137232356764699277886191126928947466552929302351077210038996958531492251232968110124594601194611243830300034365575798213631948422162278139719744145880975893692818027822220070783814246331940880810816481296203398229922077586391798708943000737551612075773760416488232563146246796572372534329451574278683982471259444141401370469030770377888416040895286706591468373718536344812423180488628405582465358323843659187495375416463427239280321910940458081897981622511530140762168471227640885426862858093172106418327083215417078199113045376362956667184311058830079092571051641342506021091469845412181634676911909409643421972694321136979636660523340416556724445020063370067902707959489102673065333367914162670334233058057240580837502438023334383375675128920022785776819385124194162548854682545566304244085190074497003242835703463940877367454429181836865447200732324835237849799642387689919850992816346835726178338670311465752358541674540669570533037084518733180291564271570025628728789242798678205226636633881910635846817038092635243460175024398607620141449170661579795168644499050800876764932465240463996289755305625711530012848812324399465176744107639540885809921258636410943187389544011822049755897508956477393584163324396490099404362262990479849620817846071028560242053765960806683542245727035024310933460264746356878076915544393784099193465927555532075656629323811955664268718123949312204104620484531340652444798163798748647088721519187174956608114160171235796920190638337194031418284231610489153861987511778251882025715364247024595748086751168352928223536403403723031348102393004738368883652590194689259992493046587670949521080677171810108556553255961600578110648921193389031761020997383645008158629661935406520874502185740416803834721430703953629487272757236003171426743516965868007647796785366359270330393246062733017148165865472166489731884370852678738024035184116117179050097769791795477423925853496253919023051616875036450752826719173464060621952061123575558360222262605116411065457849882087183044536395838955765251879630567266719305674389310945676903175678147241666876643027275237859850496318954485704013728894786240887443235898783823940467792377857467671709395084649060417131062524837777300078242178003342030690722226856528402080580458312646202840682709652132384068519178335357929028833998669823154581919573582070744317262543727468313763403446803596585410037162726383656130496284799399776433076246949114186010301184131637728051057880669722919403224817874755792629224631610410933313826830711683994338632436099967559215296316541514030751530244194862337555078806538449738098269182837648500208329745484916808239621490112069881912539983177990739876780283007930044580115178947355277365794228078239473708705820242500118828497837977467437380301213020020129066397055237025850877192519662995969046208562138427936250277573384784770003750031345875392989098119900827514081011249466068415558711228833845818526444888778645740958799884905161221081216323719469750636536378280992502208382474006016434441623237555231742543739908178655054317086381108648699185482264949252437710793142381671037589886453339864964371019728885837510993801493818924624891109424985678697336897592808822540931542868416294555770667413003933050703551676164049471176165151132137682550046614739395735408250602974838166306120763476536493562002867057073420851868561590773735198307098563450111288883799862573040647100976490489754844933388699252904006660858421127512708136829965663015708294791510102459286467120250301172769809686661798703414529122630610373175755611719303222819988954301488797495604510890901321763737429147856316225272074664433978416946945972126500347619804686154214541906905055904605492406725814640834225263346874146695751910549374041860563098628954868803371530516421086460841023871144608209529079414841021732989140204129330352409898486865880574943754824913899610809757571138502358613582608217846826566872519449938204722749522008325390673869699928112120101752039722830094273650301820501041690721667106660660429500433786964512829626063075128095948845497165328868471875885474855782519919123441407224871383860985448959028731393545683148500588146320696554032320013856591138706268268870805450505334469752259745412015051870343245211152693151037775797242989175058630456286752485607094709066249417046206057642566127906871000523789300392601254583441612590072564250588984626338996472167878854909328991688728399275035301620489227994539733912390737159752107665327395046945568493860860211628597294308846876402924672314355323467044890687813493964338964475615305715471938772292478168406257986667258902729598008575983228199418199837448187844234521268728094127946948705500566707679229512623280640719616269952842578920405853093692816442821706642034861751811544251678288328937634162857821120498333546370012587262052272168690852440664669994850950961919588115454329058322338700993813041365215222391448448232360472111098361863861617833990352833959529118966962311258793029167057379372316949070703155473938494854983889656711779467569605619717517533901979849106064703344353906198310287021059549385687980246747371261614665710432093366435505488947831301837698475147186706574469425200662902411923854300893784277790295181936480186966040057247223925369321712340016570616407484851053624424748480654542092702322689061232706980274911919609683729097301905889273398136641947338764119675576965740916559693003766611289268792794775619621266186244721460512788211416933323828816222994139735394517497542183938047633081178527301842312491366519537806460548062093077365309381221149673430582560766891800512425872505786071252803654933532612254838998227573827640276934155369081877429241675740649413416270515946553328595070164051748155624311708974444817237613906103186442094075373565613017969388575869461444347109244748338852494966660893433480015048480211266969008008138335519380451726120973755021246483989628092857179724650486279297183991972197094398930492704417519277545202452551834772838491144938711967404707134851066700072591867107418102298849580067376974815907523232750160135415736583508512140177878978247661658508639239627132620022408610707837680924852581132393257307966596044450250212733193203092828806112170791132993580356822290410635494018275844272840858769841647031377937631435576481706525742640010169843619989822507201306178817312644652682460577499572761458507185335339743155572859040920078270896486509483406685373600789029710364070178587003118705746836109836197025601027523419958940289032889898037799704490106832944231913436563649450450509316535152323037379700239821277602462994313912745087308206033839680616637687466602796584054375563861522090548148600055450814786131939468834755036201461232396516226140219894006678788786174968686855764516181738813680142515819702560240659669059994617555644220871134577620999357985202504475073190866809037055226677710272775669591994849411648151721570465478289808430998848928940308223418287418844664859671912302717248521857991374501308943006589508729839503266026712086389817469761969164346699798096757575728715628592545078038811927898942778549038180395685672487598220877041529459325128023265838310848552448122440485403486864594769883992608456026208091905001861060666174574697599042850851097792088591878242349817613973254428053089554862471051390854387885828989996346078504209089729462895729267832031342591442116181508158976076860785859704152860391671407307323028211552159669917325452770272414251236370424703902689972571713039592527743160746101023983076587624579637825708699080970089608854014515137294144954726241725690588857910568857848314489049583505650094704709876514134792315690952590069805773577752868592456286109383309238417132807135774869446341375953903618007934487995600193126500753108191234296981067975646498157172337655171064524703381491524635787050972113867212029115479223067167342765875244288882271913839553936795214901603418744455328166472809500623451243505509728030793103734804723450441986422791810641000387442066963276890818654349436513383964238957773721347564883662107425867592639800008664847319179665813444104785869702483977591857936480505680199937202472853048804615216570195614477612552655777197856694628305217353345671219410135883941897391919065621318711143652317338439233530106092053623627361152549253638061321073028299861452929387620086899575169519209772041522867547515326110652096174321466723042694426150682277579785396632395194366436583213013148883816840359602617325292199894580264794460722980141586564129339692743601297412778413696507305313993140838166016704604832824290512521916220919391434625564845079078870898756146980734228271678427977728680607341171272210616867686170597335738255277349913432900086416879688826842937654703343781923569265591191415120791239553610206646108038457662774160117785319690643275745015640132561573071287657582824861884651709182180149693766685486647990913100335641320500871225857636123064972874998866947214658932810014339951606974131502470768492988977250079937027177029706258460846344907098629009703258451982657183790408469486952351794951089777266284850578945791050622277199467887976293642664118452518249129836888602524678119101441196370135426517789204711349622912221953141541170495178696934582871132144030650726141833143795802021250603110467825821463645566379540544581612575559792396264101909046999551889072446530618389398490629106921302172763077705042589047097243215720503181400433898211583869837837148467196674700860092167242376379556054907446319777128778582956041863427876875560521325378394250692792665129021066143811920853574144359603602398483283698383503201990952710292186811339083126441058428271058286773930738079370562615199735909110979117655581754979431588390848569276028082165211450159700907513337458550761840449413280728879857293955180896880371051690612248408528019532374839672286031920503484973348072125878017830850977049360889910269367691278147765037835907591362463427739378816247651955430556660154787809385977605283300673055360744468624080529278063722571264477149453506205465595454352942370975909403605871483654900442585517781574337943548031127542403242491575540906151897742998459006171085607383836374627475429401847199635986463362767369591178109701279915181938777248508070555674908035819056096681563480676785918447907875232294634588543915083410322694270386604445246768633456577603483156510094606084554922283183746356484169464534623955770388745286008614057557919436362557423647450784128409686671341424435359909606308762032735808285569477065794049822194057279177174950185149340731987798311025547907284604040577354117291327386862632639812567605232365074762519447882198039142945113643374452021021265779363124600130936824417083139570031936385907601323165898441713085161176092841798208098463987029439551020294672398156342098256113186096124135213333876861373795539244705554659706784715941943965026002364267455549217208501788492241497882309135632929750274970072086098587760519697257484506913507834812860229242761946284190820156880065774904858188390922553331035212137077978183029619430426311356351833699501625422984824129818053278358894052041780676926001238758669696129848795857824684882060960842614989744114822697434314035977259533942869375383971959067172180359414955842668350529142966689874038010716244730330285370745917561196317809055216026025996661754208380334970564124777311600673179017556223712311550598071750531572860749088146558187120197432205581761542500440002357611659675460514030363800233151809713466530313054740373918288866296161954160153467831407493257900726274632555420144154612391956797719463021317988562598614882207731047629677306659281885834150869142106836187512280669441535887064881401492175359698767200140239792042898722851512332419709702573839302739184693097077312437044845251980283489922033323715308521501520400781579523200228689082841853820899326103538348018435296551735844073890327752208851806187693443652931459554690338174064824985187828259711801492190561692034641052847386069463084267571837742269112343499611870826017836111662469536190397380809347644407845977724843494659525029520349959639966195412392268742956234418363171731328128385790354704325026374040246298116581435408848414312762409355451051145562628438166563385333988195088127318866935179427385958588811927786799769101116554726144414507884112822877450445090088522341540989456405880744484917411294917887267898078997051414050465344240768034434747995437708900478525322220454805246137009602343743348726780756725664027806870111306062612555481108091803650099025478667115027597860074613843688914728709436821165889345708077669488873452652282888129536912805036519441528292137020167896994407225654429489843436340162898204600535686418705325282056225614261580324146281424277557906552645925495208097140527580587125110472276563782698176437411261968359647006252413473274631934916334454778761440295617457831491027760325841093068275368901294019810861978102532318337264347540326294317947315592198048471364732256269860391047937619606209310372715201290896044677722432678949405170514889031249066518174801310502536565521930784802977953523517313565728281547622371114535601208844273098566270935491984786187503788750404321196419479285230054053630677648365888986627078878136794426504950051157928354062172612534981890649743909995252643441593624288276014366731176175894302152994426982672618010168306802635872232101198115168087137296276485081062649858334051907292818044618550280004538909773799110819899079271660821168061210857577121125016829031273288001588307878770637025181898225401767513487284480188520092283319896747363315621864760750427669524155294822292378328539156737680536837348581519833554177585579626105834175996977556129510075111525492018244430354580960856320919447612304072361882158649140774813133052295005159464298691213807167413415426166703126919008236141512514531010456265064125206528969238413261102547310091583297073448199081486662248943778958255128023848562868270735101129112248546919916454309575545239274073156040933284594722844804185454288441773828183326720919090270769429992958270676904764789187874490330406247039301022664709986094750303508621815266211611973749459786526370640396073513275112311560736956343023841197939740869745838651932115139841705740892355689891404531223389729672820093467685306920354861350132942724933209104486011044659468627284640855465312472284516165203239406090677571791129258576523036407428675326488640036781013389143004154282916083889651165344950407980098766044053365484932588384043367896673418067431060661859577595246010056644154036490752522125987006805831511317142941806135065577946154574877900923679843156265411991151207131518175380826789452974525210367519223726306111868830806664924820828148977735858653815929953203862616683344107552065520560866732592549462083231840773025621789493231505083112137426187233881808032069206188709688341403113863670653321540735353473205147260496419315493233606122271897603427848532212132079246618837487312122934485337031786193477900908859151983347160579375168044064592234896843927163109643903396274342949026461918935665741199018987819606386370717001559340438774459077686709027348908157323178903668305979429809171160769929258312853244723231664360092551205042540225804174229096991309206283077483587824911090912607318532704978654493362900857622445677452075268715629327718255996501879673910517521659889180667949894989318982819921334477766440270689546855351482378221182924896924902434185904915283050278118977994394138568121396840846935727259103398528118112194347566166692608818198019311795592294285077359100723595954192038106885568587910572398076200785827833083235754915045971127774361174145599938233338700579178683763925461940754487580093701140225174257670571053454815136109595923927744099272292495433081601648072634840669477165832124353749700486862765761298092455819242671447979453851858155838043314197579269351230502871832425105545492518711839406684343044772265785721886022410582797041048368643609956474926143914767097362039915902231477702715811565756362277405395537129229332619166406453792160903143927605232630635023429394578943611600296195641591327345641816016290089897615219562090104240469205156509274064267972933290399526369507814142014544423002220480166867189267447205094894710742274569401982637179895025528601987541525190547802028970355803442890085238345532583064843863388471320843687812361247665526006714497890293723757490808476522286819396572186323179003900460852131239425163165995296437638573327041145989197540660423755876589132700346030828767879692253750015348839642590520833649550569518117529444583668137182325771950983894077417869172098497610744949290143396081558984628958618126871591808428974528764692962770786349175255166778322119723408759720228043577812136287997719946453192161670547118320037721859837897555012247621476145065477505995151888612811287471307739094473221729924388198785756893631164944117307422524625336156929598834691065736313812207391991041299339850674373886309676411177727738783363371517320710812455331904955891327525381294377373303231412062077795391586127356501741204415138041906442455515835732409661914316501758677711052762831558032243385427488379151978866087124102698388551051860607101935049734965448883803543076003784397972900827432109749712885651894006442679188525973988616570495908951447141867810827580433938150769896037124585978435097782442856260181313442808613286383150733742223869290458523464048786081659167758576447476380034527246462250633606971449648751211381548226009921581979239331015863681361750246527615438183587660514199099988229085458680000857786411573230740428581665844985035356863932025785284507715922082494686178769554266618223553679296080357977823543168403372585682739020854541798252086382855806391266853991039701079806457279626283566581912883576361914830650944456222899241413818880624362856400315872580888435753775513208490505999257970807838013249992772591748331404920667435424531801374412525980384930136127177876358588865197465202969531108256339661193711674927782990432363859897667442188628653677220650165168233600328595386476536150168035930611992381651294698545094295195388124825994382154323193084259475508312847827736349875800749752918686900563928927375657944589005272803450136424674461610202428848562494533373187874152787393990058758600772803995774187900797318148349850162423948757596749988283097931621695191103381909202897165243652116941063999469327431737034609758574795617479839786744881200561296134534663534838069939039853795778654219965508178535343170421378234387055459898532613261345156762623202368258606218540125960052966287238502056079036813953748976849670407923220462493519604864159843409178600180610651030731402638152025420846103833789955468835300300332534651548611221130754471174471976260512183111675204632973933191590973779054987422600316950652150300783316451442996743985071175834532501997574835920399525149713861801673852290094284255563471598580002856689521912215779180527487983745100193545082912858995189970250080948081646460752475483399453534331728449682419526297499953454849144205240745274893772429602821490757409732802835067598306574474131734173537692284263457729275537252016928632026304333152713738643917587293837572843755205912942329806138438317652502667544736509835618178593969650238291256081208185104806020771552362120375758215098042575046453264455853769267270887018574725149721400970122606792553157709602652829027884258769426386349901654010060554548686809293619816018583961671544292934052095336636738451366511058640312224614705964994605416241086666544268065568389620366248218729095641568036889651436915884619073471656610597783297922621114419904614762678806625725675184751253466534402688105259909515031315301723226425145161150741953804249215420015331467507549482633167327553038406880060983793850422723247100159119754418458502069406277661363077609863721254353839219815118211196135631659647343665276616458176751706350853636381215276823262772824038521132250193515206813495412503335671525200044258321011367998456755581273913610227344676821305747760057909595139913526735324779034164207932767885533634694941583446036842875087568115601695610426355699493198511742166971689043744726122702608584655594719903822385050218775082723162780563101932873147337209414598112138374255060905809226673520906175519594040225584332816685064049186341509238541942509312624872372521440529626613569895040424507433667938097424861874721442172836296153646164762939351058373970789674626132728592994094955851675305536412645763560314683874719921530913602758512882582836452634628725571052014978757059965284800672216023729969103187044333164568451250271939962558232488734661903889463479188811651781834174622601625897496314672948354101959394444613889825617681773165540047992834634680890011074201467387167726702100824516112262047886889669921325991589051900691706780075555894149516061983416482154278186070472042739551691348231943312595983236335928688347512371332963621875105172185205744333447678530172680874758383512997665352697624019317406562211602228546640131457787774113532614907481317802933943096732893043736559591610771984714656115616407842865244917233424836299420438174062452012819998837029155573969260098116249648449699616814666366687883199771828278156643549984908654473809121137445262490061698248913394250916576610404003749676239094257507827979226936698513010578418158241646153294037969175515642284821696090963715517447990024902722177198847270913149673725432739849992790290279854064405570245664807922298220882321810094165318569006998809210091971868094505361643233277487705853014970943718414266285945150063949187080491439333456577793606052549922615930871921171146914022128485825573432499351748192340978109976687318562400015058105217941348921814082266555684499889632690015149600762058283047138465011523613854694865903833270662894820713818268663831410312194888342879832178125965631695956338962698804219179569203835688185496442140170655080161026775582601553452154823833841245997647905717008192733558240538738413693956834892365526868020388406852756872719707505406700889026107462409996974551454795378831816240318757624290429457396028803138565720390170858884374603607601642153255726093201771242590832063574609867870373328561083267201292872086386472072312925229891915948031703630016047940548299973488198558992668842716362144009796571772941758688030325588297775373079634827577049499618457881225924309994035552382976791947594641315691458971938256062758357805567957781643993138595785914660249259805483550776201368485707220177112063309112299359526534544906412586139197626609944311773533633635952350132306758468617373104382002224906497186479663445726146150696674807479338572725940636641967372929580343185139526006475106860400075860192658045340177040994263740539886904756058741214843316272155586736376524521118332601039010431210068286817022627541178666135690039105919815204645756348276324237856083985650123174393188396619737366458144839509469559811761192303182614421980938837999717744805620870538494270782044358286902801980463493805466743664529957402094184831253099562718534493283004823388436523358801321933098586496071311384737427109828494010674083184598059322687468437796251904878392068949606215141615157533372308379160112638088207337038920014059920136580995738753787188563451120294185353325033726570117324541637696113238752163849470662122135437877053380920676887684679036991416722947933303532229320565161934327819523245183637287438407400791200872949728362001284428055687301809467640729831147032522552770850079472038719590614507606176473198373690205696165690054457022675919654566218944173432498928852995644904339170209811499010965305911382109493891603439564678718458039702298536374284120367723407026942754777052156865102806216562127379494284839524547208969351444917868646630630019223116636514840228599035135753600218716717373291099801220202142355449829600421990654884608532231753359551729169373166205276719704652080955756795038285225457064518200598833623950831656936180576491846215007966712796430133431970327990887241334639700718787081808526959963411013654913188395263915167138865440853580055482078379981646325965389720526636726176908339771655201002509275620809703320263205051118134981417301323878560170508588142252181784640561413191381981855025412462540261042523133102446652399065542202525972491922150531087034723649057062452329331712359282421395032452264722497013941841948448683890696967336701068631976313228718646045787994080341356116667219357905009222848060384188895617686272375995751826095957967431026605446416604285526974182765345668314921147336408564097454121156982685081620671458356424401505177557725496981956380511396333387512594652159760324649957104074273406674913791501660297064407137625868506734726677002127807495825923293974588942526770928250265107690886098524341303996441473780028410704676280266034915898559858675088025108684082204682438435450711676854790029175950908308388794490190020037281358360076069676359463962991589937765553414401748654898585519900369879133830336221182469119209370696087029935789010287878668179519054468618067877149992026129206198445747645636800920855712768936345177776524831104832617746335401256421903768835029418958671636618626085043786281666835809930896480814156297223017282932024297350891111620449130967073370347948545293484278010406687387554173513084637073396983074090076551066612969795913418208377763159639968986818880618458929059774356533814788740726979217482637597944959176856155780218028904396730163042319343772449851355035052968025161372430598318147022919901753065361843642438599009170539011876710724138126332997435928004876345243507235641070920024022824432788910214609690435395477228364341641582059094450256579677332230128900915489727789909543711666699084248712774607656309322596904344837389590357253568356625378418563912885633280502415565323073479993545974102847251456248009717079359409506565360974526481972649870723934600579120141173349479193054112128434129009606088131091304582021855644801614800733007206271900822413169236965551798217030298192877928814541617304537457083423367005750797735983306614048764948094319650500987907519457632332730689217240207105708572646434636646835654617986585997633948127095276121495172819981498359944449967039366544733315761518206897146036345385818613009656265826745927864803585207081142188347789665529023393144660579108926377039802163437892163438268278720564960330752822563818104864171946546912016694301415957571363855682725843990850288208404165262511215458400059744050642796040470042066401221076453434647906416945009330250165806895514250140173366010690213457794436450798475218903244392610328998563015328594761070105250201981199676909786745367279051245219015193901618822658633546496356962933736657929179936401667799299474481730158129800524373946916619283009048406771935428315911875670513838533998413790306517911523082018484698283755033386751860030672592154231747368711828772479222173813325235629225712724593959392541645846993750104084636533973603933919244589461948472341316040667852398640736712791771234425311573804619391580650956192097262113431612147230184965636816837361265081684914474725786831308819164164765009212291873223153153223243444604748016313221267947842060984550367638437529584766827987772559553380290512072858918699815637964999706574852748819810220950699204145192229538979016858499762369373734537410130591874070831642311484277203266117497983235309822378229347728223006324738432622532208494208499161337286057625396378976310217026955129672754659512868835877530156571372936472903968557082152408032131798422085243994951427667630428297708550395321640629845657303478956700925790448811281890215685451492625146744314632710393349162889043323713422700150398582489475158611256978440834536881565645165919967288963944792753589813664192449300890803124790303560686362281381858091445110579256757477852461989440587433637322809254117582411658557226248087556176703070416670018243129788338149482523311104951896324825919053600389349287437479120243529746135023853105427961491134297686723705467672183790164480574678135469905437705945724064379313379737020826301524721713377697104965696571166688295017184309110579436102147953998693073343098224230780092701631423485955844631044711038189385297202637127755109599056535377090750681298894717390073558155581184939552994152611992660864708564385881433243946833417698628852571116874622186471375645988907353744320937465946664931207574002397470063867562611138308982102703771280362578386211856305993220914252904670360673121991115843368820944103739134899514542327736342585895245410931185727034002304711258899830515110537784290985355782768396527684357897365140354220684442052992297285733345564612735515926022127462054713441113224725647496266887969554600265611733730672071325649032702184930050579496251613034452816136926858979377472090455966155857006656197976624557725913941829713619775062475182144976582745213653142686131914166366784033427950354215370065732852518915728123895270631576137533825257976656209769563077304706452769765199464847280972027208188939159420037258355788453862858410125311358987159790451596454212556672818823144922895169436326942997221830348191327046182263138893634472390441850920083725965517387812939960487206963369817467364307499288596623891383096122880525067910999042742729502210471777854274123400076943213100587999228724940985649166938145664628973616604427555243791496723741519035078009699005663735791689043026621664819075045103146308226258832556455168131161620921365429563631123220577768708681749457935708764876208264333426260242333459828785941728004427481430902204420412336747299156671040410869407831620937061962428801557817001193535430524686418004144518407155484872322363130707637498119241694538093030675496003652694692721797563186767029103692069065793060386386202357509136976891396851991466599106963652751199609440770649744194538455220989678824106856713642399874027239644460697980583008073006920241085270333798999831474022116542849997130391188481196376624695998264478239914394417026766588462558605410131233992038760661460833874325932244587426442018821227512999040472145203797965550936206366952257399406742310593328088087275947766464298276671495028421693483573561975911800897846358475624910128414395567283060358230167690443969643399558909539359013474322034244981909690070770624380593975057549000487247725700069404750539365664387796749928166752393830995184382212453402583525897577042301666494139800333983840989043278920104575209880738789556881694628472583539122134452664039820532525416861067367537533518549413554860689627943422791387826568090881079973208887420391256902437355960572069198539147833766920969558208254852462446002946627500881198788033240044696287467513595795878404946493499235806111417858857501634592038384089343894598381943222781118718696407971806575161409124799370534608878106583475056063733366780858016381455260316162601611215592603004902162437422303016901174580319977993445692013379060964578871258012362128903072069485838117140478279067920151671110439457093016360456370931744131007082764731783101278431466621282362216500833785190393376437877236545900238958014097715735822094057186269466834931439906830907937654285488204876858347592770932355875289779650185870925969251466175814567889963284078291834961181496659495070385067618885205985314174904469908524452278338362871969873943219945092865171910590685898634996089157543270208389804814791212495166297001373138845614904401269722031206391530145916378751644195825796665410612219917084381882495065193835969579678829887972546130497280233509372666507990659872006284722059207911779907293878240956585797356066104986118986161039352319654669243673977841433780401592416806456983647476498453094701784214483884204582392593431286991291133023329669796417191901687143602216326527582895355789315408438899692264391625586665240556002349937972391686144017497437096474150233923966631947099789907705208718182455320215488732026144072387250135661629122887590739830210617856821667913659162711269716610470106163221105375459762808442810866598700847043955401881332003428588265828374955110580778700327548329262982110171542240611371761755968017460679279507947487775944927457159667492994668456901992094214792241253099752402527525266523924231603716530494632336093618889642495082949467556536910038766573251917179288731497120301681399759484414510114258204556185354502362747349804904628987688525713834606877269760647773741915780453296915405805818663536259226166286345971091851975487983543254790171285838663682850185296265652984374242547015139074229770943640662536026054302258522601231032476244149633750198643302075785754618865644413923278176766991385653478617166987164809267672737588402682318256211416936567637696023314022208758823856509317277862802503220220960101385876783105396926174319824105634273043324225863985062706876279210163148926601449317903853147476077473456009143397824925685813207240533561495059447779600018121816785912093859934162482296526970655427811064581774785275943585452255080858472460498106250514615888469664543255387426466358309086156579254066717411720610860993271692014805366679877990455501324580981362569346871333868770116036900392874308014435941615225407186400156703717441020403560783880258173759570407824215830826370462956071655259043678119694863902056168081004627335759540761540975137762539083889755186760410974327277504134596110649973420187522542881343250345528280367547018354646190830247315164984930261445156011822328923913783324390678890149062772700376534387112923605938764167674462871227713653065906854886141198087393376524288878309418552208445949328307233995098026888786515844502729800161387855592892896183931260652863042294717420858862387433383685691909577861943050038769935368084617611975289536527172099619677953026315847272011905931753769193177454954981368114422445715965876469868955309503172440524098685586442966499193397239866393932516842978244894091121603116586908897638552238887885293492470325556373248925106864663739515282942850426485907722081330049843944171421990964140900074334175968627560238099097724928676007094473713714069298919070950832573716257343284879301258368212209071283566050785849434785983562493230162248455783357883600915730295344596286160361792196521751417219598953477390776785582057053710526452118134573237069160794928000845499907618963950199355345719247999738960919928443774794102093380305457735250672036023899231895628916821280937276577905752601681798997682096945181196483152216636734300136231891865380885797849266447634522296639973206401367181331311736051471968600460450946314996115560796002152842527725007614771662987473691577631708646179556616469525909835170804543113442781639617924322539759922727489010993238991381310929938688039900349938546840001651643683568337242718864113649729306457973681899155470659969159126925461887090311590969379855724820634118079456102165575074965560856249751535017897461850722062029570219809981819684507391054084435200904051444413963525010199981796187686629938967206377731217256694706990010291829520243555374869986095286363096382018262056219144121618288986174984021515332213303335185386957192297832862796383946930919917763645888474873655504452181800224992002007965239775933038387195823715332539511797316295874078367670873768341742630410532447177414287238253385427006516063016637415329406577408998934998758538040714144647744948191646433355652625491409280995213823591286409613439752281426913218911077532880304704751357871951656117246589481189342675369389230869654212146720169281826049527115361620240148434012003970171759353976003326356239607023934381497443353237326030588099650826068794820515725983814393618617022587271144534794949792136130787671751185901244322929477746124804206776645893915232306309227779333871015905061606216103498162415662730694598270598463009364008777052021033417972568250404111468279553447199671563602038939162616149763474063188386007065665940132381758334238314437644799627280614535460509361749051965581834575515376981702343119664524385044195024089853400348269067330285716858136313428515782072757402879247535164715243957940987970552974329103347605928831646445304063014656511671103379803777258349990072960498726388276465324291053528251217144768551919234182326679148983911887891314757765061912511690568771226393081116038492198994213545692884916323921412266110656310859456381458755678284335687102828599800388070858688004218251300423704769265271524331744701434609173079094705415931641890302035358440699651020577926237703128488028889183799115294674823936086949075494898526320013702306756480572897652893014512813579437591210992647920171195463056826577563395172662964034288868603342241735562807679844358358762254773146616191571173766688747424485795293114322113284590072724033654486103261424473275753411499276845247079007663264429627246014312786226083133910216260206717323682999527044595147078210819283793524575643764902698828891309062917547914118314078634863630505294370106698179987410964326656361122293781011320623377637148616964636285366572174243506531696800246409175488127342080062831358158947668636734357344995487402392138761286519128280144395716559702983898326753300276707369066739910795596931063324802362051616920406425425136133529233822747742041370619445040206682699185402342864708505304255051549609092646638461783497318690005357811688489310349922412983209273402329804346386081413472049062363784373096843618773210429581959823360835102726807255661162235057772081470708472579153852892471525400719172762675460557316433931030770900482535447501482049381462864218071935712524192434766660306281274408068545542359637827619721808977458447652995331247008657471230665756049898736216328628606891740329554322880308531586331012305187039751218169499286596397001607340449756721769037679399886575104903777549510388607058088993841908542406924883842493032277796213691359487157227017388652105731734932269333742329726662285148355473141508802325980012399374369144530242027794367295268301132402557893977344962545714817009788074199611680786387178877108825979084475196512408671563537240513442939666085863653136011718508578355888226441193022327865906742349859224600393415501922301763030194915152957116297159195036710040691388752107833864430767382489617293144331647409057054516763307648941901858698147267348259687464397006004030695714928370149865192134339767388095787698518054937801548788144467416782672534455002122294045657749307890134961825329810150491990732372871644909856461414470683855713963167066453195808440517415906624240109075189778287888076367344199920329810960888570574761636992082430418629269590260785007022889732246230335680847302588144153739375770816177605557523084411682679464539499993791988610016300388851197691644168670387882663579703032874034540055672755034005137650320692999187294197428437058746359176912910118351886808485727962423669956497837044217148315251119322879662284391569501049164707021613717774025626292334622595807918561259185108588348797900139941466775061193394602808951815983484323175299051975962544118380107898495797651213427274744104939034127742357913378283206296174062923778357642283182166673702060238720812023869440893559794489510045011762637250756222589181369739177903729966419574046998120498471465697871434051754967338483694969682078444247898545154306645506517198313097231368619640670973878087065895197101724277864631107160076580614107093483445419246761286768985586864828128891273199445864452399877558496884615369606113181549749682695540365482714975299327945484757461878943120910816127446167690755020596278012734851233899432412839763696472356143930032097084878488871619994798369016170150297984488285353918283149897570654437263283673865037043864510865180821773812305306916760053379936315054866111366391132582848620838549451239193159706560828263457830567919625099740416057721795714802624336941318650223899590868747200594923182260379597244387948374239485552269546546835810776869239234537257081624102910885283032023723236498613967942014730696218352274002733594940941184629164558148408588939330022459046832440674881620877110102573051337178682689062101314721810653148809563293714598021463087877039932466161777260812228994185829770340684764695816655203356887892966119203378496882841164598813574031601468198971229438353021966617952640281572930103079110911036247027793887970338437005794449189869171012258528536759045692146184055185663039629765828425761442019075547572811384699625164262196011567325502192656411440220300097958741345752243694736811023081171795412319974817723657348583978624967725242198077446409517532279241954025334603636878239773534645172004067669769175193308976328480589897017655432835895958724086429659288540934678109816848744092808353225043283372418542296488003322686109215879004663464399319455509807451403720245714823750313473875207929044557460400879904165288477449280820155715494387721420228880539746585621212884342168167992358904899635112427691232059974336795288737250659275753541249484337150264359810896714219881577731466077702473730251550252068762826707504336304948213152193899447686098197899613694894370503033203624762759363942999063758713342448667514056503482456058806268273264635989506322795420449317196772731893192924647136506174569225548264976472077194996155609069756764275195531290500580953950059383096583727351370733614913888342604598203810626283435905155709098391237071295189642396364714533837676915140125049564737114276039392658332933982930294680519846149642331227984184731786079634438142873032079676444317744427379203592570821519051764515577777614492153788942945099577896823941456153130082969265787776674081716094457991940355663199400623608168552396507725168244052558911975225784059061475567597481426783943464656505496637667146330917308991419613073924562301543231680769241046513408371995959971617349734383775328079458762225615138110759857257155069064298813369562053389989918839271574865847552195465723500146457680547305139928375837309437485525921022763151012833580062631088371890251180699205091778011444860290121391878625811206150814952043475049703663250957625175858902617246840990812382982050360081956818052803604475309334716331271123847069245232664086131862957728033836397847577501305498132493573399678376092217302340410940790114038748481021036962679335833197847929003081291121139229532188439450929373652377385131515391165396529686388967003759881875126377885771977384503938855082996405542988559449299511776810792655349084211998524019079426157059468654815665279187417224647197032039631873905672400859007644973204882696646584998849806185603173749253749150786291521570489380913384818208567087408024224408966127040301597569045632051190001369962174543310535082787322313436420293544002936262655166272181018661461203277319582912390509077378942708818592590047654491693945253666594109956110522122491247824579381377904345395690139855258063942563393174278876717357014414244771240730926396887820386297323538643985783683471394235846338937076102020322969063630199312484009619161857934755049561799136720601254965024094536120882779024286933063347468545065084626959620302899805180440681829295040968569281612466277961852585231749627345751510881638085328778215943504387306037341737598975414485302578971881728233683919408029943850178471484322726013375730861489580737275063050424742331435294537331826987722017903777677460671186471243651105135268905805324612583711028965431178556421806376116593475012306607242854515977966952595037195519278411898542863680788417205711647409683489549106731219723161290028578699929321465896670085493797528690479733303504341859235831156714557803287712564480479820910218137494367304662025693767828293900266844855638433781370800281818564800938089993567502969671116839899686096420295229889569377236140122482635977564682576218376579728673502774282284591206544362439455175736137313296322883484772457711492720831899385198741310788934837794712974441265999231262690718238443234685602606793628473223861115773079097026960000375743697159923168984461803831045868171888319372557517106742992410892915150753833290311481513978457227414742204563362452323856889930899534193010158945595055760126295767116392394220751774948785923211004624854905935239171759627686477822599698622634719354489968911382118350276652789397472176638810492412181020059441291508462577457179719681201436685309978404030280052593788544703874519632531573617279162080863036890803215774820021798876373040600099322158069153266938210430975658227081700419339200547138929529564605864717643697680735232275213866168782290632225314040923338571854882268366835214899089883115972393106224326908810160947131329361040036839091384583973130995156345700665448702311656427949177843384907139242326504615959777145319092926181339356286016537390050730615888003794380148054749465614138200690408605355938246618444932155548613628773794797981248963064138115850867851054708361138994714324356494238560263956505965182305872683426261797335709681223457897979388733508629237015265071576164643508514355011170465933529624279075581748867091288585925694521739900702711573355722082259502622094734550579707007872585154465167197320926512915301085739808939351437899891902041308962752968102506645943761683019375468138992710701957532778782417579201376886663198872130234852302546291309247612881799485344826749478076326073444176726222269761058119252792808635026850168480015295621889735759695225768787511237563752245197167022947746323823096542367407816228606244769095996966692151338713708002237984507900346566428636406745331994718991232174890045286334205128843860267002627015150516785505147713980076386267174706863302152920704824208889515447478671805672840583712245167560468562035643344910515601199174015991244203179129627120097403289939805405880706045871946099857462354304493786676742901194299607685859187378557034846783150531267553955547478626381169151428942748461326550228268902110636090870529651687447319718831098982073214227218133206931460190625254549033628432747670951884292960466752089257274796831021935142718924409889893871297573436773724017015207214296805245031119813550594204758807474566580381565291243313546435611210380147491298822303774482468702310751981446508015377233732140075512962906523634513615725845216490215245750273990914618511045826739167193235125272652174299934741306568795501749676888613708414747413986879428383030695767228955471909209124359320004307125362939858240951784689005850199622636375840796983348462268629231317712634574154414302872949779746790859640450460396575680968865931811122654978921883532499798549163673259507032169893806609983381669904033627518159479110961291984407469804010609779287227401122797406684218846799419277172345564731330128184455298296272103253851849172030317844860243037448393847714233074684295361892366864511582085538828147570979423995298424829750835953111251008667110185326297637521884438683959048936698700037561648745906539163160436245570287121631494991566329182893734114128876284187497195269300092140443828525471970187614960062773950153724721576559164576105912825839976500548698965619085425308838717606641597232401824291631434167937408389402935532140814106702236267453040007340527823624331359689167891518052996558924153919837062274791881150977947200864912826616045321033045121970052797665338218053590040122229648929616021490573110171476195948983637485436594746481940713490224985337311826297750006288051811171148056192787477485914150257084228190280591997785895752188752793609552626722854447331037116320554968712912267453458477608745984880568426078186408337117305271039723024305031717263448498010339411973324314314791827844892367975928525398998804366443641505139391386947075606667765606896770969740716165819569401224543042851086899354378373963750569051694609910093158761024252086876678398189076760211481420811747174738599033258173662387913721376055631004685852647367541516101604539452347884003544754641182728922402451180413402513603956865710366674538632532582435128648110710709808609928970474231321624327525882728958184535509554464834783444013313827099884806338480395099110118650329082198381441650163743252111208689504169952022796084696453292913926328170315910574948741255184353158422950535032862875668316438126863951577917354048980681650228220387667340377972071315710387317177377286054565128018866891894534905347838351498020408321451167216885388191101800985845315412181215774069623090757666915083995646645407408047595797038070809295722499011134089547361625524938584787010919140340815046004471443917493623219411595938259089799274228369431751048366311988921295912844236975592168928279612288601953689072293409703057528275460338121912423550250492521571352078348758329269991757567479332106711243049072216198641016788456596061510991004260715534713802579590251780230004366616950565342598756688446113078885451404948875719824744424935492319238468136348901409660609574885717933580625243808266145149381634138135828333493222864194513902451285021920871636052825899290957607148798298353651340602511799803468911222979490068545726009041937472901835966087367497967869364862973179538578582377432009904067623219485605135962213260756311463660606316171923552230896246476033762729351305265551994785168719812564162186295904204593426754696707676353920497494987857442972912269428933919286447448458188137282003558747905689408495054390236169147107150116855098007264338005079079257083518083350838377036876017841100427082607764375336579694583201280527258461087709791902691631178269009403414237266426635900629842028711780265992722680813421273546905241797264672731668614453615200640537904279413772061375827452064972697997241213335344928237582609995722962024126488892056879686673777378029857009100218155116698124641943284598381357961803465244135569383930672230977602858103893909928345713922901284825852515223597699818056301338534111713824007016804535442099569350304050827280565960980930911219303091853903296120655629290035993412307059480302768557968355102722094273121135453835216219629184289991394761806564325158041813813164834079120999876912986631127497639129550122938229539194961658679367898993157613675663964402988584956272283713797079258993260325393783821412864029377081053628248968971094134866684957896461850845577161063148120700439174695775348399054165206664248649844661581880525807018731729807716763748568054017153450036019081497992509140067743348160245187554143115668778954394893457119852163768993700527026374188962102139752182685328796766305010871824664258903329750699679805460286647993299389780944649620845783083192498543877211845195062600749142676360858068539999781920458631006729966749340812660389148101610493869569352008276721079501935008310629576543990518986311634424249331613381890727302146301791715469093261114755380071319467016900079489064375965748898234633704260275939615649723350583592747845952834072975445099745795558707384784442470820797478958085649251810763392730121110123544973762309286818389449900186063783312775953890022497092464885362444207072096069408341338765982661826480843422008225323060378936010318873994855427320550548228100163725993020356538957127736234353839644954300973056119651995510858655963339729826563527690550290457295848962986093324221699139347124937376462754534973092484916812484372967505081781284736867230799103237142825923075687413801744969221072546831643011091694409744640858592552766666906940407205062887796536583093525772705558132864176342582613935592171021248639017983719190924127360374892136585984852421202878289369732464096314152794007016424200449529492081960113997838242819964027933887018827994955760523481205218955910793265141040240128532477782131489602417846633605276590149406433397720468065796242286225342325026936094018386709921967371444032829575273483643475681450172963212214563240758801873343917414516994106236127453812026946275642957357197333731954275068468435444065476141329141749137672982672483965556859447366700417373822548963229142483749068185633834614390733108513572292283221305178161727634101639063551346726088840130081251935187504209222624623532618324821454140538732411280705426712477633417956333994098342400217008486986524828817197798490078698365923073032266339918680835092137629782182729041318951685045073734450794564349967265359435443065376976004958036239123621615251288890885214310268001027911334748945637827327565695664913833795400360273456738685548593943975064859537730179434068622938705896461800584779969686093098296968381457060022429177354647074911630836919856783277313462299690034075345243746351698595065101020519383169394744901097269281318032156501458659512029870408712232189348354022697869893571764311462867077995178493577872802129922512735808919298170813466836182076690389795611977716517354533676287597216183981279957086369667024697129395222339892414567825445278241353606113928134825804010225968920800213848693784507910513387331520677432693575366055096118773760553674522818591732488994424988540997643759739880240267312030447538838480822025999214318805007362098317343256912392235540618354070024602049025272264648450711173779558208613087321714101898607806372370834492047251866938415283958040430828102333527517258608452630595506367000069280900965799784439539614853742344151214993487869188919222482429440762621201424485847358421296182309507646805320444583833333607200952737100947198708096480975437858013025395105004266974922331094991273064258847006513439605901139658618363679771545363553310377129028339699030288382285692557901702265977442740983739602961673215409860414911876627908104979086612691762295023812511341944919315935574895556231560251734378195861214716498517376865583992131115486041420263212987425013588118154769002990132950556968644726197180144282156839549623664757847394983296552504329077678577056841961918754616956846709006632447495035631145275572255880350618080551418360670818744339682226042778648846270382497464987426030317963413743794436053682278767844415424173151428869837914950883817354924959140487056029981256040640106175819591452944663452635959268567112725553297828430324567989918712781984926520094913890171590261832294417809121144052346092654496835946318882960152149349311694207609538197243929459854640865935570221802218287611754045592205405532697884101258704515984174069053488832117820108000758142128473227802941925022656621954033829552377977362499173433403230244387088079852492207781910478461857544134298880638282683610237815942045849015182269205623539977712434173733198996882305738359861212626578586916284791166220539634105945817018964044709444423356853018671193032716303474919812363979659495290443854452180810432507303173792260048101939558767500750085874772617242483362117655325726293930296254074561771004416792524222570949893894496809756251991692842045845256176235763818152975333565155149484070268920328782602880807579572014142668180611164766473907515051975334747484250116612714744085309712358454735164349023550025021032590966797018761119659058668429971880359777843447623790976395930478165197962763798095752648427172635147223383170819362522413064331099051364405792048436633788844920625033784489940705666350158334507845638119865475200915572650197787305027607961304894357145835390281442397670109551411632046550571175527731613879370259314139945073512045532086654439774297768391440137025175473335777521982796524437668914484422968711562916183124032156705464256237348880233661628454245656145137030108198876999715897195021610511009099094782651765334072645375272791393379724685173654696378139494694689639874510649630572006905958326532048262823901163828287266376735700011427438437853436622368276538661062396823641640432096115513834874255342511554174916574504166712288662159100351184584174416209161983560951596544783046813687797805712260152480229078794860846774102823697485194532529353738605967090761923437841252305321586794796936085628726835426739840315184648298468039615957442209273417096528014597055166857309137559527309572027145180170343886314651286673640854639161864677052367251643367064733055707434477657118260413543319785541996409234954431232201073962238324441171295418143452041759718170341630745699547998072884696739624043253452956942613025454371710345223387336346798470465556518628006088788337414405511965418400996235459285461471930997556490699020056511832872288862623036693844228801922764517260518111734136245064642924245571441267380427611131194754944724032065819850321721829588440053944117078307619381352249613587746425908660169375830574584792257891626455881699394693106027190738809930560768262237193762826085057703976320953537498471098617869206792933812774023396986358254805021009558418997667804067501028295282431329631914629586325206928996641881065924123338360950042308872742882749825972401075284817063193979655946329179383783300588286910273132093124103291214555480572395142694618346307294064189148248012810486800712638600526075596366774850347469005493968853856510540848445248932810557396849294442493970341507764326547857621851587005453363791692105225349302024356366016585407051165642508768542904304947599098653886193848765658549274231790984363680229538554688024661607989609749048456458302603502990119222200810067446575389950859209472171433390113232238587572879279459250476046543204311221337754668578842065871635445185963924811961476910635796927031554783197747766203362216730763316340717115032439965608498028890154613389911882737651237346442524035480865943870559987080561091542505079619520671750998380655554435113572893409420480901528785297346952691205762044780458536625443455575014689877927151628201509815905711898499281318848977348552769482307585528148493972812571748365720643774594472751747497401194143775957312986063695008777686102044665114987492328335415213592315095934490891806695716706959859797748059921166049988366968521241862530586697539344217413626109046780745732314562313855835703598154387256982750228780417567927767132361181009571441848976943114262928853000774580629246012631617445029702161357726113097551356536933545433859179540006378186855013296952438368105910451163746187876008720982216401531539731014691408202691531002378565347435864335702775286286191065712993273415816802038793684897690134768738721678618135564119132811472556270649315569565453493556106682646489691979701483125244961640964672563555974550124604029049318964649579861334147821040574055572008061295403489302096992682389326710791882147147634028420223407015467672046791970364732968217564682766143450752876618022654414616478795290083963679485402268065314099817149019494499137385616023055100061563346302430141162500502564285676435863048847409419344719200767845900395591716556351060560152551611591744314933228107052544630145287757009154016640196519815542952985515555281432964516934175525590628630509687514572712835672956856214991522970589023972167343932736390649695504494128674259291170157055203543286865757862934178414787927300221186099473641452359205184063612224616640271708806360822414488718619291076408662084998148861137825313205326232109485910825808349512509484801439362524784580188513419928820088562682257479926377216867860327424407751798899976624408606920701569920631768096714116307709669137485207195040372514573832042365571937525336218149067012691529118563149677691710586623388987442598801080354807853802333991935518692329838420428796484929867211511107313046867535181337823583616128828124213069615888985443321868021879941750896389137198422723867608606534278611592137295630882036242861333571051037232207048806033081344586216968427647708746414764955732071151789952042516309257446193134695102264715379891092710590441261987836699733080701236717206758220774004977992116720465563800392688472401045729562317716692924926983034518565840316353620501631204343450660227566139107692457386633617921549779812523688959605236847777526250717695980716101998682617050332204737549109621636824901048333403859737666052208191626570505274252659686186099324154298296333181359922248704578917027385902322364608669348627412906900309027075090838304131551947530962412500731143214189969932917437852429396945023367454586110423998961103415860463527358379466976036578239156346406129981141519209726365034039260988403420124444042827135781181319354689360649672286443318234766343619857172814798141263661566392905364881660300022777795612413485892481505938092668035817922401612097880890888445958320221876416605790507172822249547958351000976531829717189649110223586873347774912284376016192996025263003636129277100572766013011292695766100515626875137055569901903575124437134298809168622621625675343293437009254916236178102610798734030937602601150491809025881072534762154164908616866441230209351262738518325470730186421872090374893867807856757709550375223986896365578924716635215896638676702389371782308753433979451799321932826720683911218488324089743753558945236049273156053552720043224559489310015886519258092637561763801697953043073546467238917399094694071674802811977303037188170603544271354650558474725297856948699776973577597594040151022220068729484806345636192588777011697320981087601083770528557171013380659063513819928341525302384652004701106760622511736940094479472624803280391608591505911958130020752447446115274046061877112536969645801985350764850112221218840309195283316548979710890467817350943258686389572253790598999334916540819120021570245587770626075004736629937389126407917220656347524406698283310089047666690575115867927518316593666742335611315227227885884512016449194020332789872354410663615479609973905752382441874886876992525558125780163085760523988981279820875766924526807585134009585285288447834857416842303197126149462274215385438614481384627913236796823649401093222984608286752220922213139184010032012783293451562153890282621434355066675744219255398643810126753900005043531703235665151821505155932046557376095599740606971398392695751487445294662932718145806598820741436861005688274473107734570076822657075250788540435240135868158616614740744453095267073403365364990219969660816201705714971452709335430084817297399416267913694706383819849211614317357035506330915891909834837311041779138629237211228673023696800213419872493645682967054429886269557689879726207052112761957261620420395638441297917633594567872482389390868540478488211455196748845307704993436593776151148391835683813064359301796897179924647370231763044463619763346072437844595365228613444014304963573580399814074174807599294673761247271318051141133881806426222754738658990939741582128579454417035555244188825928595480490203869672933161791370413540085922700282311567300506278900305501977430840147807474368727929481299716305553431272503380902696769896956602477154167154901172517666191581748608547376337552809504124981352785331912282011370992112687609068388348716046138960870105399467308579960760904803821615027086349915797938124498661720823856661997012035530111315361981762639032167926486772268583509836144607378130116280064838768318765831534038479164065653608126430902372139858857540115202911604028893891661251070801341916588102155007880456170703457649973176054349036811872109838620609033253842762793494993748743469786672223843895588580107903775061781323635192328959128861477986483543265136074575325101157732815700148180966715803409830872388004115310607365787645989423679140529053677745154830195503713327411152163929805854877778499083269537644589713308608922626889513423252897398645100874538507679239543049901447331466210298451313320795569133855286703717769497127709122088185158389156413495201340173261596612578023566920425933640605925846546356156409755150725780906821628133080833280969712847095989727020615265803434683173800867917636294652325678448126083562327115199033458151501615986280707009367703736010855236950197262178682861181563040536406451683306730517975475047102484864049531258960810132729873358709931891444424199382411730831391980886148308810685958927747003214209075741930668072570954582137676694791937684391624095187633659934577569654576665126503323589281799224988830696501004760124390298026738764740229370824075915163464731929364698456371048242776040715415056717145519014745498623024509334031996181443521230326019873685144513602790544400498266383940081504565278566490968418934270541294221774231689243676530018591351430746657595958868641059757074805982886023373333699235370193667566192196010727638867367444135728133164315576066883837960973493980143500201639163579293102433264081408211022071781413435052763063572969915572621978088274360765430322098310554657027801910445850815354316882980448887076738290830606983514022564031440208034334499093066332532266799843386939639106846912728466359427929004681567892557756800507028170763713455919552651565328986812749639988931576322499144808129675587986262460422937588263509206875408078249670311681077128192262789629790883577995046645822075489993345706391411329500371605193225337580225545384485567784094790027025763942337667871359205650391134664646707286296395450600543482698976104778222008888522657855998920666081726219778559730230757526313063684944851076042812327320472314322150911539012666379685334088389081072930505521048734562419247508561133743659074006247926622155122001596168423940697194609871761405571839016693364303521068372385975499375212826615624336751754592642809121433555945763642234941072088877257465241709558031982516509876622447941561252242999526352121118697871375097916712171042082679866241175214900378489441712767654167153286541973119118545205169430706042144691158950692438305531059314125098164846756461350026687782287637213562220275114716844958454904628616699719556368148441641062934000425168650410356534464876884822923821814355969498405649587430472185417604799770403560494121189418223167361963246181865208158783943421563737490814444696997575041039000240258784441744655672699163410108000685741265928135463130283377924025100889372164323910743786527906320508760162305321121574649230631765245240361478940204023623405533205191456624094147416291367836750530711916342238760469198096043206201605863223981532091058987794913513257859121529090820874732099410254973737119596181596923075881262844827634543758341479263462918205838980413212568297600311682690914002764377230846127013304045268603218344079045959868978442206787686080962954550444406741564690992340030197938061283975945686510636989769913425044641125218151325273485166805607628251771668437667778325131934371218022252458799645547916424439752214012755022689983531257740825016204556960505800336682366675277684976896239566421528247297602734963914869955514221022003720033395105005236640843602050279167849488534220436174918491574389937142826214547439921803457764593644392537896047248554879477256774522483190728768975027620900772300191633225003123633881071296624752870396416857901403386241652177722637881051752532715380226594510070879347501433234827252952698073239829738256500783720725113201602212841310499212243514619859592092912556195088949225873932796466237778221117184372261385109170390993685029299023320228639292045901682541330428115165611365157852461727236165810213070853229473508387380353684619176298246722928612268125246210451482632495883825482972882133688363944842544678730056015838808965026831625644290350162023144424883919933149282271420167516252247077546590341196525581810117350143862876184827765181693522578573208316122221037931929483820693873199274679346749902409449434255834725863858399200175802028983707389221896949987048945223739655435215031467714895888100256623510481415952086194811522128341311500509361872895253827873131137646091173783947196952837150272338930128183409571909247995353560859771655882429176323154835675768856784520016974601438043407325940082753084055892194966940841072384970231450589329037704412297762738837310148607897635932504639509881584961466738970029372337637742995871726196933213340436750336077709610971594588210736820629894270781276811782746213461298346645624443183097148465364212707368856450508110633743328509219503837106591958207293652752615897042106113702338806584839741591116245081462622785675072389442756336608774420856980668020173951475022776417785943499770335979943790315296735243118085196299404910199550239558641146849832763688131053124946705799655490086905222868202052498225181507165024840637334586604378055409157959905706129034477444947999447102480070842583824517343077949290318585134477352627513181573367529160959687624779681034894887951393163421702494773205197095052202637053410287914278721040427294185899050219683266262990766270843111092635378056241823438052138816836326429349850257497804876774065833690357747580630297759925035892588178214122856157052711536073662841076787095400472227807730996536285021564558431801513096186195323860163906799673559904475894283982467992602981744602376652198153544030944777511109595275535996479393565506540347816471513336961009029259646271942045007369675179024311541607951980108509796791522394159129266394234490076173473675889762310737937598379160359212361253631769055999439020977494678542086901434169770409476602309985632124766515643111112759666929220979850190802985996634505249639263264185921973334689555993438324450389272923752648630046358296395063084040665369507193034401003015700365807228048252395644726795503657943283526133517823628752048576136812200331213427987359187471712680846858065267837591409982768759591849967989132510149846490148667623865774768559265667105087215511665972643347644414731537302351893943168508337293493337734112427621967815361063952100419567949057549441069828148127675271209483727439350643317293211837150498673740133280629651235669507910992373886385173617565373583958532211901038164493921896475678846184691872320687080358506295957588880760375546252226620238973621207955500294615962526516409885856789783142858540727999174663481172240433822986708034059197987353486771018498377518272374949410518723868835924333215730129782501824792549783859131707062547317891715433734965731125998561755747733888706416624461381034733950841230277749410474088293356426131184796237791534632495013312163215175761947229689888448452811244143713392052368057783865045778906828069352327806033641168667265329613524618140245446369035033260458716730792578677404586941344787358649434081695569811145976405515055284581337368939013892742714062434655587406755676424572480942878435456824867605601629919922035849283310763583880144197402300256960031017186977709505291721176855807278961427573907562035198068656210865598161711350293733950355587694582279812442261950594871355137464022263472732052737864917447877990722696850737664750400887074420558686647322808189416629021084631110518617254467641686190620043887382160613956333038323632353913026140391666844446919773974092252047265447976712832690479234761590489892458844972399459818616894471365067691851659046932573402423031635332085559062617655748496286111628082776645623719218417509719689315718555829933545209486206238181191678902631120365415808592401195584223685389730545039768741719858082985142416118943920458725718470284342092309112415807553132173208949441727548909945457245845252056443869590873629049601535586530708204849047764337799978365241825976364212733371853351789219007694323701243097340946840202022817767012513460095656217257791756683916153262889963299889427537677929425840282584618609186581441133358763781943336374377866934049293232424970453812754502157330347764523191098789297385886257733563467700224804493447299074918148042063623281363922067962554668554330960931855822905120974019165010373772015515100080221059651415786120242554309274541149886859930240936292655582593826210076008763026228747980784308827884462739531837998532255572449614028363842340205563140987489309969331025838431486565602542222213383304485893739060983102526194489930555838799704591005408266893942512673229182203065780901577348225838715865735422396642818525674314327159302583296996362529470955209063402412431907065457377416810004120489702230411529977145539639063786431599149565734281921660585029536608825339246746474650999699292911916615479756276018900127729882638310290129573708788476563809952599556819032971170451446023903048085402606682462708464358698320391049499808276906822276803178936629189652668210904560948189161186882544353353267895981919074893250163690278941986888638640605669458011711342220773493558991643970916112394898637188019838596074709028416749883041683785828335049456733729778435390026307058638807947054936465406186479751444162680829854898861659063461394097552666159952048661779032190589481729396341683033539661883003449043829087863193760640123048038278787708717394534580827676784959715968096409630692518706884407336223695917530025692252953757601666328069066010063527221699314512766552001215408817896851747326267540567504008049752078160449467275670835906287751771765658446192106476316811341719789895854012256664972604391426543977477114859032606464233045226996362344354015155227563154186820844965166093317816233769083602797913844021521528468018127600456759508158820935616739941518791126543953662033328499982190370627619271341986009159197679211799051041484516087914993290667997098394752608723435129654590414855563089213304962310002715494029956664323940817767497297570470036366692887113390720192001232445807493024396149708317501319238742924419107496015396400258436817418424703015010007982080902703857008360908602571703972324496437214520753455090634128235768866366006568010002593046795597993028659824278924193192997569678283352521478895191738111823223114623034156425506009866411595885717736931616207085090646045175991443027745352982067701514973106194449521085137588710318590440039819874656839761012896837149514312121428585312790627066113342985566938616572386111728865274251023790370673844559557729592111499731741049705639479860745663989356316180291815496516197434868598667991693034706260681931962847602970493990269125208865427814979358938883614924986151480874323894950525458811920105421057171388887608345691932163663054130795701740154961390020799029700089782869562380788328735213313263974536594903645959497897828689880596166337759820115030998421751839961850908057849007492741165852545961177203078042142547498693971601653876015429528122032046590175154771217589724639282829538447594708991647703235826057316183641780077370801134259732113573550812395286916663301298286599485221953187559201032837937544865261769528323705362232333961854010262678425540368174957661292959529663768934901138411977166092206440189135997672251149050980725840016698281729788425215173522976502513398676172491773617983685594569308816073144767394204991275978846558241939799959551408213381963490142125731663139697396277397688234991522508012567809129212418779988850363547219608572900400467593917645582447769628460227044843697849103670686022631427193416376841120307698112395416087085842055870024824324709145277484608036923408467911341930513034030248369476122160948888895165683886902527073018971305368170552165732022768123511437424256433500144030942004394385206017160214918307633021488630369039657410753507123680360945990021115588490924446578540510248113740097105769993204217996283132614041942798244272987908336544722357084854594822500089522336507030456329603846406330976241774985725490383309595259910960622770463531214539428524776956534062914563140294653135646831045230669640396789643013316392322268749727164106799744836144201497839719599917752942694789360810110696625850251553713727291863636391842146371772601831151114955695539282826161815951391349325830492623797385291924097283373007612668383796640491691357891592470247009121733955811535867565278555500174101040535998613801077968459756448658422016038718880265359693288515125013327690481763535647272521788257853568932853374609815429296129312465621438104606819770516640952307410862393841337232722819667532048681616940247047186357552212079046098815954428985851899914063315374862315137929025214631714905945744161937999543145095519676219626707345953413059060921364208438982928810586843979253410729666641075729215926215751406929026261645165774360605439926101603533016143348590528956153146583763241935967856774731392161261026815945519590325453370330777919616727630044502584596276087627678192738178652041587438208732642063666664672286082300819705381730950595604952522857083093756598991960657701930784747817342909937301764646227304927129730210278606663970884481367481044097485114616904048681048982703974728005976402711588970429172211801944935296231475015605417381156639503724069559893235059548038014946690058254647502109601373848996603624100588362720448687767771515989370559178459049320935068247414631456547666890761408870334280824001278371589900141596208807332890066520757737082504065817942887897049575078997664048514586507603017982035269889572031525829105582440693234472521064964090989574471119023978132347160389376557326888441761943335291287486147949295386373582641020704299660846408002569529159428935066463408103803309104599109978074725453009020599226175071214720244995104787291233191453675563021554380479443609822721066201894282407120325101204201012657498958108242427723847282347562223411772269293282150760948901349081064161737775873284707194639164508306144824508878664349454842518087791821752682706992585979323083990064242131172712531966351806066260908537611742520819902984709859637212485914762638536229431083197560659181364023403771509978666486486811555091888143099572522485483614807665227436456022785874122931806902969225077905706872721745945722526894333172556417461545368716241300726517573440602051861536991618660334377712551944840937682365468768732733256356807953176308652846013421082573032633093910276827590841886587441635770829159439884168791532940928957767484994384071052534733631437975630102658166500716512903354732152715482896880916834767843045340116281448937664442877309288362623855103242052419032779788830671804821551111264890791833745875911173740212525265843018970107416203988579703199734729191622463600688556750081842989376209869645703589604244100336062467316556870374240107099661070496838960640789007481700987035821141949331445575759473036121383186144036829433287810340685650820092000121598420415172794244085213032679655857790992465595180417257920223288627756868172785165911055785336142397759362061102503913503795376595686810299274141597198094109872837613422446872446779087810610883961370680631928994573831713424952770986482190639130889848718986811890849222766366782237384576851383131529841814822142219935869835534202334908092271843824030162548217195043617632167408234569316722843485102807787016200930635096529222138218746491589844462595160434846431670201963947982603151376350084830459687874051920724770884886830949670208512313869198875911183989352629915844273402770857669455660570767874471240456850220949790737830479296639243261622571875431253792030852998261936967093697132050651848464700400470700507187240616366009528036287389216250830473663701268244024272897627507338819318718263495584759106360707612610076497862855587085667106871818037985171270874533107627789574719876286407598020174033087288997578637166420585739870629243122421116539699673364564178767997071816719250420807459835268789516777225746424747060112784959793571267251323442912024088821197148254175645448812087728668550648216181288931341331356774183353908958602513877134466673199756120496657185619480845557290387604772820709716356394977519717560822772836010210386727558246236147292623931898588071048943056220506916514292250380378637140465120532037848311581815137723074625372729243006510447862920418541877959354390166475183098923418835971218228619237441720372654192418649973450297662395458877957566427660046246013304170775020850538441129745271928026824381525110611792160490372452878645261352215810966258067423391374764326625030721239437563810009037737786772328598454797429344206077434742928964086542645525547064811098700505986389387263467414267989900619179319805168806040658214656783276772097774401876831614827323864912835042880575757261597177582818989971777041179934395860302658898156718750118828488999764531629477023129176602984834639755969603023432122881126856974346109653623844447974098094855602895817038442147073311311033720320563318567794368586414521327827256801815359219375133016364916674398136099796155677154996614926719132350804741624561936570856496424927549442894249313718418138072243029037848780896019467562767973095226584696210924655484773112052636146022789121432370828691839787232637581193264415703975237460671216564967002888524853964192308342600230518438876962669584287609238760315154895399815718592553187054583297487462281551697139367502923370203375162907164039197148781850329099846254534617758332840843024737554353327037062392123813497844821520210430974199122587867358252390707218547557114473083622300908634681420088238060403769488953658091940856687686885301527279761509326882471470821586568293067915873303604441186553985521050341722978690986280375779428721622190822124177107412168963374024509972484833582994258845003830235209827992758571911029771504130431306555372930716560610588906204270075070848606035406810821374891768097177875773363724170231355338081094209020515369374986644373357135802018180433883055035927107763355040994332802169825569754838942039928554173490722382493370643478853208185051523967875534277679046057155228542166664452502787279429546969571705069526952222408639355111607789457892879194760446139874836702711512564864522340181814468948808057756441411317005738944022852435769343641822387831243865959636393386879725774332989778770957530872321907099758448181255651582774183160128064017818172196377354663737014571298769237588463337169853093570467171002043488894866108628248399389489822204636658106761903383270221600128045601111307356193300558088697851093779231893725305539721195421242273863847016824631521073661902202203738006230683569843596122469325706817608806851455747479704628211937399969443321345272140277261083798996632556044600593430755448851892981021342706336028974063338876333703258050290264481942321592341299959282060251603503242389956882457316730063164355043091113590651552384975457387109511360444435864228625313769325316349481902931558608946267984975851589106189991938552310346958050085943734643950156824900116195228616458256475784906171653197664421578311685461133919988606470487304582926250408279096894445315023454155875020342396707263907697109842956812819205066051030557776980411090530557102229380821520219296935241874456476586063003614930376975629992840960095149804174918907249394759189972593116521848043464197241905145753166521929401515034421641028235615883827739790759987360767364762878951374910651410434906748252219512644832602706261676596998844657430745819889083493287711820054969549317181541430326473526779585007211151322750278232024779487370899626420670898853581296858892341103765842989641396105302566133541793228089519498718247266784570322218031465403313453422433664117643895724928423538919597389679013351844115736931474470302575283785279184274543703062664044546676223041814388980519848406580816650379541243637542597280807076806229503948144691979859625302230614063651851941307769681822205554819160958366043754777834742657717133813629943805658428292470634795993270588975946125013323450666560397492881568225572119797409503939536514577148829729625042335399374022208935000504971841147645111206337948839462747862725822906005668007072952098667360033422992028926725590843713905683631706354425692263876370693444689304933566534592572709330786100145476782388228605370539877032398944869013448997495275846519522344598912873657639058572461967070207389413760772925969428410811844096104622245649192947090306261819658007477537749008680563854030968054681250702551483213015860322398878167280233500816201686603950737642028323695661443314661605380990343953140265595883356211374101017766219492335135369804004807125527209172771166240333824249354839437657990592329059518092413060047793024279981256366703744167735169838776264301186068196375909009344649606497535339846884641608427175048476089321195289065675955940094952147582005749769147910413032100488776248467211646812175766203785899515099834643171241727840426653316778876781311766924510199108908452130314907409766154703130995985828740644321825518669875129709106618021556189900591977364015262647696904366071874747230838513366268460871775104000639138228489250128957353605790860907302419188267705934879893126892165624076756248695480026215770231982141981157258538257508521546433726578721843674660013602042823059696610537361371418469847488367194469208225670591442867653401368555830889778655505010979177006194352724158888230862628839994236451242665866711310366800355808031052068410833753281179167789064435127146084033350414887997242553051570282382423987968976402056295818532508768285071175795952387157887855418042775088401800811047824703326404598153980887138888693261655219807102986986190966121022801669910453929900800670513763348770645926416664155646364802630124149232476438506130544203657130407580910321854237600691337272565126145281049495522520692148803754408986587326037483734619030894722616085341768189421531073006579721468828813761174411118509922879818567267136715730419629724836229892651099010216727609510981780571316609978091201523897462531294006107178507417989864767633770984857658774013187656128265966446680619165521541266441100395632823424815970600815172535831061717607544156480778914015971390265780039411266939900581120749711914783320349124423631547407337388017075715805249478362206566214992372580626196488456750510127444929477679022951640643654500475672353472261737853978609945477399590126207663415355983382741502543954575651210685529824206112117481667172398576115107069153242306553833516593773610213983299354728663458691419954035581451172873807204061923985664686066553167978565626494992797334277421897829184702198908126684869638813770077304848407265307741333557409266821530331478867251078394672970685000801024001165393172703737421875648422912047232627011897558172202947471616549212806156619511434483474426584716791214760000190236030092801184782447878351916163575641164813400894770354589118892214235220478503080548228193340761893798502790675343842700599684671569816936987993459696263144964008474296628515542149086893049558147965721657892185027195298797165620366281463165390274695529175979050017183676654217780324958291876509458661959435630675309924688266009682596311521667699568767801789153093623392721034960727841511770345455274150476971308669091986078533887924162377073464184538703796958043150791499405548703871832436495794145387052111605237319268097192860135133203997395620205126932372980019236062338737000710496335676568085974385718075136187862108460863380979472399317966889465218806953539825371967538820915669172223091707705007971845075714186428396730755268617465320740826222423572223601779877537297424093145312142670851672022711488609707905216696470835907896562753313225407555135996044685578023708182428882744746198351526296021304382035773502914520303368454732861256090062659829688209109035520780006931571520274285758751569123054906098264628604662946794110888314199927050367739542584416316892593238029227848282062009744570900062551620860298516197763380556268014440079495558039490842373784914938757112700112133222044178676847854536668713198704555567616520189467546152082456118220368233694616879699209047929283359601946348831067960899810597261407167167019407602631436223526337758768013617464170210887138054951338610443453557828847164836470313904644336084908411981562828232570154318634919837463402376737304506017181086461968441669149893125630362553767375292629211461199688079412093832306178533884672224670499414810924979597958540094409317233139768226981379002944823142201044485587570328980601730474886726690871464166275149981129236198424835611552134528335733511344187686843912860778012783008973965766058447542420824675348364336644480619318217323190623533275056474620398811574458570024428082169107566590024260517353228873957009457702446553513584240275305828953837643738140779245648977454908587791048273789323439692654989300241756584576425697923102615982107010486431006897477975477133475613369377074397563287711330245569095986557600326103531046481441513495346911458798850819463486080893289606404768010060273914511658816475775558639301852703807080834782618223503472488592198902410822631436703687510783904515440542313306424914436792488292880203206885301547815537982170467498839005195945771196198992290928520578954281190157885883404764564686189385390192981543557809834376434059604626358476294764664121257978001790256070736666906872578332168033852870461690281950467936875450054628560446220958935250043175645113432713690982448027349972022041676736735662158627607820291428769808529278193404388462567230391536910390837763203638545269295030100175214286516700885948738680839914567716332882845396866710541248950940843574219595623182810401192969659462272472174842117361835047966364917325334761695645480725007561697251732400187159979317475998792833079463806593536658364521238655107778067418764300956483750361374429146935753182765997684635360081758810610728248657817048106789356288420515559486297897394275518712873305094908620617397363391448109728034559614999315969314322250557574810457852494299308543538492653408950438383358368891757575751950815586645220654783286220485574975514540848395800073272828013171311516759957546399355249384069170983771770901300371704860756516280279668100118135744888537991351643057330535767669428900968776883244248734670973827292581913778701923420567810105690085881547218716464330611026018197127020235958371142842114567912243270856382439626892705214220824982048668168116561385051395365826656934726848371057330144404110219743213847773408223823652306421398201036819680382405018911363405319069114103784286460296530789829144938531540873473866010983633488989176064931695267130827705325319044965250260102731846449300724927757299297950782177228263391199175293303701081468025388803469728816439068884490492933171481722573486768758158547669946294038947036858648291807455820864691696001212221810122572900037085319018155446815815318533822625010617776362435743038629939981873780926024668668864873212835842135892409117288496499035637015378375046811481526696630048014513068706423626578241411400087108302082596216398282710375461345737848372306249114775594348977380320486318010484721810451252672971104573439073309696790444342020318963779500656375759818857571992600433203728178486292543885784317216837427797290355921581416586502742815115236545337144159454164243141460080734185462414743095701806022406414367574725837947081215429336778593553021192735754547320571271363213261121282541731866108571772079701756258973921934938445391321240293770830910053568782568599823447762657080204232180173973882105965959190057207396932443282043644096544680519456989712617398188235100194130780124176815645112592361230439593008143333316748388118483658998378070673620621144103455588100254052110022860642253180190803582924781002264135206187552953654722292661604927511037780900720547011654442490369677330086085409572638415063155618463985385973981055581038195274837298495458286582454390135059814864111465943426627705721226497516325468893753289383771320083107266179886881467390095483032327755026155525751989245692673572865387107776281344930851453713411651983005437061087755555118690589889987067004325006346462267345073328780453487861882489577093200719902371996193188389339660868020595694834371616749865526466313645084197844082078318533032095423240776698256167345873932652335990466759432738430903414154340782990211613697249563392770800368119758901406997032825674622437971370961381208826796663183100604166402050509592977201236499637748154503567832370550998484992235463041102968568201756527116401142421278894754952508602863950108592619276935385497665500735749319096785652097041756398747027224095289021099525707651940663168757493962128858961442959316208628767272083073140585538532873637672170870157340379976783212794930225541901698358041802133745878149392358897339416913832628729809447403654934733112159069780449965305196728215519920557983476607551274484389096940524880143379491655915609945903347476719102651162532634868986681648372219911082373659234963091186668313694412039335852147887551806726836189114014573299825910165999317354306818104338798740897445888564320134887952711116863972957900353148408203833282626293812035807629051491379236522760536926675379376302597269172790658493821294035788540594031960932833267167218309380453023653875066168504833429827808478205734747916236501043891244750389188506061482675757016435641503516254907641526021688718600478605566518846940105385914509707649920646052838140814291038302107361907476268659769442409748764397837931061472680491359161376424340494972452542673341158896793872932410574145648169278114375348166039271886405420026024118790852529536203200766129211546748992845828028630153205134418702052969199650005197826826296261544996297093861122535424749225277667468488474091942262561725590033381720064623837894327096888707221945505683428042123458854736391248091211676224437148993498676199580279194570511356599616261334235516910635936809551512142740493029800161854923404765030478870670420968029237357127373965841200805231922387223470992575088031529332926587433829213207857712704091756349147815193048153224029982359214265824385493031106719415858358844534415899197134557945957959757183598777921960569706233431532047244205489463485597575319576890417062285751122367533983952813217045195598653011126800559056459576437713694448279229211300652791406501411538077109468000381058951747582981484058296610215156738454701824370330915036849370826532346511114718087548902755164533211593050807666061247868672303644608118153287574316090645284036833742197848856099853097789563396692172273370354124200729915400874407202121621837987733950632348248031332549309097622916365784031453783962035579504798599710558455905046357685575846821490739338201296780227863948106595295952749081952135264521866420299545655759609312488917357545314086382908681065712319264067182233329181249096305479911045816903218665761293431480405182692805878163656451250862515456261544066450767854616026509527372095202049243143649562165891274085933219324666711827902828310518252235455425590043226673745791791933693020116530026768990688669211345982688426757766024042173427829743638146798455923390246844545106663287626146628526446398113043136316853567104733152566137715206050710019789905493876881718896472906818483823644067343939356038634553013771562069461366534399227160755490596180561821287294480078050266245568782191054058808685129860706854854809141605691485176785674148971945273655169076495076027457032605403986155019101960570270495474795954384644631481383562075089775102460019156007137428388322291483019638869172749371525194306000065823378832576883308195851016317290861546466002327786276392758300358427238438083686265266712946012552405982540726337682570716380555245952962836732548818776481852602829803483188294486191670874614616378828626929820809084916551813331578329168754460075974241368604216699306594761617253250209741162426717448479954460397608076662109769930912654857267470209775104180639165758160572352632749937998523100481878898613506786322629230307516242401969220975404707715652290251083411209794924986284018596962096530469157681106864535636498026737480079253189082999532916904395780309134978801490892675249555760330550306855575044142895058184574127687435301025095867308840802743625000555546673287246895456169292504952257486673924345986419767311259237205857400026066428392849026020148728364148126454812742561008703896798384413432548678643729832709819667187961449934216360102277764032038068886226118391492559915168406075180459228739446571217668737135500483160683750452177067227405091739878795503596405437542316811667215127840106129007714729374179276329977116610663318258088369143711845435765975782506839006313661241045118531289136368407777945423176184545970585511500018941861500638159748712692135828939187593197504814274402584049975158055080073105668267638981720514298176738149614072096185095550076743553632262973052378947955888743966869271347138785227546729001409430512152684247959992397723242569260972419911425115782876241164007120941962742707776124307000402470703812373256676880585423820282359396912149600487915925289806747790586213087510385316483720415449755840857701813637810777367065583930785440224314965220607394737871101431886334321565444289920730235408615992291496975411717236176207006037978644771992060682834928168807301719718206853068926314144087966949904524332356047070314036322758707747093974922365544781519441016580574258038591977497426746125997935329717684024383693054724967303720020905635542046194881562489073898073546331836783011116909989817310426932801463940932498243609914143792405159754418614368789901510259662770595292922316958876484956719780905921010120539000867969831581174024689306808547917503707905207377008390926317119651800557643561381537880194867473845051288992064000251040239686132622741619099998506962895919127712832637239798622580453348704008279153956732679068527211257771398885132780412533639005004259978795403367904120484558108854473246379950684594893663571295503356845901394839731944994051910758979068798077031875683515753189640941933333322273262548449692760256001860417034549864042719927178064411960706706435257905269629072070844789625869453211203830742421603685441113969543446376303458462292082662662211328740163509800632792559896027346986956561831374835647917047261330716865784552676530522580980727440036201562249391250234920252978113006591743016497317304010646990095945142034274826662493822672891222216574565756055143718099178704615270814504027087370884797268239794618474199841299629487633244866268035685995914954971146244315487705959860980990574151466931670066705799767950577991043845511925088053430192846308034268600058394998103849409738228932585305406777145894540583110019494117784344877364206763766669791151006765423312233584970048494790876517742916217930462802745950380904014365270854526382245462777398445553797235322125193566407721947367468623679681435529142393404293517270972887312810853945030987381981592696818290355444215088401817388966032589314528075394436894196216055824089378809477998746604837751459164907827478717796112326914306535616785799773161108235279756779162569426676980709083054431303325259141988426426053793313677397866367618255788264121559692563418896109025306833974122305761879830653358669432960426504552951243840819944674715823156141869621672285002746544248002744440682020887450269573751838836348095134791090439666006749253272240253754094779437084837895238302512079594400826964355656780670804363184758943893477427965826520643512275471098921155523252358351858455104233170865582379187014738128259965844554240438986491417460038988258438551012169486465146400910636674042406679174427675660839575865187122154143506301140561531641288683950724386203219018048683620905646259282507716599374445071656595340869113895714987483865050814289221818124379590114538098441929918507656422462013687539663066502355022585289362276070337757314065269855730910585611538190579431556840818462931371490463700848520696289399963073509450797678350430558849414628650207487719071919848769073599386059127569996456691703246905420295399990365851541774685327067154522019526202895346127522628814945113507391677715194675823664681036967737364536360424861236000404417358649758388289253986953407976020270110478912438956206401453266001977244181425597652226169352177185885534712043517829233280428919887590329820431048641592006567411460935873775271854896799407513670476850154406875675679803415435590348793248851517623284171578421823244591500909033301950116821067469747208099564859984540088458372521921128520257820608166503102898071127223567263350408847342883901011870099336420646951882892078531803445869210392648526680852040146611515166986656691661829046988971385071569941947916054609145360773318075610008274253777500932566112788249941279448580605123036581095552646104710283752398379883243318645849295584165139605346780732967186421070377281314050030309256369348276871058280969393632201035377518686096882467072577505823637622012741276243736464826660114870021717459493808287197679430417080082284075162593628210725277062862067060996787525887868927071999256357289187827299860080311196864484084196659891228368935857642937688930860652657151271877760116935981496548140929160896724358131237818731820036827094799580229173118464990403190232858176575703400988255326179450380182548918396336137145744955525951365293823465744007975870585906396290379090521835352436404196350752713311664097615671606071213492508193930217509963358629494367813016996983457413435741319358396052743385581853019049172611540617998329726733726657897418003445337695217018635835455942177097498976347859148723468071131979570120060813436860383744963119955089352832523289798732891111809087790732396992994455923059914159530888788261928729441247328448670675828675452755736026274850573499939408218012463931392547593015351007208644758714099623876614235860281672444116355189800183571791371120093445908189217470574157853863816127907895399982963726094191937062136783106016950697986731275867102129764250777175537663685042266481003040356845512175857309584170625117572498274712029578201580142930461461423758197905153591696799007562678516081802829923443913923691315417968420028131170015810239956652301342320162365651224100307468098825138949841000244223283796314955032417216636212613804196961711497943470929921968820739976500222479600937949790856394235986257903642632590610936002942396605279781127733280687539851253726750223534756946114136670462732821530303627921261026062710943648293161111712482546291139586824065854978922147814321212742933269414536147397995438650741253624304419090891863046529418271502500883259950884126634338033544394092625783587807955870963721808209388113988162429864853116167806380746398332168671844039543469595195248086291020988196727594078102972941812726118330370335189421873487499164365637068546672626017966814740208063941898773975396066475657060866288103154170801850913783011682239518371776181584235374970427363893412166222279377935710299881720916385845791985759282801596853243029483727784861678223890860371004517730647290362627204188365265253232820706023004116892472875191445113514815291007059819214362475669672186217809091242934944938776086941220040113499788108772764616983008722734174339422054201513117073898479424987426433253578271377643740472145050612518148288312542532610404289782168668236816328809726164752067707340561079821841020018077204250959147982843446027140189914547504411376733565115686214243142645427896489435055479431325737984915401286961949241333711259009107480152754457760424256661418071168264295461189583865997942135537697883221950052125393143577719818583211364118057732141098012121456026532588411954984772776842201541339167333127265510734197616216768595373635523786951263114353646898432538958555876936694541502238543182548563733237216856995995873587865881598221652881601214752163668723961364951953498904148273638076003973532406753026883461716517702285804787548469074306264279991741054641163484907634969577312836966767015088992490745850460972762101934601582204415798322352361890684820186808324960533608421245868394997412813559294055650651984073964587837417714770563182041111442866046224053757728244052916306774583222709054887632586635578898114903234480658612700053568448723646194700707836744414919092613235413265737562563693179400305068977528856653189694041548706577641587144190338372088129495108636804553207533919522801040881819075157798018897554232013338792664992118544895903051485395592402740489636004141227550282942206370067298566255552521215489660956219828282921659696440865043999190283010383400242670021756138493559350352810254570250643521080783758212698715066811100451785432519537788612101263779868269671988162745546353254818821227265359615732258563274170597755369244279864263411426692182054180771916360433734526111310137898891875080552116209800532778069152508856389849029593893903789682811046957029665642527459825393876186385323556225447166109529047922231839394811219191739190309028895327688856558735337492587165649417118488582181578802205927097514957191666568232179695012453797959321691276498929069750895629027423735321252577889551100002068316187062956373097112641751951409483875527828639663125715333692639791291008819880269513180964173192437283567512699495479232274803108398056817748246673594433182145185701198848862610290902500725123059948780722316368179183093460401611166610966600233126040553842202362996367274120551198021642574498340322611951968494392459049669182850447015274583652624401087453262659226331554039197181136507290910684022491526222850932129955283988804339889638271536600240887406117836145370699056386510205227068568654971540774309710379407178674499283156548066417269645529046099682914644624458509108332803871440979181543641216019023555231264276208130369781970053104901023696481633052565205172635628453065646471402263108947281587232274377762416153169194316913828222710442149741023961712464030099786017657456983187256105599457498549930832723034491239708076920739548114147899029841304791012033895586003609290932751553804139996300098599138822887356722322616565442763339963309203458867730060749916736086233304788920309404170483953035428069930552610472768974511856444677217919691504458423116430470411042280202677863774333246533684089271320203667408058522551344631895164802087655686086216813933282295025209584561873000025661953988975872987228072953223700744229453559891336548888958804099748557180592059430091495474784181911368729293840268479818451791925612467656468624311294544816583776198777224336182234060570316753622538242918589081011094064015482886196940698128696566458229134350330887022076962908387186024959554082443842024858688733202908213139920473954849447305438566929219534707112798895851623029819502431423452561959726421269533504345217745810080673434304884786370294556604350613569136919767810038032691979606709514086679891253172559433537275167426129744795611546449886506899555196095498569128012840278160099146294613574500221484111117039256042493094370368726868286055495091632972964995547758246538197137209096696872686559920277872164412201893291623060999141146249010256574065182126509678104696239464232792556906142021591724609092460097692754796589092622869655464072651544357740220471815588798595223370769753642559928052822865492567566937005582986724638292662619401483753842445632391036565241006301785135568498468167527188560065394981658819783453003168804687175821190152485432800604494608009637967652487975348053477863040280399870083648627321879486735990588150412917795305462506259601151542084835282453099122371426697085437097957516175694375441237754458034558246896632199277693310738006438880777603823042162055356002284992398552080462675729060046620017275251769572866735051724235945914046412771070902808623935676393069147019847395696933101223844654149832744641017952171504267391142150185865274507252743210619294794309328470746157751447958525738247139391251623836733993997785679063037629985724221242922615803742109561368614033137222372532523632493150897240559362873411095119390131218762358524776160519450245818099493310536534804034674313295114256967493433950268143082123349544971354363456456472091662361483589896851493737343288358088646157521882805896422732244153379327321029356118427047450749651565736685359577256576904127311818345784562621914688458006321515799620123735573536317605929434843630859854831796083013063862638170583475917492626780610142742107162739303883953243572539165228272466338009886405146257770297682187561028918316878760608935816848947197997075391837865540797306095956723294901533954802311861827831508707479863933441998473306692924039484245572290145787266627320833017169333089725178410948187518787097230759964249466465726573717797728893820749847435141213543057078339983882254282189737538651580800069123912327572525580039965594069978323710707157790266697112544818496698564095439339615527975667387952257591256431930621809542639240348298299278723498204243726682211513384059561063497594485048082897666241700492660013714307635191996677581259752334514295380682489853808926722891956775076584449030849561762328734329836575055952278740187698319588079790226424395075964566363180822632624397199111812754291169199626120813266662763713235763821640279207521024653490331892539498429719293787627203891207710839570866033499835215603103625358317209448301525588659583073406390263825356724660876014817648932786466820446014743207827805942615662394240701598247116611003032035668763248670227442615324513288025021103735562739073557147153937769794950359188996956935056952977171681712692605256061492239799555317557494171925911143767317476643953763558011326378721068554697094279825443748747025923997693167171593171855045166665518556035931844862812898786586128328612077366582373401523228358707030692356136743820805805803835400872541583551362928972212237330787613116458535058256002922890652298331096575744412636276221479783348508153444950662605224660010312631625669305030084823290512235530141470451157483315185527459993098422517845315816026955756709964619584118665999579857928796477613295411605518200866324813294626343800827693335144413117174360876963298083522348622927935714866598507461967723865631730698444798561631356447260533402501620143946735684395972189640916099051038794919395926864221228301204206606462834720913781368429331614811238839305404585905871365678627233428890320730726552236917673083865072096174431993107028046539977726610006356711024272106972368118876042129295617454295338712201207023188174022299088987104273244102711399543759151440729820124911929720286111581634023108372056675404336701081552358488821512874242282308119977013527593058884236315056466493224065756896713931820223933407662098404312662739387580246305036008988209680057235571236281480818883576207173308339684332823977783797042296764304771368992446766771660976652056471799492699713596442192591848767617189597757553665723704638924406671946026994606188614182218185076615038147824212470203742652861826305357760260431775926737063673574940582950894565739651627060464435827198988613086865933221724011165354848419858256792836558782635607274130112431002829274944711757057465893423485909932655229323680377977145837833535888561825265901763183693433933546790086660393428800367785148167289137784056706518775986263178365259856704743713952450336576984568214306417890496752141677526877149462994143318630653205789036106213748220350131952564733199982376374039921390068241415667228153511182226704011854312866961901850551221586981001257866141012606853583734332914701518636654110506581429368157000883330176710768928421940269831738834704823733304596072315899904592228768089488029733165764226540163802019246356757527675620478898405707834109705384949930651778072079971722894555701970254447684122273504685008935529278811758474302916931083920105469004884174139919877190532292997967211952243460923678007417316988017113522466111965656112646413821175917758731808643881402597360957208138203036364959162878652177518871412198016664161794757285934389107089221138971097175603339064811841503009497144034131693768542832882496274478502851836255365890138048586956257391731155379422245273293596812244365921932399349503700688457002398378021096048550773647258200834699208302536215959068131280688888135033849397190276274932389720313660119773407236054898734940641951130453224559252980447734717090470126177971343626832912642077775899469752377335640956951039251365167086259894857758791370073558590726117266125244041935492805926140109866398350884405972994202902524432756428382934553523154832891170030855278441757749217752406862005827133862899581054727823875536884110386121977668947929215914731944658888330287881328869620214048178629446030077589808375744913752956973112211456924783395934315474195622995649673961646686770559036388545113772329455617737766875654323442736381617788574635973637381868095988904961492232324898904948668159394562811422998052011984423844264161737216674874942458113184297596066620007186932887138021902812413525240207987153444593954683145675546524157418185226155367086125006707273001309057644239861925936490277266411558329432416862097242217587006751657581764742666677629489803054738084342973237145891353693048677587312078051497046700115223915735730088479065593624830828761409596636679177774298654854589950745428472528057008932696783569108237139725986332007121309146876976796011498542249657857792646739842803814387158075480871551591321594508150515384325786276292330694293641966618343273497349490796025908541941613520381193518070145279585415283893544631939197386995047310306292200097172576659108181844515110278439554191512415229156251046627124279391730774395887024848098886535928567256032614831679561940880815900175094789719271681953243520018997146139865687602154405274515453628430148780305632958009522503143442397125864608353012287012032287671456726209769603738507474730735128291550209467206489281987993359498619606463125932792667599346794447421148553936716670542920609119964672069157737551632411292735093363114107542463744507711154992172340187848310705576141676169212302885728858152103257439277274717483392120006597972949945232546924236060632242687232414886550030899370832111189462693974383309738646180717961471273956203976792900857352977162333413411198009265442629313750411929502521547119813969425704351403582559865686707326819873059606613673670344549232113979261950822319646744415281370336350786369749915172170261997588881980381047516156734235188088927211604189233149937676292855705746839152528171535016911454259405707973021686624836510043106493843931117539894055715494222282670296336154406295865121701134562638553877843091678221673004921169196110649493600148883549770846837040351630639776000098627206910676532381752894784280742207710133558502371169086810262630647502115654085213774591393048283085401634481075090663055468036485277748253586667260904934248034875782932519986503202544528195920329178419116863195011309436134737467201561888599903123252249226799360567403591910554398092873696954022585684883968595170477562427950425608031536903430647544230355828128117925462659396851930934805267674863218445158900890990287021985962899892003368387169602053701425267237770549549050141195326477283048955675980652879208123450845685907811012327386671554153144605743336348308410426436156556308805552804597837367733824804195047247393835683488932820490456105033815067408655256764946998878300347221271487662217398435525929458551048426138374859427048883665723848015502717287678294702502817305218968616687202697834736042143049702624275632875019489268633722041605674085965158127047111137324974739907245972723475339953103341273299827805461241858912250952694872837938519703431850231628544699388430864153963336187377072546248266691614179077220107283217024288623010177400429198259946587028613223600495004360880436995322745646593358653633535976961014465102250112080983174929635314004873757096676663228276898695689666950252594140794988500288874323575746634273637173093658495208935469775630356160668526758817481599589163540022757072582575407319847215157662362554599003371066021293571796331873252464126264887397215096865532605332797728905013403670557621350720072910938918857731088741663432173498646693948790458988620878747317521827423788069419060183035801382509589400913214128491824765387159036198537558530410299062068479184523597691669483643206377133335738974022813457753005937041858929555900007910175071267003347796440457389697570299988841700199695292776987198167962439976893393454549653383516279939202997154049546979342181722978343120561895469959752976359353774414346073417632203407636467046237720149793496932291867524989705206788521594878128311096526532712608372060667191224472963309673397953950733713781821727839661135361353462629198551281411243916746613171323793955194419290878389252279923806685066851485825071380348629870270640882601356717613450878759582954471345876593413802352720938506016665694572764079892380747152759772350392850985116689005833111025498971515227574065536091485941781069382774667981259962253123210917875744881111078406096015456249166608322055436810894408782379740538675840006103076441016771138470194573220870154309207700959408046093531235575687475764883151615517860105482370368407315405643997750536342825975244203506912328218074915970485069384102698218522152624111221445624404551555051532021191464894462651487302646672715328159171233375436440659606004854313059257862142345528508279578945013137127922576514041862455019776044755491333462985601666577273658843171111896022745662374335606511176556468832259970261701284281894723422461542330573320075978450869847277611603738397656295066082364071328621546553359863966223412307059632770257381210735506942365475747522394782404495325381572888602285105912921775110137305843874257835966400058695681298651096460653084865560659570186152894418733142650477714153321146965932500748065573663778380581950789580287113908973349760841049988955709268595811129593359434833810273681766104491957148064335794352812372643254505739860485673090184950228029110809320024248168624781655591422402572828405578214619087930765741236665725344498133468659539310755312443246244299184168615880303177255979925726511579537754196923801524383036893632692283333262936990482000141369404838812939295858428856896425419793012350676992244703698278875420087197495469738871339969082501702606581965969318947258536199440251796224223323986573778506351323717547715187539344221242742042342734887064190193903938311738111616135195887635058207257711128584773582426152327642714260191214388270021407924276756263365323395858740358741007376280294483148751043563909873905648345333519346443827648575967758318333432229316601013642831699435673591942688963754231456823596850028254932191814596197473048838972397101917428317145943055802163136220265236314944499479951811273240534451576482833524105537472439225552224225783630724961546708669978391922096819449048075891980420884675843627186279232508973255595441517340402531757872018953259560833969633804130893239497474875425995995587858249458989400537530138938665759446625833717850340594130679580266992438426092854564079905247827344940567735673634793853783414670734053151545787644486621170277970281453575951082515207469362388195560884550086779961005585990551927382070535071486320327861519062984841703555827957402377438001960870732735117682838977595826104790183918893444390874973376078732309798784134592321956280149005129076637903585104053208446799587701210419398557907995936923089258347688608534467499959669170905442384602231469920147322021382872457930637927465506626419330000593224687674302234600089927113564190938313098230059617134064671670263898273093429097523690740457123481432503970055677552346106965176158451380068292444977131898190300275644436551108843830841805920599999109953652534163753707773060854709775348942932223916108620334733802953489650988742003507604980050958868718983896906428930469333250692156646705132461918459013152362328046961776944366147723124426893927787613472764465555890658601342456280637029714478712791816992733187675943080796949365455883789194040690554527056604967967291946667265453599235844320211431235966912917828672270727407067497119433875778427974586620972260286514131501972932992389284069533649477789659724992561412050473278085712747118208373049775265693300151933069579424626655201326505771369754508600696243453987825339167698166088297692412901053938817647740443421337710287848315758356718665056812195329691961384927666183323705250699745506115746189636334288969919362228088968503642331455293974915926514926824771508561451924724439865509390694919852174974495029103260193639246052203391492018857325749393806109022436794846832546022733139457286628117522874268673160993655227637283491140635695146456787927275638826613255617617984553555083790730470291352266042129093883620265331868349504504866933595813185574663440805711837755900772718697518176752408728551725641390214326769242240310955223405110820890781758980745160019597197827982915549152693068620226406099500044868037076685138843807363560953959446110268983843303230631934681525417963547040344748381212254831681590271301818936528516019991675548517559103722601038623403246630635323190250282223718675790826478392734004759676377082579905363820322855499666963618075504235685323597731006817235435359647102599635242712133284842389324696267730567905234878058945569381886848773871517861220055290664753346662167035318957547632418672899019929585057686869399817766953521103986036515104471059509374175778580428649756075651773918125615465521229868576443105667608643415147783500721612165349435932754136654429856090950135203514688306662856036817825573741260962898354698158571237954381031507863036689419128012183985284977178278961166906913267576732144886009275978490044842859104325956760391098256034882983259913977121722435205536066261306598845651096332892762271588308554988809108050556449787640000276203722695644970933938498740595370563388652356119072531439825756872613152196465660335720913709877615497681979289065308059295521053660982227096911332830649572891806676755332041737182519490433085686387736412982232960463385859243444893168467511245257611792279689683176181769011402597922571231975035472492091365702228777956254580972366882778035744293586110850696067015392585166731959107805572888330858187840657480285161566889450221905195711968791938867438649423939638916838965093897589800983786713140930256838770398571255039802287917794626248737685694561437995643388875760221599831049608692912497057394323749967609530544295718506848943966865188067353810315282225048696096216230097883665163827873609603681718520754623626825264836113998150144655697738924434796214234442680743530740494158451964990252118027855587569492674445585401135708085070750939352852106313551367628086739627922094990968585082874949570646762075832141057460112531166395412827403917911027151683776268794170990118888864783484259978325686418945578632310586086746457957649948940718197790692776826611537364555805392590748721247550967286906837841484335250879193524022160147496200278030648364256731853321380141004529803540480288999557689373417770224525205457762456598191370789550824081565610376503767307016672202980556956874328112487288573946029538449679388949743387235263327224533447102009874431417354614625320919027406000576537506661811763579183552841858889528570529434756822897179250644523126579393025956619223658777782065882306177586420522248056089280661083332277622705104282259537287236239425077994437984209669773275231047943155202779281033478599744295943799164212390038582660006856517847005467479702908669669115004804620877480042420408633089331494346497392507206291742543942048522057084507464749392876125026096453139765733258313485831030418624384759815874181366732968500436171366564456340742087231455120390106469686143963553721365922561539215171665679575119870225522908557493731372921756673019064737763972398377515438877232811886043803182292208109209204572209952387150506180530762109010091361007205272108705941538884079153237364484270886123288817133153386392715839716935474787299075151518558508587183414905710707597487962188809522263437456804473591636534294712366953851282211407941114255723573994202104096871987713806216467763704805667525393689279894477931457829075554618581511254745207681404387495084866509974162904447135203124045034669323597608489857797541670953743488052918238577619226481835049067946632766997875926515548364550752923277014372063381278478160886423035963101136889609680669068663171727532896447284628970083167620155853915735277916466241970981354830441059144703227567064298508904414714132212126957184144423015680072824345340514721592879871596330875464869494312735287934381714522152499239731511154529197880209060924846589152574113721866668842510440271043609404335303688603638501094651500234736046469054015813190597726636786498520755954760151179934036390624646616640075831273812534624995753082032805963574114042827993508107954461910782588748769050065402637286815739700652135898661865979636982396534668530049531577455011712930852705208655443105872000648465077933444708103514260842080518884139277187880700650160795616845622837103649566281042973593954546382782058727786701402745602862935184720601552352651927188598395639275462092427289868995999867412619649216896603309045132069929794957118324317737853849009498529864119753744933052115580050586301144081343185724762279669111120479905426357660599135020841255319312489448298164865607996764996533187706541526469043516692290625688216632286473513225760461807855836281191110160307476743660001621879853385649109464617192377791724068176700181346611072973778622535940749053178209766051867825758127146504079197230794661102679725766154863603306548600145341112963783180362748866451111729753169490883604966479159476509436346412637978677022737996315983519001489508903997716992913323928707866700509750381344714998021444993726729814967825720693763230616210641217956552990037860845324635821213256671704169894078530186736094285877008954168813848612939854716247834860483783976109436165121523660584794384915959310886416592598398039206460453086463200156013087518157277160562253808433833619395765899625074526304884421937911549860986205827373228747919283478135506072303781332680559770753236328813994200033335336148621309146700849816449031881244255763297361682145327851047183456409777425525662225149787929850081026890216734977220660756360580309700899661830214600616451772529117817000618985069385027840776517427339307923651858420616193156291983950959166289204098479292257602701512059988089276396406091131714841223052448948328602836120536814620067711697638088526144121863346517837477865357372741971745634686655218421787454840540059754577911600727021124587162854494777639484288933882344035058954513300224279522253798124880858517931191178402942180083130620015319673994815366506898220372207791730582082851023437623614524916980678804743103092223272539076032842346450624948545725044904175435983809987066149739290967868280634177248300809851831539863472040005552703434367412985728296567325494013504693701273726192596963192718366352852584755433693125349153460675008076570555786928087017800273560124799416055075901486062717069479630230285131129525686443570639382058744091638084345866799437291431998395123040374596453652561524909548910230578239809063125182866088048418517213348795192923887994796732215166366304748154270942698432262295606167412588821857467820741757765550720581973095736717506520661271493445526141666597814568748201842958944046047093423037476453225884092091665844578395808083731856026552156115682892193813624017849357454075808525187276435787135186171957642035932070145966319582741581319600414376968089119062738020512895300750598170061189391475221931301081378963276679939067210425947230507429920080618607205742336852787166524445001828699249649205609586103362191165846788634161919424078832107481927856134542591912831897547564921751819923681399664826707760414702183603980599321885364110626247481255859347622349788704829593449814779599150627477633249554627367862094795769164703171274554235684140621296232398011824058095948493722614559056658298143062910192299971230845471581624645233962099955940322765780717656864205972861714247828098363792736921205942828908513637190795156267814179216872928861926238218287311859374038271438730398470692081505598042266758813162024998733426137700163491192648013399658064519077100920761443115001890566813085797348101605941796701233868578548394110346646165765001919855095943318496003901906750418874558649802915798130493686385620377539860708464536367013274415111933707189990952875090641376187745757945854317448568500772717904742555038896197391965891454189269660366948235507544207358198209029076658404339377154677673589327735615505943545082967685847801040003576753563515622486473748525113156434944698886676549072875836386888176624332249314751074623291826488509156390538626829100043629660558774811661454789631801128923381285851073686372431160258354765621706015351485402815282672566693434013099957878923970514711897146659837038840171326796816126657517305079661413817725542594222814913048763457347459978647913955617168953175350902977486407439550592484490606090060064686632894412639068059909341379566733942727797476157939701382040963805925063592667435328249467990175491003834611198599700637519378605291269313317853882102114451783530200288969988080115656323872182645157752036437295966371595333741273401173299689961218549573652220453351364152599258725844852815747081849346520266650565131109657323178094080871081667085132390492273906532430135470598137025278214931997040971140476101401947141923637756566126582639796223407062713100861929210490130662787667048653228198807715043518952954194717895419520216672179354044753028642745751783038547920789155469583024155127221583950340891442321986965972695536461698356639052537244215753777784723049649925649357565458091781144957080274381128985497460036390530435179002527403015815008691348959989280913119980117199124457818445286328148221803503886688196285065592125536685680090217506333214359231319296045056958786757137784795452292439438057390082288737446044806976068253570302317553821843035689622019758876225684348136290078046264943747485456660703259507725258984828953807841291879566545533186486215437294328240185989036686340443521582334470145879173650520285078056128164932662549950456936917901895734013810334216537490285816892528123873730501177876643144679886851381233010427173970918523776705936876927671717700876257590691899860377612307365688625672945406062646841898028955865739451413665262590672967706367285057144621150932679632992118207358144477075287623500723743277494801726535067011402150726446969419636327706078481561586437138916162129808456118586232221598095781655992015593718945608818549854096069611321905909236753078513972388017017368231498707347085761334640646645795063127316486448257002328209151243991041029495399958714983761957275867251565634038944525081189563852637585244499646580341679636729038875516890666118497672060170915689586630089306252094400800034251621695499307861299011573451338385366965355775661446062486181087532147305749915173838307962108354698906390151598615396753167434706549984972748005960594996099496383595650962563048005125272623892748817357533083102822307349054614096386767953511883830448707113812104231582832501315796452090175425868527413037633146473686120467624064789357975280834425613715589472555919577354610810234019235209257167793639523241971921124256028667914382372431625045055916624783635573626560558502333217107501960132285387257589043516495940328130279570249851761625489368804907103056301507304788658294892188487082036575546138868703553435095993244266322981285262295231636897562295693293659727398237200694696974830608759038936121529087252926155253396850787342892504989625847814827013902332547227888122948889931933783773433098372163825278299438770711472160149140603651051654681820822608377094857603813835534089420761558573226203282686386981117024607891351419926182839359030799283906193529050113484521796341354866235969086449919635040356794165267495324660691841558792335673787755979595268387585859950532992928986956558720400581014947563366182883924572744497546831056248602914864050813426393610487750578797358015015103051704684571957707473381739394771718861415370970839387518390705361625987637876848222507467956615268280144480288544649282268249480541618569684008799323558560074366426122309935395342185361099681772197498924674720636438754115023865299447093542458937428187176711742845776802381014645886420506156384724168878633869569188803063384676275029739231350305663944434861629638716156016850222861808201647996204554626957422133832840407531507354787193955575399956600312492598264079955992532875130361982132492061636943086433297959414380795050783073822660390609849981441001749097053944331947130327831306810208286085057096813454436330971587846013102917743391270960274014991732634320244761912827368342724804565812070431046726451690683470239805141398689496976851794728249623230252649283161918300333156578428548292613861754804117656589603276608797797907153235841408863855485094355103180076911324616504417603214284909927495345604392559547332287606788566664456885893610243362119221789718099526677760473175233715949164721704582319301608203307545215716169575921790817808499212484717186688771793401421870098304703441491470371299126761374597609131050576093234810485357250853744232973882773425419204689143404270074759318363644627404196374144768613930601242270506102544601943687806894264982824747022687176400456180116819462875179951467692024878552226174870167930540867913517114733790430070110163403363351516975550021817796559612966247603369985472166283883409906656200650624381788503733127668293690317211426928232234471959762807790268166731938257620896440255716394545482879709158066213640875058572979349459432614578001981099791070446454947971138466787001250889866279840841012457385909014002434044921678080651879417820199736151106967788656149687629501062326012906534281602374608249037441447674556376312780424646499812078866488959046437664655939697431565797494948715662938886115223064939217266637224309291884093684026991046797050528119049187294653634813805167352149076436062112253512103795334574173138191609789623915146847316818210240216273821718895241164903246500548849238562999924899904242390054841658785079405545141760828496876126701594909033371074559160846426235789639793083845809869827838965111732281464389457454748441587689564207571320294633633662873640168406852148108394856919787027847449263668903540251789242438579131077382169142887589152495147829873094355376485666634483370539392942839696827881188365984027033062005067762710198768056735280543306934707470426970515449227402067659691782757575481963406258402631123989882317478126697267001211941308691307952831266744544477661133333104704447995841018675347947241148858752872226997346117204112423463427530758432002985444197473899977713014922750197871605902097114183044647953745062347244836138412419131851107325388353886014309344644947301270439103521999186133396357720771658656291502419555265025404604205679446537627802163507248560815652556811347390836343744324573240832838639826656420749435715955345505702084008184772281244369034019770214233950749491610060692961430478529653811054753898164023050735401265896520696720115406583588766899493917925189676254751941273707953101454539692995050066393306845955645860037931599462216509042572546604576839356475720032776108077064071324902790510965387901927693095268369611194535934143076729956532362030993759994306221014734911044748382883304490382634750694825007052318283122741653180715196734288067004420873738981108332228078651415022338529393849833644123366101939635423135065199252581330690154776178133581135421678907491647769438218252477212712928185698359043969698885132973454525706382470181782751503867807276497560116417522228035858341056575861629423919521078709628670963911003850542125158114875828312445610472559157968923349626281421441454329860392114318417031713563419713282070964966673316321963770040650545469142435553370662310997462478874011484065427672121975399090526354283503487919355929333295240602921220217182858540881561825109044855549732769174331280730573861982890530322020242713239740935726741422380396960076345005727233271415169681208060016504857256631225968339953016042854567403754714039995400790909748299119651435581420240070353716370294001432391548366828281332767664721333155309645069325963835842839950616430287755863173547848526624430479470768630588400773160146098355758277918271684047591226892477386903693225502414468045628082185940187757821899989998298447263688385826066939481215686124705888303289219450046909979323599450106026846855449737063529566027006267110720572014695868623115390373079543425355523087310086568106076796883896405754338350649044220925655311679387371142376717828484925373520219183658597414544951000714991327897609789283907297067762672515583099339148231521403767571862368946916879319715562765464507081299665082274996986780147137591587441822487639058542087100873457256263396087785244559723015357072175154954301867412247037309263368787956172193723869290124802395841258502546175760920655577254649641533718375609230691624106188884306791037954634327692069729573489188672022847402995431902815022920129080847403623002881062843012049382755921617172538923013955426534022599684146860084928197802385724866706270673576613855325425231819625318819574481019049994060538289476763382240360484325371348971865933644054467270395604473547442623753844654391087155019374419795884076176096889243590033643583585076991314380489253965212426560689030622732472196680387452116904237714749205085242078522481319890271064438601927153102787248865549653465731822239096333090500527726472004563925958589386665664878040186013601661318095315085757628140212548186565023558705132876174748679247914747120231401880103846278527301047505808268364632757380977245416548646493809734755049828461506057438333845500318278090311316023268399414691293196011790133599342165257636654312471874219719319948297203697636649339918599590524463173720405687790769390044027208999994079118559621745421422274629671543954793656273437854974132442169349792074026639816747375215691480615101661657923632339205120675649448270977370511017857286020598833116753476824336159456894173365408871371098831207297732115740730416678542011685533138195852645177646121132278796597209299592848649382905966402746939190939684509264726988259419061024272646823859053827519276151400505377753877101100009235536639504961505079025499687431433735991122936087148462288405073497547823055392770169962273000369796143721097829159766922881446756485239085231457276847039254123175719893739615978388121372742032284833554162957289797955549940006547933722665465354203221762112505780025191024233356037694119069101584847943308773860412587183707762313991040695758695568122191323828346056033568582436337692502171494976891992359930939981207568956722823436111329620433405528957237881603904357801879807504074883592752074680958066432439001823062960296617719082796253811777914054707856587497764909819087847851546074288003860123994954846818268504729474114432898767814834505638177332274653764187922760926824816063232989954051772185866009744976180001424069253186307443541732052769720085916775989316692954702452977177332131534535880341432148991116427396459940985659106653778593385064795067093503166797173538300088770255600893415702055595665785048061629833324551569719735732250734251074411322205561799985352884912374927724042927328940956976953332969079649749225978988554468909854940466586064755080290927875838923588867593160236594656272141373478750099911899564751350678075107140371995345276293428989880842061260580997416223220186298300952407107020022307724625262139314019421676525898044958519656176097741884824074885758710786536450106894545371865122647346003330745850713931681161412593222811685733412781198281647614523671191197853834005801917557953945250470452778899210931701373491475631128104363551378733511160816510257311368142722836019420096291712100514173583704285891518069119692950907943577155263997102145657814947495163941034978652390295437486544067780276475020386547501977851610227912317891607328703974539345293508773133977510061113856757664077863657050483914657489499999993729715216813188979465021470449188902435525025062696559002607979924472105109419097943183458659514153188300947481974111624981286759189205469205705042212333588974557128470299967507105288372938775039920322587214669032263161049548618737254506867115998347201113986497624178391184084344316806733793777233287905723169378547660738461623000335752034978215856116040587740841895399592347405866087853245460008769094361817026312377526099828102526327822852460225869755708340478210409911787498034589918502723985756115957765367380878820769555466287337378276570653303276072446549454863087012151440307495750210388614330320464867194631602719671469197175032340896259705362877421230098508205703645385848059195330963991349718316033449015088895820618444386261849898222976843590457967662931215115616404259966687823146940297891654380903169887466995076625900027756138029931936767429283561611121708067364637370340011796619430471532796740776020057582043690721219652235342980571280789214056227070714572887517656871834689942009613437450894565029136759614628923359606571476027656110248356801034115969015725348635818109095827834530267621961979229768576130757041798352552805771172690226723257006290826040352599465674409874275109202230527914080949904660947562786278798597167398486551783371099876569409895187782874014780990311087486331256033973413101198723735676795918633283502866045936967890064768375761082051522521321462744647506110484064597920614943365340091105434082179780290881180543797927331848247376194494428423816582672415456618682907985104855540507746260939124727681160228449638202259448823913855914688361211238661136154283390972915507412381322075656792917050378960245101070483941663086611651568723471316430308116655773401545120673893147569459320577153368084281461954874061780389471027776506817948783577664296665203874816849050011076930905141136795920841060408993371358107485229709303622374266695288200484642532176118180490388200695206460529285727114236968553014475011159926649002059440134660219216818938186745644786315832921891807511994775976589222631304778600721176374422995481167082019749930633086472617978900890918698445530361619136367150460712416098594322289211612417634093870249593705416092822512499872878824711817432352187812948095914311975486070721518054708755530382193753649905678980150099635775435297959211524202146279200669214830157127292459798283994602377340950682879723584111411896857749377759426242662644052438268839948572947969383454933040954046059935711636836243583797346531214386441432239923646710644841351206995045298074618737868647225281704317816078060393912621398417010230386017578113464572897158549032059657652980005398750587664484867415232993922642917107882856858390623442541954478172564874621595252290365718753758706944228831901004056766881035328398161048662104341154334739772731912753677922078981388333147754860836799220105666605611334023939179587139464115409831698090527640718858399797223068091497957514138642246747368866984017467928167943413229417224800475335885248422328606106904336655738423733093024677486140414836197771756595312676631658460443807973579211442028735015932412012304664099481561462279051405313412028151194882397651598971909795243310613729383056260354394863240763144115284161031691599573615182449966098176964600169550382541923976720274022413760703673133519141905045240964765617227063734106486506805754548098079488601582911794001648204372408305727683531837636842605035007673835275655852734512755733508502761055807366697586018105885325947761184955980463985866299332201347488968852150374572325489755264670646907215469826149263022895254321277476504946418223500259810184824136224321106541907962936539605003184378518811438750072165570133305817454555526799439586996550792294730633454333423535139333428885687941010424787568518769103992080735636165771662253989666415335278600308738975698947939524653617732032935190342345918441529482570646152282177792398695837618846219671029518034194544741510996950451352530900604906666251577046461298032383840746411543590420715688502519076270072762628383322323495464781139161425349200887974473561258408739063893015548246289786638786008973321059293731529141858517887118257178362776515297870657222724218807168157210295617555681907763957312196831094666556271271193847934109955568640801355523259521673553799091570133974248947048151837316147058837491030258572259905318642938326875384301456445666998872244943873747012024295857247480962050014654100751713385954104096482493413989102188760483528192988716782021914404865935835170646380531234557027288937221780320581616978285560823440772544365011207907406829963633518990319565147929028782104780004309432654687151122015971263176043968305923145650210149846943103009559373312060398070397437784687773564045869449666900661031223273593753785047831158863533391617001960345524063111379847665778481202152228790730565078994495090716803193839232865494134917545865716939662066581721223345376566378956444889653562720152651477089690620943516608052196411657008542349610337435435434285354653636527434415590363687558897208188995373621226695535071328198122858094519883326328536873446516787108927018410157510225956425704824776295251157521710567108024075401435752016331982325828596191020128890562934405383803960775958833543991582099478345951949218087143934382952442828026285819931399097167044362239364088519101077967856777144625563982668121578745395493298833037176046265772715296457613858527233874764281177298451810591869493373541162006956055410717082170245550955267927909930688317816725665084228723649468412338505885558251868645867365821989393505678652223572190180343968693488074840506956404365518525886044827524097961494243697915654869769248199074889477418805734522230962907810688699856536678218059205674844601727624372309649391844269677934027102374142927329817177579327162032058232578020245583840932087616455753118235320828050094801125032456061156336162771869128082491062983940670573913166624720888598432349870005659339222404120405350526492728862160385394271605862866603705259424157754690725443426561247029243320624582629381234566241475131344316639754976958004351917168793939417408985403163263073735585465023747008359460158980402809713156555434172537796097266882691823530465628937724563206755945748106064810030940904457526423256951427155083616987902169294228909347053550455639037468638012904898832157118408399981703616605775038864857764157069317931034545257886131306664076741473144117016210056090598246544102885311127224139222222491597654354914771154159948741576067035258228556981305819038491319681371126592632605969901360577909260364735888871373632258898690302903491323309104763962721190546201099734698125644070782134962214739923741052142787419835667921379877123010728352224703509631560941239325770139371858956668282603989438554919437328297872483503572579575519628877303745985624388104766634299304850929626445490990553892835856461720151997727207861625283461736353539758967593250628133142799541544832588445477768756787871549027284995458903048229476158553623387596476152884100217975107534465496426797217935042348174574798773478258965177660963731927783036868967560868951753032782629773440589325226290510072424131477722308819838932613923563304760137162979517858126122886760331335329475784222322330580840363262164701057398522309968141617328112163031818734094970600036675760819483963160947478479541834256307010401922364975748190318877408878896127689951269186079276083105159033876524671551127147514529382598083958483731579196363885633945824361198877281527238273004547243737421293883431648698319239679777660402015133606745577922114588511256751370480378693157964563038581345069365622244408963414234991326385686001056435378642564815160546039550170267379475942030757464260350843980681760199636129129983135383154690777997195351726316764557306894368219190114060859674180754088524938388548025006321393449266860300230932878025197395711241959626071350791589225598101604722203143833016946071301896331218166754492493692963385569121168856043757194047985603193838323687312213709146684779857512850028753415035650078972854459672620726773884175802968078436374942067252816828800177128508204949126546103594174739267426889804505439231560140401423052764719516430110107544403817711986728921772490016947241302027760973942208990766521598292577599172804296154018680351197836782354461545842645522627711099104061564272649187356748701494661787530557589429269183111559883700080864156174770177947845503870083846601667900745901830426024752494195434151694236143962197435909165086874505127337205383620200138805032166140327605779675127811749145901299763125177313946657210792673894564665240729897828577502420482131051257181973928517039735622825376432748037785074799808430148713483699333693051896546031347140313847124546863274748675036900730338997065858562792634365329925232970376207854575169860664304994993341999648044399292889731578130664479534421483985529579589214404656806719428193819799251034590995895479117595054528448564918888106896732857932786921382179050071380762917973609246080340600220169557136440593237137160476427848038004446704865354655570667363040943368194125258427696136744392639551798163988807078861073551236244097756955096688087763512362508825743015681288513127475816438897664563782624701610338935141478687958526748050277338781288824980495096229526001035133805325024065638703272141049150667535594363974562209364723119451285049923269010049449516096191665573967325391863305389378405668525974053303238481810996590501211990778736252592811641453623924016373128574726599260060707954464171716150456075950020746890249806820661635770172852243411895621457422072467793759172737126393284355946794986390415877137715427193393292822743778544625533917955075880589244690318283229543716953405990747658903844241247944995195690863476376155370963883348550439271586017623906363601034607709355107102164360541527197416065039869119947043591162678426076912906503448490426947502496961177602706757832279995768264941055051004375963639456415529252982228851963936802863598476287879247740914956690212185985729703994735167479070926708719327447653206115035867583490339347544627003362867280895135701060121098458124281058627321586207006989053297344932984828205812326858926658464720277765310618471248053422010905979891033283147737285603574741635605517700873437463013383544495840829679910218285007046098677602906697309547587608202544341428216736962203529349526843390461587199256006675478812648895556735351684776323206207480346721908217691872687397892150103255570079621803718538872790618505761298132619614287572971725204724942089212308530823869542701213414520765055988072988410462474598430729973280646109825150072246792451592047527980735750294423623831965578691242459073633179846185705173896485435566591644867977656840680742921630840037312408918653352690274152551658196551505356331949885047071963175700593352421101447409611758380706823772581144958517623674247044244454603794425377981235008326559234480337148328942603593483657984722930548600080135343762154841606376651993064020759631849259866910267512723226466816496071955405935972776864153137268739789788347558614930988053736157528527678655237032613507562002480920979664745324201191401924933994804579391260993398477161198937103773869144294367140855606829451044671600314425584450798354746997753616795134189414509249201704868360400091974511688944341540560099890696396345587898464323888901094948724628217248972747635427993561758244368087305936088276426987164239132553103886194040181428676963679393487773282842290827944982547574847276018254259529608745482487163311140263670492921472587867686313165971299204545671894569946705914045080542819048225069261175147820273209752805601450095544620073950785205823309381047199939770375730249001075653195126006204274996266612780656419237546132655627811867277749102800884465111929938095859932963787338069628740972780415747531496722205625546662182569018019366267278299850926202855368538684171013536122071061147550430387799251289055372362189582801468166536866740349275326495789822914205557896235888014918122834292932635150155256685696501956717008207011305906539739465623865368928386121711913893995568055129310865197563921156617140214304922624835777544446316327023867393734089436419338691482483443579710800748020087080205691450979645579744104186276133659473333082195394954503605112539530135991037289509799302672138566291316464853864899893016433429818818558380331459556664316203906461676654370438859726622915194418172155302225177504286709263785102328226465056821049742059189044389371641951246188044000003186538338212560300572371435578303644839027133726820376497210528058418536149402614911217415361937507230189736487089491197041010304742292505617081015552330279493278726663364873052115703073441461412781316221748112231284001629918939642923726181693086215224679807816466729823267274422428988893645716776990712116807367041337529687580636878285065875296759722562867309085390015068892853806914207356703212311040837062135608137913887593724145968866599411233023405694499032652141881481900017592638494765476508923469633592464000036011056735310119773739512359900221915034849578914499037111150083874993614290732511658280084989759205575610354671728767106858564524316832492768781746513635669808919166122279781927680235851960009939108843847984432302428685795062975271367799048794185808590711714715397304191198335100642427091682712044508921244367620009572572920275972508058201804959665244371438892586695380006621827320016564504052794627528079014532050848927619309658375440592799769264083028342717909200235902624389029426059530747134323052897101057225414039066809030332738558952729257799127919883718718931094924988261303644937299523444914639246369990439193319401524160794479244258696649300422099639407071717954098689279029264518937484498135134051949162332646324687393028135658787758862688339606440175380522395008222238943059073241828190906220738187566177046989814284427634775671685277858457106078010844006278386420232872052650977991078737883865269239181780240502577394241060324026416604121233879926266554580655527961858833322005905321702225025358643663945040980107724572065791185662082947544039981901906862165361334457248064591738107974151014845543692723866524632037819128962245798749173401487276010704885932505886909386530668962587090614257030508944938873396721905820453348655447408494101607454124754812356610528156114379160286362214012352935614730706549294968309509754005065155354503003670968022135471846688405757145069843204812856923399190754696185626561057164793702077263743541324044200865436160866519376889376545890576844594552168082754550244230875899541611548732123115870909571759183457072449930642486122926682952246482141724190369458885632354964846945701822752770406902974613669491590823452062907362110549454721064560984479540755567596952715721431547938304977971152663573472037961938965726115987377913858115507426979529464142437757504557522369463809626471024763265166071809882569558845777152304031478913311630931888341407601158354573437068220644706014328387962173406111020093911872638715141047068869897500559854262075155529629441576321158438705017474982752926863855694409086476129381551231219294715022081972809445340424015557971492701342456826562236423755878663012820596809840784137447061751339649907016953771303402162489979730372296990918067648750045859678732133154108541335860568793781992145010671950020368446452358992973364597527407557051033718065406261582469990365924359605774955102235427463187990029307712301845912702716244078142696451802714694575665439982475377485866874857334022492951528084716928817399038385062006537467776671634716860025092801437684500840668145098967358444899803792395073333136628475216049478530291571023087591001159875893745250212703576843427038118812237860478359669699549369395690072188025136569566604248293947519839331304362124947021820623357626320668862672920297815026699553939021044084525493348828110453803876317925881201228426228548628812969355907115207529942784022215223068532742993197391013719371292360599258632089071112740722083797416976689642018115075185906964976911865998117804428902450242136610856743183374009622099672737029753918450361189917773363862754128080714058163976171948993927215968979441923480152859543033141363664858604103858257579133394064039401750986895642704790235338368336500390216530581117242200370947716452924555097523935456270969934469833277856710398312079751462358845442971168327036361286759029332616212722749224385379454919615505708121237171102438123487756269701604448385002670457123181888136103758967511055849360714084291694773936092237806619305963880147053582745282998832219616484258327592815483429563851998206033504298218019273786018877865579269650758383084991315517421408273900661917384805623507331268219625601596316042613167774021135951662883982677779154474234253584691019164951014832082363948641496820875756425987701682769979421887237016347436588512699560601336846182791930968609019678860624584748324650602777784056529454220594102443200846435976598519316648954857562784361733815788781737893154453892036555407079278690216605080459884289707071051180347634915041017898811105764486564912116318863067575688800021408927719944425846294537890490616411546048465745673183037090963499683155566625264454890861432213254496654897688103935057412674273368146975619439782326887955681326460336148410647501829479082452419607270150741093824374499869657951627554566189172280378293261202909754856192874870751092983295612774827051812276658523857276298179549890554992416791050501166523985368786657531108426275709103886553664068192657119692787754197816192504925051648181066931196115009110516452243570636397734163908358728024453141813064895412582994482152554886687380000326678185771576241680089829410086091696487228408976569149009546578942909537439665458865805938358902420595204600389403174324003707040308964899537489768339815027961874096614579249492847670514347296289874714617992285410458956431855780844228791821061153575219913334088595255034075916417213973497220726744126054339936701051547334416881584597257496214326704445207505919279796009709099962544387572322679943747699101126135958359637421529293388521080406086503802981177078080717742447278612689066140436982739806392580055915862689383118892837554790146345885339028330803538046030854736379512508155229231536750481801248583415406090195660645077545266203555666431777557176079942984745279162513833035354300692037788994722859527253404810513970096047338773969317499545434744766552516429788540128409081473727470511127998037350972180915738694385530320677304411147948321107801629992074625987786468504130275841896238726345585765723545120562803588916925956253560784077082146804288984759028476920650757850837597641421698936513107682748626992776935466928946907375429509363271807767778854252123046065650534778000837678079642711044391904720590564451271692362185965849868434363312069788661155905833209846505598752233067547555815474351901118529746116242837461806575306089138771605496546413758546861220944860312090250953125699683785262626667483612969775773970422148033633926376332454280897299712715502209256823414655025024638406444907922640800243746458111641527665659741108576930900511097827620815088817039268329621472431417817603652301346813585417643146927752826728952224184685922114050107162653305615143449106056114038786976137912896322406223893251859370763287169074099244590947147425018213971972964186660066102339336487235262681875319198234312511282447651594023468386267780538005380330949818173344136773745195365570602318358110478402184075952766791358755150609567147026403403370305971787887462087327299487870578659065923446518115977009249549154110849488811988381310146685330542125188925516415532498504792536012995881237910631199493423169355657075013570070267883713023766361760254307979604056380649107162097598588464443572749546271559381379118871975571649515098501452307979960859849515753847576989688620672331520025246484551259354132626187757740919570510503119422218747271003011788190552544195029769494959108488553853180286576253741221369715751509148801840421999149445350497555445251754266409766781316014477619449571347471149445359581501030320536536342841875895116973464232450136950244541779197888760970354238683939101845683755812772029938458128115900717711981836437381637155256817711688356478712338694802622758682286041819242704278734348658618428195404145819828419258242304275086073916348633600162962144081985383291922010911823444879418429404802916225288170983259412812241738554334909113194339802486060475150569006560006588288713982873278294164542420934225482129394065680453056324130343000645570319329622798098368363250734165523570072588068173909537993659600305294052788916512019142841723014806695440427260296910129698836104951531011858371349454999133529968186978482121681935291382125922561314049310736001181344925828624302354123003859036795889010849291105827434855098264655710702226885792906653341441835237825697497578715271624009467370332480167282230352836467024352825956396159826431181418182560651216068447043025799767305354499028869280487120400319722156675843076292677696039899971481044859308482511439632685500909001925526473228221545139054352549965701875577201057548387610143796723901323381633391146626681260899475618608469679549413974438055155204430639902740239136900480796254858330039382416730210116846425452943846466225219791018832707458033818368496576991221753837067830931510097685755471410240237770853358821241524954524201773268406413449553469132206696039206047239665515688812522532320267416145193428573438961260359793310724255726836998509205870154003219356817905743089378363559105282535971786811783305743042149683759746321826651749307383640620535156246465776253403635681700819533347106385309316121852797754620738658615755746035653806783323195584708120369959937907815604513697149669644711579379211541169587034032060559551659522895306037896603473162630255700677114576169039960270071625133918543393893173515127475878254862480091969541228772365067496416314718553982237864870087621185010552287799069380853800902578423703408113842637772532380869471695443042172256623557272209106637270815203813884978505419896085896637511520859630013393182490784944080400360603896440839988491496544568542483265719296697907744656443170968761702461093210176926554742127893738259197970440495339130524707512902609317581537076358316159335965678228327022690304505149435377290352606033845353134322948853778528086386587379150974121897861012239198980150099395456675178234299306188244157403687526821704653011601653882127253154464836245148074666228671377247041477133182456054226572726522645372908005900112814878089001805247865125818879352122349938230843130513827552160552400591715256225843661408695445533355152173337784288313611648666465379998558897021202252927623545028927173654511561163497277617260392764794260435578771728488971712514727226230437295075435388160651005134925873351137986137332305167622726057800080673362009872971272307046099796506673969505056536002174550121357451234821948943535777092300097549301189524974340650288605557987278941502307351339508179173635251826454575635406009401473436983471024157569556457977337484084757591122440663169989875019994635993967298544346308556929917195492272151785681844295478677597158813574982071886949172128895349096849094678409955197775759186588717960123455617333160154315628457749380293070869720509162626336182397242327693996136319316918065718875011404790225732967865494526238918354541026502162149977753256030655867185779397610244698001633407347996343771880783799595161714067743534105094148553388394381956982080868806905263565816338997149515225323949937061911343866660500284641988266774696434450580717678542489571758222632609792090773359409550426283977653716020899062372148605991121522598299297938425061116906068204362756322450597831629874181190451651564741519036112252682129527608876179505953571223093252105828205895576119349085837317101929375344868059963048272368814834814796967752795927267687917715580335961727108323980753007000970292143923003994104775351804532369275324341970931505438450062575288292978507190217653503016946714042908381664474753404900224237746539570994956811209896667941043516704843890860908187783366848934494481614909373688839156585159477689552317925123325941561896572431861395650501469523132717824479107406766122571993667041701731763587947253859870904560740833613968628362897997648573818734567790124273432037975578346185396467125653001322083876353661106784921279132169098896067065017049595982567403143745408851460133374400636807872162304474243715311823897188856113213251651778912256470958235625020500744244383620159221603536383091393817521578362071196898425863795378824679243456628473666865974211128602382027760743209401236891006160512407151702851983116514592915338756533988058336447804574540826428694706302284914239887308023614212902588935971610396342928948124953560913127717460575618364993650343946092124653316220353132413681658791140745082371008153838891913127703679457161958259112291313636105483471109888246764161947035643674884355745592042133963806418408330840292023861488012194250097217229980831867413777429830713587371608009854258041785790881884570430172539257432629214544452228766699948106389553790009834723439976288386633873541942915234554741188861688201758676869005980502825104374943114127043171544623560499646632457526299428463274083183602767540877900148487145676564935580822218865177618782678343222530271631174619353000614538018805975407127544861684919491716478556763143602684651987404000794027551071129777337959979434944143675534942813443488627383263493865432298604858882923244844495510800051762223653783532907117345663002601448452151520303293523602856748052957717301072101614079711815210507213241731544431462477721881011184635270872792094110359040406277066160100084543130159519937169984509280102858394096122754662698725760490291592297788599401194457702648877900732083839187882312149606907850210461228451005791814509504248917360452889636699258775173332018149975661811261973767315596434907609462968172506173386651258009918329325577007249583529686573839831672913659246701554634676897852124673908703806223082244067186134056472533206592980812648930880956007217308381587707029765098146712614064213307921263717721516178188188718801351310553507760651571631374893460956815319749679200563723185673123580444896645560973666525023148208323298045087388049433842736905237600953883891349782564088392215549606585675955922868159139077282919809757095007834869451330463786424006785149177224212137353534238670880080648953839774451588252097204574727243875001858042225839348480120710915080206531168690034795379671308027942362085309476932992998315078991127468255710229712407336557118553084827307964697574648547313504822567426783229219326326990960071988838907116239205879056392742792603329142759721369224670527297960529039039713893860220691365939753216777002528736469132685160572166399856634961444518653375221700135036398281218491924952835203857438295822365612818110386089444998161671315546299023487992191892239016390347959856728773019646103572172064760239161756005848333092871159498108318635179099213771355560732118272057028663608509119640650178818428652498699353567118925831142379635132612551021366596699144805753950774108188702063291128546641601850204740156510047244177230060983113044077775627760555558791099102754390892410080925800193232454386052847301396429151835322894788194986665097675653715156413557893500917552200100730077781157832873606068964295444313713218523731329244463909250605561532593329047675480555271535333272376299708732046245132371651493828707236583553220399798620990939359296522259948611990927659034006038529862520287136303445526538903007448067540255128363415824524266377204983326755249040999949170221467751120947950207341575071842038164770910794053931260216392838086134569360391639747710807032875280246893075691798819888768436305283027739532383590119829840966674305025040753306435641652490466819917804619426447685726054802355880694969222694269062076019238294761697008487623150569073016089295956273434042240463207256513880906561472805087286616443984172994828399391400184749442171759400310094224068354677207026519247634417459227317621104857860863425520968737003318867154029024349959102392717204182777030071720968875634680857986444642559779240081220501844689126805998768555241910197241098763927875819117436936008782241716428444828489908474916102496366109119450133890834781060901885926985867140231876270285815324789397074156786979724306222663154223023232185021146916514387525295375030170440218931859311951950932061257309940260278246872670533764048713615380032814182521361277797442281272386671697532479889927430011359551435356490251923051131837105562371540104182106088575764430674515075659526583070422519471510363745894116518051539782589000044621123225259471740240393012607659861292813288519743769345398247364764704746490775363897080958732989768179720692686055539939791220456474433660042625978437644251096816913273046047329940855021728483594019203770797327018913086407252408784864083393090391622352619257499694640200686271158311456140829152708803007872542016818291620634600225384082214547815724383885042365275962848554789319535141296873030475034412621738772285458335330759816122905803285473693514706729079672642246776012780397565964982248448530019797696744322035309678406076623452673532993633431795251616774091530662491617079435633357346578411556659820912429628409940817764115913108224661906461309086291000660383919941527294501329189418858377081315879321690523669021183788205221448621225892486196470342672214523487134688725911657697633478127702359354123058571201220992233776813408425705415208493582253499685467860685649588269844365952157153642552095547030542346389385882088182518703649391343626947679406327648811008261306610756722564885455983089400216457002392438129351431221045739336409180728355255128674025253505282150448925304573237109622957840142037048752247173397806547784907466852556457666276035235147680619952228167126060532188834579166501010991754788675152549474704524026196016261420055107275814318880916474464783353811157671655986496867259032716771317729224385379084849780902510226608301810407636473014746663352061590045728958266384944925947318590666086398475382472524632005477849046043989162563496564796121412324455278855464374000038128274502415880708886353715623476573598587738482213914405334300508047863463920744608898049713933186090949298346238402124128256110123816333413989303994070905888725606782263468736562747704737758825682358823489449332945496658872004728383927149802151228419969904728292944202386522350616027830705682333713344909928782521854285589517365378693219806956003247394557515849601985694609401996938734577164598195095048676144955383196573852721127614773009814087833877407252001593321353271341909404281403106619293271167543799167963758142105751417253222267770596323102170976737921231244665545381528471482798738216360731430605917909619421414388309583724480074395036289870836262156897604233902927878922492693671306329811509710837896628158828930258951672677371687391450455505870899803401728011894866666198046734707264224807329383759887977000784010610737610919856417863620914586179571269992974495213505383349110969998064415011251753650554406439814356040144743227863188386699479843406501951153938617438349310546009270177564843176779741249822378355479437083985029502401274485268257597188825851462243311954970450858737910759254746000108034047645024504868773816240020472142289512922275026226044241528984550970181019143041369787262433251436439386462583378313325544463394952728209682998710107030061528957080723033149688281954656350912597168999764785865573171101537638185511404733769133031494146193913823583779611046395797766932628302670593561067274861148673454127345671504849788482204324460124783494552961193568146570840768346127004360952606581516294708078128877180656965493960967787609358928319898664183475887685165183393514868092748690269107964021308592848262353395719237611430685850843183652533023022222151818838458440186831371130964040169794129737799894924061746258766180244808051202770605737484845263356986644146538721654300804802590997793959328409834550860804686771003912973924903413954706507503493725093012271156409387737083744002753229534243476829130516099057183641955382608588717326543159681728839591577343095436704199123227809894311899241989958407173093697391426938523015360038349492842933683396247768111013676229461597604923750912837953087465417839354749978943788494577004731354699236044968949564686589090773969709805567900596933342449600182983521953437107739034271173318834675160137045937533313642789054598734725655381156166565982160189788454468271049423254765371782733759872300971608444412125424966893759049933814190822289855626720766109975538416928466553567100167209576734257560587073327821451982174737352533842739188312416609667652889400867064037067860349867241019883608506948166667576613078056133456902992861373466708814641978093936036582853875808347998278194457275104832414717050212364815754946331060094098611276123893318595470775021189958384355984536150135337357751478618216027462746861373056438781191622537258987685564879436365934088557497101240146039266492546193060247350973092787323801531210395285619773592322455534938732491367508516904468515212554330381488470777083104130326858560949366242914906479609789369366831356455003333090791290296582969633805852578633969181069954325581196454794650940582557728491079899889234393735293653202192085890517386552361073342387642903220885318793031262913974960838028638802126681724624267745883233485369011734474778472379454457886916276984443733917085002269958354468971791371051801904196848446485901131474422985822534367289112440101137384394581850491075251722582218594774642126512668074756785457470197731621159507363516677344253475404155977486616725676004269902068881062384366354647724575960106718607809431091220466990657519528602612956484808463586043173539132997905129932198702135170013066040875926426367639167556296325987115922088034936784875966200018972735304079852726455484411755698765696140012512374600513148528016051287641839099479039640952242094003394127225811678751343782518669423130469050859468801470552488261829228253336488692276700389717883172262456372270577824584196167593001471990545756550645225491677888410081152270590071555193577486843176413475441926709072773768587922402779479757672066466528686005772629788626064506965602001200910094345611149647843383481659647596867651842085843326643671913045193703714014083853539337494120628700709052775299067025240652025566693118906563650754514476194391021731965924781469722319374664384021777389062782784836195558845466165521481983144185121964994876265255258255183322992861980672673531532029075307510646247847936258670606659117419327741615030963060232639831749910251834874808983247289525527303828855245428190106508777395518924506322862674259480720584856163582933137810027657222005502407326427175318659530644123990528911814847513350386511186726986683678879484049886793748595101946804561970300029657558699513218891991689308309505218779973728405074992137961118527743490189015290781444504895377671251625904084159310226547027706931490222535719320243712778552952869994187317968924400721000558884876001261191103226378787687193439967170553661918665171083972451508379598255566841968150645049161636257553553696867394089284372051746230166264511199537544837686566502128498341262808316314557101692348097185031055478273889474042400183817784825348351712575556907683142376770001080027386552533142984706931054229868658563399714641482959468024718990623637295674899518416624148642171257233694814794576909037528202448384989823745310865799597912415664685637608070258302324467708800701972860295330759291291002648939747394663953173487816531565810274697666430386680050105152660527317358359701482052672159647135843804293927140573287792103711369153868437734447606911884407406611018534682879343780179691978008444581189496537010844604480657333964393465825203341575113917629913446042527078036994002704732451335602112660626654810510378122639837204016169016436355592007320960562125338113026901427991055408725834113483994103134814415216071255651782173235681710277651054970766590437198033337093381774378256270665727145517984363320683147983224236675937024533275484075082942503525690831096462453031166297159177342870056393691684632027723691228994807920672816588138705210884985378731137307660918307276597015252656220934994889527592200217470856339343125218123847296341381032415226937780543408358640771406849942977907499204553597957232166332106161078126442893253157576495637152289365219815784077993886769423988048460685603085799142958652717333268449071835037579090300679491375696956162942153970539150239334654443059507781215946390353092263870247614552523587166796380312909194905395955976498187763740564222894802560119455886122814394118513596945584711417669625924142550079835697167933672991327101403355884611890563559679266818219441597457933143157902271361544726179356138961171684655374223562295737821647925732843364693509000252241113708994989730514092293213494291607115236239635353250619571309232854817280582656700595939961107801588763104658193311237884417406310574669087319873221253528867125696650575607422661403384085340986446964303186186357226057188510917326866993690305385530332951842038332991810602923023264535489489683921830134152377388322586569300352776058004734225211146886314123506731058981280595929243682039006884023227899868724873433962009818417957725424354289598625427051115776934823961217166806900523468773539598831111229370885868424648013123675508628771413038682303813371517635759888690918270451099927177926254959918874036922810262233821843790963033156550319659299491276664281883674028254459078487880080218051356037535674587120140235832600841975529322834115329219069160470132064970401176768622725570249452549693221476607668343167576979845201199477528540477507561642572938957010936738147958406151946183953203449224096562198562126676166077121630335386108697164136990813413776107789973763203338434553111585491679259689055587797785642620792224963094265753547587691631412871061162063736665601718895787933825376540520483558421246247575649321517331888654279502369752749667634966360665370731519787600575926643761938161192760050567651504447229295033520570937721183340291189456656186317603122172891680675899856308909637353793109986834233632360924320771335949787798010535984176700382184778111232347612682377671011079052174829627406761478015953409159403772983691286890651305556331151849362865662731560735509776476180273056146767017104182713634727424760944571885203878199415854574899372993355013108051004663067375772001938955302285565852197298940836171632161028219851405628596035029430540993593081953164847051520043129125938804273776212368754563426401368046579784707896050987026123069404557138616694364764019827894598215457542995839578139618747485394193236724065950178057678516710974618034920371563352356270103071135697876303277631660160003367564140426614071783346614556463244996688021888044415242037336860195319050510623628121933061747098830388078852868755302798347286639828714882574933577127044517521110201580227655014337548808236191841434354967290644562652295446762706502772321329975716050874072391116880390916812326334823871281190935997350106375239082632040720062443893547928305320418660995077408507834658121849955481888536217842299222895215441064477435414891234775195907231138719781861216249913037929359563477197396811494230572497933918411769216363568706613835570497710706909773564656983615596639252369102982806046699426780237241726525159211453284871785054611157138601847827336741768663226062520223037412754917807091516516715386894354626454073232790623729066214428923542255745551942575898703099488035047556273860675031023072354476145705087302455649141711756674706940227574350776839325062896046853737329172789945908759404631980338836932968251479083541186899665936803928454719277749429558076180721918422577613060344501219513020219916628501945840643398498235347631188128503253986901079038824554476354872758168284081479238961204840324328691550607743117110041887741102964476665392294680856129115342856145251094906626920298712453525281546865428827267660629285712660862553499347400146409452216413519047829303411437816161848029925706720922857235103045226247761228511453727747054569810235741224742951923117407480681830755065370673892656422675514840034502288127318721317818979228652178629169145148869981537082971709046639038162246069147118449742500653592226298389260926995562014699733135864611729081124944430214448295921221936299690223965788374596379509368452785979470335871218424637760256861229807797748946650578032695481470212860505223274612866204166464095455268843067448786465423108362652897759354142623469440350973977456308937863032947747625129876114931256476707664246614017368221292201239371313151716450712471779458151677427368130093683555465604807755332237261180794444604811360492192753360247512534317292924895092071618028911083066818412561122938619841080804626252948988008302805723183663747048672533353585029754398100857859682928496997619955618666256318756827759134173542460069030897440423317161404256956146297798942436231650739793404528833097862579090076247185548911138238794951443859704462595406310956249773379221095070675415809978351391281831676124487435083303582247689272509893587523658123383323107613474860981378697184215632900212522797435188423077982821438094509844439385671408161619740355675537280629568696880012956217827955613218026596214885731472913599229448202666716923829832175339376480615270848645985238808884001846399526503947713322302254683918533578135208391374976464729085726211096582613032030964370503075451297841063019082371092306582922816146270820724697635331679716430231071848986835644293599642881466991762798944965222500580629132140224135713255261490382572803411982100392743466298510982806209171477460121910632247672694642946791340771823812095571973007230280503648091417000491386658886056960201942784931904382567298165368713590077829487918880388652064990285872464432159377535895181546110034282136777564410513622301743943149642935005207609417680526564160889921767315870256108657460187973509057785112546785846396100462226407213588567983967180167742383538621274801042018753949173673413386000632034954762704119698650668902729809877692487708535592476422232622532045886550008338636871698283575407137208507679810219261176765021346633925848588767253048795672254653488905848161133870496665455412370327944327866363978173497322889437269824992128715085992395694126533183150842239126437580981887937105074627561163447316315995437478139301046651599818270690210505411161191367067413214449137173337902877314421012547389922323827746059210669067940049611535232554545103166333009241864513910356703729143191793961987331229356666832594369360780235838052121785786627457810153852008873681148747965198955551203153458673050774120471869115403708541013506510606442469670732224789232891221042291640534136260399710673386907819493224276828722882515359860422805954097694896437661420103737047162725613762744464855607377087937376184476530847976505530491979277295835136046378320076268521565917856877148977101113875256797395326279745300440988762562340462266467712253436259021108661855970570737844252362872180801674983670504470159108271036574019242349962718203220912944851887886671077875207023820055011428136150881844107056801217408389775018118703670887732044654372796088367941752816961144968472643816340656763372726878443559946555046882143295509833563297086703747364340605300893996130832084526450659236405826208949832091759083536921057540098159670773086445332512749901035099161992596833528451834088732940329718176837353216278870945304650528543988414424058172133917066295412078760557120560543012006139604812408142958301172762329064899145519116936450176443174256194199905627462593537077630625243324855036010069907473425006733053500063430743964272065141692153086008033202243940273955471103743542158975779074977738770465285928809326470936899638997796128961131080343870912104852126785704492332369840878464526846802096976811986567966406541597994460874704524305912682973426877840445836958086065672288311714812966864132104842902682291371151479916612257269658263916535002091764058860109632071624712325188427638194033327570251159497107681269682982896635662184369226766542654337611286096120739413320527897351340261122942845175140377308708196540656689360337138772652552283767846214424763747682214250831792189767786876697667183068605709061459349640571860188375386066891449076645094683602418316058018119265031011547378399529796914712813726257565081798890994067537533817876235005212553103665606456075447458852757748526140143019562326089263899163707506724947724214388160935404255080312471466332508935691047809707947163052074217629823597844656205098816581381165635876857865807035543823975559603757798657836645212698327662247609345164990943802047769518780594243080434205689194561156242223794656170884887452161478676788919725273173509855261214443717590174147109149513290434449578193302320857931368744022292640755070129767548805113919737532592283068849450731056199754164268420675903628197997464781617384862912335658826501442445789858448941608073861569862087675500104894541127612758609919621370176873363119905136699802181060736979013192869438171890214437171014669369751129781163919743805583145909159209379701251174618208772997741254774214901648850860228060559245631209380196527934849739007643193153359594172641518767832332775884321606631814213937430132957761090402053457843378673575953807820166376445202623102855249663756580672407986324059245026151516230601066924837636983653945543941557123275642060306012834839204008184888706759266247926654617016826463314954760334461203918605779916874249846330442572792914485532944462723588505707693298760148870526313432003793452570394245995996288751462050114041937618498258996629671719568814802263387477375086605109683494323507629555166571527808913647866227925642220138389650701645745541878671757569845696362664420175578288068336165440323834279047029575591859378662044280070238835822345842507984279839828711305308999671818971341217282786848696913124952689828213023250423531180695063196745611786487068132918859353000135436224148428599058602275687070205139887714721132623075430772769040137940731297048719245806020508722206799813956911867583458634769837061604360690584692403771650016169039808165463583860057533571335690983628810180272189346479860808863339169439433912434789084696484172913271002764183848906575753178323607755856613937561837188934354926715074079465501984752064987642815933001203254065892695615777912866629845352621099789482704081348947245079377824058796820094683904697074760298812775269094047087306637352222301938619367728210313936665544508559362566132281926500586190483718980569793230336873029341395303861426096348417920308663204962738529983660982134271551864957878807881368430688359718606798835476823795183462008987556420686976180919612960536448691725664750682021630341226754657651861934202296337868606472654896013166336965418901847490941101624906922475449252595425082992579725781400396668915354504093518225570058659100666002939586521380993243122321495765881166296582908546244443592677674347774253393298527450476781130319112260991142820181986856955312286096134855844977892005910748095431902598043303058185304607360126031089220797548162100943194434640399364490820691427352478447289606236876726407338879076486329340983023033284398537922669512007832966207734874420128400219992018688019415954648012141832823590733176565403792979951318123190377027060491987573946579081799132404160538403191949409456578129319802922741776622547591755856153488453284849231434149698444195107802241698623712777703294614951431005679918800127423542735198462726330403372454833197822418942447931493018233068094525347111506402623503038887251514914765044063266579761119000959108495076131832787050996811515334519039469151546818991057839499186303063845239254323503010797838852754987855045451480909031811214023912298753531487188534489828788227412385799162758601698107728023561756678658720399597019843186834703324839359193344697848751472597580615917399226912903583900304399477287346264004286128775098631181269847229477784447349082223107996565990989500247547406992767372774584458689723540659406383742558368731592289412170224243283092147965766919727285691178097180678217976077931862228692812162622590450523795452116036573288938545477934866996563158325803407366044678943456970015305668375549646999036249800834262149152941302021788917887466812960024791908512432836206989815060851124910751706147669495139182745948465795238568179699956448519697986077671107326933512008689614390443252397266722361075399412630748369036194998538564007790813788030083994236947605257933385091699941989162670490696250207373204212229109530891310943020912272801097079177590927110896902685518822903299014147197621614717669880837163482240374558854536633858416809716048183501670484079235467680654721310822832449554553299514286234773305371422222133221659886867582239714044596983198897179012886325119464381414011132300899805188637061342014488209267806783069377394753379238226939468318751011457409314696856411293601193095561166588548102372469534329802305155404443335219404999505595935830798135545971819078043531207761099087721816816398165316998074169085164342507694317220268162885634535504172004980944010753586038351985898023630586063590289139573467607044048577683559784960768542398680118501524491844530742452384489552546174937217219416213805330856918117854791131461994531467377448914022141234972851723225927346059037734568977177301929335137609167466284196317195552826304032817681561963963890343144201221445798462710067246630944316193261584566124530898728252785883920308492625910920919119116713810273958701066662645913428548022311431683739661492204101108958160411250654907955806516881966834469816593971750826963542390174174384910246652027266720257104102410347661652419818615226771911932273296133076196463675183183094059143681119529106383479426086563917520328692859262396996796427445266352159278513618942213478321252505981291762988228289519877369180715600063578224396841880734835102709192504104085940726280747160354800916270933532850124116766603929259772448526616241420973174364758589146192756843912923931103745351302070801386637002341211082496181852375793687731177876660396393766869889947206110199170168486331106799035627668116246655930914401525476731624216269343714734320654881601637071891438110450019666113700200855224545497407448794829901874696825748540046391107941558184705353406044663057426785646876218326228252809379055477336537541479428448063766446562603378517522135464359870154418910624424526519223870223319881922845061795627956994739316656441171802132039502318104512385947157810161969382593692740891342319015688872899855581220637984764942288498125918618988426003924924501182098395360695723684310178725624091173222668071955552186557048155882757859377278896326728295101354009217758801551629659141421507098042131892859505041277609684117671461195615030296751399097583087713980081903595242445042109678481514647732980170542023768983961866062922846152823944359743824860764793661462408200946639177304132944630524869418227942557492381808519007919390911745175320592112306765156263165983626278647763553583243991547902716533672514422834701151765253030526150402072965889666718709658904024649774764945130327990931548904164354728078730222694488850067326754552939018868877992558110461832243066985592789114854086980427549856379881970988092477439453333831630638074530976097153839176206204036180640129042062586036288576081368646546417165388967889531317524553156382545964999182413649779053483531083400598463686117733042228286039201315067114671631299828377689334338103349702454016937702739213381760019399087941265244767715540309071119664967313597168526244285921157811046401788915828781911007926751046442830719751559095724064280287721908688241717973780833204877631130371711405888988938620659879563931656979454405451309062106217651913811072137270498910261061577728404925775352144521034954840860410708579814934945068802449880289922444115624582385376240168134167814466104381485844419141935832624912992049390159596184627331540661182601818030705279967586913866091297646989405175210154676777421129541313382555210392659308769697432292591998858678588930927523754275143872234419675049287853445296543864092643864295204392188057826570094578212415555627861978262768145227928813216106729023380095707952417805883519844035137086668004591419232535768022909270565834898057953386740681005269967219097964196850941366230240690785708381390008700514704740000196093185200978786268284948681414520840681271697481003523982910875820268114363497170850437126685525954290595080240587349465764529013955822465062429707444296073066871070315347624257166695178454736938233557706546913128399665312944801294134740947442316421261376809145760561398171208138821135101239954237657267134732248057296325711830168867143720906492960790267283166821674202309624132026779376623425326181130061171844840127316323262312340201118282401271000816385977119018518887962966049828462006759949674953622011900268636381138373016893843782513036562875846391238272509072138162146362788024607697958518117784337699610833182488777560913121184023266676562637778051942221509760055260284086043996791149147332830078286945127510976665496014123258393695295280352523749134032244787691810355986392364738807434104904969546523298281372971983837405158900905539651024828838394127468970047463805551358088980035052883606665298353591955624792263147141246981368575763906909669805719049529692761556409241321287008931680154690184913363998785030560184962518513616070246637900316001992090798518751711813667718505487428758214719658940987972657022241208338767582548234609470909654627889275697884824147429937785309148693061141279400389017019415440687586748434540645041291865787757487391979284932938882508240308635925485246451625924257859213441104503938072116040227132019267383531974285988636345715617305570971628997481323142841745989850169921531377742243677279774723418982694487518594515904459419913411938325085283494368216137259037602373083359785278080324763309850112402605955907471345251488479125597604609516796742503479832293355203721370099503095529638190907472866592292696229739402380349457023710437728027756880013521887510081070416444359861546370174553422974617148550813596327106259417852770877095322094266391562901825079004868010023385062311167525551594371793104066261053946268261565809171229765962950521636901456679745281447849065855099597841191064212353333012674371292530424152730441561459814231928002413330384163605306728005962789635001078447808491538206223166302206825344220133437666564243848639917701090776325381836881348803343984639271891759485642587504539844013016510660840190001498929839614260115361169681576330613577167865334881059050306262242116157463863145899416184509825386643873185250451651698982201907903535403766470311722612266470792825206008591359509291967461647266782476783673332588745663647859600811426383680841974014353353737526038776119447384830123517564467012146033656437478053969662945165087015006581822260889089203132503685776122333365841135520352067492493478760659057809700514874519921097836771875161857102363754185490224727083191617431345325315015607457721364508119804354686675733002430837305342804981898506657721600694420574880607847244460192628212958626927262416100245313880328277760831458075455642666525097246366272662725803812845804995809500814733027296515185894097042815381842492590194150089080176858249150773713703476862725176990109635508555107267423678518249586740668879088512640457749274938527392022246920606830245439931221521852048471651052193054284545962302730686558536703972245406257036026847481571896357206528805188422243214075102956737619826392430351520004894578280554382196359112980048212293657661240766438823361670169661979966121911373900081564368522069621137299258191892762796350442842378203838763780046362233137079240642806158608116839519739030681440279971709589883261742589552148238779772536944900737594028844709125178169333932210284598065325284145900393238512493956500837179226569606770602389823113695360620684064883260532155768785441861453006679263937142011272403476642930361214250401536064480340545823073423346913884683728134183744387316494185858181974662422156156132723127311567035306392508777610485974005237501016184034373877247199383966433458673100199122561791185720310779937834044121492388795064612077584899023320011671642047088147728746029802945819772822183524742739300680643393328937534155763776013142844374283624033964920882609614566678638177886505919976500261419808264166444209204614576608553425139759331663605353196425525591426645375254089428519142052179501731487512448778959018226866889700557386945039015956572571825574531002968691111235630625250483864077257155634235460011150845273800734551596742320797215448184608798700302342314851725870570051149303158743195416610931215757281316584406485728394583130157328593201602317529246115624480486995807216751334852018334025899656283073538628526349914943620643258570170566147451247471019130785646506170742963175260040829660050670986362877207100185095342968232803512426218477173554172536761249095557081792838626706605603911016636717686904734074085915072998516326076431546930334891624679487655364298496794531475022232366836449583753270256064456446548098671241605774182350265614251679518066145781840352954338640685338905612644533874430336434771850087404022666079919644519323901015596305720638060852782749442804404753214809320712944885275263888239460023955766604257677863872193011244742161049217482599167163967202973688736368233081429148154020799099879677830307656562161899372526289696796688423009811786312020766507637872757083181105719409303145085603083983315341397572017645440231837279650706903223235071688371076238863004056166628182027106057848280613698389279346880753849880668879032017796406750197080634720617344177997987036647397481457579099722172957329185383466004150019568151056943899739331849627081969848829842879552900686517644247973477135154576260268595363409581651742855146756218649199753504495770078952232935083378372492937098510643183812285026629854286904237041185518981613780140608958526874426003278716212176914774039406365696426396335086022597282274886046058814606698677908698205875411002870208479767644860970229815561550406468850553355516025080322719010103247987316062387704444612305352250276342363731264418370598503574171570469743305355960718867112761926746181110010809880952236620576454306542035384023267211896722560150251105068732421558834006053843645071739279345463817744223750033250706008403808974766604863591742936577753305279878461000029816794009876868051408898908493874206240241812745306061616746554245941240842882274292628530959767136364974443149994474293561761913938480213329651609474852740919407204875688283320594891241975677380654532902035372606711906160255176309539281210113174119680272009634306269732119553027626446975424896165595606983551417117226193420965888592279166081373691681792436298717242471307694373222127926921162889591911167720334494159336742297213882681426405118676583926641122738261448563235121441769473688934537267369182077787633768257532381581029545363729683786585360302485469359065974193900189398262599706064215892059906855548500608577930085038897733104638420893529697749654178889088103407123629933172412814350102099344764599844183846893460755069149157327891295571816509672026100265082358301569056000473239112281078475431257978224028968943363348489891078116722505248506273062541329293258369613204853567016934091087865949874234776931265503290169684673896703957583627196661231774324929127908832016601394615862405350686462808337221665183178196849212964528331749605582071575184399149443841250223800773432307291209369687331728102828305675696878778883284958570318005898207098239587103849557487203099511357679247722712568497895912532643978092939453967747002011226609805214561629173652365193573401604355225696845150516764587984088497892008158870637139895789734486949631150437197082695941048113934403091781628525232365004714636172497255885395128292470572194429694417523585123748852662666923366701749235123852324317574016194810033173145580118057494668975722497896783135898464464237865252565058636076541680725972739352777938481731086797557717346463739176763095491732256234072224929971127092065117513881074761701800108862335275052223064627742376257413018572828029166886557655503325511387388913878582207813704023058244757322908587121768127823484103555765423083007639818988650510925719594964685697889056293749305690185807225507508273674622830634117136124203762177520245950619054105212297503318632119123743887867365597859161540410519807521148087311657609301424501792990425864975938867626673247938630588880741045419670534237380105299787311680811008884613723006839644765559090446394762263535302310004832722249777629248238665100073835019233986223164443590538816240204973693672591694534920733048662480774622866821033128561039449839869273873200056877511708360899242007906996835879945105092944140629690012873980584910793627490636932974820078275208911902902564578966684390469636350303770133284749236422878970523098468532192476839128024321807836774412027685907442188837232088188168641269551560599519802064203155363995067079074004136028901263741393910464435287370075489810190402068392988047644479426487791881132246860112870254115456124551250510615213750953624693468436706374698142603646159249062572909215058352703553908076689718712665087496927793345963634127576450791146352690879707024257642434154661901378893148356788379391532202711297674378560345927461468196110509041887364452888697233154846047301170152028033470402043973839580063537606573612402689578272136294737292954244433250708417541056201836090405904979079759653806590446587775985697671857576014123206147164636557384006139010067187849037347762233205709906978336552608184626647010647386616489365586082362181205788159753619216215983165500526396818388724367114809806697469317850497463347028031065965631749255323960627174906610032731405651576232690197130773674197655589720894738363610181814209371291241581843956553093564857673368335740998574220568544132301926942838712257209765347388740594142598800177350821277128626273557623463437258217094506928701055952111974149070411190206398348995290153284544951319214240224431006521856322096816400827275150969755193909305001013173680051751281491242496297895532839339897382514453684122930115217117126836378342750475787661001996375124286072351617722635251183683935898323149893249054871053690568793345574688471134946293318653239476496596539923645142169638136407298949262977858292121264331639260179414437092190265653737263232665383526547165366416663867157056400667342507199839033769091888636686734105965035316084849460090093053372710104546788065481954610772598994993280811076554798341186159539132833904246495187291841889333200753117278023713132899246321658464324459778781503678911283819053957288514940066254520861394078059866092677787991390730436305218344073893166624323770911639890612746892033568123852436715505354086419347936760345549818267883038824135869833234369428651544013536774586378676584890862056973915444200898685939260078341519570187602474345574870854910833821800995275959305791225310935348828798955939352956207118218940538911209361887015970406780595856362572076780611089405799573285284275589988375014216879732480923427769282550709137080531962250043478531935460157668435509036324243550836429840861297969739273716966287296571311588625596317337617068046594256641599633246499938186078750955664271594304977405281282362961239546926564473262153048326449966739064963564841589232101551584408920139401786246034862615957278375276331811236182562584805984056394436074461155677535410344947989654198644904098013046058469245094432683451734587998844981988173907827847889473179474569482169673478154737115453845643303946856239692950176092823626074733120606220522767304731743971812193154625499743168278292327535451992794468222686445140295723564144734866932552636845753946129448785886555774103464602836164598632507703101575216620266712848271705004849681230495960197003845869146456987912442995919552795253390847665892997301540392694538698367582490681917038086500098125171104937353680641961265143606956059326516978633318251325404835338916746329452650709817528143830040041420512350272064635472025277142309384961269617582293664582185784914026467178825597747579174668131666073032244656676531380865215004737999684286838724334400841953274953613143479062859247643282939258146926089129515409203952306430309925358823297446876996915714672160968379313456630433641743802379863927688994484822590784149441942340395914670213985830765855156103539075986775223331277044893683974693599809716730375555109339768958626563378761237549360214877728556024333585608465018390107898827001780082464070119956736859232267559733830721868693325035334258682576893209524824072848561352647297481618293644605497020821210520408117396535241469074972456045573013670438270709253474921844342804601061157554961662432850865906554263486165460146026161758750689035006894302742467367455967257707143855982271175779610684214981871597081658462762792416755963630904044089116428171645613669418518136272945052475514082473698597050617281871157533679677409468825711911085138757246534879210689208600338950610588685405527535376354563890700230973651065818807452344776518623975162543569339254957253127111225326144260688386276739633492604438581581109805072278369121316611585637399516222438447839707560900949505639864183295998254515970785455303444361516215286468231797520106366880527747817395267575400684391098062905696025783516589990042990833674319018271396822959423545201970789486053371871059726546805451161724531582752407875297744338631037205999129212967305381091402531836218082498139778888054841101257746744290902692455604385152433183509792214331930438672913369242235033479167140345952496612547528690490521532175189605688770190823086658862639474274307987817750318087675719245445979325846230551633560890844543616835343552357391415843645999920817585706324382164358769458265192465278001939583013182723845233545901107658715048769371433940588244028717422528548926381199812317969406503811230098241284462575434192830972591139315718151743266664568815569911511513331331055966969164169155824611342246725461561762587591502864968594004942646239545843494227364349260434100085069598898851594767255424665383155459659622460882337048155992207150525303725097817048169304388281868782227974213884160063228405883648531209750136568080023679272262815019178473749780276561758607407512900480239978282232092513613125454387061604025723246000949782857637719711603151985151880207555828859771766199485506344616595021656752368425242464104176591206421606495369399301334001566405601730362232813795024415753718143920174523335492452997741475655294624582883942361755048534679955788129112245605984170740836663876793231420431877395969152258751755293149700863382581549703513016614113441709079802498264915922779394531529446300532130204571560960349026936842975902608618771186889338713270785466488334955241465296935553857803744920262362404817662300363666771508517516046406208326185523361797350582326489208036367220766811746302195027977938529104896322658510889396665145599161833378841267613328747670932873173913071851253179260803690334024593065552466309510430162645591849802001918606828279117008509213221227116449338451595112285390355330138343417086843204171259450578711253979070148393046636786425599243249358957609933689438035695299304439689940872637182697947357889735495776891308185116999165587501082472307242160311140844199243310590570959504383033031745695358036667352419449325707001056090483801171183622164022416423457117818441994027093707422282652316737483470441988882884959433894444526514266918609525230750886720427237301424312345996201258009811599246014347600779924487108664021202990285144936229236020275501935757997621907232335678566997063494893548702426385717995678509094124221570771190159599202769581751828443938532609780445904136621693642566839284481048023536240759129645758387908561097763061066072860272183310413809726553775575234808981580289939416041485713858384949120756846735254837194482447521316739567861039609799893371365605472520643153327638962968119254170708102032737657925431605967582794207876263753548635866918093880515826397305458063583771349220658835770052959279948127256388803780935345333015713094970314231527903737713891409954343892567373487022544672072773745043762046605204356850199192416637442870054964061346891615405550939260623827756068138685166883794953601103333846351052535533475120079991946469243897676952942494579881577789596372693579208963795942528152714367159384897239934600518062717994252521993986093804823301862517257914536066829408027798058168984205528769945848422424075990696210918022972135548158254959264393628236780762850014373152162428679950962600784928374080665160236593637955920236046099505295298276327074512734305217799160428664032492871109316406748259408742627419641895118442199702929699743149639558721538168415230250622890038255877023185910816195338490686312105252091396183442471496538023661577808228881458735646671380680518636914344637585960049271366767832842260196107399780949842073944245028963677721623467965753634999854766661825489991347961649030829929131842949850600794136571496929028723813043300302927733878437097787853642499038943559020971726019973877502387641523160441171727491491791164950414844393508323647954826360501528432649624771843768255769259759715637859357440011580235824693719145447649098004605554223729390535069010149212809970772760554155093847787760853826558976698463093318958357876021962682798966253636205912546777735077027870136827215276291021095431159201042181751319666986746243924140719348502652695467635066222792146237214571523365849356612729695376860546571742748338262649554272892970846273159301080316681345331330878309526398884848679605201410498172139011238768362393643011277682825768475420858331022739342475969955841434233276553000318060129371751150995631094237820132856400568000604426772439996401125883898505532037170822461056428649856778888473386495904404784588798623497119829472415360027265587883061940744050331134324097484159129245931750016397539833901391560682772726782491958729461505896562927855408774457870763952585908224630483655532435347895443701539901261303105607113536128928018884493773256553733696895374331904857377576540927339522590954246413019709772154129484851231285766537372171667572184736335555007875104118781393096218810843643023448579231556167054653281627259923908091298397484064379402472655010216940001341826590446467266442470852051292090277827012311012496927460387237814360925940835485829042037417003284460875047523378085297938496364474402715868221237638806673556454094762184470043706063236135705260293707009125186778226746871951352805686226613455180193416910868804376030633542054507362494470460093820109376591533496012884004809888094856329452840238992212808634034891858218274954462940461378182886667049255757218976840766002690737241224003800691937153151942764849074013575369712873829717119119392644951047127244163469484202259262506191824633957382526290407979203627177904557889185279899069502250676388346511369554785302961634129303218179220289536273886388008063575072972265016477723769309109198434638051991046781446980987088885345247241163696218594414577167786434974956342479189182886727129328744612063560984454790288904537631069172390661632147404668547752585427205204922492674325081671640938821719825297454099839185237008571249936894998279434578303892335617499131904314624058498333688358704354168961725037038991488738883401333612846843570771422638202071342953999435989907961762672787631118448452250882006264204986502471818899639392348743566317621058822094154630334688496461014998088127516256571748278461134407293332003748104016525767663117619853175633863145270687769044688994898694137561321586545438275036650653886899991078450423223170415144896520754655151272084053585074863117625626205546829955855569035936809223780694225791664340952261931196160826333136330355099461587437046320532811857690487016154541619232683352132780914509618690308696502323862326120041230951649074493723604314851398578667425884957785589912569058440997263309978226213897623603728341179419477274421515978472463576005917440459423874840878301709178532245092784685882424941997796345976904096316330001493646942601456717712045576530524840681242912301245412524801749608229820665497915355939033080829625428431421404114678653258610435519215231552799184921571236640815360546698383472771729531777210302376368340056791031173417045387391979210624658524769818172466197746757049621966113538874094841962251661204926841090057635764141518537133392984725381718800881851296724504713914303963661273391830412787462354571922295219355085252814243237832331896778162240536908397189770888972170006866787518155567303853693948990368931504915685851035745883553200530051766661065270154462690054084553719624343769707325856835456756214090014725938776339169378544376326472679264898461888416036246691868207430200694143270751059982505746492248626677272543782084930828976314175125628410655372887187485550636432134068737351773641467956474056408360768578047496398326974336234961945715632010156207397847334364443405795097646056358032853866578301418216859226395130844329955247690949367957515428636514362433321333292124345379832434808078340668977329055581154167933191590553310948846284082554626675963133401163132150623028919889472558531815665551300747090391687326109695155069764178559767374204218439202503847757550700719581804446584569722729567524675596952426517359700843514426819310679744728706541528961704410273468558898028599250605126337522370253580539861249914793347178643111550661200912859440249217496129298933780303346269522314834443451689766582203714057875438167341486083955464203928506259194690804533649978805270025499642548557470185038265409919573380653432569322978655326479678408097574898277334243136803838204496834662383312015536892392602449569417221257815190753934349222311245360128241227393963597882476358540965756425809556815110204875898922760158098365598226970977108290440044783941875672129426555678400432488152509613755032744515722825741531940424734872564074338690465691398092403575317560099419320717670542854694508323901123234857970701468680570788049199460325556045598939190151951376814821724133005919118041453639103857635634440408215496902866083489296305763645073224929824514884398361369629907899616712328132366079286123344726282288950624750296898007499076117246426347748527809304879097073293518043984165737644312401478349208862540310398753122955786818583227868368271365616918511377651261331816480225550971495459817026647240121653955732230373433196405208893921332531829693751523210150710179494202478497092684826028219198964718883739375399185498587558876289679298871585312887106970145964504837341123986847924573179825878903370352231573853340215096887139890922784183286886223333772708493250414878135596601615145121366810230203346797933955989326335906299840904340515933815739218072676603199549465612999086953025815177373660371167494900967074134013930782845667196939773509529837265034892376745360695899689616844712900678203032390644931120246546583603849624791764545620779795896373366754124701379788615386387724967321158161519455991651680696674127122433777995953487880448012206895889811025881257526269703516247841112146255257072707496399565923420481328080234141809425743457060043118286104571477123152658712590094611773004692372858848883523179804193232374043330916540241152293807859356082533505001820268480261988135795227673897792642202261746853279514359872696317464217926743728120653475568968978371266111604391433382699014081390018193825091927674015773196069967204397120773454881638319822328343302356772965857966722670989607648491453599844350129802020376441291068096837965075933014334935792741138141206531968721526397215739530386219932829509702393380757889845566694662314852844821788347315366069742307880470668787595131348735278680214282825180689975989393066245817439643017556806794258415166811440323955131549367731877738434338408911945340562983439841754280343654209860442201542989861588776734465360091686485537836222056927530296984983321440212533670045638151751510393148590098012709708299151458428932535593793195800492382118463783872853197746665661316429901482297912016996842650769622725326387439097716396206089678603202235780651148342389527281240551527238581468596053698708997389354287658713042212382155262089395098648761962393041298081859961904365493134427532550793844229940204556454588774760831263491380433217311120317021635303969500470947707332741514680176660929612002726005708300123253267714911425217195955613910170274575607812381916549899982039223350504956759364101930012571725758601021210882165616874553984061077286648412162707804017648703621356277735758867141024597440081664131148025049603001456813823443451756364775282717749310979461458203856204997385027526955950975732344416116489662897831763908393960114634264602860655163806928611095999564037631857171288604678567625610559782803912708443200294390135130730687970994404465774951058945330435333284845099378674666584786626749845335549113993476262150265412109810905206871573158601853535760682389553596034201744723264116359643555838307982304033956497588125526817355680521441467231555462540289835736637421331250458872453126578148825237719174156475518397011420912274719597425266176244641287708137307689523005255917093173111558904582569492540418888131332541358822419595344009852056972989468508675309898313979108625835371231103680560632381495465438480708985783382413441643159871831087463882615282269945639074733220410873922971832729793957510653434389458128926981305842702846888233338580757205063674145835938599628954860163070405716449722355936593203983730695041544627848302904032250905887178859707973858513636951165727682146229983722590303645100423154891324958376401258701979032144380116279658459113178509652775769574281383057276719020324866444397850095909425373750278932161964576251876098157013994350327362426780619798461796777665282107793111531937389252108860990963645193385172937667889241217438411114292700949463541134414089190069481568110825895651507501703045284462404250634904015653352392283955280732841903910459220339212489022051454738147915830903780138327741906568055517937981285644636955168252141820168649698629352430828331266741588883027060047860368723247311965986034823982449756351648010737079915054527545945119213069439158485053792379658095999405559209173299479134555548460260251905823927519716717333036535489710472813791437063472052676975394452832788786330170873124597927035438751593268085354728401937921479153378217119687230748110975669858472167842704612663942365478767617588484862324461541789426014061393451744696196507626995867876110495074111914384913621578401966045214779344418742841231726772391335931559675632077982902005887602713054939003769050385059189869350338394786084336738997761727570470483702486870416475086057175463591267704825436324552657495658176628518064015511137738407085925007268057069795246022407996532247520470742727816873997038397174045152104027975598292544952328079993866674437424422471437776039608144388011707387372114045470905047026610481631205839169540033184748946456959352865997682628691273159439539933262185805866291099561282182160629885273384776622553729298088882897783684899695519825290506206785584464847949115649498881843451248228516850651852255568869071552163037439098016173020011157754611194528530863683232875539831600442221101384672682266785164909167903023082395485927385897609147570573753191683606791475654015691304422991888093404434297940526899993045609904560024178956466204872866016583136128220712984691923152481192410233655267110750425124141720474111105134778319321830183780387605421365291348589408834309328295917914023674617124207793911119065225015560137117379670026454906665635435168301243571526293802332389214541763335580419601931081909197610082675120107737913791138453409445065733059354341273325985800725954856362917173480788381266150902295610207974353103889461146483582138409617581102055898190462323745025046969844864254224856660597133460426067183600284210946852288090132164614782226199712924916479171384850176664390828577250683734032582101863460674356183666181543941062799885880624765188459944493537673570179832443807793990559649494514813987535476799652009688785173826435206100426886799377735810850663537099086468743186444794598662742470859139268375683989981322272555575156228422445030372608776405483128885041647842843749094512146512929942361397026550464036804219202222857001052017263081385232537111564123985480447679964655816916157307194353489115379528893400604220679755292246248223337295004856989197942759289658004913360749876194730686041086239786632996397943568242965644766150228384867432752790116735682065870637693455706858778158781713825359779528655915951352269720550693944096511588725116594169774718726287551164441688455182649194191340360718879901669033038071374610930498601378891933839396597309292514077786002509976081341949153693830233292893617158512826689506952533974839881931744674228588696936676074613391877876039253706840876200932420449889768250062263464997558940729430465228056127148923842362618686137830096589604325333085159422021549672205537811746187569457620929950948069364495261479114230676272346820189776144025679112111890752133628839479574266256738499218045337685023088597554985134941096092133876648207798591990836341879111356302775326404032116481836938070945843689835275986279261185877720097050007948831519266098009588591474626615614566056424022981020089064608155330816222687531797327526742094872923434225752757476643826236597870871840693542643225398488176095611100173425749029848023904748254385065269774742010693069924453683122448147075982758256132453332290947523630268668578991361135128568469302233589769974503412644849260427182286631501674977964271712938564918664441909997580442173362940856152425278810419196779563729290359663268748122019935518472791809236818836044152264259153716398073918856770908365646051345491102812406468044473419736053179998390003273485009539115462338753038272485515732752929415730625742418043360989844251480809407228350365704930163205719201915591450632451231185034911213621576894269763982162167164918293526892357602239387019206606344059785395968486455217443259907979212180075786945401743237975926351990738377963696141683506682856553498190085805239360511852470687825188197740395662116280962094411192796892029689753099443174767064338377719128125044035855734458726540525715150623469859221137747906166971304860633434786598613682888318949976636537391721838000289141031417736007802311324570382020995762422731600392234186644120461981416268129407992319926601795955913212691074465130957240106196140584881661620236739246200124916728673251038636736292020431609716831063958888870187533681621118255563944961292241404622475051118578098009347275854436808152996362389307783090007553271841388991342967561925087340440725975959430715317526099893083285195956163791020569003389725064017496183236207926377581550311223434158217078701825170940886795027001693047043266098478679041124539846721164967724552123468228970979777733490742282536406198759073047215506031679577168573400523255285561834468388720463139070725931578614238800723359922473080666908700381160247928105030050521171816524020917579240413909998617047604447296511332684236642065942980515563411180887158410732844703419308782109128624837044985281096666887643248515381569438504873477846921505486124095198560994114653761293361676860960855305153964323628217202610484558646975203436329551242831708220463162397286758177865695465007150905673339772645358357077264490030800514248525117253694555740958384154854342909565753310883471591801161958444178102000609278457908283317864251753518993262232679564391425267005990885889454300626792138799816779556718958828499904397989314626351623623146168045181714843330568985332820941758422370506322664223260122309609439546406117756038638976540447799320429363209706636030595489199344433536265017774995752694635806349055228442163603586818132620760138152943639334678731861447675715465739733775253892552694415299160976836205268473399995247343992112638860199755321730715975110530336519346629704977508780966146040286430271852612833962787062944461817609966954732101720025146817445037028758374157563791820818445419553120721778522478308138149013239673519485082055282228940753782808797340587113238849754334535597203276126744505581865566663136691861365393461715272062912790839055348001122326885159005499259144645501248403979683192786966980941473946739093574984840096282384639093129259881036805696362048398279192520909424126179172674491994743315943105551839416998440069524131220907620186596780876547676552228877584851486110262663713340025564595221426791221776505416043516807501623332922030165665906367103941619232505866253174041370587278116253024758452647091061241914777824098328465719899655917680456266389610591362736822926198590688319597283433895536934475839082118617313872418598660623790140946631704685935041510551254444499794805903247278759503959922494765397537842203328683896370889724186863420649162947689190657886746878108003233989586415884562284878109153230385981362401394078268873991217386019622709421739217077055853550209857900606991565349374672148053125601533719636876634678862772230661427620794495318148216529762961114938639986855759742134529744967350074391062063515999549918007715971072533519559663460231362166471455679596966013958986296167416840444653049011374194315675043662026991728035462644704711284940573539210726939206975008334154526358161034020778884067188442018169227334263026638933229009255552098808286020958505413371664415701177257161009543670885218364255628705405342322594178709620534300967382463223300418954688541592357241675079629394911504711306007828703590420556559320385839151712909033293937707706808268767851159813691339523998366139074834350915774987986477068122340544672201280454500855514017685557345127521975064864062648752499407025756154423619129275541708828636586303204449423381592551924960124655962118267509369246043194777394852804513159747904758868747460834919201800183545234055542595442740818267667225055814654542502759772224413044788334847105849937681160166862977189628426283091783966320881253742158166839900551854665942437165027687879138875624499941771871712090171885287308308991310882388102875685094752427305431158448649663852777074396497640766073700847934879799522068462822384940116991492445165864659033314348747276440405937187868208160710661128883400572604747145252869164993880429632578648407896131499460346868120704249341964168982340104930375873979970605807935312331193833144869035670272250503743605000969487783773284021927213153483105645521992844541443554700214025192793093399351817238071455849346196333788734535187566763684169916920744651878963369431684635084347053880897543056531215501485734400025000329122488321722987829785886234472083391932040038046540315067682920399467539219633501829632659799844881211673846695293589076267784264105219490460227880385255965107573683922637772853642239239971223702348190406874855798803911256902632015197363510098421133557001730454585066768542936884379000282010487695527263783509834522383704962763308200835521189964267128229741961269053192975020349108286008150717149390211000545266249658242692559641634905161160854888161290773725708294461307328389471452367207475942789829209868782345371314701285783205692153168459203477411813706821788324483883523462235379427102140974755384833251158919971250092884150999763096923190263166280680730343276574719595353845713286133042002499644062765191440657240874703181158182144294890959518127721734489229131236784758814086920430218504371719258500139078828475766403043806461290686407711384941650881378189983139823881528497270620524393739941116971485131491398504628312647055349716775341477760380733978834046709020628053602596034748320716866724871345205368570113289593681928223443927913251825255105492595412686949345826818014544639986596075134953176209404497868862002005558764262629105089631361747710980036199408050446706044767157124294062435973600654759984041575165051868244424902968857778687103702617458115772451674827573690720641698979452641059630540652573822777339769959618606684903755660304454226864244440687431080061543883423793970890359532475500045258791150457644752517727415398942534719487347916534820916327143046382205469576189419476017777619372813962093923536531973332348312106331672206496380751206079076641553991745385049675376626847211961821563824505116844074902790652227387740280110632506971163348112095238120913969268592415009286834198098070430948016717920148517177548347734067653289789391170651140512015965716545328708802122716126436657969919162040829970056621767345186633493978535378864620407678853152809867476924023113503352216719843889491319250215034527185359225058720449064708304798829714237756920412551992603353605009285811834554106372725135107137906699491875338887818928938650397236377383183021924273807329779837241475581528034483050838080335630280422056881809802756370207697620072200506980748302651349473318662676803801175118604719873745053729196206300508077516816848562929336355301300234939607498605361341331481097029860352544680942186330885558798655167102816107360309122434099718867102489201712543083643687736010744057151574513593968811271051105894980028860026426005368558349814643391280997409185836893432915650800104819196083066307379703686109412700557376055336246283924141870905794329646911601715595910602030217076204956852795835774983814441499617476813862135890684888323885828865410988168023258496150141456131132752807128318219940252364333423139541299676709152312469165556268646217153284208012329978415291227012145699846267727849552370782710174859160008400276339774229046932696755822386789657028368672533351759635940850893932569193237815125106045555520084516406322021168964983742124443942095707155155074223248635173865320302377152890510362154612116047585519580437805919315403949668897366648398467601751286073716365133554446188095094779271470968451719080771060682475377936770346110455870496622339348701031574422220556967029074581485872809526831734204807569902986494135193901142043574000374309354268312292930215391884643034540290473231246179548948603231118629924849441297769335003716907698647228088957669942851089726127229011940428383536716581632586533769986122223323924878973800113661608051755384419975303394369212936933641910072654582772867560522502725980350992941419903298629853794189973679578986466577465771145806531800869472966159084309953675593496972078350536382506677506956718150340059711966451350982859937830943198760673709535288349578213641424611745631954948071080500260885205872780903752677905222469007836182164120206392796409404048917157431552798780249428823067151432405575109149030540995616606167136813067142511420820106701872721290479348152528006736784965409099765016142206758793956730180583178343305263320674105698538041179418588389327032827633410351129520750251807188301044527592597255184879381479111034079241784071369560359423519873411270493587467251755430267724793536971689308945712237325696854417551187878196097291644330530673196220102953852281031525139074911868427081638967822059171809039881762213965745858846482192220335161774492562355746304592798001496779097403700589014422881508682910738791324985459861107386095895367335367636354599248198897629575227886653448569563333806672935104693269691160034698450378426825349095066838847914400755505633946974377595884692079050728166483858877661803535620646241028148180023661077569673650738260083363516534475017409115910109018631053124967424708779114166835656196076301870356108529802829271781515908475588330446232559381742995181110830505583399774012468534286797926048335776592327047329497125345745396905229660506244463358679804909253520879976570507545425643403802997604731089865964990840528271304686714826441571348892243570726492371246576325755340525809451687415949454997403305124227326903833055687591895756640705248921503694000941957115591180361302487888355813924596011080340412508345568303377919894065552851262439681631904717851348532170515593054335226909836574637985061012552520678852092938220513156976764282849918816233650100282363725464341735730527380482639526893587563983109755802551695445041288390775555994158351584602970326840098296792692801684033214141527780892024020996874900557499090989970610490099584368373710979560414710130638212791545930712059692795751695712928021056342627726749790571037346170668647568951410448623989294791253057679240460614786147997962141719189091420615580297795044292847244712586908758413482021173466543639173543120840215306844162797282912400291013224802302029993740842147912750875111302498473113665303493541547418687038002352385777495100305578005872359559490506093701410668217059238868621146700579819091237727238506739798940700585751401830360346703793054297148475281699461666409627460582675945098397506774963422452199105058059881924906319734853165195906418276376852344684374511624170596508745351835400959144584017441482051700866603979743080684990155589926953745212501157728257470753537226245558671396324430763090268747437338452101804173520054410918181719410625225054401904433124059163212634261215274631482542164700944877738068687235863134481324035441614496493549205090649205244139132388521824955843152977173004537388208272281909752814440774493494948056256506559431319723295958720707010306896825048420605377081325735452570543130231502118918477977345953649434189555726019746288417753790890098044969416589231135646920433911264753807999855778513036690443605601747782625050702972306200374207621315699230202705453454716861487914638730717691537177829708525475628897505175942931203249940566496348867663918696766170918278012848760187422768887154924729256235354434738499616403684662707843471573591453277726471589698753254264456604130629956763466986931888698496049484024506772797999247740428583568215298115952476715746386345738054631368947176919236504277536530949354098976761394258044086483789709554835816451625384488709287430600485151135226905854667391405454928145998068629076817485653782967212942878261039165958740733499679537064079636502709399929246469958274837165875329423610307824431126902555442879632639056572128195774864859890990644725643987845431879786674531816283410724201972824790965915511281729570496389780243865262353831772482676577022282800869977392802610335350381628748023956390459564139519343563256543376956965251744793573559549973330723004127257169179727482287203411366124224853823965966373579621489101370368755101190109861435410765759758328782684925748423890284048925451972181700013936192945050281474335443489535848090204000369574427726813834016596947985303946969011450673823465630157374071738482804926977453887411426301886781125666052698833314673857850758980118708753356911914407373095600038309862610499768903203480911271641790631616338029834406403203203269020423337898982762223039980660801454353033347274176011818374536298125869458532057583344649322898404162233933032591321248454960101787927024877657197105754371828103011303660738648572734511164350928457908155691477732162404830882099111554418458624076938602032322517652905734692553319819915446371429377725733228206930412997262939003036137799456506325155508988957122403356044920715383871938903874086811927606649403038958304498915403285514919827121930255065420542613500938571817368464514940355359380389936177739115703930201260474076354378120259331279786788063028882922330715200134488891314555432154696210368806705095067494850682153437362942756774532157647930879825479484395038718487618688233677912947388262421009068123494874591483655279679801286535309612555586503023480887014430933075094303605537038017164634844997142866175467376408107182386519980939039927008478872162080600408996740610298074889803441263009470389079363832122608137834357398532073828164977210915248407488968896537531697183341491847870420315303254137305536570790934738890394207224908393494620254921041526533288776906858403594261476677092088889826202789398740190204157237761740403379614081224124300464368845697990493717646332524976201242318614884485349082969446773055907529194080778665659353275446451855494318692943027735021235938528250943062184294140803797972395035847177873741777031986224011829988932554378795507466294032578027658303898341200206892015724259074862030927506181990770768549053829203067905976205044226892246366268300520621529478324370369020057517133630154303463448360078471753663013339961543883899123072299939324722671680136736199890558128278696716880794614755401488801107931683963459391209740192066908309074196196061759488322003781014449903725421967893844239826549213686305817769563724156200697242673770159744169552824716856138246996185472865957661254744478366404994785375289021912862566747855276053145039933997738392610054495318649887317878924631582445231729873247205290906069053019413076717970210729075984742314798320927291084061964262970286968873098824594237264874402288982784593999994572574650076395821061689899583426025238243376073357196786935822973008815075249362814626562493084556793268666597811004748308438653921956107540355554519685008826568982593875065491929744400157502070279474071884182219549558082340915557490541148341632399652415322486052527318888949167859514781965008682643276859222375803406661518285424839707799078628280103762001077647933272348765146476314859379713083685205901091091059706197867575635104989800230360257760749153066681901777321854084845914503226337745571456122861646635530005232758185972799206819430172147115663244082768581390121121271957292004960244078295710616369224386738363627427101706225503659599456814072250707708426454267611488491993776492618510555149162211992007226425860243022322284276719813016140419772302752649388676775756546612350159695648348324182965671202038488388218782140941515232516414207569407785840538176104641611191265782979436930116154147651859139617508020942876517171363115136596740491819706857510968450989510815213430671865240304387770641391615384637046905913998200620890425647325252885077917748042811704039456167626770831569083219295849361571948232386099477833200774498437145382338801542274934421219721169405827523172340510897799608040245772533348066618717102403717210061969178044430185835173569998664067654389872278893934308930602704627450888904153507556649482810845420102560737406834733196769264573487869500193914306416711385727250953090726248647780135303110045596504270610086877003715001990293888722501023584355173507686246702472959176770972579030477036561784792950449642856156484957621867180494558842529288484112533682005308943659917978630399722825068091282116177448516794480634837186173896110708521433571071471525672720442715316714259618990864245440930701164104558589632207964173746677337226575526767899805234409785599211173102574975646605080540697723233338518211265407245210555584638773206633608111923653052951121410747508597325573387749832323947152101083371489772160555989346505794254650230104662129230502482717692325087318289594915423833024516266360266130873492876080447463486766058981363220650563543194722549749767807237050194684310380673142927193563217504015817556419956224804769365117390510747412538608431475500107406933387848039699929492063855796432856655284008478166796165877737604997058054018791251206541240874699598959090296614125406839564653667469894071806046766651091675633543896122192681018211958515090440894133858403864185126797021323124699847900190948480522011393518438346684031990522929423849303137989312229105833127309936649339657256869304892839849482754934803370972961132490804843024479014936500474184452094550539840539179075653575085098276198188364164925944872357397810495245092623606024324924448603340201978836661529069960755628135921478121702816684397683194573294567475245816207509041710553774211499365544338299186495311834685567586862133713174582704562262997178666248939829607614975351230055641419661706842474841458822857267723387073504885820194684236454818926553706305534893426528463196488928252190433311310194366714819795260691821900856968683056268590638733497529210844056536656223327284956909757401573400636424269523339250306439988016740529790491539318371192564186320960676085394945517039157458878691673317252366857356678078158112528075826495452665741183558989164608919682314482532401033387601991231342667755081009325233797243635633348650187671918477221669834432336054861598519961322154809763670839995420633235255466788371272316905881599266693462474703640431001457579750369682407583366579202092863778735995757113655442856104427877223561815709757491740368806678186649315604587763615524676763448518240513260369246220516359190026140723475497966729452516780517346429879206584756730411787014179943638990780177124019127317388155312495889212076135481334725079305327569966126617928739898795345900300865982552481465866744116432987081178364153262583798114719919055572551927347424872659372528504643618723469238116285486623377604072607223737383478859817691894609741773939362217370896497548135103295683159395432671537305608107935310389056912280530642810373879565676630416931412410658887888226284819171619408545133952756201551080491747783740367359457558238695600704371558592682736214082401814713991297515797782469914468471937090797225499875175765380256450725518202938534044634158123588094275756006421602102767995398735737507813996020082573331085905366812705079013633613171886592052212316255219123368960313905386696635484778982405176022630480942932240814687331506572026806578484547263971802992516855738789437681664899243985266892736214795606034345687194357200336358145260727954000270010031417178107017455437162573584048370249675598492850265864544362597217923653580840781721014530895545585775404944621425289555117103478820317478175828449259895144760173447627033278342649940052862315851621574470488783719552371088336272484029188347917109191969961382244694711558760161663524286881990850906272449960810436741029216285601939748292414630327387944250071782766182395077157425168717973340898586776922234875441361280224324342142131860451197875530725720110396982678958496553842098309874111331020020718942324035284442081468728195087712101380300614933923474782731788813130985522913030357221923501079454141894889179318011807805667345588110847011128224919927260832829033803513328402075698723053840056544768302349797479313577370030019476068589104770679322156089849970748250915241657332403542278678788652187173217496229620227945972322577442358641643721041389860417777328579214741035568630053482652268087830739053828638984908941687399850344512243656209653130716714908230373421047014839746946501505011670197872961182367619377750404265178475141550244736210199499114684784620118438042077440376871846884233051995785889349630693867783497081608064617426170528008166603155900751850739629591392053439485926037216893190107802333190583759683067174857005267250149655788773479574863081051973648505565499650626567594111908217305564820640346706170085108826343106172093034400178910064075686063199502180828117924611254770492819778416001838722670480247603098867346827450236760077636544180587335687006341376949267262352313203824232826304188331442725337833594806913775386937364039926186983930722829430096147994626855934850142874170017972729623597413611928831329711093256077090704247105139711900530486179454342882163033734671208865910688953017092709436964572586073322410293974211421046138167180289858032202169130584930035444603506247184851278834305085500963369707489417537521780208135685664297987111407264366151581354576943814618423300529043372205298272833525791233975801088058180850030040562396427569103737234054437537465310946081522753088475744483072525312576040072924218529452326167849942898053115596989127515734425966532212838747111020969871438913415652568466868112340884257943316349498936224275027053827192802918692313020770163843839443316735579707435875317677727209616585603994256404202715503149347940309756860073238611472880750462847301045444765016701636985866631675114650874114603639558973253729160101070805451709557464749120692271543348459814937041074010859492519875707557149743550915891484573260329281428708172885492358903247307618978386537462896491427487654446463000444388798756346985879071034086292957346955995938096102296577684808584843454031424473800113628676121432739823830393364781052837635553141259085921183682293092608965678874182257543910248786578571312319460213105587772847242310805413745935253935290697081482792848092724104474429392623314420709838153548458155558520239791649825721211299596603682348910370982726034934519722954503982606045479283708618739312204074337362109595347369433712141179627868243156246444032833221667971252693364516244914331219222402963861265123399018128077435440713153998754155904951128958754708555977275151269202062274942005807702604756025241027248148943778832293022938669918454058663967952612328765133995250049269006688980022665396731807230838798165692532710828216702602656413298884020161442448309928395742817168851900976326996286120370910942963755517057298064601625161424199929181591895226111637883475399817990050125898653589290816043220973337945994629306175677656877434178306991049226867403024852372292470062901671049405747371556149611442866773731399631843539142595852833336292962123133855558820362567704262559881609089306243430515940518904727241471872379500591168315417800523172016478789294279980383130652071410992956482774844527378087809241666702474418878307680871259841557397545726351241143704980822277408592012883725484417123258185155557109317649691990265850169609716861675759116319641216883038271295373904394494441356013456072466466692283284281186170781796510529473044956612171761021669077635460347943273669665929252569775592608069634509718176138216992537847167470608973876601945395269004698103893344714822810647933335692476779057159190749226206180771576307434630884966779327260721138832613299192011251602528910554647908798603748772273385133240471621358621502144561083534417378485291348243465255271772367514133153377240164444603236830726095556211303909923882226057450739033436724565590049002686139512867974145459342779987406752231541373735199409464587764357640903260671195594898998534940564726461469711173120389018119721656577062023708275113739348976046810498728621262818214412603117749550203742500625821749380620595996417134933998980918208286006081022897286724117298575457911283055065224365882066323727975715740192601137095444255334562486022086473068798531171230524486792114155396241280241158454839488812307128270747164254688875084487568369710562963605275967738849816722492563229872752422115706106308083235632596294457972701844465623112155872036634166998211444915456407781047610318384667041173515774192526654642861892434792840406277515402003236374049193873291481406784140021385899774275701775138630370222791467048495598675962792468455363225412444877365320258853511018142326393411348237375245889474211492376157804125278597075024864201716700987948532707076452074945925867064006482244052045111798132690881433055036492839405320838832225344884043598801521278932888794350201997182593605496634099510046156299389888154311901888098973127269951640632655318850454129782059694189367186925506924411395113599044414235000374625522902910455635064023299336677669714960788010815571588899193421191337068645606746356186662014608854926028807670721791284253441245861722068703163666124946278034900137757292311232187365228368661777420702257398051731791699127903919384503176574022344975423937766081277982797546655716245021487812404513701523586630953093161416767708967897732952798208362654620815288375183091586482143097470985138304090251831702603228806791813339038648237056317146630922580917182004035613386400660131605184061250834685869349235031417723828136606930692574101961378126587398657569510465029907647722636010953235103455831359509243905408891204515772843288100801826528696080530320746204490218912081790174722872807373508040630466982018497805180382454545175983945781489039070978919055596767213134581968490488690666455380951472650525244927884718401429977811683233683856729243251997715291874594086148349549755506266990564227288114532529519391520405275255424575827035734326854828926262599123183747765664292101620006978477487802319456333854643137823221042756736704816415482897646794543113886148162870650480563949388175303549918545363884010243860615765572163522674559504821314248586744053328902299338984907388254021511114494650352430880644087536827365805514493060600310486331603236925831840754411852724204041687367849504314972658999673860293100057749473736701635644072069700374968979257292137072096414319286364947671430299621354498485932387996208744148275403075260242012624738024318021084191451067243521451198625728908677487498929405697214499137574157678459500791368996739889972668266179510240396324861969768084725307223218741501750885355607665360348849344171924879909718306326399437760673365049937264423775658723685843508604885809511224469512148617801057163916960674538422874534658608994013132004244368997215341336244666752101932467503202298829190773380472807434886245405933084358800443399842501198571441132636446444950458469147440602835155726616485465847089996281048310981566697690713539032779828252346753834912243834462403463563671303931250717505718514062230214575475032534611492204649646044622694472226719000140124368115347413391642886602392061135827631242683233441271262257706004614508637874170006268677485023756543057639260636402770124967791544415877238294438405825632901381194275244084431514762626146807725914733335220200610748300726605377865114507744476562584441663518379025676310284702845872284089068252572253688393406366904893335085106002430883605812182186391503825232636622787488334432914881693071853993377891104235548837896220040940706313928998787180564117038272246977959235902942689190588861481749151131727541293258521218335766164029160409831300683410200831569743588684992718595954549932197235680470796323131996054307422615175999849223617602549475011586411786163703750789412711474491775075777935662117536278963457770028737373181428661977486234983607665887854256654627140043716168818342080436851208130772378562729965287005434874837026967719177288626280008153114250556822794968935230224681203045687142454649209684706382094199997974913989215277261131483241496369701617879284711660725223794933569847413106467337327661751410083279075495756337010188508246367096179281462872688071352747165683769150323807941352117417904893969642234015712476200540572878987515912646267956512103061930877520755595098084466328333314087945487085642526612561391056001601252709696125938396277865456338738776791152823201422767720030242172266230461192702672660256609832720588681068845656745753466372821779803382275843174357192870442843924691454155017376075524575361192490644660160838151004803110448715515460493189199894515134555221949353552276498168101692009083786739345230401723202602207752091227497306352925536286845915376747893927399522172940608776297919223458333307047131215986938719423365916502725986002140679688103462186309159655512325708392392393032202494457191887072752825768997559764491410699726126714482456071898671324555485577650961676702242485168644917660041570978938429224432785803162159719641138184434966174507750974781140676731164763071167570702170442515506090524604984150132187106340479156463338087838929389225014045842077618269095858826961491139608770800841895720137097468730385975041155607883442427770448605547025019272123123414887059750791747637957670395354658146978584232974575895480057362678945230234920865056586438463825916809924433668436224196123201305121550767123610261543807155323913287063790657763477912986463585054181280987661376536866652894420288526116405843415590959839662712898294856794570385377846999805600811523383447295200164156249910524523932527412698957661537851455150241096298938233936304153796242197917931556599795595615519764132220939013939736522154817326836179555593462996869942390109249874244446064518906245235570133645708087405767449686309789943502685719790559109927935197846842843143622603128142734526899289648357825350595127055363792062380374350807324700235734933095551830617456546004043177042636967090462042927994816459795032238423416048353311033451913279809322398283109174000330715877573509114936626399160331895591166172105010225781697522368124002493254197448808684964575017868031164499959732014257018667976627358729072010637711593484360291064059324915315857547869195649403970057558597987571194385979745189838028538826073102733173286360241105692068031167871820775748252700337383284313024482667444924208040854909980201047348516310627146080501658793606976032607845217700322547724075087199669219692507077503070033278146903666008864001200420398733678846599680486604937508597982456595216533581718286089438490291670232012704215901390121681889998091732458491722431256216329201614857368031130848526808599133840890555546080842925279031895391977923495787571631638163109289935402359846043133672028245337865544122518345825140950205541146039629515527873984733778542088243103770072433850410886702040443710398249438916193494844568264551036812207154698309852243515394021190825053480712607397030881843016473632607201129095253424767648633679307708671411323617984151143213242564773976773082252801753516573857405476592786217241530735500437476105297270535582178872344062263593696532830160911693222182279998485473406705218412412678707673378328653711555062244881855428651304759469166647755910009303136822674185894060154796485904732390657257954052015304246830215057140734857672033552890002494533855830152483933429290898835619635535747979111465875415630309566545950342629083964794219459768994387248112597578452513662625670458026331582613261995897697409149479059010390877287971409773500866252711294594324756053748593302198402545224590495524636619968534580464450231361102062299016229149165461282907195872692641669439407580120402358649343220436314192527471872999732081673010042304667561532614339095847582253161319528063121303696333850033027881019906270115719399765138022395785723867850810863681718402380890145585737917141892465741313674862067513745993748447836714491980042552736432824873516120629664068432120036496178724933507739538557140395296989897515893933099996693924852950854236331699531671777964014827816285738294967543095137157166718628179436128987501738326972672230127273922403567543209739931796511883416214502730651577799997769321996574692077415355307105339070081657750435228526712228557198632954653936760902788081238366627457344891024608294290940511679310264820155103044336974073340263025563552035273070670823401204370024851780771553657096730920465816048058381390229227025833037697714191224463373448122513813489513738328832284575922266300880390653109039448490319700010425481954515079542133586929600032286340965942264685991443115469689152687093125584542306747005353531914120650609048072146239657648717787311592951810611621970898326325761445688656905532254618939358429247399296256390909844269778159397066918104110967862683763509601504403138144046497411741400330855792709741184993454344847417593483440948170911394430795778633931453412668769348794179857993362083222227731329755149389747542673004146068274448635728527677606372196738571308538340345620109469062089744969579925432909254080526415858691680969360683952377026015237695624403846135237418098921534046778055406392506853343605607356240036365327961310385792120323190869788999771689697885923994603697163279331008599558165606511348840074091540482461021862059906502483964667018386763053873943709123988034283991774472305230437966103082572807780331527819662459988776382981309973786214871443747538583873958876738284013194273101141641696018492492969361155985289069260318757025615086445742142116985889061245391223347329631347555426446641564050001360471948634583575300680919870339688807828779830906013119649812392673005152803551731325934809184817791712062644467327026745007821266081453566386666638634993505221151862667138328503816455256355665773325183021965778300275680404727382132045354814048799271765125241524420155774305772331463735746175538581338078565889373458742568452062859747452297943563846678190149306898142031299961564124291142531132886971383755248595013048418580673687634217396175867162012876140503265940056990909561928170404529546641451830343376952729415104805197389559490570733107146199261489063809427821185677812964567192519212360376294548939449173179337451910552862620953640403019781924103639176312267035599939730493339660677087492285584980562830479877545206489772562759350535196943470444728281571214187730151112898994627223061861742190913584559661802100236969710916642530750927010890482944302677476035700466662952954651609647724595841586907352784234380550909426601580848307562883409721998981868271242579338455319695512250955828655865878795168658458608280227176801559388053794267652742842517401313109079134053503060009476157349162824063177831366907217880979144622054844919461456030461646918984161414666401551907003140685758801950613777977942440955350423587657420217204668874176489086525971981397363472900519905166839886059175977974060400451345276726805087447322310983011756194046570422332133791076936791143130280643297307917390097749465504240834682989068213137737656372968757913224315988222950267547719380052187250118397013802335749874619403530223764597933618226724851203345582737657861101975858278720022960704684810485895693185766079595427980129193369661444976018441149623962837734501121975283362989083206956791806713800852479949875209930044919921329382309845138535782013474455466099566386635613605749221571102273537982114559554429639135932751149526919673503474722479269442177399866614776049173942793696216239232872776241135728648711391350404303009231354224848388243143145413121502377090313641628782917746186496708030075623932776497052552197051763589376838512644201173930261457802082616406395562091359151660940538780984018681544478444430517301369248821304645292216524953302798745952994650304037702970035069010199919191616577576793462891051547143160932761495700927798790421177865034937290864293865498927412272625035262040007347755160404928192586362725313017442373991927207541087970423444180282375814500529897912627240330327769991786440471685408373445755883189935925927674023576781070503732902108469336770056331999033831078427943900267816887679304948319175333289681866590078852433315610876221653938173837533267889125662469435899007938529105987654079578950291882220218811116756691344762810742629467384091035074016964521567163988155236154894565666434589410748080390867807918492620097745978275206939629860569504474785859566413476115250114128908671225606105132105672433766928638416920570037004889391433797436878431876411463641107261391786184321632334528591607511450232296465561421038470465589116594650986271474197668927862919943016651515819978378349381382782025202938332339339598854634692464356386511846984525219158929223180883337132622192848762253372111181136159691085117652453473678473563542316981790599135318205088451098540469835798871609196411809115072642459317364198036761069577045859227045330136850751449507181522599590321219087082558044632283807590396272344599948789308323645587013914642469019580626915085020696721087995667982157074269829707483377849107162781366128557070350470137167793471697849089177123111252171833851888899763446499301041664651977876316705992754301341849264737565570953921793558935949527567592131671272985984411706936645460505345583836241230849931087922967881495668174781729688543122049627502802050095573629677374892648569020542905053928323804592318222204878919328095274127220199316913323486167667385560205925298434610110420080563615156042358826691850148946835940048044529127654906262687886974468054158315278891257970857886128673986968971530670583407649905844887047777144907800607386671435626425184821857317362562492602418534507439449389935796940144292582464138754189198818474636067671380582013059990939952103737467975151474536701800318429291039509592452229063145655390540089868155642801472060583202358233646612797391100072544113130674645835650291935042270120607710294780268076401970394754955768691052901224614263629295235365751047583701492619167748635778917644325130881434089997882932163042628434280635556285117864958321506047185329984906974523909019799702306727517644211577045108816198751295228008719439695650607251831701666396886483641867427593661497651128431985686132752328972521616268505034252443571257313298262515750852350802682227239848533877821752676586964724295019951363327816151550952689519823201058204483174593521216899588354081605166631234277517778368808713033021633173560856901543241295251006997152976653238696108645394705645771833185380279398823012707724032692814349331240138202982627815837335809660887016094450883137511692025808521854986177564738081701613175028513805214157244380915366440683192728266777154541702539168675834329810889907720148787624901116233205570363894659290432921969469508164585985129416874797219920879545464799263278009851829331299846730226503094201682737149761142224925169136737014100350558483966347058256935219604812927698861836312787825171935879654861861770309470861979818572575269722420503646799778949363533265619027715134420065342532653512122088235131852489411428716675350943408231066719352284735815285671099488499962850486776423398214183853388806622580340813169829780579281568677647622921686014710600315231190919882191095821507777079957721189184610760950667161058934465589781390089015817537543977662200203700514920126779085825625694455135839025250063145926778560935608024582903189065897917395442225690900965281246740839129890693486850198722483699968656102624925450241005536471481054903067962000210133534477326604592878101131297223208092917556267326939025198285496145202359846006495085579831841328909823536226216557488238798955767544935152271027983239556046002012228060283522102296879512485317333443346070082973121244265824130523173276204038336821677549861165381380826999619775916756704336436527273430074549137863662492065389622805341084769119939032713958611478455300498436396098625830819961413552028877485732509780732431895986616118515617357541543666379343333330546601176319619412605708925817052136950283636421400762725285053620728961657781943225101918422820667185678929831068528617358329428242090729906325605230735234028278197433929348664225398568374324181805771452330977553638824192626622912199066869546371774577521482495719085426439454737770365301336025721772609880059439324520936184316409423216491661007229617253674505919453869877879865739747806900869195691965055347634739167512514996719612838126912519882540892700734629498130594024672232596237074583247260186250564214476552253641785886056736773748205221786638860201839098632397536539784072744019195966810153617542320198422448564345994426118506962075039604441843562271730441055715200836124784123747087095971029474724057067444677464329606272743839968169964239891235794452813531585157973725695891732065003194684393644303901986069261626097050557908782280649895315311919679643655354270848816696543871131256777618503758457835191049477951488667766429836970804369002222711791122290076203769919722266989117602346187824775132290989242153203108958694237902541780065512683907849075934386781935202961741337381678967423755093169067978050736182140165273944188715202255805714137360672731894897100337030431446426175430440104924128992565820438371940766559526471539157261933747045927863129381458024664369518667909331952273977128243466973333933621987227246515881918602984997874502060247987875452480228538519165917771458306197219758342663840352837975648873726155914006220889675818878381621114003313275782057313485652974690548485772013122767774813646242379733077265114188964245341484167501956993020734120596246340540561985204975122555339571470402465169113559064639505947996149529331425482019017426943737508928568352422723450740723969354896576196283670671474131999283361397086050302104022638489508981001718018974551201708214736054466374495121884612553139125120125177506214570265254198648019433074436986326658244219098105732540937548882243709006225548503825268991743821398827307219828136205584567780091822018739888199243480896365011669115158205038702818229668066764145374172963732372956241294543374648866305566174850419371432059241581686239979955781893837823799851287457192170822516322316765345375225668357621187153575205606682493022979668420612283573313076928383395121859094861720509445853921150878900093233830954501059774777947365731838414817260913763316906050822360542235229424893997589025366001978199101967663760588931739163987566149765566904451420314904743119933739475022738606613835514746296941292949747616090789850905343401654545766435533866012927081683473539856764429973227749625431953308890642632140815087119503555952095299761855644727544510154852515696526949975598149012834147607206639147638864813220770584760638204516817602150100657210384966667037554236445105373517592275062047340517334534764213434578008842135458350526823211659148289584180039965911501801062996087393220185229950567307119860855333903316352970916797682799779661794511121839148816534363779667293533392587526418741698609510532433737773312962300930558498278962781307021216873419254898347026665786826598017147820495126657694424227407839784893280653962852932170084024408913902227108610785965186510406153681961710570057851819970260286812129934299708731340084087072856396497650032527197493645825559969149247230270634044099605872181507779119862423169028368845105421286557115386731602553160240223161961194295431362831167416068936247897449333717113996231997858641271330543367221433652118032893710522863096506807072695025602316829558137968067994172354184860084729681551939420678198781332477844782748418295825281507576438733037460175414372894237401856418800002983925629356768143624959789780813965215579312780103173089438093092600038371287111790839400592350972653489739836431666837768662917656933983871890665930162282260064125613047964915528419232166999567225529329737235408215590249663970849075700581711691988568734545026835346180812841436397360245007642031447554948164491071521696208500225292362729891621602270890680932784595227090258315797918288372783862140208693814794508275599395076086457223975421654747793299368823469045088454870121436233566644833541069012732497575594132052940127855398716906413157065181069791771283043818278931630315051697564684559378788942192934354913044396582847678719228231617805493150192941509246962544757017815957911572155757009527241204907559954298369560577039631811850271935974579706239030262100622155772635305534944125700953201251509750472547101658330822556756601910619008575077886166201270588085103026881775470382320283057689973530084350612085620137297629130376891099724763508337988180451984056533807185269387493047450308175461309711164592550774495825533927371516220313004020130807633799145681380789966399192283023922308456827407657781353386520726181911356801886007653807027692656879848177329692801473057467023316307614015052670284028272387198071326965857300793119248931012931741563078916540708219856620093967585740870670331706546844692561577963233911706252903098522718672136829013873842061115245452925274683767167176470343898133274149123941480017148622772127717995587597319650045982314930152760212661372276257809643423996005963793694317504847210598518383699167812503526094489926360573743164842019676191033856234877355072635286726883008657658324955324514845548820456241291529350785815212587395573095324279091967695942846857866004596635510605833326023330556415868288939578601815757381338403524953329482177957632768460359581903915836339192819314034278197698550178754339787053622492319732335919607971739080000343186347075993141290214956688870875691353824271263050278359619400041542213406060144236642507556110401852225856713863892404079690880697245052319484288954207607313873402721691227502330707392112605405846053730669680289860620027029820265136375723797350051260557988091741875326763549862054977972447081985669020372026504949083304433402629463969046935247922235314598965867903540780775093690673513520575476306652900281009042186680636536737860415192807330178384338993143790634481060014739233051203192895733016136689015036661892728637071462106484061544789693160037136148193729716812431820889514638041626019029922519371111114730710588546158873144675914868583414576139014025044532147406576389324227369686440127017930317976522960500317941973629663563435742464754869331751141425177267902167652690359868604340054091816923251222361348033372225992297353406007121521504525296588459534325196744063557961233528407066083037297147669367877040928792080159803621101567935903304912225243991290652594783147790336210163908347643880323037503529663049553214787389663471740959273161012436806724210588216030695433152632781465709464333564000867784791098771673176500008207208241645645738127439913130920016718129619134922287897098955296899179420564626890253147624123857071050514547488523806219343195688084923609984421555460503992799756596665424126490070718789362704347019821760980320454615906750800396619304974542223992912891815020965118046546929445270249015539495335615545863150269567427329224894524766991189944382234510523898479072499965023835605954680235784862886227529176743386535067313592714241959259725642639760490700453359128372053887523460661038093552943351028139156267317639427151459284379237246372883789634291552376736027900602083545057229875339782133375815124902444166937220647927732656367718313469906760629102315011388801390799292630654287892967460775728919974556323272925385296021395366621416202356057102054057142244435195146564351013673818450789137506346562779200694214460053991471501168998008952671684401474108843042291723632154942436086268139797293916154446984751683688010477252771182512100532178793061786034018744466868014063394594129928481321385193386271070968293059356291237983860874395534318773201956281131330443937010543602429950151787366527749395063204613020021823411758060808665121747055250221350509884060262148720744327163720463969267972824925401893394850338775341682876755004048551996414809983765470095711401346638384352350016691501255324995254989067310793249273796882308939684916189710895155366493882271705750426126764684712343494806527380091785345669458416605304833680227267979699575897985240922081267091343282269582877838820027450620906023165666890068989957019481820670686493432023367037160647796580461779399453651916847660559403344513596204825348344839368696834827476742375596354297698175622377896085452774901559754226956395130604004444046284839395965210248210246446270024105031068335944369226577522553339366106281570508564423126181437507606724718958034981187311706250254868358740078772062816329831239233364983948788010576250056487150520864386272844484600695597596099676290800196515754012960245504510761759152256058596806388543884333855638811254188773638691662159753053120744838292885342447247410547491650296541325454714755222908407238989612538618627421866208725743088191765925645595595129127675970900844619968294530835905930257802929058271581073919546724670406291294374659173014400739086935956575743038115281889241999581179235784433379068532118515363894228705642229921196914437304313354221664005254872568740728394484252367828792387146787882807222331816386220360361514885290174689879008146902422173986175237324993085311700866699095095949725141635906149165518852916497017139995582589101309287893418426640358354052343469527335008218148977061580813717751057668022245119249357942399538578425293897404964090895504307889687384981872573456553086639294749338351899232800729413344744339755864520056785501014775148635420343033998846894751193166178101245585861360964684423900573610370837831940515584508364556305805833406631594577252426161629676100233534770793022461051455121885634059769771118754451638175905257052712634850684943932640037197499499031531578953438035610636846989544122792688147192559570893878520090962454031434112469924945803296208006477809983273851614100989602583982972236554478826595169417184398770850040151861700460041845162719814555330790535539844449566691461396138576362500049033894419777509273026730467418846887892574584514041125147258213272734127725278188854709067543175561442198584520760331177164132945273816033558766427241986523997719779319166258797770666264610972678991962508647526659354753177079163225627655648240067751318504747943384213986281912045491455014582068910385738205302328907000793313656858925616757258677669920188044366028326909260939905514611269523026889201070789804823397496186752839123622050793511272139765901407429092956821590796840875593491924892153130272372967296318119728636316331133200974387213353191629422639492131906008983434336805475193850051695542350096051756867129545540623299546681781957014894202495455974499017652705213679466181831961828545082344238113205782089446673122441862375670064487675525369734648145601063548655900489630028646604353210262050532813497325116217370216684218481282705767565634442242354705260271481935140243701715922340156859995226702400551926711312988972151741632233749433216726366747813817069139673299147873604131317874723314626410173277760685117644018634699426217133996343299530583126954495958548313477723162386050729767778765239423106055673132108819370706068507174277366564998984242236460268834141828670657489517710321981896227164073792728431798923614596940251438109011758716497827387376197701825843508284715442124053726239175866787037789314248997083459074664237501136514005961458398226721699394187870623238783172226707756756671186935841358900144799278460155705377597579750814824783092791980049801613157403989635281273980183839412778964144117019547507557153555281198048873891313052756482132662455300626274155499620065600909877897530672512035600840768549814624836493846854777981193349863327509727792677500722438883794635138498663675319793053489392169335425527177318688422879719225741884653662267211974877523661342781665775651054670210520833771600385066593936171066163124266615337502293141947924972431940246599728992500530582193713077288132665065981812655055495036931835215858659164459063215036813640181433831105325487399684709428814849689323990803795754310324839073830722770168268965775340488017002071933136261061600875913556308821280820338355220431598144069686740084343887691422486561990040695464918888622200375540753864925371549823281132684000338710821023999449211748304493550525624511287873698469531266248036686582877507565245710506419173667261030958850341013749573025896299516646397244754808808944509714074880273688476260019429307600915763556478731320814770900542288831548638426158484119493189643820163454878652768554510162656037092619913626920335911034501600288254473472661891546732085745355415098050186482166095996337560358383733849746534316509963465938621633187568730034785373273187763937026115802838921709324666010439806692503457998087545099066577026628441835738800762041394460817743851100045842781872263994432805968546404827937114018199493458380442755070102578287399368400192493796896822088802943246166578609452990327796240899043025272175549752629244615147686125767007111739546195725497597199640187212211606672988306765925877914151245763272035382259501310708473991015664343296622178304623107041890819158115650615264605425284390515787744110162905868873621302046180722898280019714204882007418434147551937040113972783963523276844206707839272501391371429354852569267250895018480747117152122572651710498268562034114803735861597982820363105803814332798706579000462756159371144581805811001451400372814248449724719121391038805227940735348057277289985798635265835563955987737966414333309183368407035616255309916855319815092939785513128915987217650671076645558913954443749258502608524016570610732548822668793785525783649389522583438340533300723911050464578836765205425282461937472879630132194884074749146315660743853020547851003608185568501574398798536448205128714121353752643700913593434110087808364206275581321481909610565799585838840413079728407457981092118045850175947543300262133038831109843910455116831180575095463814226521017137802576415528994625204989771151997726065963289112850435754179818005613804111757397196945182654973918220428683473318100843605312686221138485348445914955459646014675868221404119161050656745962399078144229443225960053394621060802299969867552251321676763294350830156702851323730503027421636885828407294022595744557588250147563077706426587287641791167918506726030936578391174055401951199286866352017508955751713414270936117118243785960371141493584411046549065785030762897457457910752102669795854513680020024465506878991917556946291860553610542881513997625751020157810095997075139738806290761576363866861199502655279173388861332004921555419372799072570177766509505943430413915952684315530384084119963051447230069582164034378230918706104521260351218428622975357155878034347742969110823777602088460451708820158369565229906757041960800682426266706512999667909685261904073422890066702440336428430368511087265951441119567483890065957046376478306436880287290366040754952273490237135060374995731850432103537345406784266068457756537598947172537200087858210000888316755718333709470685302670181241432144925901204529578205383749330608697168028994685582478040387525467612873583955441656918718868461328305638481988100022999829758294792124149264490689319540224231972474430895610001488489782171805085929935327207928666955358373335089233958097085786588043560896089940401122628464186137705235512221426342825465295259058987871084689181242327908573325904056330945683538476999256583241248647776931475875531849308114083414131989574767953489457845650136366203070172324097798497316235132619358807897666556840408720673761338545843309642701568011271345942281238610583429250854982710564675103945163797876128911255463970607809440045163716256509704506563204553274945650543511178959536630916322430179124654621009416643744125304499424544308989605426078127540464437300607916523690537309581576355801638666278640899253952419343683144793228853678326735752456548389888472013127442360595130581139378550623461228635024709772861722822722005110477656475614145032576312266163850141560186671541671351210400780882879700933126109793363002558793087974489137624581372219797385048618537935533666822067031061231676160750756362625258385399175758910209126719185694308263854805346070172092326521638159076679595690106207774313030442607605344585525398991133879741923349849792278171981368987418390891267850083149727688416284968113993256229844624473421304392448823714531617496506446684234297466687416408548209123522216736865745714829901370097077855124323927642019500079847018644292141594266984249161721620148921613549977406208557371120691771904891190878189962845508419435308008918027221455727069996369150418780935103735611928610332962730861075800241230925383594134727049835565759796798184080958094532929335443104597912623750453117754763743416528561181415765746676873210679879195459133194535315548949698863113271160777028421915009920140071724184696733812918749644738241083251146321991500088262817226802067449083556497495690822773378379025707289900537168809873666536312785479459470285931329138954986607388903819078439967099920855004485676059126602501044552877901303868536845509887943895095352992829454578333480262136384880531160535264483452806646193882426740212174326797708218575253893391318667953768057060586359689847404203536082378355063606341630229596425884880292659954736894955121082061525275013941327736941586131246392628412545503093685060418707584452116540404190508860411386875997538427902216291541111507835936119914121208083644922731280847164380137892203005141438284500235524577398596014341935432761014815779683113825216276357616106111876430382882171120779059656102408700458843252209637044502891759508539799319718220947290938584379745983496502169044186608593074742105018256960624958798155836105050988460398002878325898688302277965225851790711600711534641366615769361576795263731860772704796939616802142505958364419211605755465179804279492805658094469982341254669020186542679404111676310997848042203233544348440797862877824280438307031911907476085638038694813604353363471270840618263570443877154896126640378905215616831384053899285695673235366785279810677274105587465150933027951549086043818774324653958164684926315674763701851849729778837834775185537302449645058231224231192290809407418837636720255052122247009453056782179466406407603437844648656850347890894287466097046028417009360278634174883944387489072671714361891474765280222745525919116332426495993048665485765277927910417984442116311195081901948408302199582778793957487968756855582768443769504584777809351044039775893084028450575408978392769205958111242083762208582681058075961069397389869486652986832124373405786519745429935317898932114089466475409327207863761800663977668950378706638667867743174966163759590486579572628640367794340209856768873956743619749125391523096948009965733030657852345382997734519823570256398804331566830313656761735511684988860356183500569923817943074415193774393541757084348176245236741989135005992514987426919760234644004441029111609556044695828902537115000749533601128756842652058685772773907372016024721284895750826222275603471354933897263309602237098572921732247742085049573364652175840140753998286018809378840584525713574963290538481950395341130648936148268940843242260020083184676745382756048006918155192939330863968145833395110288393981023094359768843176534209268546034375789848911506594455851468238821108747438116209937676310401365201422866330069161709778412720285206477041371325174264662019964887069582082969252886772324003116605786302922894088399582096412328013298642903790339356498549418109034952387734159854017333693233922296632588220293481277947809409574431035928294524415465806114988849258757562757058371619497433630306493967612496195336941004060296796359317138700416267421207875977989997252586006931646248124386655077116527967972705600742742586926840937470467302477333604045327453408335351492279758300330856909629583725951002895423436582744701092323469970657890339058991233362426649761923092958561193404105272548381244221383175292955855956469424392881345625951068721781956636368339598986396491155927061440753339524627001119845059602650235236068660671049978035744988325447708847222948637342483456824034306357623869143233636611648346970730173685117772752330639608036299041040164860548231547672837584886888833542010244612504759076634661428407505780181878606471869519470861059809768343899094091287014777990387784712726728901865627372762771385160243613113142248350970567892617333021371496390594464965826156402749886983790040020746251784160949844671436950405837919139389380526988417025078859736273966132594025453175051649835492132174464321608887157235219278215962423670458986061797780885812975792182121925032170259353956516444889192693405272100422257316437418171938923263578268084180484817869244294184240937862409000346090268410004283522541962020219531891886712864737807763857224433369810270208183906934099948730267365021810161363574129488790396493394848479002153889737518648162972119476306476825865488901482508628955042589731608052458723584163907853816689119168629325674978880498464645908292611456284063504034218950784313009281580073338130612756640900761370468284357367614888605719287347775857430569248379668396380059415065629059708550301576926964213163701277102042968388424927838682063525211521881100762770665557526084115718058058371221497356917758467210764271660760464462783841415011725652226159679551752091519189657539904523557733672235793482733782995466286230428012362001425640281147912766421462071945254697800079659869195572031867326655647365783521836004100597236370217420460724244745807309049285181653125037987508564396103206870196574011949209300853218291258847424304553905449136885483720514315260171074881880970853810105297068631266441548722313427962252386363519725517951239131581018729801697317145799768710478706838505381301180716581677781734282378832687895728737732285982117461370434229507573558514324586945247426996052247933399816516395886069807369874917978761572340012306694820950733901575424659474271141932929786590032813419719913212774266360299952217106712440892876301793371719690346813546870731461159415794695804599161769349640040617871546214436030892240666249993155309781704253856228006076104200743971142423817199634612417998268529705969628632524592507487490839368987474400461931166357957682060389637769975691035917426930695678268524133096897716366107855515987699831775326055005526520392757691141104356856547498596780157437398257990456057606857224041677244684413178758263357232677550906403844094560825174832201896702669753619942552139003149683919139610706260421047144136551016064907633923452020794854617197807284442054759598192126225737994691622928212147150879610477187761985424755014629028833090130943519536466501785280988360382529668881777268436800197672808897418035870566650749327940326435107745978325097474587143426847107170957923675832030659069720824253236071196368602815848536180157341353400160027442434288465814852267126331898867337290727277676832035282160763035791490243170687404468424071265602046794149247297502501266635791972214976047013614051565064113454261182320015846302454711756713933886049679683982326786573609252240710940582077086103009340296734975634443912340507100833239446046247253161551517159117268974517917681992690396607571313525431333677506971227512130993437362645697973855840540791775831507588774690927507056044935914892808020347551049295101426338558766769547546691611262675149658821390425209183253482919457358792340969522757749031609558238307178321331258832959787219010158015907393467850111725300734319076060141650392106043539210857456148071896823384175947255793346975178434721945599272406580848318642022790876223279800330704917033429578145879047836822275309907720730291003544503139010510259126624730282215481870747670146177694350381141663943436653833017836639362718595206138320392925310172057551089781672478797218927203519552601106405630361686385007675056321302547397948350570884042318592640192756070500073478734144138027233909316595551193644818551101800608586170320035354184269109184962851481150995729271421599608730954116606865007313356809086815312294071584574879709534433717248021646433590363675467723860292538194147673006570207991843059566841634402890923423141858183381579299275813359797922982694730280068239744434792453189496833653430551107406145952012879024123332201161770106295509642446810149325207890930281828435731341226454488599788441691847691903140063578580058582160664553577624767183864319497434113371475211529042639650221592173995180341248729194632224417131515825873554363531003337921290567224872154141028820078893156936347231320132323030237199570352095303750425658630216560529268419273132312237109491959675081406025501960363867432246429676549970773010045267966033116410602680501976802758257197780417234121096306974388396638234137626917694462530021760343014119609402042091894786024024621765459952869053565197898008433866431185604790818440396139857450894725945890752120898522737503851118374744387589996209250741677876090022216438209613675604880811291391891979686910275463886120442949077243728005338267423213143104419204308781018971615457584716512632800109309708954733953222342445692196855251366709276458252465022700614885628344535676279461291142450008992431647950612366938789554509356104550053464210858451814335434297291625027542105987416311904145137871259219393655170519669484694824569294256971510548165888609339297824045925911873994215048030722960908454854170015457569507686581661345333988205714708807889095713431923417611556930085142659670982494259813549984500579562666360450568032504320601825052354788760080208309912635153834579323824540016609296770707739151635412415612706497115471820324527017516488976757214082357463427404224498820219198419612014344570056018188787530284530863068998427625636614444326166383008832189218474712215280059569676151231603559311383945154689251715499745513732782071663308392062359889606877374536712355343658439410417438236078303499316324794902771751018900432766129686968954617120712712542160102630547243103948684104969965030151191917427827533115089619620880608008798177110987957678990001574857144640353368794163310988538100761546409868706854860780542112716787140503780061083157729877765708730605719439885533698075957870460385100965598218505731528298354869825726664419632947314361021844678395701228312373238213716421581218889480420926577703430368356085435225212644379591176569861095292970201498853702547806236582286660493626566969805379721474547005837608869525401758634640129483233752583361985116850487790634137097344125573735117183810452663864875959222404762664944973941544064704285197747847883728142247565104703734443061731944994943795217296363542365907547851203087030434944572667429494051821205315527865823965524016338067922795881009881609925202482433764006629458081615993207657824668895619098846870131745082688392379956059794061558137623878850454540240722435279340227357427922713153813642859719334491714805795744985877628823893010421496240353656191938274604740601809197898620112514462474556232045585274307537005955934177101830646316864174809102837463237732846548429925272747517803034368508117792878899684404279899416613889278297187857960774808328240794846365317494842921228593336298886324431467388136895522045101410310171845410723002627599249692743851491575300223228391219156661428720704460866269947785175914899526787808369656219660217854804864765853856580752285991309745018599406862678650224256646608625290020831017089794592546627028640755733957816883480783886737185240829665257744113711531130934704243747762908593837981709111257593936020245735687008538370222259842084247170367844404512575860567866343677681992553663345163282597578261135488397083365936648598296607258731742486713368986665881448037235871069438759561767869183406759822580948474929734000795860454351255155583632122973984808633368251709172824528234189757883998727986536204302461173748151576574259541659553058757945798158848309122157577400202023841072725116451479609897076291883034992264365905961884893336563684518560096279219711398963239087944830475147709517403797309223490865219730598469651624889533701474507635599347871451255074075097439169648524267901468234267114977266911112504860097359337232269573326997619425550986663867055966445768259543824350205260511944757275355167223404253372297451903146308290879469634277354209058813689119627147117158668600481342949528555881536979007928289120459813012721744878341512550515411529548305360218119752106076103358333196599352315517051916442389809341978626843435405197838271674987724049523863403191674610116835972161256395897710548143595652769789862521574974902757096946327120626723801874280261848330202906477912968497512889774674233666773330405100297490345475539110137412131591919268871310411588564305105413451651880643294231735029741186541281134020226253546366242842956761480567066925039347739867523745234169005930514781803620816469096371074725735742576920620784833225583538680609856974203347403392244745257285678587627302003402408418764347320756303457466569426150018923486902767602700217040098257600125404807685421967397946304096885065347014766581486150695524874102404353671214265419282173138904504892487158209561406755149477224397310008663360843606725350858268622155400914358450271757163599575478064745862676930722818026003269507486080392023571915891163420201437967525284394664343399121777633745692041012895539956658521276844617321418926054617714058445630487732665599746620535391148752149318920648472975596465364331777403655432629632220746050677913923756778175237600319696623761739224408591387730342835959269044542902516068326334864766344577010541465803197886748057113601759612387215526380115630125997514005510185643095610560511840272989509353609613474944945823144646268710815951605309526545634513884869470156047393161900658766033426813780961375948222391310581076139505214939660525973544229365771787443074942614193992501818110667749587683122590585427100708485818350517779411289406228411048910206521883927534501796324857045531756936648093365561490437962736862834155674250589756006838651752229479251252732480180020385204288818941491173288368824367782766031217949357219121907375254703876526756121101285644886811452914511034333033283237506940116047681856690232240291189592223353957735734408825106553698061680232412298766112507629281726220501420704825257159576614667227208542325141950006297913142225407878741693322035290447622470958395681160627500753815701810173160272727798609650798801548390810964923367612727664721778004487315659983546776994737248826933933080924203688399135846918982006593863723615945812290338038548216868369405795013669118343222911292607136213769991747876500201110552653387575725870726819374138059503908139267156042473549327470980968317694665575411124851103352802515374741309810135710736027127966377340826549410722922865388937329283826847547558270714229110740516691429353406460001597351219897079710998033389024222099276014753217084080462288480397188177750215427693058844227161656655964655888630830635519218615150087734084190161712557112852067294259688112231887652270815960007118670077955167010420895417804642976544765829300670055868084965450057443298196115311252858216745057332440133560125311766229377966849493448362576150585728711863052251542098541395184456379887307828627919685734424324807480251279324600974389026551225396008550809075254473935689094769574777814457015626757329406782070076456652634927463452437468133878968878908494522976105882825236371372483712031989895506839887645916482033575267410066801095953514954418328637095243897832308443186456622927959878052758205981995755643421861519176360920108707847823170471774178671343225752578798708746677413729263446333084958104336237244663475989052020567601992222188889383218711059326927027527543189638216858573479213533033997329611687587233268122595919404964485489476111070986668816129253995774047724769595986975299181916067127203945868723184890844866725794141258754247913322439090907424997668389592570506692263743966367669101835420706493237574519526825186687891612574882678283068314829407600716367482338093808606986860838833444381947040650662312809365001600861280856776985503024367334270571081502859812701107257728903769844357012006204336658591959580973800028053913523622535848182924576899883413329369400805863644301306357063862596314486647005014453107520286836704671587452584137115045683430493783703071770932791636992675613351713181520972378118294390079164362594244282418901357459894777556655042985763369150380851182958290625627461572330705233340566046053019177724847694995907261735702018836527155004135356054184346796717493455043069587028566841945790637983689665977711604904269100884768181842507383100248644255985462353209112214434427434986775506938333059161409818243617085977257144268140494726909620094350587046937684716790465201335425393351270710380103951655616944359859099678901996989817648506214569481557689849024910285043693462782975629135833190635449242366392759153384403753077424795663773137761147080015631646377624374236936497806853095008001909332590357614265035300862619148539846115271786354957170044783832280479168141809057429651599161708226777538095614603205437910056043968659892625633063640538497372374413243595038380254684072813488125771543089960625156051851146120197635673186866437922957114311732034502105487559727743756473860537611938891257393509347128654315592875657664212319156353018068402322013357799599138742717875331601396287734616880451892657539623395997305367891714411459880712699648055876897243298311647603574690430774633441091600774511000324191918598264869814113693621686899850664236791955634258320781934691849957789034653013578373578083273137995054112129615444085171739904773759353408336049705737706326122137020103119989616290739321650439761119420806897971467124589951472501853689090383459037078444272800282285424326810334542254117330913247208559016632836233014825838411387679489941404805500685775856726879801814436958378937580999563058189636572347295070168012036491992032664282724873506063442618816002258318504602620584400561027319567592655003097606318608366878072529006157007583933227884399514206272011121017414730279375108068407753295964189311441549583181581034060419124050875589664454526337630995143129645516737913556460367129683267567501632123455859814622971538321659250813720497657829343664818051724862093047747736041058544485103015708119959613421765880750676789364652237514831066128449519877054216080215978549776781287545888703434265713335541571722843714929547156011526219155175144543043377731122343282480135191657692823759794014004377799053761712869211864879332220989920216076287245431033123282464662159741032998742040271253969914044872638734344241559885115418765662856206112388809941733358256732407039742181525346668684433443691658575006818788004039860241611455333599745730671334127281221117952707440612409963771637995091512583505298031427263826244408705300186545558465143092071247333891217049024781137157592686353221447281069492023274692989348645607653073108417325554315678179974356527660157169847789219094137736834088235263537822948501190368898423212602284813860390606646648641200450612101012655004145122666808710195439267406132094609303527311561713903987663372972768520089509361576796594628302159195244562576892739960701120966565574179544379620311280580814028788349634936361289989864980295849446999541351065709491280630837595537039362306937258661805759794000842953229462817918849943945208460777165509396185565165269418554994521684487281273850111397868698608043372067602254809658728249557738629409092468986790479538259631966973717618407364676777218233001585917355842066154749450383070010651103420861063588611467262417802765167224335668868930252097461251301786227399589692030576321966475161201105920371752215059232321743451229418924342350649232031378927829197496428709063960212256728909598396163091037895661148045906337437769658519601961218029832724041233308144228641196007765474893972594625481394242926500038409513982008507310645963985343227235500120551235231719312473213416257341875864554676976935668168306263959242234331042168286914133734794451847048737898829687802257795872372014534617142984937977892103143797873643813101144542023853536725746441168742891329646727876638232244549024139166332581961616365744093083676578075721227069615861259404689844159441177017398117390146286303835557073807641068907359236151354220759337115093470360409610417288294500387567108867891837150710969860936195404646030717417074468833014644476486731300223226781128218314101967883558102583120010126949173456901943080873987625659270579969055105440558241034520491890904114077634383450043570651585298221749755903483404474150107789347853959562158787729404664904248906526843318674936594906142436293697235671326659061574042945742691204805418955121218658221314455470484544434091892927312069899863814900710474330640282270767575452633860434900172917724220068082179912545646875587391954294653164530375481113471550751493256032223707781799259504778338780476877442881283699126053874857244074305641908952949890767333149665205634924546561999133600019672746566363473477315521494128447516587714901820224472212399780742751372312632912400930917964506038869972263249815098344112806615581803398568725791859417283401661619855745311982001342953199005308014753195733142567383338179297302197708557767611204497166065209083074240141469316726693947305300142373854267724187099988232455733312949620344014682944253561944118194371364170202826749057985883708642223339289535128988989097317319078420761124581793137540792713452545515971136280826502552922028662121496522866407033388699865233452702272281130381848229785859544111742519934310320424908049655070498791816916277211494992577034967820348904839916464683545463161831588070179261531673563721864530354716066162087038549820226240763961315670799474368723131188746656162609466148243364386141727290636310595192390129235128318586202170681531269041929002629937336114838329462224156068064268679744147969158105459098519892317476764172410454203746662747722881098475965587367735703837595086667433745902392022765588367590736879260174131519668150764349132257913344835415821536663713206664005517187079528041770777667978388339267738059895578188195306106958215114817695364005102991988810216756258921453816145811606554555229875159505213826472235021471539196999203564652269065159018027259710145090894207409625600315047201261598739547653999309469818013128060356162075136305417628220092686005423653128750071614251687405376904872753942927484995315262302785064357504700512726692439489093843521536682553539602067281128204682838803688672878347373340275988168114438019387840870211279784288848106086810654779888052262595679112600593455865208295102728142772926834180223529956679992727177383799789107333922269446107520414213378754515110074455854592342696012799707892978816900507191576469057324341398886655848539891810235393637297763008127253891785265117280556618651776612734557921525439607732120437603720328495734576700723827404413935128511424732927115204753341862367448245849845156802795873902639779545005629996514206311370232813789516786202074189420532030654801087906701900179209104599281202809593053041747193115094196523086701099460558262356742268480549500774594639416525765992635790610354756985537797913517865749704510144369211098356584349627628099637511261508460485875569144967452313268978065496457232869104271890499132861127407423724175451251786081099823915802871293950725049417577305375254902107981932406893231665545968562516167481384866620413573421349763444579390037828534772418497808343560470710133942531059026595762847676134977589292994186142877711487508642955373500849414578125971033078299173213043905096361311775465425951724116841254624296966591372278729586246024187575582788484463341081376668343185168120916427051947814481240013540247800040426549569955716368449571608190453825392606215783384292951108855974831754690605646644656078692305690807692795964216979356313532632325569317776182707815387441790751558586028954348324927896926219266332955337110455465327193254628829213336339534061191137577350242992322636905381954781510582399106632380124410046582043484194852597324026148442888405236925866908383737340600698884804952301752645391684894115832126813463211564998042243918238266661766564123343567819835110506238859179255844960635813430068497103187376185410031539588341412795040056154009969190877555826859180151045600633286062644117124850169858048101830017245468567512526571209691716910173896895665910907130464561272929361667671496352177445339089026229861244077844100270130287401527985963368753812411906001041983349478848868196890389348615111684122097014269255264520659530655689445503216183427930396212574253790030561063640889365016113769709961788063277186249453329974116857515456548801917595769048731985911403727588263448985599016311855164810483796490773798507978362878081746383276823235756112710547667541216844966523814025018836935062149880916990042084637615173597767368226940976510443398022915949655202693851023271059165843500055610733017464966138617171791504535749304033947263274451669694352241135133356475618312947225273708745192559354134091216448598762015826727352246180394532064331033711493509787488197814693513141522293933753959070684382142257341493665719247031018860086459084541571736555335235059225223321176915256459189159885657676971924714743289110509762206719896815185131226643119377304799991929875426166965650244272992622518968482902371487686070765030509899275480063075852376030353037802321270700455478110368271185310547752183544503710621790423618053558430631778000292579438315528501326689898156974653617080846167478517514574931949820477360798704335816836425988204266621343543354525105950323890244689409665042840515849225049599872623771476899676897264457129063701826619081626637954937449998343791260923957319605474976792285418342864522308533496019468203570869510063241776953501357974013905247373350601416431597307331157196558418487893352453357170299882162549934736368356022295195930125484888748136697731819406137235260158390524670459538108936186438712938892624032799256138708281284473088704423280589004721959082200206408964658722808654977669502103714721359233920795732146797803728728265121593608567249054422522707446880729785778955833023167944438915491628261835218961011506066941966115975711552128095986971031484244270061603076515242962584382752379607486735965256274918522641198046038158833283089287876123287541070879617150181740466609752518016339858584049905536507780596476185144951194584108666403474255848996410239585683616166183087687439860208975510396663782215481999888390063643694085028698006875861034497222882603532916690636008092797944533683006531075457056526406704627060653293731371091984482073095190833066947751410435866018501370278157822215197842654700456192010703031961646039688454356143801831137308081412549102971628690996081674322192502343291905887724396455308468389158555588910717539417454181060213000006216527401387197904428011385082402815690063472044322597632808875293591165714531212466488817982292211972977189263581696294286314200157645568618925455842464289491372919255400742472889189790853376761428157496341269636903176312313867501960845958491948364898901373742586227241398416769178928014121241973400382094281904689931131054079120013188393476329175020456018297301052376051852756411759280140864370361694314035601391418455172011671013224815459308646539523846539253805981428229906183525213011583774119346446743901364930728140658883100470626103017792269071695385721681068077579825016414251432457829298709655831425996288934192463836249906714975859137175448207819665609642958757077457228320210470789847869710071471577738548303578638213462602009540877157079536818111300353963115067387617885484455356769997267047249795178954264091084208263949779484674030023018309149579413468842625891556389041167066302478155531718756771176763594020003589362670921479659537679260522317718842546334188297617975304371566783794733327238799543182886651983582875334306546336556684427493322774308819684137717419471970895607483186014842856301104951592626482716972348865805443961672959066834480728617304675724592325026118429187660771966955556630963665041233755822872864346543013605773206626912636201653463238331377145473169985050989960662760641048294834005567159055459485235421661688416589970405515286579020837836887019356658531140350791327975004627031895789688728947886499819621479341954581645426172125045495773181807898350928143434576153887263619300524990381079943628651827801313940874076916122415112098650197702027460046573585012007113231639573683723639728468214212135880495061385639651024217032634933400193012024845300891693884884764399627440561474727117126399929530319929278541622845714991889597226294128182373616283386712377007959333343759674325058714358725353283954174773120620170253587932006358183651878844002386865907106694429745259233289533346798206044346130957237143013996285752306341623396046807976313135657792375595935886060122285260859462440588076897724219450308584427022419034545100199110948691780325748889186423602168185260465136962192689514636665963508578147476431764755222488654321751496567949807618350320729908433921842215732027230813926488382644167002991199443166141476231294477364287562130121559748625406028654646424657787499517939370190790166071928050375277342046593892433792473961851810073718140096568694990569993524943955935334624002155081885561814064010782534367055439828082835289236820535589174762549573676182916965091146555520976360836689057774695553438792307230728401301094485105208827624476742573156945129614124766027074036701796021984901670636988162349335595404047975594180027620289773210632830138461111970622572121114752273088859290816798897160450234755205292807507145459642359759492808084447750542766961868430191327816699409149280083797847092543327005765419406459347604563642336919295642709315158146673740897309053141927138491996535218142113756016428967913726276219458719489032216523891566365133066364853335573299391147488977659885478335707912684660323144697832643459630537939522191045666009921265965643921483482809789916713461159492749679543939825403815403154180624347078372335376220148174220862627801199731777381318285049667797196104689797523449704301583275842407590073299517076975739302386076016740323903606258670305879594040563570763542261556412803874069915950809008688752882170744647109328609689582800551842985160250617966760024749977876577662989918742255973662501450275100161759766851768761239544826440606936172801032198004978492116835419828806873400666665502361474900341099046269485150187084927037105152181433262119209575119327453369766574421959217728508086924579125690215192452256934412685020350966017257102958018559095631354167276853710770894666649353555387525632490407705209144119413609671424534528211758646623754859082961254120271058229908762840534180317380584699428755601430745009372967680929478434448802603932003506840213602743018067931654821486170070003440803251336179878644579187955898554564873931456991520326555913218426840632276253771146829603603076642454644684896156999113552752716416190153180915375457093074904837744601564642020849903081321704693579777959002502555970420486814626384271599485393359641664230281521445848656798856620237340618591476919383278155740435517129122845125694239290754499319345756614435126813571551122061760134544902309195566454644400555751650059102071077705679251562140882674193948233895133534261638822872940284327650512256984058379657692671135299100145330086729931899199098090397413381744562168799473257884872721081309981385134832468537305027914953801041422942549342952291706115582522917932245950088382654313429709905392489282027320818195888673096599060055768304442333524805456613884337339215476008936338633367198455808599390657631228375588001176322026421724834537731893184131722201600839383880014431086855103704474934304520119682746853070323750931696459100516700850147942717437168882522488540441543101742103303935793820926750627359231112822250289255676144709224111583076246229452417111846108122804734255496582056146472014046914203646954060692637827533893012260979504648328365276080221796889442191077701373070061046884596363254825229670231177280748163561038136101311992424952083678560908882764532228992455424719840511760406794732306607746161962738260916133694020648285845192614366790167238107251620005818696817827968921466746720263548953064615304460435585655443014005307585611437923932900452595136612891933445814580012971313623488388972700461619639483667905549330510825383105309244317972817863912170602522265298140488690953064324290377478260479054609217781697057392022395497581253150752321459059156705064512855858516959857902698614631234595923523799072009179971966543091619303363827284573660400801003700845142456001439123733455497470568737465093326630173074111321605652639816861601857016738505767453922941364521460555866015128324028853720990615994433293605887810165770513723014794865412368509047123864611714877267129075678638303520423248922114074801119167057039983548317655041305380184847249705289058730358986600357355066005839022161947619552442802956835347967529424805420334085077611616029903750773679159156046209164558986801324256232189328601048699081751499953221550505503572703574492372953780592479610944525090727920585861514500203711825555291178353666920168365651910910941471656500062139338347600667362007208322325728282577102615973197214496834963324659786254443741409613752302508715900504581588988069004302211584740100827500963393660615749593017686138375575014333086852196927261543308172138969737755020391603696850114970629726360871493735487967546715245969402640867792285249516948441049040278419587029432319284084762252634768784280095987099832311549365084044523951400699267415021209226926402285317591597876459616512869723362965127917347164335461105638965910155816307980023223586715662092991608273208038278202297097522864110871027310404971986107146351029126840808006998064505988008991615140168706803943027748236500740863882493181058503169747948531494008118182275693191209458181708845525485301286016743320214500560683561990121459266274481242573227898761447876982537799384953983272913528479084585750081428334088829858252828784963206950513348941916973916760834556788509623072629922231412545673148380957871188917225035026520727834478712456906645311759176348522160100713457093507948874678965785649729910584041882615720019279820630065941554911303078984366886931418581632744192346767624672915429787111611925890454243203985271088407691523093427329055950217296640271201372758777960406903402194563890560159852107290422792146335433036961777633644125406156071855841956769472389874952409037996054353627150850899336863010836286964353642576522234669886542630997666634690000562860068810582475852473286428689112640279173867190433636109597629326545645920869470927193637566610934975212922504095229179067888101552885169963442430143670355036281084253366534945386528309868089815604594533992243413802629263600424528183170242473242771612494278496674885381472324143156325145405458082893851487323101096255755077293627646505653171992644381824688026201172018049881211356494609638721037695522444374935300036208775346053179553795238510226706009592623932235736010974313627671950965530341946287099744618708797937369855403259109022244269460971655528588455518425912723844262176979098705225687926428203947579642756637373076056459528943551943529914481198190932046756955136733575526674220364192338987030760211591423286141864718939926691860328966120773873082987885424400864312845586848508906114496051180560075489826682769177824614884030864155839839809530676605418592274902401658213901242443636939402802552941761369330221407283503229378767596994372676313509178232246173241075931055467000584216892338666262679222241448985413806149992411581991747685072316858519718756462489247784765666084188914232597942657005639481404661853699607591126476706623725045758848160456817538670844922412709277180546441630098435641963763838795124581209588535314121635107848407710181701553910182725218321685441669075062194022824910574904021663373427971190406327558700402906523777511271082307118478687212908619231632325957257920174927678644260486148103922405502872796135919118446554949387452788774857645681459443471945264609835087996886038049546467568250258236742675339758570696034196775701202038290283165242675137043518492635781852225064776341148931641786210645418708892429494108700130345831583568948371038086775248118614202879992833985067388308949811895257157300727566918997308863611005925477510092523098566639189663374451793809083032919907049006577398881741460436935395607608531533614863151303793657865064909626018983726343488648658179616517742867687375281415791197286864300033393416718060374465776710805559847992717065203321913926706740219313530126919169479338343115847845182851494099383084672891606541361243925612570959851333271363690706501932013398056495223782996330904212090553132888147365265745148037438908720767473441527607598403268280502824222099246609435767628485469634358027764594518306667047747723473330208829207039754815033345059281760626461545370348233021142571579046802030779008163481979879428121920130641997634374165877393357569071142427160753437180581142018610379186504568722573964500102893146875751223418879134285744185946752241314282936208205793731742409868413847204448801441636870855507477087947059652497983222857641442025457048780904920168256931685150843271480355076931580724155737147215889821594011944359866958865578872873666248269717337087886499200223131395897075478150857072928774953948012201386574223563179021989746501425007971718210486034403008935782638443328500859856111987272852459336013976996188481931829912298283495460752764004601003337637691493918571644627766349456584679118867423813378335902468242579332323691361393115206762951802914124214329424103293264068497304647943674093623793832677263331005843847284427206268688009934047839410782409849156550122536281850169106130827463991443421527857248132874936298307281851418309120776081830735287830607214547707886784252467162227592870033754644723312501241767920332970775362322211518812001928725426506240607826001343535242454784035718479552496905729252742685282796280427276028186521959497629711054460446356393720006330887940265355468781722566984793026214777718622741041105240365996829476392956636498329739151576797975675640890185318211687583806093769081522738118534217884617144254002177933275712448427029029115239234712743431413339215412343068402335997009022054806493378125130598064397139974799365131893029628836213471263606718148849367865937742299795619695072299092444587330931064146316266211554803338364083748162110210619457721253451643474905134764845100410735481393586198089341484766275463147880053172990535261470765119914004793337374795120649094991903034872256580624749264830108889869511461326453679511339493487672468632611750625307994211419354346744437417361120254758568538232137601563418210609690569093973752633368830600222447433128877757828683226948770737698173452954869911567694946820843072457151963495273693191793673185716620734904529338487454086764994273189175295387143503529034393742834389483878659907939547337127892995986120239947569551825158258181216370792226206257392024025572465328124701174703035216246014269527079359084607284673942032445711721584942355807673055729588709717060839783800287279663078004985657119093409157355909722756358216823746959171880646491252207370449316661266621147169731538675705783870040293924735708174430600320649209536635565179069074193828673527249963870319044900945042638498975370523282938424781221293899291663819693381921829057265439015770264283043265086731857095008363334925525153971572994193837936374087345494880441530837230108465667690342154145100114728488324873800984124486342924048608141225222071738167631567865605043723692381474538957328683430325665975988058414059071000918394078226962020425130814095427939494709746126900781142958542615321499567446125710852370511937215848024428880914543751650903239570006909534376687022623833887732641064842896289156336520370930744734372368646706149192757657853100062374790905322744836758569605094058932300761476300997191402491729029534235926229693197885264907727747394418216026041040462963564134300463952457375964282377513419582460822596929592370438450369234197174041182197763065442674131101329809623026576210463204353233608044242438585418491532479216254891547167364245439191770960492126736048412804409167589751353781868219167970844606885887260732922911110140342845687893258455150204130871728851984576504939760327955876836594850481734274434195193149824486501451375647435066594931959640675501650544921804837375627473318762619228994375008569848193772497460864642445150382273726460489750229195274672929033250088911550863875154663975425203292956914070033526248810281481365601699242330295181604384699150393521479527177004520381973206669919059167348134537093336080276076635968120994665840321844371123575002890544789341114779447616147177341711608291020432651913847993230893416734917583969792005979995121461185921001997779693896505014562577837028946255329499979760988111902363351917527794967253928654827516960232954156450071204133721068376230375596198803375396199284750127749499950530484796419977741107008762979143588851255673610977495870834743196740852972399985165424390484264356816928387266208715830509380384238870949064820974868166118190697413865194228755361325952569529410466928322824650952703308181287491602496095438985278680300614142813346284965278562707589278243707236723860634070292301868196263748647149067222050709043976708638952209778955499001887246487022193262347249182583236490198546750888919063617255430835837480224551953210582676339824394386963008502874017852791647859973901923680974068741497453470375387924526901892228319282811702779769636174155299156782173130527837581811710104053708872123804475217210124554900419001961160094170592000561901550755947651580457856566178953986475283722915986529443929445073790316093755480751432429808097342404910188769525228782129334245539610337818794724848632267939377693464452663810163578781159485545820754360505480235639099430547338581925931418556944427211167029775368844048122485457903088946243715728131727392891633209040207098539845301251446347834286674051045700551016080147568356902471379605287375942641169274307683848135296655814312082786430576863464504018819992540974002384193949510605253669010138622973569572921630501946627643995786711395405401885283018142144168239143235392244133260126604150918111543293927607246494708088923980297634306545252275987803878395006186934419644690816674661981143890708648488285765676681573028031988469555402266052377359541967247143430405046116657061508458072404514287320542146523960425126906310205407963472198088867587222126831689702446179224744993045950657520991025224263306647346875402515280773623744339912170180988273724305706598292027390907630989256086823255365568841060813348689700310244946815017297295906815540911302403363433613688299294789629017115728154385958106610336065682205950556089608124642612015903124818169241478232850039647440893622513580317623388565215444168365049146132969618364511830536308741005148223893103077571441164531470193911640259110226415506329259300800932725600714559235696580436547251006809083464043405791957197542630327982787665635672198416233697076467546152722438626709694106081082106258626398481962136994672958304267121585598122202115902089283613787438479102583606468886022923937377473664919283103770818701257141589640388488206132235104954376604537881397697020955673482729721930213906400491755490492835582375057920872814284984069965893293695943330506225562905704099541586119076346695804772576908421748486642864487513952640642149980979680617469493826136290655511489430497292269951264952061939274499358195929558172201879833815581224576384197359004971231128962150415524858949437470726396943238793525972811425053174101179261909871402481815907128423726923699255355716399764181134842814353300973502315325036651630582193499703772862841260672481090945328601958026312298134459649414902112214724936811612825714599764969556322812994437306138841022027955840370241076511823682285529166477194176628684802426852563551051400259551467999486500780230041759336656599546322326017059478599318851911300738443025026597287497903184685838263154720834141220503949633661820407795721956961723264092222991594658081863500617025973089501621445143164783611074673456787025762968566955385107812770558499881636442484102386957727597108289559734766841906744692931784026302597557755855366764393179078572872487393351136785357115646171695653571722077763025892224014567145605629097852898284542372367564453411223991492980163626431812631277934810347030392370627127962441098995667218487453982812468881516430218684250518597835359429548147103075208588302128419560696875148976703055483320589630496985449008122475568311221113202910115867408986192484057886594702995225021145904039231557359036561603009680629356077556683594882305782003854649855438241989815023199352122382809892662670720085654068355764709407882733910286111336643916994873993581085752415270308613892480225025920030783436954984525087898228757266722057706822809198417942054232341130466320371456979155812564085559549363823357169178427892886633700129191440105388255621102473237647727019963810160480866287826782544404044117125786474278535777123694551397926945120935466262733540033238752549876704787404594393403522121982996902333244593316056811280531479108960587130013965078249014034212353555335432188282084590235949383749111338998216087028279754249410377665523416063651946864871895604222813443521041502077601378723706858816954912752183711342997486791797024557214497660352688787481197650103313906783290160301336428931204050616633593543716263903854290273358233065727114788115341679106359739194122008864417290512909263995664309854857777978098291036006586430487419273227872348105563203611960381700886866925547106139633985907445174207319869290102838027281789330722596941351094535288298179350859246228775563507196139989885708163923692331992460308165206052571055798301408953157563316218108080707306338111404438437948391643240352788305345573751604550536108003327349762000269958693692003084119348972644538778500882127104619535502872195580040091735541612587512503942731767444369730492040028175687312993171336289949545666837129764553128024274798163715453996173379907135224112533236038136924242934761191643534919638891529426024716655300417797482018782980997188997685944724935230366114822599446571003624993645925314961750655925955529097192626107976465204819926665469994358702857064629027724199294284473876825339326499206663706845641980933899615362357017716311127040260031435599262155319762516858243053007774430987312050651859132404768075968415210042702679992127587311747254485507253684191707604158535669354062249286075949544066531245084322674681508778406747809165452735918879714144155695919077395306558302893270881404832997995162338926432199987545774092773025017311038523647233611654827620647991193813959996520431841073225396235651358060042600447578506102158456126608664295325141822963450166530772529798336932752999665764952901308512512529353561652903412650334730713514439768432880548080529908783718154382670044085234280758841937253423351687134120335484289215967023303629620128236753348103917340707061604046607873635681018112222377576739428880987766671977562758263526327396407069114074753369094172786473862727622929897300319592618350398740823227297188185902173368107925917847886667439816256416250807458507956280469965895359533719394214823794176188751299813099130982629707962163187487390014792119518070571064423729987382199495994767114287963057199841324972153268914579424235664068821649833537501308306929417129331672577501542216448462624205637338341485567190069402994849700796216935349858627644482961101546401873119461630646090493976175248465283485724994486843700908519774117179502297115649071106271269793732544024135903718780645190932700982994667592246266406577034529895494968399387795755806050340111009268087882647831962325767053435706827097818482738354213295439451835514279186647258843278129004682546845305200228233269537923060239610269064294436878718378858719777647987821085576071136210316549123329942730903946076439065616708326062776612894763582591503557891410207660240758728870688068907998287996989262174171501811939700084541609047085973156043443655618896686108090984849118314302810741413156190853677853031691740087144169941560112529601568040630731461393794560715435863291712054067399409726753975463629952989266807973583581990215490037965027605443451862609853844338092570021211311868170070675567933373723894633499199052329979415815983865442000777093332006057716657783935191083376034123242333770782288237841561003246405515732456536537736714620943956925187960313568078632844466372118465003089944391537963025170955500522350842336447221873199484971897527628795465122446414595013757747552865243983841240870649355708192570939283937867084595698873934270202566781676612833912680062464904679832998970537737634159395404234691688465051439874403568414364403746748055580720474186374556985990742113425023064866556122177460502899004332301035398174991272650140610064659673210604483865423985867271591582736220689962126347414470430181671630919765220373185147482714292093285424397985009771391533151546810766440457053548691540953102043266180130741404065960561697403945904637620745966220226659433559854385370739865337904807693927865144660199301396702012755316791163409845239799431070465202225486928368387847905867737523029205502318069071582483668909165170395233241060394339698043154826112507963390876912507564911991557376163094242572197338686396264269359578183606150538381767655319673066771204160928786311985826017526678542180128107664552061873819777824296443283388335464017206033152115871169566891418862361769308229993126838255015416733965861680039425119114838551735257616402798215848539271835414949544257047302252730454966941032689896293400929914953315039325666070419255557800112065434703946143567214209154580727063870004767534336806081155540800916539348253537467640947218385366306993088432963197287516307843346844785003615644343161373560108953873044748910905958295769001284333631658564085498941876247016828208790915298832037870583651577707201017030435049212720113867898651276912539040731461694225279746373142434344374677594276537043351489894420107219199036886080169688330407309441919962764930382931708562476187647152592733891977308690319457703287445837953689487780503115922319279334245840725694965220153653529582780530959904808777948164746672015144929854599626434049083534474795831983319381212084012571535691082885436679180003332341372729588322929316347056791949591617020415401375780788127494683412791863821346285404655388824266710103706704951792755779659221704258949707800311820630897781041782837584375082661729970144380730993696656029439555565103497290075620188452198239705336142534624433088275611719169494316676886697810897051159354929224563968298946849052565327799638612525486432961726854201833071713472791688407243101209520579583696794949532047862501267684514248479756131386721312590863707651353725161509449349675239348462772440355807473843950833591374685472014231815031325749609913855156611328527911750879831385099014200336710028209964402365631486869250046618566326161276872908647867856021836988476745562861572603554132852303266070225894580561294954709274981798584039426036217081756522878843460416390978965624798322810068505333963092458744552768391032262328939981697484434859352315121733484698575115365149109614528561596985501367448348383678270961401028805522418302510845894669516821630573171524308506584976157972938344779070717974296413114693396344017655803495346556668548009803751941226109908147966006314706241669588273474864183269895358778800918599457905689600771122041593812547446866868216865056344969284290159353491918605275133542762733445401370135810274142978505853224397497771885049768611253880944973911030945352888547043165212338720356989106556954528272971107004450336048666007775799504196028020453629595666275830424762557489235817247973766913529321251971378673109563608892692672896217427516685270623047150643082382285376358338893668053282377251052690799695360229138208683100368583489524686924811406933728629361900470338097300840489770429060245770932958937882449951409230482304119654829806591856112448984083000326876327269405808168111765968356999990218291412237074019033171532626481826602197478541097590995784265496632284350705369131063888141430791886007587045641043382067566907142214112178840934513652553433201197598749363488863739594932772221628477767580204189141407083555474532320682122083141788550132080632179218847487453059440518123956899317055895156711016476669476933878715124899933193803877947536870112047925816897675855077100098166745127472768611701134314169618471416671619002400903096022073395591850557006327896024428000098334725619953005067239509585622989444151716924701393591708448932103368231734900367764610889821378176623723611314144630275893803754605660282140829199505664002116424425474806349158477022605518520167888785260343618691508318873977474541142485510174404920427048053696275721767278774104595430873770353507096662241630389948239227583398379552204525217119795368503436919258290091155815464813486471892644953804722162493202436068979105211969694804057197154678063365173892169117643181318238354733345671127367835745222772313633747521963000206753545768589590846554075416543193680228759043200222985441057272888573158744630188629204495687145226605726504789066029098342601086004329222312716530459160037962739622635891206543616150806381009810046362451464576993721260307967366149911355836541238901965393052476502005938323739587898547010599436874108241964748200216936383899081619955830045181992887497709974727902385300836854976166037278893126314113420710683840495832037800499823740688837697578295391355159878834496472101891909178481930903578033976622334137896890995055099418757961009591101829145877597711248401820451577123878165856218545738955115011028019857415577131192795812913206857476728977182103461592770522100286104653415211605588200058340346676962834343917111363338576529167248052557581932485697178405737261870227531199456288389832346364637405114971291804763326704281518965295677274628115906009081005939522604254872786997572136807576016497585977649399066280514847884495565523407969387247076315556801526631226904364305127297166955033617548817211542155219923455453108673911350843052350966625044154962582864218018696677787716981907469693816805586303207810934719972602690777118756643692429646506471269369061858347081475028909823284790658788923992610595030859295360451075427274387425153493610795874212905040679410246467976476415228514308199096762507043566474069619357080316493108282804872703562201546326975365090500414941551204808539404357472759345462705246280895439477346080214962281957076157384266419571700181300191124092530508832003037362266791553630044560083947573749854092375680464272737237644072446682949139377363375268326993658054623773818192365660131968847038350648386028688050005793622763900055125783274127575278453274215999507871505360086998829756262311414212623110268981264617369747872058236843417949241183490656487231196423632581608810686989733145229571234333477997814934174751220056529047734485252784188567660556313477263010240367870054561303818912978132459195179369974966585028080031052063490181240069738689397187917439776096510076821408669365541001834866949418347921000918719939407176468860253656503920348225284577341709815364706904000464414977722298577484565969664098281349683851118999958043010897501004747160686962852670123070137558829759217257589508050360030799617375913745847227120431769146805499962505058897603291976200336581272812583388851128656826202778148430091932934350850397107992280103972710090698818219209464184069833490327913518785671015395420742086151723246645827956236010439368743500157505292466427591300572210423919847731388503067530617644261120194380142129783353177228247666842677394655033495568991116256641522873535720132479851538361960321663032354897162573059478931091555395414925439650692240338300677394528233745081461020840727743210854517653492694201765223986754966885248856120785553845094666862399721414350551749127210318237868835075191263117019136434653054608054750453066771675561344957512203842483320026522640915095515392173256083061179100093533290619875638505472288333192574233444233483222296195354549153772256325905995713297868752783868989539903437595583783072736801458221923445717743934505175343831509005119094963112829014355419727928304195235997733524184192522702034277829186086183112789884244522213431380169976361430231319242420313942687447315259508265798255814428336397887846273531547500023025941766850864861196899517902549052956882853856502400230834355772442483466537574402576633801951220085234415808379423231823225131726877703957454323471056120103454317085790908681741417608974459994586901940384919581657066446238307523452012250994958541826517537738405419693323750603425233647093140917848425953732190185243407472204622656084307063642713378070843003728065224668493684066420750187154647200916410354510559572468100629643429412921443339518427033361129212663788259662124137385479735538105384926914494501525456383440368516384056521029301797961115994464529055906362066912706853315183706664044810308235058324647848055729145596592204442762516036291151881867871701667528597171502566747602641498142708329644702636913575402628469798340762788855893000423911173468202261364649453186630451516814538057539813872536735364362240577718073839177233258698199602689751682158169282333034226323512540242352203504681941591835038261618289506463351733076774209004861127949447701998629106467454432486094989986549612277601906187218779847172939680955854360874764870854087781475778646910950401654240579707049333536382382897010949428236877992076523176371608689664321356692002661777302668656731257200229900012048469846133898399068876006975714977037625210913187465580472220347197536894872949495935966902375614743835120680256945556327326460880153236343310579564152549572391524490472403806131740718194731582879275370554880470952637342725006610522381396042666478826994848944112594249333981438901844211919807609676077816330334469411247312969331283602090119347441128251314427297506884760227767734741323314438994406862514927326834861363868325345381669208887958776645359330583617361091569835844143898992544956817381870284442745529373185296701711992378354441296604867346972252547721934570080082000610536660543798536438517657686774637779466455595322550058522029717884250757199343416899672774338609296547251353168933804799452949400601403919710935873037823545707010024149619844789453081852345996651811800864717413921139599128401292781931332328796652356353143126448708749848905088761074740771615438833141811940760364863900422797365966769256633382188473062137216433001500705507364592631002916250014828334934132598436705412584644470401167148463769213963059442368842591608762922288440113858242569076807164884473877800667399863785970188084963278644098597372754218242161602687682309669667632856819989788318503939111178813600996497046550835356384718906978250065652670998398346818141462022769193240607357213317035363545524228904047369433294958380363359240994540202265299600373626596772366322641697201329463638022664845935891039902253476088032012539529270909092220012293056161292159971280075989032188680485706595411913253460387404547582721534434435950512761621260763760067141015526998554844458417387831899484346541968158629616930260916622820177479847988801407789667439273319100913572981086030636326316812102037203464410196464991351566027595136671129904350809659533620313165763055281794924471824398734670720529615171989925852666746280163078899617080483693495565312543779732153224751290024748411262373061160212824714385136180658983505121394755428181183193596123703841663759081092689999480409387438351527256871750499737407230484082510417370700710041340542691427104745781883853508331685509852709197886728273838138297505741725194713012112200864356378956909647221245403171126319746257741413571309983246528110179064320336720400551437462396567662432796095194994476701346257172584571664584471426985062773680741180769285300287811087526395284051622812635953255050990376293657501593854675390483316359390551665665533584727624958148705346816735427258019356146273980519906944401645662001315333813635121947839831049247546996286122925569329113690926596188382522917709185657932019935734859193051696857486412143365689781554707136866505539616311469655750967264184039011774681653595567890866540871998440519136037289923219780386886778277794927620775186348644437377905699997126980114145735518763936098178809009076541572096814157075924722502256158952162481801910790081077232240000352191122771391689747226561042974494722569209325862843132453021087421985829202410165273806277014834439721518320782921328842073021426920045826090000869347392494331995039185359577243040695999762862914753101320402219705757090842552359048955309086671157713356832746796308366137491391412189495995341578328328298155621178116896189572031482554274544853593836762201050967187681835790181731589359235179626744721479228531412445418996958971167320500675909091879608201905697302183603175512315326709473809412025463721046585760421178747364689594396703260824529404281471283972673642789761910874887834658192849054620855528504865189278647515233709647452587510444908715922192735996449892938969083870160286711442764491374756988059531875819985948972832713962873351160331404887392690003274910486375965521239720790119382923926238993248423658941146046516217206501014096543250271017793528960325260526077931902478653862226726764434652916712992659204858956508825759268715588705411423876760116951058554410472655582036049461041139691080417432865994784631058315881839880337197764701159067543665270425245923196937153400034241882659256874929528204409268825859249004464150282230012223197142811562755265418537835564151653853052427667553544277968080479780815253962419804454646700892609033221611145757841485879125175396879084720067992569549019089920341127405356917417227689224661228896049027324251858474782567938484858992260115262361831180027467721345015162801163436695478992871503209380348639217799942838745703524551328391553741159146981060481295710039174603245191162714207150870602814531953507165659618257622017186044245349368938798549136511821613443890134784375198438572499452054651198177929302288655768515784047745723990782638942215162759697982187597081522528830402415689579827612667801481828985371232466310894657688306998988719129662671305288017597589836686771248253917360676936665976460134783298668354519643354433736200527328325594410340109936717516252587246543720658677448033207357236289454865185617235243670602750425855822985313656656480954969916025239669552351760578993366867162408962686529423704757425765177018185473504136558113581338048501523188097093624979027791963738571964678138153678676458421808017169322813456122016171848903573414397383907042687610057345960645588348446829031922517649717657453567243021281301752991260429876805598355069754520036689507239411091205342958758040844539205469417595954102895516772013225760450891130543694508532903080269356115289689474112552961702941624456856775374083432863454518924960797998651650612280961010001084607720731841807342587070967034702434413325934930183127678387130382272700574067794257386543785435395970663156865011796919042721271589253680835023590633540429863567045270246980674151412891433078660690062015755455656693432442668388823830335338037532870027187783746264216907488419828884669279641989489283192588598060865563362355960519543086368775260156709995937620094566282571863763296940920653411256303597829206121613367507412059818970199060479148838415118069954476779817545784759069670751908244250268753361850558579842413069000087131955128197778624789523417404182491253610869324686441566394876729160301014611253836018122322001819990938214907641713073080965107293950305091982591666505978295705466976139484306161681709995523902430147101006402871378600625457148557060392473465456327526347091988613038075706806700221774034673864166659057170810929054181781280503341571068967454757200295012723816614886154044368880505347919709637336078583810726693607468935682027593065758062784826761529898179980929346081194089634498101918849730357604047921079817359520571181555080113013777917769340535547745334526807758057314209951087456495966681967697648852784449806815790506367313736474147376105126862701489210971546501839370987686524262539058905183760112921097205564098731046058838873756763485679131175000704108608542090120448712601473405625826946087894763894971836651626837165353810140152635168581049608148089804151378769103292451323228165512796323776685370796555139825805221020985962581193915371706769616318425517007580347391383667509140262484132018203619299986290468144621317255147148270412545049245293212863687442471507226572599030289190992309757773533665523054782966813101283109086757570704382177619693971067264504276899931502086280063533095775516413636078028578624693637900643854314093211023783638423480545067324139729742993580644564292672854180076530164862585300884781449416024560770427003085038564625933817786193149557514590015819037245960495692883995692200249494489087787208030408793449910259055844480501888077831276507684194124856931115482793035359300557345208413364636463811793950848620123405311852270271947458539408179659828797642686219538967885673016710098715091955800859781799030515504719943393670071867921475343713102232381459158520355740688027377525395335737661525622371417412769183829655086393326370652272588534378928593703417002239636395580684859613940066816622115479265102679623425167622631431886044241126261669518735153766658988213055665150005673829662728951473067742525318196511562511424965403747970392915855037554537490462218365804895621328047731429706002575455634166048413423290555421246258096168848446659656381865747694274570860897852549293500306825790734619981465485437693276305482072194463758730015802345577107297783581651878973468835342181701809438140870524101339442345935854223064669750449170274048748140093837201374983281519274919196228251969523262834454261003315155805220280314173746676179095885222352613074912929105606903752161165867458597217627059571499716331801338219399204554477391310485988554089531552419456577813360105415220018763884809819453434295572856618182895762589392519714408583413541510013409438011958757509549203385555925854390214472958479492289440531538705229049124043835952352187253805647455417495363458569433754985426790798378755038862993702038419159860516033361206767908036106650284806164008697700677807925791682062248326025161624033477381556172683213124810149601853459070397510617354710354090532770885648175169143744283769677027713107973917768850027188878633678941724549805085325935007393408347552139160381336593764168514110808310205015402642261174510050831118347351130476579172738656305108644522841784954723566556776515896058733336961789761925429036395249368828952011257568559600240261860701954009206376180623303094445132521330422527666488190122084687326675154260358073877316880642385412538089515401324900446597144891068251991845386125149004375349278338944930879999065687448345468368723901572571957192291640653621621631120498543186358365710613585207359061262162612508495093134497632426806538656472811486364486151042227724990844580087467507843939979134615252742196269453873442437955644049101642161584827801458460816963586163695958533757369799486629391863085333522598436959773128419417998324069013667913630801818796681371068454762341791086604075364832672471743059450152357696723387404187391300618594378795926925581139776444471670808173198671778559656832932171695715539164733191322259408113319530050761058844782793678995472544413865774443132028215660076696270732954050928585755398631987195588093725355725929884290444265144021751687732539216941007844652105160362134296182470119240244315165747045371255771543626299408534615536312831628452306468233846820202511866090387637750543833288302627587380283215739934589997806088914303576266362904278200030531654856624186861350650526875009464038662533485947760825246808245038943146714986533532029704342374745795931289997644546250196392370440149870517628982479388064269381318281072328537756485448085486296812979737341647186616735235443063787683860076757093901800644959628569473451086113465100683269436351464630950962262307345378823178361844010081082195148291256055588405135573290765523358057177765947482909869388848834302502721833047153235028862331060702305220356198743848108080326192025334948295110718676503772408115348640122265450199116049760104779494446259733396955006263755947917992255032144691113661406731249184031908669462693538865880722278115157963686049894865783133230814307749930529179091656700549621884130680791094176633211739172740408099857342167322077336668249730698926966127430406832005615546119143263584907389158268142524103467979304023977479524340759915030954699210530942131051436705394765184851462137032177606013639966553774835235016931191794050635196025825627709018983459994366484735023042936301968680923839877554987637038609854098079125154143050900413390242175340064070199768036043596309658513501147977076540961696560620417770234100396837759273154145428970492075254015703956681502345307302412191010682250344271880954095712646128162707973791286541314315122306341688147793800089818223301457082189268223357498417232396619233490351576600834843666607162631172679582362836699360389957373724412532396873770546335140330497899025184622624362460290603705516253964112163863778799911932620784254671846917834296756908483096382472609368542118329790228025936486119604939759079811649757229790925693809642563548908951399821337222702711695640898133267843786823570049812791872480641213489580608742170722818478983597569563321556792747239218108470765050004510536906642064295059321118275690330782278182367370569158646914275849773915041365444529213036693387356248423042113702470207475933073199827257229419786367759357845608348941770553180384157147694679076092103451207138841277716046625080570326635536450649396181306349149005568730172687509015366506593720095620895837938787425454563128844470866291439537955026989597972346961464207199056560410177087662518402247181758052052582451902345900398900792043899102758825750773173076662048481989733663739934151852480126045865030943372290166021489297470737043633009432027013775165170855576551756784824908948400500090145002259914777933636682084717130716772169982421259953920440199646419500597062054178494569168273861719928296845878710349350981729939544478263214084469275824223631036025735268191608754995074574896795867653921291402582866721160593869985754189470757262819947360685206735416961217074051545832631905947477663192585386057647594075707470176923747747289618539758086659182431497781271893681248996941771809006947701334428376117990695116971584123701471068727013405514871149944615917834439300507896936737240062013294077039323598073887980049735917009542230851568136174997303346744362407404009819051719749379337758953958510088841873429970169963885594877242158575225537389915408131262990185545550968863969673279183722119688155271141853079860935309022566991653637032728122162550596906791160480130406770406230948619570752612976663310056393755609196023491564030955791627194116184780470209251856971394545981097765199215829785551225634944006716080562786791289583940333913146696858987109955415504798204314685873714413931918963699419924411185577469252512400692846169766391223747147419104981042369880649656578085146018574704223684207892428319236623426439031967350812961615195538925051044143752460691940413068546834545955669140152315996484076180935230225579423120360662400473928983450025193864873353319391994328432150514776837548652804370609683937432335388656813823562083667774816924768911436746546766162492772687773348817258795051021239482842713195139005991464658935686625195111345608348520697906504887779916963640335084434367559203832706513432509834610720304409170681322927538794134116650951905718863147958708209937329943734853625391309846144622793911334145767873442757610176438782872323536976324593371281559449651002799258023550084881636590980536186311916014381317036371443834678047355525088778597850523827206261262601828053728287328582862380557518767942101460185693545343122213345271329507267069337946760012592076286236112078066872356990535837781483404249242882091024268278935460752268320809335951838884898472210664495354480349046237987320734074523630643804520919719584488772088822509717238418149319408523387246350334822826175428689938588189364702774365677825672851848655826228248730331168190933250408810336140443998385830290016488727936198490603685436338848146441472428828575387919289937140134676221041798982762519922267947766876273907203087808792568742598774237137418169655411917145508888835663916862613694928510822514130144589530587039150718549015996520305646404812526338240238114082021698909845923386083121102349905626231553054477806024979435850739285766009314996494016944542821521823930129799583148919045597497631460474708889875397629007421507882758185423706272203418134217006736848526275872285786941823403169545470472001442911598908964479463251988186137829051605302153260735672941475868402376010592512183760526164709820756922034696955688216386143671243065136533229282622269648594910165432929862772669368506737807550233890977211854813688945241248920202276525436801076887612749026937541838230202240605053065420545009857710471004215785962535049457405574382702389797351103793813074537191810995754023229725682895892617325894894046722325635257195931333439519687862332876775501010761263382146499126632453775308511468824616994725626878509540076297656671457322819769552548041624506843650752638610098715296695226658223528169532245032219740501712076642419804897305498903334489930037492397316177676861626504101401004897803262587716595910188447338802304580804241467346200941470423273815652062392548095975380091559389274592835655272225464737159046621791285168474259873651648162810628173983294324564587543288794906214384449187282187836193059972566033052109746061799991100727747613680418758316591933443812091617975771091826458695849125153396930861849010001365416391851856469652183548152494647841570466358445746194291248538552715117676237236650732185442599779462798749865021081060012971436660954627277386631154663797316690118137718430432506690048234062918172314559448640288008567112485466399643990164578353212649622448019190896912953406712863637908456441906257655654986819391598241908503562193347461738868601889269457578709910266388557239436436974758329210810464922242771083621649664242915684451097016129062810422210645210458083706801592778881432957131840738953236253308322433959814329420824799228936089667553900673226116524701259138701996725511577986165747808503279200116101082231735561650173192158384676443575754166440215047384382833828005811229680941777761930812915236845442221878327486261435709092650046918063691130416446590710017427291091123657242204620859190256124136239241729124905742058974410756432720238458849827748968495469085511703330142870382048926023969999861766435290162620685519057661351358802124021027141936099356938619466779331127444037681579959234247051895258934592764780230957146466779027211827798020097560947191670636696677708928896291021372290414045703368386591988754839413132177743596194431078524661509624880948059984265116241779927599037047403679759015972150269388891752249477099622082272247837194727516451735527481084239236657730419896308873088600517447271963488793011893338572658392884827011375318154496899244724843539567910692867866108132170282824090478149192738376970945466347559910076299772453222608817598934717279650493536864915658914921174902105289935269387686934686929028984284450979698318705028353835678495640329930030074844217314072237457923340992709377829580061345252689141069170370407907504606608732383641273820122088975799927082677106981906540904644958874772369905204593027078715125284460463456632881260443717857338408950805481483346261486254840703103356487157916497883508005336243523438008901856347535363225312564683855477507666329241894293030218474547713599696028598942085960645153345619696527352673508005071853267761362085992602758138360220296620480832191358550073374597071095178666398782100111478145301480330167789867131478482885886690911449867416154186739804451418203190693635840890558409790051273392380360098335890707225717768629737973588410991747411881675867577267975755624449032516003945114138170690464491671403262037865184963119661045534417100379786682804733854006790224268339462609975377353535172192946958384086597772429665596732711955510520583999381906851707148189334620066959240675979020176197909868898963767649072232906863026279436950105745832968808159368146022314757815195433789324540986008173473083006108272544079579332326340983638481558301106783976272958304925764501325722588889932149692786925143383575065043083630760621339971712467587337003038136885268471023332004246008356696236255858983297314468469940998520248335303369715989550685200267090990497920298498159369947490966081788260365438952820169967689597264091588116304244902928955081622253067809358840444273713790993274845942359586202166607681222333678896448833818087304390231017494223953288907123187758818489424783515795991264779062214849867324640505478453958983701992979066603644770531260379768311704652165453435817984851177841772696026245115241295317891008635391034739312790473084264941682499147235840771705517735645960256397590120673438935147474708194394407830033448381943476152080736851395015112279231771862252020966463145046231570026947231455305318711272180176341561492236983757593072418715469449208433710231249242479295632546384175542543919046767571287792305775023977141270532576149284550313154428104867897096957841798830091449585923412267997889512224843479316825715864323941157670772377901269271738075704911271281664890603860974339497152347347941660471996159480421392051377610769458722748975602671297654276202421854446258632633669324981443817404377052712891577717213552205760082787922920124650493302858124843565674172546880697850709883412354646591462961339362127232758822123621161757094139029942535735764501208585814940303890681035832976016273608809955558490316335681787584170892706168852587836647586634189226513189066269148596950158575254847331079404188769353614011410728754815396623768401246498431578478378306343800938178309564141791901758029103305377387780874964796366689903963743241232075658685152698996958447052918268212573100327721287095817208388469756027482451704352039509661725120033617018721804134506394091443716173354925732819691896703782334522189023743371959269464367348139754547982938240046851405705775477667507173791365638916514948955446462964608866677133580705732379529966591609169470356383733380885159977429829089676693920384586034458948569754352810801482373610170387829719767795822314449563395372918177842454942471554858383450450146501899009804166225118100304676671452630759440766156679228939835893926184123284704476124342121406555632071030010967520279362954338590906767981801619976841516907212323926535129704827088544996075249148571056178306544386747158185240968236833236772552971758556727980091576117158027259117002652584960399044261394909715216149278597490837774869222047714015208787445254888201692464589344100067292631411255488909994171628823661063752893619615235650580075445683515526358474948819608481240196293257332699067418838351251056311109178176280716315738018065586461149133677357136434264542392246713105177883425040760294689789760076956361455529820162459359181123361068894438074827076761518419120449266894101956781323669665917360508209499161885426670474161438177373606150344015831681225980516287787332338800523991111408898752176521916266025979460557851928161891777071842084334346676747298631633670689566765901641441780444227532516568638182139279591785124107193796845236040511293358663327063576581616965783140469468570406876477939766936127964523705662164400619246389239462515682159367836899872778751660529625081004868258769792737494089395247204831047184752497645209114045569545700310200737938927001071888860886566447460938370750131404837129176468715099086366937834005724218338858881104805307071944999450249621957896806073424338212021373888538326795181562892513177989654769009574140610212154177899262117044782488488345209027933411879276479938588119420054871668009957845413546594019791527975642189249932338957787258453799380156009281246859773540165983249989479474490923620357156155937503543715170880825114551374356292144057402233082445628379016805073340446361209835418232261552900226630950834038014004265452053388179253474249861915402159729009006127026351930946698609083248136360136852747285074966514182024097021711124983732122187216789066026324040254568019466912493788115959627270302114891932032956343512644115167782944275043720678785703587380645679759371261351021888144213119815494456940296552743229605396822330123005949194365080890059792547564607375851566250508346960675588967290343502596464499637037438968427741986505733517791051963557136762520194320576681680034297001268829634406283466633888636157599989707004482622967412305932542146992351303571815833121528990558683562846350037932924202011494221714038930182961716634782740204454961526723996494591056007732316964518570725508868698641610034246156095341245860686253130676090035221263662860291142528941407889617003843488377216572335438058516071588304533734644825635568426507526776735525176465114550594168881364355795007872808770879113929241748713418705437349871509764294487455188133254299360508952326529822247371780450126994862844510583509449805242641590341963943619217082954330570045769830602522323562714509022349752991546970920986307786731381089964925423337491307187930655533550413593317436030635898208701437621306824653613523185286165016428658327306705374383712605820442172775315835968010031559940494562422413218717963480354347249237557294691706075963015112416877689407946670826631190619172266484028680296955118205580612018736280843932009332288188575555306857627315198129828268726137716574564099508478273405551244152534027993013366873444948159868170182361424667435894158383118754795254703057474417040576345952644290249435443603632857954375126446459092641553939293841995201175649932192595861415146617306416336777498901363580104751378196258462087152864160928612086131655175396316770649446793968911551068478240228627293420105692489834072698551772966088220371426162452707426743058103626305750311264697699840607201247605305947215981268311726347715118994392479067902000165441459587608470974102603210882768046989327643971111469440802330764595614545620576577476335703531515819354007187378086764758618756183295931690566424986289486342222381335827465394888054281923871870871833295726631042982839083468396852230710747657999681228357120504549877904642054297252890001314706766900096285159820131179522591000862409600210340874408102028071723499397405010540653506367768217556486698740878588220707628596609032603233783452942760203310273554735375613591365206199322624452485960036488953070337451631457017637190278359727906730355799263119577664844260505040391083979953958968178981678039981039064501068485806797996584590717495313901746267885319743606752970673362559339946732668593984699856187832603245589989831800195320835372428792491837314529511733397834819221164864773791360505227566696746627714252872036222759196018771666014922206507558183582110295776733086063940508743991134838144607911747649005692799807336062793953243657935316582850367110709103409859511388069898922264706451068743921863955555788982419146099210277919203009508877821668789121315849799158640965227659186337113573556667698116573796860117424898246714126751559415034636922365450889472006591735567095472196564013497507894677357624958311995819376257469382740031711560366604806233663281427883069454594966306769507132368144364484422011677887850482338135545637745036708986782324907591029800816375394264885972570130806635706247386044492917497830238642904643352406645729957697804922629144204507014741352931652081502940579575938075988641666790432697223414451638814101136131627582461213256014470737849536055094813780029676905369304733481240236320242556395898155607000540572320310375284273829501446315199070677924400351070204919065641278304920219096605157530972202015936761405218289164115853793475315195688739110705619103178850693791621868158341248223858281436713843653687500045598823868607590759826241098641813830927371398992997402316863491858898914453788576367683160889487751999270065274877051689412724814563551210565338984477393804620060658538906941054626339118929605763510365551851723403880851125549260045784671076087824767175185604755246110793816207208291052870421825276842157643808338835434475253388632143691531765884559519094789457215204996582419796149466175107829892815734118300984916370084911084134492356285258179991965272805454639432111822709937569629584759675935072446066149094844813433071441798497810321295018976758838471122513253486294250024282626788986507035009429924995734458229827129793685577246012974927148594595300622441979918306528499303180251747273950133661337567315125826956907537471281429530434249671447677588473181818738402912133875759733260067289697671576525306596868235831804290814503244679639682392696774674836928708505137375548784353092631611569536886924337285807005854468709165980111452065560219544078427206398612198447884954379825892467978333909705025199504983800728698952009808434300851559286000580879314159154825638426244166197174477627612931304038699308397683168799263224224900026477879654560426768189047448798915321775623522702040310653311018026502317430869790031072031572322608242053272087093401637620357744916693988321159728506147391168696129184635412602324331180912971453147033648771170256088471218511896521803282520254253069606654408314163795139603486995520073081927506400308768179095661557570147773319821690542942863826208224359845885050002798248150396364583406258414613781468248428734117781740473835649126699971354908629815348750020071510516386185306835114222950910203299388366578646164062554234678468976348702033051425265031301389165706182870799745619361463399731857391789053807086691877585294214542172617658290635775266373241735133568308872995375542252502909799488797729837124936645971928078439316338550547218398134234266270308529326328367772677892104350191935857825792946754191269344066347968145204028114646866971448096328415655392915358300765445839706184564354011113004078571634075681761808237249800632020387423996066798004764615410150640375049160701558617118980336180807882116585859025966680499533950834282394789794425072637146111377283176374330470538564425657238951860557761735250550555330744875206171682861223073357019814434679493659112513015101567528141644932922650911399521953117338403031220843035789901476923564607734480970225045764634648347950563830475184260552916263754585505855155170713697646725877568926625167425984254458222763403379275051848839600038420943432789334798364287794929692041211579365744431835562813390959365811244883892988568750869683078312980861252640276313208367828975362700172417629719892727693883557118474457637943791789611101817948509528241032884255454593977572394350628327300392424813046564899954094373106163140502944259038327096319573329068044692149276800351248909169219268018426071301475641106237922290843444306745005451214207127895368280670035116677515442923926158500103081843468922923194945087415844838629490664405225983890490483833063281067098377903052764571607960547234636318011146815319297527439282442412982363591895868681670721616072216803515210104651333467135274972641659368631540994687024157568624072447884435625573034536493783515869644908818486947904745340583894711398436022206252071304251033206856908886349255822443052446556778441825948709940503813921640405516287753844375844347654081179940750872051330443651435676884257719551087357842316822589302439141278431813578375362960653109945051903594916210862483666857586977506302262803615442910130707818752996632060595401465653923204094091161728125459598137495978814911790574631486919449967704862814293892601649431990155819628974396277194540713698988660739915845748680683061469148868663341961376932838219944868061719557781109136737767156379100217230943894173054896806248404141482231368788073387125001166606769658198276301010468084174299580645901921600201119420296334589869545929480385142070642675721267387670352843915484552588437682748751885691578930361445541765100396732563187701445367964498325576608628741474644717442960760632264022304125481585058655522989716661896348508515266926610806144365953172852155318014558265753289436554168273900483518773242124720014165664361492450562217015312679542528514972813178123362896093256655839653080943570314246407643726656825304590456947544309915167238029110987866433241481282648106357719416933789585748186856368742482238526656112528167878910234255969507875671167702258527382352063661669167349869866399354300869728970633833558936733027202965132009730497267282052673669572023150639366639630832828923290028016669047024569977326643405329638986454773738028165718663048245327972213150494330245883638537211573641269734311347826686355426523695777691062025470049364208541953736903431150550924749497205472923206025763178139832434419825961283600713163385139465525826640644587434130907522635871929581137859111114804479632262761444811157956299221388219438634018869967713057062245606270187437745052816927148027645443093267788390549039919543571691594814451838921586430753022633301132483469466830784494848724714999317127864753579220446523002465843369001387474332349408660342787345144173945184365332971215040967921264211454526446741056803158219648894308974801407584160040042038835168897109543930237304231117024547878284183006369937860620818360554867488069152169781527154585536824041869073681940672235635972090946005148223330408137388731467468676116261427017346576782410157336166221638994831988025503649956397155395596256403130082946516049302246074146556947480806039685271083341957596485713069948766979046097581571179192004718135663806663934860037198625879370986410938949943724478659955563953956669539357181482711512530633325282694905937580304517740954831146545579233837925447309106756912840969183278513775373348645766240504636086832555238126210358718188458312721603848221776092052063965531864892691654698043733957010131764306291366462640231797799276790186670261810699271072757671641909650961252047964972234859678241980043522434158408006879801222262344088755435730996348334736470605718996810602587702963404673995580630797413328500474472999505952214328873722969174383097809847385776125558013026202613161407754231455177012797306134072625884704971063769759749466447360193453275995898224550694423631717606245647567688930691460351243479751995241837565260446498438206538306464921815000552921038453179960354330453897017897263975998324728118484703443073108348774321926316974839769867981202888417630712063087489708249082237644860517495261170147843559730340539264874864518149874855582772120614435948709983062930914225551359792944270152092256232913743029084798587659370984237017775819394216002384438138353877825485941800005687867042466169220016827301887198487935222909762269016102298642075932378421940691891503392683771097998286426326178136335976805185110327178886985909489413777284442038634469771045722447268535882901692831931110159579537639217036034769623267427553623783108437100625795406066688908248399100660362380602850608921607482170595222989059934530823025014660687201394772498770670245991419735219850848646163597011933159355720951611234087758754877881947910885929331323658092209895964668151508528668463208740838067998459114307180339144727960775144606156637048950339848160002335195215446229196600767544521006246773821423140078178468384582590812423906132183727543835935202294525066577337407099759267754890765419035998982195018384316499243989113458282725955455837049706856275139023739328629027996402986136556674339529338887325121318439315704537372505764614189219268821581894129614429167285343589981151637824088022693042727128293021530984933607029386926372828895438547621607731170207461238360888965492895150900577244428386985231485149521577344635572405077155083288823340079400334527518790225242883613922760124466221926368160117767782799109911286664508316969701285950307496370397675036889105584101421031108994419399589254022198096342546899096232729629139443247242490097947303299596138534957175176514369662592841075806572858976490501017585981247003651737302084242367757337869991981045058010647298769380710577139503335517898293082577545375566166854407233897786260398341666768995502953458062309826091746770840828602561368204689720507562252657121668522162744180133669098525213500874846478321810276175920054119355281599259405300538772070043225111979203906769113829296182108792074131738916786219340315355076359259831723677706384044982405811022698944349834823847439056474767592414775785219249879686349447240311575039597638728417189047996604325318738278541056859411353820724776265457810075587792848749041704695117284537551208504037233279805620165150408845212447903575374526873911644872161692445599282941609404685934174530071387558443425130514700863659980716215247426139057756864066209633017939890142139639461415346222249176642952139365095601245543603081859538289608194162277169950014239128161480641883359796254627380961162693233139653383549746307711129103467431450536189638986819339524253541341967453104762254099711416123082167329867048112827532599194833177418420921242489769497425388633930771192989142734983199617260379493709136294033050245865106262597044637292313601139602084739183430447552508211511118137013731826890919675935911637990354680552930935552615006185826098495087033592090723191833535034534866749964925059823442398413636850231738520704801647906371160775044001274340305330552150282762889987735935035221873587069372780324659809845739753310881784614692030866268926201683568881220822519512725588826643350868762108010119172467658227491808897517771141871321009333353062547886971925517844552484628739339361403624461390003060132695085824033958527720123647428849487366681180011263561373936060828161216121395679107054281314142369859955279017369519369920116303345116475366360307676279863506912618031571044836044958984323300499263881448693594497569324024839451084706966983333202308293404742467124372647265208177427998933911723772411536996312981587166387781856190123571956670484541738060438450917290723472619979083415941263944811363622622888662110241228697963173950569655954756274551780649988423460957665094654128132970181418012853049320185464447570393237762393501086729069238688939317332576247543224678392044386480039742660081570191432206679073037004914331182746882977340015970483643775751464591200818120868164802946070565432843315734302872577211781617422842895199402113070244598387784624799035123091810068234076823342227323047943577023216875886055072882416978644542988503714929429281193006926880312361738154771221280246847559737284097914379990786010147962456902924635578895377894611250936236979956309710726529411793536180852661046007373507273173028268622795852802887391540893458021262333648741457249629134065598432744498675736412398585925298546627937952079746516167363212421506801863665931725659636163891031120817892243911519458172566552465061607354654391915025009402802685434148442667655377093748205289123992054974339216267581834074870859296228883960639591276083065292286687661701827092367253268554037696798574957136884107562096466669736777569397895939998945943230268789949419078922293671173158167342644981162089178534204369531631182394458450887598107425804716421562471027619048610458005287845712320504160863354120692209027173610852119762308174838599338482918783125875153656094099491313896840709678438043623680983678506627780478940410128589217876925382379578508700470261181452478603069718824912473491074198825326009193778558163668566426665936555823448680234257204188347953985336846672713918834860781596609781929490062388525639650594530595499706130328279410749696655013379532752842258799561166305986132343677843990245859302656096039422170446679521282817450581315146886984449694621308524767672778325082150719249105443579823418967668019143615915997056852913086570081953824299121615474950000043749541399403876182903813548709403569086512369741294792063420216429679681811417285910176112773389005999889551613912083415604461220975906320120188126664847817346417699402945258861668019090459655747474180991099644062977660750546816853699806676515655073738436607482946545071477051555386354639221183102750634983887126041454080865617841692914164139354550234194390003075607906828331428069256186903063807774180183201562275516068829935105916990081462006634401784320705749324152973856329463992710637813114921177352833679143399164729023765755589907092540107153045798561093750475694030268837625076308635793875888265369961322939808119287281152874167005277270246271907470702986337489374111040467043257720017632628746568383506748350744497344378751882309804560743237672894751214960442378120069316569593655502815693048888058819052784454572039263428225614136408124948871606924092769284680378117173972461085383220302445447718777334815895902317061621594309779005221293813015083279673486923373058087745882702249437573889258092648817582272774216173144006419312242816774278795763712442083175140140798038717586391465721323432952981011807508558550332763779621041868389725447312989715859195830652142016032154765405415544380338757199279905817343222528214278176515579506003755952183435381166100744566439028596456840386080288093131583839171862896771854535617292217521837776578986310101629530470396759910445537850633491319786586866126719239223428653212914387946366404707138885225339602137133228776195781168183477059586254833257540701961205327177559223256834375391392507079457546974922987577364513065881798402372299463974117205812336683811300479284800367979683347138916530758184481439280947481798924131407722683824452045274672781843940715862863546579900346369897971648420511664874694550695905873932844349814324553632210272524272116040472524949644903648769824600986557927609355173634900051062973762725079089280191577138825836473430251046391392423840140369809636358066208504061088102491711281154775539034816769414859867940392762195085491936682437310525442925571575164502171581497455509901748122634123820671899291619943422345844165286357430288599271297075279558302287276143011656727880037514185058058775358082268422338033725179024782772957283286076722670575188128814560289909876093222956881571781189940937784089690486310682495648879925043428635036282202491376121555520992088429880948801476640377489343102309174975804319855360662924196452692664818741452915931801800689556106218273706994385979676138865951148413144239808444560985654160272487443130403096932019240370868500275849716740149300035598646392172060066082267542705719944533646426441805138001212966284177533380655230053160048056562097592385935692858472901693932341069411692624124018102619860298918002005511644558494769671146828893195222664051399692953581605050164810120625093785371699867253634854453085889705702282304861737591231411307681644714988323191025124106527576514704796819161973845156023414773110249587112325497051331440418834225540624972943396907193800763767042059735185179487683081345687992683672356605791236248402856152196049036857936954081446132150626684307908194517071903714241668681497643742675272983168770596693210767092211103342491883690065662782353649544534398707272183024542849713938177084501462265057924018891598061607102599093678663186881042206400237507915363619284322683652003589837456435667678914693936250333086973602463279361427608380207242825136867377842124133667747572297956413400373657301803004030297146369571745467436416674867207437647733872491144994241384057812104878020973659310935168210957435107630822143139414382426024973859160611450236562626614348481989795103470738735276037123650489395716049552909544868816487359005443511622825574494110752103025334607810377288536737779932486217614081352081893806469242268647191810436424269315455413605849049184423085763189978868616104659901187884778386472302521666674690157224024370146875584002340330827151320375784701887834053373848227120136144612038702530996632369229678855439353320110296042400288452151106731744134922446859571804104924350322605932688791328686619481111698346060883899962046821668225850863409234976368928375728944157272792756295406142677671913876714546050837056586567854558356343203786318706332459619350347174611525815795515263696154838579694598425467200096388584647919123497104664237107206623585947318718960489920376165561088988009871662141088924113080773606772291927073008909024648890819601209126776842052003414978122149348200665754995782197360170410582210073316119752319308506771531620550175404493853223382548400651260396983229890108416785899881780201190283503073993386485567369703661553914165160705967746245871817695703530204562027011757102388908813132025937132833154302033311539397034318912314890257406641415791139021308801052280736901604928890591626409758204685809534403108617311858938234263877475147498197395749860999384793716784653486838637979781191948089639995277984289499784957612229973878987447863106947589524467007884477922484262335052534751413678794667280990362353705367899492536725723065852256413433306635934444606298395456306811561262662412942050078024720012267323659064799493450729881551995303522619979956679518544961654741538540326441040538096637761819072466664571019762932217504050432899640847198217189204949365644459367762023809383002560632886733322133279105367837591997198768854969866954623501215033994394899205267312565747956097595348045975007602524548622367071309576201883407202170050157001046604287808938363955832006189272239369797436550306341545452812334503600132239616336463236336291218292762235199643516920338680139092982827813417244055028755520088143832646848473591625337899339744148528012173108209777002841843880098696912878998771866911716392224419065407966152318938969239439280446918729707327199464925997084882608377598466613053131694510968296388150045549925263637893499902914873551231705203863242120849894262643845098927003274226783009385992910273200589775763944831688147174065044471893344519453947672133649841821316707613621100184085580033114033148523718201897060462049818688601161795679976524892967505432826527511237633246340367375970827098497145978022517000189114786694500585952890911430532754533870079811922026583809112058150581152391542168542649727503880886132954522399521833781042753381272894634991965514898404108410573281083148464667738419009436073282609368916350650465674695205485984720904547897999405242097247318310402234674736635467809376426758578185856035775311643098570066494633662209846534750550304681098154669287645727638634848986872047591980985157060383394932109895845351572986063476529639378493793844354961489035662137096266962388996386255168772309857327196408591793939064550922186859033677516882216115148199614943516097815515957972420085891746519447795077020284591701776137269396673929903255966663662585443343158004696776991169152279719772066305629575291123688571809089303699249704995281184427997531198277652924095264614889627270717903761486720190201350454254667472577208239742145658220907797477444931192502774002836241892274425411676187938026596340452418770115863819065867367185311705493307595238338022326548986556020958065882484251106838929666001562838348352821406513425224039590133564431698776864922171630164046282447159414387030055763730546908522620144299220868698219761450087203262718463164519000979943048851457494329485356950235257099721101268402830519524885983385639904498834491951245989528703214082039956732022751534626314375801762825020764812510248011192162945847361974517516877580608841305225452752348792158627852243422165845059823326294358620733491224608040701381088095731214206548205996787969582434319141621440655930788155926742070408238697635498737287244718327107993470136109666960699800954252474069206397380559881827809576829851393189525998773035720495698486679284166495215805461788011632313349714279722307959271578761747413004033569888868723960164038962268168163153401424543608826388530410691545363065262245773370041776353115946415726977658215154585473996995426905041328393037596621400042903961319008212700665106598522112532067762503195146798744226250886525562050206472747645810689967181418525156797705058990882941010554652389416749652928424048118608879948714829202757514127277388899511189183020272855791364863315600908302525606838915448745532045303569662118979935402964536344965240204403603090269210190793822409401901519219226704598789132385494472002517975126849926294880540269421502639466142086275558898854252283223979462152759995112899503872805908631700211005834600176876662530262927406792735015760171725549971691336041430145088648803413317801811414782752201239690777371533013983947606844635446471415408885388882505074266510212584403312894197136974105488119447269253847218536971364138533615184679162273713336715848405433309615072050210372751264758167193084271973550342319067439069051550511882835936047266265990345525496183386858690471378415753323162099720692431636129641199353345257039189957676612337006046563289185589454843185565832698553717696910598616371483126668535815045710311890933653195291993913657828483299807885249138973732910986312124702502216119821362102904761860232448224229511588544302754082629150432720152961410494618348214544386499153248999194651439035015055190556318453668323319323773249663366396628493675128063005009152977869112838037838740529809859835310655407125821101528222620076797464979784449116764607609811929497379955630711586147277929084128792141235936422556035478108553408121257740314556186764573865577898762745457879518083870971646963318310474340011526663693484019630470906426547776472027269213708909225195274507983769557259286441908275310927718885458205398157437294591664593454383078325785731719905110545719258157708295054965031579924010797890198863537557734526737573629046175051111292157845499368417348281362949482681069989271600850712697789064232890799915279196424835313796093721182235129890179286492559229030600242495558139355896290824514306205734201537203596363303548960783286455956843268055868010251469655611664581655983023664730124627126459684369834267194862128206861378338092902045506198048275040908387412482974233365571903377297480376777244221481953571299275652101487934529925327026986548598683405296617489693952322939535584460013547686667905678042423454934550210845015548213235771233532736818305355633112545556283464006144071865745188198127151018337921191695289769033551789093311979184539963771311393621433088674965496756156476936437712167004534525918771435233123504246798806534756527955209912872890782413251744117483044979013449924651918946671859578033049370210677132534726595754026245713004096290433528106804688424941948536206982574624677038074791518481291874039289881013721263221320540011520711664088665974974493412047195908752247550343196407829288025160138926883054899196175143436102878912615464387309203040412765289755793199145578579996040846418474411303145867643093085299123691702443430038599251208221773210188179131145072893407254762154984148303534378968733587942866225950450740554405049623693046836172287418089991728001581237895696128929800149556546396314222935608187130419167906036436595306270408298143073585433005652224322923857914720201741286988383617236193021473010196829939532181492411213477888904971403436471010427507351618415460560159628624637068051951850395156272389623801410502157949827735841362939303840842422651802387682917721425364791733142078261085626721415013438084661678298113862647453701025836019076523947587235901211697673915604442594282874650562271725339770363793500599323628852084428305865214277406788985295628735147911638206339989203397105576144169909411803780035109752945253344547793336824542159874072928584658652711289046910506708858616814850993338376255643356245226075171845860020658742015358532228051156993205998461049281557085465795070976363843761246132021647822486762257039942709905375241152215754217384165982715667890936931097411701433178606530191503077975685728585441231411406139555261662458353968188712660279844431547135650527663120451696344110329729305583720469042192983791682454788230416939029307000827859263670141632715295924523625166703021745242986270555809250861857145565865126238262471226058965478374438770755711946173735351421203144465023136281152619040289269795574085826475607951555091455109807980426294870735827172928463474726141286586100840161359839837367419691635023261828757334366966656460920923231228927198149049333687110421236984674421776533729596748824849859646327653175957992565226070160443400784873402469964787849988098814525260255627901408105467708653727932292616739387934629915516859592682824967154049104148486622884804328010542660318922131335592372060977818199717311685021833148470768930654059808609555817517723491040292967978724723283829709772278041180819553790963827384398881687811258829882206359815043648144264718773499791762329926143920679384560185843918601802192650312621792221625945727981971319048095833085756351082317146488414807441738164262329692757407398377470833162118637566423095526900569533687217359171189801998525599667345579527323266285840349864425228687667147599262892373329498780189781389001035837777365982676940529153749930224485890051846104517481975025862195473497317473980490055864137077155247413722211784803430967617043277490684545956436447994890028019781960909283168071864348540486171496145685868729974238775232559261192735543038358048986255241812091490887738534612352415787243210030146302388025950806163049881567132686513190084795825102858699394647876402331384628987021019965670355534443048909211502960982386964825944550840558844487409167051583906004457775668640033468163980469735328230288536480508799081057941614936072384762985207313699748600149485803188673190461553983039827335613993748764938027452941746386751970495867106211192835658493981534595091915245791112477969901619112751857702972691142285550577772685639192593781238749307727354016157083845082143143286940106054064329248457555018832797291637347898150868592284333297135276886504771141147431279492062890650350599414462056334701824538670877213677295208115870136986684371034125154254931124066796668504026878832560568683584953204323424647830076093583116329623827098044624086584197498821672362062703466961303262102559066105211814718002049961039253138002159598124177238446252801847964294738504954563499617242028169206317033901015539912486266896277867153709887121380593681077224410503804240806405702262185089488917074837671662567140106445659196294897677284877455829105239048982684223007939515509789456029688704578392840834110683637080313445250101350201041865528318764590432454427000965856439671612267122651933215908372523720183385804624956380454542093089808687918910187745559023166793263632454986955883617841212330867808784468411497211371324947898507526471712958757616041392056486386226485508623739784112475677269910605778732055852070694159976943745172891282991018967392403938627199887101863199298293334631027999596040941343073846018632472253466340769992754772995091009405966087272021340583417389404595165569137615983639952838692780579858639657739423690690139714252728566673206137198737726131242751808381295978976048880095127131320281799036073203776928943747700891462279329028876173947053080464977745403994265386552535127763558185639336982643156069205271505793386417811538591064403179241443412205555800877303092749376444627143300239211336193856894705554366017521792895926745696267344582122466963251605838074299247540568067684367593364186766857728700082471897085309523635779467529913060881716860771856046693872401485759670540646175047344947363934139402055400517653638025255552041431437422880356295661600482131883698447523580852156906687358284887144569402921856937128438723459786703835044521689220410305689346336705205221346473588126422025040069917934617189647239316007360872803262586935990579461113954579573301898073712894804186562981514250516615489819436817411865697037298845961727847356977931904317943606683488580605707242438870217604657986244879513347087965949055819325500462314545622846459092143691120799465556879176033234534593401797999965208399465000158254538304092810697585474335498878214358884988257672871417647603338252458812178628775326461272552161171367228129513213229463688779126515195370025042954425494667597913313806648836511505217583236283336876274746276563380513408003900756534264101378536324298764009124636952600726648746094892819400055760184113428726203222000381497632127405386715444094569071058138217556063986233709339576318820701622976091587206536498509302485786850551921432403227425360014269468787740978225593114503499963165856248300164232437554209282009266826980176795154100207652316936862540626851523850769614393125127944271461476314629688333178784425765851651499063188988809856226842714011196740609061233329692170655222326920733259264325453628544321333204605142117326131134488820513040714113631925833353523702023119937809601853241111675783679624222735736257291170309009895123338568485782252866600471842622354601445207897678579637822836125650727467035781564930213874578447074782427731554004524351434959622653382247349388423373348148539569727292093199995486500297155741233544362530896151824756862659984037113291138998697493548296284628051656121412204248308858592602352240357517542700265877517511209685282661532908812083202069173125892554359786894136085805542231349765796216132947115814438241836963835467973934664804917965771967277020248353801348963117158112436395964769803897129595729118595561266598022055763167315134282817706274977173047023759079070449326630639025404347941477096829336341065139086380675757572819531570228753959848093571822349967376395278142474690774045699582108049646516935262655713530022828686667913837656045049191864489363707567482510403227167902172267551917209250876376007154983713405243298240194817524368890193962700823185799400986545705656733388625387589704108055338954206572693376779325426558042625344833959236466070000394302731848281215623756520372071494980715640614600236040836671723564552978912194900078248326706430489836624481359209287213945929246798111097608411126153896369672209810585103826230572711529256831812124843642975911303217246943988441408189205571368613318297166071245285282051377267255512981791632331626013268526827569003523890159433184252620868749242831472618336951782926822020674975792410190205656952180506374861033830261248816769186528900943773116349707130859667702161999210470617726513530881002030018362438613573861455972984711569462590846959337859328504264288442176711934992166437071208924280816510268864799009346237374923187938315052590400118044354583962164720320441507693883646206925820051611206094924188156511117115574406253902030396508514536280123416324252172117424827608128657532006204211514928487179249675898537352324942231041451612193789632143983511805623301643858845765053816718891289829251954417001725870971966379267853874405027762849767859117451125262848262207328305207655984962186379434825639299256260754996368048277267938143077394888356064460196051225532163386232352256474034181014823636776795833353192233820797240584418227159393906286632995382043302047472841897020124562980074805279946714086538464787079582289080510444217019568202734229627762860909123756393059187849000994722925384850296289726093782748123241716830789751408548197497663636339184864028082899448661587131033533440739850505662945558116094241854350758166407051763772098133023412485981749750676540035810716585438654755508871577587228588136105456542589954540425358799059776666608346823003626981640427656220454045472692300229794583038752202933681839692235060947037535769661438928109041381178889030643751703209711567138645017678527658422449097989577151540572926483199758181372709309204472978995693904465938180046201950674292359124296770650021489214467293756150674240816186455119086668264121118187418879229495716670418479748446097417055473345298290838937138150103246816213754908393961104164193301941292769788084132219355398467556937383394633532308696313237890590978849144158767702494560667565104841701551794383065221874468140715163490095251669526107936477352659083451415859631924199741012747788962723143537998355728921571742489349736798552459817660909435559284920203374886077125335927566570092454817789391673526446646167001137753830558998063520727833736243983197811937288962156124548967086103880437541047359803405866625695316197578217421849415797807220736584677481196144220058492517153508224493738449488756146378317547203710611827623364598581438781679010328529249121905683783782055032542906447054498106024158915425918668639410429697836875607009837436955060099440859339998825407377347019372169921235126772171616066471882909100012661297316622729773060942455337049491972303780377459460022706698785518831709600884072525186353855204869321185684064715997291343163647750133696736036757776253054156125827985019079554726974310083059555294542361882938087354188720952377470835658151507409664788347946247351674857916321071982059817899237035828485109777460761121730214331886918257845433787900382804078071836212173637561519737606246822385415730754156374299781793658342234977035987821549012802448278969440153708609832046021347961512864501600806316274030338696197870428885836057078007158867755590940542901015158820606504030678240979003972525405852801885151124512784126540514382177893160566726220859496035508638681892307624830500821453834971620739033009346858939520369640992058445555979181498288058892255409398993123478139422905735395164930313043741791137160574057228675995703424299080854851140016981339629053886611352278031377813183094481949349015295838291457573864741326848277162831393734564320422559501785296949167493596985977185565176114421371257346813815786251620757441001331998003523906322706371370564153890722317759829464482668795907720406687953662076528906053074439915983911223508850874907097823632834960495743189396761569166510216709147402765693842972346082793490145084869638171125458272130386318171171432653626905719634053612961827899104011570894700029121438377509283253049325426419220044276439654516178959044666448763623905149082951578488713482111348718736169106688013856967208490734381389859207881833158729682744121437973074303864213553856343733886814035086075710165887003759600799693166349502703475532788947274677684304632360399627813565877016213586297657270184977368202622290105688068836118150096977937049019338921264541169417196447596228803914722488228554718711580866023639271540248233805755715195582059893574301629380350871387477232769903580444819284767573903443943398833712321218547928281504525736808853287766415568413208118766496289242089193828559054346009287186215658671564242611917326978059369847185560329605237713714293847611906807986639849780345462983934716504709850351707805792277021768851364403594154806900288075962701265655708108345953502819323394178117345767268424848677419225723079987162657669320713796258376393935879777460317424671177240404176854820504585679530200505955008030281204007027390070461621590215632393722532453004851297316450769440646934879273585482086623715458687829869859472889456485414252027765394797881071245921042819477455927096224791283127011699761336831094277080643297188114510923002124574402795172213889409471230320481396393332051864969622737343330590659245517138062351957975612301368280177791598383335937188581769059048552958757437358412257205884990125926770017443713765787676392799440404969259988806875026399862025604576791454875925903429172861146923840899334659869150587660229960213801890631274922769899827389368624251516801103800352474779642544776108798924185562561215524588995054335609257846285580382029825708773686186271499929269155995864716725777393812149518269592983996350427274415602259621834282938778334650309232014638605287132696563402055740996306262408337296228694748981477555870881979427533285562254630318936181581754663550989720888481282425526965678742208228669252061843321494871244433666049305671981669081751177603751567757658064938882921258609776054742974721831323505252514077528895837835540773442882685311890136211157011653133534222474044687979202056452893597562467630232163034863846636445164154715619443387307274386625121630494064164283480528695624586237160502911920131461331168119926076267587725229760427843863802302364874589156938275553292492903839847190983285108196126198916935275352362430102911142326048561146068152571424075899985332483883208586284249041949946324261133909877569913423795866806014393972406507877355316925122150449889303692528989945425896114025398256743465425817996597727877769336542772913502002417420286922678568601276801291669846828266379638102964000833709473075889900903239710392041961530163110873388852345136992562628442285332747183422818728307536906294293438166181959028810222702137635415506387043533797536572372214930137250747820097449795489739576798229639338254767506264723075057898799303084378923221684527592071638061793133653642215814621794285188891998559519774132352963566575108976920328519656078043695035450865506689977147534349659513844712304788261750939547742710525103356015635168116118271684165220472454941755876413629572194501998853921927989678131974025366576663054858950483492298795458357121109576863769502050062509282460373287896524506779363774256030954606807264862389798511875668459025209149324473166250641849058207721536198351282251457965859206164424291249708496171547237150869181116478843072918347702912161078640220331809799549386527500408001241738589518364665694637239251591366736202717627151758925163417885235732699851810603305901316486021498428544190245104252610481288578151218033881410048291964721321773219860774626986037681546484224053141582503289829018182085507188273146596257061658319630986874112759679948465698167230720248877871237553948722992709403202651459548285243249099496079711730006349755529119159143632198632014624381974946153555862696326843186160961897261622722869170466652625282081351091583718760733696384660571540919780377124698477125166578881027377008935311546216960496341331271939237114963847473386926587089452384709392693328017427123384995558002603720486720265437138869677731030179428219577548372916490948038459821062120306216353104440774452423390375917463153056434067993382550154010473622057912545350607325328733522655574466142455673952233941635786064819205752210312774504131817245903695805535241558085297980594601049270768948885354518571146592235578458936721994119624222655588135142404165896177221085448541744212265448745107011916163201806967032551830757812755862736387156205187487474633986351051918002636077795016352611139365488342225331972564477775505814831267421241584770817287930783436755498951830223039623920670085544008184870635166760699301580916544750542525114909883875012783714826161035606561635789033260381910728836713752379087337333301401345396335365702602240348232109132808120303259811889018423361068376461132002147485957868389603940053888894513816404989456993076073941945803288827505421280261173563217680052814031818476403670954099133736016694200031275857612317493050694917598750154845717198602262368324747199882083188071543185272361949197654980622098863431639731064186461714693251525498003622132154376397149424604411600165220768231006044972225328261120188152611918803789909800776318647195421629917485387004612032027740384297008986515451594637153785745986857711165084555602309478940022165234359095907190091272681254762763789932810151344536796451940560215807034896766853791874176061616779544227025848787637728380017175056507078223848365043120411891066938186704997810461271456141718441304532851479933995960341499210579146014534203551148390380087064211557077251253465750439491898106618181024064663659301933315978431035578305157203144970722204803339220255447081733915943523549344996862830791161810279447742088765906222824501309189548748147207494623361640830558052143211781089589462242408335166357368079122955446202201456264641280665009652913078819684243847522840606178574449339473268272848507465496917162686519400063727428173160744230397942370270241923451527422622951013998046430778082679477870748517899638314240425904027942755811241462076346899603123897791887655768310016151533862911175009323410190343742090992385977197064788464828214209595121718459219209772881993306643173047366329589993338586979623264353819919664134920252732924894121104763789951598136641370065726887132930421818870795690412447784787093517706218036566207540281691481319188831143592976231676235660524366884973720062985136565872961991962914851410695518311809597645049610765303011390073704617417362216201291868378741404985191163712358070983123876128661194479374299894287500390975088066805273658642296792394811663403672747825219616181869745578321795474397447381961647749500937402328453163359383229391882359709321854283171591504997560481710894596756947375046013411591057815109400265999470177625576374629975364155293319676889701957799416388592379163248500058152461556432719035184853861087924645983776673047008933918158811724075138580942256643728215272223474073647705668402966845464978533232007487594858267252338297745018601813433778181352173544328449652742430639914182623241151441649977922399574381207041477962785860552046618719267906562485157731168571652350277215410336968208143068265818347694683301014754591441135264042557486471176349454887756809728999565287337625698016140061825539655127781552312067281875566761449256151138223295993625936883857336736211868697082126487391468305747299502802268819103105606763605574587156541716192577319452451080963880289079030007891299815205081200229944903266993988380088879695603734880067580816834433888963890534251818499372054225123249965740302434246742078539825482150641806266452251981196019121639121835513843523618974059019526611630389721075331845231860033240896360995472863640699453170228155683593902949795441796865541380503589513237642606027173615602801148267184979890298960971525403443742202183067855439349271222709155410780726514198465902271128572739538663730062822156931934167098850739423354987725752830434048836998802147946698734238081292002958304925450698484496287449813357854662137806661253110385231413151409617794864373272762185111534684401718924901797675093253642007697228785524616342911292348778494941590876270445258661332788328197893602456326744501610960023667059759393890071673829806583330569526245977052377029845180573465065310307762730244639404961210191390632790301002644224986987078849159268469173851368320900198986548351829498242472455361302981545101253799556762655736781858928956609503417765922980036118732459490298046311922981675982153553789364964405922431679629738041017279267224392670969801980220882643116735318828587800643744591200111786473523498990888817895494817298878735028580040920417443595704299700039945022467895647033321540225431051641654976120838531956470034415131377850681954639927511343011821181631030800559232051093021388256811423162680192413246920854199091970404143739357099026893502033817391566246010348367706991404140208492926846969473518580195991569598310690368698306280622660132461734820807286272072002777739806262093352771114165343757222100707937388244991931680721996811866306670231881542526582792123496223419475584142993006417233501494276464295474864443685172513060392319414407100854730474288645917171785743980582123360807803698758064202270940489785394571587816720513493025448317852067525075780615887798896335334305097484669450676133997000730117031897291990201796202277514440847004603217149496898530603506508729108453596157574477268161416696205015177687232583820549717581422483080253119939477286462431682320552778681749740179954192459583875261878033578231865270275875646049853024842432970606363575079289961273239429176432314822147457080664049934623000749877817778041070616028645968311465604024336286362198115976044765786446365735217992230557884900125185986494878143594579354304856571575981272796780452533994775408618057025974710916061597166162001561032872969706553564730495282283535924218818139609886870165689405096461373328911073134998898149716838233060048210709593751335094312471351244896812929191492499165261332175620350601226229007294773133867602650971837266667471914305686454693064732807710472841838486722457679975812924838401745950449632493833642652674773871957265369992401275223625995092478001962029436827341540532892385076091161808458285500857510115797998474824075940240567508383131745854649321369717816599325898364575836509247836508139023186045030578262546561595532539555076977519705669833553346794281491571269009365624021333879318299601607189706625480195467747460356870001036796632679882555466834666836029085599901562756074280363183968945878541303570052572648805384288559729639993986315568281623547146896821541864313195997060011030638174649918087734349509159580515207039008610345632258123393304446990471943283327211359412806721305726679895152635571754792438105467749501643613672222076044450056949324367130556473667538040045140119942099127784584644256550123620278159809692113976551410707303269377288258014812651448916182843728907721264423162972781701892471538370161588946854836132035808081855838618192218375246694774021622121658175841639068381393548639624098738557532693892181572390416662945955637384508095765241218756371934320468334768726830860765200650636399170213782167152443311842624899683716540994306288771275491432173176861217029261499686540102834441003553333126363049160535624457767316944038691108389564903953622818010688634158773227746587576033388588629015725977123236304637026893773762434646830586496753162895861872857080901385987776488367130407654215827792827096155646189027866268218974271596174058060122623623700971187555883665502668065301122812366560860266006722325784817615713717144407057741134016735723881179336497454953008516081434000199827082307822164704566047551640693511956483590571838086753400645449702095135285555484234954768347149802317581621268852447013251466466385538174775485247202702743180560254913168079438268844581695367764800437515870203227833839165574690591181443281417839530732164427889780766954435133993719472798450670721587918290398662218623715767578405999755543156818128199365537296847455119450394790864225016768617480233465594175660475286809038210302534275842330942854906386160565304653535874254682356673441923442957526396590043904763950367272465000636538667336053170846244311863626669443238140259427488584159219073503675855811589441710625196287559871194324591917075276720087518042772920039973539851054464030488947358435312436950100018605618927755230738163109113649821596135708500417360549606868264510411579658459577899760507362226515766947560535647501627377115809665585680502505680533201687647593358231221806288843734130665733858074112920599725664909289440966716818199007361532120860832522594088020375039614640728414078328022475596178695485530601357897187367879004405753773416649769050879226530564212534933217666103191400900783750637951917385417903228954592383052396801813839780682315530671556302512961486764677682045684052770829796897427253886051629596600989793985256086743748793640898386786826293980596912832644343496686283384001793805978051697587911785234741559686286045142053743903365545140828574410739821128901941838490024106795703558939393000115336595157919919315629277254724931636535827559710469833765733197214146628204076162226254243439926883915467634724583919010034654922586651252041629553953174471277422184353829152188523644538914045826349184619119588685882031946067954417292341545357431625012194888177570453973906885864417078794224395737553329081467637364461630989325220980718084227836531302684997607408222950987325924089760105462704655083879189504664722292574134403008071870587384305105348806013798209388288230205576821181724005630438266011564097947824346562807831822063244030635793607003663900236076788109172960065289513936063164748503705395424157026396822738679073557800128253357026291882657342651307006600587939467946520794389036228725979100000135782976967731674263081837467460873600154997838975188381782502525080445747702462594991253155210559074044399262647051958757225797877118576966579059120429738156673962684528569705362724433808667800514777017434780438554435764550606554405083588160036137989177148271837025578094913550362413297898629866141357059054858350929917728880682228261006533826253554556631951535841018363195058350873361674081126114108379388186660957157478145864382352919301442358965275149071513944083036020046678808085228339335451872962228383923565623984964788246074499545790505711267506097467040257991528721501780752362968241789997991785520408460738230050353401179215225829309731730688052295244949666148682626105214286648954994329055572141744954281672816633050368373312167834304253494049623954345979597945523273593940690411183995441138437849153599038978740367121207789153419229773915181755893615219569379673113985938188848489962128632563770825839728909820376655293730436780665105015044322531457203969133722938598734250664933439755685310289039716494156358801404039221935256805102232812353190528048187867977274461781290332005996416412308404302846285084608012377692089210171632001911858795783847132309336924153450443714068215257894273587712312744677803818569439952912714205815063696061563717365890577134239629389196369511924081172708470634534274317836535804670529833976895010766890080077512505425107309261380518186252511318916239436176532323847119716122905900867253250923116422914059575710175976325568253734258249441434018466513566037930774172174969171879954245345017905488927084374580274444811093931627595391867881322474426512077839926070661434937280964769276402143873781591210694456784536893030193562250981112979537126653506030014766074234151203650938490259973194372508880026243805379868692335987245627113331145967323634160714847801223027884472570544648874618399864889379308598001420324320757270255633613600734462298739673060932447834567368828572400103142663487467467524030973443861340335317696195811788829114127247289871387494807528692597480506416350065097709372744367936113872940330902571439459965684265447249849933919743486931525000203227940057015266580907076210460047980017636812985758120570345656435959155596873314469753929351240792384638164380896885061512889476271394934638362478411627767024398116255879157142128120202872033094635059882223005427220448867757818411243085067760789880418263073390516589569264470553700564176143908459927544704014134938742201504298676114960382149685595694428726130916711414635937986782778130851432883734091142623659948004896883908936694717413904169424442103483748042190524855040603432512670676497978020029660168367188800151233327965724914180104545137242603841128291843338215132135166792703667268579864908317510683190195032693614380036036776421020807259390909728408192008709896109361436909595103873240410541819533587832562777941711933975820648495222064243890248945486360041884331167600605938073059074270586862412462408009784776316004277920487116977881950426362384099709725138001938494669264920890369206974406416509352656707413633510634240878202124220782410320368805371558561678056190034331357839091319232449255735941553215557659873192169727948294295255286788912388718476191935580900949017531178601146453629529777132189211235968670428028935297877180140532578360220404390463783336825853520286233996837553437202992324650363291122384276127136424135992458734858312204320471263885224839796805456635226282041534782398643178066780051126247558190230280769903149638663125683307143419689430148387494916041413536665668593236714562348177540109033211217574751243790896899402065051161708749853102548899912612901925457153004219610741673648396559842258802670074737188201340423948094198601309054651568508373252240324894268708296404863099193493943479640066975925026580855517348393189622898578498807695764996632928362593391336575633287419947823833087974509680908885741168506648751758829759259968033162586320705630718738201200002518167743762632659832002987795211878959950020512385107900098267502668285264924344562612526739351954574679106276270778942122535198311437239045170170050794448093830298476314032709797046316820550421885854610880582713410709637678332844508643019926010591427487968804774883848693189128883014319862952875806001840156660138999463364360725360075295637779879807907158076769648252925056616697125551955380256431054163569176259855136356829145350742966235573577707182538756397594758448837817195711451179239705075134489028508058381308846983806598530353748766435954805601353285040612301711715499727035074895762951534253920036473233653787503600312191861843159903891189375586220919190568500478233502209757764840425134781096273357916192955177316480202780549577432520811789564792464713416868482069872309756443284908448604999689547446324386505516405892212030766743901241379647605064873561975889180617996413872923012510552032876772924278420898403467909936726965958481004942893923719409683104438138545368636940149736495410624649405824216129051591035033991986357285815165341067899181833674176299891683349811392276009167334106016905743891897622139783962387416870901770056104624777023545213851323834393899488024037737371096347864525707285041001588597906310026834291252511882912989136169174366974093468230671228686930415038275226863309882232062382911425376407182638573693965402412366340468634222917800846721633590614225039608518698164867188802054581479098045166412980261587025148707342901611837184998044559126960046764823459570517573085603854581443093837647999978025499611354113781289490302562251764125559440506513105056660300289769250920990697584622965400855157505826147984850426781068725102252697365251236927550577373555769015821443898583370106110104224585198571916919646202944609603300351164963686143218108480381400289372223727611568733386220677795486614851087333989350223152678072020601059351159587833263179395048547465090573067441237005508825749677726918193405655607471762458967640347857094568160021339224453507925563768764671027448779850482013262957761093955608799417194051346567018502930490287721499228875768527151303974131431101755693614009842208634417990778129849401319005423074033757875115482192383536171098341119948452702030705275946235063207504698775667703057596412110850181044362439117188720677459830211743496977587670541999383183243888617357024845099056392062401663690460132755388810334290858908800518332719408283677070412127852674898124436355794156454877086998078437571482263184553195676792415508208156104855591245722087926702230960115756046866198647535360996015082468379785781777603317448079976817234171376178722303612245105933156062997958013478422503541372809079502889202046964566587103294399601202984323071516649474453586954475433968739072856944879214380032440631584135033785379886166726349476861597219952965347332280970009619006829497414533907909956384003631126113350255842053790611592266191771913157635848289442466052215368529504086501530447557895085545622621057017705804313487726084517624790484250370464091153699616291201086898768257848690794749593050288036943397836705589004496802424658189015960704823238953477223485518981145561409096679400496743375764949142106931378139446216954194003510398033829566937279640842188985221112927288044622906872412345428332363970560849489401473530498352938120026339385031769287684377329808096735330886424191737797438381327890152882658058761483212935293928423491603127100735171212091764705663629460156965394319760573516929588552334484411094550806880485888964481032953894991150692921096805339352706059986257431791454177375631597788559960217865054586353769143456065701489421116275547031350755414307016596291044785441095167804613665518297819230946696724364700284333726177631687928787184394082860383482143113968544098805875108155446406684012153222084366255473153898741491137782185144151557519098139857942682083295080061880240743405026161294261287705580655464961073433024291829498375336430076380405113766838214649051149032974030474739762867854875924227254682108644931966478183771979568387069617383350745003202232218366680118830446617062366368625890844045142365719892178576041215691108538113289663840821616512416607880789062995421490379517372172327513985281554312726760751419643841749282324406881767988129663109018489826993021672214423720203300936599698520967545680479350133994583710816940763109933965641618175839833156019278937642416855665431057596437571725703541942502153451720186925332528777602120103248149244853887615703088104333123239150324873472826210660347159621310166199631201509112184877821833597652412748511580607781165271048570628619532772015018803559584958118330336375731794537441242403710719300274468221175606453687716035721468923830409082263026613284216124122910448740808779192556697448123358350826059149313271893813028923035607321084425070104651304410725603072419357691678814347433007634530510989862923732752667899292326016430956234794379369870621230640904282024510024063604384302717771357879115111706052194527656186597999749765154723433229617321825425072133062393858085265578526648889038053176505685754177177836671026971898719944894902056973250316985488955437624050136457700225558491868727065048964510841955762528569662888731215906293515243198327569264164370644026542022741031546911655675200098208489802897314229718469646030456221048521022536295000214578868581753447497236608272000112829309826638981981034942147882450066111326281426420536255254824170643875970372778404658534177680884524323768595039641895843684089201607139637763053028519071831538787260525946883655287815285795702938063915409373608051996263032913236602561958045779360565124981415028572584807626860637764554800518729648959080155125027954754359999801985179719338133782992995238892369248740417996305915952839405439551002351516185308099041321827615155028136553077441128078228076751057218908216351636524183001295574863764597376550381328943653934618752061895026819690308578400589612794553918884135529539422162720122006778646449222751869985701147326772480010756101718473333059228570007171130769267700148296991389076622466338401130324459473248193127656981781147970873966062220463930428512622228459258680698151514335193301043245301109947773672206903607597678275382403642492556177957779564226389748545407969080621373070272473528576891918562468173792175444367486613143279762428844689933259292438156764677201736984616611333752428137966391274977747543624343033205486128532833202605396594388080497904652231744138647528006549550592514606565459133608750067252032955477946890576425925618259669078849643066674729323997568576195653394883918223508664115077217444633081166957857366044987235386512829790210189349019997059846120970843171027727622164241141050041044914946193554368189533354030945667269547861231973016744264819635340884637960777497894063717457549089344486419419543637385344380221432072037940836500811166933479608471207992379879843381177893766221358706183569106485368294015052079319826891531952551862369889824451482307129574613812161272634328154120649134948597846218013122577288888255347517375009272524053985755068115746624277961039406455090426414278016027261641559945279720909665936061115778360643141862811922945702197745574210778000448867403989050844714941029806584225735114524440559301287245365208861126398711168016759740334599142214741593094103972508385330561149049043479366537342816968877654951162766272325461006086390743156169354757557304454310217689569975990798949652583474129155786210237059011094715090886685317695884692320685816437333326438838751410892881837946693322164958905446022038246315344897532711456582531179080462790243635210146015052181551377811334168858853109985024866759488165396397466213516056358492640596357569318201497925074929699958553263928086212669276116426737348611915382550278866052387886823757402923277653829326234497616949174064919655194452003567577974010726557088816646728269817479884095342995817669740380531913060599556237451656148520935137454252553309673609894881193417678086077209275485328308508557203001462262363386635084708520124765011472393466247762746424656938465272585197406489572337458919740012403399748455976899505154113239166539950198282124770927984311854308510862129404469478112762778063848256742750410111068346383253029995989004469405454628946065093056964475915469247927356068910516747143190209604604986389413739454245386599380249239781311762493460903426336902149056293162034570824075491512475247799271747088686874897499745156265919691541246496829450157418841418328111664612482620560218435517848503546273172413103222534939398226019539781442274839894725389573940809598588240132926396519827320315559668971045298514123051089833748141287647965508202713525268721260864343657313132573169712709174115934924526826055758552596106903657002542303086120340500984934225256450987725454972506541972471065631655900105499331169854874582599735644934401544515725901078866802188711771166744795962853013671567748192632577688212359738457653429800934252635040605399736992333000494067765844457645234853116173346798107836453423492072808687119711611299957745755357507058314251800306193701280858028875710087282538199894706625073200470720912822139665086151936849566129800736398154263947361487414110164728512262056081454334657037664275432485743660410896078907397211849316743547514771290250692051609436573104420667536557373938791142132769174774487468069599283831463210530259884178755229796856166784028757785351561470999867238841335837843180297294024747397866842076971139974339548640761838576034465440417546601858188704719769676150577456294631150156732375971607341395831309713034272793243584072008405766027738748969179183167634609284580668313902166744925875437198217916200589968347241968281169570382796731674469865454643954780911580119168669713291347462565036095675323420739851870050626489646068257889657477997345607981092303424372352874674781377581479632616464324053330770162764095092015235284755510530517805271560960056185014161475734984786919456095550932456925781417789299307322589709046715473772266949007694897583643604298186101186543205220479386078940564257944064728854358252503776787048468585213620782197160862999543302004184700605160164909484290017179072795447305476428501455781470935483416278699588500793471894319637378899433341289354021003745812524381420622376454960639995095879066471260321490955171114766877231770691207525708224104392937645776054504720921441121135550786571432085969665889034523938940852427542088428647098657072972235349647219525240000934586748889305248575866919245685611581449396853282942702137544439927885468097073371105119220667722404802157002479476069983692598728866023291157526337569568382801143727741889782001918032611391522439522885558678108905614429872839889948612098474468487512414292448567667411507932651891598250478791283911274262547868386372806885586845778056373559275024166091861705884556090827942227510962191162818044258203284626433152269796787094379901122282339567936660559293298091344418705290433123482287526624271733437572742937520498670922525675745028228698744134916558353037579325909150478398857281141000774581891076342028828130348337746069790273773175264958763625432057540361021710807031749512548921165494684899138775262668580216788839940030705833691730782473367302641774596593488370211587448882014542529210380109261585692722796902750986305674619442482865222836937365280260602059647586257838745874866030933103060324100809369311001567015810749254528889652954964035601273097297641772462046296324872465911473628232561432255112608595589008594569424004887751364704910428996572961645232411296646632237391738174443145688546742969914759390641415491250630498567111761017170401311644418478357268761095439560993562228754838120576008320503444744094166416975091825576603417870416241156028635888324425262295738963300478809009151900169724654751122207880664112936658931715907744440589490085564226644492722738997220747202560133981740904532668159076997003284781231374337778229324944225562058107000180027580618884537195394466298545134484335581650836082069431142888358839521877908715448458469864185750692343028942219272876460972142235587584284790110588434049663926545272759353288438752955983252665644377659669471522876290520599300864193909556257318036194044304284085999677762893110901109755309559661066961946943327659705919296823274354687272491259282500870617814599840940279865881707321404102010478818864111360128926937647817530487325894591166256757332781958290410453372777821115675744428761112232805621260305615067892560455132350327997399694173644278990755266278280686007332928404262430578749198237002794270610374686629232511207243327822808634534949674353382245240952711222958468660810517957429913572650470040863221902271905715408140421496541465159502997383919512611638668856163274342419502260632032655186413095442523043344923440254615801102690556406734819136680874197533197844161299567582630089760150113820793173331776752846333031434341018686236584414079382903333085242677500667435284454621989196175383636800458195189538141331378711128398453785758136191218392925138966336307209101663491048153720102192099747106613750306715605095959006310669248362374342918600165020188274282488353565285795080982122218121632652141006865982643621393819994693975517308982982151515360466337748792318024497024376208793423752584283574526409912090744163743051318115838233554883806804878828743571502308413221298013717467983053492319937434733006353709937062145712424686255164963348544706257438622892628690252082497668573259022952144713317771059438632308086452001134250755073211273026121360084942826337449215076082435154203899398832130702165569945554552176352047593682485103102355371714354555534331455947298173080087053271806416976918679847471997365774247583558814633273181661757302023191530944511637639963861471065106497551286291803280279139193803697832544804153072696543076402622009049874026391824163922006389258708660644519294605118587180905484787741812593700886086925470818235522493074895226976240375840012962268917846445016037044916144011501027573296444079470419914688859526332512926445021035584729336012519318046530092066970777480983176873410136679498354666739673834459185207469503109933416642030555838405323060143234207449710015417261185025829862389680384775082755005181763051340530895930145932141555161819818770521093931328669952062194726003494118303910765612970802917122518399475154171593178618683386403030757819894128669390003132810167178208943398092427050553570934618757388486873289969409055647704623822024617197152145433348195545183598120975773451040887163263898562053561901626296295711927448832537256156068477746607937382599897296015540352061466723636100688789889441159502371583821736215542449233464891522307125821118647435135991333599883272512952746055149332183472191810792473496722793816861221424779687834115452473805538338857309858216979183201882696513642162632553791832494693529723937570520224619749692176087258847335524026613828560874069790963090314463376512149718193993785076560833753523900476373058569604418088554499263349682807129071270104190485687135836654377067471640770081639977354753329645600401174102187937389583589207449379636628666789838486364251529733567135060179940559542118284806695904177769507530526871809548113820569832887806577420966657626699868555427920018169832226402234705934263658405009469866087534920780965746104503062770485757898230616439028827295847683081828212598781451819992152988077345299758578679124106268422799478798027323678505269774330759498404792202262594012696844882124515034696920205405372536769555806886027656308026571067338832378763698515168891865425632848744008339990260950879601119581525595894370405479998500856436949244060672421095089649819650110034431767612040226454461419375645241264473101327447261736418481641001447177248330323192232049470713656979873607907946902822116422950411817438548701667381367471155256522914713237641724263401120979991185441852122193464621951277000509799654677295838383604212525405927925987762776924271195941723816031067645566654707251918943815327691842698171907052736633362501171113791033751360743429815843970203894776150998510674533279353290607149411990823414277427449109385497946098413848294764113578114079778156376271171546891874771096134981446739734528782699723401180616654138372356787080079141838611469641350978971369726982511541328910052967576464080478480928015486766293058310771301458071579655695528500561451795678596613571182746210304883966053522019729146516760872121373137688553473794142843809748117153817283677004981905071969409908097174003009691140200205775716404697862709945539782714163213095091443935998481119264735181187712066705369988171549320716309181505802758073638383883897585852300367760137351803006219328077224207243045316732866440265595573755166556972738376454124746461858641125864871126079204331333920354052237524817259216148133091251847774645928993888127480187088519432604205730284283626995609026641788062612432237284951202567711810091040589537667176282588523851024530082578349837352383341717576201052871912185528810460593518231569389784833198491028801083814175648004438014991528055178911001213200290224663674607502497661155129215333278137119498958683198828006577239551249044118936128429386190703721962941674851116488181743339037490204995690669794166875884540438366975844978843487465858950554923549770257586985393664833259077751231904275003861966739659410404520076938322005842047606473935158325129772381110186003997746129926242409937619768516429459290971298496007088478305152176481649045445649442077159273457163896726433915434529088980433706872410011284794618949875580029112489629364199589593421644170877485808707940240797740669471293769494226658823311789039856651117688921724991434932999368158974980696302993198630519704848029446077205574454134224499522156156594690869268234259284302129957921018875523089445204777987074758526408331375779681416039057173067864765836428846962577197924703666358874073783127231866258492345338841102131874688878208316718997204280683252145473766261328178993730914110685322600810305043105935758680915482495180392509510420987366401016157414985251919618753066654162921298971473596877015062478289775162291179138834199215661846240558299440738466426640548835893633414347360931382374716751124156456782130864754761937494156567320972572737831987074499305457254310977278993958398098606922918323415652252194776667377550327015211148781504530644004014076012239524461031049583547049800434966171096619368147111926286022641753451103497772721263158934526445379487241372581093463098056268426893967661433097301181454705195452313751919479839396199166805751465879610447250213178042579765213804946495090195851463524350531664356222529378951916880082542394937264930748072094066459238948645712278129395468607339393278143380842510303215796081975275129924047908408831949353167139234080262636803885468709988112204273657488285615547398070146987807996382461920945175616619194267290595120507428264977927136625406544503557391797659659266748221021815883630560655837609360717915749709879590975342154709079513540562753995518428508935254161928976758350891061415767220281712027698525140730137327571280741527468278321796791048796180610348225231174493614754522638519243898557291514111828923833247534855047362575312381194519822064616036998468848015435046890941073661127829364461363151872171061991017951044232241211354827191057443222830376383240845266786329803246672915831930748997567333189022941259290595128907328122923022449776477629444626383455333828278925569830337754676085398721734588198014548368161075535104801481378394786008357650110047799478758366378845727701182054450926758483353369708100405950789005455818777566089321565707078892074170430980267875776591552421744960388087861227697187824876854747340829640736584487507484408913033850626152955746802467138100191005027363711028676251826630066445211954556825511874025879904926360356373489803710742405943302215540514825279898727913420935816566902553550080418157933037210880414252455293077130550259936352857019591290905039497130638823804980077292409167098852477132563310951315164496088714208670857451717175759569716426167378127384424256864214604443372787993478922253904133243541671520720434033267278781397428191263312695755987125873735071007169840002999936618192369921423298341014038555946366747101785802743395558606824239190961308973477866753923527781603731206361539446900100935504101058652496811692743444822557990528873486463866060532779327262488378743241239564814756247792741917969228952857008376552855189067482710733459775520809045008176734052488139752824768010786233228863476043769414877734617331897786080637114244029120044819858467126878034326787509870038980161727950784004366181742338648526783540168477270595291244714122458184740899282865752667460170007454577008956270367508356424238191786502164916688478671268808771512439987118399195690007263916727276966180776903479164044360404623627291401194287502280739287614176817211527600807886278766031282372755679268201095738159005968855554571835441887900328661832800397265825937753350650338009214569980395272845971958848447658829327484644094092944974616733778361191176650514103164032468264139070525919816963905890132058244438626609587593877602579846132768805492577345581617162411504980555671173410261396965914619867921803836542269164348653302965837825486144922664041502669950311625116839518371818764829681804509189967566550435774048585411548606637396440537239219788517461790251684005663491542335337195849102300582413992295417246250365323692425104552356910847431236331772351902842206238382912726025358969204457931872621929843770306232396771573940401943788696077851795424947895120408388263186726402796807153805376954026516786263032424866437009321640820244810635188176685622908032308623468522961154610468698600713408472469061742913686154076865484038632790351580817942919964588115181268989919353401861429330688749218111086575754566813195010504299752983302421509004862487637384733529809052977504977924372706015377324705396886562360678531715311856751517371573776943014354778110553891169016789889301573986576799880011776393813701299876395507227912805326770778329746118619016325998924599382697261478117170833318556340584085036991003481114930402190957443879268957383020170080240700690109067043863450665186647407438517212580498866271526903964683288466509075019698277850346656825712110614483667494481312052763196140127800755863343067591460582245432529383564999716003648898025685290769472646077353977238062193677811855715827255646074339500101192775613848923528821715778116054579622309598014210350235120792667508002248642717645602164520569269506816610757180116258213153244259188643304350198326376272889398164731030773898911339724827698998396099859761087550577473001673344353366369203965021346239410787767189727130574779381705683771669789970131825287730527455584885220259051551153410598358752194913398564167412628593500183895226224245911489542048854866545590935026310281183181528916997367765890827714136754400862407855757757283689007955601102726043965585615487718333793915324996722408810043094140451816894812878299570369903704447404261624161872416028688504630721881928800734341718643924743951340062367933449859459062226457663028456523774157428692151818486046784405374962731719063899816076555518004018474455263051506389436130742312437198509411554696658353117150879322804071576571394889475151781503546403583722424019961501518370481963881543117041046696472817515907964174159049505370930038422475318429128269279167970093760838774163341217425041674803913367859951691328208263056837165826209898276755697951915708598959577018879509266255795511725953122249257385476384579623782030440717957180244187527106248696078270740239624865932816397815485112097299319018474306784826259366988176760122038147435559823865850086662956497642986178972873128277678087787804082392485370314830087527455629318351081971790864210464264019855705452069238895144849831272357893010115043576812423023175820243618925829250601236884340092124363620052808820653412262171889370928878544404139565957785794530159012217312251121144987678431851410016141984831440494511788874477815856000062280145689482612939716240249056943404056526332462474868500141651711883784518954817782396851883122932800183022388659074744226736750925664594309135483801531288696120038197364366458258722779291125429897007306999912771949458292281649060525107099704189936894621032705455659959359089402934468333031449185776042187894691479284886244141934247865051965013277822227742591562017718265453202216885915746424495997142324043395829973705038906581656871217086232700228893167684593090755296962333673740102113388996015126314821639338055104144550502140083095218694678422467143097884351757222806943637952351822231433844400321820284821667667176290460710487094405736919411145569899993241772556948875799896352114181445448261391537613158542653526346484764039574083713286909558557231090792170016963296783812301712211433991943694499170407105614774836409987466502601642242039705135366716391783859356896236782634559572420559475150183997295404436109460408794083841327858239048211166382813427502385561309578464950640203268648423589044200266364817152613854795267988231285317987849932541261204724617575153763481257640378347961581672933055137488197063175182208507365768328108185712935257978373116093709191456213704294160239091665973983918454811596860745208608836436158453562739492937290929205626542948353141906890742818214140087567702830062690692076269168228523440318506499779202749955221618129806743511827553514341015411105474774813107063001652213582673359799439278817885703070980440603605545822086706411570992953775849397074313539664757519301965731229902878168856709010522950270651410390410754228011791837767415151128104215530446855544184702335114991475228314319473151166400894942161192682354086302764790482630462713152546202480258738504210686854046828896659156857559299937720574678579028875220664499055591826952366459019486967596287378931312859312109457010237819903949413251763510147436614955534225443010526199808881131604621202436955611016416338089880818465578254859373394674236895985610196524807109207279510058192585597598079579893056507549336965040385864801828494699557927067887444586665928184953365568455665142021544151691970632630416062515886122105211908739046160304323730428305630574439046718899813358083716616435074415199215208347345596649985182394080840866491179409980957962486148861815335915158790977620028753746892383603580966887888281400469023604859794103777346912908551504012985901420631928590619421122185881020012705534702589965597728437338050550577041430036151878529346575203444302322216949314347128125772817258318671921439019704107842172391177546010593032789669378076658140049454976125481035363062201157327695263040279800086211388549943133522284811594586264858599449366380116788366419594280876423132858091146973086920404414820463944603276706913828407849385967878699096863171124483139096404089627752525390035024637142860883621829442857705415324851580895200376858652296963826676770063274610339026577111181644402676438388930554873246475480981829441398711193725136257894997437001197594904523920883673473643134024696147391713244412006630613004878373645659524664353360085813278646630382514630130811136557834405620268045196735994200057858072304525873747827263628576778736475377731098103915953545265480230568795879938365235546619333214712912980205578337858681633545772008072741202822794496991226253443616747718305149586438603889000433131626408590708342908043519479322096274299959149790184351498111483077748651575184434094861283772467300212627316088793243493586816643906593552203518572703078313339289397704705375278670991918395257760086494354005987560921726207673603441854197094820788483959529286896021172289346385557023894921256755975193265436117060898545383513388506318327096600305653551335061266279486247277606276865043616354985257848926175491533900755494731458125250262492580560371885188314400792615878795600124710177210090464592853554390604353472722935686441951905077217812296308777349138645710813830957264292246418314342406958066710898019281080121265472354208645152008788621483379239725248943858229304557815883136022823203005994415275147719197670654998938260613586925131761763707325636374923468961517688290520388993491696952405777105606480308007257048116359906442254569592263995623570029314124838160279526682881338467238045286993149039510676942034868052826911096361267030723356142751632881001272485697273397978768607193934550323265535587469978629208300581825267577269995421384903009064433633612394053108875173133077306338416794793117529876184435529830359019669867847643151593218496731226940242718036080188783607804850296028768973587532467940812851593951267075963968005647763924966095851777812053482945502826840312044748571340720441610810015224996453789922062331600107306794411725210770272706731457497572362893841816874134122800172670633729259861944136463174785505613145750323355462841224287542092454388130552290487105938524706146489057783696098907351114659555468727747679887030678013210424754933105707507804270367485015916507382592933789416462926055324860254288037515878494179722533285133715131576292467443492085644575403208590791374588988338430302906371789925071759607748830786379803164761995050256447155017141327681049762674059788775650430157730898148532304922842524204010605804839224251485842918312681776483693958116581149228528244227972697829129643757056400192081879409625433431976997987871750023119752600039191030315019276932128291907283062793447625202466841444431847298824580920527408327309776367467879766206963456865002357886405934273157358175374018811702366269325558013165134428495506641932957103617281363228000011350575275955752602834072130090013697225645246517776775368476233231830602797956058830830227054575686454345357025723052222423751399491073879538674558752087777631112821553757858807273958552739100640731193959105861734517069348455506138449976795204839333138009228092249248396284963311556889720245543118062863599945175204880976150411553404203728080496318530031440528059899256347308789112762372201372933636685660353694038569929507708689491104186448759329123677122790349044644550314562563728326639052656609383554162575290216630884001002483214064290502578623098265327268135930087281969478610963425862098890462548532934565211611972966576772458488393913487136588307546558804530103799193249504009199373220418152654546481533222056869023378141967506775342445277825455318912184130884508071813338026541226166423452104384304016789603231955697777044185504271772115499364557191750245689928270358316455470698794749188221054134202077046448904987908054486575856997950451713753947375083045275431871336134187593453542213177051557441801753365876662514470139798320773458208221767808551423530291346023799440331040216992231119967582265339635536969666620675136463474853651135787817081708376442425603304295651240813150851745997992839034553153858652947813635583159369697816264027084973419340590510764183624954050032237014757341128828754323589677585795048988859166046762425812526143924300147719969830350840951747384337656547178403178627736980312851199153359851812518382371346899637427451344100874979494193219876999848649765031409167959288200757394403680850886642924927963050444817389697412847907708487190058081026525831015224550429714598409646583396937711107935681423482042044332095402048439212499268889474504610959946088588499150596776070769249219912702311121488386867191704050261702195253578870154314713431375004688785530368000761083155255612258702320695862853028103738022619572728524815634208543787998795260573250875569999666987220841086178336764610267618205294699055417112378687183349962950716357543112078010990174149708374379039047814455638358897361028200659117404139949357497936195724855793208282544493150777537391400815196237785715603245107081600336398355477037239338813127368676650437762398178074403790507078608596705755045195106054153522033669554487550623432944426832416285148895600582007546299209281788825116263661825001699273602573418456965377783226696754928412109651358590922472478902772074197759746766697186807412923831716303338361145997710573575281033633416154937000224652709621321565886228526771075236475524885305072529504923358720820742691954291290943974391032940777916353368379405782496389104204292864618438375593782765677547947904797873630656864154448264753664194756194635799679126765254643871537241544501913130191491380996546301932607305655843946815667541654556995247235957983380681570896790715691592644625005876577556455973784929688363266849993559680759749146045643650948900196107652419012440173934334123061058192009934168922723396698574192218624981171356821624014628293458324354074255141258872137599915304524787468652305655263391162608711274093851175156671947851905138581194141430701285229577736008922903628705706597011986482986376673523887878680369530330963133469498822009253514200542675697362753216821325106265493419090189386691677767606135946587757974499130589155614278621428081976412115254528692468832641502670154656078718411270567371489814890256584916643469786002621644905459704988927702075238230024369642322521443338192187582910013690886065972841852413677527548836525285569191550379254479864291050337627986905042601598091148842958026152385450884735911533252593809588685829173408032712336821063017956178924164556303907523561123349154758585251750566675074791490835245671843881637257430509180252839952335416960745651039249521366865423179785642376327154571491017914511531489393974726597054766623593188039280541765827758637814451955511512524254244522717382946190208095398048823229689431526825945134530414149865765774492332520322010234152335058792566263992490430584895043425261742199807193827198396072610706820912661405196175921079889163053720378550848182747405476382424325161825993820776521186835850808070662483914233741723857613621121898829398083312435477657976008898135984154256327911312571735466973814136134939290248894090435743358484756433579462207834660768900811286822930509486747318559381902490083085165877209553049909368960004979749836048152462991139864042626471557740282206035163035708310833119659226358519222963515623510082029615041246268632723283282213653741320786905620443510804984413406939374135247521809062260543507853453894239570162368302144335941722571659545608803113579492592450741417225191844111315821656489411696103280974504035017057732593431727991518294283687041073294766688198688900272324564537841697668109791433401678535600096593322033401592476128069686607812678961399750717220500142603675512052830622615636363700863231694093113630628683736689913177213737693678267681499293639109254968700088898008515442946051610958263197637654677558997578158426333785537949736396410605264723443736763719081887337247010293495124470209306418783723781907824678700886964953674242923811454303016478850508139216780541438117890657585089267599608184650640134546081706215663686029947527273650860714191192814388058968258916044555340081528444549509561721745032671824362925203199936812997263713311037027513193626348007345846526621394523232020341000620274327892242207036081736318626963067601097201998613930527362242662114772707856336604210124821547784156385856590356956745115700975821478401590739222908823382887204125391609490943306105540452544666002500353961079089093531983199028787510824306052676342068862466600813255818960452388490770791021450143261916851146454965161519304611906148902079964764235276892426532558059787712538449692606414884017168191258755972576237908403577237729400212134093730449835128951186545091919257246039325036512320230353077224496503247836152967944357121706799926964320108503155305304460431918658919382058467399851918562985550803894804232360569166264532101435669952363921621454065304835534707630179663570950581369191214080048159160593129513157606373766205257811525922088496665863117961063448705330273638526026803761192566062732334340565345122119819084171177851240463038067533823606589224654304842156074438311734193381491437415639651136648921983977570847960798119256783132304295048838055189515710012239759726536776698887113856092932146457252547686994821232706310982849257833380510005144878646672385504442652120927541128631213653311409267097983038649896259623059424485824328367170874809132687502613033055609044159194166018496598728378130934998360208328144131665111570338299600117669316070511106181168082365592368426973169290070401826609425418186285949453069192608614873205536394090225182778368621145737325298583898060193842839165878713123138119849955040973198485401506239583775697455619953271947315039027236353774934248671634735108054910085767627315719980524035095301116758140388408121050552734868009446672881906607939579016486947888639211298925648135775799441785854420968014733029596520344392586008828209832825836542689262954172628029892851837762743676928733903586362760647214325116762716946431870837416262756793387425317470498542217121032487018721408040512678799960640010118833396438054126819714131420126950169782630383103564877566382013260552147792909862500680312565222392526593483238724842334618640369506163115896250542128965885112827344772156577670824466077195776756617693714034326224869113005907008048423669741832951464916670247649614668320391264588484009016324907915931692066622809336712937404854171935730724690108457274478396927117294053632086755608043306308749784721881224952189048032702323978236876386902459461858308706491647281255255846753576542601300692390401087171048017954732871526666101059108922687352379540597985417722068886405089436282785193148706182998743829522488094418468531690575107927732146304927120044110988667485383037460403863574424783990022610521381723274476717617983750618458586518864810815712991234055538948155085574577907182545073287416912234242902560132973572186128655231690915726442809818381778898631440113095445047583000512335477886982710443576555482202516368582197138163589377089581264644009424189616045314036067701023473398152687422217594616449505762216142061097943714343485202725099611002813368022975339853070877138378065606708306451003565632308274290179448306061259125287419551683700320335843357649822728985158903578689676056027090386491967885359105686915628173644786279273049315436683538393099010314237190776265049011391840551459064460981206099719147832938784915902659530389778024832839279208894910608258154980588017139810138150600089790436846381899915918204039811692051764523790803205411257933644991268205454904311378604452374657435792041781161344743099051795042374672067778991127265139365359255943809821784277714779925970444221480133622887884240923862058466578666762470816397799264087241542456868977504010739792495799075654844455201939592071012274232021304900087391629909998686102949194807376255335566787260853210560696075150624003152492007237998817595062436505456802949569348393784013067216508925903971649796722727824232280741862357902244997371771148141900927550316051014269452373190895578158667694169587703643302850272658373337172117482184409395666375684966944765680970080024758555604603163436589886009228157531939843173243914921799519896818977222361363294357332623629951924886758095732967147407988579072084066291967161239409934573895401847260098113896659321877113286758852808928508370792832025496231669086905911864065272648565612119582667671147922245528458193903816867775106440211393981930222379522790454161724376486102135335498296135411683323829863140277538516626034096229099714912540009330005913104465843418551225489310934346237645569514507495718245461537432202265723364138481592756514647984839654281312554901039889621252377019147339391318633322681334489171305811819349931735033900581174527203912865054913619766762527175501547189368137263060739661696755939625367845873434952713969221837371227282373939970798085016333236216073693183730519364944504156511762413483036269332229567442084269084806680304313506779975361036201083534606661318181121163295602303545431540832434248197142906223356645646231851083832443631428362167993619595215220412005411881032140717616291567628619425024967953390810311570170832819664402848433478265901229260089094630643439239244071855325325925534862456764889001644374605968607975008465470738905846447986609252537489513227568098761902801964650642031803015155264522382109332410843475295796368795602178790782487057222692967630072774077296655323299679385190869718367437039062743655954340927101305590989579130156079431423865587337939648290382969797546264847777431501133693104910534600160962337411522205375116620954247154209278396535123519340315594058365725046137582345723917071475819323603930368535396475531623215575520077886694779482049153692623002443570154071238282339487904727382821220925202652652601216197540264197133499653298713199455396837152757883348288270407252079096000819386239379438616123083098983354008336149048692177987732055829978209254103654017092773969593545707202855882225717169952980377364013030209668136221659211585104440557235662810081063352172182766485375129650432233410419737602674449163379530314513493771729192018622942123817228895932901310833497061030872019360690991540431487964963380995401581930238666264449053909443290725447745818593860531399667192599031729907047189869276126468595353033584180488001156514487286416341783759935590853508432283098008449965594777843026634391479763732837412264119619088512031685642590654367252542203591128464600467058142218346014788332922572257197267844104448912866228907472216195356689289517752328019105205753204476586237964013162352940746609543602942554419779193488363801412436885662955858217226890444707055115540248998693446376653257629468981009274980847279654285494784979583654194476721527333602109105368832740972460001413205596200906372238594865726181515433994068806784284599753363126050315044244095308465499825666018990986274650045275139850531550000750158013699960993445785227922951827107094609760787794573693803786614126269951031656934210640011036963779046244135343858836544844928691389613107681200905423120226818343627845028893712869118978476508759409123365051248047497184346069134238732862582962701571427422533237803830811404837893844316892180958595700187096624288340373878675017845882800922047429305979941163788959945073639385330771189112993855557296065249522496642631018499551110251331744763123183435754699296352250096672164524522679760892291092120360580965054292275586869060072413015487600753530843465899965666443908159311919380940113181941358947400587897444906017654006787975429959487765342816246068614693304428754243303947233517525011687156680644388766507010676941718550126333684115330648176825717145172760215411079289133421869487828986537147065465984377653049847039452575976468325883866227315594181131053999228516543900545095238956845113280907970036358045778904006511168871072143675510295450106555086079922243611451306403071565366225558926452120690537319913925877252934369365388819118271769729644262752069904466085338195507197690826593647552531299036804718609449793799478076688278134875919173281118859554797591523030675761185481548227601269304933793078507439337648959451125445618924615301976701013030057663978978361135598999161843572593719016463964429709321541174306272242985419554167517038211329297119604409806551789020046916343277308502786928707212508575006936701856794528848700086553245483459891140935928333399065476401053328552550959626462905567846114697717172973385333185598087060316437242514843968062008512442925842228321440076509259316094798830039277586575175631983621133846722014286385432490655962038142963478759072199225992640082793855788762477289962345050311479139763835606392057841147869504561705445163367776574171379964335789030564943391131762778872583011636483014250945353701009037501621730499624480360391136263553059274448252726630028013627581077427869926577432492102526569694488371425897296564224888097386207016719655670303186495204750449967005033639761877133694295746321907749468640276307320182030856181505354890351947165179920186376074680818132581558229769186666060701643085188211074260437410491163396150274093110925252667898405321044060629555089026313296908307985920325781614334184167091876319240858902109378812157875967153918210948993157953534571279658861975778713530370114586394399215445142751575085713749576777212483712618560811487055821831972241881611876493825565705988176663539659910227304378117644084140848081256164992940188493457364876019143292896047435089056198323931997606267439056031353449953401104498474976536599828438922779281288390058554072764531582066713391196203898866759920267489988633711257406292257166170077346697732491446260113656711636610129011236090865913303956166112109611994983253999398388202688453463300198613201864783779266021687813160520428448423003943224671209483728230128509344130825002549405801611625540655299179500858868109996528584578920845591332405609875741796808197327224298287059333912905686389670428594972986802344511218808671072520803928684015962082810530815208956237345755212963606728070751923586905345792144007424631214485036861508544666429992856105444130424013866695576318676858113299258447400273917360167273596260741598859215109434119291577264619219951379861016509697236078528736858445744710184511023092559059853377560698505844461509522944308153853071869101831248868438304563109998460233863570859870574485226461638808234377766610325241049097031537043683463850867693821198315844642524823232771007147762646687638304993650642516936148979680414614497497373160716092084242068371997255438748759756097782325203290799186221893793242818807032190252593320068274070968857890689887179409022147480456762734255241103256611694221374908976060453532368991056093408141591707835583340765059340028796601709724223122503553905594913571336938176735048161774604188471809117080323244796934535389629152117918436257965352851394364689083109508227448760902257517135521010304267917772358000179266379219636327805176067578179458787696843954819298613111320956321426744390974168954994250126297462239313493632641442203001820630388600768051610963792911922790194306513528018193815287045418978882466927698472229817492436336200198466575431908541091667602684816405400422834085363528239021881683884344472939659922091253291436992082623949510966283362517306566742630029457827285916852094491966068651089173702355178309491580058872086157682406921166042526287418650320894464087346106499222854441945764450981434375318883596991159361098570870370214307924256997212276755509966677378959538222069357447202130381438382402680917481622537406616711303261043856272616525921091751529191797584611197429460103441038468110906355457523901870443181148158389536720306123293324190452372192698201151387756173935183531219217953946763033988847968853547920131370441465020196510136821053080149449530042063164035605719990785960851999147315025561324692880294005232977797519577105046610178804227729107382637826749947118242465928027097236082155609433119968250549950058363795765005696365206990067169182501936208944431920131124016531169118455274032389663770854419284075906473413992127842285482683089800824923354528261768238810746829556354754195996125160503431846746380534957722384495899231126066993321413513086802575876117718913975502366158192328208303422171213458205883844712558718213726243256403292218946933603567300563541955167241701099517426132705929203883958425209447947307362910345282709681412216739463089423640482954828533277525510158394138700780820994451833621667996074037016106540899761865234534566316036437784612569847162568347434253956075284437605555023019979267531449537458749596653007132624782327623370609191798700615101391760672596795565014407369587162380021794294518773112325190770417237280021188781242916043457878172890708795343002594197140910949963763207468048244141110814924914710790841469277587825161889536127963476314509441903580021193524153325792829728913589224722932840358852959905633398140726061784912467452792073416464719846932479531954847840687678990507172965172391933797764968890671615243470819001447015016533022719570834810631950401556703890755541382386562373618666199458480480098083751102470694698749844137668531405460310433679908366948460129565316996232228646784342171245699567920589140222525458731259302837755468550764396854606592512535705543547333662907591480248337862647998110153260331243901435932956485657086939721332388051680266630514226636431429508609119055341656168362266427443851723027639871645236595286094660545557269220099908632427412765062029974807882537542247284277709859453394087428829462670526879025206369396872708607028557133755253803014014213320593363579990577808161358071034820758174031671145155153903603590661718736900048653344174536578143588450636978271290630611817343215296077304339896986806702651544282313285346307174602081453965522221338322236698593594918333776797105267226499305783147063177382994189428358291339010301708521113084422713331690784685359258348013593762328577770093821738591128553636480012716511406201837679943072872994452215696710352253894183128531860700038927096971846957323230166233841309121721858390077874235358896604491324282649766726105361497834108239791485971263032454789975954846971993020582347092928416832068221022309071311719920997759780784118645964720546972116506305101091718686350253660486964779714294518031045527695323227236460213292696875387138040268774744833612261638108500782531950741946183445832705262840132661109059141037348502715616485792965249178600892721821683344967868571993206471562741215111255200038270062253663768629782791961818429436016853096983258344209222857887755735643792207623838810201787716741333555891174736969476242799677383149424172261030957272215808793341378564098655460989789090355209446751103910719778281736825439672066636759915242345532025930587343966844898372643649487004621503891919203236978525293777021652107335886153680890958468030460959807656422419601821266427519302422048436988745284558420996213581800624600313886455524523853540968519242998957466802234721711287066595573519754316374225447132451397226565883950417143899131476832404261499849286371486915640069144378055336547334648014138280462594069454382630914054548845836063907083116383389790046785871499391016467939970597413312733157797686939236308453941676314779128610088621916156628412375866938182624174725148476992763570465363169555124713856330509933668842290145119472708523390871854169346139355816822367373172707587848467888002909035570776663859134131169398827510408927480365458045890342969341485408819133776329541313809852057995877332866795892058872514016803068801749204175838306114822954075630916676457070338881965104538560766119061067728825613796026018008997295992049589750627387918875492978703009404725974258203823510669213573041614214863746963241943702451503072814351248510282251632894351520231199660774521362597979629660146127513978359109708030754705298659181368598833740123278637794249906335214683638377406667370895620939609077088646657754394944090668021229123106805934050043731603636434990431774677122220060470658340617924184507427045668041105649703686309750951036597424298318323628643877984336451880104903440242724247159141801416630688688568425093325043207535413785245310307947485530309082045429038030549762146321203515023365648761584999790908983747316567076563462688212833221601704414524327336154159883044034427001690650922173572144888419927975259687317643510537711670509996045067135523602574968307270583849761548143874565041665466057984283247201679051670677829405854043221172731349446693111994184352725550023160048082652937456507497401816995554928875050508424367598618309196669968653617990595208011226617873079211893953802007207338238385801948932845957225469593300646787216978889181210330470942571761224024285702293113335329835346211679997318350663202729160095406476912116008332364623862909269723582806082048257151125696774596308218798583504698726768353765844458383642822639194299973882450958452028583977698993412009727552546818981452780715859823821684542418945266059586911650492644230442271435894326055403103063018856895710388376057756757291380523964251443423241137447265250464745557836202778549985655598354345982312837068181737233927600851986225219034747779595243367525776539088318702269554706508049302183877186834811118511075287541256969496238973618617545296823453607510921830907344156312243182551556864916693183845725722353904336000636444165962088707235510601192747082935986251831227466260956227496371087641362982965207250313512146927757526963230866273848193024519121345802365548960899528747133546129407985675513887679478580413026975427896217570222203239569544346703117190166077360616875052432776163731126569742292589157096688212266966883025680323188483808555319349440158015294942868184606610279754239887839941141876634286428851239804917661551815824392679730487571257323885522520928669527775216854324650608566735986853136676250492794893479640120833318070360875028191438469153022730828183808599108848690472368339586415433006658864972341272239249903673849406098133151795679870937739116657222396339953263631980079260747861120531524137893960260279569546149970719574983722789454926190822715404992241885040129886549655395299314061323739582653472232927548792206227118221971627968108945708561217126927036179342956893816717756089703517764090650912054171360954921964612723495930036745861336606740954173278573364776716386971206152428802661560610653994251243867947318882736685483438486853838894309938500690244502114860550261530603622339973320487692940963963325957694735102073497976920594945491612435580915239296519336134902162926357607357043202367000436291088960760260393417983028946052167054708651608538243012067560299346205370317721376021547740220926388444538944641510680675947757394437874476303908800323345065978282651176034156874079856839544892629122990265875745529739135676594529484969871701800765038839510447790967371490255113406288456805953799260053603730034044085232729276771544587490957027111669724018465423086991426584732439309351998327701374246307866673638189999575963268486049346118949823479170147722010911746423869407072970834853415874524551100710262980786276530926173819237176343593892820191407654515378607127633998785125876647377551457621328249372729952374879042993521587061616284931075091561742117351799036532392837636784322563377276812089311498153862724736111459999592645779808017708571241155236822144461620447243229987154126352756734715472512984343614817835935793268334346865356375141466156627616036727589302703350998642508094117248149405793059292136598553753965046054804715468123515807323437703503211738420515925531769806978523523272148795540631520893097917895688279343449538699334164661236254205682117641004935859434092839140847268325848505730773428797137757507065950329840854968089892246663344545252674318437575416969477943224535998995778798699263446228308187623574641590454116435177062273959080347377001676021867005434131140560850501436421411871607885573542294934162359009379673056024410459819268668915120117443611222101116609102735296538929853822187325373508735412680929798593588121145938430696631558645132087259399187397935548665478978242072068730980368042742681766317431334983815013291302781364452395786558704966892949215975850421974720643275647812903626607694490533238339176830386539517732862497057172123528871054537035703354874021648053759658253268506441136728022701910320334896911203713904777929265508925249990636391610359877964605390080133552432901235667929028200903552813375182121943891568194016782525759073622858860607619665221131663025076524678844877029410933076729762259433196038623124557277704165167362491117488393957944248461983746196709544111182922603705303501818999058897746904943223150193114422517583822914764891441945408245010201024172610868198562284356377510519235990918267261198201719197281758195213370821845911456580946655718803685948793762947189128306208056595395151100953342457344481103746148941945821228366497913625078243109026972305681866009370293887322029777204605689033235734124340292547655079062828008647741466666205723322229770125199730080250758385769423761358228920921266178342632287777447494451789682076360602096607157860598531118550714913126508836373878368993122334776369728301378322062158146070500188730659704201501491424767589092732773734271658326062312070089443344039356793491284567131343705531254916424203974769447913311056467534509306582309715105294485326326040793598021824703445687837162042433296097978105767259387406930180194145531312446914006311467358603613784095416914994071329331097172125619073056993768679637874046572611390343905532849876597927399448257048391547175542630638073438044684489499413820827486602289444190529250346105500953591104342136565567093010956207942098941094880243561594937376239385008898074646243396031500126771743640993034731606823226526590037177909670327955105510422625701715975673005097182510048348729812410767240383381029951177834663472738997929607547297582441441616219209478000356595920826185987570843728443707310555495384998298916817228775075837546302180679525985929350545880472882904630567034009089536414269899092579712686388143266352004537249474292411785609551006599358006505928891592766385309606932588955591608153190135494956628853992937126921072077609036323953581008879542814307284370421804436956429803906608499542690242468299612132368865081688739976901129628054044440703366706719604709596182853438868362202493061549769819846504371365699262706309254953339427006728853635240784047382957896649867639689508637168678933626712639958986127603037293354006101151233075833847911117580177535726477359830079383414297781450171696705618468996280607179282805275072048012884409753825291733026851531922025461598770335804479865907126916316298147157525599882972473946143985821423389179109444349461745617953617474365083117887937802976677715805996796783775956772746324112696562392692220385485829654347485654270624487100358106073024708592605810382897057398651483967981774509127927158717513303065517163974046542017164421860557473999284735615265212488606903437147173149099133637992173781159028290876470172201189203921939197132273164226041724788303503740195175243782380437361751761866917344661361818188057380498574145149699273497367848124324040868294749217326318852008879497363152404802137391845179733863433254534770016463368501764989121621968998176339107926237497457648653225508722053570469273052483676497858243399809706294311016497546979456615374104952036126984728658148871959798025786971361561706843965303682572300139610892764446085461962031897559343809616305325903988181961104793938637751162184398794210134133190953795771585797624763296148679248420788738188952113831657253703488237494975111023487120003409769467193204155682544286001924807351808030257969684973540361000780289689575494609925623261109846339123189944322962409086651928862094230689685029446582100877785793886349293380133937026235235694170364507735111646652894375234924059014422709756951972084090280316653497000370636659945977245732592658870640374231049076794654795322119940052915622400065338469495047787084004480866109876454413066975414653840832786085808833183237427696188897784821729603086608371207831122522689907793651452467249930918819331169684710603933133893374676387569690253043658689253416249704780165267225257426969834879280948693133998091822199515053693006774798897425896304523545497747016536807805086867645941488009512410164719217896753972574972846938753416009253946089320785279345053790648192571312972332279017905280197252776705640624847057061933382938070185313754163917597280487099669415593191079154038616190839957585362829117043926384249655223317713834003342240438904416704052598138124201109251016496773868348817625949554940683151007086392412953412728750091194552786317630993727963421033227240454492616754501856362631400820574358229726917382954598710588953127328863041983500601685039727541371280908760096579947711439727536512838987344088103808488782290587336257932316063867512429861208968862967977332757996812615635551114410213297273621540029306966277080431717693223704753696785177564821367219077603925663717454299396194901985760673512456917117374120880241796453314053236119612470619144158645515189434571704793587565230764504652836364354038023602437987261326285454777264677172396450543296664416017853018019533490241460584173002266748525416878244396926543661119186050335036807323340713903429023203746384555430251692579233064902577735626224447234360135678210352381998340017763915722813301538171277293847699514603376926619521981981214874252302552693605594080269133487764931277466960614526484177505104068773222841108022466371472805050236445656753722960922598140764914461137808191831700279749093871079467976598937266467762748120875562620353973394682646180670131039972739641189079845385438068134585073779428175486582156614970123153250483729521595557422900967363704140459423916848548449536812618361737828887852684269885011638364520636320446468896114308776214371609491597569259703391813423033565530266099025491426447983979502790465623952220341560058296624994804963031981617071135805789326805239380986029793970463639934991364280612032121878627981577440770579031607567630939191219011662550874794238117880252219866996047893216814989203318140114916382557084685563437929075778682538405421072150159663129719055719627253642973514217031876722792830568449715775165839695253127592292474236927579154734757374047453564865605822718969529012316154267024354684961151279269831647059439791474296412516817814674215090306957784811118462623073848812869508390400341826173652374910184650132259615110036495278831192153533557895085404770531721476941662996500761868696258089288602111949099364909887596425518124070392642539144161951358045107859910887782907984398009290540574879913070749468529630449048025882800850016726651889963221137839375162836629223681393151746484110878309497814919176993935428523701304248443117353642955252170193562590533988143165534416671640940509095242920471721817009682289201101402532146237475715067611309911160406633777104197502809653060690839330059216376223195018904473360163199999643914689307435652773294449702899244129899729662599509623103561913599949800080185860162951082043687571031595700337570594365769610359701354010276357509354495372442352743813553401789773141976654543395344023135136971903491791557918590749911470981284655895334048137633869268465125992017932411260959554392089199140026127676294809036959121889618452722217638344288056880696212892092152981781997458618945785087883472836304782633805832804042090133169436568832922090472624018890834834969070940164704853628039679497099470476813455094221741043666198923879295169034095740068360985736346215462692734907236029694389341304454814137037566506675660621185138435775151097900419680276195582572506088737992160680202216345429231922532601092328693037131095277434172468664472150769337836731407368444495348630716142383088083250105704388631263620824062159467556177701449538720993095891042399768360487471108989691312975524284628239783619995366712470600592042666295754525277429085320550097384066215778768305758650198081088068976815508414936743176156922222932661033142708467115850951525556110866321109997429693045429202092446817757360908518606871855499348970970904151010558540160710664451273441142593543155570871324191062881414420929648886230620806397707049004592633667722559713260687820758796933498558378906177599335414103250773298414236624177934532851653675454770987362920853037215773459068246412290434563108356766861802965532525171645745904437079562660108726332480100201452496707849044719950599186579921044120081631364163092838714418299850167134470424573606887814449071566609182409576896669343499261752792735094809380472008811062875462800495803935074960210070438628268128566280124605100729010954593073630684996168405173504616052155612738592437048735037205186163624750307950599633514759335190740197718148342801592843163748304844480042786701289137120539389218624908286641631275539446112015240261051496916728451735473888839393243398101135646797936304462134714898368588303668318498974272425775779736012013194795414817553233925208579287039129499643405336767412095354357504433622308787713780105238193017452654856477850431943226482765965394141684200761680437309765770414535088830016176929461903563773389012274547750498879443018565958318036324192597521402280490219015608375105678990070592240967302308684572478548334324502735788065413352711116192123544591313678767472142963506181218655154902039203315427660341847631399376775346743363290575540085919098524478138718247700996066188122201680379753670690026074538406153342219566994894354664748802330976776010624631838543356943339588764358215639488112587249315051637228876742824269862453043407876529009425336046822482262509503370910906810811763464431614436523749850516113406368038115712477534888096253963231257095349286450868114061213604523118978358263758222529506074947317683691355824049985058672372213843145370842097982359635675388771378386744922568629601728193612617801409603034825891285070601934152259586265091858026318892348639474583941701691673805657552193097217765901189114959837870725833338637608513994155548060950672021285793132507387886574457905079798092238935245099814607495733848075714131545649961751525266858908083575918759192224095846600543444403516824919851224948184149226212815437648550611045032790304185575528623608549661235680648303155499088309035260840305883957840381456102047959139351490360359758287818945948256336413858217026160831220275734810366163544188951692485010461596132500859438155315510256009824931535963896316353150131132823452101930853188568070530122547959223719601263201993076097245383482650091290826083226900718182871250096894589251633275122817168161626663843923874527089750984636222861737256008619476718690103394395890637732522291436189555930587476107120051795895367387028147219908782389520873392743127731654223169518724470869068903064199656983198201331587549204907809446034622464781531658921702277916807364338581613685093027601658321928107454231344443431089491530183340507049571495369112573561361243623911830751291254239343844920751518797080507007885946933027066543269307760810186338043300424234686744554849980317612298226187371703047998129122728947019051740408703534512916385410944063642318685494828797860469377942406734208806539998468142136106438830813622658678282089903791954469462165176632580095439340773996229426391780458813331905154521480761297178754530533681021440846749407744565855052417748399124949662547681155627274289830793129059101514488349196745770514751098688527928414583524061976904808734124328997009946660782691533013149199504229081132443502378398478845717630400799872563648136210342913845820682493425662954815101894530527337363058552595655270820251303892480822934757190593891565978032279202706639614562646948250702918080065092008109454539029323515807800361837842605690345061358297913098088367628539231344470900948679767349242078347983002544158899819623684430684613393782360883800103091003361469944151346252869494142751812568660781051533255092932231208888075103654026298684858777097079829282144748203892246221265340997177606294224398851669572671483344226799507998259003350740136409360941484256244206270513666642844815229805058550248515766039400579995367320594053493509350895079935892420549804690925131349093281166902731935512728037061152481559278112604233646321515205921723325124390762638134034537747496190236078926284515583265293966543542931433363623631821753304440321443891448112419077943222329894937191087189706084105721652237879406698366857645508893006624371405691631659854432346501956626019612321505078778960776079182356111759832695849829470311685083218466636070783269657681860624339184152069980279391800164472568583007811492138349488754473825577730161592788331389727912917528252437726312088776429893749683732639320904617254551653680284183791867548086025463050019754380205956688746155166036148604044669417918968547256878783047578215403417261145497832564830064681720809777900049430081892645208652457881374524581785000397494205471781000119639291926761633522709019716447590138253009912843151130840553838916456439256852106684397720895680262282463916971111331393925801855724890935599794937423461759834281844559199518743863871979583146289259698394272872924042036943130313143653332225010034527794972916861509026196744828259052810521598756853546489853848301092808587988959285434487139240660221865053913448208147122858616817461200089524782000186146214818329401811836460294663352017358501209516503775740611849892109982555039017250477287823458668037362222180844103898098450813179741636103281291741950299666078192817506476289785383256820765503403167636207741322864462912126610333574139100769167608472276226178767323179654359659602043686440649082426615000585550758986898010944601126885183166937159333863176195138795819515824695073419823479334838254272719811082882423440247604462185637295322586198301917272395374968722115122246466173073101428884546799977775751460529684578704975823288954261680770819666792079772998671761148941571863228794841339323707088922401134910423040096960363858587743088484674456564596522238814883282492769496276260033488142487354986833608075427176310707183750860410781936877480849969782996033849173844204226021807192656895890012796159758621954266723783717644996758755880723352669811629428443539581760845727846778849524731966532323543024137944973822610553009897727751292648693729893397168216218034148111431378485793249975155083376051135034223686469484067576927405774694059269181690755477028456042606892910767263598209789088536658657870705669969650040266738653103609601715312371683416215118458160587349534081897053641499086384232238263723986971488142722346031522065695609799553104886039478710191934501920175166115561955848469805925876975959149974647332745415376454603704542793137176811466527198121295358619211531797570187049955375222277215427138630690326181830676425807590943704734239965037359572508722871282783174328762897891775227067101875345611525976367868215126927359467293393726428602120912146886892004125456605444465333057821597492620557401638054806569245963701602257306781759231831191438432292661090513732958379813580212817211594612688332835103258558033806232363028056471506056354021977537013831509452939217045299107721514783249097200930229515819900366212558401709549048867426707509199476488439391083380951918426335276838552697085534449236796030561260474800371197250333949680178014072613288581191943495003679313043074558336922402848645162860816195600236600208448729905599988945970777125617700102513973632472405504438339293764842820194032058103572098076087152482802716037321528684177490650411325629464487861240765604358648312974238632615940763823891171103805011787997039270916564426700573371068269471115963756745799455887062922319003275324035405176941723516029910011446980200356012167002965234082809239847818542841295012204247511983565934315928932298196883914185358052987474464689478428612454599758002798964975609074533750272145331347806694384750593368288018071134523040886440355704071008987486489612022159097690708073954381068156930747326992750398269990492932675122750557511361923458627007427128610737737423379045727899521148990483549108291502140253931197893074885577005968503883930079077959672407543355206070259642202092030459329168972890187652722868492734910556664005801289850357800764818209940308225006236612198618513050203675990065690484560162648990230926769291976614771564156169175164186076094963514563356056221041919104440454477025857400437680750475742698121771956616879205674375748715191216043562224130784617010850341562716255161735348573406717565509675340221838154103512928979513511300564765124181170359549375154185898555066878395521311598955136022321496776305357058729652775454131108747987483476340799228613224994087357114542303545199883822375169214317919730230356490386421038475979522908590926415007095461676431456417507160518999503988206094832247728019866553848176744657151493672561401368804369616762380503107298601020576427732314538299508242290507406876482898371014612595208676916824097063347454001072178123731514309653387611724212460009580353515981907276576920045568267134982287272863758351267707249427864240178045204002368248370542068400904485740858354088455312172995025278162245905410375433629084508312634102078771942796800413172201608276196437763007853306828036025115227456617952737732144731443517458348633898984364544864767084854147984699398711610532900303767809498662077411046041001908883204600900881817812787716888523086786835762656597760189375322335921671600384149674094106389767402874653788761131262446536528352153726361420812198245370525890182496707682321864868402183541748318246679815971358868431930213209710844229354201972024959196306192464782115242751090392849891308456984264162254416647714025292489539211315211920358223727279121495035515610617542295770002440129806445908536964921579551889519986398940647733287558591613848742877909792350511460635067690073877812700435269807172698478810197104919917201789493379660995499036087085302157486987218985661858509890359342442045292596503291010504699242583003077011699150749086073084136686520396715151237340834005439825737875286606733461671772319277073464080260957340655862963320110302848986824057541035391217308962641537219410360814935476798292580028696684780261202541577323875755720642028644478832505031611868360127194053923644665895097502461028487520234147623794923539435608608718781398074856079510425397741119777439143546346267025768270583529857249621240589131685914829247548979992435045933830637706841592079205378156592453728271217371004161406663021971467466354295029572138713333725829714633864262474819501439129781464742288610201161444514912721410861240959208427244384216191015044483658350484734465783957432980764170007837107975418280246186146853645851403472970440451360252284510221717014818785495619303252160743783984021781656029376786982977792134303352152829308306170449063580612775839831070425541888348279894830196618461066884428144710270255278267021363988962348196359487631617587802941730273959005684789326887107936988625055515335232593962139972057549207760712959293472062605572045997975024502788035620420216525336154107807589328001319006273491379639584303196492237909388961079585178721951814715849316323700823527499249524735768193189688971357113003010233040183261798467004481446003749574390617388291446220160815862995767522471887787816921940678383026904315014007193863647690057487751447771730914848451828292446769354068286394926854169431269898955490472288283926271117211080415901908865980917835561246557782831055724250616326931493431315852526863652216164015503115805810616085341205124254564872799164311107423159847060730800021767312102690178638405962217130857117190831602844497050422025882281932996058988486214032919307552833352316894251751658851275314928395294670544169026422489421287987718966270148522565449840941198472512046914531128952131213199885700754471587547617144122515041457591199875464856323393183416469128310196904438182156567460184263692446579829105492754301875666241607061293484306705696684170292107946770311959692590305780914095494010378592712555461346388822753765930223641527692256777203972975062725657578190182580563531271976432195651001310936332249206724834571109657583270273585735531958268224449970435996945951927476667860466131936338969827631823153008048993352651282082002319041907661465635433379548345550841891575913507191588218590962512908859474227698669964267781234520608935543478884502351290237281839332370301418962331621366162707596265817776121603309196407300909028647840827058604880457370870760076331170755582430832488238941211435628009196574093089563762604146463911013645384177766554737850268187365650753573797622550422894720990610919107563245724696371715623378255926550404405363891421092878378903365342353437169537699660559380206544558421499819176340105960606367813055964351454694424084086154767847625947598865999045630596523501326127824649806738898663067874368222423975783736205329569265412591213824452657893602316618168203547967156644163385647871334000664608318081264930362607362024919492776302882694679690768872180521588828413924448973607556065222472696158354224307452348011370446588542446974770729040685014902888278411981116523232986601652365034041305451774335953461544113978925063002725499102456005470834701840874821902817283185242846262502426010822269172072541703580319044112851801668584236942087566874725591869353367912440424431576741751781362344573730743687185362622554562879946631396671113578983139467409982666375716029893959854901202225491939843973299621411232376004662584216548414010407542659915507749634279925809733038868579082052466290844523756841977426833771746432088093580484153795708284645668513141348424257337120933307583629808617244944488656353284633817332830369857042295707173850978235075362117636043394602951778589660384973628207683414235885943658287207127828376526809268738385797843424843060105478604282651200527407605530434699605860570078869700926015008550564231214143206894904936747786311930393224945231128454388144935641524882167030700057501413882844930973678338795898285895517391486593649664792753562117128336992935636321345687303302538117317917790868981806376588319228020589863638781569546986378852754792814694300138387200875447851773894170823727285740784863280406198581097331946222375162878121004795715169878398839254023648116384898062901414678001546334592321883939545371083559431804769891779399588520149601588846689110826703565221306900357637024096757407249416239753508121768571130006255595778698467261136956005363927788007035572809113729863950084603878338712240321170726017597189720958292779751591626760873425272123999105851864393753215694007246542221777007702224255884688616429048941787456019747895068095084167263868819924520518541951979177315654045152985674594995608154886396682459041837579267680323594111078916858657777561629958512007959053409307505238208804253945708625511633571593448371845681622744464109141610580819153839900759683091759427961691608190694721059908208144751034389697481819614288096139577165050832832412444098875750639711227485932704956260090345332017628492131643083112804011511689200531287925287397067097840827811108817300091526503703502565136115010801738933807663322140401571636966706141354548958963384243540003970906137048338208130586967808411869388075316595383598606155946729909391095204226320801590738169642702298058956615291936903633939391224086585437798686722072321321589494348678753047314460400722651708655121282950015545168766463664799145055078496660701601466854932018093747631044454429258201114874336942442992513964734621715157405830565921123431461605515598824856259181406333710873093994494417200445871346396884150312502506974769061665410209801578460603890016216831987126434201681285078375874460063110637249920109009880959698080467236666258600270513233366907308060205146215081702044941929998980458966515346405699007035831899912856926411807136024178649768488957297613415338224680212925670509735001604122974261613473333046197524059449891589772843370615143552779351793788021922882917234751046549035756461441084771709484890650566645995938536309427442064067647770261908637055469026689667294098728883112001350941152884334255371485494027762246335946074397941599473816138604218720799776074547864227043188377826212114274219890758022956373207444142657736650411691888787779602458715584920743708378849391200410800782224080059901559890761699287355707079445734140905358666639890270452761898306737595085348645004895868754629696674852697390948993191378559426062124454712989369870676707265233762994208851469399639366872951403033453139380462782259694796324344029537762214019565919118965210207559282286110416286313323163756686668012105371885340970364600352989825331358383491711955762382465180697016910021342331242279858208081908342514372164325613581643913359209350540630078927687912701439002072766763610821787481069191521811250314641376145263854541807071140996895983488359608092548538469195219613704276692459010795645427345044130349349107171206566002525098182075768272330097453974292057761053760875851211761070700986029628500440319830519199754717410953744654569763443863933023109163446577379196906262390641806021093518012608989160751603847923817659136209704774033339877210970997128015442023565028506413188745666374441087309696392270320917215767945971505025115492868963173861117388675947072745288122970745991779276583714979649790421266972284410936118859381219638117843866562396198590935128519305715614111580176336592846407628913438625758227724426991845234830656802076637372248843310946530846794604898615150355459355450769645698452671529734426545374362741710394451093584006587433418197814703678495343196693127931030784890544378590258449723071476521649671668453104198250171189463524074818668101197973046765725861030643747833603009273500213444919076041023666447262296281700349202663852524013457374290728979638137132334526901374308177655707937695548285136052433604143463560927550079230540295917813703997877838710801501048984881121242392320589266543370750009387705005139176166222570963292408258735651152790634167159918732297090130889221322117952457800387342756091340537686299197837311487128292875162357196645016912079936127549198991890684448943511451056585815327196255531010645913527606665288580966452766231219211894946119384184070515704204937070092399183053738123103596734639671975304885797383643310785683472719529661109735910961854773553653472545021407730680190168486446219750929284762831572302670086844246668383669514962903975268560034608087365279647961230673975665128904588484029226812671332282646305028382096866841495142212532129964691959622610097020744073194167932944435120581565389213810262983735476622039258859123169985364522684589681279458574004564854661160447704382315036761676904938788986214734568028467704171794309272475191060818598469739181668446539521387716345330787276932883685559876543725722838908800176857073746694318900145839143373734773910461119946100434336476000875116626305775884459488020030610483698020656320721148139717575826422270253123021259060852159268659432416944695210016557161964671568308230125705692859060230868953799059442449952854610013824123550376534853395624040360747756942324745037962849807015785840363216393358961325160679512430620071176803729932586437128763752656547478886605879255431776430446234638661030213343374027625570938240974167216866420429401069972890887035519849558033991825470766165138215861986627977783621323756024064108245055122727553389678250029200850378001563208290919086645670690200279630183851477672267816120197399688625135576480530362871889241221210702046063343451824313312141141664960507546267671376765618793136741144140865836934288742317045708702900941936713269782641842017531787244007950689784696163182590411043612211977770563045870019084122501848367951812008436573843593106308124588593118707372561376743028495364078098876299168932025944404765714598725505847059725780711426853703892819633737787232887237671783393149433808008699404009961037586325209296307669049242460226630982270969240582780340990564356974595336768371926744195941569162836125163849666011813710360386847545693281237983599130939456673471564616629590596935291510695719425480333677314897656945357484539969735248224192276089414771914249122510664312003655809369231831337169943817377658921301453387756432216999341551537190050733560747744542364522119757734250910932020835898036282568726405328391597575830343013244560416580894256658960296648101677042845004926226446933573389775076816919339027452630019014251654061600894618943908929867241905787885617565934431158077156087919385616616413598656626025279044122441855869252618855923955665360928897906020181616017514741913816964783258599927434912940126053491395225952718341211363822557155847767447697896813542022519183628926331272140331854709943965032318728430159110616052259288681497204441656623631099301096572923514953563110860569675618281833249998580601682494041654542440688816131595999850515416363198481500451475606769083381730997297530261496798687385871263133559943382704337897432869135067223999821091731587428875781057122956869447757910971744070172665687295643241462590399077590790474806917752483799122742993195309659812921494531462061287936712434236937714841629193994593396777178423058943550297510119207306145909690119816714642466271524666439313536583306687001432752287611462843992934055183422511879662386579593673604197460400650425953337860299719509057665478561290586669074318643298115674463648326402206065019270733486256638279076557182774103664157427469531352259056606043303661095078601767067594749354504002704944771885684248727769867810462677850061864532862158106076960122486775104966847354498146339225361319329885847337556883778701676674833696535771913982520189130760505945817537450148992961226892186164863499792730430950293135175997572964522608603968904851385487725428906218273053816124226813588520400641087728744534677730760142588012428423849910575859414994894557004681035326890861568276286835556730827677343216472668619122543849603044091386818891687810975279762265900904672889364680781875276269736412381622960454371630662300455569902671389781863582326798609858159624325323239161484032700842129874001522089678205464203617602099914861842287655776796865597579305892019325584187177297260757069002692858717860678180090694196592720747150649899707105264391727251692023371425828345641121505310858678038687252588905757371103968623325313342883515370744384539383802483756019211052948401350270940659117399386578053853402681049425233231893660311449002426790136824451358726785012842429442425909724774147998474332539757658245495407276900727504225499400845163616469063524183874229479407049227060787474440042725875428371520674645179899890894613806888839889304013524082858030060343341519171336614581934450391162412816275259615198087050213364435372529935783109543498546000871699901979510428577923287333606826391617129426551459808930677613784908057909449963005141036788766801489366231337037488125673917247394252941949921144383590337482695192441759266905693594125739300888387441637498077886554809280987431913999126064367585634481590704439328759484705925673694000960566978924240872923173007063446176834387841105794386927323279378722004870677159384940940861530011919615626343199177395342313524196294553853467222465021468512582411088480829539981305376629964065244826781395720879559402676030314376845206462573720913662603519068529289329772150310838866812671666557421119583289073282039288023559810093096158926018144390640519552876203764379711420115454277871446827359087101603338025805752260829280604471090438274814611865294048057576371771231710968603419609031660515701125882084236315176995793868763648543562613173409615731825026975381688338951714630560508653806109095952425043871352453501952887395684320881403885983028948927310411232674609717209580283533655723347430196200751905120240251219168446939838678570158116957639872150868435007434887202627863835606163508218341733690105340666027969876023367722265116837751704687606042741364821170307174787503216407584105965322500307975024470964546003678812031500393453058880448911046855435260343557265314738338202426566168806897000130422350784821710515819152684506294401335420462722099797812452103460182067626480323129061403868354507022908049561169637126573714455220314742462764715200041059407711460557674128723423537334207765967785812041053755365728171239544344886741380731161498659758528483973827925357142926966251499589049241751705053981418542870175524551505835473907235989058716315156699152930506110057299415940061081938980268175826852511786570079620663426606385408715793839213058114683001955502346797011969748816402716616056561532409875998585257030140713557850858780093222792235966433818038598302722783165841422026998017165263334579137466010333951584976300071696773277810291590324674165080426761551040211342841691235794649715786726413678997632688737802191676435960226990417588084583824090462298390769931116477931822893951598646461378204773541989026924661718667951839236543959620121700422560277988405002680501477879867844692094965690312416484298165427381653828671590061880166346618925644467390632162342356809144735440317396525966345045243290739584260709942674953807683458596505426113748920985389915028038359124864538647137136372165269066562586548610958901221999396965490976136442509425501793442779290563571721666250833577137872217082185674838573640306733120064879742236743421311090546368418770973939280505917045527426781466917234007617198027277739585358902275114504779116587680539078257600232026988438328344432603358172804760785375966208636853842865223185304272024313776084224440867984824840236158986991930733537939614144282785971422362815319932736639876302455653412134875418782217196935033694404776636405156874220963132945822724585632767878284872142240152899737334402196225836323487274472557111182253173357658849583865724786706407218846225998923909163403728155291982567973323527643057167840713769401557156367273374838190878297634339135594587784887871987867840452122349435197905520346838212623832111316597347614937794748169097647755128282653990586578356912581810491650561100165887340790985900808110153263802673242835299553267920254767778682604667131247054845246493013861726861232477211928651226014017879870751627006736023045065039375537005976480812703300772915930687629328503043344539309487990408818003583248098622372936550518738340416653149152360761229613777897380977127950386872928778981853944668392877969938286272374968764329975285623963810959961498908432883091025457117965205948448289734821214788116808070380736019996236179602644871551951653092232787590977354064219579082273562321491076253809400436498295613872456113742524549669013820081753457320725553843130146298562266995397183705149881221370177471900511014130538979474819207134081634763436215403802574038454026475644221517621114169749669016123851064765128965454116729820533241329544105753731747051308508267932966793449078506723206032087356705779372467519446605304195087949327379470284086162309024697913235810439029788155512920120973869029660668930555132603445101272044484403241294484655551328683737221326054195713017999614545132612573993708753239606233301863127964173725579480648948487045448554996741452960422281658764857523493150567716467306257248406009428250152620614308328827468337626908243142534833337667155410739671924454584599036006498517612184748555692375965048308530899863249646132428038451187780671358272383744626310981107034713574261090920195479178021707744942865068784038656999381481607179819651618121678572602101223727475249954424218104088679714041115477135652938507043715031933206257759623185800240827550563591941214875681145462856499044292784420091558011528095304036883473401053522984597142669211014708044014452093206378669037815931409155995386561054835191667306570559794440100182933183023344486773463393233360190844395854671652330366458915400060364431075026945115577637626614648575797388536134856215030818361181917437028715137805883850168070165663968005698987118922439367350809239518765419293400566469720491185662122385672494647704415093740359304246969199566640043899418892670768827626292106777629253859620086530561673930487105883954741125237956518559623190570566185706832572447926338468835972670812592978824572425553493715188438772989527936352699469491018916066535368495671220986394269437156444628868412092788476230470556672437361383998253805544570969857187335063998662626734296806780131979755164750107902490834387835762017382289558454076030593376673771180024630524148685481098605367004704367402738002052884199427934556401959796400774151000622027646657238995482242891778845658010894355140637740597397194563056297562881630505296496763862994229551380261552949747392423150952428658234157068062435186534902050538937335144291831511317849019073887451650831964324178415704162269699838052685372205246941875483755316528116054344724547613237357845857908753981024220512940176863340741850996320789152854856552841892004641916530765468894390041509269557693415624673509827008191679841766406643846447493061589347093709714151033823623875638452106993721701919562938122611065069083994890056633069193981464316282824891707247199356543514123011657391721234109203834293618337061924915810662250176930366268905861569145830027845756024165584864968404465546729273838098828841365813022044897500721413281508486100601415154261087678321981826441139937980114176805172130765723789200870689525921674872022725279061700929947252744190037548741160439184098918315452722348048559098184862606076148717871897609635755772490660345561652850764488590848715911230391083234124436509203526484697441062594443690960521098251026987482692239205969101484153135443025562032061768222654178927832180711797068104674687275146458515873226580189019892293613004584286861888972589268728404088773825447702911212093259021766439199066140494302326363493328532153647260562539709926008554615333431197028458982561667331671522042359112849825016099952112510170225582105580473329903756112541312453083640605029983290462092517750322584450414841555822869030704081047850499566472575032778749312804248566823288086065212117843928110336047668203098834673928486522944038240127783775048271869777967485733016867761576990159077082513850363976597572471759513649334115444684871207709474646881744906616399873553385612713464809631024234768635255496759559865123457913190344535346898518201573753483948784784718235989081588149756726349778124730864175048694135931226099986330080839703053283709600845431834182854493561371078703865127888735748559915225278638035156978539374243280491918897560388723037871694888577158150843006799754851499810875505976284689797859678411105207278906265503464203636524057061221024087286851031124153401778039167738262216669543611586671496588865569314767057880544543862456388040904517836008203875657697083198838693643889319302966845003968103604684369025511793771918195091368575323665513564920922986417634591168267426473964292965621543996960205556545936224514631455852639534019599516269419472205916865876858878086409911017804619727046987142689334518271666479026942540830931547921666338415753744638823037158721581287184051397236499065645300073117758400989145505059546897554237670444863925035662500082163366548173349376755556371256294219327814497342475249291505456006953191991664408628414670638893816745436021271998666623807878703754656317775031305434631255428520243989744459382180090128215415109228015231297839588905956578275961721516006048060526116119929347157088880144396048702144958493783668735054991867588110547599111672231922343405307268533897457523971143524854755162065090753856350625185626157745930845027817366086890807761087680030696816314718686945261516470340909209637511072462239636184219524148924574344489024151307319213895457637922231935318918251024659614326139588334444970458894112465265594092224128244706619951084637896809716568669034514107286389357841153352657998060227205836401691946716141480936644752171734793124102581761930322165574236304108518448050159838406958149709060642625118618049908990002769866663738374943712359347983382094020530243979438695760823228824681806399408369048409960781522240202292773996017540458276127361609591002603935502709189308133150343791613018127984394474830334984219328703165136503649105028232260257600446476936962796614196956043749282245583778755055319951563868830886265642692949174907664818244750639194420225582036925085864891538264333303286708200876502738932117617350454213242300499642158413274672623397930440068679931269700382528764108683850825192607906870251009779505761248226721801896101558494627420965839346696415542126848833051899887165985449102221441261042704888682660303868396268507182023501746952744335287242763764919115846797912225127648999309540745069034927273050075066602031809368710457902545671457011581256040360386578781159296719171143022079352724502982064073313797408081120748844518130415383071386460712361744424375860750819622298977734274721950119480163772422654279432876095516815014678526723840015887229683852749104118956314295976470079845455352557005857714974631547494967015685006699513496241137346725698526960513320785523122275076814421532759596967798020735551034492413848375926125994216070322596394356076107619173389656219028580603876258888225089686045887111627964554727901580171470596264574212286808951827246627387772073567342028108980992928161522609236116841515644623940680376981383668978879509043858839414096885659379811907927307941088800124331328372856677781363720558071167229309569342947679016904173230380243650081457204249328718569674308908857970529321751621678936871914961880535566901557301240697104873321172409323019602054923007196420567517944281932662471930132885555786178034957251157359382858575954767224134162444170831661889709699804843037934328210287184502855016659343861608220861038049874599651416222729588214824494929830987879734420841912639387672133458390998834797662396977404985914014934257585079616169402150872215565765440034641898495640021102412096407790798292723815295391915270955324139323919781278016198017695611596869137621823590128379178735121624791404478874421947754215174735787203126822528416798360998479910819207089758992361504657123174027607597560233784855024661884436924196313948801981015492665970283511222705065962051126342210138611091595565772479774199112226909176498391350101540634040488620018323104128921833693518008565628347099290741054573792057517560488411916254167500758320908844597869158383917569487314656842213946227087093226614730053089816083247827001699367213738838908324236093690926673751623673250749524443505385459488428643560130282462798411342091666136167524026935156203966655727723012493268076921193751846494364418776265979137096920536472265847634783259753280377781763150348118559426517383026519247312952385683509036667020876987272884703643770757673661900840831653668696509222508888272223837718156435718688852329654619194281506655352605057682263631009251732735149390270001733866321634881443771417152457164720020679633189370429867321192204552881309762996332640973518999871043827508039593069321114286461637659114267450680726659678927870075815051132899329699132634341571257280025215113358675810536443192374246048414078688335324666989283190316652337926686577027956837427076984967388844937002046577614752253719554926274352681776301149329615050175705783730791887674229744767827512574127130018593280427443315623827219217067739544276325733888763138551551729509577485015518708056781462570250388623662441690359723243214728947885033386620815657834022021038040926619967614052754492196037483612378870602991043988059921226556336816229856797912122105743966026881490304163958712704388361770742955879624498309244707840437427794762732747034511376886182053649567832335026583488750111920568340487611887884002204157358872956858967910316204586439033422592779228282485268328300588304989813220457316320363757890554581600547379671501561681717629579990565541601508104005218088300164570652123349415528543809772291980431773835810540360390269752439046076362502301079757659581033535382174624856686602968501688285250634810007272096304905648887987433374341267743836945883201913894287658213876895225025831848116031100010007071952597838296636267358739693049636480682427340048465868944152159755534050696356109433346545711678581083440158931790428226627971909517602598233848769131681954285764110868715164659047209213313050903724538547497007793005674750163344611397806012829426853110959099538592535369092937008050506221312506846350499006841844429815661712241311785327809888617514468165304017471582971765062643508886890723666330383213700232778435005987235551196036976818259396145488986517481763011156745083559650075894882622594685986091332310466396871859546605116362614438832679863586003985737352052111531102517158804837889988966838786990724799639063101753216862275898375713561110369100685281468965691148540702532073273795100160600340661923099220436814371955347862657680323262345063855669343565924304494938864552300808176338787132269802448485092177652170645116453434042719575556550161724431917386964759752687019041525426174859273561826557864465012372522940428635261725712058980232968335440358065281419016467463265010332656291236886886110403414047877448946447272624303428900514571519937653728452952747569499894712317494694959670686429568280526876556690230648947051973418451183570397724255715373120809200509234074212400168335599606135767919065633810125135251170484558439904099955362408896545245092906059627216800505282962652759992877225559803215745541726353494170151008706292217692855588696674215829304548471875358577183825356322032311991399736450164560638088078301932371680279915581939540255678131135274479664207619973499252722025126638973764223959850733737270055054256187008660157148135717156877977267186394709843548830062226615221021274828094747142089038464412281974782788242381225852258403209176413396175363630323660871126245809101842500851013999404459196501873474910845072366307594136275610038914652596592765682361015079690760129622175996644889157326627410075027872591093668028857931689167904209785384133813270795558617450066305917824358949568728697316859292409524759571524907215798349767571300130442874303518210143821177489836211848472239862019128707712553779736762633232138267241358057278706935724915339448076830871598362921529418815757956105754640877686660099399713295862822559382639763425403585767051052151886254517698071323775498943542860348864552377964114189342539687851485777948486849004569344582509213417694011847556956226510907857942901787196920042293049311413326139834870865346632250727066037262266061106596291088540293277250297518078394345396769646173133845034050979021547972066495777076345305797345265770905362438484289730184066235997143509399498555264519297036597111890180743235562546917806006069554101062086877921436564633303187662698598005141914155216027212281494421159096449536192973265997284089600722959823046468679156444796551310771816452101835451732240565221701174397895978133526325393294827358999326812520430053573802804545897310895634654777673565762377279136789369893793387698874997082594301479334064706974743469872207318189952523977612882596225065032599913854135084271818958509410098615681054956304997596170818593728406026559556955456573258338963533263279255464174380501875119399466829525050742400197483603815540046284427107453476102392631892489882378860984357468936040816108001448616053618293490320932130546235046159635391655627278864550581281172366799693968680896467858577515339777457382140269813445749410781272629459679894681388486772170065427934470376888447072007323512046509839707099589481264806341288265271753875543570279801072674729580278699709448110776803326462733884698187728556025830119268513083204849590473311014987900319922461888049626144449815354596646502919834383720112031391646775712309342616261043979182716979089488719474435958942275706232143869084470047649440985320483423884882994063691539660059326197282327894420012584514769052902370544063817598843077213597124973547337291129824620078533134237975615407051140112486542189181761915769741535848759550087637157161139929585696337661779562294852842100561135284859554448523376188729568967365611136559360984785757472392499498159886190015486944125669835668049804577349603440437306513692121666797129978242304617945211435958974723332270496429124592113286605955587995912899351056380729218838648452557737340339400369357294361676075880062233750105650221361020267509389952144321891471406181983929053020024349478486196490559582416176032752206211482823136503240508700020235403859997273109710018434462294888431746551696201431156133248279154902681805739893626990631098884545670740040254246700898902608163695318706524561274062595300954852419404032683632568616023008937918467459973355400776455904615964572272360618395314059587088299821414809641004383254802095059997168239907595793224704948918008484455655338956023058190233789184612516826486864649017207159098198116767124459633677293524353187690609583238660096030183518557994859267411468981821885917228278037964919834829321686983948203415501681436271378280522599843626616740331629655889013225423435270890735379614874113097224316036772973866779389062865653846064888062320122120892953422485833295019291297027380626939125668039428525994859071907219415891515938463606039014741035373322977068916633173173496465875913789356439071131419869283834596572440342507131385741414067690721023729079633274063415492462129589222742305973233338066707129306596363434687859552086602189673184972795747680612483580313535405311721991840423084519647906364229626378336967917394229615430798043552874172244841532592229516071097308388912430442672532610214615945441986595918870749923040159864913573802528536637687105582256504042500919146099957869918209325615128738415856119114995944839949000521638175197863147698611972404860888984269445997833154297460043053818507171406253916465868120221958720198808062696402268470682238765202165057661254571759298872846441755126474626247841833352159352121350973208201662714011313062186670278163794985972337518264431796811871439137355164806243980539799476057863219941321269236917885056168609433734875387819162205899615534317785962756155014282268427354763498886886098195650797341046694201548167236068896155819822430890766090794360480777939930925580729701486088483944096272157279940521090649760714953321780460224205852460892605700547041355100973214839361141949538321450249859797511336707694046909548611513501487840900796188874398771369495160953655358361433783428955306835612475087428410699379633443226570725172307054508760674548939750826057419448912038236368103929667272054364120385864470740254208312531575598500556616075920093309671492962206799531988231047933200411241862390317491678966663561834744675294374023212708619433972536792852748776694800593758154249262335332696820733346880665166104983270679583278907163893026828176406429409156398848520475267887077709080328539530653340944422987261388034167876425307595968362545842252137799443725751646640478797967082184237566055794106379661699291128767651058517481015824193033897823027915300964708593496324053781724617889498641280988596968283776949638623952692014648657697922817522258632003411710945895796771538124965242831687448039704722798807177458339735373404044897420816202661712659935908874483268219179066070487131677049583184191481701474734154966505742968631589605421156565675800280350371509716719415497685723736259577596831834629004021707324689685951694668841002319954822310027973123924735698342729069889662289785782633434331616020221726150598673976879066728973888685777201086945712533808610246873751166997920700406591100609986309816562391037452981180690132729748089135454895714608954129709959611448934188171126716040309889787657340364244587379786389059869954693396309464446881230447475445776465753662493559273783780328097520089706355794201982467202141064092602170170516265942805140846222669583723346450592118820315505945521373105715736148293265294750672992223963287493632587569733578991915985406938698426492598374774504111100055298876642163070824733512028368360653666079476415859585900068630995279460709649956771680431703852401456513673893523654146175949883282731990997160966883024095633980844277613633618808236083746719927427942640546777847288391795513837869158944452307233104487644938871145386393232864551672253401546527346635795308788315030724262636458726411930730219364838271790284009569040520245714247447502657237689832918217043015849910353001333474035543506983528726098407332016137204440001955688635808977272225783798420234120072579223571252300777659055399857763149250478891374348763764993003773625098665902338594097011575345834307874716650174917724208446451688599405663532040448380655939292034776201409821089850989775692604980247969446765078413580641967310569927649572242318802858054189121840902544749108388094836710558065916756993168220850947590215206100705531514237726275252607685494350868245817508649507644336592521483500676254266138285270309097934322374174672811023111800444848513340810203833941368091865683679003198668167615592362333113592735162287633265360205049413885816621243341598907004284659135491644229534606149261440924335721742082853954912841673667146021930771270863480429949424746562890931519009186701384891526827831225356017527669100767774382672880645035972915033034086459875946542167139722975315334805172587178734805035602927782328602016378041750749740781619201799792176536419490232085979493358944131219618592759145953420517364595272585442653048458872430487456063381666752632484647414137907685464046564688336202435697128054099020788801702219283547365207972836838799717062471728732058377106769301093317234539775594943684099524193776910047046399295754397420414555589228566645120574070070933796085294489728124373252984570112411468298474388268228108553647150967753967503930430560495234176016400016870792497729289915446870007144782188881530548732621595808031051863004118297726902176382616956146016232080950104957106676997140742140168508368365742340363110669959907282424664163155841183690114025466434463402201552586623954232478176101959089867045044750558810658953928315911862420768158581532876267451240673824469758683665668302479397198969378005008425262826402218917655940082368293842005210716906537189497031254423207912671464674176554860065965404218073903017260922353113939524363699195678878060168055567944005670208282884937962882406074947659582833662746146120606770734077708995036290606057080083728132862571531540184147723000098745827375720310837420639151706224296255345300099082351581241008211022955698359534005202470767831079665265284113373281718655066181275154026259133170813519620934405511536257146949837341541924876994801387530471098376020125178985813077746009898738734930016090270003251883114479218749154115904630095548451241914055062556220920086299221869346747328157030841668868301537287924701326266776131726323964213983834958074671507033040346679652739428555493186081091781562647004026774844815804468354881643311876820407365107625854564079722499945300501200243490176665270971171706222346443071439841326555258568904851302080725006242476206782551867410289108238572233594114463381334166413397026938957647433521977417878953694306543847815408570273690507109103782396719902998924237454716542145338328045313505378884556385698940891693601479816062597896099291088588273778111303542518180336465101609319976456863780223259246636486433324705902925207244028408245281413882956825106946326134034779555987033915831642820782693780612095161389773877933405559498605400779024496547385392337600942348478022796757089256770874002356187261191155382548586117378645686133208028635109545005255245367680934137755538625295963066921173538248338895882801485094907597405401807928043421906390998062388535112962081222580042733121722988739520548505307913599758503041832380207438469760168384218159145719810582646222313845477277325558675715032985427639751453186526231251298310921582039290786465911538195162526825818435763544408587714767767294598321306348081422071317815462463461001694388764974535422812238979528341763259714641140539852707350682013711822780992155131257891706163743692510289235519369550768231967912650533365445537326685862952580807738447998083966570648198250204034811290187626343824896115005685228616086345769568299016335508399994260961723057338745836945279069491399380353314849229327075655446055033651584532583982146382634383186529849795612277213986489708466252447075373269966517211492978701575046020131303227132228871551737670250487863715532268600505607453392672782658761197525426491063974647453176737812933555567153344430185630893350696184453745901344515151873863962686380885414635010592900495593517358015226946745312063245151205357758279455076955258134075665908860992220384760828375878967430926834455829343186080865997117412798490274296055026383441260311239669460844420888232814092544431127498835145085968673985299700859862376061943885395490552822505972672552929972595115538424244228501457915038770298584348907310837044798963244009313815757610646746056096948721525584871709789995871798940039281820903515121513872395435826082681192587998782449408719851270586670268376345038747090769840346115943030268696456157907404324349782629825463835761563869589934807282103827227979900105670825304425299468308894414275510029510798910307796641293965761575934839876636197649488542877466029301053430921623201299365384017313641201418163138569711004337056954036414383118723369212647154388226750625091358587917016046540126639332835399184650760811579348517237161000132035842585313828802535062072932700090114167487903030564965480820953022573155769201468986514645574307160228894436662732156178245053499802788727232062580261283763156139756552318935544003761509029337568501079453741290892171077684700638681638243997349427585377823931819782421120989246755925850861520833359055309952075059526021066017882660779279235712109695919212488294647381626310602822996790189862855853345766355500257467499698535879156266196321139225069243161343192997000800719602226556753824342704433154040312598738941414492565030418101255952806122755606737861224049787494873424217883094065059130777805865957262665837035675819400515755082850814877417174807764941487556154299509918083176780474073877189961407981103214106346009640421511628423270930112854273488204562541978194716319782678307640043360339488498694430174668580146578919076301443856258775650625997653884521537249475563456004595444906579232486114172977745129953239888907950354059385489994614560066180292644255243594716750573957332039901112567150443645632383507517677145708181189132619231195512086373501002470085283915685657251773376833053533690755760253994894287223385158757447135458354822597735939568956363812784527204291979130473483366576143188197807521995433136603229358974346209371919402281316491098095744418210429927081639927594737627940361881966138963422698020639240117379506866997312865420273021044735119315352123007207172634487472637864017512471055789928947480818533479012636358351574134057557684033263909019140665324292167958125413698885502433235013602637876108765566577724130798265617510705500846241319959775966067606741398310199505964144653648865062546806980667541690954349291230489649884625295636629225748578603858765709216074639474004920359665966649163357054671916493039685560937532188161814809624644883382156287167180301673947967053574228494691503428128451320845588486433940245366282331959057143073967597277889252795496718393104902403367731564136959551047539859616430101667129245119778206569287025854539321764507149048818214088961554065277421645782643665220353760710191727997670156421173318174414374464825035907336430256894025282708008255406621564733894404091958949612408513517861468486279097504415636727545130644322976686644051043167951289131399503689320079427054413966949541606777746851167936205127296152849965437939063507606305448193868840750005925809329053344687008962571753959705591941142966511517460323043019738038257766828004690732220474321827668810776645817603372232940960874061493652075869348365960184282996867864966896344133207258903688288329941791011482418553930492871271358006662978246144562631866125442332255964709427705356064358307665024952524722034560015579098429280136227761391670374736548198056920045610316932904689767643268746452404984826221029240413223417804933509451763644660097345946521979785364047899366189380114917817683436294591120187231126283862811462770779946720170255099139016544277027575889095211953349625989064550507480712260241034305752897797704911862746853046060239223449970508073876018167826789186767903861927467250745959527747071456338650646678141257953314448566010330314616025208552088643084722614499575222654481218217680861649330051674040684295174163111762413135577456325102773364980253541785488822890302665048756302486501496970344469839757810640174041579333125137319232035695874666357346651946779620858662788436804059890496428830204989142702182599006384422699162308971231104095271090701564811853793858134464760822032696421118805857038292067350952606220299419514012816001780963558234168161937207529505822278486216627756149638698711128010043803939057836078397213077953288544640496531969264818932609227288830937782730167924922054399588781940846900101813965128478746639079791725527718348318147800404566606215687920277835226141288699817525814873440193112119419825513945757635837156030220926046616578443447781091477976234537498818645053244118213412892709311242149787019050092972088222870025729902798578458427478030254377837043193320772206265595500903504780829075320166464298528128997304958459781358202390160516314472423942641164475977660456728457046573133799435423250934983036884880135928744025850007322813048416332126515623469360373412869525407724215612639727425443205984534066991871427960986652899332931114301128111288114957282012007736623832426071393834894950865492286782642977254666997209151015741371523891834356247700903437213187939392763654920150170352867752058506218008978376781975146998567029214295957792067804282877972737755360731862693393876864065794614527045819939044899444279535709917566329885675664556191995641352333440446520463157385360913675856452252253740776605134078957533896369190540162710766396952524136754140429317276805346641346487117987414472044572847169889550500136797318838161721199834272154924746114285299788677842624583785243494356576013697040435790958268501051075915206417412132673378416822374433243433622801518481753452384183903786988146346046826469777094091638456503787622344622021994697399689570003966199668399782230935551374899223358346165676354492030584776948897585735822709675495488002619309753246080350568504304180319963292725504716793502629420885721083027689592208961658962402225609074488308304778052325201402162568270411719233204593108051393554107639887054819253122085941323962712788027952027240010997896511180589668871514009238067684177949265542828286205201966151189108136595450956589423147607926929184398039273435068752294622705385315948982019999194892040577324489603585259465213793023594565921222983237726735922710008534465762131454347764880243199640182353136328076433592844955633701164562406512718509942290689292116090186379143251798080962271802513859245954981326213343488987331290886550782825836131250721761346142504483551596787336755401868898196880842209838612553553159259491720546771697769443140703594786761418572755195778071768655009201435768800209023461291261343789659321172535142480430027719724327123248531272830980543985275294249037314474312661418733762827721814639398217700789246589374930834379591263510680211186564855874488300019109977016698207329088011551593502531990586862195136758215403613754453362758908253266359384182842797022609707136979707481704559161508220644449386838822807041391332027234088459150638729941957614333704671063176616342363675749185919367321503974652268363834237089592788483672262449868672304364672214462946649732668231655241482770593177784736541616583070058896749657875892656593791131954765375492800242089154966622147826347649601915825487603779173646923330899161931614098350188041580015540627496166382733127167773627087863120710856370154695680828062339372591512637129337149663420015488090128057517361764590953445110861338713859709484231378903394714258737294416148212670986059206586884436346276865423943613812088457876507228240905045821144609825252979283031702981332241396747643859086965209264285800264150189303557301317537020583759026238223068623150941909477036904450371210164340042501255465629345318257848521963578684800985580174642604711204323433941651115128512632095383992892214615957936961278309581270969460976851183637476971859931427746109227587826339667246126348445103526712605199526224112128637357740863429643438781089111661877176572907110605739661127343405079049384371653484063940357219002106876546450692130634282279020057434750149664068795499694894453342693109101926687865229906336442219520417847135762461283215960059339405365226422600144829735715762718887051733006591900781509518552538059567220865061882675781812438438976065322685392054456634528424910538256680962466295281222545096941566472843002436954434969077790116604786877857710232714985558945987208852433656478128078156294953500873181003147971053065533340078239251821141218395915640221064053131787996045199692760313080083037208975121941833533750822896734572615929915146822049475234977379536374133944451450891097456322268701634511901037074422214150991894112099573150406624639225697456269521317349021340347295989552918713314822186631119910635931428062430085674194524218766148747451003941476596879505850060872996211818577541451732871484841456250902398023379045020149289509195945933907607556005759271730935265883286680531833910574408181308593747150166946540702052439583834867518431163151122554234472239853095788599107943368960697993981214063762659740011653320671033864519373089567133322347913948192350988208676444196320185426479517425640284911967927812433717128944924436434497368264404287752238499741545983274384357130121597536907322230912841446488254616970821222724819746684544183640470888850766781885286438517845791082030875511622829458324258444850332251044725767686565283209400989971544735948635548995222235718609535630577949485732552405957313151302352691225695665251145978246525661827345452168431378678756048913892913073338982147317679709121070572014341658076707630628455485926450976529853669436657411697848934347354132970896824950919400676639209301753624234354524065935796618411402561029330330159978164686129377259069495184716942419874766884888305852673149517111504000374084951022537243205504539446210523937374630825951527938884386589961053076849542309611509200556297461514350221966035458708460787983668672457613167655891484789283237533508134977073453927870867670552073414778070165851317492865280115684109518781929547486403171397390462279639645129551546224587069698515605991806140720090832846476723718482089674488956884826595866322525126759182679055361124119668090163116114640761826174516672368257835462406847755193839708839284263725657303280830189226657849873224490931910504096132262443474763490852119521677807157993715257302451727138533994591206493284256747539382458940383756465372216904804482735091384564945792684047128892147237706635905427630653611201300517815192536725226128530840074829336214825074622960512040455698535186291685261059715066864891408536611047356396327413269281659471458597642473272862756303927313362520265057819115379251998573311436594610297891610062278731393329808963443625634962876617560344218067690460100951108446244222978659036806632516755154935647662020697388264078330809875090199138999188302542395128455355396940138647274129258870474922822168814321854646382659831561565831990673741109384253804476550429947643603786034752756644385525899005031581812403132615035384803627280131299276029568837227698253391287185853368994924405168706821297899191735544923367349704840191274230816462660454473087831440304551492359154579344035447044622657497950244058779560092741395629322619837416397235215786006930081993446119228509214789658505671679563266634656055534685163909875641247534621944110818475978910258744886662582086579398572737665936874681508967582756291926815872548897326270029956996379512685366159868914495556911169159825414218760356883496040024929769159837635164735584641731297120451870716431411068420159858076472333072910059337259182601900247395194936939167725069599873067501374153040727692585509973906561793125941804226383484154270205545902734267778830282220523030511156710988283596605237685313186205124671131529650807971363842171588489948611414398108137960283524835085254094604283452300791859143906541291705902346255211358932986236516521087433176674594710745410438446825035342355069144763433663490882074616623276720612396914876722787390203371005006457530880076400250697662110961393866754398795358352263552301980934949339174377172026545082081939433605315532054954111389980688209527726424460923810015718111270636503390880160468675930273163085868936412839685953091948937653538919149873776926504017301792152090476176259783007428084171928721892646200566680927428401900627261354986316102503654123250001091755138809451939915410774333448777930188218344885521230881133976680161136353183031835871663578829056547213695568422916051384399627355856958109467900395532468462164988167787211789532903368608470911950257095201378460108536818565836102932199692174472001728806036849495883487557079047749367421551959721240533871540420403519542304000812087463618936840292445058033537344049281974858644070084472965049391641786804858967122778561679506778487329060394990199758389453520552450014655997197495424136032674625911327141465271030520866789293319066456485819706015026256863315427940995144986662931501926788213232260287689286514596195192238428163288127225090936355471721924602952835344980480918207785358768054729857763081274206209963954478989422509257861604572942118431414054670725111234831291896714706811541461857492917535013553873855936937778990727311665124202336418340513414191902780804673716806126263085933620992281684753030455365891678026462318860451145167905271486718695736143579585726652585569968502673128738893610493274143324707573876415597379719748288311938758963783267468416083964392171932080364626136293530391536101649672616658012487576689777800456753914402067246165602669668010476936893617151208674275915324958752946714644567055102598777551565282389291580905361359102371580610128254798304282293183068624020222538775590844386459809583774879748366836387397778891450270446271719124161730192518029848810410767938255158528286030894882922939001574285400615041443948866828416786312176618247880657706166773862836065904676517584927728497630162010996024766065757605165044895137668098750475084409552302576963124422107996937651344303934567274425669474891057164842904902278730084129049303858480834250084534028479016439190006473613437635017889226337528235070074822629917846621624955880834718802855854500782986253084913288825857570315151988703377452597299510049645701353922209844884384965692907758841019317887673150826825914756974743229163937928431201029448987843704674966027097409169327104914020367438533870770954418184804737737200692534141727410941075161515072812864822872800038177352974581832059060170606960038363281366722916134349174412195491098889041956405001174326951576553814192735241088892627902739950772910705689564910309622210376151430698229843528995267266518280338245691119895548799838469995516323009240248512942164514046775187727873726882575017029616362270477672245738714271557369370341589940204684902799168532667569953034998296803591693029939330475861101127963237418721931568689625968613007973103009864356025590843750967877388272064261110669511081722256999566331066675266276238243709756150516960981584376884167733950836159140789036114461886440900518466891344926793580757227305296613528697547555119900321811253314159986518767227053676764862718898611319453372882330472007728752242624899869028307855700851430309355029030436938214852812092215829320133081389079002280795955562562260753823745807014349396575530171907278544145131963442871063111191380300252113377460876924497329663581343006092629245786599260936015678517252841730975014312856737945162645947919374324117188839488585803763154902396846427457498485083273148668621255719533935204422926934361167595089292222773888723253076344899412589556023253764578616150765410196457133639334749834747206061842351972538808232213285967002258859818478278818115348875172558773692770562796736237151250726886408756686450685581891158628388122276362810322023821663121486110660616658202825954607512679275157926278452574038259826642642258145807338489530445737211194894937417420974265877552010160684600829356537389623954553633868457783496407935817261475077354285573582701364486913074257826760878974805415429087478607355637371560128835026416378691917166274468108719361676112136874436235665935694289039720380638654514982412617899642966915876945640571462445003972911193501391615363562331429285982555993300415186897214426629637981267372976648472938313159028763557922876561556507509920521503698549477101791997983257208033942636120333739274919340460402810059435732003600082969677592277194374949462442339999052358619388302455050367073974840594986000138593451722623381496719548106120571836151702634810527066972758451635763106818695115680071553573730305148383172089747702212064761278200204636990051638042131203096931893013225997684357914805948745234988254330402116344794015808786227187707947813641585263708436109476027434983242462997081935545045081798029174878780028416763954735290904465006854330408875996407998334741569344884133575039986182717056876275639609835539684369724319857562910621108582263728558934905579784016023399253728703703555278108714782727287660288840059477473026744312626508989653859571782463984219652030866878891545376131241797783658192913968103790201939793340474790816113285513466831934897045566068355213754053153563512282111633985791836658360484083774255643410490636796455158867190750581048889050136788060716641093954672955489626877899323816407794944174734696164877961698013981799729454958164186807810451605578339841316441013704247540227719078391613875379507026099099729094762340514149441586446007945309288044964799890299090960980834868018751241114539673875481232976611183430588578560571344944345766036829710134804699468542587208321642700176829000174728973164836894684531997220668688671758184173686283027537565227122665055947503764101034786311705019494212313159112077539482376186103083999575932414784790635366527660419785181338567646447509016199912625338766495904609191558999344072663298130175192411133764018647591464988750203042885663881852625107632034320626326167190350734577724864572069134926403308056625494808062794835093917347200334931417762253983456757961202018242985862658717826513947125904974989093298929074136592975029754710850886067601691887270974354059036222812925141080946269537414690481426514061742340858914934759194210694458199815689424728904999814882672764860278225879734932850022976525361117928651848990637700149458670719283220465844525293943320627323712560892302686531345660314729500053965801859102778887688577969754253177595639580754420621162580035559021548890790879540957893381409371774473825020924813953795664671806000815155955003259170499762303575271772254599765863319298627025892058179152488064462147339707204934873641110153067598970706878438100918009548941052467263578645650090555417196175213071978657505538189481355201393234190795666743797153355844551369051025684241319890624452323111099280260660526336454021288012674530157678993058690582728873609958796927896238132623535852757625128026943093921517299998969086500628697138491756754398143981945501172118070141274430359671025166182075160100163977556191191931048730951267598245378717626019088911060869842375653600875549455005058890263456288070162751033098936549778050866573174824825941845038067138492204264722389050570417483519956442756943005924259490549470951334697234636081244572366285568063676071562202279770783645262365735642791314559267304784910095036032068714398985738093607746467133697613390879969896318143158835565836630098325492477589468173718795393778776791630489992281882524983195373366011301918631554212034716867014480423275570137605994752239563922305039855479787557853571846035387363899746119317869357496413224776391758145731254457982488448224495634403805357411498909454419321862884003500183065991506275042196467857135184252689982838031046476078713942880284737578382951869534496681173727932144011304965375680989660491893034174721590033084396218160030366428218605758540324286452563235228388804464814453600723756866172617757972431311917948209670689621581048757309653427105843775624318867845542349187399016052048078000236576723411338820221391283346038153972364412964825617084475696252370363557785235744101026201711216226898627545813721912351060533984614789498032358981838579691418022995251728801055124462388749746028826278443517768373594398420973859649506414459581258136746378385613398120340482920938549343707645169974106828697474212295289665347490983550302130995493099210803124326287027108628031988460704710130215338827818763000388412372346720653583925572449715498578692937114420742726405355549533143006854162805286102183578702142567544531424163940672150764020690361181328539782932408949432248415318113178450828103386090614344117283314307755763085673813516089761425538891751196602877007843245844616708971808503234593531267789241345423234307005660193700845503163118733777033040090267974288832387330616471539194029066848722348400242732413336326137307850752425538391999209267640344755755401888716145516029985215224453619308940875140282577041594476535508488399244242991637596204153418820561347025710775909795590864377245232681227106403320177303900763267205613180266902536680549692336944818758930549930762402868609816411804694429949313344544807259912126377145178187843397084048123014085579046279785598829866261845729184069246122479298408693372545514920995436008365477256934211633603890616645923438316938187531834715551155557182404640475320709626943013652177653592269105836238642126125039807777354418501218111118944298385808943847314373863451979860207163927978454105723303669680025084407907035046122396274083509572757743802416087275352374701675497902593047680041774248841392387892835553221430001394284062601832055266498418655624240317739463701478744795225044277783111477282875869426105008661029788287029185613532067805134785729093190154778767091512241653782542477893337639505804974168781479241853646463013619712763582103619224734798300743441645167060150861600916439317472357757969774392244953227900927451917737954987352703263137062013244265729241749641991102639798357794938069116688315476402137247339427690680433415359728474623464640044401877051263815351674355656686293980218493198234908935554501609298610358434091888729791418086281091891765584197669605069103853697398869405467477393085527905982844416902253391685693927723110534947054618903084907296493936788987715153720046721646657849973100971549021141587248932436836883120107967546494778347565495059151769579440027056533327290037983021875155785323475248670433374506180419279831952046471326459801972629117070976962772781681540646143884921241722949733032448725381988209845028760916778502186882477213605589535275975431733610917353435173866955359101615085163526732557379407889347981260712884981285700005882460844134166836745459543270178541105765243210007494941229468437047469693895539742899449102400322790781277813962768523482624617472990332137961735586622099539440746714430355882358885141244600448843784155180037832287923250718489812248694306489277560751904218610243918947022743631221143291125143893590566111408504317358006154016508490124424626694274467427471704481736240446851403499853378341922452248382848029449027273500984523211184926900186857854419992593347624077534932621274620049944271529046433943285902990394530077268995951620839410581299503521518303951976259863389046728463026891077585782909601133550256559125310431174672526982473801546276954675401957557676481740582943500604428319461528264712829661947508856796550999450526206513261997228012852539086286676793769348787504170783023156853410179164050544690764829317148722196681466575442530683261203775573191499578738209136219312065700392021479868051054537987256977253712669577405348905062559644758892128499377276795832739869900707780841310090636668074788340463030287818739892832737267233483118935266401333633013270108287191987215623204413224926203467871697636302561621688830804678413860022761820162215088583307764731451599352740113925443004079941905003936892862574173908265627167730971055802498181014663629696730501973734487497350211207766003205468077178675872077727273025015143883263377412948849469641942552275381676093975233413834368561487870790010997291140111546090429122903837841248501831021737248398744981490800655866696823300158683633003313730711289624815519760347807220687074040927363002300888752093175795415933560372812912718190001965134349226799049199109574079342615916484236165141828577771311205074854644837033434618591372326754835394413058848598932652546230967429838730694751159200462246530786393149964575284371309638476956138615482127928487113208798669327026412091290757259409740473711791414327431719663046629831659671841943618604776310158428291618309317802934989558554005692733909277697821294594536436053242664328823080704481695745223394143616393774451368404456181783585583972693178369370539345305410562235069289901411064123168647020421459357261713684135271941710789404263028388164226532455509734185084365199478366292108736556949136810331365244319411684927889909078610149207018208024412508741650642665730456148596909785460265792935727338412145199190291909995427927635875912121680367197047150888614788247525355181354769181412586799963834704678832812054456041709828241912564858531605790625449391900557466605481014007169293884041522357652287750233704718825625278043977822318806833673034162338354189014672442380049749031948528608742748234168840645952879327262599549543313706017818900537306856173942736691938237864954762913773301970657384767809314970530856451878250590618806205235396772040776773105835587321665244509263139388146349316084177721709511831755388402923289629938602581380197986966488156593796472467004473896321821506011476022218136177404529001030273342642917685834808202278950131980150120789619098845800731520724139963695533129310012646657785747074985471004906465799333126333016680700386785870965124245822523870807138547837426385928700793938853865831307044718448078708916002712481284404262799777370822493204658972124121452692028895594597588323018499238989307989853836352971389771951580241944066473268264593849390683723981110015081073468937148195565271646227113899952275475899990608332131013848759939724685860690289944230790053366621389437398842232781747748242559647499638605741529829099493827219313141597012047146989768227891211821653748249360182537024054664973304035141124941174396926841660426363544442146374581881931120208363392952341950535016392190302457954300491627191449350294616724193609306378581038295764300942716865164863112853211216237366981210593756963213556596312732950529967605782026008707055853472164267811665206532655125088715660779015686838631725089274101304264385390008397960625958565329375898192118053293321929843394548002657145612026639458270858331889555983969670051916948851407530087216726252467070691880352632826958474201629565284246220047342015415492173539563147409386570648672648757416066626975208634645440075515028542449571654882144323072752409014703251487119760190460941066294031807760009765909261259226937019275799735347925628407451247490809346354549802713804896653514751785250665824426529045813255934013520765893185897796663619233425490260859752072968569031138604832583866989562457430672857027471984295276692808087640076626424012737036451944709293348133316094415658918533501405633251594417507035932665261887222745949532029510888246003280240108746970437993380583223345091595540607224588441105162211163312123269081357730770055869466970025034802043603756022428822728636728966718883983002336262384932940820046494615541368554914409761984128180275256243056586798794648340326777201593716626548526004282988075254987356716705274643832210652130845361071933243322458541444199446492361634491546915823467883289288522362996655177997855518957628527468962089098785134535277194830599162557876839352794870763152003856250346513499632492940259481611754772440396648159322428483655709241123132879250323131326395221066035284369987378204054883500703183431820872286382254220464220871047277603274153577430458799790920573552626951845565472323759387135949621475671838388312150993535350549510830294027834497484758749773789189070890295839593767021840151515880966874673279998625319710038512348467039044929572913398001747894513633390081254035216445142460499244034442957627288112312211958887025510740354595797069934236029938898466780439298993682929909730973599345849557387852589327710329923581625354870843298125818958456899346969351413617705573697374040236383010569362586282952553613022045343051061051693931212423698487189213592838991630047101326486060617058754318444125456883359812080606790613867892136555498991974858650357844049710908316617953770595443039971498453881547628071927196728538434419221041885104295110739685673574252204217979425267948951912429142494343757418928048752303753926554797343766273878142170962584020067356655262222454990461230410295893612305892963079521447580496640854516604545541003556587592593193773493660793952018523186064435994261165897917014431091801951057075275693700991805167744437766995062713024693152452621431362689440767565007149027569541530530189950912996440954317118916518912379358036980494161123584234503620462809710030296472201548735424607984013363157383521198854118712188244694211063245492112612504950339887858400807037375013382289807532907768781485497916683577750080934187112371807064461670311802670276036515810713185683290786154029076914136662944718546548397624374000432042747099447341296161633274532229065710359430218219146512724236132793155367781778892016061344362017388896829422232502679105730046537674566857760613261532842394493397487649597608110165198067243941282288915886327770163887694762978203527721380670426073950780086497925426176206807850980827111481891534648325802235565504219966265827725665537144616772825307841938550626228581785093015723061289861769450139124659152085544960982588937260386446088367521176999454571281130589118381727886755478707401532894076007242037301173100225289411184690601699500132539063071651255311891582249339612829511690985113888750953540205196049128910410119817785400597389598855179041052929609984755423088790654997109240089885074250013145268075815905362318102905122668193891275978569712517912535448040643855596827967992434126221879581082931198243355548193929135237985040860005915757701440743260032377634705060025220123860798554193403490719543411919662856226548910562603324273080846957290818895136312386787118607354772359557253809704748805553836498101625968403138112670633474836733317265224121877938153610755511390727888473015636455205471649026105832537659859668856668071878515465938100203195985352370457633026360664313665423113273140633860095390020191009398579438675259747634637777399541903596916765536206980772272378803106710733271399558391693388274734909524534295471562466268937915204116195138225509937062141773452907907565662220712172202798389815711418112163639734695095042031416110570487457922009136787442056205577245891813852203057656424618969389502467505178514631834408965958071744136402823276060005522843245635231597024945596753587450202743111255881809336240822994012138134840063352308574062728915608911834905018680802139076416120972925316521543453220851661548820305005239654443432476948644412739079872805989828558928932488549229563768654663126230399352115749485340589129804640352967198776270516564349799844224014851870195015614670524548690132668448234261186547803126610972921944822150287860333308545983624291408366348288663448311378230488876764533618019866674959858398859285965417174758786993493625038327126616719745069862032695235833200265607386015756259837356850911195740735611248397459980982746750968801061534181417202180529267255912413682840045748883376492051957225065877835160460509202543870397088968500540417666819231430489542031597393248285450092886911584167831153354063580359073397773116860740902226278887308439987537310246786541473694128472051566374887229498184779077441101914402309982001760372354195849235788772320134949303325439379480499208528074621341566398422930777031347328393829856986433676707209100187794275430062997461357005470220692540548040072259971598264402003703719546796841958838178856816628164983031754676496998388760545514325746085958424144368335294103204422020830287158062285840911086992509909519150088570160781729838114467744921265379987704563775772993951114558435596800732054469224582351850429725332384331141288469962681253928990389038455868862234226941273026116341436506687428633780608876391686842528292241893432546873567313923022931921572570076801430704062059955468036445825128850638805680630328037567496755657415735227739037606183574880736134629110275856423136728163387647635845425343567795468576316519148313055240362926398328037334155430088910796687043708214445319214579759125197354168835536139571295971743285800525782529088115093501500371800239651589360931119597436668222846527107621307234361146862419340132128774344046069410158917708006767017069678315324630645906311562917939936132954632572068424033528735574302047177796094540547849536510701825097573075244570497697542679068842992453879674500822233202133796861592273886928033311405144838307576085016402914930455973877677847892354282363221746793475223297207621695260321065151376651238997306555510511164914927974162132624976124698652170073257055730764133205894666124267399771861194769163358517115563533076058525390239750379373406357926314812663732167805865209357363976008851365303517336701447322856278530659065762225343884702300605466244922608420526319024289082394305706829450397697248366890799018805527316771894653126822987035902670339876578358356431942789761523847898923899577091581439215736781553736868275921642274191038516010538790922744072114012057416435266305181552768749954521357845123197300640807120012365677155338923409073364710885156357141777680950627069254287430251785579284664460783780650241021520167651910882741922821894592592121260376758949081333464391752427403667099159223431169176665104333195941512513507902224669139413450488075829189813120698535831621352922077484608695826395540837874433387710522724029960272194451665644829534399744933330973053161426573907508579751619242944417777186160283484463866062121104291506927754207038816972377708761959607689695524774851008816602339703578828267866344003586098947334850819633597370954059357858255421488816098474201918295960869709987393496088421502272833493134680707495459082803543599545466281597783521559923582525411106288068606105746048964474101635903691261351111923437006255024612627238407659204454664931641024581597974537766897631798678655297734060011496565461204185216537991735000255233456191004832401882686446012242465222691831079938327321027088957494653326329453500817120803291938965859992437921660976760177655315761118411671145625509115688204977301139371654956706521210377985029702421042548419213536485550072229715822591552171178678674715954187247991414814047896948852133417280339692547277884795228705968280306688985851649246503504073139869878710492071115529590795960525413020557391155009252786060139671179481308868412181227886031221648728089789459872528809149229522149619291405780547167398252546142615128383218140251084592540328064047475038244040571829606037028049957110552665141077572761494737549211232997215080599941173717832042000402155269609245165099205554546546079685481579447805448024687020075010972387588896194483163634101143783338904348898268037666976909271559150444120764230771021471753355606290923470639486551172144139334209665150081579636060395533838251173540193181981654244653681525589243438170402236467945121564382404660150285027505509519922359848210451859626233085958398298235940822957143066874561677142608952369757086719784178933292434710424149953658635970151842923811711173328044440831343963554195030093385958509920033107187646346445280094893095763924125341109944288347412988614782121822551506437600705042883532853454896668360561541511203876397101674625042101086720530488571601669432554690396411979892416931273579573893673582610580181114075082244177257021714110847958789406472125860143382518130431763476603273237143122260113497236930045344357117049265299032561216641876054068446385531146758066486741861756943987331192276288569788095796231109941803808986633087084525326958486184484594169865748224092061524167092364581224291635604248650012558810977296205833536770275435688080483674011129756513597944353440966433094744800884894175354657377743354503333645903167288764590675255418529466774678095990154098431554709152518720689943023066187888201324072914514003416688197578516931938676055674860007002260684589050680520528382299404583756621599734923246747583279930053534815923370916887331879409274254085784596438854956807574260458673812454531257197978572665698722454913106841751215786660331611826782242107874805683643366739496502881527479545419105695347667408193852467726097726002484558910983466935245306369290960692479515355184241654634070913134771063135456650904123259673880355568315076699996422128009647091944550848138616829197777600127924950554970981194104214249211037131307500449425134814326882823772792054571201306012082174404184609791492507132594705916150388314425543747812755450633932023645944858124087302585977881141133589775056900592896832751984447891988659625759603282248576712859164628435284447450621469430369495196288476960060215329685068406814187409011325789974024679702971199680865690136635180018058533867120250764779455373080440128569069480434976628912137196867635138463978061658394680032232359391533434234747942896903159724499922344641984086478521469511552218860415282565150591971279554884029873370847924882061880336883265382840414048297802164116895028081996435183945561791762196962672015244989605589031480046574089357498476436505196833182810245838850436060481161233925652283087386635211091092544614560826941265356388189965753365146061272366098869363310091610639518356445214508147105483341588823495817775839539347011901078828755287142644593942016575240064559815144932544859241820781759231664842927177806133412241340579689745253601983715035012640294837855883571269583604990287969629868017172812961387761367696281905055320064270149488209275868427375887354145189097673015258646922924566439521443733840560778954130569931265069295071608689342275996616748131700089812078622131646036946729585420951285610345568560350082403664538944997740015303181837722272734789136679279078177441634461864611008534151828080637556765170589833131794000755755147085305810583543348745862541683222007685138976886813481951614684597264429655969806562053757843669419170117036321613013198948564588856491104129583514540562768231187819558594959685056440174240201127358427836118914467204916284537156442486245210430141959362834272118217544786348415286020511645327198111648907269675780257564782373166120405450402109483108440408776781099767131494332379092688507567168168596275416386159788231738939874068261921604369581382686151173437399470477345771653673415271778527251591211850871402977967039676570170437784871942324632490848988065710071902350929631489305761521276411196959027287932528021001661272901374515484243563689944634593899134138401990401643059189192094131221983967622633003458354653050682141515937478094028608722163036607263741815148259921421795085047707140761558232572454617913014369207736851804112341469338269046027997575589086432664331155162471257139863852335253897865362823176791099537469123269864760452507339951302741716869303200490454138889802016944970929840556878159562546667078926364088781748108270701747456306117683945112196908449523030755312383724627125556122864152506883034310993179234332826741724529930209108197171485568646394387840437988724977439772466275034411834314328354462871846608521537382218135759912779552263278069636216392565774125604726193044710728208898802361659942616470728289153144717125814597698888593772205237918867454651792979940443995576730125185955763539884364197078973683537867970988497651876395621891470398286332350134901887612928307364546137051957087159666215276431407123653495724802159545904780491528076063051021799785672576852853067838818231850165768848958262790879086278416702856990664478125441928269354643237593973773151288172578867041659991717696522534703441348739702071690901169384944463081944507849203607652561363168424594539299174069464200870035931820005939647930990425418792297559843386038852821829532941386762569583082643272867993553274664677771606165374210321501425300171354126582289666313564189326336857191380227441027160933166682731304434700473468123398319062340451337585692434262175507808392522800534481105745861479603454741633409526229336542485359025278948101367048450683553664690830333095630584059285957440908298213755050267319720803053060301436222506891519118888214658968581950150909582830795867385522924643295578077708056264769198222151056615204656302733671218416861901809471355178485453713720843797822017990922881872691625128552819665799480477746467992320957189894466639431333887933890067915375106632607806414734303047025312248706711317882816834406298479188537791733334786702296098409071994970945902120677382084627352704968886913441096326666269561963030456163387993676503948323980589831103980772200850794521486704997056543387246864301209676285180934636365593942142977879746174066658445049320142640484695135107370269376707326993504939848911077425287505394572148357864509232216390739830861862647947749649736203484468464593954817949771450014023876739690299357742608166811340502070455840649164243766532282375801833553756217141368779442870217388126569449492964181187510521358420050696416587334279503855853118022541047700042353103046236930626930872780727112002382549469668802580484246644725077986447951428024988716715590319852893510682225524960031789885955516339461739828146735118148760707544187548124160801739351224071058062466228489550775324413576699888092003613512124680385148991243703480146761371498594953412223522959280815088912161203015921231143901986480173747677025634879744141658470390181861592476255978802428489306631937202843539287368570713442211005253766301270908290293172795315937939687062971861747305295916984423744571230273890676379789456677304246586648689075755664538456102782024534110160059373727846340366800238858134377800443094454925270289337801261880818108249282667443524913253856015480079539754265460122377212533389834796180445160321799637148503474855903387513006264349956785602432084373882533401788284864649173360941749169471764609341104538289175172759029209994925101827619741268524695404261604532571819131270831443025824576613490923190731798262447067494937001782859004205708284453217248564213987545509658929513083816451134958357016784764540928563076023996822013828612879661012569709879467301980309298314566430717344718980670190271729173120481783622672034741343610186846991709503955328103797624762123953861772699068848527746397800033935710099004491683334122710866895033507727982903137931501389682150175019429551567374273979918695167675053541979839993261318503757611787952144231568459761845368469112686155199651332439168307811544080231060886837855459895479133788456850355496232816243637558676866167293635532717527239619331727373012257747965900465404706748407906306448629134150951319941240239151225729331336872800482562287839956821790734203565468785738164602021840981948495490267663649637969485308760577087121296540989963995551335035205992009991042736999436113727527165516812152425019187865681460257885679246772016997969974115677197993506222407535461978659693424262860236524535459621605050390919140011574730085263607659733134665379461222098039230630409452327588310422556597525380743481473399588266370234115919206680971349495011350783947437388191370838020283600171062437046874722762284473473119954691678732215820592214542396429934771894280770195503648279849820588745495571116166849825952830360793573174474714298062326433871286514448363296168366865304693445389492273919441840998899550966457298576423791465259905727191905002512381712401766945534876203019286356497423863264380952823895748969378515662992298732974867210039704510477125590270056375947101535996023820423102124640731122887406699139936489237247596462204578826539292487766438666721975361512444359047166793681342560165650006448639791402162332048299585537572607493176661899380296630411799938442558852704164387227036040372102224702803378531015032139975869909742229393179078003243293531462410951178474714517399846535571075234470967717193361594410172324843294251746992739385536951653414528976661096405766579961164353651440795605023674288052977400285768787583317430476341740986295919005372081944613554547045535659526399139922667679746326442402630523083046346549895617667847887800809260566114671549611659264346759509752744038021621173356815234052493553145117926827519938640130989979411682650406786657277334343384297117205650113502371715790402072594823778080516809322747525656991624144852873941587048798789521639274390773267199320851452966226847617833845061955694356385939895915712501036978425809198148254023975350520965546678265930651681047800757446804117885426339042777995478390082017143503481009554807564642004792425347176674921026201926445683775399605098322442481835869985419343544753351348672271307947836627134300238715117261985055899114378985771635145948916977821520620789118864767030545214892436513381169278802101611681367573381370999383243734958719990630575191347469819710818105593089653172998483438760873789272139813723555832861124701014155254828355560364458364897427950492713925213220937806958199586821732317506421077814869823336977108799775635706266410627935681432903161293574367068210402508851482323669789535079794386536882819684145984952115428466219591026503346200982286443821206223299886130751487410091873523620942826640926133857405907489532201911233743721099898780001236811157465869204638580556786159251323898171516100495874109480605756962537357113130880345130234335443233665631775939072776972295546344206663989726312783621118157648937646389554094996259684318444943830044303814901442165332335966493258485605035762120947936815921429294526330990472771361801530875474569968622006072030723724191016414456806434835018355784434694404579979242107919497715006723608611973766651300879750323691662706756297577999092610795537528214099269660269155632217144063406042193490986423624437354086091181874284016173261209096570880941805580699674069391268414899324358175965000187562020306778705149356303703898378673699037872297140107496102205731065342171899349536001209720365536215798632866178623114439693029741843914936920488843568269494872126439799500921259186799434388599932732066268185027877443189095621281025062861775255151233579888958116959702699397094172487832961137061873511159412671304418482627497389244563121021449749972338150572857239386801085858778597722271296101464386536711604839401412280793811931492154846827717889488903569778953985537256299452243971128688809782697678912086905787018733266001023177867397170012854241930970277902322465453392351965801540875087840488736779895576455624084017475504847407312987872691745401403778847792775491650577048793797796253944671196244401708823414708463581920080029758132606990331724392040720178721079450022285107068949418081424648441152362088393459542098238243933168144636429398663649377816962328758639010864217520940607862763133164133674756367714344800811218600982260293015071386970703857846775849696152634527078881055310535246280177125428986125067775824668330869330018530965342493010778413958170369822596969628693938740790189726213464234405574337262255206574806560670355692569316898937615203918964409867932459079531724930481603476544128032580241813738970028983577259187891518719700925040019737088851258556018470745844182827276106449624834905896223682896720111661818179741393279693075715213449830802239213061291256292632635616233012541742476367404347951605293751307122920558349696185844248450401391230167083776738550097686796287193916763939536234669821930516767938532161111951646295558214033124371174160653170422442432763162726631476503438851331516511212585042106514379871691814838829079518388609388737523893671901238404087947503281846721198480105460660750345991820595307438384643362610094940962726284418911591171751605485560142229221298461528717074555972052206011844930669842547630809120424627888012773497403099916519063384342920375511663178557498059723265341963164167328356234477803066045018213033556253106699560363162135661840254003093523444047172376299073769245197073569619580077409550013815417009177103928567324709123658932431899488001860636851656107128951035727786639874446247099923375475572086815111605669854700103581182951788834906501816335978263844764512000539101846025140228123780287522721474842135566059457784475835808415775493010205546098535976030030881151740720324159210772687248631191794426540849081451392679712792195735898979304683906692206039170583335998950918825361126871847656323742974098799203594369487117659544390550719075138049292861028940397894104310353565742559722179768375349818999847546790338083739112150556890470807164302284012865016522314953128833668383242549162700005573566119704787414971021288242533617747394783739489113930007978907446987403404761259986321931362579319589097337233645582313425190800681339116245371568907161668177081429610896503534278134342552742450616894963382924756649833018726481767942903732611784276122275178441987131954829184439853187361588200197896456751952405130103562597093046402187695049985946601312855377323248616502519561776270208257650191077760442469573986454956558258829044820348714474071793497029017792665093113930256298533778495568054967281491119617523845849908141052988424268504454915136113560046195222064144301023943713515661967030504603835105635970332238439505947807890775883154283762627314925527529018014012460097148875206029795448943342779059499977336621032119064175402481753541256980605574575891907036266519401398053961357897178419073865191989113373338980458933529380518510721727737108419814541194986928865336476773632816455399592390263720809718743635627127252981172661971298603869079289898439038607701937575144249963617731278337443673084933283130122503339133279946615542417043319755603674890942699549797988105990274319976416961614138335057547503433269475803834239010994901966352081657717976212838526166178099899911579759859848932492792087509671494625750065897093823367795270532319194010520623385061710162768534967386090869143309914519613466759287428302672698437026046930845182326596467823099697279185899870654656281566664528601226044721786536707279962682984792040054552512150056310371950340531676806154665788741350695035731572893819440138778173378990806819213039235236588203849209884324652569192406847100885689985592856366173587551775449507994226453943511992590343366815136214121386740641902490410798857174390940404177847458472698698596739489860264978450161839258445584755222670983530424487658780403001649318338508464165816721593764680587349814277917788484399195090711104484603768487711007717487779926137063259182874592509210514592380517948916748051008961835189385197249338127642292805816815518823688158042132839030448999575046243910631059425706114222540556683275343223533908830050883995952273577167731977652839214486184423843050200925502256979740417530698790250249202094959124845541049793175880126189895844554757676883703818648266108510237743997472514638997452273387962134136001781235247970511122365724466337491950524874150342305762047930432292858880726632369420715300318250724610166794303027713743174417588114022262012744435898524900656382700099822052610845497833012321148676507932882048967294430901378226543657200321569888959426838435213693968246057283317477943275643807191113860223520022114461015652334203598990861621389907072687630470652439132179363709628051384867445501507113882353472888681860489763356957972046866994335864664009425220537075454803612977564338285391147575489825928577556499865951730378325982612478401547365354357801442566270999556816988387118481305295888581276253973030389999696300462873146820282017689542916781423797232076121797587862958486590111168379738242679873308936123886844600086124378001055233379322908205360395932196481490257939363279158350417463854144879388474721017358708446644498061807055124987514788090164758992083572236263226192832870218750131229383200654645915954287693262931736936174933767079996091146942378371185228168023683760848354125250163557531638290911558527081414225431854525599725279690902154142513392167792711403991215294670742145974393895508296167068581759228061314954882127544181045453639534707757630542370907576686938289849019723811200338398704192755314744895595457690361997066169184432688651339282140281527701983240734635744798233216944689498264452737603674878814351788099547568399873452688350077679139997787509927648232898326793378394149163981311971608507356969397030223347334417151064399987904202487380948724791777989455262659849591236275108165732820627108493818460568588016207041314272794335441829986899768826374200901470768261331949418859703543318162570164702115313709448599309418301291912762197108232924538229971374622111322142854470963286778273488724987533287164386708047898620789144072856502622060014715430112770680104751294870317406974015110990423853319552829201605284512652699280055178314917397095791761534453683287281406877197750562234366970873904295349548235516781713406650642427999634429860729672667261453171045694615292973717342204161586901230943135934496203501854491438270183994535992315968339445251742579837683738546508672511628077542387177379528545329435682077278816543717249245894489730607078908172656997214221091660072246418557995229158821848476479597058857336943860641381265167762588872415024247172316368463630675220305014244833980091330893657229232856551726948093550735293218022492486040426007295433710517150115723499653511321227793048986748605681893594670601684563215631773917451607662604263901035906634928359732673831681525628288882134449376042669603136208127378355993877129607945547432870708168058298088258807730233275386065468315329212366201936287146695683743410229793236787360935805507099569936685298345689387403717651391849321708133842440508632520509481305765205865509331076637577998963246077207568399962122494651817947355625069344950018682780942390780900887967259920309467391455926084240802731143062671770559394627571250176839209756760400052975877273508292698221868854409043394137687740467066961656524041687571461658458319900903698217721575164237956824512232301516091274062711227951703444030685786669686924664552074603694314606233056846275321851057813874680232746662306284148016540938283851724795895741606205482856033327328823016731957294145468162360983857706361434620954478540637796970384538895479873819606167489768180333302390886382136998229576658957715528284292865417354207475391480071768244928489148933088083169387267788662777115939987178253297549662064874031650400069939397081006910053043951548877949997404606084756103057907542522141069735875010980021861589332515340742858878121804958295850112459887737361751314578211507295344732609738382536137195837717488938159566373001567870707845563629889431455803848595044422781047385761858464615393440128488107250931144387516132410727647895211608365643613964336680924520223845773099424361970998962552851673881890581889157358884446705898615358706915854804337706016407948992682191411405298812941782920141002485114837689149216323135405242171865159474170783097910496568204061680337334101393545019158056533155296278116895687070480637212249578853414012378013785029758588665578097898399709722059268283672161493507650260663078703813783416672336722220037131153100794224478434835837437511249193368404657794096704931669734755995926646136224076851269089105607253630502403381043100461191288756443679810317871855664078153628973282470700828151022123374504970294850161815231426408289467478933198540351291749437530267025700545988500619618160192843318574004903883465878517342126051124529887673523597986793015961917651311530485056561248230835416751491755004807847488990626475022563976602023283101407744587192122726489620769902710423210377453832418245030942672475109900448178086723031489101584026546791371057984665782155913774275494616331365703319768005753936948423390533240141210598054417467209933535130008809578653755436123191164700344080321241204749849906908176310234113259622672987536793877263052249854953003580151200323049294886516246468059032926066838878815808739940541388031623921361118633345498980956976148623057355379864696234164797868623596432013818743107072477943267251099622407542555704402628516959182302515161432132466177052577063496565786356515661941848985902548194435928774189607437157344711194900796140387980527332732789482432506911181896057676021635260059174425475405514293649587831473245085488676440815318431262169459450289710336688682605948766614797530095375073090052609378910926322635357522232206026137409145593636818431073929612796209966227426999198434714128952803972734790643581694359153986470567490319230700078269966737330953659297916190499124868811257663501883086867249630603707785556704056645991460018124486939749249165950675290072948960817386053338640338726453122382120064734835506659677131349003801570526036069535393394319550673344640026127090978055884348783093702233878803831258557586564338462452109900373088635844584328411542740595152844184045290094474916442356392142999551780750893866142122269056355278886922094416004695632212407378553197118611777672996456980868198693078178564755654056606285000082802137349663490591686388592096017183800425668500264260200922258420761006178751298905633817972466283662729638516542622050700792705925311263578098100262376251329317569803579667601148252414692745624913948655377264083139417900629833388023299306396568367790448441170894993036297132424678178357824631924060286240737575173891780025264462634026054798428587375106400580171087068069310486673854169933189420124502173664560313830448437589848447374384894960303681725514070425171027225256459488402280572993428039702833567241559360506995143205600947422205665967702185425546573584367569406902690020988019978392535761071374620639796457806649811398919317129260868610705079337310330330671635877436946711901373444131714932128991019593476447889903962827938221728636144832328221915981248175720231662725302168418909306111159283971922830582460427968561638652541540145476618518208404168665206833781374259719717033032731209000822179824892898017134656005542255586886521763397845683252391049810612978076729829771003567016672434282278978758801422400544559637000226276603185741754198465121329866365355054125590913035506983605879917708098613438186798363865744251299509038509219385631374995853594200233518730260447411399999672898279689240142838586877044349181601236183585198354987817207120635683649466731523057403970804946164119539818158264818563729355167130508541219034750091058816001895061447186397250853930316856201413981698962435525244289076906215180067320482768753673591930445791565627751944825261517375293105308792911211419779167093691824094590887725105004771767855568985831871125703921629268259708479227577879779946375933964351857493915524607639972117232258886272173111379597319745049459349220081092791570670644683229958390291189627289295991432948891019033139897361443626458575491390575311841374509710981414103472653133908750654807107786554215236836279572873782339947404594369482959745552919663485519225566015644119989205126021307999547782178466684323008793579722492169726760142014754181734494538160333001863572916967447610061540100952495191075758259565818040185870167881439031675140049347019637698275520637034513901021249162478102471429793481771388647429120299507820902092010309909460731077913705595431484522689999936109938558134010031362939105585429993319191593264718626928879744972417086057362157771458002919854500417662122388885830077094284732701435418921225459262350897585360467082419030987787784621330924480596516089151025775787635680006011975384573412031277231676909082720556690219972833514886005591993196639781124872040656153750626219443281100756125470353257153475104843381199594383306464862403817692467981667478852019794825223434614296898238882017660646183064130390112029695925010308838623936396329347683109898451022211511180858646474059463029365676108407259444175817848285809136790205951614366618519900240388980425080630393486018403378305538372779917867921776063977688417342384283079241098014793407817393578679711040968846459312828739650774825380051802675046694360327442765044817482698227328569100052562618003253499332166249373221416317052557468408135451941789740740457753834847728569381843688577538605694170080574908019546492873404853984115122859008176516030760438291942476447367083761515354282312418516259571199751394939534203817738010277914308927573837957900614157313976951810524171978764113659615800004454350873061231854538870292481185952553016708910468942701514933889714810386838034861177968067425660421298142905907694956192489213424565979816466845078033316927634047021328173396632697016165589241533418600446370091928978373906903566733565484179069541910445380668694417510075685493231116580580058676977248845741843786166453205318623584635472326783283753193005072175898260562776430104236000489591836879318037001964404625460011934935919907651465256752168125082162268894155624930208601226188167374292624655259552359526839126841065681431988400018974936541119457798693042173507336111550245261848242410060584959879586463286941600971684058774602332832929853003724279526516227186689488512413517448938056578190552906544414941531314531466933892202498623529537711007798803522778468934800432922802297700987516520179887931262269120773459035443293733045868259145823694348296402052592375654279205537329910100147148351659797023827985377767113731901950722158279025020577890828491781959629293223947681756319949480460063934733017686259528206255355454104708751001503595202146424396586985320638822837071058496896430712188899495683958266174749605867836579815590208663022428558866465472324260982638752232922237560353507956575384412778797700792868904312765987934118823181819204723350676849555481888737922784480619724430627115578072898104741396796410278126795523594430503571061189897500008517902822962612315505670935003269451942935498614561213377807705969500517680810719167348062318323065972242723016705286522681827443138671366891924501627623437494146216490267442898760185303904059957970669834078347338482311925052837027674448153254541221438399450934851936266520275215080488358778765774489078000022198079668877398520781236163907960497911492637206985086542510724086077965080614014016123540083067731937855080740212046894626676639512094661337886019300253969311636735095798885455102431210992107542625185634891543811522911096969902089967752066012343860450412463700543112502502000870079287849231763377684186882385570168533116355981437688858803140102506741939898038030678578951751386960876305103233421480223124798525309452904487390066156300536088361803104501901738098334022961909531933645035501852198914422698703917580303104612164546441861601223068852608878875996143766811617492077883419985521837452009748055280844332715877733622714803057663766029998463919570527353403024236162415034852830221249607734077699603114614916435175077312276586249685276891035330887509610104825392201969527818033745505644902012476835782275860455650342813723370403496802604581219546955043492827162528591299897261284939849757276189667516903227478286391134690771088012597893173767213733936094603815909831335188448254254721879928138790965510129942135274002837928383956586450564485015575223698854196979816872213421488029542554385431553744375530544571585416682538443140228349784303247951831903191264854587314787971394494662274024734989200683620079332331321596749304537463490640754617197194089656865047634647092035569551011042382230557662841237618444387499248498019310087051638789747624903520794006517223979731460291924153912422813516726398718348007416451413410855113580881307313907337665954924630664159351269788995141946633622472740595101942742225863528322055711596002845295299427082268452300003892506427122900897748935970019022454521025978408638663702750437738252448101017932306357159018790889724305596784555083069086281742670914451277217626792722968358586964900744309226406467840500565827073074205901523463010464858291295599653914023537106059094371302355529584784682462025821219750847609399064142041484745160548510876056995934755982746123178717832893685324512454962941049121481548340133919649580453055470593538259126443575308122834905486316211910794432656771991318241506115224455711067202866027320739648075177286469360807878799100781261292245437585754082152524125768955909065763991587784604971579315275113648831166590089848897541929508392165505998040045580563027159724579074942663792013006000291548388523916826635714326327599228494767380021836602297876398041592124978981369423990016241344313517672650066566946924405570969015485816042690191922838578268684468524001638588009938157272451207336340919410977356567092550245297052295611126883064809411304893312320113466518344095126025454037010003269920515096083757842115428204465872721412818254292567944085104919575492618392675718913671362633975326602121608168925629477203331134361882176048882512766750814426350029555467496762873667408066840201265385175462601292486040563667364811364079399468104566533320443041325210333656009707283731620442578779876762968600124428205382719903955329332338113576205943018594698611685645765499643511972691827615950844864921135667087014263356643217793757399861288960607803415358132045420868996583269946246728990824278323449039875891651961797420716463669086071405632430410848025669944106650318455346123870048911606122780903258491354186983821615323263375951875522654125921394609797901931056468856585862119271344634033562024368303215086223343877950880675882765614214634475246378319517110968735771640956756586305157896790656166996280392524099892981312600381431316250282113245167562911033134045707046911063390960969348340645882790604195299453685346976374998916634800802959473164377619162579619287211943638216892300835152514295533485768837283546222175802549420768874410199738099907052348803929664057253027237321347182227708568317669592878814893568288064969368410673633008797591386529456055756355545142561835430317519587048655493222618506019711154463069000126344981624401206703326562898753838747108974656206492460527029309009128585249667188035443227692080721292334598194236346005868269221646635205151555165379473479477549156395021481220355159967174113460394720112944150500349379296280626238771686954084193964528653912301602680408255411330969188608357451366356968185498064847732848495699638695555774008025775240025669580770333434951890066868061734483617055101731489424108875353813034513882302924517675638882197064821286466090878970647824871809419653359030640308400191976449449878578208371803245039225878101483368266851300556955571202936820153594070017485956853884747213382989103426799269991552726358871197814676461111912467103851161720660351012604844760188565653813789692851050938771888472801358808813287223566006642350906631096422439789053803409678655358993298214452115802506207592939364352253608775077480454177554827033456266906952776513756850720484523861447524522389595423431954250595034929488592696722699651959221032388928465402233883676529620389549480165699521320587537143522108406418518598648473452345963512285240621950801725941504244348529921193216738890406907681483465119482112711485880962033626328419943898382140929751124168125080124035251499619258988508873137821435704183379254957852759556904315630484812841779890560228064649227800041740496687176341956092463039510480045522582745353772358403546974452236008108036162465523486607860133677294478604564407237904646311237735528139983740555491051176316269776985925294947225293545613830314865961688215401252561846488724269540630857562090355665131049595194047688656510101414950331973701376596820206634944272977003147342116123228566236297303873308041102503653754754722906226559475281528151592963399822462134488097305281457998553331902406771147364583940071147642176992478655004919173803425304964894866592835237386688453549078745380885787180120436059388618534254507012828374344316970494140593014299969312043892551462463249092968382823767615145679263034916959352380551081957463268427206573606442712810073779917920020863765051015348880503514986173420118645816365222140857382724773835739245873998828979021334467278135336310555854765862511892267853221994576339292369338208324427410512410241512611351271449508875356979085886991595792159115452712608094890480488583544462845578032197050529564670351332985600031960304871052430626960846535532436552092144450732719637216978065498333120329098773151702515630593209592114119969958221963554616500575653818057929360226779444148507049631076475384742721770439369413737023683092616008945879038254749872812010003457263104546299489178188611109751574168278181435291380223674434512276761646265035905794140788364918733896529890115570004100051619136478344689132490808032653062208765302757326959019479484942185082625006912871625039013254307549603929981878629056390892975824554393095706449566392158892271496913942501820129288393976967605824045133243962304671970886281407039877205927240623236785137505196773096903392126189722864611211972620948238386171346243778017775248392471177427510209134953958413957998743916891503020566972299854748723209027035782835559936538093225678161669043633146916099078556943916683525959554083847443726630556116611973586887783061813738766388553377596491339751623617463569073458151509205651920524615313885161502307464543351352934232566351821002399472894878352797539372402982801516191599881699612499522352563198811845503076805299371813277067898829186530600365976584055735864077060069386161186217560695905510688427488278862300497744088983908370438560672510312373749435203680360347473075909263738898126782084684935082962158504847951080421157470563379082370228398069840110211968282693817366985847107616094686153795047886220038127652110583995163072034474581108251575954599372550851704600085543304124915704197156710707093085084470919837721170994085246864278694505251417049342186060754365587969089174591330877248774589668352772934593950011466877539602803785256688287420112910535269469080886699968096718019795890569761790978111169885960327837026833332130496208582128383945851698048345946548917459694691800855133559576934906614315569653061749124835065979058308998988928561365240391421903228578478966439787294775277766472538018760880395193221304451003247208932992654388327658078344448330229547526553176530454194188191301459763050211404890567706976519597031449806662092380205549225033045800339348143356590572908753740994969433728886203177752695983740461371645064080513767854567745414136428765545308476411718223874344056940487939054343281971657703448107971591115216691631405895488211075358262514033491559927389686750708066850164431961707792679666907156431263248711631738822891150757696206686049236882335362393389507422295153036121263375294508530755917170012735420075014034131809340439865480509475770209630102195381705912484140950702471270079663080924305318048726508073088994219096813664568507144076787801260535682653780691109438931119943140966433638129260242593831371187288296439131150984432136968976645031828251199813900569052154246661070379507755342989108097292350281590689055414370041386819790605551221973497563451482480883519296126873955670073277994209859595497802971946367175699363408115151554420220082789803510916658813916816249066983309670693669026554805658405876623822546382715389640521987657270192542528144789186772291891852373266383666736799633360035646724269282737654351345869484523437578559890099510005200795367079643208042475769609723512564875384313295048795768596810346652382238644307794415122469344869821409218916158347463332934021365507282675578346679158992776389426030737048121411201008777361878477083758382838737215967894152839945644883591332184031006956511630386505078244354529414635961171070962287491077774323931351075539122210077085768742365186211378153710731600922407382219463795640526497281541328707041908154053031648630106336791200658623801330037238933412701883888711867743661728231912535432719662548127954162313649709634935867989931538457408882547453572829506649867562205107151209758568533890520181775322920024249900451753579179612690014345780619692499791660984169113509075370178358151441612457413061728851575489390518738892888965052769910526713596628430997444747397913762495514197118077145315812408722847432160027338408575814987166248526670820022597439648859233013949208386928121938758405615148508641589236104762462274964556955647311485753042870261872674777735302283674304880660261140876674982123494866568856622520202760033527455896276052764827942303488738053397035580271281478212328614231541502159558949420476713837194983816586359490183991841480599108902813209829777225472784585551810700923034549643027566536657522443590102824238891474321475196719667852551165926700702475112105982490716251436531279457467212096095632012947826817491425935164968449936634073799019418701306931906599230380093464926651948015864651425216319874860267106392407374795351359636977729476180832773233821466509006329837190840363002644463603640884792835795564537567314796005662564471920368463028357381215493148191222811558076659479553681427761938036958291261804810145231963021940341525909892963618817698340812279240106792080071649386741080065856842977158260038396962790456227451180469751193457615397764420442162272970285734393833069429360977198252100479935566168114472100444552833140605591450445222435444965230469967470466732483789726460860837709902410791250457952188046955663744402655088725967054146402583259485508566449961080269154198561475359696737821610251727934823086367963277631418887920774978649566411368020434525394771971493199462501713287366894948209457530842582232135986429760876940222166924671358290176557527483499251997357333680758741247185851237170285569973266799911081570241070796846659979625694968114668348186864436849283675244218994798612973061013612407754040163353153760341216188464297507338898555844271937130024115824629912875207202399882311415865482708232046117060238127374288827981416831952394043646393267234234253294800024151939560123174975860758357674204115508905376065091881019904403695205904600358045005765058856586066528731874386836255188532034135222420958440755203819143591558523369836691337222753201525425752140691811884682513077368731640952157616103761925741695906956399429348143704005946233384333786398650540016037696679233532421387873149647663693505300880585579586747619988972415212661389303299474791937727350504690948108179093877768421514870093991492621479877487629856493588063927091950874037910514626332191157110089558734978063528531695577174345361422612434970948657483832953948165489750144506409654024429040587181788977520027413404400396888688163559326540125729525663735944325388450937426767388360553281800703493531150775822241078853853150632260510777497903262286362309693738733284298497455832070860089405230785976328592315764530644183300578507151330715130021584142571828404117779482445314329298458531789451227392874434685743858284990520698304795492402559065919909389051319885469989030837498019780234155871133958782030907608498312189255265979574257265399201419938987407477424113345436477549711477007341149943482766606574296833975535250193096446812705928336074488377376201412428960112354708599825758568686857300379145705962265251348539521586990164249706126616639055132862890162115329491507855351734653234128079023471126526929354847571106539166033989275994667310728258934482789765107261884408548385861241071752325527692838287146003170269399656643806789611649799672885028854301419257070536014780886526574828282318052916461462576518115128452092226515533353908548780483372349242114036837315116611373412026943055181217703521439775866690014198861268151132277468984569628933446191490927445792894882312731368383940461514682357032038787176540269480386120661193247735179727859634181360103507249774101283914245124546659918758459117022956084535760139369415475647174762747531148384538865882890713688499262967896229877273521655504688246188343192985592174779156494159090927883903188145261424101007566729008438827273240168022765702794462635720093602477211235652497183470890074076623383292327013110145386524897482124960201562494745770315100606371491267173714825927724396281314397681337935241384912181070101535965755533442242662101147575329499436293282644040820080763532836127286642929349438771898947280383675523036959369692122752133946399059423050950177116876603101374479774707622599343736386212545547002731599192952896095825541198723583326888201838308937574237355669273323069067980940669937270794726604190072735006481561563239587704501815001938238084555069908067364962510602208324892643615354525864688363782522775308506013719591883143246189685500805329634564444854599372827580227028237693923678862391174235686854918560910068026287668285282663504823923540452508068582326686595183488211236175594032023608269016870588808812225837885630618420789225633416641790832693479026626583889202937742651736227773634519421942749029725886960911734657072901619983445777854167033915647912517586610266215224697381983507050355538968911102594694470765453686772253538094628397501534557248402730630100819639763749164739636818084981779133414013123437285254937345578707679821299453875619936681487431393350262463346350143601677480515110581803064772747062479855042039576050251591922305271229840419188075011618195282117457916029967355579771611137214255417882956054163784107271030418544775967135755102969475455318254139148616676687090285165188508561020421603494510633075454863239135331177395229969793675994276204989646583014325030971342442679794881922283880429453755373986351567089318465356154889447578024110884164166638428910105297374256119370864157927045386702817641350852255644661135796755454428687340124594740415937713666287619403549072157405115757188298982864839716137932190082706021140642802177232379684651729431498250800221493931598632000487050424039917677123739043644965823196068092394187891691609985961944161432694404221399113220588615356828452217818633916874894729423494301020320909401938861378403377230450525600503951612112450401264811053107696284438523383883464834921332242816907331635609533392371807995017952803264794968047688359532472928399172465087115952334097104743459844896088478685705265928287397817469001349119054901223599955163337529122398631402724498373403330565253583465651289893272969917288142015700158258636843253404968406786646198894457955025585316281851990115748879596327481586118402005986909888323728476416116429401967753039118780143687169882293700284577377467466749870064444749226792775919911389692650786540800200654521091268383286291752593065503503357417269806014624310159825994384178987771581602726423273662377731722092177671750989654017140935892696600864200099331997135741418652100723671742551586814744391434384597250114900464153857019669644659364308100270568469327778846503621933353769261266129875051819477403724052480963391552397412729273307055836758781610711592471579836912882578338183872785379717236171628563497544086450759291814503680789311612489927006502154060272227767545431019675071887865621077482714732117611767417247103452723212886763579936054566748341477175394631634558334274046021499711070901536903871484203705179694510764902383754050163878790225940090624002260753532645255516471275117738047744239999316176577944950413628486174096564076942887442163763425927529104350447825280262451634290676862744836979602078715892778391014980262950036755489895782905138262380167145812333303340528084781740426626680396345596774497643672301463404058466017992234265099713475149423686572919241315273167581064464844902238827670573086578112205963465625290311424682869729645844192981349128170795833149142904850581106413694750465521871596570162149673517122615800730687713828393033780408542696424718070053768041259656171705810660763143070783471502313119753451587121434805011457215505723081191963110580762958768242392646785293053036750782368718996459165172075725053806310911533058044655832593939088867211375636243636121715222354342799559662519012036039250998471580822818652357565506599032017665504358645532795990118252210047726769783974341623496674484018107043678020418160549553522018358322845222423725468300671349738302441731173651705028468433334242393526928822914591160363289081807844495458561124834287428162071483767538954159580282512384447802043263843234895519499422152279670473350128386912088288637805212487325728263247034277099109867261595197459285280399861659691500151003455188849182518582005803428889398292974444419004849086186567014661223756161263902457514275815703289871503379215717650895049950713084465447241831826007690381326554161126298308257412448588275874277825848774512710653118586134975476909408146216979721411061860505098430733732916282148921042499735778347528664645278787305731837957627085739396749876008526477996491569887784642331441060859657050224847906623869387612374731172982882663178401387208318074451748388037961321220546916525414668065813283758497799373968703321521812472080689050080099321881568547620525985354401089011969605741727886950984888243556176489060879150537491720852955136561215511361807946273616868157711066260999810875346560789859529218672083168662422519086741689055996496272610521267937557617733252352610766985074522308227704668699688926370060323757112967654762231330539857704058117202454789258446040478150227048972243739783179275789146600761537976767054847627100432261240721245840260133238966135878566206794648010089618560202626371786395408494156876926140543980018110679964846666325079995945476703347241257613035098843558351509428573393225404655194259008016640239052238011636209992187014607270010208683296168696501745263614034856907369420150344088004650519265367275277913672581951718907076535582630351577739545090779200733124858719715372491684120378597663832815999589821063254766034017438597329958056494331791166807180659725415725677403741935463760650629515356213433726479575053974815477879229506562415977220478311154468036862540376612493565042106871921000938413670472008950516842958379255151495784567728576558031930222839359002315812167536353689760998022651543693673509088251410035246015714596017880964736359965379822257748765061894559271319126777054312865815160534610141315391047042908216306515816837893606346575028265062628358582080130711744402007416419236955972449727341053569639950546247956470215292743894191302295677355005963173959516308775327336714303261293799642256242652740324547880483503536864183494569840707459849012238338823359079744036514959754371657412937511903374988206559408291367913351704938228937296849405121443703442882464007634437751524144643441660612030353666107415740099394002819298991446564866604349155246224777404016064414701864529997947115327718353281586643405176512566694033536980597232170230472549758578426618594429049018190045349136497453704327378976334133810126138814066089120476847621240205757861281414854034163874523705363993268451857286214322899141890658013864133554335093950545867079173499438407371410529266086387106978128564837867836195672532603252151649914442799590023421023969868952897936008078163736721534725842298416214946754506719045013989857136410017210110053800208558564263582577641646160205260697529162647297776698276216120211755998111433844762080244108045537058802621963252850255866922934879280636967097511522283922410221974271556524646028659055338644874066093286050588669558824149650319531585328499169133134937032568687226611997727438503578611875958898079733870078981223107069824411087316631313755435409309787217510402847466148067087050777458217954696501586512803064429488373128993526725291603351928934513627899552645167966111541595068305562723106104478993314996414487981396126292204050689821562290733301641970174587990030405369695779694668938196548531157298203625178369111188516339310771482929798609795447929260044081933156138111669480562646469368097733320548152254339629254782824771305783764233007672522172036297591122006079055192461388268503790245658174522566437240781121730486047116174146535111544573071252515329238500276644926201305829392192668402683522618430640881823200152544910026790016770974164584937519805015753900480484099414407153939524229645382769187570023384951312254560550050663456295743500618772276439850836960255190639452887891845277532719599339284256993268578194402207154531280713358652511447087619259686589381097175657688098962952728332749278950548132615512529791497070167887044212497670183519279137821566015070833681170840248087693614897644806216956355642394726990717436802192840112268340107928889923069418754171204648798259000047578041407004630020564915248337655698366923339877749173167324286840681577878496122627695633850836487455906137018109873885119784074437214610852008705422370214317486613805559269355799627103030390981186627509160912428900320665817638912338717742970759511283963660885089832107671341351320794876650036935287379326529608008853298321892333422115493822175924070776352923930415136117645429371969002082804030889147151854328559703522991458980429911093548430953492612934937735826510790248722570887337007798659801271679819433846622748112313447511357779681996393727054587838067310886249502624409688517162400555738706344771539824134636603484550163559958838875020323951167360027508310718402459585766160181476299198681449424110603620493443224139485361011730995206353518168071285633402262480996297615589952949859743061289120001988581720577667423397397629776752013544890720993055907171035817201216139668352326913386619325711019501637356399331252526009221303242878729785077135392196615673053663239604971398610607292362343202569268467728462721051459717157653559765331875844383871377584525806280316529733664745181054582799968650380708527734044730435768138804963799745281974500189753390148784275361481339563881661646586095609900651097091282075877431213499544937289506601526976540145879071862182460715648047189916377261696365344594697402674361598850335604984450620675269926694919141656191792401475541526266219940339126045550855489699722979044552710057753078189838570857510768940003257840078935579091530527137778716244626209526940432325250377157417514439459588969050470266329705171140168749140583618841053515444305639402104180224161179224522054119349541812530383761984340311353734833677047321967686143458555643495372782228121034484764101293160550160828311279574762363493028997963595015579356449800587128675108424990603687391309980285040849452239324799703745821378401402517290623451786389915539895527159264831209828675484265001972650116343108606604787103159572812610679222057768486047592805427654800603231654954879355802293218381986756707328070126561175016481745593798900620474881868262770424306015678328863640269335163542396848946067237020312067878318112554661945183155683602596760655747804378659488804677430633518653931009731377547970407806913392079907634664252246299991560628293436167461539614635346669525207025888770805062761810830694533242174861540517529072861927290254151257006390715295249739564474076284706492792650844942042537094250908785256656975237748818425428731773683601007144171862181455650659858162612783914198189237177681081618081078485499492519407808242659918622238490098100174343100953616461737035490934631608826846069458273927504780030275551037265401907846211238672749938324051892183402353011852484994957101848234855682547144252933398810617204475945222871516474380257141344661461605734811079357759606357587745601238309538330517473664831478408352265492837903344851220317677014563026646403689652927645595265188518334405726053735774028896428948294799149904980954192697894720272603318645116185893046778104396979688256147300862420487856160433297984051084733120192011433672194819401481891318320802067049605037981967124327126743934547923648343413100424367742044247165017258809559313057333479723967598109855314335945576236898056278762460781856837103400495054576272811461257469525405932826695690766333522839197203367150105587699445676630858695235155621720896798871961274419899491177023544006794499940535869218463873158596315565709686750747886319078492870475399578471623136195122505056286811348201346990476169463031646848183617038766034033981353769357838191010718811274013047316915743133394282678428956460564963303432558275800906082426205144040089903977227956884560726285791132455927141202116078162986016326911650893367630509434823146654582526747301471023694437970427238913488291251507561159795396532260659145144499816721321825359088119261177954545021425506617147376839429510762283215109659047936538190802000152299890944065388093493097544355875465250311356204725228203521423863199782228397133565736947670075206727716427377084019978619849442853317191411043898519807312624211512818876048487960243550161033711344036263199756561952851264858098767573304415703877952760391470122565689336709327422832211029472038570981597692276645279564871923433623025420703619805937667974160693995174752309271294189314447405416443201465056506660689018549441856703362675094262137857834607431426063953951633189336295871171687458259441676663928591472679789035675376296950809624927644215847972102464550461731831362475949181264683050866063776694662333931419776577353355994645657351724398191439202340869182130164768031325173764587386290100460156796450746434803079122341454441979812675734324791332766949883309589810949899066747994389712857649905008234808172200947951079800560048279510137248152201649749117863650007558437562635050535080395612092732084451348468098705182304183154976847357175771425785617512648679136900624798076335242200972776411980999203739327880906485405451860181161119741539697657037422631174138281289720251429791059417506641367217664658002593783516338530507873556426212545724921600960605522380488429552212907038871391584879566093032709078940317880925508870489117868063172116938514692247128283740993046131688237457997728834976477544499530176460845711085028834768344190178385880044764729662883253266678779407704159761640722346852668045140530291814165286745300255384347673956605935393391915364600432530937103622306604872221625514888215922689129596780205856699257615464451883381904858356059690276229920249787815778509995665605631904146852187261838264318821044720474670138840103241606538813892662217111749924347455485652590960600113205084758089557860458196142804018230391190243951660336609339827604346768700602295225573071238513730544595718297214306600549360523260210096060457813277955229285988261089282374671390104736762012602100064269147813367844536442449385021122192793271270607398169297927021217577022082956644268422850105541653564798110375658083433793027220664365243311037802589130981158255650739949280177472885032077236987872307056655075082969849016205111679517311510305018849417643046235482182270587173151345558904560837195201204334050138824671972878467067894465641268769952659228688786118530857402308325004777316326313859073221745414888422798680630905649097296724742698618981742248607257662717738583180529077987130952746488389447046192500381399592540209044546095700629088395303329349108391176459489985386718882495210794650900632777106068249252106973475400982795581069310778238614538074459145591377291264024116192379614470890245168913113854962520514062156431037191100607110247753846106919856437906593149686538104445801987854385132128634352545345096054544600943120921822370291301180978138434640512451118735000909398784912289942530839774076649978206731176718369272465825918555934724607877145618832065937278855950236100442126581554942520466443287533916689411351825422792606608507095815239776934682993679544450876772158840198180884463499308679065597499438120408800673142572599987906487524808584643398079844508458582945902403498289712904910079151588156460394112325017510871428007530542714566714163013797735517871411472650262864564686071923881902772044853310269860319529894847844586665952968308097901430601010549447364944366230709027472538219730412328784631326655244042784758725519531018428800252951209138797771668514970037663276344060866224540883651941030280270267559261419933911931223374264727928155267649473351361857101174540891923791840348204981864262384233589527638826438655483331388197773419936710835242004652493278872696933148200740186502147417336194135903984215209861018859747943264119328410639885621987202363989459304558945852195650068194899487123465708411997586344560585602098003117798601119720190678343796747325013072173409172343045646661842453326353480300113202814194685511721364677034048114229706762351075553064426351315648901837548501356638086975278218153275594941228287100035484404784129949049669489949978408397477278073445420651252072424846904743532127173524126746588026614675688648274027245614557098329732545760823092942706913731206401255985828815808680348640746644685987030341849784331653854198409764542970365366350215212631946500072849492265556347015943450866323005549613118063139455234990955686506339826874963763532525920820853129569534543384409211181448802724204802967795577031144345219063920765461417334311882312884546824088507533872299302674162063728679416979149880900531162833509988805595231091155677757467912041665516260738399624248651908844563966502296879799506682642018137419947726969185484677935815660182756754528685869938605921321770842227902752819133560302686708060313143237574173294019620054325662539510109615275939510409941107743829384006625401573689681156891464605146696768040285996050073030146047181080675572041979452928221577929327888080077341649196698714252045092697021289551752499522010762065639208966248553105679913441451174852338757733318513039353253223277429746526553351322816901045809190421806808844485931914468233579711570187039761065294608782581014045133577006232223859590000405197450175571016342422543128259497736867437713910672527357251582966876512629019908737177681485058325639639519768219368437669539448709777004733129393698641814213248765771438865380782724554370015437003836231756993728515235745176472352231126243582026154187599343614694574352839535353259591249756032258021727843906871738250919907051255339597224580167069945249800506101466897384795962418415577239616843692179905907310054176577794978194170908024660730557703425161002612310715855649433397029220159784101720707499900284261991518803118528556220111979504354027764032948811447887175214639959677603447875963634161629913877681808066438854699485573608016445448550470471487230956322618945734791962609469256922875510452507835796665723991745667694947076991601271174912534227011934795835540501285278201691189822796809299983215073267453021972592583102494209260347137267297436548819972101089506411410896246925260258594438167511209697199844446700411599186194612481050339061529247246937176697258852710773066358226950594100185171720717962390162912476026596733537775009328778769986497659852954454736298510897469899628952140228624849471320697419285852011787598417615983319808386763428635330591796494912301142050177815673837654735579689293023123019274702425114923817533955840607826529770870444874155672385266728956847443806714178832203250550858424479261807271320329674563797283245619645513998645750003671302644338203872374543412734481997653479461175920995571754354106946503512948152618232143537151768798500385625448600715139810000759321527686354598449511012850966890688849317885119174550124015155722154572051524495707901743101501437965318180922018221938256279525822084097751126273057882414643193046585665548162283692499116402775589044270730614526808351941262469726123564974532613038490512363056930648520274660827340127351022044137914126443472083971450505994017200053124205784372260463338558457162305404250066864162789514245192199412528294073345804021852760733769030070498143922249437302345930082734775191823179396256738191154907415908718800172368868949474829446946019013336354243650150287979617569460403191676149120143287464784039686259045268906876487203277784058070448062014882569889407379319927519083331398859726805001436624465324471952466418729422547297934523466701555805596385484527937001617726555520869638150538073047013889923379252977908287332183783890399036713616030890345295571426762498397864761744062848057405603813061159840813064143965081728193900446993203449862397180451259052584208922205078245492791960382162199441061533179391145050576670291309603308857046276130393160340054522039484547828878298620879736881381894392872939101671555556863049633919438337869976120495674984839561211513579660463895442595704504065343182039222330660711876970724079946396880414742958944571815373497597860581643840741889331266818189623556770268965982878904978849505413507437981926991149540376344377642650785519679254875426498938770756864301667490365593391145863606061651493281183757166244520563983316114488669781925362159372270157053957622693493411816465214552502900005552210428187367760934704170215748837577917913754751892692516339899705710300340244686087282101473753751513402893940407846818512531285250613347289001927264720958440079736775943004508361932242507379332999658299598852286818034820665688508616708812724235117421377170998750377742121533560287127843541372695980390840144078068508276344648478379748429704442383390509312751959826822987258216259513284934945272518117417442934351494384049337082769194752374346115554584968161182849740273066172975884912259581437261872190148303559349704874244029157226429353015229348208738606805383970040372745710695527192318969654704794145632409175786871895547170093409346477546573542005527970021863260911500935168918148313503149789209620626724514981198682453555391713360981733429903490513830937113263538522271513336250128898716589269580282182944752877355746941865002760220213248047085048937740776340716920525442154490575123979864471249963664260173430655990599141310548128758606555923898368633457051752437130105917038695820561679685284192563474148244575684123073464466434082676344098909631983165486524588182193542568353371974553493197873461298903631613070117691659440183323818255554935330000147223684248449806136780775229141747297937428453354961416003615548759325925084579439083685175274802983140362984135494623651302286280715634923790592318947102485790622728893277510319168101346580541514458394230300625712225144435515174029156212417330239293266847761859387419590773449095178322963341856404718698311452502236599169215063095884299211872464471279965870477011190807878933459883206620729721062439315769823375059508926204500051627194432641979807913185780656283205569215406476582756716828690079034883694795574753609518759870823535945142281564380353136664434886349380389588127313327844828012962109919741004051227048765018491606854476283529502545945657856245709350509204904524022247073366379943201665210285439034418906219356437254584769654346745763815371662730072338368238693876367407964891293242245794262324263802673707075922074965954356522375634770664989709612846976869848524321729535741193009302370459281214733686243777070158670071787035613063796073337938278987478281071686888926239424238851419994481544287409551987560872308665078140604113527364441456130513626488513683753279402713648239107699036190970416196121207409157547843748529759472863909094400662953690668999794409452101486719412536075808754546622392398745937956161196892582757776465657339467274267203068228799657839342484323549144745153421546779831916643177137539700057211693021921729040314636631578762638733673505356435517095703387399790500791028820156824058019033278641252033847107337486330959704600412277535433522940705833042088131789089137654770180760359405759740141886315820268432467428274402555974320647116279439177642823009221964143598716434736823352891144889686821910124415529652063592460536590559247814691756927874462510386520431910080020183149281490463465771753452195476772636715255252391824721475755549151189120341835317204165528232634140179093785561622061896338237591867841717108472929477002945124153005729805836204832451433049213094067882792221987915912757040519523675668388973533378388869134805304176826290533687374386158883433878307165673612475988820277120908702436480446205296100239792577051446685626429008510523610612349485953887721031156699105731215387063125934662664401759961797300439697032596861525034602514399048001409344338270427263883686663965484318953384930654133128811416441249599634497709491354090019472544415818918885571167861314922409140863350255716985381916923818555002419691459327193509120204215084708739894086043494147797585109588669045508644517620410446726657530161337418384854545434952915070107929124363382929655765296547352427149660784022903256808787299164754529538641697866104923234328287524815060957106923804208527992260665541251096023213452683334826379997979458636464327152269555612082855895980469259308072105454226763019518565265340347654813869059173239045097575082911810496738107898429201429648966722799009842130481459368298430266514376941212644614472008745357624438867422613340258683024972584769230517356509952126752687478452963628986978838251248052875546489420118779632448703915822995418876388408397638362968486934733968328167660048541799088992509017308926518481948193546965527858455330750639016241848813913127108776924944332577833626611405003049370557542198159075378558443236401467384168114526214081820758010781835054637032845830080470671129411891036066986151063965155556779391337228034680154386177972502003635222255842250317139463177240393688981109761404949814290042556715100765270482186586318989891027322407455735254598204150210235610885104249210284829010174134498574561706170083657006051262249055805766147371178948602798542858746619142793387940997482572464952907496878959365884751650232328738511256262451123949300581742023278563897719448522090628587781604612411388644577075042077536503970673885878680073505454473381890082494873314954912092410209174149307270072511600661783649641330670355430490936280872764466888819532872495239511503822628829639212919221316902667981360338656481689825937240838592654532361359239424449553562475437744471642675815195987489538498220240918195343290974067006057472283196831926138194913566364450326862154216470692050276227017085114230175966817532205428305619366518187978037525031773732241755800872272613876759626355941621471989960429916210126898885418799121613764013664570231104044520199801808184469673947077068003187670976916836357292369652289244734848823170107439103297022082718113444705720689158577147496072099635849405717643999046627171170817868507811857728614802141157104105515796601855530987659794372684435558779108406295286820715524711695964818845771858588232232143464565511726184732210021600580043173393110824892654094165080710221331807154458092410321053321329285933582688645030950790664920293133583561547395566476708151781010726924300957575690104510317557938273799442968653861830889868159825939685640224957399467457366762868019358703628213746228973266068662147007852410822676301942087288098386647652757523843547825995262115272243350659716423420675142514881450897848113587625143316365102620940499527752681663213181391915730427961540656408424540295482834254567251959683542974694691501945976058909752253288377682417507951875131047932711899304888853492601229321727273470707419760605860837126120785633837783597603697890473805719949379974853224802787550020496581592960132640312466540853171581272050819898783441368761668568117234401242064210919800218643014406670770038171689000952455070147226567621802896949175218906472923388051765947534729951036001194045449994618318902419078120491992812127134844567861979724671948078039408820687273735390617242324890253552842175143527578198679225319944513278091009070457426851917301436141421532937997146137821557888908992005245575974642030838060876278479156389421611561149889445700346090548678818021982292947122643546570601501133409622841902370587412872564937358089168056938509609556908273341585670983973774799436702862754539523640609346813293586636965213402761106186277011098699528481559835958689146034061034839475140265850781318844339334775535319600859230865632734378986428193221504552873228353038119014679498120328137838582104235895621405278224716032268549945838240246755411127836337455320994235113031811252594191081575781930355262706097388271358363566223282150400785897217985592313040610143324823926800489078656616458385778469593282208882323609627004565251100735387014552732109407779278351944223921373831627468656875621420114841968812320644824826556259827770645632321809339508960156744828406834525408096416579616130244912519960829667641846598283626654130871822598543568430262572227261621033868035767225485216921115765986620589255778115120516321821719698832973055721702734438072799722452492413292615828603291394816477087503735598904257811223022107507715321993099001741419034158389861099763000942710443787597950985075922411365768170326564066501728872855801767174766894675564999120105473991466229077911230442940705589641632140404822323129466462825532033065512954895876334836428200679722720537460682132979057369729755185171309806501114548962777683490442751478001196752668150884831403844722313378449724468654844761393692610133742542608349355964267534597954445946517407602091514176496874925129373559204791978701219881308678672722756274728156697095233731999349970389785443959757773693450183813027991365950280779752390171085603809952689486806681996085697630033009604329207504654201482667251123689533497378092885906709902933990481001909948680344935692520546403109960027392278591449236999623973135415932078757277222624824545026046697670134164986367812617768693831372822333003818737418100228964406672456592151941834039433338036928147504563322068491887887448021917587946192355194790727899203190315759307125196613149717575945581811225043298468301733148927765283423129073262629924460631891619557772715348191441734368837074220178182580699168484665004031417413950947728583635086695437361794029829669333209593124336754823095687981463214444852217055176849448045156829779316619044185984373921109632570466944353947870430275862733327342652007718548564293112656165178266625648897219266427583134707508854684386634362797244392635242795245207405886519429911981272291941142290020506296217602980953680443599189644365788643697918873535596208121545009856500966774714628746786487740145613203609437044030771129926240891765667837868755612827872364044361737195076480548329518515594673595189831222167547128205216475800967737704542981090617607810267706447804033467668692200315625574036894929919395903771832103789967192232712299437416746428327700057465178267828305966185958837508173074208533328917468450433257980667732353754772266606454627903836880114312194258444514808315056929464777772426904128617945726117750747582213959823430924561656474848121596555767388028213909980916706365502835495134460473691224825326519694135389255406087239038553832913978597146549950536806830429318503218980621236913298585178324622759506167241717614890605281289414784027327200259129260744636635309135984644334281045477827204906629437557611977226398732317096384425907870332923419233900499070186784952952108765348216647793502763527004367179055875499370397969516256430768512166698374425391471541410388239024343145166489159707360509245223630510338291132432540849093781620740890627553298170796080741201358274949605716028021910608500879129318504681881804830951666842466697065614031804301259299057636896197139158982016174587832967326112798042784238822691463910000753104670861328788308831311423579274348283667993707097145547147206634687220624003328594925367114319132169718108637869011838694382003838725448237469360523549741232310881181041521858970322686347241237973055527633834667650852655360083405073534334214968481051077265528429444572803185992160215168147336791517778228792131220026409625993765927662860454937745981135457075743906409581315142976320632248768628714598044306737166775676005472773840151616998331178907302726257359906747754978521177314276278157419162516384537738487365787572924045347980262726439010125252798014957142981287601684111938581842438979919904799674710799899070372651987766947478736040619051482988989204184896221253039117709057086474831258931961445845708549357795524400074753410644976271785007727244075122553851836181440451606864766810936748308969843984809115575528935083535270438417816296482522303913356385154770215401405631976413491352456387474234187914484025608022338536466530527742234445694927807797112434616050405925766450605894635310513821286799980977546223227905062801654700459153705245993689704679929867887453302905620141529762817510931934756912746645591950731420395895843001829301662502315595698318236832576261227862794844157512307827722773168899565662906135890009669733653275770861271881291824628842868214288515542475331131542804886067785713836655232174477712722568360633382089110750133202301432399433549420894497505046901321850228683800466780767824729119520382078607799717638586860084086059570264391969780088351609877994422056842362364132525339700917751687335575575508508322806356950524653891953280486282483884560114304764683503797180431289675992534656287101940678995218842832872409422689509048117838940003765338186704035309982207961187067326290908887599295612131682209529135724001650884849881582446975013930003245876643971328076861121718296694149359425296173468316595609018731549898022955057420703194327512994665341532555475266219318651746618922739593553093652621360810406644226262482243223014512591865335703619395284964401726295612833421608380878203843526630938789393710562426019940650243033119109026634462713963384446819266862146922905285956010596709632971780191233845190927882408781337881444664205111431749973395731305743254186576724412850461024286119032353411386855334448733622022196301822223860961787012187938910835368536293069209061438569938477624179354090179561864314074130630449337864470548468959020535396293412223455245612344183718430622835296977543614255317318930978985437672732094210224643128944107138305676732123815936156187928379644600179613238458429753694420680326357022724992407117149967166446812286884334019727665917624839871787672431705335625753484278603278120764324435686181277764281451668851337731328294465081084623232357863590535584410636138762982439393221310540125451179077993112376176702840256906143554279664700324860123446284038870193941587431109825229412281660526892083298903634516675866592555813754822968544982881102762944096573400427819483115517043081500155602623648527013834248898073196151614078883207162677826705053446797212511596011078804856967239956603180243344805951616051912396156801836703920497129086484748876449425862187891173953935749636558044069433347969334395381533890329448424436459906439086129257523916901477988647252593362191508789353635227370739800970186211291442919873388819524828475318878136759649378960553023999976190304209510429963011612884809119374085712413179401881116762128100354055891384224643944236729193438532614556038603985860436917748586282540822401529278471307186525987785641205284628752186593324811473901757893490456045019894642355026254113593106144560804958347448942945268411850375277686058211533886677688764790874807843047480796579568172825607833691173531586888181092552850294836798322532610935794917544898334813619029951964446015461872398073698511508747102706328762752162892080589706857759033002000125066223482362310312686114315602019307709082577809591553262564974198327846489515239361789091328658939868516258354390900747194295337383157743182915423196025122680945645175823081433386969911629402665668374217736160138189826549248374412625186837329807915324367026530928395014705717786132482303230897820381413371371312524929265346034057965292711427218895753260280411610715752936830801782018684479928090087664467419904825253466082315873407369149929473982271922670598156080301145259778157632722618538412728512714689332044695192023588093831453493933733233115480466218410784041310331538603712026715379598190443485933299427208801249578548818778873845508852509153495988006945227566374627121441762837674704066972001349162851681723590157822188496869890762106339895847287250382021799382844826242899789899582396422953058581837557462872587786140259365509246311744282206729179203193238373494374841845510962033792521972107250840412913681560985284585339544679767846469610322128228666235475556306207084445198248537910674784060195110637167541890413045887944501884141777744906833689527334472362717899594155703864291724730260040231878791799233419516967231700911452260179214277852300576320358507703296077965239550719374948541722360288563339201910409460817483840793606527320955762301226964144432314993308812932080249830720894949829786947087891120728222486935042232888909232130286758201207401096340437250037091352079129296007252516125881405018123740699012232534678870373518660671775663957522977161865738378405543021269374813022783715285342524625782287756276977475325454493126423129319783648849649741882887138960181165322066297269293948208297328334709794357002614065384144518983900444649946558405419070539569231485010701301634672047716373322734387847753959404886701746051632788985402364799343869989728022817389360248806160596655176765322465794773910942296747507537771850605100223203549791567073327976375013149997729760628597768706259670043828990734224619794568473230463649748746766272358782582680878813630141975735606704619303299589794264594443855518185003389428243778815929874798854518930988679828407312012028293877965152705456043305305323487805411307455140832348120060168611548992005983576209354935250278161966194674691944424588107042974175187688778023533941825755785903473277304968966914589835960343182481056930590695375056530244096805931645636228319921379590828877633982131115472509493337407487102095563134615365725845526497725854659453961451165189641713184067708252254592956637505548843205770400457811998226776142626784545391232303744188671637110473296713074522950609484064654794465708016133427045011876030003165814551791496106459097595177601182569892960504951692855085359946136046424569046866523447307206125970401110018912123277638039081542376554666776952103443418761342201752126037382327699248097650352306292282871592828916913603446560962373199873947307641368833984816606311285840679973568091929045296430710967058784745779132823543851170422979433261712039116481638336574989377505777136140353150245057207506327058943365849851164110533197973340234964673674208635425700831998089380711086774556379330974172763160579195951347267157194811384551276677594254490628923722407432332534014206582737555984698932196027855609622702699320821921580861540148377697947997294851385036862374064839394562961682504367593407779045747504721525867931047095302331725608392294425004414346581261494319829761114534265935551051864986059161094007911014215777257136439752867239955220658312639056754344348625974349959025994815619334128212695257921350161174972279055001265441223496661250335968827820262733093895895503917037429746408781427737182136912841997397913104594527235153178414254460036382400958238983477352015775719501386753634925730967905514597987841941463054662237723685103946069884427158363872923995847396630197522273506559804868942735095449206027776603193281436988697491097658871964534329113350730337683739329820842401974341357637028692764577501827334806777653586480097867315934504898377916840872035707714650689893705180324969728807038991080593454031233536704847679291504750090861345788317367583118408166517733301219483216579149899159724959427024251553347997992063525256555264059035862399586334794773372050882546166072985872409600864586565127121253460396507843545554289749291367432242678747319407657596489186021954845948706026414348586757369349702944518530527510728270832680680532265678181094599022093355385546659460085407079078991277229354844395246829333103685973819528064998764448110133288253940681806685517078118834687009579574594951552128761584828415765250288248267305871673363125827682813151891304242149702352965292767313048203063104901904774662012953448291445738424052491092620826781409597030763825312172089674107294445685649606748668517555395777080559843581176648595361791001870675412662397595011560629901865504086987505567688561298650012029437369277464372098462940301933904434963892864135914986928865932199709944287862900024414983624275247077725346495996763343483019543099121950386065032733858272631183967635617957236603303210766063343242213473890353309517473510972982746984520331900104364664757950080053987652524296047799243352375346272190807114929164785336590098642761783602121253227337035224776720027097217003409977344377041602250655347751386545446142792030675449544850382315180431970913197076152642275829999261145060965137296062787015387474852316220944950593785997102343080275175593259564109765014199805317320359246637643227578967299421942796449723928776454346986983102837991945860238527368941250037611923683767158257957690514628330113491434217717514042626966276192543774192873275854532710395572555581166231357747245290414003091596628421804608605633267772674357903398645761726681689759902210546025706485104044520708027695725560963708210077071626481580548727962003440356326156811728822690535067112208012957268915487572513159636579459262168038634878846972757066311623109764397766795527701302547994388388449855895528574563428573432112450403562107064464636453012991031744032754751777459923275478735264136448304515320614904534404406873049930055108596360395552024823997969225386927939922841340418963607039111870199297480028691252743430611907194192429137475270921376929288061008052513334401923930038679105167136126445985830571929576598218673375792875645356278323398907793487437976750905133115729756262766752320848609770269040142974757569289378291350674670808100000701520203908164086492407559566393448917398698750284312445565663621106396191110203219460151299609993103505427750136406198558192206984498887764373482002610536659587871644817631361060785715545079271192013243380421336807291887135644282847908483615146729747309352500722422478791097842307204081585633503290475325767632479125051174606247636203602279042695768469292628417323583010214389937760756297423619472865500811649928969615849054880835400257852423343220647120434468844889135404301050059567733217104558114183137214623717860885836079556342199530237037401054958813409438697850838835391320123337618147840459797811911921263773049548565616014342992885588088403204517194565153480177731158949499888438687799992939766803347104621272586818965469779663081652372441684949874039016874861146760541644192737325167201701196625500029933170341333703911151502274818118713567310878498368461912526328409270001751999788070914262241295181569837879789763596827816161632915899301338737048952826717307465907063494018713442156155319116425250632870259988231744655822011829156156998331851592423743677894127716604693664675480950476422836143486317682326298732311219042193116571545142954688804388415287631555849223251279240473398101241425432268593580799352221836835772651718850911469512796076157833083066627803671132491821535998506823181486314046582751321314117562281448488674243435911332386485363402023004474560512835989270836738167231952746809204286056723361094258672028622484398990966162747423746671662546440447152404654341240969684767359331408630447894713616580986685569633371819765031961227795014583230176983421424939634984295609105188302175221001676696136125560594241102020857357183886861180484102232265541830448735367588283124007233917703071395543226444475334820756313540935701206946118388890125119298243608577078106201409389623746731468186661808263014670502809549876584167375571036635259704744876243325919237639243252919756490183943301951714158150052806242184277316417175390008566258458709530414107043764676847325096805757430970831769702061848892175932988957229300471344381420057091058854667244736068775782569217108271479790357604416619099774565466676624545801681526789963200916420918661681317039604342364930360571063665796885621446920554145900350271458631317657575993062946662122597445179202344806784752059241935475900356842477028133308185729737675186012749094681794859326382016336059677834787617688944784111836164710772935017315553333797650480586787540450818376173947652269416537151829732187126308447144408003318817668716729178515345510999386903129947432142668198868701628070979237523370421151295155074104497637063429135070586234738964358282136382391166718690462978488871816805561240298548092083639963781588904896628231222294660419506332797511963953254101744939194579373995496922149717880684948595536907942286096836837284169890800569869765714072554813733718260591898358751630122387359043075628406291468236224154603438341282175588128607664113143159121049996638568003089116247079155751919209754375966457824737322287110247883114489375004350682593511514679211059723136682587906475190218858604328217197501764470386655651944534661048852371517733457568668595545758923471780153592096485988833108626910946213462986380820827494384832773442620666191337954122139656652689856438394390403971700780776075022821011349376114244496552283405925583961780585897180969353593873633290255336049661883924916060719298700698676990848502155956044772631188523300227257746877921885225471220038512684605930086446184517970517846097399961739436862890186414157647638897483640628829644003690492067995276672602017908614017386885447203067162082503888802436043344303211503669427485813735684069676563840577099863766274712883522286370934959808151755760665142791161542555604782523242827317515332652299406122776381811616453461737694144676392554888163682419984768958249216369950943462473257741479106654935701264243998031773028719812027719004761463568834628255602381595368502797321379640438840285787832158477492789601394658584739532511183885009475695212504168889808476833683821554917170104224017282626832648270763857345445172066478226801481193681125910008360931416546053621269839614781555701255312641934308873196548846419841667130988081337565909796986162924881929510267015713985166789973636708675632704673121835824550692062784509088565448889526452060086351441169615138440789245946007502595346214129466304924108312650235055346504236942221411779123061786995273849729840891968054189302413691794984232677985309779925234572080691804002146354270164441969313898733803770363491341106769807988962838522936594001373832906130393549693111256545550691268437906461454993758062426561221328073980994015364218526981574810051281275597589903638957056791918657687830544856670320659687283530150300148639968413955078674356673761563945850780286940376275792433816151325680832864939626782245797645785050944614643741819599412380286674941817752026747876487111084733803462016088409852375315470564403107567641828493918100192470187774707306064665823644515666128144802537412318361533198321138508771671727664500105195806059831546906023503876947468352541935809493592211887346826413504719503389086797905512411624845528146895948095573571979093091894690620841262171258509196105296740215034843687956060910280069169172854632215513312700385912448299766858539191232727264557211897656085496523118481389657209287784313363295916786140150313492050166858814242829538004121935998639955056898193036488770523037614512825500062240425589468922628095500137456911095002338746572175320858645182636839753077327088607271457191335840711601771812577457135476215036862062545788699013005849408837608181988083564621619132096007159267363267453759382737401820605424969146930134465459941657624074943332512913150989153527840184918123533180162752030609729691262017515102880890044695275756184190906073551981182065455036861299295476883129564709812776656483604702394901117843082500763426610021063883591931159948649211663923761678659485930140157653299374904046863068318324444350272384359391785914374006299753346785796768096126133294222691411454358358805826744866044394076300425252740137478587994584347949331163151633195681093477482802944067978220676440316174141762919146709879226703491160804570686519887426996959030749149678816760351202696659617743816024039019481259192628729033434472478497274319180787894409959462185441991390783868481581999947546488006889086804124385766471790343798682772969930410666977734124565351769318465505357660943040161536612889357589624814158924254383055993997778013270857729146598053171540797696346225195733779067265660684219410907926487718460532354006222963311265567974977197379392809249311851273383274887339487514982539879247516694661462538211556523951830269214461218731598599263180417256675914929501243564116125036938291000854076009883534429485196508303568718240342099408610645118768888547359046459920392362069433174092455796325355454940234832925086679326233604871994406681302982553630445936599602428660771560179859884923946096535257250350077604193907173313580388248968280365381989498463187919630781437737303463887536464883111714082350216914865319026656650699537620070149793356059943499635560352825950739757955813606161811237140447899877333421735287579507681798677717108110608580258881028661492510133679849435033499291835454166853282291387123982323690163510848557366335331766943083356747246283582185214944705547896464926094907843164535621530560071534065137680055855004478616584394165486067020723523738709534869138558037986161924956436227722114458918977588910263410645807883218764590105933009499801543978825855495071725016702706152321413489162582098760894278409488979885819927189571059310069017000909833754696476259765433698452870849275136449321250562087243809010838942898101382084287815752424375626947558061497823041692161364160440367662906057820312879846687518931280851764175863972115396191168382784524226288834965275979218767665017907318823141542720362927094196245685641681813566852243248516291756904537817303825036107837860747734448574071546135581724035460191984881618596070387472361950428584250483497963235354200585151480939849591008057710631954835812426448355647751032441317303759184275204252247345038827029300051391934538591050335859312040015489150587708768759453781786244724358253654065382724859451862032479825797764356531849133467242299916806546561630175764562333829481547979885010443015142345608003335663971624192187292001584801811659949557177615984913245064464426402900638247182796674742204773242115584218752092532075788408289249703404302533197018691327911689654629183588989677796839940197847251564033249043725227938341363822004389978377072832792311770461662231507809386928058512973737946198026933275998295710495729874878002396622471188014403441601989967563504656169697637161921898405387823244611024743711135783774421980818463923145344270132910871159962857464606128221640355331691290880668362726688260637701450981945933576115742179857995214307463793625062971079145071975880277371516687153598390390886219956629691861583760887053516886730556025866679290669660801058958500416079278111403602417573726498947147036204118047517888263569076949149387841659904635928426142427849749544322646573298848867109941273642045443709603802087572623684677565132980102483100077899388354442072207187966961728815989328218147261264233705610612481575372437611678306287671798215506327798699012304519335596683642139697673784146142175631820317050167614668234341094734130048553200308069481370570533269109112229181697868116460163027149625360087840970228696867467583014859659405741771600033030247777801471338979782798214225513655637205435256313995114035696024714093457650015039881721613936766209494350214644554640041413685184117553006696043446343920645739163201098650094744717309322766931697629062298502541460274125385765760969413669645774252814291067700478622521357226646956356046539200265618286775765031979090954503609984010389639066121847519720887544304111744810486893479534257024904867130497525797873158378254444020053883648938572715815505445422620840970450478745645417175470162464918694194660439598278368892207441951968149433366586918058600528918273121350885785218977392457990404961183581878011585880678314860536021433402515340331222256509791438655096817578465001437638626838859138803930175636636701541217545239204427398249565119910394402386612086281610768635346270923799341054684064202618807914097609215026020607514239735631927779186762073125261040820947858034475629718876276410566821347515304996583413925949486607372167713483796287973391499379357728622402510580590054741222706716751640594731641778793683981249303006889722795808452784385533359985976350416075455944957062548699377157090887132187248666429995600905117607747979300699987030641861567532817336669695523884097705092175559929748588019408156565806801390169228689150826105696284562477255687347524269460769496175784191354778145778106394499892569853111950549960337440658213139529498616722832260615693375848632959956154404097118585215273076953465727897378975288644692286674551754941532706317800906620964054857796967617247089865020203520051198682537924762843107991298070547649096757057007371236901931207061511358632859016121978804531188344807809162163133768715711430964557379297781863637190330510382803100436886303090029804646845947256517926311278703282103899602865712884867676902959635593793043722296482336154005943561101229414637257649442053708192193536050678124781290414086286914077223462010806908231036027223018852195766576592478400051232884129569458332249847360590452402834594186674393468726072019776212696846322521775013223382029372798896624765472859500081261395631968451251909291221802903351287729479194012158986730174378253753268190520587549709380969096581227573943597011986837036721289869311829371513818923204962620448678717878240715045682095675212984688073873782368535576856429903308980807227881982627734939383865561781633975931557434436928828300186596101723645546525856604861923034034510099529151351474079803291848584612395326432729756171688271654381408394198203896122543851407801616580041025913870387324056679402879159362740822372939407904250023659245147516277355442669769956716792353687977477781012999414314924099590662823783827534916588375415408759494514197807376967948605282303926772397245394901993309796392110567667802204591542318835048722597031236485838217658757013138714103239446797449607013117965341240904328915299168164202302981938877798996228258947100056494818833813559934274223567984076643851001323796442823134007590251219436464124314861552777681447372982999948287489424056394075094004895287267967878431536526824295437302111355388930518519312958991054949885346917062335501080157389878604965629389583820373184862124304100842383178488956706128897400104329109413470553685702673570040385889908939706638547749002644253397846156397613578840363746617850961967922001069934772491922889120197290659253533306354932386648829070670187334912116975947746040785663467529936219415362803221221572949661218525629463974632655520537149999116177738177737467350602667713211311436653457923406392491580288739344724473502713762476581299690737399540347435354604967044652200203813188751559064800244372647185930525479626187119400047528716495184872284204660380147232068638763372755353950652463974827976185113828838415504025191594067542448800338010654377711633669734801583040886414897991481677332780985663289462885754371526295249194543189943700018284907041175312738485074901060758819991549213116139909027671108670987035170799771110611580631817906456745315989687352315359660404944287948073962441358597497068887385863675448441504704157457284465050101951615341631397175283675711317822207082619347077474767196026631493845165927387815978353224351634354824262108670316138989677467988377742251316932622926030161637084416989637526319825320399837974176495158315892991940843727494790047350792230390533146616254314753521667628262129491923273134272385823096944631710788520002995053192880391972722096768636653547934772342748153169461954985737797522171591724283412953490360271559122032947236143898028500718989091830911388532800881337775210700839067198894376144856768263522663544392524717951569359458147231200566639434095551665072468741177813064386916057083454828548444223032833182177021289923811963704850277680576089831152484463158197760486138767713536868795174516354073484140811486519210220825802973017413457207671079630417708376233258371151843867957769079528810609653922727429945494963692686481641841011776873578167625043079743739844196180444168626613004931806728039672835773973694930731685016724027336033256030815811840856879201121825845086322461737718247701696342934204282925508172556013020186839008590579163442772058488330065545952946501717446483952176421243429979926637937956452906259994143613778521952095376131769699589274802083157247297328224510729244984658402165311697836062266885354127452111020854551012031896002252603818692721045219172828238849026860423234566700382282741181419898106451723257498741586274817226292518451602413498420173727408722561596319419777614918005112874694138883716529489355875433546919471869197668494047995662250774039425917774248175664204627371545060570536393459685146027887958279255921961468588021752762681960332950725448056641371209183575247668952507330998990474378502782015958680716251500580534882505346655385894625621722654312929874431327280045026669061239162646359954838487776839418888783495211985697478059222775359309658205769349207853013884412336887445157776731039315413164189273432782401102308449954084446540803550034633229004785185984589358460387949570785626776374290862661181095880742893047575170384647300943843566577224816908513253758842246682604632668448574968832379561715492430407284123017581616957958781338239348832588010862452710809969840404230102210082415152732192968546420899532493727927173093708529093792580635108038337266213120257139770130509250195450190883697410431185270859170993240231787365021444885853128795069148355839450359565126096940440843450683834597847051684972569820810111688435170879129527515963990496346035036037097806259671710194461250163447110540049895290118816009812576352487615808337867582820165239448535690407065070096740380648657520903863703246628665330219878308813952550437987202644615623853568772533401856998474882182668596966871780090348980718237132242260601975411713897287060302839569375632956410363906100422729217467235640490064697954128842399009598709034294896991793571637910580665637992624467771418902674095397736145687634236635733001100778332377078582199030976940177215128040495135927456392725591885079476236704111440678196235468871236854962249771691392544128183272574511510841760345106341671450929567777409650970673334201412218872861444764756183817610639815734105658282228762569026134176496709207748452592772483961049243281146774599874713865597938424542624212060113989891470859365870355306380574408888407993645798412471621534506790930645585684699023677829942031819848603754437357761430003167913211781897885298891322040395706931361643201464354266124314712313873474605255498884304464139873873077252087047564253428390207427574851471255696649826845677821631410012402836854883368190672885077580605604401583569245635829977575656580614215300950457915937597364700394955883809076932290679991017386926360050195420609707304342534631065037721475074735733864285520224196104837998179161759102707423312268201524547242982086401729766159922542053115644346237188062064997763916693492715389285326673641898901841394249812064183853305614105952513495569520632961404076755487398912514911640572114534346768843559084576869189798661827251584065057044969541431465219430394127044353939076430367052754619392726886316321254597126317971652671595236852300834284461301908429760763844726601839960383745526638837623216310419848753504200346518204653296006673111517156031421239425973210374511284037471550697685295025301327178758000116464077809243325547615564693915238834077482001852512938821672897707148799214372556164887239020009290089093580952050607618065937902777441742646370900271384835341990138487103746694128423545120280959697608067630553897786182659332024261426426410428003048705346641867587107933188405885695361430739182857643571320331688976669759423541387006935350877413701457254427029315790176155807465091642755079821288986128094506878908304197268739177703341605568809420895035800765137484835043984237422289362243214607419795943012336336991137888055692723954126804399023740351566336932411602516177736309192616167507108590062887107978672576473739317981037053628422788372855782771481348928351112569733368227176297883874891287051901389584785131686976286218283615363917180677470200908260858467281820154328390866786104867880914510141562408522843360155732436406573805428233900271998547732579585369047879550803102670519258783868867632455697146061677543328235340677856370779027042420548831612486096090024447367321960903148785550203497702107126284285188646523758071262732812960986548589633581912428299469790707101227483691812334554936840006296212617489753103075995908553218368776959911166705305727944387392801805701719675555026736472901712897301979568002938299107249907727013950484501466989247938829105518657087027212275875771984692737679910096276007633011936111621029726308351000434879016185494581973099365963096960599678916930781794891345738161641970754300860961967442335630982814851570987164917165855112144337802858126266393606135145418605609082279069391055075579463720689008603800231697423240233347932608798451502203600240164431529502914052287735656158376756537907075331999881484061229694263771784165738691732086162749557656226628306467431794337420499717321857568548967639477450386276464483570723672353614061451724609401872543256417502828225756042611739811880546008802514069119496602800208640491889001924237090542301048547509958839374857291534029807686736412310407703796597403685434724939940347707114676155269960460603166775128681641973491026738297682103362082218119917408330875805304834538080874156071732360410976447204690241152951528127379043082923671930011381692145288596863169385106970106575760188294237460542763403309639322994182649574881447464291974252673629866026057545184050506069054439095213849475219590799685586096182907166334401207857557727485367313861464758840400201440824792100261575820864144194764714206478857214639157995522689127169316830555036010176942593608684675273513689861692954621026899703182799235378662096862440747674749559928090739915663455055051316013997705978741692532925225455942995554746820496700817482401819124049320100387297145534617041476662050067249331734062902596320880661742608802088928101498945779545295822844954023954258503015420992859269792450076916371338250696961643530017933924015913178169300179118514312490263698254138843632707962579475681213928536459003478282756447301679462580395239174098883951928907170452635279229415167639217387875720547006241570758784382318391704856436974892681429628369563217803438122745709582707323918315220506949781676717050360544562968922244503970924763559812845249028048167724227008589515406971119452399925334542711714985281963284247593428206056270170718696138310492219026957533471388799543279479829508067688503483356058560517628994310492948954101562423714539275628697595817622081404651050511194781923977959642714999175559471271428271719896609455605448141780097669726202371362864491444864534378795972123565014559590953730514679821786293092320576211783538491731589267214730910447912167970516907905308460886555609849875047745742982085117436336907636369048908081068441968406902366823921720626940050776026052104423720889580601884241449857113802950115881689604817078425340106957373798506976483951823684496476708852092661358179580519384193762652358286334669128473538774848268411090928573061374438971183156285335763256443064245433692874224180921203706528061920265120576424129895313184551162288187137998154776039972333344159321978567238387539804015552133933375796375882988810968292902099093718858935036517613202333507137712624074082443195032052255527737196701532564241658567796203698981691122488816239720155125863998530356309159927020895268495075608740857089516243086529667206070798580630293849858705797014836816705914981318842739888188831665155766552961578243925291027261939478307295458610382946016748901933975628206301205260232352830897090392296089293879134122839065282607826603757472865514432439972057365909588788933300282711004701995426198641104597403772654258380840123715072866268764973892749475938678006555862587648321508533159002829984541322041759024992384728365980275961980481236047136673003682068006973810214206158789338343698502229306104504931588522015008600154892188370928498272983729835492564056228314384350920924125456820285105163341023327827361516210849501815408020307285930367558491621709801058469899504972169967212220539439954683676008690501035745621855644761167475318451411554425358269131082777831699823083742548870516970630181064061019003198798345869955105905858466258802118682031416135375673675781460193008410688723289776642274207985889898104280179850670274716100320676527618375109289348122288458223114055650925395185666147423140774171212273156400667971505627682745249729463877016372182543443912114118122128322181460853428715265403754250265638163762796531689010517731573178096407589195899215847909311024326943448921214649233641315065862037862393570373811230571690883800208509649949729488174365173210392927125067030806300618577515782407795728656884194401792020096543284553191585173295987917525422658608925271789950784249975929651994815053079199470226511609692358658875066527499312133122043738929007343742355872064537985809999107967660746579510518166807521983155579848312114907369840758349995210928660764185247346040940642102792842857709220062796427587654607574456962251865283711020624632574411645825413936892802206030482778590626795416304549955618971548229841764012976853436181341281814858271008905151854895387850329816169669252102237542729871617242043865969998129895519847135979457955517101552468871912345461447339754640652700094232897343349292297693596180793127170751319594317175227745309240327796711225469274737144998168837407643459827000475686567099230733965600704482301454633893907322815196407647962828658273884053114402783713174248495733796550271442470649958521825649796095048541433296599032307053109196561842656323374786700858847478760793558292566459079357350343395332959856829675913726703486153784924008958032109099629047178994296401923946323872986006503903749736754050174392893110322833931744367043843577156805892737565968918439745262228377048849800123330378226539252178066393728027865723886743112094139655124996124661997121582641169770875657699956876650693667230421953574014482762445360324774974381498918661087860821535492222798734495507572820667200982016308945830733026062029045409102777891844983573542042628337688159397932299487772200296003220544052993759846833918267911523906011806431605833991314680429556197797454832189155599247012131489153605435908456679146499365826997945611505653987186384586599654637129477292481794474592041567969382643480103190903459537705801800818514332483138106046389027589117083030582240574723812887916802076241047756524969114564778802855714640456913810567691082353356439800461876842463411626785844442212642967785932535122819958738090694345235399521445688416725933105285929504976215092700600132097772825098699315507619236353502273454930497546141743566812352449142115541343563136076071353643843782381799701723275111391521039392767552510774500625304124305855469969390833496178296867511034139827966737144805370553138877762024746370759571045486884156604077466112401639513145990847795255886734218265114011433819411582858372871767459592820216464248281997703447596575662554628917140779624923656915781105350255600133732500932593035336914243271392933844390573795284489582342270028360131639097578815474040290707741920819423374301788529723144678227154755174735177211284331310329928997501560197790657637171212037509678146952155504279940574479688137083480088134632069148170704006793148408448768011727743009936454229874346355910460629297392531693005622491016356385188185246171759048981997928850801349628216994385448158729533670243860953136787852283559130488819384650455021973733988292192086659127313544268999606377506012652769364380594665309564887226899892322546192851105252745853036976166935654126879435258550147615367396084421664483271412584132953991445942166132645734479924691456102837854952624305257043159019265112708272209353838927067549700551167570761393788352368388193350704740762369237154753825116252947208935214824845162416401710229203322745468391053793434842396070267061901945969649609402229405277478771037909277757535532992258946476550788116096062599706247198089663263688835371815821217927280725339245882888402973185145654809593594059072490511130272610745423419049292174382185105134858898297137777915390314443207904524608264448327898889041560052919436422650966421233190209265786699883314503742851320210640991614755674123494298496887938622138543019167542032050875433089457922262640561823600106917343677205348943265817690942997011301159983813009560951882503702208566914444792829629310965882056085221170490744856793827625044386147405250074352176636012081617977813551402113644364160334599274719872319711252322974724933566320700463565781653544621145669022939149321365713591990187040499608403824687991483044545722670076227330389121382930909272188057737053860759287729004789695254596280382242656444254064019923268008036833329991489976555050771597422508600846184044578720178242312924700774428547964913845321208244597838143026540216340415145023420480915957359179829549643447492786274101729991031752416101406609794515382985055594994831618864434379187051530650821793802151673347619209833834472870630679274595231168999534411253181220893141635537831709109833134131382304784517212743579578863307630908022590939902194004695915370045643028074684169468986546875064041115730825605084069297048401151128313649198396874893021791601793786172519602445743988831097980755607017509788746506775840997144716263616849369931022603506105915142620934910136553641950482076662420459651132048504983852404799404324050090447197283200800330897497220464182613689715159334342785310850984966054616265648213756657137884140695633965874183010277126225888329232471869603497421968830722981907992032041627938121515873584832097892851002624116940801060002206092349906033698981577278558437761488114240184552004084712622950521650589383316297623804002086126562319404443329166096094354379276021998217886517127438233103902749458927447248646436661795799988928374561793268760946974624180014374621619133592782067561973080142882673961000112027528502749673761203074350772530247315139403174223269635907631837153683315579798349754280310239363399044423121508008714162477065328726434658860842586094042782252182107782991047180768345057825249156991596838263112772260062092087099466683024061101202867709034393377953131629991572593008356469026343012340095910169413016971433080974657879765792890277639354691593186853627786866496344030849606152021395903926099663473123846740338181924990364836925172608183191925736340785783743055410541098621667769528118407053954709918161783160524274494346701119320640675436651122089104561255134623284150535499749454762958827774921273660702477905648452256851828565382365009902807043863530635841402173494387348306092286980773535306246535306213711389380272911735106999651493970329916144324946850926686580145472513657122903284843536490334725899401751034166816240430551824583542209277182652585948333342924861889187187107393338044626868843335811187117049537530813371347965882914215733911195932743339109927217389493739135742358993558844183619152842781374154123429745569850391019185401522045506224831108388651097009157993201655338737509436867988908822452469000593937365650072958315363954825548263612057995869709517987269940904166736925537561440266955060944268000339177763925141457046194784607465557011228884956104567149009697432073302045917703476978738999745978042047394524863095146584818281113223289956624547937600150734930668155708744180495781722834239216967942235326010225701364433179811592201175594941446925830337008495184896001681395046645552441619414784663904412808954954153835846266542803028126740892158550128692767746982117908192946907249734279579776236889271548815785235352072006681689065598880515428572256652297490993287197928510170863061077226353575433122852126644311125850762086227932510752724467978288844009535352548520687958430241229098859609809426135759793158732409523873172395386946644430373757111932418176087369423628533091817127689978299465741859111642996795966929703925603139586775917588951409007816028457170578819281121370640650224712205801692505310455302199694972210038900691808608006640563787365512145047136069161366417897215599969576851037665685826274233841077792841826218312439166274725051213830135757116134483807889476260834400316831569463840725291235669528068274411701948320314495022863811656333214085408213146769245098806804396760429575167250519057752231432307799739819647990730368039627485879954289852750259885027717353762816804685507023387596478778653956422420128795645941962063223844231227721588838894631492417844698223175153667917554052427625916703959407245656063772968364184122286911459937704006799346793913465758254288074184448504163779575523288875847508936036442822126257099218772101375836555483559725511434310374487555337190094641185155678104898534796194375082834421990629134962279667161663342153974241616149013514366371007965144368681281494198844738681943088307069464483800810099162031775901912937005272796301140295246082013394461252167827277425498895505843832560425786898966146916348340172440438887248635843540352673969594772673336849666870591992906472465416981294633485585544989149395423019328310517667780914267729556169116989622709421935341200806352342513131857206399475869737300811992311514023893958890727342079730110402306326764917480517392216800985099068903902519909059380030988409965411893831737770586451898051876115981886594016483985625570893706493447690590896101572812941409192902561316776683956009631976387854353264955857993396656280605670941122490243904196629335893217934112107284746684002977979130831219858520042876652247843941368491144804095708889513828100162857720603395480720687705139345020081842922036516657604720350383029005072285373821724770521132000357575875854425965453206426751348958120381732410685704511979142475033648236791715940320212355826345008740075345993742331408805451325366990102625765727036468575402790159235232807259015280627908562494679734786927150538259519431830231233429587559257606543914919204657627523195531598239236094445215945920489120094065326446524177499727033650266807836301633327181449429747282941456451544087758049458000844510300932951940673757540368150811069446137310886058552390266853564157414553466567808483897467882278497423982101279178946894853901427770185100181394362807192748886897540131238215513027960054034591770467658152774157910897923499782381736557732329800787433520768850350529261418068031550543659898320392093455099154297999093490818014426367409208670243761342257312394577704640902810002671794658405039152532535841290100200413603462830171765318323808029138492044664608223070105914888549370520250096876737940142947666232182010656834245336001074287666021110717740582128225391703229516525837736596488309261178964139356568744658884733882368039915753441721755847840699199128866304625571826511210912953473224320732393593842589508318536282595247960870555229249545879582855013047330444573450070599004555557544957204432063454696062441295579124430880818143047573198692534439169876433623884115660918942212409621448303946130538649704849243409388057908720855514485446169556743284667079795350648204483754864972754125935810027711045314961917015118258213853321884646822009080738796786332661567317081377223873988700471079349924601047556168070526282886496068607912203998377272406992788143889957617169976817044020170430088878879910343465088765152648381836708707126931704965367436149185647631226598050422105755784377650920830047586433030945891111621785095801636602148898194622741038476843576876095050656399970861369982451315911563963155240637928965605197007730166267173529397263270878856731542430575547190225553478197379814792405974542915049612609158650809518420501645976599152751619923297181289044134030305223551685924602076165074247322902529856327684249237790723209589514738514965102069082957663293301322464237464862768455869298402347669278355252994141664915858915255358174264977964195259577147795561232963788534974250407528949427443849959950940583243717987824457883619743970544048325725830116546922208986761314490687007096265703165362172096677399828702022483355773153285408063104569681391113100760395545973050746679494517150181939081237856719942554851666712251758946160271427600155990159832529982451608173545438197715017465527344148483143564195951230076239035975989695554245244938413426150167549036546560626495401804146008327349408080527016029648755611437348700111188304516157720623766686099800000985202374074901272628375012773140941506474635243769794492998476277349993336468680445318946660324854175324867816489842846020886110042088415900523311277441171077123870201655943585656872806187510630631464360822794221112886350832442622539832680573479950306635647008100087611711657444538636044153616571571087779698870292844746469507159909871243853557401777694342532746644365998976545585113418385363724255595974546234811927179077533125232613742624651372403996436539761725577822600212111137924941453131043484056667570792397394904531999878570007528178710427633950412248619060552859252677095641825530279174655986240839648354631770967465950481376892403193795817866363345352931935577287230016751167650672177399438685738001063442038404142587612404640636702709761520878812259598964365031707681483715425227870933858113064668060181077882771743117269277976261597092289454105909441966789191408378694247171436362467601195206010376896780734347269174572569006533989430584548734743661305949270512461599938141542170165516302806506593663634244128164306996583712576208425443561144698664565910704947617931658729447801573110177435497681934048245180308051672377550350181819998350573503530133516780068259468564278840539430173955166364937024353806516068853888238971958564880912437997784241343992935901929133013180795888088358041085407051552222396035847246846951092191566948327518669421919422680758167469465294786192959974096588853100742003885056428177908801681262257760500284032236033318399117477777848756141370881193328313134501399578171846327597131188451373368201102474625078194417497529179406208351825336968895921367398788585633909611567326762986667576361938990429806944038624431308270974773840455323813727379237482124187883243121489549141256267287352885916203274139325764629139036440233619558392707631792967151357415740988247723563981360073234197240909916514855414701364033649424682864568477322143788298703920642723723310382267066229736428890772023024289221763183564543111757623336430023124668629510251539241481606860657687811901301127243339520522164541178620159919249056912725944649571095540265351583865466700119832992585070019931292891809610204028916661146961956010638246245280687550277860972658599848863827377137318735499420769614020445168525025352351608020890034780833640618035667541229485220567467483029558428274706684704892995914388637118892764205427549430126382315708890891045078182833571588083469302208457624927505856058407189953458446985108411250987553302583738275252056936114488628290123331150442590372451276154291703952300814496467431452322510051204258713659216190730291850955241994024558577464761483954761656276940083560995343766715186414900646389042578300781724252383445382886778292423487252932046408840704741187451059228623639843961229250606675920804130784854421365116534412145077488402940649739528545291376165909463331507013838748464389357049263741516772914099790541458467835960696698441370698015745614186387285342916334629916803691842375962888198593024643050532715025602980512433655495355644817530496959723506911376234352999085435223697675533548715631063535018539346492026125429842686125622004150906790609759117118259008480131560420508729073161882223077565963191772128563850621071870065090378483157741901085188699395049243453114248900945823712625171393811146156934078077960109917187811841231005497522538634645585660650709195904738913973019938188221482352028730732697581087634450517923346787293767850024080341775866345772664339770650851599039402346951658623015373506793198425250976978404816600822283388389683612881240394925512674618820084552768247616026771363477343724220688217448260577542080274535430021228123488431625765697382370424381141461113351074676491407316648125302074153319726478376320180311026286712468755489867671199612065519157315401266630271064371885370998560828142655292648497969714633492713988301550076975340429817070655900641782646314921516116996666616379056505568703853383109195002216562881263203962002707743703950391468727449923266889238542220805126280742693375632669502494029138543220386057136408896731484581881784527212781326753412495933437516414306227262476368516415963659096101137742680619253392319492143868403384097061922292162465401086289321436291724204771673434990866697196397180964622878559065912106473258145241652241891251950194336269671511143167019820266304387224455321788302581401640258184104069997289755782598374722975703730867108416229282740136047214835322185148086684901714201103369429542945654473594173772104667799363594194385944781390028920771482323967060279268506043059073766948293262965853849710404871935201554837154552754294838066954919724581029105754535555323773110973974166796007847350320889462972175663288160994649291058496551869608761672736472350552292519577125314929073841719871238836115905528006454702509808630673486343159726268952647022090712084655840182493658107840266348160929006896292806374887222204231649649676853701203578122939823371769685564462355237088925971202819845938226754185252677192426328883568864950873148341596052829367516636917913116047277515182871506844270195766057574557119474894428435745382535297685377111988472842804318937807059921823080113650180751619640740027497624703875433431460907593707105651151113281658913314032152244801259423015601726431642154776906453570715162497587018850141655293877763430493004911194633342521521156228129584145680831117109600520539847082755969710172053607641792721104301132956070552161845599033968082184351635714517550888760808156720198071589235302548782156717905692469671349966777369652600309803349567454763644593386335681675868605924772225376656589229375266890329027186907438954234633115280788757421050122340677710408060491898520261566771908826950859799863412312500816887178835043001791370073932637570205073444350422077088559061315821192951652044750704640299549439314463519837484188680872258360467193238252654386062205814534560858334017663482165113833200688879476663003336591191189817272044244471960884436625108823343494208504581528186307228874701284586351399590163219360462472158153395614100550997907357318724211340666760179748820480852324898584991703312224926930718022567702342913192991965191393670640426157072925568053574187150028553091801906392683206737685930916250323468756811648217433238195607998492087081800059165991399161394098597567491358885237552422486277091258031806287380551991472371370137466168026462437777991727069172435213113402703583674980387990910763016921598208797632654160981649952949809167891462881144762903305514577802994253727466084480033342276726871160432475031831136394047048593072692538546372543361081076021707771587650002802489957923549070921825991329708191744593951766564567412904299278851121508188766805942225716256929681669735860076325122277632031626575889294771253749485709173161155813579846567095602402087854291282183860554553840830363630845116227637273795851158143889377260058491404576854480020509983243425920304105971343597651180236000387993745794281412034563361785876097740134805259267948868064472366968128926043440870985059939018365167525563923865604138188162105561182508300368658813225300821387095778492391981766732023130381586616498687137976505501577555307279195073310257901358960552060803881002602301190188620895469134859528002757328325123967431762154741723656641279600221859134492268037793978816864918294559368462529876509150223419760213955215016612074604439215861527890501651477490998151562079660872425730383668846992431768770011676130113496748253371045898955065669469434532394008675143788620217250758363325274096144513867774466407774853029562480511341607049785957473767510846988283760463696192995290752437466391992317279469208603560260141964297250695625380751544821160160305083285226024283389297344453979835363301676866119833211003601162770316882099504158033072158503883130262717058796545606107437391536826107108685465558300417622926632718614412125672477110609215937743987409307788635364218686464448650812391882105607899661585138972508432051605545310214514296795027224953925892486635400350474740021196974660057545611157337588083952073495052005611253255549811646877372545335790294211730877821780001856600104744472743892060649997125327279355491201492482260825285242313556391023538691375677665742203870560494453930610402151604505489612612476608331663698554342200435815008023992218870141276811974486044952033154578007852663642979327763350999366786448484457404695978460576571738781330895973019357627411209746574387197789893421802602801416295423475582477253603458467049017612708105887355965503618968092077574123022184314934546340935158852938630506400359806414623750605039052179776153737912209443156488941365024474520214568680222487792567079872755463816079811148665858181381858144114806156061915829908502311858856880188612742197584391963039458218282726707402971273151686082762030544299750864617124813029210074338967552363646173165034543572336238985348812159064821451093092156520580275820766303872263921365765528115938835983483602378990606966985613391548050144964173144456272645685503491556290544999482950701291432186475241242026316655505178988644240790457671286394650162641680160291684831404008314587020942457908420958271493494043871599980322615379049440644964617749427408881082031580454655411100463615111490433917620900171126574659178081316012609146900963718690830916744984108340267736488350624707823084671078727007434202663834453828985972578107364065941594891153857121909504118545343186510370011113558578726302612738265998036467945588338496119282468801788121423024825195955849117197465187683255058926658725358643013107496868188910686890270411649501389905618254448706142065368988675268435185740977621635044112289302084018488168600486622175404406548868069587310570850542422899333585289245648376887558253818889836166824837000688452629252596242749651549210346895137837522867349850616168817173825014791206270069827260875781037318963037151285800955167058937611431044074521447263093509683858104448729817918956138025336876777442053185880590954638187502394974883203609632474403545433543437640109856770335097135280667108349246614599433506711956202253186189335264316246109830839158715598552395769728335856495557530359888045393001712451816342026210910813650862794546214627355368566345990982746418051153425750384914789918480735734918455650082644797410101122484667522869544552541441747868293830061708381757472084610832802155403614285589323313104866967663343571408833681067357324421511368068045104402755862539460107460579132447627084682505701795455949864864474479796238093165664092050860910715622582537329291664872163928594554523913215968450445752720120280049671981811642812898902524536741282904029659858726615937289779712097363511553022487982021728201763995695408069620792981471455787397836600645788843521194617905198305720541943929614151611469362388944221152287687247679892676155862901407075052882326407817190788116678823046130060697332836797252330190553122950270411205844429523264053765510128567346512160167014627525221021725902159776320029255596495751849606406568047811327961435734400862263201084060096699024696446510890237152497591918481543332642935321656810580895647866892681699295568225049427631964103423600022097836288179636667633964427931738520237951996827920421899784679535818927091856514067235579740204139330206420389234163386398874898826749149378909590599760377931729184029632109982819310890637962140575222511754941139831437946475741623925056243876355767439203074088268381728959640399396059727302125024383928204342124705707413620911364866281043032452388592290342418453060665040351763102897601604753804020089067658372604111760732253178785677196808774313821634569742577825857210806232910795955096800738773896516607223976835034415546840539538020344226910764646972140711326897398831648163060353065923186112740472418680313897135971690513303376094345102442075430835429155146031023273658626594018596514197747114880585222553666840956351756373530295639568279019286937253091619016147983541464385151704998941012743736987649548766118562767773339020294044475415954195349699504957372956350099177023333940655979461375453670530889325363433818733838549037397341490186768970981662895483392090047025271011584308578860872694209880653358945091821876758391009775989101268680814597367044481157405723021787938121049054034358449751407919462058906470209897288860088774302839397606470397700383134873541498635786249108107411690402985966571261372379110991744968116029737505204929125645685926530467786418043815005367386293514245494762915087463109025499426982910936578752027146158763070881406370939382321009257640976551377592802833691709153275272600885034686941628971033277255165665013173675077759118125782872741769940952168054570535605794332678505658100831771254550158561099388948097331938631024387894091982254105345321771746918557871542027432235864714720628917104806093007070817008792379945534296860932298907405103843597344100811475530167721402846484669507860299227068475827846177155329381077926816548169176165945868058532049060790811983786239887310776121881138508444983234909030808604079031039245382988045261156525396306728951745750425830768117291823593178600017596290729389208214919796515652809918864407939378058053935210635094291852041963926149734697013631097038214639013266898773944946852529918834850887287524478117303869638496146199235955454157440397460314314172572076989573362325580617895696705181409621193194509099495832696067627720041674725531863934164707261393121873195468418728122802765746973523906759017500040419928048074699912323723677987623292291291824596280038854391771851427999135943382522032084427413980860471150431727017727545710278896448381247149409867723102143849766673839355609208138281061952730539722055120385913941556657394112146179440022576880411887997184096928250366495235327563829873208959983740533932087171577231607735733583576023223336795131538277669791333849640321187720594249240104201544773639454769214965122941906886234741327002665960179980183069333989860572470537769704488286092181432566398832408563950693659050529610757185548332141266031156554952870067968802505860313714343672103599991905451662845291474860118743533894872912216029624449076561694935648047207674532824822247426364251954637626559669900661511557757551265506618683190104730738500798255826519801810436695925999759213248344658324183036878673401200701436322011675461292584919844626066918237451354288704694583442624871242669519031420039834702917068405089871367119460287432324914679216072198407184103738584136387707240753829189976576098494281934801476635214146374572231483404259346687340578045782452650551912617145706441442846476173608273272159942413184747069043644921792926813553579592104266252602061274234959079236250978026928013386377099291398659834307593756938982804213556344809457449066982993068553183961446773008651282709428076780116897643501340725338960082518507790869326727530838029105392622000785374623196870547866429156443045247598216699585620694710491111437448389006881761192948666221126430300594131174315010924381524141717258756362798964787833834779392060848262627516891685819740891534106515700668149179189087892811488024281485483071784567311315497617359899058494782876141938373090916540980491625629659638357733211759294097837806163604861855316870477402114533698289118121896463027977577290892094050395621730803841949256530726405786431247959141315628067235542728524202985355166257435187367365565506473368463295730040898754547136214349244541683482047392611642715152669956538106902012753796281527992720680091499033845216026660130621429867424602902704841584487747549521458330807612139667635094265738562093175368572914392501575502979710550079904565343437381530665856431173845981767700307938268999691013332518587618125839287206306179350756371236679718675429428345653065132489309945472892350472146774115716418242384499779174032418753502321719215784918434043157143888019466010134406335369150703775146303059439921862776650514197028472527496239400511373185699286658197724750670089989898580893651541822149085127321780921530328399832511549029096128179273058581753756125604529486397862751681273176270937378517893025483402169175860354987835399271175543584646759317320397581611393558553937393845003921938612727138974697243723608910313388819981232409578043470862092359111156397740722550626315023180200904261231119887943381172638575003132534740565987219687347686027533399951006813958107588845190286709711235793051468370258851662675367053158495034258733736102404688759743288906810537058756833872769197290720952494433470226099626763943751652612331432956825949185096306053413689725158531135434108866818213346288303798122105970697716563251747936887249201120738442322818886765006856817730086537154884648726427342969002787953240250735765458157301650567351509434068469712673344316614727562737040118109622094502468271734963994676802059208089280644414321212719421315406429192818259131933512889065834134274855857043539448409049424124422944127460988379966656441624368633646911582086175689427763809068995520647252393664221584695871559926879431514503350180016948005723289529682319211832163630573829516224729622937319131145587826501368821699605688967562490698757671003802923908664789891426664276023780712388769424624699881526739605571477129145589941061659117837364762696199663416269517626994653553096762148585790426970327091722331054287985813072215463178274175407788450405665591243754273728796094769270484175311531513995178389454251306080980767629738286524854867805381415312557395036480940105784719985827384769259153374428497287294160400444226785845317639761454769789196373100427913163071603167901347599377356825416719795763581043647818712203970828083897416742951414374870066729858266757186448061198908411496257800763778294232955081677114996777874182831161368612314939171555745963643102867565232264019725054583497181612312498706525341866340840983676666186880540986866596292094547842746429949255316813056187872264824557185482901276549426996327105087643687850017551291938224742934177387038290782262635582206484703259295187324571635287259494162803516408624797283957671174216814632579342637731526438824340286797578430729588133326648925220205802901863896716417441289052444150529367472463292190597269804129310958832002708700595294844524155449145068499836097853601729883069217626133958674004764586447992302424386538602347495291850088678369535528628428021790247428409781403636401294148212105869266645049341901219648931184597491083059478878067954161530111986594706713854497996446960806705727289002346989230063592538430066411425836547185006943012118362916370506993862746820146031723365254537476197569836140938823825410148198220847244963332832407423567045800075275746216849933451097808255295498682698137048458369908212694464547653036490621586110411792578951760589561244124170709634540006458755053690278248388602846325605790537937192326804021415433089241150562601486296801010455978135792720384022400318491667357798499259077784423682755820841336770669091904734421788758733304290455361022915779945766744459339996243289723175428944894437895630261086677691045048564626984594783883722752136617337217363806795184010806867410014237903549968867287734270375223158010106576894538495583009399231878389079139549369284043870597214299453021005456201425965306355164293579251271844128728990356415633861237790271490638100044213703043302356208968263659541781810975535117760963832651864483365020658694933305302000972966409124332216875290549982744735547253511891461404333722257692723217888750183405763987518443525191653476560135493926915777747082345278846571637945353778273114060491158480941613757477533430481454694099284971954260014164854058700111964989852958105011349092525358115852979072495227292936421783575699368007250838702784197956668934401091505577819581239402297353385283684855313333297324435288444282183371285447405543710851566753103578249085228164770196557147441320146735273223186033213700678215630783711440554000375486639227838367313445964573753633371275710265035320775563394262704937547528281366691875936858660269434033484846344506221437384873982082796964384784511456166968008157060052257055429300430970516251550551207345322472831033977881993441818991122459041797468588326856274050364561892468143129481528856729778492869289902211158502865350953519208459038479753123335770720097102577031502807475439226289809372224788880220244847465227858909563082911871164535959134579913504154694826756830263066504583642750896787782954653485000141282825841764399735615106157371019997968257064919706583124287915236836282008531710073130840697971164286662162539435564593690939719980168335856789975152813677801438884236534322421997005446091292638995604272393000400570884303813155259581013455421813055059860629228080785356176498276915962512670357784585887680711169645897165956500783967938006485007378482167401448622421743156305636980538525825235432673127773909541368405715928697999663204596345886288661772836720739847148452071384436002756585687761281552448494874582546223417426490858378315265005303833954246768567319522113414102206458934607244309652619141662006342538036427600934841690153213905809411199751803696716708798897330138936129164472206950387098941269792891713680014987188993505901765415482841126830040450108926160508152436397131959120489704703071418563194850838197308068490858586516843931651214832110666526007793808629098715432695363993110767243167703138642378647193552413461463873736892883593906388487247620381799684412184159725377383070806189972730852819973528015582463095958656676703268553129958605433970293082939649691826441656715857408814703654857982139004599083739431005566913080296229194297698702078984807471717936306087070905035797710412484681052862434036869096820175522342790699604442059666910467795082336707576637094011286571173995936741690474292425208678668533706983427741477033488039767954574490513330249414503712431659276117237718519761098718506588430407481679985544407872830760964812941442139843510611907434332665191749057943710483264824853494031017138000820670088825678004533394401827481251079233540485197171925488303393457047636315011683551012239977157602715522039077742452161108202426493689347708604062998375751796974065952645002583005206513965259593016062303557154609724426138007370759680428981911308627400057604939157729407114371870511953848613145981058421781893868008666122494349134547914503604718533790781602064531904725223441397983582353573916021200982985476745790366264821791348662067355819969350126567822502816641750327643924942065026457703195371639317984949286445565893759686788722595405916239493563986514180653422627985975956882207840342103654570070983651853535144430474073195798445906668789834895126254820618259615228840765580902159474959315371337558342803394446333197461492194878665793185605378545133678342733187386039453989822945342716131274993806619130797983966193965778220157848502622012511397753281031485973514877174494777892251140317147164467075323783309161931308049616175159811300886932797670682584600082620643309222135398441175967395628536143784236050409918845228615711562236603245360578685764357890590608874551086521575734278221851140812145901750198247627192402816276099179389986594825937419856827756359338535571167192664643128684451396279948700959477170284497389019504959148224655981305131153606429752231816754943566824862002570205606061829579838952386466538047409302217433057090891626288650382146995466204244599758388799592398523008544708176317809235628919496364392351345078741236799249714944433759742941128126261724910656256004628703585343383130132273543097964956571077851650310090356721313106862074536035033923772616920076111666030809083982465804281823611578682643260033752031852870434112013945473671650541913832659006363701475977234624883317019956540477848929111395814571966858942726589583953202795718332413629288718297103116401477405420053115811405826322347129099256810330402887681607493140520371794316170371661300276591368537339583059054042713232222949590564886210719448347399794196402095770394434930962364305102001320116670157047578001268748558939944385302209465346552436866509349583694286697701216120442482795166018507717366279238166726627956960792522282189088331885742038369161297404208129636272936878209729916712285844581125806048385465018307454203844855053585547759747457875253992591035383027640263159088273968462937931426166460028626169767981785909902302843824186411170405774568401988523144865130474446926585522181991701562597280473461185542696284065392936618793790972971677303539254239446851458294284093600760132252453442996751638190055962477867561304804173795157436501171005905803486537473646851064401348710017758675120932748357098404246898927379808009279995832970251258430530547987097295543393456927533321765762083601450534611944286139438433395070932459654254088609150241262142894548831855508298212592451037391483430992159978596292762339550056022887878754648744950854430759591396245156101399994014918687576201686839056744972959560570507442671988919647626498717751602247891716357153755743702551258949713682307253313034342603923355613995806478467563348137192307604624686133323644133092132191965230256581445068794251357877961282991284900286405443013849734848424540056600519061750347267299777427533652758319274590945228327652848136233657708214218131336352141699203634728295818892901268111656649938484301779271868272167323951237809253632077465861536643453936246394494957499375569121825411147863073690622642296396438823750824129222174684525915856111753585815781056394765083114405725465462355878944630487899293268833658164588709166777503994746290495239038725434121153472085654252822113790661188240283049762699159911621128748344646227290560238296718816488610289400731493471369833638231657404199200722729238679514981260229438402203358863426284937579984780551342515273698651953960622418195463815504963109857724197110309949750310542649006504693549529078277638926287029646518663723584741323572011024109818679587642242292444517573959503445592632622707972743320122813150699491405274661975488896798817827646132325363035400280999242024881842888863512084859982682755256015749859955329561690034188604755589631381498128064472363273170082847374792527802942974975110443726679774033432725940321962517746245781677498783305503481193951594517317718146222680574622549532288099935943922625102748746144404829856648460777023554329143854749839442014328145482905552480319483251792292749949540775174088618502708542396507702722626614536738887344414624461625462864154749617273114299976014862358793154010551032884148781347684131127944065925114559515605385150050230193626080702547996217721851323667168772598472062486870906621659020628412707865324537876308985217736851581457879130624219941620107119621406596405044406965903568061702755042904085390894615787161001441660026230966762402151148429015478917919767653609765068097962188652861021135458555401690272021452853035017691213442231428313310611385149889695047103615950658380976652544625244726939719776551591022477505705947692573707964777667709164142310393348150732012916739378792630536240270940069628361188621547450842735757714876451022183846467523371044499592584166803831640598883422120871730977838489360039751998228741442326758123563321260359221444137800100749662495012306202687300959332919375505370721821024558242852517706617639394152383025291536780745919057945071865802855707849108047447724589109589969309907461726018511984665550488631547133214464664010581255989679645806598502759493971900273322191125050759183539483274218270628745376997980670865927136663659423380574362778430430551525313408949908628372537400607879152557050319603615382136910287367757445033700406374118314988123186967640634014199969575471142563102100429371813838336624515507320115351669424713323072795091438753360536715793948177884941590000121138117765800897682078691046868928830586315411202890534624240950521733168290396823772003580768757745803132644298650417503442225087180061714704881669913042248774495955298315930805634889082161513154542631631401250638947582473353128229823896960391137979837839715998362889534695497986056074272353904378639874324156188788807448213172081711420304044276135546457033203972660391843214579908330251208456380323042291757330305011732246520080177594250915778799579009709627144807173142554466991097957015996286067861375269036799548523497967725981321507223870701733861186507836287694926073908202316574205877663478528842274651163306173753414368460201949007494847677087761114661938464447881693581991679158712098892839292349103326849354872362718568496855791385267560128967516276325969007912740908478623468192058165146809449866572469378155512191075413816498500619599006377817729726690540912768826778802936993604418701296746301045559427046691846278966541785582174665270212921694695711899681887969907100626538488283687557719663950788067721007715619755577511447924028589167755739147878248245955439459160467414291445900017678936461172623561011948481170396728895623552368952979103293098010484578077680415816486915211544391095324631247615760453958296732343406116872083538707589559759678989629546360821410549273447502656481542523071098991770436603528567487655542086385607843213779909650582506777166518516414601513218008954856250450121226485497071795132840348585413776719726118717802185919680746262852511963778870070477116924152727329152164018077739483953989709256355903191701601243343497710613730374709952170941396886328242932946641224133401567837257487502169682620077666999341272866315930298220308676864745277913824522521643939974793925004224397150422283895680245698438586505095079771046751495893228943459723892646734740849976813046426974174983362563650079702049789058651064117962520123868937063332836399727814827155242993666863361808462656769935035953084081593523877179956331067092466177205970119878951595090339215115648188303003226232614088420679280125792722967593879921710131900783417735071183171772633818010042626229576374977963270476496061689555744131777599437632877802602871875643031861606939600308321090070917752378712731638814093159339075153646681763355393964678182455283787727388903555459349242365297286759898684618682985460759013455849327943586816533661912840101174886512343815697813484780214899577914624648819944280246009961701312920690114785948629906434066596892469467204085894179312816066344542728470384253144280460295936377477775422786604433266877950343290280408168239562780262945089307183235719380622340160639386361332231243705039484827409688434539980181105784856623195813022958547213500801640725514763879171839061001360739145791028553520012733123867150961837766405618806874578524467653962369489982438106237200025428527352611141262667445204320092591888057420231316646777488331699599472158863494049249374647282155926449278665209179348342618930094605893315130344413665455677703389316731962330317141035148127619548852419000404710317405571403926201830939080546007725192689284489382752059040133983239263561324476106409216432483519454950267387553790230557734736108637493271984206117709854877465512531099140467370322829582062431924518990831806920526700844428680193035212335620919705580814571567280289659985619959843586621546313032621805863633258926691490662699392186447203502616851489944863967722302407058466680778386907685920710260409776694321314507804034953070649115029668889007789194112703237169122937297327280923241694037405405484067137890609446848268701346479036151276431459877330996261431646302147369647744984509023660756982750376817259032284371976424844336639264517067845022533658012413395798138429401846237390166143819849794185132753848104233332572941418086213568126751295661922574434899964450109082544784452991593699422931659620712703782175691824675927624134231224629266925790166473450394461530385850700391092153272852170279609211982999981526303616464583331611318159942421494607649455240945683749469194094146944663105279849322138735741522912505638362033054442025717233847787533604120187244432369180374193632042085830507584337038778511361936801423548633346615681631276691258196965112322941629223463972875707480613598133153133646027543049589074622870676361496448721932902452503946526150550077745755978181452640846386377032216321032792014145861777514619642101425553923653065210905620444282786457635237187016044472568850881796133671699247726670388932662498298819931457138964911924479702173142682609329425166929431158631234256500342325731183600265307106054997514477391808505820521197671517385345342986699460016966165386825991992484359247443612093309186118429513175868768679311565575233909171072243700191258744640396230641179698742010298863269952083726735644940118348414844601700143399985415383420773953993506202413969614159584138823424392856904847470707274504596385696491570420441302525228933683661051507183377379790608775025422810217032468273146033395747698039654771558372858937165712718737347178479976477402600575623349227162982379775889472074879648740555285356902210746255272826135216135898797843977857545834588677700956192356266525338841257852708911627214807585611507334478316889287446660758575288889203524598976333671390399334076939160141651007066084634832719909821359965879169128456281443319091692327039282606903129804392717301315894467380432658549921501202732984055851106664395654191462426159338653276627116106083813681100934503329098481888862929617108046800492756893058607593496029856147530553478129916351736367032773981307555547178532103680237244811932574540069083373213019744549730407000331704825082611086985625824578683208838125468134487887475378368967484014233159710035398918777800420843463228226099171884115135115694626648541124435936608105876332355967919059019735913325769235579739223591980623785039655566448490026854983627444885982143771026214995794594733050218495158104183639577375589497995973087721419236526005358864342617753662122099086425234957701585548839511610160887851617468157957956429371130427510800166127133922514031361126839137620218325439493282387098392028369789251190018812597993725236026303276241973485683771772651792457290941139814932018450013028753037942429764848775725693022038975242891684705831715178466551996295782509325270026672221034746949536885342986513384696578769641368987650748601178070539196458929859221508180041954468853088819124739799852064431845971939024252774719406662663993331278184438719072132702729428430374355407774176663588650506712157963502261302238116416559897871424653461694171332071133233086806173258823431169617644032417746509749615814032600605407174542650478518469039443199223861978354021586047074159837483359857088986703249538935755432740996418163450712367525276446054922312441192564478876477663649911155332325107919489590486008126096343245312082434977664094978013756580735305036589937610053880506730809111056632001972939919138954054834042883168737213252969874030982760643811756476542443816554682508892413153923977448514832668357777482776601534173344051886723116321002379354196661353569305401231758215689127768516596346834334299617517645653714111194483495376026187184203585983982943439364017373739356155557465004139152224132610588654845522024557624612634641054701819176522695451197319727852718343863102230350100226005544470349164599885417239450644126452006158755588745339265004219853375623903862527163935976341189338957868097274029298760815436065760578265124691500235533486293343730583603724609384440539910890717257773205600317219969435681038570420972182288949370681809718367111303794945243822625540636253724694916650262878937743066574358251311257649103185245638348231799500957031952365431313858283451014691347743494371826897389206225731038148943095048073471133636999715422204176856077317254158278161906865233017468975914738234709262658862040273424004616934611592353826132362614834028030691491403271378672181728040626874730577484735372335773148132773037052570789702513916650329373257006503479566753513973003659833312752076789643739529742546544169066711328093856800399393959077858006878363897837060304646148515335022124834339773563019777659564718368705787521166818076890290905640633750161829530245545059506349266474024296616067757580647207090632972475298410989820572174297061195960393280256943554555828220827323205180231130514310870902095625978839339685722318235674616763411352466028582444696085417277964262600863322004046450630114031850874864004184696982476836408378300530000555836217328025592156768180328783937390474975246055580530122826814852581258252098062884703678540824602911497094405477303010009250030501559318625045118727353643171006843507307880925627261342433656085407036326713154913159102544930982222162642653468157027358664967359204527258936796310097179353846567709482130046196729849854413123422087215818241529867002144763374098302735244126904733863249074000910043244776373116717558302251603799258776554739957459404197141667486778531334263198491088912740104665361570078881343424522062471217714356378200134722193343222150728796097198166892904474177839689641962242282311898188096695553282960340261110702517734004750522835740940670459578072545106465326737485717028646574730193533692312149228804900385575942681869767428417395501593368457483025033197725531733398031364604805187124488632443410318739571319641523895184185653271497569937603851595051419177596465248129870657813826273208327906882733736509798065755558524905060433861073989436272339183320534853360209444457928192469521665951729763521480888266511632520683396016375089689253769592029743040555281445751372627395900218049987879455140507270313863185385743927182428105889004692516653050697710818097742990089961753671567105448756698448830316169707945533886811921303502758846254384698848161502131325323496352020574802246289104758346838067713310305923418053038106230012598382557452011231121204698108803243595804528868058813855680737242362714883729441569924150098006009509882533155489473443329447562647887015939927759431567804233035805503653881921940152470340483074621114209483777384848578644810007190717588541613310418634725326412016796156243884606821118898226659302110956070780833981342259801838904344546470883115550610769744911727011016379626674561908423038934331438714414388893525684603846976658199111366345692051798168892858671482402686913089105231399806394502091683722943497072955739323120962064347404021502817078284278848186776949658866825765830169513471189552767697682395224357048097688180689437121226048925280918476690554152042681999302964168389520354502276947742077885930510505730589848983621849129290227903361678405650880676759472106952369071125229320358808210542154912992958476755749376055055672626034400770333089390235813544809947263823562774356181836628928606782201853933196595088911488864348684861823289406742338115713566922698241771050270680401047780024483685609298660177262703832946926336915324591581269755654936256125004463728115673974508544751873938576620865263967131201012910144115126196824594177972803411234129861088552805667316075096356888723320909872659437577788026266032342719746241250955314306120163842243720383767942187184715183371063956231833082104344459061607270895151475793331833477025687514028512538022701907446188637692166104170378636446253262310930663709943647429500961818927771709801996833089710685487468569595632778780142099642698186504794916024898652871148870441739034801377766720091611871795175290879564311333249902564944710587030177117491673970308960419861587362448264337276607409135287843313746263155359733988489861680767706900232494963644378949835513781714306456051830096538114337743097625060414668929652549649504435011196024411459450051753382935549504607242867717197365543547564776212403783764504992561984817543714474716030843295199882813108502864924497257736460838690621111651614664547741996978788743464698877052549307515212066118448577335926963325765525871915231214056435911064347788694739250481026760124187761536557864577447902858905244493635536964864351240074663555968845048955801069705178441697442772811659202370216560723150011801987286703708438564739631886407698921112521315693898930895651827257076669405007442660220759539031453231179165599119824421783435538734468639835604909600482192655659629509941144279360290962527742360624346371952131611499509474841005996259573607075807253143697377978865425765752642917392085517856486634734967192190318995075259973871763435393299223195785682463830495714684542033247576105784396914776657178741979558233926050916775165318087945148182570878873509591229377297158998566014622071470683958408384331132028592347614070298832620646421712862152883685518101266944667241497684287213180391735199727885108936137292986232742472980342921708204298914775883444670536010343215136259316951945332381610674625825945292751049872638923790881790110550957612803558273476047408356635068016594333432402903654345735363892996507156515908747983724017649403935744119967110310079069660529370511167876479220450499106876975475188884482869205754310212273950956183483765100644501768146365773160348856052549854531359895682753140250806908106555030835631783554657149075331060940555835950772758833903842487418721473256542955076963359329363658948664234848083682528260879260845207014366726293199733190153634094540777519745283456463652419185864427806472973214696263703515799495776571777803019095904740194245686940379117340907250041090235309058242911746929515568215458175756807944201454985211346472800978841537561294306482784151854419315085264008523616073767328592541657143494409631600749362511589118118505685768966119495069435181864287012190628503722022059698787305621047730104692610045722426300966593044420860702185461695698218885633194529440027859876360095733293914744716166368515946128450393395282573257676847452757595909250729041640105339512397738812572450773381929233838273153795592072332700197545401131204393157383262619103744535869498960746405939977456658712640570019082038336900228365843016193759185419754736464377475695723080681193333983676594252063675375110361092899362283353064384580135188826107658156514025889933227300037382784261036695538921450101575665774901063752860610407185865682499366631638151995256667838481610453920907928018912257298261469621968742999242588035971918653767460870386336300544768283207267961328376799513057476186344345300649753343180493345806258979045516149735736529350428541754159566462077094080763644707946055950192976882599105140125516208981707247925985380617849640908976619048499789866506012422035920690615213673085604663304808109278719269644116868430864363109479734002804408833161725752429956724127067310652753294293413644127578483967701318501168306422858462904111774836438744693720741918759735873490829147266556043454857470699091433404086497354285593698487413814804900960119957471963723066078243343476436364706820429858126311091758468875923853837514735680601735938561841851275990945319696510690138074060706282907213343165669948377239859840587256048665459904832143725038646494909192909917889625488660715317990953263947086111593658349794627960423702028330414958519610409642693764788226344398330882142993397115248706736569928908765636984065521905498418292839168016094151414902816089136266403769440937079779514308279906918627347916956180094045500792878787099667295302321391621461189295990376572535521402661935520913340650167106547988933496118421813355539027451395417186911365298474246883095890269090108711767769686531480564520099767587962395235376178377723004093419100194486470238986483010903219026338110129060289318287886052595208634640032298725237424845148737647709753011912448886509911758683886962929047984431144644412862633249467149482679736830836316857844790335750813431162843235092595151784436933494172508019156052404103699892825104681154806924801680156014525416226165704357025599403819381588429722205184639476167395322462282284674893445353975350201514850160201956354404327006553617942676924358364820795707168835579538389648249442945715255402716895642650919357031510859728143888049436217864488979615252122211058697427122812466718512856173335463965228053530686002481361172103067331020038188780525985043326872008248203065936980516984973564592965794086919397403319011724786951138934324986142592364908660714530065600589656908517251830595937895723961683930807653326784006254330775396152772172529120980390247835521934235001011838129299884291943871742510672949722239279763453733206152919460945613036465951494309467095949142315888999727748932353600154186586809101995355663416216408646785535778219963595592175918451951029134144028418004500228774042070299841554525226392342349400897972762496035268552961584134197539563369066610586376362896990482341777747138962416773168524558364439147492648685662841834320541272147591518950509632167282699117812675131636991172465280128396772263759808262193110362639195508522270099099630720532965442371420526334618031765202043513953812488143139397186323205391353883732967687959223990139566794393920537931693850415456676307867479919370543954209129197450084764605761862084859422584983926260631366597400784325308824013115349752784728649936640148896658112007200751727760596154981363008193386787399448841440149826655290680545832364599726360833305226627854746750343722800493258687814693768103470862389027214835011592242722194600766523785712696043883816102561185723991432485598866532401235986289735080007833659794247346731393266418345119871156928703666005578864794648472871809211328535592694012623730537143448266066144281079358158164048429520539604615201221031180109660080504774067377100324835870896417469722453566771501500125637289164747514597741556522764001700915919947941822702312452475767545430404161463983611464382417169841055709221792441862534755770911492711686648529014338126977495318059022747230712780887912031248788945357529982817973545980484195207165460601401535010791741071524638244497358307905871921186613308818433536162544822956670895912203855116473077621139860406804713094813895705105087379305091444843169535286971048529148273754836569429544501238258859681869649797513242979641406958396176655061882237495831646282104423124385579536635044169761869190056522232208986988031888523217846270578476736911550308131594703287098905552422904838250947125136975986581078960507858241228614910874612766865992116929821922099881437936761010198193056654359256264565370772105834290053819790490554589377667319014752919343485910643386753067829530180015077648993554522577042433106377415653232560970081589255903620772017901835025148548093935065440212763329640454248932337360954156040531839663898861062547019885023062181608624342822884078408082135944653565678134374613602403276384660167317874495819212608404477306489376323972245982105445525305970308532533443114286345577704733876171544477746611378840261269613306537975234745997077245444756150780162889287800656150323424271748239738907120598252348486969995585551477846466561593944057956359683144195769235911359370206340232346664473104789065009206446335213172947365141935441437089773497766274660018556113365545484601331786064767552570208119926814221819272434805630638930913674361038230708428966053677432969224154183524129011713512052898952418972543429941715162894852197257604216445148797913634129604366033081712603299398887582893452616210451552088618244037299895394018341107000795950580788627821845684997432593864820984029043872189874681180243715082392239640978273070350908867026372744350838080353399753989731575019067320227712832947994731995255725475649429398521750751720316738737094538044279341683706494560719552027982893579455748259390305755820298711425673655225101229964104021655051924460380921363669719897599529654423412077963636187285516630513492152342468061046732457856920045078086665676282182107328264538880939924716805699825178620870418487570763204749133784432260616870834411106573694949761830806071453582582265131383182503266091745459089270723600589550483117546166966387561595756383055686493455145646056824313676110970302529854670983831508158182280792782972793809752327819985490854789143920547836780723298986726132607534056189234676476625378762121265376351972370718731263667376880264353880600425190735651088329921795816293217710284103402455611338657051590036465111830297871220895161059844426515526043277818639256024179588359141465146107967667634109058636849889752795611638456999157347745524985724564454264923509316542190087015137825490866753588015860547582863144479122223315653403689251391150147366260794555237985468028201767101223312901288885504575146178169818945278248093691056593035339640804064359360405887423406582871943447301176016399782576761328351747653068750227662283148503396883595156571450260417995331476697220312627231761009607085331952227330940151587845907503106693790518719421996190585248465687596600295908234213786683715053222878741103191298118608810404755175590813025743963707261845380975424096187957419246739606145979053435651944304218590388530607500711710065549304976155473802407171855374048957370773301410669417815838958877946810805749496227749345787861229974028711093748801368834270809413882303937556078584589634778601419749148080638747601777899933577857821292123915676567007680339338036419412407767738461531006319843090062143307208498613353333799246318940844116208022059975900139163443460589190846654048337193433055686116831736045202020815260532431763370854011871243294097424092548505666457362213627943256032525352792092618243800368794155889249842368171234264832209501011805973988459762793315977317526278838243230762376559978353416861753043661722734682839095107780957988057831023260312319589545165657274199542732981257976371011428017520915787772487812373339023129726535786012115513795671269769562775809480353985225906454210123506400911389554455148710387434321827624256432223991142272456688042786777184968214423390040374988845070888810579554856033698725283337232760062360609355846289342544384352158689040140113193805079667856197783938189169741364434026663651927360821988571371854389801739942579356841490593683563030550159795489712130827640422347342394616096125570996313153068193654021480820811056086713184954524297106917360758707678800437473821797323121950277296716212807174673118500311700863723854519250145234201444287027568412314509620320966868045173687007897583621087122081514204723400134128771755371016331860177037945907555524294976497698097391730978322158155732627819441118495845683445854079628664671025355379538098807699964262845701349074672020019823551427720604727883420473270672752937466569546464160725302779013323963278735815212729275700902197861492015007590761221365579387387595831094438292377546628478151158979687635849737990513567014372039888988069486112637767721317389393761088374168238529005166272763112511747357189370695357071677048612948859784840389526110591842697523898405032246443769382651855000319832475044238865154760554369755049806581019603404006112166247056399982160327923345307906762575803282729162509365702224687521752478946898811438948638335176098849610964817392446553128894719648535750191267643663226092386934996181634923895516522435814663634459245433966840593857655316675582515487267342936073700442339999373890537330745103667531984742911844790489662782826952442745577896712912406280403535943382325105950966223223908110214957490666807097155596074383756627814909852343072523786437905358252575986981928849004941131200071457628208190482253214282949586358747844225725840530115139810426610843476371598844895758991941155004769976229114170839073129135474361817572327813854180378813780217944036033431367672631511057441625393275512324215916218400702411577421076633950326011807167465158191604091445216499413722002104611848102695668145878040913427756655991518843303544905810410812947749407981167354138735217030263197039459347504152454876704595778128334373536029132179893517483803523461644838732504304513235641697989182110430645427791553996490994318684539701726700116017293658202126831283557591499762523804469234506399286609304565024975207233007445272010474387673356340747043317875171535185720369613149714862343819741520879643229844341409915665055008360220821232327037381236472944522670421725599487802952627155364538512420162607762424797645776983933239289701067781395633232640720065123401359864008747274115668471167547437738451031482243813165218013855728758254768832603624432997094958040175595500109569302051826436569587459930654403884175019528946307527664803016694983933685512729864251774861952294148440300034099059821943237954147195486417238085112170502705516285011397621695759911743828558003976295687450030589173246642506288401692001688831536841823142535161476124478085766201667212603855707781241807496286704101112883041000141473429909937852760880440265507886046185125324721999326997280145649051168191473507331248026078505241238920366232417027572025589973228391673556482924643624896566389068838441375301956346516220303048764132703213698839192330386150306789644670311822009382913934725028075723631295727213188491050099780347327480240265114057763374448140142654265386122703163993045867955809589536174884491833719489774191269601944469881265811720567494387997010256498712115118220923464414582570763072525847211779947247771794574675140716365805967026979397466060197415410397882240914244706609748116640885386958779858099379598828475402111661450738108465387571226466167554707652653968642929144931904858486770671864958581371226442340658697473772145304286607388019715802301094604263345598863718257671475928015063932705574067768900371065929873085812325219271942510821436138371961384598979848245650219129314299643660657479760465753276556442358882004900644011918361332965991797076546871670389364127240087992335201235146527112435311035055214001867300723301965343985693915855123852213284846314536925592321795732573308263199037234011837408393754559629023651261204168838921668427068447404960415292424523124809906990044654023550265116587961665250454323241496282311901579070608162863343553646059127432402356656852505652599303156353250479528635375739185546185693111695363852477419776616032578664999761694452823999588772567494377915214798073949977343994401748159178548812527650072853727277703235376353680029986504552265095364085852585220500762881853119249838041504730555361894897007252873664547314002441453635087184887694531173798364482968150813308568021500899255310911704862844962301375258540373150579241733984492136505306452086705043098876303614720209444164102408213753279333863027214438887451829344383549561246998844992478032345867875510960015793605316895285664213109378773960963860701314399450550683548494258715979815501425787895333852070258024011480978217417340638211327684194547204187177002892137474936608858084711652956175602427408745039229641192115613440033575747678243893755908256758731950531770994735739245333026908467938820427856971010666701971762308913934767437827392567906235146772922501765882081213244949418678818669753185622792546844999796378761690883353993658690958207358336959104134616590632041092072328253697551178233811183757580585606325512524539374209047990963133843223273583538648681206514314490938580897249110499719922101877511088305122286569810984654629248366191144550602015727445482461879053840360912442292453971637703741920396976329199096271822880042267956044108849317409203267440221295819563536850790298102503562969649522394871170503212438799264328738112486408439323537651376542143717932675549600568932374696978364124951031152551283663304945799220013013886815257363377980057929754194723520921949458468713813441456800331415031624524442771494200201559007565395731315347643200348136609925692561841906289250866353735862050163786888634124190666921717848302026137767413071513625945195101980008232326021834214800122105402742079888643191366091099882861340659468106362211687245738693620066019405682820684800812180924396294461377813554769101342962883173871534153610013511738969231885277224506366981440355021363787825643682633808523177160758398406188236574986389514419345675452615547504632713929722602386202648785599009647004634788808308083803880915820784393993589165146137097105044541839714512037438888517956699899206194090465908417130212713797686099963371547491914235951407945060694126338582545805773061613522909481039327675406696917255511423149273572029716669927886566389315141556038138992100646633662567893245064372316881353858502772935420813599282014849480808580261364595947473551763671596666046477776079150447025716997076417141454547950149463309533613584104830317301323148845980093077509569059239700731485190602853271237948591959256697084639440583447812780413997435050339933697057278544808107811763417535199366829414677605454529055336833695294512915198084956865351604403788824605613173548830070761781069891000301018609345799674405702455392074066109831516225755483799585023246672041589219820690786265988080001693694333892387322185032092450836834547241131608768077031308501624504732088218853145411088031078263798611602957302640191974517342353928802623650689581761564097960498999800530675015188673999147470371826060006896643740413401825336643496352061343807240839953300795785299838546107099315281660055542404324824005048119523984793269950917504579655147807062570931870920635742330203049746147115925385958977401127674917283105549580458148324535358828357332325676729483694878897390529881732513605796746984134825236330273013358108501876881983030061683985649165002180970305786771370189538898425528167539298202186051713730964073582302253705032951876276939797518788113059227262253613449841116879874664018676292462744245719031965724468936557649569257007089344658014166312939609170518271966291954436652457523638577923427605864998185320274431656426959153624955128518943331822713616246893455194180744931941775011723242029135719329930088561023073693392083204748139418944564441952788004328916401273199599305239739959936788760782421486202014132121494688378615964019459927299809487881390801802389007796294236517297487660205164826175533782264932458196828885737640577045871407289614835824031001200562148120830158275963991447473163430682417420608828209244034989129594079589126131719514234472071666923560676950883272870546917220923100732147890873684450797555956235863434657759696643536350691928037078388392735586848716976865524851749075259655257099636557931678819914839427574125309190313778508428876084141557916779886584762870746417986086473706982688092637956117571789618887734111217356720916125391628378987271692366049319628957328456817122018176009878143709650748712374803517549698730130426254847434563514237477744171620930167737449699282684294642531784138066854618308224370235939749948916004218725794798520486417914323286232317567366285180631854847603243007341181074640057980273015028290660718903348829611781442298066651368055930715192285200544309594168298975607813380220201410920351631601822506515770710700512418069274827619186779933904279019449784091528921715430664584505240284633409111480035989914949125903994404286459902087856959555797897341493497693247579428070165757091046200985236633369264361528842058215617384714409979793859565480182529133279252242143332729238264076366917730654628653271904146468691377885641646965026565684059058319155781358812225232494788864748377056918597516285248434759857661643419345035844972466196784911463350556998482039948112395849561231819970882924802086996129870362162486334523224972948749436644912696882487593406583662160222562572062343631504536069424667801577687075458317323291140972322787194716720210936953287479477148636391697489742309013850030145908151960106793115480077925623243187194864701896137318016471410192906610061471608835977315948729422773776836865629975649461970088312771417348445243906496055831535288734791848832295636239274193439117885066058253563651970478800830871610103466953488996030250991405817451957177470016003141475764343531920784175000966074894656406573073522152124275917258810077834377720423260819365633112480077285973758663175023868744039584652650943469700344027507055453289119359694135976489692851075885469953940165221121753102847235988806291959978182652238491845331599209015330483774921156416169072646819687492777056284803936082522339408472254520709355863102556425342256288864228079233387131773300339785558952265964390037781646414460444121448782483764302088883328565472721441345369573339108028703743344971637428886844659695317903849234581675682910781084526418388295901340318931310184560465174489246785473634951681860217044812850461748954335758168796689945292045774062008535880556734081243834172188753909516918311330347024437521968707552890233855070506410116208761252062173257269984969006653865970489536911222481767838651231271250077794163785526192920061628117201386207926282402031158202454759552994850295877832623646893864848346795724220481428055261584642991590286005954295445252284977357471081465677137291322484838431703584600433395796457835082978141320546716051344315283590386195403074392922185803072038780331115493045029612463692715667789332596075725758955675882527486903095704102643382710510942265379617623251567757325777313845819531753945391862425133342796399291899971775896993169524078220999905842802431821716863629630548378076368110775643426521190633405581019338014450027491294963484687435554814471344077873328999696481137862951267575434830247544206753526104725572199157622431798122255820095204770687344093942245724026192555913713234026206760014300297443481851547414666910790503849527640555454950946102602914123921017716501980059043159029591863977448422536453922842430993009626535712803486500154840657169701370164737526989974969728009120913309539580372617606338478334564107949916903457624930568053563408735230600706077122308310566075168709402528622045516477166821047974069340094583170116896167845364948815477818403803898532222440184603099638589671225437264619950173756498780475344904442953847262625867226128180716082065666057167597320190882551915328226702771390562158472141569225477863095188528210073074963949180561750542796736687298082704406755905776081355746284310759043457837631051159369559751801634609414406420029311957272633253035413415997502053478631386444855870980064260149783351890103635941135268021743544412663265696242421563157492601098702289049171909862090821853788175203317720818256045849600450873014547707304711315644360617479836184934316355501378576673699853205871352007480134018297990984642032486624036504012020188729652398580925507016869234461639679089536309067024904227977096783422522939313409240021307148600005626780275184525037586312343956288978142970425692562461345609812380752583982232681331474366570474996064080568125672537849669301489525919715594873017599286332580306961477005976957393477871651845751224213513515676307895216570666501083130611478979062268366932743371578730363670013704068394501947143864312509813818532914404436624650730484121519353418106248307950427324308810824129493095929663032778383003933061578224338444545409493413950839227783395071299464384201830761288322007969426464738611616600448219326536527607579928269331459966516418105068986927181130851678761986474217621841458592745628260173614902317596527665802208173360029552068343060064673450339140122233797440018250505057263216430585931075363526643129232445159750190921487223924855964567535326290526856267790134709662693071570601392702117944628985615401954857354409201514973114123818395232169928918048524202544229227624944491604247332573982906156767304462708670103581591303468349260588674181043349050611184719757376325908593916353578193398514662577320307064142930365624189866647883627126630800783228320281888218098383806850291277506815425085888190434960753582689363359395685116023916061211684271352295554491096792644336272565887198778551297984136671238648135103247367518189880001207424359034626931498962332335511404646159742136256288038293761260434406479745925909000028563848167898259697585471080286483334031982377173200320852884479652482358580093380406490655846411569505745286643909293123725046546983069302528187209465606195062345889270336936216203189160235896962546625028596254995717413367825294261964943296231978875207658622730204617160487670640179458364424754154010240126505834154564030353777939539385108323697194543258401747985153270623661997903565404998502612525406294849624700726703805999561768315902286685977594520505948539050325034808189620065964901191375354526602972980937867811886477916492939248485793463625819648697727109554863287750219446826028173616790664131941166710903759930403341777739453920233184457404103516521210574090287340517210897222923870505213608763458688662327420853292105640296908956251290305189010072096371466903182349504798782064225073859081353494051624171386063938864994246969595549989821824405022855451878455574434529255330817605530995807949788241117953702953341049938539439805576577709521736139466692687962242756736012190428361936989292725386502393515670580383559950197810269726257232264311403087237041268630037880372755209680064759305248550323084813693409433523006346813724544468449274042979054926754496611695484527096519194020476823458537081910233132920673584402205530956470263842608378894093786369485939151123656832232318663206116447720643279892309001664272296585315763373240320784380904264907768776507698921325788520979724060370750560339321246563855171609022451067125148767090404010202323333064919045460236065720575979021539906983972580962083933646950253638336006771249742657216741805559416233683048752902192251620499734019783991287859986109605308636418112174935830328117371673762616960072579511707375089681389432938596128387086760334772935578857659902294483769676240915892499859908561059668563807436759602110993483445158827650287280951244321331550003175681380725754638315031395418545434145065704099956290662253456830533486527271468702507651214333669964539435965517277116571151269153547776346044984457984097982752925748169687150195035174061053200248077772983791210873898024889487661557744961307642867323553151524972884459191035182283823292188640858235178813417787174659465174444085829870369568610537399286506395982553613539646211830566547673925769750545804811296043522590789282238819321982445633765130682648662078177897415468109522839980065063861728142715715622006085950879725438088860697330446199391544377179145567045074751036675574234683868405022125628315908562549723613730588204203988146431814931958088585754739396599349516537123176335839858396324151243390294652543538686079505300717747100562136379931314224042163840512857021042869069034340832937651436867548369163951384784009831025820620162486851897622375498996482295054331937617172214405211902584432641341683387014522623242135591230689075986242213305150700230046771994163277404303130213175809847959179803894006348580072392913762023513744549783070958818467269327585670598118748536692253216503426758961146198531039362620017266230717721458576012210841922523207785085112988305637778823590225900410914477454234974424145346275759388551557520112597176929438308658101693787664363283211076727989943976793725265763852940837287806472754752882716817060523224108022427955637782818200492954609498109705994362185955508170453130595417894317548401493350150282095359800934786594624257668395750785839671640386946856611054265141022612306129929987212689188598551743786997984024745539394710595340330976221167617031099241296276363051932367942853112277492763716632816115415307926240832081409460048956984534182096677816117204580857164168015580046416437113588939728878731037554355515211968585739138540554790772326299708839921023914948133540026050480570060801913387110412365775998830633924159458841125478678986362413522699503114427181898261652282375221425363948804735212014492886166822928584950516628224085993406631952290750712498921620615170746870204983359941389089189069884804080563115682759633307955716905038858987380313322251284679135712252999001358462529803075641930929057002768857527599031292957693795942323880207340796300314371239223659855267917611016705371045420731707871454989831639451522471317928381205379058385943894050878851041106856613700514821947064435048369803924134293533419102847818465749138544866585076407073798545242509472525537746940023002423979747183678557388857825174058571445064976144912616182258795252396724104424028797149130403730654191909913976853776807191415357255413575911375665469963890032086343397043387140681252564816905460970887165700670557158473450314458410941971405459556929789154649201717252325899567935545685982231614494192027408600670129527228501977041582256266393109093791217843161803507520243925731444752785461760541368714649835136911580845591068107296704170647478005358887029354554062461201370333830812786304606084382351856738634239828378569571238755471125856333978965028243489564838323126882991270316539458179419967281486884510087980584205857290504055785827147799351188058543853999320768985739262898418637996558636207390751601049530689205724555976533242441166820761432031948971933234710902665484355039208140262122022096914623302665172472836742060127653899494346872989061526439617533544631224534271707214731446945054298554258134244322200792624124779026864038775095184465643245343267301565048067417858038801719899232827803726316374396261668685511510985618675041182729602380419884250901326924242939498576452120188578329180370872115250704757258637919328485598586690667827394356710872514506329894013877445688540444339891563795778602895384307746444939554326217827201133305424148612467609398093569399379939010931835074798116082128331008514168428851266676313347373574378767266952022034149478441418272413999702609656809992088774318774067588666167016781504898192685878127880035908389686422536999530588492439135740458639605690282705352419685677759831036114896962944020755727749712016781866010335664620021194679761722517844921996254162002413853261341883567106430327972223974022406577933999051511250485128259578891074997895847986218327353286420029251220198695808063893208848609202223209812414749620668918495349896975568256191970974395448227532326289838771125673284952956929489517844573443542050364314596857665802269103135683128627864405828516599283024089936334992161893249025366862570205956358914878687136930047136814769442699140411256566643873287543748914811638424033928918136089889322633749394660595133969754487145439291473963442102142553207779404463064845364000776880932562227046114176639673029010191989367323384703611733756919061545872935950578777884013431200158169633058928916364249880765380526779773669428343605747427060372716360655789800259948362949117186995704068900957718216656579162562944050550981368371803914552728618279292855948020728792084166469019242249449549271852766949028268889603332300505200147432810875543915057025183082262849305770610142882150172885924018048540952885460073789463515803179179279369091209155042209431734970024792290812879022334794084160274225042213285581665129809682997135770442125739945607138483899401985285763207242549067362269258018562278880418061710173172312272623569748547410084295095233225323683800737082623600646975366231987112788185492695433581401766875258335973088798809596324933544022131111693742726838284250565657165857457948012598663032684856807821605000459344034894843735563401014381411076281661241058509804817545379921508517149071358709592883552170002747247626330804866876887522939355739845618431087518062818944843161681499066984815136843765797236540396209554474503585133941355012342879001331543251479846470854702676729394746057054220994367924243329687968161472571647271644174996746738098419837512117782800363844466429261165881271362714545156800053652515330431965014109454181295283759456866749979453167263066963874504099221389207173030273667476866735431215516348915179911640105191298091676166964253784278545756795622726428969206397224022127223156785906067033384002037749621776642111570023705132231617212723075395674910252509801782150913920527814841540006148031701244435408168519307550630661993181729047893091577004333564606186339909674811751801076068628975690597959203798420516260260827323266764708151659733362416089062047587345842344335435747622089643297015033353968644442160969306188363793317125012311073795718602115181625356990629559765891436807118689340477132208790658270552281520290640686930748010762196417406195182854058739944776693933949037295464533323365700654150464737729777964450641839244588815807985315536957605142136087355460114608464633206270815147502359352954977423123634432434801034140975365253362044278841158710659363509306012583824030474305743005341021309778084620648961480406859450366404848624984460311223350491755137858623494910495524249603573965421215445932377118494960485362799439129373674674019223649697299547924715495746270178673771235500697917319374093541857350007344062514866715713994790645958335762031918135515437768257186531036776606854856254600985081171839714502907751252495030240145514127654597435375927932786088325983332373140225060628954563945255891955211841490476026043436998342157785522901664122222320739854516268587557460198945980638217258152388097765538840109438118757144633097840858291046844723140579722164504621952099020528965730234148363685179273275821017631169564557739568641347320039189801984585281345725650839129687615283551357021686374481117520292748364310710937845085053636535041777945647700105206336494845567097765337008300225549272810496453691202364972444446879095030358002585141316164178345694561044060977291813237508304009414717773094039916259839628906039076383418498381524636452073259033643334775999068249055576917247989082971430803336719106265317172252644538724001228449188174499278845547051027886515741781365869365707871494198018241644660555684446968132215183697689431601638780634216993474629721920296802897853089181111354209508355932156224062617292238453103685984555916172156719368733927297304710960243405349006074634170543465186248323844541004670421354438062499244068532095165765884501530511999196951907582088424243985332722237028292479342471915713500490548964416410643599763694261083175373264656625482113405105914603264945266189098916545478742351424711717738147716734824169393806758668013818908863019188776719883958738208475869104974665570514947315673215790811090766837330395898466587620075309953255593618651576861784379381418671532220545160046658389660371277244191385335008847841383150211289708196204033770746810768565548741172078485662734487159443375559264066067235369346292737758446730937773885486245683451330994048034767406223510231433554573474340884258491385345168661577796519243072873965568445022164609557415044372072541902297445545509910998744863529777990742784972282880115464984667448757059089545762036668051252790269677419636328521301464533406853235899920020966444712726440817828886537793729960063698811437153578147603842162555104957427777871566548343949900773038632942768336601407826171144910782523595972733220560061931988106618187999336757115491992631613568686446013253893160261851357750118731141264968346266322941995326014504643269240794206381826432352397954531339230514664011509292781332140830309642610222674822735808890539900815096348779980276328957400550509066012815272352660686947632152826130164318140177851567222581484064889100479303988749595615720318566597233636340758171275991947414508133750283577318230167416706325710631936839252444217798843896619821453292776769077031298028409919058002400683915131219381802036193960708561813821368204175257546429993944067659101894018258204915471186300261854676454411519864473067863787608594017292706790839264138869610960871426425176543923248703163393669392343924973837098727933460973078505369853976743121362833437020991135636534812816491881606996413036085148068805931001671968833695846640613150422045896323225269992594428516920236367508206766103091172179566066310560111585034829413912962601192405078607236606980192292530042902594594017022442626557131008630273567060935391730447357754664851145850936682385248826310858654086881262376048029772521455448281851954967744619270270829374523011596258678736284122732345675993848886706265638708692997384034212829226254501332436656701360878689729842084413336304990387715787234679691392885249872893291479124440921354296855584894778262848271951360445558271232785143489749547234894381429331837282596894677069608908408750855201143287256873010953564267750882423633474763715807620381678561549186385922764024458118630408035699831399034789387023908224108336413585556328937597466118472495350337093696157752381007894561260287096120481383476448349885677184261674385999406096337477399276339186837374150318775113010020600277377221186800893947805608071779120978521220728253327897955489516098251492513082656404002238210466277397610940596272695442362920933498573594720735588149014310925851665907713427055293722892513936335931858788919785345752748508714519754712225498692369624350990167139235696966513037652713184974307914927261363062230740764126953280979051986618088711489650653331587651347018113102621245504131157456351382678151841452086795715164326323055873739371146641410740554260428185926890944774446807277622289509564316062558585133010286644149241241112114462687112417484113319142557437521019067170122365517682843363653467105962742347191076642760336747479786542372889232162926824300885982168064229410345725635503354961796047044155476554801815595586833713341946182742111835577178554946172480209216769161369601526322242455304878790981848347820865197625047259578591311789848860317807761966295742569651656401424291112943407826178142561893881292458300061656849129487520109404252056306999053536228915069374482638565690244755554018239858628125989423662126080716577636773238474417924489966197199491558562072505803891988877806986899118100722976893672853749956111323011412767860733762167323369219672186663412260694749347565485056687998020436178638812811937059990605439174336504533055922649751243382360573926618548898981853864740471670613121990503134872536889807103434223079846686181666968168220843608663910345561335848899066596120975549469056683036763209752192386069692775377714071500321390314014104321519552166847578054289525182922457008442597424283542694112969794473464989077636619680518828489506819441162127085513646775735850145019711314278572003784178932250766822639823640931575354931162720393602730745218262136685322187537770989930749230517580749487815928733567982909231840239401998614547861412724579917981363558826825836306298261882498735221105703985617599142667139314872107911359295601896329554637905834638375149916037666351217061479069274376234812407478769417454915509143203168841942423839047758160724358606213418556285876784982254907230499571784460295053156230480307781329418929233738251453133968787670935587096002899007738552612540810172283314053099566642078656600711643363511109287747265594879208234798266987294114669455935147426169212945794094632998544120739233741652821793507207064792317986207448330682266003610220036799465528921007812554637697769501009149642563651585105093402002523871073620866064783652394119500963542284384909400701367814891647454265689988855838808174135546979908415079093105572682732610527623819651288315908284012767875325490385927050008671676213084910422635118618311235501655861819469205606906310083858883467736228099893534964905957311416864685991636170410468486145595010885598786534051968325428786595082187871824933259758307498075035078799844585455331182153011396021510907793096708308812959825552564456939796198909210977800551695898854264924987636786317468262148560344376919703109693485989294127963328396255025353569603078826913692977372414192199836407960640009094670196185525987480933506198213790347281566417178933650618386729955726904684558081805003871930383604052960561417925288307463716618486752005350252530322284005779565048356932167973206611538101281498026713116767009501841488117352307736990840606156443156970019192704882271158813500162179672728748355057296814710013494706201406789346084443341366828714036568653333686763645875942505953659028852405497069694740492553520890825342390964106990069942214800827249302214653926759437033718637701317623545803675270428773690037426642728680202823900454203027957311489299704110627196060029701253026988405782693594110421922651970514067924092620576852641880172299703002773705890891623563315204662619791355519227578341892348026533443071054294855573078048996992672608855011407048731489722056590708827322394052662116921366020761440392804782335619557236925929044350883911925088620361473129853017077787764067819399370852805704380329891655594870372247094763193986026615741854052795960663776518584387334355358910253932196823048850992721468012597672662478967063828622407484292929931753407164229784121100168783025713564953755208111417515323398907592091469792200359703936739418242474903063175349422255782398558888332663781464538968225939585163877009819137978256937705349253132531865052421977406308703212606629666524984717090615166229510063008557243551555752531538524289991447792049898885025161819718781867511795533744454071620634726831177498263558956292086217562746289680071039402523193520438556408996987893241235824694130346701939245518145067371694179678139791137165096589691607153925320473841225408358657544142728315819110173654242404425548479051630674029679788161024189990274503241046664252291481685275634473259327181362287394636539728176801431310837832696878079794102611493621235223273365641846913649698217214748490356277089671582707126445662425643042395454852292160496915773925981950246454951753400142775686945355467394380889965176946877433042521220735601289575959795679062732175335946531761207489451268269614173067382210054498404490394630774999183270536770050189000992974274019358282905407701007840665624748366016050610767587950372018654381309903623365880010037513086885987420254336207401055445546835121931066779850948594713736266503593082368285222564536622822923584014027062879268712571358793279391274101483656316222789815122702356334698059887488731755384666972309415377467528263936459524116056478136835681015248943379160819488666045208071989514897787201321505115892788204547146191976796329897559014368873287603654168264530128701134717051891340487949427151573360008752535693856044366446740126906344919327102462421901940661517067206559392330732150527938376126584022334819086037366759066769252348532882166201534741442131878738499759939699420648266193409215685501240289808697521319618395531767526086527486106047656916786868173539742400062330245436125052054169885845979106505414469295862793398908213237759245319528605674174145649593972957910033380354271301921443366993878902494901802877131468495725023220103089396865904304288771780407441693700466941148500635102678421225761066994454446494741148155743200964071991201196929585307131787748334435810533708621762822835505320868929946523277889129910945023061633494254208743657439766260035533048478010521035036151558252248977988715264629065672322908357398586547999089509506039236916057580490476718632130715347211927804747231642084431321845684361412290242714375752387477550816607579171004817466114561785030826176063446353641365951564775299909826980609686886577359816434311455463243046754792852564845322392422273425065393612234012100877886075571672787508813835883435332272695658747812721577381658703947183536039979366711622054578891551579549732095402777891574850302756945801896300521235553708665706521907669280877221880421187424288363159494282260158623060168688385720313613612538068220353425461356813934208198029395107841614001157524484344120547587837243917167598153706047899760185788001304953570891009419971244776738609426012725980378569160618717058863370467081123694703815953640082918798967920607998252667994123179892730082632496646983697254862383247825246718879299262112615634092343545529807404459398766983608104794289425006273181080878996297550185851366713640138388813131004544826971514695957536907399760101830775650789108916321606965361609906311218327758656671608740398501128350754810998248121415341928610124096236415289505043716942443958257952139641032994921294509069318633541661214898736787683660765492885602277356370739005274335453072859032245188739035094489833045205995094856663313897431724665203007434541930986585177125126906638000372245087573352298787505052822996116005646770245438520614780993066409607274950291693901337152158983472262467012663452185186284688950275013715646649895548324753231861196386224406386991389201678760654583413257956870862509543004359557100189509402655176744752943023932253085213615129152574610153926750084313803455913783895056562105706212818053116348215141514077432193470925940017195516424679178257629758066337341488747041751389598238110236873783023853205147775241844602987236827518564192519327967371068847211964927370894316292119710927990129265681344340234741875500249599913033694592732849491639963205178211609212677638871871321422439267015488171718074373565715448247250541098082948388156166214815733052786959450329456938718281171176182558152567592969629032505720184342297593635569973639718996120843827287411506385765651678406593723015822806486708796177016249446448785186873571384200944078888968704653643751258451342145752454142340807866599047238584232819195259727016600467207159178998504439392497354174283504497533265410169408145312400818341158865731972789282009618812140037954772437103047096393489736944415449180327002999608071646866990873408088585926176534006877765703437405210059416707390043084135885151351724999387964134958030630382698416494044167699668369218095720057209151731155446041208723134126642711812772705062942122186946874459582943420168060142885741352936213003482738869775410076267801086881249123548509384488144891123215232753540136618479739377507149189935212454499446167196847681959863275008966231753037032144895298827016241132970830294996639140611622651783935446037970068351911064697236854584296201847174323165340797053638161443089648642662942681259806451844407171356709429717835635628117230085241010982047119980848054110290576522017677341299918182730524348506513862930341820122230740770472694304730486280038262023523752418036358566140622610452781573596392846227318961062585699611896955176888217811286807714053498307852579449284560254905843012720356412651096529450891356887140897664287300963656240273030567056423009015231531222307652973106000496273708651203797535558021973746591883755524080201292522620762983807580112719739538240972720128530707531831689189906725559724790564166838348968282691514359716863031545163800412261646823289757113918804142185831774308975503828631522841691567808461499825664447403488702243371566166389035614906153907923747727452585261499797744755775756980634123377984253291476790209230053991586864933446443465704180881788207079479546555358460804102510442221153712562400103345966754004762775670970050288499382773899023373238457817740024783448229556329722686417011669938419661134005867333418931415828534509642908142987090708796122419811751755536514123463889331454553457397179515833564786350144405954882880125796863953646807854857530495861739984854877617442095557428356296705016190356947463964754569199551160899669446634217238377951865490199031629698429964874266058103141868681037836232233647583897936742987760311143412743686156289481543147779681651792820376951716486315498787794030319356589914974451082616344398729172242301953128444261743228715062236217367964335779604412349463603837734961858087782357276597688347860830755939339364341726948819364121358749328780864590339488324446553139918687136869510515091582175829344103046590198972599844347495623913525180365199877539772992419266703529677878480007623346309596450952056021638529328304360191124079266275114288207592015576299205101713760133411273473105161608584448205035327923359374213321616606569469022700912482690678828255672666128664221436487826736588838784849360523776696813565122889371021288584862461941205418370743191754786637324462738187477263052093987423170294972649167278741663318920794664163443140545016675151174060503143759649996235721408860038371740557308150099332976605588936819320070195476520274577473983491209553483869106513267136093253485187206936381107081552472446809407997430822632610664098814236645724592206458323558078003020666183429863644865788599549639728943128255627978943529018687477901422114293616316387838510596031549906245528601453198148475967410857597097949929194306410798175408668074821113974421297657040391634862326363570209243449569556856572891184212434584894769776185571453228755347222548715208206615526792373832687457580230512649769601779296792667490435743868598847532691851502096720663856983608155393826667186424240053326487521688666720910594632268183922689808764604246527641786205427554712833627202009574151027575944039956029117220735721409100708167065942142009913471744132222995531758431092148821691828819533004179964969216737707083421736716212365554115503308994982301590862167051452927590775379158306367518193912236798576732102344344302538594783650149521841271918659488488093471008673818837530004083642928638092135212303509640822981083805832270654743701907245261055075185513459215171715073061970120079854864129469870740536650292138469594682942603834447747964143754308794945716896294384616222916126699011832239477617089930796106719352904168026095073002551735067419688345562213723945344840747876976127295916591123866415174060479127413453718471283261855194223775980401402057810718746231582177906783187394541953247287836775438857749038590135959572721512176749658240832483149023464323052968551098841968725407346878133580603455440073872947764076577276246838760710446484620797204356693606625601246320443648186647155664815346808482840827175065158405679184020217607644270080472423297044320596260124361912349199755559832894161624213176529158991749152894192321481558909797787936210552862616125961769107036275845103396523362817497055191567835396227198264641744598659319980611417224980303164230375145150715338553889814249930242711375980269402324554028107010192839886286119939107933306015912871811847704226654228836626246155202667524122251907845910099938505781204925512760123574063402639636592026465730254939325697345809489921399469741466069648000497473472440708515021919097428228857569373815575079202015325389847871876936769716400734270081611471669505169958021251580675034104970656190790151119145124866838655648756292857888315648625017891067273136968280726806146095551411354967591152552573198723452711732758782783299556660951130505605947889975254801014833135202186267213998826210614255915835906628999127442825504310978617818597416861245035961423377927824327428504156810562503644068217962233446060898185024185179346695553531957015479359325206075765635729389023134489147024988624452340433332678147683817801731489192868806045428571641539869025674955880515659789825061113242280921290574532559444312773423800983068095339300594671977545166975444040405407492910007663511130438585924205286845400276167888568517746692003852280728850086999043490522429621487312125739671386607789173964985603505420603300410064229704280881031166323339497558717959928074056707991835704560610436814440925639112467404887854951692599679489509917573354784126128225662162025746831394478392621712307788870818434746919574134076956739105825570229401618121194377383893117705637991826822053723986470990757137838984054849531255735098788097984699930293691111943379042083231998509367179505402198705780031706845185034671794820007739577931925975985357498971417689015312348932837765592004701413795652718685222228924041739616387124197928136895646226782478065356341024527997250183798736587347288401882973427803124873481235567745572564031987636712199890010892308059948965122635223131261857343706297774268918706493911887921560937572737014146729545660021067106654239001827598325394431564323004819728567933300771627841170965267185634439128665557972763318788958793659431289095714215579812354854082725724248819133151832477127002961987439289941052534928201860428451228837541378578937527346440412301260562199413714109336824062994848491946285406485050884316793916545364664941642562889620048426981889599692556628565434940082430989875107860909879611220176593598857019392601548213963242787950800572255636190035813662285783669910827591234917640957657844006057918607470169852888961627183517844149034754371656689353358087320179443257753965163838775122100860918062249609399908197150913100955648285253045430015965307271859102162299581263104040650691499400327625321923569738191399834184374269279391843482144895854362784313051216540073756435515812610860219351006680934734110359897053193190039341242796535695256906661102481616467617148847656445932878922169893996909277901877309229674674801163932984064533937164455497397087728351459529626094878386896094649710642141129140094612812428748475894434219269554212090320869915467027115317556061517088134640185496069796382624435535561862951324688236176672136184397604771476224844476370607592291451308397968754030550547631486696507244834734984686901397478811520428964639381692095177741521979517525492478841490676289425182674630083259677843262142331047602829590578778092014104214744076951233389571979631107890133774871636976367987072603594491065050603089195083146791444692427090893310005301952940425305074155767423028468342184591859370276727300282598156448444417178007392268842344457799301114019411353381969378448827131150987369310158023003116331657424328295065981805318227180895222911714932560225242814428139331627336841035441483107082840712283347417245260328080973642579057319056058643055729949186756134632990804085994153714643078721226928909268280190354342626975732236782812900948122530853497694619279496058029020359974061503177523680925232093484564665311793313649317770021764570274234484651777224920099590455305544997544249249394984817623354503553086460692820589140311129880311093056028613591746250703821669319274754463178160522149758249720954149221880299286815779247899250929359593194996003507514537677442303541353247116483538389618355776651127966681999031776132542144322441137901322190130401270939920895846667809768640709216254515340249239342013932678590617002793578061222827854310051578426616381993005251421500940495764035448393822935853864196040792173638311281900021929388324698179426978805051136469823373929064096444369231021830504077784902989871585268079176633263387091120990981644229045238512026272726869018936821210749076866673547343979921521639162119158882705284313069354295552278254229796389995110572416747577367074256588569538029133279942600287190473012662934451865111989156041167867333506895917442837528369982023749399155012871661115474153726971273394310472789122415980201740988682973925815984061387723502911608505437701285959590884259781517803300947312654512982554421281801416688220701365172577746528028225731625453990936130212697333463933814120704838930346461138376808675392336078853459224646979251121431717298021522009740060856193573103991819669353476387635394030242795703327107410204046089609232813321764954457708310252838058369101712613786248557128071646852440849779381541703025183686436409203833295367262518766595932298304506060372727271559848537012592799407118187499561829841345428707521312605194334055677438037337292872107030458023858195972467937613091176587612513719243721958916455357990919932320180031457124616384386799838857070890889344247959067268966249150592985074075984908442475002881598857259742123488321259758089030084531336891404768437105110183325069051317380435790190179963071460247057397295903589723871288327779906243772300684242006723180573254386952402117040309224342095505356968201467118432974792004242124971697102754752557505308295551825395874777873828000125554031361221343259355032753786813970902525028070806520742345542325130838567284179915414330231151328160028031873879478141896480632048191170063891111221300536982209352015723635525604656029423337860111750535386780407464973843512018114227771079294044108873771915379645100669082397704478333017638410154890531425767956563968640053849047405208710842870891827319890604129741758913666157791819533021740437517365774113243966663630001359056695003722973951260520592735334835214187510359043875971470112878967210492283598777304865817115440111859732485717054972898635801252914052159673258169360971682436834783291819526377668540751850031039702693151654764693713102633997086210999861992036885833360294330458366653056335641707139117129746071400214328795803363435724684009084787707834515532649011454308184294256754238485711867659237536245202332610544819344941919667991319189566715534501504010997987592839944462116278705468294942145042961658912685379512570097148727197951200508698472036939468431577464649335830261550819669701975646863430256844704506215174314024169594174543829309746985875516431947564929978387620938826558687929548538688531620754913371469540851599551998681072795752202324772672419430622461990847131454151021212852519384416820797361444549261320342182190787379933461457506518630101220698981033451010173520436669608391810315839986625542643826739263675294322186116328316777674643908218127930354081174793136939775078762374195832420846223328168732288811178794986704339420903767602247201155740158179982210135637165324326982572121926137438151990448689632827287922712547560769793610535121923580881170700453831311697323248716489704295246493620109503090179453782574974194496405186284806118686313824500484072647927924556588004481189156556447948492585370727816817201452259047695023727129296104759747826838575080179428367868785931459613999108422453161645488811369183582404251453021836231482238411739386137561199937655341294350154113475146584873245678371328308284087958857346633307616994555342256877545499122939874004422373650468111814827909327199678845943214650399105899694734337647810447525308666897332165336045036692823083375492534978830916348793908845474012540286098779804892107729253844287591021479521229250639751860552085073917242811357755794048043978269186674578823403823720725427506440365622785161872478338952518639157146478292344565434736076558737107131555423346864453634430748886957243602159063582338993585125408795047658571250896285421497487526309548970506110544374253168275486723867609030629293953632021735077134480626029818363665343780239971874013001992311763753866715656000129139850180970614178855856961884880537053719466488914065906127150681554626142150418596199940542594357510277170313472121402034480167740879201298200488015552646750679931024271319287290772680211230546931095521685567735208024265474144775383202384320676304157307488779818785083577818669141587700956984960110721990765073341313946720140290402094626396559347683142897391577062613347180710727369348507353819260807804454810044940410523208111408121038382188094444126272446281428539602364311356819074059086100631394563986012955719135862078382358399219719714020315162893451005519274165122439180353841007067253893464294869294119669802281101824748127005327101905011994734291859267615727069761278059781181920424523421336302508874944155191434680902507739122592357459862656908363429220840244658129660552667717143310033360640467701848941763159698438719869556088597833080139053015872311626386336198286001437103634618117910168024939551819909265117031199052639421417482154189029383326182970715519543063555616823378559850597210231144959620712519847077134073449418549365240310932260982678307765829693109536963080794254093385472897691872394890757116191027105817814841530066169383969802789619439571322387882731356715850488311573032393674616900664341055507447791492976272267837372764911563330623594591383070944505959402043558180638140134816011994479855536047236732909196481023719938842440265172144722067766275506226785496772953120233645121495179263411147902707399643582156825299566198185131361229873190394529615417618700779584433893976534519011497325589543292103819702216699366319771195794845321531568247924418792246046900711923408604365075493063435387789959300182543384551571697511432747951426337594464366738701975363860541465584847364005779104529385793167779441220864893116713832260094054597359276577479784433532301987341822900535325560373050926183409899409294950196367682020931558086923947069490436974239145506441927173161180731880006625051887673511786729957801183100958576115906783052119073487772173241808940519658191736322627029909453154559242079025240642268930918734224561680035465910959785369774046824596586050254939145354087418784527482779766903176983375510270255286583145964505645073141024790514253582850712003067390585784163869714290330168407810648855596709360016652986585560658701241680578664430066614206662481365853106772618368488817422049232380850278115663816377177288044652122014799399920012814619760877932999686153905804961009976205420296602946863651529259605865903741085044560321533777568178363704931719021630634156118438107220894870329616520288262124888023743368426261753005787860925025983300390120414802794047740212441317766423591005005274072234651644085678869730776578969308578882522460337640279528758735966853322198516097373596445861404462429863830230926798990936173589511895354443296685826627777680620037914704088176050518341142727867954915793171439293461228592104011430067602914015788343613243714763965839544296593770376336052197106278254982203100133255086489489363041220478814485248665722909101272017428288091189611541933018932764895811691301232249669252098036088997644059223796967317503682202450133144178169340821848582116441810186700140268631159063000567344481788619261938751396887182024127903076836113643977834172305303619905780509722293842144524071617879794251625419947014142228670022720984185189749114689162052769498982524085018470749493023084149946714737363035966333108429230497717833940456412152701434027015906009594385260564080997925781809638941993175107652625042567647393910921077537924839411828105991859885742886936440979271198401653939752045611398179020675757672732725738766511212654304521578477507805523238483813500220032069583448918942242165000147611631328603361123018362770640140358948392939974040656989430676191717733735219448578179223878007944773334055383285850840836295767024478412893030125479197034993229489426824360501400557887964435940121776824529080346283400737645544160118959712714783602060728527100514985596494072241577874079196356183965463468691993734917556714404774338081130332690018132932234542269055563794121848149937851764975737421342502575798253769544406124671975996973463018475964376249879327966248851252954922083456132004545131741061174579224504371630188495057027423977309452586707846292972896398827643783438302437627451707394282230048851902176697395035310120182341760230939200318096408553124541299323567350316748677192790071819844632478843907886575944119926757502678497549074883864329987912438998062186754330796059328620657300754057945808265194385120767315766238779883193768029860770875172957793155973758193666051167168732985948072166697515251431502593227398192981751457640887382580925518522502822201357774504692114206230439529944138410775032998993287551358372185604533864973078006530939125274773465471256583601488237069927378877582304535624623773850398371233097709932105834575665785460891729404249614304194768888466723545053992686343599325019607037811712021455766846162657538618678609383715198171394028355316831816852770919493111468421459675445176048068244553643156174550971692812436962573828117637214699122918688005873139477883681417525597930442064533255041481722017062910882465465044235272132805106970082388858388720735581541834521585483731140149708716567424299900838691237857157854320951212557460254619093643152472595910399793885499969199105509809936975826196256537904038942315867360534017970469877887169827777470992880841122338021806858497966631424088004741725636912666315651396096010470053244667100598904417946804853755244776570316155244863816282619715874196245330163361234052584679633231173823205198813200457446193202486834361393504743541906085308861670199596245580603515501414731605728703687722232391170333068694294307239472550274158340114399674259289923120610406902358655473009049285708435124373552478422703408296785725934049726002783657687199477620276749987213538556713795814144717389642636109392307287730731895344421794534423327488506038220646028150308493238351041068476746947908018114661328417505333790268478031940787339935625171558847078813685548804439790175624595419822462151094756079320469439547043243814785354259237241396170190914597937645304052680046890329235273190990407710381622500896333208672189846602082583748278907278423288169277702353902728572128223361297839727717853113246207123613834128299860400482014938499450572698208285646016507908388623910370950328089725169262576641338117144300111172004772179248314863956179082854939435431582959458580503452454509566234412829897463126248543900207635190875072632963981912288942412817454834744105568986745896915379866315528064002406066520593536728597489671072520530890122703632344354440114309619807135595824888012736669639021008691442360885417917797208186810931213470593013428430336689268487352190224146283030103655118363608809396329031124226432181513089492679114035233980446903543245639075293939718962383773046569394227839657969401802767991603550951818911751385433398721739100301286336938827736070882365503065918184875250381475458067676646526378244171711823820780333992062777072492082348001012820636471166689835398418434272337832591042107956601112130906147906606072179221737115661373324331843099299828156783295251067969823253850284758131827540917990862779223634952458716782667698258133481150812504361997103369647724290288641544151021632033595011128001171144287751607910707515478634816506983166853541723330577150204716181365590402211405488107973118269346662353107271389889324577349794240128858397301542357099547014590416003892477007838173638626769370523580035440433654400981319432972223776855235058223794971533767911484698404411488749588942190510831352189080858422555133392323899055622382791258737994544188483260373488655449608816315137502370603800883505410898011851004062910617763282969218338995533422206792414529422319899673007571869035302214942634699417534609138319500533867681723050977523990258049474871334865276964923654519971353851352518395401519392790397841945676364361861377748544807012928547880613216429939031581518134369661311534804170636794620759704849627629327590125619475031478286941854319658411766111351617627372012020057712461540472242376828739721095627621596579445567337192731915908756937717068194291987456998694690357509045780157047285535124901682192467282694839109972519399515572616832271331633515523928955482476354029535095868234457723095527244606605218380132951975806537745715952439858453712348331426529682778121565103418104065369991986020998115497208263079746862856224903057104048953265702684677390680339293657210499910676174769602185985844988327021201108420636423764063824828012261849521979915670826885585160203849892575011140269349714390801137834763377164611958063843744514491284421461054746869162470579456713160704485514383477553550438639240546795970996047963266836644914338330243203787415447892996258926194551030988289962296689834406742816973738640057488301774758661475274950889961981155533765095204704791632845543355904292645477367731875135328700187360590114996507363286531249675026326818138408357124269511100532800324297706117001228298325290651028252241177600035003323106508389025652018412594368398570603250206317111367699537510687923504589520738957005401400091922024503405861828297532560537843342957098011475749270656627879708527958685628735630436352999152520354065353042573737465490761807923273852817904043902633986623983420627031090461004940230272111789082412369112863721553482028783108552849799169317530025896318905776210646889691723920836143840856145211838167161854809741916562043271001804602179541263285858474075299234964647084108476496770389927968538399967106507493497968931776954664678592189428834792807382093196089616486297531230100413249240774235265782185676714328190325952625174919409539941431098518030919102446262814883074459992905040351941584903004076336137369097154885219169046089227631104108841226673779437002109148839611236619722711649389661059364533009627216960475689756625532112171356503808152234700503438097484105153468694475421162156796845151898316638920308552049488861395028365542189723601170942334018092758019618544272418066034268662744257525120486423485116914346888641886152567624101181445512684997232918187176301285056656929260113597594581377889784176286480704543208654336545121289512578004053954681819760856227667627106729176394242559981000895259319066830431370753848621075088003217886906259162003994129951284621810288162987237709770516693118813376929832727520103243205266818398851111778801711841326625177268248221844951269556161346023845130229433320818629706223424844249574762888390156112820504612288736399474017166036882255235510737541159476599952448961167352380049825445120644887266687584421699280216812120897374591998363699864769494642415201115987720841679483238674388972501886880979789903761860277926828900786195698379384927583182875460348270556873713396884638805114912809929695098650957606037547856324239362722724224034594649918124676785672078596289485542671609051462961716724696388939344487128533972115426253225438241445826476675633284111526815930905241193680612069237116729500964118261643102432568370675982629362988852458171635331115768005201784083101988232298359210520769375141415799675791282232911105024667471453485548951504585257723487304156040138554188359296640999887247599122337476684601787948793288580089447335163655898329693840091345083513409015970801837412682093374748427013598436516057665142515518058440744081290775320011791280738123002174570731176523350557274776157638932035192026927083820819128177245510927328619682144133672281248881324851274038903289276140274210607777289060358162807136966109067478241859780331638654310398303237616865391293405967052001715401862559278683756921081255051842066061379699234878338220900918797298448611357873402239952659626649638656571737062902889432034541634862294561826720803810820577169174123838739096558726030334400466414992741473816217390049000638696786373955382897384007400525542577460736799948308782751519767790803645035380147885189543241211860581473455067403941495095827289576217336097308735371637849813998438850120655702654978029539986343014715092627778162448687706008949597146393726875990883269011776458184188482289112423233338867387346751307272014942861960516891083315875685001863460546375415386394090257196897853669965136431234490881320767315291921445226552965360379885854630397887559392428548389380290084039728804045220412801169166230262212631114117751229420864770075869679272605016984329059098313204847293750906116915771843161034890642386915659860359343651014799238807681965849951282124537913013459291574454172556553389617205662174984136503681810767624140387842809383020836315986516514779923289701739957024582341831803522437894414968545450837966523914755344753796398837602699243607495786493665034828226144992868879352284360899275260971269979591771133447480133062765043209022095279715569970419250938789779629517985785115662724502508006562861070667724946635419248972080345884691207443916492972678100688179969010379685391818185736892240070265119336980925275539663845513019992525035715151007490217703179075235004418833365753238303288878066187037155504853877013392753184686163510130816064572639392047345778839778163500790196752920025321595574761142639087328020817650201600807784905573554395868010764977218630716036873972436124857500613989053897355773083904727433499570033161369051813453080517044849972599852893566174225653375893791690860258479103370465989255695464901163851937025603895940938429797687471072940136959610060311162975234752880591295636788851767346656873638840188971392844255902723170201556672589126878125175452046757714008349791023782584839019817205761778095531685631763160884167800012833658299513361848446554962189957328353008036117693384222869271456704032517223830054469290489959270143394781464632931244199918407831447569153591875664996371935565853154471123709229218292502479908258994939810937083617011389647918776249280853065608707788746272115951122129340408986803507466505060115272650227779951953305685428627322520498875291312587215728195712207928052904514300755079636182879966578736786862608161810857067402331074605953388064403494757178733019884754562451210392537766466242153657116457324636242108501089479325045933512075000168747389169713236119265170361870826316578227773034503691617028903542718611583437919584322033389734562534235037049047311106212464423158516164073543536235826065252093965815337169459527899723251751923513478343657849216068092588753386815101063649337536491032508368798128363300161119673231083855250030464483387184553660601775970076622259106504425642027499041577672933155699506067122760272458349434687207985059550185004003130648295658662991322149347220652810903968111898586570440191258699452073493864247914068517687411465514247031240599067416297795007730643301242681482759805728078970699236645493332922324742883232657198388404379164422838846367020704917785429825428504387999433377984905853649648987699592427975782272643112607550483056438704859322534850953683493746828412098663327854524382357278469337004580891014310601706223917100995169287296468265525689068039589936790290338590936740295540206155250776316639527652433336774218527054994281729550547755268936866857836322549381534207002893749156752583909674705901574843702638332207433818751114039170014358450348547212671948867676688376770605758547702004443105506057192032940680355572685221870831257131062428759098975321474867714342705720812989216594757689178036944189035425922790594108530623780884756149086272617272842702768074955977511422142987291791593101367606131406461394821827311672333337624352248498954423005861993153542579698403357654610189860512724162311899611154321957111970541810505318485138175653184923557818613982372765538208765313015983371384492617124253832596413744670992484532750985205006586004792148403816750518493433283071992766103295600783538182199961088319327815027965397498176309103286281887969150220911543651311410939353905672383075410474597994145223769127343237614885600790230819652996562495529407191843194092596191941969236744333341174390522538670243518348636637042304026635576388344524742402967448471887727263053405137429444226895655523280851037851294306957033399228981220640136237478599286876058458016494536375538919521840124807578718128542219476166771666209770859200009649138643113023261445763635428619526431427718763830835049677046305472316598058914885569593071396139114226390372849678012743191087769149741387966670122815295552205996721165402781323357743925631597817962689868441642908189126171740011676561128359529863182300652619012465140583465165219557037244644821895629631555440714005978934675838779929770969395384422559385692961573153922912280356246548010790553921014699808843250717060741561469437695483046714575414704263542290135281586097054945897417173231648033484379992311196062320171837692346816372644746895935787266880950860359252546781828107679622086373699356011018292665952852710475717278024502485097258776427999580338846093756157171773568757039836602617966500633783643272755575413589096603130996812369918680772130773172082935339766974099650423073906259675865144669686189726853048298799360103380215346042080310115523365962227569384211397933532843034948168195578816535805639681194540415086397059732887980999963595573863034057694321923061716002023900970098029351078745183826611653500674968118216700949714764229761900293833753801887949062616586590959831140897178834511895092227943159798360605123788471421277338498393843181073581719059060540326108283194128162008712115967394622303806907948232220609946694890006104519607640808944208629558227480668794010705657704064595729390988864437799465934398241844036184909361009200707070178416691433582227990371128988224685373889307709451204653892397031856283457376872001200855810479209508800774594362578386441374641938451209435165476769183529656591323249731208413249904807139646019490938234620784820086309935858154744238944071236275127973114194581549365970829563061769130727238617980874401124944744213360173895960925351275359251231820581039253174378236248900321878915933206535505002941316592559778456639733953346093469287646524278147544436134358293940197487114241222087897070466488654097757759220496858359978839346271738759208644194032064982986001596587226017420824263191273690463769610553712838919257315355235277659718001628106073453453992499255685107655237206169814351779830758913114686637239365990769987912566527303496580188948404518011200036575187651676321124415331298308078318805302829180566035698934373645505402419782564316043343358788358399705443948998335105976238268892065725115555004189663777006258043435991531507465836071854133408839525372680465236285942803509798270025629564706083882331157423212776800902161670991820036518614311093293220847763651185697313822620496189031485565281768561942483814163747108055343790944858676218019339948288430539259325340500449881588822805457094113621803800526879731095880882466025825385302216567621362152916594533191188842198282797164224775605077889990290075628863965251029290553670838679539602390856552312891227573334096134041083456392810485179043269968453776763417832017038195282779551890906620998694824871161410939752928844157274245182669378898807896621992476707335150477276068405837156645941162060183447445883964325772302963874898247366959908846166653148111207086138376304053577432351158536287775862865861137767607781089044878222101909107737484454574546424358418179105698211224331421910126838326233785600058731194165830798391061920947370150369764187875678237082894917407975248710517420867006496722271426977031330496336179485197323312256223827868056924721701352955009007652462975586174181170291398083915256596199306310772129415629665440718157442632341500184822280779505427863636319052573997571968492856779554004131469332483901101151174697899565270098693470131296160626020939374390642194729641407793785664366151436011114522307537461394843254490405440570032916030347203876682287356628856003565529272021793923638898040636058762372170424865494425802629159995243375757195144396935754494952465605605526515575483324038506961679827299637082764790653610760823020019261372921012392488890885280146595335690179901301831704040794376993797873600880793754593872920995887388153332061145149039199869855298523309097357193943448840739095322946083145613653276429244378537131007458975571642109733151049833878592517034803618973302669434558596341800020946582201647725594517764958864946081960038701144105338772354154067227373223970477911135605315586009004080781055164728860212144763895640224247190297217465513141964114980397555325493525502396796188712220119652201352077697965358773140920086947903098223422735669721891636969190098109633484026707507540346421255626668574967075610125196104350364741625526252222631015525465913336521233716314352502041338422788734345268699798391846259842167478861402970917712850179557950244560954961884455930152446793682952436056768501737739381292417555349878878136784511961974473834907640281238180378690880682833045136469410052385855863921201493305781559166431230456401070587602067952277906384455191176430200379604976150361239181813036452571727663460059674837558956318804363465705661177468022666172749288881216507059424061121911547813712292747697895205972069856733223732098473294816221106059341035559836866241710021272350165517045002410114160275201182581418524838921456192221104871126196714313277613827828551615585944926415090415875261016235851943954845938210372626390394620708044540934400129354833997303285334563610989158670935689796289479417914232936167305242340468522058278668836614609893260829126125486726312962196919983210328852031428117896590688264020322674091733601814317541996732050334515189865561462617717192342881127437655935820411785625105346180220526210450291841821858868280633383763323489275797289552185835081917986617126200771464073274978768263983773557302346333701694896936828193092280283444319492269209526982556708530008461474396335033246123592038104606266202823872953968094984600432305474000351163251275365514590142608942493755298108973944711604238924549577649533965839126535869499037025135321552789000778292135232706061693306906058600738579709099852536510261846894882837709697132333680876918882918609245807339618442644697467595113942848330081141732864709729895469715277669950533991013703339769611023242547295103077623941198722550281531338046821175762592014862695896742076898252577988774682900952596153230126339230791032154428250360842832122540740634079966076522831832046457946026808456247243964742734551708002480023772699059998024342432305721419205097935140052265801808668015739667093438305663257000034926099373589366817357938846325983298769863970818371756314581858376304776527025571161216632543272147958790131780112478416243820425598001575665493466000255359635735517973751037546925561679149194092049323047582959430901963059671021599368404606118775361325080802474956325261599350237716179524763704913672040679913097438964688271864035351392225561340792049279430661349437220462223423718495041939075509519246772325948932441398931780501554600268770716949796783720445980101771299516687455568891861370255882318309215999573061527282629716188325883657215684883784032660860481066673741545161097439158970165673862342117511298969233210162718487738894142338783454459524826817451364185226837762739214884967696477387941621992461107221661391805940914576439710420343017696119745863846207791658029710056106707123543542962587737363759448657690382002027683050680577668747845864960071798010983072112895045412062206551370786309230708056165801798717777380117060453406770738332618229698831127507337268535931835113119266386199033898956023071720366202351524481819200135531217588310010577019165776901765037447404390215209868330360765739353837959096039731619750045462998872436146840769454706071267706993281542229501355773046807591946657230211275144587615546005320584804274211476934533032251741578078510394750940890172198306895293784902703841681371246431102017086712524245788654236322209291609770632114268246131832904888997054364166469777635031831367943940105976497982510278725370626156296943380312053588709610116871822969593769885427001378961237957551292731332031068485959586892167899760187551419121416627609927524640357208322340959791580051934312837505175039563678356742925163384131434665507411075568722972662709246736104376382431843750179163591617092506923077183484285396784673206302070828462883511873218651710554673597647452624569671387589427004831037628281610344242122527893653849375996286268276921141929427257296087638190063405580066202603061187499530595185661982856621616476379182656190178593050446437733009937540352021404855466236979435415362542732720639839091693878483329111582663908980118362276537174912576643671451658731835883810757032222944784155471110443444650141057218235603756735688923168096297560462314448262998490372576666553940335701674063020363162330410414775508767921148128476193199574595722403865966690833544585327066105171768959438838497266754356136735860994291940711995738478640566840160456336218022016245227845023486724263682014840657841888447212722350654466931637939169494837563479705452773015533010073425929033820980419906227534794764524245756234707040970095658038645030632384339892865506957304700364249817822008045786125550462901025588160242500116846298253464962728584146494334232927845322016177808905379930471135936415813606932097902157026231141086955776762984850871300212251371617071278955307361441462264494450841160675965281399600422777593525503497287878347854670706165948549623245756387808477936936949850125696287039324178712775081933722837347481981893669889245481746121538118422426255206333606288995712372896300874597615853333796159334649467254970907133446714567847426745370728417417177116386277292273301176655609519881305449032793668581134983613350191510006547509703394425989027082266763111824099009548363950720624133839964080001341960484894589627627846900810177948968951394782540875826534493573786945620349183001953542129217231687054231911280762188694172447783639893557860028392120820405520799656141077473035703040689506259288223745938440273376878528944658967265839144768974529780887541593976262749313616273714336421944084675428517655503480481286816086297089659276814759089386196622647840252896916429775978815229368809976560573981064224297446752473857485294753044887242550897213382801493749407576756596578595275389263188328200111796441502557017245136297428561531180635407269124858906236563300167438781820984943142199721922901514948633974464821296926078594423375504944545686537459184348171104482050427515063878626980236451802076938715666551233528493011906371965953815383665594441972291912960894474793804049671230243171585291468426722293819163788313814327793961359778160879705438694306676239913712127008257525935281319870037297866324851018419850707078201824281538729813877899159574048540921138368686965908396256278894146262505795460847320389063942709200396375836295070248164569033937321105024387546922405671446739453298086602498401501589014961416252784111722796300348609036357315352247034876444787523245506983227746473927157490694191976553030971635763714051391062198787207678265452767120102399162670447326132989145890324283352203318597113244486875969602603460937005861213777252999960623382395790416861388810733485348430571698554508651726449741223164354288188897531181810209374711378906129305674053679578922726683351916600898451705433477947000714696132722838522279375326469669480244360181580604318591808692417926466246833926403962985523592535919465195816653049842978139328288930475888182625390124945599309167731407078544042773456074442798779119605750253173909577998992782371783014695787887238705270013071154233923249111843371761242313348459200968031594546683692681194281907006967942788005934459364590581061947488932516766494350369015963818947177037058328172125326333133314462598317954316481751937800016578328264268860455963529526869731916045224069589085305470458108937423827655476844216911454308458226794416614587268068847719921512378779851621015146099145018518698210153797040276040846719705159122485713920369411903083519531141211963663344006050692467152138567000502118830619564947045835464333677715162128554024722178599988040910551291009032027722788465065329330183148759316430592726606338133085161134582621052232566935628016626508777743097457584183302988156296380267558584062119404055801673518277113579853519576325053116318711408191035669662825103002642329183953110889803512212082551171416979177411101549103635790450568593767266178751087951764238536562452321292951323216794232346089811540824717792785902722976845923802114677955489441904574330625424597159441039731973085232551235145097329403034420019168658837941863193943017305501132114963092789136140063316660032336947407536715898751618557670668203548771171644210466213769455676997085641404466922728869959734119118091345735158263588101155780127079410249043285980592426619344747852681888743651469637625935270734349687849917762217418443394014169749349643441281062407384735189207014690099641969598870432883847625588245357504087102982152443021336203265654068647862950292777641342867771581287587567374392115809711849615662123058443685924206915810547418264257611192538746976602895406511667621548091190045847538025811892699845864678779441775173527971765433773294828316705961337060887042603763320350746943052791541422646011795289539203156825863224382179436945593399882983425327213689268754367915362405078586432099631977042261896885124185841553443484910720558310256150100283127872006563948380494708221912452092007968829911065296477681102312812942030550694093683923562416693084483355756124350439945253085986105403434751350630519334790712232705701397942598736096177446853102461221897818203009137499909348320602570993012261911162758784527681445805592417215086638031747450062036968528473414592870046629187087515729415330077488934958035141704769708306143292613720877679808453922346182236690516854624696197577744298181962481029833766293227339368124867403376442484846488579092464164578161844761734854142709583759657797624102560097886046536293903957163902871019292195164974161398600987908580187405715110475998754554886095935894820704843880244451654436091442282514195762010213619897725590419101595764916142123878364081395787205458196591439025181660621942373911459453778247606335817379270159116580934852245590694204450021456478567724373925030857953507392484283235162051840278939859952466203512468353047480785738882016793175778784998849991659737152348844199420158340531198156592070536089566012452805489288536823939623577303464412459283766455823017162171440570351282022910925965171797287909268670346319511542821901087428821752669155392809956176002134936581756173758331136712740407918001358616646922276532091925382703301470170035229177564772749197548983038158173313645416809996286772475482485620123365029492187701787781367894781398313438373793180164595811919002055998715007768060435611928216962274936219096388257480618111728023626386269384018673318509596923606344678027164341353268286902278673625578518300603343409054305799862626549086354702535423843452316923976801372575803036915553246127654712691536634286811360668833825458512663325549545587237774025271485310218250672082613826736984795657289119648676983968918106286926744952602831833647996261184549203734992787717680825288560311327893555548381855557892500717148454683121188082426655713792234996701705178803477258873290304764018225150643255010393451559766047719176649141843589374122160819352481036488084654674156317092722834849655160482201497061228462408152870817193923369953686648823601607054089977895591468474158691492721771192360794987487006019019703829026576654854565051049106648045543703879224183406352965172192341322189393471661079152478931962448201373246414058614728485689365692048653627307904914303290221093362546512545628865916001592301734764892681064671050436449759703603618661595656922156919604158558313074414645828322384039447701180180934250067966276518178353974836353700200759236145216401392307624140471725441053357895369944955982051447979415091447087050069633752185664422077773843025640689060653422602114098256667833355488606051210354201944801068802450338029972110511535618666987665707124872013814207842332470576356543637688043690676315369575464433704488140344765037430776372418214680791941558043282174349124391266765041779935844760115948119918743778459731265211303059460551513453244155000549054760468398607329086290208253480876872134288678160543591685171060285347664944137015683492650582385787203323582845648762060181503625348169120424650440044268848123816352403723503226847942125662356305610512225095511915033302079105509621329007454498961853666702092969260554169638177884754116556883738786887808591646067287428747340277365911486562811770296550262217357451142697519252008867312511488671610091948327751609545824297009422925139474002238332631036948450179250251023202077026354763870448001311284569160836655215017532113773802705627080075400566174566930029860328269616077747471237208388076247205419687346020959158091415353937639366882602758912293000798581675741094668984724600608990983074134791998866367276164639392648466536955043650155740541406315945014842282739023131074339297843666461891695430460918259958691013753196333723544860752282613510125557945169384801121706549859276414117049628744239688031863068575681659913936283014553906845131795028567068210922556628877057383791061172579236925434668431969413400324029500748707443784824667595968775754945984717352975687118728045116297756519463190225696357768757569320461064005025716222516409191069211875424483861674523434452442047913958713566773844114505118371124905594097832045238714736557380915332481251377894678826643424442746212613150564775862157752649529320078084878534447846889292923379625386379830830535574142823278787602353288859658406703377282963513149702059540867939793307913536109185626403195534423506810416018440315024476309397492278831439467216404760651505912304792041988300039088165093305136308116468771052760124699973865731773428508500476763886013951850637854584763009332929117745887023039112905955408131460860056850305904714754896056449491715629775555842751068626946378222984494909662528732373257098416973865860821061841435635864518906937006586224184820961441422977891979221316309691280077397447815790790637168973518302397376689576843933151405533650270979291309388777931040029718088129563290010773758707453356823973940647097232170701686689422147476453557765116933068040523089327141909181192107289716964253853145596475522892406918414834355449429949900967738721857476373395245747040547857526273321740830688444357367694735209287373044610146408898305841082090571269711370927102868827936628691798372233847966230077831887149156205327275431035156246305501590988124960269699358645907852432766986099898646631752558109520374223067131694863665338950083985184186701257638911753342025196595262281210607348622283372369440151921418415663437821301521548310190435381665897705404968964629641523416683276630512761902440887026229622995379209112639499676328693898350127530682522562944081714592358068660048197241150034203957242633448839979741925332374952981074037567976250804683307891288766935773944068052854895689761154110393045429651442379548878622974469133877263357052976161121191860509268351668296283869126098730478556784819238665043102484129482455565724308281278091706752669323430156324610567438584015219831572703330922174536976321432435263203314375353105970144628795298405858895919239924165915570661376000713837306430124493310982451058422342091155497570154720827582257979627618271942977940248665374708695521083785457222062810807316030879282288797889731438537304036951228562682117596226195899840279751599579401192686803902230246450055000823741426830444727773425106159580487989853620301344922894963221804832305228154560945788591729502430377105707232857389953974904133578488702731580758519567327077589573404627758213634109746551383823373181182102183476110046669777408711545410850784088819858820107487076148190895830899573751906691356985357314015014454580569570009826526644092739031329119756989940180186628443062918268493711725482447337805819666614639825674244197843733260055909798078415470771692528435859291937690231394736042581705052817181007875876348913316007627524863536255927966777607639629331857450643557008954724818222211792117861080468281968813506965614125426651968858391543048219075919943046246153074897222492511111527812500203713249829333739333347211837768992233304250516966068612426351185646405657109775861861964452570388584104257177217408307556600140183675869517650413361669530415465083126965688021251820905142316053237269426287559174085742789178938061318517920810691901512161556614310722296795109879448031893512381712294363222302850066952663271167862333743248204165202433297788150138083111311325042135729543548338387669687000360589715814640232936902604719749140485093740126030781273909257283321295271520679581138606467671832838121674814504315787655537467519388348089849127591904968803904786327365798684380139570938565586856629303212413830813335953562448344026813524447627607663201917964528340654977573708326627703702787457732686378544180262878446652403612043737139349331444305196080675828149356626615292040436785127598700532691734376508221698071395178773836447941636762129280890055209899584771787056788204218041432446400458069012397931932871646294632104398810937937653621720724069997287253356712355494545700435576179073534197573488512571133594400654543436985453212598987776920343679298727457309861539957344207864436927238882773668746722330111838764050132644904628421153334236604801021446683252038691059342888394682112377501531053345753241968644738474768851965986472593618538681053842433064534418690334368790436792597972233859428888881496379325170920282813021464038491568621660819919286057023594663289378846333556421168331425252428763648641727526699375456560466343819797752255854216648686207771574974214786891989118220641042559679240186856862819611391256475223181039220198220405492987958581394552299173309229914689025101354684736712703603182967700594871327918886569045967221442010455825339747389665253693564299906225118533429553956273491609295084785032806411636519234876816800413633952260056351608354361906038045460538818562359413860004047003131253246582755694934025963245960899148471084718503466872991694640858082099020831220556336111706659515341881166093559525601784631937495253032450245781585610725982665195077192492295145837796749111642551539554980519727762698876802257583728093782826537950672106346662845426266367192263487364983717615017238942855630846940257400920574505822956153468820002897645786917737710357731290652628982507080531445693768159192576846511463277241720598187389771373008756954330397468084681404647973374534668769683171948261729704599044650436251087065980087480575041399504115498075826338331186406536474386576816562570433155821319744755508413573908170969561873982469589921047946545603646796342883219361466666510472105717214928343507225656972029224525392909620768147518342868218808398360552170086969270065985894726153234820748610386000635173261973031893743733348215553196605974528716667209794826727712073004281976787816120285889987486382847724935721549628862417567496502616815891526387844295577163595097392699980121455685660743894419762006728751083775970741083893639446366502634510129102054910524661490569475645620285129868064112838859720054238500515052993842866597722247511408096702649853688027646418100258700845985137086907713461637144018193926002701105598008824157371767656447987556414665166337254505822398622822159141653759654614607516437626336794550067132173664631219029187940931289261783934824565844180101845377644315737922459610527294552709576662191450509820537333219319717411742880882980176984089480701730755060686068563624780517836565326899178326142523247728417617431176656120704853864677543813516546633925643095022754502037143310082879642695972772956833477962700179740342859255824835498118267049972651071515403776787197477333004568373497602501801118883663615679753689263316418872644029644446325641702873314437251328157862339147784955730661729444875955555976014987136635319038319606020105395804734619170982107143549687184916147514723510516154354979721954840210593483519754827716589519588343264468005855311187827264320968264846245021095085810575801978737593389286542221721216582072749975253776627143813780917499584197419784238432813541131372567540020559570145602842961085637764853981100572508995361591328682395344995520296936028470531906423162844418604900254255148581799049580459102133202637656110785210752503770776142070947942113285446073095023072296023943688221756546027441014824153328096317514283718043479278408547801003859154144441499081215592090276062398795126152563521834334739877216986000523718967098011742909787925327233108943589646403256861789599107408751639412929448835693768943972789863272623321892610053099916673919645958533370914884698552368307084324339566876248406986532264099593039800511403888538971741586375079958570964348195916129664153409017171599619935127202825236002272367816115766512296392835405931263726348628244355627156557341126924319189756568558103218792868242593751527909043412380714738899457478979887799684954899235940888731935421685444268855701931638657300178886671468416903869575042076474313919886122167062437100385304226850138041938817470386562130463092966431480365146492190632091220742753583568901716150712095044349830491121850570534224009210211745202724660997495033314047148013083469954099572161914878081179639372208171266965393076383196376417579907705016408796469370376948041558198709383147173622014879649365544118323549377381551395817998917707454581435354436905683714460440402235370582986172218266536288868421704004416565784607889036973506956144388294087777755390069606255868948559825371755025668201703920598932755805888024824335290525315331744071299536751805309786606272958189382599069552121984448333033495431326112159405395769486427356759868781535755468547115022234906820019055800743218218297121996348038892294593335425594454888315725125055481494520090441902968060890333578138635500698889519021072286018384165004085638085876934644824304758351841492489482018596285788298934176397353710025116416639123898133075173253831876178329827982560279520712470977358015574996438057874212259700910274581338155481849446919446719308429055407369001743986653512037957732156234491139488502912491659870084404022338622251457126325125198290869609449701561682187086785993345722733795823629927591731845485137934869949713383856269688448618378670723620285371799726091759605547552968116329002629257451279395051489144637943584735138923878058141666827344127636620802779065763497627179087091211808982630828996639472758750335077857855808111360424564249651363152152927667892291005411698253799524733881974996457868535106844519847719688768181136448631242855692653951129838635719109303685238114712597396088870983155059037540350705843818138801736868222989388124497396172524119137828788131273286422795612409316609042782632821230756530766919359669587680788458587096798170941463971867719150006296968817070758156140042356407222312879997938560652073983716112834731015998436088564630425790869709331567652453571456252694413312446460548366309796469992585226127454327300650010827736277420210088138481009625093943522780868118947450248049924034863568636056634446473328904140140250185207756454701364126125983118123887583672588483236030357303906988483726726601975614658978444344138400085023445215864208672448858142021844275099182324893057125236465102411579747651224856518621479135609703384408678703961238189054516560811511556181268933457323694712608653275740942890753207580624130916065765942081444563374182156350132365998244431559294498347871913154868373758716388565524546061960617595811262925310495507414544972960737249702880251591475462494009801578587055226033737242758755182374909843965344218993650042212454461121493151195467076590359124790840345232023189459143909511681938432072468864370585462112224843648806112444301606238692544117417091622272119793281273411788162047469534463213154477867302651082319612979812206997043485782212312649424194934312504985370611798055311042422288039010903001006943526725140496856906137168302843964362590020113906215721500667638822484705540308858881093422588697700967596343537255375905588247829355568690264171049244490034292156597989585035531618338147415523351541488914226511734386342185979427667962154526654454647391227031438746723456563622184900287364824660700099315246991239331322687833891099880048770029183080809608899271891014938627841801016270153684142442411979742709480349231810102846205907619310430738478984372089686912118247418945742609261818904581243168038635870624648811716465371637270689536228391336294339643492155643148019362427341321352450918510780300512356299946997831677875501887264072577195021895495427208145505320344582230717597215989561110560720733170813237532866147450250938586375442393100018572212303416939411672071672243786554211879177691986278571912526641138303250299024025023538433200739227280446564403881519622574439795803366391800202683116167367833703823684382970484522907329290608210515584848770505458305721265106657706998294067585568049461682376611774408067064448302247320533878449239435590974410404182044675576573197914815064919170364695607923129645535169682647382570126211218402579715269762691859364356749060252840393637394326562674436082221521183976121949982178672828697715146728305075258140888213386990010175473166056080268258931867135242545798333851896643892726830169084598107603620775108511741839135915878419205234286071768377268192687987354300124340328363913351620730667818061214827572514582307235248889113401097900322020042908010266644581096661644872578947261936018156539036701974699472308081126126843866864438123491738444524240227546426499854462919019516042900153692049563720876972162217394208390329294428907952923259562010788421824109358009936954463166815690667415710789749031033050129119977528776464435534880422911604631337703826308918026713370406860723132367998980881131706396391978049165770941905376577207092692847084929380141611091123212361787487657122686255694605200000025163123185310179516751321494134159873014505188700434259787391409040941347393939860066155239573090592109105031040529027093202888748735262969582839643596443245849182998049898149098901981498202992240187749544588922333767312926482005406301845077233133393553366717028270265271053460490882897691875319122849191062808486055757341600475343107083478579930694732976118167829963031628819890672095032082983952167768331403202368495930746569037419783565397524049003369024200989357472724774437566177293870734628576014535267639629942213058418438621048534989344842621919268329877970312498806228640966835407758567338331090806192559587910548253100430608847881436477036432637102640469802970773835053317761521295825758574557029383481084881747815782701354977909123439471175511882653087866462551335622678313665046308317676164113591469806287932542038116691745822426926518808046480182592494711048824137478818526322626744277924349101584841268229595637305341336667278230139164526064497829362317981657465995844214903291552538589852583262112853964653290845659195661990447184497765214062023784254081253812501039461090095380107583193718389286816088325409445841261155137535897359922522446668310928243208387237915040293946701441575201486797814949716988942741042910778796446822678485204617202163718940674575560636369820219539927689742953515786583245174233447958297398574127256634985321394548578354015151333398364478771259866059594509755654039588408581848873426775927225096201581769566317316853502557948912506390348174768632011432572932128799945495375956440765458254500916189848918576383263305767650659192226545174649055562929947908892843381903455835410595727874514259308021649845410540934328930234858754898429729307237912126260018285473223938636663279444941849112240354872462805232144597110141637767772239817348918668247949968904816356802036730672993393406323103404994797459899828258626049286347491327969318002666109039111128016471956145991902809135690773710168342268896868120290526589365659369528257517376736029139753108038780580841122376797010427355198769393982689454301004909467076007608131782758169791639868208688844009369487167049868740467580779119489208346869844811116295174091736033225261542288380729023009909766304365835450617139408622265643398028925864442574472372525724909577266616382861100419352955121288425478364831109138937969444366221198398663787590294494899191065542654623759738331650360409510494910068251615804590453946310586805427432988791349949513487941039273853377962353459061303812419499188448453958376750906237387223952327038569771318020482664123082847752279929163750754621816066186886211885728230451046390938467287293281695131440613054903575875336667746666672285018880554656872741831631585865548997320022416404962584984055698689202370313803793566055133079265321934002190238952448014994328525935633506389491648418795609208427750698764606478312025118798553696937952304516292302287140746384501897428115165466491883552734296028849567347536068546922504157989383067975911644676063577075794307389892214427431368325145266597387097737841082650691170021761557308256967377218532340541700083109488883012763736839870201918633843673631124784949246537785860432661648314446762792803119531117526392877029110259670207139049657349892271643550964750565778478074008235392765388807121122809230101532065622374588403552346108789265603962467616258828447456546259342003147189777976420079899860456869730788579710389673160254758768783244242303656002455916609958002919889997824681304683673644621174564363839726429785145495596658007084064686849306147545458553147188111185639256679527259141332803523416974624266667065884235563821245145025445531409738442246053171445427296156216989500900735689041422308869628008021659212823020990544575983126881614830252362804499773084895523695688688903874616185721011706405341259386864606785924408513723676715013839449748113513346567530917777096004013939740315326460574928508585707890643213399149857988186211520990411525514671176431535133116010055834607296035980674729796975720674584978805850881438562179443053820877243110600078713647285921969032296352286445514921372647058777182851274847297147879659848289809638830706818834874815005205634772839288214209779446078201212249654948748418909351804479893574198264284823340125067950613038340493186717054619018727344061207964165605728179940878997158397698136077118410766319315172602876241971429552409995164994424292579959949554857148097230588177529308016541034880005292914222344347714172788198057099374436912823104887739435798983381259997685285031231969186700474779117776761468611147778316092443664566786634574966659574192189456762449571798654096977038508264196353790162542191789545251924276872021431650543661159306123010506322673153104928353827860841200980105951762250212940639901653777804758207723140508339026388947527912297115295698880298460836228490723407338234636477392962945131054123369975273645889230735827552264360037042096013828740224624209008777003375470649883522954781719013669625882299422458718955374419129395365213670636179995354147763567480476836926430404790950431451347323170484774236928713114520705353563754312623217450039567536948527384370773361830926302399540162143265613799986983832463323002417188552906423420951288533371305000263408003567985533056951922616970021552286828144723311153488654861444939740807884312145039219966194186288808408678144105713163538976653907930289051559418541712654852535578873214921076544130186183553508696470948268478828468104996886965301317120818408824492246828902049763200395848212881445936226755290639165879952366272588221220589399667874354185144731866848632527729708819236531386474955543016415294754011121172240470257274239408877215385358560893667922370906453495255105669628708611225474669803375471024337874114981649381694679474340354601527276028651632569493816760519037739565643325510311690853723739993644852110015430504882988526643167645276103078637508172234605932690398225583217818022601238878326855153927386144273884922962851655810204213292368663175043532940835109179561338147876238640889664476483385926689055097661474597051714533232106241130019443520364829208284914389847822816507686152929300034277030511532679515025663359531619877400248059165064381561142441033571402928520874782234553833521795831279899377506960092039273698801984655288173375064023786503822726128178573957407984608711555757658971371672970409956076828343753215604549837846422960886719949462755369927536091726197219272498251704394282105305331364786197343382565432428254761152314952980072610881240248378801992431046088543220514488446024508333075019192843505658081796022227862882192739253151864097249406678511903807102761762796414048650744763559455406132172339370699699892820037172316342531354896080250111940803975378025309897431228638202015252591591751420016018782475849623353211418211731943925111375189416577372914669672106006244389470178761516852864006670655365320311257932545173294693569023533125503410928023179869904305232455870074101071448059745892158022433565711222346888263981091307402834904983348018941002390717919936588552906993558364768128938555324341502544910666287220631493494725841911568106859381601245338703774395588407354063616555495247582527395629272345041053133819319127526094729541940719837313760358932437296460392187867143770165417730266993330906039275454134234078488944852417188115092084386723148179395402742337901535739486068022791782317107191913245859668618636205758567146670770255367938346721297349065676641705738116029767424445776112362387393564977776247153397091270923948933992281703019323604667184382047625506773513627056095105750178013581150503198842067259802496604895041731579943612237145152922074683719298497570775248387283249155621137637934367166846586750168414787981537562772770321837117121055225861887994503922722224285688624222859847409137244155721200357697319915193639028558510791896971881133096721195009161454791442970729455163764395854081392423140705854270371464871691804801589123884459329817753185847649519842766819508111576829339386441568274183825165783869198779204576953465320313382976054786049358353294449857000682083324811743753184389930345494663304846480353798962775003317852484588695826480919658069110555826888383614613146462279018642312838815438875383216358863264645670994394543856425161676782847538043887592381817634887724597543761032004560219198778007474115801569663159745090572864446514372096134618134011881506063327562634781288855886312340261766099446350284536569475179920952407877653414302168641377546691632899294778708490293118776323254670727470014643106798986915360004331976014404165929727156750198755798228236179616790917870553961000403007281195367586791862632717441587291142400131811728623366626364608464359007231620315928061808859472632089457764718788855832065657562655259714334209629311751108894963044733076005239928679328474189132926405536471812206379196093089881159168255117546466543191814681306026941666609120075138204258997196433464648960789387071881292910155166905396879257182822477232262984821528780102532536604031186927450913307506189660976373218193108987141558372676046467391060401381920254244258349194439683343064739460907731146681565072762208978176099907936220107061737414908639523580337034046599868017806822520737240618547146655472891883514170258128807156085654551222308392175371424867738795889315029237493276494757971547161514905106570225933605408997859724108505703181472698719648942040785661602807025920514753484863219562916485840899959667014308825163729390929102458781677864945619866696544141883630742452313164467305880424857979308994888286827005889265359606987659267457137257816079986047193142650904012185166415589019727239523694156098714092599458176914241811808685486102145057206154343167076248019659723313902346689450088894469129395473127198971937877672822060101235507304355622951494398112450071198957446523548511217799892981542483781804661402753608344308178496927803762725202490081401270543929354272621592562003490905040784324306927284826161411098508737415477986318936449824324033297464940471418293288392522995842356906266960744618642478709080737196935247891559347023772317611739855458862913969794575384797237426119196129460721287132568058022879008082111110739134166942416734771798449858122260360796652895036787705179370484568181811697941456080451571317864237629603071141737580202683463345554363407986080724190137081220271939393186018424648678658077592435661748216250502643919360875620469526141842281223723305167363014552515141095770685502623010924909631480541390140633571472462875670898540632015005575345889849713612855030947123151450705391637712098237222056395353349243517304574975195415715702537578787709364123947690965108324434500745086816152505803542840507907800540176675500987725232914206386249413615958289899143461020112277585587958452272267017390712675983074413539556501763618458162336258383665157463961809822959465763093803289521339251276635023728209491992118897057584595069921943385034755039576946152936553018032426214869521301764848415020701402406819224295392313566798293706554856896057462460975976553623479859441673588486767108287829207580606007870607364099859113276303514215338527566484433353942660466281018595437023070172940559119492334613211631053715477735705005083116468095323939870690170999502549540491496438815575936127796685337030719192336483776916813256209235338175967300527882509553503937685377836869629707708830825954059832160649571461907494961323613313685278892406515243632581937286928282353563834010625780880975952058175855828924758400760586804544069630233734613409037495127007800793897295740949669907506943311493734352761024471781518595850403416448390980323368536490792895422888521239220982939732949584445519434524480645354008151042197687098240702768543371816938868311456222067637789204386747906327860562128163227915680889598222943241850481629128795220284476426379085895968242175281726815604918833006649439042101497222661815738959469018410028773828484197050887679080445632096362525764451593223486141507801516114813104585929004515087751322914346959282687763100554727992654533399965664094736262603196358081068857132168355654888411686904188251728427449989831499974274575893153842321889973012546623387640047176404136050312394137084487768878036944894548380153102244670456527896004747868094943298984325534429743525652031858649193147868587506185127646770566442418569909164703950518180773492561225687022135248575656787966639080232209372036712317964107209947140178511239658817140641235571398128214327495690154219264617258446696549739872437185687637605460623917872038933811901769639368457272209901602204043426202175750348625326882927327113961253658974173615009566884604163773451683501594457601564368619783949365614472362558238273706293872754380929377408146000294889163245728034060980305574502949589515204165329087495973241800806071746026275433332396082966556593621866941589804813609176671800713698469215888932628338580424121277242253284809650754596279731456223037271159586656765423253233181416777335606561748388752150134983429428968018718215612194980086489488271302416025904715002114673384455403468311387411026410525858761809817854183644523739328790657912576456304755186425880824432116961940493732980572444723009384372434919072180650570345636965289238467523619526152667602066019948363421003779990155665443403013484260642690502307109173138921647589493467114149098986172241515165189221289161350595002013245593653715434346576280079411404678956696235190531444572200620170148927411869680774719419929163158088108473008672977219320768786343288608760798656442717982040630731955879939922085882000904855729609315615493176010594160733332317741087453622827756952879590394047708277477096115589153524759180254744213725702830186502802499994913666714964036983265744188521433831706480762930727014443969907067236590493378481457842198615831905818277559180679464974696165658677292657099757508693204033023018692468485916411146230835403045992669947819555708407919399679096193603887325064474240076934958520738429103364318459202333479173469456297948063309298066653680753879574875209582188842678885008838118888566548800093975408073103962386494215587373780755786837636711018941909237098196760898099182197136752779646854749626916191376830150128578823358011074271067525540893973176063201791858292310406132203759115969951679372424260692171708272456092334683817013562784946424579766802051554757314199172788845461384003039385833472058173205766339054142791160557473087289157390179735838009892390771635691644709492118533874414663886346004174452732671323244662239932037078239155215458489190435224034965449800370515348554463014998272729110717120169855812338970590926142359396352857517485589309783719915712435329303682875995904634547964661239882974723058003633522930982342717726534948319809491414448268208624910071444750702655889892617840433828651528682589405717622175515947197284440657898646459592804088067928988143207745304192187438456614492839545077008347257461936214533206967597168887338745940133265268837968563940248914737621433564262369948954387830151372760108968377215633677325207614988304836315572160065765457141963272825266734308758746751161761191846671118186368369074042225139772547529838022656255196514515455771645497030492886496400877627723305226377955298059981373542422865289819594768760868766339834407904135707192635794703600212188438568095839598999448976708864514366252542451503514626800635618445614865332969545167694466061084103976415552489283822892872059597063448796084566327533495732203367344997317013393323877074650976674166272590101086860741246291397366156036014032684229485085470511739488155277264920692897380225506885487423374302452930418736093600313631501772759143377869063258858502071152704471125252359353064144330369874971863312099531332022116278290540190675904835922244031834594794243139680997141087870174404828743168462332118004161468775744856236745217283415780481398095278254819004376116796890690497137284633127727895711439381642274282528804510900701709500985679762939667513643954543127763508110533027211489564984312440748740576549655325756130582830878466984320336192069960804506276062128716974065564982430821366797788999972017947666363784102183502034727729218524233005339180307695489896362598311664922049183180882274740680376258632076293805017116433791472617514726783851974674921717463068206141887352752700184160956774618124449477728864094365576174299711566862098952276393270107278486648071627301279249868422241211109106582442501466599531094677597691417872843301712509290060651796219072258388605604316319826976085667234809892078821584366755014078281995086011990182818446078288239583327307264642187521515840720306700100633525906120491545437803235601494011861490682468738953487630850422680534706877951248763289625538953057960606687197183496068319799146962188533626980185297963743280529222860197901564390065647266481312652255098343473587476045343413215918552803949590611399161889894768354488568261964377182023730447022577543503516723250080990224620787088433308402006193778003541833714804831606915341786425948564215546305833560754172192132632422850485181549543502204057644712689894587435516582154039352886203651507898107989162004963224774263444370389310333287940213851382041745310162885576960743686273294994072660815159056156947084248998319356851204710914647688650581950651636146590938527462899743952907862958408611671678069720907556919117376531356035847000467423715510097597453596241531230990697107776962447902640685542547640795956954198309636191044383597303631254053391671095661576020332204064383910802933185515115676441004103920331818298941809345972654166454352928431523947693370691062052807192427691610241061366452027818348833763222125777874616515341535370375586880049023545541787295149367389236910182153501697380441018620424614313678720915795820270604135180942642134945172104798105408271297039973188740278713612137412223638962080318042423550758991850082175159663748724362000659141141861637539694842640387241600490650429257259704736030934261254167736774588416957402732723600819816783997572803181830061201364040735863769564757319928118791535628469183973147995281277214211771032000452540896646779013107934433717848457430392737366252289165161687591831055876813275256793896349281218596484257096624329461513693477818006035478098400616748682365579815207381972838347699507469595914676022154714537050054084956486539091250895719442124594989880023638079136539222642351855222767178228569301192233703840088524973109543107653581904692971976411026996723378335723255474155194704222393654001712306787307184051365187994937462921830182830139002663588421150090302136541530814929147210995871127516256814186245278381562728008495926905511330421759344228370653059235344768624241353404686407735812538726464985047162384432533865036282289337363058794627250201630373678228539199194494038647425722221335556657878586203256837760330097270392637780107203864893206812893103385267724001296759815698911588941333317682834995700018438962007120234888094327252652953439436028001686856881646022758658316880429164570644548171108375972485205465139943130348555144377286475799168964960016041373469986785974669221804991084662304153785903346672566047183265651428683448813963388722664884845998081140335231001791382183367047406587861693222364096414409927575448177956753757042381306131647884223354726066970912498682132129304893319551836199559722283394276604865030731500958954624880628983061554964389468140570662032335836359672104308269997023160323380888481638536642252574971997596652997640101273917605594837547950169681937325769277023892625419766644436605733360018656811580687506909074239321473733196724274283247188827856983468442080035115334642096793197041939243946692208380506176242871418335014984863750139363748441138270089112831976541264813900463617033314269343263526667745085163091257395882785952190063629637655236798760777008131013307887587558120304627053147081647154935557888578250138390615451050329834638105118681732803559793321814385799535363358530885878398237931266706932680947752244331356265100214186360570926323628055953353469468282248557695180750791795071431028020752930507729834275384462382635712701147840901683833440621621496215044793377076001547532537905702398194202660993017662831433687291762113613061559129947964849311269825135132556127633636070159569429171818921449309287065107376363906247344999558930813602672686858935861260974264601980470574705001110727329700865918876624616790048121767396866657133446359245243443715975715560197445569484138672701277859626370785982277454359779733915883225062805405255961039813631982516370113382429454085011366992684674418517100032980186473933591678761968096169883295577667413016915493854994708807306082986565136435900074899798249001434256390539308245466509724282508520339425563110361294785645573432606482557376834042989477339889247679502484268661092290566195393566048362030696644275775825552423343233954953767958571410272996825925636219195010286279744136513931304833183058236173667056856016426764673140661653442229800949783618872471431381108734650916690523371802858664626179015079103565690934751362854993102641557993227171537971313698831413442715144677812486041018266859570920326352391206129507701006605795245756385290116105217557728773954004983019212043854521351163668508272208794250793540067725894494069408876507176068260660732347808430005538552743072602002275547290515516272648192252083011025583741803245895629415429574787384449593264331282851699412603160406552211141391886185010065134183733825960712752320296893270467608883363062395272171317641441563609880593617607884076107216504941724076363296136677058776020100609563283008822396025051681305967185036949364129829213906548194050909508942360522513214008732582782332832060537097923983577485097661694002628497233488688319310332775499975946906627222626511377947057322722146155138900290917964200219874506442720071845754817061179336019999929926794440425384080809220389136276396858956179064906594332665358165159647775692389667745414202932540767230460131052288398917019321328406220437191661243099768682179606692300032452602204723719859978271905839365383011443907042482110789296573419496797777197350934157744455568350021454883139298186032484380482204122117501853948310711054128437609858751773277751611036978999000241394931623532286406924233946221325038888146401896594761225290347750272025555332826993291011666291837883573964062587048363883304666904083142694820079991993308832194474601186524149485913569523075598313512471452188356687764654651590676781313501598424731195747730867973618658342418554117706285889302520473504140059056841722502231650405570703804077871310393594696297421711412080283907332614928533491055099887481410319263144777214869646738783874236999878753900444889699633769120669393494733552188402297664511597386112168114810402118255924369122763499312106070586417472227491367844359118447931171596240141392266005235265415917643739032755896080210327762343463016829190368585262898693467639895272326512666366516780095759752700187248651010518360170370771871331837002580463957166265549709130545574828251696847340624182335655134411655851997638987770538009512232995967615308335467490842256962090414571790779661834074122329708862010967494821684144705873736639541954112889926600515551096821810279228677801156796154404594202114421650294222640376041827565217136688596126718747421119009355057440102049666965655711884405177003145982824470547529949144234422775264267626549715812719247785418421102432169485338071467751629543052501053755625055613437447187889817776512755491589261282002832382422354051268248417585744180614145538071707498001626371257990230408249165870429579426684270535435658241246342119773417800760546569979392490546673270075204616176160434228390214566552806635155695872708221266519175598603458469614804853117469286696176105247510736575513235690097204602242028207006889105091659381408723981380660436079024927980001054709958430000198060659133374644478393330101429882696958829441169170541631910077656549882532892875760535714578749145646223880869328620984464629619648401948706304177929815411590955370191945629478911374613736801081831614866134216360306901124875610944225668052715070297749341495671906440867871087113260412342781169577910579058709458705255362429849505538078279778098197924456843625307140226696833149934650955577692876379188191939226999475747201481068363867140208944623967305521033009649068762940933397821541378167306024921036747648587184822554806268230552227406877612405414564421849702671130643934208766951250660574388793372194138196973014943545898068716870668864966452137428304930645357214190331365768122159562366934957338059826243975800870357070534844197985388581262478654603071977994351189332144471190195045425840129809983612660768172891802787345422809251826393665324726173757760871481585686097166127389819845726971008977589496954100415861516983676934766554082435764632792638726532664105640135661653462722380226186240578184554180036889400182662242478221434846821135302403137114739455817127214028520059739568508871311589046393701664600842905922731078925495845695471923293816686222156197319140729822799502892502578185979533031067870060678204638110310057517094655421547109618889054685600100679079449600564134491966861752738013563241651091388586913280334558195447442389038259922565459199958195225136336109654134938113535262645949788913326303502258344899671678282345878986784174275032607964238084468995197077994845987929250620887623540246609113594772216526772912891661093641136846304984847620374164832226309473359077111104946639791676393172467282849520431332333929260653876057634524383098409623015459306421980276576497005002698220812024225451331665170451298563635975176278632077342301307545821128701576448059262991773650347560439687028145748919002654314472167830282260201878255598924238389477741130992895129016975048850215763655113452742567143509666789347133516376393541559963358518335752822504346390682233738620453453470464683054365426496447558419724710807312770823231100399783395594780736203749463169056646763318562062446440539586824200642441535454897380717395186785909573963198051511965235992831844270818799100219485674548139086466557620607803144099457449108579664393512559021132713714116444556836940812031694531729858950712776634930835183763326075695784628272067041020576717200740683736561280023546828941528572882066267935424766601339359159577324221749332097319913873346803163766839647809594839948974369643840203269278244920969981056974042291017182258896045034609733399800167142125462510915703733868050852918473736019930012580233375830349130059930952737870045148198532017508469800901165138548231340806526585080280571173597392763875072747416526903108939035410257529141293551485287145169304538517735404903966400897152775744288007901159185237907759021315659170606113339633737965534110882298951663495866549940195944204275219453164475519735240897483155087683491382720108299732271755479252077846679545737665638594160544812476501707457204872002238115122181001068453273795375796314133222817993265287592301079250010812999993437665168077362187507650814038967504532169028494704839186590815895436822873075632952894097516525570735993539739731787697702906010243601129970183605529840927795751263699666927657263183042644817852992240589938895193910158736747625221944408853479359583018742933869697353284383218791557653499254354167560568073301518398449591277460314002500433325543636393205397219819286333954902469804290546448179754848631151646526198233098214978620683829291871026100321065018377221040038311860147203049554118143232174281662356747748935311559490270636498501969167470338354296550766369658173284079637611114471653574719354185676283475364700350599460584300911367344844222383565571716802663717668364013998892942711649174551224844592334738076706326527488560954573381241345628530490221536565903372352951179923103685410319124264655183661971479766280242544659769513438802851114629059456016334202199055166829378302528532044574181891156508544259788362452575606537964019995603961550282254391610410358725305114566548187627567953875558038093518364103104413880215016592531520308727057103333703782452607110090687382497168715530281385016168886018499432920867531817760951794047442619939813337895594289110571871784324467045048759341922052983363501690127031823354598323908228894178274607124055004661046454814165034183027402905776066078905122421788694589069030517841502670217951903322118517875368820017271134261162325008821611010735856450620911464063140634102892551408832399411730176287496994364310602037465884925967633458613087245316383904120092632307845756271041575650455098578575433354799002888297171817556707688078214670380022488302076749350443754983343064779108492062247096790665531344124803530895384287407192478559397663130818025652847811988323410635165445101584801547170014612010827056200493130801323139506447304256707008474287001530586634891226555642868765962444345373467924952082643018828098594187339051764260085112927961514407457049392237287370348650313913073868846221837582652975367321273926792956981538576242005126016603253953759112966827931328752466788570368581280463507808327178585854676119172591730218418051605447603706736850708227496145914403400730308019619243343069168283102101697798130293135336133581394226657751395916933963164293916033740470998170032133339421240359925805955582141141652300051255369851747921862235877499954034828153063300765458314877649432958125553280776349387296529964042678748057967170335995567901217641117706291943191030056170000235685714279378017707036068676864740069612761053088034455446752910622002123468595076673153134153731286849847135157124411967822876649643607655222370417041965454654734924777833990664932903495207262601543138985177600397734675876612952307913044031660837306816336956738762287641039767321785926728886327023644586207314653005594816364840943743456138480861695694050668155449013053438589990282809046268146157996567157555344098473488192185543049427961430218823943295409508115631284820335426312270264786964256092728814080236424346232943595126547451615854814374477114239686779056864456583516120975715590005781951854025555972947482554419673866266196985865251113810205365228977211502643039032988437722865480515448374864117549063377709158239544792787292425058951077798282591174468741037033010360544585876488817372075440476100383530213705778652129856891265655958294562785682200325330051875238337050501894302728481203260667347485180052947599879698676613981168270553490318529168914571305789808199338233456763621793167700101208654794907550625859721610848360173201662119592509881051643721893433258477062220636943284874742715150485648125101504608026228380868200084006180056620114039448114489547173897733087981303032189282164831802996510397147386636204043262784182917247874678829563630991471566226959802723523292866926647242031107299032532788532065351426593170155827404627268083630739147026075725684609039647324658551298924803424975628397449973882506113175722083628162495706713845791065011841617710620294556020870896830046955382012267440430532709152306158950848420344616276346835253745398892738570904412238229284820583822028981519545405619013569801620145650965857377974894111343256673770530666258688763885515128053575142180970916600121253075399358302183979300427726871572034348076932568716606889062311226845981031161977455274054472205776969307303850035494188673964623069447749911608350231362081841431042323799977400755802309385612234237241878311313991413879243329613081675742300308649476395377986871272731752464323625154291758443737344465870012067381191673078554156467731519265165765177382863904393487858753360776503053388354119323812935686848344943709044840432652271803000116288714348589202050979485795653007912530954892002716283504934197077725835273787338112140506855081338942446835988069384878420245032377895582516911706560824534108143971179716621028006934878119548188009161127912421388096131703791972735283445473537442589383034610482699281760290788916888039746705986183634231832140978162411093007060051569171250529129794407869250307528660037846705720255262216643909495417347413256895500547539255408013192375940533876990407700263600211875304825139837126768213179850556793469065655687950474404694273541593783538979602679005656626319417150208129665730690759969656253842658058434697499545846067791579101588581908009491197729852623794634318320469873230271102684060207753822126063137737651315714396125374347127464161907339009598890641524386485459016579737280417741188627335673658551882426160396172840451053649685990924015228801495249174347545804844752546543637432121655338602476903540750156168763032668506837197177245918544849858105987858984240552719960976221286692662075873318404258202498886940033204246129816332442924029441160891015427025663163959371585206365974840824468107918246900602930948571788051377237454081774177592862415607913420262398870713554145768582078969382501709345840707495800972545749429649941247683020392451530777933825191535362608543137484623516749057483015323965006869337164122462458229482832123728499368328578094821699755061576458347786921116361269790305212828614566660295084710821431560527258368434849301447449799460635941916577727009951563522479366121032598491862015043752390697520623142735352688540321000941070005896325790323545789515527691616783359271418487812044009513382997574874946264322509097688949103553343167369765992403569537168200578098663718148841760344338749528203519536395507414461019841860557026123269879227211185226717125229640673676573294145839364072317588174782817097417924585087754065460495328790969080129648821006635563676455787865946373372202966858203983606508586619881385201365096078533098675561391096351601019485580825176264665380198601132427701083608897455072284593742253734614343507692674806390776053948601011526910734065055192629654078868838986605860485459049649428168994587182210323728388832308505811896472928616011134102045824365136934082013376575440048687212840869436982444288874126925848611082864845092218562403192003225798989340460700172104272750182803143816616168355033531973445812891342719752197586919743278725137763241968120148190223872696596576898641230407258366626686641797807914459402644621545063205863418354151182082294285486206819182215717801435623815456698059500643479444023760207708762302387795442150708588768273662644160626877815710290670479982392172955899402594317665619372337937383099853672594281706229183160582268116520363876418619107551851951444625152026784635974909511252778557293328643896371691310033531463598543884230734663130522025094493973209195907123461976908613136544163911773088806161269354676327358563205640819110846967350389584753773973305064451371816019423550804425193933505114993940255916658315276793319721845655141770848555640199597936008114340974965205532276716903335781883369551332046082246797139126693061291800143430786274554441514143076843425054633237288651193123687418161804326224924315529994580154147953706775987547258812419950859172155057218471894877167418089093387141088189654339844781348192374951387445537271527920285669328724067986857384056502852737770607091135985215714052784568836171949078772038464648753024583447662650302509687415181094441449302860803073537084859085503426044292538447629960339719935634684594291937398600508423071333473788500549792871356037001320991039547719451865532686458894743475173952776730014388621958532922481327681777255321139714490832239098425121273237907667766591150004488550790034991694919220603056924177538827782783535241237576549427682288782698097932548897579886706704652481470715736368599706313144943029698467981452382653597234633929400103380125538964907870050901429763676006829725454290342747210997571275397459791656586558230195234888386397973813621940006804957133488951296553450600043381524487960069270443384819002176803949756194120878782650367108193557267718950624914652496865597409554352509905698801686413315470580091799410776223389944416170131168990932176449812282722245287250621026909094736615854428514184761571039309734173291824493398299575791024147976546364657255445441658925801468032401843959520477334983244852530518605519484840617056365391349807073479117726707712634079696093599480576505596339788577393403639249898098882964746300307694919686238309183624375580124596115143517339625547868112069801150566061541501564709599713028762221122590320451610188818203968286910466686233257257669982250879844446339301242363510694346986257040094595669574108473342203946459174160473153900148923937472283728435093854035506417088683022104146729589672215022913444711432649115051380916118096688435745366597114039368546555221716242689653962906120318009232066202057191560494983723332723764802941897921288025037604457840973279639319968756373226328690554309772237717741886905408688455029596330014327109949395816760516330917179992672524664700914089825214744684589401651977115606016011776920868774935573738204560834779386370613263119598782398748018110414667952203316707329835770088513854040781899644912741882121301340162149135901423582087456640938753634500079903660480415362331836745470852405329595356814720921864086139037111208294674735077819953517367135486793527501260005717087590559978155225899628956689961610888684165496304595000787908929434578720421612000687501534305631078858497143619105885031562772337708879942876093835373479677377470364522283103616012411042379343561971028360370768564980780218976621278545238491293805826347423226957898503393472858138602715136701516762683488465689660355375660466437148494827379458290315136860901251639535843234845019082840231308782080501728663605782942530744702011769116213340475122556426053041127710719909878082604425941625682095107636539288177730196971929770165954403212579968055036992720199344661721348286095412934271255154246855676482147988887418613142711826815393617339670110160275844272673239391945807835371771763172620452628567574285157999597776005466903072587784175505547055696038328784080911522030970361828217304233389512999320481476851245579822482734217915887390417647833971063254604969744348365785292938590987826182308630447577768639524900690807768701751874602869064338073762092615283253424948255976364975978848254442541420173069343393009777509951325610096771685722781661627911713290679102989922966515593285123921068803065144042880771691333259369697280854110131488132341365275800031917597558974741704234441504179805812522867280758435980916050613658166186768558182148860795982285986753134819838742671250673959116282844537962710367394189557427373621716989436841139051300927576398613027511027768320414514194457585890883814439676460193843275000286963938875243421090200904100086680003967132440870339285037045872491651245902797945944916565989211286327102861129519141060412309192731779030319597361622291311091565240950148351880608746635773672844499411435098405242759506265879370878305673939263007668074097798760346246091764155198683560848059173476441052118179206340337083841006463239016862137659467004480638448129136796969950164995199746123154140682567291408713236080375184850441337325099347428736365530137586941423377567687695829115532215233273213086912458095018566760101012052247196485926749093777248368691730108328086906168757892987709340238252298996231263939157556228458557740757889857381691086983865465396283997726660401470594230504830388330418253280502436495638848011955950780616669695293300698249869341842357422912545234824036014201668290849335965696090374380224226654781122882176420231845903255120088118848601263785004377530637797273612916948960391373551056126294289395309961558331244956661581802507055144042236908902457864345440070717702909463587268649284185540747102522498304188460110274506884650169579198695760085170933296239258510787467560676570880000709767466830466861102195515196314506104036349278730074175407029262692003785371672746299901908059910502228373371539094494227896832817674108244734994783243393106198566892942438406291960796738807401064725153167220549499899272027946496629948899159832209937743730032425269308459570154675612474218671093096152284960723247014508154054856510318091104272618475865428768121410311024866530317227417265439489877054754651342846275915666850139540936811074477859214696514688575968183430287461826423639102781037349158605898301752198953234164770345262094147594312276807292672753191972751651541516163286089794267276792306442025591430005630992375076357835966752362170557924539580273777842343548600340867261520649657831915287936495744410342415223595572316626658201528986551139787666996238512383917983628685430911007733176541199852783471837142880858575731606292735699119588396773080056309035223793344442750653600783217018543343752609646708809094726998774316370958554334867339925365348588379308854118043096894416788641360233732372513261441354832287095288165573892262605357721202772156402457008631596000442360125201217870552387454291132023058059790649447076608428372884385706807729654682940532888493139758815981928107138327260045032923924394954133359268210938209705665871600863500377675103956337394564456009628445527718637999910333510698635744808531035349171099252608443341754550974408033280680345266213384790500242823106578770887505252218104371443071946275689804720204881058953392213338699057745727909678056105993354176385718488913809655028219188173251915239526701048642541239636625689643005194945339189624117129395074734808421974902856336405494823497652626593329934691672022337558349649456256261976780964508440663742256715884292752441479731074745451386082492909554003257941014150043947251399191592173885876608657605367129499000543581508803843964042015740332648717118708743924263241408620004167781779797844562205497256326143030894537554936386069365386105037182582305892454797790359581207693834825809730862807067145170452475088138666081341254268301424531248619747170009425101774654336705101130524833565327658034999867213754336570357041096428751072593551477273470725627968787420838097613759940643496270148405189892649345824218776067938557933389362407449912437858299597971889996654365038240213972300524918110812708768025887184893118011985635598272992150237063650963011444011465181774655621901561363012884700142936992534862573516512001979047952396324083366831544680432428514334129264570203975620057707039989719742008455307399971597284764104292161281662941860537691402187810818079422009112671304402458027307765123996806198195502222827790224785397296088756511603682762340979078201664622221813419207859785180012962039628502044115302309195252330906822538250642901556516782926637613973184789894878174277946750103016090494714487593019292494708780348115774010571187015552333287118062623051587629464112616626822060863932397447234998413264063207603239449428721028807307899067774565765207546712934873025823949500145723118799083698828787274427879953929968545896655368075136329483842164125375361389264383276441381256985351750224568223719926042949242644570027291628561833250805270823021901593929308740425483233344253055214249908288494266104787115109110800017102313730478786803363026396132323294866510129800943863314007842705331374866410499612859378945754411342230556272620453470991708576698100263109055134450228074146046812858852746158216661686846144975886826830893951224295622842165206509770353591958884971296758138902994059348966724093262380183126072580582610384602769741346545147384153638139721081822097884442446283311207631604760470852412515817460530456129143861897283996244201656575199962538486126288800893114391433997814100991072124035938819448334864983645791939672767099473389906685527821211148412680186376263459068706934623124461188709240184381278124382970394115472179912563840496924124538116027197189860164569757873141800880637271073592558499063007045376339163912023771453578599649261831948291861944127870872992807554860278918732057752630323059537007826744934187670545907943210947856697636016712920953356345304006469748447450758891750220201610573527656679401307386221411937933635253603339015688334921812110835652464376897480535481633653421843272279499367011489154727197200270737269525616789555971871135578751565705750558941384563310601935487894214224031687194936127012512898583533217126957357556860250481935464590215052953172255035758899876730135878667785051272900923253856448940526934782402737091141960662800461013922571337451592088334657828028365537739092636517987926672428203639365527929486135580158817167951298785820243421904957455846755282735085850967647601984458185237612302215705272084558687803061495402117284197272132296720740046470584534142332406869631893295089914264760616660425377416115177397980738538279672684668558106906564333855330565338455205119829123398196691054896284310670534682370713311353475557708613036248391164740606872172686916105382127064040395062393249489935079625158525942187683019472709030064328327967778377753135671434911826735192774188044410244115981700973203539025759818395523252289459740380410487042843846640914191050892540192648440531649592315635934110834161944325432975363858489536142038329298247759304176753871153484905027904434313688399381174922147986805530956089498098304421984477269682831087960042803652427560279311108352771214993672350691428646908969088689930341794122608117165694590270120413214416858759758281834032353286972331758091872715399170211525780094159116035059906316822864402680309312759506190291618579042151202395003468901773799733651954914572442597245854237988935391396447059336738984192230759991901631882363003170600198583952387224943067345455355062809036542391318407109629756460988114773768080849749159270500881228246168803600628374654951508407406873224230900515428244767166097050725796161061995549257024353084162387592807201502803942160828146809128646730065961668776476827297764664423932087805877189991472698865375803493333105999863521034251376858550850372789794002502698308480215145200544775125017655943343814670366909002991699055900213021360242266867084135160840487649621422952172060231703420657163816597229397192080296505867973859505199026463600623686094083326788501316875653557353106525374604390953265369127063571484635540848531125778942071808216739484099842590442249738490260347755117770293485245294702125077816848145904586697422148323452449021064742992679982255890564426230093217011211413331095811543565378082366977366108154753876750482231636818020152558418069980975250529123384542801138046686018597914489006825640531975560810234649122678649831111341300674008689352435616194011427955055768878996290815177231928388052047002241387300040446904225786393631518051949534625213221605775497924963534661529235531266097511059545842572154582226564276221694145915886605088748520499944239349680678265615233329757407839251199412806208724558883785020960046724315621634791110748003379387995988934188171704993820839166844660803216588110673248964698754967351779837778069436343725304310275499583718010609442422785268028037325124627624705762830439583427386412335802782465481453116221890918756511033613818750005281583919717143386932059024628132990420182438766907862982748871024717514671639175907510591769419478011951859078547764621782111846780268502495998425408606462750316524882627625646658524116858382840137200145728155986367197943268424486940365943014917311000920966761637814304863722838717794945499071750765935111306497868948019487246880732619174671328054195619089321458974587271394857639184160070926155493926456833717085856404313381232135039846468223577703793165628217028940392876219599830693465356899029868892006261864948505880636324154878927453128054503894094067735399529129217308866388702177899045036078871655080369674947545037621774770997006551763650335075480870815225999673652294383136896232536137051217614426179600185673536773426023793833157552443154476130871627001489256437460284232885848852662030266626256810570333613603893937638332260412268933375807026366975113174102117672376561118136348118516879275717767045941129089708371352505537683900802336189604021091476873882072241890823994934268745815809598655431185486809848921889446305608963610217969393128108688675238051581024816191331045440242247878596472494538371109377124614125462137119041505618497616538704097580423730323908910085715030010018497223067654434438067405189881771332866536291671597677858163480088563251693107411876975765988162667009456384433017297887090296455508405708085365736544436105767000038868632781100002394860965792924387649462566893551541835300453979327409549836636416329668300815199963550212713307302014978561571969170401553221638799076997152700166918202523995014096277998479363848535892567489597122024073919901117687650627939944806609811634935389183673961192408200994048233667680110075014269903345264432461919098390672968621154782127844112024383242982666140645105925121422982472062612116434139551656613456154873167184743673293474963311984509877106412331479038540791734864070095702099333086237847008076845800979430864534588232698215398568382520644873570895610952586553757556021660610010845034182707184215116683706859957195156000173058699236253347112151797671698104419619171760574062059399124344459955426421442999702304354772619777912925829926915964765700175040477147353644471704877285259241219702249706501977942320880446963202050210231130599935982171296314485327916174568060504989608313921042535504669845870920214300948323272086667255358494167100970325863811156450913093968710287359120183930495968465363012101817169231540350742617263539567301848729740144462625278261416631839579423795829845293591783221399148953203394327380841483111855653714177647054945947283645336310806966508363835397240417398113225997862923090968439934598323102650413819195767254093077618204469039534784915503973709636669643389914281198333752237752041355813162964250700627250164959537735114751675402582612757985370176772946097880395657520919468373440375129148441671662561212086034739503427725119871799605256421543039923744403687173138212733111256701825326679245058976461906891233318584754444140712332072304882085655080594365419725580002149066362049393559413308304118696383474503012699882356675727559601119685417466488976371693809326359352329847496012453836022669502291254240469887619708172600802627582913674575367131915117005170471960510095087677840821631777040536857734524842737227125502838710248380237177741576036315496238519207324040045412562601797165909193193942961350994969305641958911658253970721463218635292959238335415425781027162625184253989499249791939764564892015546780476372133845473034897523541175592618697136361615920792029656624661153523829224502509822718601642574961946281665912240068023650778269359289796855240148248391631258078193550550731275499559113789299609639512571072643717169070406179260162348872375965134800725663785830370322841129810537942784740134991968179949326194217012524174793593473650339437553992658560432268308656564300623492801999654651205414743665722157694960532680458739805024861459115093869364042370868937046781036261214961233963494660178751613199695486317805576922821567062360783174488600059245814649195187186289501357122405086876525220611201020922605769772354415408401535960353241303373595735625063213906011715695176371541498996325181651879338050733677652079500919723002361540174634966590691492138541335520930136347622642374912694027470385836542153856254854032367871050445127113043726192020263186664566893693580639622902060620003290968383381646836639152432218911354985236755900184987423312235977999871357488133978899246875401111347253337565766415022206946462137184457582984658632169600066556724689359697077480586514627491154517236011778155259328081371768359955394644059549203403295290498914922522539708220337455734866772095744895024336864963904345389215233030091294325718144399385742696394039223743127934074557679419880409018386075596349854976124981665902325656790385482440623076659650980363959685211357190710474718027834857982691411596658806515015275832988921052020714636761425203539124397631045022094758109683727056594317836780808086411316412430712279040164197825061756313843174463294380093692529290784073599181424953727597371768452861396808352707103271362351891540371448229321350779334770756226752354355445580449363242354029592003821886942173547354014053115779841209981954287940958139470713412975205121199722243784515729395064555116420905906250498089774519329658311755310624409134920293725965161415799749370396879647735812600613464125946524998502605916664830611262354189841187178370204711166335570883427958758496835441328554229010579390580790004845782505308875351562686394848766672268706123036610893813436195645452796262846006899354321691186228696114183866919117231279046353782843098428913835819057570614177929772147200189166172957276233250849548346437070283069573510614822611448366467252796873929020010708222137702599595333537585879352807097829419885310900238143870826554161667599868863104722596586610664801364275694991492056161973686140579618343032300100965148401909902445294237114379904218324793289953046360959133893974402170976283118362934914381662377023507125153490811965136079400725046223849461736712047528699896429305954005510932036670862891250627363045342633078562461100482348613275549487389760229292481162323680817350100233419953488081900068178642064376406154976654391207643756050314504159921524138771984799311112048253646645020087156385620505306486016033198839437913525482355641561628853488006450243750412757742398223515084740137545223461805258276394597165736461230279227411492041399629849580446308211187033838578196700141758982965365730501563431923411760198260255674905921254345938536251622150486708923871287267706171816095624233242599722567273656553651382431977555009455945834329029316259622236890342374620546620765661963107383134788310465595633532159230499302038598085396886480048649503384766435180277232305413023068726108519802498354268716261948459597830047926653475907383447335505713822539539550027682259356030584332331341542544157819062629521046403760364046428869834460056548287139961904667304691406899949971353655292741753987008885123797875681661250123826420668560321810969534502180737473172944723882524962167303363354871332106093071178886686075752901042558388901906889512296320722536434149066171839709722229027867676929503423747238604317797230217214033381212897247977785396596375287124093619018742934892502775816325010720044592540176336959917911129622536105210103817178555419799216910373007248753257169649862837796842809263547078034278955929905379818033257221025898374220283033954123985974241404092200810384764542250389791044713190574243960255113225369313037643342683605984089049366774654010443201439652300737887323001356657643967522141037831284815374073894584866245368733695379413609857800725571200173784114697035458231995895063826644252206391310814021234616649646357332699498677323431157980369682064354511363436847545473867240505837588726058881538146594410189981663652069475153170982531678554305057900850049891187680071050469724192966479653950287979536090259725210494491991245630846477757175070072375736134367074164217837189692589015621889467789081887556750728652308856685074052436347973714546010871556968086401608858660769892972107601391371190494798650061880559455287730009488849613536679766642151970272038198614617938263000681760253164654386787658282300289209435762928808884827881853963728988919122181578355909594087936353196045035390858532411120428200685165121432670401085025424702354966785273401576558131301297213582223832292406455585179846688833539779446463073243331362294852342359161146897394688996869465801697858312267338529847470600786671315893617043253614370190627594911063673919386373411718246385107958972188223186885370962707834950002515828813133059053544022737690525026186531769252506444369503080924686966641973172788048543226371047722052770350841403580270374779061062433459799750014284434532408303049736682943908762904420649793279145590216596069523567722697117554738895663322215074548557255403102820277587710198275509099283177577988663019919260866387082825038768936347887507425457061588112650715447498457102606307357385944559981148664160536668969272705667714864699547379767531800632716081575125508376985371513026034130525760345856901721581272583405958160071534811062543771933301780060157448128977207268582053004092885684946047057638939069570318195606612808187108790547295091405249837212699925551613984489292217929830921384468153137176253537965234571087509049062872625824299645512922132962192926263092923335185069076427931707931269394909720943673405055441427509189490259626837572238702553566511134170626273042053640316885388686458006335984626772953614612197181506170243300698563620624669787650819049460396100588366515163211295240256981119385401026611719180933190860559497023211813774052279471937687548145844670283774406168164523354952948944307995245730681883863107981486560646543687904330374000957212580600948718911788840943751436997391533160632497695139840448687751597405668630977122418808350880719116880300889086135519500985368308746708971791288112220652920840297648025723472671578155591307007694197085207028509572513672808428175140883987903276901306561868817365069158563181185226907851513843904563371965675381172590644393805768818199133158590067841136632216799140858113649877301612349497886580129968734138983275257116352712880415471806957792808661033689525717487268005935048408022107478767470835751214429635478600150215563421092165025110500316142949084061754745229159607254481072303926239244028430449413089609221137199856661824870042724561463578504565690371153278085659790845089793755449430890088843029966266099010918078597941082141431668660969694787286556492333836300739499105643013848322944769024184300158189790188107718119551791477630627973249054749493517371573701231222519665925132545127773278993996187517419854172343846104910017496866360334428291403352312751632250652627143003160261289470841927113403793301378053631443894380760135157647063356160051369005527791510877125992057843613225994956212959140454177548726098680435881562545979413717756176290748414535540437268131588720831952993710584336734218758468721440135110383552610804129267937824516301656900924524703022826857562194053039981414285150252294824921750901008008946327468068265131498006838530067279149901125055696869802892146510379108048214063318489059778243502306959901280800102333471158818708188026380348000029850156771901714139404133837458949808150694743541605230323516105821887435000005659932665336411548621737621625034603556589483558864880885474514516259554440945989473742842525936550379679197379479638125842067758213420016748123768993380324759052341852486679827655101156591896580885833819048370792520695669441112491363667358234447997124341150192797972039649336173717133699862405814178217143181202193047020108084884540341696515081813579892561202173381134189671091688560896866638411500380999928942098128110329942171029580534857096713399353850698544103597185309742962839626704749010925605879715802463750045392203388592782849180807453442402863566015456731968149031034173219145318397375192599229647699414515450219733435116484209599239024402358807269629634683437613458029664047688020575047512592095434575066183090351164099695116228198503056672741926771041056945753490518791792883962571176404839304433565310457301794328922242866887611154534854464648209005647353169275135226238293356455397171567779673348512686249794809755053217515395123703193916238029021478959634892396068954266375611835623445130864375936950945373017892149791649834249106508270288800441449071795432086024881446209972570237173517450791667149401098012812219429780445210161725954806006547292761007132266597949068994603500618440393554305402620224208526690780858718959757780323966491333048060130050002728820809915432980568111188200559817256157546390440802263289310024600539663319997424698153119091915710609999433646126461806792272356867332248458009702999599227510648808980598234135481960900054756403361978938057475156528123783034781019278284042236415412756240326148263474729548817058911640796826488781302872719449936787428870351795078801690494312305716900187389102814571068132539780082676799079278483895216238214306989545977435707720717008369062183818730187325180578172948156921784612109783992187772083098948134544316030507043002958078330294702381932754089694426069803391547435375408519538327484535935184250150534772737635088461239058239709016645133123949706599625037854152313314851911251439182280093064713293232859349816145237403635647214629962974131109190118152471391102460291067191062085271816190914994656742283556823935747519875101946872697520219923324395209604043225161102828360810131398066475599160631332780977029252135772842672839428877960065059528481719126291970813568256699079973353995345310713603059636627123710270731447885277470676859830720737619940241051058495149232282443545935551182887454488466339834230516295836454683185883312173642469084730626699278774265954140062740979108514291290844615341385880749741202010898992372637305947749454402965379252226918353420469586958925291768417200602281772921203048819247931244211525124752026361937915299898271062576725703927678442422425042060344180844350528407778535672280621979595072053553444481002132935845316750403290827899351757100787398806314708513445361742834169860487577306873607049433029171197172302541732813148357134173554656349185240713705199482542625858783283849905103927796283652942092295515363551729743196959258507922846769627182046706351635283208002466770171527047173258366668788400087486356348560278256246457919509213417845643841008616421260226263595031504500760333182342753815910593784882233023825982023193461013517753665472854590662052022231691924923230646298999952898673165399876905726423624070058099190514182188054580197430904534378749282738133456523992161586578135067208106947148254871542821478388390660723113364074672000737048984457886480214743219163889509158623905994193226709527609865206071447632720607317261882273354935586780651909335704523867499672496140685981055858486447899631296336986034844155631909866986532512089268119811862575266430821515430101018499966805204060908497578115562201530687338808658491492066290707060248839077272114766359731699089716762454375969324210518937446363365624604056133067044119685597043144429098591263216340522549301398790955300883135960161674769741367097582572800102672103471385677971979897798141454968644361193221728074845795704331357689248563391102510578573346740614675490272887819277569900926839798907741596271080154422446685682975761620157850684226984384674361615082633070512143616864327832625175434935272476894190039773188645518732132423849353824432614211118321734372236520336174421548501691511007590141234052334333809981195271224694494573967233376634844952641907422917033513456503754022789121847418177776199494128515810785126293436733628081976855341882535834895105055947644286746273112694413929700355215788187572622251724566253319475837830244679634216583499970682726129803410991049046515957298800741214197004170057247118674657975626230311577912865008351929187161828927971204808174197669145437419628912444383008970480964379904701938182000138463613179631237731366282882517683185376699231824849102393409933359117908378976888828348918141454857513576642030798681956589432618106618064198445314333384838482422881077011839029658549446007218236214978851476744824260728635216548942356400655175181740926382870112331106385349621011705467942888083626777106264838573817290232093358469955707501899413903485866796697652471023548969391802289832182577753493178085035572188418512966179969727425180247907753525019683579338643665213418690321348768509612231545491232300552908710095701855226339465923243676582336072940223708990926054681020637788162075611849922682463609603729177384850985228267725145316871886240173710392119493481188813657110790572775708093023010247353618884348062685020432576071582043348546071377674115294401203541482978690305799609986247622545284466971814086321328262800262089322961024153504312993078833372247728585771310171653033340961226059169948244497528830060845733638677470581889653740573090760796505795322272489538632185531890852907662966030665915257251686573430135440550163130409489234332576625801706233815813286234621920824279738844029656595245451929028869765130873990994355869904926048325503382518387042526526403271358730220602763937115625533864288987619369290188366744233445877109289331306724999314175196667852340105265001022686943071418607612329744218777006910165202222447785077166457367817426560483890499204323336787545647225530290957631384566376913474709575762163362462633193309518288237196322638643180032965442982943270771666975602763919326625091320742038895816054568025952185810709476609738045253724911233627035360709974625963201231520274239982451076112734339120236849119922969942006551179434679328024604466364806082087557421608560143974642261432306154793181258107034654390051373103325486340506770664971765179126425371452619472570574761373086813047125182954053940065289165682588979162530169406125777647711240485936296203172688537389480737659878371978475968741148506326464705864021444570360317815076909314781848309276276698826196320013857014223196579121531708915436993100852921147755098027216611940105946183010754839297176875925368760578374396561198413507573892534651411473971125092331221805938536162814024806335464695339818624394241687902028497910924586452950117003944478699385975546724781775893631465017774985862571405906573618760669328791165686479513555538358148311464542731129316385895115961164458902773360888716014967934686085528422939030175319230305850904299558685785286021638966049663440688164845004392918181622740789388261654328495679531292318299682735755372950210934074989531114041084064904273700874930582520955865076175908469259477922580492238221319983214456994066337604472282455186129237420831632442575756552841383876606631261356856995944440137562467453135008858994147291311085075538011602267066304222186747661401394057630033961059529232835894343248012746791901959644962926281473961675913456349185106197312812945437088544688489561442000902060274524757160109058628596885816300445301770933927918580751047935726758375745421835709994329225568351409257334107436312722039878341378097749453340216641103276446109953882587482001129440871566731960043090770045052142984271428074606692312317858354374393371901886135536251070619582844783832694197708582059082961842215698601851137760758379783240898284351399317673891727537458577753361891706815625407869689096046439812834680290953504608800100777199174606476624585653648461697561886066993649921703328264549822997930541851434130669236980649729668236037569464331382799151970860913315904783990106114594353049452961953674692247632813402067992285647804214787410165539564338821725189791735081106088019602270741774009765222281063832594465071859802461157035515161482000405926240568773309816040955605169615278345867846583046016797409855118683892102995420733927409430502154073688270222118794182427218724987480860007248615726055693162850712687536534993045249381146477466585900084356739964710618938606765981454331068258931781022871935091384167658301746713278237803956799932279082523325384235367107410061998004940589388108429238909260871228678401248116466974291288955994738971957357699412486181713676790203129234353388316031392603985065095404235250721207100405262991761031886743919616707036745116591304253881402499128847199960130920491715999718958938905096582055903613926698605630877162673626959438404935808959324003894693997674472496978043323999404043686784276109803373976385415623781543949651099132683584329694092106440140081962699430086422496453319664821001823098384840509945733680357172084735726811653567389840545162098184846439931442238596002666791570826734854141787433746091519764744818355553655020769876462324638734038619157391186310597063866607035706534295846463003890860651215476853860161491610158695904118588304285684130005201403265533360007957749052634044919632183297610063180099828281006648003366766645745472040305053728489416123980031939017340127412248293550377089489377228576661436955276187722915262811736260830098790437180059680482076040036349717297608944496280349455464496441484616889178934674789681951912210564749486036747897047758757428328170597272819426893929404114057994286451954001066557730870760834545443665873576022465188214087806285128857742410868123370729648853342442486556425473328381180532704536905988690034664858656330806837910935721139836628127749868802743275681221196245788390278718816666942103239310396116974703293976350872534138273148338012365273408765333429433457305151958694135230701882982564767029057079795248912039496453940170849918855119236544679417731171440149540456450699522729650111157687691066882663958982423582345748584087142607428388611473695230386606209307464331007285649302746865309692927189947780604420818076477588059927186466223673549313550050968855176546717442509914476994020702110135142248397638536766419402358184313800444449602053227404448614751745196996631678448621773025326221710141245245664065547080259662395318635258732836746336698713616790579233483008765275709370901335238658857961752916805529190885927116581663419303483580800097343826533950358972175929028751189371504459554920365180389576672716911501713741151641028722648145332019376851327428945776731149752471551268865001261742275741186761831942203464196387946106888193623312720799250441384735131348176948860839177445475639209425056838529649806584550134923032457259852819359930871336399407906435732026565824589182483882019306444013956382489205350314111822544798505446383614491405734720768649229329098938394317213726472729382161045620196606212757515834520359511483328384896960221043132355095635351297276558127853423856087589069681596483609556701897125271918940912780603618219296774857901426698370099619201157357116819316589464236612106626792863227627859881616560660415339297907820085218119250873550640536170605509025029839685784091591267350270775261907319589145297383530446106709631723758526088671875676773446799520334346432305972635024219933780746974210448000681379460333453185316022675753854516705915783899206814272342304210907740186345765026877133397617509334837185542189313717164179344769013207006828244668950563179326869243321237779700349830124998594761852286921433024964884734792431219069562810560547867639966395558453929735897822822796499754047681496919979370857206667333080209842436527281254914581216138312489309068741413895964435864109075582003371706310414972468054788042229056800056692885932471687455323340239514769877798326925119664367932746743629173903834865116645163991960889581133055249445861345746215607537606508627773667911040607362823350517239981779431978673528202422166424953965799997692713423392543600346261606511200307656141445702793363964652177844694564566379731560278942354164237763565760645560530546126308037096914264872125061077165714215399112603377783799280444418728909160553689706081070804905897429391839122076923415898717007257221982462881434509672873619732413219063201414371580255766687278477916764958009385788574211234704026729402986376731671262888999916386893002626517488354168549716108922541400232429831181206880859957571523455291412560758130915469917006991565802146105443148764623182137679798276865796447712858093979599575960837482597631372177314831824353642268209416236127855925409724857515932742983595379324804236818994868496137987115109982936950886382323210494406460476760839307751268865843806286297125798678196455800811673138126446729755937797958055697165905871048444344221850608505223873416256807289195137284556648859592119686742982342266850113814948694859415739485773347738121633980183076679234130710440727193048451524019006809243591279041164232422397933139621331267977076438254524333244043496283085809387758075964363390955939481552661005526485615141067690667772382529168060159688616284292056674553445209038101991406270678030201270078185831249349015859349730843829163355537786859583361130507440083430246793818752659833413910228294417613965623976067014154238921245193847475495117683251520561699486451276143563367032341640690557498962215224781019635717632392481945418996328300216706151844920013212699940714520641784201475214978324942551365493853641678813898175135311575098135784715659937716823833956288696560052079280801466643456050568895903968942377974454934459936408488462467252080384957246928077110916127724331999093666302243893615010029601098988472456487864948295420360656423815749988849170438120622914508358268524416963934737676661648575540623894401694654099228581869937757893976359463960777913694291228587743266907446055770048710281780691147557570608948692815633343392629768305359329601991203211269209993257393653604574343979723301691796651193087987694693049034848599134035541642392867946064779021997425359818882178319475855603235560529357197406846297761037460084967877868831782562182191089196481758475519285944949807546563552838373380580031943719477299195473134411770560633731006778278855537761036048541654437854415470782949572154627435047817579955834161549386794692744456135775874448507684876017741433759186898023937339193202163372404569391475956887283429375951752957280165048640981601221655500328479419354987002557757368181057794969162830314774383914004534326242170369022806414505102651373219152611779686662605087701936165064373693478612456443183265543240993158835523593799831351191287859604897781469715134609053060331464043189550572412880445621660467568393201806125322439420625408827592029164464935631986451740036362617447910174606742103231879535980227032354993162879845651701901677129609450678348649765274354812713523117427425376454474263019715026440247314878144208679542397655448512844195551259184816957129683633027519037762849759272227896052297157784538325021343347576421153044848806184501984805486741314592026557577283769606398940018084895957374831749227232218289207725000398903007889707018521255176898936811719229480605570051609339965688370049305277288575103939210403161430109039290428132501922625476485311502076069375462487799439167778380490044310946957887671223065650867793861574757602065396028237383372128933061864114244592594572338544432252886385819515374976346806983336800818285049942193330503661120259823538337942185493171234799802447054730136302263581116235553994367292729248439489064511020852206581286272062612239588435916285992907315590760631237013417782057812876364242600945371668665688397227134415042841337223274825215916886302591388147506679670035198435763458351941841344209771172340671152625492144183494697029862755947672818475618462552802067607801964699878494224245388587945009570818587670237029641671979662764459093973645688188281342226803822028420386262233125495591527445339341333609210248007199572479292210960011202832872448316062878258600330514737807748572368566156024725683155600876487494729477135802388054253942499783196688771405437251351845691980676652695518946557978544966108687998703717120870746775415145577084446648676337443229137393025401556390016113698065682928899340667002945310501876248221135405901332993520014069411197175832929692243500117022332688804349792609162023587131604377134494627240601173721476580139688262238047339382414488602734838426754921349779959649740756076191912822183118759617188411407620072567574553139958799565621729704607484319755095673784283392203059929824019120183255859134271648140712331492179063395274798778607991616336335689042299793968513246762093914746671273650768909923551087895672157932857028407194717927253960845083064331619548726541461184986528701643610778129889347643482913912370586176370323548308168289975656596928779884227212247033467744554838526454877936197549088344588208406658334533873823218342700062539240260579073137169572087457188281573981368958343461622338239269663759994601738410447922071354086821545321072550452411109561751242476287434091185980035857007754402636777755412160236877414056791204570617076983826225859158540610010261279196440756109334993407894951160847363964461513170404233440493451842810378171354971638756709036402598559355305962561583453162336051371513593086804839898031538364108752969669693007004569197081929661762201674418407002670114916087312424220904996550495694006827011311658256165980874254826153469763221431851484898423164693097127894737110189570183465426724303531764300705674314511950222950992256365460765520622519576428259708075493448113950771137144612096105971101807476622486188302150301351428899477063792184748530596399007625422575720841868843946863310861909065004123993796116765710017550076109736186097049985979646282893491629437172858816903562124314076153351827044031710776696114816133458110292777850390405726093829099583623498548538570785372726236403722251995112285376352861246787381220814527207521094523982037386045460182088573315901750345222748327960150466304215741983953936793445329073703886679125660343135264890182212231592044069576680560490807560474887864635269543985874147585031700294581412934394510963872366801766429246251501251670577357224720223897366482829743208754643247215159841275120648175441431208984376021540102290828395509712618083950799986020845512073621776088745315719615875366604671140568663175060712312463820896697470947433428302102626969344966329804806416450675556640574251158486800967864984286637471485814482210114426329257940546679614743700638984255819131128519566450216438295782067548574237059464219774883132768845543294864771620917606455839002228731321055278577134358379168522384528424871542641277230735269354782089074774427686041985324001394703735343730916696210611637712499597972045696165424186490366355167669301781749050929241610866808147823766739066002854400853886652248649108911952359319045076885714729311735615814237987217861170394596571582263550178648762589200199304467254213395663421848789259114676215507648335011754705420313030013314364099430186803997330864290513641499053643825554940136285904521344448226305935654944285030990878447849247443999359129899068925334625972808709335430146803667746753604627492297315621545676435761446464361310222212526565890099212008134391653171176593268368559563434167968381488800761008360506937420559413784269663148524645840817223857957085777960943647011420465407942197844784801687844779527762102104752805381865172734234155390055084781385770292011218584160862733998215559883913095551435217546372032992574727408927621136762728075531851397308750225684371734476239135986454784472450908118112238149960818031994714402383320425256240630891361253506611933234219706619445695698380965457991632006916794498160968140095961583910128834889952376925212803259261830572043504136263521421602299271009668885050207084649016471370964691547792363376107840909849675931404831497753684802159056661016800242886128114587875274933515197018249278381244696471804378681119088025512203141319426436143203899490663215311877152420644712511273665938707946539729048151024141186318064448193991527975264387172234175037102082567591509602788684416518726029898658020649956772906078802757188066984192186940289908002745007652296800338682104703754170172719373266954785587698109128668639576676520476076797898771447376524910909227762826650149413614802283746131327501488468741093801718258076103790448672561874529062829697781948357671762218187897595021252062992678447437790876670017434595913231536672591591356390245385241132499544554890248917812540923373304445581527446400883920499383722482763551015833323975526291323719017271176643682091994916306357214222442391296987177757028896608221308873485360714190353995976213001124971761211118227535428978722506886132973238558983698782743077358191706556061269472814066790561269945942001161555612005103067621803531118649721518478246185297441161601606490593395155451553787428392420864538355039666834747955592587608067986219991414597984315571925337900784320094769503575586652747026696981805435371795145286232339701918262166811663091579043139148398546248461595943878124193937070680088841711020140245330248769328107348951364939259460641657612062639283376374581417350769270328712401734407472081121173476968730649029912124973124046916636591543395851679121041052371925363867937976450890858675551008544928301112589620231472222900930445090607659378345062816561425160306564903453074729688504928775009518737582310327146847335814706399248029925299320210550675312037573624753923105236489704264230767020710392572868042761069008778315013114015253158156289267474399013854974015299862223215262441987676935596310700914330659423627810570639058665987328218796070836035578893567410428631000807112352872880309508509669477401635844049551496530360685344148742954990050521730867229620859865411809348666087604643906145905843861236798883538997512150440476967565803323576172235557806248545895311091710295358690632737073922071279247059013928141800734501036326441397048014245116095968319548160160716789899590815924476843117212256170791352328164746492429504534404370566064635703517046663285798739230160515968905121099241614188598505686703466550198363612963138853463778462791470236076185990818960915887543604824089591443199836585423857656562942157928555038203202698965752584605353228997551404539271345304812052173168650148283121218592517920195394852206162014287828506109563727291863128883491340102626944896830018801126759047671053651509835303809718354610760001155390739055920712147627499105422037003610442173842287035564559878987506954157163798807425610820500612270065100782152612566374777269227730134217604464731021690203264794925947340761536348124322988943258120836642483276294178629996724661741981639210736916014518985616900859291046731220326973775454203883134039854431176227716322280195120238053015908505977975251351029786925903950745364629606573938690953921893644149444878948531941499897122189153132531968630968709235601532518943546984624722891298964253693124356144662278731767600816330680292130860930661317539629577517113364182552196352357195200921912376802659589313798094490972854047454945471249131664130948003399734228531107814816547895034431909887706673842626280901581311265518882036998812777328879562588474254624350800826651026852186125218013223223651418343299140444217058816117401031391906179015153233609216767860468280685819326071758663028075420672901838187747628414987563812993512084246197167101907558859073054989332679817801119779338217511379319851408173627854929907113133907460644680004137488575656998507968124305900007258467121709223823893268488946170165677598801815266854277692707303627216946766048135760020162443976924759762015569186840715307451308001112481082573050158879004733155314327239684881767792697159722786704479310339103460465228685461853885222785758842146161352238128525494146841803478007480346981246359747716204919415053578864295046446663083943718572645164796106614332558904241117958833895290920008585280897007593719685583898400649262324372331376446501201049197425980652732499140228800714489085601957507121379958064430656988718400772074188136635924459616949493480974588804288829021358787349728358906609116022912443219179326443825879972691362191211621144027881341473115744894538583753835860014352537392638462840798035547658991198713689788731656203013410875730639256139319187752721922670086434414680928464115593457042762618711623144530481900024466830732726025280913614635298730314186586114872185112692435527927791696232368941558769238043482117306260448482508953853447748352922979744131686957123803711660663941869751662449768597692844464900041056251890394985418532213289604397195946930391154301467850545986095805452035990664157619008083098787485879505680522281023605512869899996121381319867620504220128571539052725520596131459124433252653194425176944964975819791016560882498075135490604980738902429213644871418796488518799954527837806877747884241099214745303454130333062092275862139012680865812012753057431994949828168989373795831776641897869395828330895278544190228388710924077474490562846202038375792167681001600860269993312807785533520518992214309889913644668671892245809282913614555196819758598266939733109087743439202080934811744358266281208287982775418807859516257308501215309916258068713055092014796097645292658512131880528463476708917640447227231187019813236182463888489959994573967569533398600943593296432668704496489351669291162941022343469877609537057664175683223972505055589595005752955757691604440421833008036565317070857433428419519620120436288540586348942435767941813825331967287639495796741815697286671434419332971326752934729700811327600991524978396841632860056452646603310723475656529423191799616577940319926541293788425215304818219381825567969873525542879629297547100233283519310324525615796557532901566765301800333391163297879732841380562592227066048452586336007383496092161666089098705903516653135347939458450469016676838854406623736944351773190614074513726018476970489159954081524642731288335262929971407149886030898938988261983094042824567725607231834410145482078014936386264157159348314443375824185986711177568464323642741707954955602402606650018792151897688448820915065883153958517126440049156070529045574196399145921689655461886351748631731491522772736811600093859505984683269452255022852448417673799647788475932362411785535168454225648203374835000232519651056527352163049611091183224393733365754614003469395190715421410692038940950395639163980143345748704759824682592502759976293807565726354293769182458905787073235396923083309499304757358604197607074892169988839188905880550011572086523419534728118950242945128952732103717917585056497428510096888026751410344727479399596742760369065822055594481755070489965807858326306119370082634735148902022388877952051271447367068673561236937262011156673525479114144246819454360924780559583377850213905285316122897880071999607344210444059049360103340586647012847865225544415563951586077441073684813654781839675092282304462162280856813289630524291045070258704873008837028071092180669543853545442680467505882927461291746029313568373464203000298597857219175449213619143966191805840023454436263794384792196942554697007933487837684834993254144763936068250308825665611489598558196694407171996718552789446287877393708390637907096244767286406196688168588395903485539236573605198627219791633059930001415443940304271876677357203311727639991480289042442668484996998589807731613094727219601664783200478287200797629244411471624065733226390499470855705919518360306793900461222184987517908459366267513173264877983921479347029938902133306649788270683437740505334002025160926031496121301855030497996854057217400658469026455516592188715347358490999338588086368815476550911843643423348173917008008020346380469898502225735087701675502737830260582723749050753264824082787736630546073374906937437927406196125316675033808856864638189035177226390729691666101250511696412983289321694356533532775095137749186467517717221989759406784963190963510274566238651986961511217365011652253504372655177490841814793716362233087285832987518590737572718419161962959904595082835441697043490053662349770746431221305773239611464415914937339389618759895803345950815583656748344618335187031899162596528423187825263845932407967814572543363432014016384882060186526348823621211938124369564602730537634436077687912113586916260383871189937202276083620383542576136020364307313270828500724792194669960387289813830537316325017685564138525887524550453653929343644948880384530894067949143445740010531623330284493955788198962084514248946413652383292023692477147053507149402647274070657184405858548101047865797073983952234762631351288702295461945131610180834859296137547688669844800673605666143745267671199862704729044381925707541643620363551090101462246341225883785536151113972462836507123959170950692485857750102603360423550813194874884954543497446150822890060476790352891430519645280525360498255105664877277457607153710734097986519149509334891503488584257168415509996342418928138705844142362986685669181898176987273404553786506966714887347840195876825335006143874551734923179433837453102181327881156547781146669129956650146407256611215924956938048096414559169465324870623584186395381945284354784013808173793949161931386445994918660098328220674045833113239954093751581205838137347181505126347488395999529969579673810087633026807134666410485497855676198127029135625573118785353618516446995191266293270262304619552218267780606836714007660076891708559930623337670958998222050745040098167061225082974515351741531416383571772178383343586527172529655842563665197134489809716197811082698217024450690382783721852497881601679906837800619607762082619204085144339291127071408931159524208100702850918673989683672925922496643756044504660398152537793804044700246509262495816851569218929500663365953152326498734064026362271514516668965969492014148645058875525144418269481284033514643395291257175073092749034542965973180774865149831707550506319903496674852411205767269574708443855646872245516767023929511969467247307031599996660207115757229877647161823008359689075311290645192646970998387594084786309739872344173427624842020831032313918812581951321872540660459674592423566552700081818732494661777080584966339353717049290601610271221941006998445529064636361548167838765450304168605689704092306983569578301654045778658553550161267065643679455277444145801332096545188566869854463151826245885188307777754925516363921892290340574010707470030501804703399107459015483331009362225517912939722490113733574993454129043347672496659730996278406581416064174263786695597240135350204804875712034708203311849389584734636943006186964158349893547697957639228433900362148237441599880889157646863045854750105177322572150392730957646593710901903755846314306533646816716197742345718658067743267102010373437340424012402063765688169327600751641805364287803180698923962609935222258953890788832921320946829551575836795529700857018604204119439563474962465658839317929630648654588655589014695541210016695915308110551193558375773281908563161948456978579630101791405640007810793484722870374027198910464545535348021434567308475781601375327756852030191766530493978204772639504418805987228912527168519609896626752835491733662927975643260812553994151660281087104631791298900231802223398012045714428471165009184391858084375483013781089739973432107381758757393979815433842150989618619925018052465805359813346998981729107293280433546538499240089483695620352947070466432247554799611879846698767344512561781489240403320600122387666664080511363999215734922119694283614312785352959082198065862426677486830355652263227833570782240380425840660869881169396101435542890405499989097590736682136006009366546125733682969460857549939396544072490631069901847157408984360819061735431211740751092915601400430460548147930783491735515817871248464218080760806788530111203686026720314499775684807777877876346714645740606967076680958470750358620140931107349940714048765217420580705953133823970084603565713395738105150017069058554113872382556426952124406138260878016645291682896493816513437660012632146698481123638378057643548232671311697946285467794283644235947488534222943277257761015335529147020099002996706316493711021531985456326133867464573632908787296643104692610314350186661757001498360026174592321952475946029331723181767467986739217755199060004962035441560143613336850139790888003552676902584806877703067708242147417556204260141258946468966707404508364513491173386795589856163919661753971735849229773925751478625137854425694826191413112677993307629055778090113245818747361982009656524998904823017891891576522081868648934222393383734434451836420273947959501399545767795615692946069921248702055147745147329322090256183927479462450375586384398112006702642179403581248113563456636727166719253879049214858816438724314763225747491663627575945632947595791824326721583767250302400826311794126357958372267780462700552571006185708670480632409693453967560594885760956038339302740136813128042280327789726043712376071820787141607576378063401820770166183632992096925952762367965929823220451044577719734224984173246259764247136668287356832813083462316752083518699744087797815253808667725108347879166683472319070312064164832411890726471617107832590055291126543513334497244585066497030489094437956716191241646078430136876556143089888267958441661099344545970253938533610580410955607947221252296228161491325344829961740216414506818554579017031387815129930685663959340134829533814142619338298623470927427652247120124744910511925370097214986827506850319815103171523435612858459151318888245379673636677652892796051892116958539790300510376051141088250629860962881133524749148777026720713567908851252336857190975170164109364893785722774779388547149382200674192981767881074634290959893641136121989765447086843589185077431997913934349472696298095896888147444563891920144162292559548249167263288877045428069165973963831228543004141574670825205070017993016476642393235874426202687636360143332269318041685579005749111952481811061127965249842253902840535476874971755069120065096615984610029021244221718481982425667743268010430374401544284876739643480547240687082158171450567539304961716496415638456249802771697356250421630683366264806270903556826201590131381966528629766313644177708107114447233237314427954798148987448889766016433048360134236041757514374410235821232878884373565824494924874575374960768115036232400448622098025820171264422217133410579521423438919553846696849951112091994095299986423391429507020413586181144864443227197865373527112823573440975268322984048201872688676323056506338508344990758253478228296581127059616302588308802621207638126497901611368869600830659752992407816613612712522275737919544371206723574111357404031080629535048495866846534350113610973656453682320667377380768335917771084368420269881027772514693855622627006464216777004688162209274246499325231260373053270943966420929529957128581037948354031267051865822061453482868171857031163768854339467456507902254293268839498002108543385253009780751720201226022790147328118371238479232541235906667581704170553414081364230136191231465045181466158840392115101662187134704938528410183273016560600223922024071465975235291191363503751280913830255822477590394857361583653466626035584218634405185016248903705351912002805450226531355319096710732601026618517339045214786289450196582712299168666675033190021766198659902830982412520417670128930067685038860169542067887679393887617595884342797401626812604592322278161404937061390628566891412230691414988312267630303103846461520126734758124693247529463638252606638967204077849433678014669994449526964974507591868600621154093533885542782051714737290181511344236103527846365600051849571070058569213430543428509530116798870625389378842482225317474343008975699403758686328388502462254911319024649816867886179709646322269968266702681477787781051546619613700330074430006094725276391606432285486641929782181582727275492842062153219377915910763275245305773571697121823171841916789334212253418512247320063017152780083757022418067424693745347885287823931180101710774130257627674064282019724584008589843437177461785979015979551752464987222892825312475892179909071883918348204460923220817587493438823306860825961968112183846713207683831722721501165754476428842322657791958512198379868869040696920293557044059254905479192618381193882350774599599861377188004685474542479900461909269900106776887862445513822565210831811112820150405088302876740704774638826323197866168560213552683212311588913433640085424485121165516379179509046790341911387547239765528354462505175856513185819563592965591981066166852825275886051194348864822261569024778379812513111098246151690210410505768087149873630080396487325706932803257375583345570027367245460057965534773016502861101045459731431017576614311338157583304923905135359085880305059656930422324318949778333449547364671532837176883595937064454103024613476477330693656494957459680383108100502172453438346817186971136384641596679309148653020395414860653253513365156501818255940418932319758949958028113941421589314091518481063161570958115230148873584301540022188773039993430080091949429895921540528865488343797350252541109867443201381989986330542223151396962846924377103657109589429716594864853730318830227403193948506745797617611232411042470141289633662331281411119785924763868274179937030055966627465672749170000896524129254684508419111642268645407593054734928831511864278324504223285309537373480075592131515748788725310565629999363990814716240073861021432027157708316973263190313606269227879975468754861483260015553614979826659778111364171782197192307072528928660432291932542064396687625583209955461008433510949447966159526038958492626239039908234429738044223301372667994157838324148821900943149415742591835372423171027436040919973312227574579086165853825133113341020057324719518773219706101251736818321183479232677676035329594926197183664299019116620091405205410400342598953835868630855073372392725919239454176368195985568217722483120777057265453535918866435333435171552407907382814609540477861031847555150157508164153613955081977397562097116875767285623526750642878464427737127455732623862123979449719901986878953495552822994576694082656906731837479404008044612389607342573946687908325040532693984980094441481209299170928540000298613588275849264323958993273434507708447285412739229916994698937877763754570073237545375661121871422599522751733411073122971892145975785929273583868610252205258386462661952168023267594174227904742389597549882892688150701973792309909330727552752216433391879711591048658665115298891586242046214889443006741214552569099555689096204497299680394963797493443594164548339794825794565409946912237520053264830083825796869776274386401726672035703598134671054071103390712974414836909264119971142492702349957463542058205903972591744104810625129724501599487258515514686868695548695523156113980875020595363981214675062535920440432153060087942362876381369802555507120460999765324203947385676960539135406692153391524021374704174032242862658362912895065375538833550608769366350410777891094900577336482278805717514119526842708409115794126720975106723317357324034340032406568592827969400738855197520556810337132452676632151648311505873518822222869112066950110880835848972752823071871871888883498969611932442012647674446466037029561122998121388400572929470610065107311347695641407833507858254779747695608338593872990934289676306894968578461427658821544070617998844032327104183963445894443701666802545097753110113700284449994451050300652140378921102143238058739495266866085137090829631513314948132671779770529272641788185343241031444039929729770278607291257949096929819906449766455974700926070954440588424000136778348896548357208511074607833501143944003742589615299299684005787212168176134458905949413078877720033466711334755513056633265875118386813496510566181810623366948448958492900626675809902134174126870249199404844685664285902361059691791366329682246681038540083319716806342720712017155803273849465843016815334381614472338407102899346229700286582666794211503801999986066486800716632441985563312362154564313123451755905921811168498726428537487263735270910695719951625625892291323814027449168874421036814587503206800862956159172152364866700911585541983627930558272287355398722598133263222856363040896621273424565422031924041202859379236181362522674965316074880601188394771426631990219545548229974781532669331996735628158577786341103852244972992388093104497090570004206374623661692398443704421217803525769835732475858166906582963765532260190027742444291452611619733065163231349010373087595392601383574618950752919886605595498508107055730641483903337466174563403295818084430550550926568741813693892643513658927209618410398599743879729347480649484347723545892958216004729122193648153911348629937888975074409958822448919349953328607625920256184716273283427985001001047769499376780184408474675623570745592981646577459349610160662250448039095051051396700538818411480287990703792949578077006154367656471030265584144272341325580720786027324327500661687923831006662792141164738527564881375981302402997756478602657495618136622411889339709869569877929782000617689244970167886506728144464011844453212132040363748538107990047174422751195428137102953101262712371148894907453031835344858101600391381028582165648616691716260365343687802215530904027645964622499103984777783420904028429380548588603232800436086625831505374145219189335472698125852019983157664069075487814879178395062270186504073314071093847090529557732999886954913528345733818330888521120253303395407562310422511042781379919558017133994532993697131392955036062003659691217403558445883817974609896150951384590386747543473091266497341559714610450960562028757036185756627252486450624340442152664059899758709695720032230622070263791468244953936588936689832991998320653107995873773639684343808922974465890393750997642559564758148791448947277275495039413082877378287434930288618790468709834976196438052383729971107566350551021081619243073424932421189882884653373896541343487043223218209841529555789490049379302340009554805752579979427072240676161885094560677605957029601953507223125813175692261486627474143189028539506556516053523241397871932408467852536374916245330958069969013554364791411273565387315488824952214442289201077003508810168453123257108351238101698188726516296734810996590596992171580576042223813192404332707509861687572906276706332836751383295417630997547660252526399213955675907542722877523030748345687151146922830506951922483883498397655114941196214130450398787161324936248492430385197680297205465158186825914659943013793404158580330878668291261446564283892622101323932048544655115481975797558313680716989772525702130218888669302324640851284375277720711328102220665494849001518366600916278959303878732956805117542835641231795820802773713839266778276570641236581189583494297165622911455347276694894116947802579391644268584712457982349621769762167688649133896325152023290519419317243445169076940927126046167361402954340294813705299230092222518365743579614607952087870127706108571095903615930430703656805066223329352280943879221198927413087186250351310438471455721219960748587667743777777922338105739557357351779851867788536951810686280369681484495005669435005964267920876113800813954587044714611208800552909115095011774675950053109132710448823327352127630426574450457051676815013900416438432121584120681732894846819752873091222849469045922230001809928764768107249029187406248657817084976026755198580563307193196252333256227127056962676229148378358422178471947050668750319472542170968152832453122265546961596119386819428836010090310155988869247301353778524927145505934791320871707510626883630600821591460022550754442117550214034104481453809274059419217272052631418916140396773476963130173096927412573505612368181212921865725362396487065624713526945620387845603290152146038652591605133752542176093195214225178259423838708932519992350840053676057641342421729699303390884260553525842631545404482701044229365462539723852153208877575177720930893097263879126000250582068102032733555463553366999773126707741331303797935523183168820004184146176738238560731047811865447047555271970412771660100259305446696600079322342320930106707525426076332250563988387637348599194319438681723861277341803812809624837838620033968215589835992840808819770927364898157891964346223244758332781099030429241471537849226523353657148872629149136396311507897055399561502327060646669206577889181689522041292753654380526075187614410887590736130343568484313144778038193647628507841930255111559348847081810249693230369314910613224568710415816160401596773226133363291406940345316242031966208419573971905154495195236909210559618332196113247186083895641576734701666404397363876257176905982144373965884489474429114966448319468307950766968604567207253022782272749004317760654097585577350751709707614437162061471441096619340170506072098459693436418601698521351844812378731865121627311471854388695363248378232838018138320479307587145416389736810125516683596748583249346860647566247283747740668124752890092836877479719126318671899285262845612555207868338073328377072268867495456997060160709997134405662133592195786788899309478261580508506455674682988415237187779227235653582995908432245258990176509114817215107185233812164710684484502088628074364033441683256689781630545253303467381786127868139042109375834862194136832628692640586625435445509149696874139679735279758765745961579598867262956113646575924997776244812345862508066017129922778441748130173361094725393970744433523105940354873102791374889863773927700877125704239602095615800471011612761956157914885386986237384062010645616384330763596030497642027620354499792790267325946266393396757559932700802123099344200548176171432668383943798478616441252328758205485208142748026634047838075904006313650223225684679890039100837906546699960177681717229776062418970143317530213781719713558110576037404609034326495558898918268128829956443712841323792133048762758652137849741349830042301883590137041224856492138420150245072305263355919553120535587746834597670713563084804754138905438003626932852213542720757894046623405287597460796888838984442064440053435262660989693468464346803970164003885038949193396488762909444840872031528546672794861484558803044381775189231506527051676781780748397751631167541482702284188622086144642203931072155235736054264065898837786041996296823445186908393079889057684922381297009764217000131793822975741295959624062802654870577344663046645778043061479159293501954909314342091170019521642164952590554366235185526989575388158575072825156310193662063829956561683390695994159645639748806275412619628365895518932617585573764365676087755566393547965172831186873775921341353794292913108403044956804056437956168566622608910277034704219216679812684003313961402929466342132932919491965246897476659449425534232492041107367841138854021424300212014748221417072648218617512322458244551285470824825858641191602196469162117532196933160162037179339461479493905335804105249351389117660701773178913221281357328381434181028378364636431127529665769461956586266251034565693560631962421020899196284104697836802271676605559692650248473043039265483824930772846024660781280161278050679892062479446928437468431125129231146304422005041054529650193712845733563601732934719460370022676680860042348521585847429724939642951497909714076880820272241789842322990861074581643950672749872992513476754367612776513461891773043184345963134213585160786096259076481133572551035022674446691905668895377317430778993920330526019594912781953140938445143041571193975599628423288463032173583229151643147001995168991668144156346719370794191325960717993039022900454700905685075205851059557834026451483999488793205757166167450632937814995583377784878621223721007915653355965855401387281137058075619414848468760224588659385493944488091126401748272938337373205938637669508938655925318366525015908178401002799463733098862024060865810499457040100260503822489357218980151156370733669465908397602493119051094959888738970833096129739891397611657377469938236947086204553421312228183576266329791607805442696214033462131198185515315356655952959041229431699332321913458419371340622022208201610948358347569416792568420882167771774750373968190537903612737133277884160667699939030887886058506915931340953526500134142192286539478196011346103129280505058801796943181965723964016857867131819559314352683028949718880352278666138706744713947496780812460063861441041235181827757078306466097336973768678317301984962334892638171303117407724078522572499978170361889629875075883786224247862986349920649343160045865818693630852795724134781764225329071055382767595690841122245171806541672194836324556293669266958917635553823954674342005067580986923414122900820106923320430138816092158534585807500309399656741153186010622351957962344316264009269716450974335545291055972397772728577303307087162411239949359714283593640766369756867058374902900163075443624263207687731931749147605055222806219934676236065211763720263953935678639072815165493560612877470016102184383564958834018142751615600915097856728708358790294195326261715006595959491086156974576227417435636188991388225888987596963144835954752130470103518552900109666473619406724111007336551333101198221985828667014554055698301229318329055018252917269663202701309950669215164061590818959945365489479293393639095042345037850469780814220651606376209353292909454372938428541730251331164342467994508164216082128757949141448116979742828625955053908623695310269025124716655083947364648643632289913675157343953017906584484221553107864240546222676021276359768495280045498207007422558517911014917457064138126070229395266210979203054250895727060519666723744516084582551034436181279283742031092643889655810612015101949597911303545269533323392701390646328154652034599498154635626978365334327623325530524155685832481900885052213756679135095312618148947053071819478647825593310734745555322274226200309284854340687359698351481657066107928426231210702152011803442658368818323547987155512325206324455216678559955187780163739721399842834786833180652240606488909235990258470939706836972550458517256747576912054359835034556715131633824915822839086879541812090088745080155479895026540156336302355913214603665293472272907860515621801142397135155635503650116524914512538436170767240396233674901943743686831663383248743646401247508421921798767193960230655857467038379940357062355224302421449422375477912946268833439751215183663533510672138277384022890082046084006917227312886817231960187676355081625338797101072569366769170138803774185191568111292236069749283366872888588230509992768312695436818156237888208884926682895108654491429434320771836605959359139447406815295080349755863396200865784674629679662181480037045145454849146116032529524963867846722764757732132455254216917799439851622886340363934229055179373429416785324468838956327885861613959395067142392528422169434097345020375085510228334459651192899855570660395890377427182555441156369568280946988752741193897578972523325690335611942238603385298041104827382697531659010591054802867905849522202753825309676787393671422283335161286997654425578812333378854702372155528729517659489733533901568110978501223938741137765518195695756934163577811938070839403244222111162472519942188588232934920376307852725141277246238471261503268336713704850752100001410249418030169172589437554235032497095793243420437651920164632674493608464122469748132727137141133709538973580721354871576754314876733244870845478484820929516543361433973310634404431971129683751756229478554334350612713117584374777199740350557890808229343773266562381517003849498646452593858154220166260704313234060509562694735703863630054812307980264653996229761050386967550475697627647637832940670898121848732051658951229853091681294419567654863352381156772639690350613467564217370039985095488659061320561876947357452378057152671142826654865295761650072698145338597939877034747028947468599552611600159338007312089403430517189768085374508308531293695464882566926247607861154152194660599558747784320207607372433640451916775698027664996371747005735440880452454950863731085587629406184930888403657077225322470336506245927250724418101404388299299303999785740076877154961373220130225089218236545300618451102645856086113124676855395423861219506859074521050036438824668138427356761370921067113637358165046623308062621209313418963928743513796863387036445299683986182701330526048741870113503040066071939397803162590799456235403783225067084606795121368429085428829378899328056586775771353576565295070190913755022726803983885291124848155777384766443107954623790722936126045920049991444222091569128045286202211584291241985867776697310555369115186305912326245338677238776394800316330266639164825056129407811916371138214474471863125303159268127830880715147636260367335426097185745966515712753762634562517708051037713519340399993810678885686444005932062935614936757238221645383545880005547029538901871717348296816922035810205907518942240559944395332268495921914538467712078124607153242133134645129922824404981181142124648457352412910942609095609320633030539532275353766894145555161640786707695311283084643867827760751119608452954958923449019049763925302359744300159720878136874115446753458110543690027080390601041734381257127432061714089101923679077435090098515066343112839833655971747085375092459630735993386313519458039535515285376663486965447396302667462012129944368517190006032302936213778177652264582512502906911965575772957138168338514100807031784290867126331299647665568629310969121749436888635749195781407402591826706378769481045802868745455937364744307707009092328326213026910013927781263964745159133892202377457253853491911316735582934051628097858978851190922477641944075307084785783207578798394222477218998334954520738743640368405063862682594887769786558837557775088251018018272078163014312059939476920091145099270107792599112525048221115436262920334125698257387878762940095888603449158467207974703521946615315403561928359501140551318032706537567129075779542398711721813256546966871916094217794108313565154618928186726155852143494319237728215965782931659955677419339890446301443046541435787246634664269650225773666947865329048409366280984282323189924089421869970505474080281659300539254489650989242548617675515739562569981758754955851851278569543104548619439893166147505769481644131719418883084312488628060638476153875332030591236797677150176428433318538437843718356214343521185523878860510218874691525445306940872256064120686836281960383501766309384080749101066960721395729634752559739805380311470097067224496453959122860239305614869004111935689151576333911853607444522219568139946078729605135293160371763726398917618823678232870423879129085899488754096527193638690589462853636424556016558533372903819566118872445941291208947115355450944145686056816719638396480291881325398602861522123375887369228617023849518864406639173935128160565186019590626089983153623704577643169283545099629776026769656602731042113959432003497511831054085062311281507635647897779713191871559840987067545795743365003007602456252972827011196720591716557655656290157365213657973461433926215030468970498718553291113130841381145941412281621203673489409685388569380813127119463872115973990775667226034365757956763772459262295267908378786704357934472004779262925740864159513865673945608187513407233838446422295243348464694900266507721098937089848453332467435509536003231538093785508912228051809754077103842554451542143378598601177780507567134339225624512049430827833426485442631141571901406001101934674282076474349395084261728055590517681444911184374239610863551970369042418525680905803020054816313897837331091951686570228210072869560297665864038668231174287268102149910507574822632543231667144912582007505128503846892345925914168707725472377139943620889317140644681513262229299295460168476013794797910553318371509808064297460065148057532027956682592407132771762309413721857535054649105262619309045803503659737045498014407707064246178148330454027752235615666258012846565719504812278783329762704203329133926509833568964140425062044746313153188563646974028832033783983193428210356546066511060729713432550100431256136720584190319515818454457751218031792514047868166661347855027024696734078615021316461488203674976584935021809669056309101646105621574066318730309102935038820111086238030466456865475893827706157989419898324636240357852137827364788335147577926400278337498257183981964598537082192716503174874493195639999959493445357093040818902651160156682697556965243216629434120512671763298788872838140117585096877060567990906118075219850934259518784168244601808327893990347556416240540672233741292132157752170919839455640094687411522046025301974315526179043060106543364212911541376681886760766030821002526022092925266412055274953135893620412278568635550245647796569013408103281375563560039929388068831562037990025204421173147450663805568788406524403181706102138744010527775892177066936976186500917069803309699479485855981927233850089638427037040603287296824346967984093768344808980883049556766156722913345061290869863121566324412043473809620106309419541603073014557186898416549578090440985180392448622148849676318576823020108797595501493206377790411316521582786613070795770313789028822581180662094788155779515450420792197325838511888256322897924814525628821334955157561674070071566819292973126909313410827640230431162051487201945580883228966419886216546901292773008338473156880972834101423764870761021278812664402383497172974017924830149027280811430114804927681884640098529223087857259202190043808590673299117711450359373688723856434538073491694407830269633139087227595769799153227248225459532378999973274101067985105317745641622651703489217662500444834173283843942301524066134337618363868690099513100495615341332790698923330282256914436988015395890521130602001921370343670418268674567446522839412885940526871673909623372258680469241138829046154594372797126680017609319139107149296752939545887202512473024812029495493897934104280213159181480873178400766789572127872408731974949724885783241681892110042502549042243209879728481085646903503683221718045883608678942825560525980783327975860055761167038409171042487225659038283974774506379819874457239371089681269316581077171992129081971207973941085858119620665017846825035258231602168552335581633066440158614114451330536608147515141426844256173819808836336183191479645224912784403988943403396065563822406990078106120738381642169651447341429361659184848898347770478728326909560962042849544697218666649206977667435320500833363980747502869029376321256662232772209556198181932112961773855941857659623592845598050225849957608357259279792079328547016938076223167521931781848721785951592088182238492519784375657461054916204413613896794861902095097808664264931844342025394838811502597313454831485665715404556521849830535937964631490117327366906488362799629863942485833354209578929930060194404813809759575957761864004497440408403670273432877186887847083718972678730921173316118375793143783185775813021080545732888310534067198280342079283806704262640668885966307922868338623452749230249069858085418437713612417537085858219598969635229385269955835971239991506100640904233796447765659090474809879111767218286202889353483573337468262884460323489280658744386029271250690911201556995724750803182443835683357789819948808186914202411634845095394317939376742181156931418973613513113906456399791659550377594943598010406087824051678726203816784929537290836440899442018178432021417283088872505301022163311232157399065879556204198407333335085367388059266618999784039704868653193224260794208222673868136526043827240500432054337488523035759190886452568019341430011408210079657831336744164024480262285320885779145530759524140411837379134151124560558460432932207060390799838385647605137110299213492295358189506004621418542094514950632941184223026304400927282028397067105693856996382183815699226952080507367039515484736966806685135226825698058051624552099563163049397529517011277431686521621262309658043036925918312020575524386900561647321515615545133505260028856953180662199590886588273922533217934435704723226132543368537696580710957799116959364645761689583706775765332066161803789935363271004757217275841425484073198345852044836803540441344100486248564787073709992391969302053588595479376624784909759042482560380873646360755081846406015996440868874727058698381587322464359119637635543281383649626395089099818917615698031838120635318752863743686538426282513031470235366353344038084147667270636147366467259420017083026040878594532452581937658378158523628113860996415222357265576203978202615224548962179896221324845319880081621279014131348945320825546758382365038654656993285497810673215955867816938897677203066391605974369057886719882385124349540396816945395064783571014731702400475070390883866791588477753517752575205897853909653457257975334104058648848697594301114919542622235312253427040246681971884654308831044605995074560038153944746017531784989101668260882220623915141303005086317407719892572430417784937132928291520212780710164951520232753320951717140671642787795888131390069773477158874970092515463079298240199516216340314281338823196752516644625261296171649185662049185256730424902596411835845067753522265080896442166794812568577777379107141353956799496236098412876135176313853849562369285701238995117584573934071875309472886577720480743381005566130073847317125248049506738027594998648612054914933732719582761595109311261017332865405217098611304656842854645627421035164758016114087746798904330998188036179517063999801011014145694732546145838051686975438229753743238796919976428588884155315623443750538865050323462132801703698213265678325414124135170192059524386694498809336600155681022165863195884770410351895960132801747398099474769961823533405268029587876374012526154789672835618438951518246542665508644196023033090216836092132384822279635904900441792530779168053738750749988662110954982427699994919127663389712820127353561173263733638947687927161405381836422334449723761087946921560480839453094065822138083798034844963703761361842343941821037568965479883451573772189491247362522923266407356933214102276709221795026253748903612562987980840926634710465839784870147173541804407019476111863116837923849227261322496946299332495404412238473176608947259098100494899840642521021244611177345286537951764125527145705462760600869435814732587592893031423722465747338581444428789931690920486287035076588146058396719904621063041943834788417795007114517903903539854450028430380162372136573798575561236035692044091736924936077824700849589247254541417649408852347187124600478231219969394202599296669540750203322184466132575084839348005536702604639515421889685361249986687985649774468926607161487372175042882809565404086928794606200245084581806144178908479953494578362405492076614578526054408522463762798221961533610092804602936942389760198415473057772274660754116335543493639306860010661531331951148515691574323063000729205669820079854378319112776048894504793246469980062849800612957047261480252849407006991540402633225112636601206084083262998621945415828600988754881463049505639578111255815989976999103723629101205650948022021981889760073438772852957999158484402387224256459613402276170924851174855636859569823627760462014710699257173537114099163019678253528250639024011974627444169907423378007415237249242520374127757917273608962935721698655979046899338716566961092522143643954725167371779499261138289017191449269157730579360147941045566913208972627887405301609903359641581519698785398265653961643015598834818062636579171655793081957353647467466671600616092556663498684700250852766265303678349293734529184229073004700201381013526366794748453470160128257281731457498185196040035222600317813354119244913311353186918261329954311658837311709768224948910669295122752687672060134431574478778897474587923533257469209994497699186418928675845947109809469327810184467176030978025437551140122701180226036766734342134677667757444851616691760852250442310598414339705399025726603037875579412360854403652647366028372102229171411359397233079546281650685275136843351839421109990863032974939687849818671855695114848133324407898003329089654794501448845686726124530976526706108436741039960635213144232116082090956130630193528420964768335735958656146753678508800178220212236492280751771670962401785170573146017703966502422503020311914665811711455517565168050500248023309028318751824484757056013513365580263482868664413981816063293613870680452153896999503090498655804418885617211211657884874810267963654735195532996991741856456422923230106207552980177586441429641718489462242761416105344854001316610062938018210747953515431255257150029352925364384054494526022601915782410504260951201070311699301182921340643074474008203088697344129570847816965007036882624596239098333321086803058962937243036618993729391497114906262358994295067112588904586312985841497054659572072627604326012758463151734747536800593239795235439382453471437329584976307459649282910619496177541528708482789135286009983381204438966225170743779776463683248717305537403222137790817500348895964437747464819723396781294239140409481193324481039009324000966169135955812269747701959660523865797538779944781636922505454919974768051281529355721852524496054377441151656552208201596179400212566803018744495727112493349413782530045070020189464691505402117383460066138515161340286304808478305621144590943853891846069155695194153509896944078445302948017504782713684030720558530187003777957827707250477013794205226809163959138976931515465081670279539343131894174065250065075360270453131779153723104278402106543185305629955187539293373629141029342269203076408846497247194654877302352016871157524900502503958350103388022613701271464403852629729272946018598299695714701236468919292763995600405961245538147587193384326914577386924616141866305123931488200246133546069470552896340824717368279118659339632161882170738658223407651254946824365975507133572445109408084835633918365587304195853492964535767786918895335416504717793544810464332219089779200320329522881445722482798534497814539280859439144091154134051847466696892872343844526621904191954174599701747217939954059530064278969549490132193905772578061342210962445987333408606083772974429154336138678049907070235203777516088909305287242025543766927946455954990432588782692136711818310006531065695849318297209025957221014210391780036297981811716896712181672061227747025106594427151638826252948315638004069392861495596767011566011510820587001080513755030185757317592326135437946291366837830507450072333879382360991804025787959041273479737755335773692445741351355143726541131129588954476287939004534895631042713698409798278272586731930230250528323404470377464823316230486408439641584407991723561569633471421033057660669502914570382948919841432768973579803926823061379986527302102986276046027549975745988716862233758957555927717021409051693841873499163241509500880913444907132362701691821808642085472195698999082984195243618443018099424010271723832662196581243185454743190937967933236812685570649571185255720347640496708681117693548710884003857886274588572222204348869402244836129969134771278449186890137673134824258481294794403400039865774043736055754084666324193061081038558608768923838794288334682650446002430227445121950111137742239768736952680746362767592660077660700356741648753655928412968428414536171695197252947230981555732525444476917608375352023506257414400840630873339452321530392885041048785759025462980612492835706976231938954816812884219085668364555579635838189485116626592824191575613589000574677767108381346415398331209011245614051449404737251600313547381481277230064366009048045337744933814867492419392588718685030821282883181579972701540056716257045177653140273838953709591671692187450493180618076173577843248586514554071598717989187013743159273463107646744322717192888014853663094950947994870591791505253778210802495550300620799801064705206324515555972092129027379480533672746643888762496985423544106024834074379814390327825752356899932436102427535174160713117622310768930086264775587080429339733926044445180143828192758448607393901818854639111902679552342800105782763264252963169440258007721878100535464715914270191022145807695600166823165847974562227698137590093774159439553779910046382916451510209820026837304177208898423837925363149549763060553154243601909640590547204474935299931130289051196660130301698779816089699552645569483857842230612749825705323532899191574740053877145754291286503034933416886853528098045345493170743888242472828913621029286926920507445685159303688611298818838083562368020664925501529684979489787203781270341059302476155743534145495752014606425243306829453244930332974092353378469577342552613426742884666824434712045278441140030641981585489554887306879871143053687538303074671959995556177796416285347294903925586969761801039829623461742255821508825303380332134796523590019688342956618295807180249483918336025221687005986372848291157732857299040184860359209849646255652730298260266070943286614083850596291091859558817197703125694019564034489627368781058113475641776623401814082046457750081096052208393866553739256804065773551635033780941836273532053790632304030327982266026605646241613468667954790648078415605304856516557729288388711084730326780186467918893996666320698047094599679991830445080640248355152524454109938379234268792532641686247328318879600995881720694524746889619757721334309089380927412272429026445250986130213624153368636765426630478839902924977334368396787276557160013963129580656146621830762109900951636445342218866977486842811239327903214058059300168552463186631970807100696185131570757987937572062751282856320925260632361986448271828685102713772011744626305995580709688926889385426969088540403038003074515342332960840259079341966909905927169079918173460667174808105830545807541966069884904484865000119578188572174432426090644495383095504971000253138337920111701027885713164079236161248316069500012869095986374103699689455199016450504071559900164238960088629557984780099412117693195258305979884580162210261021824644885909760868290773521214268166353179766816736766207496702798642296170762310848627226992551747948825296912392943824242748797644146316828005235821755408999499588962756890965687530106984694671310915006634281491280346298033190055055698607908382614660766335317075336483777559908028484667966064107423538121106061108067550266538774180289070446754399628730746401078039639301014958240976788938086940276593620858219634820224192873423276873802982562955754696175069892019386727608342131479263484826619536510912701298989399360952337196715047905523579342153146913852590112575913148545052106324701844223078744351218946597326256353953815413959103873005549797818764349566276996854283913499679893805448756127929288356658578086122594823775729130248147519130035644894932925003513646761625103279445866941100973563498566039295553193997635607684911251929652284982902165634227952390621382175784726507869034005091618302842667109687120429874942056493547082994348322704642245388996916252449468804109988838791363246559512612517308039173726753313049652812500937733794224052171892991442197435815595169143169294113173917709967816551577062020113349770806411622482458602157641022470827199194780456015165970606490087829163287983514768076872754139596057246945607405444109027492251857072652929399863697045977224254911413278543487598254110513875045900813684825410797715706078150283309532514074416883168584660943100205077139163955401713235161786181740700068103357821191067885424381592415107300986485462616998939905303871449968603097670882289795559815288257627224877091283496964878449941412545043692964959809856564678014514320480678137557158477124218887830291548077077346938864852432436488444794256388169003275413313356554140705502521835332377964902104600928459803911398130107206994999184295983911578625847412842301945829605208796165008600014623849067574784660265712765903634502642520749162428199538469427255252042987247145857785925141547182149782237615418172263724893651499945722180340960901644047719856058685462480849180781708704315110796701269929613908968148500298613245149009456747569505917990276663467406552308800104449624481303069729205402825439205685927069246884817338197840244169207429465773105685072867841668903993361572687269136227941320302350827253917709608345750984304140754013418191721290230070454110805890698405652000298009022745943226707116117049384469953729010487689547365771775610573031060251882413980522121204840808922929983111671612624356944096283414677408375413040627142948778782978007990690578420478751669159211719388139417709180442902732775382918872482372979465143787561457375756285789933538512816672726407729950137033249349813894795773944342918196081067885418525766947923123602387424939446004572703145277314446602122532948648795823107677363529388179336298063560335300042401094341824543539452473551719732805799657719281617608620372864108920920529794496098769960005298371670541091082967652195858497243184278062806394368758153302239523686394286583895019372475258595343731283557766373045315958637598056904830148034854414447617014219292945711071731131258088159691553417217333901067588574475895892528237731383325873932390496079544448348458735682321815517895461870179041956459810683429009705830764194794571670455370795210576080070031677985731385374187002038697710084405229497300644583326653384247461520775667498924917877547221948757030720096272532549436043811477055285407604923014837806595189409102677771497944652671103371587807336262956720441670986230014930888622163385040990750886558028625649735207741194948845965599294519414605839595938353102827157347117457197672347817442074008007594996527901362870807711825958875639895140189640214720693391108189917514757549998509070980745964564666188049625185947704046689438696277105612827185909903374994503506891970927718939183305271746203060253750569592946990142548542338394852095106381396677963215308935535772367703154098608086880089917876844745526406559535911242252452491182564851578180597929402667920292289499011574974989494644508060850707153847911045821846730135318995259196154074913294729563371590315617972055828282400980187682127051259517193170235831824136320703734910633339249704925949537124289881391534440340998506478557129867643850398950518942024101145485509936133712964844767113042803314999337861738841749670079401218595748598244769313738161680682598491869647783760796467186581399245176121443405771710313018170374112235889586949261311509460096875090107248266991703878721424086324329120624119056325998984739719926304720042750158663075464281706963370853463695187884802427138942650784565866103368082091313998549935370969081853127043691704362984319618518963959216907235276847148143672523915140201938311671305205666300070912558011362617355267408991466728743008416166949750244466829155795933973893586858851933284851160483206228103615724537190576293076791330986286619757003324329236514199972360623368097951715126393121495281166091625319346286469019998199379223091015368310987910530576893840502116120424948195899485622520579902920170887889464946016756784960848712110753212776486128791361311974663788480830175532004517529075775852503553679423322071392176418518375746800292782958002297972914560335784918233465457216345152372379927390102323460026201588311456852162183724192967270500599677330657536022555413056731650388868883202797291492260119663648267726095193328313819991950918892274163403860909897786494756845570835165827514814662634600921033030700454299611163106104312628804278310615404570846766364673646930536045393113926492730465787168722229944498456004457246029567174012184249226511313220871736946052235033399021296486304892372598327401141372437304591760310864667121205261739461226658739105822855847758436834441106861827747084351423389630075641340590589331839423318545238512588447702329890762617875625592282752265736321300313550170155028943813549618357189760431668536271192024416787642960406605546691269912662386594033486342027844263034595421358489645711334933125851077009624387836960717567331717172044453656906288767325874726938792476608359490100820808719268348222316182550932745804859988110444655531164869824539011763633325402331610787905319409262583629830050910106688387403245604980498838990007576624587612469501262944863793679129481774179658844535441323929735195267719150629505684966264877442927978703869913044958727104789959142859592501663900117058967918282392132376159556620983508263498826150279844925149957908478411552504704890183668667699628843921408954187414323457033059539299083682917030295397608144811455538391622345850064645704632992631480754990662172757328895774286855715230049342382631241439418319654459489779661921966295742260438674307448317841877502328578834252312407016978969458082068707826547063592197215650956684570888983894557115223504807251361442321296920172593056304221066531477211841202642559089694902424615745578896103980730486857812286485548264162296985410942261410423180449923969698691289101306054612868304779968598540861522337736363137113141405478485505899211785191394570276348685594986648913646273767984688231159652315085302261476034115025323243668905964944902659993311640699691089714102960630042537186457212340698011678608800240106951432368490851582840261805168442224482806948801422870820727311533967653453470157851748312875975531025317652284192127484127291076538960548081144361638645185693496977697281362334311701673878970925239828126088260445424337194236720143615307164994594257659317900095242215333478827183930260035568236610775258990184203463738635048846880305716681927678404099863384819198250108086621778448391871497358134021607340948584615467979391785591045183126106217021871257232475365721754029929517152875390122094002617825253412348225161099966483611955491909874837764681116216144981140138295592652053695712617801634062046234357960636855380400871882063372546937851291695359464812495901176410406359960794181847619124550960007967666513130942271168949453829065357609088577039666772306050205046238605859188280078803582299055304453019688574254246089643876379514606890750941061526476184867899739273917825244150874719994244789104331340077997053406795325257682730509696655304923745681911262230503913002929993455619362347472057555274747976780279769533539380062666804516574563176073810486372894075871654557284272948331060820616834280298763232721555694022682708607379643121297999333691281833929788569482668697418248020447554839339431619442133340821917989239000313058236853929878074813641931127365400153404537720367549315695287416955516000036696782201829104879900983082586490384776040736220884518538014092673988706584132719418667206219473496303447433597104879226036830569316516568061963721927640116524563482791562105992404921984147436331930113612414736329097411892429769904325931147079050337877043454731951704060463919594427895976113800267056469936968948809641810849349997028543452571933356399377855372638709337444722478561477720736935068010779765535260541213134671431157709485308082411801690843836753844243384585905520402097909041966007508781358189166091223835213907916918421114411503637991185226718441734753761494179673542977085546535741028626105004986684475130153751441874716978461821054930370950657396742609495008475674757036525070561661934369116148312967707284531621308576504760516826413777409825682032711732254527544262950863170318685985578960510806615782372494441375485876314363929222133642444182510617141378709590604255877623047868780302456712347380311986352355623321625346929580022576605264491385265594527709754449491292008632528307375378902590251712635713372148974974502838037404841228370941941158856525851012543273530659091914908806638658414168912528258496346973540544686390375563669234120485674128568853478609867571109381560871779116062112960703605769693940639364505701179762534240166806096767072057175364818430888820653882655153726635658196244299451975368192638755497024367225896694820500420597764349617690960513144225495928870952607671451459283622211879417689412365458686317871550911066420533890365437667330637533876558409851962275954093695074274057190049518933023909888589290145164220731749738269195137145236560937936868746514221598307035824965105009093974114188303521399375137930830948117995735238624926722024063687476183570395075364554143980359685931926202539213444061862743022253499668806951294082753336074388562377613217513721391613735947079618616190550959597125914498374263321127020287894452921655488052824984374852894411820517840349283510034409548156384367088587350257280635784914597633195385017332512520544175546393097833029671376248554004050254082702991288834463682396082696330277476049288402003596427713046537079871161264403166559870871961938364858632417205039012921249294979558518977973487813267397104278933916330292905713260759753388509996360452375095591845236470937069079944345955485778874773415173316021597586183437779257830886360916536197544261224840196574556621386604766037040212657742355072675073451945790297554348583901116895769633136494799838229378291230183590509041440286385279285910193533290543886400983589238544500202916106019617460381169398731646998420615363525960245722241936210798159155250155522514016673552213526302092957252153530016311172751337737081341836520813444808794969451131012620472240114983980294016462586909096597832512479389697868914112835863548184127416419651169352746768566271990341755838113207844097625431474591357854437669797142945339946548399985085844893425137172436956757337137425356182054113540828293452621669781161815970224259173793561518823911286477853491171304186127158543675435562468810461530665027337554786204866501289910100760839497763256356107596244201427306293637573398014796526528239277330389185817038379003074139110780625362314542550248385341868423540138701656700977106942261284491687880667468811098201431406074920624692140780843506347629780807244186399902329605753550628331355892273551442004076775121824371705429597902018730776694664775202240440608121453202274423786853263559502420142836226928506207872076167710300226168454674733731237680789383956748828329969566533809571153462023380868405506461215392667970090372346113654681505573320252764824856427909190812304990976125317932402126878957029775698706294182940320466622920998764107594527112508504177783842394639216153649970201877163471450815709706528195304221738298239975558826321698084208824344895170824608015946270754928381443856408735049542515786153396745519825839293451175142005385262955433877415902796009339477989564636026714616014247723655020548950083844957506651968645568645877838550371756433981154887353137209633193799207606228388847413196656887845109370191230038832482269569082836258210328656747612176064017304401052217221247947783441180117766253987049470540147091827676427138607074774587444826095428920138052753325240335627029520842604075843335124925632685314642055278850665219714645578666087585221067404846312944982153444678736524139387272125696363534364479059310981597834507445418245706109244308755972600748196749629682819300465548039779714633098290066366043938540026515781848948322267587583981105935636212041932348894825410825351816311945065570415847251698171055659375763355520172340479626834095993523745903136440705401616689047104792253779592785052120964008028633843890503515132990025300577556764619354446345180847516744213302053939942238618023277090135217587253974814283612977663117914972242540635006012897435871248479199174462080201710803980801363172753516282012720101045899466809128046995270601875610406204187188110537828995534010158267935965008609644467705803625339093455557950044601747914088488002890478242869575686199180832127857580351883657290891305735092023736525702254396943202938087901853007895661898573552299929560132836356022535014018942369532736060819154249568846860141417486223233931366204715841885622076921661306703134797982542040009816986200741898423325259762123906424910612046159101772379009926926467426693100609767030035391404736410246079211332190613627560258859486882786336539408575562573248480066819750340548022108215005907932451226217377944267016092992753896862951233068659931403952427969398147565256105021684505694012286888397150450110105586355815170006763532862297902858884785067228468204603380340460086459496688051153406925991712859160473524918000862040954501718693353645451348495998063775537436608107865479255888637012351338923161126654015116701924115048997510040450152628967705615047282313299806926697301562076069715634017554245828577986109324565374517925537639026176614779613008577410506693735895499798592749936821697317936084757423495104455241561547483754531225061440318031503382421041700647607708541718677097341784682863870782183486549140930446225157266579479894283075954834978281461500767951831024202508344052025729522490619600043957502904950840980968302575191783832454415853802775578361084654240909368475808899214239554661073797916103149710333669452621679150392593990597099078819210529523750188136019408109196662804629149041237983709974285028658846303434929781836436196727836891326018204119563575704726436041771967367167662750174677551967547314183467105061970233393945927836540658688801894536201239799711681149957254247400795763773771455631296892224452960329649408231780802963447258626862211758078829806152360917539575548915272208173236804213644506675777292908564811043218789903871782321925655049653184858100972955440287580393748167064454396976125203813086912643159313924172788103560044457411880582159480650782991441031748437458005269020602356029076690511350570496085191015118468392118775531849987632317476320563007814922989551796758739627218203588977011341541966130773703898351257950988509017459696819009507792980208670354304056115770902883078619342162575598755050689877412606209644434912974712657084691948350731837413494980918665360881069109916705671211014128076509162621417018715281693029350759059914992409340836947581475197165540538492236005973197512693144443618810068180765023887156582432478880140951724145464802553377469821357808129662808134073427982196332413461812549838872705362740868535925611463763226046066349624897113270361090603158548683344856605669584789143999546980594057218110446271104243840042880232447850368128159301592393028306795583379017927024526688588996048304692951952889220279491351406195838204063281193370606076223406661629653935859062134512119606523270466260482607319929694826409782578070139640564763910171896642825430281327932432887627915149973049935569553697302516025228919047572525687671034959819579774334689484019863398630241100172072732716930660999903257371053294062097579506318803721912526604914179939431363255489763033079340385043450518233761987290627056846441163448761002995191803106326163655567995757214753127938658398639406424851481229385182535707065073672236555303172706905166925835039417428612809448961654309784843727231047280789770807601716561173373562586629638343399050946148959170650033010247824565408938542830702371140752335486088796298796636484160363468805844006206855617153805193468740469423684285615323163615504258482780779990794939152775612199117646113528134315369499218630930810914805927461166574838123399820220557950905218717281330820144438913335376961576556013565233028646888053773065595625923426562213908262255934280436452509443655785428218755147383403943511576740383369683376485675240510362247235818941923808609781667875404409349083432126919420180895725399195859853355572131009967615139305415720367552550073442014310645543438562062480823217363141336757863852233966661810059441664843817053962491566024897709765033677568088469398759907134220532595377294025117847704956661947094871592305963534529557094766894341602511359349010203339050289036777994636209873161941182406341224431881841035452361490344702468416090456369691998731589078292472573596876846173744960426454171559737038375318187289142265508753159058775902466574928286238478635208560659794322499575186455843865407079406998067675899398101467037916357826638992447163193419044282240920243248791959065887718122940713391369914942281045136012462381224544149452569095358972725778161839313694849225008481125309953660186788560054485590729912644285783612589838355949736139083023335460201786680989673373721124968755084284116282295863167585559751067266850497562528716006592023561886174236476490897336432026846093418456129790124468519897184966030789980679208411357013626489414403686113491595561479657248367397862875489942045784625461423497634417875908423148937753892769515420833277978987067354119193305132428710745067240012813630047596133047044107699406534304948116201911404761410800551029134095744500701735939422760729206428589799824387283671897302595608939271726540364550526186192429005914635195699421944295599190175631197355907903318206137960968121074610944539990310811063675105709306431384914665691851433994043636768465758660643414788450828246784272954630504905673490560584265607085300230207219665719819196749938514525963054076708870526450057691102703747273678627783036041576949384924361533641387443778273080842220515165228999212785181104568849722651032525320100689134385303223396329352379020954643264683817529756538107295685067985159483241710257176778828178700895986921801272163176818730785674380279927890856328302455641546052069321921482827038626552444956638719400573309046698349268411411552189240045960410510826612632114674098472805535220074606875052168640259640102844917689246787220383083967803313774631492217048105201960628300943975433801743229959213592295287539572704176492233272589023375955277711044349489480301117153885823065756567745821565576341518684240523009818106533793061693916203614125821545235366935778934925542707566948698673607398043734096757835387193112683870846136183352271207821364269360342573674273343451176666598234830704272498831448782091416760778073908626126634062795899263328944157434450360876225712979519580633864126853024588922734571948328759526676979782281718585516312509982637172996005225123708704893591449899909744939500187839144515483159001705022197254130293618848128808607972077731009807020268109357031196215727741782247728314729241005999662768692056106798034123875516875236896818457944687040053831146398505039939528160792908239473128784098246840273175475865653436073404016195171009511087684338421970587105507726416092957119577277876341495653495062459522516058262069570851476778558039820478999479995190853421194043640580492691331641098395497696848610614712284078296214690585339418069562909062612680125288626631673188494659720408874672807208934459531664919741930635806260511601006475814058948041566604905176246780923627814748706264978026571752193017321431261642473846413162198974340744350424955967901633629572954858609560179953108641590054378690748176551634943276084029751282780802940993092945478115725809887698044823239240680271009789691278680666662338048385548333927259449112710633471830648576604885505248709038535781160250087347412612868241706909815000824277497539459172215220352125528065156541203139850738317376650951173913982577980132517177991936316743903355316069559788274698830102025411887563510942517746856283551147894775666499608099690785183068442783923803207893523962352637290705310363899352249269711747527868033687333674570134594266045415107651216415271035651990558189127481312392685093588241025509379851998610928336464036162401625303199653113611563795728859834915606744540284030932316911861792427321930166475858528352980395164631392785587826085167641116618575821772691532165359770771931446049010534298943989569084468207372224110494902105653558799516081338478548753221360741175228443161946502758449344611601402229801023920187596146175416329814161027621097229828659706781160144364431715652333039103399126245795780633996560044402853957348428084403280533076834797615568117784316089423225794936886880827326953565284431580099034074471453500503214076877689741195622197125464198879770582468104752875057302069918082283065795536987420255497776192611145436369984531046672975786438896536610858146651462907805075169250776105588742474343913159700475464525513639529084157259505339047039553202712005497693330443554721897893387073292464896601972041225020969490637109132668344865141390921464910493657951080246628603281147617748001862932936945732360578389261059299248436872258473209320475340979992477131986991383550688282340322051156446022003555736469725908737656257198642762130912818154556171676798453488735750547755042395574049197310046238608327007554438334151606747770501331256804362810127390565307581138132390040632554572281211617465189197441547718877011910964977853060384220816079887623224115272384471812631938568168370760941588393661780174844194907536710577945964252694071265063721464339607399074771426759507377119634971360090092978638479667839566348065892630838023774238247244909581115213601982702597527722941522681536177155904432120236081056569419283586057768226862914288642919831846150306370018113179710849550300524267630738373625270914061234629495456614303753656701505591521326075417318160248808993195359687779355990715955374994150174021589264464256930751254021335121474967947835948768189623914800268683274630054843020520924087116895136005539031346806804304551965727119342345021485083303749131935129671980678153596152061632963182791045470091960423937887659194425023883491822608880229176111468856666620194264005355046630851935578011423547633403877371947377710230770270529278032810577018457040953868801840027144928285519033663709585415095215077993323156831427462369601369553581684594417482945014820568428711042892055059467773793531147422285950216717591807776471809074521747008899826631137268111077620420345858738272131083719731286711195333455474896625459962492757616322338454240231550157739390010489288985147193629348642258962530553615810138398888744183382331847469779609253709287155771980973727945150883090739983150843937717887545274129127662731696551081208984260764410476981784337984855050768836544304663561180595880393349822754241032100893600541847307888712697089503609194224765142150587463657229217682166119565370775612976343701720248976611367857844651920252596646863835991201776538559938723114119640630078236327014450483861397238468650387052023344528272227636012597027058183520379517218170549711278650479102294605172870212969899168465455315980521654297185686793859859328874978920258356997426594144316974848344342022101250034124858559834087415378380351199467575005550153126362562909630072209794576832231985393614408992091343802521383468739142714433884740274735877224423524703226945061596104195351636594741824889574257454355838268087679972117590228436232974916112769522072411866632007084752622146373028132858535045774967121683017446307809116584252801938538627289051805041708032225073183628137322594742922800712378928795878097248978688942583331043621181737528270385097628044669238805580635576950224040947971510864784720682652559744794379553975395976981451830009660531923270225273066426573795904159422901086051316015748424760266224047895074569915556320240382962168175251563221158594738730821195189701218128131940124998611025974049216401779107833678766079282283104275399812602239816253990039384443729074105264173160114875152394454324371440964856912308104970141646616330030690298945156917107963448855551002734280971450809282087513063455012424796247898981739646622938874020409530535802126382534335293874959127156800495897979393942672492058500778725011356294070792997590087482030852918758871517090947584976572534347594826668921351670277475728006837291800276148533328088348533730529928245843891672027003376160413568787367772833271451594351328806412675514057459012172324661041185616563035913194796258350580863188131609898009551386000357795474058220771539403093812520771247983926885792946421398133744720780458439695933309462004875516046187762733599218157687369515510492187220718099160233183582695736474992906382268168108353250746755055140553248771532542131390482822928973020546264921751941139932125298559105740056179270151737221063964815413577832354735361151346482047630401521945850078713262103820827358804984617613410961652473793196316182312586100998184809645213662134728124264440749957868503004697549019589641564804028184165412955768440086503909096114635548705590471307976438010596916011630128715578011883008023917301557531119071091226143600870315300925193445116636081132931247711465884250606628224011740934390019035870384357620130449827755168553325993654772818382495547427647069397622979683852388692031068821272815964293100518350422015350215149154137749807999228443389422041550627485941777376297993979251582731068208678086044861237356058635066037139608876093637133691887393760580376673872006377855158517035518385622550020266040536521983177639881355315577661260433891955895753978387114933494166694555021341152081901829422617256262807480312194476760902184264820016922344985703886532230673920149926803694811178252317661758052069104857021924489154799468988708098874516197780940229393697022030268092532936156910049274167395234760323272277710022557460828656979983473652863807401586229086391189189063729953435722275728204914997148033098218232829679428049902873364720788109827079754252170996639227161507798643244906191276266430294510628629495618153863521474132313994064258254240496263211705540937351660457390782373982545057876246352157415633962999626682254536147959480489409232605655506261391018833629639728552020899449502110280358648591362376076770618711446087340128683899747593072974247335627640487325916197695123490116897448162358011389386661545174861568259209654157961267577498111082487940430848764602789170868290023723960692569626645366433871751739930027264616456342013597461979390188929664339577732541097260606260522701589224312220738874595849005601400777708759378580528382223893083583095044411755246925934363202778320565855272847564551287918178542683606265510622669492239580513985907658907146062109324093314358671683991466614272381109991588158636193898116639508537447060529499348621101494940257553241076758479100123915389597841278583102435899453737592820896677289326579518254995474446270534804128705686801000101056690929509013611101475298245940493453129779517185696919452336176287263943199365462630165205649907529245103426986443986174976686350186727154428390346616929474704989913044037010139588695032604910470929918271083154886342702181683817344527960251380742333947442406505643445297675830564369951139119236017086024664622865933610098807726668843893380373284219401184045841006195275816014539406848855336909307270738144843350828175004657119848355023277203247817204418525085754507735085533618496846838572699604595130807773656081051372743123851941242423124746032662924223013917350361325283502763803109771965598695785841704304680209378431664235572519574810554617296399552549260681550567582644065118758521977568611955498450511524992940304857305775151137226783888261085039424041175970883775125230650578637194962813715442937536233931428590622461915757850679547079136997649825637523256098566967347830748248456677115744786829203604678788911489223838157864506920420593137248744463060595384176041927781677726205857563017535324336352065598057507689778092804944001728253623505200075502654779224927508573899559325737108086078172797845673738227911065654892963243160959556817660168856219882531705310192461125516067891229330766654473884126072078005648405246522861336227214590222108713345162581294946790957393212074292857346659925229360707481376544132525277468135107455904911742482188293243883521680040870541428469114352942542848127105881392906061798467735745138327550533931831482737971564579890895559855243476912282757655193788900333740377693828069478073391874445233035757681470796442376804048117373096266297162159877547297006418575110231405423028112129190443589379102902183822926458518554380737541442558251378556939339240316659024298376486163153001300699605259903029148405971786003495884293216441287276789533514195491691216407806094657069841153028700001851202311109561153281345188227342877685662219505924611720229359707673908074965270550688143460427180260257093799786288645722208025779206351523840552767627602346025560379000619254419712442157153567556544896394579503939732621172577420551161293077581047170671114955421570727194556368613855746866054959242846800824363884007721760707320749297717264060769802122133831980236916406414141735517468894410609317672539613236241715614142234282998446330173953824997792535668419811071383919433745930944944108469831148967727780620906147729624398841363763433692790041786630558511999884587228910784517461716943119813322401628756078027121136620423930348515533241803646522493597413826393007608420860386985979048797274697577342444538248401491046591188922964020159706363260597932727887149373317502156860520956865936917042511710375802755774447334897376279564248215792239181991124142411995663734315758727991303133368334701841876032085316705434667696488457711200257164619020540109093539829582278319649070800308682666775138624329013223335019878229854637998792388229329144796531766446144622304351733727895440739057909447834053248653330966771477400773573658520669818045765037913583426439926013074219857110509245534466567388773765890164550946730688024852950823873738584313941823434701423469169898501731158007879390270581957315652136540133831874548678849609018791165689723586192967840324968245545524681849566817565818719234409490454393039901069500693500368407909021782373160715278072013967777394783310218817289457344704773852153952588412902188255644496619709506823185072858364467356383100344033183974941887700325721003475064366028183065100297493120906281324983025292500246633403998693252554324526561206300183070597418324391372652351247264041749477541238212245169933508022239708444820105327253726530908415788429340578170698180200438383041819998222596200503352349423037719390995119518840687587720208454054696061448898988833507514989193127138408431295746944866089709816003309436675956042879693616405810556444639210175669378684157025039230491080859921235827869991115687364801242187076556089168267589518315518246129199661843750794867738647188662579679770661414384080539439109975950549274611195773531025938322414609771120719688669226637238658612897779781468532526955891110555422698313967420855399435945036627012209027245323002520694227117875984088891379599876209363433260661938603346749957135971994366791765491061143994642576446399613887289163160632941419502334536369846578642072789231910742816161647241472503684348643588358338287455513464860348057535055459397319906677225226296431292494973030392362148012379087476871920300477543884311203218554249032638658278442946203709635572971155080479862040912577756956832463500425612395200026708719691478400801414412253851851939766079985247449686008028491850274581896296113215835331392424001625653597899432241793095701801608729212087722499878378701636963633315429648645737023097496371037393503400076477188549022945221103553252516052591350261825156730294523253086289965293476811305067994028946392063393008175135529423667585937702678549474512498649476200440389647770363806015336826279898993826181303493241487881120004259360991548387296826660425881653036918758379849407911200890273503925620019365407577430314573957983389223804062695211702129465022829153273540227393264913658946387852307691745829188004314468015106434375299736317468588289831661671698567657372556659142749480449747009704858891794231471156032301528807283077953988926923823295104303130215917577301295554206651773177076072257383232258211032197472484142675624619274198851437476704241197110493768820065182972041703211626171543594048908962515841396168502968659836131795316208680833747559931981066960917812911710880599584660011750026333555944438359408147824770198555004757640850613689041540651887885464620310177040871498753394682123026947702061159448124629171353552621262662820145848245851653212652072503487315527311476570679804771564742727639956060306898877077140733639697039454412974942125478108935375463305496158370009028790235363120296838000979866607972287297986417276584636613409203968055106472726725138976218586786390991845448038423124886608403309679733889857652589004775362652329172119231698419865146527584275114297599233991159631467391925167093134272174008509614834826818793838178663601753783570491853179930305032673332194935975633293618591769684364654889699246090103143888746986194380153173704049605835149566428914137827442955224515074565803078594113687025825716972079935831780447118177021281407338852244779891702150720127560240074930944355985020486132713007081142816575361728060744912771410509971828655092884416417343035638549615283542636926604575386229725768809052845777655569292226622039129340845227970688338243422368742755008220584791871543409919221593177158787900203480528832074381813151510449606921172512293804918818250230819274402247675421089992670387937118961153966220485333803200195755642414778389901148425421958182964128097615175263488416773278831201000524816875799688149676069604637991588423852542911170939388324082098070235398530736229663698441667899219025886947279682449312452477515405095270291512798791995385860695314342163278165750112170722789392179163780341604918983460591300745495047353583445789766862737565361971299358649045030719892002768500061475703690959499127339913298069023118568237433793187873707455549578004430931931187677269378331456405075027545943599822919380897285798500577288874270982497328511539620499508583900004546765891400216553231915484721856584319886503535827578946634747155512383756101009072178859511337697498947578019325437819998030976943585477538354771573046103799461722041604381777111494910753852433579940391405232395377060399256183084297673100681880926216639420983830828190150151117095335953746470384945876233066782693216970613387335331514309680064406257646790810837799302998424727820984599051915440508575283020199895177729573780095596243066007805376830089890048245002098648756962529225836838930246380146302530979229901742054311866576209257660479645599070159803573418930370649571185006990806108024559305252955594411114250129674081349420520268619125094711944170489885736980836799107778284662311923590138578655998439441355307300373205825014248084894774766084749960267575755182480675716763828592354683153841217964025702280362139289418061046070054266310073108037585035700241108517463973125517101112255345714002708295788284018100518220220457520101003561102231087307214550465076283044147667165520318877326641154253702545615844010061295258997076327319480419889315868420275921348972576915013268853160059229141222680430569059286386371817894868771064216348872895213625598225611392462813288404412026822932933486522655735222373533355830273495994337442476826145110995917556103844867006474318497230919877680012176296611734381270540944250209922225387212298068913727642748553346324338013615241649667643862040957464193688019033191783938709170124571504665130411004622238490341221938588887481617897372836308015320613268426161226802470810532169801080148672705961753140653856458453119516014263083742508272928862184099806716835642295954628940862870394427614668383608626517197607569221437577541323140057688115148365464103781450954588569027752476066197260927070202431246210231743809715495330300474213992617123412193648578562139798434010842561940700952885286567131386006038612728165543149637274305878576948871706045932051792160350071509514757045141025951268424453753527820062164036287757955666156117765538222227151225262937437375733110397357537376557974375809984673126671369620560239885976031886769845033394867773721464998703258123048474578457022937231217726691062158340778603034389116789958733380417369934575346715489173411205222862501301907752679652979723797490219884546796827013474656149569891891333303260414081440615147660453362000337735878136883401694664409362500827898409501680100888697609780813168164197541653418516771981284330526247184966861867319400157031184510849274978620395085958362725615783464293796836569237734570201104639706639107641140474300307577347713942999907024667333262454226741732661588558244979476041143423671857528719407031388676689104049723297447015795681184186749695550323533046186020921115403106911973077370365977692400244319147031492973567439577259080536571632804270080422320524015822324148563260060400225880819761701970160960157452416591283267788836222117449910461790831049265735930196703663652320877371229429056999830585339189887816983407316314552928287605315897369531912041562443540613701092379275480184339654538209036721645956901872351909289238525506602691383641072897873789077064904117621218281218772865232097281823713623493766110986227284076759294959176535866961097369671156386705573880594032060929633042628520873130483668310074905552441086477027988832161405127525345908207624946004083328387961967303371847293754290167106638198993441214012133145817190975915159433707746795800823618335106211400477495174195325880708991876324975872214119333590195562083114127737506225167652547923869684624434829154980501662395346278174832268500241844390846381492901249464245422301035884579615709881578291627419739525357942766944285490198649923610967989830896119906234143158595558736333419826934851635262238395614804871987912066187215103211319898236862995984986352604522222955294748256594424388100223227933689316635408341509913462924258450940708369864633877872348273521821210228503052176996956077939806081336836731575174454630998379382251190540929163029612727270014973735979229620623739273187106142661796961083957554752714368574003789165717962808353295397526401614943212999978650314341289515119240334341995821343066124391799385619843479969541944896046333626790835573754886225430451069411585667840050679619732565868458946968032430665801816801780042550736126666329729207530479287295375688421036237535580008118181243217971877736351191049617316026401903527459346051721338289129309342159851069685500457044303410332134422284541493508386334373207082587598012884996547141577450903926565716760923397536946554068547376079329376977807196413945322420053504289514248713089020837390451061881529722260394075193581337339936742969238366955011401120721142151088349977390210379904540432056432466219798979818594620012953466432003601358065549663469245313966721097047686801951149221933149538209459967357501146038258034520960284674113056921988107348037648647119938393538170283641108965862236344175788761810727216170080199212410043429555968628491644171882765511292367642801732778820759735790164747878954788317565559212001815561500918941533243673680254608273267075669654799572668892507650494741519016208294379110380783312326659534819483427920768149572265109591711086376941108383857225247728718126107894473345296656769875333102477070582216380892837231097168270061717185281505093987822265284711485797649553760250701233352203444562032153220582695623746293438081716031293249964520253545941151343270265830031224875035862278194705252898070042079813428267577907079870069264531425779505004560146532880809836153445640964356362821561594308021104445496329564548731278582010313227584072522903136960730447763870225297372672097065055995896415784724559133660390188405119031467016629685488211012334480633508364033946333748991226353452815269874159846704068483740254703650071953963784356913601012522740223931391770424192771385383612558293123276897045892834686061448926808269598885377706141039272994410844345157025101238457360241212775416004704281170086705550036976293223988731890554114263418159060270368032570988600089484179832435659978298625527192283156072068698968134099452263763545511597977897202622875413190829347148068639307033176643966921235566616500118794588468196827796449563862900662235001237546394781091730103225328992527743210620998429925912392926973998581329225243692388872522347870875635613565710622355704413230423771601029472021078214120449910189505230840439624123600101997916771328698437963074154404687509252039406644665053709547653936542175219716892735878148851909816045790022257463294783417101885681223791267587114839809294479952865843077974140328720060445268372774008353369636390797559878424161686112045635762421996955143752095508830306799670013499089346743628967148735910189272656718685497290704749635700647367711134196831534269437370180764195147229970685008117339500587650731465151713675873811293759313102621954667447599335064025294833831669359542072213177442545161142878538068308745572828665503366466328690920486920850109374875167239429524250050359348527696142270332233209326609338868939629438438594175643214052117974086324984764537403982821128526430923167721098884979710842699269865144479694225887319088068496308177191040819176884398848630392566359192564503720110395504915147943390411594805408050472842523606288785784385778596188467766292375957945261235142608226885868503579269729180939401787869339516813780673023942454123005047106274261853770106702077916688464798436372518616838999659887421406254557927607898324712282821751669598071444417145069378940660669734732720717814703145622785209613445227452632016353203440424669063601836347659815048050769006378152241389752331920014942341309467992531354674777237386541469586386940408599242373654512455241834092923884959482426898687657765135998316639236378964520881412734860764256228372401018402210695412935694638337332613127102455409919684941265523817696853632494292528760486480190595356124455020168838447997907518471773426267049662445980619785256850009772216005475454717736606403306249144481792927483881898378189866705237140503747882256119938539717361720606223693872892664981546789100706581984403419879442690992656815540124681008473065691292653543093470893584500658329554082866941761486183555426452363307987929360328741263238873230092793632854274861965556422165759988136308914729858875149946371327583865436207615892457851187251660404450844953188759216098961899725805396786577903060327029855431310431754062271634667602771287362334634732526802747827412130403695446041253175453165112645591778364625378067436572874813526359941654226073188698923541707367485198750256492613719017888950074606978772561129429006425334727370852515212065300050419342910307841452696181161624359839202724391521853144322151779211765507165432563248444045801947967601521862957229752977709134480626559722993794020127853299067935724078731930576618018631835631464943630205769621237405084453067079731979393603377703447949062525736339016286498489026859750006330789151610115100279912534410327096384395549701033749527925290310277403911845878985678759130168594058161670836040536864587121257307814293437136757626723443348177363783286502696869176562724023295744758276261154283855884768514368307663602712560363375452370134689385187174465082997582548384831997396416319539391237442315521132951674389336008928182019666161386967288989403609940001663066249749449001654627691910927589435916397393931744847561321698442091613072978495103358797814701708284758504978205672858150622093688466191734784970603620414368076855532001919524989089317238687345344943652935380514219574935563544743065100361108611855426443951788551688365213400541779399749159467846578525943790749994033065914387011207105168975841726131391139702308933624255550185256439447305549606022462944996424061832073755976809591584120948301961450315079083184320258667360531643047810874032945673905689755274841862084138738930728157127608746481041608282246983222481956506229355854310139719806376022782279546076254488130167893191704279665790491594585353294592501944294619827585788710695014666701505900078226913537472584253840879668925526941404108500040232560144597648748903993207721957989933823889116945337726106677967164884784387255843235857780920495769560845535623244175379228714428332016675593221103850792700788745080707950588443717939164962762843234109825761990567399083433005738707515699741866370315231527744497408307042407844515873129770224681047343546880457832946336119050756858359586908465054343483844168432106034837702563101777034261637338941289149470837341351337156097797472323737820781076600035553014996583348498578583305235281652405947718995772953524055100536353432833230886714304561043414171280048488618319496479124447806289353203111818289193033364932445627420860136411342833788559617456738859938175238862104750180220960309948734620829330346531804063320472101951593308749948414285064067251266001630391033862649754229101197880049609494252892791818888319628876206376274481029156605655668128598087816577982815583940554542777300660561887768329370247933969600308444480382014158753322611272496654032170653397832140581717737237090322626219874685821226310654552689206113003373479608417472601555424295056509514475494021092886069397916398273199080906895260791272557536893971650696186683659961814379982849842769867957640111513661057700521571494755852362446202187020974562497404640235718365905207599371724179224683930335070142816877071637206224546993523982885166291044484779276132845557974546328317327917598257487198546790525344095869876994874912630369408559307081627154055888406617383187768685319365464247255075995878620909581643544383166251412302789187021684620141887508931239686015040384183099981518344337548403488388274849089192467017504998703950119858522213574170794633784040942460040685324024595566007741007663191889380189624410933255409897606464978776300981013847722592445822854346425115563570356976860616989153547091021329259751739738544685846102925859906103898615786388594484231989970147891943302167131083158389526943486456757707343284873648296506975487828536464928112918385445703288688976611896510631384660609580772805127142383122393403815573509275880672216636967391720009050746568881948597950252181809940615832953584774624606352672050379577158504662871763943717534108167021952928005939507584448057515383443384567699424877716326189532872300325186838970956303331288562637710257232459960981247770264906882932964394339133054279224843161487771423896866360221518461935431328400861952123735686956510190741840767952742515523651476753406171254247701257268522928044699108801028339390570336249063669310923753485520598199172346766257063012304960537083342094214768776980353584118328356874258540652538581052908132933984573510497739841319909980842164941772848111262591726904392409049275400177495285396958574347528134116957540646321080899015451084030893774257024648709932781279569690950381467502480556945041148098869580878934265075936178726638470175649990061486892831988121778871502633514697049743752921425699488198159990756560416810899665638263570593386976729843875130212493739828769513357408493643146163390300632300818734735640969158268695976150558446813280314233794612579344477121091610887687516044489593590622040203870930036855441019050926130768803185337686645889889489625877739047686299950618308816585119585068039841696888105379690550641231657469100434973773167563813760164908477880525614313692515857848163413573476878949216538442949787845113734184268620879438427657608412115566073848770306805026340150210100364504735129044690042414606271035016272742274576040798434460163776402271522538537284668884160349230998792418135838873953983233136357240655673896351117201316662050722785419594431919403013608559248070200541766707483749757262656736133499679976540572259500028749585223343396390198792522602800145412660079912374742207169629900085036487410673865478287699840523214621359412745785497204590021855795985557926057863662523810753151735331355426407349172924690193600276991338912805329516427585773431707207979223689300053161943898957877535552527591039164739741777223578663627642910965229379806869201624223140694802816022232862599982135648518111542147649679935391141891322436473505387604527636561542621011530126184284664537180077902270766067456292179391847017240665078847953006209941223300644322133758975029193580643653944960346163462693003089484955298863642452842103370522964628436225689108217650215704556164257600522943997570888283441443689200759875310570548271938844914485945332531144121056749566697266524318809551362783457723523344786720878795638897102603840299036966426615454122384913218767001713031178491426534603423746435966382430867021874912900769647480121142227913372888616759862779990881432899550088592778809894496934810247028748912906784710889772381696814478567212369640392262613469752457163505546947232356250081263897436830783815843473858992797211762515699898745387223952731447811829003774255918206591524668737886306687117467067283096293311469625114892198783663978414318729428808860964843060526862228801516969344151499883437786038043193013093850597056126767142035294378839893312381584435944887987708319369079743924055922369580998344581151690605679515323211068959512588875578309562718997927684503589420560430099347488724457190904577172961842646236107298069369610007199323876606776309658178567493420579127155062814124347808090406603776631366671359313703234517038278015533025579565620700505292643809869385061731367584978893579875824632438116769296628611317770717053567126826132394903430609199646061387851424916327065744704996954007719089620680317941644287409993462210633906705491657985237656542264508737320788538172302866165444034080596443915958020156336522700922430808694046252580601937062773181687801426747841915727748919345630427976247764366638210979300636908587847507563612117304934464465404001620559153437367646955463889298978271079327649773841473117634656257075246271595984274007053598022600310112286995008505975738888279389828510134869404387762648201937546844777061834279166780046829640146258139374610036555626147175220106369763828948026897715808468609175123633200163437313978264670279359535109015656969856407422165030337429210098303147864546363008313183817263987374541391441938220085198954766750852149585014759759334810611969290308902174768311575312204108866321977837911832716019621868339642211234895417580416579785573859706484641914856837503927305687197295497208247391333940951275342999644860928902312612091108971090033812685363669511843332809174873823645758874374129629136920281666129420004053423758784107501607657153729064171755383405308330419725311429471048473506834293343074951807908602123566338282013206396958998552880125605913254057186626501619091137511833379011868109012753322386503961539764537373146601925796749350981344037676932547898165996685548101440879296216186621893033878591463626300071705813880253669242603807916003320607292738876624016812117431927534019875813712072890317134590064232130483824214897898645610487258032856188108651064567228198736759244410805792329403050110142818130045391623582662115535041441394928302090403060555371249624423550801760646017694687741702183104566882123959678252043921999116763750046393253423427548602960850690150907664638155739879542734273989343157044442285560041865588520497057299563727024732077764458542767848027146499841318502017908963769189401248824126412501097833636382914500056408662734067350256000678709585363833612028325616375931103033512647046123203696477566715826260898114554668485701402829082684004277072329128616128950806449714055450424958553084912164771756826596264760843321665547789440927078394357695874866088185644702495555484368601594429974415932476273830981509587055622157752046890803634377658391214322061832059113785749025767298889264784337215481067999541424406757100806283588789350885035707499912125484090313806645560357111745032185103026008904179336600518405360741502470296830793065875260997370472957614179650180588194437232570817158932150054488212722886780470086275692401627907807823144641196584912291768745067761637085364400525479721735812393937581028267846214375329006753712739245356283884208058302224549460993421118944893367908461796613491661084652495910520966466529972344031372707184054871637789755847891694177556926670163386168232848708450313318876372279400408759945234948146603712892284348585428686050382145593765854146947057711747305670489423586639219528080512270405656475993369494182218970274393486673305625433431835242156052620993646029784006432434447770125350500962163975592152611537040802253003332296477260138831984299879109635348127661673074977164963495438089753440862440945227243796332031582470980301975236539826644898810731118007755407245330059908481197956630481603315647370625705082044477680280016242853358206812748033899681539288295569151365885950138836265363279421367482104750699589229772853957080538256939503501726451330297658342542450636159655839160991040426981611635345800834625567591634861240864104955296930251128400458448707338226847662202965210857129253118354311238554914113546748911722500831158076843883456212280886667613086531557391438617982472581039345276627934782854763256433410252860044393513950813597787430678258231981316309914578528770045432700842183649497188509489149185867858568473218565147601300829429550522922343315130713080756072189051711430470465658177889161952601761011053781318064001047931216906051327568993023991551190041630314314100204550672035240728979032999393953009351475944957567014854016008117500519258284936964123853673584150818294582539865445096649344179886602846808528003317805172234213079541840968824557782906181132297056882671303752732900957509092273656200963109043928618596636219260128291292158151920366592519862755142209426879632422842848391556224513083943989130224482630538311277639865692288475085879547578819854291636069495197830648516398898659401346894952136389185926495157254910454151801190998684171537787202460540440902742122770321729435309405682744654812737402386896252729176726797356654120358353116523796176472505691136331964605292754793795148135461010406334383633996623450123397578451928087675406156958581827006927996885064391266981816387169319635332912082906769294106883751705164298067670704439761208702897819753210525230596553609270015167991549856576511731342554692576683627561488511678606725717234928434357458754967977648086866719775109778354751300852421664761705858917851930637198014406679550198386527786794880484301880411977190373962708811071562033075655605463642995735893254481312324609330665421639585585834426311306792112025748948986091107914108194551214583649751629181485057698734495833322123777079116900741005383773822602023278890922265627956605251894736643565557479117122284101923086751702928424139113137327735866246298697258425902865816866765030680614469219325836245777610411117036163522447605012363233442166552739566761311078923341465795359625450401248092607329479608573521128043959746847873462003482335250207956214666696683327352789466666019278530904395992093255835009092268460235398285855627724206664214357915895546229696007536705700355193314817123373567602514725121438556536608992863311546005293958445420065957628070422223752287240088985223177612862234733377093558654951913722197415989195487079184338552591404357446264108105326504688559558853500554738615705693509949668578229454474077137082991761867132300531879534797352504734109274649808826376324769764928749137967275045521336569838107130351014887037883438199752103412646943405525938374790034850936009838728672080699656163036008270361554199988812689050477339103956931513055983108371742077770878752332957574681774259248757712830115550056748136703055194719897261159936117150724396260586161682413014126643292573273905388347846940801102958069113802219892658781171131441436100367049432132245028159590628283607310825498427854393021019672985770027992887268072647154660598771343164815566181244371365908940334645837539680315711664135669891543949382002171990676138388137348137140853695496241274794625201378964038607133052294341412887174794161067000267290587168587618478162580722292665095410858308671814912374651251988318915604147926794920569959454161197285040622501378000136918765189554835641593453757332062524917502867947902667298381944233260646213166545316512834457005286362932247613883628664137484813784099465968382453291441950122212547171621972882781203595372168315667925418562107871598128173250258985569660288873800070388087515544970228521667417620232394142476382460397119573345194995691940133929503573018853502331200180962615212426823253461348609305236222429726142677279205195708638034754633043912761922033343269524897646357432716541835568983795202389097253999846508403322176933881037269769595432398912107975562171781047125971053533000236345629477487304708839126585597078550773805517381748680330082553041964805077966488544451509722415559569529339583515709223647405275855259052206643985772195135224537279112980394926820580213268872620583418174415167612911805326504693376133564485275150272740124109261217650316436998212344819785787132946757757113658744750529984064929075144445764520414480655571966662052361606141044949539465177360146207769966455113624050781886477117794165073497887747861414893303649747743465103153750454836569878988427250568013831424572537663368995235065344543706949303359551184388353640272616890528528695474739695988562291811382390994879268236272172106524290914642786616533092912020850804345188683771709881695750823067981760246636983201161408708375423005031631433650704553490981225197758785979061696666424927586894998608029177761034407063487370850320816031130029137663257758016352021331327018602656472062949130384560322823669630753748703416865221792905126486463231557908252550326906861614230522304543835786996068761887856540272709691012155941030201192076422088510256399705084289775230578492144730037709706265544552988782912094124923673221972810238375545866678138423267524884437789087861029476277532847178492355722638531006876962960067072057594303010889711170737608755689179011436192245002084158480306413798506728536809147112001395898801993276361134591973166248555838792867350495208649138529179490774877055930942597507059061309524519719034344993149140111922260968777979646749572545637419550592279913717054211106372697925070966395618369913430247190473634099080355239721937709328544352919114921666323324344691465314226473784240605796831296189737038439985337852947334109450562857943314336090686330097397017818635174416965172600866837143613618760821257375715551522849845875884250066942066070134471806591896855747208903006874198677231789638514133417932467041521727894165349023296497150889962431546577848509139014538315139616687213215888117842870047051832257881563212131967003778190120620113138456245839096625259034613652293403307965778390368687273246962311238677693021195648546718120410343846611905137529449845158381204121835260927346622866272843764179162373379189967543133225187689619930023305874759898847325781486296249301177840946054585050502321902237476455281881070164924658974599174207372021725707249710122249036146105118123042447055476098182048249633756598342498073761043163604025893523150692395784956095325556566340230891088157031630560745923774574867540078849168540906142342103399422599487757142066532965554093145673096695945820028571862766774848497902918388028878577123438413880427237108470267076444769097792688844905414570301508673856713718347262618226582915034146724223047578706975997458107189197462314880734997975183843572226977781372761426642671970819653859138180610428716792371715107417159720656410904766226859333174666647722484098101694967030733250189552046529733591797418368665241867964430547555030990919628232771179319367307538200875302581600626432590045939108035929895284975651587225395404359873713288157498112516938782081263738955966529460272074745410381958569950693318673043662552404288886460359534480233253191968394918405046044196070490843701940176545368610402856664592199974208057461241211050110157690956810163115932395769655238475315741535119165146034988179740607829728199720043544993669419976688137904278677854323320535739141233652167202937911543489333362313683724422266701760236207014061355590978212659784074552028646165222831681184304868642057737311048612012650729198378064380772409964516175089470053441194889251712804568012232780361627185291223192272067905487698594188786042547693625244219324029699409509854593578613150985017241656325330381399124178050537839967362110324938861364879569132297169451853904848714664180564388307951086645801580118531372969274229758761742269595463811026066168917292539659398477585507864097892993066882307060175378028772947913694787539684290013868304254827668383291057744721539788145087914664502840630453048065315987586917957791441927506864978187845416090432078852514457229825803326499235009040576545227348923448366327364336547444782469071107027263256632558086608847838891668750916726583003875039068769483975018466412234965356584158017408124210100704777473867246346587198768938863720383077620221083558901295570279074492532553970384331790694461536653004496952078539384155335683330067035558358295984252926222996578927810154982893514440895850570258928482149575890777694567254725979723442056261927808987468339058212951320937723111377134032408665107670864398951244316437578578669593979178862816500519700562891840097654787752062882563100017034034264020730534524597516012883659053513135318237599711253140112281215923806886731928941786954159502118494467933561912030942296874758118218583619953816429516360529122070843360602216236127903305205397910638887799176834220389870305326449832147358125015543282337966342181526694868052975991386024765316177793246134317796351369452934053840813901993554066230404546864507961253807321817834133340408849702402518750041389919664899535212898220904590947019414815806566879690855020179967095204618676557139224570967936469074320725459623535761960384644189639735053423032313964286839799635842132949118726689352484903511752998259253448475974027276510165932559154616321802082874480088854911776604643504780153661021738104710737061837293378488304315698064810527650880685045215133738419402748011076653441694028923754867471152811889575027170456896888469490724400780642580059165435593491613533590530199104921597137223007529331187048982067807150752054905622143195462861001174664602124263912576720622933412736179893525742271859592068610312615361720435023537068249309179518630451974243243102546161685746571555994067060263546567408573638662656992500234911197891152460409644097986623098892171379953065597783932343621754702248321257280091278976185697833381121071882934846333071287033637792621766705579675413486679534701193502296774300817444011895460559020981194464735864870631069923502146730184814111254201162180710778935126164686628859014647480517988763567726684522351815592285077148564286375012216253304665115418042519722078161092878278448739146441979596457585953725293673994554019935263337056190261816247149382850650410956408079362941107799913225924785953452810511625787782588870416318644535125612954438896961534274857244354046915442725968242474026784312050232344524443401731332541716885683629723424649635943167268107476574980319732265029795186753799528640901327824709987759880405386842537652511124643367170421823171275243884971169011403909821528121646590379391963104767339154628417482478592217753486995725509212374806949307577230862433451525077833103512663800702680990843021698921101198570819840821690544028888443746958520846873627179653879668707293390417501572889794962277880104789452867962291194357636641085005364374530183603726996655518949512999971294711992311817272613053949049247942889654049213588186859589647879402134452308996853148921802586207523327388230093311839021425908589124111250475365579232345398895337394507658259862625377012308815770424927081104180573539397477797285937845535700321324328017117663645305690774403066038552358797831669586910954709977078845323662407575708153905198280647987786028205046299074227293839319412780839206091679156114890553443114709106794489534764044833099349304857883246107820958180648059190823867670503663680718300941025020108798099826076580214541235528881593158560029470833460444706570037093179157252048438267212422675288791043476463005866438245660469458619064700630443230534449612150088549811644777721203845999825507430898404104844444327803932708291298590605955543392029807973407417305044140910062068602468292794883901899165690586835681682138504472332249944738186783786593251264899692484759654947237342187955169710961428533373562426418955710114040116906385297084827198249037823174408966385164253512296807700628494844818220157833286096991857688876748649722733739707665056823589124029898913322883430763492355538111166954200755449340315618631070277647173653983489873003018092269370312475144607952350295134660412038490417525880431100172731489709145912491080268430238464956692567690459822337895147671396403535317155250814352924248868356436932233979614645961932904372590347226762347866341179159364123404319833875950552596274317035263613902087294816318933096389344622215943606546381921699797509917323333808712038845153209597573924375728487501971302106949286874397929261443859856487979914864451202412165112224410069210735125426909472461575084914699799990545234093929214313570512866952938087821320631917417938825802850332059007792779244898886100768905725600530601228243631432006028300943440200718212973235255814864853289867721125430222286424456725457247435714830053021559045583951205443691086185081044832727777992683350947686551637511359078349735773157127967819824881280056404341203042829675897475426818363647757717801844144569059334634557997478344974423000383609948083285092724188496252438107617890749362899836902684873166550835539205451216894274999201612345504278982649076620689942281437296091450698536381714182136702015999588031881602416411851725691886994205215365361841297346897681526548092637148137633590390054926000554368512136207219635801542030041589198593200986178527140575451372641822051856468115531833084666520739835218074895422435758514618092628876505898918739864897127297404237204998843646348908808044131543286293789607436920380643448534641853260692251668692822440215479638585505467900893563042223116037853783029368402981218915203444164077900974154269216158925326109849298264359728765262025280481596763299981096846234191194382542883442394768718416175153765803126102345878779971874216158972203327173288778135540578049423619733761944966013419912370758373143860733927494299124639721959594429962537740759804425775191773839303104820425012776356259781914744626718992691188124346096043562867969813158730288118265661428649883857625745911516833956989959600572601393026988511052403037617599010672439515337709292968526393973895659037621014060894610145663990371519934527128650257883726706008156787611309481246562916184006452678421642299366066018963241572943638364784603253316615092556493473348945671015226978043919248453845117993120641707921225411346946504011935647575253892097760398762442365781954556107201701924485772919649335312983183322826556012835821549408569309943768185767671576920711622991018114533537010079722437696817023758570788160951215442113036962113370999624631358954845464817601873758795919208285199993484621664253763622419689070994523877390998380350394244078788956350727123106216735732175433666223329440972120978507573928844728096898424339331482353991776103851917415208092449071852171579408747905022189696851781370332919896689664805991145860012967806695164767550290884042534893608210683048612467346037777017795210979315355961788410009583842698002050217209739223912845343544426021101284412408791491767747741325780926419240545630565177856892125179727253820489566960413093770651354274412392908857631207240026904779607682090321003621019559288994868337711049321986499981354159255023938112110259084570393936108973989373482944796352863022721189824102057450009114698134464532933162612561341164177188803576437138957116278968579752054523004316936605787279472798390495202552130930243560998670751120338124274679080590513290974425415964745463892526536009420916463377030270530563728017471422404052213377367016873852163097170408495001729156259113908064011108373043857024930939211103275528881992672635630737697491889826400004911649782458996049256114248293322817215819579445182187024337148644734165296747137892056121756562140601037842670376003686099888430776816112644638139085541046153942639036963515708494447990408387030952801768594537905658550103208770277660078141801032919321709497216751208370678372573080873204786597097172662201864407670945244616538508676224507288865667542569002568865571917646821844164178352488574108150041253080131151471114779467285706312461988621054098481840324585313934175058006367794839582733716618317319105673591903731704228802060676479121109394260801928752910286061672818504664427290386622814819238510948943927292999007715821912454400442665106523775413118833618058314642208334678089443254491050809556205154904412440944827173165875342459490289647673967911315158278913758877402334243358987762853151937097863070147675488885612879935028094654167839682982683907405771241931464884731907659774694371984479633549185721856744730751334580220575386658134158028442363202455695375794508184096615372930813549542129901575704567526915922983679570423860422580129413715844120198614084125211994161826996320447597552841717115191772478905909813085263644183853876287130150487453188272359087486444747089395539742348589269897108697930964315999373746016505349936308533531014276572231973077596279138445451674619421591176014978308653635435295738931807248728112552379932399135594221783771647999335843919552034834246435122183647799323094055199406632508027818645763085776067687758844666947307377943909926992566025266560947276481400688798872140732943847424776510192581235509611780857361469055828177501663577805077520537961515624805126902091345107689285990533013635672044781390924261684182406043861725829919071837696195874987076449913851729622509597670442572398356896149738824599785365312250933176084209880117098584176810144108872498976741158176266308000234183616635481376576347946758209130480719934251747686257766323249709062873146571702553078202671267701867955135813596109873250406954646271383426914786056383495567921214584497354795716549324230512291871770945294633107656814829127688905031256973911987786671000991809367418265737347891223698173227863294755076709958241772276620336679254455884009921475462445534959597305078426749364671986494859375744584573893614502587951595742726640848582136611649463172634452986560728727481078448928418224878189795539224944350027463131926833480729577795403333036464945127611916427717256516879619527260363943831528098073115887007855138809107630157115058584404203468019474839904732896577614827128006823094845371948942678944165561184412185925037747470798228356681389534478742444323150045341074881243716471591550444516410322042685584685038217112514223665283244873837384235946426760632904574457157253658099956197395722686330658928697603883451202264165585002772464961763406012669146601682793396614483484895832171096793613182513050868978869166333434501900724361185932821484372755939310803352688778962068190556151612768083272545840466908123292015962110199706512214325196995707277065811764145315911333180445669933000762478382193423644908533047156250006134870846607813375207458278090264791645206491406440822713363283531073495744680091224951971585012189461355135945727465212298433077387653386444099708414978581649054566884693634158155983739931106851977706663306515442757478619321540814426364814756308881530751586269289664512224709547291873533312798723248185432571176956059334853937727386005434782927913457742564822811506928842897407280366882565284590870656847821837741478898866531531449167106636948993773725720924510981552549403152705991308485381728448809751290780427908485221530227571812949360841326031299940181192552691198758300486891713972962937995601046432295690234428157226753168005475911406480234272048226185914414567302242563167458822760697641171205283026393006287593208674817634795189351501448945866090562736835437481023654350793992638361139584710719119855692083851235488212977257860823566912025559802394653761977115815938299962569364494685831842932533559861989417442768876453970878194909325707001126452774575586915603251296738163809571097047853594015401453431345810137464912185976965081555533588274020069490203895285017953974624938172227104829358608363522678315139907447358231049627287986292591763933883555140740182533301212359960834195905942778625233740791997486445599720813971273181666902137038909638425504074621250320400307771811952113538968277701191937692497697273867283646616463302098762946280971452905719258702706741243325174886179756554888824118743476099960926974551039973208132214661614205908762414060210768218943405642443516869770096720977915344609825475510645586683222008701367381960243213815189868001126259100851322968384911832258550008270436855747569913473912449027805267116181247802256974023357644400474593937633362358438977239464209078305623063726308767001691145337819400932527039163855957708628243967645644633795092155577510397854403573167771227395279038299920541055720571279445189194311443242675482078675563847242369240001588556050355543062537162990556980614833759866276005955070170185747176759268221093688269580654605749634683064047963478984025700745783239946336669302435707269641870783795671663516451935241490741036224532699247224674436967651145531037192141433157766299060788502360137819881761872099488766608787118835384120065031622078737482569776887579813433421614362130305746179134592946980997571529360588000945854587159677335906252192341708147135447845117593413711615952789456784730631331489701600098308430671626194441392575920822166499800284901747031420058681395408978645436842319702524266809529216873770125814941627436440250359000012463062526775969810775316421418609798791522634042378371158025040585383160081059569565486223265378223928742455043320634044879841881488180173123947068626562614233261331624635726882065635664876373048972721288223075460177645568676128677320990103089836728034299301065411886503774527604339954537046188373636495826916468083947276397486620827814626649305712865264760838254966894228706374278529743080795882005934503863604942060666318725639883804144510120566945846586095951497570758094528192718245188622491781753193552723571228578603849124831315435326666869681699556809984304751946237101255852346264530421214188304186743364549088094692212294603082632579668527690366491944745973552859690493740361159455361951796439084623570082908763882690871103697471631891049201980038830037780952900774615135163243430283921356800626979850484918938323248376338205880816393699907445569576855276075776756305597803900433132045592175078713496485822740305971914154697744928859643360331218206948554251417469098927011257352601966716679409230046639792957044097083136153758408425503750973998065216151432493390367150602281951298063239256775430990539562003205868443368280152840914384679156893766941028636887761415307666534740258293724092140096836067674047615385976015416095405185807185217045597219246927867791014598445129821484125832232503491896675804629399623778711363962435039442433501937625938339659318333711847207726168202140523408242390960879453643273036831721105634961420196020236472660837434039407565948766694799494603734565686535204311035790493178059782264466642919065041997457891180652315310770213346388376251934123971330990060141701558486546455889077141024854837133436553876223479923022070377297802133812289591764857216746791141751864361762069894247576052765866509676141024999260921797923261941245860227100683753889980004499282631491432231852457125971903059986460773528153001309707418754004840216910736849018264993942861829656145516724001248511285149025258102372707350697240822153834875072513895965869468535055931076978552977691344034573163032986803223735501962425748907993723018680165973995919084983966446491782447432458287360852221997291866539218385249221422218748019018080192448155095710472913902771558640289355814584480219750558261817924291654562032487559048879285395448058405966516271150041152012789169518515944088509540863318466046888017538119767709349743515706450584771410333993484358132492957765842160931920989238064603690970898287017536391518980440071207549988700675969446909504865139312125334408533895916459689311003169295432599177943018768353701339217858320598851805970412523706372716950294960169235300531245261932341557969199523845399372569763261451809383160151020047971457640507364146107304418243083707067777454183307369510577209772564064043200511091351240341906473176874389673007604098754509118140993411429837812555565916117303668047926819238980993333718533870198135355414969103883597258157076017927172843316291410000721840518894065457501150480166363308943496524126290474030231929541521175139063256537971402283966869088169798226938251138324381430264797374470685691834353802184655675755238128531540943114415493069659861262866829365919504330668547313051717593982820959199590868831703791486592517783444476497826166205963115249233067670712834750474279785033635809945929873998928174439524883188913088397965349816708143537062660624447922518899045647013790608332657828827116079146074174648753656499331967310394990852676200491104705667070032353725951497114169617903109347458475905744505281468048877378521205480752775509656503508258357126701000676165269730948959519255996301777286376719554951591745001548115316020497421209454060184144986927201982260376521985952319772724268342793561022810989404605367632825420550921411857566489412612046462719234769560797170862612650087557997985642034405590587679811489418914274277916433637986983041016027709055512845322767377977665868269097627708699952808317423541727148194820356180846208975895910467948380038171176538988221194182671885096419502642892188514324801032054147863401307570479775198124458918029141188134350860111277701812799260269602384835111690176461276575026837075667443706707167827564389645945491039465126753254820191651885166953019288064501476504180768547539113416214390166613768170568049957621679165550563626617671063339392858011917349237535059117629692367570956608354187147412079333372068295125748183952732934054983895717451312630911054947783769938217976610670536377264319164590696399999098199253589909713860565695028609301302794190084172605617351730988227761377617437855130501837738727017095109279785446738744716433805471359518206509928586384379786412514628262513605527403490790721312961686412863530450772175929359159917558265989227614641978187638866795308916040729293418179958449300623810696642627378083277433701737434795574703970927325754702504374347690849891031885192128564039537121776452036989985352706714991585553454153029760817303805673197133959891620631205703171714058886814181289259851126161324091853179426106797373854590527375673157566741667651482726047503391013032715520828182690700417211295629905469128302303093596883923532627767511559578159187723833338666857583696265903015866618123837729904219244046935459028903600020635924226914102918972367561681083853872893597123443134567452846097903727706548982135546158723122407233986983924936114566832767245370297479312605606069275665571339474431774072689676487589033863128391338094107162279755135981587001947057044639102200459963952717930359764542364356246667926076047067058597289764684407954714051131391425864363380794591759795737203130230315286830110054883745054231041580886610202667398266092324859296455515413968949559579167869814633348037321902482194933299666987810252642834553467247777513467804731380541581229356062376177569916818564590875070626200774356492372589146689162807197109141906014051706181251806051932541135958016115545063001108503720699378278760398152174259171385289506975392112216793627259106014328999973915043496986270897410751295960376757906262263632859540380648497812808842283764342062156192739013715338093798092480357964252937795267167599337961656965058873847725205257264171752655085928937239964240721909037305240668744383076838220807684745318551469299355625502437413502595622872109424987180120955124703937257804292607675286757601732288843983200023883277433705240060335727425221866910489455376678525157182119043315124062140819345966726914282557711607561954611428654788756810051086708366944906476162253973222592862446356252769821351369578708287066124283337911619686016095553732090602629963476609374065822352285517513528305785158459353686961041164452397186086754006585133258357324880220162276196841280334016680852113626280478654027568579885770650954208406317960036481346834255058064624464550670152165963891245094435996003193666676394580839747157109475021074377611174871987216962184599820223630237351550674245284655247990830897670463223979546556745784396442453875108522080841615883098547012854720145026521984874521096624028401012956654620849404037611042887612893887113066373457297927622172483590516055199626595138833932373967641873096446413730445614395784327226981917767964968459785687971271595230986739646919330516457211583222856397174409438599602617773625151178251269706565401242664011167001016424636849887468635620261770985980883288447903269591926576639436293389299276062318528659001726593258943602388776225103997480702619962596425270906072973127121076349105400454145396658711173459340112195384126464398387664455509346798260943133160529328006378081670822697993945992073520303666465444008689012686511949927073584331490149236211848696880011438912527730816142706458125561284182225353265077289155879826892982381236143742884166940330765104190327269091651921603901340930394665753352766422730486204882330025828883965797685773683726373123844743151079237930582215380744621843018360922215231146728376910883177720739486188142686863756181341376870659170176141551429153395708820987454257391570020965797439783572572121008084567741280888840211544183994801234170060676576155142586519887440248821074639601175014230655260739424690036492068887055854697381081195228842140751334976938446191514124538817091490522902334181357701130045108957329824781581329816205209702830963116726226415672005577258722755053075686576873438315512383478509791700240774908402060660230059906918211023411208594185582967566313587417692257126834203714020667938318778785901124770902453618529267033188514900901103864278826671064565030404505286827757070678714243798037768047691574509193175113614450758258775956104703159522717036733478572926998168075401821856365132996198189691685524904973526214915560322740216405933971136412715067082828078608347444129375059498196958640887100525729414321223022960618269583549105444116048922244806071274938612998084595626075436455454003725644898128033809629328902674229094187269511849447847002275432949584575281131871809628951627103025208554515706292176612732510718534633895164822892931295267105876001632510521782898505457501726978544754770671152067898130947339193619447485350392489588647480018557355706759911969707251703774927907609056612631333782869156330423079049012731632338361711427542742634268481685502234229269566745524119813466984667723982978949713083849174449043802551609095018534778388110167295554148882574421029836049064077342361721424063267000167359599697306337475618968312386950245428668443162479393265820760801704581921713762459331572452433110000102508649308360942786335566926154968378193464486887796925981254328920455732736829021658037992387543865108559747355896123658747718960710154437773032150874529310470568877868315682033006336482528420960882349930153716958400176112085854217443457094485624804096306842697217985207561882653404543626434321855909220605663249454989109849088306138409893555950695891186617310978502261789890290745947940716144046130368724343193578916809389066271728342661929591724380431835627306127405449888741519859241712797948184368818374773679727473578328273271486876959279508977637312866389382129321964602285629908427247860746041009839379938828783714188148212644077822587947291798461655177306985944185351376326085880688837429293934449518067316040921713760202823429989502485384537579953145374882550312726954058653396182505745847713759044172220785788385829965895991717807875524434631777445979240024672593025123715378155368987563927348919768330204834132166952668608375073512444217512583197382581656980562019751277848658791587476960961758794445190857733790717841069030816071995695320335295822529924560059615165669285463842628089076323796134694578325857807619676241336271594461485363555695561481382770916527290372315504890431050722584358566501889892602661185086359854401256343242576121165022071402724436422080782001965387749365506015615111248802540771198941932319763528922711637152576447260409457509459902229431062379444353276209976745428649932381044118580226177518438435572741131026668480300813910567849028150746704883912112598138471321942166029840168576403086555641836778834753583496307640148316314009401910233242723452244108828606053818023968011618230382100279363033741799673222502676009885381363805647870219279409436140462357120835918868676561267417126960838544487932413931940739834572509512046697516297224865758752685578510365883659234398140869012725940126265033695776860407626528958361687452935150064189360100917124018360551633154732628364306275094030245719523799842700263285693040161599719373343187311903409735120570605380704610405084300297374853993746412514021655969439913540395866366917830626095494934507916195279615973987652021542396457694273182953411677016588757629797796555090676407859813374378113325534892566959810744631837629549045497488683784711780100637160660283590349694340504336227879042805123498649314010581559943279442948336273241593245117954151810368876090455774125599365029149759155445868646893202114789976300244747049405666517438341608704864676231752002236890934757114615515950930801401662012716839822525450837197816891198213608983676450369264520791861953050909866661264187158710728792014161464354788684607230716116140560561466506384580694383388615099125031965852560953291603728962296091545616055666084092480715299417290435006433238820652660336162491863391038214308003388311283817091297736344887134283408676876493621473318378556443588348238752133194100959553423037313730024822202796691265973407115526555308328626219188395887983325598261657074651023513575019211180749865358844129045727133955752540338982946932839586317730715357433591478851418864004830194688670341442086777546312664766639871731513073076080260404936153211874242963168815614216189663892026530942943825854641114808599348679857745014607426347397945496792740441359161426715839036162522341806884686974232261736343186167187060410591044386595718357129378557129747386069807736961976447064333693114926711611645831378191911230271859763026939693954375186705071359200955122837424651487817249341799993094724389898674886836144129844564067708744943137409809342351302966010254928025120096278887864064587506032131095295552791752188166300504119084564603884089743082668542267071197580716750833299169024881037523717600560091813542198942845489498504280287437725828119321024113530518254479446914536501358071538895873543530956625109054282403770215553092153336648339228752245267879192384785564267552885987893395863691649751038893036735561922987693744700756283667656536986303845907141123456743607958139025530094637185391524989735885277854804461919976408285614880443189802157645239762862566195459365578817573626622798414997514619710412961474020665727641900268347193880595659727001871057316410958146492437410861295673229404658560560653362515597502879190342484534424001134808181433361977117294008934518288920115359988368286746632153149763403598629900827205035156929663279258573695581855307079674169295045701631605364228860189068002827991781439280473242299561236572210581314245618163776130010848596158113152862142204275732064414028886600405916862037425572845791277207233942389046197548954621875453416742531099794194903080717519689910486714074357634044046328777417037336477618732266899574630598465391008227510196331137001055984257133797872437136654582090977271615120807168919499958723498285977210797945131329788261502941371272152901141397098291983482391757568114505285825627184614534086476004051061217483320776728993436834638797302916500080335472267404847592175457511272677463752925394784837592704248329051934525065929054235365770385708843410195238575285152306784565669125441853158525817594353496427799146868378257736843245296731193904844396549453022449400368634384001477891512497348162811680380109930803368263885931327991219499087170100952668204494534047653980520522340632134072551895801243810865027716582227205206623348105336286852006038055199700557048268110932950631904372344907061055023432552540395861026345841732682893528058766533156879833433466651881646015240256595905434425060266422029942110845658685757034818245719723485625404709361999813305833156285060921772403633584920964776519058287886139099471504094075152493977290791484639586329007242749137969974475854809534131136130568921071825917891691066671931428795969981742065695613347631864698527251426311679839290364151011309132927627670920184300298091260410645455774003352777298381392326228282900602886797252288796965127069550766260574775507719793488295802425392168192041310899528353190269445257810828090844411229471723421878397643240136893413474866702932897071485591805135068333696364874618107030318834357054860622040658593422600561378086919088038182092402589200300616729406385639200737280468748248685989112162734952689723365725821911467240431827486550599314358018811649554198776540860553270496153666922069847743994050969541312300891758000451492716433738403233476891144940661535044931696031027873893192300226965325358680757456753699298804760882974970928720151570848993733202422111223601342024435988011668288999591488064988932135102809330763165924942818334465852713051719213021978580405480020968251086592131024966616116845742547906058866097645547200087996405746762642494769526095463119014552205256262329470118383576175685617947698088699726808564781494342762016555657684360080611796173213875005787316564077731453022848958888302915876624621160829550944246344625025389717598841678864889162043629314667172990970198510600616380226411097906254282731711955656430704839969620467455875210613646690293611711585513484127826481346050674746498451950829094146111004010440515741211606890466828184009322605818207028563610626037586955303782130921460397510745362440771135917086445404686540198070572368004862969906111393102392546551745933770094453187502402668966860907973469019747510008792957388258377460695683676942668875074418302510029442103349244204028109736276110371984542601601076788872420896538068443885778926124421905060557820358104082424890043018695847908245592014009516114504860122071895100927015490352071825890584638142699176784619264368639044752047131194683123285264484866162520972074018713693695967330772118687521942086612639901226678964105580189795921520540667884099706680089785399426258751752498570574001537230949295708458693663727595447319006111090453562689115778259618142410266879789699828203323862347595685343146890895243125442644572227103578694237390823974269939344489647400154771993232878445796367509186954618742115439178773885744836480773577553083627151683632297406223490386488949872606881685197478505593932536363354504461111279749365001934476240826140009101856944885518382983178400984708105361747076603139386500241324361680356430323120540482370351400518098604065243379518988454328063678814505368076447309734104406266271703366876612813326891226087132849715357804798467210569095121637220605279080956690613022760538421421939048715262621902725737350394632644642468608452083133863786870598339452769161494932873123195717444226206469441090666875047732937293625628892981128846267894680117934560496843089912682448178304224242954774960265698263346621670130526646682361999687358122036836129100811221300390934432546175226855552595002894238178926415363024465236736379462776595725277974888453710502332977199701066342648681509181260041636210632967802108173240082317513959078238983769898633772806946340931807798104200996857700192769954779935393257450001410233370523482016648984996111448654898446077634894470346439342021225825401209364282105246380785242090539747347693352175225995738789996691659010249087529903085357330434061947268229295610051236169409801133172524575650919085968203127013775759188803606873235935668913227843959735384279145066956760497324714272994880781240598037521575806367054116717862352166958864526291681589948367374613336657744938973816373949463315680039212464301069254164701598039084153625965562336856902843352642018459231411033684279759651402511573431786525069428805490331588611929837134614539919923565489562850121580397408410922098172219494799442345637118484702266269536857389827400757296220841351011522983310343262802824669690437195525952296650244781391789761928788123555873105665553831521896312663186072894407838558462272976365495011137665000874623396751500113181758038902336663817447439356439958687091324175745803437315065565069749432524078948421648103896606098277260032968477420985141678417206611754096013040207446709279864356869588053358355437400965753599350695338341738878906076681146900045720499034282628360089170795483680607705903779846718966662932702490393158613985942767662816716612522735647670662629900637173191729834254866276817468921972293443889516563596772333553919435849283966923998709612641520096785854493049830358912398948753903561540374752614213260699509190550095945568322418160222893226174060226658101554368761757657384498151250424530226617957091635178852426463256179604960697528477395160210822608788410339923555900736912857048582381534796359977416546576271174065216277117729976592375079685269986517248544179568634882113057949073386575277365492400133874869584192132689639994231615509518937205190835586495284563436285601585756240959548302031177568349769690017369845156763840929828144675058713357742190799452412667706734918355432915389492441560263967672742101812809381590103989614311451240773281370218903003537617943489282820881867617688144519260232876921258703442951946856502770171596514694419243346237559087958505352095512980399199716223395896523051611506883165189101666125491571031292451346018054037814191769318622615816246293635278431787747035116637690188393211709601568911149472824584161534204544237352824741906790480219505519871981310499486981163527909381810586213129988977686353784813404908789904500709547338103199143591877326168962803011441685352621161887629140648936057706384188751406311363430374046027347358641097578255329186677294616738972914049520439176608298670475214657138914453047305280982221796204372269863205051433062275154219568130301658845041973921408957369053775805616175230119032002994330525695156049482314610357387585517735150432173563304855869743755860130341703845525677130786959619520206762238568612764094837310139702106498567372777332601745926055227387707031370031188643547997881413730318277525134641088056400081398738004657239251991290490756337706832192734669071103866417559225301642509222477464785327997312487600581618397200333937245833866110573120548361651367925503185253756786819605919022599280453523862033953461194930533901991044752244254614549829382501076086443628360344586366947041683650937753184609711617072977215294115150437392992376448967999323883483671769788706090489379819605971832747532749493502933478980687891853255059788133860171181717473593345923028280386910205214619220074322248556949204193969980749966779925353256563058326033541199182736149810315491386878628411290929296140087439036603641378954590943967297751192147016353933955046987203088268456869337077576462787592778816323792989395413940588009175302973177247979328142101411713282944194265398443815544460505697543029367901060547712064404060767917833158092687988242606055683791502374352381756368907767624359640324039987843344112524290859912791548926733430341558268976506572106185876050742860783706276952097511614442656596189785278479311278275078929191992071877264434127072277692103725917439246488079136105915162567362619453118774679503210476065563713573962302418957449696311245855688787710008173672226076354689704818589967690833863503506593945584036052755390950317539394284814510105113081819076847185160792329227258992877909596443146759949302086986434964037496163885529978205212219752606448656972086456035827619708271677035350714441506220166148265693692841260219797701086927424822276588905122011639657225510230264999895286256348539948367466722570259414253027234707645895111017416771001665596281651960488020649054605990442723378153847968266270751091599271558379445791793983414595166253763892431573773033062447858543276860915210185308680306429473646904612255234854087421305669561022148155806709001196618498186601845623559079950815044291631543844013422351658789847267596970925380349116395356289576018456313147941391556235445184552121097262046703980853254001273133922018690840224807251275021361925917623512424927149922703663044919925667002551296190586376035073854011953810674592660405506361164700569573620312723165708647999174936516096606069171040344524533749841275669022185681320507685869467787894600327710047647295414155828320344397405502169221911870084127744049612341777941836559374659191950543478383837021948640724775667564080538158677268456101868723513086595995893304970185587599450177329154777867229110770751448491308404558717456228007205646727068094485647968257180570595893132545686259982091770526686939374636506631080364083769739579506525701763488121529618927291444633862368990732328856810786923206671741497745643327969506180836248194127992774929297946202884316536416056850358263293690627624231058039195864059597457719256919021861459447226675651634154475786026403330823869653102417793382017189761972999126859863161741424231485403606312942967102553930124419504249933238829485619411403175893636017806029730213898469553584590611490185511151651144980908405507952110271273513345596319618062793339322471125457291592915778603620093949274946255351372189911964340564674317522455509309117660527242479548558477477527012644256214402633133322485738310739468373242092282386188710222500160828907887281355600617202892795155774712785372147711521467953401212790790705943117903985328639739657603442294224549900504491805413257192268060815100822275754668427331476044435207131431177027725215527181066440255489422712978910244487311293371023148332447312297123538009770199080149632359630945290651340094490254403825815253917852690904314496196613761964131913661734539189435975552530513889565449331884385449668302408184700237583419348599923703663129211134132587822223277870711015763272910302411403994841113866151149429327002458612310309183184417299851132386260533338247770733234810652762829324692873783052267181329587643340890490757537600320076168487159671887313145996818902324147721413357891752259334195353353059906439715272376669345683445592834093943000820507998281525870839118920712516389958100976727134328313609733668724139504350630954672590960621081286586918993074503652887836210228149472597208090955391598337601449969330053761767354941489606708297521409874153632120593122146718738757095635004974604862997616130601677494813759835116431943758772445378395818485681133816905662359550177359295084517623681276886032265519837628426472258395794466420821301801937938477853182603991686524181526089848901134544114032026054888678128076861026576181417435305400677717436045980492903007225386276082411255618625684603801701759736328821280861498053555849381475110322018666899729732061591201679548720020356941955539353522568612522301076227120145367387113297829109375308819605362214974995818802522235311160374919137276418997837701305020658948436104435610359973773527085235250063840699075892142525928844578417422959734839724828559883297664362457323707700019231666351559323633919194708318848875855128821028948195669318995142474312492800643460312220552578395753502541774859166181702309986663467979160216262056462880930796509524378986912542207561745835369659869704649969247354597482085594100585910701059560833774119460950402245525188371453040075844443146962621437506696286430496998071677124033890248063400438328092779861783244174852460380188396979789571822908114413438716336262395229945489190755069404109316967586092420793830278145215953024297633579881943337893205792859804066797043936110070026140496451947276763237172175469457573775596077149505615218216462060629085000858830924302865869789790764709117456135505542721012007609055785753854383550911495091859482120127087912401829449307852400496628395130001645114023664628606464446926319565898806600941545289602190902791910703268895020403749454296413909039117896474458105694995501325252736019596660167482878584945145580849749049486960620034041662760458513379959899524696188047093555746241839829387447448395430873127132774306571430003143916437333111054044992826420985562953468529452224153037945778114385829834249937300275525635481295086717727515012382439297112268942778203622858206072190489561321379613139582244029553129531243429857775293182671599425507014204234368736489675726786215173073723330555240523699029544051980045219330693338947074403620180776964749604846780159901923111541598279793638058986136799369177863733749944610973459019963298436144875987997073120018807601302906100108430745681986222766031342446556776975378448857510225896834307018357386434460287898657901528856729263094108015584913795861776381163111438026211786780087249713469344564910962642055795760605215615850196959008873960693421137883352020050657214987844683960798545076742166190765672968644467017878718422411015389826276172867908083766340277338948914211611135628569903113864638385349766741986066983835000102353980373106052591057458063099149986661812521494432259541906861740689243044772771091399829743016012954118195595503724635147853644738940070430135144231274151553451459545889827243886280201530317909047888908599137082903246806944103369571458351801872076041835222859497251157777209748157884490727969075377943117135224504028595409295325668838172936217678447048359018531467211607631079874618168400967224860784318448836735309829115847360336566969203585109454088756004640425700195715183290959485871574456803674505237660411672898819371884975930547203037219722261902724184117356729511077588802753954780648014080686726046736756292771075601752940922859152182254914651198941147474700716610051663999305877433523140521104917084026871494495281891706284287845569588485999688880323342639453072850469155137282971063480891437319641559255231398248744171949067688574471285725567470294603282177234417297441152045429535578938924400567719731008180401787500031969876558573324324412199470203271111071328022653989965863045498555819728912023768366609643449015659298651462430738739911291291924070527201031497602899085020123562357506226293001933075416114526922977939013165157949925932935658196943474458585049849133914015099245851292050983778289186685759182952513071939612567552199688244609464071996491796332898525327787814106513059559216395644128718275240177136218297347737306964565573274666954961044694494610027546026117689028275608580998477996850662119558747914946565107472062893883385318921475541508875377311177461750344946017006765542698092194664556563070253382689838999176353800643450106647532619084379076102707435963769327535700510683905969980605181613393214707607661425110880583686446295256361155710766431762042389084669562030575589612876571199841009906074351658764992114868529079785229868310412016918653485084168993520703929534374389252426451287372716082207820806871607848818604602445963680018001911774342335248502236332266201516510649836883114977571924982094186306693770928886663933801006686800428793617275103721767739232880016379445662570116155900173323315266347832056453696138387985051312312780915561302000457940813680696354483835889952044793554569803379292155174698101277662864617915541755747510854500594527417642350166938974440975745270005672594619304395952543070337427607907532401008008246066821787384707031921146136791964244004315924406128705014019379266241129201206895120343213671062012692639070408822346230035320570713376267254352366445397614633062601541157855109445803910966538342436163566603632417150548742044001096065967955392976160813006006627041335166290499656315915698040470379391450220053558703300323232403625877099808051833490604716286132993026219960342859150996505252796328099879718268944826986959810599193438771082957906471943832057742008398356694031049807010608179922878964902892051500640065799896046641611606556842156588606762081477484053037627808579771922969014205323514190081270118617509082252915256717879441913949328413631873050510562277089345944947715261278290073527878870215029267197461544937869016580431011978649167972920448382140630557057776036752962036966066541105402226947197438675419713251205371576965984321499079667938660287979770004136799323478823929843288145654406371653758716182639392920411379015476750120965204304133446986234727700682032636602788798617778974604063214629598157791911817391500222615413828110437112796348335768859104558784716264579521836514910598883875904318732299893655457887213465225770061588519770267807732851438233778062018964997869314468761559315033162422259544666800549818212686189458551210816038164229904757548689501226007652765215763773204891106486222565695377308475510337064977208760322118521403815051098566899926803552249441358047920719204470378767525635030507609058759017673098485798243572480554647552465479111761537015674979690575405854381587448943518300852564881812940624893843680180235949907859106406629446016996636918406324490419413088467971684929658659089209320681414776956737464568848894578715581418922674164124478787489631546853773608283434483761147563179914263180362547748782311068999195864901656863442150943788579925481557507865344679065996443646974497264210540094740461766869120927511066782582903603006333649210808392328924504902832688137311144619951955508541635981506126009167894743327804438836108205996342155834944959111036077293442034396579262959789249236075737275626190078153080958655446173042016285365519886436041266073192699324780306399316379347570092768205106115334375043900034096338986282124863606560113983541298181953425344990246747663602851914468435407542507264196416375748027451175431299354924477053119082902228655852989926965446220017914039112863133454606318155233961360349677433788076831213527063448753386012292620108736403002757030803913231360336250415408269152125810357983668439859129678641109710981956219225042762390853159284301411612144661577632937269920538251741820208522590680413917965643976330086180774253998890928530330461341888017154837623135516605928998454238468764681557460779385807259372772034350424247448040701016810193655937491873397177347376377371370409871438154432633894648674218725790566179520829913782032861985520046546932733376051607845479795366210114128248668380316511766270118077394388688830809463002095670963163358416663255679955401225966796170710382137280793994031824797910652606351335046521495354885291585168972104318300743386855792097863469417465943717636356928252269645159878408015819545627212605677949861220268888785082674497886914661855669202490609165832941250562384911473465560905790831691459152965394547326390962534457371373150036204397629520416131323023187667526378996584771709294103051291104054326021997251339783375486072778993592850244161278129995999953134780073324754194911674379405499236379407600510087509561859574446867893853855936954771397724097443730153325257097930255157862693631377772316836034429472040744368174159366740882368975524239540081570474744351905447117062181541554675956542320649072018056890321439177391889211563528328542209338928766937418769469845364781403282443273622140084946853003412950501473114301704586109759060615313104848986276181544520428055463232173668544131749585345196596913062983728369102713254958618154968054724372569634032970184043055762359177993417977822394520893301541657914580049910189747285218886910169772813877418762704113849846065920970044355606754239046921814280772811518900934679530143024555606255883921587656742292602941863581134126986843427104197137159242767476373973911816466399900058411563747959206503479616911165405677395158167583101131129481598969480475237487328188941345739519229859658038225328706354638972120543864045048727867575009149626419211213226564556482630700787119581991838361346710010619888820820509049538899281872658454746978866327026608982725747841496858115637211622657249089544668718026009405846799895427784099444382017867177657574142636740274196355197422951835796690622376327158894767283165590204154234171683605270153356984990503309998215975145076549175220875098725827889285828835957296868047314614019777726855013134023768458490966904430413270715680244258052164164897939873588669211688169568701031148066829334532748067013126126078745825077077627317154432152979388922950596324526823700451051710637082511317721609220963391999616531552786731408926626370098479016400316363133925921433496694944164413038150799366093946883282492691253826348709467100022970504743462862339212127800402018863982329392245916917641599660963782750373400191180791971021593821456488936038389697253700424908529342853702391985140083365694831942779064841596793797506395165372190655114471105802620543660431702876217095342268274585700352802510590570936017714831757254347909445628604534464697630493191225518838043148173947722665116565913417452786986181311651532341272447121524660609811304366756603645690649237984766712117793908488114767795962127437050724734464736413562408314893414850357898872327411672704743051901536971786457487591293874204389582220978465785715844039524041300019037483658405223460840770767950959400495482228260252726418934813779060692304009351984419706800932132032129902413830776458916282351365864439301079045381185915708983793849038290817600222800843224813151238250418879493729965090528539748643920081094029444508326160587582070646546757381676347923108580729763258120414359061742662603393049994590980110543023304872801526216297056808801202551099986739824596872734481829706174848737296021694912430321592623283550963425036674896354447240236654790716958186880001378168987222888774606664234226744256976641034911541000287285029596693377424380959694338859747820185297733485264228243641970806053338191286427067493621024725830945039000489902373860469310653193093999437472800266628176740106108948470374883646857863157748079052336357716420576551347724405769364655293126751014714294773438386155080187326087052085953110841644620922007258849421252232228006966784292654307948374005984097418755762267371868582522384917756811289907366030783603312054724156374759853070412701307551500213408049408244024665743128017961826664348745272460877651952877559730345547500981147170507880662986768590104338949400757834185748050869156870662229284370636058079434802765221620113202982329998928744885746175173887494013995150771025116354912007853898497914019555065223703817082088404042514939481326893325574509781556770953314695859819112298304834183593492405345438724793748987269765343588324937450052269329039197287052358564472602221039219955557511129583084179081749886059681380523185679230185835832154225301855191418287828524039298830010459084642211905576791109364476965464331651550658605257613402209640433415721658302351394750518719651565480230599046750691572803183534412419612350905486444395087221577537647129130841080832845391446908848446763455128970868067553177501396855769809521114994480019259382420178147734954648172541050481420267323126923386931380425581477784929873794984062970009220428373116311521811452136820724021274304912378685559944003448451570157917397235760184080016316054115965809237202395001019904032181777981579937719764737816612250814445432336855237736281185926091789113806500400299079756502334600913295231063780871729492992325199173908853355499228780581024949788735136061492004232023493228902799562051694692155826496580141103540665977313279581916896298664638382928065424110691009742656736939215034339230961039384887574175380598372428686339202376904267619178122416393505849140244915102400991804767022888397676851828784953368708865666938902012104559888681521738525565134415183730901528730063813309251481438370793689773083066672745846896661163417699979693041796114698315501486232189449007049330769215290453800103535034044805021932412107252668892210893771863921409473798116001337818026955923705089272290275916083068087931394862356877642270512013267267854259610820147420904318097388359278783143403511360693468748993462469810792995701503312849648132832643907699144532304099653766039021089886909620672825457672844842329499232544911373900813224839495893484257064128241900062531469272946790628631423159477925924946875773026918829890544428430240192611142639457980496323700987938274283093003260126887853109120169602520960709650186961619181356213652231024533224186440135003772164564004538103203989368735815907469544725540769962658372136955554082204926254506466060347775880998415493933631014812443972991027145449937151161835685033493143236699099248098167804200303481737111613507003595134483227635236303860895696472265238516121378063910932566457393381388097465360910432446025483236760436481368970750898753506376733294903498827118869339664645879738522010384598083250744129836730350424921685735355758379519459188943361172957658277474758294984352491725936698687563808024566997164977528644307770709142221994853056418097091242277293838745186506162059570472471715340239871760076201184935696589865391524762913007648867060727409673332802742556909364870686275411984712757720428277933337023107002262204040266067810632790413428670886948732100302060214876196809519208138982416548306534608102390271500084396309244923602434355959288613052020080748781580810962813208929080600963723612529960857408221602217568415115609978695943423120889968471267327024151343107820071639973889671070558720761160826851266764329802586813921100753693566184546716873933629568118120297955803335399949835927778457107753349470323601080372848644591083929175477729803956173085540881874575712947731330281253426425068984660685479648244210618077636896039602997085031377758576224913664604354323859739684979187378438005873187283655103680688625409148237442915064093503755546802582251656438120002454198441293424792878871901568500587027584096066102880696987822312553744586337070219139710032241263077464851056639012829153522329346968116117631935802216395375443788850567371579809064285178012183574574243488089509915234532028234189562019904413269273187596728845636606023551277088365246725696170112528861312834379015707196864690191985075523502605349023473432006861130155107199287707139000604049722321883340440312320485049080728879384783091473934444457202057313569267937625539698952029963120929561432679567214224584705675632943415357899367822001366915040351029862824925111905376636955825871739089157404769380406862174482456889574236310004333579413923622996231790228030751539898860622015373448468264193453128695761282302649936918507559880330832789279218409799703936491680572594652494606789309117176893701684093739599385425488030620299771076431296618168125417139732157412830505691571252044910122901117432552130634781023502293947615910151749297696027086780108092443234000744207947670099175757371359413805875790883898281204674185944732392971304581882343830549205322578941850745220483569360572635776659376570648355314590976248312144814562835818083585883434191384500836450806498709342849704842032390210079815257642504399072675597531685927337169232896798357401656896389182691540090070502463316616785912609469684633524914476322136584041872123069625749106258836130163717294268385156306398443366716694763242358099459722215399682896393200701165178969534353541496539528765851970043807720388004711262416204558133663721649975442006883842881936442887472047260456393814743379520173543931429817629645514474854559002783324229402282738331800882271033405503904186730735403050825767473607883510963406451092528860289267844578160675798566097788791912727179679959826967700220215447434027769134453032594624519913964955775046049392982128693087695202824404246796906006552605863626143480351907767889867747234146777284801924066964138989877816977935446816325050546113757657268973509532795621076811128515470127103002869763175311526446577201406828119099521073476387019453727610457397375685213738113626843798980586638606535557700579559401789079669161947804567851032104016369686473695233047770976735392950216500977979987742977212810100329774262607395690289418466262985923207027841361841603087900049278049759580723350440994687398789113859712774385290104434445605796101305761301005474480767092155983338697812660501045284517934610298359648344389614898856321232546478309069566824259655927725359590741266073967071386779941440443483684248041087659514480068712511682681184084748560977254826167703779319692861490247510336002745342267751628462447592772315589041077731823815837942252843603368060381263097206884406084394815020948469926055531359214707063512099080758725272533347246402361440445410880080358974226840956702468786356751207792527572872105877179585497026365212622063803124146884660766840058882825086361426675007357051128198348399284873072275588292651400736963829114451467676786195864675479734647249313272030496182876130628118305720797857641660052370033899326795461360045416873154213071481123891421066344791230676957068346114071004446928500559906018169076856722413784792849205153760073418141686881915277950309463762947539610310824684793145539805200016194018917452441435433843497115666188738394257866583638553016738832252836830902179878646145462354826589831796190431025894241930937234852054197799555145926707108188642260558826611256418596606079182038503323937870096394631317647718720025601702594175735727044537362532323131690928548750017623012451294733870495581479867084914105223277864712886601128954214686715104186428398479881682411469722275867033653218362413371865632960006423486260211742103956366138552004993308891245475267009892919464164635445542031514167412252138636027855776321027434773938332183935528352454063470831410214289019168398654516920285167477126329239278862852610598185734650428666007415232242484160288488691076909855486718508438362713074428994768808132861968602747289341543512367820553047434893014817601466857446980603084438972541440889973589980257215052813066324622598415140159032846795552707046718147119751072819812062940689112180761426825452744683078758529991045468854219756112343949602261028572539045232050788718168537241455355961653258352651223688961233291475617102673761591431978392969433817884191056545683569378018573714941361558145560291529046394057507366009982504961716114402991633571341417129717410868118690583333126305704493871314704515641834844410751835327751216790078816470045852256363090399197115606095924964920687319546734451590017256356745129627468403723856785566732330075429209896040402938104456695045407219733767116255072042336837669277135607629422834821114729027998730827263723889403454066672184755330297300331459619681060022851777038947046229616325885728977856832453266483477280669238241199213716299789450678402777795972893491718695308889800983301318116964037510650996940335705390283357548662989491741766523271739370397465473437657410072121481403328980949557137762466278025603716670090303792657246993548787376516183378309847344700061061866683287349924194992656039222123201403196808950485724071037749479193063782054241067036794508188011713051641996910631140150583600587040872053927418515506829209579903351325291854530133222776945386718095921062900838290112027058326633242964707303317044556365384812522556057255577314234721132140336862591020329265447958883372852371195380262715895669760825237290211115627565952054334086900501865408515163487459821494999633416814254795696576982250960121798021709361793557545973976052174658161570349854506331996201530105660995866559640013956473658420044888248711379484564244186986357185873327589626440395980779399100545163233026318848064898351491982183441317789535897872984526296531421634040870252380958554288834197044250107846997521706124482405640583993997842316302087974972208521869168410149197371647283282497827922419215564971303401982338357873964685470769519292196375434247354244034417453181106775035677677930843350838513039390318176410341368831646532519305615685491702194417643378835728960578215451386021116540551588316155949300741369365366359728704165484450235370810053244332728258873474876513208356410750078164445011252615281261238313304012264571426886429193434319114527157098293891810687640954514853573467198456835349520301410636917184988729699228476473716352028748220751448860174016226199002998796169487955792064160357508851655669335152421768103044545211022116379357187510931252243824911675448730432725594515449595615723280444771095824134869804583984869847596314043893186789396690961828101051870154962548298007097367570364832315724925193446227555549145797701659225835690198235503104836574272209218231129759251303628496977422673574572308028745513554722009454115736306013042182262889760414856756328388135018953959662297336190789729939708696680127069582069159712613264042660617913838324516860818875390409975156724277372383970332948401346259344716151304401807663778542026402981840668858522421798464891627646397404684985868383743048207921627892613348487325664996594233026700835244933000834618295905060849940642932672000966482266511300352596270411722877103438869078858497685847417200759581703362425518214527082539376125481933760982580830607381416381594580258882481775720799318016154992849463955466684581847076124041289372924721419177560712568157474938556600670681754023242564854609115771618150135070839394067190572022469138977693081252041810774691619818870925864962148005107400505273238267503377160271897105592055347152561859606060929437491785543068750701354126635614458251143386727495589703506104288259244063893643601164774269933205262282717814359320834175093640205105429520486463707220727495874700325140436427555680213989630746267862722125363310388738107759030130860336956399758174112802638992377451897357567132684658490909718600693859598887694681568059446470398535061445552624669622717173801850760802643735479514105727784159928954664090671232952685985834399324217540103667410361879370229368745347042415800770417663391585933520295550436818101118689333192912389141170849563177643644333764248984551243415875191495529741945971316115538957311361001503552798851176787682741230798115391425228848515387976197387114962347078878573536330730350492595695085219581249911788767932206243503114773203049640554650134851657407589836935065672812680744755363331933085822039758905013429067428725220661976505875797235795732593341498205503649039791262848646907751703364172661521521646446701350435620508369205612492044136397612101628475025886561110631808660951259908620424381685610913866162561892771702229205258141300745305609130680344335543646678188318925828854865147842368732619849598635283311991451512008100223390446155262303169865959328790950173345783223718365194445160651712212003743201361323551796800072139171560957681032725378654418923976353975425357019513798269188921937113026821886635585390058632676952651455420862327636875921716321374819854783433090954504525907563105490404127693110947926902840809501557424889121456446755105723559228230799817529819197864363681749592958288295133992675400626358210047381562905518296347951850963670915910986898310692207232786804443444967314174483465425291578662483698358038416729150121500935579027812318114585379533922323272821873668578260121730186409964891718116329779869222457499903303196410496156668462672252540477945493238828538701432395452867206362786285218904409702864726581746888760675799497073292186182188533819407876894429875190169949041463598168524148296622753612272189707586358453622966107630653539738202084799115224164693381883102119813594444559211671043999147498397173572247339466919076900389412187690216052554700163490545912386404206543551321592741559595268691530708068427157729275080531360066518973095094083687357837050485760405094263390894100473302729552262724632147945690826980314382856209262995433435211129224822189979415354721470584860536363825289563462574159472800988007222921894530496845189207683882582500123059938556702541071198947540790787983871428858593091425620181021933635271265959390862256658608972866464324019856596735739872599277530029434148906547721798368598403855392160814218560888147394773886325982513245699675779290346467460441488962531522323775282366518606483158673293584156050873413162463626063877448408065831914637406294981388340556572719244418016207408226351463022674473935439561074055243832539334942170494097036085506778464059303895262843719872191859271237584853502026857651625490604618894009527419251285633666328470323863555859667322437560090834647282773501645374526584034200058289968768481270852804344413652526982840342374405080049587789485774651211218541312381649874558930819508476044711577059947295346126268592199045178753014960707117371062873759937520412655045627282001883898549476288450602835235410838318951017220491163747439809996942588100577509603867843625567001283970829996581817843413219150530662925778928018906957340035079788497639185658939365958809669543854325254474154126135546417996335565447225329587400126848270518158484759543807466150400302033856277517634753763821291764459589616259801149653412485174169693520530838420147624593822311864187219872166012073928324810562703593845173441459126203515210516566885053787715780720058585579917299652135405643853170954249252164097459130747551299510301334187972422314866534176388891312553917157294920640640315755320296213773118696809420925045781605779093969082366493144306204768768987419169459745923627856108034519041087245033839919695810868673619516179963489365142175335853271044554259025205987742585220191400594095030080546363828535743812697444146111705333105014087645301394134912849048180993085186780391667377957633408518937746073098907519554569384830721415954376987477209889195919051820022256717525093664601466674482445094433363756861224317885664893290344449968808076812867410044769176808534406915382920948554398840290878075731546717896312118348450373885301950946357043563293918725674546380341079215751179979618379944533460638147949874878121778622396923630558591824515370156576751399406228172655345762097732690008103450697151651037512385465342296372465763136051359321190071612535827910198671016339490193541041951776937578879708253656187770824226775139624575736092217893891909378798505210377006261048063529119919201256608697312229065030420547641502180759144876024622890045880295584677340838001109531485623924433155418479268261398443220004853122853795738659839411386272245454653867510799230300508760102385876135099415603696973513238660127879786079279006341043168986724615194110383430045027555335539857276891593212656862076436391398613197469455181738245609916151455132110850313784936277508692851454011060654979654861544736786140013246874078821192731768045082576218407229483331946361730135822476229508423044004908512769069672952135511328626672440422290443374363898910574435792598394180503503406912924365122469118964474093482094497482732855761706999406678062871999024204411457846978751221895668977973067936739310134760089426925182905357956969022519165017159975971597783564877476412119427948784765230094121265016833407336978976389033924704241044478948605031375590051859336282318145390222747256167764017480373270242598511303498264697042091067127682490122307582253333261151636124590875625526829729859336930260800491396002473507619446982439200560530389568549919478801413606631524782397634598845453822507163600806095417823473058564362282078610643654717627301815687712493452385113990128890435400867972082631607926075033719000876429378782763398620287516695002665429418377040384421397507789036480835802370319303625520022563416547874297807202794667810296623645654177184481187567794631039472476332962202166639603884695716143014355841323952891121670100869056673876166475520390294879528874750967876735719133326197364025115163079152094629505799703041036093492779142784691430481589460979181442862187507501498285364839596865295895031571686191321555142639654981655438204808825108351172072664285855533873212572603951905323005114768411892198672998713714204402519929684059196740393046982981182797622687064002060151185634119593785892515645682554786516343301167346452772453850856698850720274047279007257597240131846712720827909599462805453879878866516378385206975237986095416779786203755940056314493972714397133327862339211980968542766091659939184999667831021677710438994042821127896227839648850663024372935617696043290111345391455243771758174839977241233101206220786745328099957680983531449863879875734642247220242632478747353702966020050146597847095340909409986536423356860369109932965115049935619340275642898351002650060260570095191536700245489112704170912808231338509660106887383594305568470302912905801608775566526680609738814362126053871755917115107485535677699510421213151501955196927385783351224367156592496282800747344056220995192237693203252845998419293151078858620296206342649497775143516205647682477457687986290135519141433146651331916699948800415274837786123087338843573357364608114331083964012371338999515346982587648744693014773756661939529419547541880790934645971046971864583589015916004410474606664519403954535359646242251221467845948977674512336637276106291035571807222439794604628398545035456502920761041360288755631922113538337885145811203312485028521680725040030527617036372295453391274513603737766588191049501407281552876378172962300449821933750855782506238579745844871451631246182863217000536639329576374451311374607592063851647210206526617132032905267990890520138786158006873298067590281209525861271326714181978736476195156197932894882218477899936559862391509459221628993827152629631684993619197163865857542883423622233366473211414843840839886412064381845355047682278284626263030324921182694696276296619519035662780234566437283932292977943652922380964225603770238080015482301510665412343972643721156477072375844705568972819467400337465998431090991890318852510746517949324197530530226224719407264528141081900719916536509511605331164385456481611243016666005166354989884477752354587832187276433829311458315165875914796283486624700823972604304722642236015337412101144817932962270033255554326083265830852694179258731918387061495702507236486805216079323188491822294654209962942725912418171200468901864118483472957643426960311991791002258106117425902408751717670652181353700047831640629224606610527388525785447266754469669051491410433233092463458463513649710884438629199290942000613246625280193663346516423612278734839374484244994607470287917142291033307341933906425715806311552907336451026069267220750376306919007166807039343550429683410951209313469176365791112763414067402545347750650645157889181520673269245323410601254480708159353211574256420476358806315939668545995897775916645321136031574135074362621167468148462343770227571139433575390771747779593797262266686777380905695876832522961492741790501903973778647601511296611873315335335374520242839497514609406100582770789476153725809246334167590946584795791340570421450944167894653957187385587441971365532174110390442553491435589269162272846861991491947946814997250440436419236111885108629432844527646753790023466233711361106714713290106060772414036539739825012952856727783206339329816159104744084833592039726136555424984992716015909805714021031464856498566684936765031953536505369665453086609607374621966061181417202693408580815880039673237931094488544588070736433236802852647663308917835095140379438555266120299469324450014157852438617910318136968792225023041397915222349344640271042146827846867287030782541706906122792995707705771489321433649212815721702780346155571429757729994241304770402566388621383006698421580180285247238283676823267119422201803499782469923376127704884768823222803278840248109487417082554564160018539347396742544277108589310327445863649954615193694745195394214462032301828583481589952974244196419498744319291460347905324915803740670697708737162724262787546079472679647877078868424200721502998360974760473897134249647659004927187609480056403961287028512049163349829801106727165856123046611023506190617978296189073857828177918357940037787185014827624671955703486954638807904501216769735945660588464990757845210742735568248597364738497659582654866345335958066928436116372042446442597740770924576502562948095136918447303976581630821292255238387599167960829723636854154257439845206648103513827250614153199550806060077581409632557314281587755483539910265172079685060712464899489330183907435980595253228170499080697163837315395330097837446083123812227459960974026771114672593560769229487846817394637274852843588214601303998924752281254780766764209485199775318061779001879945340816839569838034468605521039570877982614798429838572117295191369018463385974390470386280158129059985706917397585953256610172704567616680025683164373693970999117241867701266456460838360665900731920768517687669435493115610091467649532689962119119119828411967228709567745168577597469686637316227893454747186906333711473811677447655540953549732100867409581355198110698937748487549216209900100790271984391646762549115104477395847650758237017389512369797775801420597502005607108363368570830405165559137923531159844540357097499121015154073228563313994958789311795888743690956689054739155298246189434750836605837890332120264776948921881498017663100543915454939931363013282929224148707942998455848394645852228753871928953939055224889930057520852769413741901537732340305593413911518653390304897737319413376001958554677463719657144007183066809169901458536329863283242305847072278244127443757440908345082172802994102762863715616146195731180266013019174199924621306628847077882033764102874424824941013687219270340779274652261039257666323032471668179951533104197465848697175974556178303894072385014988198164712347960317111582926881273384548647074334390878950575051100337117829942329458785336565745119433031691217210670639197427947492116104607088311473609104799719326548008899130686513224596208055191319357416655903928528600937020086647029922917360265432822213656633498985227024869596039788183730841639625265352090041605791161195839251333552081308885665143869226041747494655145389814985503621311119440335008308851544398951620382105251094326588899608783397498192681383984997000974501155384543623044866567992067930700136565405941440871315093415912371792572771218459029827854968785716049603378431945547928785223069361178719792720279111891747315846963632296858111580651068753686435606979004342698390950422782415944975357774703922306039842154524397106410841712986048712986551796186221339783567647304716596525768542359894880604106057522746347963177997540379540808911194036669222206758577737861946647924022991566060605655044107772584296732586533097799957079752360756757798507962135404057509459790058946099515567639000355196855130890469829184982906365262829271361469831979937812480061096680742310944676016286864010531740740537700544445334873650916098412628570649906054026292059095250732875035581708714499376337163775106347463243670172065124661421339471155529920307071467089332255243850056785202134788865991253448383349811868964355012450032971734119531029120717815073678787918223803675763979838198019888789959633604862686937106887918567419072082081921669244323443108467688503559241071713797885744729465267858857918514204687778041315725761095470212355839553019740919523212652588357732978186984844507149497400337827500572383611866218954968749454885020316772850876770947685340697849049843508309712601576871519586652344915135734421106227007447560122415458721122889115433795831010488345578871718970678883528171986359871050111980085684299870286871056885873885330246572774021769522641651207506612701654555864527207647028742045733685054812925506486424056449363446857459665853493198956004612882370089157612360747574488684066395116573395625382860193108982491496023490299321669509082193089144635336180762143075352310690390998300866546977404472988337859127540359972951951123545960170272157976315631705366727506548349616043663852257254770070023394657484415179289274123385001009208025488080261439818908216784904980850509292469727398561037031157320994266515910771649166134694472691804667829172464474128220497894295263165409320447471795929725748152332152849612233935541676042484417354218492710149480004999291443560066959732273576503268199739542101160351734239740264474833492754185449424711271665766866404758439824814857495139800831417318795391713488538989636609493697202792482153657998826703949172588107358708686907003310057331666558022601358401882687939458371650466131430440875589385231366352607656116848604886351691605234298584081179652459766930776664166085544221827727182620259492253711784712275037010144802023923461374061653775084340143841052100647531662677842172332361055494811722754040229129791544147690569124260366590493042843535903050582194179306656885189124945734232365315509125310913990392930420296341533786792336713607547796042033148655665858783416103441455118254289889693079490438150821732265580120629267010530319661217609904626809813019789538343655870526863807870158297061767360372382168599422221296923322103270854167660782503400907148110540940440829152616758389627354128040749767274985598046742617068293776814287375146254178056854839677327801562937230371476885580428939208767369375014641966850393262769115963180634901149839414908063991362934035102964878278548072476390340429549227192990945534289837683089747826996812963216606222575673485808843390508688113876271946510920369873256193150013537293392484425917335978040655084430366900085460721508390266021461769191249006270456325976917767239529948095303342916785007643230662184172659384021788849742685219706056506461697154617759877141756725332385801118926279787757900480511910259814393264525549374566620132488546925909188254845078345350703075729486908563842320289178792695900379910727898246554468521186329389402938496594486530906899091748236762390524561679800245994184939782211556613780839647981378715804512179931318663453265959902895789668687131395397785594501407690389822902686016561170624882357117619952440411870524739643953512344868345724883844607984599522404498381244221533365435865081514681770141619827599150985657778658099645315595542436263039171347550594485789717244143790905632606597048860983412906026404939304907932089455577183145154532864826910070049940958018708037255856223856825603128076156031293358495671274907471491322764312429156382475400104798633843659598290113693817666701603431466891736210971055671135327839666412201313413405297174194648250538049741446334121075670727850749412938263935897865253480271508570355636756662853947568046880587858657238217309154357813030811410313847889883025471716474670300225328689606892153366718828768691045094113301856028375386952234879065939146750021371653149103860229653931930454747885623273703584712858533633660642726380763863866228950587882974856257071547833656360779650895936956640704306254340699614392616654646224242910153423338045014699849852104357751907222827097101738401469736162104414297846867708115724757925978630241506624039988781223899154569129799779921573989121149058748145003141400111496102896709393247793360361069979765211557652807413601528089665269724515412124398990121520808206961248308079878941490281653717501641752166589681122530728805639048654510812608426399532550627985299253419640167853829885703173863614773254197129002081438755502797076079339617088733495882431396039489694369618973814718678342723024092055809497025991087196529450132012220834645899751995366648315132750434184124570775801070096792065740937667316614789132663896523449555368577468729012665992318500073988645322137070436145231360444176137087362334428941912532623841892036912496298067963204824907830435271090820384529302567485907138690037772965900740743408300064751476932136463331791350544237699229501951108326088590070027253431163055808510907681671507562836510870512265828338788575696862217086580040010963548678814903629208302471181920692245859250962012829590565627926348268936856114609211507466542806700038806519749504655932478953704460632583112043897167066120179956518279668978705780394280294760900306680319967190394183480646609450563867691167852600933661157470212883968020751042958784278803120374819884285930266568400666122343768600185274159035872787752903710655530193641520026020725992073977032238559397508641933922760322540142237477295172278463563782993121770277614486790804546558038382136246774898447020840468814953770970930744928176434992966106852074144002367410039059247284835796828330119586722086637634959844308451116242605280892743778529173483371260643818641613293557572098558742878955015905181516888859848451322421082708610524702250805392928816305098969904660563559786031867303609594251792769228854602064364499717112174377317796868276817277452946636752596512396010457663358728895722235558216863469446866615689596565012472420555330181757151973748810844001966763169819128849572814063629396593347088196448237205976246258423201950571030745543655113169346770893780633441987092600512796757514889500970867706329706521994349384378687726780882919871119573569560664703764276056086393963738324359064783592942505458204828358901788677377722244433127061976604175801639970125894918000540960093786536762104438974366319818211113932856343371718419368640438492068855447500266726303355969365093215322241932324857102609442098318832528533130126763476499499007964707221241304903263141076148290909158741858193824700078584673350886015666806578171960060563818180944474216447757097974314211351063316044617502601567481638165356747682831522624169593440174709291237147752545310967335675572057817873195685596247288234262811657147964471760756997751076214599525109358318862696074877617224945694842353647282154261286831537388152242545023416085074882834844859670480167698680215891548396708258136688283791684991962308550562406363152504090599586888506641066382037786621706207888163904227835008969079862509670596044625211755252686485779720026902022347280500741424184994484548227190458424615134003248462175466476885786010062002660784586563639900175331698335557679199917772471358470158039703352964576990342755691696431959169720229493623520192988751671337132454508212397938048555912328945710446562297858677267458504373991602036655564214967316428132471781734442781135797744914068302774020406718493927622124426875303490072824990724214602443549878088548983677490568952084563377794612085561878420202036707398929333570390285185997804330047158158462982874493819092395283018661456364792318090638960624176081402532321240549379575995949664525332506079418251100693939306398162249989272445495269526550055521810845000902015573650988607646931167665914781267464352788151555258859382563242290673771306012651074894991103964156428851801183134687304661845454050245847777586646520322112193921504708874454370176999101704579557442011031444657084388242044341235270543530531769254494221100199125076297890254414235867839411149020715954841039863047970233553086464412160313602189953593521272879316506608039584661954549732686207447377948418182249832552699568854061200455826031694126269855158602808765120857225468016449591216247373860996337413593751963250133229008853362067482432825269642979267731510226360425844569166776105489041963479213150435229431197865727791015736994661563229309856956088334564841198810768083500795418351893752907664247399129098884527802715358423448026120998770404356165456370333967839877995594505155808572457979533173074515574597562604469918410282505436884588795651375882855182875061559466858556585158529998002833510242426547685241165021255544403488769012227706290247821378696177145872525252760468459382543312232375069264203881180876960033587559611578444047796593395532182776283474286891832855540493137367428987305023531699122813786136320174067207058759482304808747381341283830019651588470819181922495641729008274540285794825224254529485450378541433710870936222910783872204419065274261472642882189324971384265944377369369953911598731491091718007155072025084803762898962509504261699792789491353226261005659560397702229107816553501460483276339538613239916348990226368919478498426640964165030205625976281682561667300485040570502517490539316019246152615452311450681465865579693356064699986949138476680050717595200363130882504410133042217260839958639484334072118330203033145317105946174709735100068099083613471070851052600592270100665210321638024366352226740919760397373056958253251093074531183501940734536774069069389387335240596291285032973937443139925395750220745801770438739360892514414015317295010773696683322617024795702563072684693622878489185061317995647081772583855621837750250381254995370364895378413646424693777948496686000034357753150938221237212654714613755457645681948081765839138159817110701061800025565305246032556777805634065034406572797944878775112902606597260180939663104964306833718538622238142615718937265535782192729270432276272284184427404834314111857872277956720571018807945842499932104656730502080641049463651401381255708367004079550213130987339278992482286701303425394185248636878736168038837661307833025879468162373749889651427573733616304231428395903503665832356394195711694526654145552958552512993065021364098604861917584433361493614832598585148961848780237403859450268219359796556629775464874632774187231973493222825661939551840703586279345001569796077834273953113390375940640280182589911190961816729554723642320350961694242411926781004588845198491848312379193045429453103901905668640231871343130949717644399836699005231475440633056364889177522434011628123153152804928399887809705080330998022909036093603848937400692316845796112039908627508158810666132814700174048506811010495660176207646674118187461559852975673810510567799089458127253067946883272073750452263178513030527888214142601241850488935805776720707253422944593420203342502749951157833562729593754002525802226897240073194479952388466514661196273832033268254153553677647900368141121864246735655648115900108284291457752977377417975421318732539636293548751793166275349477190512405791338102389988739214603040165172072224993832721076562672573420430567892161887948430605336885976070322367026122519106120844764215657645114502119646737157961062704347856456593870016008509927757826246572568641503900217929792099404125694578822189805828001428171382278403529811772858504811784354543127542272072963414070700124928699629372082456591513272325201276286418889931308961411513341056675930442541018331133590369696931345125301040873129820839654176423100776589558440403561820442660695217778277613171603038891264681223007168849468406232639701104738302044660078655697174839309871271825858052355849757338815529160783202180901703649643475325685298698669908421056069234574882039102321898903972483612541408170325719513924800751331079511849421807286027181622456478393823236925675140994527339828081474396016400944935215071409190227528933666804845895897342667025729549423514355427410479865748630893341221800711336577111749776524774417458709736696241133643171163252363292330055016603631307147733108773048203056683436131258028136083098081968712892457351456536664333019925660396902507106818629042550819094641929265529193150294551824481042999610296380561924148726995822380192112666403793437118008392739746409448925267389604577053584922874413590224600320017597856758526940483940970544639592536732617243299388984594616407710944625672959744454550242335801951556501126789153274360641445280142506637878904952512019570825637238615641118527307790253710903609918352292191751590606950116832374284474462570029339708253009051849239437422257474350729446398078608920465411881217321600525661038867365592393450009525335200886995425886177397597470718262536962067610370985773479151268060915155546207248552960028328622861928232494323449582385963233558539491164767995672353468324210783240610853289909823107930365988098069146962612131509469103753149098149879308272143252312791081861116375234974397666419463394490746948118745458887247153253308351517080341178338119666363513731254277803599040747025962292326613647752810972433923354730270034084409353484478951206606208932918802676532722099852606996248575171306725546153468335628529101988597298053455761340807328082756772074272763642142439053513208811353307508415633680120742624754629828208189180878565565797668024592842686914565737508246969128830790294680601497424610995659162357240330821254064444835879985256781591529276150962800084024061174013286462805418434977327192318784371535845318882942166925551764149166085639088935248723890518847996602555340710065913606451196669722721875436727603546836424030727430580208880172974202147471345539625046160886642338227581516171642542262583412421308470304937573475120649534192723407860980039664522303838182295482845990794243268844553332988991094245149130653845714679765584037122155867799261884816939406704147088808076140644977219543903282265561718905412283681200150307380192015697242591015343282787324386249825345744698663762055045510672018876327064441281653494599604420860810813690853790945041397614998572707779646949919716415472883224080511416901005011514695415890660634058243904784079052337271285175744241548045940658042659014761211842648307879290051332533769028750510675435770165484754402420886275312886200887610507837309502460236093553314086856030130349162946773938403970037064004659701624165269539758295778552751731397054470667630969039846113644292809632022262964078935631457647940050334489885606574836142469841538870499916488403508595067352747211465274168199822963960413261451464357833813710460765450408694948211894974234235345136103921127515396716199787447318263536180535363456097785140641370453069020743676903858032115776974437267802906306436149431334898833290679201610715319019422156672158980442952159216659490069186941510103978199218498981004064230075345795890422616077348645803265256180008687123113830902009561214126523980882832313827707886683291422128416048180989405087776729066938256277079124446116996892573936970853972897778247722979445677086013967653704015782102782622433886331135681903804259524297257187458389609914133389260065441752816401121968061507140385243666208309568272033035674217543953251748689038386111031249327608692191608810187558689545810059962455344594061875566479293096030803938595614680836509352277810977329420613206630061485146081372131604596266522378387049680894996152915327240578879804502664661946348551280968754929361964046656454926552541023062861971377849103907155940874045085248415891994516139668590864815103093435975226521842928225955566721669257099969597429454127742285163299853105846389764067691630159761903491634572084922040027325248574204797672834872301523019396049625782735604363672120161881094381587811072380944901367485543495299314775578714557736159527454153821305780083024622362118574813431873885238150913143387213122405715073858500105928233404571767532877321516014062199222270972001594700465032112264242372500587071060337549272260221695944762360003351732274735087630690316346767566791083356716277307560285831837187878970067613553202696248302257160895853098413716367688361273668199514788583103150004911321022470588735296887138579042528681546531351777973232842257379846064749912083512989088157375423686757978231233775919702844156410817484540179518929605572771347064592474568293561448005205805232995229969116218038294432313241064601745858379687347148597992241291162626221031298168816326546419108213135253983335927296804048792467985921944636913942383425135221385374306569413320942709609131181375983197589979946683454534254936920496823302661892566890203309027841262000254156783298026277148229940096760142038181519926104328329353413792636337335056391962455752425017282152690020060977894606756727341898096828535144252909848577837862909617432304738560797059081055082424397199494809308012582914207051612278821504496712658247009214019789608441898149587990681911108675505246996248260842889047328607435828962381134276082209611724254122602551352633623341869458424000573669166568598783543200389787792497560727199462022541389989440326058568011556855941222980429427648400343056196210107102742250857964891793551209782421215420224873136909690175684776684195474386983272713112636886201881943493583414216243630482327155953505638160497165841164465518925206613428489884962644959344336215051539186139216207193548271046153949904043004086372119628846439234684213875270636383175053581316901544113358884653633806366158862622773453768413607827469089328393718178976842707628904769955098948124472462356114820704680821337342622798318243650826212609643157733272046394704376520734057939986968676477289089360160132303890137339569577439595742748106548337163627040534062365045037743618962289236939006118285720571936210192894833460528354824596313482581913599585262547198404013634373438756588526248515002933726499869522219064357687405322361458555785787400540871153800504808716015653593720668926857803240425266775849274664330081475286850105490007559101433290365555001207055742773829324951677776836614317300702536377077494202581818495695560197131932351393261784641936290812695067422005680619684874036000860339235157040296284131170011417788106155864276505774285021203322828062085349207123385005908494469902605665520425118161521086885653069150393874235987878848132048817532872800573500877294743513267002665918178370870053831127684312558403697954220580192518036445565506273129005136144505702578216542173308489273426587474277927750537720944900132637496160246701954901970295199039321807808815117019333442342205172629678734463004760423662171245709620082278829688726432610467452174491337546889436515914633228646610115676971357376801018956770657418871071909194009786708962628623530329280202554704750070641605712570913795433315237370903066507489956315471696048934500766309813327852175923062832358792673029657104984170076065615187217304194105078266900321601064224208631924716919620827755416595384115464373026646118204518648042358527132149995353732599567945095610733719805801014604871901599191773463706297533281983510472832487966882202112979452881416321648356837812036051006633889863935029664823379753022614128310668065006209727354671262768001176140755050708915619788321457233757868944784265870543571969785996368369336795259854728408659421699833567742521701344163686155689914326290601918672487270993487292473711291250962654213160194718978262074765473229472048438021550779347120536349834967006774754545281124806401485531500232142037840079046794009701204861528244388423045439352876493778492809186960406303770409996713750898041594116774734290422491295477077568210253464093303038319127895767036640112394918579304175544227095021769379341380621566522465421731435376669417677400467983402006294275044886970838775354805646028963440179854022093409231043252350903508881646215610942784988707205155364462247861807559038456666289976381675416405052704333793491879648621229221964831220656238286016737857230586688812491891083948251403263032178404881702366430703457414682049234939471923450457901278050073726186029784409869933034501997427769674352327056518984534738224847582992657031907113080086074258330408477393290712398946699093041833281601564619254218711670164663271021190984349211014677553157663665380122310945258380925236323022987293215097472470220335492941811777072335302732640669758398897774188539506799237762965295084331213591440323342128661367932174659462340509758373108344734404962159491894153131787416869755104265568390259052410847189597471577658995133558466140860226363826040263682340642419239136207791217688901449908917601989264313272208561986487129327690346235425460765877806758553590869528431187598617076721967263814430780365483767507880917912040680190454781195044484593599021031378152711743616596483760215040123416347268182726329430973720031018636471460942110158652343439250635913446580720521043412872068481969672414103215824809632838803470955587645138740770578428985020685694304781535013823652082848245499744787740388972132035751578246545267251124898573123547106556136457144255589287553484295142365747672892228044792272589261863919684997188620981865095536205549750507039509205552717279056494297172672922311320995366918195033935483830872469453821033155833326097029491180496664610984117176210779931038725523834756280372805930709487409006483972503891263875372652802754912407953046966253485380233450849445181464736659716987383506636633487336158648703266278562550281943092064262514271070785681320545901920189206502168470392732218244587534604984343612322105363825796175834420468927443287349140398960455606948898985060528645085975894572158639759050014097196551369882025358318319222198957069319292586501914417832596566445693392477352877630137148135191831973840966757420380324736291311481636695299186123592153698417194964301873130514318187089627169918066114107893835502037600578522610171433568582977931374361173018084857887436893559418914392648781782041505297340608185806746810320347575037366792679907516524179385234952724677867096884168163754097028123075029677712451251079184939932076164935367614233204546262584253004282154771931672254801220195904325516450318743758690434397654585941310858890956907087462968812726672391400383543900756248595691384962017994365710823966557026338611211639538668184126541714370942225748343108052339939105027637795755987080303812335876750624272795524954670452377603374584146773729080997762740405552029879290141097167688353307781293107611648215991304703413802031906162225890493733691335618541751870459093499888173037965715209030762974322780413367111583873292038712318295221899605397048736113435562868971423150272547290476816646341759505994372299793030778936382927712714832263728270492974705175254311111068926794732262957714700378199074498702633659656770151303137017074631380858595456013707645594629542416889908057232251019932924707436472884937335090140896435833221285240824212245476796680896850860736529954914738438221412181116292973269102700156294572927718816961373116808756825631778215337095391445472526491681137346318594348622911680880745550392775602572395885486593879870674237010793433337747644035639263256808023319989762917340349225107326779568763686517501326226096445377712011555194342587273459758636745238377855447475541233442609863313719468677565394218227659745736544544812748259248747902204163493368741462592067105531791254109149518186447994631661594717527693438158821371511449547239173520511429469032667854840369635300033217915449636550547354689292587633933941717649557162294584442860827711673107795972407937243297947067443018433604687213047841814359624435943194158855328016151661607581749646650541462736903371068477370580323562780773241098453992952972963482035273638767346988063601561991915486599420027747687500079771902531255500787048526184892538927041525086688100471630619507294841213379406620931691845591702761721801443672851315799512002266741811411826121353529328234411290452613569260303089369102672653871227718016505497284223960945390148110355544131013342681094910822137988841834839245442176071719498019321613553936234620058006676659705667537180560691209609743042225332612749074874506982174867856181909303581764212948422788055261241446482838091854466280441798831090334639526333171170669349176299541983839783684889886394651784542842128483631735241759178042327183680792491813032863858711279774837285427704323817001301261087773691061376946357437159970639837567086786533318215014088178348233326283038554736828665010074861271254017963877914195721066601547349970935855650170963015056975667742993414549489997264869518169771672221392256631161562022756551235467549570963614472767537752977865432226036211806582924495956750838073478538637551213204172019235951089698083865696626819305324593411168905184139123628090458297500694900849297830115321428187462477787867488504619489230745773360741890434304249905680446767206744725430627849318771529850538654301932811314710275088913411607356714312141302609899709329002967381072245659463450888929221891341690409411475071581828016283364764800634677723307590670300767417838026526515669572424870345513216057920538100307204643223223078455326475784007653940975424049073120992099836435635631916063408509635406448835448964248271027164253845569362109192935955683926732220512458342020379309905070016159702166018794542236512152922285535613788674673147616727522485276471812695356332381003247527343587289747469200542405087757137595171429921236472355979688800655721813299271902255694781364406970501015444290904278171097147507368688187486922386268959359735234920886987167923775356232030359185697619435620190566463381237589268691000582532543862721887572989638065092592363789959693182076863983080003429192420055548691866944787955927065561455974169593369055054383500046259750866991862872671386061516044922788877105725424758752616704207212955285799691137509729163190334984145503340835838662461397428685444297072851017360276639684255417360404728284341544360935478593607847820840783656843511054434463646537601626668351296724167107566407106695834127898993382676956129966280039043584599061595005655037525317450607758790931407273876121838759287824084751424639826774636641506292174023887000245174958420696663811767465654539718051990520379221658263866367365053996592711381911262496567751045910155193670314005359913034583710244085319071561435273364354142536919598590493098961787660755774753862102158647948321492853074152222423217304514465296282593167822179295376218749454261282067111839758688755457207122318791261932271806036725411417777270839693902840176036253083060354871439822257871133230898482832227507669732816560602762816242191593482493846407431252200612473288712624479226156354223145442037923960073131025146374557455397952512117688610251040553087159642493775778714361700711772996278344071850634925903131719419010708189427051015078194240303754059205853364137182625240881042672552839336545093045042847162067914886077563908761408400231648010036761559293959990268166129142205634417303911928562123780096465688882938034527374308440277379609631829630648033629886442009119955345122697059047233018868616527749071604914200676604257177264763690215859629572702598458754783676210381035479346986400771034583330811994727783588361288445092645494800767974967030774343780272746165208262052493864419217328532340216683846764281544273907955754459095926647405103202692420556718208850418998281474042700852405769703425658988457780683802425269007990840610912186567344708473836837447111964621207163849205992326100822155674025169647820335651528151172477166894263910843489464748678704401971951376522502994504529513171364658761717814545709933159054162298839913407069127881774447199725921328302847058097768760330979917728427561459321370522988444248617698798177760818896188361314179111433298736086122423741894530443834094200012419264726398891146614043323666029116842974331472390994534882297582319639496688484894694941947703782679606823559644358281717684927388551430550838900751661677015610282013820694483894634921565735656089948711263228984093036846936489196280442377509308435333795034014767379647150512374636213731893071956257114729246493143113722861580978464665673723588158693059620383170673679320095841540609692381828424051336229917806048636663149744669074558265152504955038150346387277169562941981044617768752584597952373184124012414377474881764200874001422861447600732158349116298396316792335735124506109252548285669671322257571787817718320343950444248000215749855708948083757619551630173005200848742840878480108430595986578036027556383539943279436218163060786621347777298069431588525834079760700087546124436627899362399878760004644173861205592062793327045336481859033129373451539137823913829710455721494825631972017066529237736765706026538927399402505442156028234032307490958084085920607102741790367441104528358773330783367530598997688587695019148130609425595309072733278762447591814187788203903854914562690859475233642691027731673978062862737851337633696141994130188566195725793729259715156315577016509461044639301746475762690358155623233907460499638742872238456026308581555703479230869872308075612045170680359895820191719782765812924668120510996059724161944693950600821796915456205134879738445337118825005858941414408091694691445006523084113385598836540681813684721465642909128904720933780113681388945847498756172596090402853879516747908519066402144453062205498600861444873667460136680001672579702176160263387092093828428849212913048363989465357903604144966616846700064539051690427079177663918158981951697375650126794042379706956805651418254897536862322163637218421593283633190111401306145994559378168826510216347825416442880564938945884375708715898865249102302271319704208266124563319989406829270309920519687964789924206155297663715507072292475601007228197321134652207843638407296295765514989614159941222085345508161567200236100463178738700812640933204890135050556245467270528776409006631700922682372239636765580313277454878137755993693522565356558803187677111988511123774697350948817241228894790940217485659052131572489315811410044023936583470138925060270607755926868105210057296980368534655762417319961968143044510665194259194309033301668503194104496341133326595231318021337050582853993594452672634507271543229059597216188042179306951154346640540248923443254183592743473248912995612134509643665033867219345803743302396212736763427418201711421880544582815143745814708643285703004952088595089609449941775993009275117540900358380484189795462327465599943246923145100907184699508847843367196846694665110211746236567998509977297283826340680005080944280867958927426025685258186950397963478025344845926070235600940416360821892723958351593960789588662265144290424082508908480398995369910248725454635563933877070682826680235529504119490114612960083974774654702554234727917998813011528938845802313100052815691047029924548421118653893035063909174222729579473976388024280617879078219363258132694412537569890649732183260971853718846031336354109643273586555481558260972582846331652999375724532850414234397831163535599001248167638680035735239500855353875744100502382569389877059987250893344333554069596384702716838456315705911009234391149475231230406205111573208786285971805793053783024057999475400904043131798874792855841601248155987150794019761408798163629023359523042241451592877028163846457931883966487701565534404891966657692888267033556221862508032526938563456701417677776447656577004906963519285029860487041214395810890743938381334452076441328656644953701208325834722979991897879629924684753613145685609392397083767898839117574751075476788409145851427084246935091882527437307965308642586820011123160124759762657889331408442883400051797603377154418884299919130876999317529102279513869419047403094519442347410777952836454240040514073469073383395022065448814388887047500859310870259160480135537038656799580617142567679262089339595913772803876442134257604195736996830655240191527025367890837718271857927725653346880528195176918234173718421315615272496730075101448103791272871340603320369514838110081603681322259334708771360490933520160552657211939926239680157540777211619942997775847637471285228702845116112884991319540121479907536016158683493560942340597335040444300358589101204459009267237814273275223060261265621018565200247069133356943209404959032718091583505645432270611875776273609881791514364671830885314527027677655890421056354917605593674014502010591814046977050982626999205526827528022093340134651607905779374531287623506438830551345740056893225279166109632014541413912993674383970574392060125333407946074745868815860673332562919237672683875832914587430374198665887368852684792643690405578805305775654712006678491377129204777888644477286836943588880274885052646011649793210388459666245675816980673403440023846351961458184764439389182089055023234105618594908270653476720100205743873522379996751107521927634199154893557096502521069386701976411691197665805364150889876063835592461270497169948075663110930290909304328115599398376834365386302851536489795988178816676529483525496598461594402286466694270192635137879164649808318807730206219638944871416560867843883175603270716555998837097375467727196192478715718361144886959168364385746420983813465057795118157212594412750356630434434593627032097761189966560756097522444906574602869911703579135463342693476218722801611342270800133436920596463917757010830798703876921735693411927133389977938450408284265608152023449841671458060316309771435586523052104764298809767166527927601683264558668763161096844391611114048524464361813048355469590032363814059301164485822237923937906687268254933973333359562975787896791211793832494066317793745019396111299556929424004062501123831960828451221455382159016880886923579083707395538957484179405801755607540600058910835434687690665168404790597726966422730285194983277582615343525937236634586270759389705386635483876666635448580925057322394197738205243598685770160397457876293525113850683420914494945640366104492879960001314384746372337087574200932782360944249358599540584223963733601195340000412367187557095208681790285091690857383789979591216413891415252170196792908694926782791626184739362225457730885347861038192919552840383312547297193205740122285666591071826723321500433042837911723978502680177695117725817854041389941786251734233553341199474605257791052377623866595136540800973762273059806333408664818746837232897620146802777319927426062287842016233346342926018148279687215777989911724029123453031346475986380798208184848342341308446212365662910017282954482639841978867358209147655774789846478332353836937547718140569887741452261542551437935080921534946268859691416204374370726252807567163498282939659910190145611883368045053949034787593217922900540077938164318594240586599218742836877601118433638792611956277886792289815862472135865504249270777760319055367570135344127071099934823405244238572759964617163224645870805990827688838114637286045338988005167811037532556400228250752958372657731264223406682078855734800284941052074380051967424737027086825430756709453463051621881712689153095263593493533829053303264547195050595865927268390868330644754187767829447465897994606985319199277504943543693096668709258421261486775721730491489789526742481135848325986448910776984398024412945644250567208953533845017975556812734783048421524975510923994342232573858484057019158130616961896270779161109371712595430575539889587652781109321599728258579916744756438321403202511805250361114490162364372876666689017914828358376408010089506970305476358580353950610993116604938799060232260781092253344917582474079558646979790024734324689683818811398694789588113861536076828407798936874692728888741754568967828355883429492091248097392494421721695579757661721071398929262579402499441403474693314361604715385270672343943570495643337713527466970158524576238100338824718629995852243395838542501284939376694284077992680037595581936105675176990471176015417432537619928492593565553359408392705856889801751444248337503442550660896679970281611762930990320695447696911835545005977028827284372257006084294085312130507037861159354581091173323262231179158403412784081798065372793337922327248179807797452264715991251052435464446015425198532100568690928277351964269568744158827947624291277072401196015795378735557587901073773613102400167702570995788094270190069206444307554238211179129309644915963604772623616083792102526210295933512325658354664163810972460134981687681861253020813429640555789571898444817223406244623304414628765644117219460876721629133647764259368349733202189076631180041312452795309900397312559456083403662752127408416617045785996673046793598574721283032338929659842294354629476275183887600254415486206521289044798926508473880211628035665548892310569283284917255151077638987908051412217479055279637276873060597629434676717320495537931869812764054986904707886105648628389732065637134890388559948979995848156507951966047747830273102160727960542095342530116120309276606469185675653128699212068934519145559843365107087609150329334076180534233873610494339786261765057793232064915825113071874254961970216511336977870754311210079282919592249334593607879750788346779090012051433388249029914388821309191796906328433833988443620147190476172578535729047765917681240251436367131145315972835926270403318538537982172430873273905660146738465439275931948546014293669604297637675304668564257877463235494825505768749740174313358291077102721382523067905167478751898081493200926924103365543309873278208616602305753844335372085800626141027834862823157216627755819024618631095983534247519838888786570651018611438498608879167471277040199853872556386843572943972545956834657691239080211940386072615668292847416456335528300711186699371439413561766186662356088410377343355750687741475458723439335206983499015237017943657417178657752446327896358082109313418489771367949908233338180830812138207501685287443599105569963137635088960873374009083644270035148432248464671967289083630368614597738204542081405159391336078655196026710447697885592992953715848360021890861618772104138483711997400408608677772273346528410200996771240193672097976728727262281733991741222557162197173958647591179020756895197332183939566839387038540222214594035278025210431513600662080863276937443773646830546124736447477193850259813660063966912308510310427377760982439921509643560173519902301613804368262806311758107600356615352800170673293261318706155476490229116424571695577696092688548685151183389068415281216552606519577262061456938599483181613844039206761367563778434901174220073979531833205027016872963488893004647654293161512782108671268452502579050177917988479089197480948641744521969020668797429867201996866470777061592539505813685247025791866832529223343156093721010779133448853177751037704840055677244645974597757012455412092419026414823197639514017623136600806159467475166829215059472125066984222589358032359505210771761409698423447734059430271852886325485186885488599818502143616215400249367593171807458348260185093660353649643189456035940775329546748324661826637133712377886333354577403545752744494709148920873427739210739087525609223262332749840750604185936049068256380838110066210300524111180855105812964192465551394681037918261469619315634221333675112296269954231564832854024642200104571205448561556715861140292826918533914775538487195842366231581887008083755106487854493514537592886192600060279299074103832689656234794269259213659822307431985482088354890564490352893507235006393035559094552775512598625371349378354670881656071322541045777690120139640708128914002918227638161429637039451634436431415835135474274741610034482708732299803861808593739161309105144356399270238841202894605559554635428776119658156438405316506846029570759740200852675098259789857322501518205218581252973262514750377675515266416754925147709752835391547923904028376355301946025920590332031653719958121684818522503216676760987189603866270954867227418167594745307034137146406822950380855849108891082728352476676449870243191131126726536161101830655390743926400812445520909337355433126071194269119669219518060562699320149420194810947198452943602480660145893936806082619398475084107894568779068563355853423330955251340958288327586256170156273707013173795687460426341873359308661379075090393473469866845810421061017495931672421724318485355643165837063336595221042806186418468422176874656405190030535397940318563925045290587879080986527032748073898360544704879496258292849092960783061528428984436951840610487444224184105543397374650258738737607696364492062323449803794158151277509730400122501575486294831830492620726565405981138276573498358927599292685679007733688636659227257114862821005571904715402762419811286226768484578358731777988972658955578817102229410502310229653927698668136869001056028339582748335032278276446454352923746683284868980569438093123114909932135307918244172947005174497751296666089042937187740897584196671602804445206440989051238654901717189784086304411754756705346929603595653304532173107148589773088617426432258874233861446052154737154130008748530196850474184562971193803068079578219872108913058322375361654036626053032558638076486868218468398606557848065438277275062614126105130033526611315247444205154203210642782467194206736091994365081834043714416790352973900762967957367784032434656722098664069375519405654391252690251712468647131814509700826806687921399667043849464339759702319220673172466894816640100003250773910803462426959846440996129725932359696658172913423993747934076568434099223868986264970905444278027212689523658167325707136959543655623590150113401432820664136257553900182246581554211588409188230427534689449962071649820685756268451880005865586433822217021054323969759198924985549821583842054055467485843873667515145907476459725270115472818204735363524526358278996555672162742496932239311779310017971703216776949617828477917008418546700320533126203327198984748750470674891145179439383273298814980265113787773569706619382569700982858017929418662149133139178755688088403954099829727669277708079419460067007827943180608940458688371900338334233264365119449833295095779894386497177679559845365755483342654552674262788147735126426471814981614817408436934577731953574129125161107095064705584684971581500303978453445555369530264271216072692177758155929913029243116777574785972885803978641590410720090155565891912896732175129213253591695479684810617860589981020403285081731103506374266139166529884948060815963935357626051208938025101165939025423384916720692950979728221232588981748297970348898686578759589130720210210270304885023146232655931684738936767192005580653142242738886592819226364641727836093357778597260930233611868297806821276299098774789064540278654595745230645267319804414707701164634712981192603890602612571635939572430624133350493351113536644303694153402513003014880297728318325965507535988744822626921297259830967576030054867094432881502248420834623238228083543332058713593224761282671896017569718293493711091982669555971479713526216563800436573271597306184343661652611661747075793580886533740579692032282091570381920499614302977879699055909346488929028366413759109300849918763772856983785699337977160941809578403356716333705126245280501799859498344179588266777176467424961014538370759986906241982753296760517519045149184823502236360995940104665472890476711544916123966819534862297407712984732642773067695132438093999279061233987116760096502207914668748584767034842882782294427105949304948304677748559264817641928065514031587735997525525313719996642266001596730733936039586667500620265655841683705531401923475902638624132832001864694162844016574737493430024118436959994931361894561397523457262785771710505057911301374071126881518844964573186738912125840253778905381459951372000463822242883841473681420502055277148436497096422525334191223183792805461200591916638696195299437879959288945203332197887967590364037121858323114258085711447111103890985978414787420916084568135234406260992333726519322340403017781781127170063298352724519283574136589095533164809794896807192625250962272137009719219941040830132523432773748938202476073280425673206606647464466936656480992593106412073674368022519260978595860359270998664426671192032861598079233897606874838939010024854786335327812394638220979186733653116698872856619727887834790916890330277730876568009835695285755683917910693908414586902727300567494476039744852608771242198216412327234539023193271681028167520843997144582887075040149320161947489478707854474778676279880203065232294556642774311563223745649954616183525215313592456065142728466387281780000932401987067265010272418451767308509715473769312565361950105498641458861450075406457705417162922133483306237269058449695542714440913687342239414465014988253929794915287618896895273891359238935571052547899070929776391164607399780178986187971954589862670488348716892269668944355710454113495670649003251034415690808075495632227219282856826238799137642499513935764151243369862752339095132441398172755516222823944693865226706183148110772682183905619801285544002776276815383674678486095143888978210636517216513531965521843337763877025188486932282149798664051072123482575267791048678920257228808560023981811738988463389477103715460743997272206174407198519420530657831546257727104185469119106419676670199249729470571985307505465873393998790651036970546328428213370011678052261685719394449167193643331087096696726472845732240755828753289196374963628578598764492688666772719974063383453744449674951295664862901680558977099972827248747234614168027360716111972591088151224557042472147892302638258396801497082725395442454606546566029160546797230393809384116429424103129588377617377790131060181198158958096857363186214863073251136042533627494843837865178337109218255012740865956561664296820311989192613635498156252556612637778780913220073616781549331390157252939877514867612413099204784523865923020324116415982456100122693860896688074125832611901721982924414353354957043119389572355290296770608714101648837603115618420174691632883587796597463679251560507304374193065055168695353107235257771907705813194617231599114189542310395849712777062078214737693488391902270244811352119138593254285210567990199180726717744393167633631906927536145909661196486762447386588199552779588451830342858513503581604038960125503467338664301147152377870766616516906810837244183743530742306977807908019085800853175729227855406186765885291953003840930238066539456617087432559624243391319596057342324594052699630071740381883626691509447999135207279040776493980473984106199779899936143238299986932517313308537985729344373776335932382552300912912740039382854137646135026565910373688648238197097376523150183626120442504266099135687906902056720888091121636096782328406068404273316017469106750695296182307793222190288547601973909169996241676491281898237492606467851046195660181628977261648181692850400021896966202183871504218459939996860450405745698208378346112199523978155242747334826297348519470221081147097379059779045462010848298622778359873316792771283345183795912789336034000038192700705973678481555726552522158390497750895267880720616617551010232071377378689973919078983552845318862581453987581559035000846149486839238658674675564977733586570259868817558304918204169465357275397258779987124399966633219530800472996204044314632696865065331706632817374818400477622853967687921704117997342745795486487373313441117265699379335669194643662971465617812253403572135097395941542990793772225656644121824046526957289457948451537262188705142925054864956201747418665163408505991809210401763598772906049732312546279396250435699846077172682034467311400922063460556157911718177919484364395036639132416023064702373486025552916656506436302609830599384704787003063693707980939009262934672655525084703122047999947200057990170600933432412125767823081443243945451694613795730955767161548101703721871260622432559607753991489110017391729680620171568877140916497680134469331179285932902208825061281676055677476448329000353353881993808752541014242395721290075279649726927503398004188661970443060704550748386370145356523599981615280926275486618973445830648561435789419207284846999011205300281444704070357867393764932965832070965900895087271532055395902946880255759694321090619938241345984188454701933132211924734031748395228351014382159044813601841568434631078918058989071187860634413725250549000175848329098420752593834064249178610795759004873995998179736903921687217690490718981407238178314650898111034192170192165753088038696004666576760344112634715510324075279773712846371962262220015351269261529730950469467279891966371705292130374759397363837353876670208588364139067713460239299277111033878788997018359316899480620066002414183776933703370455401279467616796875521068885747122591845887542114815993211010262185534883605439676519234636907155821046123659784008665276115126851946521596785587818054831799373191115869872023665767752302525091996913261746248015304699934760246415972378374750131321094359615191593267177715227029508874790586820738220720649752665899371129827997881725199123407017779786716350435191018277835674700110260319121047310029898522443124144192800396465213462764547402140714640058444928489024837047614776809655066730235039787212162947858185572158795080296972565245913997569623430903321506129708264134473704058440366901836122868583621673113046318448175984237348839379980096993514594860657321973809808371407422542211438712287337829280741478616676294530303336394367161691001136425223567948078222290460646206277044976932305840746308097098910126664400138830986702529459794697524146057254038694376181786886249126722301233345128867555525366137302341728892695261393949225638042549625744013743657927014559916048778282310773633227369236691320626025244384908454883334198870758528459728697078665622286425366736728436043121142459020601886686077010437143352368908757741970074098272960933060073901109649774470918278307296587973312813851838408428391234055458567618642179616833071615870251605664354857123726483303549575020470685153914369607030142105912122122979139032064888213486802614810020489650934638415516267739033875817042673992333439689210281507283078188190611277248606032230593771831076522277350851736654089206662691506463676808813853576643498590717835571290892818281635908186654615456491995355050916407599756654169323946376640214751424345982171229219769816701370317486308534999138314631767779203531408120245924550515854465738347154385023134295916821131054465693407902747558452273258434774333403872392928305043839418660936214205122115378800979332312515462066578181424453646063585688488814589937257083259947717521065077937657658527802686156281810082517024590287037637365649139970234156983977814312876543801431886586031340574077307288422065865269312402008354701811907688099437523955828925914823795601283404797695060216129773482796554056441025148573356180012286801188775213396561529194267794715928535821320006238973824313212153958431295721942435694056061847804291474869460967719442952892527507967237685811158758667309308796756086913985455064116707570954060726152517347542516149616337473989227087420770286572616302497876118731591686190381933897940415380856539870125495793125896632104670517393333709060127804166154278320552540849704085872803816312908846236514343493665768046796328214462543289193997832853536782503051348938165859430109327065443870681373105747593614503213851586684026561315811849964821056109158239221367296820482377154857482845104649301337781416471963066479845185540783650264638131816892299732544457853975782408717874151187648648915760269933963347661431301903051505091156810775192889521359849332361623010094587222725437525570066941740703272515712903115775041266760116333004398901862178505800618221189732797875044918004465126818979613621846803610561189952956209346659021406343391509239795396829300912938582595362723021179715596360857584012097004365201598376017256630699793946563330022364534049130380753556677289875547501266746803170325892736053688617006661914659353548498991768521908414041244052093482755670663889712174671068851021834164741668326082084488615566671131890451304641971312247749340266301931229467832130084862883189203062912862303178969702173368180310070764778829563617580613901645676728261347530034828406750031292371138576509671051887117279007217158152723075505215168507422840998853040027711195899548371923589900706440918742361443282778616678852675683113770730238757934877522083152842835788647145943433503387309107605150457155615725199474570370788401914476115147671410818176962691517683260058080782203901581448184928670582824031889977580079483881405278587618345768481026566822747871434290991240316518620358453918239711549692461093008833915616683912800313331356035183366611704218081186553320725112873789931713703481338199704671857690631771176242487722267454400541712257035963575553775940558056193009527906364257092910242073599127923950474688334709927288257403255308423851414856932310494059213421058616802455786626832369174082306442931668536096307903774585404935073865078366701080905562485364987038053779116173478800170052452488309664471670115157821672973484736468887058276662985851183543906455410538924691610880235996655009672926020129847377417365575243771945980437145006190038289568745407422972056906221807346810542945434628194384974518544594202204723676695471924320851117786399221733515521230831879648387281677058820446480911411831133507888857887298700067424611958638136107257849526076341983744412199568160666639036792889345428549828178457357233538883756123034166770041194411180566561474227404765590744590780206652372624876884996780763682156944491904615510759718251652496144177065316189739927126099470334874094164202609863410177660614710219861768524679211091185268874068973712717630531921305000035454366656757690215829900376359532039352442712734635852775409231307107975115553397471781572772927754181217565944125693492434811623270780728417450219683857424749887594686898281748188295318947536738547008671237151154837317163027172628414946328221881059709563790588111373635465992213980876844808495937789775314582415424761843456197157784792344065971932649544221668249009791089354969245985695755337743628248472192238554493500748979453416685666070757001981048309293240063115313217955794843724442025277807280217708471651190090449366527980998455046944202502484191252074891716396846392335113311826312330457600551038069941735257174223769071655202055738480829425489280966917022571342715505359367825056111305397157269671469534494075171642989682007673211033003384276958818356433158312340874359797348195063928862719999143541658828053698619874412149096235719119294644965752999322773092663800960708139725361001706160458896824975789718516058253891089279441970920367923581416227319748692851580540906952452631660182950240023163521818424548491059999493565275063060537764003634800195418094056531275030752029040581350365096387956235343631890791206999855412807303407545277045070525920473719995716083020339954578729711407744846999487972293242601308129113819447117345244453762128509389066294170923630154419570811481302813116770366110038701891680264488335932617136755652776396930877225128196487064487266696981332131264981365091653123179004211846837994710133044444108446181298327239651724565263701910947157976668151837687883270084289050277810742190816731986847405836794749276826810645530492687328318393950922838546600182473217745527329245175305288383414034004965342345864341984854835617993284748258550211393998415609862450602382463197523543440050460385378206700070566855991151841448698689071856416528578379155871591106762307503000046021449210378198243472082369907395291440685082404843919471981329985552017169350150739602287527698155900359213669546655308803279615010255046064116387205501314508176392919159997501190134217904212653387263938976966005037975078042543672318557824700816676290816746190998273879900426631433301550669612040898241659429897730835882709609836619436901031513548865727308077698628794217770523628478258498756572252827779539208978459396099888690334935383752103093671794796698792226258292211141198030120951523548143625905325277407466265837963806943509760587323120758603150478109539649418381092393550154557601842453083223360611532069820489867156163166810511360679872820720121823850044511200284513690858246336359905743011359066594981335597890920895869432305863307870299943050327522395649685945579303499418166889434462365651483981465883335222768424140994559187823986047524011881231665648734351857683677850641235516127839034667134183648310121311435196836686092325080896860345978172950323123104216555921036013634798666856131548083640117470814232283540323016771494507831606716422276824886356942906601900336183389962318903145895939456561762939004735571745310953988726790449835576299274682851285140819390532778782951913355905705204625100561765791795053059826271979803350927493403770816749629919695346047418923359598634306670913613347277794926144641691144740252618443611383320797126928518886616003032990735952479296204167005830584746925617460423667362259346838395341748313839568079270549987570174017320068079653481551841925338171284409459756671805819199965585470970198644783178650313126677651995936686673312510994003476657738228220723620501654751036738665788928939989549697729522158082241770610730411400241263615793137506578263928820629926289365164220891398719585658386558241881813431144970551581793270659543686885698709966426140748841146998512622785214722409340612097216906820060926971014013290419899215516852830120978465981666248587457330651898337004410864381926589400047884400889367443084961504637821704189687210108958154376760583026507815629671779803094197121038677856078896065442548388560033449534625009637669354669243843459388602774748134994791110589063165420875984580051137627188863774565784646310918301352471600867480054621049801637115532194017159547746405697645746726217874638986966858374901735304957067566265675674581576696242013404766257862029102656594910406417662137019662197208987320326328838968245661534164145329434903064079117172471467129613717395568452996981640840145771426943944522862617104312232426998213763882399586191262571578633593625346416313605505672386368177378207339222907615851574394456384551163775596678419721389252075128396830382897726323339417187503282249242877217796317788967054190994703361000102183278174072336576177086728919151866520627486583700439723030665462017428461052798979140291961157025742996472542531656432607618249608931126908291481367065984537626363550658660187777779279609020655993456002983788909757620306915724271679658320746859984147051054107351142238986182819632357770600766390908297286577439228749191248759180186223746287358817098891110765695144013375703618769678636427296097629064057219423399535795454475234688415128020670679860949426820757135962893276664613287923407119008736556645260859663379684487175158746077957067116810273998718183532999614531321349724762402577629573689355234925521617439800234545160294621203442892251580118443568172514615052566172424970764406320641496969000447224056285550166854274519721619145874966907061680200687601574983360406165289878708914152228855623265098833727133340944393355406666824375324737145983432706525175832986220384569290603300525964203828259754978547853440485479370848580600339407374625342494970849830609935532437445513643183961523807261691121466131958998302802595783060479381253982557931841809023951913017257364227110368175887336075753592592684780548392996392304725449370718244024171956994641219881843790502529446952429080994157914087654628821886967633092330806714900218552256982815626573396882205848855986574444181686267020880299825778809940698956356207981830194999127801629880743402742885403863484431476490272567438937181793444112946737002078649404774025344104327183091713562264054026130470489621897393513785881065104729254395449638311898133096083857945393839862925532380909830890517367566911086414707634612873272897334816017725832034195019882302461458258435992617017908046301694481498218108811715000281495311681558944556103952225109558662111529675961471294544087736012366934817965088484944964607417248125650306799033217800590997167280257364537252910414905494462662209174895613948245267822018663068947693535737468523397284533740312325532461531318443091497493353065859368945357145882730885258220819791269015893114520059618722839334372558357185336405783111310734249076343531087970470598811057234185476366138548444238427458023930932097279405508379816767535497243883403026851685769840813252031119199630538634721939101745869715950631346165315890458198732004231518403383848936710994302026782581598708260717773655443944486379461619644301707510265750693625966566853977748141683752542759632624226113298364577864830097577116278616862009318887237223385020447061306779196875123183807676543991271032964803941821250153894864922652622308900948098315589705626953058663161528958014295706546726832203579702049696558430644346954063260340407732748622114990915020223012536841251056373275379401642886435014972032293824960389836519346993987112625213140285829425956295180175278727837784647105033579786055064320471182548334964032936764218781370998251658237962216980965037035347925871942489985268373716373194018104386570664938769012346149463622506963729840612177692920657608950686383852255567657749803309696813527775877089968360200798177512698800897902508965195572521168961380952518738161596077366753444320425866606964949915152726346340535679043914496066654214026265118140758376918408619676230608989710685601690269561979965771820955671559860735244546633043385910882443679786098627106309363891012075171903652749473002761523879047534576513510716425635270117152678639005308632140565221865342015384715565871108582008827122313746642406651640696796321903164934077463809649217934419044370393742914309384388598379669412764850665618357072409960161290522013874173131133742606605094825858015459032681729997713520433522706609725584422240496332495935403815925343061275963002761240602322569896646877045452268575787612074247879558963668548510354059115272588323150017449798487845537018010812529818760224610503437821961767221186767840122097288240230619450384790266475957149515938578160511288512170976766298063065368913656897059319707304828091130111117085334615858413478843608437588981471113181997704533769918585755092090793868232857827502632578423830077604329365999276231637564435420456319067093744178687112240399038173162194761148214147992693643594084576992262955298543438348311164572718202805498551616567937272136502097529930614493216350915396325570901564131388245073420483627996217708345945229712903767761036366636220482396403601098159393037955051331842008828872778746787210193747927513767844142005422874632067789560371114266739376287157439375853125284462404599736167368394269408205837725387820937855121212474585391773271209721499936279975136068679015038009248131426819843670157424005080177601575365229211613113404400694937209337358620394907415365752250911187761244952591069159915126751816630783900658016566443234826958478810139464501752846835745541720111372126239312661350603908672580285979939297786149437140001800465148772803200420713491249675616407061905249180818988772510404801042209994312272827208474362966105389888076142869207052955784301756266506227007198243528557914400423881043982704504991153634258499540656945263621275630273347609065178743739097389877344572526218763565403544673688792348955895275406699318681374004153335895571549691818567543858353005818140022492202455094815428388125472336457782909071397222637042938878983356188455742214113093752726386078855871900976598275314657202102940742254808918238745249500121626983372165746733051934808148178777448844095915578060414028986080263840060202350507191206115112209421176592433226452436434279604554444155084075491846302145430058385943239114867163825847266119787895437139333096921472137708822227637451936368384671170033461009136613947586140383211343185230653373569530637934050810173667985533140825180689177653111432689827703119003157961080483458899237706390848614110219483481020923409189445128529133440604838074699581678061554509655368547464624808670700276370066361973701393457150746763230855098303400665277696352055613560827832926161761430175461382454776091903825903779302049873745010563100508387318917576927203949701088521579841735989869723910250864112364848596539639109408338753403492254677395348463791765912001107049488916790376673882105033989022048169912621077979056863137366075792881559623446516654081728732788600534399776156341093244700944721016344533139010680878043128129827706149817490984356641539505287136742985487857122906484741554134147930436043560741907952331008307290259009773199893768066932472050071256183848413190775172619910047840926075548147807036930714139038964298671180987154844574588514503684538071513253177106487610638875373788093168169786318377770588188187201569070411437862948133473574624076086641772273571163733664269229090411316602658339361417288853774479272332231848547605572656588821594950617372204856035552647315653678130763043444138637842915523313447718544978264947193475155748199815673380885039434069680090653543025784334031915003181734966996050601382364507217006286958359416388023556017179934974340182109749713066265569001064191711501473689883717761224520318608282710701482173862764925584042011855183020133753084602806180338091208093489528035328553849506838441205025675961377006915778763975435380657295720121634684182620105950928053148579068246118620859164814071692932360150577370542303451452511938219851194066750971379324337996631729471805104544499616661389214425345152619597448309333152396248909946262845702404139455547248767188806852853724311338519661826679083950207570425400958083215589750789458031598494641118526435133772078483147206372647689971491584284042014297967626581890542739259158443100014039949629851447121973032502007544684087984581253754772843064216836848228824311460118134851034163027444406985922454808279864170884699226802999129034701451566822494158734909509491560996647700266742552577155285928155690104850148576620145220163220822684640103884060105670795726066757333803762608153378885632565753976745057898134756004820705301913798849755650970698837349633725578262635782934510387874449821806548542502257622592498886954745616833870536628889262776001919694280150530495501898388553932487126947144365030704396822287583390812283984923267182567288592074829725710027568579969473475216398282499512628930539148038757939556591624268629924287567418205208058393526849756302708993824724717171888476918724760527764084434701542235953141973664466414433378295497329152519604444182779830006695923451235041186842534808492904246543007269680998570661410308044431349924294902879270646403378045451849058160877894568106631256498022770137887364368615756882794697638974531578293122857173603384492826462800628457614607082385547582078948381472389157749637479069470922126921431894774245945407009130109514369482732079601305774173265159078720614373577328774937019747163439352978653184818283785297148407135154427432606791275036586677108578121888619798061694684449901021501445171401570225858764634874498385399403854357730091392303649142169053647063570384184926777783523660126435144745949211075580894448429261679351837889277955268678148136636844983859570364532701812309710660863150383634084345952703136652489468133174819492715977299009060529396545749889946319000017011045140945693406591862412575815425294792202416890188725937835936319381943155956070165786951318893725327383074170569978338744618180214267315509424382034555912961744303937749911010111320504154195297314985402975789463268758386094363563691282828588468676779025963144195544378507685404603541046078664825780332732984010158117224236568135173602844041297618616991434035829091353651597681560220301972972697978716503874784255176272239259955181913245828142779872540993399499669426761687695153995370673506701157201355223223057909133316606186106455118551529573213637066437401064894707922985912637098307404571309547338056424737290191872248098729567253745850695932902510255044262458323765540431017275335306031064711828776514781992332996190548305882352455166289028365513254734556291855370084069863674723740357701143386098392100809897839114224758108103527897686868860391273154669415409080201856684938515734709577555293399077034597075636455939223640393673756625861191091681372175455365137170404503330535161911918776785765890482974495638272772953188817903651407341743149451954821209974876947605149051206819889308339765030767981753131391068831398142166818104955111838363148478231435202528358074323205957879123819258495686086440215710793110891450191668889009049969257333935981490303366833564264910226131371259446473893923470583278915768172531079941613379774069026212842748964334349213007005019151904121876645441062160664862345568897075121827480196690783973534072516129648606889174732493606139253664350952811676509055789285973689727454170536628443656583570989364352640384143739238795972652367150071592574441975223900719453543523846526480074297942695452592952950586852677506772919457960235095525032358064156895801500184967901398223851880667537073742394490862827114242938661446470541984583920661045661221387803407924386239430556071197499801332205455681657501567886006929198676776835189515988603979131144984503377068146122816825712137743500192388698271549764748321344454037677916849284017284269740746243528326899758801440174310203051562080631322952138545187245931739629748766240429127440229017178602197527616779909823139825444308662449677945147452434257573407644772064674474839976297059749015936838772532463183457911788017110839412501347311590614935329682725341538759234569124713168134249292706408193195725270862222487336446037595873809847486134176976851875773149096960070592445165285618662332287493488412625914550606229995164728518103428800035261600679643925271408799133051596344182165070203538771249560240479357364307156778718087311680935786823082505831445029170638051957383405136216306850992471283673804663381247871889015747202847219297635518385873868089548405073657456734627426049822817045716021699443596739729508133904417426945875367055145863766279478743434501020197798201630089824679597196080966758018773673614116443338430362946741870802979560885767034357903727543252651183185353239330739397192426448206853545172164901245957120055599228792832796493241203038337592337603999655905825187506177803555736237142527925714431197029870201857163508640988374127013440750862966839313340515855214425417031284746409599109504753368391817198183236085149577892483659296070482910204300085566554844135059391860536415223300809062123034487392625691312243431716452297689542483748368936435240656865661217360546868882355601638893914109629139351491353419994676532689952832222227460118457149262908045106223917532932825455042830986111786160299302583753941420364185858778012859479866065485788460680496550918665869513967579523838619840423462800932244092564946630519715387560903766109777573855069541616738573781873786968116589294900730086278215607284549260297511008552716202611668853672261456790821968531934414319383944430529129671619607246953688080647157991050676264377721549108311636394056943357247679624950179419708602540374133509274718658761455318915303421752930116528151431301871196984024673671372371370543045154741661698072371336100102550846995979161108119470780114510010854090444129373816732908498952937503213999705870596798591258844570195038284198249988655568540582699133691928441346961184757535928869320769948022790617596131887969843963776472046784899316938075047157320814734449578916231564081044688260370775266673786222414655188091155727373332559080180333259414342084315215148895895362750253200669695551613450556039186499143388037829186776295023888242376655138871860195551940034534837048370570613953999187615210805492692175883503594554196134731919478219808020208486710929505582598492781120983676364103867853090988715862673622844802223547796347124908861166226581496574673649120137149972217362404761706062511550936263818615469747072942093795249439714529151287539819831238654271587866801906682560338402332184763921800414825789449685992987904437676227477470923765292053806289683267262408366027926236152870785584696369617779806186524220790191636062045325456491805334140815619199950105735695926090036586887857055190144187651164636290595736900654413325051324738748693384551119565694591994416721096249090854490822676710298448251354975299889392894982956228756532418851146724687411745146667340222252861574136463192511322417314356867114846300568193194969670387019868926957971090374094520379441036305451591563407849046555038939298515916781667078152777408512193741419458846816932715129650241655265309698579247345350731427430592595999848607461689337477127935035990433873832541467139384285707101799973417088633768489121721740029292881998920116179066754390702367078796880179022856949915580880683968691981988182907190009146289398539494867883385263342623151892538060895958852331208287784640079736288448698217303365950745068798275931876902334519714445796015561060516655446469176475701596827042292300231955964259516428226240108086913455705046043648012367873427172860666692795387294152475421608035655452320350921508944598887707290844657205828548476216215384212965451690843808708326057961101841266599880269004490459737057403262994748386263108959323691324310812279495535849898480228872336482285575968618526538082736166843204263478258005679751262626070021655702194414165883218302244991285279833239494978947363053664117604118055303071066184989650234506224370890831761136516947614662046062784794840705273889868122363590854735636345552426149905252722110438662534102688154167808812821390726625673530479969993696817364293845363395014634365075420811667014807469679593620786951981417175353525216100237868664633891571673148093099646044672424917361777488861907451916132435574204529803842304144338569510337895608462360772317512148415532022784574071802340950830081409309916027665915944831110991675614213560657177141209327498764529214216992522584530827144225098055263176327528882400964765636448222399524640736400567827199660110729570024827231325765792635309164772309485797989321035388946361322233305266583361840715868273435593474309652794801083535559446872752787226411541052666549422726619097477100729827553441429590941162379002008123248597130715387688153791222492828624225287847954551404653307624893885442762681137489680100860200486133125284969279447337596008114976762197859946891506681128281209274901251413527066764599152159423891748694261364177275397531147589634875578422267995583296305374108032882056339059185617309003166074230211801248401324932826692285024262535937427908123727565924741574478409191047594118576340979562268972163877985846871859989175113985619239931347273167253984749346489332868399004761432703988043786227399384779723136543204780076298030608682057067122441794350148861646045578206995466262392346809250769869007796528722847705247191235878531708477231912589989589517122326938121161903282477237299573476429591878258458442321385426873711271470675420716387663426940977404468158999843674498083695414555884373146200920996401686349178271074233934466298999680376341624634643181690244493427277095919725103385211366270771776638212260300381952226575479248218179013378337339278270105183519025452902783487675932046168084873938423343550622822987013439754642569443462418907149700740552038155661634748623443549426784813553558815657044655784279064881239987955236840833512458780598965827691533732567374665126391312395892388503822954612010876229586080460408006102514548149206384055220572304952146274518861991474964822436430266148248101293543952592066389672206718814796841449442180549265054693722286169621212132820173849708739889422611140234972310036085111791322469911428667506673026105243184361653640960809855368978079547184909554556417651336860439337713294824767443143191014314848720563480020511320167051200536118668678070238561290604282120751522855095395990513050189514268496435195361043177690074582423225746928140606121162368492571046774137622244537712299206009251985568402153651934333083956728703239981873018634549355615695138209031759284966850679413100687177773467455647528115479828675743374927367464583205239745153624143110347663215376969862345729300667455002173942362017270221843124499865723455344687821765962729231620434222082591398295319117229268393545435014502942860226467589337414851482758412171198838128984095605682470312786230555309165586321472473399186038160008922637917839458195892502748439857520049916165586886669191941695936845095122994796918207132302089738919573919381104416840037654401227997159973457525473713691741533464795854540645955964729136214257341337080568406269125153488458672756168693322794600064999691402001530681567079753673819721828499667823406635367469533257088631763602080987652185275090329240229652097287435527719540407050284953211557546179848981724965995462685797452234642313479477165971576465500843854728276647775842534316829265853230664145277128113608675109142553298264234249869127178342277119192555697266952969297900325984086746239205943217141822749405337070614283213013025369202363354985296293335828429475653213071555350232391103722977099969391278960734041451939727494940912269129981146613481847770984230210367774270588132893749645130827143913619845053161789279160321328767964444995261152323914380440922109304254349974547449601251712032283427793654693732351610015788493974620129368749147205303572235825820111066860134351832757916034090914780877206234993876659249724849596630276687684328046015958429784698723118512163164378953612617209710447382817143589757255859135989330400529492731506784259883958507379899418613626191582220628457590244302126136281648173481392964799573322257886782506953629896464807871651875674480275443438289909944636978668733279576693610596822108670120109793597811014808741967225023864342536554989254740030667341355930522145271120350282824183089023479425391769168898755242573467829878824558785013947511261046982101203800547303577202303227209651957128926483744751436010275492292059865987598416618661907657424545715259523801509667606232477888565714032229524946098159342653716611347014246685866060917537715504004489297079083516962021384885819074305332850546664691573248054128493720005230323197045831148559386484053892771339483921804829141191158011762587403576467306004293249317852751693040199607440676524418105110683866029897148392558522320987149329892586075036059382770722585241657455163797324935144867583054374997563389277311217371021701142520156198296308622924263213567337509880574471822657936801630633324126984545838348224698048095489617045209863691724775355868656723431502708310346313787902566739710312691325775168378960247075586643159122050966177801141066674427030402890310253615794367032307148694949734162948966363193467438709166468136257254955196753371069957068314919439311019656146339194578104958859930078011733993314105214793591960482194874799699517329434103310197223128286396497925691720338866198787182996741975474349750219487306168970872172112056625423777019083066884878576417630854170577196985522918280069634652867107115886633127385670156846125633592109635312812276199924364311693584011181696714574164267666624808064067317968928285180413615410555855579005899377509893068417216143543421834259986762079349472461913823619564088284790874748537769299561589088701635490368017246409042733694384761862179866666858365615701678429805640536028358651395842464791902344513281358569229278207704961500996712967796079450061712094689766461319983771153830578410454602381280114588063270119141936003669443798106444715208173505451822055934916839595368393720706783785604368551976609929963889794531690986974131634505768643886504357408350579058379798266476063731778340922217398495663165870694473459818004354122202563757991650904416354943871188925140488181103503473241469622312759430843016765640434586805251679193783749834702827405250616382800396749194048528493102247446829023303640739149653208356780072147847068462307492400744687739637866874152330133709691396775445223842700472834562711035127063649751297778235468117976670274200088328536891963020118515205578562555329379491795487516511182112968245161092550752543164643187194800804645697086766252236586233690492522002738950720915595346649645499806692436970585786013187675661492716416830515641311059560669800685599602814882988062907329333427790605368421093094845011132732173665918541331985114091196499550863192253974993489855482648831445210590685427092977672446345066821341389835476809629593127591954155683962105026054535437356398570070462006353646356509463634500128293742279294772376622056140630741047146593761093139346179381355500161201859104177958650300669173568298776055701928667812150473856300545943787985480393677945548949580150571543333923174304473137078130600612038118884802550317576732651955392953049607727709531875413210237262672820552849604353165800351097590703940731979590124908610272439549026538032950295330852104498625534964631565302309565235194314553222381030723755881611617649914920315265405043786231911391308079349440943395792386752236201220192042953926864244837559715298803552075420575950887308128109417091835570954817693902134213614379012371524622728157737901323601336468106508859753552160514734772673634467324372635780171139701394990988137058380394739940013934062322718465369734615296452291233875768157839923668036627478348898372347701310940885333641113018837415285017714581673340515981655546212445387463974796575008579749557265153267807532473986892668487783374491131807994446563652971617555219159450163469436364482063329904274335499962864517582871706587853351920481843520808620213139141672618376233441817480333641497180212575056476244929199346726917450970170381355636163692146662720595572426133953667986526513626246963656133197606387385703873520493130042350729403467851024394407611443385442665940644297286246301015334972813197608683547695629583896934383037945290105367277934005211287524923013912623599911303329623652026402029264076828334430615799451375665662382203748681541077044748719217899736370809551791281343776465146501838219020289709157334989555267817728759126007624910645952115199286236912281590853464356323223672502844116592544541051010921262919758092725039793268935352066778281295383259184586723709265391486756242164977190134970482935357702649163811282339382484615389535771045642763023701224936602027922709417680164950605016755272360649720989342032736516567029005403106829768828157241617642621903106388915691249562464471617393049549480095008463260705923631547619257073660976820661111189566644416075700370474742013377169846976048219123901204799791843167380430236972716881868501944021322796796152359065501529534382112360145468867448281788868540674718974700375293593365246768039313267317034367933437650789835629595286389174662579744981270981575385169232238958777057792347351196822981374031144086798410443379964821400644709515519837564355676231862959760844271422870919482797711063835446355741735462444712029010294086880802382050555371233068341205586443499162328879773225219595059975227854679198253570765727998778378265296570114975972186780774142736860627029601354454342201709014398035843783702530371830950176419089069519870595651684484234727309075119953057693422136456271961516643065145263594090560398786766437306338822637172165764565186164381076690936326143188155181755501712975556925774761932729533350856774260183838671164256058793130442381234083747429393551094359462948541899971807571459373972743443447510677561874387914836381709604374998437550234884464582998389534988885667079276793229265520070128936596009308523320886290430819742360367210768013920573879200842013067669480556238799679608800696444687856052894443287756001293668626414892576320985763720741202824418248565969313998964181586291744427562906492068241529130225724605685020174664615734986462666826287505125129652039565955828304173477386976196564833344321979360930340224675801823008257567557507521393018037197074491545542242896594530096830298009964732341523441332359505909011574919246600324132112799591041062585018710741290977823644352373190593042987422097561367628190930591850692102632450506628034056730510580971218460270323940226665846600096760722260074722616156422290217516322811986794254925913087811132300706606999905241204664845833556079152320717074180268681467927180167259587632446645548823199348071235948800760196208457623154336912208569857182597338285534006626481421528448089535273107671989093914275514657990505007776943101263565186193266163656444027324440721080938176782531388994177229763999720005982273769669248668075956058896298487428720296991152109311388413285806352231221498590389674575135503052450445624101591839799802686778056627497961682864450779945748498214081545807886783991612758729785778994795288575635649372311052639485526442521373868963023801500565721858555015436421498908504188551565496064623880245185971306894748327066069992777080601269100511989912636717847173271690803708704578401335009793328851671167484511959638010780891316545834876883637180726526245383908093897045271414550006796084797492065444251806004152220360996056192783545117564669010151224785000038198745301720358186491941529024911963440355978800418274401369981932419158187412118017447180371260306736011771166688100117219167825802953137255158933682086026482224192734164838348819056058898461764259609144823492915252456999494751546993294673391509301803313429985986156952579451350336462049931512528039872629905465094320784445972408964324957069987889555075197799072169349069136497526058323601943264373592820895905240250375088266124691644121499940413949632601825810146849232099956314242557135372408186776829479829216175835495772653943087905985845834619061735822709964297860363725031592599783302048534451406004059374512516642175148522812302355429898512697034684225398442116376091534767436892657817659458579906158613533409355178018025223588424482430909405680111585522303796877526301240984440607885621226542266860399499742141298923890730727346957480076884351800746893863604788662738855003954610952928072044997465025168045787053855164784989605476454546141442532384955885484534482544116957569223341981139835898974130206101498315693590319411066665621898466568653202750426563390683415467660798064744735400165798081643864233922334791013198827600241768852048548434223675590298327621277191985734163926296682498067845411743050855362468905181314272389209333550363029758292931352629104362548634392728471133960236412940487155790453898424111957503575621058584227501314136215439477339556431501186434836526177724986473261493260113790135134296733119655957000889504586875549282249887232686153765329348195047330758565934084165859049452331774191302139904993292987271685964676742621543769741682743244072015549549582264810172784245877432724048541641034991208820863032698690714241785313088021669440950236066812027406045452562786859596043895744450989459971270444776541281804817264707466517500795382647967783808088353757312517931771493365792465034607935460068502135600539387555327328713085530880781803188374315834079230303509850214256110037692248242167456694440570475843985479925987795751895998469990292917867769493446773916824242570857133782025807141882173034721933625737126456279923499607387934254699617250893409800341010508120173350170842287494679809185021636672501093121730149906035664689930607294935391345136104031002530141414322905996187941154738227279171962138243964742424776691351656271401631553827967244408926607295474394042544260611330483474686922654906867512800709372244400064593717623600984236652513279358989863434734899337177615654225245438990762538787478400107533270657823482552584076611333123223589198246365871345868543384960822963441480578802891424371148497229921634305238071403558640014033937351343529290731410947444016622298996294425596676478160678660091185122401602057129358132390890266469344009302116713491681255891894126317475273214849061187161872283353134423425765302510240962307424203617846885413696035667950680462341994776516475428570752848143143273494410657827738146824601789686497343158617772209985610552263614428929900861397010409696229628261707392847276777559671328479886071116018548683325497094574215185248096660014887430918224195680216630508488044766198909916628990915084659842497544757962483277446294248520392546553687515465140776341820573504159791687229528787148752218594596478788311250023879643963597721374475003909201487781221372570769681448725459414063392746819114583226426886599312827417516702068517082290743269064114209521563635017660100039638873274231949488113105846918974285742750963710959191362027265519832365712943936992973996732428306435688717303155079579003954539989443596036244458477967457605131872643847311479203416185443807825341633362477449091296626427130794765842827707206008297246207366947401462419928028414455952464799018648896053414435913385021503177780898914282816494414116873534853468994908220028989999490882462103522516020887408520414818885533809350454519164752476650372282775156436833211899008585660994304474860620134737008281593076479796085024632208680203027120292432325490957339386184519486247353118467191018766910980943002426064768479231261728169139619357537261934424388433812300986442820455833756886279291743663141887347469118547127614667257474924335854775966869913501577937883806625919589678480706079590306812121877311939999760602605416279009267731420667855937705112069579548227911594413560142260759137454740207277806780941123485754493059170952982274159485304214884916177724999416515978733311655349239217489412927994782637626531950736517077404424101424016036797833554179441621507135556591146074550724312492801829217923323251178585805559327028661134049502403416517604145715907210948194581054331042464965303713683771634248201524733833801645036376190633457619050931362728897150498998662187646257963997870670430989191368210527249489506630203200211344210528171677228620807934752420146326145431924267593251089396798887989854695779431286480369785050531384265504871839798699719532138586401977532072076236584539682151339545694200064532610805480660301937710169647663088292949398515712653332155293566264802609293660961796892609942978925745706350981726671449984786842027696639219176051733296494464734559984815915323403001201950838663804173277665288684452404261947100405137206449548874959129452576366912520130265446890876853685659560804420628276585726932023202711608466943037275583608351366813292819310326100169706691184034549723332822085834286696811197910294978969915960059380392277082694476408000768824324934063758737333373775014030832872106586922988949107633579270688071816385809563746058044478783664636229243972180408379581572397281402740201165947281451867082675632572490842677357965044649036829863023302855616851962187768301377964117155035793464136646682761078354186839379795177988813069785661165035563463987665313625655396233047726958141614565872286800732179791184681062871056562313619366267943473919060861278033318918539064608347791346589047463938221298328882254081513207747598739273488524408727528849655137458908938163010335759270801772786647546990020981597192268397378879392087456757468431859697319346519355309203183340441020623410401995712742522152017294254610714832801637724244119349435871489143321825188494532508683693049755362404876926877406445690467164694743285609018359270428553839246430648272498961021767363181769146074966741897793879470064701185917596450896387757229292969439750132152452862750291992740572682262907916699511504599922373049314191311985792171708871392470351865281031553440810920725029882811647465164434359046169565010494499388372721149841647411035810203728998494713158169225695560339631743630146015831189182707988705155570387443153430502256875127721174915786955892579963418198195079403764166748467030494009375877960764461362397815116003862705367053799428904687302532319238454287766523041492429785711930200910879463680980827141034313795043020051793521729683419052137478085860226688180328317664981313229331656518981181657651972552171404435984539986536660256469087092689504308755232538778145235964361033617843601951043944393843744160174908093268161479392428033963452750733686077299158025169189751905555852255267746982662993741409299658565860031293145902270286166302806689820069951588509298678741919159692892361632536183429196387833863629350027981359933559429496012014575280787612675741473376156412625424818541745682655826072866135830080169156964125140369352032624061646888221335125612927196031911967416682376864563128608357436779956579557502564299616882225527556280878198938649461984590598217574866445286805278641248430844298438010311566858148603877922140116069176627012904538140541689023082276351887999438507793258980979192395308884295201742491343162115238222638471326439069707110202463378224440734355157178211675666163136117599969132493953165394636343669732910505516349218274744533991016808993833783760282279318180701574116758615243259712821282083319003299631896509850060805995080966272287594889319342648239351718257565579053520800758685589011100019543006811079562129038054257789040982637140857518734080415842668950887591861789726355848851732773871204556536790320173801786137496505210150017104017267938926470298717823757258486967641586682735723596951183035455643371674415655990288522022719654451284371740156357119632022057290664397839888346141540828022567322529120596806948129313363432828996370625884164359508903708848638016056924374927733870284534179572837355606237542152000894216897443267522801705824356719695832263903062516869981391401931444173566033000615459005227477995022013816332285389352008488745268968952255869196081262993751893684665654175803062886194112754957946046817494375152205774698239953766618674772644924122566196828844538872447163813036615498664497330547830614726940282542993842658186956493642428964412062392744771997559570590593661490900747866514273382832527662332632294099421412875459192105528255372890262408354449987480443486905513606900982337270015577979370056731077016040062222772157642422944514957071347392825652232777801030194440889525284745978149124991936050797700525574314315732514040833679575958524021627549178573683083732601224153725133745895621279925433603201942740067857245534734896601980355639558271107653274496667425397628210419181161771048862672889577482413546636005108496299482822778003658109737950866664501027727397250360301242543196682882988405551109234447835661865516808299191031682629482978650664585298792452196223627302370656514563529311091726611355048560752026219508777598425203368478256277738058691908023851213583393671533590771890093360567414090865418522217273807554009627687391686248334127622379110424654012457911329378287639714961152118647304558987481653723472693315359264134493610359971778944226554609516559574113347042565981196690500585934321556754000275295233898156231170693713634192327815124578808938523035191833104607286752395604934426929940813792293986477007507711401046662585665478865761992441843118235120301811624947816708534336091497009113983697369898056072804298837639666592540186019561523424001554256273789353202622789353930454816424600620534253036990655460555750182080951437640045301491782640661362888704312946611861370895797828083614632193347935966848042687123971367280763416074370300855477805841156361350123389219438862186821551090440227505195512328314214731104025709160826101623952983801664799207814042615898051141755085960091345059890245744369462002524357289995480191733881006801451527956004706885640616543260647016578858344910190285199661066013888821596594029247663816595696868407194738523434287644577685058542170976298981047456196729612782225124587329347253369365426079725073383172609434136351440318032634132291823332666531794569983964027521655488064238282285994026229831816398470162761543433496706831185503409801938006053604599562787653669774975685251991001949834832141772053529848992005799125141984654894556439705808310816011081586060663758640295691676885728813348453099981752049719833552485036873406301508165682105465045548739395266727435153810860550790619062666636072391173825917933202354477169030416089351845130802111553731115373755229321764265962976294829220556658068721868612721889349066174677912145923658518019892369971757708014390418501119499898245157655212823623118006744236098366245792721658094427747131587335551721754341182272303558858984140006574760992720191527920686673940367616154924182055847208578829444196809642167407247451155185755800029520668662112703466665727810674916137567961545213295036342031249285091892800280551916118086480545061467325330178649455589437180363578821319337024037332574603369413170274151358766159247871242235114727695032312182388686313922971777948134563908185703625702834912889389300148365151376402591307513873244959518890560279776190003528064885746274303844673470845689395000523750850773209925103471214242914644347771441972011389041660422529029593907686262366834305612331602080173128911974428718436702296782988674006787910730361088654252288830575032168849605275113788737855037018249937455165072449819090716471753231937141499813885149615727157268322385967600886809574972641359094850166621869298481495772521858029693166624762416062671817973452284567594925036408761880798484274238753796108074126509635320975633942191316689331956686914708483350408316598751872407189526565444801867736356963843055149138368089474033463622553460099472506140376229222823638581979344481799616847794721823333115059732770871821624175106304121490850275430733629514033782183017850695057576553315059919485680551592524768642169337454830349753472897475337074775000245525326545547769076906816554703947406973685238207441499272021393050285847084951281614294248787088074219548126750732273771940230180822211671084090558291129009059963953812184674197660513281713289342319100154203572981757380159102281766728095205757611565428826266243621564636628048985620016643756765357757033238144175068964927693872819976681723561804977723161843241083307370682611926850067489828451416124706626615523383378009769787343413373125991954446873851995202258495517968297852715369068431280394924939929840744600926756433050390900286835082331991315421286686026435857210151755668674239891174429430035531641343025892051219544597934374773825553429616261083502700206486786444997208945514942931750492611771590970844044691418381395250001265834393686479553172665541876551818451871128726931954948024682845565797723591662904218112806445432149378740410582273511923735789091018837475297131907454153531846708710230312557953386569134026122414243921338954904574006632237498326783655054922606688197492504587068019562673671774478411726212867806257764575701689385858119498659409783762676420555188613581516313721492217644776365221444838183701757073554283305685766863491747024216007287507392386700617148566060844945512789413504644512032716442518298471625657850890356514784163061783627847043264290448172475485234331303444883407069088607779145203414679154047024822546374767825333332600872053005806178842803976896267727910635923423964289257388657191588946940782665045470578826648143071815412665240696593363669695926350225031454601154712212521049783017454143947248334561831441467629650901964803123549297102748955181675399763196592227338784256363757338980547208957903360030137677133404514204195166424313197331968963786668774289783619130084426978300146509628375932549488690284961264834312445910397045687879034573861486555851639859380105360422318449240207987985220513292997906546895477774231351016971798944199374740810501520016351198648068800071761844730363093040145971403156475074739097339918162087238414762492295208363837609264700051299770683117655417722453424291293276693686287686206231654850216070467651924065023045031578582611316575208899880073370627293002001705840994104106448409228386622530220806129571580379418566818879838681475129565325327534350868551411678090287116955327148306930363878989269834638879309951235326114813107727661206461129395854225213268435980885676911305860147085785887374191764810586586068887452667204898054558404406207648810429483077746155483004522829893317680629462412063097487851080514910995243985597696719957435114301959113925422927390742587588053873764787227699756440770494645886822380529262629846233893000612277720108198774167309406330549583585203993118070035208286410312355440741751459424016852448507834708725299835617850679066620482204439154746406199612289549166261576951413915781318892232868904403063898501806602497083327257330422861381261298396038512127189358221059243330235128661425705991870551945013099542251073342356369637646428639700368523429106705702340643065843404133246585803178591084071958653983005283124808871868347849299077547260352576854655227079731760834781648712529636591198638806311588762227288589157785784150424264503365233280230379907590383882578158007175769174076637108360261437706368914432880978157267788246602113317617468153037758361002600267427977766282700380565098371761079900661663181145259444128418505148328072902528838128050295555810266726810921088863232837196612587842779818775570898712721845033921822319391351775180188685952734490858351242783830085962701787261254068025244208852018633848148048843418655721502405191215497937565929442628076178478414307019517963275337826649611370663392491714042030210004731897084874706880833775483990133603494292131922824593750988977306478193827969271884978941304052354118353638145530276828497263809166098661691569724076410393850495207662173902375587973626887828489351349440967951924165430644727323026243762229231150667188371219085481640675921806335198237606978359682790660720545682113756674628226850092629053152478132007035868898357968045539061618601214616717579925055978602124589765845287231840652347478551139765786500124897950797263650977144995622576378167397060177781873148779901113090965802276390296694534559717566230328906377701899467741904099543621773010411101930323324095718254634383487188285166842447640158933995851125413019133238624449449095664458662384396917981595913363102261414153227599447378800114241997350128685973337262481848734300267590172520307924504225494919212926554513920670317829320359304259448769402412688542750975281600279859294025340188096910576152032085797810894677134753339534846048612265794417874941651131179234164750105960846704930124908741778456599160248493219548255375591949929857056490024403201210989973948998115013300271455859675218333510124140129326150908497912710807675787873738814414451028870347846514232309076302221014134246813541955386127931789015041957760869341077689545009228002452670849400477077421501337006485120300488945864444018316012441894569565998353452620724399770387079758179969709288818468577391675600655061561933578434897846197597223230611475231472221656310716534165292772819583197931221636701407193232265877797049016258614867158923969799071157662907197782742539627706734980052501833912040325272937449151456788357199471461723453520751834845687606281859755642119048513102163826217178919413266574633722069646159066880395692846790258902242619336419300187927033589313796532936504625748683815996993055973121200866548814761519660484155693946237025241430020822144638866754803799325495789176839060485398936869059092591266882128895679176215198629425906237314169081591252806065805753801882226870910880893768644550432064478300081352894356772241478236725435123150698637116100732214439949763323059188462432824905406926981888546490608465347382708773473833801648144081513188733869722872491025051324672050117963440916841012084263842881218302703521907510722921245578795419514502077934221045460020469992873860257703305567868899175940842876943667929398847977786597380326146784999441724002444982276578644653150662263941672982007057910284446346594872523056408687170867919763553613989427856475465954421405733359292158962667972440360784419125067986761901292399021235485327673578507118429221429778800629843340629204076187623932110280199408980383430320247688426997347079112009295502381532811228254875419244834281528826153674986497825185640575538969466823493456761807032453200434649780191327358355667951412839138524372252188703370497828788442174666481334497807009882771510487162140413618697254254395610208531450228103381969004394535196858059772304224032578134804111459922939645529892466714752869689473126583476176138454971899360613035251818499063080971197251447321685975068667613686694817378215566726807526545510892633268721254610066723096511303623780215623284546271017707125049862822769002334328809259290910124551523532524679344809621142045041008961933686289579754917300583031421286633539082538527825067773453907522599546703639169922635018852764197138213358901839477713439408278174829700563481586256955261899996034183278456294898289025486367315223408519645070978580737176527590081564906632684447643961087534108366030901430842281225886554498747324665205835407414884078093616721631471333894332243758491393303769899654518190186793516690839443073080663994463254973788265246777131505134465106680739730883353046808996161302806573103970826779348459791833837879076105120807741132665793318095596458332586717871552290770579579131206260960996870791049857399250107156793770170874366147478343461185235752304109099274748270784362015553108142426468428069675588012422757094003482531694830262666805877329693371133416015807990650933074247408377017205342036514186643968124134575525154188213940672420794859151764554525620400795390413839405177785415544763989444918597356414377890102202252121258117749474487059793784093553832834082420837716362329739771022539518192842413769649529037847466165365979700272972612187521012405178632818838430163993703312635427755005245431231419166334941077037300761230660013128789866562428601831850416317055872975857074943693860641473558833896269633962172672088279325538352118978098243920786843014716095114840340525832622650041831091798315316128619934976952135104438854598216197474509346961763124408889879942196605029178064832081169623814283720412340528147959510645086674620539082466590982734862453025772667833991372952651160593686256697063454281146349126465223275983874807829634297441921865977009505569878960632777789266607010688177107403286820040957356187350560524288492206013565659116549480892109092657801947444317842031573188452602967221286169631918206714956415502404115469651025692680971715628308441748718323734815218069013296961714522755503601139354440887444298033489459322651421791698115978316864965339974357933594547521728227024594670533755741596035712188374171401837201930759359203283253372229943601821938790393488172973464523034363993204463280277775270122197582057736485723188687641637338595751565757240183665956960938976668197453316567952574005407411169799333158362022345516014352545057235057713040790126452494490605890495146724953039864696833233489055329783243447693123894846274574234709622703805107757733410473786858920555771020918161241530233545626260338056663228561207613791790017074233683595191484238553627727019469770051122346271554645069572745044473539384583958868302678436315382748609294781688378231530589107860280307412149685865088747748358209599494620767946017566328345764829115415763822681963258117151840227359639699362134173411442687374206781498339243471894856081263809793005179402078481667545876618273209686227513757780854013282554989820176807656996036233671077674340477413992114084669297576404155882243712781369625138971163619407672899984551764338633226168909072045883990585529286251059959178501781560953964622887216399880032783668627225073105451707799168663446333294284238640610969662994593562996817528095455359422803715815548491807873582686225697630846986651894630929776203555495706470951432052431651333024258854661482881821797316981479492714472623729718820091463164447599142849986419186125947770625561057484970857678289206131461843591529324868382897958321314769370743695675880742084073210837731005923843563645193668149698804069446382895361005647908402716153766079892949758674609059446092433693286714164845573461097470255099380376943098992732079251090149933215732160987184577047363338222034207209218558393965297870852556176700724512423097904472524126457943595279711789458647847298802115694848221974838099749160418108991411961247724287170733809770154752809429629197063146763213701212641887785927620427471836124679373520193259513464268893438050811119377351281875118229542460180476408274242493902041796514980978818861940497906107788144647283855098175716218691088383141446815090086685594672802587622765545465770357056392821835851364539423716646533280423139892233970746808398628427107458291302555361900713431338845899276250373486339604273168975983887873246530138050750877783354219244001702082298428842122886581082737301000180656958265591754603635136645552040903515358584835101172319712545478036584335622270822817272819792979611331215606263527879822877757277923036710774983461411718534656322103163003796502837319391072550609793083765986400125384746025512346721966173954247492571043908101604221899022380604263802504273500107120899363980823298625563562658166632148511643685981900583094770602212308242743374371303456622076866199995375787150721991729059174382233868038133277674597930887005313772386990839497069670352493939517152568152394470329819382794787755778230211923576881941979609002402291919794824756789989012213963349517448350138825969281871195479636811956999742459876155749608347054440042156138620625632026698890745918689006433165928209880728823515436091444715689064059520476064495703623447482567218295069933014095674525575259825467874671612660793935664705655456497274069019963579358204464703403226880199846827489530985635051359098011087468073994055863806058998263484878091151083176648451628534658106620145848328128212397660754670086716072384061193855163704353747671217255392009836749875255144164790367254442586885601380826910367134209739819640449344223823498774622290235080322807669560492970103428080948554235603146730537644708847611229078492408919361061294367676953998561661108623093381918226965866129520789323250703961746087829719650060498529041224635010970733970683828808518791758622865304161211105086372437939617495590177114051797501190973867968834909892584291074597703138947460887316069220263004740092366464000598411332154295910472032738477274677491021436812049078839279000423703897498108094558593928136504751048462579399495859226539362792841674992780900579345003166112040395474061626125188414320242626439379181309524559089134170916081867482298057850576686293127658501281578751066980863322998979957900189074168382778272022993329930794143241405070369341998896195899426537716188300128756519431824025576723469660046211710405885272567301039924882922429213920706141789989393149612047523716611322030986690009424474723501379291625305623827709518720010628866689124179591797349207541760496457973463991499959987888111042779681897871314787461707169239786628284386811785882093159717745502031607987594190380365367437374058566229083986413530446450256445224821183464911210753513980364230094514882236289244629320916770570095687389704111550108760041792950110681367878359338731559505547503625067225190505400248810821839457406480082065617115877665895667085694367121104875161209433215222078347927922271727267876447984755594394710274927195893679768149981729264076021444550019529302632284566774539106594090093006369124158754720102778380177156701708330489853574765503537289109423583952022801855166531625520081601330089973010617477241240552272814104234906661462613335386443763993682327789012260432875461446069183668783336895900486473833125130359944482896072667686170420903529592512033682423767115302688682807723777967138442794003808259480201855166257266623840306876296198346810728299193616977753118711995507703670586381195746845976283580215257025218967709518137978169714288692226993447099223779449906586921231085386002136708787510258416399965363569774934470369324370623900117318758517490573360788886401953718007526234113718834473646456626265279414888676301128945207942271634826822723587743300547834937145850055395955444383084821456255624613282172588107023896929851076113117470315965779413201622535945869509300344858537595579833729692453147676226912649884952629553822036163798096462951261764571429624485116253987874504381792360075746577245901414429628652608526380954650183608016160616234042226413349041314203191492295427570287988486859109256776969737194730812939787414998197810103786305457734443502467084218027104148498532294216548835100024018562954833200467861925974477132425853565872645147287237883481900944534672872018101065193762491177987636880011112391465255492767398511677828779154453501022541310014169275859679723801772703280923060982836836639244644969828521850802551613020928264591411918190073445219113152766302341267170317655592466280329210987981289082890171975031589802228028685906043266212324899156692640544235228869078051185112241418630093322933409230881895137673422547770073005646306688017721260657477815907670280510071692128790493799874218310377008690534425492257173836265506611845503127365155680808089265740617763955705591707150330925368273940709693410097997662557513248865539652919367070219818859868630266821586983235986328747159555761804243862694657507498645960283776177944421371825407687821568734914312687337439457749128345613039388772046896724683412825451778096668090124590294941360961017492179452512260914799202621478654094303800213659506702620689773381458729281945108030518721377797601093434695607456953033177672866129324146995382154054229019327954446421200917818859424529955913837964172209453824570533144267298357801355613233740857330855417756082642294313177139577773125606188339304523827337589085276706199265919368921573762736991382753059442067142525236580064978169986724957603738827851033144167935533086315825296758587483021497704391561559154138333344346924567376438152308716357822106041060448199947149394996013973850170920959614980538057128232367843346396639115205667194815271405400821546771289504075919695065162529405341805622414481646940522759499076051204035248105828413917607509005479889648817298810509988553118704279009236304221605248404539496806368406728008217131367281182367131789593509936315245335359407123862956525003632573769746047627943537493767181104065818532879024688582788259511275709916861944236547825896055346923122155406000953396473441918024209052186305065845578767843206158289852892684559289058245002635034574203797520161391436944846186764508786553587450753312612371556804667855335862835522862848569283008973392003637706800886352416143389901307544257527463575300163312633483650008845402386232425931240462666173291870679195287490006211023642246388611923079845763399446772960917724776785574309183248073411345943339644066917758978667558470062231667157230729681278771098692099986004382579103900826365942312945998985698100606126107340041073152408342627477523180533485265582786392653795571304311071059627074714947810938590148581345536024144786246913546749001915407038688142159566655656502615756545750547070498728980480061407861743102141024995474747363709190174671797779640229543871331540942033611197508664766172773732621387915515943237889812108490306243247948494712571989673055727583132153128520794489081447849971918578632678073755255301344866734976744567250113282028944463283014327746175212078531208665199962386701596184943273052653321212438494077008501625528709172271715615843858274871571834572642350745413965818368679720202225595589786633458059108007607619422411513140205827603850282376954546161354491471698991779708071556522231029785120238667943536303256098706248101887177828893234606488801355076318078808676864803022984009949290549639768451568083299674677074858669667902588091678627756890752702285693303162885477887947458486871685474216681803094792173343387872809515547135220092483338191559370753451752179910618022135365511037639090547973425616431095543260884644434349659522880021722588837523641954174441495730216154640208889914258091480432021941402522428561048310126854670041017025618043571904226960595119114635268195280177560688456411194134722645587158145800709141872511272868194324701439324653078017506200230193543918934645965348941307422125685432379672557081606283257787593478724921575973604596780984787461710527538987412499050412515030266392350765389475306565437589422029404581903127315231621628288767183149239362336237141302411530124736402110342964320993129397776123420678295422762415332384637845688260270850364958888643246744165421484196006237220125776279705854392515463151584260414409668865776110908394406472434263426135384819519091924993303805207033209301027030775644187950208637261108468099694043432256484627119591486522002845307515645873124286234349305439098653950460031726215205874384311888619985411198542532079386859116824205675127651140742264190176967838504604799440691373477522603142110592800360570113835739269393251656201404184210042894146055356550881756460661059958128099698832033115486353057337223626535252897052916454512897671509378402845601780708151124463708005868007532156403929076113337348440190068198151712319035924743982816270558134835301376423428489073934826982961305266077659352515168812656098858957301468921205187286817061474952300654355487948292410842648903594173883020755592159525430105438694678114363745806948456426204187434769044529515090910542626998650638596279568678513689662957433888830542092866859364270646378660307423024431729966027165049918551123269920666418087332968224041931740331144060131999733150880893907880582835728167035922535213640152489615182589815309075277994989811251241068446414938166218956394412057555052857321127597066058978423126391107710934512430889082986851733873355991924077331382761351953611014027549520443977738438000590318499025799311485365142413521728389305539873668213633292052541547619046708036005304166521683493296545977557115085928245444382297389711776889165175500084751884645261311231254075202126536219305368721712904426874440668144175820939254895772233798970948808511303770865071350062679209362856520630434912526372124817683288760918558645081038601520467903437724314014779041310590068832842882444040610498424149315903357123444627017129358516187455601910417944311762209171172171469265819446342898581020969479802108485703161692279699493828017949078953490116701680431222853615432210641629841631065032889209198304715331511152887940636584399239147859899400808544542533821997299173659225400409706707136347982044968080614515259212248281255456368014758298658947491221855312740459884235161144365505406734659521691537288802815951264649915736812728325167702795967722553052411143315531224092989419255685152960468780115504599740114302149350126521075410318835814995871774203768868209076043101299654535150876415889700618192909868696749603076261040977665904021353737824880210005066573688276140897496643576150652194203233440390782425244388317287030669108472502483230412297733948453939866417431390341618996640548522181467225435113378506775071106371781246300349193101884706535524640833353650566969802593773261171529713600102466752087054930217939856700202085680746258340941362892168175245080124895679001836221554744624354656233637267185000465819682806397790737521033393994254881017587832984892790726521441365701422486303087949532868355942403309083865008185508948849402259883058523587493836108835689012925007133555481815286920868762131179950759667396637237606339451718902139275000315317324606141762030618623013388225213734784935539805185684927621807112376965553542332385845148311777375590658519578561381505199160647682679812023142299609108203645021142812270481429335108128040839213451901323856212895645593436516731944604776384874937778560631517287002401263136057211221216418460033071372175614625363489364500006682177133368497160909719156908033294224919894077000403715245547894864399296526245394495688725976335928541881570693122200673312271741241065927451572040441940059616680820567910546654594077258537996814684964116663867839945649779299672212580468112763896156400342371927996689316018112905046263398726770882138629661955680213639050704811725487980231179996276367685231550282607795926465066942312972214660180673986688493021150048811450012808358951253731161518773260110122617492894008829715180100764511079001268220458739105273182510850892102367659019244266871240067103598166128307595283323799881201045562506977970392654440904319996667727509657457517139716405225790475275362052045593089967807939882473588333425067396931729337222206523140039872717690973192916402253150029625437897144660428308946720029619277258689720242251626657148465838186623999158546299777091506273895716324219085958788554787744519594036720180274154032427010158173207281266948832592714659241648932842546619374032133134513424251913665286105498148233772537565665567414803666337142103526910481874866562255902909092993586269199788761113475837840287212786925490863465556490149715208459847303655055104429300932969440819087110908791304086604266316327305798513383747019850425465533826300555211874423239094095573261200588123099194782674402630853220591640790439126424053879725491161203871103399949879190857295390433055135366161882668562074593870262329106466779609963560895271312790294526102679610639650411847706766368575319777232719104214065421388691511467710415911962237916775780801458882999721961629260103470541955025728506040323441594555043118742608708433652443421450129083019206178572808124707235928771666856351464355392622033441983700066049712996452755440738787956894826464804510969636480426570511055745700039745524370654938414900017385312131112880466308306672013558626355244580088660526994676716737293018563459315053859782203265018329829238650954499714256635951754262734801600727999887040099607154650775922649116054136774397172919259550836925617439144858592105738365587204302332985272816220040853982303499364374821835525663120046786046712201768542042454888331753879798460531189800006897783668132634439834974990906967144560995625372100446865374449004779127266911253598517789347537465115312456182833894072185576683208753609776121244581898462055975111352179969191700490007207008970155256434801185311215233787538830114493244848936614718676762313261988029551808099978680176350276529928184134945004726774023668551080931277550622261378214539572783846527774080629487010785704932240180874815695572319320968018284356744548008479810149752869759453585653160878469070985923307157054300950959930844243886203006367090729366765526232702609646927438098583395001695870264417946624688540162672325109676958731229037230476373187854477004196124418950884419900792590515243333474817562235886909922330342916563214641986605374101575764873604942007529818041862333352538611607038165896089643403232571128315683982330240706621737571148470338032772913519286025429948829270382878360029759849218395189836617841297828357525085891108637292240347737104912045411135221321088879067774386761808332610871066490846928702560135514332762984498405542287042181735781983182554068150742507771636957379668143544808732513516773259331149463690910679685426743698585563617595664629348170132092120766190899385959248215619928692841220121680207239650110469230860242147575720084148919737869424890587685118144630376189273720454563073230586844468323119066643358914565919900969926484706893809746519017445522594707771457712954019383264266107845873925087831971673489000487217370206255831416022982048252964945625211833279792060651211572810995270424702560791283485835202494562108084518108970911129956259380996502022341042118615033652660724509398500323433738273478867394414400392875640884479198714779653091489425729612395680666232084971306789486377225773779568661583142471902768165787888983443927991032596201126218740058112269600766407952100916062042883342598781366006006077772186002087879917151854895941397609109890313391852723945357837744553250783627552042214654677979736029833095952471097819836009938553349434594487224818219652969676675639894897550679928449428172516138022212465118190134780276347061707296929498295391186577099622435854289843653349797841733567243095480448615702692911404525947526486500658309730536740733222802474870406329031490774270405633443899609343124943452539628819646515433380365879119484887406457409825180501194525847956293092119462557659580735719740001195245234527182402743816684913564858605012673107626153944188770631609946559375363834973518882354548433127496785686151559367611680147945312561132603097588025471266314771919779171880114328900778097490342664365928158938974318906860008419779121318352027971579960390818232229339187736030804826632227321264583158314184151422264150842762469488865782790329213029424580203600828818315045118624114128721143564030997449530179188408908748289422993894698660475200375314943786493711442001459232145858514487362499077782698215691003570086113175899764892466937580093691130624842894632398474193998239249920357465817325041346835122412474912898610503225182891932321387192893870039367102477044211314436479535657971235065122642671297174090962064180624114718209471433332921189109679413883950450870808611894075367017755391034237263880374419076970718344006141262000320624829201335194347855002279382983261613553223941177713546431580864863417184400480797171566521177736372130834072793109782018718558722478385038876507093113451344187640271299286244596063348894974083318133752263695928226866275846412124467971527165463598591920897941107308579874210368127931747496449090218058387717418534672468454252419561395155766766924577407343614306390102430967134686366214315326003943359884018119989666428234774582277437721090187464986473347806616633800899509746681112471129619590907811612190838984256560946124178059969583151876652876402636628547318804477236540893013071811335435651330612458621503123431025996039021095209213358838191979887846450882682729416502174043938669803017930727259165947421570250059504193874731539644237739924014639041869598330267883783921711296270863315698886803805531614565158933131379481857727499871114835355322702469822357321013444306166625841784115663008876182205074937428475103929890355495595094030693117729034700291954046349474721140414516395102080621217739168091528479583980176345646483327442444982980257519114236282210447977476172888508207764617785925367391831528545384173645103351364448394044700504089514373592317553387073222684193300448160285864659494016111828080457804025786753453847609779328382227417885127531417011314756766164101005675937693776145045026412870828806143362870751474287690618282407262997326009991626614694885167672976341968309014475499953495719295550107782301258035180539012331253727148029917655996457341116898340210607947646557511815469217696951599735159548090956878611092335898548768319110725329543741254897274753738945913525523122466162080202777170498479661578133033470006566282940865878230192260628157264944967612630366941314232149173217911696394268039276303749988516988077242892959439807377438169178933274333682286157549365252204090142392000614826740079354962373652329459556154138330198854632674369515147793415482645204516409620718762438550358932552701905144746876771603671299385153949065324244231776883436832582388666262463454512845773903794915668294364009635876271579929412589098229841889459832531351385767618602301555531792427321863520756508228205691079642837646394120813782497384420752273308965742484015108443298088628375654402812353193099332389440030847494811383970323516512978753520810848581408536297679069683915598849694094349151164992553373391382395703692260848286900984650009008399684584752791258827195345230563012689521162175693552920385395138235001708246934147017202109543179711026735968660359135299841671084229648804682909713874025060828686119281781373579779185791072461491450141454685031385248227834453854780641916382666346537178519370082073648888394941416478638108235246183231300879447293299872484494357217469714979936525854807028834331402952397643565829325639575206072349518316997138033008386553506909245036225061515950302256203624426926050922332824340597224353959377805286378832409755712406517999533547283550737332957615541425953503016795310737871277791623763485917504102321647154918290572784153822540966377068850846112820978045171571300280369181285760200972841440824953547882035224995560893773644397731764978740124582470050649696872082604949697428046976355199641496206914251699238320958737948825144665899575854113391653042392798564242597121380451166702115868947093877951345888824366984863680751522677530372574982875628030739870560982361563241584222120070719652246809146584840720347702062575695072481287459170799649183545417225605243330202750463942593551826217605650659916603921965372411234411074623153356717180053111869838653058072503761808870244013741578387577978912896555884065610591905813713607031014849661527437738626241682924353456349204900050622542003652461627782887767409943900899971633525543249626873328294133124940721609599364387437928865977714794183040482328933043717353266864201064411001000554204626718623685507316723413843557515852742424396862976464685279645423542341126989714514803816969940097003825918198151038918714906178292337162752175931957965602549799130126708221366848070010196308912057036005717343323996521722942132937084536381862658337985294254543758141902700102177214571935289457224806562100267945123008858325812166849487163538405498483767678826656730530890501023931974649665476550763141752826030230122541957479971808950134802171010740056650603427243705015589988697232465786184288346068043913345604654318540985439052097485108886654841753618868709066478029027941024506541743750879881203861158275788904798315453285124206904700896893127702929030305196612306555707099880628250149904448383336338540565559735644574106409743426534649480967267003847745092509026495570946813631315297742040765548758330466453534402216787269853277535760334740864978596031111155906044934699993612423090917608436440508718400040323646928219504625013088486694959123574260249528576202647118826179038517457122675853032240965029498076348396657566118411833735376190460133716969029454309385295103475948435710951075249522039843635840772652594427476791689237039757690786041826311487188595219426011376132507631705198907425902911252235204879792882379022944166943504830921539845802627496977888845865457286446517052610316425386849009392293639539608852718139224534712997329855156777642058885444650718583928965379525140271594163868615658753552138358037331945927584672707350049849981689810186195010659343845969195170309899886181472949767322930835727702860439461702082613350791636791092259319437870398373395261251478214976464933700836410273487047856206908574048101285270589497784255190631836903030273927506688975945295630080527574143306494813593864421962789660143271459196595106907026486587509556463320661219097766756711464721392044567120643133943636878403474356803824844132615392150401920228623662595721963274255163891563597640809936542576822913673701073656922492538395962121737450998277859595292980336693477011061072368760233935730150573516485243596677460505876628575803469731760042539599426193531483045125986077120080396209655243316224080670572259350447521190412280971182816631571573746076295544228076491018628823978657792876786110618661863105778360846285403621474927349514833265347141502683953870123924946832591387855263695105244922745725012711437867747040192415884883980174409084556952142406113132057271529114788064823722462744380036329109173617424607330021633776119998553341324405321028931533310113078527457395594755276526569543204955882587221879665798047854346228177384160914254729834881391333544216157224747046161151554896559012669081190760779872981494230771077155940517039289723689911459491076051945237777509546260754990366052166404408532803366870375060854704933601975288312032821889437656273309012975571682102698598094258742162229808516770012859643962644999553385985097286809310554098276963310236696794880375177114813257868342543043109057893793963609912421445411383477546711908154045405790489765683070761787471659146370803607880702945295315365363052116160075339366859494954144184867234629404574330888328153498038495884018594123096037071324757211631273601719842394115954045499218169468290231070409586091087614898854527244762581916936674644086025625246243218141111036591256903892799972897777131535825493127784276809246232593148398129039651728984575015995955123676606345170536602646762604072963390567043495543227923284551156671389359332880910046892948603823954113854468815207226662955939566705299549235845921511684095529005355464734335273158265461435352304191765147187789004098750697638704564698398253082387664895575194561757469375575111945568929652827998051380274535824444394913716660578454394003325652201775905689304197435382944066877296087873370348311108681608032864460618746245238559381802313858652326471897158426887171984633085965056106535704076225528156556421870081521108128170296805421496734669159581492177867587977694509511806407495303624103780138459496431056570066558389444164168010696410097402972160579490015126067864114237822637202381975610261927447884925331905826440750638194627359366557660330946944628062967373463069322401223980144055120358397603249963694227447744226582586809465014047113066189858169284349332678881961194010920704522624731974862169133376149065400931869185766278586226415102729170647555240932305978373825018348630029371943772364088771314323596257943605276873568779022240461987354308161313375883508125513682458688151993632112704157463061165857502875288666637341392566101819452612388797779705510191260064403459163251879274173054879140031256369953848779900331196200100426367391419090392461887360545670059315324044601724863743029638777650835357522269464282451345314946630821249140317739733378248535638124073527417056954920750142891085040136353792610926772493325030453089822164017901911776214116744687409139936226885848022327928380929845757310100348382131729715001404075809751544419221415617050539777628901486690512355139142308086497379573975264882500820219414716957705792032945958218769051276086158093090418758609708829599650475225514815739355283572503843697606305538164481429744786677400074077854538933833176649878510855595497580248066647732649795413037504536466960627820159859805341529988792086649866980954585348398700516589594845020464265094916749494321872808678312125957039833486121940404436507775480249274490857570596649681503529595866444242235412622976524294347877511484118261888895836989280869948510783979077219689485612554599383794555705466848522829300007722799197480533133007468401033738256346565200832442182486327443374215323149200168521608792973927512926193394858955806586168086461688481348768051903938463463283520797684350003881074907522933106511241199772173005299596061094966165399016967320408595551667093742165090013809446424094192636306277709124078941999346679597966213419091054496955424971069595288737060130782227783748541515238843842720535359809597607600655217125239564347259336603801977290719379196908522511600595144650144222502625031552209011051085364700604327712830552534673481271991589745843299421854296964112928699826545784484628993790923551985493729933660777673200144520116566656810089575124829859355067030543842317671909958613898353583255359310172453553030557674944521811893160431745860525831375631496359032485424997113488080721064676025180609412511409649649286951110731330613140841989628142035475962078952678555906709492076904619374856020573687190952979500736406322484859790346770768335590321202973127095351445019391579418813186016366601317509119438444741926647353780022390586558151414115743336963773549993841000974225061425066847279463804801795687829937560001591590270104876125785519507802862774022397263163396132472607716374727015283485754954515761563722699998698915876450346170673708350041444377037589482095878828212277897811243396286458532888431813349532299860984183298123173728520882683459405267217643587726358125022589337831740050809782026762101777314807819433562522846853340321746679102848237035165810302860756835557461645669949463555406988975906543635480950314510468931227782115472758703832467298325853180246558424259233910201668507487361524993099414410554205160627005599914009237448121391919245505412738060485771125808726410368567960109206541559457611263386455830129050346805760829171237548182875622631307833161909222204227250661535084839774056171912984241275667922355238508466102841206236924260361241351998910887999699628409376435342091959257626352083470862657388081941104737633737844115218856730511061348570786149433869530474899837085568703540169716881032236114710316133909752814664972923454706967584984711731717204216670537812271122860330999292432895623532592946999920285122727647722906851712602624340570111543580191705756982266032935039264931791713144840154752490312773529573536840259309954809752062303333753941189557295467300949291192376477674567902310767738183763065927954412036412763112489252076526194105102361003913083010709039272083701403983501894088822512701503156521101343592617545216244500244342993690343253409939602999898728889239744337961185003408890750088524369396329421906492014129381008343174920412297668420014917219595511179860367992410848661759475680357435141486447155275196690652214865895801156135418728851489158917282525759977279212862184722298835666486029665942431120199264150183526065890621968915898971257796218158165671423577964454246523144839782715325840327198388058854672302688716184646860796365171533219722928078727406373682300833875968137048073069261029676930602287308596250461908165615396905740431697486642189756964767845532678119876605934555153858916035391889511121360659866804552128942405501506690382869644736986871878108393602821041551247572063134013662406930854265685805544000973675113400252781408189306118796153223704222069323752841739700494786960877599561037340002774974911743042481228623232672203170847945401902668399502356794159597827270914067193575631542051583337000905083623516316367457040946228890233719939958824689450582052603859147593489308463382572732145383940626963126555828218097864055884528657588548567161692997728871627907598724209080816907215916403520971266318646595765172542034889451762740899514848053014022029994747137339294470985125605444965939887979397525629625543610159519184245551325457533929710227956640832796160412001464287152198086396060605326746918068000717719300286942460077869436296179555733981258382749748404199460737253863411293936300311572442036204646943835860410215384477639211736155646328898002653342524841691619944276735446358505450758266636825068692126114334949311530909696395220952811398904375448532384409695159294501157977508888052171730547390377922700889761307882317056922396185801637776432331903183527464432494724445131671898678735180171519754699771270825124101673636276583584455699230228507010777306326607687780067965436828901991744427204163254462824321524337630311565472964252746536845618152480334177570525523899566204210403112222094600165030229807742635501141237706510019222874318923882690898980441593686961851009870273666708804425850516704848099686461678579484407539476779412549005572474240029417005871898348854584031383662609634138420090345460292076385311024647137539213767022253143054355664981591537000912256857087946985781800515400957067828711869604184593008205215067337713703064310376488923767517842567621045379145754377061613557628408144095950662883507230189919561229874412249997891949206784174608318538879875005342867754118723507487857522815399862906956242429581991556214933998275422646719571444415846499960727026207021093033886370957184271054581692404432159305518418947745460113377421638411938696155533742156551277008768040551967046659594326599212098444970763620681635370952468649922556327919143173102779246428195527420681837132905011541952838413239793585674740896350189980967322825421487840204642583204880296539565551738066971632667063538911332003153441499673653627121069392980797645171991263607945927734546163994330651660868695141311666887637850644323570032554725515036054985301631002496940264595885402092780780159268606604865482405958564966826651763628689236571033278504900420144261513444375547600804027638409413679065364842589661090077740887132731550955616691220971054508856970114180877031987348244001163546171326346672381652013559561467741951759796071484854102861782940387796000140996265615347177598522804699425614751361950934690347525933856978721183203040198475417369918592273881085830095051804570462300663411195634321424936382879429491968357489110307595511547169710368289404839647328390906202437111324943883129722670965836433058230254125544438803585527502423746249592988724598737380113850104242633766297941815315618896461310626277818335480624197689389291378110211547967584717200163931676268814792329542404174188053745250954182896801947696324316024340068789651318152616960509196111508858439965729520399754871044970568343307409107965010667268171951619588963980055933767350347169618276249644463067596195514738691613013431006918870224815257187627813688806039441646281876483532104156057163246850319112386932196152057612498319611663872360716377296188879332694157974189311472092576586561859103082901494249068124073978814745084072447761331198317331279489039429354467866692136740469146956911832941477760462854401147948137905210606032022468108398582847606879156616058331808303444231129988924950203975477548842886271557693307452668550930856634734740990694714581211271817761151691308076903816523220975952722838856196347219807835974030300711439898970673022527647459952392488101568069805438767320563509312635234211458985411124671269864307272983885235924142141106778580036008448343806065454634608911459010254387928576085781580022053825230183987604506491497856417049889184200784920267082330841171653198348326062213554372138636107921676621102238948853209160714861465784786705905001947368719591779446729400369550280207279589689330641472883045855873074374196695798237599441718407571407793903773155398413713200972727091202155836540140477623207011277471982067356569534868016013650584041812747770608017246740626390562538545228247815353483369396325145827926141649577416953217687938622047867726429269929705307616802985265967812769834026185263704358433146200108607203890458176574531702201561668848691015161112688273858258745240489662509775430530349606792027571158332954821720333138787732685554853303030966835274552195452716557876333406249327242160333622108360889185187129965625856947049113996607225901120977501258592200329621323243501553068870869259551788112453596222461587253269300519507984929014237348747887287949110495083353490444374418258610575447850232501250677006045002564953923499333479171156895569632063730269024903586765448854564795646499447817343277026113971326200542123828267340336189942493917415967101792177701275308884271031698111143196292468417193928869670035436762756517467053394121688232541167378336202307853883884916564562584110951707713333256738700342024022624788680427183906731688606512412019931280576465975169969353912515874916425644976402033377823851562152565478066052007699681468205272331451549105816513688002963860274586308916239710073939671434674532014636272041055549072389464211100711027238267414292300462925224802131862772325511688602298796559806206696602152529124686969143705610763148279275512740686353218560776022394382906031542440975351544422073805732296068090365680793401196991529774157459244547006965186127574573239435000662805401177755607359941772343902569672338552406816891994839073074786193102285450534838495638659082188930510453222361566133879314822565593871148182525221543591380345766625362217810182047616777339326360547264913602367659794617931596398179225838604434925570218511684137093158696738565441698561475437698644387629662169204934356394713513102385932115572386749313263360135726375792943438652117190881377827705209010105687927759165289485006136879149364665532929792166052113661753506457146710949882749083597432237176560547852217197350867436542051492550094351792337852910915627763965556832580876442729205193640499958391618476416431118277936874521769183281417894396669746382314539890776107482467122428810204456556825589559259652079378582391135285882633254564061774586834214174695974949459861924589792092939536548016770878548126205262375486511408075796690408737995914767128268535159052272114251746629588774637908138635397589820882773708324588722389188846377371241900994212559912362254097050262882271043572776509727053558723350260122974967067186577224188246842811457223088259969495969814119293505355312225814592414650511949320846659168449999297891004069435539381726667902294531884492913301925005099707949180658283987493493939079735624881287828128837476141494927062121412166065688552424646750964911020324537635221118044390275493272654007328485200961849360555269901600832152206356456246910672100772590928561869061701028282271291263136842764565203428919284431232018078948135078439711342205224057093905011876570490121738320309114248560251634196110836350435251275590580154831552037162423793657959284716660778704880123126456857259858014595542979384105831880389444705702059462187930112603289837994651248219080387614009682428811873135116754877825844361152750585961345384004135417275741135400991581825879018231842245763848529899060070320821206901106258810772016430381649990208262130596356051954523273775089186571674952615293481134559541364143322008284541865436338886671721833350800612911404733087279704309116925605759499359906291542592125000995251378713131392569811206499147343300319866919225838266117787983482785038113487822038365440351608338415105269354079320092357646712968511835572642730080822555123074911969324025897978127313975134849672820767884539066104995128795000882290284961292054406343230637085662888560294530081339716976111931983236815914796958811733109267641288735148105215284422589784547542435936367328340924276678575509022310525487947610179029788043303924532799659249356705448340611585153738929591759746321286951626977750302968538450818307960087159916242224829553834707336046946087354272519406272608910782290256016069847670945125385188884537887651118127252228234800886594866270735268400990434045901917047359334098336593404692387835280724211612888457782603414040335597941158936913429706350137491736338379139209318805062069973881830174494319504679919591918961430503396225833548680840023175855763275459319193835203349869551910504238051783655761662732984999714652654266700779460736253517451912905609683668716023313961503672843989379866690340948365197501497166323956041386729794575197490763710081043425326254112782343189479073199982420838932978044658531621601990181817601072429033731415122006735743424799005627103080641762569515486276334758097499093584557978027910723794272902324865691755204503750471464613015804488865749017132461159669158928445906822641626229229094430481463436869697831777221097356318470789738727601548846233776067215896902098070292443320607974719849326744925485428279439782892925431988900128529882557845088722190531434138196486724934235100620094696614099779049218086536486035900342695584625245626763030145490647291380806417940168825523099169203296010261008221190053235437603752303675308284073516322715518486060945448364925840319979484824917239411260479189873873049797177721714849388623166092152372771981030672578422500489211006267967827253241605860311683507615071855419983853223941607905451018672783387674517545316019276101356473740573334856619640122812031955958624965311795937578594106725604180396625442332382301207085732753500550611929585849320894818741698552448323192956430228373398035246991723968604680012888749750544619518824942035833756541698880149114383931570170976110159123174873176929322967748825227775540230234127186575637751452631653641755595786997144314330655666785103093465969888261755296345035097289230921282672432934332170272885161181814168497277325949492271484615300377010150837595194637305612682192448582437446112494431868037416430168101305480730632872929513982244207884629625271063274076669212072061737563709094867697227719996489829664751284685858243502710671861758444033807664998876181790948901041183117932914992850943329384322677326673267869422450629606691146705285063911764701363446260368364837236883353793925848667168757212665446314790643006200020119087524397313159820158474749104805897643419883881671878218626944431019001855254091287358762545323660179926465302327896305510202492836968549360659588125421045869227816067144438836175119866105132689321253126124156149693174829352373946096945020953576957673969925150720179224902179892248394337200637830262676432678545802309105009755243707000307151112281906869443175507704323344186497392453222724640744568661346282038945566387809301428191730975327718478373774330143617185197349114915544780425108820923356126654651896145898358916726796086581919328248532093887229372987543535305579332379588188168554852279721547760144553655595932735000904755926092047584511198041974092058661724083023203410961588383745032216209201297744075152004450179056896294666507727051769017847378129197764390688417541788816016580652898902323366822531244380755686766082930278471887662147376669897463503718407270958753409101891111844753507561235837117553724712681122726309922170999760553883675117949496504927578913878358141951635297078360178019129255149287427341132129221500875618509688980675617950919500840706576486820284633204644474088999592461757350479255092010300200008565148295966742641970723911319235416894647682957016335736051589945414810632173316876107356501945971367109790083008948700687433771017483015926539268633945502525090430630701649861129872973702128256922991417346518923401332201281676377395502650386720935905900890024047131953244491064827206090788651148332269396824201583448605085988680480366318143554143911759674589391928388257724041467419162684081052913014079245455675046354687319304880612273036642312638785059103205129538055382094765167220149253607644083745213481943024809148910856961733101050674893960375582979511730613753389672317579703946222479801263762221680938513223728525483040354050547532606469337043298790271139938514515863343324614098947283972165796356237143120374488098106848363325881578451149845423371022643396026939365375579266680609046260644103823313302251793821182805742036345903537916520978927231945452907173880941831657497921265269186731580518661628724447683918749625570753689996960633897850216572165531381445445462623269557083837604472390375485829537314237344974334308314408397122965907654900297241287580791417056910951672378743303281615608379109395222014590850404228929493727210915294422876832496011292126173820409958859804640645328204513800485131993863028091212654952798875903604891429496904267063638285351043824488588348579031632321144246574926744093610425638137375654601320592049979076472662489066998418874949804184739566592050264873214456886807784975154249362196564410347312712894903986721479421849493297564591944538627154824594515481216303359798745704705580737387496567519210931436921106281641683693035969837922047153502194688876859676889464102386276381939401962362242067151485452877714210423941513084755938424521710202382741541910490791041439851850767684893351997345822099252750456182115369430833443434565173850253838501321511699615797109345813593463727351001810648450127469772006894109853902782106189304983704535468436425699765926060971117137406926032768893050596964627628251449523676536975053792442433559247818679570833329567710294517103380169628962885281852947581667565618939689442074580185918956780818249596140284419598697028679827261678365237727869046275735071281368027148442411806995353410764823406400246004171543976216172461968992439728081241755523740225563053166445541724246587216206154591265737073336937806689898250411739969685041253183566215724339401555284652341240714455610420002879241439047152098093666259801264093923464193273071881845374205068202956354444769736331878789093378337194512214468271681145667282346117281824501388890560667731166350620898344381199763955653001698398260260005669568885721166443457739565536007611918674810697262440563780415871051381811023888750827046483071899373566526662158966972026879821041447151943190562126072429597167555777754644895409647052574466650918356331185549819755595135677959434205423203513479753419840027466247589500834151413732925684391144084108159099356554509515707196891877107605661641489846358541286599785249548984174607421929476735738216329732120831591553785163263941883636154640769846002982691362025517616626906085811320275383964535381263413548543232380799620644595736568722324447733674848343819840833570044911015071953852933438683637794144218901972617044112617061803848446357182318118541672091898082906232541158133402272899033808549685840784027680875544481574381141140064976996853379402225379835188971210321418256189838208394764072328676693007410355303422396944282875084224778942371731427194471726621101776692894505798731553507823942154104068256773623908849650519662071613634400760516670668911284807264153649708815183641469401060856357173786360607045464797560824048542323016342657738930442670011510305055182430103274392696092231805482509170629076099320043129541730916552212699664729867130998375003965806377895631950539066673227709131586719039497477918849008031626142173395709241805219813071071325426873085721873839844171816018790740020042548991819449821565077363218544364069648161224354802787983086015984204675356958570291848834238868807262562592309176291413001223057759909617009418004321457313727345401044537356088159440547380910262325510833617194352749445415213907815342729126853340797078828425513199556520114142884446606679805940588900974827357027468337350937123209008420974362296923831127961075153116933371549379449964958784589765081680877534882892098273786963844109868591509583063756147190277483890086676115655749059561432881974777279502521827596275032773972550736958843862131074557593907006892021546900246406037541378830971028666162469610940549757160862935420349095270343331907176553787588876018912342307019097860784970077104090925395230855995086753641289164067765651765791625146656794671743528181708711572876062217084014484321400421457230550004389264156525749577767979899294006675873543924126982476639208804929692779268217901999074616179736553018499929480207501408004269339482365958741908540740086904482213327709993239130306039992707921006738705856458141094898977028350707765239087419059068475334868482018540983138772193361457573485857424099913695455356728587728519954102388466160023467445797485581169450520604224193790348121461140081152212203527104987655909570007179908665202792591771424289576488658748441888390322655544225312686424278493418127142448869970480429651498419014257025527878218668636646704066563027107728962022800591968168478419134871252713851534105248317207948271342098994375735891568144489659590977056826972706983659543934068279051854277236861258997842864605322202969691640012293805388772880224224382587698488696986202679531799109717212642120542311019632161008542082813272182644935594267149840413664936155142313450616683967421775863951681227233701205554729405136854645363970987175198555812322068096394708089218454880035603438197017961747979160120183282129439307173544955936080568237659519521821586555798069157345989839298606708149733244089262947394567377377492258659543055152979244569071822818981553981783076958782111577901359926313517245899502817498015990073669553474616287084777562388490939024453224749904747592224500114482509857593711788115656064164679916449575371691431538627312021067063870227662570840698451624793373361958099443087437094704930883412360640513476318625527628538450083231056825821284861794068374480890467307359086737868659062943471903219997835560755639131005902242639569808079370707430046215205491029740759249631039305424287553624106942715434132332270409946233370542389783426146845360053366297556709167880046680995674729119248633646772496614096182536561640096165275610686246146408918340497510388620568243243235455908896639375184104500218460807265795309651446250113912445344382651990019512175349645265550149050755725173713474057285718333582768002822688256721406213269538058426801271313777090789635188610048239407341315395364099282614605870845021894797137348620195160178354342811496576926154730823842621856934383426027916317554467268335287831701219687949133460959059347997810318500880649523960491912883630152309838410821615234977401464942617222079077915645937574058607511775368448045699201040509077556000519777517584006880059976871229280026988526133232718732873875846689089103443989093556412243026897939856477828277569870682527116004794978951762368072290922077228808922394028444097755518189786014285074823623243667819016555623492575986871772998321477022796424713567927586530728012523674474254434818950506315634293379706660773224345819311851793401763998867392310083290819427281339003058409584527418201799158469034574087314488332180977707431025146185511245311203138407150168226218289884867044247731501148137392177031094872035866796213317601827882214488249791966360217485651584901094289921414096296515332477283280586341287854699113111941796130607357238857003530335487962794456760300949016103440775357662174575700516068471547880734314646917738520193823169277190646613705024262763590321452409527378991652003981795950530269985420920622026578779121755784998348653594572454189205153848792262449629987081682111782952823846750027425694231872494521860993024916267271183805371454723603911092190341168795713298802031706331988198752781311363857683938022920349426582231824961997463645455507035890609430047366741414789039233948187063345270292478655281700023621053210077816910932107667431373186448492980804238868274185634105698763807381954383912883742581094819513982685652221126526085286163206032276836949433381678725488950818835646805960679479311266079883741874179676557362894664727385340904713386035109235983394314297342085546584467492975331714862522775808171086577823219148829243199971332269003622416041604827460224511668786984220599096123367171230533307814562110437999840502785301197402175441919452456161074385354006587664571147129539064489246777875469697757128809052031623812673284715266958826753469994038918352461692499678130785748947593355725316984758185263693569351296958138470055157303591353967868721870366559799936451525390529154872383420937623812512190502076114388690778031380942044903021795218974901286842815179818226845670682180216496961789854735813443684095237789476257009813748915794162169497556828153227606241735140769192436739645967741462213364225535542392320397793077971078857507853027251113149619046060393107799125078539502923021650967846550064570211444199542347793369630988046577593212256169232237384522867294108900977467839495523527697765119203264368816709322116046334153499898583145873924957579288171526919202327153562897965826810475465967536766297295763624751088717236056199007244995185764744242485551873527078769516044633653386386640990507989243324701373599815490622896466717884286352695286140405275502389454282921929405545829628505022140577970623074874033261058554919983867084062086983563577248976186277064763306334962536549542548625346640694201623795505622682767233523855021057000202179978303669804457929441042527090178603686583922154414968438211614143327894968688345840281674905683773914824849395150697400520368634804387109024907941936290596715545359125929424037953115894437859169987054962008076968563077020960406787503828191629569197657302536360143102918948289488933043903152961640339252944677282789025296200374699752196480257276375230949110276181649918089439268892659708955172949025361813619291588606012746495737233741937647432094693416486339879804734441651069865605769407557673134658725582793697410998229514119955090795603481233313364964315876587788179204896037028644206308754387362428545044515972736877801390978004440260682758771848461095580888944472307228653022886689979015749697695761624488191385675939690103678473567184827167982697326237656234149409036911576486372476595549939223477785663868872648207601235054607111243233680762764120364667416437813789784093986423293934829806215164421648728118825808516389863570864831228872078572728355956557825886693554745217361730858645591682197002025635527218058671934949692101082516609012132508353582175814879007311093164911113426649941886619868723777287636597845709940507828065900705643189600949850048862575419127906133391376874749671505190878729940028451938831971546770140342010750469733778146770838423768305176176561429303737309738897388373020230761856654978558354501223063860710902869953866984653002391398186145143893946113415313645223023961208725387653063854985834241228669251784152898510602634464188841363393602444842741819960377868893303569492287406589660798609002976648778192026953471724085650481744160967821396288195356807225179727661039310988183902155296445611833910087107162613674911615525180488663412105540489824295866023229578893620780505581066859100141594955369048230700068242882111194145444528055555363581830560123764903017950668982734013758165818742996556423929448793400764423462290195604218105684858235439229207550844781815590537918191085411264871319452991621826820275064948260015602011145615225760974251370819165266733876672024587144431983026794572870739471496073990449606097264833906007465580101583171673073815495770928623535980552174941150577238697130191352152157872623669895180020972634276365418587835254745362985975624377481167274815167296229825123849885073291872081303373650606919449231158533440878497880353368562988851008029566171503931220090795460199507662673013727535142592248931088008551300516961810254674596608484903058496888346586240026227578236864503349643089625753844340791727653748834744690838531981775857811097968595529768730226412896796739199441641324022485193308487448314196240327143679528586043469688094717912705771126851198137751212237277801430455147585096779041214205353269635821862492751499754748756127580154742182114550089836251904737452623939513079616444835015167103203434977956439458420600728650266186643316637304032695523282783203657772124357072033131228615851528064380036044315919319390335345302656148593061891737186195584205250519040146744629021848901016628739719971029867137911404861077054451246619898542538963848430076083198742251100454784606067234369007828405932941397734594619573568195899672896509202349618061281899224719310763827372220048099520836049309842856517378232627456957801323673875820749080842284994881948180539860208554993902526928310355765438047596283829812050992518657314757196448427569101982855443664890675869192285103935792438740575244686388282476741850077924940378201531829907618199531184172720495685452706482536240510139559875385992314853461050596589607506241551989751728706871420120669375936918897508560221725458424515321398963439568484735861604627604011361780705565908225226206411273187321012481780573140357351166796450931636881826360380929148013598186757972134420070479957136795403871036853606247845426890213764689987326303816460132644267275384663580443505658755362987672081021396473256835502671677304470621256000752063124392997824918941144617046974875932921404004898679339755020838791613942726120050672650192461561479967304667452938699249767538168704617870077075726375821399165500193802376591940406219590502744906206041348369930191849839549364060117251986459934227454467800833951192458007791939012698661595732293112528428682498682714220304473495184785627475048474555480065832131284457141564780000182419754693486587740947156736533292952315436886369027473871311892395440964015291322483037671663415703282426108823473028781774885605630505497112367430710978368813838053555348256074984412117661774546327453873107764105272130396402526769346107940890931759677186015642810344319886714588236474687342718783829049207258936492613228233545443290759422037715970152824036359520079918227586194755422461220418913486675045692291436063641159639343213900799627631423114840182134955848278626648720116129137543583048646023203951604889928827378367209099834037369670607147859920613594405115772237269610862632948187993827509003787320551683004686368524247632906194071199099763750367548932422317917494149159232839834330548985148134078332087290992163852108894134953284960905059372394676045799157753381866768528956832979251432771801770471402782001998436818585359098770451748966544863273163536232555351078447226791659436580305333602568712049064778526494420261612246439189189316970181612762388950192560124081204951550760812489786677436452712871333775660132094972104968137606418046578424023318321590590774897362668143954117024578049078123521429621211802874292326612206912549052537562384558830800966205396969382722761185820099779764342340091657875154656851313045908780393000117203831061855514741293242481902732713314870574648636167736095070218517100691804108446539808245260993789454513196249289020460607557331077378199955320876737276835620658126623333680385692396110007810636273799110016206068899069866886123337863791000895825768617249734325505343812751340535607752689287636229848045721965866731742549263888833609456614837101250586902138965192536126903866761617106500591534914490149818043108726671432734432129781115169340254486627371136887434634019028549422616741661415011077811321898479049603951312532952094542155229449264067527915329995385177488784651057442832274956186316109909105931291934642841938600724154450786353716555911861042138113448142891456505424620228032058757191174341583238030097330422363049040131499673280602793728167217922464418420492529690485316434947860150012839625007024027365464878020822766529844080919147950670554520100193023388897621272143609395745962888305250247475494400673593813088147770216927939529928343241431339755242144462734508403536517173768901447629921824667235862880094017055825947283923013484336815836697025662517920636093401788915553233302952912778586664173697494533317438821445872463986649314214390400843035571768016032067614536618753974560322746468266543782728548679621961291989361248384404020902272216219327441816708610467360680127636302658377508193402235287378422721785762138836365909748435234426845928782281393480719230037019381300452129745398263750210988797929293375408949426178826745414412953907660151038726939991780088128253723088609716121530272902296477436373020434107618213155679718452462482182596203454564477212821222448977384429436693716364741590221927009652179573388012767603599799979825280791121540569395363897327245203136810290018494798244729141101737945265716216274546802961581071283179068139712921430864219279595979059233795541269137862892884450247311271626834932668840978006705233774508925266232154905427978518431521628182814462683316019858848236187150280290909676967263700901589133553302602699003078477539617736015448604002841942642331791376096995340893652721928917234707814867676842802451510192469828233312511472029121872687468764558053167244580220131976049430601964015909630478621318093799082855578517432626805743702463484178045241625357863637549683330448569165366757399023926724528146823658946666714890980005148537228646550001647531689730631091183120809085162966789726719440207407771129072772924492302583139230786584068261839123476961505096336390022487943146930327847562163239463418658341797939402970501061485938141023708158846094059190635507800657347926624939983311146806539087224704823242393117455773073063271070391746100386098301304468567114862820377746900390604405397367295616588252487727739621499524550106320362270322961576345508652546628333584879785783938541922731695339618216363507493560506537041804262522158742534167278608224755926610643050285905595893329352551718636565022262555603501844900298713455000263532526826524251918607082850838375373020902587147535905745877723138115886411266159478679564756245285680210797263423748849950646072827948843770544045313541448377095611993820730949655933108457677206946528867790448224982252623138179201284743197512020011923908277636862936140848267118554929862953475424491472569932264278187820243313974266072859781132616593465008072455847540518211550406279539020394544373892144081707828058634253957587391800460780702418822194254957977000034690538210934731423327115499362014019942263665237531857985389496151041629458563679057438600594987589026408138371930911866474105812255871819080983862669140836459535775084149454489014904934111369077792144708971571389471233067281945278102038388173571334299738335949071416875000020907589218327571109559837202994224333928217236161578229004074111625725130330758210114236431900841288277910880160221558471590445982011671392049044377202371105693743071354307869030366318716010423127756756041988850185008955056575166219163512031529282284157434755545199209310323210368310905543180969927262923720499085564631594025070290398430043555585219543669709033702432169575900876086578163696531772770685613412333408718638514481314739153686482162337785808716281268826051958536088086102740015592887851790799198857925072344116518544751134696149405380230174385663675523144505680024737717199982567856468680331730172293132070262665680989682711082970184712888012616288704926655173200853648677516184044414688671992481624605581796859782030150795379348014145028000015722993801101266568855616994449332629714531479742500611782421168318391811329531037277517181986947083597119387206845355235215790039619474023247049870492350489945343691018806486163703487218842221664553306561596689044962295505219081361017976807244754080985760803255338035812400081443155470945550756796983942611515303825564337661458288809791433505702303073882131528045713861917472973288892740289256339166428936500895473726298495712517703075195326193569598653351888280096037067667682435993829325931918673633153961494788156917859592388485433875072656923093068146013854327430142798360074071470208005156932374753194191066261991824379574180436063349005422254001910814172838389147268742640522533900555625092078941771438259790036360362060313229155378656001403766892369962975228090311185097259279398269147227367462382574774796106442430737684645584500248578940110980578588549640153592303442070368776507763029990872534822559458674130726586065001375565043545365347164539390439845140046408199040761547582129376795894398234055700661965954078991227357508204913181143541274079180885914286961873466627370183800815232942214940506191467924864011446430463916942235788142727823576457457981363377553849661673023953291029084183985197926279144778976990618901674512473405140293185586914144945989173222512618018196204886938205828907169872092949035665272009294998889974806135354473859823013372147106978301333571022228793806466944192378438623414777700424893289576134673609923899686660953800509391852102264999576525428771072898318200296963107990373980448008811536004345251740751522704115119647401819212982761433578019085605378336129871625074281461624810436537541104181179353831582050957294691569674783885857531683084510455269725409995712477777980593558544825165390847452390911375139450898443843310450897480448316505643150843707428169933536608990445120461597437577959514323242826427311806290117907957356523231052183117321362487835822813862350253139155681684818894453230096826645096082136556581853926621148851503185682379817107795800307756243581570336307694916906346443623822310502397344126386191418821659645892821573754155622549973138743455685699501117860726039682529347298509632632536823929853318588786868190622648308581924020163791276866677110184208873467710848790000424374387335506314608761365343811520460807846225844473698998345137767336713272214107068848883569757561630294136026181296234814883672548170466396736514104476607012369098892541880995880581500424910737742748353288166870227088447067544219871959061178003204682316180491772086381845378069932961255093124789898402412535566496848833421651125125429720765280710723217471535288983370272623389030026964487596477842765308567963410103994264855966422532877716439872513780214111090567383879010973283361330472592694252632102807356913435457448151931932409105121363415606649274683264264887702275272021211670050687330339362657066094926501881549226698992029217211995968816529145913967235506279917584712880855763605576646060150135779105708936725549425608312808105329591471885087055716518296313634699570119795914169836988984033808937022741861763740460246384792088502597730411996825411880402749992186304134467729215393967721308295184395527159665869842822148726892875898871337550653297072104938148993525660058934693094725623028944787662755451451709100248029565008916915207902577498361762837527567345691036403674459216333335447937497252503063785169221776399109114448650840025134433744737969391730478192943591802903736228813388627657906331756515056630810391771038042814477979253080588243061488920515245206710540286717481184399163460544237178243971525191128024554232249951139543339325384283238903142412566979396208817212549636225431651522274031202958236128903564083370226723362950951689195492973724935723602137955228465433041076119349731932373324776219780499208189032401287281202268813829918140895717080705405065738941699695561036139995661246286775842347747137348350087741891571391671815809394861709621950842749318933216752338359290724583287219171618292132924101146999550390970015511177683441277403861183450427308684457957145894196130450587136550930845506077042709422434496787370068212640000406340274037201739264572734554088210646580063390843947471061959775741380104455220488880465059125342588991736452035505987810463278056643561215878568262650119674375784831441107346097310250772333073968422397001734061335953076584639043634887421354721263225836352134741643257245772793658025024771519313773991600750113029433280771085697098690620879617679067349275327697187050961914946138988531990303702709706982738537757989414999971810248662229667591142066595333518102495489085677516977144244950405380853489162252108561824816708445173754017334341262046736353222537903428159235560562856490876760314891980507874333040968159276894422560097093718209442638247896889444318455416605765270017456843240770965910052903815269572374234053651850036516351578139557587483410431941598739003489239653532750100781348868901379610334997542259850414347908804399598748930625272215720997911416346145146731624254411964520349097129705995211913077234344360344366470404619527939287381712892592514742822447833048365636347204785899545859799578791580231988849617291507648930193221952419439778051808407522595425496732534358891564970369523779992536681170434066297556308943528472102451328787581819438069290726361987271875114015218312639258057901961270116062236855330021595888261515003150443780197717171801040868894382605811513932948316476055563688678077910005238541590436816853160641512872143073338984836351245953634020824018470415501482139687248076297342610858622074429984825012620729895686592058789375266205606083310628904434803215867584702576825140243222247522971601323593771106435700015062865197110855041037038499752640578582140805342167445151162078395284623367416607133677436312942404017909752288464633017445154929338122691093922464871301398591157175234950984428083894451563023226044807270620825952028555415573523410186994532797237720877180968853993937423675458942070866452414696774974969110308116798908998780989101225112334778848376320554480939208510449890320698596482162892771847939687135796981628159989694305850349485466328028294635889992047907589290616818331465562002658675233060642687542615730408248142801220392180826007809239576622389911010223700500484073369491015323798969353022413237487295254197079805009225745932586954622441318891887896889427813521717332064692007733840320704115323385316892376157103106268698061295418897517750981370920731096449024627211317269517077020507310868836447771825896122585805350672304079541046423709372666750160861926343473835152896458779273210416574881374249828050370028741568395434566837236332083739908856175312571625087111232776021471414610139997584589228839338996283657600729182822727036359011591103208505194679560086438054769077673305255162816810033898291528677901594913099705288134554144792180787888797112289608947294935456637125435052384208586132649218528744731430599168094024659942866012067361419675424946018413832715779524827445432481396968763369517760695364717467275913695096002371885361413639550176628473719160019300203327912833842185638757817787522050422665733502029581455112326306437549153247277550583645065477537261453040653963418928932722498001030032139957311817425195056899403676583483210238113491901914631333030493333580921914930731503983852695804674273567402047920609063284931954092082585564397253061684489011307053139774452820593552532343148695710945103613187548571334692824600646754059221728627854137620024155186213949117885435049362535986253253512089278403480818348987372810587273223988253792454080532401990676404198023488171633913409430008421830529030255654227505334536683255970063722714928533008492287336728729125074076885500882932843534201256418756034162245958755386745896636310206145553938043158470315744791947080923919074734426429100117911311453501654857708443219787671986370837292086613554634608739299596526132435006841090190634476969170732343635052054030020420357735351137521948727676437851197742079654037236161274232220256781315725951079164126677870129691620351649868696296672030738648760111546995360125203138866320404973144384278210965261050116217110058106408193443635923750653202123219668032199181637986393901203500836264679194420014514538384420768292972939336589913232525195768634473310489340216352588056461679612630333829044358997066896338775385261809260768073928640090039031366375136629215229644664077193914173589648637425113788909334396275821279385621067595525473760429299711910689064381599336288350275106731941093140921872872071044642949472220815186287126348075024099944660307737170843559449752534155058776578171931355494136549085850123081412954414403031398137284183739706125124024908446653879020085781671030677790906000623428593692954298112149103991389907120702971259776000264381143377459469619924797986200795580978702620420121289165348531711488075790273412444383576075088423647402134565325642675517210704967607532518620973280873720114524990024626019736541694237210224043883757689337543651776477937778139162176911340095166303979991994834207143991379635015317217411928369244500867882103273409109574414477517477120260736059090620345099126753556348578121152501007961673628820693931728182287154499917920421384967817756969997670296674937460988516984745260442236575390493893346983127459932493659160641442353324764416969358471410897307035088386130894710547778547617215481912004314753978000438040692585164348214939487720486714951693110950082260383648625012891184874260101553454692579930975948506047026570766101062618293196856009406593567689515321799986224651657269290257394874193773582546634561172229786164818962807356169775601372848363110348215798267661086024988004838628079714099790010447199138547629657865324165305128056747711429591518894684689806492702097823185656622426152895651163441830560854629786112334540607752147596414079928771864306168552856799851830946741257097434251066312285283595459129778152174360002205385931819732711780986212016502055585690967366874650511805356131085599983877621091783710087614704623463504854487586863761933859348482705346789571189172129207040897166095486789904363623111054250833424767377225933659687311603311972990737437884866275273198583017501647819116793272597495087291988248541295634311968800891912095666293160800647010411882807791725756780669229936650022829006788818709648360090745006587368640430863008085817603237654640263540026035328040543543964070982274636299437788764940489480099028743071548717650748900338621537606912083533750737339310481482558319067726741852086164510544041954830596866101352336668139808705738946912768715321784766801784187990080383383705706088928629592883524096941612628499941398913543768323285957499841898960390919945293227152926326391997807039773593484936709354919050835954961870616899662812115921043822819521758628335751648040361268233489263410421482280731068264034551206298005901806827881085815929472826740765284396738132177947398351126818269855837981413850885035902688437183267153078474296895355745711751319176089124724305105219153232062095406046283507357937746741856556313900102767768821331075625504425677079578952056433214831158582962824349712805276197711367563486986306813287795728918845244419112127712032259089312295193529510452970469748386761713490785966891717988876841302149725105195386436658624622282109464113694423441839957878919385296503473448822163030585789455585888757710099509492270921941081631772736614879807523168257234351496165166493899336986040198304192573508913484541890384784997492303249341292773973112264794245135404636572331519905231654151148638388711879641949549348055061665731134087472143600228846977873743484034005601598079043150377259009071798539316985803172656163518254908960014438422429377060794556198357784523068690026239995634466236483930916332527822360674271263921601139816046367730097758747231946215627743309286133453002495384909310744594757742160910486416371391063525066069538259176146042818334549631140307649089336566575177973040198062337305701767578623348793979440536904820772617229323621940065468683472747763507927819586278998369023998953977526156100831930805309935783497469924349317494771283192193605459583792548423718386080192507901545831766588566032048882995227360096862780112829620111491117601458367780721988157633883450105709258686666596132724113641927404904884965161456107040522272129427781138182517960131172964793657881895288149059293560548572501596689308440739877071243780332825736772177271928468840689433211348649007568995528862102146099684135194073829042791703260694071529842656476391945939528562542142652113186169663797638325144257519298600130499526966355204373933026073340588818403878847329437284298244444659423516827070301615259110061974189494992025795003267313869232332786917676291694444121474701695342648234908835003261905982603195515528703768609500144117701363170675002469385641777125459217865437031256124073603660566328110373321386523048407757534739492706794350700834098094590298001289627773891529379671128650402345113534784545207186978109434822538328908096111829723163183885212439507215349818215515700177968988402689803086607619939991486898601610346764142901517651271340941261263969801212184799327403959296444479737467056291382564450572655794367587998143739562212061489948020658866492801430042309928695503313228544818336582534006811035375414253944274474957163953218112325833499916907431991656010437192604142746111226114980711753561680273986449406433955063356027318307878927770883971964515012415932886572088990135905617071070871179819044075091350118382972731126443507032231905208527703482974821380777812671951819400068004472034975165781682062392019983153932251933700442758508380195422737303530464441349008848652320415558360676392455011463938418945435331242606322277821130932858174965059598524877539024399872280857215298246439326035658351005522411448066945508938438990101853821249208046504632457302707120713798782193514614725340582169524584943989877544993865091527982986509313536669883741003639711292509899623526857232876381293443813430068927798018195876625683736799563884634708566668694938040330073076999899054570723734845465778414091315220836818607392622322827175747822099862163942065921516980877791969625968901970687544513662996486902887474123558128701728549940602467394174709950714767707686041840356619898345866664513491969853642756998890441024978029633218412462185659620746764216467768472976536286067181399831962907253275563341172660183329186534980233242499394077736254553326997221898958635562968146805046410802642096724120745576787286270618347347351429622881836032626885492458338343319173861070103135121595906334814329449565256595480379507396945266417102215104989663964023831400198026056974702970763316225765573391014004807495727473448503540738521065217858040130396079199177552703351496545187095549949577901603337780872297044278366212896670195599870486396162109144561325769375906278016528847899326103567847849459965995521845162417654339680693160202217044079221389334060936195036316701399732158677467887435610249345423475534240899887830298817630497204859295960324104991985309851089498336362221180910920138144569173016221620727679956672871303801298867050756861705959982938708930867711999376598785770463957940335453131233441715368376179599615993913971858574119445336138131802512161664181322868298525090498448434865742295493318927885204445935412899046711731170546038210654919984761631989690888760263552446441214331733264476402848757956531810049869342290570958149757655864731698206950168073650564929938435686541713464649960562028286299368473998904956473720835635272369615673239673786359583012396439698637361106063340992696555270151251405614316484299372965941671855383744008131246365267145146227077514935004843399114215875644118179523153272253367014429124771147437203404943491150032984031812059068793109630269675048050414247538957767472347828014947900058704621959698801613627019033144091834394129286331769169807847952967381304605694373219370581148791555783066108715067503707831886654115800107059187491511942202326282250859760234039232747112018395691192591838664849846449674756731295596194793780598537027242677771368780648707044725330276618618508066638486264041852607575653033479159447474616048950972262261934550281851687289501336034812234210314869051804663965986382479423411310776132852425782561432389951033774631768106159081603822252197079820678592196580897255250701190760533477630632610382388756110340138284105344825911305389585744267640059455949283688862297368451378648736361960194241671902237270523547771949192785155655086728755483677469034540358411448919757317113768444116965745091677651901281299151113233900008444659683010603748227916949438107733003463238062353035693052786839736753982532972147627839148912462045839044538491513922951873859147138423913254118812784868948238159979368209504058152808352906224485250045625684986952343547116418100655681138621594656815711008358731970437778109245545504034112620470609630947668338362937611723887476459329083657126647846058217531736538460193942631490435184353170375748202815646116358015942582126626830958006859087921841030824613128863301996710511893283556325014022078009258682434491759922392282327814915164963007548256522954663794838084814553430413329787657123120293320554724664872446294877544383645314296122536918696224754370205426773966661148475644987013789366480016204881133818592660434359902110812556463073311073553475379767593242298371781905225869385969038941358703814122915910333257401212966285673245722402485293368885683921691919001843656027000257768331116204026849923199064748523301352616383540869108721765323426040380683378642543745619540029671217168160527028839865924972354803566642809390676760555468951686568999730393785445769112960573474313237537889790725413052795214869309006639117842539521969054533089089340390613516196570751894953225032851747209676160762377886705748478428578748496700192448069488994342676078507649120146268724073469909995794762949355727242215932320138160776897965119009314750408373281866072400764450602415312199440394989341280772720127442967315285506781571362535189625574605085444483988585224347265558459270179329735444327068812163962459656342513203953732705718409549958586854961484403734946163278442556794534175938559883536405421144921538222139440823935661276098962452039933356494910077202374966718468311288492083035123701705594322953873815647713245461786709072842852167159835028240575079908010382865897425026690642898892030470038112460528098189205382965254504923050497491556390704538460265967704394895433368781163286385194269847545961590302835264959033491470034361991311752972778921903607014043951295072659826022840098044867148849405104769088942717345941265846862024840933591030524754417625147055244511939553788313994910028206826053345528728515652014923270939997637546223890634313788722294771641461676662422818287815779647177693214771007008508665679717160226312143692462907713477086133743783785779577796798540235670497900114457480440751554016151489772244832975646265381378036821428307569081622224423551053779943706440153857740585036803814477762578963244920235779009860482193861747795039064543630982318789011188305761048425767924390990488780857530707421042840959923672853460714658775991275411286482716234343335208163043012021226595463792519551352012974760413920627668370055601067669433441235219565303460831170047025523737870967196437964833164489894274702052259606122672360662036006174342726588611598087162920843033043265419372534118255481677572400455440422030980331943648255494252672239860362484185382754272074373483453714979071136536990180168916301350458766871313099015632681196345190124674062833021186917406681766992658162046779662197475728485525031691454717240177632027254807758341206795430755147896018643014050767147620870191157136913251664040940838596399804524983276356425417539502204023915446305842191254766555702644000803869382328975167515892199938085483533413996227826406063575315530333690595243939932007199792573309305189488681565982981957590811162860753794490971964751460678072272482572777772248009701327222657898275859439488943175615876015914382455092631305014730056574959281864954150870097317648532089203327581494494074675871256840972571234398072251494239090558706460743151992334544743744801126237183879066032812509447589812945670025657387911762547905690337832341982622624225587033838745271332767432697544075662966602034094852049941446937573490486468732094236826536988352382633843555721247474578736208802482709088387781830819476544256451415232654327522829430858299561512007689261887406843236730740912934889360983768346621329398414354939590532871138445114912860832839936384701357393506696960986615302402616993819809575832204438961174328565847019745851674374432409936256909969347193253534946893696453876036367080259783443672779018578849462084554899326522299558996768342217752538695669022373748472233451773762321972519251130295326477776911907199223717930144665329976875753337070238894555011807444578397320086281443539572711354965600795808508687518163034108979374335307824919412553314530785085736662611508734708296734756159429247523737283885398915344591771486900477441532613926865547625408535496069616927255948196575922708788644030376040890870421363175289606602344772773986465648200019204283536911954815423906751232220215354333780963072445685240625304328781614127177714719176073893623561015445911805931374391517757118232373907149750182882090744038815266838087890184909953329134219794561101288648116496144963231698790837409472993663697120227562408943801770073304512978809791650876101367408653940177976508757370358182180645539634708013291140804455567749193124166938336941744417321431108838370941156827730920640302712855885847311512468122067689807843352137368140770150202037259740731053226676525246868753043105499814400020139002247405332629126400613942957573341111197469539195863534709559440691366609117867826003935622874243894893646954572644087057707445103766420833333767697229136321862264083847395021154640426506200994012144090989467221846588057448503094096766859261462498317686291262959182555577281262113370256041915144434468565564557593268474773778574881108674056881622396560669040448303143211528106553715750198715597610621782924772090072247445870675583052044179167206024949041144298793892648999872127321423410602756326564848223905189365130091739107099977158159213884290273617973659765543619870408320980482397310516067557431838332949199187863857272393934060515380981882703108213383136001300647651916527114045060501430345112116006403823064071848865328209757599593230549921118930619150745880440938264493029684242923433968415879175079548558039996876783893966358256682208816526703829228815122587812983654511712193588504407337968764766239976683174920038408064566293499270606362452833924857277481365594812751123264950714900069569312354245486442156858053351106840537299663974814943532022784357439171576133690453601538059071082227604148707823040291849131182527569562068150826378619643398542242026226068846906175091938295855248250546613055297400414611516752521617004607647168030216835994565748383026230768958301110990263001787374429886116310288079290147378752187191329520855954242155692053511822104426097771041635365310563959031507702723457519976473535834888138603331585307160306978893131662625232281646082452907658715763236176938897989086821958825176926361930494106078068070830276237567970447535500017438058208785329701510624961110841794521742296094685765396745846638181420227360941040684321011851095347542795300424485591996123222425560270162481340935596069490256090800068369020732270012884575777319452043421743442338529654406169106571690617068736495713181489171248417668217466159642374534040688666825323099908703113202566344795133307862624839919185759102346296917664002423211578561087736769720748868733354701743339262210590264693048407298861795526088839200801109209115668667710049136345849701131351882342729766939252549481663644470667796666271624946979646438011408087052003048570945906571222055993189389822040556244732512754950818690815583849375316658653984572206652557776121497365638964665324035207541131784334523001596526839317375055731471522455942403647952087032267494853099674371061238352019396564577266747892446274138823546107280902862514549452477399012652498720694103052700071533517763255217145513487764739509777766895518824345353013396773198302753078299106988768641584041737616519887311166839333380133314119023472352985870834623059123661471750294260924593384421624305126740489012391799784366066201758185164545956061128618658533983358070332983215454570941189229582612314125572407776010115148583465508830637463450797207302719005646494039687666940378658904894645914186989888009518310015881338512188248898468519804640124736154101880486451527369405604694878575914922105774447562534551075513769182857658809724667040487072822809770684137503334797114231182647279358633371584527167260461303683042391982672977127728872913532392890678405648423366744674867737494112865151947383295913867748987795516700553630009257056687959993704316630466042775964604279424023944645976556668776833107526957600543858582726106597622236680458640998381708701872464060628223528971189292997549614530631240819142683704633086552076265321252365320005430628672405173590703169544363041995493046122184950340767635922132529075397384297767298768430751246906337100723831793845960672541164335643317175218860800802800671125828922990575375322261753107240082303541996689787276745012228832827409482614499139144881647303168200112256050337198767765329058167370359101626225704245314282952503651307227541150366721902976847232228023710571568780671839539755612089603577163429361894099817000020021019920697885335456599919761934892015058980522328588846292050997582347220976359157842046727793304142477031651124829718112293226720789935240891354923688818463478119551306663736600006399801408185797422416411172104347936332112064032958284623399988989840051032877172449153595226412031367847208699787700752259259085710008077574408158354842094683524687974144568656853284102976314178631145085925407924700757169049303982712578395083107018663558493675149322776213065616066606698097434657639555681553985782340280537770786425305626369845732936428669682216370299925648507891347494966904263848734297958810103461936824497786511847081179144728954223890899533704847333425758168962825005812497410622820339638262619804654349020820607306621297140025764999521406192909706743376080291950342698573271854048075467336757995134630550823346334606451791962352171949290957066455824758694471093121741450521611882637611829204461598542313774803457640228109876560629098863849883510530343066705785575383494001603199784178955048608941883388931847896682096447824590807805532935103498061526684133757857296305028270415160991285240439365530577498876629535676053940809875997889364927276499940325700832550855804492849485980887493873003264953282939337958501206885019425501728498654095995889356721516672035762826443247163904805906094573270686099228317863872250503642554956911593691382400438776231501183488590531568481517037284342732122297648183818113761632905093417362096343093040313742669057536578318930189646183373562785860847672744276506858250947978937279705835014415399263177123856286784912498936267664975173346794035654153490090454172209154367818226797003537340449230056742196422657684554548716805374704222946050976069414600597937197515945945052822926203132082512611484249510655984521164849773581752993393652808474440045594361933284860257771609912079161725395051989099185969521130141131015384892012341262853829532174440294302155265511761685070192313668094102356272708788288393431568785306318607971459392657113479244866255516855575500872406440393636800901119157238894743650844215560645568479212592374401036695251011684877387637829161527802760990196112591096374188710388062983364463010941634702275074173460576703193123419800913731784700463981838595583452099995684481557511967974912148464305862070499486341024300087062745737222116633922681769287332530662351932892648146484828196273475893904569648226281361678226736253581659088139393867370031298368528012906341143140211947015831094143897173993535168988455002745078219468305558493713648218602958534857464535743159121160826030622030674529782388953155301607535177259008682522072360731703271143772033453762952289850681235037882998877376815931733445418848107171227839046750769225233584149408919980519170770528653363918294070159807639941715134580643641005963299222138024245791889375735837612280951288877243534459048269002185292363887205183745123518984140284575676380284653430630354046470200930609188005953526151761904892231280842211863457237452550665721916607241693464779834960273506928954093543229362786816147245831151750999360465416950386987172626142154987915522811074005738568236595425069172699299989457569903259120566293407883873244568062949696963075001340358302775166866902042071196573255040979904819747646436890146227425059746356611361953565531162388716490231404559427105000162412976315356667031805846956543868544548659073583908780409332601928032366312936521221279445629354687206702808425440168486139698346220136354110646989505379277541615234051218800859354233349869941289705854319123152478883749177698807488402867519817291513253876007131383045677106450134354250952996163669616774196575146794919264715615993567958525175786096098176300568736090375195743202738874082090204278162830413660345932339256455746391613258840437210645910172836758442565440096430364246746483223593721522553334535844286036848326891407792245907663447143640875663220433027760122757001655506370497119980430814236158379984337398078056498221601472677241893081363028546493549950271667249413450942481472070871177386773869822880421401047444213277785821177805399511819776805638512637756259908268277710096270695381908264778152726828428288583257605294414826303990263400945040253921839080288331305876821818690950969090536609806374141909598685334335876309843585180668043243294171414018759323218294762222723645203756988108010709723115528874121862920310552718690751913583750119595026280061562144518935982132979254459670330032518499134699480142058748114576906979185090800406675477936786508453894396401066507787559154209559967400412564952326876945177591000963468651918503310840753932175978896441634712737470629986452439285367844509349616783836530967125451864955747113642349784584724706230749281944145290592430419321497279724322713235472845815184650575896033688518483721082798939828859819970171130302897220292686160980342449889592876268789058325574724783499886472759454142205526821263861998079271546026359915868405620162401843871945594113621118634329911329931672592936373637232321136414655360173503388950345112890006560291601946709589874829298337559866389411496151869515553128412535679060692813646559727402841747195632101286172360331875651401144476721572978264641919414823882147379317826269823751895876183841115979138689529867104440554206093499834242096015080033001137330056682621334055444479782677715930215412525406258405816475095541566375126737895638054831413154813825398615596182467481991911331920950344715570686221919878623193876740220270439345935704243448904237723496680262913820939626831468001710325503762836246813915337788210318211143453121519057570976092725050623210075113961899756471571744212804628294521159473486261853444567872792387199498965187073583762595906903097475959589998814867494729176756309651270387670464773088612663320555553771715563024301857249026468166718697867066605885676838436929873329986626625353975026880531171221293942239218507981749268042776616486723417366594097215497699048303958185599600708614349041034862113978956371387408320063659524919714631222556968267828284785717708380148327229631372343361646032588045218153686432483043301253206616883675648650278520309588166896139928804596845456620826433204777743544231038510904316254703109527601195812550023575225288422129432240010398894496385720441686498131959416396420543007625959030733792597205796665000436487104974204063129430835853677223582015389355846957192274680107810190831876687876201957764717980307121674995677829942316050774229916567479266058595754256813967129756423738867569002028423598617631405476682629679653542803554458983300750175240484063598544634218485809721766639709659336770602205509394259658229798863388233253560160232367671781670856269078757275077660900183929999129461013674346848948099497217086424725763558500344564825255774464950602774148399968480261048699531257334599196796849462334041880946564866456323555231071887439983022296271386598369443713611093439449820378855966374149000648839369090705301756901019053747583120860552986009622719171749778276077774090772239194524279492172091782411356822653942840445389875826296627108015888669363533683770755733685265201073371214679896370675795547831327536508257169880241180305701949441056886717425922738791907411955491132145304159462330813032830856698239489669253704676334800361208645842674748209479933292105669618244434618993038495341520774423740195766339211895879330696506973627569872993209775251678666186028334295724099957614113849644206443995300051096279704726194371855804863262655873698921876769900988800759909990775686755428331537639116359212536452049777816716734486340414217398455163290629014290919858544883751742012648193569326354725107425338170210115370633545159651038312199554845691322534103970564413726759753308601686514202737259037762139146538935772034160078605863338866562378480207890884572619721620347710472459429690846679383731329577447081292648819294891749388720372366570825355190009038589632466224830697937535584942239284578548414205004722138545695068385345996392177742306006147992392584343842416377500698166301294426255606538635247809274724955142927386505996098182617354198895522180368173727270404404797624691194799006183005125705843325183499072573828407307339524064904279807040664090110190679513397627532260105226928499080434127666703785395978867538667076508062844048783223888869765886134711665758610607803158485379220585554221985793725275075046909548645908847030646920462697258952059458486111315508985649290983966299233642749222382693906235363654792256633609592955231337577696717776957643085432636369699932013099736375290086307534099481107372293243642229342363331409778725426431643302031059403523189584819128993949972749779315618058212342080100106989577756221746615861859350274848243226012531183851231773486492203925560241490198642106184809870746638404099407249255773670916597804507522447656753456990891749518930121726034799381924339743979489473303137659855879106310352559104506498160157976488252158589993276612973536303541502951912857764358702156356274819748070948438247614176851140189086366716862430582479910337825009119643683856210847578889998454556300414183762585993393411750164696804126534456073637162214981625750893975695483581788875414381320717670397287813377365335967891646642524874978517296454822127137842218866590700066116904217438919106454501221448755935648159502748049737795163662086228892411407411884778147727197119766904184749552671660192513310268470673155105453202697851343147843031826873715795905356772205834671783343566932998320438813564335835370503469882505452998754248392602640025595540216398432157119428138651231570517622413719085055968385133740962202223321916533291797363841576122807252020335559029967046308460290530643534078810342421990131032250505840084191178585810718316543140530629230700524744979927186487360894388336851961616769619960287463457564164242745210919386001343079598755419915451309631846944130974225541743468393050559222103297150961788087705625832708473141004725368019020805716431627944319761922969884919709921312688063198705270220051142999659686173444186124761761487252765402262975995280437716778193011662154065834035557869679053053302629066039842098151324420704788470256485029189899143611268423754792049153230636185533255358397960820101751613128620809430830241609442277907205904494070143422626790646494911537244711009591431692306430658126408441991427374046392083008829146627184046913333273734046726881009901090885606023310685233034717755065322358098922412843145104657130936603523401175903746740327273088994190912919928871998952618137560499689226258343971031633832677900623847668762537914521036409607470448145128433210367225209875541894879494459882245333271488272119468797001046339151852909048152337546447351876241990873295736154632337521260606772751566652145972042857119810357769434348970259767428746804025084102102484277546620387257463348475121238550745499722650632756345976326977612005302770996821627694734788891892528007143290137664503919600871454171648737260905401130897909907340944251618241820519708096246290431102550545296629848239316754492654194451796514108015752915564884656602981424479389337871427034946683852822023044609149418089747483528747678292726385322480234571174961461257492162899259516752363290188030783348564412595443784628550292726203617337113789320014353085156496658712552010545083492059773247874847321801864683165060451890480180447687923674781212262699985816675547376451742701700243626638798059962565728626058963705712139229072071644751345074981502901425899847814836642811379655885689190059975473631441414909484499114780784654984625753294849348915442582750976712710711423341938998685268162565932133772582417165286857217363143446078733877376025610362528351935375508865635935955901520464680078300578628344319150749339484795660930676588021500917703891048591796750905346903461770310131269291015529155054280176928641507670804825244217555019690207611618263642726181815961948299986097789610266670876464900014348708418744789872368755523324088253016677425272155076430707939122885763326466550413890969437866809584451498766274210518056040944373148880817281619062794048592747618249989542627732454189147199076440350875759167999588773105942742978189891341033834314943878504414024567604759172879660495217668530219827561534059482237586846764870999925075574546117439306860403476512031433861618467412321006164021407312695328483369514852219279498109937106388418554328774705256172989089677943820296431770880311393830780395938348748746592930253538709701733729866743179370648866294070694096333613936482169270227057648059235547080855193439851773496645178633817303102937387903007862318916075316057513494790571131640916985017080675770661219779409282608307623630545661862971457530526818342251552923124226545375654525665189444362191758260045014123315620334491127569362910428039728102787684310193248410612922138177109673002112105785526610461260382501929681550403768442677341145382428807061959643386341033503725435158936535114208877831287661694627938513371448904150125085876266350297281772093191631600634259642358375035160189806820848985049349021648829302304936951594696689727592139401043852153323572904482088877690887212745469560954072990639347180163765728403965677024325602133402992448997763939186862506362744802983800247913785061828269997108763391074523362156614484419793935063703921250594883832695820278772535737815483201274534447387262120799130663935969288507863187498283647962280027957077961990601472773847829428546122204036522191827269423325073159606383648851877259612581243466998407071018726701666119998031836012368446479125052696144267811857214321242496307374201152211369498696977117878562587412813063155900094357680642833146296559026245778990296802542267830820960896920044664465814916293545672297826859590704502776822423807285439603204131432301334148525995740240332093658771071516452782838203756221192126054219075154054117313581469669505017883801592317537720921105858052914941327603207682426036563961161404908098872016917139293488182514023333039538942628565993287065404137559057759165071278722564908889533815041689311239744786391820760496083514958650599334864482510154975129467322295375660926162628337196757429862005988237048454776974254139321383812594520480995761113919745105961403969365766023734502655126247243179986656386648202225718223934012000947608948058933393223566397014324797389485173317679540918966388844905983256966240059618379307478382911275493217553014977043530403830358132244714749452665102633509829231671670823015726833004729199426774544544720545650517959579646226003843520170044793605542903423595790312425517595997114962972109868530783017889241605681907667274830421050047801467138004734565651188191436908950389749379939640486890616294953224472531855388222221364806352243772982693940608721242672205617492917367094052810678669270741157976489829060883805015616752547763918802771606970629013532760189458253653489405074540258858692281007954802907822890894081754343082084045708019313212751294646695219189774725780735227293631532631965202151389689439121174506130404828827578233126894758166578328775572259298608621941104772654021365953795285086955507308647186986619173302625039067045505132767382663854824130470875921208383904084400293527287350199360473060165388494435487515176215276127215509838524679247096330030497418687941050583806866910338346767003458612474464311193861115245639786377166878321927962482601494170453394182352257884647973493320451386305730015235738967579125641215455269706667297212239681020884752944700068955782101275579550287711650685553847263660389783989095609106851035826473814574277237407824757823933000476716772507969692620059401103511985645305445504967229848615341056283222620896230382844325382523138605409635295762473120644909279947057463735832641512312919736806058111087237527448511986818129498153402880113097314519918517575640465175896013772616947763863258182323775597836657598485505916498353758276554338026319442527285917828031294780230804250202273112095123394068697263858325110837393807265477833238896412733009235745451986027838331474748695641015174493381655739959548484680559494120607749228864510830088706785022455451390230479075185399262417712914254815195014681290778949946073631587826328291855220694890113965954242196048650568562871725502471386023881438258386080538636986092446014591596259638606074337423568547344915320532854723179031915050834685021463879670921092784571604756391214603256967234298220905680718115198859159202507683430996827600248225786734720524994460699096981348254001267256001337256626185949587864672861733418901530698544019324053592243218264474323563690726483546484985378844744716322207036774924673388640163441686313328180036435521521122721827325620498936356611056705729924485767818803206771310056033530992232325533547839597776474199958740097045336166157109379870688070611934214884738610772479135372945564240583880820031449021231857889290573905878410377584064779905144454676053662580048293281578582519938471208444181206725807000839389477246987121462624203619930390166923617575195176414414723854236072885183651076193472456943522283630159683727020760606919105317984898421658164484490480094378171086203231937838291806305218851100595642073625301072035456334858882139891705026867854588219037519034971897057574082066308958926248259893369399312474910869444874847630589789638477904408455906914861860756326018585559599167388832632633024849381399752284412324605998643740802248406529443248435039282089872882324483700191655337472383135119767288624148309601915985552985685162669827108935263382260253212506568844829925301126986204710471301311432155510595975539409795758331408506562532069944174079386731828969921941206652466555519949048120959339862302970024431124026078447101950162478463799811213963444379509582498188085203316201823918778956404786783295598779254832638811966854636487043454811655533311836453859140546012592898890804095024102540781196507589174726812480153408628633796723418582662052702893792707016487330427570397781580909029309199092683545512554038589620602944780451743445035689811294119590743301809297129804638881291621637101545985981562352914070063921225922245311136015322213857222659497296763997917555733017876595767571769801509094702393591901745761845280105602883801921941044585579834611097051673328207458732491732562772795233466689363510041407229748921504159088680397642637317080256368557925016650575134015767216530238578467434525641906503272394245404669642494424365701686495434862994102806016873165157217828310050823439772751415819786979488888636541630764835746508556674926395328990229814996242910853300050515554789073735800592844154931064236344055579782682045657842577224970407562013393321167469581152410509403245882251550251656455382058093394606379549898677016538223424600405462476791409722403663535867797004282592019756058114424440411039309697418073450162057441665608556445195114021798761463593646975675848400551344498400337203747699855775090784096645015428854658301793848526448957972555409811566152977868215956957973766756960115866881766196629954729339882902474413079963338933341770665503383891557111905751510786253540146464678314629049550919098452867451134089442490561665993719309095228802581933437086288497603688414034906311879241907090754712051051577217495524554349146520468858597385240366427087827214946938462237664516237470677576622482155455317158376386746350925874257191383661311269906215233578975014207577205122137858188855795379732478339075381314380704376444048332820296988925520894750467741639853861158889442743950908035683005227647842015180282747936176816910809205724333304784693932321126792687396981884491136716053411559513432756813315727288682114427419317446271511907817545907504245673347430975965138195065791273613519785557333784600681582710621759987319031712647021309024541213597521953435018213156620865466004276399060472169516562514129934656655405461395636004672320679502434765575476136037172663211099346764031233234485258171832196401087135063587379129654206349650849428819638631288076198257052012909403006263252139512152291461037836076060011084307435778697828524880964952802267416885933725835422112184229769904821983736892454223082432559926273476180866933603062848798541359811140383869914977337016600072449051420011134499316081891665818555323203317540117365215809488166261932759583777837086675438678545977335161162861241581451555023228164282506212601624139550075965314853208386882854349108668188776836448042280944761561078640040016804991717306839952889604372610252615516308252126656604384885866128876836788722217857706981080689922008352747504668223240974309880397384424045927102618984502624962133972213106281319426060088865127659608380879791693799733063610117912156120659429223512628825664841551280321667514756248192139134471225366161977643749438946533685510057415218630446570363849561091748800821180904838535713462723968237613376060661545793975388862124847790389004599961154892929723951499756146873060567517117477855492486054367985377673807244080161745170795629497805329228244770655114194937733992995204009190447507956502598850472229026408452257328614475349496208666034968642264210118725882600539374051040155911563092405118906787175759012158276417858454366861031417665031461259254761690999742773401020642614638037248265384086956018580632335036462467904330712312182968614503119882339203598957634295475273523332836631995793173096156879660186859911340543999621995190624477477995630211277083301293888805472242154402315025160745703031937431260584169348220830076000545691585186652510707802529149055660448017232434672287021957184372940105919302587794957346841374593981397435713982957766891175493379211492174272464168792267043452063928408057018137261664843158985049666732768713605826972662123837959726013776292381278127333754724825743033129197364108092030399877455517091642419196927265556346964333691487488244445658187476451085283513841289129564141012748722539341626578062081753869707604969405157747379977661833657163929203722258236795646006447110771109795398401493159394982837824754949893617902589367043841106010294680697974675992206684152670733362538295659083425748184296370105616992104325352569110241692724887018683867234744916729459441965057699414960957201949561074834232318899433075686400583741667762345446818087513896713190042877417668397871218747282926482193054586127425300367608846365613952684723398415212954044500945961522106088625491752785714989563589629921162781705165489843189999399277686054962830834999179142926974529901204574526931652961109601426260131047606416971903732885776767744739282296126066429678575560122402526498367697968224139330058607181676272496589543874420249479830111801987506197512153241613713427247604168239341980437199976371605946470953411733079217539425926227411586510261277363168192804431844379235041757387819680289158955053252529390048342889635685122025740844101653674014305319916248281180848434082389836428121272501416768206763355445633328946086023296899700590216849479540325051784163716102556598320016155945175752256950698123156927998405288228860732663608626688509626179737503188807408554880588373481398079904014147243566947283295285235599870950362777292107254950575374744279917827999357902146223773018950591174022964777961688085403572594636793751888885142675985404450315797251387417596170946864284436834824312949870521299953129106620212690697472496584529401542377411709432856072039845672498327708117670377008328625117795729149013339436946064642915809387687597740103028797272359712564349165526482383513654468224526046763605764981020717250075589579882287786613895568334595895439524887676437490686424973332322899217741209592612942246013173088785694045882185420262441472030431712454322431407660429684465465285506133545100750032086864921995382951716755767701741394805879576755902130494791677045378297853904712719293030632413221573871872269069643805533295302882232882368167207939650456028830757208947900991275680466167460218701766741130259578728777265992906200641157593169034168288161030788650316101816326393683276095064611192590635449031879570070646492442019121660958541791437524368695111108627375567195180110447961385662686048539517852591999003447099004611332718119514792173106895102694069859633539454103580801124348813784083881982156908940234657979443737922119743213052510678770038427213940597019474321319381299150933460480017197168961266152850498749145894699453224486849071701836236175905417370004916995452980255501163016362004989936882881971866332420137370907693511516700379261718318675710395496646465007897601065641468423157421567196310611408518138813120331413899499518741203724389649711515317448825139806905389800336107331389307092399635086148683222000918876350117563110411430250387469558294476085340042235065230418905773705176728064358727692703310890956922751752945716045143719465313274787914224048302975881747931196499262271891458741679081325216085870988845854736815614639150182147067183112478154895430720856339601820285825036351180910469690854525193803649656156515219474114165716555590452605004462029625983421584838096261834292843881857846339284712491683191505976835546873566347251020861081203339412765189841071790250715490919259544447658749638568658446600055989265795174423914412771168132467788020931294365316060667868212917609605915697466823950025153750692950881038273204082712014884743452675941953781195888277342020540699374363762827432994445630290521794723487462883295227853590248438180803195693362876889417781233438813254259310405689865133209608896257488651483077128239003532317294898562912592523005327153416193509144354557321186273877612804905829434634912634065005476408688386626022249373761955297059492082588182515610930949011526907693657125572236077636184834676154765359006143027204374550334039713332105208697215034573611187891172597034115663133495250230912918096515728577587916506464860830397345801580879577656757552068093183667635270031693604608298360549082075526963871857180372136630098490723283806240528443312952137564220069280735225303548068235159202400627919193372882731145844821323726216812416931521897881126103148143696520934302610553437811964659498680706910073616775497728710230144330305460039436346524488204476928560010366997619696861256282956774085062395500954842807510208550388785366917879018522114541283609934110541995551392631229050281920115081983610674913164887762405197745732368270188970865265523493961665298214977191833300418263999823736166748766181269233268022104603700399973413109006761395154501529491492147787620303756943657840208958483711164922403178177538811964890725504668348524252797063282849153549362673904403943501062138908773043460335930637716652563252404617934480562342078559738544757861166526968376760449235600329418761789914058413250873474971648260497829445053902532524725553046183082541261029294726148474212010907762887447906996154606470408076598213400662862586233250060122034320123354362343317546145142546409761034953369159393504735017646729364822867975126769680869780156703969744706905717683213435790933357418480178606973075521341615694379718970603414245475653277745038913126602354007748168965636430799781289477690058646874325943247711451420768977789697070497657295442404128098973282685280968430870313269473305758932362984364644875581731145051655295362175116031099827505873505000323849907428476430267037832023529050119363704061891838533763354460341225423835409136219272538068356423517439829528717440520167474459794466782542489861092376760258819905415570990943726553696933667126554185625025604761354691127871626697989217604915590937051441414689116846799934834118108851494344024145025401844432820422318798177173001997108534676781459094656642908757177659116079674078672922897345159361158906795037242789515250581072774491264522334544308323443870742947814603765183272504976453889834874092566595166828862628721339992958567231226565346825957249481377723871090978893925905216203918279299460757256233805742645027469565405738638816583155497470512056334152683413409452637927643473279519156932069707038220375048810193433312763870348431103863643225205509877173218554753259276600310515676946557583321738894551341049954975213963312202360969518389771663722622583054088989005279418464179789745178462012954102071838424375021633418171495777618306998873365240834605615980709825226201603614052072863997794790296744409747262835210726656289782110163020143772199949805485926653590943999005387380350508317219518413854518749849981677826549646278465827350926451565519998434391129405957689693243704388745633488114521499799377913000507804275249255027459409261929512501813416984641130398387670500842843477080717953339820037370833384937672223710077604895438457107144989032596958527761463380375026278824441217967603790768172754673865732445264181278394115064881943223654368168027196296490713453401640106152753837992213259478789551693019061758976667146885652607197655562285044905377620654701239412282125779286822444497542918388593478998820760110872939568475663034855786033681884675470586559588898943501199653428120495329837018225575125793869469936631523207068980943881679598311674981562068938939465464447869549686950621269662200716560732960193963221982824056170233416451763128746010616217771138976213542855465698643144383090151600328561196891868699226448829791433213930127493023532385282506535803343938598723974100055230931843394588249978452200810148409057585845750250471949344238364171980746987102999170469059648139341440635284880226714999942160806200690661343595381226875596628162505896071538643546759040639448543639087092441372726499065636345091548831089219577217701967166337377373255141276594948147392831650872278542256711619560667585913397598666635267900166694767531978208785318532423427285279640329301727219008029173135816127277811987242389904811518758715396285423948516825634931945641645352004380667922412527748055097668580171778458796412365838012056646226345086282894108450586344301591507470585278613139655983278020603517085780188058334386904129172153068726138274256634914294546603169808034597621979578715992606555728883916634392659895922443609844192075162745181638765605251293534308505151549903217406673798087975908413290240607051890265463341389343083864172162235654053234212789821395277822492859954698923377816336055936443408356913154888094796564143551789468548957939106768701867341779629842007743795007020428287765994244935416406985584937169968350511800138821477770789573837285954307967584788367860429616120370524019899549319167341581095797995032836516079519601754926219424088110040532957924324166899307413597148754093383105805306637288797759221087048983011339668949279057697827825754450037246418444642345723310729839354317490351866035158914372468853758314342452098451225009730180922354825189297867069679182945700816686084333625102474492573816415502617520486167744298103974978267159718361762994429209349741262192805031576284060404753002676313239632213920511054328083690862385544410366545962936927630059020912795707316470753341411989633437717647279821108549917851111075438394188861097550548347521416434000766129878399225712492676074935595979770433806669830333697705394104830824305451974524682503215877492765421426905042642065587279052301757816517585023955315117677919844770276786045990178100412041479905756274558525819952101582283162742007589497053115662487466417344368896151987522013591688621162875131633444023558775237905681035358914699831483038910871655478026786068556507692248631145341549626964327298596213975061268220459995693685912282712846676703096578597265204251952847057837363996899450793133114309867470495673067615449289688783089972913209319295573480190107660210922413445307391474834521899945752644942284907959697354939219516244808706335570896125275524865591701347092353016968907867557286774286573596041377623966143162268168410662695186671924758321038002540137526067690300870633401955376652297866008999484787380583195162372886746776427451313709482496136213653168162198771321580027970663291408544949803268515463248381003894159157278572643588706249130097842156757572203400734965442777462722492330763425956634581640385039339778546944592543071507571017179841096889204808529208925681030788441203797472104196368280029450584380579804092563758008944729242138124589260080946902540617074974171653593551981599103024491993745990777652540125519543889505016052503447102430465234018194820549775917658076361691136607039852654539385223399797476297604580698971429913611227541177278168408637115602184268185004308067457931632682473585187205001224268065833918366978524252574908057374163215684233547955070482073261215515823934895254024521079390219181608611036898573987585998670931678496934150902038885155816143907218512680429123064550737077604898481847355043233805740577699810487483964532218293466423626535903379202024302309221686117736337437093320881733843277797388094050554928789414743299612197216293691210499395242349512964630722104742266903354162782419396897168702726891095476845178858518254405580675597688447047470153733304761158105500582143063019504219870053468300231396725928244214165314038820549381364592251840840070296624555014044278618601994048771378348169958274430406664609014919895535402864903863331657518428453271553720380967090067974455052613781300987898952848943199147526638100410864814202260167743514395351024127318677417709670646196618633743992167800761353635222231983922260764119156340030237424473837207353549105635946483646850987118177681960765352753082587136647671418593619262469577478915816969094875979967894064075681024845864025429168522624884136095185905803688861246807358349374337430157584972843179284453980490681782281317518980905980916707363130770352438077223627258221032857124212723643123558392226352950873999473382422400230272089564526900898024122449879356247591922025497316683108833563162054487178035995261836845134817690841451787608641236852269087786532568951735064131857526851748907453201841472449588046060508270767953009628812458028715133233824020677361461448533198453206759060211284751046712553285009592464789013218643701806946983567388464005104546054968826687908804257001343295737624606798510861169572618697615135765048680496109316501170298744200069948346528328184838155764618547333008580221581712129114817231203590471469889567247714747596171435813196307454281478413249842168497281475501431028054248141593753841007490134957006068721065410917278955551020966727733029688360310096600715623646059055889630389534193520964311791650943096604340823702836497310265216643666995157164277525169078262992471718277049072030166146856986343024367514259021369439408093853953924912700376259804361912601224660791701734512076530077182464684404207715739708457926452808252622733123497229897578621388394132908391774111125302517397406920174499690270070956003835669318397496885565258577404058293243559800626538561294845188715275447702658552354659369899243847910465200545699510063979474272618529021635262141359925844426108407039217040690324485240710533599278757510453632044325021446680087762898041590732870046491255623870102633566827341541157549852801104517787680420215797290315628267976784484411915748205911859995667661797901447444150372442322600117069072017538333219612151387316977900687222513544976815817970115621981225569679307225056104733610938003463313430895185403138700835144400601013869201064331517871458493668912508834948059025898394854840185866100925251952030395573392662873109995746917721902322227232436893784342929628740874852787660511738170607789314522164419970887995911489039889899382552802844369462991092817052781590416013730578636722484481510277515325845590260349386504753866092368729915819221504826922668856360461872067414950474816988605773604150461559073557646394228614576987510379645299985522922643867072946431723561915471347817860091888672974871926589638687243182013208370616041726806509884927531100032344291465145003148475899519800840129975655704744924236308315676055661591879716498796609083551827393918570511925561476242290492628246685665442160960618227392090431975044320394472435994688257370527128974407833338295279176069429479458753918724568390918111077486978359963181786862657874830273846795438647512536972173450366717223595381887388654682544612789602192597721849094739109845933117281063239109537060180728018272493341128343469246642457171745829906434640206080377801910030113028137830777156955566985823526926007407887863014284690665480976880486684186002634680108316777109797865736332323199219526058624051830666654423891197065480413351123235811100066782549783714819232073796668248422313849711661237513320327206975683188232142209027219040812938163979053712946570432363295609758461532514386578036482557265437487947132236228833081988077778405501870763282604314284941981775219963365282267219914025770219597837615788173395731375027392954905039404706903290007115841274252098909036974732797974559769135977630375232872378972285081531168561867400598307653920427806627014825967879987524185356604076752422823844256066929939547859915757524921651557272063698344419196337079650844456451503265319202023190784465386315560267382387303063124888039926545848958018408156583877498998207737722344649458163460545751559413241413670795590802386999956354791286888962407139206020529736412420760711609566432795067209649675867763951578913424079876039364701486426762059997702800038688635826942148480731000049524654523606360440916678401534871169833793714906988987788707981981718947969770706695632458135218539189776187291944754228371825383137374545014983043252508743082863983273067585090229418106279912676409716664153991995744655093226406342523357847333898512530282824721058737454722661010684283648894078609238215844874361558469761311949818935365370749950463616601395565159531663539834962922412050296829852733236055445189075853554309110160659436986751795673876813281907305911409711047568023582521537854147745977134680517897657138638548799933263208853206057839147056132847951812127600124864554155964282516617260287057761450143242309416148563012422899233066475388161494813958754637918445677408108127778978829734931361486267400422969755554916723462031231835561922599936406486008826689724476733946000182512451247302337575531599717857144322098736241765680538183830172618239883301513617423450780269627061588287605409154483461234635433896609762170161165800408873251157758247572951899502366901876721430345594517938907744643020574923132257940671387970137536084101165569292805894770413887361072756259826729298673881737781063597378868747478634965792231255141297097064713385388169764265416885807700645869470942686333707154552900353390129735596395749617897813018422546922106137289629311728391015244721854141722090913275864340008250593533978963007180184805026172582117552230805560368721909437547573142153133195666453097101714369209234577737141276858954178892004208435649086027181248785229414723881959325704975483466302997516238700309130307878618985114226517873396195731144791287558989774405167283131103385038430109427838747895702656588696597774210468122865963419478604426294666148521889174302568393950740335451276661086285540748433148010358323571505452354820263129804228559574950822918092790456736444617355521874811792645955848512435723623274782647183573835493872400114209504796514588128874661402394392100292705124761780704294149159138157216491554178830004208886279973470090733667862763525478183672386856353636091704982034390235866058165968755365549987675906615275843973564024249414375696992578628949587603512092902157668428838713305294953037127613410824692785128975277392433382573090032387633364267253907127653925245027881564478518512384122642656941436517219815711749217688118498736056052435339857178033825358099018076867607939758553848099818302525341833524016135434644797929223268570108907979955000568789885589427454907692161552646307960109536638841569036361876857358724510633949824787057144967286050996683065655085782424638017304414976105616221861046519012580064460220222101760679918881934383856502855242364554533035128781062009793514876542641244196301160294913565028861257236522149154092367280651843611105799435688584834521794945810269990848115206671174849256397756997367792090448810021792555969887805517132407569259071942917137248137819584595265861728712229981593455300218140198923290369443309119233056641733183841688465587575383155468214625175327919576394503059752290969190265843915011301242557453030346680875346588475643764625421462514054225730825413179149643842882349023446278730229406943011284684537655412517004426372227396248702123910491779160535717163669129886162773365955169361889007469545964653497080443037404236279269819393102466511983845649003860020697675586480982306534062426016318051997508116733370751574856147471863538150795305834536499347940272214394228065124637360767483885831378649653634902735355298927754569154409063711185168417889319301300657542462782275235384587832903606067703488036139847500151440796242867488015470687975036258788354098619566799975664074486937357216713562326414655112593778362880450124635353998406280209051210905083491830812456511707365009982245351000581726197000176793358407355959688693325834619412926236141263048325638235917767293884132935470640760076655522742322117889249209648284325018615142498800165129326162713399055985480416903177359226107608860041716690439058105412921173514672331682640408737126928408614339721870540277164610130624196427780950751781051862222643307917289532504324508689202429095871863574324893361214165062425379395798860957393282675509368769260615632541855400201061594240726115536235709169077348932350903203548602084542928644303852912417117408337441986592689768135220125195897557496448683877873969290871118391253562831904102878123671832809698770058694963820254138362073626126045262552713056085804762639929019579554904494663527747247362511476331690973930288487353863701541182327335893876032980465124043710664540047436419489669954597575900623701557203396005735177677362329863006236009505752890425544914229407219334835388918396363228735135153916143651096774759242760342284564034261312830337923205819312927238253219067506156684213192393974475633096944687173579024110571127888116619257706463631779212995319664519450791309693307865791837882259999183540956583695435263615615539439735955942007159792360088518091547491184489919756615373847058573720485607500096311405893259065679030597440569755110407600854997391946919136161871308008241544530290085018127347270477534032508312007824023909241496958822575893612759254632717978226039020525940158796472277284772439898633048259312481068543122849467679419195027368751679653208229914647401835943801491884271191243622460827317223087478740293091778841374699738783036945721826592330070554405754524810102429120134792344124416964759291032373292314323287833371535780655484513462401455015740967848842340515356436780783876696522357928730101258559844104210035305681789383947624806924006175282538512662025988364217956843377180035132817381840239320273020525837917032171670447819441329597181523441460671214788659298831279454753639650823756034707158078037459091756352939999781956954398539159696309334035243469694673969707296944525338528973073603808042042645855684152367389739515994999551123316225901249110373611167928531882893635164500165984483837961075373119397458461110947843180152025509434082918420652613940649103739653684018087080870074930670465115601694655141210469692330602603040242881963906974637695604120817379647903333595640733143304280717911219255753874229841752645933248191244915013317941285248802626922556681842753930651165226541281264110066218965606972084061017109729445475730032937124033963242624040167745694959034093382892776897902502363728284348969599039970221985469732159759130855559348281770128606196600913264633339710708578165278769755742016132558733980373858923749273617797256955320544707359789072759358703552995158783176641720553606837466846141802998271110086946688330095982978759791351399079986187004661943915767973678367373364492762577244723733343297210408292182867801414490414178097745381269192427511362305393482591635448470432509686464678286655513002518813845187301642076144903348977176365160325836409511224799537419520329868513428541648150802442482044371726930209675525353457801254962978605145543119752267485456829241440634207556209703251775168784537033432642038319334613609674020257236311993073050977673189072616606953455490908676024989724414054837147867857335917000428207226428811862395733131122028744584674706862350426462658949792375128668137811260221247681391992459147766970603389833609510177919065125976293976185923196144264960781376799956403741157359830243704355668475742343786230255060516317637364125446544669467059241758032868703965108540457622322047354629132403322627102911579045829045386042340399136374792597011025982392830079502961959859011004946618296265061558409596110148732996452110520146918191155082633152889015302227294307725614938957047834286067702494340457276617248844740281454829490000828653933396872603874209008361347284268983472052593929983308902859553344863325253081656529998923116848580274686021283960290930356512979103242018449615253330803571854752754782836537188260786394465108752432437501705819676918567637113776996133372695842439705232325191524034215388187744851328439567549067752778984366157217863574258456574674253051675625337784589900991649982397481507530135358126140255292166608955096685157829365348799252251888356576831655333725552835338175527533267312747222757617732536243338246014130408476350656462276359827151079278995993997989311487174840978315395596749445617045575685540460092979696238745713666344926555765154209813209229101398260360816613764842044636457348929661472131410663706761111970705283078747122859449610869816813805634881691045130116815237201030350861582075746311008350365603837880381704382351226447675115276675634541678354095871037866062026553347240111185812324910516488684309631063474447225757763384763598493706905686703920575727756889982245349732289628460324135345350967458416461259534245749170564147657636544715301331784600405149451962294687642576516918164084012693586493192688919038566726906913661459621033850114991181557275119388996840644167127137579725834812998350026888436856930285694455294181976188967111076093672334426863002072121885625207785772551478582448560065234036871623039552629266920046320313426768707149508143386375019900075585489283353000361958792906125742270562534914006942639984358931669931287264240596809606344009534911111553359847351985382224938855911610099782769805806899729950680781027844840688832347246492662929401104314198926488357397439658197990713846262514528254542819042646626040811660104449338396343571422971894394687833567581356730467318465925346868422450615840421908148427780219448551956793223301350433082366903468304687969378379671602758994797810838560248219197874315265210356288073662980019847166615767757826368450938361588275546517471228982871134767804228721917560825874255704356612177385258592990845252402421815223047131391909426331093052593410034645020847052500320779775349820801403444112486564258335987137240340761572224064710842435774756303245827136572925319582709565990973898072404572234997476976719144698049182314116492992414952687227513242023143231006290058884055611141220219557215785333169073950680895166478710387472636403834715986194994434134080778649065834705434748870296531330183448452951698247282806507569531753115713047700233427573482323415542268337999442433727925860729368660998745356683301929236316186446412117399844638965467737375517070095728462905121058962077126332997973271285632438060553150850514312226921527113947804544794699160005460529905832986634185422694691339091518985613295566542924548316791172480179484617575677829772081460366125421058991449788009350423023570859313074625937138888022415399124864945600664091933227066668757508966265510448476091344832640805733633854031480320520209944944611673263543371030314060072284522351362372639963503526424358649479837588009121050512040204695927840608623169560824850513976974802780020425236143470471910401656760534876527999071018790395304873306400298820628322784005456903569704018358455000179878408591806777959389737713804392221565131482379057624744329076900686107335312847420031128684574170448393458413993873823559922746573056495937879231906455482393687140998654918199538235317967270858524907904896901442870993397698598910831530630311809492876707013569938679663392927888241543351687483650869378054576538557230626613324380603177728916961812224212555852316888896023281461890527160642691407206034556096914945401070655419519284758030379010320534777479227213196739329073618482579118552964699972436864496409365466656405580369816486298483657740990509011639410790479691849929713971615955753137934890835017585423503700614647032913614296375691953999352624825448178994713948194666111824199518822867382452460229327786115450356643027754350662114951649694539900087786906614295979028143731683508809950950721892193391535655337415994108090316133123809880596614250189241320775708454219156465562241121459842259154553465192349509526609611776852649637091822628400275335805450551141560963524935637744993507780662473917963254951174412708324452885607035418098607979609739366105080415712465343944630549244867484630439735688881722269452968921665755266574333359707535176613371336265213458970213004445188927498587101027354422210653051787356427999637079316740754789838339781673089063832885242817196708838847062888487773799339196836735469969720856042378644853151114442306625846792632686356810614345952153691889895600041446233107460838379563033534725890067210827050194685580281658788156805319394577069024374279534564393056348380719774463829565878095292621844519052787555212814275730298209878273206338193327415623789656761953527366801579955552487745742647350451338007964204234785486555169876691405522914154796361740373940475495204071672352186041474440333313053491646178122858542855316014973168550839517095394605826178233092780668003613097848268701653792816476430490830698549509812258431381562851571163731363802406821101160596285628511424257645568190124463094053071307997741315468709459494247350796077606134876908070995698121102450616600355986757417278688135278414816321932030554595078538771228386929802613868540747369230258316410562593467801305002358786655490955016079564343487671390509709126476198815192503173876696497760059271534967510973000093702800653460560729375827526951735574040153362916792417107770882049492773369561981203289143076249449508920005091651350342390247954895287193880836810765460612433312985073018057664066403469147268188081576100673817027423231838037368474715895241796545227300087410632233304678943653360601857742057568276939076387930193902103866649250466056006371369919668337115794633969313170386963384283483021496141278591610108498356042082771391615285555399898762320116137580359125561828062803670981992981404143955562336736746303024647677400877778948979069119671715009848763701782028930688184245745993692802463517739912669398040416392850061391918231708370117169217042643986715664021663520106196357514888648472599417385013070913386084912339508829068149512885438230384731259233868284393629926141814821563082337424684214178397786117118445338664129799475060380475946192109508590751556937316395378770418435257924206897748352490054339586530794747093940225770040726059806081017324100223575131934086877851252290578915950100606471276033628289694448352987440940911301167059328831847886755404173490447873336826325857999638303504220172421807311186478113973140069646701931004930102187545638955191726695766499217660473310557946377825320316018656699268544125536925451158474732928169650390817900978911661200272708625049245310855002212331110242410496711150177818947666849392084937083594744680880504128731827804673449486217410522030350701954401450880415984074980480027755934822959981550840146973497064854341676873981909556001596098540209893761165212797118615230388317044402932495987248106438430243341202325126707348259283119987438081050211503695616414282500716354276819488841403717140061698359608760550378788113707415713540450880840751482069226899770896846984627396709612438798377743649268237452210051876528407035952054908202285817300175027315779710572911698147261949874026322316477001570816170553866300695128533014547946572757537014739109010988704876330589969164133022088064215041173771134685879236285050554408808885853081964916380626933789307037401492435552942889181545001043309502135856361598754738344925329294041007565054100882148251386357564779637070484671632832893979254705894254893525429949163062630921006698969849277033740154254861743229920952517487193354402550841253889133923550657409296505752452370617976080158471858120638041274929942332090343447233234961907547024384933749151555764370680020479131876128797731977140929084633578920054349121207972808915081589591780459417639834849055096273703561193716467815736657845292984885177103746778795697876976115190771445110782142626055552238188163574929794367219564802852873437006431774838321837223292288540749010021243073300674302118046105571624907192535150360631564474096971389869591238221557474392239072337500873422662927626529288162079411747348021030272389792552431837942538541999218346076616509378190780500755182932227118408133077541203519306450149116911087854148613643938600230211323737660411380859753303711067495526455688232359075383034919464930454395340688373088386541542267315725056378428757563076098924472637247106942639109424187496743860273359953050921384167694641592828543794199744187955493302533599747225633901693599261040121290939169894673986123466392170958666957242097105819734479859608212326142336875092035882085885550441164713825660851218657342826280138183634761475346268005449856120918632044192822753473910296553145017508869143044040142436006325085448093497735812579649321549375584655210422168072818294386749043822920758537206602859113248218244533557622283626837143800004836423585900513659492004478959707675322062209215634271020481154317319606633085548623208141535113554228799871812450792557806495199487555953065000374830816793422933788355395629591681986352018119385355927477594736105671965650157761482682918888632016772851054114671143121020826639940099254726106487827300697505828678532565382976852102562014818764545669275831143086153307902550121828415571103828939259283295884449869682468585144122012520936239878104895615550958993790816353083353179529357737649337137650696355641744303983658878878074069530166731687560450507896643102351462324595156711292273120152156417283058848260481552515655267438527859589909833422652927180989860341658668184224297373275182898570434789358345062045747349362029130995862122645668092827741623542455085521714327255548461187690892255783837337893662328938840214783184577483868043797351429668714907107896908909607316832715607139703563970723140148823368022968360360551184599763596477741248625696123976568466767962495653443494388607934377646549052832988139380090615712782681666121002802603973271808921587131710405496407155956383998735343078664702648676974644512357367159681734759753210064382426139905581594734477467140930395573665811900411568370638890107433254811473803732959997241957665195388548651181639553456551524416063152363421129102860237968781043829982351808847286088947504874264814918346568852383016448227314643734981949731014310803011535477655603638306303623911888724254666727338966428689237056444885560918438613104794206508813175150262054028485780800665924576369326114691513869208633640775900215111211463792318545368964244209636423209941579613164416916971654820179782625410555549580956302682104519324520862401893194423170781182850115754432027680901131845545209648224796446885437473176499741919852192372731699645428512864232512463422732477984189294113264514070911450212812243359939401299042385408657297390359201237129888642569892995608431176725093707043664999628069759323193410803663889399886109877187981494144845704194897899314218404781695087377237407750007306417249186096358973073497557566906699821134243479748460243363065658581518307559996211831571866706748047388932838510689930655536277768354835052520933433862930756676602310555519279852778915837083643150431461931592674190098921643720245146014474890099053719871779231049421323306276616080254752526206526663629612292373174113750580872690078454019846190184302213398604225071851159428114473441835946488478034947733511428790026326640749936278052335261274976201765870128578688431339680545007423101352191466405191940176669631389157781398973096659661138053240076973438623749628366595002271968103526302864548338677445055124761471265817632175703486045144463114206202118127203438680754768589029580211816082659537705889467992999592565038800150521583028686969405344906284439023526783100637223540088139121954297722753405121608713873557961050531541119493940400686259062392957075156259295330527458228815474876270273651610357816309431133901498657083834018829473541075722914684488915985281121069755803241904541401420395676719478068169590894190285291946677923726971873198207999143871815056809048448317813802796146205853986558606157621804371026457083692385119524574911730353687123578072646158434457596385583554553605538639575759864066935505297393072780759823244210096296238303416798241537903003493342311217081169295509339499888967366091654217366354673944789387469531486173141479521488144252256084539274942640070392781163075749065231616283436352426204118109013574606608396374660736141541803167648182598847112225747994492239954958516601459264183667640968922899983080850938124108212466288788144821999935600692155955469779854192313143413493654301695666137305839582655797317554513883255157047615619794671869682436572403494557713607520372829437978576856504463028783391817234004983781825398650955132433847702536523130899564342391214565850861013665602842622467433528355600403172155369851159036343916351039630732592442707543294949649176132214049112696017677742405731009479427171916870312671305818239467582162884441583469889629306213744774349562242386032132541655175026199735848952806353998613848203969940050353798147888459911337518032014257840706575929721207111269485266597132209485952297380540326401767584633315351446060371079601026420307996513205307688108334730263431163472270509105230216622076912656077467259109735927839140366232679779708354204877995189814583911494837003284998887790464805244436657908594082200348715907525655004500584546544863107856367287593356196719013713975077053185519242834835974851752006921290164216224381702988832792982469440413700804093766148459434257819125915957656350946444042729028740402539962948209052447524356651628083730359128509793824858932958651688939307999394922785259868268276378447770210470051751489132656182872007803190660631458823415724101098111933350238106716391919472533931013086816117300685776452402714323602150241179358811340617766956353987363489029282753287340614554907985539681350714947367563920348440230743812659267864160838899696589112200238407805392760598084750488417587742572636583277951716555886285979172019540765111745542994563773895375408415778668331710350515467615239764787411384930265074699089618880453422526317536154136114650685885794941670263055773803789851545172446389248333235574572006858170279815808620799375199223859174291337785347641879880837631422485899567433250650656379159210865626035138844825564339579074259928516295154685612629208572292559794700992753394663246165871875647255353925204446708080088002410246490571805126650244149480141007237709392942115850796231808948538396251599540760074238251503150839846665416594688195239018789668909598552390440292312843772927655778838973906556820717858517125507970117809182284068146666509931705661029283878979107867020807164421948101366412934395808306880585806482001363090498868888299235954425797660656956962423616487368955986045803244582376920965578039106372836105594806204418459971440804335354858758387801320526654425678822405712473120178281118925920990638893796842221880082510680055920096125271026177114493491845635156777010154022219897503578865035568227254985026837993473521001224386989006426872663287524964991472733212816370187237150073248964678465197843339781390884810071234963965092531299831098534892567928603554157095821483904637183332273724819998770135079498441547525516235695566613408877721161996515367422335320657412473811253801568881135081804983282354194082823867348656274387597391136802483322537041964008981747963438055127946662981587159828958718164659361443329873616929427479461762378399420003885965936818645747729436220148297714568191645433342321018753836814077111380474685656564372569038246922059744632950136618941101732354339578659196403703220153350809400419698298120864872839987539964821208438671387997239154621425262879988855374521923861400467427012042947025483488481928117692430053556758362770692908133766839205984920462503954027729588097337066087142634921398966551181612142022323032968325623340566619571430391183601076186867901130809371218085212858361184878015592808929206408738923908824033764654145539723409684518389007424703044927483202065892555565342895735643034422868505554454669015754590319681927958191369150696039771663859818665655789262988133066674836043579879882933949433967328145320152223265404805395791820217107767976434015005048975302405558785991625497815367035264093500052816912418373984875880802569999797071588796075575949521657083059869789057695281027570212521100857868917905022302010643092080096539903997378207079310587850012545759104388512266288176810553806094194104620801132981129861259899858171747295956106957430369396227074626308183019873238921273531098457300572480309167610659497003737596130629885596363921238901088520745246333208735032536720327994648320061564372484784879422696439962974945637681318756900744181528621262927618533973045217509487841054615230420706251727973956741475473168256418257621451633441670262994169169621796166599285157645233726686831874831677265905079900411726184599458730239216752826135197298362411802974359635058095019145899063683050722253200616874635122147532625715487737237101617068111261357026394454449870412583128622266033530192288929183895797443366030629981666821951289486631595948574487569928446055317013573487185744157528554647317565419504901460428695275392140069935885474807745502216183044820286960390009417751350386127530949760394413891249979604772657184621453747455033299268280208160926055792925381241915761746636429833066850701752470560586213285165737738376209583523693621736827277981187934457469401509644136435754255735559978541268945936189337303162657276907058614823516287914683723638630049039560846807126453602047081764994175662718170664560484055559250756280972478520122339475593350521726075734031589893336272702723244652381715760074724544855410542247945300739257121797108494335414339727171915594241454874269226475231422678004845092880833962258455213043677068283925540921105440929858873907826016169288189274856344624762231038110907375718220909207316967670020649787422040392689990673174665198471024607910722930132943234484940000145614908451920977083782618728986010793918865219428538036898065153485305473782423716587444752655334206283432218952590795047471728892110885637131419661860204352630824287876165240740281556371383466940911538759478463347441300414602730217559931166180809573045474839554698978080515046217902878146778818789169903291293864662858140681545542185093237118115927324108920774669783106170821743954320491437941195829055431374780015139148491091762805523091587611962297849623215719302163181073097827018938830877370240320804183624128596268807169118126466045674684274530298474688074249619195619444862501687259463214461436874551366847926404292316053823372195969186479705336018575024766150266317864654820318147202968231404495204997257472270692520758477010917761416203782659389697328498249478839690355228796985641507659254665806458090210772368535529333445071389336390926438151186092340318224971859878093987881495519580501735647900967275400030633429694116793792116187558665660259416165376737285297811554534882372314446843317066933555449986569768869139819378693522175700066883221144472940427828835658177891943655009742278579379097582640528231373889552243002149187669028672061767772404881916448443607607931217156846578785850586937033306741162457696520357968848011878979213283296784726352094730056092941770955694734305761639554776078470238710392125533206276345603528095095391987076829892882078396320280958750537097004619283908247916772973612468493504798827053653942067344839742747533496937783044540872944542935024640057603997041684061725332485438249121313519889110070378622258090165306228500908330283937140805645452862585575666516604383226414226872150507172655720889698808538226978348887520958345317684884243904183354793174995182685931348300496876826516569135018246317310187044808604898236127727002192586844074255478582482555011642590418525425357175942929354226878833965683617000751487184059083273854475040312179935388432225111149724591666834719765289190073641858128646981956051667280930458464222429023687895397201100400830132083781032892761197527784784884968158429558377762346784469238547238310039512695750409449891316293862824006827999460507140879478038914923998108749064718160675602998990054580002597996758880644275419138509431963688447992430993567659840928680069864030724214189009374936700152736748590948414813882033311299256014803582667418209082356274682170116249091585866414385918082100616015772844228243685815291620661180665609019731346993697264843413394893733868092695749837714712988722504135203725991470304051843715311608809112405385685344940067842632070912183013047958122389831483292882216376072209034161857314980063166723107047245894970559109641799914192220887470410519837412614141976846729842133575851594389869169159570150613248681138359017560249285632855615835536730538877588771094107674679210265622423559040879521614222571225658244218860674346085290884575660664205863487702032770643535160319996405048763267637980648295642455803707223245682183566679403848265135840752973028143061401100474549543129458883739416472589638046124827075550852447995063707342148687050924802934896459079302647641534021543911741601420983773768515186139844715254926882928687867733767473642209472021017013663926228172570856893728887309254869305193796105957712346253619170195465216070419649148632022952196906509482398987379301404754477579730154469531691417703094456151523617242534833887517101975779072865070411658748589195318483825834426353364898202409475607429645281701270541529745747350151045973421472841289403976890614021923654846490005950673441839005168891757214505480872507010476243943161476905719136560118858254600602376143115010598421222654783747700241854910643051439536845053834121848003240920538404570794857031545794722148560026788638466671884206500892785219180504812002043707881674218825636585417757804767533011273372183916033748856453693945020437848711486048319586284407022555551494528268078748880232675660454263487188206325473211758919089478515857550525060435916354440518484851036256217662329324955355954403150640754010105041654637810919442819062800202933584982684473934625416693843748292233506562256709051923910113306171215274272931593274557937891224743853689603474078852168520900660599266347914646510833175207802109356045808159518259838839545701632063733726831008173830030410600230169481315180380736498556014513159771737347095957881641378445690530489496786375690952523778793422163850988519730324971928555448307988451897957021558845917382411448133258127632088149917523780411854554647121476838831655290364910282717266354211279839276639245914851366495109085010838646348447487374357427619207882938761401372750161161134751494573920737863618536179890438578044215586366262290616290675605813487956463457308942757462721678239252086709158151874362543398153960882800907699260867380558628762423862945124909561899963229755830501824174103014954305970751455301612975857253628697993109406530998231259044780258324885654719183978817621325984914797458097765733018837935240244094079993113389399389605522260318352398183376881074706527623679874540541308273643960631473514326569408321988540084982943628503132386385629571562228176038116502347771374913883606475485654870585792376356235639233865252690636489310338057624799108777176979556276201158781511998850941230598818350864327733182310470830365492588113026243480559443189425547356123280352269900365777003491298912851843112806369180607710181423594876196427698042772926711170337194625106202039681572949240885237335696083476541724687372961039903554189529273983749547577185530735033797397831547397348860854308820028200085570946513859288789979298258359262876511214756283159391740824191241033345270776800705352023663198103738182558309997229957275075465523472370631868858729337546099326071344117744884389819560533025475114322786317790275875510523087741468843062688312280723901897808461663432332915309654558286856657748870395390429961910444985044662297249048901041968229783457693094238120240516795304941134588151954367422116933991110613555075482749418156029750012900054162823988562274221884843359821823963798061362969247143128883522837434053125699210219994118633689165621923065361605855796315453670114205525343298204160428683763271691845302277594413577060294648530822685035424676391202249543507940293684056434324656053896058465916293720771139152764309860249788490370753180814747014465289998334789171471139662577774495496656552364104703036027414919551555375176246841182952439439977152878745423362662573329179186088729440425722628769321747550064873040312049339365284033399166424137440223955322710708903571936420516683308989363047755323444182532214967383855322081053060546498727457668268642463192052564965601416440637611046507448074953039891872046693074561313896956551574218494479507459165265965724685329564880283428857104497615276102472494999841571094948146498945951862169403241691100642996436211951446310840161443661753409162738314092329762306507492130580030884176935163089202488989844826393574471327407816829097246760341793902110695354709110996466769002106371824137901654469422813728196346982714516605444758940568973810041495803024393121102947151711646664383601394106736949645464403568758434955089457446564789925844635228929846873338987277154689289628636001032913631403149837680702222615463937096111085194604057909683710318550111092585931236722306517093034789778407877322391937367737002213585947039157492314082910084851885541541600900248783746040354920292850255324813884897679579372661448910352161975260382450547489351571938117570729206798378766331327559198484740989358298955826342659501881057717139978376540519391061139816634159613496885717281088286169776752500077653715674103552712060365615976914686148132612171999975899201054941743760566390780796150272596326535492732020471786170873942673497863263625842580323141865497025424841851181094563122404448576023479065246409456380395285786179096274662812589421206501525746213209951487865420606759458983559079904741149081511861746142919482817799974026736895449689085612096892155505459929118008817818002126689110773963681089850054982560914353674320135754185343568871814897466144165117685670827521204806788370776877959438387207858463284062086096245997834327076226361264366037371339212064928014489479792615365473747924352116346188934188562354684158988139414976635115735115862326694593424578721948213409451314549441934233375149188909329277147985246688823266350946547807604105090262144714188282063147437839494413059627433519510213323537622635934832587011722669182937685521028554277254244138424834617194415492914617035051978306603282306710965165241947047983331978215848246719899843833114060193919409960587339800599154042214548908097107659510812881338424349304891898105934829119332409140325778881322686040207710963586117311728751036437353973275371957065606134579425290005258300822135426705386921987424926131883382738530014470593417622972886177792183016619326021292926532471841180438327768306269292267282262623586870297268745223336263178883640942702712564564270372863391804047273583592640908178240327274550813776821006997011849887386522132080641248484287882389733028133449286503467255914776149306406025335295363161309710154871058045047832925165424955089590465497005976487427451504109409136854528360204315751383105794670484439093103773399181811475239158061798945484302802766433068379687225301723893229497638269041948354554407628183272461702064659036534677151097704011766480912099101605510037050809990002353587160404366641117843956676484709029098593240443996363275649372157869132583694407661594572429902175791737094090052083355556743760710374294088341179303119868403286979941815874883414221082580313045005021438721712660136948476993482798996876980622160671393881137834706756824050325361928723757628543106609639383443492144430019746048487530156697811685366089665412061235806715171529937099483364726013866296051330329880946810448807888261629725501230939184203700426507028019615697234694700101893213793441697414989277645023675741273499040789885109544035988155686296401304982496658714275975039619361784862522860459240581227768793272105359587486464941232108419093654627446419952533132796121457930269988510369565047198883398270322194173093818661514061275512991987648576188063152522150769491561709206288023813012944479330351190840295172704788616170546120754872444405008821927258388640778445925059477929485971707084005883033029866516130546397615679893892427293100225665161351909868456196053861720782203114851671859904504750030666205514856784561423055117401490743081722473807575963269349874241223575843900882373719760100510675985194729277103479260713764578923715040705283573146567000217418005222642994463693133800323428439358002006185542541056522419000826546363548958585567928157271734162951112338666009347164328323281875462979324936311381163969550254058298354056489667837911237106495868013968342590676486856895651124229832692687665059589853165523428215158398545320931894079774079326695768586614191791999048118457631489244510196962600444797339781956875523949885336926841950000186279495122473652849032471340397874148094584132274820281349925929250710969400680169851388418050930885956645076640446622931322608947129018094110508015774767471194949683722615716144393456211988331267561182033402282830799988882537322593514066050153373588351009085978807735677903227931287014268415386587766990606667368594806187302607650845428351834345717046556103402925125358146377975387889809523680460010938085011922733322305830521681337846289073625169292271998230182444288960187585760699447124023012830098555749804759033951912913979933240662743590167004829359715060015675943216849772934914801381533568271925782805055078931566955768853575549846972330215001822646266193416861109201819574083666233378660830342573250692958560984766121207875152769375400509061018518861133721567083252328909207212692160826501193233488532183236745331044640031193981122454498289614258534863518042789674321368877808087057759409820719121604658820550419777797043225263160639458876872453384527591048474217974861798815138427410655231309412801746656428617405403676841383622865664359918740675998693683032292416147516799229684350960626550245206474230207968498822643020426207605026330255444472114529963109965453805290328661153812440768702399397550199049896444320313705743770649061897467153179324705448757829237000272781080040479519260860225677982874834869235359377492243731337932146031013083123544415393855764858640042121302826394530554398885575832233247951843206203537099241052901976676826890551561141625052778798841684557533829439772987929175652029977009216758224654855048399584213203393107472668568667677507114766344642231257605181470129138917158659076682325577887951109076494509457035810733623935673419395145652519412620053488814240134019227775810672867051967829258898529469732389475432631333236547146919656040078110092420389012613736899448883460494327689517633484245600660541208747653669943302555841494175194039016209128172179263815945458012278351076753923415843781152807321612634200950422290972659951437548969932772514876255500105201303074244580756660993798025907971675434785166929121500130147663632682367402431616518982200296371774724011806951499768381840904121764686282088319800495434113232946236157952121265994831274887408791739254971652574155123376613193916363557589096160270898660369791837720714309029639760140192909483335255712808599533572157155592406539725829328266245217686670119853277835727870036060010298138846137512402369497933268383843172633866735258463707410485747557285025955466373708437369630988673780281800520753896037443629196546763114566952219468655690040034957050537368304354954800146948576277161993764525398174921135061511674371401888256429359910821096388853252086332092281309393706814084883766613526696632681114479788559024581711490757413734999741735807769841416586277701037663117165994871518524902669108476531350315483530308778686063804587562259484887781455771885794070205161397145436699430330810548084796998812446112256928809250318477923942828862751547449169277328689204097915191154711106763905341855550225838563890172051401157627223625272573261560126579174064361307489261266706577327949020833459455219477493229943762007643167936348245405979983843776826468682529020348462480796380181691653925495729193431141266201009736885966839705708603282392937682041910805985941768961120777391480288627298227117475416429175460301447216994184424429470156120966722886936860027111511010998122515333760882145712161428841028412260477174919441504657265915179528827807588832410976094429339994926026188101845749175539102680062260465375724930115618666675790890520358557812166869454236363181419033744791154339607791147602454640419743524058453130176657391288456018639858774592966081234676473016553356906331077056696724006557169905076971457940125366509529392725943258155044158358567297151676065668182683565369099629504560569848749832761967494153901439978418720867070436774028190014468040500625651950335062729279621427682632255107846832727219277563863189678792047192417738901595717131602963190756678375794715436111395395638784898182970771468835752958150268787677823197476060335933789930980973836637784570769614294171377977276167276629646251567718954836665630562140926531935684313484120094632814242201884646654308603617427267990506393184003553865039463702991286028776497818714222867453305503439019385807126920080646929880595363355322313736871186092951920498562567554958547374268861157601189176284151056406946317263767729654230343679927047646968140659906309052071553933582928592030165921537991489227102200034832819844884962757594488663093890422536651448006028358620369921055359107855299719323868882996412780784385999998212160699488041290362286090339236434426172514971580115674352796080879111914996948182443850596204290486370315846382540214127693198674124199781763526672148730372497180694770090222219959435717829446244672894893537725867422936833227852206635354102443970659469065942860748692887602374760108836482471699837088853237938885251309852429444101256227835023593573294271393085539819965146508942489219955713620780867713834936428585162828289402992064426503294249761471341198278464218271457457134575382212797032461901006788838580949452877944340316725369556754382840338240167063308285139098171466335639796225742253050876658822243575143356435716401410994368779060450383968124870326694616548402914658781125785379239587862549475354350436454764546274273989762773302887237233717350818434357534224841033793232600042092198176340212614040246156935580070767166665448955702725494664813149017500315146899972880928561204939446397569372523108955785703810721508370972836782917603186945546783369590098263094498592254008197033357865386525817387903820859769934512118094415106944305926722603928798681163797887569423179698781478445772505669043529549485113437083387282831582574854389629569851524891842575842884645498154296630508178184787287969582661099482170934046347114094384329454214149376774478362317050635245288786682966342699725255500930158930508883447180978433466122734919120533922620132188008114290299767514303243895619239046317352469319303644031104722425457201894723920559855466332266062286979370659622694467040168630058477847110921529785172972388430137086153637952839130441734190273184892299543492756649654725152949126884953459756925424463603433424361001937099649553365455049600250158958986716367517259287930045502487008930777812343886700367082702584022542389703411111459028288177533721218535033468787478518768177872688969255140421735053380162048918332429945823684280687352134149845537852288715934577207498808023718148792822831986453623349783163371186057006852350772692185949983173794492255767744502582271516114102083832605884218683328663646083302379806995828702639808955927968033505768740716713173647805902310519996027945716035318624434946865119512222814357235657378686370123223707548113972822460827777124055257403361079951208982038009446293153528016920559202476066769292840513585767594426125627522924292020643913545611929620395220521897101589223575521034815996614920201921571966541052779654963779137686233026134626032500939271740289791156737319898420430201091322935726897474117117354226087776977838514238330461675124802575312927280786111826968770536763315913924486738443342998644353650735471262323647794341082367541468423638591018211864305520240244450733685469415200663821283535795362878673574330321756856673432797506455350795945749936460201058655291383395143550180675655649904783808734565478326476740132572656007444525398821257387345386544527113738315105256466963027727356662895468809311847723882919007938021303468562111633388439091828052012663416683138123520710111996390275698718398686606560270965632492216759595013643224258894351374234068025859639501782313207884965756697798321845847267026662521611550506513261708107595011511468115824387606186153737636514419568139322751165861995761314687045650743761734844006639047645719047824294043071424259389606400041836139305658575068873285786784521638391355316117784242731536936087754358158650830020200204458388817893853648898534866749920989858646163897664841746520339655624085109839069700597970250118364773415938988957758825788233880328213444747719744467601479752928199514615999518074691056968432658642643729701050120697533405970996166676224941170842070243628628180606986632389526848941973177060464657343916439989458513906629339059346598305379720286598498394805391862255845630257359245714340830818367192701291233063769760387866738754277039926134445628324075256112495180721477336171414919880231580201321832129372044104158767802500088126554106391302670665821265977839242454230192392127533241584044064846365393589515954866307313332726429418808450128284001271311275478445227893150859255339224023885964281750628386974177122095095510850203690299269315752898295815511523916024444995867211242084147430272887577753073565396396826138028698634461988525545565468134835116912685476307460881898464578052375777226889897936817876682698431388562586138088994360712662369240913334151159234933198174214157110115100885719264937569960609499235300392194283721077955454320328904801498591654147141220871156278336702063282403908830554691545416468297188995133617843131464991769216922294646145884756194604002188700562727426750317542942990626282618385356561635672592448296134525428711019986380879562050794019804973277985370595281264269582122538062753798270694447769001733570206895538112445751193471961184846572638875857714862082933284703007074337996861820485376747952826448380451546341608473866170746968712693665678698695106829370135148462060715129931164815666573009852529786596959335135255850726152095003305139270737450948419113983788021636630244440550957393082749207229712966742318771483848410466361183132454046771087694169487287574233299882571876863090440383959883033935025263699821446853063100171871945264943910848567861801985387579660724119555431331016138037297508692879263614412595388356415640008257939221922833761100661335425416123116576239276741620207616904963581671150537007442986819172287209186261615175974786151761551454563122512900520505123707301494707407397969488416250038257833291305214011962932142618924526415407493490822341056516859391935152534881359461484166820348579722978128155989460410258731055424588531631944978110956946751201794911337558167742204306971635197730498412993960559750346437453511241246333673757532602202563429034808140042601180422884529423610310374147030293754976812020242996292582337707734122809184702464710199020268007888761696736873256934645487995535776920824025837725430676236668729923091134113755617304641758132358642212142390363161146589194457747462350865065324388392374547205284066356439614237251643966177983714796012834974943641562541632853894032413436641044139838993220509551371430258816030187472916518492398317727844496933976685756405860351837064497523580650180268138969637452861841063046871498459187414502355294475769087471984044403631113404515845513263682293700116591167140993907971633878253971469025221948817184674826004139430094139908798289460919877177715249329391241196710656435302801212382591361255585439741606064853337016011903572219078349442354882267940074648948490963621158758583997665896535685245645714606381572207486529010819846308886490753988361210653696665718132144170137882147812291406630360999589312592889577518326192035963169260847806687378864316637239684887498959756618130377859570149910028933940738510193093788519612567972232777078323045561495607588347992548262291541230000139485019077391606993248641121801019456418916538105017278161219057587256804358279572222751588368914151651232286556728902328124374570251590992515103135677699901311767325824102632907422146435856904708512971573372163069599690546454267501902371586019382916367551793781875177978636256401384701150372562067419503230448807923752440724021282568144461107915002802690900315378251918008584175759719134206742517656100533199018486695330280909021838467865968532632349875507191197597117489305158655581278672944002596872149685623396121003951069831284348424685257790229650861394487330923012485355161926036896151715687640779640522011460642178631406800902649789563966611469071751084867000614202808497477965907134719532023962918036109785742053286160441258970006914445596352662945284526625118690167200988914975506039651791450729945441124388936582617867387808885807349242370053737237231076509793530169894706064305693154857222167922537834518844196161783459872307160831897810962901481698802991421275556402270705492215947021227186460896332865704112949012533615904553193670974661512423058668900281318706220959623998831254114079569265070986338973772500127544671831403137431275230366441072976736204152403488143316006198455131923543416928225954458449181519146413020924166176990418332273937461852653520620011750525362281075075905171950389347497982272666218681290976601167512599387971559720003617857480941970526926926711935058287827133984643569851891795656645747986756908041758583727986570213117344073283432714715022675116356320412293684033108637308355536957203184850258550371130994281725029646096640592428700399292344736298191516086266414737784583526381908033589521463763089424326739623823636400136819062520094495540500417732238245445258970692622917521092546439017791748512135861964006930646891162108613990881289519964867566209406002604113672316011020529822183448307316269170245912212542545527418249854369853285211595822722131844136480957941253980072563107180682705719695447439695925325637245345062870464554435234772728086451979820718131115651302723599237641337636901515727471743008850926104468208378422100273046493869646040630952182827395031586912448991710075370029728223878839926709473882253615235835994840971643858974087258464343710872656600457037523493631228620451128680538192796606048804270883449518091742756536911638990194087155577483797672934354872151201042530665474262336405258962061176444754882827893217356716949534941666979223112078821357910232621290781142530197624116151129192003851894043869507173008973032698490462239785341414647344081703862763214669061600219448567109057756198338584980674267190220105944426426027372286434757921724785419554949107934654732853857917469833644397435840584342103078987995889846166613986618141551297627224188694932877783505149206291235427510493118782958679627983654847415961222304131800328273406862906854656149887856408673563476661360880202527163892903283761926577275024354788174038223837494239159018853847575584099087333917175158499859572782739805445350134460267583160502179084308300222354193362679269536811923502221001379677816042191287287722301770806510848657297624070466689732367559599929370255158913872225750997764499550896129237642092239571766325550407451420246099060896967439743521329726091330312985407663682126775570511718341651660672794947797781314942436957051625463717445209995363109824653872231049317196696622532650570434176300434404753885240433261448449628350916468276465026183174945630345032710734560595875575056533101714602134257209080005454644989182758439804103415623447305637349488236775831625230517395981199853601512275777735387853834650518826728284398468080017994798316577292852117964429491399535629273194622465098233867659880063731858042506662867118193675689418414036631958921954828475998342065779794919156010554296928474213102714630305844530582657381935571383755476703489065833190637081586080874834740310930840864152631309133026597583948526664645338251132849887091894959974135471704591448572975603108238648943770578862779111139616647247694443432260426189039533730703871906398252198545763411136810442833836355383481982175776349846812270029165290213781150271853282770898940460512681508413568752657717611350063873592875997547024752262473117320327577213933704564052253785825674299131827062423495480110060779201253732752446484433239378178953031647511988549858150153876131228522230251744545142818302112333265861031846854876669358735722332939585832688689960744534020828097863121167233316273122856097279168954415393207052534205303532979654486755781296631549607481292288842577709250346251639167894830735670532927682505835149863318131315938136433748887739103161568951686820401806582395873863298043460158013842905326339128047321120746822224265379717736966624245341437560719234877802723322557968980523468058707611657518035405803774552141278790212512138370678894655806479789383611859148657851879555108643872848015940737607017444750751092280665634988762035339245944326396767990225055328032173393674133866240065466634245757921235574659221338972367987981543417769305330660459148965976753827078815506974708755898977908697189535513162823427417511788352277891518041123316426254240764054336812483837508723548510653280363149847310826815563029499643128320882403611532061318181622987901847908723279936869755977331681853361391382673147160072222063308876151877911256408704933610066557434814046517758200255365263714932761867968261864511157480095760036267569932191117380700617684620795536468492621790495508741651219936508590449992449603749492976062910739857890798348556442763626830633335287534951627871459340672656413911170714730895479779848322302374901254323325858342543980118697554397632565501707173421127273062230830408403994044535076818737063483702163863442307343311504498559780742355289012111944527961979656444813486984378272051592660919786506359897398280210047772975719682753394646783849431462375832485511652230761539460700080778446078358174633352334036100366928879896276438846585734165585156415995504564423047321637829413142337059597966099350815967757635025621170749596665316638426114314035201323264843160262159941441344510443400596368852883116882427509541175639300667270574645813387739234302356187430907186056861196715951071281529563622427951830504058089133794847394165987301357765695408965347485509403532424465851617092515436774944095463863196757811110707004209958677833514564501941568863579893935029597554754132331382245876014274633435526241078713897058820225974634154405149582194442836755892660600377385965249489992196908549298567746661253860552815517751224174503776288027669815510809490900529186039351564992816621655024610082726949053504323045257766455738812300824267581722010212098907664417378619070421436733694948883503803449740739380193192277347624142120280731423173803401406172791448161879184686757091219184781708977003122373847456157105446478786473074259150034632812301552144826795475218974774318956348624641578302238674112925975248541079039103445563535303787066407233251714333712138742535207624647211896786205585161510399830341559158582995171360213660379824516972956348411323090448377970534510099364944199609793359804951953437918627797452576417116659492255612915448410504308084659907945481278783534929984283789801928674871124676516074703217990467139024118682966074211010396652686683134985227361525688452660478256882856245844443199677936017335722484273400184471676063823446758550745123891519692940282225708595230245240639539930493850370620837915769022582825156386775711651395856960741511217958060148973686773639825373970237548906565282693485516265643493431031160601666777181829440691034140292744693044430289662732653434120220027957863824628229658271540554041163587807578335830365352332778486240493733338783833268301530977161257436039083530149924091837475403321970772767678676586005544768257727909506445194107428981320182059535591202250832468474886557470280652533956901191936969140349182802856258553930893444872259102718642802700609780572237378872073624968437652566549379728520716445424053505529653107178266279690158859069403756989443568301121175550639519579679687167754707808791863036522162364942222502910487862020689443582327241467555574381719319746312334603501630800940666795761900809328532872458402111960991686599669549905008827850776592180818008254543367686167786323064127701597234563482010345803209423893330264464779039659789034607911277515283856349753755372186935699839604137519461272491880962548927169570123475774724384377164941208771803086155218712924361660417218842664969309442437544963165661513787765746272596690315261402061408304211365063601082038339017529813329974526294244861712930583296388522057230881570465432900446861510620918608336961931100756575791496908249414236212140176077953646573338212028314532242285339179228808254149177798721203080442043711640567709973642333079518478323990230635537722912534960393009690828053667760660737907932975249389763599566849093953051406158576333260698450585031068350604479596503067085349436017236920157515120819431658061433243623931966398686004604015010998905478389431545138106637944353870440505528239121383749849698970052950798424461008280725375918767717863049259288226807959685585629919005666362725409419545920297882032968480241534614981699714574021711866727368556308168004619647019451311645294636254594804380199481602546028091668331758390532215768485919628283484768458107491506112648837421889410966002260936860397626734654139411152799945485855764930425285669747349606979425730048017420605438558768273235091996342302502829535992083433927536706789384259097315225163510803173367612908612010735104322761572859537012502966408814832251085039699193204694368160151628013699823628516304566340327730305971823696926729898597879796840573114246026423004298005998261635695342986565175470360079274864194035911576059079861029484159035249823436512976485705036905906068484701473908392350637666926806078796951334689669771460902425554378192917120050895769401679802828620635336226461508116256943883369729899872540043942115320738444836321571843316876623806770149616520924647022522568635730626319572259942689816785854627329789837180540747275861801821898197280944321045357834370685312612119792934959564286401588261688582239347338737986866449690973488030684802294794706812305024037484895877412419865596090807227364456714395638365960191300650419631830443434955740222474199686985844781063420422110079983987650089553217994600870798770764793024122284900055949304291374881223352407612410810708198996186563443114212170065248921576499908398025422138873019276698800357744688453236544483390714822319382856600453327942699224175448191593910991498241451859488500516911909260526691280391499354234485059896729765607025316746669327473330667497284360233236696653848033665661200494830481137692143721158428515677972885380387440182587518452188955430262970798911794079587906409238452169236265928600380384541597032093049021472789166399646119747247306463782515739180377798334686568697769218656318572437640633847138047269047689476078707951434592688737317209533951152725112600043788478397366819346823560287514043987088443476099390496664529330051016312884814829272390155979255984443596139975109725162478102119059408838428969421306121311869671495507809270216536349113089671959673420999809633032091463428302577890827848016100501729787069843151383819200561735222699816380288496119991201603768004975711336979977692850463811991054402195271142702473255936465446895102002783019562215011208246758463863034087157382534938590673999896279738440719003935887527228088659559763532036592653413768952084311524133219575980630951234608419702456429059444426609313859729661705445850291807098003979913103742227937980707782158494663403924019692703066892038345155658881458460350013027722444224472506944916398132573736541747902981429961238268219732032257578978797453975724319427293491254551899827380765580827991460565599602545853637629122394808823558568393076752685111210816736790102891905994993371124318452259897213113769310712989267643454590126697518898653222570162029179054092008310162085847562133112413850115921866296464628319178718878984875024609092004812273559138164278604566199747354765604963355369801690146492157866683376951684157688581149501711089061753136592132970517809575603453518582332971445482543189983573015659715706210527139136590251681205215289051983738185765323976828747449063436067664205422422559843541754131624403699266392485242857074635658390538341928243971041941486556663723694798498635196086698134707306662834714025434394800437361566081419987312394705300086339459515137869082820975745834555111461385315326387346009988268242615614368451122202287159033922999117494842514639224658484649791603218498129676530392313763187583165618269859305028695122307947323905986999897732008277628052029525163924319969836460675960027391125316669920625326613405359779608255118725539474067410570719048863720436505855797495423221156407688979013561649821337424277335569834702152482065164200425587477135167625508466376820952975784029780219890239104755216104110695472096883469716443098605236494163930753684727880373625857302778255281033046344712223739504409023153393107082935531611891398464714868614755704084067874330696760877013735012088071865872912002118666062710840835016419277231910211945338101327223376031163937917282850684128243484140512260715487879238796629582731374108490108182949469643845153967462286304948174074252082786805579669214471536383913546945542236513331168907824021487282873658658214960012829558577728331853399045144072185579148294246207274877708289781766007121252799347640127075790616849886504904299084100360171782155712695264280715267743474407761324052043110591944298269812746440815616387437513891953875006931323171179422707366672078947621206101697223372437379493630981335110079387592928954550668761433019098659219065082260035330867693955142436213849787713537011714399862955483544910671519091054365843268933900579190905822340128969515339117849790978014054146050024067361866768037436578750594661936078416429454985627183248769713988331841525278386172955642078348583509245150268232119958597901832623330367521647800073407497432976147805025499866156999693655434992914077610379616765057834462267173614825384639747325298505494451238134430513595450165405860237515077101590164342941269009915336810158139616155418363238474710872196164481995003015620483758088575545362182610187409701412561259375561238156579181518312002735493002231016374764826857996949253705333547762665095565649745985226977479999578136211491831227474610320281987319905701671703952790606195972058110164135916330463120595668875408751721441970694306427038488274942472662989523005951229960892657007951520537445525927772513300541856510742402862067000192227420317897008113245758659010793777334023471461824112748656776767741886043399488883816031406921390470478179418690581589395768995000255552978272358879807752351444070858177076177768290223700755110768905819549119889981201665982488663540674490041126886686348488903474835654112483298898147819927011378296129177100448415094906045109240955992884179635422207873850342465448019359098354445485146107560391074901283092316479692412011956478894835766918560366027210524328878781723874955458896130496398273356690208792635770248019457163844077559673441179454585457743790982669772944373312491201244124886940186790234044878592812432912059823534185365525686228910911386234690317108588685908660053176684424926708640232173345179632389195331040555592124650333600955028018725625922688919088157887650193577519808925193087300805892449017169562080233745532450189735917925687590516679415114444842230210182365561293946930927309848998855480597826199940685926341919801448212311728920042307286907259110622004875223789589312036810305700844154479804094105075482307651229959474963855950826401221540418938128380674237932122134540865087702578348408070853771764709130627060878719573038980686909836265412153697393159024315921613394453670771596779911414704895271847923203897085713105888479690828397939418489961293713650926045826639846053386291767948071091682491300274986873437280822734715320807310366395385176586646178154688784224602545664217594401277819968328211364233733498719905192604434948678138108654094747588963008624912405321679040262510162495057674747995009120201843149200949538966152781789343306447349002615048891424665208287469904920312928972450071655292378923349157154421751447111969026914781691902516217753849546670590283719050579562156646477047219124053501699717675404137634676272234365443803574422766351181172108018493089758800331735770297451674729549225046548285482289800758053729040951083547707890145860725338708325608667656983224084105583447940475821295782805652275617743286014025182220835835721562734590784153789925350872659492882352471028889452459916941473621382169159595329516823259614072995624005197370249408161635729758597974559156019765093510134653165789455921424429519824427404339441409344424041978555935514124600405477905921669929999642610051417631605535045018744318454893597934337734914555557850511360667230137656521668221318349750749283094759494416594692399800409602150703474797515826602936940315547493470693046742917532999077797450426347899609583503089420808599505248282333526231934673374762003338625984348329221454084945761917388452479115253699951344461531426380660422027288315472983599448973555135710585916876729871707363366891497099098810323577541685120733108768717519638807394290595134451536410333622023012240066689006220560994643052532219794351757316903250634496132439456136648263101968128310740808492009778019704269519437976875105624969240465064877491590710141448547027695493990167466331809427219070034632559605050632915685783283885379619056409277508388938518413415301405581891467903809867367553523358216413186983345497878111074270829733070475797275406401328136625598105297745948147100312671758187214007885444204165427818131433909346765075167734501423262980622830912827655200675427374047634963890992775614072324996810500657182543685996384858074115850873355973090075994408150097820143191942322313454429539728859180487723028485384636431580798118730672838199585276916529152473086372894456834571038149455304401325322683961782462758191598963797729926235265975309436505652210723519045780782804532251509255932371443901404627460795308366509257615278998729534309706830849951535975282451344937969454379564230526506594913932316704616225398150413203372013080654086407372163332956938629325933984578611153352513594115137835141894284489539110028963127962859585230833040484677587661825719801910654152299132909236997100472566352109790579384322729909444076565220667748621348712524907812396176362048184189502844177956220808865589983432419564431492218696521223618687265267614671199853371697854596568016679825017918885722494397857689053547549553841256489406076877430141171656054296429526937654259958730767097684638511974485339740034275815800101761014165371143605830469091714022038012303284044770510378780038763048744831737501107920737830401207258644787430113033915085285833095728660470436599923385864452804759834689311826410599913211776487002555407481039498717517589476562209424405259512539116581036923937735660585256871574988856773106979656400554702761789726893099617629868141376073498908925387854995177258723828650010959271395674413178895614696772055978495732589080920064591941242822757633910385876328429927030984725146365177707066486177081433884199610784703765130198283064761481855173220297843180670231471953355777969660033998688005900615342553699420390068820288848683425200161395882272447235043964277457503680890506266937375829772613936437800077254168249709398367841141180174220504211200408559603112354408050487979396499550826099394104991271439803546118550710213178156810467233971179670873578063807613866864801574124609793526169226917032879308258764206591167235936571931300411263765209884120863249995380609791963831805106280410371226021197573347744745173586122789472610064529709866244485949079004220770567495113406513092588756610388596550090122846827808262973194144877496800509813263952818979583839833607127451486199609512330419268072211944224877735857136795823698810113016867647210803831384157677096990730694813163902526822176307372396252533845715791203514352930736128834712726458961781933859850978543222082160517349606588213037891979918401328574849558893612310276900127540442558993415390649415086138011331972277136148901470076856217585788338147890156203129549629108780443701176737695824245584310091316425521419403504056281764086222400158721433838828679941386514367064874425022062579473289547261962451879147673814313000549755668195435099725690739119622320355663258272928482238328542295405811789352281966768864115760003210690496917521915950363976759820522874414039339511115818072816822301241628526793526414110266681288189545119528722105998805250617432559422401081583349830187218832326302760643583511121175083460082681939636908592984836094315648613483751363702877306624046021638946676651810458463960124329044127512973738484113597765187313400035931033480587370761783706499798904065908758195965345469148436742883967880183490551661643255151159473096623580554600620822158620420267317506037672656684752625632429139249874240037525590085232000345396248238575654685023594520137797191065033813668061206311594137209809895396980616315728177540657058701088619399214372413724075989985138284796456199533819111106366154741180672295289149889777767872068464399335993162067737664515291036232917569622804466412816222707506000015911141704343707611012136252944114413685026134728893298755697305307895487066989010581656517749226358083724291654329853380918031468397757464588990094542515764994593578659146810412317182727767130389127444633807487879879692070455638673509721793082046397198257529097228923669252817849697718441410906381012100029115099623634932906877301373811435007735724031975903689248074035875167092677030198454285496344337372195356787147869125194410184492415860635743078155830005927358431896081599609452783022249906038769853693561018131311300226776913833310665833509268947015355303443093733268101538720554601287276303660687479632971674401815608547453290331876798821013132880253003959432179003575337376633667287620521256741669334978744047583286419639539247978564651633923511945082432023025722184137042199906649423854858168989853004176705357643892775527466868875518840574622326518713793938201184183547122169818804055665994156681075464963776054504925717489932167012246986592503878925196246210503673550051634671795588251089730926827651137916813273823225865806051150291872609848482009599491889452875954815263719399756923771067937400446040309945292230421030541555566621404203096723873154469098242189228612670503192222003293929382024065952312996569429480948094572690494835379424824550196310394863811677028857957818562395327173264655575030868246295210927777655893035204043473640489356020685415004815767942236558944104774447134283465899441795083426687613902590552122181817531043799548124973886232111310071361150457985682683114745067458581611609004285964496832750267429231648770446486622328792397620374157565251335819397088825770218137658257970676418501779102731175841364919281271913238271029580005255566021183021961182431605063962686955867408661417181472564969831930565334244613377557498017122180314261468814743590424030684136680190060086743566838113400454648693110742122409964396692416000649440569014787569528696250195109244622921234984422040875718536981461211919611907818827788931224834950779853982768147197569626912013409123383515369713634084431606056381530613217120277353573406994882708661355669967072131406703918071370964794105568321843010014371951568888088901652133273595089725069486811658735153801421063530929053982819860682643266612761901882394046886868762919849908223524405373561403795380220859212903996616335606820067327741695984238096561900961922284611430349709004736198435040892008185350880079633822584969319656088893541945406201467681859877058411310407080263110360686936429359499225897178659987012155220113696282586084566173973409190050432112299919358724691661236928396408856432613410447023394112885884975932268309856306516222689488544925985247919058827462963667694981582519981906795716576109138608077027735478990661852224483986914144579400808806271720189403197571033107889688944831640718713110707140734693654724088398398896025100928764843858725715782450303950543364424734717046802416363559072193574442481815141694142512427551836594251258367792769117266420932907010411090193876728002460105325363361497861900236609751049231528446105584978008852754585332391624697884733604031767760468015322379039991754623366018737973604682941306940313451550980919682961582562710464749757270395777478883061339053987302746404013055073276371997491808651118963222774156910030743601775311344284455810735349590749840398885540586526055810329316726884348417262844948065371239286992119098450082062635493696477467909392284200106869373128794659660757951162169578600526929954808400921336207954066102526436767588038140990029597079056549504111585039667593943409939479065831070642753024622497979126350881213038440270864524538725131925820215261657486142089890192257634034549407579663568782383687523835422433505463243134048727487442883423725281782575451702658996812723071390489050142333161904931028397703038946257388899420120920810529225953200878657210809261144712229125078375828598574391600662821683306588183837410069483093536995673659327873551430124128267600519000718027740945678586370203618128383488531172300557682724263875452015083917580643695710366773024741374086949310374599901685889648343869159949986263298014484760421083076884185395745099042433548070696983158456963584253266420905046558118560008843337110345210937001274466039590847642179054449538857887151163058384343797971704737485161385395484344838239486402736794878929883681047266209297409045197228676024381525609408728842843275169358076546782547051874268637113386864608373353618342369983848415272387884113662490980292268991112629930433184861623246627468105531091476823550567615862061741303418537932356707156558909066203148827620897798261339909387651727177256213827456179126560401838098388298887158356722238026544123273281418601482870507948720063151621957873576488581979628076036984267843114464252151372882291462238116250055803382463429011655693978622728585261659944354881694586176448492590408388952340024634246632880347687911737751896295418434289303668239411359171518925615760034563475844700622811013669731527225518249780934249555198772482509319431832263808079543797288706447495570381829702398757207702696156261617951104177383836945614290325219511075705004693074148349710972647391677053035360806592338692592661060130350036081971232382145874913062496683115267413943984474175427002528237875033017300740815462209436566597069257823858555250633037176035681074692589339799548746869632462683083989550506546640774680161983504871779150144466635979008552782086621742106148451189585899779345261229556224884528738090767077528017412407212363448982599005728181208150554971854280707912514149366972884658314758731555108218001094723022364254107400145851757146046752065270042497994510509468312320496625049064177009556335375589708328670121389339171221207243684771547260361285276594406223160008443485655221379220577541519144625807569891847248420526055855765999358658672493077907189671993830438285949039145020889846608121592674559041482635354810654023713384187148152702220305475319574480225611451869717990756423381188440126928752877733813000717567226249707812363728900108595532550264894947045289934163753331092937975314720163115840011067438179026210533599100079566844535931136752647445845353249753499695603309104220816204739107586869440436025310502650957932850100695457446693394129736825457005815401384280753677467445305284055507845076549563517569605465437059077095948950705570121602334666714416760876658984901479389464818519326805085055893343187565289575069789538316583369290773481049558111369984099581063136633537789578518386025524496521437464054740302549237350730227103782861697333723293709081490180369872174949198054255563972633243503180979282076645648284139946071798444495669839790206697183143819446737003064190492512894661676601952496318693458801754260649414274258013413220375376858298422139960356627437212543394354628622095940167024515185566255488501608445109244369856833379158902499496948808015592077118210628502464834639375256969570428992254018154071800987159059257402611052830560672400573846774685085817725330650279849294584107247349113526411396744963320177098849004222631321633399229310971694082128205452299701322447016420236555970232027238923100171858881236399187985228900992143102348702772097218866628360192867308635895320315443209575043010681327039965105479670276526412384544532449610426658765789393496133275759753217854004298985096043932237611896800780682551550549070949030547755441118894600087376575563774413221837936253422010375554627683879318403826397872181669647089707235213532472812706887634056341972235343974162472804722394572875962614188245175610263313616189092365313359933691001437205785180537542574810961263094314783459742132862888202132047269760489672068623623399358386905090713349509717916687094539901087299231199896610936341303778617028552415787189077753283651321894073410113850505859905246865975498987528744458494824426888908266286715445676390733875478345662790021816333077710594517726286448087978904108110795163371824612398586939772856143112312374123898415415384435488326418429075435562997059422819632693909158998884126859703338891332398845457600014673123909879368194076647394914763088355249300711666008215507820869789897680618149571867668624864519531940040959667957008342292131899093242003447942837892837871451540073112703004170672102364899916292292370127178522986381759858570378754218358159571102623692562821842058571060965220693144787414457086038955971055120833824308833379285429547069666250101306246611077993121890454429610947130824604597064328993023201400515296713112482579441481656553753916801558307805783925596714851375233345052315789979591648204260170343816653948756436473786036488407742101224269597869695278385263179367284170102080537844960952519482046320912406090886952500928797183682371081446915695425620165513332644863633453648501899840351555164405582608398546524519964374109490322069013136547659854645178490290903256470916578816443536596395140294810604950968837856438699494477646721331729107939790715655038733442050824656560490028204394720829179885678072496139301905365736782828196305534635187906714227912478787379425778603178755183788600928927721969075166674107972541123476503912245983488856103909014492611335324078357582868229243175441321127094762345836533241120208757439526419847414589020590643824477927778382232763147609518139965368009588570963995540811217921635226049585209444098398458384100559227240713516090733223283676126267657466868786190786569960055016971816066408867140924005366802790567462581917802079017410336538693887757792469058145162219432899425996211794403508763853233941707775710691269051036784422678406601707169636624999482823076515934586221064992717525702494142201674019756353390190763767604813826454300444379043184168152934328459509789008326421485275830722631037792138201406441876078555454797938364751588269391538988405958404299026316654216740338226155787659424674292575954753227525563749672861712154541296335849897611276990938695762468476861400635359587840675973899158030601933549298173321270132994645372139195582713074819900413022847424143922386144732719002557384237930820540268703594224748746889183190738953190940869951430866281008257092896619041006323238532526620076690159685120381665215454889235385680740807250393486056672740550985386688469911743540029693227825905375041691573612619640082342156979920262325560667612744112816265600336832758826360572198655113291490505087748244555521916618969930598074585123295243686443591399461287097734662326378327124193470423699484526219274988619986729203327616947780835175862784953087070016267965089375624170291406143978521785245603733835790893329872086536015060268644643398163175293048554005774934642318410376766610322755843715596063872711599304117404846587104682533144775199985416747730213414863867240709748417232825207301022373254052272932831952665006210265965108681196355953561492165732864503538728592055865351477227928054458389030745132248265063852302184670037596583379558739300294202758018934051308412286373894288747375711178365197535012808688824760243598167053151919074597288124774788392836544532233629481077017363113348326084782828135482828868618716492809354133016029994884076411429775632273050594557134597839286581291642391741281356533641735145157919275682720839102201493588208256126654398683616861672151217151339762462227412032364001244669237855682548013874642662052556182332960146004029044813678312206393307567842462239300249343135065712739479584661562060732588581082313563765703767598429685905321095823758553033353357437473861801991620655907392247830824267109121279004173672885257487457227267291596442059157829852517500882513817865391321665296121000835053980113107325873256893240536234026330507076143956358684747502341177838728365577458265128619430928595500301983602875104697264791907137676647176981650660816898775158627354078334668510616823949084535533784048060897041501681888991843115357741678131896419523267846939133578055743204310140038615396127924062306202445149705067087152254133313432467488827299386624994433846965601254219926124211883145274596623059348327583239250603700989482141881772863264704991428495496073632343208537755878295178722920725287379882978098693892415183066091319576233248217769509646160269027336855780698779765286889610249442561221854373284738134677153707839402875669861024385334843248810429805720613743938573425467173171903488064494290876456524451189742278490408722559275709783773194664759125579434485379589879273697691147197314059892495765004022343786109552025544162150898434417109568645410665877902562841008487563168600347186999537682381599715032521957787562890311852795287406698588567380002017851160288112030702552161818579858362192539913653555156591407892671586964325760517709875428804195462141216449063412392737784801711572716134764787453270319959718330430257187958901201395480278318707053795983025266344488302691064948398948575288471070113557230166247465201117999358294517781519283731551149433097613874335889630005094031403362826180333519313729035803457000934748001479878513929898069287816650709412242703493745102952776577848252530506460521206322329138164420768446290364003190022469280660932537976701228969292394443209433474705988341981921901229501344562467992728188486028690062685674139151316572609958203767549399040577924908979489428606882330859558293332888144695553313113888700614162087072946213112598944541854747846490646057510444420813487724570970496901782589414057279252203853226203097562033821783151162387930432676070476272508724304402738201940556644909774278508730263035945105057829233669716144847084293904624025672621091899556450248379343602000618595725857741300744926462453767295439937782183834277629603102825409212747856186195753296087396597482167015243626366535910732597876912045906272444706697114507955334586554963711637173649832126214635965599218633732483481242369929523501134196359037920419373514921881510534477853267560211974628554739052597310409462790599786509496634473036034097066432131856999691004091973714298758022705731950662993145162022922180179333277774003369927925492351088005454860641154155266358549124836981203330682472661643357003594114857818249453124834975542898968000534827819826875209501220014839135086643318915440685312870441966508455275625417477327902747757883653441655362002579657085719520352732986415949080348005398847622754863552241567874365021285550183330386606237611684353812782222608400542310653314197050537244526970438749235971606870458205982598906526542876304213227207983551011098050609489248141588660060589392438793358600093560019473799604195569669386043755652971836213932369772700155579118014901783092653082703791317599541018621334373578506925453528100426102771835997391460158968979622969839862132924353894754009087873873095284958066581014317262929474560795596025675790699711629418539532802298074715255347878360110523254018656538860399176322714977121358889891513248777431580257277763923993174124049783175322055963798663936708517122567274894119145216353425483173107442803584199454963992223714238471923679411251363484493590395875126079862671321536632233164418456143258844891726053986111509298231128015517189090422698558408104688981573274065371803421159796920305972951652785254225365185221686896044186424834735130772404746915665686162263145607092957018986292396290022861848603107822348767621147982770599252138471705135475427286715010686462864681210116240375942972884161520025815178149177373539180535398277457950535005964967523688555482658954109533096381374731224460593441493423051003871539872923242861280587760714692592536521578171316225794986975913343446754206534176009434141653027392411359901790916664318069026918296894777927797447860545988697246862385903321831967490497543575972725013240016969562779128097117887865980628598731488873914253103354957896407717167833798459343474451639131073334695461263785297672915163248445764866784333417108189827696981631213945261689968422404027637683987314865338766112821508858504840546071411526582554136934223254424349812149781708190364668470253971270471470746517610282031616209393496193551471572327815050322014209999623073007939232842746252247566928010128940118156198695154980414854855741932900597876177336908799891001744800355764833250155180239390231406277267113575775624394234788707974524284583626339659968536552057402834298097053537892892508533289211593600105312577881959101359961597504732319839674019003815330866378911860641581835246454293333705726671179046555325571250299527509034502260849153402708052805680392017573464371494998610019412148908128321216504612048237168706769774812338179041886393376659276919879455234793646760021835057228473046432231757887593602767691799591895018128098071726580238084832796482314605302406287378327511355050959269879116098836697067842401173703619358734935321634905307166694768288444268817719252539460969331499553335594144541021482240290164830981551667990843174483066813368912830770073067503845113145870262588735384560979476107195355658752451091942456786010633433265301838549511136931353289267813890842076947409807847528305701764744380110510510166552081138734885047253177927038281786732510981506905532357452164442657546379962123706991458150686524150847056461943832131245761031762788518941148455553423222428982082167998094402039083139307529549150060998800800977344810304205963802897505801504328481768214458782187455125883923130254778218457537902640924231981473406829238183696449648991601910246949553481439989496635418898549442921118860262532898308660513734703821157181542514074694844876194201722684984606501184462163056320964769008416091898330407045986722735291022753580856621876372648995026631531718480161168045108965659144441913484503719245220991164182533734534536140262168948939158837893816891052101224119727113761452472278468237476841549086700728756321629936152477953989868476739451764452190690014513708836440043674472842663810137103140169126999663167372335598130417450281215040367739775125261950618129341417202072563783024222537968640983852130075843953814631378648562881980347329830591988412217736593988948074985822398147875339955253395758490338536197374384991215426830908074321814534384761751122918994274888673642637004193885445167661914384507806443474511089748785057077927992243656980871037678128752844042334367621185382179545784082262827133200941276034145329741909391842284389504001237297268810908056761720586894607745851225291837075297288391989489856809184777036380536939373253841723233382077081887637095284347207377548901518780378715953979607338750724921799146045723599991211206862673591327705532185177605737610653890158882945526946911876769681169257949056340511070315197334215685703130884074449603866561461116216939943685500439862091533048840248173188883798641536985006516382801651234779261652529601854454356450014879330926885020505246760085773564961483847106591526501963687571391285223050742713898486965884952238149606600820611571289778049835923491885611998356644405961981582069150658966982294963884784272065396457069136163000917466103160503496888137439470701020409790788935890766825258162123388436377336395797657915577490472701859236513918127082783937099991074954692661131949172067090242450999919541474042639960616422380460731167846628672019336336864207031019934861199014582798856723317426188081235566137759563740339344005709119687486195054396427795289492711949346916714526359677105876648067191707796445552040731554023167985532269126547586199174631001239015208443097179051935029194796440723781778729069437254750758605442442689077965092297575485299090827896931027546899403134211148879734717602221467008567785326540013596073535965406305576429961536383302888110878241016238482932126419306475184237202816275986493410827626654965768200869080170175177680240482939748918618081946966425800256660757293745734863258139350966869026554081904604590048765284724960644439487796655339300882126707521543361899779539419379767028926457652555653843459893846686221914261317354968382738400218251458342058200698829301448157531530441256793085124153300374415489963429809356011524756948390025716629187801544566156049708680599328093069562668334881902916745743460896759292428235346690958494954059075405529541875539818910765183397169896299570909592877019182895939956855180227763253793131201122960114690607390103702766051086079157507733413652828578778561952781343018083335625448403441255202324766173649407450532953223505368665379221255780235717661774010387983249006899519684911425565862395214079509292410519419561688195461091191726586777241066702523698236840980600768328406582196662285555664508394781016671176479176105065301923131533068247998534943931611435112945787612385564239509640433033854163268350437281803695193463097277857630962831075159742047547632304909832545959501978388412663924325868897991914812761517005898980574693550808531365673170202152487075162481202318532928805062864240384518951048288643980490474209053018262613614820863463963278907707928883665392535239977681788999029939810448901941337119578973963243778898573063993846769887582466439374450643318910005540323885983641045907009299874284892373798230057886574053313538251100116154021179348794768389457815921006855412519828963551636368515853617328771073492994228547662373582163255236138497766895082945504812286537088685789431633747159722467188965242753784129332125384918448000525074947475756043533118248998375136812760695495933200844936354247106590172272709909193063749872678092583117043522559110345916534914865202933936148148615602583806902771401865405848144987857977822069843134672507726916524701964631707114295334949710850440189520754351643464981960750789216369030483328903659920417048272452944044871788822125331119421562463363836130839157895648904018240026523458634994911227596766968190889686513994674660331159715713107259764687445024322711223498266296513017664403840011231909720274413641889588032925350233620515696097524833269078004752005049457369479373087719545244617619515010511600785075786372140415224521029826722803495316800313335143338955626939951411606377968671961604474656810612754763876010363817731340789708844987666871998446443491026295547097177135166465428145098390572589154987986287472791561962251681543466779275088805567892150592552437866857060014908923826622727025826650262508196735480252940487164781840839527458004956907130316033503426981461864524856032870903967300838808917433470204246990040676322581805131561891708497556995597749868783235667988978994576757316172839931852928068372638671159383979216215335619299515061737680741283798046532631863515120621919024191736209859692212100708649369665370783091635334024086108359395741920354637235274610740151107270366971789431595796137945166401738766942163992720258906433009096469912214136281369937374064775944027604264142744637539496890188628569087693008528004757241231803064902800088433356710180957546556981822584288131390304416820050159192911017410830904490375241452735332380286270124314769191324489847813405060221940420332431600442779190495044264100090429140873792345065295213962450077497214348108597215253564817403666336133083735859984822702748291888823273409298989849634245672121000754648776423836198993444029989149417627129518715606616743889170938917381113362986896012434809929906316952262055350653799959239880216025579481098688492329642329613445902965229628931521775897849870219046329114685298233254534470670180961161186320300120983890236792789625717400463266544995344863595449232904813961238482724163239427695959197464101702875201434617134756467679098970975777458829811756622154843185558492081350057441826820621119485380469144520346922581512287452096849274966648765154447810820080088718184160632519315982588644861329766103971897220548177246076418565438964534043220408266368533577523983913349633907885085675283021306211929005929199756454097226479359614312188561551205762885296703670136735823592939835031814138902223479098666562247394351227633508362403578974228477165938362053279044262105366086183781122587486485200542535378237718360430575631706785926760708241695476689477758494460026404751589903869653733636090895689652745416102532828626336742490919398514967569824639355905063554242204002487403367776756914969085389331299997099725130863036776898977142260955998197426216245032414467210130083214870711324859030741633187526094119819670696687810348950110417026461858630892161045297481800566964529748763018717798189568751935126203096145197955237052892120998487834006488496486837536167203936164429868413979720642471155441416872048184927753752121562503012161974269723583637865981831417857433127497779575764134671549670325459689852084626030575789308472202369810336718047825984719744181072644356958052616052766616503596097619240109856001932709285420863710965334218871634461837769678048105855882661556499435150499209615924500662877598706554628503269783117117102270660232440770417994570975020388160142069812748066777235039934551254579047623228752072111691481813328214154228444130403402294168670650101360846115180796120719000458002835968257027735503950175514820658168002442313457203043608785598136329674975477667315137741779855586450723888126168415562470184261486650340883238312353035284563107245278111685135907978059863874966344002247711555221361363466603655926037628625082259345170349243303529643826907215416578218389324498655824468703102918343073242601099626500485538923447790531622928226756239710070089785717149528873886408834565928423152542177533568972356261774181595807186196801091175708154112646024283773711051437566474847214010347181093090232318073365006160081683941136276535724631118519835499678692717490210368057109478510389516790666249302972300442742314442402683916417512314728316183935323420371417455268729643266189383832052381351225704206189423546265466498234898655975364503035356936160086535483858938845110354383559522631042939310700288857142386931958111318765577547005944339547752563115263271397130527830969514448111247930068377361786642262274825939757651147326597589555684442351024903166109417586985577546245359697717116002531242566604047510464234772734118468168102136315308295337497613716248791020590289104392621297029572791255629692158058615277052111913611102949365095629678877025332504106440288776344360572328753798017415409344487081296791576599929928156076522202001088432191647966315358937699959629082504238132969790420264631492609325018766495053304785438518544629854204340742547308156149600758095841743086378936834097763078758695217926006931481550170652232855762461861486123169757348263954433639410040913489809058779838112473738789223768611858779475867226940785718367405012138343665449371799612638336459729655377954282091544452559543391505813338407086065942709413321526017188403601048731903739041174440929033919913076970482872974202193950094735537813256042142139663056782391944722028484836885774897549876860250791303263469917277934337223569682615794609148288212304801208424003355890025961841119952587979150854152189755920972526636717749713491002485785249522398511842906250189354051710526348910139390473400171053863803874634340771069197566448666491909244818795483111285377974179186633833517025033168363535703453958861154359639303223724432836373565727275582589423346055080141754602581624472678785588455535182388793318077418311312190986501687628010683597289605773907577639946214089562540654587772976092280226979029265126686683613352678878950497301505317179786383343799951657689316389191693095019826099427845912414068167075544740293679765799654583359370701671568312521617533894571087185952638481145224275187241672049654121306199112562233649911670480755402876539602969863444355936993872297672562046192075017385357022920364130701284821421707618438197772470571371199638291588191700341108067341704340862687452657746810340084234067268045349717179266234743092463544430665351445626561827820344118449317068061393254822133968137096439881845891136374330473882041923467257851734467634393159187650869587032716450582233087980799311756296599669231125553200325657393091281187881850946075616290242630071196205378966291805227095986363513819694295220588995847267459731247152030657098149564101032101767638595191988809159652160132394504468097689442738522291145281118090303084749300645001543072304712748206405344765296104304642612810589409077804758322458913578685473265969679619846375329920423124477819646062663200375615553722637980503412603209512121535666565155788272738006689696670683370037042259967707837685914242826698294307255334178365866302064074927005041238727057154096961458972943723001642717882358438934555378593493120401352149758512413726960272472094924404878819256224188834189139454710533423781759912110049045435060761394626157240362146656719459890964203049309338531613761131186244417222096428486009345752287487218087059642308950746028609055605594648432783014915741127012581395561310828058645534630062809178027705214618260119113248743896943084995014454331852546389804027622114834676926860131867403456095984164406063085588486875167840402179476743367189085303854401221114143201460708693170332840754574353636807369129450836313245466389557097661780796496808193990417177627262261903103414999355333164944693410572558355124701050567315755296190837639199428907827461395117289506565551206825103959047708058931780063181114037291204484624881659918843892069024122576443338223797208860597273607775722099013937592965839496584527205043874915273211570471376123403681830429249883679676036719972362293164576427428519505488748886976646210442578079259115779540595616003662790569691063161709500508634332568658082929737090381733810932834380266155400521693916045939115463946548106353034851995286590880263716872303331935581299743234119492324831834373878949673059051299824457133463001342725583465317727071922614367755457045529741757513471859541404344489065341048956745278201258917783751801792011068160053289331598438299151603625206485197568517996774343157607374731169225286488919581518142004228656149153027257074292102434024135748976466915255305945889356167926045633783656638837784600879589248927148656059180650142854942053964576112906074332615946295766090884232920930485537767087319292756815277611233827667722674026431577951285924944773024006640259422920562061146100803551328520283455755365611492031154125031846520471129921940979574128340909509586768747395264221446618240773097260907184894581918564382516073127450848671291801773346833318298166970726820138098593132490721984150318919464029978945976729315059448717908358495228382315649592384194337284978632113410619931253043467322920231667626121498494349747157729290929881940658448312933994448489084674569467318486418561956847640920011146102029983837796522216932401612367663595901813599128915159862451002350915085589740399559153793344066045844880039846714200476470119710170717108246643167858314754916507279927316652779838567817171629799827622884615208818137854098811306432917513086116182002454156768436734853392332807387639440471435491836213181766180711865472259279316720420439531079375322278337462043594779154733379066946180297263948978551565432138015948694440482490936858813481101526004453239607880280954771088898306847144005300207329344298927225543706462194425436464791439665642700860961913768514286511587705996296619709099051368386651425766265796564271967077806378217463673829511866141238513583246945598115707171636149274814845126469601550485432582672461143644974276289804630245432362837368187822176497798292004471037060222490906113490324182522695562711595205957305083235824462453908629748191029630675159545951817045352871474045782031216622758274648127609134415882432863879960397031364945776561415109406441660320160850522147070258196054925109046600992790427214680437306881507449337834609373665977579929296374962017081585090551751538406166145906703488086999229160373025891751984407038821862168982115836732627002536654315153673901986105955915910219431273499287811343181694735929437354519089672830371117854917922735519803000018247723936067831413510709299057745708119010135020100132171939241526210130987693713753600597002629925254806793049437076557061071543537263942601621138537825497287055413718561056444680300054006139043899212194671803724609929571450271932823011583902069636271321150545715785713875072606108243522831666488544263653653264925074870866738013213170252738015008497057213661062449699069297372075472566791260975794904743750354437128085633922650615233863371502245998596115206899305669005081739412157409255610127995993427603785602105360717357282526983700859103863666222667294451950319221711656492294185794926220697198864558212748098926849791780509913456976507378317022973569962267780171684119020142957167266136625577282990558848261381755106011019035414803094518972039032738054211732114522161897755332604926679040125773452454128711482573204070610843573380050614781718373429232667289828510012737245478250560358539595310521227621811691687381286706574753139629741627852925107792490023175875181623962050554096135288587711148489520853614694092060427161272213756653748544933897023042181331702577811643980359404582482296600114753412268311735734082406294157797454492046580959837715281393957252055608215532575852958042328333652124049442743389614510741468193076713032607229615437351178107398624884414798143617161895754024037876386242477449373971892900046268750756189881420858305555665335231106382753261611111608302176300605559896828212685271047946032413039167330090352344007253366854808144237822124146296277195204688258674536595604788271064375525640553174296456376507099096417877054240728733878459682010582637920815759016264855939044418136173957503989485190662195107958575353720727142392667067147900887769144412857459519775600077577313019419550963978091260609655751701324148600791525844494906061896295260674207080600343687883006888331373995066678419753522395649988760163854880533148655728662348048458955498429724116784522233781874061726307756865615302310327044913206606861127396283119013015714526338659205871255053207178419923943680503782301909029772216717332805428581808694098592617074927898183265393458907330994272634055856739369035827776630958285967995780621205898985441842080553057746401415594126077943218608386898282680681165635663502842450945939106753179143427181329086510350332049387576634072809318379855795523855402232977512499126614150750297222805264838578105096494672615953012757830736559461584308700021325247371337115242821761809235394090017056598623178005580965122404692406898685110154801269659816240632078940618188670555465879093102605778281187897261382954305354583919667329697137097791721480348681280791324894517821401740505535943295555070842794510037988336557017498676286489308613118922224570406640166321790574198136854440279118410127792064237812618665815790017936443275108004917262108423057150708547854397189705891696840573592230639026400819009795549711298207769750956166568525478657557368605364381785048686570059294539443444436676537720563004551981711420948218881530163599438786277851166170957811452282043390853565459208142518916083634720238101655026119714241684064522354330056874133387274914233536509960617691616288998216156026616121054230986393340676481063910897010544343851418049071071202870742122694429643857149031945385352798863293652950920149901778780190964698144874466859736082721973057991875153531045431884715689650372552161165679251496664075160886098937896635506391930714224659188828810351235364298161283794834303114752031668885434470569162861745209380235332066015033912642377172585536245360016180246826559542978433449343533442894736111226184925879549250016663028881913286358414126912571635269955818606073299952266515369752665468937341639953685631835264774970283387270444953564246147239717241580646619605226858621562680577469222405473458413021308845958008728946710066610067452853672860738465299409536013615011400338498005533711711774650629935805467714190171936330839820983915925026116480411647087176471819927909794399151582217889176937439931078880104139759176211690210391540448877578672573236400321325073425960996540211577569744297805559569193816782509497965370041503196035595045739858261003757545692139370328009448057831703370244646147502674571556457601015854704355457237134006523896724634567238053046127992357858340834767663906907440231628378286790822425211899860575704350025026047349550201233282785221024769819345865288004222833620335487282895028672207280739538100327248372388918392069901484906230167579676136015314888137589948704939559656914322792455866998062929025731959932147031336564214218627079421271629922216728590233495829783551642516049345939734067390619006624001493458492565671484420059901281754219524520983883214176053525442800803471001755186443259195884895044034379656180872559323027265401058595817955793657482235718813458900430579726906952259326948098331584212907961265248012803860795189382607127547827200682667612405294165400844755962656334912997327822669877811607899207413581830181806189090601311930946897543362100113903124009783422319105110417175194735491123233966225447074532555914700093576444576905657727824434019044063362332783629676923152119463029186138227888884149983674469509154016336682560354707127244241515074462440655766325116626036990557274075577980111492557087038434624712655573106501947382667561462594607445208306584164937363997490753289813071019753232809489673746019910685757003846150739316279924469609221225131625830444837300880218800662161394098670995121788774762396066026807675924814851933783005579081983659554990921218150819005256464292215548686116571074856128549919743369493925707762154550929863150759901031605057097178905067475745438343757232360921719499478752746494892488588929891895043948224926689568394479318614229192860056137527399216926475319524944200270525674055181534394905626097793441048632770535514714566588911450932177544680479386639816492444230289711942980540487652108510351475624310560841311392405273090658159735268305685626347321156076356460071140470223564740621021853084068188818083593521333259424692399756171600518415773828411040277531956076231188908544929092099801670680567401720933486654096529161636315403847467042810751512729386013815755460512145246489009714666056081778772924629963949382041386582515909170969024015829894870374956612533528868840822957147223116895718588336824983671608844093900588495607680061460129475750620105589866404864483904978568982661819682791881098377639005036290891307172182505884984274578489522714573041898521763995029544023331040318279872942524894286919488172452845397415516187907901331062723513117839575997086964812883840116456821997363654805850157269170816760974898604619160481201866051786834637667890255051432648092098732451850917039985465682897322573131028896269270736426398292017488672780211876536241365508873322918883707995031920795128711571489571868551436983352972480007911837694768591550962622112067760652910498997242033913807268485808445026528844510047311858981926679202965925311323980972915861441539608713628086652010497258455754842918395083532751126781403634469968547899599182708033259733784724621590299066062066801952689051011282088990524835377913394289481621958210998245478923985522486498265822820240132674387001786295723735669069019363213791039212293976840581479327783388413753599574739172472378648309920672085887892998380655365807048080999106419476064742799582307628400633282554199395876205130431361627106339001258821899698220413521438131435194342011416041821280128207747207053785561772927980016166929507174325227836569266653894746308506108291663413223817499169003280488153159024585780196573428983620501068775556857516903509543136874333022117432225988885829488683119321521929822564723314695658257299283116714463756780982319637035564577741628410570505411220753892218167157362056097947014224725430885076191480646751346863188041600649598459964690629750106268487769545238460800408843216139140956401274184742085063077348438696314621794626427913063618759898227936844108616369390271051908070552160389917370867238152759024495242844388309042089542849823545136309962828369864170274496203987689261443982260916487053278624452934777718711863395345653560696092258980483179889729834857208076823591693663534640402476221439994362222527304036668974414434653427941636558747032650150099050369617472779208701493304426410101505457301784015784061500272453110756619396090664556385313613203948088825375119922651554272885119628398276170439212553370800494779665460236695089268517935798900417990117424298093138577938338876069916973641530639446816413497930287495640594257057963303278256043161688413627308694489982800703855048383283661870002103706326541393651631452301163684471721219642900080442805393792975753309770847696343255414802610491978308830674061728065858030413845529832665878104065672816946239407130663357439327080710961243515678747816705112290862257262608026466369972445984337364014831642905329980351768546380736122395062114751610331794027175188498330340010935403479972558464933446496589972302094065619549509816706179526045606372915725357363307423599736723796860164149202511754890135509705981655315011394438559554195818005507833282115726964379062601666743152880678645777544557351476803467926176122872306504611565617871611869395781119379051230311848795956468539618540332325971451534667554007714331612752743226471027931096939907145606188944582887945028311193180263674636599334677466192358610374290031998051867870811652193599262160068729135451746154351363640854714101246841711444183724579531577803651755089516585821480343017419464853534119641363638733711316591855210747523751605276734128893443999906012010477360978672885751168083719554084246742997908926695833739380285536607811844327336157550115480013917417268081756666791288712811736438430659657668051938489712455345707949106863465507052240919392093011388958377433677181553349760303490394511517635136728420305262045793087185936174758024124215735762296582815891336013391959668387686224967664298515830676523310722200214553814497737985991309257234455345287923278564662681848671368257336972449780848724523122285034914353091704268296290707939876594800393062481757160388447113613554890524456388970719512815018728350872521284541457560166270307495483965482362324196838358501169141890491172307766022644421862812827225647590573309317144382571878427310094396505554062225288329558606946487251407194732514740437044371436567198924734014559981293521970612999870706022610764102329994356426305825531427842057826861473061457328730500686305999470956356900062075660911627216725279203316225275967039426000302356949510118198215832587636282302865074703834282519412283551302378361324319740212658704358672752366462449809269903953884569911359344851955818131710245585518480272898760541014471442163194793001923306420995531767596993594473246032478857694518119125425487176162138852482628393536700624528878871531796605068418344576863277452620750287418706757074689847083512144331320375360096061524909796741575826465118168778248951274374696625546784114397804098262807165912274411241942920704473712048359497159718359525429291149315618833033008290187601888355436227799055753014512554645808392971107301217521177942056535171850946305870584731259657241058985626772741888472749812509318121727602837457828494091701299173710886409962900677111338698020604028921543591821419751418361148012577689657377008543917228528709784230770441239168188075013110467761215601638182849087581877271995610365323691693790970985156058898956566048473316340696350520003881148431396416844075425726736048889078897468331353641807176284314774261789829639566316163300014410151866713898244196305814337932389942820169869838055231179526965480360246619903201617112233211172348213160123656721831129326955228400593048992900806275402894795856078860809355380780340055672733398830682360219686121480320759891750373310177031061119245960202706220160151221167042959516071702519313317727920714171458899715275235575532407578990592502285146939030782042441003615890346140778952013447883815653017369634916106385396016865508173087641839207629762776302948169717439536415871907393919318465512220630558977129594644224351214241859545562284249258465375075296848966059294833987248355067397832809965255360164849107934270091476475142290519990825053963502539184965025454348671314618179805618440256304738951945408295616228992200332043207317802350648883407559606727317738175825840652950737078364401910405616458981066456603139250407420826188427235709962069481899477935310021215642146092822348640300331105889010054041504342249570581700126402852942085535407375684740927575318590303915724556211235998694896353557127367186022967454079995934921922746714179436434515403441708714713336581245984247205078650054769741894724431282070221805941537329442201110727935656023117959480275120101711145159558051519815092000144897389000217625972308123142001825788024899332274671958999412809528475849305070541567016993128527313473984078708178068057975463091964132529228571732973414846144114504661795202220895541802020647916811678383648086097862474858178253797464418627383880496799374201371884978524022472146759872920842952632049463903458908043325412431787042747138156365674102312961595300695737888584701266188634665874462188650182732122938412565264691534893299351730656882278346006957491406397327561103274741399184111374518314018606077181000506984178732765575126255364394900209700455368972867155490231918507888221326826428857588951656476255261120872016628719427249711984920997202688744059997155823671093451779239226058123041570854184427419204340891941188940310534051359544604613268827578798497042895109527082553463875994766149444126569143746570426204633997414102793546801587756313724715323985100041055547993900674357311272618049501057544889136737908866072039374271010613193974516195056536786998312309911986117917850527695956517656749275266288667817030998378942813274126016085332326382334476363136482405566881572409930755070898802683867649980828553565411052843087251790051977165799782075943341930534596439018574135661556795887861892536961590826208642950743995411772732847078277731620157052752558849086873014442634526897215477832039168494035233125420687984281608630050228740906193359413713131387425466330679246441987213212234896627521165011543312180570000750083024313896281237079156192819983962251519162445460812497871304409767764073748610258984953197520634319508911060145899179698230151927185827135027347484808419520739593377001470169867795780492494735124924542752002475572157978582410998240076532441765051317661136357902682896212193147853173477334784299415728897289686729605303331874518999532292469704281073547541993465752502495570515440730139585145619938452619863283846385416083938896250639425412736521845830456411627751642191475263450315201972063195155986395485041033046669764286487855990949399430827306405803299014006323615974499569694050316449759257610225185264920225170423413586189068756544944466432444373213948852071024373877752009681405050639798777785352360246872578370648970412788155573295095956386882012517057768536956189149430318631503014196621942441553465249464838774786379704055761464148074076356388940642078952526885460995972092991741069865041542078098857322306694799048927177965807498019863541838335321643242425170799799468429278959455183499922889525992532298418226489824157055214591980038132242166140337523942846350853701542883278916346807144109418668364277951276403201366877794745126077345798327883057586004843067612560121535017184324433899574227621100231605359454385829950492190754118816339652861008923260149406514832404213964184084100915270224257555833613763149357456783457579930982177925316151446685017484416996870772599667885622033558020071812825021974889301013182616328907926189534810532145758715857955114304768025881663322681036304665410438585375448416621972039258823552112346792484267608237641906790807942516925172686321149236254552001468403258686984475200962510151390952328821924293928439599460419719239163227072241305104196562983344758917638342322917901252841993320316998963882046294986819607751423385131557834775696244005889371834136162442798981071850521770221941079537629911312753773243709198919257324901568307876780333312056627382448857214904669969401429591615240092411360648001837267916571987227293032379131782311719226635986277633228818301714510550201933177275276806636751523249336494172155968118546629094358649708766607723756119254016110360026328810842069669239652740615193636968226029004281660450287365202847215224813771812899739855277672144565266396690048627521137847129553949186082215081047536256467159966195046279328521638317170352014784853029722933179482583333790166078041610545569361191693572571460758914376821926957525270095797471135473926143326618812188258422056037281847175052777928532872937054299552481042432497602571188773809780400152711422075472875310203258602977463739975711366755084848083731505220596700358163167804796427126459065443893433740213142713536625964238126391857186088327803165541242535261465630995413549809289455612241103940339822141094958511283493374128524090027224975844954852098363293586082486920201320772615656348180834186383312484875318169895677837429637606414849064983423056283381566718449874958618045348126722144909761773765507455952598400065869272844272209603252960476675158300095969821346504881128792283059381033190292094246958412006634220167921457540036546013969568623281079604258386776758537371866051826378031633100953691221700326942244040455561320164341362996495404496858547789516630017882182985753864026256186588666217436510951005175718941457522338446363949840426337883868609799340959005113350816914951258243384404060497892774236974041134458444231291902383035181847656960085612484043450384381779604233680629197919616664051731744213618858730909919124336925558088234948529356033209425055055964961792823507160392064812813039290711250091611672105394060636617850891281680278152139179348819561928003706921926925724240751994045434732744071153195599552621141534223261607282291539374650107686153897575628339981513806378522302698400309651684404543375797038949824843653344708002234917171368450468094369191070563699466658638290699352322385978955268866678267463544607502720393103146436824459811526609554365373970899585506279521768556107266348589449920845800643612677056383878953702463708308558060540186712023998754822091783020538677317449464027614433072555623516171705701540567964484599992548654488360762680403414218453823988951129336631581915432870864706502944931018328151446498652278174290570544787967302672648936602528032896979339447690449224735820205587304164296055669081513101301135244178653739503824665671292236176480536943878347717877276802131447070881334429880203563026805003446243530844223808998569576799799285499603483157598584522624537154641297544441191972142001569253108773079093462478074394569812314180284469442243075296447881265586856650648047877947695984709602201444952922332283286152569139372220947480912675429033914869436009983252575731758804781374807286625748911783872206971028332208387166670938376759427262896831868230099802219405059877159822303817255650986770391966650586248517654775204294664392720066184299723820674151672753704923068006693623861326891880099852392648196896281800906820310563668420292956500086247584603594219336683512497735496567615975458056840401660583353325954876836697410619669189109386774951847033129661790700934345839488254021899587116496931387441550919897818499668189748648689194413913660167944957107602884351237111076114060348943738616863091602981123679382651365438657640813247726099802871964873415150188731514112789066107940746650883872987438910779183692284392524302464194115518774765594569801574308995435952395515466052453562579168147808787246969545878698590082370362750243360238908323565314866564792113660263087917166506021835354364399876495478423920307572470493699460303264671277490460061964877952403029853600924271675384016355381315308899329124710782860110191769600681413522379882020384500067635706750993664996402306018477009132570878629499146059899314606406098669136194888881194156200925144752278459939286895252151745760435750343437331314480780200146492814409643875620246884688182708374339758884957306390888072001069822544913363120852079125916446755914141203193778771458175341574990241765258171527886698534802299719357078257518104770665638647919518689665836524314721120932004913206999272727167981075237115490879027113525306647449356458944696379288111003408564299895043214532418664758666884436574419586775180931156670165060177110364062619062502944237528478162625514219663419444015101196001353683837701083115850369007174693205341748393662674729835186204043902239817885739369072370981592194043983701754778071242141707162041846652387278837134186846558697308106810144168608759868572106058251029119679208531379541412006365481795969624111598070428538229851893211864066716321959998212204469836119924945445271812872517833758951667826838894344121265571378889502160699846707081704382242863045035745117667943409251831866438833389164396919002597338611419033182631188350226857821155714196930532771166898248106678667453961842189431392624689136518567159086646947697635441532218029453039728579876380295166066272902523869970083539270925442938384588446574300466872173631606989294622016681383496659201269364928626305107042743889079024957129597825498144978542227832955382631332200346825319595544645407472244953814864951694432431045751077424559825140256973249396696169066448413893920113945126986035807283689162307061738914802717540171125743165710250325718578398028887981853570979059997896031464339838440220092348033135188717001004351881007430210866441683939843485819681860798220678718709737428879450778747911980657793285228471223553772192123866279302301053117851629450072345368602530738071199344900398601093681984150640512568185416407575684120278289551655465119724887221465198206236618934952626982282626969940442850625410783246379215846861917126963932011451993460299084689986980311065691435411490656720558130521371487671747122945479090084812999564882180651309393991554945651320835232970745789508202956841002905312380951437695040934240718267147902539716217616987722302123810611370928941152012901579086344178883219201716850400812667461047542271193763988141473498598791022366084328710250076861975297379237682730961068498653089281991867345588591363256578592076035063563806953493599547310973541468591050809201400017692773167561493566837259429123156489836523821403259800183211755702151248892184236444440577340570187889187984638517705761741884428145982899153224417476847156128720668018879070050781056975416211268183963653371248125603457083661585956513318276732338963543259785121550953255135261151855563838302491257601991279142322241247344253221893024634251868569740603849016203393324980718350383528403347107942756435675668702484484843871915918427996324731759363530160500716005116935213717439363815701793920295060890076272583147331664830830921172327685229202344921758224918091849840946457150368085452294335674071013814091449955548213575432977193018515286100977556269685118732388442792678400927423880283727015616757126420686963976465017542931589068621519213116131000207236559088393922469716125361868513670531059866697084796628078893838947187461684097281387633537936109421335723212752950900448932940268182818353629768622239083595083053780228400028538410226512287149608708254422660929918864624375065418037868395720533348415647130709563895016788807730756410725825822036153379242471277665923572536128821093019192938180730904246032935417875954343658367916083521096724914355192237791033257261519874471127628626351413434819038182546657514797306740412861215710646444130720114572263086246205742643369895670294803729452137156660975312610416143171290831435319963023811876557351108415460728555693948723834768764381029431370313696274369207498293798249112394080005694795241057102631093936912730446419126461439781190527328840193809839790548717625585798442935656052357837995318197999518636677922317231025638401294218800545350475282633355032026463443645010205800955606382540495606883970504736050939657887429781148878762231331917780044472280086455752527975040999977331488764959152699000130080747556910127649579849793653971437439994820585099182951379308548507335603869683201577856166010947692454470690851405459987694466806755475443222393594950248303605704994371597893751535755646979689549428578680499244419900528239448739543948420930925234269800212413767572997769723750075419906762643259333736029611470442239046716910978266197461999404313232495002862612417490495944202588696536917238128614973786766071801913034980813231197213961886858012190224704524600764991684223804569191205804193941910947632772662725170891524053820983480011744410733988741773527238153770245082617617142914029480423573334764329855616629171658815609451323949523409254066091811750001708938508869593657674054173742034703165669401005385951839325952031181745463545282268493462216834411657549767278201133141178523705594863853131934114882370573406261925208742302448148476187825469398963465443207999636375099205428675905216612779548907407367847739073212061797084212512399916485391658001509695818531193522840993852162420775730363820949015174655380455706906396152791188077085776825042995698678477505799059675684626355064449309367702067079110976752173232441259216220089578185767613601028533323353689945458759156221104545997928894382218195567998951923778565066016099310426882320315588885294613862662589768473203321271686314391260287457039300739398462665890346169587483320097116913587814893701688709253573115628981059487067042472637904244809974422678051046491719942076780884396182979128323830050453768598330066125690202960070247318820806750902312802410483859923558315208007123449055652321585396760329150025816937863221908549173071943699619007888498164810249197999650402912678993989194820494177160190560594101090337113806002859152585516363906639394267778603252832004367635405952900932568173527669285526198804824727359360222297216291790715924483332824659010891775233466740157419592828880670925758116643451419495852685146201182934011772766558855872128469815869101818126332252230089831706565029792720309270511479199575171265925898556828759252159627609508193911730663241529919586307943227129532584744389509700090068547052093745634400847926856690028533410279198732406617334259811910090605786586373946011588030332537211272426962749250731187907511543835017350639562301362033033678880828108904168675651085203652039478446377284743584043049568228090378052772614938606630752540140494213919965914368368021830695916282839958728879278269704551171147040291773725966895452116906202252248395761309400418059722816288201753705657752033236404792490900897933207040271557890466225420042143468141292285698042957865306723860438813071190137339287236414492659409693786500395405597497017614062144070431419768636897673848889622653085325895940953030994165948558673392608376096867508023827265932438124568724852115595569624960061215401893332615303390749143936039018075042174170808546104022157393386034512196635013565264113349812979022807451447944323675859062727025459724277163698764740111618400553589424993074086706662081457402705250962528805689612756646900983549510022340756727891110501756227710505846352953905383133404385344480793740234661654632288912642506299268032107725207423949844086671566726685986655172337988238091393180157593399135856040115161791487764207773660417224728059651058872406099481785085541300238816401902218393271574575705830133234758941897778801665694544101761976122781663473559801745126399594018967127979567864687948034587342135049346005776128105901479835601581302365444938506351418891722427459727758536773246526894705130792656012179167081335224559823979965036082782015489883189329634610300687884239690096613629122566220617340019103773376962090426484440696597236798940774717176420827675260129375647992074076722213465749091178192730161201370021742468049927080216333934760744602977018943232664666663315450201328300145656635863684292480382896863742719687555030348885959937921326415466806536468734502437723440786678407729973876413461625462881813183825165436405810294461011296516032429574332374819833507650934041068365358354394125623304397703330789430792161117084481116186067012461243299071850665378503505999462854990267397267607287166972740825791462488126811244065872097694611066243132126264319123820428020289504445824936720784665851319603835709006085903763986278319707213760490468017803590390021863346852893247193220558378063000191485424666904726227269981436000768923248194462159397585787082025314119948819347744538764166382007022046016703071367167445126865852672062099499072610849719740442110292460377103649240774653969267112316881867969181391715313573680338348972641722510648071871994534766204335015238718006742718034034018521404249982854477598901547428562155880930630862068303160161481527754288068712062813375048163046608537765500570704529998715262912729687993379493233960813620159617145278794011397382451011397526284792716413251587653501970495801972169516577860560558163997885916016952673963151012886689919177828706835775951920270989746810350963015850496308216995469060486458651831946571177231119375876497520082257327267718817070879613185656791568139312270369809518285115319865218128713136961272638447950939132883895422432181449132609341332116053035764447959954289876685309363099850954327921738732134723377780123031551081411622768691493012440134025467764681777096469621658973074775600596279417393508415207274255160675557973807188839918017180812394173046754428499141691899232495997924072400216858225069618256704312745762176337603697740216026963276905405254063820419892951394692153116350333065282518415758613906595561345372428643770578728725191676130516965519724821288874843574272063811037927122386549247266067287270207091097063630923163157480120250872048136426298481558234102840916589918590046949582979077802604524288317501704162376394310319470117570424618495266134315501776180966607776675034868319308445080938484297808359415719351603609176838861963597534433688710398699208875941595304214202038383310424538299985272916913052875776699518016580316012806836113763097949181603853496606129202317414314163730123770163623755962739095923856231084725396940595783930620905928083291626824990187318881964765292445663068585570952480565942310576053230902535829637096740693866091132231322059803169161009514792259025930867434241136401798760824135287278720302710774917639848262804214608496558305025749050619938091264828098485113878577823993510117256938500627036158891696291775885045399112010513255415379080476554632178608325262796406856799443706142209849348767268927165825596907301562136603114414566119128127909370887509933288687191649160954160781310629690836962701120384574475939737654363356242410030382616681180311151443260901102251132298703928758268475887131160136330374135224883655661163458747912110758433568663152339463261552458960686155623410098704380678058239946685702094356388619131388457047364597251968156679712366213152274495260043434705712012470351248851733209604208344497173029284107598562654573134471109968971048390731958262006769848896431829865560195276836598434005587699000130106513912119093576722726705389213188377920718530276370709960277342590808759491190443767532049220200822985310594119131512959921736103246008033967521349123371598521145081237132097876422410205384860760222020266637981214572250077115932820441966569016420962310389427762505537407159952892659488325478423393680987835860628362955492644211895891447431570605808679740855808106475215580693647547186546919340168567850298977971382498522484064216203098883275492120946777169052480143415833420006436270605473820515927649612593078500619589508872971105609272345144417515652426990088552817362706045573986987856453239574948994251348018769508027809108027904773565924765478755978983937305699407208912545164419718263668846012868379016217604177252949456076680384778901646053222945538833501065980865196972171522070894744533188137295497038471055766454080244386863843426369512132768288567280100126789215648192393105650903050677729092294207594347336485344100013318781401611451373429448515708530222142084601845647756140491847059029412223430470763698952436144299705350747611422340559052133732452681561626749738870315649819646655572419798172785506824844005243316325625351599483606323078185689903197544967239401724015099180769127777886898538328651730518326640340352703837755544310868476848379180144302121273671080835198689415536442209744689154631684849023415327941143100460290002142530910672733201643088196229410375593598494989326872073164482386140331950024785944596103825877858827047025644490106043048041534867280757583122194574419496304247519403881395806823953179543762247955158389271758448172417842355515696314530646738449461633283834875987745922756129317142630889337339608293110641996155952472543522026374664498080234162300010274157520618898381348760018491120725048420150608402439198258357814414398455095049936389406394891091129105044389008860749931040059014680132449063594133923354011901546089899457602465311830202255757952136472720237357255970037996339669681355563886334118814457240472287468974086633208444652489077525160191760719505780838662032063407143329088870496474827566328169115646196659371706914561498944248119775552313381348996734274191451746026079131952182089244151787711911669590481744877689935512861984854622410102092686853273148435381241369462061093149963334189234431689452368314468091822784087130722258821829133804372266215712246980814306288281540600828327220051839383725207020090634205807029812811237454526355102851538744759363840213636611550733134799077042588719363852642102272905286443253131187791617827654596116577080161003518679162899044044482611644144002611046307773244952687698176599423455402239346253571429188878705928993516741286487757609650607016215900621551144607824529900721053353117703191161243372676262943597404753206798899630981823050429643364997596323350285211170478637602061633573809233367515988776947204153135319278893121308673817437860047411470009659953112871073694601278018736859426238288535718462217360476364560668331723928193711312228233026102251976091597007320121095979747200184445616512069231092736159518213324977428789046059044465724760123460555865371995102475854989425433705012074868007743169035362687253913718095318366204101020857167734427350273411542161804950850563796666625033525202287088598313997375245028998953821186527636526264308728679272731803067088394614679090285090123720627793484888384553734516039641547331757077049624068113123964073063658439719069595156742444041772592512956002324022072286324623101003073932979622260034079592144114077930782353912667728451792778722292600622879242495671219630953323933017326718613608443892022805591499784165395755740248377754301367039417374444929039478543404777752991481028373382023569315221344705699640229965703665507568069223007372548074771535002181359174959725132241890971131321235293056665211954389838819579275051474330622123760265763085690351025760508734611913059723625152568914222322791985688063704456549402829856725585996967331194517851203770229322659004758659315099683383526764726226205596704138888178360743943081323943216157720855232969188260504549460919065707831721779827176596299800088528774130624894183280553040395166542278099581075709913052771640810308320195786586384751561770678511670478368527946270038637674477478196626214427918579807285436445657543969628114335899575709168116664531178462505326199279910704367317416949731893576838940620606922479048024053169999990760850985434566996790516471567455660027620064243673757850557837166592319236541969737530653836871009895883505908963463244080265957215068270135323830176608207768422664262459177578589364292691682620589034865458205096518964547036443585661429568686439707364369078033165751658221071091909964664896983612239804898660693832940715605615072304722529220589537981925533283331265267405754399795817910070579366830828762686591666316769203922252885004375166766266422720148439222745253499154927136814301953625312762307896309500900016767838159470041844204834376190063521792102314902638211907300969139982357589844069066995577018712427374749318807669246710332503603038391487869093191225841089031891467812052929014163131617827595784158330517151853296556162207126876809314661462127146342815496147455366509182650918901437934980711981475619713251651110933880301455391407705567774362810957524612827518418484879123322656758531327310656614147693249783169740968301896284005972668440091129096762140829882915988690991286210990167353897833194557180338607431928543300346746952457746689714826039735570807603296154445731866278967793544984936083628010652653826559266666302737595346063042747148250706506914354606395267311392223205744762987669786013420338830451661140719556109964759016856651813769547238634813753539236428711066648153321103484120168777404410978949698123384261705161953186525603317154878688665055455923935198625970220969543493900750292921267848734898820549048061306100529452766261424670092393453569457761216560882325095458209413173556122754554806267228383839898808079510390015955124993705006003430083016149589514770356696700846542333158340417225175114928747752985594012091452407978895084828592884033781137222774079214140591428487438097384007249639089325558713508452955746569922295722223062184599173543410422640914448996476566243614242578526373790261852666047062166313633221515229649555816224376147462063377629611112764918572972467679688314244310682648682972994474760257036800450999150833925196126159322285483328766038238813144976062224993549544394930237072489290088096530060387322745429573104306885388813352720965508240452257349961045942826752285631307746118192820324200330341127569736074659960376791365777111218619905712159776892616018958927180757243099840083482468688880304169900663399240973705290931691766407411200887466710033268900956961749338974528883328283902004860284249996572029358562793081627119104123570152232657187232106474303754648714623497993343157722435085809331650833799793143439095230164685553492162768162823611495696206275195522744923617638178412604143294024645234296449704781653151691881604534837845241695319648426416180743224590428447253094531229024957722836864424180032196935263233225859215225305252697546435898604643840082318385673634059659728607243188967639106058546078988024745991615891643000534496208237105548883729582989825060726323638815831094100588299923116847971699751323586179366247106409858761542153246856123910831584528858464174434685534215125216674170601791035676452716697889775881158567659139000817571523440436442375656447686323424430443309434071111177194441634237788900858461285936934211924486986063371901708228353724650689776093272189952644667157983538582435223918292890928985335290633104588315004862385475885387896295579165814012341524420974096280803839817897150558069461081210475316779328670001850419973752377842634805630554599208384672594051042013280273477742130165453827376728349708852404832449703776111564220031900883210195700638424196630186478232539714899654704111914918503484608841411383804635875530792536318005220951371221975835647004659840560826225179913275883200157511428124447190192299230286721002414378342073278553639122271900725294106123150960129830684547569746765252492165697235280210769479566475116031680342589715508663074241063531792560179991270709923487528471660571223831575893173681633735688144173226459389925756221469344790631572252438651810353052024979386226450283676435919130622515042492593506827602141094754652163819324993340345567510636355130213307752948809872438263910548307723887850417920106315484201825889358350480889153152083796715682862771866995530939024169242268983675189269612249990704254220843395307211858153279619289806214816807025040478144190599559360699501831316673919306236875491101049950496875960666748224551516371913180229465073984431167513480340553592768861054290844072042959570528980659043868024540704939966085966372653009073143180205653884015948297955129806110617163607184173523839881502640647301042845727191101416521494539823970617726485752047855772436087146843172379603412821612861428046745787428368765025758200288200464708449662798103179999214538468544299843211218225674941974307258517668367386544020211788439144663714611903851240465832439511161392160421636441961514359194405272443832196848615853225763229911096776922868350733699144464426834360460496182363965842026490472903142577839403168497890007590377302307216536497569559927555913940490112730156992657372335389213814299606407307158026911575761988960708100631314546358066910009026702909627484507571841502722071085068879717587710112236473109888529595498342277942461969077827808620844693392864096567452814313975467872947073954703782945206759551956744017712830393875610921967689604377409895016147551576295539632790934634322077814208732635355477336540099158407206385267173138661286974027931797058104851760961864894753873334424779656681050444663731615652364920816580112274208181536058380421803593198363056216114592160205002480803028005285271088145361078125264895294031625575495903511127418083243061118999038185362690730305733715834708746654968480894832269160922412911078431224990603157590732121958197473444888027234445007850150436786737616083074070889793969920380199195505659908987961109012741863764491046086735851378564831935740663791785767430977038432363242859996804163011921537723962819642843516958755304337096835482409103560926357226707289240234581575345645051865610123409907696030325834381194189832146895674061313011278570877584105502713312577045432563287705709781447174133464722359545479095655529591795704280787022750025223928153259837969628435538278816487900132342435133686378382626167998585804824006427409862513468629983800820904271482417416239205475827510784628970596487230944653301093503027998023437168647425985039155735101932138477488167453172700787012756976392922762533178111504192789882512212257113851338475351313678964445254061451013089270009755087887743916954701531437607960001806024077595958438648450523054447995087719336145781616091320805200607920465156721265414684166780426751259670682249511873833593499585717123450134768092163665409027547674546828464306604630273165122045170558592255127095467902910204189251631321795794801071208553859899378180640252429299033589613975466456262479423976806877917127879031348361105445851274051139976393684670624371470347718261805929841629306217770462306408729734957608087862142421519243427215631766731817359833630112798274309277742254843523677880233469075765669272937382523274681983054539544961609863372972180382962945827476033154000523455088087553887649992877839425650933489787046241346547123031642656476667094127170700633469805530033398476748981074511009620025987835168797476010530275303860136937731000807628738008393067295261107268040513771191318448180065286880729201602386611746958718910300739576847946444026663109962950353082749984867309229128042249244502980541130532677410122221500954833771584764852640790884215126035338767580086208284808539876086838373099064219493503876524745720388395404646880169439582055261781886773610734662463984663374029673887109139830919540672412461790907917329352213810898739019052255166167180904976713556461458166983324334376217005155618549297918063879482311082100917323506776984385326135343354927320073155743512637634279430416928057025507963686842111974970407132876068620388627853712545405913027170212229869824757362436527727447521852508171186122259543566486573776807221233036263131092539653409296904215147386748192362149731386700149122165174489809291038634553046905246492727901858700750074906668047537975711157284830181864500310022499209657575919582670136805248721982069435132834456125664963153308289828682988724514860754388652354212683218056346848238054879710329645037594102317635936243154617621432786100731002490019612449470090786866174108502396330043968747299203183203385830056859008689351144153839579503246686518132806804685703722519754704118996105211558004594327645500059411677933754164502706527192397832435257871296313747708237619788257309217070321603095960652801547712335012815758457736956059438138905091512300534324496948204078386218822339352478871790946980432393783432357608245346512704558394090172940108787278507589601962551066923490289045450184227895166678281058515579898277037372419203371768809328562543404839650793008719102815260723593803653852741343500720242087054912847012310272865069405232986692182878496753423625500329119997889683285929264313197882922060053636320602608046677697799650201190409601060334104870340406544341794017192220937985370177729040545942076381765104442262254444835262814824748680850313253694361001584810831675716550614088363319589325290095141338181236109233656967551284904286636054022646306579917385264060727304058758264865284420071533335328927534091493113467732026370257302691971549715258593277607359946675560828209728541970580235387702070943389046819891222919595901846945001372889913295973195022147290418509489463477998350769504925673628674283340100208817602719182239263077290088013782354079665012586604800056584441860500919197642456407368165190140295547252794238916738549739518377717867135960004978308671241924258737860291568613775911904659471542669066828039971049110951680210048742494609378082903884541858535712561691756316156838610044401287381717883861551157511087642386646470252840604008171297981769302819962890635287404245327203794399734514814549667466211590967212908717233768518549423901783675845858254380108671867131286567026950402686767595914441629808347841080157861147063105955521505531087613948735550301286312728492638593552430349753143956165049724066351603952133531289615417673076145664714279786703357150019220828248599114086611929105922987419945005536051425674027656848702341797452130642294672222942205842156445471247961664917775155375321430155646477517852208690244937647213393590403276244435591317642510364275316464752393591990002867488134835355283085491264428415667260151307471121257753843897849370576525565713098754674947400735910347989985752038694920313556569891711238222194064746315651639253891411758166959652845897549946189528913741190483659415765025284417078729244658381583346963155215889947240360907132319918320142172232563940434995096365695927984889981053359947807524258264501220400437100776620966227359022965853203475486192250238244030131560965172317631315619059353430425039442173771085373352556441862454615580714544028862063382006446747271483868236547371535013983432698087247841264215672443018014963543536295372793337994423324543173080363099005846361513393429928032470164682198472965687591580200350289623152008489254305167927068719929954926611418473078804384192802318052006593569566409220027132927548256243549694660138439292563731605638687706698599926812358126614101100366944695947783130999854168567456558384730047256270650481630340493975048053490121392232295277506867334983056164489360999211418890914907539800034460564080131870255162374457991855117898287858626786517963958023531399489066621501852716055878979975585878236033542788239753242670654371003270358141112904029359660534996694097049472457053698793776785553637520608858224919288472915494550541653730416589748654290150637608589632443427258625885842379191358620378672639106103555193150423818879379722395851919875018314242212889119648115679650271209158761217833760746115239334349595938867211739025770299902797599753914772968795974168005243016666055020935711650257096567194620579314954943898838604729196151541241799897055434849816400167449211063979590303316373518358641449152003302922697598966235759223216405283294637503330654588423309968420408363275262338054832715414134571709707315308024838257774333277547169323149758305845199668222847014449101298752638960400392789680595627228769057528292490932432998182796730879348135485523180021509231899438193239905879938467384648643471619324344178534075021073947457629706180990474794478691490665882711860539510341296143086239350563716936226385547205193292895012716680376085328346761840503852720304558504587514566620154366490787366255378801125206515041107661404650552092092396987292611674623739535535498968267589737742665278686940140625072045871453887624662444750038558690573695979788956342843966567486696084292539577888613316414542521301749588670907206162034419395007056707108996054923419768313186857606521459335458937480902312657998149849996415647308930336105517352761395448364361732011104847954206928666618098566910076746004560916495359486645487211743412521735518416636443783406812568827374369280747850954629251699765214190549692610013207208288823952521918383002502674604024617882747929490613948519207028302112738217582664891894645759724599792454648196212608506112571538154133924477468171083271763700149273287115921198903379217851753292327932774950399740811212793510415571634317529171701276909537050630372671106532841850359903478094827645803811111176361448893326340051837297759643683340825339908712573720553127652480684820565369580092408459177598124639826712149422589883120342803953325421380194307664966073170830183840319684876235475193989482288286705537220702670321031210618836984065059794557678545279733575725663109779830158713813847179207640110399123624572863550990802249269178076357054939676180385818762093947257616740865964710001216122522257107041695538479931915254210230102791640145827365810141158215044632424522053257397100358062135686291651295272985141063223729831654058613647676507978954504030138030523639536478665581665246571222511065445386779768779164519581194660712659308534466631589794956912765463938490851081973290998873071880177419154446611823031500681920645868613549923435982545807722829995609824906747781867609597934375521394034721123488217568707174727396165612216969551776743597264514655251371170160320646443886989118366699770313222234073669459244180612612806970064295944271926790195476017646117074177937515174617931968827140879642453598838020761891742321356441542228968816102118589248286104247491290067927202672422769188857942655174691076453348185228163240833083253301073687119578054176284130021254919643223738016374698446543233937362109520179981097371471412272338027991400709584871557696357268188578215059589132233893039610442902223217162032253094796967786887330532609931926590922735912117515550510236888306445381280708325529459323304845134703994327849443320854542931411234716755126390805826893679702131907153013370156075934986040181949325278511111437529160951309110032633410581653492648928262422686172478908472473605590454722625474597546978416889190654815424557312607057685928928990634661528742998487781512276746635896138620070047149829982486272674198410699312525112738805904580407918440843972400691479299623500588381093426279295241769086060516166429555811103963658415413618870626037492378224257614361707052330161748216451751207206620273772860332053165354319427494221460371922576868412789603701071377126482601782973576390469474886716213833350797896932535470848627982493246626202685792219759090014670737062712986481868413131488406181785813041434835727737090061426206382996670275580578637650233211998978906917090175997164554538585161447277378020802555068344173707536383435683673410893486565530256770426050656787652043263534749719085771530503106734490599060355383788993899419621929070022718627594745149497275041347443244492590632957298463987339833726492395288251675457297955349590125310717363048300459583336313023553114823074542147877928822170853186300548298309360468520458746426459795076847269994065451727419690617557652074073006292108941505514592048444798323673428037164075213215454617518283685456088970668406840521426668849175996177966148715648969623671018649236133909701534473938047484310473450289064446871455903382568906288309368449507366583329396992182615553675388346320657696416512876507834474625662350359044748929480503099787513009296545011307468136580593835194809496646146915966672607075460472545160752612671186928434489153432881386228722998396027619222147517620353253836699068615944186242279380658074917698771380475650567901602599044045168728374591277886295184045547129644040587707340411277598480944715818491163442455052031305387866163216932982458482993183156454912690295241237481990676033109525688715282713796626040869673858265828960263659574972081174581633935177540669225211687365030107845062740237414028953580956596502407314644292852413547725146109310522438972523828741783299508846856830024549126851537955193559754355939614456147902703360999986141687861440385368610171546337281690415685098226389894925504040584614922770010797419943276972792055638780924052612985922339148817947480510537809934273041878015154872079080061483162792169616154821571867254746866977119736151927557957110719185295992870821522011651664230842479806643314490699060417366308003977353063170012976611330247926152825407490627276462251650473790225116307744274727096845403517605927168081894629875068663929297970810498132673192370762717831568799668564880669740499483918387938103027957538492985073683485077923044217007686197036776334708111768883319918718218394301769140796743534187577819051007809000237301887032906985324296029690885377248246168351391512713636782298877170331333229201218771470827141878462193418894548076410724853707508223698220945367103906627226694322839956468840801815346075061295151342522574858895863023268891421405939281738343535946540004661844849953348920440613198555235380313012352297082028924995504957970450730096588842026411780822078279857143381108205462390356053487277618939292125399324580391288832010202395132436684816422793479015014666461737617503032060449332435254404422140482940431664509765502734910764362714790340686202412627005882080352380842682061936223691570053134798724495202163916288859724213068719536083050237750772883899446181046182850575384615998111875855261155939231840386627238743071761063115608936369155248825950083767326658822088490477379501840568913898428572771714344273495974827291115090727811629841438110836914514507193438410486495087080954826199734279227711631260768462321647093840575553140522525252419503759667799005909792936949215856957140619839371386711860624091321203890967433899820589330550994244936898119614799295413916692987899090107758085592328147309011457998768958665636501607987613466190868706468123413237544879200340868301717248230279987538723023205951454898831087332524687512667370779180778790931931690190120383968921109961734116229944713622380903035252186544563157017343134085785383428406845211345689958173353384398548272854129426133861224910799723916188798807128565216782260366774699532735211485720699077129723374195742417403978576109225271965439594906081698072382071625233047291672627154087324948936363057078156658876555814733079084685598748060881370560175398489359266610690838321900089234456322892140189053416628292449862417590171452962317664894428002634389829442898384989581669454013246027677593175338908821975391049833173828962990346551108885155617940853920404967899292548609596171508500437317518131948972932524215107381982798168165370212238978816585992669349824748901477251243153103220350578413390484378274621756908827399548542591531176131632611297744868394682444902123558257462731954662437978138659919128788181553707251676136326995297183439164636253442622878093998342248018904679384078657425002399541377313696350036229929021916166801612004696858568506438417939260463658984180569304033581365861060948215815736299660161308836082003199725655177548941813373771561923976861353350496644411262876706121942299224924554549257028183127158738015239980322749469179556311912091893796311415468090891818836441995065757004319288100165615678262939691452826961665896406575679916258877866980255929633503087573587562579393168096342860500233838506022467843827300257766527320935876692389290994061596161317736774224818562033790962202010691079031274315667448484765256672838691282759562756179142452799123731600576804847370906662065272467102268522676626436482595439030846474696168500561590417784747817000675660746965054675717975093729042687423576953358849603459157056562449523637736710247308966087411397722633802333408239945516081523699661383719236539176338481357131242871374195060331070512710783743763468152181452673705492109517041608283692026696177688690702683745298731904298822102927321819748144395925869433997031752567716354445206128632182600233964346689711366579469861090946509116255572661461529899691258829148774317679620803648178167512949345810469897031542124826894824088719110577325777015119426520901968191457973358896431013818057493707944456567735084533480347876113982496434832758992209241347243377737543749330004836234698026369602269380416840236045077145435494677256882415904872131347694252558755361516520066455473571134088959516657128154887382296454525158979617539860264704402380613342448714084497013236853494938862775973326077126100327054627658056200690683519332605652753755180442374844332789403469864898772505455045331066371263371443856542638440425337045377710237484774499265585977330005240870989880490006818823350403737354331492004066681523032826128189056222415576857532082217165204693642575649747396469131758520375567890554624739518770904662588585980723588031498136323312156156657856867664876228563886919756291329389021772754107715776977898711389549054688480948850252528632058247790344019013626559730533657990844281902635484388018847214312495700663768776348902221347173094403987403338233327185686443635248543647947185362756852531287566599881591602196125265279904256160470988121816717526820608258796084599724909847512368468947812578206915075497300540409725272294783514032651762507178626530043815387869923774530351602787771419146559548032973855132806630097092778107225493704517423918362210382296441564735182936078712173375626762140750958661170435946751818395930043930956414265481677542944886024900803273377634631008217389906508769744884127466287363810780669727616375723331391486534038876084983572617691010903598522226860260484609123834517625926949923957062941061653616776394225679553720361182558917715356103180037510177136320434753891869665853397320829582024383073469090423447722512346395307789229633317551642197065546197037321766703939462362133026664491441012411580812316036348558518280692138017439015066297871815959981466936272480140154023454060179586578657277806787866715027190417275931802434012603602687110202539481839358985811477888193956107523713461081008983576295221188591212708489737112500397027570486070089700556259065466417716952740370974290491673676897835895739365238715096198057726625265666342045971054200487663904919596661290692482674743426969669082783255093313596971026682992724074870929268093034376192929822651809096002814153687423093942146673469009403759989911432596430883313589089161568685379345902278438090397877037260122541263943082205645580182847226558395061907048149671292576946756396014155469948450359752901549438914451313040007614891509891517762356456162574506176580443990612543682325498282651647001987716175894424137508036024619000164618795503718867048119606005533410320341525435057329688238668238596718631417280180225331426351894311094139089920866359872675848057058457237277683048593783465573074617305769835970453763561302815506263602432900653328025334581473453626276223528690778045289764437531464265521500385402976994316852231141975440399370366734867133548823482046186085184938097815960990077519582047289692877987906337127446585718232645024658742424273443759196346671722032692862730394166836303348124496068496369680490396208206439880656353117778985918159898913223499419869981713935105695816697110552952066051574087319660165484742304914078949478719233755755211139985948302705684581065597122990268363735402206943772995138031322434190193185848359541429425636340719484062420765066083474239225263538619682841414501309304058162532463147504457084519106399668354965726927922537619920709280840329100250344177294485257237754062192311176320613790168456483560993618417511312977689004153241205417393086960626880683851608980532980353933394600091232896889536869720034857878806840489908923815869236679773157910193858729190868000815432399865748428854087365523099959244918854261534799426612814638972152357545991256933013386537831245214419307632818451067914623938109117448428909992036221198309998828301738205282696012027880418093442116058276685708211026572218116314041424907690830558191310424394226556330979477305007531112907647545201964453200295177708266898806733946225422467295938682184819323202258567460890699863632896896288529752807303264104235291960407649478749400974903666626071596477088231551778829325773582792312659155067021402758835289284943977759711194666002205892966898272986787611395221903412998174074170318934549053220999876057321553780178348377608821649096587705995880897342579723446392132640727259242843274876155412631805542429642604484205984099068112207310108790845938563598857078179044545014938552003613758310986350780427876171206024012836241868957537452438475098716344794493932359312552806104967151681010792966917204697086004942601007022239719272127183836964656652931285285532789270000076413620218037425028481361242636431293225575175314831117824455261079205881977858669626332512317749475445708108247536780815506799888113976958846951056341862049420494598769059311822617158883425567581584994208446707725534616446040881573495736368551565379305513619383409969312569205229438083124322126350998518125923076171404656602852467387093561760842199703016074497289222537363713559813196700330566303347487464159777220064706933537166750925217749401256870821661383961758149496631988850738786217575744060305704031450806356844044112017133769449822724828912716283831933838593166003709230509344923944360409468065443624495692158145038819320111128745193725776258532934303578287815701659341016234329126530966746207553249692990128248996020579567677106806861396617644551220837724773965269850946480260532698307265882769547202181550639761975574661059102475481146459800095842488210531138313779834868357776926460775049110705266749877564541560217684475895121095182620125348318289347267053211347119044818894281096771990560761995023666619239061286659018709973476477798349855598480955314952295867175520847617490899732282925720899537556963126394035991685345172854691958792534674398710027687188178134534254671728200918556643874283634506502542177905946988478752315812337489025915014847401394680659180487892441389896430789756397172838054790987121462912785947188934124083960283521420171251128406440025440432758558881310890429253079639186279505965930140499773650587759749182025243940357287638157900340793461298986691419057560778510117302341914800815858609230089117464097582646504613207099550462795237905740437061670846510827386124995699940545160585503509323490758647009147137939665234416684260966176932224443119349809323656987018258870232651204417844348763676170458195364243189698781724425912290008546649659799003816539142706241765611250888137756214613137372430824185993189747687653579459895493308667041098151716934286130254453862167337488028614681773137867057380195056272736840640203914369956032979817519025203209135133355519569573795277491798658739437408512996377873751168040273065731985610021246676656641592893075390697983804920724623100157397753516764498818521951557211594951335288874894426842175109684383332098439401199090681908799014071659753180291508798595113785868414590250377093655439524770283425274458377452547015997314354035271773028787860684738466072804334185837038789690158267627025683364506352436658115423508852286353014149529944159290586111562921464117712017370428861955989610995484338030774299857955458889004097086277544902461217543560694694085554209648261438014377041612900765534210097066164508715450971888467719675266617466379694499523273842954150087213060856813754321323840251008015112427445613615679787779751136875332767885325719124555698517737431720554395074833876853364390088323485846523922341918287190094609151075765296698637911749685927183814435809097827516881703951340025818300300798696267934497826050049778831785146678896731859371891445916808404626962524946692626178404827740663012520512944158247389383236709971439009746082950363830059057785062844374711539202212017051273740502302578715936932297967074705654017984336778246765681522977022398304633902299914137713224274179426438078923109415087980143512081725246551098300634073234253211748766625307647218311005087593107715182791920178076967025130997408101198143201127154000488099610777236852892381896980878337370446106425232941006573709045625328772576048074056729298242224343325226927662717946943132856012202146944218569037605442952562126511514728874196149566535077205981495809866213554070396077765647310451311947161207920746137876187454203399968190690499540752781070927367695814953347769461929851622914512935581020050243652858738010339899688899897419080532786847840501597514862952831097193569756505971974315000764173990626427927021533878414606505701991067500590014160862426425776981994955774682004648110128154876399377891280038319555143797357683841457306800857819150668291532385851259228797944476274199030369503012479518636964979430841479381876125161195142050777883413001139132230297386864390867924188899226501145321175563256239446167924313969887034477199084843466084131282088214658534804437161411651753782339756492716767968886144413463652009088554540343930431162848772322159562509273930747844315160711595181289361842763824974429806912494511947536926698368064139231990982395466763286699188435688464486502387952751551944220196297728847580084135032072371898768301223318046686913119283415528236476705080465035567176003114176386331811623011050724269862579069018114011758744000244152088975028312903421264977291355930114540095943097487583781782230458871431810677554061749873012275312102981301102046406121417101035774977874857870748019309788941880637446861501172401739847386346159860368301492466851911127644335333425139015168208463342204187300597710650134587674935099467160422273650732221313790046243837896908542188832203885587365990312465412925775724059805849980811623995759377666497861177495527439493518737491885418366475313880745916558528441358725411649637635473506497128514368104671351397168036942260646036465199019652505118282635491822570131442436990208677590074254882890643816303326266877701874976645443734767929150308963341880220018989939002608506294569345606834084263286087951784204336884681678871043190279158067349738244668265291666695913259597495996295881324984299421362099039853376910551905602970664970764730444771367588616601572366060098995151152470720331979637876971035391919238464306073214068021916372269394208254276657842320004378783123046657942972592899153012430439630084568963341439913245064397642387596032807355113032575115679737325757504132901686068468045701830515755174783307360887697547165841973302335487469783938673360729996669812021876567904567258795759195125517272681149100731929161031160220580073615437099284958991829231241807118748053001079671850667397538392893952700858187441007167961326417910629398082958468055960980523531288575372923961222562155217347240280175057245196307256693001354062564524807476901667901216449994102360023796785742506490729827400328122555953956842516798978580287171372811569060123383094623956946732302830397793495558338049445318336511779210225673973911109920893445772340087180323613072834707312965951952617291391621125128492062021494596780112525919033451042410453017155633943854177303383397942538378023517301004047154940274104276255938816680781924509540762239948609149112595916313309529364360516378425399587847287640620082408683207880096618639697071403710218270913700256650933006033136601336368366229525134488003008310365303253849432203443892000996911385501999069644860174999002991479743741906323625927529150945888721119675518589081658619382365885612620788755035596516948097273858833082837064577294998861343270099827646715028602930887089666578637838976083856638207665628076604375640218342693113427067783167669493049894640765621624454011258553413278146483116354787675935952726643261628325892281933883326722422639825668523340577633532076415729243139326547582663220813920501315062628559852364328012047293237699458102148872072785712257813924388669403151456923667763463436556995290827193538936387805349888597061399035515407314865232122234560042107195979020527427770275537085461385372486675588062152341846291342453261370774805094750047097278062028773000394200710590262329125509819989673147130593988335501686107367859180924263249212580919718039645546803542445520570118482455837138605952675193760493234882146989506046958034919904597077425599147353920439122893757572295777954353971631313846681494841299277235884615279927308206111623212806526556011155817794638792533928265479102482963632569816827867836491559234085902136967800442913430536819049673416744519253888097021382551323969084400586320613885841021150400196501332639642727036724721390468641971768541520045910637370789762287634686655646243230248566793812305589640113527519344912518505930535575793239462497415818940894663140285886507637667741907771288141458287873533858984129238688169445623946958632386935495619121092712743691269887901876611477524070165460036870818715279642776957280267040875948799641912251080643833684960707337303562709199010035768377908657456261772997783008640875340436212871496564960736278698242820628326120574016315621178805441444566875487694840981716608968672783017535874500950455898286359386037958014826441467228588539043402017408985467925424694454680698009366138196206063630213439787681059879920450178432014582319581886789980101235491278857532299197493537324200595288668963009382163127099784905306254724898087537375294219348232113337395892819156402802339252152736279432202066011774824818790932122769593477019442004976310165363768440423946325042174006172910452336318705458841306506508926051612067903410493847243316403664629297906050064045171443369029171813649776296640901932354585953723150948019334381496560897158703992917880974796678080606392367504307396262538919324248491313410648031994353181459908469601477061062553890498029989872406767875272392916017108119983573737083893750376879055242158543009454990151656870087881664507117898987823216340861577099422725422687324934830575430325952387654188475221454833649277341103913470097752281651732069974007709161359640819233853029265519184408617292271032930086165562518163512408050610659303864395900904943139094686996997378701537701051799474818143724097654465414980507349900603036371664813282362064011573870537248105726621164628340753413419618580955384543620739730903800180347941360950712060159515272745788710066075006861237697245526077754827855817064835659200699555242024259491248043018753447993918124224747561793402378725404776559261245794000976727559009327947308078745998018636609348060970151629683214334350974928660344371069648438157408611447245351458640546314263768889517980228803345535250152089652089782421121110142778430709749998547483665348050746934341605398869410790260602556004676781241462075043579027850429411313215825125019958496147498846755620984166417429859632844745813297069726401626875298923600610201078730227619240669130902645213104366581691293812311124117277434912951618139599082960720659870299717934277147974354896926265775894749623783831044506369942088218623035198963481035852989834131536701339718201956247521151328789908453332361177077982327069344674880992472015487511213021053662105618942369055775972371318779368414050634513473853965326816947906921516234812093158699135473232707289542757389790871690347607785939917352570332633797191068026043137664755255261260989044670153009636903801233604991714589830194216965806026335953119954456802136794220200531056525377888427275338032792689511472980681811635007647238275316198474197498963809358931129440615972983734091929756455580073628600156045114314996590002433148039347112584899950862966326224876764873863656559529375168701781099699006771211074486214797388054958752462534610295489166215867958557261457524093792403434578530268210815816398622880417113949784032510773096315053239085228366192082228352031308396865859362177678504648227687614249192015380549326910749019299537675641080944740598057142742800376008239284176920791585935134165799087115793855066288256088525257793251669521617099480551638651610905567622647604918183412790152248468271838259348797628705892295959707100793888009245368829654965244023828561250306623025845970961837512610091587911999085371251827380234492638296732300917987966169360855190297859002718941728962762873697602721158535776086254699652005199814479843634974686069942121519086373233784029226542485510355856844973673340817076258443868905896233594820695057078675143733630188702014513349180738600931818182819050245036006616033390241330801204810567182676682870787274325382066002563604484572260893296027786879353750786340751962471725755466650731242331613271434778326381190649267335005441030486160900895310659538820607896408723999230387222040178927740726995228872466527395507184264351335681241241356139658223525240606339758116889976453320007370550584948987840141033164522420625877454183543330649160897404447664546582268953927380722330611286489833461225130095386401190073347181379327174667865395362204575092805788480699131224953340164944737779496377596206397800184671756386036022261532784256146860822542521922293994273875072827511262871196899383238981308824793807032477035862857082275764330765730764828753001060274227547388490857672758203280295982365883033509717500497952468419824296253590710220217854367119675305717682796727007980506926758506344013346477444714909715580749817225121518702158996849216947062958883970733095686085871856435759238573982583169128135811659731487484178326459031339614784209609449886565702370949793890854283170884179986808643333988096371524580694260720302258879883304224035731350721845020530483229716513218308714899952177727092477517323451686722295625213806264976927740992436549258028717586105287638352680789767235208434931806835120965746724690493762348132146726338484090670975281769013885427609739466209234934251921583155105011089909184616695929488603269694104016754620893927983475201790693056798534761376709130409371473934477871713917963555620627061610309874791188020748124046754234233592298820986343684332712404981257826076599500351360228567699772766030733104143503252796278936412247945165368845156718153957287028340461102633560702908749161571979564247310384603435475952448973967417773839583088327838289514921675465306331769426391751335742053365464886394057260245185818109555242788113034756855831176490086022714258893272520622384520931380634726791780533981435269790482136943351761931110731908013505166364997698934360302963598274169843294291268436764197602897871558242574339774621748292203405414448165309386318701082257160088792675760094641655045414264474818928336941552793181217020765226242155137648551860453682379532375515404479677290356838152850629876580714034207193231743024855078459534196682616465800485069100158574601548183862696583002060851647856672086540713332626271491438339741586329503137898512607550131874939293317419115132419208908355532873349047674820032284029440195759911974355592814169422344439295365183418196311216038424442443770838552273962314345602760170138550022560228817297655411636559697489727430162057144096764171548059911630050597878946162434601652867053263380408564907986468270033879936429984334485321797836571707320186484494371413268933150920441859039612613002556632766164827208551434014874431922066230127963437918940797414953280121433601352118829240195973298415294595086934320095043776017440342203727349541094208612996397087525045314186383545919179593867090506721241529014836209513448205352268982223227442552706039757221224276416892239118989868237538726502893036207549435066795395778270171933921248361473218484713653708948591609116544809832443861890665685701595501308915300579479336393128448719115642198514818483912508821448786508461206255605838613212286880521620933384843429580090760232399200361192648840631957256803036398732407118691842784232022955335329403172457211108824448945790784468919242599095860164150392271507217003090583775871921038030170682567473136916747968159278307762518954129390612375252944750076298851480870490083392652299750073646309132662281602699488100047065544463017323575794753643898226560745157552831521974444336499235075807720206768630411324820098717728179291967774340971930683304517475537240229995874695267176626899802775820375649339944324257932091145771974735475188113611798239875005541697428946993538792744444957988281038991157868098907743668064292128722256081943363672807523318028718255318275828411630902926790116381423112916183462633102700691050506722896235455770330571378243809980111153024868186686102333478284494903248294927885902979051823875345428147564878783643217896706321448613809476908657748830627952427462600297845311141937698848297097028712128350332514489061657325592367321857404220023570870934860617803924901462092105649619745960116846668600050833588687866159564368974061341768596623903127947300788570983753288307945132870074814573873169276659623352818319216692276234866422070377416174821567650918256678496977675240709413235076734360022923640132495321316341377776857703099772952431367538502448996564587105757430124195610823949102924667349455240919570290700874622959105413301117891428220233028870187664449545346746836137332797130147511851382172162990430625729614046413376315479346864680748549759009934180308815212681361331383547865564228522174751491766412058403502891524014824285008411171821446362768071723405271504748978323642826242814716217186133285334249850469755003863834236853979478773997817707865248758192278054716556569305649664599810437764267671108180981416856494482756770737796569853184513260202196718451317579817256020907204909499961117289030893823744157402960583700178447067128268304884555987888419541469288926815462384055439562322407309354445706271750533816376305230105601627998685185034533616529920278131265032154996391838664221212661688476014356233741778800861422225969758098348957701083259145324764711928703751175500947503370161222401155394510081000193193946724143752163258468929380890877386863917465650546637932913057098802373109592722421151230470861079695585838249861410452861423153891499059682089455850665198158615807156013986444474409766495477721342568665809022632650313356509908097543870973040329311933151029395979774569898450059835574054471669108880542225794135465439867626097074452650628452507823930792930087284105595988134781666802260204942601074990741013307222577504409451509470119972684590219588145607988198018892737175574130113570587290933811642259897272788719113680040444171545692685837522238818545648389904892618009604264723926899251265665196741586720070394875090527225492642882025049186716269430217604577604100721207254412362185961680381230650788580284029500805653739733315473974272427475553767374198352981706036736009993490425285215592895816151326101478798885432440869480256814850046337444882675899843019160379635096197161055676885024923001040303879242193863916585464918249765616113094428405268709632105892283903044195724882059102173476920329279813316035114355646965359163542630551535760302499424926190315872697216794783409357004529410827083134558306825239478431894770005110828729205643052084982525048979388015502373420398872061640462158343989668804196447769392781484112265352104680321670705680559470556253315300497297740002109199049951108549510857542795683757780364608678625910046706979227167313314048380955995841835170204352040252368657194427124349196247265229833296975817946227600762642152247652610101201333346439085923704393934442486785033068085380277860808749943675252161128369776166477623909249391205508626061454371515964815408078361419349046711317588969662908720257146243926756309420943492046996996161814643702489080994257264511782103083403939244530196077674712411809447862797441909058957044451274306096079422048797442600389409472161048797079536604276068824125530353011153797832098077741218317579817054096973261364038988539686583063081042535680858302298328988794533487132708864460225496937011737917237848431632274675732644848672742094586788694574659419293709556019630010532734589274565610831756746941325928051410999216538891045901855939605817772720950629861856960485055203807639454469356633015769226318654175545140813717905016396047585474177599305160429994298600774669231140374913205194114491288187987541429789657765453899793135976924938686150446269220273405951733729547074426751918881746386648909189445600893311765688166292014772350978966683164907949484467363224044084047821790468789950623516418338717193113415763771256536517348692706236621938272071737599054432577464965053079518119550195348362325067599540544413895389952256971708592937453979397496999103509326669614229858801105057425459360782854354615881686526611268236485902015464046613493629655384049016029774798167057510428606049625008712782890416429661032240543171517090275391328333805806124717971235236908702914351146293105061739012575458793815349795211779331459885873789971527086666667868780000843238763189202000885683184097734408311560145978348812612413080432308143482325392997548956437246245708615391293531429058585282566373813649786650544863707101889894231164701572381624486030175957192300214446187967760345298857370473894978750716766022041614281152284283045967341205125149436455213196657352498152255446740204738953336089367479594267307618228681823355027285233908052353937024905705155968319056177017399269793529428505984600644782952448913292811741265345630897492353496123204265102499674171846372747933583391118644511328694128922177891155464520064497957498434964042638279227481155149369079924784971023721776870417032501494896064380303933684478405065679126598787575799899916959769708445416422188786526694933278039684093172811858936309140876443761926663941451869968755651339742698262029128112704751764793093388311338410516677844869508856998065241566241247270276933011042246103962643395457349916134436639934151614292197452334822122775263363395836671191591453027078430550860941909011272289589773521224776551899506179873461874061630384837427101615400682190052168917220876089677059563728428174493137874660743898451925173386562632308722690586392739911043519186240982103117504734991125401244580846571074465679413800599938793229174594347499492459820025376905558516455540002408856717670235510499440735548768013307518858333794670777756942926393066801372840581946124575671919730027816879847961894964322895622289328509255288500203827262027088263188028305660449450788911963064809811268840117732371866984167611999094559212795069900231593433922193483433889164508433171832332108931644498993354081052828843968837219012931892586347413438015794892662503465909907814333827265029128066996084605941932533574564291011791205027908851549694116773262903715945456297469854455699348109241893596435667542975577612316528871561886204248342602802743059510549776681551476150184264559153474622384643149887883030607764460359978427520231382426056575861939833797716577712421668399101125075186098911382498181292939603075050300486265204142832159583275652730957086391776647166688293507528489469269431640372726766442444912229488502925549157017240393683351120259647891911094411219968857840308116486564960902597170494226339391624544864134070419848196474074007011984667563221425938122631631402225556491605225338788521790134177318517464449438921946309513293620563056183269517913404829010386946138432325725538519848573091701970073203199807125550432494064364240826445804659911331482817312710588262468054798218606782406260900115339546691179132899026428854347541130790591024120074260113336197184205845449394831911479603163948666955890374015533777696811000662348037145641228286170360822488752473635600331439572131457744433453079303962831234629901775695445528674483236840506592075307567781379061800674220478534289427761340453583876606677054639471204494753160300188716079193118342975055837544245109862479862211960908691936373944697213980939357515207043015995071074313473771584285914748522892482225741163974928881751109058027737638933997061482397370828258609117935622884854461169283236223678321379928843372503400740507619019705440030125239945656107058248658192438965353663531887125091084609579471751961517586505615232893780446197493404964310930410707363840040077762303565466623192457023756348699725398685895203277496080364525339515647922005013439266174889664984251434749951123992740313875200535600951058191929319130076998079983995457781439813926979710439892084770886154346966983329643157205945332635404966085865647327038912223895637812192681768832341199344564668182101275357981946242712497190729743405754520590682317787195521314725656039250828016234371398578936660556704903192293688953835211747742179101314495179200182731968205485730374776444094936780565759235053961206304578198289681266762310641663060845968797621403192926944949457950102451107563836370430001051414991508036198937776341442101381859121469725952796158336011548089245095819210084066056905322379867019790441603796310502277063088963572108028585336039129223569817267092956985418513224405769770256578053914579563618101710602843267383758943813505175165341256050041957075179538182031427537441367725287728835152360204297556944816197450380172560591418606672883637557807640399394994803176474126210275406355728792516057354437711479317936650745593072743841938114929224819350614801010154208166816531033953616836531537330299175232134746999873846779023874180678956020398472423265211941485274306213302470870494812949351154693716671054734314507018009364769441658470417017029038894404713410913683914948737678193657261479914182385043632700420355138975773863530834491469594997576712316377998098438067882461749503823193860654343039304532782640272874507231369518291534871465558752555405688959896796334760281701223924053495408843090853841212271332957164484608724560471959025144061032664077896592404610814408193015085643378101875415308257303520002543452581912421680032049824411218797641761884682862670556247857434246229620086205070821009925309169144403609213131037173015366515489932274369610363437352643177633341362415204424020596817738734075531497087420904497584819895513015471764614903340145126752194632407353500748090456497126107671449115065061131990985035389051508297705981987275533874993893237708879183708411429526795945986449352154878807590409156498921143455689160386904104919368331301174567217538618833589689450244435216077315103988575312175961058027019583483552678774487110561760485106206717186601066328667787950340274404187440110400720265360212882257594368052027682543335394464600529217462556470922615773589923196205599847077817702277857768857659940289762696688262860614169806287003934507189145454327214780905341526212799354346842473193276085143850519745813799963566297478093752583087681007703655784962439938754845080110307904509932873226470079868116108153205011011741262438837491242031801606725772056550488459688468235399649987679271449369581245688482883424569823950015143212460715257126925956659344393011531514655903982223505600934686476542264988568806807232290753702864068362317011270458516725952765804616967863588721271562780914767784416996601652229634523993842533208167506073043842262421108308612365322079724957583963968918307510360580996471676725645818429233729881631317896828463316384776338161215021646652319445758664508507560771777025453758125955865020194456026657976846420216594821265795490967637055603943170962038276049062150933381227643944641344601092694554948660338142524584373797949698984585747939770959132947555640967856063981486170275999672525177175481174925735473273530198600322006467003663423840257059691568288603659972668569107811983770692150894827902819436863618355837334321687733692731571597169994982915851567966196516456753396086998835805082232562850707479936022138832183831258555133541869289325261434557527087706088937676305211226998433597562079432586001505853863000121836713676752012946306583397100074995188659005114337830509951607427027964899627099867011005222666894037946321551483681065904877230239815664534263235269457105581571662864937901020065869297045768435964295450581173337511799091888258558831676528694985222783254450130458802056585404418590866500396623571203043748218997455355306571476202836172053971732313789423633342775808360724940891215050638054281364152790069637507883604366180533686413618147015470690168833715466019157632151153252596583863111608146694808679595254440705906568880914094156279979921288566777064198986011333553565293702773962916887544181198187876036346006480519004959124654247370126819321461697405437065494458442752711666931625541904227946302045292591925084548110984251876883675955395450899181639016410025218592953185100503365332196365543306476711064643556752959234439526862465232493862972390989059919465572160393132400118883029640293877622123373742260458527707985415583336599373142210133121603457741434455927609443365508744268097811211937097951964119828300407451139451405692042870097516907905804041108774004787772092062089368487898223055312524186511091935485227213393384892169077013981775077144061921153587177010739883359997527380753840060848714820973935907752725438921911489052669204648816639079067196654004892379247508059018290844029117514285949283271049464129309217194751337857392130742307317438317707292821753942007174489081300186470727065464273981729766018906271581435809983467624338077059343424165459673027652353311183465534280296061026904013551941088986484636866962151741002975030659500564139471869016468362529387537449802557523959312666284017217405914871639444462911053113688449973549740784618205073489147057503669424332359253778362627617567972028695850140351859321760486653210908289343159299390473075799674737538960028893624408368243745399238680001866443253863114264355690517723803239099658804908626899270127804506778636882362749999902308009480011514978551033168383056441104406880109674383144400682768278003746301636108491488507328357881550540247461121829889482516299172000389693495996126752088337086147275943383716647321238064409650210666997263908345565328219735476807845084222443987733772425307917641274794160916301853901016383376237915902627023492803344178891967005203717720354618066149942124415668075185937399047087611760293495608011077895829386392931611942722355083854024900787093540499410972442365784714525779325903787167162705925002679862669402947751244376081200408915571246609854412210244673085713147717354934651733678190442941651308912692294467712251281691162820185552654571173517592430864340507512402082299030397384485495122148581650017680352966829762838842863203794219677564545769933170901376103347504831397213041070160002831518086862998209061521377417223161732278580710191528338495381806490094787074011385303047248781360963882169639567228370826837867812110397476824562097095137332450666167569518823116406247311051403910546649019038374330279133752178881529354364792765560438840963466475230467492307480745563581905473687277504365798851144121834062748467109506388138791833544070220943854477726005949372654478320997042518143735222607810512635889290763743562071159899511054016129944482785102769135795451020211363470417887519782498058444380490532519989304769254157783726453914679534395026614411005236616635315022571663284329117614522085694567650754244782227651507947072327555205612115056739391909606111726435272672935972957125246751309117448050646326205229850803863934290495364934597530388496263899204551850791089551475523774870091348246707183214569245603548855836570207385499383721097752129268810247395411384917281637937574558865236154959886867534503544219505421415809099185252175134536765868008786345968311567566982888528692269004705719409243742669695701089924357780990958366143908453735869997027161182143675510213293347867780325268033299886680698584965221624721013353126163313203472278717108426029670532605781633669561374752151020864797960661511513525358591401538430340712158721091395479268869349343063343364870322651069104940792495427689709061880381587146751632041744293255170253051412041254835353890760065651872652225941545899734016509303615345477416639707565382206102980720737993766926024678946083677422403016508361125309491349471248428073301664608285325388087917149797672857032232595371746918157247971068091188473001479502418162332746828621968490041648731558198154370777305800413111299463831277356956928530652777747720105536869117581500615456662352174093033009006027707911051580401378587136021939029380266397727595912172474369745766412241746519108233782506194290246969573985068158799115219884678450843086728798764546785211922213795175068129846917987813891152863385762293711021424363603966054255599693860224651463102939398638905867546454503045952240858933276361322970557841889737592490367264222619666522664278971152395340823232143615424495144091017406923089667734618751499770780008297843069019877138022247951231244498518169710729220335985868758172224828017828156914409740654548249814047320291211487279958785058459729976543273026078275744873339503441081331192039904064145209116276127551308314923927282114929478251862937083618705460887041274541134528519246104705984019196714622867843238477396493259431817866655660064092594679073694810649543258492988551286363424619323210215859352863168518013848599885139193860576934038615581524799594260872307640228279036630904495479852229179156236562148009752128985739391139371837539384282214250027009616539963688344749592330346129846405609991507770553757614428941228983526274653776050704880500226717998409027248492274108783601326617649136375147214006758026172898520301887499319966797468406174695501448678350018774947376813942782507709745728220661669251100513144464046909197416363848071136033610195107260311319505356324943079886032844138042168657942734523980735625259884048080815324588399230414242093143317546018248749894399605056418385800056166975095827696949608088030798590910408680300184182468640174795016590751911200346492642176564122595827534651894421622462120462984668287203317116059596148089160563948226325747161661268716619426042540137547801254349523810855197638313433779355289855296737613596777252400657404988766410837846544703655461463925137892570483744323327056377429552317083915966692308314647357344735988626698977628123270819250952873585563727813424325183405762497724069096546266720764042185724768552652937792640600021835733098420736148271461819668018437831087056213478833240082272914725127658579452085324282212035544908000640719387182434872441106322300374611382682519324884003970149767293509005486117285621486130360501503169008282768231941797360041942992219127694459528091701823903236047819388565290276581426918969137333041493623134279047792256386797739679368911459023138448618890572332632439114882757742671552716599924999598643502136186722063638048673613838581779458890217797844026098679513265206400471446717276454652835684041814164118445987610632999180757244313006526883478627603065768769340279169681608984514175985847703303960391085622417364216763316320195294176269028668492110990431915315887826856428981192578751283895477505272376838323701164424113875173008039878337742744043290346126978385058763460765074592289533939320421435295941333283748662294352608038820480555567057997238996238682976575590812308552064306545352474064479018534196117183413865610434939467275388874931356967394139036764106550810973005239329572183341641844858109119344585406911774193393660401984084854356256747457185846714419316263691733769044595444798026466828960305221656959929416947781863464602978886171890852638991114685035571426304268631130054284699301198219633256767095424011062524363242190340787992293362081245343001657509564099922451447735014171897670966613174466162828982871680686305154378692249541479915113061907232036388975362843841502495170438864264183836395639489749301431478028537288603709303387484861226579864196385808006670214683771015002608106493840305335846115772699130486872386604952210689505338835513815498810672150409580118505486874944140543394942166018128938530110761727489623674570449811265440756401413576498162884370860342746513051499866910138079246164064156201711578884704684937493291785392282946633901096575464442297182995088651109725815840485001655370645437709292341211275013896512777953985725761874373326845764097998968438797304662454394124747460294297688237084618524199358256879029502161520900407805809761174581073634119469348339510707001229661161478617590326806987602107143269632271608802275281991274373844995931362301988466663129148726989975439002758400005621035564813351960886292850443232346443100212849700031241783878976291776669839749061747723592191891078661866650641974681200052746355811665903753011079050889686958816706733969238949646383800996866464710384212846651624776008011438030799173272094868463266007039927274422112501112728668029242147414055366651165467352141819003805613650205816483708551264468999064385692192997873218230254808203540740229070955014256364626588838649514265578071949811331686835271488315328265827320204680223678212403782910854055425186370915736763541300236687895468024169713653739413617235845043211431030036489044545374990721713305617214500888507254970720263318540028584453736725762903707049941244455301505517059621178182987538183081826886879778459215540715737460653271315876338366925195572782779761097852950540171551949461745107762219070698451338299549672136698561924655206433883870176892727046467721035291249229151349163263522036674628580974698319291260398627754294388004588975789614993432873524430975769386725583977938571255818464924433446004658397858496557757230013169227857056898894670649218230418647447773207098188559925671410344476617279655166856270589963468996646408891873534946419406291458594878409239465424521080011340724578955002255647947960557624350342250380248209950097995790926142838290265515914803624579932313132114021091351263740938129850785457839601658974794243625303213549968001560348583482247894281246516178726366891448754706272492917877015942405058862215203960660865165435775944265800854764223466387964750876102850579086425311597360531605811907094054937201482429609901349983774670832017051536984670771888931645560689494958317217444561434243439758856857389473554604775163019393262324550723639932508564432191361363579836088557448641290299365237532755919915184353520662092575667406936524317493418642508524511422932509214800014325231732870179589340399679271354187301934665840267225994354161362895054929449517351261092066452274715048411069630167577337332613443009564955405996658654858176266025481103871188119331983651492921176550636529966823559410917027780731818470746856715742981263730354372471260429470922589605161739246655836396173832641377381578129929219468238501635601598619522302928736053841379706312751495151197030626652219029101814706568126586634987778144906125570419069792779301627209923763983448450692539652852994776285776061130103773330790101565938921750765814440737240676908276523134181678522945051757364489574739536619763114966815285486629566365731686655008449751023576343564402413620372644895299078368904745078964390333795348103444495484036706201523755769599931988402914494396582106538222148682513270870505156056657123273677680268693143248951891572018972849086681044928272742893885380155437590515867873387764954125728543578976801828362736554251930028170684208607713445352128207571704653397418814542860012598882690603264820540364602919429543519282234526888790116912862649575114272215548530126601939068849705214360550938840725453170757871684239422009398106998656225694727601339924421804531452765087703391645480475109385830661866539075130733816768414103790093047557283936221361058860144132072594910708499644501071996242689612117542661786034485036787916911143998770062946479114585832882857523593227041959529438566325196323995133244274240350738211728457369717590483237901352978645328670499885763950916984511186339809428254877785458688434812240539647934661117157446454150503798812756901296548170586027456872324823433244491600815538953770596433743817012669878641101165908975593108389022489768237598893783715041560341124008802750177229708272023074387315030299685684099725578599935233331106343098756868229666117111111026435568611532068334537359905215845951939901523951619853022139809974894692477830734006421001318207062218767878397960744411227306927196477429432321260808705098913006262012253622124791148265965591028306525297703255954825925533489817964465655835241559409683124793441210416375201037109869284565660084588486355880132118382298569467016493980154667568713245766200198711013452876277552487620073181603059472589501851487097212833578206814896261424499386482350374007659334766452177337040733021394655469498464858085625223086362237945482546126723104302693636169771782802122891868174508678211645913276529633803315697689665689849417947905823792868288123119147565896927541262155184028321577370617674731009976834217244548824052651704986739610018464565604317204060040159244868276341199681416674276121280608980229732714010127761282967555013914863269247786051178179538997162624858314193887922818281947460447266697487346351251368208545267239304901799726394041292304510511458295274001352598601206746532638638278560064978397602820373932435125784294216567284981963829673388604558922861776025302007585535852267999756113424090038570365796751331663342160160571613997906471064437729976655946209128423893187080451675248205908557989032669683299130120653487650233339846539589470415692163057325659257418320912470912916308557431192838528099479193855440693241635543357564297677715610353684162740513079086786640977255737304155732796237643785714229284525325011800175451631204164426076757013395003252883010109404171635005422873553398632569501368987972553825692435422941855308654842391818771924528711251033568749867305222656608866053951329954707967211701310112429767004321215215129255972250046981263733549801510404158567388848725345002316686038063628668229235098858039845776711744975650283406257082163873709806942811052185755228444759939344392577952994922818922701888488683760926442650143645025199366048790340306940909167675745843125287947962372409261201081534932795957523987270156445304887668833223316553573505251772919679518405332650858352770282958585932415370223316422216611161391882530920156620302897618006483835489986010635662887254750723538452843790000289000587795057965303968290728826252491931945370943030866370703600699301956313906947987291203013118217366490819166196583852271465190509976602691035380831375527795120603583458107202748164343715150374146381979641977580098443137037380006773993589745962252008743126566785573845101165687894723455364060925112484303491540450000341052325088109147401797190757207028258854595141076509903931184429168665270041199014232117504413069014106002197754742791447590589325239165060119385496392602218071766618284182421309805022260184025770849379626184624132169996059721621937697650109232654254266554253269533745329676767668693455827442717047218826271913562178376124225309810111436162404579213411078404533642064865367735476454510175236959673039440702517463664295006375530470762682727055707573759724550051757237456716904621958124976091088726109144091244817753894200647552497785885269390925430103332246855120098269978928264130115832206975943695669568164734852199577019261405938064009931365890667344595374798464029814174025373136239994070115072876949496302462059826412272067697495639488603168646976583727893190193745439184181129669339091187770802752603948481476296398013034470319336123832662676200317149503138431760015822998331417232247900652647568113119920031484334754925413957808895139466139390249694501874797511371125051356490269707696889685371567308927581037063559618534650093533483712587652144876657669999301078101662650473515564160397665008622156665750044275314641022910336681147136616311083275063747747498788760356246935155276588184669737055507622803411882448589445247670734095682421218452625553162916262083045595436699626293596812147517702193843150955993075597139624899306109439108557089076509981944841508963706763555261719169129716700463148416717749030596453086213329650352983547697916888315830668086866421212570590107117200340430019526244099359281022284201849322700025335962387098503999155823998873563396881508793297622993795012992875447879097540903924333194759402621295354552707250311339715116129957526264767629027189203662964725434206328259962608441162262801361991238403672853453216063101983462774889952377825666267217756635029987319698496165211298606528568018770462494058862402717469010012673200502415269094891706243147531357557133839004121612172747600596343763490453781865104666590037774398873137922597580071224966363516972492903358051112986621842497818146806096886954381889917760359038328848001108183427973921581598799478634146452290029511446941708350895163326534586646980039708428061705608662186852948590252442319490400202756321132551311913071445690800466393701283508079807588292697540686520216722737595884726623173550964230521595401843998446784014580594185535504551769752214966658506888163302254634284858876077510812223561122631024713540473368860133672766148852306594074706159593337448741265910882141798167103966519983208550569606682446784082169550279527609459689326722332978926543431145596496471431811838116532482952947820922171554986764367398027648198360174374905900823978877879012552857586951351826596667516286344213060836329014860369469961583129903859911796550494338891200664930929155673622254383046498141128878574176205861764001094883659202590375137028955634554732160524829728699627562457803281263557371428255449847605540059906784929993348224867306109339681039895951723182266812144372428309765694168603905340937461365458702347831722383005584957128746418204323793730320427341877031459223696982726529502717380792833149550594561869502160511153131484311060987351955121939727962974378745432039320210554292241182938598019740299654707393557288965719131608963613790221889832036605694315762067509745438000597608880304101290736010934870273935251204774525310334089696121544397653432766348712557862511800484679462100684701668494179353977797524603712607786784008269499652346484164484260965319326342013502296303654759727239566226862791746881409036591932723528623558151102413019034680402719772716632548789272995695156450401902952969002813546732818120059027408634689163530515822111878511132364066169711152781083796936723921780132909160511284770513498285984873194437236188374803029227463728715989300957196430504927102152245972147348833407681365210078319905162756106621682423746656781828637415403763375844456391261739501048948349750877508649447309123479737655948781146128776615691055877445127566186129537136548291446191053486681008900674942018205776998816061130592331682191163243436617864763360792931340518376355663819205349470382073149929374434439443900345088055079245491703728514454623136997293576606037678486787960853916220267913419605398635837553318894927120292620441386481040208122728127829386733124749550212360969059654478261741689393734346909795805406810046802127672582418052263926936641951269316893876554237397385734671848632702944903009176356899919605061470339060301467831949460023523873336517269884524566752893819094971685087112282478141839885131316917171315473482389088357200305335998605080135727088084690929881227626559881424464532732400472244413728510989400952533874186147925944317883784883084065420258487722634815500049172587862069415119827174417459515686865944116199722697501121604324195546814318598320295586749181805133221410199576934252510113333260995494923287705116055376676961148038069461131013724201431547292878232165173287752955929101207341482637873843835860958869289643558353860249525376013536197431962422071452198529276471670703015597403958329731665695899161414304142435143984016529822145908708669323609925362659325307373585867444099672933337763218231763936918351514237236148104591065533317834076339674595557246434276425631522636431215851374364450147409272276584797805845859001562490585227891704322594336567903491837032543943525505388116254746342658553467949972449964579999402680137915157471206529800452590091320733866105335280369418096982670745808036145941615123459135327711571956129405491637757771650057377912239405810691513234116665514188597191469133056044168447031465848495775887352838308032407292012051008330550017042296742558006350300079575326885324704912843054209077208336499936265323578037390285650574398137015392690631402946592296966572848955071864209040235165600931300532214657031318251160306700178258957663094383138024563571202296307958749353741329728798712336508850496938021159914639628147407903733047707985557513397785090545651650586778550067239545231672546604208836133262910472300921475450761915385085926103524410704782489118762648869299294013786038728502237229596342887715883930385356557515651823452935630979678746559774196646210706651896752545938518331604245241009472162685335916633825810647957734955865063420805203605615935888069587828185364878213241170514962388842578895986342055148190565921015521715782360055446658592756478455584316655072723439108022993984170496060593144313369938279021784818050755185126085267914261584875349095711222602433204744250188304374982036312592162702214671664084035710060515179301928370171592709529012055488166644121774178982254723962170786712823296717161176456308587973715919820657442647103214961831988746691481413054623998393789118209966470272936079720605668769079513207220675048558978813794617872693829279211868817541686999811012932161679910843370406434782108235748264760865251095638646584768079044149056306279201685719903624209124793255475804795368857519059905841406723446023427602013607631715453610379391415454426786493245356270915849101451053089308790820048546472128913681497962691063392893587101449621328215267574903446186028613486831412649486394023347404161308867584337350694653889488315302991767549250629556648158796000825142664617244749854558631989900728961381950470807060708886438460537714507066811067437172397647624985116140241180556674763639154390095326627618246901699156077518711696475105757432877144062929452596500432700705365702475215872499751395208738498923137169084672518107511114884267239138395520901489121889836426513365606924598999477198590297195415549768553972268486749963947829080771500654597187963380120257662864266894657006005855257874015885958982813931026320497145403024687023531404836317271560773825778029153538036329128054894514180443490960052367527137546874701598733363446703348210136998547617555756850970377659231205226537472192662159672917827199669712077206614833112466963040694313422753524863918682015004226072611430360008720666644702227677170465610823968835058108309368888544827806648952826615156406280327012497036109347616027045038316380979790480280675075953943772981377767730477848440277937227430635749421072337534828254722533512597553720497468376820837959997540532689741618524140005312767879499063257881243787342946197286262552219268333563201884965256822236115821358573817705419885058708917873973397968765203805312455161767788848989779068009254733994597976621573316309261497389050617697135133529101677617380894631289122525051586249745408193185701738756309679334614580342007381432472014958333400013538111993884108013928269483538963323157038252038709568335580173103018283745383314999800693949646481947169762429561727698541535806994065195117555410656191692688089704786889032840724015748133859466534685218632996121625674190652188118503133321844339180364872511321977852273612796883652289162891277500318534540067669432365857140859822269266043800898931790112513837542427128744938037641501969917760131406959301037382889250623336156967947586547660115524257328988975288211063378552406130643547292788180161535338011309936331562430283174244054995801143156849304624440303480280977517054492433285277432781692940523654521974207798619168636125623211095452085309871422098648374230477138047164918237130172626830298844286857143718905002266585172763399983102367646827895572214844541978902600239627130442010461742887428558843179576708353104576936422440134562738539211702358844704641263144850420511081988449313506866890426401718902809777882935478822092505205256359180833487923984983012695466991844068641624170677115940588541702758702244755547646110019162722901350622456072784011966908271340390010476783781140957721772360329391844218499887675154913560864052565701696942848619243094849480800151926602813969144012440409042202907470825340044086108850691340214172865033769903944415394796487151729186696484886492562324848824691639471479098800932033665548237606830333384980877953815648772655653575122972105320620200018953452430579577950608561402473585560842071077754389286906937106850306976030688965979369610850503181354557680933428738649820794508218900331456620397264764434084968062342749499357979462172152340679091914461598805938709669814424090741848137115256291577909575915870342144739590196858635513715649448905233142421957899575221513963680543607770268714819467246335485494602419289189595350006904171745376229654388581139212811372004057762571694793172135652445595442145467303737119295863261010593757308107809967399978550724556544867908985162724201116857730182277159464823186369854295964034921928198251446880824117611398260608076553612206197136803712924461246134306539466132318498435528604063816609655692313230056671393545821190977177276963765691892751669073027857448329591266935423354306699742228238623106597490629368797083762727167766446199175786358305857815202195859126035227058892223171991264495468968566835809011098148703611072770499637875613235376806833317579481413578031177328146409616727735536987581475307488376968001662652047560210852231394276006730687258074580681469015614706752813496021700611959109012823352319524501234166265582673113796277946838518479719505251701869701834281020421911066726580089813909928304471128730980472601594433360183842440044222811196476477774106263158977849462396602955489457883327976101700318093873039329381971719364482989935513429643827441680415332782456686377657959500595690426027558828906298506144516687526478174343802533794646661794988146855225376711675172755888094769900375457621737583533771502750985433028229172734895007747997731157107114405537204557972248482935170867742738861858958755961573231679279979618546479500821671429471676889772386988851559190282827495021763308460470050656861746704832424071374671737278327584821995712480814020009882429925582610479616196269698351384286438115747518691807501023006896371014402436342498722096740756646351497297029896395568357736824130776101733619572767270566114572217928273219543488128337189027564563656470458520990512781778333707937363406834790894350326656600893693683503407745179114504251136092744099902192449525411562214569106661192074260219839467156661680104861407601465053928930433190464850663303770270993638357288682736226841479876118969454903817609014179680027156084793799808691903187327134387758021009378706978652074932098335865049961312433230849487237882727866087855464657049205382710128901179173035759163475438276097013226828765655572521793813959575323744965856615198242881940773611353736439711960772957848976335249296631492891034279333169695095713956636463860109428939280727589804152951820846674473080267611677734923256072384718224691790812613302790627952174450682219669302039464316242435269446671476110380832946756770588577324245359929327223982036666337782394370177252211996757183520838713579579535644258776542612965259632492775521050568350683340503284871969011028683862832299134688505746269877122410650375809289178399744788536097181946316559997389713722843639421689532165521179729058325445522489936899892694040464346275890672930486658503147199351528072827645419848110727190988413112659246606829234756800588987249989720716042394548504543158007672145076863184045691972814904426947599700249411016494985383088761028374883444908486292303852890420223547513373052545883806053045398689086709279473923390909053012488839339128550818817427962593083231985075855545807030462863138931690787799781203066148840427072101892147972798745211898587338968963421289130773797063222794589724269476505639592939117695434454129939346814428784554028489888154296407918683760134322723838962014151088241695558332457491549048613349644512089561067051597991069044754578866333560875318377604801016358094614997794069755729652104194388111947845465727807564884596462060113635755180435752979840679824584319688618161507501217239575422354900890767644291078871768159037335706939180296498251823399350771799609301103637509418171102328666516756049816549129282822178167114578253492346179758216024018164292929801155047674286795231169870788192427508541171863859599097972457810580107987406805971599166711713706123321141100900866068282948561149636002011172431045490776937830822720771573671181794092820075439831109711791458063323416639337343204330469557624081817609510597098388356126091056752596022314802550297564035079397189917164157419507062878182483039557469336058506377328653239070252634704283139140871397051425951201158125153215825340365344454411095540250275572262714091086263529157504297184795394388398623251531505759123426741432523987420424610916082295092241816341553194819341830823615533967177781434466976772999223485664058931032776760814650981021215579157856209528458325993065060050692494198465776455028073039361567703922316313807635132323450721168496003813499922328673871910557956062195031531446154887015723695875474105232694833087258286356981179338178103612555433426986068214440594067074064793274025823064473014630378120386841460957856385792280095207359101782288395518364273135197067530338562985244302698458077858583191781864457298955372002402210113257778196042530572678407644524819454701657396269962025144332899161859479888783536759505418254616564377039819316940079823503706750899688024183882553266887290082343682487965153445047280014720245841058090857090955587575719726814123242593995743522762399714067030616673613271002524156863846928518157800279135792043802674373311445677213936674173227138424334818278881111495307431938436369066002626814283346677895173739090406319033594823229373021052363240862101463602066233163400373941161087528508499383731362749072607754125670085194046633642491976807078317541847361383077987249943331545656113142887170524328345882129140399170700432997358663461108316799929754850866172009321694363448459785784041182154357178837450995902809489421616211123903433317096598925484780120818760094918728166821298992410467712193033928076534669514355762264543412152933592365406607658808452632999610423685911916315261811413922574889635432860823713671510792505166955523498649986586333908169315790701422560344828954801938010870713561868325797412492924674248173156477804564656907986267828673702200251382488530648195404453215615692768384233676118000551118527019189094248558073628882972561855526230922693991471775992149338869437369302598050601427878507971376952904191137047845812924540963303786449098543260874511080081062201056946124739784257797124759421658958363217174265301789495491578655968488605525309441555758701696783460389327917870758503122188478780490319435091216508428551169845790646099506271740521583024790040474253454606324067545788170893627376626906113521207734050236253120202222917977827313518166722144365252203569330849155380133970900233463064308856507923776972971800266828988240522310682965820487708022136160675976446494825737012430615530690997255678365162834188539495963151980567372428768939809179007722502060189829170135530307503703048113909543243001753544468371795161672285175563119276049631764533113473931000048407600024830761047852749848217695546735890635620905364664558743740092869828415207932728802738340833589100470446421488520869795475153246231063469680245126578339233886104462794601650083075348045765614489502264402002596225948041213689545381621539651122732217772116278974015989541478911847996617991769913454706091128291816610246077406804645850428713881012894918991075369480672368602775465026522324340899475692477308502012380580324897202171520452744602003474228025725712032513664916825628155755666135151144004868551707276254654574895957725983989543838549201633187383861463313072613663443013227006161828023777002420509716955896130347422191935891291023667829628627777956030824011025981659667847993496674511454359949092830480544459751560277961990228598022212256165819766857067579993019321169187229790010334192180203279292759739255060989282876377270919442325348456347519042229720423250645429115921062296492164182364635355666327161422404672788177561388450393109807658503513067149604495822487663258010335388057647851404336316859918026986643774697573192418281045471528698797216933121583489103844341222453021194714227754966554552270845811585778724317626077817007535666695535665419305344904851783725567493032256486466580783358554286637282940760182787169494866198502316421343865882056483141010356841930946607488691062575195783351350782057701290993856836918345032498515433508521276373654267657369172784426977338550040124337514571436029705461435417578620455548263863628914158101576965605662776811928229340594305430110022449282851698427803019127260568027421052455200931297368012849715687965543545776525769850216643846719476795718642465749947458007299183147482333468394138865481729087145378644515823252736031587924869717520590815139487196471552008819631890863462925723845423873875087526416729588796209008929118410206809834332595901520166565344288199989416039560081916592558429742650697906706855340383140145263483066436317776870697209168347483481285412358929576041691260634717931449113922942400813119391334939330274510868853699940292019387710989878831575958407167893321457198967489092797339995755623220316243219606534723675694554803327264212247260003580867545812079749116743431965800821475218717921707807365438059778381299870605139284480631933392350831688818721085243245687413856999179832768080477835561911144914017869121417617272447256194551108459528549141633400125003290767108813756019863404920939302034023853968460543042295299252710197771270235570955586411680372246581272751180803963951708091359414014992583644595490979439524480212187497579351795860828274423956055682420408176012716058688374482860394057592690674789213401343303228584198790349778061898615740399390436944898668790408627878274543607519892746352842079723081144879232290593376688263773654556067614915742944854959932914504788915211509391427098212121295628391685132727507353460282032933817367064507140445289067264965603797065839096560774365564900290859115887162707529560117309347733049559783104393569055308337247597900697744933078930432560981193797795947548056184977356523884557422026436472406328603012951579625678978664405653487926913116925067387482992585251790571722963471678244457987466967469604162377250091862675207418189146352885258277661603962508574523146352209930352313162800072151328451868528854076253720355958764677551395807363985356343671298453964954251989703055750194016048398874099360710037609730188210553889329652414922095677894340772922672654428591699093021309600059449448947110070921000181871077561165855107159320172546474626066781374598721594324332904201633462561952368767873522359792605316018374861778120355562258392724670967873883105774697622264819274533194798241342476264567296603080229226003691813715289849836037656082708115220992396705475556052731226029520459443160111886547997825398527874042808888705494854055815406586925961190176945580481000163576529901642460504244239105727685315706396298497849888493800407683209768514456393412152660359721597894405812476625288652049745045753034098066957731081272682771652077037974959330512059785313965084287146813657315777837759581627599793576515552712122940734856402964991573934311254125851112780709928821646735657410623068275680561011483077134934489288869801088597909958344984855682124498902446289160281361208306939375346375362696994750637761334258477292219414956458105150498270244504978628038534071811109908901637165259019414397595015246974458719952797329827149408296751357334279178003860275507116429206482679309928293701189019463220910619257630968910619197576369833538893700439620975518457701590558751923190492535376091727088054448999099529923140549392665883945537069763098017913599613000406314435516355193411433341893634658349263947663047565042898644352798411128430065889795489390466958046364284589532174455719269005111478979674588168234115064818257652299812232911075197979390549769788755988828071293394975847409801068803746381902658730994865700458916451242930772016621410779994883458679149716138906227014922590633013755797688479312377821419075885774851930936559867387159430029166702777223491175275066166393700113161866754347883095626291543007262049460430071276748300931618497583511687086683344545811251390788697638258318529848373290993810179910644401612865340119048024542525961387581815797076877763978681730364601492961140348942951898819372840662497528442169704726844027286688031624136988437036321315323506166277416705585520741890506938578623756466297130175618294667805960078139744642623949552190243693300354174683813741114150416256294429029433337944233654121698594507474403772083133828927210736020441108327200132132424555524686356658173653757428820947956311595374327570281116477671726344290898824957571321207352442216089354523826639795410783508388748687682883413488540254213392032732209463154388111357013748957233483212154203799972301200263381825248796831419630524976019102161481083030706839161525083283390170919837563658987692672756125134689916032956445637021315671035144653773769344423198428677492969098282608193507499645019170704436209213124111332976643408848689036933433511490159397251806722226586570779899073926073334669845449647364905111159904347859812689030527902047307064150809473195941134966933823436687441654072752127661079470433360895323469830635215496350665734592777964483610212051100679798332058656781904208066981483618756422267974623207996098190206130804928775065868303915287083506428149384686545751530137968347274969335180694689916641306394676216750033498993129919845727274997074595118714742801322484753485487090314405665139382610467944615015381331048731399481603839251263704024787220407015742251112035371625558643337379098594737531663174378785800778494470963085506343633297883386495740339434157968495915740954368661225317266570057694452088803319181694683484723285132876182578531857525140622596704014428990220065752216925655835065691004729623864546052328931050931630606323612392527645346861446058784413375231185000908623131355856295115807839835934666090454052259169940594077972506220253788100628225243684881514196550215476468659264347855358060543431807527798880467072198639967088023582614390016183948938369853297123108133961778224737190148525648910818127720559252640159533584217872685798628381999646303003560527023932937091077297465286604140290100211181601593700841170743963948218005386983609405828089778062033850033890973599917154796511924601642714718492152495877383339383097120426734361483742683646424789943761112838275401903304261066784154208942886522037187307486727000570211633822408900704677153181922716315971505373706155244093873063334663482058818569420382189973773861123594603973940245359201299043309264921054251423595538269574443205252328940767315858122949143939086900769471792592443927216289963956056965376485558607398010218899925503876542832219898852853324876629222288412638841044895777909857363022915165344427971202338921307055199668106545241429807046113309831660959468307180618516904704532410131246650543844800534553033438828343277176452469347855788908117045182784226608612672284654967955035866391068139654458817012881502510776731188106498073926042065506708392816720269735643545685036189163089376088933232466781636728079375913080044552134825009740711071903284291074811471707002862889459327849696947061637129471241770712284854005169688098814483962644369360590358113721960836769748264912175192906998546099235319360905563689828782575101453158812769409765510091262998535090339001225538370761300202862308950362704506176602908839382033293398870358978413235628690049389642763655853497191014583214451623280952677745244506185511099801964982849641047096934522702150117878278486238275856569876341784819583111318519994536146559350515990666048340149127150709303163843062005645266634992082964991656801189310345512638437710411039893583004063949610471406700761244711207658469339602079991111991008347779467184559460534103052817588431213168749824362560460449328116287103177682517525184880696732636078581585560264031686138516343584177073010817797221930655100580900741685962082881173487852600028403118703779311043927438794996406281461008281458761454621450067555097466939943369294033815661988222663408084293346907649077034178283163706325110462870741740096790596255914849300994401511257298437440407837285058660692060930671144445497709975872464865443644454758421949668760217936574866132432936303069851439043680792096802695622156404544079253443194920968517012031806683554163224406957003172977609659565858434943172205237612019166433607698929223030751660901113017649880954481953452855854940223716723194960987035397543600677668210248853038505318901171422206819963570939128830391820930299969171179126149275960574007521565072882330931989281015350117085491924116713953115314921444998083666869117441384886258794479857820502273005396641711996852730531196294745990437293649117953320762686765156598027832121008331721366647951110976289008150201569896559265130652195450513914754173059122343155907805043136844615372479099357871374340875493845815838615295233498993074549640989232953707074098587345782473801135468567743600349104189674093056585267304763768423967652725959795999186106215775849276992890913657630289072378986681360297052422307855763474314010512740129528699260998197741081911366327370785632541628133861241855585434968901327057976575619423734720313434254560515493174171282239394152516953644054119555501550218886744966307218360065832084521095527209397405937845360262461810943086677007289492905597475075426501699268379703536653900227085327371048197769151096100519035743320082636821152469553121427675708487325734461727581625351059582278755279594176592993730898327935026280670216782985052611802096339801826325361805428009796160169552751851639778383000767775672647070552010955298393981746198464259481394875341370583625615782542012033638489351339239915346042384277561296699752768198266777081866221316495865043008844179629784675800784919566310649063887114263284842917970118820822503561435308785062842240125695213267944161142607726633895851406908009677039210601189466153734958475858147135245917612472371736176063203484338797163490049141650275901527056772017060067135092554565667279158228989442422878454646940346371297914306563011321015787856040951836660566893728639932712348490818692601300102899040015027597179912946984841924704411284719709096661915782221126527363567962578130905630202263637513109222135577618799094691757022672551238342799441760938574384166132110393681424631611545560280102397020687907301885968253371285480223009322411940229220848065562264251919156243775671011896890165997616137849674290429041631309624748147602751153155109290784740850057833623322528302221878540739448293075848149132378409188405741442427785388563173761026664159109680323241060556790659594290551252929411827631395957050944161474999648126087419222469226871528313785695856539516416729520015110749205112612826302517780011900690291389029774792236202269376684653942389294935533230436283297277729704614353118009309157900045983133399923610739928814354056202202463414387205376267703149182560797696635347648299485561673856785170436589119892239302182717845136419785334658276589963641598152931468945180797245926862165331757867559907325760173109186647680634466890188441559783911541629523906284746043262739135818699984244184197984498299969397842969879525991798608688000637488191119472849555244889497521749037764958638626464139796397981922791015832530660809960569758730380792536865977698020189611301239509346545803152455916791176400950538592025994385520203071082583387434239774101029178911697530446760082974306571994612315508599366482230197609460835243481634688180098729193895681886164240511335154091467174019183371314928791627267602224271580776461600506312295190190880940686551597685778443940880333346896056243708779336992312476204197811924963692406965737982713137889352164389854474485007411220435421771562674418595418968010714685086484582336188007689854705539347454928657134786175592857985291760718566191049278035336315258708550529471524028844268849914412948991802110506376476757747128260807274681655411178394828613477043259672914716290387411701016766378500433275304532638936615227488172894392783901389170581954579749304995845987394867425922440631880706848022908289521835700966780571267681844123356513387687812078300947540282831772935298705888211213466446512038507219673247346566358217740024413799459765267716378915964588691483784852697752112483156926190243230294052045747305340523604849077724696625854566248665296935872531740071315848140808438405749897390483582573250989800790867399553829334321389186572534246397739889374188057823667942473418361990452764877602413165655157485218135794112910724816273737059987005016295279934153214659626838349609767704020268996976020804681587163204779671215569654410811374153685675367331714580206763898822467271238479352664994904799485439867230779704684785158130834995104643794232283197045394312893310957939125004865709016769339571224728884330603316605794559864507541424656053534038311313364124201466469724719406014187631612079812229630015696882792354292124740598392868502155177329153809443210247502712959829869452143002564278778294046478397940723245461564938920977043404847648514806098021268614498319370509102537057240846742462229094421760760330201442855314021023883148930832080397579390177806336543061107000565794165100829607399734553265907247001566503833478499896990106233916976317038071381037705211814758611531752289331150199690741114517859899114641108705532454275816806825050949020301603430523911672082267882050781767970393541970993782874792286772908638273754718953755917261586533144920864637423040112476902358003848325717481897925802016007036627881877906767780300131657016479436575301836549467129443608127121471578953034288121428510176267227958852130456973980855457067263812110486874856999397234085845439958265703399302800253418716098215859558315092204338759779372382267387713181616379242999657925437560123495400294801527145247974335581108123332173171776079161478907758637628065342502718604838865216940063334032588903858544372903517022515871697598346534733229722581049217596432853399885379421371979520174166724251479622821098352750085008770360068719500156333359739522754498437765950766765794010976141021060904838839884919213672237859494680817278245628386572288456074826182528542740441109967990425002147318497699454916691836361669146859928150808692053135437403914463321517575840252968742802359777831058317762585214349399760358403218006403590640320733340586938400035372626015444693236918551544212937537947855129988824366277041656132174409842945615015433420558320926950914673101617387569343985083498538835262948416849797557465976087658709039630461733773486314366746601021360651036530678112233620890671739815764927884832077225350847905202670073567142754760266341380137056707380023857314490907938806720919324822682022304976212913107131284527905005585268076346254763020832387790503431231243416466363348350579329386580925017827752508497835477736406147930789789029007466805728024909205783831269322045970239668277913612389658455760757517993049980048776199937467478329763083941092853628543039714298890617688235170907263252891360278057913761807423778429993530146539038832107982374520464689612754517575766798904630047274784119051087006431388617271497123667342412504061177712317790462680447864216415509632493604867638961745604295250234499072465325989278616760376488343326301138287632899961755081426278898565288784088164211776555038879993511127154152861629584682816729602302808524473596438604151978871577686255625403089049556130767472924312834397679680186816565516960709979847274297621719049624765609514511401360887157893988872125547690719012975403095018678243526654704998167054395256150755291892902312794073432329763139854229207498034633783424531205767738770741498372224383976684771120995628649885152025267519503231248621476359742519057491113235152446736622697858930292972840369000537118924849028508992374744479671202512753147284180187145159109054716631423913791042385366577088392061690293516181098489964148029469348999035998127961537343833982548663690311149116049305254450119721519167318693003726017659428432096782640913293331294122632611498147597096961345048496179894164094818503981477777403686395549788466939096597617831917463105299778779875758136113249901982432116700271470000043315953364495771175256410540807198575873449306297933171100440065762798047862999492256400508083906241619209169264498424957084727034647026258153299561265871478441013085254556593057845645473808009568561434985046017283832999267900506432203702874381036894157728452618412934003921764679739564738779770189773201260178555485584137125539378585897017209677961386567112478042081126549460141345379302039337744361460603658627864915709062016325156696924839800117142313376271992636279062181217179815250739941253677927797301321234238002977883063791853085939713761941285602641272066879386687208020090644533728084045652548770684586104314152475065786399239164070285334095373395920978175105294387712642219217210395910488981302879566775725052910446929980361563063499786707431293253823312657437906776140579616860569733904528227516459516139968516565802349228696048466820875544164901033347938563389673496613829915924957000351459653891998529345879738421097009870419900041082711393005446426021452568072843987709500186342368090857563665963202820670164265077201992041962485327767895518530888015615774297677057523797476040286294077045482642521817737776379488283052852098888880861990670195764557898561192423770777585528260328036172584650060455435056833248688289826292673447890399405857659973071832798141751995844159438468939737027650537493146898672053364914918260202170760969533856107061577592353287260583370877564076287579416933513625420051232567355698573849736013331251193090497499380847380401385434521034619559489425079294429787023264700818824933077008542869565976603931003905547541588761501224484328757542886437578976663317396097261186340706538452645854765849772355778814391236129569360861375485209027420994528549275547849395095552215011313911658363530784935206878521539434007243223134876830889099871227649342740177957115691695313838972947987879792112132127546433127331873409983955688037913793105766649292909459330154943918346633264100497525518570178424821925789916893616179897103413733915152275643067094723520745910934399773264688457661802707561381971396732200674558667344911593897474269566701557157438457221670218345803531067439889995318260061970007408791071468108208155753527229127025185967983890302020900779395881799136914301366488635056689959818967199858807271303345315827779881054244794030259606115989074465671199350531891137619737471769329495228554293776602902858587067449557603598423438946863821726897225603245015126925613088746410222635625967102969532466281991498640631909575712747474639410128089309827287920307362953784322036096846564047169703984867845623804506019151415847037809786040085636875568551190770989640421064690997950876567515680970622577841036654450839922304451879615702657183151422377385396381203210119547974175776704282950256828583135140127663270346884229003161763395210878067299126799753721150043797381777368185910475212249132509783627336844889350193575579443813590922695117430074199533080048262590348180511237294218334778741599998400774876098242470521150773122054049249298323598530737631818827371262913846706112827797582516763511339605911024963048194055963534713096235496149269997890711362926385147900583386998838823106157614829412420495938594953226626312080191317456793522365824854430071992478711525227687997611499408028725084116336585004835837514636516095971264439231296743598544217221766662297377998215176928229635893452734662779810483040002355697554997549435997907275348490659126893254318941151728957266521590472903618681422567094971363692517751110674971628147959656967984650583892103671980771344119307984588179159761732314444883658200727813617638248995441354347830379294014534350127681840551561785027579108448672316049904142682162434701432731650467059968736251167795723210620844515568367829211555056924394477034846256924587700702409874822250394472650889801402410305356497055040424433499035882466899949429913281975372352660542393744144939896269938782151914066562589668498365339517844520114335442855389909228779315232051849541228124583750729492091188124113641103987174355110305274914046959690349841252833378181781325020666957129507281277099026168359376163267464356785371556397736794301790944218891081038787400140620610542664447599660147516641175058476639960384121096397151850883505824973776145697601671679337254111998337005545268782391783983050070168279910019483003600296859903818212732561334952044447848185707684644765886823965666015363392087344665187583438380147978037326636708483275265981092099240401669866211282713074043659914366893395261063404304464155290212406958309807982471264032876717178054530267797243220794241337959084431763158472737304242238736531020038248586300748638055026671916280610747503548793621758400661601216739401762590302843051902970480206019090596626074629096397491028130398184436129364073693927330041555178786947963206464689846529477588160426443549166951118408490576727695260761572051800258572020811747938440956836991782700144542263755254451432094791726519652373638504981399943912836669322817468256253589588314145441398987364723423201144785174867202237803987069805051322779737882279443283647934346237993911551713411481775669531966052607948023478803520802172750518233779695743127931805352126897995674841860893507051908070864653416067495198654195164601257756101231387631462841600450948001116109535851626689955350566690694144215698377419414924927403869902016173061197985149614670757006116217362086904804143802314195995106395755252950584701270913165382037968381117029380718885245499544663672933593937771743984252965140919862160715543283381500308556561452469116353270715801078930281388082244415100371237532352139139609034957752567421049285959585514980607657083088354868909411154370119474520049942932915514902547240521711017585155870047568837077995483271194985725921396950391221848485991626837293897789840814744444573839654956650667947029083866082477467954124152102866423473033141224254402346135600531380032721072984366653137414493576556568127873052734820454252946352019359511855693525110352496408464486923511518747747647745191828279185165711878081601495235955221966239839947271049128192452671343047613217637420227998668054413237273764771379280837234013139199717178533426975534731086921108326457354309195882857972215828082397487776294686577680241302795045694016575582162458225009649492466498017065632378912495353766857593290893087776191896436157327486947672157033702560447123797822485310851396258514317457528735279925153704417617762486498810106394061941937765461219603356024457007464396332858601787422287523661701864486266124139594291443077268182239571512838806578059083696747592702893095907861156273126966029779527554891991475247238930234103431079468142772932243443463663837735572671797700820458900133708799767442317094615822343452967237223892298387127506442843332785501915709685301866430775178634356020265189909615597847380067846959428824206841605868030511962752671099877736767020744373242954309717926777107344933389198136940566098491591291667957586078562858937536814187102501024609704270466349386693259303950194512176440734024739477049993406737950703346785205180568995306419413390248388684667788264177135935165917076936607870799037407237168799638094583533731173393679585826443756337748295035862847863912562577487715179985126001137763777375277406564573037042544538163849007388299282265166886791336578472616567622027777056129952319914083549009598526025595251464766471663224790415471071173740219935597350061663526459025496168422330757562221619662548496897513162765380294470792515215499653480057557066309046374936784883808057676379348435117611035840543371618004800435716523226755214768835357116019339399694537149244869461144100991600724981327178868434394332265115903708998785317706439607857236193206843230796435673139765534620388636748028056742050989363863578758553180035598366751136724733545197945301768990862587189562484943872265067642324665700926931010576082973824528347183434514219294493020977602768978869852827128766314785237108975850691483421373792594524810923709305150617174328933439792627145895912017866534775552696506321268510315136091738493050192870155169318300774359724052038183438295719694780375233335674631034426001069347372295982612540059983903887355656480685882661047114713043591149075023834941975614326124089869380141071392715471640999781837944805374687228676071929951422871541791215520491749386648615797285892869882413901169639795416068452652682112121231297969066096914795626473138614818665213608707713590347833802972476344821047871494978733466887063336560241680022624561236621408761863036353686944935026827568429795542679381628185925695340046168488979586658986679007115830667417088851103257847234761717233774302684757476910265093419834247062915604241062332189811781886159517383232159891178629722189961732974271979223451816306721033229882878358169829009695595578190675954643883048028659239924457659075647041290572180903556859229185933102666301472115201095771307806263115566293341986718462941149549318184553265319501923451988794017191502558294229616735330127681362626294492494791184626035925102020645346799778749697390738351886176744625741018265507781350018630419565254955652211432877522960240281163177765167388667735803711206720554997085968234181706391695832351549851035555946661638692429946235324935746329084527492929431340745401291870735946403948943399578777706371090361222994168421674192667250323600496796697407197402204219794107530021880086496906006958298838975429797285005043733719176988588164253805840103911577243652816336728003924402976461092814483214640626563384869093173614580446790483353084430149536651972054284761080715208253558458526476514478064927007674432441957775952324382671501563428807120836753443045085883530564289344494041742136805315086377928918957233964644289275382738395137922903881577031329684565723094903197764258424587234572483448114524829282240482458437800296677481953137310421402229563667032533062527463338242775350532466632041453879772055233039905850845709244956176645494132483701949084229488613403052846163594953802089668730205732858185201661045471124261451942316388208231571249875692941421888170339440760703856774114386924008143216532952682267638496608581054557826025955677588863078830662580925083093328806190975687018394736656549147400350312953232153097116183694613635684043583224011491958098545879415922471490366888592984113786795173106225042005909145910616986879949980561372552256251318327862717458145503438466310369523979045827024455077021216970897532406257241256258336505844743191074260940355308611619703186561441460898193302003730441954067034331330191272085716371993949569586738234041373894950680559173916054356595634142422235926042803929313047574577846017587302559065947224602155749730220811274491665469881629939106512878881623234435988783209993990402328601834838608803473996175755452514701263454347445669190424911198501851419783223447613147294662268111958622491249749315497950604463771882003606321637365682347562557490306251389143879383733290057057295990608855417243309519333531692343514802764965533603943755975938058778184370192803228526752197313121565072912784430311630708786969254440545753429039393297944624646174566747972862677351121011599100860083062662791611973366181378297183205816646791711809147450712087406789903508136894556880281197524164476062115147558504801023526927444823186819126937687674022540376969795788916659769890095616612121758461928656478360682246061365390608583764136956357404952839027038786467514610601184135062975954907550198406205036360849070642082200605511929389013642137746351380643430931778648936833811946320525946728879178756409006317327853993872817464155338766588152180345513031975076264407089018192864470717239407571875886434742815394741908331442333013924301536769674851090985701335989288292925614836260350371515436286284213956433299157228415380557162782603523015892534191488004243300787000896627882230911313234734960917893560989809278436230002888609215117193486628588100734971284105754155780328519630137567353116491552935013233994034760208365764277444663085107143588928728177562939275969122931624082855900392200164795982361231124557637730861873339487408191494351967859512587734681250289017380615346073011771380105386405912160264814950789118873109586234712001553504133060646244056918057018120350333807526144174485981017299887308744382364430850196271966045965486144658725356345698458088414864631291153522606549326509005217473788930866217446554272928602815380087118648775988989243254118433504306526198724608368134212970941647845535574802203392924795938502338118141362741179908856917784525442778596694639761067872708782916640534212772589239781142382491639137908341348106221318312780822218911824274133157836478211822123773426199517088205583440141612714781106641641786235890014857143172878508424029793401900274779697844299713830441065414842307975406792541469852013085961530790350362965000300374725385411252834788882120927419494156485081296589323560296504695246512647373167280151078062401215305241263250165701708909212456373165715379795089593869671860870894161489159848183147965613475581734718563963464319060003090413086719834366820541445285195153233047889715646267547304942143460480776870306612029969790309953141022948665479415886639542318070040695909251282372172161422606750922485189369042859793114919356038025674788042505378623632433500901340878907693077788226830822540460044993814058521343944337646660427226082477696276773356890497070132855742735151959474699595584394323905753738394180774106319336315740982791996493540948457619666087320496159270028677510327869513650420656995699573855775027475281137714505218961784518142547583256633309065781028996548384571727378178436375099571913620103763084607939865417413260475658901592413007240738077365994907506369894171096166834007391340198986859657039483670642523244966986710530799786647909938650203197360504851868675201238848390085683898192759546146681631878861799097844067541368328640276908205244031032506793384889849615748101674293153654690791682349420185755788013890570504383801590825536437505292299769347436942321324503244981010274977819193655486480567359749300488105218740677966331244995370900922635152798152246308561802629309006544495002419803370714481030536798082383255002352190051507674468176665542641993336973430446142981402858908833597570086119948458865835091752680541668938609344637066042058400118439793834735955411689733087039594930744936886624871043641826682996567484429795341369918983975841453521121763374762498153191290469293059790147596594767551548918337147046504387783694600441964406204078112906120048821943250342361443145954492510165554131114445939343628526898357645417123841876890900721239883727503108912768447858157817071272242945240906894645167096384152619320527115778764207558132825719454697624441750341580650702703353223305718595885105821708973056669136734185428229598737409169693717919278887584290991395380862582983871696109762133873826108558240418463875629295259245894377190883144830029276799239626934850290286149232823343940018175005776877934569183259250737974413175405797147730825729662582465534581683376865521557443592287548855478667875699000038308568337966004243370690575178029192257242082107583070778917418858847621972647770054116906209725866673833552054575436881130804459657866977525571649550093689867483918086321297614437622522746014742259291600337278865258719330743698313267872468497698129200808727032398691287259615640747335574737548232513515627999004964744686451809213513797673723587522789946267933256707362015251426225779161912395301339202641473632775718616621717593430291561941233652249540189769687235218228935520612549274143325634090385299251106272094603975268448637184092837146750499700512236641407867491735826549315789845310090857370998719271873461254352219675776513869598960955056750084909548096284036731253668537681096149611453812272772135822353848448882102951267514119419633872323822210401554656062024191937956338223990073838551841129004601215576461827130290785005238222610809076929966136778190880116677913178888782921632472066735854981120075503376635027818387761279814959944387606090593485328225249677595930517280238473371746770970171460758678443557736407709737053236498887830192442083773521774794334370691967430787071192377786096559054550927689107693510064706321072077530080857221614163715797468566144502912102137377295550914425760318746768110690356791747058144449872387711999335876311345263882867833319028009620565333782868632359401181455392057151069252130249095365913769446136611359222005515694014560637261527358712384208639469120678384850638741846206997181990770073842225472303884128431990896206385127843014436831603807994580693747901422491482715725080962802881192942371480152789887303743990768596359060929856312480547742931908687502079786288007339412616345687068298851526433016920368673355858561790958625944238473330760783764467875369509060611725822389357381978482805089121300503023233811683092472398735487587352733700979025997127792977488519400362597648966915315753581956470824120352815765921543618072419387582596083055391894195169773925486156700229527466246404383912737651950397307442217553312194331891718493199832886212131819741519216751479146517558144332691175081659326189943793761958115453611473645532394871328507127226705680782791815440511131056188968995626899274700801907557137742992635865620422142820292139003215748976186873189661392026160528844539866753228616489186976075858988780067122912419561895210312386657185288224374883281466826488528178950274348963228348676640082633163361563431158959136771306087804055669379191691980591096952867807029525514932261911358173799259851632386132106309160633419054648170826433222472342971267637567781940443419330862883028897866224357703139397245613209855458987195963550293454432190070642954331508002450892037272184455885571350781304683767381220895485724916032354557942097614770201217395564267420055631495154851992918682101378676959653551994099333780429695859133317604812391405502618090163110982883007332441115045761360688101707930161058417031283472233371295410665570935080248150641729290919118327289166232349197373673600087885161660984975190559177886299740238286682474769718947427643480432283597640003932144772702159759288578494238091965285631815283681497243183752782210414572898078933357827496484158831751761791138982544705719391715535343372683159929953301291931196439980109991140072857562066458705535461512959951283748509812099952369521645227587020188092645994727549616261048982392903813673862196428648026713174570647203158721372107147478519536733193455879808239151832453225264465848107736432395124776147560324783529121934896411081647941868985200453852574937566944391913781569876739242156764365440508312353600509701363195332786798763640555987233079041715184117865157461619571497889263785628353371122708276650137782594675274580296566263316871086102698546293030492097276789276280446880615997962077052753302923221260028398386413826087478081979387358358588798256918758135458074952107227770390203930626009849593833614868084377435666916923887501857244481294818041913218394359923450033493192160275719042421177057338954401050917483959140833182464711450561319551082206643909327652537226149210495774089041860772633645966421370612602314358876014410914443756503303662622289997628829378032289276166886570954611278468586759501538578732986760951250834690821482834882563928331353929533346303370925647635937042496623188688336595981660349057071164427209113145594969262474673020483218978265251882744437850732351516822215044220688833546075520998064653083085879321670941794063165155200051237314311801472803277379586281194815502233470504664537040828527277820816101716270852127738960793954235131106916680914409444081464968940083503765296328436844145592323670454104562377264029378063028390194551902614473725469742924914396577249522335626733515827121590101680495321479070751411460125009616795658530850693104189820186617022777376672841460260052982319229607231335320254980430179768305096619414076856269360820861937108576468419950115254776702262283346638458745259230015984149336072564286892904545576885390092361069787507764270627276313058205643997828649291785190612430243979063038534808310601846672714532816781836204768435328602917368652910878512979496977873574309347035665179306798139496849940001386334817037714082846125084904351745221844204358917536849529836429501528317095914361287285511922108244652091384353760063501399361635501722757753616683929364029905544810188753712758994763535892038723010154017386058705555418147900597983571801837065676203685310812193930739282395218111679819758224460781476964358809655530457524352960434957807416145016210996580909999440073133152816811488441554866732044886527741839078739635473333068312021157280606521670916058434321179470618335729370482508840892239527245825568467877905335290271210360360169715377403872201189117237953475695046046401014170741942801693910308414840261774225916881340387077969207728019807596652822286117509707487764459220479204340857948134348479469258935190612142388672476394266081593025238623210995402322058841033709999080094598489127982328025253800412199240759441516687172369525920451670965893091875896713706057124788498432739902501858662780063403620499792689486471412788121866436984416787556453981856451240822700590544838313542427500220255550119694998277444039227050096951429472845345691473674009789043263961767222779600234558036978824022842474034873916561212529536421382548898688678202904516335389079341996992554546015700398337761528031214947288411517152616370982070091255193512375356870180572574787481389263870668268543745187255839602143214895301803538679293643684411789145470872141388730894657635790615915549595800694763692551725144099879635208360896066192300104352217164642977187024833520283424306413715372044439125614014690530758632267081538548704924756934259439853874741379031442559147660842832137201138450736459105261565551545893698940102250465787782475400083445890107036433199148489675484710666024401197546167748578234980509317641171923612362711626535839201391473927266760529713585221661830572872027190217597250591779166590513381983520227362585538348708515833122089830021605025559920241925586239895231458436764896502647556001227875647095917972851714969614576964598064663060827205399200695092382207464405687261495895548430803536032955351864282419465965952165801844523142361604789970210387857297587955072066991931622864270907785495798896563640455921095707530816489714565472503979452220174359668070497637204863255641819662953844373743935460779481252826922776047204195654198639842718759553883936904204166284834816008965943385951754774690174693404927994581180739371738795093253244417378835159234054651212654747208900428908442998539476695626568251238976366915664755634615455247260430080623260343317510665638323078588779695085659918376269379988887984476828224103368000069072715758356728948303993159773341512619959442658641237938784409876216800397461161946337061326958920287318594293698210282204483001729576224942204416220987654923107655928941323295768620863991545452203109832159948694640677915002215402026095326351066881241526699582502371895487648761408990929998102029246743675069182473642776627561307621430800399572256995657654851409683968576121625962015793857314834748097999052089869438422206297646233844175129805414792830995043335150444621336334900090252948199728133112621771071306501205752055416405861749803562757776441219299063570204567059589156262360009766612958009948386712700953752539870509559438766445021398853384653336439405402061314797432480690990918026045231637163726538290793706785466488729513106063404643983178876519010427527308909962873687895111717346014216828373402156545949936739641226213754495926769266639254597523295504562410656580194397282710317151326968834874069947568588336856617091048639662590299946744596717930735644615592071090665564019327005780355970918489933520259447093350173681540376942800966200740118622799206846838589387467577838468246391858959727442828163217293222769762465219208258398067077980594209702619523650934737185804557825425504523100893366276745318225568572272311174179188021162689903712105715103603022498150849053325219019048628548960930695877125649659237079207363453308407418554505887393340714102026421524067835416477964120410597380111277211029445615329924571336483524398609687264708726808649249307737325818181825923947710819362688142792593694798892476606663770090283983943060594957603413082308821804959227774714200975443406857732293797352059703549408351063717930443835486214404412445794024724909976116605974035538067541699231426553930345966414454741921709933097115756012602619238602914514016909662334756578147229014723251437303282754916500445125622639397458418095706788594618530984908289269151918432767381022764516111595629044072551580395387889124231334048224514237979530858435385702618048646269898056121358580440522786791196893725308185883607639338094925175579326739456159082314323321853973594569817726015969802226345323794569629785294751562053630039482872892125516200380381581332943698786933815166871301567040938389465820076001736827225954104361815380679783150863408546671815344936369613385826133382534404269539367217004488934139427176235868687403822926408539850268794924709909814910719647900726116413918625603361079752593710969505716411240918460785841800255206845001153571739461121691789847384076293398415038290311436021406047404716902999429390707923432613840238624534044123606493983747174794088030403312087701968836843897893752346252595136606387048608327831305259585256741098028952022562503736366680657016781791091736304293641321668712370637072434914086720719702299444487481211667451601663842612609738178700943955585887415079310159309024006107460160428485758376978574182535936844835018733673622789334872425575111885789618797215456148655976241897979264043297862133510039201472234332620728371973851846858259271281316487275490235122254434105034042784725612425040294321601719393551375642610651537818052738485991500390871459175807645537885194911997046242008884363832142259039979493064178600338885032764752512801627603734107330842679740957685020362098009809745978014096019434814526783761099465329520754215765951288640485076564446010713404994469400264286769118965784550704948881027138181475340955721225427999401460773508293679972279228125217421689424252981358606833015218385144040125467499483266779464103596001789440440086598125062378461659956199855230876078359517231010215104896243356859409692816312040747767420540881005871031903418843158621822115581877177583673066300460352828697428841116015550502104039615810724406956571383773301796713065222174481650187651760421916728946052852512939935531267443777757914414087514012746457078603439638747712825393984202537668128743445953219458937790000492956189344044578587889270394901362291462607122053586371800398424145978840469631895933745315114276729301264765158785217336698439174314179763212033052677780494476024577031338615258658785704242407678766536181365365133048803392215531092849904778282089468463807416759918520147876885482115299257262572016714748696470719966001012588871263866074072446637662415195277075321887892908833016760646456269838359115224623556152340451046676358375860831826867671012814858990952117189945728046383831580899418723880633720814281471946939250598894225783885568603308177440231683050134950262199675198879293330767855268677396927089339954312124810376295984612125644922715965098676523151255139534926428511673007490267564454620983618105271990144931873370330124074159593309980210230785151250358734375054100009263478567100074231566845671527654863516804055683221237519867178361018102889932755319946081639601152464140924754964419407525245455423488837770066573541034518626472956114337456461714768363928806006912686903153290452207977625061392224859329083712840183966827413899831525574567305489175055761774926701459473185360414176256913188784917917234171337916712026907945135191434840228096237185448854972904806539908976174386869595077390168765119083526808763463233067956646584234759691665811954051677947311188696868548206447536624779957341227094135752821337154585235703150872717434901425770697508654420512821572073240858414280715947928110672569803855305782197059616276236214605301943630973688091279373085704483870764695752828995401931174049071526349304064936937424127140033798232311898789764386526863703222465855146882113053688580753977904682853125567015005806056711522828924722597508800890899228412213211762444057044168206136847775902704541554463053443466301804036974824123363190689920454269785128676268953735741431196736662460832397069350995258284719678891868777818302788527829490003932472065886086030496401122622512272791904904802561668531103981229218515741494577140248934167439661964000129384632769488093460090445886108246748060374336561572875031494352988978852330519164232731116029537430294677598051756734229953118151293297438017050965017531554401444145371989836648263080132821135092426249880400831978904355177455004584283937266917727362040656876012694098485108561297940438709572108430402859529180617304784129081314338636217461367856601074577723835704894054172415707555647096538744374649539127281745742095968728927093874826156899513207750536603265327283301687463542223102844145942468209334453507586236825831757247460265356145920827507734742013604604782046220858696568701770793028226604840129683096452843710982669388172668371962987455529830238653396789219841242205305699074260761371236620280186656975132262920818492944225002901402418856617900090146174884410796726533757505428233491165096146706408600511591604917332707873932553244465154727469985308436373703863677514263786584405086831359787701403720284311173232967963411958447807663313186615172991256431719902019685234101667696058999300582514313903421140011589446253552556486252977834817687650188299195193699328251343864692282967839134693043379754080273149242054024282970132651474597294566954867401989266686327330486680805332755265558593522937709631722756104795254391856270022271311054574210086933913125926231441962252494547582412738868933019156374635487908228332172386362412983996280796688285877591726833638358846063110177844809991554705890692355018778363993054099027525378906743512371447455693234028103948633134916009997873690841508973853975120648987287285504350718914250012277668157918164057046879588130782828392672527924988092470108739113487640548641851363499433611400182780267194751383960662695308613485642723730599339687326177592061837194291011703732351892345489715386857346561417555661414300688790350863209512980344912878380916667803015006331309454723686709469880111751242364374333077687794723994090916211921415610481887092098276859817309412734987195077177421444242166000084039052954632364366148432600796822385758300824518561963408229824596954062000598007513502374901709122541691040012990178139069102724671723458940474194886270525548346273512038535790784156433238429355410361450693548251961398359573454159989668590905747977172163913318638169313025749336957990143360175100272215277882160173991146468268780332141504054517540943666881524649484711516095464451978502681492469997929352844687464423050801306010512983403829803794520467941514004909255766625134669111184059416543598106521899918676603472554605625882295378465427977218286558930873023841054670961927434894983871615799103426693888945655676504419254187681275942434874754762962035105669352652691282619860427708398590798073793872243914693175409842231676141117685473025441447102945281688240690638982104360117640194865355811747013795567252607890998775549379294122633812338688981443952465027261964419443692159849101589360165674009037152000471423327288868577311637535090405380469133245577026353256525636016861762890856382369424917747460179585293808484285012248249605474597191393599902682792578226155771215694895277749629575343070108450596530163239277361787959741913403731473580158613796302640030982727810195070989880985538183454430553863774587775468513594169480322212420042859839821401185090507119663060223026062411044000145591513209917440778655653747278660669409126489913088254355995469626345644475803248853171476218022534404743634126867411584189142267431465009210763449097134645243596581367819392438713892976781260278112123200944646044466955227142930000246909634318921290708585526036714526194602307020117182536405551630315788487090650280189524718629646332420952303761473923989778322275934022420327511279482776705511370726114751704153316103281810970580671582378996370711826679689868484839393182966416224098809606463183133715142019890208539373293953757536584915514626477413464090337053238320502118835671795307940931245812460461074748057023186578849998434100862152471240405614850634241074485426984036864298922408837939101686749703537930180364089454273896739689610846921458087899591816235744974712733037044117824997751083869787146469652237261199705850468387799789115921348030343446352595174955541659754425135021244037887968308960074137035777485801005479466745242651626812434313576438476979297322662222992254394192793442876323615504127736695371508367144708210958408223107257211350129652091166246568020116635687106295974464312178487808090003890646958732089896271659640922056575579198356286580724605012347601278213273734743716974651869779819174815401793746190621645177780915601831644955333100125473905798088287872167922032607123777832808061683195770610447237139006648157973321916696136771790161843451209137611791517832911517050182781686002177485984952448401867404705846880745053708590998281968191811191129108439506245412670862939572159768553966368723120660671660989889781473464339583507883013969778792954167425351052111889716008392241904299064896053656578310970220062706852025501612340395770566168713818766877833383816659049834886467507826442349849855793561502834038151070435034345545639989079431320561497392500080136107797284878404407836524099890266482953716935318618522511957866092812106722209598435422404882548633928632430310429701905214262186201699969147593450361827304017291611181211797044274545110509610581388114569198533590432970944282606487209350416060353495410182045796502168520450125935000946970890498712302877225216239869388100212512880237127642342450777266272703006443113269792533817707396427241733967993032552290348757514495993070286700878470036073299568466151729785271051628728200526341288967995718519935562669400913947889935965132166415445192123348572705268263265922288300973840171231542532106695402503532063489505913695940251972373168196392647184588908760479299194498359391310357776883812699150096942716081774144631240767574238145052617842925888045990160671348329244558484090661618824550499844984891166703809693697572304804229706291870627552811331401899222588167338457410473897199807585835936270989127510547184247997164110910907876964212383190794506981174959909718849739631059609301475429501100890841189196707572727305198493992244920259886866130675901961855506886962199865374446539827136208066675471864704902139092954795864047883759447919867143739361175482162409227289837304084295869731427159369207577374396787926579243852341891846764064995295604781071156290782634365943320402616947151875742847701833234931151874395833506792492462079666543845163846528161301852389517598018775934874106409089100011764566829051618159482273759566397765450431124214869737601319764991178895628670346420358608102411968759374188964609029937924733641432592603933266195135762631753925689494267908003873880960224392524894595313054912743540335658512934966409342040619418995889081583820059181260886218766150784911470313824582135401517432674228827523083561072032433588257370189703357239775652014221410762770385281517766584788840732999548912703038208391522878370474724078662314028305303471534573494181303037632904440363993102324634222464672464650421950554982279064896808825844355115934703005392613839072000778039366771266281956170288900420788425722680948823285033598726285466159073309676876011412815453771008439073943103147761065557663380413577594680041817849902985529266466942236070061869138507902117188584519039263939780461964792674541249714574052234333831905851329111134307413323008932558578851306822762846085336263128981406768475874699305518981830751851262319168026451791625412649433954379743904670140825186078208167793150130300877214775474660860740280769469578708547704187417652936761355966937405820542309823965232872996331725316400114370883684664262967975187159967802806331901805361173186812623283859862875849841491255527434918146053774538573593025254097277071491299369352763182430257890966044288537143901686467016241940509161171124102764257020553535298658681869177230352181476305460581941534057425955275100763531409331549289294070545788185110823850186054903397241047638830574345475855496281398507316850172208459928942748124771629154638931682371191292556456310686157574777896677543466932855075294315967069020175902595731908866143411118034848599242385673300155372280167012578898915707111540074420215179986560774498484555594039832530132661724890865145719595297206490895806220307569482118570991834795079276364574916666878245245314631537225698857324404919570432122440264015259387376956027459473934732462709163649669037413429607241979208727336695359337242077901162268060909319809054336430510472480389585029893144864219031009229593926452222154567897725410292086468444249016465292980449806787486243513060806758641050735911706959384378972289902308558520898600565529280380942933357536778999509881527889520584572417716270151862088365758545250924382028939566032423371148055294511474930106050356444963254879084363803868966755847449456371641913547380798218737927387133341087992471027635485890614864630055228468310006277460703915482922517810979846614235327744548993904349029375431971799977263496753441669920190564170752401974435455076987109916537881838287248019928440440976452003707351067453631727227883749715794110502052580112056222938231978247008267272100285830889939734297023820408071342948013969237953317976182898514733573531447312169488912761118637110948081607609809811557628635747285417143336984144766778776475658757116898734172310100690347088471294268192663379847879016467442677530056512213315649776501541589734746083615919881624241551651728139727445444362709386195454258480226068463697096787401613430151076558042572719891250869982360132321364957610159199636129778545499560317512873161842382306761558244116868552170134328919238593798623812702710580228996398647071709322457479916956451049885348610808325343681415571342255000792849612177843782468378222382235507289273372636952502597557144419820157655867770926590288731287471433230706913544639706288448817286432870105262470954524010273874714701011153745731525886265136302971448456156648915819245009425852622955613697345705807825696628866703441232752455363518660405724160272851290474131013892890871436440433940562410076772720519378914556699028889619885528709303981598444369199254537923276047264912388929298507020154615626989792473801603444937935311431344080428598685730307745303434181245493091622427392084627883751305281468179036124350150859875045737474131242888845539499767280076735155900797894623471539462128703513917972103369223175637540019416717676671675397929622957229342296034931165263099908668568765842848455270828614495647390664550968111293806328222548624653541080765020691196484331852317006706994722527748864556132409804406920479096648354847592655638926999963793142634733445237364069081812738751696340465560038969980169010555181065218916977585680652236754705269785276833908498638792215104355131854577490292066589930365830180026453420121552678277785628871647451610557397905906387694869359848758121034021709764944748473914307667873077189396200624587094043103281405600596458758421370945280179594055628427925288901673895153093009966610121035537880251683038456280991649382298333852424807982236133522512413898477510682609913270376087511803613544285957308572990984937760066438639249251234492230571601586713488785259650992972756853867091682398528279225098722442528223992593221621463056320263499198288683391557669027130489439115662554428386679618427778873300648701993460726239942385769804335057787670597861272591828775817842172812716834678737947411056856228118578772728629399209489333915337388266933634346257716773703623451135145631511510130761759285774958438365517355731786649052530238874380764274902615436453555842620375895812851808730411884218662844073007304598005387918053832370860862581351538922233978871002977603285050547337482632278990830498074556227129552952389576687162379240199085973523475570640312785828176949364223055257719990455520233391596129673183573825237538696938086229877242377009372841343318324605028341258227934428686913046110621747415707468059784376218272979880077628318259748672590189948541452568033973774519347563200921438076102581646186333542761072313243793857358357336268138779958289574982004386066611129694580032278815026047062606422766205391822962607293956960680906609767203121409736767233787226539218096025076792354244171465047957424095206940896450167922192906266620651609020957222492663541070151525204970504767021213456608237657225328623933061413567615467867119850842635718249287572583181210402390052386060217147546943447478191463113646277721951141039215977856155404721877351955768382025378403010302631848396785491828305541899569068327594875602446283284194828650177470510864763642284485570652806493703896158932699280183628213104530141042957067027781350522289644902352255369219508366914689106951554425274966607663290303542723682777696736221542761063077998446840763905175797633366841381201126315559076960200735193508930251926684953888578737270303818671683233279166989633884972004960204586402733871780318061105635621905722225555021816685693014612894914326461048818973801888352040163569522985872818000377487718639908427057453896796753136183799780482626001552089376952394846272749322226600157223253795195239024366995121063018702656921341805134196191330797363200645175931702238439944814331591200469612699980013677696505008430551090426314135290965627831003512441124221862399328593923061687826502328872016842492358343288531997153551889718190238959825539783175745243669921460109907423901728774110676846519963871574789393053666301480607400695437966323606278090594653980774206346191666180812255821780858868097599733802934082097038041799715358752451892281676683674359582868186072620648078084464501161061928973638589911601486751303009565826099095553231650946372711396050965829290352541355264121961968246727160377892018938037045161775128584812848642053190906348070990735492980892570279958866123104199609031240816633911687144301552508633241736457782857599268799182055625808905257252980707430940587894609319571665655752008915170726911304540123894125259331928630733687398732177424243293586740529659766980236265410126284978036475715693582990719312402175179454546257870349098812694313005268593003414094782268468653820602900134762718437109078320490796876731942841571366340329598392834530661387959850081756322010664958637427548144478201829283671441814471974900271634450053187537773873677800337357649627825921000880532055562917411019165661203190777617586193595448433776372915588902995482682671314668316275326220378934904298351411912405734896881821901182760021356641958263378470671402539845899709888984346813405786727718240122049813325071031774716241698695709665529790182318969065457366068576237450565051901306912855001798956414584512402444167295548934276798799080184976948431600662792281209123011294277455700439532457903719445335087566313971171448798097934332091715414337702879628993431284293018437423072479814044205833990483185647971697979301062733521016808375999183000627508144859727094944539795952934546005588666893248965382680748050114937985715346815434501743991085326287375924009498943975602757633013002760832703434616438461440966761081027785259370722395840042260197897065145984031064194748389047160160705237060520174753564410841985770792362825200340474377109933383640722803880588646979315361523063737366828622708870149686443330859551973833288222553381914850656040453586576020760220597994782667921720189519835754737225456606192718422268668173603901217871462579154919700936816244154502307196094550322852258081893595840526553019613581260794565305747693191891796628828658178453621643620968419078958687787192767726646743539580227076725609721690726480376117534451131917898807212376719529709204062813559676042543393381234570162486815812657672084347200939897942836495323800523836238460778994184482606554505089779427504831294538602820323863678136863338011387887117240892397317161180865241322762928642375063006210185768727813057927208179477166676342370382602897668059686057072405866831670371017960659137522001085522048996151255074862166408587290455286689504131250349198023775252793050879339921197505923686049894961960454391762183630696266976288115290554769458891953378520792075017183939646132385789624138540447883306288610988867776060632813447562929792894204129397936168423009132960810776656428649563544870722236700597023093776110570627358190721931770895463076492335977786575686486047218459080235928648003782427075861807579363555284861503059204855931192159109658439211780945127817074450174185504380262401656609591100401281410553280494411309542284464935878682487699250114925597575778633728807283548374945678478340644109109124388246326605608833198544467511220507848324007765190951120765486627435668444759780607032909456369190682983280767857857369781197915539933952313973347626165498322340396887182187635887148094086861828146264387298252942436919147845411149804666321132985387841082955486650327477147055906676899062528106620764816300017690805037932228275904711106969373247013394406778921039753696860007684826084824391199561516947125389400153020028743005792811604963184395060656415559575377418166804601966261196929156450930409692889022176497169648001935033369570116953782911839941898795324411754353645554799948830529843866546054805493543882681583927924116734312734080510768813110506156517482523501137763062016568472561086465887263039323031594399302115306593670753398537633127755594621008322251504883947930670256652691402803238164431372398611042474894507807908474195750054771375731522324064980942773281069027967017749901287528840491316678446037100550087949677200108457501315372193337127263786523150939081937192106747655394243721979527249068166719564501998394393776319819773354000261180740692994847677123461061131326400100960070087171043461447132180889483481514769885005687806974937340632909319207565516171377048610027686774624159627468061050931257482020297981193259154836170367836533715711652800173346823821383760283712792582936310477751433792006649427998855744951619674792112548334139381174669795811427836122847339161004896655576039247706776374981204749273330270237792409201147897421996746147775432036523451103631228797083441221101932755246266114314932702768940184229047813211937517275588747801322834482983207838299999914446370397390077771370214659852616692360464375465277568980077080816801555258338512165905432719897592136051814883096155035626217457191482981522940589873188767658676125443045428581580380414392089675838037584861697880183447859951252155239555044783020674614093386774841903953920918486569565283740942586829326850083535111951729813352129877128979524093032092663048517242764736541954584752812074247075245397414309056209972467636007533660929908325058633832680803348758493601041676269666345452863751103089093378686339264898351194737883268494650411191444305409902328342511575202784022408074244890271469637247134541573993869571870443499361402548182680268452143256086733866043462583730578774508660816807553532288269428009250306256649113023874441616059539088472362360987652054419917701293790953203315284199675879765262198528332155023538920941766647175875196034199010678910725680334847416990900861077371166071454240391092613481011935370931771832537473703794626860300751390263681820832185703708229361860567236945558978740218917058148344610295860342977989028343395593624202828148961385322436481175606161174621737973506693094968813054371205112674880797793839180086121156543903697732447519024391792874682216170330622422870934048614723929773982406573069837743443228257888796293087164106679963907029381499570744064570176078206846811144664388804465247355741691854091596003081062082789614806220658345454357188416965090131318229124329183780686984992403467059170657792627430091499940351734030185682133601477657352376969780118129163722572518886116937280399319196025775779750273941231797929046234379688462730957764193286724922748232486959771962653170465747699918264445783489048433295624471075750725285980604353703575440357744299953872732584235825068365274666183495803418535891612663814227481073472180892625000640279592677693441257536809546091984291540568233004957145245184642708053252753176003315840897990284925634382558686599543749323408742486185689306281044422923106291617927373961143552376606110278387111999936115043777425249910391223350469556507234042434292016364057939396990054804246323715025775681105560774114921305066380256156543039379948385765780758648103205320159451629966916189575877588750793159928991887577182253923999747137364986326616943727726957595951423033816586148855416050748108312409454690777382246905035053122453305180612874168453688362180254250335045457842905579862884559406066660298083824399709785729127689054078594946217926240599369778148712631384128416948987509989208170161631168890326201522300544771635325850221285430747625388065548585063522202610565931396187036988486860211908802451778061168015702040315157964695143724633183329767613778496003384501752719981432911896553587293827100519237960507312630705019206034877356328065556938920638281603307409780446528839386047255393757573450378115246277236133260312138062490628164649728237427299724078752947098684318369686599564145195115257858055035414723881281337952174648385142264912636456461904085131643617948403257596442887793030551127103657991828291148576421615849008973202711679621783763194115411942844006662300000788051816071921483152244003989441779137776573092928992511352757444075804993124903226670973378099273856249213122936476720048427682162385414582705709401128158168957990586460405508594830266139993583339799334734424218890707307347391319453973441871207653660292552232570640637129739851201206633630694763745978920086065585546877563228484229314370071905539336929642446073594692992511137656743574837797059356650645958503401379296206666816768490887304482190254825527038240575006503954767957305279541798890588803769003515516561665665801720691857304306867160898789718569433104678755393813081365150166069587553085765317438862388028632273630747013743505023919164525934207384414960860172097300885464210083050426808630328860701504582838683370452050498016108015587260760421837228396311144481089362339558786171670619140784153678692749860965624764411179090270199821256189675136288499996775261961888707577286490743270289297793235957173975640750930464330177644686830216301241408681129821254419293171209463451078924519914492187385808271310187678623383965517672523382080511063569486088647146990437604806247510183665782706163589802638381008924604908527578758842640966564622134669855814305213438451187857912145702179213610671501014147731609537627468004817344319236427866494688705189721776597831052773130885654631961747732936946258426434251108178477082998044634016275746796315714076964985819176612964338445765005199014758786254518227034537823828145335428988745506362431153373546615306004861461481224087683373706218706698058875639121484496300545599693932665791064196711537475081411994186051483621904373792965597495060257271580352554214405586874247149564294983794486583939640171843033356150735822282663365520991941121302558777727238681122991172002866512806097546499036899533708727458383016213997792058380155377254636554191304421362022437689536385264308858398272683287719599683906785227071622876610040160917039754287006534622583219072728037799953690047271400977232688478793221655246246381743989358653476817014243310955059840536960669034526834577986749346549593172229586267032404917805146856146873284893152852263111002551633115315727018274831693380187976123154120372748061415942287859031602666661365816622993512404861035876786063011264172184039582581251198338983495483676841565716822128949754040689805507444818599138255169912130131862587853397575606445848347239271232389908597005902097772267500917701470042386584873282081761782095238916143198704486768017864559806033316576014562212272426512704745524612462582963227888960177707689970828414530602046592556307168263722556045151749354069012961918384022894317224374742794630508542246225441425530993574508462341043915553819197758029666397977457323866224817902168149093453151627295141003859250902365188154795324578548808819888808894026862907838506070698017356605510435167289795048381364714063269719534059634852887195168436887516113023810787117317343049654753823103098131538737449990892497424888323404985664644817080561421969124385329291202428937557591350965273679576465863482935218505988109520347129363113976427466415793192480137214440298755458694096193471478919483446003512023139546922010152990751663928901777522521904569700472020046288377693279798557236652732840036864408953604342534486502759490232447527620489053461055380295198223497514221079855878829964076607498133056395195965186571255375846452896087191879519576607924190852615916548275922781827802356142287174163007910293841326182513572631485523936394904635778622275212605379927277375924683572960158626843110000191043579717732304792633295555190422098584906649456478029266702114705339758085703114910900789428375152404513395795998402832719334447716786795321694535156463222176056949786238866909943161503248291219986531141782968815373685950816137026619806051803073495429018360668068364238877515054240035635684676327545545419200270024616750589315228356560100887511777115060566532950928593691750129699769062307455171728078414101313201279357993977572939082607417092190518078335128234186144023709603664569362821414309859206239850260252687856471713605273929130339264496433627272527494370342721766577519907093315178567297333228807175849572253388721300351521158020819003371136081923946669118568853207914796655936566743894523947282018773310645306170614902282835111012491794559285754224189369683153237581775430774744269299913475654410333550149181498941189592453973553783867379501753869020947320949145885075092360980216953024770171873583040009190424910337481000572281730010685243144687413172108615175640654587086937166807069477079486905232040569094108233818226434771051357507553790637841188238198401575441387159031603761315893399253470032242864222853826851034393931268224840537615993794524649688448406863937041877345574892384043757242080478996205531630050639337669533194634543906908157908731317820662864829001532392233780835532082464161469766770495606571351135585516683265005890287599312002620489708503670017678082093092081487277775925568082406714174800096540293406626649853602531858542271558150506392805769705662780105485195685988700675721796503594370173973263207031391226419844543039879032598388561730784626261994477510055560617230831360614632983883093561047427223210471618554266083429267368897569963648768662679230556318536479592520889178345933727795228901478931469477237504188757988483447694094024747471457008728479604914909272432275833747901881522817981409607092684904223040290639194964354458423860921462096101179202181857662346080061182453545519412901997158017282547142447798443678156829558034010328925633291915013455186149592425017658191781117350817942977233897990644552885339791555978329336229680188493844860181563864702557783399574719177804058628454473414090116714763168475509307083459538938039569423117516505169435307691088201583244688188011905155567133798602969433083794505830962841197612677545004644022187996935562104401570769385546505682798227562782974049656894804590420822137370829995920522553334072667951322461812827010806454241100084426109520710239740020789432474438175205146340610375565258535229355660390942782088715052338295310106656693126130242597832149098785786615550455123438281143496654729850187693728376692943949902802344899054946407207728510020669143738252895578689688871867930793315159364599507658218736715525662663732605842889824107402004007587013287820635462064934709408758323430629771674610665873668148237003269088979947087936381780452005119879977171694158062429740503395162082260910179372036876441081190489878634574317692089484461814298355130504313268431248006952643589519782464625738236926488690715661789503941336047055902192916293013039926832286292172995659516871145660490251859746786026017139654370837924388121677719634777261716836018521747705686158567685124155937783269993027622216053224995628473625432927406628013368035742475509405906577385228669533358597756980668101454629622404682522176097016920313551541242980161629642128380012983253471450570664311980313753406026289752328363341273528236875763934972019116681614373801237492077472383289666792346949147674074847748173988261217202641344269260131026996426636766027355699091309429321832010003906309146455251289799882432557486184491943499086261713831399615471268460238895509296794716253183340924601205786371232460072736021743172717688840703345387191881166030914479045697093972233788027255009821594157692514413090275020925376580659574297338296414007904941737585122547431801893273056985045692189393477300544876813166148656548875649940058285233241103775927228397294540285530000601523964946703200778458428092693147501954050711686872785727045292370089212200751336637863810389491176825699838277131608661249081316226375805501220547346629743396406625506568471931702668575699329429626920204574399773981975475968790929428763563207357696813661610783264308184690845773592491764758577359873365169996688701972332824773237579977946734765151413896102214093433711762903077917157654242715428914761161600647162303775773773031891328564904267515021127949210165517299622334508578907494462076400304848685546545858599154738056573805019195966206085565244371670223824855748551343007948667386890736741615093703839218947843800244380706010273865894373991168819319301326169128160809454407402156786209708611988677728166950071342862836601568405783423658318238718076342831213380361771950801456618510313545090955059219911517169996433327404739070700399572372132725508561842374245052890505080129270461425893882190896317141014283027246272007002382372263102909052981286203951454980104896809127243445305167183377658032572174911098763819039163193404224668753835554995128106233153638338810386045055344052178146088575546117292905601926998122389291567557481398970683896332967083929593338952604897439149108096969397645325057297899837588158201585188076233697399706872670710285306517631050902300690642692538422486099011814443152899986133171467482029864665515760238890647443058985835836336527657510840533042392928718918188881926621125285476324535145899813563924754733928515764191958647961500475908198180732826373673674902495314796946762138115567439170561834988675231230643633012478836895057332414758236130305352526768281473872893530463615523198945657344074604347776507323757303766083396522109125115431554742328577400229920202601077529954212393166243613854612073680767019855455435942317140763757364080446842592838721520407936151864985774065526503016708389011704572663255114977054387755689413519079422430036273645891547069427049581137375266479245661903688884370254781934297637157312756304337563542531318762885159041893978257077283314132145472849177408874061246560732038598584717789141653507249491685351567310689475870764959751397466602051044166298533164175564872377875641140199453809923775821922684480154574699407992480580347575394025787838136478995720557533732855982588373271895739710475836830646804102108163429823027581406969742891412483825538698840654105931697699931252576361869064212437324653998751978529171108473001375798079221182128684393410479207593087253453558487972488564563517581246639598335998818306375162339783955202709730782798104476217242791427497064207853298244943456462463244493667596875476922566563431594579821706642361148005069567879793058488317638213734225243146168838630416488638375386359797842335465385636761983459094473317061292656856238128690206971712864709160952371830860187922204936745871939660214504711186314514443654758963437422943566118051753195374153455021684924542478841210802205072223247794065567788024777757615827699485253466525125075811320400167116010986064208032869043353718114569775249225320305089057328921138440206162534734026830548476930362704990859721688084228452335323744647950657110027941289213432118060888503009418065177111396903640119394470308934640957779725716575017546770344227562023894075190358256648434841308525941126200769555482460295065128986496096441773100182777526092321291790019449314626753065895267820772619786399065470393551128871681222831956769236003352935072479299150200496123050464840586490049334834026063439558125165885348387844661465575847085232122831889991195654186268465323723461320817639955270799559294256040661340817996521712619607347270215248755525667426516278956008217653387086805604794335675243855299815825962470960997552472856971747342367791608802404418588529176457628229256302627026375458596565534226979434640673686364956604809157445693129675988692740861768228901336716880629478975112520193589029574005190957757128935573760356640595332458935348076730829997390953011486209913113082700122527833389626493184362763600245189376557292810924898587998001289396435788452395211785462456943383972418884318068103520924734936579519731336487167248348004839229832931904520157023604197045822270283642687258081841111075354585092531802668118895016902939658883406316548795876207338681504097409436057783376482326698531868557536865357526204614233666959207994725236941281674463952850008766980917462766225270131695748491929689889969501023327176885516344398314341620096896239126226307343163899705372666143426499495696203050917294021736195249748913539484354661953442801250088438077088530340881963537020621386978511393432500839038643073255879029802056608055566685821797531318834122079953753536167477928944492091061914524672826453610705769171744003342856139396292992010276345066531323880518832828390160885855551791661378297987107708502613094461161228115338984294069740902833515376419777116242148306278992301386541847123076397207352735938162524107522589095743331052465944276004272906028593780750336614708649056503569632391730561587667515170267116175964697339921788643959304455472191981956645780328927609607897740765982129738841993654632331397338525574286939855394507600890295503752444736376354432906897000344194293692021331250423793743215667412140463574960120055063169370347237898062778231812821744822988809242043116905919924128854122322984642142708639536393084036121721412877753817631064470733952355618630629908080186599756487694153153338944479624484058614718091706015397104087880224417203265041001808017876155618696291772618989798954497667052540202689713938543332226181771308157855305219658190447208684895079820054821418898402742673125520103486137127030287026606006334262453876314610610749633272516729333819657007464631155994049803072427330981534124567300015629119255470550763127400316761859429629939692959032508729337577970507398785986904605277167022649359953421297609612831498336237919320096579350612640664048382320426242892624489898205929732976153541605969559442857799423778830591899340791047203188301202946433349133075757750819105814838152220987615839283559272960025017129370463703736406153691597696189288896572748759391228271158110637219525483554345945706733983528585700147372814873612782469418009913826324478516954830948179600140059343490142428361505879158884373073229287751678442259680676169129870465697397991882405360294178256782740991560813748882400932531955224117328200562108053870278715660178785520706316461758044281152866824118127691089445622505549165028327088534277964158381711984223960472796866229654811148341736528865740898817913585495458269750613525857958251272354171599312884810542235944735892586221821580869552395003473668508774971957380132449997681780794288146479540841430716532454432916906164714907555844971122348306590976247421154790419974188465989574690724051484444163243750379197134420886433236806537228062148936930995227316933476956196413672800650685915544897736613421575505635537026565192746246851897184923239832980303382462999084453560752558756140911445353017962807183436138207322294193243810851950680360769588896736329814292125738804131588691550179458850886071201245837906160403827683011901633988420775643771584233255497591593214383524019258440915291967352791761140194228305445177376268474138802430788704017162177725255055416246061143324421608750247810745180888657697513586256747314660950745460283396597323867478393227517481448113793622226904679472322530630516524521157174688298126222507866967530627159397246564086995116097707818771824516046594845322827784349177208259542423134256726046121854873664807124288833058936916744481399194222785744980159598199959236606438596336604159684059239475656182253567568111185403295756030411854541531130928368960191042072392387603377135813301686484849852320299410873279677891467375893472630290293416278942027028683332577009714098033765944404448771799139865229295394289916523495816368537558672276370607088521490123037421580013281137177826578775064039865089265412475660730380343649692551202447567805827703406098044196882448062644520538575879434508403476559643908248206344903382615953595177629761040666771627541860683293319130374751983273627467869036985365488351436503813959262212203087185889080844043416113493848975058577990505913914631785896947099264840402097244262787939133064574933299310788238549866577859206291832778662735096389165342013979645468748379862073519969192178105045037864965148769807055187416783146784658983841848691164020573025702911005298951057173527699716164016591585727927690059181824660000974908876818571836294084592825933473406210199316380846751237751068295388640998696300481825606539624217252939938125490330113945761883556985820290659676292128385460796425390307817097308582842581906823079641580540545982921169737975630828066917075183333477055220322045057732033686048464167705298793847469196422226123121037369603856810647922034633841901905167522446236623305767425955926971042271221267839962969880256595358575258225451002713650020443163701598736614669804050730314604532448861314099740492990646251127746235686209738894906386427394046634954575727641933657182693712443025339608222704192545426552585934280527022672148736762498372461465427187565854276624000370281658000816842509856608629624129768518021355035430629675651759107982969037658698900996249925592506839361401982462648665978246974782595088836229722326904825512174187680073160915997479121027583600590326302416390983587968301358512832498303669309852859115964974436825069679704578868142369193839885246923281262528278822490930068288172298302826869596537012158988401912993534290703434048470761856273518130546731428438137428862979231670109685492933840239817709508924954393976324900427066474650306199025363098366509997517537008350800917036331375310662249970957139238686610871961330424770979324053234985282714052248582352002398491897773191167384572196890185488079756068330240850483419055461390504499086725828009840824606638744908037491211702419342192194762262470375365719778508173662377122673202557880803188051552818433343929192994745504694653436139013262787307118695707385088066619444078461507280136671922358131016018163516426843727495777088170954314522518781512368108825785919097198108521401823034933080767298321954322109511423873635755461786995988711514749830530352747165650653068363851460001176671867409310717995969148374023215920560828247278469545675529848685969308719621308659705206096253332079365549681698763919829996233607459060022027395164417291450816495827367658774696606714924640695312998828326925757346629911155794187755155908483189455749567274002381613093640457694961317467840175358266753697760697792809230600190453249453809942956158291216955782924069446752090540974335331171218609668454521882666089091499336429269904297492395640932051555855107016241355692363598266563320586644673189541015976115427165982865376072386865134281980265619556850485924518227640305699019024342669915487755948748406062259224458676531291293521340172370342208797759351349478447084673173497997318541216194558439570085140345398598800803676917062599102364912448447692758999138752440391741058089940287830065308392725429310770748170612296311412544086336045414674846888865023724530094747904734111453446446321571345887675552591771633025084761333349941529362394448678610125532626746778588296745942848036206030553177787074053716405979916663753481224653380833738357839721589062200032727012209524334853907913863420783777801625160319750055680063688829018486957932245538550475044734509381762420036547678247619277006099088516913709620577711306239531990531318291534925358483604595269233156594560737855784928284563263613813437703831625494797264571893656658011038037495213973197486689019984183103693083441015843866835801439731945111726354446655713874133887807238119164996819515340930432791860050992212329686758847945974484838567146664353738616708563105034803228329260209913337020569809976201265681416966335992123288222334532238937965670789215381459823316959230061197734132584276238738074614659201888304640098125363556317732200254542432166180763781577109088840986265792692486279071373217278547864231714680778134118808079552357047205936162151860331461799583276036711861091509734577112807925005044344447940241230891967380292803599432016120770079900880413419013990328331676857122054623439755380647539356419809907773472613335177009772660613990855678948398328212333636073640528066119497027824023880485258439330356734878369978249133046657119809474381864492667771099919728351665132796460735548440092897397372308219773045653105731357523201520534009609054295705602486084478059307636208312475445788939094865993793067693504466906393335467216149806456874471242815913562791440885027384268694140856899419128569446125219669352651970391087542004974954365826317833210430787766644675288509702900378770342453695815648982298425731027492882580989238317246217001175114970172533368321160104541261363752113421075813599407192019186143851930424879548022854310900794099008244267292246547774866127407108497317943121246917403237734038855863504574317135809119289648532929290203807865994508425924583716734984729389781302164950768872145845893768603143444755357116493276417760776827982504094998752009337547240957360203672587558246327452620717636436536422486774770037133469480111012937709599932667082285773407787028605138584773585222633801639769875470322756304880371531062046376325002243792414214235401667479215320684612312731834555002969965272174835251523699364247805320121933686928741191897962406653517992094268582401341934074452031367085274160825560002581509839873358395863110469032450070632518566757421496428280292486371246902747951495972841426503706305448109741573278459553475846125271064320844935517199898360983122189248127576253930479101927925097824288592529107814751305710543131351269235329808027288523102546558972901169556967278922351820090471806168297360385618341772657766078757102653509777917213427729748366558350534299352499348548099095719154573472651384934291211393681138696538663420057849541336717812136505228674856222017555047736403551135977632886772107798158223403706068207021186527972769276095655486226708459743400192741948812152072868020094468721876903959672338189308846468556922158001483726892616952993226798365365693839980296609111301632077313246083860940599294313637905821001572751918044518626158262452045958481302080846339556979461132244806052255128528925037401704566312170857916214711202851668504305119685345767424550586670876260325795028806831632123290113870037408166354131520657335066347140750934928836070028842925221553785062787402837409523045441074503994639225173766945480168419980076552392222927058985969155077641354691579094644926480765017266937990286078902310478962359284601790286586053302616620671689330222600202622322949280180077173604485405485620391931043128380278765434348267989845230727014245719214415914756392949710086295902614203810342031861103146258369085496775866753204453828141235795062075865252575722396707968580676460225554254518982595189598674162511601158070108427407537357378843726158136394864624086426763847181184928885780824458979093379322192033875214162171408936952715252787228788230058642218098956849989948650393306530525571484751873102905731315391698913680470843669302009442259263828853220187909087894778062134108831171028839827754525594741817367255355499805630730460383406280596068785240728906654930191208869662688945157225534063572800444799712237371054128045843140181408062558379612276037194060388976895326615698275217548434017698085425978007866759863825006208223820548107603339220349404916738517103393841893113394681734349181567171849706784693120536283256297091222352412688550266495434867475861918042043483013391268508650276719272584075630808194807801259156844538373757688994771232988748126619225041010637610205302313143409389910142717791250239040884813709200130666750905041443498963410369671166425256361992272578075359274039740690815198242862789908548825136677768376827924116043580223585109152010711613023160405986939447755579425988546875156885652757427719182928052088338512287955262550505476416573282163013922983017598296573454703208199623047448214181746751197142040481924997987809365428791085095991097323688358856720197857615253829948472037807491727659756640899403740494684379576621287909396302703646605612107565062468282859989487559214317104373526308581140979729622082130668846330220119720927748734723157267789908017797144539884117567186029814707652929939447317759179277455797636007806408897235920108352538059534787374787645665653091819617447289400948499215376515287063612839821191674336426228049859734820403372216378016663011542866609603437826817031713528030443038849150865709572875614552678863305292626013390932033829692643071095206624616824153700828745363982637440294011677880923153508799012741970686352777896493396948319052979544722486991518394640508820736118646393256702523247306316699890774242705470837702804588528323153131198287975073359363241897658723310837315868341301718191969472639604057796257429910078957165947903702147194474479061379703165434398749450310836741058331550728688926012710626218637965725597163246693093929923269492401035560889239635733146186711105230572126730304402741607211434876236202227502720039873780176217951803457777182092541242518316086069321399057064117777053404425629864789155716650952291240480052443951160699628682246248328141161551277466445577068219993108426824157957488450765270279094168447009878501311367863720229316260521411571753043131973833642131284678540641924248743000853219506097204214347962510025208088062226648180855416375934035866248826014831734802490423715541258711552778698053384049710781901982696093999413612492686824571853637005513650752845218347442239457249233987433287587044182623118036021382457287849268453703236456285190839310324909440367818641949945864775630289421113156833054920348491326246256711290835778225071959652157257904336023333575320719412125560874671369262311430918039402514155112969711964301128843034055716648636171823732650718202892350391173799542374040531257165371194336174412779587914855456178618227299242971807841500703677643217973254370516621945469347912935590785615103077830000055977231644836324296971123990422818879440620124994378383512970780700814641350567930348982905277973232004720084984683201101950670976722591154557003133271780432725437995374243480230508088456570745745310267472027007491366333948870234953997408438074550754952430196477977633648948751648113806973444510791760866465782753088824485527469916376735005428457779678707209101855299030699739630254214334980018242070497690337991221197959884193167232154319940198395489720264897386547132590478388741887460924087815849883537729569369251778389184107160665722299380145986944280491236326789058041023524478565795408299099267863997258970392364722569832071389013681099803921697448570343902757332271551223248064662225362563081276519248549104429622570267721231043489782810886863727844696910022880502309477656110960449045856024139140322000504102015379470288645936938075736495819079502937660810134686008375193810502865636734583492542101157201818348790213343970452199447815130771619866463957677269990410334009977360884750960806638437773513287082625395762660251425925105625640662947995296614087282463437895032108538361657948306468083968342796310595578322710765816117226076419818041254323202957432481665732945325206492759814636231574106782363257837905111220986276703776002878297012717201161726390773827173502573421524546499872684119579406793330747989428193598492742109117905846553776531077154523795169169319146066083213180239665324544843618936412625105630680387083839013962066414877270438644454347932674236532705371644573493525810766968572677452488624476133351205222874551016241321047002916565989118330250469485997723581436454491689229248274630096934619635336842931740653362859517026995213572923467395393393803392825699604507037413273951254554125370890422372372873732113410549915715276572267410438146720125080891218856251309079266246493142532180508047229019744768845591299716249034008169352638150244352486885125308343365281360783008468236850680113249706875420047577610056303784941459002297553047145303940305589714248006708576868144947122913916964942848517409037051879674349978999371870944210297739384212078021422830940678711472510413361277900220187914931038061837501700007303324638458672644562545156513830063242823458280641637596664787871145204529804278069618452449180809256122859401001481213841436222533324763619252084601739080131768863625267665297411202548482799127326691161508731162362854935863047014336660355452537722775954508385357548087560967644170192249988749948542697763197833624977234751688202102698359024006645408580644777031550688264664613127722398066645153160092961180570407807328229012310299186075840671932302927290946852739389647221562707950795484623794740685113637951722143350330009636889172609656528358476692074928654046975021162065208525054564264100051747424525262989242875888256417657689297129871306936527314991449655945075533546215531003407812227350956343852905909726486690547757480132564237098398506302456362507764529213812918526213353967313618643560210725361848658847672809983484639293481788396476762051366489921787554475423313299954328561692922786864906487561919126366622365735115436261718415777614980845092355097493472174382753794199473701416201728942867576799390021146986051313092930953051572262984756656317130390216734164472184418822727829109179050232252920788938555931172451044899649926652259277980441555269532374208806391754748505077225727818949661976044229697823647777338636889597819992451848526194008969871255438108270889068337055973652295664649878681046461895220377009647207990926560886597552367352133524130313067000631910742755702119069329086890113596319395939741762200418271965858342508902985191923359575511643946473163319734271832515185432513228856714618624890672467456785629215307552811408519553079325919482677338249191454161422510039092522690366313927532518260145570413182471488136797872881240987380204337350288747069196671701010735172593002536079909682195638673498859697964913454664809402843213538819658656794849422548730168645740132675723396399611349453677008158692056698005754666090876146571520807157508510212705072960977466159969554576299545018092179427708658445867991810056621562793449132103500380040479582740734491068697817210351895876230880923997513385356764896176498140434468425837788707822465462849038658159054075012271498615396687084324762573134561052483439246512446910365249006740782303353338738560212260552545315090505994581725782757786716711861429682284173826454761699382820915386148132493195761805207856241663326748279248034700847882346995167050794042756854997020441109084263230002119119081868793164399619313543688686709940990575896089576371222562412420405355324381426577395268970379971856330295421017064603130128340457021263542047643732085282283147352949507692434969770114268052935316846486116757180732716567598533917113957246006183776871930821849904731138923700839700989943063994324231811761838528227577035256658838543272065880602357000834179587613808903818871491438839182636038372025153497233828347566079309381384561286539372078809312780909779259049489998940303818742364472362500636467110474047536763087170404055371144183447789351825404023033878227485724816348734852523657803353183834399343020058944729656204725746363496237127770171510873000606101385808950583019312669124860671138489020465804893155584583288027298970960206626822026638887363654100092261531948883165282713597025721411451061970871105980964319288647016813816224534995800351332740077878216821736961142058798683582805143700324054095528312764010163297160175987174075378012115043374127473342738499508028943226424227828299465899547327455435767359590594697270232833812472559573909714370744647336582799127100940678125621248485824340184099109969626817870554272846263145262426370333452091498846366644387928794474786149358387636644169689236978443609390035713859525473045291173263042570753980854857353591298561637583800578744866668317567238303700901088824829497338621441486209061239497191314305130456692496351385222914380309479766161509243922595390193665340639930469041038642891264429663790336731466331172179384883759972363180486330970076899204623882755512424697724205734405741220882135142048613574497404822128286610914282921393322489933923926118614495492867037866652025440964164641305174820862496174065345885346938476737592553828176566016494805938881388656725880615232598124340174973671725045369342003058428268256121684941666434967975588890090993248343715584922905547644848569858799396098088595194550858266751829138628399104056936385592271435521944250111463631017585510386720774902975289933148055725564036749656989840502136910573881602598813145949347133666184147930304385089131108974635878222509010041766077124717131993071242700797344104270152520618887312468792058043004813660169459198807878826108537991556713453306992578980344792720847401287744618247248962286307864328538224100921854679132402955308283252514228658266873849266491763889810338828153122073219910377689686360546396527051905702468609629281283441257830946930506890164170156727955067316718445528653525805847142901816267524393005348209334338036132419777710154180406468487311617882715086034082461324591664353472271561523831783463573184854088488902569122389592001150568402944332220948774375199125349069017334581495081072893054442093456648439430120352590116268577574993088682426869941150677802345652428130629464411327769521848790439489762052509932677014154746067415504799467069567099681758446310930961488572172456947250350266206147316161741488666430773165551956553851889587554991985009427867304843494790220498945133779737828966844700902789595019572481729588742875644670516723483854305450153519981148112844517083586576892626083052707378434098864668634335710102579973171076718791566109710277198031720968099469382144735129548187409847193893872486214949319002041187666588092493512696955145366831656383165201808060788166959145926264234336762670227222761871956226245345267668169613386970416942906787078601800198592941757492620931152127352255125499182307057497062223452707603821271426809357332464905498278207693499611590451373028563920063297824720902133154253235069671055490543453104792089420327097836958209914049636272200007898348375029616696997572386604907321684792709200849802744743985681500378626255619383138659126826795428499079160346956678701949276171228579974664334800441217801492201778247653356302642027678545564110506985410898089279153924631893875137145851125234925372340943078190150747883254639927633508012895143339728526645079209569145340056240629552105703184020585794639494432753990658073305656562781011852743969703709007016025345264208100692391931635795255724446150333840610767831087497919768869442758418540277606348595983893392712971831773456148018217747305544303546830556765651739749735177366430534064610880626547453994106927436027368086643901050984655845511503418028534323205715921230401542591259407503823479932013315931683572860844195513079499064522929132392561153067695458748861488602264109368880618069327343784816563932737961005497609245266746216250356956580813304100285149861118566144304056123789393830488981148879070349533073828294437445579096867834182762415481525866783425014470847846806280938265256843070369646774973469514816153017963881649574608492283649122698728067303850605387970955265733977994630219182356383862143050298042160931772784217277491302278119203374479194444515317752274824441108650673396961592490146223029754585856498239000514706885445945792234736049325399567875185773948921523138496938069713359606605683871773582387661996865676682593673009747563580158262374864973676687083313102621008210899247799906695786878145349961203628293316656171509521959910710623812732060556034520051658102361496837056765942898828340783070164044174530187147988304472121936569441694488903849515975891166438844316283310697139677386491979705365618686948592501618716478234454519402056230721780875020745160320411582313595611781930824097203455118248946776631293668461569285011756368233466879716411773446894346391219807834278686211515668155399585057090747906282659560446463415105211707197521100996625169337259334639509475162932089239830561173329714718427535177793564870820014570026616736564985720084845780688768969171149002725995193376463311175286503578175792521098212791965033825352151748544983448098667202343155083460331881533369299180608293216066384477350213121027085147660193131499087814329271159305493458994218323699747704103494274193278935435023702048032085489489292226797950144200038380033380337010784475784343392316713717600960205741335549809511347195533016530525077233574721187800204886870300405464791217776291745155600907856272958081424245343699300245968947490260577386663007838124530891469670222772563205134379428038790487077891334143496130980452611878778258930447018099370047355293208072280011371271603432660796638161129871985763017189050992552580518123265965644288351771801821893576731537747678137340133487946153817118074865677682803711787859775799098213134844394275325287839754711796745300028769152188942326974741322117687229250549001791847995679071163741874003237545041892702233320742609157966079127380240647117510904412847782891756060394496642398359582129682807024118168736047781331471074102072710962404125057918851916177121391749049825475632655576903994159928046943216136665415420464534703524022905096184900122981210133478918922043452848360295828884899469187384285508516867551663575653358865144818387696931938782699017559668552786016052646145542067656648222729233716972842417612749256091898036148521644421320582804450850174993671174508782214409720618950669492353679684414211475877252638090722257133157473658000522992318795499275910689547450425165499515886504655410570617449407833188061380659330856669372060054106320406455014337771319443645118861329114755578592887988395025492408022161336292574677853443058499666481363903150795112278589403803333752021177232887294635193829488073778973526105852958972599028204637699312573850180030206889461777083260017117137032324245447432793163423891994368631368445769275124668463935768361293242918493053975905616116606283488211690525588331767823667209780072521099097961515107393937753632522469498593031521961347040804500321041676877388181990313401153700837254338122940094699788452938922269536959387261224211065280513736575585324920465816957712516769535457593181362287829655538460176560818226550737289513395626547641272576498658706790004175416672424258639487010276202149043138832220548537090790451427751982062684188490081720514961486609860917317067350306950684406764345716883333324963854941498207059869356621959787916368971218035134997394587828109620160359946264958889643675730876512770652216673039191203604088959806145992793400291970427126687731727290695946698863317374202614145320619730323136857670147242249749804925840491841329002834283586913859926254875492381130851267982980142545411141264089127135300678310957893634099549627436979553153915522640934394138411016945339827057621703925996692153647703982863620189346224814225462265008525841935704752043934158888411628891036585035214681425860814109315140572116083337584502716198938529159819247999453940498948352675374836754292799873747037007654893983688036082610848391532122698458471787760064728853822065669938406942120002682548210005180783950457301633193554075800697527735765900849120984083174334461429960128689147052354384909838666761973042372274366058421388080434546667635426369534726317909541853442826848834480666294365340477687723928859908893130503217601183666381261023729480950907693947037608079705173040172131641212305631219086818659458305080953204194497248740713501131279077236032156985105234110089162543595354584337472168885030549504474078405360927448973083337877496158640364953298490822577950264463819001221054185572050456547635317758228714568335247070090294556066111812352330034282996302686937163302841125516757980956899918564204060354950405653509541943639069436452552256146395412481741093397966555547949305894498540577466525054598831264301177527516950312592776407408835626924405998796315674059014751087883362927840858998620220296670445180783248804394988995310586671960742934422887170062419244947936617288997426635598018749361773419297335179446264666117649687306302648071406656651252241425336792499681357834458362451166139032308378460073143051629313245941270712339069377347339784336296370897385660814957847450654894019328390717369132720239492043181386210627454187232068306519056394587487248632149490884403239945191880204671771946190077383313199193861760273455368659463025161168891226987490886177590628362220924206464830105763734749536966877375130965408438397271407014033330593705140274397332426740729800028933430158602290603801268359571593682251807452735159229308502536378453905316792191585898768198247169789612445958796455719640198934673980216623133548085021717267295929742060776888067013226646728789958721299155892781373380449405201150020681964517871330590470480489121016032976883806077326479983649815363846573741385961472728338524201425702287162324448547446564584335954852941397215458286865493490037357128041940068269451218948953315577758311028762536464159389480287689915430460722218465486560867163787233445519665650765267553515178421455869975771547292995519603998380798737732671633767059969698590242515969872828522603202429391960645736982371786085411712538568049207137483887526023441675882170940087088943635573018673906114413250507089965921084565857672784982901152330963608828113146606406739219603663479039556335564222425505521542382895863793802429343037657871295477679875463619581864813697711695655683839989248728934913655404278582175159469833559422699684166125322785288876972396842732378517381260007920952157198810538825786900715469969556494370754980428091913367151521102628867279703370169376655306213697727321878069454073506290514943665638168345987258676089976424439613330748596974951034300007137973649865654137255937046819066110116643756679487750821710168294554211708331120999704191580002947154118182221382064780405738643447059090132463116206575194636238724070507312380201062568591945373316278417631309202218727589183284669578447632052364655226643205608824752615117966898395678762737039552909076664539278137983685126557744769277875148253296415110147478382055101216470814707142972655476447868157507726130738090844165673225310063406409949995380849931331193424353096638993959893599219056863819063931271287114693092834381131442444343675175456575331110486484514328117832518188495753182982899163073099138588998663996837582943551124601039325440606964292126658854128305676668664991517534562594016073327939266656915730515780843900009649713622787191833192520694799198734993044303079320355572639989630846054647005229075657612606841290666912680293414358950893769448523286961298052694630634366632058996054353767682629396608232197601641026995652317010924736554241621135031728402478785731328552470752168721331556885621478302565741036881146848380424471606007211904468289159050276419932712963943349351442874312571372550753699348611289854873780102185550083113656682223134801793901448147938173480233805238568690097903160572442666443356016043472817818955496429205112037379249320974176912042221243256832936241753992949985992193298556560246825482708533082528814215463806634964198691418285371790656835969917027946060815139176290247475174528756793390210082790460345132388067350939290162270735511139643983088892767848028718151739569049220264714404931778713575964093378696206343504256270354285908413544695800519740041125213185460244456330450237135963754571822538126057014368056391307272119620688035463353518898049105397176572243482959500502817662157482375819236180131710477235439227273561013481855377498532896263828621845004406824348968937162216681749384516969026005186643791412024313967153303514950649885079700010431803554414979573334641043787260404361028385693086275152285445528044172405263921272370652232062632907409549605434309123970356046236425674943144770185356181428657416695675192832705351549159457878843041215901122790005888269799947807938937592284708642556794420977385086982394964420658625352387103146788911785267722442483300504823836618571962341183370674885456733618327663937274831301309122207469047484322322894321431721368836098176887707552103988532707172697808030969437026088821828718905771978787569413302328887180435244326900339746020967713422460293648886813750038401606369071456982743571671579529002631645401951167028039088514338529367940059476019286420561061890961626695245967744233770921950083512752289561929775366454859025254455446620089804571555403799755111542682985004466296629196190202469544901122123102974626133780049397884557246041685513562908642984087600153398076904119856472130628677653517732462865211963778984368189341002676395376894941572724233097031315425642478180591615736449748673045732083504673766614964582251453475771320733941960778643773547178019571068584769940657569486741579780931426002665113887649794785875371313658350054982445388040348216677940808805480711446125773895921267533494546334927017693979059755803629563073034403019639733783222320450234788447876287638281730669337337405059081334232841044750392443421459393008179068486604027435883683457149978568493525122550985518878724374288140121948858450905224826598262464222177445221990186553676879942506268484193774105528348370433812070321697685976716642471617649041271333202527560163111449836020000592182036320734015741122150574821888186625010006231993422832886091760308385027570082505279373436516066251674590118959993657066840102281124228884353638325829524406350446536667095676944929179489348906814472594947649838738327058503535473930360481741222742483711540792134858665968599749935155219965522036335038046974738110114555057794602863464871343325247282903400160168574770759842481174784616214223415706392982896814964409360259268607135301370575866268816269539245559675507365745659015958995733528719498285298777093233248797462961911030525348473724004809751416345883194981614701555227360301050178780457442550991672153749362996666626327186312324411670142458192313197592017608295039696377084111547608364903408078268865115455821605233927928900273474310417450506124531107586162235837472499484495368313556001499208249262932386838835910027710855549475910464291400756118338833429503124799825631239825838188536196758247617108174329304724982942665463939139548400950407786049547474555495798508976327194630853860878553943090401481975286291347725396456948410248622269784502495196512076173580784351004539019356656942134394862148041344966681953704279660699549805694079907479388754357375084276802637597124930308406119100089858337717637218223817919778219624415807731223281045832362456377729605506394409156583035323346585168039537421668802615939326213006048131920347414205155425540981153693256121427314630540278634182381242690631653173317056862367704885714657387652478270991105224985620055097639069359287778009840029091992645883323534158715811301798442700961449945407365696533465461418134228540717135214109324539721875419200578801247397147500382047607485024209359514411709211575545014115158698075269846427666078050010679532239689261842814923768658659443714299439147141115292521908050031834663850303819056278121323277002348406541094061286269829755983915365767351935430897392747858278496735534899247363253195310435521046704423598459167500226981991871050625270528865506090352806406864379654445713906539931443350709682337646046336275764893777074422508825198137970637330786844619459993182135570168471208675822120770667967718107149571787890240564509262368416001582610222072321125186539626010739338943320412254680267594820064942492800293458165867325541792808791774699300884243708315605714801990240137674497188699238095164841197507010267215206232496806421295397672405970523957141325835568000102917495564193083534809430227425353039849046577183439497417490760913837924672756453366750550891237058285970432196848724939958613459240334575804643330231361157976844049168162969890064332847275661487908341861574205548493315636360426635565298707244293829949596854585420199600757285547019081237940210263224079774061076231670722525024654306390339404183050468249016877449462568215515735301770284213568984018452040051856470820776567080316835763452583711890946206860897993132632145735400364910278081891147957419590590309214942034360268145073480586315420163970830349392149248485284193347633819533061562340277144201802906848737465921604083115906011405087692390338609787912504289439709279706708473291556284227129576939766635618350782675928057548975611420907233365447287351762971737159276300012980142318936732859482196404699517159956465930141188056829007456964928529028180132883258204769453649466435077327315839487144014213324755524536050777908969909547960877197521155988857055526124841775262462966956753366343358153140177829297781537813033637266127207083450287897547895578090508172795253601640218227409166439890158967269088987141904047972977464295251473991401080277712172595530196394781791586155229680781287874255080396378686016071652699457057504843991680339226499732459410900367465065620805357762253736351248985588197104318474238384090211484861625167267348543900250144968204579354963252846282547992824875034982998009085695277948573599683046733515838523137864835711097499621329392651916455022068691855206169881235772416878280556988560571721458635119653404771687179116356772918703386750411800191976762773692130086407150801426873596300489278649972025098066973895029336298407306332401039279687004024531358581915238366451845327037041009562992259580119064765859697136081847533076920846629429722188124823659625292590739092690996492280588015336007336681190072958663289072440957765244973229637905830248175741921049129605114480064824201953962225631056836407447958008940227371755601590616342336182564928131857246651353674727827140968091619555529696309753804254826167126960387841331673780582564522433768494837378216454278861936996394642369769535125563891879134110943981399123140346871607675526329258491343763282767798404214781473718069668144157945747205861259402568609856182468541879408105271513553109422553840666025457685033799166353214851469223812228444180088039675668689062637473563946373987325913163770226474276153646746941369241611745794130778669979269970714820538355002003789337631178839010147386612146649114625928441475207085594626424372585851154287427027330901310904705330113914591825386402770475405975612146114524901673434448723889382522339693395118774837607838742558039268138348439626140760452194697851173524477207963208112835260406381775159574769226487041891315008507036533546850551761763329529853129985625676019613450157314205463062421838911695806524580473155384722978465020164825378491908617411408979150891450482762699267105076858791578184821113263933212001183406169415330625674044210854650213955343141464472701900072945799850793060938685665660962362074407681701982933481115597933911691770148063855274635357192819026396356492804449284738148224851687781774276544816411312140816541462537177774729126007315524357958417606684486504675901914398830100736000278372380628048114309575291967500869134404433915621977133777024819053354588036215069289026241436701467258558652985729098130343793218240079896194208889214232814427070895976836551112148815876213487600904643005898548026595830714189575848025821992211708228044273469085693823293790495862906435253418676594516000582479549288873207955952417378058898444978245364806386008293232925262650521606625500078163010206593791082649552723168078278653159414686078691547339973861122575491575075755969010457184242623247834683289784485569959421383363236543419503656637611222498318441239326744290648732836563193246831385897766415669523614131224730919910692157264093326506413546625593118026170099454766804841085331757616036432198261926996633387499437864372134554288994119358217927910463019591970260350528530378244236124264969501150361955314669417838338508565412231999304377891961650980076394085375412313335614399692171596395190498352807739278729502405288018016954979352836098375268318586158047509404094957556433634654018145850907589723964506984427578427926363851621804490748740267606778940403029490593822932092661202174580405022165830645737034896169216238686040294899130479860491632210476926153222460994021280055602714414842743954419909337623360205420971716135072540255580887788161380006641819883861468820433966180918290582380935969520335278250576965681909763035759477444652010397241745780445324865976218395575358263687143134822130618853565420327889972676686882359909737835069370544904030006211770931318185387861256435845957980340493461622230649784914313347224457653979012838624437518517062625384001864664041654365344237835790100954376762449894931265821147513802522759160580547060169820980111472306718377548086835194367476909389971159917635506188157827943399398548260252662049559728058446491191534985757969597776103289433588011934327658787123634311188479201343822059954481384148784551888492878879750279901517125888058120679669530119820764869170037804050204831795052374820600666442700881018556718601737238681588255878014273512939353038528203030284181850267152369709059264972535299667531760431330389054968805926180566095773834860956327496107578677092470100657007674128691217926659139733669552206696975426200802468102115112592451769417800048498289087902790391471927065086539837512343108729717747006257936050933597279456869625776785402698972563480866485453912342405443500506009189632495889679456402245645947812334437913669728971067381018395943040404740275611480327985372025037905816482010407972197649165194687997507898272502045250502065397802755743894624035433225227999490889562083189671970951369989387937208544450191213503604775808859336535760750460722128320139328107887722052562717131865297193035059556258180862281678459606711020979190004918405958423662104270002600162674711059643472796662013496475891015971633136035538320206269580247875257854849310615527731003867618035023482752695720707663839655664259349704129770320515442529653609044335616862226672905232992375911368417763031272979192247479719487705695771045100549183327154554902593811468510022303064483079741009920579437546263652208616227874685172979124892292196048897602149252777703784440649942581816235989134965999108656015351267207534530030986700619801309682138673555820384158999469558934900335430581763949313022667566936508585337479070445096388504916060087151316155164293655894800482069634684526199167195567903461150692876680865677186900374519145301702347787229766859741776601358944706725478656917124160399863284529257734303644311556049563128470405025416451014652169181035391371740694956224855619266566326728235340678936606539105944752169014058908145032361042295886092499921822395829105733012031019029719479365004484070313159491576082602651776569577509418718481799445680509619930321739219547183870891014220980135315595488382787365055658015666618800259336457281534804766050177863056607068093728946250469660930883779690799257524623741301825698056439028393022575521048146794532847838391833543750728601199468754252555841014323284038106643898880540686690492243940850733939982498058648945174406016622121141450387225394737439678299873835006194513560243198242150243187226109319843353076623850759659475068570878383130478804542956160093870069211937697917919482925706057733819777505167222645377616952818368750938517893141012770025429659383451031800877768320441295197978725004190166136256236008712270052534482683651462844542715982392797749442860155051974134446591895675852214167396979478693657358821576275515306166816997690485576767122422887569695367328485915865620230702699442232118846681049867883374972069729629308504005143102965009334443160822997210216691375399083872985496820862156009095130297014638233808862254232770475470969201037184596260308842137801858463791187656005628198346586894679573377950159325695876049583094655998108864965535598082688285467644357461172955030756645818262811183337645409347605140596978642330343964803974712127393697448518829142787410918057237798754393773985295301775903012126341834904520310300689667762489307951430659043602921665741271304168198701461640866374407789205740950496116996333836505470080517332742299227970435992505695410387960387675988114969870002274841782910811964834042409697033419077963309171557701155573759754980369471048458204756067677141823961360310061193920985855172633656791444573523738331034919328233797875540274805196958977565146513510415604218432593196956522987309155819290178805066947049184066484317760937042818019029371686934200485263781861979453805867156144038138579943359302615901715008956698975172513951669854248246029585221730963865904195999814482528763915568476896889148842972550217120901966514791518529072688886717817295347638108904718323947531291847674399268766421743387694390889202536088068311791731443060462133804299394312824258057472662057626103943080403331546376297445333670799769591177056671249935196731809651485962110334524683980154351578418938000698541659063917294179019196734507511070227489977819265160399275728910527353621276400806479716878316294522081326527012177078992827360334626527805549041016853737158205766148958003736024229042727529396729249095620979745060211748733172058459825075191432232267257285589481338689856975203273670780182212663486815533810487571114968605938637662547055037746668097081923794217962180216417439171459326338533760806381212270971509084435190794680901827760984545234175492434732693174111239494707249784030534300852865834901095350256867527209715447388361654137768919552835324066891601974870661220588611494930309891009795532181612114820096408460773148396622050841141344843493708984087558960304459349272332901738456762652780327083527901284622159137444253794329111040774369848530215402376635679506253097174695623192351669416578229440806849040721180894800676611050261806793228874950463078415224428296496638831682284545460930152812108763123845068682360004075331272357653463842959260237942773329948805294112826834008420141747629052180957686653448890234710721494979088307771936017924165529721209265290464277887776766077675623978615030568978788810282683084954373917079359671399881486689727429037754286043434455203246891581389044501662027891336092962707885528653616332847960342590391042716143912823291058225491522239292012340453081427625386282938697545821307532038358937776896167143717995438878953024265925534746051653619459351572439216234122876787679509650162214859370665920809866574525085673439991712766862118188771906982450915217691462903002146551234210152991214700144668459921964934909234367990778137335694731719612174918837343998324088396531062613661593770530220345214391526995699582577960452148500008823820490674936619545737827213022533395523511133158551083725915716815241673066235647485264541913668813789079641250331076997013564769298162866996930511248731572146485030198401649642376497915666392886519461283881972843316361832805571255348754011855944068278400431287751134930459931516818095652027870948131251797092316088111584881684303386196011456092332273771686527931283247969084470080309754729240764021792122162959968526066182398887614077333542812697379500984547018742713200154801684696978904561528697042402113700084835264897527535077952602870778412301039049085664435087241753628694823742289129473437354750186688214893651411098254370722399332098577450895737154034303545319184486869278042589599945040528886599089905220877462834268181614575862187629997484764327693047884557865260930032133210089575596235101863171643867564918066456066098113541801650872152657858952704603105610844547868474212230924570294418240577092051022369729578156768573702892978773321345798826256102506558193800019615285239945240891987494480644452656177479007592152173696533806715534454438843867636865644001181094862881406263391410341011272727990283428774194975662750028099867211938298527250035951645057302770764969117580184840714693723213014771591380916569475258776334059109379426601226375882820975077537577985841397431284996853702785719499816080503649995253804696801711012314926957445088692239533236084073638296650087966264446160525357329874874217174239800325517171156165960442860176069976062656143062584313771198645790735732551000854529557171754711491124765597970104278949450586512929057217258837889516638626409567385661388986368479361599548675464191579900360013362058446454774774148196716903831156027596716656392573935472180865135997807707150077152064346905506225094877972061710257660848337823033943921972994266606346984376132845697801157817844444503174906427645193627024481053421237065685131000972844316373968336756143385936030702703778820690239995234114101925972407874489081984706263993767725013641325237307174521469331780082836169091140571701263237692188442056261797341864119619661921665186872008722504184379301872685977720360202248466495766527102154946124312939345954130195412457695274788201415955100406470179366417015082305794518156335595862401456926400692546657844350629911318559518531632272775688789946219656645357258318071712178591493532371564649581314386027344241227697171101916832193951110879705572473033467493929131325796260409570459201090330975766374433751677874854379981860770067577016501113945809708769876609384999429997057228005009251956643235751916655978831357571435848050810162598451477012795599034638975095182389455124598851211075941571627633677051988166853007481966604831869473161851411295635337479701110605578357460272170051675860124936174407586979109926389781591794082935654053258921622874931446052583996318449447442940524033686199581683237712541904839156221717557630455771511496253995141930074633417544002253086274619650180764159031968129514155788777465755975683848164476927631444267149044717127466555500826410741505348084274066441969112056859852875919323690704129969401731488967652324768768292631347109872906061036533352651064526824986492957663244199601402678654249488529406370443841059813847863526126114615068522704183392901972869936751010116387261688597190620007960608043808838010996067571142753461335324166125693545438725787917634404100147003352295063862511720265061934362537205219470369728422805378310015273208791435029317194506923283901995081551829217438624294597663248094403554233648456485849987959250497119046387324317634343532464878727446543316745556066003908248588903731671523294911250205513213210556608170259835376984007288365313556634519138899307036924767940784198692059780025990987349209822743845965019895706449098876090468412530614166408517944918647528547396443738946174921343781903415967443459802396200912177668260459437689647800266208281981296375131884019509256829319976254990666733052430335006077827053807080438336458200790577605446095931595111022271705720713715160987892827623907394093935738202418749853829207898771730452360941628218910702297086501185089478151025858564308972120726660137022569449193895801282123400097714499384720717659282245266663203915954014363861832765305107674750896787474432402607569390853836389274244351426551828940152128325781319103876820892687663996752747973794029080941683931435204905912050162376548880276129986930101397063203148823827080943566936999307494828883422270968480961596866239364772732357754418503169809139562897720054733604745264657346953900738700457167823588775185820663348913859562300200158764908278750678551050625594100898336457425275530707454718538150320892117945208356394381824884591559570996489556100929578678794357884735795542638601024730519465343068504955506242669596801085904396514455251227616740088605527203893627434866977196013571637932175466048076614688377895831281677754267046723276745643060435525296841744235930893598639981391963815604412185640535538411459013705746126458718903577183698971809448691597012985967873148152029839048418420231768778736889992929949869326653280943508471201303372802407910839123906502341178679779711057155271511440524432936144996879637504829328964863962728222304981506683097315629853739409180591815182480174778254710160599568947124677862755208849191498897342848796867056258107441474916239173259900646253390706042236379613194666578920420086083219676299774653240046665122866230487338368934534230020246117874200704570100900767943801166411274108720580142749975253824105425942793790203126017710145401717959773433406289269091869143099849968476815294792793462636532485732870946519570693752660547522699189689533967727211537668521311698579625643306644891198141188912374850531515841029377541499729900121166097974146518818970349424569836932759711740332041870722836006664454132806325483782051613837236024214002229460313390151317999510114006164046045867338493685977136673105309028232202804312376886645194820245326574785187312733829509353768244137835781269880068012697887013576237867457854881130292001087067513374829516748819175109376614861999199058284935035725886622069796113701784316118037369805010017480206433524107842584886007412192961419262665363866790531565572540018881125520926207459681781988818938284560267068301800833775089352179733332208586184191842189093488191603174329871180546367026427464238687812976349385842369588260233404683396219006012251319598913323856937207552761670232450546720582565718371351167306474834007675431619288374353652358068709660904802424468724388553716774707258139914881480052115455279004928723380348944219722759880579864011665264183834059544947730385379115533368255255829770384999410037967468629048224686719577594763088336092229878383364227553144133284475137402660475858302807777802092626006652282481868502673117176635255023469719951682242365517985690620094628340644275101374138461533489315673134190263870680199278663164644312334525337320674828356835135313272025136762020233468095820517206940766925852331686876276537869084708251282340340038778594857758085905240028614766001389984062787094820952437194040758066758945017805931801239524375038002247254407973650308387674510496763688860563218731440212338491084232065842693546822462683928349523810036920659915485881702684433807650569792443783445871960347169074083022374853928072129238388248471452981571146063257797012813343537884210938268680899581420644044178208142798059374690425262463840415620648154802480647478310947960913401017207993909146542353950459705240702201085008131721296471764963767833538703512928881629336786974681054876304224522672653575479229422222364224673922058464511936641230364559176261093794775448311836055208972706008163710626007908448125339912723390884745531141302774513299576790767392218634701662208321315752696700974354760525969858899304342100562051138271425604565687021703424868358277573171747718423869470827354678977826884344894722752595456154461474481539125713932440001581977413996099147604523119596213155106502196359500084248446914296464410633362045810035732163278730547417794356904484800721247206380953290663540994064035267145810886432600883192509797562247799729927961864513082765601641890953804757080645307701320508722483538922573135410842465010387509595202907724976710871457886641488418617183256767862392003421397687473733719478559266707589512333078628282622848273861040283717928255221406419644043860405318275442274526587003026904848376790554483688943477199056096605355056171876312417566282285253367363562325916136521571145543392282602689235488972525586395060204067257702668711181406730723781336969523318056710879724794721451701657813257819814964634846755389081815788529847534868907838048968250834392071889424704036772958677613269943662366481093250261036950362349606754827488755840860314645191664396275245918787318056431592794878469648408565653070867507439281773015338708215103940486448368340317924825721674041804581031759656059213778946389187812701076700472716192178640199566461933761159481565920112835966810495169480849289553217780937038671659037103027602002399752930416181146222369633404315490583903975989990102973803856003569460644763529320715150985932627787185410950671355294835648349380068456558390329362666382106070127151416197040551680160952530542650827075919218513777352230663444344778543632137332464321450018739354324119110903263522249668616299373901893962247167796316980208270442171863219602595131336179763926122157169127384943142971440895319230399105684087441132816219950498027959279645532434511421985982819582565458030546517932881488872675587890959123689131410590307500485255674044954442483612519212588616668558498633435492930438496940266829934849643621942864051222389156976570069539098376401334379093735499240468937317590319268594686651378311446374059372150829338581062690172871250087794927190149311353761869318615695532970280658063649771745016638649594617803771507467769619628474600010172714228344680194649405807883950508639253281867621899304662282373811806298524765722323098765052694782270313910898445464616596314666824656284763897154548393507910111248811518476112749988293085365902934901717964367283399922973072539781626205887217127082416842946467237864264097653636395651674338731950463657329231913140244186468905623120612126495243668058799018664209477157214231890881911262687596822111478206787012302139006087498902428706779854194795448796924778990516757369395928297391038276677540823668999117882959910499565995891344619317814308870494432830461884790035533990156582405936118276702341407967839996239541051443104223430537039958173431649864203149322329454176953697773844940365652902286814173203799295826143877003885106597280521238392101791897041458230922265330987249045305830715501070210689142893107469868321047938990283634304400144357048572910648653953045758600069814118451012262401469407736439844657438602853355967555324698302736486671630074672363137018031373296614272660030720050647183091923566621480653690205251497229048377517551092348932932347328426362646465709208242815196406164886776145141279350138924207871320636623607085360978761606048726336273065142953777510349012128005996080437325709989272138329359242340924088367450108005564231043905888927931825405297507703479003338059502550259988182126426117750562634231718652231984698208320266782775135745475234247984319092485728601827684423162529802405852488688731730046825369436965816382838570188732333050940642806015128734461805295616228380566039760962841087256949657319885631302648220540080875102264263400568898319258010738701549236878154528972692282038121145197298670687426253321516717937187804388397882847265678514355385537942025894284524646770542751416789245518041141928463412934939741444532255476715750415174528539557638974766195268954967976150768461907852767974835641344110998243937037624206164837417671739823406593036654531956223594795654459650411362201026277723175554571690158358997287897770516222451075523858828024220295046867147958596483655416242100147811617582679972402248090740809252723685955866405388918327027785621214642856153783947727102261165199062205308330444821698551990540307700284952998453479381118929418585485789842917676180151029428560584363856782022734491314058615408671758854122899345143323988086023004559913682558862129818619454603809624421757710405385522689374058575795288865105843869497902288361848282301601269730311975368947262392536904910892133635166362079517680872173837084593915666490533977891741471024198294070631509713673970863781212332373138912800354674320588656064116623943982310277504470798881642243202692216303546313552473624935716157040056638169213092614356382450403894679078377686855877789657966927267503724618242889059358855284175371369002877822063071609767641804105188035665765933769372546966165027607181331333735286576277194297082943387310292835865665601529825468128567203642073103478753436685442083136544246812738740797868875270185418191610277651958368722462387925782961752072749085715508674823584737130055567060780989041125977705634053865638229643248876618992247471373937761792599867015230624137419350667960604366587320266908875656604496345795182194828750486329598792371237846115163496488990399853320920600974494380731805113683764127994154080764754373279179568047529012268385146398886526828696910017568731850772472606002234568630924100376880427340530500985720902848890063434244187307863498332658849879220852579055659990486445747796865690190700465314598927628952200460550390256025437393204699399103655034957144287847869861074970940550529723767402882527160693914285030163785240442407399536199144836092305895007671050354861680631344856187999294317372833516588399440075377437660494173090055776030148900287313397789650117021463651390905610212224940608046399138035361387370181780966411523559405295645646036727316349784790289502065254191422549329149848329210768648167091625842854921452092732426530675790415458444110151843993767556094302794376465069627148445071433616491094100471523137305620151049298228660132131030394272949204079990537749091080705401134479995268117362519465041702935531116079841942001678573269031577611413826620855197691980830911485493496647966232238272501373941291371226418295885040541878959943931945800825395628500476371274713364514821996722685664440321049147428708499890926431983528560221830102461236500671915496180309864950450449129309969851497984258372669613991307612935481757072075589563915045694770507361518549441205599416157764802719421530508909905268341528677738317893601420162459125657208122282889783513744034253374140535923257295438214703840819580323689461267250056659092544978321797822923304765279539463908316716064178553188427923210337864590354185449534967235102967757375648914968876911024900186865874227149552347402716117589432786165507291931430752834038927156875877882259334942000701863445150063700139497029210745223386053688851616601146411645218729667634073741880328291351093956609816654301306782113322198209876219001369439799746540448670204391372925450757588157849497356165506336531905189600266600328585951467879494052891786311811797261237571367743207200738443958845660003295591974003103522377929622404062008901264560928741768351949888246551880319845451167038536905920905644217931322356016044739355873938099129484513388689557057846216174211920152934613397078474966990067192828991014783132153312351925932765469789377458963162405487549072906998080264809164357485234998689237083809302588331738046773820438186256384757780948545391457595939500869269070130516739977178343020756364362081060055617110258478537551739129649419774768571834259162350571829023438525402244749128480257580579039075703501999341369982512655124347130054579552983129439640075585236047597390145508346631713235406722278833380259712407460864841489814222087229657822982143355475641395340433926083004968900254130683736732811863730339704432532398720981133386153146463075356142251976308113695902027867087686863280272855545229275858373150677818673080582346491736898480311990210735779038102797045884543373144975699297341835497144509981759453152706791631761420464340305459502111793846258486193168837419625208245328354689375067082214719318907486759945143851489957751320051127623147575675463244869895939631681455466466478154635759932176849455814520797069459667527230608774775523166307310035812319553516038164897029369157722298790380728446501956682212688440608925378937432580100492179776423152251325872730584330595602306529230372746144352721269784302200331450961941101667718082474443111020334192214010065846647690735711680867389354823195670189090969845157330877075853452944293207828439950403271321920942251320801002595639859960036420510068333706806392126756624329041827562763427448114735653255848156237270553796610527525249591403935128918776363150515637204019596299937701641124040806448995798698590496446325137900557244483665895048263402889612876682347236887024455514973016994347545766747680173616750384193137212131591147300885064166231296334446572398851839507783923169525483387883210309804661426758160005252227133687727268406302822192974885830312859366366691074295221801803674121386119704956707497749244297827870952322070200918346216264133442262994853122494839982196853000710124776950599183642312823285316204554467827404196095489861874642114955680450396820657842325056993654535490819251332181603498653365370836537087074950922411435247759658010411701131257978211127607229165971172823566596147404316192274298554165300895215640581608623693802270556308075344462867330105903065065815339080685298192903837413439745751436389625168480696979512898692278802464860406176306238408861182125259841412821009340004574453513177744310864314169495969792529268078062877388546065122268329803953409778185796709941874498684917718542212313412028136702796964964022294393346526066420570668308299628940217219831832309000547792872582569100686161810735838295805587845729842989894825746454447418428187307242268552194873076547414843371732346223083147520812776335688142755984553325969230845082699720105353203328051375585470215007327246711749769211746833626360512193060991912356221818907407044921335038749340921245861847895403161192746126374794404446381745465368332072683418486683305569025817647037118223258860672438154733173470574499384140885694473254821740722008128555746652061570460828458702709270255415360677647855841204040991555838550725427050678037752322386277030904102061865924212573939092837334114345079444788860646922229903469218267505568097890811767768236700564346260504926707756006674169606675630057316765118640856716972863702668616385513303677939683145799564741396907045979939332830746444122634096142484740349351493197477395215629832918642789108224536505609852787338289340373229591445408723726043202565594804966850977453415528981752379559640790932999060195563783374254035470648024593978381757058763133363283091051118430195206190131206414520163745985240637230174571555418562718047908326165789913528454169764481094110636584898745971682733463013086015631782403211833835336819114834907870837880583618146616180990868966256162608455542765266562666457819376283689143898079496590934983630726397899537829234899904999036482474705017382740917176132304852838752149000601298299437576499767254769037424876175114490803249481322733239076244459933586960384373398220601801420498095332374442522711440765104988688397951079944552193445344308911359179673172064922373983920131984240629743398987097364460068343723936244623280273251017863199037755653741107567372778178979054576576697762002865815148773679534466444770768349190778204922441905034447852134667194483312362024879974714371871926609214358490719615221344943253700073763539226941241510393916208894648186037458101007883050010498380059905183772043976801447880292591360075149536005248753666328360972228689869798234250988783391072351185229353547962274116235590819699746323594756015566334485433567499317784716090877696605348474580610182342354672031781861654687348482424293248135417895592879119853141767481798678418568149448520691563314835503902466782461285785404176144249338542291851213239662854066495803488246659352494142027897311310835734276214135047347028348267505588286525082960551870491700588248996669034221163957151434101630816561158279746201739818559116465806813917676303017626953963627539999261710923216818442035417751254718386250070318073995724997116474179648022716511278160372523878559384297020908405278524603047463824551963110957708534338825057003440983180248658243605974261153708273738246933833197618237228934227098113943257187653836221671201159719431953568987628254220279003309519602181706913938147360174155283086353811044413795129271708058482498679795796536710025890856570498744072680003743775555932195535431327002064073323740341158626223409713116633187748865385252096127735510382810800448354389238853928400230117442643582268260414925500749452060943944618600753297257774582464356647375207493394407679794489943026804441827573358995562706738798209630938081639941179478501431393827114462143982828046413440406694085181523761794491390305092962481814718623641124986355964092802141512918326264502032013717309096473839471073546502000208751874936779369751894589353358700514624162061343467560409850088103177034744336637866480308728342645358030869010789860139274972334739045907609561186765084530436139618762617029762732542065509206322534338009974889224226311085447862176921229072522569986237764105089954932683603628491688999138887741127918259613662676806553280915803799100436520613128435893046200377320928502373226977415540669018052888373226639836428433987141610376162801104078956086759970124295630741422815396168581140249748213829040882725075202170651059006525876256235641824517617132230918845996572937962137393648519658708022244255408810394503522195503744601701231633158083257424825579842794719143024809756387081410958300190209104722011308385726369680861378366051632203086220227529124717048925180399025572780899134284206251431962833280836772745372281688682926290364597788498159737004518079817749627504339279966857179363397736816623902931189475849439787056333331569306720246387946795444269718868222516363274605137556902635532013858476231491535387971172342308738976776145895055171649972245351178872582917423710759129594840252901198814438292601964672318811885568157598127163423110516748078613333942331914062139907818073394042023114759163832611803560611526546588675846150821197061955171008756449102617434400985574718036111212555704328388460888634032489166452443603813251242724160382278354024226022291462155522410642467387155860149865764527982412289116046675579869421981208659314861387809940817854662211910116013221171895384337356612474060217737856257844892653348337734913262250898391053437169439772250012034163942706945994783971867886155544686769134861257630732861801661369603975701487975541117530371251277608145216144370717725046541155993805831529128057543308083919838323258098323611551561303440065354888559846418834723567156679976454079710983042359907076008485588939669761577856025605383873520290511959080334047897538759333284140454028232531632283884731913204594064250090690603192034399137343771536167482676840088334027043957426055584894317561066880853193055700541104080006320313781234022074297592049721717073919221897307358675870663311008586313498000642375492964690855622054911760994180120474907751475675324767259459163076267245045488502300632415575637861682979355713115756638676465044272417150042582011123833126136803758885262569057824565095514703267706172167811228175162094709223318553331450652548731646324498498959386220432965983080726677478069125246787444644937689984047736432042118333805506901890919025891797392998556214666626680979976021326778092040158055223931204362039790287249694090405407023784721008605866337488979809351156105575216106269260497833708830221611280350944007932686825746527759005098775681423933820035791328002324059187856115902315086184373256484539946185321899221250346141692500008649639695433570861454784740309126885687014561084114280094756416573305516861299891041676807505144519707125570527057004989107794742758601964750968864927098683649580959611238639452981186654818725871737871195675706551978601197479307966276144910098503952830178181872602139718125512779206575415343258127852416318102195233665616770423872769378619151107252353775104232618000540167254007696597370195862129741199114701462728084020279824839493182112021619813059942968040787305728104797582477208105988884265618288297563181815721455360400381095034049539930355220698744301014050627631824793051062324236880043406968104603979759603464062785376077365865531238110728484775978891328049567377387087770330990244360987453319053089716299179613946283716939699179438850985970845839498785818326240237832374093475259893984408648002691334846061145519923252250521267979838677419153899115424062428766036946754178326811149328049346467437012195957150779454098623432204398409724995195712706388874317554667797042602827066640609092201529856667051155522593323972625789609730025749799978717164857786679927699231526777046965687511506214372974280937487446871916595492896341207930745498113976973858228573725667599879713936505250595011826771922220105250218534592534555195598277708342991836009716185280041153548285391049360419347898044029027524612021842330220250706310751826481173087060158102938013307403111504034450635180129163020875430171834628318029055578546620283587752801877214517874886767867459018934555478981462196912672329224702276730655261256703226978375745835780337684212253133543157499465637311216668453730299232576256364984323904558492552448982368479647654420436256143671956175391232230155361868336992380009213457409539714490610668159023519170859293798801517145038600540275869950007129310814630726744205439275390848873237952187012771150460234222657121063849572369568627700163114134200943608427573346966161973582193896322331488340097527321149870455109512458985692803231477368095255043863642334110873859268959858562693030405066985528182454557712231915341122571962900182893870977501833484671231008471879451630353752469601443709180825962086391156586278080536229313508747386776128992045372141493234346874703064795145953720318687440800282554326689951774138607112993020029438571206348483887891360192708081974146751064681713910845813910188283912403147492892249561249709941429748090222099308871292585430527665010922280612012627652767501281124667346921208520497107305306548965440017963042950662596536044120034655476898222712607784942398517796702164385717659709079575786595724114681419552943309436391242001149296278558973655381892699778237839467972699840420171174123679482920325920290684072614670160352922763160993084366930766341262067506010718794453786187469931803692913567052264224751340603352875934887091663729438213578806465602866562297750295283923500414044924602532230770732926483689236587464045010872538037480330145511415785803525810086718978057194393655134950979571158193186276742160370517984417656264003745424252047053552108746906100263962087522985377329037434534965080110623359442316026494081234141592364060850421438460326881824614305036135148147623000391475241612007714087352705725356427428724458093018510806694963670875950096606064320769070928948083821363792205780640188962454340684149199228152283960523462642236671880533062397998481588819777138071567828908161074439847370386884184360012133187978554983827146159832510495317876479238339699965760148615963943505879220023417638149992351669562666321715373056025438368739281348088381296328718916786829979246894176842192018846125310289685761825452104666976310994874141496453866655236447317310004592941590225355334721437675429561017089228931988586149445596275089235315639771672135265809440811682475909537926383087055364192628480345531459056098573401691564296011472247469146033983824122768585775264018635936060786814947386512893131135165634652973128158219209716924251456872892487213655707480074192768334496099587023249868878301183267247619925280066191669671336552921410593336709873789811831939970273417359996555179924089263408974917634023746012507909220531996193495463591199667663421464726312405249304602253111865432083651596424633461684309344558847776200081904870104562646907137035894766683349265158537648860593326963544118105700773685196996146615848056822730741950044780403685675848312949628210132007826780099069555570461635418113131005799555929055717488011973737115314943882095140434757723533921055002597995262671668216355714920013855644526307873582646652079798231888959451832679829308359518748633589590811850976275412093097168494677373161872944744951532510961532802535460390935543918835221336145202352197584739049464752450199139709745327010062996024235609014568684098082532847372463821347319738281462294801761130322738425799514599012064601403505530539977690836692516084802610789800805299856344818253496835697314248582072976941938987225897189354951142810329329542803896262931656712625693243365077554731349256203998481785543162746116867834020688593901052316001003392897966630678768432030560939813686686425056896295875329657613644968188075759874885880864352510371821750192581375793899986217222917594765260161087641485799544255597469593682305323189999314485329318404626475238245612964391474405772669972507779282138769955741702797314547865998220416289882051265923474628930997812744148909584523160968123708439161936216079698314549132043528901070840708502523327196380512621728639951078555105188885391861565878466723014959384892921812511422887862837848184609963838525581820018771805834829607886273825739509137993373403603034318088373208418884817939493446909606526327988670822551550081765274848511721541307608553925874292203709217858071686369401528817445681194068867193082368822964524614536760903082600840451622516598923406101380932024253513737218781498541986819878972557445619910903650615063935685196945800419678973153092215291052820512011956825689655390151160476865463459737422681682687497296809846973253630728361194955199730951973980793344501175751260042987839003983477651129672404726478410640976007743529459641362948150812733974418562974332161045139925047683685684600191742803842059413598361334818976221577919732268756956009629657198405085096683174944005163911323961859749716406003221297628636560295793031821986844414438160401241367488522270260264762467795504639530715828481690845101456582710204069151755783382965292124231723379603733904295059168308179812536790141352237435008406479706762436919407862697450471065680333277556867583119211943432992683362459778593222520720761760087594102611070137188772928147782607650452530965339872948358846304167860454796629320912354188419864140690575603534857740881722390761477540274293996062048786103141976459946967824176913624131000831432239091196023552725210560497391005619088988776496872303778593821654378844434439937011356217776068227173307329574271848331782299054437035429965319141087876959986732790045284589894140724290927805692983313964895992360264693310309213304559722447659646252498853701362545466479774007151996084826542206658993147247034045664097235650280706960681562762414632077714820349862024344360089629945264552324741329250187230716113578975216140199290887442024555214293354643186509182449318468815833743422144126629220184982065106084220780081140606241218566430630747202451943973942420203480822161422917365526079993887626195415990907982652599507307632628363419048577752945910703163833246737958625195938000290165286725373733133692639307608570451773089891175219509712750620483088834505578940116149770080743415830714884101104249026407360773570192521178184326850138104780949879594095972849437943588230659509663721993484137037685855264330718349878760396814662819622913415666350787954427462629133941659753334729531265104724630179296093988613277233692563392344249981050985450269432623183230517315578235784895668802288886362304024509021650241392101089719311420129214575501829947151125999969409430480565776456113213993920350625859070600150185606229363773784683434776548489444662581454032897771438199196372739876550110341773098260497383587548046060886046602700797881229552565652626316920061829799357030333376906675868406540677687848362124237817854877093263384628736160656670825502165314960204465479863745424401988705990208722043080993216836669832465792151541297385618192106237718418995490951821419505450721429413395175461639239717793333100789179056639511043689878030895925255075582474110705015874301325198490575665683047921367575136335342083000954677181977895684144859303219211412115286627034297358842609027278472122301760235396179854677812531741269873837464204976600968405443376103337281472796229881743329329929080142290055147260766470118162535793543554596664520419633454502917485825205137206251933907385464872982005651791802865080234575108730903224546532107156969035412564510921954914390095700535728517296530960243686148755153416448128704435415342476744068595751484513326721546809782115548508796033233421080598353708135021756653820203867876306663070965049850766120300678583268070052094571872423327945205561274561647815794629682550483690163310087167374688976332235203109939159549081177324616054083304228918874487497713894043252772621605899533793893232381795434688699162040305802325886885173497020709179295863278041378120852314229486014947037720756785273733207214791697019531454422571259544017760968431274645545590348314064119957741255611674444777467132428876308205531173814073371265343728242009151758592515216245092735975467689890047937120675423645790656702388969482170903164200838732449492274917251235124414801402854779492281270512346128963071489693056795973223908509945242402262706747685637108446928467385411745805208514982942896761648471417452823481790853169281075497426712306796038301693703191145388897361636543108906872612917966696548071985639703555958554475582514804290072445032876696210481213069118906023038584717442095746611870776134095189616217845586578838020486861712745316642369625233910316145125402422039452999057637143651262031144599945923904897270761667164585967434835334641413594194163258965789763876207400151678590057548573548131535069576296721405992485507823152177884505037831671202133667473075197864382058546308801938260318841322387767521540853370081135032759204649563206880231352890685835063735151927680387054606033728680774009357272501431133283114001608540753094881764416679668374935630823315967495151694817510002007783722445698248601551469440061432537859682165753248497476859894020400010455790398855573343633031019421457530478433384889697961866560564141519761130920555659314723922659049777893599857024807729468551764650939433328439411665233875654589900803581912305184944283908795718974291844250095645948791517891627742919867384076408999659281171325276267371390444695829529218290304409057448165326380745138899547815327064708928865144886043303162532397140971127072081672546293626380027842794554511885772553111856111808352795853387668077106120755617434036518590522666486892952743439320205750821667400915462161836352101595489272595684448355515152812049608652281378011522463939504577332426274243210533667514041727079458457183701142365268736928251563083975462997599003542102628851362604092738749601289794018416720732168424809604749658274045850785877747506396949345327129288553755373163109707430173598969298379539512996204167779843131582649629584934968351308512754024778462953324348648717466407297792945157310675999382125553634572704353296675533217545969962961973466582233752247625225467454364898691005642697301575385186146471126838354284680768438326973327983336533659046733806268762993816887467454182448132130235527723396686969285961227794965687443973863450028325245414613093408590908032673012322190862590125933517566282713562994119947262092962843464735735999120681421502917704563894291847428586358316749857816849867304396460480342445305857215791227792936826810913488037047956700848686941363081739759119218248519115343658873417510732737374663636047550742980133825377879386581310333532572084241401121161166256637347562011512522287985414608272756136930492989098168247883319713287522460511903604130079901692064566867655875320787919930517295073694433003286675485128215751431762663492017667271894925253861515797710666755588634968259610565499407349263472503032509346226796227159033199534604501554426434800374677360397273312581608440579400830587156936026041764202824465822853995639401627046327958375962434118687015083073312355187656937514485801032718761217675564663833709983169213193108061558146492054635496464825150291187208597242835034425729670035737116742013296623614516646340936946795523273128216553801886037050143208089727635911828731661068150308006363940828941481034984586917598312404218746534944100399064037074283151708327269634818467708989495727034381500455480242544704947657360356346107025280408692090687601079874714567124422061538172599828282986978939343654478069282641827229799813639024055391443406083121298942049183116392841446793665468472846256067545392789262753234189596093425331786992864981103573716328282000345202629296644537619273406258128362947517876294796408847641811355987726031295569337454811279725062482891935661793164992471560578924514576757213046689651116462341517349146608864663036273880238248616272885910121984061800563079796974794835823748879253557256790969883817363599922284794311960552037148235413284414253638485153120153343378166552029876010422018934223440646854388634084827648534610244887030954532927353929383424648284860897500656324391143691405715871821658278446801480803584176057166287449841526798327178283753660726368332379333694314376247786389923719687900064917546323668967581001085378830023733712020441334120783780735197256734709744814190713079913610043750620673364295094168903259806166617345209528434315433273197883868901981893205685051000901425693529692836891420359658033292262397266382437679316516041525481512607161036338353246735539780610874833176901440239338834170685595309851075803143957293814535265487158414681307450725757222392098812005056923286946875536292188265162625052207146270246318654895342369177992083436606186256267218440956363523896958200809783420257555665600940905960537823960066599648715515210400834066573387737082344131337568272725870032675208225021268232659121985100987088267511952762541668860514266783160237330878027898297136680591275131028506730096223504033456264756989705632096209274125128398904629928039390797297226774702231575237696449497356541459960032036512394150845644125239224245999188578547981495902322297883702641961633658252591012689867441004410863747691591388074078230130451271629162050977035965471944822483675381757850163776898289398319839140560390215755565404938372985437676764117280469015070861852239897077241735232381789642744143929017729463659770513521119396851602210363567356220864977635504376909771253919962553566782891995394670491934419895902696117983936350826324638461429626005762958456101703709028954229942675914662308354740214368177202365509615177543507759898943088717331251480227414299108349141909924253640893382853675475695371757268042857984098857781556438280251451655388166683674074834649181601814819393371071417578967695798148066832438460816242109033756486804644722111239071870822230739084327839457290658095044387861850878507139839675613609223957765943637080807538345584159143877285333974822377511287708512350969841453216178438139560435162829041095420344534620667782275658543973221998024341963871230684472180643765059066825845503664739515403107395650256074809914807086704331197213951624095718532492218251083466194702958757532750777655796335493588477245933202017774788316857959514332642669386358898821643245233573630168246164677589962708951445635946671312199019425795315298688144892757505260616509706176605775500253357745187949244037821064004555466665947350726103983731131394452430475640955167777713762623160170500541431809450514446144609279613114646295954624528441553453361292147164166786887994767700832823595000964992494170049348179914707140455254802521729366925342307616372676871945644251748001979579964069751265162925411799240138702146190122204984435741656521933102264394230015984157446337913014388673383231692225476680016565945394112732646804542175026804227142275711534651019158504210168848723427655329236768291824427073455143442243854761306786827896893650205368236001230188120433039968495233601611247996519594267151305542065989910016589580536082815227747289045130935481511192306744618844219592940767612020403137824841867556709897364168902845563758654585623196366216031028325005916219252151409269895619063150966972511901274753368456202330516579948620713025024382099347583865645998134661007025701742604229880420854769017067923753069299367726627379939997165914043862099130735979176569036945918859095647432965483395557098567009440154722122745319364178117569281034488341166771848707766161717215725690416430034385650396545810219803313282172080801095062135949660447183598298363161609142392823835897709873635268319948599170827887776778617294331096574184364095319445582752651851715326326277142390791344380323502375790151334880552128657594573453348467662044799244920012338686379093402926823994722635469933565441488939611438883548061365979121644087400631868560869759462393740380878512449593411937132355863812836746799658838053339982084043777298841945893220467068912185982726411896358226603286596132472584396912212678590442354217685840315156279470392938569717109876961484778532547958812376261402587258191363830238806950058745612756319318857114439347796741150614771278995596619760261549295966006418968480011203482883350397334919537191608569657106899285663285431129848384674176994449345570960516017437476003452006817205403506794606009627599140885315949289928752410165125871510574125362125538944444261373748864152256300329539086077463307312722175900319108837302388019173809103530442285731961755675992600219562269628524575508884051583747241938004835185352757617297116746664403224483905781619635070192561673325730109416377308279596605628536850854789264003751782498974650788143193420166251190405424633481161375891680262612393959739711416812747723432447615171474482389670186763808665834594702953809738072649285679345400395440041788811500507377746655516171722308572096582838528309855750034151327307193815053164833490427325729215078835640139577372543395291949820537279635404010217003858000565872343258198998678188193028199005128652075287064750325039014471491629785777360030462867870370830816167496724315518371832754080013681774414302169608537345665022601155430758387475352730946171589908263985103922557627686975220235004787696819041478576749047696594817657145182095038433125739131913315947621195511145610453917765529434217513940484171302052466539412543390081041647550720648227670467269507288266309404316157026685121146208853463876809498183539520625716070514137772929748945273268446506480778370558709652505700583052954571605505028704592358410327595317385457840736848054161901876347937448690518228243265992561956543229869027096860186299927307900212842490857086533298930665683804267139260035018659261242591613578105207404836775616988521604639586221402825208887228510747965701615326646151557093832437719931876878409576595902501248943232972921982577527020293819449458964870312587488894920338722500260166362992815115427948036552032276212619379315668760860775071848495326382790203449140962222149824546829146543541861470130729846479056301667258232653338114647464782427243423892180118827500830993019672583158485979831021430866702228310586297344266404274964950767120222816783915803496667234975317343859451717157776084983242655329346493937665217825008954015148929251611231798611396548078627386650221385273292100469416811854487331394401014052329622446985778817868636618414039550248624028551641941134888272987857825485168053429979386510688057824279875283527093352272314301119070066962655898712003984341221025430247772617919562656165364480783375818270931290078201947857632972972076845613937320813829277557459242558959756787760104161019536253385154326385306973923947785517457593451854583244683390606079417937143540001263256657079228152437418687714188350512321703133090810098276497059681663392727444874736125621576846396760421021330023260946348410959412294903083497319154384532427592824014683645501179172163687917435018076531322578130094688409647600444353848147571833499450230104059094304568327059839730292546133986536514359855333322292824537054520177367102876448947386536126185152017639448786602122508287149079571888502656350712811869162184093790231753344077563254117120078165990070708667195320394694104799301197107585653701186411024062641168321716685278576695592776022948124660813161584729731966031915404430632885427156272345997755879128516132861010056085954708603590489362435168777793385684093929238641982410989119385085983205436372536578695514810854040332180851913377938004981239064434395310983021113577209649634876243658486656980981152518589741310107317981382104606158914820593204519224232934087400790903864219217552609388221078571534408920370296400635698789269763683171826382672060253646916801873589182772181836855364494870218630526118262962334997829153457651936456809096093112766202847497282461502917122364149318460339685516958647413621349620496415740450671017533477803628445152853120203743490240152548213961685044181405151261035989906753602108610150818215541317906164550484222686384626859716858617775154865014624551162723230858280969289165270306485222708215154191019035295036816146564906440555233802351509820342365772670691297078285592504999140605495008435712764065136656973720100910161158769373094995287884721161004610477367163518705507204383924590785768975900809440849858529144223640765436565946286612001970148388256042981696079021077787759747716493983214868417510613252748628211240808381360446720978257337518279954248882432942997082539996378994767652922588819462369491795782581979884728373248560066669211249639160217775071171042607752270554933877907089603318518775970147708667774263652353547266829167417522946139275495898105161175150163508257891445327990702434759976375274794263980020921653561238201520860925689244442774272362543604674487493418229364975236689481290474686238033364806984520172292850142018692141436493635557178374484473993605358323397867255691832889008188207103371254810370984713555065109066664678905205310034031392765786142484730052357239064576215072818526389546646798421922684520751632520343783281059895430158648003399929826146877944378691889525094510286352048394510156045706969992547748086917796613293814486489599457101879182028941781227233458928912642754666470479291979508083189913756321915916091055726412104604424863558806205118451332395729485878398637639718211413353598162078059729072230141767211939386497644663561561690485513787482261659666504886604636850242089471683517731097709114833959725981007997866892108115474686163852904352708064052710283255617496259736011039106679518589000457251044921006479556421090576997064847098867263999943472318518094867889390950216468542294727363130437469740198561992589362899988067754659155985660201919607466563853051930811408323951749789734197410048969959102746294376439650812794276259719953869785994140785516093612724988679134073633338524272225510519302602999771066063260055160274557001835656928039037329279744781635556331355589173021325247838293195821274188170601574650776842739049846768038404220736856871809322698058510275130302979625938440809703673661080292382613464712864490360743165024707680308745728081005167814382804982292070937955558379328787627951017523881409973186593423297323945347359402673535385381712504879312823973868377791298413962485226595112450544311358210224971670920052709181660035523132758883708848109196444068824656985262427784440959605494234091125363175964932895309560743496119726159925625218562665636247918858737488394265417015245630471576136243801906682061606880065833223830769702661813225758229881591198994686217607829111091618925258565744137331433546595101416484461511130171545601665597383791113610819581756054711350899061100841096942841862852466284992977632301065513600273445343640688531925547522073961607101104968081086302025010098666611257927156575370308858891447763776633812629859721546829781310366573311240456506411073002119996329838093724211765129529017899460147768423278194141386874945991214877932694315932347856475062159037069068064923905241968315687396161459186480518656573282703559937662965355563600768822601833050738766656758216147553790315892143464709795801250293363563943197317182065451498230389962442235473269877322880263823815414297659765970510313006184165856864555700101885065675266028360871753267690220889868199256996170607552225070686748793740383260347630086163066633450038685422733776394846983545268018503465070934146652240779376545205211168628380929991519623175813486861185177181051532203360971773004747289768675048498170851789063351867971616085964332430971409107016917716029143900667136245675316058578252292179957671242671259399387469136968958408140853377721324288767064316934058637574115483656606967595673253465920112744699822494640692205988788204693706565447318471600512596520640562843433949600909116292911252520436055254175284944780456661212228684624445754264500372134287595232787872584822577386808093596089537307482337417721785150447955647334458148200617731379373931304931335234389546745284265397543842356005579632460248712142085419847122965651264433642333551036571848058795853283473631357061353472267321576208533734872322247459025976073629905604846750456356565700522792570667677233307399762037441797157062279188856942101284463991417236675996495272209728558668413631951201697839529675920675605608095047346226888562325209624420303821783935479416581207430462865797524574835924784948305728390735096190381888263179876845396950645026129642053393678242660256836171916874298185574700969444790047928906628333412452798385239666143109172300874696848658827175881950083240099481223763235747316418445534995027478148992061843464474053091433834975942624405345115428195182265482672491721549296538179520909635688358373233497701846348279583754280222653989836949875077378285786356551725229979630903089827450954711248288635158302409840789329416004239833060772891454153575756105239568884136267218471909316067418957305639046839330452696142531517097399360227346311225583682856190666998403635978359669628873991645643173745491888380154746332740656135045068086857724288539730532829963765430517064536877176638451338283122417159518827872863095311620484385579022365132087723421292837622290142376205794160144473194003099990148252472927069526856022888387494946067794958726026799126569591257982352616575201391594434770520751474551436211375792101271243148587480010320072766673672683126960560295055266675762955262991444330466462545681265543503682408279707199696791104523974078965566728756923987905028274288208968678734039738138766450958898450243305354706103887421075810251645185889987427594350731964131268371834470539623412382987579006919741540186317141340964796848696495393960742436054725154677103957526926879349572849671882348754226611410123237736945630998489447335237277356186778901052750558720516058205534316756003606210685337234541405799913466669046859829720527921777442923599849873297207894346041280770173374042235987510704971224415317611216912228356760918753464898922084843151687784256521717957200492504315298665838476113804165048138786080206252049233663413727197700974701447919142986214210002115543391579137232115079120621935697000507851754090939821172066015782693218400060982483745865154088816641260065153969800285335578898380116148391473453632404743981276114248922349156496529655724216375672708093907795041958319522743097743785691525708702489437310399586390963297951707961763741418628280008475489101747312046191548684025073081888184743739160160810811445109255936382792104744915187076239079053056065839686344830493136520375196369532790407035163440758015812862627059588992360574025667267232402520750912464940077687235237844335881455922918185454214591252079278834819235469007127854157722721535961702280073280751617236924259098054420257967896952438524284392542633822645000333897169294569788574481067973059253598078127680349998430424125131300074042178568515003954429884823696542787531373697529504550938435632848644294783794895050471906277654723081503985315632634523030354993626730317961751501996689397878564597603966147987606748870826526397379339801990438888326126253810849635831163681026401741435234613654057721145252462800290358885349001244717080097021009326458915412550001555232413837274923825778562566260213053303308218111634203837228719154906523155268644003245203733349156043971780273712941080419105919767118089098047284496904231919758150297108084959591242254188754673146961731812101900142084471461566193073847850984491961027922017872967593981435893955487451430362116026897741130009330708250818032071007648125084399461411097347736429520227374056751257935072211047265299074871127016248148593640089270847478574765305424873169688821813044464990206594453799971589003048650203220163462976749183383066691441068240258460842965931192485789167256231729716286936447763137766942456770153594742568734801086274675421092981985953672879373421652932985196598400966292117456902489122544963355847264203795813601257290973990181130188401349030519473157531231319343600628256487238079167069085668089560772683806894480578352935344683809291034958702284091178985773979791140838343554649972372603176921360434244407279085041560056987839704125056858264459277290513977048944588876763271888203619793165603383082644955461840079150984708380727926166709654616545892068131781810533160445493777655893513947406731755206999018551585665818709103681186285986279489988782032633651582042565234157046267251430988375134177044504079882535295286018791503575528056685244682883737194106142421717322203611014844608336024393725745495157546678371872755440024154162546420237484935563807690166629742718991323004807779915878512554555690967102680602681614123150791505252416819483642980411436290193947497723455068392583560599720889193162538198392938653916425993504419942894836004982483868157722001819509446354260164183549596276828302608087154385671484614346402000275329412320291587537303747768170084437353100502273350428079647958081689515316999236242259670894720807666468210361412669714929826072027094430309954802893934081834197801444866603451436444157379737011000158504668331895024210300943460698836594752064516681588804537607053744071637712586025751367178729003788726995222530922396648750750183757290567384280698142662915961025642489103600699346239731540280751863379309618374876367258698640525201753776205187605599236531702915951102434657090899920573197539301510302862876001216316569436236721689419675077244126873582724281047442959600741588196096342382056488119564987522295243429990109016803732809072278053796846126364169303702925314743195801084415395940905944985784303802736068831608874643211446241462683520523747052042365998432132112170317222889965466699350976768586163453920075476680293938181433636012238033625342858476217061322631976896759770769550076165001214693596347726992554119423135436633069043704387437113512110610586325092988322569010068601837768247602466916940851476498510581014462643576637942135257695532736940013911271328334398701065641520462498606749210688463211239687604953538417879342641634776610086776613468500302566130445719925543748863425604011052356956675392894846129169760199923664876994395746343283441601644249864542380375422607479702298992062852048800997545375407087193885719843188590955176402398588293879920049363763692741016272130607612430097666310261659629576529288401179823768355880707100416728651792646380047734794502461855501681450568088539332435290522248775832804605783346756887452162169025105072559791474395900312155347624667325985226421755517929058896686142723625264984813910056412123653946830603892893413180606273291901889026037964578617202542179100610110859325954956237090577207566896752699503968838707129544423560829693022567663916664593449322674891920848468816827005758967093857015600650822549672003838158093358360202683580633399752350248607721708530074028465314040772354036034019323986120781822125060183136389273683801540568443784476293350857858099580654582584073446883147936582236902211411211531332538561626646247979144310668187916898873691887075774115363015141665617229203192277898629662159183094971033522848259392426693279460100243535870625321989980318604196193835714262544049002297327251846786741903353606098138801021060364930387650335649197312697782562678951595429702896768163285659487899522801278744325934646643222338393939377808565704386267162117084431159580005549053279787840614154602836085402649800995668172136819091676383850591653979450491430937680740620900353310605831255731840349097903042972172010609822155039650961359674823822159616078503196528184911767426989989857927201870947029680260014104522317695616446198109521499412230993546813892603158692580018624935740012097572188182443398824057472408645928721007301191019919522330189034578174173507176518000485692193004900085590535712261894407013076261869019344205798969786162671349168874462808856777082246957514665966766343711898567721911185400167520456609756974355091749803734629277866058424179778090017763543221236305211118677182487620155893930901660412441345954910230141701839718218160097916362936537746436067231649613784567441854894701691193192445705472422329467289512093458112935861440482407881150999129889107505051424912404867795775031426783190912695555652669313604419828755414528851083132339750490171435286228085251968573690018939427746128139673375815746393986735041259866300340964129123406430213091053190086517495786816974125200322246226131918138456410599989719352429477134133572655416077931280936406330678282206761919574521328976835125395486532477083134131127525164438297740861405059199546948708883619183651098708841248899386846142566087506433595744848654981487852170652723105595019611218809111758037702538834602291580578342040409009706359234251062937999166113676327265929008307334364402374445162781837005810586617412362426742553622496324097418136083842793986055219135598184946636310318334353494882918223869676609222200076894141633057776289395318096477167978627072986938167471565893134038601877712594946772067070658758438018893640619840208276866649665770366977146695854793338373303538210607203981478622949964155561099417014811822064375602851200740438253421744438031083848979898227235544815082673641441768698712823428261690453328190202118989391821422583790481938023584396695321057918589700646027942600408041252062316875302759425639604570342126680147199248545538680678409572007771038272449155528593068234524849108891198567303999616571793169305572540262359969062571266310203890395524690214750154933797867352758684037349615398109347258855578666710275752819545656156898441366950483938097375879792394474894813274271039898435345095298748788406704153611153652397626738573360948627202418203511896923674310282463486158211944831156773510983700998471584426042756437251956912920727620358949578148268269815319696295417987705012913608223187896159007441945430884931387820184174575962520696698944900367340753711402445947829585943511793722465497373107123994679374477383945301366374841812513078377122484270176955219488529864158916280940710384856788071026392135959038435933592143027289402860526612889551465808956257589770109171286535604258332058539443321191001747053492456696824624093401031966454144780806560289664017930147873274957406591785882532357097455139045090263738453872347517774411856381011185941291684133065407706798696580077544775778375102510119959567946584467487298254425581930358674461710922158683236002649462467489510839990959183737435274880578825135399949822200840785106376169086188540955700585511091755811363427165104955495119117404225389446092247780824870776922184972375132172618105028450772846239022924386309934259489090204696573747960309038354903886589070291255632253089575643856869250999104814781116784340468292257593539623484408263096147334677528674390308028476198073988926037310785982068979010471566384230689465840045404377743248119216719015248680259342441250275754267641157086126334492901848812028534377739543276868572765054245543023237235489321116339611626821940681577603023070523604113541512844754643155296531729483055921049010455237971388950942558627338427304609259610465675047701257583771478010648155010758904521725744133557301671434926324244094712120089013008264963211434547391380097046934676512891233139080078051325991531465073768430660273443782136149418958302724250706923961106367037917686712909795894766615021902483372350507571191588793001314949452182592217394336663696793261888637042847064326550691633459116245208966033936577123518993536381903579235420218746106863837647196283200973462055364068054371582587216269679016815489228770591421683199842450269189677564914621110058895446568695098211215346863536089263179175458514701678682798147308546456364623410651688671406301222757844129362917867103481663060688798354054211428763237227025674594647469954702752689568582416564096717881481347167045642411039405503129200777520999521556922630287593986845421617972688683338630541575642428048527443529310229590878213826036406648944453870371651483015365328192843099349800682171649744780701616052537695440394258179370300706031493378124743539749512654870653084712778486380802322053578893033117920356624365069950773454968302566097844343984017088950167121788903026889781751928570588156985718632629329421576243714180785776832297178331035831364694495244304359490156725633306342730919885100329528944866437171394310991195462857331897926705775279680556190958283691905689313559782782898366288355245833154086255728782358057915274140540987682341881501557845067219659433594041225932175344104422549747383106046988098499588796738290333256397244991657815484668030644304937203036285908518506586290543325866081242806174909305876481093893533273102235616601945373719432387590307891645906715840610107276693823639933452026200097364873220379878234124348149431393517916665109432473723499671696859925118046757470244463400800754506906882028267270337817481437942647863094795728809137005011631052457959979508603257399383488003367846159384679880311951081003942048098950971368576365231286800711703764896167835727233745254284480436037170380657299626460805630444340004508135988727810891659699991509208269744321541140073330541465169507644003940109427679299030399158507863852963061944304878889568159146856160759791436625583733376100242302489538297945482352654484826623839281017632337724184118488323428235597324655298976496694129069057677229775094397267384771815773710454215866982694442334841476747274199846075459692654410144973634587784871712376132787279843153661955416957515807607208383770288190215346907971263999484520830666098264369335962552555576827689477437266159835920511667153233066650443408810945790268548036066623730979663477310648211451793835938810458460364182420681506510437728140120294442817092960010536210022287397821636716719207799879856513534146886888984371658688142573914752353054432169749477639159896107387780165967477192897348447979641046663181548290296393712213534646870096884414828408118243714494623601494752862433172355256358057431605214547509119214482406861644391384998815134187842461816939989102565811201528698967100939196207888756461174228015137522590335632925008504311617711644645174287578012735489527305576553765314625171947717255239434559312369186171778938519845939018168432847504126343286156434387609296189285546726860856124129758408592822947583783139816505527009574969008299054554369596234726184315222993296615541025753216102124369786058762451370074018788421507972265088990286802431990585191008812357179398368228398475458487127994593881844993115334864253140462919687063164506561086952224806659589421033656563204106163623653092945898916878567935577336136909821217951880572211961211017683352652056236730216097993010142890588305343889047666886773022280264852034546328084597994987607256933886861280415160380192388618782707293088823060971361266978566207807619381547167621130080404484826119799988300433100711562890543220213051339356910646487675840286736852550141208413246607259384221043211297193065568498805658510168569269823036658280352844613923488871929118254718379152404868706665632981752065033662828135448856495828502089442350067606536203949697507882816525149502061918050464314323283502429395037041533046875910553790666295229294184683945625741805043571759002088549952880680421691087733712852436274558568792646705857553446620040893585470506889298602521972551754499199371057212240247987020194284639352191861435083181219121768454960270672049146886247448312243987357327178842360017207116209444831859939167738443592835083415353234165953924175508201424030644501762745951178509541951547411614518998340941418889447069096823322245660117410769375171739710124329378582827475654116785448641971702183981832092307285872776857646066323374322704433829055871661482300462822082102090868388754900555662412080723282051317103732976364491421086705559500988999151799529443995150960831503233331999125151247156145198861702850892441591520493908576708328378998366627364489332417288561203035231672442621835525929555777110356380323320958174473156715917977956735482735756419203068525816798338078144092714865471822045620446835779187626632412242802892475808675419561356896824788704875091854873928949641088373504093679269189538269968935706815043682795975993596641079586609713630863807855795423775441711961390212892051373211576017380634122195114221341969847448561868358019921139654005963931162576348316244703998766852986770402834604757051752154528957320499344672637637156578447271996549162262334952285486895091249269348539218638732411761898403701347062769198996513607111445536545936749287458033008840555904828478417417965606959322169035722009851827277192561753515527733137609799131225649623003866056123138225200654674976778831910764673701019112806593552665633088982574921224296834433029966238307153124833666069087970826707402485493215051956292141174007935830279612519848748708352957733940513336822773665635022219422087559818107044306695565899490901781936297031211120817761432877378733498823901244111954078895495062204872612922421045950323905500426272667450876464780055142024912272430096768222166066506307994603642609066458992998935343183561194277017579450011742241557072891574083263607032418348441112434694601298707006844631847830984525257338637628736215600021666266978400403325484821315275997814019659429994425268788600786191098043602221156874737399009364664272536379333835787202959553282915590723738704758960867060683209602801674927157443930940469952195642742825333860168058168032577525191477294174000712925810057661853291078707027771887116130629560242755357739015667549199766606442060911568418327519150256232407100151142427730605332080883216112604893099013362868101221598659041190035637385426195528118910104648374781422244993171529893580646684741224694336220599262994284556260475060963043543271839789684127563511497671128394359326128953429189670979125886760408479371576659394778540554867169894676908081581569894853774323918619985433734373873824205492700293046376837674436279003289029285395026539281768066521489075120604066134263961211328825414602335002865043863571547311339903076630705268951412452442378119408791659639803351231072374081413199953113135123877484591805225459743837910462002183210223132140988261863602017809700925355068975610777125625611398313287296677528958703429616684882586675098200689698832368719483951924837932293201203755158959672936871191465041915027100102385899327193695924139047454868229795408536545918496277524431421337255963486232704947666371995433724598102147690785247722046141411933024301992606489168869943717550255149735394169156838639959847974010414295427262069997167977931640477010404168930930125754173364990362895048748267312516018864576487417116552858501630116109626937939709183163777038165798444514935127442731299496378634810686232968468263525347819702020047187453445143083734986367257695568715909748128113943977708474037917106687401336764787980137414501130770964190783937237768885108548714789179457579710686718084942121484992883224822970626228786636934903689330931523282857335514462641408985456067788837305660233323677341562059462676187610749358276298026086170781176579999941419674726219121977755769615303668922692233732482113786423908114790939365179361801093412263716557530103834103092989442554084018186562071522122525144255737025560920491552114495384661579981074227522526514569192533516721663558701935728457317868601967892103709020722324105987411536596418184232322686659925865878870363796236182139973304949176297684958867178054881713848422143659666795162086376347254410504714386977545235504423323620399070257336425164570438311324507770955775213991277996162230967004342644938879638393358535523438627415562182681461467666897225437319948864804991595120207266245750681170346344241278656970557077018549660498111825300546704244279908300389004850427232644486138975853634672378710353616968959269411139668947981685687130043224760145451436101926420591708777096660911014578914395557423875767042763657223052457681399224337322917971783481375286454978135662296782402306979451666985198024157327232099429905098874002860777023053079583059100223417437414455660038481480302913742232026080245561425740946219487233667762542647388592004690111550443501531634485521251088061922568270090196367441349180761312223139246616215570969353666648581818226687826357877048357777559192820576223400227201500826861889982025818489507203249272454458572357686530535770126322398161361937178627230002928738503218678548824634713411804891114535066732479958419267148327075609041747328541800349849352371596006156489636780573196137348356135073868825168573771710847385592520210811645799329633890765039763754750971672370109177752437883361229525286086838889188420913087751678164545992967954313949878400969139722061500264260053654793224393042832560926052541695404639963788565470605571411762835452453252461136159408057192324211378398943709207354838640115063263599856626738644827223832854537453606960771698135708780387721032766939706036798995879586970900593438016012369970875685279906009943999258846737728043780485735439329840500163865034265098341792039434945193956062777833569656480977859424462330748366082177636563460915911768445462141972739053693760143689931261438583939665188568577940351550065683040787579839851300384698415373261365445951260484038588698682907415519844965004369490018084103069511632979364215433548017990838394727935641700989985932024948001618951444929381631805227423858510563594604027028869603485918473258091136561979730721513885141940081114132903114146080195430448898443510293243368591457762768408097621552312349176278624978396078126995647342644817705291620884019343627352247440897575679923921206320708735839061912719470853548902435039341639690313678096614329917134759949469882077870428694493100423870327985323894482556497252633827401876262177223628954308409612118764708701145910314409195636965510591344153940199139056361623485401599734714286611928842484822784746138657437847998230710920942768524999013305736906234387563153074943765483864218132520874432612255722661696540688862463128599610444203036423265347935894141705839505449227256776477606884977771056961652581985055886846386706256026847010855390862829953427066990372250269355660211444940754133031416551990964475184374611233028805898257098269246557953685415055064180177827004345585155905647543476649795089222614098409049223112710751898708797774345434863412947271195198791205060678764305470942362990506329410288553147496070943314071973267636068206182190700889007588349574383385039359370057139980673245160411964602203442076190457394995818794427408054867155038319036620285675925463022211304350767076162729538156671396479806045683429770740781801200458770652491253507749793889224944160186193300103622949056881037680044113158645517686646010481053159421747073626926218779844859263914899724415276297770512905366885749812102631522676254944397628088580366096906573657213592253907110404888125499636556330867821820103461834397183660106849894029854789361088958639373494399108995048412959800968879520545372519215385234017453773546948350300562359756145896312003678191397218766474236247046395940944782258551256099909784289502113695711911711061467635535558611041042600985191423616913977674261376512550719988402656883696470954339731033947993027517517732835742719618596464363109154678539768724852712511192111018939378724920191984372743843444303434747823006791525622688596272530965368318408176761336427870785907290198384517433764334076322505390159302958426692149330387665072043941645899020784048958229831001369130004932420705530542190305613986057419984037895019736496454568982966092445181531135932070463508267061446676724473989726422025594816501708260657244820411794964309190891489249485222763994707167274572761227382806937619097605534184155791371552814804288769487988359809511519964107029144791072077187915009278771543564143471695522771939857248426856141238534007984506655109847230162101299032957373010470136145259234371125850882382712851172770905583889860271747691132598023555645264805053201598322183317218646409089974149803193065352603350533905394796301910502169592453034258090299688491426954258391421177977765114188076819143877829430217175290346393726453290861500387117109737207422049098174074753458598396582241890927279070219355342643986294062690821371368854203010701026575168077329001191253817406676166131119184575856115626251927873296245198639224171633251033997450158048081132642602297524548954878238270957265996033940046015047437910603588996008464819715249812485698741445628126868098047144760456713848567857216929439656137156132175970088164771173327908254366672283441312571987172119402251200374771793952217402735849418524337062737740901192036460721069023312605845204799582757573375254900857993047701455930890171173775332926246685526062685445412521916851153966655077889169772484621330009490639437570781059028324839477514457264287601739184538117851552691401403864106915380116078195028509137656692669146967995452817489525042338098223528077412960155805126190206177081154230434831016592015968354015521552673125925191482761702904543331921966912600227626898413537650490585402597439641036609783272722429585382325717320496363632823793909900571572357676611705853904378582417531522300277100380101704513860507985201414795502183480628200971119929916851428000275799825835131150293689723583745316462448255102713152982117977500685952812545658362523884755346423368615018803120550955041331397706180223998262436309968073433804264074717571214829506615490937108635733102292033778843987913554981536665277839166341912015809330596997154309088890004516615423630310055590749651253317385619710016935052664904943886319618051052593379911492165547100369528944355623500191871690219677121946305491678544166036647947698043991964134512659782561501201298637911907250580815674563140731904414557901661199021116821765533053586181854201406248492748208109078879706347160097182462282404863208334541833351728300453739622591589429358572218471415411123901701598824534144182428110768588169121126218743748000350884619398921806686760157699667116939181264583539875492660587809797145422156781185320568690738729926853658280404749465218216942285640679879363929156758933047859511859692113927449367854592885818225462701280076497713919805086986452566865633990869443431594858475212519396579304941972259363405052052204532446436489821110042077041787331728820780299809221147250723131474802615211002254573241966963174313722399528881006663737429164840058616844530049058292412136192683556034272471757137229337807999368274655872214461970257162729920586415800934528869829500089941232149902395035413967699343849462522630307749050033043194878771687288432373403235450909273482928165147275043457799670434493389248900028714753303936271191076572449178874596882647821130543687099657720604215914916147222467927193153889420698115078282226197686064347423266114758532321295536997066627498146759858113623188513924675414224069176420288018324807639759029571027240658974381042368197429599359828767930612612908444708876402670962410181563199342468990710932898395865099452738601802457694505087222698428062454553861121956247509374841807548584649123287987909493851707313346175859314397774812410975291575482029860674045029878021827991159676343485234839668895804350494840954209781456958806115613189631575129513045353378453593711412232974696683263091345071648534240443165937352019242075242544809170643115754841700277382165677634424240522439759782215090387826193921154307721515551633693707872272684092142047739957489862599682896912764580205160383943542518710438228082464006682004301380743183829780309649302776452933142709896412623151778133862300212369192615411863301522745991635101717527594725100275671210574273508711027419825439292706444427319433365141475889291067151622811869238312691162057767057549453922648234457100380554870517108513536393506357864058996529583201360320077714142700969155093644653940206792414052848325810684409585215689384577019848181168266114920096463291974222836492728284970482126164978843060231364098808439382483195956877816150973035271648560938756047832449431470947756415311033553835475131848159841063484619636651800087343201554302718894974290265566564763608781408073933060342240803148612815269194671434847884820228313063106106018551287502479671391593394449364743929766230451092870937725692431119680952008886665380711551525077724843517373946138609196074100362425390086461823430419781221378477177044902155469477294873852786253196325761306464039872324297788937973623507366525205596753538797615455401739061443805432992728436510190987999875324720218048100113368077184729026668965551031443715223526007422114395424920219139329400821807748800267912022976635555419612147539184444553907129998503503557676570967558507396020344636221103306670895843106785398931529052159317178724679252842410351870167181118030299280425793098664452663734546487724974017510900073176697389132791269322570864953587506583798897416474857102801277064199423509563867401932166674430771549275946638374110042809667324250068750655214155436275217379725833146021732607992926850003094025305484724721876312530692179274774513518437853285236970668416144869559714848513143133860325007774351610356281038975708528739034774449187928867397043356250209770357913001648610368169176702676580134310738637685667278750368629220456652124542539235397984150088766888619133049902937977891444870137181312001474668741407815129584094068381616691228605320710452896483258307481778431979255293216484339854735775985808880976372282975716858477662114092832820745353599084500992493027196702623673187631036269163854692662251257111941197096438383709562400725973216659221388194482121521513101918613203496195918394722700528215958167164923384026785476462765745409287618914363128671601054852464877481949620701956152130114498984921112421715745823459098063579063344320419049615886194751326040503742806283326504811225776655937920562690887806854249300402648262342650950149381808423322962184254813893437755964449320960252367091374420727653876644802436481183705975663272188887756235974981608957948721923548756118208419045654574858016848830840769181176408281657332363749293481436433345558583849718708205000912291714613869879257384300855920358125597281435753545961522215321717150203791950756038010974180090649159521267549129838482865767922210246013252667900653195886579810307175436327440833137336437796596183580969931357940883025174636551356781507754301281900193414771776753197094945022843690845313476319375437778445271321531018771918840144272772179626836644071467620197661223411284409422997602254752373961804458476197049535074304443067890989026775973580097930670082358510004153024159909406172467167144730936882784249418432307724789307073247431112343281362340274662619867011922062456549117241271853702509652599626318040898212934756612839868448349197928667487628018394976241971624297004300928997199050902975364361056440538499037695731277038157021792325510667247352790959381505075800348067390196370010416568922141392254630923076781466184715991874177870900584003635225652389914010555013404019528087931985401539321174106378181097864322203428595374005624898098973351293484310768907252116465047073707018876754957765395257133515743811179200054674398491999576296253859361797915301014632030334074096877564662622016021829289304056783322002690888574798894584625481353689047135141382328860638533937722693678916980705468532847909521864004674835120390217231117880602657784726991140764893862669340540804379741447310591847464960124547295237287625724637723814400376449459022460430079256119216065186037333214470335820515283426699736971849755474384247402887395110269751210432083132543174742988604480038470900496119670471121010875917784508098624868905967646949979030998620307891418348186532565176506889988697600105666022566945243560331686896057596792197458586372716150140614025207298373008245725175280236860249205821453379058170157768065305642414284996506728765988452729407055825182864272757469714962312255534688318742969771471761995836171428595681676722028574145245010574034148088286683112129861537904181150959613456282910667062789016735736276320870114571677865837482361047726505124977341176994017784512198728329384954966606930202953370721971052206763735540749068536871253483793302078614546134981182081959895759403741502779811934127088467184793935436576421663660008549826208108735144731190219035640941976309022074100941414686944485396254859656624303793849711588567105587293578822780246810929226058497136770135269142979023045188494341659356278331335660721417849239617603717684920070309009953505281460562499285723362733728248799348489915770941265561275676825546089934262839544232247752948353503118484348932708338033014801493022554306956033931050987268590115746091259399675600625973638436443779493371660741163759639623798094967180105618918795472804001866889799841930841264287346527216364406526749102103808106875710126077931197603536737690064818385804349247686972883131026831998021410675164324043423887783292448837422871606319509551619552823579836640818396368926047037949503822808468862521526780278577519994887301205464024783181382061324340687989766135676586681318823752121721877657822106633934611241470457111864696528677518830269679734250478399706108085776050023387835488572410724177722164411869587204570089592599330497893196610951452787239351805491794359661756628670018855155675779315820442272654399455921446102464647997472854498684163571035267341495747913114247881720381178194709444218451079508607482075265076555171327764022045187844040867506813020776915759543900701530427223520850731269947723584569995306934675638011754055175939896451563784880796719613335986736466346295314370456476912220105592338058720978555127987578467317749982638016368384235613222875738717556537635327220315465448651890825847441847645837781335142285229691743353881572737116407003524937859268508267376092393772211048025486705527556555198907727789345012185644503019317664550357968852088502759370697772352518387284759709113471599248212339606797788803792624093802276635446125962934206913719056128947180514586630789090898778598226708216856407462662735970979566085045268204012357767637323924444258773351693420405022546246011072850267176289482802435812243159957013356839422481410783880743576531613012224448815023976523488905178636509804449989237214744274766872798348804836674213927394959859960526044158659164942513983980361466294387897093497667688521599406977708638499975643023869195627746306765646272175377259362020300278370451413650306013251392390178127161512900718380890036840173775606678692105955055382183337719688697327728320826988652154762172694317081893885935675053830222574485285663836561547274021018156483861849856854313097625049040841597280636127072500712511987644440299316848812186169410773061517911677345669969730397245930757782812905345187407606367170649446900967804232759620743444593739824417325609324435190469454753646064744683873701545192382334479818468215172695192243653383976178406650116935054114669298520937301680719429527957676877787657807235452849180298364965305777925003149025289469737615784047646473268077072104233247997207623442409386231982403737551939108959635026837763888777694537054995466041528980973613397067750463075269818900807128782731577021147521918952854169275070803639498851162763989910346762826185982206439922113651815723754451419526729845062199368405620600297247202356664694805892679206439565586470183519005426227558874964745427081956854136553119864185946439907557542084733746313976656556205366734152673811753723394792708430542147859929958695141646808746834318707699231047987946282755297720087250393622919290756879332174681002708640031572549601107023448894932818669724490666410111717478778931797720976474761155857323924329046855066605917427908031153871783903924216042572332464926685634140679024952846850557196886799690227695247090383581194203234840428228888265899214387295476207541852560419159338464901599147965117240654169595110034608782721788931754670446226897950569339181385993688105304674221644309640802723062094001495888577123194635595140403625531686020924559959828541045202538482558098384395210780477956095847147654014135141337472789358461117156449283997994520491408597317845269872599489372195708533931100359618809022617918799014173076075314214760655045510889312250843777489300272888074247959233899243483433083784721061606457581228077593950670483240007815698496629164721325539282783619804568244403913656256393981126518923906788741485356847553428532368787639550438951687176440773725019855169785737905458548845781746653129582425715868103384794780770037033991502201001081240423469523894779353791050450047336381964424914545349345763294662842809733283234123193225118373959416764997437061603873900328581572495691277197044523227248465833398021873623894003210754611858446894776388677152767999518643253752395895455369422987853348556034305152663143645876356069227119107832939302671912841672593211672816896987705660098234844305574110026057047806764026203026140851370689114686552284204136530444238425475694929838885996086841592752656696778646394819333218747439666227431884454596604810968921496104260303139781107759124125706936319659455874981323327745035516631191188968366053865981448478948551524729586180294232364159797990475023979401920178868547028270959796016181960655440132511820233369693912591481218044986913876431425278875598607704347974008003989490286433342536245224019404693526828686259648201984740007174219723500745029853834411533279664944005040386587729827353159701108954296937610077407844455850184960900900002374497254445758461376759312690643289912792812221754244619280545839792099118479297379152168187314705343465008210917338803460416435312527412225313573470396853581723917441861524557977214727660712823907490222653776137488664226417435950908154407266351698275564894465215451929952302931186275355780435181350787227363587961552597639252855339237185401114126136783654592638072048134377461498244202542510719447822334815471417619908151749612164462412361901097357595673746302082645044892989520996962808046091423228349292364728751666128654422472602300140442821348223588187364332104640340582607241740282051227670485401575894415803607667045353436442217257435851981657630094623201353619042258437998859812325287329736276888158944702303411085535883049343610007715565722322912911571316766419042053686087310229947393229776481221075640723812053675425043367453865182859805940510559959971209198785323654462310886345241113419758131578371262538713177087929265869059220296040832182840615353247487049350571924970185385162874882461660931302920617671634575643466495316962006591714329087573855390312302111473408810142129882822530772094021930890555836321469424819532835261779628814597086307591397487795913333234425317800081719986992285431328291154414504677510689443413669906114652382714978017122350481476202956576444247019078881465849620344400630997151671986260338417196774649179433270172140759209219392165236414445594639767782110941132302604538887008598684737440190674486696867959731480432785694584985703988121999416587659129901318815770327511296689642875765600694541827153509956226360736723391187824692863266038756050850967986330200481945790220488744854500712053168331284109241759773417783451132068768743176602257247633030278988180968582897424362803847745214820106643867528759188667834189278667410666016891613431643382777056029900114510905582136514687674375090537617510910374619762423510459172526385131487895550965582150779530636949224101333056054731098514905263293955517328917447493245943124697962332052988001785945356915923763200490564654311634868841892404092075139025038670526358916486230745710898553053365825678362121628063957250972460273926396040523167381379146425024604239597578301829288427445271246496974547080091299443314648337621566465344743103098803418680209411065005542810436020595615357711354211050478868157212562642102614931721432214577439891804818893027058049415074087627097889190118965916860830962813604057997312743564234217556686750872920880194010448551704159007333182499504827904995149983016165934644546850136092459340184724890368040855897042453127183949263274436010536183560052620439132246606076564249084592412031085843104946959455167941628728273478546075227146729351219769296497056483720364428736283369450102339966616789762133914434685592119146430372441724636971815446993435797086449604217989900196401346757566150238761939515655266705322897210286023098324348849527151569488234304959459110913117236402051153316587322912492990854199232422844170605987989887149431280864962168831564937188054319433989061505897439080759164587638757059691975883698330977444347275487379432503080463751440345622461629753108166974574363985108705607477233920630044657443630605579697262875171579452694039353365175168505802199331780681739107477166561239098724119655747674390706412498989890688275154967674920472696028783061211817265214296517091899244178574391380811522051802439811075510021672198926657972426777541475651758831526123531437887368615334332681890073769123059816938397131221885302587864000867903659841630202475343073585245557334157674865100134497287485608508598027408995581411370967669911364455583604978551136208615408484538450042259890159611879952585357037661596414738179286939505345568039021659012965935351702519646449387097983550194389616234075736931839468821783822456450811925870805212042316402165229422552807404575246155887117179260454517113125244613612401119455982009632275191181377306893194956265479053445236266401154598734437948832124566906034680255258727194950364681046347092035441878906019343791558801413028958286714008141110372930404623230410993654792068039878694438892339499969813093930546653209158384706643748369120476236307637786953009744724457595189142321828694920524489839331571536068845556139413050793790401673019019015384498380016150227687710323105385031735802111635469701809808681394535809801686539292050950450172860396345152476324473424022698185386886732487398154752543501807617379303883815023534406151654762158998663251391190184740687296658652696325929372854082714047108140105038769795143357986190465274734784842055747598379766827521957863395588473459531036288410616291399378489574247387450270098699924478665507606113159963121611689382197328340488117991047372461318260827241918528268752462862438878790893890940068285566522292235228427207621988952198426005798069064304416917901940346483796666176495396478781635199022348386734851581304188051840695544249388394927234043509167382612177520756462214973847127820122012252620216082567305875312854021455947763996556789416137667550014943076773376232888233095327463451830254582399424684396949918842386038299809283674607773252212478253678290076505226436832454889374581588076539042039304677933911552454761576782639884119846086533292071260046897804299431357502611368616944684595461474206300213299497696516091749855199328478423183111849749780569499998339033519837840157274385817272654495675450737344877674685090840305219815955749940917400031943191490185487626083216319421120170683642774419100736362244449356987213653332397793335434098290673854049454416367697594466759168977404593401823316675712553834954766252102111509812041323492213319982296870998388606375992973217431069613586246318189917226905801463011697797155278987562336865765587068331146844635442790439770691192953592810435424286106290976079533378172034710082157361893623740424068254422282513179788793785785928831031809678831502487697654029241369951927170133988540645694521229906387284348593243321880137896416090252046031985551824969680833219477787464388621096721202506295584494076110336063814683501738604758222863432874835700932490606059240836049165037634489377155900802877529077924336520433065465508936975313153461821636990671581080093984541463820706895253960083352371933074939755874574364589788308479982688961366183419771214109902003255798211206277410331357363360098022619356132130390045011686435030173138201474552075590581806741245583228007765173917392746787065335920944037533686187676151219635733730603438461647539957380055676576997635395201077627014392214887581998641019700181240170759747267264954095933955624350187261370514144398747785922927538914067832362590240962465232420844782601520242409625916298092739579474707091488037143416916452726775099563893436046251074206302967722095120759680164182473340715818456633081316849228681192187888391450699073397097513067934895880508759739402934975366420827330093377128195338516534266243364001106515524883685440854364565475543410261770664854756762824586010980213208627122581450956257944646471999815493968449759203314684900117250714864128375642275818469243979805529709955845591806096344260067523255806046252951931895185986592092228496955051336847504681051222526141155017227068710762782594623641822243455642388027917318520170427256992074104677576801045814868049286919308573726137960329774591134886913531046923793990649714000261675485060586884899300926114245269524424208137229512687042140969468683427192850307039210232297698447726641704295504048391971987651092644513059808969727043511247534035938080199826696465636627893047115491347846295056281790493408849448095399688141254169119343938495704526163014419650915038537333111592244642404018675000935908990088679445807322997620436417121805276603413619325284392417382894844744816936746396840491455833467615151891303297310500331730370183277316494157176606380007535618925831884838590389701364012817586164092378585571041342192555824704224680454741767682356888592888928882326051266892462835787762993025789802322917215485518623434774276701026218758963388348224081315945851789946067527203172291340308906058393497553660792681164045341204529163289216471251731440835604456121752589000305500255711218675408159747941083140906024249097592352764722355906937709177049792835877777966038777797158637187091680517475740123487441668342343317351381015607675878766476820921779506596781213324484770967804359898120329995510692320018541546107675458631144583299060748628541641687636476825190684531349684576434111565082584091362229908066200776162692926890625573999711343971671619263143566279188131565846223624640091235156590937659877666871311790945664800834526736160088527450245926692028567149392131082501612720685780923685690587099722048147884070583972644360573627193064748943135371966690651582312098429315529716644530569407189723017571116502251136981986792257532040965045987621457259244575492216185723272931574863456932236101505816027196305855145777899981170355182165544733098325584198563420353464253283212650834928291121103134272419491527695281088963756759658186305042904670784518086333760999942490685505299870281012164815738078314972423244008749182921851066166738980679987862690790735305540009861484969971971994710538193607954313290088866643803711041497521428430464692132237617867935198307347427091211678573275098015404274196570302548605338504319885095676651855043729076306463849269662810377296642606629837244445149557947092522233403012749234762407938950808433910954525844716819087608067081936864042164162814565923878392631086251913050202273852852151175824619912256134993132670403932934265939367220896253051231459566096501939376697806385318524981719359296005839253315845241125585481847510560950431200892018477367216289796352462990325655728138795076681508209733161622579239989583472586468141103756317608912219002063362410569945522165954454438830663735181600447633052535608778539336231341142560940269228080173346141078240905947951425962845258003973292390632951610074779585964423595899865834270812183591391274966712911292407941635991478637927751392823432739231054381522315462230238942699374927381428510834208281203600377663986069950908356843057056184816298260336546527471841190010013970495271293770556764815192242563251722638025427921399382155948774082281874425963420460098375595384680010372189404065146332460222094622805516619274664040247498606019749271615460027754337560215764553675828099344968963310164907124480357596926041300052927348389655849472158469768067308597668754026145706734007696708864912658350764163185681823506232211505659089707064381645686958847244136575674924687430198765281676201384455734262858900497480686181368554618143052612260435680658378381960146286933362643144205569173908049881061308609513057717540597966578106768204858188325383894151005520498591685054005630578712932838460716735369727628809480573833364029994669503474274379483235035500517008626959188195588484736429908719169330646537734982770760044079393495453334956866873269525010003339733802202299436406870303813113571607396342764852613651018598978845778469806444923938418138860067025868705858684214394698998123836153193757129064181808041613753745160827436128022014392346075186804129392455517817506682832422068990591656713662588841467465819094096716974352835205070446808311248872541288032540101965465369008965604877145831453384423078182128470591290762789642860825597663368797850501570796099254016466858270610137477231151007485933063143048270354438613015504629162174396938940484529475786002624553275228273341963428226706535205905553703132873679165546288236082905911519088941202952953035246075996322330834668814129661705610529043939808701796799546751170931558843334572444685498036783146545111481600061475902317021927819675893067643188260589004222504020483843824615877418762485716494809894282174706666928808305822997786429898636010035002533275001967168118222894052139633703871581482140858019562721202558140329981663318505865613254511979046313965093573128526639218301161334122247349804898168879034791205065652000040320312430805803018769217264644853076710031706560407751364659316307034511345877142145005252646435432429250128293433557537314297415338543813249974832532952350819263873694517154568375347857591189673706108363967717721700745128804911694162768533336106935449411856067192104756085652652334687747820539658805768289586256265438669929596608316987589453025182499519621164488190919486476032352698088692998305110800704250891771118052348553044486796686618919641917570219295283028394694470492851042909664931502051476854081243425317522800116575649602197000793345867548531361846965203466110567542819605968051812820226771507196432885979862412739093387676235929402630112843642570873707026716014937978109142647013647255583597307357876126737773479417542149043551480722153677577149299794571073928429740415385722381353871590730442973797710254547276649889296174707546738173712910638055228028348903549833084398482344487860703349537752573896046916703883158026644702311732526583894059845201978060138604128079591553042804168906296743441944236582956030690735044526607371900295914900874879656663139748983242195701018588328038021228308768399425380841144332799694966942869222963402431005453771884471330242332691640024918341623363415942346569571325370495388184755789959314042179586475971680501772426407589381482580765948438208798215601547315555293559353186200534612710532286103581793783495954366356795687667669152069196403518872448755908491023216561720149150588640859584216529537056229056690274503349419709830131302514638286167615684609481030385054531281308321656032925826552121000446396280437037998467513949631786180692884767226196677928822717484511783273090095785199507947794103157469353871788689357794464242960625684436655393966948246811044810739634813144464189093296238624304617571860795166131463777992866798952064708971428765020692423561868770540898559269512122890854549329618491213528418238237000860374303298576560833488405506751640305865637836349905520469036062348181123320540886325209440130248288930088686525016108909988885770057339426682647866201898631198891396178153591930694646213346024536742682263612026541782844221163685375994835396332969141506668713803779899777889502162687931267089624264179909986906215458169389222043174776725137123616884547786441480551863308500568349257439413850118266967117558053784187504701678839147174941602879673070943337706902281349734426426593693177112852703846651158086877730005688449866396760498014530712580329127323658175801101790764261014993838217915729087961314458340398094435414451486755495693378971232775267743509039049157359804502979567856722529679427069604548892932567511380109387266040864090311818029437520055916140960771930668236686138212073398185103680802554363784426510534758277990771372438524775077632046473265152994275756753225454353697064400485117530191890494130890134133393336315249671787675107637800801679760186139716270369631966324521866417199637793063489435902938958693477084674493097714395024153491054523475808064938734969446960457938303428684157841304673617133435365742872027077746333981360370551573376271102730233365228045571452338418545348721455151561636722000451132890846489396781769847959364649092743533445749403222729922759427801883315910541452355171421690662287389365174515445549713143825773054296836932778792811492725147554522682508531995217065626508242683077038214809963684265082759379907061270717340062246600716256119272636246695103705308762868449745661497183825452132948668656562521422565401341613223537128441790975288973945237913328378811212137183604713821625182708497434820170865804371648756802577539299020590010318284265275758253407883566778254536862644757522338713886847970980483832816398032387773506153742114276183809680702063737792978873560723322992643997325039708904470475531471060211754570137695252390300585310948838364406665225317784420734663736133852818024785186540724646652294677919224028342367011770301309506848268588778708451770136479348850049197645822296739790439975072393288826660495026445781650986969860764788285096392647392968136806791244029220373293779722565118663277796396904061113077550495120555262035300327732207596601329100435272360867175931820235500828473910111367870463543228506120700969504838341673418541674473150660749136189026195147724700941297699637051969376687513640122464363364067434828393095178160451674236002920806250969115583812095898973607376255037406716659668355340820938790564428233778566905810690276230108426905500480354299268197686393616416515232723861602397881662232240557635499039001848946474490902023572399423097063710872263300826035780596101279217808654739206409435019644901794536254769823378531021196661766061681494927567938313112490367385158005466223982529562816013101811599667971660202644577733334452753369074811563736932221770738262401405156021492707663529129119389003794233827499895987729639078923822452357459057308851433199473058474763239405143584170965301091633898291185398366301481247631768901349027409570347243531845871739847368801761239385543629465471393239734793101681568806821394069260308036331243052911725662147016389871841848870436338952535141787510380933565890253778963156240032868155236629376234213627053019472035640626365796766741414463854965082910876621960968312533313159131138760657109802604725547702558005035806935909124248374454323725355043866912860450565610630147733019149793451695061530062634018493185968050235724138877765583724551289300792977477107033107934428367148574191560486493694900877401677930784196551019114635345711512613945364782863459842518505360539705839981979295922602187531150020458069389953775950810044184191411704120899598065735220341372598137671281213441030572360709534214056498197569785070049042380641495296743310016513756770013362087825846052290237647397411875343076137799479397407683554037258273501873081865449356211490164751045025412870153493235209517210583167818590681965845099588443720655687779569903162705173985415792583178159521631511831941502101712519515230009294205542546505044428692496976647483470155716574671162074758156559725145310398772911422005673625032171582293217710587887947598092107327752224681415607277249827181672798604633259311644348165780523609710848627575936874384643686109542728507388060198791177898087093278035925967539946887611438795276037953580106266799526135413254588937031576505528016260590383996825873043305448132333089277703771267059401456650953275875619634469980079637410450246698390408375362504212200668270309480464651358421610198172513759850369250482434612796902692732502156282950607037556416001021674144312331614621340721428569543556525302114081329723331258399963340805971568337092395627681541095407423186126684617850074825813540399910388559312706640330975329987426523228356838631145139151809811873352870810823502715103454968052616714239194346270657379148944712795930842970380473226791699176621323519311261577634454350306596619458179359683284861800451620871652017183156771417958407767105538264040558342335028608417543009662446964593904034209540328566485707032754047221457542692024305417135357856583098246599885284144356793376106114827519868517675384241102873155158282525846201550459419809401398418304236778466353069644494610547666902055072385867953737255494816218191929001855267615467896433838743622623857252127606054051446244783234953488252993808160196272920189886134043543608973012240731069122697385106116497489255414595185928729824191170017523269677132048514643531962009630407129154701680968455035912344231785834936023907837480466746176994363702685215732916249555935823816641898466725469482404767821257110555106362238246669061037423270684236342919930937282380923324980435794770140419751336557797271689272161795811152625166262856216170922312045784031100464672354653062226497639033208874620219731725620287280370883389904300557369520579625657378073692776977773544335183299444326710752319661854104107282765402083141762689497042226131399464390070871983392326104589163226243505257353235676445000854390373145889754455243882884162713608128200329587954272974747061045259910086320475359364758264979828051053753812322621287828121965121077833487204959461030579749329386367556758020738143575324907816707738714141185767379655400012268738760884611827514436224740557207761719531406086152139174399809479112946745100028155120339250189115302864028548243543114847389320361702702375286857566093773315403171959835567674100525860598682784523873853905484219269959575547775910301369790494083385831427178557966369956001668501357837618881408227107645783247151715240593869668296932960173777201358803776153559742969408012732231583177839986404601315748201116922719881884392297413705703114341313936394620707175258450216440785792146611740345494939434058117003073321839264494772308751314111253427212975724615330194327843075650416460749806603295987488407386032527474702454681304990921501227321725470983323195292275293592620619319932518424215873199000265163626463135660288644663940976156714021977458285387371073731907161965986168066583973005240108538371623480637847027415264891552011597808467252774755175546102314611024164524535251382130949148026996537839456571055135476911672477248103952084801546772376606039941544039653369948589351236395069392353417978560920564240963718188488300716294924498297813039811273051384257294398489904631597469799146375472345934520226734063866976898129707920200361689567430566999760450556047567101966684108801798193098607267651888344959258767998693031065334317546847225669754649787544954127297358075595575100231836417516464913116737465248912856795479906597944549743366590784492455536360653630721548731074876573760601382827189842942589802167258789405703413719436967358486846854672682329073005276788713314926616521327034515456243108515553513973924992877492810147795165650131603499915287340803755618192360747696269709018726986933651161204684404387341649180158526296726945713730755290853513298047060058037782025051137136808598247078609780948764715682801277495595673740906925665313508225774171358809706018178682076042468039856946326108036360975259523988763955334908784568691992492155705213169662068748656611373757828345126263674906810060178081609536110518472389577207698662518773484574327925167648069601657521375183704338290982310506965162523428165921593349794642525288929491460529427974663216357689777578480210158307877903276634709726015966708848858839465392870942015688778351635063071188076729510282897651779688393408281359810220560235456327144929001297362771003690113596410392043929371943773786595390848947061518004197529438994020609710703081849110318107539386238563647935649144630120614277331571477830487989934886902964535515111445736139869385375693592411952129260335376624978908255319803293864901800191389472783323025304563469465633578139096172591071117886460589812916665218721922615585033545939672789174374912418465497019608005178912791549646804018716771697941173072720166559357455070475360202712494541620654518155506156831868192957647858410513106000859394084816583074553808633353647803637339703691469101047310138445052984929840269077306905360846547588018251990529287462209941906265057214843901275768056578203522506698109149652838873203640540371865116595722942664530760307000203651991667837294888681220242292409283797977519142567689081551019752321712968457963923349147410030227459676855819743734951059570679404371241464396632605742373498911058156635654624609273370377161420713644300286831583659597479738518346956747551534969435094937860583122856345669486335380790470068437083791653313177297170250885534435140790873854690602655392143949166110208832905953134288181815810303007581763754662843823942065143433570319176736729853917736847504975459341534675148816108687089811365359248651485140645794053047178695894316569720818683648867432998791156510518349773259741381072208369596125542727010945144530289596092619846000286790152098648971606889666155477899364562224400023057549383166476090105934332303835762915506608889815224186321914506923681124187624110671007706444157077288266429043903446782969681275363650696409313120634487911624624769360183169443614589287330498007988944681514066972289525432862938344775769475788513095945238075206107387933674846848427343131617514437349071689224965992509215743833400176203589779497874501104996475318603437389605911021382771093126825198722475639202977796857478900317443977202080563907234862915631447628100816989291274333322666976343759453037371293723395821562525603582156152476714883766381721900146160476643112332361446279762128668189358930243774919055086823731177415878376815006288986754714856885471417010614684642693360510011716170986387902980098845591542993169031529165809273785746730989824657396235187069743889261014591913892928808262858102553145832707610047756511148207207545440198819075157843036681110331361736362125236579912625762709874185437373134631365962680368511014841403996705513534466654381241059455241480147807256397625884022574132962461791861222573417855553658877998610935349109649549195667672022512997077746970299716131822585630104119685519551138542400151593262531814715540749907197744187338601163956486971538662236007929947429089128102638813862053064983169244543983647693861685598938307672885763501170100052475575700556799434530779015288966332136361904299238885645611229000205734635065267375368624072682767316171870941648985228497617233257247432381958499984143641333192631806771381427920230396167901718341280079431700796332406289833953546964813103083528394991989547187822051505403590306895727901862936081376214773789894279983008756079073377237298063508830310648411064253023896145586516864236162442516505511565660816196183228533294428350264946604760139717754093941726051198414350559243141580426079053153023754164844416980577828682114320977718258048494428642054357684555425246340851269949646728431737955654080041203290132574169803295681617672752114121692064077100522519251539798313709197460856646840332522510531687852208734748296687129269046137963073456141393081352150684342002267542813742473385393792605722224164560821724412612394059100679632266656245434163210736532094539200234054973781819810432223252955349047105086176211056167723365864894388154884364299259653756302218022717596974806165720878422704196797340882356987686920536230800091631101154489292152978058707807622268286160545045397816192451378699931455754427910802568153452044034611261166473047891834595312850685021029823422632173893501725258353189728256295984736752494744840988314927310697994388192090099503507287188766162967499803522444980550950535128679087494268844108847137947064800212205732576865700407431003535176002328271535916477049803670815801126931107222664013039763366858596718091337646807403059635337565491610896949708824200921930182837753323933958606817909492396702910441005379059338825843638589327224626694580558480647449382334853466225043571694747633844299975138751766203039019511387511215243003975171474056364183154900748479639502260221543107896102326599015508968285947920717421852501665586784613354345121855041454931011487506141639742660411247982582227238244350272027207495561221954651549319346560817678269401099240488755967737189662937299374210003292454463302811875901561809343036085121144773345201552293492318299141636550625670773804487440069020420442994370711137620297621665445346123362194319166463658635478631892593781084866554074724269258965296322448147050961784360354217008336034148241879963522580427494393055927356653111483038930369783806613167584851622053869041530617622648423356254842803586837371525393878419323553822933956444373436111902461899147009903028821514230730023098116724724352227402736531975634813025161421641702336114814940318716408100806530588610183553934635850099447088211755933548883663812472130893391621094551139741803870291999448553478206415755265552808561532813931326929667669937171660224014624750393316829395919633513077033079753585596708164692953748966862117815298857522206849511803315191749817574273376131752691337519353247619752125073596734341342133207230205301808921193404737898533175747734992152917255392775920719784697283625093418771741236501332907190993916930194855308440389164543545651891825547287473590800937672130907131073229698837413536932050167138285206014450046800850503549231779081129302249442259181965537441696803393654715298962053233179930928380494832061061568976839812252434458675834034198120418315308091990758778917622869403084167955375121651192002460481835270225754920605387268180710681764610894746930016663241712703242139362973005407037453040923153417462252692855429816840283303560761413592848474487463814106542178288088126693213263918159381669410534953651042946010237465062525759021232659102404529150605161244159829642967478458301091585452897410384967119960967355864722714612975592995475211534410151788377310522354411935572601100234424864569079582528620961402739786091675603292462566089013074739140135679108449415820537487954121038466275808671438999839159187868531296865086159245043341627127785895719300430657661840485323415912653023580596622301967215469968635349821318518084498746691284941911188438827124302991646070382379312918991427784206709232233688088871765814014516229424467658017029670004418875738210684684911830281821599661732611685654373957281286921970993098682934105475057062586922545529654300161435232300163606778717693189999260912989589839066654326866402418878798205156969253958455598143637669739029850666563847042513188880798161726263554171878343959379672521726531255607569996826531457067330504900789953448557984353818557491362577060792876387289290466287268269535543983397413440353545721496174824999574768168616188797967788722313773408219308386849421948265563072065116015811123499125469219688473633556244185399889338318428581190606211115355893325444051774764824990827579514246459699639946444552033488483993733967470415248177199675490903150695361754348806439743724585909640957919904683647266994027046233574001441648553626152319164638557955553990580210810542287693505377076579477959539751265252064967017859912535696682211374089111701643273418888976414978278587018480563954846247922476434767126121284550001948188193079065961185423021063752134022623314250107724059740233097184681724822704520271478374166717869442603640470068121410988855543145747647269774620409332081209981884418251808916688249463391951482408461112210351242726971961970692614445209365363511785340542818237090498429030456420756527689905300767316861729273179158904247418082937808948630013218365461018377559375288502002401104367682426768359463886669473659938600322034467783345836039376151358666901325680658557072304653653611633753681044758499943917124967373853540084081347621251536643642852376751907179395597444447566558898270343397737748593651493037707028991038282066002685804167959937096250770908689317119462526009838846925372965664776185047327932436386271883837765904560034449590916503001105082672125158929179149924620473231705289356320986034937281767414813067546094977983678926314155329537820571761937581057563822633060458547741168933922892483345082033253024486436682235368156380481639933937184537971180499887821547426887133275030966119576815065731113235215055404389248110150968982838352263766144365779908340489283119297675352063360541183186957211936533071263557496556304741768634401834426867080851375506090943113837214756464692480658695256779156589659498351162425947192629363990732741731580317095230117478104271561775707456538956458618020360726482159955302010088668657847027160165155621849250006979542244741794881678127801380300825896723343082755236235332385663194302989306957947324750881966592288510923368089158698753148475533288871360932432796257355894046061391415852395111204105879966704041206359029817241878536768030391714518424888455312419175893420243632351703409664035365069496365656559235303092083881263298928859058298500671544098113991307345325746602037833681194930979074397228230671674529128442796403819215263658697960461406169958124265930776358674616909006835855336383280689758822840679783010296298473776474783076317083626347294083534606194983045259712319554027655583317871836509966919478108587014973398621475558178191322443545985715191593087905333156752315915789395144687073007527366197736531519172634434304134130983069252527559326548574468851999143188619521811210916216169644711963133291921291899077664450793748102070148386680201579259845272661185750017328177977781004336720653524523697587912556494567093178087021730067902499820774673141930879128348457133365082819526543752850975038209153074588327453433760039559310670023962801673273922865951892398358458203399909012417691859016915518054103353015660065999425841690233298929738968724849294634630920166592375749876683880252723535787405166208191542239371591293127192553038791141911648588298144805153122350664406887366267895199016366118464810655039164699683757100565714164317155806143733264853744797356409935258069743829592737001214684850466605598473028685053742951431024141203351407763522180708160560171163511713800619833685769814455790927634563984087104781194191848322195818930465913543795683738150831364131791460735317448444049225921578286416885745531517093186899545428707579500723220519640339734256466291112970411942744119534018176741226021052202353693537601957254917614102388820131965524175628839734455410271175683311453261169052460119344415168918728534577746836300950525558676041514757446126338375513781498202181278955892506622702000769841961052366456918821258925238643417487939735439889727165657077769332359298283511285623579379335074862491120471943527865978742768685025565754529491795647333896215802620917159315226495289285401582686901907454367317751250694734564914761045741565866485629438888066419704810797857273251766662943858772835418608954893993958149199180411742912369675679939774707124337551051830769344130097861354839297964627110385906133759408984673970603613134723457518694704496447236622392758076704480215396424836399331876971985209721041784912908577348133498411062087213768073971553680213763765171786440646689702805572280085536391118276425292820280431230607094131645209305405048248315903968454513323103654758866902508075044250977145380410625102578524470152967074268045779248530783388902976402099800107531960314361602812508774091920211394581992889618651159781192790119693790434032725054699876856124087729607148561959150694385367411487231980264783634074227472129115503582647552028404139200499074981897700670359954380386419194710412154042625568429114995791244130571023563244618131783809709020234785655797756414191167839606930048163574009902238787152211034742765761141794737642067801965655398885969164868576481667483607709832739264966345171932265024309760759110655939153494353867530278385549796561918923192941715758369020409621989747302078604098562362170595219098898523188244212726062187145684040530333107969207937944838656450904189734084771740996127147652936546086814531564113894069305023367768006854424379693485964315673864173721326188972193615726667282320729020916654880744428262212456808737970632707377893578996303152548758202815427343225810347831073521713494837622402957846195205352175093136311698222929693500990605793927265750066188081373304523504513215982998127854391841536090710504821943583707273352211203983330642881574417876258338079326921583966571895998352322689383246638156000001816460014934639259842146865173724775396961177740684039696218331773742784044659776797541088003698597401101927051149187103079632492604938829918137208694093047590714850985416001320770807894232445535292651148822081580212956618258882772429870166048745971103867359577169895776382233760830483023205333253651328304073649097189928385492927500980240679313612545571768138566896780579781777640296439387438971355489558780542826304370833927839555991699172988740893431728465615478270993291271646569517325719467245089498394937850808048212778470383483486048650612904621853072176298731159085653443063473278447546295146227386263888008198194724609371122989623532537372542260349349638469998949823352297062625838711637236006381377039758516959304244029285336720347511284724541037849618064549227928974661134983546848345925444298148268780585832697822279572353092249204692399271763778487206403542280970485763850397850818352441384193193065454830729393876390565907370941172156327235166516915274400169116940959576381490195022968156385954845238828458003129901812607319385595090567938039600186742278845830295024344442206092829680246115098456119414238030382744150941110412756156454812283473452416694229223886792565486990939571276316284722818323686885306646607359948551389087229425368859556768165608946488337763442648173693991081958713605305784236400469137056246064008630358116459275091481796552284616576871997872727691998297014042641914862968110347192232438674419853169175547008386416025443671056936000271398157415147909500541681267691899477373808990357516122973684824318470015846395923300582157200879222723604501946061761406205525755142795129922400700582769971861072397901114180065251917872554898784083908279357729745083023066157949774979717720506676053931978314659490711800500366526012545747527401281176871310545930715873932315388807144409457723592860503117782998845303894929156116201579393887253100842929900235300676663694747246263533118922107134944316416813892226110449646082701061864552912942563631993658723868166902640660770702934971493415937398957254838907768173683745025630111172342858742717913294410081108437674683296768517658316294001726428530915396692969056434558474527807452085076964160030449781590605206095137287892987221185250821930814393148320505690316453427450436206661147766230117846515777721779396471708574022789262925118671888374787847308400635141167925311783637265814457123836032722988525103259214673221463547304059193797233256281478799091939052948171074575187740821822608965515703697086602755392080301638423234690344293405611026621685077171536896926615834987716944860864635373267861809764237460589390801267506373957972044489667539401261177192547453990868128944638257935365485012859874888319280340739963493028791156268639031270324744532525836274667067863165689524185195325754936060463679632051764666342379955755600150696837334513337671503843024027348688124364351287536251947632681005082409191589642062794296288883790598806103786437759417645409759360894373983310837675663721101884789987483679188314500030410068366553647925997755138250179833587568333642145926295542506786085223788687344864717154767866344782008781602138247404721733981409859729421457163515665402490424765311982956697279462280987757118725158364525471496108212366327918998653995757314780998587273177613809284024883264944826624625854598983748494672654583837168329139138999895965907858997586400721633285203359685420480015049502241702056471099500688085575313481333465159564364296832880598383383734263411450232407976950884107611411244138454805771411971428984853483966773985304270007481262327847611358495661200837136436636312845695677383097223504698399932115245451903668589694574046318087964557244504533497737892750089228397870642119474278514015472295322288654381255596074660322061133858712306246653259031193336559802317951361014947974852716955363120457843195205319972753640144356967504624456062528895344807162429546851425093630521136236657380991540722857958698131164277462973050612029716548451123031716799309121331852132835550990808034784742028008528662884665684536512283645653123981993985916415869642472661739489669287793152126235267436960329803671230684157424634501052781938881437648440983915961345890138836135226210438131110915850918501347000906980114550475720159722752182529775552056608309358375197468983222606147025091089704053059527653810272166933226965535697770717673798374166534109093493498686961751898861293775634164164479167886018688674582516974582364548843302292579114771511253746048004280364489400873724013146603198070011281671557697865766554689094552500316452004488478727937250166280959337741079414650612006737144005710905712042684025499908999292616588343897706504885183041845913226712321324886482567128134303683594005613891928085895614049488013165610199895475093440703722319932201904550716821992468465084233287734884038667612159715776612393964729459044820797383081998081095307104221624605649450624805675462465458640541606602923482187319896356011062791581331878242401019101141712891950378686551626418245964018633179441251467824942211104450439069784123223390813600513967363687313380980945503968502287326886639659712516568896203462891923829512273150401309109679119349247754310412979864169193395949921420504252810317974640063434465161153302757481572244836726607260006623090965423075267283797389394916558313185569043929764114857119389798271596655616773408471793370468183706181443089869991288792979344585310494482234189980919490096377602193979765664277805891741970994927858524872226470870514388797269453996535586287080241506575034169924647185600236576180212297139253467124928749890335518197314590526434839032313385287549308243144254868239863338470048944651778728025299079774985360745959321624574083492445956663018288334095723606405850262113663539577488405052203980978433696320229873559722173656279408504855675335267837775068614912403037429974467241181600701697192909866049846468754873085877511260738032829272094661515896920404656532625609743941719283635327980301591201044314497430220993191221600712990127391915106592221079058522545968758940548610915379065353259141298011607517673175219008338678735281882560072664943870853125380847628186366462812492801081113819918962849546310164965329475613935694449361301049186018333109495229359111459428187281347536050238625144143791476847436638802270900476070886540363749912050530503169557589198022073924507373951287878610521959679633695476655741394104154817807250994579006154885354139771181564764232135412258243171852364891453692832454019121159886799185827072730335105967822890034730180265383947469266575216014827054561112959486791528916698512959495493180690377106837958597097932059239420048624224996107747403322727821681908595518819941529788745561850724553590083500671469109576908755068040054675412853597179621064454330428981025750250739779001398590382008331498954862182923096239231741741863358681262615982246188175444199274844682157440263907771627370135343515098333076648818867861729692739557318409160330648719076768462236100060910824383751184735673536333439129128365511574468447319571990623431662130387347860927265935034255875016960608213870484499274498336402763008136201957206592460607859955281952395148085952749885888249321782910528908541815755480123285772501718392029723790930192830733419377416175099172804070875031016491039337857330316472942483911212934991879839970701317410538877878774459545633268381782983547330814566265373180436977377266934772991927372020389840453964546279040088602879202400868096863592079222898304077761166470823951393661256434753673395885382115128740029183153065860126282965533527399773098365943867064034673488787116136672585611414141145104565451117247889518689652682430174022146965425486607930976544934229334649290883799168916668911711824412378640298536664741630060318402416086232711144053316889975157169193529516330818015898116025245442122893784609795040548501118371711685070609598803125065064844263563742825225234646798581307266716813387668392266798016797384533620452417396782858005192686781851316276928638270607863475234859445528289413634163826880224069275309693711069687344546225782354851377543125125602316011738276883134302565473194821390747978184126430979448950670888220077609715630636647834892308397136001840176189340814696831523559095259213915442179893211053604007776716179072842239906720892037987929023845011630853067904728653806555734568478296268712485616013394939368192208294440772766326941940742180022412151975233006052831653009959951506202422326977134376639414778969972461969190267109292691137032895210320743860859895964003270863268084519737252364520721482400306803974738457897155396244055946913753868890136460803539081826412343460462401425900179302153768994377369869138186877024596720021149290742929099896877585771396943310586120278584115656052665459682859962021470876264818909165339387610672288453962023053740781478132510917317700563833313465639433513218744357313765488891417712329322029885827374179264624926543211426822270097672394889814884359060673754019965455871637825318691347811782928751841762595400534451151065735659907873757255666955025404974740643061245574748970594769682721476650718046944991942704911342565363518469225059619999236072627436893357979328163496425795201234376042224671920213346314708387981038349802212741003527944385533644464263512694386812475944952494926594556454010869868862124716408081446070187652957627871761135488929541295768816173511563854771429275123097630388619538222704469998793698450249196382100332309676800335060100828106428324276738555093198439738139003483349885426362165900067421359819702221249208973481890269133932369794779465681456391974409932993392199648243407544212778668232767528192608706947478026423370605452857109631728707536103069140805399068297541631791689380094421387526914859336685575479423868915638251706239473963464473986625877533601813399550629564743673278734462842625608033744404301272795589391729845633089470802258868632972810919107597217658397090470215562033362422840211824457173312163441399905925574836754742355925766170721183278704579333843940424662442291096274620656899137751363817214684768223159174543163717907139398384734467550443776291854916894055720421277841635652787070262913679568495099312832090061848705049346692426869931920502060262268056194787454615812522291232218549317133181650058711914006186260448917863792075772059344687663051326801633024094543453663994634995490780352013323824488519802285553522438301835531551313161904320878061494589921987151349365048610694416808535526790017093528087445199056300675322000638212440536684777191110402165588492257762105443124292756554324531600723890029622004054320431942271421779589801042889083237334166655706395721760623952002054453380653770504385365758514449770671812674462050046921539916372353305920798717016408161139827211795772808118397559282250880465014494463559147421162289819570278174850867634278453506546546773619545269380066133278046685696376683527293392401850802856177113409376258130174198026286707219174841435400584488535781964826471237414451776885350289714366379436303507551780145270052098966107572476774495338025237244304174558341467305827742878567723090388144111461906829283216245130862603545882709834583089745927362247632216314478477410088387242261487268796474476185064362523177311036941770256920741694433882669501768338587651023007924062696905676585172866269863508755615464333629889724283648356265616946508512579592318794837533824822093788233692297777586786148041908744591589523520443562936949987248580720648387650420095437008499092545829576274988741692862990633144120014167657023124010885358449024132670871427328375978741593027397088638668860506651852372165034850484520510030943051445717271514736252432985664073174778584966305280598607751879164590704828352595369941886515751151807236943361414018409268792999907189725973422151107801062961513334303358178490642609320039659274693541853619234126451790681037081424430140456698530071409499289652156040933602432678039718685084390727623145635032147610237272752272110610651908172086719974845276094136974674243838885601391870079323329818432219116102362313409194301814056212025513656376882086636975084882843168642125918021443179883981934389264473065472837722444091391027430652139058407584635926028671375350273054003154595422942582236536677243421970013437357884330295878192723712820339110493692859947481629421041566863205667963197438097905732799487103377637620442343488388158045736152753257302746881536126463739323202618392681163631832245741429059789598061291410317974134144043266521571543374208051738591209866022141625573378951447291824751553498320164173215813032042207001184355599950925241201041203354687525461399553020758258302967679509092773115464722124217177152452415091929374234899885984022552759006710548239367775716408003064726453173157931863147949871869145664819755638100043855742748784037556101008563693245145819156261396067020568264583560969628438108087559182464774908260438295937581239176207794107608445747947930253122041844204291763252187030223723868192215219782279352697739030964154955119864429410759255384477590836605039116763115809501560121131382630773927816635209702516338803308409625363635062357410539054103118236120468187881495226778732359980325141444374108834006646975524405139268717663090376169387074254455731918474500476209175854088258449322559381389775403411935637296139127337164753678075859728340608161662178847927516183184251886547601765430856973094967160250658882809524008669306419363409569358004940984128687102717515263863098569070743671471851932328397350609526968387776519168362111247086443633937437837918718719182016172524320560897089195052864193514703995204097579075586287146542166870181497831252613801359377260936057686026655707870817534380449788873806631290249922945173992366931724047833748055165742080371912992136931291410952590132965441723897391688046012517452445112765492088654866237283518770914945066926471823594297981471749446619196403558319207918894065934657600261042027150199543676911785059360770585778482930559786879150450380505728644726907531360552880752148695435529532115492185690323985060550074124066011945468362407645187791493027782070609568427974408623323771929250510009214856216496905700971636051981627836812142580870292402693149671518210254517073046335933093946027486774739230874683692522019485246635409118991810822350142313391374302800576668739259912683178086543585353586965162767094520707572391975540172273333806378815271090653046674908503692688593622998019681899513468454990413473602700479430826467479414300252204990398308964239707649707034993442409038999713905261750462687492146389682370832123782820894651888990826122736049333852254983893238867347045298780010296613796071132348148864325660005659505976165076779958293326122384795802741202749260527462332447444560071927433157749080912340993325046096367484374753583590268218685605353199338832498618847607771808750804261164092133373216045208629851823784947364035714596662365537930447047906673027778157269644875360333395903889478619015108811504015729000700616891203279566287469292554324177765182085013987688375917117277320664810335062977178341906351420192261740272221907916042478780083097397323194373571245560308527514371010918560172813704904151737073791010757331365821679371555719603205710550774724747188412831645495743417681240341030293327174399239457250562701424006248446965480758917213241067114401073306372789572777822561143102965832347601428801931431520890029098789125871705448576423423078237639157921146690951099203259768643106098648329719257205532311493406946351411385736871854098693802907491772274833512694704513294262988981775594491161024839975318016027380214680455847602485551204132251819314864846099220032097635420743580148807481860373698074822577708884652858964793088426710159627598616789319307336475968295087687793804895780577261315516044285977835272886364695543967684753253309084723838193831368071856087677409753403660294895827582238612650959784382146908292629356289252459986817858126221528715911563248390955595703717709912720669311162484927799275390502330191712447794059081293893428447034209284792423660918625410522983231965360775471044563240771600793853811326018141432833703082671358856590198436543448797498049553900460071757671573106883809961119794480114348232313987603403702225635750191940650573436926943858769910300689692052967060823058292318228580038744283986326107201631514379716003694752254730722909328594611551344292543214158189371046514948435916315007638855686444822050293045206281795319903359565291281188989454641395201904575392370969954673645628679351029785545553898783602083633935051183441589334226246529448990622394715497433140712389112732692698227403186648994297774741463653371786853797424692427629737192908072578716505843267084693841766550746179915405034564682312652977353207671096011903887528690242722452989314193027911956793367467600970013630975264953832831106644842778155778595162391551259058492196685676861099721962659463474154517514742449648195730104559593166201074117681027574900704868094973756171159488300694392329878318845171041087292907763866564108602745023806201568552498294231743798498816745325039454759681548989534366361495530293929066654376521185448923466159199067340541891417541627416167107751497534995116767756119106064157637984780938892772484754338675666208578344749712436093792991333192497477613243843599697253532624175194503379146173422408206753313126950271258807421287003906425147683577141561368903373120371787644494471227867773666671374362765287918228038196538015829169581874320050218984708646811175585201645218274609760014779105832055857815710170804818417938288474648357530940030585298648669096668452279695439548306748966828319506715970561367945456989508636823353750724900748393022846475435537036365710179600477771742850100114022294117695657187016686936331079137770991437078980811193952155090751752920850083866773581994466505526838508411405097334491861069338703963919243983652482755687363766940645375601381367033065402793444554825806122508072653816374290894652928871710168131717205751660072966870686031853430932505306513234412893602888665141281030122652339853141694059035033490177011912038914580170076654063905145597988566193412998265895785468030812485376836465303321900371997416941358529740011371562384801960903481984408198657119438951089846473719583926537760019890854684431209889614428013279333091463710902488188715118695385774571001097981997925267073375890917989601688298286434625452171118265167015886860182414828786823382196164351071329068534621398276311395213635258056397663673713025933324083568227903001645976621528267579919898095243478232399800768624863070223115517839958729104530627559454740312663640723048808099657748640043544893057434958596541823721503482489624247749359740345164526053025184642343934968009583621526778570069993648648423695533519109031401624348771291462781245481181652097330051789898209754077274950612318125841141534248019812073947592398899427930099341948056382404020536468574466963379453274370512659503568772551412603185088339024407654031709021466160052726479560055824694168023265737360535771154400322130792068246921433441831506588729714383513826719177634075717190560265597548516306375435880599432958747216509625020764681419354249517081887041587866807112349655698961746189045985297474388268117835531440975079425302314271513530512959159194019178342032713161029805654273484419123651736199466083659726208342055678283710610765229514061795836281404117433106970635930467679464431787908718792415467058112645283007993494101972626293098755489396141139226093238499381081027281434798953578389645930232351444799112686227840062825837452375007321934885688336088672608664330144180348897962867584739493058516670736599048197957164580914029317141001343598915469921018865143824343689115022840946734873546505280448664762886102515857296690979094242843364455125547138291878240041117669392969577457112050440271842532819530209063684278004269735818718812749022110324022047486146488675955780794738608744419013460903246588033523214251436910080124681698071055720996286991630974356831870557694086797449108186847180121266949658660871817836498052019286293662348457487054297668429565634205521350608314523535699106677048892728346026176121639242265716111873171232694492250820890282742479352443184622959202762727428800360404906172871533105867214790659076702387888070685390959629213980371340759133159136599998344251522335107605568275553456412155480364851805924553001421214754428639792253153314581002405642375213299968207129496232372830362481217941382180378110649488657109416470887983801493110455446424175301635974706574138723015298873673442455346220132209412115562617020230712408247317139590126531731599525234216995517314320878467433192508490938918970257249180649281017810864895373199147972962997280679878964913597558987116518033067799982411256863870273366417721928867778623306788352434619440432859427082775328217985260397777209406770106048282512615168238018028072454069553483865095681648060292153203873649003008198979629044474184230104826073963121906708448512592304846001751451661081159492354660927003234617614036176922619180255817736445029803074547450902733474285005424419421185319407917823470756537020273015391938092362016808354353146001431751280930505513492472735268949304205380567844309520776683071386191513917957704938969145937162908987657654680634444761232087625255888363682509497062435808801589648251368205681375626992430228005185224572777103758940220285030069818345002264765553585999425964129493461406118087997730079719366524307847617359997288577910767423650821295930203249477872121329577677631086936494216459361918265901572977960887536456330266335474255142767291496829861082429350608213022688107576164925483254573488868588902678777745572818176762599316105605017457751258867087862664245805146911344251418970150777019318476983145302253131676237140700780615281570253519275707765625753341031256973550669830659381943049195972448367235492194823870533522417292829654723232343261985705386879949906256041361460017106814776901979866222173084584524000524891549850294712321989016620086208401768685562491070955658577977587867765019723163762389741648521439087227473042596817279609921574236634793580268884536828418234548950300875914414295525591765359791396228847473614348337572103135469742061488882797573485526181240320446749010813400610620201493689696772873487575379216468496893570934938538525759043834170877805733994424026121947135015652181600098289510204936840551463397489084260163002287020644485758617184264434188975484359925390469277370846800098824627906524826106588813051908100909174886115802774748751375055102248764120565754153656720785733142144067427350179641734868143883849526224623399553473529528223029210725182501298491802057819373625299040016661171622090666267973997733585423289760807919181080475510832699464849465253204998418530720791891226409844700784790379503554180090783949846695277441369686673578046798455911509211485899960469538964165114401482123074474045484631829716212027449083397923914936041243251915525472616399858860149782076747422684128890927206153859959218645847282953186478025374468760842533771259350870701755544560021155296664085348320367142449757795057122055612998766150608008757028802481649494564292511134951197372455506220963295522088554186024242114479014230020466072210746906082411555717076603565741768865742831378833925431707693170368839736408049085173473664957449283337007173341580624265615406876506091939189487688314226470142092276627957083385485755399249735841533477977924616412144685887124746122908131276998954317051274711254486185834088322507251004480760629445666027278986765950929359972273288470186607543196790635031177077028063247379371009512939463965843706855337776006107546714074613860774837974326490151223097661953695776228596073521759282280512007618615172971464824059124358563236680121258271461368308978995049082378668799729714675885390120861390857908659250786970519149738537840833630686237804017740936008299337075608556261728859413452257865636393371076837567941093598795526142499247262661278479983710193739539866533548651715708364744532550745443119602626066467701264208754219370090449932785221053611349957612710595354076819806235535898112124951899359447354235689863669171021134088407337597318654286288961713789040904249867510336957585294175790096511100657686926837644216308560305648671970210511673825580809436926131594279935274162068751083786504837835642774169208441230485840290416263026785890606154862177553380105961689781861567461725358638752082346454885435287289731694437409696332145006642328214478696846820753981506880674006761636679995163152449110939919188184492398288637308727945081235083898199705805166197663005310739837053230385300221243928094438505186270437450151847123661435490785536108152947913983531218086069608530363620068443616965364158857916169017416791619449120372019658352361914453189280035221900942110246558666560430857560688543949594342983309550714069967330395281972481882330327445672482686031787271522686514596898394636394681399187930799876044639512784983884992788998017521733856868069850913072201600039943117272163513909652853247060027745499278201547674035865712744414465608184284530325987823956298080486031625469171587495335737095758158410006687282976569375957344214857404225590806693366831520101754814008506581828143142043272722652832147890183676214148276081316389058402034953859774099056422896149247952257374246885439266965967936912783241992760048632834076410478028382224414418741024871733923215093532523200290968876461949138887329975716027792059629478146483407236077078056685934524825899107233881425699008702465807651499765011639647628578607587718891907747281828541158061969584392327462742530135712698159129076836874090562196255642722352314410032332965937084520261719671788833813496471364056052821929999535539960677717352336559366165142017139909657281568810720835205625419968534882426158856531357714512380455663637798863292168310749755764985434764640967202835205537843323419371854572083094548557983118845871315297102588350373569304263787609406544587715565346855235255229984279678532013849944861389643127975839327452868275324553166124913691588001359591062591050457695020121462750026975018226445056476759742579953849161516347617299818523181074391529817793751902639690532723103457643638592276956050449780947697167689942597634672091303642692700146598720550259398400813777305555632029633985906692682472387431868599471267953095827964311772234231937469549200414237546348766638042741057342937795003300847556017685313820254818267599045549379999990757409688650539165023799584340912525992701083056158391818526702183045149827910440724087207827412268987812422809668450163023129393819118090711943228700801090535389226228253814785570611077497333546312867146017408219254891157652929648426067672646035438699920938842611306502178332096966554674797200990916981853322658146961559428436078336734699740498582773089045128612526499079750021825279236205762230510791128409685633776153760484454564270626866038212769874027845558091528517278050095601795892996688839718669073768968057819017112813802720318726780382229315954945974470876408462425098833419418375622855901208543756939009957172102206748935347105060600260015155734109095589995130952214681718741760654861619367712429657026312164498008239345338398332352022840626020628860379406734467991742283386933714240292834012001036034772272220831453747181039030371281505679836160149983817918669510552318833391776630256127174619724667580380636367214883352203757380178916992304928380564767160431024870988830308402319919403685972785518420888648036817449544942125701540629210761419727762451314237407370400934215968088369381990523577695002794051316646067659925800934035199158326654793786737547031178693038906405883035354710267593097309774297581294922299136401150024678801645442119646155571511879189729984685385802943342510902778482680918429057975297483834683510589825144064497306271830991380425522546033413274329168014348519366406004819797692195576170203807783876679408378677524815055770098785868866534330902503138462670710702379062958493968748531557233897736474017499227388348832578842955241000192080953937261295496340084964827718313210318503558694280598279143926905626547195632922142534212907965415313211151818229778598698739168881143955634273927457154274767121411726997239053373219956618388046058376042379022785409339622899739544099182486189457156154548000370143735834307316070347845162892804128758259332913038914373898903058059862280625886850576610898799465389760944614845666807357886947749377698183596126054106546801853884901628029948660407587828570618508375253641477569784841386118520695346834946033876884402752712750911487633242238407400633987730413451408693533415791606944026950144774774176405688869808840449164759016770246880333910499154732162188683629745992398920681002567468082159270896880847767617718590962300716082149464151504202833881054094490256197132610786964883446468607232654256273502123439172574218481332378151402914971374900331048009269123409911530065296995246120050074263996377205259037827793130581353892615640339779125129139182756905879555414804926394749535057230439898144884354435755722994753244774581149368666961788778533222929392597836412115903024125404665417820972929152092669742979946571073357229827836796920953734778984947665988117965046642393096637916168869594000725276472058159857100317387336966935556079647775223933413693782234493729413875588156219305815582039985855782023548567998421709366599699262735743512523617995370166678706127518709184876060860213227778816512977999829335674967918065943118022990389357666048126512735275625001340073128253914746483026557758913603090878542815524526993453885169835980998548356483297046673711813067343762956336325978218053586905002241565654660654275033836287375753500484051374614205880402807689467310941818926573468737365647049337104186893481749341878302341768979789108635461887112741680847545428811857616368269839882422466609458617235095675409094627127532852401308914093242540638273317302412024303903785413860207388331737018526518236433707447584531281309323280423796593790982002170494200626836868667734218838743478035121198116188715116222806401636334616106767652159376565175728715716776847657726649041532737365370705547914902517747279784772062438647524674464517950182707885590527324832537266349436636750677516391289391782117267153869600463612295920013249187482465318168467458024781053272366247516478204228231356645170205842372733270701268500558724260807690645608182707304089721632873553449980936887063153976750073419933052186809119894759108851591644906236367726872683173050503163687346617546843345513792369981159750174429223169728339406953034984272207316911006409466524150877202541936321685617884433601323055186242579236481969498400455325175285157855538676958608558519542875936670685651378912872129924394926867987400873503146757813883784660058067898966542919531780834218305913321069574596603273172881672369084941810884287082664478756530676275241677139086008226761994600914466052663423345451514008693706556911304741480353435075695898822997469826141398450510184839686029566581422326555322606090754733925206678404928976295379388750134101656865164168842879369843143427975344251831809913697238796016126716183686534283825656625757025171376997896635369459261488208920647516138913766325978769785015493144274622917792523995541639455327677248171014855604471841042151026647728913997820835047364124067691177130104589350280083937334009672260218443120220039265479996407689438863748497048804667069016558758482557325858313788324852199282604039898891609792972440936235058463608051020777083800254546309757298132619413387881369748447758549310932596722307204649185861675728353617947842268526707311932564292829078028028522251104982925306380101111461355599752177765008639191552491327907156701701377255396895555285450324827378889895070460284214816711886602434069763193053148335361005959337112324057038354267043923607828434686350418022656180188222269791974077779604104607506700470985434247883664713095649784613443229129309005029639640541214794740762283689985930847921797015860067620601958413022915717549755752038860116385726866257012047861506758384768180284072591076950243016603310230164064578440300990501580023088625464241003580209619982361627601847857648893992453043415005461171978920697300418248711185606437524465200378544555393423131359784101782371855044197217689289129393281567314365705696778091148282498484585422366505880159170195348741118862785289643145411725084977984596959452092416529494522937060433568793373526221335325616990073887742123317929212122456105111075974950974683491149145275746914527577411924049653247839687761584994340433231511138287240944551739616232731178767499523616606590233022328087389944407467462652171771756851228132668101639403260589210129940235227138363806574642910252708708844092606794739474318106725437007748672467759655264626441285787368201192464014909831587768865027963348107124647293303769791637114845191739866643598219159215194452712402213297393530240120381699338113606309605561300610051067813565668044244256449005098705962078292111989666752272377852156351297660457377656613335099185577459161624054292027756594636557971552873826432449189521585263206803339696205213317532643322437338188205647556601964819418210943316463755662385973959873659356977100202064014593970867561625431479613068603896754425050657768724376891276022382658523855050339421088435375024784462579681514688742993979487446536088295319755984805890351764520300507816351763945611038223337225219414130820229016916653784250684190125792530728322828552418626749637315895624009244527405802633329696285039620633754467599832418278603024811525529664251186402687251469602014414119762399318256648863988193528658969535865826620318613696824143248756406685194309122904496966460383300913844903006684952988503874377773054614434109537471656232372252769084588179976829122552675663205434574403215511607876908003531914365675373814524563630500182629056907481932062490079039924474491158724493111328605075399221223570601109806589880418810803083684875541697177194800334213500504100536616871757779615790977681522666949232299431997371059804976596855743016520472050809729566159397255279402771459730651966867873745818332549141384005557190630618206459348546727408863657758096188804019659770452457850718240770388217165773566658114194093427279337794698764726698395174442428738459849770573832575596178442116976703646367356664534485974454892219212552609341409498213166689734439438276235478598306066996392020810953209003992501267938386402574003836688386254059736673114910529547879045723717960173854496183848461639482967241003588075131604347099744114702987190011314064310843951110719985146893099752448896394032078414964365579326842712369844440520898451745954093615497040751465329333866079218957444129399406861499127029673091709259087502812972996117010621703427621172655938834874142719204632051893817356598248478458749662249528529347513283969430431310549084968166828300115661750186734854693252228834085778391332343613304231612714547808049366310676360332786084195693949809477481354258582039795583429104906457806641826257563120370554464957229884248520910775469953131281491831613216557549890046903141301734545599798350452884641677533149493834741173754524672596059656911986904684162034387056557923968686426572447688859604455675554527980520549198127921014997989181198325206752041847208391064696016296439862840605984083346421867466349324765671858663438482197465726892851177863635430963117634097134476368391560104058765916451900808280281367823411036578082204321969453086878218866592083929496215980167579866099984370663099460435777001814711605258206786637655004135943425725273265921637982744642422664628222944582726067259944544698034557875073890360384412522420378413391287300700087301703902328498040849472365485631081809424612844369318962540523894045770160144026429165231970229266031276996167399585548218158146060499363665785644609744453696624818106933452212837083459555124139904202631147968980331170317070415851957230187487643201547483776600971144579634031628981344995820019790125478262020245817698700842708448033188287881642242755820411733194408376889803286576097412580014296429111583542890504023983613054126351539658707417086453913409454853646832413198596957966411572737537636784571208267007236837981387100351255718629793763830041179891463501674951792040424379916494126530549273202902741447096728877425272691249701697451510266537489985513719173322253169297164441331501606366023756771312112288317609321692127423228477911354634822576872402790674549833876158779006028812882074863517111809504482645982039678921685602699440302355615894752546614530038137659029163072010297664231996947524584937955956409129499242270519539121487674336950101158994575397064657840562962848024427408277998400506822114346963002029078543074582094102189250827324914249087142785124974814289847801183363212779974970950131876813943828308933284449589288965394447017631174036154453726714166076983221596439703808709543003911260309952249511652012443200939945441921023676667999392518256805214472575620031248154603372870919587856184914192972425693296981460128081689031518679479106767619198871460026404762372612974126850935834334996988649454914655969071862405516578803137719572319850832085431126500883375585424550660223269821254372633464070652773043016404020495482227935817282052457465681387626189165030584772248807412819205700136940556165591119567610380211073858658716576120648538456837580315390518984108896711085875432955212948046784529513864722034945410360058756989009123839672620827050452981271029349237108785881525898570703901505543451531046923839688045557963451067136032184978189508165111273144479945054899259145132973961072963730063870653982380696769586473130147462080141757852080733453335382510882163678248287105141097237065652201767740023641691452076247471919298473867459124614323318670701299017693285424969330751174742117294029625862376623976499637996429466413221002724926796023882218202287940051519228457575273266333719255033820639470897080454455239115995441960154262568307752329584827090817252698781105195066007078981160117484876600602679788552352328480521672008860302890110052531788842400115200855620989668674084768082798724733870898955471739646396355858800043847511008999734884721670833689785829048619868437047676208575524779443965985082409602699562507637372055702247869050160986848411744468095920358035450806688387981490206064445005556024485738121958158598498974175122138517468703204205972250739375571780179789801295813836693636447592441507298049608853588288219725951101452140541752563998671593533543340542524747905910612863194148127904286659856823018703476751030834374845527925911946953719795934643238823658991971247890929733242171885175340681478356331606001381252748896548590622083447713467366347692887350903531181363908611211078306559701384548936419787248203410133119424652530228972724510846747370136518659768314292122004371466201532283244352345809195907045001600046962277900590555209014509846800159800248725362197780529896303435970908563333818233130074288761337242432296426724556719105749464719851236118962967893263363312640792161439243433954933521656015077332601982676707826439765864498471542818080140195404028439153313560972677590381038876726724436382902961139755757321646517216879284484989319757278197959896505454108166013983983426071784057238907436451576337529752332068422491549573404744306449389846540546708199145966122535268419788069844906372483118415320374279865760240742094466904522658429495472225492463455919297245983815196396901153699667113256292848972198948991594111224554135111781816010778345869271239836058057221572355132697242821194304297616637850552928777321925142283919323166631958851674203238826507319649275095052345529757939606159002130122020291005192778348054921399028069884223687183994133296689392807458914418383862070801813561222849086650079061324247214304109327282139528446659691520288729499182506088938732671877951150159191572013075018421891515754201662760985730450274795617711906604494675647657489723255925056542639016624167801239309016925525407592500497984149469840123741398488376366013612609715265249557782538964507652971723292707206311446475375182274237836619012138443795309444534935501113095130884051691839452039763396398500399581816400824494655298362684895517244633288764897905324383468563449208250109958593748615663814753086886223297791795873722154308636062681245641410097430037216777971795066587430679549984611257006837987581047617090899848489483487568657543246146912763585330106260157800274455794222058821729398357620320134547608478301378073433994218273669323458294325107925858504833111980268489093129588713122521440384163042823247418065935008143580352809535234056938094730029191823794146927007529523678721871393833987456972713619951130723744780693273717931787970311778804881664510317756521864597988808962236945519128265880306542064783510942989182633932135917885154917245259909059982255320794785491112850938014885335394008023196578913416747676756008668765202986204774575739927271462650362137626785262893060996272132552414939018639467689098038414168799146551591535632807099810393881101694545423265710929470467763233523396143532435111166438166111659557448096730794229212545207430288549236851232703871845715634101615339863172198320386171249113542475564952870316028033201177494796123690432717686732323623118116353659398489920503754016795823048824082128622087424482040842884581962654903372919167316351750482475326741366132675621673969296462947496036160592210542174662331379849548217308350507846075813373689171463502673233211380499063124797037360967036471754332418852355357908542617664039615521212242405881107596593469364440755813603012740659284730742685571105510041769853725415905607030777667327282909741273630622547259693746594235461929646926216967404405514473657530191716447960460880903272622302637095645022412546889078145773737347275291428176441392403178610882889679648510076266657599638551911318201412780715749505637276354240201204872369859527594374994726644439470782249342519456598760807642471926514392088467865680564035520266832736217449209009843079589954892917796241926029969762512878428303502617240351796979343044422960581334342580001313373129714961757565036172749050858443877545870962696498771275832123184417208295093181502953031097782732927418383181021739637546517758630552131553192233198172827241132972969419414679981434011993231346252960840716084072583048359390013419978296692043327618896572255318236410253780896733900984894277816515842720097200540673921583579840479586987991472471890297159823554495073916289280498369545156905078169397135598419911207164930780153015223760877396796055605615274093926218126038070483157984421523889556546787800413079001993941975506764629500907896292600742128905829588428301162393427925466425312800507475781217737215660765044023510133316061055717925903962244571898818182622709964980873564982702046080157695753168203610158461596264870571611578671659537303619256444169097536637901637106780693096116331355355212207789393650937668702194531728059643444196503808484357479917783450110166049851803927810635886238613893877659979934215327920487812333192173381182390234471832071915061441185343359945214830428864671035724488752705952074729270859073105533295740880192480214610740159994397560026622613496873956843806751891351700570117898756809544187630070650812735246796817300062287651797693151415087217706399328249369841680329519214975747808406455134483415237334094690112217626347578300079517361753445977643990642064739826536495852619308278674709829428653787797983549626967411175903941143849667832213654005023221310167102954118296816730502391936126206414138569150470394009849136885476334303540502454919475362643606013514636136267645989753338805468404232963529726010138810641149386205042974496452414478141299125723187504160736855423566130922152979367109085846956816642715675884708101390009435762755449456143281716873640368003667900287762015376495273694227461293733911466054611458385560716744261649317776522122581149383755233317001782316440936976014546133665479732266811164736548668156458479362346772057455724626565075307094660808565428578638311337874336001362231479728773383839843026836531169480096506865357952902013942862186151636917765530034203346646217331581712938153862577142827960866199553406208818279286199826161529465467905755417723855088029023234002120422899406286002320814134482168862597397195260155188998101203444970576219809535648475190376238215267673090793105439602300980937356503437156290093365541180927038855915004960359191666957853161750210041481219328725156366810766910011276523562391503641408433555044006863337704768369261586865439228001909161693978209389839048585087762614440665250434076048020624586185420790008705430060094629209126836203715047351211918417548050852183530048014603888730786808280863499181196640569184837370208797139236996621665930885624131654513722653995400044347038878784266291895677997627438028796684332720037007618365055363872090578738167245890848270883732736042240111251137520382260258770996762297733494823816228576418432292496835483366979575065831842634214799821518193639980053110903190120927909280726554786324587823416382303541332076249831771501393972088735119913967411642190790742157693322533618262153048661148913316589324397065755684998275584867306240776791492284208708349745576432148442097059859309330173373414605562094877866408681236312779770878960676150060540071706448314012287179256993718916774358406147072813010960629397907070585266018233060907617556348286333092055765312304898788627531757720273243159942275830696313702424818645245329960668336254502565907477117198838507079689276453296202977146356614718964651820718951986757365102130553865979972926438045886493541734654893737030381717531020366693028184842730926584459772195476197994261397828949227733968196175327381303497970795147067948485513948529443168983551566606762924637092796668890634964999390457787261984178031246662879839783449035640533957729440323385871775069329811444756105342307411086889778892572444085826243531592330776694879004036347155860044029927250483828946317696307389765314129507207230787672269127488317200612278801952435044810382494342514168184196260916302358235895392613320405042911567856164081799417716930987007689163702115699761458925810308893177181702066397494621417686171905024375024613091064735730527722947496928200430018217739749819147207995062456985058113781670537083919743401786129810474529376923892517738495598798019167104069084704410160447852267648692721111218473679732763555024405543053585432537598886476236139693149936841553377650427529161341409795795637138946975931133648875036601607288407062142771558995408652645533333045550923064974774619006984585325665845775755884282058954052072229064395289221351690888583234038234297263489142807575487051771576992522653834321860840197548350060669330289755991698465859643438774449480750813362968289077948836735568353246052766248732876060973892703260396929040563992640628302441609695269842044831224891222987782770311300723668872263674450408250982492763253858131252968646300724396105954346346636443570327460491916130396679155042743748128288925399150676995917501163665778675239317026526843203785983304672138846407850850821729765037154843952598945521949805849004025686155355056504409328761298842036816782181474570753190670930341445736724073516934259798335028204965413855927703340672660858773634733309160444861791163221651845101229832339989422023839313627250992023310864876676443226949135304857630663556337148106526340596101878088777383164138535622697231050366949205700874262232647935368721752057379840178307526339306808423601505868129226927259465508951175545451190333542377993755298388920748472943302323889698981906780445993480898550748352857447613161382395699390834280376678029991467820113193241654844601465483059369842685397959408573940979334642646950530054603045980691065460136100489495136905971609368694358027922772646634256396368448020415110215926520429261278991545654273188839607082978890313505275746835215903423713941582972917542282865044242909682626593411212259580768432192737218874870680275514685851295522476163928530509801277943404811974158670724505196063801273429192978677007697492189914712520439490145347483187164646599673542589591148913905532559230402174333259862547253261721770026769521269106305855355177014618512196401551218561817507053235163165538660833753481926830388730550947759816509075148028115462353190920318769668492487407815837353394907732118689708888690209316145564291993116856994809663754673712217010190987894422941564740787031200887893905846175441358870504753364198835600074104140968590532856772166496888638618058722382266662226407259739499380495041987777104117770297537251372334331310291638457714797472896374632027123561056955600574253919816620617839669754780620087503671189406369124752244346783570819076780509580688598932774023954177542892239547515848556952613091020725635596029448990385549105465389242089050013551383342617825556287006053078384638752373505995922089777374489217115247312418850348397781769867541959416078092766477806751507320597667183616236813580815558619029468695414605351490665510130876533107139509046460957452399106873792496926528022050327688075701708147289378041298053510095465535000873664052152517749430583614033352292885246475122420175407507215646438794443980409678237480345165416278890236210903921075856731050639061289734103497610122961478338389279202052875636802837246291523011556991632589594677916922151509158116464370919421599117742607637611337127043427851306341314492281177082971465456984857717199898689944013089175404372036616045821764862118288891180674772533283836315736680589986232273600283675925000154820155262545375429457225560175982735598519390072901713140617891728273561970314242083594896921166621591394090272334564227045308703917877040833329250867699088162201399095609947220820565347932865255043608644561867906605084199612022707911698126104492030562864620873430628641177041126251063643872875893985506987882332098620638678243903951899676277911430581976170404978732943317451153972114795007870890089412946139283506195201666062322644138504797226802624952425515079839657546259928683448989027176498919494018395658876517111587927540146268847238414638327152005576041520083753729653714649361590401494491344049952379296906797090951577811449946856936061494419587793578165209292997428006611674507804764954882736329644001806695742471990174181627230557705752780763002279915442737798270633139941490378186179948465403789684497104041290724536115433386039920751281573944783908911160679187196725187233466452828038234957992416439875520953786756608712745679647297794759523127357407775368730529761310608910977276782424121620250876017754559524854721111455985816497608481322212139916390933565021158607503922288698356713609158093782071841173684031044667389127598490056287647592884120191593822168185545009197086663229595746551057244167364743069098317640049746828870281005575245421886179937193718218424319707698687976265285012272933222550803381919470205236681133682229764839253386510145438198305537150003412677007408784501460165011272427799716505890013012324769512193433194624124278657240121176789981723849359489989042965281025716478741024979492961350409209700830149214189787953392433810101098017145552187454040589826214738225947627718499733111159396580346001581424315480092960758101211027795690219740023316858982329516945401696052499376941101450878991681091747186059990978709623567657478066122068758692618493939707953947038996722518942038873838066273934777011272516739774590455127421851349907487260858659674074631312731566383227605258917367979135247345892121544468490993775663809896158101285489637781235862948412952007413328376951946951039360969077409750578292720130840645498686185925633981247494054419981457688032004401297432108825948958989425161276363554456920218418139645579167449389257519158861342584991495402660614871923850763856172736376955389026469644257234811691061426479252407768872807924519367043636026230411335045095465584631712152235519041691980800040459972112256668691097619671645197293247995127337020154998966762429467509380628232474435563915182452679951182403840919001282010172562027882748861909444579195518447008665385570275571887953086220677518303529308144002366193587127047503855127306806944838795176454412514140372438330290065758982951403491149174425399607869448191533042334319369775133793712388060642204402471872617030815065573989411939398157264022563033611297501789166596883023863489093712432054688587654682191855549473863935134194165312698331026861508296607039288975105344811225787653726701441956721898902248060819702064334064023438774609250604730309147017184455296796722356991234455644335613032222220444594686623697201686710391413392976816276264160334633695390898926682817111875497355324987903515790922665537683183268046780687962849739027389768537683227998499820237692993731488731622453077971339396485879870251348086823245749419666325386146986000843700090943453136913823251939162596929317778170253242325644348246878409151108045002278481898133128892331175830351505424998829594016006069629082562519130937268604308168865512912172918128665133421224252781749153950106381937071147353403334548227982311634552151198446364010324687305515134138569429917240433064040725999489051574066705682433671547370887783298921320144300303000661316414666807261416642107549946017241481663191489535362468570207995875301271240808268537314562893984840638775831553519029058061239991618765529672416956726953800926616728580356478759991633188197451603497605253067338030123329984276220476223644819048623181398831208206981774031768765690288370047525639095937632901765641138267243064595297235327188041624008480199396845175479075293736758693249624561924550272387543604342395813276323712521468944332372216245669995545771516041971005667151544781685982773262470453296404809509448127790943276463585064086144877785066052301083320424591122673593676463611327490034777086950402745251050878710810108339298137408433934278182269694763957579646544642712242240541995393316844471202892956765914911817448254162975214214796831578291046345104105236214366263994326833715261522023143212745023663211377082094350540952768217466767106913758254760495152637174746777507592923237339098653923170285232806344214088550624855938206050089424482053784883716262070788966955273351291000451046910222851490489500023142297149521368072047918454093325231371471983830865751943023543826507503720411980093119378696663338825106131064564263084044950813404929436000165887374250604421359613432302124837652365529181205693488689958920800215958207361631345280483551198534909156989697463660905753099018436901462676902014459801859172576573825110495755597961316219827636197790828681855044988631620530714647840178139348037480050152245912484535455513227711421196503209314053062088507427541585019727644667223006376399465866623304579260428054574320185182804491208810957333605915045586007576377348419150614718007896023633331230520643212976961264879911419553532873826651237276063987879098926626764305351639546066238684061275911496870170434276820143711024229624036540394028338053114723804293181556779770755447906840055221178428648122279354695109610740569030149238803958520965625134074915969728751845112345529339714696233099928056798576682919732681573552328365659265750184214670597871200710086132875497047560077418350201117087294733719700137159443214858577332473830823731065544868021372923822052937540255771701703869317285012730326030597844831458164436378171168819316337338860546116506042529191287004320426712538523310629067369616649159878710854461569089395145923392503090120923726583493350464845866466123792241890094920954978769741150227315250197048420059554465291293358144326768032754614239405792337716000397854852724511638164896669908976363881910835227629435471674088426130154282642861294276683293274921365864583219793400125899161405136085919703603537999686016004645130882579140930368002117844625778187480468684513908842394252442657991930181126642909592027662556746426845297373852527242502970117905802812243331483781424437761707846749509583173581609171893881045644253621646431062536918010025449507578817174885720510023507123659019174966011348938651315813939944127192831727582570474544985372473521823934919347209968262538484712889111947172350536924643428415541311840583746786318537160021691953235183792971175287311914965146950033581351771594250565672302752088709038013195758075561274506863180695234660237083941921380312743832085531944742730136710768792536733901660869628552939970128939697149852836409381796404176274684613352492120155907362174187213594897148072908341045427191168178306713992883408143963426634663398566717528881862386297263366705814354465179119748909726152918515902084885727898250333541796811465544471203611351918678860384806177345625662700467891719152925327501581030039997721052538258510338777025026110045241626606639041835952595931509548713681662838547047815987345010224876173213770066776501954167361196704231861609230946719160859721004205846760611385120217083950770064493113118749198147436303331828747775217298480206601005505182176259061726070820435778562568900047329165381987670904332141950798753360574638828962628794284244757006683614703676297453807080931130288876661582145014702040730759449896974805639982137981954746112989387175526230892812606120720794782892252428859264347726287936897228896760112211783902610984978055142053601897154248330346557240329300082171017491795224967526809894285626330840226925041728998388820654045193375676325331721164045532906676685750454904711663900800903996354132464174774024320174149226394001463901317236705108517360387825454761318208439437468043986965067773019747508186433772690525254570468778675145703778208252062140253112275444272567580357130379903836129867265097300727763223957443494595826707125649061698938387865966160369771168327855091000157820988917169928822426179053556590668512490047117886880428415945551486089498533506307759851395014292747549145818553973237596230349864643630109548355128448564202847336683393467630774538947606162573886613945678659132288456205237631752481960982320906252290694774911953798340878406169502175997075159635593944170915978710207724617860171685422935192701012737687644935391912087936674273564534510052693372309713621269275392972714166191041977272789795322458400944804888138919409527292781181998135145754578293623859110332356533410492609713893567961494554660744325030941632526695905345768200704542342085234518342770615436894129089893872276628628122385602312126049191385985838704043274379898269217855818868106582997674183540890918865800276233436009404433369321906682432643772970366807855092467357644797675189229561821835959351760484687553266814911857371049264559882963789370018796992161511845401173156291442750315643802136720576203406665540067835795989868274483332301463083397403205382761513730768240032893919321964784556071270977350036934488442489017435285292918863438653903291417382360778516625085863130263294888192418474990126614916534485161441140968852124658711874564902496454145050771758598755805285759009398380760996660882962905229051111821714029939252950254279049076433825717233970176984616504453562080955076280580922756211677272290865054847289945634157513353426242423347415727865148660515246230853028818757787867842570507351103799556308755558401921172422004685605124996452713605232668892270723685370344465849886235088870689280689890881952699040738734884255245174154445977978777929517893428405373345930421791842061173077065638635428857181005989838835172470146234023428429495848029290420738739331254622712236332159894166852225508310044713243440537032020115864696026612602598119924250541399011648426766074179414023472231428252726649932246198618143030403891489404724112580990037242641718224812055157304590804147362492759160289972120306731386432865186838519770742055217125610944170762591198189167247196560003560461464327405907386803062639116024513259479175731703036767961184686434317252960420781645299679115553668668215399749584096294282555229088056298781031809531791965810512972186745341537365030683017834247105589110362022516368354090691644308600380905411688873975851171637461362850320562985191076303612205584389917648919824670027212525688423604590970951571633460951176953945528383254425218050205235913135863645648978531304158721186468084162165700819208853293948716954923225718965891164841677447307673538984000341401946197069439971146286380341063396076008800813496871000215464103920508601239755595664190500801925118319765422004911593733225013168273352201447657492077605723931248435708040755294957182038326047070800932098254720281103691615532671008909153472483353994515758459575180959000409711956177761592363281408811428860439368690950660360222015085389781815951891362833286999769356835811668267527106840551022367527331533203914543567764085694501734100202267548027869189375475020880057424131000510130948250093018403083439799375603284685368333235015942117350698222442274653568277058485320466949860497893073193419767041655192048840369276619901177544419357996282737885528751410378672877023016873490061563795372920795016608414276493269359863656484893881148910505991628537228253175137197884310305533372848365869185121019152329764025617099280509850507867457085910612419367559578844234316866835099259570374844411341032598209854528733746135384890807633452377601503569163819725060052216554553671113834414857697916360390132348604757934679008268788837869000763066711687538848187124980083075193228007175358056685899631026094974832385375967315458061398097858303907076475272479133094656517897755181903052543481317625877505299328095420244892095564027988311102672357136799998488824667231034216313892979643730039462486759939959441462860036035362188722607334422468491727746312839562763596178368967795200966249756314996162306291403192590059845715611985844911786012783536180202503398062630590682931620475156257466230720729582265554193669837365307578692465822919829570366224568547244387410241562240694209087504296621579269374524416040336404340682058285374505505734984667330641111157351170271100177366888659836831302259645004710072375713844564327914171903873702667041607101211913218235875401576722823282541391650475104570734549818844263407061175537967762851955703975149955009811930052816519085270754778903276505140583971924630259614137404288603265118780031569319427035233279925092060476632468583492732681920569284944156133269886979396887800999575766604482652666640409690911477748159948476265551566489921174083212695464087687436796235766794853424638057784980990537505893086015770398588842913100871932543734324551610643870643511542774810335499734300311518363193532879681314733243390357549574852695966527639290697667016708226808002221727407517378371505782432726823741330641952440598565115900328741978021725212926685882158249893841830219033615881562431560470968212108556220285465215791038666288028769494852508744232728385831719874132936718533625158685049164342805443235911504309592359445861192497274599798656465325914053605235958540197265487139971499129691439803475858945592866041314197827558034173200193551878648666800307628889258170258464859499106860064801763943936667214281599031521114394699951502704685515101392454316058625836630550908399605164598587869348058480380670197732394913899338482605789970964933601455597726166460403162608559838172639990919456434269628404320898208599884660898728675984259249281491533144835114618597557732302215359434582094091640106780060242339338365249268469000458715259302851355772456317323699102169071355596522013318577158461838756354339805779154602085757830571754152481104213958706142135336092625228952859367171853772340118297530772812028678232936934837577415106242523024541070455170137651369054573876848999618504389929417095103508216015259983091202888802305222664662324818714453664888660806823023309277794574495287273217683244518342174474942395325619947610715396052586838216170642990228617240700749022884129923754198783960581187679314163554050302516411494886803376042028433686537391854877522481521889489036717999439189545009304775042279705988507754897344766578106991543697472115074869506112939553643723469592190226791876382417163446194183889212912400033622908679743954866604606371293096500044468622600456603399284089098243877226331227246616983245701677088150486991125517728406422104129131899417804654190494675630279383962090651671511388944040336872058989479145402885717229413908743342730369725224746920177509253726326805692843507199891135073948976280349336937815885338019750991346195301860710010998293850372017660785749645786764482957254595814302602262365313282995152504549105820090659997175813208001200532960623955794065262788915347087146699618599093264358378026732309366699854129184522972370343622883228480502839603468066452909593603624624595041244533298877398052470126239236077809538229810351778333939719476821570252599435811462032692660642707243821206597370130113440374165476855753494161047864937709354277195248026968504341859914221869536867861281350118262407082977021256619371763164873288436334634897869616383762357453954899429454746894863841870756231997285440980847519903470254880672949795760852828869839908175717690276686051858134118101290302472735485929466903890860721168949226818430343057443803903447604184267091924086661705117058700378753639154626211119217609224141276581700141078944089412007418045241541418258249790412533734418623164457552851944450251767227371030438224063951658734915378493156969451085059305854909075873159698385182654269594995985610512310558515730598063922968406108411203716855452607654713214088298974320167375265506760251813859435126966729942860315576632907558072474329445570295480046166155040971337839600725577123052245203116116075665140786039354393654239122574756527436414098192460805165173217315064301162654567489494510282170604326861612953914027947871126395124788877244490976872412832543984382996571277893405851824193406899677239935703370269489665277914757343225046914541619731575339556437198995080709099858232000490538824588140267339089216822618149177955686853948579812780679977474216700045182993291508731521049215729026182433008597513994606116337088456667186715494260444890113478819597901474243864180808726406495720154485416452092599900237121924437385653088760843362766506224672220253544006400368831645973785815763070809148236985793698201085305067801774195373941896858582492611997219987497863131474181493189683862657977813823201661681631779572686888407545585051966974455875829391877331268288919479766186395315972497210330153116290859985547460974337329079572408093592133219838018173533988448411127503304365724508974300675700968835242510681891200086869818783691656600439610981419039291580502076037700169522951396631167729899330763343141911298833264477017503138545169486101496424156534202091072035783064738278685983705404203635998433400296235943827114001355625458899823960147853060082260090415639908166745354381689239040500613178418273239691329823130274951493667224901397768241854634115594075874960411677411036071227231106079014173135900708731041698569553666808099289911557390747000032790906201978838500945750296569777646680413224085896961226055559140675667434692196567070977815278717881178820220066271790030110158063456219681158036700105918575235593515633556766184351894668397733415172377956578727626131030958968873626498334423476830803558617111692046088425385787627156778975438400477095275320913102011932390515355283738513405137361292160186254477319770113475339351800547461347274951224309927480152008064775160337320203357122587396832920573491641088791287096653622096689559358123027592508776109740693225922860535298779802997585029050002267159698151642931276316001222608410771530138128966131814865238070309076782326879298744645929534774228777834435634264403270862135087400840993143127722806448615923745631907836020488649483323338063466275891015392796090094725641221911120365685592260046979254159007158503703786140780547808312796753377605617680077810400452118610324425038527993785105720633291194883679142896917374990443593244362358984328194698198110632679378809219812765254363938416088338064510944658163891549272862183537922060870187470857132028105016366927796368169853918570716516359428453800153865221254467904233833635160184743604664557794862947179600401878628686171172829195846393891630986723077479249854837585136950695152278824077147224377797426323368817887712958085168344472386026192408892510748566267399031493569821382373150438959920328909672047212762290243592968745094983473146523639130826372750830457004829335009423797483010022138779719225908561088932918123994239209932296139667918027778076991087516516710034458312595884785117227992614823688902380713911143109321346747948415761838005922763824128151745479191849329691005563983467458818103244350115200773890374702836023366988647077530706553913878153102035113755952673442086908484528346205787645303132713003210131704908526545762638816729391644702180398304871159643563111924059688075060960139410598137504822179667538434396496575626176762427173837914790879311683243310679230631214168134041051526262224797030727227081429631111866821830699880236335813244713114570199727824829503015059037036637021288405651878438909058751162418895152307155950388779537941736957455898735831608503222081247963178229748847890593093206814123212837809040225809692740673902513401202965833130082214879247150224601488529755242136422971491676336808727449193971596041600756302016724676377154516694370797563696554306273311082378095659704780309114736712756636742886020195495147479604043302498512926443232665432996108764712402531385542874191585994383351924193604818853344691219247640016597547336351261090657533681496276229803944998484135343099762610554907365145789535614511053140422004331325504522668117433126579704573407372980697630027898982549822585745597636949220470864116257060106293390979809324482250033291381912001996346676199601807556045541811113986942825190770375616920526324462940769468774924859202592827842121919773892269781101613735862611315783353382031457086965426585385868871896803549941848773768864580779992672858757114300798918407381674546358118398878660302258325051708084087331469192613006993980141469960838628829792663196191537733848995475768368949390230593967459338061823707950094155262378412373013385139651586941968971734846392875374173971387007174145352656918173344250166317494720753443687249003858301757788705580629024629505643288763662493517076764690726930595366837240625547570613009078273997265494714349252759542664821815721331646190184689641585018574980837220836331097526362927252321931123423720340579553861629256904615269701188620112844508459169905187000648878767280344292764875900363374867305981010938893872444115174466506512679306606923035967033083625183501034015727856765204276173201657478913792501776935620934771953058773553912898864453212414205921108546483254020392166955556802459697621433823014090604860926113060674648532946208774669461612147079498534063779339088863183533674614363213825569551494266686978940668998864860560780789576614936120848529989892175903321577291966795096023566878089074442446623986496727293511306332886643387401888160804660753377575530095052044884698061264776572468479636921219629801869845661125728279506159346278341865901974850003180423542151008294019169650280672693685444933748982415323778737523933084835505008105736752442454043291873606371642136932967025492869956955577389942794281258472942852589366310789274702961869044226478698342339118505192503981584776652192163074447032159712542725811871054326177304754544734071033498387342517399519975283597483292806685166151090159455541511896444833127677657377439199215969063999997541121699423113937274570843577130404344822893695489838473169844198380470628392148685293880538840173809417967404657962588976864038069300328994485701875644138036870006853093718632523989557057266134610783388307595013641887075918635020954983685555403275867384101576318122373514376985748342453952755650767397518196240705760293979835791199810695073397152114264795545589844459057401042932242328024046092025201439661979527754295767317464518679285626955047413002468502951777933383619716440322060457305083885022597719898620234142266143672796166712757810053164132634113584285686953988020373848240107065103699465450504310066444132499550079446582245161137500097308080831650195393553048014910257198855412310957286816433909552620107485168365614005919161020639089464987854260222372139569081767560211155256332978630331605419029012659846510869225384486297600769450309444733507941518428699161545013597015002541297902894238393598131883811349976305354070364500803489135656919063768674046984089559879947096027917163877093038364241507236144724731532233901928122070640317568327848639180327381664865772475115613209387089801161140390044171222523361912833783397350502028766798702749082386516612903366962063727941811635408056546167672632186294012376590983190482337647689723949762234340817021435929327218626284127432542115061539338285465189330340408742464913126645756430343322025300234301595614371126938752407642811042175461755148353251796714991705972556481247988082852993214034263719804526422057239983964667112370359599619639672398687162687712952108694349765167871551904768222285660598210047703073713957220838768929395554415972402830083891065756089877061013023490754567276982744029448858149193002298637810219465593444548496495766312963886656560683417836907866285271332385216917582170726357398885565637130762476476017445537867626470032654592911029357103579018715868696373295501525226998543073215623866329603975696414244282699330263338463087286947179786431561835004468642949196842758270574978638432636522968108966211581567174346524961811287829398716250179555246176481158644829866621820066577781918563499403488823381396053848898825447699125531602759692944799022647915699517047658343722229715323497939216713961745682393578681562738737447406208226300722581219768779141940021616833833551520691975622543284705473846452210554524511575464667450289002452538710744242626854425261503305501501299849930853333500648159984902898046655978706001778297505083389048203452606375054404685309107958098437110597744961132920677945700456727578347735191674312823379208746433236090931908829582549640593417124382307549160332915960751034252488510063488722257980294116346695005685927316103681550129006056786069894602514835465994593120981334323929843619988224591505904243039256902947288343145653381138943464033761069401285822663023930602345247199858786756820606983487621796653144290152782870426440388839333748560264058730037684191710907557974656808561947913511171995981545639019177980789576586296553441992293806248188425536523805426508645843202200977083641535146266003716872256113838956643097934854388509179148626649873608531250557944504017568749934873688294066280943129790823463427421201182463043699186836395756210486933569077916427158076204619361061565862145963971573411456889319758944506764285004074640471458473477690779414205776016502376565135764375018805329858000103402796838405854457585833744808984593701985620729727831885832883600742230088711669067375517048649535795920450297370046665563031099277685444556018751950726219262449032016726956068416167383052587073595400443179607928297986941340595079474876331635973760882549039873108711833738570331334260140723629459767815414057652597102356052227281593456161909569784135660240254297330610176964882966560018963681318101216301522341176498000291765196938853374575185368999494560062400706003071862718324901252097281189240192605722723315872127678030125567125115270881595358235809552774173365919005769090602153279378822368005792593640600004590560812744408889872994720022963574351090596935886859843597479525689305219623297900703719130527753612504901592344141147557267075385686544658590317832467254014407437363152594935410079831045870362769412387710273263240684117460232550842639699353730316574268174953454243546185698704543684101781939980918053587367570580166564510718301249771318315967262279797216991430988745874471286598660979220764706260194047192942264431841641997330475616376998384228019973006841997435695440930312335991281043872886739317993660255259735140920808469145688951647326440135905528672708312813770023866412369745839042824689368277304445058683365402052850784862367246024118688080735629460513873038285770075154686803304871644728603764143385915008645944252732575265300227672571668380594269745138777802012415362923455532074201374905518823004140305336337050589390879767652092607921618766918387923522563162607811651474304371774354397138289391292633024168923106295607726177498587172657236020893502156233371881325785486483470792564824288809116542913255294627329451006081759924984661782967298240156376247135306138009143772922080178099501039378062726560934804783141878971410620789033118422965130039672929806162034517100140330351177951861744697371879943168246292436763933353339937866749167034746372289293301546620184640197421233846120464609326414330948293004222007017879964441096570427579552671360850476137005038380300437063269927513440085099105146230991972512062515357848753579224350236003070325920190161023864754852228110160821288500094761988170745842935989648900342578812335534275399728158309555704305608922294751407775438943650802011641686282897682114395018173729010330276677481580422619588143664738122088873265555889044369947519128854035874639001666813669063769606256381785679770891953962697761067556530727353608178102716675869579357960609072487727309517143170554801850599297872419252237969771550580484399433193153386754743369970965504974362259414409184370518463466398576794197463317137468899345818614633551446958104913938779065432583679403169978907258675130016715496188131018947528785497932240056038910606529781005120318716850268779434850073150873833789902710139367848260076175137917615690997050271999809483561572722492850482414901763958248825506122885361844206852406884270480838604420219873573006461740907593944163580220784131406441383254210584854601829826648078208204314085404453539376351657917756814155647165301402816833252720653377761598383721821989406298643241825535486672800538122052766486709564897052736630608092794899253376609916322258086316747728398776532859869330956576799833639132654750440866649638447728163122615815771972775489267346427646406498063607968868199817143541285421529933818699903773561133727517152004289225222361698781991992768161295503798848807175232687655895386985915769475818658050438350867061995617187669748503386182324774976355662332504609589271972521781301408133013146659168891477165124973283754934699891250769939179734084096622022559065016607192137484099500048700006953827812129068563702591327407749426054779269696704777627550666511763120637764466322571648721784910322018780475779868616470149807279996291971739534556423411002081894185391893718351839778296662362191258756526982733096027760298134216122067730175051520618281359905772016417276143286106034752589265696813976869780609045470148512262790958269575858705536535211311978303958339448115836322112279233061051468980655132753433113355332745160123016576420849689708247536775382012381051971504092069392873749335193082935647788581884687290943455997937067222983650387674367999366894964152421415141709802341953501634743786451830254885355065189682316353269790475631409996595492516816178631288752515318113013155340676803539258924198754993576134694461245818172581206737665180617596787687916836842239346225637277914495555794274783116058343833806654007600828045413928547759661330777899252429035425822352740302960666581917608811618463501100957710179112115834831497767584892788524580060129738727120205428653605380223839658456348397321795386329763520602362158329677490669401951303171794343240554480403430842468458662436782105724961981024041298457509727206907070924845888480205628254182462306064423883035860850610502090721447665804131509198040212691290538354284427137064102228421144005415667990783716686165116758205022176405902631486222600942220729506671489394995951511506365110492029256831398233557852759466657229815844499726967222775948000302231014598654904757448491213050238642949339542459372286871338506165620018397926918349088672854309282365522006169493973851460447988182476802873930814999244316934617436981010955239020929325733185754452965811211555234713149819845215589061477837770578671462140019681709493665223002923068006538022213265332060149317511420835970880433049594545604392699759996448056711180013917097275352704265640315412500541196258979272998453673733430784072094773252385833146049906193328258621098122676787382812354399953145115141966109906055770716573701345781447969997622007122109893043455643539229166385587107970996368312754143559048876812451836305574930754894395020417786789958985624830858481624311099940185958995173913478531463450403322687408019136616818068660799657764889743459678747874686284099867408103112554228040421619545706607173104434088420665723097741112635252493765133896431568504099009069275884780122049844150783903647742811105870825744245454212914918995708484356444144391763222973119541110942335869353993961950140267552982710751161119067784240404113570765841939137746018470983829912383795438264629193388787651914391266813227848688024944603167932669975792021853266505138409952616757719957042790653094429625292201612192150082569996847715455101154376366821609366978398694424295132018122792467821422149072208641794660127297793863874103317380940932069733141145025665412996198084301958465621525746163168186067434625922367245195935647933118652365684055138012622464075008963315801374731811884180077141114162022650289276021698737677617574308911052875166494631290009729395458264625882381383062064614589928770321087696736020104095234320432639386884121431855166360876236944504918890167843244729209157572577848717589189055637777000171965186487942987645547324378412113011619847807740038318985644604022954243427942221825411592224513620372061161782127718973016421910542004204997224201125996600311977561211536375467177794560795882002061806840035649401535232922133923842860863640107245490348440839124287843202116737698565498660100260412075873462181084848790625611398168641906123866599023885595628677140962906973915413306825925646574794921405853082186278149151953502611406476325745815680529451260389509575955430887134885672840900784996584589871795924516962209654074674863812938822955390668832420240786392951052286021289877568258341128082719454695374818291964262144749257072630606033382082017895453498295487982765876772251007206374093259568367801034239215545532593015092839810651734626219000277155097699637034684841435022571891800660182243553171216980369605382870641817467833640891637610393478591661011928490895708938229222022753241564134298326090293020138824852275164985184726840409546839585500618897226887152093335670000156493407480201478878637993989215721138168597968749555182112290837563821051924026685143236764412870416145885890377215330901314995965128170296658296719935513563867700270435308132767260272601282630147445261272085406939522264235950894018875236030028674029977098287421442092018897926128057367010946616624174587894898966568737948816411712974600720587102936716543699022299103221527473489598390237214499844199430763736450693093087019373810645466835709152139356739602507316598607335250677196760977592704489117926327347694222382011759186187043955463221965560833863228735474060485730938291571993518411437783582398179065738768957942030113095521010745159241147223240559824796028278344542748575304824212845027956099381528166377825192011468075898395019899063642547679789122411161041505830535945098297229682380141018246101385331815034179352559178469831424755471579827425362215806545307426478196039128914838527312459708915695279916748456699307493928340117770635113440591254273665593306723292994906611981676566358859174430727694964770058240598434396820678665619550967324385100817134853169295622916627985803301504377545026792652155168716416553493965094255703273748599916421575016151721255669659413159774772717247423106830657490588647243972583963081343933416216508722335092665479484413868393973400278833803121738953453847205648004980044168645178918536299966803472388697120348517903868433414045864260909246261400803619253425011933691137485948191828380152907229508880141454337133959396896827742763136146292519791392075844954343807330328445234121953786078970097081605884003470717175554620082288335431569401170351980372802998840712631431929410123817634750305992590385001430900728495819369793213555921545106234544923546810673086461302270814086231748599885416235095405079312654349702523030161209530237999933228133573545379396359750093323681479039433150543242567322832508879018172677224758552132518074795571623896657995888842276262307938518962307824117485462750275707213821567036009323668181653986423496161700254375838575709258415026312877314295614920207596395334532589646956850214263277516701738221187346265840987722426797802518203638653368612826816679615081996864039021521424332612604793227172641703778357156429727431402294681577699550576800333605522121636837905812710655374754467185490004070525668266799625518747051473548952891775706091468004942600502504983071225497484842927304187658095235303375326919009671538121328684375737391290118726264688876483118736842089490785395016043750800552884528787661581016643859035649507102332438219595211226728923201613075099269375804200310684798418846897644373331469513971331795794281047933823213343996777424752394592351523172763011544692755193523305839271747809995029565278649243651805929502236809666022979141083832656880674453359310506008373271153275707848116676726046071964514545160917146999962606680011575027291008159117737147479648627622520090640045399500259510152163613331935655465709741828559255695426009484381042599677355303787121669967204962594776350319828747616555623383917804481249342508717376089043706399202022809008130360905764046887635952237331972690489695875224210807383378927937214668250895932763792303621079597842429072891137732929141886330897612901734866636188501619967729482987540731795084112691909501910599493954289291984201324114552340357957603211761735340534641330309793514871942021509431843848373135047759027743709613166369087137284897585008720886696133204657617394855538075841711293527463752595581942697419205717768974582979133261640960647811925714067423409731480763216336172813027712127104583107844776937465340644694044828693586639965500020279954040839761378963023619927110783452303820232485220396648148960405357237816433185574615009142046522897479040321876233565938319322544696173732924956987976828535997505827671974495225932064416719743659898533698756063204264419651085796787139868834878474296630821707403504670970573931559040936192072648694896072303086893230839514372246683795231313461621592585077167948290131010160209685884860940857601208780102339600764281004115777741834493013126140535330332599501035049703282221530165451743308077396764059207972956532530365212958639873652333882297959348684970483405354386739409549545897661511352486976481709136697390930749218822692790184451146078265816106872675889258774860512253402979657687610841956717423454520830864198327110645528828860169626573189618594955807719629216285885723027818502674653851351487354102836332623044738090669371370295329933027164618179186302387113431533271417212427474395482585212375914074526493247264872476588379236802541368060431488137602294056768188801863257849672591438132234559518624259496178312671604479065418650794798999146119022673969002007799975680170346060010277687717088490080211271267835935386696108714197387887687538825652679344394589680971682813527824462924159121959317526905389272841903158560419209585992503285122320952514805686226807544916440825888690996213212983245407305621249902741054363755245805290144934264913765367019852673980531386543377442431631025199320889304442410248336515045521169549534924220441542472576437386717856426110841619735441932042111050641153100291213304657137546141621011173733474132048363016845742439141471667050076874052344301277587157020345566604480975455543824941583289587332309006432345168930406349864543340750873652253337433812435916622130496468867882596119131556967154839554507958858614437293376138901447658416707087291915680629231450216876588373151384332870181563835577307163109954264236339087482378045593684247773260130402442000489417880721887150365246570905227322729672528131746433398647228237591502447629745990612706886766377325695958504194105054846313791455962019601448618428289824142554903606523246998081577500665785556258978721786607153909661303042341043989158745644218144592844542008974518585644433099607788085411798996712367032546862561661108466745799968172744298983476023991122101359609369996362660710312352691274421558462328494639483164830400165721410868048005443767336548664982471408156087103894228491832452993444733881086392505900938544947126156446032343370012174775350231431729259063135666418586409082534448954786655232945169629709381717209677853517560384963855986914823180837497015868657131314972523623276076085867798758660045646147716295913364469616728902769145218189526018698774902683215990826708580897669519663983920946491039332453223533195997314537032760591269437304075988503844901918120140204908485013343411337195741283114082312707519655695866447836712248094664978100581910366195653830334998501465157812984812443117238453920103082447633618888654070726990532256042355167667394087521768736709485317866395422736247602257250612526417504963815284237790100558829839908776204146148936898516411956978267580079544101910601611772969180890395969727233269772785195876294063664546634926322775416086967286276294691165774067059705857893830295583527305647821448299633165744151184038167047997142272791157372612911217536701425737410592652431658863879735722281096171375626347359089499438534777638798143420192397091218468974219279426910164579518032202043354409129205892054559822518458339088034240549381757932924952209782076395882839812932750070656405328970687988391309595689927533751492579548800595953971705333748389399680788601764245706028173981584698390278193418729982879051989417773838918830931867780028785536820443506599466414845349430800516546287160281733128994215312835614183030525302233403039590763600274207715587391448315699224302564091584963295713955126563103925124651589752227121882795253522793125140618562616627434066791136583555528881963135989883600080621373179340052538414427073172112355618858294445501462523868493929620102938599754835872366101644121621481784085234085938567417541617749620948451469424936658664362877818368875810571626007294348770538058963737865670517362697971385660444990222417547712101597333368835888367140925796672165427223491739915320151172205628494689116596830243416819458964474580483242151126044163803492621149966279020926905702373465908327462468762445679145192674163420848963211178656501273247478062895691545322601614437264428825715071461829234291863654180693226854881945668820827237208719727923222048166600380097507489409292974272714221061713772678365909250128456660982577843488316475076392826407805746922377008896969946920547564590946960452559101115700888070291877624103982957107826185645249259734693188545363015734734307783678048625865185194440743377992933030641431769884154956623644601247011642429430455147905163339620179601355577598373686466061056168801430935848003415647949722080825722056752027473962884394498839993010850029111589855640920604618315259186190214545488047760711771594511268938293027410991368410035253310180967610089788182707513495598782033969801318016136527609055636278771838687827079995802999530731181788325707126871114932307637845205504989875862018165293344714296744434055145313070505931631092580279892410929482436074411454157785439525785862999448335275932277825829157451204582772862196755480442698392337837714036525824461372258526353410401278959891241924267429660738832225586776205894491533774785313373458972962919159814976182380946320750557498819149602603955013691537536849333818750115387447093370303375204236384503296025798005615960775539613297334104566933793863645426693784544325960890842178340682283590774296151087740615760927901913213429878592041339903592139049902094181308596869262550564819609004509847650189780474698205346977593561624491227789459181767636996385665359231750154283853680576760143660098769628725838527235784352198167092972230004202581021313739168717541164679960826614225209117146612882071563069952192648230610905126177927240541436331805667643822538755986604536816725656654064831802761330728891858936065498112485901866264297946751937018044741234494907548848981406786385470395042296003250061875613333183675883724792847286789818529912128843026144902634521129109305576582119871860849147535614696145511868397854015658099235834969630090314115628535243076766643393128076208507080311686606772320211416419975007396369184852265140157519625539278262158744774599476719035458379006412720463811279083196063507419710967636898048159754087987709999279305920935203275219737887424682648818108858034589408620663923141384877022982237470578685724413262209222811106648922185288477662018358883916958470884124605880331365722033263682030609427045848370731252422895476071021933248579815353216012705311373998584064772840886881933176589130306970510409831594874466196149378146159912102321406875410397346264164374501547550571732010114342530385075562976409785612358843927208720062249041646910929675933192191184996284554773130033970523783782762489031257347179423254887682152837187658992335925122476107125418524257687531395705274662633716358776102403018166900118996368047647783847592368150786842922074921137664998212595184028966058034287890828237263772449700698984243386016731546572231719588098208855539834208634741353873215536969464403769197903705627560618571356371030046949921064719490519259322283058254559025739110364903955193987846363692542875829075471391394723906402523713316534257992062704331376566057703184533574585151674488052867869525622332206414441244345028147557880107264914231531811812410613804580888197855068022770231312077861355056330082703426967048411649131219202731274424179600254627652592243708461258428373136695021673732705925995253952388162566007514963877353092081362392930582821343420286908941135472879988517298769227640200376805483220755285572377202483189142545502394210470669435009844116081779015727664075732121806557759216337256652628148982821981651318150797860220920009588788980755749869380767085018129866048323911698792068948473645984332534172382778871028468503041950310525551573389194256821018630671616247930568120167290490457715451120384047872208928729546971476244085788741602957564296505123923265523027367747208007988489393435404489795294265988411142221227944806830238314848665295871003195666472856276745308886967505300934253301017899784937403397896417880134479743985362799776640738988256684681618917144059630894630846565016720728795126103041576663324488585735315656303775723546303245889306410475670883126041795198031747659940372460877184706774431980863264961914360911754977681760943000342651757952051555473048657422708386549137560000945390249706796957066803514174988484958537564705562565551490094075037577924374043712238619115701384020080572229467164488738562866658868881027763028684631846775420477691769560381078454035869734420988497568063769633366338188851775585320651739632895070596601687293806285769293403008581774689265488896627997848639983958329123667560111240185069170184995517486515959775242329013862124591850635077614188049853268438120709528719562381410680616425047466669373083501039627402626385278288785347564281287718491561842120757737585656067971720255832075818236663372933521132602907380485855524570372424031894801035662358336643526836004601048242546902696902925020873807036660514710015225304317363151042772071803213808947496580506556850860744956204628652577544714635049462556087934851265687350874867280090587860933689176174863001712139904597113876849880202499669648400957842806795983230865415638305496356879914228348316281032426943307287351539142674531144169168619851946494289308641965653190465762501475273179056856792040403204644525698002852904105343497536517308465057609512796047707012120343237684837007787049716516803879124378524108260411802930692036680002130589441695847668859981326229597498263725463928851079463440995329839816995072121029737106941782252149971053095913040091276675110643158701278344276996605088024744739543268539122801028932574808524683118369805082177101694056845431524974636754572803198994507367857414166977809265788380767015903545504858652733749617176085759152084665577121965798458759539456144963312097522943976912908364553235683562863724257005044319109424352897671685746865163043849390876431475075717749527873777492141443685380392507975429731188832039752690953295840793937163061742096863949426862032206171912356005211099854627095916448264868768536492290848853601081291183175059115859944511117277294656567687548517097466686792788234780120903354320844310278129923592650901249981349749604243192372345423397685271719278311000960247185610662113137606268935072366294192390200845733270979351616034202334734872205984381996615430827983096599423946082594445618194397730688607001345185435205945930497654093792477157262695513019128018955732306046065707963055834564999332379102390536258263558223836393156990233950880348300194582983999728502853586110006234816120362319752861798881092423009693056816208312436316321807421813007627527630450145444775067818996842070347420148467045851883602842314870060235661396664911087761142461706499742138398582155227050018089778583428204893652809045347023163987764288983205023059680418630123875771225943842234536571485419683666735703640517085420379510311896228905659618281052154294844217590852667360245604284516653580536098998769298178496140056659022680445685676684458394034132134658840610238387031054169876743126358826423145024119785160464637407375509675859713788936491890513433813987503846288357126345778232864839205836692457449794148921863653617535546637575919421489975720303582403809387327787883403269013094757380846861574477738123211506159601845226293306456438502935227518211750981186943002332081610195921740826817433845802219356949443494619812720573549057670907684922376421310747330772277896209671844644217321788224133060405404177613650965123750991470176151269081580829587730140123040657359614810225954585146389432061902962331692913391378326627660449924181479870444736098935717648497712146069235930424103993505380699613756685881604876463879590182710083311281813066602358193263489686489073553550134885865713347858612119128820790741050730406355047316640650399573202879932559374525032308837436088172487577357172554477969174493327033424645184858963060548905840984457250583473386357991992449390541200814668567323832241778407146350703265459820716016071745499498920599074762108319143972430628587652580409374988710407969593960733463048776630538024905812495042792566890335447510753787040488172185624191019878292425922561377916074537052087849781689120938910339401980554652008874913700862400348722413390206539249294861463007639611151396209876208631660082164628736092841963257262346846401489290475434340639345751099746380604441273697846938647021275788590893774578481960370747758177568522529073803818932399708919848966474764617954993844335581195334642909602173545064789503910789018473622663941601540145826548244664190729160979005988771841391787460289540735087776015122063984875713300763344512559936422208241385428509898798899529202281966982239154251557608651080936009147186104825423155213562303984404642948780641504368333712666913674288625809134388110922789345948616873753800423689979083470526006502258362258684814636077672677381766233385661234346926790499934866084215075499426762695777591188374273335384251142413088170954505388220487038284914520814378863110139450846542699813773368669738965670732370712782220157395600995927080994159249288426546884061197691213000600723937833414236430463211480676690624448429573348799329761191270837324813587415147671805015325361103097172221765918222967414680682131077936680668402309295858402176896391049573278601436112425142006397860853069425374207058318664496022492335211134575929431445390048146046539203481418785123243253234138217680857578553120477622158676937977276364267074263863726025335003997940932650485796418008738861203722927765771370044364980742616367506401277775739019694710251991004493938497698829993214453778558073051341501642442763935300118951772374773655517139791978763032598948227733528116713577733645514652220542350692544131870199303974751326039364692218693616140595955465971648605625803864699062626476037405556242970543696152217293087173197765610947698133405649081970252323345385287552362447584947342515891417845255500601139641079979893977252012662677000819390289528017985077671775339186104594208607747578242892484973951289670442306494735709492768870567505426894114364831667255016729948111618052815989831867201025102088647680290204848031336003020918558275027682595663838077180517209023635431483853661261101403234949183607448159148040734781548420778472784891740606748544679385998390544776657624773113087787796646779769112746732906353556481321127920719194664431241424286421997522797882920404500421838498069970535039058972768412448057945684539239830895975402074025700633009780631008178376804030004677418878544632295205288866208311622628094568258116319399390905133079755486853976027683242092347222861060447910692674887352303838250440855123580174120493111935198097526997558489898359632183090281888814847158561112506379037484367018101860691556007651167921707784104066435548415007544573451776782001557103960787023722191415293273168777988379672739613240315975105284024820277502651809275879164675397152619823294439488689926273547562973231600017594763488321266539155131898941254041287514918631371044848027228911259346501890097325385503288489182893259738559520598292666962114747670055922594131432100086083883251910462041192282270248227102131565297672791159272694543788495248905710360803156275960977353999641454787660726397264647579298885075726860870259018348062581709771196678261935272187986565256003633494086827408348239185470422245547841324246212631773955789150556380020102202215356162590404509839265299300058379317526617286675129384739471978224530922805527942005784954190866336447055962564282778754677076483634799805034088280009878698285158489923378285873238176392029358296632318980445832853501888311802258804649221928895018498956528051060448305643139944689340632338790890085211931263217363938656534518812713358555155012647407765781504950466401213070208849306135592613691209575857384618850298114987144067362468319050829400485030576894063554247562994314611891514463053127750592102777684947676780851234755488193224306603316327291881299624161898640435794858849039036001415950300445836478405005335189352327862066141441798459825191758022272127300782768086798955276528551452978255775641115399893812019458189807456021475552420296344290752830290888399105995015527066944667021362487906406877781424866575061762956744020752869185487951737360343226347532670658429006619769371587568445634421604475306219319452209275115387163741286889961050107868480878313895864135226115377791942782856314631084761669572005418729394307836296173240520213291068250467608743209722367960697701888218446667064629635825122692692223146888700159590630993333531096002573830802308230983406374900809470019865965934183943739979781681597061686437647500334877930693700094324757568038980476185029288596754826036085916792131711041811830447718424671845770878000731482699750274569075823498176210938142357951533420019382965101673256179702162037151283499789904499509396833402936779211354606228978181895573631216641896444986849277965008605835322717606605602443422307523112533062531618692382691207205877566377453423352936107833106580036415775306105498083514125014089583512719419758182935556604953489892257393935407082140572800219900745279247065343553425160214424155142371853854234765726473560400807242793584327060198718221768119521042224091237937788032821251177282259896055027694828664320083098687494543522421736253123918121446520882043189275313635647115953991316190388114687069529557494742901495316533275575020123287953267438114915493910457206795588666825629797845537790657508291219655597442296684188004231332296365155870714372944847469371899039679217211323931017525988991740967340195469972342007524758189954668589785680912444914264679993541729566012663437865614776367785343482311688313890697443102005790332532594828174062795605217005761203824429846295321403614907682937125669200587639399094809262509403008718982411828634672660467568066768923408833254669561048337199075642553147130007420735068822606573284970500389021080760893621635784278596765372750416733359129982741311074678429583483476247202991426524978318325040263678565224763718099662204930300238962584349005572006282798067503879188278428789679539241366003496042370228912306409188758994566417690801153591625435895199292587427893406154255595175218440090179514020658032040518565283757354529744327304943224903349832193260951425096831433740253226279852902018312935779771674716577242929445371873978213263694672020669295281346363094733309410977800882342516086459659929047459705108302983300828870677710355301630175570312075215363179934323013835260532294633692248108317744317190050851344734600360620564405549948356109362796613397800384724248883325961220247859584269007337186749815075475728307881265794237728265805022855199249087810258566405980468404242342465772616375829300707578730048598368794553588978874942662236713132172567919763840153266508839487581746292545653035609001594444122230329961823070773886873306350938514592705972521047752149349130775008856063843874977705859334270562982969473151865136945972383458340222821584953238358376214231249775140391211817243523174972168657292085434757011738045666961527878535546332676426529880825731929770626524112505823276975771128970434117947986523652387008969263428973248241358355110432629398902399526702934897148307076461813014829466735713518560424227971064952989495775171672608994210011081186971374592828055666966393733447881763747063350882888913235035877964922137413310256518356135136756556470196212469972849871805094049550976792236271120409061561721944083074644092330978953758839120956108369854839797290531593142939434196834159246003342431730436838709152998369670936630715133120080046256264699369492360496543273685286010708668323158309672571267534364458119802268055358778586159134123636983459612718192980649504952880026086185808918176021484774391553473846152097011930031472201146636862073985525675566357259008770030566271430899022079510963047249190184067108653905649037037253741139340022417730850233600124718037414325409187969961490418301970988733778572292934870937302830187681650945928620054449282797746615550288345037028186474508101255190275783125262638386639703940228204624075487965693715674573829758426942814472120366378940525130311677979149969393587579457567532252493466796458881979176784314663078001318738761550254887817553588500454085231320803719346936093454011863298029755033613453414725047266124102574282616073150709138050571379582172703069030113733583302467709218213192770251185887708970365339992674446966583521548543005289414152362767405915052765215368299003904935086125940819645086143178682255600562944165922816732773083356657733061569408003033693362606248090235985875794473919740142061237871286944330057039738604803437823899323578226525135781491476055373819106179472174594096017080545470908985043323900628246602910328485009435753700646791379550268014895438068887031839218075787684451488277804249189075535238253359268477630711971082549506457425062024240149882839378242414582288136195653352736540547081217096915465159879106566979888431521107217669458963941591654849444667871720735275049402036462711798739217178371527409465889756948514751905050624016789789011125730336168274219777063474825342391332578017589444484676202111675425811673573310383135299825033826807560936828599503550123899412061238796208554559629292153609259194710241051514792668401184828646742713060988054261745858592291334107173457476007891194628349151968526463949027074558917209726503541105507263729722387749964830518781281992117476635655175766411995627987007584501301119729301230045188903856481023890334359144622907615383695625741191026886250308969606110019962866613550870607640306217195835194602714922895761658540721050846676982120232526509773971740111197900022116410912569104453077688630952592032123674018440407047809889951602491308039851984419371726495633763157517663869391828425305158592965827735826598828362864240012088354500781171945030766136661185140829451657131907823287649253238478896712836104033448252537911267573122014021648869812712426033143301404442135103715958017098562342520525527800370506357446686880721979738807006650125800872393873429109221241107887020416399906052751527231254960245972793674884191489664235212110109323734741541741424873398614767222312152025849627641813018839685505471160527113360649053759526558412830593760992395361579682894187657963530581278042046370919999222674694999856020750123189263552945598472831302770331164709098720606903908180755189858337961447036260720907398872820586969025255673578539405501936726801831930514205362114714809498328901308728828040062079864027192194469484818404310436428100231956569809279550872396071166375368478314988199415405756090392493016656151962263566899217395918624118657805821531154846614569631092595456919333987201947765028043703203531570727649955844016603292057787818427687283481046329371134333636816678211927430047138727572322869099927031566203675580194531914442974405597518209677172811917034412959899221018275165684116571833838262011854859793046778016175185035560422392138113841686288979693452964446168374743323137205610362483984129815989473733127316335790075928834605381208605476494618725684648860671475321121728009603188930571772166842010459670065185901822419081916836533348850344146256785718861223377821826409446354011175577359439293507531386249368193879972276917107363425868158029412456693707105488702682679008671470006338109184045867891763146632231754937622724377666273287309328528053099918427765333006350710774642533825123581709658870017716645672722809967672072983300746619841306656799289751238689565098545305511748155932878709167973776722070366663818465318777068884303566153835814832807544742121817703141991721862965336922840067386312419405111621661376463137690826751029651284744786647344252354962382892167853228948025874638625395684876280179136896863243455100672420313934993262574853342075591831765165522358988045166078107717975158919348781123140580459438562524949502795252506649762605430206521805632867658463843791346994492166546197523322245979999632806243332426617145167356253631613988303964251513360784799635444575466957437153200543206621590145939135192941338122493359166420156176831042137793223601560395192849960822714116581976373010039816007049413966901787127062336876371293030199807591851135999111171028028034725245249522974961351452750882909052447849682302922432024458760327037057506212675421970078098667858947965275457160941986091470630270197784534438602145950681007020292098941792408665943167280350567690083050320347461991570567655590030156787524100494577244565969655681509619032259856910662248132394767953383043592186578474871499017180642931378784997764134194071858178289765057290012944250134655208581257973585647387489157853551968902815831634586215864428114911089284992722454561943552974808953579100637431685589913207806463127131469515883729603350623017971969247377809307376420269942064595431176670690814477955129464430512671478089750182469828756762913346544641290778857770644464732924218884387023495242144458479093089492833935658590874362673560281024569981659585507625380212491077991950132936455347643493275138499781889140628096937388605295179829304457671694991637153159978638343415403536783919409080221808339804426749167391873022155897891902800847959170483009416930952341798508033441132489921829751109056509820908022243644565583286479925560105521430031119708473595524557679564245627947642013550553000199968645538823400279955583735355763272237655873554205825820140573313944560243052448982992057812953719659048158049729575984823548534447028507571753662958338232492595118339885187074639409700312226065225176181452517632571518161800518263889018447413132379970570957009127521197895937850734722198422150809390496057101868296613779359613462170625649057807051181484279847022407935553384890176851005419644973151038835893233722203482786116105998995800909424360340483377482066424905181894430806404880482051877420483631064234566077689991071086845351856827431030508912817710821042686967515054399762573869425683220272648377001827400061723263470714595051901852635334392653028744188188642130631668083104615330665321357591680917173924928693731169492305490427566763007806786877509850716219139426467460712804834928399551729274384501288762559506347275419481533296141166067860600789881806112365899305686233665838850560778433941510926692993504743808246076656673034872703556981145356383107575276004970876682200995587921945536687092260255777596485628802064528969551446787476661865488226992048408881609999612144902451922924538481127970687960749881441716323740689810797117404484758978871451207948972302780267676061155206088842310172033061688752263982732391634315814992851134186625267016016040542493830313035082378698636076353817647694311196508860533953590748272065904732789822613786705107575727531678525545158895438504290895919272872799039040958954443775669876897067263603071082299692224008463084852567938522020978167514859298854313054200201160048351541237661762398431144470774160094656890123026336733047557982023997964686706770235983654222660658139020633437433751525713884612736002282289438949040275506896773619890536680063780244233607270729036887600226742265215049137513485401234833875701711946403633051962494284691364440684388017189581958076246907841091889366110093770778804898223974196531070625701442092965006023305159672396273371641499768128912196613481352313573201701071321645304732375000988420057768468796175084422423866634295684891156438025976069868518931260128232934555922635678065088353645763204341948960197324283389610261873985526954257809504077832256919456239367884967521916969380175018461669652209581729966286420361743723194581680345241456790310993028672921642457475841752316005254749266025251018711080785287676636691768557226927764992720873602194440106091514575527286224218199004884356197256435070621902252734732327383109130288303143772468625941440139406336827241773834796193805217874187550826426237801225786741130551609128146926009228480586867099759117311452840259152209930852898166639989455798183164733762942498527777165307369003187916727258996165883924610185120654653824219995338971540789696139855893822955256383774926630924424466126674697119467518471099524235883139653324005992562952705912239017033572445319521106544558903637579095214362497912227609576938336269523598054477862426262956629784103607829738330262554022446416256189643184519042029876171190247735548627056687614857246551307369470684470979379468450317563342026942448716165765131652005968603663536566866262353222046001696709980406688329802830324994578718000154084061759462990055623427182019800499976988384522655940507493172382343002766646999540955865122284024727632587538068353875378944515194008338474916799840012432357907429658179406288291261582286183949841055430920593948677868907510127396015560677011534450605890638453529096505991784105049121738771445430913918094510045579132247052538835345930670731986826886047143480195493118589026666085750618415014830167813124586353615848251104076288500101740228293336871442930887184382800840472764233649414356709117016449241750774464363559358141370703500270685781629182602666936830153803007779796386143928369048939738795535852906846746859446456029941264870065299188599209423286366420292600305947117166373601861224286854375678046534290246510300683412231273080392556963871681068085422355541997627151420822235554321202376247577209860518993476334835732582818306846324266975633164576088955356076719025387427726687555197337319709252898088541065223986567091621987759347905708663679999243453010200947122250167218434204611295782168986662970972518848681341332189563684983828107485909193724377463134695648366405163978578609480953375251912136265682590504852040984267819769507346712293891728709367343122641449901130408337658912972082968244609921663381808789114995969481693107792245414162672925354975865931425664012430056335557460526448927561166541696394170935755015529143777685904745124888423371384673047018224782248131232309309154483168800345375977251670848602528914338799365341043351118435170494582107908078324423702361165022023851942738603946589960206552900807640107234557313950625301469708938376748918132767024814782022005120460157876370233972226696002217946431481693999733301809199667994880038329898028490664405086920880688250621504322421042986872484136883802108948361164497973645463483812483399678359213675546217373122853321183048270007490498171735996785799981466163126368655417784693618041822069157738019502757233638495726000244495363575177083827618418241021184754217558938838489437848714422496799492201576520363099894335119149101419408016370283351282378516514097387367675478698417002753482308753451647747067514905530278902713485401827094218402704681688868866356239343793896632811003819868717443184478769101707127125522097102127998130972176327160725529422682213910141518802898056229986569256783497212542644237033447755786427955382570879957242946777327056603437766265125983044027378934248071395306593371665679219775469573520268765837937165215751703588771853013341476363697941287714895904448907976517112474490263725691986124870922278440305915133952868257374919638151789798916705541780548309488968848784494851097150345065416982392229390786804332157703461071621321607858503260569527393921916956503393086537715900461595841367607516690094644220630288341985614768371032986870111332411523740364404289429131084786997964477349550565605274014321835246311669216771926152884941613668957882133943385757821631319944816006206670326921403490712392160231259471837951203304456045749332868365994284029339188198282631315951369304376598250134126427156971777339629239085592942160017153762121325495095037284775538759169195193465369463963598417226059440811007229897653143279152174039077275944396371416887724978628253581419439805336924672879343014297326936331115722472064727220115382154316869732402735973135478011539726641336712771103897024933501279991462130181579253563221859851812433831361471808737482382149028866222194418192352271991444255767326330240784089642060816133400072104704986567239265961764220598487198764614354230345067145784402175441335967973902961024287656397680487393381779398400134756854289458236717087405332112750525371843431167882124138375135834133434187322426110751576769919617392328129774626567119894636836216641070764851461145629253283600485365683399181014392004133964710419221212656944683817682276326027462179323197184374888887432044176473961577648407666314673335129078505017761564099512484377874586264698528254934065934013701054297452566244539968005267190426196691469293791779990990868382973985174353128914225270362778781834391783341072784698018559688322198842892314465456436387015881063442621829455492467734895468500835834532397993082508335712756067873957232572820222485170363795519338610033446249721514949324720499700965924123615348859766425981284456729645977741868806501598568618746517850285685990843390740220165167194593410155857926859160599151225603361961833948079354753539136565486965667527570476994377663042925188209123438407972981771514195698731145898068365345469634051145126088228733374286145427603097915221194876412025085929370433681347281148672738107764110188470948176460306435068888790420879911696965475953618305940894430539071891324296259250581450959732245844174290283847437672226657874198926743652871689855818247297284656404632728413478951739828354740878884700803184474204726368401033971429706393354886911107564378786120009700103553935744373033511274935305865142360002393034159650521297040988478504529936636207888654739057144927225796023372718024168807831443884372978822473012806707701661040927118442846415744690687825398462444653273561565142956697762632694241050740330786704625175045093458265557483671229557556048084871362123749801990653434920276440733858105105686194071706047893865177598604122914390756412453103382231141158796319634654626016715301045887900325776548573232400859226442428044392899313845235055282881867983548608559298542005253384508484764690518312388018710579412994197512239190785517453860997793300254033851275414648349621592454004069340616698777486136885090692684624171947770165323099652670091501605725097336943448837459996036175102804361872592529814523681241828088515902039839377534117708455832852431760585544873860470462098597516324052694867907026713349882138995778807648690613511159209823876972880465385077988620003445941653883042136419423800059295806718286052454445954841834205279915347249980456659939579264663442480099610861724361922587716333829399087562432351229594107945522106011925422570356521616780046861983763680867120677650705732530683628169905901964024634520448647587938758384461043941725665994903632426295726061967886204740995145094793010324477743283813791880466981974244780179417931066214145559319221243288908339359233984837174490611743617323776466412430488705277957413104779573269239978934638373381684871256074497967761629529200300596699119559346734547603539712075087510307492604961458127679427691017333733101560554284893637649132539433003136748102536424448377327964267032391718631983369985185751976934800025142852919110997154763422134729339087844890860887741317574628499650090107563488081444188896829332704046153022827654702890415285524596239190573722912915480920515727664783659920647329232877459071859107124177166839214095637960324000096482219835641247573294569968211454161498136978661370067600497862538977379976921714574360405412717906352537844291354733752853546530105043091430163582481070448592003679375182902814903478775829503877485218765623714176455361407577161164203398002634605391132288525706328322591662945600105259998432405007032174203421400988383065619708048587278685259968452757856401155542527107803438990408181669278806500191393754691500091164467656271191185904742218284493758392754877166974575023519823181699663140054165582102657816495451291332199646767082815617259401476479804064932578162931815444400110990320221843476824098247685439862651996184567047445830674145588731480700154213170875228479413517568827724090187258350630057390742901041240518888601197168639740332932661464692530182141079731084309905085820236356456410488365613065885739673890956217686004051867980478632827939739149575207582055973645351775497952510693898174135952867888910804424698653027558647559091563348765365114341396110885905753130248696488619379408562447421110748592351581961698737480346699683510020432908326927582009121404166530972359613797428499163529977228792331589281276847749271326803835491270952385848354942747169787310511213988457167026354945896001681555659387101012999405724548221055336992716045481735439313732391030014304667299462495388562377491662040391737564863237394124867257198305660923513899742259771492546682970723554886245224798423882775187539150005610515760634687938157347206177815981499751530038488133353855990062919826197047096192640919772367501597703936047836392984261928163893923094576540528248711504353557430840457719384404540198843139707820809961903476197617499879986521940943020189103656919178591200301938028345009064558945924977509849778109087432317888919674716499955162620507154357108553056273962900084716275250136218978157339214542772883885551193181493799629555227553003969565145791842617490099989572953985991392294974778591726300759846136204191674176608596295691942308424784038933047952857357494363447981229243170624572173565020976726777457358374420128368148143245308810050295652972580431186922100244967670317196411560749338495596302773221549495665904588123252840381826296597895788576262875297317872461279538655667530671526005259342129402861152431748842837270148026989991834502428285678616521058888350234202694321939202925337531777088603087129689389544811980940358500101980487671033484402865949331238876413443508230806128856967004756453633425082358565759026327833073366260526385722328558910696457244190947213642675497094703481622598862905603632391270804604683534055067309171862035831475821777398406086623420335345961003031671852060217513036640645838421040865050624468153851459782067797195380523623745157347492011680999996402293960348547027050189330287810288609237771819093069837184700615312446384178880718015848141758566109588860860113686778251275519902790222771213905722879285605940960295578393842027655893460463932954655925774250387190758469056040661172545510943709591074410002577432912103372205374354076196532649460319367631397569579764820608726269820892912292677029983508069160103011102333436872059849813000460538415104103537633634215563545956740722216869112093408296185071083706591705306100024154774345224650147423429357375942157466419939661206819022021329733058621883232532605161464613444781635450989053922388915912795606164010853595761282310171783881452875711201756996474798564805598595994694833158004792866271327815509839490492883758147443242290460317549466831546983134676441169205347272356820143073468687662653713466384875660240652990838827005647442484646372465479196790748499061162681006058637704271109325241370992083909912488402806864661342953438935946699939562494535771332892815750782990199893299022980761661134965306264640896752730080572946499914483015903793102745398778178423159017495033298404197526277849512532245440935247223773303315577709319565505905223374418045837910745426445392840933490241960686701949781678069492444035453383713095899883672811615356067235660466048009353470797103613397575038708763662601835955586410809146807918889577249403797521664836033466943028419631234339516975593087464832032002135797067787740042099584852230756976055261361400695245447997441605538919134990098061656053142653008931277279638528257585294499436506500946733299784725196869193900492658913002783098803997190002719624784534347144208925127884446230561744583561915693605330637056450791901578940525351217024709867811396193202018218894277660048221737274545679667603723111248108831269218872910388856624497348237278736178640191793584592315208554599388123775916628076601791261415047136710488901178146382372660870369377489370501294109151990832649171709027581617530918068696240862264242112413690610529824156173639174657504648364383514527276546948021592818446766298096291297664082013105961818587488681630286144519401922406364587092377151344258789907399820977235183965451387825677694328082077572070786563609942277251621397410305759683844898896223055016138909539452244824821425356691256263719619914417541542609331625941877632336324790681677580108993978856324441995833120590011592721315462751989155365808918272154250159223945391520969001587300489207184598249480443760340054919384188022356311592788851839593173495656881536326653977848402452714951708008421358465179900605778112290573891344906718259337231232140929877943214510359553321442133648130191543438401647456944263706201500042386877952324390691796066993370172279494570456574407895439582450491357705400487261037234885232208146498595073985828191814363348858179052483028333874438254574002791901601448855227030522489224464243717214998254137943249842120447829286767894474997727168332273113432415690710278351370869946575940457040190724206875861119872102534833781082162901155127506689247175191719068998366813853396773143395850839913602753548219088254956283716797155371339076087127443906616749149375360169664446281713522322622552984119642626789820593914884359503943636565972513156853907628386657349615577768434996553810456159737439134943367455713407375427949047374342576921564542811738932405244317499620005645260934824858963857696774625192654821172718973640289128318819014912368775086452778596377435892435694906157696441671374597442252202875284546955410552034799745115489326085315476223433538280746397455106452400865943205197517052048039366770390714455895309462463919495041765910416123881871877415425202117490213677942618874770226441532061146947727623814813110733305975528410256833786858393916133951444124857637334502333938463969073801812113917814574111226162339511917089509038504186713119244577010760888999493891357644966125788248890203560286098460194860201697651374006448671242340756759181374492647611185054240340268277913988318732860609576520957461539097766245465973787837591940452440992154098866714378191949534987614180115238467056504573598604909725755401157775430562984892594251783763550628958757946063252734520590571262531450699247665939061099365633980978297582971715590901814438076595795238220664844560811163200000823405002209743520225999350040138060597853609724626504875863137618028317037905763563532503229529348858240540938342601991526379496195137119931447599261480003083337907247444332819051174243276809466628410651423603864661483663613704988067392182172028540340623729713817982977186412949377828017892154069458132856815280952505930273980055330285790295956703762483296618780630921601259794978009513004837829088367270183838375929043407653684132138360999391112137788836305851152514388135008913275766723232440724370012027561343625804815567670637488403298224600635276345376358793915715756260326003108077673367688217646772789154072745075257518478029396021140338707434459362130624198171412350139841368224935952513364297466969815558393639235792318155732762069673955148059546862931639525083678598864120578973364413615287672684812924286678559346068819070124003638854895179827176490921418904971896739950815025899764764031623657828435537440454580095365119002638697807713341609131436410106836377678959589365113550264840106026985511037431063051113605609201951636354035495350862422297528581545952171165199756994195686598961064643585036322022079059469906871623459651298793349142175727389114563756567961969372708515731218150082774061478847555842908875110470762019900132543272681478273410533206618983720107677912098879732316971685511549163427087405719296597029491082106685216854725689899405168648412200024826679179322296720335156557973582329901008038467538087754524939792840447821687007905816928474280529454305708810025574740017931628502000064591354120079468746170228922120824796182064067650585458356176381940400194288335175568629199107767217306396985072634394023469641886145340344540244004895349994573357523777450044177412071544330160379408026335005386187490658553325250850443975907233025908392716222347565649389398817531736893739419391239276761511061033891495278728869046253110485855641245858170589186954068456442581371065039697929333966687993820024880450681283012280253441907006296015490429545450366428341367492383374376861103576517018171916421466802156714205707360536471216597132840632031236893751388742582455597547244863638880825463528358509731842961092406498564787919723040347563605698544432300127003830495591496642235432989763169817419449773480608896132008818254427137916659448290159499894081449685624880150732439705917501278098601049610207820304575581960416447365763064463882512142330845388863749048775931000963279154034122507167650689109276015238192400772388789850582700188816943485513295367412766548761886562399286686083877311239000428528518670927739469267484608914495460495019217393936327062448858047652523345276637036799373646107684123618216117217363277993902090481558676397581700968497739704205424088946976109435370603325106733599376236838809180683276394792817677470692450470833895009422462579077347495336350408611749086459127691373040890468423666100611753480397431235571900866823234308557246933591526193611139787612536503661937378158166794723432760250668983156593610291249544348879803210580671179247236557265448631755500749065431795961070028185646967763813442519631695110743790660945595034758205833330153607673234123302146537904829590273448474866642166698732739712594637697988577262901131089783931341182367538681118659524846314707588572664884055217304697973576069244081272918827476985521133621415206194697636506153364375368311850762487608274519271907654011379546519114890330050873625620313792773379355240328208066421543686369494476253607852082112508711348193347609412937189726335964389022002524576067454675056607355596281035449506357738291624908661291449563657531924852712204166554701893084287901830574964307004802372186197436550141885625057345628276529722782816888663885061265865817304115482518907508088194259044366789510873794893324803310290091162092391057122016484792941203605946577692688923800286910362704589317233017884517223189487819926959992753636257118946068795101953617643202948388679526318256693212472218517174885269785505782103917265150192943496218343751462731828655619742814727846017245739883667660940153989777663504027411181728487241424253619934372566465505474614829304473795241311278038158732631869215325976950421100417867516445105427094188859482128258260013823645152441838180722816042822611820778045626220248965003781405418676442263659480463980849777139957473931010846952403889910883917027500529855575992597382040518732827671056901840026758676715393487285302237338983827607451696258886164783717316403747392365413294097072163842607407520021199480676256467975666174785348293869296445640277389126286552394999378678942609289341967889174821487486585686397759790011807061460234830679103231963463480491627951763940835863951866408754871295564123214070654772338308377926588601293622809394085609587355844568385959743356618360344967546520757287177799303328100964300670762852719969455785264220172072068424751886468801148733166587027511360521206097991676090570048632347710559675941650229259125637951165311811922465746078844192611521182965198270216893738577394282478269219078246902271956209076646045705826170176082837071730541011610280904926930758272178667404937791201365254480594030300918521942651114813516771312544577836117633921213492206088132332117501295627825745854824143651637290183471220812758388602172247384437701616881361255763665264670106947509138610594842013180138112150629586120341535965605056048687841731141689475370140811014781018308541013129722231455838714720152014951733193968083728650502649985444251631432665685810242141976837905794283615236755371566836193007101455761241198257393996178839768199898082644213180638436819871546184784263783499016486984094013965901191827009072530415956404849153943940931754533944977883969116375836625638701993481874738880388851300361872781648628557996355606930447496346180948015598340960839500534589750284824165849556690601116002564098352827508162899109856603425038719453036193032943136812383143024384329103793483302021564442919513928254996331642353255797436310253664693176860883690133311693037156002881474884295081343229501183832549446553280015468217846096107691587015097884465217151975434919825514282161311958572652692717189011959854056612678991677415022593983837568736396526710648865232649744558364801868784241192092955621841712413182184600932793181357315056214194907103687326012210487298001336646931089927971968972461877811086540749369201353839175503191629719324009124434559989701045247891795854589527052318590543097613584393179242186327634827235800647631751568477895525008846489985465174172399135743549177201062460231829034544253316683390410082261614803300863342119487608709786635642543907600257197815828882652003257252924372532836997683820829374696366185829911329286756874006968573302562468222445118229237939380777676341179790648385721049019490419126776240790652723925530381564270049244235643074577073733902111525323799873304720296450864756447082061529845790977143183068789045703173865827703710757122734698864239643406404052023707567080798212907762595941120418061319795104425082448433626590029797959038450165928418659339630107136696466729288759359589438153807027593270086544304409576089322883350715827772338991018690986679841499996638081735122923906075356796372024262518522087062827359365685946038022729819303725911764844157999954823508861577971473313108419262303664574118499929555280146935796768793273529164677276871838138167561720429030855939060054177828395711962197308029308516016857961132578034569847126080430520577096219420639217280355628886177660516337461009215816727434643563280827723434590451765004717787059535959027771990913791988674716029184193090419047279526564247620651442608291503954002643507750822908853633732809930395215659129412049017792977199669608057829742265556228821578567787000991659519640555074352386676945793160464150911608494035115162375498299977489206042012015237513540258293302247305423418479252256752397000375240701356479276919435505388108740019239044576571438190332858135131672736446871168490177388424864279164258379182486657790431055304803657773884879601282244950102957225227387443273707524123765909712141538391620675011636259063892065042127964012136428472778232142489934972474029178754768591336106615575864968831424248192084685180242704055587128555693421757738448471643816230624493774296866677222249158360480659177170872252020147258926612453855943071758759956166520883974979749389961628965957260995489481251765435857803183853301672504759660083836531102694218907104294684324691739007287827326077251881248251697255359338663076415711824240699401452331787004560091041750563189976661939413894508218934843665108031558462660350259276854575636615007484813534490964078299889967768579658776120976207493895913743556058340252773866830549632102716248086360578383100538978224648376976797219198132554505993178092984339761724620375110913879502094512204942920876766771313053771021853120578849375877058815097876921061360795908681335386485469484108393760327732581051686136650107037700895398122946735339217401031155398595158935094044706600743762878724347445830945654664303214782504422717292995018863896796169674374026160862333117514383143775795786414935059581513232926389809517369118046770211315338124492282035598686259641103742589222136343599693156534101712568756779666060863786498806822231237056373695794345645225503522436879278338157634358730079168597296620820586808977706608996039426564362587564284875112198427111367296163082930617826653336339567172869610798090490405305070717651407807930114704292502443529892495624291599162275154865343725997918777822212410175816428675814993968858693397487608394621434443528370403080806706265172754622056458047447917524733625191106724566075732574338690320174524777933134965547253090629961442918288794387866892358091638163094498446562759819717182056334226600229649135467828059221304903497183056712135759461452822349101750989720823993505427327829541600702796787388607506666425861148691497964209643667169117207499044359743661326642345917372443794904399788604906410018141994322167153038504253821859332529879477511030343306136641706317843969318922807363847176721696565777699601425977216042267522145941787957690026790079837609058151084496843470991517647935282991251216330555775301421869272904201143502106996658339137951184315209506633062573955103069679933575419972744237851518708089980211827132503627672134102002482870714433251852101304193453318739704972078730904284107253090697432432828796084421021170778749488179308720593856727279757633583924647808548269715793987110129871591592609664487664548165584985673528249467003323630422296605742205166563081646034961940806700980714487391682408315045299656473988167032618219032356823086414635300997760890926254014145179367400060843143161991632093086012637581462053696178311550210569356898389613350487120909836273433861250127356876027969975312124178594900623346313915702947351705547148945393764525779196067612492456435526768964849873834289749631949445209640846814297326939394631032069408034651290933417393355597147612864731791070584233055946878633228806643958898065869702692902509761684765743661508807232221340957654637588825714867811383304613387977227102438464019253824364836157369866627686967612613126843961153063194653938291568225499744422592467331000917676985303105830241656916481767798070800944311907169398779611311695044612434048571649280556183790544810538148111542065114037077497131156378495421937247883160552776856488192676071832151346528680743545158099936531568742734367761644322630536223502257146846677844756011202137785077659607822235747998359909840574570038285372621567909630336430309922560108961213485607548610292411131524093970162310012666215928185966300950832942084406926366913880364715909529761536967296924541154527929796155833252309208258974807315411897408634512243120378834999082633716691101975549606099795454543593195617472159440222522891723202938228244504595213645110470387092310768328902929218133557123775135680542461777449080448475352450548454976689966372864333132014849613790508062257281399901409641051883926285367776920025811279712124280101935679860681339281979625223828112422388231922858612982191191609913458993475026381327138554131089649080515402441333312979742181346738433938406498777743211163491911268220244454972227504679461493414095405543405603106678459638748706207442252707181562698029296402384205743991610111320383387982306163386664942745709324743564721773553993772335456061093630045582988406929835105279936037470804085880714321903563743500952391029899773683918870052203841835587391877859674863499709439913989816957544177252700130412653661949222950028431608897477859201334014325311737544671448776298384528650428668295566147218911604280068526682177868561713734857727835193041263664836175089477916215899630307006560525270079227295579958214843135784658174649847398697183395588419436638179275531826757097543569467150396294766115003131113781791614542465807135280729468583994996823244071109375467216274284908740812293310263802144449892461565811821169687082362494582967602484531753707310051105558867795607086741679203005791587042359538421954030654803498621939848523346019503906940708887906390815227997744058725298468850769408360577625487840679722508511873725539940057519426639306947175922800479198788337837020287473553577371811322483228909887640134531193712489167414026750369058950653541184930375454246753478601176550640736095044265402270575406011217316028148051092089528993172591146614150548515563745706007525600534266036057502301086924907161270055750024948277560134449974561631504194843093594018730019774537482573159326078430698601509137878363692880855325177342739330345608235011788482690500321526179082685025685450122651919616236002398929042114941681931969668716036140336227490993882787111042737445250861338479202081136508411357984227419711416158396793058758877280323553961038078159592052993684416697759307288249912800716557550439595456696027443912595301327192287899640912940782218088061360573158716391588633007299647824723290370704425014438552107172494771560325654315709444122626272751613983221568737825869385983840208250470980848026574224879057971796616806407510186245621099915126794279917100811206125960092053178762303340843430730772364476432089291468225035123865744545309162815317477040756217204723397442331285849931908947273572648815573755591286543996819188893144561232793437290243081094731934790894404007995198779269313062045390143076314865425952242784494448781654591828257147482987351824075921371822194161374448829777261353087525237506689010220186557900230095807726414546061473230741685559169150977249621539394660043806572562862129872208524503204653218819198042390012643602283729066710661704598865368961240475875854113498701679891196190341675571820903282109293408937142851643683616832213347492726779281567035998154968766521254841144404716663373970911262015443670697178524399184532866982126421413811279276702256692431599314014274999430043773737687302770145235858388589928025940019279525242219238377415072751229322952435569089785713329098127974021795609585166230601646935082886532024885988865262032529292042286228483043595350361873709896526683208054965269389911197901279603029200883169534222157976036923893705143738948814367938495754455230171051612323760332110946527441141626332048481084225825633574027379017377578834628153203948800835683365381150922670010524148082268023863896278321691807426176268537226925412520659431712319923815027276072641675111373723387539775121549466102958257293168756708322791633718291185946312540211838685075418117646186705278666344534140275914404407690562114159188969151407238498488301678673818303161060133956417661156613555920512209027749571056879044916869893433086623067540851341141461848185555616712437047760052256638791185651088057549792789946240289758134204632935877916620832717580560873487860969360242300357282625233484616572390763220683288501898289097747518070063240629173059884268149893251180956401789581241801723129471440777408686761876569012866857445665125710592023795026552727754466079342728912576508973416641770668252906896210880118836331350584698882136634532096081082427737605687755050497743116514410273635125977707229835246520327610936207724171165015373717626414019729624483963672703601852812455450230346137666610811413517848721150618338235912131731307577197056690774346239995204519127472756413728816249290318827383897979677891108063526847755004209597226813713496637335100305200900978191073240414457950682988748621523252185051683358668083147307208168437188498825952285815259302560048430601261046101591743761665420549524267974118652858645911012939535680018942954415487214856730473061281969530543081119123620072380732927053620300215822819711757384004925250279457081548558231898951531438457025398078435840726636684792802662360254166387146131794893006742352453624332854193279193601555654714592883442258383498683482582885561671317836846431047085088492359796104156009418388597109538476895135370024348827345114475215550012351738270337179890855172248075735810098660630284487340957481190483603908223853960536131365235509540751769523428041462519411782229886745101900779600047557391828764780175748286894401661759123750356837152747118709163880416607056754326557524693706991657293047978970564952498281292154440629685490915814984334180195937673272393017469337341236457652305362682065200531715103085492234267868845232050448929836667184812271269516477361652985041221045662258779248057673356784185889896591499032309392829595096275305634133726927422000997933960632602178759859750952561137388799550542848966472905704165390217031782875800401951347721086744755457409217812294049683346838243535447458600571074222856560956005622208105007880306420365111741811278248650802627732170294358379369364624363027952240154715187633413626675342052075353318053730113171700817263893569278190075465883330743243665258523014773947078915238688425077568404832737646930600938546493949033545183482503282714381522216566554431833882893396861302539645288146361001823457744881527053451577967823726341304702730616520013563055715156403732913105797704942082509521933784022844070596102748989752929488147748668736691240658241643381409458994132732217025524603008622604410443246504827612423755684133484704213879514761037522885203483925789438862740572252932054125550564727063656887537229709298089913098990532389293043029472783813755139224030958612060870201054612559882573205686895175194826833699665894756617176728921526739259825350261282442113068424900528572235727436746451301766617856370795914034287534622807737242404440544198556270391245082052570415268859045341135849181545757405264457662426777121964926079156762816223326860170333899349684250954684806817960847704908275043658840701422493553570055467871120356082641653346409757144411397221679098813614432321648698069634359086841857827463538697894318852577796516942983931286035359911313394464680775905544597066337023757961221186699905443973426611413294953551344197061826568116768555940941485026943401626547398081884560394288204298616119258891479984098165429808732880707290228485664599417313626234004088327590349542707656152841681479573623368752979496124609624937641510040066263391486443135350816326480985940434161997591658490079734516543000435458303531612431269053332776690085771847244640892960601353486318869665296869140885487621759622703484805398887444129363568387607870448698099938238708414012416957771900656189549602171886270629182986390048186104555751870469701744390286597246220177402370403327802980206671610000572358650274395952022042695573654538420463906588017231578964111190820973238961896003706828423609687148233498792090572311081168132939478674289147151994219811481386727865527505110586456411361732445022445839996101669267552798764874073873676940373319979060408866845234369918605907021314160886914664793591807858230119476380320525085296597103696232808245954797010584940709907112401379955748707396396312599175281664908167562955316393360454605995929783623780303283385879601740055397555917065942882187992832849438745169146599349164723340254005783679092183265655073818443512747476460041424122738926839203866732449548335724870307860257463884161141357574357654220476502183048849472530382349876300376247274417054317824735950740777851945637987542917329349340270251219267840129331193658432932172950398203704211089984197791534639444047610539510817321076221457174842214340464908554960211864151818170829064053640593789722510135222300772180733209902007908360792561102931247182529487927230015708164312013853029105847886687967191198416990751155535334430398592066622387526439485914218847352776727115622305748662792967928827658101607145782652244439339438835054183839525684250371593280981789806721069496093828757767587634201043807627194767381740559913371348672172049814573870254855800609908218196590687591440519526654016278868646134655048238564706362343862774514748058674834460717661377903395658513985507245679793761500338431768230348405753826997643350262535834525518481153992465576883006314235027707887950920737599668156227971371711212096702591363147990194048575289224340676981789716277171805938889501088923398264062057211709463795961484015975630470428033318829615286414247746004820499546593353050942088115014433514682443790741369764177744662413307232910450646957789185142425702696111832574778188405438983085610257280872308977026681906415184714587118102107210445377690697729355406285519641302004207627069038281416089109805739114297567469494062688465203591430259497536287031740328440095529520629215325346758032312982753653478522200348321059853068455146883419441102501845069017752519182979833457460922743221149666639310206364694134517199846815227442893257706928590479774656924902107309206561164071415310684327714005635688529641792400144728681626496047980486212017851443949360874458507000832496306442465187384871040411095117103912640145093496685571901591574913755822640718589912800083894620310736663191559422571636908000815367816477808866387281619627595111769916581761611670367021309574892820926110537637715038642007573282107129050309922602591797879496458035701626803242466506148319944256390390974962295524287393441778983339989782657255978947003170511142992430904676342983525409251242825610553086124038569388340148361431946572487480669767489382757832211960219160655765160628191065399276293316332833860242700252837916180131312135075276559938990848480306807082095244185394511654466492767842322722426879798099132103007755953312720791486946926353657658515389484776587654268522973924846512189610327393524474711534048176094841771424786343522684964268982519001674323253641685481736434463390618957559280560479138311219369449826755915744282925887500116047633941328276907105664707046801075456987521181788803535141291528168455056735748317415329937672747418791562657540725397713359628205561354000280461332049298975034824463451775296767870681350221520133846754882851045722631029149054679184576516894984988922257097534156037372517353554974761761805449536583203470105041171506786672908854896550202580044092631841351050499570685857884536441935130778794664357928672155879165052915408290825471899209279727360387104235898575097392705953228512382426571291030261509967089951289216080579113453521385871666334193408263854359742107183585310413632651618203151333792596914003680514943119944547939133921683335941238719338705229052972342528092114212506032391069317371891889667161159375415472221280931861338770887757382782410355755292527259112777776072884094080109422142814878789009932340819749017738674266863360286676423904820784177224095253217597952594889673788411727299567783593485135890349871566175621807519569471033408108724697291141094328604291275725799797103615703022705887750381382945368885499801902591595200585087670069405428081259904823018588967898869631647282599802799865576339765861025143283195272692168735630173595818691281629774391150747404038874169246020494305674125894695353845555544259173405763231867981644129395117616049328818523580461596583514815618480185090140071099481746034161964587348679474630319815713191605040497766120696202313959882487070719089754336090207108675044611134923174986667059641009624253535970406782798814772954775676878503808875368680264915557794920482409231023284485891456969424242857472582102007704636453110906663621437734856996989053471747234807368264981966140475093102010926290748136070648934495130371733999512419739853307506128670902700760653065826195674799928193081808377428612659469846785846647725500121401402610837372872839263357551348726308481157277449612434888033794767763009790718123627203888737900376305115718043410580154912486875377876544044507264773098973134219563764771608188551200957409856332529410077766272971182359606757182583361699084221695136669001037777011727781244881193860896042294659089405943485299516318097534043950234236229410443591712724003569580782179432840964927038694918437570707790037902323385135090541492960811688866828057625235217551091612965552433983296209370948888905780184156192829837653074975361256883671767179780702178912562779365840172299952469781860942942886148411091958521956546653589593710613300253307215231555117667510769532462494584724898234971946434219249970911640352690506114882985925478000221333115870117059832533931056520845298581924067606149932735073643403122057053292522169239585344201145286268065830663649641471068684236142437717370119239777217703009828070698953982352441138657415210620090887262156448445999895947771018388311356185318925301506332836703894884710476049609156977471784696483535735469131767381371031753302205010037418097241478654838325529459700620496749286739480197541482949816155789126144822546727639401298435690429335488728321230725669480659727524840156265052651654044245824012605921037486348159841617434475331578137590843192414992367459013151865687632125346909848762744439508465859453747759692306641575099659433046957331630183531557912226992500424807208169000246246713047793884440214035957589809493826023537527848052194406175981222561405312216903268746665171244867865700866330965786674845811400168050776876518184669854608536942199136772015499580849939872606328343856572732182689339062829723302355228955224131956311153454759052480566519318895712556691859037485693689628658811777142706276608705020703635926281893408701953648272946862693236879154117853016463460381381554691947770745314571364001064945807979753006918729875963405544935317742895419804334256756763722579206251603475801936347973184698983057349415861682852559569819848518985553000055295510415989667824384433030961849830952419178491798424129930736374601773447027211258854001653208479834781470418832549218538457256374675171053975026334600114721982425503049515575594698702660901204294618014160256451449421220197352170133136244656959016055514142125662881387487874676498445803011154988390299257174978359423955163062530634947993736632066530399701655683418971345230790678999059109669682285849420306426072159764496502333401410536020376383132566751172701180400938998246496143829059941210435090630707939602134455728299887474481919835400319038821878796276497151586647927554629239536967790925220843228042819522474832857652685464177015000673534328595038226136135318916095841015221812886625097529655639880875330963503020862879386569742533558359245261113319491688410053209382613636180111405177783422607566147661930935347897569419639339096879262072344371352677923425500942430406692281847447826101824652344049690774388316791562751048799982271718728420113011811751910355365735118237402927912138207058536606600268887793298454392565471480673969267567367839313563428921821125854416933370191959864454632412814473869598695015946290923058862824559185643355048882142366004437974773290879653096438404480395257055654712378424721286847788665903678258401688094764174290189942687985509890426343485761822777348380275587554868292791168257754436916302117046312483125673163787620686818290667831709329953100542058330030852250955857987446322316687142766500271899284268361488168579464582659660811356467973840496507431693289543638104341776020236107371141527127913626818858408802258015295872944562615225947770103461873081435538748319469584453503205174283142068100007435203440833787924759405160973195190281151169717727899654424816884733807946660339228155392433488084023030710068865638403601680405531337914468730719985228079561729124098144555143959423971412838039389821305870072482823411946490593482147792751083176071614960317987479840848697229622017791337109233720591710799571704969426732126236853811912505484912895993195601335776868319002096838880559398205374156761508981567103631293676632875878561161427843099460188250102620682257483392384358604714562261598323100548893324440522004272060067732680278805618952534524946712086373869255065888338812637345617319465212101609035810935793940502819606298093339809017029070006324841551938781131742113198664632047190811041163574338658154210295020870723004837462210759273112069472835605201063456143270509164807710643153379184885404165544525472383809310069563950072994791729860118688033942848960277950084978832146015264631044086242868961535959230958091941098351707606450982472385221078269680309148563308612728594785000724365166216239289191642652607094723165791557199903025623287719415243918394929266005167185222498439770607074855414296357334833218012623137140722792889326874651552208627149038190860031838644434444650631177342878142218485638782458558424981266680746564775051589904208909761218113085938117414613925687247471082628257157404254785606558159678563047743981320641302919774062190329516462815158242270157535356171867043699180389107557661499355515245442302491576625531421611416982782877739874970506599719945840805778639704785376974796402720988556688828025890156277908033492278371159385725682749333743879829318648396833090637730058991795266619626803965927602499156029569277172349896030830884796443164899542991788459715720442234828357431804548675726410604905912413656757225548491954163453811570773293422801077274148275640554682026276762619967718004834771474459326179978076636279645896361319576033833990103513577735484379287122132050903163968058142666643132188163408678675937414250315853585049726037456777203318566295424538051386835593288499033881791395946533714954870512669164519786732750458448393412768684726432042855114067966715192074336295506684874797981943449109293697229429918212826423347999898461132680534247295932351830445709542831346218175516739100590783211674606024982861836552184746019981689387416655707096670060542807463537013914647322026323054486572369983928856203196013259289792153813352575854704487026941920902143628853678654652394773804433740604829168873806669441725246989046476463185404632219437235761045542297180579768522336128729249112993029888095099399004448816235452897499759393854232387286999437341285321733931754948290710202832022882681896227697908294433882981364666527067502595417578633144061504486967025164349513620926407608056618617257651600465675150949908889079826478814981242511811367593310765837416503380461903822016207798265378446768585843733300965391417203661854897467680222102644968459506714483833265087364718536860244573925871701649120262108856670660402254308056776266409612029140386972254541167302668931372823001273557651241276847421128570042008118898700879775525145744269587819767056249388791118191667082372257056408159822078953350262110453378077483703372113059897977352925645524103948194885383832214411364758187621143772419760423390913057976247875010095641072532875360815460417858799604355050550844566691200996495935717361799269416183367812982753024019800500208822326288704054515543182721918159742309910891325672708083930880952850944929504031773975814533584545618670566798185749701578446736571900154106613054690252513936389755777900410414265744857879684105319757247291199896826908891346998221772768500608138235631254890463264270000652440723641639264483854589300088314484853040463697462291599451720339983066152283644931301404421225800122049769926450540394921326251180154786452345711332457724722745103213984464475892040943447518217078261494434410591639044623837948747654260235655173310239785396258536131251604134694984695125979874164099863674618150739575589911078286215113699501755132260288358865997851708267337755396228485281222452457599256919492762317000603899320739239271352855111425558926328168686124050152121606654871447263606391970744110055425450902854199810357965876190327324992335828896955972658173207374102828757309149873366597207902771608315890534432801224543248278765552423118794030767649091195634769341683354657170341817803733364924969204630309397660619678464587756740317976689291094333080849364250460020279923749026173020947882700468983554535627799227087871495139451441032843894214527888194272385191873596858962640910308530506149345179577654664988619867383833837626870601332913246466135184178236976354592785046508542019235904278209872170650399386367955180015869905183406636614961010498498934662384190028308241465597031746720603165077355282633905862280186451363103953688839054397982386228749726211736400429260671506920204435511608485477293238387716438482530116754830295300778788728972133408454343045279414651867110968559591955656607379513538400020859498944671449265517753287082399365032541152277282801324830225277285904735814843725383015214863453721329998787475275494217568875848046396245179876990805984591356119533497691563328172664265398256966562642484263995467667567784115288138765279601296651490747248619929845731614357501790734003543131787683336387202681594667085779147765390063760910224461294551040627903561577061619357353193871484391971554410079601395578362215844051605024271247164017361549179293781514942734054728338268281888696346488180409997867545134378488384402316573864315028968100341749066268210605224020740709130809518473769206713338397514932153374468961115253514257727283179842506160823090145115294563511465674406126549939611981062162861696111269666313690504789983362826770766019774789303986747665290815556926312978676012660714944079768097476968347876743684174176336893924635047794853230418342239363638093859866696603842786739516443571405127944689717027969042289180220031793548261295677389427915739132161826658141230798292154550227697014485547596736650839653548740228143091025670712133200732551780932420885214319927755131230193247789785831591847664932441463348878991745639465244358149365473737968053895412121460268181450212701763717700790401782266130980917755307316691323139132031354211167585138500112563234743812765091064157180989115043382576474634922749232808617787127865003055418860417222771148031211579714683217370573355039680093425894496319144721348835873617895926248341029579422472562100061298477809363849068352044812401133022501182954365979881820974239020491271971298272453218055188202778233506257505959158164434027849481139631593475558549739733413654308192806859063611676249583711014697863739932476688065529339349287582112823321446805018437136238565659547768611429619983381869904443597917464888065576030808548323083134838393427706852703106720338969370467109223846781930504299211171269774709682088272394209952142686005646103925590061872499205874222566170155196811810659146469531685421906680334955088629793648748771202011116339598084535960654659379796214363861471394885838228952198555338508579383372383658794739560310903316933339125474188326363302131437466736291790359726262461023581079421479191828440223783973798387045557114220504017412486464023535606408531819022793401302118271778861037201853740007365142562755361094860425252855232175048105988471019808259102240186629080724998465065974773928186304282581847925073610058767094858834475207428558060334328319140595055552788629852635619203604175262388573163149647787389925848177393130181993096661737845475653425740951527854118163570098333492242597660183504487624212644120637396024207386025576649663950726779526945014202327269690319314028999834175938630657472782218859849783646841410792713801006893713668990203228363087811520729316765135944260177459303616269295663875037041213167092355195556484462221206009938088938555474346859299636176314266317849991512079835897516567747516642362194122313430432988861737503060736273758795638461783096777450857478832492615766799222236096910849803361194910141148627406961219415105460565518239331367045551739906064666344464596830804037343570279239060098974394301528875330706837647116396305508820957028555938754864561572836799904767225538547013019714810545074879939355808863496276845613301872492006151890365836108060724988597347217498517056158903132847323068024232154558932249829573870978500507911726517111753547312061647192070084742479673022038155284653683147255725374281650697689418030970098161626659109230203216167136357998327072418430828917083402536406862520006234912766769315178432378168318210814738505992072938030388652727429981471368541292975533996875702453025393277103966700760363941483262042574887234899967903076476613287488264387915488242973384736611717711086734216753593626093291254813896214122747647776312085177713304078743642117218119481068171696388304188988899235982461581117522659116547410059872856973795930880383068290176117560909004570842290433438630737352316816676511654228720501550893947377776464414962585432262112173353762918555364629275262700294848007767534831075174142940126428168603628127835653337949248720260052988085595373079731639654119844087372589657981074868864344211394308001593178426100353472797322253032085675149784263889795601788933658960440597466455548081151683614020312369474067087654463233835217844354285392798801067899101338387238925552469081731116872984688708156421201901874085273584437953950281623063107052271423769488378124954429205845674928097225591559860819649806969864251707810966251771512612146023625235201220942656828842154771304331636801954610228798829059057482597578628631477215331390418697969215682047860580332994991918139753420398964406300697513556551815587167043392468520976681123632750936030484103837261925310764384781278341118391105296572981751435626697160792538777202607593564998319078626181997752007001429272314899484265530949124083471739344992137232079778725066140591143195176694016518738935877125051401630852412347786241962474858921485759653119444802588272205655885568963808314126817708315606547891173468425832425665944060724180051441700455998099963921846250918415134221885949745331902665737666384082596170022163598664319593801395540580396417136928484325901900139390107339352365242725372038518608382818890994754305528650580193642362355716819726406556698502971529500104220330607965208374188221443995975429970694691387440350704437954508107357109873577510894693730565512916623315077363694519246442353817514902235303906542647824283007460016823589644741010129672646380826257436330452833185046862234628848670144627747268668136316271904042112535379662542820260050199783523357702110955008405828505313591741228091330939309956057000895856914265638202471656833581974437372008804052059069631303091720843065941784666457427390596338319289942043522388929107279800633750190309583315515786683980148078963846527834178520399053171543051834397020999215976880570750246583964108729423737759357421694439884616054548336054352144591902991104374901654332148649512403714151527263952218978720139870270228949068949363153982263628088993720726851586933015105094607437000200068442347611362805206302752264217012918731898008968670927194545324808208020237524260940772200466829372480043290640196110033149238572945322295876128471768701739177341867256548256142580989216675042840264621983551255330294991898758285913844487123471657453764137699601530021135520142636349310051952939861379730220565286404059765878461576707052167975155589436245516274676179344912621089246494387230891970648722515491231525024995136059065069533223690416801176732954017152559158019883675622515262145662444836874836256203846120857537009595915148175575808510795023302397353351742194004875371351787575395725646006614753778325105929027856006140621408197662132075430388370800183359287445615591525338312406389273105591036383225487560829156559423088183420935468138689528369530378846393748008025357144182967025452400593641588345895439510819426060224844825402857036515110025693237366097751367967238479152238237124573395224877256799134220367539377497474816188764425642496801102532334814331073789298544238048079132151948093797142529102324122352375723936216140450044928544118568540988817835186947698560192641739814875750139402035561804884845821002147973306253373279341612968187349153830481306306833247804062775867042456388530005992160722975429527513414764025755563488478421347079889823206688965001457759379414838671403867063573485651080153649256596633814941102735081868202872596927058325758236570647189661472353975017625393303546908133290202198385793901073129234818431332308463447215609274737042301250439267807871309304582378231226240693334675667854992988658746781701272945683531950104159739358354966493976642144415868504255403992050685906030940896257166411461475109026155725519522778572000965948177955172063065604835698650429066215827139307728117294156630410115699571937845037014064248165691702376134956202675687369587313130508475060271525618744925809349301534053309747572956043726904194042080687750328070329839121943435231917675003731616077353637335826871136046543797839168407238393840937908968712384012097743295275166277907458295350405147121084745862740043909714943490159888033170632943999418145679962160772537618537004511489619977973210059404905314039040345500708436836983723902345474322667408091690302057725579397713362893740685971217976780428450127636122090405801202703215060970279706700534405170500403502655850840550412399319855906363180387458274528108090528199990297686233069857702204663703229543747545180032791736277593342263807751080311263659219434651072585520664054430307029861167401641486357989007480769165610466380490863472714979719117039772148000701752689837520468574675522614847174299541918809418963607044283625966493903419539794068520818159965634407025830478952501973471481131956719153576195764315239517966149279292168586578580600781797219609878601687965013830532670172702043482677838339244221510840758380390984953897097578537288585872899367842767452998504689001792910655444780738942060871218923741590736300997597890597530531216514451504834708050309124312221115182292223044230402818304774487057758376424041347557163275775493143310227359076617995487841994825183746865494807908186602688445029346416167860215936576620310221150346738302803862026969536312010083387062398418002044840882925364687767588438650241279550363898940427339078464285325162261519539956900437378818487184326498190552819657132841994948653263305439168872912153719288669107626402435295150873860991086843029262992790438360952215438008444820046193025490463753490335107208087716128771242400188976058676590903077149300184467652025644261193623967800768273066400504211467881817787424695891124132180470169290545430855696670303305226049769581215673037897834249789710934127318810994738714070021778583089157919271886680108289590789316885563763254538590154092429928618795162911468478357758534916894602181888172349604838613065446938086028783850020583400152742965249104302963358761333360999660200002188202592803653039613552429905317634036248901503578793359943195619815193286860724224628116115014753371482769240837820935475674730784656771633559632561686502630369864491877713838170885961895119459665870893872496392623278221651997777211896050921588992267415045466521200910675655913951371593110726705815301379536262528865220953174964817001836643050705289813852232691410406246788023347792113127154906774588981759615616046034612956730517707957420361021897095939582412633522608968384517624150534904306476667155578400502228737400956885367868712820674910707394552922436856568754022443795597633108516026884452626550349829377112136257691558027189006523748404822396523644164457650805295288705519322794563718854708624476442717909485207755766461101525474294462579373553280932126204329621145464215568864318082421760429133349525420766496311710076253143143814599323488550985614843848285275735143562905362438240430481835368001579404580758618830801780184074743688832010827452019504239024777963018280608020451744614541406201840863463378701737033468818934429343626472897933696596387912753188318586765605454235817821823625665481496436000912720496094525806917667759994774213032094955581490288578078957437189522242928517513347514190465596382141768013680238486889005269587629165055059137610014087051234934762079036232714269054315058336612960955714677239623856388733129901232253644276899220838910436444250156672103539146013284537770858215645968369822407639163323580169337865450099372277260276699008365710077044054717858989535156976408366404731318314208726821950544005950128456343392471161424855917193345741358345408713665117767688840850860747778671570408737195479410266989096242778640518244720234015523470478948962610823474402082840778815130638928808652459709518712810550342751937380654871292193019233121873391285148534820297883996917787395724061877101572141746893657786678328403618957998288068096961200336043148312469103772979631410598094148459269443389295149069351711938844150168920550380897134979556617596574109903064020541175380525542443481170482630892587671117466726302895609677306095576696793685294111918441459233120660769434558196432592910485678626670181129774377115290221945985565104287566904622175018091670909272651174869007509425127356373476482923348152791232401350468748959218101407953255095551039360765791447528190607423800089539664070904548336977384818010081150338400421472750942667152739938834384683839545401363440705485887798358620372855176426557217133353066943102475396692564899711528986420621804569024030544738779320832362522820087890304207294071193252718991384918263843549971489587064274818838815579914343611190985561919208800772065436911692539297603910040999450879900852364306179287999597191197810481590275799308473051549220750725057780723492133287862174897896409104124590653597727423331110888020934348231439360759431020573871154296703492976669452253817399691146346466146954110475920553530634272689616465247251295849955307614735763291407396567706083769785024151192344585919057701723981079867985742928810061352572872245311002289387084229881150572103005115866987180714718323465888085053561044956788731107798995877258424189877504316635295235996279402009078418754360692544653832643694931665745845144411778002560713173629455058672284435137051741703723617766649348965881447406528807788201406476740258909837110831360406506944706536892169117331760293526246231579183565118472872117017293109516680195643479085247793117453443926821862560741638479908035656240127612425068609605458893877218741737754360745932117081754704644396519129276214645073907900672122357348051162972318966092476375223837658905728396267349291626838731924850112462576184740840260204443491546080249625391691219757669456323123560132406565637035204987467362601085152444793910324195710356981722286292280735468753871080717851578022089636209464493072776620099039832733882406907068935032582205236634045784716215352213313973858715393567743966103953781255428688587550636979662317784984451980648050324464552721636110394699537483730353592435017345919831792255189401789544573483954383254182290760052572985471265654126143186220854978529379479960703508094701158395202256547080389648264533389624329902692350379636443712794351552903167843693032534254771214101040976485352646158882910725069016066063116248465562069932513329283334347165881129559103912930860536633986981214081029824334599534455622568690048822562928976939119194595986831869053091346932204447937281794866626612931787829861295535719004867790013494865225310718485473167349346787814174267569750692803950901467477141919537634116288835261463501598621059554943719689355046369279782574513968475769917223766359918118228806127975942878795100444887916087678945194469237506464665396773246498308223586120503301869653246170987131258296191233261445735565536903553993640415710867715024813794995627026946822677844193953775590098345346747882323281218348856042178062105685231715407481257958457345078513573616730456127508690662918795703542683107908130253412124665037994063823242503692740924205427014072980670935445349569767963250326926511922388095521789890832477760795471333103672102791059744509294269819349561001828645482488753698193052656192937540947976999121214282053344954746587252469213485911902024985757181125379304042751190620812908188277988132591168198210734025889812853907782782297917187225252772912759218600119064170398399769427128182610301220608242297836785189719463464055035912864925807770161718243545573319788074404601151520973932913919701844443599238442361710114973085086018487927095868820148920614525179712733886717721128351924094645629723859734821872431210914957644024608234117014694757173516611524349519055678412185469093884197410744350491605746473560474249769722432668590781163274392684906167890774072745606932379539956141911671993475787985032635650603892923494258108375529293302468795913989788750226090224667679710662845600839352410458750356818523826515428155177248017276238163439561088571176295445571351031517104459774444756619797119703893983574954905979266916101566930777291220177023678257012874707468965817061665377011361340832468518277567667718725463975251530568263570051152804414138393742756512572103717640666462548338343373297578621006898395372344299250556049102339416561630394733597226322446828266234994608386369577885186533777721339866207852196070951272603416606283045116787441985844914142412161237965717967775667885792457056141555619206083687619490486274284477060185969285190735308068282114344366869848755359839724478336116954182719452666830422296162184184771944330065013701288990888001395340742760257985950842724506285113573928338631366939716691743999268507717070397679707221676020456474954053870755177704055041623608117703696718262339657508140139056228978998210360723448929490783818360297254522999335758312052971725221368617025436047278444484226929219252704876597125278638865864446027986468001473822818462617970635369408334566638180961041443994494842788432628728989029055557462782945088649798386343379103473981477958919344706114362113304816957991131184696060570211197017910871893548013900023745320692680666714122276067054015322901869259263235562457323848801446370733929246711062050338162905760882593115318625231253825643828284801278134431883354703520527539746702249914228041135697065443008692632957892017135954694712659448181242613489730305432736400839960653461983990319764263960835192898910484923887528573768317210415698941943713619909129088454744749020630579806411672425372701909571501560367608196219363433311221938968072310630177144948679670894934767717974865475962041597888255758297772492085155598788964264389595556807032783123108375132127532050341985301186909168867844791830143882324973107757445481337872939332115614905166743892335893209348340169088733855476978945971627751150503944797333429881144220500627112701392067652617188482054991483554403908362694449008532965781596617334913835116546497823606959592551643835579350738657769385295277920932073793619249900437930730472119350988057650968967236901208795830876972147296634573740553299626848349067523886062171031091093694960365841594837519513270487732688719134717203661047692928554875693840839530476465817444101337071563287329888617320293413712076632242062483315213950535613382606215231940605653967344161192519601131218461789024226846716624099560464619015794383388198463584360988926071594416159674156746636743184774338497241059966972174345326839578379989052549522757676513920240857579110080296838303281981316411870720494015114931796179018674156203380532475554150129764414191415042458748437117859085780657357282071153726642908287401696655441895217029474412272733258231594256166196677000634383080499533884335103697693269992210477110974838577972322499088618040772683896797199896519399756087105075782508611424042402706249914951195953495331931377345134547380058093111915585972024836663054763185408028841187350121912476615133071516087690773327116666538873183937179198991817917917493802764471842684947531357551650173370967061724888946048781620464912020798702723891163868537610915572742246944787422785467879985624816337327786562601139439254701484710713301138564111103878237246941950927026312310263328784767916401837810324968889651738330891288593650125127585279676914974943781545751380163566207092025518592614868685991006870853019549313808181286058333321552663052357309388086411617359575334234876239799559914161676106086839167620066660936334629550299944492122005050506952228284568672997645793186021039292635129886926675432810268046006927031921125251191673135426794785826840473090202516476557758143955302710015686517917585750620440615793349056298033051658808158515616624900618376873169775278987110502061649582611882176118117525997328033260204119466451981797198541293104176230357437013039448313574921818960432692631465173604669498647444795970583764519825806770637651198655358939453507446759814188278057346543174568512804013080103856138488336909378751615613690870455631569054038638295241006053713921726348557012636464355983236878228921500789434109099289171274993226907490052197680194432934287839334296270428014828551992663157169473722215627507455244909316351727190517794153461135958907885491722917850478134441344512767322293408806952545341266420129818548124805077817527176145564938317138884695625688503037292459160721203324205298124618779998977207950042846917533633350533039697810109404887136058599541002553215530299429829669663148210258450650289115383399415927059741556062186496205925415815671165809796291413330096753964330325014370991143987360298723454845115563176127377855073768948389025304522472912331499286983741095534860349337603327276323558541471609344502421515195321248353271303868739607209577540088632718487415347069952574537608927710903768674717968123606694738528002597629536649781786547525086669319861689130432988284862180849526157653243486255019726670913757069518258927773925554694164693249480934805056326060621932094462437324380050875404822820367118023799586849450406500565580506028842575477856102273145673872552767820883920453832077841058193956650871463118680536578146647748996624955954572690254351314242239578117963296571433829855169405592867121889379131818873416101251513520849712771554560547168266238394137678738464531514384044240483504833214127615241342038044100521686356159114767169474345219721417639884688915340438077252465846924321177688486507262728386337151125598546473006797943268572042166727137270598533208963087477047149296787823471936681980828506994347942976306111123739122330852526280533461718983088248051331290617550300305021200919166178795116711887340166107284991364146730793366311000021508778683986001388983995675339239955592080733707992736177226885621228568160101708408473122245686774554422287897271033193078936971429151923058854487082064422970577657597926633659728475293589710057335439753599624388252271523395701485501612709388095013472442305714884760480077035634708322694707122014354656885141818471485137091349700832613263308434669256866739839532710190697795656639989514877952442553778932000267260810730263246549188748283986018224562454618188495601113626793597118174603101209758377708838242972938529683043334829850714530426755452252369702671674505160997584147038875850850627962632250382383359652372646004542164036549742625154887726883368390403050105046185973163489203407637127532704370020112783029303429870186321959334161092912122338979847612983471843400828585746468918594491696106431593478202253787083953832995341822992824457140291343832992262108761742618031451419484947968490081742281217434680128489294760862902104027944061241750777751374564184515954703578112678390386052007639025046956533340554196722601361518559520778354087051828632664741803212878423423037432400018016814638617721279799694899355513411408037231226584190952435177096476693259191878119535643437917835465190509062590693273395365265820490847241173464732102023553627420372499918993854486866466365468911435741878351324830001754611798701184748882011658286172113923651686614094610522136512182810188633103134106451693871991081979336471706193252008852683772745716924648123613402904968082324120156897079837515310095888016872087169551069943851243435143063333790754469406350938982487690593037936585902717484142705594734859927393209766496295289940729660007253405935080351006404934749108503314416551462194238704185551289788936257214010530012774362848070844501559457119792309191586240052443323872172383262910969884121102017077082155870971779882068443620815201500938227658138086531891385869700060684849305827999327813311517808294870002531252065475060645223600983342541977718957361224756446661462724291250848026343056169824865597777059448972391368390086820595820441245293155358739082112239526046843178810062692978710428931987525200862224106093031969296429905971748505237401017085168309193693140110475367591154811794286348155362914239285366172110217790784297373976259635048863639106067848174333653240196441508011128564540725848572315471529939146193976095126996622507654736381473724148762063999632254868555502125280261488727371698863157197135531559570430832614955939347619223843008345575631444834773549523533267034617051716884928042886079524762001903669978403344356183960601240068491927028719145784026375990960512661183445760427666920464768144059149355897275367916991217535220462059027403560230591726053880953641431653078713026751844012484745071199058419853668847362497558969243727762231286874018012111507658673473744666136023909389034920784696904365138468675661765275575554683112569769378627772429456058406165777197683871355322454017810864194363912230491143209482344000834373133425781474216069408631599874349430653621861609041882606012044130758739034364690949785504374911276211646751917480806239416742369578807744880637433900268021337154118058420574151460656221913831586559334464312110213902145246939112332116838446543548834067316955546026824776226586572811918369829103134368835237735798462826177174572334307785025383487010958993981008333877329104223960107233726960538233521798159982490653250858069922438079649779089645905846663937495396890098360966417894567361977540091151468800032059694699441245337786324215518532505923133101221492427818607486718065124235391880787808174904969569334182771918121563461038919793210670808407960860560915356351173626418331197511428736909393763551307689494247598532214210720967274181977427110307290967125904422847484538298879835847034066321734185607880564413223536559366953830980826207642946578469930990397915296889458397890686841174033722974751820134007042867853444358777445649656674614108237269679145497821994431864098042348785728030025958654298975177923412372456804019342294425246500194477146360886725057439711968694945202263346393031320183033115872922823443229756066346100442392452598970969430688616797238868922926255770546065083658108708204246385185675587946056790944639108140911614438576732845261289225272774424586230752997585449493728973497553040287096201160059336472837120061901044259312326734435696335487208997283165814487913344848215363546556096633774495295291351734784304209119416576057259932669653469392189464679875610266528024977454804263376164332879355941114290464732817847494429205353099537856938270810353250586531375309695600478294303840572440077156706134902006387641116306927740377967249000119494998174222719130690819247614954794581076185678982604017523036269605424594260992327307294289632195220203400969671770077157196551952174387513971626869562054408646133931114224852262211713685313166794822713822313696006369369070785053715379385165049458256875249069867182978354412439416185569997564879037140065164930477809165113189262230440321045109362248990713195193084373276459721849939167160760415895964052204004798473349107130599369737533207287611694980968969976077621093965252815746501144995082779872517175227557375428496306552991120916941621503786728236758426002740129086158305239177935085514784543498276395463288641163311408097041804445951071913088213786174041755053437147664254561683931892995629975332764472362856801824915238713165004644551039512920807521618979964852459090296089572080642036160491011360890052696972050867701519384856094641356714748500704404862594129121223931275264562123258616956103334571371164089155775855056206214389458315418461162906823458097130547474680279932249161529211026016281824576840196041380192438996534398928307304109168822529290560700336593046999311459899927905035934690535970765633606877794352391709074740971473999754245408510431727287775595762706832052232808624032830172571362040871037253176174800830788758866519887689416147604757267863284004152909673330623527955382895784529922337558640833135726130414105952201708190828911488039821506716099003376498499441805440466370117174591230126670273301921376693721079546155732730222468163931543657776020411458058003102605012624656973663966006318284315503847177274795227181631016896846023299416060386582993429943165405351847464726927246966631864437040484294730304186707205502628121991203301159398172584263791189954335015765613964176156830840293808834086061949549947756408871959179477857361078382127880256087292325413341083815794222300497352646913278034108814776121879922135030039664139835566663446332019994191017574307054886275071982815383759053231471846051224893460080416507215598805902237101627779127244913260744670122724669350703027563947879557687188919011818296405440884813350251180269018996745845999745308722693311006658129742549450927266211031522143741425617676645055616629332810776822554565928012698796517009359384915720627398836956096348022487631268568727540578567492947565809414683732239103059256759361182063500579880867576185241597061704604847625410150236728334656422713956425493436296195396206701753736589398134271970689398689030100633173471316209720134536381495799863129442494703750106856460981333344144005894932654736286469316039030989147624444912632056965559242999367878925944419130089552590800064560185055219771181401550927969636100773590105247593583832266422121309781048625686487052451012214465158189412222938893636047847287123681867822193468694517256335836896455049845699566951313688749375428969462600152274299070779843977545791772744711838212317826678469924834817499297537999586426835836233438134994029466682246318739122917542747953992036613018196279134427556415189137834768977190868378701071576507074086511313732812178671921481284487758177237776264663343114430782177851664519146148703329835463873261175414277131663037193993741285495547528308895318646781111463625704264615713185069356757313459871981560668327161874182244904726493100118208196134491822606552555780623888196724998064223829880379339391151444332542190003027410578232521528307173658626471928783154812855223531042983324167666995035412909044168543526454181670620225335237936902342147098204360885934158034458166128567397140247352276686711897016337558632642447651458795358749264665443971386991830405982322507229955818399050773441224186650409238014818892726189405851330416358863791747412718933233079667102779689126703315135408463228572439133551469532239464564705498538490798800982871022422596482967061035275613454351227563542394186776203758374295203200803624727246098285573743846727405997356879459596447886244885274297754320552482851432417025826979209487910654330551036366735692783081023480066632885827823330114501888388018163274175552593724767804192865570612137611061459948156897688349782228463251353172311176418251305760617804252015523760664506779409400670957492901729416624737860892723038074767892501239779395002541790480269183486249696447799547932999533145920846478898458625583330227994818013173582330235369015558028572083010444898342193846704473659281506701546627147564501621909672929973541535624229484549579991321060977050778657303523076140337610277558173402750657488558353459416396071086006398958772483625582921029878796216513989837765138433823136045426153453534180746410232108861556256848274990667541184331610565266186944714317689987439083354719427088743581856134857825160352126246476494533494194496325984331606283896698763305055391280460629262328035727574354919457192209377377984556849468239503716128052710021240862253161922440490245264158339925762033634320026645335154206055995722004502855808809320096389742872609095963920605757499520372698784826993387861031179020130425354145332647451839994594246275153871198534581219568899439113587370274129264169360667208898153300108950746139937167837233116920442610047484237572825777179363288937679174873611444309815200458895195250500914303868116677230745354803330980163349689892808484677275292801656375715698860189305284056267437264347273609151287874705234490168529902390248865976967417328525678207062352216597849090365225947567373237826872603842065158893771166360918007556476133193273448640043102185783877472892520271370087731920613296397940372620132729226289210943401275881098084804861882516904298736150867705962563996475715783744586183900276361383474518883213892364474207215589999814516677617677100791968137845299058824094689248183142588802526065537479176282878691203495810851086101917553202159316178151557814297893790970430497205566670240693812674977193677347985324741721244712702345412887834585571631697027565169788204010255047383388008127616596690283165414210107135295762529397584740640709323561266799665391423357968660527638951304836810635793155360449190304839405936438852759780071676905700715625166086050619701100549661520869568351684075098546778780533215343498499178493248831900589377331639301305464433476632955166496019953319351108116505201698416462724113793643612333927108497377261162524521449934853114698718479506711983968694951202659043348816125634326356741723953139714421629123038810028829817670713857607604258153567332798749006536529698851527274126737715767471040038223358213478722633241670275959994140878303134509735101992918298925056929199123057927227085757593400794972828959400628360091000804977454511112167949996691494929782115982164596069085903739579498476042230647831499351309582549769728598172594563188970784077048651384164737259799874771247455618148870994263143912594762736685983632317747414055778010626117030295359454486610251815869244196586660856860334471318318159127632351932190894775089666749115537450013224104803969712071641222883351299056082326163012216749152504186087156163189505643565154076866997297122870621197893880668051380575405959285720283582341951347982582285645125488206407094128143004285909322809015344019710654237283570026134869365341661298113807550615903067528854369244798671675654817520592521084383922093814688214926400732295029434538935715614617742698588620368904512258659044430934953137341760259890172705175519547485554623896452185189087180207240745435734889924834658056786135715264424320244819093975930363940803595688450882031257016202923539943552808652095019875498727350836534673871380822273281145276043968444394842688881193991233568299871043454681866370564857297119411378508248899369658523475915236363077140072308107249162301126503890399697144833524385170838534952136896336715247512132544657183495226482991466049067714181539010939822552909856626153947242798713558987347560576849207173799020982631643623117369810565624371834593152190741696421782555460170815262502811271074074718918322704429747633617255003057085317796909233066926169834858415483558440025634958538095634484019389548641349974428426133451073008281187564580030367910796246792444805273397919775230707893941314448634741504808973473101169825506381899878339948726370747289354385631041244314256170911659752320968566077815630870536362316714246472021356454012835069481445670151708093958384421117969607351235593876076602742740834570090450781351494162381679838565428385651248367327992770961669121120074136538611390652359660512280700636624239462970862523595763702062553205943822838041138947193481486919673545452029976703437002246944921389822417879548090187357632617616361470175596433982947015724260359934805308996060184018325636218137627820441023186564561205173006907919917514940727030427452239063980120323352224166483292154413292289230080324874465698451599326127782508094508395129285402393454845993639826832280482922612639847809836546882225104938674554374898304576416604929656066724801593508667690757032252763126084906021434736937310033536659840324848529219559566372324049134763487007012340905826856832478112420754782806696435110881447173842254689154720860694741439458518955876430185907300713419969215687950474075054384640518483474072038134801035416086039551878332429743465457666533911576792582916297507734681163268206705727582366032886478185737473514285921657078425126799099687339992458369201149748995593652748671919565839731654954272847078593518311554392683929204506973909280988474200687232911728989653047769103580245595102652095140408321161886605340750327649130988320863568444504841106161248826738915368730972878385613823051583255708284065697757779701713499089050839701600727674426194987002687118084419189614673920282059220682047241925307652712863174760582484525325319487270390964663952677754739749566596811066526014343595682993436183534321462887116315785077991844057088604631362862082432845606121472188971292193160117565220761468715366804220594098708549959360311927120668021416052575602022646107467434773485454333350050571671471021051585379816335185521656160510984130724581831325455597868557561005026211759968464046871774611951962830026841607436047900599549924812687156537710116873065399101309907751487860998373915917594534581899357528136100498176148049450318826659664108109440955611718262465344640011157662486668355066066916864969781346586207687537480721333518204905301098815757719173357755611885284750725397091912202615334782814895308849596278653582954876644279606240018794167211916705699346773764543914387133429552508351266414192735212932852719216427391619107021754764171679966574244356928000145675661461125510113682148266178614471344612168332236034459637133156842366585940351058193736915298194116167160524775306993487202205177349865730212651986841618077414484592385874752262235225492843324927366226572139082287003271008704231293378287486582135109272273015836577424881383131911980082385066314946548628779049111996243697813709735647242144746648881351456039726917974715839875725475115037702815378006992631688638713806194583411852164176371612605105208129638461195344358416080468732121386460335332512566436077047805711368735807998057238737670282716269801259570073300029873135335422480016762010682747366891044119988637020803439864392835824198925774060892904622863072930019404246405261940714471765611161299273055402464004448004508929838142116842617250493830759887986897256998945091357375043383923288477290993674477275846836633168701875608066659626113282149308735651492134667328952253394084579117950187255954843649070025228916513971169946649064678300253649410344361335433381708471074386874915894635112631297386202206380843928474989828291665020636891048743247508260372917355827579497272901551021380527293096695677569992014812650849909911846307846016167570637006677626700941083353074633064539623385653893023109170375582232997216615192541876211093817078449441189323814351144013124974417712091666642291297603855649794395312308252311682817532042476797709624553366675456795272768629109570477787906128718439635433767226412249513185449424708540745363308384325310417004662833365529519932104783247793618530481611849267502028367035614401144752941177234765094902682221615622431219599381445934753015737526477669354740904436665814368167222785141036033672457514867717791278452956860108408197810960013063878152866468439277343909347952367838871760200911220615546907958930566096282792634376853534226185073361787023328387394619617627235780024416252826410443668119713888718244287170600772662663752576443249228467792375827081249221674273284656304112712686976724924499267294673107983608229377038997073572308427938769252761463917578367483825836460490728589470429999635388243268370805138272112766078753768002186488306449825872922465281647584308335082808392300607656703350910213915152717986814490928382128434232578243240837896775181779527381537365724260551181334628886692211952779781641580413812925110245914179177332187326557611513805107964642582923620060878406199899212556098150411892402247402367280614098781512700361686508882986056614243629987558808318237852446830703923428161722775577304398842418377509804928915613621721308433435987457261415322045088595386257110932733935321413660161801483866183222230876231278528042902576872517797909100971641466317450313629632231854491756847639846774210109484692677808034854746533199000084076110793945134695516694746355894286055951224218450421605028978027825232605876996652027957812967285355722156325415776931213152173666320200891160189618079604145049100174191025578262240492567043932045444642221656395062097467736614820229440961037947295381749501246575369697107538633920080538222975116107247619808788918344992348746293156632583755698481585703078004034617437393873771284948911416804943424694174808823606272718615028008609085919685988210774535419531641986357702424312712386516418552039015310003957094734423731527261851441157124512704335888963010200803778774647401599690232687116687496554791563884259390234922796319910634828572361037832554799372877704521436210715577813474645275774144981853667883424506604983277471854071128719750725538488520908758329819581977397751338841203866175946493998018687808855651570874820062882078251732309901793424672283568459536365573669829532649328042624966518140945034139522315360447963123223330839887370772251186987348106354718166891944552251071944957702009228615010809095651850802626341390896106116082573317839798946642368889842142291668017591726348003797783012611932986880233552281026643814485241920387858328750365679684542495681305102844420521855035236825338592943193435300382512077662631632425403038311826122683415510619696140769140646537516912182042784828654285824509430439704446287062503513576575991641052034081230953621643037215176387023166726741071387858498735398602703931109706908612741066285346810729344129251953233562070994548650670420131897158189803316251876751404091977730436080382897422203927372273367206401214015964645950711114723715931747953686593818878633007131977743407428733125723830033497164731181583584116525408217563051177603349992376808295975994326964312187883797437671395293578923090373151267059647456833117984315732758436362900783457355421985793391939366832733383398870783312137059476256279431561125721512321468270500280692062257813614098046513150751799204738181258347389845782009678044507485652968624876293597331922766773144531766989422889522530761217348974838472773257556193137171523389404216228450526277092729579026641341499943686152009911960048305497382859955444571140720402887864778026895237241279492596911117312255381829725853600587305073232845844067633760134318526285968755933865645309970399399487539388814503670629753980425843555358537463477700900433559737390989063543146129399993959372403893040059632554757506428546664310400133760999918931301382744101438129942980330767431421036526410316718996335787801128287415081396105915651862441943135025240598787672379068323391698659169158019732218822608567392647151834055456785041987957625713889559667112990652586442927518538822630290859428592238316886630112280767766715154534323979745113314941124590514376759392477275936139135284880900370333013745761809968817825894369816924670203917640351607763437441419287174868267742739618893139422398689064887367383894678021811302383376197626899476021420686311423793218586394732639978035161625132237676296095017933425524806760731854944379101652869113130311102012668055936119606979586269543456047046747709773571594870445523640155461815849362563952960018898294130301649400831084410957871835081890798186713873818190630876367292067865065972012697654016868023258592451204336047827274990167893678909464199049038680094919795166277749459538201422875351967397375337131228792691177920030273492072506676574183886554190144543576149271867334202915083303841433577588996995051015634750794511381740867954453822660846338850303147046038199114087310710978156261077056975303675366087108014945224025215215951266623495083673479129330584340202787865202731592594968374508852514329737962927205284931203003025005680034382351830533947307105399964452754866056749584249416890567506790405814632867857541442610146159575630379547577882339757458403482207944446208215275033925698323380825528770080414708564294217164778677031126481194985120666316969635200075072015591730699358573890509014809039087473633111934815471603271218012523397128413998519238098081747653698167971122279584932012672872733915929833637655817477939914049143157268630218799949761444431632481546324701104034045089761690161268298519253098585528806224324788133319567316853134191033513043221075561691843024517437645897411944608893530878785505489632487923504878424062288911652777506540471959711921435584851105238486258244925010828315117138289612828128461649856874436709737774915090035614093255238932180694301349633648142033799894690223896242081186532531777001087114874500434555246199537893369515512066325197230430625211999305099541855179379451108110985196211554930227053723849436022996900146896299833341105466603529235172513215648935731245218665352928957391115334667422103325568654530079817244138405643718825951746944387856236848194584152046077203654722162310000718380656047976397156396825569759633072433960670977489041053888405141658446707115536929223522658511536933847850046863358108759106835818694701709930841698712692842911156236180214801609706585516283007717094243193028262832801944529005734763500201729282803605316711828656840871353404704288743697993093257031509689037737131102480182285792201065211088761781428549313472743716473783192802389418169737386243505095066014101697214939907564983443941700615866451716336990127872737313352096215625272781033170228771103857314874745030992113661510525398805947050715756026480756600570202433986475461866389988306371969056903123150766414235185477304073954556125893441158810554351111878480782109734922002116963759787646415538906193097262786130670324912596545629336622348277154256678694992137354949233044326863159965867083804346160153479558744216355204779946372237579275720433992944548712918190942038629176474976484339361518470963796116755701020438861473188530613327965932951124579907836948877219503232904630515987485460473602008468040947197876109343951300204541616698275645841175974635665093575317630569230199518228527762255296886263928350021045257777939847875057427781544508007095018088881809731877125615921973987803121743049806535227235590304318345604035717722917683895205898959468681426879718186584844641917461129121084821432834225267994029465016460735612795009667000913706589948758850490529472070830299772076635977623934367300054571086274273900015326236986317052070154665509434784087557240377465181126748354371436460474174994043310439360466520008309105638814775346589052987077011571693183021991655695376692964700615193960426038152276709691063240769935507851642167510811463421466259448999725231584634335767166300911882225325723170553378879983416935581285437277591140078776835429409449585992574584143758842167280059410785859772506204658501164715227009014064028113374967797425192001979084508244213033679784566715917322629794694708492127005751791396614739140022828199947578527805190833265567271872548349829579544870875006521707615187384751424360681120052467034154214766631533309863524090067115943427997072822217842431718304172690705721638715862421915285710097523177374577324240948846286838189863471147527525800665748522572846625005537979663167225529670843772717780791250410884994086689850296519437557308288349441923757065302417562381187534499980705037693318531847359479602275695472705726881628721847686551890278248986374233968513541557821219322622349430277228867041275247877285419249925054928893285056551527313796367757933388661112071577271173361434576619981064432454139023448281229812977743592800224481716367830141466692449695611960804577361847841557903861404472384213239703223004840612061639141271856702576135254691173382430328283089049444522843988786370778729714451470954887048810237978632449717936141901427134940323533174948847278840461495419518105329252223967270428706432815718634609537459808382942892342190863996257958726752616827930543956639620144830077000520565921889579321251579675775147017869129727364841713429674655857392868663208406539663228515345374123583247425992818953164550844756050334878644050521077190977391881359944716208213605609145244896178694586997251045845169178192677883053402919003767791238156455295608896625589083685168755567913824897802335707474804237241636097231852111832190538524681344083609161410089523427775521442622660608485870036766163816778474108244622603478759023518817370207634465683061349269476561433971477913554171998042017435250946856264800517160718245516573833374301742923714162292966916886280966632855195485433829440774544114364865111293556699011845132923960931915397920863192441914116910547009341999863089095845745122208952283692083146960521441068176738231447635504499163091608381361620073665609216506238859517191319332415719758318591184968424024645033549919928415654386181787052272375501354046063217608915499309342661863036727676078981822426334702271195911476788637238328068106642506617631251550081564717027226259435292699306189405835210214659419612626390349242879813907052158307726929030463208841800274066701175607995959833975440426339626963668830294855903531474406917013006091896998105198016924583646099187387183375978241385663827399639188493867111869890016674841950877911117159751694632927947014600795221162491058483007702758661149006634135725781052490129788755275092989236065284291106848400974737601411173559198041673433087444825118466269109905462118636474407136873050648020002508602218112448856066380526669056984566635648039301404647238816146879969425298021400240041967813122992903896508929682134719528262244897210025079712755413224760768467354694897088228567849049178993342768473493014300466404139478084942912704876102651511322859415545458250351546480177850654412812669440716154348658472926529053348158220289178169747959411467501108553565489082363543633997284105920771801730590330072101226874521854047287745220868126781810370814131860764921182297675200137207232489398946660316418731179791508914231558279798675831671233035734446301197240499057097180098460981758016934963955928694059358017479444772794854336506948763596118191434736321845563328617886579235641860238765225307342416271071193614962097793204759527015197797096120177668185881870191461505488143267263732644173689274379814375262851351114425322926279268978497314159414832067421511332466176968606231239714888422717692538340419506881814795334661397176365389383464610900045892439477586554500619208834682221723741642000918667416469426832918723227071868610672799673464014673088365732133550152275235049883864196160083762030118667124039515405777087596659301207237508799762709889554639983504744379358113838616738096592369196122236161676666037006172147535210243500538402651451760012010471819040480262451566506436308201017895515655433752423625819831413942379861418397208328351453659878014662055013307322868914345087891958178402250555579848457116494784655627534762849951289702704643879450151463700817016401755301314429136960949916269489861583911200772356504822107920633161308251838596203768084684301870752599665102519094050043174707684324028316177131091284593933115585860579277221643461023705357346929138677726122138515228411885956608663812373614314898986416048751628392626661177591512090230275229456207138836966595245412621216703460923328312801511209398053795288046191000927421756508132853206725196688906827458333000590165333532955391035573508298330864324491261166077416469644924163076909427738396069549317302615995866632318814121602291088012044705427271342809566111759810903654187211551337247558188683770050976468244194684113551555974967692336751315417842156832139699098935891366099975888051583452172846610709046678512832819421451319748557708270663816592009640384988291385098011031135191642616334399243268876719803440786324595637077299867534047204271616800710681046385424712786554836483425161571647704020238820833754886964754483331643293394820821784555729926340445939147709409833407360451253727832437491374477466893064887653366825435200842070319673915339594711305448571785744257892632429276261885367207824147256372404329819049005258571068997141887138187536844554037535152538439307055322814120340815852786070748974286676094735459152338862698371756172858910003456035083575662357676628863851851576074891332473900534144008169198468326276053585874782103931370294981947843573282630197232737278750169534004856260958205683788184265862904697348690287047685777741645596444397833742961968963990915482696655654061983237463813217419351284577992023869754111736595019958976725190117901535435382119105552109158643670354569318484589994373710110920036532513768913587284059210178238418697506215860170909706176841319472200637383043192691246193763301606182990278280397080856370007831366314789929491893201962958310100620168490826673724153232841769374917722539306186305602097621875263703500359547529538908638819935519999118422531115245005491012271397366485047077097583850065355467958176045306364667194114616511681197998438085407442072199675655315205110717394465974682408768641143675978833846531874693374974705733457781360916632444804128101206024925013236217635369957322266410450833478025973051428748802436356691293613563068187962935879570560465596953963910720940536927790418443615300478388400914713634244014054483187025004409700223735668684509641587901478229401214108187131407751624483522126838977816810609552759464763563551753643224976638577839461751341319706784017492222595549076645305528623412713516949717413948745886258671766159387029913194180329123488677491332351331880569907170526558567396911419249836551076323588637895020037710134726373414263496029853070446142844025716036775871597131051814804812084361840929455522633892570354871632532381661802483956362377013241803413546190276811114961527719440356287137667258092792278166862080274177587257733809690616987509566667034356519519269095895771382358795896428572422446366635613202094259533847068547176320079201920906585970170376044633322650023900691666393437047729524154624019058948237322645555546453526715356581476932581717291395526726900603556679817392711999213911606064357052239806336486181158332540240682442823138350512085112735669440606314182296605348085169502800510149276154888989193708305987681174993382675974371593345600941066202411496161566658325383707517465180138194405545812567315472896047423158574102914580812857162550393390525276628758503290369193034104727314242936370961269850726740887955510750578998082049175883612806016761791874516575973551991405139002594031718029927859152688690830937966381352594717573081733760056159832795163212789390837393221349676573398721815806698394185213618971830217012786368067606339651576197564729187873721462081634386713869724805745555459365279715928748386660904536660383034150550897897788812254474369358303073917297227640124881929970622007843094519160919956504505748300716799199141924909983564476023395337623842852727139221435514138067088077858756875444026852351487062937605135631234358184545312088753665821404460536159345538841976529412398189365458278925786001413518287858995861854323541180137036925732042319008032962970931810958446141301366347111595146987400625213802709497163544082337639368358709107653825968615496987354980560897105878902914595722382706892639766753851302602956066452882261914903239387003531619439405022037301000910042098837703259959017617931661735252048605221860392038883358807102016668638288975276025387831052455248927806408679120245820860817684023646644002470787259342863089573636049369937883499303495431990926654272410229352705589842396701138109666478876625576961511505258676578783971837676824247385206100044520646414496472230999729947500217010015833618831471468855605208873118001240983269796750782129160534511673456815889940890980427416121717730757430607724835716867524528443565387967669893451592022271790400063453305130108845657463088280677242871669418832340499456386486857295780451938723679996796500508392436697538180257690932824514523636154217177938644245323327923734314835773054607713323719421057178969817592630332502054044779748039752259612659784938514687290261598462356024980823787786255473796987036251157797003395218654575360970956907372369696666011897645227903186056596597896678686934893456323464667625457540557434876423687975607108792400252055572268465656547349196664810951265977716829996118143483474481254571125715452314749168562974639429470881531159032897772456180533196105751158594507892212083773778749669137772896216174314623815303737960064584508729203007382438011657936494589972644423848914239155920275241423979147756023721109828956367816578885112422608289350624413297586124564383166186119196020263851923582264281925850850143752792846868213735272811449823031632180903489166966940370728920496825136375113583435703721486897824887253293584895991438050558008763078280173434368767127847278733469435954537896945457911264174282799185533940073202896299035447483866006618721932303334443227224370343700089427212779811084830957620177674804755858560376164475440501854276549502389508976009998501336218106315118411171002104042035209698425905253977444477039540363111818602552975916863316106868933248652776459196444281032358551418844280653497479940081187048813147916436475369484313410983713919742557812438523390254145805151128855429771979153272618576189611506660739074230795663432791270448962688041523781463321594484627535860501545507084959548925390781280705064912148120257719610079698955448846146820965328294178686516072549647289287750885276747698411659749132686320496220466982519416635155317765637590853586982820619277793215776329633698886936616921591034559349745215520262332456769957297083059291731254749950326086549813824687273016687360177507110064815116167831928539755456954482061126194094765414844259341915272228601726605056163891253368772393973770682595515153598816611842371248340376844715852347598730830132330933941034601636645185148443760729736699277144549747637264690833157218713118705272751028495677243787954119865441144961436430874152710090041442019540773362235278651938633416092071678756885815237739482569617834041549911724417043199256904112615152924265993399234748968979470338788856987320720321130021725162412052012239989656091923173877556120023038457301763318686586878504745544857198620413222216756310488763539135028114358008060247773773781063012797141097068365217717354485897403638993205322814662860404237994270095750327513575430450441279271891965213303536109598790027637717134107268041956798237003591516164403568527134051783111720015723881065221204890806551833671471435789239605660522038965868796383248702708804320816950779425947821373943896582654899336617705644694594983174137116926409538766453495540991469488641834491431184175537581621857299458307364206818721616803903564284254517446074342384842413158179949509389420809309261297969209820565362324020752042450877316180522040347403348896712319110643257021352543247289707477061867271973887732331244650948794205885621346450853713630058292745005931007356098124348862689267572140268763713520369669190975429613321465631237765123694396399618369907771545546858453011635053468891353142427315092798205356782989844079503423812347420852984942545928910368904092304106067981225972591452384906754810926880859122984187367297008746307389463898172908133484000686342411820251149784617427414233614600746341530240941537684196828136181442487669302459711466633349048756066918222616825742728534605579726879313278297182764397043890327648054815383593242612747338540671697785436986503625850063733809691882012096877471369089396572105132520812337127949034883588413407176218697040252189688687958271624551269242714100727156549123692782334576896132123385166904749119410134363685188927701452921105520456583573723393891885794871986213992012831185622812434074902279220525541791232919344072523997377695890187544274351128691477391053424454828257520242630233090672661470670075253220316425789479959885120517017413541924913707295655369492261833621108094973197923769737549008413221242705307378292027590835165696180031261971985013796505058063125331423843307981835057899420901762744670904616569341984581645929297096039392574973108941549986922436359023964120962947480748095479604700131457021559114899179805130359633950966692603315171310193205956302411845196590290195136787466153441102401378308202468975583064312651561512638765758994219502662641074028008577217461469660554844465707448711519464823536367404067231915232548065866450944395826095954159328395169378560776805278726044123037848786162270432927158938749331068668808289736253186908024589936272818434112845685675737478270372918323757618485384212810626336049355462833057838981525029761906227662641915377576742684898272391065631358721979831877795829278711108274471913876739623072049927496672519828172339631804461802025795406711775356328393744387921419362705936289965233252323051637410503393594347289442564631538518559509627024153345973962907450577273735120428015167919037667193260091467324182779288067163645712004405695209159196408245695401268968771347152394919371118386964399180356973032829714195568803480977019472824866603611110333450241110572587810121990440608981320486414215535924138953226211331584763760264618377035176233240523992524921064334290905418782140190039129360678812901377677752069844100572342224242306098980776007029089812938605995687184240274057536032633356054133904944110800803383034697693624543515255090523611815406828219441734597723457702436238521423795336160972430647584746554861111631061523056571147175827337190803683921318620981999405591736785536326471597839779425918303339517443472316514968365708158822728989230993465333356922830611485516078862119776017786564998952641377092097075430010942948889702855277917391893427907254220887017862278205397233867505271623497952748597804026425891528439470165567828615170033274900833563956727341439383687838037272030603643999121114145787404556372824997755609597384630943996248819560003923625607645895958473744593058644044861613351100891118020328563122787126571851012958162581893472889636866328629525664362910562288943748791287258602555042472326975787118216681185458121179750413646676093100883586365529750735621870800150208814139308518424947989273937822247398994360337902823537521170202754417429546752650916088451840171873573289602299891944743619039078325811855702666181670413503885467904246804293520606766989371381320260757846388263723481279101590867966155640960711013348062053433517313717592964710700512916747013257940194721527960150481017091975065986012521086583215521931535325721947642212872872316116189318425963435685290415084691779375417926031125884786624507899004318693291104675210313998757939676357801810834189469857289953866525603756907293433293539512436316921817260628709437796087134627479720375803275899219113169558119914613825394614539911062673618020621581424054881232837625685568626304518202938461205254604275315680732118427808319995386232499418789553660409686040971588145252223652986624936684379048672094991610139889659707415590232205924386665252659084699390399254976081442813137708649834008935890938877465346150945957723629270053666549481803604335711373965250901619567015862782393761500021059824663468842566381174408562476982894351199881728755962427359722343615837772414852565831792463564930476628740754828573181466177354439701662476245782620819529010102841023209382721924636932257935417213494174100063320493764818424372485977975377658458310814213836992784560162925201694100856052744935526225028034503997613234854440207994927640543282575881628288175130348647204618224181225165582270936629953491353163461377221207770495318764999871559234037077825390248313511663997279591044980805303902696255945498143484687486204826218462082206454292764693889347331267929276050860397569072488960884577534627008772166930370738396954468619130606500592647990266816863775472503802749772076805642620608951059866124614070469800158680479593049665774656124102687000311770664225548943981028801467075573065400552198235404722386688469233277272985978988216453611599612960864735007658482254387638392826578965664406445575830967927025172667170339656170128497302018523627888443441574251082607475728035118470065567190781136764285597178996342314211819661404282996958811988648175327996250664622211754869162221662021238232764251961252716788951935818694135965784720259991242324927981397251730683079416710491632984755298501282883451489967206852105246547276391271641495166533338130902614686846172254368666568712046034483122938349471670742202285621143885538528158555208649735109936273562855817713432343554252550465487991207162097610791064740745266456553652078313797681596731324733348972484331099123604738662689259057529174379965446094287161190823614944516288038521038894983150625629868436726863482882215966542757727700302671465019980722971017940170353989161745790811037958072159152531650401285000776341084216500757192270769859494336764292698932101864654912395656744207400308150665658371856399897820703639910733282898240510199780253411656305853720318877970866955152396996077209017021711675299780601670715991097593511095699247922633897461514680591775663391760309738694463333970033256948021997702870156492938533575785885551793332245919189996708483232193848800552442852009356692618008677381804871326805878482741716001877655939594751824741161019341319066478113954988457702896173516106433047339531321336317286415823444769030057744843835160494743992586205579024458709470299907409112556783068230508649581985433210014434202569709965028742265303650633522020915679387027927714638319979823294830708150732796707620581883022607448142734102101418630235238866106811362733980839134824313973067829268648853538031342684215415258877572494238889751848177672312361746090989389189943877899498064469254713099364424598469117866284004274658505488904870323959308271323741873643548531952035155880314495340261188039250590695990425338932954079997380104339551582061915645608922508292859010238184824235512497170965882317155356506884958072419351339214072961566012854402515676091723487419963986475124427245585726488055844052771098354921005813475424614610456462968834747455871336312374717993720708989595705519799666332248094933827862140788392462491311489467685097653865286704055985321654657466448038117178042777449008024110939415744435008435226379779206034848869523911850888252751014110990807571215505820857074126535171742101234156289444783133782374455992671606465714446082875068000855246150854703616615192907424730172612739361963933474190178914435130242367369523609792043859218912658446349299823813269109378156567097902858302655951716720537972866274307173560007009972764229720378098353894425375915882631638546781776579881615764060796015847361234192274066526712049315176544501406493388673619861175345130342551035278868941542365781043024671892834317121826303048172982791135458533643523119447022425196622861137507140621513009689397800683596400678328214174713992269801362434475745481108213960555915100133286930494565448586702541255986433131522426926285537876131835979544857843706188639194458405548962723499593805036788818411888596952138350268044527293025164650995473788292641168480225208895571249980343718558500310705054079605347643424348137445789567354795164733329455583856501164985893438251502612922643274720672410625753884624602616815924545355151965875136322367492595415732164724438563494747648095821979764850842538491435541843610942009344961804043050797972174648918334898186241810079583310634091177906852352333788040975638729100085876183434057472589933035891720269162855646235614308605178462283926570615554807301675285813388973488459772829451546973018714492378783265056547143236112768402881655955174201560631742293277093595985292820089838113395369757659352879802481054935962309286032426703059131880756157854354636879080244424411947083831093302222992787415321141259563614982745009701933707859258848125072605824080299765706770258266026749196009884140840629279911459189487789074726631913104715668493619737846796278077174036503733517800093026651002350497198458951047334112578886722786711781375860487993626843593519094971194990512257977998457254169764155297361311438155555209065050993183262976600995449348960344192458462336337534605880144655096956421651889270878402732271975196699504041249158562621708780056471071758151452790881228330793376871536180021803999378102300903632981715537619872552134257265671498178916312241305844912250746475657361247865421823978006544877045254334579333217274777520267474108881839531739256574047961133783652544049172982895163556667956971959473821428072871485359409543834380648937800289743544487698451002390154220389431729358153438222472030461688953362054591552451861152381834619138485863725573075852888864529560379381578006329885333514068077689770854496879842341370308612437357929205994694389250559135447598765435685740388204063275324251054657147630187498305808388445716398768784573665865374439486590102469022155036910443462296550790857769927704587771571451237470282356785458001611640963530976024891825900018068789224434122377470836374964144281892200596359567745111625909518394592711963890959689829398537051956438514344462089943040107128653127436324746558760170428858833337698317517758730105828126881703668027381640706633287643346366176146848546845382494755129840080276040259156475949942478117734278606458846908768644640825853464899113098547273259835057462408634429873131786169987002258653568658991833543595107427074147127451018700307830387021991883793949745030840727790061493527283923507084320409437772291451387510793069119277158131418840644505505843114747988855153740961287730662577165830863983575332814135863266952763440343302922143146283130140034571374805513678073589715507804833296970144679143633980640852356370639447476687784649117352427556893580597286325431044452777221093844655756721695161083840547786551171032003898937577016101031295111904357151205484559658279380090762416716571032940043620759346017741972504166019643526189007419525807762234614949011803638942831544778156902891099610440884514229965440109830243881778787740883761393353664490163112401769915293664685111423845090075877518206722423061810091433967751484441207315765284850609047609707958101862885468018068777098300961712377045984590647256877173545724163985632298903151884096727181693295364011691359950152938080933483812953694831785500173917772713080189541232264864318591285455667167452609628551103956112739150728477585402052508797419922256288943206448780002125328587297985050223504480992014178551254635790874348452209731846041029155942724313765983511657402609718873518145689358354296003383461672055485042342870769524605845975551575734287160005296703380080358076684612030230578198933253872536686183468651605220325958278860178815167006240002328082580398071878291010841085174205419104123486848465339809907721021821258498762541358697056368999833417272333293592185069918339427942484060252027302080631366830750848216971112901455924393079433828555411836574556901131693717138365627163958430690795193671372490069437087817331459896502065906767566164153950152524511173176239913649143323672380901220274923705437995716935270752374168642425606779640866075239617476912720787021855937313978723270760963355842249520443523664908930053920655890906603169391250069061350837320257862591484436408488899968109313813925556068062941587554757756856888699139695272365525692891489754584111464061345534297651014778949370762235415088415739539958209247383260220680453063557161229516254227930196356038306283323464247605458569626182432371290006788620755911172730627223410998221649420571681392260454270992426875677641000817217880181758287455187144147657393662778900120204674362624689480215210767383753344267544116304021515951438398178044007133996049467429144068548404763714778114879178131129151398270258875069684739327116120553724294567352224533981124886621465489652255958067655398220170579919306841137981759731576023726687674823034882036286173778706125318222090133278344604524830747422786982606219730587871759056339104675631458921066491643354915937393673120001149918553865443480858818068670302025324645179916593808886576965680660008178322253330938515167717579271696145752525470014308348141124249689715423221148762670887092425284942985635406590645718047902621330768815131003003965793122885367280077574329894148288776654121245595868956837641746698758020702127298335752607087337487374636972832666031410481878577196979914626707560778790484124065098729600426740959421748636716552742373059167458061228659599946074573837561335306796716497388585122417403646708084497486315297015630760241945146659675180195572733418474116645094014934846813975698157216830967573553444531467114792696679390554012749555944526065425576866792047442615570198922809559058005519319529202223442557821430823019882553621023057763331621597761284420383932563249517198226890075757299066862321132407397348414400735415691735402320840964012547282673345525859195689622360554822202983369458156232014429796947184915330957364120975024033768428119952500880971197889986878375776560831591575259567556289201087811376372957388417014034703635345760657854269643458613120648543851563372888127148742936842942956934616560082967435941766689642095362694594143784124080153536431845691364094619329102249201284275307498906956323011015945731693651233760748575951475944309776351997094665827933774401609557549702131531633736872690777142206006431816056331674554250399525892536944338626370830558676857531150657896778097134011851565855389918737471068763850305640591112432563586679021172279610066338258752019058941005090184629663852500120312834866250671356958370954220246560812332003708381780009516818942542817796907587451941536286598328114501429199513267705272260533135295585279644916240222467276791834410349726779159519242554270584015554880764775161473987885157970909465069667500031804744644841855832105978763514255746210604231178092303248218724197220812919303701712705699182087870252196812197085124577824350371146248604952910283997002251841164849635367735802861360169369930746066424270983374032019979285419200113105215177285641402497030695259468503956898236203666948877461617987647782528042065565665830523250035071825389453767234497923847759932359626452645039359155027897375689642552012835282986845179337475077526994524907291405368900747658178508217946080412931205890936928303490380892977775162728650595243255578501564781175608528142859763320042630511962694302512707042953363595822922861918753507087018875830576046270192993486265342361578920554552162483709640914930222309047354078243422203034939085885443509911825712939180418498227979022710859005162595843926526994318608773620749149575280252317010972256987408069119872849181218201710480302410363549981866504807699868327288205553651636274531667550332327665372100888885388861091909953682571831344478780514612404030950553632721808800302987969891825499314370919381525389462716194988069942697342205214052696244272423477030835724517183616779196194322400445592686748875613903353329860325705512694211887545802040241853443686510395582654297707593161538694931839560730055781541482656148572027664628935199576077500346624134940885299062871769884050351305104900015403459107107174012608447874557471583758180945824783865056964163495310598480248031651048111912828516871778473202238876441505046632838339895699156920431057585105095555068423505514832219127620045470015663129873037400676993389733232614494196361875847902946584038080180726325879087036286643160185484389814437716532882323154732434992425645784690037744688988008324451079788044585319532293044555688335777893601602789910275636262528009185157661848782968316646647365514616293806408181082701938342111617324740488763526339784632177138828608521354698021619371090704778760617576238586400257787516766191274361381736366197628713719769525505474723219111962601601928988132172786437614926564229838331589263121958691831727766359449951415684958786021963577645800387457454488849694770206992272126503625868881308736370449472782163820835450715189389120903050770902927192067026525056161558676422236309334699823138250109833246384993275844710045359766733843942102079839202053680351213086891766130509717167177378931619337799404021187984545779965817204923262135927930882952583617934207203935987340261537722065574180712259937367609633890803379349368116095580185251621024626175775722032346665352023722037583455744325161460898796521207178721955963604097381436588042387148800185825476982772478113270164361534869803480615820777747409733973640874301238087730127313845021543322820533995104426610706272072203826335509911766050946879919172307259566326136836192918345598014430366260772420786347296371322866541308424181592337554071663983019099861468518317813798436550060133036090512711765643325806472751822768329189535065272856290013931784426855628570557381853634076028449259554759525180123591795840214270915495916372862675751697629020014796735523016251467693446251090839056407771127243318429132990440278389307273964805987640221585869903834211424230034761434573079357541777665136504847895456478837340600364781323706837554579885378762839049766049536018388210640677959076101391414856959034005136777646715193943454764128433004306911295702065107483063128390906473571151732085394342122721730542745539865908498943481972358378709389271152886771682274444507275908603633961453431698455356218170476452043223861344910522054704480659857825239258726017204801728639897413560291335571771275661187843166703142864463817987546357977514521771805569846917909772452050247987343278705734338719733823308735504019853049646350508751303743075514774856987836696526745414802085735244694057304904099497560401886420305614224797018103695240970196252660231210316319451188877311802757265211299527672349104513926439346258073288819198117243583585644380578543705406452248204448914777714935215364256099193938968836731046515756513542489119193463999287892192969282767464208890103444571289038506640707348090479990039027284747888967355726535337947478530748037052023380256765244525537307828942761829807950199062214894834562056320044730460396035614009933010871554488422324700533901379401506124594748285824821198695761979443295073815274222543971079861741827083953523342312685067844831361279396189005782816780952436973086883771449736354009692146735008746567300481550574940489057050734773509376094584044996087197234099344941762013065886599641127435096753461603405075422681751374100738866501302767240153826558692472689360553375350266211795001506378133402452084089520799003594593714969806940682375292462961137473297328735156641983725871317125892749811969594137874469906928026774157523008871552240003240957567076237561139841799722531949934090786341300979594261647286828083935328931593009159323812575567896200536448832582558487262639288948399851098358790559198780810975272757686587366624097192273646359271198990114224965698359352699892584282445936916019102204691360909257971112550574131287732948032533920519099685475735037329992002233024239265405897952641359431579691120799148309539976599179112482277854543715592373887950600758177360813657210081813481943019927047741685417825440226859354968675586501398581029901793419702298953769686019632679093837114444166971422532415201461994662068649436194220195263591952571094699157610800342748135836959726677861201423981217326397378355728195446579542432853710960413562423755387131085464835732092302666520389896669018729811686690100935443108037208892348234053702509725447992970590617561681844091882851184161496664976621717147226537448760794226727686190242642868853460368217068496716450618611859594183412585729760908107461236956926303550868952288427773679512966674931151414956514705768529838556679026091860188152783570300133308965171204212064191956105898039916604829616193824147968084287816643182371685382617054394500372040311354723897324153730815031774743896569363462780829750381293974033052484581636813109922158759532135077654708227399069292909673624414044119344730471361100542480480715745030150784917965114576035593539056568947439214939972370195217697942776590913636884154769475972090846586113445159934236019933189071003786174527305284186472162099582132077670949479040305491235350496546482427575219126846118037110122367790565604620633724794668561940909932318219237109695336366617810975862302226648995285919202512407690282184782976057203513247906637142760749960367484563199769226526561814881774596674238020806508603926703415148324502998975879457742542265924339267681565493263224274558231696861237591062034449952077093669127109236805022706970719708168876923925305697641961961729333367019384222359771438783213516925510056309046716298708531768573559407636058992564862262955378599506766156509975859047979440448312810328907820514990403634875340681977733890534226103913484024172924510091045689590739442241739944943518198866692536905762830499449015633836852288315539900778773105962406270618509547578311083461721100157712407984291048799221914522456684011806497762298548975339354125217782257501290974924274049255001424278297291394046889814765320430035722069835199855316695470328759465734809586615256024252420223379050097233824445745065423212040100786396466585040517523582426823305983253933943373363127250946802685335556323687658937907240957883479550061407888499771386827315727280101204665314039522561361897855790792049593136126896558412126333885436703809287519619714992562598852127050023795082138053796816129169694764625734116453283557292461862112105025431305950931839128235682547808701121779822092728643306524848649167277469627193793883461061447839249259080755719343571793261539975854291816494634926408075344672518759407550775138017272122947052415698426926277029030828589882911392405689951040830008347023431938331947807814647754639911532465140571468886323842364456360548001940975255832098679087083554673680637221324466416127504000486385095491869688021941002536260049511710678766191754666088570287046539111007046174883232257274385142655307602001734780539606608324511967132326613367277270256469562134522248779197494850731745684177784002305375590850560653302571012964452561064414337176281574798490116030022659599605366803019549506868515270857020429329844732907929665984927597975075416762473518640125810768774491980952227175572556731588548831561117051203446277599918179025911287861579571431811360976711563745265244746312030619486399236988803640230997901723342408467419921928401320336403379379345009954679405761873906833023271638161514478328618047863488776995986672599566267612854972704429715113137393259956627314548875150967582193094901400998617091448563282852531436388043476595051393141908512973599352885175018901447068888767869506708821382616855760534653183682226250542571509985261288181544726847443662088257951257410298418667363255494984167440333402506008731659054072911051453699839716145797797035983537234107086068355438390776457324889268810220472008953177498280553384283310049305557681511986982409382635295115160655379994799730579140674596040230786863869182955778260251996948650578852234445491345761996592117269476020809850190349894396425418972544618194466081137547360280843982577302047863006887794368432615358404725454082105798752631453181451168429961081589657930827836954524636355507530141849547878564681792081560519341115526332827103812063912574565778627399527790987436847749339791830956804965290363850381275463568233832893193920443719175269010533930933695296998954335408169296819875684352543345553174462771877433333066413910827012755187672131084973778495986590411706728649253691399973292852982298525618071379458876930564982193486769263028677130110525195259474809134994806775353439917540453280086636208428263754714353328556104815963706806239793174143145907352946968772297452005605662116760896043186433195841805018712688772317899661443879896637662041738223419458098711782962525682683820750173943672439580744005849792708938410481109153329562319419891113997066150630981356072984760243045023459393851851984622991596804515044894120185321851586463565501001494257300563748356644604898419647310934289955215166930372528587214961696899228442680411867220582055115888911138155049496187562275960048388959993680554357762524015976986746074818422805230932948679367068030311962302072161955084189497667272289652673867451262659374316960586888329373830716444642222175401471332635230378212830304936094409646196079708190032785689029890339737960055815061455330314462669062685823839228979508398934707031028564196617804583739141941421280426707504700665107247669509770725528513719697688536611382503607262305398544165803599548877526058824764343289131856608674403250082457441376655074872309026148988274662707883264450523094621877414558403577020214840709181390476914824252589349515357923524140931490686050826294011088873901032436052170385420477311366533818887173564043359666734924893516851626051017863578828588355669696423903027892369587848134587247446105622307191102340347551037288039873302969250182237993476259281546923998461779408596129778405757805972241291109703514414962700163845295004184483390378943198287720195027121237825491307817636319742345577129212943783972178383787772411261208039896703394677118389675688501872985777108911390187341611539167291538872660732633932171570378915590375426884664045007918848857131707093412159332199160035426224505467923414465322632295071956273105116099124768987231341715341339938955356670622980574099546858211365003131888255779106659065545627782754060316698163666624394580989064610980655629048570159061309754334149627412611813098092735627717111922455496049508848572643425177967505431161349286351831208076885121120806239872041245192332797607206728514138709332009284383196949269844715746087189670103002391995996323228372483412643217237879256740929759768767950358805821059210114352155649255921138708029034496557183114943899183292924248208208287756679523778640032127430723509306088338843032988690564232257222149386103291591224282523303880357662636634601978768782628302114285069484547379070426181875704217023485415356316875286614424858284904769512177580442963337469532995042513282818187240037296090474621207481444478639242514538672174142970937759682363015379097694006294800400780446392754585603999214385279305786999702834187624745942098579881886954496877819855242122870368384051055800568788606801638403615689584870045253845952841943920742786031351866118619816250436064646528387384705538732590703150952144118610624162107961417342391616919318090155024867088561514412795364447991639971574527243988242828549825724088399232648928358804155288751875592244498129961139624147205503998877069080806798515579647135478373989506017603083773164361640999201640279988262072805981028067289965599288179153360491470075944623673311329294864103322140114136664511361129463163964765230085786156762794194407220772065840390786447704613253119519869297561883351696816134976139069890327598856945398480969117382728762779148593543104713184301542701187003814096845442188871335611397245538295424912375299878656053927859545202185380928774145633692092086244230028865327181507803108477034784579006836270316763287905382273933336534850275740991935849214897719879001698036228027709020547737799866240501463940321782578404562280251806791258898131541843800242744093171017883723995504039393830973765664133906775310801900269102592069061669300755539775110083492616698793401062049709390137849694658850607334956369525684019168631290957971144736756501926908176801334494605650126589379175185688003047653770144253812470426084310446680925447759530253063230383409959265180423897546132037234857066530859263713876731737247953862587837014592437751439359709986855587536549405950243110397426800751282725237021207373152024435465343786656333428344805106698570340639805489174422579332003091891015142195864560340500739635565530047500355355787414631400424598560716045473861199526342549811908093742713643302633207519881446760143450972459592295743040128374285850208354110904612417767429586646710451120008167100111547346778602784033728360254712028141739252192124154444215457997215271075410646517263108643259488951136876289745327079315692934025694761112590954725402676626544487680651924693493211019482382104469848790630053793451545672389500782447106033127633681828072413995995458324573072277200965632480787816332459548576968519326835778941508084918955264311317825009525601201002861116187994210834473228396601249724333817560313186504082786725542767351609119079112176177942258435082138410506125958170046735442104495788193063990771397621340558925485490927266563580293849497096015342435803326864210569376722755393863750258629595136474511742340703830284946674169866966521816548832023897904533291157958206360983806520196946195599619081909546375999640365749881133937329056186620893569371025875268880484276047713386125227411671330740464793551380312050336443310554073886198098844857941947946979291939746760797487649381939334752208323408744889129288264833765155001188762089290994362746170199590223473257812810907347248686318665705909161204972679173205666236433620001244316832186284038024538071036834364255234038218698974114554876393346482991055754939675285902178054263563771922385412452664576306004202719259890546223322900379742880324427866284477880364498291420327155740510983685836223695078302764406706371765004298063804556790683437501791904712061050785364401001574571148160852220836343647784381517391222806592373262666676407945490808098864637074213526749724485579091032103820351947122393354466730658626357040801580828786218625748375263006076107510270886150278979844596887743815534883738955431065621693953388894638156815302238490519543302395971812301585613144253866505397170862120133406887679213140143798430351608873828624620137674306581584697263187324629999690007900626490518268485583337935464174288078996036944431681383168152207389874519912872236928756791235624818797630888627226492940393883440231048051440291155095816814287438758835143030767205172373334992619956536888311095295938362953778833852642395103369816311144433132831576568279640323741905372021547964573680283883265943279989482639595779922425229787700278527139197523872929072212970118684093346795463022703022013103872656698694777959451350943533229057278139332952025875482288557228398443798525367319992156526900755908231633352871675766493808354311642281297749624810884110826854480990386427274483434700778338819548310250914246274371016614296605389159264796229405478060024620754874999222320499878306474183660617541184309882744757100289397849091460603849402964658264852550947543717995101859454020568311150661614057530093585439061308412769125618801512485101661598550006523559766708556465007250881404611723501755534092086615593376635660788638029448229232354022687166501659396013831512378695284884462723700089033294222563443789283795741234181523208585910727979136809495390939953679620429544907437250161932064846810552249559573990169825598083378066882516499383728533346567664975877965955532194397054648633198176254113484258954374148652421789018527315697944110404861573607234093544681253153284040687366108787416282716954608834813081533227532132967096034566046280712532469782944026070671821748299239060020272042907929427468102674310883729946324943676671819468267032657162262788542573094825567948206026563523873883616919713689041430709566460982363627997248011430953811950098332193819941768122086764613787481184730030205667424434211444718763973648182159845763757361207457180352270423762794578873829155302340240287726562759248516226937462265538943463788029855619298800087191862460791472572915937636322827504599730415448547488252766060820659885139867434951950476898184822295433801471856633202555945060328656727188135027372111460430087094338808499153071412383725203465672732402659372069912485817122348390673273545547153392904235527468263423067499591316042711560567887154814699462130991121913589666673392312074683063628540072169855207561118618496159201563313189642566567506508464755208297925986288554258741923853398433528162268248826962152923205281482093142423792389447653114135570512507410785860220544485308033517392081870216133619165315121772266006293366856568156757217702172030796599987093076355054139529982922575379677280916071926192877907417075690517613192394846658274440490074222402714919210219929259532213575515741464986037276084867840801252902275094139607159711038521263004419896659524588452630241429054751823226948593650496234977757539495935613477280773961448169666024754817163125538461450915168267483147651917599393062954744199290315505696000015866768393231008794338008432977607572317405019616753394372971340775301411841153947146299958176858663508418486255484494761508109787909830127903079696407934089785020498679674500317032074545358385587359025557566004065549211631631907793181754695587037601578237907993127927711819909979038819534446544962647479331286975376314227641103668860568439045222023188766993247564839273675051692194738471284461734579939538371118369090442803369065870875340279503814973976413530967238312218661980657126809090627772541828331989201920426094876118283767540658201179183854879224517022055635273303961020702193656289061176464876487070145194919271000288139529340544591510701276770968994258952105176687958545960061907679559072739777433865836075584935255941745988190200853452756383440541494617670717237402305016983142872366143792076237516889938814304935077134469998517309358065228312538727413072440278171546558388267425082020529856846431056543509126050188721470928015976877905011347189283900903561492341952628662786076296700191201967042127501667736394619827693712928111220239900794698487745371720288336880807308960365699832292724284589304310222614063838424953822195795133405187301185064200714388593055102006006649007569379484280994681078065627186131300695513043946305058645197102518196481437529462638696905480269059006727971017620237594426096585381669368717691740025190395005722469301843924014695828918079336013186948321086416163197798290389217963201346354732459261878067646209189748594405098313590653289074819358065558214620553600160937020445553309577465258936266229929356381809650624654575508859541170032039872738342847409003384604164372444537933064176241532489240899418688769970925442062237855072113537138826542712207559009633731038999906356089551006620820971394221497610803808152800974946216615668957121937243362227997049852783862226992767844899115250369822373757330209744995823420406367142607577716558281018389125746963207595129039961084901487991897550430554709300212612421924181470631523015694418974133148484450214114195225622443131230406730905822624966495829320085912150599278836487180611145697564063302741998887552908311238089763927404691482021674543266966961132998018794003752088475719798907106281713151064634098828284948440722984842637454648951076803826174368421029481991252756480372934204842798191778413643270309886711740829149054949022027946571602331924965451854668300589970347710604280661903656104949971033310028524550196835812231536673522297598522283152470588465733858915329654292634025979664704178258802369615298535978870212895555963707423739941677164659430915183737345429438139596883610610603424504689586218120746862916931342766667064674364279121261869274223202435840015239594022473887956702390262412205143674196229174981291031747210878188748130757856783438608838760405393041213376783663666879125704361559150886380136771073854373508552887552742868330233848225442215080829521614038185256067923395189795239923006943151357951072412527278188122338820397360123723944621405497661284071187469081139621174218965745339769753942665178838832432567009671346922959870499944519075773022443318562862379466239919298006673283189975138161022473859090589847994601380112195367846894966163711415729448443465963987517856730061139733335454011178460710057158141813802613640571138311289869331050322521083707905630929959880439336488402854885123693354377673319634886696506772902736607922093492087146218315530069670947757778588639167554704014137466869223720575106530371463900816429830150615451217664590185178599715344812094439035449688918532119881181342422610733900437790757963161982625357193450260734457698588591146407811552751284469851951701396438456134726201708283617977870928008722146301921119110856270959073575426371341857351848167948411378681579836218590847745271647042649053482231198622191858000014972292786906088914616141068364965279974861318670476634574552653769508600767169070687319324256615152996448448738817912617627138143711773325160709407555546956340067929964138168711902906819048098506160446596242170613656989517747912076654703161856789962660522489901189542061056841931363655180624900216390664861617290905060851957312943679895213844417524222312607989562755211393046847648241085812044359233681528842617753682207610781574828901014999325996997268759860673821016446500129114390858504991168849354880449811796953184641432634895882392518521335446187056439392437928981099697276235303914845032633305698727398839124904729296575872724457066962362861391336741394731117097045405903786849608174232352079019220684964756604346211708483514611373723755873391130699520895012296725517514757351587839317449585464961976642850994562259602998124318418609646344856049754431704380785976208296573436674276247750339243502558710105920477139014955029667228708494627884572796267086098230040552569076456232341524949761022655916205458636443322866498358191344119124090120058972838609697722337353072943082284418012872558891364753709064326393581021342133911253631804605298777236357730654709129845075310700315791860303760507747001530669048584043322053605334977277409682905229095418165627939858199623056393784672087781110861899674105419058152887773582446176406676872473131648503689083508137025697404208833758302964885543829033786465438940027112838891272667649822930409924015611451960395758386491730273419423675953787965154675380630947850474313811841734888108178461979930955933755366552304654656555557967658907101490613335223172674946479758778635075393214808343681135117490910018773381505350746540788260046998159454460477928994637440787329163663168930477625708237371070991237487876811720167214516830469409470148906944098116845987423797057868661801238787181607584334291652242003551092976607910529536388676294548911916225762600765362884354325987104459325472776110698305241054946224226021241889372215528405669349751022109950688753158093331297720412305535620338334864466995168999021330713778225239661157607479180971541217257216423662576251722595782576238861507336855393195246344125038977496681762751422130746296034922051018519463039886642954811606070838093247513146979402648698120870960218562301653338627051930612322849993860064815530693213772647208793147539318380476567532156069875445695436885004752094674000018497511383132765698485781157375608796677645235424952289843915392631119672571032931008324787589905779382456606463144337648271925544002354341909140572888469431751384823400922133173628000189980784613309889520649795214377910909271328355432915462201860552018663704029570500804872621580133491563638269909168199327908859075559958076876976866744766555395797198692015038407021541691253240620014093500377374572382698438580227269960873809784122122000386312346985518915431456214356434994594969674737877183003268531953002845938636098428438356953278671915813329149794639150240653881505098618127955526802451073549814260736924250320377659735423101958168672347358629145579564604328910779604537225840302112621936339668410479995633691840986686537961689318566980634245248516957784718049130980814335507260420683353592503806624871988192664675813132758164639917506754096578719807496497670433334937878609887614007541526862635816690826898301230715217798892021696251528339702362282413731971371485709508029374589017612703155846608757618432557936299944591575178225231696685182262275358826492445976722544559721971250000474142075850495337026292722917578106787006522278557940997629661314719456950684272671788550706703421963272768385997348940700192987633080321174936564952331026503379647322630835232876369986115437564132802965595641807285195438860359773480429842632272561461498414688419198999688852347550113343536484312989997568126726687039617740172866495240302112981534702381605831344471855593570955737634575592848299303806605888901686173132268770448173520467215865152626956192923075905911697394521105068047965875079183540560129455665023242912504563574141764947711891534557756352881235541145705956903382194389638709434254924262022701575025036555532047631963851812560762865030633234724902933538537899809119304912562001759821517399351666496995518778073730821374106540383344692929205603307761062415713666218217005878461781053608398201069881069725304469342378251525261662312234858010601235291281125182120817840552981608258674419426572603433728283308473133530650773059218416489852409780120123022812550024357515406519829176560339210835544359621527565179371133572718568178029011569630959977280228078411195811186032480459264831996625361639580856537906425203765205864677693382507005304386870786356252829033105677121252234081637325539651811094222582279006760789243662083351140544951467679976902530727033738137966213591870583953669238613543711271578101950077474476647543193308457383301796576315442684884646523779800374630024542984040221430478856320304089139044870054070745351816579825825108556799140603705071532012686292738777278570474434161683894462905402876881319690431931419774996166867619314226165706013886640815371298103676699067030159270605942088959417281009371095515912120887157611462240167209088385885191981239637267038276972327434948445842194844403933723482131446399889265904479481199511051532056072659149498414768484040438982480529918531297843668216869887524513229650334581631636692612045114359631836274824449176655287359821551470656540585542518443536862412706082325746746935658716579181196963908242933349500305717385020932213117763456005403364934330736094584271469855367286678144436131101724447468549840015293794450108032020272681233258866426483817162477553056797569949452365347229482969695708819586257928272127425076773133797928315650520133600229573379805368825727296971179184175497333281631376875914134381370553591095843422593120306935460267546619181027772287745432446319446988015061340091023938617617676834148652601113692183074307348240010800357875096063296242404590320195025498152465303002032009853145551478918722270578425545753640408513105843046525425137214366818504078246070707699505528706432288146572619601242135545423533864278330360725828253272759911977254195941908433009206923268047611707107462784993189464910485030632523386959676747076675249803556137326933681368429125110883055514514722260744318188613358020266558723464878458080015774425784296079707778694812818691809402715302412335842527186288500098015912970982571195931395115446021749653540937831670309215506051982529064685778574284682954398096984796820457826712189383962477940152560707847433527479272375706240471126205299086333062785680053150851618853172570233072455418000070756486164330538069378421553106330244704686053108198624815275024726368080807541012377596884359871620259278589059531166519314906174847502443740834735686266934921897163656313521504385370196842249899965719214323569242739420532986192823570218185136092237293394169959865838115465057920222960761579639288344707667750282688242540779905651238750368646142209924769613307903380340446153920555458863151794590012233443693700479966739330702615836800416360939531707167844362028383164549929433629105612946322627505128532576713857337632501953433427286957102361477638129300890469194082527035358018713968305773220957294786142145396746634075993250286484133880080535211331775939711985180042818068192552878439450289558537616331434829764655006010262419329420010689346298958667084005871559168605587512322651590633481714312673073031665393566627659391492050721124184616026776660343769610143885834970023288510518506859540153011365073034201823749316871069347219741779757693260647911605246402346530429095838409087432506110745583916897257728493176285765029744961122169799341076233308127614853042655426441393779670450624341300057672071240776427918430684544025233199311623031375463340858849282460687858845440035770394653142857223638571817062439795872122593153734906692459353603536646306347433509400145940642730537979450238111719668593820154988608718103210904634691883361647718906511158386592767130505773882051946188238863597981404748387013892918617388667835046897890713263797365556865659402760952686438125459320973354951702393415548998928408741283122058722470041383479961926715155868466305524312900422704962782639749112504160357718537819190657453002012448040920949703845717803250496145533552080395596403651636237183688059244395461627970233538494635935992652191507192185780980292813840399078395736616370344696096440557370068529453193228278144722957136268395152753795116040272478166322531803635078162864219492949685098994634649641531079956494304595703146581238137295406205528110359855134576847923244374432424790466409917234002278713007598617158223287393639167518209083347912934658116212662974535785329312391084358756544437304430830492031101435399847515421330470006730917745287205027752122552155636212256519961301297463873225141722806651639741857456788684964591350183672814482191879112482300559067871316784081384900932445312768824256223615525553170333901668917940629224142019496647863126449805866524697201179515845954738164153969000451449777279558041407201882176700633355803935399310259943601303635412375028918287536621345479422209977087280721507665256198464453894364823851380105797765187945955334247752486205454087374415593060090671480697642811274863729256132038352371494618152868293098589349068898394395943294728667950770028471132288414401002186666606310125081058487213511651612158080635346112237039477906756036649277248787881795916373830082787485533491748795725464271543715266145015693026835846450992476884743570550047775236153846905791778502718938367579083845737796070506554398276358454741556416472919975825479651291063916170737151868847238153420804779359578573092152134724598671766239350088500792512927350576818616990656434455471979182770167889283915501290071835109727760130009627890763686248518726162295247881171039163066234451526424780408270339295330359928956804641718607472314907392802370486690103300536482494907695429210017251265413131381850233246700686515222966931311023038211438999893784674621417928126893485439840254763103693701126817050742577979178301977329665374966306918107211509815808696458411130677566441333275020949920681832874278231235831497846596918782098753554503579438307468873858098839267796579800198377836309503627782835797318597049357996597155103884022377818728351713954782927907950931748969561654175703724952075549103676694655770359096557081689939668546531503413433657103929492058989299051226670271867694564437201911908213833240650852886448087159325949381914624440330772701201141910654875068529569189053750009225289113241062189068521576051537217525926867089553423892682179638119645532978785233522609182416862968767898613794585379170937155264116652859042064349445553455427586155475396054554458082264795356648748027293517989928199150677811878822425533053006535135600019721673925130646051723637689130490043792704183189076075230331387637640722789367753547614411274037241931523699770403386419836792931029033498550166822112205256122152017404121075045411687042691161095779209510482966021259029890388578933790321030388915952597396859532737693636351193116124890969135710615239402732170281164034050982116165774821896766817996859747029347377075623933164888478918813797535343108669298558234796826880858068381201028937516792402823327524862402086449224102161389715000443780699217243063598324431637552408690721313379669606786984978625872879486956304236531278808141067522182777509139220580460801200997216648630905676838944678607926520741387615707164445130090937610948064649854997907421240510360257917746108164521837207439864065759897585102745387757940380233894439682262514514258871116684902666432776361186048760310723331918139446468471847820500816547063982313113859130675023098655512061189123130326955112697317810914846033039139903047403495820006745144593502959633343843917836713396247442483298212272780373539717094730489641976490777290709554862271361380819998272863902198852785381515140698251860955002949444600718879381837242872400470365624860029330944413097502216230152539647662222189310819438476225490282118047173047606511272616278251417854662558444721427128319865301295191149885798085954049760846040008570237780350914109355779315257442233570037059281261284604373460239677475093014314794308340149113083035227939118812444623153957387025733260383881160656300041455204462279291278428563465658107852578523457744040343016948976869951839184115405206787521582543486806890127712985983998158952670651957927888807335097850524171882466142604246135165993537665157834242490699797751921469568694006517755078027600020837739670662683074443467492923763352268401426437274241233301839586220092389655966885569816415042742828077050708444397100478911964233614635841551959872553297083077886291001815030440695672978140686822328059774648893996855498886513480965843485502761188091038211263785815118324451616334000829539343628454370577655819141580955444610544550111109301328083543575234835717685164697366007396829722224651213153064271079560652475695382608373713771652941517341399374395538426869366795558338979744100762205166150586377451322529498627215968506551056575288479914922403925962511924623916252482414687952341028088101641906700100736838699461209890214680434872486897848135004627967515226424239774748852596593901503296106529849557090998637773689810051564002270070793723766745530734460106414275424040758782676100082050677965729814322071268566094877077594194896612335066223923519602878096196653457557053998237372759502285220056013067557359774055494279856361007331989762030742870214152016919661337623627916839658993092792732048702807623935989492832081345416556210781324467728620215609191354386127429813440264889615057906334509017840290948541837580210977778073704228958275029294500943690615190995347641480133805457956261609976457395763634465098420901598628571724745576318450277727273621543374919478389840806303674428152540614029789966584667692866724983486664496996525800829569409654081313568935632293050843315630522748877542111984271318604842464247267956523298381887573410526103024555921944647016102855270136993858045105362454030220070848976776641189635212677821078023784308215307093966626588996205234143656724731182199283483295924804171133808849450426485871197506764543841359928334927133235907493438144912625228095912814185251442860428320312384527339636090587456728630013475701524355637124123648325600075427419445003483440095137828852059524879838777247381436770597293723007398060055338140695109068079262479661824632067324949243632258315155326846132990821134153592016233897734777614665372663382896373876099163993482714161899100882291609813485473961109200938396107823594031240301244616486450926276083889437570715944128787159976994138572564352937442212183360088535911203970545136895167896575100522861450991186759434829799817133033062962062248622595714274611660829604540209348177566830048408865851474921491488696147625465655188356724937918234217483899348289115967619815774931299310474785775595363052700655069041039025156202669216146820929505813294052465769144143584428750303808350959900545562805884025403231974572443468973804655944424345815293053183042285044426080777422107805077949889190488159776126084440438229441467138233249545664871798180831800628431714251391501862758476073407082594037255391438818065784237362310340658931606373069377392652516997489645686872667829547768913344180153115415296346590213277781645757648138436716884597858073747860324280687479735421683888156357959601891163899431260734728510962900025991486294003396465511556458918538091159090294707743307643515782539205314553737754370147094209309501004295496109740893342488065697592491372439411405865438374735228920762838204702843491541245067005018731653907366497021288708317433053362881040843309710236349517906378285890842182939266085139243729242325422538208876595976454968617489667765737617335724561015157717035789121196767200517951986551010885634700736285462363077883330321840285168077449902926858248712931616021584860804376337428286177575281476450619438115842325940227499288785737305940460505852623190285870805192350204668445987606225350769353601857061576354956809322644121435087872712070654842092658541350649712433198640503218887359420603562870348588983008243313378720454161443514131693230627595516000604990098788694125113777049292791438763850964085563639624688700802946847687040572478449786530902378247222210647360395510035348941590470332015662734385386212617672956656367912345367936297503430739245596057028202039879227886502423063010867390408702092719326351649240127580462358820709661476261428537886662710129654973357378817805776462278480606246929914637520979988231212928472874092332049928745880734666589132827085698183854106238798973064493474120588295525381469659281772194907416471805199793309082565170487694756310396067149602029516084845501911353344128335468611904734950902725055954801740357949682081440371917349820585537111142864538400786955680104082554752013147557983601304674740978195511011169810847891752472475568591194431175324327953487852482627114535379515996117892225920298203529499539686754456882035897828014858668310240309469595717798872863341144483234977732202198265250870709682060599047992227497538979359557692288241341443492123606331049189322175264574063042144880296970336484446940490270317415624230284179522908440728934247932061291592635194976315872459935839436916500043249848862509991114601120389577772563992960634913059221814391220065714887434721971610216047599591359149988119218886336514440927808502157423969288223306681852420865187246924148637792225414875850256298949366771041614052526612611575215490129635229453759802107842570377578183603136186756013291431877645939108018542514148825300555693252636128756736126002738703885863451599391039885022467116363716716032451613139206870206827714368574042384228057717583159105401650022081064149791574798228474466643013505505114011823428554958880926793617398825377395796039812669270942046824116343945853210248801823046393817604769649354040210026383254984244414125246051046257872873350639025437163631897667820090614446137584107279092174738210540090272294876728349037713644615102770301898969533486336349715681345913589798237599772141126003948202593666449924102351307059352447064846481284955364679317076210617966063394550081013349728022507795721706863862871369780167417616456060417820705856568393888455030382007851150637748492709707546664154668583777935173791961660758665391065905968657247034245346370836640364399168596338326198957112237765670981992495113725804762141428405338006310979196598947907011905389618031323737365831487234694335382539228257078795892684451079535983170301000960673391112866718166728277441795653892931032881863767920984073469156822101355056649664860322519737387605137565058111752621764037642198822920657331874642144634010209478370835417155951355418982179904065191472494412456503041667118484971791417505818179506120876043074392732169759597626109677362055789269216224179455420236421212936363716621912186141201319430378295790243848223481556730314454289618717224838013353113424686389413871314721785525031970042488681491631639114379767170084565093395769290896611731340719234079518755848339813213725342949088862708153297606441431075696843017625921778182886954935230491332908711649985474214675141616073696826462596269973089290531735509118109932575473856459582557166001510282435076333317734903481708336907394808796021322113684616098387619406769026090670282349975024640646413198533320718749956830766802733768095809997296754966678964415662623920057730203417820699357283821709511548830530775358892058076914964382354505680850275386751047988394519641321500077739879096884493996356063716993746933175718085967752263617034424547127658363674697312489407958766505212425087867969821345511909124271498886068001489868808540195309552445986831814566161331986626985169878463066892803394754393985352535632968352188982565759595450387323114072474575322739192502511366228577900832618916553372306016969686768888764220215152415013981438887812122358060272088669804355091137173453218685101988586019053545698799083961344714427762226952772040623172381013534659711142856744604319894038255371204029546009234311547743041930865260993701483472203309609471003016905802682647015910923885332584338956224347452636808626965581121609948023713500272683725950503057094649988940019523836857614475255069888226598801926712706513537329282490320036629840744092534751461775689252332292011207426821548850557174644514925749606855278296841207341147715736100745217911067704540771483307657733306419799956309735925684695582144446177059379518078447417066233925910855247627065186225708561823980222634961422709677600572657185148992563529905490521486168827864421372589699804436082671347443365133262218952896536739172012022132498435108444453695415985648016139103970620594258455075485535186833632572800016934402973577772304282659464054015475679541623750524525416286093165545884273079139385005569422232979137761656821082136249099618040116990343868938045921012325956362472593671680744753810735536205584741791123933177482646748825045754311501668924033801468373957967131977606383563798867891001354532713453020538426270117275475868227363636521786425543832017881386024873978656864246961565597058622864979119239408025898513166151953626836074346553463732033595155062696199840141170988572684935586832164417803503565205923659112314033496908855012859719957157542068599878878106096974466748675601632135603918412367181989323557445869525280657474311008978167187022823940368786434766610231008948181293908847333986856526027821830156449249029818746437643866285306986244795097535617044234640325278840261999810282848960304031453073081203142697983641853924877701989801465557730398366182696613207350101327953183394223491771083885141724646737601588383679318106455378172656236345813968986200598719176850379758435653688102201410717549039372951959593379791883949430080608541600565013493636250819961144312570788040597920434838182472039477235399966292137936297030100409219018102172910049027380595718571614168560564211811986434557269951678166587694748009107585198186893586450618534946035670711601156224970799530498553237171692843456932043177028463367013269106660147067126008436863638520755794792677643645929026359953487504472365460164991492684528752084731455570954669042565871659433560434658650298894178106157051358629950422174400734974840262119502873936073581846288887630294292205210023884618845686761439952419773081517771401477953301976719251092134824976409531297207209261528474220395495707066893059754440615187338808982450010808436499216959800879271779122625610615666586907827046980195655341450659696924060508024152935283784709927624498017577090841619357898373470329806277381986198734059470246336117550162248207378570417448752734940782182256249504823052572089665488295128495758461123968998440498271867939868593322460600101511547424200131609848697611344086143551739997134414187527003705875117429915214449062289342095858201963437319814908121681811437376110126873800139945608704373449628081461986214791302935118142721527576330467661744949323506774875783937371151602200422230637984046726391734385835491549437429855745563722779706284980671741755384198743685620292155914358046186149727003975147852685510009402000063344362734902694819547553265452927643449029730651815675388477869351621484851640733091091716969884282410947380406780776108905351559191330767862033092745521332962006794716521415624296542094242063443720444863255155415923133099750558305125602048196050254113111662661761909825467107971324849137290437088159862699767674156399292541805492045574939794257844477127671668544830162894664915562617409010418327448631550269406530281684304406312157713132245431940826721531118614236735543511321715573475760538495395645846531192386873189530863294510017497467773011487878726735386338464028578803734555591033239636450036905359071939998126623221697560259302203774751096353348107413956652164872923030440868780075738503527069219469461460926313899301936008266200224242069499373845921064440283493124303435943909850258825431646448902879603392950172483971162601720989699860227439602461332860534078539890002008980198660938550479011732527806663015129655549353125045980301543856569879566286894221137495179087373517707262965562570014395524446719078036995165938110587610579703426432958959047705803911834132113788925281636249740020897802449257135002181589714910337775177444844304787636388647551118337823553690763188028509637606955628098804411198527735763101159276294475429015158518245253385949114848709892075058936757447192001314836885356110752236542522545675229854487438632561569977577911515560228724416151559717574439356064522199059035110177142145119111537546426303000536528798770205661969672098079019442546724247585850912227691224862917758318419678537108152854201148967005460273075020468007792853303937112348995012916715497518236039630261120344585076565946332575203986270618447446512567434309119025786566391571318377384003249267389283066540778827709460168981653716264693178169292209643819198981927075274321588265265333029632972573547272607370014237813067117122507222611290392792568445857443920896845578411415912407187430817332892958427535231097198990919763691936167229750465366539863867937451861371419079698266184490988882708850300727478320439560010983991460640359651435494851888843908402992527936607692939495343003765971327265694579458224735167438896104472882756019079342422354607068576300835138501822550079997218740462143189595088920605645589559766959345133374816508382930676378924320529466871285969190950403979679236748002832542134755159202064793318040773278619209004388038038543032841939049168556299043492692943868038678355723612381374633393474544083241574301086725497736624606172498965474591909216959673576559035170685265905624405387671378879537320169356454836601670931895706062885891122222717448427666981357659601719154677331366368947559998288648743702628541582115939806970836765874600484280450673328758126929025778266289516833859186724902745788341516493081243485462868106088930131449121861672789085930849925798742014966896684672607356705769491092503130802343967886826393422065495059701395246710212889625217432356618061349278175576014672567464772480781495280254293444050546512266442944650735106801638911607907395465371365169585740156172902760770770686937628216686451656541832287772846618578044151648625832192870235128952882296186586586236878825062373961057760120886706835241158494269938314929288644844734403476714803015506450183563927620125849245248174960632014801349981148667052599037248174600214839889265273503764592289463917163744678529631547203601990957663263901515159290939511455140945150574968037607625983592567243037776270090162240488433475954922655150654674610954026542925689417481380754325242972096348435135657361021787991784069841085050651471895477388478585090365399945744120883264853884138654709377384619674085307576431992183077017462218988105823206876369232231995378565779161638315214552213006665832098154054134769757954712909599186939963846319918098313355673905574574525162420480611538504336344556573567240311248635756034760516378867868202689365523123206639628442350913228972984418399044116577053680302632855217235475459435734702921183921525834066313096978087145938583329093070052765384870885875803352902186622796450126024271994523426222563500833305848930509648756806373809452779783074148198346344769656883380745728473956421793746133835356098471533421017656532469887409903577017721587793629958739647597153901041543644889952484978715210181044964972385938570476887908618241350976303703989012357583260442596924027107228576183712076980517961691993614397490204008264117926222768065413502155261182449503776055011422078997880306354087516647911460504447868017658687345888607079645391752633284109490811313444073953009295325535493412405966214099624505018648975643505504110500755676428327920670876163348634358048870290505077184547201027438609326283683152614390464294315746369152317759081364388260555304357253592279770810340199721102399761848072745565129475962320760653747348082962838020830551943968026951826512283399606441405280164362768786698265529376600189562194471773448958118531691182040913648226465981355656579596494537652898113666823091431450601338889932681913307854083746589003727450483037143682713644270615952603965471297437461462305436788686746374138694317069283041283984520091661126163581806686707798813845984831285150875642582687850930327492111372456989698030527297419937010338817864040583674645885798068506465925366448945261260598931728777955716543384554418677343706400885477551638694898836965022283286554781132122063191750784242610799492820879333259752819765286573864990675518877744047333068912951778767062352982017428053261247723007551868280690834515507096746987874235790017030025843261659490256395785545213770700421811918307793574385533017872943802053842177040180690628107087953465140931822989411399767308389680165850230672522005099698391882107883060539004250823218580201653685777756850278459239546189351451808643300246744231146447429280597171183740139073615310684224926438917160344904018289455190753375025111665272411075581897995202530366805780730062817867693729433865765942791282816302622155455896547686729022310599013725175522472149045434761870524738596604361278293916077652652663817712942167946143936233508893178536796240910823250420617644958506726339107755081890859152385933905221297202476294362981229359333220112034892640441460979857085629443735452012205428260408458491006978691002954399122545856749101454620965237510148874009750227764028445385535337668274951910264377058607677071995252605850430371789356955051486574965295961316801426285217324389581790799539922170913627293486526664817415214136899447692456765040635651809323298832079280773426208901877797316567292086152252682501037095419808875605549381619290094733780580475402230774573896643774484488774368246969594276149862997572765087466229092849530447703441759332533017055300573598041719134983540406991486370701784832161335244384172916906964522764404895350382298540144903744342435002455811804157756721207001306527580379522605179209038206621319011805184222455976516200741402115118932335370322596327942132168243187221281883036726921559492719214914557205170732103397584887597520216021196404212134206539460068521206411377957168090015243502714053176275146857940333032978021979672999148228364953490078533086701736040206464810611172818548343633114985792231426575259067424786972698080141068741913687742871582575682004404704758249312646609761009844204627030108232936370985233884219776667562561055619277636428316580966237078335851830124145899171936758980291239170460169158631200640522711199326301896437872440922805480922361965864714585978657057285692104548614677316488468450632640888591468431082182875250095901981932896798258343913703275620287352652454287910082968496574378217225285366269846051148632616885991810073975385796556433968990318924229828772284846592286922537886240063801447728989442985290445335659506318452345265516918284509679811037342992086863742520710112820132315338045215641636277167249229149025758684059580734472948267762401969243895985879464464418392153632436120692894480254025834870258174063299540120837939800794759399837813617177796294541917804429832243836310829719104138917293804178493124593862654182858747168133524910092710055807260049681970756127061769018809314328405898984751251809897938245070216414683351560481504617790402962195082242268707643377358363582827713685478079558876757012064038350846132368060058259473972945964905134546337404179695268812102322206013984541007381215502274880830510281200981496783553317108103499608545175212249247072676062510641783707460865592504500311539630059159214580945391579707341957062275296469502999678652786079335420958804368805002611736372708282599569958835841188019602056943271543358516607314823917513814236810780205394980454002793969465338180275545998150543860799063332089010528344395012917070822338903279699643410259894259208006046559196501112165379254914530430010339638197930176833127474287967236338984160067778322076253080051150768330982250718827076280007902806153620863380751517749743283945439389002899666874616270388921109868407928511993469456369799569480434050859274015984169256855604067360179166101850790831703705926209159627317138045554027937516591621753644257506663766290967381546543066531443604948399598190063596453699967420994242005525633147998755799424693316131201111901428670586360053610430654670812345480297398028363132333362629977085935048447338938394118741833572154889343063965106475482410688945924810577995091957740038438819350309834522569280093967270281665333828052265392801895394405283575369334186692073732006617446755599545628424158835127905055483716941697977628374765130435838967293237019206181724130647158673725743387164151047105184032495648898595147835230281517498989864593854906366155259692531968299500212845735435244331456405139572196029805739945211105154785996208559560909894337509191581493732608124444022486680951980898535761737209552806756119332577207040874840501844083382260771001311412318800909964940332072936299914824963905245992519637915463853574230073358187949293262746137014780320665216002134313906420611427753438317056029928278449375384226970199004783111209524572277976544024147200212721552382192400808625517367245174495681204430712129378059163104890878248532039530117274643024865444892338914027702280771556031520099172950708112338724886584121509277022185734045918649422646391886218614744343735382310353347161695518170583481955402680463365214838950184643175041299665276236988140787728051173040846398449533186142248354807007272897798583899914982447845334334559305472417265618341115611267884359179536952081571351240680924489402483712356833815193908898044885768351813375922330904812891725699853604039471836976430928703916303762922541693268241009287259691308246558819301749542657249520418939040829215567733646259398022331614550710024902676813211448606295868170756011374715472038071707924132820963875341685712804485679953045237037651652869146540571982341633987858446216266691438439048607411674088501031414231156311664411200440353694135630300318830206202847055356929663038705043831477518411755079327822508030761535420002092891861024855063443937198345118273718563924361990901521205993449937518918214386928423215738025951632728411837911538695956344902936830191059062017528023485694739938292088503079531106167935451486307362986267443962558977872363672840365359467326751249696180047214438914489478735625406832912392195701256448834581404073875115031001041954772850748583103347946595648831932111416249466153096985235081441805792612538339918595221637636951644082989376489008485888153284470174787737843304713300117202566794308109248695258873501140047741958888025958880785806722464000355346435859331611072286576051526022287887107478452244800355810391428279478440352365490634080294551640597031947982598417636707234012793652462536322488561443689550682617294892926998437770703857709608719133556584883788419448843304731091093425921910323759189084583173377172896634783223935574823142478630466092491563850387523316807596325975246100163259347946587286063375182456921576537695579003910123951934635088055281452217971133781983268712754863041110665824529517791517429188207524102983696491612581785018307746091611490473230435636155369662501401439378794509567143883607424841420470134526820799484785536497113128918341783042787759903899360769278785639795841091815174220979806914499020551647158465661076725703612537516458886994175172619455812838427205812001342434911212966164236549777905954922286224863664421830949273273648350234513130694353470766183815505995038649204730856110015707062450933035953400174056922942758932988640242296760347631325587022128671572572471391022910623642815748032501092763294469179984927042290887482066216441663638906979949234485185754427025696013338049908984506172632617535355177486247957960420490702041911737285809926469489519232977867718114537950862313877005367436720568847881969581716834131277291772788440559982102510853439543154920431244694465511302058846976154723728890875544883521356191771911382527563476736404816318273772737577359059975526209261238399450754787690554776901030180327974358767506263682997249825394683542444496006257212307181209091345633213702519697838881599145654899683557829763889512219140391214197075152734459292867288370702080414194358601225358528768728695698680928540459967626308196223336700100716102115142034647366172465875450708563781046738798010952493348327276267755555074230456483890431857208154519787470890331139919802316517856768609667174537509547852668462551940607448117519127102819695321001977165010995995268198546664067528200456078292076302919499223121263419762994879591323042636180094387248572177409062436211770423987777981856349957402714046276099353327174357610087609972889569683670187567312842466224830716414004557706876542841656764617504945484233795466450420368669809131154243550593539061900894284127372367422358111930574108444246093410308738931852076730965019076872800308523149416159942393325320873193740663399692976232974254217333604027234026871128304985384767057647310458385245070812016286716250987991344146594152913374638888643279795006719150798235313268355448725629666365483265742893337750482600098492953518776770650076966984092889430329313852073318164142200726689720857048013208856909573242750555306252612182890496063714965037459354758972305294517828243974867848872053705813873800266101421257757886676075196974918076392485010878397934838944353041626557717038816139180132710589038478733219489977436390295082680538153247164338617878831306670988936445111160176782687235866262201872962448210770351376906541187303884506778420910705227617398495364968793542312652578727957034845953025799690256813147333648856021682284558780851863518098841482922653359070779904686498130028673430522081031029254502895964535500718524269159115620578296026075990630033018740771334727575403253273492682800611875558922755427274793524918811020259181720097580256718362998646448806208446070539152972241360629757442480693892365118922911676413954125789240065666849150958413121570785896278264574649696955072677334897162045647950115186013681910134284141848469593755947674494388591865327213487747634651976483007761746187156823320278412481200180269482547601850663246034470949542932451121127626310235841353681386780540646222580823669668563854926728696247979761504685341050055458651472578040459176214655029447325753242740244500008417893869088892195527337243894647745261651668767189878942710862330046569262834830862042618195807794105574500337597928205691916064743112833281393246199388036032425967952730583438796541577374488959507836047371933382720954206312985059837459598642144353104254649071827601686161590676040274329018319183039749760515465979445929671621642138675482414792636533053349899005003827229944371652064893900873790588361911665143410643836068022867302149843440914923855268791461833439970869436544842111707822275125792574929926219166258190007061485927350117366137868821656255352931166650437653681322973788841750323709418399586844958461740557678085187374563929305756006496068882236672691337179715103361486898340776550805370594849105169979673640367237198166003679696978810367855553580681783187495661120288894523978725924360771357286163664338927626310813366006646337259268991379645141562684651872211542080273128985184860079260123115023099338248527495115227631085585998098714822534982431406052224458838157068174307446445744833657113008079806161472847667827550201077436149108948225175095756091001105248641991335708354508382056903212660420276148937524213216614576266373286638488568775348500968758805077143175119892828855721860905556774108519822310070618643526023614623208658154175913658027946852314720824135149153698805413994409772722848071140530246632428868153314337316828311322249035459326744531560604337285309487992225452009179232944594485060586369399599148978144596820992466759293428883156640088038722042026849761871600947284361084092081155698666598519770643675899699402753353998040929996556735235080650930419890813648604634397476401154556878269263309876797166249995920701915472828919308575926022437659679917540702907472270298767713284087916983565078713949533619275517081378514771695946031626720759541989475565837224218910371094348995299282049560365915838333012600535148647186145395488858591747501680133690105536881015158349917464058882468524643582681202426114097357742643290062192946028306188017790131707895986247273125057241768285770322691865005305856291780404179918308111797353325025819032731284118761524718348468835683708005356235510199146390472749852421702047130906504520366778329776170567253576118289107482990943925086150061139565265721919201510190840057599924897757374300645989276889990706445334385051795797715122986685508915788345076123353761591221154610192659240156123186364344578272505650989964497821622686197486053612382303727977676951921341242995128300039954048560358403999353672689178827039815937372519677832285087892468794277588873692784698953459692644601909294595307856285287235577586147002635309890101996562229018879552971451306512610922244342395167520166958474275224915451857828206226765978459111865076552202378310087760256314197227063359241323488228752157862471568988055871312242452569125282902451081993950419425899889701094853631502516414591932179060358714823588110758036224854532434225933282930483346431669064981872813013979508449399838580337825935483999324499158280099315188853495529289957657729954786656580721868340300595813124046028953963997734972458391067752699665707589661097145180269129967829818798638436299953200461406192893322477743904531666684016771458064367627867950056649621305660266281623162127131633468475411268913718448614657168064672515368161675389420144683206151074688477444300881541703326552804396581574838947362546558421630507476408879134605221310533657027676650527793353927306757467114045850363177711883437122156707601954149440467451335902130361158044223019918084791329247333159177333034850904111021584059986453564274269831468289609785401747976867725452513836207102856341606824240084505473192584992246103329281993207241466991674422127994290752832351593531845720209929915867126602838638115429488149925333451382281691769740450342975558427783436867553855652469174175995727201410309861451228927217316263288616116052570180443688222310862602965114156026339231843854700106655347636366998140453336112811037968084975515390756393206385905255708496889326949513608779146960424006217948825464873363042552982557520480047673801327027701144156329830183810353598185765629626980227031506571534337534185568035819445265191000290253696098534659544590732283805740893561033904330672954481268354528258768013015904656272104407101700484656967208955024431948412410555275304230346284301453897110606677798533885984195848702979014327199001980631341183686333907450249428185098460718049328679626444863896132699804311308045694334699281485086131180780075921027455097484942815589953198929693608310514714459489382654037139062265865919257325740851860546241454234304216652841222749785021925790900984049803960033897166369650932866849009244627853626958261589969377291267023796795180054817056067509583573779163244371352509914385727703112856041659331578940991391702643821582955305809011391443897527976080227715194113514097524923219682711536230356489308498909727060880368282715164363816590008823161078952106383125419950691327108607601471163872575921021020278167450990773971295973690804005551996984528037682135140064168038057430133955633425714851724311079421452541478826495539896038284150245390877290096638914083205688590341059659143419412033190715162453637193348921660720396076312096286604926674425648254417986798355880228279155474710910478345336092771236516519892748003837731765581613704974740333301903026626824069803675503357405186119183205603022658089786802548204337380917597003957466164418363140662124496632545952185502036963642624829341302777629296878056602818249354824455378186155634625258547974257509794232996681746171643482698330075586620346405772362348955764370593764253165671114890205708587170974122535901376389465576338892088123179501908148573645687424630196733406711977535257623301304570407386598254962758133884401106536361461301979330309133415922095110020906900099201649086822253326156526975245352002547466951417739300505403536428140903273559797127036801571690664212985710886601837356369949981004712439988317484252256601837118323859010563135224498382397241727142631808398554784974599516594388113489567252181035554971645644515120514428042953336708359732585498822639227223261371324516583248305632696156325074377797023954707421508944759410658681473150991396769082239254075368975328608351613302354457216968779240109207432271546026835765158296409075153475850336547937312791948428513138178546807481068799888153774812838440958844642914634782220492596772374153103196321259309741818602193637167893994761958740835742644340243493549022663954661028667987635662581099629149448987389649295031909449299341968551670522104270253653219912681207068593216020899765751116686060600243721079357332378902023807059539773211858100311901913283722076420867203012438209827859662768957157294345445203688671742230369246275045285208427599945489171312351996198862492602060971723981955154991778008827731998278517669274628992304586210142258716458366987183259977543962982100886274890064351691016295367741602541544207188072230539723889750268655237203175071277669711853664197496046872483665457710609494549710878330619932793399602614323511860040443037588066955898894295752825967436586595083478118621017361276417136687810657634510418531200658276241347488440821961236455032725875112538434536574573559796381778423015547581840323475822570807427382476546741348958127775532623201401671455913926683637997703935369706478318358320527289810584242260797911735597392149659738047108271814299900447841164365283927079803560928105730686313390172764305153089547363755283542351405184201946336519951165446742056813954186170239145615404806094515682697068237483104300472815821322691076834568150623295532678643296222291916810547989738594162325397506461595725077165308930400344433061350492233689805186620631097068578712191424266261636283216593043971018823041186663026390326622252601409304872589954452061082390208756428712288341426716241439829519522948153035292546873823839092195810794196103651377913346810406425509632868397136366067216593573055137772458659638545059918677354310644433317657050160379613597390207449884364590327320416623064391488150406826693896238851841823243923891393018191291323490043152371528258407263171729994645552455657039982253631358289217026718331396857383526466317959618707092349484345756309380886101876378117231727310114588099550987780592001035160322822650756685349427871677320484995985549461499676151847156929910206125448483462651613275013200842005109126663003425331932382541654904343407345648562328660601471242801284387234418905466506693295336224745794508667544953604413764725683459684624421220094122356074882789772664129834468831857403604969965344492863806955296473578071250006136747049871706157753489789594372103478735166792707113102873998772830089787516276540342498180531285789873345229899419486647391159329468853916812282871098094292194399725646386379298013425323731115411548615263005347145492983428682425091414493688126954625434696206311424052812533295201250653960702806090106709104906467909989960309229472656087253050191518461209219998155717331362772563347843109730695126561804228858476559799019354412389917203143618281255178325637402623498094706605580445710215228994432403128590041023900942128137338536190025665895732352076229063284374396609357074820900824896305172229314173455031971189350407178917890074367311219608561688463304727801569881781467463009486226190946921187042188036602900947535666869863498644950853458183635851415624795430559188928221938509917968823979860659843053534852667992507259210411610420839727355518890617927793154936759579255074373809317686253788259982011398482886369489331544901587426561327866710510988981852665999666233557286492121594697847684179018844415621730045564474012968937180603742211135096469332106578203810465213651052236805970013679936804586374991015638385259500200748277318858403383746263017886932081409058597865818105501975014216889478449450944867113684321858808212928551034471168125369903333170548236569346928683328406565365131797291801506745337240260037927465669099558923080878316329706473540430139511420661329707989689159742380364210826348553442653717030972930990297715686808930679865857040932293793582675766898787994959681974953778860924993375633059001943131717162467517789320089611858787296491158954336603793538240396987766682625257741705627926290623203544692571554471186713836499995661582251618581021426297987766291221773963870308352266281500143741631305964085292077420819046831057337760373084989504785247499878474609161774929958253627066963741178098402272691687193660580399373016970460827480037731491025303454647810543402990402741672980915338193274527824252288600209428413405416383259606350808551939537356711843898789360553586931870440959421994135896820177331506473518328685603660637153909747510333791564904507526058227782772709784733087575933687920002345222911800451928137702683671536830656956998646258702644416682483680380337651642943837978527322533306233282640846024471508617227340484559045950072539702254507585666641744248528917034737000206221440263937218126983070020131180730848240569795788689964306267929890290064248845770462917747353089327647087265009053050619824955919200582297355313798767028595759972479034228559792980988196613251466153254930853935768717368651539469385832698632835776602746122199647054493316393332054583309413062505682630130851901789390349954213035272765142480740977307319436054037456078994635809550313074756002413648173404804768237070784609012847606221152948260995175078363112100457125819409598996193944686541917117156510378937710972541613024320363874477109246126751135477778744546793480212949380317413724577147525677376275899269251140617061362224796736767307909656977972858117973921899247963007346799259252058549004556710772471493241735145013532568777180618358414302902568410594526161045142460270193389685147968303793807083015458909273736532928806078408000093330051157921760356925790969827579047273639499519320866976142700157855306976254943151776072852235115348933057366351787407644063647477848813717726521630866585677226810917399538598508400589111553845065092499039123950336110091158913729610804355680943228916636046052281608725504470796413415698532272001603957109391902243250536351962163978938334625307282463180822465665632100442265326920817749040332599389644044735997012973784235045340051116312420657212034130075680343795633793092927241762580988139139879796545268188501804096602974270237555734394412055210801406965833843550450653114504035508887752527379223753790955207749221178555285214163246513642409113218986403401929670260323004190140625974487006931363089935233756678135642092103026283344767070830747218253296292411336205646233708112659579011773629294318997357131166749275413487201718782148581198707380558361129443076010541329581777080997831465845523756169276116635079189140545026742268241196273208064528741574289631762645743226102480885161100859658086251225666979135011948534501109406125903700526940351829560903197259424390167894309366462038969271462664945652478711076311313892746626499706429904190649096166154427589571683803367384314108712311380500274625421195943156437611904547660951729294120644268474947292322878300834590492065728433018727994601379398554828215716908971539827012462437022932753233479034449089638309756559037953417534540258962228121649236331628053102998202668671721327829417040908440659746132237020179477250367818449615233826295221850617962593522659972893434437054732302259896082022008394396151995544841334438451540551407152874751103309076176454710204939648796476776296976266811376824919148076132069235961485033722001103107768849128040792502069272200036908026671423807318274901615948019369779458051895136974978870159321659816394645548010646163998926160644242045065127657673054525274728777711264459919729915280946373214526581040538327160208935588792412695488894483282548717364862683481003383434709165058986689284250531945124180844799977981162150693662668426224123257576336796485574422253129067875782266898996168418257495214231945214114101849286031940225498942718481298304820687062237194413956498131684242214967047795340352078958746177478231137049014263057721633174667052186624243906796835672734637276428250766085790947139100014395272741451991557998427958312397971551158821812560232246147184863521899514809910691527109343476781736390392158438097858630258323254443367708809693551775251448010629422574431027190038478125566614308173847114795142155225033836597705330493082876168569176551434876673082783556596509035207638136048864183773849568479041975072220156250222254981827379239695524008509362791119854025992422107903999009175474890594547824601266188857730360535824858060733192341238737968950690584481664603142342693139191125871301510199374108069957666446309584260767281843552214917877468369189482960196381381881129117639370454102124741141766747890764319599278982392255169854113947047436609578332906544832400826087091893799124261190837288431308285012021903415263401969778274969724378180671981689817595393674899822050479179075420562079403475584837518751457468506785503321163570573558607281735164165426097927535677950851051492543979924617089835536342598705507679705832312331136835796350917297486086764632538903518754323411348950670118235063126912874983760024678716284192092355292113269857516884916763994634992383986968073432297540392211688925154700337089970230326541604382408725988401943171523996420094322931741443220416531925635875066941492370591102154725137151852704159553478499171434349240224453511901870757760354746776340223964702734815410835581307421553085396053126877154416190995407478541419608311246810407261004720024778316389082097884119644516705376399168306361996316537989712119331560290765174786717118485339483144380460569909290083532205916897184241449655183504086258994362644901203562743275655266540097274570368755798845722680221193837706979154351951526215475197507495019824984581332014249477635819681309074304432820015116252706274344282754383362472887134936830862783359536250726908988088855042569529667205272364770411617777661397134526730886711696540827421935043990812354768125636289578050084770602264427925851927709422888473369718414247746031343614926089691210232389885940097207527247296174488203598850759430880466832123016756265312293959092030216011575036462536285829789028973928890431973960955042980000641144717071195020995248774721151181963314546629790993480049253031535216654795863393893169193906527014854177007476252507247593222429016565480555814167201524390217624060398942225319574209794593258993842752217354606701140682439049818235534607410389075789910479431978558349423890935605554988789732501147782202461603342752363325210644634284517066865076895690730770132915834840196373835491682530090608716382211648073133632300153574878285690298884750684068963181835693874308980995353771102797657868738325627503420475554193024827371714885145098626092275488900647316949813443233960544518305862073879831543264566724695849156734423208206322273843955677445719483508430315022271719283220445725503103999066222290508312880216806173360145613039285350240620248195894451267387173331116561987248908019014523899542473021573505139067977704215366140229030041221310787624030459004856535964327498817931770382975838315545547438799340103722022573336780535600680457881671107195157305797251915280834728210268248683073751131818960503623537323294551324964882021358990037889107308278660824145868121342932167474596172269070592049912850874503847327332626773606615267009132171809026211087949259710685201953145462467071202338304360677192892935232405741546731235798028421760512925603283173998877808717715302516301036837668001154048143059088226092385044246144337201022058264034196019061522627345551540895787596679247896617351023608189020694905235769219233670617705519758039174164670711167204756713042036053876332027478926420854392623794823911961578955190620942565772559613848252041889629242014440253770926337974060842111056603058330086986612517085850486581960728301030208823139534731181410606873492472897894470908942400127736093967721196745393473725289160110806982773072222212884522797955079439257144446117409612028697103879689007655515081581592479118523312519991007615124899380714283753618655591544238374785556148163848128013043650472144278800192449612203238821968606363520520297845153583678518942741590603013669317201527400759799808787699977261302225155199628796469925993092996437566007016135607014354525867771568672608106262618943466898833527529766174379528255805250252800187454066535703612851260246147307855039564974343297682228448807174047634220747527186375175075048241405849162487945307350371653296217768133293078551102120659670600258269243943649160014963953056767897245312084935354414023858866035229098911741201587426809875938303095550861914338303670006044071717459986768044635458362692754269489968322086693981025892097203722342082255397553426147223687370622242063005155455649681175590090443182285689853704585101765233541708454086650960873444363553496156817266221864286796206141610697815101121645209921063996541037568391971827295967158886508190903364407170813497842522146850759179206667307155295719536867374061030429237684198633291962470169665258303632342512664957274907969988483887134938882677779594934458864526944249338838513295140743725106684276614248316489461348417942609896397522428066737380747237848524993367953792610939202465863734320521286392916836992494481917047407777697053151978999341618969437541006066846342575527310485850234132894527102473082239126650323128101759820806269019600919062115265342686256764794014958081523509676444086458876566669018431599026997106790475910294587079599324634022041048759818080222231375488014716173199898624818814918362995532395463947612866585118363664423843878361510696611367987035611709331073223638956648524836424938843781811319901260106946304556829358226240522839045865850595952767390455079544930917520622000531831126423750003809522402357519358656860518115385576823082576422532606156298516265231063435089491025306718712305242464908565361249044265252144178504695312591520615046946877396797784876354228710785906302888216452359832704279614666372025204630271161491122688311549767081333430032252954271990156081206236149886131976224279637392549430243428299269444463588861902352917224771696272787085635278777966314564588596038963027047785841401378130239723523855857099356306126302747064006061747620422720296985157215342583433013732793512241983351928604023265807085519959089381212566307041447547596614282198962214983876411077875241698190748759906562850568837687419265899766342675581471358289014776352899644868069803873998159510449727374016835173480325982159826208579557251393498486610388959579841667289291607649437872983724443707882308965391839783029540919418450386711774006882223313242840614455304869525705087758054902267714933873497202189726240374034041295959537026294714191022867825497231549518897531485373615166670430238169343833367921223596446089822574634472724844692370372955043774075903726266757718006078792725172174953302577852752497266624292055556247965796216972654362586869629295088332088125693103878640026682981081513359605550538681784834554130887283637716432659602107209779024418040733521303550126594033893030153095851153158881324747343118491669186130718008808322894133219975584735130097310190944013746035920654168373642975872700152466051531016222469246011562419148547664791115808089436498753060001715630194156404811093320226370658461031062877194433064280820861349975256864613501661635617463796420992579076239133401085099436372726660302658411467910233271041730171549794276243733082451265923225894522078559790810048271988899843435637351397548035221665193492573166035150393783733727230961968540908580686356166731529846239468745009758227953359580515163990198873213137275447889927241937272118088194738189377028645923528500463785382214650585207594528829852541239894977258058739875765383539540062594710580270460005174932254614078109819686638386394088168445737584592084604706094381519058394051941016778054187980391220524669278364090015443202729902327136634397876147447937177839191287880745449725439161131078866007277233980672816164409388109100939372534088004531709642502993307379156580635772078847851680096596298808627227152799306515813836618535063810583884007689318123593556820350183583310988209084695289065781774795906127786080981485340939919659867946453555868098613189385726330608021174105782035889105465150833691086968885833454109217961082141455680826960360690939771768713054139459652987933474104182277133668697165533742498915165763045014838439591253486991845282810573385730289393880343460074140573080636244552865267220884037729792782861579643943209625967866579646251911663727400309783244872186859706037998318430013085439154824006828912332211308042876173331383391252396886683554347462258260552395650915215855879638327928894877434319655880815224176381844352016698755924446412896808944979321096552417770052201006853025868866898426411962574302108854819966501180045759351393434747663912209564282982733819686151333854076992216861640369172527416298787966033580427669436088390198957851160096155279768880080705281651577470887435522662544744785228360651352670021217881273513328122412963285705769358734138500083475365713408072466924394172401814817921254361977005638770357580352716735347371076849121101152073694072279904953333821688949769225802033471232472134071947509542519503618493408889959807068142531935044935031605121324214252025934286293836300780516240277620410040297093643102173233794862010996991066470995326457106323044252830900931161942657172444124388941270030476489868439068808489893346612242069531539106329182345741495037302875265116733760764480793372136655735158202244722921523507638272551919488715727269319578147708695932438545568066673003868543226294030829519015191424687938926206709950000195776929188798710351239501676308357181788418379964031550703577079103526181096648279552865296380493290575517195482775311435529092056980033461633429239032052930571263944684137812486256633457761080773903135333657195184911982885498130715225480905987557651912871575530098130882749843479271605721492449564804826171373147041275546986063043726242818563283514124401960215995422889796493085547882060031690211252508424031593269714959345395643185787986217065244572214376795431482954234123518857534543382501260130411255783376798591266127694847093002755645415728316031768103959974966440513865457681052908015246684369586862504709567107492033966893042256466147253319670450820534078019835330643024337583335409571290655255787663951657731153361277852411744073162443362247015599988766263338749956009851817715173332313159360648135305143909423912868010509432865998914834393973167996323441808262952965749854468652802427618502709896841520970395569273548068948412377741429902897779216828034937637357451508879945813707354744109398004964554106117716403127919562352530493775666931288182768664494751860787947002449256370861097441537073797139472756990824135725228693570175094755291673583334632924659230585835523246417653952146863715749444580642962033555186010320851946089881438817430069683274362234432560409196050869561564136176341039878701560844016752336093029119663550331895462519298120140864129495159707510401786322250618958902067538115902981456069724941457629709926394519527972238020241068854201670829261433743638070764447755388172834698698308067586571362400640966272176931307201338363119575037862533365382577420702012203681006171877790451537866770959491444250508267163746655926112693357162366529170597056952139402017919675375133078430981656150068278288832763694648211604367932165277229812367963214949132753568223275619676766611273677010116990879223394862643550780572929069251544781621647147707107881135422274232633255896010721396099146325181443195300251896842285875542392807927791542287934327897365373350100630414654946222699030801060449722457793940567895728700323720153002502652548864772584754642372372415721591789759730648924057771181748706160531290511801760951373293296388316903718665242269183753164662156390179512192899926158784669566612854857850125748587395786935663832974332255608316420842705756640298070025467657236770281976947430312399875590071110450863853395556597175651923567042570550762650456986742254594770265399260964954481203797266492298642358289422981486698842511472900193667411191183525807945561470302525387497448649538454670436044931965590405312290244426179890488620569892105318076756496780374682415280924246478645128919008707797847291438194411666575208963781870511567403662273171297880648758880687462862405680797591312684701042924316407443027071218196765261979373543027451621810906969806425865931441622166672432614681015516951109835069552913131181945072755868514617211733421814313286314403999617962742612741102601945223455268400587363245374649609891165904726125800560678391610870492800726513752370172490269935000272743269802754662878407712742502958662964943697311997329320850366943024914425122780461045382268355894366174580633782810293506122507889552027609736967471344262306020150309512013222300098098815950377831247176035406185190028651211274314976007990761205086635205149240893415378518533516494854593458459296726072966414498995413469415789735197352577452732082388353877859878860914467965173334777141912877594183548514407720499710987111676725997965261652841156602318004138305532215286742197054986040507255240944821251351566930186439366693275962630957781098869777165362433214401181326459697343647514804945368408560483683888655163944612146662623240950005778932454059408333836666253791044558527630140765940481048268754896839205485222372256567542482568115840102280641075794556796162482401458574398548783969673238828619826403953364822203826961705753240667895988435145923645165571585210217154162647952034274751804553382395206637168536412723631907198767452404382004288444489381165702470400623104918413043507360396260413742439997408109136132917554351377221536360684206147189337961538386374855477867693984975367939182681482723738017355718223511705004836701577323655779177514801678297546885977573429031508436104407135506643294420741013247688506970252757429975292981276773970420553344010631044806971381455505420447616948861306161542427107002399492871726307722990647942801270659066039661084975623645709640703484083574583003566921834636131519830160283971175941398295258738761288535756382143831327795580061924929585215381653618165316351284998654944164247378549053170374033059343629723122698945014160896823134047212523698574815240698473006316004900202343783635742711858755340625281334461612064746519187814266578909926340646119360188062578787960735753824106351255686120525969496001385475445991553099270994135354346287195587222256796162147231125399872705041836797631218491272835465609115026797484599146370413049858225668811614614116877948145576438114803469163595980555337037812315212200237806096016366348819043600200599351647259432837743053151626467448319059248494181712450724617850977171180104195653001459638627357554770876814526607819082755819963487794822153376508029525611972475419506669542502907615148698671112193584850178289332344492107013040519947383182536553395578861542012293184041964017782983296355151029980350426113195794868021303788614200321210598409936499023227596956299823117157273859556067080867139972508042562465240658124518152340386422197205289291288393409851925771577870825336443101380868161397693248566234660848806057022669719043739059842708637478163269133084974855781761644810620378387372297398015497940345740660693510652256639122837032475325645695085680854045831220150330787354826199922607274484765794033430448631571690526119595109217390527450566248300275621181738135599404248793840325015401893774272831489879078029428704525362971110506447009079742731896289380720266258616195793952089234466331501889079429508372623318257767933377400852610447819574048933206901950033803695376884617419446668648663885114490506752343674988095647075121344004731578498011950969541343536423820814735617869313981415249209171786451113009582208460043051719130975358145712483467331661690367765379846702553429541488910944183552055642796669559203712753067599071551637675304679159269484313305310559129665303061785269511853883709465550803061155314716204100923720506387372346620083588051582344243421234149821718971387416389973303336373693666784873184696358538439331644372332789749802172595350663606560688466011795413936595538985823180928542921108819471762899853498254336752265341561376341732915727037764798351273234284542013267590816927652207730170767354938799813813297710344428153886851150005556627820891761559073229425298534488503070080819479229634635736536494026462770381432427220379122513868402562667040375463793274703531192400591384364977967589250253947914968740513582144718114339564890848493860954791937209238253491019514070833118406309045081627270862716958536401487093323849227370593227810272459579684258889912376455066876069123979437061694028678754664937684354319768084732292394985938506044548324827142003576359965314411916663841360242873357510723467767662434186780808425521174700845119233097295824646516079978760831245834165842352507170728252616628443186282007753321899732391925434603377629493558964688110092033870419482131403446092094381768863090801001122121551134851076560108521817852699392458060999850924458734064959469697050186808973181567371653723534979571772375524502289356852547446959173480551897688972351173792360712002553940624532976959960471823228744316722513418248720953986353191297126745314483973169844383253374008172826643139396704611685066587192998804589579572666110102061329761161064868276502487406322150800415327163093628916191565783317521120848128429804647309866272018035548019219510861114929485409892462081931005570369114498484856067046633151960333764324840948290068075261193486761724258485348502082911099890013878206359080968204497650196220226208341626815714933787321600866714396373655793517411289850905265047305935316074490690221860832702786437799764869484131749948344586848887678009345089265679451769341999918578429299544761407634061401998760160409202751823372513815634731411556547048215644495143057883459749992068192592891511105494819547019070764225575074393736347785084121123392646110621949766132242606109885150306038007346690344661275561878515843804350093398649446935942096192343378049418931583612576686307629377227748106916850988003272170299620062658012298524643927924639212944886403751167885727771133703034906674486079462837862369337370691482851008023245790331131975698583299915131863643437496638005718276411979053507090731947764138289539394228750007673986497801811929788026722449357974203866875799275339913838006150706009352237393180062656429370846691500284390101249968212863235711484787581882498512764255464728711496794089921088164858127788846991821358615279269176455513599572668332402500513461911269755573150688331632204253227538677608989782487997652379582210198000700443609444814115738735311801744087702338283225394781104073336679472276598292294779818947536872312660500822023039895055049716312297625468609935993766427275153167363294883322381686065914443701305057048417526235956061072407479169845556847784300259496966652498718027816192476950400496854273331386424371463161349365132419295737279112260207286273723481825080988773195971495007354463440470471161256820727018141599278560153522833020927767544433489822976064297448580042004771032567784865426865453507478956751698119967367183950094840320735360980071670217852312920968009683808759904210124298996212281161372244798726764083485781087543857155751418137832683539885523616956477820972467788226288258505533776757341994654129078255643031942948427056721598468655425357897426256676926536405214949617598900116622085393688673746412502915010058021291059600760730781245173662961591511863474575353209916544685019649795748177684549846880751870328520194705358613285185959309261363331214067344086952612931640806072507850932998211873776742352292772260806971087945577545470766306520948073516815350320783024692745431580549559263540787020849401200286971123592519654989350212288211887845507374412452570752451398092690371451011325812139728138737502710182371328928434607533597857264332604799329044842062290750164100780609343923160145738154020711010966682380276990867512026263133627902417352164458187211291323825028959579525159963476180522971228305509588023960301737180444447670462832655316418776747066448340993274431919707100494537255030780699626107967491992468627742234308283732476684059063110990403268322683374242512048116946938989202321170913153622673542072517748278673291544123009751918671890243736115803971009031578111590333896724676440820578994124623330425935631818251960999138306273004272736963101704075213111919525104288136152318678710128221208306318864156425226684155803294274857652534862129133748439617048147248144512603668615400167201577023503671421352273409785869459654713295129569381513945475735400054615773852221411202319054861281200061326384956937804258319678389864666602407250804993570825185027949438686906632867358767057619057379721244011615577806928821680126790215498633892570546738860318365199821548209460987352610144255484512849588629737080966603961077260648861634898086611326681296792347804128674558302576997849085186777312296079792317268147562755596583990117550895630887729010638473353610937435304172982341906793863903283729036715438217767318621673558883916236645323282044930217432752471066251021345316230628737021431577470191533229970660480147965218873509770837213810264039450933662847258478437597029673833129621624610492764000349365542023394854537203671591978944571050983319501521308967398216743731365565485435133940971790575452600097512172515044475286668745571510951052736655512222514879464981759817926824312412003927766656583865128739146829700863484924686244541186770537923994115930916859099956827821342946780996326117689866144191877595158011482401015155573606544710732978976275813468326333609314949732454650956727523532450211030863227278899537288299067124448757260233058318816351746624474561205184851613344893951685643041074825921580133453861920322883259071367680601177672929574974244169617347825125954687668933121032121570637107138733573777184993179131327302338762297237528538162804892863585824787073911801087684585155157857634658776834236078360845058238029384811158340706180831985809086733267958976476958777663135381198128733770116129451011970686078555152302017263904267549322972397065436639205646640813770253983856276768510557472067362069429132662608343549306878637831121882809802678098590339443725660181668770139956021414331687021223542462704722804990522316331991970924905976329642880423644487353967237623981179908270885945377449141947658101034424304467033594900535366971478885076549091264213832283616241824945774068249113224648582893869711778120586139397203326620950174825614121525135046233913028772611661619916568753171130110750255961299322346247212299266977500356705347440329448216937809728281243759218170095841430068333305088826492684980481095731420186564618010229335016876898384748343742385172177711158144798031521834640710303449561491470134753573192605395842652516113250510178421967314410116605207696838031947982012218823524467663107824648576406148517813631992036290529437325692894974506230340327378789200931573893624236948735832192861284697528923840389896968938896381161537980260460843187802799635273133515420131844193329483858168019065637369202242979208258915586254034000081330824605609490551197184667079130797918839836821879664876971369015632059192249647090992549397267901349964337225378701466977254870557227255795307585286988230408368966647601808399934219960664354682186280093252534970396482573158213904510426587543998335835860171265559854520903844543144358276283018471460168454138103039780083094605734647687544013077714830885861092238664035762280794227213191418714673920264677306362246057309353194343741360930138509703488439162626320559697652506281459170803341407793584256015896178784942500495345071819552358011017610347222042585123126631844310002123275095802802354037776124994396880991558085127540089086949247476078812539912905699603505282951314768995565213825500506095334455635356078381028676808696382212624150981837023280833330673634217740949954295984788497512127629893452984152336886835543188534946896837177543665834597824100142728612628202970866640841219879925809876082302274663428879716792588931192491388099330759900281869270863932457565442211389793819359537716412984298337060809311163721506526084020041971195920781429567712288812457541211232667741880682776317825509117015525308438901529217724045323187647034781403592957262855946576566824920102595757647747876580924606807965518816315401040748437484404913277486477302024594603019603709754168352906289537879519871628445294703434195515908301213810020284742987087541445953864275918989485249136825224950349172895769293245602319009889964557633387616369176098006959894260977254644832907555257911373054119432621381129394251828886112092533823786958502314418421067386120160782070148362163057662719507060007204383425099704005179249189198431821114624799295797442263230395068633257830294525984572490685796236576974948353466049599959985695785013628883362743570252854327146507586392834696653176318097837154338850345493861125078305557200569401462522799047711047142948680263174663335696589523227762111770927750152901553587295652776375110644486068440783444650058806879324665423356448216500306312920125798878881778989334326946001198126476951708032010391550371164696538736424094157574402648397223067910768062978976103529853368446436884448458031663925633552766684281388783294090576836289207482716152440798285939880293601208166605714237810711405584388188620040718057931893647111906659270871960436779379538105212436076987277839641318158477706129952921395142408915021512489637145265176342664876003349281318541243315903596929376713912823928646784238342866173209136276327437560093556626816377430864918845162229346114182516133974868068280308186198472296714930360670107695658119213509403379094377411053791494114781270737850961748518761850709328073841192511501960126395526586356355000384485429154843641326639423502378407591421130186703240009555352865053070930151076362419674186408764502885897740203493954499279276471883009265001685382193273834418734258617701259102337100147348099379780277416255840418449528811570002713685072325630112065556093077275106697403459320218756847992748712541202129926467947053216114437942978179025247458940848916841324800804091631020989500907852269820458443893842175761295076011981801772420519875989739433665768903563059604382162700585853962318196363203765152066228148082103196272391242489418057490132986991050013588337532723418358980397646333160501951739573596475272364833564775535264981335619416296452892892546675012159250356412635052427007946157439002987127296206513335589607600767796835678521276378472099836276032771532511792591619056807857661516428610471878864509586719193441061449146552393432537976882319906107655028027426236958602248773052233616952037683764447089995625995028335523887509108210140412649071730265132817566394549220460612192266046987950113230894985938122409839875118461596754820343161121803261148216121260100431765243136797066859229754740930045283481728591830894339299212288721424302695801432835796045485760139130307808046192878715313265203948814595930676400479712041538299060887801385119611597875141059704024582129409502576735652088642302627242513571866936108741578475804161591042620206110967124040956506482832313152628258225557583997755344859829241743367793249050288601805503785813717683280051171404264637277617014649622916114795967297828676215499304255218752968729781855709149756815755811165342428965507539592520694021304999921349511964206746614955498632941948259023039770953489431135375637110549122615552901190961262447337601173839539003950487208996380964277130755558531100992116185397781361363870664462269153074206056386009600136820584111624079632835883792958539102369432613455394236226289171648063287734454654792836960364292053506998742881956348670217909226159947271123437237831679129001518899102071709202067322791467395833305264641580891332202350119912561452180122745529972035516123215410388024794243090633118039560638183958626948913623676095151602296461305991546177908311969147817455466226104908584846688215859390722214186128440854815996695629257540513881588371772794257357067142375601388428449154823614702033408394137376803455881039147420709629369483056572357237485034554678133790997619707880669317118965725280121488542344589745095475414404075164883629692985535401266016583667563120552098202361765979132309767517459633521654144073978752919092810178024514735827513441764321553640277004339032338124629576248894081761913035707469302903942189947504869357318845861585955167191134453886116573834770513694004730059204185356815592344481603486813190399609281938116671073256238430350507856315217278424455780983345577642023437442296561141648628208586877292718350940977272405989631202304185982347628264385469983978462388346735809194527708555780132400934136196337215526097451367915298098005881071196203841101773966778368821796613850119696828317956248054942333832818453639417558787976028472789130952641710021417638750361470809400434133872337764097090150141774020089134807781171957397119330187820464518306820324278054330483061489035736346733722424253289829897694572874234584260436388863967397893344262403637702670400700366297625573275502163345866269188038698366609915709492860857805023298308214131573655706269836357227524752593956594405411115834892027042642962559554763282922381851791933321293811591653183093436437786383487179287294360056230310151553168262255633595240404229937696413400576868329313844903133172972517758957111132025711132094430362719503587611588171298577507238385113245671224976164049345952117165315548232465614477887269127735584314760258049322508854078200401070309283010353850489002732211893801068661880910735933842014908523995706054118839727355381961038684293922529612988064092457758238136013913980905431860894471129147383666807364481517212457896819199792927661693732904859332651285980250437221336983609359655332954780672062121217995794172667496879806878074704152771663878792879069666193892648907541610425853297949282395369840465654135059735867332481661454728937705380166317312519389182590384801531465324536829362894991857252140271046856958908919915478643459690786672830267187348521953924303183266390924906174169435939904412179446537319335469243981119378003944033579179585729756011114085024417565442288192573361778866612375285066522126326264847721071219722649385187409854800572720163717745273602724731886195608211435285796528886123846143585985130850240324768904178181704253443189605264929676438562503790009613800143272156971116273389990137512045421526239439403429356229993291061266851917532212381651582640353419562628110158371106429322512668387279655729452461773614961732148638795491189534670476956435772294208674862374130130668262323720750865555880670574595951870606458331321883414867184581996250171813645552571555351142068630048222147013908087203359260896912454631181436908682817707262024968420380446738608915301168971568562774151410554682540578267317479542382327225910948147889008614404861009041263231408120014692343506463168392600366015800470884112555648478909257608789497427720949528697945769696526495593593002498186629508655647427106335938250959458776290157514123869289580452089093173640415499067281092034058600942412823745150741393677136929596494989321242453962304725908726299410255558140622574893285924717911420465582381034164400520376510625873932079493694091293196320496529091597191780199213141771311902191666753964388935345683648991480242320360983575729825557508534285139358078001791922591598275784842112659960462766900312034805268192769039765264366803649741274288232530650103352968254224536268580036651805501111456954260282914800149174411778517794547494700912279339116480965868823649049448277007194018355704708804845556370653050191358605968175650640467677206664345216334798452569988618721092786889735605005618491844906959903989152501507159235073825932286869627719407040212384718466329337699884947274002370903363805906992540973750446972130182085583121827787308076094184483150751376471842168585108372548755467213347864142084559823472548748627595625922902249781959697346754304418765521122460043697470758754384551578668928151801792573313206497613072424592867987071908901086327794657415925119544995241882269139729155463875353762934738875270342181420660416526547529954896930526305020223463263837461332149711511905628119730136579940726218949761943949309219722157731997857123006781423996942749706676934420983832493605286319752122944903890886088562087081510758832556803560123933309924076087931634478635161981728443906316686782485337653189437200449538513443073061619704250422395618620132764320135299485499800333094317385310319617274483867987627779157601454663152477087837809424694885636170986169519349838708073872767234196896548049194840646086917308293628214206947979480002133441444495744085923768351587114406803061688645493576135087615818885499291381876929376627215312731454455257126032397252940150258822655435972969014557085377092967319052800245011346812742659852057791539686628329315917729297582572717611392638461743576689303047194004133399193575489820407657036030440382672668230916251170976409560231450552909922583968778933884910260821380459806003590721759716152163826060109236205245929442970553670477181978815857367267210041460988119954947389832033696230303317274715144927723110859329399228274949189601578473362053184852698792782799985361761328232350015576200500331566327253147837438268026937789333362515384067177499543106520302900676330391178314010229844522230820020681752309815454317616855692700116013757609275789832897818221113923121210331952254375983144707833379826530477201039179453466897446072967989018409191635978589469111922758851578506737875119608894486680338095841437172097221579132213763316326728287704591230057043512989172811802171123225931130160833777000749530148351132608562217271033530695323146274424107615337316398242220591481270158004494697209967392237356264679033941281443267688589993961092447999477281262778033093425977229271802072771409276570859088630933821538918638846696356756562463420510238015194541407378453303034615962207041798597263501969039221947825165645139853518437344906124568267723025106722712955049858518032012398099110622505923798639344386102702278663339915096651162536011275994923884821782017472895229075084050509457617414778808704806833604791716806137404204867410648016620534966843066033372921514614888734527677729662953307637295808329222183905140855477682521838936240245996157600318163954346924057232148654081681118726270683106145608220063121376414956918344358504851291570198085471261847496541146944123234389488131360909752214862980474329774049129206739470586696444166783151410753862309543377371543636665323892070998470045393286946930291242103024421538395903031942370787636573768889891784051817368025896697040508983759004169946663002769286473263221627897299564640603117413312549240782118225868317313886073557470560746303083036448894249504648828623706097879385249191376283808559962001533583223580719379873418653633688457640613105695805374008759827865738366038589227312662661412946781195586165534527331189914581900276079413843205128732424998266677376542154673544487289723075313626614365657853681825459020301833947612760640640046155437956619901720203371814208214700648598772898195575597097044462597862809698023704733340483070086501118525748682245735938876380626319163839226480595422815151817169344730929162598623501332443290009334188010158200240620835799361795615605514050435465677546424660792611706380870436715970922746219862335990802132333816432540415463534594428658088703263771937633366951669999732750001451458430058554007554082487026295265114243532117565987498637204362465372336127684162441839980552879833722812014801338510895405780335083702287508792118928771391266652256350565610158712501909739661509572337048042074541009189085993296128754236276274951433989948034008891663832600349167296388225984730764073508640446881394412198768771541346702368396636335684313811358091031846209521105138540878896127505853981954900765021542735855944690400636698274702240797721267942814817420254962643060781670793820880535465930155529818125920882730107664346318543153393383002584249921713176094848757800531425677637419182752486350638595541549012255593251841940994679498754144580932523153324141488404177593323352288349938108284480899879336553488184691417246771312922292252621600350768782959571400339834555996339683191171032848369570929593265008680121184796339052782184745891924904651547289453063253734164870582738573609280055742038071961486929705662915518695021437088138394315860897964638756789728896021092697088276642796596527763998340619543210948455777923072926991814518820631788819700843210582267399421737070967044423919267123746223679334873435572422711678918640930029215287880027812669157532986661259156593833375959363296176942516380352197964423597479517705460979062846740518856684492448643770252519404790257550187478696752907151980658679394292014181189052612749843773212686827674113018446168742839016039647242226549855845506072855191041660816263509115474961174815036581570316373243147082150308625464692736513987877156092910701698464398714735228026558626478528674722405180107728227688212262809522495500051913860144287764578901177132146787308300408912798800231565280398379391813245248765817665786249606106096778710230536428978981065846094558899746450450150066355595190443935209630178426394331176754891663789842510788714668744300207189718390803076867040885113257731631473112573875176592067725283963476408593800130012569316397797716830353642613185267589386049309139030746680854366086909907269108707879217951309784493850100671784896848319084099866790367536236992772109972079939709794980520838895238498239721410671519629304960648114046277158146168442773180101270247051336193125050992638838180872587689032628125741793073437927242607408386818097527988941787887172751879195613315504888017148181066654352151776249323667014011073185940913942836463230965831472490506804242173291904865362919845468621954337203151356443746145003402210371004188936997539958515547900562143938283896169035109206344687282737292148620467004423217060761904101539862264567563159142641943586992772888529271844774934661718288223559809061783265043846714895518808643914582805132520393113046416365296467811766230483037656654994741481502601051740780060553204175230829481580917442483420727443034949888370645667460643829393649734952830285447351140172346402770780123727794977022104993289477014034460981824754286488308730674260903464286508967895774454909154865262829624830822884149081099456769259601006306211250785525149270945697371039802183251432689656473572812653850149905541283984734228251086117605210070309704726250936748960632124904005754567039848469500653776832596170028879035257561729464094098836504638845276148259149081259366311197686432392048402281623455671266082614663083141656927993507046515662198483665473328302704930547707848889524729128317117691581536449628931448078301957590483426136660475448053861898589943910781443961031822126741267383432019082033370190647702469355742569460142300786464634118360469905777222664033614325352344846669253071161000689887747668330050453186351810692656649083008529451036065229146042208778468070203682545414917809622888034996902264597947711148677830680517133271128890723334445645636129363616732121322199663153449555085576308883177102650808273042700713336201205493011448343911269834923137772134278456015957241093102485514422061188441033120581360612975955251990441782720449500732402000445972080982528946562029704780505076493280103903413088096453650839409382002883187254470845493069452610923835465180417288541534629559905014437499594467685849823630917959482901954662824763136071418169634207215290443877516118723115080806877761909257472762543078608661431084719791130668278506922865043517019956412088185698154589618424283321451773787691836890432139125073702121160807351880380151461398108580314092749198920598659053814201147373819024720800569951546415245872339038711243067108730066020590847406648721024332920229531335193205403993146390014035477743189334869958166200046057581632218846309471260232470192735297842008843515205230604323590672207599431366118424320441558203474393513839468045734483471555592069668583707949791752157190665086780227613173792095713503967988197613392410417562488170910930342270866959279093123258662985040356184842996500502999745087522702022058429782926008343282987480624458325231027801921339841327025694646847514882475916006080546208100542227926635759614455648481773752331499733927189491588950555844460623095097755161489267192741506026399727287225173778067293948864409167674871402084430902777251256047677864040245721300540643340302837600295097191260996160124679362657042362120641579189467835714494763670861563131330717418272766570812047374151033870174483956120518769746915922736713384391526205486210678774659382091346596964255248432357220153345717214074476099987642257835033751366447371322071757346972483728257988587923293930891511402964732883196973234413268867770448864557395600833418618502601007382740383852592954872151324292418807062341997097349748332607744487859557069349488482377184344829946896801214017259024455529877267801440475736022179916886787077349092974031276776849888034702881119314491694724285058560398829680987067974071064159964239870018596180081463163385086018292572033037367727140684185792985007011537349707459451273094435706250601158710510986899482065826149372242152700358072104044149758437458548741302070696155336463052664345965140516001090853083664332401685619401434400285005614900238119031597834796374238203801952160354852300842847447748681579753478933152977503303764057342553043192714582597902655979421699248972977367996983149892735653400661116977790713195289881341813943548736551521011290037906396605169692366967635693946820582675412535020097080209146275724574529237415976512296841519066495509136907502018292622438345316404533420963557090249751967915344748806725141434510769210055070483344548346620330866844288528933820819752333392562815656479913183327285895838517291720221222147987297299055034425558778918513103795463652447839699895126429523614975830557329381975215474668391602174675522301925072040507239189972761902163775391205201384052346335496292412159923721354032959929636740122817768068471269218118501534262641659002310560341661764591094087229672318987259060069211813298605785488546048063998976752922282672496588738193232960599711823727513100757313641472118000159058669902051765416862042151054935386673451127918425985433140494361454754604892588729933900385260710451992772975905012802923149408307073251551208462756903357530099079832203702304117249664770681645215926498598692545144471576644938263319574437593753319425934177555495299532954282745980052990348261605088792380091809306565579515448719753429049690807423393396228614431987587367893516767721651191171032206401599688293056018753181966874348309133154805605099502249616065127019432096503596085071766489783246076805029614252203892263941185204734877790375605684718998383571660387679570530571597654696357975479251965962319485238156155425844625474283820428827887077866233569277494894232853218429789076339952080326196080037779563409456528368238358650171694716355623713891374600958028054559296905003630405507782218040168509919790608250348513551523295799439872466009733847881378698195620013892519320157626196110567311522034565464252056186597110450173058841175576235801385825614626467089963132308449174869654310483325055804493617720986914026607547750376095996380863592380054709843514825998777878938386366438308429673024253388227482354419641165484353648491008072669738804418180600351056228627742063275743155271046693434754953597542871891647009654546969173932550907455309444534088640893449569295559100382377722968293325720207356919778521199140556239644055216987777580116627010990606212254153112164250015394786563552668753900753178667187969560213482787418484766636488347389210720842156490573625918384558987693546159182393182021120406855012826400024009141434740872732492693068316848286377296169440280505123603234641162258488346814798567073999945506416929455427052260035544688216453504075776821717779039969737143248346225464814204877486778307893387386783864668242544848123537043385472868014422075965288408779805168839240065636660461811546049652416373195778447279031163703385605799254883473305721537959954046413253629841941376370689612442882730452022437145465379386790794451575016507396909071505043201233492269000243488131215012640201840808443667692964823957507292202950044145697053739236314258702434157989245266769597872104522124939851459485691903281422425257885191061342504102335196528587940211048822015230377130659419984733996182489039454224639156936343699566777333491342287903514138236346709389793972686418430127783654623039363815463374597415946410057978982918761349956668293264685351128779325896583617023233222547799102683736078606811333608361431693348040555630801248661617397423499312629676375328579048012915080513732135995781551818005015515252167507862167380652115133200057111422136909100231863861706349612102354614018859483149219163906552311873703501690396041642217439192041804508431191500513027823850836780724812363676420992030137410102710485210800514623350325067242754663526006355779680337641126391219414510898082455821989141459009284464713955026066273171590145390191424116404993078714238227986998837657684986771508616289129942687159194328814746935400599129259200775471615370447156990163149176147235049189783018377699450589879326124066785312757763020518616690026579257768979639952897482593867152292724324778894296719990764599592187232109626099974392603827997242458732320570056477215029328560225485162925645291753312773196991465580766478605163605434438465109323278016165762856869873697685874832187472988262247761126086072687371935333053974977639069495238010733993152753386845037265149614674160572408597591505360405501704939858062712167616714752942658534978318200515525291525848817040991929642593651839682090911061375979896322551247042869487196942278731553740271009006989142794990809593969451196886313550563571819419996955744267521040255199196598821192236900140769324373632283543756439386550677351862249232222803316921001411570065630636116489769660439937983310899411288374101838477347929702686017168851031030172341745774746480196609642472132141124352037339188348622774535831598262451106800923717463562628449059690657793809516240679797066553057905589397548614914451819159407662585198611630211585636130151389240708457402295455644902696393673703148717313645218759228968131607453112542651072056220850706994972377634785157084850133083024276747531241452774982406032845198359614285098200362943775732982047820382815436011150733897138821560624366612038578042284123536560910873580097092014861069506254222299375543684172600923437706771996010534883483383680672709995921684359360859759741140280342399453650160615239709724101218218765285199962006957648533073235824238497674403931144705076783284794947439782459730353134394829623239920235026905379354268637285948280446187132470149503020691368406626361655795341567692711057808984378283332834059288396131838883405523578142987820921578613958946349707755850102593712932843446331335384740979231592987790484851366838557004112057517847456824854613542415376200940149950957829934630460524555069468888823166744198952996014779383109088468316888947714338030276249246374364971166123874424361365747814257890278629298778955239415939442939424249875553941039513004691590121887985642996108220228001252353386757852328884072105643380198002130334695558886594263511791126840488527664659357499366216258602206753482883723891778513250933074478127162862563771998686226601165001279773113394539580875696200248136108156419805208334933057192192881697737651739174165942789021778068727431835419113752649908216441980091214000168044492451740866556359387277007142911486136137081253621515557003290840553820425550869700947981339720275479051227638067692045452601802925633971138319419277838090414509036225115094411917752442723838772856853414035198539391882010292697525194982357223092537948422901191217562499540214505940610538078573038855493480534477459028426298564928406284996052840650893973000326898858876810074867486756558720668927718694214629322265872293646870577864715405380649808089174764606515743597023095000843172785704316164358732652391541917189751594948206821092736230040475578208098605178606779589077495746564714271903244122101783759173087491532759835883890849840514079702464187977595648980844241832431327081070579518681013762212641298505871291392568221707550987328667851088835521457113078638322660654854637363150063418231363019383007526809086491690883439836003990499069052066263123179300253596554209515313118977447522434719467640428171827073714217428028771439796908599116016641366123032510008599463994422607353618993738901071891613191275256222088100154537366648340747427744035723294649827020687004682426872985674023505082872191486676708965610877711841075815929060780042241458974987424123226574011746504949133241964456105215303972318738230655783560754668169958163347505697860863600734175654578684188271771940186290803428249552870117562534700097054745005877593721713115451468207846981922549740980885058033239679987225824938364366007207628192755055982767508468669289840489329789413260033194944289526131224722248257384439960599136047110788023045148724465610551340918019120284503558181557415759866016142380875178907572749990392751447310572499260426329108434155112728167174345738002830056515696585078493182148751658416964198130440859777578850542652502728017459523519991992852495253506111551363909544385749534302389166425226791201222566471411092607473105035037879636115487201485347276818397815525131210159818444960923777080061410856794728747463632004592090202740663520795300965874029177991613091684962298479075463655746792303678747207688920814614763489154438531410253780324162560544887670580985363501262843132681250323493644247543987703158971305501580974489359681773825655254094273332307485614611202540624064208507103180258825521017591827316110119653304593002358243203411149015766635503247851140486800276566982132383458032753089249256315217986060539530063533119181107599791187918698122501968575992766831828676338425236163495158899306193019904257026195106782536677531491177988684413004449509839875299309950133039772539965886859954476213958660129178067156035951456631784175379103784098217668904416013619764592367091474267765359612450051250167593021599959107042632301067642644312101525103562950448804476440089307886058171242784043209803664479051763475861792872284862620073770808801569722426358649860214397542153042939172869936091151943119789912505461432740272042774141731038759321151254225283810335302047629870503641821290891725107663309416312372831429270806606384076159126882208563267485153978915383847617068264142599430279499681767459409010250324420947985725011418668993774491789817943018425059886989542806209628956839602830271557734182411708049720246546069367510095161120868579157678899691198899552878731641126086939566642181106970163657178583968879469076648438192018919452177892638314423033567075821430435410625887265227835582283462745278342968746939275916507441756869534067998383122802549644333901709603891861102248724872050744057593640507896613160489238830476955707558171617479448179734904589456536441506022672761213495877470946956576815242688831459453015594763262153991572412387957509283287679944241348771624898769670873960404532750751425734101144772904180955778227924364387956396567097355570944933996585406027634815917495092948909926473468440504704649549698852528946333870549844584094423691677620548673838224716644462812710651217576026016928191132086082328223513480918813387431626488337596903141496722854537687599136438436990186042024568128256004121160790619217701917535554330548849129379400781899657332828664773621144562044725912171447678178204381587469121768555102761817144486367522187796694451810833200949037714952465302276008832554082371291535286023322938448432246591766228493288198975692374510869700684820563716906865481611285903057832565907934392640870287612777969721271959273555199438060538807110813508569966683447525143002937628046608855164240878851093968958093920576830926716910903863302937975004898994687391771908068702340001652391248092275829363069332964713695402627218027155867904575640729471459466106271000987580221231730999478851931778951632074966040196201280858008261503122256523883969237763769907901241928022980943536230650011391018125789506607327990122649430971714316369204804638313010355997023185230043994582999415221928029128865566953569640088518028006557888784412085281359796328494838497813392982337755148576919975816480533357801250244985079713009687858436472344465868656411623200642440324448382991031796255263069563349747177312291453505194196026059195632943080114561119794859161999339116034678004960707607784556840913656727611833669935059459926213666833033390432715473935889998892445074633188705100960470342820065684353250722962216104410138725331062590097898121470193847328375386029681651373433284033465423780544080230994652435146052835682213916416735729716503325384228097860445975604983678114675035284318614496624875914811608161726407519188215503294877443286639274091266016571224632857444452370024861312428227051804026323989326772832247734464082306452908735945362027018217102250440640286113611396927494802564783752030423262665796804431718508675933069867005387423327757580887552740341522247758069086673392842063252100460166321306835160498208885275812683104737762331159524545902243588101694994001190120567290756382896216831749711690419952229165190174431152886305767176363597886798748062672703053725906816551041441298136320196140954609129724711101689734990322024679717171340006855656398154307148796148892792672110034565520523889989589438960141721702895019991212119660451679715618043431310244341721763603627243366828818886992112696136770755241964155637169717649049158560975787181581680326622464679492578689442260460162549499707119260167307393379394100238271684571828848267856846511743750855084248686519101693072749840678152795558273216665917470163114908717597284209364546738161838314687322474795447664071402484148950325056210035401173953591422149778855330073413328528459059044907948693136636208732386343725904652890727666176309840324512051549243812628197347319724387001977873859253599340307621498402733415237634088806152007748394465105855798817070045959845125644160036917712937789187109571021811897005823924069824679177082525902025836922407810424707591203187258310999089199133614872135792045570095664943206214064656007558058389300423551495261425813146680657761255801875375953045175821683510161867611713383107865266822793546096699162799810043205682264949589354416296501560077074559570269030454778002072401759572488524769285929106650605087284527577150824106496030493614896873312552939492248281282717319353654118693655817826168794275579372661068297007742713437258050879114119149133397963314473544924517780299211954587544962524310978366425440760513924114494532906992817963170216455370021386099600520892340707972021485728859676302785690931874969419245525558025425028268111964342039632453848669768840832703069664331054337752160892367592111280442901638607785489513705232617303151067137086128709905843272976599642212351429709736546026886907412437514585518282397115988182786213965203810912407511200285042252339949263394335768418612196771884500413074871814354455705739923158070178920847958677217443779938802549796643209722041851783699892312551030875478787407676733830869384775577225847084829138066503422993950702516542618166667063924343387459299650778831012382671432259432272336443920470718753913269922759198789147496514511716465531988114479336361898111135327752525584369574438914532373295811841718776510022709974800218357699452331809874935321188087290575379302999059964104014994119976405232487214955024378051226791493739757622014604409954753837264338530312171961104352774089091744846695264830826455394221299009762003132961386851614537166082984855922506934021472990950926116927093794422394683315162312339456187255999458593496395867878844317669290466075287788524640392149104312997462563894525596029573215233386120707600620297682343619008580827227406368533962721360464981966719557236072466068805792272486624048909037213812381108035362448649133678316769575842485572337091313708316279286883643707395254209631587315940972947178735261402679299734068100249333809080753984685320824506656579684324814306013750425942084453557492483785801547491959011138075753564853265078351988826027023034853085074810153523817697189755286864165576798055569707850560339779972004537891517314255739814756114567798448955427547053791036326447343778723855694786876195056533391389484496650790919834242051273673055208620750821233672723157793666544149897413716422370997076642752965397969027713334987423157446161060359401072954302614379979439868516058288542020957263163833610410989739703102260576881257948611250857975492338917275323814935013311889147069331008076250555486146326263270699828041500347035056617833189902249734643490170249227310988595614956510414364294207024508221614138814361588747503215288724061707595793952084941667851860671251324899333083065073791800391119556784038416981626186782058433053965185354886163180698422533865946498104051392268641142700052440481627371711377555394955664776431362068016441800478839338629410538467061391143884268233173147606491729485540651075069866497795390315289933581021384359300796613962251840060925310254441143995178915501275616899686915262572638510834690191595027285162072984895429496527063585829564957304467320697486470748424751901250443305281836178261942920025457026124848215219056266469555328835967847770127331958119350715787402046365618889760908533358781055233421715049428509282789487060461204520947053044799354146878648364588633601882769996067611139964521544318504280525146088449592818118123624117890795611263421745612277283076572172233810741812877026217981369290150866629982623613530966743775773250450701330436053727014492115207880478328962515449936704665005286089889347920903072232647181261588667718360727157922170237866770366130177832112500640859067209191296569891758128622691160728997225707890711873988864340506550011067016378446059134198683535397590027649470613416741389086676550626495375203268203022334634888153424045502086242787554637159976884480464194451007292119542884163539967495302438841155937134876839776962100723085858506317276105502129909979677786920138924340104620347874110560573808090148497782363105280182061107436725396489555767057195655871054771450246559193193258113657283166622253102148679305567162816778792364411765837445836788686189891719749885997509877668114621956288354328644992050087158244710205562669889744767822536355099736915324689538568149230106647779755561016046547871964988969957088722213726818529332537319057758875024697094764361277400184929386103980293949547091581552861254326362331289117407183276284713822207505281305409086792663232584614226059908742149639322788943692163404532499515035850860730317806244377100903032339009046359528347027607760044216402514111596938114688238424796124012239542570886945303666670098708710179434626470410875604458417885044800914787465041019523023510972482058409027674565750361784243680222169552001199827840314110909945270210215856027289566286409525979986251780206592094876467167792039346162533877300262260868879318547227584889400903223588415259900938160006807039798130702555878818834583135891023331680982315200050478033779137059685208454761397177393864340288425515413371578163783561380242941465006044807565070045394578025983409366441376355302646430170646778548500903085569901384062212921419272309984566739753587881676132663937531413619270477309883154304819176522752600185768285790746983394671093815494941253131914727227355341158567683464048940894537196626949366398525635576904635079634414419830590591752731018098349415927989198231238679344553599270820114523551385948818370245807598260278496137731395933129367903453285822877538170587127869885285266066507719817333103701750113200261347724944986018951841940960623024593542792651883497944213490769902370929283412912067837606429216754832521036776507883530650481415437448570043257462415732967094145869563512231584657314481342280454222941292011052652126957455993630665163359404655964788939758291937776786622219632559144237435207820070763525934643237712495549414404709108439215738115603321252656089358146424681839879067062330731824651793476802423979283896572457235559533706414864700635299059683933693732418759527566641299724170168869873870729019554137018424622325599670086417018533651784379800825175720901948708574509298428478763410036947635729996476653614758636333602274359346025562144928061241044647524766840802904118897904706658248025610411599320869885242739983143948013159486482502595424931474685518680782521246496806827828470330614988579202587271183052887250509505668452393035814039372366928925433074093314267973239664513871429818671710346766091809579997921844811631414761591134891578901347420431435657872946538417893406673118212723797494317816460986745620002919861948374526416277760864251663751115657894490377343181262403837562206446840141795385094777776867262010623379087287041660825877240725674171791580805932273522207601545400045146533015291620647875476436415358915669263399356221983539302433375144266810740305340026350514269340948690604940045165163339634692284606621342776877795043245783453666207878746956623240352042079777458185285906383041274215389188642786302085943927894730553958454698051858953033007117248322719124360441528007065338866939068907605372666362092383139886727079528907866971016683635498973887685046836228880517263891703714169662527550673856043753788260662056278045701784139425362592291876147980873457772855313918755077271106710761547398631375736533276173034191301754990789586859134381547963672199963084125832132937283900906540174380724910251252907383808587358867050040288226958852599357966988426752917969542601628807578301340396648075933401867353141112176106030393485269352387477170261740614701052624948290164945149160181037532552728199626271697434442997090771829875077189459635865459226144878427389507829558786306337333191946218707426820844527887177572690907083331869449238289600756994062295146981542213232545896855489053752032794425944796882839430861367701820981441404268732335783069976331609845794067166317649134613095808498207429247562839120530253155801628812790167989825196056767026112745278688317685643817135265715530374442969886479509284571053542688167371038071435373712666082506121665086293515889865910750464268064651723394660201806063220875251401371152801230592660345722820810628262786111642252916959726047196991711492564893430230210130052404630075433905595662705656643010416674825524645176897703852428137466197015447203694041476313897561830988991213622090976973230130899562060364019497270807984803359655921596052545526069612448890056765393450497107688575229458791250982562017396388175962079398142814670377717109219347278676023571213236448636062740365084883007994748272810477730187195253842193198145926909324570336392129947819472490958425210766447142656192827748287307479884914804228295440279363357612700549813931693775762069364371870522884802593789177326174155717652599052196436504929547149397967262869228715152458459285272275356848760418126829729595173732596656811400257737432561245937203108965504834888934950723796999891351649924803930579789986020347825527642417500070237973814864487799451600189826340491509495615064069608388717176773639552289792992188244247943216700879573701996483672275565498782385053853464646371900856107076366702892989548740034939611326444233542804008405831587916052209342888576081211043313293884513302795247782616503818507813635300165712442647590512177294605527678829895579461061564252347757903481683237827502932859122930869889960448908711341839813504356636356869889198823037171044884181727287184272762264153493377465436693763038289065914495539685565474748623649517079337068068589640679491657072605702732263582503294916808559479630363435904644135198714993603988807714735984635568955580597795247282513478028977633124428698641571949173732643022123457050663522003539404409380069395457367621872745162072545116753545106691059169259059554134706943066536602856219884400100645722358040836553245014598483994432994244492943909753446494388729618209773852825497649507753471942882535548234684152056417109798561870937008681058207167803977128928677593246519095190412965323966791488398098837237488231786454804882385439699305271057069938082132826689926697842728309309998702541827837961192034294605635699428645207772979101531145073229092616670083763628410593875347449311040746938769563437258191392503924190087024509462427044842267277979290293807546247464166492052124991017796461254533226198920767505662116031736093550081877562424957315994318984552197738453844395252151202709501862908078831346224377567381181301057463368045579626038925463322286467340102557864303190728181205323437965136966261746227517374455882546094814649370928354910416901151482351844357092322409128951332618654292926196255950760247757120856408579556499879058123071773332258304624436875754845129732318935839981619859007062386167368573373463076385257007644315054039039404991804955502224158392883509974852999770230638033339854331062837801146071854377933013676675576057605927601621665821495123140050805878992701211509136449535509805793793933273703598659538947826617298849908525477321411463578818865586453072475020132856375560016272333784871972708985547515520476562646456264190738626200249336639706335262502661749963273279108310830905114806576490628998353902095244445621944359735162648752504577632323708204542187513556841058830873400028516521210968035572434178379282607191181878094547376520245622538098600216524807047377323220737965943029308588869680002196472398496360685587222161796666712404382191006266451727840096304095082774115697170384341082194123967950246568521424025938808522655497001265347462848967678344828341858696355458398671231605889717978311821322253523805514841562720024744351162116290128618941675179975829655401087121704408899149311514071060000663639450266336738913507473892628058897799330568378021184112993767983162557167049595043639557073645437724355528021429307495043220912993736871349707008551550199767586246513530354639728966996047494887364343243067302875826730774059702081387207524957351150929549370107583658316632478645173540435944800335808542408711159183083577356101345879868474651126386321691821860479719053231205426392931113465121434272635775249014855991490273862243122738760129454827757271785943322159892491413484104438429294550317593987888271493994176015267531973491709760543100322045315295738788666766475716139221794472248075989233144003709115737622233879406309211388827805245694679995649341099175805831591448414753729883139395486304824536075409348658115793325279162853208521267762787123234636155232613513912842831730990559929289995306267934497387593206480396612064696407975536504867673793210483154315154933144711122366201619076421747684112491016819411307354431742390759861888124284638439475114153903446966310649995910610420744811311521265981882228799423885164699989833076437104400885555145444917788256156223089045222413949192132833821071906193624649533169162828490322858978893970761807520426198663724446674844356269694859582477155887057917542717077215737216537930820537816639326595839797099653369733075428613531048016471674978744570975350625156307581835538611552500496491174382476341307058036105749256542405878844506757166114272257578391593683274753885949939230970977390888765727524111905156842592629647594929521610695290068144340933905162198997807987612861632065335777779141190087758350399513780329863841681851129603511961938970469665067929116109145126621261654699216214282217461868689202181215460155420534392794470300294866042757982309886640187600075557059036123645160929311365602903726978400153595642359488779721616022185153314536444939957156738199943862197042041251211715877301284188741440420353134498385135716033939101975313599419243664352635869086609577376685693288905790435498849262105269167765174540834617955702680716078255949771677304357554964319930221618474752529428293392929154375500524630338721295155001453198050918114019936492689935415832756213414861090000007399168381466219938533610548520892013006397423563936259449889215788243634452849373935191558124834100112046099715334054108209765027832784824158540408321474745177542362720666077721934505856581226635479925778478787112624660813375105983716360846919019554949197839554875069646821233209146947459963826961275590016494041948428586901596475525184627076668633957781378201010195677807155237302184910366327419078384434963594802015325711512025639687725131661112496173398677960350978982882918861619830370247554204572313095561194628747653511496069484561226775373864135574828441194440461031419840608049112720605436388515324378706552721837232192532128079183612282180703328083286142097106905932544657825402074158921075714944233979648785846701291529626333116296445295925722880517724891739973231744637483980496154425428353852049715126946793374391496467077536380221270889312276716057163698537649861167292446607340823805970599268609450637473963896919759203909773481110987863611703574329604858902973271511067499081196027170994925190852907133826944755425264096541146071520158034754444309735217901306404388653239559998104639038047096783249597909072940098966592506524032310615339385678588994783658187366093236457660264172793638823543594237204875267515126384733586772827945509335179006403660735827799213001139492080434051513379626930071873409938133358455837297469996111840295508898589851501255138014983074502412854457642466869318130340210593086660138888438692817612560292313448546013402606529242142490266430037859518365140659943749885749452727881778656171266666448240888249972889488607392814187764743282572791436062063751960774165436887240448309670784550201506161014453946079428247338343755585026229586412718387472861667917098271583515647470391675117013808517555032341488078452982343740812133130179915794444347413192612988703915510967963868119513114875131882031415631679191145437350359350492585801473767882499270700353314439634025918236643012873543783505075535878205723676181671020197532739589488047186271912681412182964140160472484340528174715787981815743579453054667715017792026893219077088310242393355743422134808467332327166178106995098360599402710282445365113748323250661883742414960304056127062465155127670642147570992463369126114179200881510248287461500873235492812183263926614861692080870958431849156896496762653483646995394387898620681159674311383064762045444979014241421034828305886425358076563474733479317961814904570538474848772457661696606245310587622546105095274367350742233465281394715949459582467902220133247867572750784336751258542304040498136064591082683044540075015799565650906869462665539032743045593364555236042979376247964565543306427164743068087109487506392569166831574589203708603513529152522597830846183572295176018346263342645492608184565905985628374220552248374956664447389728969634630403526986246825019072874158617963909635184170397075938895601687934789305272930055811518206212227640980982044567388485359097641302791863681564420278975208411083824788724442156284311023018210358785268575998478576963341644278367681935165846594210890605558510976303645252080832846341119070573249972576345230029504124327487620986381239201925372630590600650343050335433893213485227273951630504325269977235389767498447705080839548815612264678620148454404953784192725091977327067942336487637634725759630953099463445868579321651318880647081999419624069373427562267398732034157269978686741681572516487266678280494493952504066262955326180018292353782809308304514336273946074078115149005469962887378537291787839111178552566407142149122849548023293157264234357161574962155101154115493734834390074871860575643621344059901881657489086568565998160841032367837516340954612143110797191620781215291852875655360175124265382202024789803774811755792894710629656252603025586454846243188549768918484748182950063393912330570838118658560019541624756606603761173084990358442128873855840619238605860171941417885750604509241894636637302782664624040946619967992082023593585120845505089318368878409436156143256727212810587757747202307400041168308944366497052926199854554539673615943757688618248940615277069818787963565796428194112644334444324676897734047362037953215815027603398848606494746600133758197085652877796941221568277911305714842403075969840947082690884876329618549240868983478586569481138964362776977682818726275200696277742683294896141655603211019913483556113435874531270723276443642635867016169915367726838688552105757818870692510749763901973137908144417187732547198148060064702907446126244590869589226446856346338062038512830999315951434060401717106627396357190357739530427705616567905583115764721874277557582140987195662695399162285961330844147273647836999926188272432211559144142864912744545927974180713620652825015588130955181966652633929285282892098002218467506399710372498870405956513693662740820350338321558571939309772395480257197323049046569218216212805617959896923221734588798859820489448692981461360652682005581997501571971614286374837319002271290402101074684206812552347096497461077037197168396014893771273336002863873601395738128737042574909067812182046920324673532126736149233917874013917088639816259567205024218585964063849018578724799746140574649640942980539085619912201581398872183043216561878233073754132363952802157222011308623275424842967325232949030240990332501919177664306856919838156533242958818157591281375132713997863279200885068092716910997663515787539605267225176042457994441739130794318222993245478927757140115081112427741148136534217550985100359015301004812966736866489487165985179936081036797585550338345878575211465658456159613390275323969502172513612020637716735632986886714505575640842086403955621093009762738568374813738587345938899807743657188357160811586376991597227749887358352814271377840367090044169811916203977315949406747421551444454622141328569042840206255187756717749038353398653370005572246521257125041494834484337576977874614922496658818502545764529018377596157720855400677668051667546944915893662198695308009810158040623595989842139001540662898385980179993955078668437500296704171994194139464002693671006343488342372257449912201055367616704559100820083471772504557669470806314414852336713347158092988083734779229573079205934158899185270631626112082336232605339910528746287491943806699807114563659716075296426119525929885066957712286029511477770271785924517485970011101771795379627384781899050728598326828426027624930501774357560013274138295173441014986319996897488193517906867226807497294815097088652455489519884856099909241607664361178901095881425426076443424526077107696384230229932625440228114673047408150649925676541819424979137462514342311757533660647874813775605949552535961684057270238326150616799883179676559486891541749075895903359331951319487671938451163462949380950768863534849173797591186618806487615626078672094226313706629928464665060682983193008742983307865916487573257806367375296682699601914821066806848383640652711966295205752474468183107215729917143374279878402235470112355165713572447888124263286844628722173360589932427819015053182800919621981776442344991144440838366474379573956462253054380357431998815915989619943832888735401168357289407317201870682351366621648455158866260523345903447700057573118795065725195128071063010055386930404340614111432646383117825179634502620657576643100640526394259518313277299651198789695076137415618450096218340749694951724079132859941134952822414183376801993805700062462141251266582342968844607582084904483566531611165624863057234148747302485914270403239948802050686374200722617114706753725117861176595818828515489077464146860075240432677521165012892192356505401916121371217950264775073256608170850177807438820108554064314048904136735571834974326907130846136636182294040613094069074526613461759244324636999323160017196582734863054669781155842188173760017560636733527214106746459322501384455227000152869619572913238953266856414671728451600446517525593126167845550601202847461226637871448565852846551317270023682653687204066241540315539144286550388917232299700668379296109034166466820174361810985210709282703925278726464747164590198690804539245265656928693911619052338967288499333334464991002681243055243432659858941472593838555992166713564140142654742794044152471411551839080472340965009365032912505566497732161355279231762492390152595675556980589726181059222045744690540245958536044965230606556631474021504738957254148712460175787046225067259788196815478288996499001080796251953262413751078321760796838057072845005803467536678217650998844423533976065267812869478152118700786046277953018886188663297979755444445290661196223274875238349627030137194836032386097068673689110190879666271466028419620781325411920316684255322690806517784334654693077702702278157336473403838149785527565457605978279853548218226939428690098543353487292220764526552904653950637801134533110621169900178550691201102184500307331378002036541718798032487610051394074180839908336668532704655193936965221962466614217906362670730859298078965216477034403120360672437887476008185435497424565118140096765776263182071785984681299249078589067885885260728373205483130288970985064676451039357995071341392568018505992360518881937477559045829064995344111586242316341451281840228193877308331218815666985455186651177701565488894387312352175379096587506081959966881225674543296170053365920078796473849608260610371916449845948667486570950021269712398127980927406960427018015234719940207461793406728153927411602146133316410964452298225519714118684982816297774744319232149335286253764601756215463460779684331429982709438674100075415335322327807580893184530281881084214817956180183420964869578369098975277095018565704107501947395384249529809060016932827345672961955850803036912862668476105350577315730405394354660697736667201139045911691334543047467598549639297117904594276483712209643527999038591578060533896056594225898130645419548937808851424058334581544958999066777955051093741743364710252021440060991100574539605073371775554188012952225736083594852732258399338344064714707331873098459021419256456985462154411929852467344231366426910635337721850985872279230140713219319999761469345950239386317350095151352343578707196908856592423852721976883969898486135136906222439108606861882616618944138502043774226354379085836560148839202993374879488837905343746016822429012641579964558455499490308392282176234885913629383783514661803421712918277596612905190570057936672177298494083783488991766704443822349328491337151610699163157195751009825619701286763147147500010567185003863040260894771946201573098535498565060136927541874819611635385170515093896184891459044888693336324011302806332345466299990939097319284995076532183009394874649112766190802558621762250640851625857607174877010165202865702062284224838074290816927116337867196570915557745635804460035514520212559260026137139599256126661551537817579738138036209510442028437942650068337718267889131373598962855276403418252886399474327390127555628374123486452025041889054630284672161167715388768763915119682352691135306006398545815512791498033792033308441316074625649019531752121768770799451742278676563951929789626082749910689333107917472159561087380968416066425981868974043236497678017095741139468699688769635464684615791274065128641260178641433140934263041497301951980938350458045374513568489537239391189398242094836379862545369218532402087501364959490372631464930698028642290129646205064181112437099674149995681422465305786487920030536943259568341292811956769591500210150592096546590365416074689022210756198159998124973185719949911703629604468903820752772549432903275476535842335130590511228598371123799963423312064071072408867971889642996300536724226552660725012534008481027286599239455545694596966081756275392317012795844837440682318637524271348350986596543229325029736910973141212452517212669192692610346655113994217887118088783035087546314809460198948269055115540389631543403319425439026572530902072437129022299327823659144830613466945370791746511091449119889803109927019158610213082642129526420931668144334136038966705840391119048658132470404575186113655673978079117824761569413777094249756584884987234828671275762378149057586100654057700193142171946120590058501523012327427082535511075472730168431469995015897025812541696764904112613699618628255137667606239736116818275877926644163516623404042821139443330942600375794794864083246608068423788680611858636264401452285053336747556111256000621610710756725238290088513216513208174448795420337669655339164752647884151758408790621108355214870049900252272651313583525870721036358961199472354123307823925538772430324216522138122978022961449838610595145730325807909942245790801877667312258455797771711341174770031918974903627847901212804166862632597227306808538521235711200024567283492481669364332214694738388731116216709639246720148665492351880655593424063782782371564420511228986184749088370921145446219655648450446349572675813580257286490376769845251708460085126029911738283536345075097592530296331075010637042154047614844300369493811273154671530098411894270885155792122743282200072893128095546727795738674545960544503072696491269647932854612012685681759446622850954036674664691368728600421414172145440399971741205397155441239947476551086326311994683283978540544195393425199777054799636379424494083876196214270695253029412822418293727437898904564336811516487538246228154386522917054315900158856216744278127957248734563513290896382175396096857219324083479052546573070335243524289475531847212656593929771118685672593950679339500580049327907556546616377533665690460771097389215335983798451904324716596799081323282329988458309528300201790086078887787152224154691231366076366472441796026125502193597416195750769783833548416716904888686266143931245524652950366635023261332008602610991194496558473590990907277165361964224101508888839219629603444415864627810492752694002961531511415600133638325881743709580098752118484108662640117456036465883175295434075452670959840930044973710385711070214237094002182023722367527077139957974661323491838710286774618969033504911704092194465098665150013762812462360620777861435825948533943796881280835523364651441848926433462379686043678984704210990275736893958546845528045511741897492056023330683327449962720592526063785282056456657952991733626191989757045159298314095301394101883481822245031034219627556679150781712635238481758233411668620375115484145196808646447239191088223563591435475022305708268602990043401946241023221129434522265628612585216159929829584661084519886503038428991739372915391700502177013004845613811980314053625263195762539464755827767285351107144040616936169877767756948590385422365291367305472026822339831637286577547823894860917635472756663008432622103865682115094487600936881043233598160049403995432621210047114668366490622668437574968406066185991355437547717717231806368330350219354825903776629856593565698151304137070348221298600258936729996888795726162577796618009747313525617034024989006438394198893900335369974103704389714545420825343290948474687585155018146827348356373191467015885612276406258941569688030921665332209803381288702501901475950836262230932700731928455190793300451935447764677594302225837844875271557404487738780441717666063067579198553569642555720690351607405917892736481443621050293430890853508555037359244473798832859481878269150813459870768241464129840624438713847631884791484529126888141226729665340133065418298146412093919661250904008374106755926724913341617489417579822926854528318220222084825209623704943059106705886874880080033695325879145924365644347906336839088854669881161366230714729917846387029599138199067098111586665440561004991009512272917472136417816665015380726782462788361131605223021924385193876644067211799573410729967837312005030595721115351857357995878620848630357526851046173111706055134738667780601415636458101839227104170307372530362383474791030741779008193226975014658037323754746700779318119231472131126709400867722039185504403726360505939355707520805782474676895692307952302978833095602831138202945393937544163155401750183559763809091019679919640234605213610958865346435571179880644179695651535357070265617941272112013963709948265611183417819472926852045966690823118349967689970145191210882978293302363002212283151188330616405100699939000221892710858664097630133539779695133371408867078705314694947369807295155986545711430523653249688758824102135810105107777403363916161255836652430919347063337491822332461714980469143262576384842801420057408241380932778874578812921607973687830853802142936189262944802340636566038513127157340525280305419961394202419566550545166099775613325707500586110840855849248743747860350452708664098071892046366433135475817021740251049607703402387992864501399636544399504947014423235802332788762401102693151510924728109125500626771323295556935966949507732906143796016743012561985992027457363647073879316552700519339222053853772724552043845938270542815845103772013507100950007105799764430308236600071056039893986229283985359971097219768619088658479082373591796837707748847216816476811944715682010759224388678026139443861285025949909474450499920644894277207636721152524554142703447425913700885217450821763901453280783819621780904886824002994693050866029567217284487339363994210228453578832519085365245029209590789438659510394665968533822552247861521092524280476772707581919288658152258369480153468710648237656043495145264002291214448950561138916274145426268979110938506727429547605200817256099191225278516109612822526443328243495365989514032876743473273155560363538831729495297868102710745584569520731100264921059023672378155771975946265388662612194659648184854311622695741412107322011469491044073397175495382108991424306387176840921954889011056488733273147157261891328182625517766995378908050809830881526758185082138486884816424042435543555024776837360676073887130571992954981942575662570115756296961616565326098188327883162293242462872011883329914321834052553655378169889932843650139233997009361794379618690636435628236619012879664409500546130681728752541955537705056989153583304177847425404247261244056088660131267469824773341395705775474462625118595698658664652772152855841833253545518960773559126486851271934072533465981869756514747105995738723599452283614344547345175360199716149951552329668203085256190141175138139294980765134116081831986447719042730964437147796126728713685423704504813262032846640946395935937567333724477386867678076602285998629353856133919540487102422818454260080483034658518971295456652523461068740396558469050387896523153643093280265925534851533160340167606554068622096690094196045595791830570597764392601792828237203334748350458831425871725500034743065161197971682447554510277717717898017884046191609450964225398700112104884838809655707682101255081608124689865755040896219371900496148766457482329235456901848651193565296914778855692469539498134630977686515006544606531780749625071135334334394009517746234857998394091133297161573572470959877105751634565849580159406057197337181268456891343945698328707146773996432794992334679702281570184181497027995292377504837150305557076663663085971348597053404636554117245312431084356516458813562272809361614680099028713440672133329429087777900434767611541065634973015561020685213896150024171672348229086263713861488964114718634459253692200532100586725710670668979603419864592942059192841039192334984141195968524143822702852952575379750683569466362901658740009855371953408175380339919584024576116190121872362074131195346459650738531557027257991799877449845306703423761510014887862672436770906174513653348128100267451515643431677133018984642636443675979287028010024569394248754572132769828552366453489764037053446432557474078371632552787454022474139098628939596983008914110973854101867136958681644461640053406996651061026309721112678004366609122563823789884126533324181327256617237943534228823138364594153739285975056842459587899189328005513198118951714823956449373171530861471306673953193157581510657123400605301137677040741479758249449863242715807450489624462177850959784786690407606277611263865333356780992853526188781858867990434831030648517359359535235173927414347651444096662870234362638183849299568276891242895225934122464085694736968301659809503429744682540099031631000404214643452100656367702913130493148061868330328331617688761680627441923049558465317651957746782826304461600133523520255096495593222006419031645645190434196273702425566216523580432447518261372252623279733000913638145705258163797587154359674504696375091480385457392838934278100024830898398082772596501309884954136367911690724418699186410296069103076805574627148654964885481279066653251667591187044570366217521674932311724669185072964949244291083641685772773809736167041880705734837946217460327185326902111801021816133085633852261790922371232798730871018900993619853814416913933885550520280644411721018068227246183009015943996786846620877881958801762267615998710191968936143792296526138883157929814029187987671009833322864990289427096148103674690482758953145749085995986129022992768703301178894264961212257738439492806419161472459763738287744563931783278618829288210020494057324399243040850519138111903724287377422530088539860595326595220899012229216869786574412520197207978054245359868603840153490056701337768292145037469634847224531977451825955471075316376204143040436366937273538972798148806192123294872909758862948927857265183458504003317290103343302469428337277324947895574949975125153424245220819915197458608301237236004593510287489088922584950530754087006225615958279205482011203393080410149678430695026642692625436908924198930631303512000170619147119851340446107858349416189131888661040623083753373161447511213722946615177084716508784898767685762200177487736594562551196972510363999179523900738199269455135299021591160793566235805040796435906840850627686161938893895268028208248432167587001324548915178071776588326434726594013429723709760279941208485721892671682310989150202176596735174860403045290181134637381628825107577063825968253725440777811994374753612662981567938708068020261431678572348286094090731839618084812096948913326079145938130068704096714039170397684216481212081014142649917881409729725568455720616317446363911684064766369004518310585098696505262389398946883839527480874701651951550982090267062000252407749213868976467004191092185310897392606991623482225865708422332866651492946637363112597255204600347365095134811940172970006149206291168888036035263517366011470815561770396096827143333787358648233478115750936487352583674992605445351355363174888721809367747855791711505955432082323160166248858135759535879471894232216564758854338082731102115375722556623507066322242985081981770143971832110383619667408670584564377761445119982323089065799497354247731629543032173767503116035712668364551786371287697787806060839535259342064123367062016886582693678504068206651726095957944213645833133492240771121914453814427718772383741956754799931001825888574814353457059863755305827491550689352518182988873913219887246666418809849545184543262160052176625520570626992797787288212163684752107131317973951102544668472393282468352484032731530534238218724906947234497845200951614530847876367082104710453462689675147718791537559342227941164197059533058006930166720426764095863693408501149997682513085040032347295340809155474773304611437224424538190647688797695620757867064545664555462474257726655572320477010203724736145497930440207465783340740943596499297567359520538660970366186254378136085742524090407150169524021379500592959275545160762761852684712187810561798877748134974544870532646601373947128772083552405599788899047870225462635074708777048779462274459617165335359525560554936198072169164814750249071035946192067101258763089746188666804574573431317297281819081960038783636570664723425186710552862388704756800482747898586760235110407460724293121110474207595786006241205567648837544970826863205557732004061308006002959848574787280315131734118439138547586233974877696872969507895747744337203368682130695052643363804049897532199618827168841399768412650697989007898870569410773815528607142491727477084639335195642250431698116876092211537132312334885657938670826472224437635429679365137216869111432983349747727312242735887555603465102782163534079348855289242991236253186350831731057424024134245350226096592103134194996966193826950038227286612439715699985892627766237088471463858832847707291432904849169409097183302512976654897792785299398888593875890844460894222742392852277195685508695012824336676997081272155080430761869862395936316360925177042342912288522345751562636987907169014007982981442495040024430269300002711882336197274273422342066511835303222373611265211418635749380815325071998173686947516154441661309225321764811257397664622161904099245540237792488983550962935018714362206851284346307717454776230380338067795305315234961356372998500698438049738702146091031802834632058086560784621481622174856213868395211295209026843954231901630365860467758541130026277810304728902855110908317068340731591325829075505330337192657742767123720059029129963774690851506160344644046364584221254728470267574459283279309529745732945210903349196954292663468075206825117579044535637774429692567839379133295357644765391460737038279412562522692827268062008737055877922457540200471261853100521909224544480151609727410384002913876270687762900614401645060506966320988003982521177607243693481285605664561548107580564876568275178318190754946782158274180133117058066267506543584157888298365093691207310760978244416252590724693896350255738759887945571972897881652187320746039041283924461502727708770130391375726488180419020555541726578437274684420217775139798931478866646625319745948253151717238845164416122859478516525746449419002602954555700626955379672363318297334701200341084555793765754651488676879060885872181200903428393226599047890429644393336840334721660824151033646821894373260841066059631876070028611175698277068436609120901133058767330991290010513410581430636025718320473547293313924429325020041650188641727518060346419702840093157577041434977664621467225190594455254102081405660922048560330018290937189642573829562012325661303431467966918852093980971727781548792660086707264475915556764080955914765314320368702320380340322416212491497198294964696335619609905760759074738075039379046607556369079934894066500103865575875797474162552667593923735945514365155523731374090588624252174950560069493130244558447861395650677679545050816723550964481464014028361020762989528084331296514410988665935103229133742556717558301544482002285534050305359577054252637106554797413889897779768932737184731926692409224835322196827650149559684766628144377218805462337913601942962534290594747244821209861521090692860017402246538777073093564043986540337676937530004492478385315449947860252623504131869190934203095720064705126089203638861435766845161132934285433692293574189157808783085815186422092382552069413222984977643002494569616771933299950751739599133975630887029806406846994241724123321437040783772712199780251300326573889448959697810438445431437575297677710916984501505500583153147346163605643859143025766889574407560888133512005578475947213133129932955091342467995888682623150068622095580290906993252126345552881677235538475775891078811058532039786870796783385151983777348861566787155905652196748188342702871934380442723803912099622479293547567422564544158691868450692998355748914004534450126619952025253163186696015362318783256448566386386021492279852804875315968449963229451058827663423821843997619930349536893171612021802372016589997309826847589453448031653663628952200676546839801099960434353918759183338061434319698651489942925828988508528142665592705739810952045256796292757735841398273699169580420358189385876850461122090227311714184309873365592633184321215287863950535834048885211024069433528783831202556812074561063263812138192361357952825151235749800427034050215194277136627693445624997517474777716052979777873691699166671957698664217766109407233956323523715050203964967528667896712574319921986000762623948414525358251777853842337455804858934252830681894040255914367855086156842651127429585748007010907665148921098408564251633151217985222224980777409586359788991176562067251510089502237007382213131872896582153603252032793926868225864505623421360939969022700821577070126150117579337212105752397157698013694246534358133783612069451365773129557232358909840784021323321674004656316733445029861713079877076074551104636367701323481795786345313303712933325242618848048117683735985751673886308362318005776332215330115794930906343548352951162743864748492826421881001312918697000554017592625282729902314777133308404343178395313689100716222236356714435483660346950247271250927005113985508277227113146672699791798273724936775717251314559394510459232716069883350110452696798639724936933678565448115475842327054785792026760086636809164940061322250935675831655813011725937068969575650762643122860286160897987154105460444125337029165391084380657645887400941774476324758795284673217549175589762824422439036858413605406763064888960448558412504006477962541955789127390957837370206466250235350709957232009992541668906785262867802515077547598186532680329130429754643874836686521806830802522769575334269800441813299629449801869290501532496855254707220500710306073331812156690646851525755404876813409651983512147611674064819261374849526774648037487144946410150102092767978249148718456068805608085827203236023612921902839470596345550552784166908931026971954645616598810513574623966945104946523623735081721752649791393046647619448971250316635405774380419385892729559854670827794963284194085653648222314039843932297039183546030186576660197647193710969342907447722197361700135236384726724032181260689673388760213352554294459789355807950879705792312015204414980725991302631110775390839706039835648828531767259585944246322657427455504352290754338039186507224202356463117138327522157742087855383018976670709378821494973300525344087664562020808573892328929187052489734264027598076353873435326124886032243124863150111430073098630235999120729931214275173613623155999560763149813810799184142293337996724502541513808695930116174968434536056986527562995100259271679001745869831678810679381542946577147999694697241018473384794924829874980521194578017007745672156346468594402644170184908006879846821261109821068157875353218152133710274124018384873098090399615536908410470112838926347232806710347032931284016958916160849078881499491608447492907758141686094417900454437449726638879686364882297777309930284745981442415888813818903176170807935145326395763034473008767296905377609022805743827125968228848998363590712466139361633245247452704857396459557678836720622790804698098903259861312914025892282331294874210874550180892577325298814489992745007051530239643118751919012029312531589151224837905004038913037230662372295937140758179023815411387017808503090162055620089277670848209054980624631930839347940155131314947464013715665298594659576055318378378405002238462557019388630435149025334481731970480231894781340729250521190607890301665772804373801235271984566153303625642793380668452843393790357995192929442907735884786948815541863015080420971384601518268183932086463623627558566040795259905752593644948236845478869645660182412282980879724035307707939349595992617238751718773089523445615268699920368183837216079130002797591434654002561872008224872772144931211545649785528864582640419520675805611254632028591498626202213788293703593962314360841909924548106211088930900024529410153543399861900210047401169403101081754927531382980812747711933367333446352113505740476462743437206489490943777850064456642522782294676308727805681774145754374858486305627140274481808831171262855991536588791661568550096189948035300550264262903699049270515139154455129448294069505387948521275666237521016434187662374782868144592255326822219700924799068844093322728359367343261885240767258230543912490438840886820348368444856130479713689127895093414691478381704494473033602289223566824924336769319367795244515435793465808055229990789432937937988817651999318623492510236475126776822575856283442721187730250372667210323302412082580104125266288303851040434335782512517628723822235738707317049407299812855610631787782765630821289467413783291720426118401796336125404798135419678253998305324990417895515389616767604479285930804770178164426539896871847084737160939747337260939975639320523917295261897715280653187969838631964311932990506189352032293563432969878460251446307296589459732497456909955551396917565815420516209967966810425912692658054268494985510875849534867948114726993370731159750251003936594834797010370061808131552884628170333727455839795202228511754515007240272700187307825860463179628762735575067677202610861650258300236887095221928032220634069164041266209765550906944817869300116836890017778526829352751785769019530715355247324316642244822516668794556342687121114808638086275330387853441182038324302025999548178107703242722007206955858399984403230970823190665788854311692646965184469518309557183565827101559632925884471821899166223510645902426236732477126665876999039975128219552088980293276004151244500822297064347253234506987669054534686151351422884513559889111052888214420042991110198108085352039494910976248251477218484422070788269274695813925969110876932030472162167016443158190986487628825668008180017727289480416947225772363652137773672027440594084599867058127470905087294737291010699222112645720214330133548324180754175014238342472583991934637424045698312017867254733248508683576350479112951944827500900419050017177563666288614522976977888057163717819685256585627028415061574606055049523528975643189456514988011163178523542428644162570603365452992069293102738846589458590741268646079210356363887854247839955180311970254090659943252677132645660653573620297555712854174262678701009916600410563888299421569240670478590743823164378360237120445420678009142609046992027191319744368310350025695968683294786778175823076813789894222584318305121087622327542165828690215055575620466817338814975475206596987943395464863812611402651781922762886045861725018487533654554709026738562930135078876454969762617489540363492268383876984184678474281662875236052499156611537563438952357308181050132180659201322337985499490133794548868585095176886432767107223955437745742148870954766711435313580468639466884830784422660650834739480058254327443835560726729735580628029989866633240082979080431925258202336697711232941960471383205964315147067921353152604572150332423846678179566437230286643034836394196650917155827776509435799820550126347183223394439344086122649942199411346165391355288482895242610062349023541542998880099921767124654203122261600804796597050344067790296244824738420832956450162840068139532759887635448273703289496134852719974179222906445786505095916408061835318453278696103742991551293005639888256817827958339874114937204765487203315643457677032378376219711668960593867951292393657677954516208512510803513876562804108449252635925461170573584968751223718375717809795061392164740250100012903464340446068451066959426929528288745869169332223706425790134001943576247544892877824495668654025743592383091359807300313918328572495984957195721171492049818982239063477810237637859816841017653313249577057043865195638270663853725233082867293389868296489562589610829016218632097151127071187402144305457004436030234405024047861339249282047717549202141843383691944502934465579030189805592886970194471787184482932406886060595898707909660870191671452813600627177923425061145929624118859928989394125153783372263693910246055370136770000282367610258802827187157754510618888558393838176750709876600286161260356622029148347123865324551680430378884867373337399127218134560086024205220006159409807629161370305084704516125303017647412080060870447944152984865687238124815269518211375121728098489847298296985028677058994055840287248575432327127734869533505221305800048852165178654780367771300884778514722175016156110672020035497219379711169723937336140166296490146142756924309241484875693671299463766324344369546187360923252590723157501316712080802760656335038939918527979316055358633688988504767517348903178299731293954078642395180924924686587029050556558037379704006863885719265843900164236115589945304833301682284824543074422957883909161681288212140590323806618599218865359833579615515945384526925088453346633311613264183447047444125615326967139959314850904359256154315999494813456429498402555089870097019098394927765947187457075666757962007433045379436509094794399739600187892597777565818870829246992765671819954090650257024759548605976657448879113424126710270551450210877921149928434042755096804884291431272519836479011411417499197494228638983373184838272328097559222120477874252584428467357368544557432321711569198319419138701210015357085860073665538854449252316025182674017053688174973665621077027682017494296697136896856185258361007135201284553740693262818075709113340430672265943554507831082647660322750915069614316612487331970753742793182055845791597258963024662958182351979958807239087174121503682285565510087200471470706106967982431091109148834520731215605605167833827771230033214191816766800832755624678027612253348393761893698339840161919091882403266251116842864193813813257074053408496486833351506895425469105524047228525652945200102743750829536607191035849388081543301932501956635647248893496558567051687815085988246390551504455411792546284235284436416538570522244613765245873357083705742056175841924218087689639121903878730588786429328745648045725005479853591913285734560152767028457530472946735379375013014590010015032355034487093281018989777830572163043375493288195644807469501272818615242780292916155852825191257000655980988480068070788556871824294021680306337963311782198824974240933010488818596934829033234185122244745636953111624567170040156219747926244647670281820612511291459586712096863786822375113295564177174993259228601323272468986345322697691674330378886767233303508034891589109847377616128976363476251954965197339869238992835226246202842816585409060273918755556857368213448616778693545240587720722745495187958619451745638227616535490682826407936125866867163970288780380320922802869738140925942948837761319142225593839769886490928653465893034294937068402808395035343857617996301500405009111873662036099146616201558109707071734603807276963718157417390460498005856267085298552001994450581152571692502454029272067491396065182768989509675786419215720808307621176098030960685687070060718982885995716404580724720585689737002036737592465471899239939232348904217443569451768905436158956282288367585427278469252166896908767822728173443853246919913283172444600278363852797267206739173285404292065678180479794666269872302057263190154224300141452354415483715919186548200713156819812252641090677752642641264722905925595358003788452686549886859615254091868335613195622271909176698461248149933322316019107969365513635781783824602493423156297404033946100644292423877462550435603711958655483100383417085329176826853169402393652774398480713629038541580425271356000433889985172603862890245832707693660201910606109159666300165381292279200185857081811775458114662943483466251493712683504663876141727029166398713055308745279803573319582912252031707529830840789367863152218853230703451151807456896703243330174492633782725438047844486039894106489073177797443409634839522398446211264323528836961405711550629959273241290656951926034435951153809725210182273457721330264132733111070225162305347090587326273693743986731933766270634791896265757233948787916609377958437037621878751792794173353698920454317370834527480103610382305864303430358517982975533466242053008583466583378859498477523835486633087417341941502431564960013920074176449937385955718665463926276873227681887361456714194025527219962278146902053699346339340310740403299144644469212936804090009571598213057171235566564479603488419603958926117595962762522030431007812754926360729151796061491924470685235722117165028914585148343763934285133959696294535792373604899315906611693765509211090445062031107286781074247325120866704807303074396764974169971613403257522728222161199152024832402789454903502214590925377745274288781954492392994734765427771906790958567662984739804552009915152274367028022687475224716446775515313842840138089491785704522619946977169752626573500740411302511265936683855497724247813551999661031033467650816703653428555366241950441322010937972461786677456113041912079009431682280527071357201604042196288514389444385984210890136349575590643802392571448826433012108228968515702462643689178418280957381972161582345269069262789535147619260347015366433078894098014581720694485239774377954566362023470178693703008723904791907617531749249291787508195063120938074093016384751895847589826166328161834684222201431152938615702729898495093499164807976899651088403332175300132556324909653049269918615055867110097582416164919791860933004806548250988281430157316182210654289281487955983456860798075372351524265350864264605463095019149457507559898836817589282204329213839821959764721760956277476285920854322217215767277962871255683596040186856171064501483477129141790651297642396409091192084139539443356473394194464023992186050427789780650450363838213453729382528709902433321081957430205646827298083627631980234885723497815288321773074183210378116518627370016059941844016244661288736367223961710835311544181121186352924267388996656370648193052077625764888382937821381189874594446231948710614947601137518864862205042627627249409094558442630838227023401801316412037681624203086987925855416097672227863490788347061129150280254198961640506820570184869082847089211131076060794025287698424832993116498354138990220078190738447534808053827568624351275590511646061169495033807399624901812648074940057580626820015959325017155026769313716359633884134816392778625565037576655943473611624160061424852186241366745444644442969731946426840554488045696008900685179026100477025666017198870358394289131207409808970002709467237863891541850702015539443642855250886950227508775948472519481451855905954696201493209142345947555019039937610614992244359202456327240838820423241624226934613290913244017961810977095816849293275129765381437704221691974317096014328479239795642116976469164723731270880083539668092205087905806549034260478524885671538662995639529698116726471134032706641065658530940277619878462076802678577167158392383582358234679636379421687203452943867651319624538957196499371462951418845472556662378507046486209427537202078997301972238786155131435360214207589066267769712813942159807403048071543812068635816475278500495501785585356495678783582826759246333447610871175325673261000690030207353875744676048136394899578840612335691219850748338468707300096882178397842478353814793359800306890004225517067921606014534031348454615601201379702097027351838804323240692268441081101693969506915939607425691925006229169350905547644205255052073407983117898542219614569504637105210550516155190676416261316695480075213886992782214586590174128532666179885868967424879668432447317143133609415457837178372855881181215701040374893803812675080215258919000908573007195751349689648859899633423369627139271783688079778580044005561812909907798021704654888967068570807421391594632882964766548859188329895970795367455721118262600366158046532249452434713103422061491808748573854790998740635423287233037691426938587554142941346898086667161004285867773251871784677271968665612363739954899996955066854748911285748216685288108987080454918856024408335344867573783664107145642489776800359885002783598106889279375000662953834168477121774618161016844941032895123766546838539370237592876636887984758417506803448219747832061187833275178664373450178689644966960133348344364207530429342105788158491215136134661810923003876270167746397975660643998069116872873059208328620268355470213335541110250653339606162541327297752660005971046281374434132223868305825059368440938817424402181539490632149034208369997913814858639119066096314442141476504539828457371176108263705128701403862841623844729080316615827876027592323820815792142185385371885531367412324806339670856297592531173835873382244162673322601005079098946926881640132260457719165562205291475856090175036581060316699794658839483365556056122199158499741298570469764707469180187296039089367996582200650432559281753728909607428182982832809515247834068702890359545703046060132640625847759615689392910251962410772547925994370401951119486728751474075216958079594655926011361861288122652011910147872905472371975945799445637513095000366242742674248842940687400572763268342737540176499884980891823990433592034749843695287607716794107845585871754100949541281453084504342371219702569494785066474575511389703040812911002390040315609316387480662380039450969432353150818895785744140811204372126034276141182590097907802068164283888264795769089241387175397104607059551539031803433961122440945941014270883152041105912071454681790522462290420887720148297098867153347999054833331414510203337589974492551389157569616192124449216119422481603360316944357238933704259900040616588540453169920496125268385443491480427439859194977750015573608941018084522422137093438400426364276923060014059668912595565810140875528207576084201649853673288197128707885906057555785323657400639494686735687892996879058944831241126989513568945794266385404197501307499440319420330545080633080758606502488827806492121953464131918741736506011689903392431179199099482680076722555626446209321553724142876098677648922371169433318108040450153387712681119228765086488497484242803635257116049706206287027421298347719267576038153396042950094644446495367047754835466594623100075090918523218251057825918040197897641325316915467507178863599929095267494643535759251650883258708931998935529206681326112778383292545785036140989352837142967005413573418901157530967319810416392137030299352076633447053832918061947842827818625048577516916423447547214673336705228545131794287061703639394774824800656725818810026135499542809186388935527711957050947873238452497334339460138212942682575530189460713976324386811433606435625958824102512174636167719029679343377136949852347596490172472288248964027953696976582725750857319734366001513232703883347014394534221703093497027988732274344089940255009476440858210988900508844206583332444243304298533168889608875945540998599515076831123667158451557051796746189607787807551229112171802741206568717220216924738839469072415145561463519496954723520728879642079823961351883207580672392371110254929694238423054070139033151430843585490954205123841529382751398025544220104815366536509710224391314434789229201111082569341767715886876630977384420631207856793979186493570586007784226463277497681088386347507352419316657063896394901954698255339782078779949100905875738273262868237670405220280579641407546997839738026748150368456674982420249799055545415150447399891882148030029690981468985488679791293882560406379481782670328416424707550070098932429187142783529148715932545045280981011443820993312342006304812672456549899926714544986505897910140579779236279649446512487868289216823958993045564691388798013758086100150466649617739925162096537473157663592312675449268773202812151305959639245482272137939540389805799809524535726351787283107686338395554533381443351793945468533721181219557533967621243744064798929943820019496786929390510857405480168801692544322156560701965568090992652727594996612028770925581627863646288627799749749896552966460408373990437034773896791337895416839811456445015256114588716770477991042388350638133807530448432533329499220305109411761814534457068789888328044947244292405162371768213748522323839818303456447622966150337300886936911787239502092614204423197145030058210090815151934787401268224564541002960951193726751208855129931350454144064872038605496518037438850076149711807338939701201704239353096195406320772678179092485962525258773679945424486592244463415401829305712938999383931724315006337407051199608678543816244875129448472346532331858149125956466761492015338314743916511163724460726343110123483756787283400005472582126525185287391532921594702432799984865150564361157829409004541876168353053730906540687158840015121228919166285447814689714292160984454114760464058302550124676946000471819045794188860384572962335560499545222743491825284551533044915734062193085018451822194339775338991208015441955633336438041042841771131590221820712530984749279002665085262807670945934787884995663965058707322415159433648887091712768424114290516978076605074779681467831678250792996879749264241766221326331173742990566807569743760024924017428697373961066392049250609720625885112408872775408960248297891313962070762483436313806063570800782096667177651750515692257986408618032501648598934129366538632858408080722363568824397771481930796978391893401225462395985595081784926108663378231365586871367133254479521316586810713260461344755017170725903101916872049675182800059502361949915226646827701695342216518974346974827478094015002674074100175125006975123849474865476145725666841366924767889033786099577233888910251067566824128702465774813358780187377483288367246402905925117038091729273760863458325692023618215715100184319493972434735877785968558684768486428098500029952304011925283933212451877284885320520472074371559069247277606513031323169915744075242363415963313937027582666488288565823409076391373551488592890856510251759114938064554649078268180185908799069231680335552390239466199771764413807574235134728440933537853390510863639637394709156856289456337843517996740359607297693824742750320658257951109600097523766155679603940602361303794569731414731775150773491227018879586163280967577930694335931236851414217745612225022962865089899681144104678985890951835258643956394755600908049426154726642986109543303013690658186728969810383350629773099417987175766987671283683219117968782289384619810303633745858181716005378068306154498171515922072857905849403643532984699852962735115403690750068792452969284049511414943629861063129026005102419816491264530405517080885101829637915368202943146677371252575940516224062483360057875472799593986922573627513868193184465507807161648655273670429029626145981156805586731702979496568245613777125825461650700641342531990202061195657540495344065883542087586104245712930229168477252532018302556305511270390542987776452286027416841077106571463137128050816509896905290008836895760326710336158021379479730525968381499081145792837255631341431775837885840729891160074053950965123222997592162569485688215569298192711669138586441579091389040522789972254326223789974409408961881956958127910721920894976100954905513244124876724091556518744228275937971116732984219693008314782877584485513845788737014235225910989977119070563273682918883720649611330727085307559810142394619372456089047728196919844939789251472622050597608981783092782030469384059982613751954257298471587860052924021162693412885739929741942291886457338118835768064466940637043316562633009049127317707938764638561831912661757937621388300544615639884009082751828687934796411529367502729467351055315629022546986497406935584947665313054134889705330884531500959526397845863859812172473099448823491751093816960641085442312590889927231318571891057010613710232581227786647719387371973381315927064164071145253030616610354135770276511940228827625743890016176621341286115013188887876368090558019404453091677332425158947987761586550534804431205249250961275636103768577322604525175921637800689614928259539447259776935288723187453048187240311629941840314323780717413687181083421557988187014127106026637890419543181725035963997888871085169425812643198090870736695300731096209104783619217418168139309268276985209353890895248434540282401647915795644968244791104921139543258886971271735179998160529819178828877245674519768647134041050749782640812122351902720911963101846142400517598730413518471682067088827531851032536228247590453314110991186760638870170571115844013156735878128043930973625621978977899901888076901243296676154441119582821821540127012113326711563951181149583851000693594577664713164887830796368587519737085686787972734589622115059104110318431077286393500844452390425955917217135749450466727737277231798504898140445838036767859222454163127160879847702850010518079108987804895610241123027819875451375604327939835627035972591680820775811331980726457756141914293551300032740218832889679000699899984277451548690253988862205499429465360810192857112105923792279770895951286608972785370203773443119920058433032565749988232299810076815072109820912837874775366898708748629988369754428228137043912714077807416861909890522059732847139592936718288514409723451191569883480296474731321411656568935483852456411478114706923605579916015398913790309981480199685914166692805615701286045454992945559801689373363359950072245319222495744527855369377016789274278379290727687810107565676338545866907483571182464472486622044793454352955001838375499045003517154192666110226445558425989277438492196062392536906578801889024610648068109748846176421460255210053326023400414010867523531226720754370670375393568180915200497340782164119114123668392778767595103916297621857683249324954495928952734836266264745606094431856776669533262947597111609949492724265121496083728920236228427051018388690511432196186325108460322960863012482302990495721180919029593570926714075806180098436121479756404529871424060602093747063656610989108273125950264152600272296671920499439427603925865157131314848248829074671208789084303279659430055691802252630517542946024117388284946231427958394645555581622842518642983841881253884804257412210829320710474828563769382687430867204512457490351926267993152719853374129839434370143461625755296700284835605173157993197753232797711664942950081387784356433944176641831699835092524389710409076647469610085570940306823914973491180562299110193059760143187148042131726614931096908338573621165045275824585593353944981278314266189883122647223726966752331527112252422046269142979830794310662300287968407323651247445689377414340141209368549325750651891694610498253657270361362155096854517195825206490814986490635390673444223665240279627436321417079653791811667793091424997542544847334017292059819655126547001628437609268916013981511489698595598802258114822310354445141542042178365963356205247241801865529122907408406112020719799127331639631501055243471958190872338697724191533703293856529569147031043577262495420666154144604646366492270797104325995884336260459190292426057552420355396729215074918695853266519979017802085011009849469370493897927801830334097112103823864399763903378499994363464500745413037114687299804552712374642260951285188183340589647829971987862271935905436143939923729051009264095433917128684521925808395567111012607662163437312660055966945439664866109403616135206780120739802923781604293637516454446818671820245415581557848619527210515853395175885139452025733454670351056164677414329001732400790797134217261789845902326018927560906021308167768797019823195189566659895743656775090416751746573788474652320507022691060132212644821832092907467560485609398011225541428939679945632272037939093302285627496903587010965411522998160767466352983400095587026629017048273574036795486142417684506482219773342003622175741481048001807350657235090811540551469771111935806525002056832331637947680784612651316558661881772413707372396107449324962499591122311511773463597851701742121020939582561805962919919863374465992954626794356642399584414792834210957202924291894080030021769846260816352900450231519556804542617384385711252718785462294123112947190738954575877061473287031064574478156768465923825337867711986337048932390246837045894684278568367876290973131334022811910063463613292363459610815585331050852207048991536715319752207760172724111450949215310107063414265548202143193633966319042705412182641574046780722172844677460689551367923531068170877945534735683215973804019160318118146515864585239337789138284310191543938482004214699074690066354586796189924071637144534684734746770368186129098548894195457345544553403181345631314351214935320270296984484874828113822442057383089131279828597391381096419749260443692699271605518286930026329651172812956337370225201147224941521219822665788557021731461157277404023754847995789439485931550217073801119066033372708258446564701146445614670872586375233147699619175665713064370689267276550321330194994104875379882899654767827279981447899717752827418199215924384541036008077973929697389518652010769090037378829074651483900571043240757652300695102973347315432213546417205605942753937527178145778117950398704110729030403934197640821303768875747023112141965788479000338898262075482762753197967402014628023429942336694869050373108728962315761079534356879228377791216943804956739485862330009894563077281626044787744907967372245917310054405078640280533958966966285704247777573251779027278273448891125624963302869990327976090447944297333452260383436173640702394128629046616032990841298235933475520789206022498472623215406185460497709789366556971823950905324438777209717833696873125979995875316291528920256424604250845441297091618663944256648253299439373229885849103578717216711344747345130599073582231469242109963434460750184339488408120635848423677475463607997963850550657441422260820035515785285734493874407383297195326331271528092059299658257300355615693116548914862490059724197666515549763821935214195525893322346888093984609856742423917665366806635243918362466706771057915612738582309710112209559365610205854490936369900203552184131546632663043566749451097998071077793327525148964955842425151025774601166993833784613722792359212425157008601068511620376218949432116170811521892868462474194022201167135309912188145733980480912778162717274063606265794952558183010146757549530963015096227089761545542800334190094826408119733093140600551614584249616227567127475627280274791210280226744960156996206588619194993518329110132235934742592972375124037390047779047076143312050481095281343901650706486689875056253592796519858281066000062274516798763284245065595540215188462928915415891810566065871016544681056959406736947795223518283146173822648891391944547603481057642138888244461016628065127487745819705913010827390112145716020623454671738146391280881365108284598763773247215287440301343502545598128515729591553833415919906571793034548821673672340584808213576455124395470864692069203652511232306513935315159531755427658936601194184146758609819905787775362941525147432564780784363114178537261529820842454672953732203699393852845479796943377253244278956471962890691267921814014816525546007183942389878041455017564282183313581470530485313065761812207441296821851839981492257309652620339375007815839122325478426096208936593223001550483866989321910416704434141421998325632820893908762848472782970283900833542763093048978032571268901308016577346492409232331648046875084732104370834251778126752975298542617301296953926096769886347547209292074700383387735341069378672710809210013409149206271178867500129115451745129327710509360961726297541954981871281306709191566228161226147608542490166779652423431044392192010903747940775649852343286432213887231523755117565357227500647291455538419493421670825632513992886065923805859328868530300003489150394471995559720027576665512210919161116368488551457495381890161785564745355234751218006423372797626718512911151519110961581040845286396564095519744783648593440395237346029750871942204604770088437925623297336319167429695757136766543712957530282905038935404685223883242979849213041777817605400623048174175823917275322285549557674003266114946254670623145033601460677722028607440048613366540773600314498007678899018363877178096649363810512372969848423433000187782473523984007519986252745224512877847856572528874285284268166493384035421283063609162736608981437814934104546329674615782160238176310538740242069493508562146291724212314767285762554885319850317211996677550633262492705549350240281028382139802051797212537271241829690385569582507476806180894664952468243518914922940586093630613163560728840786831765960692803273923378463280990069918892612427128439460512561405848693883943991551947681168407610400642533997999856017268343900988656866203236660081262816074372379809672216145455007379752519639902198921657310395148388886155134373138098856830942193002764106919554526219436155034942170332702456639140604013246893832070259340856796455358978661062742950544519171313573404259458484135292973379935707076065614754054475632815305640358175755737580697563242508443279019571383985195747745835996508253311307024964757589077597053356720135195252682956461575759904894330617756027875470657019455868635427428023259283050106574269439286188491141966474078568630975436705902691727325595389043608181170608691821858686349455308886885825903073399805751848424680232402927630167072358178071903544335792165413484324241027608771923963410771245950677548101475913520786411013743549131837078039208908106964372119645060233497827207465081376293956128864891375119879377296613255468296317718907751155016676799835798023612246455645985427049226556392289258034563920005600323240514512072905476116895727238022638010741993433629753281995585153403206075636684087127000269947171861206235388245826498195940079804880918596741267072893050915703490048517771376594169277081122648392366382083020924220323185705352991592215923491746339069204792863908905222277399589806899073948722628274187928772159503126206027048824038918774498391119860473865794863343565247422641018715055694459333862707466327699560705427740248565168465474343376167320435938883532671774206160571675267176773603469339310333952325153392652818839202326515491350452329347472708940098586435208560942381155269796168925191228125128344728698515969667667540457288117467519549188704184852424329440370671759798929947700874623710334238545521572422268425073220372190450161746553110602558034832025204784563520940966471125694457933314569421960135785421398169400347640335781008514104474876392087741495833896590706778892556309031260731072149139396968423342215168601556878798671854535650850741300338713144960816741921506749295225969910214045047002071457294064444892270798496414819754068723239944480205010219284206878246163764346384836365187888458957528453823005926850888500040096904294496527142365566457580883244684998676266568837523619492790319041892293947578680271464661421699155436466738844256207335628789753920285369744280808898181907198335094459963214651816878864623583682013587361840028251535555045330546625209423454546029543097457536052310679167213463217389055786685713215853940630073327212130920102124430967028184896693959755943022634197587438106098477233088073069057560183597882641395403247875291345770405864090397927515229279474875905304652481104988951441249405489025188799896545435828880486119632203186968375943338029603169965307039051713769940632671717683376504559910803631688979652939908811370298122788054734492869490259698407805191963108557148657504998746816598141228229384345025684670662382442082400788613527779610904043611645176579684223289839762550328839126161771532560991863029026021923711785083022056817644238856454022026975366291181641141312424571321109896120871720065258466663186390011217944957819559697933369973808020890202882248409890663522096483441483573700186614175868652866697918605024310820007934584391472811332357093521870136227952463476046521135420229813880358702472126097188340062214578212281250588754794473696841907097719696562680588258036615341310962188948311771287664631568930310386264261139691100272093619600226957519995041181349433038478829890861599457894427253646417801834200567897816967911732647005243425785641231103756299740564901182121402340147626807038377970048444277242238996757036959273981601336122016867426370217953566167630174276967704183420395106571649324633148438185254865778456406868795890514745950631418095788367496886984613126324673514928198176984530495821817386633839130187330360380242662881234942769030454419015741858587972723906881395562285364132617018573325784416159186491911472915269988313413785570871750451762841741301983582007159883410769453258511414233457516128544301577242361046429688133763977989320825748005981720857201803009223610430726988105125144840102984420698376084271761020577213272712859464366497573284742688818271275598959882049606177924730204368597572604339428246739495968171147313562173129416587058308385760660336627496324804481453662410779701142869158536458618994421275516531515370963238212480707646600460909294100360928841573393553841559594824053349121171128969201022064987141742356447690831551274182134089941510983015094545423525853262816506588886650033404891538452255372083767585277657689963480527916584876295403941981069518545110959859293484361836833732060018137101955026036096098614904853364160740939101719653813579850482487959988008040600622970080239534696783720768993217115964392024576568490424674256943310910248962518441158726979588089028764201686723953044639336061211017849038570963440686145292243691046464702615453808181378236681828918426064679374356612693328838990887386025686316043491456376491121096729839348974005563756144708497329895267059048123772769735385575564352916093921923866019602130403287331208720974810469901485992919221968122722444508679192479413965205948746036821217961364877300012805744489647096417374094215016726434496955946744905761308243834363247240970376654722904720564141966707959863778741163642434964207887463042808315087414760632439604909964376666215880183132033607506390785072627976854267276366484294562341994026121303126096142551313959675292983225110668495725061927133718283714417458120091055998134190887210081451842333832653765526708572143405846699145140832483298144956666609605891207362323298286304214169840167445097778689078825327152798305103340431202288007703134214920069778658015117327022137280641340265081952987979614807905537309106861217313693728613043147520890109019550068408223716202944260171662702055024821378613556711036908009302814335387330364968690457979653052194936942386107214606097390948603123946149538918765931553542833151908571012288384437066405947981042402285919177074393164371527715473278671066601398470484329259660708013902808727025785442581995940658548106585317118901134586026637436566528913306914604120574439793293218770709673879767330812977638043670117726979682734712809173557586385132473810035052566222266777320879978452341557431799853472113907438762927897823838521344926074596978096988699745298570244357168321502985215109500830572377593965573535266373397411812115832716151645903082434185581802493536148198851611477634283928418291294913319349132640293520493360582328353721991793409425024209008179913478037028427967936129203002650704555563893940352630063375728205576044974715773423493982470576397533569244799016549160436059342585522566334739124775465664325759071447452645987983436825051715944814404796911779981935067692206891151392441998391925236906777447930557920875344632332332875506986366107338214343257958871743912115381155598733279403548004938338284637923763186800804535442528475557878021118848685846616851017822856699499713205158958424105073179556296611488448427863695035192414688469168883999967274788214983806924291144603826785084085791811601957714558296790252922506015905647747856421634598048665636478899961355543671342584871745872013580480535475483282735616714232610267472477511344862097129408959385775418814273287953749709506440179297520066910902563586407157515607221218648779791112066860340249843114581937436723935704338989751572878030875649183410984569527074489463609137296759404104772491489703053181502877462987727304885268761020511409116540410090071678308982336463522712140066686745542322261892617516964845756570237240157502969882284121838495796441941415789470235237377212643787373981754169412271846599511324066923351694479072016797086495807929378655974433302927185666445495236482470637286514658530783945768402321474366939617707503574258105902212882794666136022053868413380255484667396980215712894524530746273585955248256422160467632268050053603722009211292272850875818159390127454012211820336608076168120814280291166477815905201912241361229390654486527677359815091999025613034717392304767373049300027365315474090256412778714237616925048499393479673378977190770273875829435925216515765631799302251229897088262555137876478228186708943052186052883930473779890411955747215893294662019697249567508028426963601196830532862825780271896225009202490784359580335155482787257332291469725470566544881266360549694211590775460293696429605202845759691286900240018331024563661136318352841494686692003553227600815561020631216684014210003655551562143644286024924334791584077489795240403188062122647781511104287791696323034245865742819793007417186475020664615260014665720770310415573119700426567272094843598406683371264631378982546489759020801331563474214321246580658556116237964666900474128339128474183588788591262646758621881890378382936208749241462743581383152654103605860433303823532038806561010276491286775707223314930208594590198700751940913417935360833290501024445400707149718640046333268793343091368945987725609446689418195876272780455011986827786695551054474846190222448168188850484320584634968420388422627745383052674176844217342594200082190595346429725437881072185341678697825394244108645369058792120574143661982709832662046201500164868022408886095936589484818222444585443135485702433926162288043861840728024524731873496339607810656006550162046760865721810380270438779135808232573005371372113722543367320696560476503593794957610310198377518985179865180661879431852308605980027289172803551217249492060736607414338731247331301094236578343680988012466556254328379839820322237325135603915195656406860006893155410721012744572848801151462280250455717831137685502660275593174788687675841250300628166518090514754096792911548781754330900237560601147429428208965976053212294878163662006431326007022109960408301660141826421228627920877831186253673915541224579277353112129422086726940774798210317519115828271182556300553120638701475337443251755890106191648277955355784697074858966122785227128559370619707942397341099282177660453694005528204745919035204885670562131738573057958050589160006727490077435230319505427773041284392281565391625688934500073209318100262982789759262903270149936717617064809225364746716070597418226592077387475684048300795763623879152543869109250858371125976505920749189388885046233689013766344959977038828900605294172349795515802801513752553483268912789169445327719985279889901596813504065552222066991292513867130325459604155736875001668941573313945459714010512779430145495532357011443494681147812427515124075140460299345482263648020972513193747556355731497364426597468547796775594074523673395828808137448663961976023581110001226928326883325694917719733776732810938456472917748121198468080343947230322378016456934271711487552272197577213083278843563119779978372590069767494507584461709095796376377428213540570855230359465441428596236466690305916046560947044316086112672060631857949131151492428758502546788544944918006385029615060618768728705426956203496249486484138284674121290936876718159989527985156388013781773732794320447261182894106473100535231063694871291239886052537216259819435826627314535697084070704759010273755578808747495359586105075562753255403758445602223728212252411722621196952875342235955353395067625716788297801045079627705804055814856622087758607706196174909948915309392270634409077781070959806227643317869733500701553154078760626124107792088970097048109703715095303773911562887562853817290790274458749135181377361334535416685166408805612798708316177703025856722748002567885294989464253816982908265589098514513817968732616106760842887014627761314593767338815531686974606224112879859876164257108287197719743862646879901266500238493845598937473291415109518704552947817178652370546320188862346914451018096686394287533785314044460750717212270415342169557534652748772725403080207973405212715950325435933477416367098009044485690817983297812460915921819358329241212343931101631479852496899152383156826829975197238051357957466991148479241534593516350764221582903770491021581629538182814521763570140042774618475306865459420510094496747085923385963905441870138529811307298162815405171151605416408760661214514724707416015102481540715903719449588698821889485352799747124593919877187471460936410374069937896912604029715991238639685817911143977701251648752243173917998336406618328080678803246875983443184422505345843252080992201219073433968168825333729261277098090129371151068736314819306566207112725173018121156330317403444988391851301476738362250021111343463913494430426859697385627145005863563372838216928441456526307254549289329055796853540639555778780021683370950973283912255239430657527382214996224704985987756276442191777883094490927500771283569052359957676547538535116273428354317551943210614864232642687725914219209311538754122438601811882993415012683734188044356672570179020058689569287017008890692561699467240778811069004887382674725127287586400096604888486735396501732723068492335761310552716169690941842758140943363425768385241941694891967340450797747320541220987356853703839458858060975779633110822834315628060410470266049655075860869877316843177062852064735009964226129895446597484699414092805138973591535386774661436998408694132763711260087677280903773885472490960094530772402834418913322636874620403668617153323276140066919671964411263284086375114286081282119257187738434941935134312809761843448237814812863611504494217224107793997126237498138622387227595903582734191020680604367859476733050375134605532813663312031438032665218066933400063585467569757031931817249233960864946771056793714316371195721440289629846061164601869257107834970512015241416701902472728402468424566707179169168755754211878519219133791654848300158899098245212592317006284765331113305635815157586508100690551007703858663224955126129997320786086222126671865047115216442538144079458729378037903216221690835633865799744062522849989682725897112640033032658927743010502385615898186961052887997659263132196178082371515537028195192490357282686575103326922471682184308636777395584964526298522015017360694347491982025719409634537632187381561590383790785081130158439601384384773636378360144289182662572468740686913126100285587051261463529031116157538044134711737435307906309592365466808816412317134146576700948446663288002688822142718519355110314736790009803841473394471576256706744589617812885361861544856236701199379265578443088528436574979581207701604047972053794153225797633640945361794976475345487957684894752890639608620590285388983817192697366522291381494589843830062500514867827570107408600094628260432735325590225896577883950530861110907953759303428954951677151352194581497144211542961925859247342144432926365856098332551726681631916133191838978503917029054516003129894471708515566279959932465049683697533748110704739352892457429255449647086081672822556963205395988497132137063000612297367653808586381456865813309276871553642910305194522703071280975190377871856954317448079920257857557350256252618106680501607065349456062162606471291688484875711768757057218320421047301926462119955143723772613534025658466887221289958098449635777314259202548940916228181815367988016263267688811948834097377432129715571727722575544501183070435114421392005343184090431159093228938958162635050084436168442639329793046552448266437427406115113639089099574719186812831496193207576318419772122606704480805059807585631439067224417803471170749304181429609943703572109084020068372024723280669319677427778071791114370854994244657276020585534426630704593079721726427578416910356471586238029718896069234442706077978925294422818400983278811274746682088171150474499990891072029978550468999604413734106713856708340537622104355898970965382458272183460681968069642824416928588147506506970498484488796710320290276118934373605022355509305620303183246288030960486265534132328426345340953006149902210634156819995687855450378805833090401911536500483980919952400844235959387595293630746587712536828751606280237287335061386317513483177294609904324881647802504023446163234464977822182500855523471021412300944164709369249131796612991575251389067397884388071027851000637327792395294013406184050321155736805620332948214902417151999479298025158819024544733975622364720800081580891003401606479677762908550587994843887702396237936371410623560136455821897754478832644875553650131041774514491726905463940935465899816109673357198631821526603554236229026067399239425822294251126964334602748560336770443338371379030129040184706202862133684574124159788613449082515169033657883789833925982504799825021392765597891646032372466294005999679877423623469030168853656325837265851306239812503037212423570529736377146894941762326686913599209123309567353099135139149487286505796311902767196757925433237237199301812521623546194148710971731407749022907168628934265708857386856310022951440868507977232963990341508422862290495460364485090692136701828279879932289393999309882898390303097806218187033264034571272205570681659064369096449556803423490894095694503159082414629487465107669209578788054589776576386555090366032495452001479797310001436582827850448697391547914283066341323409688242070866522220330622878594407413079840267840804084051116765707311234134502623233459816777351290269111489243662446723040948079985963258723767613946207424674484099725883037716086033101061686179667088583180423901207371868240006387244619245368921652233290147262250973532970186315138149789446165941222132639608763076233027657143239909781243131665856585039316572945563519006688913586777559167505062700983796397897592857881798503271275775511440473430807910840959506130794494436747551509067064119236900390218811858920672366819058005053777022798690059553860768401369465434155583411517050901349275284581846858351551306407084218122527579751368413947708756330171995571544323335294499455312018239282280985717321837535997312748542825807313254238790458596503748680267572860312995587953787437182036401511894837355386728073088525146062384025600608388704435019890811873704652761752093521032295276517701862829015324685660428224922455603209749156872107241053618229954694809421454292401537609950654216090905891740620960560701429539722694302810781112601761057747560263255824386760060356074804859717124541541309867133273297351302575134499783945131862950039202883807452311083220974262000947998978950127826272341220513690378682333554743352858858595709498940576681910105160973939871958521060957922556481871733573810561059989881970452003025318309356564855069525381983110274096252864498033637461870270327017100955997919660031077826282724367096898799985498411122134624831555421571831158846679225517057463080597610004341443579228127583491043392450645760379460388015966274942029997729915238852661510259528892116479439751910257117781837975032931322555266096944480258114836363004601777321085959393123438902633766202190705162989122894180432189050797395399567434000229388472940992651561772206283784869109172294968304602632550487322587335762911126987459606347825925776055322422912578077140802001438026477695499611763508409308616017622084720983718122726803239576657844537809535498402089761797794221768802509166568740043938788582460348291030120809762635599025755589370482542326396770345159269533434621899689856415894796459518969862938681198602193791735422192757330302661998952879257124918702159677701769780760313377411547378440692912013265919782534341372143049920497184170275347533097903159541558875843753159425897725631362898721887223073268349640250222985620452846067860702147077220245569886697633448806081022703550685415023311007046509557762257733459476034317921885902657352596748184409245388216827697552661320295152276252893271998322599938204233105280083253534278084330522537934102445487741809864515535532971245918504499767614431919537351629900178077817374473299973052725897965184817270238328838077331453688421818574999256276692698773917639497800626224605573539185756103637841959953736591333517778374836013575828317109489900712914145291935110393958311648414295122079628339459447288572522877330136175341035887282114856189876786730065318899756748715711857380476730787987162970726844438497032919660556592480370097936434953268233196799835491744831925129132182026471496315709618673665221669617697705200454072961318730243435698693592174064389290038177539209074983557954456035649134431578172823077877689801458687823877697243308460712211355082230325024593071373792630921584951886057301844837075708409595414863857198179579465603834763535036895159905111630000396772728672231157553880083936687737289047773589415083761779739210850490183792594729607117013271455758318237064161641605866284319163266005726142466527200081033349418799833260993865805798713615792211987223762172486056358057537461184206291867200638707898009537732657736078210645277407187839501686662015450075965543850332259841675264179450107960023846193934042382182587690580922435327425776990964477169922006465851448973024076543334490857377088357382558843365657662707040660616911869663000121192377476099109261432119018324501436365888222426814004281848351063901452783895936853518909367796353209785109648534800020450929235136841547218535141471608743306412415220945478227284879749021673587343138567702371802018572972468785869155273123459539565399124662788615920969104185612718846586455744691629239546911159567384226530690278135094304598257559902135146547888791606412942062296152884576581973917158749907062087232669337843466673377140026076802930187628286555007863874674537477480421953517922082624046338705341805487067007451044477447935361683507438935773402641009605817505149130914873889861748765976290514043737407764194460091189117339741940997495217974298967757473652390735564068390320172176150929628796017264338128791901084573836776923949223071835875390347744918362678713301022466349443000698355617882865676731973076653295514657444236476410191897024857308297244487276910164591825030789127036644310634530098405227835608806989191028411650938600712899224800767694241098020209374119821434203890885082415575590086469085982668679844675942257010492556597012622372421502453266159481739476274917682862386683495409639573133531729164845639401974199867095795478992498767953942713094432719984703828671936267875893528783808966130285236123207414592539883161777424954726047194327670945643292183744272775680109993839675096765914898331940512057264489012932558603284949654786507531313482137013272852024704512838699226625140490012121996877653889526355458415338466802286954279330554946038158382618541007794573614468364373967175419336922267015377310669212825199913055345582651779539266201397745367498753322361636234859652917432036522198538794375006203170903156616223846801452711214346108529738694230000916608790028314421660946892890466232073427126228260654575787079434444274183042204582213950379560657170881533628746099630363009317139931328502759972476080116616170918462353937486989453237511988105231552269555689728541415417792795762483673276626814516826401804155765681628849800912866767623266891175703126644291818179553798296008356685023740381648909050445425660952050027649445579571189345877724240017819659212036022635110454077709551265879056764328812121385427864710188560749637993819845773444666910540341320778405623169895348522858696052500537221522971508784493822123443409445768907627376222227789976419289551066864442407798045534898883918337353288110759172709789648676286854187530690312771137582031181831356928784591142273241708187160273627540717319237194953523167118787682891919473032456306466069198580756059374488353021872161731212106354155987357562226722789486409740876007702029719895087736000274303333464819809734776823938533364756507436289662923114781053698731431383783039313077303766722515586380549989095801355767231344028039700814173161398272083683767009456802252436013447951641004773212251159702803093792962359155969381192112733248984121288846802894635737124557909846787963674781020902122462661231424105385729311555469217791511001250964805937605639089249330298361708868523468787642838686765297217009433848126735093602464688783990901569274799975301219332020811408467853283175060193651441333517624440205800465314899037762703522717889202830916810379589769096402275431824925542313829832483203867186087280623256460255744636988827906531660712992439274072874098998136444867279695924630561270755566010139235253104436352109174808437014886870301736071917044036769557283180494741341850342231139158152247137548329457530422102408993510307387318552818423745260997825350684503022744536335153359518578179408111853804584285334694690057256356550566924989855333869059774247724437746288124904282396985312946490688012660115700462915840142128291808696948286531556682318457683138483842137141539222031032712130206984706502166475308499172861331589684673653135240177101396707280766043016322646033116702889499892961302690375595547863831764562740698011004322436009736870559339842224149859065986420174122370026114625622383054267465553359179255634052900711385931677977929660558321872805164572577749511529248167285871924586224434703387452957572507979311748574314275944701406061720334183901626605393269712833394655620827153717601981862441519746483209708750326679948700204383110970578684827447598024721115086295834679374778336463770569780209225889616714358460123271605528112499665153062494691699809882693891441288393229993514567190546706579390953326167749798593165706793822317878990298400393417524527213194372117830986937403215378339687791196040370815872464027048117255961932133331848461608009249710867282541337657864504755493308030968517704093998302932854802921291189889019202690424750372938633060923900371871374453546684962090126895526525121846648759071088520732265427478983852120283828597240319251845820967996912257926187124989512868060803231435480372600041803417516934323242996774464756961305044523392647162445731687249261695233157674693297008762683104311071534229183000768361129846014579165990247791878760629836846273440269515120341499400002337859394912057021442560903707304744725121583843567870035515668666804703844880985095774384323697588245956146819416190090470025641172458221350828929302303137466676891165926102214139220455156878393849572583551328537693556778655351839312785023159633769103929948319083221307266476961610738707720990023680967792571436403223831513748562071119659682970503694541896342673736443672350434663644887244388891195942428270411645662475045445892836932337875654517254686661557944842816612922953907149038554338123167626829622730771587115247466311944959474930293157247199579379575412095927277834020551529659333765099756183202608366265969113582975688174423267574809660989577503787046471164992491157098565913520137846671784106769787265662672848068948775143599004741581794031498882643300102523905447206463601114749966778213632282564037003114003197160687554141159807299760985597095981739723107355404728658545462202451939419005638099863759535253566008747959734761039295682458685115331095007931491175475948850265981346479297152602617563853561527998188574504032976325118697844960590484536063784531274683911806114175404712338279077085541962556522831040821895007268105845245702695979835174888819552352683296368645021581388129989014750895716666157637944826619994344077977182101750614422847615189225624538566552718575043092364746224833993765814462223870273737099644239533847690228274917027456066572225515253025972419610632351619420010843391767418453187814443083036326247950265734008334479070639495280687098519008124468792721566354230424559597029458380020560335587689115623733202186596096585955233055574243358239950336618668571986317604690616010930825376918328443558389451084854543829200221357050786708185916439878878127654736665880286571528354512393874885316645601737538529159323372920349037021398530658104315629135593507571770672503315553088047428532482221822379953120309680817608523991194592343070713316094031251824208116371916752373115803532451225394355051166057063644199304950221348935330136304201695237723927583944160926303084711904283321918285264501408543492469960801967385650854952428410524240666925146532972911282246595827019820518620970174016753178498907939536074739502153764459049825372899934997811119527371139651901163001815529987855997951705480373905150752866534893919658023185686323514469715376933836345211705603240586703304404095498511718656476559581391529563490972530990015935207322291694878334476353481965513681752244427103139539144045784161150684627462529383695867573332450799561361916017207991316485604313128210327070094807901867537975744659640376759638053469879499135265797280021106850120182291245570775070921223628049235516866819929349228233148057767931606316418259882170047718447376097545270925244268520564774418416641615716965219967036063023370297220426853799919201629095920245752668404869530468820089785862560672911665527193354748548038757575420435726793009815754365802705403433501298099823627597147306473220405986383601043127618284524759049017827469994622897288645110879836749696856219450644462433221893395471823220897634291809691233609437561018135500310102191585169918818673535732236853631701782020349394350037257186355959163837281420189444713349945529935272675158741444488894966396924257070572812824313151410409147653435386332010903981473191996807550647786534506859698855357694110911417087415474393648413589749645636626754353069764927278991757318243009192750851390698247722037686924176742738258335262932274319951794355538616905427667103141307030805669055103068544822053707081015608565498051157233994413706280944417799462471319430158826699663260671833425429154046222091431917162770148407903714137428300483846688115506706427250658296406611474899552797469873893194802446271739529822193672978713239029685168388618234711144579559827933715727745605221238734965585175807734625512854194742361736003310981167586204464406480999603665746433678817185887662603073120919725665716834518978824344031890821665137932442195977161550700806367475682545156482561786389209452800560934554630278928871649395298912249953973096931959759811681698483837760741007928524037094622503779813678101505120598243352544749692218474593456205282416256116134229731235515439996824260135534580443086571382557026909320511475299313875299906392162492064663318835182887558606522047442983856524413182934890252678759306153149146591910607119627713942056714333900890822616694511544972347482659538742065647324946643544644916830732076490639927760643977712468501928111194967075893464288552778984568899224136912846837012309513788461103436123372391791209210138400437618846495754932834091297511661579488593415640030097588549227032854364380949548181237358655267165430185536521445034101310238986578137180926749432028800655597280531637305699833201488650795533872428366549346368474756453247011182409556575820774141049811028679107984368090146008668225403747021709008702630306824184126221739093223899233295149660183975878090513397488682590119633802433763910068042213862655747292699106093985789453135906657989294403398827188945468491004761397341816053717875740619908856426477797726830870589721330910983632480538516600944450247607196529995218694997449641236163100264511298162950688808281542026355496588591731702834824806177423938730994756553307520015097104816339874883018020404086515070838966610057546356861508258929432088121098830588886162995030817361479540686952797594776237877628557552977401036532749110610909845484265333951160057605295375775367328558705679943433854013565606455726312039613486325007988078471089726897844612754645172719391408707693179738978036888415079063852439274490641774478359036031247356705159420889006503567807552759072100255795302362717423740433612687446394673220015688455658652077452048018453818778072884054170639760974957840952145790770627272979728191179786404740116061812155205702716028740397358363644666894861900835725538559045640370013950371714910428816057671183586012805296723478235910115364074830290761848753393864817308980372196094718617860871323512427455151447147123581328174571367903633235419475360964362046682464885766349207465180473982716036847633213475131429963812443875063524638452259390342717812464676846478861785783360627739702654730577203228585070805371842989488090185830706666896605972709094565966123173506988524597497196368078367350910588832199183814010623111517014472552832248865511010176589895661209326423425660402508547195361120387059970848947528048163960150217983902832965655026336924183975741914047363626040300695315341343468591018332592417424315904504120727395378023518558259016434839082447176197716487560903346965011576502068633100649932383296754227963254565622044754123605504648577608595971984157313049313481668435182446878548784695650587668376303153305669068004713067387573702760454948238829045164060289557965976624334585610331412049930481796615945054741728183295546784584608012868768691125719472335419270629824804451794024356721934301473342745638435736719217264128893065838465221731500906587670245455546133934732699328183873822699313674441775842306828946865397700065777864769765212631402923533490633946516932082952929055481694971632100612465676221521258773863749410867752220465301590777941447143543461037001841755839711309047869674494037251484176522880225717246490142389626967312184977727160574405829764571221629255219800078531262950846473438845061255777062405007249689511709241595427164756549942157440525619390597761717834556293362495199896150270942532656368177259372580548726594455843544605954234993885570643628630468461544335782222416324424097816513739405461889385800934561260112058498226350940566186300328296252151324832801674460540093453944337080680935843217965104065992454304443304133912525733836484586252849345862390539137636947751692802504388735768872112261149710196362911732763291241498381647790381902497502010925899557793422972600993713518564789161584637946136973648442556706479364058006767945251577192548057299222724179064022233155403815500684195586507941599029873528031904581697066518361511520475576207125609853540508807251344819397813599024875740945835681351197411257534777574085867718357833954993899821232388212290417376053675690242531957446675802730325382823534493176808785738851245307859156607134093695551170371567451067666438761990543399169052126612241098872810758948239798198317452543900841933619999080712480165260061140109513025042522375357562359575481331350798356901725948433488462026181904348028532095484800956950903003337484027139601541409056439420457095794845658888951277127035047503995021569987654257214729077226911830358271931015170086267685536690438746853088369293554495619875479336076836027785115488730074397155429964579285119552848923682366797394783672148071865035652641174257435453397836883744502722744364796406684976016985451515974525349117531215134998477154820430443518872715525199183868175496642934586248571579472864528462258611307926903291476663485930443688914910015933894323991706214899457156687003349696558214745865428199004327497693185000579144443492182546768323795423245456392911088303832621183344015567209319932049014689593722119486436127744765661041904530251261022410900117559933848176662510537895544080105259131968980282828631165068385590294438663770778479896653921340184698529095297427450330015047141973171813669916749489408013558797815299726851426238794317209770403027094784820878992182533328379324062727453329581125351296377558625780594078935312336793715270245310901827676631121973499903389377491630918813082089404102084104068433826121849752005132196174677781962080772751041215796123358029649101670111796486386466731154228740363618342589077641574206245441750987950371451287084874721194862312821619201205647774391564647132540334991289669036947168041364730183316056851403982553950772650009693379047082248282596875700378092548968293621223563759899780550369532360175405163187316948439516998177085655489148059758213444174580204087453947951725738002063348525575719452334062079793193015711421702679719913565448773427153632553850175062651455544110519924268164129772500649691933388332853029344887986311856224838522825201268386942344857913458253931639191017050154129449194939576430143085093747781549333525512996997641834688435055666331458297907592133715675556967294733210336125110690672437586392427636328469452069763166788385573853766066207283558547919208641726947367878856226522706952059933019971597139016251516988041749552155565714034049488066318474481322369872879914573081623507400981523479136400409504957135836492371728799503054615590093595890323558729689855378861050884060542597937120169228770159430570545418509458967182482454238041743506886103393474284416194903627334645637400218063740420429935324907491797860393161170521708052422684929963032050800829994175659768774657931427258517254988641917329418312345432982383570282603605478598533567884575556803337136437753264224748184273586784177374354613642378556744559073434081495078262498265171662801970109613229605742168150139019436642130525727180422003817081174493179470427044823245125873207008806948635087528287354879498500347782238492018589131318506122682521197640475861596943789991518693041163494953229955152725257277316877148601761749453057150569129369136345188688738488652849974645158170481339134174057265760361747069239036434998354438167200909358453613744598789257378317222821273855977989160123672665692837049523545433849357746899055682896501651985306230137146356071360268261506829945589205705833167125904212949309208497561554745759982513171350350811765046958010551010474608231542843671576357825515250411753527403914821055849925837443017792966498958499132414352249538966492588125616884743643665089605405077051813022743150685524754848409307039278821143693587723050645574173195729147077143071112191724925004020546559790069161217213039435454847198032271886067611895950532522233085732792689984655622740011901943164105156475483040414799690325142604468454398086739902853230820915822109508236741230845795732581773402230771797648168988082275906814060627723728267119933240063533882436493996010527701802644514514040532913980290041482434175656059377670307124212852047036049052290464076045937342859518361032250662281746682301584357340030061860642934453694807318216840305818712269636134533382784028049992254353251733659098001430694712924974975671095815874230676136651528856810599242068838372472044433114661477425703525001799579152235208372634803297032780364200315770254727923526413587406363813980684220753888083900059986602524238116319268255880095759676500278169093414834773498643112441757918944159900747713789694993352064188490008426704725555431825625808850427658596129892161987749509504681277187704296459365494319097570157215479671113494176209437260575707910020352096836520751195745555131317396023154248682388367682012719164706214544695570843114313949084446257816737029366212145631150049671078679750456846201730230870317454874456162874687069510364774343354880249666353755821312266066658181545952313582594252422986994419127610086858775555473111096663278533731103702428942097066526363572789206365682906168176804575818823235951029911873747653576348400136903236093733875933877358694387902417739226987469993021245262159495016712565310361541972476478019411393150630602577019953078749392268564687321789730418533865170501654433923252643493476734123103006630265814425652031153059499336990103645238193855485555781002773713446226648856271582110080455037796339597498845698874344209585149392037062198471276798617736120421962375325578700803235903215899499549552232166950130185856300140059059209552915333673754467417500683240716664048118256827791521334388640749152191739028425473779586484600080135847915088814974375672792379408407953550137129031252258826969290427658838708367335772876859862744609553483118514524306489239728107573400695564672147799651599173950285954597258770670527488969235955269832070646785005550970204321280968277425559005523616001012124504303864541416597563369032630064819433179248328280960533262512081955627036697454832489131044227344296149354104370435814974934763483015070798901743891100882413379884807558710709106653033512093409193393155013936193661633608957324395357214093553716243262621102039260299892002362323230883460355646175159120285695043334824838857749112865434980670091089117712469177633557048674374716618054722998901286591345004806559708419269180632435803584009231660324972774110573157957721846496120266556034542894214214958414172875125850984779120541158131811663666107124516073462977123950164285538234287953696416968251598795133112205244063177849305528584679614686851067604537850762601019596937877827817227133679907083263880196240600451342447402317330800057242567854832077354160857080875980449483313114869272835022965115677835317611449058419798632867643377498425702326805347653656154970190997655188521119284000835792114890638315050150247613505707135174104113010258354724161816843873277740367540600802205128824237861924407872783066726971896316863116284132130747381430019160666393207165514719621441775963343856210968511059644821947883839346338030583954404457802576914117233801022751895986077970365681617013213119237310060651064629619533738608726602993021195070936770511407311320759585249232346605736474905925131819010854041290816304202208810269241228456208252847003729141754884771666710483607522618889261980009267209987543596267376064694508051027038705804001617392975620907266609901631377005557491876602575296438745477429295218131382973027883958271991088235614496831867323591235981098555904565179807314948103884802758010944817706627653723611918618059740115909930966681883794482533721005722160056371069654823875327731969845613853638024524328902284141590882636217043613046521785205119782901844757432197572642756434222843231443443929202617571737948514286595056293822227719826228337788363088781977038735952975526763914428521354259966646723215595677990824164142522023392300744898900711807460825349844135057059556275395384401171289660642243432322106194550779085464749945109167724061703761194265600387155855500469256531818935039430052972187149882550963271857179412312556773740455386594172216075555649891754609492543642583032020815626664527078772815859788604023252012228114841493233549638090066859311380087204992343470400922882389767633644701285563213248899490911349082472002125313627972256968983116261661430474421450608843373116897309350370452934637424499918112136301270061247334127748950568593574118988010485225970050049091234897335460305289203343251817977292173488184955052013538842466085415295133646350857375349718788114265143138612761172892290883226312578738873749585933550729725429526860586122419949892902673253051828138032167829251034145491242179833531369093950395930746989528304713990508941021371359360781729920825723139908421558761638457056603229477596462883812369405951923684565080747048992304511735929693830617425490130819758838155425487838661573519209032988370165089850061014598224770616464197510899001504409967929307513841433024655909042933746333590045090060586206645657924760675926640420471381283943441628094260356445325749633910443151357854743976054229957914114769777522099245102773855990123718308937463211319695530858202273785723288312025077050674925800565256091751890039649909484252615866224239798849936316520514670800315889437848356574798541665791020789392540428237016685710762367157449466066633183101537701638721986922476060298761812069568635829144969887335250983189694102257309773476254273221407482696475529420531291271327874437928241873579510894756832480532739680269830432427264781002735518973680295250553192772296543346852034323221646656772789437949455140512367511904029170170806424760381297903262870956295917165631864986990787743043691507760658061792018651584993403955132144016990279425551252020097881564993996061216601460574053478937593760182969664899212277221925801452333485200215888577621280824672689988806202221494790425515010246451335202218745467507132451491180046312096817771693119636749330120622811505576113392333416711733063627902817284543723595438585139515465208469112563993722714841286398797677965309413976394832875598318845198606242073980533607676060445109773963364826898883940136778314629296530359346904566900726910993617695953539294680281611345724814731051643091104734929780508106003190807598788152060207736529007941979677448443343090039711884160424048105040535995853132943959726428128833417482538727098442128623841459026780459488381609981570072533425100231712709359934579433794805659580932385764414366491286067874878042622612867605331434400028467753715252559848233623497826378671381402471367605701248379501271654882741350434557779837433771504045768666074342851815648225747280214051475838061375233951108088220374152418790334737530691162651199498023837117528883067263330486019900504546874918953573981518788448801250687118882657148825591258476314900746254760654332922603261210471574368350672519217688788376368370937524845054716676947092146428953050008430137196402399408584026231044135517165764327770237967870701398760057378791496840119246548836403415357878368358094710792765314542752002152217416187084607967481772236773324682304190640465936343929260038348533414573859543222455850393933201544602797592558304845284479016854624352465284735575013359679633978345478740518446746871297661391836879344902898786079015315063097563792565460190663357904709982119281488244172618565611043972826990299335287881617656510041070144754593961468935599858440267489851820514995887350035497074024326949359428031777359335142846270341664526074675062636998645132169268577492823804269501872645203126177532977967019843522270652691379896429583906516752253949543064313487536327359169763231309845860137863691144493620399944074605734537287315385365582148915171162132808697228765171559375833628721751337676590931369702817833195453729152822870505652745534161875192872730290511923460181672177517427568795507312903872509348836807200170136054238236969792537385328632348842834354795395849474335775598254116307011982528569514867489476228838766669367448299525315961323897041572290924683044443078238909193073327510310080246326167162128655421795023249555530471314271918997186994317061047787443810580834634693863548399986722531859764125723507673412857454413782184937403838451056604778714018941498093394063364786869721826177986772964582375810868091646550346498301382115854826113493471956905801917139412433729098684620441209412162521458531565445049264307010407815086446871454157984176477440528516582251162623075116775497898090375633256742387468883234235702054830100695515459942810096609780587292402739612881473116178337229954220807781965138447551737590267455678471319399297318227201450841904887633398707727980699363258702742206039796686767061413563735275901738731034131149508072645637889781185468238202972538730404001855106796116346443890560244852594643038063847475127060199266037535282995233919518507966052795733099692826818654477699064601685350935424904571374690795165207934468189227041888325830812491152664372597270372572393992390798986786592690648837716103012650754886523099826759689327278863287587017938354344660486197762689502941419972875893558699362910933455464984396028273445712437364855877499403360630508303265574979267155478442578956903251550619800766079743542747408894280388909458086616040482451155567468090896595256692717724304575599328454102817619769964807057859667298430724334599720107103245372005346448964490608178474973044379801680160924929050060998595235506379589320267469098393056258837918385109969575500915319450763558638973940857679050741740392242968025216562930563251380366809557832823665719422327152767373899988302694184608207683527493593690660409876357730934703280198857644489026816293100004467442567207793172648279125025664704882497842136314747094395290742627172843743402445847044521504324001341624275731642951973179077095985543493073969474335245784829002037410544359672342512258935497116685109070614611020680150238531944785797537668037295217639746792576386368095901730364913425234347601424038145885388071689008370411578487031070650181708567853069625494713950096907757475910110851723275576132456328410510782124483036479629415406143781833131941523483093664020698750183470814697249643357427872213242707524602973234546624752682182096137236417811320222587204831845922149598386511804241051586148810085993426501585953952669487936396126123281230864899136115769409871721488107536105672369380343161213981360267239417505183180097310697362204033742125180718062794255686285755132658710721113746687451946661789398011401132419380186501657119700475683269764516906874543278659664580835484500680381457139032746011739765277601501127536934200821230598463494396261160981793983999561246209211799491038462666046239222561867547661162902224894716554851787521961260183100859828636293355881532820754671911994830396036392620008568881232250210874644980768259062147968658605427107412707019239145592202956064411565801632548433406329877595646303493560175804277233969891068949885955436570911894537831022165652777369933945730667202861668993307874314775837809020321401516038188224296149553469456205384985304317149261417823670481932885771026011986723345359353867752620513009895521771774851617408474763262999178745050481784871251657826891103070594814160666355926698482806964315972355595113351293425805458394870570194812150821758597101331586163272042117449789895525861962147358023375392483628412198067936279530717173348064627939970508373682214537200392946846402020730078236509678766331661185601836129136379490913841618525794793027633576948795952484648795933001366841094322887865937222445841622847383214394541327789775234189659749419335929963108634114556430020686761541561652103944164707294415391211089169026628076395880907516706941056192386700835168924391768576555690545234746249122269557410611359841689011801087077271201006147442450863854824865324375482875926821982466122905487563002196539354432393777000736024942254137357033017886203378571686867824070855346707122346434693428748471127278420296952986091569416663170570630506285600796167160391134783181028434739961724254440019856513206525999527680218542858264916135514027397842420813903214743801414175545049291524590788349001830519526244998922371357066391681161485908129410299917148154094606595957845786433743498188395815965743290010917040237797981605894351614792934069331709664544364886900248597445888590718673523542775348462634629272347703105618536250241114007978541867758156837519049566190298182587828477350837870479698969936404328432288886676952893453740490610709150524461041296479297975578276631640649195915472836832475700692467088981859321872284731845583341608081674731387583978379523397022133376223998886863000605797773811360450667356894958224933580782165814259070447605433561010258522783817171462906636070246241258390152488198106209015769905268971728335630822388922437197020514590722357238876598670209041528750920126979655617496783251605155618374857106199989194059651331940228881713181443012102142260643760890210284834753026590715572986569199430594821039173178451228871422249491755393812355754472009097511945974192355792058752768792211489320990795350896821646796850983723607096954168986458210313790526879951230213728963408193580181097296658459657613737532122383890494976667703278868552351955878943551676745074363771211093434684007113485382631713949464205805875506047701460843249310873725541854067899630601520942861581683689582305488969547994701758763588614957095823420765850507670060744549380357339898974106982185890183939411059912924233852134709153922469520369441378897268050779293377021636586187209626278716551502222268822813247593604094023250187289782345533338275205301562663748249284542798597414810096471270799975608526624468431779800750257550647205303082437538484797076305283946449633670609375243135806469747804582487505189851922335633086813078371211308420801313726661285432207543237179433431975684590122425791491836530670928783635980166445218619024479863871483403275648102176506912298099680459969414743399385329405225793584693322857447007077025288972530414232480493686670956971980536086739912980752787164869822282495167311687892875612632523485419512898977884327811538755591304945575450769697561041788422369041526998737021181405364837726311522951777111471218704499533146762209694885558723755075168053416463597622423256536482932090646512209808399487529273441271432161425252224889477432143062752010286248796161658746251334540932710339820433489584741390148123938839581720061257212861118802752187855960975981522589994166008605260459432083583585242485598872418467884745495670225785591695022494513342696536310819663218932652709977047700031515703983564575012902955248305803549012845914449625302448383416017594401991943573542380943291631856093642099665282597289390530505218977344160062831412386337001179341060182755458600308351344145410259659290387716346725879384865600374358652633945936804662896541983439994400554009859677555801241206540903757069074576962046033143806589334543420734682884014007313677572993746079851169123179502350665691958564861738548449117218348816247351163154331078078289771350907895821335084761234314846847595023589728549368686906619039969587959882764551921205945628625818309579612728724339833630581348024249749216358269193408395727446495631336314857092256649475850733494850596341030017891023312783440367384378875902178660287177827484092033080607840202050933563246102153658713539423734000893567087639533337503435854296116450220056481063457260505549704081430971739023905674598673212561341404367833758467685628331324794812596033110310384314677477697745926244549077976019065829079536196994583521014942990054483879197625490422728718165613336633357290231564975123985075260065702190074186318247288096770049414167227509938492644299617623709917739345623033869412874962455160038521909150210693492313163318030396883800344540912539484129269259528147111870313953202512840584533311870342881354843549372192131146555281011748315683100217032340180033848143901535089954432118505170425329048162255584814749093141053749770022497438157421690345244644042559071803753587398664358814757738836121050325983687862380510396236574462448294709802705981688412752223246008132188702955557401533010124835122464563291738020964641846496991098086698788027487248132706093766408587650907136137225196651244568096608537351895401892156559814827922456713649201254257461673188532315580549406195533342740487726491087631866504641722143820689280589359624693592087084698673534426363764149518244344760155022561229283545636523041150769602556620241454517154332328565593494049357903362236569080539851875453933953870576873985474934045132256815823296584160996950342837880621417210372987311781185939117211670406357130603586098507851593892477826598838246345150562915646973095762594004619684231361428504881460639756447165418229792919959866986953961611379311198624294139713724578938220243876504423011405821137001966471716493444491635403890419039778234798557653687250738161591143077995207232272580366031274826003462122606751982090616429466901247657041063498419024466963827996612462565277065931601131412631011063500780797520076179326947032221765223522290082402669746802888514120371642911597408747871059348170037926887119385731691208938142989421673509308656750929156047894377329316558269269775538415111341927170140461543801583890133407481908826251416037593820030189135107201324877668423192354735144691148012407295357571666693794291796197362797365847112577162200256235109696071909692172476185765572128448859618154092714311271806166488867139205391964326060162800683106521757839494650632967354446194222253414513214205516730945609450287398433021485679994272336696927875137522165404618587169590452665748439380802311972886626473238000492343125165244978133559750177030477230587519804317157926110572692632694209245028680816044594042837183809412155403348521464191073030095341045278419991911289943330418442091504223822857137485730273873532794238368638475189685189681291804941701836648037628436361856740712140410829439716890770035482147693298610644826747111075473081783162719967243546612751731782117671164671169531444666857648792364686210142182312183567455645439662363221670925850536459632685065868378209388862966494085122748809041587517351344370215059059933101023534908212338669530518959649483052259230801370330102124536606718961383088479139666730381246940794989503158527489485861802426850706409953352499941674357769712857083510345327741851777343063244001436602886147380686943135487433346459828182371984370229831483653816324685204537087344663860159938579535139936376405684124451551112812353847007191562615120277117573705469189813005710784026542550484825061681101876056040517645317426282803429861800317228196651286778774641674734600642614028317813665062634566104152453723544806273272692335687489197207874256369278259453890393809386444712395714905869794895104212077368208532180347242213253122720956869480368306997705437328906693762570675964528638118109992835941467327809012090704608933365137195096158274363156034384977981710352111329223903498977694010768714495208046323625329160551608539358554553032676147116105417575740989124188016095988987909759448728721269215875638124767331539277879651421301564994990219253555822747046518341781847450773784187904889303464921772360962762341557586629463291047376300850167453835205777603396964250055690716369645984119770429276434675002301782961443541118943678240704223044316162527107607162960339452494262541859595042481882779688073385448459846449141047695664118874982537495879273767618279530449532621180206939205341510418125592434512765231287415048168789218708110717153379431751674050505449125759191893447883645122425928342333232798247578880405016153927947677590218671160496668495400945812008510290270588216331241614373357214519962027217403493814533594441122616687105024944610462695790051674956044793133649040232374213372803055383359024223373243348905721239393953689245311949347851172092158632866117974756072419642693843446598263728582486729977784450813293662016452075156282511893654949128856049532559285066879723932615301615192756445014747865729454147665499083863259043585589691050235872254802929700670527347155486931235196125997712262782621145477168711145918163680625797145550781547392725784822307402697399476140658895097847337368674105549704203732765073667717858604155844851390432473008118415106887870522868957037144821368261897977212441715305877832318646838618095415632130863887906645820109999008909615712920806397688339276633441891008557812357559819058815335813421306138481447043290506775114134477732116593246224861665942836758342176175124522840190106314605073762439809877623482261284358589130335698499147806454140649310332341855576835111520932250925041987292030466174953733446011935989055931636584520034359652024273454628722877363623276254467996355542886900140729096231146501554686685854070280020178976376301188994163374489118797676811400152226077507885774630941408287624265398081216467863621447391988400139159951985745163836955101985735499789174008253154796590394503697322666734969318677062964783812119531574206603446137982861324254026375758322556472876093600137882897768294282750274984890109542642484748111798890603583962577995114249077400862886590136939355272902833154709878226427198461069616530009571225530202939282509318012669750720431810828350809837445584055747998094872349832961058572116106546317689306951777486194604129254645087662098597091024209191944349286026925175402523234690301260906239193336591127224056802384959523874652267939222253152823323187799605043150208709561674666027888301430574738758732801578497456130596158094791640466743115854817497786177772324803707219705161953586814786253468847227639577756655144526219786582424486481057566848896400727217359065045578255118706873053619190596037607896808101284146192397348350297306155341598143025332864097735645141947062098271497622728187547998476269771950808341365938816398931603430393299126303831498656515457643118897069385721381810264178061515707222363689095180496805308127244000858683705259541900432879478864104500314380940099047907678002773756521365954946554420312787531794171122655574266892739644220352339085554191670486322029956041553842661749714789221070374570997479995434700267668832628597544884363880337254615220390576367921081272875536621499484935650617015945729562941963584920764676981198895871811129374713628233608689026149942044950931273561551920564145243464375306859852464479200932263020723263633715069546688061995576697811813433274400664837804385975327680244393596520019883211418949450049837438602360524484093081539181274955614660852735837075590645342109271825303669737496419608344420015832691540739259916513084921886425005193997193241639887997593379439492631661914088309664495027202522905124956803632326268507374262120633643743411716180631054860835327614906225315000488892884390966454521424387067347980853843674901154040844699570999879396867776711457856446699783930322009913384552959378754846824234167426059432489123571788972791611282666530267784372979289462531387825185392229019584020934546780390021040475675242609581302254120728330341170012254978354781021943268758271499879133442576791217163576109515887709980950959925259831474964519066680598276730144772480909095923659710547046491725851747513002198187954745971139734654827658883900118665827302191769626103326646871161089543764893152939398410731584210981470016242089175433715776090772888271955411042535334677021598552005737694329229459769082810350183461486414896478447910379087873365726497776358177054516012380551152278409139960264004303423147392675436091307110365469922678305437276819532534145725076118663120111454234014118393359939345177062216448878251932345336154887432123184665087070222236229681049517388813685628935261445261932145622026084823790020388335144550878436110555377095860798587652909189411659307722290757069601999941920212924385652207986514679275115825886477327754990255124118756629411009747975784145985815495741291774087458622629357375861729619171467905343508904481956818580732376055411634562294454719191553365857053683624367430700949259341909586839910861331384503570481138285451037214539608229851077345364480609651817060151656102747536429356264482738277751037412739827584178693657918420552935564120396552709528676697556156983484071536119171412700758229464328043704955098795082005037099114588878519301311048792664468111194186904423213498368875454078880175812246776168898449769471905390812612737041655531913808914250064090243033432123545951096573355992675735026987036080960498646113527514045266312195361266273700606985901152741793758587686882373972662446846983501767315175125832190879976890192725896884313101725685889799695364632803204689096969356264334076097597374431076283118376721384908382826952674210876057191765265623329649557914376895264438540676594037358058056530411995695786469400501767685370217506832862048154316512969026181622795271210481566802820629754957281384773259963765876011478235108930854988885458008117595399868246467910675894256569994716655425039548581726605223497316581787113123905924989543690646274440178714864789468127894055704860337472919780049693487021936843619167489765550966294126419628539610349386335247969404411593845561647441501846996282287406442780630251528669850757064876545834137370783286252759512942001736998416959048686976682563480335835161570454697809074987180162964413801956444430571525349643334356433152945901927466161564656020659632136960440055137469795312368817339127194239011892590145192230722692570505131961693009077078114121292942862625273597714253108600295820968278608740889221086008530010015139738317044046213385885097429909447319880272192567668440181333831262060990198697462712085048838481825217602759897868571473678497696429264430547299138418319225682598085909646250453410157245910255236826905044073680983181806925399006930500915508274151000265172198719263751430247862181258931111577729195602575187949024595567691708428074757321269595332609275885772892338198250085377252073790822327419646093810528147035832241329452940501243338281473079744169158957506315266589955640102237406681274849507743801478144793937361704285161284558532242596723600221098900918148001447841845591299346111602707323812203046872095958103301458088234904023174633222235078834514713661755641615189709372035935090781028468843487558956270016101919077497763926836255666284446443781053709564224279011343754488726461807120247906878531201849516388902932507339109216595973107323487126211632835668607322440031919888456973365718961636250011324274851220356119423032906606730136692637645521446793526061809526179753072343578010608225010156583588091509510804931664762709006886635045448757100719191115321087301859973414131366289901915419697122191379106219754073872669042463004040700989211422298864168342367877382490231400422487935458029987617952055651768108525613601388819347680918971660978820513454039993292152968556178051506770512184469535747950280756777201485332055850192202400404960685430720132625923625457619956678713347625128521149506251995894062395804128582153815466799223227629660162541476463230033155255965587332738872447627217802043347993016765330997176036871371880016872442282998621202619947189889336269694258516879069093941091687814781752119792807364392452264261477890926142852609993882031313140151069004679744699010068859491953634452876179331653241947250687504148612729884980178971433671612443580326879927838893371624930352236741473319684963950779943260274092563001546135714734311287112524861078753249882018731432696636228474032338600061592104288914553960294549270179512074797489173862806778271144310718411692300210172507303986286996294051959920913435820424903041186937449735314586829977947416397774052099862897068554475596760598262486524728724447470633593680538973344758923120490202750592456738230751239463275130564453559719127546072912825983112965588572318297204696432726323237371566832052935299910624070128073084951931443334737746905209449836456460483069933722941662386959790483698727660556697727386120453167418027763851148180487023190845875348565808111088580391932716095097067253531339675195519276502530636342442449701733131129925520445187594228427129158993908479187572204082344411084459511277287442004968705479909622997769769645221061521620405275946550681056926660293121846862465766709303122133193643069628971620337268077640347059905922743877277047862528584917930959574330616192364977142553487821646021977093120395185095362117943572102816258617605880107473686917616412362119882130410029171352814247047336579869194548066912802894057085395381179874942071326111550614241078238181356859035306847264745831424039692234062477314231337954434788042292078234916420987519839191656744329305067565127069115161006004444043303694155953187529713023546481228018614212415496640302370074392362290237866917144430624652622763526794135545126475895321921178435292833600166050941369051508714802929523877088943973789613566300589222193159902307311430637378894336251622243393085792270504161939419285566972867830974550858967398718399192460952466771118536673771608696729052219013702449345769742958484458588434889971520942285595901903869621462447202644344409836932728686175448713601625538363233472131625324111143928690213236192657234544306941187942795772097492097558155722713215323974683173189596396539529011738124347733958543450099463583938979671854651370135771302139157944412205853558644436942577884928906336709423582304508640519946889008547644922523035963805939795797512249668969884649685213021354304155677579507436652230923751731961818931872069149196647476167080315113770525838448404185532601664298415827632159635381275665080401438969012390456689243783004866666458835552851234236921337353328499427183671314419424201398727198569894443319430860077913476900443965041657881182194363950587138944526113061217192251258535990785117836394815241227634639821570942764784434498986740801683554179104207480043685820044248248880109035252226728804442619304241183234219994190926927341163246725416444928285049731098847191279627124800171099728643095755021561819547646854544862062384518640828372289333526919104767555799646228915247051996396133210092348532126564873609814076213306858192684993238436232778663793186137875401105947333013064175849220678553822566368108778044266533097979184179255591547934543092317658913849623737362349532330414848169123801873778569259550364721774268377215745663317247211903037645080310850657680013151762291689129142413275617608028133456540528865545736460567116729224856820227096681657110839597567024502479506379790223392604244744755800429654006310745675275170956084579522758701457329560612729007044557921405523993627012861190432547657297404470784710474320231633555371274043506596932028839151657655835690493424260877712266302251832666070076435602452790351342502084282605920099068710458448747488153844379028560036864167458668459807100408846684250932313097648703392626587490413495813784413371140252592552283393984040414958633756437829278119999934780184100691419219220181291447083331095625114675493342753184691364036680592601262602469728212015117574994552684533688617903396685782338058258125426493816922449296925372197183629663299327368439613460002091210051345749130186328938803357837167573854392212540502940034823760112525617716604443016376184400795027371399865685049444931504897178055862480629034567319136572007524996315140464618632234394866520735796145488325275326062772349436558499014325942224900182640129297182839666143190013628098681333862528622143394358468765736193780720244791867758147366227930603603388825413271239141539412311399189887691140678029913963861067499532984670216203930224375735383120727856184091809773571585245459172681111496855408268412216205855814926689582048036803551978797964496079130463220823149730829964567374319877108680147931781939545615792380604519165691467920158685720726894899104421361920076463141836452491613760290091766073162996778078312190916410458937574388560004814136289953892480294597806733486148828893378364240127773790899365931543647592893255053021378128871009152833797456466643393337606382127050169234764813001537801069741474733413363439066891189840928771450383452803429720621671995026974189623418833546528212276974554341619122586307435761292862246566921921538024286969294006795234193180464040006653894603248776448011131205557787397199169591898170652697826222386879119717784326147841585198704320464809390252671934155296418788267970691657342571848929357665374196936944815323122447950875693290065703535417305298137367986987394061773309915126715433624696408751724259116652065030311351557078480889030854580193981202087711233356439960936134836553343362330940009289003369949335496489694891594856877114533763227273856132432987825414158599691635776870036610637358749664797256532384836259795462423268607116671720486500311653499593981440506009695596878580798163749311795152600767848530883888169372361887309373097274535297666610071618138225084140024017984469472867824163571612290153015668588093280389628588395904739487963672960667908714286897609710046661673360092858725756873304267124062888955990226852153345612555429294679646737247643300394718211097501487638228591873450996728115325017818947668448991216739368030689287124548100438142048802898093975599404341733959134361603786147130846689868709220595841316209278047485643294101131760133404311511383856404192518807305100223735709948892352410927224384551974990052089067923119512350108949105963630129469175020231132042047020371638901074623882623828696808875432316327274013649720004521409507931813684122086418943894779839696374937976392252943245635210594846901093094571718176831133694390842885779005821627283030440168980807792622999935548812178879936503397105264748737539127596971576561070712731643439431352872822238190402733161884999159825007214867466389711866012992120598730706021579166757881824724411610338808486750442014376400894352244287976295780060979829852905420661142725578129989606960064834123094093242888411506081250364128662630756476976661439436560310421297609415658396866140050950473751339793117270519836016437961539192296992375717269339814488719464682720008066983208652072534652264871742936646777149952123676441099090732707337788825470815408703389438188877623236661767682518251464671038891092201167686473534435584943411921379708376372019049874412064670523780582555375015176749728582683361795965325134928420458480150340511259577432674905282632963881014021945782698553301478251234941422506056324381490641711298396351674794713385793768560233071349811145322507111266870854894408587258612333721760631114130214658755899588796994820754029789303467414324780060479340715293844356085734706472828051620901339033559986109035394338671230354493854528253030178774903865503042337783726474366489386402285236595419670705901711583881397903463825059206642396942152055035269210309420297482475525187432478541084025036465672833540410770618598838269095143217237881118571210389333134717904158513626886344932528386814501088450901746971472737988912248444751205200817781219951050171371177066001174433312669966658689938114551021981311992589001285129867135642431711749814677695739249090318213116359790189112518915049546540636484470861969000703657295417722984993425304169691974260618510005879899316223927570724626115218777496196827197326658944634651125279630751972303762479536989169078431026367870496131889353892256152243935683173483853326393076111715691523902691717399995941701008145126604837463541715343475163354570603550587245947034461407864555321795298725123565185108424249818115145792570624418217775454699832311838869989045873801537830759670580782857976400864422321982354445656544262666765849237772890870259625950569744095621465501118095461798996033433862315683589348828972221365786840849353848453153322533795180860281974822959189178396805168647680622206526736289369749370393877043713561664710053686288955858722148394663127593345085092751805213300603228402365630426911791814913332876984195952921407230141949751969076246215676965851229728578913068037135280084618091794005771251340343672081969806819623309305080983040291049887475629622515398342880874079631645996730184082202161130019883710883459635313451446778168212637928308902162097245911889045374385785006554172507488219956390995158282817690689119979913107112844845155228212995980588895745006460082622997686094595566031959015272354241962285658104447775064471307790442757511363676839845930488034615387017045682558634872689976423983112057993667712798316667623843020989277673274200874737560504301270699278177411648961770356500372294592637795597700435936177452131364278421625556567726663032983207516874573427036932445923575546075401063567836807208706993869395997120068346759099222122391772048786778662069868546532133483618479832670772842222833124868758983086661150775613939469174059900913074626157285812803488908844754773701690395673269420080683189294740342386582710531865060842976774980983273815370293474861415878263603965145962387372860634359234691482750986121151526275044102100927851364348094969502477546720715543516057702687186970659650850203294543579199106365224215615481333826024780876854790392926193106389923086736088685259771127341498265805759237726776822593249241217153418998301840234804112875865333347533521673516379689418358459826987883740349937777139747521414111563257154207435060632657391860581333834712821067254551614700168710888508907051134543377313821200012986654942106535639733998385351974580987671963666013202103016027402245923320051894236728642011319655935939130392147575117930153642700964028172348025450994251444972269265197478951195551184555175567067392367941896357307739515219186786001676700431305364661729013201074073628743646445780132748549714722216205552229654880224141396870314663025691541018948232769842950516383080053080236520724354471780699171416146930588461328629048743247562188963957981140175314888510841508335317224691734414384909316670085912412882801953056769733657602045383609250010418488881861798491293204762894194921461684755300709798525232911170901302986892984344641853697769128435767794213861932877476943782624295040367362454345137563208855226684382058027318658052825267425525299550988051143046118390942674902315996799797490369602619041085809887954833295620956605865482200049818297358381364716018461317924998120598953288719605703570294014179554020875149479868390469879667122203161126436585688097464947670596597666897508171497285494275496921463751275207721600073989580532035668617244844846661340326961256431594855139390557781035336343767032521974713954720539222294097751548384130461036523678642374532726555104363550722294476182962170532555498160367174805890423706266452529099344751312346094932497043089905892162743665936508619600248403334674768920018566704116193610197882593256621244974933959856250212783767447060480206395197576548052254403938910817710498089097554559428003909507557231629062533715985953345881282601371665887366227973264126110076945862010957020049540970324982502592293411601262943098226444387060923324484191026408436566422413567836695818429558078296888591793203797449172499724333304341871561787972059594884051264159134239298447589975379057187031672982069712278886119159643870469844505080666316746761245281961437499798645338471757430443038381645454685029771605732110361694343928250484868974566818435271373958407064905421387762626666571480377630667923834512373370882318540470517390717327765734670707361085077273620522924103972219894025735227145832032295103712378445550538931591959409114732545145112805446280226304503443039792724884017751239947514088667590292057158093563268051001000635045512964179816172561765485178658776953245226702979999269671704768795644647259193388023359016540607462302649721888219846552118879186373264211636795912643689580292230183423695511375246137684975827281904608651596866913681804018275846478622677799761531298493965568323177664362458952416436499855963664311205164505714316798644222122952930535193240172486123882880307656782246936260007873797020242511611402161261121642283227938731490617406251349064740485960510232295994331785773676702013467782232347802995687106267798060363184694343749193131509738480668283411779179332956988724213048530970153947747615299336813693115055679876673290019155849706725212345929831074321544987766705533499351082729495202659917670500266497138846992392213692655469967026517371122687757958461362796652438293059323933353894110303407870156259423763738015823276118978495781435501705256001195219753262414176354366265035650601905890059410325499475771534334458377193846313736038058774443066999992982478194023313978793255299269186394746050755323590819648809428892403786681262796782603597047278130790765160223238487522460196173446450605611696405921514729955879583679098128680819142418171520037463925404094567222948378134785177819635907782230630680233998376383419951493423088784303544160792384684147342883079479712615542657024663789279963697553524420957198986628133477916724521251040615512264316055313673131721827613490635921310828947064715279176741419326385703350563668175345103193428034630260237925736379836432415692426237532376442451222448204515701077017371410140368721792038490534001318620434364811677619569060998374387711591976821925482383079315739048118433211018109180369881357812669345200696362232952763714227717030752401484339998434088274818787693268565473641029263620535568415580736683024278175868862633468997507187151175971748788897349439446393711353576830891962581495972269629877428906998969369350834027327987214674535085498605718791444509173430590729668657046885871127872526481706782385973981085276158590801302471743635491333650712954715716915263625470689889365327120740750469912374841813654558921998147262241120888350482619527306926657211576187928797610314796176857880467513131168173745475161113627740469213141328319987189361746754731218618392533259977316972179175501901626437710545969591114593428285784178994371286087383318479717056499042108085117022924364233327801789111770467431675923167015815549643895530525188046696159976555346614982979360785702913076972812891028815931804971000761515130595189712098945470385783008518948783192063499574620723374412634006447906301057271430778743288106703683766160431093818481020141194592988764134014906499135395964244543454856837411855373144094710627768775668017912829168867235729645826230088145683003768108870692374379740495906618355988659477477511268875605248113906887734931042024854581892913340170092015489249552364735578691544258680804474431216273686773086731155014871855475520715182640931856243642601197223381117390625541506641268910546265823491652004024108903132681968841135816397677499659041649077967089466565926057290726342691121181686493270775607200532536964794298082666852882379870639365304139461106836120431650659828153438780233552711390778082864969202995132798494425052964241522372515469714946450940495261633536604152779792291521934548774108188269317112097943660051102854664597183336741823488494741631349971859456449816873182860312126210029955621646893878011460180011479528343048947187423700458028118720343091292115560411259230424077986483095065527550071813963076109373326998439335327170378677222928837884991734239313200499716771441686891684110768144232893104865863519252743819072076004255568715245422161034980183453085868954991509455821142057587607825982364898690987138142079126166268078761158869492186750680870069926011388311437878997280429330857947966891074004695605724148618984875535897839718908721071994104123402124452863477717325534105138802100742909770674112683687381206460779891265088247266323187343466231467563134838454476869633037391314140519406107583832601401159993715790020633660133248080795811959940699800562637029577535637624050679229850968261021716344092933689142732464453900551753798002120201244706536144348521983159771036079569175325015782726374964862575879762157752946037057848238831420246632485059628920539708842006619872692547896888605742347150365252455019457338912472242841575688946988964897563011293554481683227988514400705072555657192508586664753013478528392525449027439531926310332301408714358005913454310910992272592335118182402808222520485372926753960296170466612929079895243249621265727178752349740965734909038188464663144672918676389065990491364778215720618032770834826140405333950515739523563959681020380039346716392170443213916256349818628755876599029634937128840205961848081713463040195298249532830363014910526804276546782170492597284242181241686086906243827312049435012425122349257372865354339842410221168644476589967861475464938496764290986136246278908655011513691993335610564975732783417462580517350363600674617176458288541856814205079754991799109117849930968533318221513397544152701639389272497885046762497109767358239860069568226019408882294865130607297463795223411417184573050193196457624952387174063104500411864773938044431856152073947240528716728899246930463799886300818798449939594041350899889000253174496316373024893078172475754166016095824292567086725178941991810558294049326687220637770972455589536036144035071661655535100241228794063919393391823796172646146094409821614629680973242648076436841421580649309309716746645508406294317065151053996595561082628542340022130827185263875010118744487867322850875082464744059430115202100727764733005324167305152594925650943971374306470136344919770430587350003345138070467697469177826136350143743794825600429172797262149182405002036134229775502594647788963497753755644880094556008145059268230461091834477043616177287176559512924512571516102508242715374446313009833410178588439724884473973836362287326737546567853586952521539342597765724485530373753728017931953033150908203070960056815936561248590425662633030809490422059530408253538566165810518707807542935933796856785239092081231787400186903711058569166651859760882091106760793363526551419215632375046561369938558729249018716054291232183837335460321528280508531883883282475926429077956528991155721660130925490929363331685013517858121799233124844725212109954084880023897302197122628486432824397768694470169276896206305366626228002548652889051176329014196786629767430093189063292921898401118856575807097059579587398570231633759358933161026775503524655726378195563728171303849275572222960518142661107111747434475886911314687420954645254858790558741239288189153648037211457476532254089197992969685117214173198988741578251579605024945707439443075037059803165841297076425694170279506889844676130667759169435677070342806743251195350667236677369163464947552072826848584877359542546871564536766882143428236614479439280018986471397597930979042903840198857871582657000051089545366172013595772296643161368786238991028693841676744717731243105974760358562650056364570876421772488757366292590882622881925390226021157884927349295513526202008603121344551191422394668828639493522219167717201986310863991893894469791211299760522111914616205374169132984456030200718391211380290979145298734364226444201392163208622071568032006657395498252613707766288848205619150398032546133982000406215591815453084799701080016474824584348425513720257043609497229512242803107175508782901180352818265925657890188489221025647183384520031323514106593915990225256227286972190837090492032166280972976177853766391489138784302542393155557295035982715865648683956295998191413090184773514898226996613909061002079783001196328766852914563334025786438144852305469561440026251859053420184284713876742703312119614526824728415957390308611951963527963456631929465421992974560136174322162376979734233003924204110046242524077927968295034987864734135275752493910097353104696461492964818626519696104233963814282958525139171661725480057867752555442126021379806933618840757700428960091227216282801942386591678523846162602364492358342166872369843869927460986060797654968139778794516550407507312664976313392236764414638065806009209517939467491835231016924734272449272565732650434207331727178669483788087044595848380190973828983959003685272379943994884176433734193973222142756584615960176243428616894931187240596047093273735557030399437053704916941750808383891365972106141543501043267586844008554734044183463649066222757869835368061449738102389796245752558871597003609523111703339928802577215339294012577017684633437273387883440694845849441338395014275297722533912187667895757422232915971601892866047732245588349879517175347938307890783241112974686968750678869780176954178747376290634073875817299104003410251399939375362844857133618206929802277540395807209946496661164180219099298843173693943010896804133475907255562497482308480518019197159251134906731855214990183941913200571649360882338218615679564677199793330506660564143030380159719424340914065879589777923835594510863728065198305645343646623347206504261101350189864082118433897722284639267665054173549182372176181731298143913351172316045858462133171955382365089790785980726514348198888270802784570885168592715204865036215195069802514493094767935589793251828319843116646646511908687287211010343912077906864639259689355761299319564956284244342323998522765506884135867142231996345386164269425739919864628645214236412762081255991636630375935042903614488265772165775622325543210893499040652141900680919601134853512128877668401398496990851907080783499071023718715145263548617825715121419352716755691159540188819657710352638749313883040700281582856674837214256321794017642704331551481253830101058282298431390866512478803796228727294718511203634992339057906211478324590167915789278543825480754518194058152571117886110517457555979210379985340150568036865466658083782683497351033281873032649809474033812496438785153220960810768155300123990957721969756511936124087877042626668246213609531645123459322280168744803824166287935093405233860088789347060955902913033907867989728747057440698505008284426943907600510767941848293346474501994778317335535141426343726553907643543510935334259023394424652754970703250468320782200600427041414266039253353032572315588039524163507359906790210790197109695863209306561766366051537388532119958801037785360013800340019576433178461655943532899389901328130283846078741238618115940806137380678288445164118085394709226113472311509489041541848453242609372140174033448728310205702032376244565201407925924752202948827407575939939471684119639737074579255262891935243338528414602775366671000910873475360115107095134952861648599106283594978825266890521772147647789821493870970765394797015504012935859724424671857123370549747609378343233096967705374353374500738503024727218459656788302094167307660411127895166049316131725100064486089849304126272398960965568134108252140752316784961630534753845154027180016856577376939488867407982384549959589102507461397599956887351647953079658910109144938275617834451125656922332206501574701904831019848717908069351108552036440916648513372018160029569069770904075979897352815734736052724393536648892041265121867946345234270877786904020976430981716449479643587723523863111417016862147786219756522111151775343495025716614695857612640401348830205317026189650949158438825081806463639588610599508947409242487767119738978931595255797705753139800720404144888319714539650747282013594525477947974496078327217440966445569283301906048990194711842937925430825277243601281058475548316323311996277125757435908060174080579253119555719711052914233493297534979817903530432401051329716829163860439874404725396406331867012263881015616423901158629475933856412039884546498298792885235698599817642695701142501623967552379456227762779317877831266280413232083126957822417853694660876755006581312404434955923311666870112569444081035098720380786365443996001178626877938414036412637087995422769818776706266643033458588816227616431763122301072844083626906231997555289242391576816912643118555636252039397003501697065362560281209924999678110874386864879220363771569951708739342215719540493838008792977692814216384098059285684422173219326529735332379827404069114820781826237142247616488224054567018215624395135742365603173005037961986553775142515775827712456084212821111838689283632877578573235071885554765597818247096626613089623198976960601118405577779523475854851203185645955541214346043209100719101039822325964727321406630884669791604688880553685626641865348401507627887067391980570392496468008892652847087773237733271605047540170621465287139770148442966951015315136763158423918480228066653750351264338650775403236523320740520756928963423640580601091342155783513873141539421434309117156706145207080901844557399336821507124941555870968836626101753901996575497688930914475907617766468567723584424087957062767706354287804554135099640087011496965395487599145514644646180115797738128639678350795596679592164505430545745861934254563130625639242385283344633391540258091074191967848557578887364581363696910068081403143248012287397289547459977222412307262371375194984177931972218752995938300775012667554566109561909152757593831867831699996403036556275452332727457797565857682349944647923446981493494301190119745389272762067039764294556834124690698564612965633359221329388269017084059598641231416786522797285422075056381417843882996459872949412423761219678416043836843140602339639102292423492855490695143118341993353552290030056464634649717243879965642593077094575756142355074946847078152542255014633314242690998532150225799724790254927599979415652914123334680671224887960792311945168622773675174533301879933262159408953419531091943676543748872951168914056922709009803193546416587861131711611816658595695010931146661409838020464484209770428697932105676510384661335753251574884458703933758341255164718247574463584814707500418432922202209748328860559261368192450698224169799859343654307518849742074988301403233249218420004617586760009210527302976876843317925105385514173681538302372930686358433809164643401802681607204453275990382246374458767040961904737135900108670012140739576298391325207340039499028994990858243488885043957253564979562443291899749500544548398780602927401300160045307824926899635479709900325483621650573196533251674379940057839871448856949810882999832143250829863156455706474453430845179615140509358840816787570715169862023139461763471044933735748843858049752773310215406022928197933583166406918121044077274304807742632365712151085189119519481274274310413057384937282933804342811743375814061342703099174749703281421369614690761612442405243424577555209373744192737489177068722775153165224914111361227808736485190270545290387979846806080670319257801576828554456329105101389999887859477933475070182827078325810229458962092176331122273687390411094393477158328031138195649812111857544729630886831422673598223118513905988238997263250076651629541726101608930202419918541310609637714960534750281790766881224787060556525858685065588263774778627052756047524424596391145561952372900536878792932574135818773022604244326708751264242488688533487140266972697520883890241399771280459039729106683540209641275477819750928387225250193663888170914347429269511184874610809169281146318355463146297100138829862137432530205105867964771091661169255575803970294816007607713729360445695036760359012567920103201323773376114994907455480500252565602326389372412718178543823418164567219561842627986852529849104520101223247714384535040588758870859636727751108774168736468819494268529433889124473596262248737181098656032398883256526903539244658191997000428483535743618583999239183621990524796952993739152438748913104001877992855245502999321158660007526034455866470011664840277842667707829802680268966467040644241452725783405580978679412282402618553817187349908055004452026558394161992246428099954782247894581653242009494084558989959966821281101608989515722394522498337682939174690167978976218573720194337316602241605967144548599294510193938752055700164989346205950723423117891753048086192847269999640425422007412135443540499981252915214903336115981852569901632446900179421409878353996421419572003155559505093490473457383821043298718272864511558552804130307932639108048555224669952922294861452285603289608567547664308534189168007140997260422182283589033577382006127938756079042903228722405029043059493571724569707572116559852698002272611566001846849745252105378756065572031614052462160538881603493212310988029296307092419964960751898010055261230673778650055795841673484393324468801462453504753092917608223023260580392309493605535163436439166919449557941590437739018558832250174219748194730946447966595025553839576511116128600848967712447074237019545233357155929777122230864873798459417549686040947725936795738019801261811412548427448482672424160337013474082522222195302350341928828106803319609475638428292617116831403386310660973024308500999906531010866246388447424250483707486107446056523931677165141111450217417751215422320109985778375010184299635738637666432088458084622672511745839907791437858926977124689170137140437838895425667968136719681671683512222464167694561998260373521184348443435613598992485378407248767680022962561349874252368021052398706937581296109490791770110594710079756344691427910327382926219461365343632396085098983180576209276750926637544690676641932673443093972816362138509161366011684908169589322615693118366673672313348187285265845661272859661407137235028027090913544603543908569042379738562627272500123077311417214551581434336032393578428405548370971486978864388942336321907610037683085904277682700007408100990367906895638837542606900762192398237409140041103718823855200437075635631706799750501918688527083522991518278722312526825532752865506433143240138308899858064498646655250648118255591940885089508703939813127854208025957697159206241220594176439667137993259436286160943425016302103016480630323972617709983688343546078988838416030362807329695316990758596884921103103555243559455997395551645939572818424590770606026301105426082845399890695847469790003748559257950448468168593779652383613456528036810666492338416003745381070816282626723190789155765970727304089086459310024324664955045404970409143599240793103502871248003978793817373383025008746289634376907556246985773423338766215960118134395785863338734030468248742899739927004014307027337881741679216463647906797592223486493634820754958480743183943252774674713369506126051884207307669388752703398793815247508184347005563951191231546253164471343934137098024181529456076736514210865742100367050333643047753286565916349671337690099880068788313454053766329104391676575795210306414229167882206857447229518478466074975419088346845941222311830088368331376575011649476554826109868201406393185844391173814147814102064403936012477832162738293607257460513257925314249427444628301543190446585296167323068136600428333169111908196926993090261216086002405475621471424105625912297042561017616941711174197959341169223142668993001641190596812619610973236475011258235094090260228202309670007021840546453992914895407556650500951995376904676465897076765021765430816145063242032122890103436253132023609449324559815232771564200994562674475285980424514593119549828161592142224152908281238190084670260678911502199451737892482533335164432747514938167462474448305480867381941934542385931247602816589088733653363348315425497576075243331637153277341685657856299863092482764764518952103050246020286433800009177764269431986433801079124410291628361633003487130243798072702794860111281534604892007076989963761567680448406148951880093170810483508551576660660542414149170748249154916460605265259998990378347478940390088578994811070686695357824524279108389754017293355667551522541947326417071204528204573451740084856966608948338748440344056591022709833775108908383710051958443958762934468170104874823045727803822626668979222457336366408471993588368987288213220880747716317510848104200080035291008610392157887697418698677427500325814298450008658461265903307586361779159890952010627050575518330911811777457077495355709544092137200528286684462934117598327515897269839397704481844841818833339027502543889548969584693408822119873587283512850902377276920731546672427330600587396707439465865082230746745972507273460992049831914484996195965601565864690763256875948921381559559868449279482720334504936258893699548979081698886398664604912415137516222484224964588767610031410290349071839055428695686942821923557830652713005256365947210482218995579980546260618784910519437640751157504303170892418256763560431406672870879537191830643157891135981921052250006121027669276982341501462759224735787267267181905833592805426156903200268871094128176948541741929818285554438010814037466466727133398604503800418001008520679321474212651274319520717061535611619870066423508631368743004926655360863393201419789660666721837783900570524965986305522507865092935826304931685667947826727769629252888416036934327071662094402402924933875353704075035071165304453067141339983710282845047910290314053826475731878169246073249822449779797710072572449050324360798599219148699216513454287405139517297540251512516183479319050553180969387634130418468396030428841834115029473245981122262970206566272705971269059832455235045954783425459605868669293814676726699690626922418151234189265280375987031236122922234753106087011634066008890224955964057784057350710239665719946229319463033059005475768517996045403383919476892900168291134774638365906577845719618058725592740695100227054505168319605871188969816125759576230457074540786908258569446644095282430168666461088228696020123771899690082436637995843994132714448482011303725661273596335914604250359894889237640495321986155233876609532225346366149383065639864905970010796005456179499972175379654672482749697048968263328962862037947859940468352471479584822714061958742392085397461030107022394588582838401399158362732145846764704462125239799758506091449404792616792410825048637600505486830715237632671479398571141573344328148516837842734190045369595052366996878683676341211799877228898303618216893653618823197452163614976369126418045355616832089381877189857994560743203026990403171524983761781798082154577884976107887813846753952288801567736384016155063136980851095242411808380110930537013934063351129384195211028530853694981116912388235875672374598384232822449993312327020371529443380085749370066739170914680953098196584856086743749199794943265400427212658944100704781111795567482847433676235362504155517420713231597321433909685809200212582127964702485627998294735344319509723177534764168043716681805644894995967684051902655560756099474458159565723688070114671292591507671826274622455117292327146450214733551299974807137171948611478480907114318967935440560121201397893109758024606988294512015484633237428919912242062270952621864709996086138102457719389937936310865447502236966279221461198345891795051271695035915828001064685894354299598077210427350773777831216555709645549426549507736183463245333396625887487900782919353772074992150256293947322770267129743653200951496817644234953290175193517626614799268586215938998227659295269047953830996129153164997807158866806311131793180471870759074364052328205275236072681648156172107210108756593121565157049664161267763358813540368060707125813716444620512298921517354762347928162411395222740808169271715677010855896337009185405157526416910898251578577716350121328743915167822328885982421677487453804568256368995886749102620096398980220130488532630533596037302151855934440855508656221406914757292097055745976980178812967893096448168989524397694212518139032849853464899468309366859822876619530209087778992312219171110965771407796001466775728342377874143447927394174038451840122906338949881758728204887148216022947945779739869316488779818535185146115231336765569480040606624922643975197600527465435418421852971077773548045794118760073905329846588440614896556763233330227206066253422841263843664758927091346569776209258914979673807771334193921456396378952806968338104749450089855613168978760531538367613560715767398024399623870743604113066266403260470515840856990692554705409039142995599940028629219253685130420414831777996721272191929263174773394480181070035846297379204203369910129769250933774577386971273299518001109151412056790869358564900313704478658616050415153402593130537933147446639548341068334176951288611661957114429269088585764614706776876361614458277341303296671898696119611800903754778255353594556632158072945074565871408625451002233824083012210364204767083620783660666728377991665229659156225665544433076984015068765624895829522949522430823610184916220806603999712270599711725251270834665362689617985670087678431239229837852728311984470907280469562912870544098397692207330866346665831522626543825538185512625811805407736557576021829344158656256343803132426404360752257722338537690278698610969772102536650757883707424662769016258215218928723084039323298746346567357425554441938261181322099803932081116686413826070825052890328116125280197808390518296303915053361393924220655117849426671173622534891579913417796727080913147224757458441879565784473293016340192241939193480107188663734284900679874314202548222882126736670816022707663193563744374128109353951665315950571886548356209350918922897953752424867713790452689201615002172602111014849998692898130558960628663958759391121520836527473226167744727789246961580668840413875596186625094350551816555344964760049176820962694361633772455432331652388530214164231944515773992174923188446880564968707158212317289035295212419043002034148928936763192218180667942244560148077103410262376529379782823865394312437047716532162440235237581617638892907943983423584856686186381924733480618665020909715271563860034441024816256321460017471702836560150009319866628223974899437759210899179082705944002313905187238744978212457857739376248450357294602868975890257685496148059095666306507746687716715240173976762128444018271660033399057130972708386970340848244556124927793816354548659182747564987660852693348265725383916453268194397589139988585387702876172505916610890335015620242511431597260108885934845139073974196838269831612875417454668105789193840103382188663049097744379113765459622016910429715840964462442298104803787914092387085208453419165765185691277128173434587774076315182547951082419455160895654113207011938015762903914490801971085907186322836143188260094507432686546077083429139447041298736366718120190966621703359533577267784619476322734570025624970506188785311023497485988574809780486102265380414380445176652231774417739980571000298895966119012039620778500261460063889647377602176543066230860108778429144043857893993488858113665420619703536450705893018715915875883071726292124802393908882260927276682629591244505350407825763563123834950597503228490919598632698490937251292797683088588267791944472625505394566979958409433949699363540218522390285136429212643110585536400893536127308895724306410883989549558902429807540233954019741671790727725764001551720294110423625666943247158496157873471294137700784409520256217920502611390026828238141178529714282750203713402565045584524097026210907577797896087458955402822643639218827000473514121217284466900323765177036229020988533527552200805138794972003200596524995508572981588125230986901670558029678558114770187328466846974810805535784598444320950316264055584977429977089265523808438439453660093636551171062429456461620533228515632319687237723950228395192454272803221590399226425289865680749156218701157116961462112616361645755814593217830523012258062499445943619558517739762394315375289701593804362086991223680794129379733572931590920006359659774854231101576410233206274731219336121034746741280030264747902528250733829537357359832579283980965950416109356733186070783323990730538876182325035670487593898547962054999462012615863082325399735383839202309044796105198063594310024645027271034706272457926527299296890507828294241870364527969935629170040271544583839020766066935653539716984427832587286844048776668978086803533705576864513494688263138027712383647418625950219873901276618976867232982177029120340233884132758007508411802356640594764072439541264247323823973934017911388456364928359308918249578325177536780658601201709952890048599853745750681855873265537998249593787561442425212997494323978918572000308030982423567278615828488561960644444597907493350740375813137913247882049455717681335284253201224271407592035311281039086100821432371129797511761269819035213802010872646583014562596536803951283922504591412277272862593667719937180947263562684242792342171308206821908098102781796953559618741372315775743085348351822192475409334605018474975722473265654877661432147237050452791038048219306614256316471305277323834143708421054981732556264203365544581405652752524721723896310422654933247240973246987365922633705363653915656539547170966220503939449689062566804721550173835611332377948025584983893014840359714468732284229087667465333385295808762824298877517453230934410312923219983383647014648950395673787224744276254634371981432936334799655822503312889234316674004091462982343317744505652658709383371423860654263904731132828735748791723654188799710997348475961271442656813776934098904626117219341704530507994620423297431366038658025088497131393702062078543007300830709801757985909639767110800114916253575216010976636957249345247274918179975717758185359952232905430249563772322297876114866093273638909530056000273024341062108083016606500257571395575540377192060388075300519135105974040039701729744444792818556463776661516070864681189618775920428232172456918122426975737680707903641129222214060498371468968312655180858985259197126813782244413527375138108763900854640651391731295440217388511428024655971938093306474727256281346475221333782306004195092177082018343961712790659105890905109410803991612116151647019298493878624624683332683702104092319389467320848937995780885377972953821799875130509408421115500373278947406322128526191869267009858215493968940120319279691743760533599157766552179295704016783061905052084061647816594365643785803457480286545144039351146124989899054103589104602325794379967287638197239390254865252111974262225524586614168886168879158423635652605194998201373843610619815350580043981946981884270343877353081934201483021707926385787362651557966257282483450392386802189300433412598505689660064387906730223752770573984888727415182984843973441509113318547977362881978604537186462822461144501180642139598960021918652340754092198359427680280927784364244415474795475981715922182875953833441906478483772245464280900131029755855000635796963865659511336815187660932965322515139591544498961353794933511275605990205350356151552175188539615943085996356691345325269101961280756614807471686979396498988560004452339409913853674168393508305776571519482093984449412432597386293624264748753543395228486046602014652449168900998208953545154007809635529113871576933357147135116052161859048365645110273565654069374462962476348186103071676998686408729271580513042856860329956207632805010433920537227455100651187302456481901778988008990675724399018163209144159574291619272637123541631229664739153868744252876372162564976921573779247452058297159330606678837577104687483846959725570457709913894596857389294130256327976320218687989167645276814802288264122543503783799530115517552841779276229643872328574586113052292095054093254926952046479211688700948281972728650144660632723659125249339591997257921797569493494604850786163795187444206702453607713295469711085650538786737114097882927059852979381218429011527603419225730244907635711562665514386021914290637634574910822219891984302153735881976233732829823656757723300960077911628228645664268766696239438514702349305008277971633105857198893614320599273675583467202155729266783604224054980459043620508640022671520993992253775233351430858676945458853205369108988695878748539274715482230699690551534070627649837784441212335517325350245800060841446071896428336651106098106292264590857144689836664381762704546251477478842029834678382444678173984724418894536951022287586498584132072849269113409223966126762674712897991482091924155067043368060047115772670346913878234779671802632520787788646897577685578075106184381786442013928397190035084231351183027999834825910310747700575701413570455202421439097147214920549583055035358358186812493454420139450160580531442901052826432442894374038912087507858543584645173803666881255112906481809182189742351980371380404688120080279160811398645288926244072126991615382621018611493690658541699804393667305186375663927130228245018196471538783290266102300231697325506083360051469936002449699568937027648350393154325558094116989915960968691205066891571602238262334035651419926420153129348021472926203064788381735010855691248471702116613175602519351101118253115578019680601437297821887254872181287886963759980123887246025502930687891951007573948258403768100591989178754453918848507041692555341778193548379047592165193750811841883342295593140517140289252791774874180528296630434457771675453097764161424874363300512540171146547863475597039194306248079729287087635392102540759824438247727784416735672130558366011193155413194478820746816666178105069893884985453771668888342211868400502484782760389500749763980060093682949379139402690433155625513572729281567181232446120463069127443855941747427200566227326838890544485553101834512881157049832239343263418653178274275865734220340708366420766719106329117309693389768006652059832968767504491992248037735534295299030691407649169331117975144445503754836737750193444344604071701399660636269063145630843720540659093009009145636634294676945379633564038156392889745281276335056683314733532313025655265866890869325185663594374575840862161398411812175122286704053800166457622768316441496433780213918145027566202341967038083831902569498742643410257257946848911930288372512404653265112574172944991095870745029993354998170676158325535959021140509548704544203910685249505965558194367351612656478669048086466760370170776668058676782684074658601044033921088698831780588808395860507451601407962941188498308132525107080051145877405492411794867618900426527157312360669711521340494763462723540793205817513424632930534686810435029271467527543543327507950901257919277173882460129264255110849771569376767228114256810830244762800182601280003453033802989022186670425781536467569431883017638668295548894590206840024158471479402373507722388993426764574349590529078605846232915450338047858173261540503543443749711992748396131280864761454370121919982015543679860135583263350650353916666876911102520108460796534960884597008464111006573773612148080365168097045853615557119678319436231500173607989941444718767488249034571456661627265893114246465683869887369228752171845811954770568332441368828988248520366780371715693441593166770731108071305560331062012404628969534484304300572554572585795684220580094312666295288425165223464820273328003282736641179591358190878595047796463018413798262064866604491166446992620722123284125218670805393111471858750957649996238839981080895522456987879016455720840920370057307059553549585873564222834256125205450655604028998450188440732711688381452968694065106254729190548871646783457229826159702697599791349627085196250717741462458195539608515102205755648648896565235957778020112029899114705495418107882723039682310358425536109175535118549326410867758843685436251075394878599885790564130476404162084169734866464324451304900853543104630365099771570600342379671426222697230965852925568382340957878733835687480142587467487612575076380664253882961694111502107195130845988314924972591891657086336632085719384283259938028852670384417822763255765633582419451495069737813056789415737466977976439894974399782452074646389012262364554895788953605871374359083931197534664441836093017646472160185427202271693839776234805479308779802093651775053271619611273296350617354371897455650373644242338145132238258690482091175348445403835230041375652617444701615503881938158640159311895664390523305734888050186834101109390193337500600486850361551968642693471779865550762020182104019537825401892902373428306069243780524373217126083429395118898809334177693328893883597320857601579686061556423920008861432025956541165601571456692914527123364564840222424591163924262174175976842199081318075115898047413914397277745841564567334622153181853175243807958354186969893664153857813657456299176294932784383958657236101770180285709172156896203478131823502520278803124915210943568792648141679352418343029417121716447656987798556499026919232209845366372300135550035047567463537316392485956738183871504904100445074047456704832543553812973077400769660434496162536371845295103213058969770096517971187242762476865138874855879945689448214503945245969100548832105716946024175580847220052382911261199634402081142544206203998111649306428252532049408998067697790218134293317493303678294330060016030506073359677584655233338560088357600806921778057167995158051373367883787027163967439923906438568676010446886007550190889470152044497495928723574176424486856866868663864371035506254156756757682081128714231887522345310385554879896399638214259205683412540163603610945776183877932535967666875215684487857957104161077366789019877276917050611012971312896450139598074448715704990652974447241733462333576257014458360883400098622930248541351972068980608926833366852757519098159900812130561596525402538096602550298385383128146442136160797157760527502751930350237857622718287202657483684199874281654774064154773017421216197307978291981839320071143488680815892963684430950321197982231366657520445196712271036553982976078179789761542849122395002018753139967497597695294837046833362144479740212673325839286784961936353789276568954618353262131514730896132547792612756682765756155624902886313724333019870887772993340093748171035983512743420988097495296593997075098937113173160926443353577581260127913115999693564328280358314906727310502438328274615873929017371532172707867987214375724247520816884534626175732667677959746592422967349154064493301071986243545141728001143173392861846719448527374114577874284417461919354209104919448603259110572503465424979795046370731225526218912490239161189094135665958542403060081211959923605838736568329397855694286261363568875486183598937698201975536444521536746360072848101710304846989301876202276566301161738251433241464060232212639111710585536096659833393840130404386949591849678064868403922565641759201365973193661646854642394731418241985183045294277625399589140790287345895356342758742072267927789897617904820237163764756417455365869904910563768466743697023862210967778388472622340861679975028567310106637923597393337637200945431173039604675429936486873392390158594370179512874867579069567416025781652160058989960663640803653086724908627001385269497648695984777703616875766357634930761705848490408522810646585830281006608447501679784685775762797893046681774007488673274521770785965040282736701341003367569400061090249972107836346318324845379239836973705784599672138505874143113965518780064043659707097127609961335068428270477801712216908056417399602998042440687641759854396948861426222465339884174476181419624011686179119587414356660488776628966576850984110322380191017111098472446135110423465754035620169129608387301763289402190364405694615670255911149506008330672014693545812829516350600463785502719964488425130486187608044329853572901224487401852894202655690599545293501948121743755151101177753063592119341990173372521236998220877285036695739574865370393864911228077895564404583834244642325264995400754130923711172325388606583334630761492608031496086004425528916108090772401381869426622358701718255177642951427677644905090747610130142886589623260396076142618284522861818302447259191934032801711595215683791661297962691190575287122113133195309442456918242644569411846032394330691277118706531653417734097662946247289607222552855042405815146293967742777516324348861097754294807741714588358961424836392030574974619961415826750287558963056031009229516010042416499225642353436716229285380178589445575496899400254099242355486883109217144234082907044254309930834455573989188342292291726620778817658646185287106902117142735575426573834187585383830515606331537064703330852572966903146991107211084466828645669991728519408445946036365880652375654934036536175798860263832319917020092671521367762705306405172301662976956818045977027104681373671212649843086109559421139355904535916864744255002040729988281090087113948653748592384171453111476230850094905351253272841803194529074149647283990519922294537992687715969852602971952065361960552574507660264776590240218442410082430766998115476277489344006262978765721353993920198595617654536900568560316575636346304979004854065023353226905522977289356183752458769986521288497689005841365031218631844883070208114407760885729653641629624227908360658293649767395192416103811266045321915907147191998382303356142334170023235667459477178048293880700187917737021426392593610146709452113431627322396916557371660260212014024190012314102047545047885484103279451412424546094208711006302473562910779838312755004953403331901751152623800238454935477566580194860359177066704264934107619643776051890019258147571459144454587456394622520353287171708330835270913744529195213355872486397971127830650111957156347403892106638992993298294577939457860810220534380476447325735612931789512602872270955171450296182121905137025287618345911270068779272325317104298139503403951449379816321200977842113431222259597112151416095112042648764807614813278084003969377246970278344740753180333547358240999810925359442112232882464552252283105284203468501627802342308821363938676819265754173021400971986301237166230754360100411947209693726538985308704647357028300058998013965423716034880360505172619307937398275448176633962740466134154898295653667189559793105867610442334337604295558558638371626385860987440345437327207548654843394890005505770918441752692622375829792854073682027059179991062857564119618588626041768295371905471123674440116574619676869141097317513367089738334550210192756743062107958220874197267209859996827062171097120538803401947623760214743607298930424292360480220625343506429670738449400881894481648670708323844156158168602347907885989917411933257305975897069327924628054209925922125240779683964369448382542653806609759020988791271645239003146988029189355597106034891976137962352196953714127403440986969238469252173873331890130597861085765857694595667945502985144384447120817001856426152682059994930028497983813890834322479528511157772605984963273516085445409266153976068762544978401036833231164910648398739888090134918524215921276256639977463600404886495764719560164487150604920337593358131956841336886921384735996634049134276928991061951727311887818559752055138329570610294941319291590872974909730093656700111834320900054852101086800086403942081061577804015491250502992725182930966607229258323817127253310200842192260963441274655710260410978946143074152461893260268432696760133701153208238238365957553140148908950339744749700011048940372009779081069473276453737271359565787339661386338687245406330059265526115748265186588529411262948423843392881135816098738714775727928035743864302236704101900663037167882549193827996548873316180328863654705536705073101573771060531548276920549400980604828364462289821358701275366728211155618213629380103825812516861680515998756447978742705908888089504007693204977799703719308087903908111425628451412045470439774683061816133692374863230471294006713635386499257111160979419435878769612315336688882783256773398873863611499118513702289296754643651207151148248170349296805369850069248348932884536947544829063608692661856746523329263971894948268851575779778379573650229837493037560810674184228169818439056447049391765660738425803072015328535634972419117482354677836835759543637751914464928076496972817590630378160949150933175155540644742792501338649611974907605941775472805840180047994946117486530462884270724339950423882691418661289846825612060153288563741658228122534453947040700218400730858469124662170817497438087046422506036724237899153441159510851717190204432996519294149137166005014668088008889695118284304883159010525493782834023198309509942614443933499188575811134649965631207928876181497315565162717315260489845989257478221315513246298283208600597458899313406945676065140563261717106616230473149167669116112018410360484869763272751655488680367695577587157483293034628634460035889127128606263922252964141383142562293789763910017641068184070370311306642438865283256074061649681771267366776043478807634925947821922359847854355579116572166551818107909263562682643456353037674591295736795492083203085083666612427902312037532195272819166805706293884690211366838441614769725204731767054804282074379466222012570221448128084597759075226417948972517598961851706969847039349924738248468982272055281736586568747647130688063839214615421486428767874919783121657191422626858002572676090800554973030457358580189581078939854093406102574200630360150169114009628371844943564051060353235000524872193790850758880114818879040545305675427855901800808083012981248282395863339321193069390537621820568267090402186158820422053477168410501121004062361042941814027185259862316219589670230804161045764851570886486193458827377164851689307947945155778537421175036601915385228203680881070401128186757340655620156325649085164883210077372069400726485395633609124741459294350560861676200039983358985203142225827384684377969000404310941345979469850661245408071995124950391913316815711618741791329207349015389555002672799396914472154692279623113457469256262598212038630778869233932156844246096022464053499254411190345204366288250983392444663218899417850157107772789529596188741772337243019758282418840011651208947160101819162404091444623066192223948833638646225713784325364062534857009203390719398316291312557045776696306186984855399711430132651193505244232198004992514105025058307829703597953049180545451476763194998307951379427471995333808584559028289379027524531204692071072272876173058121687790892574254271773349710112121118959592442178855232090453022437127088033939116488611425722608047989966169790940329511821827009732267308350599710515372851163709153438393354835518589421795998878482624602691543349740881044652847514141509729545159070943283890727632720119460490011378423646420618614273306914580894578530305024808583389005246358066860982422700775736355742594265960547328460852964597908584333592334094573140553387434476676092018475410398840890166262394005278306611276066962077021707094546790416690654775551193806124263381079614601531274136808849560871822896533548296712676051775583675465452754287585828971117362167886003217598381245034247109778422259764632643966945489844572404465156026565451218570039727378300613764791610105682647755670956387928412977941587588282758531557288955472685756432326066579563296736341460391888027087095951360439790800705596381898418551512032472022141785013260628021987518251725928961619487143580300684905659456575906736745993954868363147788640745714416387093043139280497117154276434450813306738439909302063509462909562912162448251255896583339482765067992659263646771837829883694649963356400513586550107829762818466949546395013948261867281292988448410828184593857670040817097327067156494146717511071756891401664864218560241936428402850477346765457911164639631898428825069918709078038418190342816351056775507097415799297362990785690836405841133372050357167119917106439289236448065162854207971584213942510901620463291054210852431184860688316348338096983332396016704571255014093580244181335600983476515061522257373843757034279282440169188227529669342003900243467705064159946958873648229963924373251233069880931698578156453986317009845005504418528204561719159950704804969305647340369464329228686456455565973336916495453503473795955389893166261360854760399806155545653303396181785077665661846490772211136881799974376103527472619152101621992999331582723737646370158841450424408246907505195283303891982598040826223238482823366288531344543859575833333107775635905935827481389429313808088771881975079828971494441926817505692751341166978278075417405691067755996132214013709891700408254500076066098867508598672078153095977527542255577651124540770908380305995691243693038752928284093761426880964518795607782459305084764094690980475297440674804265378592759724562565824418288466623589038839431531329437397973414576339791530857554036972883706478870671236979798481057711997219595398076374121056194285517180215105448639335907070818778059524539724472146451927989047511593691416490107900474494349307325524112059002578961950267196595631611228532827895352006279059950807098610341744701136643174875520509791621001676034882829858371967906169360438515195474852424887737175608871960179363576763529352886409451854572286768952613982107625302112533670249727602405539382233619699849138710923258240020881636515367181902198738816531702789986134655543064779385787014153061230631235813284115563791320292116909832981906209238988036195504530032806800744251729914447251579163559025717759734903207240101253230618362159519997735931156919388011167622913276527278291687163176866976351469965758266622098412262918653245630164267483593525284423000066344661623394662692745376637792300854897370690804271096156712384768912080597412416575743149035083822015251940032079127572952142791289276254748129819630694575972092322156786232183266119194543950858428186536504055534885292585184818352772108222490684886472009089802586715728532431882311403379183016142839472775323063961986902083732300470534720378988738821851045442179185965660715551921906036511156488667071948035187026012305666508610977467990476543925109565185567986094082862217370373719013275606732031389367513469417092525422756265655509353977631458110273307114227596433824551010735729736995923494644210484405822796390645076299163705644788998488432212242206071517759351584161611699363199225531703025620247692120885731619737555462280259920925124596672216490778362720333307360878076899450914885369948446699430104821575005713678275171973958930080776680889539327040443033496048453849326345432762388066767028998211738506083647563092148397435856202023394126254271194014461678007286951882490776575910256013979234245806255336616787872351715285090305177603128424722657937859044702239789929050713173047296905339567220659361871297497660129371396387248162252306822622398516259773270981335621021487901392307357818011342242854574702189322695780622066607201486366806697187903557634068095466622645707035702810136673910614476000910419968948411269414068128792735004425921860124589399134887878089325380100348619387824342850399589931319370759257278506498453073849067797438858342262906724100819665657257136367548536462919208359347067799001934720040193322722350333691543930573285375279552974786583392504610239007047182974684775805082931976277655194707001639493095634098369668973162835215442377407371146078513765264538582550358816925553742984081733853639501785311538995561700313891906119012287079538286212563891050461380934647403575118096615225940091992140313747849495305446893109535794191435470501918385434055768784557583064983806643945415635742808324575355551888764071533614085754300690718659415493864502716574862443949973445122010215970664903231015776066949726833043154725996562227845369658813963168467568888048991402513855456179720667234095809249893846981050846019605093498872613038761421077169541657415208793777308949145946301075713930125580144627049904277230803928646216956211330723602466007679148515493835008437929527118665818105285978214703990910299898876438674860835314161155433954620428728391449097421071570022458955215534494864632924836845224798205804111489378212663775914208457983415768792720618050258412821675716573427484496990826716827523821219286760192194200890211404373496788066073125847060330673819564244223383158348423563576389832370078036392974543634791848908287249923724703625183367464598156223652516327153120590590038936311255785361163604199482077013467131355772452152255638856317386512078986568711945370786601922172592784042768979643366797380180986913444257634245341148382737692655219812767618317141679691788141782802167821017907818423630085473336321049415403042891522949425895032257584459535705114120828906100183876258608122843960555505662266696386506324849773336790740214864060283687668086862232847104435364167369180177679852281665389852442341210837070496431994096367553629036733485776719783859631040637524401279126633829014316277567221030024528396315050830674938436870013097584285141657912149305079532053420058104250366968564990230157677459275597445564467642910307382954052699476717065422857442678508505566834432892020643895403078014580328870844629117885834473383901134874799447883216308626146515340029152157205990453738286963259995006182270093989280197007041432597930700815673120756275706192667315603743597705582566912948020893422321288696571706569840838133551036328957366204119041879240067832031433386290087562681643464092218209776709742048418022944094351488107485983290859055307710285825846186461374036496439325769380176254959544467772771027561939356459144355448974866327121925733791141411841116523960669153057512259518802716135503408523536287900826071104898482619112058406701110636147484711818495961691450105095215215719341726655101894116916324916476833743137580769553025606208017765254709467165255612047282654829133275965004624576866596622368222158358241487057445132803543566293524836909319261990845502666377033059403694832226729382278872688886543444108007009687010322104323739392404659134325405381434052415326953022673210259667366332867767258269832358919722807655051404146287893797522553633170269667372619805812305973685490248371276633172146965962602468471211960696396180118867031307401745124760414222526840718942529044301665576744163287961807086054478580350470778905265027208103520467642946739136204013290131124336456116690020443397994118443041544590552505108274518669196142962207827539417131393806490724583005419310589869337849104077953831485390875928906855017069692495519470337872399892900438210153271804909766157817499473358339283072686423400200737808656501767013103455989721036756056050005569217606801944572714065937576880387365081356270596671477797359812362010540453734816988924304480857905226290634503909863741135991250931667295061218543068939127835552169925504443244003262918554209357981553631157549811738918381924154592648562696357071865472985796664946437496009956159858468519216576792273929885236806798537677274754124115148166779583867325544951363765730457761501902234195548612373344981224707333228442265737178344199914596311892314886962890038544012144066804952238762165458201114799736821248034534142093798556512021566834334933429044720583135304008731410086626490381609099439010354914986709018003568952591789360880979703094412133614293469600682425270754418753896854937599315192071895988437198213114550586776060075524602938397684500211638440187802347796184362031733959806898450438155739069726598207199491560054220259656338767636023491624695310683635597600375118005495750609184547347727320171660751256214348789832354373400328225963723054463717117935490401356253246596510602585479539830726386441760848830184923454537059487619615529345089634172576436511620763442170513645982404500248016178072364351254929880835866793507576110034073787333472850506472340905679583218814582140255153206364448336353247234728429686184888565912756281406253450508007259364752405491409504350702882721731846146883330662341667234199648101566167121777041244815744178848740949180286717083858301899141678553395214631827578186938165421041643590079668576206723079224840438953408076034524261933463408758365998518885438300547928924152867493420542866820370977607469815881601404480504190008294341870922008280968930621872441831042614846199432411781861543121246560567661665903940600895230493088325825469707878250752127356781197715011184708523501824089802442980937492035627006733026988635563461442028416386223777455929812045222466107198188046995929960265715557652481032162397427484732592352642535417558500191109627837822573049086154513114836339538326479529820540548083553294345793739368407044353215406024813909449564717167516637585782588341505129333489137242004632464538958485386929289663998598055637137061505660254048075658929836313161852172702867813902424869945752148344648362196285598256759045829064629591722751345013349383351456651999294333168190469485246479222776751936255719454683759869145000923645591722058889599952030944158635168452380255564497471608607733120901170916274040640277955395281965964801987596463575109486432341566949517834080878374892629633841908412182477886166156734250218205505121592819997292251817809220829026134060344064703445243571782972650323145566696234296697527834616478816374426697118924639384047543725829688439672294167160782129277293376825066174418991740282625880778968266830234989139770783320200151942699253939826788662652673890053895574319555523730165416711671057521213844324791586955208995185007407432795976326268489219170752402254876563398382528370503962319374783345793702073491190970575662084399930154793717253620391485924225929633500337391584478978133685977825636483403205250446236867236089354165379979574666709042573367146754516092736517656720037903786754610339209341772640721958803857201979884875779594189826780081229787370239588730458784548985137596443358474308454567488803519251405951573278671218812178761560163199955065292382762379621440433808136031915749000942198901166383036496075702707909167551913965046776383543635878882357607936211220666981231527795497835771243521919473728383465206059289386260753280641599367086788640170416292786196790635480237132027702486446656694817240037400202205578965149668540255252215086342051779821163013425657048009633643121697474160743262733381869860814035806955785366242757462153989632841586869755407143722435342433712591728300145228538702283610855024549267877470518266318589785314080502771983880637940206090816386271086205052219771035204605950027436154921367179248887644699172644378673072719470678746387132900467636432461648124652729059777112370185496118046009330044615048158939385527411513793433027080137778011682058625714126282708995147875220630282838832826417693238497250570648209031172443645735604523671484872913744157298980679888795342359841517374259221630608601023735205559338003653888033570085906068145339140302640694205898427053618127111830632454976348189818436438819932035432671930675177245999037931460186724120930709951765320995885721875323937883426584350012164389667152981729561408052116124271661809366012017195584877821590563891808239490413147783855879644113903903900413438737667628547160372835100448536145363869411110779084503332755843510360373034247337633877415889657931083480475753345984609828283200259006488865883869153159928664376336658014454965332580803917983128573749573192853690301082517120390509663616670165483513258334381782192318809815505845438189405172074955593107018199186154209325709610122767979834358837303502509367954918251419259098267646883674810521639012821279285968125743278882433874291997686902961962732253696844215130389013617526247483592418191605134048667934915469684981276991346395941588260237792011093836427181970855884300705990331141313664096703955146301712623347998656407555478932171619761060096513573283627477458517131869083540630437380508328482698735969881788186152976474409350686836636730820884677489298053073720528150453247101414341961423548552813007288256182519952703343847999091409801834504121708669058271012782134153744639486843339996776522043415018321609405664809304455315827523931209693040871180087966314388933418758250789309348249062454520965372366293307361705094530966778326816866293181005246188324845830254593068203799256905742297728466950893236218946219963416910057971582036219101767945930898408377284559656890582452901442333852987621827874947803107958720657133495562406805694931081194744205964214457683013222043452463635383126309282343930842123551713328558718018751208635037737796090308264239129361457739098395063611566339751427322191748064134636838461367686581202764759329542539746140866516678066088498066463222689092687542188667806215232724221485740854414233275432069896947774016662869004191974598947093044550144261146650259802452140256564669064295299762419055317347147548360505913245405793954451897684656570906278828339052217074834441762693320221321432426173376323212050307071308349524511826602845123701560458171593167300419981979980045342103404372933763203850489572346182890487798062429832507968357755818470465426544531170095229690773357501224650768270439088613938137796823508554322939241029027986427501329619746592685515782703326132037725943859565845914032815455779178360796540801829722882096788194817466578567726171111424956441618641951185829798419778744907732078193772343874919435291235928490879683760996556299104183496575206231142691492101336579584569368364402314960939558535207117112867361167124528896598548596315264564110103061412470377491381204834626917095942677662342875441174416511800162124462192968332915245059968133382199865390155573882428925054837371483195854047300004812085290257198826511560977311429600619614907953049451985114280447478996906146705987159100785684559739257610058497261935388370147799565526432919798156045940118363423184173783599756945215619396518872368587121808361395769573005611118135168593066047070237506601605324637952103150435413534486746012594675299256194192320610777597667990047226543535656483527442394277826898562760156269790997993075164010248894419282572189957077517815276665498805584253583470356999098338715753768764822982038549871865956235688367803914399133061480399799084637234161210129155680935555509497620272953520590482674231384327123364589052976453728440629804879076063662403407034325492696459079739389310330796426102884561708249070407647434601621808795372397901287946883423954484272966229547312994664750888568712924870502233589391261242022827252009589689642780716107652840887699778231306311476308335743118605564716916731785034323073373064998144077538467587480983404583520846405372174945492147134687970117127397479472271655484656032323184404911944250475658532242545273743508716044681669445667911768857945312052448324026882804578010321220866617351325278458204313056089933241797860973643620568640661848073746963664016271482014681307604626639639137352696515632097930061228748279038940308914460239509658650598813557230359213978492937115902872596169138632442790921058760086743810964781755340658523058496458470169503049310867223168626889883349301071942132996169293632019339048716540191944668068462452726404185295329605241609113726530678045023721106140583230297387065916080746747566002220302929102211748210823088885634914432468047323868661580722367256735898011409816170622107244345775824597075548411040252624644767317840205946659727910496225263119458694987571653346968873106420263023259592079719084581918534823405556595303377049467583569031090495977249658257993960621430035934260703306557541628810710790209120971951317429561721468060162451454428026607816070803651234641741273736032757473289663888782863657107959791752139414378594107394347416153060956072008387416147160991113200530527817757505860958822315910763115785614595499532491064676517042597748050599731813655802764833489574672042692153257953745574198328336668381082962697490818885972631943534034535291390431276425821982408623291483758925478057584490604697238479887921867467229701898998993386908425007148441690440662995940264369109038661198442071781989772571043897437125432694777182617608581381453812560475442379468374727033733008188943203384056304767768129738256791480013665217836784900453096926974013020542429009730318146206928940144768636906689646110099462020989980736086328261729169875630288809418541210021085014065087821019396250777556887613715783527987623250287420567994812274848729943042293032185145447062287775842898536829798452917179683930940989823152279469865012988024938439514965766005734190164037292934589887871994470348320019999921090291719463171697291299764937617019950170795385040836606666474069336078518870550198666719437109277211217438976088800761019209466714835789654951382759896706873800771133406482881618169835063828676862959635534963818638559790245901638836808518598170591941719474178003318527202674891521188173934354487174959858419689103850146279999817810834910093260023452517332417915563044044538126346727010753703383719459055143152097840026049442247790553281945357872279170380939069306092341841428617489292048497306196278218273279871139881214212562973608023988098391738101531034231630316024514376947423536373930176706192104776712619952679074013535529723564583334554557592912040689155180678253222145792125954608391140564947404196764611520812900114980328935025755636732894849413296772910206357122434349627260749025740790850147595913036689449263060918713479949878250220067896141647492360713262725787002163459947056579712801254090712040018115805586045980730461749177890828127971093507772357579054055731744170886320366543579912367589826041270945888946840435761296472361423509234071522178027267040521453125807743455188517029128349557678415305560031461635182558840496959895335371639694685925691633609434670649716559177145719223971638019633854571730495154399831604087156526779548999636474176702749166724390852583065862487476272019922927119545385036248561796324440216936192577376654700935061612123072586713208909375045364994839254915949108073621122554457752829290958262621095439189314045306774260244889669376286033848095198885875244996718302378579012089038402126455785986032231132750089480016397555923937375448926348733363296753064594577740059688458136726430412974642962482064515728497479532069820963027616250508989309355281647213191904232084234168281665942524730254841731326068909213331963778094739236797086498144604216351061058463729225532041871374872769925468782482633359694640142408869492142253504752893006106655525969061866846904491152772792731703686430013420317211846613179920036294041203910119546951677436904037034093776125487211050019997028221483872509154344433161010746242603287703321405819840143459638658196946599906787733371419071321109890065920609625069817658298047967085491988436760535608793062150506581233631448368359851567809029602503267842979159966061689516954648366157910168821713109970954637421472721820900507049581814623716164400115641060247237910165008170431206409532956219946253561879870928284409235190642952818103850346815117014638862030004883338484548650362181208048831806381023894056036600091624624524790947361375364114789813763312130314602263482653784984463940674010231468049355280257247193989128250770143473216853619761184276135571387236795810774760887458725201708694967090315930646605196680169196954886496420931852835175929935645302259797161219930811267695933188151173180853350808130379397140246382414622582232421593703993750824282977137042332043175696466197190686901128069457669731159478631088274646526659928340710134032922821694900256563167336814899611392373313140813127211101761933262382254894435418870594536077320955997838880108162296880906445257236658832242613365627573057303337813664868243949751168687675833896391361784781072306831186826555657364004560256185635652130063002337694191111645998993125657140385004702503707364995447795325613256220953892191297266445531716594188880300847277521300019354387303074901417861273292644994533448534327686721474090101456675737971823060004173155580753769608626228967118245982784478664261840619337423316867708062177985989922326971590016563143844140083617456496450405239795417282950955026909107049477907570545606978473953343512073887122484491026018982114835894666861187663709153314309837832721157461729644195363299774206002030497959269048829548460791806962817176566888704380056560117643226185789322963425699120408284539275022105072853704392472171852604439961353917397303350823352046723473690151310959622646617261795670482911227423134424584373109981781316179366366868921147117320409608613937682817917769010837058513196500660891124999552924389824932976193494305507520865743231390740049528817783878390260124923772711352096227091614519843516290814052584181216925026221387430596639425368657899381909018099219343651892157001782487279843727554440294165232672370823615109180426175548259075165410363978755363988080517583284981625304659678887233872664379982751242253710309930385468013381211912727782464760611013972832917729651208828871148888408846545163548892089253184321929776784058790339119321922561760473860204813158522349430493865816251535555347922267286899340283399139774857006362558318439618575340232499837619417085759995024609947507037631270749505571999001900550172954487544610101165793898187026865642694387331303857052589446522979776247594552740925466207734253303251003648540598669548630142734048764475287556589417282282117439060925670151941210916263967111418255374887173039556118109165056870859794418382154777653658908020410883203828776944254497627840089003291721508246142422385105166880113126214331812476510845572940480056850824446262500370720056983745622168625767540391471397676125399058745903396911281617309871965555958079787843248151616469196082619862118735416501598374427292358076188039279276622295447921181737144772082325080942458020796230570831282813004270102708610437302227738861801461348167938835465301579337064795354169748476240998194579012321684502550488019549380295285728889873461000566164265678570999714224122576398312848489493753458633333428612609482495165072842424489218825192366266174934409616119747324999699578551904089625956857776113310986589414432468217194144569261473019668566934724137292190232919514095947828584244221534168119508944972306111029891726729127121881015046939763949595104769141131376411282122052854846440987267598461835974093976363425818535026107372359544853602321212639419714692627252671406729753866638800628716784325718581845755328070196449216235871689377800121613696195093361559422409226571254157722543470343809151924918757631015457655678734672310457111261897560903971740053442188177614466218684129370057601646221035175358282203562825315823995339472024742367627611772938072678310556692303949872853997040523080421979671279094641484315363365187279016933358816076360605230178894310504680356122159214737108647342057638665849233652865376744861386200633999825067684165005284034940006271301009355236297146230276920556862104845282964211919817923262321975365964036724206345210689551599531945961400459870347431421083101185955146001529007201697398744238087418422885477727533426869250735730529872631654737695422689387448159592284417274618136730353293833948844102158155497158337060305912004158089748355742109220528995083578652983910882469143468171195956156513647323820337895391429620006271096965789075377791250198751807846813926912709013105338893480050895973326389132326995276249376589910448447840506951592038188842064478245396227868892674059931331091293076202723340564189654291956654595573326453558092123186645882932235357348118330300571136346455569517005652500987908392128141540550523306143805710100519480631108433031157451284195957966338193788192938564396791738721071932123373260804763353351669715359846969564320968986794834469981003855505148001568334707944737514529827154989764821229653449809261311756612286303101143025152252564324863610873958839795750515758941490647782002440875611315151571790977322527553819936788975011990800396165680232870068582990561192996634981823593159517953804120864120092283052127410715464922155705201891914676563560098335739981098916909578257410475183624997352988875753230674191108349711488840415130991913375737902586284455565841625451883549818365837718534582992825157605206136147440045778894690800018210242281744731462929727305469999213832933377436361403999126379131949712335697680294188234464275722181617247813501447391234303149303467034387646128467530377220889479697734982812628704298350911508212623809385247830227849571852922010243443193545406477597050637916409002238552026493544523270254278416999557166021086561640470582714604356265450643220015849808548871609331257819244943491066624080242523708972694266178534954787432391459873346603264352549245017363641727928707782320955869143352410354877349588319024692297751619758856340550970386795028280813211331206577832358196784372828354418332600055055700673324406084856575990090298600017081138006073702632298506850105993755041493479331734624822396301947842703919750827911112308011067283393669184652152886381592924757589612195910864816234177106037758460960672077716108988003463523157702268002881271805583387614535149470057572498726987623292909820286669316483109476497578963073817623316198577099083557066447546927958736906891375566215502924759942485086058824996416099805134537558489631480958472483574010708949461228414916791623314272796233214103987725911618375332040971059979886567411617669458629611064885319913547165847885701964905383676220476775449540979580568358745740687276585822090227460110293278506702413471189804444240609341968649084464193185666835146424576388587172485428594313170148428554301076595577863149614374130491466273522129239794243037887707690970555304686475186927174846540610719305329973300080941354577490896266146757200451423855582278992549430440316594607015371001540274560575939352593552884050909220439810453633980830174956377008545013947604644379019998470234263791680432126609533487225741160047123353689403902294096341609124104900062099360165120979640543597300701301057191197307799543561633145576011863316653332073595271215161030853441143854538141250135835991490448858988461814590422671044163229877509338353077829187920859318083668160163539852977653337026464944537774671210861840273453888195090165001799889398613488447465632555238311710764612433460588154689706308891055018026561140984008931370454451905929902087762390645545776586460237666399031216002586017689810433126929609656480379086597054642207103592741710015328762702619730316402495222343592078287403862416349411144467098379769180069524349499602000344714346102847091415542249479319942153375363632355268390993313839759394630616039894736545575258589104799014787192344790313109333416418368981237229914494411211508303631524966037954917185547301395004221576512510785788070905467971456620144883722050015052568070947976435506576108001549959920980184323774527840225886440449176028051209720982395274124554573556024876466800681101428932488585960920462597676311483745330360689129497354280915725275054541896696287853471245910297806222005592009888375131938021620600171841571458872316343473964946790892516175554300750362881649201499847652996214015628965769438030928288839994085045867325692082196205920545361563981471928406886077265793197699618433424114543201476959362305123231859105590409369385574906273313974944076750824102011316017824337369134339831927726583763095423345183734713260336828275688060337534829954997587831587301458769280783247454759579400894660786029422989636935914583726766251787158943517521212237106828225504613893973094095597437101532800793481191569573062637550443745712647082525998672656897396940336331697957808373991714993123442286585919624853001663467919114804124181378731326674520751656006018671117469207958202355868284657581881443140943400726672022429513159429550186083397232991693548706852610527449825295394707400267766195683375059812497898254769460146081104488467844032938032527055485586541826058208635458830138161055900291023692228654853707512452731492347518937286056010758403285903943652916297587090683098030968392050210905023452650400265494622664289825669450204035843165062824795501701769174209673889737817981039867289001089656877442346149736668065062566850726369673772367775387402087712074142306528689988449555378659699832086574185805749524977191755238966618009542409842420121156712496469710608560909307533043185940894216511360437594781357590309908105758662140099104041428810307207447832143824594244386183431364606895241868572472495434342806731575735598328262159651158154462055665691269680716734479154052846650749499893853435805579050624865750144241862074057642839142915861335709918287430798188934435464457786919323597947050005584258078505621755160481919573068170610565381433173666216896136872769339960898999156640131422228191630303512445595885078626370801080760334738004702951816669866711214732905173926719169557517191676926763803688960733465787575560204957400615230559277896223016103497166787716492417227060056182073579734115102100023169465509192553152836859211896306610503236909030291733543488280775754961073172239970447938219385710961543029605359105926718248834543004180696829942483083021422676767154648798685327671485730577034799555435071332136511359333727977456086614171182766157235065949854654013362956011796451834453839150092118815356661671980514702569487623337632981131497393955850756413853143966598150083979963544260795649736279331349979444549119061924482851246295909153171492067541589994821026980108090260253883502842841925978592671756120035633784455049214369009994377807065851429914889538193999955174348792124163182531344244785205013024822502033249863345192218391692137078485835703514255965747208365161671414733062069022637005214626378254990489429917366948088756291018189529243326970809664510165273225314484202414399993709410167704099745214462957331180665107500125997876383487667228089080869862036805189772704244851833513846291624296249687319643739300762135314886670540376143635281078050396980605469648219889448186288269010214262850402460200773318966165513915528197382051899714158024826643234864814854223631584307885109788925275350302504285916008029188773519843415416749989567704240356485627880907928714765747893647996119747627733836950178437299490494949129272931664175604004740293047132758274592687824219245771820599312468216222317281758355961683651097137649707140071792744714838780303629433130959992785466369813890803337701879195884159853808214733555429387601451111054697196217690329582136984100865168647182426272191607739568860549022172828144168612685512813057877967558658808216563268008589583869147559588957167131393005270733656222609415033873603532388253850992950122064859117722116504743818557580547277286710423663262183562889591635912403594935889817723371879941238213755725044770749002165678297299173397788739419834043153117701796011861694087521764212706119764802973495072153751210467556655968276011729965753310058345264974925438900334389976385089675562356797895150885999404758252467600557648391504625298061216254495849904535323130994982313960637607950810317284002543598016247848802257551718682506866074857496901646063928292335273500081186887793777190840138533799663373882094020715856810034898913256941643321032395689830177414866212667878965556303026260421115211303344935645859183187969606393589674509015584129866492303807521120888265647815619675609299817112173052411686160835985481524939654302440466378509957024077466854217277765593054218187895716740515980816447813091193650189292224988045820936774295882724944743250006122123445653009507838690886139397066243096476983358209954862037532611447704306599225572897174008642041378393628092827155605952882164707619855497147960509603179053766981491612542849754524771832249552279338442188659465605325561061881384287929340828416334825836874145768740572933167757298306566037126459294024748854464078511440904364815344537353372831402210434942343877373275705741802371098787997310192975616174724180793955599983166856877415594093318841377789975680089081995237650839487258983003203202185124237210548727920174729640411479169990799749656376643361310499524114706044023980361119053110039715539379858422117825592522596456619425361874236679145666930220718697724107914037620607141873286984378456460471572776249420597278629700057382335583452907522817129654392054694669939490751870488391829845803608118921949320726304054731705467204065953996476600458689936617712920689521615589540586247480264082600843074224409351747670673970110697006609205001428357968309428919133696266175709387719457806490659335897528994331744698091090288431373415055500519456690660967849072721039440949868856210340135145602678967632618316325659033090305291972627687530544790090878655594915475193467112117543171333622921778084694517620579071553698032654719442879238491767954734984426310503023803981455962847276700677500446254699406288709444328124733433954114791391611151141243833593787291555736387102796282648013394980738563423955380668865211670602496381654770725339791530256000442615115405296828363465178551163964582118737206544101785673854717630195138584123661549483418886346660171770787536715481757702970735942483833434581448218746993309875965440248375085022885949966766357101993112352320164183771257758253373199158941826693215283349820655675277998374866514641852502264658568944181409359084736478676484973897258794908886079284637422819755375986181031051224526795789785649868258391518814755888703368344024694007441376986045563629640020795124552472532504011236799434842745751093528481362177602579825821142161553499800384100855024724164839767283305850462520737070564461183181829651509639671456248165255941991645084877377411012719480486768329372160210525887727079659053623867079142865523185469065482263200220179962091091183716841747390011024310957193556478485374441692430915887546938805566022778277835852492442147925699416999843729183750532859833806905308257946969389838973689419195313143564218018316316347304636053167382566831711103402050213852755951650843286999473554979438787479421031201233703652422713076717892788839377751503482453146360877217404880927181710898299611351293849819366238076245419664663740790626870915678903612876435394594729537338937574843877683100339543285254028174344062120937973648602987486234168565044066134032582991229499471744224241256141888840378829591172681313017686296726715663257493323407544802909185265919190789522440423081067940810901775564938082718712523167370483765015011475949893596846933583869498478195516592824433842041671497964805101127117221516775003429200563680599147207047312823101929163393554787048337712306172847022201159351269914611808371620728126528722499637188769306630843198134867794690803905844254466154937426899478017137864798257729641153992337674691501980643877677985610347753528661966907113068410260684366959146581988771046746794247886527723053144920751180828259569873428467893169868759487975747986164371524496874450043968420379584139525224141690166051878949334662433793217447947090935426612278108635130197163772296625802945989279458275992373947027710861552436674788744512862727439718265088551304498313689020192126851223462444126637409479823502546802410266919926484192339982041946931036443737865134707463468320428436844843476406312264710044510365402681491461426665512394755582860174212084306948581958730576088503774709754356827305217255091213298565985328952795032344116565475683463925709407797134273716370705288314276377033450249474544374436414665564896585264069861434568371464797522535649740323697419414600544990324672527438732977614470480400319613346716872034045592057259892644303373020842697947619608242827331566430471397329082438326388515742885572493705491337243444380454351958777248001740150524745820802794408494276666268868878290546423561137337453425446901136864310282867922872997592637381395075893835018619565616508940192557177491126100507788426811230629767246640111350316921282896142637717648441148496762741308466135036801819322367213885406479991352982468761791357853657326137368984452602382463470613347236143672277892581889740524673824846677484635947401960225781062309026677862626794000347079597141382201823353017516843166520175121289363199390930290249867419063863743452411166939213058548762383569119802653142676228274504183112205577710948843405852219199954239402407549199170379340546132401720599233180072412678365441395342242753252852998207714321295077023401526143063230234331780562967419231633724855484461849858480670821177963845470948776933334440130980100432008391511446399304417762231996390057286146496996115293984916560376998258834196645989677307929546135077694721863089874887271429545262454737253380798439893928044766170968983408680793383649304622675937540454689456634682235217765162733534307310917307637836484992261746773891073976600344601136338331712213279736661957824082564384721014053161390257346643143897659260310628061082666132173356113567449906109844245089762215623223153552251980761932655993034961554753277436126036612459911358327151889684827779247669472260337937258160877882515618510167294993151092294523766961945684423300020338860337678266443959774739639769247437158380569196972634068143930777803922467890843530783266575002078052737016072699608937750165089065687040099093709327353171365562765006511647484924657484338082334246959262393547781850036285058397431136028512277254601119948373045199057129335394046681647187183084009720812830542246511120504682250766628282817582825656090629124564635921678574283268265957975953939883851915410952258866505730600074360340715709379762367904501411516938685251018016964874968226601753199372699475758797564988502695146603400247876382731734502438973047294313338064487253461088848060414636507828740246684939000024084383899841328577095634885464191917412596477195895334893914318098915315215523281657391022304952544033253075347749653660152320476757535259891802341267616983803980739864808213667640221348749909903004559883939015946839882417207186051643342388759630458949326524591143667870528302321572447327107342722121660507355770089741924930459437636252505856943442840760738506540241759844927692310677582597793027631991378365660192156057441423427092345287819954965637082605133355319670945548946339378561571948476742690621320548473085072554278537494610099022204951061872322004382263541378404485389142218491064429540541554379219293220476579324724348565937111639605245365301383404192707550598603314193715178302285183640441799940377613858534785460036290719249546885903433995629700253419950158105868277683308289904216969445608993583603736800107903126494249110222323894108107290998173599866063513738253094979681633145128538520296769497510006205611566093385257513472545081221413796426652661368307399083165772350680900404959862410551474401924676194848812289900483865912330002096520282745116218989288688636306595936998623948228620791981709595771859969562475158082870457670938530474022290828860683120745587820511886292367819787850668723193670517582149860434895984087947853985163319767737679530515857627021932701976741203501752488740180923882296999189586822515471642145937799757063696100941340065069172358578223380570261853472526662486376834863566258284329840004317756660011098095651846230464794185793216873215994821532794308220296419241108131668508293752626292596260807814515896859018609732152484886006021299188256427523258198836540880520015100146608467894280332889437362825145352247399523159106242671826220964009330213538405421842346255228297022574611286068007064992637084008050453932388726301444000928582325168118624089272411811336557371190872953542419762092298423705534501049379294938187495137120511216221620696764419055836867363962820145716581195591568360407300907753478529782385962895210675064797963937572596924274650723015227332812246892240802935039431080505190129228501534763391332042165481612153783589889315235932285624974205332101361479108694286605432886932345919620390062123229041014633059927369483663048367519795269897512259160125429327695971718403189845131876634214395941436470666394930592537701573400759266944914315127504124657502961620812235286808877179768413848345209783911712186521011297591288126241416672311150330232803474415737518597568039009233347218281466105455342471348155018393845111279957151309594654549735980192688773845771632481307824666304666843788357376588236078499131854940397691877418291808640159871992869689318516166138145601542961207889418283460996301969205148030850343011878094567471010423740363961168128531709688612657801759489684731462349164060673625281105685127180019322300504305703305052289212695865978544498628407192614358196402902735979757517397454231304063354708190336551235327472299400767744004230278073457205670706380714746298195586537701788157893194893604202629270623643606860894669914758667818603539920110550537297912865484343991899740960407374014004435606302371839432162434117106866310287412072095047088565290902196004175938661214444332440911389847234763505718411598078018633819167305801229234274305810227213187916938101651666299634519304219424417707627277826388573055535199084817741102615546652141946946585522290298986564507537689875241465519388647568447088413116108336517745020697249259301799135198119394566578059385491876100507854388838913124000336624344358927297754573181620020666847111639372244819156351281470200443042474710471238583611427317930811980522510780637005370942783875059177437108832898204737593347811658743087631035661880404995865411536933405162760711486990060082487706675619070985268493129338531211312646227266830233920397270585163760796105126410785438851292327858733546040279005710457314226623304730945473418367050881084960044459504735481350740202843499759166876244661288425050116682707455085574363488984511682031053276867644143791030597226350365862389026743612531700201922152881041905140311624447455288938587141799030237256858062977905859151437324637069044759191270216925698064783071123303238277643331024525981162084459156401022416734015576546272382877143726714802743104297363671894003881320085794614779446278519149397683787469020364272043013713553990801052683031348143779252693370558730312513176323586618207118152543820416026915255827932702797498237521680640152495154369349903913413314227644735744996001038883062610465993137205377033016920987478151698526272634671039633632577382830938138559372286279352194197794408578515335149202456958157564504566077921354071867010453796565386533124830498123506440561817750169800330066420884795416568542511032175239480407617449585491777882084547626313410827956434042141736670405061617655182188297910390862090382717390332072859968814144691457309738127802742272919808620169279393410156322467168260745120785944724906612978623081555293714313410490757370389306175490443618587634001951373869002550081695584469042172193333947331170351547701714793783518844637929648411161476843168214219539950624544678959439502779451681947159080985099331921141162562109770994477582717000265907381942964054558146932839511002230109386685451973955674891287195983465865924952558516681286287109089440490351030080203882849958989499707098034398922084061707099838897503760484911530781518908977529942012871056886311426665243545107215996374321737203753904805351063871089780231289602175389688050874797077743200876731112897692074882065554476512467942119916002412710182335340255335301194963281173295993385018731730745035168563357194365280933432106904706042812640949797895675688796956515999821829099204331487293664135793604584372043996224952608442999086887498754440794669951287687303396886507221238632120953918687026439798501614100061162646958526179500678151111346175655284591871222384792080908496128870437114719104670661108219129598673998250800782289056457956468547053121233691198197058654717809605724996134711785231042569430166541500784842708282597986080473668170952853961850481053568583303142066390986228743254501829648815074234285359407862884682910321577521352696269681974168898535185054451832332241258869511743668886934163976417608886680886994693307788626740746466602602488123253718760471285051523461207417317900771428116929283048139533889500409909571543509748610238159844808040991225208425472101351713548570280716538600619790133515206448676349123482390499918314778266643343098952152210090918225422848497946008783348990724378504861065053478841433373480550789741903708605167473059628119962540921335942142899746435006879090752021260473985940914048573300305473253198247758848520419064905594697629637798982164015441780837240096999735887782588633702391254910969172843626878428188376700693442972370785663781634492875129971973981329024814024148554264113126956903878870473712668864737281571623721843282310120101987250854131599574115177644676976611011822928024958675274210787711682137947909309795568375580624912580884196128359699928989889796862948785418878477284829089175679864525615962221688754697162485531676550996287294658982575592446507760804197184752599225473600074034779723795270066744152480691898484773025689324333139791409493063630416394605629478886209968206502803154856813858123662725531773949914899874969976316646525870658900607628498389586204604523214874999857910789401597578653829870272461319835821774077566047628573229903215059508737167269285595251165749206543104292835576883963184241035371891973900519642148461579239630563085643483312713667197358111616316449536206985395947914005805747823697251037747060697202511407797698263205920712250029358584598481848158740648825267040041129452715524215625431546132935555557125848522990571163585954494783340373180403772784553718380314281525993154763403660832794757539841949715752168403814309921248451071932848098189142064935536548548936585553908502624474631600112118626279629149510472423249209938370523491023302269657279964146804821678032104571870049010040068950095016624085167407528484622148561576723611309221693462895273512842789425363042133133935458648681202588881524211370142033268426900697162174422480607838991901279100371509490801264181856400291292719246449636419063718251522144332581971186258188531181150488682760204785607343144694961242279532851405107222595795831332690653120686239089754658548778383433417590113018594198310103610549047817665529216381907253272471438624779485969623234862880105201071049899366465958248259307543025075996257234661072824882235609643319786991249204604967670986145144749311363630265256600126498411634125498249018716825385952854935996403992449037079224824870601077233845551135462914399596076454622292355965437817485298670229297653054832400361296915245988302402827303197801304314849990262139332691978321052561697509584262442578264426696383090901394283391868687627750044455462958789989244246208603068783436064612407409951854334777557174034392279081175379698742405810018918716972190568862443484156805175570458322235559086927687726621188404609574201122382827999506774810280655099243152483386279234901166078343386120294728948501505761798820500761923265040532201273582917098211368228573639827502563378336911173726156586677533273749594921386665661300065304957947927261302946722970972908012739291318596476570662678116870624560816954956640618585577628068812090394019879962650582427821357798237721433660623691547211357538098179572796482261803913380210077590470813646105616085352011399159771866377136179850525051901008772372866412956729576671119508272283509307745687873014196623140080473575002624856882695381848668926163494834674215411075940856832751865872599078454394107754946863840087202381519748220280280802819502302002130342951512710380991350641421933812106202177089621574546833490981865460918381316268851876987266617140536018181030213499041963466223699458585816829889203691799550933947595233933576418996068618383107919141123530399629838440564221819709735396882874493233548371246333674313137354798413455637739839807785324331562021490654455719373771115796252512416436636513132672898149634291829387979759721046271858184337111746553036518363123470522599763353206993888014300708204296532162952023099595744680599481636633192515193147144175054122379437067705117564871638504862876502194011224054046978537002140703182075555995500529521189606861906961852780538212737380201657261357554712198194360273677996855217150905517535969576600533137669355742533690851950030890454116367318607566728499270147051368095287807393453052643845912987242371552453251609349993381126327021355170186268650837831731262369089413276848360282324748144136911223612242615293233737541461597642929789060453443002668720888696934884127953736425845475611564049233414166906454428734725825621294545269702696416524882149240816074289693798997955817532995309644273716814394167440240916072397384429911894158056630204988333172454691484910657496554732966796188479096231849359496147557585833076170760363733172328497892317247537695130588411087234640797823755937791667284138425715367740043918774249215989136943257740977361596830590497175065992120497058574279109018795736371862328671747202703208445788527516125484830328081581067350190632883766871796630773521731755623195841748155669965406836803731573847659202290404759453044807672722411795980746649994226176898921011803154250676207340229694304833552069785718188134216355801266520016222011496325046694154639073205548780926905786144352219656151560875230705742460627911766190596894974083882485419854272397582493563406233030639051696719380613141214576617288886617604326298051103131248597683490206055590046086435167810939850567396545586340279109459489429928669311438739581367041429806354309581153411484109548942834447572472787119096954346222110578066861515245007314629086170279237651791881535182027731290885251920455007662690316960583058398275687838310141743610524162537470783279589277336365656639404910900559006107010955544617327214018182060667530863588626306520732800034316899341604977478728449550285428366734944825317885814360082698852665646816303285448232936344033525775896853843168637588017926902206018994355237519389830733705983225921650364056762230583467238574549989181947835755876256647637855548856025047085480707848781982937072967024407721857491585162884281887402048943893870395796162621384847449014046308216123562377144394832452867721041603239068121210178707850624737456273166382509951582991776273284135662211248738837172522215521729681561235873531817088438377837354684015321538411826665787840444876046365232975130436944537790487391861246811014062410159989417173522688560820769175889777404830095361534524903905498895543101127777539106013200598010962437948460251474727707716232198453779967768994276349250525930436238894460571496021674068426399595011042541124755988871789501807889421648798348561468825030051785599495741929168608177330106008550298449719087973780179093978230363760889092047227765362778136573165483347712286483547742798786856809188683983387437255489329742010291471373449142080991101967696257609778413637791142968167597736797989647956353422553925745982669632608071231018919929959722640798883488448241018240219244081394250073980589794156698696891267458038076846810883375012676037048158203963784242220188559116965504982283754526960000759820444377536451562492991450875058369999221734766160889530976329046781430309922393850916271791917171660631019639380265396900396038385559761706479536447128108022598424365167787160472878354310002790985405096559224564104758185810837294251637227840886219319299440952039977406164474920913500950644353586247075974224538054603819819647585762786137834035704889566011553182757589075399567258253447101179251315477764733080203644378339666648248210478285814137353416678077946838526794727998550318563505634431964374478572867469241262034508503644549310379550250753751550835021712320829190792735494569300704164481265241829317176994421702333498236258213095009930954677151179949257477865210964564397425286758467123686179025806943023165311221221444201245825595318701485008930056301422383064940289410971456565171925433125101044647475552271990076128086064975919308212056750277258631360918482911781334423318331699542258875292783577197919701281017939314400610582462067030719593407093346697660041924105202767192374353187422919839401388959071009983666582116462676255537484625688225014199702502030931846635113904010527721125681258252027314630875201766047725565392116162719123687218337769318283865932830292359490691443880484847430008114781688463282152643583112346856981006527815172529270328540486908884250263343959448519180390972133128356664595617027875071232229075950503626685809852837049482223693535972240658844283662921027945180193182047504316182705427224329601452259716712766552144424668707623492937092754602750484988603935518518401071483548357397037181687294535030553432648237437626446292941375051823426798929224168610565324356355895715731580274242283842494168945063246820534825317539103179497424338390294574109309174606966000303754272061463754512772816064788441950037870608463983567649201205659554479362357832709573393081978895045406393856765366775819777303164222209842361282030005510072787099385324704834428460213491156128959122591186904178972305983631056098572689624580673099610909732759184530560743558667170039922480506699815092454344063784880790274779047398899665795040000383584342146029687922986809502938527636475958871987844332424710712619182468084337699370241619273521826073634585671184850729898105023672995706212456461270225463843974029491491345785060023858499258875713924658273158902182780142158316816946661421593494348619684720317368794638329057640469614284041861289727672261356306017095861225574872501037857737241744810682241195419625836307472057135558863426415277200134686724164762832419499947945612541105669646913059302147823188850379287789261780776946267496649736504038440921957695811946844811443674117881118725508867952981379396877258440835661111294386462353634395222571023250900653372167177772893995753573413742936724925747136101941556275350806033789876835465767321950566251998703207359321154424067209083440565399889081678719265119542406394413450089348869215693707214768667770449202459297533879098856638200423067905168475476806910861421793286742144213166438028434687160349404520992504150044537689079685058256804496647989950194743982628030981961089342682894090048069338834543397029621683648120836498166017534475242282762312554303677709521077139175277383641512908994351958407478260306992249841921442785363795767347299787969985266410429215979422406840863587589050069556778483054693026223908324315169247229706283615496869708981076387029498417080829012056170365176864028771044295420487325271044981645210552413223535648242989583119769855582705591261826001294429369239957902448904690831007743117754707517246665985361200318711646304753823274932549246212909397369149816711854485365930464084350628645217473108430559000662408629958728983195974470006159156814793955825956868839989560233659167841665145638715138353881308138285956472327524800818546749365390366455166101708428286648277317066811425095217428662421116427191643637970116823642444067139919073639612367232768065117251713471906092594775678364729914012089018029617312262246224067859070559624606624901549454811926826086027886770932670938923787745926025779921205725741910487759616687515537831078240476886606975203721532917198291863137031374120372636373202492985715236335909160530474562247558700786240612092723608008929297492808511737536303216765366101070701046321254919952210762581168433572913468845111696203222868994438400973379273820882338634340128053609119178643046517060230947212703490798706652427545591202706619017916398868961434343074395317915609101672951666198781729097394791680519891355733213000692651472034250094728341477508145069090631473064018707204415305715908495149620943884236883684866890244864128321921563413647310991006052981638294933141711797760459617579036044644680696509149308121937059398065723213307591418443718940081751173495876301322975845171301997372065218316386615866036865055520895378875088046831712808392894847760615114480194650393326278887775250826674089702880709613482871265281373864815460448864368888803883708162982146403786158872357102707415749187632800699119809326296913654454753541553861461397548538088874618810704661513837255654396750950506071842556223918342933986371967167863130299315314431510141764819995479574140945972784449901786404074982479558268896512240070893485932554577555463968549149251638733654575317041243707473496790167580443199126941735028977793315977534520281557425469964139090404805062776798931735028559058445751215768685514823336413044914299379002353457403492727569606129320525089992474872921804574254940102078853233610173870390864294369311279355531798607016560594679230761927725831028935663772991717111033071825455344173291443400961104026408058969202468939102111491781092343665025746623773190243040868466437517971290615547180155814478172537343477704760297395024987801151833901744273657403232819777743565828571550775541530867103514945184734489627630614370666452657001820256950425273332830655818657352441359786987770176491642878798665549280223576623749603810101595405559982247139754525734665509349142048285512037349232403338177289292102015843445816396517084407142290047332464784587837222095876044715080799370897574363656458378590498327268105931464453551421760883514092256076846114272594916638529607160073178344803278836734092730963607653669643783050093900054498246260942529432443674597442850833219612324576076839896281502301166173197058892273398643994535551983178785572975269881768781720090684981394474554830936858428849103357188941909228312298397555094636768515506320056304895871620845387568076333186140942842455097482446966168833092476281646509603646530028511331344392706405070526491500079010925331653444457429491751450674915622935901582113983207841496293488682174234195198604394056519346071737619388545811700785371777991859726482951348424620238107754386556557390443636962383705214483123734692147103363737466289769808698805302613207787580262015082720951641518434162632811983389024701540817416474888712487207330274729172973915008253608689576567013749552971045793388904358255918157474802752796917709654495660432360362566493670689845018723398120386667522611060699016057382113928543898646831061760462306017743449807730307147877739972022473005527544076101156058711136124343944297487449886201078962242460014118768923541624969537875870887155501848374674833012187824732732233681063372451842374707285739440927525231631362344815968688318081059215626997261208148925179603325910661859439473478906432051434187153973744492424935422153442892162909912212231229433575733222676127181962715402734843317107040488929840315759007610442826498851293797583593366856364687368688746262077766138656069271229648936981340392017179121993708909507134208090442990509269749060965162586579396842895443089052899587457641826214723895484307074612539374072813737387608613251920836999488625957582373863590887509674544205704415681402552779274371446547684381354679134349423931664905738423596110583310669944833863668143505965543125441148320307280179898461974914176815890222975472764560569314244325655273963105456302447064504917227395802002571697420289521985466596814448077907981655508108794642872741610525134060119557645229707922382886913656989275317883936750381378848935630222268681626715473286527935603125133698484241383637508052097523213456105644598555892281618823611435900993759225479699711444383027766263819766011112151032679493018400762314828947898531411897352192237687345213732319814569419114410208389570778660467225378523892816898577455982705547726271084808420918189698566875779358118299839970982991316147151537187384140544374173658387340543019046868199102213727621790536811405200454139648927986486480089280243217534500150181023015380528288120307664668483158329141815911385164871547767617371358184534621354715834306329258421754720889522810338734397059712379046812944483221000139741785026434110604984208942427130450087689733649488439250180945905231693595188996364749195216482538442771908759916767053022063241394747564218836678740256210182428012270837603230896130339971905995574449654902549390167567195909088050891579905963016153255411466780655846775790336440584392354703113613697352837018156810721757483051525000278970274159843217463446928492142646204478199653538928022171662547803789799842226293883216026195847929360107409914920515180666656303262475646300601521552624495409631750375093435816808708227857743935614438904571346378405779699796273398880225382026924288510847182972516268073627807526117750500006016667477751096416821010545542146059934335894715651323113701782726384592351115127618325183475915648360616724500294797434430036535133434694270919867779942435193118353035700785395701366483984930235214721637225457043167905618742401462884225101357651749264770682085923546562919793507121139199175102031384420648844315845309730633800003349150910610064199797402762708485780029694834110124274295690795659984120950212985476586285025731325219110421176866091454638032875428442581179781961442646170998426205004489772094598749107249414402641631265005282108285151973040762886067958249253636164687400469030088971407816680422966208490562651239856137004862396335567253456608606061021797082683344312635426113694281078879613001576242447324225896882112802233335039610598789180040678488582871130216384060474805813784598238367356718760585230280965384624646678754526572395457900826950654584015012448009053915906471683044289107967500906628949029068176853453581851414904686907871719309396460447243925401758752262299150265682479719680301804871239639330030823805641156987430296046839811305572808707734132445794829671798268392662238077173339990197713963181483532691915967854509968992615961393923280453814207800722941412013766852510487174040377129051232063768592763388290845210886359271717929438588120242963857997654396264115952070285926678452092981818014845521536137062537104994200066034216770104594707038688448251583160590803303761256271229346810261888663718183101129188381045570867894628345120922393109777445291030728948956857057412581716697386224813341516839899264066350730180308819910457131589389343435048767667698769057040580339154257874250345281845725704200978151713457916290185739975613098982464536463651755165065685384377948763405270376532406326071603588748288114047794096178358459207849823301496043755688531751877151337296246296055400792440190745394497997863062736508846245542727280217598386143666280468544601162866888194691201548519927362179579565540762339262555368121585859242262765536775528969507795665684033616268009686000121819171594639889951151517475321524514132974283159748682245853077857484880570989126976704824480214939517494934162460204445263046823555195764904920437876768935689535838925777983340223938094030329450133900086014315633272448066093862281890214924639545171235975899772506594544117038552359197510937954626141144650115478143310479905324186997051433316665715032066149575833756882226416452363624665553055284491949046373756155215917938764808567328838524501140749331641752684313903294566499860569606837391916540568044986330828439976275783999957311364665030791281938459315850403196500094669178687019440404185536441905580055388524132335516682698236790861432805984536196751946082476847174092566822504388409167861142367153188487051839484149819302666595717474379422988593552618052139961988713790131594822003831750634813803939561647270792869417637335783814026365771000635302634763835003960312311246493105456272902989577048336945670200339214751942225708887661557145059075080432819458728247522164559298699817977636110253617100934209376700169435058579617203537862526732632086119329014989786727403876192590186786207943389081572010750339428729206877539640354918455184831853958006713557600335881345261801535104303658087310206439186001726910083837144523154292719318326941619490844052416296347701827598632624988403322605719853213521345785442078685696404236092263860567541743104159505950876467051698834706247663296021940942983286177350758487089008663305829484628991344325276397051706969501479147411314447188921708709315536506810986379172840876081776298032716998555958992679707755913945355782954844076252426038571145534726963798281279429376690135798109453705517609963280606527027063538118552876994101057055146369596562760967854461412762187906140858148164046964076171728612488687391003038857332605606020964691112880558034140260043232051827003877210074640297919565670981650765748383043105032500849768886915380295677208398735542619019331744976870796810551608811375043829966178783562728289004687987638791916675813348596712513619102233738790475660674669562248110572178273455213239866955026294310552182920113588124161546422671338986625870310634268824500892246887072366091652476177049269694901971949752744152900672079356719738969719623979104602387971735541031800671627788124576799715955345064572037656063384986767472368096534675182845608024998621697129338649952340932074217779336317278664170766682182472478809682800749065519201633140481945223535400999851999217958955783832635843951988769822610622992714905850549872150825357978929878248692766053872849964133373631885243739335952778700715486707537919605577640634417569339129669233824423083254325561964258567874191348824428927197057438818995221301435148502835826490915493261532210610967252997305480276843037108067937516783223997573044260084926652770938792365308033960513034343621396772413246479368033423448226801433343971118576293895298990013731142199168480851933965300988243199256977045711534740617996811541454058366830337192766963854335103423008576857467691613217586646606053719603893344982983961181155085413046315687702611908246175149436623836651009490919350040197679296417357513943771005744970209421015923123720202838967005264361180636868413087392878777201035282155412404519825388182661630020842641107346785025645537486947239038197492247968271905251576255754306965480728841165983376302032678491844713093024169684878870043703273058936225541688536626435273977290069266545589885192114845703297515644603870518757302311517674491193551871982212944885093386667355220677462877227878360922960080880091257400622050761445376000036639458096259504547531155763045351547899419064360549577719808689160795569045636520619077567959206011657458313034574454695797001643627063080676121949064883778867979384880934472982942071929186589054959221217077651172900812519779643975745815248230746132685716129326230084614029076734986834220184960538618388300705094915866134482208030923886606401289139230002982911957510131907336415960364032225199526547808488621492183982272130539559128767362015774792937744415856009619622307953335507018450285166620388818291995038579345145240640726932462436523970344403785910335606019416461285930487455047491791767680154847121714871064828091042755752901806627981550447747520994203145538245269791050168599346336931756418945111690554174947258511154870912109427295062472114048123907046966527771107609475563080116104125907977526703620738450038747814867459966253410324725498457177132176143637136517905643303219140797426727463923323052255691456274597882998393765839499118092265399572726385485458401852034383791499297236062282225698860698046398255237198505154606955550626759747420107901838314792657811556159820378851722727930266464673577928585333537424074550640598625746657550250097278703547975299672264891315656998667854878138440894060722373678338392469455041210659849389683442873856830507404028479692598345235821008232272345147258188569963978765804768407948840857080163654275544544417933532448190005639761567734634171991702202787163799038086399734424229197917299143803921822469397024756658164174555953743362552719059423038046139820971238495320175042613346253672783297456005670354062104025107271088479749916238021036139433320512783034319519374052687457676913817563915666349965067980825411741860817030921943704473888633920844846589280112903948805687452727086026854661240021337927790812902972620842083700935800297455687997644269822673115745892856649111140478983931377873153870329666470464048953995352256362268212859104464468582571138747114297429163993166718883704944476159364316883657171996157773700968391510053658941987903189719672394029061624933882096868424843424188495365819660711271257148783529737518187959908858308971919339832746231261439757854094818984601212619628397747661670573902555118764224331179140601760203129104895269485721103634469032004661685302392760820582502330004392236962966660404057216759992173453054344584984469464830815575681595859982685879472612699348399355748343907638835864598932392220522196787777506960337189088060805640936684558408475157055318410577846303375212214191681463118828031273872093661664465688552176874028616454935250477694129032741966355810532291351631672862955443371091878109038285092895531345748391325338514076184425290523711463591365559883561058222610059431802608673350336417082707733415441866629165506937097979043490517058678379125096416637284687594738080992044322196869202803307994775545881961636578543225562004802059492558717729145038246924848287161565100064992445684633463445166835907468902374377549591794632893347761547187826956107697680111402349310519677568605057344819025802521904431771642800763748119794686542311452179360900523466170716100150807909968418267577432191978214485732142417324873258278122193777360575138804888095858782364146405347005663951139928275101794270674959992535499910474487141964960450453265973843476310509713760046189473125004040428957038633146464904296203561737618719435986012663277477601812975532113698993973698750563946505844896173262667692339422359143727111698197276606350602768724745179818966330827688377323941599924731916741600644392515262024776102199518474415484028546924540245732309744221317538561271415667504286133582695641992533866179131196720044138464703157806420017571718280808513179803331277590337614200105606615702619369802386139928344294280235924282058709947435575868391402488628202700759024115034473705332287069653109105310391521623119443718556073521131071251192140128976891043702137162949189827846060465616710742690256024363173684041813733138969346704357528188294350888937174004132036380128559013265187207163501058045491225124880464253153897615796116803189185158485352115122862383062718478817276390498567337844507799758408326253562233815196719776135584946990304233123113351302956290063944253084318232510196870182674081610716637362547624969191741282049457033928331231039230657615549941133243856033462486913537490646462849376453662654966056396019406491519654178649939895264543310858128971352808807101360662201332543410754580227893080318149003884523043150479312266950657445785479429700506201793881977352939572261331069562979143166583396835825655207801395219194545382880700914221388244400510417908831821940066163320925573345920627200611844130258044314286840650273262134788764302119872391579231488029714195081241440442436332406238474055247655981343371053909430961452366031978366192436107936394944979893078796135708442405604732547488309340919394832174098381108052222864642996481336075086591667488210164871181824922524136702577885445755200300648987775726182846850881135886194402410064228295054829366936123842730466862787718597721048088534703999624898868487345548504396060927493632340570657605745569435820572722146116690081275341593238546051326477000657259305147918199409791246306592142104300605281085459182079363660738978404253429624869227926908167256685961027525806386618582891255873862939028854443151734337626441142555271466170413439118867754000155709255430744500123326717183665484087999980421125296169538334220357509391018520133041684111192130614747374603716171965020645385190888019440435552356188086114130746748789701177733650780642608866761792211464644447093545849679752403460463615227889197799592154997986769946827127207238943429413355137872960673967641615453186831801402766933741127623937836450105324954591393644929042097285816133391893530616192988508520982843906940084233596868331336102230446543112880289248415541232584069212117520761273138821021845091769913497206099951604982022537344418826695047550067135916541087398337412396510990998493080315983561403678347524191919435501160694911841370808701904468397665532432810797150368524934697898063056947483521115270368773735733662641557659398123900728271280112524865616451974768010985503726038404300907944965322876492987857403586613919100452070326254625873590483080493392394725663792363351139270372005735064418148667220045335462912048983953753549268869341625011436807317861840254498465885270129023011741198946203224277082485224271722987767929217014838083756650579364691648430076580608633340275919562540764630403386868913434306023165806846804616760332210087645928796680375677979232173577843288211395654454367896964050230556602424923863096691066351096909148656547074823056587012444570752287199927270990004958609270931897361916823249303591546981029724000187543615566481227437551000615444822358223668405205848539964627709921277796397838710560632315034028685566402684095204735988068405689381800800627397792594653534347020647744055739195451380953360279412720345260765864600127336603024414205764184354583682331200626382743202030926216705739715866543899222037106257078692371241603971352277268792668911214445437820181054287703451437251882881769734978964485809496138553950390361517464408396015476184001471388558779932710278267385258254296769456633985390705823725655597158543657729238677196316172121167873899815831409578656388864167162000182080353812809760415243939112404795660096375178443250357595537500819684065831757124392881026021838540104310848289792656280908785138347609806413400630526757215432437404066671742768161988806636220764106983454709570226672669980880105195781362229056626303218153029951630219756710432930833997991789534820541515047170781473755969815784246801557819308548168961179204319441600935323215751918688654676942230033974989502274258158240410066363015136656420994135471461115207198011520357176263726266967902000231424313845808871517562989419341371657347308600601619667249528309628666854654999401403336198254110342093782753598087527621194881272381850952166766710732615390723158324002289999045143114042292713624029096264947170103406052454922667955050181297177406956642949335708009147482349536062608828616165173568075138551685471108906442917878049266060332846300498739929612003775743936258770348010024901440969038706631577907856486704977747567201612366347398820989361209878092087644135111174675577625634617971082915960358591356565075684205075210206189311616479993234250093387744135616582607648843314506591259458424892662669506984976322835791695544178706146282241221504948089969380443969449288373274708111331146967190223409572056117084172816359269943376002021581767354705654520907182365376697551895331375708504795621120940802542291954390396103520661774787937560785210653868867595972101825266718820370553589121982800191662933812702893323157738702033860177361479785407736312013742303857469363237189348427584275492349798111025780953744026505666317974381642956729439601641425225507875072555354021362356026402818070467184024934527307281466941402994013599459645610012609047901798236024403100949529606420832879810649483341206580425703379808106516619442357945562422802848279260880792886915257533241904043486226909525913610325415508338330703934031031682994891081394984310562983121643543232780296315934514397932813327057295232186938044251241202315333273238490108699899825596001208292772790077497801820008467597498738323496556217917562064305261626748740637528483954629886798061220351644438537554163270519341354310548511834596183182142867497128811458491144939853324120867000656978413009444236779636219416159680524602234890436491441550001794943382915337469710241363587263301058745442053830946228058213924720935856008423292164717738559092814817384279885385275079861525912911595395477772728913662971002794325075824677689135773322039047385722531619844279087664706811878533795526689555850601427584529027443540875975429626704949171631237860649506631552607786194188756172984377749001277925652091186419910365331675357860907743735840254934867208209746143757129466733159883285353671407709937117722842679967118971937791230099739460184504941964409229421217699146451287814716430003968312190804073820597603307694974353062782600864875002726499511106648430862733239303222558809779695018308852158314659527046118628328023443182818062283578629790490281677989950348803078347800178551078046994224994842669854926561986881032069843079142380507453607038647745555984401457407386788838177035675899083723446661413033554740795089205913246399133188550323039376240497788683352600750590253327982064383132922180572153990961437406029033263567020114054770096781539920389754592414580111888803410836588616090193616596111964700140914791604806726236563573147872382490756821249324969090362786177751115967503334466147067917167887173714363628393875893974423646558636458754827186664219742195135959867031056263787199477462636517221963040949417825580177597278537058878143209329485421863932725520494161086922785184100450126703965919721886935094662769559602325443648700693277146354683335862698393363123374484874839922830449425367209600759096789238608158075916041804042574677547404308157001554775482775782832737206229547383807344044386559824890038616661189261941828036028688356766248584051329908474661163025074920135138668884928585396369466794710517546029173726248073217106995415968608739989888911211492080740800448375239471891377982160755160652593840005579953072029735220573280227010495426377160108656022641041278137594036898432459506038577300931513780379707822914226671703598130220545685436776207750192123964117352660329365923002088156051426565681300276294290168831118106016328870368873217074036360563784293549825277393758027057442696858841015576251464360115750893680185452278856892787374791224473023545108406126760632129249560064853901758738518030338546080327772821300971127190970927994487183146253248553557751520846726139067472610197556126530655921684395835570638113590319282813265686422001090543054606174338849071039885518959542876282041268684213213819546038046370123420948941629066307111864029354837014999713844126325392747769809660086923134518068624464631199952978823282794911669699448439839651794844172234285398920742043963456639742835767324173172775480164703968323698413885987648102498783705330083915529366143679279221235309105178880866914874167872645167193974079370633657244864770168373666725393483100657732353264340511566244356168519905494122711311183789717688365213730540365509074983911897801110185723611749917166046164652258921913279221974827175791593046528412112192623974025272970026377810038040904995703780899637956306730743898425555179867705818285939803354806107970442483730337686003620726187851188560760341165954814547638384520977007740503930173577963017073429652895393833704606597212365618911558290703248651646813006552706591494340851079500240145129324293338036798603928967882701367944703740716808782839467595023101957532253676530418649346941427083271597192115641826186032571152894690873006954318595100599299152204547957587089681768747733482959893192646833049596778752110465908359357606056038740679585944570590593111410623504131813006420023309429525933581192221662184187441151392096595058234432660357914074711286361227734541135330842359547126842683732023595664982798761026882858993940075704073665017816832961827987603221558144895470758905693140720151489435334417138165989536316167380466436496776840496107566899406327798675504783739793102162160790981842063292757089401731919133141614677849259703788825506386607949737473190508181027829699024172822945139676355668359409271650119742763253354026191028917632798708449534884899680191298050493692009785178155574772521165307258397428967595186146408085968180407380662793143247989632843662125807612455979054986384239394131166688125762722884862054728739442885535783938687500220031007018083046004257619747831858017407380991486225331063722203608748892558961873880697655183091374002841364352805780560659085729949428223799423613024772106045758908672444017980970899375248548691781783609699275270261677792593099249167323420929604145700661036072541093394482412863456914504702995319138854653679505326837816435208451001520994493365675720457972031127488474788983164940264781849144885177217563722498624826742568075889377641257589533532688112260148615766382280514645916545186958987603855877537897784772890451512898694541023560019882193333492663217099478559050784660266669494496354165166906639905777311871948451910675501232800001514366836652833044047535110929886430312566655090485883015635449349761827075508366156373954612317018988034113260056031344287607263075867686043439179566802568308023614710212291190911865259702391853243506992502078523168103966131447775514678891161245302331739736962159605207186507339779072507358194152251283701766222296579352621404757792822269282225124720713623347403690887437042777091642088884107854149606059147845027349002879358856614625136611191490425340916052067678062157269312746269112142939290989089472537029732063381890119848866513434832441637191028441257480589530596024393474307614783510210100797815705174909445802070861443912604669660671305727299012758454548723200364886461964014010787499746997023336246091298129079761438359061938281609306346496195231380278151902730227087720269685100623522818257260913106693893936465048698599690693903300186621637594874222465429029055872982897547236258456943987554450499359214817140106615654467558291505814116222901794755322290262006475866677435422888385623386287041886844702676577992922941544119909939799895852702142148414198086440435263801418684149437262988552358305811373544916487086195237432565252512531359091284823672350775496758579016895142268862061639178850057018349503839126888939102388339810902938415180274116218899645325079445346909607806103129466567811630638433317140491535283302329714401677997843810334349807553440165478429869084558987147348538777197869655476959153109074002886366885504760331298794613769001086113568170732860916919216752317837626733250876675396046886260626396508416557578980635214822969475480459559506951874670323310554568285650260733188457138174153220066807721768873592388135942432546173252250652623719262651494538464284768662049525419312258256629373630772049180399867889633311216825319827973532231219068076180001548877520560934231787605986834775054467170287184636198082553265830029218762669281210340330649186951894208583369490189872768086178845693573092812336951641953054199909468021628202659240256448833450381665521909084875440795275056392222272132078508612481490549179246955193519442944029390189079557827805782975870012666028604415165077025347112844694619841349607332137376505013867074308538911370317665116483019744600973428723785320868602615945546950748671512336688956895823185340254717336046997593813794605560025502562964409443441999361833939640178473709561032069862526514205410634750951383040874332321274008258602886711284456209629428992802655384140759262042291294672114253510276623459012877019247388343275080137871727580141008745444987336584348250679919756325401728413326872294328327080358949431375473389220347471126570878693848521735828288457843534445918381150168256361919819160954624378080721118528080879623641152924192470690487706354809679504182009951769264700876426076034923164130397068018646079239203004276388131829202855494099015455886569870476260833819294942354997893779570931374765161383993370089906566696356961854909229695629142563020453358931011351903668859769408942493584865355446608446791732195549350075316314361630356490448645091649039605435073223608602601120777357597465650824265077204542535470083662583103995512382202935902419470610356963823599304251284919291429557470139919043228885826943128407957246932355672801210292864448164205578136336617790689214711938789087604267971237900923024423369743247420559852485169267732722047437201754309872524447118680288552328004989184266812171974803459245756072726052668312289885139058424667552279487062651625488960128393885731787765051880989439748501625722974523690005235326600906137639316092168713006297602453231532134789192160853945040675554696443535020280674675952277084064717293738843741838661051999432595332654426443681503367501387015858256837414938560496351058643072529756038333021295543823445346009324236333273698753772195843373712272793431149389605640261662010616465222880387397966668798058635541914554868089308607851168667018741906163972538328096502145833504615276853492910654800180384203393227066014796829755624571533668248471075464360205787351185447864962308239693779996573757217321428145668738619068928876192472005681084243625088673622379210149683619253853966208963553827457394382204179340531030593917935515860343361538088721996243937834608431713930461486696515994063803978090733859625992319243325954827335301106690209345145773516897724216139885244616832249865244383976880653120206135690218476017476184274455888551053436536558997177512753010763214806716242815747462397847718664026156656058943701931254363097283891047819982997467609682605666565324591371316664937950021673958470214555621553277537597577966911419790748757163250886212847181939379771455661376616184274281223811431584960128687572938718307806663830129714308931026903893334464118081938366553553839664482824791435799570643945427556911639000858076631248181506768012564005671506845317448883653538835591852088543025519781159964114126651710190986401255324967482957531651196957861043251115407689202151889966709440043446071766625356619223187623314771172360332729639971011470419778140843746658160999164260426009943674887930720055390872199156391251927552773634833381135103760780829745848247113486364674958045965729480050132853530421317014058829241669699888249907384297689751425617165532349009194361753408264285836819661479555190088094031456140074243471475048555814071659453848981554058221528902393495972710636669300189869462466893451752851636519791416050186818889927062065081814208427005163901053692800613305247555503092821895895836398771108052969974660590548120079556323674475043927573933287838929882874372983021649483304749125944280988083216702187714589391096052843914891734416171809458792267604590282340642996029804196214247886090169497392952391871842969665394218451632120784704713287853905408058505457021184878587858635319640011616050809150919160773569196803213204468564090290268178920928139573309212772910566409764834638187360850560461088129777181684437948861878270797495099672490106617370172620046530272834562892523712571959887001683654918812066677348773779509211611129335647517123995271128965135255613647644473564040200747917492797052903503320756553754990939316240130284424823160300041645415422268539066890134071203869780335678546676059108683448337402878536081375644680945947312037592606711568267438287437624853421635491025963194554820500268417940810902928775695760003871290385456962281242962649881578984072198275545449637164562823446722995445764580620190830646942785975073161977810197579026982695973895778153288241875357884676864266299234302513276095298279160283217092317067048901872866983221800911910327430623993871458209060914291448997440828685574123537411557084459905572589330760551668709254538322120581299652154423818609760062727248721058902220227693770381366414202000021468085553872067579182147502245126031157170400761380848005943370577628189761764613528552930558273385716753455565203858740883412866585942315970059220672622579312397120120382357313094341617413313815335220957946428300484781307550451779360749787255674259317633571287452255797362521023298009204293186870049153743489616906446304384267583031873642251466337156222184185742712123341306272693090596806503642942027782143939352911284116227914979835502986489153165460754555916883648921783050994684504379109773561271550421160799874175541987661963865378476809018755524404040669201801973744522433267288414387165514023961804210028182830737619114722747134412756073341172741436329882735475379057725456113812889752136139603358427229302011349534448197696118652992267594557672302656786806754506109968496673149920678820797396246509324338908842257815718518982617882917358596386395936911882001924327588120199109701877615852327957498602626982012759060860661442959672448695986176353252846686007523626878306655828435939515709140306824330058985506684375927097510903890796857275037112210325756289329562941522475944500665518407218170197201263294664912041602661612376730191152015097938453060029264801523128610009606082897414988363196207773364083930763639458340332103311770143345934614150928194767413879347461850716548357396982873121373439046239009569636591865626318157926403980996174272034649488992022412025730303003524014214537151972826411066468513674105336542262782800566320027027847643238884743098065469383317291911214085806151181072761759596219496406287418405260337688573673799970215089601555471191181544830077773187906574927591380542301689356860721064985956507111485108772629890311857659381906902452556896227694186547425503483779280982796273306435014297287469029746005804696315922222705217965303706782506304041062923056518838414281198899852406098621537159309649283996652251295117825214050200833182669108925161119183570103225956676803194880109234175465557791587735238910252927424724180879652664572501717150215258555653486556476914401059323183015847213500492398546644039800850344781425559208730182079640326145043279886834951680084787311035455493201535628943299357740011102104915854144696545053329081277886752248269829841837687976571717944957533879530930620357266360183827939210213545192098626495580290986830207975715365216565111781031611965400744190327567085444343260192065040085125714053076253811879036857741156490110060087002006618935252239952119485070555668517563572094389573664641849063233408514892843281361087217784760562034898330920198709531994391245600176507042124677979587928247513299401343907549764219026393933014966298060451311790061104148163011079175812369896846210826738163758235188133927431417265763156142207721607615156473505128851410576620571999077797601726843231945185685962124150423916713135295851731049824821454535281033334538590652845446096877098354003152577307753683712506678358597297348884017091246756085653175136921233874211164371293095709587213820896441817022678040933500997671398617281551580651366537219471473385342963063754085713628708964803388395428888850927124965288621515812922162833072151053489096173842981187007407124153893918591792757239499940705379977441426731921006955256337986518335030195604502089643265023221730158960893856935134402338940631909838393834274454848056572035882954554533367770413826404915997537812485881175049983447556388974829082120811639232412484724388877699707872774155786164575462490711682703725711136905629911344092860472831229132961005327301602685348922498528418920152985569271469282450358987559592103544662579645835221091460073032315876009689525213297241657349640862452216586056561692916654824666573366555865630469544389118900814069474932575600228001998655732412688329532674779680743405021812960759935834298752173036833893338791070731548162755341850850343932421800223685807150003875600176228597022086372996604541600599451296790143202717102269655893951794291140262729019161740031888073228982197326552368971404890889785497256312061154240536900430737120522167739327392965913496684772424910447477639615173155444173437993378278389804232931262445119503217146477699940063651060953506167904564283894973004472405468393974185433882524082385088952656212970309771433861347767439464258090851684947872907068143470911844165660603167408467631972491143385374326550534709204303914471121259088967508639968946049745720676474905225259028154170031026718622210265059113101369088141704348130595038121018773352419483316403004879091574386024705530860949519737525462997391219032698934026239622025380513787230192637160912220542086420351183066763191234644307210951088521710109918058337285728674795467407698767990403223528531813733279175528417556887511828019791009491729808854565051776236048655867037740509319987901199928722931932624562947578605345233256490433943978965124183508406252432280981296573754701634366030190424547179566142363496106395887290444186310209455459393536182476655270358323550809628552604664599124208473493596039746890901172304761663658915339209927942139736988579366260793313794053532358160073261007805438702811272802913805864898654386892654555223499130623596858113576423120468332405736459339208122426979770565030528866067237793099444757261936595681960933013186679336035378999195501741109533999311234417779059962717749199297493536013541579587285129316387606569061855684413440008963965827738411426094462033687198855134807053177999537528954676895587787198819346432795826563103359393000354157410272384384635769159590770349793742688283096539743021310980648728954522258461891600630919208519504575782138016240853878267263435822449763193674689827416448254135979539717813088346903484452015538710994905720124573079167894282107216991628743396080685167128321732665789901331883261279176383032361107506026705228544980832939678834478853922635187468282571644016971364827762274787406229063098366716846853560119405450776142616543423835133958593080631202168104290135151917000801257883384807708817510729817818853634692877857736301879070842187671833558129399795645960242661584995989835181134401110928337094686884637438102988435588410816748124873259572829072088476055447080200657482654402713480555844214217650111479432214198485358545971708878240311728663916956509281588335886312706888206763973362820421973138139141814273054830132992173967642316551152365932607475596086272471148057704497688368103567652317555270979154396600589332508721506110081579299510346701368084920791503857916359033537614109689166779235846713734617626685228965028758311528290253170979165732591172138563950971857225501339895674686439750376869576329773616188716684855164588142933505972398118734673029929025218233845153020486956839894694284622428690719011331278539751669074239285614498279026183851350972944538059338375534108580305840042517367593444910896157027722454511364359183724393130358312041569399390039933441772741724678295346629308283693608827348852767533542643734040823095432238257371688955007180310831366160192532067950516490339057247769479897658742153116230848094383115213970634665468363917087033612651882062742352857645482073481114607941949548570100591214574669101404162982731334509383645087807994739375822449388101969242835619894613886424779979415202167649154984245783756771232023267981960614277034909953729992766010138820996588393760334643472904186345233767617608664401567005787428688588073688334601227239265673967214649902446695911426524744602110153296106346254489445416569841198485371973229066569808160971435353899359411976054175734918521443076147457032863028463717732252065046155811629403495806100995794952597702064117135595031597647172311201351074150121622480318499315304555188317678197663264238133544529550717632116762222338282948764770014905172112285828645651085381683816956268526781751069349696612967533688371082069805225452073367709098378257239395968121808567057479769755617267469586683402985144416759641621735273776837316262366970851213890286175728816489538061775018772609298925420797788027088162583369180818237841237832638404109757428843817599691669583369363657702929857782244397013855246716686789489867005311421455931498118141559994729245557715635722481664068947168565368473263482255234974161803837613582043326186398937172624005841843265470282425425972318160714580173176641789841558654167305358646016773554969462953515596558382315338258540940579633530422166915073745324665203527879282435147134725243506592835010710735516229049356350830643470736125867913866016798990194119035093284958806159278495767330726082438365922271649442164135087683522675427872060226414298269569083607464849269223212279972888541149154448894108704176305096950616346662947842882456739239473505109257413002036451436072848400768770781829509594237398268509675591582488630936542305466595587764794463843962152435542704483310497061874968975567040650101247087052060055387396242174821738206232346346334616711343060867937094541539221647328391993315984623902342403106058472276607076030846700434891028770940561887225283771517847056365700824387301488593250196429048010561120060933088031311729342775135667967162996003269868224576444848245863656618104465465467320862920042444789648829753102936056202404870131691370131518947654113660929732101518116628938032091035512059654512590502980930485660668158247420857448277174047215413415096715574665777970989683693803745464087069582758192720112112504899969763003699407087065241659711049029043578688410060300021372543148975722236649076300946283595264210675000394044762896151649705693321796707424478469140464521555948990970496552299250892512946140462988914848281741087652006205675558630623181972054256215807791638242682562883876161408846315398842513374803632597888702724119074759221141421511372454925974728640697001926819788055930887463585617902681959442002472629593161637492929315344549172812979973938845071231114387172137262763190259533678778017313970837363429540936676909279706851081360442491498938071181517012519809260824178550396166670811096592975044190761242501999557529542183616567581291830886093023665132455153632736576304660773139919868008660124007515726592498678463210623170546415714392367166866235217811576318380262048097118338341513827310656360202515149323531261894644598920538634648663320019600001489331623078631960518844176262356386812405880700144968190879486179350382832352873186795641101436355090598771305136747228945253247847403813782654618910123338197158702311148530178903725762778185208676241476896060618060097494269679081192173150716951392954106014206013515784108681599239009242730298576704233467654900671410035934539763818015098842681082881264516323687578116281368944509602401835544420871444491768039279740836027351421531824199759867749541148446800720618779878553223453958683791448305739809556481978589046204653568308355829060089907282784322357682330400636750874480247839464504575828589068809581101402737667879279036666911398952109140086676982865062307101432378996190087219274425801563777941596623406325930472355490411462425667238199602563235763790720883650448870165582086721296941272808708733142715721366560696863791684353427911544695891259290617823372804138956603291738685560456715148754888143099731442397376343159001709236028968664246238479302618644446923354749700271448668764697937806620949133961959142022577225467049113707522951574877940563035264483864926811740224311339977356030273264890023886646966450620528990565018395910730942864455130472282357337036152357884813160170155905785882606483988698795798658816074774138868210722943745134242702888934414354918484556355778527024493251597177698527044676237190154947590478853666761356546591466653163072334545156706112336377426392248150566547578636750574942903044686972807732284268704576247752841493338876635088235436065699366396401402799664965227249923584786695948099746541955875678744510460857420444818091563570040474927431487238101383234915980418691590420694745940135887709584359590626922480097064052666916910103541178030798528696148664181943215027419260119005141599431356216064556568765532412526417307139540712805636728384457146616340278869704146831760893372527846750471909535870940739514085076474506251325407956018512608126006209195443983576199581576929953971592326002326280765057532400530928332684129797847693443392522855508019367860308561282648549312968449509864662235646365056230659953909677011617144404087889507151259869978461022319128319608633147335136889278623632128405595697158305695950938739284965988341913450028039761189642432043690193584744371265899953332366185392296773587238686257141492855308599002967604508092395075128015973163792612799831326627097562806099568696670668453373337614353855242994891957595124664617925521369494508438669631472312023015594192690168763019463571376653167559653313296391976440044164189154781390893431823717577652660271332519798437127854971033210564877432454582209543426897431348375815037768441993606321623126444566908317650303695250037463981714278241498902324236557607799848706915145605022264833655522150182303288993486325831937856247162418692454371504875524560570787453684916267935913921180104631362001456228544582265736496999874965735006818140181695972308507025542994078954235808549419712732304691497591967816278901338391301222764124307518262644236645024033434651666686229606629881762229547873543352377865957670146940466404719233369147711639524430533377957585970578736404588805301133087690041984691416942526424393067975040891048537119791506042748395880467728910793856874603527419054069938516761241827275004026779779520400146985873476385415485124670939085106038964997188636646022052522354163943946770161890118479015771269983424235520151491886077776315725647665379407766522676387954733990772991078171293899980717845731765558748646860414588637882567775894248404584759554275474549483185154872280797953178067761537972662643540423686700260692529809485047033507471342680664798555209040295397123423159987482815230071530400424520540119411390833908866138458109005039294410586549374845203709998224264057567258387403210812803752681126654782014779190750262627570612509654524111547337260419247575084589986002010549005515540043346587205611348353650813488753315739313733931581435391797506354079852825032409460278963542536801129133679148938480683629148132622882194404494148713072129733204709379723798455967407236139949711977080059402666582029193355031240468395756091881415728997432403547591120361159515322805737980718678779380898197119471243683551982901659190925442175170903368956380003168335078621846557012103299438572171083822781465120572176353806724405868373093654226673300227508148525462573860065452040456500268489542910221912958699483209715569272833292565002748333102185044699090269640271729965001299090790616629433712673510491206031849685805362058721540879777638469624131311399256111512102976162499865412088014164796120455162459847288356571027808431238749278119752632070080170397205207280688412127216964294380795542885700608383015999676271519903292416575849566011738165593638939981307334821256436181802026431423636219239302501521452460660694958442695021767867858730159480883075358261659507635841336638824899055749228549814391539624008964799086329668289920749478052775526150710517599668441579324791086180446046877191878185669813683422912184258728257725318600064140366008046961858248838431852366419498564548457171138815424764867035013627680742585595534443118278982200499918735551111330809243099514520868639096870524594371565303223233393647216719732640291895902356426257319854495027891887674209878465163327929910466698030481705563537308702956883066434513234016005880753509690440399773888021538670880205034825306850780157928283889714809932292059840245531759625327086888964121868964609028090957152665598908639045773813546426534851871691059842470617926421508665359781014185973600555254591163581479498860770601269281559804961066449412829063289748153082917612779073596258461320817995051039717865952228795815450966097557778311845043990147808336802913706285381439124690792684040489454795831375251536557916911753831499025783810273019513706590591792647747791161478426464057130186508383573823791903760103923315450301316721534106121450660589674194203526238104566145907102813946736355198953049958769654813969027340544222174674487993011897486261060312208128318638146113480170910987914272796030686559890965089071688852625323316586470869202718302557709612722591863995614790580571788542183226649008794445885374170318009105389227210690632065676192930278726475959924485047366570669511613640561421774611055237793576709307886495595186889412355335344513431584630824013620294985611485070673825799615776166778617800466275602071886649357537048010652339961204181036511791532217177482618577482818284348836892648767350876215646751604171459571712515193221843620442704096359604225153041511442848918769182864119796342202312496798890937850234850749457153824433587142654804489898009862013050179927108852427458614825664983024023444616433637461884023970393228581319545370203977241307935130648822018482980041030140794764432012331239829686556489283128052116213709203251112183821975111971937751592308209445026255418826842426571808216973918081468574331752259930295019869886640756695048917994209987699869672371328387818572399723304420322536938908964156063645141966476470722542528859984864021411227769981665021789367391937434852321705059823668956327374631068121203761646230052232623886213587982956716060436215722041503120198532022932270511467518545666244436957882543220723695914032945236651382632291093959725781679395399377679393944370975091592954270766642930620412632679886429737904852723778816190941862571200055277191773600389821371099539171100388720403467497270594783201662955205262186626083095357128893995769537859998125113306745564688796642126097160594558007970282063436597595798024509213621434447224695663988184459945356458021364748578821405120588139695081220511388362062145533381607573496325988719366895550111114351574643398838033392744624571148943286178283795856023562064988973721023346420111805133664973659681494908319430029578703782703279519450416610907983895332583592198016517179844559737855178422314663758467954901292269963426311816290593743187056117620843211658162465637964686653250009657209722155724585097808426317160048468527845099586607079201827784920260608259285473522831106095987787048716141939023694327648851804313989972154560342649248915711555552378113310764800519530243231444715883789907885093004476400400705047086016071301587161483621878295843715514601017993882389865041104087798171644157131447691816066526556135916569311563751882504967947710175301260848272774214777000452294835914427991882507199602080203686409105531778747569635465871607673010558049802771856380237072029158223052343057139452791260326785375279523854301982252931847832774160942268967099689348930537096469306539662116346464030498613570615532077960239281253787683122655728319248169499469679960696710252525197212979103398594539089267433841638589763352135832939537543828934886063413184564218777881801322314369726687309429683607416781143219030090847769338628867847430659088706247486072163246126672863392855692858844110461585824235697937770526329731346260707896942660342521179295055260027726298877717535981485957859077446001045802816699510595821621325064808306018923928591044346279558659299730814277813000213067889362410099522839034555459789996904819409602241801419879509497222439751088512750896194604322350463428904354851591835828625894087702148863585414111820286259769727704608182305947609323962708824376213992399454948950488470049507901815335897847429490084534065490313163093269737364356513983572009013085126019469921624862360065567775096354344937332854821715020128083175125772313935813591487153218202196087090651327293660372587587350453340644867804144300488120044625983520685952515958190994019474174283583577378299685937098532778296927482862910259895575101782634436908308162803929078664950651968018163832244837188132477372207829673582506615514284104752312759706441155951759020660429621302293876783568123304928432282179441153735811850785418145255952591662512163637278727269105002980505967414108843452723584859562024913290516887235839544894077732098344497077675339198760293212489350147454777250814167236522023533485168470114256026858740659954277530477163223654701550714932077854358189526528554480080844221741841757481846943991698799368291367855671448178911362103681761410144606747195745436436056001551776967445270262051306043336528336980220900615717681497199441858517595594398681627874648946255453834810325601601857778380392803234261363711296674064499941235494909582517432439782802061783588596257595629865246099461954839280524193400981023795486742134960728652199773697471097810251368333384083169317651930026134028553015360022322850469560400830759509185477391263238289966523666851979459545566466600793396951384006158133294135811905962385995130100251062865513197599181565751617690012589159324446860433348199587710846308468955414091612982265709922666333864876581347453790910951460444702756745201518236071741255720530135502556144624892370105227565340898317997366856328022576359952022550098414756441262621221784571033769755890677964533458916696315709404703271921073590312948607144043080420777251296872348214745121704446101665217526143754921717724374466917031954567122820310896068304832158103984949004176359094523677051647693453658087400122364402267025108288471558160891910285287086557317557414827950778273863118221780491150400038774993770430200288839472774212913459991246517503986750655259705575778402495619001169680045096913501598867257104047258987287996319081496006122555868659102835528673258589664954211234060199539640917424212701687080553415005319792863566261632839925548817401771145651965345628289108618400990641229415862499761429092008094849033569548992546245011270511738695392464911294549174259609774996087281607426647966307330972976679674386380356088970860560425566254607758616110374238525974787408271752302866617261746313609464899756229475028269167848370733023234189433603306699691393811242642476529619638163147409460067739885307412288170589057664457952762538454701911277920529247694166211578817892624736766958778596971348316865263234940964210786310025655147316857220461511117947497725140507967621669144486617208708826500241239040393707765820466156085869332207658067527145113680959419482731198888280661973157449203326790893488709057778885075696368752076735290088060614051469341620459874732908667060259801455725625984434321242954683211648683048908736958449763455935267745994189308512994342547426414901498071349190397945126649736801829386916666585185282327965041495775175857759041461437683602148101833886959568642597509590563488441043223464396115870176983190974209187671241023409639588347730012236291607303895584348706026387657793409440259593844018263594774143181812809335342049265955762946437651347234689260738546746441916518135369794867772159872812955625372389884411608106405597527731891092636140735876792348989613403878923187402083359621186454303535441356740104134049466438587916445872121295383989747483044887865494371217045490198181876466204533475796216248279204564455709329558559629509223658024378302195278189027223809139666348970798453157313596941663478842865137095016484925195285526120816817663404469317416997213521253568340249093280101383422345835821361114072378355051677851688860057484525703677658042719829895149248359494910379906260098001276626668896214543464657254156353524432644893209305596450799011044712594156479232274500612034447482681040869882633726874424841366209479944379062092556284048110418944263914615207223970334849998671259802943349470768656573309534680202814500632771174139330365451317206795356716519493147693310773911922850404661464995113059163273285022967415979458964363494847968013269572865103289723810897561666791441822756989833805180679424091744526173492242081955435042132572152173494910996628684428669504860261848481688550820049888668777233914633688550465572282902227648411852274774818754654611120955800006847280862001533695643651494581462224301436493121751657645492070058759366785785899744551130018417362331818106502810230560499855449695044139842073230715202636376278447974621429980308245715435597672929878542424965468949217879579296946694408769907667000233156910403089568631633962593294891662824026080549931211919126315880597710891305307314387245975576040917202901918429641070228802423329051046180714331329968937349345337127387566446761871396271011752916300060352018600866386598213583979157396281255051450250749489015918871891632361507648522592536318725464818549640051716159009282942403070663038635438688971704281307430925193685728664351418892318269192572071205268344466447193593879031365472783946230418752830366347273077131729679343172672205052345443048887948409320244922303637902030965453520691874097342134907503499803242538495547520381211120944006173746453321782585314692316828953952294864714955173380109512762572403568332847866179206786283070848711064125667111558608656365980031717522914405904040529374062465792124235891610687232334497753170236125457284633078793185092754527775765370389638780412306506620831820366223549355872429908635088394235567029885176810158601813566765518822966784205084747564214109675924259322305678586947577278603503408305382321237886250828555188536533458830486563439866379721598157439025419830776407654220154904883704966155383833100149049292443606295956524533727964160928161128974903212023417349605722892639374104790289238887698762754367362992752084153543971716737855731073977238224793083530273640818807878810894271932346884417941306695908880446177026807127800796323081724976584711263216256758117055251069743143486508672045392776917292412895732396988534289395559994044609516760313973505366316622178751854466806661682731552332799445138475418775738518349200360699002504097041329962299296198068883504816056823806950188987758737865356807270500992292170522678879225659522926925266903815436266378045869478310865678504540018788676751457632523728757721939834211401564958362451306700463639185281776203604312120919776255854783305115780804782013593996674370366411285585286890565245904611252376979015718384713062949438518073571793984744332733581000131086787948913640806022305232114698782619126194141844659662054321240403896582726314145206293622466056822687493141494692513075976781135790542353259720890668654697331728991383369355138850177005402116975620710520414583232674399817809738694161012223776354842649446393070616567645127767746207738515057335054159228392194821199940683241664359288272445912908089878900498370055680134529913687513243126841704991770183523021940897136693162206499708004725241477817883959445446906316679208604088929520500420673548654510439184207899651839467361706310575000323559158267097049302683253284210839696635816243378771653632648643030796737798108957865025811011324116404535485298793985680280459329568097337860870260558715813240231601065262581400816880491171380654481487192322974423644169646758530318526649265324433901155514721205339366195459520453668774388658727499393627623441597662897686414650795995000906615183393376152656206409950254120658008633379764694474594747074325289079675750146239064586969746784506528972281627259896152036857832690686512913426566848918467016954446790460681000434019535526502538556256927011229535312692317891089021709879073045467243688225233471991798685158818900076490924981684897988448439941690832840071507241363203839729807611505538120803442489522656595750425634578427090106620247905818326258691116331806127086753040810288800305339106804240652471381036817734427070329865724089218461343973404742702344347227192386111220789685124280911534641826475039769917171092597962644002342779160515989271986729045065447401990296335412541574853967452458952080463023367566458111109231299471742778242324016180638791955960722445316025358682782146539453856504564707568096642113766122826697224224910616888214549741930671584461395749379273625847383992471721870830356468479967892263244614170008342123350067626246641074937875002585812154265345496761326388085899411887691436685260715904738509207585946285924100210516641128722066044383861904104387092802801432293192977100588737616584304523616914814492506584911990961613760366925753316995029995001820178225282739670123562707146180174589302505604646472799197764353332886921547634275362329017684870644996473221997636379518745800537034502406032683670136464257675078476809556261872687412016962459515455980453624179804278616595375911665433070382716733804414271336121404288356879111208611217897221623455736102108627771468569174944355967871132469586745061519746638069798490040975996769548614134378616792438774982850542674788327866194445727673847045700603309308901454431511152156420590305134385039878531328191130320214656501432971328925899757440845749340003397811646049691440068078705637741018157426532780483124389535917466985760887646012312585639149263490401868346529559818177063144559035243603865090319168863815559981166075303616072586946728794230453451056731656162917597194138555496812954791560578187296474565978835847220801012885449274436066885582590491850161687387125755408618551166879467582637554109799781909301222772408505304245279602492953040063243837022279283464322905840782061024996212468807500133731647002129444407391051810622542196430925462722052002779612477742580034504826754318600837602920829635247338634276394921999318560441593573171239846119981575031365681591607721939128649718368615558391015128625778584643487013904426739225725808007027627216188082741637130858593866598240426711791917503740775480797389157581167418748469954488412931448961022117042905956974712869903284577534624435529896320855395155522728678668517462568725690136145019806982520361248634681872408827030749167844208387813994667404039911356481408993946924169237871562507473145479915210333776773140093952047798931114467753631418207338130489678223719194887446770899069423503943574552253178023681221718445782294392655953234815486725985990034170142956319221471477775257453637303661220965921042400539634670953018164751068569035720594090240125067749803792562007919959447750386337775378824573862355148967439717601331295074466710458056104998191917119091018789152130969528420856327068003813101076501401467291740595647845136007630461210281488869621226379448940054058492482914368978749431866928500770566994381187728937953610124969191678505421123814192279755235631204929485674028022996938890699676115781096976837762775925349798411462324270962429491265097423699371911230423437856407600123324774322524434788722939330430699704219385633245800414744916972229187332151410943810438839606874911719674878224556080328457641332085449653070916221077102702680519662692756849906145781859649485247164589306866875253451737092909921487813827946076510499951627008616801618715974702157858262024511531362102541356026455202992058039586910786848816274486552286506534957325821585703793752008460987105232754583918565611539666844481308888063447873928894434650562042356081148867500727696056861769484960530518679845781259348778691650937324661614787200034674457281159260657750824511613416891614282547433878289675589748302636543998134247610218219115888835967281999455799323024378042385792337721792442601759427377490635336992728467900540308336081971515561971679277550634012973731362694434292383731315150130837588621605224343417294286330157610633626866558571893657332587307764201866095069035660364934173015802552841096045329494757669679370372896309657260102267396001034009767533017910627587467000461300146348056226158023637239102930720280155308977639229421822364937799609305812214779614134980250337500021527100484530202103274312311609317213100124587435006382223493905566451821087056853809765749044472762898484000102349131489619279128620179860008116966971242604688341649605353865539952497090562465467820351785593232902314971786341119807345328571131083239349725874625147294573985452116218998672708896667109436581851557377184481339463411614774664455278578529235894314859249515312249308751247558679655163536953217075958107260639931598622343167278442633985163006172802473170393083959629714138220122365421520057019277924984968236258386154769517779531651607957363012967584195164634193409227740953655522346189626876043871570911591817443431098298329260194179390236658219560363573301040538846555393365548640535803733377433239055415167702000214016956950648948996484360554485220242749985011189024378985899400000992679332518346053189129806616028516867638393533107733422414980973264382085405507012182514509396973204848267927125958691832363743539995989140273912232620598771783892463566998496646923452454587411693009439101481315616059779597361368083471521835765351264771390060358922955265008751950407860955225705447263273073782289063135783866951376292240937486036187235386591147617378848682385824805537104798404537268656192233395857973950032525358806083013032757319758989496242425503274656915570548147189742045897833695102317750800530123145054713547540380771470148548952551837392653511617881180683310088479369906070878080789111300997226245237131782091022239453472917886501939144527612104368295560999871396222756448416832337401662905062463765235820179376912615724440858864929199864272388063674326165648366437860052582362181328377615795643862323404451062962308317818831746066802931096605602228067999882496612332349368595295318734218439015832623149919945810382042694681644392598327540567654530090930471243915061877261767912983719289506254427632710602739126394919001118035210473138320841055317626977986001008356235834927065869754855230369886672506643747867570133917714778116613169497804862425494478149687933995431012195436746863880392008453200885863248923363864901961433295783043558482637208182688511923526173839670926188035840489655305346664629492315762296133141293394118889074955277741979151631170707976417559263176458646790872221006237291307734182175036228843930204970752771086202449144713474649462888807104075601842341466681470759664281432439984415910368048266860841189696164994455092873126746515406254672353008703334670671472814777704497777356636581866620970498990261657813944860954798214404853763703987183649623159358734968084524502214124650795447814735753207842396485906247691197794132994688595756811596587732587561989395718121655600158690253961786333478801815578036179804765466481408426547042837568779758123180130046489388750125826423397426195508000948052275522896803727683860443295070734381192288597540705762154499457044151823011140266406432852210454687948241826226515537193312833447243312890570462201072564853596170541132794029343837275259441934953743942148449217290044683663840284217448903810842055526064305474145670746855283550206812675707080248800742206492409611713750793605022000228452801878747017705652513028546588450219698069130843428919329690228952748296086068191688040895710303708594896130426032461022317060588382952891664612385016975229933212256745664706948751837331038133128626761508522186809779995493978438733499818559161880763067515681857972293557368058492375369241620855759887785258732602737549515079873050189784603112300355466488165584746198216484825939637800539837346400831957858379828335175337243170919007151867451465937981153719758432007266338462375081351944026887236986136190381652990799237334146045914571140891999088045013221398983315158877174946959968017292863234909444130079070226214115872277922239921807167443720332005435493465158307345261874075127705687787449197207465723778444574445941545057669438519734405694189507079042414377176077485059120480203079771745111018837809728540782800481898208986677128700560639723098812204526304777914243316640553973926689412017291974340447355645169938255255287567659041013453949193120682722775091579749446601175983810284213739058903304789440739434728900792588656808885519582212702350773157128802993659434533451961704014351640087843249388052649876737693698735919938093868356647754741789304235946776472813101654416390083275973565846135648163455777588895685608919003906095187402935872700097824011998546300690252847390510737622780306387905744119756162021132062426997355012554305327814287401243637388857729404821615093387419333543533173250884478969011786041737499298954543670200362861890792471826398204189744019567943207384779093746536754661720790524497045250385759206290551619473683176352901591028299050903678583645148586784107645286833392383554884366167050814692539953462067594150456090634504007193131034333552855616005780974756879382298042370817947570798334171007200342714002087278668028468040775908221476867797386492751426029238213317221166277939312344170707917575693942676777130095938041936891384616247560117737378834468373624193759996958139193697994222591581975416842265503640285735646089245112836168360936165977150194130316327058161980290427553539532169337013756507967951363711705749518823650538833092231517439726273719401738307996802392920321844028530499938343290405363535465007678682230372602043412779526591478431242339797056141443062571612976039096720916923696151290592213947562735861609226808423674188557102654088001270023980570303798586226199168926894274290940250620644789460937470730609311809156774336026871652072049964619422991740342573509062360988936336546724188725814876754078890657007339528783759019976715485948602238570172671857802656509458279383467793916928116618979050260626152779703507148289602714780514575757588355452090677409240902362118719266742322938042505326336193979762715574974011249100660093154490338171847051223716069804085589123635443313320895445756617968018810859480986973510106995030014475158189562498177659454033353563822468561521487257065181177933118021559615684493864990641424879671522937344857953051746924007546999024016101239124430801622695876106086949072306206365231975165879755500402327771931780031498074517329249171317585341034349817271315202500448112165382764031579706103509805343951592052952245062276275805351724708111106793702740963075785478186101301640162418123098556466754972841484080237599173311503058057292777637844834665495396240850117246334555346610562893584848318835765108829080073169810521141474058150166163122565201913170527293772798090057915922751724073899636429096696748895705933770436122227395131578829258456674877486645470014382091189836447232603078258017864797758753288162852443046089195251563528002696884164908252335212476996669066331604784307028173109144802794201456488090801971912221471297912838120829424709753262860974647069349658943914526557417239930387047884075751564649849954920768457214946022072795704741767970928094535168699144399650648536479855252370620725417061710076334327559887259253728490245550992733723040466607256822749721835080507882306853619154378230647675860039966673748515619868087148569137772134217920466370860879424307790058944080178027416341834651181851415720561977200049010994548666693214470421248277410255927888639342211271001541421623689270042566861364446305534390873677381322371331056691463521946955418621112829828073378381837046887133090010676809165010005748878124802857464802944279695773887876206562639715095973250356502855303034409488993046746679997674832061896842863425756815748718065668221062259075862435117640334221129771640796743469148290849083302133938728298553607992544400453289660608671570890845160030322767113984742114651215843998968701701595196977202868140076359799357935852802100721925771469507175122236621194407135684388140517515489291101713226846658909478550701779830848551149083817079285655437427163390336510581604979408871256552851978484360139497172363861423127272696256673028276445607256242235109720280401775138074971812228474393995360821828019820781507516113222144529145388340937271138613151688913019998163924223243201596895178316671944049333687825841082189031313058557052603016495896862321077360615755006743514040787195621952911537150242994714369117581644061794076191894926931167447077147464982415578122161138901327704645317813229599761033964885914050228840702248853845986418618263957904427250053244910880728997946588788614239541598037339598088350655121221419823500931537560006690429209828986628658861204931983987560172496313413747367454772584650214092547418410232449453293377254829405796487200198274203761456224595479021134768201355105442158685421846671018580827462513011903706689316641238256972770784188856566541422422757405548219769501703537005939221317600775236718966968225625499235721986951731339958097829741963119431533440344551540935469328886814746077161419966680213539020188362544876057086612556050112303579199623636032367302612252152159962488894249571741213959610135938582715502735156776247172143775809650701541053876259181757579173012906342670532031728822977651068984190783588345751902789995108467155806466323998235067388934522527968326183408169316901574344408666465002711350851584916002063531244377479108014760865718698898762036826294867499013445297175944606899963875207267436179034873863827603809661821367025863986041863843308075004793868964816843760547053313993475791640940735353700958300037255077045679472911410149963061895697595159419258480857169707724805323597757117985582693243610853739709117483999920745491429565397207966629025214414783851944098683454193984096192539681906147760478747638477191809954188592819806933781648027774417952538474663041682900568630283700432345857703409869038995401317670678504142296702502066601406265546377548546729305402002115739855060901056165164590660600732526798981577318758242982116639773475833949554804410305800812528341912495978315456581441753994989132486666733931615593826202764761987184213326581405926167857220672148921185121274224922828563240142350562050683952035962793179432410573106726491980220124801738454738269873216633520429903642834417600152474167807034802540033893855537996246975332502230258011569720057472565211356543841179942976249175346014401151694880660248387349197400936650682759583152538661042604118588981270512335437777607983380545413296989728553784450707468724170125979137109361192496520538999863843847862922307957774935088802404365186319919956150975887329415723435257090332635531506268843187893048227970467923588590262979592690759207646038589781268507450123296166596784095394278088449722231333743242836063257440947901716552573983384290933135555930048951788255833516803954408125852352324623613296560487701796197111900778818926847699477300356180785413610080760331217726958671594250627028134364033179478327838299887420325384272335532223003464663679566487773506364146545096359121266793118368388576542744749587195859179458912470298757498751863255473076926878617294156776343148626599425084569229424883927140244231865591051015280814617109685519328209659110071214104738846280355278300790899367188244132253681955468366634414782925635887160514710849083543154902833860160284507555355357972175939438335316657014428729185353476193549182533071434084924801473182128012229060861518833862157984281398220416397511519421311004344666567645654273295430504801761885022001229437032237524697871189562098070197973039548835487700469169553017855355330412231329019512207951085684874149044194717194119085862299738804168555499038858317399191955968668067600569880062750914950272887923933226957131628687602224637861519601528739296535341123302401755588626698948810105951570196142900321427767642313953826496622476227075165828821573084590281414892051988177254317505989296368116341656805836008076439357806281603603218214392650035401863721935038023787129784043365994430717650156240984112331438372808563012442451800451579643586005082193332248541936342724462236487191373492764479878341861588591057917668402928289450808844015584829926184918347086062932062299672024386837329420046240123742371030430544391709379478998883182638958127088566948777807188371649182375431994414967665337711838730860636849603359905176759995998168594484331997846436444377035237926347937757450580637495970451282649718599065842260831383942455482854280737008422878175988344016673804692950096359765501735279234767041462983480535315156792737568777913323567656513893402962421085626796147571223298154408103956833924003515520758128600090376724223081761310139330235059276016050335069914231111112498874154058828185222284259415827916935074619568012468972713154631183231659634907650861248534359455879570056025306255804183184246224564006424711966976523607401676566570430247641893506603666645880794441452004775571191107626674429907587985757228522923577125889083493392690506968647574880674777697041035881776826949703003807785807583512064548134873184163372626222482369961615408684369731708209543020460912983457097282838522377644614483115863080728003333913768579550585270817418718742843794596027792498021307764835227425821270657550253832798031323841437834122806132614167607288872354155130053642520691416532339663894042103042248169777415637974077118708463372573106005708294959513911051594245611296288763921244098999124693818386728088162401773207878922625122286182056605771306769404408257434011210223459904703845578368340870741845773155446980403752627286406532735046358005565313208418841565883635461061222385704776064774947345236372075212174085645100338063182755176253852900434200652028630802147350912318127416687628626803419379812071172557895849723964927018843858850757393886595153232824118933644222263771528408497516733131385496003279895146888387125944667613225145389894167635879110656843638663106558462368137492720851073537730395100757738879331610733606776325164041473210472174810502022484816050343699581454785740722808296038258818852704148337124481113618992303401960507488324440558364213880505993661974959642379029636680073771549066103912799299977110876272810223906666786013758509118475012783683978679107764062076525327060164340644982370097783841633873308205917038484760840187265374193397920608304124282146038957551057321726097751162655133775790822450146716963749806278057503192777625088493298603769861352155399990571995540628419009861338566521398723290887524638879496721815496218510550694836000977420793546921526331036860377554837336107191942700076909702823433553997844899684763856698015653953089948805432456923523700471467662715056658209997530509969405331896118546654376297088886473702057653156844329795496207582625158827629919200578071313569226385233824765537191886772782255615921045029547615498977255345358780726242775481509179371524470897861551521927021751417458403301620162147653367787123058353444858576402067052099791471728915057514118290197212499658312516969206031446113895157383103840243205315295267109285811354520201487450661553180881883801994257784846413749913497677173581578593784878608589605118299926597253910067475529267276980136761025601525707538846569038471146973710255329436692051813628611079710305668849062550878765514940580983486345328924192311521965482824386783345172261947290392175115405433813630013704073637360088601640279229647795844033356380541340061686839808212516605750076961949195789840535732185631536227330324758429199225595764832803007923312921836986286055800431158230294122809046987388647291014287779144617533645218483890741392087849076539382314981542452420039805478977024266687659489983354139436593559456274299435808737826813494570007833675017932665038001225614977329838164525479846726549740962815121812265246600714528444640929153050128714059595028138977914787527103869219809719179891313665503094086634412640813587102264031202051163462824694841997263371712649452891230620189065492866839734542085980121488340521259425669032075739717876442061960725927434447413923085736585822182203381451112041911481278257162396914681130051125164523121153929403384517722792533035639785328917692973385694858672682882162666208186979542541552375809677352896784093640987432077915281779125099266019685651021951192675466340575274330349617564088055181363789460118990876511130252192321327303345145273985513333768227610931846419600874908372829551789319808793312533553284019169312567740331244700520875800344310649518650371941297188444524156294881005761942068229122461813577957235708037634491246256578133764406416427791174567540226215674308740949421805961772866619344726366348913711772501579318943615666310055223530370415771959703654163871355504945164998344243847885463321694817265660708599528099802474493223485248484322804395581693144119740075523633548316424966245921160580587386685276561989641856475804725955002750004263880339221383355331592087509770396740010343952677358783003708038584415103449955974845548010609028836345470084173745459229344139319516316129367920604186607896353598605202885892220660357157954357256088303508953720620790734060793007801735411762508343320642275742130245621255026503426621199965792533632008958723847305835523108171339245609083500114868589915763800159092128781105717672405614111336738628072660931942340480867412854593787589001017119394603892502366657834952577943392144556492658725643393484915976977836553063990604588269159844538033645329407083193084991781650350985207195932878058789600990081100958627483107137412569976049277963939713478184895581496307159732802542253352454348687175083651345601617248120544212539923247079151539250164675949975176182537047731721832182652479290724320010259401779480314188553078199932149933833118084076350903986407387144145571756667265562176912958445589582255757621047351544539951838084840846129699799040203720182378375120872718600336845013830395746676125854842108549709515797438394495878817924414304803735306235767308469542271997099491980811630287557427164548851314449368204729450657478305364237617346434551786117581074007927649880270763402729272246736623945159447339450070276286334562800607099805994496056648556909394041651767435701637283366099542359800994983523594527222244298897602221727602633202208454222043489896407652819244105589946716347872006295083738712125116316798307575788381760900762539606927154114879338551793643213304441453294363622679158208571884157390080204174871331125275165700294297483585322929778459592745470332441546371221260540302005651713425549201608845493291948843704597737956399998016787907963116218998504124436570206853491958818491441353206779846030335630941149499924579961893779819483653424311794323356947096151185858388366580151940913191687590901969777757731516073150384047270162519559597184882839316886032161353215334995489246978527873778021356049053580504122010899179246349446134931749671277733981382522008652375843837429847085272833062075637812451965420252666131408618114940738377726629788806782619376364542881106098365296565342326121868400492363889102336822613335295105936747817634988905613961162434947042910029145506322071643408577951023451556249394634732015284096770218013720984466139109636771343350154925890046272575601221120187049365628306705257907776934419713729863119662595850906258074341352776941828533808181645465604775498135287693458291761760355520654809841758196580019760807035977358560355966253103372282139631665544370592278596511687002439924235986162133915076489462531607753167264781291568986403543204078755645189377606009791453071136921444313216848021087709028424510226043437334666295667513706604170426454868610584944591923394553057785542613331133166529213406791634234824198942291620982593768154337644023579016235431125795388079983713362068981899539303254905413831854766994655872415036952535478935520740638220730410777368460124157441890752971912690924776714753700923781779725701850878521996293297885126134459392045537517377132053555858274763902011277812286458502889828883418733272396495765858164061796863071225602328370243591660246108149521792990669688181621174208172179755591775068175971499806946827286050776042721060269727790198222417748129125146132878557499490944617978252278771252495179343191715347137039046835773923859000194398710731110923078498664807364680419034247043536058398566724147741993906838436778050817164191027344891242208841412854327221096449120158863174079005800065820191637110022682020164308155104409917476708421129299084002205264352617011137401667107004009944252678113196711515792085109118312981727845707578524084375716763006573317135584634460747064384510846641543132856660596814830615312946204936354274687797789666604835333630762699013121536323230576675628297233483304141135318552707923171198209039712302881266989442904244126937291674488295800541035340398545826247007439925813805351232256400711498922680825423917978985332589005705996011114181718419664955960427996887320953190100317243047931071698747979756182220102046691508614133908452821645067607998906769431839368142091543050996461828051319319392016861508865128796991262446916056453002352328510232657712527228012265289601498845748528647339045844016135537482654467154886700593999472350341488087634444321297066428613629335996450530531818490683457915439508810483820784512763087417111750937395216315301239264065393691087201194249469789139331328357042654834582548862807695759930833549090612370246382433101855296697865467245245134641704395481833801186035165224213109011365704139916223385093508425561259551671420816238373804277914037473753685364398923975795835038537568408737899106163966077929650178317272705853806089348617382672625044568963588266239277980626941554419863402302909658130264350368879041014563027480608148230821316392043267453230337475085290220610572654620302636782867690347226759845047051850646576577288853744144121699435908200369067472874318195648150181473158763990722131352344491687472437826540355542474873725591208395197705657028545651474073186477149807432526835581153282938660846108197531256435010277405895100992598477926178833295395516250553203964767129510197271828390652833077485459561981280604893744552035467874576715932055080369122046990371382347556843538358451524198984401781727834611827575020813387114245882447002553978162567924970632152967664979572181097393919924845260902628634083545405256904566598722969517931798055920954673131461012789759731392621485180384247651433026847714088791072192690472492563162087517047226179626326433971710851066382584354884521395764646122567075334695775072117940508323589945353201124462969220185338678864252954282552473578615470708476023301381197673217005316597246406836604780498894166439295881088710031917115611675775031728748467875420686081140753895988917800307722984816766065479449225071268630671500581540681874007959345397567894503929109972411154986372907318899966389616476328768727412886188473884216914897748363831906942826920705236173842594378729828432320741448599323770889542993635863494789100338021696461119800908213737730974489315171358071395386330432030013941461151943464489746939837538502582686616760882085020217224797306248606222118239723327991732346590289186979755091730429849863838180543547270907357732869189174456703592383778816997264011887413078386122220783087487770440841506088663352792790672977549296847947874281946122396572592588658128374958260806503473788337496340398567108127709769102463754675303663259061939306751955294960874829319749183820913577653507126065695815936247610582332587210691085323907029154954501720192432927480575373597776485502223186364782945753546501082904245145111521169247622504546839638520888412717736216109707110959255621220203316485492995424453835303996989049547803678170133405957829595790223695364561952512802837384571596797807526096562572154421362874551786172414301192143173079616550114986251055155483373387174196537105280211520049956067680465800385024399447527531926541190132693260703259858933980314768584807587623244185359005027443748047321879104028212646398586015353188462486795259041719984937755233829312236659845519757028164416143873885997072067497338034211460127324207474781195376825771314552554703154097318084855960132324184237900171969920250765261836200289692177048723961077224138662743857348648561294994704527245331129631046143860738152446228566927708296098589389580743323128176641183157316514773504702334538517645142181177486560677972199564467182439688527696428018015640231352592489842237889404251019063579714008517905453247728327088623875599928972973318819363591860765619840909627060587548720840203982777061633075091986709693202376642872939311804223789561778208806802026939809664351930215850187106145329325903667239732618614866204377587554469578669074160168235912907897811686006884061856746137852764260195021535180714235598918717212027668226683819101564265425255792770571710293930442898633216593113718380394498669075135924364428390080041579804947579405565611399611037841158292048627228938354959443148007356662154268158464875399999724732558656199761026986779311201778796273476874906606391854631310937893241801058932854448751572077118887367722133932160078842568706960826324830166498667250862088481504773336573662777569205031305352740696223202636658159837766756259799515516750733147457438561368188752612774092748206314493649617746515169743076598159245531600015543706787921759065408835551816017125821685306167007050077268483625139579986238602751398123502192884650850829291546576757028670427366278231137223873531811528406649546035376321209862497540093772580340105856113609180049448224548008998779535898300051537681187303556354213217390249103465562566144264964014718507801368273808391465925575902345817203679583750871236287729610184290463364595767900743441926997533410157318726305931617336445134086329161325682580527654207053061032117468739103918154498881899349292386207214664614423157511126111971012544280762718764315353056301996500375652223027471446889420029247876917372468868055739249071121550111574395835771132463967779438610194266356052503108351831151618569702433003738126068298739300755272527442068344574422768516298528992865673064421181895991252681040369075964330057957345726696000787057188343191999961600973328401301622390491918806651508132360302669995235566759000148618128160666506256060226897603867169415858157866489808753775265845077112516940187250382689144417415298810390536083977155626016622716610844881891659155754100254506389085636291640675760653390148898399264599833161452485842892229428190442368083586675859136833613036447777599666481044377890135851875141712637374389871337452768287588642888370906759151675004994283764726783007034263676492620417686149858516268961934921692638607765159143006971154654703821908786916967365678891516214478615879821052501579562876093448913514438610154867207986478984928650594266728184446266582205426440723518602155675718705915208183847841896619698518149803312645715152613077287218924916699270296240408446400583567689174413666371473059842013444777273956803660580495080220992108729242619804347209011994799060897697655883208424087414199974300060575045688192642028977868468416357950469976227531699657236267797067333424729795984179672911637532812821917224472590598898785553765746511789306127055403552878258698067877086759420930828943955181797507071926662905698125080163854366537748902132087941436644311624747336885052439503206878101637448465586536922072624798055689372210033841772650869565188494171078434627084837662175551114834413207109316442821317025185661181217447612439407305799825603306437425139280875789914587256559809569664529237838098495324228598336043963072261318582858420497683537979295987616549751489578116573033960448577207191037772223170104867150159106839142029966490230851928506853638770875444848844226508480917247254465321692546858975550617416488005201619336520244788305443066014622943335066290385738113248819788464224154978355786162137512894317226606537988592990821007578627866736966584621871142118800934217130442040256673946174226530317339581963869479098104678863235073274898788258337684871011048499599423541543790646689535673278999509175068338150541128590065154936076739635150710200556921033880642333703743853879769912356625023124249957422242179136425291794464416957738040445980954238927859804498439675940409234012005894189123414619875565769935852414447884378000758565409710532434920627715534572241673813782265461191635691473218395129384227659781247804149120394608052951097320728241898580165397880094623056520912780348725083617183693934773022146834202442392414804220030890583296205923392354530071352839767390729731061006101797363771435090656021119530267236090492883006780877547172855728082934587986053055577986367538623608208753183852579212331517052469249773310241473227727743645680551725302347577440509816091477678230983728250695696627365735258469846483931500771376181055433389676199635877253503266460034042017989680687630186788687627941470239551734610280452290388290819977133875450587057421137388426056433179906649115361712070827849451692619759779885835081394278901803839088659240792995205144087757152899803393481362316157558866597740922830668510717137528082274955783941521836152011667514806776313279248974264389117163699340517729619106671692181192855290888207606008069667347275535844421637409108522276564060060610907286110337720978644452720801992009279179330689851586648172774456994850112662678739251213589412974750624865873271217264546785219203277399351981883951472903204357643405583600686446022302178630495894998574045864886492871600312947336257597696800729273499494369254201128947110640751617997298780790535053120676204672894757281910572984510798129845585102735452825876561521777386830344629592648894716999056543973441029930003764137472036060385439999412806396060056878706605066920647336740721544971747571415415832980365937442999766956359884601326647799622382043506050791332217719058433953053697595306284074835959140242604776675562800486790537352594717917485397594395020466280528107577850748360516330180230722245184650172838684270108075817014522708142452559103255884575602687138950275936579535239645851770135389819029758918816039369186703745443041453401198635427349424848083940862401256034779913051570468204987275276980386786592590378699841925079982947150633938482108558154908450207274492833694237683131654917241294902438451502222388250606329660434939550111067860496083150579899447706409640565768858496004462154836566145751536466255181174224546344947644572554750092933411151225020546999108897316524287488804153764702618572845156705179483225924172380522744044624960230571592269031216845229650590796716977312775443597580716615822250211745193599926905460811263937123103929638447479638478299401728089870368036656374903351015764716999727146208759391738336811957075305589285192660007676599745868261814567677955436993487203253739349855122285099100576866985060058372010407946655900234305586565289955812608054371214337099591554070838241240357650392062310455848282903981632437453874834585192122094310835790591113771962896651341419670619910149762618365306962902439841764460417570564614110418005373837789111575760132693634720192061375083615643920492161511663491097537636542669406020202817744714596246512305427356979211888083140329435798838595037442521703258634789147056708084678087171741467791102465888404751985276063819194713926978681383637844037966826507139464668066200907362156488679015764163301016904417404804344919488649983884109046107861312543982218836748180938153674024271362878379227210518220172565406296906617101160299299557139659384747030513015428503908298226866342015559390156630284525648338031276471339592714167266433359330333311355600928497503239033412447783492757606859324785863011978620082617719745648926763917336276949768673882814270984442854134155496486144038227732602289763621992968913279981061337021714267313976619235344642634914283327973150066510269581088440362894268004779536369670136126465329316650125942019282237080581094835087820335733956091442254062703755204616808220869173448614442289253360123538520016706394859867893076601734509814051905844577533566442444097954877529397060568891715361193878189723571924474534569578840426436961837830724625622501788776874219157070441156901850376514865321787456247120493116218352249245485242244320856954041256395997289156320482474309127324916187890877096567761871755425232904359137180570936059514249431132083966774870351305269706746704312189485048893455895728767368423170472259606020125340772797768794129506183001749962727221100591596126857641847470027493743612300857683891103999826549540639466055233775735827892400612306230949086383301205710573887182737622096617551854848250770144639544419807106293780856110439925816964226333933870312580437123093782348544803693900217818743645712293896610836399916752839237275023246592334571344183255806543735229742204559981537312667281872683353801374372682929769924480421194023881978904242190386105759337787070567151426940153987520307020473546337543266007364791182443441828202411215886418730248535444005623286959910311303746183979145815389346355890337654867305316724194614513708345230482444861035433730606964843771122780927599267480780461616946684567032061031935453529355814339996242838101923441928101412082194270655719008587404035729796658655393287496598366886445017405602409254349642189268616440688096739367203018664492600191256541322390360244663450153627610871109791372718194732134513237106713690488551397262631592361827108428961111201212189107161373884617025010977705855263770436169050760305373112185537273245436518758506550196255886508220467013351866417221053276898829922299147642436611085707869624155168803871826588675476769503073472758606181061030898752022491301196589655426379779494769441429576696528523570884645085079592362692703514608327392894887305626960232846219954351083868473916105509641028037295819810282886338671768078640125657631108552338500350525879227373652719375762297300977888120214214515894584494630874510442884859539851312446842892777816563605718036350134517501966137378337143612772880180347671248221794934709974765345420113941801387311625520668866126350190703754868916505792617641688786105581102791453761088109591302757384745910589909407336240716122506025091736577511133352068210520750974572462287897972508118241194297910102956087095492968486634959618438848628357919309918956538523780335954952222540306516213226124938138724070257208183809636513597287663208354511974479101816661682762427832934144263927754966053887063800556164037560759771132702184737931073870020880857460382559535347366060793620829586574484433301257473054152184802211321559095666904286451097372168385103119564066612580492351023036974301272145607503011934549351262388165200439571009822720812463345885597985554403743236510376531771135578778783205262131652023717764360877614108397767025962506130144354468027408115608264965716959344003936737665333526300840003658913514977010298669182374215495801713206241780422238616519972884392256921207917419537286254272328261874897927354270873307087286265486871237977682398781372933861555421156864892420458489430575193953893816833969943463372361092705104253939492947846406795400769148962396010159710080593702082567814185197451898824428550675553624168216066260208045678820206725517939658563096116308866502398868149598855180909053219746182540307544418043481846770090726124102560983348053050357303352164083537785921822101462448707433583993716526559764981140718508369037985547297744595441429247999367343257959342555392296683638376830534489950191795734961105507095573782138495983012023512719322620398670516830187987107393699779152657078749941673387655644673656039941379772822145522826577479589135259248696437774435017494549712885799960288582092979931724441561593929951665139093448384590599707174026151563773961779323816989898997763170051818285852466854900419071015246929100781282832294662989584471372188117148053953943548251150662061049138519165727478848850095365124273045968631622662216537368559787241627672253311595998037454659654192877581051887908223525043704603880913825672695337872283279117482057467388185112622990380597010110200678791918306614815784254812390665252407146805667915930910641773311818850111535091099581315430950462383215415990592341639907070236229501897241495534421331272731713893685758642167376791065353025288339025975831672331975918003944856576993246004770412598069013407745466138352825095459667485891304301117097331960087733942596712328835200687119558413694668932202926155814241198128480725294621219869649421108130746293953613470810402211616534728856006254116224129323052013902051360315788192585636572466056922545502755964061961521543377950017614723503693243158273272997812328517232637175459490192637084621796852072517145390029784898361815367419388647594362140972311881842076308027638233871130525519201830930841689608378694257575483361351538658467489047408183412310197324625448477980098919603741983274663037566512611340404021142661826794718369481371965274716652623682754362969579073025915105794374598964666027591472182640098206115667747236594224038682481886581747258201088312138387429832055502724273095504080924028818985809770912855503764060341222262394551286906083194800737203605693744393046872719739459907226386970889391802746400535282063324691328500180235313545309415127518560386091093482678666167202340273514349272682727230653493204450378480342981038024269057614451708265384627966061271830298334335770750258518340669934403917920427753529780047243404448204769261249631390782984193537487213165724209551690631024780193084744878805062353800170380076644444959864268722039335242241817454180901822377407209938768932645669922244131364565195584277026713054138480508494874158303007333696014950195974184994425483251913346031706356435985747166029903024291765489010720147539830359565097037117657759465624903771092888046626434595694625606005786285764437331741213718291787914536591504910294050144935617414518253724034974299759945619528750711738830323744778632869620968010943910203613516197962621841355399053165533814886779615306066069635102654934208775767592407308063093623906426970573640392290819773384640354381541455737598498166840598316965644680766913807978284831042858806907500853154136475060874253727508076172669139211728173349889799625773191797468813597911709351604791121603579502346370171948534871074267881643110372465276252270976478245035599052157987209320035086413323951479060405316232453432152844559267939067465832250615356496263113199226677393757525833959950209838110049401408846271431870843443012425959123867034868986553488960042060586076035555232799812273272793851431679335447497482755281053551810611198373374234347640873134311031679522279812213648299464919038237056734766602783011166663129525958376215337785136188184774992935112748861927037933220580100051056978007364468105033738368079452346958954156293517555006183678433571722583866161945529102718177358778017531809290158729422977098394741228801037633647252496515207710154474929631866004640226555789797159605087034374447631924750863737170247061954136139742692628941119126056609511993475960094193053986256092788289581753522602188998830327346272170825176939258500558558545578623185406282094098180413804184780033744965240141185934449868593513593671632405570003597997748591149040788747162584398681367384691761269666069476068424347013394224009346763700497697878289602949863381255482581760613455181027861366054593982184669975521300804252035533602762347760218746657227967754720482239129829946726247122855934987581876035945558602600574023195926418654072444423731163836816230649414122436509872515539522503340585365194332179849501081229934829950450352957349562896936011381794414162226216061706305162603401431646021080169528660529242018732592542242364911031898776191107428367761507194694484602994308482572762961187454310722113178711882536820527440231140376588984165325594631665265859075449131748625611848507152351380859064615941893037990035377326760835381033705859295358795370364209349379076782072619309609848664191136474637829130058385378022790515138217806196836391145663308481985722951072696663109494882321218016273176779103855352255090623947742263589494933788297206245692608751057079332609682425257955156693909955200564228518918207143113560457913933846340924072464039990939612690663180243192636278943344085675653563927546763998606934871160467036990568586298911808254546678797592726901643417895496655422217931294721263674099146068425146712785939021033117257078870445543258610990132944676279050790049236054865054158502479139875784523871071711724600949258441324574832933161873750307626212767885619569582208412133055726837331127960483368874629348019313828687659040350795445140127717871796944997813814478644067162115169336274198510711027850610585169483070206832667777963489765440465653928512409446212946638364331126975096235032171391997554334612946619344283474445696998240160095789498005998915256305949351389034741802249491466785709373321120608418016420447348156486122931617085149611857098611421632313241843929697572418357919326255020596822366134109439702864730074641485754882883883552631778086882662286901711462887312748541966227454716793230856990179500194791415892974856681271840159777756607218675505777535426772379165581733038057745338659498329006139860634792439179551748914780143376719355090171566718195551279123658905780706942338961705950612119442898271247986314209293246941593885096732156669866548928683658900761188812523214128946936724337224904797464725314094664412663660389590753099666818911465316478171819515527152813369536838380140641887920057701541833773150085341250298574409651416996278319424065358080931270455226946730214506739177320349153134397736695343176613147586727596166472179037159536022399964073265134119655739042926857915853268674342391958308701938879818523308448787718487374731070507606838888269437057621940860560431980181889501968315746071238536716720377890756775822553677701172915146108815789104210637465205666755415893804466903072513466073908743956567579447104887300589959340074674378439946218780250543405653620878423861906390849689953401230747979813856461637311872528470442519321717474618498935043822358981640924395959578284211752460963126998522871528038471202204166091440873009807533482952375137554650030262777378092558912502243496050495123763355954485006323965298010594017065472613750065149119071613563731363896420157069238096570278786027640467645925784904791821623725024586354063531546099675407216758859398213478993904749432780540306416939508846397857300829959545537156468684864241720061728007986977669380682423354301925249091204233325348361728798655530475046890998354219814512264191863559039838857597320780869554285024192326328435906559568911619447030339388552807851710924690910164225887776415217023402823587224209004038718784608033008463850982371701675037583465378594457720530541758267164135235592902943156741257286328306656513068579552748848038149990318946004988566705753103206438105973756008179164684624441041962472772150038994162465984031668435575614011316145630706351429826365645012854263440908893560730923522169547225820196070535528958319165448309711164543387573787271892870366703175972447285796583682247623798176926330847253092274038438276771098002446416403122503250415457409010470626426378209319246534183240476557613133885243803354755503657990706243339951069856425258990847785924817770315266645354208840070859660838210404514401378183237178587257793285371957540688140258379735179831495509190401968213119758257175161518564694649096122966715746133681393019076064037238249266351551318995757894785492720780501612180824857251708621299783844505811196359888247008439698058316008614951978344470512772996432533398102864071239790191665788898189304911744498622961148827118560550493284711040979972902750581548066207923716914537247189692229978396344479955759699302831096307898399787392020918029076816179467783852403684864372780993393070868016415596357181341402105654563799693394014845768031819081333007225667099508295977409475450873793541590447344183640418914416269274663294717499675509262410026094592129692830448723782183079367648041721364149643949195813312491280094872335524594602298669171114282484862248528354792967588400292776003346413697921825528875164754186936068348966418168977924446255279902087581082053732878062308997112290496840022361328064789898336168478655866910029433652159327531506918761856895771005380162919313432216614093775615351294882449768427898116207794291182247712170223151964602527348021958417190281055395297069426838851339155037037621729819873706331817294450646838717021871383076854819722464235442078950629904452989581972897827444425506826757602177539308962109932981786779723864373450635999431290683649971294755440419537492464147036045311064480193186257034334407869384352544332643550287288205920864707458322529016913138406852024300442755432260824918371750110408362017831421987191349661009660506000725090756942578478909777947021765110802683045101893958274531184809446764675579010538703532982079340331447411770990533149178903511885462889959118160615047183580998589661905587847518331205586977683340481545482663787381577877621265715097514451056535943124828545533329647745769961977076755869134729221374771151951231797634578577598097462286034029455468999804974802810103257910939852891365004542160552395053656636714830729913120109224337191876645241013444006485254595403779136717142981896121195142013630639533285965433306899034738080840150861688571442856793632258701496816007567715158720108166222463638807158496784706419081245533946868579532803294691600767610217662056400803731674531552318172978760184027779911026225322713557185751005616634262146723255652203367076399637402577406328326830918146755197023712569233006241112686809702833266948396237725926499214180051787310024931280832437288963035392813506692631368749999271108413904423448912274538735424863401782714426686182702309782945506327734546111232031954630068144200400302059427816431484579983149237771343716455885621689280774643275216478123887670853610839715141441809818871099397684855896867112073862278936451616344926792525949196442825771104936749976590840803015854941589985997082341204762853643286208260478469131425108168147490389726327315524059193345949858842299418831274891991998641728234062143189568327045325184946976214761689750954992199866236142891107810953191528861780483243094230250143965007498791885453793391896143161838450904490784247809487133129740440974390391240393941841247150874485141783496643687538355342870783474123801584605622734452635942851627796683038239821579402168552808946062046468670044234225172994388447265405595581677812559809713996938312082626716673216300890955390325863614414214418761692593545821686139459416360334320490379513680075633066146819315997886621711149813033429338248564414533821583818831612928929495708274390331605734622658577703179150073044927834342454056694238942755061338251506898852283151359397151579412923299001345208991274633718539790719797254144358801258652683501426734694815233903437925989479291684948403400691756093874856001740281341418744108002347297314274386062464957646510317614813414140509575894674281706926198102305068442192343622575360694073050603318987986857800355073141597512177550752728260063082882770462302513193828099352905816595192262369724762752157373760594381338868754749432133446938069798617457748149489951007916905896234558387030367815627890831472452186980077213179863581894465452765688515722526103909557199435561460154399783932489156492886973853978372694954086593931157757990149420750994996359183603452784300442672661718582437152249874275487048924783738031303730380210235691235205405799883234466857818887911279866918275954167181689136170055758886615696341855071411389186054359031967370328651678148786343426049195791400137783239490215808416428470507335586467954235190920546893261239852003853150736288613846250792415435271338631463128444016401699695581901532829124208022379447929547843770378038541599579542951300212117504876233291759353744741253141478147805166134842093012588311760253786287772785090488066563855954768002946673504208575922031688265960890119292560623942360270319145245786696230039898635281593799428543431267090404815768585352917366074975293066864093789113625764210737999620125613966141751473630802256633240702853949742603654012945441399891375143389354477444558027618210255838195205273431907895524649787545352829944859935916728227247746594042979189170724776772872489886577964878571772174302116144012332987748475238300277477332027600283372459925583278339723139514493602024366620542926363636685597396355353840779386692907227325689028709389338674034365971854887901175787782893599236088110949831280574052212414895566060037390615409787549538692168929116039794473872722239149398277779339477436539982294724942779126241385552103653013728019510752352626002331461182758380267295377269185040434685752413799028312923494040449491946381362176325375030579480231092318983766936637611659001456892205758930332536596511775966370310043591896964568629203619633762651652933979001593887661398994648989997304706739150261909447157626748966320355924275445127057775214325434813490331381046723818064393873009876306300715310233540997087071171541921735580842091710367948269985258180660777443527388212397144182546319198179167036516698310883023110957509629044369724248574405793085867071037091137986198500015412467709919776927083177234011134111275447444817415634705646232335995199412957223997633823976696797493828525255002728132517661222034198467695054146112729611887859285394619255155017645866401540398406086980382012825041795533738334315343099464697068421485418057301832821066921613842379324193873476866856670352840223714560053040854811328028020208934754388455028987320338648152683545910727322088443818953702815905464774147065304673603093013572935283491305004359583152652662275118589191089713149463486858878925531205173613650901640030593618966399403121295309666734083160867189804835330171051845085667477814884632771931449725677483266445876863127660253040669905805382577659274634390930794874485440303961927668583988696188398505840231402488848489689846220411963748514272028343877655439672097507264236292732009704640035268258424473470940672893432335234290156170173011097656833456175991161808389374977979909889380561120907465456876052319686968011000051793071704556583203517813692170124983024946708285262134043700911296365613876581638346917887292148553849296612360710831288488462409226424684094522675269398438724303066735611641033895763593217917335393229702433682089729834671809088054514692032374611239129935961942935314456955861645271325230686647871150156559720524043430112086504974340957547628107918688680467087272654276812082125899856323906197781306620133189730743667393564519401225855857200942976562132905367976596451489619121257889710348033712278260868067348350174565276457346238059616158925198841622841690873378019440034200788573941559502982510371690087418599875777590528451568523812987453179607473284887081998326415444569247072242862300355168618216693026042821219277051937239475341298247968232187001944491781800687312274857943182198200863327206636314358763213066135061481083767935280643845033739843089565214409062370796808029846439112046422152753912891118985198668173475450065242415079054727369181916704407058884641762030213606195232409320000614636584643703435211160697385104593977522127897447417476352251262928854517829344595504107400284742908486414824963153768962171858344334790755328588156472025047279243433360204304411932480735313754971985110937447506233193960839719468616041395504779014819437695347643961393297716133306104704083815818847075206815926724115617645116059603248434620669041495395027656906813322495998398494848342366815575052559144270174332883212049395615853650631492845387273479272307112121070667980502618815562950683405808765742076054577883059768865893913258890234899566367459961709279603959236407654402787960136698465365552537565508601663009809631954254216343355442946401539840993834723714486134542771071868890316321335967108361937221954068745919564166081442110078600640296168848931265097307019475687590260961567053094889970811449922698265112556234257133381844900157894963540660853630020525792475134748626377501797690707079638133324698439861308897734904159920037087304724387922640220991744695750108040014189228249644079385090319767668186665785921841153576640729550145107141160149702322798301501990303571280424440341675002532682726630290618773374020576013896145562137937224279709248564202576130904307314372631147615047285097072601590690869227903490260708258835848749795969195928392222573725919820121932226268431932487008487913441984642710582596786176969757593485111253078893248232727641635236334356733652003456921183413972888359802655691370987759312158876883965891786635432270284763673696450139443293998524288624817355191767391290579976617667771918711407486232408331962005775092701622119411149636235930000333395237460566896878385334949854724237382661087067213418901546682522964286303925655098751980580266829320753808895834428778024216284481485000971273865853906177748688867239267212118514595672050852527123821138582429212610347715215883255131061170818162259600365112785375109522652726967950873770620859128001282806436621841303144683311397307674171752252232667512754879258751676483271589054228137046950567240031602215243548763624176355623826529642144826495537511283312943777664770771083016034976788839955497620961830024688050170655066041846979470527268019448003267503709331724677271718651705036767559847039532484085376667866547511834308392813966240196297210502045697503422916001547396550357765781195219505521952435754321934549814309005375953175752918925635298210474663988415983328013238588191856942572647782404404331116828488639904707002251395550408178855728654694671085256218812486342576212118760991887944354123064273722691679861540244053774312290884457891094091150190350684787594722125726976551037262484576724356233428094807661804491564552921461379371330878498361728033914383593190873946536452490652419364497001704674819734440067197234206631196481238969733743084116288459214800428066716477193758840387799051850964791104695634869705996596170580739947913796879369609457865579533103300969851787677032482894347251272578571423283703236165550807294878713330707872353467698399163776509732706800821786318003523713214347342236664703622137315928489961860624009334382877845213053947025227902002980748210394873380837310741271889865886990880370205293298556298911799974153191871525180000707289187867338989398003968718207107599451431565294071389558680683864552133455736009202178529973713717823258447757683835571487678260709051067099981437971005171763673578408117826711754255208826729584405441828284001193765086895655866202974745691879359893014311035615353516571376933777940428736012966486106454376091153189174462627211597788608619713999877312172420610795113264728286817511959580042355140825813090197186763208013880163084888772639298558044271784932104716417197472581389649197576736498428261439958788561514604926900021802291356174106356423480343797666452911945000815052360050597406373245339747492467521126158491528876785155797192669101117370371713126017682973486623344320829828561242695884388259545446864013176498660761900937916662651227467937144319003203518675361021027776276063559071220722264158920311514651223022766666181324031486426270634645374354326364571493363889487661187004404692441291852055977901275555710438459246731098439894654818342659428966507633347351295396142638141883920570074927573842764413681823613992263346885784358881517303595166681010280989898422885134927894915686235478739709459941199831599759035878579259681836504229743640071192047901181032709091592623936439875277254441598214904054317002025485270057850059593539480605414656236746821355813300697908070115976076879231829045968658009139670085537013815770018145352118505848264785043073473012244832765114220863658388280088325411406437413535146390586031152341463501203773844550994672726372956853440018090070500577815002550124640431228743315666158271432872339206385220498032348514498654565400774964719166693849461553736393483141351455616827181575518861601158159057078869425520463062574982100498944783630052860705815441598234682419041536605463264239609334886119529142948845264563952439699399604111467877687813772308532814253125580213932113631201967835517068230942389053230646829685880912906165513909732464476573901226185186217723514865101483978667132335820337606976765921107058313572555631089817494833288534341093369724330692031092100868059143473054792269237224454141940769991834461509013876108645454247631266148320216264225473759645587180166495881852731517327647448812406599963967642328639129149912361164290091596255466663279669477426487813993402329616169630766179543945203534858120495585390183195462998225737158681283798416583621800720583127958191158779921862306356126835356826683580583802707973120003181980374068161367703708411379699553005489149424195991141085066964272231217515574301507149004186405743244410445108559182460048209256843603099175808019565826443299729775154838051524867594753927306137203053571283914375524676675677339407957663473292854760864694244140955102247587210661253086250529519339171683933067175171003450536619625015863009193176927673796442972133546339852916492725734792106913707636279999744920793191343344905462945494313047320224392745495440959520464223466284685223806376759713784962618844860735556766191878151477438717037698928977578798933955703608729659659401089718419629691767548138938388752191606350787178401800302199234399970560217806509333058031376078445570878466449549594952607864248088433841038574814474070651305198347985270299813322696361053442291971880739677874431577365124700969241471732599514426036707991597632058824143767347816807380759671378471821743168522093297707557527710214469542498781328869756525774950920680091126111211880377405160865401638802564833917703790509974451264290327207627754268354868247616438877465655976337672880651155807694178588484873059320949237447971482690289950580745283540757290597311314630165852207637485103433586625414764285955481483033639223386547066953993370911445391861487353792511208118085593307087206690528277089364453386259237103619496972481379376586924515309257249142330944305352361969074815482593950057136963115452011515806040694739030739909874557053890633547786468767548705228781641998666937407591795458512876120158618557430363241591468753365917702262669244689316026571910148540574367934870439835302883954832521935336425416753313028279331796556527753620820738793001637094264600179093338555276785782774320208202853198117052239205413606169171505443298104806424085450484217704737489501825885964251207015330227775454942675999213530422082197706201141551954032972938951439983624109771515494075155609993021804955507239268296554892662411916935154668219561880151035746678282863018554675732403860944599734021667287260637664996812759642971010476599164211414270222285903045842440660322914500623671768162448805941328777924937648852222366728615681701633890298437609783590602712247270149802122406933191884196236725895072552943827799148211051102873078992563170785390083232745648006827699730564244529690742410815456464381061556554687483648013492250478618905693704386019330553511211594115672411518672680664345027897109967598251958368470615248822329784001357507000185927259825153908540380000074994944113178343404212586048031841259636906002227760597115984125666114853324267063447224491671288301647891912746173462147131544553047032761293404971828526905423225343922954622745656643358605685284314216510038344921850829291019549442935427812432165603432918553661798883113437333529023694579170151794302045870605428914630998886725008425865253097976141129632469489086479516988150404761528542991027619901977962776948742532671579495409181676746676039453002130521081526556358062162545878611220157977052556273999432702575310670601735375189379846285288874578316010233971599245691487919017485873710537121629560033995301685225026730943699618380019731178864492470552750665011852403275648497106183686403818319652607735747716143226683418572365837279100439542027118599450214991299895575159424664912396924085696151336730974606607939899742694433398550894036000260604161814526810513910866425742049119498876801196949213242144698172558228227801234458966042119283127253802074483359528153598232892159761149267100402967007087173743251297026723525701927314545295095697147341277882937039837365047476257076915381044918975453511644222917328073525047271803167833176561107398863149984567118635984121765068603510067924986142423426729438977733886716884128084082364471608592882280043509877734625081720730001960701763602287977485836813699673983876770223578285972957888633604235154246367766061904743981219000159969789561740845888941868519342244334782794453788013733462645909025462816548029555480823434716255398007111086560932715413723599748202268503051515762910229364243936028569344247573893497929225724463231998517723549168820341580040836437601077152681950996398241662908650299625702342817319867789336052061500926638254922448590736670591245736964814010339471161007614523782598511669703740794411362054177489448133167159670202774906000650012321530380059440868055967068450856271422623279673919661609746827585271198744313610993038693702742099369911246871162124678730622405293314342093157643761511311708356694238511625250744420912262212508843124308469767769896373934029751638804039038346782561625596775708790725294311512991458573028954338476200484338919091813218218560397098711394757752435030556370602364796576564990177164724621035034078850724764764518726931517319305476340029484580110027674549128954625821338748410214276514408979235832525597547761638743420057327420194613592844221243661813053609632872563604967598365989662345068962871184505080257893621835227786951320938171980373492379904328581135799503415326635612620296911880118591572627784703011364918005357122404324947893944881989861431444067433159823652355732814554407814734096925230213054510968317431259626283688383404268013510124214646099635893973028350818292462781880536928207997907248305327620545759377626462011366627375479347351131885197889780123064748688000754179655222449772045665213596114229546802134578812152459485297979749452444149526752031264970123488138013723412759675776960119077938966036939141259479119523725888075214675461772392218982605297429533992657817736064247304707114064783415328859863295925433282687173650610907882392099342816613003394873821117868390629153436038288367237511765032728799255373181927562356150416491353431996232212297068145695868694226642637212465553488747481197290143785072644612421880441596030624462379597862470570439594530550185430987190369778028710921729878775887345638027669754914193416633173337153568490938354959988746305884978832839508325090637442291702195428026512760670073949498843707173191012445457832275175436715950855850603896130338915808926236504229391162143259338704535886113107655689903806004685082977352736284028563702023462531804726128365353223467146947599090829611114914960257655813274509055854906150341332492606592025545702762577327790671289836910925973662448793096411158518512897002649947382353727793504560108992459800665189325739145857777576452782823122877128521230313161922578296571127374736839512558730767193108264630922173147915541603259832857397033386989591770207089687562842683911580593281983215736497879428393358170108543505972420352287599893677410957303313317935652149352494182654464676322270093872026399475226198689649274834520363949000294175805775797390307077385039925034052148914526606454995647606188184653078305053507599115236416156773682764918899708797891318377218907209087018770083267707016308586443441890545195668073437912128109086648834048492706651439433533278165320638609129179681670872601888846084062406198933931817260604323664533983131114476247287636159011726880288758009245683970072614860512178041738370169623065360672760455583373993283395580264814851003947599709333939937567213378458167019752114087877957767587822050602155707061568424657049426419629145509917676691366638949713808612079199339914849816435532096730686752001568728638404493313847665583501955067971613133203609265492690853262557077602042242778227871006856396194168370616647083223349718599352282141433632571488055230130082308430518470845083650686014976375666807090052030310788099347142102262141455298323355173905454465185010319393563178795552874824960390494854943799006439612654886998122646936661637996173038589912963214826349985107257444946052213133219819790006178176727632206115498753896704326225257528618502190528251616887300896387758459838072296346993130269832129981834099357909083181472391394288717798128903200794395413530908155076017592506516000301415739649186178408308007987716063956304284807365951122341731669923613751752855248415311596779201765101941297017431052065916175311138036620517350923813385437154441157785063663425612765341953810397759610176371667592225223989822986312404004122685339340952363011774557013850300537205162886999418417228520122663359320312702831099753614442429686571496713787683311358695591907893817329945394012457307921163927999931494531311634491012136170040272671193106248422027165255953060178766365864240828009654229491469368556161668139303244892210373568009269653755130403510824651593686952348235626825101222160652601807864727795740304562367428787576170802898344343629928483561057124093639087036551535383554485998212344294087815502169736206044724458889611368306453545081998546356757944042498123736494048046537094254862485627150306114388177154370056677346536851332753053029938390084871901651788508977952370409121181320177240112674444279516604875986974303556172031681832446607998827065994353344543419956943380749011370529736015019056703721199269287877223772211817997585510613482041936435625277994521607031235655535345427734570013207502054775211413939326414596384986613513325436975415778179496975899190624836934034217468845333122387357222772273940317490871993675008218936943225259392513051268430112128853176321455841135919296554538707816127922503332928669064556908475633483641218819385120251519337331689723691085386652040729666077802512055103885564711064677955125827167197646279005531021235898983892952021820267561199070916813022946672004909730596158485202166397047854824965320985699592067491167873345621082561020903795964477419466624158417271770955703621278671219059053437212114311864677328482313746611553175636947043814086351751451707056862157124196925844568651423983156629591091762509345099569884950452984444781990376186607523334388353393081852305879840526471410881744161940631990551945993773437131374833391474117053210460987175365882895647420132157683982752745149860323633259046390518359738227140432842972771893198194438912128023683961138234826275223563999805336825859674307084275617923786859812880846648195808873633540115201167215056131800204394188197049066397983787941374738374762821588286303990408227059246374482334128018474322404719510691096250123469093740145484057421784699511441304598466049460446717875762870283997948219295730357813310397092808988961174692931793214611705975976149265332762295062778969344570871371415821522034187552234167452544531778032911783283348278473380670714573490701254346026895866498389513937543200541963235054748442733073858872844382334296236118389365288176814776632847209846254011419182426443519402949613442651530339887647280848330951741642462726437916862009027547428482424069881478433291365269855576725425747732302288940971917242797849327791306299352733930128157759413323636483403536564551117804097150712641024833773140999108586176637568879509149652263433910203596208308959799616954118242178264380972460703573264985021363961246471384765742358661975436536549492659400077828624803220094347851056896084323164174476178619769516644357953115912729929526015217092933457936423331381997716371080428078324651114056917981048198730763952178321289715879787489538698201885698353864379675624972282005180491481182388733063733608966514088180106791943299669535542577574398799000125174343811373105790756297669982818711164497244938074147184264987350251823359045408689668579322090127691905679977559409257808409203797470776010343701550314977077808801590512228163498375427546736924078629131170066334057775365587675548537119075303560061479016890997990933369769114513901330508113533610113862143356618335315848143514301378722280657998909692541378371281871449939320065399372730330033496522438397351717294931276500282824439729089795203497888415264395847864069144238721895053794876947768997782935439434259843074753463338987444581450425808537034756797852319043410474527954013971232751313374654989126121100171535187845619549106060700893798739079467682294979577316799493175057890233306877376758076468151049790724011607226535271476643202675060785024078406629060233893571545978135636213471330705203400823063907658512065630641023847916307377258504725734825413762946327219388837495767084868494389167058810435078985958752844595755774713330260808230794595014972706594398751767042900877714253886358002738307583693254458266359583381723058664226299034908574887333531823686667021407032761174081235182543309413858530704072371601422206214397230657168346343992471221513750252136331039618513401771733556342073006476427783900599079955190439439601526610688636111160408103365530874510106415907881850006741957043338520691443608771900034000908741649691015772785231081390938779773049381206099182240930261670810474271211607145723407031546413525672599489716613219628002141120453892811393074890783651222467521564735213086368439718565156614276790269631638676122192164057111943375232134941958995509393910438992253206440130713242338273809266798866449157694265194271544916021076604016578059241984723015152326435550001377359703934337237014771944233535685434738956751662807610366931387212455160792974806085138897971404322198008391794035349590002028188545806782029567890431566252484951864737688771326617414278346420590682037397644366350878114803129904684264334736946334671780823757126806984592435383624903531781454902530937031215109823277081958915531037918015409723733902486227888242546440630774586695587630673217163440872543978021458812827079700427696696962648190815673874988468984481248553427456960019364411592814331209427247195409601403961775095803115218129150378954950978171246201961182019299898179905684432971787631778499562499223695671814284564732598112560031636033288846791885604882882543265582909965243055719213513144676009039539396793302920064977416094678902612201747178574817869516101965750604596181999347414000472501720224084065911536835490911367664202016972760393963577836823120310533790873512059664305665832527805851117946907967894758219022422157160771071504348066132548611924673588261998653918408838562160231907700334776808718983303993782953463685903483225894204100027214929932859644653235619779280736934336582293765040360570693336938526653516530847371274025179404936550762931532709568562012432915778550409422790861999817426634296850508947125093130259670064863845959948942114614768932051096762822857606946332719370192250807146922867005072703994995180784926173101059674054575671352091952359007486781326862519187176248135302220165730234316406986167649436734438372620602583236394408615056947062282242382087830899667287033006779415089936467014064957235138749986164716492700742596801203083855918821688301820545430964260891355485284381546787707764167215049544198372207712742042757756689365951045627511275309924518458051451557911477584204383054887062600038924257131258956800179730078036127469027916504941121960061610835212874600079169227173250092792656908910633485958859386452240526272473409320007053112733388772874094677928088251450751376069739931801916458361484017170416949202578344776276450194470153706280429144328376491553249479915608518071999158198188047146063978786902090035658005909151306330543134288438105320221666290760889785483615155839247897626440368023688686563756267166564735645824403201856337998422136492217243335891311138167999400278589143907617671914058539576792391677359232228898540680403011191178004542577160289806689221979596182159353527538072827060231905487877569871602593838769939812944071287930516862816734973508763512522400667777999710682412688685700877404230778801949850562624673301612094516123207535006387079864450533338000556140218188496606522222559467578269108285642237771490410918478756991106173768454788529273856576812214439373615586421630898228025400609854656679065894655490687703895113742644891577264282299591875401056424345935665358825424203224272574777925700869665633709055869908978718148600186220463987482701656395644598426635861632232124257363703280627365171347520466847325276953946035803041038990931130059533879465068918806818906831967773502704221705591053880032293351044289045694817178680916435146714370466276809042157018755162156769479197258351545133064093596042995597599582661957221579769399471333165592264904608604133608796058483046833951667238493161738285911958024054935406141602487075378784863839548637572600458965428768375217702431905505071417554634565042053553323621142743764025727900332854031918748231261225107782047335177713346841803085512648054070103508681858906167539682018251654424870993203285035262038818272584228007141915438635639639006934622821994959109422912905121233151922969964492617432148325873420223854224771095304438061908190657763108712157667066408587937030462063962198101740033002784720157688945593343874397233695258185650372881685145038776941643170153808060862819227903385545058260270681520213613476249854833791552891208526246990201471521570522075799363302021157519695270183582899451190146344762423409846609865456237575659114639521438046352001625227306220000149223865972163173642469040017290492999934013854819582415228743296728496163669295464485412175667844568805134925026014959614651953005105766708681355497520354257731697193270254141043045794833183496296273091702658546792395502377166484575154124020273104205494998211641269415717427538317111589167467724661649342315876444692728711013731723147101434534331654763341480487610609224399081923771296204919396610734652540511658480394841308196412146013058846002789538419535160664077698945166319104836715506125026605197979993207351747312478641043125587299947390922380882337370397322274374798022161697788769375490850233398797973687764507391181520964161454369583925360707242919929247778318913072014288662678657209969154504859532111077874375744735256904494449233662278512617381662999454994138337037602721214395672741370649744917820768688988492100019981132903375777544957705641911059430774454984848477761020450470450894776934830884155145540249848325308373032982371677980487223686521270279641676924461458689728444451459475358589373287991776241643400980848247715509750163803241595794921445854406969679199402141645529745614670490064218189714698107985123412682486350483664396089582671315070780094075062104626390682567164514935208310488490475741400487782709599156876299887045339956247347625448910616901313280161532021932294104266935836494281187924788310922737852524739310681883092684603275473902330267626731768607688964469141893536486209377656388320657995174600109088235116515697628482722686266177903608988567619042260483790618798713603676761883086624033654326344304553579010777129330177921531564162739003418041552017056508677329747015005395819224578473784926674366886146987137114711348304947990783371701915868682376481050374959120295089034403725897556017630988527404365323554459840540186014023908156431223801305146117137617041999271578112576535946953741839298675320458427492406171846639220578177178864852606818337512255799154821187110583554312337187484441733514831996945636481308611399931883605872619343554967885898209867992164455594118307237405545723463979646514171642936866455516826989035100823073169336114308198685291979783413823835290765557141630095082527079308754673028061397317273253941414206231227366303107651502584227553917179763343968199125050530792017075973180334899951365117854298813462282288672951777407119736923891362910215500917295042575148680420030052688269199440974104365605708050742240079940472267421289201181946029498248557198079845685912952831372375046449971129407639112713398232063456192477946924126694700619015727534436284377710156989082316270161856596632693940151397781229779312120207389982484414907211651986124981693143522737713406710349865544146751271457550795144315312643524205296987114185160497173682705873954908236118363063419672000987498859230393982061173466961808032027008549926526177619565867159809803694664541075435783779086466952017234329028708906395103285454613723723708900176617961300677284271447685362952394041900230254250484755224899649572315381009244198608065831961558093021593926177879082984514790273321937417031297265129893196885242271368179627238328284322704954760989838056250784246378936874394507917502478871653323181047717973584224639214270570600763985385281358653039978407691847585727682785271700465417475290564278753666351299771673702546192285573197787480108767726276900319959339132830604202092587718945607004980995082151063153126914649430566110170508483132000195075041004208016575912724181024016112481953846715359067455990825001158436694141711054617435950743490865315186783483164846702065135903707699657542747687799908758375458757960458814648032807437395588449774223310519378823310663613526487819471360714918398872412348355643902161227000704224066040548180817819018227323335021464114183496177741625321447459674862410828913514074345509770772387693541595355280667041946367102534166504814850224706924894334193648650550670315253964759334785286578735400548864586056097209573303951577685956762284654408290818521022072335946705176128944279065271378565388466550807866059682428804031699577223338856493511941931298374801488072797512560187046725747112822278193222068013498436296941169522922101549462807270223181503403588493444227988029676289285840022130626922021289442371086644347114219449630056600374136295892638370993165331472974371247402183201708516119394567655881030862832000647983700065278329002405502176162844768729340838939469132543151616573011167994323704213504107774620111645951101249917956550398965428967265884696630013899204781307592870377769108377908500197569770854999969198912127176494830483211182358267035228821969912159108851057257931282867465968587835944328225355071293794713246124660245525261891165123712622334498621899238533628407118507674428106856244820297512882017425701457927368829917121243275210978681283046996407540754431759280273798557452309708792668336806536986411027907078331656379825648638598600947673761384568834351190548805995561936108812323250886670023226746075826921446921719170357078439748180605902400227017626946649160897035925063688111513354005099509449210910383879210835222815989284168207658242662947856130945908699238545359735369891086600922931041692465474374187771036379605884446218129249787968392884046592653266078021982556379671303273608200440010732680231688216929776038731166940993643432813478838760670577491067328027683977725149597149286285729467741711568385141443787069187065984858599176311728984838456243066764523175914719131138821915218087553473787161856418054761165318078150020456551247365696442195520541155167608024985001318749893776385048254515051954586141646503269485220411141970198163415261262959495318003272087138642328301705762245835664662618623075889943561329395316381452652069466670646785014262945943556713911935793735601997023474679136377774991687809739657002130663069864188145818982426865877525043130598522376771746432508153117632850128878717713596018550236857282641982060448057278413205182969151786185417350935292022549506721821982645690092276573043623809325536625692639269760556919225866852971820193894911445751051676402189094090704188538448642224983682968829722068687245690825233826304822000622252041119601367624407255573220505498331332312485303264756025169779198898241623763212978127492960255999551802605553151847287857664403067918926609964642630955017974292771206509145209446681304176110608797854714048160323183561071920695177296695877721680024589949520304855657545349765803760222014176950178868904325621539011722438168719810138980752868256053008601358852094817942680108852902332115124474884026985601626423264784657437370049185869582547099759498793920439816765420034466304908057758948929212001443999212739692775543407382728780391126918272467083178224291337110833794241824692852944466300746285131532742947698309110256306634434392630761781173221927935051202596985053166883823267058580412208213789167129419916196261341089534616710300758845650351902051120682125490432714275067840471298282790208154358773894664690954296358172766501407640435569092816899150642167949244615190676373671106925498141622829427587484811095662062865180924021093218923141114166090910549808015052928649429338087269896643088637944174602960285393508046320048307469040947375302664752882427653504007993915528685531427024201221951503878500070877403611358564706437632925247318393932182109457887463100847080119782793614994735153368512556953379539617768306179840943883988673486823876524249309236650060696272101935717406407195887840826978515345409728409884872741781501575749267354239713624145743886002871616833868445387382245293231925816928603165138855900518440037879372868529289159460644266909959194793583185514994363328672760118164902087459888255750219934234691031602762943203608727214229015111346632007386336362756477152598087256548253563231011768789509894353906707619263243428703439508636643724795432148765511366416952265112414807177374847693311207389165856399016833634573318923913378664658508877325166746270083095034150043284913874979096274878747272702268421864872722140549646724247767474394113684119185166612183492733814050851000781345223920190317093961204733708575866287544351705464882093325410961370422563123855100808669989196727848282693099768510668363882973325084711394935390413492339768044225639871857293742958833356014034528643268398761131420819866800394175444814353658338193041357654427761891485660264696800623924268566655018712101187795858413911958201833053132793696763855172328072209053204912424106634493464433239855771489482021221655184620420392347472996457920515961374762187789647088948596671439963362382514533134899471472843417866017984979477297889976819861742923426413190231482359701387952846676543905711078200124096623896836721561568523608084244733413825512843514570031726114539158729214264818698225300218749554608651549777958740356319245470196254315273657649550582415891266822901784624924089917157787139301040291181866679067861645246480888618311719952311078018916272611696145680119467002865517475249833428654698024803431515518861657923754302975496426006890480530539257431676615657293729128867339255925832955219236718834447916411589562831799713945688773371861506417049084583406954505004579445981146771647425697510655857098562377808713273000386473729270251865250312374326816532878129935466688958136879731616520108385605907896134470096066152399124397117295257720800810906695232189154202766704114949460848706473797052530299350828837340814129724846810395661583366271716012379596254104709906134958992446030638709498640921315083084121056877918461666968419084923972796306394612364004878644751599349247107423717826100413935177246404312323355336442997473123437655782416535318231580110467060123975475887741375204790796316224885411148008596029411367947578424161294464791133452144204446032984297301845720255650607983686295224987004030167324576174657072238601081212487689832684318342411941139093249801364514117260311744674963748800899141994544799547573503574301133805292504497283628013526107477861744568367056820555857598996660932067647736898577717388163605617309666425611572020067951484494036599100280751610988458488974420005585908709917811084811969079167709708504719096460389801324122591167827203269273124463515763555096408437150318514821962126297197919922193027436617477858704853737899105074646555462558086196106545736774652801355398594896551393646465616831388456007402381548361990072516219524011015731082498452102880207873467919554515606054930758186960575948297007312647632316588398213498526148229965933647510012448742571239894318561875230772228155581247903937361526848230302101978760102773250285119402626016333933364506547434131816892814989885723255196942349747657296717375025361221311915751108393098970618537260619264131069975326489018610290730256542883117380707686554014907066900634566222774463029512070012854548573801637835685617112035648407343862860307234836931213832888597360063902836196238243550670585865456776383341390431838085883436875358417483703763853786979212477761665181415237679413019925219680635840296919485712036609210627498097032905017939784309997495987486816843695648484536631999125878694990540300128203981219077166506021833702683325191870571747190847809509283205136029598023650943550904978208152673701935447584511336832289126541122251915806731766254911758166536433993345904827709679330875836377521986235935888721405996450992574633359451077866828005916932433926747472414894030829173790294099306300433035198363281563900828616889429658028917371375580263923663240884574249255730708315664108440954644132954757213789050622290105798928448613552464825525043155294880496120357983780897839756621541047120334724978966395527774582399103599033950534080861865284912148429026881970843033746004890006221238354308831489080632706114010209009656148672434788929809980250598001046810848036797761986705852074769163391828891864777241269569809193771213054079002816331882099891198831752863157400767427968204686329058600296949245312249367620768316173458937921683183063672200352452070364162072851629069431223845612417309813476078997317475791058698589373308995226970131182841313741375979583448013971304321407587428527863699384395469617924875150708926163380216420813363485896901595055450683267927861900670737934688328385108269725377454012683567558837153011107254818700754238243862482460726891920508064476689688947783130108733452451526799711568442860596750545631382822488764355373293617027364638333504581632337299165925683923416772049758181149423920242445218307877409039169220103855607940861679305517885616877514345948501850384158848942012579530220969906067952525704430725333436696652038536504812146879147364427938275450401536791138784042587560922338362340272193226210296078793781449841177422294934929128643433060312347276945243564858408822188326391995740041372105570558022910263426025495555811007539806498797165382987751954879369521741497460243283905075784787033998014965521949882555034809854457191934136224677751696959737725814624124160053959029413571453154967980739700146648026868453219382664722184392524435529471936765987813581118798630772637052256424584319812628227701263671936587390865876363463444409188931370212194629283665082673723438881975296738800458478709560625169408333950401731791934792350144181605667347385249598644698111050959665444243092210111949370973117720985319264682347787350700824613563630681648935616470598091259246991488594244315312035700765788506983778351547921034642519755164704572723268469685325576416277841238685457146714550379688507426803571547938150399387606443439842587775291659676717810326179423319368708530314673578464778446738914001121455465231282003323233885492371656512907412707376168956842976186565361975007339715206200559480562140628874372401264934419802153442301220106348974737213905366484856816913440012787849841005335237977945291187090894061680558149547414476417722203025252833524871044786281411100826670882722292851754929082100589862118700364673402785091946654788869569458764263184028406290384712999499677623467923100416608234053198734262644563602913062027973463819805383712364885068914847028645114479920262766568060501930470759625068066096711869013294782228949711292246850688573543858639383112598110103630189458802212341412208396369664211764853060543502887739536884533707805413356493560926740935009346434025223376708891257974329861996808129081410166279244985063329550060050873418156608508916433609421961344885729813926029479053298744887911776251000174840330127112886603628692988581428944966029681044866047730458685540007443342891142838561420522538437711499167490274479896482835042012982912067367831893383240875314736407589215587310899056842831541887310521158805462782605503928044802035536744739954553265429075110134449819124695348750486772610358255638440428334358286099012583849778747278521805677246183520887188694211265174460147459248624009326318359979922668790299560413561684174383355482917137706543380469263008231905633250243329153634634010480937698288079449240457179436050534596341310399957211548058565625272856386269566278664381362560256714051157184308897295710102090383169029847124306343467861653405752265024147892402024391401437014634560995323565836051196995321336125014778354846141897582642868897441780643082219431654452021882451192897782258626621197392932467149019592687561805342888413250723178857914950557514954985958757396137122818557196963180121290809014251229142212436596433205192086034115890961757875217530700491705269603165960480516979605205235714647084825335962174923684850584740357832851509887605049681719165041610314085776128191109562187295754802326848000081000564073257719692794482943264970293889619834426255243843174995543820469270693097152351682410819594090152746611579898197754724880547430776739103212545066454535666273603724521069050179757243770049561141688933527381999505119174553330581627058908721014661973939980128625432440956467123410837181120993978916034404644087548846428616456377358792449025851328161274281677891363364840532958275550311600500825643053595192050573808428585024770736987216721847959340689330525475646006345425907898533223563976947203547252612038309075667734161405207636112008906881754144943883657322537035917323940604666127135171998258829141098742366153392760495721835273938686844430207320676777916686398957574647588464957172401872190958188581997591660371778441993471344573404739888098919820930476850228221068470252021454922070822448137766182361566876811693300663067180920133034300388970298791937771538233039176221279632089722726287131698284211601061923611139155911238297009211037647759536353307044174662892897019949249976692754430395498016296305929265200579913328147298000664392601628757589066400851537291350657645154086598557365352325878470727169159951022430902993468251119254042139026624595264142312580787698406288752917200348369580334247625448953396169049299055187883853971444034388505891632378343506889772597668674847863965777813622000668102094908656189882501199593801922258804423871939348566991187290389388864895953556344030884980666850544405129466007537301977767670154764215731379039270386654489494538887624664353001309952960434006906800333143265297367535603439269712589991005254358755298661068522871670640994332323492127663762213565438580630060849819718322939583814782518075196371484032006102366330134527277233659714879041270973275234941480962945580491358508928591905731717975546396908954389257296489573616780111836983592075422735735742945991355911208058095925317760554755814713215434292416988602429957296080169385429673147744828773745742195752704498928157775012655274670032930048950551253948643155296585386187753427131778648143536200479435669673253386626213659948347522605582783365162922958416520752362186920983402795955492402270381878126758781544005806550853498430413110551969232321531250166987998266665432828417987137219240076478516140409440852902975411573371962541961436591853750248018047216676020415503618561368242840178768403411461532371138706033159488167678199998792255409931693094193976681574593441833324739971235254324561671012612244009276840899737772818178441303445739257064415666691432221674893602325070114002600764794436167141046259856942697034432748495966412378867920149452830708992370416787519909738929575124829287172608839127605524055801214241448958176550769486708983152919278329679363850042485279921685720798029375546114043387865541106952286956834677818754471432041146209684478325228623624024315260135527239599645320923142111085830871877843182588006129410682604210047584358306803527091867739682243201263168307403367801357403449797251399250134355612230678020543907820467706483947085232474950913059453049602992551347818092066191566280256456691509199233186827627538612429489453770491354805754485612436472793300022071135427843031308551239349403025655765025238809475069387858978092689463969694318849764689708314110939200897407381578794915223195530817073899987839305024707515066818224682474988275547662279749768378297617910579037400236164995366546663577584845589668328007238998796558198114312931928719383849389149046181892847705568598165485792922224198217679109093150454946593364813334563455261704370479023932388253012651519688206288630390973072161908913306246736952532337599739100279397976616539024229502106068315560845577038527058400034112329433096875807497102401783538767053356142866949408040343891014380819280926222926627908272561171337419199908477166556799331062325202852944531049017325615722743851173220725561765423361286516804238190899845572004773418317544241939321280928547350196471799235384218037911207409418132049460265168727890349344561476229491000569212671299318786983101556152870459436997632049247363618183834619251866593819096929198605807326332128356453431745158833902336860128839489002796436391140898749741975239694174409328892788941616922160357569615037934284148691183074881448302412499017264564531635508819164510711803885427987993766217226989060321977809297182953256541235379680049290727181056828650432931879299347282431058957081274268240433595623642262224490642682744992378374445576159980734636088213002709964880513043075477916291465781957372940004918407971214790753014487216741118252801362342081372168060289742315270840906101914178126510038476625524158687008751669124524023301641273995228303957052849737370007373458118490731347488936480589658709388944012905790091413042947816213666924465349695600173395176857044407516240866905849269777766954233032409516639490798855476637832503543998744141212259335981236276358977106336373222281471890442999871365516679676937242151835866348227229043704767456056721102671723507638336403528272490894907757801268045992897083164310520918917801736210671095614880687004999368000436296240154729728535886655430665469437824020785233704146317640624957256061610052944063294513175193138248301739409443995207484797391480890895949061681760356201139644254113048788370462489632295945992914595012081995366698744787108779251979302573078078978410687936014074412600975471968122327009023356276145972778652806542690210411994963247774479854417458663205408479385949906116000704841462036090004273873997959769662662916717345479601715790917435707047326451384730987417275184015763550625255198682711490618116404743542658315321115020706710679994370004303259588884846368751198198323808294903382868697621526514025489192295467999479343307666388455150359930168423799076513593447693808245754561642171560218791330988962769681394883101080436114732469346420141823854567166954664411387077997148476914476570472516371826246358800937734507121296803564148055921550256295847772416845826269231333912713995717337960033016796081199169511862192014252266713393341424243614507056371431532230892262437707773935827757056703842583823655227768307791168729440545028883324724448159078480503070937916546761837381316238748982806978529716549864592200420781686365849884378934644620120874333567154879872293851090882563684498304720809534164643222553054912586247063699541355887340852407083629800673845319918604033378904534962345063934564450964911949501924923093353763109983759045184515402458154740840289814181861355329657334681568831817061860843448527789215005856247464402693270289193454993001585174917018593622592751042006482095914054409669715539946412887493220400068476751489178454273058553898633738257288652997527463767726427497920827342536415824178354693315943478019725160468552563623915022649053505457373135880129326766496557894998925215476362471936310117226282383754065322547167691303990352556703390764564879199069656242078767504057694772137262884452285243137069896444047347548129152698829820178004766408837349704511770409473915198627695095526193260711215610018677904000987167495842580068419532321221212595611706654815718411248708197060972301296917242803623213452199915617227861900815575706679024878114081733855627068074015653939121146137784523645683858617954441246718630822636913092906400261232492194142478498078041280194503096985212857071277841697581803769855421795456140518228903656521936178538912928129579168883862017525328851573843182918312962252931837234859369106668889221503097050792279424319286117005874582021550069028553131274465571027486066266659594420517291930151058571376677663374793433679716522363184126589698246968307638114880347762853570997972917267255046146854024921392827927015113468518477831641588744621487736062871755615226887534720217247737373764870394183074107787612700563392359133774805397393881526922003909683806648584747021472874763370050148776590303444665804528328917298374278480873395869371850528415549579597583644687765615760508270799413491108803484943182601910774380208010382842606066517067192913914440126620875205280529199995184237897906062029502574481054477893960128625706761719364831415007457840444284426438948377398237378479052559107527809866211835635037806599067552030157134179499360895341631727467177269840359277867249650830193822450386656464535272292383730989720500600190908972145874236928825012257044805282465724338747369885362039686439339919198350106480731408882589209079120725652875489136691940018988861698854539696251369219660900161059789132523311974211145971595492436442920532198378259452684570535667519890950950916919767109388823453066662525592177436486319882754193239422881205298556481706544490521488972934892915572148717323175800465537785083225663635187346903434491928511754687399329725161409288130468144328590729807026049107557168579386357357866897589482441457145054732343246116811331375413256293720550268251229853609768299497859580929208490150359471639153342943730024125895022553207202231267502511921995859350282396431792571123328766353708308712245584812789414066036915615464845789215481129717055861979167876377112625846102132073508943174419599705294420073493793660508417601889979151136486456167013825351634846551853557226555768211913482357484572622906642132131141033985865680529686462606695368597370074579732393195277172822285211126294545344560091594853032356690052345768650961653664540903041675494873089826858796685124097602026339948394517678125682074527469246068832309689602266098030023984897995023963021826660389890071316350657600833258761052542042055378119883632844212370221152826218314816343993560532008763508779361618799914364319443477830985835676684930214153068269782349064818277299993651848172106968132682341641400765800128489791416679650087104810227835279669659984753949108497878732104124416154452147329684165923742247484952218748570160221782231106986425505877257923674827217393543186160051416989901381510987789185074271615833643513401876675464780991113619136283680252219685986799374265971444697419052684820075994182729815956417969568399885965316775101430621957681862930948114890531986224674046217347696547837535737686659743624980825170432310475822731839618193155278393833811691824196503409362839197561351638303699756460590177514356418271657196902696670078393086017594143408476615775494287360713714981165497579361521958734258166699916692440240170789880630706710056134385865728821837246345522180526957318374260704785193972367087100554995639672756217015568485021684066824722558758850221119539119165591640163028109788203156213127261842554196707704699258708280807922360097755188510869304249999795183974123806469742814740359048696888777206498108759565960175061774549440686155442997825666810059261882830625779057981739284021504253650209677670614955760385963658558983717651064903358827088042908254995877720232304932542368928997254633143728553326355371727827297631468520957653250313508599054692553890360199147188064649828913269872279247313029509123274674705699790885699519274846940826556617181334109409081398433997443574016926665694976122072755109409036570278545782181914200020024140966707036272795567474759921574480539819813894506606532223529143322563584553919645237448033393901461521076031751751371960380533872034811681682928879264199738423783778227942511537216593962178548355285485829438831473637970445820892779842223741902906541896046123668089361298944252238726885458821798419926030581021692245749193641639377991767122130001446127291334462256794781229593922074264221232949245900393725373713102582296355213081105204441173208594407325491040599013410789304406801919458081587898046836780207355503860344572248628240246127254955213990352534012853212207322734271848079559243535282491505829475685285785172368066500229823595785975886759193060493567840828514178491405405057243514041586694103901897753778567203051550224273286845800329627187009958240081508057901598091789443172083796917332513733636723477357214546270028467220258528803870694394790823975372412054145299626203097220836922387564099143300136995673665300275270341720002946480108370793860647948955955326113058654179307403198565449808432581130362949145008181906285934146167394327074433050717960963914879747882726307329371114984296830214226747072530826544728297525536728640298384992209627433613608136072229895489635899551064976004241458781609094398012102946693223062145037029182430831437307216664587584883668632076902959043683458187634684896385859806765007150526238554139439208659513474587178441678710921243330468836412428407714986879469393855086997458407778598793174034635650430057496308355086324658846681674511634978814333845031823942469912802936196277129418276965445606649117477113962697230717070959223665265459404597465154177788881763856509224576968765443706321948719704112487949693655807523418298150944342142337944725768687010985532996094738057908115456146518689180735264433005766333397279452741881845864024816249557252554024057960467847780050325257446270604421844673795855217723546903215349603473417615824872085001471173362636789091352294113680906786930565184290036747052124620934767532800153655077670286568419614434447515549767339835172816869682730505290088087537029658446517741396533265278196050417566048337629948038895884644384456393558532230320648870030894568033231518201917442778365326358732593278185456653600779099526282254538245988625286381737998460367687988448028078054618804505635880961103583834405485635205437423591229918020990707867421831197994941982569346242338280055536526622506516990179083487083856338272239662911505641598144602796171085252140404710779912998925775156817976745714303057397976868438996552140449793753313546346189147393436863014232048665549396588513218266623952653596450845132244006702702924686538781204248308999010358797081186264377395429456226096301241601827012861810350514596577249453214221206112984569044785331961713322079984180731631040421845246335438211858906037858562138478531987929175952088316769495376028369313097868004217385383879922979607141913817746793392082647454499791607038188385019635344902784587591433246981944820345436253044411159729229747913548792513471432777524375681379669469631082395697243531782325394433477105664903254503341989094245513235266879902403284301842101867342973028810558203817672409391894298894866255434927152637833075374576078471611867777621423705476474689881995271922347773850683707123869297622300906698097233223884297283266939341755678549695185891201011426846333933238850929544159469853940033480881448379663451018219797618730002808034695797117196860563131707588892933080333380419740080262872208669856106547206896838703813844656802229297947765823314389538901533665069121684582389598082944370587570111463460236410877235900226574437137542306513901355230344021291233131714722111117598945690285818810849594006991724426047771450740452345071844843569315235704054751974283771205485312401887637137479606518465636512949180103649979978214923076680378081814087710915051261496756377261416243233949369474304573923310977082778282963696159765750353917382728078190342210100473549227242610164867931458580653592371825437077391730479645416869679945293598892613939066368092256942431560430449910076303826909117582527553070289936371971648641664962499433199444996165098398415666608247053179856493944217858750823795942551824059158335952342921788920952791888516187736596263199602517642068840400517323938638563493376677941584105423742884638840594823363410562837186386460781345764003830764058648639099328806764325554266868337934041056328302861311206766999088645880550438943809247526040029158823688304291921213659617523066316957183419029161557698742056888920706875761375202168884531690388662626932752292383534178398713283889226668657873627119361365982913695694126420547093996959170118893365928836406846702842568210033223241317189562095697113127829112187458889285484396180358179804270691058408836106951738110383378513574568892200319899478553210882313681156182972077169126293165600906182525924533540324849916067307622779172600570661421618098188276550877703984292792445022124611688502865982261361228832322819587793098268257271984357575483038280909412684796764540040411747976103006791430935445404183032868871010415366762389293224839016331539972003553324493002872415841205170657103211638323178617516686591083766637590852873706973525986313148625515549870158181951031692488474730400725061430447164787803392392510318811792108149115087442314504031070579856312508640048322162697375064409388533375641691485403140106454513594574981593023013662857556975419535856906430863967745112171407242468591687495081400005384134616432716854046668836968571103845024772946280374209714751245301763406177213915859271065183593567599872559840660443095573871068249249187053157227018004611929213380509015160498274355389513031745331616786174022497892960648580906333664346316119845861582679038711405557636896989745096409919639091878295927693140718665454079532697713981739694749483303413236121879836623113140421511894842156645946461123824416470015130921079016064590789876019860616135693923220152690721783847587761659949318173177526452495389296960529286310706544862814424570938065872330079495162944354913898916094906560417403414432379641577518761080282557405251821823408435393556047938927895595004288833091074896696106886903828974596128792085218102490859182495941137286415520454591576229430614647335594044629824623740242437748461374086883732802973316072374150520159528470603085110855581762388099731718481399533275287598870892464233098529109733738480494289302206114261252352006849142022723628828389813915948619527670816069099717518192534340397738539320214419120449959638622413519664729693918784586883038949343771496292040605739262708267525754435472178618069314599576755905201501968832325246449359705442789739418962472446721362725858710625781068387406452088461349065540955242838947322809687927451560378157416298474573420385083852384091306185798835091715726124417399792527471221398433252547448978804894602674269547503674863287840494096304921266738370604189888165010436745641748918611901204000509877394276986711725825435081507045776237366506773963908683244301803389071467952549206913239066903841218621062251543161267377433971230621223361699026358643289777878108608646105393106011041213277265300665882147754609505924956393362220093056226676970374121238378482545794116473312863019512567465904174582411675327083257786166409749343624315745859873431078174297728561753478338971269283884524541273951067591389962817608954204777309899334485189781499957638810788805231988319305013370545942709747471833683642580995476329103143032710188701859541400422448117492050346226409736023308058203855210832595916753742035227356221106930013808420487156589952746010943818234133910983094007882474921693023993104345290926498946819759986544010612630253418786982608732568435973251992823803102956395341037719649809733011968978957255434081988032958173800420797118959105031961877354765172817950082149377933857913160025986470141477610695694692632102025512864065845008761456612615821964709228126706064602952282799452939919843905039964067569962204039497463778003381463537618161419342433330544295696277441577223167846764625988498347137116237755619810985489671901645776556112073723483731428780267196679319684296340323871026496908135339124969153488903847162899383433866463001150540249944784588927383731060560517841394253854955663078000079914830374027709774039984591900791556051834172350682895822464386777375242649625318370661396421811411769619509697817329534769277226012440276057809938381899853467160838203084834290476339271765880697508867768294968226097137230828979461064003251445432520577541284723652446406937024107701752306429216775341590678695332520312257376343268892599382832872589243218343169310268859675655833836353965380689486675380332394594232958647139534580901569642915896693493440179216499362685641758571679819089493918308451251831734669383140147454561970361353308737405083862611495905320163011333006377488455697344725662579821898195549583569104768792127847583861167523129617376440585805963391239597978940481318658668502752229924649724668165632436249682484179175379800479670530168744731505010292579183047620666337348929322657017162888954215999734087776132230851387088633317470102146995623066367581121828754507606042707273800452456192880920668383975376660273750002022594589305455167770838500100657960519486918342257732084789750672651499726084716015255852754991145726149811169414189820124533150587214959497307571678979164892954042271727985382818979333748957411199094383771186034468167609032296303639549390606210803371109415562563252311077905773376268619041450288322204047493949745687164228448377639266471212404234626886597181659021347637712264175137242590153727055509137098628558827117076568876262799865981372877977133287678108074464416153316797921838982309092869752676117885343146093131768846698567588539242579486780187632539305967834706553701795632176936801636250699723726362033951171280406800036123898757606486819611431843889004420472936905474387203925597900868060484255243313178807645300584383094981773856443871372822927621733378832538506571004454827478534043528073757399446478437008541993351879727230381915951670279828106932384933088182037040495216434068174620354180643386371153987780188768314018910784863115316131271298213389871558503963412814575941790038850655096701562813625922600869064890417147082000465896384665911171971127301457408444597137516916495461031966544871658543305861838439630912799689470035766647623341791041041882659201325598375812624108672688777120293701200607544681938314192773874941056075045005147315996804493239849417625806129420754190763360525888706259147940629881378385012899598681182908210143259665337488525989972733898552809537061630553363999478687991418159861928750510909300390396594679550789963322616036637670320695456445567447115663705026652642310885174069579704479967170464725635472555726470357442438833758063646251262968565430440306039982760860948639466195605476824764913415977827310891649552691000614750846926569445200025568821191463553035498041415424258588772868730478899683220439410431252107958268050467441848798578102579061605879973875726470687946324485543504925937640457138322834385843855674829086596267013968812692720329934573225348681790053292492750062959775804124035412414066048967075533802248835759707894150032637381969160867400887655841258759372870873232298786066638808133567162390821021898709345088474376974515983108881595465175154041867404111940634062866307647897099482872633962921690319668227706589314724154982741085132733403316632965528879363758031409905041619829048168577516218496732473328338989142286419091327769158236461588076568577153297244303255317179861386122984136185569144476224462096580269579644223115866116563075636419393949208512734682268448742712754122043468731644121027529810697313758755477985621744720471198910770933204778932727729276006497852115254659590540836953973766467030713303879113000918396549855481686577215008374784606402500755176124308544170399336664549683682016822997760816716820635517904145460477263283420228215505308715331325406325836920954515561852919802161718531130251011054987057700577859600512169233570115085698114985107693168512870290807909865864327145730704720577772630279977362475910214176619911064733420709047111801107394035547100146686046338306084295326856320918148479410566867679400650475749784205597822014312210068489192578320007023740651111155955664380288337870473639850072390801164721886482711694607806822596525547793424411768006489272661513017127438725684052565854192102482160333563166625854579209694137308323111828596995537864696640246328024772682054827119474894034000685354914846460508879387296764636829723225859940532709638937476618588313835246758502873698302895529609928478129009642006778515167000889322958736677032225262359326712979018405591243346959431643084885593207000624860650110472456638239377575292286476569476691372101787343528657067513720701724743258460284597755062051042595503158342203822785137576152052229501997005226518666342349634341395587501227409135380193740141815095287121554224117219550214078635831522479827073811796534116524920500808322551947368038513712195431560311130816208540076921259171019471103330402512773451179247687156317913165621103785847540408395157955043456090734026434688726103806286425401544133959301831215322650910471153918758653124925089887734410362243209879099261020010086043555193679202871258186035176447186656890032424135132990431750990642592528319522449866102934386521974510626354237129721502646559902796377358079159822040355973487851807546422971899532950606666905276839293740661658784946114253270983746475533875705821907514619788514900317687031598951795245282502132062159677652819655550948722230062366509163534733519580671269285265485316559892750393603906336741336848641526405886993626657826614319923864630907064282857505200590265364252721637828585728534042681835799779101857164899245947930371451671003640502645591229418987179340904055426315137398535907617868357818401937967673187620515438099277326061644323520786702325708795810065890795775740752820771083823232340056471769706692308925616396532180365018058133295328653829537967962999370185701658051266314673288147378477845031075357466508986541749953276940863018051607144305403590375680743872400195151177290554063706302429449489246339489615586157204992089549626177543711430348243293236937975497725110147070042555860004858701460713810205930333730803458959361171529480978594802652173067276540933931558182657710197673489803927182737372041619747349156081108624429774655660591740627942476845766840989192986609960455337596475215293053867609886883464906417954216882965183884007789329722024302098817314031776660757610458416750916845493389736049362169428929547053568639225631018000258994468233364470296677603990376792109714597744969352303458780834596151966485708166989499211453973790817718232603264814593411456500836725411678082487495635388366252577268931236521609802014190414436313163154074481365837373569046328662057248954747750007797104407544562417316690481654024636170169082430048140217754604475045817334016661497014407203308777275415388125515732649526640542101080525893096922198162207488839522806806555685379037046436126975960801992997271408535022731911857110004142460421055936764603920557964897001201620328833625279405081400296258407522994281317997617514944397583691087217318966678299085306454858450664588650702793595513548576625860065874448021813328753381269020056176671829752475000379962702889641548356564972258375632086216346667712549481957874419439315657513396033031325143788204562611641210925676060058030113915409451987372151937072172955403365090748944403104740290913020313387731494604654929439478534408031332742047540187922515576766920772656734299408699211938321355764118115713383556002191855540283064401493038120149425873873731589145732457880342602474754939311960055053513877455850639345391570475394072621480642439666890792212772977299177458288199381020659311022353737674141239113310667737467457332343577598663831048282396360531816577658160749403373228377427628712873597659117806900369502541468028450824011151314625316808462367496923836730786535789033065069837075523139896663366538960631018287032966514811526247533100622333985313439577250190809343553307924220904783860490619987302255733066437146032227857641333969154576474196552606884983162148899045939736004175807837544332784350813696694666614806360075058943251985113987653912492493118246689379055104182837138337814999261274941142371559387442177492371416766058357253437250136333870250523628313719390649388465993756641173454795912340657306957305639435409152021998081773442033256951366641632842629458132274674667220287588563967521430463615707303643831018801368561004112024050236898881965250465406905202652622491171204128584779282728126777284770766085062191099089634869127150108059240148746503870369860243698399335905968216499359817264156593423895633150845626078538454357488519361400090323013068447045779391001947664942574667217900797356266124185839272080592475500845299915514792969756756703077459325826530775794174395101147998290096449729334463313380111225013811969799503057189183699569423468638255360621021011253861947583417423402577351838366136040830695470258390308279773049277177237817500108004580239055407028844650021285981947866101232706286186894686506489643489501111895757793282639125553148103039993744114833135682491462825999465093280982004912683892985129791024711822671651398598713902714240936548550053523369944266425562996501879659279195553067206917762039576454642188933319990183514879682673824123746505429938884572422469143617786495580180110386167212856749383929660430018388322223622023447050659603670177446284721411169857191645920140750350610954584130678170071873926381415649910424618581410671559919489505308987123597213233271983414377491490536756629097597776763215032751473817664544997252566215465322612778662589168492833924934581448774426712591042714990979576490097010648890147360823909264130449810509827794706198481844295819949411402122533860345085588697349294454592077684564699068630872294739629534564407885686503500014401119175240252420358706518735676384969036592582089470693533345112861342786878367943166069137322168413618370961418740536986003481721546047401165839033946188455527157137833899875374707535945094892573001628031760447961683028522544199139356020008963336803867680927521386994251277671448845611830436658660305055178161783212269403066151658039285548722242474348505864087060561529932429664503447400998040072770851306270261775102170700142154862314552882434413330242856885165606873164023760577173411933330329084943849493081296779075836308847339303078279856131116982549169778771204542163092553490142888724706809877773235187046595333616289188120365324395790894193529519536104031917948486147456622468440510056179451170468662800281149520417413143949347009613283394953657297760060104240377736292842145297878519566493596518190612496970809014190921908262206242193628577085513101014874590794108842890088593970484223322387038238505068756559015159424790886249091126583874840483912205420349337908491369081269242903807759945939722675603112578191556601549763621868226117713988363872371797941326945165477077249049318192098070980783339329765261133556652472073467125772952559782606306428291058924414486819737800094602950240997684020689236963721639375353314842926149023438194292594490401177318992608734517005426712967211302818121503135742232339267306306850673799081549051714242696281479547795472000864925254508185039986332556154119454901535790632112587127562723893367505755103944700027720197204662932257712348367741967890482280170796141668214078046032751748404359444542550145463489399330520475408428999794735177567139650065267591600910413783578503813532346378934567386244485530261258674782695735276378952664584493503636335751655460614604174474549698821897101816718094484453039859876261822453583771356282404184935340296286047591907838772311052859983283738644618685155408729060971463478744862976000743027110387552468518324615819655978455830031368190910306310511398507980387236111743461537978399575989592849234514123584321027764531234470211504530771857500667422001610512582726042758713123771020330656438216873446315447296765354346090503833968767882814438392059211894299607446296567465017983383722622332919618035239737891663329999220843940284272638359889811085554390542249008333880551735746921692590965529424565483128281504487664107023718457469335144006950077792108610146989429622908292034672930597512729860644163117044612824054048199201857641011984455088743693894826285009647471984035035221662108740376896950233074319504073214251654633406602812173264034213982294872254525494114412457014395505666218953811209968504023682301219375149993677321075251561295723210623757445784151873089444154982517750441927346473728955737167931926789889695238299725397419275923180063298661680493691602790223690291157443130335888159611488972120578896649562422667076541454411854708289678752079055321435025805151658455604006185235889508409130390020884111910184695209200606973110776386334606596245808254054745593536609810191983258395499268225518135979167301806211148146618361922994029496300571530724306889064053697234098102416064733195229827654683533505302881103679347191042043573761954224493457009012751276001931054406105829328197443766142095803326757897562619513694137863464600803737029224184006619222082079587219174249049972832151105833633850568578121327240090216585004248953511402621797756105865189494959211802901227932445592655137590273499230481877592213256920637024282213113066868765540515435842303590338141269980848000855909962296140695114378067295965080806375617148039051483087428653705660020832630464020642375269497992885927471144803398652536973396615549508639366526083721764385574675403143782267702462544268373017434221999691181800574100678858647540024982671655389248300807471808606518842026462996931612156807520638308500180884607030872009790595129164650567366140721830942363998815271887709875144060763978959454432051719214239531854113406098622291547978989143578354021969587548459875193236772214663601176903610674236001782051170997501240190506412193127851598262749390155971708126375534187202083157581398311540687802266078421583142013706559401589042964503606335067710476958242872716814724003431091749558951114753190194617344949915574962721439547422348846700370721434758240133592816949336751928304504111702236871948220100320735639409406329264580297954443719475877558045356274592222966579725626347826440993867785276212079416291079350027833913714988888113673073116028164806831484151744558794739826580141878696675064329798487469623761245500111608234435615660213040970731343326855632304844226338352800823166432674327634610028358118262696160120526876001229251324416192798481619159460360467144722565114246394214213797979048974946562283139716469611025868110512188244516120132870948351379833345218083954017846557722961260072894944818071323704352594975699222755843379944410178725872650952872954891993584476217069366090815885214764826152104922864724622375780958263447957316265441533923951969290040845720848271797445438602384462956553312670969661117737771375027183990988577831193043415453377019632640915460732440080250020623577558111084527695954372240440644947789217729538106290793473459184873552529773741018711125202950910677766986825730881256282139667257097683864349247919297099136262830021215993731721998999897610394042083389659090866570110922980318845715979003210106359318402547001742465039891600104879602916748334507099747172743921314965319364683751575876903020056380665089946583352736073881397190933484107034915941637562000233684757755903405696837409319832812171008781679988714058995186682263580077081917484964042434773119276942151726956891907958682810585912317108375746255922337120934954508500205318954750414537977486177874379160702605438390952584202987755310662373270857220310568152950462160381137811572067682766538745306113601088059875636545253963237856305260674898932400071353376429522093092517734482189149305881504411780041300394833753257256996737775444291201187190963881123344083920611499579792907789292481075654609619569388539188057882189631902066101819368028426346402656248867055424448253260815620655756283407540106431770562962147743746317051568797226415825425994652491803946411512624502555276163927742442162485147867993350701852312164818232545845868727726761141090165841816145522582568341327582731309839967387965967927328975344849972915200128075415917839544868607920675407774288623832231578763264661622110786723624667886006933839444973909330024540771272007940358832909844002173904835187251406194267313599848165927124229978915664487364887064009379103251681159255256012469457770827016093875831679399275929319785275801568077299045693477412542697438317215058914023371424356900326495513350860745492216757102776132944143735062477115621014972043744257986016901418933234234372754192517890446655756401793208002907517745907166679950995573059743103727614626190197374738686147308827341890250914360477245847512034285656935729703240811036834014153341883335498607276893213479995774391026667443780122093370912700393453983164501366544274441259803374622229691528623548647855670388738113111062156823366911148252970421894553619190896402443079081465223602891853354039452934530583938028901004453942826616739565725725033858445948462075134918454400339710247901643065779953764206248173963996145975742265999357081198138875669064487655636982815706743076852152140702245601885072745650511833880315802934805855227923372948222924618002305804580174040433136105429304112219638576980398103584923461782708872060064692970039608853061479003979337984668420428503016712385247788840227662467193050823730207289496511416756186969747709182306207166779810209798575118645835790101355268496798340527970296381338120697917484731721752060009814928785439140897850781637297698990189259780038777192290674649974395571834754686707210526283379558461929956779660808180711623835995106701056936589259137947631896508696339056153173680021331739006656705279214504510444628502675706431546607911601763913458892646751898389501977184704624943241377797416117186581933556765419640152247275803644662726749743082020251611752924283811675330148344057143243728977186787329386779531017942645808116558378908942820012194714064221390801243538801740919859096993259802064708526024963054699470177673257311535191855926007207470522379612696706471140628082419140482424295276138807906751381747699181254627399347339494785574159709779785963948021723929714348538965250140902780812520199460122299073618006133458418049860771371042982912706012549948280652987620910692573312143947485363724746714536920100050680519057060285779413682100963444633317843097312336072555374155659616450012993611394923200857651341029938388919641922492932214760405225816800808460964084599885379480700692667724134539893003037098440503623493114124914188090067596422946708164969979033643748531299103876491077567119443283337974613504890204646954890843488666083336567622003491240367069067772597268879913488482683008971852018008649160012260331877249609625277292884506796804848568649114519842581289884198460316097819444787344097925322087432433146914559565660242403987006556202483774136662905386842510174260258585330674127612836238375537234716328657626069094327392961051913980162535329144883185915559175611614284703579943885348837892553011440290140161175508264647319097115058633373389719900841261394613225566224502406138440823903244795940701761069480775986538595615298845158501948836516878366954173870156436025758170137924736413598431277696193009220467147130187513108583439797241654659587727093773364376522864094517963382740789367185285011546595070728969316374777069543755426861394981181979347020951512822435494447662096828360527101529090472078818381994815572919744502876036954151390554411350010492293622088844126182767236047313460078503367081629875876048711330897284737518586786933103397619417894554902998174874233156189815662315934890578155342265156823796136704578026068783601135497422281142562961592199731839186457797405545508639274740769788044639656066402379098286033884047522735811382468762161066504781299963664911058627629469245842527785614011827047124706221012686919843357907302990007156265590885576362465927046359536910264817262147331803515919043129658198423751863434209644325152546964486755463261878386715521752605618275676291609060077028914123570269392377089499551647712553305651640150825779127966957994042020325808896584658289800444042759742818133638927979514572968914635024686067248029969604936226716889831901136593820183032926554594976297058230804391483552310187758924211190394803961828463214613163048286645756245352727179800707055450493165736913616100498751188450862971997108468829024892663999453127107776614286005464230394725807937809277578360296732770748503347991174882774440647566970948443662550113248599132408203862640151851030696125247099862990447487503923774255817128396728762422562097998879726604601876806205460105246048341090776118687514121453205390292270003653837008170565396504560152451178465998974599272100856444666883032251935160237468190915785224104306146478959152886783501536554947973997270836352271003092718776953201046696798336407908559496529008996194810065256031053485453653495165849627422568259689259703952113138332716197137916777907653118322800360737137143866802840140731008221849108465826373774847965276456226535861836300136741774194554940455603880012442639583672486269060407166931409530514637354632400055614302679076979278191543988755922339764278836328779903748873005954784471980606106338523830529038264410664114456964380824571073003933409440329267987801541002592113549760328336712399049236976282044353615528414693665354434496611832826157645189169755868765518746866940989764171985558183984222855168153927411858717320035018158789086231335523042598034087119660262112639390521815095421542197888775498600673220274333957849629628382860726091007544985131878588541757785493438084168197905151967372878629580946536958561825831719669430233253621517024068889624120440740388160258677347143158081001717131422231572840596485315574639103868785879157892065166579244128663718987290279155007393831170556202930052751379348975373101494521219795098035241287044652638947653913226764036036555187391069281414370776296991298537052001666486040412205668042268657685013531208214516735321686658517121240915444934406346934248699847896538181980770786053015636865039696367074130430702803255790197487389079418253795420054958669600601116550641013047456380395476850584666265781909016525997224584172306983325862894870349184865725640494954887920268724195361101269740723038620461178493422792576010844325606766767500754294215120836383266982126723322742148822457437833699722934435754812243003206264842056771715187174543595657113621262912466609809368961778057726512257289476375551301270176749816007675338017516532380151852837694518294437369303758314819774766634960166153263522520958127844457731758199379517366829180553031674238834977085460795747539767020313326301730113105835990879273968411709345429268073880868775788335779969457859318897893905002213570076197250501150315432928403670654512886590300732978573719874082287901521938249599240636031507020312770870803711232834743320939290892638037423019495166050454642957039449345317838388845879708046630186901546537750384701750710365833723013602269203418584965764848406626336495498464808413839363375501904441157224134404131396962265068877064998516998450425199874146720989210673057031964325181044227370469177597940303772668813863487888465488618740795023464708388830139477183534289565051056027203852539448381421293102808331556862838624025712084061514778957093554462062392364126047453791781286089760171841620450848123595810360320717098278042935477803383884158953953732456246387944091883433778300829556407047861190445857132719694099412834638398923911668307648540477894415467501359549203610586926127797078491728143154638942683984614740871783041083723286330939626889981242693541108133495277024018945567660851766761161027739581219144653467166394688018736262224751166575344324790235653626327091296141099155173672925597692725723642621275400880829227654686143715270649784431684169813878825218445128307897886241070851316848249609408195760305548182073255954427646095651784006516893440509798017330415112658940356654139681321634854968171785452414919962240713677755082013456492648417180601575474641397765576649264541356459906269903949456205225632788078091511332504590800724142611573836854301849469564555838997412467334226048104710426632812642969593071363606282099811834047988921239198244498452990279775317240718346591592817920701771530038303391752174735115872433092054830475158463640430103998099692299776322776277156229810798224513749881693120023980209212103849844468540692672781028918432050523486054691921256955036776546695847115673872411914417534996807697701704443975391112235778749779929473315377100524261989221034576401196921552404709853564070648722451110926416371823972204333215276888542575319645565466388366259742591494677080003105128652857872180765140461705741443288282440876840634149146370366577954454768595042541779035362215861376671960941147146085054404018665629235704558390701955679211522164985555282262565768412279307881564616132081928682314407610153506807727683181249904814707969997835483287528697160304288083374988985340001315193659443343520796506800577811651432669178422340962469126145441744522357691331915242874830213801952618085865102287100242824993635587885701658793244160914652833531426462081362205427659060411286784465834535871674997140461490614671395050277941368817822812496896189616499388076860806883738975521693090353474041748387873034473227800884493252042056880829151123372031711421618277746227039894267894244874620738108297513463793058234572127943919706261166394719002348195316252632726506020642571052881327743421830824303103581319933434303900717269714559821385308806324334125172594278726874972615807304483431029499063579320601926645969285955296862429649824960780701631363425469898072640098775325818519947969454055743103618539158504422586018033387103920619093040743017778440328908928189723731248104825433512092680858258302322591886207201255906285544101866686455654866704447542554873169525955047177543296952388347152376416104767064360504303275278692704290330135330273291312881105261458894810723546630708044527760694380711247350319114201660292987635472928442321971542230639940811227018169561319416842289649317171060242999268917299416530754614096509265082664156303720465372745304302542170707950660289490400763629784242181997032626107359362999908375806315051573522729921269777909155596271279792778149896058091160003974002332769192933966693916178639193479427872322626385203737359933473863114845708071286311095046588338649143246830798619261689162974910447835797035471257292614015568460916159153789119883406535992033445503546443179503822708192597461213430223453456215879675240893479269885671457942465479102753155138732655221802928774493360986937819007289064935164403804195113999290340821685313617325109910345267134784003130197792905716298117951874971263316796394150366689015359814401678849213640282321782881709687725881769728515623454327899650699725033545568216897893200728159174660482122937536455222058057706586609739682893538684710346099484529175599219413340510116791576050158460385585862387991435909034452123452614980494735783549596655325285355726496363330064845705925932446841346494005547341572139063603300497507586588032649377718205667706031999613324168377862307224300131492397099862501037337314466099245782077316863281325622551028112749741440282378107793770982833667130299983378334415481896724803550775935540221173749003834520023642631047673816893386280709625236822007856484347189390956239870799425764789505274601223113507835646553110528217373767141200685052450250270940784662531297181605529662610310279999034831158692004208480917328066368700746651803959215111800307494045224102472042945188873094541560343510886104244297789108069487637130949235191382670029328829896783910483395399221824279086361053512784070020295900960946854733536506032940234970840566854631378521759033954370619522919364745808805427920059779459241670897247388438843286148700855291318304637831973824623620212831953654542131250428586385129651286974305370038028556288867534666063477330135208976982036170242285593036289216110491937850810415994831747833541078203194955036150856353454560279432853329661063106397244146459516312654059381680300373949439810263013417165565404057499234319055012930148704125673334663205400850544755710055947181594414686579097419053782369572055828585954902034917956627986731626102274386313819264836244180727582008287296201492769853446509616993075338111856253565831885650263338619808997984016203855479293448234247233071370766387885187677225884114195988367139133627387855595284093232575081862462610977319969920155604467809520976873267941942737275987976151893537812014933178333879608424475800373549408159396381675489817517125871355650446027555996155203298470223295011119433488342501091272310018280573728055893436127541525020671807796500415221458564292458773606923272062318258175009559554205779222743962319104273611096599515868654571517697455491038973661881056985193683468093211127438592106972662470021449276148931204325883905918776692282118349845492571733300696893498472365647480667365381474050734945917836168295286112684861363673513767154634516005316473238936770131584082777835117960468194685919821661424788578001852248951481278786774123348951689387308736518449055200488953023858203698638756856187481073868473648908766808218830067665967843422180150374640249045656225459413480564680936638846217928627876195741990904620534440778604879301660927334322122353152915024586491370571803020227118100308299068113850261072373173458625844000307644231932438534458760060229837852699807740011099373100904370626273868168276503193686346206893619422444839516635757169816560459765943025467556536110384948201926602295587900608621045576917472460180617839847750606114285946308264780523640421846752020322993752734502343028451378618466254180127755008250431126645981484513611388378808923271334460445588801411014881372043213977910659707010889489348262476650088623779427318312734401312552964006254833560871617073692402769223016181519565167957571450129230581786646415382286858608581952132596359334934195609360533836896183084612110302990507533563407630899004880449748955272680477992801514275692215035340921119078178654534203360076752915681923256762349119952348176774617375398879667907648583036673295500426305934218406795624180918022032167733306656656289188808480203883356141025013180978419119971434140064242354871826107473026876207383197611767416021543650430090812619358892295806139366293233377945460589833875188455601457082496787454097701277942698204588267694673352317794414254388018703604952584281213619265621049864159684968737429694767890000038514630516243945804456273944014997786755630095723623688933460626004118320895388143359212778778026522825589752268157960385775878379599086402899966981018194740932537681313564717249118583495456113037861107776747121476783433403247581566435939523769170217020298973347942675938079757761445622300239600260555867358077631751464823132225906470029809552051613587890932301007076285460574189158765488612722701581165122529717708052928712023083713032525416829229149887340966580283839367912985736470061438849553148407826221109952761415196307074152291517476203884699386046526730699129599862244831661598427949804190361278985170366756218220225767326690609606370163680617399548035448919226180565294605993200728437760022999001168402092892350685500261307934873974733734205287428787806984675511932883246492173130729515123653176606354714649646071359724217580917799666380031795446777226848780814243502388363803305679095404200326463105106396116467798910968447513076671566085245548642959864691391097098435156683446462372754269395385034737081044528255010306212104592565031117517851344799711819691565184132231927432550692401831768425853667086748050511728697398400051390238783576737681088125989183889773892535246663215131697846736574526760518931463244043740450009281122552985161053156516937642272377889794091129202578682825908270803388780789818730814535671834105469855503428998598204297737941217568851383060176337292853948283634019170184735123439157306857372146609234477109890329930938580505997443341723074352598565458469593743351518587712911165456640619877387823929765728706019946557950798883848349835946815837324230861122909348560069978733619441702150094943161657158836407652695218929126895008512602059348848754935716820860001274451074906992990308049233125021094543422780326177554780506911851262928895425585828384791833030185079069226047556792050647447993208088935415407652808277372007009689484149176428853799718445229389509369632282901790928109628224355207955763699832431473552622170356217874680741788085166334297088940283930137338438653816233277412738605907704432050808583287804264046296228644078735765695758199262388846573483755462737051072437997605831083301704867946106049894558513000541565141698574996973244152532068020312830703657728899625729148403277406764658226988868195829970826933524167616592729580527378089656120514887265584077841613266235358452988727482259825665822927586143486085357963168170892364460464416642487573472842164869670201143404519990122954683103218003545887005258591456141547211570977238583417837992452628581447815414299424223660305409831758163605037074319261037722863606449075724690083844108501238629984950640179091227131356622099218745575205511995316991884362248161495312353331025756935373659541246414391821222025284907084805872520248124601681426242194319908358607639796156414003252724090017877710105910201296748382025456252009143310883191287638520207296032667729431612238610554879244664508524224960297570531943837134531094602291886070323956835289853544709740486589254322835582721037930841887493133946284686775290753010441442466159078222209509982704752383269345938382480093039228056177837718002537679963964861778937505877992988996143897029971498945892121345087423388315202091931799945793075107840441407224457316481232388108600639818384717709841881221825161915266842229205194611862356819165503429559343098454809450110277903347005470074528067401885509463754476995494033715984824546570091049407942150800723084102940660666556203856851222846569029061941878613849523629319992887634736973009784104685092352255278309086215354341886292606426869429294733390955267706224801255423389235048956563177392085935997685267610722798565113670909749974080392777046731037372844950681200865352563236326368644504116690500217619859668645578534321679104472350420550228859373136937982674621259202212923879148125368877092246374706489449426433335223086678255628113657143904993981660500567831493185779623034218790154812759614660802445760339563659908789926159911343156980621473179336572863216654565126853547917543007375983655583127386092116162023485977638583085819851651754289084049328434711323658685635735428989123133124471023419779785230268651890085462999825751967723860755971250956424579505618515255975366716773319751982430486448292893674022389596264413621972434142751004132134067490477732497749746551148352849335113823248340672645222908644991097534509309194278361901935515112983233153942005799614593006114990854678699630205645941109746649497657795938579119824940919121225785387926665359175561391318983758856587998883003498383507172018404624101496935685491748848951247699214029926157842464006955101301581070586185438207697089130163744536137493825099573019939303468440540822613751054486127172787037945143900188426404645873565041638757227465553049117244092482999217467885811798067130194879709382538153490621250317679444761509496093309826030741110091844843927860808899169418247425859942191906521403485191668228542381686819114529662069824285605842073234122257343932380088863539608112838251725846707378984335780608843461098838665226996452227934967006035903977179834359618940727670011254553828906333741207066693314221474132762304479258561505673241594306576476677625007452975206832868846012982310391814262698860282986411298023829917377923051832961096836243867112589057010636997948768641213355873515197847187942670265882183169184948630733162700300183592729598486694259230490378923263386483134647877913672271481677040041730580431607758678304349314840395434969333117749489939465015528526608024748483055802846155300889705060927931850478081732068732726158531327026210621195233525882966408084500618432137663180603153441078393897814564251846975373096475802429307553463232185395340417465569837991385449191220954015875605157512498588885077895839841783220099867289110887458250513130963592766831517360078067414556659132472256477652688060263529836270170470188288715338831159018973864705946623847572950006162925373268146245276459066692816132638215343185315863207222085226433602454826585164130319454570295969167415563691817302108711942392123692809146484088793755224779202836493909319261225434507302164128103842097910075259547772607298444730989676506362495164412295359392736707143686769210105058255676911746917702204418969764064427067628559166630490966429153163384386874422348392918679057314385976826457236267416105900746469020446303071583403443482524655665696172489566758121524219074271963588916804510662193474044766688562621584602143788127358015144568862401089257743644052799316527007733046474386371945451966491943109308252785233087448138274229238101187667303560821639605178738721618759468864456071035350504208858666220945827461817066312279841607402653290208573961339802235445116446841633049920913861805326834319175869024195474455387747007210203534620506781392579643006826426765258145347559599087410174234956063520185938749821561840122438924913843231850357738550778803396763427395494232613136680733747841824258073262686292214655493140403425016466798187036149498631512442187314298645682244201675961170990101843753519789820329208667927065177199129513098646357050575731120998726321513061667611334442488859030780086114932955876165822716445078645797498361684772179878872704172426219119367229510343315368304433597810086397773879138730803957435287793115995266829057133262770390433513241976684916014835762699266740220651915431472626013866173795079052465480642232980951330766675953591661335351144011727871980111146508232740408773551711346339051491647987197720953238928322935423883007972459855161447581530278021424368727493491038437154566440637430893819025432723099224360984686975647648551713516777312507084496783532897702690550748542288712328567286556394109741603726637348509301979761311592425179049315945967804963584699819981025228494930180516337537040661299975664351818051688359657412746458445615014602907135916030740182193846429172755628348322290327037951982424872767233227214361950520547110910451699429666245252289451196089276003639493292877509476325019313308087352624371693446794861774368932281153793684010458038484344238643490455386642511390971224984485568989721466245659993078560487926667507291002164830624165026691653905482573333127443527548229545852801439889666515478530725499951559485802864204428610086197261414631797619519858630201912400914879227973358300654913909201181370166256446431805383135349583147506142938602082131215388356535285325994388684230295041589915323297150362820038626020347823937188257731658519575113341591892044146297084803803887848112019858440216204770476281055238256171984083296873914163884798728698076457427958656279530681744946821878204069488621155081145864687053677630824622376668988026781196737900334140953840649503391401624651580644338177625216142321158237747381443361495571837021191233579097206536829591415974770959758777106479023624305517325620314750851596566755130887840577707525315313853317561608734520674347344162816986038110437370572963166827500973875398356862232883321119179266659186408446217782589061234157910123169460668239534247795514269873176447593253166652531832431035179666471784245970892765194485904756673056529289282114667101770192757738225468790157661401623583495506350150686803442748986823004948674766767470682315916348205541611869557603462584860375020339289727583040025774714926812972723416217697058218755337241016800268200496860958053333140376805918725600002851236622370129072328323324502386647481872361353949266902174302699625052982788795229444453898990728601359964834625767470970672098981967420871083823881593346003484374392580780144095182215100710207708162267751850073256905762718674354701936466434518405576844962693908512693684199528940475120308878519114518335028050678325205715142495186147439603413221353495635489495541025063601471320214750417409018554394288562599654125392093995454582121633720509133697071427452127420134333331207352705176167159940481493498928640965281789668697611611100854309230269845102391583035789353059256865569770634963714677185015933873830652825444470580334210455336269398863406678186635479313048788106501062746417805931236283154415888500638143722207136901124465860967850085709491289407352749092695922239959067550848689226334805575973367299696911693976373030748127531508105569999970970024310265535190281247982182614855630272313498441826672363454107779000605942421722303277538312030726213936670631757425874053417263113221717869047248630151823998660857420959377018138172287345893799807274963496542490578085646962772093400365770559214105680993063388975518271717245900406972444727370783859608397233835804786787495607323115811112619344264822196305331423107524085180140129786325812732408313056505602040778451289046630730503566802432926330497263310082174118942532260509315887223865082270723709676711802531134015318177962101585478968223383639907295045914223677924853188860069354744584109643129936657748047106913304733879885700723472718121874250357287551173277191327942423412074134682313872407994555814561222005904548512353789340668955219253604990763543610718884154324027323779776909988480847997732652612754382001023556533607860014197359529907596529884603597929812963916790452966415661228199611760407582162956703814658670339650460150432040131605669487133608224124465133122025751358059951870005928759860235224393530996425358298773453365423062019661442999115974932107275393759145872960689048478467567601783873374394580750388758891004782426271792674809047213436599167275981861763824205402090768632784444553689534382197361972550101461244143877753656318569449387429256329150925309020092226853534498801669905539384584113516102123402088750900969304441588504967300348944185098347330211341120324798034578129763910536461749600450465919399390176840131050794620393608943315222130572501566061272541677577848179340621404969619494307131616945330096710316902326039840451311746679514811219681000160970058666023567956724229273577028546080834695313045911668484590094063913775818517011590784326402719819037900296134734821191058187581934743778759230922628144465447174251602522644062563891584456919355190037926174151749431914368517968702315659067873070933982941787649941013861113356332479369114514108947329253579061164338394375125801583223669723006735085761736827863669170310034203599559714557208619629341995303730782511477339055436510555006364581879423407518621664377788688298805347949526430574192357477100708823725681159881390665700509679106062542878099562377818129840546578063350115447658680575752418430514314685804548741325994126460132191331405175193656588532688419338261992347428964391297550957455314608925190090110628965296693181839593112497807276883879191507425217074591469419764247334376260907153755874227214104211686575430886221226826338830619605082364745108817970623256800166864064497256986590985368202231482269423375024743093995197029012341244564508918874867379937558818337085748674307859079452355480157458266412630283630067329788928484373703287044567003966398819328137038039106801959684017319946886984285693052208696305386461496785154766630788881608136018022807558516258442402655192462935286598768728081604868546056396909024378182955193705737132517285983549652717191371839412505191743185717025460524742003779024940047861889574549282366497645637724530984991398953217666047417731132513393034522809845969194652924579737093240800015856081330193681965500698734928443041637893484551996218802682761769993731731027063738004311006829629384302796382178586401982496441533120680239057671823501875529949714992721732801287727714087702134793938022948176359737823392103376180347219149500755397520688721611881101205811190355236432950269149061146790953093260677424503430853590502787905032203056023605718510308921098577078891200978171256264154371108973915671034532546923797112041802757830828680358045709842670423346911357382785844812438394999166681300810702955464436123373043646209315577682586549813385136848713329648721806186692366119951560517705819539798152746634607477919944735512379297036548753151185032223171400758353012509284730290126289560141634413193513130610989084713263450898185403459767519141592345024329715539712181481789332880394375762203477607184516711860470400834769625790799247177313541751835983557000196960804298488325012553326232053831922038315066312270688529963378130893026811081997672861015350751257887311853087181826913593362198529617677585228502366835838708682571407276551436135311907658621518978511398371893173901153070369519972952916523892141924486998564706185165486703364692807842669721547283006209447346144066866883330736692662170832712300177328211281314104537770813076536560342378608403676391884023507801445099687642429567418211665171670336968469422325440742222201153588656498408879166435861827076508727278176896131480812290702586457515789624928302581912113061106250570766152540274471990225297202971351238283940914723691672293837276978455722925396185690965202471266237662746942274735810412621964136319572004235473767547584767025451998650619988537420125687822030031515050416412073713560253701530458030822380638678358016103421307015310213377479890660351869661451302463099716114597423806752301516250991903527274515326318893913314868614004357669538933238184711895180130516919859037796576313745731525797999872090764335955343027889829015720456752220829725103547631476654906513060800379241134839195097961588281787097827432090042918360941189891170422260137084401221948682045870395650549734062074039347246838687658987834525078484688897918419912754563764329149422019769004451833326070197855798894923150213189648661544974479865783927840155129710499868142525442568753835797938196580724528733475951122461229104579261784275992491464098388190128026856163286408834456927901312410193075463630052734779576399744278156472889661932818653760939793794693963281369884427383787699579476430644712424614662062830265425227885341904012128105435057600079429340530272238119829377250933435725316435208332339773996568320195399680486273317560460938163217076486790453821991303205092650663582880552338029148197684556245256538507583570283724582421176100471139081034478769482497266214081791873089299849642041635759912941914883820942963497977447562227110743784144126933920652360554551095888410875866130766796046021512428402342748311845974751500589820817278070467968012120545797546422957946716505251446040500691389034996309886641107070484453500927869687421712469643544874176095419219708734389172570674849311060357683126350616056107199708035887929946192471241198127345962035811240441707262263058940968836863666239917536030003467097945041165819431770452811596424467284294509014575219227343519150229836884441194971296237133717476874283589601694392317837410259393550784486992189148702861385536280408625343610553133443577871433536995843394682654472003462757941851274095947572973647893197476266064934645282390069068374766809065578779488444907351683863814340534435339943595749969710879371097652386962824283422651347715188554945677064956271418870917378390912969789398182031172344046789377055602519112408127772392274588457473950147395082038996846676510805489440789733637771731686428815873186685803229024168507279628739272419619583183733778499313884469008182111183832708918486367642699455601813985484488155596449592491107809267868084264150372729197834746706308016040476575541547425646869288181953779907677744121022714258842290839788466781672590681199511716190344348262451029815593514836405584802329360688852454793769489873713431540029601495177473009930705794777348083500264604816033772393469722641341068384977933012796788831142089015580624518627468183748724996604608954481635885264193507470975091662301051362126132573109483976568815901024498648305284353051447582748312055250282690799931637369411666390279383415472998140653283387953238010337414905405488041429087287925582909539455108677502833657059315408534333387507463378456437496893566235619741483244879600397225429157208003452759749886046726468331755581011436151462137314082340504908858581690302881516526163165811564440833413645199197799567588388441837230203008874699005753062484297570935283190140767062497661864849170880646573761573523273727887050619094407992153422614301957635222386109088381070148817267810789496534770854676586361571876516831318680751589552170835347908724754465877759483923711295297758357249214758762657080827464486714538875039292864917435978067805649481317687997699253708000205563760537858480118853494804169198306852109516157340890198927038604629632431325769980724325905188467984307817124619624719397312148187623381688263568590067758841104959499635099966356336193727153407251486012871735261228202082494916555145195747051630570998125750482828729388200806190589284322144188973499637514810039570938145278288158053791994199244076334620781769307699981126537278211456087309357049772278775260353841662425330125066313285879403215196442553582672844289342628139703514279056352661699327499996197302030304623485721906016376850652691789020658913688153925192752053586489140075057312289157863341051263452955004720854417395237261390583021831593499392734958565174969530106195151284577596710890629215967997979087951958123226706114814418822894439792433552021714556477632565007365080229445050741297998684911080894288667341836756346163957073555699387838765385799821511456012886890234106561248154486317150505507980156981759634893379143430493683144620449891702562290718423108308724989611070919116707822663579391597556961753036954724683319066760803814563600004198231498714325060341887852396930783691100608391897728508254938391838617907769535022490669797805590432933710819481167291101098124621701578322222897541626535735531107132760506991278834947239207555153619976786813902656434462116143217948607675666332395591671359380824420981161840517114384489303256270835406877410144060495952975341864934454075215118328978999390093016600466796890714582413263755698040254608968095153944195691021283233678799203838591481284691669078416104484267406736977884873022685894123029510587626787630252172972413762149070669027314225062761738156710684252200656689990934668559277482115915051350790725628492131356464832691499163069101774389818797586688058423425661188450939496870830283227000164739719928608403448973042664863241860450153615939956337651025959654598108868720096794162385742418313692016672334082280286432185632248376103049172192443496498875485115007824846910455206428267477339334963718524741276563741726587108237397808601254001362610466779712827529969341232252313318715478264009908736133804426802810273401060893986045706529934687426614107108711558931848112498668097523590518985085499839364470720575382267997528835652216692824171486750972808511377006114563595643611978818197130763539890534412820086132590873830226603613184289127391715325188063408216161332209700821804190854356616735173747937102081054749516551743383859209432809159315429020024013724755464637619699817104222217982058680320541562809578732214240876187900062825737479075047030199084335998512625625568620240980295251768690365423648237650225065496099776505176573463674409533278233753272150443898349516512367502231338117914725913391878024826341481873255844540704145655044557400375798022195973186977981780454166500016446972088195433974516562666689335455147969328515472222941606668527003797527938889855378247523044527788028207289663843576062684838623764663530696028452710981594071892027052497081940277672799248371349349201030338677139754344059853658579541252227905534751660539157826831285855929023942226187101002511256522441204413600628727020315516555245653656345101814694258805719240509277314124744351212072770088524959233105714013260358466819528369508913799883778702781850938556134049801084162489236086706439898556213996792149401407643305542200695986731085514582329586672536758629756627972866440242597510348815421536560709729060320296320668897202733581720245657232814365445428516898911031405414471993687509181225507064480996329508932348965191907975483924995788376306989069199993497465556093726067148986380187874313938469745151241817849929273198456925890687854082688172084885305113394746391621456280042190753675934806902915752626581871524544274215894587056101137601938841041206344222892684377246309687691339816672361199722583733139870060931925042056506644204267037649894151060459846143063429662634917688724069320555941469625162072591201108583058932208831988837696491238126521858074048571735842561669076796093033338050564001866635610861062020639113319951263506269890351782270379328332964518443102828062309361604829759567790036966093971897609562408302118646364145340464107063370274462039805978126037013386757977482887649993519988764354532093301353745434765714600106283851884554732287735568332738970187875554194970458216724620943917356021515510562278911770965927422714739068087683002085838538978582623810595305071967785643010055590802053215896545634906657897037045321114633978542579771954306433373264089459029442900638091132842060343224322777503493388698587574216435080700044892500119136519839786160401622982561368876830233517646911894710943387925764472903868718681146287501503710612086318945398174025020281525409782122591887678984088627413198640644699357683306647110179962970011701662426837152394913872861721618683853372243161007048143684824943034369267101373556006907007224247137709031597193886384523181323521120979314314323971975551801803380583961779141067612171222759790777150757539353355445685390665127341291360036709731853088373874495398623072522855114575367682558490030784281194296413321760985297926068628674429441337010780100561356984985971421669320690637835531434670692959477950136671301897230472151290552867270138189162271652197658651780529722240722792243408048032293349550662063843516515056994514549378197869507277601120563149477778460672805238186827441990288488197813558306269786075668071193795862369291780172320108795382710456259629253105905036044409523324070464009442760813863708928875402091462183641008014253652806214865472558319240275157020418360114569104518869186995355131046340562784984781513210231078316122312906231313656448878468480565830332344141901964921913576758180416954538158957518361876470170338587225626043969520135395674761664879585234746595841661560272881298756771682446535226349430960232621973857893161305415771088868476095389411440241158805435728942821226611654960274309588528445437776745817349568003818228441216044269111838347003129803357580417393107571627728832021068264638660464651382076408840616166819407578167351129377457211975414452063687284449754654217515840168981076997372269687183167085000921794586429499082858653632702844359446858404205569209926361744443804092377568992116741609368739927226659699127586296055910151334396857530893312674677676476608485955913880912590697722200013015834940621773601057444243764999843905415074392928511853394529974010934337677322687032711523184368948499157375790199869930167353400444544128218377787523397478960552089964464831821130648030286339850521907809942922440370774989870126057256744650373823661383960441793955734237599110325429330428797017808974503508336058800376876537851371337216100414259436863870102322366545873730960499895021644551763743125415724709425727362508692675911320247969638384415889142896599765749828501392898564047922186729634716202650437173090688058075507035174176883673578240080335312453030426795088256272920254169928408858934534505196342664440587887622012652144132680357158941937725526160880731559543553090326261751429170135662643807039348199344060154999225925589384553964048586485910153074931565389330775819134432922868983697019006825680835839293356332950508632167206258413130337363381340669858945870534564648378616510831722327568326110093097729268765480217681687599396172824921095136409124643132519000832370388359749117088591835041778055567591446167983477793671462908162913996402005294799018924973630483209922439688714231980893086321844103986915640562727171633416261915915896666328286246619527789730335160453426298261128152912236256974707382757633236716487150569746145123551042926149911112106899593118473949558977417058675389885415993913976375176422516083040491178397986283440172794360336811775150016445210150621239031855826674811471057411287604383632943293707739596264501111646586296602734472299200172191807177379859975986226210902725808272670241509767925941749063050713759737803668401388480916530718993261502471629587349312949337714627565825227772220781261064679838902309870703467037561194751801201069656703898504680103287102930514566377725967106004354770835372109793251960529885522657870858392938843894759582001616874824753217037496769334803290547334862892609534996987704012842587492674632028640008289709074057196636441982923718927241358286767421989217219387911890238430184622140072474863249303118811370193021994676597685297039106563766209280660613077377401569657562489025236509966745330896111743537329176970831234038389835643659101054793534907355763956011907967236858972994259164641735020466702057856853523663638640812945472672128217412493526193148973306487273781164931263605432462470668591148978410782237589685971666851488998522906879579867166479817715860582527257045692315952943558293350028331100379910740180321057995208323834511891658687843696522963348070033445933040546471237165715161010669733178662943163180082401567380009392019098396255291995453057462521517725045701143203260026782397164545572253953621124661763835467747744747767431897815372828778228350407818670035698808451062266680528591220824101881660954485207913058764988684063838377866802051002801713335234221461626812251843938056978654938445862033336864926775633402852321134931060564801518540532050035493939078420956237322140440916640254087463310710620541652420389923893654361986882996370587926936066933886180817206121915539339624958472800496427726104443471104076063482720506161846252066440852875325754767448368268274736506852361715274557244131939238027369841823744261835248487563266218437226805840309885377552225333918465155536692679499177244953563693065418577195498486488685245532447714139418597770213155943200904883498362916497998784779436162667136675080497620882488688066952837500813812992189093955121434756138143213280125469076061988797566911326508640207590098223383258910952495204143675387286082614749078217754263948157371940054975511772548768417541025286667578693822061671922110065022288289315553298344676605236328911690882242880178228393395938583210776593563069025502687797908831877573246151749861279147038287121073777553731015577686030888362236619305539921663134183691612735272910736787692135890719829905204374808975996803751087853068077618160773910823521126936285674660057493893413200479469721302387087653043240219894531080154611604807032916121158610523416281509716867098979889462911098683537340211306708989317638880218352927178888146158808576432011177244614592121319015353221956080761006573580146486418482166165063026748211348941296736673057387723323219402072521026572454779450057449184831312450430752728630960150036419394075433795985336474821853809703728705018995930424156705329403116772468296069905250847367140921423407949274254905604951552246029292678582114607339192729397993931564185604164281870144831538375103390961966351887536525460947791965387125240590045832867922642586887562475337846378227503258706965311211125424515771087765070390992060643473451025134472898378817895185886864835451118767351479772528923447683369125477031077841109487445578396577731802322819239349448477377854534303411422850930269208317047230959260231144343990698342661899118185954156180049453372308903365856672438732054398654997978517003300234752666274483405961686716692457949636441211928692816660612432692612055510330600757188945779277062065780455781738087845342147628772233033029564178629515498109084284793292791706181809159739636951066513341942780485623151027070890856642866324461554705224544574702816548550486455987880269528402217497123649702855040028571859895537220429730972227890591923719653960382843056727432433485950829683303979078713215903947555297778773949064605442620944623010159285664045794737539926176467185713172256026621875602612471429968892153822925974130574523947384505193662956714509715486652054733652580052579683889563174591644305659028454702791122687413409711709599914865367634608177259053836721336613103820671331103714633586761735550803239321559593349848996644763310954565909250952102160793493127823137485938002548247466962553838748274143013422658377491316786567426980509211263408818374927381799687638015653328235392077278244507056202589690787826332314077065701914266625887551766037301331602697694175913206429681877323172348424425006725754093825589071994916993977827900174725811217246866432831609279179088085372673311324998444561117179892442650041486881190129707407884522822848891019899573944370738205686586893607577415115775761049258873801697619088563184933402964351117221293103099188723135603392740155954723347149211561938539778609163199127354797183226670359612417787597150163051527540424498701546010132701040615071513147691392962312952672482262179192796645957863509093124104157558992759433835592574252868752982915785059871566526785671232779830526072726483000104821631005820190345887131165777165947738769379598894523997132152924965886306569550869109823359235081124116106750748156913621145235022122649911571175072843669829290122864461378110307719760681491574125865676109602754864259333410728062703731615133670256685349314124199968047542323490035869183092000533447444985595347733132464493070336042413338732488777831788172874225233530139784680651078606498545795947067948898431666098831810850008362835929203876139351119910834442067023237105238970070027851144965680537994312718958543124020624389290394955134321230014534658095396194270420634200706390233494117811606923515636161075367555326004966906910542780254609188106383566155901596246274281572096822355890512243259807709445635717012112105303876299341480098370428900373136322055426812618687090837333522070145394370385809135417415235359040773766692089076859075797378993505677704722418136535149389557826920872492373086560813914195916878499753636932818295335294857764968676209624375219821136177373739916466653141179352441004205346873907116596785639997842235619335167332362154504862229881356633946404872585771195685498827007423920143660912158431568171928722952508301444980023599644885535366979883681042341710124947925144429651092882460499690811792449267479440236088459496691388051343783309162909104163303492169179622234296519268749957664404418010864737349337862850424875780768652172659347173883149387165319432656064981876017564855299983336252264366008595788334455936347827573779560429183562288296677965948433296999543224977517703901747507916621390674920308894284452639594224296647313531009078705245371692394840025055214745649525275662658769753667589852470149425666278419857396453900185794310053862360965653058639032674999573325288294985759103971084314248599779889407788419374080018320593895851492996601710287698991569083086128756303890301060014362504189283847025155838249354569750567266503436871331661952447000008114148647033104679787407736805310279947070794197238968147203067850127850793880445464755094793790570313973759212319327255903706787862135843291740086354481207783417603317524545004955490275109148236274398306237814903275352820523347116238452043070440867816448439410297258745944712861218326439937256559865367272087174397772990192238191500254853582332830216802013863571143342293390790132174919335055855836442312421361217250663027246956578268699283745735708866322114501503519702929285435474199094952312584852162809067565403332616739247313242856865924363981928062281451717832297744354886008428407403384837763010229595485480857700086247500425560117695385248347264994978512031656195259225278721970290124051267774724717452601825397325200160179327642211930438925919425252289718726286997852471642086122270027754205311137997170839841213908611131685896558372466582560081424932177055438398586410277200952936549528875229023698290468641863090095005713248559119102826988450687962226077859406883560411383104623913733574438966808237504170058238569496242773006588601231548389704095873677193104299142767604082058496586941989946782646854661439842921311294948158297249394348734238121584083691054424165712302255839821996837761164907088685019365041890120670729374884911622102847533696711917109342881474175669865674302919884631765084129381404257893985123794891781173536589421218978567646933427600739208330476094080770869443259891363534306743730818759556447471299943728237299037172048891038968768539964426730597920658824224803037843965345187961202190340583536406321683455097349920109736213592407989607788356324398443495408904161954746245249645340252607949356428281437043239721074562760405744619166964059822244897085418921388376560329643102024111732424580317098090264978967892833338574197184547363780122361805777061782624612870435130021416159896151631653358072601187404717547990062694462443648839882647235680893776946289700707731873010539329786880545412105559836106628689858332692015723184748688321325101250519190615911930183866442618920252284901721398582951417002603728453758360966719196831523645656384437424368107173292576356501347777208419327490686190900369117315742777578866494538996475140540521613034900610591718387970973869644816649752177211615633859008980258149148323996842768588772327545981664404631571993012814123644789707913577859292388302512834716124154657021925069420912536425820536149007041378042255777595760184728856001095658893558001971304704977678742134928452499543574693032227452473300555917206046171628098922323810415034763268115851939619243696335240035991551236614914639923714079222113267819608850978610009126342920560050617951092820735964525991697107106289946204142146103479146289163513434785187109855674140914761291466429847838478540761173524947845556668705998037809176212346339500204843509726084224143084332021125565916004312752510790050441519822787271686817115666559303497964460018552045760347251192700186217231370417996875219065990034429468288650110102541479520281852681881173251995944606126731291980041955180958513809921126497604746775193130481350210443455903214984381290912829123563737580757514516105821068198642685353671427828200056382715498131750247267863848445634142744057146768411405347729989116181078536475176861607382942008781328353424577164545784217240730008256393480507129818865441860824383466772648310333603745604587837863194106551445704487246694046951259702605963742058846019451152701317426125197103377332040626312053469991937859739814505768494235134747523135482145830103996285171997924937466928555934293704279445549357088365551646527320514385014134778392109439117731974705139980882346342417742332990605247212417360084196929536685264778649825408231145161386155321903361725653269133851622036256352244945989919897035575146716069925289344614415709782291942659075134906696773171545075842480357762961383345706963123520188056915586767243455065104113218434064191488197604965631143408157252266544081984272615462592004295978892534196882601563807313367550683558291621955392309074859174616492498574917883670658590802874631607049915166154066001359491455483340557807868064867233894067459210203042113841329496252085106754569442881168018810475973408564027284846067542647688792632708887541780655961178200755319651149048955565294493756374999066351025937323375908848501080784109773705279194827956396056718750126571439127046053052302556993388370446614316604713928642915000254494206994356051019184706150406670975144235737822756265218472211826122660271819204552789525453116684556195899026472040336761444019407040127188515352301427230755310848540737123580074217618927386321415236311517179176944312908375343277526226006102931555628513328118480536245193673172081589450402043606325746201087198602752601389239310629437338402127109292912649168124221128156399705673459129955953313524845004249238504868516264482596194509922319406665094132734826388682954833479389986651994193723239963894535470203443789695491987642054120903543395023459220211126084290306974661538300555386328588097081944036378805210950504345683288592008339205501384407526543095200112671713127711583189825683681987185249696955653799940255511171037494879411526641385962977317376652225788669725266716191784218159907589127412949891460934853199799151883297719114505560956083169544578099440518383127370023179806453403602472806316637215765854425501003344823306649081986465090554417870931884748923307839382905731379253147547864584897580897659940692293402175723793734574281483033555180610470999665534222053682023399393911162191182151952673750667081492013350745983693413930379399647830567108686947362827753907493075816813630769023885558128458549927764945981053107071833429820922545767399379729670625898805089156581415337377477458388984614501807875393276095767432045228398586150777107128343548058923893167162637351926055713641626284706236527272624779986806931160054160501650676064761960595514149258856831297640664374858501810352969658652741606036179097759406980762093902246096544586857158077172787077542581299255424516792834274899947165852810317015752976397555348936661647889881173414121202256046174496651206146345326941886290551839527362859927908478923608919127717536210573489164090865004697608265635618673606813842488418982341877116980852875372277560439207471283036852849652950575732832517606788115521499962834378175043332156381619937407546997414918776884284798861290272732315911950211179110648109031315202696294736119954144849514946268944383366119497095128654201183324910413978104844175057084942143417273237943296989994350231999239321089956856912174906031547199240430094353485649693330191479092594433691973750491406812004931184173844656223415080292950664943135655193153471514270342437767808158325392828596315830880046856392909686423482501415526767929748351899046524887600772825829222767790259176046887473027754723159160515078045089122614020795883000633163979551435277956510223948245224262861264220119347077994675928068027291584581046733805545778636987449550702843751677992190642280534272526701146406853831891116493968283517751364594666436437011488344260113697569449107396181088499432360914534058587146661978708631601814186280633977245458161429822634366886847156118887929948154018316873947978778827631955001875410518431809387083425915574795354803148262113269730496176075199598342507554938916337010296725874392910222153199139596245892748046243616373728784384130016681487407126788502951776996888961967492901636215237177485678839232993055476735810732363772151863182455093779863837632787426878685287624466607095534458125813052992802333864869062152072689941855859063987857257242169974897060594171076435433867789323075496689007621026217745315615380392749873479059102649703917121165368758654644584441514931208455275580589181985320134091825198237057026079910091720160960410513476077827790720545585980521876287627822125238512985008749158670602009734775474956782623266643557069050577665083330743291132888694109023875107253458819406866215878838184782743278844517293691719020345603583224143858477459017711153923997646184110250672266537451335260216113515080433161453341691619588849162996479869081674858825109130127634113169631621298756211298097394714550777166673051255699502350542255256989691316825667871105686372346004561234040404174330377163767385283747051369157634249700861613878098662129909848120770181921247487490871345489698124264982059514709324303460895593181941033114225865530855369313857832727042341498842324176166469187717260691785846283915947514879526128640354890836057817445792969368051751164776417414787130005161816793010104100294934015276830888016595594388207736930381726954145447454334096405579989495193748937904490397954711447128043772986012157192363421894707745874467905376891462095858097453305088527935424198821631600054458791860934832802807647599825151169193726022849634987852223052017893047390484022708956053944959115731838562110765523149269201772264948874294324676858109322030226484167877740888264530569570711899427083865621966145152531751249475874847203000244297899707338284939306078515999438542391152492646388252195333104289109064935091712224897631108085868212295300408665108055139265673751433832398594076553431672934708141742251366931340882215266881450858558300641701415618694302589912793509190691227446216982529713799012130803652476622031863924601567180141612706115374569028466131829974805690810144290361681302108610416394038306451364564158124129406376287817250406165507885615591835624894469550069737273453773233935165743168365692425862655744325098800061496182983208308082601828721907204252704277551255010893607596078845546276161570216269960168649980298921233663148685268041992539185655295203584070460078490230699861208041757662087680583308680584249695030381830360861944724423456879343833898652704675484877961275019305885891831664393220078967232501546239569918637333310552346553077367662076644644788351362134380210583651197785356603019872465800163619315577752188673319822341080281529453643876727188218166639972183639945824561838038774915665227932035770297424937203707141592871937932037029594981366571745340634668284842898962598945406781240066881665482431782942868111981298077193227196001804100030930532536978715260837105646824017871639742719863572938848462127269688353131350895659823923543558124089073121413695563825566945037761549113220834468537069904519556914369223206299374692372383948464425232545418798825739574658671191112234364606480063553254765075528728208211260382497091666894902779106343711017491578655598981877234941074595999232211958566765547346749655221357184650845819930989198369405486791893832169552247256153034574591127971657885798297832896289478709855762598354436169208977687909265941175376618259319814708823004004483597253433050726771160014310413217958399750771331600537702908372052880827962415182079300500692038780213264525362039374574918727575839533343038385646320254461223576374888820477392994637341384509287472830531062543958347582842108700628994674070490380056545471389292927485476422609583672082905260328405461048841803666495140649562624071824010741628086467012404575044672239560886706925168689003414512995266705388535664077411618395840734043922598471576633292699899204798369379507728445228013361371580532582805180326323767538346967790641473879970475645268794254336689628619613321056741444183840994807214886603504360456198473683759288168327412798034115592392467432694355458790111728682011765733280187341090739532319452401541701170836489490135118225293860856570031563749312747598524353459467034944551221186327804612067256444216358673084557810490908916717874074726175917996278488322957180716927653134110569239393618518246577526414674583728871245387403899834641448843074563377635624076785858036587776589468679345968303123957763113360290032883735833001957009057730937567213576398219049788423028959334534303365298711108088564492946820081238209063274272370852424021358882148996667413686848821134314023844304617743550338555732801806748621577588469480134696048249902935117234688685660113060303310475185708870167726172419261769419803320214131910085815648116598806851421903289585013644384107142231564050877792867838634097495183717498887638304188731935098964630056509310563686723098273080479786485799627113437935378354423654677551274040824030427262848148260079877249852123904198500521286910723526569821101142570320468177905156706480143989819809133284294922773575032080889652049882424113760289738350097530087423574199660805149591068983139501632843562344420024830909335198632304759659902746910027276483723558643055017250320797746952879270169668759458566029899362644924881742607900583170891563640563114257666635043774106944396981610990438012392805853340765884020561545445969348138843778072677602556437756086381556968116664403818867092175730241470930269858942833804147315718735381573679630535420760300332177281144335158359398023261334297021034090142274209180287427488483351197209169276754686330143110896603377084973341971478154354483182113115524327367039372287994231315002861200794218746002712344396628699594993695629502085401773971798467911490877679158242415467521156154413607518567863651030667927381334423223117459683647482918452200994751888676592443871580256534597571622934618595757181817905019431678201564567735292571988517994628405100765867868544317942483592779162863365671921127594137952429969326255744498932076449672781563188266528529789768173909990850340577830156022309255442812668991916484213838537662693541797256734295940251238673336357097488397907055307274437948006448883413758277962291221076020377363308387080588803470149851749838879850355011644337480063735804048493001601492837890241983704432250198616588668774823900748552866484282010146463777629940261621076442129276651420241092628327565627862652366597120617240858751248579580999898736343201208967689900784762400257986418007550356151924896338874819938649468488061267190124840115139276382210503199868108308983714913137393438170221959126711254039407160595700103306668740058042237225748570703044767621165600349203818760905026127562151236152711667653261328726830997478368743555436007245664519007550270116267094306678107270683905876221641108741755161276997420544379521940670233121297759235091425043384282719369090936259880509888678169690704846391941487485962094710777781426082100389430207381291914448846081454630512729096603402368016100703644199753661500493748568727899619783838025257647694629553849365702469644697761982532687194605933788098133195791324059164810231622105849724758419382751230987297422405146722525025033324841780792314204344327799673983626402508529971066879279704866241759581894489257022603319368649772881377500824263170944833076036662313183017850648998362545979132548800900756627825085684870320652665638267048833059846796427850870816612397261069017592908857788542533053759993193198940094559588264187698699319952733240316347045905490137473485484238194377718450701694736251762328397095079711371624469591000478599953714560795038368958248175166820074283820510686079563439332563051656602638932084847894089914896507156064813993072352262786610010028170830643474283273606154884347654962251549899837743808191335442896992193214857482898854979853944691110408715014580720889225930064474429363115614485160482119243809734420791396358251095411228039797572586428457486332820561162211734886010138985365012650432311101243879206024263278844415058595500905412193892074651751986175921986238692459628951540974440743792923803342273167431191685565294292653886837811694034767000480865311726614854329541301180973610903728538609455975791244789315947035123258551862319738007617770617480246237628525309131953270142936201243958593232256438227711965918747059434008247778804592535024105971734519453185270312153822119973471126817717798215646450989571753112332653450498363262535218517654079665139537187229071834046549295597763530186653731354472684648278075938180361631549586574331804925445035782061815383601918453115914213122978919005004106884666538601866250013919446809162626822204809095949449180818908333635350714875705176631965022788260704547743121370042054631083166211859048130634097599089836919175579634645014950821802722358180301026549854041712629507079565845716033655229681211550568811096441471850739201626600661292131089497792850322230341007711197790835128945629361725069110700693400705617484852226470735089577179064124652522928821000886542304509831044725802439284161364392170939482749628943585870950075680261335903874196261966568669546892286853714402945921229532194671579020873818587565845572991578146174380779100076388372291106139467333017618617633288529979979192466899696830298533594626080899263200321161658913388512228584028488280851838440590887731335596783212427994828966112445562369161335263167944583773924456243933661320892684409168092041624049858695960917053741692685656690007284174200580807020324787292185858500053978780050648463703171490976095621117375943761939579961724515806385139628077900493906294615518747489597811494746542366353534009948294285715881113406544262559315963658397463287198143871834469512927898343654707519873795896297109901094123696838398203639887444128602481820330958019901034978119205945157886182962607085060015924043583215676674492837450803062098408505093250483505340642171868722823125456295923601404018524641231241250990170855879724565910016281904713016012602346759115898731308983411067766431863002135272174970688768492517725227379412017483376620245584627530361062489153374698851766265353544049821899661045423128174062710591695949829676614450883018407611744835651742329561508374523253673757187973906026924430382967288710866471337885170938945172122984281391285926791542284876338995676850024855966437120697598796543645533370198708269184715020741550494017173995371972614894724346545804374342021109086456046643875189161401570982176319699567141073163411894670131680885959877040350537246828834390541780205987204831840633397891587472034806434705803255615682842342724674610077419836712848472511182355327796262678002073407712367555926336740833754175069799899718822204312507096685632554433702899937450075076825982390468058426926557190131561465270905800702479072905071872433259494474478298251772534478903123911585126896488301928259595911712731210176205313304098755092525428291698728107073907875754946289788310520965498613851568563644978772558756839453467580107581880551773389305147462771422577335648303171803464788178390632250080895921992901266370796912862878162798087209881303411430904846783156571907658496086664063009394396108490284695310258004882784460125255964818234252867301245806438435318525649210896460031586297687996807193088968603535729866140752125035087893792235915374550256572377812837545150988024694529236242673768215355038772224334349709313767931887851746814407643573233184577347325911576313069206652837404133948793575906067523593535362031856424332807081872216370175009540699672183363503068378440776182196428121333546062800667846058990441221570742370208558304244219659059471080948448282824333841466841185102385409302485697587588155809446612696540371046983483793241641102756109814729918371622823635959097701211350969883118432868248770312579402286926217028697965667735532472523227469053286982823105001906053257873933670161490336007834907974617408410460739840156845277906682867946731069494760000424526550608999312541081672038435434465547261256035983135974619082101268637357300460837287198912549696967313928989375066809344567650504325094944670086984674857196282437770240454660691132314718147479546520583635224405247080250591432635109700460833599144519971075127635039950403075202549243141972626690823133381874148302881035512152846226738023154750296690448696937311514068464449476332305137578311579867924483072473243330491772577049839463337789172438669005232492917011596355439667431699864772872559102786541433536079201247117269965282339280720139481169654662720201141891344260999519301523412548231503921245012128463450850344678375747232547421874975486066949204235187017352229449605637163479689811947013351188077744584454667335923600307478273361749122777601689715591344098761040550226185867499889558132534540578921463224157201762517553513322375215413450580835252035141249695634620970856216793905937953456554443841768789960936415802807749375006556458129633118518985312090174285333161193582858145539522399343688156829774240212612768464645142622161291683556072752998798322861082976821515948122612963047427993248345531035205490785801122825136452447533513550179033109239209267226447727557587465601934168460525730791842323947578334702771669238820991907423682782877513803683451753313717016724270964602730950859860415425306780045775725327131450204702784938797771933649246887513218797296567594225062440227728483172028794477564234542988657178177232122531364068146537272205062601847348092826087306868228082898101101359731791120655601882144632401054869900346906384194155560446140810521330352394284234656104969175630053616477293191231529052780976772387784370680327867882453726892458574719674962924190387708278924387214653537568140366316308974536827408576032161944819684534354087203828925417727008523901507736154658241323902736740735786233377064054851051032913010521737839725939959768014795587457120063484030553941103055631645676383851873587302414614496505444488248192323261608840191789327104869616923739771122524359403954008117904829674177029124701135358560137321495461606716902438391021330697853323599537769587275203510981005650789795081144243616763908387939881414462264424301918841888382022200695490392543116563430185360741620957009611363145789683784875177343815982054378263907947584780829102852942248438358264533211808911383859546358230851845587704505964912690622867063867375410900196180335318524553406184466602047782084780685648701448739484132722917428127249485951823731910804778527183656424556488185453909795496487193468173569046823566789279688976594011673219386170155521679882724833592889325235096961848216854130204466335094911896219910812730261386350547837448095322507676929160132089054602426829943658215390706270530856612419756576314955253643824559252420965958525248756666098778362110010702647759692094226563498913828828036057624683503842160061113476678976111374213635944235188224844807209761114245821441583458983272085067877530959404620551547351924970395778563382628239610346736833639546709396346601263117750764654700738477616064027095037105869127302662668233313032696133510209287001575015545918337046934498976936242576823726099260686183556938649464018418568362685455220669612227178210016648169954781569507283163759280300064035500086874172095473078017922191310406371946012530703877443706501713743178178950700625880463154830309724594134205795428261240084756681250268440282000003775302489562299849252669483981923720952114732593588967534933250135229139171506743902003727920399797503195959344221026783086548386550469070751440892573111022283569711333057014728449689934654888561655682915988780132385366654307757506669110629065360358819145043524704947189714312239719897479476103409124852487670571588208770713678346810341311786194629275232020030590598511622778638476731279531271773304078028284356716269888526570499128642055489881224322403218902598039586765245923000484925030098636799532014562001815079978764971285274796630135330594817928572082830880841415417966086900530312626972408437549717042552239690179528133692502676621318787043146258187669620312297245751015369942869382995117665436260059385867257142566131141664847899084979183576273090316019140524183394616238108731576770424525646748788021257238964885065739071431307673127284647249141377990847965794614256039810744181504328991536054800615492111612600012231514198338861663222373107095953226769455343757224146260228841533231183519443367220717516158084755199971619094903343248434244098862645542345717896194263280576524327501004914164508687160855326827137039428379760369535966602384855606326250293101384245474535747093236714218503254759033814158607335995408316596020506594090962594730422183137922221953445194295190052193026260833028581618962067491508976961637128445490645242059298938757185904345138909446088001576754511482268883077002371753963805602348845440888189781557170026448009614555738233083131373739512555242590740258471954811773218924349305430382739859973113481572104128594597543539375972576619145089788334220684296008120617063446193376374520078099071228197263659769297007249530928659345941413730795034866350642296418307259435103259448939514020472206039440800770251308681125301078976628424950097980081444293925657587331031550188720530076028027867483729700581439250697495520949252217538393167585595697205971233227982608527989170390011362049632143386134042276081615203921241638693880705273895763099325638005642409269403785408727095354858891149524331270530576790520121125927126343814233975560917217967532041235533743011868344114461287667616781049753612441418711725369845102074992514223925501745109248107774980963114902691592706417965934751719160594507796872046063892241648897674731033062634890965857348550428455055728312872285410931177285514434385745553954732808576265043234811348866676770506382628238287272522318911773997238063986047403385287457388124410405962827986604454946559294407405632346161210716519475567933985248194210833175547737739825253662833729096415560408504946884833412541146098507680765403924491690511871002254765054327331466522613034588710492759440947842190804396067501677282299872936581206502723771000725491935795006977931926616300027575243502243933617572605823634091897370919338927029927052789110695190631251094528460140217837572425003843348395214192642657197374334692399157516525568566383810413623503582742913416945736907279841404273554131339059775713017640948723926908207648011078163856592927113247834923645688720121066576944834205765432648845469182969891239164442362134261696667711134751078545725379492789317213690187867978041059514191881185161653441214167844393447945689120163911179806985840656893949474091377176539846131505625563235948332522045154365884231769127969335415160077830026639544876381115259301417986083016958549539692245150345058621127726562800315432473631717798620700248315545863620419688697767104178765051658695365390603998396841410464379056880321478339132379369504551813381650952020289477387134194734488975525596333881559914551279290035139208216289790967810521730501112085028580672079742580105599085787326769503432404986529692596098672090233726768811652588979025183349686360941415828648386889085503979358389158878782860670954988626359010894337907369964547257907753084088161347928280098158742718723072815170258867816248052637387287780749644642311960184980133752891099746954937931607478223679020518663645997380194458339101816609161913832659440552999025644981571591677018185112348983369739129368293567163794449035780872986700256916149010122001528675155270047086795526339774884569311489277163467689317958468210320688789571423919392076153269889719120986609672250432742552941729336411429312762815572674802234241347928700662871893183504321706060862872860496569947339549545847321874458281126120017820432088559689996819487564438335324668259662082145133421699087311308591205004959665865343577789756884404825421894726476762765549932961375266816488749250729450345608135158438048524075245988691204111498836925585079447182906201430180417963510685068664903073217146469439019997003178741543220364835968118452660831578081727831777182114557917389701993402009589772217638255651559059373329162789538878439575073396044702420593354594139881091887769640613153745183669347838368292768647743932536393792091803221134027626784701194662981218373724437575259001487517100079649653875513063483659588596148733375530412926978180204449555695879285124417551470886590757239249601158486751474174359279895350824918373157775200876174421732238601999014590508289859916535435757192558715299633933749565896908501811297693480415172734586975119014359756726163330273254980075755519123188250828728473430551632931910336788690888551949570025898266043338304574198779613176107084015609390827268207301042737894599893324044562732191390686776686304744679682934882119514641971934910017389709923679580445206122777078685252284271948603865364731342041473637963136642066962998089375046437384655453440566881674782745654290177432863082511534204573696040461408573353098081738173007634986591108487152012823005513491018997235899215204249651769784900505887231865260846876837212236201314014507984631360676101046793295595837385936302288471827325525904089109065597878350963357881156289115931471211890153244151045178322470783592024445528657646054729051233409577657732060506788913351882016798717518064398406950809992018923665622420961836162295274033447225328664357503084443281369954659876442335097557063890446086377548764426572064284753046449253949149168770667526961150149869399517123143762147778825519111894281721810790197273398962109070165444685060522430803951710651444177163825803217292114450796356960603812517746947838069475259282056872328384728598111173215347904541115798579054151834484994000106210499782776896595862950043641784604328162860208032259856795549127620474963859854084453220172932963485232135805709601140521088995027307596741025260780931221083402807361464866903237031734943595498247201344156385201962842266361401132051339438824949604412268446851793645317689951226685844195493582916622627080375084442095257176897425738557060033571611670010313172836491677338032926224581612225796409889637320192309523776508141862783597082748845998163227900019967234867122787121536910669134182354770658300022967472098294470110547735054866677977190975696285661379183876758851471783965097195853632080729413588072272969285997399952863172339572334852169573998806327493403167227250524467957394974945145975570648104619741439649098174759703550790914872085214061415830675165632155808735095481638776101656963802305833309882756105424441706521210815062565523248069251563599256815571049807091867457211391313518638086940517436779677629887532240766106588960903210620970069584879679266462679864689618359861328404804547924437542466677543140799030285401556861538043699234459655706969973338224890599497724471280966024471569377247095958268881081384654838794696350792368967676596474825656394261586056530611656854266512811192730702325229961396838955617879450162518054758985728110896282648858108244724051423159851656000139115856002152933098294047519001736054763974932649543308380521815754043050690074826882210892255070533432447481619555731786762448399989804132296933463363160042160872264754740791233722712361954962617893257442192010057256189773791478805135912102112839158319766056177260505071263904283937341122322408130487236391808089428992194316240872339528557773015000346604977842602235678522586251786606813099072513219515305486752419215863467890003779712473088708552253221917388633583478780851487799303015184319270242685095740856843315826476358119425306533151129640725988174569012487959513232079956983158944823212299034216943948438112608917250947891120466477156501911592770004540033083610281242723761134250534929352090958261557275446854414454508447271304913429418149102189273218423854632649069238910832429615668245776768419433056481164923926652169785352145997443158996933238161594836440926932342067330385439951601695718581888715121714510770443209658511076376378799450341407334657781149192229075945816350375766958768102484453807272813299237515385065690059000900342928105437998356719807986652468121229288989918762930934293134149717500302016276848771080946629394515138535343755325961472963681678948199248954905089151693752052026865528175043796170552949133709228668603768253848216893992523631755957603594261029005657997942503213513870186243099280875262278044435407058825113046267786464279492054647546616063453957092754329037583844705469986210387098575203667139462916508420270765904667308287757495840531846587731037303478130234102806910958867939533749253170127020133930908941259408003683680932925869574237449661417464622279992772100624218481108031374301775029650336260491027758203998204426237577476053838863797760593978663529688519233235505536308694624817915141105061495473180694130194033022152856347125854943298374568423262411533054972883366749329208576084541282065584434113269463403306076889522936384899140148553961798889786308950996304599289990932777817437545371381702984763835779679379391133571158820017843944909905453701211395789056816270712757120977359180380454708895231204559192245882673424789198554933125074818716696323777732481110437126513686280168413851477642122822724471455203538911095072244049750572296373580065972776066451908251007749967314225763756551490415713369707274037689023001861643974144846909000285875367233601619444906481499269107272213039675948450782077339388731657785549455664995232337605776960289358641104471472745827122217186112293372698975028877917412514905887006611599392726395573161830860853752582997240229291907007764566300366084861528113370846011428861098686024034699215008580995594904930213888718691577090839324863257366106559110389955030956273983834868115512831494519484809006994695258558641242096011943360268558396250733272246905898019043597945744844259545541361937683319030767484598485673295197682201866320754285896888885191345807714597914138755183510126353565718609636339824811040440831092840804702849515838957057930096214024533766891095273701699955295296091018780537692824280288973562886762380082122873238485387124564524898718228799396245980291889195212333700764175572194305772032590693039876226934911578249979287544334584579267308482358416462095708312101490455889697280162312007152217487520234656406760018944904869613677468527390344888145505525920905640751732320055842792837591373037656754346253787858179293991325053093961074814026430772518427281955538402261307809797872049355312267918308207666539953446292762436191392869496366379501317720656711078233194522296041579914793601371499600728256115641771635371488435265917703622182323751788331486901834320806331161521559646449792378839999842539416190958782924412628888447499290231020645049292145053921128917104641062700077646831013930093349497978611859697335764438063076729833311181531567527609647055265396840289695103175471725965784579450883989142448830152097178602278259556713918759956269146382038188872018059639750619659528975242083598379765219570515131254812113920666262961609986853180389706489929944431255013397955717363397345168241409941086786745895346284066869986100119278137936747670561022243548977269069676148728252560055969984175830270452013462150566290646327759636584862120477893125577335365716603316008057818686121005903635988239161731861685813887494608600768794022896106039052459463311857931182140555680223627865247031500138716258735849425526679080084221845965673079972252821633882771416285989029352992245429087752722041503740717117630210223956070300169868000467322796512100953844353974974368935992601537756766599217220508616108746128342748203521505256810965384505871962114491331470302692282536793762398481152271492876307688959661990718630233970596283663433617143798509846015531258841544412905221993478121298488667888378560932028377528301375017834868885955287771196205309938662959293090261257002236183773697380116497789873903214040749413325297638808018582423494553989873220407510262626012763567753793817618831495047958283657272199650636161257186583467618115498434767781668181029668713627433426421725369138087592842862663406376079479661537035577768465341420405856690765170584721759646613870854171913868122662450011699061263917496872262468413402632681462112267991308061697450368186498343619325140661420561568783871442702934023276916412106821614697535394112440829984328725028529493292034594406204065913011379678648450319750976547116122534660483252499035637357261277105208548357179472691658004727572438998553161178351071263404602607720646705106096874040951385932126316089904608900215308822876267210516884537008448370547784054652323957711460649554655702689729227338649574882000531440314013756698804044385938415130771012147540231703772477230734252631381293549400841354412786718372552165367255080366226694250475183243412929776716366419096808146303830296305501258059559943516930675642988908091163061785169124199564837413490444404082219594689957803224347767708191508580640413747451054231018101784039416196787570543815798638047441294676090647877260621084938511389123370683986248339604056894255525238691276541763753488512409919769661682942237142438433161362157537757782737113430536103288261787830850355346383427724772993662224816386872518065336947564914889241701483945584111158180394340026313610683119955155053529109642454115948854595669689928976163936655219861707278704630171220148681869925184345267048881375386060055257088695688124534469409145678832325495420118865492575095570283867805508243660595831255603395878696963766974426057728353147180680818004499414561628428998529026710200762076941985562710643431539638501719199133680483024629630650178568603450062726363518257701676228006337388739620361431581344804054027328228487703352007323836308255446074309910267993438346813364104308604334497903427608332452739813007541818714631919754485172495369923955191175672658534289916582649827063517451047469405278685019917394143600655758150985771648985400838768930887520718287396167609001714305590857716165756153219134448053320163192447285338529099459395515303706420515260138832555342633053241175113947575674766970340236310626609317959527394390208737417097377647678378536166144647871612952515225261647035503136170515400271104886012337571630008747069987898825223871035805974012896566114455765342590101670512244397526996717337419516227179940591489660820894185376261332939326493434076690542661271096101401133739213641098816826309505343825880698446494484015833179969106063036271793165403343958551235391594071515789618732280483237031874229952703355319602327746476192648991287498521665075313778755322052503534073581672125520031537936182028611157472315553117701265137008878763108062492173437895670765287673645446666427293669016470460590342302581001007621346220138061568240870541066396194537774979598191654184878433490838336904540561348920354140427278620588891741296021220512909564866147464470945874058374981528614088915845658974055568092420317496839888527780409820861980376669880178630559083918610117694836992186430319698648977876261783098606292692605588128684268519658536135392716230503040191812138322801565434369212677632549742857945694513278559543827934081092565528740154771572354033719060346068336692720638907060616642820590245071558252940612138159169247741660350684618678797935598956900980935429250673677668929294134707242566354629167231118385542941874957309181782340075357091482459397690781128839767667893398189821346269902934633874362828395944681468036156961413008536286953797873816832135325380583616044079566328919265707588973698187204162880387881223561168059132582378977278924121264978375977345393674823202269067894649767322617935315000484667304011812413818706738692359487671934245345315951380674080904099233372575437521968059199648633280764524272741576429311701725780395568030300035793303601440494897120291631642271468881658129313345398130798065067888807449691815072557548682971692657470829127102271120555756979197817412575879601953921103994011601180292392408772714276810309617840703615654369036500222411930987207206457998508177854222278230084161974642404399834548692100990163651657227785475209139717418867060822519749368462855163755267008602001923963075629966109324964700886399284112533727879046143992337077810753589400629393382664043378636523135953467176332875980238065788080485051471959275311455920466260621967580613255689281216026651089132381787772889488700264386241542065174076039489989560917249744933954072947259509260847940103250013788522202891179327318795097709370328847615457290698264801392386877793559928348668172069974333020079216920343044396142116230842413541424708421327971068635097849898262440247192153241411176049716882851057988162428273523075307067715829797177476999966142431629800852175763659145922496606950040621358445263990304439463172093410471738789871807175999898892156376088992150521735055784311941067332380971383060336753290874763321391809918774068447488934676134345930249418819165434692221530533900381291205785109627502766425474065075854472486760208787908859513265139978957094071890341694034437886336468468096065204810995942534395165761930805784619550763631800330261020913493169610524652139668223924920430746833674289994706434812672897577537072601500218022243311891134787255174649424224547758599112876043016420718841603606938462788871076563531286787983765671878077452026808102354066022643143532460605491559188396951119930071013069003007866988941957742661661769206170442664563986066576341817548655222867317933175460907826374105060028811817639593597731244864068807558366878565809423931747294982602357746680477024150299019785875799028539618641895690232173312645064231902600592523057252927980524629051048114045630941056510644055658402737118664971665037610959822544948028011689142988681966438603351758388223747562933463165338719587617819181001857799235069392065167798760661629878036087739962455980397418127272117546368683644024018928441983227571452388842000207868267589479311293331565835221074964182220447945790621713275451789228311423064555829721450091334303605709005714419542945353057540686319120147613790091450154317377885869616567023185632548581432319173907934636059962758356860543456223304745708256665810319995489590477950634321584022572636838451783120328727112396562660756230488957803321199408221308230946700200179719038556816193839525030904512558139863717034589639123498388149350543667955866675045581875400570360758047753265389858374741874393001379843681974768917001558931534124295049512767695558583102055358811208249402065487744275799782918746161390593905999175277787764875742204949497407282109465214605867539688638439532375098647941756177647655659428888809169506376813781231265139663869261468555271305221610070788978579346593771755091717380419021060808747330676885907470547768054862803613698655426061757007300206893219066213539926551230441699496267372297887941611854476542367708992901761250077989965162312068548028709657413676508569147161357587328421352104572715561043130951075073118736512617740971822845581919475378596841792287183698500175018835187867295697286151739311765468079765206425873867199947648774942785539977708647521976197430399901872418514999274384213774465424780461005436733621927741217764677216193605374488372913559698489968702410048173426326052944242748128884272487143707027514327934375029289786022323145332638841044036172285114220616523230582976382757864778877382600543720710248694288261904549953426801108028377876473754826898615427088915546019788044908957839835930869283498859274048991596474804443322969388597955440762015052688341010555492120780830524592222373876641243736920398151888134584075916416366952597447832362442539373078298315287213486018706027374812572763353960978805459979377953644051340184143302012323711313819177776443142155652628860181253099875273736693878713284212521602556995750961012195490823904217344822950702468422342784281415673169923611991299612589160508982255734078115452583928594282584672061409370245176379355503545518937775962352022580842114459223751685683241913729374268788505996847941380661873614519524072837948286124381822993120885496257378448406742094219539365278844815904160457447248439788784157223627514345112283070618118625545275938240475281237041152114926725153476573993502967401265784809018309415815370255389522700457950253820850188366289472511712097214391935498360148561683823381808999575321677265970593349217942782614841728801342739428102286142042656119515353041072978293687267279079572100850216157468497157077038250403630545560396758872735793161965985406638346461805950707802357964298622492731774449267660527492901296023738138966697068429772651812662508061492051491335701363562972402232591220829814497400108461382798057250168416791175066617191591835597695542859379194056518823874917411651899565337206480556838358506185297289245933909265883567347260863711364294754011617534438861131431078841366051859854309243729636419122649191769190862603038210254669913378341730160072210358388465203434354771324967056928182569871630919733929301505471437130509016569657326248398378765764890443033717695811259573947929214204091361952790576498577256781025074771754222651953973727609095965082895187881685498469522081840080979854563732715619487720149922269361828454876306896000891472785931511015072784663069351430731548254052990848200437242078541821634705389271612668886508518490486309158748214713987473498654233733606949794284036606920158189650745364989590603228510412172689077961459837752975375664121127188540887203272840712098014690458170178074970064450626854798679103241620345571948900568567871391215877951592276121908245406698567551139427006224987407952792107230966573349737749830461712470063943108422381936413417832572509373363227221514142689018471491769402953040559547568704528923366146175427255196699202748495872157868057823083141429675457488304317818947714975482717380517638508711315809651671224379392676099705727312964428553701112770621459905217270968997522255223419051766799280448763204667097648647187909694463194634049056001802916637540289586848341609559104479609733087412711121510302659995681215862256983379585905537366514886539854673697468812452585352092765012345506626797369188578904859457752093915124898355332952294769504110781313440507142083389770344071652880666933048804788480319497388341232245296965351273931178257663442985646509673203670308936462827729754294491995136015697354292445054865682250212675872611701494918721191007551441795280881598150047387068764050715132916883771909585794770472034276277358580850947688582776341203295401146123358530315071810405630652921895644104091971297733394718156543390424580465973888653216449353593553963707294698405767686332100635466811219915665978443571899033532598588511791157263566099709781628053805474132110055131462947611934260381726516848202016774881681740014781714412852634050273119052919953451529949264025009905407498137118964452607267946387441185093986008961063276354925587892234813528986352552066371684914057577140670237874126218966683198926943911838420409283252262348254697935748222199478367161167677521263740006101563262082089639006674418011183935984093325411885341663653571173386347489189416248877091582172997165083918679232450605047222820843182957943496950910308495134642301901563402676993400379984204665966733839054658073019221890774100974458507618852300344234834592599440732123007080625113028562563433934145419325821579584959947098686079801636842243137407232194399237982419336726371131420632976892579562801101631419886613123944481570196552292280671962932712762602933285014488838886265029192771917717653304045108167934133026129055919104734463763034239944212615921833027742748943346914491170758980779143589038612488520723816186786097871272677299769092178492418173636167354731247738369646844256831260744354360649979862210258643722837566035274812896047818760196094748071728272101160028215909463757438178543998404715515947822397873652906093878328839409501870685313731723022814136214713850111530461185939788304162943736141259662204523046327041996729344523264275502888757707313124827936459228439562398610705446422604163803045263221697747308718354953423914085520572117676777949640283625513377172591309654974482172833926786926393753744508836857411964914702180427587503454066723134355729673986607794884628584218532185750946422999029039704200890718489041772351477936186158573489237394300296987904031312976017412401427178043829464261400240968336457254800202901747667665583071768497102994901746213106759743839858097770374563741744018113846967863991804657203508831714284486083444706440256352643420637063214770046677337765712304532508120921579794183736044097134742175262502820848575269128079282001116191203339018842534745636653510618904834678676898441769834623382899762413774962036829789907107947032972428335906896783644627118728319698552899512347897347587441265207690975477653216328686914749935537532235663013598454514007508308502315072548325981488822195903952067773138306346077531514838506338379662230890597940964609676950217040729814297187264076029584688485605714949564246336418694228500384624605099293885741473007568399571452949021459340087576632028776624079505881853526499564047973759055519967666343008131571860731889477748297730632453384969086435202304899073468714438398958518806421150902780774893704466046797064577087199834462006738822577978464815263093664014786630091545343894433476081669001707347393893333086827641769385402208478699168588377872645097028145687789377737415202767998472650748831544612456519133981847852799451791264504143219165348404068525722768585209899890648831543461548849084140466075552634005158101359368947433541572792471830003039618373936314733966439228587863054620364722221475137478037306382277678049294008312325762071232444783096138857886314146930670878952388739142660351001848474375280740820209296074121279156007927289954026824816509048137616788207606941203665902621555208224613294171565839665786826445416933584340493962313992658344259866817811961856274549031180967043002967722959351446725730797437464965366750762172811317668085570768841705783127853457256061188728502113052399240536887134019460094892677937067807928068686859637717533914228987791047191437073711800155295109223137036229819076080971571163584662813880690390109188176051987970322057225328567750223586707947935785926231918373528175168645906750690368266231333801521650574970604698781140141523017353504824059091343294407704690192087579351353317970483148197544961325273693843001210766230696668113315211014285694588245960404317347426157381158043133100033529559818619115133317740117188040473573956363625787419594101582244903272867041002532323028007943494509427603429736672980562072735368207746888461779781878557353730122080802838910321217787035648318603592163169800763245983190152230347969603959028185929931549127042038247447835024488719577169286558599827773034456160349326476727030603197889616876979324645424106971504085834668750392094509769187368339806979115708129797934713798257807098446894864604910718351513237428895788146531741037371852858476309147161143998977032460868837215129992220054842764400046369084510073579897272719392715814736107527097512500666784750619855686629621634625573171852369924153373475002429258543050574495233212337025925872367713239016414311378549688263414431007212139444303258217414736381750374808224905675221736151786031792135919589013341554525057183190615194190743838885447843565057396272783189585408840613626592434889437139076291248241258756762833100363203732427654235215695228023705683367545975472519510054267387323088161276964735834074899304071608456945688630461996987505387389993215476349250480967229408112533653287359738752599357170011671996883643703094392118039319800604310918216616532950747205018970350695784081168503615821117671762010375910975267809362162101847662154607469312435880875480532694275822787813204383963351052656460201523371008071742043851564792607335110220159440749706901441854378506611983608314834608215165721541211719408480056814402870769681515688516412160621272457649370384588576944266585177563389079917142671135735513418234500698050873029379245639669904590015575042085858856101518069512618450993647081602129075104938180494321148698744653365792657561235060851658771773278094727269331592097778050725388465006023389671256626604363993263264655884902395974808385103807875713022382995623112926298698613621793588281875988440190982245712139247485662082425274080261868312742226515013169233078796441091745053617453905167261998134236544177050240814288499484531340773273334656862647843435359982672014420830591695586128031009613131571376407271806855987824922831857351684358918562428497671534727837174166609178707359327213974336633528550501394568218445028811534513428803430788250887424387986253483203958453359507515156328230755541864419673583802779570477341259719825588395514759076903383972644656707329434388080646138682178178107265110398017669918237779920370658641986631458919963839493662102672336843678217971359414297596879575445483329492045487584761576054483578670010812746095181355557977213313957158239464922807038703240363734697650032494659039467087180994532531659112144373294971535856848593789368427944525846144873604951619620190804225449497532735351860527982871037265789010605876003472285187281934720065382661076850358750672211931114324225817096420533922982467487954184080679056628950051052302670819680849658686986640895706071264050375021630588676458861239693328434460052079970419301807136625568770693425758114683621840827570821316426454043950915437550205938648054128294210513628341158578372553147184867090047531658137157729438152026897281607963779969699851554197397752861887691641139141713505144042897046151328729646863792806752553946653137655783247348629899470883464931366160956893105420614963300910394888925319574475206981550200642067048108625652059956480183585904962796366620921656089387569181520949099649111027428876969993348499119131406623534307242157659418799987596023396019904369198779061298541542358572123276175717553756804979545765108867895720625810720754135988482603308211492712617397834478993500914064610770475282505845878012882448269275510664561929112202488558967527561211981249409500954101779828593211111213345053048127205042399891584516384389445924652177932177991224957135336877544967637913617039248536346099160447942583283999153111648938169815955541914500980682922398781390693107094477783251138012132553073841487882069896214002544140291527713395030698873795307073650912982902464830608596681612909769225291225424217190737675826857604773414621587104744038366876020158710904566142063874568430046635643641818776528071978406076971183005284816914233780056561850714487247011233632626717454436131145747549866453845977595186372768285308568604395025175221290895254789676268195775889980958159695662306123910170867590282845769297001515745407044231129483587060107053366759599134780647073765466068517573259024907400080822830430303288052244831558764394759208196120990247418399181693290680435963858139619689666514699588040468795496604553768580392229320065999061408699208973889807974194853861338546663853440943885910361021541644791084394633989763367645249603012689396888353138620506783067314674950955540501946602052399159318244609552009696917085638026811076342696751734420795640262700658670347353221552923752788073313932732589797761522848530145415654199990378690847635337473773936382609499099803231816084286171677711840307368846503384735749220615692908659441526505975206888341300802251793357945033929346912470914943542318714787423312337591086892191476654034940813555548543196439342570924152251555769710072498392329477862094384200408072045429175013159867057824854413067808285760103120630946481223507337645568924898237972315335791848619639477195209433150861529219939931541715743022913580723764229937462617325914304375401421499815723877995631337751228354243921986922598183725683439258296449706709667915655988167872768779232682587427562503566014635036724929832406492496636077380821884525536665565410809606065365112693094802938598686738704405340720328069247054538436637125733871906422266651104672018250346480281987208606304330477039893667382239675828329817290769738688103898259613434168520282236579834791659688215412267850053554361099235783246782543098567273746323196921408193349091372693155338028710948586320630574453752568059867317152099945793890891455683839183007297805015168604809415397747695272790618519683513024663414331159031636062580204727963449706518722855374854985243026584420705403042069884522870217733399913789520873107996332086371637723720766416373575940634538629589371881521597210457711086229000210166982147024082889267519713100473172691180691090599296333856306899158084773796039861523019745724832002300870787439164821779251257487323060299966633509155437488674944515022860427549985704438200688594960633090777162902507932244485374692003739267925589516975414686864858736768744294303466870489876696906965956973830540313121952120911298665890514229215549790957124783394625113777778625256803812898768442291910716144543007272750732280444033038386312285681169837882178378136539865789664713027304425104207118413137211861828582240299304442664110641076880642046890647997021054605451326570793882362974021424023220105488722824562779411180396571412652388359867828950265253724766623470147972059741314858303920027829091670978026242354532609268353010539111595568813380204149339158685217789755918471484932714412728476658246176600812969810485528403124751590685693784362026768395299658438086234259805133613374277443327698318986816300496606034529192652066256188555100299450444732925347514310571300898699344649559657921652067530685651697383354182445215357325505004793047185854591833954151985299377172191242877156074091467483386028394906349024188428927425825637166602400676949918970949270719153883766171568710995139331963010596111754038045791083792555388404143477080675173515786199555592019077693829263355380847276298919168020590002207900971465285527992305812281895372012262842235231270059921562849186547722439817274467502434914195244794280231485812339334672555479055626437216233054675858598114914673527019816844547954727393809089344877836668041281830446919178970577370549846800897368203166167006016002033016736023533888839794129599838442506190846941488974314176761309860716334166027209391202239689279029430313433060080078684316387398332551341517753148156809156459370922439249452901608976359792752220718898684341322372432223831510789961575862511192785351817732068466599104842928273910870522801142066785897429899318504820734190532099188441638230199931974081490753064788908166545591802632048747150552975393253842045702567229600753666746082585566147544724113532196596613954803601423202155879751097219922255481668172543963121911887237469303454242563560469738022801208505731586666575167191143624095890409113488606623025632340611009352234839311929778285530435659248203506184480895764709404308225509081258219734704422488380818096472559807302238040471158079134021726797096979276320184036737626928063873525003224934686492253324819623499738465226851311473277994306815415601587297283087521491994155987527885160786137783950513761180209311148693620845376750852551311499176354465800051660490252422395521381522723576179645670638400276964369922177458761159715664326379826448643157081083639067761744146935171298034176747990442788065078389489531112452803379111328785581777496336966459928538547067717414489914481941817157058183210633839956650791926117498964294924978782991828346172483136955374409619198972173527886140808172152096541308323688555059412995894561090393564313209577139733149881659084785737524069665790874604542764830478300748624301779339419740127985952339385922413926594723315427925718058166736736790881716898652114091098953693648028743741561498012648754064070315046231221857401714867152392372004011548946394612102730981567014566711598499734378726269244912995415468579575595981438391361436808599986255546918777271132004929364781752175619146828197923713703572972769537852203608323880499807183457502415468123935967674777343530241605318104187469812712604639397249378835990749740742616859700470350389979174968621694162819498614752681875809407295466399781400902537032074789687985932651077396867712604754773548972255805760338851049316188628346538422951056475515849870214289787267933673090746106928329762325350937082140376301646736113633544316360161430666126995318535352340395511796772854317294819666302910757902354200841448906739884522677737204405969809407121408548279194377097046228053401309331939400765843257465483449003116798041873465011904039251901938120729928155701631681313158596171524732838130937724153002739398052952897846107510020716588424857847007930799216088949537017616130733575623162022872490168577825122261138150869878019299888004751420283413450750964108978409568582185822461500908010585894804083964075003437590040070932983284465798547556831284446028252227051592197085078933946259341132255571295123905258244159910957417202143489077655938361877178917516647132458117317864001210187574829629247564385977289713235872886087649898131484956496161728599201570583843680373924615026107325012632994070192183792529074039244476791813467676886410895214703008260833717965631553701753018340177609602956402732540266143608742929157049961263551449676313980680198146375039003741635939022438503256719889021590085540242918281201413035583773657262012723412791632173091224002547723479267183770497242318915857579018685316901698479562819609772624355642917786395098686602547964000315581998149265032496575815176048825234961854278614215000880631682112950264586174965264290083839925066565736756395792208860828815363885753695117107894402004490838056518759995440065410466619002038406387386537474706144883454485054465900523908084369919439683224392085107233198670637637115951774206425102327761135028758299310867363169586467598081936787947823030143067409029425528433968285132698282833858391973566623780631746877177549751915861812963746604538988316395967069391942268008832937439795081483395420009631259064449211121209875724995357342246733724963134834616287627352075296159027184897830446250024513282352176166627707663233540750760234011305810911385636170166939602088541507857389322396011365500285615086272834070307901413672773436937254037542296573807504944118126400271463540636495977852342742290151393457198080668443335632201239666446555015571991055102548177454743554201398965267777220452677831082985152043902137974940505712306630801882733105915310952762066852231844024369973592242945960444855738736977155066154240601549588988965103310909889965590112922839627070023303491150343119246484206288700923632236799564263115135297425149418648085700943388350510029202463539994423950946925577441311092293186780325033112141836143708157007540078589532912603558651942388319655810875438655840873514358803748549019510781157433520944016881054854424844975201489026967972358667800500658009483314677280357383042400616446322514396334541496202225882865390833373882671930739641584257206388259723748430142512280325308191156303091066302656227863587500293005296347392083982759385221164176864486218533361177689527068808144980774409550193625497514819341811665522248212906870697107817683396955395270235378281913489702745961943431048950746657632370002737313391449967219060963236579047183421190577954463654827389102979385915865886812530484399977882673713422759356784953585893779067205910665633088546182991310599623870066516524119101966017150049192918282901211960477079613968928646133322389353085451554638457812271567433024178564354579652699177552063367419060435398270189682313819407486347080961611239045066734602528060041239181597430703120666088022018928577425804694312806903663320589872886755585204342083366806355122541885357396110382945196661346566815071450293608549112494286647024592974373949481593604789643370218323641303821737482846634613575842709733646481237240559535567122808835938625217674367753440918829472168777753555761731539479558637800350178839919426910125353570459010280341636020940480510554868348419872052344356630467529869269634024594432105845792790145866170698743629061454386393268861829435530347902986366071652508341629194650535920025862435548178662349057758877686668179305969726282428074106439962114228226121147327098783925779775336795226493748017091176790996492005902653748333935084335184396966006289651449255407987583940635661960786588147353775110825095460577492471088528568470194193536869439550074124218646748331906224532748487055751519494055349696083224625677477801568579299068086423495804485931669737145266150869196141088925831104309960852656353560151448271505887050614700856289316535191134752533492472545934106415220257819823698928226092577088655494559723738232937719756694451391568964556253683125642637063946080032039786825121901926454851889005845092514031485381781158798271537639715919042429788738777027679224946616699073066770979869930293746708483910728781693586748806545251643292101351068576094194916632115791635694448420134349879972113365423754241998560293634633206777449762700337407534681897779903267792630543367633245148344092284954888863772639192139490810446249085324268541674589872955122828462342983068780912012388880646807198278543879079413295615249859918364415549267951353973226694548490744242545591876084756893842749146213582360884870990762238167706461001574428175055462741804173389158032695388150429819162541723788780861380785764105599722937277684356318882735797786915493764736784826684831590878619046684594875230435901331499753889983530027791565204182081392573284260081674726199394688290919138715192152447942152097427622237447609275798186843758058567592566053557380479875195395159511876023050076510090024848410065562265602282935962041825323172794171293299446320774994462794462545919350079291231113586884572253277527535795861085159914390405920581838892655858847102282294221782190913678406769653829690162486928448120239681289181862624211003766439927705046702079277162639820816603796488049949682409623455070127270913667288345077123763129789324207880542000751169656139629551992115814329391465336010458255680610879609401855980981822433542780973814733477495558179002051367123623964772722429464182639440632671467829988379016161678675337003449482956620617714370148439687652409114858879112183356358580213771010717828937725737599020462484114289399678882181782403199219872807633002483896682019234457556560111633710629910850041971891570063063238055681781075805482805947289257737090179240766714240115768432611740750357720453231082034614772683155711489914033252408093886727909166889037533510615580763779485085327740844384559955913431372943479663780672546434706449302477277720939910895226548031995739835097019318214249472883286544449536104656296546732681260529106225836978470586577830749016634260989660026296931565848259350568678882271097562135450641453517412773275639313144763718515307664013617607324383093735119622650344679319969172325168716328665937589552580127188275091993993774690047808972226553335247398460340599679972633692179768809469696872752032838592033309243525609392528313786999331499847852127770784735885142673608212671056616947910708009521010113723931328582862509545898754265183298094136923307566933489154189108275073501654011155079165946233938791207255816546644635628904123229930165447429374566290205937261460505212816774159157858599703922917008252375786740724581309724513906776959949692428482801552924945479487647829619455981101053714936293934972885778374406775556231869783015037271694516511175870971155465278901283029838482769910695800687444447337767970934146038779105336345825753807197584539145862625264132836986676208793221070864645020225130843281230416852133344534665120362592080085370481944261465516461100116784719071472064213222239580034273202572145906449034493540418756575988384056372531326623345964052971574549280402100701308064750079223165868482038026818402004966438278418873177428149056957499613957011062416045804579428047802730983458349127716150034604054075905936161400777885241859591503307532943693073386494981937712597396583217862957173550281302408315347795708912840635182314657016870436488595298681552040872130218757240590908567004970850193942342129838982734413784786212900111715838422756183783020968131809581629872826886117014537504244406764476240318925219855803723154649919008184673591075084302711790385313148644794052033273076291126347605846334435974421652253045370803180670347755249178043921991547449332900994654282449666947497742026442394941500546034100352371914143658663098661655523418380265662016959952134450570798151262627549988849436963166600560583206674888291844179571270769179639836586202576168175388899296635238552239093703818039659389229007617352641977351254460940276837080258314208744077401372704739069277559608641384977140280503024992010851247044827324633114605589712001933575629149898144445945296428263704864086410322159052629988903382129423517878652444114666143877567421413898695775145775021941517049186427666598367627978383687204244500673988523802026824503845894063987165811906735212773223494360977804788463997757345128796333585556519207543501026294733764446180052307375367334334809023187450786867156052230350507847529488884736043468362361424081802090036038140171587335071108669913740457781387771604400802156858190291528076713817041655813098311040537200081991614183321157031148478535943824451491275336137400744482864604927863917121875868677441116321185654591298181182615548880211218255676116685627136924923073534980973269168170294299813110547612372503854833760646744575828048143157241180184580867715082783219638590707305197254566022223332474158101355616529272778189772070129613098371520075418558257690347012770638123688637822028312937970578348800278056789250297029978242747286108227478597989663832734363133353306015735620526912264799527600120150271186664617378189936918388226394695433478608175465470357380639295645363003398645525436840042635462237984201439039801904492975958016953273066904105229031234286351341052144995048399964569801192611040937312737784976019129093351288379415925306382740613853931626236916626241232370994671013541571011266067939781862118043668307335018023588329595241809113877282888196757878455244870150235338955149734609849108313573713090634029323047640122332607280448292080776360133418037765636586356050449298761806895954444755486438634896230133082607778003307042456827629407984868250621455416490559928494200577647383006128994445985194651822568577536580189206503537562725875133363607484659304718888728979882552682869428055701905603769872259223427248379365623501993723310904192097132204849494471003044905583606998143763759390558039529182508890136831830898389352116762337935366596171958856441384874467425768403958853287803090776456775780108859855569977286552957347774229347171718640326848018862398499812772409138261272226794654861040676225748791497604295677986093378564743069186030299211671496873223202933816791828546719241957723224563798634008303777777710771174739192394344294412286685985091169146077887567598108318567954381404427040491560962908862262222976825868451430490972642640216533846178501572595871363175921160311049875644896142754565052300154733860010961586452686110108568574051464196804005082500110622410082879769475091145083156865011933497569567820756930775830688270710727993738393153517622631622013570757872960691956497107402571952496140994495691965852114032303437440769072628162448225896333659804356066210873741460300647288532011183156577964431332819661162373091187216578420933330100333066617018585482784035761957218748797472236212266565629221556551433835347253951799382128201043479632838788325095023101732380235672020963462386417401708199560165721995201398328052882706926139151203310117218995442327205770743937537199752731570173459586576084681116217653316973289003905945011561810678465743834165915937009836618081134066652323487209127862498695833870738829387658069950217009133797855969824755064620223908395589016456902616098666757667422759557040564733132252389371912316679384184797105928488063649703078430822411428993915949702180623235687715409622406632449655314423608695014680710665358336137398147287741294141591359410654695757817366786324361424386607636057814296485064862547370591156796741504889523680795739220474444757033332592156527198666614700581404081388515999926735028916589214252881890114480888093335678570348159145111476909455741421577888732566684185551288470388722906916576910967130754724480697321189343284152401846956101190927180182437961376292209935881737518957859139039427642614592937524610290219659966123634501452766363793703278248131761032761586473409750064211582740038030356729817684802273080916719759139001828597513541507124276095415812539947378185422070990852863490379288088933839902402937224884642883896455906200892061006071397229465930898091909868788050471917765081453789197371350976958727981701676501675984747110013303497955031334622532883986019592866592440914361957317582775777367917956622929671363810376726575024111013315047593184441661165470562789180918544238592061566652224120221704977535063594310875359900970204041945928863749902761803803799192806380853141320564487642531678667232418743751609382090951154444063439180466584844169487336427290996422729706910501726746367203468295326691953845322992576020221847078749957815420832061139525120203447162448786485952132852224919650958355081749820273508220148566884205563512574088521133034153388630941645882679090758521802722284225419724115821387253551541814815855119232759361140563122496008358197861729920757861822993585274914210259277387883946228391668704813245272552330245460610698072766343007461813093026911792096031647683251217635293058851338783160166296976844759503148663936091767753690423705690660307258953454305837364812954715202893064012305557421498145430340372994329112977926789166658097163697689506044793407575277740351933468647931434630230237166252039224027702206038502002337587503925711416486680682677555435245226865580005967991593929689193623791132900608944908236148249636953732357568822827179194645302084751301047349678937265185219112424296763071847442064760559689530636087600853830944466850949305859875699595702082605237514831189344268599162146945566008977316781307429372563728638009794679980774164644390850372817438125293057830264595829541071332410992069963896357133015795606204882142001559679232062510585771599249926479921299375166214076819401318324795780617142769037822201624486589997427104829411781675277057559540095720839462103374902759590208049761117415509575883957469374390595656819643543459547889553608742960048933777278475345686384684213032049388732013242441041756410005733095137909776277991926882883697344084091297660214413771526564644682469577581448200350855575715196362965280149225227522184442547019667156081526470648615326818552078829728479572171392139169277912830494919372950281590303939598866463098555148080891561487275696855104699479174067365113932676726189885136673306600105872874243975831123956418963361705177646040178215849701915588998697489161155947796959739252974944824090784527589779564863681120096359258027230592325025232884637518458829911322022662627137056887741601168483083095160158151411838345623356171606721556400611444138722045352190115437735741943365466299906499318839251902318457627869227844231073988218875801305690081821267843274155382181034610379167936042079002237071600974662722057335228234377108298121805691895923700107524579520729175138011801790559448685213746806840299540700541113232701169917636301639885796909322834777520326678640830632894335209609921036372112029041875421553521465434774327719534987401673877591364689544133753131568341156310137802307749698664853428878647293581199695583681926228626169386273196903859743031834900214570047071220825161788170306371669537838744031931257432486679296913742692427916453471656097902622274574529383444143389639708929459551169758600773804340847456532212300600798323866378786996379036021483411641445685673445794843983946899417358833429482237648618967728605387336981672793167062713069865686384255209436307333507675269473544725585864120113068529949653988374039591979753289905512062379589497237647588222845401396652126559611561850883764521333945631827371634347178926584321539473292643283367075556638631468252022180592207842358060708705503695005961302918005308198288656365559283575511814160091111826931895423839763099318715650252645691285826644052188964516996713349594422134985005962118424783796903972202122108590061449229430225291362648149616976681680815789935738464892059826536200653723036598895004151896729084114980895593249218183234583472958812893483759635464228052140633742480766754400169132832752211678391579476033846392824692511231861289798507217201824556985189448139810494841944854663932477007830926761299140437471056176579332313538199576386977189910704619086363097878138622774582949951869583745007396320521840635858491837748651126324676969008131687182524876884398554712436354798115101630598226718170141130403673526334814437195519705491246119073936504122325328487481143600218452404771013699384090445542587721405438609461849499768370071665679111531799318324064432595775687315793408368460716638802866518694391456171552572335016873118255082722294383710207579190323479798393547805696201394933086376115625473805418256931812691417060287828806782007141269981374044889136659991900755241198105531816843258088434078003798564955998867615114277623737266094550113136841561702854719743038739124687740771326508620039980116027923842904334594593285368254467852816148003343688028484557898962086790428897293786516257534191981597914916364577197206947402970492377049459954880757581984363078911144429868460443343186715248678799540425128040827955575540899949308321652826419464928925511400051134460524509935360526835805421150426745234810674891700128500215776220435645473082723891412405444868685259811342598746531904810468530202531008246715119640130379130281650315059247265530162181418160911247989864768800910038269870190027478235208443805907308508099979024218166967459467723046798614905817056156540448074266428357662851491122684882693612261783275782951169872741386328761772763381095912048837873553023915826521285165413876431186676926673714736353447083107958714187983081259171929343853395855435895774351490487429392223695275751668769367591013851391171204135161918746626160282064569909617552681680058689021603213886737528163888726016560007952406033113309836079861589020496814049129801993992228545401770142138167747506427702382092224601813387047248605290298027749588484152820030535788129776500348737644873658173833223848944060772456233817312084264882553878264459340749255440869199000124518659572390471770879411618747069956647324977284776263055144087305393173072885493825153730700057431813730670992878882204291512246066510905463831643660142721131099951582089017649610229631112757839905166011052472439154070141432165444047717141295037679364693306419452921641464975103088319217970150728029892867412747733620698980576723428871458684964286081730518539251228988916260612242897364448236788724544242717123771457675831764651581068649105680957927606682244246207209686881180407466334822023099198758533873199459265234591182491688507632985341035572520578940610640449586552769587285041498465408879176744828426918512349143442299812733767475853891919628702165570686943993020437740591788273003650649773107965671467690420628118177399028982351908663004427145546543609498600317425577949797925510079276725358055780015266911550898752490202570666163175024777760958510954785512709657260725362236942201019071852756885798268102555768279358436648085909807728496321218151668611823485814863750883911632169753546232144103064273698509027922640237907611678388963342678099820948172624379352648212720912447309366782957351571183764052952365824439616040215723867162277748635828207759697030500266663242780645202027729885652070940803045218190371862659632676174079884962587725476699228290135591661409771666371990417127816693334364609495536013151146638548111244601377903235355257389029611367585638379596885325369408386423950401718517419065885980103937386664096737286317896936791375859068555821986259940743014678523185954793850705702454500543898564097018664675018688377358704436468576737771421545568658643465587916620925414176431492070558767105404925287959401597226977160446817567162833140894132392707974234797445710276770611039443344590921656557697427180496162080699136640204200711981019152334057867065833780481158410584477700847054616969490573021335892504584644938828241831829671644275397943037227749444584409060209131522189476120009308278805582190613438998441864093264655867505739505180256962922398059758998417466203598364145118005775061598263926222326353529359722622489647354363419359833720210312488388425324838123094408644893053820222339629635471199696120562950485674562040053585297596550389815256302335464028169226193750037057029793653047741897138580696966829493145925506645372156370912641457300735884365916644438518087996615522689455416294686961035380030142731113061026906341111617570889901009102800224500406740456348341239661583215678919604801547630464516930798151013817230182346331055200307427197370624541227604005452738689409929745469937066323512184957923125559435457412222849785421580257900429080455466475365082255544252969470342101333626209211747179178296173730435198996080066001225995352698003912390501384937532912881583373977748720341703086951286820462054052988745878711708214312550533797381576334057205865786133459093655301174808001709477661425013785611891725754066087367730477529174262268280721581402564597334719431674340655980532237672883263685151811007907989773375455027606760761935521890844514337580850533732293416258374382685709691773727035632415783260462653333746171294702269152344647547978366662053688982093040673103035370472751947710783515590426473289426356044905056874130242603239197017287517595820183912852160717169272644826124256260375170465384490426542153906391715141400698785465028158547318342796250780011477807994602445506119421153243122990504818790423082313238709610996497726784462090767355799543207774178773258388100857501686027245437532597753466481829260279195138838179331464068168509532064147609636167636501148921442211346315420257112936372311846279257064724340067699179453276355809952257766873652151587216690339402085755971148648955202590907023465628265753124095587701840899543805596312818249214121142324424200119355599153169704001100878273754343450633599243968730573315528930822097170376566286153002406678577431064554714449918482937016534707342575645605705483479950706038465842640271619521613708713500844747534872169388419404111111718357898692334878902428198589356202483208558253927315001305458289396344916064071708589569303812372711713691450197607198142612121912910009845661540106432896309475756448484461586931965915066475946898839250871997121333188176708884655798334541209313314058003206282190456040637673305104122853717849862833981747417890333318202566783307959507202089264714003737318866033123677360372225398993957152412053889572739221806175691494533489391106013839221277482815822241452383461528539792165366377837062517309514970600685389138853988865443243062460051309421287256739748380685381645531625007153981532264432843313437292979323697805979935803585252106311748092986686975250067667286413342886425121663635578322647918382743675855495392060441394192381779940655993050186500141032423341027251845743336476559999751275502006228833070348798296689481241106927764744531934001829390165848059699602738838734970496318883566441063042000471566606770016930402930099229061988917601497521733807873993883150801761417487553654604517908374093835930597406036530675166098649186509082638336964872680209686693282917723017609992284612020900879740919881081570211383033321418920580176723781994960165050768880963105930981194039393426177310298456635943532732228383085704402420671085148753209850905784343106636271980895875203835936588167572765268956898583460198922413748503899700663093981103259374028460801456329253545697559312850788148915650849961910823729808601702894355665550572980440216655162822413326132646156801868769357236944135123071309001203858855247952332297936942393351544524167063691274726235866762796799023240258411637252456953548832916077866637130078700503859107300998093424566087921762521576078100939082921118358802834166287897702812946685623415026721145881080965626649737230315376762676824677969580075971657922063850167636004888129114364476544258009044199172795741031891783137916673082356680224091662313966813587334696670651039879834469426548376504707188855183062006014673781340846572331115353278572102833395697654917436831836444396596343528029792511072094593778363090722305681454796862694419792607149850729395090635537136636335649794949068598888566080467526057878159348131872695277124293369929415532172726496435513897878799205552358055290828085434576005683349302561255847727407036206523708821130738136952529800863864499920505981346124736359481249894728036533007525450605704389041397002255446918660150855973007850145414543693675478919535845526853011595732235318264391014760181405841786684676454878372246039349115087908957325261733962656615966331805200038850409134594027487053522692623154603381263032676148492141969746792953902710467305164246819583184964595971050109779317595329046012513900583300159596881006802882348681953692449881333347607424895853354452995186811953730003425896927581578628716331674568516683260800296125991067193447276967849032296113158537732879276503273416704537379257075607972280328069451886359684899520890351235342732719377301792520113758767511063984287032506508290475521389524313011147905686785308479774556712239443839069087095442009815370986389582264181079419900931729675044421888289720893542164388160182125618320111270583454364018353600553644920205454296244681903180690020713926402845388670040459601994399015792951279656832473430052672441534406755403112538128945924984443683641353412592833337539977894928956463938432398090860299303844090517361613124338912672543927256187829587461446580320573007977931223156802016775300444851938490711002481960281918988205990462119267202476273580006877587748603523581177148141778929862927674760142469796390559830113167427498998292212954031982876575006500447424558396541465084950313602778568334451282435897639667208196930878360385864084887966290425226161125466943668480609604090793594469806029049831349935964601573647029465405210080313522054143142619689073373247625777477380884170954325161068118348836975119877417916087702830464901470379338972636894635824366965522232615224062269204914014023198005852901539639308941381960815561661677664738196003694458341561184395715075008294780633830115025101241265483598179530853203386039891704868896158066213102474295830315352719670570316554744867709264209371061137261254245143153040767365836565049709977804149004817477817788746507663907583382098257923069118746515657539303155442028240856981070549352520097097301772166625970796317651078313751773172313020570361107599702975275967592171653676267442371840061701284756093206115441704900378898835225318060717325404780482493710235849435904984626424617664858740555024202189225658493346595160318125684346554857489361498278349821696746663148988284693353382110862138138957321762156369427729898674886774995370286594878168980785266703765885396852834214013923047287161586720665477301325088984257377265810765919956458668676824893409111511666585782673479082998405878091806371336353882072414492738005593305892565481615874514285727263708078588967797385232607435874161912718392891630312569825881392517492676177579807640323217971362087260242136897026149707170778035755820683372008802064107381352177531799854772910034850482996806943551634171943411043377384394238147208220589134213932086753240714425178002066375411924523316426241005075572021753216877077725949632177651334267427209003363557972987719257600727933516488350987147449932579333110254302887772506610684808983014995924249330757196469865138965307875441392043011032909348917218210199607034190837931840479680542191888113557755613897506763300973783795411030586214354194344764642899176877336305428681441169359475961659742843915525672433558682798233986232731591697429101809322709447731179687318740982914233649087485467598154059917261429397666392691688543081124924335842445019994340469856463819816771971289546235948326425513062557287194058933751578651499229677743570958973692707984678987712353668733559156390185609266040460641735008640647743261403479973919824081698655366435645698783003229077197290207881356707909329568715403848496743248792181025631922769109553767266998830201765446941752514277172128603702215127421047765393358526944037583432660497329978321952063412394774604030745033496479764327545913765364340613575340646505064798688547418245874157906064165344951473224860845906081389548444583534177146676541023458632271351446295248965951833972423695964666500139581203515066326320712166357886504769302894190668927451650529821626624477649785049708258836457943916793028177426971859953454288200953206042512583705520151939346256703121817015944891022843477926900300887568585707748786341343058461041967830881742112066259199779888898194994792407073391350238114242866976719452685250447924128214606894436195335560598547475774880044399834341227815376692078030955812946742055593361552047038730155276609883838964187002571605365273819248555783979764367026918532879315264170800417328691049364787436258732977098981130714466756190555330664387471955157999268154689787959525506408956233658896769727924458486702359998551384565211759011342382432003290576275782495778463609199491887121802632301046602805891261473039381312059429302518134456941867022606356653291362612539331533358326741597967078056587401718686715526268499718201697476195755203411349167137291761810276186333545870106468816167963484375296886911297037092234158879021224734084331886037492329867031319155053966337583978628214882174432273160718220810636826688756927048930492492613323408490848204788911395566185992076543799453063118823689964754571017105866102794821042653034113748273121919478027629357401904990094404344522465570466117785209252645031235698374397288052515937619231355702814309723204513733798513889143243155271515093357289685940469395355799043827797517182366856212638189696811718367536902439435485335066927130486493531595947112522952088968570569494619767622026688247092404492080467547281491390992555520316943194850929567755689537275897857717418875241218757077989856146800684846241710321162344574260421905230410488459137974316455958886447355695779115906730828754969605048139383243319024394239819975446938540038174714757204703854830473797958197987748355482534797202373463653901863369342484399264707903113827592052084470120358899273789437313340213315544670466094384163477628663825645526494809004820352732977138553876829851787449029700354699845635292751207706769820485766704824515799761685688198812269763517434279086450792340248828734197575642342255704370053399392573238113533228709814179673407835505141769065748394220827041077022725737813006121933103208618917730708501324496471205247948002896234878585289732478872901742450016509361963649492826441871789574344246903807310498744842391316938351522132537325655408246861110311811991318092241592133614398637655957682204584311286513926563724044932308673302327839522771980703962616741909291566418362079431047911559364292181484732989500759167700533476028075059893135027226551564083959531349395741972943826956367012100656707503215966174399002191223381068474282003803820240978410876667602547759966319188692273626823132224425321292680714772252243442481083965040472363118921901825587683931810278667661848809788307217490544064143688957996707902824663571698288246100415005831474574287899270218133033914948650828008935860524223701136623128348693294347610115202994510894506545189995632431806838917060617136357542142641456297230844486138914660923152814436567315186691774211547669489835871610397530255983443574228423948796382146193588721959461795600731987793883317481010659367510706990110210990334419021896145515802932682463682652921172526544062217737395859444676912083831615184145678684300576080483206674474044483651616658130536696112917064998094717778812024645780089308284674930267614273288335015320222989051872017963963936501793208701520928536655946654366681242100553559124201049753669465670175898741202245458298498310417205653554759662375650143632946988560955057867077353021158097203989274434653914722191276595109273590038646402521888104324755847342514399241142133756068478935490707876898339465472667248346911313272168775195994614176463584334701848393178920010554109562851530670320797257749086802666551656103606090331629571784671736599157584676932722567600343834714719083061768720676998606586359413194627582957952212428384351358436994092954985864942178530876944454765165450924421469732941625881476518196076033682677771317641020294669991936733874452294880172555071750953079829349882497322016173559937855010324777503194850220496376364888071919323378351744090798697473673691581998017327073754564739295598821524244676438655631432888222989699827699877074206217515664605297560020395429739332087220663599020375765853092609133223581721979250488837309571369993610571745708213475522377081797574763650751937147589357807559056202252840661384710708665096919054736006766637220401680025691767470468787454418326581644921137703937426149018124352021140981767889086579008056866793261073916402417664402028086583210195041776812927018401296222217557305832989418902411734627166318686438729935693034890396033142643338313225491664332874009074536243287040916126801477218488298000388189361210692283100816549308573636970878759342187553905706615052820465624740787333552393431814847606302240448634520671357468830893489245098141322715896583178138855252125977227581044006931366462128155279490530379816690851449640094140327766108362240993014527193252907200800907460349257253610948455507238514748763442538067746285981095295094955311541223997961879486319056349135508242043807166641208230580643810386683503565994482586755523650118657063467114084983969633547108920342165475027724176104095889246554315993416198270454581168650633910735120977772968494633502115412565300250753143031282312769375926647558248250565140378835353414249074863223685948898939817830637351670400132927665925760348745656257356697016746532598920529327918197096447367100098020726008616152472236681022423231309842203286286237423044122100992915351420400800329542355999958632777959250055947141073617148921227340572846057395860522153544099836842353623219442184273698957002453400569802357522550642711433637274150008879679016971367444679819594970922292186807311071857329410295269331771728198821746374328559731515868417298136386738821146852160748073297753876518088822276693005398570071876624776651955735970047421785751415590711928038761297010312599470450200684572438596530609339950642570679472367059247797005219385544194869259539191199202785058875045165027031725356893922373481968752095095440248500882132101541133179484226015455144242808098087012498722392748421958587765806421090073645421886902271716001070843595958128289346608178759173361273901365769849613516679421365460084458882876390147093750978857163030074488779285143600573743244382443300232032487388408980814528315380757910240899632133444386660348937961531217289463102795823065461144962964368970622409901729944124043692626942068492789849268629509199364572656325892153262341556005343113667074329399799807910065699611611865926559615717435847253351634364589187756980623464050408463527945534535649069907335796240923167628453916982658396571862912955892765412411773938867346983177680944157326272953148199750538298705236519125649447438467056336372849712857874144011684903290457431497512505594026830267412209933221133264512792493343850045990624478509437781310859862726981374056247204336558644937586359655204653922994870728696214756612670891528576592898523421810380266437736513799344479594838535581125896265321979309090287443537461732899821576725078125362483721257925187547962896333106020168327416882102682565108446272518481482000862192351212322248905464894212836021981812684256683366355107977131897057447487046190750371493760783301717205200362013455060543669808448273968665154701014961875410558296214395644011331431348322708266655954716648961754601261650348774672363229819727912910438149678475068647877114359340854041997507857197474412580313187330374995193434543196808031378769459750691503908010653626131465662229523361682667625163370530054976589748263230699443064122215042009416428639766110463452267131458774068108883215354924802207439766301444617845963570495378264401010012561683358970880984344280716756900871291513224428614846164656921243762581722023767385917341956868582120508917743914110011643337429900268858709025847101161437623158097557261808334042718369050353826025898695436629236342537133001379058067220057993343430270762663371761788857029369444907723093712528998896037232757086400551649272582598816857404579468496965109980613016681511706913641766440710512076680217479916817997559268587753005578758581739619233844658348873528336303884479618509837871193960724617748890699082248378807500816656250319669026238439679225660725882953419966916705471649575143018727298665273763224425130467946697251673001587240476342335782436075633600286154265698697974809408929035342795742304089079638043566304234333799682314363654108490530193404202878184086391296029671034363742217690874931647763965781071874022211210410237393374021434039112025632667544794950880135291839482940952448617093271466084410152403832688472100989139903550776067907014721655932231083248297587991998787162192838400462431476887410276959248260130293399532478344616509912296406874313589155160310048116641246473458235951554912560749977896813223402103829710344168864853983460237066110780499518957712172668045704892662546890086210929099474780296500488118058216227760989579797356723364261007346927809737011491903603209689186336519123344170269812465591993683141699788009789428182639835439431043497505867513876363378790431471218904297909282079199775318591281921273614052566314988118185358597523589240442991506131171588865239428441495585588056067060558662785886176995031539312257878368482441518771428215561971087938998426197086302521910443767789408652456915971209503460467923286365718127565690844921758927596372262786860460160455052377535745901240833686574942458136426725101022522664771543101885838611103801091417446144998607078176250276769822300105296013820304797841460386972316225230761292938226066798887891880113383928492054251282103817829016778770988479547632857854381097809842838478308908129862952704344127733041174377587643667274069184103329387392194817278608890389203449706000524494274244602344323086292537365824363268407377055531629464024890458969292594813512426628039719437485871398093667356602093656319654025586890729704178400846860346050689834025056372215358758685654660574347473818292301522041518128081323107101362609594260772364649865503270323748893349244255475516335496911955533075044868520722894054118492444088415973417775341975016780462054576894419236556233908131317769546198227485624046184286471445232822813994347749504504777419901032192648834803527999144260970961725235535476988988612285194006819472434775025401983411654512642188360651487580267460289833147874206402484587804878992966218103435634558425748889070524117077466613544760970261704977219925335619726282481343655513192147598339578089416722988292425573468006830853789953053521826623298253734500618092759983545292618189491014094788326810764225491710685592509612144619211526695970494419481020836856902148617224936230250916906726475195553915282111082370195678575761767100325264862839825083702371025101501907974991074577274910954167012770030047854239656988593592688409607994590815761388668734525473838053722290905527057674189467300410285779113669336501003167323168230182753920666241267650591696422290296047957171570520811282052887673181256993290551982611973078796639536726304123831503688322078349632302097104126493979977237878421032971115263271492011934324448864135502195684938578183883025053748241413968442133556710363775062542106711289052360214463874480286363017577956880421824012000812382490742231998446921543587283362146179631335753090421303481654218498928549894955219030389826559677606764193820368826122792899173213993182114514891631661489688542280619048140723676066500321283607441303155999411886938544820379801186789263477659521087253229872120580126954596200231009797343503043074677049081196507743833186332755744838327682379152186997193083512789552193893515946101703593142175318135832593501046428500468512108160392603199751207963311748342195603757985998525717804203022972105706343855169711682197077095848412644400829819369599202876337015341300574399382848901099698156668444018402132003614800736836349355146810358993760481239229491486394594497119286496046795748939207378749360314571118326076606945779424304451054599872634351918529204444841077070510737783350571665305838027325050936697457070232726258653566371055394802845368963869884179643518147935962721662923629074612200926120670975608732017991615333182190987178989217169170808409985423385396871228555460834507048876600785674643499102756696647951692332549495044391327657795860874107574817452901383258655924751492433433816505064502884324510905414901371029648877292554131347260086376408330970701409432589894432012332716088009389772134373835043763934788858693136110648546518695410683462779459243597872163921792209866544945846082408216119600557035702081535172263107079454766727973424128768474101356353374131422266703291627214715489968883785348975110336437066961793191033119605020800639124376268473971573173104865321634686532754747661468679990582394165691606929151747993078382179448832250585313024705076860730445240160511405670217856546617245327998173570832094021403589065704241254580907036227993719439805522064004467009828230626394758621209782164464760692918001957008000990194664057611930117476427299886776749440060790566347019235448781142876607462397491641974909911868126353891983186676858034920990133247005434933694044552351774064672002588510146406718555228515229073820127279003900981125535867924965431348627698894526227753540356602525502216393452104856761241210567077125559833904846964086016238765877600679327594167577052998052565507584099804713634646471005543187134718729059669139325044215895887983986747618608492495685161869475745762790064444827455167523892241211892304251050981806247364155886511100799650366542249873517746508593611991711972558980164212344859521666242397170921143420655825432776047016495077777171674786821959195806327270182319489689114905091262402165213773605328427453112796362027310207154843252949727843643086223837098179875492292046341394550218020655595154864010312694690698499164628267316789572085408283271706205861723017347665982313339319861082964088068960544975023820831171528931480210448368720180939034697630987212476444630405003576568392601341950130295656472424607193734653753711679087163676797342382396052418620570167925032652204582743311957304832427094323138532139116667680075833541013422210783962668518964162105479081184283625755078591500778287733449609267459083055465924202987560919955062210843596937435129700101705938939330744061253191843126946270680978453756907709349852898080294254874724946003421338802613101623066821735480966437910264926092035345482156128294935317746638272595331491872473439175666867881251495092337222143796080686920597510574645227085651755924994076696864980596348254008905266082927927417001822954693761006318376397375973864397382319255972552837368441751133387856159030244354284279618599376548818701690768505545575920260418656651335148166213573088908101861261121669009902154205864518570209602557199244478134469745187603697819663101167498759551364637489329277220551615179652882963259538163553737341701362897809965262219945909139570530572319413967737555766596074584002667370303962304497607419791970411038026155536284731283965259589908966066663048373221063369676525721820393425235331216855445485146150179953863548378410565679443051641622651379717458404849133733441034429699556815409114966344638274861081445278910144018347183090870025954188382540733309823819110711162096266965469845282708304170152022970231913187655079214607100173331622228581090325907825774935492767367115874194479373109661345087861163670204866758125722477308899505121265774836035568357698176585765387510101698232312051959271690239726428556171180700611927251332430775655882225814403169802033144308833656238115911525418538165064067495808187105645979614500954355520672933012201182159686576167004703832458205390124273632847164898727691747020462580942144135850455188739804273426146688833005911318256548369133305698332840732436094923943449047390729401944235190490051207579885020360314007498543678700655251959584714006141685992890283374820523828966449002079186432016128263598553357204493110554122255741969830629352288006382270227036678554208956849925437465943765306874170364811122394543629142867073708018339934398454360412161888030437097521140248458621403151837887433114519733350183831632644588710262351812842920260385463382687067715151422727926015371443586259466717922663085995111744585467977400986950736857945445482333735526956656532964846515176454750446679282753997707672097240530469579980608790221439179648116680615657859773618190846735045817341458998599405257640237272577868987400348133928186924492914915145116665966646334250708087325607719011586976836135760040516213607418441418488384412116749432651964797233239721643441933905443221509153419384751590435731810004143604642719743013127984385735567856746252154389746417687270602010115086575511567703659031043663344655228472302033185985131899968106385245762701321865445443997496953415040339047806993599834165869250299709179067457388719633640172955440882254810432073540103057464409309236706917179669881387415521681115944975208155984072164132165760934431837754357805366599923523390296105420774029680263280464629262187712909055441296432199655009283275281349940942537549879224735955923606248095641993859096218617031760867501391944769343216527536563831746336881904008370411792473373385578667535012730917986420966787343104926597484734166161980382600134992864718454341497499943101469005386068943566737660065126180541240245960036442323459257136606148778793028366950213722905743981662474798814579568742647927282621177322396050255939831906877392227829782527501791526068120154303521711283736980604610027914150208818064328639089393658134727760831819631916103491787771148614776379151061471438435901709476358960376449178218054358297673034020903049719847041620234693631751190552915789543687859507498550998233852714836768876348227925339787017146195560079086298213805015407836544113425288823379753115826276826591028983279423577456266966790282080202063351182764630244301750717385602580752392222256276259610234257024169840727883537261115679064916660463425404534423979030010943559630649733751201330213283690775045060468125352223609480755667971346157852632870853098214603210138408962599385795141525952333628358876843205504171944458909904570462729271047126111676383685065587304434349541011971399405631859208281713645922652045074742450681890211236497410089859783482273627120117847851568938167843649487442815767286128826934001132303756039269118928058554318173905446434359775493408357772411300039218213808503991567281544959880294096807350319098283081165509328055548687178572904495634305035905247115487088245278496386443201261955762665927961284362528482529284470776750502827587248204366780223682452300710608232585462813994633332235970699637462668263359131088551582002810107127359959152570135111071700230902291628526432837385391603130732967445307129625481791972865095359166491859863129036254645780254936227849974066670037975630838022229545858280963793654927098194027555697032708346702386094418483746197643029524373824301387674982682002962170594665596997571708863105193874474618752541204966534231167114686266543382370802668873416530224235670735936026882454172096605637803844532037897797782394802421817891279720582738537021458638299751880292219148924990640302298050864010100436312232938629750357550913268765119580447732727597088226602527345277577858239936085239037591024774738157800379513101018309908809661262477287593134838937519428502918072586039475316233202315368641111677865576012351630785682709060619517440650092268657927102421650139417109849565386348878574980480082133558958033896919385015263673625987353327323497828839249965292331536763716731693475377946598384138455962901583163268790797282299240248306065013537628762226618623626722042642255347889744072362095575117219990153404571580331197049124760427130332592313778877170716157285431025451296999082103193944973313449091756206932707785544301436447148518995400836868311492065634714604015147816860367007563883332925953619556682139582479102543865112243765434168709559158019528157500016908950561688246563187918777611724893843936996451982293782110478049638037225534188711339198330225487684981868834114930368391234828651882815440701147388153095620533976025282711252432784087422997871571768511233402337405963182322765011954848790019740881355191477307174605927870821131347302784730433049623418192082655411838596456779698259749507091320394937318351801458193125512715644758576524058719187557768639781162876073128987473774400335144281793766483743888026239649733466789092577450048031599921193679558524596152983663099884395416556302592273700890480528193846685583728486206546483253142055083463914675098348488327509841473092694024668975303550469092760784212041979731900714591906186853274483083199558873664292462870509103140637473183883291982413403909549929047062933853893019306308168472949987309080494940580379441174675661967894321823378334055221721744489696052646497700148930191287672098793869416808165066357551560246528342238276914391617233059758124424240682103894768570099701110209569953389993652526808949537117592130698285597877505027516045452236699531390899483769712786160256436376020088613930065634697500921579336952620271473402834971474317184873633663860205883660245581774240374265201310252020690259074978865752714927283432043397533680362926413118952308084829529300434846648276785167584150284955135593179332689504157724808405826097137768442388464174592389199424102553336837661825217481320605250031033494389021286566278918307515217547284345845183173917242754124175559845296831374303248973061434621842211669140950328434585773188325520206914707535516697153129281407423834829494121609843031252358779289702953646085190110171927665751581526350600599090583399672976139377545345321345977036717230969293640679016932227151568914346724510933091702872114307172483565654918530920650139666955218392047432661332385464278108639289859496642149499845946005244374679166323879455414459529422789183228255300562399852319770841478064538563749462782214614929861085097172805564213699954594483661364977472499843353764132890195481437521148615326689321970811388711308304846280352011833199721430757585663887464925579721631318199021330927043763511030537256099425068710295615196541292131251065461598885444948918606109594352399133544377399678427499894710836316201663908374707607762561152956252275646152433098761755201408129810280747566353414010231931237701982470408272661859317753454851983092129948017767934514249438949505557804616637362375111532058983189346474141351237551853195200613727514190697827841655489824901863698286032724943390446514870719183296545120216971143854673722211089891447542497545822156160907450124644922862567534336862216678371385939948824582783834364113198046699538650498376313013957298163297719798075496122639331492766134708071597220629564986104807290822253441025279843561838930927736802123129705075683029824085071055776461235628027438002488364154382632307174420465026421216547926222882213170965849774995078132623921031971896180506110260563546556419039674456788516640567626230776407069393904370311523130237595080825385329122292219678570325304962969807077168143943371230050537868271668777363926848971671637646129073882407831283578675247214771797931192875709677713077402327058356036628987680680376436078273562980496343587693186658023304968658760711918584539946436508409720291185727945163175416862768618548837784259355068052080198415906533962417470004245908325943670342203982264086220006766664575263248640599909912496477917577051508886705832015970066971996347442435710463683855156151541040443078281651051533850686256455807356808324376285418827576063012855775895731154264277055259621027794127021294558080014176051401632186357844417543381515636491240857163172179343669839302092728470130235081601323676184850003614372665763711348456871515973504397458417346354997674916918205538215081474678225640891228966073043794336499249222368722637171697020427216586639290120289676659540823175730292992497490833531565080560359705721549618624133887535020394224150690558980201078752875042589003899222607039522130414869529903984202242978563428638559092688089707107879931967440253008601410136274852661290269217424314854845310530216447920454539653774960483728721002406885890921279243487460132377235778663288518790640270664745103989074967431151369415578198897326004551964758867566864417261781997119226420065293493787560264447891550616749389972862697438849314829030640661873030257812611065821519795186631043787789007729063602724533191148703254493511682583239079627422580541924793842079892494944715180887392817429910060012897350152278535945003134851867406054623115183332545250123276021130372486718566882364136960086776348948228117178104357051044737979539211174896538020447299290257716188941981283365072488288448017761726852268728009274451623947242796587395187518572044243580301875596457454031874881030368069633793964853046658251271680872811381370133530008545728816541813053897495312250612480885270018066456581039050059940314600974886223922598697513004078398245361788546951800505610399791805794364097487637589401806223491425473822569159090485496043264682972618691344924596783147346234400732671592777636414313905918958918620977443276236100146645637858115302790678893644099064129292547950350188078824612597653487433955357857054891032989516294305166753591970724116936816004735554919168042373856176933380703499369054689519391605385848682427867492408972789256450152803302953315930624047254672797056032694412038011853266002321932846107401398494898807776985836234021646571495418179980287427581333287839570398706058990624466568025925535531321966073315040112650024042758986963603961638019602925578405322136542689512228164170375531009277023756775598114162846073502649715327767777445908306687807460276398214597576440891795722029880099911662684421906403412109771492512599381690882744995493079480087129353234916697387377914415936238902358271894857549120778777258973783563066367106139586082583102454780568643536711941328563603405653843276410118103934039213698586723842047008790647189713295680798084354164069673582187511826607868403033627379808431041996603194867901201848831013834340781850960024957874426160149284701909872122378724596820998550607270944336816296059571633138343631452195532624895822855079549594557355570298276682848332339882251699037894895088400305756749901684000401856691691609501882889195934081174293362809796401061524638817317038595028562605266426803864421729995123502279433333171576528026412592323240200736076721399553773381166311149446212423784274018654203076296544095897334775984778630123539173122131326485819450722525483383944503736918980171323393995299052757309506648821087876416502534278650485798391267766138725532626893920919331290665963340683391417005050572311838731321235582791773439060449478644774978490184724476917870317677307903519426331217840235463651045178226400492015399840522618622970712685415641072213359327067725855030250869787839319376988123902797392633553667010253274169737091972271324870046382912324542322508079002755887230038476484039264020673341606611549572050266195003966173679595114143581405060670265642334022001935784817177737491201965369859347044015531086069178604712109509960792141764014085538379683598073699786624160976394681294266253054398913131088294861566461846700922893249303465306798860464823409788050363630209230152639746558456139755896954228154808703480059189874527260218382750125953777517828027444310982044508608731362902995018208183130871180517891589999558725919723420596808035117452632919467776513591504851930022854166247195085645245336750400708085035265424732747967814901080494221056380639720084777966337040530583510275964616118922322531709454709015145766174592043658969098906669424237454910115195270115987522424934401092380646086943436543013336442843672313034145693008766130008300271791264600506284235873077003077422103141090074230421027248483278260112959108546569659992017175956657410781718812762729588827387542260655385459670092317497202945672186415482624629257473261398008153774850430786756618872985224660657726323390776086696748284951627656347977734121846218803714117074876098034091113450175800917604333624338796488601471789888904506147548333160942688197021219785338589501326694805411073829490912306746144532507174013985583353050242225612583751721923821413703556638970509863407034279978090287023657680943689747426161152155169930318388146874845699256629605043223008392511913154360407459617745425400028266969587744581720014446046099853441549571187295138507496393048798400182406122754001503489532419666202824843418993145567017939735377879778725126542268137017005441431255383972014409641281081724162692948873547597923197874269013041428744881817298094429523929805034027844971231561083640972170661755180351967118399992475820701963708920096910022826756784438854517370757269174535461874669213093029334176553868237785839117897858978254252607837962777478387498731363730682987851498551041405538796642079682101323147951943886278097622834013413553708500230101407611968673760982399521627816192231546955299507674767231261059322677596841495491234157349259419811376493948707883820345406379295847885518251015679798009606387087783895610269954363479669104032002694304745623966453507851799834625661853247772878719339522634060052734920230906309909013709218730191333838336293191703391668450182054536104448800130694845535549320869719813729348378994109234435115356375306989874405517539715986488765240352203462198582274522808394619511987719818725977335303272147573808878760465390458702542928443563877533413102579459627348711608739178559510107486951018265947537355547717217732056342461923065370200790340463071650968870295791398564107991886595748021253035321649630428376234500443628263413865782922491931153340036697259083805083073975852358449795362195559999029831618663185609867718725416272518847861666171056028003266326846598475777850033448453673746061155791205803136665825128495450925662879325375053579065498272437884164166075676220947281826057517288769637155472446199146622961878510670808707066466059180418750225450215646472253380103316434360993051307891820376078590525761901320834090468155394188541691888598750728377830013611087946619354806760176715712472063441073964099635154986944726917180219111923222539338161816090763420932717228585749127057489541276890982070603954557071497403951493581768643398318437178211769500438627417301786995485392321463643082064466334042700280900197263570852649396717358064548537346280102822939169883684529657136649684341426154653795917039409369646897568937745921489341210708415245451115439417787201003741560097093046365721764255384399771619436055492008908559597726016769581766807587152783881148960517489736373691798888940772877767514952306579825764258056285310123825084125334155672584096492043727769344468088940138577344373795171809057706315387047641395442182746252505549698470213852291513199896229730275872819938139530459304298289182826584630854049872303152051320512035855018599136575448933870758044381440857600465657522809478311484474198071181937482792207460568448532155764208167720728512668511372719480444199848376458715712637783647690234235098408030114418595232296720046750712245420083529500657767533827585272741597923390647927884865203777495646433731048423864336220787020387409333909552325113601582930190102075011252065865777921105196471874591862626250614215120836329470055981761716931119212984103649482532437192282824525327579204766328581982291128485660622618185109172379968978760401039518952535872052452227824559462822951799931082659308269023536940603792779690500448440299687745286817035302692927414308040382599382640969095124372272311732054669169105773840973252410803212534637252230238416452545206867670873984123019515345231505877476813537811456630099889424214745548277731634548717708629938527112251423159966809375671767938447683733331493444500991864682616182534648307974132515749812126135810434522008352350621877317230749085277498128794358706756638680927249866298192370585756807399478429063680116702115250406864603136779922740114980298615943611944840470865235776479463685717590509342766218359107626790594296677549037676852743846568636055570356873156828318190362697925251405581249079000354840871293692579963535867436366879520331626895263553215001365440688634045959816570859512331727871129720795927023835843277197505570480536344803909538593214138118488197674723249729982864836220046066352835809796452879774369112061965492239559586425719571186815689719452943605669119123060936225865552049197293755833510333378246552906653065175111915747908563564449189024614180109083262496939102110271555686463196955812290035249513174378837791105209374670479184858218378184012546983000073172630995007989245543104494487907326428839225388396105324531047784050275868767712059873075518748188051628312504390352105437522097924652526644145071513947288268074509021788556941202509881486498936855790531441026076533523256688777180843748569313078651709370286342879343345027499190850327259979570043038142498531892275711940603476855727980934271019890016844452935206407504489866547656165020017680418165236415500735752425637522438492986680458435097144505934058418462607517521997604802288705448206547428597810759308692630662130960535042067530219022432934245503567390472676963854402185093987645995348736232173042984424015242557566010386960058470522779615138019669809067426787227659986479506872833204945490066015027258601009156507348032124311198366903487841910844501337748197229512831053127818387924240187646306817950756674523610208475418922196770544451478254158830149832128311786789487190602134916613415950411108933597022684646124587696310694132479040308210186652901435991227371190809922297998232483535676845324407955857364032196644984620588951931372891365655962699578387151786457482212530781903959117136573430185730097361054253128384437189644048649039886480338261698348132556809687520788133333893961736747972178247033214468347039432217811273154605991999687103677622898074474635422341960715468064059487912689584815570039585605363094215787630100899152540616033726616148116596831824303337818462122369795474942239135898526724037278235265669323506305908190055642042721868824294668375534296663308988689664411764097004428140791038394104798242770177812658756161792025265423452345728044123009448098169566086709124597584898242330092389819262390085589017194101344752934924838556369557944450095415731651576149188976604393718721777346236170637150768568388823224368376956397286273256342260168659411695341625136023950558984101656152213004001051022489221565404698351848136900322866091874488073348703999956814005343072820430048958626073629566698414776929389472510793921406669307375289717973076920988378730384749691604800585240741023359637666554237045644666104227710132375928355708347269544151614632177191211921278767443769991192325200618442873680714505831921470737939874887073470797991255285796360688953148248452415040635439662846597273449095831899705493159094160206603504107888635860675167632823439103973114000311952127565509727720839684564764996615883063985807757391361176993165488031064435463116840835754323698097165783882155445430784317552141946506272250058206625236128390529164643146145008485275592958407599703383785566591406623037574676190101164682534612746889807843524244851800372193888128216436578069795958913574850153791655861466652719530624512668937170071594897052150176205657690790629126556833595387088605694775382626523556136062159265651047854084234561442483491501573846132859355247386271574184863101863851397196753987124514936360376717329066115575243180362946189777665344265958989986965485841567182333295777936988073628038456877069444539548019119286515121551464730429375783961074473994609779319476384181811998541666602431794180832456223560123030273028327491612361816126928453318312075186355261419653987044042406401145288159888854796384461341517129223201192737871581600745796877979112280241003431551421280768098267008827214323759038396405901181164809205744676149318108705602055717398319950782707519135455560813964165689188204319683135486922132265473482695411669146015531803494261404782843154429421396599035310680131435384733860538514639002081006976438294701276582783909721202649762926182752333502949142837921517991924076270330892928657370422185588490474096931053680580642447023078764334677954529087733700300305681119309304324864479498683895377121530538266344599944871993522209927854585077966232370948340036758289329306959044650616488570409593013236290572052211159694131249145577312288018258773284626660114425519556899547460401976349316135176425036203606173193412278093067481776660332544566244728916556630710062158891158774881436430460443963635638491883436432627735190245534484512312965702537966464105625517480812996988555313022544411818491250154980240512618291403129135782440414253434923200228621354941862507144382822518440576771023639081971107277727419111223363065194452402557806123716007596727785492685158310232180677662262698634734013892524724923714577111562177810066750364927472679834161194400104930130062127602931873044063666477649617777097533651421688601447687602875611414191988864070261845282996692776030646182086510888706535672767698517873431497200421666687807291276022926208276975697142739134659634794496962902775889345921375050941638540866561977696789137019804547298872881725742821828811041383153668212659531983845463077472212030348127126677110021971833930234391118433951308127279962055974955559548964659598382914974270161615624285011849588032378374497362033069431825848248381898296290086442345791727973861938809571518299857424205769815599056497553440368814274877995334325916560257621057989906427256078223673106980491802009466627253388908343915830479738833938923745912949914942356491533214709866737898445407983515492253224753209827461519160468598864748734735475029682542555190169430142819256554923804773236024740638907411607836773152928092974131670364742178884405545255882945685046040776497900331348127553487846960224378804283172073182659960711482223050137481323991275013601497901796064390031782455041819733912252753934673570294230965985063641370524432667880534806412702381284531442473370289937476772922031111167786437769962024355811829693595517434677324024133688609610028411810922703892351126853244888427293972027528834927096611530214798025501447598611502615806055197454524295475617357402654544508683543595689932538994705712391728587889316265763623563068730918687252092393354334481245833994133198601797595903374917456728679463363230239264433363391062276923105428887096531394972479884584314110599283272953334777502916463122308706829075898631277483886953009565101500291693471918233837764427656565829812292574544888467094402328866847740337987871515206381540093956306259533383890258022548993787379562094980855316073583217447010022486806326817935204621385046088167975359421789470156785973614683047932537900401276398793288864915927136023013014347630039031147488610425049885523179178124961995501474209569847469462197667754997192111950387927158087920172928490476475531216063479012800745025506351105492884449944594906284379009336699385616438399175430424354214923996882262017029953364426958707526001747289853450196560091571744803256870474633108371256255486029149874510083228440390938072416602422297925772592384328942832276988483436771956912586663107008864945821594427451827184643714043639329995937262411579003570293538415698569742054931378890213436836255475169509092882217998762887720207874617233583592982702472150396026937735315442668055043571913754363702043675270269898047510703872190198694373561989011543451095995074906428335012645667655675012569837238854947929315201609682128209376690973533489117829230021306919494414122052396781571114141417461885969022172088407404019294149951469166322722515340202862051286822272101056849038140295988440741451744975295410041531983633138806502681600487295513199306045341830684469500249455417928749782810490319458212402857648186535838004437905989734119135506343118169817404095671648731606899136398168597061946246656656391038728237571119900176760232744960951146261657667624976253972097353371290180432195015430532534016364108715635394817120488894729952042334429649336310959328473040994431288339236121875255348166747709162675566215132203679437609180882757618974415134859526722435478301558729625050635226942419783325670140978146174739101603235933823201587957425203744198234179901937140165485062769618824534318312292279489077328771716743041329839540892695862707391710033391159271528496607766723389530896057240791433369007592044400546940051393498055453079714554361138810804293668364208122511439838835080309968803237434699893428490509754056717337060839480328650775605939974788857329666045944120169949091659505759916828479978723944776921841810684576618612677829620624560205206094026996785339970507064121091631702507483178847786734831659691129351373359439478984824772729862860210946128356189055718308898013596716127210777580871879711060268768089970717082372305967528174087488230550406305517555683206237007379233194945785122277858254856905819456369294436752873008084019234885060790040840339242052971703586020646262133408147569498376937322991615250866236899320195193876212706900626656123232914044148975781193196396639344290268735011238591588240859353125745813994222379922319462569524856508174483156745971559909599152583428299874926695316628303380815433511587433503985616608496185068039203949630921072998439410598202150333365146311536546984827325177162500939156960594498812933917925802930852682207542228955329990285617697176409944150290328429814955648210894745059679279290569771001815592967464389122189273130100421964694004592243704714582870856153815092445633506870005644459806519083084532053493818311439358321299077773198661684455802841784186855359871963158598779421470675021442108146692391833940801408944901460618461297077358115992033730562742979082998601720123297698794940564208408439252568733802493051990689388241934972479833829648380022725912778683419393566914603445636598207891323793103135285139978960375730137563812228403875431973802429493753932915339924974186279125398973809322278168213030838668162075860725389964865263503928278121744027395892854375986328353942872829311985149915525319811421366494502551648547344633271828463785544077909100782371386467028949466159253994202525940255073698611338727550997248058174537977525118032226490015049320802334709799610591084325787934279403669118017365625251721945743891803525281744164547915056275702039811606393928857817332231176893835819282106334597567939582368062225411458713620940047508701632220545773848939588167355294663217967179191533966457884323059657804193773841871592472966505090068632168643779885946517680393571484425907087064332681392612209248606193895222294190000015227138193865449363135755426997213941198156195017022755813255947904193434068369201522188096046640692798306071200436423699432414518105516932018086995810081279186492337157838274476209244642732619311249106116418495614423062641289859969340471718417853619537419627123678507068354927832663101917525134549767440913648028220787897137211479539893298762952401649852665457843067679866308842083664457093788718192600575118258590473357489128968825710436770604637670602389606112665877171611953222818377844433488290599547512372466726486944847165006756623840420888750842277399459453586233224511135322825815511953561615491779593385144417185471655997666170676214013642126116529188717489784853926283712618738184601569660556687797195721010518506410881586207898525630223429976501486050298722148219126916526315803664556143981983180100677858666739947747130305823672888862710447949073190718640267318542513933680621015298700044418619585734567576601408699061024474873070271442972378920375908606771976558027259021276127703417376112494318896345729404659533590743869488437224923603630413593154284555868012782971634316464297609664640579708764903102620240600263212695796043566698174789548128065991788853129873632600274241689233299461155513194703218694170228001942490824677673670987111466465968381913902712012581437637869792003053363717264851337724271855193073628546873730120441276830974960352808438324260509574914761383853782887711981819376141733562226622859362456095081207875350564900754933921481933279735957699507068013602195683395647084799427538950437412896171940486414371271601433992925326114203189927199926004439362397977194433309689918854174496890592730373279148131067094101001928728316267589348439428550212989012834753853549900663248183802456216908278181167125815457093403037430417414875316194312503872829819177592276572966343508292310423969129178979575497446443234879276717129522543416999448067843590048552762421864072583297142289482983283559580144258511396412136457902688410093202582159131035076884357037892204702994249445547626853298577052266017100770754668553122230148207957771462919964317247200310970084441253617211693594368049322117745084708171730155896050308762249794306060089089975887772898493633157214534405174161643646943879985428077979817968941697494920552017847774072384492035452020877995347626401354987142819178206809240550811469830126191757604942391790166631521561003264548603977290483106376795615339984537633006742324198935953969390722208600381955283621309163284261796316786071201753440606593406239862231650528634499227079361908435009439765236434941010898245913457216658759725638186347689903344772081910462091377073751415329006495459434745410662294330412213446244540090174623049530439486217896738340204966081258363454845585052162080556329734404808378234630099776931968201696979323557099512779747314992245716389606466775363913621433335701585072793542451654174406766143280615772577137651695498550659197057876876718324358462834468375629703337375813001973082197596643117934570380548426166526960712767261290342939080107936347417948061095349277997161427293738357457895784112403128833149022635462995675718974936177317884280366509836637020807478247188692048996181574244446126994428854318719831721546974284092194760752684054521268664298848403547249088842631700942461408996108841083568718289708254009949222126975758809113895136006795588689465181354707970582659031598460770888873897732186171169230602506981337318249601407035425468311300660989519617630593309340964168912231393265936645429739467863003405053616077347871649463528552227511065211785887229972134645361956440566886793126503937153493932881739984954430435479691687732815237973626611658765796276109877610038678929592757391731732619134154081189956241166368569240170616943964589309199186196194787912042089898072635396550704006610746601589836677953994262753938739164161752303340976864763157539140548389353889052164373087394148867737179509538382158478080002521530927463989389783070395586096624607291712049024263306265836069239960321532117804734456008218945064514895789293927261013045304663676217772501526520529308517160242137626254225704442622923269311993814513993855068112194338856160750173301136932458700426454366488921674496998009997598337968267760462071494357079480063536788006743324530756347381680766723608816909930970434300426768013208210522920658888968347360509938242295880956632014854927143909117362303230573548687619783389013392235672259044825847012851082389213306109762654262273991598777148320918006297005871159575931193283981978365058609440285108960269651786456773909653777605955967307188894777926859217503301088765011056271811782204909002225903845848699688300092325471172910510637127571718443659775105075135996532933582425615126331135071036757935566435588782598741874832799924988423744384278597136345395294580076043510541672186797275936377896958524422866140404139032650547978883862830174706141424482475636481352979698707952773956939778681252564440473693058067798086461400576486686622840706278234282620063791555060660472477079508573441829941499614303209167493873777494528425139798380358162420825947894100427306331350819376318804549685485772473565903523820590752340117084460500672419452581586710906172075768811620073889836663502643844932438447372010434854212426212658877342776615940245790543252072330822984908059569274255121189930464955104059600493090496087350542338643220286475851591938012549202517557162140497852318974931246691216094931101389820461921495299277920624781833625645132702412669362435595889683615394698746624512933760872907109644062631557581349278676924453420763572467079612349982120940262435975842350114184528651012879301376999404820395792683530318452218241874498403119892597929010940398009825195391750358393166176731126568763590204601125510769226825850844076265622170289617475526910352411384556562478042758046008876772506222932783477353740704449407122810593867595648891747951014153260485320938302711944951525852416947317493228559633732748714241280511216188490872855171216780059807810237448617490470743510883285269327931137100930476080157898593038982790714648423411256033021123714536853457371411612921673295388210571987543232144277850621403544723015327860902998444050041257894601340174278700437504846125635339283411808734354263299594326332998807608081952369242558573551942760557142650747266401065432732863174001423696837024708266486549484146420284488721535782863659901483367479907865931636308388617397407815408121382716582085986143083328578772156324247570407327554228947399507934265296505167130016287407250589909002534329310274608438780465434868347888214394380959887426558827928898899414578097475772541431914966484045032703943440155594180116693636879149634248408604689285927592975846970658895335633548452645330931533869419702715542697539901328747379274942997973660349604285741687948942060101823742331369120356306552714388349440401392245362833917723768164655385629763481934754698554636741640264141999812346849385798049993621370059228381772677599753799232881427915749712554718433493111453125626028246320667366865618194962890517241026749143327818640548395189784875626521571089101494232600601741226476571131376402728803804811085614038330380984929562709827120826597437840601886466880132037248110994948917518532690692812466946109992411586331282656897419914706611387226132849123948377641841165251438109316639767175077036369865790201001466203592823176056648351953600568374039721216236823578631496861341121335312464047724364337040409851087534581397268279791604259139298071390803716750111424061480016080221628626013924765504051119126587089188075970370549326607800073945854119213803794695751758350838945235660238916438760237696960169147516832987117873469130847116846104406080045071168867906955742790489668970302990740831097960554767675422316506658076917101301639768914476239803398280239980736064599012212317660227070984733710571887155102203881569987318523891874304855228263392920296155527490920262827765276096990484226327468266833692591242823546324727178409232689551994640296616124627640806531705203714328859623968292868478749508131891804722018811097943498781324914991194967151103384079621037739177326006794380786578122204629722158102595125931196212042487883281932653053358703285184710105131498853612203501734422943753446805686032211019552731110324416172386350808900889111832594306164894558845835079229886375857008146590708723700825039070226634632704424252036322771459912387511917735637421727440023045686075477249412203677357697249784039177516681613942931804726807789722885650766629073715377336001604173173025764575243934555327450252012516947738043729196471222363780425656459431237045004912705094492904160516569820502242267688276347728757962943045317260918767989161485747857884747686745550266276326574865328895142805347642706287769324832610369647045621677894751923690419075878579681966391789313120033918469320729060722723916152557540997055378033187844873935901176227284132446024341782551606651678595015240986840095981426088728014791422179908410579897672378115607584897422602743540138932359385664438485017331606674174018268918978658579100304719937564117082422266840875091227222782435890859293301260135430933422528894201510985019818057694540265548327426935753448307027030473777191606941543389945748229600744121215360870105628582626734631584486595519199388967611813580106657244566679549610859821573427533531507437413001623091922873133996579211418777682613168555729018512377301445388964859794159485889886588817457747228569328590867555637341832336759101612056546256598807696353986744652121958126928108702360047337044753119212053647012208151999611350573229429124733992609834712763005665310110969391296045669702393389294117150760786603287587489129482131373319983894931875633571908705288588550424429724608863665369545901092796391651856600993619310547943090311313164690041552391740247111136786530839416637685706697232031430648146713996911733536848458316059342467791472255597552765164981774050986806959184215557217753611096194441209232832721761736140854319676494008799108392908620951510873888163579230023892484983802906122543267381981054967379940851844116650904007005655215943659708965584561327102030566976484641814092915887336863029143290339715056169832218269189125563941485630153336832309449713809605391094356767389055192536983957480653806627762949579625928407585666797961009818916452903666038809399311207525934487034794450931048362608733822207962555556078760146536643577656919271232940408474500563720293432223693028275326293653794705284515503126635435680960211900826422242442636229204847717264735126023944424645772489330202214026747365916476099371194685229113901178425881422242270245463260299727299826835805950134863498096023371333436626430781394880410866351460521987058754641548077695036103559673997012479303508893481439230679513177863436453264991935664103741257206524975370464823546653410154490990866234547982983235376809861911006506083175956091882523079686177734606221178265346701531027758463540540764292329205510036339267694814683024621569715428571632352142262830262575932502455424523064726372647439172499229278772507031774775797022676708838566014124101844844133951636992867835105173481282426605195276765060073580367854396763271730226876257460589797732197373654752283262268119164760677376828810809959805997368836050539536582544380115795767260767527898858339302666150579399165330468604063472290956961741105521680433124755335732692104013025794537855385881664637951934021860642346550155313640264224847063378907182450833582227589432537939123221684478893860508923756158026962862238946186654559741495854913527799954475897925681751474514092357310675377583758438419826852502624514243924789331427567069097759546191031508124815863569035666851314325071470957987632834648444984072368186011655599149497260077167041880524307406340716165292555100954236194736699620037679902349557535283567277198609650331161228413633981673179325712336936030766937048115538007873663094516124898565833779920983025968653597527529927798794694696977751336986230914187261738803949434029068468385403765535992204640116077036671951198738148579456110838749429116781332625769479917586313097234160277780577246202265725635717564237965498334111628363717346914483369205006011751342567710583437691702889187437328953937980905573870313857126649147344759064970556796788426935298142416229743623005307424773932693843986989825905966442255830768354751640624647178528990369370600974040939761615628152391266769648500313331331919735878260976191124941575582757937190168661483697321517150169610473929732116950283465311255455670740728079324806174970910531135654768004578085995925354231783421198187698419475632639876277895369641263924007842397294605689560597171090450234034749817472570717915719777193925683250571399798684929885354973493498096547587046156904581105969430106234424465618879471102502157743596186584233637357151770430433657560910841534274943657329634465615528091983161826547445040162100313861873794657006850669183129767607965893613362756414416848951467138343894584106560882062978059354755874941156201946459951896614641973796164757871289205230262439739407432528386772080479113279342355864069886943276121306768039952300610949950445085025163302052862459028965375524386794503525667418726782114649022396003812364566933752779346314947706935801881130732508017115167977915663851967715469140498227093487425602779092620218090339150424959971808973369980221453300962600533581784818474678556265315700746862163892284744571487617453942107323457065294392221473256880798201431416457660205344214140584512316643689351746210084432844273132722747952798701206146028727190831681161615568695494257591573177983520822095991989519287550759095557420828829955680718322458136374674173489798597183745535103539004675112009920205076354565969200101774968303882697565649664498492699678318537974549825861885827184292364701931142086871726407268622212669314176254867736546267749938446863809438669134390831182671017929957830227007360817537239500859131333002368247663141325976599819276617821042231293657514513358625817883848783184859364433923695462617323212496921115280916531517897492824673494552929176784151851641993543975812537449718162418126271031754375606917457265689132346769885472930323838823666726748666503986449365884878869101735373021565669874987790794027325549979943305785546818310550395907970382532465162310880405568344503473789186524616107456036463039710141719024708474533478256334380776136310494884449190408226008498626831229468212749077524032868352119434008481586004608676260149430086464633418760925473337378385435442082866315228076183048771934606795055980877120682021723527026091942176170780192377489394988550888716135644871516156022468102312781853793921982089569071914291332308926459603202976467993718980821626248199179434606019033993827296170098778755488260556477633280684325180451986445542775016598462549556879277583736139741412624174639314324787740723962232855706146355981891340630018220544624269599551145797097061417028149724615913749137860123097466565281587714747040548537449763304315825218532290212096705809815773294830585750064444314181072713791970454592739881897942820461328619895093823512119617093032535774654708089857991761769763491368135883042580005203710384944045536547995326270104894437970882033433942766609332389186681934245001419386133324822876903103835198968773185403351678344140214708842479650041780422235538648073468445422760358344213409215448858863448663095683528861584212954567146328100964853995559212629561713709531971379111670420745750054576071374247802703112034093661649450313691583927984255617247430250328983088721341291357704024882719918492096368909643298173092812664853879148088790680331537460092641965718360532058683635681606750110155064615633256166092494027779739990906045347742171625450055887956976669577218377973608775837164406758658519611840039070493030037249174525239585537116929748516149338160360503037212065522762516294825909953530898265672654699586646523214002043968690504577711543538041068308980032890325708843632516491248602955105222481796980042214548867374758099285707154259658875211901046998894033840580805605358306692812252439617587179078382619007388515467218190051277342241706619576674542487184110165913492763974451617344331548342827307659143438627335706987486795080740901669627284226443408240238086995623720987419759670783537053572728363548021281465745952632109847325191684408802183325743643728408347140470884311080358678756111281532736017473216408108943920597382319374079284812654825570056260411045454181827584354063777784826676841872375740145313391558773635924083585317982253101128841944089600579425722903698982049577275978395211385753027229593288514185294743705866523837254794624577393628214376705423715311929614604799928586126147793479715505519553155755246733286761874558012020407883607136576784497865363207371930893702904667999298154404377603541429030045191268111811113438647304120516144779075614262260964953221322498209428214893199418264339712924794703937017240920444631510955273657033880123178033024959072782667137303169421557548528193907229037356226975272526410996231163993802095858745041563137214321539084779781794840321900395420341181229970836191091048819441834891540845188715862286578645518009246304302998241650800456514131942527920584188785723013616993006776305932972112504763650961908745844975904113630322418342513679254179382122162085789133222415487222858059018867006679382568599882968113002104934349475719121670061668142245105174085334971888701458788625681932032263685911859472347065087617963674534001193582609253696902545599843505497833289909024305097404029009817306393437782585998542536020775938152898649675155322714377309436115147422956923316957342851685809298386543590574912574435160962221630972022764615497537043125957608676573482235980338135744515552492469626043126575206546888265494910668636719906223104752683896498774933885917715021358016234144191223605222283421060878176272321602877067446390488455690583612036917262390857540355883615520871940632349925023798820838266462170248074169760029197962035247515277480614043343852414185193168360394140804697663948741879997701237722926919758346627105200500374984721009856231539567618331542804722528491266945726227978979330455935176094237546388773385843175394120979489840475420755608840369323177921077309999254416924070058620741151774894120444764084824623905127587681408812463979620644166773248532677125963937952888670775225316876813768713836643996378178539781732183495308217425649229643733568937846742733223791381429726022775804201117361195131530592537287634850554047410375162588075469011311334877347880619271235823923407973363675858449521596807661971812861415849736116683222981635477670143425932004381923436111853657398473693198079608386104705041437691720499199381376343952009936185968702553977031069606210365331683688843054192310743395989796783665707308987490188831470262495909128423046568594714229308194089286254220877558713544638884734547264128685179833947807044000461919249661736408455256818700133526517749198943788716597672511319027569993147772422510216248758817659798684257644436545554276332979914099803168450393016202230767639829913182001801424430108515145839017671014238274201304781164347459080490463398645328975006112762353726182110030186809468909922825876108739040147103616821808963521431607054123072715423948909227615905953943081546025727900446733382631215126991274913949930947405065554072433138201799533533260693579093001925674171167086101370697468089135050720240377748682180485647609795321765194090026741096136201895673205008446997179287795814439654313844926809775794390364693674127894235237292007561258418834139672671512950689479212380490656403160101857910438641842886846110761668444816504567260017980082590483104105076740977467851465147707597650684479649446730873911372951069395614457655556122674497515375109733241210657823248750083624390344356725452612207321034559027796155545200162142517420148041965546895984915038776372630438468188193396101649142188833048236374143882389892757415610642218352112631787488422335223038179052816589815849635613684226243130297625699932699249223253730074681751103329251537146820227904148706033459570358661771184411151269531560139739363508665212915905941646518379045052763767663514466618540982025312541191404693213870382337940720172343369510469157054884401405603743664460510445578083511646117081607989941017337998409307226642505218409744762799275564194313235095006718473986343862538103286513699379612443962533669133083993868744474247791240840490986671733856219821183333285108632395602366992041389503471596396343950241186792528522200007139292986246006905245782251191957621960812056065742231067657913442931358263334742527439204660941797818534391776194609451731995189544591701792977796007094315796771995532909667104738113400227042153378855800949059435145686456815677994507309160821056179580308189476678165061748243189542999623235239251464886327984320538672181732176541043508849456046315053969303191134981182233443020720233711467944726081291373959338096819701247017855183322934284462443926121651449612326682348624107820790722374011150520950934512191039363997060705291370973687398031364939934779140093656854995231180362578020073144703109663528248728184378630284272094948248611431734367674197624404139132831185214365362101107814083951852088351275992645112562286135183636285309060841541625329784326471182872636514201610537226092736205003941597095686001035439447998983901358800585161538107911088667820321267622234182874413806015536424589143912826654836922875486562396175986348642642720137702740444539275122603340733902118326406167767611731783649350812549148858890804359242451049427767520191946914418029899601649726403156872187099891913071708927589316104255442752373697499194635295147830572607022254146917765591009841237870309884588204867226378688761744380117435764468618485958428819544831580777330248446218239319510569789548505076254104926700068517175884681321342731667015796048434972789063937873755316324912248621221051971428049452011239694832160104029617954079206288620175481278613846662365196177788404113503160583471650910118466967860468531230473319014598809714380091523858270747256228268632853286396986493711357519584061521824815761432100676428191792788314243006052393884720958375254642812865525532263806856806697548927791203035297002343432872738698635237399589643980942117991260866551788536135222656516657708781857397545003808338086106760963771067519272230262108872880499691593980330788660172010876757292831928197383650540035429610457638385079431542283072766551764341588186498439251628576973091587189361764452719937411073057377629722144891030297168315375060051011073456079572806153231969653477533067647083039494380531685844389524827375988449733045281738390948895484110238112205570029539442922891098738955889730869229763796734165053904065161218341225810231476774032182674293875118208239418536831259782300830403127874059482386622726119863900317059595950298490418121185558003459188018331144650181315155684980173108182235280957037735354214450169203166134833175857187678577818595456218352909129519836513637532712645115563458823973053334887842572921971403098142300073425237918155765159163693374613923163740301891526972523990308597719573643604090592896407735796455192995331748957726072337965865684604756036651828990057196331786018850785276794331758690302476165936585981369488021441800683486161461699620082929026582508965914862921145782028722267374944729249714519839902233582118934496110779015674384328597719272824951541702208140472407795117463659009460818875631963692877535069701303134659991601758923987341392565504780661663841650370914588955866831843243168229715125079879991692947539085343032233708769985464116863887536778741950720344498344175628016626241140550461335556298909457714954202047942922861156697389190924063896611732271344269934222007702637261539461516112424217866408028087299617412872429319048247926857330911653023666462483174323744080121236237662504642699616656411217308852922016284134487419587957609731703711746695327188446753616884799441577995737414364369470504243361087692351731962470427386421027583965746415987020223130495977068225186857517849165697134963135721002095078901069571351351172787835566562194239241812540256085816470790470629516792050454015616046797990358102080042703791392113320155803853666544213161809197753997209319728153403215590608910333262263706998113654930330842800230268835581478016775908364198538483927973668537123575995810024755300450050976699371020264238370782286747716542232472317973130166914284216583541184476277482212539758339602454751256318203254975568223152699019826262681167395655579279175033145120141624787698664871232665183040236138753365915726466725067135385042651537264827441273070353916631673914103632823401347900470696185330228698991181636007049811260570012199536176768130094417823508379112532532375677722289110284918291241608936550653276268050152846383986897739737654777014672939526808485797949149712190666087607252898061068750596555515168643775154274590207202947707700152295110083057079606947225624673570597817057196309602191266730670973161356074604489789149876859668130813415991318782544088619905591862926824385435330277656900556481955101836087479706556330770967952912349877409608450989895648660957448223320088175443077253261023673905398828352899881949637050730770010210162074160199232921294005498877082979828914398197784779384494833432954939647814247866332173958446366543055592980242547157360343596191490344209760208420639039206544576499498974951217807596763267836352109837559577740614810522732588628258657213125753797215532357818232870855390369531516397597688193149083544026522961333027067283144046466834092737306859325920260357689994396210521306432112881759270697978685881799790004023571338131783251049498978618036697589187460168090813496165288301741633630909693813871931456674030283192049996883086170487756398543830658938874550032016149107308428272750810884167702546052977513910484406581565254109354331402036893837408974654289108448070013597092454406592351412880114610555412493832277094925638305338214218759646015455773771874668462402736511173350763036324770706818225306140334745431955846114672643866534376399907739139446880667744293258828341669856240509024907349492741935224384064600778711127229450400313838358332246955192121335542152080006709103004490251881234405939957336856867701856004214931524313807028213209474066031513893329075076941222663249802510894627495720168672290316766199826095932806820828787278899533086192894723772722977688040714081847471223729660646625544592269274873156949485900119319830932922240527134943918401037517971125005090844740786842700079967196452284978626861501900264421369545991090600036011896070934852782989251175795761622885047839771682183055082513370416898432425421704988515350098510452098702844251429783546918050199583152996974757265208034554412038419614705855808074136078011878066906917151177786854267259805068558899515533359401405072845864479987447348403900102827772713232303882124540221733281163772015469453444699038976846132659990193440191045063437148898167497451019927921087482418315194360445486846790917196672849422418162832359217453847005832098875433118849544445519172784045192483537795930066307242701262818525736587991329531055865203920026916394841781127350846783101962478121786608841783300111242092365384641268064953809169962175565037823565799091840578852588690406473617199952238686099443055559221163259600053671888720996992115084622836061289817321389572363519198076817624915397404238644286594046621403727856441416031818395246414547250047090685408533799175312123674833919180812515879286189484976831261314936980782287600553263830610083137950034874631446548654484730196779100899850077986878536991847903907009868196477564927306083683671260332028716087447102842925079004925372715723637661955826673643994849977659562375453056765473901330766027160138694857877026642712686679181359017215475583454569907261443196259639686110009738938452212897571487340990778517238552834028946349171779512460645139956610774362226919577937857354846204720891573687999216451834646100691379388906194946555875642904295872218822580374926504234859535736600806490937696709648054411830865593641474273404449885823577992707384582547985748019813763368994714951948376424282924871985293380307665048267554332812276915059583321892941608043349330111812319313513891468224781906713292343692689457104559783156265841506297786314029165931650856135876802965605426713606285455913109605173992345931730635878313151113595209451643181601940410868187105247117707326252267987977338975964669129389625799205256307633932275002414323304680761088527562931529272790919703580509344338386054759055727750495385885365541761348212640002926934998304938927317514902444095944304459429797156488302845330454213613868405283233684223655214226149510454237720086216186776723685918396552476490713391704511994261304972840807962190192328603703244853004586139450535493139492709216759243389891420267946393114360633723698593166137180751792544245231225487793904691737210234799940514421452430723867597277822708611674167256987519812095330955882907685711088755118552569588882343695997418383029093280712843668998841285603841070618929497205203182228845565344050360189317376297934525325887930529841941342036399226255320350850184765664669086404199138396086064931718594968372493080366473362150853937523880484447461370420289463717874462439028451959588330317908830288189801186044015888590703182351605876340853451541940291649134502580749655194734091655957418105168784679255918804723790965556067063101941969935865548382507749533901423445712363488303523013233980040554904253202479098236626649840564109750639051078579257753141223186042991343885403034240192711447103662169461124749675119376897405020266694262219951547405768270088095066338421030224670601845980555606582093932209266289940536691893388604042791391591722373985391783527750451795019455012489207754062614830681408535385752630094823029756547611385150835073448394284541676412860252023818623661191663324587965945857632357286226119866707064273371512740688893422513898261552898424859408688023737483970419069386563303156973345566524905856319252151440800608673128852773622527792905166021976753291325069639332682238131041884478737589288939054951267811159474684903158012068827144802421492741118908237075973002102994233949073137795220226912627262577250715187447849300414242359844540760443087096735451019504198597936371164000373550335446366842109045371338332884687809842932135797986136748569603059708789868027136485324534675355110463352365753860987035194524662522051591847637315486980487624933475271875602109456009031229962218996623085187150476637857716470902602786715742341761892718912362564023386601203750226252466919435864691968317521905985707891180542793980659595076173234820159137875998511096724870023950042191238853510178286475339384435153399853834494292103669800340654865841514861530625884335245893589870133261286063631797505702711966338284534053776025067802960782017217001444607543355840530341296993360252281464558315646341940179140148181098114468841785194305822856289376424906558332817002927510731829910158454674710207469618294420750467816439300312770483076314486778438540461094727597028243198336450896549410071977889695210354234851561671886822590454708192992216432881724813612982591734880095201795560780286343509195098888725946720476518543175008861431745105649994315375972900249666152898109410405118293803419333062970756175395542927426799832866464152956592150678051460253205171122511942026280182739795958484392929888714201000082418884853947296171815178817883300259128652580879461860644971338444949194049068204487610857780601993732866984982030052734267480560656089681336879151458581208934237127342221829810602561429964014941460635666540347936619364873345556868347374231140110912422510286067618085444615436481424677641297605496115948564001280239782282589955105603031258273792759526650589666358092404054989123116411138422853486436164009699646048080518801198719660040484109181021132602413555280810218966134489759445000074292738317651458850304723600245025455322148833451924064234548708577892420245106474701611758108239688556776670756017003682746586939539509215336585327563357180270023298956139916314935604601693881316305323181610149965395682461440529869478528365424591833052486653836061826452430672059213473821724451605788211372439054045147206372534492201637366049994201112284805055524039344311554511494497428438011162371780330331063445185419966899253490155131843338671853624590799832480474858155776459681747977210072491558180051553053386442605075538762315151373693850200569482360067248267242733257862900954626755191308157856569366195966166570954302004640836608373767364537495600223957151993774946852433648392715380624072290372645599825184077264578577460116366778422240854863990805024187285463198765879642557998972686876834583853362853580505833422448786351162657705108924420524697219737366507102931369522409260550531289825955393459122646805331238920372733842636423311985988263222247108846407742163506800976391132650668224238606670961095011397979450795490505593102133859578801828410611999196795540917590137040896062947784879193212311387758042121452731599101234114595943126179529575411793958478981210546165224154278825097448092619004470424446403306843557844352675658780959655573434322426403793959032077792839630442332163360313367986613121053166228277502782809672770246018427603386867619715716685649752783159641216406770684360021590096113634407728712053396088404709446275747569800499486614870283856603315227801956483845539024856457634842547999677454721072389305043712102963638641625534367235895349276870927917508735034674605286888131402545695774225059881463449595517342780158200020577385358886341452329562234077940499272854828125344877115269356930833820216179578640981058943794145449630112533510426504689931579336264036921831551070826334776471094479489253416766774324433739908997621881026661829428368409531326799910486340382029086206370774381320284437801228362016389822099966260497369231058693957656554017487642160718283328103520155259871562775771055332473639963478399287670916837822925143529128208810316378664756892248286655698375172780164710289519390555305277161144114918633535857605988526589096866364251587111066367475926775355824595077282619298186047378504356753457562642893509531124421754377393491402955614711339472013074202088485656622624071260518792471662492147137404788502037393448769194320128433208271611071089806395545664646742666044863990959430518342473214695904731797903793252728167198764992974076417687008647408372496888263850739381634847653072362227025232210662313100332046041407350544443435389204577057526433154088685043620857177084304588542223404667368102261981421050286652597809754118889755183200487283997229901267640959908051647168848126597122043826179913057391670698961841763024741753947252474688151342718595793144154717603512734634867599827472997199913771069050812347624675276559551357226388993697905707236772008965507310379225503804408863632081970846473704342137357605342518217403657497556347405122377729498755448485134386893487204581473394038708479225161063151373257238750099910960382712718219252164727027119379976159774362350725070627911934237365025750810145384787166201173863696023132548431822978601942857699773707118645528038604013812085507426034104964271303526697966705536797422368813167077123102914231847613530024328206516997387016884785163243485625779251965483532006184848172449835279321909633433161875732913912944400980238475532146989184217892189713429300018864178143085431959859356903589903535357622624245035521569907806279431858923887873588179127876666152339222794797740172576448564933604696544263403123632826034373240849642220562045829804026038427513992178859203357417091121892527157328347055207901875380839539875279499169344391155883628205537273679506451833333722266630544945680825586486289390641259315607704077240243872494506939878151496822034447042599398178892778141530575830459978479240107925699119276380984092612172834993136435016486800678208076102691646630674925475656605546422946030934388161420261657308077680500360725822428498951062553635098253094644596856576403548935590195415993663536344139357222436589957844560388644138110190376991336093077578549216106703153747704302285197946997753567175552829693042319424082811460875106259197227174263281235006324214643629765002533849488721799982930405680817916210056869370206030408467483960003772632855243063023774040061597189281358081076235106700197739697014714090843353305806198741540023744205187386837915885243934686826421930858296949813887931737259100502969503337458553768732197393010133494550922724570495591739284825943312960051482891387845590944843997079086772055933689218181518368805234049473653951676091169312228949329224830020518974839429248595049886006681053519981200422768838561766704498087941223980230972012375735080449623443525394924176973639221407247649776469080451943089135362926416656533825740336231097946964918354581030448408831327265009572030254182353274537860234591892380636025606194294450942156014633705193941239742360421407001402518388559469065635482721831685366305821917982647599850757191038823679236723693070879872477319865071329846662885594293451130848454091273978923932207436983251163857910804296252198766534010749301718050956975298577328988225463408975671343232167367315931241747662722370788036850468326438508709384795417512985390966282528952122596134531538024545598198352170538424486816630351400485099994578596144164626321678707350642936327614376307884602188110941030331504927054139117553080994774216004484468977133578368999866271911265008521474179375385686850336020022701005260961339646291591599612432491616762482021727477905554034845607482896867043537888313734709416028944723534491497839381568737070482101607051787132836782865198142296206605703910452089812717570805365927921488706065773292572661807384370458213311782769291327050820073628435353618834777981681097924279424042657434626330337471465385849774785230065836177641000690311187087220188464090282975945180798951505467342344875444954365845769201104714421160458562659286837064304990803347035851347024459078853759188576616727494787377280985662183801725029136859208514537868184755959763969946724842726673464559163964752274707788869655215740500173286557742528027375871346029938458890579750996378712195536463793618452425851599931599169752185435269968552649610629603305064549772297067659283006044439991358128017972188475273531049881612921667726518187196553323599883261706359257379330845963889318582440751191936158245214467386755297794072593049987550380123691947639768113776775854508169058578494893521891905790553514955895369599313622099933394994816719754854707440708048017874422051961758033045507201469498937610582250281552412904972420943576635561976953449339449888101817690849987068796355875169413924486927970352102706881405843129174653398738306711491777550044847932067680659532389971129827508616236722446940308207863099550749688686575841620409819297420376269921272260497253032539690136154771137981387178148035783196113325491676510896347744220134110071471169469709202905973301035616298342509283655095998986993357610501775039086755706547632053678632326928247611813121527175758780614966061575877293105174190302321848001895598647274353153893551027438252991344555952095775307271061135277907036137362231100756613987447318690092639823221751801255481102234248675515132087015644987522627840026479345361262289118372855123862494312494218317282968627627695444694367202392021101620673425903127417757900607416763528334304681824613302034375041435932446016956658822991798441706003154532533920092480473945089075941164860871773112710127708153221723013396206297043351387993479200051984452679347286215835452969850145442942037060808783642788633950935246901014738329200021881237232381537036438154259497433074718930798871593668709636059984553703350478085989838723819108790447458820544121573143878803702175712551486169735089910818210636651121081929508783831324913029034535602483876622601704543995713789126170075533051826627873440188860735640749436134932314747478968564126598786893237935118276977403558114881764310224784470422587670841969337103800928493021774614316806089212677331973224840234578047018095261523898657680976652450194012762502537239931223420663267091297863098644941876409411443299547140760397041009871194789920253952880285330956099334599701688268795570583954266199293542098149190956725603944907105385573362934083769512589064521967047256552104914609212124651501792017062176929666554127590916048325808042655815074089048170801892074348212654141778052041098526962511101857602837133557919441784056906675942916643747206698942160392769530206464789135910656599915502568992824323990794297481249065584743984098326626942866504989349395981228381931758654728525974264374476030387354948057764395562051084668405541354696547040983954905461384797395136115828663821912979415004836258453644752549847144592594871811366307270477576052638802556336818362708498683767759411058897325729800006586398963754342437940309715555144354151585873272472147782300702831881642638087552347342940885709920428903762918233335970143454845550502976643647453434752211101360231339217350394423655445577835933441644308931227762329529524451317756966923004398800973246194793780170935302532737132736329529574099834949753785594421548963384432710375690872362424337221665451609600668870536555710636001247123274499369759597341500996929277296653093453059524965740435938074785105348403219763671804226621894436215564612627749448226889656312112309569897778138966683231650281412558021741318566390540009062619383269270419240290970195428101220627841855303637484157540821667580788897772139101596408875044191385141706836579078452033152586813616202353552764687513277773218004776452121859116397607145815982545400124309130166461182064601491525965477323191747189800423026656947216923345706620990341487247360022627652684931099939620859274945441704592157687025053842869083939707834713524230879794265696478409883893096693670390280163967369195800270533194290558434566893258774578672851343778057655822721366259126858820100229705089737267763370204280714775252697746407865989269719432167221715540200840750594596430969952361592171426939029909391242667463314643480963023821500814810908941947451878728353654843275530323202284237560709908158955036245403500906523198544692496771250226133460643847354534934022949998894921261317322718108869023254955368639125367537294643762711475421307772303850040004636599125752533217505744484364552091452085162278349720405555737051977498792167859385364394180598784901486536378759730106039125229781099216034211960923821712526793786926023502982252125773091857332081477391771432496855288331031033264388450176787290331604548384492388308265974770542506138282206604253878729217581052283421481533826689467109205248881247390479801424356861991767521087825251742003747203293372048448898977693842988334453226744635516094413818458852366405812717011158098284047262210766895514382557613274931487872030944591376055030587129785191533091737020391020557604411190143372402721989357126826093822770066758362895364799220601379383203592926893952987678106686387836954331611794534471127836419660186137757293715694704839386836566538148940509797177778676217037460609857936772680133856312910825496607003719406221310483816748519815654620485208176931563485597674544600486228984106626607820024012706126599085991723019236233295914118342673979369276863949565414891902588770255217618169529974605568745171429345637830767997979288640534599883068256190930381365401672438781246466790765630041026549631445587759371771440479552675759551261603559335433681735216107255143156566252521007543475753908903243550201363313028616259035628005383341129357124360988720649458803470460710959625116603592107856579494485125928565702069039348945129868628845581614469773132433564467337987767421611106995158670584176794331207283455791407833235398688600787722933134597066422340916519889855569432825650425674855326389630159590292289877071410292987416723790714815207739005347392199923681417794462466831652169944478146946118490609694870024366292976146569871227317777314985380377660453674445098321047747653794702344554975875627844955260912086247549163426111513947214614417761491512383906000151524583982648100678045410423698210846706640615944062561631870394668871828206953775013952982458655339937176698052800614924195879072604611545198364442069248039484731374636819698163603460176153830728538048034968700254508965745825282823272784069849453248043848660045925503517517813828981035872989685075235144102228785327014934752356301159674723260761772058910314979019074625665503048787380040100620912144443383981630405778908262050374044566176730182713972808407462240114978575379231138455415575785882124309869793151198601695178019741112907365922417935758672594928615716203215758957941198687211559128346095022369054250119238007373698186494772598926641986750585814998281079345025819691294712234747059800141614337938611835602218096435910095262750388757043321301624568381415019471983648375924166098952227728022267103281032044289317864192459636652738567934974666508663876613175437289854769333786750540435818243357334833849803029414941959093330684218665008193378961332202869274282248025913305799351721844504676776344794319350628799897916382519089213468663676817765732149101455152020427791047506790285045795833102690508746149206014864324999138761196794199745789920676016046123839258586336123838846992594814143177058898175397221067927172170885932896699986392184505514006888867179901282571082055234148811671857678681133459871836233382085616190337354374958301957382284836771218118671293084500464534636909404230894693970799924430589040269693355663079990304892963687838437403979258369614396139420530198658056369919546802781870480722891566039284536210898111722341247381748125151529235567540917581279629000793471370021987509461689026347928338082771479064859976910961947188910069618656176984670393859222381445931137673262046220601414499632919607053185102876301354422001979076942400878844089490264701020921536293357343408895367541099634380894375386888546199898740347953688967629385861453687638331187073945980252578085963755246543678445992891294881568113433196453661818621525755458214192778751393506059114914879062574408614457360485952916460658666329575470986296497360461692588073785780115493818921896448351774429347547136289978933586958938067485572435335441464510760072056237361665847650272900074712351283658608884889675127249716845949995870958431347028195904320199979390414116643541544162594613503774553139842892649510969003466643564790019505507962889227721948338707343777373075531374856025859162869680129463316719008135016535132244242765282331428217868425596906345575303157419960519678651032935250256409474271719296456230597832613851655108262569128992095917484598346537345016058705917125467130218458525071097364077174701060213906690798227553712037274184792958508933261946572927650185828776699524831478115582974073582619551458832717329468121699022911932585377368956996425098679371559744783195194642151465535611114094667666286532550758783484284115258289961724840705835914824706224311468545146201069255541138775981106545882579589186738235143992398957705502086253839505314031009214638187775289950448513210928892560450476806356899318613641579195339596108707013908091898488373282626353094911786903482395970508145752156564267661856170396906085143924784506628815321891496382997300320292037992283059295880666853149388434305249473010139396334448113325824314815214624680256322564603176325271780598929084142157076413666321804317307470420025788982986591039676772851605647739439781167959940548750852214825176481500889671186705677330534612283622658104700351160958771798603641628319998106600061696286747277603447997402472884174363957432714768440403400549222446258134579857169793236991500379927296237750487549013795932945333386312909758240556200555241430537482350178056797857908682336915086545683459052951231916005250513849283914891456119129207241642235480597692670731550631028185384970199229893923184749201853425214874641725401766016436282691365734661884763654415848781718251881822852894367898416528818231712605673006789888679852482957837928770293107377576846752620292659215776147161555940593795858743551234809915481171710640205260784062755693404595643396311276499059213637421534911517375969537671436375935213797660468163794873671545226411942651680118029696576533223868205636656778533262627290624859235624588129398882246397460293321671010371341701799048147694970907599010528414141923124424972851079773816667262840958951075448833082379526361858051647384855434370187984484360431557263905954379712684566989044023206969071728174265032813464940940178071399063306924448880941416148889904196262651792229391614376884012911708346713836378081754635318459584524576127480618510686338366800961726107482876282923199230080314482586567483393395458374365164942436976099572400046878102945393659917609305206172530722841218574359662709881699025377717424549052489179940491198922933860598001152990632589598106146721050369722466512920858042476431125956135117315923094146103908596227208626372624442642216008936425566478331746802675128632689168821168382827570601219517659862470906221309101981263736227796004346271106245139020886979513351022234113984546218649955012004379997379144063858642029632349447681760489949576664272060924786234129090315763214550224223130080179910598427636532438803546472058951653488731790631740652642513202545319324494611169235227185621845066567722762967422838854014291824608509024860042455810950770895555322321756509269574694486800055199763782841768455397535062141137201616998104021587057210602166338929036297853111749746152325593229711418168597680141260815105633133555176012947302375287319543753348807994418692189208279963906080110310814803991784091493796614735403210794817629779657543617510653954354786154144071721874174061085760157439339076603283618120220639304572459847343547562680814978609648588880924833499378745206239186578684028392838967481917819777269915693021245367347420275634851548176152331791831400081461137884794845617548748782026470944374673809935575515344850543095036384878996277838366952521573897736098610450566706096874135957581811452120462708332163527626376737943526243573535915507482906003073841023355593951735034156442937098837533919596181142868024174403793017592658865180198651501012997891954556996017444593487131333891190808618055651604138904432153875094119844629145882475309002599575779276697187126365205518884651977349037697464407484746550035152722267817280205423922294379895031063091459776543440089466658240319567409022118097447379331649033939144948571858697971615048659936953462663624585565223936672806872134033912587154035608483021184947459056687948852577903969928849530745539327674896452847639738267690361536438519066387708960695397099089635870020512808308041664246916171633353776713696448859208506279109985365947885887434742858937538443952892470847366757209530844806959682265828256414387817301084394795700282379591852028006864272520623819031391984774120480254079988055632198770889931009275704334613480896698207879501355448060142739140463406390769120575040259636159438466632028909501744285979923352480987085891276970953690884184611762516620104935392678406789172056652618030252090908488385256508771930394032432563103278524529754809762984202228574821172147486372235914963023579417308165726660353708985269379860117344571848034177027029369362344526904851884331210291038642397654394574941937947089742048915252310934829604157705073764261451212606147400230866490634483674778998793285790793231107757694231472801017403994713263661509043478509333505401420406173843307190439564355756835344989224720909493383139572104151872205591524825675616139201466690109844904124578301985498325122026501829261317084888229929242046361517547216030260851752655912620584349428112535900402610490051972305556081874240224824150545956178350402793581669015432831819240573928224227575255812841285920655397940020994071520361217355762806183206639659361508766903903944864689931056946322299059274624126233807166153095171204237433045961806404975087848640661905479134632594571858181760597879021004039727345072930265208023030132388751686363727061348940659824021022746255355340343274022047372526362141099147776478526841060696419363154683663986722325238181762843550969644921948934428807462191195042884324437414757359999271070367390629943673920402446784725624131543419644052516745360036950515326631211117292148802883246319600919293796116241604913947115933456889380579853544962191357386077758618642748277465215785180064817483569348053877024152010909419011491835720762027828219100438129897074796752474279047037785057010895191750237062448221373579557253893281603657178460578008316180569301791340411207828328999108685840616135492200250691486449179575268852903505813141905744304730562024860780353636325381328287172339212673320723665599043902467887887907438349355232924098055838896388478835542076604902736080738360535217228661258445882206576447939753786067144132252472048848158433156190151777413922815457571322297703129551094387622210408680085574410550376109984694514520830773062747407341078904883958872790432972038375460158865984134617752946278174555105588661204769101192128297441357423567978803841707665478253142655422391762277246869792611654326420745999180909644582323112491141927352513345140154897110260764427841362557360011726968357988425842222992391275681016520584272936344669538448478376472955215845825398055367839542314688595585235114058784464579314812518099324750432690104329417250487377058132846458921033397449718251080824853595217770930441911856772575908132474278238873056710297006969983344575455251850186293399226811570930459633932617395718936635868024007051209726908588851795895550609314917814591337273318516080055129799396077030038000427395124540064695028863186757528687102198538369206084241668919659933697983513998454462975556355849484984203831673254982385511077388715835194617069017679476952552500297129411917833480791254679519938478835040687382450749150761764245940651848174699855416348999674072826008339279754043070354710260832432728445014365480692958530929860221378637320500195781961439927229024709324392094713815519789075562223629692032441618182014799681064077069302092520736048117471665898744552545424396871177433254886790833404030125648422227610504769106959186078346839970903462885821400050665725425420723724443591042942324076166644868778174905971905450975854868846681829589810269346327557558187964150324988963021841019323342781757822309779035704667217478024508782572624081650571017854131415060199211880085529167939494669621832625039818522619783511801490645162830718978894728375714551270863090174431106063504700358703208160846084725277443696773458503595282014508086952283144036623467085903004478763535531023492414002881466592878305521038199658495535283762525101410171949753014586977135081519221754571402326111802636103204002629541679830597563609608171974851012503209055482755094334609821146595892609766126205663952162479566541534215699632929120538281705295218552097611402237789293445433596289939141664680844771566696138793716477549928290459673208072991094635099989639778801880955474569163641916314919208347161962788519110947775020975359260401357079271886328997383845721585879960945431408792627353820845679670627229894562261036762517568481239106453272021664216517114242422754337367184573414482662632428026390475776039623358719536337761675166268065244029901266916088148906742188345888223873004179065280790679854570899542472368642718242067075441111043371410446136829298120596381745857643667948118295119163968322780840621174680537006877233587462118577994973066577687745354418442076089647453662032932855691854947579827085529534479915653867166360754427967985233563288532623272908994821065623097311358712982612334575795440973234132554946642665926562063782730840114004405761229779946112808769571990211140655103180908427780970666588618940016430150283241864729277359269645862602872622239711469290303267837927875407243374405664541916095010260280770662597098563173926669671595495282787456305101668001937674226086629741491506135008919937208272379886844172543694774827058871762172671928021966622949716871435610558018321482796070649386136839391274978470162444632411012270980242032557638346100576850590225407210419724964953588865212010068353932326828235777355604209273052542511721352220504494919761312146488294848459747997840756871544421294030081475201812643010838726273809412347540379074431289185206498997227941245825779697320432433626842717235214963085443898206273499955530427296438290612148288339797708619772014305269107668274214110651701627860937976838900471144047103449710581920307715615014956419530878721366470307257996655715603138643590037947268986634143972980642977786519528896784899293023726874636163274249569378937177192904210966719032115537576004826145722695679579973870499478966435019168088730667489645493553349276842272019328643562153481702085711880625330886919472632595299679661721644242513870625422630057529266681528679296677045811923431290740840160484545314378932605484341369200017664323539457527631057226403610714504595239703656520651388703378975155794070720837749698073996071285786651962678778248430237984432486679466177663357178118962993684159104906712725751120830109313886743709120047293353510341296668276857611632072982078523827997653856349643876520941517734444159208482541013524155915215929564745740091502297398213581913905837108372253260267370183524055580600386739644396182800485947438608596611896763841384237814998135333233646016287968740757535377551922641823775242707587604804779459536347159798090894057508570802873779951980989679639696336331438267619126589771415957621777014285158586896580701945694338863005173202988486348658252274288395988175319189335260469114616327730503702174169051588225698189235408343238853370262084742280810005176194373823887113704105424299682306976257581656290858236384496824199566384805881159416793502585206188948687565637685342565554879878941105615572118735607833400216440188478109282002154435415688164499780731412069389584478846194119270988534363167333982689089450710733741477973767727182009796993156223654734944843347663243759511983659142136176482656398551303984269068406534928290540550312159389870598944303897169821655999861587534369088037190025946172166943552316171089215476725352833030850338816798233914733342791043425809976888357080645669855588381735673025596366970925858310364309094935357700183354028170995437514579269382523498470761600982992596809458789087704433621261339093578437918989474937293397127821557054836450051615796600528772787614622084720601469065569833621774574459885337662530773274222191885367077222398949145712495594321815343015923688388063405962107665805533006575579189777391359234727941223953096854446683728322484936033714870061834339970064047440926081872399074531475835510328719338808842505413974349311689824748871463718455932019268196338740262059495260603173756629450511751514812764459843386476226889999988081828300835383946184603146742824859884984087124451701916988879396237405313691851176978686166564732332511076775378049661330608046685082384992297997346903635120387874992088681749831818670085811617084392684408024111072816841429356160813312247289023915698692846905581137761534708955046412294410638511145271533983459530538128678811896450487577714169051988935404634142626293144324869732794185291067859984778645970661454329234253106850885127300279723626565192105023222951076221166369402769206646077536962210301548627687268256676061634693132838807147746422358799793145593347215487737959560817060334304254129622276327812775329711393575374094134157829623431877691726883572068696230033769483375630610884532921113797213069580279715847509804534779362206666648855588160853865785055443712218883080908533257455701665734588266991545392119412073696772169421828829614637874970111517386095608400096782944267726109943269483645463409510043219576308108405078034854727012136799283082530213488719638893377718053168759485524849821444755239345368993255419513037338793903433407029078764935402942536613190173843214408806787771711667630764531394553470951101314825152020633244965800444597747825322525112220918508602951246321867578998932033384010466178639890169479352429490161044628769052933741460869111288807446292472166734447942400718837610344203040490780885622237431004829756871816636057033290292346337221132242318576934579951152319845403880051363287563837897629504959187617109931711316681054239639606910785599595730309461743702586629110777626730479898985936912254421717976202176184761616417702359623910478968364767888319795846279283455360334170619912658243936601845170565905585695586924479904524977919979402338448079374222247500891861644004636754780855164491844291298368864967304513846602251300683890425762238632441274671437059825760622646281211786950547315954872719030428445870983670031872145924491433568323052407553853502406162554500216200529094562810924058871167921230604364273505463382285874820105081554838515487235782213096841458243603923682278848336703675058674150756346490046510172945623621645076042378412315026749736913614985826961959557484237694421530536908607192894042406689452910555850915769204790136442545793839103558648659266327945062753586863729494127979421245980059415448185055011506136301124664720830018522388729605543052879138190859581533870136531969271896008671860497944857347534479355277288932981690496290088768162676861588947767603223849663434849477732165112684418637323596236957476385971242240549631698859694476397098736410790379276050617242630258381099618642918332058484500503266122388034429515685343102314707901946878371975186019404920395968331360237358109532048111473883761669398313890505922844872476680164686937639213002391815882071127833570512606872999125878805277809990613949559177536329378076333299257893295425507063434933813753063514800728315812035304738197237568301172425137334563324703259568557616318655092147134071741189174301849156465507936291810646620101918504919580088632478293624818359436908477650653747946658019844072725917402840373641513892497357314780008462024394085623204304355388416796391378551282632898734768561181830003862364779077158307925498001165043698201971104005064516509268976042450132042185106371116301442246510454409303107396073012126440122404894953562551591066015249627398415575122754129790121419375048636283520776436889373950785394650243018008910661021101171743588185946157503450973922206864203053939367049927457937634880230890468563333034265013716345518988572415908168211853959759227432397745277917563120184078448324926048182652164057168490758101469679797498199735922626179216005446150723492163516050558886760641793117839893899883886000190221982492026761919173461253895729498096439622331798086497824159329926270536389355521703560583554844774836717816162230779763532069605220439391937310714825114159589236776974166865528815109411085181850532184813215365691086157055416301263408837263585200581974960721605107195319030650035254942719683812807594748535610012837432193055657625848174703773499094689091439782563452140229193059035512806075815107036034334883330627543704272626683435140937906452082501965416121314317034798331952040785667379015440590863459787042720478563565216608171902288726333048222534113262950510806573237567331866245242216133154286766945609374308134336573806667931172661457180896832063419523721503455138740477864105275270539768385501074906383476938168360029186472097050417907400879334901263763928673307872409118949241846919471497335160142469965014497638109415857666385574410819075151412423103657140543591753972331012364177120723201360571894250724757925168103684587902973302652810953061881297640561293607798006802611744974023231245902664368066150951699472119396045702746824908868175587822923854067870446250104276261769272156011806727679754140881771059009229542659528343958426332020763087032478438626630936692294035641118335525234283105699117345944382340359327781380816560681937052009526156757981171614158772851592253600259145727223654826366684864208401045703136899442278961385668980737173027603479264973238249940319542671225747234274495032722286201643847465192189035865694924584807472535228679323475089517047614657870340838619675612320169496623243176056811433963416179610689707946455060691963482254620781136178497333606445038836602579917736292566742683528080930387103140264417195185259356867191288561830636386452058632697293830678321861375202786931777412538063724988159241284681499974118192811647348648556403501429090546407114690026974819864188571407190627138977620348676361804959144437529433067449198024048569255109672350989847760445312815744146496806260274439096219170093553347511802603848742927999280289050703713875926043131265084130819750184148370486731581524307247980199640574602895666834785668440572954081004917603018214391127894404375366433997868655166578923107223421580524715251169417872266415044079391843935178576153100506874313433194045230835851543615569316350016295150889725992412529751622625178675424842327995430066746608722410686655168665961260001349026848131308470965466427429596842827955201157079780367064859806691887532331690284822026335173632648836222040645463892374530667377476552291163796775961361195024737090211385722179110204406959649494641095012560781225025768903707258833763966344879023625549093668345292788285518611999809702641779440365575847460442971791576799592618024252077057393070906780706781640078318372143381250683377951079269859511208675700961524066148538593810107194145052507408141388837314487629424120291581753657301199519550021773701024604279309161570479081428368438499674355478209625857041413488218021578622534405675801107836201779306795917386413823538827938419194850746986917171951587152037413673586725484757421037481531730259681848202693786871323160291071627591611552400831129808033116438057462682383391068029215250456025685029095315417941110984572046375327109137724811261744869303194925211171095843846651519994102947843260214717417224048339079018150354351070891081321238604742012133551420187395714347250461584431481634530526063319170047902544305081066569600667513592548027687840875325335234038385383726463254955037897704007056940038339522869076215664144676064215719635904176485274480084173129466930213650640069217422831017879071627837756497812778695804284706068965820825609164689634447326042398330505340625945683641470510479868602808059143955305166701625981866277717352041802329796681336613882736012837243358612627135774352939657492428317969910521011894779672318866676880302622600232004787412334612027486476495798786924325166217795732231218216395420648752050711111349067860606498457998838705584091059935941094282939212580235492139370185495748371872647946188805598103839225610313901520371043534473517454095332769154374542998054439560976149199801749430485907210605343975303958844349585104890612453862973633248473796626685959054305586770464210794228324284516194909303457510925190888390390263720081406713719350253940579450962222135066294521322447328765640787977657353710082607781297847219210253838495265246766282005469622540883326652798836062178062575638734767083973745667514375558206510408117281504061970701597683312552237121409744957885780909479962249123428800970341358265016608915836961502938732633938801454326290198475799247045820800958571792366694926149971711126476849190404292898317947516342643989954244733767388179317543633136621755150036280933216071816286051937195040849522886624094255986348368445701569695622780023343119575679761951843597803498271595013781408397839117479724345222860410971149861604394712223730950323992987591460249849181100935181055279987925644013946927533877277520531895918106724818608995504580698666335772380864613182466368789646475638649998147149663280326073172904481031974916663703734127787088963224883621472573754852133799130123125837188063631544374487886276248319000981173169631514825228980193612681418423252576839127932909485893273308635411906460967568333817307830541185224131215067619540840908460458050504690148669554701650045795280534385468052914081109745196487557227937244094212656427293729672373164528113597411735889769399658606469578840399425194072776407822095287236800521913815648558519314332998991133653971337584884190106531595081183304494686211567312431113919399677357439603922383435906866710784792062367525994843780282865122024278779105646282120615599898656895785189727005364243438686884528128884806815270970930485968966769050230889923915099931046647931302825499962831607029658804525764846498840078170875436769765579015211371241562932562898750061156227256735015665915973849452475831231707674104718683579388533428979638654598419704267552755183516940100860618584238989111074159612683937400276685151170394733283426297640760785726123944348334053925905041473615412807569425930991939993976923658895048948856914761588236496470125266166260723599674615564136241902133903429485191576497841499096485954730801258946167929848711882786022408038018338861570946138929686818323859879071381235651011447563717272694392535024253759308874966924549340843270596703122207511923342232859457767138388555431483875259348741099495744591928441193518335443603559194706875447969438442265470297542984400244581145746222845605365662503019380260800040874308244769763012482380253121193789049828427027822673083689593374445290286359464690647471221890665719159924295301510252160978248058665152498970735154834768256668780340184635177916998369752818597636443927453715066997951520363780983081738006080534742328382613850556407561554889515289894446704337997566629849352022476140739199275904171914962860687118206648179662327055107654699844276297722107148886242580568013244289853432954021870288439952868952463022986721410393807543709425537226137509344052313564309599754638402132083038997286663098753075261428860654600004840529292962398465729313157294002358940922023945893804635639013625717581067208669064851306589183067282130768413131197213132724254947895367353447830715780611166137416820033895007428637857508192461880228025845389062089848090623740138265227044178514511897095311163536515982330848158868964467000849341558703703106842001437568458419376796592253235924223319003770279844329475992304717019770538522422044505361071091176836282343035942415425739428824640587089951216320399562470123457668417029537889806770771890838856516163491538590448901694407310119656943380423304708957824874301779450202200039348523124934546656123192447772097865816202402959004663002806046626597678804712920137251202157305868169832067897843358266055339066036141385385963184617127591649942726498781189951093850952154658586848599527348570944530103371213505197922691427971456837555981045869912496530507135965790151893852429253192293955400830757638390543367037081418824742043764186069724888079696519124777177773186245741595063153472877754911252779779829714337332493638423175733969912935785628048190222450910412849261809144344148869830659933006884307024852636940580866459103146869271817883407994129574583102825557622697257452275889859132609720894069645618897266240837277771307009385718846293521280081682974116955904161647377920097296103218986640929771559463060281042690850605535943917723822961207936151647361411021628475413692984604000230468171554343762302425265395952351731542290685268260360424296638151354504173539844397369218614857733782092698058823254200237155078497122587623804558991369308177833433326117987005310791169409026999260941959712468422313325523111381346436354277633511118331138998741399664496705887542449796658950395959039756196341496651516518475705023738884513066244716555964235226602490255489373608589233463581254939708446544915275588498727270374708395904256469488337941499815380195885449747506291769207537569550810457723707419933037254515821845912367019186733674443503315369178316701482347906520745246582571980913763856317800540115306671763153499006749131609801546344836090856783298649420132614513238797493196607336337920154305169262775205566811526931184594532591931346831298731952911633416529946700546130666330817975256519885876040763702904225594923778746833104752407767436686151840499815264117008743296975034413993280738048223561031663188895068877659180492244696915896305266940023994144765624919621166789666673153443448680196643328669637153668426818752658785293573699922582868203460182972374662704089861161884632892292351657209306814479294316827226804788405584214341749670808993029611408226724929462291922129760653488651532992368277056984502182334320163873856362784862333799564720361539453266898691500291441006524265190777476299979893527404682336611358775673396747048894624905161441729603079778178520762652837710644361881951257108481529325857666270013025851805671890507810147903754461899695505779925801113103662341477584519879699878767831954977213722343453561896336934678069396131027250440806747557286420088147607710203231877050331423018589245704477115536869163444030735294310487657878464844539184734508803345884444680563124362903823043593624042191120657094219245094154534460366670466811619091501137102263265983233852016948535020831624889070297365842242754607060384986409369886639780989025816996203148653992518821508760354281172929314578702873921527867390144605461276230228392434243117504135682814621635858307531434657055836777823804482265295324537534076317310186603496292299898656750830029405240231292446862820728273122017287498176856924751380056780365810187974873624503528671924942387771361544523529767614928752490119570431226488576688442699962465593092367759912599193027565523545272553519501459901662733240128449281668134277612045487561297091170329694438804276432025163718238736836524378798460481154683304014960223204676197477238393104221820578678576694509731123400968680419837452680836187981642976948970813416456362604925980509075321716691976541538822452540613671224658495946150290530052040862282012518437949774434867228750103067372718087078908464940218742598835268526097359606761897776425195279627008970606167743670704865721034589753026266129986877898434468517299585022198721400359582404283060800838451852419771717408933830732305200946978217787518444185820941197360529308260895504421267424541268624088332192960174763780693501742023879615575422498892935586192982045129173192098389406822574008161830002894439372690322949945632932308969332430890914978596712466648517610158506996153756139986387144217318360670712657661906160752858368341982785148702254707043321420250903633916774285336760305408486073712113947387585538555152974032826163236958139281859191368638875429954463345106705305415918869811059909471961837096354018239837925389735924937665047420417171881780727632108188024953366048601591475718729691019325230356807357463126349264774413236322521547798577230988315719008318611585840951734069765390899811418632074265786970619520436282146690266246421346046696182919450158480048711216495896862815788197955570241385396867797528015284842061926369548868298549306457548547665286500724029746879654598421868127434533685895477936986808457397294082670042330385918274340552972077493085149144625768217401884045818522551371839703641278088463509697154676165645194389328700471292413837836487850110933308742058280516191588340607852673448832344686585565978888691108690616590124389318415195598472748153533630603167949354440236135989691447735783435450526353352465880748566617540624866721954915282496705840898745767990546188053357276487717838388951167394807221609877247531218280898463154448370831593090170565339202401306663631646548261426406560575350691984242214646249904765322082709773463892035901332476340002447335545581744977629836190000800727643119450685306400492442488330640763263173819335115839655454627931861379407641055609336161593630738996270703655411034227030324292674371056009859558976647446617437581875104920095086962422233467204326294916937007295473102176451306128114943371926956294868114607675041405660889385116427823170673427637450460470128453709223484574671694037321666204702047934610017439705286375829140737136475513514597655898258983266723594399781555513744095682535910050332746753137900693854528157192341860660180119911325588547372168187516822693117809296662835864607757019375895525929856941524457426656779255363966842092976659478399971579334674408001471661516392657308628665608560342447513389992727608781032561256078764595428972427425135964290759515299985134472196627990410913207154836725983828275890559117984228623638414342076373030753307427586331810328727840688566689668026584652063156748742127701910068130668188338534181110314404326871432244724233221350661177181247894808331420774465142380754112218959734653033002177560525147627132590219047923843247590878839244813964661133193690221084128352956834745681474676021319720214304445141627860541201240004795523023283557702393654521968468205687739104672256411505639158026338002251307975525069760043617026713414668490809907565429438834762392129563832887316100074129182000446472721404810814840882907079936802282155868611306843851628107131479436107146386406132641656201572130925909367880268506434357959333538354545968975272582090420104905601639174879226762636224046113457823225908869534995636195856976406590389007957700482299779536759716097225415557719635380277393207569868545989568149059716834075572537607265334929944819231678055830244913048209169706170034509743262665502366137672176529082489641087681720890485734419735729515285836961065835859322481544281836154255358760474897693234931750644155984409987995603953097078148024231016725585728710457988184803887515151576477194262947162233392949907520029190307774050734325816127486940241950861927848757838544482593800858154085919425458598226206565012340592042376515771729845079174189453746335271629706206091422597432554482696811625204513982408702043337104252971935670716822223746571204974600371661086467361192874097138084522695067451240433608773097945451363649688446430011305928157759929118880888575570236517779315577566782489309936412340671527301809805288358665819654696930882527380416067038837907130220482833584494852564896996852066516469618086421105297227650956321507022907422107686620731831136817743204791970497881002444361156005507025798470083246895962942971981243598633152315936266046284564245707798660871552282862550945451327803214008701161134907490248837759702361953438749966899797527254182631102423673181655578479813097575385983598196296516984611973802810810209931763318411034286981858157459035140413844765466587507799613916472519976964297788687960194349489716409066584930601361818944287698769234196014827679822807864081962701466560126099378493897243244449695662576961598306459856192167212520418957259166855425667373110242846053955414650572873539462145828911170498552530410722043870785510740643382072983193746665547925376618775079666902023510805376665373713346712964640577254801476067984929942782569958718295670976762394621269340244885253058405642291813772007357872492930702200146205720794150129158440302283301460455726447399033701343009191696335876639739593924933435256220705753530541188079165727066123670665400148493640784170070496863153441889096169475205485351113396852875135405180246131644089877545223254375556038348528060119351446463284175581366111067302680231957414654716646767482086260322458861217667285112483481465899759880855014960784882854491312654435711407273184935131090648405333318942485089989451247732172898792389361819121364707721059831050559162656064247084733076656367169026958779933759202914977345328814662076945301932409543177909844930165126870907059272391410902603570528365901840874299816330128553734526131795004075230872688323248182935759179422020833392726655267597374857325698204856938675773611930740080363302135153776676697082748979307127330648604617792167019628245949995239819320454237794393074387660868816192288655490277660833466428563611071606912123137098434728009724397555736984584982861727997650149184706591568820685549384690534770692866447711189288170970765595123788324760064351711868063829128180927869311615021684853529580159533661745917978771202141700490781820019996606859726786057921842350335207097057829848686268253958523649766025200891366149140297912579558134527272873461932203508882425454522678649469330490721807838594003526301911390970346121821651913736848497489904081525306871703094341700224810010252301708968631614679180416766172115402657655407900043370656003049736753018397553178676854502535661635717477575373038657016355688122955831696433138410906693123150834179755664715754189551978001130248882632694254834057125119685482172227967061133019380982490698019590350552649435902342936391676794868531455536230305460880580522453236457428560242207401921582241263434076115996845745881357338601500382801829415429283257315761566918401700689383654711943803691468832425344419057916159542586490566939797781367896291513200032235313360423555135272322211631262681147040971106554394219356472144153145475289628418528450538016016707728838921197134158248519204960794028486449854076412012548321028018846239655989480804787826959001369347858231441465129782588438236028907055127350768897607149006142721297848574926151163615258797605034331869216747025102536783285157808201014524443067088005056915265894184865661461886809696535042526564841019748076547661344686173071937413882471320095034451221267643863149312481375727670957583412139118563642567535704118359530858848202574729528685114817663315575762141390947733417506149166224174510938161314212061516563101769247060028210831402603150305652722650489388581560712371642322005749559675208301123819677739715403873837248413250059054543875172076297438648993375595769572575784221768008754750543164599999928096934957234137628383174890156561725647379737295652911798703675113555084075411889516327014964351007797785239219626752278763900651823563249328279720971642065843173753587273810017433289258820015082734349335430433236233443279275058352468834002052977520874828875529443272428489595882504641204393198198158015619753661045055868309426898031065137812023833882917930308710412972545453960804365080128574201504449156157259154989452585852443866714424096457554264266879627174370730449917403890699579966482301896928958198152972460710368445430163821222061479158263483774042497094630435679472646378492017844123214912231410976488096305844205477919870012353346895299588450454836987561333204071589911058547841131494944543146273280042513138895456398212224293996674894330391893733473018350801419287227124366849739749044562754800524062432037582953534206869928058108558438776192443068779624570846379477898637752677532255669454719579323206735239807865810223854818242743102509276604708902189447372425552523857559420422073044386996478903809593957297380723192059128712103183247312563520094216560352595997597557074477883176045815212605971311053504508269850929518444159101035757179513508647081204770091026410358219809105967788784178422833496163612136680486991284570868759065046021424098592049170599049065299533767893320138367474213524574133320575493332096133509447446994869506847061802379869390026124094299301700397042127226464045244023090898448168547064707801516167714754186253180777001624569893115036917970779702728654267892973598566311990321979907391921670915519818616705801529113086814575460165878255639533607335339178121609963697927585384914514900042620078680844539942519047428250253951337615746585908898456856519314728020465182644991547597667765807352325195196612338071854175554348529428759855708888100619393114827543135462110177804494302511663570190832217709742348369824618974937749469350138053046902602037961695641376676723162086217421604634851256002139241674712018816874825041875397974639347357758488347726614970802759675847178282863772746444945113789301957956168982266500681095904988809935341989024148333670556201952751028749070689140572990706612213065134846346180427486532505268498364457213229315125626382877482187088966761726152405259838390071250078295050916173223247103169372253223725264159637933788822753847160927832941706525649004281617722377320323810755129114977008333219285639841951656055173647156292049571669258910992808827193907286077761332888874155118239723743970845168403455243330683724192076329579973866179273185325600188445447680951664027842963387506761269367624925396220240761293494769052828431291424539011613733903403494948503570366240153137366387270617446668947541657823132648278374127353512271019561059079738852467600105138717179181827012775152176380997258595396638425926649565370217954090214847238897704602215011414585276578447929378691766775299459433199288586188761314206093342227374232598018185480432064265891792747641082259964396976275505136393146653283009738916997976414975216904656667152062470548440023812648338925009823539563805104038948448208381721270372773243750521911035793304839514489800151749749667006185497306395812253055470667023383598642391759301335506160369552000841543276534494967217296184118722641498550671990148152270592851612902789023339926393352785058541017934202809278506743936263069424308614639447260451918904307169492340466419244718889712792503803867455814364598017685725929545277568078505230395813118267435576285438355329676153775013127562216716217972811869767808277460703683284679806279366933249842096068269932132261573080565855274622137425090522961321369891129552364007789733775432724800009127292815543164690123439231158234183838514435776643904509241794986141160317377043708710510846363797846257762616967337677707352603856283184735187487458023293140804525374919984513973869183714504384357379832019421385435398407736084271365319962130330350059808387563520456964977217923206141762006739453650114769892390264013409657536330989202255308444948350968172334383200347409270366219177138648222851582003500389579631662893915725774064238130068555851670930192894349037662932721030747327015294980764538700060125140420100275473516807361963783394565838936880772242866217864030086028034024037194980877793500431312357757745437805985502601672323731058537347836608440668360890200568878555826319889319880417601005620953492722125166509420784616137724093704323512732414466677792931893382396506182686626072386664700732118767030958772421697812236960924775982614630708138849169792325568206324175554136767700660805514058623530600312614992887334731740425521051512686775980400194040919670703169054510998895773643639070564856009222171441676121210806392813749516301526390373545176400472007917260857301029005568382804511077271167313063851631185867259355837296799282275912619004697772216723624343259510208745138184223420895872348942127748213557227553863680154250947143546071334665217455955046074527993698078915420823144464766721498145985411205180440261631091858084171582691770991687666671942641377448316571516438950238636900193690221129617158434613287514277240780583089737785318415936691920514968625167422357338299729139163545740830657496859121016505285553362385531053435002736148841305779735465870212045250097184300386464502331232714546634739492532423565081033005574267041630476083978673810548541757019984748731718222340359126067786854649030860247712013949674948102576247794173300436909313117100912254564972339945055856312175613745058117585208830712527750680186755360571730437672956440842559851787786140012551709041145841981623825556292784271700499295846369373320627901806175977921715351109475201929090864613233593734004809363188508788494341254126044741921598126300359316493740144923884751995609831008455337177044605021286460526512043833576993346224019179482317141966913822916272332946372867339561655370145733057771582812402523710198706545563178384081199270772119165415465525527719155262580396554823374884607860402733173675296100578890168854447506325488134284251105144342578328045197402587135310738883917363113117090437048561969300003069153869120895105889024597704604735882689000604232644211210598789419054381493049007680787858045323624858558796534572693585365447677773214221044807883428427239109858988351978155875802576631369044219449765748290638948154178623500625991546766399956992784985152898888159906036752566053592673357736652828191552436235438873126928317482224868580682964867118443629453035897550101422525945686902219007447837287236998354085209015392257022548529950289419456821179104803640409559936023755878854668009601604269466534830663589016756032979338568787984920579944288562230130133174072403703150024153907307889406663893835008751348024782517102232045856744046045066027290678819894623452705525544834802357105822927955845308385239356513008044386849730054320337659278568504525299975292557468651425552066328079190784516808371491480344105589119112518820511237646720191384021818753809949947485685855911927966975879674345526845056544888087144890180259159398647939545028740523711832496696879197550797944623968458476831748284374031861392688186053388215280347559131049370736738479875482748818456652427909271218567795480756215419169629746047093868083831593284479094097226960463110406880000444086757458244916048934199715582670741281602044606771714391581227467736285947798630439173132092104595934207252995769480278454294410308009560726706244691960505454568408589004883756701324289570559507101606121971081509378317067505773994828135036996755555510838147520445449642275738061319504693753773479070712230263697244718776695641679584511611164280397654109376652626971939009935343889833621060301484776893207911166442712819269365130272954435549647193561123644478939305904334648826305830853306262902171126182217641871182121672715205057521650108500562738199137754623552490781197893264580937428327003882732397893920296381553483739709047355057301942005812820618639581596496787491217242868310405724630108492237812669154198558134685965940888932304894352490689482853645670419717717394004205688197666374815391077467267250717037879620534047056743201995040133828958904817798771848722054967460586788251638989128750947938344078478918500321944589209271541349398463246335258374411279829070851163297701573534666698762789386432877285540539410570777207261765276702692903008668861444917022822164335784583828513939798373657141868713432946259172659584835305097375888145079007369034620720723508151256675869243760907535951120241321225421041417401989610230838273483823067519070348135181333789221972053561208895880672543551950484834992523212727046360369596582650099988642357766909432412223285522202127023157804908836563444631998892534890103189119212971188559538862539692804052106717592861619763289729151836585594977137463677765524386772887785041369224863309835587731942670140570000509550372726949083894826751922303869523332262983978599357434351283325504524293525274000744866301930503808723814171834840124695368584716309103882274788719669084554282866044432668755951923079512333563079784973941561667849479590123381899406085243313392973805740867283452204907102988810420988649005980856865880972874786416512424422399696820524698584040093181440546411123930747957986176685276281606817123841625390589416569647927043424464134542846973280293817414089659230255241402069487634842481051251535416014057029159026391317262398496785566116399652329446018537878482891625296440817692305058438187460479634044152555620622530003502009032214868607860024686103299165602227737916577066331263860442463592789097493429021560603665745536433884056129349474143826670514777610787276963767185694670103165073953690121488705623199366787386270397457775976123735358324764682014372852397387783936255134829699949052200388913341960993518955992768681654102505006816059750938082393641203961943255052876894556165674754003116078068988373116258167895225684965837201484327544843657331454957761588467280035083329862466666009910587879876559792848680806959042694016040673069902309676963608531832382672119043352418156323553534837762007220507243134768536331784758639372914369779537298112272913833178106533762823185245974348549292927521783423371153808636645298195297297050415601203781497863161173354676330169127591287454748831778354413942006641277621245783863542958147889609383111415811760982064593694647975110616817181592144598018076199587493618244480865341871628715521978696350547235507796118739569532302616297104354333342112814495039218320646402116206541102228948452333286717047498045936478411990023042432826720018006708767668525471614009851890198314976463519559965810844353079210015457757692424691042175869191496471184348162685974762101715437720792109092511949494554950835419952117303881305993964851805381011540809564813085620228775693643817239395817639195053418047497307230364433790834195021171939311371037363729323340984832354326565565374485552623034325185316368793258926300520447750095651234272509695989031441185014679719679596493366061414401087785931505166478606671899283213085623905959522202505493365814710095625428436348728780797335933925617586684156482814662444201274221782573057203238049780600365944407016657869495082393482666906789532933884770076684654910749092619553966937009003596754361559268745516380843643778878183751994022242181159051223608526276121718676005810752359219639444644905142239692282574318503090286724112674823415831679359630488213048032928603445169607863676577861923487493852063632870207832561886319375304364113222752509027851544678618386299671138055160918005781395612107013892368043532955045514606753153655076731788917796357898481375669454126526545163602555812965500077959105251772257938377649552615620789660594884906267096785261960199359862514482672562475407076826251486735231882359136897938108048053134405370418765686973740320011208256418790662672918312292360366268992871109997173756217669652489994424593547172833896663330077232848842615858873623631833149879953627411055800515603504088307270781181454652542838924869024394704456229782189210317345926850264100785984794097264777572562252242346568831920603129371501985275183725869950261598658807283254941330666319104418854530679793382502082079501048604383740506195195385041364134129109839377177881611482666774209684132277478670360868264890635591887830602751362837368475412540870417669815215089846094740528528482088921031856489566103316015521847816924565261956386004544217006806175567001533705521615734841358857030659150673680969457850261620607386465304819595293091875037882391339996757240996978685247242833936576675292377061792065228114163961183826607617420976073901918304282559105249313063509351723471047554656130072232474779624425351439115736792307771608198773405843729381968359711368212436416357877850851758144745330339615865139485652832086351474637995896328070013137712055750690235277137202549789519391105306343724438790065415792017804938598030103059309319338085563558170203462430080751458737825959999149429867158727617007966636775717304411697277872574898483894114654920404587252787242216732262267802875476374669678031155004503127053255386497845991560647061568182843723600347502872201337938403567364063331495051904830915598798658593938996554650057528973148439200810862878423251495672975931351284917223905059672643570609493011362887793969570200181735914994702255639080373335604300913179024539833970948111359178381174398453072494012054043593064925449489949441097498482014669030192818401083354652011287758052499272939208936580701071773781846532859974343011806555996741133153354352930865559185823932405695591200302354526548038778835914041126428632540015405692729941469176485508690155100192212815584200582370697760994871070622806453793598130701365477136094376523103156719109829840858258863572716371850011234085312181970995683807297739728838581745573725143652879751129009250802155629014478887118461556891363814663316753019562047958094268299524638990834347765241376877376880872059595357467122090227207546378366865356897767283590657688806474634823745381918197755548680676225212772301219344119578702425320297268235403963810085468907663013325366366949481750090790880425723302149960573732617016993899528667746434415470913825175893425774725110691546625592358221627152956774536637926076069963021302193772851541427586697749358936505384290175061369866160850449882885219837381096003626692610492575404478062648987465802707414557363614844093898051910576783560029600300079653063896483364512330458319007716866739263498003017218634095717952636553695263129128345268490606329307093830526534931380556764826095353337658743185535814382937399043111743899352067019759039252712875288574531374483994151981175484148851208005268616149462999227338400594732376385883216858171344355125792245763875280324380422568955546366378050418756617434099832516850842807371775225429326640467275853798187487319631775197706821013589197344386866294464092224338769743369675958478533011594235677704625143855809259913627966645815874934276533775271351834390198928281042894150748929438544406398591219321472770203134305079611448096804469771450703429542075060391665242884336098736781319670865884598265295928237969750639742231460303372142233449551312936589892930408691209459390891947118822355489579092418087084327052770454857316085474856174627107640391099607822313115811955653576825369759636175395534263174907479923132820236753794460344945930569913221037499893372720668002586342840710912888597061630656111929123096959568093292110248526206723772722950199962058967320160149821226320926884474238203452453451678579170515142643815792215409649356109505423972777041358140483496781749170102600930204269237053017076559706697857527193811482103588304730651224039144042330902236899814694905443824306235777666331150716720937115464566421369684656489558201874974856686456856571398514968573101893063008120207430668695411579387329184067146852321237210924092463657680872954018346909350270111824176938220913485134786215675744210258298776290235486031756337188101750429051445618598927587243723772318475029880719519860211052215851433638136484715712652388905310359004529162483484129333971125504730413882678822800217258828680678303234213878597564691288616351140031206119366516301360348959103758206224185317199009272224758748576376865047904402999907566214893058787962127367152771552906136791521862873250934944521940529377125569558340754021971980098619829443481865768784165960737357764901530532351453617516123512865202734075897067559057433674190703333988507775204358458914662303784321318977656319713709113775564373842686089556025610135981212254502668443365172099416401318380333763803680092008249709794538305068786533452255771025669051602655200679294259288693076558448309932486945137014689484890685849380181613383471545304918952636347628677699928621113677669428374227224625545806525669846006529684139735973570822186170443573987300035302928186036793182621883326148697723957817759868580244468681009430732942477978001730274709938755162644273034741415601917173306706761872884737397595086721998516690172382479346633345940484547157268209907590270327041147133256248988925624008733828428337366616661892609679606359960972599717140831031345414186653482333326086409195401428750825567872083588003826660489448368072298522418385852176026643043368689074738001713324238223603329146332085699887078888577739101437304484698558882912242121107273743797903196347132881697603031042524441947969131484518225064847485428074324386177384969530393104979449489082264539176643542506143234546497694411821854833583216980686319549204699655957434654459074283528624090208005915377988561742380771900705597156859388172280618914578713810544408964018009826260245755272895805093606674252117457865357224663538279889825382664224315754720887806314832882197768127738786079459996705923792904138593780939291968879728854889755496119745952293852665012751244616870630406239485216143417996244226110945065222857106306359044563256971130838838091154020564545385239833188554461678383922526198964993094713878132420836990698229336216492421564615243526725761101344957276062746318435179257921828258068965094292054370128736338218946761737158689910409315863100144422734581471698994161716397525312829190486814171796694322128395052008137621592469300121146348772742534611967394579031607201248654678660473332843653821805056134838450687778465953935125416779067448852291564327755413561487662978432569302151800875987806681980267430091613717395894673218219234915977397533491685980071827328020007601588878057180116670646268368258693765858211229661255672753990828221181735337136150348253804541572962459854176260962947938027797924215598640260748125912878464332404160836994464347059885016385466441781836397735461907714755884319350196059725639690277187689793772026592893984653055327385329081941515066906227414018551350749932803088373650559809150727410359652496553329473956984971450406039846370758992259895298096744969084582511618987100013027855485746877404876317389559954184763215804751606970134957752258571193733023375282386678918034830907217498600367967046801800466123085665434371687200535134038482770286291574781912419728516113591253071739011714104607213670130117498538824928762459910011846393565123348334012204192500394526446301465294548465685398185892738930221182387642219871691695049467014773779170085333489210838890518742168185850594640161328251520748336353090532522999583034058612928929487264527157785121153091204810105612076013443929607245917319387391996497751038685250041912686770547855508202793027648773710786061678066184239140054712530188464515677138344373285141074811201024088341474642370652415698884773841267737432086935146578755881965805436615899657750947536918177822106930800888811596551593566157596320786469074209822777995478313614717969791536616874541358510842288637339484127372047311902667289698967723288940437260256574030825168714666228579170316253623531589463870888859916154164410807021193535789954574892524489328272708593795564679447071825872627569175650005309727503488397989253767210066235243242075116999400360956165520968521771352137191236760373912371446508162821945430469690412196044886969508474817439027635971626128252448463056284722033616236990846150459347444048350222427390541618355491546784813708579546046978359229610170117465312946603503001744743540937317534768350475565326085641049409428534341559869103101138025811250249374516743725900039141422441089458690490356975461507442033143298121835557144394391980548198589326804719903471220512370862560686984779275590620219671831590763866721739379674810265784913231417234593606618147322946102103077971439978307221064097126085714984283833206836875565088902680744021778060242407480913746295764426976991240344475553822751085023225383797149509206924578995505152798866420546052317521267586154407591740000165507350061312836161279689033771206470890920183316695251888315995204431885019815867257030363641951590540579024409291477364478321021763781479183577494040334427963422310336805088458145037259713869122178520884819411944440026976975625546245445717999363316293567950039283374012554206986097747002314176624640320064889434096801183830831004343691047806766991866927270044323115760496961837983147999470508598646074785278880071147094681381197001821249710687645313205231494017626991097790948505342367909404745622129914211978220537327263584308291067287383486228930772597531932147905910533072662509022092682130609455344161534612373508842217632421922078984823105817003757332415146244289314903542264765959841240716996433152750566451934029298253033096545007893506658395092885023211514938816000835095971604313502158417986252160741659616159584901130120074976630877258608737511848564977005059975611298378569893286931693978191130234583260076283234155646353451860862285624560961460968822621616775927771253561101058301294136819675559529681406925591995326941915166902957058439487537995884143294288577282034945663421947431401551242730752530403863777458624332788370172627531835269880632726408810917191181633249138383943397149752847978169544789920480174388691977551695345233277414502077391685744261449183558190706979266924500012732129557877793531493863746259120498468645454447296671919392717417421356769167130661451283826180977025263925189242622340817310611001569957619432916143255968785258438819733402032123978783226590251314993125819664387731806700976283153106110030515367903625365607489650020919207093702345884445773473519672355147783331304845929939388280840588366596195610052469356478756173624301473282859202406445625058110631109817481025109576595412877662057496278942213396004931085322732884847233801086472485126635718723842267082901088256905370875888144803083325053417333573932628239460628642711788531532238385827172214977650631078027118967307070088843939313788065109503976572008948117995924559022169490719037330955127414778732705207388483689199647003968464416126664417048160078619608168789697819088381681579311537512004720701760842816766277134784878074900144646943589617853671832836150673636416757658818701922803366885899112184794659986234989069780743086615629815668346907073779851254612998150183494100235874212254362110052359589136224209572500834843539268399892966774943592841716728324248929934039729563957251993143155247655161000975959454130947033992308413051429713868416100975708172639363631491803855461351331876812140518896940822278810751790930488128161226641367937327916521691832851302762477534387122271051042922850598399695816394918692567584459121186133318852063911466930361182914429956678465198207075428979632929238599851072866977576584169044649263518506470647684363595445859829646169640261990544376287190112465361319730081674992496032472075656076901639767664931000916241148232103395451746029357278095199707731944980466728097235574433589383626549913435681721875466708457433556721955312358708939008136767968576794638463988533080725899263366394907793234542418800674851448082462525537874486060906977551907870026495043363382591726838313595020412999427666779728557647880854718882712081587450094250412323120087989332163860094050279197318486861301482479800523868115826182208553436634053645142308652345981871826047863090612010733515537276140771866250771134141623730506869917715886745842888923250196352046369294529108765848342348898557946840284363966140514338496447969825146273054403022782744570534089045948734841699628698821998760442390722133024612006126573865217162911583066284803216698498354079244347048955433035512878629405224456802402065692245199606433936547321429609075037563815331329789733134082568080112401723881726024040457682223416854721230093097976842163839042250566351990338375653441990378884398487087533179002018117059552272477958144100143152278055200894983397075635046866364636443672839540399690064784833635712759155751237710991394388915101610586462132851491182971907378827602427031252384289422897195795523196542031649555528293822760927192275514909393945309149414580054805037396965840242840890130860092196799400049669922109324407346794463413612255411500324086412405973835650453134289782435915859340145380299586489359930220897609131962267984223690832939455153969114532409987895466402382802998302872985278004169778290541664045651470914276284338580509996975259972629638346372631458938541983916504816581791176258651947037269530026409809021288699788360829871914289003663348323708616449923659561640819904779612154224880041055913340554803738934056964008700157502558712837537522995094411860934131069141084780251627410661028864435017097768309794141092122101303123394459809623261413685461444656112920222695240103834600027348343159878481479170260421124428191066744865958878190569389843927334875386756224018216882753496299286761638538367010012584731446559427008704946085942963177319573695593941865184404804187075322918786379477697554433730952878874919662928708592528094926912988411442644335077232099448566000744185686574857984874787294397416420822048860757821939630900263901131524320124009997564944560288982010479930636710429481575826414951619771534362901374782323350542123562556342243015843310548134398823890063823490596688508399080136741833176828780385483911091949751273675380905756067837151631823413108948955376913220904964546323512988896214878879500964881143077860653163974432872479120115772006903387003761915585943349796175578903840411235249328219143076433063609667020130410720295744171569469524659301148211164033383913057355561035501975904278562645564640218038356365247191805686240883512520569927503637754833894436100278775423557253264658945096785383338920490731126695156747705495913208674613747598936451440101364236446313095973811075350962654011347022135544343753543351315767409504130694927096399957149775522369628455630429628648166600964736736362556192942968169123356638171930183337349219266384096693289104234523356381004018805815782199748075607083373804005224335170691501567057973898075274043977485228269891758659948418301146546470203406303894102660808972851598323911633574534442668876288652307172058532332381371610986214924576781524649208060230760728897484068363191220562666519356975589053009493072673088182131373487399906198375969784430563344182571400321843866361982459750400760823256069735150362015868077838193143377568075788035481079889543836912701190012763254974441367587054739241817177957231008258709511098728819394773952833359112487790842668591650606291070990072933445258323039263358923039363820084771860821508892262480165907344769921796383727871407683817376505311299755643135320956614873551451115578199886703057863613620716289357850451093538150386144615278660703202848097976587669631977730990753775045371750879028688594358490441169116698770902301330115447812197978490454062027519212952864941081942418301859400620669155086512881009842593295880599576606724858691418916025100712149707270737574110609679666214275743904249123766089717200765743831645560656298955071113924133647986525038463127649793969825760844374654596017817049545597162897769847330538671216930949189272260225515971071603821676947835627371842174178757541263144820315238232026969366733666327996364199606499882313127879617902542761193203138845839731915238237497379304638158914010914889864144723543337366737089381316419538243448964159645905739508295325863839278988330969349684285549387895089958096297945910572561537545467773952245713891439676492526097966297668857932650678355440584713348712646486131303855911237702769869409782317109648475000245221225445316080774256507802290668352029535634557151105628180348027716093354151541490983031503933954751781696718790508132705907273340949347562185180218513427714218959352438864636110851248626887571091446221213863516133496917550884629438717081026690800123185032724792304401644849405502083325050609873103132551822712131056550307851580668803230640066909292296440280509408793428695330604859385198254482128311813730239921572332763719546244294844972640663841345430594249307493310939155997921490519209614741382852910901943076288185317721063952466492862976727764948346902111623733300708458663379414701086716662441347519818087978934247128907227975333283364911001585531644071807573757592887393881966495468154322923245830626250058992212456836753282306937775503022365230920359974060846866873293932603795192088812868809920049945279197334332913694412874541560505374890289757128457101041149255532032096517111726798916239780667524078245265220222967240312233415332587925250570069318332661607089591735799981346371631654876692662244195672665090465655278671556643327397560507859599245965490630584332303683068420062669192717491317539520232439011184757430981870873788454255397136268291697946329309105163706584921978048143786465383622051020425736702057895061268954295764573701365993714698240447000546983776536845905526491302385953839335653964139854935570823068775328429973733064334170594912691450893660792805204797466749484259770108041907837904599017242664919390431536219264738251578422800035524280819999412617564560856642585673453547857136753127758352203265252760530934927407539097311570764477126830115433877451747821212356430773018521721934068160797296319913129297588811876094284160493343851775076335933077603044267473258505591918101949150017171012275969938717947491245092954596231402711459923085091841115890888439640712540789875487172125658966880615133977698258005580778399971551748919993675950431320038066316744272596956889673232075822015894514023056385585797559272983438054428395252869485396064954065143521080531429265336378037634931825338887084212998671310971034455563734336700120507043198344044999273917283686284123170921335111502361531175928516268348087690774594800755493750981503148149471293176305249816645730619177622465741008759234406110236734570351608690304488371789797172634123554493962409816477103981185990591734588204869687942378067572179749495630067717822221905647900787941620422815837479213981154706572114112652191838115931998114016530926932760073573933894947420890644949264802702638613239749825981426685881118587044287931467196455503911855216914025552278449188395945731309154372657972395270801540583406375760562517724666723593887974931457664743938856492514320804369795123723144533896493164364286613429840744803125356402261147275945420433867598266934386125517147469290157989808772576478851316858352865951421464429507623511563240452670505423168980392548036830401112844377120338680175774177935308570241670861249828286530950022618471282215585119373599123513575364123241658005260091131131327528646514860117860212979211601894764887663760869554190217094359919590498975773590551591223547539393829282175301341456500571036408270803003443702346477115803205447950081180217673727974033504973348969654655794099832924037372965246806345799051495379452853452028603614187595911354131598723113609295030446277126601880705218570230931396426955692263572922525844738607946721774802477491028091956991249827615547875744193634844999792490965363241333778490286642657013341708898073488821896954587222745201912999503797157460251908826424712138124756606342703772496209570207307639211007519443770602872638981076452222650124845963607380417082968106166452043761710636003949200993610408475647717143155722080233697330756144841381036925268030414899849486775005373511814238088270141723365349196575587042295373157173966870993802261613634339766743659808711834912457918279561973933156790862058707120416509991904487596663408807053370349890834343469506163402023895628129686874455629379944416833237957574196049638558048643256807897060849922763631180707007745472459385429716568723795120950370731027475241093238431821882463498014404241712042048419652720211235230003050020230152690976428266186136891768794110721114821145503094672831217273729290748468190634107476458267459518328129008350881277406271342938349050919280860378319562620002726175774164297796035037260848108197657597813617115161672004493066552488301519803280440203875543789239377019097547900537817667562842085906815682424659072127096798163704448682397295962585835419705017890149466943343216655802363821255468518751669228171662934556483053639223100875185771561362916112677574572849380862669521414629418012722597701246340514154587833821670676955561966741191930970054549282431801841419510100369323176990939983622990692414445565401250932029514848892330510563957352442946352884306331383149885798809251376301969499890501693923994825964651345130548705227408798425627504113337252910868764352173545800758035960958727508688854100033964871017257448400500536264405013259392389972274430000813019215311021717240898921833397356427340239180405902080406951773635889156644357254030835003768666094046526173867061302070212207908507492968769153680011961893156921815795036479026984179289391127002465849951164463123902727886798467306475336798132467802952306947263218022587535088903908223022976060531868078709094684242730116110339381020061580869086375967402155887911922917141428121098739972951065711838430460085594454810608488061386491592472832563108401349223295363985978914254278350562044900234945152196463386102160706195053608964471172937495610081562559034361912274372898324702314217607496883790986157361765179653027845038744794524485160262224350427477147668101275084278150754843230832451842227526550866081921438898361039735309156726682003804694172104993997639856094309506725930061617060954187073811234647150167918446263824166643479654251539221751255271887481057694084175835926043201393141105422421217670746095709118375289053133632483047790217175080441692335460759202826663074203498012083261841690350987138950157046368992007261519717584049648515777012768708852054126349686085523817775746622797289644296903216405940334073509127260395529151662364609030159848864397311777849732696104378348228619774148792158396031253855703535581834606852313085023310050567559600075975335096095093639077985273936890000658765466573346138119250205466835949875897123521477554914925753477069756992560391585692252938232752406889833591947419101829518704719836238213559323818237661571959872521103661306476445976813830295124284130923487359154545012526280075074090116522335756507626167142178361092938200933451226835637401696159602998439309368244344226522323321744693364710702386662197173260089669804413098546812384019537379276100497064010910422606893389149970064866608530422126810729353135951404934377345521502088610995930441197678766373993647631261126853774987688040715878311367383255780806626503582434783558219466941846983235728179637282697684477486420335830284339042146491218177630690477752174165645140567481765205106345418064484659072229886610199721253887761476126225139973210497481457740016503099244831157168198155487671595026791144813982732600699819556984033614847904568352655730196240020207536241654602754677937990166253340470576848044766705460272300254170167120407443385884865651955890888683606093815485508384449907207657836570789448411504317195263628441002853093721970746435748147766673472886803766552148282250114820774554891074338530546119044406385807189181869585360315513391199932418342121537004951836462714794446049052298991230140052874841366466978666775184266024265244272454638073789540473430326048685848177692847255045924403578065154393013378755676257126439998403828784964217003903073229696183641587703996746680726790829445330277502254875223017299016257362670108246895490438790191572308985073324386751564881546348298515807071354613419882501545266136223435120969749978986675422487235448376971583349205671500692182176430655635945869185483965646622845703111901531906293220638175310489517655440797654619303079559485285941783802784760464750011058634652681614339515727754236810324873912227964476304041618314113454719618626256465712489192269768220527671536576976443858847825026476611131353590107072114511146256018859808080577010036786595904970266204475417495399713513199608738270043483098251127735379242933378972113358671171383692483502821309257400409724520218252218220565463476435961756458431132021002048374217590217074409453281359955875125206945344334459921029684408854820870614124464015085409871853239590100324334970246405928284333228223436100629704372191304542685745943004275226644935377496329010676041014131988386525226928226572936271915627698896439280086778559645311236233972795444691737521649033521036628990610198881449245941644351517250156768137182593575245344081426893569660817212681903998899043570460369397147087604915311022655753706171858760780811602460592843940829980780099788385723641748565271084478507704161625114387338212167075067645535797875289561118352292513124088392337014568092154455319444581735318766986987023745074931659186993202605970527402472203184702519763314721294673916572456221326202877836422593803834219978449753025932614694937348864141579310810286308252493480062040775978216827787345252327050081176250104938257519236025412867269113892128278498754943061066539181049456604005325173882193414568419345167929795512295480733944330974860967433903762079397140629224249735531917388377235097861211293584290359246812841534579013679951894110049792376277782508408194933878886305352281617208597144489128365477426461145011570794126336775964545935667168051903105857588884402286569990540080830626828457610552844473979648859963410399759286803016326505431076132564505107761953702285264756955540302092811041355226137249211368529020330724235552448936812521879118149048586631979020840657269339489823026564546265515651348070374857888174917339778553151228472748977155564153270672562560174453723361293663848995673200272668071829662535691208691818206738471655510729661907595916910626084782041111091730935361066896384041813373172134301461939388229759750325350327163140116403211819868315837248694963874733852122494678583737189712009002344589868625344345453008677786788959083423264132496597970574262421614407655758420616960036439051947031716938048971898156318999837545601553018917996208104909350122376568281008269902966587231400239256078890887399677395167814829739123910327549332081074284391032470178912341480667200231381243460590132735853271907726877412395043254005510144525907461430853010803966948350190393863168832226006385681029581828741317575320507032958392184703398038048237182514481692794232395797996368793870409515415577653526423256080515374021447520305257470769295847863446926238854209756818049051505730310042279918983931874147130513683934058655306797301938873933802127319327164107326100038820212433302679641605558090867222660549365716063011614921271077152007529343646110482680866134344413754386008154983618016801726808834913507715861970238658197243707241966768908664083441629743719959354909525293805056841786306235142411265636470945506619039455876687801222461552559118153778428493366716886462848279785706877936724069948124539861508832267698384355012059472981165795495893365360004652721310685525362805252826265630050600943423697903291631793738559461534175350078071096837614892042429714986781455302948286094397460567150794423456921451094324680771003415664771033569798859397567073749011467208494337445509594162554304942409559208241020047417060689583094340229561116614716742938951524069317733378403516498161041369988766307642572581910282363613917247136711493996826148418529390155493206825970981766910305230402085327315499142576877703318512629225655142864513400208092579889517683451115416020318695959145667345638549885377557044556163113127404021245303890933647118064000695576831187194895151279938301539931361107076467624260378889164390670427376638120419622520630155404248784053079489031276621047058342540804517364331158663942336914328917764176910884779726635676083452518935918502792352637358585427910263717368463067037660808899766644701780200758101720993961144449495882358385505670690296020483167621282218164454105083427251216117212702403702794736290301978900840811051839651799369019737096082863652442660641924898471583643668387643750808610414475698820355288894569400647390352098790831171886218823785406029342909471681818377722330569475931598265857878248007493599548084864956819365306283749112776996384574416361462092076591842078642745352540421184628783185221679238827305841810475444784894208584399331148737217657080933671196232076954981045881641550907478560769504563957160778573351755514223014716373320770200169527382985408913056762372858758643725978339946945922096290103767242485480555464951383017326433007400417613051516389603940234056305649803224800939489347492534433767372651198569577597601090644725362407122614719196875716317450816258545040515666790754528931419345642121760049230875075199482165526127624648548613604543288062143035318271148297023025053985569508244012773695911975766005159107624116455084788580492213440392796042215455852637382850021064996609809673493203720824435140992534081961931494983867631505756433716323919435757545661741062670581265571080507584840065387515746679709093783035769965557073003041150870919125255292942423085934527704528079889075562560571208397694627169090404367667181451866634909969364197993959818933379657596868522582701061910983854553674164659623898599617901835817132683461041774938584295040751195297508895060837235060595721830242903144771454018995600580411776305154264966308745028809022787356647099574453873567834897315325013837328780740887895430393181773323085000680855828393700362890424570388814837052534378442683714947535599883247666298964696184937950509943269658344243572825964829455708437182113368498970402686975191328587474623545416240039196050835884696632665748310627090905593900072613919852681185793881897864863706268782179113142561228967535897591891518334576838709490135572375505150754599283272165524626156839623428644218731066170378427707641661213407880967186045622269376928320794159350721464129930202866134550504833828779103771481617953544499177403604742095869677202716187635564566896163560336230126300219675954228127490330599721177646431943316342527354905052060552012658539465863597133781493917996630122341341934754138295087914854602308629131450949932861072359664988714835664634293757170487520652378631589929402576941678782435330193566758761417857175610865498612634003059231334969897391694647891903042947621713341994701466718513130085802379421194784355505297879463986486976018391593419130690865362334507803689014554335674659921955951612188932086645591785356297121044486688592883210460805137870043964070089907784873928492910696837713136098714664168418890831304412854604506537578222646263089153457109504910065103296754571262574188719661193877676132504045571121443103406657706038503937939048543796006221422952188479338208836102775438729116128767638772539196241930179091676211585999504250632558145732027337435752948390126845815578825676073081177442455378453876638089806500231232259050068067054377631374972319732869166100814740653266459380896972093218721888655924953246370068575002095250520759756997009539809447136588110226255003042557634133387605080608090465929178397831867156199421938370147115544239233169634647351576597282770751745183569622481755796344615609955777579299740569387507964913343991543184233843762487066371684798753063475768799130643344544056047415346547403551253872327867166566712210366151556218503056082030102176492123457918201651168758863979001341714136217591521986087671797266263962975439352583622679865934309580873935854952065765965618470273560667872542044942602809147165820225765544761281021737215361813254194637905135462535718999946363702788731765433717553725331554629336106310285677519991512938326687056296457840824665298808884266209885925259844791693737926978146307276720988739933366441589696491911533755067715897087133659053232721969466789705482238457631418032226593150287407826763080893353021987840427320873119448197051386013317220032473022200625324263739827869836761627095950601983466077676452157723035771973305185491902972273311821000517686224881384448531010014049887137632016362726732940985047773916437595172185599330114122926166905219803221575596797588152688440190122834837241603668198828588297908642320927820445776761198704499690092410664681470104795941408433206689312675862082992475233222601223516671564147394989594603836205706392463246251559162216644203904451365934427954555316626517186076229724385172684790839867521088014789524894839512209254190544626630277537620778068649114193662788078802653708272467063659939513517341724505742668495067743469778845323593565431526976665670003906263930515038403227619497932607896471938984510289319471947784005812812373605084383695237097008609128728886034516944538703250467071226849089483388771663327023176938507265628652377777299809321789691161586585383407794597399901696021115184778341267041585333727780898124134205727433375858755235828134308222496544761554210226487715481967709844190606392422818662801893142320344786518054191555296532462609166672296101763043731726543017348362352159658418442509023030401933706270716018315918013243797093784005681522253413201681772386545835189300187464759807597397422474724424728929634220834437683996117781917515825400530357980816943494790933709182560760162748185887450416468536342992934038127324548753946221144465674870449731002665035641550435615133520634512954377718667013998411418370863081904377997399160466647210996723703481127220694704800160723897385007020046092906143455451046617264348673808162980613469708674868501782321221080806601434299851512094666296871400950457687770296006693969730059356653046227051672446724905884520816927325390467526391648556592194272368646000122948913155580241147991392321103781155910510372236603335586815987511287082329639275375034736814641224401263978421976208866301722478932593911537475341442033266288355783841088335222241953617516411487949526568944616193512095321289232233900415876905904186615374363878981327191561723853588944240297925921987547897500209012949762202498094748101591540692359739322689308053743183713771700462708729004923351175352063340609750232965352982901051545081470482256423665349638735798667478347261705701888650166301957025892882444434765186120132237906397183224705360876045697675251905060049447896864072429833371953858294596801419548585151525443738910076122072143260112920394797689968511344556872910105961156567462945656761823751966121204403618022700385335467522933942334769790701675684248725438949745351845090306121041913324428782085781582905406020584715209549277412085324179148617615734394959577089830860602561324029845320786254946203790592536763106454180235328421257799011202948724126932171958744155608390230269870201686821155468715654675700391250791349963859564191280690492198734449750252132225644712309486073065577059177911693382540137655449617568561963208858664092454965727725505734417862186572183681031309131368001043512104379399353619619238922942581622819913693631915107351876869127255275614855891899997772287415646155421542239161900664222236882547047875271167748179888794191372475941686152352373998742071742557175268037658245385130103038090193607753241470788691158921694953512626853792579420360951553905734291405330971428674419126248254970100287170222403080204281246420115292243688952548142568535711045262044854873542174898183487582496602074893855878156305910369993776625829182182675359710982505631366343696302829471659090015777113995771850492094573474630553794653554910227670744966821552973908448683221799408554789215202312205772271754732221934075185093916093508237688271232927325838989006302450805260222609019644791167408397774382685022232913235134047718547548311671684260636142654296323192059702842946629064560247377715922293131175087781097579953421123530939841195388106800900011736081740706734016636793229939537978658923058923904930441503458578742757654873528928402139336542045858803241833158692392048874460860277655268348316238211149214406580966805779933479692427694749847444432796011217087850163947266235479402769335476592495343679076360228214410768497773500867349590761451004873642344435766608302296254452403894393831373944906783380895892661231622091042686530095963491902045050813689532599638325944205608300979233730754067081537348366018511435470058923108607892585316666430643666837388693528605050833139414660173324926884761852891231564609513019947413687856289651679719820125466919455238548638832553953268609101689288603878690466974989320889795862685348903648714568353607378471982120775055161740572267316823192109845886195109823372689542469833158001800768416700219792393451712284015779976990055133755392765495519671985528426346016951920448539223425354370916987006071617544091871597411065645101791677482573711869719633451362232032526429818142283547432057427902784215801583481561190586325217092246678464318542843977375398058914522777646016460410105649319945477525319473102944029532516386874533866413475856713688667741874268382556115250569172416292649352079638524294229679752002541577196286467842879387942515218000827045904058906841676171846653312733065759559616077967232696965424333847481198881079557834437112319941954260957647360873845644259777588020444014873735071492832752299880522857054039064525751340165914366361595632460838462912771135907672748807446718331389944541950824642940389364060836592084944459525215291803815081029780480156839400006918026956177143444874279332384893561593046197963649573167762920908852186668536864156051598491153444769989967823370000431860508172455498820301986910953440243986386940523579437674767259856783842011692252621877302423496571138961863805711754930572480901129767221370945746093258396065029468861262955780053509636464545186248915941366652949601853525606247620951137768806350651921696643899115635576185371410174856984498683066209024809540625031492615515673700879246522843597195201879806397913244493615508276237375910139905862570848687698195542881628926280697806806782687696240502717355992180760048740787079102172595453967281207590656312419698548053863184107012636947065393754014106190601449293208055117015245687946372115074889399208543423496465646540847081990146888514234164470258737990631944425374219965505915168835007701083270175889419686521886348343194011436643734179593543442189396961184253842331795738197872035198480444251436186957975262154334078425865197623303730085557295838641628895307612752433096162988309288032341327629042696400921380885864067936627999582147666833504800681349420917560755524815265378360202735045679100159758844552940877685167185116158578723485348901246568730983271052681079074506976522518430290319234956068096900042547091693770676437689126101005777274118022664468147434050950321134957564234703560284123691210169742091853370720689143337264084375695657022976480216921927078462572919079019808898906894146847632918569504966663578854992291961174430357157239247654776616247840524205075299873145861029976844749804877384394450274437830263803659722266721863665367809844302408273168443176438118143436463777931024961259296373740421058337761090346712918023610671035482949520540279749901723401010807247635447925880598031375785908328016670607506998111258160066446479312089226234932126554931066129624886930939711824352761931377774649681015774429140577250046274970039005028761076870160871891593359868824348335989220782084248568738811335581711876263144085364133297025115941449457666091561223642878639618271691261343868827735887176400618426951766386062145903119077750018974139340010656776602383818465796466621737074214939071820425972213234338020959774763042143854031297190542597316710634588317181184958850656825142985291714774968111744856430859810882903242663629643361288292910709282587895336547887167502092552604787221825208303626079568683608534539174713911593256250857429541487234469014686829315275450946983417035349944201009339782436680060727933617079371287747352921257211712264293135343962462391514554331623890700942890236851444229172933821363952334246994078482587682240346088083287857092281487352030152152433850295871315893173427250312044112440902201569615266932993282024901203064703283570033711936806431888653003541567016144160752068025798989280909565595910584361718688842309023432016475344009740399671762870045711971398279336698795065900493213671190668287597669513933256977882047243963560156155063761537192174069472435726971192636264329618405183411598882618804846564811260413573526297986764675529641707253018996036594690828017624175073421815431118161118085147915522679182946216253610571390281952239310418768231935102652594427746193475893059993200107518349722624504535638058183435720796574206730738639839636447250234008326075094816465936997374919654577304423888773672315480968766664503933949379882215458396476915865511845520002747318112092614435884958429164694387684597727163059290608321005434213788214815214024163154417841238932809888040974220851625644514986861583435114988155491555050878875630074466000375414815373038315570063744629588812012126914513015454665633983125156705241903387463276892938918664414368172810027521108731024681334163441591050435279164292211221211517666056877044291454630139188312708575857671750661570490804481844246533378128281045027684299375978897719276944318979987681038395796519089010522875182464703234043795104115490407446514912604430944284799604297848969594854582434516725768393452360005930188740335039005992437598028301079565082155324203080154204607094495391318221449585485971763550321330338083301217482528282148998377135188740351842278268838567661111503807048395648356976587536105402969370092533153919842997483438723383820905643078829101527046257619540353122335114237565498035303442355139512154161415809239582175392285234623807186274155755301364178170831912742159203828057993489674350926217314030625249169112327050643201564893725477667503246273718459636132818041137137083861751962864785880872887040692161285383775531681287752494130818340556220501583225083506046939029784623125288892336978188503867235426588358106545376693479803426046624550850657046515035909299352837836153493353402713535625540843819932617309674778569687952303098618380619283652246846424580209201235614127111256569366208534430773123221382764214146471095352125825332186995150534491224176478408616482344182392244762816937330539144195022215876796616570163630353258043473208257343663253329105913111101637777000951291027027021160547727448769628954218753910567762634210312743329397960924042327684281355909490210483690726763876382074581071758932611124449578620663190983421401215790100623843798906014249586130906459911954623727235467265992012024470802443931713969081210530863129201693449067410282321641174215459287122959793844066863901136631519986693300037864159857609528099468683212603283368962311759014822402976540873786205433087784292049418399938887846222525233590740163412782700735065591311402066053325321091437999973773307115489318160088528910062037416782877484219399091638194294109500082162712913069121803664195344427484059171912226597728206511989180251218082035790544341632503867812975976545420362235532434751762731416456560623704811571432068253374815378988349162213465478523309479395734911056159492941236463031857754858357563905169090912942147966409874001953021400878954850844901138500943752690237953333647166923480880413719085227818663013915170765202414739627919648456191740534816707348907808207680011167345738166409751576220845834441122887358573948948313324522077069096418369953983669895441055601563298408836480954570451853172477608572311486559071767808582709885453919717979440477398238877438770910948936288374375115479068390598185315309015745320758714147411310104772530272760662434672427140311354642082224991243310614020068104232681902383236016732803511420030003062251247508034028170424905255656489805139176929335801045823684116976566897775033340852281518656170022951301583483132873514999471766304176988366457636852081100243739606504772798721495954131948650379066086389289083588560621171852774245268860252143443196652294113696646069834503250463931311595394865082087590430753726274351636660911427427725908843044146836596017091756391021654959757378915595380916041871231653232781224848373506048452623079059507713239874965549501588212674261414791751634732441307416952205091954406132579325225722821161940476055962541064732859801457128068328857926871598903449748648705545795600854213568057566018808248991141828304535596787745770516837087453258102051046542333842862880473782780467994525140781772124171706565877019115554094753832087529673727186218659319920059435860574262373394333112533375929026429295497313514250362851906394436894965989792119168445415678907283323939921445779365147215971766681731266579254748611948281917067678532154659427488333467187579448863266360841796479566857443710512970937970091227290684658717835055017247384991322669465775448563006261857642985617255897120239650410076103969115417822622644560820688911499115977592159881142233337950086863526169886340992239013781528881056482967559409635779950095844344480716145237005162768060572123108343484120913587408321717222290223452502386137469334687890255265030236786878533479802498766105801224803828042809866889956287586571467225758989924622188960204905975816024587124531575228562746798756922246436741163212133194030494010527191664819665465225412595512622483149758395026016654233763717380537768117812340079679820164785194209682620910536971875799778781303926504287431374348805992876846060007217966844827444214663135994742997598409391151509395970880125912470745525244468376179375531765154428664744814036677598840365910187319070755941521676177784286247877546428560086725734699121369472807638125010145989275517339335781937968373412569077994509586286167182373877109923699073385346939618494377815713000540682807556121992759330824568181817080268598984747793008959544344401377854528453540624523991939415387246495033733880756500195556721521162951441413830034960669506583163208531923537487849766929760063034717659353271988281485408549737171551718009341968260146410948100368322810658028592237105473688519339565754971205481104615904131480150977787902656934258235738189208385390746910979596396693023966124347890935377111909386856278482278575803467173110087947532471890524438778278578330816855931000449176649267055972237214831410538271759198763392535128098303577936689197735367749447551715515684352816598494457445315285861973493628114755172938651530957385379682330167905866738291026359115990698899061623492819133286268109209308034582061773657579125163255641300908166367001834895846075392625506888109055052262496691815252942629937908588846791281185977762872844426827053596424528088555742704967880566994003975624260432866416567054994092063217927133498138708918697448281157600860950381417998893437367949239048584702324853967855911216763692221076921208945312743321494233316718048920374056964685031462263254317644455939293343531368351000617215513062782406153088287385721754310853391865181132718601550473833487880782840348370141998747240943430657009576871361471362165279601794821599372784962786300556987255113821575543033099322741798726331586011046655948068119959877279626982205672520961642931154944703583423756023098346414682242741451075082473409927745126142786653319452709248819252807210536150703213258951313113078486013503053417377497153976975254118560170132558747068435951570462597289030638106696336642381046682858429128504331608858588377752179236482903236054633808996279877551522184174762229376042560523299348206747710092349649925750723118188546236286620973246555815343044369183458636405537246372256494926333139244885823470377218631439395871978899635609245707637245272270784342862010477263071771627075273539805213128987031061829028368204780705187634946318221045618142326380958934983482522204410824158451996962743767094415221465517110841387852855320174516395301907538614622619926537495592429512950190089472472878338267533180602662227318831047857766011594305567470523854655317586567288301993630052791516922176730895874378964224696105747838307427712209241105731387228710350496456785021772004272891738589857161524449649598116520816625391947143280059872463477255046168853369737796159323846723310481555252436597288876104432490104137539934705962033169394996622328676739061041719942315172698131942347137954341097229960802933875214521805332635401216648735925012235193455006255609159076770629641570597884870812995244536506436177701874851366274866957157441184391437202464904741125641426188996732319703214975454151174351787988011773463450936462484434752942732703827738542901699213354754364392563551146119934628752425098574472208177841941258009818661055825252614331457277374962620760454211223626323090322675950428820461445434467119807600106830391867930264550957521590726994054183458235947843047356174370659215284208328043238148371881973809408875542422263537901670686118472274625476497914838651298841232211862228549253680416291396625739718621803536867723176471648198161714964256472686083204491713495786755126213058338315148805323680582103670947685223383528230852879760366723337579350776019350176766833263101492716180081431953061438329719504419602815095670869977700741065476736685732243759223202077387445502449104431979006809395492816987003637078855297954505064376976971481901453307433428164356045652112943935585300102315829107522656349832627464487869341663587388890976203785920739208665353059122957910073873346975579472699347675904884193864535376669401426273597765764898499508553428496480060011153591546047382471144821911204306871580517619546525467454047866493242453381987498982962889863118424685877653402142376959088089585825027027876053159449437985411762477421772123533288243539309630840574454576309785910274260116781771786516605453075914068083203033939295513164796059951867647876330680136456556774103407209453755434078388990188309464066899660773642824537990596635061574363752526462963393973624346354184196724266610371070260758194285722984784674672229375840002967866179449547437643378436546341071945154503535713165658582291102161001670329776257124755601335467956452538215866102908991748263017561758671394559639874151349225690665287731739768116758056271739888489792302546206681672486730760105814093845000565333929005020232351774018811073370585956894697161053910471220912878829193776893841649341457851305225835764415985368357882457202168864189110223580285556493765385136644968979688039408466374960603161637774798581418573805695370357811765917248606662681861080169182626131936846181848515378242199585101454063976745328566466514349105527584002509193829611264935675696504635272182110133525428608270663870678831296538013885422314591814984517794563296499135952761469525588808445561954178179679808974905246271734571915542432705984191144394590981737322882801008327499569562060736532594090314229180733527472419429559800761178604587845071512283390239715741490035323995789288235548891155728731126971445409123535911776388568596556684231834434417279228595729404321201346516580357400949950509394618319435144237090236010407412793911847296266720090677447425619505095588125862590414617976802829322695287873623164907178608849489055051142933052470298778724391113960331102532803858098323919517620825714826339284015567025332515543073689685353718498582404747745413134476803470491731515491958677522768305328158121748629928518154046791755467422330859728796198195758155328220865726360390770737432810542565380117154925504465585185859351983589911952897065515619261140173869046427176771090256069939335386545747763243212714231220291179922627239540104766938157723459491674842063959099082243070180138017751388393539538149500317405876504111468243032267548472184229003964057830330958739163462938112417217847118444622211365051349150479159277101802912396668781021151644957969783020380180183665219471245334785252975348258264040116198701905759772552930208423022722162964560024773172726969836880433903978080733328819314017864599850526766126839885658636473654582504510709771470887418534438417514340972267037560338385995700412230232149431878355777950023953682690834800175347455938084169460410139786285674451120577648640429265160633833936196346682410129603458619025103979119990540895862550589681846004201950723911070235439600111347258504729129626002161906766577546596253732640479141751476130893573558041209630594295607145763380914284471640762020651636743100590831683957508881745787422222922078294301143157643813877421844908158425099722950602069105334543955998406821802419670667701614439751079350207513579001134882805746859692489690695210488570023286691978304025810668507118672612330646336440759355858091834822602366420807509732454253084451764415833603995861337198425483595108982311327199305236637503700335887473777688162557042879111332601912597154653905050341739549512535905202940372272148903516988871593571699293196240259340790494571476847511618817146409626074135427082660839108493199195744271760437566502287130337927179814415190063137312670388915940380131293056595493238466308626520668443980616719399541241427072803553938723772866550022527389916869453376860037266026410699191190935974948815820229672757875378619455865444641626266992682352804398601408517449658556495684821753308766901621184652588916988550005372932081839575571463319807241156920718209534595475225698671237684270761931433120564020402961741028565856218952235208710134031415073299126133511493505924463744359930197746934207949723449505999844685701152055972139192394192683638225174095043880000420247760600597334591549531380434963832625664472769746935045779009933993625068189414450383857039797497955204937236366181848597657111019593078710325797974496363322867102268705650336377862466495331963673293495586279158935925729979732422476700329199213196123580180180155999303219564442895963715158685106849096392899104799512144226426210692101130342509799534396749551653646658378166588751471892963275610611425288102357271905803184549187201688019939230620022775481647325308934062489642476316190722878769225699801521558009191899893601014190707841194882980490614307772629058077469353089200680620276444406798481618776206955189663032244065761237934229790231462847107266488961717175488356183968350276020127437201124797106910143783301255129106422834319742065862581179755050687505400409178318997768201538260352209957039114257533350074877075159203665588048223858428491302319933522683227120289140040106296572524957062032712274467035952659939238167989614120619870080679356107059638919870249669966928242599534000175413431542390538816174655890994944325767265703479176900666591547458640301757754766490998510801165911788964843106253173124155133007040255128721805892975003576199213884675319848959479608793079267072863484155820874247123615967246742956429920278275003883149883240164787787618734248749448057143836822311425136206629325258687502975334787546715294555219909863285362756685731368368030349360396500646947851676167069465748856429339731857309178031696502277604556311801101760914729943884507918455432953662665463957033515584073485232226465641516882534585051922125205513509967998758942310435456804769426921186797689384846155683016260952442368647446680551672354246813655862990646180461287262440839737652560162198501966125965672946896672484593303130299191846781172184547853486204825305271612175625985822798835226391040220358522635705733334639659485238683361255280421592891555829864394001666472192859152690647283250032782455871893162133489099782383153283117035737940014158287474724771014410650171865313384874404022291617428056805028720273565761236619687278959645428932206893659803055993661044332411783632387772502202061549727253343232278952205943987295360764830424162768404750718277236358093909576952615254156833641115263833932768466043742759214928757575713402597963710718397996029654074831436906637968953970706410665087541017226598614989542890375406837618246057163711279817497051719112776826456642009643487358121128446370370449223339014970924280044167041246859225062970165111698622224055877328862420098553846442705745040135107925008386298915874819150774874238380954838910752777964683399578989931166626078425231609488291787218633164492144248183441614232167362775584751729988526289230796140758243470424776825930287464285582613721829584541961296912915861427137007049751738350620970743348820894706851837933427270082994378003009508173777066234902909572777652856476471930527796560907977711288363305795669134001146016686264264505057854181299388796685682294336186550162493845912606281903430748225866767373305053651551809092881729550633528031318060623753004179086461567676659750705788230452294666560127634848807415199464243480332687164015266128587962327183078563463741102820192949750363905666778324651086087325175799708465565044643245046079294381361885407662686120238161494776193575108047249811186935042523294855574912709252847085902774108889602211210156438977782422649215255843113837429610848132531810836333639878237396843482069703147984095366288429738473294915812338292959858956347403104642220889227853745164797742847745879740390810343199730848311573179549378509579419487500836948205936020478987133469047276040079774018790390735196539758048833975456903571581934029293149282045696614647224928825683203080687065954292636165361116347709459967294523082866732993295029550055038782018643948921403776329716237706060533528868787176878234134619225318001545854405236841310416250287326560517810136869599929398141346775694731753434160665583457019625456901498900101194859482128147654404067975888658699449653258317653723182323613712370597384486340002222897604831266821129142235918824962611156079093027108456378208011680698561342024687926150354673652207063649330812644832085346191463162197132490461074832274933182252894371593051462945635152714955756165910757566783209575053841787635669048749372087794008365008619898648654949079040866524022506253262521240982055980684328068922206623221396355112900638886802173606717056583422660910100040974866655209648413723646770976629459742718249042609627103492003963575494596483249296888056075823822465689666766579482855297603067356971424896209264426455359390381873114221176103689931963490179145711280172850978468820003873851448038722522353078731197871444662029206706519814789220884593406902892382347151822630642065698427732125844910296867145854558665224929800118337751453641034014654640601804460199085967442171141731657342467478179838754603340101854152381306712729826921042764049224909250356601448392082079957626310801196453187371873160499347133556490290746722301713983506062968579535128127953635038754064897958519504044170149248202960190517856321965203315547915068320498783097158602824910268994355004245173875103602261775622733208465595967772858721972101871315694776962187734675562505056399921629743251248603851150862192401525805600450110300086634555299981335095101509780996939729995010381742623099689570281462517581058591659120000773375658436016394304802038998338136487757956886751472450273129676571749679820961228067296816933915722487059921681923889979063741139569339587905290249387087639791621990267874571846897268547829555789781329536796218701231626353242907820956920212803383849847188707372438714146620650312560053292009312820963395852408975143460831496739616883429934753552605472122752173203589292256903536050043612128820068676738992983004095997568127339323542361194958232114681901152731598776962283779464077360669974905969124974099294574212410638092951769185571575438494984200808786394006521150826049776405846687888480313553340095649602460132713890974577473626731449757473685644063399071846895949617418507164934786291223845820405402912914964856823949687644254713469051463543457912793183289098931225147094248681672245636341860132181558368712873175218027678016126018620786697701457038674590813114796477437442906325805132244478373903200948690109507820883074843416006197980057023352108929307118994751761838168530310011148676912396073944040311497187550994141897817865408106099099765878754792727740249350751837766450855573107454058565991425868851982970062078700649438878324684989390378552183516015150268844866815427818150258049348231658227890663220980073152557020272489973862665983922142935320411399053799484604877423478753235067539984388908682822985512431336534374399304252363610855432952855494914642761018122674676816299571142688594501361910925846095631369511574581080565461646114191618799056808393965506603770808083202680552036064026364876770288871451234210440254688302856599192292662597337135782857342513721111657442484953766577120577042687873867142426257933456733880459393348958127118365517329754772729344082739287024973985442530407934096722228773465207373651185844427992605108419516132507395135466431629638732735494630443964001963533606817983257168039964822627618439092340416704386791960662503187051423665401025865499933939645327235460796569815222770988972213483112738920130878739769601324156284763851161101288019198568657388645067472436462934483164103578127202284984317420805326718419021830494977673079262696209100975317525601609361013732948910320261823055921753174354656613556344400380629933459903620470319088982103258838025097250018983956218921347757375305979283873338273551431833985101247852015350446489876696400051305153341628595085449996168881108378770530239847162073259634221755135161819566239493540260672593043974099147304644570146728798622593426715708190917983590265734531207475243779229358247804488772874012537563515721446078302451750746770681802720251515982441104954717276871511083723398374031912027934596093038473586528763782638749024431363991355078923164196132834857006245291575473494414769060721685996574717736658557396523640409293121124572683171082440948042502484104166333775015705841705949294639411276005236635927399736877097960319197440345738957163770464434691873403410948134574013313514082203597215350802367114847322776625471134466370869877193998408827204258758738841601152934341142044265444283370859064004640497391419766338657495618631767203389962169819910086513604316150790224448827449958385126670368986310334649365613560087473983522405345436200070364685364445521893251409409614590070176237616297024720308281519119283998206949274288345507509052762590530090748443018840171522214691065299393011139640910598700844774333550348613799147375364921594607780745118054995702799512046969869763428739054971350238244038251242989297771148539539171723245176651423421874625116154341504962602693539967802210547135176628370141393358941736432581189236680177455932362254668094234630755677699582915080738215914624385868080570238422013789181211260013267172021701053808712617447527063155036574008667457952116509195845740135406106007862213605596515728541183041919057112351127781620476554578993087192292649792529745839762994489825939123244043391168059396011867509623534817970405296483964806174841095375239369391216056733121084020852868514344620061829026819435724052535365808575185170614540953907513413353313736204781491203654773017072007633741246187057068829039195566360677066320573339855587264978164283308449884566361718626406395574800727030978513460749200996351131829440768987921033549443288645117623302147330206340304010275055201628512213901419158403546295257364187314131581116425575565339976693585991465200305597773210654024592478141247778976526183591889924458816498911150554810635702375498360859377735350560840582153243163893233552495648622155445877921350698129126454678830608388147613620651953632449953723476204034473192691239890007239020142591984396285372458790166034516526455409975696342195843845167195439336003504614064843323305891843835764381555204944154137379387548837704645899654995154612806819753233433911346270625307903699556097972523748169806811601203883771466202075273041149783868399968746734818792056034176352684742882928265749046609742340996719950448807769713425031009730524371057335963236828952044108895719299447352875492267549773538694197664490560778124948932640052941471741567024444433693141170005016777355077912959777605141529582395657055321356435250185748510640685052717898438626819082761437896786829010528057051508731764661070798066316526890524187815601712525809388439983560530372162769377189438928843948188275716478849391008249170865654305566992040701967816211599760454810089896016792258440722938485778604037531174559880554780217288700470657328357343740109050447852430642506913974269104681276945267487900616000653571919620352504212787589384934253201521714696383233548861051455377850101749291989307958255751787623932943492618757478347574292205526554570311686581985945661457707186790417227459230352720234031228499795949582657749071019286270197483666343856089687837776314504486842833817094744865465470153024990077634787068370201452594179185053085692101968154014870813270323059511390610615302132035046644076636261083079411892882832306531627881755709667540152491466022837747812338952114596214492716243155277040265750365533219337832729390149097696577085031399794561455061091166013661397715440122246488843548146529443866060258813346610433595814564569929139526863692562023241846073647568369027017870273131426603078693587008025525500071927421967168012369407595911549634052992173030456554802697105421331917349519153720909804660617413511105232393561460036793220098263833687187844803535919254558439742470033489942406778573946412131379993818912473956724868786287890455561125828547368392040474079577853047394841685825016908111115387973029055849125564351794257749258314268857136841059188508220791969355385912598030676562075640692981866844968658603799041159852969698723381447760369535101877880310163287522341792067618450546962872246570321510698332810633173643980566019849846501944109456453975912503445908527168436901113637778283396672933158363761270757100254519087628954766897908218661819674510794108006844251503752518148358699885263669229213771098687229211816440746834396428735699005407926097728493122119428252391453301010931867825177785290996866945799041142173745381799181701462157588517871437848974286520674047422066233875696637416579669628855080951451077565915778259903625580721991391701978788050336094546364608557623838928138762511536103573545261341865926446815750706713465727435413410159362043344324438225907387478666270851418112462544560129241770700791803903660294998577360298971543243995616126562992277943967415787037522732486111411857249669972750722549542012121540167251941960535336844409033706495962814561250127375769073798902257302624989706949101027301754830043393874094762878174409541072344776057365074628521027130343735578778163558085595702849258036647151777145617132791425172593992473897574904711551783193415082096413077908771664384071485744153400962415451550207296449731838381506549339478785979446004788729546916486022908149463062261570033248997133610128480708601716444724916075101414335492291098272085468923386248302704777859357982729221767407686104457575767792227090857146506888275076264340319228121838992177878330289225698614141882132358534182985680404415370357217547037072367469949208491127191168067307593711828414965088773772859307648023894044312517011981328102289784715591630808830320668470760018970072567240164338280491122324863964484450847670321080699489344524598356158960370199549475879674734443375603059947969347738771305261968466540529690355525486347603486890853829898237957992784472416766430172055188903682434678470462673851424386544827589620918039564138651832435107229824141947359825430248415578797133826924886669830499236932148070711036990273289624404701935369906091552622682745092713490469315572716873918345352161203267858307488723915623431844733219896839258024823316445572660753062591234256418641778216607774260670207174239736863670599604944891866972003089593218088026836457263010113377879866504854582370909341492075762751953924194343925039887743238394421812518832433646820347506512040450578300182624611467190259011575274594064917624022680995892483455055889672924998929809065855990384893378477550368454340758318413201325398373179692555900648053174497175187661749997304940483783795602107203568873322200627878761267580585802201402121122079446330651865320401887662195839868479126225478755142521591281620406931909048372699385335218384402731905052752560144586724717218871577966347425624146236145721632975549167250828976914062384758269864165865009190107348464118087717859522899326893721271257897838310850243169099258789688215068906127858352908490395688195824511258300541223754643789086118705207203192084686515134425738652710665503149080158972264799685472770019939223551833709537523292035893951052329735851471940084455838623521617437162935838608078288768201250775578196825637264623981291888070329475879530101908180886896213913355433064801373472151503668514374488192364070127319531550238369211397239521441670142157911004565421330237273457431639026092268906035795693904064214537455059080280837894747358160721632994317495489255649597576177899995631624413199096235265461393770568971921151011067595521370075409895786916312737754760765925803959155697164358136878339341987605993078741134880607915886837145633013535751799167428406352480882701945854021939194307630153026390448468654767555106702017513201815506227713252298296492489911867473293532112537045275102754095263657935396889773974897427224826495259478025464275538195557516706699197400394571646796764158378118504051575844810085981768271322895003009103059862849427114746493805632434787611840665109655846832034133853162064430732088706092166759460182408633524109289776983439854111091992619359977829465086562378798939903259434677240013593945289337882271853471552320160469796813362968967727032115399594695046893886237025166106566157267703679757198501151220782111203657892705895275078320155312365250703596050203970157690470016869725258610784611969831402736366235727205315450037529494397903478840165478892180200658763319573001834504932942804860765489976593893009656863619926957046395895470666623205470995430008753493531053937015310735201391716302899795449564620080496254422571565082178087442201713102908455690811574088132986718601258546347494353968070704043832092363340865378731776584712327494964012979585308293354292200441166969476254426544391944712503604355664103220099178363638738544447632225163919941523788598091569095994880589958606839335409398970972009262843250318174194778181376600491473587574601073331013330544159141593752861783392964488864297347679148400107918081871580236258417380367785479692774365167242596783500407455289083673222417374271125849883638467336009392200453570066582913185024419282540092056977596119572178701030273586524961757600795152294024898698534898053322817325113736417238332411545645681854720609035094712309329525351921017462271402441862676677934985856971218219912608440627600928570550125852296090159242834388601960910127944869461800432769684638199675072584875869781380206098453916896926550399929738629735526009922905747176670552413305025821382242718001211141540289248001359959342732837849120410497491883434249914644934206913609147010581455874023431033395333670439914946868040727280811668961017830104713494913985944862008144932045539179486169908901778654985218388940254572952429741505136866684556904553505689384030027381779256450948356326833128414846004858875241553269070834978077964395946964518831107644060462911990289140690306942078551770263766295566252888493174055905178352883644360506541147008572683891769825009024563456509017815695322991116284044400462920390588932847589225981078949262971766258458906012374538975342895769335779491636154972283478205729832190388332200242954950592084218395475640051887427929386156206563922710078355360854760313558502995643168505600100581757734273869239154702401808244608202903425274180655182613434839010575241742480746539426192248912356330888145165125019161834081732070511819780660514916449664715541207821317659362928023820184951195456217543559350147337990291430103802281824189144831774081736247059757900509220671328423886337341154128611326664675086468442701653305722756065232048699076887505924984186933605288944682888946390457143982210859362400556383205815876988881852268693452053878108213384250455071326888346601975069961174037540804817082455450352217178796092626370344190130389627794545153155065667018208416039974566019125239491351809135903471450771955609581503232732996091934174416442368559920562279328539960430322531819017837365598137858341095036909565989759106487562484297706866488883691761398256267129954291437753503766907498984210435119873403331116770708077755504755776162526005744885392242091734475877511375166229017685312162248173715831809720922084282161575922014803764051098657782929262160099958438292088315577071308610409910211594652650248912559825349686803998180232846165580036296714318053292516952475556916687548339681123410826461741159978129881831161528784341123744472256799000032257522928981456373086930784758491916372787728576037056199919891098619453463322197563095781182514398816272365336245856227742697789329286277930373261356285404144854734842832232995575014295575980800525089372682465930778476248180206973500405640900800144297020905112639482213878734423297872829888581329761488701115181145303773982341467236685518712895040342890297570439861368864904275412121282929783882975844804454633160223857759772296992893628895562745268624457633590708032711650106181548515458437434587639970205458127115195889817451774074127547637584771679191741184940555527164346894908246727129015043576023854289211286154529427209720728464840910309577793671787487286788755701679317408719013457481244759098584012558033267568555964189757096616948585007559571925112001623039038391364601083688772029134235555291398211085183526249780769239987835812667344697540876025024241767425258170023882365454879377945068679732620122794926246829086746655092201080156757694459281427606611916584653845284492904481390950069211111588828145738878804656000701045578476537306140898939559381472722357718350381092108803260996771731138557282241506965994443886953338720228540577168030314737221006234801369012868156461819388037363057590039604775358215571691773201322273131007884778599141478506068889508483174593338382023718090036267234709501623634538667283664229556337098359102857057465803668114583327165905498953637487779581641763830548030371254383579544172979974123685024105302031711494059119331196706418541294408350958469643369795225995273527191262484421795079484507823681026558102557788986427430886175814218162452305661697361408363595292919220617424402523718947149982575673367293104737015254737150515282399276266743050335114978703313785458596462097984858164346636793919185145042990944720586584342785533321962765668946037896574863572056440194055507439360457894760676585112022460294150362947635204176778980328214079684451239430873978886328877949065477435277789098268534827118311422082202046863875667425093531434631483979081264242171324226587226213914077448686517491048170746370716215927438671488948486173537268868748948453614084773967283498708561911176324524074910740018584731117163220750480027497873230932414272041435589097418260661791408495676931319069893650477492827831352538920349865580140324407893672849838695649502118516207336144412742254751815895195046390461254321272285529947802891913676228004434547922383860314786377448992809413202377837848179619167065181437111806295917337721454310753842281649831881133844535786379303343391665394020935132260678284324778904771478635735737813524711794477212417489971817681903556171596065214576929200803363751184907957122763939267423116045348470831406088984628820439001258925936783690169983734733707660890321489792257772383940690553745601363501393464525154021277380714498297817528235224822750449550386069517386406491653208390671379136472749910431009955371011137074781960089201775690253019003862060189087758261600620912986891802521929138546875619535775680550873296294720073354656680546664299361876477244053396872770798313027529938141953430888681471233005543456471818911947304483256451743344359045015365079528155811520780009811882579946102395692926561701409614487360781563087712921881914233484331670694912688583064759395716154146785739251511604734589200799525693031190160412244674327367464746458627335945344958834928565994766335998030753112028242672123568437015050707319339775198819763972252416094666707109463775278864752050209347938358437676594068224585385210820626018700188607781502038438395801970961472945461817196844947085160877573803082142583571836010175432775562889982415336641913140772192490341471119587329679184951789381651878565053284505257559382185278240438731933791732836247628096763782580744867176952501110673456596321049283983518931374790103732473368690570054536295831731620533213598102947170726529732392115041436376490693182173484396252213552686310305427179252960470213730384414360092217450630694701240208221512336986518823971803349214252106886515293467540856529756440458076770535111073332592748486790562101374501521628100129003009199864021306081331532558479067408885672795075788710100047696223482690190061070659854418482498945322824626808648709575185696375170751721984148946443985348939484989116938998831252792129191739859264148409008406531296237074223813920369043095116586128067888622956301439400710481180422087059251944084909300019529297240429307831405565968017698680866951174360132840953499108264065103078253234284976057074268748532725365290373266860904498316580963584976954386077600135234848789607037420641726662075593439019397002566376595697638342882724058774827610440924218942822362420973571254934491468287924107142037767126827405492683989433950902398752793979606588277281346915455052288183930299136470451346882111640707965334364517093841471724953238716458731395898261896676580961820352498358326691256756961126847665660917630375621902268784087497012920353358220198457714904905582231734294468096140565665049577904176477007750087429285663983278745612172902090324784101024450972126052924759640765141145229300184421840705021619983726748888603142653429881755171940806145251313811661444609285243324238011570657644798366022272971423147240276658170374741104111208191186176133106068722667277217519507785281022209309210739898289449662958194651066830845236158112669573941048190301105101771783522765097639493151195740273957145685098906316535152034098979243529759672704253774800206535801412513437081135095351966577720008211375290079335873666986247590497961234871089737747866287199391735894730147337444629826334750617038706266133880291259587148831062619153607918986616627230222903981790268105657903722084321496679142391217322034804595897581522318466787357602772607491312679658120600720301651551627209658894255757923995173925097898674241269471452473310108413952300651030775257397352266683782912325049324484601973056275382838117867566663245119117320761003579337849015868204152115216804157492158374242730362686726002757980756952669172851412173272649662440214295741002362995518134524417642216510238471525227150785619217798250013806592500900232782954562155677205450987941817819076285828384535213036255428135941838962944013050527024704150681572465700246046653687481074625248260050505387212556257490885612146780539550425732279816597144654972581417565319772455992925880789833748034400864531287828939816708124868526256624659788079287137483052664892572414009858328615638893007695268861751285885596357542216634209640164859999201301970516289203697318233869929431262123149164787131126371528834628115606349695504529614441197876990897488701798622989193768528793296047936404911724972699153043009760518836840330227531395968001941764270724803714525285561040641338615530464620975508282342735481962387173616864770525044736387731579846695490147599593107341340368887863041218014834630136465802959503518284516392710185592488088520388753247805461471320234188163769490345922968045705681587655194906221150939219125026531995616892486444477173892399667237911619411922797818415514461305390565168457602152497619697785848028888570290586712118719030421539628220297771126011303966069756364832662022879032252676688744364314308399927174833062071636819721073586241644270834160262081047036319340248244317790404735607577142833583013873751066711062195588241717421885794391877812681710768546601025157486654332636090746730218021885402410167993634891619059929252748220226842293508792157731976997176635317549768224300848490017702619586834159246635102752223619550323407132980225268519147285719924692246256354383677225494416931450881207747673936399191967991888675652155289997986540563896866684133071294443875925681462917117040672405606014604640430305841357876922901705174156649849629069654619942161292297326267725577263198967686270701488777363026722041654757915642491977104722969022635933805668511650720133542625432953733720384924482393003429846147052567155813685392912400430655339213901308357656982563072728432080058946795339928882618113926194724273767832368517957327500682107013083160470480924856092467784488262551876752000703690543955797052200935055325661749652996910931419644922353648708555224923513642524037568965270799664696944960425550681016608418782211256667487129219832039241246068895731684296635844413149516078629603345477001435848364156317643818236046353782226689667948828967215892765071111636136473219219642708268961512986199837283290510997188045618278574532647833779636753304525770391226307311281081258501915162176269415930020756253403526239994127135020162450343897306193062121150890369418315577306838001749474166267994534535591754174458061937033745332195222995869297239042018422435362239087245163108124778255620184202581323132905757574669365798133461961803770357841770929012426961421254136908584736987454851175484865053776506529267093660589662829797439621348118947207360606936464090851944730327813108022074078471469405228667637807502687826698062285768409080147518446971024030302360448062301966069426965183839068846552059781322173944791869754269172524298574430674438407598155782453322776650909061663164659160894319987224777516521631130224756693665085909698437093826503373545052804667609725098434903423312741711370574546242777459276505121979965476336828331101521084384974877052879544437448774080094016065194850107103985152158599221138086584506743854894324031953265448397988413601090754197819106160188831793551199080163628757167911648622392309433555085075437227288463504841998574051267924442622078119079648432543274904415751038139051983529724316168611720397059540358884430417987789682467635712595135652084894525154876035407983895776294278983484708856716430776393542161333902023091206638579055639265538883163160724498598434374279747995919254951448746760376166374971464767970758970547585528876159524019180301765417335248859721238576849189714115586415321303416834764332181172703657315096189137024408147091903008755730652249286579976568771866949277842675432398511626991386233671626277075563642118292073969781063851161139031159003023263648825697918277377377213610803353270262822683748804920336183011695780824873434423116952485618436769233258509755469475832090329721015042708770827228814551868699374889489135439746823302645988178780485100991193904656134994351817380685368677224283160919401305109536123123828367822799964468687966401251291694512792475104367995666356140843875875581536496699266076885012543827580636858084066476791337567529330226897855651883441822506207888426612009425052591789796621240909722592007430359703901297069917738078658402671257694061298726659346247008091745111999989450738258439502759591893687974795260441114509536986699604098173923273191401197345104146158822743403051965955406198595568918718548140659744675411827630345081405579860745131520277938800558988233545388357061604869523777328382459935809779402239098189088063019660686739731332514002130231163945393864163606889738040147251316106222129019052586488068871855567327457950390351548039244885511643944289444036101444513586816807281434829907993652294217529986281388796802672440368415904797180138769885110047712643860181905108003374705120408525945533378302874262845121987500369927971167370734302352716288735758224132105252131898011844051120240679197415141727122182494997874315216992455926668009016803949109960584398320300646056763547757362484924535976637131816015020076443868614149228822978989014079010074458739419611343337345503775707321306473474686461738480684868130798643069295578313763442094613663723965297449031763589286367119472620143671516463447365465910053222619164513219902305868726266398039206447687582120180804843382725192649784765678810350130391419015602937581596698264858565513275683493193788150741057078186321179347410357370528653012173663328647237214659041188946277218287538344373382057031482858861657742320728968584426175687388161191716244764107868226956556164320790275797479161692636971539272008177392977784569170731832435238409613687693333810274334913766407986281271671014576773571897921896765685086668539935725374296492719647579855597520482172775605403336538914277586930701263832478083559365171861937756723658418097911193627485755415494890333582171537508280864445633779125430414325892640788129219662063887678638386706106764637533435668780588445109902099653307156105008007546979094240481510648497626005162989798528969695386159895731374916183013600438469671234462789388707639863810229581697114776371025267808907124348178248204284355403085375813545103244225976499513790392668635154965528079850557109336057274101283469975866965204789454241175793652981761490765560076307132784360129032838809803445034337345337683991068289759488029674925931872587092804098609966888141366144459452495763920700805226850477213879195470286263571934797647206480165120408374144649079892015337235303376450098761606922600337325928661797386190165829373665075770248783171587571944917891965436895997646296553592005409976842405685036771893962445125402509059160580114450958936449672095151397881137946631799060981795375258142248205170727753408454497681730641544629721465136541930742585613581614566230298647706358903925884950340940582434899426106238309165389171399772564203110711312485228995350529999096133976517125366094593380782914632573319331379017599501167582480537364778215961925375074938299533208051363345011107470507515693366750763319777290954759780543956937846941730884776537850734321133656117191639176179453848156043703584635694164944060502443636956268672595647087089579895178577310759552230391499098253025337190815368255608655930022941923456853107265283911085638261832360357879290946111372402224463010775450340407484979734322386012499930467235974174146259439815881571363658921456190759444939824320300806210938227142047121094369655879491888417793964476506323091886960085276069963535567874841816523414685344931556761058678787486685149904080188516764531108463464425763183853739746370879690054344756447475399594505629587945908108503489605403423642468450059527625524429026190677788400339179711068390091708904982011166793803178349255789724343621024864854153556880251529810065654248370065988296560026099110724847901320855017567931876274742203547969187622408803789814800015902515527647474250981350902245427789776452087712918436538590904777152632625485720936842760501621642894934416624674903078965211114841503554514939659619996040829158971056266278834524681554189221852859480313916857217495306595776327881977925446186152836634920529827740752331848673844588338108136761262690833026490979904763991504822111996298837697697812856996627072858184436814882763046355733330562180433991735591443664989891502450108498295764981815810340386088070568464830786786927260983334832235817687406494021081578145584572472434309755093408729790574116386029807456469338260567931369478481151474329961896697459034596511975150770625534847362008592453175358700147370773435511613341520712863167168175506199690731119566324046944074360066746156716507649811242908761636989581631455304840719031565732972521749015742224576671224371029628249784747490138171816785092402880456168742831659535857413381606313337130915406269374552905019952376093717565930556381338764353746562062058918148398781045641220480133760743635553467276734709600064473683431272560861206275936423880500862876993019774500325382106207752178486819124292131422775786998739814825136938496407332915637042213778236143033301882135536599077130049926881455388347216771213502072688616082306109159875341096772733162317011911676436946501792797631013261190922782710283481512242466564327930720563849312063879474903733869838358067380054917348718495406141780509271866525342350651579849814836896547284126208672313462748192531787585484837410150827020298503650579332599835479044495889332130656127103712593328026034899739840207691941192847750944456732867353019868144213263973008196289913048700058885112279073540502599671332007612093518404748017182258828526700352312297707992936647216833454292774008135552951304158140862692453980431027512457196021752903922678387162136669491974129742453404326749529324845690623162913402123246106105645056598152772463281244662509213748481642037788532677419980320583704419496945566061223663346606712565162589385921359851581455855901853258488255358276368475001498015219648608010405379929979967618652453602808437031671540504734034311535403698233286950943739313801805841069212495071130555125844125424475710547127100867157636270850058800714369123817465186648595800763254723771812810362051887630129868934220352079552736179182568255015743477504281457308858107979867125395092666982347344186408051395121836139718826819154114941397341873843876664769584213227523420412311115285758526451635081782820877223054448194490279667268697707298358766649910997969410499927024524265575686849591954707451133925341363608595524290651562306081114384735467130810070070703233177749105514329962659851973085927615460430557422369896813610911707132009863741421586903704230691797244983439527778414704660439178990365072243124245851768346213851927987452732705779387477041052930094081373918973311153697020569444515557145962578071453043999070410102396111355626978995763236153073941333325728978181784343105040828303500748033756235471488805486056873474450654872416103612516109753643029775190113331000777506609515914695976683302144074249828454111353562177076062887347137221564140539914445779889008948789534048331271395356416321705194266167395385863064710534298622656589154033520008584470398202623343001552525152501649221426447595079236584256510394604691378887391184202148803903780081705744720327691838411187155179390160762393968853710343244983670684083517608672087644738651167267486837760646865702301588799082927563060184033342722312101877970935174839697134296800082145386746525210933614918660191741424691456650144734011692635916082266297894160204993162998118911203249215822972264554482318012750404128470915061826474119942457668386814449819920155628894839131467677329987395872759334142265775137160252010918372413993894051013767799091027061935717660117670569481654259688074531634709070027729993134376276450481673099662473996001108476246675931905527863490620314751014288549639566809303964533441250101003267845445401204881905520845707597551605255484946570565494595140691843365360860201030645436785281463926050070714185975888423984180145648594740245865747183413949272968465856921493490974681393661216909078740400980943163737514075262899516967474391983255781400686615648705783185790287827445255738970577289396229735903867820653976836666403123874765689365178063309911720935748239931999427064649898936505194469537852071070824683171117856781661738868729959162424114920951586880417786582826381626411601307492998485980950953108738744415360604116375306753627444719145304749384675185545075217253513910948659171826936103141846341025460458229389081136066354462903542243806768396116786304101037591335501722765305138138050868193560765764468302240760847836565154416879704287947365431627558183231158570786793439156083384971446357910648845151363269710718856105112781913714892680606706699609159857147464620866576907484557910461348852761581259997844865577547640323328425356151240514523707783298975429336294532172665157842854853941438568826632271066014702143237597830052969749810753854964149364155573590574239326619748578700549758787588198901083310266932540299554386709845317675878034326978530316953511356504024462629721503135484236023676483573036984760493718371977456812860484216290848333264066753433597901379675469856090220415230270811084882974371654844148841252292110232722321016296656476357805374219110958969752527816853772016122778313689566258001110875063382290052633380193429812202833367787125123047548582710286311633075838270416677033511726257504764289478866727938427580648963483838174830033871136108582753207110649751516290666650477214817421629491765991974360923712579740328901053561477699825369885549717627174466209082087519890636593320313169200715159095587543584049109880957867126053450072057951996846574018382874970028207178622967544665031630036681274364282732276919387857297288409682675464315884845266164280591890228898326158574776847774431371311184330394076722845912925307552345469888364947559635920772731300717601598280792561970748805427303286987432241644060104880525136676833525977727887930526351290426320217441676025699386616938811522892179065357788490792450794707303480306907854194164616060714008687501885961216083561713461038405532537455525028857658166640646432844354103478386570590671549891822606402486157273277477050446259260321975039075937523366565431456799798184589678286444326674409785589187814209652956951485873169318388694860713392581260632741099064056922371861765077279748595065581538233197361047201662518310773526313615580789027531088684404874084209224641740107864273947618560196259893503981884271468847237314275535213240965647322426765370669277719547319513462060208849545959251370703707672709346431144123306615333361214005517833550432174403004711877047374002096248297101749656655528817269633469855784654157041189566197237958437009958940828871953499741607188664072248563020193995195274934219828122832820330421488806414174039458618801778219450780816200005988339174205982936116706846719966194510743515519514257023022037529774469535185650078508300939924283326500298624758777585837375462247414630881633521947101149695158089703003150727908360190785696691216638341841371748113632310352595102091716186276110863037760905926472584531838417761458114356976530467775224553101229233510264651069112786969337301682413715172445412972410727901792161725637338441368386362963464058023168202566081628974404551097102897883596776773746535863607942039119967275274775824331182013368081981398940682894948293363375105694812482049704165261860511793864630498632553682703331463089164211276408754632667317928923090622033036565383382380890445330895689189538913401884605969281918994195124760286626962917537574179486154105575166414082882868290337604977889378793932959946010292178564738924499011456460634051697992377442752975852100913575463812835742111058055596797174240410245747606729636099990994026469246777169645277885462393578824588368715263683775360640191584409095783212592122046323489360354794357122079374262460170766730994259567536631215624370475913473995637341469829476090625512057735504721557185368161448695420684757428624772879337827807757000810104214013586725953423445753072424071830613482514418521105889677983179883062913140118285992813775081754151044696032650488840118471343191783118172271315002230930206557289931900210329684563049063149508052506912225706200823061893577292302740912137384332179677505482871586809408624961421807338475665184499055580688488880444452398999420023161671284865789218492924586286275498626005690176750025252774207664071978734383890355305540359714474808940384334903070452586355567851476733923234511819106380714240480878427427039553863551142900044209960029381403415562240343207616254295620299471295306503746952106470578480765515743980554599700373695124899900227959317535704177506818035191333519872556764891799689732230411375762528820501549663279925524149205254414415981288958847666311788969957676706598639330954405373925214411288019789594514360536723084772905294584795006850343172897711902148272358728021940982044171459551444428146778830867688557538425283238627766213578220747643216841999252971081065406196597862436546665092095382123008884961830603337509400426318504336456737975341641722571736833342840977895265236907286431696398299620505387483123784190306664310285724873652485220043979155697224130121142924530694523579746075324870669751538490907190583724316167006172604554037977250718289674371227556001470842520150910032125181444682204272886005277903702069160547339882192464629246275081785366683403723263567773128301714010172231624001707220789499098559703222853375689126321260377015463540159878265029660243295661071553002860066607216675807301286331098031284656997007246648102050443648587493052151454469914708313311521502511292542402316436345150540812019082266581222494440368495543550036991383741329496114439215992371138000250082204150631325683725318114286931967197846980842573534260987250165134021503727048935990118942184340203031403136869828593402668449637642476299057332306566779374809639417356686555378997494740925337041467794480851142145380380419777992801801838682238545481789397524117652904015760347717261923156712440449578780544406258104238255122856547311204676079818984690983662142207550676780965706402373165054283486533698020082711786346354930871036547448246444874447323116634677929795920091708734448992468743514218852451780213196671923570189575567213656036183323652389832364117366486531675274155306060904005309386026743785690561282177951813047041329002295983821825137689878539746161570701741950623125857970711981265124149506252417607382976227498372820115701265501534261986120934498418411260566003585294752702258142992286103472684966582569991376431552609337953032861972077072646597646011323706364476848965129986847785531947838107724689797529036206516159208164087210345957518669789583270360931240098607993875204629255029976491482566764286796720151694262278891727949096954032221054632623900253594941673138062293009679021810282946560805588436228906230317464904974328226567318039630698693072788213736801832867484122029449243458192763411020390764427975164538111132416800124970718384105514367476259628295078601644805084560432539298178628917373432348048033374272327126691125351289130951026304153084783997847467905780492747139242657364928949098699471759493453675946479924682930893888596825390492403240914545695860517102040547831376121006686584591891183862197684026329831588983215934650892993438525148137726727517067782495239487257680282403037269812930327556049633220465771473369970148640749387799268350190792388645924975364324633000727024694470016756160374424832451041713043770595531493782445605077694917069977121699989778934531131383972571071659079392314492209226761037698532463387707067525707433648890069272717025104116971952907306036282899375159329609660942234962027384094808629827260479826587510812287794299414331855872867579587370566188007412838286673437215916363496110934294351551561035118192390513986691893679856369144746058997399862396585425283452495779641840324653950957837265501186578680715827979930593363979487831716595144177662519090533306729914171230042174486718391080597238891818000457827367778128305814227375921876061222266611909502431043832789798895059256370372444666970326629110412546858885699606966032012777801339739171626313432471482703804546778597312074852906556574425654786301594180279540113750914033516378398511934240527202975646744632911011250009137548174852355981508800857027766917787377955265759082932283960029213652506676168326757977786902727926587114530980144296744324057627075973080900351767132844630726392831369122262817439233187443322393913754725970538888983030794203958989285321839452597721054582623907008637732884667576877461139647513878998069633160872530401142762775345065320870878533645599532391406143849889372891511678755491016742732435663230144342818720386389039763791928670326700163585238416481584606816322188637040555563650661675872799361074051003631770476550713883764259983404292693348748630673589663359969657202207204186241841729930383412418514629432020777140188738301041951529920983136393185896296453294127898916801847073094545071987036507036235043697316910292841054673109157628364129832086313057643431531133905554939297199971114726387980737578602138064811436041924179538407396776656993683293790120717820001386948643637029628968810585222394958488503705405104403886110767809391046721451778218265959455036874821865013253970573725325758522392120347791208146656049956308413468476547629506167537496892559462627704879442839335312535134117725386345110410078825213240567961317448521680059352850053279978031185550588335446172978332637860148443822380365621896836971837926217158873505941080187581696002841155534141153738726723416669517520110112119703274014476381911985245715115557252603081911206357308486462938580825420292975556917834407664850083079856566640887486232911530745300631860241767831810029960955924946965218521144375992022958038761041949405245463138184517372692149860701857526199842032209784204684667683409922353361997742562819660498535864413888814843528288869391090971985965810175541027241798362210517211714595739258380184471058241794428216849812205898534793647975348197337414851674994413169500716927526021979617271443483922365258896949171925204151769465385474214835482837470417230283640142385940221856925557308963119094260117361099173672004236372080839911545019033549942065442798397411010515652772733671515984898465912684975627167742593421674732886590007986216298221504559487598798650631851472336355348049786280178488022866872318184548625648757697534255036998895461471443548547097347010796515232078340869848346238029173474616528792845267001098183803278476378666214526760142390929633625861515904597037457652729238387281260035761671466144578230203430496314194412866739038276685237543109325055268357464825949916534412427766306963864066250389408139742080664804399655482339719357866103929045988412158877287103432371256141804406390260535431126210505511145900268234577572159104927349312237292835750620199358091238857151775415091573249715626443061708394943677662565525361872216406092266050609423464727531367763857878933757637724707244801626206034444584615294924133837076693378643843169443662667259262462558824803675432126424512180525914106454039630898044253872532529698921330508879045109481077760677029558827297757909953127820513870345067995644659826217634137385690357462520885885390998444015328086415154414303505752421780584308174863942283325951682221940204834261700933666314065450233007242153846141068189326014388021356541496464723157319915032675735168537596586495817316067090205469574745822999286418537531695432668352953948652930651327599110699989378514340085268843791777934522418690856091077701984582630923054185780318091291661533315055128677276274594620067465656188939819409739332862897763058603757436156078949549486285646956221608673586593513418778155868004720689187410140026271404638333412077221227584651510831902431802101221487357925049533346215217004484178166508661284661206282133618813141362227957360286643635054365760503959280261239803804604826275836914113226061474480199746912092595755915916603610395225247350000090145983590091940834930023795819307626363048754689341883692168730558627110933127908525924704533288350059951462105958263572627587361696081668498679994830823131557785692882972666235555666851567759006333540885410345937305796465542172485124113779793011636767065844098920523021275028000605165024866433059037267841286978173182617194848307440565933484031281771626846938809281406499950676599128746611023549596537977844081745907598308402241863462600964169848686991406420785692915438156548088643502093901591917970799936584698350904093715170600132872423200368698758181619097106401148151079063284790085914692785626693922899706272843938520131148161181381704970660682333662994512213688057140304002288264435846395455502446666234627618955156856141953678547155555711569627317468650240324333170983334688121355215496111977180374598221035475825890746761947386703558138814009981453838936961643285609000209172970035092870531450485392309644248880992327176091453156012886797433800998713442929327079389634712091711365608847706029435215139610290646361370940462771399365412074530148967247263115871159423824897000599044362799696338219343716377204149626633258361917884194666173271158330764538250655498164655801922398540018650882134209157426674612459672816758883231749370092135748063091262688873960856585303513308662778368653347261352747406839432864135967403089984358894715458967440087335133521297136305043532634700787738611327947642170211247389334263830403667543352205239093668871999593131973817026499489921594285630974292114102554900931561916815145196857895681141898160705093715829537670991294180186828498548375067730221832442893368612560385332633815538691711636017784675762613515828462555308882975646543497515761079392838134947459440496717011492565683324682114411175514154730329496859952767785306233945067935088905084681155468653931325684991031441885001185865619013452233639888835379069415034125991630364861720942944363788472792828915388278872860471853153985819558506215494268266740817919552664924439851574440290382116745783895056491389362478358229433408529734276910965366730239864418651962588810878494001322023570305924522711206290030467165545224965843334755229384058167348642632575430502194371850270153897924090352229142883346081160752994846667049950463550735221877741861366775522335075383464206361612381038539994585532700514206749466713548543464905585922052600668561039656881424258895602614001142766595916157283691900506180074442343154504398466843185414571865034783426974941110008062282622632952623705837117161596025080507438355715347904674322861476442697703901439982981596546202326146955413550152877360071504235401263439916243145205312163364718430620354653189305653296520798528335147572701611030404240885344957826167935345866677801246445185241779720944479933482318358852757856583233462317152707780789462953095296088134010457633749355714215370937987189430485323394594713563090003358974957303201641979906879255530166544675741317161190362367239650878717329615273789764285118159648926192222211136567899869625296883176638705068080003096891302692905178763439795564477611574955078488280688125192916912541117047460759964353541729296396633910442480373077479439375800591635622080412931516983030701160863610739193731763938303861621522692290658567688843293617744441501120681837191867720843648684477155813215251682886945846981193744709490022173274906077385940923559663525472247673594767931400019899588119238882268641249818894204906371541978005338447769967048929076027841332676473227374316561886810082348714072935172606159920254773067072215539103295930612541824887183180239109734631612439329552926864806133205697718125313262173270991540080154532163477896636431411891528426205259585691784870269934441155578803095523505915923111832936906307075529720397902303514101775242705244762480724728290209520744546814143197062093532723259414675349012122742808335109162491925106903208585609516167423541412272485315339663943179429307482921629624675044195928278600715635776161668985441521384055644254770423976770597216297320666298431612211557916622399724476328648093014041416441908468574886456890125433592987964073129747323168556591666435665002502836351122807697515540805879439120201693838097685344367598286219619679774638908695511133743794071789920295531785105232080663585640197624833669654993003395351252608984723204673419809407807379157241833968572066943952657087097928395631756236739603832206795816533842403293397771111869788398824233214826821297557576410296640983027961018883672379755441394844828510627058587010840999624169360962493258254031243398081487717252603650788542546017578636764907555534483929694676809332039155207295792186436051851225689374476194862437648766475565333464762108998834045501035725243471763326358425753388714221124548699555628389409466486847423135723319512164526350900096948308783587876176668561997025763513054318225298370120826356452516639441130893440701003117302219787494383301262674527594392063672080578265691742580985448037564225182148951224060516345012849807690107743918306377707800965106202181889504683751749731934668820411832260752115585208408209162265532662364769611915538574693297227562224788865529067306347422482953748891888546623008455648162599678031980462537563209599543714510245007235626307362500834650141069330427732121328041706058032702408643467183667425614974462308976895063019365007838357414016826629760451638678571145500939369494116035774206682738239319798054410587209023613112447243548694333794239962811326566971947375806028899433746098541190750358684511430867467113706409766507624943512862575763265002481822416277301051069676440035575074664032768445907402802842352408300724606072410670174073942983438816836459912824708416623376752213435192650865211442713262070472739809194426480439410024520590591110263571923443210349991299506026757219953969890586782188229923926253167209845538240926012091684005877043364435977828059913994182944906324392032531835596360031117815820940644974128277598609436756788377401639213389925981300699514011761147502478035657775911521898676789110179841332603099692959433261278544240519049003292134428987728262886334116826181751809288340754850733665137189643084782957561908133376904340350167986295711323029919569795288631359747998831880479356032029790391682369203806143690138276830211186076442958223029822298625867965135826507796711717399788409379152505159892400301301241540809062811876292786115542884848553999983441614466386921338547313308021718508315585403946064488532881887130562932123254102459668517365942336863475353926842516130163257796626144568085187380380286623931495126040359041769935320611430081036964003672595809601558223520847166862485715622707292486477188952828551322507153067767354779938832329589543668779975640406732756138879547668034961661989389441444304600910246534281917233175678202941395616598887182875752671472698981875380149519919232601431986231148842200736088466591350085471063549978196293702086303761543962517612047207988640468572720384111607001995656504390232452812743383076055950942544723867637275052005458264111463453982409553382232446681907550728201041693081199515072658383506844093279634813696168368861924060672127797099206472014904279434178740954702859036811904582611342387017612906896607822646695453352420076866510736229220103107808384523996503619359115511131131470778699535167545220737488744626867023709228200615957185749914246066443260879904331931370821372795896338129589114692065356440961509662857700090078773890841329254792869539759380205335180191631012095001259397173226127326779481276649440825183678756276150848144472635734719148816298779416522899867041841772109137551669550945066820321981735192079051700417412008077254724177813824714469359124437265973437830321240285998362246390937734360937343466103045104786589168113794663418778714627220267930595492989473582524810860706158368023009023412712152802217553588395963515447871521299670657734343669604054223286019417317668420599001277073538848429001079925562645321188700300688586053625133674692412934767990001557527189755939637828873570844606393336071678810124017206043417790369354832443572696165285615175632095786001556301343527573210503805520369284367400917260299168508395989701030421014664566368889613133266383933727214763525481042298091920505719611331268970200447104263601364653357736043619871786198931054121187536269712864431408386721468340551155948188499260468610968142904809779138704750848633720885522828842435744914484216138107910101421917489696502249490038720283968784914196062650718549341499058187177365752081618056418349174057921475759261681506601903204074744994756608686037380345616926355113324798593699253731356174516718374723671246951543650292426101412543380612955558236012333482816670597241610906465727909863931553942393360345405212167200516086853674290654457084105449736453072360105236449353151196458687663704982174147116656970385549224377731910091893492316540576061039815382460379895705610231539897347679460866264226355555950961355170319734065648535377792983329450099334058718053016493750793606518725112233807110793619679043182618651415326287061399984973914904461814648393576543131303215425052644098565215650381619045016619845734096450548428453082880633495664149837380422690627371064062056686902758656245753077170908797813152601149629587568085977360574665657944648877687852025429789642726905281032540988137502484576601308177804382771919302686002762081845877609685346600857715183827003233978075764980119937272603180867100255837666832429815775236259378044584457248092876304793597354857440908061096611168538127486674793106724961608519298608658208742742331818633073860483664877539551179242527731069348561334111455486004529676727604536697498814039189312000685989481976900684417914541635298700065970586730972390068834442893220904408206021155572467698105327984826452768564218098033110938306349681516943216838769164918419643365694273776685085494968280183882320202755090331206253848319569474895443330511804167600560894582143244894654057992097291376902522571528080564216127332574198358577028610645323535028512802548618320998989639956362919726229522152563917551973943267176069611587100709446387136018807649401439123825704905486546794716762037372537782161034289138643556226935162114526230620821545305410043794849938921405005127843227402280308395910914227655854507068754288890286351558346485497175366208707630211354649192116876706113631349411556781867352424153406548493251465812622875319308075042124229902963948218203169218287052549527533418896726200963437154975270010252370022551370292307081021791849331392124384828055364627886841608303167737299415435403500222323978548726747530662989271496307261882951484960680493232862225236752282986566049953185212294646322981211408192402294983738680409735018573349280826835654897370419296492925993501055101103072751610726588154945248468528270072003037231920151494294015882019806888868277831531501674210217101973717386396462620987052337592180075147415605930936858866265434798562490183628197902578040425210163456969575942162641098509393927075744222043192310017967579980327291257110399806167685060450299022940464928280711575826193017635769645381978246245745831034714823901349358275623771332916935830796153454921667980859353975655128877341396498328814817145441521964671981804856236118963046707610812323271933869113139639160117053806046548002371454911809181536731143446795219214023666830946116328552023040256926009084365547723861514991296855069560597771854784487525402252767732359489792987004599980222641713908264339719283700674635486492529956506328268652571210922877118478217499264172341673875828732792376937750783377413682867955871370188091955283659280412482943854267711029340022202508308825695770991595939900433030301224319919026768980775306191781222669761706027704650300805198219504132365215725692434935954918302620886660910940059036788698552558286910607734792124234803775837905846109898066751318308024433007384793501460810927329410459403756898223071176305274578576933573191070372736063463413485358371692475088147340404027485459328707409761982535440507725727691496501670286442748040722836189531736060112753002595597995811525765410915803057248651415486254924205510307406332124554483882692593665790588458821758574986928693611751425097443991552916797696513495623533370250347188773613198896788264795054684640352484028035298264468060666713079808652834824535167076167806088493860549210469598354819322727448152414590174784200189342325857170467927324488298281830962470382585281176287439296547881817095964477144506104397699952443020482730584285476363663540394108574615360265649826113020562369475277620173273534479811239480783886728454498109208268948644313313186097802891788637835384082738044422096313375140894264620238381985454997270685464819630820541895669278050494094011253483660705136028158678429239749722417780280573440280083650276744767781369912525936914683564168610923266447784355451522002606231251335076502102878700430916504564271879451534260641942550470034721955325042995181675626036069057641964886661595853890827960851932064798890932180015478434782171597605101549273776598489409332305661909820030921083083769441671646898011398492524572268559660362513893511085986037343083201408801393224115232355452473149781193142581460157105771416879601331954012301459566759110314204938360529484855644055255838771508831245285584063558586332261172390889185486147027864189657441405482498133239771177684683531989983463656385870363474479108039431038208818469176488846402293546264788507067109283784121210562853036714577772233832311708742727828198324655423236014612715139186090965334690663970993378313461507534944546274993737526198620242801267904570973932330478279769397782186900977975233229260290059818836446874735269775594758338410778526475503193783840652214009325524558504270282873251840889149901729372726337166035495811081846230430622314812194162788121060439175206259714367968523846713893996212652112014607400245890091431043325751969178860529410505823524221184828571039384924951965895876006645097724102248356892678522073764944535335720095571447067978240388581630299359799780366519952524486779276833047690583687823588011176304921641275686257683426358418207508668432518523356212265895368329009471549554188453002351016254275112212731672880808233935157765602684220688794605623217505292971639736585505235566563866828917030163369404717100523038307166398291438562275937015114572618667417484072481438950862809291392666577321961180461405691600141827776254344853398991834233320629878342386317707045446228451046744752213986961135952244410804738664424733959435956382482430119422283275185120171296778450068836479712215646632554196303799956859981875925610076349892022221270485290408704127688873699124927451300740414494034881000547007640447978739911909326650903577138269346355002009845920367888656076218496707664283764037915379027348904490449301505118074503622719470985487254604617744183874136367142802672430059812501335867841986004169388036911535923095967711096548918929367759755044050221044007606180938725711419066207794987120576569138412363173592304002962533394565969706989724205548431078554513327125133345882320535772916505484174497863795310701074066635447223247368936830142346749947373682802585569495735809189930613022232794938482927793226875528708764030523570541646749834101331908142136396681176476175570239915949539705585539547460388543987213420707749879409629184608910965420991647907244208265960016492478800186015572246211502076244702998524040746467054441143942256545772912400069780083086923030065730195047428115604640350261007191830995213847388664552416274069677657541973170341635259941349239878630152162139162120453165254718119854475663349519512172787446786327272572484131161670647240767305023312202518462805980373343171713760577674563093622357500815400865964815816811342075854438397011837247707803275516914054348838737163561213860980551012491399391843591208368201903940271816310790255218739033942714365500947824931581536691845821293920799922185116617303955709707632446485093546042962203881704357304801435577127626751537292338634060719253133517445884489760936300784963681445614508490190977685331489207175392951089464683140616705459251300333949584730890505253096742350799522240336617236581993897442575016564742454398502955707611948621041813208045444539411772724016113303693173036910984127719642422952464052653073759430942092305414010813671214890190714315426103449017580807043161329531526847232644508374511362544961663379566349210949558249797022335994253505609010061727198464192279601425507411747535339603739470007888330163367453407879031025995481358960398610334460929268518453200430709080204368489506638928880432154906070819437089317393779291173641188722784285817443646508113215207368368949600025602173770470276432552235179702227478698397123328431607960780302984158336810580663082771987283719340171461149811619720405926606056311387793734278114293259823527353023833201473729511713665869242266732184504021527230290053487067519995909764864427983159618470418163282377542867232740423212361081474967016873436525213577757908837246362175709133300197432184806281265444550714366887354456855510641095639627111552040559294290199720193239155587681789977260639569035373616673724185527941805667492952859981240368304993375140998680654946544935193402490710219176967285553067884820964824777606332839030463644403432302680246756069679138178456552721523764242466454626367542546775107194992802529354833529042438392006243109883580658106922277693746762417161103754346990453889284396520489681717328720758266615843892177241066873657206849319100083254217044844175463189677883952708992475455053403513369863481166855802548428100337606538166815843940726750903277219690602648606067595471762325257658541163348464484973387770588628678495536033225737221644332453163831655348523924204015704355706803450190707894945813679807905965748253856165731248519198460797505254478284919592084549598892329671910728129176855216492932669596332501498175688888737522218520278419278356508493156300893828276654737844950105418034993119889217490302124135030771044598403305791778609138048828837862270132897638769409258361341388637087380086578156094002580939264129050178720261814894779254548477073012433871946476847183711027471242309043293862659295350055977179089058270698471844573879769200773008192688122017070622339301813302336500704750974772808357252215003559066755064283407275972891874851725338211828851494343315341451783246136477972380145508507670799169520595906513179184627493313827086704286508461452493216596412454792786773329925942186314267472492481613232958372070737415624692269853502509422217349768316071467672708288823141781811832071120923507699615039760136330867993402324894519808127542257290845107917219077581186984440215868863314883986557684956768825984980957584473662272403452488868972165503276966838641764875570214716797687425201464121724636854345067250490458006319885537415029947218603124597041156559950434815677790304600725973217173843844888058100713137276672534233504162552116266547046938461866152917410948587098498163521476534142312791966819644791428340959626869938959510850716018790414153879932375724135718379801714594279814081475082123914765885537010031052573573613941320986464351333615128675998905449113044825311728483751352123157983060296690424285981602068649150108162926967762353746346409708815065445208913921767589015195373634308320065970479843030080246284697063752967247325549153729420322164713633914898021228544640675213433329079088641070449083717183725397802901792165173742410393495988013322706412311853745162214016347568110947131326681390309802950229918068471535720915050364839084702011469568427960022522235076037096928286062533511558643738588029381953236698992556710851216693268670659990715534237105220143451025146201186555496615218523209076490385805866818830277111240075963319256397952940202613692601333094485342340463016098813935661933696602470530896309746776888954215498682226826870485426607035014944175861104169590751633570268199438522682532788762656635790798438953813095455541387616652415601352364718172777753357705880497117144121847671542820520231387629828047994494735454038247690774347531897976671031101753054179348076161567794754656734689850801687528835545139949536938083731547541424131250691352009424928190353352829713520594778470868464343167284343235259498531672363011826959802490522127487155802127939023868154203136532775263938318434744090163947800518404881108341398309878198299470821569633921392767292773635713636687433693577137379438667828967265404093734224516291936236738633170641291754179462999957068620467269079701157041624074255389806082588511759234425989969386414920262360087517527059962978963988396999079994029307916007597048372331830106105910668764748992844484774581274761532401078026185501416575588031906942376360039802121952336738284412604632588752116103361685206467952616339473893707002504088560610097397730756683356278909456756997180273323516991546868542045104720417210537468198162678860834835751552112623469685979332223188147955323768035901796428945596984871982700128252797970914493736249701870316672542906336723049247311660552875789086349186895170779851351708330596539576743047746322698212458931737072053674958168769308979092879879322853014161078105467960897492309452103753094442523735218183234652966889179050763061895692496274485932611336387801005308390857994406970081033895065675916471521905542245540104054983929342831229177839739156114790584452252184633816421456087394237945983074393680034227508140449264953755836073970574163237298227981395213012803553587124958021331193158099426480986566864513525825549779344609497464648185741348472514646173585834823386464713912010523887711818283520879730635022157477076149813578070245318113153399525138806622259657643936970572384445683254258456458118278195465905133858791629753182500800708327028458450011232987142179745001232270513093892718896219934252158135046030878894170544002807744621665885508059711023434304507729922992739542330698189252731479266329908854241799008899045912724652082798520683371727825545461375593794584750978732196924262176460204560884780968614215929246017742529191282546507255917096528248629553964360655774944874021635049851532068551581384725496902539630592564937099826377694146715456883672633930854996047878371753469506198035999629966679584121694730036909114465833768709746616449592982362659793204907383920331444266555539428956962343553645130896247980695858644963793446709323591970046033283862572983111248449461454464934279345821958156431322441608174163937663471748348897595302936178150617096891101025723443822566279390309014682871287869241450779450708543231494135903179147611013320245330684252122413030635816449078307169619567471484563464798212805800162902578031096309194484136350302951687919821202747515501756025496131404965078600157467653713363091966567920717609076600840272983152971234149086025582823452813367089287766877663673808862197338883390531407030484051024209560742505534628558998667848173991551009623516953382745604093876909247061250127704223347663532164400473230850110701881622842088500769057978067309039182044363402889650636640368089957225660822977871113300539956568037633952075114117949884167658166175863620191845516372155084941741568702199737258472523067076159603478062081590749723198445996953027970535823569254378204955415336451484740989940430039256375439935498835330435433963834178068360616499295295195985823030509490204089148159591901926928142270945920111035768594871546507279728644142344399464747462030158093788724240085944914012572542292054274176897571272209817059481915595031489076492035566315930204926345475426393132440963976583804951844273290117690380032067292501035369512785599120022385571046405308963641738561014824746969489249573397040021872825899743516636540195611509566407247267098734692605555908557560614990276875593919938873029124587488943813132800794572429895776906472132399837585041864234528248064609888844226178362291576868623392441240177543292470123142125098949702119074274519448503095458891284887620571199620052632936643262765514807083528533488961407809378807193475349539585537314781130656237531642741886496814379776062725326884165749640935875875621303428097102462481348570697746569626017602970494009878914077650089760451064332015751421624564997464711236113237360887804700142300429033101121538652911889495752372812568920595861700185763723385292374382879280420757493831428664164055639469601705775072499682356899088620612600846467863108179246243181466764844206527616011754194609288250434617572369353358791465322218415626150009253919078061401066803084258398642590515066353418305297113886548333945044328071667163407289756829321115834543335663653428197347423187247608990401129454143025135497458677490475007350252695333954013750881997208851578018743756202339536502056179717248765363895803977505653735156870013482453551956186496414092914177001028777903974475688238479550840263951919092884449685767065964378442460581146831217561504340258390578710145287607661909651242788388220928215916494578144973454621200987952951810339657316048213194781300967484135324781656481791530344232125049807000310943274022039284141779962735188041245050916237854779350763984287724685664155759125308715384788753102299916104823684190496658551017409128239670658657282534081265538371504028162171438966796111460967388143734528329496415279643431344960401669002489877370623752477622378479246767944264653242001990018751588010337494755457242950198087166448062461883238224228816955283468135973504505846344942344203344118877208529474037673406894609232355304694573142275745564295761627978259851112016652774078033261516735702614003404177640562129455964183804540760694268927887724050226373604344104867100344212146399061882632662718425170939739765726070050538130574288060953618568271576761114902369322553838173390516819337434566763181877300431179627775300204387412345585337576408517883320903018954090674495200160385733249844653097731639137335932595067688771432992463288981055004502103160694377090015692370723529977073523762460003698380352266621475279152367562522487628411621807656398153823032296211040308273408326652062391743571323008772461386881313529514173817174951132953929828781167580928149062412922995277312413881628247019394217846386968096647998383419435566423544801995383696879781467422468168475465430283411789744987321712380668341295102327527025727635583148875472693904564858252255134911556967527865036939907661374011251322554302170964286906892066706349103229612445474245387352720757134415856545800899154850723045034865166724211243766113396482175341048636813764804826840624236677613604174932829003805870411005621018050540410924824568182117972670976137635670169343847385374641704391591701317331930203226458503840525032747429925115036435645274507746737341969615668754376842449705516304851480752121357454780504868345978074903602751237025147566040836301122893394877967732935024113801731282893145648977608251088309608640348777084992140957060734539178793592312407701593051435702917925680099081697839718265593203700481270511109110656002216978972309049812502492187734199235639398726172291537810795566957447511568586661228235009504548588193866896184477623078313991184837827124661051030915199065197145935480282793908666380373011776112278983970182661499506091955119919404233256237089157684072640079642783349193800869541116397025265369222038278780622933998750432938491681997152647638450617178612149509237367270850888873256055182130355003917621051161535201897320757518063874978561124283418551846543857855551921528597723969669731777481262086496097029661800626102178599930910011880178496976133725145522984571791987799114667626180990416529652718549616165432584702919675633221425610932925967366658918864304320621864003667230366045139973824645118946228846007612182979955756403680606106003713231057819433634370224097794840019564710700010411176651095507218538437290133920921904467650218074581091800064528590441807045746881880227426747748283677273497050975772124496192559210028477753155095182183316982830226829933363819459814056198853425829214103591340786432990919270820664341534444100056130858771955192479296145446018839650430297666583464548194603987852483118582756805255272743295493571331066760872553893243449857476200472568141872277738440969010527691270859271629190672447619986969605450162580491487471829534379690038476216951482919466137873459643968553515721315323108706988553698718557107907979877171245667257936654240837068864964244941924715647066673870945691698385916529259290294224014454887783283961679284716593702666478708747934973729986897470805730426252510353593757361058434788353324223417758135779215329561286590557450889336850520515718409763130325637268760848044066209532292256983990742651718588897775986950341356367442489774126718355753343069820114870783442798253999692931403339502324917359627411702982964571167986205843644460444439339528950991400282145417584983920986508649780321235524803427666105941397793374534853414771400866346611897953125893248939169224334287451118698157222895627475475406475747273675692418786395655563894089238931302533188285412018821982690588349840167086365062228274230290152360712962255856985391576648359340242943817273726162067980313986228798150009400978337278844237948871971981714080056456249704564738540072728499113351389826172940292260498692810801582476106170559435898017983873330945798569396033530084362883200300392505511176175010397955069945542952604351144784523912744490899135674455255111432563399657388369252401660074443611602301495518433380562596589387476927173865886173228584291053209237891200315015484972009749566168307703951191818833828256678083902193646695720225590368846408462353243450434165867481640703957804998549263596130057825447175432793387108665032741166175178695145661705918850002240172288096433503824561205831061279214819435422120931413353239436884481854566358397456693852795401046702094056772553716557627263734083138831057542297694513334739273511831724609674336792316939380975283610777908016307453053932077973451908522428798271112294904192017235255723195128520028360670400548601206142685882808170788356404714089684179389507465709564122249877476238754550531779896828927629215190339328543440227404401347217293089356397564198324197628164472845290894053977979879913031416759895822200475052326803903462736213442867423326521801767715182070364915137368545777648511055331954558975577425967092211714002875292820786248459935063035803996168732533443985775382513413430277635978467607889268917069919763657392908261953982285439419001907927226572221822421880537353493343681994095817081441209492152736328239542086922595382659287319472632669062924696746964129082404538495788940753904330984690587721464038053121793955210105429553348362194481773679552560180722114764974231749722034979728783735119502175319758004206629178034089183699019678568575771452837590483721006531117768484144631033051200328912031001809402942414388908653464879765249252379538419345130630682407671763663382521217346553884980245857290284229531114601903206689256892562340880035331242791445877024102231882239166004355502229710597469862759664127883039424060288814113637812563632795292550063063363734162246167361903745199527262149327673567048770114960914608817123413918986339969984383005496626667660388529219161226820891735184767237821491131198359840929621679316573586974764399829103372169326495935787345990171477329789824700212442430421391929805524544960425684704783548727754953472925182339478865847269101356444510832684344181737349164138256902506182829483145247087830073772647678186918053628289631800308099678816518248827746249369998184865598688438406451378111047528113068122230294912950105681626385326083659843621206307163707450850873298104940679672058070828403037481003447992687767818346878443535999353460803782364424521690849646755511707575091684415175267322402517017009445192162578060195792755919507884608407514605664449558726110769198285538090985459180606738726870779064367194333760105299533642556000682363535625119301066882320721838242024161928152471692281068210469675747106126978540117964707596174860060457396669696384840161414281591373877061722880688534329022210308328626728984656567494874522555900329592806753014343057842056840592449146988823559074797156706002861182913235774412665216317409435643838615448264265622690676042622342637943435548039171101987691114288768142960142113519813869470094703522123013503543484785668010811531892753271681344653645956290379261437613417082501550475214998785998699375210443742992037110312808702275423800365954988665487974518040977933059661525538258743145254838509447441602986274058196160068583551317329857642180195729016137051162153825023561557830725253529971501199155040812999240163769209562493911468315883936572464531861150741837693283486296912107202516533761427835343060082466066694710233508904744562912474225556894454958043587881413002089562100372968062322501343548850141971571106983341655305678742438944557596383328369044927043138414037454791713202785521758721436975944478507748762671709936902914825085556575061080960083583407981603182374145230081841679537757397459440255164764979770601834030108553217776135840067539576717924970177500460059804797339829679711185423735603293216507187732680888667414095553685974795826523576904022618092145202653632901283035851222458715225736750828983854062481975807627779984891703949566866357846510459203396752083973307497691450984550554260027275274502301095566497148697254162925394504950063629133800997432761037317313596040415653831186337827242210652620577762842178813972216590353399877833044382398093338833276226825751348059051406422622844229327653963364681631070063569459771760831820997360498335468596627977348728987697403697456275383254460226813515731837340640898116364520945181957870257401144387715266165294694702459797459639640960049973358033616618605104870843562206258482220202752210739274258048294248675695034107839291398705395320844197276397381639762623044559151254443315855260927183060318832159008684740644523003573684963327104629966106345523963231204505336205150534831091609342440906891734778151281508518403093502140142142647236690165955488074198616502911644572772039828952187150615552787417914558932594930379026455957411287757323411708527531751165494776304757504504694735960316121214728336324602218352278602302393012061966903431674609588425639472138357755934401471697164551813443300077015531014262827691751924643139889553075104668851778007468907010588660669090975334011308833788636512729473608935491518153746433939832398554699418560019400840804313781459909171035622533644932587009420969686702671102088684971254462969611312198131306741154447696183062896588006443251654931219493989781923329687942537932223182244016552173362021400630182180961557800087864408067913213307588898281089741438064871308262444826768080035653352066031811851876882103571965564734420746935941209946571974467930083158942313208037686136580449135957276398681179285456193911438908242597209968134545403696798432609128373433422841009479580789540822843016563092379182237452083083527321804481464132376980039865175642956127249908716982128266163615794156127702454887633020088926703159233855007790580753215345855634797907384341112337569346997107906986874039510276495710647381547362165835695650774069772826543372165395907927380487589143486679687837497312073332830540744513669401017044968102428639113397225153403369838892726912591949044396205886717559893858874652353520697558036107285501412169583008176312973776382982873384193370487278768805786107126962815965256594097319657178688614697720003457663614162569969659837874668966240584298557727755283211314477870007769792133775612262812363601465714011405281511785735652502386734813537468652143221030450168453444399623899649379130500784585558940777991225553818761353687694675567679723592116377251635851701735271167423592074277064746530917932001697001186006711568519382947604987772323790406448746802791947479314783129044688036373508064846064207461864105130928756737544817611613422256704331132735401468579373133874726721698605952285831031162849067289176225649590992993744276593424064804383804396920866285043069391927731818410674696335755766774798765108427018586668782478010692195848294319997668865628361945881284378208511308367170464358858998448451529215216146467126821156382974654716226212518955890330350922228837379972347338877754095907988275076329134679339457353506049463904646029192589121817508945845403724660652529207175394369168499275914905780719522180692571994318092883416960038917548419550529738700122605628394587364347811629271137139913548701455900952973112524335141152517204732606241392768558146374608503461362469395080392745585406192035485764001221531546293230888037967525060529666007151407206585793270741210716253134096749916140578419344408744725018169152609211057054846507516617005449070636306399157984750277638260953148950937318290572782759253588083953133637592914650723374884064316726794958907584010261078705345675128667507194173417371632498307210708184303254670711374054775354785882258242749575471158739434434267433456791663054575697090543795548841150282777495271542394031925313046575903757372644271039096339517680707139086378800607388572726310656565344023150967386736868279523170219568983687812559691655064707659025102950203513384930979891049750044984214245225682422480630649568157418684293042435754061714043024005370895609182473990444728930214550096673852142005587737604075768821118177113678758078781074791442811757425718240097314092226196713959752250967692137201546845619648075511041995140521820417800792343397128756220751995018049539721048807551085118457428936877088317421022542910238886355719558076981456735813735290107799401860569778694053810472844887445322542197290125911533914148901731403962886272659747305643291452036290667689784574927634501789146588087397220344338079764604264991900625967369832634201715599583160035365876726084291225730778372582681747206228483568827378084371580307726019776814680781742764520994807306153225902015874418122683227454553223515452873275223363650282794753978161366524314307449531816057804987414836125410938222853398301123430671236361058457121315512495059054079807736430267338179169036864651484492369382575819155178395222250463212238532947119876889410356502555842888653110244121304018838157020309756376366056367460799085807253366928796440267313538719436519617793576776159594562216350424866769616637806643132814891831393003732518295514214062610876995863571545906558239134347366801275442027624010635014344600914917337222763172452862283086640114648770397296415754432282384019362774484527723082661337468014693283406637695410203254966593756991134093178477118666878080587364894472474717148120593453632955438839516602178615786761988980712870822561653576518184350459878179005344354173297157554392588648277108935823743007571236052666762740072233603803513135550246193209570910312543172795546316483735381983726187091154510735304857111148303060456577730883647184063649110216594120179174037076591313304804569288568306823591290513498374536735949115879939226685948262639488585469625075937238392618775279383336795044985086710013032917475192318960058399538024132194411231939620281667139463831448047169728103572842779749023562795897119653825090556215786022744039108278009220923346641008677719596784992850197330089841391368364383879002401101917421454995031309850270779823791764257162609047142144648337468942879343967648618028398218570507298258621427560406206249970011898600304362730587573609882525461245669234666469663640609368830140169324810989433757503135009852796053070488679070634347535845488942928822475397121049094066950311950002768427757459336912079741931038227991874283173162090501298588182314955459571569781846724879648507750944710627448723141211289133226981171560677567601061510530449373141231945912556675498497527538991278074661956318935331729864755085939667531848328220082619503671169304451106136019721405948121654989265575025479805435471460259359385169422593669330636532253112972322556023859551819978596588630943099783500598824125011926004596931739561023237010730613345421318741063292061617630831575878401473701689206259418854609661766805656129485143854091668040023989217357159974408272534373085751883786738369670418316956619951501282312346414421554993166686093263799669722329633193068378892813404556878411158308802277490073843793303096809781399488539378773441984426593328679301785402383676261585155603746746205014267487277369958766513843193550531574530801791892709539349971754018184820531781802120572558393922697068091665708334559381620644107492989545235672778013619000267280911914300890418805960150669442313427088246860425896163560838836950953994892187291965921097168677486133831481219541439753769987967879601704091497701483593124001206498789992813191856655550942404042728169744056971855106180104339804453332419659811207818045775746011841803545348150827533613015418476408935786733065633171554063204362850258992489781226930476195362653586681873761790626091211306959322998321661874266811157679928670302555916449396794640840034676804185291277771135972520521857093332169410717244378362220060451501772342302589478732446226638845103508306347656382548789744695077818631993351333850255153688269470907885801918141008200106391602737636645987718578085660533202850279573644030884325308061269474980031711862337053926966026647163029892937676011899457061694367609019796061182673082963385914464616296549249721828118858652047677230690261157495541047037550365944898071870960585149608528693255987018540478637459058078131372901005645388794331502837832983972913394564494089857027916095509897636690391928402040523342895384949112458925964843914079980213871497192965446463697097526798295720558245767656682499607522645352247309856506989876418105358781070750398411060858255044522212508271256562140329319821581160696808916736732293844890373876443733343038844181616865063503498881351959403708896454273826598041299919938468700388012644383862106378636188616153987440982116053099402915867411896735287329548986748629248371422323694270673919103891405654722930072355178680309429788739313412261845643898750071908229438060312295007611836942568208375289654794670861444403711818572615382076341611087505718368847227150742344615022928547377973426592237235772278724390500181043432897517916694645373617944377845595950903695910709766712401456245507983240577600760308089056846750990574557276893558416157125503974726583206820948351611646614674002776820091548508528569908141200581640817700518138715134449902912201450851573451163884577067206594493509759474319399760540590730405708945874640507715688474571429316789391152121406936508299123066911121181067192033338184773347520042027789080646469429632466885321891348424924894877637871692278842684768003874260977601806941896062442305473705119408195912187329985492324627461411149482778562984755151638926303610111046333090945519276890100985319826186129623139719492091038818707396689916215074402310654195426719501907210920347397825557003826658549231802344479846992317850247331091000675229996112561431628311177321935980028991290409817261739460985664078248933247897688077255479814890750250444034291884932639452187337287524928075609575296423021312977557292193152961559026976991805940379551432822358204661417430133843340661546893305129915390808450940102275287858946961300238006154238047800259976032493894308825052614092692230813704098956030109162122636381048756296045961214543541939667177172089606950962594286494598598581161660609798752561451808326644011143759136248672068691913244359500160087485990912286387776025298874899888108988359446752479571124647181377054692146459373433259689457312455114423521658780240957217457316944048351761403379187478195640189315665271573788155699033110744558141971604363135987019007243326355050382265837574686126605576676157906781348332310363322429637881910513622866246087530302315990844222481123585946700010284900062169285802720436262285784946015130064523677465833339970134438941405990679568752617994785841962716641258402191695176623430416075003246681824193701660631843385187962038422664206432077544257609452212999283715289054112457434267104015220709479404184329770524129342339575827914862054213540647139100622695288018966328950359584977118395463463071520801118396174418814543931023988823736225602626431308315884135009829260724024828178356594993533092099455674922621537812787107971188370224852199906318175941555599714362461865015929133662538817927800902537591646057955274851118996704671940951198393443190226168420177126661981468981376256310054930009723810443742371086292287151297819868582175232179874644425854917885362608335123766086093800107473032703431405843027491155586551213666656538687732030378587104790099595308552511297748462886669513894927800120563790273687651389128812340179002810478590545841084712257528204051873353029253093261859587389604994634019467904697641975987727023755117720828816852504659421053381860285125879548101996790108302872643781996842678234374002241317664943097531338287787248039187772313154640211149226310519204401994960345777000893483162392056203912220977037890295127048303268880259468521277822163296879368875859668076502818880917201834663944599724237394051527322772117851669912254392334261782311386703265429243381829939260331294744159470255031198256778561951862768652660020484547882127488021828396413598929740093388247037628805122853796540929511260737564237791967878099524096973552670803179759043674884358125186643878898809032143027160255230943600169109607319679108883847230515415916938732195358244090393605767783752343506538162446904412790556122811023153496219550385669668772460518211833554880966654664128408200905878998561861098984117903949025271704167021689630187807773161317745989510583007063705125853207248747540353350517432847532918262754289651131405389100781676267644390131491216725718865660955989289422153833397116702267229743468096667635485009555770959199966933051683778817115540087781456393123642750775199061591655860902424361900401158213787884655866259594156136730918138170871573695959128676765817721056803420121900388504362434411328159980177302210196410756304850717569176958147287069033540438295339739597581377329382760131095829526105781635924921218861523682897700754162937736193274223466659325013130770587557988776919531373445358934802800543595055091828433038021050773619557544672535108907658351406714190669083523989365116371251989017102539628407280367532726465545494141668977617360522328798497720326198466384654744778587412747519984740614623291199426080469982782420371510653211266889949181036666344291130211906878671053069276495950251963989085331422741392595777195953990853675896964060055743310488379592990101289882178636270903618650471083610589061080612637251773520973707886500539079385286589362567981637339937217754985769171474934263611756550216719142243580350716604226440129950957929277956452576893568967697990298143802242532333235242618593766112365784774515540745866604211338286777148517058198971615905637594396304264719181909479712134615671328910925396823149220846416305606841671084807140991546096511977545739577065281467222460816712814745355501855009701337643104636407491655318987110961245440532935542980227654880748899899445599436512636651975600744328175582887174066312967639490858329483355034820659993827987784922086355304381289664166226183931252677013682578702561075251267166333596513254291046515395519556508867147041945298303799687473993452314668771830809815589172904113328708268069177451877643126378985500132702326345681205107732820722144842169157249966144777847859542481135874749446071296001312173711950420442676232819049709000600137016145718207076019715091914323607595248826702724675807600349966811024145009471708081716104886022131121296359564716833065432549004987663841007224773520500032797145192598041327366079546339627346626340781576651704043105216975142244380842129067264772645547676011205827550605374072813024660700214008415800878866006068085698406947973264837784620617403838478993647378112612080732088472014984673371007215610552236796442400944243630066113463110879311352725742257100202261447413849418568890853610388136703790634109460958522351509009910186235100989334734625827889876996385335704974627096916006828258723665509873957347989475231761986790194142152333366585746979111687744189366763967995743547217763146636002844063648905438056752475170025883782493036965360108474761618804188402497260228882475527380985598770476141021562139102971671181562273588847665952373754831910970288869305127267704591911049139242937797827584943061113071218662563315083372013211065932626206536711737545411489513418384061757484695490375523251214061180549655312217730272373276408897494166048609864810061790662478826044148951872265597195597474255430835455868489987497750347256629611981115397955589007797645109456704052275788589338741125842405608440216483643944025202756509742120047658029004645320761074952796559968786539871817262317372944875204695412921283125440083628715089597941866335515914253811319160032710754939659865991909400681929495207747200335237542078162571101056209423531896158045828080612443456432087985688901365038007079804280546465920722535978437095491140098834815113020014677378461680856028248000349549729980351314177770925598124167265935605661228211567223845755237122663771524093749858916359684665992874847797934807329428597315818593412282038988874378540238178994770325222385788627827213665491652239050126805859866871738215570487671007567777953660901183733616133905803008807828752336414605192893136317199352722322833574725491649101798452130920876399985418452459570157365538500195853520318127543603954350793114283807365969259999904949178674961602022141454556786903635701862962935098159059617479429291029778814335390118069355923230419259811728720826015858493727443549975489047865178277635787108901028223694498077435058410304209912250477235146526087370186568766864212122978608596473601203950741365438648434867383884726219056059028325006223216436484546537222415365656135015473340146495075325056244448443529266467485361350033473214633482124818469344144712301020064049682032397007041512164741063459758458963843491537197089444130473599303740252756197575187011127432444012525361484069429361590587235293902068998892340408280323973967330671488550105295946403667180621610694842843028499455675914158600973311111734260897175495291565388852253924873713188007177917542654247719197702544535916422991219530585371692800335071123854703734129550812144003416929728226744680394277025873035027644508292109002578080529021236364037584448450360115767314974009022168541160914507185697960886658113852868768778909320574366412217303163230930772345122154387193041857384774259911868140627923587953597047717231615261132610449650529103032866128217236570733033803645989712122383096560445746304762446659939638406940879059902220669573859207648573455266455675760744738066201627287368016200701769019624278985940207453322884258550074475627440990288989829340254657979774283010523045461827937191678190270182861156099699466696436448094045395723254235147060458537585569707303039933776087795067959335313323642202418608412261627146247876116418511528661393266218742810540398354511668424409261909977130083848430370222305696295611429809271108266728508970131132588855556843004290534023220916934834344722164680816778090585407815357644732559977575221556081392489720419081810706439923991573116925591707920964886334846183786546568469483520125947511256933460492934646734978675083429810809203125650368144138254478375809465080673158555341890881133847097683133274855732480798927112347817686219572050013926893814418217510056566874810439435179669588784816941486677489324453475184397759210897962182936960283821414054792786142106154199946034227929828668250798480673074800487726511247879474154683673772252935938574768780998762497485612782419809991516108307122192766080554167362466320578073903508162241223983795368656496389186219548164252604442494586200652257648289001111146269375755528183776069078129882091218526606912226883903505466371896748522557524368568026266049750947454085619847370325172675367242105346380801716960478453027639803896156594392286583197937485648366189618396720345653237947816090267375418401255624888768940011778556241997007762409415672404905837804079794295407415952119080501756321164314120751264543751690922111768233661254107596852990346372381766299659673166420272396682329061352886678852604602264554706200233459162616605988002679319372585329893525028746763485164442529761516586312303978974237174026848909805615407611049003079337948695983471734956968935900415637180657506881562143216404458600782186824874192426558594702727416158800826733986687351094568105001942260718826983785997647194920839570638392988580071248530526460984869314433432515425532764342941969843656141266532218244963249028672718137203834252072477629999160705123673344808898192690695298541749609615505295214433269042292298117347791375118338143651086144623143197517320386692378685518532352569417319206003353390280439451882220611605569318854793991746161568670119078069375664129598638994064398336295454532950097638409715741754111273757974588118124036478751544204918029503295399904858661774405620472117644671819416166558841427992679045205426599192897650761667187868284662873305731947621989329138015077968463614581921812436726687976962158045314005730909459964888551869484922312785636218749400687938704362273232093308976220818768465400524049831798948772115033824191491293963163494786630084054426661151543893069903718946859839128762577434521709705048096198779588671482599551731747345277369178123128936195914445138089958433266485659148543220580334657382427593886111435367239473145390671066671248279557900303439253943004784375961261823177952504061437649692907651535659420770955555821454616757436155638462836519789391335668725013283678155482519316587902156745600840315721234921178294741284030356985133160353295127025711708175639572328161858685828575803065345013727850005738699235757060808963463951073658972572351956206395428948866331161550939525863583460757322511797200160021790310886740232187027430188900511528605263358851571995327606179878751037961049309090298747658184184421866850833463282443609496192143243491230081663745897859631384285012562257128685764906478534483310933836047409089867455232950190362063772187707919473906990833424484855470256459577176251431851247388085473291310238088333633542994500626635573425556411303583939782894899228908271760391793938905093879488685227951701582542460403201804913378348940076765525470270842109481975991177954830982761279936627772634061897684835005262995665717970575428266623182639006313055914226096245264730767883970201518076994647931345198434441357869630707445325043695319142875862108185658613939826700430712145643081990863191423717919463096658364502988306699916835414127682241250386750817367240189599354892207946056290958479294911645720062467478164596719475662899161018501392227431714264375267189437468225316504462157670414625785775247874777872162172751189433836020786821642771898218581598310980008996623573863410625276731859627769100818968870923359755804651229778844821615059354690707322539287586713675756788181600625966863771429390850873134829360040132249986774918621567288685689215387026253209372647675359540142268319062869325412055039561058566413233313599159623429680977490261403295433739081457156276398539156356573213264600606688244691795196960461940662857954549696650088811175668952311054372029967328220351400391321682951826187971252184529052497934448003973689437315517922769964907271353137146490371443141133236149320425655678319298254707499445721739699316906131802319836934959719655621355124677209317075988650571444137417312728897486127516689994075943701703610472289497453613980986073153542795575271577406609498087539876761623544971090862124647036574603206011963775621783668149401997670228425739225926956336302951139746165699623135344368366809581588961039075111905605164706995541712612125478495451246599916976804302799437457065699395433249449743234801315326075175331795491584640468869160554915321099860005542944911365392084749002038185599945081835345291627077951712315595239010861152820624373996026449814058204124018543153308965370002017188480024566637280969003011652067685660156041971418118316768240303584087074745665236267293632035637935442798728155089294275808880196216545319066478356978126643871259946976398501606428865694861570120347495575905654811979250456913916307150487437665053038067936083875713046349549850716777955951632587137882826328410081623404697755378165352131549579424977430814611197634301351450065293411509674354827873707872012486131023658840153708547892259287161805064282106929670364230168970207971842402977682574532049134090342543471383131054458656596648746978967700903386544471335997934988739088609515390988245739539378309400137690659774422919801743963285607053244531665405549662747253809160699710061984937468643608812709249095941577221622469859359310048137886294779343580762534999956225323557218184286379160420138762765424344303201795922632548832721346048131952081238813862307619487828077178010040069749597444450109657803416184287781501868271125292003087585192087989501554565604476456943098012399014482808572710609518349166890442300192053064488316101791630988826338648427425133285011917404157177383402746438918561509942388775107676174256413454981799865522275816015297507218236265922770682119857865507641496769225374237496055490189675804602471936335945293907354153487824909236145304187407647787078854652089485999153030284533500662672605043185237172866716725761951849894049668374458204169920330035721301289836430904919621949576486452372683467222543332274157272308939055261243249681262603622789946740400425373480787260765166257952607283327567430136125691622974559758129289853631014348731536829561319985565265464169791158560952031400743606855611588340433936312223799208811375459606901323307127368475591946900906435150833835189812041357667544944349039289520386713923090568992642649458060997113270082566711252573246041169959390340785391162722821399671409031108088279169849178759515330749131024147564742367768763898551424563010477861055894152104008785723550260394616981873470648854552531275285018868685498594942455022079039374827161155007013294541023556918195421366755293448381270381732880133059005880205029911073830890338276416075512961877734805553910424639890351706250647358195414212317453247077443555320703131894776792109721318073261299849074331094233590818715538837804675632655404536406495450592311610990909835437606214825870637144193376690947530923093608197623726112511415058031479817404702297481065749095568752235155147246624825681397546825057182014035670948271682289410508104104289835186929841562543279340126207867936154088488388857606264575272788479877090463356128523301313709271994829287753041631934655861141395206563129824458964694559749408561094354336721406149373170986964903213086164381887401082807485760035460956832953278815872929265952921145366193745004858868131065227214457418217720793180325535687380983313399048065380873331207840258569594808382163000855621861515662034926480462557383860287789934374105150175630520349933058965826630854675966011424196547701125541927716997958103571752666220007816956631185851234004274395286401353974222226762898244195759902786055223711895839465997857206266123334744736978736095448940522667402845001542582190024530213659899805297979363747432599826505387118652709420016206032000006594338316298318097771725152541795643283945313344903335425737070867256528774562621559824992536754562322557198375378075235689858985922635248283283002296131773887794607066746241734416744552887254147481658481365669498784350099654673546363805030901091548865516186783910120240025215913920107570383315655189769764866430951359474055467502431277196164939392832795604025031195966087740954506700067234403105200337059079620878298152000773274800703172150007141860355674980718895637807254168345409283322390755011901708295310167238285981720597705919915506680816120337400948056584383735322140684656974531241498231600184797089043822128979615358479886889269509139340787172586760804871718885218067461847193870886575712251627370412220483501926881461626171006504960186514363322581744888559201209267887809804291498161021264997334351027553266904864789983012664658798556675616453438668673518370015088216544905903654292194397925114883381685291518632163991541865722913357601657723189737834465052737586296097457996277253698256456528576046801523630115191875164317978272070227767422286922985868300592202272034278840583676806625658337358901450711369948904472014471637891432614220720071095019233164089989421355572796399232010731402602545639813138935305709252050171884361665495041070337727906188323850007442012033663754597493466037343881470845058254641315653883925376975290371902695884242035302385440165514669971112511154996553272767033223083545026948189034995411362942792779846466254804927609480538015895199315160954708411166771692837134343447250383901687637029150566411707100074365276541339950490720380008227537945162651392596147753168015082175535543700279703584771401808242945848028506947495513845850017880018911709004918562714559653846217261489404166015896865272171671652590521303423151966379144225873422389890853528908430960963023905975182884759290978696437140807802636240109414656240827652277350664076827978980394242082739376538645591816098361122156106701313667967545898439342569205535635322057817834617617824057847235252942138463814229115386718667309848727631826818637609238033117841411495581637203603910543328181120139351312660233811259571022054064548020679680527068242486361765102316790688858618678279295289095352346651548221964893191832249954423259463852838269134854925985620935358318447156282946717319786810268891449013655218691656561442237781205702078011934516751546711279674112550098764392471859633374132001687154507650376545261621222181784840050916950584100052725009267858092082177121666385415198103979335523650582543170910388361067613452976290020814221577423723167880567550265272351749234891760189373218488727091785372970211604013091165286075728289473310412813463790345763743637006232314520975779056100314621773617584943192531165374639289376527958731788451070277127963751190381759186881421781280304306740595191523574236914102838526359114127544706414199855858041643709448481278847886690741039738208938896623831205332294205927591835987070765259559236695715777159481225416741918844767874655443424592508458124036399472831578902938713302667940450673269982838446222507956986899883266621582977617520115132902485404450285635969582987207735176453474397906221775896266207480966772064379857770534227643219569868170477319835778852239630001505474430746138666458951144318078393064791824441049008904652770712619694073831152211928837285861589507551335704531077646519871227790438709460164960769741738821126327414062612047148941325583183480692320360435050840570478235875355819618578083604853052846807842550182202497413381269387496932085919187958767330816388471995047085383402096882483150478543331195529218023027668247808283166866092450314689645273832117349210139185212118422852570226014287631792533203441365151410751920680946277085680244418636238017764397726172636428109774237516500017843553304563738853319543682772490822232249780975976883339437449806713996435646559632607700910270530742484485241838076902531910964529850534866746536921766995367305259319784193958226598128948969552541653371501546077793037579554045833067417758506830701240500269885741414711840008340372701346751335713405598644114610391253627905363638576419609169748188062027408432763481131616448085170377408929689839970664625287954634637297627126462941506829373017060258023792820383104332635210874371705218544377930262270744940517282193690198647947804834068790692009846919540626462285786907168226019700633636855093552572052446262869378082885612273168218687148400642518041929224297262990706906750420792751198270884716505113274861618703148417788078291224314706684747672261183490832594450805930574841191208704547101002198350735438200321523370258196190920712532768271445369281257458397320285042849666236560175654829260720974732721688626215865741780198032767860900528630019549182745402240325684690823972753608665025248365204799166079931867449459917022657454459915007538457749295521011993554717323651588544651826789945697256889156107131958494434549441997160479506647340963873776910061570670112513538005987229572339707526928027031509814788257813362763502180403451136507929434078232590491214478137365091422884537451505886680179187100216822004254850402163203376442186727397206496041629367204697204706772774529702621754344263009445852351933430017036454197128590324922256796174830612009381875478964312481031291802996706777700655939817985631659181749677473690420264293898598167221834442264934573069810731939153488986341520280490055616442379957031512094160147867635361988498183674479192789486894524682743053594752994947073130019979257072533990976276481512539743776557143575247084436207432651398919672098414664766589883934229194011636396923131541656413351403429414873110555039771953794005667411000829974329124669615746885292794020991560987507499196136585745272908591393960750259372522148179996311541397658592980076324705302235384354633072789432600864556066293653603038545493647678649399791346070744050747694525780632535527001986964612585814085453534891407272831715019548548890581918632662115117382529520604150942098393096126732487424250372048222427546619913316831486325473557074209128926100054137744612532988368411048696209323310874065098186924858474908085733228661619748459654387251780543818473691244564329802886030395868084549097709379519667881080866097020282033186536515468909308130541298229239569593955373554062779285802782883574855434273798841528851334372701932933767973002239598076134171147964971252455232677917094956560571329767725316456145096104856963491554991366732683357701890904496346923248626515424110903279362058536915213049822650316055418951403735279899982918985710114335404894605392166843019805977879382334832364718088929659272538452836957085048639227200998873256903714413187443406897461654158774121870523846440436724911176645953326795355613950140511429882978512749067246344348885489528289962892472955988929909326386406004408263033649372858090012983607731379351121099995589931276929727498440267591829249832054425201480770136996986270649339206955862455867759426803575229444954084323893645172254686955519590569307384248606915982640578119391806762288924049731899552249991464465937494823293381889497629950711121731324851685709438981769483578727801993470934732878632453207280398739705715195388158440657615942057845481407185136762643114121690791336568608881893159472570652860892895728418116047276066101097102489513975536707373594994659243889668047731444812118954901976166127132160588982161099843761132894564198418929410307551759594125362440029580346733277522334838288219627660909186553057848240420103477213081909744825236364203257413941064028816702718102250806528915163312689789723640713448621587950686061348910581022108944102417609198576216502344288953563910910121148954999097363268515627297203048352707840119050655377290053985114533151736115403325762289225112086231640873396122497568584802386272059808875617095171707957400100171114191562297897138228033760596368111055329443705191908782869169159791531350089381628584414630479339449732319285939093439147426950173110853549200539475028084962205213955572693793167613711997724834547052386002136498850180551480254717495700055811361233724819704634782379519708280001917214414185009374264502101312810077358555966555483041008208548985804221164006141604731932091030410541771442049059952321330065010229997911737494059870160335656450683275224411122134327038435670749833442449167216797629658690348399400374070428474245065038341183247057297892410234053817315162303017994254496307535671191648782335857852145431355519035753361258402840465997730752843593966247592101308902186324443330359120227354213180592876824119346296076189722020431508098081078607282745244521536601114691008391158343526032487474842047659214532540999170923698765197453672945154809071353509575472073316573485270117406457287673236419482377192381529650075232773325625454771563016983441972531462114083808636078043627937399442440113323253789347284074484355877760932018475210100328648441510891113024713447291229362487106449077938174403228639553125261151444783352692751496889475370283168437365446169217415590133711905076072344720141736441429137991152496177825372547785311154101357515013894484099032535195135019700507947791688129574871967559623659845228290600709626268105833316829902887368541822576085570128699962939419582930086217752925072662389492832567155212042783177607545363918829245767073545366901308129861192668296091095410680424525232689038500457422733953498154966696798306552544888096577992898505118535688806025613217717804838578700676144712076832962597598107871248285245723155456289558319434997948985870665992813544313241064722756805734268156130569599348178670144223750297203158249015986632388270619516444779688576360579291382292984753082419170111683591343317256474511720748914334636156938744574700328351365383578062414792732985757932942773278733757224360054610055989219854576194983015338601922906512021289952891598878962750841241218894141564976914916626000480622289558907040681537938544909545267369273054892031617154275533682468000550043393994165055290686840509042582242560994309834425179131600009247742565011936984018103898990540108816165322214873977764011198540251160257182030502702007931344001312376777944427085305391186361706016387598143657082160834970623301865730797593713120487262968695759913945445773875132799587287061415190772065025121112493977614151974610051877485945026898261585381981322072414332288484904265293132570954778881843393825637182548749191323131924077875028217773884931496080235244216512054777862174440479762220591262053695727233660403069570577068082594973606317588218860588075043327397453822001125166012438420784570850822142271850951065073249547853763081805052826305076609198009822857320024348663978961590380164413378225260367360281496570674010981696657882176344830911137559261965016715269520368682001846129605745690058836466313784408973651162381327591474330872930727866433801487502862070577550211025238011309708795485020404141619766401283344066278833652926571580530396297210594289366359055215951283183544056173596178059277629558648843604307064721704044127277799197649111696269988486775083919511836132946896578138806282362954637095166747800486342626468311907099708283572661020125018668374523332468107077691772050822579669196122301413767368403095468249384410357283458987756699683732715894755950200749441933621507722443391861221626424002599873309539286391953199250616176075699962640384293088007647691452260649912896973188371954190290037762192648656667919625846675361191250039511517598155664494809257231080731265051104671103291008984549230620933269909865421322706779820323633547032216431812157409027751994610850977280091971613430666548039134618297178184084535808894931387116799753532235314371269975005517022011629363888325316111306890042146538534928683165519740999398131011187076515161518648924655268151824984582177236603842540444602838096513457787146627508588338431612389719637147579204293362196376329820172636069566544686304735460246272031317114852834484546185156163725280451737119460579099283713786042644741427288658997428224544612721326390128082223279399915826891096701697827888297756644100186244977994729084502350706784553952923489870537141845283305186659246299097079831637410363765870813202825782743251074697635822590593554095249546004162270944982938874988215515312680092104147431542573180815753007967399289571587093954805380194185871125096243732077165811437095269411761129694235130246462396210634406798325818403993785065090833547175537418327445753348688897871064231037770536895889064955492451743555420726297153441093251930611454749125788025668362172146255540207574092044895293305570888272789753295930112087074699812717226815901131756384630059369249276597405414540794931311212205004877999270097541455957039318125152529926514425124742281129598894950032429470874861245678500804831800950739458505543705471819794782318498895630034364560805033957300877742575151560503740741866170504788105070265321020617490026222008863660491236232579005125911792868527956715559731813076894946182365964524311353837854456596173008707810581249666502892932179648316450087238558593706048003394550124632699355141186307219572275526217451633042314175215443619070359601816053622082698309662495411589844142455662308045262065867068404482463089660385380504738767171290795601055024586027165669135540691247746633749507980187160158684144097854954406796120855472939852519767297328563223861676660560784388445685857993607703725076958945754665500615491151490849910710014199802548861237090784628049327887848832553798338331435017983466499239278494606931733370940039790672441508755887380323666498650500681350012666908552032020923401305429110077638597498937797416304311960529215674462814367996916446620352157427879987855250681912570546190533052588707519479889409312764880526225626726260894691615612808889716167185220414861137702487578335390102593820379740899074330383025389312952678237671559557333934569154359770632200786731193872651261910549090227624182173901504240823770993116377451014676337375185961565858503719549697186803698630253562355517562687114825977886160430400820965770320426233930736957631787196564852138162891154116510993781227465227763211796439511190052136434057005892699721184285598278554909017802314937047359396357020982748272051763225016106832304601012789553194011274485613949569701620004962480080574283951493537778357471901827361290680366707215438385562242266021130294874207659810301446404891424427889006012524498833382409509202668072151464727865617600835055835919735343498152035272171801387021592807491458677373260187620012400389079850331415320434463990471680017399604003303287531597903755807484485138549752677272697968777184657666808932159645392997397359356330796574107368137900424802535513507977561622381385093261696031298584060381864338596138583013815224275709075192993976445071255218052109448312952551893247288738295710635242693676965406673844071208709115031284214085615079338170086442898194405042123415251833679921698872873923301685656807704061607504468216265758625701154109149602259587702366009867790192722757080496497109102541169402599197891123037716968338038773513498955636913678865318841161933786218436166029336071565428704727970684679665519778163126440182268357729303676235329103817856297678344677610636537912212480961900193704091207638762830088465961107565925244909869867738984141037603968099562267235705329300118424571625624943620858000479793019199841747830026882527330268408235402167538073517472542579664374800596958828461226249999384594505814482911069793548313073882913154460022503131648572763968151007025552020441131866291240368758219527489092459999842543017087753830749903986808353302405346701085876223252015354983327064943530363860342236525022363917654701054330984622334582734464322397917368263110683383155932198350822831543981184753601517032095420563460020435891094898290430725587173391330690943047840610907689495343355977291700354587680352561525925753192020145196346138498018205262948673468037018131923954685753482504447930321322018826686894756582031054178572809384667436926140304952976981868901893629496660973612262580136039172315321217537101608160827168741862943960211827655599691185937905056602513424413265492872222172178795980356190597388442081765110572130803481430500970002974890170869004881381881123775825667743278320110434670545286494987548248571029514913432316379574660129607140387123515938472148093701978900027704281497357549368951947236380464979874970880322012335693280013826588668358463742178703202791543562424666125274801963411310758955439756727024227043497421025444245052991828171484717325993767564683835111073250015556346216542090525811885086598699947106252293257369154951337505004066588986257844604051721030012432081188677227880797284697995616701543045662853594381983421619678112787433046369765237156996656163756906611207355523590676752722117002621573021817980076660663022766708528885797662462100800610528622781888759375270507061837748410595460622563639308078877830973166027379206258698160011407265926369172577819042190150919223777299626338864301381268106699066212063810302913606225588175561803941034692750107101036096894092018284340552433925252946504682248998614764646098569687957311440965075222279397387038719116325524297513334628700160863817478434586034758871448568042807155853728237033241165961508010486979856686073846239083708647613593085702737950633921363959994070956892536551373654057461343676857914821968431904360984029054882883037990170073042896855503590084798538660302046824936159856911202513661229853828613626967389148962475677019196245755829620375376112169157206025706481111460358719663087209503506068589219908618672602523828090312541847398797347675482886595001988715017301740222384628368789678701348898598065308883885923321343151476069249099568461855709572114716108388466867978918355943013926067132460885540024132247163690837088683439752414564252717940397267021781861034833800808035899662237057343236476936585399547377629852864894608541096273518884031895834540560459515816250083303563033611280080196540560548236223453842760003154276110451324417352951101743606445707048071417139708421693425520745567452774530831904552087718498589712758855028408034409150635054068169015649487923288331784843652342715000305941746904139406354251794679096727094015528364387247302709857446947888361667554646702275355731506556636140548903284651738038597402961476859610390946320740069980598038802783441432462230612513547290202577786244370377767942913614379713850618913146302723739923521551218738268302838190056681755697555788746149189948425463507064430758532047904821330391001532619482942685202389249394945491619792045568851269585937050624428019558225767467963822978888570263153626838764592716778086498613930153615411727400231381761891269199856849204350470171100459183970862695463926845382378184100035815545667674674912678928972654341077295602437726949262355122664935128780166372245646276276307347562612066545366923995158554791673936215914522167353187856771022448480229446998779087334457118476295909317565787128888762497757149375095865625372931067880532199358872157077330949726818890634323893502153105216222402067089448231402578630496758250297728954592883400772804101648381276147699144365844450236805368328299825416140497002210001113904997788482889128529133001630389463227279019768188459090665909180043804591244270621052155121972641948874452309526178176423132587671240802121487638817370872340140053622156453749642197930478333704545902191621565277544244703564083243658634040398195314066461827408902520471010229175610889024761672060122644083361753250054436563289006936684423215148045674945585108823591372349622712227768961201374220011503576750669601396688697584272402097472999224125238444035780521554036484627630137010273152179883158769595171793735183793913589572274595695016113020226586336310755802898252515999068474205404198884969389309352789221517856273488390843339709478718142346756405207678817470683291411081467246302059333868759840737469733952020301218156706622345483184761207844777965269335000295740642226934195505434366533098384706027311774657605605243561600938771838979632153370863375949832471129624406815497669153982148950979631012743378541351930460708197055734621499751493559856282028801068043252792264664079029904763741970909267802952590518204958591447564922719405978895195854162465842152711327603979400665142616379445388606397511323245346915497866399871416457879513212271535566742950535988537058964010903364460671291374796933638123197323891796360243879955045224076093605903548059990691701057849697088062719399978552293437707495683044989825296769406519506826967410139517577584824830718901386830052238973137730736011987692709040938810940814043811147339416503585276002912680056030982623761643406727824936753847205256196270786758378262952287933222390560962177159705800379849406893536214339955906944288301394781580235444600945853807199262179966347259325295787640289179666301172810003985678999269684290534935735594360277082381746805075397848276757912651012152406212950621027582137803915973582066770045966892167983897580443569579040823860944361233396643850270358645931851766831398030136110760255737751883917799920388169656292818871502468130769105217568629944651669225631192318569699947714550353237569538926984074717164714814473451504042578660905814092859262302917800232486848893503353535225653855714420957789965705530895427492210185090965890730746762572245532383083253527653106751893136321878347394498375574790252952195123588045348765098896153548262588222540658383002995821747819459858079967348542136911455698602186732085123544353836507652773119123426915125591799820358588848442793988438561743365532847218996833310623953283389999223139943803055057688829889248961158215793523184849062909094222915104284742516222398708261866790489884512915425697883745007138598185487248508452927522167431754363011166348941332043977984730632334675263881019795577349158205177151505094485566187211996608890193932619148987731684851507169694099014431978919818096836189040750917291932227212102463106441194589072572875827196658112479533724605944300658780865441073332270863201085604856945431507110895935695834143388166266938273600984164921373307521187843574344944502231553636735380256771636502563776036056010242303620776756454849619550222143945563048071103075010521048568890545973194975557166427481761064438390817913970995845259793887923715593472837070091451556030929737386101435927684929649397998517586334300893976202358670835480314949472177749824634660385597490916689556487575358407462361329046895488307236455344385488790133014174785556320742412247342895451272144210942611385976847195481973734071913552232483924196019295640694454669663726570100220307387575153897354737537230857283476785724594090400796192134448828031242424591920977321749097984519468623774300342853958356502996645989041992087147608869253159909657812933027273723182117572989229861125590373379313524428080254239176958290785214075364551929809331978030382093494218176598015395154452552900393102612100618766498627536069537350744658132235890683466231704673312614803837136605085733727144118347548522496717548219578963302366882398656741804354782908681822980782419709923024679956788994957264883824177170760259630971792754811347891648603180428945285668844623351469055425293006463088826779188129250937689365387963160555141034980863498643104289877747050190757357317964338414059108779706115911391021385774464640081120971997424007503498288355220038845994256902915480835672172103742546348174536488585351020690841562970453440801324641463558061324036617961877052928166434852308079973910406300741262679928159548416892780201484690844482592783610205100991062394440919914789154667408856123990265790013586336715041299032402272637860593115361084678104354721984524389616969209351604093998590349660190392544249163275435123958163938607834688394721028768366132432148639388126947614726602156917582674088307815214342857583928451835417564660990173925047299199167659539692553270920900872016525794964192781231768086884933995394344121072668998203683100182523927745805439541988630459370407530028289798164068097463988491925560856997254754975817780386213109658399153538117811119363347343049506867258544426666677972019179380633659632298918773314429926978249089195465865474257122550699575032648434421277975651325817833367752327473664932925975511803995393021354351262312222773099968000087912215710809293242099306273636123547168170791568685400865663408613831732017249054548306493913742333730333146425559544865802973125175522472169506722968019506319790557133868923492457221312367789931449528858626140283919155780076403231958861757307410985430700311469921942128131520118882433189137997047238772500085906871573036820666778305372466033207138893363000096989922756695389238477949568947125593270621419001166771960642426629125428772050887452575563434485917699824099465923638719562365632655380338514374240550376402065299748084103915772748499872343706190278048218904106144700898328757194815525823440065288648920100091613226854921397834249653146961459397103973199753827228640234054778465532331276219893321961127915106447700980839014451079417870688744120731051693634114771559731340044840104742459499364426244063996563952022792004685883193893829888633321736099319651220141977003650947743308928813889787615783981670569902272203801394727347755938010809581461639731736361961283167413734962404049697044334355838636039661918410859299360518035183381304154291777628482649107070685005223095735647906918416942683893189780128941488590177918731974969345593760381461726906102178765695043225328870882028045984988019173800534293398979221669390260690436826577305575379265733348207163592284771713356078928660747803264678695380084392217553314156688073323614754948349693972051147473984004528046184150001833818611078852583124133535679991665173527281003806322149800790904188200109659997668946763484099708501004763259128070200267588445552837354068111296689161285224741052063907553274045867635613671260554079961075588759675826301710460926933486279190759997930771608490157628213416808310900779196055225311529802611864876260941213758611518171259773123152089573395703501042320746678979876724985155030210107311288721644014510637888279471124114456830163023378756855863574066331306745584706016163675552742768981904078801367803376265735809612207871243350074835558896884813821589103680134333950954788859583128566999842555107722084785829323914460902959233525765395638039467560893895703775092582310814043999957737534310108622075776821734524815508274478280412148129186104513806773977072442534404798360576496811194901803184382227354726156158250745590807720087163601478810140889304596802740121811413907384569058552745285022099386080221091044618958771457805604441951424765033923998587736972473227911094936730181111167300394650038933739015822229670527156684795556368186385253622102861646775817426018301162292759756013216407814160998261111919344248814175689560884370982044651848524064542504483074660559728784778831984471038623488820964706309630267329633643143487890717583100974364961148998422467085033562967882344784839926045060118072313603004304245412987521357796042556574493385470581646654095365478059448520291104477935369323107754505234530351412099421752235374227615953682776795154438109862396934761187300542820239502345096904991118225278181715866524684049968620028915394962001058700482648117440040940957057032988547240394426448889131254131776388686700148529103953987791094787777767365447030113602848774168606517311105278190712791655153522943157148675630591106870961334981793028164228067893363000829545965395401969056806599697908665590140218933273492096053518751842308378572985436267462366259152207081123695036114615231921976747799282072902619668190185696795157473799215904849479525934166905797712181184560012099203010234964567539860492217669351177434190883533413088454231980122938166428526713350594924446338492959435633234509512202002294302466378356156480712766606491622204185398868487628599442740809990504237139656993200252324404352957446033908263473333091613373534027504738272265260077129185341352106054206806109912586621937483940860981038090450637802605210033156619217546267954014722324817150452640116592538583464912916939791325831759443096399132917970010317999697698437659921539306914179050586543842135955867731374124657597583710162567370726027692194678094710419894153572988988923372348095468558869766065568563037088626009960426555750466729084392475025010711506939898718575309752584064626094698125726666954286941567124817104428026496294923747437156670207400505407057069796936931494840598100757032199914947316366396519442151475569082702834997814335029725839991352619685793564808229868188740516764060417751970719369358338007927288793994552211523421374864062743684626489004459406251862744382742373490683319177615152798788605710664783135859456279222554541064437168124140846516490264464789109439197930624702133698355306852017345643630444037630136585734636072685598756270477958196396347482008582547293696993539478291216694868228697133720724196377219368597210491979626018877532260101010391806285199965470469023079513133611061666707999869589998710554047048779844092644236312144056475070071248058113135315797305903038345418075062802058374147340559985137454240966093309380108423407391214065765228293427680279323154287651169013237548458701428735951540224496628046029992073309530908133994480383779316743945877962403257097174648539065783000483181421440193368274397831557338600779229927524172858263642372576289774643457040041889504868046924674578606529586456064666743285049274148712585457921191289051743502885005576169106889235431905138270365216449155972469636969217329501937514792876730903789966159150186498523255720695210285228492476481736410161739818187380016377667263125766917166136249355704012749061501833303089616249503787525083307712960106304411629154237605148919239534325228320713500017880866053426350223452831688135844761362608006836033046428539926615747225033454936152696352415927724170592987394520944627316997956538986002476129994557358099708741686977791904530879179789117376885438819654294476669091668152292479445486628869330119401467104451537986119982827855207568132726248893508285724669062139917467055747407267087186873016542570881475215714312280573130707270132996210171336345885931691014793167592749081554431626954957993621110663373039582412465481866685775471160687210666068889605161417867322736306947946102064156935151038953799850312797224493565488314542859234323001792593198424093199213840033110676978276298987142860302952140395030980668828801123292582591254187914818655955312300791744304641415022393867855448757256022491676608392231186007669033274943816491813649980792175750870670220997302670805223407415238073831619592185599884824030328804292941745654082933724308215122381083065614716090411736197604527459988674820236304067632402203285489877233201907614045908780354179994237982918171086677020435434637499271592098944943436915033765998382113453291856112603472034081945905146359191228890556064378197264312167056129520709222696503241429677739794784470640853908434058748460902053894074056657475672310310045574827113069156158810568595640502319823599510530074035577367333664093271130869417248115219961017277410329401415393221609818266647944927459270431177949679371912037840223476940661764767912515300294040947440173422836624109850717009136053053232388280665037538762326558276738031191627123437905252645790790951192377034446726726312662295414608309026034226331839263514619762799212921717939511902366572201756527930923058804090237939568120683535458669985673607216548348564659299870356834090761667087338906811527012810730314172492729503993732569362027057814492358716479613517916935257305313534866462486592929965305068733997246117287814817470205243681490718574533298889093819971318884486767386176856129053346429664652084070915672012913311000952642741097867900647558439246216980989363548132462621705650948851944733606368115244169729739280469410780161998335641827340355101892466965142872738395834656124982688959027809365869543376732794428553548634741567954253636126405864575726358515181373563497511596153382706352027942407043387416837628217738508751330325776988146033731898113600744152107678500516723413828495864008362630108907985287554770134564634180317671336355539227629814913902426997996592135710731808776085104736409922863672371233387906835647126398308011455319869357476227526910140000962791585003012325460415541631839970290492238110230393113675502126961753767169891737189366528707375961739750948313479378481775682344948180923843069586045925793079052568978201706312770804383818219238142089913189048335545932289559120255010247754298562212036963683556456987343953671172957359616718206846148852807693083441699497210754100732423135450442058414406034426861589613572922903592770998466682254470862445397033616571426259842488459267364489920493650052107760648546712052876972359160571523981899263324473895193738361618053863425386560610957489913300308681719239143531908800393720894204044539739054279766800700756639036449723026337507606290345342836990207386738514405204633328805431582634328002750974391121865313038314773541672926621997501114232520076808555470270718375709338656670329347719528098392872784163853156792414234534055842746616284835202645517227091264972048302021715155246749495863620469795495877674317996508908081414064947847958939717592136909056348010040611373923563793643866202721314993174954620479782200027118089865786252088534503116672191079831438044894446150477458139398800741216899076185654593026406985251890389843654624522377941288029524375749347143556290691130174712143858204361146153614452265379118050496808098653674260136838219016307143472099334999684353298616341604678357530997630674756906677662605057331316816934105996894573251324761980974248265444915377082423674280352932989290229840093144814372069825625232198528567471134565434088209695756402333903082142411365153673544293501560914971994808087769826160215353539069484466419311699001756091955921107646541374303116554464443427955678857127989449846622402906062510644277016725198896737189623306169241664522133180642167613706192789035736585350631298682084540817187832892614137634153274472918802811221341737724680811897492942369472735940955464436890834145076620009543718264242218108379335925324970798472032722724410658898455256663719695665822092294107348974409137232563352653182534098581673067405377512946854495801545907293641287595749859361168953883380500415888896416014043641692626305769856360061471570197994352748184949084999614024439332157973996704356933073325549223820163858020087805454045941232201565884508657696837234373729488084879284306582233962995379511668919995619920035000615576937650731567254195678570739582223808728410867388527683512147186866319405684723529089867883714453463552372226657747377766586422063820881275454185269027953093820727818484710183674084938073675741095046524509278179311363862919068534252895035070773176116594304070845484822692094984337342790833884461849182476379038152604161390574713508609732775079477014112824703301946324042632264474182467384807326005863469169480850033296465786176422244538047197391218865591453643707644759414972459748848295801458482493226364092090463890438948166067829510602307311725125599491012139282379950846301629876652210767487789291831116336475935796311158181090169315656737927847844677989427910246423671815204126401537151807599644199577726961887184039536055856437545732536247642544560690445063947888190577599897425833387022703573689486091464786346903018516646145025125078620410384635797214225765476142161267900631017922594949509048380135383207053420741895664639849594774355558011530930108236100472819697399563447065965014906999955465299913145750794547460977451868060033776189001671515760159650577203452083149584939286993218164002902614395643131033989879989164466586959831042737720313240465300559547622530660346243699260986326887424229410780002845605069883412897254005821272865891845329359994907144006008255754050045190866742211763438913146970793949653644798184857590635951235130636753063309312705402481799903975788505291010264379435887150271546836362771589954663395739171202003576554391078589005341320476480460457657450975274172277368768833628653727917139723051135047434259269005318282182559978407763194045513927464012804374001049998502533426519955703935194512466742597681556403170280304621496508983596573834638901928611396433962252192301341862874958319423801226840774080093945627763305383298841041053205518767663105803752603161184359294672921252705733551075796371571929221548556541171033885069569541821472847662775756673292487691854288516526530922958928032589141922724766943545212126535241979144847326490509559110227616859092052305915378944202229273434776786842569235900130769410353113321901266412518490589014880086280659096008166745914050719101364463622136533634395076732300937846147197669988001208716554306044201158002937548285200077876486167562108835097147741000779373169249160679961476018856481330411054910608286385891081798106053159452601432695550876920066249874685226853807571947945830361789205337368162824935340744507393536890324151961852504089852313908216211826850729243788890762197502461485126559627908040752546904759391030091422272196024251482191698666250507277871112720872764605331669016249197992143429835724687175864689560619036432762086942896236636974261360014064055937742306488875309323688857194088288343556549025193114530600574235638249438260257650475882890961373653389988988807903107162998364886347179823095267044145803190833477144882660761330660221850728863149541929638807262126250668943189616325199432901271955456083622367147774539401760052937447558476507032849364905891435266337368316398982179207020609498778248089383371317991728867883341402631335535605165012156365594314387724123636607403323968627901426531001840092298295079710928638813340720678995452123339343210768107732568537260639701851833337979562453756249475924989866486373597088232508770573049159607866388835115685070261329290324679126145706326780208557258112830915387222012886138684473714641024934432756667567313752389945905828854991774448271934871389668260255065563724364573530235076184825920169273870960878807602072512316597317475783673464390943001710237942748784245600115536718024921096742286625098640149861700862795556636495723267816535442951477097618327983418307542630172495053567098477781530061660842985092974498139153396972264680502834244901901371793840250942851845104983458985861683334408765986428732578086591417309594381338767175390405409973708231487568700619831831717196463898217372863485687692075179977969736267936029191191456204478504693014813953686965909208439352091714393434759707899212817523125241475649838558774868024299279016536822872280336546777233674315584063179431289474139551146295777379495359213524655573476811446057621550703609014291978613595303822058576902506715519079021213623502001545642865875656546030637990855653166552033034615064640232328792449062025775188943406055279738983208149537920018808599279244142354541511484583611579440425088043582609363544580224795714932209945322912294132905899806487929875861595849150377795475348724820883008210907526393199316174315549002694559603231838035787995669665572453039578067291931366838226598966544794361079418139402184794217386507647649284413487910898475956757496680984404768063322238369418803070836692519459179329089280755189469077800958559978516251453359821900169676604478389659513368789691198348243243550300601096517778022911806085836287660392219558494445447959031959596551103998749389940754966617939392764951630508918303833944970790428111293717316029718646963030389489710940567659577101159490553171321451790544326648913939581714104229370219584550098160650192902161855137948197643174033023109636779219254275448808142378367053650336859417199284764406292419520978138165756481532403757370014866507683365421120364247823219259060203239867923034883467690684185756565947015593850016137331088419659105908757771991604617140964397023260298496604454008543492790255259541756432641160031439485473127119322773010707070801615257272438730094107348971581525183154868741924216203885681159317578089381253250351339132178695498521405011660491460784675851580007911435148095942375543074542614451064736344014905619787151834842790511148973846415740461392865907600632280171509835584861876814878616136766860767142874486039757266527644067368108653493673171161697141703588228993190204921593446853991558704616048868020391080013806429215211214314445612552961096132532311408391448307200322680735082695356300377236794951725327995909239010060708185269873878834609359852366980536092467916594155951923682431668010462569707579082885631635967023455851769896009477899126013946260914752878808853648426564753197479604877018552349514547615289478474875160048679288561740749555109549935121474358541318151737509781260524517240301181064752257453058043389168519968039606119827802969181117716033126923570549823642166742564772776450731267256599626410193730213934974023161929931490774254490744576501822560869306183638191168754019510226175217906436196884268447857461356825887551828138067824945793245059561533332186938650142471495612580344049500842351927131356019002511547293837645552748387973749421878033442514804138315575949257788961159073086893954348988822156952317574043231165956343249605381192923688678316582055718619100773236917692164142772900653979841767251660975119268717101053859835913943722857693312717837804317604448069148328107555703094807300347083606141912911391898902465116016623519777081078338047060153883040156001250509134579421952105947235389728123891262468790668927482344983971243986803350217179232348255528623330035083687162702326608546844476003105867215274062061405752601275824463228916449985044971971149134121692684134475907021387718059968933318950185113014965879902469508153760841255809762840346544897104397137428388686637094851135743675256390747528697273888245168040300398094022381688147869272914583721269204513318714388139447932767654311444426718994112415890764253286717909104188900099941767794611223474171754402147955878307173482612760665191786974799531954619663400682495715823789757344164753556019620383649113393569913293612658175138417536963400164363212131654429440828338853545491789956362717105628178144470996815946253711922029988141390109608538562890621287402199386798592123853688132289021605686437434226048227520213597812688643466153447997988168371409340778696867209884226740572304688239249263760996307860417300625316897085075119379225203911749757101951640441443882011576087034132281796733953474017454591965508711149309398192568062730472212081838088322245194947660661605145889537713590261195188306310890727456126093849567585865620480182912096751766860352931399698130630045407157885987677398788522720695540160525191691216338119884822542576650923203468244546613958736070020320505101941120509421195388225335125919213867211152113259477027730566509636269425715085955977617988069998167921492538373908489453851249147741656390750407109832641035802171697396941038700343206058543835317557473487292093156021862797658268648155249962689398953828074049742750135788218141927674848222478301581210578334857922449837525161660085805892698746214458594498682224606665019885288430423419320726419615857438221582753228934193350963903915449319164571259620585103316818148205118321988358358880701168295536864493865595127195060964085665626582655578858755969363647404202537599430384234480962027652874529125009446596156511962219983696994977062555459942258803702960611033611532697322635597213328575494160664988280293049612539736497428635218065315587387353605799924490352267361965738161983022719118476058919639381501382348787353091436639384624082202524650024053480227688631274775761325223445740892707039722876945232078170337283356959412634194815497900149101757904656060326028127185203673771605296464700523716670312146254548311651882606762668547232812447367345974267972906680109809210680387698557865115601873828217609215507799169073535779374534528969038049929879935752446350215442398784233263783711606880386213595390243874112355110495529400283721255469132586477838427235267821133693726237744817027514253480816441982725768078581391314155449981865406679058324078972444763188183495410419763216187970757436233748983423012714410593773331185058274207750576641409833492732796088880950679856428018012907935305769860974512184521995992436078883098424042486945989810713536876577102020221389175385034709127727090349647539001262970210886599332767399798375530491106570953468366191430026774736947257707958039334553410903368019942924478210042069069536175496677841733219752381938919692339745632289947964149161122661865008441734055758646493166065564668729398099341964328794156122065691391388451453061056799398209678924987642655970456228382213590009522285085920474167598788445263799480637934283199272433608445425304620194396269716446269998845360278502185112887391891181843621449216504350505212850117612985485185132772331540331593850838562045277679512028269182077756453714060754957820067761108261283717203516503716067776624431492285909796279975458417957382757446534365466382832530809844748652901068859063760875706295557821172032045515376736091400245140296371431538239388279361140633635159914139022286643190221225874302903479492574894701801665829431105933201805272544069741944687142705484369828992030538034689871973730389360389005180928230937924176100470112023481184860724219695330420339621202757181270810519738772069178562272533883790541373473215657949329701840206490232284326291400519949372077056971263185497179712537623042805411957841200648759242509798562835106322738012928043371104630320015176035146529110632519587645409630264908624917222773937227771183499881958609289293497358067750650787219029338393302624378176119835863988928337284212442803659564632883967550307462922472849364951528459045556312929833332030105304861663513408280413404412845561710531904468269782236395497382284128261006380415338664374033423828398952238407997044604147265056695314369158350483453167778954691389124545368872250739109298663739570984577037621204807656717578099859236435575541824754167142466820567474601240741000264981585968325007243899227873681017741164236543467024994531938234672138861762053288324071837548313471619912929877766643273457847465923742462748856746112593790190794805596473959020997911750076314728839204714187211493280126525451130193977668496600839253914065277213084718709140591118602629395301923932625717578876800159854393101490021174697015451548086041380470596316534701509630182660178530160116038102990125897037225754679778392326685082845580134978569621455357973345665502428933620528157374446767023868584650455880127365787226342382027519705904080401229006241987463525711704051337372375806886688563321389240518656159412783131223714196443835381409500560306993805489360298922469292014392845816352732991132489404076292208573218207086334986037323982136813812466419446346931128236499498841868710525420157714921884291049531488826513258174541571168213588335245783221220663565371840275479909129755128318147976293703355291858173281988196036282356952475988206058843748196915647355331943324160354181838889871122340397739043258994538100426492120124442999651322900543762156687185475668685696260384487713660093728385433670325076085436491662982325110982571947822158124921669348346519184772210941426097425466509610065820671162628871749478601504684097769731772600792840810157428075864624560648079321684511706918412867515568411542301298840495996924378539379065693728537511536844439721775733582680662497990930677108968526275512808963237097788594665712667278310503355976283647648434282324188465383234668612324095920275443844854775836314138327460744953578354601714340819871879266107659422873348063246974177769325582421427409301892531901297744601041173636307065071738301895152966890597129020676717636779741396461126461210425052051676760047068123762995918527273104591093154601414877626520381641247963770287512792239201935206202948696695258669349541675734255783330053338038731628574835947351568303426674915091554735343284174507274845354830309734906789322558655236535059364409443654115306978186592996721285583655431204589344387633912472256358573732943275496227159830838362529610903505907882489017657982810979057555870436605209880097337279653587161900180426140035805475052518970786769961366028645012210346562884147999934534721381738117470663248859053329635332437185422275818499651243388294660787344679326605438987359507774088077054182055399553803237022336348164948095775849428220478020962342241977850981672748861414302290544467078281662720430669759961311131635958240043769704867562156360537231280965264208592227077583565963147323185926862063045919414428114416080703443095248097470942518731987346527364402030168468045742239623621200068064722384506040991149511762879840144885657461462522437351043669051809251815352275337692730216226103322738202807986059866720667327056129886794874576575710875599672464764255612022464880527062366234578093702477547277414947148399775344125296732892005704166432957629614247053808610244905664342533897332482303983293567475477562771842281383012712033874062818026221475408332788780528996702264278752826752045867525445113781236835734302920076464144780197954594052029194261951350168486629619281444554022193647123994557621498426277087304028581872579615761379557178280156303679051952040976109230819114436079873922289192614977368910071575184937298329479736813509126558551708340564584843550892755346625511466968661504650581642099203559871872386633500419831293111971029692723012557134186540343585127598884931168912873263660644905342059360953730170356596209534476134072521582848055297368747916082318002939857374154302939401559935355651471883394557029068589581644255372812946896686320976120257304878741311387174142246263197436821091456435744192411087808520582733629567515604565887858906906730795288462486145046550480523804821227250827330964354403244332120175862894674196377940710815033187479759870713930188176354740086469873090951249612804099378844656876667005955266030426928733771121671767987922312931050398127282045784903666270120907653049331390073458013201627368339772953807798081930946416178144573022069307698729996512728728086608265694754975613430014438195957479959894149617825912379278665631611814447294176030827954316694010868243136625346385785247753659770016958569418487826201498155769471159102797018435841446038374093532839224459617502630696621816200693402788688171005790306078695062787231164537123869352963641687967803739679271436147302577533845613281113057313540424678531588373362475311284634800463074064072347991849124186396806621480708462224423676089704127864504655400050673497284815599784852335198017526104339821743036098210463846355180811186199385791822001271901410805745588717652255244913104045205228769595993671335507740075422500769954531860802675204506493645069458931341808853788094339495663099404778615977036309682796165295424198747818811709642043416634308985032696079857040109767796567960796925767548370126430682757260251347240562575729414724030105994417776447747349316049381495157303379617638494296094873502576937477284226098479948198247521401970863227868004280859116310713163516764787947599396075439954978147097564700231626804344925261271452450525197345868675969470289973733805845430049149711966999558452473673123842309150753597816498265984921407972611578779834481181198142905093273466665320702477970444421933729008539515530405261359179749645093949510738578506380383421021273458445514649065407124559217592946687192621626391247851112864981418981058694415186077925152123939550407987456736454377944530789022627942311229151965052158434247270918818302490886652627697443846620549051005515424409209872970936044075760558022270990012414059910893500831936189375623814660600818801181850911368776189431519911011321855637937901932344187761718382628829171056898939079885427481650210619017693325441949878791588294699874508492889253784924346164953777894704547766331360095512429230494906559003086408327815448721648378369436888199420066084478709829672466525301669607373034387054137741126011702685406671918307282881825715287407864674523520700236127759190711263078890019739395781884375317183237517058221887088787796014768470905041480746381757662542385222921913434060985046945522478196994257131550813293369729351755323602214440330849167646520442881940286876893963249472444906696366293590182936067592983615184366789108310285556340531678123459162386943586212432887576089442027107281892304693265292031119920882211476861976132123601578262545881996962311152270858803029721807151412398526673850217637562308937731581454538191087130600288240634538291489372717904381659385209645226802127094022998092102697076407055279213619784129595959521143724678364026467339163072128551824232749690694503046664909316931320008247184140580520304871313562538423827171981417750323227826103790059480530996247818715629865016720084754692610156268137856479078555866911206505969203937774335436987464722051249557381385314745538909342592729661549497961943351348766447117980524660849660778681698623839964923819254440594724182253970583288660056763355570465396748078236054419075860337627399764778030596057635613502607807048867782969038479982200515202029903939811229237488957444524597801380566441861976045707003114155990342396409812534509056931128147145332438355991004468647332662105241755222399502820237404825281643777637763984186628624545573117321702216286776690682096561352563429001354485593900256241373235108232945129338240516318843530792305238339532740341554716126077594674121363852848165521888212453746347014318382277941212848496062861134469379471409578862797155877318174998546665669483397349975945962919403173289397232769453710820577826719941482344175054917315804390794509864120432885151137088117735875992945043441031182257892673250665849348177307891267829417862313188509159344519081672979583548214117707092203536089025652286813268958217340989662907040456296037610257459190802970547744651482219150444007171965429545567113784113875750560614881176263133382345327969410705992714180727374627414175141952312149615053310278930637881120570156069622171008454674318383658850497115467740577784862184001806203894204323825002244623888092898652014631734178682557769516834929109170659631698416945025683927017137236310896306874854339983599566686929312155111753092253561875360154259470349337034165709873190323774445611959978256866093511157305602894414608107716656795645566649430750298161509612749570833042813412296348857122668485081978523086798883378974765858348524106391847586804537890394415717436212092604627401929826690050240415795096781292725001649352803610734772906164986523685194953347024828604456224662648028736275359597739523131513126366164900460617841223442446570382728284844272520365394371971835285030630582011226004501895359745069801425443984626714693390463060243425943598360191522521750531521754541528327205670545236176348493810356313475826012250592438816494126032520621000578436184281206534070505363749892501286967724385534501854483913869882474142488622903446770882360900138447757676202257625153056958180508887361219691749188709447803318944012023884485620984491419152393361832229397524693299803040206197977670613933845284973215023991718856574169708863682826710788311869688673598959863279748965675797536551394985162015876767042500402822039159793956171205830910566988696445683023328479256082441204262395161243591313752753604968058472890641825112895775672605159255128163733833171076613105354614149530365874238618760475358871155061016394346402815444995042670530275090190184223956085306850819251363071860898285852186840700842236548733976026016287513200438956178862738843139657596955037778484295571365444277201489414287318456240887161591399633887971021525891760382710039719857210304723667148793114225049465222239300793021732064926630190338362156350914254494662997211881276675389891797615042523655623140883206717514806265359116641669752236745546602910098462577656218077097241216041802942419046810086811885582954834275366498628328237945110017686187672361359656899582598793878322179638036641539880901983477107171596791840442379244584597468486518246472389217605691247023013644886319336860857431750007413273107588927699222248427958750851637674051386458840575998115116343938139659165258379378940031533995155500897980665111605188869452632112289387866146020471511787788026039112662479038555877288494910782296397358738062909511425569278513612865823278516060286375825356497901714981710785726048333518934253555369981022578511694356223630651069420392473559710952817383801596515053335571554958195342436837323433390255625783702712832702105882620174014778618377354748842547290514031899633300900280585405480714379622304434334148355037644097345554386370810099173371044117136795096679681276478187694695185026263813954822138215685628327089900638011811964120828956695801313241192588273815530431339550182376344912746523533368598010805972252041482152520689447026277380784838137444961506198972022526313994552743981462306516617126787449149480637717012908695387187671438333590278832343532779634391726666332721063362910254505173349477045655830878084778197575288987393008976426617584969768771851258630929663698437791491448760327590705993123161877835632547856216340779350180868657177057142579559788619557201392737817183361540007755109308354060871882418374992690849992796998462979708418106492646371315727493656450166425341692388593848067942831936019325440143694525435952778223458157636622500142870718241031560727703084967061912973996364533893469424490617929298496126463077662589698976445010995119862203417071888929605929730382881809001768566107410580274723720527055517976185491099703303525436732841785712219724589226419779089710206252312033998227435396999258260964427516396367810220381896141752785619840482182911405828944339552066788858985891616059635449534351686319120345649626468830096029668968227423872620887596740599720776488151060508791685275917049688663655168750639672432891564749945076272985461700415823209317313042622977811175651268920252281195987877541569828344588632433516392349767690562488828853546083314449096630868016445254076603435243987355894891012549449407742060873234799290512977681268135016392915400620318296235976141145160576639325962675214015162683098844206157039593401423821420005616062617776801296344376690492631340548991355834350146703870159037531812544856614993615497674765668224218382034429356725019280095793872183169143785152697122720156843530650078084383851369541947135631939957596850983550614927995872763766243027528399720100804324819766692228310821607703053837806726132869939457087325373952838474977810555708102424010144110903374002682626597298324406935460197142856074806050854069455310252110695006203076233208649200757231642963095997159798298872925597233630366901273814047447138821611085502686956380602025449490849038012537988282852678090424697356726198230839095057815534436400520254519577257769391299044199680174408981555723291629191074539836930632077561314499980545178499660318524679999126200840507418882394004429482361309187537356380159469964193714644004817472167970806836233355043994347259445614079439046613753658109746260436615005545810442807085739372406986952667605374571524487430978087942383901666964526693892356749949829945502096998523387103171807440657783046533364693420912611807396816606718876251742603260259767100728310276327981129172179434108790255440561000126742631693268104445652272661607999838049818461426294066887161841442342833902730672168235407937502871798305007177346450879886756899466260120319633337270528572594569119029530466204818299697216484457657043485175729169518919100499041904650331799219401335579419022794848137544374750600771463332310060479767387673001375920053059051643310672040215366411570846549395242452870622999086419615839737338167880130002023513965183737364050724312707046239460574707887387509162631407120299084745407855740547947864233648231935121092480956715553298526320483578367109437368528534711117078478775168428002582245945123556421666908301573851879664554158409700345962878688667974820591919342913121486106429402895209149930621433572148232445237685016680514657402736917319669326993089425751428419897206944617915700899298523829900957471328149351288867233628771663032902938620576573262597365294599647242869693454461657231232322309350239545195208425159286597889566165514729549801297022292894462515256825706326520854864037970357289786133308800255003207504852584532787467923178352703329643957847970634318091741312246642985471766567845675216436314386272634806761158811302867268519649509833982162504053548138155150539339601175303597243954605159048451254722757471445973837236709775092023124268916213394662045180917181881834774187595906331048305167981992039877574178271735640525078002230546291040424452406817660652938310762948305534496579766529128668455797421602956930039443590270905950947049131875557613171046469338027896620992054678533720162117649612200027319966231152218182504721484185321838958518528271285015698157816975410769564426921401180837374659515412461263536956455627741022654148952164330692108900389009098602755424129412204110911830752166104105509768946298049476743640247936780529662054328486065076483728710295417776561329909052224435781116864383293172282897437661687046010022044556248161669988485946567456895998826798644543354450351582938484633466381285341864673957473734632904305228765851914629107368016047442069983063869792260795008460003460647838053186503203791308368696214304881615335769039626194212272625860876035079439382432977279855878106508370723755774514353521186013483191125734113849671596281552128000753125448113132060080495146225195432758286212113051992619435492698981718471904993937240200178388663562854150159216019006848260189845029900995201749467618309091229998279877758188406871823501965755435021847378574223076960564517458154529306951089038403670952901533710792878574199875564008132287953990279519182649689595369060962408247340731058145829064323469618972861794731196477247960335151466212790108503061921681942905018668266991730046634898320540892332576516360414565902139803882778916683444641375125779863142198932752928908032144657432407276519245890363141565614072338959989004622949268129784482107248041021087521991053751006189885917127149443481509162987331590886070463370132096715294487488501833051954997674210517139246690980706368930870496634096332510209544616898418096931558497053908944018791116754738844966508622342626435973126413288461034403065837725456214405486282610399019768674901418921934206078043315208157153293692462680285612048439056140550157716841757755353852540904111772104481260970616210816218323516557094016342617256821640460059955725580796846139506951820767095395046613852004772936341171300529143603036890201015017130951917662659178446048836419332267827358055136308979252481812109210813413568404458810315117404668086897395109738664565740870472002359564948387359695463708806417705574086256117333002727304744675869140332210231770937806827704888534172970862074617617871948936600440795438267865834476192042998113118407608847633424278845948571635352824640022919683465167558104596426882052288609051079243016915436894032223318463780944028703943058391022398675038361254255985895797071722826837740770769797917863653672939784017999885560628324871915668056183867363503356796486657878628468519890640034075173588108902505393322439623202949776966863607662457047753554455905612800949160431726388729117944005330358569808697438008258010619022377868561752825348548128370618212326290299057268277052151790619699189382977142553613115935121639379756650804405625135363512522774152139317075893508719211604758183214503847173918421851189958020678300897575585661363352974775199590495186148378035584517427707063852804350454767404318791894493103370892737561943299411906593476872459830969936791091719255709558645897425223731522019889825100637253274241276217974920400232947108999860413762034210575525813178275195171664192593914120584235781770039938212633001892311159960273404023771537031044364249830929523190725651627340790359471443552829461931979498816929154834822829578941192930621367402107423915854529781225726166801254042985857879795399981029381031938945479148981581664804923649606909531849473743715901508274173823291831258883769274523107817217123446325432191713850796863748123812678518919482276688328870182765989444440289215740214219790541627490912116596899187517330744362334834734614199736188894856597239008842131210381923628132570240628956059299216807728896887149280055079489522647398133062089091174304216721539475624525794411223661028667562398544871928170139940309264111478350713058020799049713731637711928336869083474829514660076664472345158033276250759114787524568056346295163496964642247161591165601158303679421889898927133789218367019403546556600544646863190357653072012068514328499445805491867567961368617038042616900935448404704767572370714282158289435581214684493174775213705632430672656793753318664431359979686289678356350676022774284107841984612998009303650214190808835421278282304443296790010817064628896605455620739209899593485717652866492676652028027914798505369917038400670135503150728487553691262672592835176689841522836153825988767696199459425655763286370397306161231000185859840369568999230618622782558543774868364691189521641777989740859601529105475529124506868506108704126576054392813171117526304730268290514794312188411310442063455821884114779366416778978180484978476838698272924722931204653112503858107053931158465229885512525540813076696741705679211789459501575295339459672331285733136094201396735714496161864162531724907476834522783738123263236994747312156405581868335916553310509190141065065824295690138195190251044648636967150273011612447565303830035657229360372046217577751227052605010987732548835319221248035053362758574186887863710948612837947532028736308520006133880182406257005739416086160364155676371843402890540783869908808412714215826393415958715866842665842529059211609284305617104983765122549942302664182119741138255664910285035861449551073045430958780066124832110591567463274876269438398920928790056407097113788569096008405276967872420822908614053625859486355474225176897538911951074801274608033491866920489046851045462239974563949720182816731189619512475622556199846080115202545595955652135231817788306790155212007229053021238460930440526971170392157488685209492415538408637339252843827245670393340527729305463293197114954052869625355411474046689387914806532240822176577548396070797174174941981068651190701964898959226163290518081371410315491179860927754498692198792095441686699723356203377480620290604099632200083789673875524951893652615553007945692184963506843583980749128527996930640418886558434807931833825677651847909284350418931604023539952733422962455056373092276947092570330013127262094245890035699730860648876558004757225120441191130836212139612217354721338104726619920925607668668028487685553562401459720607546156353867154220181211159432292932489375253943260250989698600825348639624959343470751360392450377137063461072310812444190604354128697268949540594834629454335201994730731570845113578335968064531501072272414892325627860928999750063317774724008549853386878018179732549621720916751789731179917871225204892624896808643367017840838867951903534444090102927330832415489616850024892367332002227438935853952870812549858519657037765687981324824184392860101303664141969330655971685116257005870716992690127089450752030339829936059477788775555973905759185880347424072374160474586234227040038139629783593112294342891773553804308979504570527063163016225214895517672930587436369126715263369256235370228833246417522373637851943936048319463906490134714848406259503635170113639822835214820965570674748355810136987211629945807198306213736675440341560644241127292467270417095378192064732232348299332482596738986589448595438573741569241797925495387962333059938020381696919953908730303030414560162509030817431831143846377326957720787129901273596549930045719771960050964667926536096305834748463132152403423685558192013390540713422214148861308856036135930502796286948960312813046420507273932590779868554162251990953234494117876552839674673687072119950237217370586491849208179105462801017704117242408478995734327999008254193257484368077361363778117187768690465039044954759198072801603041234851013437742068990324970538118922940446570706318272265704571887088038919332662250447299263082989470048391276620887545782029545994305242809827775122173266236654537754285538181129043789772540144516703817074482901687574537640958677174475953610470161862346477122280597326034763802594580077968737049886919036675713800914012185490624417733998993564399647890739618302384377444908972592248171306067740649619439417087685385585333741946690176689787892206982902426758716563215857255261252208346228005632754308329999009728209057613894634967268403539180449080083934203408701667749157548229580488621701559117045594281856119909602345157477743567619924042249552627274053332841364483481964704953426680637507398773761378740645607223501186162269527724553005051062787590665840897425833534978683788064114439012038118030499740088108197015252218824576439738020967959876725294131398144760500505816959041659371407417367506290316298093495497783236295711164765506367600360326871666298680325494887732134343296828440794739508571635151228399190613647677674105203452683092263908046673158129797997756634151381275425441921222234943359096434901703504544935349887073687640753210956940607253089294292842118705562754043371003752909908696160598967933638675354917589861943137524080448283844650310420746452128473459716455115956009787280925126860432720781756953897804067095131459789798315025908184910819564244382664728578771688424476531663616941736521909719565920130209041199371988261536706135461191027409413054292595774600900887478479599166980292324612145075158513454942268036770234216787890171758107899393763787995832192517020732721606029498108911034085900562559477777608687400718733200553265927691630928097368277749475457551727117082974597183143772684923475007956177052277805882067017339349899665919986897101717401735158908151804734901057628896013698409830971642762215237760554946265375275057271063218243954748265256883802326494696060108581034740278235582301345695503581793435730762682982073961944781064865226542956141685665012874910504166039066346304504580755462964375713433607201627362665270270433006083383159916263716482439659261995203182918400287988983522473810238471261080175157523691279970353120359920254410795488725614980694486360459385273675527017279655260251605347138208960713812034661250276376973001572220730056256757651172799347842816521708122888315494267653877603194104293339310587110862871699871732688323877203704170307653445092299259187726350379151922571806733488019764751537571673709490067548880742710315116568185952508788577462863365744915359086475499769889742125318419882478942892564406090806962650424090047478829647860515188820616874048069469445993874311534320609938275307959625825872220221059424837294966072855715463945527049484344859481906041176325819676971054119036529514724122071785688820902111479593957400088811812698159965563779072795660996303504293004898305145998772802717265347638458981376934064783474121197508225632706098339729277258550338824078699044159004855783495789664302679701607492759078049770753956281149697803665470551255039082203979305105670861214774929692222010747986487645842854173403776393359785986063580283483178917632024360715648248690030538634719131765711266578309449181928627879554773946759879933832748067466361093870618158414941762912328451241407235900376405456825277497393189790834944332159148340805793847966089071630529539488509027088037043344307415497183494544216728849829230348779374630554461700658641475361629280926224663484239736674644455081359176267318968966369639088931605560908172844937641910465217749268463963513126891819049947326544921873433243455377807094989501564824026804601480253212287789467991431009907973253247627592429678732493329357188016038004220613514463843311593849151839831311676619580312170786755747153155244824075996807193090908551975416491045440936862109220420169646517787013728719566840568913318667009089325412345537640436315336529317307802805650308609176159552693344267726662159422079647999277290816800074104791543979302637526579378063906820386020221608929359519530419235799882722026303041779523517264960163530077270447656903438595618814488812260284228481389117086778889161940158117733349075800781090077648978791799838274910548414596217409866346786397401946624170496992490966644855848458900648600030973763304112987011907982098315702037206383780863868939942524690267527934634632574075719392729746704797712124733279777280779728233096210677993738273296075555789551267227069524322897453155365421045793630290961689569623585315530031891004010705675585091824822267448571164858044880156750297705617386824953399667219173013062925394200178927573398569524038388520063125544353756024082515238191834179758405000183363048783878312760167831991002793256751571806073666879369536149354857831804888770942003540598259616589100350995442594850554083924201454201126572564143576186412404517626435280212254531187951032582604765615733593339992676623796766189039104483021694295106082055570770272266582179865985252802934692820827187147975079488640834640690633377429820026485650886503367648160977140394007231048482500741066268043157626320442956875797042904955358810657705282579008911496743421945717060021656790845321000019087199695308587264604208575078350106315272635307554158343694954261225525768983518266292239517026886049161239670756165899254403751103742599847360136422942951377948598806009264218757586575999603716594345613653084178152827233680745510040017126301529570044465972208058894085527108384666944045780159873343206557038993753692026463275354998874815407439575707334623210649319824691610900448889409215322011851311832882949048773611667277735781296198422851023100106382273582500196597761717261077485842498717614379557116111203506625817715064246724484953190734374042007344565115111272876878388918093546796167107038156173937633989023253570834301562260102003998918261310540315855694843836542033658703130085211960511735262710942456179045830692282745781216348017385961706876174202099367475471531873760849699266798355250301886200820802460265058080260312134368723934168146828213080730436753540990699261480253942125424367736933165791674390373332386072520701808922686898958864681382334935269012632370138983438296518548022744088926915825643627261272305056489532557229404328114683049247597489679819854353822006020665819827775299994228685192814235090301274986412778673339299328512577837964703653228836238327469311368016713559287426819087586391664788749656377034244504996582451926208015619505996318573911394293054184543568260977281419429921438747692175563244639488218407840317190572068528639415497884180756691674560177967226444038505560692613571168625207819627926083304374106455200736668981830445403761494454446852992355532321815072018142303300776237787850763510633891109533165319135611831962889552265197559419371740831008848208895666719034768194899844393104968721250768359271695271102549071489975220859887827996661659089437191212251395305295629711161698494610389149597746161158501738465727795664801383672226155252589633519843684504810989971816615907956415469629729817221166431253454597972836733654155693081216035932531475279138161863938764785994773872055896647348400189551120335539506644037538693004350550681537144327073221398568456005596850307442348455861101058959765288079085526499186612839727419741430539363133586690500197237502475284688306163394277743309771443765557638078531278664191823620332321481952697892964361186376078675222559970569352585003996498511465107255843483691500556974383660702947890356032454674100859309685297364299612438061131783439646136086851756964466718434398955053946732608663805520548024934051118992355000303027398663010378514918700517857128464218881513162383409039596382292274395395054591671900556446370438646013329490325898617297887028884285382682148096804068322788842281177265501884494568289290541148120722661444132295163287396246651083792320661063882736718811289096145865271366282165646104745743052646630403192886244573566963784927146229739958471747734673117645616900726255760396372807168034074150593501165290474666912507797209278105102768807062625608160594580933148236388586539390472503464651295152175281369547063275435883198423556575806414940138049831591369911990656374179991453624089294483922207825030622237938256967002389672499083947521007993344096169008030419610906530328518782104247852259625087907583224802411100011183963475564810445392574043417182727552578758581096911662449119511546162468843211532984531167929563373116857676960400420514556929579591840804861927293331062174824947096594622749629470405296892715098461652355222092419127954641571315074504344846431155829251691898618260776091538982483204001469495125710816129087112361395454397201371690580916691857629105263173602012180665249116871527945976603873597872050097050508629716712487634150527600656777851056417904972872241692904274234293668055519450862780314514204226664183741434340442089887102548648678178557080121532717673603898797270506068972539948838647746280251357844818878594940970878327855879596776522237705955764147709531388404588400745548523547899153384806017570598671942968510207201289710927720661992950190432416949569969009899535316064739776800824087683000043635799352489067689834891902946495942030101491499392850969623831551504807154329872661587829409767160428866013617688248946815892585315377449875846810273198818235242338441031790971635752161717403048271499359987709092326119602101228023572436742001642917856928978302910107508662132622917828665775363698679243737883844546905573865007640061034422658673659791374127008865134927420168439890744754901844858563464311646164084732109573036367319157203239886055006830367526828471522312304780927636092153414900434888056386438082811524072607149329782968638977281120133581323858440480422411067784606371495042159836642010250755690111820489037635800951393600555691206116272110745833792311151939818284040551001180583675134600379022872128178533204144925473831716606795089514036294175103945557486058257367182152256349673961363783313296658163136400100193825680184864309464815794152347230732481621313941953735552754946194889996136126287557440703560757405818485287374853401755493330165295017368994141097158020670791591077859159365375719775858036044567187697294764038923301990759051436790497662754996967622710742497438479400963980091478116968993784091258915492412809966652142112376918898016849002495706543877945894157300947310768202321177003303157215976394946129900856215412641136361303210220899044746511320237334038835625349955707854622522805619348058879261475539232128408912955652573595113244753591503204611488456673755244431629517330126180611256584627962130831785891435116915321351277922961158938441009922814573472353404751762553287530183842472437664409123645774631274335679282688973228406317848390284200002641216331100413490784255267004979066946961713366224099348649144772950974154412683639875382819081900720241289612934169076288133445946473810009626806052324366857868345284234993496529884316763368258515245547373457644477945332712743473934903933823797164071819662923215207902515093126555495085761316000161330817905972655417765590843560537587636056932405527258574042374270381041314685833193958745623617937234013925390939288046770547753727459485288724160956040744333576944875777085020091377665563685637872234395139482184781804369666075050387980760435648435028043720867144463201964384923815785893165350349113668379499633869662148727804183957868629098790962389821298925967687595468473900466537276589456423445983167081313484760870420347069396377007566881348089970510780061049002728886872953736265500523566977555846765427551206097035846521149632761768682295307591366781699424502718321980685540460422782552924180679718656372536927218010823711697163566050489272647194574726277217651101275776204954791024177041157278674765313466171080628937366110788473404485322115295792374637481316861609830517054231477056250565853182795069515159237682965991864351976727793726423094128334623247884478725120784964151669908790081430242972300565497714994928440600183195176329829938474118745271408503608080277894795231031942279484434205622932757967984568777454232193645363995276435704226067622360662757402486304955796602615563803968970551610812527460616507720407063623771906522496493795043040512944131473030910380783807174037670636640558594931241980116809688075194641623084707909974567151968003940816695749369911805389890643183663627166371699134930349687313641343868467556634719657695075674520060359206157403610191857345104126818218845455622318395330220676058898381285967523070454716244021271664863601501477284888108349201696913745960742187181166516075765595883693808296013969072983451896506272261701758535097101847540123395733676566852075753873735628173103484984858164883291695481673340410335491112526949744997632191261148413766870110052022307144921485552055799196620075169946050105173093172467184825826180587663257385977870317201360018371441316473649259856246220894321801682655443628115545934637742100607204261838196658314961499783208261421473700744026580451293422373902190238285062689126455675696396566903684539888629634117719687816237629822260384865534289279621865246698291245557538447392980343709401506206917261039055746184606936802717175282392850411986551014797155983605924061372033010265835127193537657007216381446479766557578080913324247493712875220597509247482505593059263282823287317075356107811404197994712798728802443556265620350290054854555151029538931818555202676894708886130199710121434818932546737165282972025861017800249068172128805308220723630408009007572838385938320993777801913638307489200774234387337903098980185329744495143464739940353847209616229158389206394823102745797787388897766341162340881468274616290785429613657872283982091322414751528604329526543864026544091401205366781796129653957636761735691552873725920627372213797355582652166223086386035682601015655709949749932430792714216679664236177348693011867514978062116681413528084991796074779622446249521157867524040873608493358720272740892978986312260578365304975589336584492219028402793122375337009305280798962124904262894291176844006941360165282811215871153235687675291302476580250333045298881334215200071304969077259300530633353351255816032467265162458681516292731678510700760907571553222545671929983519927836991065798824386814667024184861249035062735262807191648454183562942682629753421887056686004045914259488473170852848273571958845291196232150664834318756748662689784451492015739100504826739346224369627686352727886407447591671338708641556434289470986422757518166086163580824508137577479779584473355104433825226923752381439901711376630039088432065382857075759813847898132488682214684660270166084078598143418800618185057654513897668894557171026443912270330770841571639062002830333218769057444383296693007854062392633313930656663882775423951414276804951616648811426075660679244825846509045599828902533263255059933016628759826097261317883891782106778693901812112304921686597926673514581786982733994695021199490992120944786072180079535401919684728772623940279957588993654078622732356824535521596032245539303987779283214775435619313191625823249431844646221153473587118080856075298158412510031788337094763413877191370446125467829037554536360432243696248146868333081127321053198802422073969329192965545658093108130202264695176979445623798313547141173904356604612432921546550139036518033633496395273869384558920268185783558954982690973097470425774784319076597539589269425745180828365970906751941377238481892824600369004693739952719391610131037952901512039908339698325428901311818551838858333742694288405737489827202727684850826436181870107505666539739645160422314538327296761222144260031712276619567913187408573287433078409657755974983947701396763720951246445032563875527568858188799003391249193254257062780801104977215354193010332060312006159743133449758998560440922196981842916909814654036588048024651230125115777635520754614190081346347817113916360654332820322407460919399184530280263154497083947732583462252008243197169398085973058996499682206355617851981059660771774214857275804425968878330351162123646539149360153864391176999911106497257551979235276282418381081874026558162938797047899814146506240115890845512962990029608949808874017023753660661481105122926043554850830646447392822274308362953530318349358567862612170813545717100178720584042297574271699216302812451140575510903220163819568837818399217055673386651405256553484364387416660211374833860402198471231883812867228240270313123079808761026790907512843408868547650441764469212968787001165191624560531865797528715493733988192497764756090126485382617996168106015512524133110924500036242728655511950870917411720879735116086912940721710638661133056369156708052437521894288420838313389449891268542457779419059240422075071548988104794474466741227990807788526471337598217450145949778573563326144672563463203219934413347651180720470595484358705980609646768759579376436407456034621959264085663971688269832003674595384877470172742749680281418118738249929398903334268009346106194247243927323716851109880554864980134610287993929198345353227103843034549848201462274180178962548670994486574200386689199095076490860742429194157557419105595077650823890688547894985339961281346534220263659894350564041846223115595059679930714549161165295100322811696623445144770664061196856449149685266130466469359419227715240321302495795916292081324348654692344088613792949048859654863143043111710931215321843045456115983198086647759916302716968001524019652383767672823342859354902367431719440462809801250395132535610595455083374814031186372008369921083010655689599520741049322228923795396548414328155021029389724400794352101830374284979331837465780269698058361396048602563937681778708443905037984067542382479924572621116604087655093644596842327072947757855552841647965805098127069239243712122475091156253154785528498932617011595722488521168582018827496843973960402231527728903046492759507317354121592423888985969971152016431320753040267476436402098014968721551553044041293463977141989999066996520397011255195151430987871348075850355751460785928762341516510278389615474119846016101728489373660432598439141268297310771137676685300482742243972791723627466885028265975315654492371535599029733028559999405609712390954658178414957458868352624216913656400638048707214150240731114056195942858907002245705725615353543250270342775889260522510560699879606982998220079760400193833271890154227385846769118179673143897195929727891578795771414801970474738054571975452332586002637639226850342039512702494567033806866308628593427363630397083490596501886040699908560831776889319379977593103076136902433094444095579253680871683807006098891127173098129439523893022788747250849461014652726756415377577654196635718508524891293953759798136021406936133731817920450660181740509741559444084771893133481550510648607048213352530477502379234613819345916972211333267682695512165675160407756421097234164458189244407522802013140042562780188050202137516196703863267732059272820918268231836318281923323337185795972281186576455364271357787477067127289068304265559676099143848818921063454519148326184377283865308347437808603892941621798808888945027423396857449927995453569450577130609405841515321504685026358614843777990693881539824210193443601609298005015373713971918836270617358084908633753997544623198342492589755504384652985207497603745740374611042658700747497749118662216308825633275872938091535880497311854406684414881032026899867138017570565203382786779523357179270214404769851885768848003079174063951766610338493948698750873233047318764648550062866025916188885318973866133175929111595370609525421884750598558760428517961542673183002992489433223967393819107525448116427628363947311418766733610624486613185097245163913535711067072727523413262682114813531976846955148070648231180726713881893508767606237073873540281433455799169229336423382772880447042454110377186736404187831573459261600854027940167916215743127161199929373344834506088582823406048643217385222577527017072492471868641931207413226146678972713690994918177955152295322807007347451768864247549678411272580294066752762638062245510777720272732419520526544256847416150065332754723975780132445586984299416286845875834422383842291335896263315597754997135500152814000176391279777197696234965953707922823533108013773002333979657985019432339908111737933287327791178428329979840325826403760640062791724358985119830119903521609611373546370578926513872522600407898551350047277270517548549564450628018595937632894800806235039517939458013793501640811926952978919096431582852843566555939431007539155069232085036329906191891318443771154682576863950415246790086710675213567795624166133803145246346687493477176552435556541418513604161444243872598570295130548065725787157781280102632503555168312887308574384431692330495251989841798165240878602338849263279154028309529537635935502697998666404688072567530153827746370162310131606766313220350081814868650279137483865099715286963357326944233307403656708198753354942725702567068058295509874360391924818333014802321926286779552357980692217951150580286821600365718395133851879319412082593508091198153332185770263049308689129544812038210283190837323307690436753932324126775555542040544594741358666834867291612787733500665674256582149821285661847411780392020605202348632668192215592047209970963413551767578180628011746984450686578024400966627136947426847800555367275848198386956648692436639288311037670689276000903463448165534175210157930515880312257141987077647663787343204829471310327940675332058504794000016691950712263036185569135692647342216113555092177409955516644111689663933647370707854912357167966650905223751818540463283712916329953102119075023225139098542816070333085300054638557589774587650429322228520709362822689212978120680928573149983424425227699814782852796155076395858668519275130237377164085390762873439733260692609508980271201372293441258038498685837315375496481814010470620166031899651975827195123779077356405819516609447768389492897394308103505583354177563954192483815208235971508537211020001924710512706360224912160010987121842001393531141680191265042456735148040850996138267193450487086789451870146481054365337090295480517445578157019890934208042781040451122983139985496467257703104900327781929684536264793015151095207696797347302734953612812580401931172731429754330954520671066881121554120484581493785530095334118957366986736395816795620272856773966486555927842395856407351586528798096264767915153181962177688325855919940642975501919053565806079003389348173125676370346349258581776525403316476788833816367876683408454128007069199085764213414196189847879591559380297981470339147837171081631475303919315019164419603613037476760180007041386343502840873369973666805755493043651062956500248322275634061706619617311077497171796061982980644316632267248483407677493077781776946670389780521467139685837236016077735847442132543345300299334291933280071433526278461322989222427464608031776343620714790829695927239837668241515267146948206878930790255719684197439123425213255626445719632602925231380537515755336552805013479660080078657165666804366798511095920910719234657251276031525804991550099279651615023926178919571291400942642218413171858570903931862927839166894545347922533115952793692451279960440399763904407700540911966483970285432658279430062441021243642413241626450949459560609141600497914600603725030602020776958867775908612916093147918378760912145911160842344785713973302886112899972267894619255241771974318238144022274334370432385325718394282007916449400220952972123736061223172424704691858616884883658857872599700274675248507040577730087073947436192379029032094282400096318717079767520136539330831091810230881274767842118712639453909934553269490140207436828754872613272268986696004212702786276090958382289768359883969928609606929790606665991410301690051840158652149277209665941424438064970700230646662529191364023096070945541012878306503556942536832504043177164554930158106247024503656309861585131909311927063356853901212737592159658614885853108625352684739228487965186255092016965568341847676971642027494743383602399472518073027399586695931272284053688240452532049754698257582126001703536117375482870905833703085935814036803376102817687082316084675319469343201326336713309942298138301087785271450384811445680617229273137692164177023336079260629672729615449000410034980137380793544463656247342815081459750964389888002273317072529303385570290891359206182237581508804571126242925225559647237052700478250525147743176045869138989574092424303315303040662096262292936287561874120154712168440348670653801262375017431795539009199202566731639777797898554198174925595473676886849999765008174402682455556853830566696682032865164917595714643503222728389841548510411392462399307052591053782874892406167176348547158774536733722635139661492897424984048799788580308564047591170432115423929301176282184947423192077294998121039943233574793202343335832731090109184047700197536940597256323087810322761366450776217811006480314529294100952841029863685304099288076707438368400720934112811322411489284972474690996480195123828497398831447756964137055016431013503591598919592518216026647585969554206458936999828577065585880413951266566824047355785208648106286816915230322467028196429679715824311029782686670444037214420226922308825000939688839468225725634449838995988727109922828395465987826809686053278006881160640901710159877464057709843562224252053945409734795409784617817311203432598495474713664859186638932795447858136057088006466668014825181842836306484808651988223404508113491797801918946470586530692950509289529052786289346650234787366463925454902515060837435706110368220668992270978859642186602090418710482517722695223367743279653282277580491953848685797473052987056283259279503138177840366687882411700646049990451152534607983840700563004134377371697894552195059418407523697674422115314490513460969847207566263701941656681189929302010210683020599284018061334451622407954550604050159412665753976942411129052003758619504629831226360204411478224788450633044677559789870913770173255157554514731163069399251217800886149550489387055526248483315967213511256511707372341025225536561657512174211890091706198752142628941302920614373216638084979410909844058221076894541018307515030661409450934212309434633196813928708033537831211477215656309923369670525366559427123269870509813353965282264711803748511001898389779635720227876438431456405644394588360425443787771598071484190580736538184633892477860376115987942257172841834125975500694622993348147532872954057719208708201374958007855344291896671696849757856071868546867353491772581499512128291146806566419904774739522180180287753774207852116974809235323399951694383192676454682352943262184396849338071527333997263419830790095077758255121583651696334956232939279402980012078420857983575234049465951244891486550753216887545565528163953923070968745931280257922087272708365364157670758700565671688478270142255749301945899533021325419201414628860780106582721937233888945469762115781360054910384622448731862172282104671828247477881600407997176648678078493448989814713619946885287533995977811073458227920940850323616970700467190759580022416444203500762445225517150553790836214648938236448629763591394807691722955796801659568506965008695863675543312727719716131373753252418350199898354872339901464308834035206526379419365303883243597451182562140777916684557010709163680969924079499447588065571172679250368797666959971671724458878897612008525148878963577409943094364916575770418581780703733450847155293927638058442569939965234745621588209682221503611353092671992266971848058995690869699419777773623084623368790493199785305733356572090645525585315476241521356938407932066073830098696754779473934867299625665163542211719130267581750356128127130586939759303621541963351872470908402803252484200804219758733058134581459682089997392422335941012058566139573109389521865978470404008587969694705315197844601843919325154968638159668365760571513826238172493486774445673026192104869099291833044302297306782182282399743006927343550656552367428877396703134599698711480150735454499785402472544117557234294165392795020367808202295029698364001834775888303767565861000774965280133957613116118698758402502127004333705019195018566811910820297098069124982983209125198508672135567765399753917723114835709425265601295797938971711243482663975258844022554935869894582173289070485183195089575694895814688460835329050132346646767856662406610917151766259848876369034746461770599028919398900664164504283339435979971225640544396618289952751712827666233770810356876752029280939152445093069371647826752470169068113023299484768678741078756688622056165982441155286133263390860716916695891991649982187887461053157071215023331129207636920886007806492367596069919570737317492668828906507395038947144055082750856326007601261110634151031711857929210115211579177104327883537479454285079225458036586397031279071117328968073619005878210656127914493898209976733514312179289311493433127648961419210966962012304611606114877350257435078465380617867749500205844181351396424428473137999597907463370489745638894599198903746320996889031756281335318835472662053720944649608983686585707387349684116498763310614018869834932714031206198159222444930760085617397707437716083288882541038435672842642504061883570162278903868466177298787822612373717331975231398064285298211731915147421211552046396044037671111723748046640622646344520105876994002820503135400555387225790571203654043565309359181439684479858315323101915341417224152142922091197624293721984121111816426265802280246108403956794306427005654763906028823500422913042158383088686169743700552888673113073357636264609026703487055158882976329133754658930655343788015937648567570187124108476231173634007189493200031389779957147983555797693631536846060242063572227883254494853652566075329149761484404302311393757104822394934723819584811533909083548063191063118204463107069883426756844070739212435047390630615329197739223732248845374044983665969456823782192425256412387941366379337602115073225483354393550760146303754578952078816259814214946537276128283373801287248547067825912195834351556494233727272385163469988931890932791563502078891145467942593322677499654812985060096204398568424749933691738047161354470062868006163671194377733493590644463732997288777031798602644889789525486572101509737193434928080447578016191084381985209208453267714438366292468741931367457386936396821037748454625583783655501627955819989089063627703263275402940147551805352485303314115220173115977018290265462015688103441829781022480840359240569974460162041787567165564572118676045070496043597508807779514672902343526733146809532876524139915152774111178487172098476557739772314012728137438941090999550970049885798289444785832773992204522830128073486896084846457395911304124740648842238190224145139049431377085751090896378853175718106180822916854994833112812757886756192874933998454509544280142560302071948156590085692136946614428099002274174527352435016513362116587880176681197651244628528717007625966597989171475220809981510411605661772629490846582070376345378516189963013744410279839635524038625581179763510561668394754046821137978541202385600184090953555120959298463904246058902399857161674363764558840636054363091283294783725242892257760286075569461245439386238930625257272682940426658160719414001366675353441194110943048292302345788639422565917757545176042006466384685310517592586140369529459858837091774735647716333670628505405082158737715107353769589864555143729241107695694524533941254666100353918321306006041994435022049269889612395135107345319213082427532918276753169477666166207135503652564839428607515973646729074756170289261899232016601781185246185007756226388382154238489009311414710894507223989623744528992887296799083886582172300787178261378332218567445449886289429015895450126565266512908662278830087104516466022826237126341458029061275089262673473926993438175305223428159132593425972211038322728299324350785840757506815575201197173167141026697115219963751268342056375408126021696992193069850761129740379409404444001675646570505244016156248801360875390488693116911178833124341363563580418359940880657851269709850433888195728181936229978221694562651202683881778000984948530104430289824706166044525186036307857276405606769506773133944256709174649329695110761308040620100301578518403428291425043813322683656544780102700582679108106193774169767452387674264947921391856063335404830712063643558176444487652820057010655294750775116656964828198186281391815691361822346805959016860949577382182936929854685190446053460069926713691711189455268332800818062515967045939362067398797241853362997285382527761541238977062866510821734229458031289897968000583068054834875491849035151787486203917150418419268045334247623162488894256448135805725991974932949589384587367284255403509423576772586298187498613479773266253557596954734461930066703562750619666911242043253838649912639399620787113110706937876799747572126802842903950983568553842508905433768029385767539515216413783458108913365606977041961312571471447465428495919327402662060890132619905535574747252511988969760607112214827510789507037121660427410331854513483515514566275425796513541514324209481856697525571197216556035831632692043563861445596288340636985859059622208562180610475001037317594919600181993395752613773007639134452953131549969353280796016927633166037420874910946719122713962427951056799130452106445966536556285447795379006174303828433085112718197887660351596661593365960448694593339387118731631805162926463401074335369436964192984379202944476453329497599644452113553922052733103300140804491999720064462898187504226509387631780636099138089502276418096383359194654873158581580627780482886233124350316816288863564190838529122816945041913392981052742039212883869659691163557153813407547721104700585670344989489775039580797933214520771144721729556208861011612150107148926387328325680798245427190457505164064885513154594281089462915739346573471680884863694835994852192304662733494414940044436901032064595441666110788426523279090290367009764063136559936661940356801243047338519249124629939399609373065334671968205996684920109527398400500658503935560988756888149961251692625900202918703046192670366662057434130712190226285002305304309156674525304348665652642054119787170103544436284418625753636735994583854974268656068551853469287905388374046930814553699612696766998071354652772887057944523149104074830982094995778286462701503532761151491276465582288053327546017596685039161708709007665211724579835665777469540641832516930118753606008594966273590414684959515547529227059953753604392793557147014367255659995835303031549443358779543531987997205509383567677200466665256562976171415691584379022073271618622991244181540423533520149066056230142074144484281988056286361853213550618260093171585560289840243123685158791162363353028118808274674422280109680475971534479348634319459926543848893763108959710657448611069509693371286808323726210460716440985570844092838148899953384691157918007622252909446319139829920646639231931700482257913541372952633558731816907202151882528499586885850121604625538638950512390251456763070537782425329539756516609811305665340014015090092192642008093714217163552033630353167379160219791236691442360954243989394777302433383822395295369684823887765095841334298100849567550303707399723389073535241326974641960807713981133764316929881203153304121053279594784234304796624863561186938158684900419311549935227817870035719135790077902391240303021036039930100063247632947915960960008014382042145526426570607306908100764425921828941950401895112331108836695437802747863323515714847624015248677020222041752734345025819428996519316983154285708598549396306966731139476649096596344813657952055191518116026809876908776772906564341287374308884291184429533504523828492680554872275476424253731980239726426650178251757095681198309631394620670791834842914150696209374253548300570786196549033683142531068387813942651540054725262137268504395763221568315582693991497931788252352126707552799299253622149174953501713016774557593027452934025510764681851821489149654179813231658410266107151480669115092363874000549926910985879272286442946473857910784285407514135321444743814441020306643869300156468642999161818261462764414726311655987526043025569488158737729400019729639425757703187081250337670808312899361357195736614065687027566949388495205410798889385439405458549133128772632017046047875062598397780381214361567308678474430102432310091562606954768083537454195289724764965707347418129003794658983683722754935756725687677482574046103641291861916496780341380481398953615104336561468424016890339694594873449245338211537610875957751826094969916177703082930148806918008929319697879226187382331924402786550437839497563084677731375376976920762607427081600811514651315070123888279020593041224000237409099762941259175733392676742617973203970052823930345992879659727708114083548014326570837092966338490957478881260557243732852819297730719281838531572497867532163198406925545406564950591051591381593683746971832830724004269160843166947653717139568137189818140200079448241324918238986425161503890353479933904277222866390767538473454416416949475475629929354838838639682210493625270878587457769675703970705036117903952811125183001440924103370574609603291111964323657008641166832176791178815866064916797975137341330143614891236617612008602164672812907162206986619880315712268440058463510004147361022539570887203561627926070002492867638627084099515866890356762503861947309875859564321329595713092735898588601949065877824268643323948841173638948546970381648090618034536905588128245361472231167585622010976221481724189420051768978056135419727423217402119630837938454115872740370703121076607928384846482938237558962300512258789897692484382285374640513008456487812124697600018404888642568382145084846248729717606838707935874289882529723359452500378946172759823906383532889140946158519372265332218596182303075877399003332421439451774890136229908298972566171992009319666291685687062923779248158737416719506320665319100815631566883216972406449395110786639166330130780096955784144458809247908041442083926760608042515702312565885345724055088394101325893723439702033536408410290670894862818646332141717879286536090553020105343665774232285187060512123788045184317206061768404433139515316325600688995612139697490072555541409850619031266649958673385337957096769059610373396180192747458710326146464888256255692914896677638050879275642953301004129857440021201134999908716413835660320215507745654928111071130686581128718523536629682847695404324954863917522455081645969177338068011680097421418574647723522723730509969538855137759144395547833047736001093962515868344834696449249279432310881999263025265811088472064216299126842702330531049165775505997851228071789351460667465836414064693674523161457702510797813450807979974454319385578307463536647656462944506514983045169516764263636128154729983693817879748395317394339206563807820193513676207516407836557931024251076858986898942000082430745787199895648304448165305168645801587736218730722201699609272513116340012901219096540893613263691209138869883710102093094372180982191176122544897056111107787366741228699161272398396415950323951937137703287030746124621994321495441671224725843668114015371052623805272563180696020891617270716645537805817317078209198129018781347219112024524788679105388931222706761570245872257194435136076665568921416664437644763143360180594485107995861673403394298085319285300115645826869106825188483511466248771338803594126021259100231389679357319634767742966027468541896854559316524437024604294680576754429520713451367892375702873624958881119527786529030803577570668685649156483115899422583807358839702288224020345090156075562241921939005014486661370530600647131013444050959718591868962101985519584742129102191475205908749837472696816284904906490213014862271486037490908904804557266788309838535554704538011567496133454823948419269137192973062002101582793378325103781098723445532237461824007487906150335322726950645007564626116631917470426196035791828351742844246723516463573646709482655050973654853391597159687164895281049310878459988425014832963496093603387377931544060061101730584981957603366839359548826000471585284192736488712683570576605713914059321928273455867160714187572100115554429160340370289239704255384058992692873177389508701472793290062359467762745459301466460906014826741415577165661573002435197147474149492817603278474850394003323972783259356676908746697062427060731365172621484195504301514569330878049630541706830724121291673189307569743573289584286937776749836840060267243530419960935418271135547780045031103718766693354778565908899298915371658031719619627887022999125742070816395334217020886036951572639809962693682000517728138826271254403081753939654970003079203449873170247014616911793329178254097058310833677514707798450455319256774523021304432541044700924210945579950780657793645229364655265005744005421317810375151661809726533137635833037890239662376056754359735522498100876476151277876761550250948999680931427903305517219806408850292755718350983806594924293662417329359664347192161515313280648072231011542282001206079373847539231980743293693680519752855358012141984073353126697197695841605166367895025519680013043159457008065619444440250236810360982909573953450049181169521466557194609457322251558556195500462132471308131913666314266003565536958098826444265739462138395619128016458707387585792443971965695493079410610635816169069878200972540702078504911082984193991469285555618799528899425698541440854661896108209133256985969175236063760098281998895575596447322837102748309470373862396302022585114700947865643508888105409670688314890780199574377241724884008880106492029525079721853881084024733745667655307822553438800084760111835289390383510427742225723423986388580027100865002200514934046425849121712271510459810285361971289210343483373866572772867362698217678966068343608345307517729270495288599126132405648019461665970170913346014223163097223555635591031696487534565577906854022160752335825343691239018134365438475342444028544252221418272740045243469382861428703543168723282108249508059356928899755351191488215501459977285021893536250622177708016947429697381049295864602708512708016589979196932918192995062620757903532928464483577236789097844838026107957920807221982032505148191632848661692755619000564999344322841960974119025352007442713293053766571196368155563845177833848984770710539964086199995723767838904274393436264888181924515717795767344155905464746716798973258067768896336874088957049276671924005136388912771156421919131117450719697368756674175285301125012673348378443586177036105283147373770608704118937293696270658259239532057369383240159046214806497572196193407315340073757421728661432672151021777645057919761077012818077802965921222628778169453081164845659947830608367741384553420429928075032421802903117634117997530458310746653303292516349550998212358021670821530085132119983924551797749488397219267556545212585240250062712129916233370308105981184976978885905936869657706057490620233376251061079761111995710555757853149502556905998627244740823649473894505968836859838686383791377625338182872897943929762740889038697323805046708290907507316213452306316463266381015255068155970445856415431696509680794171853179446399075563835472432126926008866493394925770901262648667881761620887677941771045335383152326488437304147320033269801431295171955836181081900737508989286955279309960511350321943440960463596725214088294410759498911785089333910616443553169500553780427346833992869355497274906067965017977879521292667265033076099671959142128984326753995587788709502690815029113805839126835073335818295135598608358822676357189474978876133795982792084273071242381256235789722870881506777380263826224809237517731952082903318270543743102620893413624681923931456595985597938474073233267660073855686708202490690491294963466488988887853586006722059765173235747602036231114628510739170877883445305407469510150818702553057702992843409778875546721864927637073438246779230292803169929797375426986781369528748935996235216598882085373382219106244331204557636976028933750357765461332345314663173589091634597893933923449306240075974462219023741979532556740815785786354273091839705197254073379544066397913788671908308520766206315305969433571874624721256709403587484458560782788283107038489245136996771534716827072305578980128534737140566396473700553564500612978330438198444441940827569915025345848619201770541441528513891175934362588055079706437517483702793060136045981775921956182955548651206965416620379509643979399240872633729698789563272924766500607372833198222416459128822509992287164982145620246801402439805997774750859021565840944927768493140544714956337734311458139938572828013187506323764103292331528114233181713445848118243228132138864153392301139691162813248859199821950914885502373882159514961702972861836717996221939074127604617833755949243948026875472390212902111290536561287443078885594157853523201733733145203074525935709108684526553674725354557069954870456390379053473652622237671948948449113657438193097012852119750379272440473372963072519633143012930982376351863195664615956204594070054017506371606694318694457325334273216845801763289109984938771064831529965422975182132768684686903900278862944737409123784011980848319894121787093837754951380616315283512715116758308339344955952498671245928440574841861711601710364555864247110882333353098070882480282736601858023116383209275317688126725836833788978269870656449422983563774344171350981656826663305804922732945051824298610536299263459470519985560469471004783261021552245495164069318830593218156400959388280430426581906958291494302039151736706278844489705312873401521364339912293940111356795314194943936999528705939193315234262456814345843919523113801525047220789600094553383005521556369961762618846750832368416564954393142042277214849612809779831359589749012882367798869211180185390394658376489479614982799726804345276498320150787562138131161728620113221768991707926110709188209032584667603623712833661943194428333857225347269083506626040541709929156031217531682564012747437530203278715593226832080993127036948778551079452287172310945579221434229099363581781349173085530059298628975312715663838718997935568287033830756467245244877921918731294937621660319514511896266351064821505871055408496070640538976017201233604315908991720302776466737933468371006312469330831398129026569779861121168564595190168872180859050525288433129581512439981664101391247794288823031040905670940051844718065066791184827611310435040346391228678961493029253956613880305500933668567821609186915059460862013586802974825521242409058020663882589793540221642942574506565470817162743078937985412992630662118091928788755176887603194664383383121811863036622226795547936117554896952997564532564878846251283512476286040283965312622172960259830606831412757971561894799416656401958380136775847782502427773606465480748844418063464002825623761647485263876061299188780822106439764648334597754077475302385483262260469578889473337608142441336633435026954456623126431998449178842414321918576363819219727477296154439331446394785173632508627343785414848928356533365586188508797263638955978386876742583520561981840589632225031770162069568236213906323997761469522728534787553182463436096968883407051143395841233147663658873948624080076110581183779593509932048624929284127794140302991777211703891436289830313295547812651515461214530896116232352116037322401335305737529351003289245378102117630818963948893772353687534009594330738223812740571216834136119314363132688965382662769540924020423536170371274262419964739207630810294563838364874395429996881210602168510446715044671781409975838215759066018719264076435759211243865452393331706101343162099161002973901055852875900597365058059755948564782269890079593917128485037772354216137338116173284585837240001993988590557143399771006909670707309819835921570624879821403892198420957598801623371361800676750341937082077891540522297467221572323148865191759366249329377376235731390608138837472735704744905930300100030342858512279857047788198883173613089786336472780929882567269821112502525864600602716131534899806652085606323357705196355396580682657543726123042569084674023377284027409101719735423761531873652625707300544279982464419089374905691302093952874446492242751092446040077219732916520250447405415399906623151505915900885742952527497020700346490243754299971587813642834854031194731160900560672223954734830412866280466710875471771991629093011458162278824718837756026949149224096254760847527352295041238893200137127921250908740732895846298942848781294488036105736491622084013892033756806129694885070650747280679993395144436971535360251382578070044424517172551594773429865008150125417891474416185732711021685661535883087056977191914642976470245121444427545182787030278101927267427907186893193096325990263372854708380145877174478823064964894460870796423179324443311768572647511121155299775921066402780197581836122274384112325349144146832171100100036429508509927218786025215860970395684221207520526285256534230329898601212650565140746729116771724367617668022619633766454768695088777866793064753641285709778473173128235443692678132802013173605157125775754666579637791899932719601284481256556300177486154945881915031985202085885607475182899718882303766815072135109793671209303709862174896020282624784120165287893340258317469873650083084165649132414023919117035843581513405157389779495736998574824790696709108291129650240344795309345102699985209088441081842942088366431873375976971678708348548402216811013490971774751426597407780898979467968814493006013390356169022402998522944818450669824475814680249589947414692021974775606770441056302756902768258788142546731949621372767362555475447930703317911552797391263438642093333912504655501799785694170270207608599296589184515121818382277456511443668694466187083432528356449136146217261721401511662379510391119213443311540579105984497833189530677001463456025083286721498279701353677457259897056684331195196236607109609351502985911448185380324212263130999848075674790139659010449156856727752665718430027917428711622129008186773518378126829561304881355389342179027661184695304304966091981136882737322237062883347060404139414050297335234141555056596275518492823521478500221554247733979348254721573882157172989842326712733748409876009987040546365480215350143618204016350090561969152996716743424191226008901591980802610933129539903453750887788451953944100788364989940345732972356017758047558202177013519360348775255420664653115297343086146783346061324317736277265977801239513075534518159749385790859837102274349041032359193043090656133589141603678721080356735494526795064215221195263266303675154303035614423557663368066078190155195982201673481521007357393661943921423596827494788817790282697046374723394995257775972349187325218599231385412322035695306264141794083995642180375748155730257670935714069765144900509793408364397557550316452999174551769772556208598880230551826530304838944357602197247573762939244094167460258761919353181582386482921037370251317597722897517222314939252523370325050060284764581451854574635178021130969406412951863899636326234441611694943590684599273639578835636805648338970280706877370939313680994705829614165307466036221217931483177219318031323414487577140827198022640167530041334223139839670707795737199101007555770637214840333617609554967273655271553220184627009840593831429965038364061838608442256120597679580175188333974990871008096155161653142443562713221840329799085770298473015759423613668219228839445601408681619976599588237908881413656111902745690119166131911352956577223568141819324882908802110553344218372894729567347292795833180160810697730586952123128128335551284459456105704977469617102442065810142305485294944670485178438682071631282244880247346318709393162716510134839189541213692332869802179173051885119340484167454101918285530821729132031965357706072917856887788981787271463279116535971024661000018085194520068180138308798551883478779404679684465317518698175647676038203212543423218518221412927672830811520979161250724725059947631018320798867214762295799364721492291812500077092138671502991160104788653898749103347375826227832635583422149468083593448991785627614533679259800214532645694004847343023382148292997914339137006383992781104441678155867220461389539623049831531274560274912622668426059671247838036922663124134338015276145587843170785703493777972364521338994474967946025971153803959300177738611240123207311370732941697140647779266845625620431423060743010937871664274680654540921006051548695069223345006518606517811387769321150591564247263740012733919986978296572428549998221798396880314104159096457355816086429263562820742785350887608682732025294377905500275222683597153611144644399701994348092440453487728967248672566345590364192704787057526412628243691448096482609704515077706445717243660316452654766989654106153922420949630247976085258268757475322799229634932330322592372084783304248566997544948366749595279792327372447555533765569917909232103272604417313909078962632193513677245098940455437945592705849311993202316361998504577105396124468265604495795889141021622408240717381060851391831667410563488911207116086131547429194919428553601588031907265103222645062686960282660849075846370135856012363180481220799475334108140059586086314696562379703627924720321796689353952175648564603330331494729652549451554699482820588722722957731586473188506686999464478403389824352821642298885536265124881423970774186777862838555254724095637198778571072689485989155173615045402489296005373056657772017278658276420847462622872190436151135055297108306794846721016877337678048850262099175924307219461940221433428460476052256627849674423264238980050049787095780608170170426627898003597150354195665783254335891927946918374446638584081279020860707168849719611062095748546706583411889999058656426118034174491438106419711996538261307155395147126919881601323145343887009299538023217328875918100914031184079429378040129946693862524237006454796845595750295751947885442109111637354145501716845730840855738698766443363952447533576653956094578482772181487142818048007766902059883154624959503970438200614616206200263727641409469081215451333104565416722434828917250838044408437974732320568439629982032553770179484450195387864340163924437440366722874244981201489325586413940728525821876437183757325508466682221897458852087115375101355192485970746249565067273519839731588523347640525577429820055607495151633607476891540127964441437059987145584351473298584624807601047651289026044205044052753570486393783448287038921095944984121661223245190827488167291907549455837416344783989343655667069412700672423691950872593325666904145235202216001503766434536560237532334558360382098247606151916160228656937818153997623678022666665436187878026557786051385413308462085266761475887145352554677132896509646986314062834468377057986549712151378963450003945399832497234724045053453986506178638815607147028293025605489287092153833151884022786203951208226447134847522334259507800572111975917418815944972941261290865373582528962016414637632729475680205265096397809461942939545316542851975366164654410157272501124060048399890115221031503716234773882655482738057336329973967878092485237922378707818693963285839688715683391308441999994950250703541662608713156003949331746106833412341388969864819584259196234320673171910215232251442610002714622340564684844213141123298735749538848400147610879129317757108266273188529019256247874438008759490648958124592855620150826198542191459829882672794750795957363523620071637512727834523471412313304774579452163811172807634383507074693909259829296736684524724853250620849789945864297236889653443622606883297757085105017199482868814334692975813521541196786511636840731657085660543140453884243473261545020075864046709719002201267051606633733699932354392348252820805025217362936760484003537794337316943951231355455419292792746832001354533016418148915750741161061253265163739502343028379178048286628588345354972036926108350342427197426027702367198448838395912478240130133353789176212984625081296319289938382454162157359557139502595696486128181954372555960247392467312617517938288609854246575345825407190310265961582057810491745235788707760071583248721945237627365745771433002518587776488409194493923722947069403147152951214914041776392022758687317207528309373971945813080883215312775300403111228120505522589665672087458693263918809576690584105501048112922822757730119229680276793433503307335201632470771518686639606989304608352494427746666990989575907505237131803286504162804737548125154777777201413488163606939621084006709665335228049814531398797861107538945517710126823466480059964822860414523125520697118063378448305480342687042640452414545357148818942185936552732985473408911462823427269799292343544727603236343094339903153489559066812270540471861176029360403808940922849730055526241109667394440318780848389130664088202610138726111711507914259733193031441802933329412562234935002958155808722502122282706239023283450285369516440224302268111616955927766206103411259522965177833616647853817355145518464381836647517778977933381102625939945354066479198053532613701914341244834962772232486840090919212930889349972947714417776251753778869677777146550061821021915378460500426719676301852056451367424592074241407313332519660404612025504112563048209338393383936754125921118597196507208549881963786820651213672219718319882605656885177424340882946254468178992630038694027769081128138850875744856814158402780523952779624140103737357162959965742049127492522908963475926559778548317851512268466324352579314585624589845639225745895838964960283994627075117127933519307606321549054025781578969315837739800112734483626219418257068037051625237882456872132473220914869128415027946902382722522139099675194677517958811444160813828855375747173428890317739370613588469964664733674460984721783364934762378715839314201784356122668416275736598533951300221951199044591138188226544638223869896866612878815329360129386101310679195323925540119512651067033202263531894312714936831532689852704695361250525278121926119780773504461081844372499205372616330100470734334096569129048730257076435509693576968110664261402969246526631895859145525397721654717188935086490361634728702349149889747348897483167035383810401075943771388165309349052089503081049236048400199219075107493276488037890471683083319370808430418062005335893510277913575051816589404811772374605338047581160271038721780498113449952785632638982448889011120861779001125046368716833430664828056210547199638616925256655034265978465274324129220940169463260923355587045244630297068760502383231818285785334895228025366929791294983877061017365329595806076225736425923636269210465455641899942932674814429682112161016208958062104209428654360463477719698967765890611073920393904719413569982465535693892018455133522792438061337532452599195428166487401111339838271699942024338302307827262850553844070544518949956587518963143744430373021998424412121445383157975443673904401076798779229459834051038443000284843101842394377130227868618766216670163544689168123761783362585548997318290023403266747439760244904054027478671320146572013080019912830366546938383678399380727268179064979647181850976118637317809968528977273411492948967546639608348536833248452238642436561568141811957671522135695707053529484494465192129222215637714647959740262236285511725081731739980761311578614605979986804691874447154215742833311002395485483404403061640066940807272762300409788287295023186926056380990505492979092867537732968979765200365714641118030428071234250047528442746320282391327498413888301306160405831240901316038455455871806157953566750641662219498283923869367841679672295752252138899570308234599349244130201660408752878746364842981890433582262108091440534605565479378258429379577786882436875938161688171152121171916031015055616499773058135993230702925708399507459860112001206220423479013595790721809965923070788134157061974350372130172110455752427840770485936222043248621849562784641748224826390413413179290703757504567154720050932790599938346558844095544218152744522783036317573658978879205296042150638348316388876749124669151298877940635117636136641812862492010546616459951077794904189958713266747355587102040814793627698017651825370964876012630189532353696719117801542751949591597422096631227090327534217799945502158069479880839505898357583886698482996147826528167447991403691596673203251241273650878779192422432587095991060042718243564840622524245192564029075099739414295345730824369588210230837780150277332318295171827111631198413931407828598911801835844581239780826391819479963162927872930235383346701998659453629949908507466941683767481238217798767648249227711031526192571431322839096896739396662839637381428351335944234709930282016927854706759235487056335042788435891107780785030423851998578629006511926462595102217514444843817248848077077697318510532053338877130026783933918232233294476258520191735956045812096861423170859232673757633048069873602973236965969299790295076015117023814275226011519817708426121437499090075119516801293480969136822943393772857697191288506540471366924724090901506086013244690536120979334541005214160234669521346482997099945430207505753116850129292369953969395436660386484225147564483329135104282062444895912667695240094391117372978488086764926864078327702101885364300075456240828910714522840522689217142011929783782174944246442196000167761305135600984710863198938111974187934339926860200351172779159207601688128356585641814910163805093721819508935991669520546464770878670368540316416929817632623602666992082957689104357316134445280149235060850401972567198951820321912840822782544462985576741548601986047071611234286263215546414188615884001261617972383473958776254688433213991856239741868081088289545290773416103175973907608432598046546400844118326619584341296541426937253836023347180338690410743969277017809770222080660799600385532486195740256822738969898857571946537424406100632716997046731924304634367441648123759595019231442485261917315493185718995848078712724925842452098298035536196491360626160347406793389971957391155369746686660587153675601943126237361082907592060684624919689337575793117133634159544905241771566479715733205394700864298374067088176644237025239017871064142921469193097898920372583819148522730134388257938970090130196286585452396379803840129435061316109457201826947366590812877987806525028278108802118307208550016552189268350402343839216624137724888301287652710430493630341814391845733914729518856484751633106845522471395399759374685026857537150162044779013429281540842193425428394726204837484144015288568915817906874447745417247710390646277286237373856027003692876288078082356179215265223671310141046914415218574021972120406591446438069190436932316808118915677935718416566178466033982777728422546128860334413237390100602795933484897879765819322827182812386668542483847555606436096106372481539377536123602695577543022572139531559440823238272170014988297848906271949007381508840529779649220810012725511741030256959727410713741041473031648724845569341320375698636220715084461922643055844489467006846895442234913624967136492336718713017907738937150307295645859402659220537394720676822743664888614247941177321731888073903123352776787754518031743435783148780686372666639032869931868250976694118514238830253024211165569949140844592567071273455935353203252982001322135309373620965036513615646064304722831858212191886947264971459999786148873544690919486684974064341125487522408956803090768025194658871432012017830357405842355162495280626340875544958584016852532145479261946062755288296246576981457553815882595176049419683479541140076368325735606451435760126951869855442008547920923647748838804953764239743913239590788970105896440367947649838227562649471314746579592155811625333500394689021760809630302943080148319331575164238262966263178384743143033947710467773992743646871123293232209663289158879562388340031927649534407474827304036086586910440716293710385204197286730445885987756438116670005680317210721301902459931908724173735932147859608261861705760703468575502942074288205776806320084810035348794042804188181299465246888367148700264235866733658112288899628791591960096543752393982308473481366553406590515083922106941178271339369001104471065625117012054071379259888143474635461605141412382008801965585118989297607465153446788938072297937924421147938044646649875135698591299358378159905813671207417491601386369901710588599680858261833764799935715466708642516702357840745807703764695007106877878255085928732292253974142369170493271915261314523519628518560561916799231971923541526914569676761580520495922209341306337352259298608367027532970997800846624532639508168639979311973541421204981314297845082469632629393428144902821193898006498360790979648255761411033224152277090178096889257728007978936522160153724986974932892684734531778419814290140798246043356907798511241479311453838259199484808300683700409052407108883193302194030910525701200078937787426667641726233984218586476105352393595922660059205758779579802837269327192629900698596148135042772124620198448147809232516060197426063468464240432218323465153199198681336405904435574010059895541864749800357681186693726993695637465374516622749309065586770565032756753855427352584917434943242233691442850021842412502036563692755578667764030149537810986600744880955755180563718927417467457137242972684958355877279014845881345181653971817773770343509692091152754700691907832898093418889036810444166538828385923349392975781134306760699768341599106199594113184653454922178363360870382531750421070449716550835080242589534654380334674091961918643808069799150439369680206863761008021576585263038459979679496707160910006995577760912598099618516647318790859633793997548070663045548942934903494606956317381857669377624817319602507950044448702405583354427092701796671833454817642548159182945895543926471651614014019952471808188288590269830407589738434375785981130049754988386901502326200849108859664583437166138329687820161988016210563031314339985351826974791398354864005061523694953093147958845696973538286728820153976745198336415817728978913891765826307379642388104311567543372181630798718010656590590080575720322113445302114647052283493591165916117204354983195887541573777737605373319098016491161454530399576389938633377236166509519294373251031188869771576950040528860404354424655298228211292419494314421858596656621586837478193652190580304783539684727248874098246999203586487618108930555399346495766743676974431223654095468014534255908069791493359049279568391479017230729455416361542201187098583091258418966881221287166165987445046492346908825231275571025599211623328500721277400349687135408189046499591589045904635117891439753662937146989386932736041595941836588759610914602229123060829177080874449205722421472326485694199906185263295537023476276347410946076325087175657581853285614981525928467461455698800628440312856682955375738268630923289114872411651089718277576069180890591469098724233611333292222990934584068218492276860006460079133711815840442440473521099399000570381662840030151338230895731410839337625039876299472971105698944959319901907238407207491540295498629562214328516137125650214057862725503985985711173463746267970190787596786723869179455572917433374960873867406807929707240860881028939481142685169703696680894930041183094005598333231885459011775688202204401690557043685167369728670719451343613825171260630881719951644366643537687697124424982795589359806916740934031908683781447782681145283037523201780396658386597557191004694938119414036871925799887105779803205263869448626396183324107400711652096892358551918530915907005610942368660417599990144862146843862208588761469292525772789687095948103321020113610470856979134466900702607580323129472476346068418424786559296121477928308738373888385966113373868736928247537218740113762725719838959960581863254324621517539977856456336781676196953396856289606830051404514585588528629064154032137761934166444137257430829374306257395449204260893746528432607445500259247100137341967446427246566946543878160730978865727019829677008613362953943678126637330804803846164620805345755132880725982058396737957526228464435083498810055587879530894980285014177140790306747270429117241123384428638466321535311148122708301348778974478860451710421364957877670190423930839981792988298168573426664268346929845976349315497995111954102006689395534167626200895195750361170473023927212133081788618659974732586285742945510143186256605639466617877701196621945395702113141982841971909662361141171549421902258555013675654701221863999227210115311858988316057755807437030365176153212943508577703150160214406132338296820024494671472224083188004572053145957688992785437427480031722805732478772200701766400054255314795184656145785162597911360831302379642662460689799539942961612145567346150709163369861738103198217484028184365549826470489123017223981373905377586141934384841388171926050528524677507052849022274715065237718536074133809267301060063400383797123076878737899606411698394158580726971296321241021370040557931045077459130101503251802102958182801286723042829953915982487229158744059897425826627764417091214795398233375670211917234262549323840549651831414882662482286674839753303912157222548932599226425562883398376383597196571902474560926928876974690640462939901311179268786413989411185758253069858858659819804664582912742333175465120642466894433435675437783127707479276105776689583744994251732735795241823504909526843588447925437128888907643373478844930629024762151003146121442692318065310282731043913074321890965068719007855376941320052462652958974574391167820794262746676619123801251115834974686790527236847393242984424938973684918305606696689410969274793691576128719504453980083663294780889029231268303482040099520499400522612666468176006659100960756471555325737503950102682455545454369569073849135287593095162068653827407010214813122039240558908547484927468657512124456039222383156432156008848215255912623486872771096793129021205393192656588115689606999800984087774052393246272030828895047209814402796089761334895381995160136151765367411672400447251440900477682971915411519783637729510119188423134969280559002326610848423854599027514492216721869058849883526003441021714781643228432759866813048914867989415712539078751698428378501364594355951368880041112236739845247514526798653080368847974524336960177993614736455947404110962288510944301838100519422751661288618688298757191861077903237654753629928430393921560693998216054394334702958795985472180357851925537028846348163211653271916197142796742997842447560793049037163263944988266722439895771599735764358339571927717240032576372418766753251552985532271151113264187392145775630044592908814606503334192195193971846665254264367648156239539798862944727344838978009172015272770286678948323572433495792630789378185725127594970053994711777907605686024439775187944027778445136317637587104663944394413878921520643267872459729815384256779045866374298422670474759692397526823238688090159681114357254023555282905233195896292802706714893338485120725496549744142829342589871268142078276833018074731958521951448128861320252874325231019498689670960730325373457033902664728531176598145841770386690013503554017511911880784163080964419417395783601490449926584187841487206602159646784784331931715569910087034152316436160637760494101589577772492314974574606659386102643614088444693431482771594717590681090467429621166332324975053579081745934904770373360416570595700230209418710545909265622482164132116600872295561906741899831852620003645043056287850434422115947895646138250344486092553123011878244660814761131545720930228771475521461554371254120981964625425441723524393403540597167934300551138136697844503821372708256020229874854686199439714963142214261752376583697203269572139450944137513093639251558424190205118047821394337164577531398138983767795158486561724016723921976713268425055207330166983799427162778495342352400527661549755509486807727092970299333626872787059180190863857265699556830685525994145309444381530990590611530823118344370881984982736886971409207339986283592771986754935412030014778876336469296623087325752111581107830360228079876755352524199959143375307029473388181617934840123377448548796373495659133598379712953792858267580121305847113823678497224578988769017515670306042079288729274024269166731113816493817052416367984840229032087354917965989394496817125732499031783748294361154759280511379410735317213408655300178476335655692004006534754986245302138957182894003686549185756489051249547834029348936875469982146538668953924260094639802843319732303423798046410452644552210585745574280452253568021008016462780079509888682666920253516834868032136213831481515163649538189130875633116058956849978453445994953490131878589364329629492507438637417763568881499203868797452664602948063569606070390290421061031204000024203669567504566204583280178153962898672008762825181947241806035947634525489264918017120677123496679480646435684832549663953135765886107160025224419145554447017386252528505207516379691289593941319074984316938558018503815512950314856447250524975370594992029454218456655568548745371534493092316249795359201413880731176277839356448107736743658064837182450449563716947198097843067920049476922676214662557897021084038044257746871964006196815281535438967464754092017188468876256409037741324349154742977388281237139391374610638225599184121936720131077133939799309146595722428491187626589840805607942253046146500383082713928076249759426682174124345462271443841148711332963814512249719942512189053941481242587421628429301094956368806841652122775642807334599996098783182268612915536965571191740239283846226776372572645994203213805882398820990367167087442652477171147480869850919082920444166671556556016434358690347196534384836173925619916453667811038020096512304569287674729530377502065265326188355581608115650441386329538815166970021265388516846368048786622325477615530447795141032499134385043246421390484047896880343330053557191144454825859856679549942376755426674915057350764521499693714478677597438901690779109138279631565029482878407425391366440432181147069508745700882574943493366236529649802019276564270148694473640113775101134609947568303163781217092034695618951251476429845003480420361967847481596226617713605160616175645825746189748244601245868355851511557012073030626761164116079695030994791712155656454179792943414293844913222436830936971620260470665938405371071512724987087789635773081645590259594310817793029998256234855147689065806589608846645227893452054428567175211260897900806152810527892959546378383463809531104805402901911709289084245585473807292484257181999787380515097655416168765982741536054478485847882762235791895368709565942191223199365123223264909173861952077303891913586905788284576371996442938998325470457280740578323617609430877813945639482940784161094172088986527102576597967381605950802021559363598042603130831466100143366945680008800899091370844095623657071851584394968658316661605132003899158841219133274073138184392292439113121206479971803942406326686242239104735383059800802663276351117309681828215970259059648715846283821847783784934121991199979273467647691263294779119886536061350526233000218403522014772899562474046289640238027695336360254283354837348076781171488210139364143884746473407986792508668327438613664737340074710918628321111984960048917863921051298157659002704695715557646588636790429995538722164568552546024594965233275343193872435562804763535037517838285465609069084250610948618436029813902715273562836296778497099891213436312220724998152180758041999697527849778204593914265514425736386444246489965296780380107588015675973020795368131580021443565993832640745933591115485924492518099211370752305727379059298263325730285263430465341317717396769933319738843885264106026077644917436118919316934743617941738729844663037555070236249509753176773669337470732139170200950884915563101337799408861934371812583902649603196985741177720139757652648778385557262164619888921066472481208539372224051576393713894586160193530413668647132665833295290322740861203722000713243985292217117481918929807553305614345786318864390847908691365017876693476988601461706826679225209491709452993063719243712823669921423930541577418004965813909874926820694362928659462362375850453280508114537067215419470890382463533701839457276354631798675901771774738653513431790918852446130836956474828542124968309030293319867312474375330732150093199778855830755569798990238027249575923288797456821207036082329166577009692760932265187538364867185861469224813541961371343726130143651498951830984501425627820983323106706754361267879783364922352317830386097780795997267502101763813699163760966340358297379985020507302047605572651538590736719827999438718879594322586552987431268268276325354186729842152376657279573287794019098109400282713518042750059488827170966922595326323210132556589993166828356897609321309623794966613268185951095152026002162079569198294884286277708893654735876302440770809177928394326133183848554088737555563017411202710697156412744703388899234239537784297709592419345907862578827301001187696985957855434459793179869022982930463560473954456884171742314167575332484261823715701722519862539880054901667932301374499539479230471912484524633813958589919217368396254570422832576054919029001189500721972849280903194062143070666042344289820100286574225266051519714329923734290652621604649014140074698480583570678125203644243397341802815943279799934371196989916199204122501143345958641419321178868817985958109235890682329492891265964975716863811825722405439384563945247033090116260953621348715372983785372868612477313486906061484978540205890041921189792043551626757766687584421439048438138225824935678465496766740878974509480040722230225776426033767654549530340255784491213474103283416260290582067775117207820223492182386580610506087261184863857921233663510314199202397943728404185760955023207266034714770114244521391582246835023885093978445958543791986274378264963892582712833449731088947196061924216175752666242049554664623727291887635570527617324208087493806195099301600788113792862567115835308556406153251477021439038628276700906497580571584954889046979271887200882091658618028767985338991655702447819508435958425977920583737683811496109737855613198067036751986968152972359313420117312141306368102386743120186118618703059225297957149772666171848456969908865227008325811463094680298261442188620198612453275748629030321338804969222586909520288747017688795071760915437914233671661387409925697900204368718867769058409821447299353554706594067073553789631164663150151061814037515148680735665811469227143393887085177568077019912679839502459731940655929884537681662781378497909602157600511340202769862043558444097137493118000461047105251492974015334325470486753070852699441685757744920994723212994339203210639524116818690527809755239729706086420234982570510916934183964690493942871129126509650171667123710403245342599349395323085889401640291088380164536542323738906679256325304194263661523861292235526931089431871909866201570725403765674969566425950562443020134031102340832383057029935544093178839282596676998128642663325078390383638649704813410879554590815969474093912602037862039094541666104823453130883542726479765132216574972061042823366968612441141215819864464462922740472163985035454422934656665420204236992923814332649315654003547484030690619946717829019049456623194800429058886564245585141102641332681870983123027390916459603659160171427578251347889128172355696705904623258144230736562779232773298521146587774728728281246569287183919950642600247517692741642574734288465501769888558456389004199736744117140546176338908626070936538711034390973003442124713415481247621456807852270599857390122914215008589770411909582999970361705990531886728046229534533481054706804057801125087077088230053310287724956256950872280971303467707085332899281904193270668310745442520069673048675539007179768516397404638614910164049827493406133607786371976367279782169874302900445372894386372007517761052228526912582016035482104377805963604264411576724711948209223590487698978982164534220014569286371871598792915768282886647561442414911652206738332584039755241618805214044070541553292806571375508728848774144094431188846127767054884096894432115036513307579770489631513641192174207077548552521196878393202524107885311049270096992920733604052312329405460962870833868296030524177520583521798667863290196226912337509178395219525549195073032139355178936691366415232516568370853201055179881862238909989982564059909710625079104035603437044041478272385370606493662220737399403394439483164124387616256208301980512729851715659165685832188900202331365349182346939162800501307928051852255701599061938242592846103650275734931673960554734629865858224015714088731297093310624239272150886885644969034760533291007901999563277505439955098899966234311807209572765669894016760188384445243494756075306067258624744250015708125858916941329772327331134773130858165949008451701369572275144158572014741044330774929830077585478078885287870171506067458979782504508467182299137170254302941519227355727492710067546409692152892250499787380537611561171472836619263801546990020377428432509026970561909157675872277345353521739001388951826289247215075875179204722107542301010744651225499479153135491752060271560640117320308215176428547626941516799820314625650901176391789901809254276201671144638136896170638408854196601925968712078934255530187922828084819067127135560814364931628224871825452337832994129255380753978743017216210218288305786314754963772905761540314183915302247282261054217209235516405263662996098998590704700393843004671356905728549855287988979720919392386613111105912764881855724031867986674764683468492647393739634831395536240409292336174436811594034004414102574773939089512837264336325406917375309359215450414826680923439763176575403047878234163244192889430609176355975754884859330981523017059673222327613385008086436869047819532596060053157901872521606119258273338594809142147078463228762610914289961589247042228093696641986994850231758426831085908174598371139178223007998182510474157519538855089800478739196249004505052080961683144322579527649515519391368250606649371301057446492484077432750109914245874520684573590038224867102436124332393042817230249322223992990378294756232779810589166533223458103873585308535749511686141110283765094606115321848934561199829660137865906681063217917977183992135110114538651329432332848540768626411209959155114654036363792507933016399759187900882630751022775975727535339718755090356130779622384647298854269494243445682449501579581964504618757724407989080594231200911038080403676585537222245366963654267507883615594293340452923993062021244692916613735673492970886602831331680142406706550058518470720075639972185873164477997023091244517095415852006681446940252080445577895397245553324098632324193903759546324173665681520311164665222330020416723765233585693440774639318093902861931213874807187297019398942943652736037445129707445417447792477845566487116726777203778818799568832144525730475544188075875759007377229666198876743392975688210513544163738027699895240798072413851125207361441105286548225191165343505486666265384764637630112940891271408578865158887425822325316021472198492786284413292151835274600287014863007049285643079127471772223770181529862104082557035942553873999531957754117174367027605409253587180265034909095413018294377727882362526138404084301800258558159484346684307555654567901715801320234820186609036184833899206355014844860125744304040383971287680019293979444329422505321493373142517509206774721846989428420569835982138867099937335591032022882566127860431211156624643401254428460646559153051536128933602882859536087662516426857465528497721222463771702333852586295934220594156188211413959352053226673769589441760322174877150283396814908262282052144684351301076087122543244258849943485922758417169057605338264043519999617500429225341311881340993555200113964693475600801677767003710763271299960236085833168320027251192181276533464941477126842753501423765795726907388454596267256398585294353877875388340549586919318670644323985971552856219862920740806734917038220499105845726757185226688185228382303216149137600708473756238979320567027744550520225309042232542268585199480715565577427639620922519828553347035774036941464015597625384654070455739074850160318068977302969469383951160166012641867501330536112842307636000086685687277668521705852524910413355740007763812886065427506272935582652033726975075029808364492260677901026330314359424306681930978040661323905555137201357994472536062239747982347612127745169180505682231546771976561894456882027903551297525212358949699682711966473143617730022329330056387956128296432965495694334431459079804982518533478644372584945804987311799313343405084646096734838044402310551981393215612918201543656662030826649639260981366042884526403292928188320652560037103344145736016741945363128836308255866020971919529623511340501599846554958531696194085647297464786786435384519456619699558431946516977759946146939781320094710931462779774680898712176101803485170913942918050326885354580811889536356139948761251241515092367074443592981085167800783866032395387630865301892282250898870173743205043938689857548500890152325813020379402057499341759368194508618107462872792262559596843062222079792158150600020852005249483812072477052079039536459167182008075456161755807343042109238898850884485062436064309753706632721075756427970118733274234202538660526276164423049776365587652881189506598485520972895943734321889764105467040544495895875804073352401281411526816718545939173095480086644877319235433522506130781125313855760615774648710394840879221952356576786559284983051582265495770962974695445165140898784704567365227463902360714866687939538840323653767869052829305363271689684378195689474757969870007183414979653464431674825063035860649178529456109173393186243083484648279389394633440856649580040363871248041159375230427091128600879441890593990790433521874022542553683839986182707134040037201104991625408899813676175802478080651039985581886625568513023125800734600688399259512824785201543005705943421996700629466065951535354387390227764015162277633489892004547233589769454178857604560124085527342183364189648346659352839298226108932906676357580846645990770772855344518844143860687669652024686787403288773667989562254995299424043892297366796237666388186682457137563038612334774496704894066688432628341423618912494634773472395997346687980821256486963287799870305917552882133813244923990197890753301193976840996311328907473173396732042786423777963411352847486990116661740651136345229225587915164295969797378111568164850175670448029810530055458929383502032088623497901241510852300450546529938684602013555965524909716359928203998246957203781363368723238025063894012578977134328153808082560078274756279916797810734900459126688745894618838723812537649715477475108240942954296509345342452206201507790848616139148546714724371348089906246463770679197984484840418494474114503177079364555332719204087264505148423201395082232849726033641568558203740300383363194373038568667880488208246725067687558754757929805887942056385063283235770919730454293222788013707076150091566520153558860745559331127575547810650326503514076485597485177582879397654869604287140160975744780914564548036223146038465061905507429552073781480772865906496363941975667787016234730473963364435623860968636551496968858869105853888465570658410187538325448802329024150370404602791816827607007549026864480440698739558013620193650135202437547175263288684781857284606544907525895339568945168416256275185105144405265165878155403666702776569102174058536368615604467693779633092027614626556845354191394855346381373551270452019621496231345023062018936728789977409929227568249950012148802019938624537945778601968426619537672994816102100680749174937671179517371186621712940824381494572662433646020200043453931821018043992544667338434147103161924935446273404684060662908639265655844889435668458327791250126274476629674574795282107557266259657668708564012185678570569516546700998285188185748563793645366103454237180385239408132107245015405718896461268112869442836511729411520278035964972736815389778923556657422631031393038508313342541666398242060092842273865285252583251514161346813237683999851948113860973885441582653348492401644525624578744521219632548763625304492046797854542412716504130506528506830018372763670749629883576898963789570014007727449281866527011222281349769655862090402092472889540786961228442123198392413524913792180552714099622001823253125408556375280556244374418122997402275070024627441339717548610236454682243836253677165046665656223734952895576696097640233758401513280462181782373939110033853748779925893874203104555792902837589341752990552214109833194616099272045623259971637771843603815820535985941009623976224402615475111084495216103104310492938994162779156552034803982608965725751543206273825625813879357289360580926825384781808956481473107706918103491485871803425517162677050107736366437919323589461645078672243923389160485220120937305782692991810407836767080607244750045295743623902007507885072172294954788041395934739604849686629191445698996001683801200224652995792154418991849510313243644845809320190701607285186530739235442947647022741783840127513991246169376395874455665366263770809152839092235749945350538732362779663386590865678733569830661029267458861055092019302325371119040006277911132546263762348480074985242758308084537370897767524982769543060085635470567134774162669794962428948647973068952608498112395632779329010159160797077649781307910824587014240865788239172553926834567887197097463607508364740393007166700212638673691630964263792037521718514461670237223884402418612906804497493565260044087864388643289447984821222129898805298080881691235814727869303263812331967237966429716611628728562694225591429676609785081932432857729530724903587979705444966018144652677058927498277385804891284169023193350417967398513049639692685109816719765519677643492469233470964780559098232806587755115248563806834059428887447577990814038205084163783911325828593662289841718652789143987436334804291088024322543651806562445844460907370495429512395614710169094708923136206383431004626720215947709385921862754660769606758226510144334117306674799122677847763447792164035377053021168708678490294225216000689303005805812571911405652068195102751006674483543614998324683481120798749445568562613994604183905465122780566112333698007547900728406067689267953559890654393266399725557077270568544763544506475998398230295958760624453283848762356899588899454339759111595851142086213818474832796362769478156221993966501751559042976109350328019968230691141441824800072418127442081526058059043858178794503790789792074396046809787361014544043687188316309725054437929042587879216981440571036092604498274948335101052223481807449905179261444862410926004154079123947011726845286159408292255374326090774605432545656819374373107633345526503410835637124109758783098773643769396371225622081838728832794402333523431691975471817571976005698675080418582171905298071581510953038550868262353978707708691272856907789158277874238273456594653725427252819048353992658975593974370657130910855026639532853811622225331137927313898581455721293893273181825502034515922452916430571626370840240399748080468114898255467621387822671670529061233968550093852101388079955987723257443708125002613523296526032926995021136166405707617862945625650616015779076262618215381930959978721690723639583364343780735856231607341503995059576128685190323385962407677306343926628263615467559868137217411417846221196047748514551436994649154955966590821444830722873086194218012575285240822465684922724375484812844800458777889664189572886591963932697273054630348645897452441040403425099069956271952009123197789111415544931890870736270219306793491036678792469246749886709393805323579343094062895356985104116860078267901295818935492058305435790648199296440894162871028081554431584318329987891025891419211683732629338677647783991532287569352560386152701761773257052851948525746731479391297601295571704870851812572693370058201440664492518636008248306710721342316388082362133352453727389653812699444722836335940585962898885673260317285073776042190881296436886684992611034425929343768804322469485130551386090478850594266852932605725234935885093346825839070330713292901537659779230638600067186230466488713082428298550739920697149057108817248867929910027089160467072569385214043060077574897608751544025814382258878416866017197968772859377507697327386736412946336506364041784961719867108447564243380793265202537044734225064228266953498022287679139799690835838615225480065746206313904076098198917066631803458244626160785682609620113406969527705506004893557403527868042823895160887901181619349443695656758135859031247760086203125381715344359169006918590364204744177868236113371203415594340407660427777778907738328650007363382034062385234823454600952733814110290281724752770685773955360319177524460519869550499040445878638922662331445059288422311067658851911086286483023405650981678215593387954808896740279150618128542096332672854643697751516135692270593054514734212056865453797922292305869465597779353449489325616051091204603071882081118186834363267648406834576217224992729207054096980177039871052471993080447294011026335985485606054844352254330276126901682315801413487775618567029250538245865322962156565241721267334224602509918730527303992519562661726600569991624191720130190528396059983043389926140200072605906746988621420475588137534309026103509501580993652162980883837439399944494009784808700940618726520043265669136039821916263127842543568615881453053730532781375827479535164181986092390376001510034492025105994404924090043445033671821701195343394413215131832696948927868614962952632436524297529325560943241727194760548662167959875524469897771606489096495709475659973178971065606683553536953371495917147385612763824377359103412043370971952657805415646835748383239985690258703820991167067456544964901348868032114332092266638701062714857737205930728208114120627615439352263427559940724030990699350657177230216860696620249686721594757213041506605790414430658760827665138122097753679469428104023038313850426142709707366346443385808276242123916923779743454383122324412239646863334375154735730009122883660101108385267463831825094061746470102543621813695982410296858869289399415647939512765586796275194330244185287968784724974268753310884548434303069465906891576665074208141707426133775452544128256144734786705308353099390122046596405426692984401154858422648101590189967985216154666956351215220213601549098507978924859364265497137703941344940220891123156324608064708840419813528118606401343571229568961928104693723125283630792761769739392272686792315128798634705750237297084991561922348080110084169243530578154334318718404628195514506585968567624930093641189444666542529418106166487208745279714054534472915525921921131623785176707034658418919485448461470414679756846650840897519015940296989204324281296951006684001906712799600977217408756202144168747410436538852670418554565893752598675041685198717890951958359182147610956339532682803919775473215285511134429315719646997500757932481342349090420563879919212577148005755297701574008323999243344406386313489307691737883218296361617304919169827466659998819886298716673145263737829200953120627264351056226145906207353582294371881702550554110768102744654441261493588455621099206831342831088589129880101968374288695223289894430441439384304244736046350410977737264428686328288138788346159056151348268040548779421972029110881989876497517448384416142877285632066003248679076792994998887778673459518676205289034875650729008552241042604220245642697299621164724771594163400940074303134340996197869535609789867624266769329039989649494607352239314700088757262150404333372903576887314136766675922117346351991351280687673009399547494526264578152856900616230723709779831657867400583832479036177275237644365003692382125272085531263130767874306177232378636334001026931463595811443605740305295030010908707788360428925296187392370863565528695348879758356179027049225644110094135882567691124917943846968755418403452126350113498096317929356813302526700250826079789648003415785502249584190453427360969935773972126651562336414795048386218035013217567677725879053655574671835500949055927603199593031770297237578540294493113737549361094954422414006498518379862865187883984287310875695316579773449379722296794985964540168157646666850174156321157362972522534393442350808922181672164281512235600071956053342858666219125402833476847689119644468938856694996706826706232610766466676603151853784256315144993484820926235860279157313008270298563078483090931392233558557866589778306785718067647064329177500917716278950778173062320048421756588369114189702724806938671510459894265403978286862527193150341430464596477378604076372146252330704512104985481047651104609307389866202770336493112163648337283115115488881878441115770199019698846323753678928449094532901716663604291254654006102969533930527284104850647786670816615401257136612446111523503667779789714852315376758087724645359454351304085591290965306350129933881697920853805918410925605317859229065388200327959933906256306428823496658656365277135607289687935973079987041603741606804269455385047719731809592784761668313089871914019956173447413376167695892821755213048397650842769149922625201818120346566951517362216441181585743336714177867706085725481517977219117313515159277407134162447045085883887618192983089236304744259403781772633375957714287935074181379544286331881755339000033899742292956416499178467777812447771036252110965853150327703719233398434923420717412440519167597839526276964596144983092662125965878007289474162947362723831305705194386368933615216067288150427352508983284336488809368453812240418984344920374365906034013285933567589178027620936534571880533956015022380443046389166537840111260743688058364711179472235450367302575083017626118759431561754016793488933318372648154190621545557803235259317405461737516547657840220660952165618510291369581236759600717583746296749635610274398678948838831701780911016956128538646488486857494198668625846876364029444019449824107431094798359175701044429041303063767737236898690387713284072274586705157257239292533721431204059368680580715667653014430403009109581701623433040327098425426071727077540176101479138675552406041565867755226074087324884907695195265470891465054718851110845326649406618716536004484584386310692600984165409588573555584154606085495688460271399280998707186106604907217061817338479037006473796779507972384598915260583542573477388940856948262977605996479786765914249926382196589633701059795263574323811758323928086981624287486090640068032052951856851324344894211190076497882861230874771123417737786162652113608754969188277699676082053406733039566788532280392381773791141964742433653192431834495656058484765527777597348894400156266531408893769115495567938666014066614816668565864721576360188970870730243967717003577466914732656187169566253296306206698368833860185569342945027233620398714840651788284958066101329250106054736720628352262832762182590342232460214318938632969790940019257386311291049138908506924840876920983507549037951462504857807118038968949131332767615510236495384327206063412190833392001173832497932259536224286779066969966862051692396220143264903562802843816798703262561315325776098619693287054310778150376201658905842068757041444044879359473369304984547143106124051762434148918930337749781208594185740409698316612834454947989799408828941421955562553763126878758095920670609700541418942536358059078697434743736032814289714722418349383689672291210369626358527872723279937161397121193358086235878194007598411310276703969440320681134023317141438469608056540161311282584869989783039408797734084422171525050669766610069557423224796624289644863062009321742504903673981872143987086581379890660307487905338681814911779490210162383195669067294576342311245285163454953200702342189080770278030441060311279458895970584081187785430293048310813414772723911883694731153273735881302889583958807395107186456221320133567596463694102024704962552102378035463993821799464198982477810984266968555159829192886772099286779924741237584903843533882482623988883740135751190354142287979132380091558503892484332973933403378301629417178499977187669164418351833566152217987913108115272100981648614081393854744552256679209781058928381677506673637871228244081222701845093093765767241427977046566165940029805259859246249058928944346222868142523950035824124629332965143068683151518109530004617413522620072752687463837951625310015006588642632998852630333746451343392957184052603882922186549156261940122847734489728916852726356367492229070115188568298300320398950912168430919188097748339526172311755886879512110225294289299104477209682214541376361596984525872351936729201332378719069882221019632449325569123191298310563928564887324830021242914784748168176630837750446803791217976450566562882882814717179174619214882395333690721229066948950927055339405353201819544046956420070512278171219784812483333862459574037610082688346210743285582403596374937919989237222445062286446863938814478716450104980184374213176999373542073296145212406523877882279845333524365523571000427454035332897395309483940093071387032333351532855863223024719876180516997177658789241300421185858213273489603419283355691563713593334387645643941360731759609878489509775372087866409783521541597457502077072558112159655498050691521415161818764363538795465377650123820855084614867308646629143047903790699658463463235054813886224849446006230903387307509331086909280561030563610986074892183044239596782135987570417263050227575855991421729451235520155954758001025792169959942773132096916273316505067564165691532082326311009951760751376441200417586858190724216425907759417309748008252978201496395125662388332023596948603975782957186977918068779432200102671904179539666656083916394493983032941439218833905705388958522245934382077894220506790753020951264532392448846640190330350136097046689960241377143505202951939014390494855387013220563392085548701686806425947387668181650691598458004382286478052065173804418848454182180142530127241601149954199243455362150121376627490691712984841283738321944909061749269900308527523010244065121250313708486963298170036647349107626235658205146740682332602976341268268111032669672111735789427202942465684751679888093142173046351500317306156623135925408158779449244012770675436114862244781296287217376959299058547111848299489746421539499999454601871450528466432775451269670212127145593959674652118772393343475138089697319472047398746451949632140768218634836568724962657745187156191233018573095764318130397003689624183765862155198319668256387891508996918722420345408816155775879552235836473377182820108307679074716517957768518865941770883053259577851387252374429351826854021249975724417402246076133079613101959412638973375318017609246143327563077902486105253506725531867629736650490971465438016428736005579906296399090288443729455050980336169156508335368138396699873177928010751683006791308912840308050163603261371170813782498308177237141347515362626152368503395774374156141829865761596899297216714132242106350590234902871852690809204554676111165279781521539211224409707059966599277338154069596369389124366250332298078501173392432626998994269786804710272731993368998255510155161571479836358071249850601488881337628373713823411243110076744427116931651722186073571639996489759730859234775461371553286213251111437605885903240005154963264554153556809452361107687275017565117381402092726162062201431923399269415401424746446709637342471594708297868096740859230110884219401199027866810511660959018280693693613292050498969887462996459957512766792830617195455931795862635445004494508594344592566465098303218774062941223787355837002005101576737609018017412513302744776573606689826350382122738096722064388697313565575290558875883915283627635683138690213222125403256988911288612825213730998021681080360499961010839989982611283876694077285374434483060455054675154620035248207249424244759788180690971367269504661737402611460247129314688106543277838208144695812991150253676521432030976847627310464326456122431002352611186258215035287367823621588122551191880512587220479416874407882568469921545896349494749438905734671174318795579056974061107443897136831928320656526277860364382537050217381782653127996203163850366063870803074987789029861148168105186438283701253365962826720610286482344150208969196184698394908591986859889144402315085067356784213820857876837842283309853250861503030807905574820765596945569452128258217738956919746430349667466041147900751035682418358592398888962267052363550178566496538580850932781894428583666085224294152538101078847952102137626995908571463659340952695844288349634469647568244402515586405294947725593886891690411740310648578605198785457664518172074782065620068308429862454117668775054002066897788219202799731722271727020569036395052257184573164878630989453254773969066124691776149385918852802387914364693777186538834732454828598438432331099211729467899183587697749014415186255190573526748900565150478159393945263741426129485122977705726270254060281978750854520335511250940324062050520326271510003520926106393034946029186227801424830093415917947975261938088200375107499691174034023721718560714669047099650257335351451472395257081832400752745619011024971207096793653718492114954805198849709101935026264755142559078876650131285826542160919080772614984138044687179027494598552520587654605629266495537136934054595109713261577842030833268307676176755833212359851588037188717064884577635755362990324391398269235483290555085338566644461946045188173392842485641894677918587677651649195992904355796424992534354838287700197625044206050949936661604233502205654388979156359812619699630209364287485321842375150623763434380126126672946347279764752079748083009270039363814409816646481042026397112828892850621867545899478573337553784671283906965160961007998581283974647842273982777249242714488576490765348663157516671757516002849811159477308233610095334910931285167345067779975764941092077819533702830218430806558025181664381238913281955507800898673072944031067716511127757068067395068547522698917457955949139600104954309780919193264029785594515662153033121196250581016953752867343291633698799039549199160939783481050418128409689057570698471307257545774007736816109824925112581611552934660450491271450696144765194701515572270383739775534112871100418062593049010407651368145443043440439286183862307180748710650066683613915311355485927667967300361836557608705469585326395216684693367260228381595882863304105931919391699792898979919338164367666576263911655958650649572041970960471539444541605895685946454819938555855765612655211977537082804791746124013817523637907300606240292618568422179939265913138134722625090557358046863217083311564993099163874257007463287100673937924535543650685820720086154496455441458050913285118477506008816542183351071656246864303665754155710498268722092317681200916671293112369976264989435607561689514431066660070426041263749663304690788175349233902906047769357024765194170761668718518750983717003541895880520227797130174142370003795378582328616522873750069745543396927056576560088075607872507968398447417595836800148238330875763879611514769121780810178644420330634175828608449640730259414740345025132077013551643176976006632452534053547534288542440544308815968689373723092582768959865687297274842209970327976845173565379699455964185034132879518727758575509927771731227657840505748500587483153712472958029745934111973060000280801924589176139375059058699469106779761686374870967991096699971781420685203540528006588768708388010316620387392442909392348569313888812061260241392374387714225189687112023796683763340202092813694127930657327432952600208716294385776507469369095917900185077113568864911112986775127522329994578170101654309381513008305080425079870755705867223074481727964946859604038997836040832809073643336320299986660194115799613826741106844195574512516794817907648979625913272930913372827329192698970505656077703321189708794008157527868739739153751597064033587610911729287426376847543257928271689326831062182112201886971206615911594718171231472652373790900085774668179587483117826512076555851518030900259633394026772915204946543055652689048309410457551007948970250774721462859756598687756631449758645608305767760380271818103323991811232152449375727420626303698094126870406961419522760396948640230509625711713076719901082530404411742735268723338934037226013811649670746785438093028046133585148842973765632180959753980128360118021969739694569926636075003088448863079255532705593875308283281886974608406116654402929405087582410849779484758397795400734749364912006400296881272425367979893636741654012243015163882852937872953285951869418451945179232913499525630030555819627475583458886791320123220605913410639497194153896903457698695273753268757283588450373205074688076047786281492189680790146101046217460509731471132405112459878633609114517663695641001371470062183677410733765329017181341648199729253639690663916273592767649141915425802761772075936208318834906488268739774012310382057815289805011023467233416756713985465823162601886739225148347979458276537232805135025324999655757989187303746331427506006530906434316565198344112957001427859979513446334357819762719171163529634512364945683801338028847856397128622056895786629389678949997758201800015432439994071013005190506717267235035380703639076263600012288325539145088243193507287412069728864649973001197034355125754797245719464106502868988375231658520120619570581175873515014581525310133400523572495155034787602584207384302926310919642634479999897150507483637167548554688049941516995678941747103027724266080108818483113499303144569469963203424170580103261308104326562305944851586109688326252826445952666828616297104268504728395130545463402409412150546790018377773890324483124700546105429562574080916315193491922978505312715374095961556035180209053151299148965690867509018634703700573273002006134748331113103815024581527852848418235211532286419326117139335449921169649765608085518217539736882519150429887264662862253437690975901419829700424135858125523017307946565157688319744008224050550646864164921706985651803221168829167938244712098537189829464351038280262938330224534880913649174297243279771348528946398587530592828804132024083870471840002962767806264163893010642999355903611557781492957863062142907495562390330462562348498448003795735157308580447911298354168127084467455432267257486739552221587583410595275327507343712538388371890820734499458017999164200523386654339082710871425765641018488033969916942419385994899282462306968172856051242444229912840961649230364085250858686031169749461843200246708062145624943684845415835603518326454398092391979436727554692663239941545324868869514274519770382874812493898219936147331706397029791586722745164695280059065893557050142709437097436528336274055099621736637449495217719737340075852296198491591415272371368158399775433703123463727589221924655661898539780432076449345546892719487711803304292532639331341710568574469041257352094991503853950125238591407489902070371056577558613996756874638208897292755932453500062198400381320345010276892446000787870705797447786823163694944275314698311831559126349177308826001576777081402789815055508101995028792220867554189358455630079525638527911691621214093988471529342894999531442597867103806532476055001535493657123904674816640909636170596961830550143870069529456286763402408479859979968828048415761160084312052606615469045654854053711168757823131220380674874722784774134821491412713719021353778769303894568482734808801239014114405759654638763114359593460427696445420159828760965859196080309055109098451874524859847758208692386449374631994007708974134012467141824868249394387939360023357695910717618042506684255790004586562672876938830230068378656360023298516613389882666306111913951553582327804545761078063200523660572368552590325519395389420856268590646649915387740036646197462493514550950576505324013182077442114592135820870113538933023156064275561044271947663093092308833172946360379369045623859128138877919761133555677233412660686484099707108301959476899148730491723005904492815319094731604982463047124156636929323057692879775735773785000242516542597157356357688135333247902844457365939275844037890128113304838592601472488284327031534675816810815300559500508567662498222549746308138206516704487472429771917577389347384726634472231410181031907443909589791544516963880661226584484499418244197251511035657828050892184150428202101730320728269577541750029198852814962108207668850846514961265467229681797165387352351756678088410050596143867627546102757780612597062597383590405790195858032437849492587264292058538630938074463837812265956502332132674443924255177125056927966244421923226799203867794987251237162558133631413323714468750379763777097395202137476445888599797746699285313482183391584420681959331399955065113720706964033119298306032455862141483780925791874353091635687576439429488683859604818599351303419465502554679750736570601923088469062666086168600205853527074834342045920546843060893095534546341002015220540200340552704755761336322980738203339236969738951740122842459972090844704038081285707320815633278191664537484718533876906988585139994595864969894967284457522436834569047720008113549588269533441197390357645306175833149920444926726952826622802203596896096236022454295375045960536613211539744296181660196750675379112553753886212355122781404616880433736887646198265051392541338228980889242217087724490327478867318651770729007423675182939138872995975937600694715635860185813582522661175175121568480088337356811236479510323869497415237399525776259813816703640702990722073413521816126285140573190205249161020887418884694229724274405386444545227526856081541406226225924036313919191676768630317007756088444233638250569825917536864580987196657624524294479172072517117418106775001613941406157353049841916399391898842211651722753757036377792592301733845191458362269274688638954383385499992727708180720774266063331056700456500746255773873119605513824840832469787745025114773174811392157209862176853624616849514045277985394039370865638142042223588488220742395047928891441537509070071800348106014405646203992748215552724373710902212039114954456094502098870549783013053085124373582040242001927434120199692300884464018223320468607677160418169861317138397631454773796319341435827552085938264413619778534539932338480200135701797396990568673849280960771590672910133084709292498195748011911934886780422537559607039534737406896492119094075699830030284738156741707932836334778890163401282488853402645276986139644090145549266517031546502280611455032076845707415876783873636845253608353119704389236685494420185629813507989019073821588544186870942357366010534835713849520750928521335077619150576623632351857015422034132144704972907179023638818557661947862511732481627680180904186795979667527283557139567096286855621392023630619195825024359733674523212780000203968180516667215062591938452852679580135603955790156258659549626992523710245880651570070851390896197780986956739374808719581744166891556765489697121926045720107320522863696942785896456878253368447836353282974262955056443982743167298979148938352975336822806542407447502643955298824395555460434910933224354038967093395818288324098010675918414071715959348294678093660602941586138333797823758038895767414713665880032400309717453307865398205415229543938080199059257810811285944890929731482251056105994156754299284961752102266637504205419533048160938867228033579284251373061377369454318743217334310443747106902170125927696463038687262925850045565394660675586793451205319233010074069840819308809884325327774658880805105811341893627369101019496407997250077079328164001885189962404773938755697820655634739601636495368270967442110917896481602223975021439377011004029213817934609557114804434869425519331997930785323593409061106735860323015337717999016474181619188695873750111846753006423110961547408275652684162254240111902315471788629585993089932465765821119430621296322856151155150433312716800964100894041004671642377052675604668074826446751447564545448328450341448708429256767895358777184335114431967263083306744180607732510236564119212109573763914613908609822237220680839027017685548929219606278370879179335959603071449996896913143679813304625164316421966652120162100720822037625409037003652471529068597950221847829967865352677794188619738449391733448930179959124409667578772314856207704950417421640080252459432512371478903860462710120750444592552584205409811286416010271289207007918990007408069897901786345982868926646967759762992022074178786247942724129412051418506366805806969099915178093283786086087011798325216668400337774766370160591020114941869622329878339063069908956999317286846504112886147420422111798261855578177838017217495234293731081089398032016151979749401628064063724103410596428992869226141498265611776749796513542070635348066461598362564191402136698666770579659375637117312735042779321855099545412571109468776451024865694966100497650588581803962762418928629880235023151526748550443043670897159930424210695835565963613753826371808071380794482351987089808453227031731210955083293820580295390343194005794603508034372121968963045211211974844432656915951343267571342010509813555642310861375602462784998667330084102916137382419031978625187433128098738058164080806704303097311161763627942873860781529341872706061028141909939691105970109909621130875649542908960886091512144588929313248221050037085491463234187275394616699769199639515354911812039217905735728366660876295943437574439959672054895170887383241448585953538650248911709092590568391774573588527114469321117452285412917927980436479023554933792918644155486429973985679775963863707723210920438910671803721739336533671941132837026211819123941309656537137433868282069018389084529466221594298032725870146002831922276140572232237169441185044663881937005631417217576098078608594208072499027751068994730647357031770405752118069880168711496763599693730902120203677555610404983230491626824280165010499242432136801720850089116469052919312829552906144062775606113167858389759126000285069920514999830372536750148904171822024884306295282125126803075671147624860659026948429131549742998305000166303165935110510665427518004343211646898553528300089782246106213002932520172988656444199903590039533236566577110840926162811159313152836039560834422905500109332921516540831781051162001897273517159924785840293601268064649312930781339443907538625926993519057823389393597169857648837769486581762371482343499159608173968938566224975818877998537148404124112657651520580530747865888019940312650723829384277491349056366388389106188522425093336797804362737883047148320557705007876586006239380151948234686596074720049969153785148776633910079513340095443142988892276659414135687462183287483835992968069108284941598881858447574548981592096061793939193609848218912713513189250296390665025287435667539458678884815994704032894317494031229138157399987237999224390525326871848394008342257010731167913483488860433664996014924062812494040820801430654923170120662510695213591768948221464938104979801021109147078771640893371444969332721003776133289190479317216358633730156368210859326181587395520616468120960369231198149331282617972317702014866315883296926514949501487384722964001595353428411588433957091131412719680719288479084709971528566787064615183341568774997626327951632939833302211847181359715961531128917315842854279483723488488720635960619482451971497947258311236952535680192954629888698169627250516924864413303033071441624465413461408479546712514005429836312199475058324240216424279514021315830079589737059044914233417375566652772115145140324523569870367525623432557438254394011480522792673692111117126917662159598600071437736541886584627137011143870711415552023447891974640156935701947033132182068010984539866327325602168896111402089770035816615309554277683336316684353159103991386127023343484168322582691280219007766391559185767604778750589274582082731833535327619418146706889146749382787985314793784448951677081846962465044004443199826204534030170811605208786701284187643038247546817468829612031226116141805063755859160021693050133200985627411085590622697439692789631238626288699885591339852422678037081029336764016405531746152350409798737108592362640280019407174211954681863713299812055656255580804159364551037114949730829137200759190574703218960780777003363947868281299496408079015255849837520416635534364096798696806259833181954211266669072355765753413565680282900768815536799000421042568799121511939105091700824011972339320355377697072638077825398560419335027365384512367506915290473178101344652889144306834052064612921337023141036958428768146298375613555266072209907629552051471100127898815848585352393992343612997102681182365257813642273984108867712250480489250136399336070853680416196678115722662226870565869561829709144508598471058788176958205269470314786091416411814944434262804262490064926167395922558423310710302523228057901599954418274065244580453019418474542592548827495030614836957723060166373047041216336889460970784220223504819642337824203321114633267005206892546520425456289401551320198483185999588639329126144677910670532466834054055781151277084459754285290716265073002732498692897703550421572717927975699058089770078769217437019338991103778525252780961526042455257406436752776684767245768920329576896779766586826898882682880580810342520864082613696472961818042442920612893885034696416844788686707174168966044149932015237088069484935416124173250550846260062701598254299057766119898128714931423453261640449151264409840144341701586289805612576262835459979128124167958031912946973628940174229982498405763735481694859529510269499356454767290858753195245652414972159751937376862231101295554433865334135242445726146248719956470221636189633385057749648682087966156736505329503812083225166532770218884745040086417730626936612886473667230329501138264645540556869510188324995632485780688336741424590497371012914787992401140343687817826292903488096778675810766289701724162020460777720370426141596064794503203000754358981548914175101156526626951605528212578821047030526853206971707606642266513147310364274766585719237112684886856679420527479466243522583822753306205499026154591641079731173253274899033732872808136362326646024002966028267603025995993331892064390882540203995593193390146007776910469488956689707482412066646258460631254342870877514754302845143278916208982140599459643447235475939837852561903603677289640232657727554044685744140286677856816140012170241023307791530983023772098681438543169303845041760334304403724285181245725416903360816004459516475749239188211069515744451444685247306543039056004167363161716980332060825195166526609718529040755164065561711222029855360507921164209167003909906033416126481485182396979629380504965794611589441533063582291825895122796737048406445702163383616138904735016276550648598007709730244403835900150064733112324605016190511080849852598982856374775449232345086261518332700592758476311492220820969397506500099133553474598138082273958374479461501544726622559790258457034907982806624244728430480309540666901750268241996330267224831431399092487107084770824048473653695363934961075903743681153278005896850912764569391921735136964246358477097168086436629493259798542090359504788287256964035964625963417795156775999358944912808107295012345668992122086177569581356999391009077584557845652166127390988131638687804964539855196723664817586444525217572876537420122085296636953642246076429671565165143927310200191504051185248299873762751337440299331052202503191783088228978297372390510165836678313341762209079493302676771875581208307939697532979318626734695165008024741855843893416504976343005949323908118745562923986259073182523761734117951788180490229338952672775315544005291383122117223722253221983956748911966559544662783960055800748235141261938550209257400110575457949612974371241622540042601513589493215080140980668268206049949358813500669602588641490689304389229745793314815764660033830508617812787960173986537347490256128045045998609285354599781622308376140713254418827451421675816864990941547136630004394947872227313567875333089606194509966213049022468248517250088337722463959776672437439468375949196124801963753931548576580065322652395286209430444587585424290079919487578295558626123894795282773814840610714926849408459577153379877832508677200642892735240699699620695349765107385218254474408793651596072147796951993374008822255840486374656312931224536539256156207770880838513221041833756181732140159424375565323180195004017010842646492528668799943196002151940677821437464312337506009790933528778981375125661896197630244120846818221801648681850686407823147895846360963645374545856961737759621290306691213505274809190742418988515465634665494416636207012170885219451393207046531777425944377714408548510155542021306265138179066251409118054220587442789565882430116400947174424000324121632555411723971362305911298504382931805931850316999390042765154984462061550958474865347160385723181397053444919234820647233206974873389122091976433505267593848474145561582884992766278861109368399292946720522475466803447594442709275113718832110957347757022279975955310621445395203826023249862258325707215786153918375480472913699528892629906074012568715480298416253292370767327462456743282232967613416457655108677350339574585225980936561157506290405631598374533910438192235172000025224413225134892715833311277944726001589885232379317841017867902280134140731961424487122341732463794912857984755499098291125287386955632004312885330000995015073636739137482868245390814561832779025875846702737037113326440787558681913574056497510984670028762403278723799757513938053721774304929015430771577359853732656844399034058037195839167219351440127635885725305196053195085729332358374708082264115351778398949812862901945719950195721419615226649912563960537490166016570110306510319826735027607869965662938915880706615873693382802636432474490927421837793629959241616611188847218365284286953350285079433988553870799800367167079499719563523353707625591409459854948933878813986214004445259197381388905835825700491670630026950065226084227417826476356263618698507742496297032688918926558374707232604652809970144197795640713058932340553635831406237133858874647342892837169522268468076326772996987225436099322946801551154027194064482272275169593749315131312201199777000190018482203003739035628109382557621522811223332017332939711837867234595552321907963954365327072556043676706334016922365472077394443396764483302190530437463366929097992706808555928708479379294033511491280748508309019214470242330755329433709977574497359282352940236701768136477287733826156205723618836664184813091209974305691393895549264550049335054065565675045591204259065579952704034686050863568688203708970772370380805513728211658057180726498174409341348027284257458119456039592169574185776354171968173209778215255195756147633589884043796410508539732490864823173342135039048134902117266413130239414871908803347983203824091530544123709076069809545486951609900075587308184491259767034948414219238622121826766900069832717574555559962051337965780986615342608276724745376010574005098137802599860218354365567694894929230040435676055728199716278016075660085549517006945309596374416218386002685679923327547988158722232019258081933451490693599774591876206741508299969807393075289325609292302200606476212338434083255582793073084257466483754769459404518477364975144169807878690360516414078791195751364797531407897406097625280492252430513651486214760442843055333215884908323389351142491706228613254693126963377000715586978663274469742586480699489825162603264977578545418465476255218098579756640309687163830768965281978087611958595819275563132657911944667375587560437743746859630299725392397991429746424189708454343262858408682333185882999438826648112448091738526269944278387614250985305796656669824787264003499528313001465710473094304424492865789472670103343606860766750662352230341844687121023498440230152689910167184847487089817466193792159455373373395552749517280020378120226758457846040037007901588660216430369588716124124364199658488231469785002467673456233673154602239743666980119377445296244077960922103767564850378696285189649046752930259373275653649013841929558254392707071913896284947089509818801254744475719075008644908181024586195414233144067483512510443445414386917838607021651850424199366373552230748605282042743900252618736682763822980052660192548256554898895544587548998932077743111632358661788604476474702893741008700481110995679173979016916108015779990406348781145753906178695291640564085058551220109059010759096729914068487872595356494461583034129980760104893060826306793723559084441463704835110658852606089139807122686136606969547424049085173012901058548825319813118376188207918945750548858748398484349178668910312178245759587412585749252586564826593127092850088736950088804754161528735436516386892670807205158700464724375008792747717333589014729893335196871311454877354121359799720577946570487542799108382182740468863653659470607980926858208696209471261999034472855001294321183374174437798110774905685973777281576762181128107330595420995250631578198314919736469433595258020081557579763772183981603226300277408109921520823088060817927266842004464636942543932022730390548107500641180937401868851552120735688785236954602945829168585039418947101734510636184337851249549713232511748737119558701647553229319722091202081026116039315903106565246072478782523877934594969848919516486103455910855483834314446134388518594238222331991182291679105840404251501527392084095310203970026396187466669220053424481959392475315897874882698216464215241970235426498584963243419249532108012649303971250863039194063868136671744189805014878126258879894330621632729822637944093081505704922355679479544294538439007975045950799899989127515714621636952151224482142034732780872299026406907962846117652341202438449472410973937917226459822334590600851154230570346127384404298911372975985818661573242538559028710437575381487422896388805641556917258301379303529135664360288946240090238635834651991163923654012185611996315505732176509303826463437196440868845212940883047348588985789064016720118775994932910064372162681928515659271023075748274981627109998897527110418538712729641147534976749763627090822411766684023390447004793715863453930883029278402309293713711322020199545213843198720412463438814635037235353361306288225106025799868290579268131345316947065001841530942444962126791563427306389503471253690324884589961821825498910851197887506280222948165485834281295923828352678477939035061782720802270771376655505457758481616241512905672588439194100370804551470912102929192822798763182294384472077962748486686784170477392395798625975887376704685596059553636401219343733671542925420668838368048362740936042901909690227127192275356613587278768409811627184301020688443841048971009432802287347521477969339718597509569606168023154555554464000820410297033176030565181808403648350312580546749326476892614747678037317751765693350592374572879826101471085464853154008669394480275597253046084950812176657309977106247325749023420875538735428036232868971659598814771066637044069773413524346892345191202497872962617139864510582893656114143398275834335520044371986030041436821692150891820813866062674469738937273956657883512092212944705601823863354044897034701290600525876738536793213011017983104639091280007164906329910809931521269333904577789535589482333593741763975337108093433213956694449118686873354641637713008137080018906137193845427502989482900878591382723577325538094599562444444591526140794285789734525393852754346383687927874189611696145247708907381098014477779191001925537842097645313205703453523269846848519397740109067212404135055428531210069855602020663122628400163492753986616359911036903339378575321518126465733009696553611483158022407048366283156457369831822527923738638136903782284154411432170619750712222595102294723014659007759598493599854064276562432788169192570440303789736222036803735190398774937668899997391482524338457773196339089909507156237206386891756193455009353762235045350111890509556921377531713539861832866977359460002333307459873271614907992684376954424124275729407788245457983816509255390816815880056350529484871959270393805049409987480140509813791064820724186141626774371642485594866279107655726638270742926554649520694081908317995433619837651655861700144146622482718781600454482944202531282420198575805057025127753776629393384047984023807717352772228163659203475145573264440827601071978811512483140712923381896542585736538097968248045951853198160237309533475515696431009098119833736341426193987203274965129126203417819706033050712538032646045799603318867310232111135357925117798489491824508870109894405111371487460137435289960635601708784754591965828006957955964039826440124457530812088626292709483920637490668637656246185594313925039272271214431795971207443130331775012822728532833565777516736235996173250732184486875703947425642560264521589499511228776920424151845758035936899266741486013433479424130189235817300535899825093760847902846449609852648184080984752349197404968951208350803990168009063943924913251033732161648627140898500544109760991142901703676086450859811003272921755926600970928682387089469200972749255734479205298191222440430607783975925473873202055924576177314822656664874537528082451581534621768425379431696555043359690365773481298413919493950014376896338679173293306859585878305600176862377695692170466291002960180478531196314227725657622263991938408094816835839604366170603815945169131813961757395825702377796630807046419579089053091589147890972894034892362807754570411481987396908613078027703198474975912973164145486057139708519238283783599699180635074770360586548116890024938952516601219903181309972241574706649865699569890607506903279035012757573227373374440432041822391381942716586177883004039105805786968210118307393467112100643543555967647635337334849494723018712474557325466782960839802030259121978100335695428884366269109488441165250493683436716460360350936197225062574564951020710477981213678887030843781302472296717009819485210448810493862274043920964001249711033361434591583255906064660555841147091674922017811110520047621899547543828122056049503288062103079506555085227261000400475780580168475477191423784087258246150860911450931700636195063335417172132084074350479743373014428316260931729033901569837854429367815305933911792185559661114085437851633871979353442551006732819395897440480809422940683164423551685051515831882710311140211407240050973281252520693541387189010816094943373701604706638154325528014120740981958957053332108865093417523803318854634236168843996887292291350680611127076438665435043434170756677062746784650413992629006252337194736635748164782964461898615164952808901923587875340264683690905413558916321300341317415339503839946682259724501470957141208455266449485955643368939029441297566187166620106580702592970109911984240181699310109690632595190401515057981547285573422831642102689838052242769296209624842959395091547066586056571165451234787297767107784108828666847416276033553652928425972061461712569430419177791283578408359433051945886556312279854179752226398207108772371109212455446571110087018045482909076404624361154905167995217925463918147548690823662138114598864697166771850516506628927809096994009897036507438187638258828595850458213747050272660776629743470205237040856019611158368921513419168296509459636015687764234574167022782564887382237507220498383938463479940521210526019223337805907485499701730584606118384528746650116242204507740425344440941290445357639985305663306614702079940336132640438725653369867032492451093549530509767934463777263726318741733403716587843799462525705729628682005861678256598715562834526695034445358521335579846534288167705254217895036161966538886963454369529064972466710751682496554335411980111899148166061645409516211702084383678827479938697768777122690665675110144057542625332571297974506535159536091605898514709144006347681702045524662677017500710632158240606211881632077934506757532461608266239396003776954090659059737998688919008685838943630395488277029635707200176954903429255988352214597790238090655985462413438977617641448962128244040642468311301976072465073788930912549993625288049031075605927510184502491071312178783671736123471623158193863711486070779495715527171774681605992992204880282701458311996030662994363684911159341573065206502592451273154290960986811398358219595441319323302742760834777270919667757344948402360393474447940409771590920118518675674717136443948700747504902597632987691266797184057266900548184417848369088552798161488834728688584923765144452233470768316981638341321085216215488983688603311315300501094661027106247662711408202088295955029369768467676162227068966728056387901535313474757836220531968701369103472854559666314301904742895267060067601981305788540051717839218700771881360376957852958370194661955429665089564612832066540395410432981186500534590793787639921615277752685214421038430980601854028445937344876624337279977454250669806403489904506817181952477511608138936508362876062660356678132738289982402224116471929255636623741488722881130076995143348427718014214870201704127370763200638318777957696047282996234315321852457760115437446541735738852395044863691399189888138282822757681931650576272180645097728150579204727180774710425046679640023354438270083205906224150015480357163930885712574841883701551889798135739523963935291526102266022904596917240594972782230301306192369417954886112041591378219215980536086931150328097586806510957857009638295141004566555744175901797326365920866553621654899540828150426083897624933671377347378970846556409615481906189903362872021060812192623180451178355171889617336325423681593067644036480784196111232682564001283769250011219802356241023400101161801190777781297703670869639197647669741778051502231428299788660871146884480177015984839412507127342123440250380058617890522273022648262501961915165099576434424814510779276340849530224320402354241439721270428845608809324544364280060697218920070218188198128151509922263387597434459378302298700453524344613562290799284916301376218414993089655635454538987375760456986550009240312767348797505413182797429403076157455955283293975492302508618104244107564321606205248000545920418906151905685659090445017664057900389959403814372855564165095832207345990524340755396489539798567116064069026934352049783698746145415401243524147066790225293220015492513832125235087311965092328112413405914233013615834228546776570305781940460575572853094062120866230079360020698558208545064228338077100318477531956459348570177947814035585898332736969923840055439418009064398224358258742412227673712121173974017429594511463523724967219865514403044149927066521588482429413601895993585749025213111282733648250532512546746540185734077004380725732805558524925504443256680955916826460825445535847211165723780406801763230581311500060250219513421207257566635763383728899507293210167203948487769934215536184542740791161720982129255767918890844046119608211988600785463190176024196199876025128734418986574799281360249149190277165528413942198100234650242455084941993747364532390969725392097256106577609476366561553552099253423929389663523874657656354249910579389448546586061146323624867439372938889615418195926363775393866642624664769672547761464261208438927413125906870380312378386297671993835148348793534110696108214162234061092695525995764068855901545705029964766923089300818299169225950814996335316742445705265280179822013947993451430445118334549288743013463449629987821610560168710702615030694386126796866430211178130571563654815500993897618986239827314051499509158318346377739126919510459542126220829209912542931802657731809571791768209444267792997083583771636568557333711036837414283810191056169848651390601495593596550342222500785754215971945790121787334224428938319761826258033691379211772442827915869919844384035629461239328957645184322432692346029226060702264820983216349244074482523470937401212985648335644662421862994064659219165426994004004575171084532717032642275907022381524522633108660451393570592804110526382421315517040196373404881956518698044243043587048208878222796113420703518776504590367605698709109719938890102681726701655599783253168163512981663021140399025498572899330245664905469328394857643397256910981187957410018873534383357397809378557545008376023921370002446694888052734974915124369100948619989447101714336938698792834239411439610496099569429731567196116375710724529446077719018124916876915911892343867314469724422161039352964620146849729466552713669399590684111338149686789694255686118976373204057687624365042259561374306106352792796699268280237225172790080489120192519197101742110856687087885494972919245509328755448724644320770410404970583053168522032858869370754547210190681446263646785258095414258196291698237392294787202898391613669462803227134597143741621728863077386466936153643296361212934457046059451601400259823165900125446612259375227882840082864161914962654153442977469210172364683595152879879023245345260938060146923821201366114364404909108726245220309425087865551730615985037203534133120170911489082139754550616740995098280364545313175243444193188806803571671526717301517797927140677856019409834198553232664490729842667524734577011982190784699271997623610076335139141748054005359552841561091240068237924199222812447169010967450486182560477393484017310203476459159573138231460057294265203457996620190925307013845803770639971624268260601492789613576205527301576845331573479036309102429729853166677525880238841975302501550240741319670938429270367136760477201462910591123563507929733039928284633792025516401247601494337588657274645386868976633962432905505257671597594924610820340551586462952241108804954611918249581067427625828389505501194192991081581234649397564030033469477900235464608517148697887680591555504096301670940773353337365243766943323810407849505059889784293968314023853219693622533688772892817698064543782656342186029228301768778093646967679287104460351024064679787581097508942589086800112319558927547589740618388148311526903303687858176375697671353943769452354776592495017345581765745206333271195317327296972533327969010779740727285271635746938156908165744783005185309084804537067396153591082390076205730128101827658336356908164680079650026448113811790501508229701366389459663722433353318743914870604102676501203856690487633479351384742103615622982336933781045733465394534632490943044369748853378912238188265693927915115066166906894166615799774790453569433608528749473747882809969491074559330025672873613836644225180245293929388318553442214460007926437982312082602023960179993216085443031423586172309779656910810005099438837684118529851092018463534548544403298084158494564635456262405129824258943344333245651615404853805137675770254880725043425991838084219194719955320657469340249084825353243976841295647688115661996018220580342842208801400935490660456293621599508613620170598304172386419275230258367908171272063614814642998609334151829081267639902605729001924355989338368682823679890579492755800890248457613567689416294001206161271545693383190919089919190097526203082340686794766575054062232902533165904223866707109384858493249601238350699752776717216611144231752452234000935459445192420603724741936453802657265749256339106155044052353303113549280351349488395936776832617910221988458084257185508061952429711851096892528234672460311061586590449189110869732715511942212823334631722513440597886571458074798424672549925186639291863674822176542647538375731525727062440686435621297775824635145389836003105726278295115684476586053807931537119288283807353984452544253572326560324386971416325533025752541200427890398351776209505216209778537091071250059191121624028569158937906036715274526488706624097232666154562931718479310018269482492158649601421931316503219690388379425839057967151259765378499076878741597263318208973769012786596483707718060977947970805210403165265836074404225164969735329849764054777148762044149214724554385849683134992264800800608415774087760895680259826818297507920194168049302205705914969210245470191886485038393293078333916828359397382537722191575673588711265761655938035360862561317828676553106946939103272218233399697628716801465977821589390710336036445498764915107240163901751864551496199579284118508300247776115461926735729104891600768002878223117163576182573459597107505867860619953872301523624267578411588544701536038126969484809686195060688921978054196167105207393618167603539551586781321378157724633740972864932243695205355137464255472087942889027934364408446989851373947092396716240389646967692054961725055855844292660817455652998554684542551869418440523350237096504582647980784696514954458696657591744986579263185171519157369464545235974854614370728740575967059762323949046110715058692081084320059234029039301006926796126050768362198253222834666490562137125721723662137248312286483176446029111334255074232505559206243680089575071346053929020326570656775935573747861186745073985452145522234074249980853399279279548704525499742874212555109812118334669295009882702347303831604572255419473258748086988460025373107274044103452835639751021726727981470125740978145750361762429584673026364049129070861053257189581207450996887635756991078133148448212259363136346380413192502249386404420890396223371279029919654187810935072118111465108355120044122024395491187541221796439201177209473758875831000575180984589987769559051594089904180084002526998832849174491983357087987957275138876009048312786517581044749688360433318179798077859940673065359830812765740061319586953424027204029579347542547577967956733012123555703011058754456850339448053904330992269016063141351606776389278088906082388227747778251496296699305015573828576691288946965108296422601164090420115538926150051550780716743073613670588094964912594862192348200855591317086005106134746523106104413879193486402114374649158142205842406916984053302958095331747341952734462366864039590784059031411691836807255342864518851379324614072269264107006407433244509536158370798922886302689402577700850144951137999028936218042599552621530834617398279701180750776791888961489227992157390064450717622505806758709014285779913788428136526346955706939814906888390869274745732480988111664547613583798690633125481259656479702614041831658549901479236001719717828306147707309811947139995676295837960415527860918058587607083464795690569693553358819383810397574106039529799827595496918340373470708111967484904852087351307397313601071832568346456604221695822443776879661911263465787390493077358817455801326355237919991716237389054239781000626971002821059569391274346024877167530288608886044873231031959789982526510093010186698437307811587059379693509911588338496150694103150208127512874152390728559317398291699827846452170970978702379858181939602648506755942809703686632986405531391346699502192384550354401392044372293601726320909582484371835301399500732356144130729183741266351649119421064327692749508077183094684638023054985261847161272351679235434464792183420916156048729043909566072448527584402084440960155928947145289231434451158689719001184837963921495055735739614649144404809547019304497516592050011876192304168422724382943277209358236207024936861747000955043923768343663408194139641287875727532236887079128828137575738594770375430531253411235026115465841920685358074434634349666484010550111840149317443324638457911416060590354788392572542342105183123364297211131320304035518191737364796013402445639774106511849342807736950184033009065452962150311593996218752471976873549741261065044829708599534920996680233271383808682060347752797075543941226974004640437226599711728527811867508795582579591272390675659425405549750766844874082904789261155508094643611653370585891712542223472392042290567819389030065199003218571696989865903390390888105821046957735778346214971153969377856814329106879084427521230612389868791105661656307876801552528963611586563728369837784317900970002192431898308502835679135904974919755362885464080404175431547956090091296784828603460246102083163308440505631718020327540967480272119246946296767746211013249381186122891869087109413218527129664007629811262064126670535255805230993714849329338020412529823368952950248284090502226141189047386040059838910814906625174209361258687768574187873252078229797332812360360383638592093019488095778941288275029650894623293725184828788067192343348688644869537689014220191028130686400408652029969192093678924457057162515994617593537360042659408609704689911544329297866284522083448809889659801956144684427285702863556449805010280092339850474906439706184603934973579734728959762033213289563747652711881899486050760451213310727368943869452565584165465255157811918567927021173250241010157980143293579304957282739946898186051117689342795124990618955316486098592007707224689216670081864026356831514343818028894058421328317340186257666556772741841862090025545304131497660457134657558582390910256483870632970921938996629776064377794244271829580986091434894883374914284213715694169074764091887299550093328453987561773794786382219708612119521120529987077091213040671663505806867952303215208539257853862358334676217065722668580873345004439337416186292826762675776475485504284247593391552569661133738080757139325560449105348152042402779052546999446003726676967480351804915620045960330864982355130825771066488848049929674858255481858433236787798493990149445045797837374291411890335490067090226973730616779230395441215548138794376058284987951062408824890738715699006778151326353680654966770151390244550978879265086841976788404122426530450720023820666187612906759145285471967100927882721239726573968649521255683022532697119384656479102410242343057252928916087836004203277665378651521233227092618058170782649523678153520514534649062760521467056340732218096059976133732716704287908728600582510283512747714234366922976481197325247738138906522152541187418470370516609688875032339511895236638500132436682124959459848262091440044902653966053206941100489588381180731378861381369888573779851424008545406298862051150134197421987314051094074439958611273938763337820536983683411594059857509022349861505348438909072090041452397698106761010004805837382864710115103763522300834685838022234538925716648238758911978761254013780516825203316573488762664808877322115390331483431375989550279778642560302071098147127013049034999305677704957256223874613634080140989460066991017507688092335368403736850841482124496545298427850179285862004580771469298625765782364239912135754497705142253975021378605151053433218211664479053648208389805627368522139617324548994467550751275312643589317391036599796243546727241836882046064315453552006321295715124002362821684534984094645259689408601958515637343735824790073422061969840520820327651411160909230150263437345872905902791045720393324613673540139887589837879800276887000422128599658100366223806562780097846409751052848771686427352370839205842910259783682468176189714279878271486173754434308788106764903408818675437309553598710814883449965410390376651837608057589804668911767019749288154826666112742771402561216377431502090974783020803507534186555463439516698460360443101614462390809689226581124788414781382331135475914270386794321777560045558101880673315216853158298809285238106834288805500056158246727362458756915603490536888112425554755360905500424771257253665604394452936366400632333195009091124285423829315508579229290147068179414587119003591287776615548478919912087422296789941946389128039287942623272844029207545449561667375026225982191746950897919971658864506938291539273586603039462477271355700332731651759949769336589563899185815457369098760789585215602366502257321453134978661458761528219606453749417787033311663003135674680086355245610910820381489755674223746789099175925289954096097842215591394344759476578194020388955925894967058110350930264496098397015952663451948023252863453536509665507101932567545411548017587530942666116185792027118763614052398629895816729024005105458599544019692110917719693894181061699997075193081083941239904028156265362705785732436684788840548719887027894627480648311175197411360572629700820720466128276376831276605018334881224414342155360962767957007395062612883837692232861987851953872906837996912936325735680861186643834850110241129761616232706922086024007716164300712018580268322307022390526419336358261554169598475599356130502041713805802266518148125285292910495458725765185579544970503934136288720873130120005076827297023645146393936527204407791809409624450640867530014124926927025807990709270716407524903255217496611689480631146703753459367261512382298802595546494189419490345647636768754194614956299331854669146539967279838312382580972411021505548649391258132171317592169943181335879366574861091197427932242991625801694249611549732345436114209941238151664003607064688997377901313129020830092911747725646824920913617035479680502325338674601041676218842445672255679874759546085699490275158694251207567270613738110470217857757663992949042539880326226859258896123054309901803963021093845418812547955330852783469128456211352694282636978164724426589214811057548089676978550865573459344887867534911557606215346989446784031539315869518132059796801754179262803529616492392531835651714428688330257593844395735818038206253102696579947463303225599138313371050489382159411105276810949537978993586169665222012450393866662592750082716721710276171930798900392666002591884278856795890115206185738341729231322600437736487846238748542891801733578639895073686804563250389549192540833181747472575945159782541169278939642298792771301594712200230134643751069011076014514420856250585126465729899468147465897327693700958307287523875780453739772872831998522848549760322105254852206894600083665877382174643213256077253028088103847529854602590049596105222431536007799092250944303776904884561378643125895649326765671475666264667407572852890355583581990137484043418024330464705925854786971350141263622036084661304434483364350359680609150397228228222146092460492676338881233047109262189017567662179123921856783913818693998073310615540702950353969214731705986045283496991491167736407104125208673674868907792400420450741096557684954753966928834122241941444097237060344547307096460083828244359694963270590314123069803140877329487216689033114707845414940409591700982328034922850842836158261021108084964220997167438782907869351551000909042079100462704108078221916463325036703770641808707946090953842277973505785268865073514830582435281744456929385659056857399143479910227144871081120552735040790193535092406384708124036482771716393406269110640278866362101368344491213404079792441602933509459723852842037072541257872935107053569663120185730026978938358538313214720064255215675205481679565929857318493136358526012370056597351583108821210246456912458186460061330028696556608029606115371987290105788634660412011447110825127809436643347594207174777928692981968506725678284520564982180286231980280109944206956785719078692029969975204198238681914465133934387386327344307239719822262998892750318076001477929441958563718472744125695478603423603270909049374124080235353513123409904118829535810638260358533637373349964283537843004984951187481118456722180905921859805454811506306081638606232521892696722799807753242584808329083893112668879818626393827488262055185116843908216848865289583604562584122948904528903869533001497137023321815121334983124658457658098936145117675579988471733174398200379706057243171701103397411873032961135335149663288442924819283383131365961281044575423764524634884158498663336658186886745419497727165451262503893092505220635202747688250151787088811658099922727325379580437837140025437717359350898805746699876286204821881779604144518025951220413288418275461327229203655703788109997802853563451441428044570735413657987411441456529085252378388762898852837150849571021017338214747872217127426112117454603543115237441601920021823381205608310706469422605512434631187224420035715716332464991407939864156877666381428387953364290756135114181318599756746929657857191852107569448085173898763089250348836407882667278506001407175518191392940376966491035600242076007051715079057124240790157370534841140576425590753543053703407832691033489427348045925077565941097478691044166266364477761960697429119163938804002099299432518196410911961467184418522722590534420878542377852355911726112495069225998972079154105262059964315805517376290573856736933787464092577689122841367677967943810836243312606828952053777211578156451666698175489989979654944274349625485995822290464190550451772330677429073360931753760758324225176200376661527787242543676937607204897140192171315327452615141366220970963454447615687583975831523610808360399155202569878028828621000638723326549767275891101301607405669531496085551455594815754455265539868121644762211859711214266295980271939908209257929494830332067483115506609916292088809869698599562290687739740923462007718317027399190192485822534388166090897138836556910279477461134618751259061349045644580916564176625537178759914300274517884118151502489689492946899932563538792891765369411804502320563682932840529069362002479832625914522310192291740584197971019763958529350472575442600032316887796073097061723317165306594160365788449897035167705888805287062344204941416916536014819918845254018101248911765467307897440640365821231081310081258331841414211577371178697247323153951768272185526093613621597390566660958305558544833745225975867208188931081764688403367093848239546028922389966323706750868789978210926999836118088421398660057688383853329628837716795861312018156956799459407239385886727256940793190022778760949641795128819478294812293949352494567800390002280529494109167051040874063531755283705796204748615936300225730782934596970007345762186662525691730682616838968033925559312060416134912906455490501423924501246615157905854951788672990674000688842387304894380201072703286672008300271324033750151562113753455772692121960713919846613263222052947732439959866519638977985726701416667289593070310068967337199724489956780798466448755815574605647153669605628650446201858638845860299330912915973489192969437219664746743331801244556376814399045679086321477310242827975559562642274611110216098145305094005523914556277709675573549196555780261225196223180458795949613773214047236005626400414106545550127754537322241389959091181006269333623210210441168396994741478166893992087093214616844519182064286638664788526932033198739745550702299007937078533416541254057184867475682528534129615303081681543187794013580162238588749946304230322357572941197312635087050265771632129752530115335708852100103880117460429165131945235789463951470210558165977156444460087548212848313742544563845486562253944933075759743610173215119803164413566732235650705637602188599728281592562590301466965891849982845699514594564793796100830378198562252832584907994912680234568309265757601011263270083110267736444665481460517899870715948057060587638325557544586850130109899286690934121038717498890569081610293664387096701577476114962429677627474279019605098533005923794702209349790112124803110547718438441633167683332523736049958729789060607187913938019093035211812242050236637695968909357199173293936419132023401478218632371701907764084640152808653625288195909996826805150105390575624837255375362278457604876906268410744095434893487122062061806440307215495171203840472571905492356995879853235725069832557515545146948676033599653167415382807134772486770030201496838949662657522489075833471603516106801058614621163045876905381123766828253224951282311377814721262884489994940085209283866481683967760135207757097028363832647836403392891938575846233218076494360312401927753329139770509088089332319833920845155002704866249943193082584040786335013866278804746985485222371234670863862758693571002177312832234661714492723701712733486368395108542981869470909887033827383549824172720235438696054212625420705054028911271268894729482719615016053377041624610206406323943401823823457524250741199598978429997007460402554799020193257408693634281653566915354948042501546559785742065486536378930673381408500274160959109122275265020865824656981484953008403159425892331727016895182720815443135481111120400181040670122803168064865054487481329782521517252636164312834115138413712945372047928623421209390486183743265984910256727745639611205990192144257433871636736493619366305634875532220013842507054635556948247930578483039975163486931383796214636261691074318052358384291361554167667214278837376958218571907427731913028724016862651506333113649640356040141907941802512172489208223904887794878323515014714686268781810066478283706118316901685755214295535600554734435016228966189439736633916015412967221038907117730239534770288670109641096087674006081305237798919514407976247694681704836833794429916752290350794112284239970876340447525941807223664490465636937113075427818946129275588859141117176299364206586665081617007703172981537636089014577022203487119104460514727340935648568239258519005939332140336895379417244084537557052651916265632839317157444611617892306653451048561879361945237170353694400684370328384650904773180234975535152034641936538572583093194044458923171735763465924586725030951871531603089708335977214078811844208546842840125341868053978816588710544856367991821462531875782429689166118025762010226958511115404277047998444478417889102497454737942885000735123358396660588139389903561909202522523140162390128311596216451604577646957521992115895128011518836651025957959364412346317324443425276380802954876199997125972085876731439214341684799999653770842237662030198793722509492745583908930299868819016574356773836051879262062324727597007970442392912282387051251417508340348903945110613264577611145453234375691961388576460457080058482101121184035560453726866287743249715724873286445721435297774533491305005180504881226955511832719212168507241429487433933680144114275292870330607557579409918855681921522621093468240176796872027832731559231715484688987808075856202380804295959998349090590347360690860218465378943284828799538939532204028300100826153118858782631451219570082482814012260522755903334273919980297908067318365428911545959942698717744705629116590174943006239496305108343527374464524612857348196240505002152845052597124424538290650661827368786161157118457014189440720074334287450603914611160767114185171388680458974536196593365522480867221519491462100118824455674574682058360920224342813080387369439179315899660396869104855054864659987985924475083690609440133841023688428237615281885498915709260753000002036539608996691098843825660080848966216222066813419417792487518235542609887487274986835711247486252370845661232264809010411322653280423365386132284291123867294381811571295237280372812524723749788161757637513501382970393715404726965261493669594183795679883219486901072569143631719638220843486730360530687456482986568045903923467846067838291839131723087479152417033936021200683498320910814253119204852252039080147393261752198885304643442542887631970851220105815205822014048230269801409956400504550004884439104782487360985824556895277580569467647273895053697766509111159339200482138218050771116959895722153706547291575961570309020648318888688024776445102185088608221138359904280532940171029008538774779343919297510628720347473052309418227779078545109151272533116343205904524350985660927370580895879938408808282579146772497165326006541875433563450973021414399401728348205915167147361476376684273468790016145617008416674245136690180188009848829399981539500322118612466387144041218618345669886757909667305972510308316149928521421331007440912330272994707337714968382011137795789641349789482081683181488667916509736238130872602838271829009117930297937388558907478233057038089457736057056515805416151137482062203734565693078651997609043142695284216221275758964393966737343347697242022962178627952904032423608719149142052456495884445685134820199357293217497178313963060939708537185338224273280996921297633873479209719727691952255913401144351507185452546895373509998134281260035866101497806629234880318940836419284062791386278068894408360701421439835028211586929698738011452111689756575278979815794993584579279832575997900175880299420408843519067597202383114883902284954765718832544108258351572349506009243436657615534371470727253054258718403894717128221310485480072709361607332033966521454164177283228536420732701424316081930588949945519945850527674575128676725240116441332730006656629206448631270296201708618429479046735056390042864853554756669429050395048442469509033192128236879434937746440142536072884246562133377016460618054500031233697021723013943498002247569462385471984160942288318732756756761354159697209163266832207224123308069977401841961360553104685742192457225490256773887293481177987398564946732720005472054154291525015155271797596220019615159427038079784988343220008573759379431348052962521707956002188016931894863186669367740102235233812549921173659940441504688118236690326018407623618351129933052000732095065197974561341997077661781581070460524433445468510753295336383153228299095788227467199866726982200281266049750735033209931075261115967273992722453424600558840990950365451623176089006041402850964275985345374229075707726942903774403539026368107550095385185524014888067753145797856614063051810454602899109805901273356204016592819568848248891134105808106253147853222083792548797391158263390982161380390304804251754272713694034565883244715601281011747215048950821810664906694252661308132960425767610169264970264062366147454876957298494698132621809017575935774394346640890952942987844740616876563013373736976749667552205046752943723190242101579348519642767537691054112490766211127760086367128951408513337274151840144210685942764700027809982659975609341373581935727500106309411530581195153506643307437175623429994399375215341923944032999746394515241132532866762317310808751222038799297742431164445132145187784106304764023614075997826336914468324386493660762984341090771671067794450133285727220231404893417783819537873818258785364606619614794050658689763463279082980549173726776340167430876489971218833585532149463229909786733579127732273914242300486305157188398053265004702166364177329523568382959133252390914751737850218750687626834453837760961286453872116760395563611888583192579525470288764071355029682744581801615541659821983366835743925652498877523690049269805618097336245336126727212853973561255477537684824804027823776425922295724408366852430818064264794940437213275442178237952408569026488480628740610676042866882401096366638737514759377780031795137978437144671102673166422220195541580049966342375088805146418937857142884188782924263826285619925970553427581764298934767378254273761823482068967605774277017668627083746586003892816459527275617156379904927692760380622165273274921873693465438634580618832198247941897380091090160409842538101796643171202651710734144454103776382013363715355393148521535447896685962104253445430271779162043012224740205192556856334147984502146299271909247718738832607140731187055435509106397786562357649463846062875421283480299005669636945122893127880436964441994913047993107522754507083267492933734678674620933260087240514483831377299242952935449073403270641525890738820915674826053900201159108712236127749787993697207151854472614694327392759142002454044321665441530731945224156573508880673811398571739826174112190723160538804009374072494610800534665798259896946213867233091535543066411990859604479201142983417819810454063168701496794141679661364673911481897591991712624943063703534971600014225662336571088630703661070829379977875616687775885805687091536131233264613692683599788384774005149258788134211255296188963906949813029656530002688178113773626711927520939813747047812335193423201605519186935306991748134136391110284645527219774268201923426348504305554902142376171536840227889131587588182566415503803680641530881326709836382238322906410353450673639000772920578915459143412121158648739716821823137471823026134840383672420706036473041600751718088151302766383538735722577955678773584153828399036695554065721659161239727577400048580669978731335623815393080897827894415752224356855215122822148847122581876342550965520355570727711470990118421987538996824823868140594448915315575490679241771309471511532575447397581172712593378908725047311791799154319091773470753640209668037988712151856562851026060494742755530370305316677301835349603690200390116698204364727628319034798414637464217220638391056227789838986654076069668057363559794999105249235190217385248443009363615056358985902461698203455265984877532055091150596130109190312482235313715839348609628414075739542421444064842522743487875225067608626983633172747320722356297457630398271892534284659555149666122690209162774529166886782189531302709891223879038659166012798376800979165230857185031614634003639690524890925783280087643182028633170324071872589113117732077380002565910230868072920651261957524426814058104601681567706987236917376248861209310619587599788372246673056963355009356416472256830828473654700276108116017002223783926807863171216220846333476689472727517889367617326508500615161385880310826912140657766240509625916049390139012235396668784407474567840582658761683981821535468531836411857869040759111712238358144363677451202843657945891924577702864053983080031566703466410011572484936172039068409476914394546365869370705014185726668458729356921177951978166583114719730927981926412506857450666616103060345389126046593552910840292668387219796884306818739195791375994101614316833759851135636846046319313843389477165833285180725984699158763367667884845715603300359555164104176360073624589890859750218211756038035808069737373517939262708108629241616352238234438238003542612836317454957447940248153994231110211989125210559778966092102590241431872730148789927625482585612119411302979431296635340613550745831870051957129203944178068575417873634188950670257364346479256413685587830610822971708817551616833981698193771124956352256511543412644621919101145420012078768119765705516615961594699062488501625951529449940250274324207285366908662213265508211660529945866240227796556347940511607293547065852641519380183568518454755757492608822445286773054677285526194845869114025870759222948565377940586819996163738558828945628138992890573013779069617195529300085258921499215792310208572968575375387398389381419003701042030046815488737771246396483624945329929053142263959218566656108118749743478198206564896022078618383175402835050599888539785529579446040931425172431030628919569715634026612812676451567188757763670200445206748594963570472730994091627469997169740171975761490288186657314694042621348176776725082966353279142313860737192448743617825274042141005000900951150977284573401269187999473320057769763867722583067815386345776179907516625439567749866315503179937019967944014640498366044336765036390407987341542818980423882779059237829084028667605001360059557739034078944563112745899663791529433580415902437840493447744142607097791067795710719027969682102595687892973460665137184316081763577093365963878320651646117421197684299235446556747768637958093977671840812523048574762828632519562809357681460536381076395091127774382763451795449771484276950715911661095623448664215598187363188816955988345995228841561853089123986144360009760285372622319842506623186360766585618808744515816750914026238357447916697465445896377968294837193726498631362300825504062036028250261678124300318432901383379251803778538998367949516861750760358710361466275094717722486951391068526821963837606508916712319813512731371858582465890310063403667246253857355044043888597740686496493983372604434343416828556236194494958083682344756292740482303174396983229197733817035912802642479841864556175852049549666190555683404953484417937151399297443728918568036801861126048259760799821002332732769611959220955782624044086952803313660832826326855003773589308140446023495607637345627556203517194379688646864810053066105866362927253835658600494288858652305313923781883714023660022002779349474592120372028276544755887544752559534183320692652978442955339600006387630857623074119178628810379622732138172867631764757669616853414128285791757902267505604307741957767156554899560368121686339948784618399702992033490629059887732946396897339650480875469963772670182385384106664112219772396632505018437712163496158830812676496760726045242861909529323080286054136764254568367470148838956005981030941304876932277860495044449586486637635751263728572944312659451788429882760587971100669630452179748801263846461310128785287371824253298149271217502201359698625471929899832083501321178268691056596924156053530614129047916927873273395939936366080651085897491664349308269972762109625530143939674524148521435222190910481999338706163952874232234190591317697393382152499039352063029888244755524981196380925468248862681225825011260109459487834989994790369183807814962183570943801727414849263779881336432898541455048001322649038723430583438329012628570286927519449957514724163231217623194337873944881969192156053940302815048473557210607686437486576160054879321859784781392776933654182752398010014952566703409303759341215001945943276796812119629855257739987365566517782217065270128093868897842001984141755347211756650576877476534822152945985085813052481364902145587693481883482823970144023133419979374303938341439033150063414676689733947474644113023056101052531022411606927418777782746464217443764490233979856197829598021937548889249161021510154038936096543866393332421533427359484354942024797690678107965655843667718228026015758428168105895398503198966204102792171654791624251362537111243526030764072749454136531389709950912136544043722041941375789053746290636345126894277995941541758537314324467712615110537652698705693626305357121543207902428263604104051462760520191261030009954329605353385888519762372855556073432415321992399939306992493574365035861994567112225980172704204052338946672487446813745228183371479485915738451968920740036869589865875762665228055076258733934337052558163517755668885048441208300875472027090586680384544704042535370423998538498431450459535411753059014279069987911085306363125306545077874221204117373442513500936856638833432655006072611765325901446741301860824509541132834196467245219289799429660585743956689246149711923135919871649054012573283729940090307094554288472435567017420906767456491171891427299979742955605338561375219627676037830370512036852869256597941466634909236121779540946765580948379224897679819401987016836681085883468623369841186899667065259048995184535677621466077852558545519860711467667026735094845148113788373741124634638896347838035720145838496702002458146096377019078614410362754243395467407875893317083997506591981186410224468445462620676621255424765904791371266324118794492547298094587148196074258169355815165569124333031110159484323006102956060681743162792308696038297827840557539296858997656415173203236763812615239493621925501852793522692630833182132219866663012214337578625175159683743079421414159074274088596062658386351337487048307657536579414957454535374168547079834745762921450612244824767192514179367503929059109564049253802299290603384536122656662984970791928446189994875331158799344171892468706581924376150363739330732355678711262679061376660627679044852375745881607925619480603212319481025553587836232638022208159846788546603295260071816364807450997526609729786478138763924399025136569918383567260731005175530095554646365572912298647514908263382711756116068914722544316808510054912205168659890534918152885737187964424511538495455110641339589227521327604369983902038659547104949663815380353589066318952691680324969053790469597727414463882964232699595945599906203085156509050094428887139123472063821716712647299587123686742043308297358492997624224024125214589945540913609883260045855283872479234615318059759212121966048244729532414550634359035944068383177152953280399911141194928526546200848613685707745785966355078600152200124551792665705557033675455298968585059605555643211263267555924707428202826112699473449303625889949284882349508675127087465487306175629480212086310398990172119337207233950006321131588239748266902993883465148239463912166368597170185583645522908342681805855371328425978675400037905392540087413092187196816953346990535692415727947989855514392229882712774001884396964154738957671232017594088173688751098075518712833231010101231591499242192735804264516586658889195318662984439957518664534532625127167591970136145551532854628670614602993132752762844729998877407492377351282577181944352317101150513435264716771577588048438572332713459699298405054390275313975052356876303853147880203287866132098990928813895791306327309639380789343638209767136465179099270958638782195148327351520342587953206419384621355549849597870499117726695145904148128588913059130566988106379487501342855473142505722859204789500292613740228463834242724708690908354159514764757792085560338026524957367650556672616097750472084006239981258425162999596460155593604432954921155797502457006242775771435649342850661887746633660625966891780877799495452022487093969973798243905058988936320602461816068219771373954492416238147626345622525649992364000619386325340002416714169075881329069366987498261430362677374603324858516301942083490808653224783648448115429537279732970288484079125510546116411873357583074887179273464631565202124468100443485298676567832627556979230666921227790203714439694127436805693206909399977394551591918420650363530076055297962951133305695837741142342080709222867706129149769667535012791628480930540325713184998219198197163178879823344216613981751503331995271770071211708972459086667882234041046112638470823685361212976830349258594813053454192777275627794007400639127273346977606504784844791442338831591201340822252136870609670093322772135549232016086644790527866208736991693629567798508364406178891457621058768461445167870512472792490235535909548762369709868507254133126489083253037958722932895386623517908344351302975180216617306649483932741244028985534281799670356660703296257615383852032828541792515553117831063594346948748587027609684524118663125847345022701212933706284918647491252206154093346548832374192295870270330479728007140165534460435397016658892179279789419787622571778622843748596062189903894734580589796685583302499404721302004289857515963044860092860060341355888682675853634660889952616566931421521568318187387294382858172773609584563150101122820701759449394283914294226675008403731407338704798488399133456116411898339786455316974371110324564101389881351049343917031557895645500741559492791991590263895458141694028566244643336774213105968514104724929962490220685651264115199155991134091038883721088616217079867593675209920456122296544747473181664526937762641173242913718163493891308258127428274104402373629560965970054922125639480334282219459757361491994223052499854207218431865742687064287562278029293909782074439244014348148875429355357666484450194124097548448349951236446208570106473633128441051946990038804953878010711486618226603171760152040240491611965902055597202597232883514331037390644964221199819569485927115454550855358403132809223364873222958795027483462055577237778180365119400514167234103823454808354147198474333177035676864122491637277211923191131264316668549330495266062351562156109102222404483040758869141586848483196752685804041835557875052906074689012761612401353733793527079541258791594387022491401586621004785838848341309230794411415993338758049121793822611703274964229420602155456285826790453397602840664605918520541127266956309464148444130990922056480677669392102099155188684021300819661734564305188626503367415341305728381234187638898439275519878017524107979384962728822612950574392612316172431314470185530546837866994448357573638803480756650282103221593008355216694701147860080717831371483667589084761611626623494492750354753342419024193265437271438597196657132853459655108084736789593850280106536252544497908437664163992856360873490922196535117498955125125249692723220626507237937381174341490603234544935087503968974361067041203067270671326820657031241831375658531228521073416690153531907124272959542785292188960333717560569691950399240017667234008805335332337014682379164313533289354939400912679086069730093893838197067112662717518327825780133235136328878693336649853570305918788276903610012368681408997236697328570595971387554709394826814554542037405669022720166588580578017639117494662684922288528359121154495447780251233515228744781664348688360426458640428924682675768449801603200270874737161136657353039311379777385632813910994803294596013088692780098641054522909970809014036484948073916618094444566671312204841044280773228130758917797935431120570062395142975567938430596908892689600386658521041290866978754266133155571564225753139747110959218465439403065527685136574764480437395475724033443511014331418342627886177142960482567040873868825690545611977276302837016743290466061629762044942700065670364211072751535467602216840553607489551998970653818823784093014682523414022291747246541811177359983746198097246809802531460811479975745334871296822137130585754451084991431550285326283536071372996159476540836073379646818982588743280905032154577151787041926782017296103875530105457621168665800129221848305538084763797137541135646077565260667302641927041428603967899670022482268835872450640331357368428485125223806390179961667421122451777338267593216255659022047089451352878796262863251730724595728853928942284976553924708841684309098091085168057843700266877939691342359491187224259248911162679776790852527199083210993037356582108654193652472841809821319745328264342163167168482176421755678601005565772213359946684448672994283945915353714205205967029057444131571505293032566935923487428285605471232029379998109693314942032552720729195822254714826095566473909430828958521698781974537302583949781750567589981938032939022631115552716900488572264605402921021349133433896391525762098330987527959364126928624551472261499277161906538707908469474028968678076806208638670251100066282719219121926167496117543176441716740576296226940853520139162038716713917861788802691154617990844607060705163997372553428950897451533228801731987071095375451240157854257398459933635842887535604782297592115275255772536844984339075896019857051323117313557292498523655049221745962886243982188037979244005939497302321196226349965207810689757765474665238612761229972917931735880578911089190417190990243120031785358021004091882460599548240044806347876093618414485294320279081793783394627054973104738258236036296897002486989182136658024162905289087993681866043523803657615631672378303242512853445184922555598696792444386590967817064636274200694866710255100918000159960393628498888830754325478090891986242769144412041455882827257974413406282527040872689717220048033546869789841038151176272415581075185804464554687560321518863684650051252090008875790552398102596513344349141482399863835647374097803582369305585939741863826413814797492766037554406096650268050475780974666918130473813778494797416468746224032140005777593724760413302996320448991501692892921951888847650538006351152031420573342778545513619385825209540510277141962108662442063225583901995546601757177990762877232349317394259757964248820220462994034090647408140528226703448905534084587402885764838342276152494119846862524799151353647152092096824471497132799840426053286607554074910228683024527057431708908220837783358711373263088396820642256764128078732023456018833554601345450271284780219875131275870601777481415904041870209321383139431075613697100044873004476996920245709602419170117259583224122249419630724787142234747635649224532343527609944847727127326613653757433870810754360582351571784382193068914338585040536561422405048002200850064667589477480273181099683908219521831081451828629161572427664219586059181369619520345436205239484101323075240945048312331168974482499505182269857576270105196563839359636291553738926534834804375290136112146802570100764285867598981879766868615441243464443686411597008081401556180610589717758680592015375124192973541684910061492384492751355839117221300227379448264705186729157331860733571023043955822663993844963683546601438923237255953726844088853743512855294862794132858505893956387472087268087776873775227911805459523285610476643995789633091268342507266677020610363252912776056044103080203970629505354425586424420144477700823100540853582461218181991100676902016843837368018493077573940054287814089968298926534164958804771325747146124423379037755717502398659226970852181615088108763440728439253939144688694492541811841382148997890215476653379890764543001263711065802397301285526127581410361219192811008630942028778340720409564652501831219046012736382284428789067616042301915351500315398643070227481081619953293445544286539274519128737297983423288504052460840396621746764487064700071846278890847832668402362947197263712938996295202790365323566667752982988465446474700661099166461738606848671565022689566070650324510372308982834618259617003268314952179033109832515189628408227037519304579603948276714207544002077502755138625008737578315370977608830502193361336019049700882718070666573764584708919114402720803997907557098086977908259928276972417486438457473848416731578769172460331587922411093271982858308317662148843873993094135460714030294450771945530957332576845029077365825352605747910235970241429233505056682752807566215333274155768374383086224844921835711259037151796135640703744960619773278414556221382916032781281038483881994275290710517030058294744004308568726649812106236916218024361600144634277552697591934457275963466840658536385678113481927514170685572849013000410217567116393013638467103354177253974945592328781025217434135210410882556628846125608736765802911949898442741531105740335984686492146372635118332528028212513169078084408974235344543195806009769520985617101803298106416714884622655305176491341160257648140949231613588412675518910738235917910420940400023432519505092627609968892867106272810390432142987449207384752649135100811264735037735967478172888678758834462566838941628069538425391962738959090664895835612960044560260100605980920131276836474828891027880093625015186482671017793480130685744020377552750173154242713303453949567747131451975588862178702919119858813774269024259769925048512130169826170882160348698787615605584260797451731339332851142530567327897517719991332358274261188180631224065769990790545860860430383400619011330181541243763608493428331028655224910089011921577315540168215141372694607280596638510117964630790853294155333294924068150938397562010480936328225295914697684102886812505450354452239698987162074775932709314340138723104447980786600221184180937399704286442892182795704652778861140393598259348612426052457742700627653295826243130230297910289111452838316945241499088195356489433509590291104702092839469243208566281931032073592320717071847435104544031490301376475935792636258642017484547956201893447588693755721074415331808890783979898310378817561138557168394966682360972589268135028769089730268514944619077520299261290906764858551613601188320687584801486975746251139445121731490648350896345183384392126949273482797234333034297297222119623436678612629490057084736068015770248370423436539082561368974422797419733380369515173688576480144918988231665921454791659630051463701634461587711397179670913027553368647528124987700293749034768558962749500585582011051292724482051371628278823918154695689588976971124224439070233972326298809771613632797138723783736564228161976142253515695968384457574641874757232131388215468400558268742890382671604635106201618878139991619063567599660928446597916882360868207697190482494172205212700627341837163701616697438387686613315442560677341228330741126772855089210290766734384218813002549061533043690292600003692585897720955953368938392050312411202935404692565402436225935991328402038931176051435300089363171220544537089614177594504092793811288397664624515401378785200131687497951716251961836859166307492286220522784566407714726685137521764261485322016807746790664242151061366645940668385334251909061213121892108418228966820794749108163109637383207473347470217986620307286170237834959367292487454111691867799012206148575460185202587734458770624467666637884861666925061450739000321512533043235899369128197159227902109583502097344729150987544337540632106192770246722483871730011052957247879260158869256073039771968975608443949326503096571127467538642485507910129712027898050960617620890984460566838202430610424363327343328932405100208260956172750285926693888044845736253727441518157186436278527457719044535109536888387321504378611919601071526953264056661315789803680767706197984202246062252411755595026365016478013141840636554664595114353590132846776595469817138875793156940628769934588308681294636834723516288120989508025647968863680528489422205486508225088476387353744517637159416179396582366157722374039462434470150072472459897896769316315880774560537441869792821345965043978062019912775784183212584907115449210735710968824133397283069395956905476789666049075371543084638533516548499115528070786365625526143998229287318460708378006455894366087568393202075790661805907642821039702759394275958021406082510643624769525493915730310425135425135136206210198477874220850254016763729597931831850049529297212320377689793263307558355365445974606702568472523049531249301551322698365785101398720010630361663916676518889457109168897958419401174876672285957945135707695194468355981127867134984047143120488901491287279321426954979314571619769754702425105259698321946583447525813514665772414250463357015361939145720476559351886770082576463559013599169051971412169567032934245962838897861588267125633354703795448293837860138813529415924694094335803927210474355735123160744971598220904002659711571938708902870375249980842577537203507175324248911304936870876809981007380181601145540615500746894033153114052379641827931201257891204295462334780884890519990989988818822185747461909297580625977217665060888492998571833880184931517739143502168593080395805578197640652009473787440420621623558539005019461189025660588052636920893088568367323982858198163428134212898265674035479026587237188816193805083434134890623918553467284597663040877198187863685058639044060717805572157784977356875452411875736054741055569479284535954949357080370572531769730157255846074029843995209513610297429660772178569349304618357664396537260570023140889625899416542829724490270098617026706246049568276302822458308087043148582267546848555722050206588590425624488174172430260271022398590675146904770329742815883674519192412205025854696632842149717794233615281315514357900383322405500393736125787338263440252506199063009752948140585581105658083278149755407228205482381715959214730660957696084843059598636831996252178838974740467286565976026407268404443559984291211018749641042406888476674895084729195097951967460955669713979886397694581948759810386571016948737823084033211526612284307936816049083494371306206091347065348220859353460236589852781290167928602472007939461690292420368317417041198109102674496523899681431469348987796729980457002363367208065510153603539735737969854890846910685737378819005364653065081738319762628232991688824035263970609816070529100948784375167764971521383548875634216708238701722372196790285508971339951070471733973787097696112293674183945559580577734221077104176736795550292155147512230394774682474325106824137002928226260979611897573226703148014032130037457482340521049677565530283677089179321244477291367019091571211680418197528141415987314724273151928282573138167264092484382009390866839031206555271305835416249408656965390259371709269428728766191137128579123610081040842761333531306028010601424656800270333862115600904619818479268546918123106217723423208311546689064991222904184882461789988174079189416850340475139488362124051403718490611661060693153179043554525353926581994949426709785414914402507964793692608469388291621846551533106343952008717754772861502720708212956873639137273070507868643376417158883270482981278213596833102762428143674099078856294880918367986738818642655677885415589519516805598269977652851074153677711707860780128851484392048306188250575439270715378339497251595969963712639061659029356710671888770874572754670628726865723985741056339293560493701562341830908058654203252829690267789495659058022153051776955717905659031256872690653066785737835058994354663613027069333996552784181697643578404158706311281728922844005071876277995953040102417156186215187485306516235794165355293627704888038600094605897056532053376679188896004219849493096847566630938340728466220359759880188288054094126199735728434084533211793807119164117725954407029854271769349432302309535587721040287299296813034686674492038202416833275542551556453090315871256265064514161584737999921553148447669309371852633023705785532083487417223252043302409731987584007317557319510428654183929337832733669373270466627674065284654110491238631337935466784278432494286214428383875305614711158440250360468428646347834789721378328682933538941971561872521724726227364869766917879678004949207846710234515192672345462245137135506132346931708671659558397651671947055675796065244538738126873243938030263583886129173361568015642738482641378802522151877464568373994189069552031962261144334645387249587853212244656510501496209512100801884349169197943281463814060364926163271394586463630211713744068789113367765578293712598665540460778945372661670152177861283910794932388670452566455542319888153671947437459660016005713578530972948003805685764932869710107210929513824483965463272376149957518268441883398856534085169361647201618332979651745907014121510923158346055445205136684181957136794541406255021461553815677730852154751602045013188938422618260508624759051704982933288096635596712892597763226983874008966563310137522827276439693201709460129411159835696469239064911356657128935277966370339988810150686150894550826264994325364869238450067662102898531995466431172255253266672289501991198577084275895435870683192993659086841128034571616684579064061031435023108052064533909356212832369324092455312771363914128863772426410774773269659167455611688218521295183522821362439040544181216238260510295104358374833461704493419086326005703104610181950228603948098029902986419476806342079828878109241505358383813927889159444214961800490510931833852716294466222265976734921718325682742695737100375512545295428249455550255765850083763250217820883174332405085383421139721823153519021429199783556186885110482847801214210261842943995486693557263100958441071442142149126606378792775174783893121531276602975200970141418285597604117483042408412534883376947842057813651702748405929446309026060356285532521164289136357983394336415122590895320860683230395504889843747089608994795672518904292236632001364143255144829657592192370708688712892776537781084838755357591326110497930964538249095800273276407125377103228101456366638523992307872647206209830507538847689930247730608141425757762156909128851357657074355669936095235999825956852005179853594060724035614611583720696162919068323858727743631482426041338763579614925655087708581278552849277420796026806309194146030832865563391004859985109029718112345045644432762043890136834106553244644196878491654648953426471323170612201823628382214720029466984304854922117075815631689478116036324943978707921887211945732404982478925833845766833261055470870733033497940452334211329579482173253198405873808015259576447716830324577663796457453474182163505369129791360118926559559606472116973632224014901797335148413205877014918069817833507673654970252268555139596507932390872096469209710119727724409559254546925338847470470180334189607169269804867620493223296778739301191908379949018057462413151846792287203172122324935479322889768219151825353095518159145796484227778360914904680570847113292272561939436508228261714241215804517614941283803209847717958589847627025090009345642688767120988659573575057227417981211104521140471021404405835500251644596034179886346339033144425280351790977189199015353102253517572743389739017998160055613268140008851134582310461487065509119213187503624173358664797590259942754715251082377099110116724816195744317807475795126273475448994442051439189785108969323248345515446965660882445309882376139505692072363182093451563195099319478061203195301203727532515320381172037171094887830542576204966949530233354665928887789398907966941433627129152515978151818564658136672248187274110824043825585687022152555114066998561986149534565751858493276411172368508612137508266275480132239784581748184160431723936078023094725212399087847108320554111024961748344148608449344760295086262492320598499365490205308604215098565124965761646370083315621608842701340412093572155508205774313799375008081851366539716101250246803626971185625052193323163651204922732602446065151639568342235620729450559231962800924651408143944635957762778937292140240599877540562075597300376782813763932517246409152890775829053524671867649142376988975947198295320271837135006970996877558773394527493327272173935304984818950099998874517500075084753113752491047165305166455891422464431335866316793358670488902124791162916760118673605807846859509509335007817923750658358775987564330798565243392936840057513412160117916145143047408603479886307794445686639321548423639960320665045101721713496519309930927436651879330018784612454931357124205542875244774473176094917754829426622095925840265469347570923103278287690967065601570207679495365422053603657860234604318341744191259790564379361022431833098356464588867233132088317724801477602577122983122530519082897328615238279172258926315334135639617772939967228271288807094266353485003154636175752539754456599787883311609097406191625655518365508799987087769104275974979422517894468380044936460347026198353564311720820856408394874935027493227592756754504477756701196208954608465350311919036064553566696657297132202446714850335714642682305957272886434724490903443939531374542153925022786981249433093523942976423900847460531754567117407701578920041547907567693410201458851436223189757736078840344550358951132159066488794295793550822115895992190990869065427273909771900669344115258170825864530860808419143014629845575493792819811086001210875801038108182904019350243360820275320930222069130714435040874965533884867158008076149358330007430854295056476910334188750900406127552657715967359581452253081655231803027495391929839016503066529965682854156217232221631276985022155198139602120487676616148886580523186404599666842622484995011918659748741922740466774360927932143543594395942446401648651918016403826383625062319272841162080684542453469601422178650976120212900506587984926824298905391541954492114236772413135271511689555308799162318212284564452230283654045319253419415370246725162170544574965062823966179699394530574913725382312757894374238765810010640543734416533335600743352441824532808916963019224636871542516654548232202395487380775942760891787869957574650317789335904699631882905135912251313236625940010001426930821094121262345862824794424983304612354137458899443026870609611249531645243239810158408361119332889854586439384247906304179161224649374707191995676794485815500274837728066523539665975191910034797217558280767122951639204376620084922369433189081451732351908054604171494943645859910261108497905611855012243231841576890016924494881982090702033611661276862247423841144149694111888963351057096986162373515011083792046037764366631435517478463072500475013235446948097366582107312507121269239282653366795712482400380817928949164393485695966789113959714983113007703799704759737414310241474510631248993088810037225261825255972591318258717556978767530077010664204250807050347418344819489884030286939115624791775174161460953607340091206165006187885015787412852363325841080238448113263172780266815906470798864943220552171420560340590852799292939607010821385677502848086844725584282080494198106198039754246303313361370329620738128905638616271094292660055521628741124872554747659966724269349338200716066692460206265035740543275545323023859095914473092149306917157902196896680491439607554335207266686214843808940151684086005833333330445288594897167471572281113735286692734102462422186197598413898138476806817608044112241805635424489758283274229556817385888593044857243290851828581093097017705494273593343391382630036129450824218535186167255638062660504731302815232888609477437692002436973180537215734871024849047967456824679303634477040660723333660441010466168304657600608680325439446605234106137705180731535966808971841272834249920357194175271666761348526543010580365473293303612423949302949361938027490015824072663707401054084791319064267987169318415787734026236374098525025566384845762888196280599599382928992609002617396457870931497899554276797574917745244583569618135154973521877973474254951257605443675148469088907698057395578765071737044427152605238017160317352018268370752683502756751771080846958123847294510265696777572955854225911584142176593423964766366195287998340865073210681668249832293103603521472805171149113182813875701294424845022245862925575464052631899074474585592036647042586182429353145426391318022436012740058547754549549514543926287962623382276899787146958150901661893760401329887589092428518512615910967554642658089568167731871071933853497645915802101331372625192920865957344541075098430676999172793963722664965188684897874563444141575792591799580672668473234524534279646361057463912392701343518294484196392988817229552360614606249967468930312173588481950605913564742913039602207846992882604375249596173001591942572568292685445635663016808019823169980336971518749251339532359943799663668800913214942025517656498550437447328351907253759661461018114472884718580822336859217277181171233041978038448501737087702442207781619881048043106485006121039128219592285994128474685366512341908573652215495258462225560471651529965582696496996668901682791202692675665175987007072843171914484712772401086274227626753929055164205746840919381073916165308094398540957119434053978312400446316947246277635154194332917504576574411805491235522959041284488124838389111232050235116605510290201504437653368981195250428737928244454637299549707243436371443036536204558471730560235989494828123640509017446570533632709554792184979678120024270508520579965519354995865267323615078656508212936229941631394455048813309141960201429294364878300375892055949272843862555698982005944167031927566288791225413258458920138223986608648941261636613112251449984504835764787226796479005437673334219603092987546071797383126122726714625930738511515683604956032224973612316704204639054045333918922520982450872240292141696609894599860483623600097504536780938691076444432259106981761499816365281833398043432695950518607199886325098655999188980847218181826453603330039787613807210535219353294312676253311069743104356197502016049725329289368295944661829936907501135290947208071544511950011347544310806702426524947402935791277225514099262101303225213618424288858919072069047631131971190196129920318841718506016182998482404962195914281820989526807346672479430567129359037165480813780579731703722601901918306030440183415926976580091395723526336837069671679953729746747524236007424218160578940996227223603451164993730270084569876009346081568798059519678321577343963357604541599190066141242186954391434711704469661642355723340183663891382675467237410179269802041840225225560025902320302713961472337028098712824422417831240203115284584438321084550442353301326959783552502581392842821003217128973449357333309800016643169209775529411021599528916843792471765660096224704652093688715036611960131028188150037942841983289828716138850986948989037978184014454821173389165272418155913752550528181909317334699876665165389032701709354990336213546725373409408317330233754168587728573675316374112353796569348228051613101452034944330006482746339330568360359313341224456661720125664524602839403807929514127796280295364895701906561074796497696810243480220662012342952291243643732844656134735057480570982373775220413099057685576810375571186121646147398577944704991513878733518539819166931229087116717527058391104621913817737056968765367820341820876983890181748016194225121086803821697410272798762346134637373969630468232199414866176728686573106033101541469905446883581100226174089439457254534552614834282817699155396966181420293630015284186590886209034194165781754670661092602288076415632064755269543105497686198737246466502646497013613092123779908798919919066043305735097002679123078442837182580570508212634143156264673480527573832689973584614852547599733003761880323672713892281550828761817149669888231501075538353052351792241773124711340793773862044246457522320900508078607728458370596514082349410224589204395242918340232317295147248659910353984158064302877346283689831747370491599864073760507152154824889128092603668152949692214516957756527361004401248935218928856773355007786354629034098505145235935290627376598494165933742994192775325041241879770313086813492689208145551334627499131563318756887659279525902959081676896055318073321928446842331703364254049160753321852348443952582975613373605605445246097317753524013617393340123617139835520298092728124721185446538017878104195314242893956342142609049523756149525479756185383068188505838824988364701079749494360024319529396830146093765620808632009708972822551836637654071691508746226721383722354963425487153796993241865303409887836913156973102889272941477544233269978607208025846715042377224979545745197677473855317549741650118560853555670972557493670466672467011219315995774303271972363893384849560221437322139756710782034875479436312032480508663355532259551873652434920831941226175427430592032044417507609467703501876399937907825206184902409060151349363379140371716365024500885632176432558170733589150251706463783560043927048753947024290357498506826780258608236030238597674550806308578455758285131017981081041682715088686285575976001074581029949093381188002727152058979979182444574930345648249872349905457302507770641502239038760097488979496854116896882673477783117422028680863622884049152676492753252326721484426956410107457528257980998482998309676230089846956328981136989730076760336479585960939291515942337105060778501316616569078545115924381172894578923877440958018992154570990888467227874581458680209275081117723918235315606059466738223932561124714846681809269864997130461196080310286277026956401606676098875138601342434366016604481037660202309525651553017218662160250268950381437257868598009864309436722342233570038400259544290991595014865629634904126009639876964972327134724056478461747710744571673627057644095007655447040066032799562618670470358098325225584225305462230005678384481189038790521368314882973580120283670283680534708061654195981833326279040490015454024412152563301394311000676970295741124101687213762782972943295831199935461395391947105063936135776495220873723603673095950877960464058687077771749434316246075296368058242761202975864109243414150584158389241585154161644306227110195147200257709014190421956906157332339580376703775667166515377704199103952536863418947350721901262112993009213750955277919828447964077917700861677148351608808314972916383313832100148326066880247829119250467946557586140598943980333191669686507799049048719281460660906743320969776284664108444982677125602884010080284717346172321164863204882883789884675583137075903063709281635597944752020197008069990152684385834548951612575452835602156042304809144280441092672840290176505650960269842243954673661551053494892834735224419423237598414968292366303431788063065651397661764361285713309186591975592829712091306439524293863246663209193008272349677716667760905164591594711943040681450983114388181082202198687213951065111529483468625758702977285411785173934869063117927349934665133353384749236167847589038845134890601833761529895013456552000650702887014959987384385524383387168033458149070270780579656820281392178524264203423975782763350462174970668876693298049252004421148647575398976858183830249347308577552877797243088536135069546750008558073968902218296995647805260974304319328759076875707489212672947184490652473632727783529407776917616625939484196130141684890786439974198168868711432631289879744116605434412171736024673533915890547882052312569669765861950440858930641632835932865967949032871423093119612203944056281885813646726850435342862189266803387976417026834443198613318764676309162315013131450128967299537484801350560239104922490632494195573805759292691043317738203748852900161779486229502073040810890995319632571711015139124479274908563948325480424235468910696059121973914122105309419010016814506757657169932385280929651260218956730417226542704889939969276223265598981757097651013196883706776284811824470408684685013576142467472326014628155110891139331164003828228143027063363675660814167387133981454607272838173886207683961390469746441049185814828993783602336741268081797543819639529925791593553431298795725158149477894600122246995408138123778532877114792221878912098129894160079081823231640433829356900641346165881554727021707444746036847419396968900567004407007443702563825371980776262527672075653269324061161993726971550527171100968540910301419201139257503120352918994595017364370421835704989836960336950737138772320701007868805156425515577977211426762773741166883788190065183280959281906170602300172433239043350978406372956634056861474580553089335785580781216889801507954754085242076766304442496878628817779728186998815193262072313149854755761117662016939121538280576283975743993639878612030139212293531046896359307484423229072210948840202429184792279685683491270424317174539669039366025511564017482640886292751140346488531247145345203765574296404013410241513370543695691188288152337002376506573070919518574509134507193502749048260159265392556931679621678197731926390104865729296748735844532799047372411155561816698211833485501631773930267465863537884635784019903679167130486221338494704587145279639625330776252482771024994856953040617323844156301275627701180887760965809088168876498832825288843257035488391227499285245449659552603008326066298548601300479862850690395229975675668054405617590991341253873450092190046198859371360568476876593774458115887826500813869274237032449083972290272180929303799399382720070889018901112432210570057811694128815660349742665425934660702787566258209129420102452502362073244814724418420787691148290274653665291213749199800808073438742755128547122637635415422511042420963157365024302763334958934560211409209886371130259011281239378275338150810961275933288731343495267826817312773116791861409098735663513305608269684969732345545608745504859303016248691895737333509621322584713743477905711896169358179924038197080908254735887476520397493306040889534974619535641399247884464239904583627444246210622745954713649731463665556698936696255670706441036460636779480045157252526015211777895196823403425652868848795499615879267749716927367874946940839032917251166878428684577811744124295286883153371404944786616625080980338966240378906315076594727430945575295960370221198744396624013617941038814153733434377295066155222683419810568248858909834393129936281936700238998276692833578247291258212420749829197162448098470964765976878917736378222756079700129329050722698596034450122854689864317471715274062095557307490945289263000687541469344538503207712711676058940422919907914948781649477282345717059982111253495827499176713985777945939056069296589010855598814096331371888613489883057089807036190724516533229318532771898568671460933555108952918913041630039366992120153981380127546027349114130357931320860254365754679015366233751473205869382609130494698116372934807592842410243626893671619462847550817397555465265951280985178486780705790314655652364931066521165820329500165863637142693130389598232294991921799377480871244522178012376533993431626299345069346872880528594334890864656420784108898321045716025570729471957513310257265056923040191825779119970493512231871065337316973884979071243490028237878903014734770731432012940455860321726498385436995173887785611207197543021236396170467387369974252856740399671775475812252656042176027405288946090515114919759184580788217476156282248573565056499196269871194225032772584026860381913096304856836947734263792765108368052776254588402329867939188857106754247062964836044979410383502928588363850889341996170440726316913664404103665921980561571656068509408875719600643583172171099963419851336031524220350925417289977252139528237590900880677989825685251961325983798551667563918393577423909597811534307042064443811779181062420680211835716078362522540904824253772898280372722025690765652668226545222308191627134640590094651320255801972323275107999870361606735545802413106635668332600044317886824735082824627405033105089448111873537277932443320994465642824055309035755660643432790938980077836167140846463113690285314756529653500045596529336995595703769090010748724448595593575118556381051900953660837256305823210216852191702860005725992148254241366989583207069752997758238980833081007373839717153849348475898360899631246204667367483284696696283447220101751534141353392378302820865975545634309440161250748324510135865075957597348496762068580725338209915704928796946786211099145989641670748205858483451228269189997127294366380181236320703739672144453492816431760583961803337554466640685086442007622769979289715364804081486816444817971446300248974670332562214777928352500599818849855304968052932426614316250868792253393204373919542246225311826998041054345796777461221625127976153938157829533943943417495426480657801006828232866646501141678262232815428969693815906208311205291721560702832761756479913528788723702802410165621699723739794244239552306139301364323523818487733544495287116626681226840871715268742977052881618444148606998603091376197007268181115556166547203075285826641342743851585894785418947349896630986875560060864413946206364262148020798804925848253704271219197624803292223555584275715673618321863136330680356969739458335450233489643670506191465152278703129488370581238139259127512060140061028352711549101772309047869292009750296406832234715047336539254303884598125660201908068558578870836567154035103423173875822858751068031857049409924494122497108699874118788671358080461472078103307208674314591580889921891556051997665244450958115911114181311846634404537699414269997545551161216888470525646922758416734848025632567370489049504773323713866857868340934124995333643298283843263989751622361357811381199036066492409786594668292738757325031826236788654475416461901918494527913644883255926153331853580648217902844467533054658776926028085496534327628316639911342133502802517341981300858504201461595438129345789325094718550605369757189805913618957163369836528797531532796414674922154798373486808287151787144221487173191141869151027151016395300189374934493109389910113922867016469743538301208542080803270093590451767864546198569166298823303011664493782632945957616292128798891701065966019357867563011040096484923632827956531660151526283114700134364734601359771260404152770331524265636687441952035966432333044549355076822994534484024857173025442795243546134024099643681740027971923408241670676716640428747519560329784826069279699342142614021672844273597092813074002614303158920814285354147102710720901128598082530670597716018268284276829222305029470765052565245833890141309962115483710866207310779053003875641008842755050392011368548855208088845041922219467024012315826651907964257384461774138763309920277847171001927975427018877971342169161898847170419955874765915110028024198130195316528098974100573045998510421881215222608583004886529683920301652940551935624066797982945511240654856401809342226939348226841202045722680527323276683053979898675255601226686090497187348586068263359718154799338679034172688478444473955981775309927529021074755557347429034397265772999387288292620680573841801984980010344371154391375273498458965035517956757597491380986795841263044709094589630132173875590936643820650447450178768998720948903520485263644100479120605589549333440235195403353015499196562242480416971711557873690825663930044838273674905301470083343863378802220283552490352208422639389081512855326085876573222618202285018546121197534931915710161850271152946775181777165379981384762791866782934820574615784583558048352397581990154714973351880547149266457892158834875810862764391832197647616913873937111624296524672439894781056919207250113652943250425533091914662954506759226901053651302868099896286012792378247572403090684484676369147715682505199920196880843514665605044674578899036635945764078010810097774288220669102168963052347359547998399871314120618832704750750774002937322728452070004150440880975249791792031311059442076476505016918980852842492875502954602029089952903837722930089350806202688319028988638779716817924635346319460396769694152706609331311727706351893095874620872588044684837374221521428179276055446697770591130897186210997065606227375910624553359236437960638950474329532835770877935670555177922493008674398651361558663614537595480598233403365869706717659345945661252470104266171354278618039357244559686407943977092826877566887203975577389562007975936756803815993473378054072704418101777121575056851439759048472000117879795451412484379844813090423538342321425634965368448231733832628823570779479624303261613874673736619046128516446028477314797355112847096778450518223344298197727472777194527195137675197441246792792535982854847945959980648107105159061485064162564443854391997629327781695415634540585480195201610835751251674256547991525990416190961361797228206182875397511475371263308546923501132849817692242203671593694188264827302990333843613886450900844401322783319285268365035638814306991456006206530982190860400492668113619174389773012894882018321486627548400179096018232344734432206475300559868113799146615987919516300890536400470316780017238109000776187627134731496649494843055749668709439846122513779285231077631982590249558047308774526878239402166098067187019528936802971824921428037189154905031459053290658787728959328752636938255167843272123129007332711570509145342560234724816678015127899229537325475245442139983661324503271202641717969236476855954528524379144308961938158257291713194469096955198608768282563949242750557513227540952784173913390155980911246940551893716990938966794775958212964224944622550525917566383401733832746452367029681867589249509216218449309325338993785748028105787148741509252464003818784397550775675587385569472618857492673988379590117825024105484761792400443877355128748639111619417267450909694254858426974416115500958404012585903671792435050317786004846610673918495074982751480961677869517415056229889961799436704512710736736043354165327000099367420549013148945485508571025509850038247613019592172799656927601827176061862431926047551687746608258901166788743029042232323118769235926568676364508299250414136125890367110414628964453217224313358536943939408982303732707022432437178852671889231058102606001721202619248012849077363700139847201090793372867632390058480216134890689545595159267094131001361665946857012109971736924105373143969467620942658648308145034531236760475357579239563388633639711281671423509404432370531491107133431893381398141572298285595750463129453731616812328984411547582703182646288048271324796550849175502837943651235461405776917347971583671395769822571696827634190813159160695411148121901772986152750230404545166761087362743712792440420825182655377445061139592695528282712588836930964998983641766194319006587532910491858039679232481639064689142760517026748733254078257645199173561874909554175675954977757820183545410833512885451661630227110100608538969813551411193000705759202284946231121687447352309251410521317043720969286447803325781222440624199510752390979039142569302422495313768281740041043252777735126432814584658142225387648159381321390569022818699657778628550896804536062720456362148336451681045787458480289412348458363193353915556615603466549337076297279630762752232680898560107113629752329893347127692454382541329351900276959927130619241614299865834793062281719693764781000235038139180309472261411930385368049713132662210638822318460517888633134647724187052769912490005367228562032660456671390828706937465189601361793991248227987383743640006039949165372850508308667693612848010381343407872658747300061030438610526765712564899502767114468461798197070313809885649075915153606007593045034450562915489537109129426723983202664027303429849765590642275860777850774217944506392823106305450722285613240856987133395724543612762207142880087046247565447685502780202103183207304821791371496556373423887941953869292764354081632331404629210853762064271887623378509043697286751420244292122139652579432216832513363518441890256306214338294507824451637057110667558190182356418956459961411375120693382867304568346043840701409531397521971070798775868772406946457605718861863108177741135011058262507407770886304580628907911998646449643356583602826987999163027233435722347177982509341367715509043702065984406592440455101706840635667542282490192042050900725291738616269882991648563473586317923562757394735185859583002907118275584751541952179206553787210179982038255083913197967403532415938052391119633801275910199040661990596246333892706085935311790710718978819271086454283486196766081450183845920738395977027300024560474805357596251465083333178345140058650020427697104840805763568470057734496823464627961304857651149288823191347962434186966340009454699598447073294335957734721855408815911029387056713806793915778800874673901825471880294048972914132087684782218453259930284473541504257003322518283474290422194399715063469024341172510617096330959874795342059061017077490383019422963572122059531673612511161539339361901878895377863982666508860823961411446649881674970111132333576069150346377425146267733811713124484223685778530072523314105590308656872297078036667570056266091651700277349633146630790244108096388521463051840742300936589641530696321165650708547764338691006690987489842062806150330687583873912697254495174924380260662801999018499167015803575161613450358910331087157268791392480837409335217130342516382967966037369665692255486428704258312450509058182392999926740946094551925557661703912769474242328703734609576407164123880314847838296723204357777212074929273816663488163517041347902938712732148456908106112512914762520027032577629596588689746220457055818209032840063464854841598473539518544035266600178045274796121216159956472071742022020971776426100456551550915112112496257252504316804687276877405333161288075038843698022451095898154577169666635883671929241222808815690831332412621876483301855670881739101567066162716971789096650924766396930086855458718146419963047436060457181586602354674045476499042244282303841179650039543016571716322846214973345098740754687429089506518549236352000459856917829189702634906252617094798273564580348140609315392039152494634753335417610506634264349678361167965344782163129892154007418702754065146948674839588369048654645766099643881583477832552151544017442180673936795679302596128092360205624818591474462400435844965258887040619097995632094425629401850569203545750273418134334414533586828844257111077183532030805380656157732476611591002741468119435284852908584401169651659159737378796990042566350760151650720224648620860030483974668957654374869124834169671457394849083616725105803773500737377928517110182133963359870703804545264291680764453024322363710803352076477314069781549525983068212313596380170144044958710323246459482543697371752078154601859923823281036839759160404049798449701868024502864056994762836952823106580569578222228896252810957473319247745782124624485360294696783019332400171753390555665998174290265829353371616146836499842274141261136143596601411448423600668939921002998290708605275092743989502742969761557155026113403105678632304265052895677659331515676870669545159361985071529370058893851443098175099266874495937380138207372272070694798147468872145238486325444506239901362003917596085262840841410372695217214363206500136902770361320074240679287044622967481824970339113344766756092088142064106776111277682345891524934136629811788995186444337177213780712897089595848083269039572943301566198838926984535967336690333716523994653530173488931742815091530612762889492139369023525019108223029010914575799400154981082444830684716416876084611435807541100304382819319173359577903350646947303945343173200130829598324852975771296939516004209391462804514294089163307703277503864982701089544434666824166055487903533975195337189645401706257130075363263104989789650048234237661635426737812282422523714498436865361585976852727774585819869416826741202114184541885434866699440180557409659658725495211501077869153911476657149735072667350528552145746720220481556854451883065814059266128479375404949898790758089490760219324253718559642064062913222381364799755236200871584591182071586249112389422831687392186771919070441741915486364297099082605931643299006267320510899085861045785479785002253255093916026221648374760840115019234150096327780837511545612040627791026627592708893260483029440754743890777844445037389547040289374100113629437725411502099045690744761401845811789595852793501798628212799503773523503455083042104576270342916943869561655720979197361008770285472070297615525460427800376743666176865168117461769349433633962581220395161746352765539635581975969726800701269213700374442049269149874056243510758045360128241561629245274870347739102871456237036974723260409165138469039728904148306552065611447358202797888281169581092040121571269541061788143310680086963229602984649369619074994062244867991818987057865460139669945982141929964369556283296171133838575318524524810221215301515742447431202564014103498870801688411827968517378386248927493054932799131734173920319166372904979868937418510763575713330218760022389269684101288334222222276842059115555464891219135051917960763578978226868713537358734287306025957816551526603140151793735511338872739289939936541992344030505824781506630061016456797296618128305516499147185041933309257911372280675388683565034128755154444509917239114954915590325858802217586132587175443524707119285787175422631583255315625251064953485639180177881541028416340371357880110892559038546834026397001833543365438005086404467843466373819876269906193034107947284555658157841226947666787794808455436080539307574144369697996670928480751536144522490844827125001478234591486871731691792164320172535815740907391084073304215878636812374403663260744638108199282388992526722123591463387564942605777163091350598848473516693478501933273420210235069274952218027710978429908168222196983515723459741421231094398631915188118875216525559622894788088108361136906362273298343940059680757052460516702539321656966693223663070267844632525116442976690641361827497546791291638986906296432885673440460271163276460401626599890926358081134692763029993713600553455766243962054096537626600197573024557509648650176834157957374238857947763548988396344530633119860875575596177644029415983831824405683309623322268245758253419497256626342147985900507859037385802370722990230526847658877227717748842338410271178763427616698371570679267789823800894762733958218997251320314827265144681822305524991242132931756928214412590485155621793744532963644919239746748449401090607655959366934986996053493412784174395959187406394099033592789573721482384774719251055300779891497274784138316986079133015157033493109403459097253572070819363950277998479582076060594284953967505677773618225129762197268108966239054335904181221798485338219625658279091309563574443874784688668398707007284374606451824318788863449584724726668644490955415608487073753654803179836997729099475769505531566100636234473208011261760444003242663333468120323521837190458582094616565692246342745974474901777804369129914246346564318056156684715521207134720654891524606629609436138996357017630509458205909295819120167050899976676424889314856444210196671071367274927678063014651862724299142116281900126480012396716298053262064987267482140602796596465061438618108369045782198064211000261743210578559390719912718682281357990475197958105050640913706821313638539648437266139641098257855579779272595733128469978899781314862790008832097430413267172895230986327657865395215873412140022609935219887084676217023775457758315232947145120861083308119428387146765980794967886879197663273896735655656398273342208458590607866317450338313296622953054653116759271372242949174355774313299913756092069077585507367764823308628252077043802937689415723563827827678987099945526700748982066966726118616259561354306138039777498259534737774406507672871780344459836789971430137860266907698980032170060009464806925352793241160325921097227443388474251062313601411920756328699759850729713789229083465791888953280659641183305277140852433131732259712983243018962936209346590371976398581266860038203308715973856075533353025120832641018111219521825779409691617005255331674806224746150265069087286344200207241742545288053394607047238893652067613173229497825579559164149932625203654208859404577452818026438840830711002182181473168015098106186706521138631628489450788709659963709476296479479786770743923174265756026524369914291083470424958814142583609996571093329405427088679087939537960656537471968815802672865342594311564284793346106768817117806867503943338515323399614786012505598063618227028683942524871785921313524949295738799916810574128526689088870097362679297726679568096520741831734831202940613137355910283872792259001128371559602992916266700334727983641984223056634297178132249321611721727319579208516042862303182473761138325017698641876745757422912382841642069786789525583740216398200859860081432219974407487746424579788644385952627791189869597765708563840511604767104269601219379773077844046936856914909423760989569839060834965688294055780524285805032028712055077344202872088266400745134247204205149472848733754716009722159065026081644239866547553674091759822262832337114642625338944085940016303945779366753385253617565448604766109955915353746283562781766950028350148175048244216946557941618677389859272220138875763130272497596377694764101537653447831318117969562674165149869448115050186089919639148432534587314282646983353634333230089743877008128695205548839717110039587748674353742265700726635395767596474392171164401327063496488250553215538433301243166665997329258895046623166802281976714846064072412958736836552712138603937219908062379085378311313297112379376471229475420163698208504631626439196381232786585927407554411366240816343356216896232979301280341135427168299500987841216162934765552085950420004694071351899073150126792602315442592126133665959177441650464430541611814188871677097756382601098410178010368064330044457178252210491028459570279327053188716888216136542098331527346822906679309952586110210009420798046104931456873050953750503426563038217096957797100096893104703916192096166320034641573143571241650206547909744504852858442823509717316063175015683493939634552478723218159227606853118682673933379312382231926278113727744623472300396014395687862235686620792504574345757636414696619833002954811409873333533236813751476671137502010152291371477228267113918893958264770841929869214817198804068724848742452128017827814663277906904172995906089132506084857608570044583391922167531391870776385426866153217075512633555077673994521380944871781235074373331460192939865548358037670103286669697608227090697924218392967653318594624396430411524817961532048969557878958943766185564882636535486380499080438104742177379605510433109540778704605916658163916361665775133452386736474730098267164708248934290912710263671812088474927275545847384304082651403710707636537279151802596059226635758821300238768133230314526395387384434190797482524808254249001509118717534108604473238347068774202188353880473433219170493109100410670810138125842247889227306696342417752008302953536008983790896420646566225598040076552945392866287786007842632317057494771395885113897291754214362585443795062005927416618962957225298283726896234943404866572616004968505705904394525527125426448393252865425988084926860539265305274839498687003577529313844074430225537715654979402254978920553141137411048761864613897900304613483699882104888721975572154940301412902298134510204180090811284701203744827574312708099429194346358367024034991027550397968656464648016313638712232391699867522230074019794646408824627377163546548461147188317328259495177802934617593657244239147415845972366336731684072411445768173792491761675418585167875576548630303643153759850589197872917914598134100444677609239802611472641854146913629672363684095350967633298652662701465609363806841456610840266855424274457150303067400105794721157614447506328802040613524732616791151198427046027470908681740612726661198264280578787325438765739954805427899817669157179291832313182434257889864840507639961547507814051987884615984449504190941978623426749703466370289012230008915966678205190639374883848385569344897455681678790429509741810774847038345151023957925718631545097297579433369233301979398944796998683069375389065148440455846205551166501254958044260233328160522854578740570324047211497790937177854722210270135346911726532156152326262306004582251204970514124161071483727116417568014479288602293852164237981089669234774765822337882760559344938449321276994438980666398432075081585592419632321738891085037305957498513800460192935427294579021234781925636272624967812075785874664353222854361801613165622472705798568744617505400867304499862503242379495184208854199443273748292713194414844542155191766689104465380246423648564549958968797912193549196225167952221043429318731049695564843093445567876959186845054292950093335071606676353626878453088886647377677569130002181206742432465885859864034350623759985998849760341310225742195175474642392721297744765811565051060513622782772951867839608344732045919640693812954592460946383927965227883051323968476557463257966903144786827927631224254964219736490515163043590949606284150597981434005471528198189550205887188296978882859932488816043775873170480708811695792168254809310852185009904230814118509287064405702683266893674181905969063646385014421753262575737138710500923455747772210151471844690632350239977165022154813434238587367651276058955668499997424712838060670119413557388832038704650909477950809838357199752385240374368640012004022838224013144044673215866700294507492152972271513630981863561519506958200238163185999561568236665822040616015966555083126937377583422583335237575645444682721276475218333844692680969661780443961980608746737099801640815929275576720650939655560286337617076350297067943976710544341743169568262540972560532366626559650780494198706995230296567882227759480280401666073230859090460786259746273764436481224612408314456427464348589027753617247796015832864042681766992973978197801415497295415182230689841073817132881606423743373736767225740049440801195629482875925025376024025281283428580229386988341468594055673902812686714512249556295117533476851210835712023897421470513154360138791471622946748630950582546745815173317777876024376690955200696887907831893060627368089272307280401479832789608613256372282108398678058120806461328213790613645173296624652736317950571344359552890863434687816920868875030697145472405595063458581849114150729356480589382874192280989463946079665499670831277576608296603279019037350445652910985012118029338665653219164447905456020647082344770346233753950788378380481458633851826510769051876043136156359577362573095030675469766514093520640227759690244070749825913048733343275801995714333780330019323605680589255029124932013126791598857194001111583258404818163714844205317789546378587980597822869715003584677790121658167974120522918522926603835851317625187261134921240178995531981097369269795058754940898731702783927050115186774652090681805923635582601211785196502257144969618011508536168884607920244183913821973379379223947622742542148932464838198956168602472893327363111267257862210761931549134328882796097437028790298596980119236797363358591396879094783240629243978958428161206164857755693778992568883578142763812693028744887800987717673723913187942747475301571264044989590899945643093762784135481028310941730175548090875646981606576545287891120629840446146114196238437772754597098853539564974773731581858287565459492090637481811408510025511103609810539876049893482735590565921068682778002153111007916071064868431290290972949107602840150179312408398844764712306452438612502297087935907427977452400810022993805420481274098327530230744474089765095836481514984629963890716715517922256074821035912795172823810093578143267729150760596466413842854578828154147572356471675242331533373833233140442347475128683101698074322421554821236096558223074573382748050930858505329539907053466661532668190028160297579071640904087177651766384967294115408489785081552091306395607584676588163041365228032441827396461600679344411922243340965101255090676513189466698762295479811027096635843712007677681657994865214487970872092005787333929176623479340965145558125522985868624040486604709393460367611203350434453269105908124905580383600226700273230355557806974658263508688556320326941658309386419576157684748441375828523259388130553786795058361904757835274917252666638720104382080366713895179200955551755887838117955778573153968031420037926889119404075510622138282273564732552881506059470490109562386346812392964325789005294396667843228588459132328517651959223651942701742554877668313417365533476080498566897975829363079726497236922970284657669423948621836415107485259746834284158630925876136696778375378563250306349080986070234237156651414948640185010722408370469336767265349519064176506582479127088739535234667221859682951056981040651874908385820819148645672732346068816124396097342287346926322713105216239391259906724980996555342633405072133236921333304555072063928923120498214490547540009428266256294151871070805061227363372269455919720864151337114689876781399978593540751632929444283465561862430287504767553215895277491218180735131967889482638420857556867705353012795165751419943181830653981500626646296344178331605022727512805126121055217987214141836572086673193917375121593021764050582371854304529046608689980143748444953539326416399172483837120295382753219557238613775424073354063079667155478596650278135359655704294258151269804909747970946372199962597007656867837332408195476798382404391736896835974028796691433498816809976117007879665526580686531231387339878393274480294911611861294848463230087541826444179445258775867009709766435009834846020027557060598382106301434028936557399488328889705021023657991474588267389838834216740756576988113642618246590298488060661613553508906958767759216425580622186249075575364655729582673852568969698090948294756365337628882543274008046858639044165910332704927959966381041739472925706015608600109668484978184476008837822193877444455063659459280215322816456470394631786752586105019430417042128121185800917603865156649575947109110161778787539755557775952473627309008358539342010367649010242318888095095548033597180032131614565674173632045184004222905602778234671659160718815918718911878807578847630226299574528749944331777718196367718867526286536443881000649212779746835754787447908713464256222369037947182721440487008623780532231673751335623612260385150479238329250227897889000861203533054402363594133206680743563944339240897163779382470422345283918443774426196009824930527421771725390125858575447973731825781291811708592800215698026844797146354665988490713902191675857326097545273635135631899151360718027546280337486112357484153686029401830165503867587198709618356650193125531251485612081510282904595354606106211099956317613762714383168232212241864320413032203248801870700332373607783353689023042373448195478374666412191815711984124975355667687585035667468126691269370705874394873514784531823812013227632073870745408793428846174454494850042888876169920361185986262093825956502872496098525593558627988252514965234683042686067917083814899078508995921687215755274683599485882137729918562377917943526107560395278829751072691307241587537655121697768036636417144127259958961729568450946191705150039635606553710648881129276905658478326565743057723672189384617478669721906440194086722702425295494093472597342085098666615061014987888115837982686740674619689319797866639429288903731884568926435610913996578763088748331399878398805597594649990572609124221712610437801686606278395397280578199753008707011978597869853105536516004619935417881928711432541631532931169773302794927439428412582284367761760834896821976233899888941004817749472059782823714755305947738197061678658134594944334632252055808789580735596089282455115826896933347989396021217250938073294109474657123551205003831022381917129839120387276861971313537907387184103238982093377427182534351206851564287723317298170227640224777402684345095808336637672393442827947912890145110652569438044634524163432098895841044565992286644077716069329739865550173918074097301906671761869601271918834487593660120669134301829017995534000144555951881661387698175313771130176697702864799658635443603417380398821773248693340543770388886451688133790218453413490143254631968478553834776175827520031183102377673208175137394751062643594512490292950988150872952622409547192371302869891208020196413555743023408677185593757899626111100439144164214675977507592731639242628519526951486179819874835060337252469642613373176351545863051675128529270514776860317894471237490303978141094630264694539933321497609201643503011719713202276073425058464668894437609362574305824813252369298418576542266718477281199296314169365969496639310862867450201064555046521640011936620197284275273480487227083644753935710502230153425310204180406768014406128400496209740087029555063288848800911366419827049887115309347196665418816315767595712212912348943764580514744116549189506405019724827106840751579905499581021384987935977031655793093240248383180070229149484036489821101703359134906512715954814891527658406133364305975461558841991211898940889258308048919578926939204038345453264350644276487666953833752592536537347771161266527392741777254798161881364090864984001112650684516751781899617146313336661188026421232178412877815373455178978108776603615953287693480920059690246609792223681790657764674506098995265006771495538633786762540107606738785495781942969352559588151553696421466363818091669143005356029707477399803718741723721708694901957717583455102219900563849046256938055980839307949283121761246580471391742242613753023469330152123066105196341912495893819366369025054927640267430010951297536628880578381210276368128630889718054514605753822682876206738862075771346716869078475139462877106863007589418110032273135521590130081807832034741617942289577466830659485375178196648240369706186466469803545882947927440794132902162175222760591156648134842686958510169957885596825727345252586712633778169216996937051903332184462852450604400097543675577597857480616872216636638104766942312305416357568873237425062914839910944979564172717074297010299038834393853489229994816873788159785099117164646972914403214004341155985733463050486676093335633788244824707175089897329494316187804665879090534382857189651930741971143703467078892301143700630740781910314416232040465293642349191256052418559695918323971385016622002848722102920666136645767602046990046334964943432783769286688371485780866431664083955809991109879655887500541666911746667345616651826431722263166440415647504845261351603847389269811594214259048307185294861050401443479375731097679196342379100353376346285150664675683242776868597188144219456012549603925497413519148209838802327609438047403397653562353451961254692496850435702008544556179900070235456108319467715451745844279963548807776048968066081829452195305665283273459345502044939995633196768990590137251433623467977150179898822143610360569418089590586024759592386723336172424807302416691690827730301027926811542165219139520972885718341096575550961464554681849658966551669347745502306094502643048266547429615606444223754214944209262851756371406763360760284059108060938231579161353977739161802897685406691004169806955833218570574647660254769947509235195560353638324264615406209662862530967030688883074874887848233048491214518749156892264265165985620441937685080229509744419262896890319744416925299133690539249822594857073001914157354652813221287420333249660859467088785489456869284601102435864911640984178174674528161855122632289463416424026007545297039167317872876386158910429443428118448720656811371994710823564463425504196250630371742942579979693830715650064753868657187331340454797356402304042056154135520606985074414325990015483803395575389660808382430347805283137284460111081375701938852305539994498973774331981742959552690231331865229231012529132375951436288155946309766267881276632198251134827555400155551401982353729528323965514226211553835502219626505155962949618867053642740625192598750025018780244318265277282415754548020487987240680506197090483971587128155155821550605333443807233585169995756874908872958157151293854560864868295884434652097549667782912289617418899670817793535083935958118018916070957806717641538908883046736041218187075852518037648405303511736384227318760672667930232513729759278519979023578052620728981697346376257966830061417858590908175271461198277394070839761411049587693607252201093138926088526304212606897126706384681830001783608124733792776884982279398733561765308812077855628339268299669693143188768542316029666580544674201028936263565399591713549800730092369862257960426833255613010485409685397543527783378914167439931404478294600721394748246970297367252586989271154193824033400150094153584117686585052271555924612535635629681124034136889002156331050503371473193589667978044537418113439080115770681234729236268542148584737571326067227059526546359336832254645350179072565296920192323211976738419406191884675253345646081786239573869965348558606567508701833134945202661918773987810036358283952612972137232662332675369738973730516741589190535724368656913744347038813841850974986057439452627897480288642409963941778975908814780247653028444570628236087784089060066728319991563407618089622949712877569822640493797050750568825372344817038344793774395919776868090119958670475502563176245139326127890418886968741436083205371613094141715058503987727509840287428105002058061323728709596599419462688292406580929327150371153977894274783117922294623613396796521027930138935984861972131628816021901269891335131491135382337308040727224915183541742602353809227243650450087992663644917813571841333128395581595296178092746398252679123980995888514498696306539435661411321826511020893594783332415178229961307212282230352879391293986037395811499498126368894129386219311060861673899794749887962996006711078273358395017861018606129504551663161793868285863216454020636053010868443907512087762743654290170260760413068126315255865521654122829139467200134302406335748319878278083500005637764493337824456785032073060176356759248611276209168062555714619936326464686293629618467511509225378821557957272886764421885713790328075990281975883422373216365469185676836506561196479791408552434413681782104277658361572588071226216111218778794195953505922919716654344808166576851328743290992816606115412273630588050571492361599794932626464526791816679487373551037120022799214098404387524698122487701933189906713617739518535640356705281969355430705663677922366563982115460489295841724994903543307179004006162317801809850276585217842510327285951780083247063624540058705463563603388497566133451716730500393211180880309199657848231287136736750124319939660861934711243611742229622483847036910141028726470090888360921571915515458896844444980470560080722684463088868482582439453550212388754576483772362947282935245731321922447271736672960724147395765700607891435438525770736970636962670338353346729245485170850306220578282136343452430934865888776193515956467013571474128228063982586279313113067211713654254771525187583841983691275699069174214645597710503773372764252873048679553897796361918741388035461822991050559076043677102055891191701256304679036499549180238459489633341504579744697324047956692037536972401018762621732431657717454930321281797633761284862970804440250308244363972733224764622884200442944453605627496133382034867835364976042521464031429090349237518909407729727011186422069932934530571041586448873778835077659380918607762280999275774694256732648132470602542949377532951516353994470691384172862020198767599339686262092088704035311576957759425314550850507656703101397623227064609679032843336801224464539320596881398392674510283135358763396681226142159815606258491473194174864329595495610740840099705118143721109659147532172895755639897891406204736699988181063687048921659594359819567380224313002961846922811194824956380235164072254233269946246807929712824069014107370280720418920055488223267653182357642965151702211667227970650622559771970414912041986968779529935162897968577218586297563453411740686534563241970418590866556469749877494134561047433848033988806543343656781437539685804344708398782591439483124042394668780549909649688813262685585400892032899306706692821140552529825990540169842110576777971059112543642788114141553379130453349379750725158858813874318576348542415227559837416396174983549047123800438701320297095781173494235439000264225310026038844949139292137194026538312990754931162843909347384265497564625348120743899025957345504787033532446697780751802564477307834561632683840130287545863408415715278336936709894236363161819121204639673628309120427613166752146429507850321689380051158422983728153399538456297805471552430025225190093500403674338363314977805877148298387419915467441621838535588492155469195147677406480498857288626069177459848614617258666197588364833251441644807279035811982242546021984989253009994950331218773141427134461315402905115645957090616394765786498006933431953287448463386093451802735713576844022289123431778163645988208970202909114076554482236069353447096778584861685154710727613828400294607125648174069079816736653293545404045215267006297304211817140111289529285877891543971925118611574759475722389914251364832465998598070434609818528206397812834034809780380434982436675674258799876257868362516628366098329991437561371041936720939990091906613423888026777611074004660114850001802749068939730697421341907107501185659866375721188304482504269246518224678339621057719387728627596410499127367318345677874143052984706686823999146458026653980177934815159214418071238386834164375633793302617964563750907585414723349967552952625306679552628743285945125686537686284362314116414255701664889688845267534048902976038487646037063045595903547954747986088545270188483524539862402459322046628456132741893788938782888452211545559351218430587884469293293028221025785847445090014996010862464615209457134865931878278329582354347716522285115630942393018750276356242044670774960088375595502076683261659595217919617156883330082083332877790488098762746698216003507023468670339264163401889054329467275942954008057892212350404205113621560147065365629262143997481292071270111965676691616967595738853088609821525782224390259196074593318269882850693454663381425258002152486071793080073559989559811730616208499778959328015787145255988607258051940674352402270127003978154944481335017327615209168744981620074813961125072305858727712565485859228754844127268703009179797481914474540140224084191456015774849608232125778172358363164906078544500149153133629898785741275359091458195793956840967016674082540375164868243233047102159151411151735492774186558772432628162369015503476503714595580537353375236343337138832034912430204257370879717596857868391993536436375726058455744605858515576921799936839298166014081299891598887178517195521017494491102978676392615502719784085806253360564319440463936264981657303124352774388105687685721034983267350630757228005003988977665621056844425254421209746885302270795811960465429906634518970107487487497265900678922350782072258392416278046074672632243211706630575157916131746230119456901909003034150833403506164993485095237115178647249563361024327760037488446276598354689351007811097588052715548782174495689734700131023520560070502835560077641294386353275087558968725948601858352196391207265256307198914408253298688204264114284223648726020529717642559016065353843108978750382898877912197068470593724425536121164546855366261513978548924354522784906984348575612973075016779765908248668504645610664915162002224898675693535651306764278407105911157184246693467436706281723199468972173269843482426475048120169648901675783240576185385295325073654431121783639325899903104049260560818102518342693820161975485512377070042967319947220952062683934184670490309391013314775245264101821814934557167947834263338394998734553993762863063711007579340767953811865583429324692725771031487973988333363246352055892006563563257934609043790124580882845743405640128092800199920125644314498398357892873053957108292327717148074295774833668998833882221604908051784550298271092872964221071708995595402217578590392578413648026547349855015561105766799317322993489510233873183729026272184170369116323774902096847098006582959109541734434459271747890668404385414502883230214581296295013142857415147915823650778963448431943106933827867997622793752826106182431266074697537656806557422113568854893250562181407208448739587429721371885028187805283811979650132656249958045500619513631893841180269751164598428947432414199264284394182486415809996199404560998643502723266822726628644269912818114957817671811713854925673956214292167193601550928502002127976911257346452743211884678454235688999033432627954253097903445528761457764886808100974876805701271526439633849533718573371938334531095552508027969674416340381588636828345822475790928907351533736860475673659642700131314420367308623634794595123212004959310527821061479740219475728630497131848452138640110871955967537348823173439597497369491540651563464142617227581389342411244105454141313105736737733163682138159445002822141238965264618624786028514939344365145018580467835326412050796065512609263558765028697457579229342310530158099203832886887702553990619735749440424774681659349544547092070544905481073705530514604382094171826497585071389453372376951882024476780612458114468462090598782715942985247872697747827111139516654862401475977659821530995272910611747504895165550249071403862936516167855795926969607691112574704068337488557006941473304914592290950160727024545446116788786842038857312090221732158235660770729177015893263273451145011156485199454251196480115224464486264892263775615178531943161811153357124193712911428497449776714234302586355345245006912295908051828401457741162434071355722384808256943948516344561943093629686154683730067204078650912507984765115672561551472507478304375922666056602860954328348662315658703570704375139301211842681490754126023754070015403409556576696580911701592289429560816748502624126698990169926453096178387519531605592183466462344308119261415845169791899263550049380988465239718988308824738030791399948653842965500234901930219899617533804892440598984026051920819813745021412091248283597276016568541125568837991077106724608993922924242565751407018485623132897820599622536686700833007172533478937184507248234395863050894456028747097377174828414004724488453183061679064958628087622620324696047692532857756289460821566249347583939560868131777863713411866220022017419155192866998508815573381474848048260218383039218276444442876200398096014717645255399160131292519571836672193549114680272603266782931107081466955961555872286576406533887946863598596541162626850133989692596086708897103601163149712513747320684732514794765606195076280126492552292829106294254679778291346700278399728757846512926036733292877430825758565239225160203790970035402410774815575387337827253168893193840433138743233036489949327135440080154448837665945622078585209890694761349497977915777959393432832499873395802095504667816942447739629934007602753755751790861019367655074018662528870200624482107075454361013733824966311553246809984911985837428332461933881347030269697104316101892801227135894332935415760599053326914951017614728502434481079235894660316627560203761770254492907654584800445115631381616971813138427753398557315008339659292703478815421530423744327744409469274037906622699928672066716512743626450423095999419200439756895051545908218542705006077622375932231040506696008012567420076315814839724033518216840834691529491291538756417578780018733742354407022526858213182606043635566702619726019304651482893736039652926906439417882605323256204565203970172844268564480816232165966298718339586742014505347117976227876789307217413167145323360249881149542922543336780845102199687961879091346471520690740229795305953864498941893184814281928917291259481821553607634704707922605754675363517809145297114403177124162117972433754692707683196183852141088438690890903642487284456277793248754411368651219338932322063898788462840130715314253647981873323931496882902472196644447404002144056541280182701872053578963672788723093598440862548640136123081152635978075327148867021212053428599990832440605238024947676214319840646676231899702299046737257168379662857050467015196278202143833008760907863254002634232116806490330850107181000354794906203258613076446116979010067645234731605622302750502149300490476777961367884306956580893933938303999401300366450401196334068789455451791120578416688010259132431495600677835803283645416351574779532749508453823282214654808896779322449400364573306301012811235812415012857237792516187619163516853600454905954811407004017591828660158107146362129620276843032994543733614446114109763619299301909634070144682648196807279407853826098183879983496996279363683248452102391373997834601337038367380006426288287253706616199777979119761810772424738728482180107113483827816042164423123053095299679231601682053946668633605435749387845453351984455380705868936339853214793399624333072053175235301510352256112127797481017734073904880958062499420892361502381030815422604413080422366767131549130337556226164429522247747964440086276876339838685731880030063592128334031318733114354870344091307259466823154810975098158413267370091160458667091983756562950595992328943470814625143197266925173620259754946776502832895290157984466033527071443211205581057970483990314226267828834271775378705705283731413996326154098285089005055463245189552721530078921341389726747032240021527740204967078273847262517260333342132192014653077678112198359505154412814729370585495382459043039437070661844923055909330439233371385306225662549354194882962535020543586143997940155345219811906638171520154548314358615162682530513538367684429809990129907189495664908778162529647827995660225921677526597503627599884538695456289500230478276078023904161915136597975063433533515965573600883870984810887932230399098153595527522430989215371290977761904451175057191167309277270499805691987646388096330570284923147736697897087485028560369500113856319285565404196941972455448495778709474543323909200372558857967825912225836155339918107315956889046756230640141206613215346535042840734602665898720193591760359108014056140899418658141953882981446935771562071688727872679278698014606979870496525762104889523098810748887314618833145901159381824649355680008053625047638994759578284035602854123511328708882751438191449641918557150586773307913148986290555875425522904923352324611742552030153282489721916427012070567276864305972422582160350238583109570346600854024352385195238514892549428663732005467150155262811908837343699016047777349568141788989637409648113320877112016656286601262059445738104038174015745364508828773476148384184478916283522798332143139026439148006820846592960379120100792126603163817358246128651417231076083337152316304800269271216653568426400052970026819907844139004931476348545530277945299085009033456830903449987914191330322348830948042360438103795524922405364148820177192689368295266292400626952652186676386779768497686580382692920399554180753065360871715871586641933491554647750828077082140350936589737401411488854360169549359345314343804459391518528086989009910705273633787875802806985103219482841222706664025931276967426773546876201736135516380488254676143621400453375090457157899173390372323103712831453843646408134134544867328973522739509767093996091474437572613229832350347819190557137216811050515262647225652528718276347681054788503037603295866968008487334791778495023888742185304627517905495395844754052670426313662310786846224868756993415038230016533723656852817296370279166526363420062394852946952594318143502324468284249338832001318880653881733561473609815047657665948490810419429404087274863681359001546126189457034258209168629325795115847308440585628595646126915734469350616538512807742214801462650477949453575085408072295054659243137594223414127372139372297791896082008948064132769316991971483865943609088092548373601946880032578826467880613111235934316636026261500465602504385699166723615919710265089537359524337452129107976195695278104803790870826729397057955968470082369886344342704728799337306887937995580155174160296820521321192421431252488062969800611095839902752330467944854563994607754853918929607698739126659467332920262786373226012319516247178494323745404994904864550408948766969583934197745133301521752759323070665279006074525359405903015364399448274451482998629352894252826483546699102457103109351188521241583022710856877125724714858512825906438503321901796980203918612734947557943754683008066875034862377218224524242019785532752272785330973689257690536390734007948121235405852338520068357744533452064490009757376946912786512694015961904192390144478489233053860356943553578178253121695748313482135933459403511495307804702393935325623017461342984806987240460292473524637023149361823551276684932216569226258035277884539633533247348367328791053560516715629656463389167486622822928223631484025990548764528760347704019324885909607081411259108222445030532205802452552017136244742144852187144174915543516133811185859161448087378172403317138872434277102345366279183679237032533047088653225452879961830438196248716063874952994993529670070246904839574237501609403015517593461313023238933855464795310289796544772363536867946911392387387772053814137830173802257086930667565768651261113756035515363698792307562599819215446239842137924392665768141840309923062178984159341506692359645978342642786898469996626973729038681744321405151551886969100707975731842523834906042449872586695284624872244903976633314601400195350061123783521983147023827918558161963184622597436046402608547818048791611409321284705295074997575552185873164659193441959454132282484413091468894041624078586843104741389828938133742849182138543900058611143324851962706709298180847215513893261105253116141804631953072752433946166897555980785225684889872231494882637089381662373210523225543202030380357682310117246184437326579960921242896301064658660937033381967773822906789462457914992964307987814261282969562059066969651562340479434100113990301080371087758496660219579546107159446496112169496381675232890691974867134407636980717463856738077833134121389526731297351277932330947954840066595910396449476442933706069101461133137106364027665966986175822962816846816680206625102166706527988909998792752480943604317128789884655209871899899326361603110695135421773130329699875236707391197554704998238896411158315417553445067509412770477476780292447534637076640467240053521525709999158833635660617019644703375635379324279040595517242776722080298897054472489309894895456033964406617313112301347929454459752338253513005421251465983437644191904689700205696403673658115286836150588492184157834493468504964658108233326469559786361254498183675379575513415804117725216069562996817361274613022512759128948248118518974804575450318382184543982783016777805627301614088983444565206768848639760207044537991925966423770279178082866613199561794611405544626058482827587904591371953032559409667323421511237029990091559339961734558697736018355309310842961681452144826158618885346171827894635551420318900483003045734139616368142735307812627055729656819310105287254289375558077942266067476938431101348043038098909399218630919505718229871304323482915386828661295460952205833793435968606084180889187869161067240828670303200275005031530626898050579847369373033095803252396416960437110284699267537570457855719058226848609746229251211379084070169828247214734357585527694631561730876977469112218932655262225073110424822218784884860986268880987381989730049133670381545845212573563811437266318785210914829225812619818493644864687283209893692541739113396668000340897316721370010552406191921084972856691436903975450672353606146714087920136347053041434236565634985491789759066669323417639769784663056908773969829330338536102141254805407961016157322407637763059021923420443152069181211619019854355294876264064429129728218751644904533503964698601176509029207688943286503520774828453284807292713692238744587823201636517532735349910716503495087746635317219000809468214253207647910915688090164970351778219347376043936533917971661858886598352785171941239721482427692386520164312165823689710439178008942096975725182679056618580995740371581064735468350194150743363349394001314646223293802123670938022901800120695374841822261700942065462167387338582507874682104513939016972438515206104071589179561428582968895045525740819741369640313513426675566075536869704379761993760858627465042427141197254671456722841922690220125526989052550198159796632691533234911790824800120743481983471416702916804357477254886075366090316051085554202791805393510778914083094076645664082119238774567239984962582329936595657301082787766265672378688475794727018314412283357490334297857586252497290181013479076330795517270168182321010156684499776240988622076163127705473775761493848013870789557583714231026776659849812338200464416466176308426902506919121070828055226555008012198328989776036538429270285553423684560261640867635085305922755246738124786768156753260563948617249219205492618139116144424303901783335994204806266697679438980744601797772788552808483572198109317088644963462364826917092869892003624917466782299481964339875191068353099371111543012424814175962733431159822978423597130134899443742859400259965763398084801411904598322242300565145809529027587735464667599234870837168679499628321165007689896623455312928009632195383993035775886588663616373763438090717683708712380744208629694055015196734472001588611957999888037093171437038416857443347348779289032556407623270511759754368284471545671252835871393069050400336931592301243289899723951088035007254268867475558333175741668184707140338529019159231407793091736119306344175477733095205108215992111853122924768333013154834787760538401811467834309431738232071111775289783586504947728809680859167041342567758656724426040741349317173246383571742083666448805894804588194517940286117115614959964139405355390579556614621957395722977496488150661886678918078319277033627774669115799687636260516338761745530266300319677148337674963832582854727569589392709027497971729622355569006728521471025952904268577828816473594756531353094027245772912592384590855105999273939616473882885935842185142879500176494722969697086521223588289345245481901723771986506662379601664391800555417976516723849850926260681891538953098624612459221264967762675463367692869494344404519094831537176181589470670642237410795189795876016046263717442898445467258228013528435786252406148018116931444829855473848437318424435901127738839809575425788792929611613309977225970835089243647592894101335220972149549561559605400842031754717394714259139698489344704315056253446470524161001260019529142043372519269724273069968393234161364295613957850169677627600889972198892208087087749968013807000994306883003613790412745109377818625665113766082959663122227423438668564082011792215803846887650239503710219054151597583883998312543766154738577662391207322546092388159682876548550562158906707510964748262162671141924726759460085256801261377497812504845109588798236528842708304622514130106432882174174216770316645496701985282648559014223483723397627524025551840340854138580435305500030097609447537257035897032978681467601874621030539653045939892466317420013600066904845112482483628479396780649365967449062649103746324499237233903086333633591462918610817510431072886572216759509017748888440232082551699428671469058906458830213413206997786111921604986953473402369120619198434079529030369769896476383678266292662771560774196151536948608745962061274397530755410734808228384431141782630308224073273245998631952952100146998305033724822981622352680631105020885591760693287660542028078313133297443711103789587549443448322810431867845241091018203703070925438421901309245000152176653093964649785633987309349480214554725545000311674360219421924832109666992573540221226188119282873959866630231729075123895950339034153434469673136847815127532201852812682352360079267376097566346909054999974983555988265207123788396099032523190627851092807784363731621852391901875638809902717592787913541106342567314170371861637507771405962274867873862735309410409253833976624347142190255596895924314268594202130884360595930900095432085890065805801608922872850569503143933749400061929549857577108740738649303277101505236217840683264336842912894118729644850277499292131678572127147964196734918947185269508406593894942569447085362837560157917676818177736547215578285938786874976472277731213701036403005007530365023591980728456428823087273890139058374803763800291849160692203241994257558435376431959746429121727404404431974008473760009046082524411155461404702300087198423816640042389035459737061447455592877142376642382106344090307338238014457400376149448480863421316736633196045230740490679170039170091868533952734059683025765777785414038182861462129064423102153910579067646395325536989005737659698918510364738575750461298921843223626176587472380523758675496573224808582725970125902574596973379456292865734092959048607166166668630398222889563018608840007234374529722050737585705994639260214201128430014614026515768330013057473385802816237258802734102951491895598177063701195610364962968485228249929431796188235135920555462654796339497342596132933022508254421746894490670550508595787627628244888899197215052821612269334789667404338540449739435702460147836057290517889918860707789586867998855934775646639262025256498903141282466714193525183117695752232785106643501314590830748671169743186906985828393001654487618410934037367633328136052131309243629768680760274328278748794722812579294942717320535825840712874412330626464574971776615350029367879950166903975341190835973505004907827041747910075062267186996822633827847441319265753106391023861539227039288239916488278781181345603458556719252447667871817981681664438572177216931979312867105342739006380230269950807564389951973496286596304182762419627201707972675729873369028288883064663054915950216656204131845258685114047524484322953261016714601040184040501537824527564094754363229929832553729276621706361666962413640856175955215815929968713871397068737733463768853789276204750409443856438098688756853401042769808430327302550557486040048337569890748823058692197493668494292343695397887428236633222148786348484335800199893218770229264890682099719837074766268531375738714767031148471375883600950102954391717238695619219357484871776142836115206274138278464666108016890601358542869925898835365964125095516505898768579934979361402687737188846478486878561902961735094409429473706329437358085667804671737944211691003696421979614595129500244668636466972476209327831015098491333985572858404251476391694785818507207560050284377689225205264934271565238195632370700154924525600197946283561538663608796636919167872592416694145698308569619275169149589125795063407154132052072813699502178635880861339567560059655020296652742799097337128157650066011997500707610728838896627156980836418930848042846849469011441011273620452062810476052559513732138765869002677260716550710497472329699715626761471087511878453808247197879875711872789570612745048729620996309638140913284474199608330708203335619359884564245994035574005209255032246837752436738875640487649784838278788010317938854243098575418474687933221185216530835873602936462904148416618020137589718102779113370631875172796446543620707534785240829437693468004103454423886116187355154223302500132101685995468645181382627322707191562710052251354232557202356634075051707571537099359812331216592058257602951504554639261302367517931393956261156727344511979454626855587067533786365510236373308605396603578067508809548327897696541515569809547557394305531451483233693349057474995545681485758993608495453159000549999726917378716287633601420036392882080852318822063722158696951804325255075982546872318956402485641802778546402548561687258524821264059537799332175151410609066118201378773529305513008613048839020203735352094005281403802496860474609928875200539841325915004970905781639464278953551818765775537064278019847860792688268855535486903328148382638878479008502713662054320330491399100924200347121095888159501953681400451216757247206544903316974687834057400579350646547792198075627609684702721479201235061976438883802624628436282863784557246196661514605175890931360833548500914703039854392940344041119307002002090510891668730547103143850224499327592675351338337219710198986376349011919658463985991010272477788356368184608967848707362255486374473487906702001555865665206405412225803469885467108351444056611042251777698025557748770735379439884915747380196236736393939290566302054517302871986551287994435280479952734799194404267994981223646949422143555501373508499680143414010555817411516042571808961433494074968240001193125068748101714864739997791364398535940374177274600964813340102027372529174463049255745358914699072759802050020901034949842003379884422496194809435503040835871841070255204137881189029963335765469340507561258396182735241734218975977636672951146720977879339868250200132862328988008467949608889366977854452112489050071902206927413134237651980224659062636065651383805505701875042351026006728821686599991964615488246335657130118787834947193411903643227758526264976181398414485802589770870876679682765202329018479613039404308755836972906109008823591053142286031105322028540839198857570324211517478485696562556585608566384931856997171750419525074001484863230123692602530736885058114761723273162230765614312106655451089384348731075930004504967215183453256257459620539585983195645147024972647208665593067157190168891441865270919224333650218186930203774557514925283033335522601463769177267125507618837491278707500695744328306423342819486839638421829302847546874516614106790875568096819220098608326324858694298463140581673087209255214248840822251768568989086791701037254686022461133222333899104048188104751331127821952851480033777470925996552100407442759321937565031136625405747497713342766133347789543804676807495010133768246324770783627092696924435899831704439612748538900721281799634025775537719641797472459652418594172538513622054988037327148309301480642572425195121789226166883066493915923968461120593610965395516519061716835864258269664287668443186414937870703840168322039925986919835877395203849378047939643353244680704607935563822065532945422658702155895139460858676940331986626383841862801335526893003043420433198074777301733132688139641931108717957285758087480905944083470861864710402998301640556935864383817344712658158338882319214329335312812976050185740767148011918616893283931810953620806371910285231913013222859383910903602823064363014964289631456751689402402549530436728572499107896556742476430710589280594334565973189114236413050565702812259552097477342109995976665830805418171032278090305971570289372482782223321067179071392561635341928832199078476848805456723182111027766453798909405806250439225338356015710515801448292633984128205120389168814134691471025651028270791696766950500339066424029142451834394033302243045228032800272631862024902203217904939543603927622885049511536481109286605222942039801438221576597997306790427417095732507263287173782555336903350981610866466162112682919640984420750171311924673141853529266064839183321564355942494330364432655782267910818562512771543319171690777406380542732631863656753996355316950001925878272089123381739323439584646538031316259207834241554566280038005273219071089290306964736712638728897880192963101121882480525287773964717339608664254237240927681095153165941408659821195549512332080217543943952875354351432100278939056124556320673016900884070786325413405385560347407798252757192985400883896328462096544839985906336301501044256196548476575764488045840076745880489553579053245938043056554324705234009329937984992881818142975641922383161172923210637163127858851572323844132809593399872821579897874692810146253758605018665052173187330209065546778227744189479910392540355245037333259166890569478027749282958810405596411439091508530709094809352020013578636152564995984927370501043525271284252046887888319356828236165480551709357936621467417260683107010535379496836378470874356139822969241758050092189130557409722576673843732522003220967531195970355280889686782898761811229497629803115410375253262765610737022261593169030988059704499905765945483687631266387840164602305538590036153907733511703898127937035772608478516791896200805772688082481091416867775113261309018554833286360646158725274965046245225702484623504794773467061998797285689362705152311037248246242784857693683593883113815602772056271664068294218345149562040312132444904485666808980140287813098422034576603258142842486472145289058409471363868034905528006152010177434842207069350618521523311009800757090601390040126437760867551575736282603995143098669692728063414418755497062090742787751964236770937421341795798553119590932175986248440761179601360310937759999094148204449693391704089856748944761101205301343746327598601308738617646550887391954651034616469528264996200505509999594861656965914098215651763831911124543488950333406212231974471025543414503463998362049419180158146281812727849680849360201460672640079980586438119568222271110664523007063691907090825134873719131499371672979458297430100696252089717799587264856577984978414267088932796571701624075428601310073957762219337791918527914472949890015419465896895247234592550606261108119558442479832420647714686534494969190671801314806568581069691247462734613691391956516196723278716722481685608590489994370092567874208754615924049488827424034340957084683049366515167464023889082207107039449265837855581694128855359114472016321519874201233237787296716361858825146582535857713828753018015919925642319645271861692036311075584522735115899358058395785112936204715649083370001291437462127566448371017934151100002013910361014388112419712979564073080041403960485060706086338363662846995273170464711688945432372742928520039417025995113910260543829713724099658565366085648977886872946829703401271743432409207124232742004150205281524238797147506722262693945611631630925951135174406946547282476960673659553406247055555098149747925745808705616444521176857601812149058691984510328150271325633462825981347520805077031426951334056527777634553230473381241130682053693519254647666470802681633134579728531062245158837163459777980491892669200604185049186675480546388497412503489213331885471886704283679623661420321047185742496473415496573485760817761780351135171963391279540297388161001925775474346392829932131612570249297747337131055785304140144967349262030204552418763347494091064227436988238992965981218631851438784703077630754229672986393315526016463789391652762931051670921795133435317401741105440767312522006132690606558306217373530813798529816564599685510352698065133922903741145711152717557297148662389079759006167943523857558994074320720808338406969638460194289288759095912026923186004247261071307154719370370840482795792208820553315115106939735866831869740949879553552952695748111463428259212486881202742155620625375822341793695784038567287449764750052499193713617303814283157643339088797043114172738040583999196409143720298823062502480974852612490513713404078017790412324220816294282619082003780179993768722666718761427354846434264331875257635915254258009348280996221899647539388953626220369518536913954654936627345388973027403030216094736010305150938590938442328760991127552310310400700150970262669594656396953113511795732393893078205807801637962463154338744295036266862326398899131391010087712141491293111161445916744080733722227476153850132911512462160667866200247858814450264341116371995617408437643799396206316888062313345871134940210261023285848541549657912487961298657423649802014217677404588779863428741548782764213404190042924988267116341471998265720508597598642806625790729593408735065809512693312860545696063257822741260407471976965341075506964881979520115849183870236443306900671548278102570831783780485409085353993990579058731907034273305259021316116900841903100457669163142623449351843050816704289659024531987088916536646560069907690215419049548069999938747122936968217133574461519687539433122894664405381267487765435523753979912385207746911328267189603600695256649685863231187212672046788778432131243329626847693676663340241007846054458536004882390614422366974231075137155854173925147443771635205313504869911229578723951718538144592410463662562843650865601814490901556560580397920964236647261791897006005011551218494291077227950957192752189219213944642930175487418004486722170092047211509327373598870650864519122985636265013839248320597203486287480384232034066605157496182999679221184423671068981979202513161878550520129534860800340043278613809091860233006628229716328443453134671731405177201349107777151643202051242011546698403874773259177355111514532874782687144687265445486141649011490017373996104062502995600320633057359855973653114823390838031573570929976842945016951344139297733765984459299565719974753054107554452111928601589361494789583507122327182540277777965748003338355600672100304237886260718372639307943734506469777258856798201269374572463208864514769127335560782036465200749862836253467587579119772032109111319664858618309594480156799391436746483150158651554860018632426911566728851172878408074330167666451953851173100382141427039916860466722132810345265549847993409963367928259345205727375186655047577845900463884192195785460177412849460092486480868871904692677744235518216020229349535628254489466498058870444103401089734455241637218930889939937146901524731045343090133940545994574350727268802147089785961798330813608582657514671850414765808500571623770315351974338171345525097408805166688115521455634974181738689421424017256893850618713192382675007522037919173273231630669001795171082986107076885651445708836407850071758696025370092151150694061028753001282725369258517291730575641676704293868494437857072520635052531346058022501197865815769483774240166786991756492976184754855465187102284567082488302996412106915350665566596990201660976023738684166645083584717703179012605471754680079841556392803624137802297322233734640520237298319473453584247778488455132868552151322175366223404536248957762575767308054732555190404846791017667657559558664364029755269788124152934317327813189177903296837145290665151507263616836525637205628451575374139799892344480849603690674974270684244934123162292755357035524625947918782570118819381298810936661693329135428990699072746678340519770945543189116885823328519935178791262096169435490045902740549218070230587374717353904682966816755458840282254593717127291870454314107269751619726149422486048359625756588200499027317192105642973677692265580646499535264487235359296326639220238037037508583378111283099374008484264450394532714387161268950876922454361463762982569283518424269148750511286759869329926400147032271443732287303474016572639024035947491567528537813087709747434040522327787851618619649090974093600624685276666671001562307723339774325325334252251428648843789327766487999032951539503441233423004577931603758429549658230623292397846891281080610022150730562032262863846697256955832426787871615314577880126205390301636967763200031295067723941236381511895838376346982110823437829465301557728361259002353033838474421876507942163343982374932221267956800566797831093598411773935198353995355824532477216503801684417287147808487931851146542166106880950294291521315621266560198008072376044653286244707999454315016055535008066160020045475381361016666794039683387519159302012307661549772806673840285011989229678358746670516554154615692925577148800993067367528074719179866974691835325632247115864515291813966368452659100770390222013943120689717621775658183933857508202229565640784438509720563697837167416224655458112538905922735030402913341176927601732939646417384640969860334057403668707587145001690714984033712993536725673416943729382079323574916883322391963258624684445412305682533309069124416102914777544581806233981434423936590692859962989185735839462618282513243621084473508221553793369374425890316784001821355999291407145312150264757576922282389897491511395963805963472742748067248986555457081522277608022267906426935930058914230115479834334025085621283405942914814353812629100062180231637097659330174207686092821066875312020626529665202359007343465169028695483515832423661485201974841268590799999907763672558385881123444496840989545747433098251478267722178056336914827167361282891073399688414042059359002623548760988608347079261563369235094267303391188326679893031279406031728591487424322556453968796897509271786445475068068245202038598382304021609609099594259974607352712730255618568572787774734249942612508703788111026035421283629811527104195294312853322011450309803913968993722727863878292493339212100835132278736771713281296137187446558558758847568619704403684054881831705361117724995205144594069173460727831610380052361785230510917635718334794554218750526648532315526742882356282975312622419355677568310124430107936500511822038708362117586983248855250701093614219260928906128128292757284096613381056922104769740256441072909386162247365266370902566690999696661827592129585943132135260631126136737367046894969335398753481659484328713311640788248164240552982758696620089776877917552659944704004641821057775004188392445002990620607111047637060185271570178429955624424216716055829936840817292503681655784605255394232894450121883438426554959783259378340317952634107653649358315406292357131005147093705078833434254899486867083498120729160650970400574518388950544306581634220914456315634495678804467125247395268272776381417908976258456443613806653634923910333117459869480269838121308033622247115839626601642293706183438812884239121698416386162152470205720761933237734309540861768004623275257710127462740201007257667552139927395241300376745901705140564953922243841220960535662454742365870268072267332132718962516984906496641887388690740576417678546211203308962546964789737821748657519294895131533395537576330104069295349557995106784560125806143603532037054290159013148128372467599242221235079947008447727471332949754045447188111634410603936912460935621909608697788928435559925287056170782608941081474883082557784428312243541672522683342522140760861844233942745888504626368695903300920688656254151227030365537983620663426994183797757598425156857235148693841248821277929282812506526288138645902383157081118044686087558541753608526092784946072425808482555261114916372748107524676349681165419428007854007959583200680637674887077418046219039180198548334004300791360075774793894433862065686238265774797772255772884261219474721953795274061906152486629705088862339146548594639606689376821777833884059656598913527464834586364588685694995681969589918182150105634839819762562955994758754827961937586569066114920449684502272840511623692159834930467935209547922907293712023020957228113544249898108954043281698440806389193802670466423774770167994809561818368985166783975975046699394708147491574271835989382641749790227222010210871090331825047206648827956986762697824527559895333720523871589315009910801273708126371270504822871518320082974464233390619083477474764841304792577122765858129403517504977543758398453927431058693637011097528473035000186976092489570790219471208684504303320463198928003299920181457418954361759437628758155776456237323109074173291256570385792004207737435537031998583614392114925394418636586658086639649869325333031832192415327089348607420248982791154327195063615896142851418293182895825837141245868186796321523291965423769288387470423397013915927291953970274815321087631482946152150926263944551529849560153918418998576873538314836974126757871071026577559334363098178480326425751887853720435741185145752169679791797198455295734209854048984437888485577098437384776054559862069878353214658755220313505509128073821099823805266638692794109613773139210772840972880899659567832926283926271745054249741390527314705646411333851559132943704063436664946317278919662826608159910721015663822017243983453228358791510613925650432226682951553921156243732529576680544503206885803062833019495955164078310254835336695570513907739063716980706963776701236472888595505854440370496844347438552829417859191013739030957799073409261745269816769601174174297140042215014944220005139023447357069496870370901628232038594353950212767575872339568911330618483276068039631991188496508612092525984510774175531305826501998535859189947945511796736936575881092444062509609303414492529747457122106178054790361561175819778267514744404380286369703650495958625638645148782205328444552718363823169814486950342541145984609252402013066052942021450414522726735485184869254817561744926591625232494550481215921224843972704661293977705756744327138394457594591822751537669530830906107084781175728295459442418157280047920702555656047555909585752950441118361019684478204426927857230871724605342079648639129490541792620000225925086353290459089231993713346552869843623905974374516686907433062265652442436744969749122114415464157366546656389416022989457369874876387759882143921438825274734825913968579787366731763640437947344207728180049080383427126405444267789253583823735113216326322640360004469643546331504956300412057700329446369351673296948198589927713843696731903252829581127395059095351611821821474717491880762429099720772067368844869657002388556729900609063837287272921507223827556395601844314895420746153630535077837412521753518558115561277061631239227945127505249991880475141703331681402199425830015113236505171847151719370901490228793603122748991962689684473505244217030084504324570537106090696026127765695527975003154082297624898564048557925458561175137852270516365963920612529245255170471062934530399123980177926864965339452649506867121681428957094495323032468365432026041522995355244774819533077999082931021298952672228298203747465813524254891201361515069088353959123668493837519944220923454735064805461565798799098692228602394962012290404272437604290923514748212059464868890930646217390611970159434307819589020073385004043650271764373885133075917161223172245922519261211770916577277126304666438961318198456747058591705697229725134496997728610323381921348179726765970041868347576833420551127302169634262540226042349647256724982688543982262743217257583960286495800120688950040502747975687151654864617784696291038929567369132088707925202612823427242626494371089458763906384652094298873127752666466447710716132917759607674668679192090760869287002292740090549819268191535413280627908070615233803642767717510228527677032481575719619293865581836583577151069959429549864646251235449578394037537286906904700514199515339737844189672182757430555307354803544291098513472578897718291376149987983418159213925005756318655447697994663801594123345765907975689267181554018140673976530673066140469857632932940682069122525317280646147455823458415401218558788791653624499413660827987956344276552896643625306019065866197948274240981334373954460599392166717878064475985653637253831687462829700292469662393682958513758588680843722059515117354321571536113787752780563598328026089760507562524635652269433457646206796478335162024661315660611989037403701305090019235643638313951743490358346319378517371829921049020910904311441698748409369189847646654005380027522915546525207876758433873077552109550949447030058082187925926312759999540165173489296829562414895533466159338753084853033693680277375273670129337052134278888597954297147192993659622764812251706808498430804101908155140841299246188527035588280387581281211500507842458960992368993439490169022526258514197746187560227845421956218466232518896653822004059182569808116141500190354746309883901641833443472220407834540074637337901709520324952818478037360402596841738499573277653490052189842979251448421564354934982697504176514811132650716813080848750112288312929885433583088595985248847430223163098563218392051782013527032006174669061421277096340383881423327601590825174902198807727332956846596965723123331493053588789748456822634583877135869293866256014623011629852471459906449459575387081313510310255275832473581743072346226949320285481826344264555235255302763376347144984253992877540611381278576318030613485320078677039679677862936183506023442207356069269090305963213747702852310073741848099509919525179899152284320633771148944998888719780432868836558555205655158252435128689464238078019890875724403176555754493165392849735125162416949690124408389396447200947872851007289928266486697129186120151560155116629566137593559430958459550804266689198734894100364821625635174926217668708877718023891330405370421826030683532160697576281151072106125267947509174581265329127235761625659169077088304575442495192661529211937531773668383394490801569789646213838280318736147045688405113009091772444634245876271044443546997889350344572442327536056226648640257075409473152727603607910658367691580145441546539372752867701571412314690801042104971911445488567862457982305684691619745548865202372316160512062324164568495465908151455003618740999197133103612613815870926134156281298684300360384426196511319417641888235846748696598944094980035949835070506451543853865142635693654874028407083617440769862221166635200083911924281359019287833387848456262208320710170106572003163438442370427334641307040206719042278189163706015475943009699550065451963375582671040813021486705683367948475824432648968038093672110280853212606158546023561727942342676399897392946836666448914782363955685172992205478358392826207193870490200740133506773954909391253883492770612477898993259052504808605870184344286683791301251060846086742523141719953373611842671397398532001481406781531022675978860876656256881648773445918244111630716182536996687107855077958214111360864650738099959266532298849361509238849674482399859072403667098763783570560080930888572581252640915996648179892494194501049234812657783053026386403339878349629731737007192388763672947170833898217657753550500032084908616487817140217107604945710244782439650982267529276311248703268520288865738073890012923209019828864897290592000530788829164042123231853250061817829768853447566770948177863547680459633945827252501089479512659324387591037403186649310871353209220501434983664532975594430039598938356930698812040571172067401104853084801498392552173184467145488610431515234125558258658566051229339461494100327867789948779244592201233452218536487201092482189842040879948262945263085764317144139149931865977263638054999922311881703141448211675810101066270858807841582231721480034328012285594141218483424124887158624149359002824235353834502670286986153296025003023306125305723003156568285209558838691471577967822672352026733700287971422536047019956450407196401698140345709243579877680002898884950842916153613053864716935829920043952806294306076650856786110474317857743569517783568694010290136311859495023973582067672015791053008462171110751235403680394419020864437106123120075980422456716523144900710722484222749585353453469542103275269238704523208078039662725888725199405058858866950841404200404712790649359546429725355994254792114988550957480730921494247706160651494252291412938768210981392216971612753447206863335406362982980699467576784107665724034355723924323650514384192003081531078264229380310301983637649430386955989181433086865550853221365735112038995586302476175255008599525256315124055671874463963998129145465972599650879093377731974480137516444088465413541214917717322877861624032092689369813421690743278448268383567030105706817599537427687276697349562914736555284926001350386539529358786527655684918636674046727469861803200887911160071915749100691572662196039010398581174497184550291514454253663691871923963930401108072567421949924798949449659354777814929424412634189599939491887573591573417897089917871958412559547435660483455878563100910883419768025869588106515869812934607640608810023185186826318217783745094565160336997734893189852635530959037509442597892789735030194512565936425340235620080534493742908897498021172730421341041483332331522194911648892842214729006557326813522877262926664905865388026381202384282824911489111762177678215775032968988302727591051214880693261467171907283366514381257387518026922149861606996514851252452878307230162684212386740430170869324651541934718381145267612898032239400766960882419918885186527946600687406375136833078665305299766888967372192156643812132170577563650898941198277751983333791584465234702610360581641121081834360664147070915107595151436755446127478367043313664787357102971971291228954338893012335932475632426676807106009746132917604072206924527824741535346002740791618239822457637617709324994740308853597273758567093038730795248385433755999842044597683091003992580993168902610532422113007435480775548528699595552083283024936939100379924564857296910999287768681986847465905114849359053495480652452969253212558306183117225903392516136990676340953454584200747226623834223441380107832165039288862053320580156099851290678892016864542139287834251099741199684505202733205125611465502458959642275822894057313440623190194305542229836664380044382272056628837304170983993156115704936969259343810408757019284113291052044236028573334687501565670886537385687927106764957073630176294137985583511195080682421102840227829020276495340774703981652985640489828213579844768017556286768318128302469732605409174813333482331585320105650835658765595804764588738812086971384496421179164670804301648074690791049477536348443083457227484679697045057759771139592037599114477007712510690199535451257387881717166756017606736286822079264273528123886960439438315024539844364240970120589654215097991050035967948260238317406581741661538687129013716789656551013441529336495412285418681526830835260170649986776890871827853086205549312281320211573698363740127474509065479434193881113813020789222450884698756044580364877155847048405144137819544029536303742502400648150664349530214459529963154210871587245109429621425421897597047663922851247517147184378200639620549390214212528740590696747986802729812980850323199105273148963503461946481030445018392668019411809733468337939582622332572100154695242189257338022074814328953785980128403611879870606864840733233842944697032670797553129073712829792961162981113688239362049513119152710417889482805698261829762238126251527488830464358439320083335828992016189239496484821981029187154063231015431985706539880954395777585290124940154130398725916505743119717410048206220673035672602621720076344627990483125196522178767726287890091964854206080396320844337169873461563766256589709179685561652258080964204119000330566670851676315061895679508751401807436283477649698575939796431990461183160843220348176353689727650659040450753353537846890200175682244759716683974995176856686987212861247296320807105051274659829790697524171219889485645044806603505378200897623544887936282220758111869022409635579824093230917791782150583354808451238673826796359749355337439000777360472404775990161608005251191527077921141377238505377465628850607223278067620438468245874609909772511896713577410994653586462400166554501188299516872505682663403557960748549081130577634505846893201309354117693075842436486946228996725850729815087581702899018251150180100717848264551343658576206845668868611332367932816474335533202258927396272942501862414585280961226925132049834832888575007700859564233278585029884237822483261420461683479781316603493881058596498690894951773123878624393833245773462322374623764879717093118760195194845018005660165567112898439530788715217830883431819554352435536826576224513285101565893214950872795941935763906793462586908914289741868570215282662205741050734039270280171187997898100201525713989413780580533671098037400644297603507247238480373420273544018404192693910417161316162252951357273666696526701944514360070533207374188233354122913206236048940149310091079201906966280864366668147672461909370989242386390846966408994292493627699951383186536995882959277747243641346184794981113439416229609296481363502943485299041236198600880295588650791089403790272435235215001935651511839115188170530107947372404536090728934865251562466474515444242045498191021721011826440354865882514215727085935269656749889359038829365810622060004095491109196992563928905903795479921923247638145419626446921581812430588701598839572123248177394908008556058088943705961193649381632644990073701003712334391777547033399556981493716616435949167559262898570926130323054827286780075772162569924807955341055937135895299438880691059288853818850351908867707188879951189076786983571416849109630979620613830282869980647135463551871996354402385235779693504906265695246765898557735294433995801628987744408057248591538127088534015898751719153272558062336823997322191304829460485001495014476134496155741378455420143479722580646754211108419693047400438146117783486536767106869463665771233813642159624012567167945661395916961332682898065527533010469896467567977569650292770586339311162904617602350402295672518289222809816373503589500846143121270634063902861548240452306190690838083569924948499780273061802699696027897069354422551270984772878365508603268218440380404944685225745382433202592391126996761493843262587201833016899435186626262195755390051363961436253266776060669905887832276723874863185594201335233233087420050057520433797728851704294186390058381202992233212761681770002190591670095120947604821197424456122968069611176152199958019389612491824863655894834173310195915609831130114135653524537657523707088296906090822650674856889274634244904558277974495096120570290278974941500383742920385227331642319983840581610082608103156958185421281961254525283751505931373749787199639455754938018855194721332740743173260425985410684830706094679617122901922320969372821045235305357852727138855814422602568276174368367569933534382252497528256255436710346152448749503284209524823536913841017110967414444421779115597288710635768479262388763197088709593917050309015578799511229845117320064744779857563675073845070400891267182377274471954766528008817054216224938592656922779691386576186777411683765989950631057660339594974022736830973400245778087111908040936337897465800066462514538340385705748456512809114640423496750769437593041981886496948795524885951860602701848829788959926281653267583204652242793810326863904909760822584851889106093457546203378043318916881854277917778024020079822339920583205206224123201249550562392359706562483772649654828090402871790729146276807470734735826704797019576756495716416500602798661221775079259190425358288457638121042148043250455847386488028425670141024203996002654891435120947180661895716549981798905284423341424953964217862426024250845739457631209808170019998584472367076874416026192487046094207786860774051913524268806685191145596607614073410400836781397573501818767822319053038950998051877746506684789083656602590631467824790259917750821965881710416921354672243659531683603579252229189172085361822677950665776833753011341115381340064477252462955942740271638386073112428073900675388813512784968012372401329453265341529975085955608131301736628249096815941345799884993844968128668570505667291970714915474555752444591356454029224675548220333854495282879398023441486252835939797936926761109329666530653760986309257694288086175100386848211854064151653088484507395960697101041915156578059855561387541870657256069394746758070500297461760047231095787016357790027395902152828969932458247654920815904853155085022935058627881420652758466718541523419528750652538159343929240903332829352908253117330631484443243902945847086307832619009712168613005904516755175772079758499455052924824460874963977562646342864100232013037111351792685348950028427615384934214137844155202180423927171406421428248856791007152012729244787128515709059374672229815402126563338442269126008648145721010047467586063832714182376289075383589683049282879516702203540090935947628001132272573491299539091744565499577121707620594172483638029674442820832415503828975667579656689297920141952383466003233051053538976282717156820095629648224489043673643568210832222251283814436409042053933710678188528602279120407738515747950582942091126411845305392908358312841023086500931900638798546223209569355864723407639477025959280960232357104152216827977077548803442632995178623574950842642353201345439994655668108167016899160064838134397145320583777615841654850360242881058120504158497162054770993170607544262355683776161585777117438543883473563198518233164332573053659252842207947395211107501773253334924284339725125506775524064112977814325167203717420162367894764093472453609687072696944739266196256627624195679059136378576817734192372041177242911614222069040468343531500920655306400246880599774362393162958982196580807549919030567520862193875180729500368239932410900455593535351663331829448750653168373857066075220777971039812721156290828787535465079161102655159412784890308950605928614222791556413763393271636028843782415404481260427012762810087203501871095037983036790211142798560689611837366509663777602966991541068624359312592397778226983031002849704677543456195535532982599559113631220911246506537764320327965386352600716864754661496771328920794688609285082334044630840358567384481498119330978082812157385763313663424003764372305832827275991730051304164886593207376567568669976784485892793577735690955027547098146616000842320847591057149982491211152775060622818343069684179835473194032206593422819016330379061752563970265379266014939460820992336067917647646446278684911559648667742707930385084033160818688514348509922160025353811682531572272639467419461741865241282858437516991249279868210450442262460889787338192252031936067985174415861833321139333404524337971486416754686008272799329354373536130826643682905585998993083425243895402129078759189699750294273371408409690282998347946942118473494192620282891775984014036221279497613655029352045763392010141602965771004504030036548515002936615365277159988140025002629479716955837381854821042840967970757471379032068038289717120883055921944897099271694146753592735607869075506086158661384576023125136945209128443030117479086457008145470692803864761680190443238026150673402211708723545352130739794950275561610173335573472425397198519179567169558619329097081717872873940244685350255786014113089093326868280007618562362957890671470886935859711207968809406395939627016412447305751741861084327976694272211887633379947837615794714295295353484712963997869005715613828032685391544510454563459646230958679487995505845730472849752894797901349299478093374399156733581477114937025990453430551894650525233433680051254830948838357313711815188555563084595461288451671121980222882186650383831258061100721324602137013841294443932731159860888682139898685545546704575833676731076477797551351637022408728295787691527834820775973430172184058781519764376738653143205783982213360378505371717360870892577434100897409246583715601565626171224066412552285748234958407772181039028081323329811587116465444143136111344836450279547532826318129240086154812041470706447856928036786456714446347742104893419673324790780207495598715859540586649757193964350317616434092419056929722358791991359855312641012305015448669982170128346038334064573310773622060665248003326541219325217595747675626239371165665370087487020111969022382016784398591995701163563241305925950483671759957748644970004732756570657073523339092243533654338918953948145142594562340083755884074044231404548943320715950484218096562984451008694790282834453037277895540128893893502567261515419478245928522848757010106511087736927762799047200722719538505155066044367686230996899005205263716640809049442679272732809036256082410436523523460060480918003998698978333157984936925051048646040274976575424546601294282802486695510792134774713342218427376072180401547413891793013544962568529814266847944188241202519909477952550901314057043660790339348291126173387684002672926983761428448258850854097569828366809626352584920406294058359606780366094665665813529124669139635065628912465662356969611438455316525673720598724045497379541823411062067489334742068470769798478247730016908555763576058047592784336985673252969608717916795750989318735928672351099721207347010092992440437887636420902699308551899594463210243267279701987257369688649368477808343356166277170388474331166453217726838766662410304284751389771565118889430285676835643088799408349571977889321427945035071709907595759101500034916959201336083756471325628287322034254068172834868288652131410729412051002618031493509753579400744966973523715811643770796187165058497896976882470106650571567728406133597802455892711648710251925648338149112234278650759666120595075720454064519011233809904398335473696884604073746178006493424249098198474515461525190757249643716039057042172767614919649597052988892892921620747733233906476189357543522341683909086452488669871560239438433100492465193371123952469195753295224246431813860446960616668107003488310143262112748113477094053722084538497175722247939679222855852251464928674863856084424285151492338778787214387990441498706056483692224913438176497161482300769949419410577420035431396584381344991152710330158628875883395216573801722971004667444937116381264476735406117467953879195531691949145830625790978986390765713917227154005135193419375050949986559496743455864294470584951425974701281718203899436386194449001330669426679900068007648566355043740113181352304986020862248535195874631031772937905582027866485354718242703211058556546201789185863572331311808827243325505158495433118621516323930001254061663595417395287310239740048612891528085486874481424800939566023594020511284106734747621822827449407649738823474849082768610564484026721426096464669443828950989869080599522809426811014341814982140900436072039944985627380884775801882727413842804213035082352691532185121175779465839456402956069248531710328947253332163413558020228068814751387258758030824789119897619338373518321359374253623616854092505709371914791665792993255344400264717142790095434289478005599280972585793635828771299441579945826921982870655808090714899465221220120138586845344888623422373114470173396488411098437186049227330545135143891008864939286620710213845921033036163077157342688221684100202812198982421137283163352377343119763771935456149505841980461374680334700368093046267035073036709854940914614726474621856513406148360492689197300075142751882989521787349341407986524697355990876502802274712346476130073974304467306127905381996324872117656499665015166337604153307598309471531792554150486696779035940121894282717314291976557805637609636570509893693502571138722261306102315791539385390287733110180495676199917325751520574609451353586037526985158161602934892252934641518816223895055395851625295015451533956857248420055095441294492768010286680639980749495168470490295313500472887419071873590952681478914996585128845103314382939287063719566443881772795509892444363375293654537624903132155816839770132364223820968695940240467686399937393060950668243551372383423028335257722100756563698478282410657723580596094391630544673445299912023599525955112365153361680267400608519752269239230810784415077350945930956689685085659180880891723240162737517138709442867141980923200929558673267393875009605974592352127783815052174228368254026889717648782868091946543366026828270649264521981975383024065151110346523761752497327535185104558030052266063581753020126499718604903219672635439842401250908080130180029154061583367797266561380291643011083215170959165765255875502748664904231609837178821351658855493343576969865146747716410580796330250655736606412783161709570477443573796798719181008874081696935379510560264183174609822130620271680081976254247692532967375047266611438594509006301424536103336394272829931900842117719517762696898258605428473682738779036148203443256822896982006297418896500169673852057359247682334457263731323556492078331860627128100025317950490049683183605273133775004705943446679257142559547060573781886181879159300510442929753343294853098673604418805913023648086021748875729349360996275812448133838891159329830925013269796698458924483596123204707196755519800864260503022948791784346092509488917473118471856102821996761264814704539568417663855198423431916201341022088651023689029620195707836552491489769551824425879794599711079894096808330961526772905491565611694904178842963327354933234251467365869817179531435748401485079313523912103832957199718283265074694081447971213656423318159019155141390029359386646183994012521861688200478614800698993247383701290861046922193557348247034838272997261388465230135692278642045677136840259506458427666569199924177379304848685260971296520519005588733066571969611585082057552746828157992115944622984752871894928464617672673092834562208085390165371890036695854844243256689985065363222702085648530669079875404627365498230986820995631312737782650920618790966388942133340581741154227512189853745968978418156147752645993789246436992499460603705555247552069275573070600109679445151505100738913195199372360033101953857614083375236190741531617794920193846397080104511555231104907182865326539043159789142841771747585461603622617087744106903525108629744933956601649888612822303702239362306374485100165849865714716024254187225114145326297128464232890415949996154978716700090083543074494094905426610576031318321380209247157335179695506573202291624575522448364779174150264976572013530708048228422912687368211552596164502916155319814617680168953381731255502180501589211250427580382474160182661468770114782728132714190244511347071239145303414060044752236450959276033933237330411496689117688965052206235382242708692543810423207899227168952979620018165619922615834446514835187433626333955285177578130224417263623953203437908726338124595267717438928005236057215218438043979029406528251647472697776667474160170457313579087123771189691874223812096127744006921182021996354022974515415732171580606795473978311047229527132152973277625973654594156339809524845317733325708919182061209681503047062588994953133639815493341604878405201950325567365261987142311035793289354943984349978921497048367937926422424518664542059280038177934853911367953596139635495673429973418155725889559271274906204543314262236007326843684028710686135213712322029390999422992804216174475731836114401179605704577817075000388260137382279976185963482541548017549328046462414201036367538951054912949256567960719957159946021486420486237644403863699243332401267134397287309259481598453300909060101157548102921802508241199762000982612167784273084077590419720595642262978217224628646863424920292126847623801528771798596092739548178086177782952439298028381978169693665667114164757250573766853333694214639176160430128496926387279562757189284670278591343571630574758175951995815168557148204510920248142201417136976601148065318304343124839752412940862774498832736305431340192386926803350361521658116240362368511378411354139242692044362032795417813094350144238535247660274296371812297860173999510623343872330806221356634902195135175315054940946867236496203560826532813053405577583343378918974279272756823258279671349598061551222954314395641197687455657211937525483271801293142822310036255167839834583707472352187572227578410462199596598780650497820441619984637273239698726883955400680378799426486313255950801092273646827147795092531483528018362249826664324249486633407013262183795409237056530917384160910581750886228670967773614671307298679158918968054212035705146091761911052769110938192860146513761289141892945749642612444039870108415602913129572883571568599517075867668831887643895847235214233553445565234776476077843425669301689791091596059305514869990312548626255661819837211092267377011919448057972468559727328819208668874867647303915289914475890205387598935085878266617066355716946482089674464848689616301056159245347147703019139098708957280461121815582887169270808957481396405202541307252901804290521041529236587457439572227672862491074603931805104877836705422214550274035296648214152553739418249060094498091421754574988508627935256691849169560811347637991636078009399534528278483055368450123353279598898250645482699551725752223311814107039420550981693196714518869137202346613636503597657762116989464821320969820763065684404691954060564512874959435682729670779914506604059435041532966475084245076977036483396483766155332128573665596719513118351538936938924195140246508109004366426529838263052507058009274146287282117125186802489277606182007644263340209919248645685532326822738890902362435610080765296117230822179191336378072048946970617188579324371456579573832174495429719004497098311278981468186045912447962097916909442668246495710973269846187912655520407003120638588187016785746779658837151084600450399322991594699569746196929171653797438743480143156452774150321640182974719946270184348309623828054406113504734688958441593085662212494820691927226906102358790794038185854554481540733834811172621199887263253218217455727055731745556274988677237680473311189372685877325857518409080454872585799448129432731170839036037546527844613894810885235841383057003912623769443839400770599420427054216387068307652712779397835686048227361747401515126142991196912487592710465013379616403428213066418183481324876489026838253792815304373987199819423293199219230816133198199487890931258420662237641008941609520671494008214462483182628648112067891641819957926597680628862835148675624546488040947138274558864616824349854382859642820005333510329271748457621993685767816059117504150069560399175919135531531311614616674658473555634158643656518390155833313024432843710008172842479321383912711157063360907338192815258315185098224587267146813234342417818396499923787958215194206625541004082971713453023286252532987256933821975475968067937673459121608119597323410870580411927898980030982394120949240307179640261356488969462674311550538815027182903724935397162961479320835214585239270403751237570065765357168946456586896517238488165388242378569938719540599974841134029975649636616311388137118949514483461234358271228084408628585115400020852007908699989135275234176582371660677957511699606145483736606379531498513302976777228600965647472587293093734263388074273405520451059754695958919396849508867353305737899799170031506712549014692906182306608249243580027587795733267699700862048970307466250653976008868889521263021615161624168117963018408542185954151254592635668971629253243720278247476168144285027451052793457227727812569403250067206540542022538030063411413271253377455008810089832325748830311962538345744495730135004379250636778647468188020976563329660988567573136941887083494663629340369995168049032911567213400802349739252241887155323517710042659945890947522267668577621703646128757722186520565136477536237157492265273467112570583357768198304062367136128029263684298249279398747034721573807778523904895791490611703929830381304420049581550857524299071247906466589256293037829259463675658003879834200371091035154146739978820382309915508533214905518063712997146770548201704428310898398507640810598735453850395787131387584147162529137167202147418275008768425511395372681611828422083332135689386840881023642897237363154601791297565290797292529205127625752762748587666759350552415796680267013086663253914027037363915773465820721076921154482910082437136469979408121670524539591340260879827317980121245965584570370158442527100748034924367352055142748925058077202874358154743823645205973546441986213964612583320627226324779805883516154116864956249768433398309418153387609438316958491312384791352511526791782385476600986962407690981536806322247394657211302202727037417132523003748382722794029347157808190110481092543016048108215191132663952970611783381904179473114284310707095470084833600126995347550416057371780370095957013842528946166954659833535586932937557602093570229718636335608233715960772474799005609565962992074985155078447452318508371862504128058052108726571935958512338166181448687622219008283343390497377025197333347556342770346918885674001278320317444823333196614114879588457145232620700036311061521810380927151032353273429672132965765927883089478186157244557056868567659006381008665981302571219077722469121942341636977097148181786268483524606497662017358431285056207756145564801358945690773531715936405986033065201274953550189066546794341628315289655337256005576247071138351537702384360032123202660248264664833166000435806018725435797541346930156929612181305477847951358118725335015213908421812144199724898095243015638741431985829647689962418890270029429714791949373546511391316051243086966048369509094675189513457147641227951384298660960153050232894570021124904668550071301852241818713855845785845834587198704495069296122815504860747284787484393550983597034295997217262627218972645505996224033580467663539771587060675052119899925264240089982380621311907184622169571136636961305000240169917027240534293076386916943585168480172645060660673660985609495856165237669206065782031057267441478823501922768815861957956589565173266192711237218744639329268688960829921745973746857492884617440325489020368222740428103694706069762364800750685460676225080258636598721416957648240361580571580877545390797877815524502508586420792790525010547019880272223448531469770963157260322985108408813199738910742754304579020234191084674264670615061379261143493331967318159585588621973825612483954892311640430810567562681311903481639635477967189927652356006672844047170594300142889083470268466794523119824371821406950239513071894734394567044780035160971991951629157364750299207328530253872930791090495642226406029905837927087992135317488285297235126881040273930790487203273369485594739294346050448342058290253712745092696668417336436863478010524103498437505868562310297935952711586034830787614073006093298383884683929622760920504574737605410314017721453046367877555387061942909234704245385123224057188094703093821659866313346860887628729249842649449002871668294664721682424288551848101754333595890498639690490085311877440014340882211772990539497776128779517697969254937033071046586836654167662977780139568261309999782480147061387101744466109915029531672941265508465922875321693872578973542566374855328930938351702828117363494475251397460618339385077802611265954338052266490150821426898933491214249259133752882774152746806073825306782187185490599553048834713452474914814196699354586807109340543784737048582176549633617583433324091172147595004361319862981561587756071876156364760932520980079597436792180596152939388379091255070917799089840511693773369896050841259591281111961264515410917047490160458864458168262571455209471009076329174857456451379794866232490541925301476603895029295188230102040596446522621182013758472421669576578640599671757920262139463360411321161590809372539564034114762298881160152521116715079061080842001678798260255536081344439709299223062743175190317670987430863136810176117273450229609470826817080740869070374955137755954152491091165826949166448986113605734388597461706022718866459221371645226507390917180633103028757076900718839413281315705634452438882025804197147764614707898282056182360210087540214447504905496640049995594244791103796682807146063150611078973042233925538253614910484518542453315951410808995311906483545210995616712847998643058011192050805438778685484449193636502513845144824344887778346168606080630523486165284579903815809811348091479442058604189474772800729691575539676887174862306504608699886816623335530991441364597064803316020195699670559098733954535462518521091528360298656984742117355076074680414427608270933775136454536272549423856478548775187709262793584468267372394159814004397786321292290403976909071424999409196176811866309903803908369995237941353308082573303056095122301631109321240159048300070199491652263108058358685531187534807071528029698352990627627792523709730432734122145962636028049911343917342352556369797051750269709926403755134400640149508551351415755529869816996305932894929232150292301837508693707428091688534508218710575536563438175578316273417302291859815886402994258051931202497680946995655989084837572169751127202219639563921472275013061627229602931826052483730338895124870369066355753265180682434191805944161636957839647690487181572494142341578013327812751697353330276811423793943229805132590864356960742746793032787839168986282774797704571885428841130237992618038086091265181410921136988675116543533597772176680823219134105567318664548883223920407972973783338857350652601287005221024111404310862529595758889433367914544554004210407022807816034256576043183599958931415570158295727305835419932540088509128010667300885723159389091499876992476325658588802062113514382256066666646202223452867347423511235638232182052502776534423889719983942523681235963021421536810887449880996266622975794455996438881778809451435483000313160576743363503859751989541440961113841395500859124136641769391534862692282858502963406806915133340692200062904149774865834656762670738854071622172117101320880238933458446752772841655470975856873467423967361656359161083706146225003296496908585111280274280099904619996618137731416227744399907658215300084926984309464430269939044441965189012525404213675320599809950185396054021516971263851144670060583199649857771291775121456296802902554217522548360877379332165912968606665947675450196963128014234368112212095868345146231463078374238501348893229801124409152628628363458796746379524637353122057007410161053792541329335051073142255229443467229541933189289660054173802128644273744979731724798360132926131964189900682293549392888871380569344825352829297800353498156393759561862588682656357226357632669147748275088316178665908743582231526392319720511994483658951959182648854181675455291411435397482992156571589467722993499142515553247623193102040416910842740897398604695165207827408205482623515114125922156267116829888038965046257285151205856827183023562210426609494504663066096393702931613317652185363233013034420291041217061602952128425803025657062228979737503639765855826563752368674108883423747212782806491684202002740827036259319717001175358824542515507357763402665355431005521302243357305974223354658839535251411229361422472518895696522997805955458180411185728087484457477620234776475704111476443430567126588002305380683005051574795648293172198548160027105209436434330038308119995749812108861402823435768918286387878025353030209586505188511979073048989970387532341691467840318571445104445641353536028946957686765555441845668304306943465605425491854892247116686590648545035609245678105596574458568493760720142162247828662666680047080705172611856604624726044556262360866710566218410110688549877080766452749439595778178018999069558705174727735641632197093982716802812099842496916995065205604715959146381118093737942437181571189637100269587623926210982323022654744552350931984198232576164576967928752994902168450272467700495637546342885796072642004628931736197096138598618894996051776201485969156728229038933212498160396944231147370624071047687117503092945872623706632226707831706641080443333495892877585886660444603052915180668004618048424980553268675283498039835690076099321792995796707037798176185744061262243926742278914642529560555799421993198900664735399743744884782197794101291487422978070267429943826272638388438522711401706581365913664999567232252656522819993172364611395240783711027358680787090174922295340697414217704966462433223442859460473488946740172125601043519454933161459224626221870400984728789159551859116004789564407489490137461163014019171753652571109459418517377830085244568774043319996499896315437381236903608036962504043834097246667375054109334849851081721145112392609159911626533600880541120920756474585700827471840202776516167424822062017895041667438025134144601392793965222845298993480116569905372397353032624933105190528485641987484327750403004732125572939949726050047440256921047280148579342895508791518012208741077804441497313016047943812478959623600293272322747566525322650210182453904546164240578835497849608232716147768912053099454426971777870122752268993906554789553746549494350328696629266096784866088839806513753402284384811780224954058383324935718342332258682907075998555420686813767187926628247851307802957860909423882250429647486907655088906543624499857655134910317317405130262200257758110008196725161084606197458454802842129803938452391773896750276730216422941541447087492967926543367614227427651414900967930725410060266228094390609031474290154803279100878784968019464125530763083162646324596032468330532798351795229992877056402590147427534865575402095728809733922846459327408652823229234004050802468463639590227680385500366440965475434650965677211562751161923584517389149030202262018791357851172651468956885591634701879802592113811668650272671753599509064971476733159167601904756016979722910412277048825936575748553874776653801828682944221036459697232453113612942087279733937146594833129449247902525231151797263938099952360948577187877955437161418229077653596208090975776720838304222836764510915482722861268770456033879579566011757978151967703222558644791183110224102712979850971296723940544878157280965768157699384276139997511182309157361352486894791086476313836115349233121980039499548361544862221786055528931708815718466962772873223119268262370178864239530682977801273370422526426159977425707211706453143669311072115649390436143102317157939536731786747201439569203437213252072987179822126710351298254033078110382491931421586650084458702434596623953759823269327124437377743479502683707126412630491463154198966944865042740924574603963324221075566504192367748229854394540812854411570146464604755748186395801491096892198519527127895193501428458706244009912658227588833046087793749790490793751871435815737272531262154786981455362526933838803688337268303586441678776214064212526461671604025809570161316702830708348997668714758173249830756080053999696990430260209590305539938690221715993752590583424765606154738479779705330490712946771357478922112900194014414244169983552028563959074937862408384677685957724159451111333720973650750564612036901241905267868708349303136547073294550937722651030659486489892055067665542292121920996875652055999683394424621480543058012262283415860088541074902366023096887629329027338298272371415024078549124306777635939984248135868385565201293768197983356553184912545304897066256406864308498603599821354072750271675447681271384696031938720997297046260101727664710102424449289168806458233399709979153330353942888021020532036827801833623569992734271582954077106612205905765649223923834193406373485505368293524362211691815236594231060167246275484840981352420714069181346208203979645296767278546771416072574400040193835098037068858028151901020230768186970234792545866804786667091505375625582970345373101336938953797886664314126456064915115979686847456827504085293754538509594197444795475497244258666261297838107954709106692172294929191672182305681495570838507937590547037808416928504759899575126225253125575550287704247920328203147248854569789849243200037347344116771599082785551326237415767886217697034034558506767260658641962987466825199896816575127232975369969922947252937657440125357327300208911256783901176144403028377629169538884954530513147085694309461373653850821721207902037979863540060296561484653966708591947338106336631731721080683035081042018293779211334682744650389228989826416676490376891860602910285358312973137255506281464058567773990922685820291616466451813669219575267831291822460790528480797698217155508161574446940690729279554836066163108861962179344292114186030847965058921171055951077942786570930543268918876572234467272354232726507978297940922683951116481843528819799503590049837259322722916637042586110664507770867242261613091840026180716675258376223335638292170414902488318469833388066021644832412607330331517518290670630841184362489182577154040646940628896953128687344220556297633600613457074611665748648657591800997133370338138550523709653930876022656430543993002499736978688885685886357546350738455647744705714337451454625977237183258646799435231476944049302838653615342720202643875466111287477336791252375152239443463199473356916544332598732813289222795786481157403834989287265135271340031767016548008701527527822863602295923965046398570747606655622561045707727573266867051074796217766348580912515320653729022537816691162770763302020138982933700087272726787572869013368229506202721442023925654190080674752873086893840832606211155832926179425334495034528121539713636289137382545277272682644617801329090671354536037948156883793118625968513984500332195575458647161536871448857271735612310919264086737295806140286973202508358637929250240208931777154549683590906638538704182056258782336163134762979609765349125471561102111118177830990520927245533318488396026173755097298781303787337594764227625350927383892090457758469330867942737106160886125224790929293136447488793299325540952932942210745462672118696975773794488346458349322429490960902341718163586668949918858506789089646748037475214926290993968438582189070009269399672008595159479688857417636799132556241725502732657525255321367440494868098178700378132076299233830336275583808122588168825191651207351518946637489266874308554576233188528133710436008837950424153930645467483287309381784844205540543062169135145355261038221096151990181049692503281647202645673558394886792966726019988407036956821827435950053971530867145833969014623182876994424399989489940367484945841952397253975210702647358258543102234615593492822450301339174648572416708048282849429734343742375871939480830649317105371983879140337685648975994945907288887517883809720382622721129760171026620883278495232357828284712786439259187223038756304056873273920719941370891816247313911788600858217753864186657804930560098619891905733408649355963011310973501173498579340496209906095637816506088248512677103168146770696339823531341307644825617460378915862196593139181110510576086809905593537071365141060620458087552222845597738844673421270004824390104449038029724124541426703908938273254936287374544661830330794627993386047795154156851112961716715693777699418776935338442462787596587810859073543899734892300471308026373764313338894653956764196592362696856140948719269972092855033712852495840287001432234609619573986921598976751887944481926175062940665911063083766797749127916421754285268555457974633865210550918715297919009677516367537954522074969315446596896060156868157025152530955890111916335859097706760257358573078954746303428652948634212092663362051716852377714391280636746388101455634471338575223643229337709608942310221521586173709832669627552087320362916462686781161494532176706573599433288725973655363600484020476795175175559223278648791273078800504551089729336721482297520952351688582690608122387819137622169836067713625671137253831291906453978047923246858838228891328247128819432667935486165539753230145225703595161508918839076438480106409091897654525990605588723630084961909130750552935895267668077766248560507933387315405974176566604299856548653552093093871596993838201780078747566580680421100613357574837024849281445899020012015714611451432546624873392129213920603265593636790365755416061263227232481201340753992694328409200331434527227013392206712384869302373084646127374266035536460786756796359451564167222387683341524844195292522140583951604496826909781438416733170499121383582984291899030656950737887060301249540269027737068180347477064720452731156393934265880348323092598356139201936711078433770183467024340253743706917404228482511955076392842897321130099654167424840119276081591880505868078881855782375944549896542412973556175937632238147756716558365206206382812409696318549373070266482863455238473655620436232326784009021245668264112254508550373821498732097382998902682195904406970732629869141955469271367428512187220112805147031329050565701084185979034951327553054219029729960545283125616412261988826338785327452563728164787668601042079522476894944216222153348976617242448326758543719057425741479132249567085139748959011800244659735941052052736302383739103802643767328727918127896857905635231932742369360275234892427434656280461877889492288507178621694067185541248505201110371224005461792161680223006660065396040628844712555463148976313210704431437591178645880826172548388068764603203554709243402915135601453018491228337261797439063282910360049942409213726079560512590180913683358398192684206194980322262313310661922969031140015835842594688919977872591178567096496276740622373622542039963218453358983880714563790507217274899902969105811030417613670823825972640228879931052750319641629211611638622200108041911015325665847265703589551544203916081888780207651492336667380045770730002549324684172321786585377698365702505111528320517723507098835513450659931944995095838540042056803947053095663602631663967088547091944461653126716080138616754141008962683632099623139013015811249856459656083928264613940578912817396612611628411955625098108834258140929015205519841825818416579725130580874674111398332286324676686397917387250702792221518489481869051966160906342325513112314254823959214916348353889344776368713467706898723637160509230635595861897100406467415360259837741633984152044704336523705325421702762870928433394882191104823048119025335865086616193379573620411307644364005182343750311383117818646040150720311910235315479022387344885263492913906747067765747754184777625742947503092010811905635175048408175613340938311425217002467179047862890594074760043496388482994591882163843054026822142367853975240994905381369690271775472663123554210102822092089424778373481214199201056814019215469562352928188971044858374656396227624339415675534561032538859027218189861378852425406023306468502708189132872083245920039216853822504513981559460588733995336901006128485766515420605200602001307264851508409780516472789073078758136777932697807834009481238278923698159653024586600753425798905952836244612064139236977344267630154271844110676660392397565219009501405267606376910603547022029213848754882827081001309026262767617385380487964643975180784148451324707684528676471339328224027861067512185983517391026579842329364281903678108880419742848374077542551432636731929996572096795034504678040955201505209995540991285912385964761098205614313866422648360519793611818204924491983597286106539757380649745953938215537136486016584691615851306182511651531445487564982149852838263595276544176693591826964056002651140950846899980546146581278986787819531627461124297925600077036936036448432978832919400937097514985582731646406313552533837081081178420347184466234466364670412044620087257212751229751603241034832636271460142885841352989352005748595645370996263248189113708003578634330243155949452372315236913846611184670512003607621575767228267461590037557123264014645883155096975179860344326860007060541604570628958220823318933746477256587849038369542051866688450805824884832181450734244436368548140406829387696729317520799027523550042899269648591658723847122194196052697691988545495499918579399505013175049178166020118377628332517462889865223023463017658482242136419999092832169701828282065472224859680744602702246189326079559522525770990040420866651158244170787429574646219904473659186029265847659390068290530219718740516867226225644760216916294653493677429888129197482143579805300351393917098986131721845342366314761780886735848775918098323313142809069796026482424887487391124455293750875652333137965215879070502101031998363730302426663816256805923148994325461077797471275501989202522857806891262814238498363441290145171486632952853076748772149805171793597309320963767854236145955763487208265287725420333737051653060536062704614285493954490025981159537338234483666950217074844808416551639968331370722295046970328180224994504757408427694398430546075200481093251694656675539960076267541737577190773971469451441452576036157925576774062554192981960477132294534385052019635053919339519961663230629827975414479856245841461973515295279039267931496385460361180226895888250912583937675038985854443081223438828788542337108438742729982425233612880163025741748286419470172219914346060446312681154160990930912468096005153547884007512251558716506461618503109400815811233533330555554324804112662087992528974976453000609950709118907951683279623291419260934137612786468450417227690752913574641769608931063933031489580716861994011102395772159543422080403661049701334738047852059541167896834608001975140233134665763191812279127126443836340299998648000083581505270466557409121270711156730069343623246332475983522457404461656349350213432829197685407908471239394616523896142755836266641757832737883889105278994404586128881399737622948381022165952462131428258456464219411260606953822047625748005772033383039478062740991894004836268013661568845431705302880220335248740412431437174831003884309636298575363538450692459620671703205342600830198590934416030728959246829660290182049463538436998732302101682675192214020590769294062496843812906765966286268408327064557740409859616269112004351494567284224568042350276863568814324959595942059943120360339960166871585148524243626934252636373410969504953072345621987468420324550142397572054095348637525953696147123539138192618792635166570807568540264083713183148658798929151135065821227195280302416650585023744592584568575265009409412296668264580300849890456741076727373658879463724711145462573592292139830974209708376973087965985113991207532132394627325810699308833717268112891006784888245319991589661729232972131385095582031004849920673115048864629681219846537427002435167365617207365996937155489175923454872882409843122328540293919530172928339450581520209855179340962126492711265580363706480398543924532930471007472692586795349015383690865221982067477185138298406328089222124713562559731408651566986584364197779971686445759637134558723234387611532697692336931961600578317866610072144675501396583269687179216286091551978595138339851866693897665377831059375873333167495339857803708282916450877889834832819201858689326689946907965292719991056602142490457887756145359790674691315875155721021922277567927767106455774001723145463300660971496831959051571197446614985075256369722768942949594637430354547022039899365354495447030615331290070218386046143142986616396396657367474871173841628039676538354531802278203561952598777925011001290031359556828557179811097317616070576679061835564317475614990389625502584854372287022568596840520595709534070449949103922268173331904609344577878044810960940514407959217064377177931364115251135276388717952581521926644705497262250384116811668166106912925803401297819881318213917274910484118443956280724036785213978750866047047890050131484057314650097114743727673829498795513316569243530564471539585016323628985987511736572110754911999716577354838836173878524381283922710651132236934975913459533696531749139873603505363420983474387309035387433354327340808025060488698095866070511687747613598601391158750133767225274540058290261243456555814897077108892439334169691845938304371022948288960709103513981096218475010041207338434011986211985129305926266288395659270840259583371658804594742498600549129771578562196808539558189253648588386213000684207787794797579125110455480021654498617837672003330253040679752327849588926151703310760653292892834158217380649649890109305822971777949687389928205432834506520069510142885377369920040164611415047682938156874828003524177505805673267115620739995681366018557550422660283708353973638546149024780757764370799490867353465407605267730143124147820256119990466600899102520020835109977170485299666671897740236090482355362574290530838313293920094315578809115131845824729207820722896328923513788253606426052801969176926156508762152689377983778923233058812180857641951475607209549369297853418495468155131471126601741071987625712318956247192781726097334501236158009560083939090585092091531227612782743510077281516694569757738718290925498315931603925232957785223760088431815661460908063508820749844199934886411861751126859826387083383652959417025332691336399608291248560098446608561057244509711053029388698957209405585031088978442729475839332157263660443681801404447050852654452611237469188966191742750332821366358509303055147370227918344182896290594319747483407889824964301555975487343863161625957150787311027162653645177052449200132579791341413226861531923767228417451382584048753682698989278267397396246958717298555476574545105448227130441697799033605343318009861468592158361155084030487934512284483470596621347346866327605362106742254596142623526266841748762474257111484864048705132272757159099204429080584286284018367505948041201484363781248479665856569009882259314530613970005900747650913908207954650716693448752111765269958141710699032638025787533633230166149277821112313792958606983918721253542215398227053022933314376239727629949633983926823792916366234731350559178850323817009428653942456927460808622069529352076208900817032016699118712888434827403248546524696844149116074003821353280656778506159257961939185505039174173005468897767241221054016067184606790239578402684539169719790509982429670051400683427274255068717561086852064975662674071304034625550046376788126036116816065703658824560054435424218225291681538027217830762228407275302968977809538043262944365382311668323155659089018159976672643351185615628467116778277744383268440732140589290380244538959955727223229063456244854449550616731356023770183476933990107224243319389871395130578885310222841054134053030964490798045840040339729964029630667835526182949356270532192233678095949885838451428976033979604189881038407796822362967131446837107672124251032339588100389604370338773457594642560715390809385227253270804156911238499897235694038715157175050797580716359112277399268290814614632146749313175642511862719605463003775402901263297897586823090260709003570261553934860283645323722074704757312904419319075837578000609535486324081592596993632765815976577507148569100706204714191044303469142696054845064970245030266728802700079351958724151663070870910644207939029581223965214895200817455272544433873943471271558349737525150205626919294553686466601295638048695656066557255924543827085694976596254604827568923988456524098466350891604896556400592837672959736239404169223096347077214950256663433606870578880225401436118655771856409162531203768039843169928952544521566642201055326859552760113378882357940975740395638901234403242112942498977336585857578723428048947171873878097591790673446604198680836303297390475560077959233668652694870894509993404001205247289866283123088980727507535323609718694022131990782720746690411297540034351196592863923902973856217831444357446458053288175299300344461893994260100819663583662449807456861428444257131854621070145029750469608296236030213106182296442766132386847604559810008027140177818907970215527707412083204082977531117185379996709905919033843536543979113430556153117805583119000748980166704324846016097828613092504373144615082683707013837033442641867599231923418861946567419660081024528254991754272952094463911990333896593299430590368213919960855195930894711112524673811047376936011093363934309499204220232751286531121541514428347711987160207053367200548212018147631935937553922249855924309007708222645632139648901550971867326006210174077375347210548565924095054770345724252678985442565991945756016087523530821421025915003075798670043275084894704996041263183499137056436241787532705249883012465136124345268817092407673827923463302470637826012627279619851403395112131779746134813759892277662109493342032094899491935634226467335050699793859707990446295043002889483861611252805929393070518545683618960970049281344398242959405701799876995081383732710458826295624745041958102141235839750045475278545043415616229875136446922560669135787366607220429582017668885687698835086338526479885769793426438341909504125246618778835745782975122538007833438528860951746905898461573298179139307400196608657420922291440716023673341121880179327670655607404749500711745518938230702352120348560491306157827029270183605783937727429311981527760804682430809360117433517326317595259989773870354557641856071751340803741042512978725545934847603155072324260311902674063439819009163167880737309117878354658977861979808014175783452907864053144595266877508577057834693557993486915122769913698228652000391893078291766887740224999921382346510987821400418439728042226407683416011241380508968161558135705088805289545561214806155653247677033119069723993955108752914252205862248417562098047950235614935556996801950986796069056788270472202180954348513927855997882824419819255478106131536564898550817905409070128460802165438115351613344438227909873793156842580560927323610919603182186854507128240465864058760227222868748882226331785612209406558826027558832608140227480409590225015291157492428441935656605984341783198301629981858490192935796930701144915779827595858812516517202191045761661575243023538385471503823160310459651653367097095162415563281630925774596130879384636143651755652736054735146319435389366760380818859544643991307785502372872583268695651694388284464703206956571484790686496579454757156959699107878537151987681280040172256456444727359026687132866826254216275485363031668031876684217094185426111551982965838444769406358450271551495215988770935380524141648720972285427724355600888193796675293795611651359962875608064417959142598134509656102415777239397616613324544457358436383454482899166082803564509622559381147741954707198391390943031692018570470768546908954294069153581857596708459968413209217289152140238113420870576573579719613035480082773311719218972461945412541990001772684798743141190937638424898360473331753513195080571530148025427113497679548102826107305611209470924847000195283754150331402409489770672653845277548013443027989002638993533891687089430008080899160289015248443705078926686014101670770065849399673073925475254778440609710404092720006768253441756419618821506962029341609440631789770189993475147220671554288207676118983112016042111070493316439574338028798878985518276201472584786096767708065732201672652971693820771074902147696101983086936039312288705061292013321371392834590506960831931552061647080499400022555254288195545304135839467443883448661503518575583819771580025812441682372500878611809228624723246320096063157420950915949966027780673527274898256575698988884353865420459848507498241892336989662911738422975059467039301329793229046686857048119607393074569881771892768711050801721130205622519653811438817363019818233636556738114190801209972834011314707127245043617857620610718592255280077404460403643342949374209396514496713621317166569852564941729206211371091309452069174605875471283078526350821644342028260580049940578120373062100892621405997236670798544356743735578784452063153565486218544781574231548149138495885111640503442080571377552056727581957655500197365006701071521800486080053383294165119270966258565757257269192313039911385240289261969061849221907050987923829658744662781337603140828629085504696604963126999659326673012936979350300646330163190080373987786531248133123361661225528984197691852701416081844512777701955365307465707441882685694507835416054100176991975956847582732708344298632735064950765848559077223590226945744141256533028750203473206529512041633429570966889984435675674918144876254305718327708841949583247027208685381377469112345327806732724846829805212731241199686786318117556952855284861915055404691610773259506713188223807750142995129982404460698942163287053374603066836583651132680849976737126357136244740029663538081977085092735045917820603345021773155552685656971591935744961266227059595076689400698090544757871248429599452998839152168585219856987888204167912862678723712070719876021360211529107296913567283513324986741800597174058096396212197379930659404130814250655519179676078164562989495738229627426945364141951277731205789818278873613244025965456839327451333915544828642292800745972715408973322372427040069636376981194268739045686537520603272949590178612081115740229160857491343554137747626695198393551088022470658146584490375763876943144002974930855026895834765707461183824405744115551684795378242488862707612740912428855379613376907983888956597748011659818075234140734833278551846114463995448911232602543398531193719865111974480756582240056801550453600956770313030830178061022872700838844147613135724455724316350118086204481579565921669393192589124349340330478295213213649236242741396821648106243582341876383524923591141354412637166742915191626116276829000171117351105609961258755737670648232237474620324107169775505651393714369259741646027616184576547982035141034991819358780892365116670655025013304108644248396879540993193998372410931600393410881410152217893554386131534467492171309268821095889339511586385298990066334971562403275193940232064482453433218782245832228811421499671836123035908170149224117203488188783831191027778516321500538536449471984115163794146957537779098910490017488171102849994509153530944800867476435331699979013127971405578823477838678437877096574754962898787085643657806336744925049108804511344028248730750933312896972029609915877359184278085480587981866897169811483663556863725851126342209524255113145760248385862663486687076665299911438602788507212349635981468171937259870749088155091676819804635689562815193482784720905047315300263514549861157942498410641875767070912152192227141807919401753407803550312544110199480976965456606532360757492838317923063673137056373810286652166592227420916514016304532183815482742641449433419403008070368400995983463625739797601838112381033501264356822304425066883137984913595715894709534946455543682640126303004504255275625870365233616160450354041192493787684503508598999913350956748447020138110087379580027209474492393969802498469725375668456867146651710163727667581132875688597946708364800032121262771405903717886588698961315538106248079369491172323407792390000928715090942224591258564060529381200243444063521438227922975972281594758619518246579032899923040529877725539420033658579523663757410750835596852055123037391718303679707472005176884874657256887234232311437256519024425974115765674020803826549347622491421654055269151850985547712503949761695739619077108182142001215866659082048622168758932607023278002384293147366238061823155656965342344035928658730315715337838777243311964622010110062104700954971103974776219424543537473217046826228428497684398299181276433706821784372383562002360512629746980939581265554404369072419054460575942856511908538278037087462677644307512838113285450794140496115114510661016530941574374939622253349782745821172957159671066585940304291085890370861771484312049147484427831621693340933316943425256282993679800002676622465571150514913592972644444909387241503699246958670986004927215339860719806222134227436271570243519627329862283760389410709475013727560351403248496729174462005464062973745446475085184397830553292146090583345154398699315104253742322925828237865296896547358040392208401049528654579356672005141960569655122176857154536956200771813373553578420712835454239095738932079486217397460579760594453520833235163160469062622495394074504132457206611223586854916843579232906340927037178785961229405714057471195869804532691775366413892166464465782119161622506572368366285079658186648512897157808471430651090115845649790543704112721729215744966435399432254710121512469088046104951661346336213014600597377997042922537562426007959253678917101205474158401569541449507028825619739116042037439562253703494741586209463006485121732564742790379893373861266061974085597231724705974400383810941467464632553420959285670809675704768154845821474150045634269208670727044285634467420791499098661375677789893260961443077709009469972888415887876133543618767087109579904723395913375355718221249763596079046072627549602601595978855650425963350834946668624390244704477543806880179609808612405471863863156312391352911568976968631984062262944295488686066714683433972201018868362652837584883159626586718255273153110054096551380543246740942485544203940139242016494029126461282688967553365118866851375471937821201551681887074538039432046846353610829081111522957848726395360125752823195791845548769216461156074638812264811037468244627474292858286847933196955769460659453716317661300978653337257194005179852972368495059992992275952815816887491906196952695123891945878206790038480362762981468455480888139758823044927198343452491184677546996945192828540349418323945929437913507470044712817067692092371496900138942558625681430882243438977596976282103796241175731925071746306343203814714927453723590946130706725753664497389836796426401826134329946702956947020027598438583389055329727678936188325755825433736363656178017200203384268082866635082459659892689219762653157635185737812416304708511797227179887737708890236815173339218462987133147340201626797608054988093005105910724671319339597645639900904326872497566184792525228300275807742858318848555984126424259262670079875943656663828969010958565406612457687925433059471804621845680574733649553729297317866445849186006671712854351657766456464968095306449448788092776910521788596066894451020198978757536076631100941994438700651760341767196167575165945819041933847289918409424680950108390882465593974398418475114891351549976024530104322575425838992474206146015351503356843463238041004438336994151263631579794923498505099920449344250483208734638074016923395667404069154093500165436743252015537759278538692028647368950022629102886363662729789648122647839337551877105886704603438631980312830803140429362808208139320512147793152710852142897012012551173503339723222507651081798724632397640309979025966023529651210457692312260187663190549879667475816864279854433417574042624499548591945613748463120621442765760544414340188238712133072351655546755797789634969677425936492413661060872822700742459532188864293792288955898019249023430346469646424346625978934235482231030159167725239738860888279697363941822042780444436830292547870227184926903945610067216531885188162570891436300897580147872963321072454295415227878678192016278347137293348522209962000811227149204629785432832091170528829202901473676154330318699280532550746977879644347297249415756951026538051715606637070321989108012921916827094135884168545049020518188523193768167276566704324505695390687339010232358079623770160095238241951077912631224509484300739227580993239434723510257441777481110563385967753106835219870950879643175566720753960642341572575538364225514846158011921873614840794904169561478669630372900618126748344866438279766296117090277425690570898449792871345384271085116035505041125643612626928676749324266250175956114050918482972461684985464756288489341162987290059864422590443689786104224752153867862820791258256738479966398050218828535446918211630902922486340408374952713299084337669240543275610177309534535272437728449108468950593063163820242807880222986794817656216071133772411523991506845705755763029697989410843149243214636461793054595526405981355577927473913072141540998314893954469232897199974922879627109769655315005386202674759959404935220182412492558424006841809337748360043543744420559647462330345713686748278582173406543307131288669228952747508932724694277143160984965181388798435992264140878675600534082769450055410647924743339069731586361375466790495644034876682420456598891279109040696901703364304563086615844174517021039434320946410164615473502103109667247560095680320252463315720846008056276645159758693330236570273264174969247571412976066195315329259350418197600897869108447833890164265608462808607230420236777378247357570480482052548627622203248994739372682380177543759023620192962882646835086439456223714837409711963033651201451132427431729710324479013683108522959400631069808946094155057867872456732116589811914115345769170316270255262908741710092082953698842442883191115713509363062317567799068563844153698793690460503541646727064811858618232496685054750700312595113040038885405121846216432081516759278977042899263455520319993699442579596562771808154922501056583927209841493206296087234527110461556293029176067723558791631740615389182900966075296888035681860308362101226968745545052796036976444663984122390878022346167926744952984201271408393535179925854663627998438944787374136602220473376047268314069598620031750515097751758660255539874335548887236611484440353247738662600169355951996129176395648327246948079497029186716842530030986399796344514695565443883756446380097665558107972136063136698976117713081888633938756650477292766613127852224680212351986227919488498553363095319347648959721564175630460896888415277597574548037962405970691324473529952275209613197486089920597438177145005771414688937707089703564766845363783907967247233830222871282887373352314271565714153218160100990988410558763719954361959081627480847993771390828306157303613436686929911994413497158960777381899528031308718742573985974634680788781129450437692267025205316571684224742510522758884492581615659369514621984815871577263917280149770668402132147799612737771841988770935087198819659093987728183610799228295464645075512265169576659073789477718577974244311939905195511851908683486965595037874677355096897349604801141139860474019961705915866665621566093817828563680089810116809901344777308985520201585107697982286608437949257564702038584583103116406000068840665520270686338444639110998367593976454708343598133460198676633546876526594649265170178862682213994611663622740643477776952141565150318477763505085889819931804967395883373113392168756324657054750351508887394017348354944126730252826043013137558834955002136472107119003467344887323388166807812340537631296601777899868113515560708719937687186609822660465755662114453834473347163792321923684182135515162482801645304326705996765489367606608617324826666686006426308899749979343164817135921988640520694745785240402590541018476868087776446068773109605339071039149344662352338355549515070827598601959325881724594421562160588961806282622157517912927507279843859358402863298061119120382723186126730807563628932903730651707428045819548869472296673681830950132646853932766583804521237542534876772943073522982492402391193350189465007349274917093432990228255292846801550140410744490919470234890900260174510669600832228729768889859923721436205471825347319194872062467032050948892338715914905542495154302773130094624247507801540442866617396924576722737084486407885091510623653802601750510827621454572231361360313259733391072228105432339004577140583549966481941721375852674002724686279397068146095287740284053217250377088316347866064661249351054119184946051838156789073353709179405979888849241095325605185917925643128784975028023707673575551589446971129510924965888358593409905153396490967255481268141489633875773083831204908308223470162360639825529153869187992074304324909752266925349560266392298896412232165267896521809234626316969919790374226890989785263550196452482491475782271626163714762635015440384390597273702930012761960057669966105188513685750126416126538204176544794257685764008816209629527434927264680413405630127483995956681007969310727265845815222715983541361014508106939020142597713648637144639141510634181327865364928579022534794040854732199084714359286097555684016010327046967369991273920934253124908406380286967064492713643104704624950996118036042812809416012654331727811472692946664930237015003194428830596090798763224658771547437998536162009328406072138366199112057810265274911310088555508799313206288049432279541100622340308555169903455702326267183751972924818736997248930922761340596095691240550601708210957984304458006063602047248418029385397455634876851738139279446891136214286319842953460937428071846259895996528555470608135069216095611588234192025731286943145788961447530526342421878376380880883055709658498767387850138542813583905937411627551716697046366960649475333716075761943560588174387894126687162474611366097399580600868988465784151163812583459133662384593636801705627789258063130806186379932393106305743341404986386550951273412644030114632652660517128265267679105602913589854689905297132835349806419759328423881052066837072201512413868853611079416032017825367846179764988228246742451557664955184710059654111522504110169240443188526512244852244534315323315193825207355858187486497244932801194864367654740041399884579755205715247287655359505324132300944826794536899729462430598859366756528256764404389386412828990365460721149742732485319957322698354779830081617471098995102356572669263264450830848243749855650337833371509337616537579798728820690642549816831897284692963972586953749577865635808914070495878093833949016737048686041184279950170126527129678979142244565875747298699118321404673919748972584359777275811840803508113965285629035221799975199708068929726872675943000186969173523825762874957729299970721414089852803943312205817468871791497288119522268208828233591765464042664962437378277703607423575630820941189310650366006925793673493656555347886702661995825557922911844797680482470030474658496522273599056610036283922006248250315758360557292369693386788765871277221403309059676572831543591640192920694871279726662542220442908033386110806658363875277443306399355348009177225396784058822597387473460820346854493190113359355099661594014132722008627045715156216247977066055972516294135621120923219216822953299780108258803615086197177186610133554775916952095063734579661676748626822272530002989937424905004718407741298145352172428901454382115430337570365697157837273249143347184912556813493907514089864215115718548358985457823183922270367418329909723096719339826179391616875973393240669215435823143715570111837397865380381325071079653226894234923534008394251374078480367277660620652865654714571077199573749411622865448108935198608213195820865878102760107124997626939782550009959746788331669289569855443739676931770022531848076198515571422327019043306971353049508145293604443683668141437423694204699911135093704576910436938056230026505372250389499865836502802947587905043988850094495692387254560494125292928103701148435362810544989182466748814579030315616510943269132681784764769357774979079755351251206185042730967190169452659475588160816782059542832327379828476354897272309877647859709318685752835704657288599911955626611083559623031917228685090868694403889327077176563453240931555490178474830187530731631773083224804581344723637370673956980599070164298209591990124049193119600286909701107135272472705483240663971891051474650805191367284059486460486692593045381099148961029401677689935120142620621212892430261527537999050740170726927485686654585780203575171236983928253267470129337045799649503845327198878350021004804656569864916819583345588402273295329114735569657119298138282684596616014162171750729489653172834658619419180070992800211885885383240769406829575795669750942672621164957181320653422197742020377764450437888327061126865953494198743884925279488523951362716072155090348341922614931916094676377267991784425862774412585131515439576947601535490988180492854669164039738394034917663992563534282997957658429355634879794515590951300586243684032962849068150844913738683060918573236665216417933166110305796714141403663559404036684383155287860658649579739251640334224081014581850499140076268158050391244548519994001358957748459935957141442494748471097312308366392391321558954900282614690322255323540999033647947958793479287872865568563158565601795979572578422861321657121804049588515705509170352363054219009573552355888103856763588006246523743841383741533216014153274208254801499119333591704121946430945771943168747671410347226057576240690568623018540175550631149774292225101860182204719246180618873745846164738012571492985223975555301838681124410508748961177944024004654020575040020767867138873655083106091720542768610096070009460379424504739246627743822306721808141806440566798379246121234041763290304514644070357918731210518538622436150275418593338062683541915166770097537139833941776157067540474197535148436190778098359469984833074964850822875379208918523114107814049883575017510761796754997381031193156804666352589809834184150539052096071363334152527510561442209092118717098381320014818476615591814717382693182286600562467535060094252595283429892481379673152857888092545453309103850265769909575741646559195027875667633483306021180691815870553958635973950002774506940946551274742012440004851232250168599052942088611118668705729270429925640327806579360829087149301525281335146024350095802924525751133312933612859326997649820848965932727234436515580601537075518784686283652643622944136997859282985738791478142864037301643750553170759687959716817636872385679744810360035258279898886152643119875479273697350121805878997010339946709587008795544645532656424340482718582367671179901692673893357817125555164871637341163507692867395833016605424943743207316560202169831963464874979786633477105608083329355318868017521747568722271182591428856749236206836706742953432694940362872778334309614419808898207918750500858918550198618061736260271389716112721797560825599486290460054999479575737925416444305027736876965435556874064870115510784210759050476592961707361685255151038792772045078548663347405592477095823884228600919296221797301943215569387921019713504185911936950612528295984995032782809061128557915598833740507648591053984546239447171395191054711486064066855755682900819780136166210582745480433855898950262813982484100993864664020237052768856544493768624148740463122912297016310242689588594192525318298059079713977764848658664398593873280948904155099870898207734317363328836912824595241966316612818039387803732470869973529517359965079015702831883052373370401703997065550031597844265463120361868803420518819944125083616032907046443118436985439060922585776662572985636952723145263380500997629849625297074080341279946398562283963021648499941260431148976461070171110664791634757421573246673374252577342056621635086021278430287525182107518870516320373482452450363812088039558220145820198988740453040971229767382809875874870975800653401896190388724238739608577546472010052356660998811770238700576005295395403581284178344179980130102063524280011624329907253216986790192602435475232933433929239631281642191521786154577942484352937531680011449466588596285279925681565772492558871983009720603188131644051069839310817304023093685359074877068660357574292209459129853324256526804107122311295499890301071684201958004386669510459963967839170662248928433366088723043539854177121545478875001578422201428688107288366374685781102184353527917636850468608140197230242084385616905127844178028053498888968411152173271144166825724319713805985703996062488942616845905458796929077528411569875787932827269977354294709972890984391668281670860889496087597427332244323049829980393004922293886500737793112192659153099252475617434395965379987623225222872914460464217322530088033240548103226851997247723143062492177157925201501648367342247604294928040328348772714618588449541978773629704461856707541385729214161837211810093276698094934774985919209524943045581723106916343310082347689840401432295570484738601822910736268223687797841610294594321724012052673182260199420583768381080605866396807681253156392346409188824982076182291660491913024675369887094275270514380575992704442315186756819002239868589591161417500507365832335120352837123718785784981145000535868327935646517722562744489992353402323226137614469093388295926065351617094714842704182471851296360453063914737033612861274064903126952406355825461138877175590711373136580598803909330901690672417989599760403618567830755822843338497332575498428409630161080470135592956733766480571307852135327892639196471477461974295807594724042673457091622562773683940281197010850459932755207320656628530197563314355572918157000847150577901771855065661060216551486111659802900106534795531787722086717337950504365434573597777610192403821846418170699374974180311414643861431898884261260270329018818707302210093393432475185168881302242660569481304900011382170058409656099865820175701427864170190724331813799199365538535292147876330732406361817358937143181961201862709181312684305932890800038836275927836428061741642205880252042343453104873039932020740880004551125813785592581165042651416566069043097248115296965078231620368363224411601655389882736130851363620981738582442835819412935214443571819299811306972235689327697021072913153472074470257868317817371412608528907456680804208750031765297052568741875894636968132199585829506565397516644944142807431015169310101902148018209524367171941395845876503394305634973858831353339551133791289409613974311110970962437734811480233150697280614905143666219423380199798578765341063967692975920195836190124827179926110153108303426339315135536628992847492363698306657033217820467786342310526427654673197757258453583560172169568323475850633262087787722814021997485158391222101394189243174454465951837286986680575132120429724537048118788112371346919634716720867925136711015254817223855177572118023797326170512502726987713035578313006363585164028530922131046415824303121625444302082786265314197388692915180701531430254885812668424951020266544246188938470352721465289504062481631835765207499566488397077418766173023423305148711139643460773998784934370899973369638315452041408805900671011765106615344413949758068872513296026998659228425016414176832378352125428341672081413779615779620455494297879996626617155743581069551607698779724370447015992053872947047582762567594128516209218989179765420579946720812252479237735686901026030908885037058817060414539256946098663010560028302551723018843141828517993291002465023027335429355941814261343135407383939781538520749723648604345708768584007012630909753589155100020066828643550953273618486027145792834253213316080125143877051575172946001529759983770432948525323263970343692962368650234637042216231117407637969649533232645111471165709581316539395258362279657709243979674732817863916799382164884834949136861647573189642109731212120084909298348505199839974003605875338152650190034267491142107505162610145860513811825582259922202473317059658717286597447344693096655809002937763226614069260819943733189971230379040493411571285538543075300273426501860028642080840712070928937201382194949745219091519629543451658177281029681588814074440809009025008586271995154566510342704988815824589912945482429126783731940455387689169735563303922742806042620919155587477924419844333733980212372454247106445190767839023081039428709582437431658432210154046266169193702377841260675650297666252579964601897406599093792174397169949641203691191871938933524603219238906921981103658027184330435775076745807669817457871077594246569376786284056802831952547461765502177914487989571465696406974639703988959504710165235697331183785702134456239366763617487241439799512715864632466435847864290447854355348773959946412331791238034079125480452262736578461194848342978231482620907140788997011732652794585740735212342906296880579425497812641000174421379955252709205428438031339073521494480280904082081716198781841675037513349730743874327154062326936057057450109082187376652997999743383143690684950271281394453325281011354980467259577831733116207671058071822849244960290550559596722636623164476837792101713940887058545439823100616139975000756454195301191996356013678828160968159127656401141110585366081155986512585259190623314274130092152574793708462465047183003910490557557151899992193567195102699193661434285663980255544985783129349851921691499108374479331222815200241974890633402518042639204145377863491031053489416141805645413475519874020379090659759546810642980075582274777599080563105225291918464413606879645304447462819245496121539353781572766527160511206485073188668863119592025910373865526733965093823734848826602398958223912418542126239725824484519038061540638274188335709533508139507642972683903789198774104933190431412980750456422062181815517101634053231651397016440190044540845308520459931909460249743164188627300978140617178474378244047857787125126890084599309552790902889307560153759114535148645961036858420818380037609755119845832462239579677688962424476025905148083471205767015220711506793096479745030574792976232741851376400443227324477209268793880840732346969530341496423385651282135350238998581935325967125698225575371234237871982844250514764065066279023499969989399683650478190387114687659272433465570604670428290959777461973893205204923768616459178274886397188921452429608770002687857078702062907349610145722967428077495593428550803612590409634895765443370180299389140826722107012298264489530864332028120763670828883881001220220352065098663865568627426656962356997431291807246863456536850110146987478799532222524664221391653816641901816606954703374663511114432501278951600658405608272767448076303224441852012915306099694601488903712194009630589379974270361226732919999014164566252120198621711278996825759572270694977726815453178792663897292628762073706847523504744839650716699365825396285402370263316812687427542274575007524411559761546257014575049607649365956040922156265900808198941751054654996210042642356796664453594754145598287860166389600535266796442492698047931920934736264584482291849773974985919271840078090524307626559707976636406454311319869244320242479520951463858761398621273297846870494517040172763221744188340207457659193698804918880311923369950176698444699653260048592746647181123152010549758507683683304804772020028310806260217551106586319715348471843662331798914924722633172715293527096180108588434968186216656651926218187558548382232144883328540530333710069386253853279589590607118552367747445577513475803603521624008409923301747075192043307855360588271336103153419829693401134330827009408572194404895926018107804191353427991283178773045668270613242820174688012204403010172836293438956324285712921162884366189142937146921000561415307734011448655897610875063153457269671610355538441099029158733175168159311333713652557781478044270744659362261086973357750789233480808911476319112470955669587859274004829524960675106577591385417164982032234684269148764625015037691398536369153333529840218493910582526501550096021588200087480682544339864644775509547931558864751013098079590030542173254023641772631057349910418580391077432961325915660625445090004542888415047237485761134477397755486433727315301378563847504569323660242611400277621685705838392930900387816003184439817207754278891105471752995992598090472921356274831131733492657089723601360842299706247339994065556001438517809636898348292468706238840356224988345737707950938102282752987178872721901297225828255300078337636601676469055748927339914835808416839650940433450490532285904622471671338538858173806275602939236702024319994444586836852863837872417593679397702515518891009800391381273514826763145653977567846678014077633789553312948826603137466506040950420421017022231650627592116868088992351586373450214375051938319622348720159551495066452155987794302962642937555452473421878441317262938297518496496202062056487249749936835033182850179854238134587230426454437045870771494872651785613774029335813454754915029533315881743627955443096466240930399296780781337770142526356388642446046744520880970207078951035031907305734460347437282110418809527725858475025382844588073336799862517578388014810141512662922975205548711367481042816475342943127870782341827453244432968825604064307713865492294287297409673172752529770234897286484157452234484289784311156455671453668841322710107704716567273697081079997630708934694515465893526045181647870576941332765135953738796010597068971169589139227478140527665415848583984150655396019610472793125429856744939482977039306963646050803540339112983994513265337467456786241948518993695592302469496342675963609787044506188772906919004750893144898065302850463863306567613122846307126532815789273746572563698643789603369982036977029748711918358788501219921084179035615428657800953757137051033397473974932013083765147652162210537369572576184662688550296497944413156849812538956981864715317402072761891952136404810683419107352291645676948437815209726459242269556833241037337002903878363917130900449262402718321124715476467499348109056410806482769391738621163005680306020051739063276633555956363303988268300056154999331503722409862374895759629305630204297275853992228346623239412036669434259051868077554411800794401269073620959304254923102979040900640510825430997645128372580046118528181008202210806903671756470163953764237434940033881054512860446007785358360221018057704970571361200055747596492774075677493690797055014137524621553883610739509829662649188959732836825466013724223400570000129668524238792649980106984328392248870126451886481081058939405625859615144043615977238923348791957754607714477828445916789435201150772753680052480402461556086654851913849324680779434762490816115227797627436534159003625865760849197714126805476335953222218725568104546401464466748127601921147641300333807143249875582085271963331982503804368288681366163892623460175156760585832453680161401592187343848736641138420685459872245840370449390057556053930882742976661866402877459778641352886596184147055807251756017929552390422855719495080768312890385473034041079237264135100252914271274413433608138919014581027017108832610954604390147317592314413461904202519300002758065599308578613646409801549347030223890777965805024603371623621894545960925019194611360789637853039905823649194620625492715131366630243693850301557542034716347963861531422233931378842493611229483803727741886618650351340797445595812449107851476883736370326710031151222081857216120563935225575766381673607314673663271675985842028785914553449974309556687721505862934326224315877539592584991807597045754505246997306356712400045482085353231392359172596638316341285663562995764585770548242016975565765467654197610722396504028789339927575237312291953205115176425020032520529478611183397468102248515754262479727406649205616255157892337650941574358351300251286129348076548892675458597507058716018541286834694140860797056435350325876569746698266396688786350084756209410095583646345830980185537059677418760885705526673614166534655980293344541946725960222668057405281696623826795203705196760857716895367205179967918545455946297666444765294799035149763062042552333950383185684978694620801470431744032892318564839105319855163519225624629519612927329736725645365659786713497580185752044621251400809627237843126299027509889514881098740478568131624837621601555301059912093095996754289376209562970074418791128569643330190482726624473950980580352877503412564777338273953444919203629480039009737221885179823511588393517786262855056600201532700713383683885609519322076629953943548948217283518520283651584467511245295375161640722609183607763983727833826827623377797279019426641468954746637527092657467571748554343757946591867021960486401815666954663269619148931152885575353949273281511722998244443594139929565558798196787321179408421110819909749045783996476231420554759071981460432382484422165441390486501268694721640200611659770286593301653450208144819644982934537743686166366472343260978007173639543548423386140454123912153009375598779733528415436740086951062354047577605408171529622725165637599437180636159714407672152650597949606220882602538659238001644545458759499348449051638914063213560358172489629549247916653868568839989713723570486946443264867332531538174302289846414622787745893327894946474919416184254625087896255696357798430119679598303190232396868329839731722970186774750252242212739071615757465850161354478257344787090353659762812780219322877134097445473840227186466911165793309377377446135060944473564571367613349787669489017055515658903372338308334187659542383056833867227754991924348754138442033008733020568421342616831908481548973356740201472677054656450694342226953902857021850339969506219277287840300101980441013273746823994826283709604958285135293156138198394317789973344163658158690728689775664899198653774528989005543182894663633075737126249838604501779543043986107738571868154821015946763450698109894064412060773010523178300344939336690358506157038394312473010736682962509953707770832598146808433500361689871945949270534436951005099876445744421184642236258209138103250579465007256555481672766673192251150260419685637597149390155919727727811848723246735847898165177187052184577111564245557463289439813941483894418021715219133752936008158275808699038211412790522168478103672302468895973017136483777343407853379307308079190479931121866593831153068579984908039526238116612675726656472909042728980428663408000210670226318727876920264002970908655751796436399681589226998124881042778498879096920796476820928317057035674890812775247980059882615083366245677170798446849887501659870500542574503386054539496742049315483993684443820421329832243936730946459983547600329765339361813866058193558612743901281408084429719871519285425668551870893479913459928906043635421398142580138082987797997523126677748150070591309131976094488887677465334821893262049062269394492786469697005214123842888760675740053384140041502770244834843369404174520703673606368433496062589647352788831836217735003310549532201372437569853906494251594569473343512885962373976889102141201484195500178325122402375402733919284236599842018705484758249275818534844245666403110598596978236410005023274837379873206027420192442927670135295211351052376634548404504467001069846692334086520866180461312414116495961744094639631086445129089852512694572876358825257566246225056524693008982216921866022908732146072499528137429700404888500154820267277691094239647014923528588547515366383982957128369498470516570207508615082818072890732708063499313625466711510097986994897319832056955550752134111037429411672312951087057515115584875710330680790448311857324918052043724988301871986088292592800897416001032003972636408918522288569039119886834607121099157047252204922352601344168303547693197325060189147272926761659634625653199817394544800634681317374517090786345312949081574690976057252705150289184518627231479835058713365505455855413455482913557964293877521148921964432938242827889432227053962614219513285548056465348370090746153330912883008376191369001686022163559900045583992161383572810519782895508890435445850463682372637315627482445471574026708969756591083595843052948653453217816446465347898939705176142027034033847970280637571209100091123780744413711923598937220954123715154526890591777337528642261302866241983275234555460502843062427009991655445358485948770811451282963417546957280628741736269244607955628033485677154885419496121632654654305566512965726622364425723209464191736540848691130280354204186430513137766446853186698172030461354887173988661568549034894469045711943098626255685114629832242353147977621417997044491176362486914044029134387249048384722967815788221718753462486150920991388598579039087887628428119053636656187955210005680780843967601243192900574124720249058027237476885721245223213002798488050126198045945155096469401563754318263242499068383310215540329604931992250327767956938874411549837240779567264136722048369351717573608043037289977386236458908229888956662447573896869896283943280898073971931298414682087536111132019857449552243582020221648371962515435685083440150836308402479843930135060349509511635797908723021539148275165506586266314670370601267616512425018629898687661128742919601703268859309252433805227039202258518672439349771964722465588650967441234339299497398504832252920443968629995213370383108960031995098926942161151330350816157383097592714940203630314746649434293418962229900921187684450895472046460126204357877269536939846436221023674221076211433408056447633307914327494503985749839945039903664787562301415146906383302600756562661262052999663116985627652860897977597356248090633850548770644738676881070957524923038175870339241230435839265209374076063762209150133535525829338657257145761427754858942293246887215945479415986501334108329327869388826482504238493550866275683929943450299853769743075752641884462532212074868990331848751540926851875706113091931365829876745654868919637560513082139960473388463873463043820498740546135130695722969158670053396798162903565521467897629276616539758664180314430540745338380452156805797056353762034614265952280669257889610465486690399922486272538373428994895105042057743821838102418443162478893437337360037293877574394725574984955263008972635366085594119337416734853390031809944525959100976012412408587148987297289148129705622706615960702146653686146655805159322204877948671887120560918585171687403192143632927044811703430838978850897373631520092365224060843817854782093584369581730420164819692118418309245119957800359608364345703414818782445289476850072286290942003488880780766225117095608786324738393859814477662865823373868426033644508561107569599102292751663401135248632982944635266190215242340408559047243886851516594150871039689885188436838396500304064039773257850388299553993662499334009049292427447670525508303288408495470265749156250510622046086405509833478803159467121354472390678064813770753843157371042143856251243302796635554907290332127417774296249241925009596756724138795949376598269022198079532209713316159763743463850385226455886213325994110734738782659130121697521069412261633594555347044150803672148968471626968990360812784222996826574270035321296510778405828065713512350259795999332714740746362243153006364845511388187317076276401869628143714323274201792308904136731113477845747433660453505247255535255533803992807702784641395230250332029359239920686224797745899702542915182681419768085833644260283784683440821943696482207548998695205372707744016626833388884363909183021569180735302569324390593942236211771532070042830292579360763240624085645914426877053318226253951910404800318040302411975181553500552146091903131734435877101292737031132494472469441793204306885336924202914934255682229944946661268443591588351284478120292920478136823469620305243050701091490970513750482781062361639670924513108144462623085330677066087382745318467038556085001061952519626340959038536919278550415311300192764440889246957564410135227235078406496238783101405988332351205013443358360352683359738809656429236289086440848439730663999810661826795486084940222540101688499611153450574990559475080619449357378429672530448366716406926825730746697828498063501682530685998415936512078572519512581327937505214275974476103894767516340300957140480296784659583236098938435971094959680493008045790752596565053944503204281572588531326097796964750903236245644360447838573413293257849377175068417661977498140547780854151937988838366412888269232739077952206203572931821433594940102183874797750105647781943176836875426203667164386248953534847273860057447629283035611030437496370810838563976823113189249887087599408358357217406993543364277733434355668406145242928068223497358595905804227091212412760459476384464025254523521418888852210973291341186523167139221633525966993178592469870222483970694094289803169234605770853314422504160557346360057241137579361401539405136170534248552914172868573280635476575486614593289215425589500697613647004092870202039683571507100226888717216006784762825477115589437699241834849803055502163802508903840246013014943954995780674915142504687992888538699676641183462532994285102820417113468316030139142373731105519270030434551060112296760332743969460365131781157870406697218988815440154529743680242832961907470287247134028339936337732758098431420450968236923585593742213513295749484150148655554333384760682148232850938761206366533103647495459741669281819918118281364219151891233266785622916669459581464158070958134324440425652924026645229762967415742905327873267928417710440875983090917376186579170977502435750631834091516333812496927584008544836431932362928122835637305510232742022701972746912043291162211620045407200902504864561584632252503828527730805653250458512237664705568077131363470219872692137048224922222995895561417582910646744308329202824980454149266723909875114778103550041010260635368583209876928635560974464860569260552316904831438820277176999210269334775818146657318085545408425463795898199927997939370455884053193926044216026162206769665662232326148230655661962889684575556408898917334314341372063105986037994342539335506343313484263675822387046558585303343378629074229433891495813214776827207263852975066529079534354628827242978174692783582809767801803552989565915940133338630201336815330179245088809225748740565453026386299336490996873758902418946383013146886850676069174462270296769703994754212323687303620926146348071031611862812605547201049074503767327910484825108743524760078876419832276279250512339177444281253117504352369429310895444515657535832564448772568221107062033233696671749178016047871383882553053107586734974349918237706552665569699209985126536050534964127636255146533691958917611784739052214678065344008376872220427863592091410392455561219262542306427076800038390706288010306546750142536130091975228932974831383920068936365536651835333213168603814782726825499303440083307245459918018239421238740880793603161089321346857815027719022000457777344247881811552456370035053226887105632229177386302502694864226489553428302409511421334825613835222039124416601038884328729287143937702065674762758048737658445486594212205071602766256774132578885704682093534922322763612640399755820447454328265532430122675733297518051185877063414744636634127923056989564757732313624078214294436263842985468216737950349351104190908233264291085231790015118315120061461087817237632856075909234208817994451691697087127586865869511054724846043967101193074090737962498154101354967335609437364657479489810755427644723302212997435953005254801568609567155829439601141783022939481446778317782558068316213774505505325378440690224072037352595451023418663404004228538734925767236902933801546272945211316697290981757161169525889548774053221440543387032778767201371072494067662020694206603338770912249675654541557653336447060082010835592625081263108848677977353542937069700509203327199238061385818180973064753909093880518617225543148550187608243124394108634187413880241208478512104338268005232092246395463507625949114055765580002635285973866386322302617100375968974795226668137058812652188520676820213593250781352835108128863541234132602405233416230585359015973763311168020246419130257913801463860739890504287470180817894211001837938330216227074309717846654342695845827136859094936689460156162428854104209896176010841088910042295466597761949657708182631579155984971797568003337222146455143259533801964075827736468722752518039955919329331942301485951016525851041611205287381292290206210420693271539764647720180965674481826319866038069773373430488395904931398888020688752638631222053665104624033579556721577924065028204396258951822693624446156549382721675624329875558909468453768149926876996346769613389652795992116964160419910344772682776148723967664400901708733147988769731755994384194888202638844407839895318249517218889267588677566561411299053723207308736212653537965046702389654648068495240790791895042888963143407609011992373606911887227604603548509514752107956400432422555814011117197638598002810834416085883712571753096949353551129866019029774093753875275517320074233110667662992752112389099876018791480982204763506841919945374598069938428545187786622113298230117154795589138966465447533713726810628387341165637113092419458477546105803610540381971707791007290192266171857765473011186237814339798211646176762995512764823414608409863796635262340770201653204546444984404326049201690205342600333745229687956328969359523839081928147127018725366129910505655570372046002843815806912551799972736517912422471555878783138261647996571402102719687157686543240382933555312777959225249374712738760630439773923052813068258821859788746142360903676481386428373604298749633627058288894843141456664721737275188331003758390634676508012072533571467968782553527601714839033612239413198815512144432370957791482568734407014616768894381228128844715080662275595098872128151074654216337347843130367638839748161753207481804046214121442643417432960486966151921775743853556333989772926046581899771079328924188017921408206710308536336947832355959613810231246764917954121147266768612177322133157814865829022849894493226545867750950916037587795831398169003084860507777806633121364896722152309032089101309385374102275575427040189315062860373623423257811091638267361464328168600459900720359899672436427603802634621464426480995757262208036274392406790691559470263082852037551126328427790469293353799734056161931731485726516039713466709145731733901117185293597549740175955960947361221533356407840503878788259963264023088613884702969273698695553544673369152686252575000196161297560699617582262266996275360072229314695298712490349360343164435130851301999624040632687463015148889213382571200333337385426282752700631936304138101335295705489657883667423250165977270394991235406664409829728563221058500137911506314843569985481300811875462786997059169732310048854985458635461252139320936688761631557204720923214845766073439186582487079465340313306587168174524602424856598976397550972029633299977314408437473186976660932041799318060569079175537145680849869513470116144313952364043420371546387512415712713742848248482747561704160104867441580700917432252911431666749174633109439764281021052947877043890326485593797227655168272532492361113346844782524185361783080584924117523900546313084540033640061983498877910946630146965585116276520842141927390568767041465129305493155017988483450979001519374305723454063199771642643823696188997896332674700837681040809068207094128590709021167925279543749277515357734150944596746071263367221861416193925645549042418654857394639877200392233120800585842626883355738980473283925225938462962622062143715511224193758824602179070677720970752839330241784312424167283107722344282387701680994828955821699110718484562072169480957723153223091188453039983011153641750234129525955987718019512122010738901311255147791712884340143011829928368626054310271010206528493434997697335178896689990320463200586876353252261730159544235526143703241120120797203144684535867075575944240846139025072581665674169552063060210573484937273623851841293148510719270245206103523111814692052754709008290146912833400257822590418543779406093547740945222727800483707491319642507602738301891726562760577565806050180329595671517684230697530987074736504656977973957866426321701641167362357253088605750961181575435964069260584793373361670202715066013864490528356733047419619878138266478987747421282920126582404774906497007551279488873706538616627024541497372531136360512300644613833564986407994479600431737153289924255054372742994270335995032726981495535756319200366255025975365625503940324195778473027137471550511063357557579264653182024512923103024872171294016724750650276464624436818609418499769604686871630554574485490793024911141251739950382859207459573344408351761905538601778294892666441778427725510079119919895411300130034233977202620905480479607444165866388182770676441285769521044850159107328441268069039959439411816141149072828840267052189141865798494142883052625330259498394562212743309784685889172931578053074942674884042063352578883032257724712506339973756288557589277868015565040630695064814360505602000310801625070729721813692141098141078308211182953396666654136821076037313200658332971002049969668405373574161004175139580507678504110763531547848576307457289906905539774592107462301085166753077926549176953463001373786106939490346950756517248611227479586337718458393672526826961923751409931743582881850982650332497487438037092416491565443789169764400863167706623418023675198680970972681328999950426146974273446940717802226717282903414011455648626881228445209010412838951303831847609619521633578927356136143847513979850923214306648057305996769767653472586989448708026518957988046352663017221510640697415313150444606040269281497614286638275695931865901429725973802310710718601698222162823797031226730642049472358092496247372082185636060582542422893067076754933377971317894797292024734954623957941844666708394452692586241804767133998354716300404064386651984068394630593117239490689496038935921791010967240332749096890030014320875973873370870926167878861390009376560739884056220188622047424578310918889300353407735618401733440497622102503273480392725842608678171241809602915172566320151979565500140299884642292432693708691645041654775087101324586495877144263805472274747895213541710440101244762914229784437073145900457643793082842121143292592040004705444230253672052824810277548204409158618697102058759143299953750599844435707386081038012184469861273703196747253541466848419232139250503961626318663118062402988055893722496671208358388455256430312996173558989297379363089380391625789188620266257563823251926983470391403119650555006412226214427402694199601008241005656193272296028216947566092185249639007033995461761725860869269376042400103156301118683304900051446281324709521695531666814336403544774696535528289656743809758533932370502455677799471163805443753272695657676287747843516584953756461151476930738969303209425786006665489061840788618662948574553285489175439795948586173754645488699466105404571276775206171866207707238821956261883503971782461093011240774213439316953854965579336970050636166800704135199155517088095728105180934470633254752997138049085121545944879688576027438381456673959238820878556632581494050838800602339065889494548312448769064972055377261152650888956747676780911212389008473642389502306388642199262186876501275258818797038462248036680003480412877671498335693974332257604477481857466011685468152486109431227394490475207037788636687473519344029564485399022291817264454569212514779240521619000703211395948290243574412214070466956215784929811117225801002819183195461990968376256849076746612526121950510976180730877752272673762880934474465574726807909494337543143723606192045201790917526888114581064432078902446409735063424215553908474388244487797723846800133148433288120052030936786062619871023728573827445154548477224859700860679655478742422392266448737085429331146649948358840046657471463219967203424360460513793416620722721862936266444745226666431938866738050185124945247422239585318870685835263505769212731650713522198606138978437117781518821608947725390444178276597717358939225931319556164040818700472678595658725331568751420027739261452000942578039170065387739993968023735907251232275704215216397767137367476635002378781056136877433776415454163722427222328566257547189053567347598528291936277203434596280944159862898413961800519344614683687391710535836104143836333063124653450407676328924975135004097946834407492205196738180913456372613154567998125698749314580430815973550073004168942045650876324658873453792239824208739080884194796019289216390991829027089599666918933878430596204441147197413464817335646187048744124201214996292981128899593231110490186317502858959685573644758215038391118748938496203272399491774871813372847353000164920943905575071566379021771221190438696905628244003675707861180200551943245314400823375996627513588910792999529688624892237482797311002763714365084834865958086975513198531902530452328477825921989058695212625608774720639148832220894586787449499328157207399803326068374831892754923690308927643038016501846591883933263245359032603655435673425583148910810425145856518681837808888703404200976872353618634920312525910297660706178247227748567291085191145668336458975108355943962860053524121886604463019699886789287138580354109812217879967512916135261778900683242164766037807201059943542245657761525764228451899799175880408480755538286238456245096988824489727669326295890834258211570950177478523854682699330620263618418752127194629313040453142936617811604513466070368126488485833937133213036535395193633244849645042373022468762309055302817391352133636959009119168059816705102879617607792538410252499332462633482175758984722950424289572978841966177907487769455176251833060629881091695996094989077921955246184917007725876095639683884376809566872374249428861606886583211350645662086138014157680315137426717190565713576937195951173609688358172884007971835706137428670422463800693005996728388544551730998841757434382654664070990854418304927426651943739612250616681479056905007971545648073017450244161619413506358159177016470104731490732160922213304009722934387860458105065273722258767933310690188167761016374073678091473812451704549907637298006578946741626599047715483382154550871818939744646436524435255809860717810846684115049230970606321872791027989358470184440600965184623789575659691073341667305514439756113558825809382127890407041622063911389887455102384765051802996611723363512722998792974135926847118730011700850587108576856128165319443874010110115463852369230261246798802991980776532020673428058833780547002084524265362258991258277331373625100204561175153261472353187013812066670227562878303501099585248355862821067813577967084774514000333149737821235722373764852726808685426410810934368069024407522999321341887946396301983077106427348113688626080323378578016210761023895439193892175461341479458602288331926642967265277343005104763657984133986668339733299692758000956451215664319964919013787179630348003159114277134730718640648920634284976552206996051296944473740393896339585523037250726522442736320193339438019840821996999621396717316035565664039355040182638057081857072835713831634467457606915930370540421667732740006357523279679487047759558896721725042357420899817155874887859927695169812165573365289303461593195336784043632714010993386138760327634276267122932119781788683654311788665863832360191177468801650310246315611566469698025186202678621257025814443890143006196804331528958635278788432274926717621000350968391007307653672601259844662164702771945728425577959788364434111268320559022392929174342155394071030257283634756142844284214724754143701146927537164116340801542637589143994161025496612416033046237393807750139921009066204861687964720458368004964859393494666663413190184701947324947260463436288396998169835934951145505755974301216246919086875706998922174074089558084314251356838345010430405086480350633124118248158469027612704295585874746551944170328114158381623047462522842145265853340197799975834471611716056065718432024659554335196657772304994711540123538978932313207164505489084564707964904559569932901945718060802453467691077013906474673658029753508530061263735214475203367979489460526216666718752956356494189023078798909696213176516738672969071292271460074382934214500110173472722734108981660423897433194989565206369681242954576869266535387637374732783371696605207684228965558761323489505553163344823068923521879272570649771282282336945827018822651846384705651963115479171100066113097856195481757222482448376313814059782099923144733521851438551955478750169244795325030186020828369720749358282650562513236000394413288836893672505198516206722110955726599641804388350602769115103479316457217526098120371813419343255117613612592653614407321062118737213447862044057922820341067094970751252987711836436856095773352977213847874796335841399113729502722839304048451497098070462176874536366425708017445591417006115416912506343659827158105419004021580813473064542687424244036462551992283599933790412322955454771667389570164804849148594373489450626536859794912200465027144991419820215751692687729091285937303268890599684379120873267198492722039382764994224932933665134493664502177003584618862580960507038664947292401859287262695646089573108418357290577856834166368439781014993477612110293164179008697849130645824131532311490350276383517863689463665662414220409261477275273654079125616237414397777041809689223067915804213331433441541031429811201264500304747528411253597548049705077275958795628532600186646982072533662261809633318832571588300159747187630010487058858168081400568673302246495170994658421438057129775562843730741671486886010387811425930423705004818374371517725206314771930028027781729077877697108840547783932363757484714528364799433245544307274295639092290242961608742006636305042756965235117323292781397565013652113096448530891406149478193747934841812365074964622211428845961384380096797599387180033819404916646593590999136454071456761656247260298488538104332469976195709621019632169487754940414294770869273855992890100500208598951704193902310148148143133552614193296005334592897299288459086815918279213762084223411980555026164883157262479543888048380785693887559087039945394265857788014824778961690340179820318405863333922045511102355648910533704759337782806691161172513939643390649792915291712955762657109841721368027223822242020453013344463055516914141329302037619170955513892487437915779490306755747721252536751441904477395254710939123026386650967121785403898941331947338900125217281683389822580678352404443247213943729030861787620447221447811931032803620370551299736311853578534439304230162657904682580010689182909210307789787833914168380007433398541263081761130721793897681009138827681259493853774858644564213245454362312629719073444570951798945807034405779456831936295597100806498527398712565345348464181143677551107754482201317125336756669520332259503788260680237192898061125496681332683713339354757828435091272797448200078581598050347057777801888741078467141360614773411495249182378676236006776889164025715850234011697519611344473925299875694918479411620019222431485486645464229913438212144805655066185236340552470123768492072145791753721782064110258766155557820798258266205398512914845739346311817349103102422637699421403771430736712663317529613934996881322132346380936403753085282501369487491700158970110714981069871441780791711492258749610222773795558965691587889842845945982885554199775185537322790302433241187331642632399272030913968631200545541797106253483611218296278088073970889005100156793413150725152501874316890585758873886930105416100059555335763759636407394648996565321272161118197631351998599574990112987532739406589811894807151852673845501984203316587260106735669393383969811838622727047621506757592056729540684664761652127928102447569304360677037086706540389514889300670898804327668567212201493785397129226133533836751731435130721462386090542714658984225935245492879815425688943947248413717409567862695231224894051036719534219602924002485921088230160075075082560054396475461230011476564013551006759042024881505301179262949382192413555728897964598846164673988529022396304038442131469195992162308468062280524284879406738057805482513445645307510279743598140050125092097692917370581642026273570253868059138274374782165844060640519948869509876254482148962251358269954401757394564897105673443902777461581269563450061709481354320222948311996566414024567730155965140163437922046902095614197071782333608215254185750005526141367545668208696864827993659844278211434708559849861566539991616243721285965630480314930217371937436772504910257190339561601436473340721060284745224812620815525473821176020090723656750938941085081303829872732160863178448015887830787791186301910775487302711809842882525260434397183123500145066925256316622218342037732714767103298178536821351220288287520449454562271740645916024285663820578214893201162831369140771481907393862022582693834045838921600937390967005324604845032428432754334002769557054921849877193004441266495862950181088376381234904041880076657325330199007157064746075647768792342863588588398411628967761442884810469803210628054293430572632747729704281983998556218851875455587041054881157075247023989778825616208328192383114591598731729580638728388697701325660463414559663930172875203283424079668512258502565662645602251904920886231590676499714437679734590187791391995447437937671512657704333708338205540106416399616400329116673323048713313830497015130983505330503792187066547402515148984335623937888935302669260486935098152430932051927939457709066874052735622885999624885865897595997945637196795747761795686360164109725420812318552432451612497013945615201163764516991244120711111554651583129602654135786999215028385469980698803831401344449621335975188020775570446737666309114229670164632578257146131830839978764158011370070983384720855196614738568282312662299909605585627389886311985379980544194727358626283093598861717967827818281773470289377740485446675634399124894213165173952707703029132170680247269990284787397689793813156625277620604701788550594159574271906709246256948932592851867003784384077817312202330486105257600122143114550936304934148123668588606078040842038231834908302155921407245509317481914737024578769413169352943079175322417693808875455027101860923768684470174107002417711299318920519365208100349582316769365653861324530679666220422466948447739393451062780246568790662816613251382866007341354272312907034849874871281965144223068663502368298595708845061222536978630740394559061069703002175979750952827894772419942906581764132283428459375989875089735556271108111031036934718506159089042898179781961406022533737283279073930058521258803331794503875063349430973052385817880205808653180193747931793576749700513511712426812249279600301077439200162823127201820406595252242976419357905416918054875315798146203705119062432566312639818610550125945284154806040574611871767502380066174796803583729660560892522338662666890276953218691497816461081463079436724716293430898693289351615253846124950140810309421900609056475447856799271586891657879959412991598523224268527340165084889742791057349611811580449418229476038471176098954715673839460909607218372844672529640972510640741793792620575658735632366520050740192243560685495547039892548133985289688825157808267925477956130791791776411397493832689777406422514240469677848444186730342260096386918891451962954761334541739295478987468994680170594504257358709832171431366264420138179154517388784439600813450528437341053828943239998195615982195577859869095213949262794589596789372751389718189337013217354149270464141512675091556458023720004316157828812585787971281903852357581096658482515861161502150962070291382009266920118165359050132048410499338117415220675704006814499964457489857396434263861964214945723805545352872417060160830485916908421929683024980849298946242609635924386384519640605029330115543168645977773736930234799821731443721952815347241272277603437780767707148599303304519931324815818012363076124245151937406184176952578896828047604725083514989701116070443571948802357191548447553674972773883883857371322102544225969897375429779858318264528339745967570874693174062262108123576449377479679919545538458417453535087545963132276568833015697519563352830346144667223869635676276848119422471152736309402533269958461023934381691943669343282995810312212104914139705252052797315703956595182970387743608928544695333731171688647428019076225871184551415032917197686287955770234926016807092066084636052687757268727199225904516229684731373631216590146064847244037317514026529913412838366183866605849193833974341051753640122715826505836818541064276365334052172068924642765035722509222813905826108829371098919656387638227305460946785401405990205269102948759962682178185630234128656231922115560992240510948154056209890661696536519168811533241081853327121262454728905859344541445875229299739243213808831582159936779199697803564279778100638613947748538595278065590062705811721998395465428425055047502915461772863460278262244921800037096419867339774499434052481687536422562592260091250963405086218788846441017806007764110123680673301494418726139215977349949952120296248359447378157127645866847947528104147527448750074508888420209435561251076036304171854179984826623253683527513319711985033048293711227846086339360862706092492519822761448089567516870112877283200046982511740600910995424824168030183839336032839119286551211623114463487228328735893113259530940289434614093996852711540558097849145996262586850641733634378168249399850856782634084149638152166711682806063380164295840579875636227256353080129665861117695894148744938436371738304514671369781948576404312820127164642775048243720561920874605403155678423663919574547614734094634056611448132055468448852899765160049423506290699409484009167611936717309809826724533271149049793367071616653493997664595215233469308482109502451712792150010662699235434662230582796298711463243675750599824307959694233600945082153081134820267831817049899710273435975783140352621285562386115957981934306653201447962429165672827097801968293732078195935849495048098852804471803183689991341746475987346324087112582678036389011388623559872527799369204217953950124976913907957267651600703655615389919189469809050303142673546421767928083814629185020082834083960009930862295281321582453847054774545274063287769788335624859732258779529640497337077391347258842713851645452948702222164688707793946968051234351324445886023101417035033098996989316348450572485442899659496637512092047592175746858046454476235198621989692284376221460562331113109782934062036108228404712905443260296527170420769859615860312349866750534731601588510734115208403349053328175201197124454586810092585074977771949310357200171083144201860418284414574341333484630845177534548134980654622741274293508942389901464309107422186315712835618109097122574398978769418264257997138123225218867484352289436516786689701452524847337065694313143434977801680428415527190550303859929045638105188259075785671988281862007670532503700874740205130020508560671595706311641897849366335884569792454049439049358657773934355471038889721202566765144484138396944587635805604021346600543490784952889485090179435254416728728506613215868100219169215354564553014379167892075741214270206510675686561295919058501799191931704996996601575489068402210072399170205025116789697086086799740856240438514538769206080069728455631693725503577813897082821864278283965739312716110144311095844425385206675258515285707699132396697318278502917009161642321351032964783998585049582610797493593990449603865428008770628271859008780366040739161344778984403310138539802356351377212336594428489263729448529083898383304307887710280331148867431517840567148259498707766505247560153539846805243045455060159412485390641153189823171416761930121191299666621709477804841564934721062703569950898889091883767302057203602415533039214186141760716470848470187750207649372825870204553677503802097501177505850273177088610958091794907525505726591273649858011790027395972031623182438395887488419967242334419552618055278382124417718716781139463697436215304743373042032585055872127734482851960211430195790728655441552489332134740469352068922865431061774271368970274025594989789213616288570521482264121841931504332538542192627623682813932872641510177426920320272453176233377212786201064327447301661691288015514364851335597732353605699869245255943705873131567922802173976362107159127004638061727026716667764656488205336857651880371897768946215622416790077029480115528132733803886650634800567032150786622715482722573520564356861585288773901538170987542516494647681620606351467038434791427625802043354944090551866451186121947004950262758831426739336396352951866364566725792950818590881967437115800686159448607034246431948939753430771628429839359523288686170888272247121069398448990332552217237297943993263819219531698853839167911657842342490195565670037009178137026847862322393758057895802219704071431363420340105747058358798597245957489497505338130380861926500197368959012730419620918641537781391222723182865961150566590220312219739001370199117476872496900384372667438022732888884429553632038457618274925780466217854851024978721211822877204628285377959270855571408654948593035928869118828161721115366225382624208419241645702776694685363099566844002135444310595699709313135779556916697104492643702647213489864781460919758720614878034752088116232369930539826505543515026796139753207775469563068690463272394978356686940455823054877278540642350119808511777590297294905491964022744994715863546939591729629495221537094324526031183978927523799019534930499209938529419249805747066622644696663642746938703812276529313869791134172116542076961804954504518536127434848170401053469413522183396514985542963501405918901976976718301933371156052846404940347699966164522032237597774581324956290248002298069325071623353162258653280413788843966455268996661033587453153553893478255388417017122334519412051756937995730073615640431054306921488280913804824516213717259741024081168833722500042739264307844985215670134299690944378409157536719226669349971864496025926660931166638497865835516955192313755674677969428610524451285314627956346286916066375480063995014966558961703750711776739593339902805911622209797397042077118484579537369423645664392009774045129717934019028441080698154929487309384964625296255728786376842556497668951744397238400258081231721834274948609794555979413855831762678283779274700061428127833446169099982240045577956640477373829834234757856175099677174124667034641281708131240636177228992367203353464438813625080645010231215698173263532664176873156889693375242832071074879032862819546262001074347837361376049709922534362995576610844219025044526618876093272447753813856566191558039657974900649418598927426867763379013181398867765632235429826672398855116869047058490998128756495471172351833524439389453237746566193764260103488268063879818280722348112447109357694835322063888443362016928344689071156885532602395207478700747209553609815319306524417571776865420528104271711206748407514594716404134365234119968576789679398080339401178388180894223996347665345973307607289532255011808958165480974442412470735581985224400162835571218419762584328879551886350944123812251916237771949612151699917726157226331912884289469166585533248516614778151908934230510506926768610959025239560704168108168885894692259589194356530214059244256024335258512548621592544226218993959818541121822162870799616553712776685851943557873385543763221470602681283231451187421605231064812889483316526521645168703151132821824194572628931454102845978521485374105648392663698509740450001547865619682357332908620304504520892241039363908375195142704277986188081452248453458638564849165485669661298423921716100279937832999931500798275984556264124340797532973047411809994528436609172618597758408364441081346072631657825381120295021827866444650147193472690017204101517562766544888555770755013815046237926324225948284455085084324497740594578281523410685446803389413058433749703648600285336739365076689183273147200192443158735050622337141747407778487557610247649316902847522885975308382066436913297366627559642242245174615246667729382803882951985465127203810698963068937998569100383928749389090147740654396651261663063526170292681098833038413682378940382770410203936434451528443797092753248307321029577582728004762647800820010533332368707955166046217984407543061023479984892879595368397224167191994807903811875324137713450386703434888748847995132476192697951262558869810907386026253565571941210487459224422328839896447441350745489447532131019234318520403056530150642419790860077546667917314839186550748048885112535166087258293947579679536448172853943013574438872232557273355291505020026444489423487025529782420914900294745671311432849333851334075582952904264058262101557931908464173618192172368050082730229623640603633139925138053136342573051465917412103225940233828735003510571973937100382662183625406438624797926148343699652385390943429332289451910778575664437496726261891938595660561471344155649599835574584340190383699827958012501642878560857201882358203771259076392751512075029848946904852060831356485090507908255594471246719177188109498132677600541391256808905638945072531523746455237544807460484944805750087100832626155360652981127664621830653806119297730831531043442802575156438945980568174556478265984965192811280336886801986188978893089466808051628886331471686717140349584001599784800772699723578270512044599823735230209922076454603306507418138848878582864506667961985502093988501758993337499975900284754426753328366307688369189060950459121537265026558189284340640765967909157471658007680824472913764601193870439609370745291074916908996987340608415978988899095633643273098506267528811216710090942128190188139982290779961637562755973949284701387046642276186186436866193832352257219459430612056608227602056272980113913756277417063976042337099886611847973626783451436944175566260855813151090465615809225488070295179249445363487830782578903537482125756087828361497838620916731267175751240984136512952222648373560219478248182530463125763956142705024049126958298172807408471945629799306332454446106271677278264146993127138780390665736545942482744262181752863598969738333109011399801534700728708390779893994295142713094590421358881371254484195726146975890871849132646467647388257721687239136830386523071180116998323181572273465104784327426824912911364065425316470594524272565962634589607552853053224188404786340830653196426218632205269843455501073922482185802154222068275950177914730380318509545531298893880698240747721176938852111674600002220162134653500328960309582256277452029277883051521209788068087501360526309349536860696900236128964216864721722498717213092213660248991620333185773015888324704282880532768771690399438056344844797029263396101798637725387723210504518003398538009543115656554460230980250090372764331188509576315522602421920775149332978587678155122891527267613378490550528389364402672408109377550030552762954020712845628586234926463687892802500928638437363984777221810110302923752311294662775454042766530590064777754306626448335271535114660882826819215641735885809427198565511520449841390766773481357643171977061308694913987394086233376691260148519764590781349015117055272927267171664295991364146100486444920656194785864827263719715681602286185650922176733158413508747301156358628749383655422453878690946311268101239304946959229840297038505756997353485462309969595769628387005325548319068649800740468958113245841556247080727518908041477249096011629722389474936734482543246310897899338899759169764110600102619807551746710950864615945890243388908918252806515413907521481016511897711999637939075866298675839944599413331354507832904591075564493307210441599798582150968821937320150451189348893278921719223435728047021830459847981285323212971535803794613371458385287932651622460496427884330203388644021016396797482009928998437555384323527845634054273522216587607827259671388320353185944753730850479884891683850052150315323261487445488517821992944968729973371851165607555440728176513157306310559472696170543470768631067712801536362816750740889845900419598186476169133647526375170435672973094113411308301519861274810514546839039401761393967966487133449319542401392332638959670910580917841305654993528380774272251410280014579988310812719852333297625529108845192062350543592425282651570402844745440819638669023408883321117489035510916241212688662815117073471319553805093857385043864660655024045443621771437801163236768421732345359529459214744180418706053798951353924592630714377809425149309187166616089282717358945414456753643554731306236360323510135912475963362647561463029902586391944003801710218801453071513367731418333607916728604744688623843113917571977048357844271715489849286304014846320445649104710965187399095987721594864853821787703626532524796706672693362520014262565153691904959027119852683477005517192925494618446984019194343666668093917666632702188489010496891342025623821850015763612569082739701742266264077262032586233119267528397241678920985762453971229938291991894644323173177913751494078729839623795907763970353864951614908125376507792941827443056085610527368858546674821639167051157491995578311451016489993999420892282186388792727447622244658274858403668160249745870592418255396329181019423309396502338597531484945899175871498376342557250630987331981322776854713742678943047131116758246067606883316371623552322764792818494564717796162222430594005259559353666239800656391716779989730594787737565560635468526159604071927877465938431361574471009743332782094403025771243280317025621822323388004495513872149704636337937080478730161397941138377645260048237320306759750953818107509171395014237600644504784832492240729965502809432828881493087876553511095251072105840903822538744902680483798118866597690293207272522432436151543606055606768762072901940944788984260400321051479099129348696453200428593752164970155509671655254845710138579864076390320147576618499971449803663380301861990443379195518584071789477221488065698596374747204759132516468038798213650008483981883373161651486479663361812204378499879780989770998608051718606811861683642444474839363507956232495752556943874812836879126117722498700964180290689574056212675095243352814084483523281810365317417232530030943161137407904329181418529149268982315993319928661409301310364980937541980155157675943973991321848845825884150326490442898505416718221304147081566822660593883007877493412994277556541840408278219625998810552090083118591595053193440245118460739507289015964169386948921577633891267794183382600159089770010540533200783082022188848184387480364090011854264783187523082993437982789583204678210602570655670483152584929836378505531825759845699331454472940742943096982572622140103409380108848339454990625393477117813781928246372251304477478877727024759312787947313951409386075616139311345934904321771322745860156919020861999222127950417770804964090515190878294325785990684143399481995847438515224491425631153943887350305637175401141156459310816681346494519504888655805161436308224538762303485666022482630298669300053724873576365884227452386181499893883361143682828676686526212170717671710595392140356874441622697257972765072076562095955062787388370438601292626406026347295703268663359138739399429766578843498418575204826465705582332710860663509189490323558083976876273433609065747682948845426409746717574657997610247535009433414286621065442747295768528091495358465618980992593607062333262952945792546955742635586157447185540546892162696233887003896255579714102441001063158029726275018794705447667159516859701594018251078018444100914393504451587767169624051457483573732277926037407954748060089355998633669958494278488553315112424342757051582215113209995547625244844898168397569140131695274988194509756404148989218449707371640192799791962773934452484919279785500114439941440725981873822010459140835653228448079386655670635283171572997563631505356395978611202869462458454475867822544310916321900998683477516892798253505977088821053181960396014558722423239537765455663717423755967014866902407297431761011027878380747736498002111278509145011758288686278899284224632452660249387667657358538550213423045974320356832970058548378693970791226401174806442536845489890788151422946076675150785787750899895432259502991990326238264830835982707872739198030440658556208011986228969528593325992076891034117313764118473362043974135620131944636019560643538915089952772749281018237947940935237488733234839233656376962821530231404811940832569737227315220839713800074137698572678705324150855246915089831134990111643145879645175111817976825317737654473713179812593115768455790774027542899834698038944876530598856793960673310221542234936918272873168143669586381729076287943583659894023057913689101956494326390177373150078507465030635287287712640889357055111679676089673411458667342574168365570613347648940422748189355419159658783596789116573813810876920741663683711823485532135275666552255329328644736477193191907406170947935485671539404912016778611474756435261027751187922747314470717753661798650483035222468627469616463496582897618060264272345159256406271082025773181165585814007591221442045586385073409162207773737845069859992590634337246022812283955024993070997741336057893559904585426599917184829305786334279040500851131247670630537091190626402484680350300649417963589114669866137270511911180357282878538623560471823496325145242246197917436581724815783050412889293969967853599221766096940258782982568500458220083178194635986944292847511979351155446420408714564795866474220714215532929422231700945060778119916751369144469364232267507686507866322067202780637458992134353832783851381438228173732739036650216809651432300054931904764336264559026057043776625086944354846356813157011169906259876205355160130312659749511122348677972362515963501694232746143203716216313590207738337396590460769465969078180628522564910425420780957566072254908254084478292883905565123674300185341694214045751729759431440730859582397719686970246629323890004660722896535701296731510261505285154590320575283098109849538226951993581036594000363394390461179585538869606713426738373105161792782598646274849072609285218170092721304832320055738840181672016336188879276787216308757957792332229164368332913722299387638540272318595909314077200753398483292108730859517525862933681200385751860288783579166784535370098168894024855515898038245370148863467576956309972532257146517796305383619237240987367405357017285708128636231023744732478065176235913996621299649146386951584079156974670633761756940118994769840228766834426369482608164831644366661293204271598865604382651907153980811236497547397664220270333015901595984030435472066899272068556355563349176924239599866149221112091935482709493112629747324383208119123404391968550505410655245617757860770295026538791581268665820608240810797918017087985034940980275600378276332333059204552183226686659239080978172872250016959663550420653752361006906482697150319915921702383815547827961842241000285964936902493994003639457442805576769895341269315634628850230290613809790297850074672658577638291298122152407312208419064839232759646552319123202690935767512467451837186340393538536473364528155484235760694151333719328063590948902368487091528405217204200222967178962048151447406148557156528965404055006836448083697182857205064933455096458277479232607252088641791276944577474952803476671091057883949183721068379690664991049317642418471806202545793758318980736271285718631015869761250747324598639429458577577983766085845476537253911726598568925136622307914256811933088319054764452452153543405683181729018180913780914791975666621390981799426381921089590628936678681000613591246117090976104154101312985440825525238163890916975342887100260679526378834726865750633126987372420828636694083413824599970323648334719879459663555667820648774989652934519142821807719982835811127348951059886762658291466297592577292922361016937406024517961870046722773831759043010782767284679641718461146281182671428302081985415028113746330176434694197235995534004889485994179754746211476454080354446541094591896379403534643799666139022936029582440443972430078625250551496161605250900054284349493117007414635215640436001378219486199220222528097181615785325088755669838976334994151034103527139227274864149460767304352010085905028977798519694103227302680183352017901146415174582709588912509064777138709148882925524861264736394201091302468397212009583358174275895770246265155724443609131276252954253932338433413153174742894692113117517009165164788508927832759029918652513305224935044626285214237704766261658258083147232201189024340153417212218282106831621646780628935707593362137318384312727129117354588779459297446086994118995552367493977763499768835523176334240727926738848925315005332767616069562548667133597296226466638121645314914848733175905484755430794109323513986999376008435027957444476198732531262319056321132562524131822153057556514483608376670118850025829667864429102487553173347550155542013296968763902647104356894529401584681026012302466530394532051229025506089404792623407638451989835721021738267449874566961352610989192602355347048204529731669377885199096537424270161143098944532632920510728593548837935410670300112645560858977108075168061956906068995410357400145170565669266940428248176759462603360417071688190612387912649025792439939165963623363947018507764697117549784686865200533249926223148726981037873628457008556813920847542874174185556426208125045732343863311761871336298075779558320398149894561807506026810797174129927999045004382904344453792061363547012657313452438586201097805811187350053746350287949945290302405801807296046592797197730482091503162801568361621399833630673579814030647324205084325975161517617988814324828987262289003986936459421524810064900869842683207059593284279753642568939434840916156199953612238745893297387315583759314233154720859109352193632286325382361696397267711863253327655279244709825908524369372033018776180776756703727076150134405913566481880188018026596836771363017611476594377736564240621717181883427638931503083817716586886048153768330508948163174966506552232724699848684987828328676624589708303046301276204139404207702900154070085624012105246510880220661439886467253653432657832825726792271691265618272414744413260097799181320743830735316953260611768256234422439193601052530313184453094942590237517021682729564413418410668651939687454266529047477372855833786911835044095238149361396064153055814356176578898797271276764953238774834976982528679397552574033634706245419515506577843524710678674128749214850657510742337284295263443778413238633903565710909125923404843915429482200924830583655772832355232541409536435426540197821286983911377321794143230240890383599613712102499309976259523262141192553082540449324186221673930275583939740032721672777203046867098631843662282041137854214930256435080426762838064893171128834567091190090443407355615603682434910402339168348382037184128590275619797278675180136156167074298356825116140857579698932734584866914743309931942390296492787557671774753550101007216396861674732299561058753911194901086444686066492090130146436444000086969988634774031891437591722602111247327086254157960091515738239888222893573056832538222297786318140021800698360692149872908904991302343264875291893886215202957869111797085299265076798760044758720887376432007364373614771092443031948835434988893472923518502426338176342794395726486902862186156395963177330116174825112446241931656774029720338348593247601352794466468012979787384628115132204042543971644241312538891105007458580793564249325611228378758244347140042315602645902260868398908860681656364178014565057874031218727704589130697347624194482148876814010850039266954225950322532509315710734818563638360824529078664760340423328741664732503072637433940218790388236882527276117764427294867953864140689917163082641540800187119855001060936365548322782944304048333911980221547279398444486007372073330712886915426327313632823826779140258813681756637290944609500801453303618004116441698782986760768821396953836341226407839187017827234913527412588810036004408259251225048493389334649341904297584209398707994661383230584140820981185911719239360356262411724033468069374901947192874188892515354331488554509018538805685368749053013465745550712257377285835452387753289881690666242598991801198069502400593482106114232181990638572343692405620902395180867403800750927897237192903440955375201029977990367569212627864528902369665091975473970828565364566466398507285847157351862156078728642548442439114513841559681580418201716637197009260600810616086949790075131953726974153910263453218942558320209648049402288949329276246769742316105171859602437763240896593838425576001664396680702667594141335302053246669785311029419289198921815345351278737832815226732323947076009989213651825775170666218094760910657455373469002945962964117229228210351957477361627555936714103634067105369099523387595409493876393775418871676503935917270199459157215898257002466708930286195138915494993493984621269156057330758472390292791650806332790689789361984184297910172067645229875162329502795834421650472210987770263886216002004017596599806218168441026953781515530380200864742748297900092321404197131560445302947998364937865142983984711100349986350304459846158906204476581186535894095511507642593162381306052542692763362976346009497422629003874102693895020667559942075459497566546622433672180214640381844471766168046509597475609861949621926404794292080719564418216404684803748483218454516057801627959120941154174888693291396742256761236347822762215832448627086799310075759567885401200341185249004841182022738658433580809754741219052762147241430653733113332940430742461485165392815091888089245996387402368479229861081607534370527834879890319357111583905871841189800519598633415502849570943993872072403468142675833242828765037102432109065213722005426324130826448975989738451657525748187696802248404968432330554449307865598119955570870227519735026985806668863477799264836150616935629532368656069248549224510023419880957270828445944956460613767873058987504950825978038250895692004701661652981165788103024895643883521772762911911875850213357956076987614966278549104382743855187436042709829115200036200654388531383040293107199465013809996476888073568837442651681063234575017177284616610216015590410366335124406599748692303507869419064125660995932150275056302751775490039918998430995873161648601850023315897868898713410874199544838610294328820789005400756437649921047656072119752168495101946953601941470558373862703734324066852483261896321109936788280037114386587692014992075249910204594873850323269493131700325964785490168474324234457582852850808468261557262173619423397812536643597895248205150226479174617698448231714977085437347350778465865468826412403009922719098781553462623159916485753854850353660323750105024907595915607694769775097450309370628888175373408608829662948955088244930779186599983875136062716583508750070678117428115575437104165259609138746636948875390065119401802586951126804601039710946225801684142874061340906073213967395976493112175706038559453429451626851908836668602229830228140392316107396164901182257379722966783120735096210744736890786133951229011481401333529260854045824426520959780875282460440309817700766709593573141578249396649734650542163513587704023517187809911741004741876446279705546415829309988908218724520766131454479579668546780612431561923478560299816432692247175106559402489365707035159034511485848418089739091992718207658636036343491498219570850120213704278320836644603171996194869546548275280749650437360211995062750275175430735952163180381202377472729394776847283112227768982854475564153641700472130300721473037090468085733850933894525575163090059422601044252532483050092987712270004011963293339165280964248057067300609876829681889585111402698858680632963157687121375787970330557934813951558048298405809888784306155560044354166347872402146000755333218634332793005977057927494927696468966044205575782977317001448772094370084901157079878533796448480597507272605679529071857594842485697576144560381771697814427549262209307244349584462326864849164259033445014832274921908825870884932054652212868430965169695743879680130631338521414032398593086063808288477273060404871051289719372316849231490853922395723080789553329537179405525442022303907720424268578235147836291601696776841353285695371156654703350752328535890614464045906852838012598272853461473236873363003064297396550058550396805991100375097419431701590264136132582149139433536292241773101289989325169763973128014543902483963776254468724604970664203887187466262880243013541488104261452594300953689703409944360804516257367387109552444058258360492695573635886578319306556048450600738306152889088699644295014211334603354215846562106371845183751878712271038106168573366096789319790375175102396729123143112673893077961919667154058582334497962405170676167966745201459507960372980918392448794426753601148372652692903985221788470605696411934889597197184024090377395716181676561754910423741989196265068590701421860108959578632448497494779704765755977230404467444882019625855084623873364477383538878220431098995352632195870683770314661947703846525879518602325878990582398178710509607371515404071237838387279485405481863739523554658807275154993109013960563383163173252280391421295712647327979973645082765083990331069963215743283911887835795075617159004165556132605524926691700952050570828423682191095339191869617130768429826620813280008979791295650696091874677502446214009982619055912888914047702941035600966175085800918091890540336340129004790049149670752001372528922611621451145290975809756213954691673562136343465083307883255428667553895987546582978209063758725614465928360694764651324920094490544631971946837643581646946119183416190544595439584049961192767071210569251018523304135189436075353038598125896679734765376841299594698761446945884029269040623237516936656108177958165495653266568543464366278337570261171904175837232957119173437450961430802344016269362072105090072837178238647820048745576392206321048057430445549439026434029261638061920714400620775778176721620638666184537730924354902902218349491729174588331040755881884942873465922377202115001092312377824810981497678329771212135609826121021282439482595221980586502355564095451116733335470111551928936410400434364807585650836418478440699698464708502140805392227330930152627755210751329613781628620090606072067133374203139625248036757195074695055595715321076508071242095614318786014548860687504980534303430943119572600237694454887533375727866012337463138331610864897913643392306355325485065376193142718941894377213606999051076509285255504710773918617948562731141576890903407444127955034780756174871342415753368977538541927191226174716864102703448410932420443882041118431993161461096636344336428088771085013121623533154629353322427236932044863327974740154540055019678031985374721239869625653822913890906249155986622595056394880636547183704658134519490345107251121465113904055586919093842413683117346059260160606515959081856715523565318376337576403744805045671449533653344865518224881329612169328998431783103987373702406001019503346037183267391844424302740462153360116766723814343396340501629768361467157364850052521509844702418232984815479926325413305525353651071158284894794518001424016959529849707839009096871795176804710938971751338787320625573871897503167829452433107011456218069850488125572722995758970706964620647645004507916639375147652701492346108695875363628604753615745946693627861719774569666088570294903169796760460196909475939343654290696399050198433237762837190157312176625106543971453575845895078695292687582695128681890982374208468963504705775420841619349174912917602219262142952899506125537501236588276761720311182456011830517347206702661366413679050969485613047640866842378307302989781308956067266432589567825252171900922587285864352329548721620511620924300870638018950563263137487580557147907452233616202430964893651578846112834236455902269958630404814190662096708675752203197353121614904914181133965543755465587991078850990653228824682671188885085154736751224185617932428405834984809101768226913595967339030946837057203746831317567574350315393453431870584336767815977588225906998638172649539707605489789986576239346129627323850309962838664562996445920589138178467119137700545001286828134103495727079523447489149378559686230529515605319143860372701021544277954234381307563596403096417623774048419318100090231040115597344436606108222249300218051033768204668737878160990549724090913726749443773027361067244908862738144203159479459131395672185667102460614686099260788959126379060525684850746588505335831885971795342009650551488844823286405512776533907022158605066419803767185663529722345752549281277184530496363277239084663999413663902092442140290985798511015255057270247563408610416947542525604669686395143117082582764663234289550895811177507901258972530001753061116959689201862760005999764738170695922440772269762552001247525606874726364975459635878305088734991475498474382232887312173149491150716485565763465808913024318680796168624843616431290429180452020263973902382632667180167918759459103851154811605656689488480734233926843329548413672885142800976092336408605901993565221211881836903677739984579943311633736320750540707203726942186419932427225257804416742022392378161995076731459886836610005497854626059625566461919030341562281063446845809441161573472574921192058959458692759473983776451581258160289625783477006004538594200669214903155517956668793923818384714668896488640603153092527688953187116904701534623473389238004502955874107241104821198929508252783872816328408032947369406121431638696248813024703405327390480146558114412996710553152431454950718513859247669828828816038141225473892800626097197566715339256219614507059180332974442475457099303600127538516136499340700661902162347141834327150627881850513872669901149062734442999606813060143726506948604217816141454694168219788517627525354149174348382290477497465472829241148504820566068641497709463559267203861895450313689395948731211886730193349998054178855678986406098128083308442515781944392709060492845477058318286454711659973932800803888467937608406100980894470795282348786618189523668362173080732954401611480338405173490025746291397059548717371371752693180948253916244688346004365022567337678522644020525190976334518177637319360257189973382887403051004488936018248151102846788066904250404416670878239959952685463785191575017655897520546211056706654638747942704235153558392177783335929781689511165317795422231626845483820576973525224473719976450317722869549923792457887166776100426468129591854691418253707577083616040753480057899200644586615829398646575176380141919999967404845104116719612192167688488666550322597093350291491502628477632368418225948516919639473949152497788147345687722186985340247622480105341651350261103551677812123027478681233031678985687723644282977287840321223070956239298635596297851404891853945259271003375443682053553628672893003665779988223463328563032272359937666181476508957085656149071860563459444191414965464830854713938537801435909671871927774693137367693414077685969840981344073808370167940285575243340174304327915303345721448615757663771305548221100018007028979791668852666034034197342891102150240278199706854411748232466246167366639848704136856677641803564095130817948391760118713435691816742223048200670595847296077414237290738555838140646104198726167307093166906490563424823431806596774491544145829823194509380472356169108468181682231797378268119889557918912464080634527187564984507580943444877433820862918537166496782351429020786397250061713506976455389668793008478179300620270591694349125612166459776856988530965829440293420797698931237883149004307543492307357040450958493508212779141876652804801085613651033310626286710122980493850671953123275102350503389553056219037474262933965317359341125412525775981696771693575857225838979012742317268674376034867559228078016845265754867678895032670075830511411037503650715487070827773321060414336025474071805401496552925850873949604478308574564612965148662459950488715460461512478508459853014522668793624055191280617789859711776498821046902733834541870961808728535506110317845599255834792968019261494576417239753824950445745900700971632497275571079156933832925804985532625498556590137293635376422317243314218410306440762460304197314300683574587938090949370946880127501280665356324358855243324922559627354652635903152925673798049841111013232223492534507808028651192626367600902060577461483640894339216247220606692034989238415737844149684580977785460307870422006603342884345621587837443395712724786737197364461498015843240352790765063102167025243121264169743539540657774251071266676616464653318049502560880393717362221810124832480128784860542706794158737613594308221298819157583738525167175109541326499544478514472520875872362640312497423129318245782646513854719786991274003757386964798057938699065668235097394842599598072405885799269570303251691432109742278163444221146370048754864821768327783496177046857746055426871103390060653072316471968774741487807270328115956935798416228835856167868897037844698575288017709566304257892598368129394354148903679352162011082154536052011141145028086140676726862004729787592046628577612838702224065931259364156072397071851882573046350507278871120659018464872245814378280460203810780621506071313607653676786916587094001078435805954670256068666188384481335482390782227352970261846925162521101440869573387446731203560541399760926437920611617165717490659147252084441727134511419290149047924320380306838957200314443173724420112633630829679486180267924530703155463817511752674607923132379786006349380910796780864618288380525843551932834625586049631393972538648056214462305641862347521059940462060020466197659504240447072836703375895924045571926827017755952610279314281508910715236023197955134081314493531993575086150582325292056120194053172899978553334517764335196902265572353528925169323732905102448916076819314636507276877321215908625883672340671282769388875633708938014615217203286876760964291985216738683752335504241449465057440612310095828199101962873340968712250398171544655358660935228911463577326286435416076657430453394741751304376360934267071313709590046409959713315079894519865838058969775646422377768946173147030034717136726520939060408906252393669792181637609681932180767893626445683728135674979550357394600595440494494658129168572567332742551542477144342477723107209625166845866397438564400660961370734107603298710044592498704954603029697904773581223198181232165502861794984484354935376460562122789571791721687277792580904264904146592506585823182773971915346723081698161215758759804404920025471873514023193291430439803501161147972513889286229467718095945023434546608121166616942438424968582738193011890275871551133342971150958652701025861169085681389090836770478604645582509818416471819457254058680837764300508224291070001911313030476580161217287845817444840338152496736875655280879568181367782824458326041606156967708105685426795295973598553857040879581981042152591987021660907096232522979433935754009206137829948368093632728341244957688021598248569932957807188061283728357052717997702460315244668394315322816189703475246210929593722043482529080219983951273078442628106160254038485875089947499927853477031183391752250238237485453127628931865271353398112068222164183889227164256780077896355704170570861585331130515310973362517140966830152367032718822794964148560388722532893758589440507137440815114978422052780225964490200752857255667443752697674859740499900169266554933426370125833493348147880188148562238144654781069205981668386401889798197668714677522655788198517396455992679394953839712363189918436090727577979504623329652700254252468027695370545707167831961132225637769492203624134285551143819902924650853099223872544091619550595374134290928980783036428072982220333442561567860865515171825123490199651829283001781038741287961580538275748620536976880689276926569287777468861415082482539369095815492714951874860044336949920687554357891933197350065442432142615715159971501011472330575828883491163634596014363836618217159433659207025193653493286098125076777031985166688579798824543058058867521257585043262201509846522658723194298249137556198943086922141274897738976259064107111833445631316277364576227618693454881696672579046532333569246440270866073549951227654729260811834787044362736207434325552977134663922352986977139009880454680814616395817284162881986185825640260615399688367905924564032858005685967603892650380586089568145477679640256880210180306353387879671765994878379865522800641374649980605499306229702302044885938058949575346974605755197421191968637213669517095455885987822917167447468506973615339875259971288406048170761007577917876595509736548689764079318473197267323216022792707897298893086910337817906490554310837235607187907603549865119596777641955719271274690674029732561471894462414464313497058726467596007484903583305057756227738302726996184633654009611117456257771712927849752582422425993487616284148055039522592608532657937289880531465777330463836979970436673791498193446219159634579223780202166352985817079199696294016698555946782470268069048332137438361483901281578000249758162149949368899556608135735493094744378572554895281238906400852405029324179112763699376282868559819888110457033247482156701532545518135908013808289219386516706022344704684244526783068144324421579764734410508180782334226948009523277183237036176878721102161484763182258800699009375325992604331917720818021544219401255155197952886124957234918730137113184273317897916243694655080887933235302009200253479922536213299300971779321944748563391958607796908860904566173581474608714130557720217136876009021765618408288634555405927767014558328630740509466490576302852508187194007201405855344872111523780793013981556026991243053016428372533532590201796656367538150067615130232236186596962631808555890225605504868319527029723311150460288672251657806811867725523440666824077144063788510812566553187325372024752824940283851751587329569507717158626521126396231363592968351447277450761633144220686595472706919867007520541113745768913892352357528830805212664587723930316902880136763565397367335883286474093115147425240345839146734896456891210613860244527636358871690891168964650594781612213876761609528233573424096343017718819220343598968719300962975516836467221075834422298153086384566724404588478235236787658076424225484127661988257821537311703818412086953047155497952819182274488976219658073831833456765030706674884926075083367310838716967719733087952341562928343981980464326942440244781334795247982390046731093091012337600000548928519299409187167739685410118404297055602073280676465319394566367596679399036771646036289713122931741847422215824415712072823451177067152654332688693476389087056388816740342767770291653117299748833902478026125595277218486451872482976491522893371030003979533633016073276426700854005731364509417124061354542371506318145095288200440358482948425715187178060582149130744803204891539400770455590876819966489526612559818403763248846359176241402799549039407286309548341026216211274652585462577632959653321969867834681908655622086697085319041653602671744736378717660115565382739400441432144486455472512341865355328183634278871224374582103332385141475994862929320438257278619428231459583775661069206584540768933795962723347868731687353081873829859777125780707861259219213108936118514886481962707146273216551425174997273029945343765737473696501891219112365515001607168473465305992820709298695245836122291787506678891259991865015923706799532916615892366394357016218849472601697282364342750347626539301200343484904899494501007521204302641625445193409990606763978088637193755617337306242544054701724430231346697545949556536167266596986341369041339130744076656133214147658157221245403070433601279657185893622986560959484068765569669507868405060684815777077923788817509535780632815154439286079824431060579976256616099049811723986470865467215167867711335316650002467096078531831055769803830269381501077881716308655599268159176446861588937470396820935134147950928232090902485429247319295322738766297575592298300651806740823429985840676424992667338921059080279482571018369582528210614317619392856031410494367136336490002216506210276837813043365372252157979145162225713568066081018428974075264613219922795937358653646176525904007267749590085771581854231816615842916101557914610865898545017719174693775615748455694205832701224308292049915575269302764017484348628978571338134480458666953979541590441153102634805961660774846831578253922276100469377527547241401488531936929124000458921779584260611211575301542170925817699937603761306017264957402356196205546377806369279210655666129205894285114790291530495302307608998543016049050079488446442736191011146135417105203903482931566207607959630049356328992779162361874397882172812897847950260929759690194295304883935467454731669092304753207157820125171654556801999355429026403726846733574488613498979505664107883117216206940271914373915458561556506661070991760285765217139106859540260742429230996142133385115488671736844643708991155686226592347169482346822528148441525628289061257364531255347306361121538731261013118307369513562414796834004702802023231621559656544204725929116347999621834971989032825199548372695548067891593239629452283046450968759724291707745535485669510607652456677548320475964064748051779944832502403714780197454123394282543271220241729374738322465045884471224230664598775282409544841085443867763643799428333079908974561426848203017410584425529887152222287398653995625005703657695893143926574389112359435208500313073028260192153562427023691218804457826363852602632848176509825151832087339983760726007828615098644684313808521584667320858833657061870235898896201939821601653962027289776487512920694976764145552690544297369290950618176305993244669871412619595136252215959636497339059169978584771946654414801238565410869261503180970136413211853540105802390608113819002444173309517275262399285980795517931250586408225722818760975306376152043236999188693777254174190427217011151745966642269825967198937331039378563896209860478414970046161115306494959625115558409714052098641340565231126307172773283557988905681800895362396324442422335550050168514906429932924373230408086040852888188448703076264331121065820570101420324427491337904486297313406936621783401314598189137434167519716422805057991343376506851725033738498441230612032539788644974494446318546504797611712264246639749069824124895954827319847923198121898000076463227939314477486050720225456707091271786044149249654434224587162688102245208035021468573980153295615314366976687751346324354554115729936273546984724776387168462424699746025857472872422854421841618734436354502674116306164395368332708576503588738491207695222251678180401311730513305793144102550137074223924745317879849827225469568289712285395024895981084845725822046125164156727329760134538575414976346830030473301698130397904441011187187385971779383719851931626891936028039208224664577905672590603983870966879527879315718937362275811321039634137663252760666597145881156535914771877254983395900587182607496212103388773980072163945292475393029744000474108185877161932538993310011147268020980993729329187769891515413284799462054202574875857945204819124459155664091818303449277713461142499410455043211063683046800610015085355730433432229844060614683987376591928315910759615173098228329633653339389003107794621210824701531116740214782757201086017389841292670597812540134226872599180495030119861421321477508846907847720417741746720461791845430191357977141886772633879823757222512762310149670188983270966464361148365769385504668037769301778770236255636929941575681008502505276889163415945978478939876264077772780317904301152046747539829821664845261753588140189797490358291659974696981178005602846881663087495066535749738100520175078774184497058989933997916100056642646402690871365065493569672473850996933719998543076778642322455150787353285491585246747145967612886464162654133164998496904150641279239994792473408892007381646517891033567225926856718788448150992759175700867858708917751927056353976827305568980750433835665360278560668280681505067358597837295717284835771833758235151125582510483917545918257268178646829080074774132968406388793505035731912515872008350039590023062741085272010707259248937232895327761349483249834039010338850169955649572157390241085093886906099244291604936191603916569212047386716599126632028447148061104781032726749260582911445283272261858461769684681256670406383175660767884103286772389704286423138593932570705067071498440517833683482026010059967228593695122317011638671823617675244251688827548786386438384226054736966195601678349189426399464907883565159387184089984031470869080317634152805240485911765817430039337948453090981575818875726855015475783635748026151106055908984167711133828938103219440552924315935197471182604012175592592736958813640207045825517047636050331704263648396483393777919732650376739764506676053773394211431839210695396732726963537061230655717580288019298538409537838770510503530300646572104760863496944168455282894154011352338806615791421254999007479830046892015517933743165793459387021966728844822096158238247858881668389964506602370032906688201499217705686835876210072831976008172983310010308326445432393483955795538249145402037947572892739685977984372480808696880502670770578565272561854749499332808592342171291770994320194107359645213980141005094747857493962719015326211440465892335815786296959821046303402052971218759737929972412508066823310561926225465282759266849550512444127233061509785906558531608168164110468929353568460409833298147919963333229937646023057318895426266008268803624554619164579684251898414592712234030634896714382914041777926801727046771687436985216532747869822725599783132067932223143210644088581459504632401197934279411336834672621772553171306237248195745366737497295898545540805457611103508344294222147972516712768344852052610807421720813712470950822389109735851799828635882495130041036123277086541524367252205429030253275880325813626764257522058473337873061225357604250272554809351180195564530544997689236462549352402998190671488242268602390117758007097771668348743054252755523632091608026764500859255425675135714276861687393521717991574337518805322874230156322085764751313832489333016800920949614991527660608010260389694177512057038468367102458972848688460478417248766109239867386184133702067271664228974204144794797346029263401556748604390592109997495228274241148826429049752561933321103814346792929484937841688633765391887792926849927777486943527287648368585633117344866194694097349566636986907965809699196529262060758605937777353200129866160233237884613498725767564649926662600165175813156602272090828884158729177993683866536173793550376564738392336938366351448060525029865937681459601557321852260039039410697466112601528267131473147160385602756381242741164356884499904710798732200674850363383058036745653857567658796954086580062466596536268240717458456459863232818334232479348322706979481459707976964066608150212591786106632825067263916689187311199352499969728366890380314843193781397657477013647224120593155179043969698708741459064798629973584015949377770560253231819388585863981446093193265668445003217645708255723380485016009708704260874186150492640578591224109422419037112820427188947422781215029765275427020574507974307266139772433756821446243846027092490821651560960983956899741072517310622596316162035809225223424096476785164662884498147776606796081623394452175204448651056931066834216166101738163771279562702174564254218108977541740425117203790874261113180921768352056064456000457308882918011941904639177668753422274050068335540823657726642031190709346217486617381993098085944858007061447341031447917630672727000758780301003563501753700894157145279395004747889917083493097118737998649965050798510679885383610717699706411072949036639249402377017884398708125594260777385220505884510410679297106079089602839107337419931484779970149093629816920009388514943687944609202200529824966792983794695001870090738939683362144458008558788827835233364801367498072635222996819630700681927938871956461024528764115283546995248828291823009169347620947257349156965904245582807340005372097656088841058000664966317152160702097220828271991867762536432955118615629339967047754853854985935321676383256356067301146901635701515669571266240926251434240431859148250519571126250438857137973195684833754719190683847310163703458973288627541450801629311909390891096222124338487765428843439512174653376130514177639788444045186319963293868633761961479970535525821481412266448192028950046050180770997129484986235279717697091586586157618152761078133901959667149713439621914592083024837351430089087703823122955769408818742353664367564153499819363058653632232984926913211309303044642927538276139163877675775755379434634775717276677963130742288996723926058085426601181723372742269166678192359499152397507823176099291317965743331019907058000311307948822221144361331768809143079769187789435693241711692285936579499629667420566611169054567579939880106470687637625394543451521085384617652411456434213710827808572089325728755317883360324064391380659728719930902906596252677061622594053367165555859985115848636901830942554170429472322154747362037525327224801896842188151923865050397254849296722323855890013464974307616738454475931059526575154085346334526802727856834711845771853387906460808771107813095957891981358917853807196711190771550037140869790163687263093455754259521546314520845772245949833933926758267593428512119295169792940351625167652064016592579238168827728756683939892074430512972975946593978412776121179417481686108551009514081428571967093472210759087463538906084151793887196393839014148630475847449804664018621689096295581938293240755120515627276721770885913450098561166760447424205719841233307078958430686427176874822468407016063956762288474180297959534580879933744753606427092563548901380809073434951531609792994917939951240375352708553834064544652710603773372141147781166761814802456864700354849260182528275970641889728289384363844721157209955714107241606991816013271665341017193975524885131501746501527159337858817693316286525279449673718182717048355569063258412028899431023868046770102383600881755791897771517593394701833233653035694496510142819236674321214712509529421315231299506076895216736682100829955267014649326697736464264996910592895232269811653581752407710610905766178269793692534671453136264702965916718960263429441406392532330152817556360279028113937510576536897005845186427626311146422265143003527850700453501789047752735959342971696808516131321948937542313197832209059882973484687814205833884998485210794756973113206105943888846856906980593029730670350836930941445026689973824263267649771938918215599927329139394888461218881388359015441959851281670221417547560577486071163688051032540217724364659398995086869561614017500532676017897420179444993149925153906953051849920121976618936737506918454008792756596357655558783146688767994595671330895961737897264814272936416728676201475758755866234718274543932604892192841114220944891964120593015234318974626643435578251198671612002489524526033387365305371144750695262014122175425919134200123253306392993521276587086910681442297358709068491675976995533348360797986177256506721121473361008785749192214948507045373493683771021967754019256460895490885286299828907393499861908235593357309948470007119117402560887566761950686058003100048867963986750907144148996837865007563597930359729535425360711595508244066230264512303723210001560914264513630631638714695068116078268817799543204690590272618104296047419908286357872173685202325663467208023013841643601597018863462375933926183771734724545569623436397681715610996826274080593529106231719842140132065138555625662229835222925543498906566936934506801563450374686895466274743674202715566717341248454675347006222671882579345756304341142041643127543636157811441173994925888140648563493476568181299176621082667934604683081351952571775353663907060708722154947711666541291662605160256730415060428143928027504604514495931668340021174057844636073101993874818181098011832972264502880451221337945780576416221855485403857777354070924126163051998817611252503077122458697276634480309691274124571205456489113123803095174709198665797264194759540620995395485908066920822989930088120001914776379116849581011221508922328128346134613101397005480541768261360339508785676134946051600294718588807971548782845383222722289738080787113115991442463080232936094489491173225621950916788862443532410937512008522337815705917064072858699459666310309203645487336876176540500714802265577139980729132377158191500774955834056184079839044579773630048423566786345886555180672942409882133131019142417155025082094824383289889214727841726170882812825928434084442376400464848390615485151253833390026043601525109786797733519629843161203001786301383696819628197994221758233759090969105856490128437196606302102180778960726185409291837713433142769412571906745499315722618302973586569173736829300371063603178851531909367903713628686019742219588976723976675464908856462822186690406195028369948243884842044816138175773585627166109299468372023827917658486187367081005041007543217934276859273191871352081533310272800065158077931049649176204938361133351258161764486604301204651410407566164363711848779838160059287519477025984345331470719521024228622805200201858168894283357461637632278158492764011643544999275839554029622506972906852094767824339759420475516865790503346217878277546977245697934647568025566050467495619559586694963064235891523488338495547220164503886104330423789678435754477945558619183635155601501126352573058230080293976194330128266069973529955754700447661929098287822127107557657328359589097201997421573213847959480501113358500720018690973958254608770744974466745206351815396708433082974409218936415911719000756446258664915966422574637977957506201129060063817169711965546983862501165969976284115943694416620871138030740334333505777883692977683825693404042912001345534289973329340046851249497427255780978106700292225699736377499245073046759259123929232807445457970901638082831043598701158944256431822756091595748863603111291605391064805968966297786017405623848257979594449844991503633058070580517513666170130775977261286778601183691617990733473143497673558994879689032711941273877567529323970930773431667841440171790251816954588758193855874424301334110898405577162832192449867248758192541403646455367846652092032827290674882716196167036265377664844497999702353160970524005369016688550796792462867546868715705258704444077373787885568316596410121388756643719857964073225668667709058513247131972237341307125491087860672373239476449044462629124472648200704037684284614609997123024457665428271260776212075909590731155936173185897703778131134692319366305952495712127671627656253372954301875404071455228071342349340036033083056058600833069795294062357686848876509851706007163503247374259169244411177310734128296466867810517448487501262966744471301600378756135684504648794675521025583972146819808981205877237943938253003430120238598792872577329580671239732451895915671007536901187202055130504444766552936468741250497395123308035207405677296059090522450506371554014893871723997814038242110215852771685959174949730099696506259196240324631839389039812289098835842422231181459172012195051885272723366690230700265058885880673156012115645952099985233368619590189656569760963122893954175971746505306168694715029921984218174442244722142679298370892264625585178056803223073442511316181938786798728608804546517361650518822781748069236763289674398194180537729519630898216407027453403374637374149708750899613444644162284027119938151509079118711818052802047193183248909535792356156350888835453634426779237188842648678721962548550728292851940698021609654932712014963227345820711752602163544299117309763599685810116769412112337013437171462510969802319979746561521733208829141077436718802323330750080074614908759272727832468431849001591299040707500491431316801155517964740951076515281060597749451544739164955644788740050434289620132764767426396022883742435602763710032014922512460887492441369677368144179460779643521684492692512885504281435846542868554626381070310652002751942279406436596609272805666616883287807365456214023695153887877685678648748567546484633135276708690013076032425091231134517891668246867437736179583722947729647913219104407041057614705610472148704216201584033475505441241969345706156334639123170831102874667976827553060281026631326157455031220679712231695576668534658974088331225886673668409033535604047197427561644194758840707940226980184432573819733576838380475972485521405570794568004182018797169579817002130965764845283362893481386108498896763148088495541331584232089677288464734507997092752348995050150409325719276068875278587959772584685890092687898635849851829046690837314419138886669656182317379454921826845133331108524964904890420421403686927964577466500753452402296637727797038625247030485140092292264964122368668197723167953722236063330615247430364390743948777621109764429273619880499157274561165012950457085798635411861976023225257562078198074287291825564596429733104555436115950832812364760986922615020747360554421551877190280266524617827739018900778505217849008591072251411320936408867359614154976903632690974309734684991480695427220466195434351498383461154045712865089620574157011328352345004509575390886127686285927901506503393565744158912507765265705903543202937049917534198521942515483948631079157198281517105438313337663791443194783882899482074266226522534513273302270694597534780891163383399042017566016768054068127072629591539990983846045645456939421282648208202848058214340157609355091409965416821587399590359548241901535367585067583844228885423099653527826447913801872572158883095906985752524478942761007205055367681349242946984312154202578033287897124162323498616967094364455552922247979744090236932471265018726186996040576391405756352572739392876468041367211618701130080510238995881464641883663021651016678215345978487549101160890000671553049470282419132483937231300722939019134836995881745686302294244072808760363493884126295320821421167522148148206401110753522542362400840075044354397271075432586674269737612677195535674962244813664401446130174818650657491902843816933784193211946510236875070660414560198960961543630631076709288838020009744681781790137953788665981559592242624021197260262042506840281882868118483565328135517066930267940291009790298047675331054761485670107714822942627345491895101629588344724952325706291998211289178739184222079574416040683895621148946663086818927762944375652153344159652964495605871768351263619757403999566506562419407767232791090356534328893435898916957781898536735967792202104135828123458056346260502037271358185833169248487387855525539046855105389514758062785233717788877711251187907783319115698056607739460513746821566290067815425160796726090559098974577544251078914682522106639825634002162092746823867536644455887273485702196898513952591801121742275940193008138904701797301762203926504961308786295935845875273178863755227133742026094583338708735813936759789909084030661211605036386511059845119075186364734169996330063101321756669352894937988411233883078783712606412559788236424394064156189444125755064241054213287777375827449892195648479488868173661127955217000298287508790448534274769171428740661309272042153680467478754494879957215013478151730717259090871968274337738535903770979804300201858224142153143057031750777110502997639138799195984584999117324399707582659450737933440556196211821159116380744810936758161090218199188579112862074310847855442667942398136296430938767351826471790425678072682622693092594487837838761281178302957430338628038082771344960176888901609664942359170430280632925041205073520456601948165877883070288099214971786478978338193679012547634874087479507766916287701502595403222064842450780012004615442628367742327756604600818599713010849104318308859448520302279771567727437705962048299336985436536134939515467652412210388829629186209909765597210683524202238962891281096751765716146772472527586077556931505893377191313727833469985019041580283025586417899073428111721530259229258308135649748527990199414514647438725810385435327558579551210092067240615714439562212016572430973398307215370071404762634565481258360594015136140054584540443619880850416326619758787267767517362898405356453256244050443933251822695260898687540650890175934431769163664696775009357330938101302828821438335942588173172093824127092276482472294444669192066012896944987450343300519911777316529928726632941058015072339861968434741194726837173871866593609772300759003553069621167849883313707946499052490242051347865751461443138868255529506175289637318621984077665374174154661524427583392513402511276534499268972710599870252517200039874823993192279695229910576597547741553411789948097592570754113456603131323524246197733248680117991817221251452477209964201421284025167451269120105350647539066978863627992852717991466091468867864481498288130544304496956569181984962598119052213352981711688349143922484470985400571386752229422089471290173593439694594142726538536992235200680094864138626855752735224376623735706576661655641088612788575329679087118932262166173043843737845620656460777962210053176055667702540736669392164542539607835032320948088211257586236120330089963947914967857224774983517339597181045262077235517520154571019195423691841696854463475850706116093221821334088103934630085098853499179549463163265614209676571765743614574708873306700584759035887282227389190377409312948330796579133744399537817953027746074840202918328995797232178511191977384841222387107979130895115435035195201993087619889918319179577951508997895803551467241951397251296317574877726637642742087833274726381129210993583700214870535120090854448637909616116863773721812261992414534925107077197024759016740917680701192203393907379484212265827761334344009980745817605962825746482893288124605562179861132913603197029147715750545085618613824947851595719036716794482087158454597903184327339903542054488648657925768471213804606302901522751005580376494746228604499809936974031655312910328606112579926772158212260648905861540189182740098050786023485570952857659234412365496066797957413750807786486701899766034554733104502198219736520006626788154780303086712318707280717622134167182241271564207626695111551725777546604732467161814958387876733018519712503743345207431536045380126323487820620360424442088783957093462064541879076308141916119257126651133758047147125059818723241056369119476632009843179736072806143463707319362181831504384919317354624987485899425704138751155313059603708046792783459891359297517274420768899684247115272243040754970369989804537389446042693806280781333165749376950346834171085354120105209847215841268854155366663503630040287017807717141316673862460742154081154866602663840289149925626587901549181827800836799140611481623096632374044072343863178087515365734154118268788812104548646181241098083503223489273064767098341383031146093012093690711923044571552525786648821384695103756603497353200741820889905911017203553311736068896455615692598765638976642750216942739789625122166415204778993389000067328381735008892738024559003773942118622989583998024277946668058742490312100897153517418166089705144933899109130210582617267901994492242725272563767162472998016636657157606819602056372962194606913286233680482115530751982111976451052359208809552832624162970045101972789480663479743400087352593705210720995337081947026402668789522183132547939723773158378141248741772473729680512037288683918917442984964517824647604870083063079505917118387323934971109669142460737128287721848531619639657106372675314783728126404157789829018695715426011098635574152900476003570151083949997969639941641987380336279392426501147924275473859433171198760489424829759618672704156473363814636690894247665245022351275825923649038305391795841728842223239458896166473788305025662651255395576762236580462214018601130522813329472942194930985947047834086114352314367843661323995247934812888535068650844024543176538553133087882600874499743244004457660338651793038998069825413487531929728438782752743349990860683680334639618249713672452514566571639132918170189939673685490669660501718513480103212984951581958453165032465731492055353858889625121657694040332890075839670209715038100340307864374433345219043185812817801613217228703783513323686655004473882873836501576331182048970262118347708548854670944203780610701417710329325724871504166052786720261714645672646497100342061542321465441676258749961476247662594532130330896405354439548128832565020433509229564945847285807324553070776084641527906433851184118665897820937700892410504517337934307688177817166747765944633810419474153646874062206216761202096500009344251095823147458608685684289946146464566045723177802718410830883262278110464587797506250426627933804303075024191683064226159080144665162473518161420343052417002534013960992458810121271798997327101061357424490314631013995409731968478698483017414993083267351528922935391053344977399843345414735630054038621763504111254992426042935577627339671697394301327583822356944880435913252377121330985395459864113591372647104623696388443820377256968208110846270386333435538608210479229133168588058687638095622336294882434373420388311427829054539938090594732134738167890904557444350851147101230104519919568180821720168310940600755097198902934430824497875956436583044641992759645033856536717486723231737576312853559410544835531546715306981450278532541155144059773066898416086807884031515422906181464997135214025992472499052091587111486304042549722429340421943181113160861572201641179228624529499298835176846365675456995121474689333120860899224571406084098388612499493402657867895776707282339917945832480047572834385321177657433280757692352998522415127414126201043591520195298598108426521070689487166408544723355474004074670842339699096505100997996039354105943727606441506115824842865917999258328083795969365716302991481665537812784314860459560969892530304375753744545149927021616013503141032195055304042272503152908400294499326507981124212190323383982042424786429696992004220741193917020391855657219577906113400925905149056315675919616742934235674515561299939009643175304208575501430700958543569999823444126937856175650036842358097822071448877782332543787474090242649288270384928558378115454712155508952420253828227745655993409273934528569732553785163737901361518092753801866794651322496808560236723633855480064332000877097959850100491636179387110992933229092901613802686611273543253154077981995743308229268365048733997116895606485314576003540666588222316516564374267330994439188228657236594908293633273035535003788414695809988784632793768154463966314766980873557142885185669377530115694087926550652117961663135337806621439808941182464669608459526347836891249150278794086968657256781908880872805345684276679329877793855423155443209728183286157802411809169319206614538813112958031589227604522664981598479108421644968046926686663005584930620013748525909202588381325816992141414847902502447482008474928550833524000036362768076091360105343317427385214400150603128163267659830916641389440884299866713119323146959090638692478308295211957970301835010496152517352866520414770965600115122216456318081537800170038284923012409095268852437619470850700818788038358627772332416733047637508980261491293646483211371059290187387597820037615044793855970348808151050185992283986219914716242095021876670778298332720420157191690696137438968120588408062561530823910143127635784006996013178737544721877057315915057155650555928351001992665576375219119184072814311409047288925993797758871475171583717458662332972023174729301556494265952763336702565432742857724117260094330882899447625566585771890992326657876215221739898938655040129607299605711123698979173513295978332785934333751027160889323332439902853864245305215726284738808084215578953787237078932567720982470707252741210040855323364897130780560613047681631163297653628751402091674192925117426675650769347757355493900747405072837802989011601311389523087753327927427323370843462214467643505976223724064943730579776800696031547846851920765044528595977513945441761294788629880607780677102703799769983479372545546091087341385780328059730635359142583225370332846509637417076071031616968762165575604346553511253532364913914488328580216670299191451006444164939149969424061794932551644429549913808776930350575829353848160267150654634388488888278651335211934764412974105329594726855535972927892985005320905651039737952278531359443468627483487136684517447632456036087831904575823926177446111842264464485102778169077482475792643636908801913423321837802359087402761416340336426381485379627976888947096097678440917128835941126818712427937797746634092370268938514824658444640477103462710808062888425479797796640477638686937064332789373950921711913548782238519169841200018336137480419998985164198992919374765261202175677156653518060355554293413571457283969407134190886161104372806308069459274002519559265411560402550841936502192583582240823356285837619162475013249335768694798526985850967748048741219714622369882266243093067288301448411249997008932290033440726329339188299017526826155212510779560688707069888056295292951254703657263143284463615507053337195775869349334222679557544305535964239111526813869958589683293498615755709544095572734699368726165261255030886174387509213616941808064001279441565846477691605761911963024476273154800820350186277197511702013370714032758265019507562836118312743658253786714816276433214009972452453648434927134671865457750530433919957952866199440805789433816724143710493248263010791540009616070766780365791401907750609974221501591658417869762055849060480832676162202933413145040254204741688980527052910912141353675275376155846302003338492734413031988815412671036298184652973346877504762281255524068162360514197509838967597430798321052098441793726775850530134782766045438398781932077429425390011106554654118408939469900173485315903365642283924139475524053763570434451044403444440814867682537827882524372701882191994469442435609240180590582815929952414999727107026580243143284757371259618260874058507515521126412204476422419960074579175709676031360007737368556111261762802971360576260747218742317273444464892395160489548526841607837756667129281360452439729120611052105177320114805086674464378553535493463925482503543143843172242227549386316346199972990542428172673832879038296501979347667525209349104375702854286015670065060615101802041998944381717939910682407692546034959380071599605559202122683486073720688213319003372252408149223945155560907781808333580075369251649160817424469877317344789254018239167680589793103528709447553046111724656923380063644783557947927792545466393762025349764748553078724558338041677460095006510752133882631075048826551434055932918343970753085351309103860168489440011649633473118648908732370861187477158897864267171745008582629332115837572592265103271286848081801802358466328544098415371608801857079964061738964775646489222761836359908199845644034853575058836071838088946450005740871268907853454832230822951497535747051259885070968733690490409494639566434559378996544890262009348608073069836154846412060307334777692658680673479016804645259432438404190897826760935615340427410100152272111876645795814978155062745314219275165657375571141587558975644783209548260975294057429948843118007910213172842300357256535776257279537130917123704732348886523746358853718987312602426803652055633486295380534550177521347230724958768438115147427209674322353109027001319425846976557911933529219964131245079898455155228629005579518286601921473783376178406497634407503165114765084592335955136972047504768718930840583128037745778339439112584926493547573754733971686672002730053377311351263251703233897253507060118181612906771456851565677657639896209305548813009517061714673524008561752912507994596419353831237680263744873492195236205669788294120331232332585727962934039674141195875293513330422341073622334369938624580850736670833473700160125304411545929543933542771894571348773365963369700781901529425163537262988922887529201214070131004445514613020928985105857690421946777723510012900271936612696990722030713218118197050215077765075875824199048688355419796589488715932126972108987727538795407287052513671868881704627278618549529452082427657648121844099196267726942578122399290500567399623341052395587305779470847749100944890389030192744794464672215912732515858539378344616661601431435948518980442206777208301671105103846774609986229885861486200429851693067856910222982182662912431997664370804726389143570606839914235050447011913062755833555345324765405388723539175235019133280028945238695325074979925337513122375261314859338302712360110588520546939586190691039043176510462082742941474459244894864519585002626387833585347053462080214249981518347637487824585154248500679949776425620062259950681789041683621740037292142232274557545002515253532279794843275761571904703223008976405899297247441476063680900925550095228450768611750801011880002419645675118048976485862181798722952753314004355032118888487362237101543902585174348731040759869196665443562500024185284711164926261239471901039719439590771165118973918003657398553934205405670335732497711045777890079204703576172863037558532591142142661824432760899581735342068973827407373126348898910477681917805117778136476548739652770840662408248082294834324087026490170877376936178083056576539691691341106351950550202335595010948338357150250187247093910971658184326163314639067619815451351953926352503117587080089267286112366153135852239597440792883914354089309191499743586626024925041640224554001278256759717820388409387688140835392248865817878332975884321941144591125030736983878247876162288175212795174982745695586840846869450551360077017607589015511997961429763098755813456057006529318880258445233120957889508530598287128593118568396431258307650075095530480499244061362861207950003550512585147566810872338303767283560278456617375414934747901581721157993789588264886821392133551902664372279288790517522481174904423293880616468559923317999148975945471033734544868303781057149796369152664500279801400249755065383322238239672914582022131492454394557672180262466585051391314388764703958849140372341246470764014802132883604301504732391691544221000609029801332258662303399285490579490932044737783906331996988610966025192347174028260063007097633046477954641656795643700273635724413589005539387682117758640858742152347629211613740542133386229205531677539089826350408196632326890453989374243530487352039561219008673813020772672234356524585270808862197392042331345015001168470162566146698949841550407612346833545911053422685656139248200607511835566804439711220180095238507778606432589321493313773654504059534985423482137072044149718073591871200098169093348851215821729391434911957494344463428557488399792183480856276054879349096363951169689951981537317276080683676590845941061094108024214139975230238254439866745810246394201555559741791825146134681885792533795045569567091425922408822462378340519390789248710067966320465173793743801432441608929861189069951688763644853817806801803150066414076120412780422849481690619424901721559565420881636247209290713968610500424776990530006274529859254885593775968876464997162605803176288214384630586553139981683871169634598803985767103215720340566634305348350429376004912367963435474375456703354398984043530771220149694415851381554818614213787317034113180154363695343464594112236247545446744552028369410771885116914950246630423710475801206827516626591100026256495490570744706216711884422967616871852644276496295874734231375910064360173806785178036128519960841069092114604684127879043706606152241939149942299091802114440318706204038680289923112321590813569494219403541899647629152172145297667410582523687584508009681430273619865580984021915443747857944625941258836752585477107418224668662789961499086207093695895370460561087431452374074337947808266269323018018156123213339262504566868243486397961829754619222671659877650360644364461732977049821153587949153509102381632488528017469463780270778415874170080291674345262847714463061461211240025353846085746889003414496212725664093819501940274643601516707630819461114199342617742313913138304104710037307689791210836216910048903645753126229237799965132423967112601014337185356956451427008925480840583245162550133744334447394292803050341060688695811226000970678763121595545691557696465198667061065115629725461337778769083111682636950419061281895594947697317594309520838715699269670041909779040949564387159017756875252186741598996414288925304056050250686626896572118991874419126814201590674433487649445431536942606404731926526093087474778583927233458656287742962958040499599772225811673009460472825149978138088528627140269831420061569674059805392231560324147059756052277751923593666465174275140140577538690978322094999510617422187265026079161903971607514602346192783130008315244084112744167615553692153453702614441090712697119904986965707901574459013319212450156620325997132850909225654464726952853541501495891115350988940512244947062895822117696392706119313898990650759853765001522166821098478529556731055239546473663831478258429610623760923059221285385643716538897661286264705436614084807699899007732917291239268829602193654568235140514785409473615638046807240470344866616403875520214568449809896961643885952430416635873543199374278300294532194492577787215324633112711033003549020590243256363561099856992414150385658793173054140482646899341914427083771149956749252670693047002964227485789390240047800410095896868168075251849155401750338252863206814366225375319912363402368910016980959139158184208700617966981393520830772441405697538473484004871402454262257143498217265571138131992438549793300703949765368848109531235857417419929242175764109439770342623553393378355114542925180115401858249877215315183917903351790587204788784185691537373107472844048601740757201165440834724529620248295445100208504094942052524417808810050041348955341598459755417327373653369523795310673973511351364771981108704830417699392482123638509447630185873775671518915533695165026793020818061021941066020286801171896842770126886954899787065564418811010438835776145116411445803941375342524412731393225245681426035374285118878895435318102397973152111982189649638422912037771131170060020810838342918379871068291832524027879109558886689219056286809121974224921147785395605801075498594115340573931320901961710529966652842720953860813906120564830314350379229154946848392624519272380044519122185258620791423013658629181988804819215470365413955885966122945127090432157532819369931606590566763449002367546376573431397948505749701650497840000068315301451026951928301564638353286180948711316940145447909539447706102722825171251722197445854964919714453620125597852061658077403041761802461664435576567038046012684354249059068340138576556026716345839982409983464778368079559818419641873712769671101794399645184952010458797678447091783770006220706430116915416145134815184169587171023572084270799982249357405965452060240832681635897371931352555402094185892393271442047293229482495663134922930638377466275004616863080145564817912702874154537898961486558623595273174418706633725507490041900450138055747846382168546741276323943846226726741047950440041516545279914699311955332927971995128410788164075306225791569862940406534928262543607582662198343469410974342380425891374116315036034023154970698008207341237276435762271863510062610909681203219825506901818956393143647654775165032776754846515611616258293016685784071173729157911803741144593902130517041971080570802182635281099981628481816136241458186131408568537106836867803760381887729552218223420138923312562838388646744199020104022241483469249329515963385180738754154134554708716741116603783399394742129120754065805844535123962697041602629907146269735918937556696285157926835046412524583739211948770414076604019832938205645938772151883642747794139057257925109903007966519530627792912787755186568229437497550109978733869573354813647168171402735472679531990371681972824094338411957078413012161384580379509085644038221921684178208433955486356132774110145975055716241464404917335864977113391197109444874165183197489718887902178987994336308919010722957497568699471573454967675054749753233697513068859860029988681097638249415089994639175641087509523113370273021609385511965662540502665333253502074734599927115463675977780141885812133760294927316115969098951364332189435339821988562723194248004230263346860199044519381953175047327223576240402690067629585896964391108308123079778536223412605230260556069594558019765821545757176994972225200233603426464189014556540504502179228459909748413038695263193297434863483509144505589517534334987004737221336924604760025434589998057462536393147853054235842914456765748066944449533904116984384066886810491234547530432514646900040463564396947483793429908786544224822121156751423487304723335983964920972852616367121550820255680404136537572064715255582190163378565090059786899699251700764811608294550944382968139653034205394043139330995266252755205486366179166420381362196755387598279016897717552635501680698923839381690786813584920557208079022893200893806190550991023834913872122963691207220573532277274140447180490455597699875996321485525291011777336750055535311526722633112753725456981859522058091917837430104902842467942736605844612125906174568314892009752867243654121940198242854504445632609463767152301323664137534120694627283375245341252960855654992711710825130767566258941321080524771152812380405846009404963774824725582775211991616559491025215956258830967877346683824611784698594756744326546757494574805178707830751254625693857168018685643297804497758658385116043044419059117106441726097179214124955432791159421344496667672692468651835185546924404511491572759288116399849402703169410590819072167238499945758183631101610657140020581984802899798305117977292173913614557474013627031215455178070506630458777351597618993762122558455291313458580848328801929028363947208050083896477098463870637343967467768461791539374199454439481399943144383497613508759458996936595024026703158692277091964149302021327644407732393526174362188734044333699773725774408924411605090732784971777431261588006713326909772909092111486679652982031251868155049463053621308141252944702121126295629606044675980645510904623032418793586361491326936475491205920594066290898343979005785757450841433465298639351911791830235623645968595384573938649958424279053575776473559819811021106198827537620706251638254753024964613545860357644908164124076973461337882330563911187865616832057843842840063052584654350835085685333870385095228942149555224880105254184650755880982709927256152303942633369711698893762492031384426815142148862963383225720278285730235854560752657981895121114696369579453581306281931959868759380377139560776562753450399448780841014947617877636012863077868711947179337929366597431697228202368007297391207159943383857233301323170010776434293217544574094421676024117940911370522995769565266198728054059844412612791346108069783435010295814854908162323880039188808658563444413515754464230144818121021049381064771903440672862433137400994581701600260082929068888205068016053984871702727846171486401132134351238436614736732651446592362555283750739827193204153189026956217089743757467828718482916281601345310815633977286259084023533807602310684360080738848322573126483748885374994152418144941862486651366001539806735008436365193407980122331609129454272485982537202640624213591004075768367970523465441032474935616362039068594588029323155307306103005884545601785988611419299041481480327466334283375516267585879673940172570008921526110047112779909859161582514548839198303447605727422967739947721275144562751916462542870080558655700337650251329924254325895373953449988275318252642906194517999999817062219418291423150235875360643488885245442483850791931822735521900399696780343452855165636783265632507724658561441582727430173793161766634293043677422846529284652402357678732555065507441257109989414585444031357760634946946717268849379842659174442509490534390257179137142390020436461125139898070998825327504892028245396007205632222053493012155488752906396023382416575826953645237348870589996310739030050440413714618375221189424148132170989618264265278709742487396516668083341586202579787731869459615919011841326635788297206132786339248408570502322857562231985248588258865360585749454392016305855205752780201390182687106963658076642063208134900647449934222628397706577402589415781328301964985032796546038829541864981334427581233599877003779481140256868979919357481830126563165331966285400123089106777652683523106270286866605842738154127130541410812015893375409773039628547844688841324730819897700991932258672229267455097356327663163098616230389969912194485972631629833165755231516318568376474371631811777678336302048224978256860254541240370565712809914690748913903663485453195928016179719909401031051861311709176188164334299423603550617869498766969435991782028996167683360793836258798554577599299899819664686042043357295108442497681258733445117073191846173855395548940737128516669994784203058984406353024989694726563702972829108125413655506053269593217831054447661122095352742074227948128877204892918902429213203894583648665183937018952779604019152927926681471957837143093444215563710886302137810349057389463578171341558620279783168842671644443610234542252116244278125343983355337797160578942577682643293608319034444096595962690365843470376477281091272802378068382752727760641694485914373848656896098114181340436587343854528208387144254607819397377432177213502680933140387499787973339612500500688118201156391494995247484091844052599683959965310592125417655257194400785982019092500044043080692333364761382275123083126768024318213893885356859840824534509573446613069896081678927345054492955726541342286352137599796696113812490695397315361389552599251858061692557368243964968967968002707586817984555259408327393324078927034665661585836779955983960418834923844863786142488610299915373470692515363927032304761607368661474038113589586452935955055063813839518110633381141696242574572343666235917930911317233112229545626455053943623293801774893946864661141826193764031362956012649814537366918672272247215696206850987113561815551658921027243798926677981402051015773701048837413899651745863169153145909947868871251992683919136703861626707802355809823561034570291564132736983783085279573821364218913282631122484601006444621404558057766307921843341036386780385366143665191549336696830853817641331539987602736149898561140936854392165531447907950399132595323762539811291061595141846319753704700442352077006658011662334335227530248509822556220453757063834723743362581522527044283063107247706559244340590844262675301882329801399198360194831684900757200521212325334485449384932256839045684514065539739180372813761624711300010558395137541239049813095456778436521972174479630223012779489075277826400484961413360686605390768107111490575880109664538345150976172074936336269025558018316764024071793933076365781783061540576474240332429070089605557968330899078698192751451950770109877853456831663756727164128753268896413819955041069631684382658604210049827774609991935637821269578123546933483726719159340413810227054035269846004757717213076442913676864798130699908441293334780421646284063802581376675573541058327966830085150852369784317631029175567219484508172202428822617557124008111542309673376325190391790598458923375190501756689042833869848122174104389222717155723971684948251779070564327851544815814980549962220760564563757237743587450500672192767679807640812223878622039632652922683239510055362988436609998657142048106575945631960915720183978433532270310037829645910790047785930249346827780696996365752133223470096151641959003868717168592379390704829215323576389145058405743974709572959848989125648215852667678949754046111653478892848905586787046557481925383293922166519999276869114152080369460059096684582585505335448964094661638495613580616377836471110554815819715539351410367845997171589519895152013314279707021036785446008513485390375763799921526927861688720026896356663965281399731212779991393437265352022571663909298340127536914001594197932759581666347980299394354679502617950970235684603813808341462872525268151598794207554034489231019555096086328078742312154859247871917347690162767147058964920921811587470283932939082422635020696779816991521196579942004045480285334684824929975530930057048753399592723777952771644695271440896089468152338353709426147717329852608647131665383725667734134471859251817198245924271246664419531217392450803005824232934468365361694049145305511326438007043079116040625242344497411148933265854793666229654388221773619653559264787782495338658981158203141154988451702653231451751002936243742828287029257146238373378627852059252346932274970406526191816547641433618349052260428363410934092527623017968657678579212314537252972289522247217146539853257420691117648061807685044559649264697533209222068805635599955583330019776815033074120938616343240483855714432399127507572158649207047164997388023848861720732195672570737716463805288746889516653359290234050876411557441176094244562050189087580083768655299055846709373694573983657307021068111820809144085073481783456575373699267933430468704935192864353815289560525347771122091342837178260666422952136654412891672878791742276188263219325936497489721603911326340527334692145776370877198826472274316753767154754823441377730157548939359644753567945549433175689432315629703148119867268631735074305429456251812185517020406246251818796851297738359621025654945634430193036212768996792535493809813847199791531399469150244151198991860543285676095605520673156355637584086922197911255604768454166613088706467246984493675364468886745815605012920857844555935674257027585400330625509306533994737673675141626682649721080293778769455194268116438311968265083033477840154461984253182534327042690428672020118678148460170821880302067124547846323987523848877417666659732039839543227849113199356448597689767620115280159928817418936917925443801996559639717667516803568328903246627411594354954067846278166768282636561035630659252549867891422522796186139302790531074151540261338866983454766101512080566641537129274339710990666457246041630697185327609316423446766345383325453855430335249496630178454790954803530771001846271326231768842251888107328206475526624147634944647187707458659702409263820710614753189779032820884364786332738156277880934490857335438377004555705562007701035662301221638205836086523544292712525303418793233062901991413783813015294662080009593943089715574535048496932371585864478774474174490811877303379570946496554276660920463320454233130538704351256616822109182816261081898239754428165992849521076114023603824560993291121193071699602731310671053711168042750589391226528835797926554001018279551472256201568104644196665323989980328386775197512492869147403190191698173210055578117638326352566630619591752612703304036985233024538591415408379147711865184553326476460085669727917606688147176184946343928688309800924631346152960428915522640856124341865157461435577361127367394561223122938073432740547350367969578133599570738460836845877557913327367991997622963916862308291585032974015743333738874663460710992828262391271051456421991866696544873048164250104112186305315119660438817903346049561666248768558632804301781780001445457820967147729988250414888673711594044576130122521117014363721311604314578089180264490690172094308296008719860135094776410446408897722334633716980850130876516117080669090778552097166560656650931545537350450964496715463090803450505523238380781022731338506095760603907358329964349929615405304401826930437885335923635412596981795020290866733015260834048021772818629708832934285107004982373495750134116033412131302147397935867481320313642916342327673728281540027276902082006531312037714252362403437038584086094773153703909645829173985401383689118812489430300875715933931250018095794302735445631019000580458194999120817772983560495107260428220310080273948255601399819547888851284680690309375194911006031679945059678949564059291636950967060169928252745705189112762002552027047546365997626044641435705170782071426159384842487570352665745758054110646832268245224397790396557498973579482615274310254006280276735932963111345913473537674972767699327763865210693962701684847799291342148806481602666738914904310783071483527652951773521513933319739127559009490395108980273057798727973541691038501166213568828077379365648525501535186551849850909110750069400489905146260226149570396214877886778560291877088287439265881463446455912120465636013818637964110091936094870423470179738199984110827210244544294937781250553277851131573257179426534874145970058111596052646303444961599421962057410139082423769754210894687680137167706468844004484614450982232151501182149593209606002042018892581386564261043011367217651684780667401201478176824904297334430886223577115935789214990162059058242351064377696463626561930417196889301046685694773325719387400467893875675933019652087062079898845601646395787290237585562272725103630134174268937073151153498564786404415121058164952327633173303204361228259725537171951873812127388559291308279862042025028400888339645039933824056466768739078034255420754196180386673478040003925440113578785766181016842087373440522633912795725558251582094106296392983063040023050170811453659274046040532154601206773050491394593179637132392919368635081089122561344037233830004834531535497519687963820081132338614196470219529536747788470252472010521945276300845988450568884156005555156570160136559471991688979399644105047935281858058695658226840879451928726304282167171308373529400613962319412833696350341664070637532804106479935501523315723825627518761720897413047456953787863697526077107566275485854204652583303396151895395435152749985355207147429289312022752212024399733205068349748974614462351372082228123319367446324563591434760480693618899084453753211593539069163837515965009252789644103753774969143221409276886969392000856539242373833788574451995079650593758896645320986443383409198131918114292093989973782939857432126630035425595444070773888326160114011226835074616594806654848560390293771161391036542322221894054233815647307199371846347313850108162385474388661727556829292386671232749632516038573825067948584310615008148382162750161955518254408581041627254222608171096024554096132746325416542674900256250768279028098310954526863725936937480053567517939478735614185984480109510489781289711118435867659314818718170572724540660645681769338258868833014818530182232924358216953731026062361080165710005076621657811018272108860247233091748460922039745138579746802156968324954836311973565734994336851943368627866271768585059163035730914985343327049997589614812046876119600257973131475306464264025147044287628766956141333153922232984736446460008414360314668355495707757683327053668901191072347564258990725194625307906542090019727369879908872012974599619610696476082460497920092094492834169732073746139335136553564885391705998861334050100387812076385103151243065061089960217890807250764945274568369259847419128524652105359686803587153734256855444402004866799274468480624063400455032466851616523757104558481223558316760120258591366779641379270450820340646993283081890067537787315150453987047758724203698267287036379484606450322273989676312790372888297345938210162768390847875499020292590418159565141486235060531423998419096711853973280681889035076214993326026002815110683916459690103112398821986489950885005193624176383219455073439991348089170284222371443710019765303234651376021918535843501216597549729913746265097997262005058760320734667045207557513100303615110398794302330323481679257673748960194457120695674652752213060115069093201266999270179488867624190949586453802374502460085509670774334449118461938510537157082444015905839558640292226276906101296041091819739083309946480122895417664593120699101155215882952188164779318320195952890657337525943313129467633452865060982344650676913755928476582887545763622501311332560898807252510719526655756289525622210456100478875859019473782371737792461983539294279040104653768358016041673161475083115254721649040911670104393076695910384344923833579715811917784958064777033953030286469269997538651137729910789427989089105994210939790600450788567502466398742513715155005137416489480883503264796782861063077143823338603673555925685932709831932357983367086521213470178387398609072819014760654275185041998280402529053476215668033374417864101040596094908365238117567189996254798625459132833167073822555039773605725476789792855671296760482278640943833686782196220774030185821816084439660625536910013991383190355131894209377858834744233914177711866284945288858072554314171822421968158244784643734483169725004398579930963371655246277851990207356789560447900162548926952152554699094904496998419624622048106490189349934333788929038194246541303937814630151581762725307912491663745729266882060785875644919390211939714603331771842752032897167681943265473662901793334976132351635904742314608747023631748138667916805918411263681371169843052095080680618996015034446108863973634631985963671776650399595251198867601146870526949397915715473516616878222248949418419479799821079145704782071387653334611094011290942174087087448383072066364904269772031557870773187468518408291244797398234652906548713805037191968139142655719273667461285486032848094521163926467203042917733039188859308150941312192320294910334419549366727590892334427052269955698756762625634932801832620796395563871594520078036639115104643443603254843993704006088708122425338346194973186781599119768258762828623062692321114269667127480441842544505122038126766905323538903479849768901842189626620979951634973966385217907634863923940836239139966473600384281138261363728754181159340985471462428726257976591864703753075228168954462932793716444205346276755858360536256837841402655683287836176721446039152189188757426274554770287436633547332367459719409181451664452007302998018934073016273358537509819237651251558319165460165305907961511082332710238746475371945058631260494998070210539167772750781673352226998253887237021671432567707321908151174555587816412721288812303813189411313143927136405087037412061676025255101897321862400035772262957585078924766206556239538895073623404206887390669328286746396468008319362634685138316906167458453450864982717432425513204428008285997322891533437569161976568668827639812018003772921817798691069548605706334499707184342414785146082565324405824953498136014461169051190080962638246967796486659834457144071172093214054999243569533379393076954337698538508832560746934911494355262793261171788107544495881492964086579152617094279860582733070631581158858611760687700954352943242619018939031361048081152471973027746935142092899659563020400690234052324445740696763451340071577851142473970190370052587774149995864701685338433569051430991211097208237251180437838124077025848788213423619409697453025929998078801848232632998090672007304431929920651704603340602602883635771626921449968051790423334390470217580661584026079152343217556808746712344582129286043846057893480854935407194127336383279593359050352477963889388939035931014696480433482454657232086572250878956465918660539825598640774161295618181069353380719201078929356527275829005386643312170673658381135901783012733592251873563491776728968251721047191034039927361092035207463039790352119416349084580430701540087448121947531918835788823197438790151415907839313714899476226824907332323444031086457496702359916053621538603098561769778072019257463559248424778093610755578530090599219213944867311884756573702198235317755031198939707235050303149314827580948080599417090041198132331045657708140200686460132410460796545165149291593229213959644910215429977419724198385364690368386027307820206744262442421504307154084708649120361324093286438513002894649471480963446394239749114148132043641057523094968021685279629104910487191721527799311704249608087012999704366054382289979137980821152285015217484868067412941149059414169610006416883380116232389189873801424438365533917152388521020615775839800808981761731332264720050277880739035726273937813198461245608918148198723542490335678012037746315881331458900039322051316268264728657911376327811787885899758044596227576023954425378667864477596329169156818337509933399000324137318653764057187060373442055420733769647686283293048669507211001691298873203888569183070636683109114403592539606675410963624912049649982990001335667468028086301087563871620412215472016688599899705171872195505187153307293463087884646261636881838675680280026778742761097558675537975466630232168421384817865070580199050396711054531493024727173411188977840315142122513731427414997763164965038285146774264245275110888815624049591039787145975820050780040800101379738649603259615564812755031291766674086216536940067366138957575336704480660926675556969566158659420260630231690999479188281297039599207865191209329194834621558093449622874539292311957184634862494206278737224956900640662227772391399755642411084098242147397525111823585541151750110330163693363571547294372388144612897570825561803316817423607792615971589486042352920314697612523140211065735185272372758049634534479962580864868249360589195725721971434343349141009093495499000190835898979381766810621137888717012392066630001775374149778321761633331647601889606772700703675693720616885908221866130843034694576966485815782772574863328091169170546106923012368143766646959111368160922906033282044085898708538509367225714047661272019386248448885064344943306260929882617933760116923958444991561518761753993489338245022806093132839888420621206707975331412479475112085836840402293489042320154355526634441585140912869765840885385997573069646122004497008499792774772385459154057829005322462625923163519456082137442765530615376890834736998791004893587358085518404283687732443095325592982521125248873039313548912328465178692862903453537498355285463850383618630477964201861801928122142759856114026126266367952485705498075383705056771653076788588477563884057717427297706335972310300519519550914547912775551909194545711907042008768984033777837126010396976628525196785721121638037755238147229511388241665450266547602318210984475692628165324959246364024522933507887023620343971572615687885772798964858099653872148013793109092600375950075300431435965066605929440993208391267417570879147239594767188250425254350914671079389786631201136408932116903746530599145263961047279298824817076961170291357253715696346869216458828143883187281754115362212383968973765392252536685754548952935306275221095698037645126975073650475894989047111194422731215013123165082021669203675582052587218439242704295163426858203936768257150306520317895662407387515227113998100016764786325170348228649434233097969377831928214900079162602882774486528603272969059901202503230369016101190629957889602795470422066928063319092639611073487225683984233472393750650906143182694099782162897222512175207282307987865957021179319596612052265226210650223883684770468283738831813926280025129498187666834963293360422437309588453594057544337870504682895016014719614618598093939646205026745551462248906318499678814194411222092540677757876416602107316420487275937489528610718788357892892129963462226032404336175817685853227800174376175306141215584764024808801317489564509459768415954369181865127763341420604151093918868821661427152588771776046361732397132383238176255757479507998761379945594275788453146110372233297309608264844512160022863619871213828263626342260721948055991736956640471150580506265644790000696683839984051718795089010430142398133682640013205350772135338182736760469122611444361576295349028880707642953569788019717614378315613168984403753208536328530405671478342451605190480993386445647674895281136354464605878078293647194853132903731908107696557528639413954950765808803188624825542703414982062515740222689003972395689522049035955726293834938072323498853075409546267564773336434041715720425730464736192340468643750951107251463326431498416755857619942282231270810745043402155689825836744314249254407705460260248958994447556370366150030341743862402522669494658859953059932693098452634967360689136555543451969401427048695487992267002645879713750461611379769174241628360203639668717095779619701379355524227057724736420560799634923208676213052694910563821949259290545536811209781497583488912244477639040383153064616946640703173431172015153348235967313881553266500978154476279438691782235849951197091664912686753917619237143868492396563672085732656802556583970392347957742218280888325450114792263467355758570663175607463472754385232449271936444052380591176890270522552305811047923981546897711188884160429153973667105307358421642498777074450868717089544343536740101230705582989695270140372664258996979198058735866450250536223474080163228101692897787109307481435176459346341850741644531320603132764060812354498577298601853078914529496373415675459180193241750934869449431838267821972000599261212118022276201605160232714742078339576455206606526452372433876673470794983773721962469398375260030959314327859256112343928615894932487947431229548811278828985049409508238898807459644846612086972683955921014248920394989935256297000472028893402692140737913457666728973524839354116861127803604076260053383166853109801000201854564661070748193670391843010601089835645962761073544517586729126797886092506941017691155498058373437439902089702361849368933365144229922297580918594607126979377102880893946864144161203814055721130031626596932960261319109018587154699226068259588057586300490991467469892485857257257511042451583103529969443922337862539421119521467171425971112491926881969390415303269128221776552993794954940996675334371150672171619142192491126991321872405214002827137190763007736314461281585239354762845099293959540920950221785325353681215141516258289530716523676751611503359803415016967150932631435473868637241570830197109371824866045427488336752206289216203126272292995442452336548595456149530395536017170615673310883855668884053151786245276562773920519384516863366275141811289702084425255623992630071080126647904857686102712266326515073661665346429703795954702088511454178832233030758152959637092319795703401702182255132185724916861781182009573482973253090517328002456008313825371041968164660840914524688210952131419781481099826847973137532587125538082348327751067994009589398117387840529766604567429685711226492026956168652275879761453390884629373768780391138144390196595387143977508971037741576213946455801639163529741218440471627779515671450574847638384474331563510326895193159600989768030810668650291534906205330698495227585955686074411959656306372070047700122919573520662882614438751008311595375890179108178960499291240353052262149713651138378342225497286599771037825675592870831041624192951015436770170839582001840493352464880668040729062818236944883292083431511471387091553228498592326246270620081710186894063904660942918334066585837375463629904531807315334090360013465832935402617801406077243840355511508470023229015993908243762602020473211861105227517488909182083949914350835453127581405682011865787022461552580872234181978845630023744871234136818466797543182498210123154641601324422037095411792478517586843247520309466611992092886897944569354714127992503376929717266331460195703494461004905398081628919128526052061394277201869941379542769397345176059884288783257237846927036191417404074794077532554709993292146357502231358515137833274334576656986333885072754046809829986418506091463259851306659566206639959542922460133301501401468154922497382681752033500296677834620831108539881501746017843450073175262180375423843404947016940309566191562987079474408250547829629900889743321738059945752442711994647573527951911981436103312345432876306189801795830297715538353809692408788617789483242927977445357833547902241974203812366754758074897401993069201832778915873070439333796660175670455358588257089423630683978307011476552992094471083611745078385693965333679058660102971515979764762797545145053782343895663637588677507230587559944304867920682472167854875105222317812806358209401447192984883021432939300683611760142310223419193777918973400911377646154070386710059056098753865612643896254673624455811105832073886542303466545029850235703961947566124272769599886466951619143958005710055961676708278774992121255073076224465660247438803445299271380800198395912804581368041424105051385595287782503422891814777959943558663256476446977775772329737782648688044550501737778331067594394413861390981151852872659764860386911308978556492977322847845475906196986750727034038931485910900763263106344121279547271512666365661808047478459807834493564784566088578006620640622853095358384210903728434419663982293033695298926313558672750724543694539628584255596202947056918977886730539396603947116824615905235705285089579523050066295836874858725507052996222789445577878830451835957577686445674041183009338452284114777307486726583757582173031869628828899268440182956791796491285710261191432337956328232135836967129750934184360857693574402994285305901138765212406282546399400558811825079488142323194145365444955548809150010886901452307150034748150205183509281088504619758343926844874265166211317406642529495968254278171434249022750638911891606334428435001375158642570826421449497398051986325782176508570211111953432915174024655856302489148216880802640698819279488261120422762753949955904173725970996350462419077708914654002413391555563848745350652115008453437959357201045205479318768714346957603275500973544320762648731286037705370794233070070672944333606391809073786847531248093010935614742888960011932830732989290994673103927997497803378586130103365173397324020591367394044150839864311374270186908684380707299351010757706786497364620458626634825994332675046936935089129534133232336653042749334906045420155056328523494090430291856867082414682615152468933334433458447475342420810573814920241572787529289807275216728751363930861680701351787541806085154155376419197219339996858265029022414211823072354221267905063085068142773290802795772164822669393219605614557235113486424304425347810415677362076363311924748327002100280257579584983747177851381093106441292774499206072254708173920535281571875249943727089038168819811671530616858699204491593290232887398293465652486634209977063026646341504414225028852655872052767615692094428361817259358506416071781648213818629197858505107373795083003072719298812414309941137622397758537594989557931541852877878630910405695246944417993726234850912268549033484047596250266359291898481204909332927728933717859197567428489522392489612410136488327084099018010990686123129631754720765566629455895409158799431810229358095331006868208534645719782125741134063525625941331537134191245546621728071477748524188014870982239694116658505585773786020229505807485878016152433228694505994621449501036796142822441041702133233100515292297020276738378193739776949735503627831447858678140136317993402525226733190558020702432168198790161397631002032896262925329772807495080868125931909364485236906040526201303708780225399843935841605146044274740525960216492911352496679592521148902992810301504453311851698270097714385234311291093364518772112853263333671249199067321505124863836796599676226813580901152368102556570318765304801320638296903358742090369140596220723028095589883913229804476234816926412304750418765845657553762989680189387196814426402850707977691860595826334257513106253094444689133714657388298165488349630946473610798828872670399969077738571707786047419484790929181942055372388063837693056600265779529127469571768594325799319230893077174122772776264668423080334440031535661184473751050941224491378856299771055364928380800688072952954184850991532081863798913576866416903785219577131755504155788180624375814541575374386492478994459934176126092413999383024362354211248864204628775514556856707012478313400196374148011451255928659526995536063930877915657897949484669881797757755305401872563049169756672831768149237858093198546520221136738170930694199404869731101210661355065284125084752528563943945265022786220451220770174577988391152728614429000210666807890759337625071839000751262878657539867496526503494370288665570564237169135192194183130427542052665250727149825727031605217470685999426892772060690253937145875873501825435359090423791269127089906342305556459128880812360082954068260931771265105929124834565377286721793826281286739276335444157662732822034536577905889275754926484732168061010758182670747764616532166807951591625258220753058430135458381715077693299621481005611331960030585832371282167658263390590868742011574844973770049513930265347179444189778756250714551465267859599107612863997352951181278268216545518452808121740880189933070036200661779920667449280036809420882848010723640495212663964016190965525728377569123436573941117725290070343420950987220228423759749438117716116230147256369170205494818685156697792041335448057499048825640420887440727648319228798855495457592234464638821419541283234975747590972524746195549282463431656242065005407790924359873292532533911496422721809876855861344881087932531443444198817862033336057458056961820174664134254512265975107974118194684220605550270911190120486307673769244137289929057939123531536338818535163540654722149050356156073394695546111500570873218423179747796998583092710811387249500054744342142469573400990998399328565556694991998498857052356590885274346010827782791257355316414835850537437038969816260433477095885882609945214706784903896125058609781361488294830257966063669784968479097223851093919858737700793989911763910572151142585475146516977138692572216904382349856591884985510825562792158467929146700653764497354922291088684522438930929760506254726685988729991221146941825146393607691979739001740240103419425207141351569361605850642680279322813024377571389187014704009878959083976013328858113446703210893570016043460059226074177037578018346694215880141067618747801940860716597836567861977887833803114933125063259953029668847943503359570938631758699394830025939775255123499191545912274825165794669772218047839552461573535110776483026200568514312138774560461073228581498828390713414226752822956661189771534823703298605206332178370688234071185071449281261781921360438453512998559424769307734810787414021802739974619325044936266365381491197798409063038830349822876231343798307182654351412064768006042963821855849315102347685478843066648889177489088962230663370017387858504254298224203417649008192109295343770876157176465136584312621268588888895572140369123593655049281825985998909463244871232448418226479677555501337877167846573583193076711461061615832210975633751370628634925276354987841036615837321548716032836814720725943020364599909083578797361296420747500902668251519879419936576099193413441310894292648917389541076979375208278123532366672218905615236852107370168528351507205675292154495582059102071117488485601116553134540421001606335833778603491941861730250743034319703659143430216003276392413567936051427969828936529470520044312377498576613824406696633290354224365328553651600538531496445239496132984808750596653863137627725375442365374309084429068876062847802790141989388850596607125367956562606858303843420525151602547977471486752977128137815607991561740101178981791055797648492311444466290793982528241054768680652312076375161153910559262575124849297536580743777866185487328075423535966983716312017391423663466123582683015528865603554606798790550462987218358659807587792970726531549510153593658369892365922610165401968905526879585271479934098911106312250896587226649599743771787741122628360690713833916452847408214350271403087934745767225346311519445137036387752849195272238821100646005375586727785916383691610284178088497359773011676933296803461320697068088491931812705158168935821149844387925154461947603284118386493541812193734475354010031127410443743058170901467772713964280551049291932495939504817061172609078280044185789952848135497088195423847571423917447579746285317851265558233304582245615067499579915132643688527468826244150225077638688607472308465186534837775248027860516156618207960375190574649171493546823212225632785876950351950479252332557624202266166225037300387955026297356467371635140397336677031222384816635517280412565049076611587199228270513161553430292494712781790533620373496795234802029094034811979825794877656716542864770080777171777588276519290185914024862921129227978733146680448960049548479912112290147546754580387729461647358305009698783071333689673636736925429411492031835237224401759744512036537741369659355504966668507004391975237780602889934054178452334678231752218407460985233133152244438955928282389810688898127633272520077954834140521895170522623579587997636311551349155631471075751127706858398605862764031532311181051046298853209874869551964630146695511172386433571824847299860717055731524733140540178095699515005989165921519846070324282267719229091507079867202484963957954268639294569767849224553944825803593705916198504736099329867439760064035373055859792932576786355281879260438320075694735699859369087896830679830258688326614962497059658424255912759268877117201351455477624659787088871090713957041489650261067465858519719762191125006611076868589631383130024928910843224318627474397806951940333628988524237045031108748828404595450738496397035726110546473894494712178890127613953497430272612066572897613480192693508458699997315175798088667401394635582002165397592920094964861101160405525939803067058694219443897461368944776338416672939889598782446833541691077194416787499721969056649097658951030996310671295774233612682890133300173332817684155741557298605210139139974672621120045741059002318182947016528850329363702626373042948680162510444193783791247938258256361921524523193722940893264087250389013633472207170046237997454374551075721667879761985318552411468618132196625986195637494914931196752775870067997335407990378783908019504491921500614185865215556765034090978649749587945435587416426807773429716783029858849416053303780475484628596143103858562370602133754329681227991848014705820126762284346017978391006146495145378080093248580389914616381007795671018331694479655584446307601788083517301790303475178861887590154077244335990566329781417929353325506318325878470213510369386404188351592984111768111909964563136079567974341324323544718784902505697771981535313078053614496089274022684363433903599235947449567390865521363489219396167398235989494469712767382164397767780424073775034829448097930526869716230961715080300767947296471284951164555136777164793015104414512539969656210393045774132400415093379237583312366262084712145800842502081144739798880854899030091588943795782388995514626026677061373247495091472704871536283477840927502758304369214768763079844631232819499723581091127865032244642807981003698724348509643074709056756991992396422246280692916622801900323978375548992403356722773488116912888285781326091042722605842815652723600940924675784860506652077712842643637526509817221242227528498740330617701294110942605198967517555708090732971563914198673601780172654262899321029833599698048123301379797068458095813685961841119379960421941098498771067102280694574971134152496613031054705246012775371203575868325432779662589670140778386735340306673261482121309000644381469544130658158386550334316439715334225880599107242811359026986835156215409917054845821010750476102240746993507580961154961223899583479329280237336074713738455099801671006847468892635722499436111122267795467779051680449800959250155617008767528354467299247190623353140402037248416564448230042132217057188759271202763101196991700657123185977151677903099595026433774883597935478462452229803361092727165312799903959795893835135494475431632330118666253328885430272740105316215485088080642442332156219709964504364282152052499591984734451517474233895904800378616935936953391759652501268419605994242614768598996052711802006538638684241192351449744730616609301903039247255302815283899942141965044989254217594471940004632891799686009437954014598552689202157905149104470713445056459842844906564367515829922897511404198073002571771816803858790408606898450953782895069903849403567532873432541286548901434519837913578836160525295927691297070729453371317942556193145125440803419492558741913780989372951244186192181280685140243993463548064964670470287511382176382833398973502129980916989088426259212629591003841239397537687773206177722051813866043891357813691390798578685816454678503951703118737294297788250852911096685622512588717190342987911656813737256137615622968801253801306664296657536237798885424618133026575603412587606147657909551103373119629149631500359253005980641175709985755763011121549826203680122680459720817391422052790016541749639112193696397997287892018433141526592232311874310620595276508554725172437797526129379932041633222550651997184234759175111216474468232320115556445303940949019430119494890529456211715441707611118407888656391448091279982500833961156906359603212873201994960791675537010128641183919794137777466959437561773250468761695769707302736964173757756404562023350009654875054900183848598566086431663179898960846280692929271351981066689403268830062947665867218722810037647315830503753947501554198057256757408944362102863325389917509392209267807861101351052764219747235566658960187160431567901438428805334315856069168434690541877601589901324564338601247862196282989707803790659269573886646156963126140704863684930508085187120468890505234063278583851309260300754605683463440499783142258468690128810082886765117169182348878166535573318115574401093335641867863703243023578510561289706803193316362980432052533620977201182905865874407796146686527233873913363131157416415845455350099196349495009203136093133516924652385398114624007654587734521289563007626314326677597403682140770747316680094259405307728983321013412888587196655491787858975600453860381947696675767834494585347547518750698230402292679157009366425449362366508827419049268003014146000474009133414071462292850751050899654400450357510600293912718825201872497145691937105132862322429452094252537458723440233778859687843308069717934339920709783238944223245021560978284829617872271884200836164259857577342117824241462736580508283854598737351301374552425035843059155808824983628734136833334267013893937268558758323024457797406476826317131168551417105524078171131909881815360959384311771350610226270895517540325160944507439025046094166969903887158754205582129130734486688348084799419645212076655904130578482219688179860597185588913486193225203039400953941646165646870010809659571959751106484057761717372850598593657987094820984340664407890178294998293232424528309839388289318432205026831378440295599381488302112078462498514929994556735248561429712889274224587682384747474760772222001045055595445253864673837953579262237888039932337506138368889201821374495134738361723359368461844540881485928981515599876967014286443680738996160211638194738826364600465422166839750673754037654589275039925778561438795343296367139477023917873197478740514152226596608410377749276465261889577631800511883182225232179538643007183605929750045497094417286918959222654780574065577977003270850867040254457431794034855675501162949560523412188391321487176868806503451872514619445838958154275953235248361087025758948543006835814713824109246355035270980313170206244520642865023797194099546533904481112907574753927339140275800427417885185913016883912625595497288813328377736735508444261433134432751604116896016972707342774975200750088247187482344687024792501485068023619622364090732192149940583034857823347947524456388851762243319830154695537234573819557749260366586623571788401666589225984701642167119571403444167489640406795325169174655879316710630068506189637317602093104276330576749811185621729610653181170040028727056240645171171227332861761457736941323697891939737446324887387621448097591332529047693650658682201586396135206828777276106285135933047043794556669306769785632994422288921138466665642014205034627033677860940260177843052960413739538851330613632771337089544100384895221251954513179872136823719292934870802199481692625110347830072276558227152502526878390967188681372012528790926173849774961436078276052567695117624585477920859053763106744064458854317932366524618580374496161833562924274638648897425760366123320502482270583035076677971886535505714920932000229397366377189728830035396534251088832704891831897726251790385375834221457052983721924948620282534615375146963144564289913381022662588366574462016776509258434229918486305810515304911707220790255508383612272507680084602954178591729731149371309345832207968979504067064343301503143402761523199040665629577421266716864453248271835915218765259691665065438583305548221213394505422830306114948065841801293415720906201818685495983854609337492336308728773187763773682278037734652433581654432566819022924516856632526874403442851909082991017846186715657909094185711554848225246900327870703291256988083134946147759381472871897929503768652616869601088437667913441694232357344226446796243928886540347125985420701734211537653466353845656826600479585623765793064145148679923503837144183439914217795430115814673851775906901109869734831132419716994955432403077430017169095525351721473714046457864995820885337140860466027768335562435694231255031291679768325721357596996244398191513412330383507927485851100518341706722703344032005050706407020444994009738157171235473875274328150391082708354401747965831600749523257596207560766680106738318542563548239387528488323852498294107018763111123789068123967177174594334583510076230603024536175329686969447118344101768107148822463752371861303933107497188041583426011611500755705925826448595423034981053862292162121763840840506847378085234989252163471852118268517115091646681366849738987742157559071650407602762054791988243599849826024457496582142007027696628386626782888454633496850134652439445546402558126252968847902819702545880243343398854863103348381368196790689467161270775491788509949304833183179508433482921572018278202037748250718018041969937900330818480511114153054867289445742354723011914737693855748584959125168118943080999943276038366592650609209201511312235762871319915582738198226926168248951309025152107435456779473642078155777211338127773620515229573795906684847306649423579052090010300640377155969486089291150211762095342834442496948611593899433203722159680437243063333932154394582291125758926644277317802174851412524640868677207716743483921986775967904896103045654180133600987914267868259040064925212180334025140189949938131697946079463502545475843650628918779080737017121969103266166173654972904175511568409054847695714448639360947464367951515541968095860886815159605263166495754521350641103754921440455777851476344024397200142120083472116232526718506322368766901603021346648937587513321828900040415193420353852933567452863503227415610026954339352025853787240276666604987079637216402674908979262823125401989662528369136964348916532040945068448955319718877696325933812894778423227605677965953027303549098478362572273936420103941092550180926039468758874269133358564734750149332771120280756036537317673245141294599060340938497498369420391562096658352368618008910502740530377823707690904457563889388589984003769468457080541572772022739033207577874800773724919976198876383230621606548667357140885459187475072734672427161544324314264587638404626061532926603428777684489859715909340788313275127084580917038930763253057196877204098381003175499110847707689840903051016137404419438732656647212735180361261773456971785434058242019107361664282611044636107182324623003313464008605339261143576184090420430961705608710394149719488116076020875473858721638778311007917815525584847346791812907278168771364323688350419917725778797996555804780494567624770683342118573963589059771782753579155097324696206213832290941214411093930281485113490637796543774323907220622894011145375688590620680354392073101843798405167185799988872371494504852357239808485939381606799761092960173161185989562829488523623683304436934311758316422402401632707277928750558487686544561621933327183867588406146045385886640075488086322545030094203414887678102616400396311554937183176029900687869440026222060548506468957084307282956326246974398523268749917913131780543878157632569320394886094796053108827571670307621815178882907312388879637472950835884152387226209254417027088128146026906440465348720806072865847362718079709891969148355435415988676049178597938220222548048536870156365682924329856962081313794874098337418311973776714651115635311228201663383185951079130103293929468513601698861804312809051573940675992921316823016256006204517614840370885293500786688033331373549224151478884943654257329608030652743917757611561060498159367116700274219043506260198110813417255986680185642816040582647199977191111943953092507662141851474041013853855277003594285069041124795181146136769412971357843492004730774513148794161945696982087339283630407197254764462549855258612467894623211386919616811722663382199195862826080827187597548034183472559402669200573646073376054597697275431094599042766148403797197690106026537326403653447333258375150616072626858868721076859067008609342946541868998277816445325357722480662002184775483815478744946783081178919774439961681330528448389782306721519433336771986570076764945551253486672413670595043505486277047040864932408151697826879593246871776449570560381759157994399366720888560379253844002929597310245000690832942663242492455944797756301154895175789900206433119968195094058229395859588830663910220591445227646779845258135800068814573259446021608938399411372226003866041776800030111945538354698825224079283189098170505238174384450423764150510810103816764171490307393509495813272950408393552885628689585348303626194593625365801290821997625005849255774529019420479608872162078800725205123889518803642939468919354229715473414865563509208533330108962247287217729343937780807223118631677333628395613284976477454504746256960917685253550330082634316023823694126388406345411212631886838561935457339844042272534291974762929044718635322905018549775925594509180978893151739530350990429499479613887406365719763076583598606418307794287038601345962868836093780673375812155275141001175134329132523833480507426813550637142765496972838218922089808309194861164698293798623673305877047060471989753145579034611774839524541201313710745289766476858795224481828107406436710348149370742320526040928337451750792406372659049668287482716507504341458684351721066998356115244389214934537021746058328979361649226802879496268729487084624199411976886870113323304914320720211530455644260128596088617112260635601384769063186538171785914388505742469405310784207887081109125409773278445193666730114330898760907418690126818266413007114608341179897800480607302773661511142455916391400753045249440883453209903427614708482208486964550886369001419243482783446240081876343341307512464637842765502592310561182834091586666976576896394631032439761888056845722415136584936864723060823770827309516652752577222423242283810803043376227700775731651389086230244328210512576459971673188599386227144077062066246294127699641060766081205895100591915407348768801132488745105889434212729656643434765677889252820393757484403452211745507678416866257782102022296630253503626280812777070907193184841246945857766186871232982291892900351002432285830506667892615753831451184176852883694857701382122861335584014073504822038943819087834127226927546159187164888144157403092617108709851723945453120549984757978758070802315340873206536397274208407182818596973724035084797063159210412890890784455455194171380229979459212358500841738989401830656571669257061561266826783216393361839736137226974081662103002867975911284159506074404526559607390903618214802833298002242058590161090158534308632015718698116958275915367147989813870895850128289153634518374990918852611116014252580106364028086177627274662929727713025652502677956719412743492552600835906317767046470544146444718765187049042914060511745890148182288712397928441979033797543504713759767894574100759957421820395545497068063885889487892981680190000686450677837901119043922170357631554002559650119928595435192700009596664084706359831187298925576563505406781956540342598708756321445870412154529424248588572801023174888469214993659153116007171526230394668305906678556497902991387563677993096454890982414865168042396048038333161563086128576682433302161741417598432073265101478225361005999950360721793040458463163021875804940850310451220435838954423412711473651693181824973419228661795309802214371043346581765064054164702896850433348535039658909413671138422815373440454871800432046194546532243653105744081390256303829302973454774391240718472926734019911948472444869441955335422838986564660432546020991969627496512052385619492223082269654114549178013823811392677119782209290382391501047882993116196516722948547112587728921871615510174973198237705584376229590916992636662102905074478397986876444814760555595485443571269665967256702801745907232419844356909006402376444574643901859470364115633270929315926001681058769575916974615229237605611271044623115614406383251225514098226113900496155442881352254767681173409995704636306671069037997452260983047497313226817790756729710203272522768044234596040304244163513558955215630897346348724323940212687622862011139934949008436012062930143323139173015233939186905923326150915049612747414126172240813820605590638391112076149031728965610969038970326461895127993559780124920228419855545453718695526476031337014612576580376465698712265414518492277498963519007623695251202265071482287991829220697552204518275171018105041237596947892622515950133872580595807970559288761138055348152296504848760548502708905162478766182383908733821933935910856001030659299270675176381808421242635306639322367156834539304289606323378761408861812086354066408184617485284944934240924474091414930888933644508179760469764009068918776300625476869592467192569120718758969232794746854050201025615127914139578571106788360400336924761246726802983742182259898694559393020238565865174000041332994954528879851104534501120681823634453874067800946672655503980010394093261957427741238602702968942756540261586285685498226256343118418112498097947773415386713417352193064003921409571094408845932748299602287610899736704164877576302153751673989297290266280293032712215597037877539140274909156066843414946657389865167798738447614084915941849795040244192584428292654340135856448509844790659365923783489150961355531320284038792265679095011146230416986150454197604518188500944732686090450879616626255125545630743687815279893480647969154506331328087945514952767032888018008748166969122226311230898788766749883012613523647375341140847401018047339945796083278348144949088140772012353218720785419260394742178459921051791229419707529885183748020374349127680952620737175992171473335244043459525152037675218113882305165621917155586557876472919632719056248950571145750729564144678943176598278550944067536192781474221366962002021910337418346470078089234550259331595463936017195198848415291501008031871515901176475879864160979719877678208925591243405833502432735321955432561243780218233654730946356645708779401154715922838529918056259777240000681318485584139756839444519249413701144881831361392432041845345564365865110090429774185673616260314782054105844349609812145200827293259566445312475810614710693440598364965742900583058137317222356130522601564318472365882257858606222607527859713570442956534773081785603600485118512972903934400130314370591512602020589682710463568615599267586086994972196994940136436492327440281147881555737192526959867875740502112794523343264357963695692204272930586210571630722301991104942656109190670453028161976508238328620898675790429871814310560100286993680203399739084921968295727697573982199649274188439181276163736437777360465979441194042055429327862560541328548013000924923520547766913544110726399660055652334070243334071273665080225523722532725648492692693620109089894089356649315882657163026567222855887706882018539677295919381156849725019345784075133146804828444566673701549468768843383542754130354502193325825505603187003994432901672200656472538161803325538654179993918251648002654654737011650981032312980532024114893452924403839046762505395582425248056505518353533165240575863072458901838200382106177328715774568254346398263764422536341204980626089694885955581129848438012598372317705008032274025219001168992029448179012203104422001929478325961701605130224622244250772182536497701951248186936817628737110578357675000920774574780910938129402385232853919383054523303424841711869541960355617290812423831136000117365048585989460057712573040249469483195025366610216914341448380258346727613998305462675419462989368633258794903414051220898792809004173178986620055131377287333882645797181304700982875724467258107417366975077086088896994271123441426789375013803947460999928323362191663725464611622215868238198725631946051860833764935141936226841122829127319060021096767974057251950068664209331508818799922662761469156144430354370099404366029531703994803765493933440587097537754307998788698590921102851066751258253078684666683309902841417296178847385921506722202177706517955267655601364966415930056267874113315031642728182834790459171109148185901304233393119813740919935453403137533664848390123435997785109293911444762610580744475819342969942688675304374944684924181369410071721844497132129013138803079380666235332459927952672558048647691775532391855771430454710744335329305268701036878486302547450158096545412986435970538692355150085359090056029474974068796582036395283568315129053773961532182852325008559226337822208439629799946351063179160941440868188944608634662132360059701522168707879694558306642534536309355292671131784068156099293282796768052096682562909623511839639932303651265627664782041314146922512674828125060833418771165816294487516767428410821985349220644653901327777388171257771425637688439170915622342724631187826975811310798218119901198836029556939597806350711381275295423250113527858992126678080936395253206960233899503711251627475852242588280253381362132426246973298842835417703193167509625467511510312608927497042627705188955637684739221418529854394121495703984079069302403077897350241062626236231658473591757673181665390530075126805466979368548880704907891435464549941550678514912624113962945672810460723772233303019818155231625019867939766123571186501883161743588665787461070780555820546545604890751754718041589055455710348668022174069533304428022713099958507785732160812767005819370344770494404976948457138843389483534286271286018892696393806368824789729503458384816103957082892393370834213306978695483285193181661497991311494644103084686924364665676451231671483279416680743212120930844137933139459134341008939785801208567050639499922363536564204837792844212023155035300519294994992217022647968849641215798867182237289078664482998007108956551252553721224293770595740872690068325314865635558581896378773949343618618957207578205053868811207016088197664225511801922277651104898771876609297621726882073532978481351450628948655081001273453176178595779133390546796071307713637757689702473134712834315013357386951122157952093478498413450247631150047725816127170559953620416360552312671469427154789748558091882863648798652980746638945320388053629397712087342152760980728571669503702871707283523767968149443041532013494919642990508871513276231096668470108143413528296175343931176402266755168370088737396288339838755859712167117936946625763498161755757703781993404035691697991182245664863079751988929356801993488099797042079255193738850522972856961088206956291075604121981575219778891297121567114485333536595028035358372969890179789600650379489577917921153996593682526057381138060079028630662911870810183064408875043203857022604647598747417443284578818932960141392825842872535061985717505187833751669077691037371168288720789565278847654343019888101278800816753201514121392921557486626835660489602377738691071212060565794190554415537913704240617642412378186724474126503734039636415737912268461555566246331124571405205007548845630752772752921720366797548162845832881030504409143649508139704359893557000191595100012930282634220362919242226377895017534168713365403059530346646979052063544182675662176265624894150165319123056882360792163750212092473568515406831842996005801253671964280921198226917227385629474051127204891333120274087572724355852907802673087565845767028735054247405085133801782298087923386532649563272434779002350261905745237183169839792113042879884393701893809249020778874647282900590391686447456549434174551084888336134452114557502490217175720241964730043574009412730194896731649838832460491345082882568168114233776935381734323980627163421390419908565853083729523865899890416832128004273429063355892935749463903189304408200892019659306404536868001996601838782953358801866496548965573993135163131935319492292097673245990967216243985918040600550603566873420023629442911613220286299845801093729902805563018817844463094607518258543588627220274838827515157812410004587955670262732431538309540701290762567965093103969179600422834457984759690853695496835813477798353687431933829152270743686774017517616290205105226553409667485123484571302486253180569907290167937329826826116178791482598120286445769524914099676663566348020614935366462627127786495549257159796945591607878969338808228689055343433640085450263700411117057584065228007585059465254145146984854841518525783433211444586585804014849351293712675508717859039743582128657703694321784365286586332115239364202320108194812646227400884533506604757798376657644904197602626131251189613792963988571654780056408574453832430471937887881198566019778322161452391916881085307749001112746567862634524832345401498933052685246513874453838437409449775430234129041701238761767697055564158650345451197854329264252789136468330501778420453859662900876567728779615585969946661776765907877915069805381542432800166462480132229606639466552909808151999339545417418112824716311187891400212281662522708924584549715226637080017605555825181687111054974304379043263114983906607318576510898154782093087493999948524427378394101494345358477076338243847561425324580680950100694096803316461529090727965393951258396875364127107677556906197800835666120186399839419883677597949281224999869660192070253337675481177731415501833637799636399748655645083841276867706592663556759220636833726894363923626859810497419490794928781311354402009905534527198851144803647878676823202206195618191861093564343904082687483213866780127636230233634634166154488975874539167122636159500131183114750962538237845850936735895638137536034734455186666949287269708350235365676477320617125609171448630747619295668020461193442312271580182063189449952558172737863408448104519291741176854288796528413283217758425489996898868163469057765093488406938748395729721326136737925608738592920096352715082686089338940933830783718107055838926815653873403523186549282795372030752058167284567793075788035375440853442769246467651578302313860901170829375059281732497936948845629981487408155299234832566073246939483865613657665420422594699736808977450554774123757127167333624287974329575297059987554002935042290235460536558727496654028847990142912733712227168260299463744008238351413996101836006699069097517696132724857734624090961906980051469993347478988085637704723502630572773663094057526550993114081234105023204539823372507582375443647150817528083622468745082344606262603980605893039959453452569705386868982566585808989911723569448873580707666868325018968657611384334883181641004499863805749804701487070565618406837635731341408058431238508710763441223104536128492032277052340990406411968546129997728394175123359671316413451805868835346862671586000467423874460241782884671119769275662174504432702714671024688518593931252811527050637352007332496023143265226432532833118675129012137627205642019168237684315706484080910926648886762511728294542501534095423277939653113598071214787333028515495902833918917650394223133217316969155891648992063435459683780162841651563212335453757844681236585396017517721230189702093790984035975916206066241305241103264175054308194329250864896487522199726063780452623163111146964502964884217368359731345640619211728228817253002736618028979848278670437768749125312898425834628123488903293746093821358164265876272012678556672504474309524125819904857191566761870060457473853961357695119119730863565204785749703823629501743326807444507599143327611143322478427690323250581530001583147028649697360372091828577360397768021018202068899762337317491702143290454548323456348456391331332296635845961622534530516290583698840265060401351984877262701382927788186284920839038174318016361522338549608569421014589585051153313743378221648875330940213022236208187051232390489936124451100675577314073003451546414962507110585949976098744520021742547682201173137267809214584165673748176728771011376030559672677257424174397537980790790283921062762679930438935857052792266275820958766008684899778606934906468973069021620900508825991162418990629650876108342743691932554951223349985505182706719168806050663084677718632010503327228044296803776537381290774453441530765001130942795778227487467210048581978765767950004369579050239581012888177426012320006412264433826233722326197577573370772984950584116117442326646845004777016050142418546826207959134035285800585071509037685727885763616491789159161290517860246046910144319462347247204289662093027331960865004772651111906075707122871972071502011811941252022504890055552940176161607787080175781439202526643777958570531899551084237479027333757094540856837050358928114641197136719607901978880431221102191573710952057026163363588258521583068762882467399351732987355910980409219119376521043207411833104036505971383069226744904867550110450206134532702595117339590845229600783661317502241788853175149260112468337508709829042390027420532739896670153744291488123760652539965816880177086211882626194017880286320666000448475315535840811940991808280688410736364958237297599681076328187799724995946141131307805103994383097799792715731099995523958298986470508996378682169731847434927292768841305389578248390440531472142450739024307691417330237043347511054127750888231960810164394069004560498384770781436778106133279184858011998344326041098551215605483944794913740303653861253146551851751731531290004624998783622589819981459957959584567977611427842258233188396590505724150001825928550813049483547750699312797060216695513111483111648919809482326246851875300005507990652440459677939159531519966364859981828985799411348382988015372562527395601567068524126925812232142505273662764158846438732225694376137790586528009663083967592473903582145895639022818742262135388686357879867004882024942297409758152875388884851584668487387864145491405841988291700867622281174972534305403027355330452827410397131060771084392344935190662795156953598857347241727881442337108936162723939819646047888674667014336715787637099090267815574943537171456955573426521211020265970213539818541912551033747883936564340951503707203710565681531461889096729331892974237067647777010547845712616419074024914418034986171364367957845831701863601483498576242360811385035865474388569078127810992733437849749455459837059093617937834511653440746041007117737996713031610980636013047806906728238218027445615953098327388496228341900909802365299566977653944377714962911636921360737504544651236004693818498642700022290180301511066437580894511237191848454951102296761444533253034669142681865998359925192058528793090506886151588048099061989866368888052225252123091892991455037474459292389330249376722812092725032929821212774413501878310265380385925035244543531785598407357216573099109235852383524440413361461332936468583218931016077975024151444138951626546596696427809364248831080171996654209797201975812930835521142215742958195180450661802158807021744137039316668289661487995842651478904068564333393248227854569520620430578021022504895311277457992093035842520641932272585184567796415550384172150039945538480507706349194252906927981106485545443675675430170623273095360990450822870975962582347498493553393492212804206197467294063064494222804705466740759590324620410669876253201209930915008103773919119491283693362155514643206447387834892769592582870702508225654946677165371435328099171570402209970992056179167466390845177923518388573686274442982261716262891382294942287690340131928100325312784564239950793100416701722743073051638153494391206187282684622257037280053901024815256300580957718522860761730298173859691159941176198797970272083542645372749364597043429221583958549939435842704394653528500323554930014412555482985622711708219358244924221409529730751244356710913517573757940310078445851515633465724439311894735328667635806012503336516236097640780493260859106146651719050176496287731153888665621178436462929349235372259844420992709318707284343585450472805755652789660336217446127037492844859233595826115946933919709261725989946479456868309696412789875231556527213002719526636541430422706741964309929462841922695038750666419760336938649247308929437763188949024405581274503190013903370553214750154158873613546860472852128802718212521332095626876417290745142668994961833038710479976439923144475015151212034891195465635093704018784676572091083530596063657949497035869866944128159680553209053039536853139888620466103712370842708101593476850783695879815068009765035314122502775822350208569293227069394662038329534220522040801744421817242340463374575392856684462056360394168777886701272991003769032691693409758239801097400349632369540500543527793415165088162165628726158545237991104380930745009842289748474295611207445850352541526844559532370634639323261906048545132983604819319016504673476957019847033237300300390881338341537575423728208926085831729020796227039927126951055364492057399778065017410543126007942507149029733595872154420918616047067513639361283108481434008580956735242397606321690790697079682482484538697884870632255548606147450379278661313204428997102559035074716565051078410058803466749506584470649717107735385598782517642982269266215003130598286089953769235298921919180238881086380884689819684518156714349430805122179702945257149196454144587743318721590908139133587320854561156697625199291970288314828703227008241275131483589062948436718323511341220806162567670478523031104916717611423765269949764568778419663776441315183150907862475972785027201740743310591655291078165156587771502022782014486700214762944804144498700410254822861919290715787944400082487847232478757987334208697951586700408197355388105788679264032179712515087944837066415029393850969915990076664112997232616969258871988935824482026001166148017492678963405752643037457443051112983452791106947612709403170508883410016487354080914742811273730504775669942984820135113240947008052720472682374545921610040370160878404566098985974799705635577908288285944337541951707187619081651064415846212717487772619314256449320461249367167547081181809544893827128851267441713094475551354366063303672381089800461825106372171670852813841080148364199399502600871756514142845049188909993250339412495337483648599221343126481312354773595609421410082274088778506056028501424476657251920088113860573645866826459396747770955731945915771902262276630614109745646503754640906440314548092068441394601664125046396935510172751479555817579760250064496560774495888879881265935187958631117021319959225772407092841633876602446007050014546300845065122528970612171630041951654961435599400709436900690364448762631274900636680676610717907612968943255350304554587636146187270113736190989054636716640501656336344003634866199791749404274054270926114655780104393890213157358917214241738673456705858094748046819985699936693225345289775540424509175356034047019692570333243404839569472439095386348605699789404091883738722717841668664658516211409451007848571939599688779340405927438343695547995909065957105085880825124181555166262733265632510720833942848330045905925075380404434525685414420267751625762119014943611527836666204913810356518943513803637928632148363345960070087605637170297324168554088041346738434951567748163370082586412627342780679049260855356920904473218623015514784762060146586283541501645577082071715790399063395128159238082801246532257301907642821769698478121118492140446637799771139252561793046511792139874286129097604993740288921489326299780903476718543069200406396407259537792495208613826054590976069135469082116653239836679613831405996915617795415800460855580629157391599524724084336801095522448224400458576038768037260813650134741636252235437275030840664088669737031342818848242893939333679977080556306231702365703308788765574914143617720493454359756466372295129894548835014167011069994891374950463954458028893654266544928906091828432511802876153838635554434412616379310129676187991190606565429725684521845128917185935163251623603261426064821549877148630202114444989625289052069928284907909691250191917424807094017485255626419964859046145114899158511365716536961044258328474924567375066878862697566307467969526990338673106514417590281010703814429209522243376417354568096747456361985262380279429286698316203189997983906450614895523220109862949200904619738140339804041944546151436671582339021682668665895079856738076974204246766236598124860387967125666645316366135553502843548571169165942608943175458515536574667425714813390187608895564279213293799170016721624582030341814006930758940090984666813866117758440652769434772548650969655216313556251364556854311077415746899304796245710333696257138994430421172287219550795666487773040958727674813050090133198332954639888335437422436314209497919195133722089545993627161605190545301558314241462940709008769619094269339833675069320716535405377144889478636947881148202619031177394059869276404392823204335468167944778422447629202748021743791782126937247869211728069173669277405578912845423236085010697998868558557984906408811472511315438336408506051760920805738836402637336391422969370615415467258768995989373984275715876249388534685111337060116496360591550930594948731860133931217043179767047137227778839860514513369157229340252124259925000265985573446722827664388755775658147090639203979170438308798299007190190066874779046135093231042369104408269999603752295713618941639230420181542590932985699616758080932178171968783123184077656937224884798160483430685669946629266789815862030830125063238923188482726554953667815303932203221789633427152059070071737810388267711468894990255460123932471945730725972915824800628177158945687515930548130652701306779419159409440090492984665550086306203770040583243406806913931389198517877530172790465891274286283605514414775694866411133942872065650366423638532754195078851602917683134885477429646959529740863748034822262895220508465683777311252690471514657555070463613550411658971973628397508473738736019810911457457924717070064973693683084449845298448334303130226455774917298388819528961841724769537637766060308954380457779876326405679233267005006607455427846975074607229634237621529366298131833451247990338626147902702948991433407341812125129722344675106983959163242304918262044083968192908016024454852185107749777664830876528942064234426039604939500723310694767489763823583110041017412127184558399281643456943177789375837765924338962251515786144501647942714236240542675904899936461812909415717477313822766584061468317227807572677205213186787746583605271411358798663848543357234868704906834083335401435481201539643448765872605980002897415969821480353975893326572223007218219639646813474793668060563654982115178957735729774692974288637535471560513366087902405692207632947102007615587326430093154594076353893888017497809323340184822974910218891625935207458487124538299917977646369210281590030241053947976776765320230116470743150519871963252134375172291851547959808424069251596309662198551528882007168494854664521970302987791396348433488856561457777540038203700755595274653788906065122213038297604255800771353321857731731526008564862635546786120181708485709542358789135258028130648478398093269500457167105909553064380450007442852327179211881622438445537180321402612643857448581325531554907915276072358940989734604401345606926198277477673223759800419902511479591058353766296516503678807377602706836254285873372456069856248954557828664381963333902126240593401527261314762970206651205791102233820451533645062151651029099352702004009999107343408871858526697188248275241895291044266842759918858481098525387257412948783104033457389770370419391733800153990929934650606652040274366352630980005333927586303732315139460148410294481963066519784317606786534630394892312792147013835018697259687836135202486092357016950091103936743692557130689913536419813395772289632188858138639926221947304655980602635875096913898930689398941631873492071172429319431753610642936722609855724582990910576208148277880457855647017742122728018305697625871169374528370521624467365964737870375051617536066715961879405483545515527206527993013540892019944810008519549489457043276273639698206386783041740998417946938413644472094378106906750454290379109340382802772728944001628555252133853474503382000973158574686598067857150556754362889831537959969723400764446509450260196103824797130926635703076915823713081073432153849824625124410705314149532875575876211449273575340905151082728363229768017397619436567360344357350675875359858938420689302868342872333940026103913824323225662134726839024364580059968518152032367783099336884421727195108907508377640058921517817661030787305122771659357909644612819613247256523982671198432475515289276713488308938500085617967233034694735291510501767307724426372028497376024991274983995700064842435437864902525950751199507474941965865145800153776958266991939508759007800254155639196474135829655179070892053176284526745734387495885594098977459318435741693845710354086144510417530523045589983426367557036815956333200052073407213365378543926468538352140477644560885015713677973007456709196038086599843654194054899965243710493882989527249202023254754554519509895742241967361878381063492355317961510545706483289224173127510154924643482830109709173347446522269666682857330634828559007544545919939937986980617493807183548904841538472491696765618180846735713792934143282628786184210382429852532941934022331401590197475696725949072447463848017285141084187809172653608368021896335118015405573823573719150468269297215726221565537241486727668115463912752159680287074730017564146879555513879785930726310472885720762311585047330879529775557624066891381530577975454398104182390012247236036608339787744770375561315210269971659204663627711885420689871334869068981629037623590661218435688471592730922792402348172974623624772787550398022338501818810260605660878401901338088166408299402618207596745632707475743492030452013168711144910902840948071818564851179868706245048119693553803567885830185625328181664209966640177836961593878870858080991029396341149385166159487551483053304343422286730769329029548659274567089702593383152684353378113838372687490375763010190841410713992119572769420763701321795633518810105979600805277398628702611261301441798147992875481551422492099934134350523331814370487108802055559401354926908481565759298095493099890591242628298374632582471506691712142407141236200243567596671948959276692937513656208259919126323770878964012395304724476951739918522843341262301815601510825833977520824332542660932037164727108944604742370287639343502346937634706845834407193733129330600379251183076919576763950251933936793181926524980987334457967205041746873811629338322219153056338804315260283290296823827239651815233035467241846383000570959552013894650321506954154909609309592164491202325787801138414513153970404276039179091402383970950812636595506465959665911586583151769659779050322170263719758185175300468782816446948314053422965191438507361723950341493022615029718966384614485131102218274680824104248131356919190190260325822948930019418603895830941967450449753315539432157976284771154738976335891259918275943839284454192545758517886885973762914422702412762280501070875260074354407362860666361124152217533186175093292138282360298801189926935930367360666703591354793462831226576972820177802854818095178104374112441937190995884400404827645547088765927760925300146683088685895413736985934562149149525522422044104485951537040723583543791608049481439219948386722646020483625924031194749768410408341350811955181118305952126404749069330158014640469340221293991739313158381805164510148957230915194513023112702289238034091503537755375080402031799266636168790661872218332806561671281637187380586517581424410936721623964192220001793771448034196661642827065457273035793642966832590424286968859020324224528422144450467924351091753232980005722138752409097382203184939709656008748524462762954965672657625636032667235295719842117860106800183887805231393311142936669547670861010174576850486873552118267886541627064840830536383070382028060655720124991549109623350017470759387948277125176383168398551657918545178945091684347316252856751175635223658159194579306429747528225579017439635586399754872562064440601693334382867271393697290415717748905077486607093837343759799198572658738364316476164785913019452518822028027004379216319367438936404928475306462179203629129055296637644594877047125014929396192958875091031969663280016388042427770589039295923441795076308416977843981447142513309962632707260794520341559796515732128750629194204120962013024460748566484163551560604854146934619798648905794634561473733026179806635052028384743026379747057767683904710277731058615485028270507754845232730886394286141705604813438137128102375229682668135179828650489000404418820445221915567661288821453159175821536354499800657986079604520622184767785366090770796989358190996262917098039806263241167952834065077303012180291722907303023433542618261946466982711223972898096970888892849534615366836160179036945243493241760806531318864034682719207054249670582692058357662122849435073765550394838730511151365250752732403453919805062626231917298543126255334988365110701624602846640482367960933902652267979513464505408039925518826521633273612127721932761017775252388412645746508439022086750307047097681006702891800756344248685234495494025416089285264449360152006659575371993597840039267201157450090097088105206395812579120779455747619122046657566150345362103095895677751771508844972538480054353564483094712356864071930886225480856444113987740674834569358835105638506476090259594846873827994490186575508410920441702567799596125789761501486941108107233090157290004622401961467865600278985076491403497666235959056549434971000577791817186187016994436551241764761693451785478236825416489968332133620926080894871441049647415630405203642259806271207814730501814922876780544315703245737046665523068890341405617823745440780678016883689562690422576145437838306662921881371899666529956744002116608626870684347279330391765978759833779482637839118461467274103933400959640384027851134241900628688716952300457972255049853980679473596932656132843933496954998071042344885071746939712809116985450369436736630918388983287809325205259623214350809940912125023157002440353755761897693102451945965437508343974585142449383190967186282502078619610696055212348227518495215558303755955190650422122804849312919852339749810014193175504149517927807896038049079442698353190003279573104163535028261227941378197881555993008030743327862137007193680449424112811180854816210235570442254444274288538513993457338236942251368336148602833272421183890067158313824461291888651995831929607370923413909121372853095348255753583605620251683815483248082655181630775649530479497902523018179012033603373979728116101453761610903614095581269471610000842692133519334851769214474079164074312418163556938076012738944186784794590386458530288249041848485276915179011372624658388699899980426484014165403400835095186629500055841106727430752322218321602963945789696377214711706890402063872878715867887660424637320013043474010483340749919845356890637674671933472979696066432903831037172442168320465770878002422466627030035563061763431065893719417841985516376967421371884117078526051383587929160733247791045572389069172935654453891206498933086716242575048419701541758551727773018842205596860714078193815617301079198165237317543057028784588807116865850697533723442858448530762762271431930173311594907581727661660749744820031029480765425677686472939775037375656520562222768068185812032337322530870356270370050037641644601965004448496662002954268751388611340550602902683063373500032585036740439793942652715199696503960940019937659183405114383013813964631710557786532222617361703507325034041676190188146544191588891970755787281170398703114374186858612310654664556323389726039594876976748764858835735071059036557549305740089251742158874384435199554573533043505302109600873552900347076162741812279635574143545836656732726040327417160220320738054786049793558339840174477066389053856310662262527750021612363827430415394480092971999282192757244105494460429454026342457149591605668444104215749084466253527542560432917916044089699999860844915679563167603763665757524797356043686141147777256475438699930686305142382648877513120567301573189251204115619240799369552306980348967292477326261326441041089022824139276735115156009245550533419965999479011912373630652165467681210072404721320835720964614714320133979375493629897116332810043032608227043243570258022068026026409129897660654158139430955190622478263849209105835070126629705612258817919077812587381940495266296257357331049317774764990270791249182208919371424291563034217700716677892052283685104163111659622573553349224987580560901293138986837829005833459473656329446175009075203784003978324873561798085369126399045458735474489083447257219787902265829430477951258084873814987128846484310135967190483982197644904387321674211282476419487237400710521251706243375647242297363966744268498688782992786701156519731809069287007435360741618404197741129253997716402541514586939866674695688328234194617545946140294909968234522745390825540650283236951277665742959208776266703995096361154798017805962524572909692275084584386468275119805717092652046142762897359776888360961152094657566464613729211929953233968275782408021255740645901931514717158119766238756566718041785654597529200859651665347183440263241126039628614135278371215239683957579986703073720076383863198767411399511287530143417246301619254964856463937505276519335327400006758065362222401676522608100218762241861767656841758171181112949137163123985739471102965190982750129858459523988184768637441589751971036668248205787685011562431926525080454735606200198297756189791223474383605735246604917234033302372318235479011462833608213007237567044147982045741242150941812833309334782390178603378568887244189666414769360787739844368110149175500355052451347715816948345179756347257482709818633758328498014523340517859604061271498018337819463777571100034321208045850393726507631463931207963857823796641051927891404694224457327800342130516763180058192916785780466545848506722908910216835073948902778254379106834070743622008445722395139565333089731362543393826169224576565662551802235755542051580820240589580508805279819887311358210043428698145115056960420066184171822675552380368501991020022709430738422580558103193652141879312476597575683733988848885444939867878714651527546174978793653105704218575232596048489838256678354641237655811257822432642673801976408941705427739211180467652965359217989938141955407323180399899284655595532047560801300729798469903761202278715802946821619464011581972615630978134755702316099405297688324756261407083317378065417371717864287347972338302902785469993030733443529005922626318459431958057337134631131977322208334488955789857799572081378254827205783471800032132756827935311851988715371762662284434993897694784242609680721419386626598678137641583399029427831535565707586317334623283466190876646445318565185462377505056796253122811794775400764146298535501363162793266802248900692565576496188245271684391588053554996829660677567912518174413509441242288134189788745904804348869261615597993716991508047953269178431624142475168589461951330797317750411486824069314399997403675560289551138153574699139541410058605586832948636441192892330055981221641669469491551223974819731333351174260633142403834119477098863613664665032164603522070677043799908300418483046206494871648374143423621369818269441033506140489515807856585377924468642527629122580483090384468145218880562488482957718579673819870319086430450846394758737989763247533589412901148690236934055004325052001176972815719085829692761395508749093612093006394823229732744655361064711988329306819902164449377842609298945112313785288582696820308377115556393243161916784440620817627841802662588981729360857484832948915337895582565924204290829285479412014733820273029452135063752187272785278492921668895036292731928817456280088492572944555271098088304228793488367328003758064245954410257280826366907629164122780356594696267327183049527326265094501081912521311810859658103600369150062668029889613491480356031768128364911745297181841743777744244396666136855767461708229618600550529712432252739479205969990617596057733018086629966044682469407285365746856441858706490459069941359555658300027634125934608129712304516010951900284210968889399203547108688934292988460360217171835158674456040226085336748901659797302501481973633683190665162415964233732866038171527030368824678569951579610194686641237425435229694195460114244250510669693460200746667614645531614062480203929176406278297936821451401055723867947856909222636014399505846206369334668532513089605236216659722569744897777628468805535577997973433434692356608936021817846510130567448373201259525722425940417022902592662452051780715370924086802946933921696965001991260346910489341250520471520597568979896500330571901058975047109903137586202810033437421990310489961017206635986081920894382378892981298662743597656205763539883471210880904361247091860333800769927268012879404672476579434160305233836681070700837748331463171320011933098219658718878300820098741625372193933816992535669400445230537600734763917400950127588353535059478794268564227946315298250878568002241325343840791203963033723849950891563280319337911209810491300888796622155892772195770556977826036263524995081153877990904757533236594193027177674832572997845936321883880242135776412642927287482139668661748163247814111524894294739532939962880533747675643548410287979754889530976255096324651862207685468501235832815326283592147522258057265734107506356380363976959601121556164190330876475845067341014015982985835240153433139218831223045336836857491593571006215434979288448987582072797063627141722250394164657288563352063908128860153672430445130977270460583649984749289536020096339504555487750874015531392453053473298493723174599947748777003925167326197468748726094703987181581824634214326464427999757434042244663850617979059696194851989958993943776060937083240019083692164312740705308941706395981431388155263711755957531191606707326484924066920375927428176394235002879120487771508345527707489606765292005620131816373329975243206447983089632094894618534688845073133676532054285729009702432250808863174034680459260984829539004139221493007165243952202358995653133442678715745960092580059937879898474268750081515398296832124816194305054644547930471153321765726079149595553901155802710145138456210060084759601118173167711704442566589738760962833601986190255437942382571882854446698997121077777814762742031502915082117648294044950340697538914586711347380306542718251659232181465941431528737112622894837751351048656441405749084816445692298602481496917397925837176812694996505517939356366750463318525197099665650476257426913592771551501190153011263558898440861856219629373466431829403353669562610460905308754264747516939470855351813280424661242606702089921148876030776958649162504428553536979433675829448025346796890419523734411000662159196229508408233818903291562802812468097069017786276224723555112163279559637033611616647738630064006909909356050145333532477728784544692840054509217462227237340965144743280857803079285482304517307678333971423569581047278987989880499583768608884570009863102808918384886856648231155214942509785735218143982945482803222812862521154573555994733539948455531371964406583681661285962736905648342739850576438213216871640280080125818923946212005000471371545629623040913430528982735273133545767574276529558185909871347269289414277920839767312962496671914974240002277562493089640797447992546020164326744288466688638924294406884096393098513107011190911605179757117365652612551341181436048320568779580106179866932806888193067881078920276367329439781168774516684406521923257257857923899304129125496632246497190788387503293823529111941314718734697103157247384213300228309776484674022440395715313329200593307455961455215751208965817565663788778606095695439919648740417467504866235079844241172335881879099779565289756244470102419135209754757305539050681314848196288939040196673796004719932739909624068549194195213418333376787468020511978061745274150108131631120356353398462625516993917178304373406176629276078864168612084170776056409934811436103586469143432590682310124311737408619632885655952963294900751082387155511384054678398801099869718462699268145405972806676182925138904034664245321567375109115559435427050629545011540989933927850393008241262768803007139859738924954448220229136025771221520568434257359793060873748669024996618868644282642031883815938441832439841812733193205625484719831386766952686813175332296427285318615729773371017753908712979400048060621335422703941247683261055238912976743986716996641533589470348343708933225577570681920613657582508153429780148911034212499829921639030285636911736469033256605301103536023267664164576644003449658563417030006241200432919381990325246774642280458328163838477430575331865581738447548476518278734731387528725462838521941252076179358632853927585006261432189646545225334807602541229067006802078854485808908341116747722233082240632548146156432347141650769361951110480499153694081527039754409611152695617412558378259579935585944645000901221183090472952397033303025011622927451556613348554755811183173681399248649512863104371008929186032594425666932151156491286792722080424039433751785217373239703021788783862559444814663056355698185971836164692707812503246979399376074257591184226309940300526567683060595839036197549833887569237569257902534248109635405758566692784098810879142983773985408432295182026656836734686497967528824592977826061623160367550438551772960059967486644726281494625397683031593831211558656713438733679242478454053125405214427105418343160003724326953647015802868849609951216267953458201356269880267205345182516934465839110845428922532054435776202849868631484916021219890216239546650191438363515007371736800097341403874336290015122199601105877400448464319703622026093980788595379128950352906388209637405380924067971881355525260622654781085983092306192504509120110072960181423844424746296964255320793630197998204289623937876332126688802524059872716506968620508707432426543976242540238697395598565182740987450570460654381720070183077146312460754641148642786872815102252563064627599823887042572330424287402860309706167453495367849129377027141286565611272040546021367723349731818235734922561999689292517813878340928808840468090736907662388769068634211111586574879716281338248576353023467416578285743739223777530779465946751733095144014990107744726748990421335798458007019013292895833713229843548507812465008019872493705813990822533712358507687394103243436827017286081759178498962476979132866078940471092659757671017954407494067440390889859041066178415215524206257660637430411520397164818992695590943367285669927614042586993752063035738046485840125545800402539637093124227894286090495538569256658641283116763120901952714240348208741915670795386442113053022962989050876837727822542806096850535772708089365846850158575923862558993834610545569273305193927093884010566252870817421215537002360264946831306563721832458685339404355494881266325359375538906415599487646364851233340198727882931928284827307890878147067094065671784760089418327036382484964221173566866745040477613174948509125220226515831969334381213792164223622202885396764914789518193664345057590705690536301331033917445773126560311953423478199643545343281203755477104979832236832165657081111472126169527462808410175680393106877641739823441291267053607994451466793372178548718777748724576474295660344371478222191153171776806066110584070454796744005514489372274451370825146111060829107799410412853553505788187107502304518013920902563737194802746029697992407595218107656503595932215490672873289460363452875453256426282866332438415843863381799886610675056336058556304097866318549365405487763169576168605416199710199514516445687733092242049786288306264285862974583139144895997487565089219749258319173048119975613815547687061819470240133214484934073667220121299096228987305988694987255648610344554760456389780899490401915742355640569386229640185009670000477415489913107739560125500719570748547403320524563416866573198723917162460237033048022831906273209337750914984023107875200694176657113674296211752888533394401475185053335040753318361322988592658542558359431589611503193153231504748682251300757444365555903059541700550032903550278511398210590130497303643241227503194398107316629181441319116980323223145500358932239964118996202907872134994025267546840114703549056636093251824498803702192127250884687973115257181254820608017310366211006197339954954031703808106344547113510635818035052128047772758133772437502095889704533239115485842588620893997940568369831635379250910074840907856163438101788929915359302041622604735101617481836876323771114547032317316179526951721205132545714296792989314948582703353818193354013659757581426805957897438487875688592515877570178057584758588692734237753795653485075784651961409157478603331955936192995262032697535829627809706186621455051078849766456917518180342464803706550526117641091390096816929527582486717149640450134275356948691430069947755356436931332510195072471825008051566719814039939224539551322606020099950052572148568594587362762997519458238602290051580696410976523366635248416183896639804953875610062493458205355374233503839670902326635177547919192914909877526134456804335608236210111229210206972959406193942316474043850656617097226705618843897114557124124244045725891337936057818268836001360823413802432138975673745448934484847906290114823209331737459242469810931913836056414689930913474874672158307297288755918860720716865456260387008452840988341652308548951390314451252596032064580541019764246889049622987793831129968444563248288349056668510664634297626776780463631177224021336339276644241319468325909707517833919093057634603263731336869599033776648895519124943916719049130448619807273612895736005321934869595123560402298695224433612509307275039724421785303585126293470678311379089528456294894647147791693506628795654337164190780478193097392007204899394176818458931693849069674571749055574532237280397756364777358393259988613058019870224110230187751459560615668436183314891738771798728232540023289276716856198779544693685840218771420907304712111697649883872773694111531264713783268786540595272618918098333394297509962498831971834057861867511771756085586618720445380499712138591347693416434696647283253762232389785714711178577798554464993881225261890965629516094567350448946469639974059631176616705925226615121744359895872780592034777788375193403996412561798197465800948144471344318257600547776477549836950258315243868944580989787796807123696077272219386763044299227726562781204704526725012979496241372615128900462966938559081575815775578676890237945794635344379093543805315173243090516810969587378244959570670030934000107385777129640752153695235164862091656475472843425102677349053697763437545514282883901633328969460288211952415248427462439103452765638511365467308990566601804410310078493732621399626001242147945637527986136301489893144376497724434198569896373735872479497308742625188085110163701869951456075192468314706544984056024219201009026278713556597049162117014313827007346982297810574884235972220874463025630953926910625586178292177846875492577524461829093552467577229809637674303514185279164142469563419718835774756756403891607279461106417346954094892226982819751403569220547581985427070446359185729717001500024834356735387395270120427772298438584100705642866908368976119703570180481951688719053298655608918464333063577615274787516350226002628118691646056668393997425440749389817212422597830881748051181771754912332864779586095438334103806858972244898776595641956354426818728629552417214955521412199318309832187181015757114103252970229006388449113975138916805284124264515340612131263412321769200831838945159746562080042402662967059348227748105621469705087977087114886729871007615687659053489792017637611379786211466438672817139065838223813465965007865230352571940807975624049915428672505022942240644296140608623739297751118820504238790149996341428941154851288834162228626942041488101643574785803704308037289150943980141709519123914292740744460312583084722482522965206165423728754668938411438360002877062848007941641053306789013504032935582008472341979759345066018308446488423601592649515384462141198195295211930693539387622805549186459326339843244051216011027517342301166116676498226709869412358549730003784459386318110621324341617972463878497823433021232749155591563138390615311776158164204144512573015120784602791094250313142368582112493058335505152459553370814692097075086903641605721869671479217244309962038356085480765131775753001395519158941786033839901288239627787611119457835683836263224281926948576272845573623961868932327183240185843732654860413832578506593442212273085212352121091771670145922300914461406911016783953158792796704436904425498120520165061775472113216555977636422114945902498944246137147594687133926144378564713384640533754516298539223884554367321686910587417514166358075620173586719833256826241029661332189429659202633536385162513692225378731672042616297109970436113081389669354013558174938714440207510492604621857178792464279751185178667963861314844228477781749148503851209886966642029180257841786790333814750533534248799096120587632425077123789649117898593191005627295378443367053540242134203037472478437234438451420904898123412799551985580465020656596326350148576323230702329677011031985572421049366996746868883356047374086186592645471669378562107364488325818523420627145905981413625980476789734418913080451864038613828256478646244320617785785054042012454269845573528558769878173015319882275846529169745828401201329386294904073292597809278178540528043164127182782284482901482630244277237756554782519674392243320120537928615409869940418477622076778273115483335160437294581395650594808066203178902074820869205235300656707980477314501522462535275165627016918482188640737544829496542275840121518995204087087131918221933674973502236353731530381051096267213149023440369913135720418137058974557873570166189232450482979250798378520543249203588531015471707326666538719013528915499865919493136980509663416204075487629645523235378912101159142713888327774091698008461196916849176241422459473000375179014943032081398788559797367600748640978128636558470328202950826282577371075348475582988548411891894138048924284998021271441577085138819346781968490109516371855451132558449930714754373486956836151525355648010347943129742864737610767397670558772463299682557317366120194802427034042621494047961022446494024796860206220568803542128501021550111917425662999634640666078015196342382186186727021789327092836953793200824496987794383654945969303800033695054037259988150625414657022766295378662537892156283337015626788705277474185072557212718088602784034623525430087416867487521232683148939531164692833096780210571704440061425139335473493006431905973704524116839097350861397970044532084710000474909777090020032492338021859438341956406375032299212672987817497322671461999192899219680460444098911965413821502082901800448273102602256292866299701463132315767223056212851773474408258948489108270714977079725685412483661495334373730516310347777414650714839018572337459917422824533528636851324050846340762906906663870296973612069379757917018927499253459879821352317681287621528760018322021944256907736212502847694431946787837439587251733637372417833315807614003561808450591620645514008100048495559102345833163562267916833666209416609944375020133113808098186625676250477142533380827922215041348506291447256557591192770624378157467105031238874645037618945787779081473657236478970984284253558370565987779068916346406032924213272898971335836593399281670615434773880024365090071760299974764914787407170729066097520807426174422779570788452214604329237990971325826877437296142115785291327414522543481056591346024574162346476544698601472879247222688141635142095304568430706418185957271033652282021438479576183915361290867136782528989915524904395444761475209391869116528944180785768647103786085454298452572580927487897186253002351486846361837545245463056149249627882154649007360799417431924817056274500823709337464062985304758399802199067335649048580733171279253935084763501422316849622563426568471606089568754340514067594912514908443515843321494988726514880654089186372296016584155127598089295034438678313073014874580587702123949281092857041561510380146605166736626361081841953095505683914002563429774087744583161017792448998300079046379422529078174458763612678414608459455415625672138605976522217909534958999811851409344704304159085366166086219191351944215879740664877498658721838677519125919478976137505608592576163060235025459271269175939178292179066394615533633548455569229266792969312502985272901954433325775077199537433636429128154260012657650215564909227305613284167633124973865183509219033996735490254904171903724019814603038632985066528658989082063500303427121881039862639278238252473086954933574067526383294030656553495851065782969389090319851873821042235461815792502219502817992904720048507672254783803731153538785108338258798173942469663058874368040245908357595090777536320144865435183793600498482021477778450616160730124932565015823466674189787941153424072226532320425466630346420524928617630934139457988571917378551170913817300260683168650500581242735094127035810637509543919776593911039309679989616579732201945211962551325045247542372731086478478594910281356149848975868345627071397861651889267048682327139609293006994303329589381202425602256725218506666886784093854018215084586963329728140147806311980642663414830119256020275222745601352872237465395572772227664688503869144449408976629745216574181315649890052078974082355430676221311041634301097174957160689786578109852966838292309935179501549087026792025419397133272450575682291143874915140741038691706579610293319429667009905882913686900054649855982664364943935287550252396614443447261287217204949477380280641596052454777630621255476762443334166779251356518792185957724142036534944747534996298566228895935142959861991139438444106629977845619346638877212201082483283550805579710297759461725604958591640795759514114486575427031842812136140218753595659687905539674323612124080029173205403533303972084658846242192253335043148628720106446496974517293685729561857285414730569171339714219420451472209096312626649858670384337175226101999571171901949424033243950135161388473255287276712874864743170353740683435618990610168668097491809229777321859988003566440924156899686590577057975049049732067099834964632661046236343200544749436331187666689243613681733446133123707895532803049389737597774848194112231580121689842859080830517296893067678965951954919422108439510769429275447376234971580626121733408988014779605738971666614930188691552470658783500277369443946632424016658349741497398860830259678774823776942507921528238696607791507965871156593160546703476522970743481097630760066597797955855118815865497786523732371945320947542620290105561680083125506821020586800607230192214204606800020387054470857485693963724152854505087191589500724432129789216682122668288058309466025702533288727472163221203813202062592392113944777088280808308074139844183985344304431976108728068379885511551301488268257638251936238821542829066452066750367288356348095184264900409246903787515332704055694588466413407586480793700907760212252595661345451609655074704584522035943785498874437185328345308280477254207917646060675554360153740346777595288461659062137884061569583268671354791536368343946480304504206413312204929936351746007496818079015083067652354992365188713512216851694106104796407387033577533563281996329523179438228463151941644898747704500190344148598995021788471541700473058186534501892474207914749664802413898287462664640107184977274455722731025830200853721257325117135965087489667291797664312342672074727568233725172297625128414332258063728505421251073165385808493130821654348688955746683269905462420632807301169975329380751643063445124036510356207753262683821536996825594461953205019201101749510781767366446974740692516329218830633472769505671500512234479497545492210444372807468988433997559875779956599151140955405625427912633372014757783980449360572169992282810933573791091966292064135984696359035355613406406817658678173588164306683489248176335764900682636222392556445922999378759270573516647612792146876189009094727401410328478032034909164339568022222118055591945214512990411292252587164362166883625035206842331159044162347042418369712070773635101842749708259955894690473419642258256158600802908983903205545970253983434767661196571063668845577241016648197787761429154356623966511690064155790704208049548382924554130052518379950381744922163415612364724823089293796200906277525060835478462768749373431926380279699843881858419172514357163244202542950225103955374907110301881556839294614979286081554175262434834611810502600821634721225653947931140286183547102593128543045991219894448480949350919029837909939914607487753849137922376699804184432520644917408211757451357140305859786855400534259110960316527443491913516178685794362695710094713510374605407607018320298485714416770793522900308999508718462840588112532384140054190417825325705623035178048421706535124388092693363912087465018967123061464738091950535344523216589324145862335868744790795373553988089162808281801583935709391627100835346903862693998411272302636936028987423882445973878078317722419270344438270673785542262752912073653253099645058035407255473340682741422304351451986814753611113334519268639231853373870393001649563053447080511298860039141392776911609559461590396793853716196237179137495323116826019871189394406057218966880151125440048699735511114082008170860911598144968602931880563275074481293842419896674983975852757959364798983679781033176078534855389203690018364110958800868336004621396534080860272420150860319726596005379467313220531900898419671284671693621815248902882456823275047786001094984070083504560069712663913338437266696947653233858442340237458903353708307194458307013165004319913979478997868703469820377148900197349497159867009949914600517544491631891005101591624620279704502427330963786620236595196137708832712800722551921820682707328621132898010832646983185797390655779502549213050592724104032220455929501298508510993684777254301592712486548078471802421764175406914995172586150436183396819225603827567232247970894074984303198430836398720969780035325162368137867364560146148501561994407424400280412342386009104863007768663241309318239405367369116196511181411683825293669882394003471549017658988298205410407007920856073209409278968214165401203993742385126870482720099359796686430697494244475593411370369817288581818276426702743877698334511058422336843876040549389563736435002262527480701657646016875538545882976564134213565175538181200985738919888162703923150039992974979115186238186977906358295258687265581627403580600752739126939398998787419236694144125904962372977880723947129228520552444401568810180358879517899985227060281396210401043130210607989202858692299692501178738990210026919872299670869021848305450205191071157522783625207914856932098620394829318301559569294894245526108656288679687090624443477115513071215680716320930438792866425700157627557903042318583016075158311631839276254986312589410840070249489835151441155291849365007669398952676598812948530381759968001731973371897941065974542802492016279610506363545467160862010597444157665234656025805335075208590406337838410743637699583925781456238387808572027805446484420534033148690403087540930531833148634633037367536972580408141246488468270031985690689689593964826217726715867631728975896938423337827045060728610565177517555306525345453555967415295932793494799324302418897260366148196673266790846176664821517471652632182575393694257733628539333839546933905409572791829798782952392868614962292129211135264786568312723836329314464619910575979732310431320576417005943382243614256052463504421571254476409432749990888985873064942584544461344343974926027722635916209450633100641417583881966300960042683098438971134822298454662189852621947093252245236734418426242635966574778760427791234067078779790599559503397285359601890677547771790339773180341226889180213760085239942975861390610583140090276183423904580925483187760782211650297953981072644682028670618163079234587203818439339272557163965080974665152033769673541335312396774360177443601402196611081976207581229441120484472622336227203200378320397899656569615378862115028667690838068629844462247854459659198489541086471628847277025216778678302504160593403428115923965824521566472474206236770341046692648380775169530174756099947423509959099097766757453931742311988488444032799448874458558260348409355523821281998731407780791639687884952031470849771165584541330225858185916005278651700726894910642774117127366772085683290835950145728951929128318034687989075889024537385965213296386150705187088008869953499423930989419828188866262867503317091685012978967604646884335800314239929690870058964024884537421765762040924542504178649209712220893812046171197202284288050093382655659079354299840762717746585309420078180084604842681666213871286350934601306334087779093207771580482034353827195099809030834816133596979946329803795678516314723822435596937469034449741734539097704706936790987096411836161575714218476889654802343463450517602381800141596622330065434857159768846965822068386540063389780692759606455697407619660355521433466631312095486215201950520309112150437536477099723260956044154552499611685832769979486083513939772899849650869528773160046992486341593952319377074177556771759208056656372451419631941847139552192784194604906720925311189728599575186679172866158846772071242618353166050591323594860553267305297704984424194459427245610585533227358408691077436539006410476550244811522276233545781338742700362810014020549960783687002504707136134381498978396288802390027169575327502330997027493092833643712815084532723828350262023028566044507440663942954469445509732999540524116792832180905102486700220478673326403992916013782608068897159382641188113338767283472950253491551280944417420583340774188087944351665723387656535206403190676512897847921572988165459136074207895289594683839547676175920869978756325063982591010778594701460935234278664623205211450329900407309979401687631399368468501914804950944560555984133199025103832691981571753906070050657577940326893216669320344595195336450140399472341528371168859924489413736564394489322306764661799493101575563288934621345045091912342728561807364775552540584533677446237908492008015616465681834796599303711707876726182842660758180764890717193443064591744152456074131632528298567616980947823211368411747963628238939717371847394225922670807349822711494990659066364841244972224065878208816153975907781050903855456681790821954496478076080380909288117733251541204433053710740669814650391968801106971646412848765410765289611519206493580434846014213463149416241551552312684930175454361686311654757497740212219971968312551089320031134639122276138144486676502552576286097925500366817786306478794703387756240651436158615716598159283277603430660451863576537014097091764431480219008030605692164555579583039566649803949256298746233174970808034197385019782140837167765968202320880620190541213058584591468870049359984627615089874173979521225183492163230007135854100716834129435023581152669732054921470087194373688479914401119377437391500311451534711567741340603279384739382758051313286029959083781909452179305159306642884618473647635019314599651239956419805782769534443687254297916669611717582357335001145305842277873628373215491963630125166323586834278870726613172384026461391715818210957843065839966495887681669418597723020248482950154082177648488927422425130191438911380687868854033385576073725842864185227128868912863702026990505338269081967487019506713779759021905483694381093552722255742397102778595584852142340668707526410775847994669665148738672145140963250970431480751423971874446753220013956847589601238301184207006234307136365267677992598943103367966822578036530187237216489953076671568956963394025154435087636561494037184628428445619201394176625872689261488206635803510930793978882479498394589405431953309593940783260649626897919925827419700664955356716923870089837462751195880097177203154076569759131902980719851171435052944433585630342361491718216647095843729277280084299706829661590648970329613942324640919555330198108527514646239604116451578167794288733040764611656513609675523097948735952055755695486779145109116403336771078615180604211711622389308749914965397123390741467389733855384538238042810801311248717786906548062579882591918873889995005628711783952313919656004332652005509871890917387306746701269433371423718152017490028374667849540418653174892877743644925703757527657199752937053534024003003133697212230695161093955081087460298726441199694934081457864557453690069538910896895286038347918480744869170690078194099712627287617722488703806978327724263028974534823623214860957802249177299977576594255857177394230188711483023540579475509514368409641666067339615831330063771352706661340431428206206167373750462205553763334512711400968601383452136490366235222333466057316637389711834569938877914571833971713481741706008644652741242825922885688174664521208994123596153653028194578549402942103509074688690297091074641034514923251322184614684263035341350709514542164107017540567947927803185717546466463176258783222348549882086935145259309342926616054204438667676196946199865215011613806541248227358005855100640408090097400637518208464698079055437758891499600682321376568364168434060767455694329004838561988937621607651477810049331125046839876420485929782796713831742318068552284171439785886457955005385681925384627608584328078407503846877747111347945603230686991239758334600798428708079032042500416175090482790348548255018784513251960632491350549893103935946123088788544899575637085522461532197673579101341368707543978847084316649063809058716241893239180791978412736211102589856067252318587530407699537120309704851850875616984361861647212738709411011047907411397945917879092388374310955301292337244285566760192588192132315337608117572571471546762780129579118170922419545535977315871238753733509496449483834920372142418776280428996457249407008105117476569874376551141040436019003253135940456939425100505078631537234242826733189781238182942259007584240695541005522739861444555807166508594815730424088978223286989595135880201319422254733298894891943209902383527768482959115563022906968198139129127259615954267009346182207625221389412444071963167000343260939490101447415858491917320612709265966460692965782934975832058794625934154124956002941626125559644021944033257208396692378691993193157858636262007541203149190821315702215820868901744540097205097141451379497012373609546104610380920307966039900606534073371591154036269934375942924831165208502554029581486348058964679421221067855438305055933388677550828931825341871876145509402179108805535251284569199232262492609340450754340432062243184097614522364706449261156948482342025423955566389552812035732853554952769253336664179199111436446236184753948631224460325055370019643959438462412437423188084670280625433665125358756118860410660070223924344356665186909914241251158306226431507200003384034565784839794219228262744508666315525310048388416612992857629065198808595607542309716618265982389909803382875528946359873369352983669607040296821020448760462223632982925401630886545956898928596421529917175835668039525322084335375492618399945022950616173529139921607728076887467553740376574900797306771631648915556357228717955057489512148083591105974563443516191522118807898673295413187476181716421448008325200205039288044265296660130560257142496867184647551641083515816452923191029609325562355521946917642331531057499402341715121660079781574604811283086652734352304837800567328294610844716207619243870566757020314582573687241617777641198557486137795798204876165408652855088938070501569426133275714228204232217262887761288423171993033724266460052715141240289681570773385450149841996113018918073352784751996002863903036410429838826389476878656674500307074897231882561916074604133384355354079153149724518105576828179700056463759147244914636195899662107597188169406858722255030442762344702325182513035015679156047977399180856345276634565398086182416375319692790717105204908617518119001248525125935678533762980612562870631463613574662652638718924227011868182654595112867511064552197725085115848184529347115813344428719333625605364402969670073114834410703793331186445993475196154919946792914045416731404136441016001107393379541599350838393499047955960352460720561123107845492575627264968369635848505207752661647590677268281609345155640325758347630614932844000492228761770424111502369694839547699679502975102022761906809702545628372613862002679257794854100373536472198685985786954364316916817878810976268754899935969270055965521676918137214654959727863193286985951405285150315921503979205750203797923367026285179216498449150740100197891626184942689579168324389481239607372071111663868253952899747190612277525734841103934282221373506402895027126805596339578740009327897243319658263443296260912762032009115619495116338716939029626038737930317581820978449772833944306969624013492238182447337112188126410314666144975651850263666334710647302577063741430099981398980506095636095766358632295091590252441960376198688623933054176060554864182983421490632240176448490453551185387566090867082145295942582446759833416239505688706610426524181273307108034787251359195112272471267635508431367507024929001884905822195651513244623216123371031877634818432420897721568499772766815208952741238781875527110277589413011654695853739022558465968920431860933899756151126634211451438717932561851980987244209651501924044878982840733251886121118084672489768873266001367857759733514497694595805815744304719440471812599768347831676905872574709128903056354101603728160940001323447627250769509606737477516372797448048772311644106770819379255783284715149939937940236723448158015967361471021417966581639052231139959385442647281940412275291244524254857898064614377054184603736784432103083376610402748967203019343023339701637714169213478928677751566608141189149445363637801698406556364305900013899991591529276980358543770100123338208486156490814136725486715013618094550009756001856584946828304476453123361869133866858407457624327488846509924378513642923603568023559527315146929109526574300590832905754603467312637273740124917191255570949403084634583444230688125848122928503391337196762887542431124970181984878168977609140725145329420213720045128828392398873136883086426329824367647216819251815625695973348036302622976701292598636169126609161590395789038534219228806011753219952336089340718281575226261175737940769073283193620186092734413499786119438436190200382552491394696934246076057208079759725213637228799635628781684522248844268087213124744916561252206999418045321957302102867387919836459645257608044214508107147057989151595307367562950380637596072129524494317500168520495233404240765485331495044045083968853642524255842194643176882845193535022225773228404608509598048731775979551930700429688085428522218589896598602074760394021315148269043586337178985021915246810553145470167384107022248153297799517734805551450946267497981721420454181151823401048528006602024432328622397100012630041741942746673570961266372965540064274021177729949510459576873518129435418515282308091248215388930019485323799788373592682776326310883530093831056380498469770586476263602862746029541108155951506343952627600478707190467832556389120891257181461308364561290058523896792452827284537409367051644590811826105501192200458731448377232978219859914851204849879133635451085680468252383280518087734529820521142145972232681485344274502318360185595277940577599981833897204030389866925217502659743556931225031157205933412161896123659857281538118513696900771093456424876270712970267265415834701061668855755260172717760139835083558357400697398969557140710760914484589814984824870172173383497572087027217509592700272679358412417983624173446223523151555958409251498576329769691695611068606036110242202803470846968369589899351496848807282263966507612895486276592853382960686554702392561528150895206597840205698524435463908764847202861478770546393844772721710416951327300353151138666221059361113951101776277102502803562788094290506260671144743603293940224891470732580228255521622999523666670518798989360280722107283859072536362216934573026189431560704913244205204486424519394333241862926458152345476503049505503916990855317154912462636699659046360409795491216008980051394311857549484151947390667364963288294475349423672667726858133059924965018158791469292736849578928601490803141814689525183996245239275780719665877685707291285899334859030325417299505751961099316279692243446368893746355678136107970323623278396039658977346653058985814172081197333602582370085811012725990470808070854572439694204308723188813558630317723373320916728695680847903962862587624282351963571607095719857804445701856045974375764384577572854481265687089809883220506556919962643166711649237980419804070600870657451924825498333794544631152965386087915653553129063408322608460519475484716080108201874852508332500825770840254059428330456146034341221913707700116975911063089590108739194819376471042052297112748995478821888106070347080110279150064322853020072288623180177815013755160812328258494237213946225830497483159247373147553809875979635092513006710818890636286766071837572079070069685205061667134721966846710276705644593025001182515298290701628654834000182454002102087125914342750014148679181999042465029117627685187777976140166135579096914132649158908069937539567297258064283809440593431563303920704368608877261739726528155269310883111002716262195054853442450891203609107846897571023072175099435917335655006601454732245744672509594528628711277439423357384669024070243576401277790750222444793497960673603315711336533951065932155842210309158322232443654311431903043712934080524233912315711219456479198369465376057727038706613389200228434344067377056375449883852890911193963049967438820269476737077370344991481376265972646975763381084155787815751928104153918810456340553286283885584345387773578530237983840453071564961860195620122700727374356059154387584725267659643848139026231798693185563756668747938530240193205650753225840588644060742549952586113251093739468551493303720925286152810319548405271346067164307897449720977522873179269100736472703034674561481339506991224428046251963996799747903963498072802071519564072023616583760642013561070943057324990356348093331664465202762025751830292558403827542642097599745321295399733373351237374236657654173215160923871942490977203489129104007049279555543419051927071881393971652806956781834075332031759385786568983833659080751738307311080242228168503542931119133448705432976949619395400726562166479341580217394733980483135413430612217710910261255715133590518026015392034963317348736832117330115661149388388028766021019361051026412466349532824417451292003921253895701930567590736071910665025764018254334002307408173402412433169791195248789497431771324922795709224979448331560122577080597412023983669831525764368174490479976827178087291413148923310728130997785705498088715763872182277660642107479822243332327659969216830848350318648324075512221396713443435551888080068286265101941397203175702298458664159410878368962529263436786444948317001333731446454314749440062694666898411304579024294092413953489536946306555480062463126333856890811166468299560758556095887025659084944671760678295074090184325495764294403624986725875566298284923771961248259003451243307856792620877896972948793581121148821075594193232118597858178466174597256520025400642114108170779722326471976152173503032949960756260567720123461034147531494018229410317564099919940977491988192387092624048932559286670126599980368971148630436451743029065201315123879552023453708459626875976113951338382814322280187711005996552049998550981429219965820998788451472340718391765211177466702304260330511744448372322716091807157438558388785228673815281396377931852813762353525260343270821410938936191336474786389639425042968078932839601147063431282339446703502229122171556925259828269113704423621081056108206752942829419377455716389003117922122631664789420592960850886575421659874118339228888533594106581910948741926862735982099536164424723962553122756662442176735593901512834878729880228905568347436485204094547809480035859811943115452348107045345628969709368367213960910109479316243453793289337683212276347145212635511752233841570352506727069484902198099124198533193504876183692609192903065115979981152381378183576555114474573504778320014966582765728724754784958770886555011818363698527871408419281711387846627513381158549327708753577841617674299955476904993833743451852631582077423493356456996682475642936183271345587045777273596654517471872542407212339881868232774466499800107998884012663441423766056506726813258787202029079726126160071714951151185976077111093089909135366956248602788932917026367223017771190223668279990074229967446158953648463047007006270079188772093257871568295650313970856796623343566170330991522115828020878519354885361676195853184260923576585783291367297606160592774415125316790432104095103637197745735209681357361153713943111245229708237322560914543739470051348468325508193035483871817170759511278178900479492410488524686765084069319353581774555678692386310624076138951005495314700209970238180582946701025980156009539307247634260904348309345762256331246115465007455096664973985476942933012355307362369647015686856801863340530408413329189083362647237855450996416625583492217290391179203637734014574540024719985849949763655001130810613463492287207712045968884623727511789058453986745181236343604122251342032228751008383773478619329832642284599139648933265466843875759372875248180231784397693146437661666645698970658436248226607596092847615502320742262421117394029755135786034577146958010177510780311674352870251797319394570731855873338060859459467445062264451521821910798531924013503737627413059075084550361648424988713875394090228909043368347221031861276637427670676275574597751626241355366075055148716039919448769622857715666403731687958207433468853369422856168002371580773750721163441891622125814058135655589428230634965415966100253279019259635789163601369365586296137309160225937564679322061174313288939262501940057261964032126565928843527664996855875633357020952715724156857285766371596415379130015237673100490399009055027945763395587611543831782777764695874340101623466221334803669114569761260377581757471223984552415522116696642878311616616602932567202193279429127701306485621096549814205916505212992019590666593230534379941469776046097065412243650424871529550814062280198498516143777513011824486279908119693468840196439915967865941611337687437986107574395269358685250439659400107385480611676908017867347032344532424976938189976100260453935231912574665081615100562969495617094840636930456619892665456873199826055040972359167916651469580259807846759916800898122761132202089495573135395658163139067464500567445665410513142726249923515225682289505871757915746719521818709770650315015604740582055253054224857683593908447111760770075682817541082508911249891758567778499531070355379480102671315070030767019233582024943437639513536156198501246760102292634928982945654453842075582583716777007392422667387085186113588932877767513264453420242216444530952947044921721063983686292255661674413801332417121436243722681153937603241289187998446925244756930432440267476173633874646572001676956143102806561387113868549503831756075510005227566400000848160055535871000244745884106065018274082176047978988216231756367845691394795651143911288247829408132464017563715150300369325714798978807061300423331710396738198196508603487652431039703981052720242643568322850771934833513441826709885352524604191262540869850443324451276035799049930285618729154878813208665624564720192545915358575212012747866009070370923043469654883281871350119281778835539904741806718723345921402577650022699711778190429034063502917576366545327580569603544143238251467438373528302937688204007035984831526246356418046842375006897157899137350343303542040736690871562962438112169721328489179071155142027403773622240099235555989482005780402167559032016037744470904068633182421872281274374998507900460877587869054987688469314842533121088798742704624287882271177895076481993040387057600941197692957003313663302655174611277797732676628661154287373827945523081690567551232015186767004188453453101391323156550487528270692658666418296176045875124853099448103274829014155091001007856443203353261945043811783898543073700148555105510704887117414301400262088464926255561350367378842460984568471186267454094306143590464380292702637066142914432475174281321627545441485127658219837603514003717162780945155532824467570191241998697845183695113074007388220270691170021141203734811700587530295096322992771228456686003536167433344112656540066526798805196273530810955251718091523701473079668617419135068708984048517498198549735741124263035019449298434235927444014818968560756903520766179101036166257909918494993473006475813865842363609808322053897031742219901341746352591967596364258927723352255080954883133871716252017642448870517875184087366164280753625852685796104539453768152227987836883289630384094255999625601539681961816322299745613406769827623567021166974029215252779039585862377975084549354557401371131715262783693267025287970143231312897288931694832396799580593884198746623062290449103173384653004380819431103199066268060275060607654770215875008062761688316989592416280506451334170341066419032875759672248879687131041272144516314434554789124583034361771266349583904743329775824224067802445959030086260216280877263442042498281024567514431734893197250435132619845780554520369965449723938164759998082268271079264143019882425588386035015992021652004420289474914696128170492498826627190429701294750872403380338763109159959847206344982189491598249342842899194796967540108850933566578176774801761699827474250682875915785605140119540766946256242499215215531771943686514384669456873709567417321466404662670943080551325388347690045788359524553166022485266398129980810965580279601506085925947044544310464133463232469020642476934034164895363231292155895319135316737672153413530002215199298464279767102286851819583820386921617994890311617136630450686039106454476402326916147842702482489887361281884310330964583341515606967980469267238798444519575218817532631532075766434013027630497671728599723795571847921887273520211679331922124754975317749582081123083844141298076721924924019368423398424271207962513081934288739472415566192320181416304027256257206105792917810616798323373909168681501608495594834591738879812040694736352683932517078976488506330798566394148795240726282894781217188333211113203379869711262741232376362655207548514715582556978682603358114937345997385162102503989973016250519532242478712632060094203030515726715392230298504085936563979202321584022877321634618878026484474076876000400129245362778171151908561211589459218690699077634580361933115170185927616178090068968135245009888734106361644058739077979447331996484543973249685865882628675141956615318644945914084991008641388452992893287845855824239989284137520961868643564386844700538868060945139273086050185266657638193059295114681022670712555458595980156450245987420311826747013141060934567776719972921023513845958573660017313041453752966509927293479289791082756793897196464954634793828633043557192997958392279684170855938905157695723649038458462982025738915815329941445572029088809075457348751000143700497354160311304552512037267023655298848279331205354046016561484961408631010583326029422251566055465464036234735573710195764364235976316431920426798405583338836654560752772747359757887456783170193264530795172085005970971376001911267140448605484569298624975221285793711178037341003721060866647646015501949519348484453151727742658529128296253625589219609679384244480117737418931857024714646798815809599121614234951941318382788239524417047558908628494354691682327350775060532215821896506388505549888264020356417671838711719830954784771223129810460939240374507130712856493150864259588614251187890569185502613686017776881407254707658097128654621883402035391561302821004409266966458687470519686262358581736534985236799248228184911780640918624566142564238126880161524882154073954440711876031505280961610555537129337025570911622145380144938872388299139164039637306500893102069868528855912802117479796879371099035106663441930462457859802647658989275957696471211966415574273551517325150529938835175410809128538718403720122250923218337836115676988676626329581999116634197065603026850801779840776184837958060003593671347793963065158955808787463261332204274834171291521100636042434225336534062420598636352463473298686980854409839304247203687983866917779116454196431622740956666384255674432333868847178416022164210935173579562436718834319230076532873297950906943345653903987305819118903922735945506172978850337899418729183215151104504049577399218273498025048179099769031511035432905739938971989681096684075708140505420064689090765885464784453120816529778518418571113659304119916480484079057708033253018713178801389405223223049001400679831669810333694246901753963791804699853921481651191984157111387803381461604843022929363540545208919064287528675283424240231924550493238128626169078182364297162678883573389783327786811348445345016926467684765806819181955346622945117676981021581047329989424889639698999027129421124590788827392362107837665219851605816914614023461730056474930094338135278774602798426833218913995721667366692715575316015039706667295356420020284990220864877571463243205828555172955630922369445908502384797741707477388414865701835099866402578907499994733888773185264455752801888101138401904261343552992007066777048722467874272718083821499309123624368571937538403745660865320178809308886161264153737002494538277646799210007505466063164119517455543461386133586929315698132774134161565562987558867248057254889375908389877594696333348871730796656193355775265257523984047096724581316659764282891097115619275716227221736378891811366169540852389313877298376276850642434064776728456705511948956753045392572291825978536141649401688181940048193346926622751796586790542635998771500727550192842234536415698733702477632468681669873123101046257910043176218857850017503118256038329379472576315323707355463479403493650765525972985259133768075092374622586601937701706334345992166493163641044479941600451385998111669452347833555439486315106353065410392611409832307737831219234742167766234186544087625742300800482937628996333954773083814852246310861390866991516033385732570730474504548918429490239346443555808214588768011436242841774331716559271473125799366478680328160454936102310348250432265039174491567702534911433289475915277951503665820821371853750594176448123727089363625187278268454779892705109954794945547925582026720692722973245643342069215452889002887860962844993789555522202695086074567604474160659185235471711457252885750718129099516954725467192126531818327180658847224429679260570828542385454169798343436765163593640063263250325200854984604265207756452129112777478551274250876718965183479753069752680432301245114483008650303748268411470918829479314053841710740649546094710619494888284709217710829054493216713785579431504925970190693863058018559098759947439866856596476766001475711134038190195126706014664102700284540875635327437003485769033998098978173314379338712770163870110066930521074081104666831372953187518887067708795862588116604388261612144122011521097829859184323622031685005029541698900766268609847615054983281821287585455427686831687414308718936295726231298159858100300623614967715420023024879310432011882640890267875948402813002767757957702447911856099066080032750708065188982666864645592822759249742321872126447631170782844801393193064830083802192273710215630075838601214672823027800042591102287980087741936430033957144257886586369994126839115035571647116705750711677897758412357825741658634365606742060613727362869510216096679293517544395369137355938915862333573066508400538007576815821501771263311908450626673776083951292229307891850021541704206451819876564227563305012601740183825239831279446850990455333058423149806879011345134024769412449711912312464423530576151597923403474987601502429493531664279318603659704121784738752461396072403339297829090472478784091597095881771589718846479347284831923174541960661405830966124840388409228707148875269788810738321276654753339284867821178472508348999305612608992062687792161103166523246093486747961922193844827850088541913255196032631925430050472824292346954292483864753325873091306614240606505765151133045751198586429882955525234151809516110479742150420916355330632066111649744734838819822793600699799492153311535556140519093053742084480072227986198970087058544833197798446068460683359821439556771357559701731716062108507479072637034621444415819312570620341256226511394389345120890996479941043057706099587999347090051748095891123227324835411294690748777260590323608763119531525032832713820738276533971384412220119213771103280528789981199507388632679414376122726118541719789441323937454674320764860015823279004249870582223027962397125385472167509328610194339153641850739996520087702562884215686675351207825709417757914345279361005916854542251868259371739309752223505592692906666234069229575279977313189921527234908837968497900169892374207154944686908197508874484540245215054997986639811562029086227071537617044501484369903955769103397504350021281971266686760033881011930350111808908527912690566675794087023420436860693580129086790434209425643363419493073624752102087410413814810281622474601422187487454092981768114923663792558563126073173663358178271665617809551473064388435985798472742789315364074616937270918303301796831658987746081796480809757954830593391658602589121432116701299275695461742475327263195219642380886809247327864879517386005246754436359757585715018341245333577972267166811799814198198820289680075011640315159335144798900146901543019164208465538954360516576573362381896791482126960157160390991920362138622834159629652663986827940009640118826690119292145420654826231479575552196424918649031414902720790312426695342593158742884662023188095396449123185104705444974595407466571829288833852143248080680567659524807760126188185641380284157029830244302438760385097240971376558558230212993766112318585161172240052675229409580344584109817199057727493857307024046206721941450767560570407642481212124730397285148241190191254651578810156007417258318767494233076430554475000116195383899736436129002027015285140108332384907632237076620373188571184648918955763994329214744581936204356264777959336580346514678733966201691730262784076083309198500727878142326799680000435113395223934843637370501737366051454804120708538404242226364663516873479897511499870399640743708760922804583678663489597814226119112490115731940505073466062166090508820803524273926566419538447257367907953112667444312213698828454834923409292171286713945451161400908307211478277053596071937000449732642234876995203892371764457048466584730900025707160828476435973994623622679935532179922470403159809410675785025376867433936193774141352100419053124868538038792062434891403359665237022730525406359291332717967691072663406776352656439149026182313863985092641016129885946762707938714230682847324448514261442745704245577649256985004066723238006858982744109042407851657464577666721057520945441757614916587788475041017663663512904283301485001888504131138731920801574486703769038702706819752245016471191374307911102456044242207281462421276478122000896481704632240594228344413823978460366781968294168841584331225048416047609067747798595625792944142860671470487314305983421522221666636541477558723130347306707715877812998010894731851853383870799660504273096210305982686984993691344134211032394177806089556846911225787143970406744605831362119373675221311071566619411983676666310064251018445991214065044821185934659353702752157756521235721817351530380486935685975665375040169535308446646181465273865413094014464771101954793508061936256701623133751206581979224084563020628306629047700239630011394728441154960819002947974066184944783760486356726630458614945834406271142386596642542114985114366644340462773012653980760072469942651207524951728374158914660909445063308488142350633256271369372364419644314096568584445757458622258610338672906014124697440083059746208429555244812351478619044184825978479191609492929209260613685416705153209993163523531720917159315325747775864586833053207509675709284827792236830427307443228839327638772691799750135573952218518447316007748462681635164928632449311129991606226652633073957062222296844603599736124781894060374935001844425555005928976489694441002477405702649639682630782183052043907734029550895713645435008755948427809194585833063086291309455536303373915320928120956431217761772613126013092144904989900580913740918431473103966985910331687536793744384662682299445777332392710555200455115852667721198310611285226439749454082834317436123998897207444443869748025326627191549857721713417678193499342745600909700071024159578449053022205111612651755421486930756033317136013842820361952710148747570716593716055432504835336499406551640877254417277120951727007913175415044882664009901129641171425863448387470311416911293295535708477931467849457286790870278718472670228803936828251519670813892380154764020101348021488031246431427693254642515647834477152857319949895409179327699983156804832239773562471457121271136390019273613721877459876656634757192382031016920096739486779361125839192540348482282815775329884352129894858833063290872998865837419709208818635017025664409072478200932865596047506783331970823830569270732098750243522709340185319838699716453221552590257328283980686447670350709499349928266437906166109108517163420594352670807682526082939729834574695241908843755795400733484075736758870205082899358175638563748702484708341049230705042261385275701132105277015273448572701944594904573377553768241881736534895593039453562292700985700497565942459921941091639673933134444729065281935006442588567540851991615905489037273045019468303916464007548432062422837341513635477752614704127910894113676853417693408392515029848087539582587606444668530472014102693645989036154256890466555354200626635505781189943607568447593321886486573516162039715323853670983374378709341611886354557460981214741141083719851338337604343814005005765609154494099244407369926828492276724412230428883829021181514189246035893948668506829984466222252374593284355981641521760661796411214244405759657815992381322767417342267627713827551619597459862360919924500494091494575716691424524902134801183660681783106808258737443956832124005179678548510578002018416797647850426074774859040691837344219075558339521690001210739087627253562382870900281887984105415482828534285491631593643202579276509664084073771625618373143930808671517277250822833442114865314836564898181466166826535181328752888496498295073355098400212247818813066898458168047144769150494152751729891009350157770198626770828144210278279081082135046322274678169285931981097835502745536344693962769999204884639823949474079727122172103106948111462763813971155228633392238953204960272422713699643602602874423832051726205595830425888971992179852241965926281303365988928191122714411557231877985452721314432137393512535359247696596595247953431024974040593657671046358669497908833379986229263239372015826395525080482834584456371046432686513432984493292909409387972287543542846650051319743472845376574803511358194636185920349150023304849441313969691049662201266609175809537164906397753803915117766839904759314962099408019537521202264319521971471168180613683837800374925376381356804182351683009747286726297862350412381786528023876455507190440247406780826198999565155440284239154322680605476764616891404521562456586726577578903504200546856589513029005079650139444018574055448770568089490344859180410474734027255160895646149621627685549245348388704325243459447915313540644496395049979944732471806371713299043407510301382421433938383385109408987951212638931879281946133967221835469651173124424753529541996735683556941719592167238199256005219388074115326868429529819738016587798099972890220890722046545010740233090137383047934384482607678964692322049000055189537426524044431930054958919244298765299372555963455737353457216348851157268643495451758168817070969821506446389199960125895240593948404091233036512273880768870614952618573223054742384938531612766866562647825589766839402583985106359296189126068604729642840069196234231175894614073502441231099769258482059584819114068735097129559944148563695686351017117749856127256560926380756802334728268948650182704109139306215342891562575754713591766820029767479247730112487343132310808802868977312142961257523320253606183917016568987967304405002953213575362596747368115117806461432391966470098859122938715618277267442380948512467261270916723672777653532256070303509145046063445716691482729251975984917102622980806375231976871254414260558494096200843025624055328946655860337714093922526019464615464283574653503140906038164987233025750018283404100692689425465441513410799460430129928148627505140317857172436733655303508534491991157843907050781482661091641466765946416300048335808828523965507678588314868849288914612398989932367782559836853926606475046343976194533866030203156679886912336721799609374921862303081767034578878147915407288991455596422868466912050787670229018341539995027588006394212548477403867066728765437459115802199659503296772663779388404628182376553332732832718219200434832375480954087662843711611313772332028866959087486828860931777149620318079126411580447989493658513917145714404496278500615716080723763967893487185506367286445617624292620336297369704641082243893745667168938265348929833359527775996307056801068504750149717548658200663342531881217040736427214250011858959637188819629805804348983730100591481939626145334857308535188913711751569015877052905653651416979905797145624893467085928917341761428740803487246438153828834111963557110256178910802366193651885270789286627254054535381329092351656325001214775029787595501939719184976815142424492073542519480795745786686765306709774297661475670329147446200401477579526383849195318126848484365797263246024054253315585104866549683893581960179511644275339400477956769528949454970375076139839213822386163387830662766944401987023949846494449481585339014974492202183622874140282124788619124722216880209039526035296162393785265123959043854083736249291157551877066553034874617348065684947796435248336344169119533795429219547643323401809826462378708972273032241687947893788336790842255478327091333547407644603996926554512370352312457918998687329332949545867342255481667976593014336835876320589978684039309873942557030698956716861827672065775950458350838328722335924256977343230942883474490286045378195716041927655845355040649889688716283055093742883830302049837434888908618193784634220990092649974898254167863383394529575169103762680189062533586630329120370972472865808050339010195937465774402369933813022571894686743913288619808189680076462661618913253096521202755343443537585587718301232333028832090512816127829283368185163059887281809447070316113588035582326964695009081972178526932840761176639341109156606498784713646064324743757853642414701232177648843013973483826875597942680343459189467217342436217209281855326218155382618381693226774304412439590955965186466606240907863846004750067586897527314953376620639849625190995983845692788332203082315224929155356927126998633324892218451938230830478222776516716506395950442692026764386813250104742143839159652746150417741132687094620860811399497756638087788002303625576265915613385547804069174302737377476942679104183596213064417693679466948866243528164319038250949040365698162569487075910178364461756080589380537008547592938622874339760625456255194600507104231882391595896050785712218312627440739520621084764484994160884747612528638276862309347921120130586804305255039816475454669144397139432970838461705291191455236081083773932480099172038177693347943140686561061164593205357908243429081099326797767558245936393615299188403260286341670187160580387493587011684962242027560191457147560930250186898569939120818993747113571846443444976418382914119261862057205007329086153037438688057336732881495441057145172936108579888180609875207907701006369884241677423510688479644742515521844456576451286006016860814990230986533576041355145490525886775037302771458425808009281741352247511336256312698447108797061420047077019189287008015706410788521187513289071818786653691028887983568767173281739443160939848405373018883452387649504243509810710171373320513020822553684415241826835155630251097337740693372099780100751731913650885032272797905520713601867385363621880943704147170072414248534944751016626765220316769732147115999208332044501623873286927669895006367021819983862221370296415261180248184984431942573805339283920877406859453303379889429765863071538917909365552906399409678199167596164961019795978285365337024835419769522717406419828570901249260267000521876791579815920558001988289133556122644519916347475366051825474858773537152691035728394817051557943372774611100130204687069310188993859672517476823948136020157976778791003038179005203980550878239464706872962182655987562527129157621676030773675331869594784858926500344072210805286183334543606868081009294509982156402605039527203576799994171691130946224933786776782978566858680871203508045631896003804676545594913829788918674958107958771454717445808481840799548981630169369989578514932638679652484462661719063484432252767033796412065356218384553028860138115152442213119532348322983831645841058972097600177801644341485850040124990292888010690113639155617460279802249729412001426201618715291192987921751724784308181075523410065517921677204178206882397192492949584215467736462724033210958641080934413559191548027459079885113411654834321291416669845354823147594687938451694100123164861144986079491400860448192624897277307208153996837492737631311116691069298662415027431744665325745575314663925457806675883774741074268638281785710725581923962231534775452432273919513578664066719647043126106350227023267191449273808762952573189734730136981127842272669097503845903655042326446457316210594339998110257058349526731156894613528714370377219410770986211559143092083795023665401524760154174323757096242094052294810243190819110991813911599362690967476614586277712129258524513645874847318313617821206430632741366623451864678732733006685359977239050481466699298084829332109971062406646439805881060407671163423099294581746782070847509764967642718261440791952024739197788052405571618950384188014868197873317241767712539191639598473173955955964887910746790818650320933521609915136734674743184068190731688670298465439630062559712421253207165343959882284084710106917044678645153483593425224631849601229322712285595840037511244769095300828849009720803292979163898109142782802275888422340301759177736515798331663853244657038256595376271825623366696049043067881730732245269285562848919892194767619487559777205667693438068865069931648963066262612909814421990586964473098734901644650128217197753184453226841491083712463763940230026203587118855807920932233645328393159059322847085138594479970589834963575829145675111344503381166010759543941854885441311043320173869163293456872074966993376344129174303099758553972078797220705498147366852337854407140401909349969732764654898759574231509642959378016249441007038730067267239294898455527212207167535877224061847460023295117655751477092294174618408434572276735427440128095960240279250257287418972127685568778519085160117123325199942527254298195822465084845104899495426817204025809752699418278041915484785306340340921138775448231109365893590507455691901244472580452418253953234877409190340864239033652780896883977094893748944201907669015882592907248235487665060621960536203880948308679508331012311119814593523590403638459661315911564247001898451115668616671232821378135037526113751384486373881557711022656004594838027568130817166822118049873171452559938693580705339794077764116427884710623818501158439395544787828195593514385514583271159257603060429528316075000314978765329709998233086372979766778107658079621285557730043785581237188087071981691150478167584492703492907740954673597494971688596586369514892721322090939614064791908125944743322599880741478256732219110355171699753624806483646473812572600161738088494581936598024453236494246191186143748006634408705620404888667741591487593478068420003367296290142247282265815601411598305930290318608167106981740117995003433040562421950222440675840811163692931909459331856899878075571151499710830303219962482906914799492139903623605001500677209838663263105400081314377902426720833998611683896368664906897984779960834226326594177716811354240757101100573660951331785956456941027602669313165580252171255690681534993325787031034456024592934757718592907871346774636865315517975832310673047910964877096561269137744833393299205021684405736238500169222184533118880699083689613568736165989530464285671142387287377631204620264698004246101175808113363337182102051609896649440720336567068200240263900797975158673950685382955223552236921695227660556436930540466070508437264179797114295720387640004803111942573138646035180995088515221110558958190403687791375770506403078243988043082704113529610571840146850928163797869910976112730686488991207739577369013252227841795955251616687152086118248162464334570676897836626355012949088139761406833442818989682489968071660033948813456300659917103230546236107887753465860723553544261725520778733375208684079915700353450260203240463373622930435922945088103203341593405211430790939075931659871867570677098852517643429285536820597569054674354364797442743045206740118060078814438145583659326691447088045739668218485843920340790516268558513098759251693496479812436819444206727750264333790137490333812260683576807286030687758324478052125115781642661900241242816602252343434423263210674288237787361240459436216237137132548051359046464335451973389793679484072092472607641146457402945950535730044450310176392879932104892256618525224835244297357705749135819792073566843059672962501980833253547915196192486299064370657662605399939272009834899817172513714659982595333622884225001824575797355679948042097682330232006492246649646121119054620316284977532252141624245888058020584027185256440012963893838604186388088797836527799990586313026824352305968329754827324773487331840640272259624075199281374704573591477819928431763099224072385991812188766393851874985835209481986449292601500583731041386778116946093641033306896365924549256121293412703251227606086739958785303159338449223749344315872971035752811589992378290163773131016234773843534953856914019653937662245444789177777026098690569798438403309359037702518091197832901365783242231482227475017544658870929822172322392024365155721195813711834258839404158079785804221235949732762351052058892396884203802674923361873881132271119960994659609548409295735199814355393143122049093884431830813387782999956030632045719167312076280385691091521948376685891695150736827412635196954935603103536844334794105124501628865252103244270399321081956140132586119515858925356242712317567936315791751573549756187347083460904698111783243443046083702337856907386722393663258553878272374116396683368052267845875973300268648394902031091760689798400746046279499085176814424423942760240465735204070444305503844758947414683739460838939958507714413742136056361599270136422376367926236443238393443318517380441633499743407596632878236126395846782941503870466850323786526253692638429822614246399196572936276432356568757480191771950562377659882357825052658500278821600844954651871057237008680109303143345216024560550188831080879964407048227189756761412871949799697608060757576022103594916903575263605077901899225491978175532716608569650310575469264717251865378542071917741933015066205566895428165132001819911890257158263663738871679360286978741475850614155440224699033969014929656981968981699970456197913935566382146158647427843384289115142695725354091127873434065154831935870100487054173122397679325231767356330461935652800764848960365176237039522200176665799210813173305333556168400234985735685645197701871862406033976081448750316826626783988502231785902177987340848649212999054851064231950040599665183658150359055482401262307194324049782551972810357382599174616047003068054055752163483730934983096711495824814176924240128344085532091682666403084208319543663312417689965458560926800731157754124635263001857788035939983932965642955037210934807619421056630154412443848171528945495975531408873625984525934967832257978117508217608174637877891804666528746704185883022078517384154897667184714601216512902295689421107515690701849415241578783616934959338453564025674335195146107592705120637935601095286728299889080208919746634740631330675919539893717367537908533720811567990364457681537933420489018576092303287266169271221223847217205738934105724952334198084754365437530096480932888294189785096482267567198055567861105926236197707012655632443288269491113959958863911597595102137545470640345432468517252404182721871263685806046549421566185274374684426197735845280888850415253858842069601609794514559628587954638595770726440339565651268354131655946358704715466703529401575086697186665954209338944752993795745312160918810720122249021820626387312862635798016448363003969504789390854701329337052928279843375983092721292095263176944480323072433727209505104322226957368850366746885986625992939051363149487115098928224267969504877849262935655203565394618941631880234331299152428480900656191660155954677188567196643180252021083015374011856325669655851532261903391487758977941010580350252681378507191304393776718165629103642201855300935682837687696833654579356329076994776244463427712058662388366920686837015864298881621351810357032781370215577857309693094106896691827406587619103864085253894191701728444224018298981842128371405711750400092730795851453533797129216818289795034204118606511627245181784667858109396553704142239695511054347249868698391098848527976572404507426357751577753719995420298250955093462659142715310488377142230181342994461334891588646515084156122103534435339496331714249475317447558337502762655679978184971212123365818874962803209410752139633176268063023889317483492387782931096597751356970682038982710605191517284330135516778444064314687082286873374070978448829263801620025488426697737775762237646920220321651969396052353610545633779651223040759721842631091691245237057082148483536217785266651165263054228035041943560157078065076468731696129102092468988578548840386185924130957406759227365951316332438717997061255534435004941311984265481917066554000688755711254627700466253486831282276769050738004907252171202604546182950756054444859845994540094533181545031505739715936409559215267082668210982210885747539789302087208572370309977738123083823261373235564997845957633179912768601812899406255420153532890380413746257428470986505658683476717633443141944879902429732954987788496106168000242680939760175515599894582894972648153339945873631830283215547729781331276316546532713680951433278223484147236943579717571353641347054012472646831130199188753306070438652669061441321265889667172865424238081556555951445718855667304833988060738665492558493834065292907000132404966485124763966431245582441114523190402435558475895972176918354886722810817462311391337118547954326624480734054104678290240532665455674177956956860731993012273405892171791243242490424501246908446964206553150797846947466351733208602955752210107102130854442222839556156649798972111649181129489689593480114165131140597837221095868235001806566892009199298633761262639899994465143093828885980465212914467138944071837564285505430572999321084350637430140877909168382622236203949097431812140001272590056421325578321309444496353600581506490641877187400127989418707388729201890589380359836146030317861894492229925845472275580844158465398390235604451168692529040937050825357035387094865927671668406682683137235782093967208568236274059418445062348929524208590212873077443114130812098534077436827011897137375894051006444492717522860360119779102558476190136691843423512299408369772681536347308087752415534872031711866388772475256329742890229958873058263785656724583879702089881688192559473370759060060447322123170119562273024753584980865601515919376285381749171359980378599361069658624017703267970609207666412025324385690100545334727564705074074876253547372274838484088289362945996371420963825016466508001011762876037797302714498451495151998085089933670000993620769636865178454777908678933184293681418563388947236053579331542453123582401447487263644197139043442557389192564217316738023852517159759881487207413644705335198457388762778459906828475540112807174848618234318367295156940983146178011345076147573376330363556754005552890438215164875469005673888067099016384658724245448016667098979307258445684049709438318718170507345110136228148558282558242382859988138763610883071657339487782149732694941924613250621182293565551673486874679971463312916773025006318358402891360708119548459154668779334076695768663674010928380153473567918126130638173155225267138887505882110119512224828906986574998464715084600156991797589022153713803203549879826803876904259193615143322543489739967720191073485426334200718375057319436796405466917193369719514695839104242144349400325749200644698919547139941706943753696885782326449188373455061881001430083076018716038943138334488863026560727635394292442645037687630367184718411204434971268631880993780203618993887560283718868397365901527215234990317991679931479945385604825956907605072720832395841516748040714999937036236906099237467947725689310790014420556253846625510615932717942295395542997054942071083848734611055074727056206127376413656493814987824440851575374639384667424816321913282036859020249278951030930141383362016410830415085983118746082334438945716393009383874610766744698697150270078701990573943197017159526170020836958515557097783640564876326984588735888740086821367645815421621938134208258501225934878215046608029243472639414448462891399533673561266880598406215533660462203262933343985653288716710567489688779339342633959849478423408811288029084650124213856548802525778962848063081428452972963721192178596012088311827485115484226564572189188565815772749131548224120315420287521869420161901784921816428787718274379792016944342448665881640548524159460980106073449761009994539350794574116467023407527473817222140894502424570767273774379985475612301719591423860167868743633046855063955594235309240948870503790416003525245654947786206287783038347148871005737898880317525644614366553830611696371181656036636521718993160212222185461404599769746652795467775616488906759375483913614538924975037295610034645464128829355925203701756055810510909219184734071831956816504586760574335917871580122546427317530924673604346148776991421102784674832888993353785320510689877504703904788712559320373925273142093538329847701816589064669843477465093987383079227836769904640746271829379634136414737722984437673754761900086218912383629326290149080872412554499431126123782924950409901196450554888787316459100423917277989905978872985274765355313650471637253193856899515998195737166953900902489873063964563008587353157585543212406810695313560337644502358138292413407611014314460107744940014973421396073275883179189648472439859200540507690599192500277562832982351917502811455885117230553647360798483638074778189906539250404887039222653942392454060031826621650116296203449259355467892281260059618450402420320042522822929916643568322498086244567363562414232726943645820643975379183641725994871496398255357375242166821001010949987674061463362787597430846003709752865392231179234908308756527322895308491535213515360777429899704451410359900218755302510923479104969062289049152573709713991054361752860869406853361803247597482568257970357426850586973455977836481166447166075526397203839255382383669492979714878230643038465811519678206813855823632606954244634401197165024618863922263828539374587186903592919683163342342195884433975077570471886074491672698616548241124811813437185458983001097753891908676352855764616176474010522508768741700326713073340055179666762157156701219861895461928097212822581458390531800525157231996970439931967089178607630056083693640006406301068080742390102893648934976167626580428576397576165340295558687508544328670964068035772235542560686467336017732269174813284747739156743088311630824495731302723677222802908316363323963443414609060375475538954505547054487249450940294045329198891968395158713074907431256315902594832996414757418072111995627697411982180739668671183955627281797477093816147907316828853363519090539548001983460640289495863155102807166374232335287487985480053220734879978334330330680197394261049158766798428998131306068611037681873677248983561145476303082577310995339119151270989464395499329608844184776030746567557410499664212626636795617182169022925330056897120988899888834906949900051609928439880097016516196250972204778292631834546607792187954585841579946267335051580242321965324478586175935158816749031360874819616955042297326927525123145085344200166317358761472723467367431952146055840217953012428924407716302884272308493003561036312848056222223103541047244783530373630046794598923452047098507067616532898148546479369772713337987134515965912942308526895085013239037082394787364665996552548900715409366849146644832697526580945075482439629318172881969236328980659627539338797065534506324251820645067625970897956726965058476059081623675622214202648050479933980830409025542198596236821670586961216100561545046650740156616745523597253737909157033918506777268537948286881385814000649395928383782353087129508568301370826470387108367111595530593519616640446656444624959744485682546163293677094447478915294113164204958303906151080234817462661882244365256507860411988217295131133895948613998228346575489288851805108599164188602671437313299928820714788335759519582774189474741563599990702103286076180978124590735815800253833878038663685030187837493951662656905786017061604054934585599518967849335969463168749203371866185304399817464614220702850229540517290134950440034099416499576272307694243735742435930612889794039997807893810536278776734850782720597271750633103635046100188446008351775532709344040075928326262406410557837138900930298349664040814810516155246435481322251459655591437424065660241122790621660081006519685696065260321585289816382456890343833652391813672131039182944579274570296284306476134992956317574552145094289674671699756280281072454962766385566085821975063586952901129830075143603275875672504886146391638609012385966640425806876770314960927229177963616557397911472207592713509893038283851146411390325059585546835243379764570470292147254286914630595806020257875869060665694168992857861890992136090311496285429534696641470695053747130258063621764897277203351442785293019295557898778252743797840460451895000869821440066828044668524932002167856586707625590999160973752927412968716824211203046024628148847863103358376746622743267755408577058059418426682759739637933914501387884652452202546411165964172931981932782751455943264757400364930188389906609162991264493611963478621104621008978792822419654734288339526982192558694946586692436152151314248613793976842777459157023237038792735629627048899995330479380215350002126429097736508135793726826727228467688273490574683663321367045251171064442679469565186923078215114612491894975828920763362741603271945372262278751627237872570090710668302439779164288146564140225534714204578920600202589094710045604053155949401282416727384315792768088309576506610589986164339342989570919283431565851748161196274286427878036827836152358926583716251248476189311358933457689559009251628065395970487934336438251993442349901372268561221749181039332753051242276766534035177631515182194627177793300210894421908929275327690516896017414309988955386964340114548847606925063711155795908961504812932972363325746682260577601116912410323200124889585170558355479233426710643255048552865900996801335679696109746388673143123771541688224030303797924683577133820596154733102121652374256093575310766794589545191246558642329124700602523544085219027759572327483490710341110003913264795469638990397744659623447729504464348064867333015072444743739956340658339360478534010067321619676049848006271699003769583370420226612803094959815080621439728061535638226594547394584715087818162082675667920884851333922822895621279291427057278810224145060912398441745181047388970513236706738979796566425823475431007370229546823500994622209708296350415417656534579619095658796509043465775350508142519163013266073061932360487665121067004192008183935435179270248780916093148427399282335430790756225646104635733239342403080728846541860365661288696938345607731256692737744612026979796460277405425591652069710761142633548166412467046675123539702636212093083578534264299495862996332901631814536356896679583214048120956863268822785819438388877701815624912190334342429441028479400411189843386477196542866362252957616549082526715068723104634966076595192832736981438743598249562463236161597306949013980669514431025064058950531612224536284055716779739237269190744356586413198356711721851787247424666348820156858943888931215452025130971563812939790638688782448251163661240017937303584056875985260156770017645163910679098701309063071414313095401683251397331775998953004876412228392255265406212613978314596276119809285576517517234324828237637319757131189808366187419159231402045364785969949408355095400301236646132425141166524545868130831810382650123979268182753720904877092937231802048298435545884885782742183758528728343645093943323215845310694473225170629672439713923655872392633431297602610698816600787917217545351858682351541300591161690421450884466438587445972113926092547536523000485369584869852845294980812849971013769553205945149978053455621616309140719426233739474873948431828815397246477422048047856667245503325131466961411111838709830522449948097952818168661785956657254842089064900146001426228465530801980528222911881227839830777068462324276833211613522574824233601647620284472858954591593695875304282281997370853390482503319670030028457682417131232023161367781450008378206708925300092450753316679340441212856053644947936868393718656885992896983912458615267307188963184460073390166395405499781032721000777662255973442290644018085451107944195594840125958255805566148929800940809258676163411223959417594454629225036557337578965024082811360908385807533633047317907466793843416436125146314112174908047696487038135238377920391568595413839336912821780262268552939401393992871002915270377489304605592551647205989751729031234501659171732490495708868099678478118066718137693307651906171358637186954632952032158675062778183714141531884517788486647151099062628002037095499901825346412622095423368351689910609276017771252141034993084713451034279590399561363548689665997775511212230325889018017016607022888032722561506966322763835880021619430516688106210687893130893064158287561116663695473683054003063052905100694730431025855442681588854417293579849707941535116064041453865534983267687648712784684685674347774683576455436360156854988443720383839511996291718030607890132795511505844245973238403390855415015325052623115341125542401271235720580493047525163388037938010680324302182863667080454948920805684501113413901940196511531684774449750078123129967627327652635545399348807001319107290654368481690017048003227060478280518238118039336243325501583940986099612341815357419814263690775977543227057504395525097173681387174963067404850513360607631811803816693107200524127516611292475331869267281344529570706972943793173207447560206861776196090114875950420358321599882651871431702105614812062830158972229720674872654898231488660951033253584076555834366704552706430120246760907508612043643673827521564107873065489827977610449281235818133187020936176692679587674248533488084303509768713293134379210302194916239117766033604482986114580147021147315472307269650424676954399097691884532700260509854192551431646188928540459099849105836590667924971325123433161757667393299397556247059908992992312864184905502111440394738433452575256838482329119841818188244925939703240165682555665951833993268749147085301840965932262751082484203915047365344137528746221245147121414644398911564195572693382089666428724404465095259947808757880645927957810801044374175422578821831274427340252782376630257889623398441008070309986761653465154648889910539867053992957582296057822969827654287689115628168655012292082898535873501982764013460864552391388525125798143768674752696591924902942365769228349201134075142144620146625062211185308352795230262126857852846421971299044153772380393824431894958816174653351604575845544873053807470741532535320939995904563321013303496049777419007367017362788059741255354272662185158191980640654911859345415036742696377489731320704823881848162408665453975244772246042848853827342434178564501607513258291774424074391402318402570276743570946962056005041062002720081454608182523667927059623003999796034810886387491671192797792408733102453296883586788877377732301500120285576764145461076266067186412889408676300828670883510667693902036442270226337310814842102979935530718258201326275439465682433380548410439730290591157240222212617323639273468220030873653495242851494595714356295481701422322566142059927447568081435143228577792352866878528989798836167930196415187260087065736721854253408738575877364358675806075875498682031152210198969739198458889021612773012442676108329794049947639044171764141400864164497147451126978813698398574847726481725601609555149053867617720895220997351922689275140513103321999907675759877183441991662426267944841515956474962022917757667877571719696831852262839896165739839473951902577954750944208461626416036140357215112967562741199259360038986382181356411332132655753776658069337188762119529824602287197893054235675745408307446947223531443545581416521075322964081144672712097184979195123021919153203287604340430882748275811018602150356831551144752598618130929643187656588826846136044479903775599197485129861629459781075263816893126154983583895129491635882000708392567973028647713865466508543756742655057792060628892380000521353470557376525755873645256398392707658847593617547192482853733687081598102737416966704279221969395041364686042487843589448255264593279244106717438114097756218061517741766669632960857014436797699206786198880429653343122279134740632281498476309687560362092853697405502153559788370899593293415496232355660943081789429643940998239028610323494249736331539956001180022399618397773569271205739739161627710527875209761107588158692384495278426129060448366046809632594341966429725265975869220370065343208529684193652920715943359206197180342500530671691670760243488068191900996754794801684838626456063716702603717671294483947850433735492665000766834782714477457777588574614508123938198140439277899394513396827743921781677440836360173320848385061087382737102565397136275076955225989480182344516856392552937444061429408363175680976337887977492822163250184876008837254288897544784244623334456509420258016050957642977536284845463400626858924835259164753409982307476871244163239134632526047284586775609259127004329206135648674215581006676927868028403514640613390190302262709282972428093775611213998560665177659274276705565591563224466644580057334220483316696040210392280021382582713852074499740370793090836161892690069376658691263782277033888622953368125537140674463714284220177452429318897424028920335677681336752696337849001770930275550991291755620517059590410139025046387420231070618632550038801829338223964096075529665995618508214641142212636381702087534336986341238448655019331753886077191203072401011348491205490336292642960830889518791473761186028436945733814747360547397309143717796512455671131120855695801730665434882132805739098643426052549879886581146468147976430231217447148363010920091890359999029577822115059832904704279542789517486213997233654619788952329702991209547365984812463223476210358590588938367677477475038374961055540409925358862557572635425265364006375274200493719560314658260888162146135621749522205683117037845879919572128511698059897071338633348162131082747917740212677709576484683044228314814938158450198276118128396245208551501289198205819930125496365791305053567743759171214728086957500328960646313264861030231250250258651358295122419234922238591521498783958960948797436919147621637431938567804181843847592824843667883022782515709947596204778239611432357427824723057190783127047656276677661629256467329125377450342717831938005159119519713533497796542137777169702286396547565655766576097076072074044068564671727116589943795379490442707028003549787553435627416881809502259571055324226500254135821253251203507257539207265024833026383432814950759218082941411951500373783350177494776474503109338381110501828494591270654537309123208209054492931744925062674900478097511340566311071794056954676331259882195289489140786712699989827081881345664538016688153493025595921782601584299616273215373824125613951006715351232918759565918745270626263698866525995821906575492260050304981217468517884565061903266744574313347322875381581621384618981016860050826114643262367762186897340294469211183786823490802673709900270089659076667594900453059435498785350138529230466372024537748268407006927041794860936325859613560476387542725308670613596068925377973575103431383883005843328705985063716597019150428608837666243635855162311821643605479388810606570976986230871479613844664606625568222428650498640130441374930358881876776905627955454701139821082014913110521045717672584404530170273249788522188249083508617923947078304413856522898620900060534675663070153887618866323583300040975479619543009854754933090776980739460969479476165735432652336351844659053099529890799503458076836639297407974394657615669217620849643764119453447953251053627967392876326349748621684445735082659031102425948692187441912051642755745842303387047683747167700067878922470619572679370102761385245228091272501776107084273241369693828444822611656695735120319071863917983148267903814522216488346893437192504939116327622910540051384028492951383694224788746754396286626493131781876320155664225252664184216971371099185794871146947561083787483221212163564582945458945320380324410224463328109361352634150829816158150151828695868596919893515311002544206163192554724055484658303600709327272223353555262403507883076036413868596290100677017954073834903433595462807518130043154011679026867983534081143627194044201169277479838087690469701786187994813872737776302140495241496798508730706084311758309077026281348710491237572610708690673554278287210760245931873029209326095031466399016552904792289523708013659776313906365197120330214937774550706785986686401743728991438877642897410994604862980030612275962927290894235368431736012545115340593980756901367852327325987697215730734386074325782509214662850337255027446007471865704773263055825314192574087391541534345153446717096775633557567377485975813840436646795157640890747547519791644383881299507306934733882921540031883156466433442870364253038769235532885001692210177645736405631805791456590482656502128921923517767879475335939333454969150707197861245761037200309653614957590496525808676726451032101372634762415863424179263712891418922192226155265721545190327578122775001050035482111066950281745039309477991539292969629155607088938420727233479306863212514063279352645639034682166645920756205144143944182706105359918496494985891477334567277372480687109620782221877163754966596969278300099760796426934218311871817351635754537731501393608763341257122842880849373153159881483386795778239135300446645596278043156156814244771128081840757878045143869222071304747617845054316147400627918763118241616085668455815512628843788976078683673270531245410428060179020865685142125060159097444496079030017746171512851407151541590877718064805532241602644025691352882199665710790422208831643444257152596138463944104280409384587867517025429559779695511511548629649908997760608458838412344325524244807374794108094740531282373247387980696009190490829238087762222659263350470453132407137328357007541578833073205686809347097624239290874961186954085108757291980034551371781488423598868336297009095379481769787007588370070926287492018221909550773346623632772397495837957006561642191206143891492447671084077479462794885124610569454717589477732073293861251522724542112788541019702628337549999896614684627750323065753255459247734422167082683566717927334925960202016740641612710989264775433852854587584883866821211238836051464410471457113678288911312743257579219230148600232738248800573600165229760090883128119280549602861444843011369093116966160067597939245221328912061823895432517595893503846265488721498091181871229531008408701105969232934119898998013342417194400365425280049996905498141669817451092568508385964695973775280169142692698837768614158071798746037690926143059430968416772469149663807663587690615539336269130768185041808105114122764941458796877507571073290859828396247649777709039270054276204170143264376501616003092325872425459248841021610161374629340730310615354072656393441738542648878225744088879508094907291665992707056669645938481588788113070458029976724257778112967176885726260290506112520700083636313445599553058401000269676907295077768965990011306582041837108491571315192598188747113665713432363404460447945496474903921734358525280525993604290286801774108153621440872839748397665881081636088139048345872933433936421917454328528700406056015466652435789612215154229734906666362040816483799630807126676540785744340457581410233030251983460863783013625407138607236479380010097889715869945673984248402978474942004500444250971478078148506944820782737905057957263706077600849798221496880502802364038155006545546565918861272945836079031870832232188394730071686224837253901825888506210073686528502713352818874849787072280595193019717008930822128789564826841536218309386804280853126656702126740507932618498474315040406675284505864748942958855563079208759604684387191500179959099871594594963111545332038677078953195869784981978991847338179274940089306238211281541891408251108929288904537118943930786265132563045358600958524280022818626677006369879504665039960878855420648480189892773705487691541692339361254832256913604349139166803568121978167975720071585434906119569404609871984664180012685429079764901736034682160327631358407408351114345330547030095270661475047692305392103524862187352787912675528205825085240691170429978611713361328410769517729424216519640218479845044608480012521168720291937284922273786417158444816559625007317307329144745438559279815154683565151138667449527380202211843273299679830991123451341486534888039552827952522691981695314040929210400599164613161840285985433071973269909594078831769531642889105357459219739849830793658344012905344424647232408854138594055001878631630244383862581359736490439411358782680458419391221599106734503309125676691352709028399513870728505941940865695812499633531300211886710072961138215435017573833701716798524633146569380319782041486261978992497658384720783285429926908435011875608828874663422884205144132129847097828515727372510008463379831708212176340664443350057297288058873212230753230345340853366585751646617524389868238737319130801063827305154521108232293897663622893676942015053493431844859766182159481186446556754652287444799303889186677071869464226518647065767351158176104690580427372399135971846282580844005200176018618143373379556012846889015739584252635004504066242862851241205346617635452865839014042971594616605070670034796340341398323247025195208736284726734316506179196632779707020206611309237075899597865896678186870243775412676105693681005485865030386449463052822291545925281932363584405546976298637534887876441955073241936867751034605426296395878679741497920283387637007236855392161728325142283857277884779886573193551024080037838520320829842606806714887000578921643549609755406431674496358396688601755043106342157000605314791518824124716782199939980816331149274564264919638523932988817583713599738793440455349670691095876794032205666690038319488816085222910561479180360636029477293597001196403971834455554031494753483496596382748570271420813180197030924621803965339116528801880687934435090037455402375677608453429677426722624814760597662821260296632016955159238777533190234433640246124644549514858568633984650793351030679182330692622751122694073236589403302342794597984792273439246944987591334126361781081873476193278367791231369003046283487028846267904360177406900948974015720853093849275814201955291212074171885327463569602476603935641066639291850198939716602146818178192219178683226441041042168893921940460190552521466932587363416276107860242152146536113688634971343095422572482911094729250562469900074646411789760750743661423587004485192112556330655475976070446715990646559138975293490216895068345639971298930668258762963537822028543894776826534558156860138095239126182124919860453876645617183907937559782712933697446692287029354908304782854225091628788208022502184207129708760852174339302730640822211307329000817704756229382445651358841210041120801412885656340810974356939899146334911481756260647956168336883574804697555192809472387809127852694921689077774367846653231398114340612563899576932735803818888804959534449595109685982284845661273805366194271616601695697975519081682208882247086142937627901414330232072426842390957456841859852626030180384479662746328042971061863943275083300893863406039343345780047279446543880588588642445011751011446322643855674882600161034115372578531669391020592942608987279091011820507982371059187128591799325654554872453625356788364120972121311415180011580857075419841415550797487878653858621164860809683491011685257932551902983679933247242997920319057559707071762014986676291436404903355741221940651720331257494802027407683698856044432210234119867888917899705261677860393230725983534611176642170218294019922368995352916441512766190586395629603047796428882591044711411701056030324594884459111032097195496166136262683600303887390901676343409304546126234624169654640601215698150736068973922998159045163930941952672770523675902756690501710503948391206528099866185038782956404334004447523294746227665414803721886966089978696418281709952391398062305715530201910952201242418683662893576251129976012643267926782003828240613788593242254226182906808032868984446962764771203752105119040665026294127076223833787171856537095236783157971199083716220492892948973082416790225079404135812733934597988038911014415334645953981948130898623849001025393194229494134817657121865710911170360619286516192272093603999552218557784438513301738024909304114094928907594012124652413060573991424454546876700242423561504945464580524344362604048419735821708625646855298108076165030930433507371154523476116254107357357864314316776159930939090420198721207271783127244669949357467502185906060010561727317869054811436727229981627882837476140775502631140149270785350829697977420633342921749000666895290018361281588451083026852432301722197993300170092004306132909632556548876089145421709620520895607499637957525675329183412140748252593650915135415232334493360570776163538126929622142078431399603119042358175412637944059159510769641094973382203781832806756952080015237149996662455856767853252773556793009229169662502108742706181760630031280416187922909737533141173285163882916793189037896774326495881620705699305284542096535996561096941233352422396583950422881859453923072019854671111426058055685539372201687972869466238577178253236813231042070115712528992476773476778406060037697238812723476935299504857883396236874490033115057874071998693700873332642848341866329368845695522191857420807827379894954603028021849083174145081165493315981055447835415015437699003336540533367863158219988980574823618122679636560721472481259949272796739859605378335070293196276744472047306463247924291590817680121134015163882620714832900286427343504174780403510739682493276521581090423609196247206145542885372170922528738153487624895065007137682421991846539465099542593894700785701486563994074646461153138094194277970958449754659064573945538164776731943071022919632309324631042222639530685267335325119882771466784080450079961858162653169561625351877537816241837904160998137505645407324380598780887440687721553830068160847049864802233713071910793001324412119420035546370285263381713750347741459629491853865379766287464946840003623113951541303482499941743567212490387690142775011025236483130289198389853882280518120656723347988049908883337291176700261415788718913700470114098501171215392645669612082769137855029487231234816987620647083812644263974052218484250900054824200147623619200298407696589977650868837908058147323991327478036312282363482250170161413265540749948491842156894768091780159666486095620519863163682240635022688934648611922617856304708144048405820213435922854509184172199228139236879846015660451140167070101335580144382609906758002096255557350077526032900018571426090410845831000562122102095851945674603088852949182923539847894035296508850082377221790691294655793283775055483205529256755694648821289376404298321399495160643360812183442315968748450938036029306881931051187022652687058971680680945222706912281785776629741227181099362049996918173319320732727312841680827356806066230729944137574008495298344167257080047757857035692682156795226728322775785815807303260393716296370971564265358803035997623799853879232587743673016216084338113678695572602990539987641698094920774988612861705396728986408935425754316377360797311729845947265212225979083031175672437541537100573359976252855096948912100430052024268863244952713595486758249787087991913403105162414908120651199736406051245567132843247591451270845618025491804258659601831263314918588095893602153756392016705095040479936847347560872237285430027238410616962161818766836515160976690809223654838579378587942858879938888038673272834230603269901235917104211258152833376214072139841422209965792133003800666173451271946760586009859794973351869446179843514129304129787793971903930150022198918789737097152123997178215702612875620500889831919090558252865059865142503261304425267415258870830936440179866389549234852655946493053315967159163013041652442335208000075617714655045539672554772866378178053053568428402317910880168344938920787706728303561204400817055877103964363046169235806741919059209178833279384340749497644752821170321847801360251701889282130695233342676282554283001044903712479929092840989851559048629886061981057629457887703879784264129622095258576657154795759893275757184061956912659773530104740734075890391266983290985025869276124009178976290320962820353150792576852901914041305689693653346794771721692393383677941231578109981527698028484882355095441410720633491080148372486266528166869779715109083378880810757127950875034944102308574169760792533596208927160976408101859918708854089049213248289728994589590039383288463930293827502755574459736926430390065945448735746427412256049138948902303088363677382660382665245673093205633277820290392707207860622800014356222737497242925566636220477302948226812679515015534170132477901625848594629934509826240379391238407166803464245297568284786160926480595700008872047095486147342508290881759176616996461589759048240592551414394252289030887152860440888253696984767304824899951166175775616280438482972992153006725159946455053512309975561528353494118547730920405477353695838070554684608456648133864956422347162190949773974436172528119783606403633212585132919999114625408980267835764659833183797282543153661534788866095670889183545558961813246354146720732539197578499060936876391197339897693630750254456291741305350118380355484793201401518287363230828750911423181000572384028977638462440734584093460342585148036988659115942911695539985903671617405812221422664033633315955719294872538175690492139872131566968761707793020543365741273124575949239657279691580151288649721988173160965144638470748122236488591830016517882516356813058326935727142145570281196972509237214000156821419351371568707227417232394422029785877181280491802440826537087967730072447046056485154906925163294344301595791186580903963274905894909759616783941271953248480797765730779095248640713539163570241516510926151095683798053823536536995857137930773333661887610539916052074533138894710051724719199008394025365652390327033341907282968192558593547402630612404070360600460804306940808062264735250054145173103858671952482262027090045138298635896868893631246976780577991531823849099337897865162217984399563737259935157948753418508624978657034152903970705434518838271875236943446376088966193462271668317022808564725394882154363927233607701951944189847820410070139615324644983762425900154867137791655418115051983296776518798525161971818135827493930083031565742962902912740196284784290311437575438816304933748859442942797467019869924111322499929038312261152465497395246670602181082748029026397319003055142466508242849854431001331072379165565479126385937550084709343114726197369533995238234818762700914308214287822892023569690851628965402873324706652295013363333379561096756402007297365353169169919799423070562138419288239694245986721434908779013201603596166596795706944549248664584806430742671229515113120436297395687846621141975761920826004329159155291792522927512494535472611648116268367818480661645593965057290653267205287082254139462777972033591399951033982292166972866215281035681988678684292901026264814644369167221435007594588977888334190171242655871584080308301117786656498042703488213935529932294388218240535384227762799631266257777842089598354179990035787759111257136561804441752039277209109438819130668993542388440694268107656097016306248667077770351761895346399486157676866869290003881861441474106833266800726714929021146532242360721091398089848100369136161063632119093545446091056696459448499423425035516687624487349541503248412744080672890774274841349043733934458835178073210817080381209763970897455292030009989518956374314841520126389923932824416044248937158167195775368314866000652631987828562261503389671054286741515401326660141914988182334077062646711761258979695991387005896186613471390649684946433721363082211281690192645789930575790663864403964898560309619531655524644112604409984422513653828750503480061361523823045742815175704731864032586034450500265083351691117769023520855584220360864616504233585437022144287999310610286533593141150406263213911556481440305805348479217438345798348850166813527948974789397197167744587165232749544023864054852418769254018151502726049266067950249250237916359684088875859203775599688957076038931588765189913508115748296979260524989191698213767913457248248620302777607652249974899673982477628838685475783775974541781055614866966717675710237917304327253871114772865294478692902778718652765318332100491148747533675531252044386875744499475719906832162980444299998589925913853848948185180350099573801336146623594803748761362789492792088987056366327228149380740892091738302007614930610484454489021714833556251738684243048530538591308103092115301315867520828222822834737370841749960851973765574360787134118772895965187524863973276454730233589862506230442324014656262272969792777969255686973407847183213249682887368039272308070187821790979076304911077847825119814331215281735954821960310101160010771548596895561140238662030974553520515926139286936922435982341730743429012310706068260150733186308183365544393553789291704318773113522991721788758664177474290295044537562706187625725011924059727069581047429227538610159895409470280276183020767874224760995945870143470333735133109995357974202776629455960760249765789129137989847607419666937100647479515924271250162721028041051771212182199297504884366449936045710962979262400006687523576160454202888012586785172813186506541011540421527592221785452787517742349110039738045178411511200660997256982447270051160656877190851462875987144355216872893076506720703432729065106507975590233686395094672245132999157829115183682068429870026439229102545133314748013699811735605434416804146282317218194617241193372674388476432587382249628486125847348053060980137532000693493221914185640182217357484918836704232521415246676046261521720408132018241713613034154516968478826457073254522514859322822080399695312690516465292035696876586836574783778917529876158710521248383605426135057493022343102038654109257514507185760096253814529324517341157692551815449318751208824533945400784450786665206285123675785542990550000314249379534387202738703814280086570862262586487188075276123955911377250927207997586032848396029504746808211455791744890934611779812437348455813483244796606918251822749632152735084355600364095057991317059230457084593825505328301604354063907234808303169785667820225294215181844097566850537776582325810136239283791341324856762642968273729175166029234965377149155399232111326871003459564233613225877020092190533529200810175674856181824976717900516472657119332217856654950860386476739026155095721977510110224994740997192718311588800851244858362815077156967526747325281694459102049883695831812055688100200800668612127033382868746769584040126334423097269596314073702778532592142086923046118529437731678864327474136403490572794587668775479249610715141321219446844556160082922086746398585110266336547728130341268890707050664270810954674050841581758773034683981835349891441804612289185689940660304960938635034107188286974974787816809499582860187286290127437030320012713700629303008665858761734205858629487623437379971395185459284651656315274004663569483102102316448260714855909027667417410958344035743493816137813824568987762305593670794302600858653747774084529250799821522438505240402623574969045903684469170875872265013563313793137127774549560879189122971162516177685436441194770311084300742289902197526680203723236090408971467212290828928771199717470908203529308958494363476405514832969366428864364333553406897838070260381648194181212188011202761522833902940778858392483456532357586207976934289230774461644278817335711091661113518019308385919580022004070081105024989873878797735374750807983584569914393082669125437631435670641107686915779608182479380309298178162323771104857143029303043228885071010442443022842784328914057076796876481223344085900570089421556163070400926612917489240871959622056431591502799258247414505224584651618984880469262120386134910773412920903236154012091594751449243344907292108989151013731392652291797848912468029856015257060810537323442298976028883140367823748421919098733146885596384080643844916667952856304549222414806983917139827957792435441462498606729858893428724051877524994893685441960263872705812254063514344581396618426531085422053916102102359152554152205053110023249211971373065176701408611560453761625431291257690080649069695021223043215211279623117395158332399758430167895661138924093018522141500273691216501605187409752215439791708693166999995743392047912036962617149983329380899404386353975426856879071938673617438050068164211232377947048609218046373191231522460227775667900430157607936323405251751698099938520371537678533195314767866476277382002829388519748055445171556351814155078171098602850116383890018795131136347968633412347332564205981806897516474647681232200898224062304070078160727136160235153022281092575359142319762403741158006816137127878474793587240359940770679081665658707476300182625786764761558744109123381213515110708279459096719797577980208827657778689123468872157539770350259464872584194570155172935770503120266697737124094359434983910655459764058922376026998137575280129849776107481256037108632155573196512094963542854505321474905800058998982143488228333579554685275679362938814138437770678033194139922577318713364048699482122291516226611049243711502472033995344628724876844592396462607076712876603786973355771805588629217471572846430350501935981965799841407188478803616797345788861566738070053978572795385073363599690113452182759183810561249239904655809161001472541810150896229023076105277164083281643218503174195475793482096134710230912450089962158313795131724368938290914154906624415858886393094633252569565378696419977568402650619642709079040687268785205725007621375295808579018123512533099928655057673870094982246317807862604679584366136870476192933657215033138303888070797522118479501775901572012324069995024342760400349019037990844253272961667257782433694196254810335906200627262865805509235985108682885745818158968904706779712358146317576728737838482055621733019235363883921507173311015770363404555098343084095391788831646485915839452704500279244448079456432287603378142030094184729797245168952194909845023826208103491097653031192914303446811866353065190375180755179252396771889681649487936317960494206223337023572206203583532694938973748829986352403989062594615728357373106586191873152027989089599379166493661949791239018319295332214760044539156045859935815669287887152334412402956442266645760995390395325949933445146944663035766497122507631030341956162152508634371299358013769625066107650924693789428052749259045069747322068311461408484639657445939537845632179133317556488547998928972710520791981258801448119372368644022978565407659273301197940912802651159687281589493354287679447140707061018612929823562044852428451124924674816028764233032669187919831903948951094370191792262438194308740891478098029544249593012896715007534260910361035953580704634709529284311721497007905127895559833803756374743800898128002144701894559402985244617631243331362360841354217746753915302059957059504451720715171762782197722586815303611113660279181590818124377590954131101387377002804359210249988760860832181253730313563429215515712680684518599273288851483178177550945104418784229980846503731913231395621625328314199662706101676890138508331035586808846483851534286114403717826368740150630126115333310588462069251719446835720265937932474467547562283806372486617149292697668937835986839125487998578897196176654424932249518258359719817246762999211786279821916547258082068105653335292707746002328699350078518881194539573786040684667483969453270331498841364630097113345331776947408146169924486216649611971547952097173309011660121184995516723414766782667376197388040889509868544008234280198208162886016505470283729827334347001350088338577640423621065009343529893846760547960204335790921411284025311940930526054109498300385387412874520674679538736734812716256617372201941203480329201609195371351386059650063181978929885891447946858928885749678631821339595524575163617997485221728365763840178938005223280283525448008336785855352858513071819399489053404661892224518046668144607770772512489312396984065140439999136541494666350299841715633358151098858021498232305723705926144496961345522787310652809429384034583911614211603844376367435238373025682868800730296386013088718375765887422507329881538702953352936989376739056341675146097965161903601978846226188606821727596315716819226896990968177906829281858155607946327611256882019456572561342033685958242329618579211629824330551504180167876241355354929799038393742882321470539388301380391920697484068335077621787341272321994807371624127224660425742582974601567729004644229842103257463846531697293367560206535770778766589566887007887191956841199075393157115119152024650393451291041466327115636219603196182088357429184715996528686750149023207348415272946312352964321244252807375780682362719956125694737831864950745688940512426734667002411698176092612604121639132948105995139559992168117358442167654069368746306616746393402840442468591139845860316273023158124516354486862050483018558840488358187097488298911490263790810454260475514329295609965215630739085915910010657843820296756076488472176458758774546572990167883954576237892104191491060884522500639679298295918708502946290966126567291277636467240359000198249602053411597872782387033000592009702787242262809661191042617546463309803305635799946135110854043156661772851152687956513023204798812741084190454246771080129290292518643628092559634777071555139275974888652418688444096959376458492944511384169479229475052315898543375398716911072506052427092333392851520152473269605037813081014364904902076740783987416823056683294626017884089441270109406366861491080166805552735108544920004695701646907907435886420440915028483030148189711109842418591600285530927089496569987610035606344249695558708111814427761524743420483750182873763063983085524818586407830763672984675568971177144377755763556811913320539373109106542278677821265489355225094865820918057174241094914836122817294091984528063663140491164625130175679158882078455467862301702234627516081199607003069704742286291128437050604195191484478025458549913302994494566440721207798445268547437904580194811720098590313043464058538176954919098549909133457936725804004961609385151733563954216161626632581891073117874634889931075023078816818759253655806702950928152955455970060122484165399026809321599852629795678489352513763920011082303911153247062182799906841344395165426258030029302176510262251782242020653499261804855607393440195605146626410272327316175738427800335323246160909205264226109321007766383268952884372794275571380415930123593770222807202707494250372062902637418620198419451624635445083277720526992693131558720527324422654563810228473328753451195065448286978814548555750357985244411823047010516929393161583816577657146818273813805299200073811565032063487940357359397878286130330728352715860135655423919686790631011163845505089778033844741119112274518265365884767923527289533265830906784953278619787648111170079994665268693593681945897714963450774346139963504119600443031909183565633829940864157390352189543168524084579670040977803163576449172083104253555125511027905271444289286233321187460015413056708959221622399633202059255260396291682606610116325481094085952670772879282687042475100554093407317838550257035195163159270707814589555515090028007356425472513172246540566543890178084375989552358297159062855083468485804594730243962245587248365355427639631148007033887207127127058419153759575083211165100447028472404442188910501967459716673525141726999624881030248598777448264870672947848019708385944069201350907763144375798916588223599349186283333497756384154043293657178748482554831007268626392696496847583559994288004413080161568145684545183622640548684357951172093478614187485580993659644995947650298550143995664803098888743135168026276527399844774081274285468564415370249179115623469558727799190644447896236812534178139887684979084897764274016225679526707846718970124382319945530654734288437896575868538111424674774090476265803935349008577692819673476557218929502562508209803274814258958432270860288759198733327678327789185813475832430287213574880459702357660017804701420939111730788613575115000624129947464613378838858815942503508846380402289203997203312688118881010888639350459498062987210397030206038630401730533706222105941843053881029828159233069636722918541148841901294533125550907010959333993512457860129060541568399246436039263530257947113281297637750179509986274136043675755154627270004474802242348971890840312284810747648036074080732515395227145688362578265249350734352959995395751084592337295910315144212113197297544829636821071983404557798925824984811074034754448169178752576309500779255046144327052642247663669445702816076991252288423845369865456418880865820054462076966512449794538641280413341486223386475973008693911703760894761599617701146868439788307835290149898632818036887092339316000567103886105275908080019313945199872553686107810425562522751123787388828773146244004997933319212683791624220791827502530512399100620044921582541192411208334407788949929228839815616289003857911012706696253418525766117934943831596056377654651515205483447247078100192953870399593331316154254550019797891912439054179127795868540185645759374891618661421387844754036237595595183661707270697507995549062824534123461524942790455097370513884378150172828324678226410512337791933791950741764016446963040955695766316507864496982656749166620143199508017434117339438368383647498430923392372750018782432109278208765738396186170139144825408276305534344301461785913202898509998140827248311643163387396873343749837297010467466149636178552134361725308577998673569347090461691188669635772406809279813879907372049824444216243807081930958729910742032228531571957578399665392130013440562746670370835664048128820906459133631572685214705237856995396934249236096200945282434671043407621794714790702291363215938262171982922079954255661627047555045080888996227777850848207204622703946655769321401046434696706193857768784774892273468617138460883336548017013337157330621362959910196736839705623367518469523293619120042537787185087524829643819360064458391773912339365355711583852109691437925278170017816501221551133947545180633515528869664332322376393436734733603354179336750487921308328305673415651484081341833027905964041183746413251755838750093457926853676040454763194491991354661441105757815337785651374148470459656897062778200343638512937467486054776519673326851571572467348064382354114994181409262552461037177265429050599627610155188928003688791002698510774711862527276868833300917008404765101784955126081146043371616454872571139672045902708407105700081878184819793904875676638876419885876229022557860148347346158909218574287225766117570908595937281056390911541988603804096578913660431832386823295646969894798527215361736634794482451517771541787875451512040501434144285147068469452743578183013070973104398661789447906271093871055933347759993092438808415613935510595379910849645191104624095459861160943613982934173960297844279386658688675970120870045084145789372616452148584146762168347020018572717816459619281450581017128955096426399204938700923335441852814012963722923222142946819600154869657807295730239569265544077167286733678812779586810904529281759118113685741463226247709791876769535379081094964856141998958104537486040963440337178089442045763063521829526551645719973656511766117013476450114168917348228806689266460795677339144849488593669156526985095632840162348490394649678176595917348124035849185769341243734130639516156577670088777929581917933580547510637967831848802412073676935143594075077778757404540577299122645521306654783015681701851651232346101388681400898074129712977070360689886848052202055270269813591506848020815213243519769093602642246811339822441891636309462845429280134248977310332508462636626392504241717366446363912698722716237985853586555800093312250097103811608232094277909056314991438869213853661971428471436278512671613222700039730778474973293067517358470331556828728954776074889640406584877958327747912740333701428879830466088748707679980301514150927983651671366374479373712348092930901063891961338318808000315945779906365511748955246051386506100568908265133626842884376824144199887933428441388285731740190336453961444599667354533555138396563291281882206639852169853526891610849077171596656267314146181385826465857612652087161801171531874607786725698160366048525548076491515809994046089353622031443547668291667659039435364735107697968975965936526596430007697169989560606861052252440681981635653487848793127236174335417304801253389959586652257333389479749152514342817317652707355032701489773516135112080795883653775973709475404768195110402420619975178165973980608110939273011547496318038868673926336320143293563964052421347470065026727343328753508426825579663805033787279561088440543890090253833556429904260786593993285399013041416127509131178812916362430271144476066909947682158567599796565313758901213704700968158575372932463463048938459376843933272031537902993519811691623269506398453576967341759392094598805469132015149158436393886635258281255782889055055081189816937452270962607368145812276024754475882072250948777284750747918467604678178767639858618197237583737625187512545022478879736641063270249190218945244203187395678808812222224658800572345848715748062954784385512302197413733260216922052460311055574057266217213578117483684847062900243663821469794973842039980876950726085685779670391424268384540194668991464794415550199166863828366837567123569712547286510393160333183819594357969985381456712214307886912140824489094027427161632772977339540678043163690856311889752868196533532219058043912041509480785833180136563354326208864309231056409813365182213229925592456167542876766833797438859491199745674086993033801120472038855757878764030814240931473099894953667965524064796515125842920736772255974289334909605277197272501505660221056999737864942375709761938821543850318131233058397595158056254787181145292090335531940868854933103977467205968571758483207068953692874586363057413759230189117859134415683105999040751757409350266567634776996246197884837895898117477162146437926439011872441477600191338031710111121205545588131432562557616622136797365917078542782257465986866978839144150064989523972024703955135836689224788550043318157359941183756598036761723674745413262494561751408846650796250700717497267952065202362401212315581587505428526653576625871917726732948619402632092395087168712072191371793340860452827124646299016701466706425084118479586081469775401330224978974432138044136275475532317726346905099509967585725733600828961757191987142006135434831278710290952983298623457027106630403476492803428434704535112412732891355872149546957000890873437480658577045844681354254190150816449224080852153982357373123070279454031499598688445043144946739724457486738298079398644682575014792072986089018474888424753133744492300636596053475847066955727851278853727473388840185377339576873535051757979308147592642766968695725661227425089056846055998650275026510913681590090014280960165954162638703456845649221311861734412556188784238351805327204049909921780325628733586748740631291917888472251056725542144263482345169739014193029869599717801620585711927041975167735651223682245639476516279242277243611986113802146072909128228567023364708820551800643978783252699710409013866134716004036329729208790224586796861293235515567335000299997586034469078849681808677840912806837823647416942170784290974954038037434425856854914123993250518164332467950953784532811309594554818345123662828098045587168938784347280414715445727888766637994143360685998988264860090162908427563482836783201464403612994277467069375265629304964958938885072987354607685209722496529140133835380058904329524985926779048042944892592767858709919507098153172790399585017782764963418986609760392282386848492132603509338475545517611269659025857610512061345599447641308332021635424524875955200695573437982805968985801993040553687505760134589238317381858521517568541014663292727620483613766888876649913975346108595121111806699352878901427527787625372427853281345805443068923779361536897980205540848190191094458705304764605365367744533907710955895669911623633411510259971715548075545929666059684300344424551742568479868243285773848543837070244959066663624541037731765745472006945412649020791467522582559439780697623907060196049941560938926919806592417289617659995348897255080438253375693677488910046432790032826787161494374933184832191265745303601390298853631156413729892040257221260235059421607502297986319531967654972757050499264155326979357582918507499595266852378499269430342411722834179701130762146657237967852369666891257169878794784755593061334790060167906940234021815065432213164317892442320034591745388369374850938923876147294325650333363733810941092311066769132520542217289969279087211464707574246485857445505167417100913571919179283923058671370461527960953222898521244324011424205300426757482051539137878431884706806347416786291487838058586930502574872494465365921597709904175834312481849705976370991252914012175209230862682655432909460853537351322913722193293940743884685779784962115987733830612661085325097427330146383235343424898086794652872172343388210726898675939594351488468231833387132648613424828535408627181755220527254146762766943749708268971338012137986140696780281565858009507683857408565088914108426591397835095896644387214337087859074546203249119987790215996191925322958525869071928847437672210893924349671609178667777477576868134600276715612313166876499111378079984663830526776560970832155190427615214471244555546207335461868992097534233280486287900596617871646290861064639145240930791508564258158590553479175802336139894513243908174889638102943068616258336155124859289047272049374606944732184346655738477775681478853720094514999239205912919423731793762326918655278837788149604913935229445112522204659742976582458120112364876157517032514542459064135119036415106482785336855723420391240426954721654300611421148874109623709925497074933302439715193986560573862845680625965630717916117062425044882791773651725590410560738596704568541922625821406317525629821251588522870910925665167989409301879587803202449497542751012416577866840217645218820493572399654684242393677744283830174371813192354991762068585971794140116670845383647604513210742942691170646929724505536904310615328915369957221123264975824969533381750851022754568678561732593225163082386201657984137775248234147654705089259703341798017046783896705397021789244465579621526070572580060004059751771048880602106261049197043398559668013778256643400050811462350055521120532247537694160254550646552765847593194251545308265375637311516052461112972366558772151534618023215435641159271786074501694624659109243031966511685768191420381145715522192360605680472716825708293993619460160111863308324331228141540389284851609157839375799356007727635671774229408052874890677743768744276184897444087866152652843171225335360200080088351758190042861393597552805990359816863664070994356837309091048972567668891462583866196524117418569819168679415839632849481251636380702138621060088593522582426949521094191294051590609578926610078248416862298888868225747538060055953743706904028858492864930042456706965213631315215680034785236759384136570843029300210367414056982459776766240574260614615029271685216122333707996200969170864716458695469807867003984439067118657076300216160261933459248351356680586851479443954202592398651502289544888314295820919003576337924602279334304686310866167602307826909842592044312426473380708939362032620638589350437507831040873807690005090391045956378061412665236253629130408056563044106966962375878678603611744122215718276400514915392636158649366619349770287665130616917965323870323297389923942993401302388585528439829723037406540317159572030171650603057946853611067881818048388597976900360545011640462538279114154161493126073486605122344763649057701763116632916489127149063016550701129027150592012229111206295684630516693815575935245193784794334900140352254837693605900215172688018741155400220180136663017504499952062134677914920715419191514433976079217179594585740955412138734840781087602073476928955372598088700722420695892895993256703180369800662862425330244775087340500148613526116077695947813404111213690437246717735200979769569981693031813825882009017718419715405359445156466855522335608501787514385474187550442825699724141869805736966900670935681759028591531690431553683464776362442333960794511414682886311969963172042734115348935064767070790767391597618197198359259336765378646108149071495916990767295556318055285245560153135846261675444002407439943768965931103082123948666234409526828890691426646016314592555461096375923465443251874225500605973790229434911138850757980713897229570273510585839217561332311694685371051193304818077022334850300679801629641553541931911737636924148727847806858485678048361151567235711749091534865171980249556664729582314698536347097568217378450843110380602285808451718538699028523287645597455004342122965931480927324175853161789134603840004790984769983047260325588223517024743008938694855801587556234536873111392213411591714388663606431593960934404604021888464332952954474691725446537807215330146068652945417640074602297495635615439263312833618706998087910086865326065983530839560959818178318235605364379534179842216845625374145262459461766933161601635831988700788167495132364810850357345558030820541792042703266987269447967958476966151815716097441716293662890551023135203168578498647738125868381800731451508217612697589113363446586088034340002014083473860698481867511356751876705270173330983282925323215495371482189705764954197929721779812816187472303444750034021271618511278873284832783177344063704505564390625974185707051050935355037697561533571174610605556700955500724764115067693663146161932386187292941150531346120542382430596264319006733711654514161348918201269440443466851538871435789684290531047833032388103839792714019110583853857212203327908754187058673281466882657350344322001782846352297231137310249551075264905474080943448803147523765426338302671631423278859894097688467833349496784814207081986661125546798513173352048493504755205611479354684159856225438230124081244520206388097546735831153531117780170023428020288063686386865893668148887594190012130542110347706304335184326985670649955611285465831338081568474402529163062857507818219030381771075408959701017717028585671653936154220262831919771459496502714785164318396752255456404489941768448746150807527450975954776666400831497673185044132696281307673375271358707860750241750774069419529886532089941735015176899806356058160121128077159498941072456979795644555940906700761586204890929907501494811579109132887821066270145116198286939647006697838484769892843358850066668401038716156336300684264328935356248862477636684766987124881342529743604632200902146242481568300031962040108714153758122502641746151732245396827730960452934099531181555614378622160402907144291630654661048627860742720034530960909131805581017812572665091958073609129312130479506551064240023337990817010515974916564483530284335728073786178794208977314097750690617315182451769666766680343473261697999106621015241420162442136269060037051830659167319266329274934303917319062889945635754839606019612863189864624767357320379863454172552854476021064246865066050728826522237595784613582012647050637118456057050403570151678729630222885974830357094728666675678789705952058493176088608270426901329249352419540341500819200240529098606288341573047700385116730204921906034923358926112812665352141842857479260564854137771783785297289928373513519069633641550390247979645210270993181336557235139354537953047998343100787652186182138047913754963319110800363146028349500928768279974337610778793035934970299497242233266289091286787994575732350844810250271791662413127439342097157387455562617106241735975513654288201176296576611227502304566451743275235479234581667793094583378607656115263743014547189006551595213049881927639306941272042749815632362248110691573654797837121840706472591241121771267163679474193308373220197852103222103530809722250640958821814193163193024029014025324368376587493423800496490468443330098305442706207510557467494053706630553689710976189953600285714931135811130830685040728023585551623243645326327804719304651477141807920102714984368453807670189311084956128461001154878588972101157715780530042046884449216834656026800164848415776125618265031132465004331757648339187393275574144169764239704422491566179018547017618795789036926371791981307498985411665053222922344846744906128242421418557008963533542720499275316350823951366985596105319544286450703880460094684060822355035491662012380002920366435758669155836563323553300073080478533957811274185246356234681991304222828920227772236556954984487866054902355210452862406129370949785234759080828017702116528054366643504066460545974905731314030596642308794865488542856712000234739779546131772762964669354591910337149397932548668514069942945566824125816193199980492811668804633401903374209740713480137774723390890538415288532841891265071188735917679708165866361528541696119384029817902552134354401910730705647218937951667979019284016691978875408509064502269161625883092900476292281429867155795752272735860863045566988700633185481846952604923905378947606031575136067512971516103131086969061888655526115241512684979812629279497754662233585757407871365596755013898695859191430274518602493776094359083857140516353669132077604797806895759460347432936977828541205174282394397612864977289381921328871478986025363515819353944324709668011136308461791330199399503064644063964434979803202049628587145410854814662257471442194641500944559580358369914276824268068682065593689885071979400473181801286150610094011574210260357845062514435329374828932808536973697325733137758472422024680913718361406732978727219500454775089733307613277450236603821085256986530554070652928399152383085693455386195813440446012275851797232865250211849840108574288305531954828517863522416679174829672765433595781770455228887609343967337171190449509981847159028589699294894239775990589375761929992690790469475761990598654244286700466980371861540917956289272113362063350677655734147108504251807849736082992728581615850500754797286635965255756923844057448025724213293077844094453421120457472816839851501951449214636016491853482209637569274295067987003530830438207685250165262753902397886855827787087188185770031037523065141859455333406108496796949647318287988897023661223750078379045459768528206203433811368334944357563185141080398157398712314919787553965862748198746437644700885616383862906087540734704093949626024893346922037168150628648076793327874551583170939880591679423924387412526001051277773743912758751461265703788100146207296563275144335772062287146594548198305530635786174452740083735154300966711569880214360949676341937767139914676453624930743743672547217699521799303067520056972227933226180325088139500711254645703954958272474939792449976041754838185097501321365776215839370163213545303277647633903039313220252890763957972331456988037911564609163567664168128025024785179378561428815465607225043494537271666769867988504570578598016003726672081300629886772882261677589804720571945564144186440519853412511995238681362482709544640586043069966416445395860620666130758585932344539398403224310966498430157887858853662133899422659051810504429197535155944378058033177631920669584598721229716619341952316356753186985007176261058463954626474606525113498179596740552975209945948181405729017425773842573590037287068049957164019280019900530662645206254040257207223453662294624319275945885104745603799746104845430291167580264999668924281275082987757347574481905096874261437814815679310772736558142311206810185623489278826025119597651923903892506363736416618637109403629582037175560181319586137822605428866349272275158267828797837758160650666500483207719993645740145248512864722084066595755658575498418635085304964875409797636428624349110138782915616853567480935859027534113467591569255320918415140723704657102565960775947845014420926228325561447666549789193478917170897220723989626819858087464301163974714161354646500536251140563688044496885944297645438931829405734934169475124886307527914093324337054588621455486464254899586163121783773298452322222333087073089160737974973804980339237804776469509730736683340465674841712766655741867927045924286602640970670129051546473064474958200561604712257887574596412525263343720775825307491502668856735518636249326391526603759599748614331606063532631166744997926000829590685973916457994881442647196599818318651861256433074457807619686090490126564975819834438047534253094318132504746574452642627723602920630418847183719760738726447839151504008670188916719670366461068830414351316495000897295056292400715922233787837067518403496524618518258464252660616812753548849301007571012029243387310696178529870891647014403370507841752877562739736179507605197431356728054718336393808909252386086270266149126752011085190303704439642962769594526698237970350651357447083947278650459922028290071616327456375449311205937167752758884884651401958819976119387227476693405594160470687701232679853715780991142264437568008159638284494034689078770497341785467623526608430126939058588419314378590291871791068395977456400667975606381006000947305734368254629088045082133255078681205414576877307054789366482006502142767928257511758228137174555051353945282915319418944381859677545199819617727508642400657265886611626075400201224951891744582533769469963887578614832447207903923759153493701522238848932326582658070634800975597233566672794180957074802908377173273851310068491793176130440631150304657340371851834985610494180621584254264440923667203548861814227902319586411250195293424944504959843283008796663408549275296260063492714054636725094637803707853669187099566313187671802789308895392156817145265490476837413984280060816498765077073167810014134298900243469360553091917636394852425336822954578044462367625430273345912868257855233876598102285699084437558083300140370879225869195932371089337577297962326180712105442856262858052055760495562427303547435400726722806816270360515628050987873115572578403961561770188636266062322898101065947998702624934836852593954940795535925762010255328549572134368702724982636781977724475401553616150621574517879065911028451740545190093266541714871126546259293202949188551175915499378738432565786707232307748832805484274850399237634735848814256508926014721373359163465919361646117591675537776037202203594548410028672599128826856764880014284185728707509282627365884631104801365279569886089536867222730539020411455706077583283889352591532253895817305173189027718299981746133611142150182369925702398735600627152614610311580029187932899434423199699717904855266391139915426485980811772259072065196304579994387568306338369363135609202632838075470320165725141237386772309991241099684133293416270808370946521410480104721100359407252670574928900106393707553036870784263072510241032601388133821247928449076000888096108389510241485902324415246088946970713818188378104944441656002335251746500442683379184045534047363321778645282407792194869726243010886355997686339896488689402899498108653489911716104202943444576209941418126197224799439224941859416390581814015188913640738510711948177932589521924440169462736701495900275673679332440800245342812574840887285432505758862888609645477887517746604666449592305473667816267999752495465303189752850597610173527466711795153121039109451050489298294348983474642563606490243561595700815688034771630226285901896578647153044337583207209205483038675915413819835118159661708335135284248739916383486450881809406969943081201260292525416820425571456108106138690135107187443472204881256967335472981918084908277064111689484659616158170480060884667247027961110642480335407034730785302839585134223658095988590573556036987540936468346274458602240891637804160311115397542959312982823325126047305290424003462091808220308518592915911492548323713598910091430887603772349105315321150542815293361277930661711437034070040886304939668800005483255449986194513342672052166488626510449947570292758953172920816826112064518566896571863126626544573252263801468687328130377183377338237908357052495226989420600626872708875295514909184382262039979955498837486667114672957925167415650572903042501320976323798966379744044846577042636709922582985810085729227680923053240224099631150836543238613784405325356214003753894543250333887243835066326392980103421881028521674507434859562627785372201329730506306121041630636237112439559010572864452249164606780717936637614888301663751947800752803980714228213389582906526582148031500050732398011455164200790187488534882715755399893191637778551112890266098768648988222789054169463414244619841443628190437125288869333590097952514789302861424984245265691956957252428560572215807950382128431932668211653255678261583923746564870041959326304104807047742445003002310231246927382018313728361308625102299685371660739235528771357604389920137385641254764749431110182600998355201979770567993022777906630732241025141268743200576264312094208530880698456209290224206867841889185713342976098126900589481959292962993625163768890828707946748158942929649737136812962021064153783376632235504778793017184237764764668855203048399432083869665360811349457636852562378562922802839880849391824473625072392165548928931137414231160887236549197123582540063659894957835963461150449770099986632570350665343978254581428230278108584721294446620415568321358796895420895385286491276528629483981664274249854913985509963309927614493426284869879107428344965261891799280454190047643752470164504397549180441731107784305232779976214218408400691276235715325701011918313288701565532263573063323314893019880723226143971467995191639294785449452751345837099201618074144428717554786954595610549382972722043416924344747877806208477483472038487877226162555916918031234385899890554673061967538918192414456645598888520740967658692263529146529152577571180292117777988335037243839216127473169785354008738637318187497799955339424905079210180924636568790150387201451398200957879046659495041596958347861274980158046601587143250339025976738497281712968601357283702635060082399578790267069070239779669779855084838703615394862988305764325376595064802267225409599879579050748657326390115029786348076335099932818912728728535289038335107877496336212097747265352572626746157426851078999211001888555918126976000356589644652447214294422224078715113655193654309052629741979840251641615662545227224356277432630712700181457871199170434805536707302192843758593109919653311617134812204909558354661735871762627661515130000624567928063396054529826721070485725856513755206851883887750293371120388482476202003606660271853911337849414287211321741633045043056337087092931616906325067720927896552267205420717601778361007247548401331548514851724516825944161734154836563025507125268043286878173210712309644038681051604858695510295726844203709783515337677098116508301598858680020054186998298819187876935429238315959338524070853887691100648702128418109915823606404329556480750032657059931097258547556926793277542767230204063897080971526024100224999371162900624327610969676157751997067548458532143271960239212175309440038074625809168960539127018201098194729573227927735085409737525828809366006451670707027389183311998575759728464284960339511364611210731103856638628716593888403061683991818788224106724266879479698964977351886400378164235475392918161751473152903650956240647393725612219645114139447053146321640014854748212728440822958013738845751305873098852862424976075656780843575101161900198873364809860033334356151507408866032631178877478536229093905652286759347285330693239660659904949238916291675523125738414594153687738664251166092360499059639921733320237287994792600807043475011488120981930683660660057463473185457731563219309472284634291091271492659162905167908066846025396447030445524052347686858867093327388079170515009611203521789886093174953574640751255624678551204702999513476137538623155707967302246657510734109392917891742001062055112335069188238004840462410496585057632290409309402655954630451465489904159175837597373164273741855860076854206982127218527036770934904667231816565987700111888295612754239351280722064367384474003364800552670595111157854379279927148510639710413685742238975962173701732996962161066504280555895317555726845007408336982300759723871624825007881854226768309316771855369341623258576091369286954423974681003576988539995513767570281904984242845058860170668337500414029423093012821941533669901475177837863175286255364216453000477376662218173266688862739189176824218194159391400646078925942641135605324994036540372866090272489384337107875249108128186533498461947913479662116086469532929202043831172672999255695537694205561750549216466450173738179407122032907957497672911305558824272934152082509198909662893898094379760262913621344763663532128179525581535343162472687602565325735581585113946373223625294215605062202605626774402465873609508100523827462202038327485856410097362970756704090791768138837255847337070161329709000814861044823253092933131446717931132284110126004547170000155663429700663995003000139216182028661802578851191130258455108649137539980102186592774274490594532235242878374589789653140682500849029268470119209791350550482481884720520530435680556131750546378382333907535357401229182628334636199646158277435989138254045403853252973217913821795232058804489685847945598368775101215265391483351529688538459913090072517389304379289845064979125516092191721787167734791253637509548644155403857529484741277851238023422134367659360052097106835057032278763335042565143868303294868775113018935901490371842052234366902009585102167367592212597486150570068458759110724986026160351802178684663370742766996062518532648175277227427060050279559536705691128845259646366063868274431369428007154795896845895979825823738686845346312237306379165422849023552474760626967000886191214543001165544327361865743670332437434033399397322798946831711010546987348650491470488641121425778955355033178916076094243726044579819010919642590145144394044509927063461606552069335387795719354405693101313313810516720074201899495521147820869582661171705025000705532957223596440398115628223109363923763423536670550819548289248320354850001823675338860456490419377848279421389100690584720482200559230206279384757671381251696279247091493060455297074878619650063289301595826152420901396726612924040295958398048619528484406961168171012399177285288898480985691077049876450489391917050537753434862684977544075524701631297799370463398259005418148854285520381289675207033217885023327980532721623105686757560075880238047155241001479923290654926658531089609228755032095912046094786527687967027209422705365490142734381072204615485423845013696735394975533291625541570135139659614685736124871996431310637016503589352909282898568371509172368742606301597299816348086260172345637435260276488529951887975180296242600139756423723973117023036350012472959769983277544671348921630247815326614280950505138392375653023396826850396651679686483597245304102692947707027066608490676290596005296584457977962507712212115300390902437230620132655496080170186594740534460520151213626905302428103430880942589333804953357743459936947819585402541653572356580791413523396475364489287939510226709768283832263140533919945035090133253476519293089175090547791617562355779628894238456529018568577407859508276803525291744841262983699369530958728574826341967898077992622365648985503623789504319903755735403309156067791869162709067973168037285170203386959117020567719522225089505072685859012474679208323744876479081337834909074337451320663607003236525517284733857558690310941982112586689915031731972954698865257079012325984250866571474090469897169577464664768379486631008205885613363103215337113117935234012782451148527527650547379378323543317798661785319090772143517459050867464816987255256922698823457450707336070580126242296849720756171462575741082061725266761256346012805948455293906723262717451769431163037422103181105887837538693828856532631284197116999957525123818332736445762597590279355739068127940069365419001873288312720562532749682135892347298694249028321448286179603949622797421125721915089156836262190832238702309099204365324978785998027627197841123981921633887280653711317334536111208971063534146830925475593997772131625721144777671367937981714801997031652481617153947722259716477547093338990944534212035021949961253293327195543702734119874841694919355764314752968954239436769168466616698934151548809072701016854853556621133617563760040153095109725024743095635438520126964554194408051906177729296742964995170731470015667665807156680751050764700009740102657592836926708364062032177784367620128487958654900462525305530925897874904984638734428168983692271418091516785475258524237266866696018620998923821962072487118153122382676368451513026309314471501867381049675819319306508537732906969345681642090886118441244775801752681916978529963064033422410543740043123329332923546149646959064363989004206251154866654813751260884943005959045141646213102472680161443746258985206625315520841204844565481181194813927116840301628584813674082159234954095705733165171401146928464015103250440187768060815676061570189196774132298635961171086698946712759717145832107709552346158745370104301236021396121948773759609826945782092421415712082423211160164120273969489663532559105139011231188870379890051137181475726845021717995891183311029836046359458323375430767665766233841259208194053210840077907985060647964330696165569970139573221323439962206288815430178107314402082118096249292514378626322837563650302698235322099894195676612430978730946470365164514868515537299325120998191286033280487398246117341352298358567321418424343254705910644947200848964252963688491992762918373426927944012636823024044130853819760447645026484855641240899704862426341424493837811730841582805254935046289661720732054613249406413035749570305129522191685700942579698902582737237582285417364109441816046998068440079044728912472490397419777297732718033725251504592392331589548850777193647404366183126419666777119215569206382280888059198645813345339928048377621352825794808435350761202241781728145136053085940729887250479342938074981785843685752468662569869819041506233972766710477160861483768303182408674486188005187478290171430160896483409930338720442942357517822967169441208056820856150415362421281716051965840651053576046357023215725382391788630167677576362510693786030434318047986609106314828900139150781698962179582157495293522819330304646826344102915023277489341462712233668586883558463088561739709511057922977251261048226727036644329814076670056957341068318411434209228537946342562021992096775472010306519078391222687526958073026140361521307658787650622926978132706406409824335155386733431820483983873271651641404409689725004492609797282887551862848507355001814407000189562015564509331072159495146218177904188181022238960818183710980564949304070766048748842212283083974236300898409569781972563709930135499517504676979065451656569685403871612452453949608797265132021920085976648385501346913041384125093792120380092275321141438996102560629627452050643951702406608684772050819278694127318406439044767660656462487898534898391724021919873744243676377964403205424499960349252027669513104290833935899202989851885400671578982754628917355948351972188411993835984967603380166017642374930969962505927473525268752604137776460181000273491531259293808871769185768336358791983658007229584420612178398451901973340072975439994288682001233608642336717597834886406024903009362400463887117288329675049648509311546862652477110970739965482842468414380627497886214680378572478653322847880320286117611108566825912536142533067276699977722466804928096635388545487064158555668760709472349848758098162212336232353862632370555273332712679547313141305735792247434054409786655477900253063184086024779432736439117292892879885941386742485745031829416629533358044484875987293756789900731281407543792890483707125379594250444473461928028379063471732907661864604078356252879870598950943323868581492469990357648376061084308822459339156879209047819052289033903588064917605245125770922888529252803672740152129212379502260073849663444483616805431278113293669863538481731321467111868838171150699776457380651615442730741752698403470089500389228438683536251486277294515292839583198430793203201997447463892237399589183074479890314634571539521130678738382802373074358138720013530785767228084952073154636407422309649413826453541132256662747020650324044588906457635607717211591313436184540187804893514046644866363619760422251664558440761201679945353479002239209194875898243457668334354860812161111774959138183493564696576292033144002091927002606460648334092136079491513464967747906874284610815866433046012442760412805460117839891079549345968700022772411199057085669416942663203289382403037588295511470962587322862369301318242588135360439685081086112074377438241459546403899099414999944001281747744655092046755972791080172451948118799171531281185936233883079379592692166507278764055153512111042808542753947142368875954874769344204874161292448786955924922288245977375770076339078617712845733976353409408145357825539250818357482648109991459506564924492318061881007307540240083236355294191142620311793158975805991905377470680734493523955864435648125291179052641535960661256990990083629240758735844365134984544931793769028332704600874076038477614133149273298159848578974371708666340994984119234285671107728758608531475985770736109294227327301988508280426797560065668813401144695057896459879835534223335986800723350281830100954582244965950610276677735829081922936313864172684532789657706737951472656389829771371451655086836980244892080810301070439129495998575795341302819149536559345527807818697605166857491065794313535633267265899391204945509757617207183764351642294302830032112565368007016012681503956725185835341876790989402025377362517144029040922487982005992870491232013753507409463763872801765548904584838963592533171777401060024538753562743029647947499503877077319186039581865696307284379991707055801021436849820167710765976646406624461318653998494649971940293150575341380743600930273107574442382338050158261566192995210643820345298684885180291997226086763816203222979507733393270906885145073874215601789364203499601821963907340960537726967471477765328903217399600049840957012741433118977400744652007643088081873687222513475135340344644917012937343721899007020180336133638209528907697434682337559262285424241128858104118625501768672112327982517139252928895219337647279661703179121874957305511629227949199893819629699858592483904766412405315639633864312296067382098380301398679296758056603238953874295463191931095512025896725163810493848723620895134579951021381526714813340084940004817400151323230215854591579618990203795088976784364135962452624724226211540071110906532517161241204900642043748608878477118087194890491675254781013204149631307349775812741791753819522513168354941753033965582062745236077972538841254347857114439811922625201926098186574412927103131238388319566507854913307472048421425984886711252008667051916114609353572407906866690880633771389830071017798675383421668834196431933559933514037342593929381100534768256192355297599941287147136229308781096088008583824192755877826241839043693220393640293444974640621200312734270966815640817514575397445123671912834970793360518744302631838385361571663632517477771183385249568977221452450621792208139812698564005690527436738560890823948441437574870804082452496002057743449155195384231887643415244780318718557749436650840397476620593346152167736338646782672713946367532164350233188565847640319703959976724312750467548432070887297734920183082169528163992045878779007431029496765109337012148535843682339655020968838788141845244716514528508000721148136355602920051692883023098608925366213642731004292978270640408051422696663187497009010178729568291854954359518926518888805090767256708777767370135349412314841063189523178154955388931197280170488641374365050259463066641608174369855553194620651456261381016119486240886859080107960055604681989580976066075709136192870895112972342504238969091594624417608639032576611447929823688185331280935335562150291021344350356616261813117503042878756938456654765032489043179165581327914780808390387353970876900966781313427640476669313602634876714674632159352207008164520673573559666629717310172610233758648421163190728905527387740388609594534799420204890602938405295903918430997621174711178806459457351596863369110980050068440908258689308547476098883435620767691631882627545575824344468245399134527871269132644686171980386223430440404462882229102663165730666542795849554454023818054736816597218821688450152212503062021123160057873750162339906211142965737547049551299595477327210301425545414190604214648525781660532162137990706920715420519458378792866518612547583444455624513006020835163147554225433087263825733092385016989135792995176191933926140622087572941645487677261065908979947968595881818593771070525448119317169307166576922868346358162186716488440625276376620808775885659607708773425898947780281051522067616557381447241998990273796613563323097428133448658924828469303705387625005028174425072748541493434520367121099731362299688619153966851035239923348559814195065490798658887210854343925699463418537138987264195893927446015685658789766482045831230327710328481857414651948627928044019899062120519679910994552228131545730600162815848077662190148323933340479470943609241355070353084331865422311617840927152113122570309812930454135598342584299582805224451537722881784259047313727093410863489773490905978369175075068227150319838778384400565107183571179743019036387224690956433140009723700170433348990029321874652758405547294124856600485857289932582570507903914297597241422776261562849293276769624544288000960508171716954723295141632016484605096351483234211934345216329968756674099943405357691806511348541320809967454399382344707175897830267372610212962642435764280140339776415916626747236185276070301095815533279572259176467725982506635419454867604536996545149804648621855387259808342003849983668471407264969219871120911762287373799175373911603052794300686104424578773394188418809400787117597027231379678824302170876099821809783948942115333483422807427074124975832177324702492724614987678454761893137981500091701425249639576980233048127919666597809399150647900536159177529950377455170988386955706812278067763124123879397710497725986823492181112198786594949910537965829323536572623115114357978026677948942763701990144380384304729141843766809663612886973116594625905553984708111872864070718082225198211633897583738308240430354133394602399237219252169035247208418605919829211380264891556686019135800891476602643296704843411982657540768284275007693773372489512485919399931702299367524655997445128135714387592476559277739712022462388972649788974759832063655014892789047620484965592474260427137982131394704583031272031009744120104134540427948333161884825509987251649954025614032804801565157105077648398128330149709912076408024467631355650248444872137197740100204568601905806721633344503946647588487020255218915916487938445825095443318547909265679705245354197112868110562868809863405704647524766817321571751537936453292207530462531522189377993785544193872743093066851298182976627942893614597719009434113894899435664302768921969932619612553037343541134813245188361213361108353724307822334358095689718456042246064639281162987703016594909667381114533776114046675757465718586077807708506146743984121642919358720907130301665746309194587121020262750363430350398456378990435184790036308453131185224511308944975105649140293551336051234183346385472178038240172830359706832468038615056217820177190339628136671539887837013418722712807091202168704871388944801997956550764995968037505050546640012618389127989670620543611578046069874258704355039336755867377811541063251253144759565544660968392237029908551082239905211196655660283595340984041260304663327098602159544160967768126437266029832450787335480212066989146039146410119629861753071661100717031843219038939828278228102624176238396268695124676142775466020830349241528446867033656714739390388963878174595904207756003022900923021263439814743446553948091955431829626235020556359321025331755791913493633736573464759777769410957447694778812932903640917619979655637957555833709414583633308302958881671705285666330168090034260635022272033917425976201016947551122004351134086121518803187039302203202335552834806956833535487910216256528562804261483987186657641085471603964798015051656887045415051827074080776809329368879130070426020349521732815020054783293128578285781173780352857399170505559451877218278500660184392819461880437846048575723153949401706531529488768359441576477005303917456833345786800055659788018938922797974714186994743209900139565717303435626299540436663942583384619883579561486185378315339646772702185296759301732384903504423799796600153183096396610718664306705288675953885399111044583849503650840218009435540028114796617009421703249508711148750572885209533431470112080743518151804186939836648227658138095033237689417843816659027631526756495036472053412777413905729332829704720926807273184771413450800792970874652729413843998829111459696803433253066967235292966851180611494665889539781066346001802688221281307177112596540094499496931695470661170060117216595343897765299833772314891361665487947791392580962929833038192483715020765957056554901444261126817085083872699814563289305511358906469874763672092359681502059767961661948868463420524205717386622177257190268872204245426512083005636039529320336401857304009660187137799745501537184262024796083112268479391312684788984215478127573728568330044440194541239373929854585513251085941675125022333027542791556067643901315671294180306089508663038424866579657453019975359524541860183859347992722760952070124067454954835273089374162756736955857899800878934688569051098025196061554218299265806204339358439270883509555595955411411455392645827055513683049535199775528908444771129476010148286358785595584954707225617432166016063907507946767549455154142121970428861705651666450091909489468793182062449329217249463942141406234564477810599825150212623280872724519479535107974188580648599125617054538673163131800153018788263305603312515491468998624000703746116168418403108736583472427215442801989667531496153280370083879636788471504171417600226698070598816239319563456886584953474028885391047708441940814683669489715478453253393882204676317390853702218742911600047028202807144192703457887684747311909516932558721994315194451722691692548577162246074396471593182084074220519229315490229721944021516427714120428349635075173909019549627896527595526807587625386673392366492249310203250754417836601000459235929388666581400629925487807050977594253577341164913714185266363791722320823360222447624483404911474746847386382219776338211693799451069771215178885406597475776971463539546291839251156698199121502599549522107185214312163186101917556915918164140156326001895048357401256643395424495462690182515575499954287898407386973116979185194085103691747833543989570636738074334325001534659800222007069009110357013612636890052337001566474523579900899875382248339678579733096947448277241785307316654039590508133944439860630401594101078700469696206869420066081611110050125223551868434627333600937611166260055742967343325201563428229067187861553598077905789239684479435446359200864969966268877999682907989825614952741988442446703157626159500883968674059404730560945002912599170132134780895197223297027024793900649309537111516846944290023107827631781919225560565184307059752602528181396975830764056573555790609422869518950787078054408661019872364544089395269497824587444407475496903886836841556568498826934219148053532151802426527088033110831907689276141967747128461058454119595979204414422575901088215957090947826029061407529280065233296144338994660136725937580583436443660420467215342937809503165348352122489191867407083510095383817013377498020562103730063854198441402619308060067136397744476056406963324552755197215028819721104792209416393038450946289236279898136472309797277022585532941657415067869000637361232543464174424572785544430223055522565298682536876616117371244869806749550246340125773094971652945592708485490387492091826549683102569966891945115829867739037407973708031927996134348135537532151349641914279407793582115160745577543330143117803076718921120848190453298389235571315660064804581272315129914556150607877550626583022840260664898564058832752997406514358159953516118490939981369516544300181489891424406524545723067366025630715809185369407384925821335488601980022393835596226411871576548581298991011196682379264682008129692766301699831111098640263838665669170302660634675777874547177456121964181608992572106065296543249141526353648897722619747545807037907508973390162591516761013154092114442317977951191051998661956123664583533924885838148038429173491292045837085790329478076140503658639501606951855775392251075090936090861844236135386720689783663542273236875465344311722104036526965197912975260245775695248307832322963262850738062648881030115513879029591428256202283584488812965240606972701183887391443181049131235234707677212865675522633662122154794599475338627208128809295054356870992071844440938816807775735335891075605473256895492577646965166186147252024352034615332813906234329034973949098904529726879219983558669338142526612491323420679841577234501511669050517963016446358082579502102896034589523137076019517204326453303971832486735878872691699289525134250391881570972953029438093841451620508842558911872045438161879180895402695486084725658645156992811212758193652297110827698357944238214057724956363208549726922000330221244935325991853138664556475809423235074734138435839888864492448032295424362993165981367301446263007079566078645684560373436324196224415753615350517463269619163534552813264060780970727891430628925120170249885865046168986697892240427223261793125095572760337816148923946133154912057878042354702190341126802205476504529895745291584600897972668726603521203516408403937918734193893866908295347514059604014525901745940943140579596295466328204329566915195514458359626188788799093360378198179709935949401072175559809970007957964752435866987445590530488623405948296308791328386638110551201446003806547414439253416578364690239966100390485993400180115615419535210019040770489272474204003361006513066764545371066482905688924419993856006699276435439768683649058535538437382402215997925133613458911150513771619087197566306942040070437637055993881042176211762579140280021666934892526962404364708637884326333005169423538597284560270527431565404609861106038645497777252565509014237352681691765392086046922516742996435062316361628076663041900258965888953644994826300143426267732028639388905712043003013403313519876073675796737123516165094153792404332726360814635842889977589058527058862582096854544189030281405669915076017931116802848777698159576078217507518198231070675992596455258658882459891392644465889993509486031668237365146199040026894627480461815142266883132806474145208201542589345903974943673248468359972832216683750368074816074687278673995026600568662608572658482348188811554728801022955874440519786704203260850077760076529383176466703040184382840931945513537884691949010928094646277191650911550158355500032503023665417428244999622557727271710602143193064901941825513475147878203711543949641447392248530495513975491090990941812604534949815903230332743902241699350884948970351662876258114955588185988516733844772788248966438565117333640752084334507869423601382618696438912997070333949890267218598892313414512099858088892179539794600981201035862793526164805206088487719551474604010751548656055517116993321837870504434453864055414905229395975735070760353973372383076610167764232395594924400418989293114834010660012689896997165481299369495117057089935458615255329952447826561393133822683340194083536311305924008828948225715457264532953181410243415453055516364665966169156656729943987488262208092263850072551469045464887963172219594486613913000075530291682015763299051728014226291536484512557382815767617485593997533725424037834738148902902668347374708224778104292929360869171945130222082957210647663970149963886773718271681973123862690963032174012148442003976531870549286957584760052145888892498421572912799157982783476271606231842444435858981210446776099220385412132831579196382155421658859424571714851613276490667769144789784306024094909851275765550365678891763056474221488968932100522642475973081479021865917234634951662079124993834206430887542371384442978359902160553992711013754650899927937278201116459845659722472614259812554517907454588739139292181840012172607434490013308271173568266909986394528034429201744552957172733020917174400207084334850652955752015343075428813946979883454490506369145809823934901203514489724380962179024322349801441194294779381013821431058421197550880941968378887015374202845720607919642972013255661898000911464752381878523787517800125774063070367017031617507483123014444877043805572453111899395237569552164938095829491912986005658140629082615847383928965169147535044553438258832500071848136071643319282607499797916447451224917926353189896754910437627704917331745371624560723186584258910311735410833035199503847443689628903750976364306194830028308006463527603676339026115577590010343948883376968513007924488181186897577825828711027393285411904526410434968213102854207478128129448980040283982962355849728827265471489273588777647942428413803718276051898295373833757485947528816010810326852943665604357614911827993293775648740148052270965859563699538828432941638549985761840887832556348473387180894251181858941268762203768091934475027101433290540183923196263121061918356873186379655158454372217543228648364271252117527902515059903282073198666276418383529761309443054434699905629760499833257424918763312828632678807581053876962842780948839004887776333847223554539410679630168177443821930835243031471520607602405052906068133504024201105045515062913997664507398076972429417034327335093542372117266822217270202238251666225355774939505232998634759154057486913905604813473336953029784087648091337226004693178158725791361673055287426036584438260626205320332255041558088473603459870713671117746744702879143738021766147533919406731266191420074562283556307656682623452446467113486339171685748635945469095116794079307162886388825000362193950304544058843537955351766480321358001792938935290978174396537917328202581615405067940225957034705684868742748281045015572801268456818547926374788191842536671305330120270882059343779092298468943093107805757720308843631484578742698834911092997045748325011182600447002581533324093468590714956532098666413408797849116708672578219813157795821113500837114017465873997046271400444850152348260644243222712261377222076239739206949349108990367820342338131420414966021075330292505410878833049293632619715588302839028730651238179789650891237596047657495105683570361528081323332295164508184780218873429660760163440242383950034071324196358454419638650022807577713322275451675341661514861931688453231768378213474224191818664667056831069510112716635687522762805748898172382603230979048808030937280594892321148980793030120675349997179933686447289241953375802623977473155449465688460080699082087707499560946772496055910125655325502879987998203944007366153109636135113190918725108092800466970727665222370149778598929804650324310299797914719355788128890612250550097244861269743399576530010094008323668475776132465496761158775837640861481394380182601251422464236272142994620627232823228505913218680029481323148518064229922720731587847524825105441731622393477390562116542507828845347689822474198088438671072014548225147265921394324220635351450584701681835822421993882271585970647047363093632972555256694493799443044224339429041045342953919862200497757497569226122014071748014466517493319028393945462194675961970408315433946541682807604753157993437539364518717481870382253723593170804796260784137605508607921743011103674640589552870041082161321500165597610533165698740790053350201612146941103925396413489370265625498641743253780913801757501735577441681283794623724223266902861700605247982684910913970779734460994358021654747932943571392013815625919492609433838947647536734993999359182247311773433373920270409179779280874877569314768919448620383733999994152828814309873029992412480077800547780055571467917217977110609781651223330899196314167475152213965241625480352025374640607920993252846506530408688007430649259942805795863151145979046214136279282194891787278256821102021163741697387147812005781802146792958293495931325723227787517096274536452595140350431421195949477279491381223994174306963931966092325441527463905477523884319484446236758548253362973618485494451844303954449740001745167502442259514693335703949399804304356936239199945148773933996186948233989157073539811912092347373209170513000308883762802809835390089055283453887610062787045399630995757545901517765290116960366831538531173493785819898071040392823226848637045803909660003950562638755983265234961226046805210286704421238424649502383029498748721310250005678525476436491393306180832125273851354010089090292463360584245812230475310698017321625179026122901398025767350455025720968684059171062068463755659213029734263498358752451737385258901694167195689093082082687090204245669658828914888662370198675553251149609858210903312384036997755136163996044994487694434513227385681025025470530066925610238876503644490938981950805813199522008925644312705306225587173889762814834752287164279122760445021467743318039326385408063769309575409297032068199380482249574947046791744180242478488056982312628700069389240524865175019126441034522139500054076965224463049832004217968212084663442381412256212533448613380658951654292398783255003935868934694765348454959749125227519965154048437625791532812510144783622424706261695875397617911150327231490635840254949253362041362260033553049851201388360785176304274432523939161108777144267402797233671246204145833117778553956926670178644426947871688262601406491010760533657510406505911149016734434975556266470313153635588616397627566196650800914568458317533352140612073618433195159641519138351160346591496356465865888768200452603828623253467705004240253854922976836286369313047224745343373216152861035549879285345607832989636089338748627194944011829741128682355776166711538225525751048572548549077724416634290551022246411251176412932320004903424322151552882155298301293328255541533872717756076457487913909859199419039497421081389654983286196200644263723490738848009478034285165322377444813988332431425019413478074177227146542449532346992310322659956521092061472019035756319742036581553675749151651351625678560545573037925748248332102849677198118782865839506552701177915482914058108333316937474940586717680374468151609947059735613311406754550903843659365106809391937700658607166332724567036150517072754985574305144283155007180983688061041825424637780525591211698024953677044741977098902005051250688646481537707709484966954661117643819977442999980378245410411788892003903519091570167073483145902540100429638281728855021804891763083649398005835541378787783338133999577764803945917517341392851464469742516022615262336701977523413719160124357792009763332752217891131672330966905614506890834292662457958251916115392834434098657846586463920756909426891888907518491483014425696403876967855034527885008787521112119551365459942232218062522413170402468389173347725340565247716702286685601160107950485212017559969374771760197298514369226697628881269745393435178629410752121755502653201943756440977487726403793811157827647395451647916288777649460653137349006004348714544217624976624376973698027057294519087309129664254080125216421231730272553454793972163622591231028944216999609660307132629954920301564122822365191074146150575255838701471039039452580520375363444629354638805129215883923917004903963084152649165186648190842856387193070244617845612222089367300036831286196077704149104861006046644796599369428174385522235240765348748344453940214657449426870386624935303868998590508683270491946214359402555277277824130753700667171988588665682184336924696938437362460976185257221807048799915732687195924929517464477686749934367619518112425688907105954650076460715879469093818831914740352099619601949778362203421820761334245524741044658937132629802319884908718958989384630587995465810933621724029190438812097590798046788262485674805365253767079217034915316781244822313727661439768101779936126889621876038903585952636636057613535991485667923195256699664406820489269137347092297871441634545457314124415991718687233428151109629721511545608990296215322040664512594564580796625132776083750398974766087640148343315933768408974666063643308736270639301382661039568288738027640716085910875082107902110729065019507733244919718152656567544097549687072481702034695065037522998511634076473740345239163410602789812479126631364283602857003744019113317040112999746199740053434026454880818523981624296075877376614600300044129832542510197732588096953415933967220389574478468446011901019545369068939829748295403192138165952610393006121556603064469333117945002747274367792147928049880657907021654813774491649348341421984270859576017321246396076412886100526644143843771144416870342910535215845801896373233241064269743825689803566505525380258952865641182305850283520253758740484465975889164879270918263534678647635437301073033245916796566195525298696247625941869750971991259797448762564961701194768692226845774639604140957217223638071775841635945769725042405339378827234567601031843270554964947205111285918925642685020948278357321108970048404640869317592815814705032061557691911049400070375321902580705335656579653881285352320770247754329356643243194306221461062164143392061141711359297588399161992787010646570378278609943218734046926080604489588109231422971204129597675502155427935314425208752379426620275043963884512205296700821696804929690607255324174486681503481247180032210906615666414635214844034132879974774338126657000381379009172692775829138860319634451066756650301634004652773233456101565975174680212901348891413269969102946944795891454840376709310406240300020498257097360442838691896415834066674937768357552865763083422932996053271159906108042353574924682857166863009994775302332832406951033814975262394851705734997779106448727099554620374718722749921724440181928657316741123289275810996523096316120336472018382310712006823675168262027696536510473186787746566410867057956354815535194008287171515977112727360482150295485099683807489669321561021160570504548110222750203715177573527684223291277586395677718978803209005753637861196950066803174036807210204665685052792651236591133216361747620976900734924685244069502379461961118633680270601020961169365035711080016946775609748256494669654382068260092263969485165275781788538789379959924550416799007351835990932455229546076035174999005597013257615954657603476578201223939098444625631985529503764822660311634109407212124204041545823383210133674498634297835200530716686829806094309772328942896375683818945491911443018029605193562679616759910129344454950567069270222805548455811547203600760924770962833246110471875162819896170331573708791024926620006961399539537208187091875149143473718076506244745145072397559394823741176381501193425170827955380864589730611439746424562065075544441598088729624843670817687688639356831480320556156594135464394918925277903776260740257720974475076161595449451965261436089457345732281757867457630092237571179889716418887220983678590430641759410240581087497275695409493675565374972875103908036393482623464209504888937963688758925256765831770089226958591401993732667185656291842861364359371811929501883824682686220119552957454472850224379808565833973436990361772990893056850509766521956834578405010623144373435805597855303379920018910445861326362694096793511734701044262419514911585670820249161923913229571388462860125004130474768574785233832948672088487124618436235067033629896664619594152193205525300559051305460941356822347064889760296305276182237848916765775927855541207690657230717943633180142440775591345895006223077064355531056657793274195710660452727338836344964907987678015835172644317201695276341158316841766898780771705257555860646733550322301563317158920255104124397730187437192643679979268579863426833725441237166785212880529179002787377744679375925302118755469777973730077763837422123480241223943171947178246775319665651571490668861772140766465373146906299850134035467872604520490098808758678651165291384765698707569086397110273045116975788097996953586681923794939864479361858785412107334895531621055628338995240697390539766398701803206872745352001708653430611430002604427508029894830350348560569565322201444890504454405293244495896848497477199059099831375961531379906235161569161027160467443951849048070817502803031313775359502773478256326868444693933786792157564115153725718908797876792227981052538122873677012007240258157682332702218442086945314182390204428634957214459507730738719667102665077782654624023371501743740453619515464243353138755052503530875341777379553806938604973639901761545968612730706674354166097630590871775224996399721527724004122038546190554544248904853541604773703624487333148477608189122752724329789230408384696176953384721596814347495342136512207651134279747436348236429934471385062141508110525699569355423138637887698463792016064870357518995231631289330655454036315212933131540476986720799119465421922523905994463227207413812412413239458121577015204267758323381387562634798067410197833232343825248566478518427988274017305940578129546139296632753896570403103199805905577620065715078400465535443754223768622723599135617739151834278120535582082921432695277887487274745877311177442108722655441539098195165909085111456314278516178419610521019686496770106151922625685608752440475745994741374091033160835051699557334955326046805865049681876818391857199660784158647923170816561765907568228628379900378115777328550461973418685531746230435416742484967053906277381628022480297649847582910809166516445495125328406413625731975939136798302555064705811982620274048101126192456469102908862804860278880039887772188397414173870423444428572279693476505924150987508241103028511199640488881816793049167330358471969316635428322642835167919197362760162835847318244965810392143813008736097051960878966625204283971084478980137859713309805144220632580199281953573391802137548449237072956800588024146394955443448094701747297133809688027057702604673232783295700544387945595358466239969629114270314310666240792145091477429743234024676208783223284130314902167650590092396947358636326693033517167685918860925930088685830731006394525384761637682083510849327969829836200931858259617276291214733813988141768851327126544441230247331911842792746795542751291228194763351003619265769989727508193972956970638162246633449969331342300888329385785076194106342717075682614984974612763561010787647956800592488576656305966190329261793526214508520802717437596675286676838906448585369250187896477910349680417380283632895136406061266005350791860310104387536333220682990260319405063862236215974204610968670519389695308284234397368879394589362974962534276262948841225290777779824546502664172145760667740280536612259756813629611511449343813424201028651788892582060521787175766835580503893854812136859582861537815881071965847237387892375585129664242376531953079360062800703265832316545610515814686197405295490785351439946239004974247495937349793912176004047317045442332685865682558412151552927511282769595092978512553375311899277528438671422983143988546965933523422412583689047125984095306974250257467744895766925223470111506968889875077555884873442924422165537813270461886855136361010541149905403438743549856999503904121977154557892506274184940733252186307327767303991922421055604145922528520157939752020866342925850678695912305309480152944044733463788775653792914249821023471579851020333017053809787327648701102545960149778277436783369049682432117103593830552503236955557463495118607092531228229297701530556990848503012165336839228962454119326302545300618590004708763677321667889103194226516922464406187636689993212203814151466643408627499611125181490761884608985807290217116891598219425371096414838345257151940098198144416461767092844362152275461445637019556888800190353534480732757578897853443613611959342735912830168001623432019196262281526957133202356990205672280570161360765157317225730134264457877858510311904808748713380980252139391647221562950526881628169563535023561550684765194925525745131459689853580401164700055767415329475124294559182928962389904387671904749597533229090840913199443432798709664560529294454313050858097825632156104656480053650793754174648856015909439821601178932328558433798988656013469058542640622403867253036942329563459873672190049462889075876331533212178297654713914369082387400174122413224638414592800489434779332209611589367367456517281570402801111552508648959322489153983052617658207535372175183265543546384221869406538430003887793692152538564822165812261093003732159144820477165788486774685576901918579088464260550065645469037243364063013564392431919096850928511268799382672768472702918323331633345830844314500152460089290552762944656734761302150161232225660693803925067931459648716549313242274311573681468768840780176797862721527916026799009956319694435779177031087404980488928420032926636727652464416916342812434501798480704008733784819052979547617552508155965915542440959191373869186576317378073010817219791206768298402327632563524967239685315585031129827765841577041532298773917846451368616615864365476343357436260808626491020827321651035884320329001117414561047494791693703532451230354601716725225065183148512134248989028842040384199245467756185200966636468367096251570585956844294636358093005107292698246705468902651767720450091479903954654197939989122163934529801065356371004561874346370756077520163804965800398680436435401937198663598539756191135299815574846485305777590354187723381407433219830191136638204883018680915803610915769128428584060136609414398102185621207566814808523999136619383234534184981178094251580762111819744743897809399453265915916606740007231205204856885077551764732446140825350774128614109825574681116383818070926513189577471557977536602691808935462553107556199155765486395343943567175402868354435504673053936946400970133761547508914287419741798309761257228116308546338305523126163470976189633175791431787305152855161677673885339183685544944135955053650784866372473172198287443748886030659872413183878390600565222668013165692544385387534550084713277974455506876194095766708901629976176233182762982557717762709890918451104928043587025876844819729308270815352640277511964563467396566066893360428278131050290897193246969541852897471912237967335200859209812078491106315279014737256603321721733643433434026101281072760357727138207888206509433814163107582697825210013980537959147892743144684676190246957022439385297216105985112605026226169818336297212895085771913862430314818559469061063781120317314105994947952076065877654342978175707603599718502191294522521829676689097818302950255766277163984909110754272691177521599197675909498359513487591861847426384492538327187524723108630682534873430535199392945048263690329028870554543041383504295656801973529696217563450648477283491705938220829940141988351154953732401033297609665871718888178658131306881308996320439448471425603665631812741282209254175008672211409943542135488584442780502296589818627142145355940793154231422541045015029900231446820182908833318788404624333330360280453664322190474719092963166957463593822754337089707246380174684469098141078276726879424315510943446448571220887806246856792451205618408873008347401487856285864544895418322254779372945217822837655125525293048298493547706532884783558192139844636359260565029041785019928095459307400705142777273660438027532454731782170950429751376744836691191233250106456756202949395092353886454964186793459737964839817656090598437884041869770943324182181220147797844830813708443429366476366366602893646887438773665193584436953914914325599613596771180076123682491311871067874415030597097479344533308701186199018261387135109515998705767215292599494986939648705689141617644621573595578353650209743419930697431931946671008424018723907310534319850958919210410451613528696049352665420129622228801321304209712433762099470387141761397528944912772060831799113838921085119069524598355920916522391425739012642312429169107839596910071465482452456156470922110737372919956576665050891814581351614217299423470051904675886761455372708894507429972496075049298854710179599206329162756382928160247283651873122974716934591470367365149505231822577978493564082720966928436607859936432315993985427421837447174236039951545404960029264125359316619341938288446674383496649213692529799865472726441731536966490652474975662997051762131550101448893447269025019396784427529235109997226382427700144754303117249312902287009500395449823978548153968270422126068123427544344146456189261566814565014805520220096301796107400992046085259072101253567101660134198687530932807828517648497676342769225061312796459271082971639771988143721672854639060577190804544011229162271965577650862933757408879732937377501993659583710331969468765227720466593480856541459774216687854901067069872296745271058117750502713164236823091775279310803008282166114206051768371630757077570755524449594286957985086080830433527898225766744746355653204275080714288112372440192786403040960780625130971162387153584020735642144131770987945592432424530876837640455846211033809020844467569793106730134770560718977917893321465164855636663053053223247818014118274377984172942171955460327194512258716363035753000492427916971531683665362440200130500133927407199605618812097845041585887358148707097638844310206675317670541628288660125536143000130741613463719801757641935880891984098758146933189757774793473554083463702783556810589466286436184793893342890845165730185286538633441000772861013359052982543641463298331882101277851367738005165035464899133320701971871490074554099224670481381795463908565353637246451146022382728786590640897642258698914450996524826010066795918273413135507039744248078629660293202418846710362412176331508557657825596864625480765100829732468660000667316448081950872995699053835197874502269294749563393751731584469842723346833863452707202516247075085693003222549414671963359492665358967351358312762753048344829528796898172596286741526883233368542742251823349869325611363469518757598394660665152214331964400387316952495228733703958462800409756565738666065961114795240859898915248216815098173633380632577250356214170165516240229896655321050675439834294077955237598853120652078294589426096230514771077281053261573085537952480990312131272562632632375191809427637211578375813342540196344530266054020781529594588476000340781584023378988432645594633266691898372769622544963306303200479593990295275579846248358570012570455275571512704741606135560080303634941774995325652636479612351390407182511579160196395852224799281515138829914469410880321771065525956298197180563158941018520186492653250184504769363567789557901139159458545764110292869636062476497661303988431634128579116139639745845803485463809257081103227098781639952125934801130957092993452295250133209166306877715640574037859509310761456893810978803669894567283213617732666198818014997301785206345710527341890580591699239972382051840895881280493222929095846860588198712011257731146806907561525740118652817628697361643102298554386236817250906900425247523630580851312140976903995587772667981199606222686054227488920002946720617130435008821505587419758809221296177287056636344855856657605678775480714628248253259636439284886713755823727609789622148170347928711165087642626334956286913307925600146547761149584159358215868448310789332545035973412716035086183980653434193796903264937379351373473276783888582879068940562885104405064832169684278312727946716963741019395937721931884236596152729172028292126533305917235527978541355749110002065098293464706057601820442568694532670171065967507823436046362670632264541611226049625951551471764490768799963149722148731811622768039925757543506709747199261319986199812494120558836377945424836588208242925906206263357682069212790144187415852425173771659494910004185685810124997645877097807325725964233332442747952226438703649323905166436422086928308963453701190607550320981793236456655591266325207561355588556165790233868781448124096426875115115131783797108908279188069079287582871349768433367354063791774439529725132152544689858786233947467836083748658286447610796678700551972304519983764407819232750202112474797668587258613807549618417848206258725208488313939287090065811210941897370810994282174506207394181355129937659722613306346060876917262408061704455390918440328425915194265192187769875871998598263399486727330842740538889934796169983138416363658024202046453157998766515258142112636536980170553024655908490518937076071509416360473631003018413984402426144466042428530412765604637392904250826171704437090937567620942957016668347993808015590355454933081602061118370955613603384132762114089354799034531600871202538376554883147863389319079356014658365314583593901233961651797923946531714611634824025179780606872773190659703116965475286903407506495723649820155306277370365981733381606934031182490817002013356322875457396046031740163128673573822759842713502647656528115265016609516589604626623485458821550773330243846169696643640243465463530149166566429968842576467591813507987351651460392177582266878318854604989308211005378393910457786644846510228706156928464774604787877474420208948859630482254538457195865848031919580529056307414580867608384230518592564849271976351256120545803273275676316532287027385395165457936296590914087769272830716130175245636178296989190743626095493417525437934570550690974883060028255147097277842540981479673767424534323529358203678606149406386921727211455124439782412406750755882594493811063725550636875535736311569858605074722854196670738542850505649256917805203947145582724721765201569078414304376728513253189977516921469222610743343070467095372536274491004405090658618871749705674244700044377720629561324063361968352176089185663840856517308660222041369416047995546673896397815402186940835105482482129502956410372734994275649533292973658676168652853491076921276782357299183384595470244322902160080979538750658528593067773751257965019491239236107482539880687758367307814794156714823536714572334561268798076341093666110732792347752675916651075017126981357250804541613440073666153634575965198913272820203842641119429576276516737666511220087015679861472220014995475642939849629413263284674464236996353427929747761278814210808377749250439627709298333433475934883731614995703697689861245699962757809449879260088976011275107438584072630930574364333671904935171419072861689495132927880377527628034663839770432602098658794087126709460269706458084226939315281656088440629556918938205823857424366867535420230780703808159880455805584054709953845434984796267178016473651073074588707450108435275394116513595454518404574816380935344106472307832246410572110402608939807060889427758990741305520136098677695370076097621201445242124534769811473796755068101272492864910523528143263354359339401768708175968373568959649239953272114338761717049273091546028913070239961820247022448338730276522810944128077553999760881470220705673214875663209727262332842387724114240634862669284790397633792074005379794573643751124011325039844577504260621936211370761657217182080398464541362327046588104091111995014129832494238354143746720957003551631040814936500949151240135321999117321923163319047814422882691947989971654854265115017817055962342923420425658470829276042292380376429684277339658763692115584017879901554207355870046264512287226466797981217671954602284569374917717461162112899184206157368632001732280058762911214004421876410386514942106231614093625272189914397825848532831031310533012509058618411010374285116184793624273664005603478055947565859431172941082891203018052168439156324749018883382565675693503402580369058486024415276336420563316053746261333607527607268385750343369632868584256815061890826108892028075612418206279531133193014437499553991789334424911224544014377621627429763672964254961016588572143912748717779719550979247160068328223151461538391754250269679640445296746718315076286688676610277908716156535943765763726071138328696661014138745301732789307029742197195131628539305681708759561605362833512985051922542842162503004206807762958073442590545422231046020995588673027970316580474205104924282541219003350014875634308536833971814121018353010269529648199119810760748266993565777267200878005331329024726871426026075570126081904185880737132907220596915256050564763072977760864336926727710757186884379716664041691501783584897369866056826330881404896210866096864902792730503941969176210065757718836854708456928040766279358688146303588126731786539811549957196480801939266479721237259313735963746093683963388404856898070909416198835911629304875621581625096020823485127922973327460868557482871744029521838107399219325860902461634906208208795571250981488002027194768061078274147534101975063408662775837912558786928589398292375422874437671161894453291159676204348602099495946387707099118233552159245048941702828480181416159267322943048281621096846604146709149060850020866888762250868103660002084685809952673285350573730189358701253423475981976703951442032162480321572955279672391047787743531508758109820804193953046817924452071428342681192879858464143441838441286177031387044795262121050644156884009570187513241712076477668621205751936016303194896087149484411153839975324948444700251494861017046451917982396838327114875083870527090052002679173206335025787157168649437068573974134775618529938776493132964707532098502270674905446150925924809968867145697215260247837958927794827678118122950667777739769252081147069852103814679060551239506277578044654845489023609592823217517237810466674103411611550206540114183491334665029110497285572796323969681174833528762139644546790898713245232761713028652013264176875336810955533940309524921928882608415170433428436976926258996993181215080446488787899327478933916088687990162633862096892332311003905384435751357503482212243910293478315076210690219000093474192409475934005656083725865690007298463883129826844393717529328314191402030019978404957844193147882205942314658431976436333898888680700850895442475539344729793897841494959100307458677373930929120499971676534864013926217664146383258707742013754712806648735132592529534242685688051151076513333654467126564714383894959538169230543785102768905318441077561442995825581925202372178310977581568215563335079904364078887011242809171308743327949621351379620177871526651981014072272956327933761630260577180730912262150761446621197920645089325440726968978791702658679944565982369482464264339322396678545153894771252007557862435177586898342699500489168700431709680493309059169434956393251547319643267411992551510164798073283388999702911597271195528422712584677538312058710543792041418902730102481457880165563686656115856243351501375649922312645173233442345256947177426683717010797905690723582611659892413398681269656950404074902084530794142815024688523257024073950362674787904218031531540342417667023640424535482769650235678849518231336524944422812697593313527072906767976098066392890385703139791196090261629850936351481328885857526968942011634730958969024102527072129712070219555335722201441216461736368614994482396750784296597517235547413493972008687080935334614746405585226898736840388128412400788646127603124817615907590394088576376315353640658349601783389101442975269333711858286152886410122256955387518750610154480402969187285169378692153506849922099823033330966245969464093949192589335935748072270900568577227262877444462329063741942324711216877304868493303252674812686699672655858581218058712411945172000567024809948142949936008643014606539419971937389068624123763691905604399128421643580033751802786966421951312003531351100420830105590900678439275748098048530647406636199143903363842661828744723710598088236916162508050817670479558002308976484477514102495812957719056576139841658369784132986629966551956620083204406499731473714836355467939409905906844217980981535368997514572333733198117309757214321672425088400017473597232769891918911335205272888138280890629081490107762544597493292576315522313932420522380536622129849668373084829037208782996427121011905096020894982355163348321506945801218780191295534828517148739331512297130813910357726717920825771068025215402913934355913417174008314468543800101221113592959378326393311413277905785382742093518295920430782396234524489562795768363058806623918513729334562496160238866207852898796944030069641699622709003361295304071882608803757548386685349388029806964900875609326491089366422713963601110620580309641489152816111405097870554182157048030988112828286874272780711300063355505084070606181966789646609728641423196350164619711565313906957935288114446476498549756372190536217983826814400485851804573151820094616955287207957601829808010411972150441934924741102243413327668343320670121342603090897760488354572774672400741380732953157010557032363507706178332696579307781722695930776497841609155452312536769987102909202790637254794637231289225648025938858093621200736374131183743593287722374376902736029996553103098682988530679053849290790804193654886500081507320091093103794182844007911911963208489839544060316200856227183060870040256956052498091559885246724184961270175585577843077033207710569390921114473010989565994003296175071214627096626046092814175431739609914825916625330784539804151636000198895644249640372283094351837826354044703411576847486801311491892754331947373317114782725806792955181171993311212361521239625392128600764175071124653464540680246678765457637206586982609457940841909835237522692627888110469303559558645207616513468926568437070278003930629719681134547917207360540872445026018099667825824354096472557890420674196048113931028239470624345243062107110835298830704930610970233915589401004435726392972404695405042348742527721144947011483270136070183313984868188794224167881249881370285431986918958881645533613718708648278333476016157100742781254120884934454418376556288655858716311092087733618240271884463577425469382290804871235979840099802180955570338374293794636902633733250748174625323072103012580776571658070082264554356349972588383425795418968155725274396449734596883890514166259242107190027668373284201149285676234571982974272708469267837281046891244300455574018867888061903988060609767886383675732654049496763206045711069275895359680471145403302138003278889417277540791218728710839707540429668117407549281685404687650532261318289720796919436178625392651658431565154015361693938845715379819251752563264942716019239256531825717966191835089810462098288985192261075233742981615992400773389790921885131861482295324128348230538025576903137348754480149679506142219374861565947933953548124340389963936350349820437443141605684916106496151016258373796489440737187975283941504114774242831678171606774855904421767612930494656890419733174746461148990875312023756549165745068884885762071385699967982628558840195556858703960266249685714452669608747686781548351679881879153246460832547843797673334720270317842481561086482246702389683728949706797464987799103715511514116524253181738769629846429207398266293162659987864425599996608204360882593252626169224878861192088567113049469056166900266891573652539927786697772839934095250769350923313470168826746505350450371359915067914654746270654088612284854956479589342354045565255548447967002887611832965910977533485257191912880341954610647997700397465013299603593857688271243832193359967554353685815699840360940924295519261006027457430741530669717348788409109925090376258530037154327710503152599623063545882203729230678922552852226281394066976951883177730309344470854359425124843935320688807423316050025696817614848079122613775843500322807266500842376364387419133209184869096420621871238492002004415983770489296122768050432988360764721310133492840877744765983260961629332798017467545527911260250928530397953880366474097388249257536859230635748462171723224692746150457121279566127212297848075119635489341592622460491216100982939705216194131881494255413750253070112969520922549261104649271564947592504727090594379737913496664751253678705791818091763171934279337790043201310152720025274985497941746641268161481648561616340845213561592809114400001489578135234971033670860984045022047707422428411752216776839767122008840437497548689197374953755715104430680571654099918218786283687239807005100160963041854041514829829463501086900317834608235761563203041446458860760222794688108717751414786015845091557975400736294173418537036650591903277516588024879253997683172363392299868941044252323033411376910875933766262330527297358486525197826021848231644783007821186257500045162696195730084037414895859180235040139695515977262474175085016909080160839661045298335209240049938408743276682272194504235290659110022673725590983535142464315982179949864669239174048461860327221674003811809024056441337184774777507033331647014727202090684607283231753061055296896298694482427941996376921074363484138838974958740814515526007083902491416520887465346294303610558540552813966719556355834462593544506050789001467806787861918965739558307740679016889784524032563172444568671595103260490650574460438209724517288945047149331480152202831234678932839608882859624594774499292718712234518959320735333799130046261391475894311965737648078303819594647668729135018359047633661443845260134091226693982584119030587151764830247709022177360436905735512580039453948191977532501377667676658358464826081558989792658726031860193727868287207710309814554277607028173868533456185490855287980019182003006897995932290285374268613438129349475442013613810144670585664119076828895720974036088628232767230134507811870062496443939193319429007565286216126363749963529388946044628562311401088737215866277102173172567853930366036518269478244744964175469108884031929363264847033089462066327721850098623593057664370467437716435983770061241161079539400343153770850115107605276286159727302975041186340861906942187697041579283757680416292672885496748860257912348971231820121636093027077812682040198737138458847464835352836036702918997567134865150575656347409301431328362355943231904990612915777411066198772009918683466684841386465379252021512522151286704941648336712741598921670968754936402904892686293905770153414945478531583112650226928130049569032818165413244192652131215582065346902793025520614566329468105791864301982134284188600890959570713472133756228828640633693502356463630070459916702634975759391504144135655314817763134915465846716991769056582238590732012716243194477154190769033430744715917750062520254200814998874575193109599325863419082421867892133854565645976916469736561882399109995148103529426443897736430433712511942158707069309397362408411614842622527929927597889688476581842946120362673110623961289701854997703426701015621412206544498525707871191679631282008282037850174021134609683655680386556756782518362602618603929214856114958530226530310619816578845529995387877494157297999622280198888113642403437727473495933465199852598330978484560666226598367618218465355118136089496334202052994187602314579332576341984623378825811698821198621164987933441542381499083069054898164089124143832688403041804415773944819056067473270874951371520457928653000144039885177738990347910273970385238871438422156318062032158432015471900125383058468581642256777543688110770639861271686765208356345792373466099763291065853525366899956459251634997596451729998282962199382864274167258955865819771076960145983500985724169974150412463491776464424360841536454342985086848623818823881164484122154830651498961019850907116612134190313233113258864754904169836988272561554845849360937718377434836140558199211559317366436803498121376106623254825431665208534209328596610114861622671522538685542106991952191154531296375902559027163255915167376747761030794264919880287588262687957136138488555466578508908601235778187426103278642459986555015873535461328485647393751077822994815511395111268350836346711578285642600690611922524399976060959134410457256261388664637298974273472274187226316924338864918347961887576044345119725427912309346014155593842048674218355199168066397874520912187152818573694017400031833204160762882392929534150466239316587615813465406371709581010786038381368888987627071057812602625667423035447763218344143289760138467567579356360008515515727752609447334069038313388614779955006079875668733708201851596358193410239445289535827099032673477442248126267297810402591985189418207341196776118842197057952886363440828971360321674874570583233793790052989192160858159151089693164709290224378126896648434254248742006652310673347958492137962258824538141656349820754134910467157547052178328785285102861695034507581452949328398957022229883217815137268404123688511722106778846343281435332362904272491516166460474032630078467555228587457180874773199587330319888221062879306602937899269079792040716422415939899174654271928294859670571563954686686450863569728472273960317563311452403699898180877111376155145291321051474518382720084429292635400759444422473447838183480802416367151275938978282683313510528964703029062573005728085523806120135397374237042226731167223265886065150502005904371343663376284362682887398217539171741041276361765534989989839625836503677488143718897954255387754015603304394574811918327258971121416961855669615085265149467374452391650570552212781507567915919707024813831887951820312629348955005848235489751678183746553461601624733904083185245455951278003732277576340855095239501298489605367680084427651970558052512319446508800595493589611313817461658029461451689708958644053370301359981741389567843180821649435236154113396402599471758287004080716699455849071296683964333751914362814601972010656928265303514875719628281998728833475048532634045926416836602944084924476196278111454944805940948941819416243499755665493042976639043559116806079753320472760461893046159801829404859273154120810654188878772471724733239773233814304665735194109078137970860398329639170367074681939166753883405225280592137755623310867216646018318406305261416151585486718049515193300291970799432484601949959623851565239079335515876144875260078987481299442471297906940841290785700360104852598953491154116430848518052196005584501130388385703892000325191135848047382036906143849627019247969546196940075937327379944054898661461545577111071963586942959666548793295006250039788714053339404075588629018271110727559255552974866140948428304694868135267355275329441754193814233289384361186991669547182568276829334386503275540606115578346788483804616118318922928572870768479575319086633606677414058812562012266226033856933121295403583094465536360921906762590793449788585381509833111976521506875299000877193062546503453304836487943951641496831134411318953331848139355044933586253488329066515765573335764505554205803031923122143467881796301875972433912508454861338360794522876516626660282117075537779538499409788285613867933140927074761681192668573309852956720923504542246827254530701199298158020746214849097620717088527216377086898281325756457033458349616156977732031227724532131714579185632644680194046918356134164525959919085372327172645850068330890058448002181873197909615026631529771720323275064593432987462493525007616665912678189078542062608067692025793696922720029882190415435995430886617376129596604820961175727319045849461033415942128710141107729302939550934417556904910350233985941626153617907618603831845528501630970474858380172038319628776049830254899214066202367745122294523364153424216818533945459850167175205389844058681690623827369693747532852388709897056891837894601008441903483609987355143942365614040859452754958457260814116087203105206412689656230437540648191940436867853757205966434094672815324953724877957064247548841937905331233142513983939536182899683139188889887324470572405407258358059225620248770659547560173449300351787679876767458964664750354621505517776604980600807699403607025022562012656013755358569845531082582932895595320584159631335592659626776573261209371749105179755047594194475740312158838036592317523847450656112393930494255588031979725108147037940016165299888665977662042053795876603620411100088342118784667509939758460208784555027899436662296223480884627459306927837959775303102300624281735148458143295836345725501621220098541354488400524785211126486634113642929406333118517992142565183171837444030661809872940355651359861551680812242034200937384138550227517202889115763064883558080136042379125849328682709003702762841933900062965917260708857164729932990773057890397875266453846527139519057627010661105371805579091946368662240518860345908344852558553035526418725392959544978572168662699044498170121972879007133244840790588158857086500665706838845629412631955186310635454258481013780215694673126802158346193415517497966896414284969490943987542701018560860985732392027778491548387392683063612716781074363614700731564244179496539219314310972795194692290195200534516009343100482592981042553769464556504747286336326708851296875543528524581765393276211693296207262668263710439383724313428191451975617152133942380419746471730166162308256153503471962060628226033242419080427433474342496279602899406311123591775408050832750311588829518130107036497753373349284249697608125323182978442199733393434109401508691547141893475094056529738861049316845056747859689068877059552717306940791998215438341817266783215944679241646718976753683427031582311033106856817677534646257127450950979748885954363571800186677729717679119509343033756454287304407715128981338854309650274815021226536640580556591177099190764438012310785515046691001844820606361504013612629492750114044072301884952651043446982822170426508101866469158531104089720560109840021978204980137396962724735075489717709020842364682329899048928711167544521184012998961051949165671465123357570364286987610934623725000717398169488256778750133695310223324045213207644532826280689623440621346706872189201603997875178579892340454827576267386841640301869728019048132040330116137308928485807678153707206851100921986376689805548167214172536249728798548364147252497302926027037541524412771586043567862661526055377545727963281179262233910700078302954622375329294378944771706167553931047295791289769171881836196305490276284749510933205921309998024241525603852571824809339220574732752670847193756660830645773555332154896863412791155507231074389377332258397804326497714499630458070308176407443589406545429938140587595659471326158423695016635477952998473991252918180529080734932504195988168843425948284352980549306666718624405002366444834977857004116856060818237937991991005134234402046923028798249923922718465680875956207264485942212514744407615563188816731782188967937238752987328995021055170242215154165065813809606196896005557808806356483132020177849028924351569300591700036300569507539142653912193227079360504351250421499172954122838026196067173255084343794749115078250764819002819026509662510384266416379272781270543868842067566642943931597349145703931738820585497809665929151047954707028657389279973756039658982100098784509507010257578789581784295474652858163389229557820294311847889184801974836509865681069555852568949689626391792710625918597215066837684535934055252880958799644123154622222553993216405641200274571137487825434788305756375739634818729168800177503224434281520571656868828246877092869355888284146517392650280070994175526867394339759836622964385856357635418003745297342007786128183921958206924753594567347427451650626961501538034017152202102688159590637802258215629025753898687396669558852332375735238059089284831079694644526979754889563352444203575594075618728328815907047989914847406084837457640779580884101121768152454732413933304600311644309882908714229042846258329103480674718519524121630082373040019719141011842941434195755203376439552190584405839573811966721640344484949907006242854314625834484214771892304773795707992939010762854931932405934276857254195548330511860705566819508792456799432876750758006114256362182507166442223996850794087179430675384954169392085948094376471911353317348780874080563638124371753600192155467341200225423325510208480111635946609525547811176226374626757085317951564254416189491437686652633537056441406939436749888150612009566875019550063830691380922997810849932386527481157591425758770235041505298165029815079590191598175539813463425748809564555428844808544759282045495462083352137234893599630021018662132661265475181722161837224712115474881184327101238742559570696979776102618658915199159874273947722238507973423147393375024946191146675600618936137065538253052314528336956004312234886237500487722371034640808128754103085233697660826317997252352094570627255796018135502816893060732706899480977139293032356463742161388773821144416835165799977933297923638102261624124944149483044371501686692812266795868069171671786014832088092936501798536584902490200722215056225429967395947031952998931143542416483043288340555457904603624984531413573080798847086541106718097915465243512643518338377045602071495326799280848433948678449211874079880149581873987977564674279759413194791308452627348853323123610982207970848885665902083148143480371466920772246439076383724889371510439521164461987573888027547778754821288494404543975012539028835494775735526771197332643012794879506497233150140530170151085638605931624755952058193190245993640101005239168017144447927312975093723264842485768052818237496813900450990959408494356894894944148955872447718254971791407443592792757723770822542273152826021347880075965578828797853047024031177531358677656932519036954654208795438798571999621888200136592709620596967038579217519648148792967839187730719252323760665172708005629706340167033271400270615858710156630803653879279839125798716738163853981238362133965540148658964952427159276558318900205834523491954383256097271263010667260458789166260556461486017934907592230560108717389841224590440447963697677524923838900069741412412735660750874241324660314152165587077153066066899244309262259765966183692492464514772316750064022183016994184876734878888640971686582017677473636202396100667998208514450522811727870491698053870912282061701897158263895205242110538946674176934209367005279014829743737400294119945317203927232511621818130778015011565492340653691652983295432892412166153274513876135484855461393470841467591543583165296698759084355744863906871209410992163900909228240747714232361152662263660830552349750110396623462076601640131830307001001828907858577986002955195600048150029021395591838502595700728041233654337384241266855214810773735190503226221768532126750413717422982341419209470875990341370783036308362869094313821596427867683251070285974178012153416708992823373261157195650985939078770054146269174350654439926976791533208532682981276260420306854660963838703572473555800142595565053235488884003825327701080676526962540811345225418358623410854601785267390021152210435600663875304086626764585756198726029770422902450715260073872192420771821270485906674924918484095372094437932275579180679198924354423523662084298832761366221057932746671426497084450346894792885727370186275690824860274109255527972971033510178954052965348271894776944297639942287683472656883627517438016379770039219390187659283248453842972887181434424488546650470114864534345829171579388447568446136605217826697101585103849825208267399405267542954688317718757936101487541509522547903226881557320432841308785400087931211755370863482029737598300893623995080580195710723197134986237788150597646078903847531345539490648443161711424415026698704073440492911292149785852905212984355428212817249908079144572240106546126488488117148308796065084407614211378035690148156368697952206753869786154177549094311020944369541674272271809590951977017320725757475964448712934969614132359064537116338246848093485921110728233681941938921510206007705573615157536690961863599030816866007585062453906619070415790010222486541071779924985266103983006704778900488904135315520587330804031290600749063372375293502571349390220040384513686394489324300218229274060275348450575463684448471110773790033203836343855554437217314428595253763042485990325950432740416093261383604770754899731528504938004212149168278271199829483057681424105940747607859759024578062594287079407597826852032479923331225998289108284778532792175508254873488121120667350057065088889581146607370970149278587814092474968935292484734786384380251267146098818596339641396744349656943553945390406366922352916260618030044782385867831111643163152863088907311564693576051600724708936769994780218299107472407486384415097837311178988864694915010224648975534312504292722910076286681835267978116107475863199866261915263432380298336324273158905515474877345349065449416806411330601641673526506611986804916735676443319297759622194310109374144913507167822333404846977944108185213226697831772483689047581659075609559647915651981310148804220810721214445102566751617561709572756553243576245813321290275231571874834657680397244517613348641434375202631933274975833694820177001804362591076040354337253595689541702511212274408637641417089029225849366705708687392826582415745309158008700519954078854466356052594908090941036835514344535347039855270650623360578475081354971713141686862559374986095727156389135798529825735658342353825396678657177245795079389126975710255670291420524984902386690594799245012216049710439557594687291466217313441060377855014279297083831599765202796267647474290132900448063239881259013525178330787666751086450092723589053610111522646362162194597115619162907714536199898458261898326078203973620473211292967576777311270817182107290702876127041501617973548501543496377832762453813650426297107721011980775352291973850614558616220568742033816436908171067847120078027941353201648125835813406955319180677875818424147574533506070797241169972661258221072999698140513797260476914373505467086864947414767974013088134699682578814010480464123071845563764779584224326891730976137901212706244405091948237608265423278181241559549088501550562483761603242650225755617680498897518369877782814133069162827429396620669963270077327540965252933222167147403134534603736960149527725118814062285118507209837606569135941881927375130266894160174750438079661004631340154533563738318849753138228000782084193457155120952518266602891266557694394966011847435605151888785789754415698762094921374636163428118653350440270557183472869041430000995475766751846042914134781954523526483579952356033767324064047174087931682572595177302431811429896814579729970483820516170397015821295897763804612748306539090701496787530787478887779296179344369092593330533462148340903111260558712364480356212691114701034264834754282605871583826284826589069013343208529125038618267049544841836433289954379934840669752303753465968130109851917913847806895112649490199117603791273160684064924416846155383978915472970940737743920381405543210347536668041293947550793281579704465846970421309257164197007400599196354103614023558441683501031165541193232460890324171073001034032812462961492676389778779945586279263655531125625311923050429542802305442098093143168782565883101769143996114848030954895144602527839709176218056066557766463783097515586874571043551337762315886222678671925839781778598770947037540976003796608294651407006331394116835191261354555784394759518465766317889003670055911950646541610360922809040753731883453532343241033149445251247219557204573634313401005414720186685695700689817789921630577045194503382800963459906205227677741699467057451445231395278887132871224153088399095926681552782760957617312027251556459379898451942199452947203682666315703219479176976450998789998153485650083625495291324472660045999896205697997254655469589630677925513195885131859648815453813202841808906281725188313073350068364245058766843319339197634889284582419652213365780242200408292596725677458572371134651737001877755154704111702007256733511770690692312544999596266444243755534330395407580885334840335520421588973658793924275767299175662319174135531343521674474337851587596474203352248555702043934090489085041012754487749971952970991292528482542914395060277603590927115605377638818755246844149383509999643342790905121079924467048521213398526870210787687896482254945303640893268221120371245764822615078290069425130012973298785583393371894967769515195472893147010624305251543912083945140203316816189893758700372412704309350425219067947501723451000554205311775650939256965847944999793409356329380344563084109947817827253712163030231196025844918800357793489781012562174925366468575491609036084114315597443678262513719694527998318552292223346771133248171287506820922951109496116757232460572838600461204060276619538339964717487449345482664482005781990076122792666846030572447971373169430147979413740417859741943184242289257487532105004642625435534100940007670452316408037284211176903341238474590456491362524009485352122106910365243924102361909860156553635029106913521193425907186506952935889512172020830342593037555707675221930985854166793036814467094472382925116657064160008010504520778569304364414042545971501456131793874400261731430676934610442859791764232516179514899858202521936961293151887421051734611534291240520510516233231587052888584456995651851030598913938132742427694180130574699030849510151297756399747571549582903688129808570509449655400562768607287776456428435084982887665299592262839518920906791654495827784838369734130800549068617679311002804796855943102446624245313450231975876372989817399756483243452083348114336991707978489901820949745998280728097577782176725634128888458588870924469768116062844623259338399801497979582586437892420964206984652466188807279706739539997170745992144096376511634985857525134612083915708223499854633116542156524067160752997555677744791836144584086094391671170507828481970859261346459534748771894721590060243744168802187938206815114324767883777468088556279696792133824513432673146759496127393186734758067597376573000720707913198673563110423069654525789969431598831821867506946058600361307757044324189294932929340746273185120700442331872959197419402031602913756418551308199909789394119373208417283309191671309428195014982303707699618849466563384353153868774403254249658182712295763917285430431899786461964622209511918401810838756522928327526668566644381543683119939326952863346469817958613517386938274972769881550350780164459903002182402886333691032158742971497898402125334901293816982256902848985561639926509697339750769949669684050292527481354067723051646125745346387833740194151554206741869519999419355984176851044299206931717374935700634592757303070279175725767726282047047640290926438532174817891632172904655655322381212166454871297732182548294572915832962936300918225495546967075702679588035538337547118951568344834484077085899955532168350566300063154805375511907873394385528853875048029314852132467054028531132695066901464589600268399926275451583556014327697604110801857107511165696795081975155314959601394187699682155419353608474986039137765042698994401896629783712463089541399346272613336912334777061304437700960702485356426667010505106129587947117543538227216537422150242625524630481837988549351795059784221629685594276687698525342903372491596042109664901996372762549131061514021023756149556559723358349380423490495756549853798253927890179692580585923312467565186497791731157390780171536551552091194760499941927577721425162672540570427103024397924687889185305440790352876791950471853187516318620488527283733211081307893081488192682104731994338422416664236263673713490606166566589832886791507543557781679083191806586663129546923029072844123524722657451107252151970309616217157777008374678159635911836371589954766555840867615660636570355273829642078918081724378343497468869333636449218932089788972755599323796955569240796187973325124492310091341811870463713218895093946561224417468295456430453617025683323425745869652386149561249351563268721604831096861713915607423625989490991066949698680499791060195053832759798442880332201901620841046974411678215460885596936631734546180222118009391459707498456305082321657614735517537051083027653942544213660441557069538505174471701636786139853896875935756282620749724124736538077241308344505394073230549185776032900008796738403010963370422931864352530141620537260349890836819060351514669312708825324185646812066306521697715865857839023678927836893931776007685106604431503738073756848886582656789698469569755000077043715374296426601034691837887993715210036588065271575478563147436273918268531754022337028635988417222588210302036327952370102815891869346185056955384543858979533632253556645229683347521920611609094942020846457388437130430299341062618123202138565799493854105406407927926710668034165588853974519622511629517909645376374213888935786928280516830377117317033978801651495306564610555970053685268293158360727109524757084949693804965571420247099933275070767122752124341528188410688080514244016760233225117965037355615774769249344574975630855448368857770500724968754608187927521378413031553554416969234965425501168337155525571962741569916443222101732318246472916475150901315018048018888085403089499958367134910199983674209957639661912650522521513051230096019754956337024484684161299585083445667909112042974207364581278115760438119452874499621152581624109103875336044151163915320626365471159879224356855839971376426131018189827546443999458708113191993005457009183472531794848023977230772155556623700331691609917939257420841054747351519941201437785489235874780006602691641608719221148871428370406730909457329949171389065178063744551934325161341162558865469861367964687758654112982557648318444806642349566429695394623127760027424688146401650926780636583579399005487986167334996933527662245510152375255420076034591836115690487984398678217043746331448317931633017160071364522894015661646816803344577256365922082525641126147878755288745748610328098943918837085805877294413731348152429162147932850340865354196514319247966229043367251040489616469363149443792947911232822103149007657727066827759529814281195047445824467529308043131673690874469319865417623632753237355045434745767473951280137582382083898911227144904807854507099653268440315105360652614820617541107230157590522284835891129533123917740746778049785952613084886350230566930909356536859959145244134883169149885710968583424665280016530770461934124330942589100658011385064656087721766402517664523760177178693599748676028077706247005166034853506411273967612942395334185911525321370574575675780128604717912079549071472682503472411976974911052956655335776015587195034102525127933559536487426495327544277081481836811156606779513617172157179614545712487728587364577411778703545456456787452757564189109274439970904113867783467487771768683007874781283067881184020505564611419683434470526843106565895485635786385636149508911998286247140832549109716560942115674601784699036559266461341770247516517395797461770432729948381503241474603337075801103522505132058449715111001025287413290698156425320298093469087655381580771641399372914477101415657947786292417005137011145003938623427227911321275330796513703274613623739601971614282284564573656249164591070311668709370777742987093502577343973932738834294424397206041242995947278516629131922253173318232111543133633468988898132942717577830453343578529897152976873132042412113416840288707400618752333170415804212988133921408160981857301588004744848761697466153196312451251902051223641350156250383640318589670447655301260548078771073509904351415236222799296152367105440118746549265639675197874570471984758240553684382823766495391021764581059923875265840948366568468574285711230964805134902174545669415702841558774309944820577725384940884269485668339716545418381221035436765513508190084743532109485848004139284187802558919746876740922972860689636657900661642552262787746893179748599394404335634631436192048400743824471248592632928390871833056494095453592891930927035356541459190529215441590238848103921631389816835541590027116357542629056517138713782579587536255520177587001135543889184896722574976778235822120179197827234823175868047607860788952147107868664434111229588931785480120537148036432603421655387763244782254785356047099157693782679990187466643517176075342488853061497706538144212816317070702732993836470591589895755362122686715809578368091140222517706423949779088473413341157176866927433403217553473880938000123967851376038174698999236256151798458199682510851993638093106459111186100811954669164971895821483698109116184793043320517234524742307296761067697906302709075331052541230357779235893625171137802115483001173649597867708711570958007967320371694617869914047771692592101881528551383762804410505650359238073750048642499744404633472063075491645277575013561356491774079387273675410043258514078230365464849865543594536879447324224271957921254500623893365023287599050826664266724100610200253289507131908440870714362741663901030066328175565453298267799451941638067199112138804872858242114163077334128482473329927203213455277054515253026702170679556724732526572137842852621608618475187016386309371638978317670986882945620306259651302963907725069420902901080892719270400476792632113136879573415533545055039173700919677952819918997758299196725689010626949682512441500881146040175766997902646602305970469846415892213785514511253632466131443793402377242258081903811641392422051541236770112343936435923119397946103508084784810220984653684154677093992324249948191388168012160361724662411088876050045060314865591626467729422909297247594281444020255786813361843894222240925285036416498324791041938264773448341711993126537921184497282195053213484574038527971997219881538319873168967170107130654806125757006218740575920801549054840008486055586566886155679750916909969740688601580203548509371251416433239094076296059792698788833072132522400811307658815514362822127233867594330682085841519397901980587041273137797482033123648289792756463897249412633077286175995690334880057889716172163230910468513451601877753062509485749144456070973228750263401345591446514244841679921744604874458891721774901719542120879732964285416810826422779883056291946999525705099686754179868590131036362950962573240456626816580995537469278573190130856102321595503479603972795775392214000887786974969282567761285974779557331997281624223921354045058240470727081275972657370159796010939036350076100697797208285861682537130792642745337731360678251352913176494408099404839408732129057281093614751436857293279675875851995516373574367013158331474417369961337299587677257477330127871894383738525294452790609375917129025231237178090286438038482573158086712070673723992614862924029912903072898453090297877539441942958545462342816675388346693293438392085690273241265021873670402047066333086796265812947686446583649598588812122712913918874066539426384215317860682595637690447278286157860364658189064778013857892181313404450711428881530659604992950909237951581495755142383134297237534441143556645026519726243053051252750558188877824453152109108716993088982223434364022185309708146416457395831266981674409138580768360863668584745952094575478612055453767161579086020549986918706938249443337373212862041705418599689153729382041953552373867678387445125685725135603021549040014607718323893191463202681596122357739599124830474620518462306918499928419702991239374660405281544985411587217234977953160562279638780089605266898264684746113854281647210394606830748014237760414306743617615011389335507936559953825288344776096293716669249031959624289194923042297056379132837418990731755121485128687289788488445484511837197481744170394258953214529244769206834585850438906115428775854674230153210973354616465296039500763643903358457581067916359982004764865856436520773405573031473452935618284921303133485992852075389525107353141569819457532167250893084024422441481712616229871195832878670644031170741040394472958176510947799600460002167665986950645618832493835212304228292472990889993280471641078683403484863332654678465465048524234606752085746586746727351103160051471542929782651151950511514202178540685076700660938882713941210556569712432526960438241858266228279310805530105925779602993710989821555562064933457504388272299893636364288661493936283207273227855688087729951991699776586316754181412068941961521751415309863286138959540149745098366738230327807810463924449123043209566498389079611906071816571121329130876158734489338934618820455931885484441683832946486549552547389012660059151442879257909261094842962654358819132835936005739949256453595016651413039851529751709674658171386244759667373877579399576315230249831323641980644888936673312722277807773536167990930321193800796313261917932536465565460881352583116531569674634639492046338841633166550371129405088816211788389048742722733497952965020869148068908072304269217613153637096627299632071838079836139169750541799945281298945442131074027751036583581214787382091341605710303118910956640508093320918418174654652591249254309811174629008203643484996918599087941475590424609131125177720385854226401684021195183191120360509477179314309902490678656317245125210653774131190405550035449390988408775307428039742437566819006240457658182524965235638976573505089171428803232900797277295084038221387500637018339706106809470771541113963963620373729403199809859728917323854237418615655094849211902709162803629706685897748906740212320020167153903828392643127884516086667006538663913796231935654736371462665126636172638575656465306532903806596698834546229898538893221042654761452117008483848765151759298267605213900389813405309672160500244399196039584882214117420232905127172558775941540335440805836370408287893955678680556127770146351862522856721018776456001444964733550758315208783273392294561198668969570146840466777890646406647519165144733255347106841393651584587646224518805749904518026098765903542073804091541942881221469157200328607702977429342668415088951241432493826594728764661360179358881363704664784871677188351292087804368880292904861728055684023193742838635330697851404009228238465032539177960887237507671750471899457811415376710562986383157327558468173049445678627261468201786261862624219524385840564093811212508246975572605840158853167174437415200630245383225397174806206977210593477856226520746025635179951831590555445145939602244510336460873693638666530030173287290955960470370103512403897620427741111578157610465431785015621841385236742320727033578816077431561711325284516231246693263275598887912741449263847141676171620311005100963711731992763585063276947083098410460495330125855973502144184683355407955728151630370167768346319798554747864897995491832149067713544103036645879217297177922153525507223519049770129381840921644704175961526649904060663169169718568459371338195999381013545065451133186471371961273367629298585321403370617098200196945040058926127169259072723598659533216950581604913461944529569813767507322146072642819950528879192974892395629175323376885042654210068409668869045337348113196423074680842438002635117023160289080358713570196511340439811122718826150645322546230205892320787734338914207007129579846529946570276548812446552016416362071662963093558056288007399811087742948707507858007871649719406479630362631096948094196176751259739306950228721408130576573716263771199973759945906580594293601663328858893372917382719575311685105679065291495486785388849622224059791671362705993410402948039281943344191948579093541287885981063226904617072867778538720066778174129473517287914185478088863424733916287512416533894803389232816941166239760717536756675423850294653949545508165744396255688923386184938178627625257942559573414609870354231168152363504548679383142195235804163932415673688130368144574471774588598661186257101163432800291942543910314384091730311257678492902189171081338729306648092401651343649460981987759699539862414217545864289905109019768928127960855875611701753828608732916175290269197081649892998638578464767569277900785315557464558581754146586522611776037077990066694870878455345314372583341943813673462674835246698006054847473656984535734179232696838063601810642639536737480878804328830897397299693238369721422255122603373250562607461723573119912428685856149523245014669395216172044099402895310279601812455823903176889175201047552841774361483420800971880262882437550271990038968024920832780256460329616222843904806836753864534986012424620081875929130332286497832404587138918442440993880496307426602262612391664259844647907676708819968125478963041539651630221779888745590282756555951281609025597031331291151380989801870700402546561121889551212389635382891672677354179041491169503039115695908450420953351255735150892647558987576618463664743463065792819044539006661182877869768713854532549871723398541681678059285354259543425948713280236582474825616904260260185823284344864091458488085414285958274524032526196935111033962050236962754345053900713655711771820133016081487293340554432190657683635910517942017718315218442084987819345945271083007987689670263259250390699401381152240176179022252206091660994377060014134905969879485927425011892524552226906054692894534300710103601986499077730350261746413193399239966723598549886220856113172420723166172677552579229050286702109728374271006163949319106438104600075294602935905107046886333005390178933166329333503407706515728246496828816182243084489617245662731288365727619111878541753423483604434441808535839639085108367121449511586512452635495484403318815873678438971608221502501471252260027587390316261157298858305907405782900887664096304828291804756716346410722218553343463310421941868594437526856489769000632471566002158071354406754780808517727857889233905460195524970160082893735486973829204835301518784292203013687132756481914305422515689311944805845325196562802360375253573532945830823322245650100313634342882066915710763380594318270527398864828966963117972390913325992122128798960432539668818391366746390292226526511351628810178364310473379684790204753143687576123365778934403080400558887977468975969231815132515997130769945037589703715073477491967469706977717507068820203169050900142438835058515640349188744862073539764519694947259824412565491402948590132259789467707751346368135275802036615297624081923511797245437596321324367733858215525615662427097942567109705818630749256381136994141518587782363213731633766179681265255085266270787355496407038548320835613201396948396206331518248268285356690745117615770307014684128899566828101973793909092002567287846518282715370147004771787564362064075138046654852012264708241808825927793392893957896672702334028023388241691650157232631213465998880793099718880529540426624845473525661790480767151389601938005417493336806410305644543299339608224787190762325796855730950657375921681653669008946028087233445163988855825690258646088954368351649095257610370685660357588040723377366807718657518440878177237280169615377982983489822306865055776931028481415298404227611723054804344468437606118350900945710558431858051749432240950317053104839883035675535338195087817300329750191465019523433765722276370653249342556414230312165852522450610346318481198358650795576439707639123610891959995041904396897712597046280076522516968359527488039373989806273550898557769480290595761784442505462568465503936413747837625717910575691751823378764746769887527908621208691553865286917260152945067108435254055465457507537309553980771465290964029728636433273195671932006219391025615855773379358596404934065058330762202159192933872201260538972971678397609262111866410339638722926074948957263199801658595086054617037523818559320289753799961725497009314939345724686472525951917593973392085868596983856051346518539917329874587288831825391194842728260201695572561819797005929616376908334250114339669451473325973899831393731354304683177084838234223238559494108358007021072913774468862401121982265247663522085132377641039538835881260320321671605665348628760523398716508742712155504207268686246225713617635528660165427666463553422097108134708953041238584594845514741549630725437478529619012342425549639989400938347850968190153072518995775956474390557174432010356947557742806226014995477579495665464109066524994895249977326194801864035802595164518528974249616838362424298033878077709358446465163084509913024059884027007065932533649145780800405871353178701704630125473940971382122340347024246598215026165055402745554498879688605674583737435686907642782525711061447881996223977251174557600125031726544438170949894194678248090551287260329960283108545962279381940254169023459898856095819776849993220169941887514114695995001477686745432814140155035877320561945921415088467762305553578541091664552807131829100903045899137838061456142247244564222736932488905951586929793407683757490085713804524282471471060245071459853518325895362204175711033452693327110408369663241150422542591527005428202989045325560468735116612629639406422199876705548947796694615183586791144970021726923460107100230849992934184831285232706045648740456743616003246983040014793271974004545135109763759518199028897950971042504597318181101866308346418746568541817664887349449155885039165598796381229919198545781146209090960730802484139797422331089858598504379829306383720802893146553323689024426690277446253701976014843249820697069031240994598520875720035293194722481538017388259350908906471666396302220014110817895954190804867031930792094138041839087575820045007117764174358299796835883544585513292271892359814854063429280996594306365823558296253773016944001129954107671335628754293326212859359644489451817517126667228986991115948855644153424335385788507955736665851063084882066056500927358696839566235610931062952703324680205390985675665287233801812491792551320850241913237906387054052588886553878765087039984166790681691423671860969539070200334622417954887953604956727381431536693949516151777207929663816576573465800916358976461140126331739642759321099378581700106857612607979812243019843422819452523696822860684971812019371147281114851086521633292362003589822096463077354447684925878382437264881540496200529774105268645718825872290629494730131222055119571857630012266057408255426308910952428550949057551563964509429269706782031702701619549888128352367447876762339547835884021654513569173277854780116772857106730647868783624102824642938870160837054639162644115677454068125467871546791330441658321925002612574559531286108350556269417267109735493630660692140229928152030691139658041732521484179320413850402242765944179081995311992874059628931120492097450250183977757591286520588690888821544826919882208944136990884385721785377813227747125259311376405729619046781249004181095367215461024449652930979522562463571546417880573108812057341164791046097676755238224284734751133757075711603199956302959882509079016877478921503236088735803449867148138313963940213195762473716341777688891123361356711034585184365946752542286225263393731931127232813483137265814534107801472945917730250159308573997305268231287890107038352535092404055227433757483302141336786316349921343532263683404401583346572668636081834820478499615430372575384052800897522106450317363262833519569796047593328320001234678900125304035257684028291271669531369907991509119619417715060053442622676930922461681677680899464888700359307847645272482604844514849285650634436182810826058022449115641881284061778997174144252328356182548037319235575097234875740186424758821334207557378353870928058498157685238488017880478745008741881495230545299105433135392594394910823625981511548934700728889886282198730324166112491341067588210825395753299759702062999935596458103631995111368224771897260044363763621250117274237952205559192068297761121255445762664890781259368827008562541163983880839146753832829761100679778320621972065276001014195804453580847279279873765596311924509095818315036247921079966510253887421017759186869931779265427550691949710776586326305241572536005886175864075613537539450430680417747957117628072934063453646832149516425765606823947890342495693299438803713264067584237887038168782844985177832733247685857410132368194315939718540622954961089339802063319371154384988101562204177216872305439717552776176513111778049934478224767477011998682847193903367164979853543909157965379010764981730596057644962129816909539585971488867434238390325818057690603865427240842545002757418652212744804621563945932578131369075767660585580003242376373459502020005870992633871691829105938538892662697855539572574472123101083162931326889210569847098507205120392769548834885303193653661700609583808699448953508809950156859207399450446167441269995626470211866693116132346949936889597816233719786160683015834786183692550841024244863294559815335250827839832150361547500272392722345191472421018025425489802502414097043351753567631810889078572641556505394176451552251908770343149790295543064559768482844988635150128731792281381858953998813840346864277743716450487112999127470759827267606166743026613990236397251401565042639481437992383017656569324961183288516200729163346777767881105008606374792739195349920613577201748037980089320198165293586908491179348853277310935848690287205658669856844376661397789778325430932307130766008065663527774853341764594814305820086844238937417326428026424049200804718862066737981804792536497908013725793950924949939958744075153068286642063327337386690672782082083612477556199964812130580287719116464255278477824832340150211170602057292900377261922019579275591980901318350768225477954749339915806225579024432295316167453928572906341027654900881220584840517314416081305830563768335904846487338946082258107503064965412699648334700816669023052290324509101745095120071233573248541404260687132305130670193546546768139052697049250330970749622787968389672084719440404789541635265077656498994720371739682291775796553924719415505534422533364096683328105873892721033435643690920643075534467997688534058447013153163552250486257970248636403212720491947143109590572920061946591599979829634932294148776516957083751105767529808131707574658475717935801214824843855388755248332023041156250944945802936354806512392433063504420142456308627539378110623858730670189390578508554287039339392306963982040154764336735251453204671922862590704210707963759648163605339869509381783712224103857852386745127375331006150724614302670703644687162798324478962740597620953758483276612830109319272137315726794537086098704622281473345353147933417827463764995131504615956404527048320500030687942401681945058059312635457194602761933452214601368100802757430735704139062807733103691872939212154488889484447334739051015382834309394487352678606191436446842992310614887940687448579902777315765577227115166131563095024649488442453534937004535874108924420960797370293592859361580464639535076058786841987748068471092651622269480219301662178120641352526151189424676822776419650309524840027602496930829282661071426293023346628940961113551749544952865571454398186381712861479557820910746639047063194385020779304072686392279520538743575957590011248735352426244167106327559063557557258277889646198495021547381719316978604005479205259615037645754445313018222740792212694926744397524876432334181116415542796219904023368960398596965600368951626839107197452651168474311430996587935464161325794243067855894690658490071596035011326343466388916282990105036188206285350970348030754911816433180333748527198558567809373873652541023635487557900704313679240623677787050164357010391746170312704069234723437085286204045741051049872216680644440720969641374930488189079851875091159384884939943997977143643866301139565759461899228741070487689245181044818998316434854254876841081568052622441244426175138169325329865784604873210348827927652743575612296602945219698241354426135436593305525262030301255641897232809251078810014673385118809802485629135981789084444878427415615240907555810219526866484488712256680941892631800393880295614215016510454576959219671204664404917778798085689615356078779956314011471670719940382222233594656020093754424053985449736417123864299037893659277992665621998096361004905607121276512014963432898782598470723767125414694250722534012350777563598265925573405855802901630349971631298357225055421417991063407751376659140725934996230969091506625923892230280528907720887683862496073770900408317106368248712835722020333803318227698617756417962745606385175360187695734411174140105904751151325207103564817518284616864573963243113051007669805444212523558448159736297114536968926255519854055116339662184685221719189750305176489422319287548175331143973096286423734226841525489075445418976983235690123665173028205934013143476947355734329246374512907542310172910695384495069794161563487732579299392377270836213951134635004361224475254573663208324782125824230844837603848748090613080092256810428209536748286859084276245913273620452388318457081178870622643218357242991302002583814427393808109916904881491212483936414389865970046073849386503461504055648729098783402786989002576332651769546765374090156891215791348293158930723930043918842143846231561128243053411943351204619310897697967809486359181421265394691983080598160082391731619005462778870688808213628989715247836228196715302302391112960057834657621470540099608410955079598663603557422540034077127527521781588764303788689991769157147171615251833335847939497430579947475518677762686333751525225122990137023744855070779742572173812314783412120783669891435377573430007055295735648981905344202542298335159654823452121638672644203474931539915791474821718826258738245154032433048381732870120820946401420023502461913616028185515361867405452334737858808936340373621706108468817258350549842768401785730609061065674459662750073731788218900776458004908934360594682478755999213954903088304607873487699487694323697343882252431503741302027015160984037317782904779431025441358611881148732070517144899398566992897610544150112426688017873952886633064458586353844058493023763421398887286316812547327352808632668470843274288019669947040074588848212065306673299293944045865676197467410460353891640385428722569749355705950848574960805476786081659844237042099382221132085433240123740745321806360014398183215274993778193482585573514533397402599834495210873448264648462761812942636917016893780549547735034859133379973625473673298075459387531477083231775222916076016429050917583665007034807016588544187148911035571767590423152040556864769915742543213811837127693764555169341606458909962308196173839402637681239629167056382719324049757124875455722322740987663283799036896867123608045180858612785409832896128581382740428814964667698848888180348279134533978136886404847320742232024218604352338956414781231441196497413759650901398792469417493216551324860762789827001860131889133222359713897341772352047538129549609797013281060120329590890536547279084529634325230145421499218873312680408257949844811556803711418356431796583078773459663744497724638406735839990940936750442487630433954279587620100907210899151695988875460844246174161805383967821493742914242504743642646764792478281935186323594849083927772804698465457211033806992487498589269262106448579159033818007222360090648215215496742843721547591696850242070631340412036616582561378741452127373791586824036068644149592946067372141688687624344830937861767269810624071817529730573405019068913594057957417070664983628169640752143092311275148757641538063252528054810592884034465399828474438528147345827069209932844666084594453345116067678757765158297781764735187852274728082220572673956626466912895779147015706725020633337988041902821465232178695128397442946190428097475449674751442180043762742881132004857780743742485507706138285477627872282382439919264481950699481370313971774874737845471869000790057445589397922396986888921389150683236197830032632669582997685324166930199632795067001788129556211656838375237576485151043142193726679015277595829155522700455709925741367309683118759690931209541627466335419077000270443136129917251854488844826634330169626835573627812008563086027364803766168152418446854210679315898804193522311823436350006644184422740425887184755794578840891650248863935014919240267789227055201017050600208039360328075953004876648954888568706948375169692423734374499982681456079461750218841987143220448447413427670269475930643556696281025062110582801382623482159657871987758633134561149045960663086446921028896885981267498846505815093008941779189748515128487126100974801337023472888817687568659895795789661842622266813171552161907578530328098487037583847664474430218022100810450534930724029592565741678258445889666019902553937754021057708737132721650579437951065979542232293363396512221656548995979980677218310627200000458000236368656816111739816131364357914166250569221862663031648228820590089100594414141968802467748714545523070926920609516297835884122782230737181339930307242765116994832416607707339853232827445505290588559966623326395692123955579277628273906401338573074785720190526170757748321953425279282129136195156678697904138718349375136443538706055251119559961015399469339914326572152584512861623423489268762736379400815554279151952190423390037905487822237119545572142423089192711631024939911464910345354372123531950062500216360188224067751589174787195937944182224403056209773813276020483591046581656794304651087314162970448713541519870567925648131968556616120247385682554227386655859655553849188256066494599117669405830164269479846161808207653588420719733364796515775189138042528052864916652798329922884241232037131874080751383466547178372651131340731866583087750884606760928924273458573345227587401254081608946311233273041925975411284242204468168818430387148650642536182893938641621473024473709385801453940438991084001620813273407612450291299173655248102597206350326113085947721574321929745647412704748296033685838439904251183422508336973654215769489983248346770608044023184434199896596754641422805612406963311117028002844031348255950150438641678697091640270862043090551498917993346597407394858303620586476547101720038754846084865465557762606023892512815226913949559923458873212635098409820591420362309801398413881221534429170394920288487990388329448434720297677851252517992481588474692649841411679988470370418847498518857578028011219739623776008298307592777003311653590210976810741307251354470879747141511300242436723527036470569161476853433214723556234891652825116978599427393153422658680390924231839433726478450147965401183136302338802058999616507195853186835221071480075220936468412807721434279696352152379634628757869340184818012187839974354129903686022397488303219061874633791751946737984247344786907200281810085785487563089374198524462771579459866313495298203553636712115234615260303440574840169620152168250192565228478276562339970415723413201326692401882272487612358927162316084193913102275075140646756269311100594430763523506396854090272899395516475591366754845000540494515937480774344559533974059609032638299171580349094369923689322735198270937539362276029877798853840986806281126376788155682948554346634814312957069368630555706987823583690500672107359488106260224612111351650373250830262494865690467551940187505289720910083311482576468478057765741174335412578198136002572637300503750304894423704650078366768224259302277743184246304789054629593650867760863102068564588583154087518668544274770516518325730354674090343329302649001368150407260209852804407056561713891987968908101444763434608989384394325776488706890938930317267993898452184804642976090845448005858219167245278662789326720617896398417329184176081583377058143360806741146948070898811731991462200688690017108984890309473553791916932477662363041813228259375624000308306337009015789716105678198558723770210632536216682949091757943277746290836762758285996146734954355534131577308776026139001199111471335467739354058791791270072263128656897429076624754711216923711397054730414498032489537455752403985389627299363258318123947254278457746329185451292130752284931887668005697489233653162280470701447208316929444080462103165573446670582951949313985224020094628261269213355882059639319374575218106816160439354193796541189695871927778730258729256564291287552681999870948803469742367041520833756029592975943969734397717137671868427966402344246214557487830359244622876536290600288562500586581181510311318307516180984301760189541414827035529806252398889385373864882214298096999683445093155325098156884399777852248987699639493363892222601628738603867252811704019705797481206717308668463274209136395427740997841459687619059554405649681324581938278255767336171938188817350834350244260770589929487757286303323638516865424841181940359473992532712812662693656294135332448259199800958749504641252396173308718514825092211445521137723233240840292903461461870202547521344587822403548670874955604832719180162852091935712792823146920144465520956522757175139625720158049709077720376309611231887733377638853085542838294355113587873187804764092484336998651052558696952115909796445729559661121184171887216076278101435043504523669182615445762126560915990380774882232423348648998416266435180014285521060486592013299956382295750593986940960335335839883120837574315772537471907290483736040968059858509329913633735371757104389603914111913651143758139731259650033287193980159220283662668851737181677876605371147007223195631171867206629903676340976716460454147862727057245894240599287279063597943732647474291851772715724178941184208236353244938259604589930892140571797615072442958629945772180935103949720291635717524890548903572828930252184229730341623225027317698208116808390815052673283829187908814816008637704454962303568437692471554262141216728317304426854668820855847589837467935048859379970241553836317564970258780630646937130633730516373729422915266629362885403121300591055343025764431948374578352244118490772406825350947890870089275841904504476231284150555968141918897531213467264379259815499785456345722094102240019116636307595524862952833865951506980383126591772111328215977708499778115903216389517505030653006898216320334358799799668056265493570425062477896240243279429050738102950100948238417746804434092051095572098441259129056319649160407014093074034160688651300254965914624257476725853613126851373114462957402858898722226536263002693945373457476849505634999933231022008507363780434332305958448641746339169527045404212242726427111865333767125487123902712694688801461458594380632977528496615271775414479317530643099072436593213833370397466659072243001402501913061873227331746590103116005537928375806758204528432906918356295690201399984502849982211442648572599550842160879938873378775943466967354868390404029719479635757117775125061602276654749201379703829536383131594125283402637391423125448479752579437528658232802439538668152236415825195461882397286102301220955934726663123920218193112262037107764417869133102777237178471280533654259881767113030924462411977954659093135322115879099357999963405226915089258082361184909976144729958104866208915327370657735843941447287958678927332130843107916182559416421300177370127890241674306037881369990811198971093833685319736946071902387353058054953026279443567325995244001594316841371025509279911246062437154776433032116816893810286439953359306633267921998161678271295781289151101651718835837659116865054584354215560346016515527287216577779378235061470982520389759577800495205718015900320826208895044391846466169358766225908468136455140310819706681153331941610531466520827923197041301876668727237789516796906110768266659756623291808729102613234255562727688914711939264584510951237114658790094714870985713619152102268744866811017880045338986691376342644327867085001865694941974647718316862074487311432241217660286417901019920374991076658696016898776815266720180994303239728581346841025321476613737855377761420482700721198958674622052962769124526300215751989518354371708622447911699482561040497406063237346629700409191301895040113231147753318945613352622024620997496021133329577759200369974063158300916661992633822777597533103808314335111132334718282817660162909445896757888173155820322597166886492698780262683211780999745715586289319932607077575113076669790877795392089902008028355470774304324132519098704509868352035690423135441740607148951586704858009881119635609076310570526601367858903968626549422213510264399881750067241484279724301398759194304529648329191692960146018928610640751864236526191761316172877590294247612607752593222025260069316256416207329742102059301571966924587562330047060086939674183017455548763985783635144582562282907113624206063609764242666839274865485160530759914408365994722690931998615343750183100836635910961746416891075083030756365628479906824580408969687106299148735839424514239176635211671950292147417250541046582956129896266783019269883411988463649463063492275862538778060208697523149396346358459785280644267649790186898237295663000077812402344714440579526984941743727070817022740475005435544619547462713425720236020223486446608819088838894184847599894500946426482951388523591706317608176887028731840301373582232731493957961978190308025902802729182945873023647891392637684724101366067433539121927312918813059584834169421440812027287654338908648529494456411116179373214664248124610137813330287758677798815953506676027216183111304183713135711895462807440155248871005147338765684333148860433189156020310910141480006436755974707284675260095631618635710947306744660864321957267428904478734557048765887340952160395801597928365859596967679297562175373592716442815213955045774970610786313506257837195554778933810963558640602053012961854504911277017964347369357912333894852881174000609177946267299153223654185001446962463458953014770962105212822210172625787730159205979887992882884260282923275170698235987065111163753849318555638119016863191881829752295036383246849913658360125032845193135815672703139996458287284600484147872234808553186903403973759602846412077061462893771401832337320349960568245045122366646169758489794938290186642134928407438402499872233677086750064578952309020509129027107076726728660579418553249182109223587068255798753668457239877565242871648690029978385743075673824734787490601675718736739554474330217497928649156070716407655970652078922748115094778787144143101463353778642987537052891774371383868699401925273359032458680017853894756814763044156588742231670109002255616844341347137713253070572163255676005121701239756335039539153877250505568219393473099656655283983404582632474863617036318070758306224345399527282029354322664078377802987760393027575202409677988193923232903060045851513862678078620488078872367253165814741457696235613803415783320970745763472376426895194233851284359763210431695935872902948906044954603964806975523974624101051781239800964840720300292934897969478799205498782948560549270647062778684565103769968223582307851107120711015073752641181911039451377717691234138692475668952226190282928331645322153378706631353765389724660783866779297428333593156517574119651801213421509837980294570551178447597996418653606025140392726988541712132859308093030920890732867356741877351377507982914119004802730715874459940613122762179897068044960339624970301426324426855200723053601454847135204603767370518283611802328718792864092497890459393444608865844502086271984562129533249219611355909204656754978850705345398469072163704542700102615961862727558681327117225801818280804353175080304497591119188451311587779248615827626002263095706948887105209529889666759553189529268415997366275698898597558292166898016914609712623474175564891084042230414952911169916227522630118841285033177859099684531861334154192487935977062465788341052464475379442622036162921905560336165070993748159085259841702825337546444830261028751863913616464630699555505422353406137086023166323843982544095671579578130697783288494407318788149678468609083746039221914230022450271134576031419082293267154218999787536616649821826386232835503849992166188288668861302732956058432794142180856790508534969682033188184340289822769267476599035193727980571812279359055263680946956976554466742844730556119903797104154306119862257092762805671954213888603511538058998194700762457696501914594911569679251458537304889637428370889835651384887981340644635949559019473198479082607612107367359655286613099383709887335621293007555445313491271481174498548870931366314834222060198633551682703841444386362087426913077482987568605732140519888644569613254619367164521408421597386336664339671919901019765192571725346673090594738791235674849289764309696648627100649191561319594400322228489504852509892790287005601672903074089981775021392789349564910524591994233578864741363488285173562720709590996848114885338507135425494170704551762468537107645713268627219082969363493473130687000770408419163971514720004078385752403600167752664428055757722316215784352253850240149390013105878701621714886057024453044915169371466712194318865820517385733710322605768477535780656817026394250235514763072715915642410085300831751769510415514930407970112902171845754822118535375998494224226622278671940074125044451163044966765721137828171479303745260161414081048874355815402832411798062942698557381668549346467661245245522054705829633530774733878488169768475474284762201328798091258578044317875559476272001178067717250522238433845443664842118693476509251006888172053252032045085440096195904204940370560568466714204659080850871980723253092647498190970931255019980380187271414005545739810945388740654316765758804724845254032177026453966229402999309534374176036050640444463607509631795408643740271394116111133262016564649885317816914567273091986682499381530244117086904153595691767809546405336799850355949866583425612392090959960540818351988421742406598552652058642785989280361996052268644986985260777465614888377110504020379704062330420409504156872995265642100177267172577081445764612514838573488747762109624509210655198099941571131209307995364169399356273322235120031807609507033279912023428241674047490303585539641567726937616603577199495477505217292806307208826764851706631721784101939246765023101815450925084927850458749615370085352016155987298609169761666934080627495371090130033510535334109918728398643408972796392236414322493439354280916330539702900776415291930306504863363007389623111124890126948307577572986932443312049272052157351179437121714156642640252621955644945973463762112178615185656750862557583973665144285414162099427817944785965919275611910805806400696062438479167892183486102698829538218839329067560386361140315634017160481180149472540560336627808834002011423425182909304297611727574179762978799631984572179585106586330980958026513576847252724067936203007248149898430972369234344963732051447408544854203427556577399313029946742639498510497469567779744926508167674302673869868303147265046462878877805345292800865090412168852106424235481561291497924304406709903951885709023285368262341592291946251903535621079061693042234006560196791282750915910581469143372676214469598053473521984920921071876261557025617203473082008140252776187878221160822696755749782421729726023996534463146315130142575022937888796441386102743556311891367086783505119770735934769999339403976042922240361338514333945221632736530076298937752818304620702545024276289260862020695612813892540866388431786059034838476828185217366612201948904464493687980638862976287529869563759377922711765675214059968385595015637402907284917696476587658532860795383722924171971617598656457610595185684763679976073905698813577514945422250317456092008016776081495836587604770075080648280347142746458796867752267237665401897637555955061824340665432340568212468230987011274045127713142879428065704529609504848255458093218931996609789732073392728616173249993418206193084358934901336903078497732041388362670759811737058171065432702346399631849808595259258968464983182858733672027605813098702790529021237057015056331167443233871461265457570828889706857545980064455276286750009580561495954197161422385099595370828359104897109770616311751615797839325221466709565870311108438400705584891525658166119540761211201650413188929782187144518918290587226516470863526091022156224980492126496072178907054027069563510648756467590234232134863063054921426698774970245671843137259147144382757453586797497959586176649607476926692417405820519965628155903310177451306423945987825034479657812401210539742911821052987069215952418067924193683488505631257597855444282154558696969519028856794173118782862417592187822416182335204052918572908868868349996694476034690252136064152999265210477941062818553098383838935643452137593132292034135039506936873461139154813262248328692525103708147208896950170987100007057984636570437424191167522305814295199337005046214928637318603411710798544485010194628114287265112041743002045723863345995153652904077232962731215804540221484537766437996192818254210562165108817049176633465750480139895784664872680262945613486021060792564941218475697234207816731523468340383664246364038399013139542687886249641145762483150635958195697601284079982348481206240502578914832174851532166660696614199076881215501107631717224566407803541042946627408498383579816709570073198236498707325472107083937950959710286643064808920030114250275146769939338900844249089405194419531748949148849951024853438549609051999796852183971094692758627907445569264884062966469912437816219505823272999813110341028373756881681370497048504014223790523295289479008252103505838437096333121300323826111648758754848050455923560981148969160748371628272098815706773885412325944843555262173335887446492613259077517021199276985585790703477541763537447452420992809667075662713736458860301970890873400663508239455810330147722945016583671535768400680360332083618411443459558656207914748464369437029097481233239771055913763852801423213618547312873716654505617015657781229031495987770319607647387351651881342256792549589918680525863104059969240806268014796483203904197522689411937815692258843287828021670978470252407771461340331918114572707819425550950788460656058909188248028275019521726597908671122963733677149193349281903711889598696781436711905275000071004115449250411044732758253862880459441019701176294971383427809528863897551571859448438017230498343937544289840611004921023210098266951916692016966924885268755075687774392545972293657741041674520119566216380882506325239123671942833097457087429710654064194099274278817457089945125791083424208843792304438133201267689317922910240048897493524836839106322603331230821635677607721474185374321854245247492644147207034461751646435571235926126198957248841449402157240679238476868200800852718846536075913576913112729220169540198709571192045633399056383296869792117140121666777336810259863133173411954468088467797248849736751297254465738760560528871111995176526263323383711572440801047165537469741491345341349951789834482222652612164932722924820003331515812343595705068318488480028677940788333018009062722881002962791533414018548680522189839915074719693431628384389876228188296343753894426393667577551611031195824640864946604900760990910037620335103297923140550168639091203031369290054544231522977036286391280657936469209306383513961803826732045303846725791783771769151712957727218976963292658840893575963990924043507251551390217392538128742083973378143204149231457389113910960153868301324393241795260612142336113682172323634312441103155247462106431483728168472495253495785818206685755448379189033089072518215370447302740992538286236335316719453436009735120293686939933397034359611274961890427978938344763204072398960105245537750604892024500075458774210897928508864401916873285092417117747367126543752378562694658411744787449282364489471559875036688241094057177803542692327187119816498100077363651501156225778716580343005066484491547114438096259741389069262849725805009904074340348985814889192788281576294299929193734176499925157876869669338839709973006359736132471969173878457273540966278729181817212494040781569503045651137416316488367963193307564323540244375490531864785052025799636192066620986844703964695204586217662706478356871977552727978075819481970437669740313470665030260688660242424449003708525137715421827502054581377519370241680519917191426440208766858245068113472006427476686937633407146731496747589491727733169798514141346824832277383511759608963335816409609848800965052638962508540135585765193488700963895724781380979700546551678339030218482743880672999806268321807626044553555922905708111694085085000258021727465716385980820928742642448587206792091298531936144409628114258246508460576719024323944922419258136694838793732198050548922754504390745037559986939977405956785165979605969543875811483446765582064137952331515247358580061235728499584998774830863388626583388478533013369579117691246017371054298979113460832637558750187856330630043497671068382560320299290216233590832668230571288445893497674053624023367559637533702458412941833696831350701995436997319589245607605002207880478340736269455521246655967656054930803695782035647067674585939181951268255979341500247896541868834743354087400833818883998936076878234022274516859944680807707876635790221618043142007553338511541513058977107071687832979013343862568632666295884162221252578259823073857795494948488896565732680280427860472476848790226895582173772621372301935975803267566544340816185300100383094060433040147889786118273160730101636088208194512610711841590443332098518025151434628113179290781358796231068686455432420604701821677396975620566493541653433765655987582161592547736935596773582735511141176267166186381005203408452641574491220740291294687529385126584373782064304462996946660812175242747508325467725136967260035251822245031761763923921431949620564259915020897178951645338830526425418247991021976846758220837480512784034752152147853592704414074783140266949513218272242758621955368476653728397526446966854274791910552037230928954581299336300532830703442604508530913624383397567723445561095090527675710958500982960688039968226402944169933414503689594211736749750508118381544599435236161692249913137796903427341234054407497519143440402845480325500172314594497967493706248825373808674773129835659844587400164863963741189401786023581747272693004381099178187389988833790281063884834030298809911422911600341333425230830188004235016311279300599132338306026287038667604601194268125961309876142965307046034805586730980984654006111025942665021426382317176081254814204774647594270628551135950091489341925600588763241268150755949511547611916103848874185074154048659677732463476495395427910122041080683756908375740008015959303950972795871142445879516786533275204627618654716955450844722354318453005819272453619597325809069720577675973701508100471313724103844019363295766570842482121095691609480479697054436558353232414398265595234814621690408783512276238716518392443626468312051642781581010153830283397610792007323427134686230276526650493726573133139016251404544107340269894300131151849777365244127547687992153336067400208826691278835900083413695265430255081155273657866655921496176042892740052926066860881719358287144511506584839714608810424220313032964283556337602991363338817077689822926658090866755615196179956662312700494727523849605206411695838348020719305091504142818807036218568453600519887704184142304117287930691631581258293981214989750663072335374558213052904929236217456148435366179559980072351967371955152689843600969886807386722970954901441166612227665596895000686464085966748524393919667176508198682406357106526093826119009631811200786330625535872643590078891054256406939200178500525795047417603290165092440134140268607554949650807779580690170797482476617227739959341544388817218022119038970766433494219560363123274051879126335276733227190041108891284462806906249681318567479391976560953995897410482932076876991085298187032940414875924404163165586602622601521557106627666109119078254609048280684248096872900324484982851654859412856306805506226796689156726594982755608231064197569045965394346281376396805062430821635841671875678883645325127859548081632908609825042217118846909023322566224658738628330265241603329139739448246553962792473023101905797401437346611174473873968227177610079154657089465570130581171098871824171582453348928522989272772456622317402832146975711818606333714390514585462292103036935576382965071672493558933404968136125532386435973029920816635456092320633720714477375702905660466686953088988244505291746129770140374060161489211272397796838138575628614861336935129123734123926944220413949482302964078372308244944934898846277455879888344510290237192659723406213978823168328183082021545124101234506439947264694476080277498630972249812623894983830250004954526460399149676201488034388759288056191179494539133115551056504889840578356720231729274826495778644233064927491912048457817992686278794680902852477997221103431234195434840707111793696645191830530936997092203126737396498534800474163936026014115150782184913868328561404524718551741141414030145174582414651768198482569491998025597108386418708879985788618330791492856332170467351142292438511464725299463150728002758785670726946948551674795848413076949958306687445792732438353204623979241681631206247393691562836832529962108422984007909748002393025386739246344321012337009476022886002784908403912361000394400057831734853471730276651885131013297671846324857743571590840182376485159157952544835944352898231192786267737842809757830079155654387755215059325652480475079291959717021619470050755712724638109549603367892950339337582744941814573890790685745377516016605832791974724720625103157473882542537101276269731190246090914819416573978257689252937041102763501914830157035930626541468312140998127084761090794668112294110842473926114948032553799131209518173732836421235688604465821659709309439376277816361173183862146364013188622871179372993143455589154130328867733716419547095590258980259495605700330789841509663491414230701160832605617038176739705971937769560792805286584121458976197997945877852860266875888327270778722184296143145801950310485223692901297703305966831644473367926814517105249761566112250055678285112641155171891214810148959785511398160196232915706508584056067974703167459702835077223183413595974341058513750136266950463191766692826483713742891573882231977766648607912364869247936780885620527052547675621563219908988709541538310774899876146094683935748303277841005775350110097711203867611891960626467576338493023665375431198301344666615151641997252721965143984390028239078030371176314425181411068006726832325950493538101787330017075375636771320433339219931185347597160707291181508265590503525247586102054265572903207830722792440527101726050257285120137557476693678186464201550612220549531658961581335338577944709231952721854119882690224136025154570726845502765477091725968943439019662275852256696971096743553789367797774924176157965712584136625669241987601764343027288474515570760650139447724761457897571425982468351120741911402876557161807363178078544939303906261022943165472682041249799356581570473729006174681261267917312431471858664765741341509237083336740970792957452673682930391191193619040056323535857470638120682828315261976944745056614845460228283987824360891201994480823577263621157635179752439887420257673413766298920882810635705288163754545651077417149085558883023063246013500321281394572907614062901121861325348507674305816573906327925867418691039803912511072055467310006674848648958165052050464309345668632083018676761902344335957086587690177493395405388346331029216559670764410800051227879734862216130299675080001200272432501187275725882909893518849518270779718250064248645773265746132639849218743211189541426576854961829734758233694359210415165180571530504029781639334758262522943841971030389305216067972396726000889535105487343684504579267755666258653403273057596857692818561051444385009411697754811825645273007846672572048769526795373773477193694416696077829326058208440875574605851732711915292115590129667382883153676715530866227216295028894471761334180625932186502582001574653522000478483433809302785871624411519585556032518818980269829460437523291240080644221037592267947408209674572563252808422794163507012657583585469077631071413800995913845925287203851675818533567069945729562643087398939866225893095708555715730038775151296631436778764748924846662247799860627716403373849955442028752520647724885849581376433549069854379024383410739944198699177308699876583233168952643483157091586332837895742651399790568944703813296675635296263286800948859941819325828144886388464105205400767741301057404418907546424086155910918871229652059660883966781056722981917794317952373045619087696490087959908557526370609157913887446733359212386007076856989773976296571387861763525978663485793951745228473887181375444199659088565119573358993596150531209711108447073926874040424394377446484979957972069336013510307254918778906598959731630338710634837322358970764631892606396995611023882216542291312538984880491957530178757973201315585052772842300162686830499984177462226746923667407346342646484199278739798878132715129561949018348545060492517654608912665546256048433952856594460348964180385126553698793448482655809735628242553946658314671693487329912989166799517437943293173660663123063559012503016710020631369669371255438019714234789289500096641060126651686731430052359990556104216974623756577569155237172182851417466018583283726613553775430586265747124013888393403191413996528121389119401448053644818496599389286462747411680638738687084091434960693778628738976980556822095444094253832442842004810314757131514932063768102054957204320160336389151405350036021917535902154965097823320771766188981231525852295247938842743601925571891856369100184028555432071102827515152793205334210423879753983186553570092340910473066798982464819038887524965931577655643208550631866831258966670604192215668337161319356116048932926452516020300361863025049155003449650840101423746753069781097930273619677747572563619556844140083077652795561507870834311507445533713341169552272713331752986270828052932434939727807578086660860061879752757120733666694019746919288325016548277681672608813966398368924595310251900076868186471426064108989197893202215013723646594674560810531067361792160706163603906616861417995997087216434763432994427077411787889923622749470631081780671036612467672868454813549324779630074630943861948206105992791827835973022692830778770452415014382353010079344660886206225176845781978322294220773306295553992678618056757788892072175147646793310942007909358611859037913418681036404253314087416273894452444049860603914310994601621851584253391004158872385755310437647462562355491230448728714907425835918995918766642470525107327273122796626097013501900546147731814566354694196865686480442882243686672491151298116722986768928222035434667330052795568310003194749067881474276891107943677104626238431609060762494377849098886153607152197649138057445331211438759381572873921005014147438167188556823575664670094988630140403299424569198410272602378002162959261388103972167461788395599336768147879092567160493615741945417229902906772493088219109205044653698919350614966243635872152952754295871081972211541748053029975346545317661161837565882028366827760762034671478165153418518532626686717794970166658765069157028534263683401398820974772435389404522584295905983036926863949941071113493209899468323155622308404277498162484486441960265075920807743270203971178801233967771797015095181121055367331608702779820700999248274310741679906713459649767334744807456463520779028308276775944507018681954219136856898849931978985006278130938368542254255091937136130071332496462254727341830427654313104049210677505587421476311546692478616560546691789206360227434949958384733884930041168893832838025340989523363022663266119584501205343122949710297504767216493418622168190683737223162176224483870575281516493475090533787786863017814870536822235173258548301498565616574246431601205460116837517684865945028524868225976725182921695713041931741484055221588976179050014935492609007752570794024041438646511482441169882122810543326710725008026668875820487464581312983813948955108791854551889241386096486729578532660554474791852458847582488664936517411987975716241567221741455672202906393463921605123310274196598947208092076952923228010780280690601632485083705536949085352949263954850459295752602154034471557431267195823525069393754779983995672425466259606295607097256423872310603129360021473888535332762515780667798401783751035181923994179513574707283103573968354757185392197472959456875225442520541620043082799810613420793951969721039441297213846622650887292053192889059660775670608287259665109975108507948635569561710975320365024948178263232374424372862401756171958815592853849778270393503484086561170960938797599862322997174974152160969511569623139157750036783299785212450611651871639852064812412902960595835018508402564481957165982204882893438961611089755124619545454784432290036327320447973826377824937409225407533340479183684208167470780716299116710912361875502985849525135807445518247255439290457577372833990571616306442730904209449466802130068516946747650700767282730551113000437062991879780370199971775850671412804814952093691230855796328825679630081456348932820912116948953298895659730155644783148682891387482229998683569496378668135489453806014613655228207131325908009272041596376766056735365759912681574770581876935992528281808642822993678892849126773588167752401340216740015349578694725560567449823546043958475725338211817975834453465129887336338465279304085330849256499521176671530343633534635057046148670449824841268965248495834337075992007871398238622547010036726738916969165615820746177958165041891624208586335351856809317358134703675570417822224526861258592916428910797220603880230670907054935475743416700521410824533279250115824092650995807616279590050852750820263448022327630967506694545821735965850561062804663140841471284615501405621015454060708218757142879310045841691808391689938004155266788226721771155209267771026675559515216114603466548967569799494585363613109229998375038873358745937383878479526799186686152491649957161006255416563287218613282740095088554319588940613939434147834878745419382002533312806023617297930808182420497816630111279451952856805513631198655278613750066065569227324522685803444536552009077349383304402302239895206890603920275421399668439454184771533312019912572042565641738239378530880877470818617416233828045505344959171146723979799449035373876892014798629902951984254043734657852257350292594189014444550358478781471294783493279817010516097257829965133909417757069826649565069419188955241380889730687720630847132878613981277926696020596481959117969832020331448739834074424569072436586276095635664474418753212923113170152792526044867649279195009612973220700604557472326180739031706254485923070979648398409231022833568957242226470109494709718064542755438521449205368595085474712130785767543735081985983254918457638128433080997719823910654011021654623665327949969538777103561793783928794778941169505103851367399405997577713223401037886262549093993990804707207117054736834747591184810536284079123700192889532037153325472244242721988438048369972373780851449324855738288950949267593597918585949586521611395388624645537386513020639893113645253224782649362429559685273935032665675464577365494335285685696245901726843373842327829405358167650345640031762640216887531497505332804566845282801033909893192874962913504422317524541041321915682439422800230264934771556131564790261780897173173120436976298739751884084000477148683968518586475123840169124222289662616268190025803334782585446748635378183780880562636764078598520005981590727251781817567418688338469063426130517226539719794807355109833451205147165620857338133846129945697078239111462426091707303544341671328488234452335015484682336520290410789376729228344135084911485159396665111475232413579619559205977257886480796991341202368555323800965644500123402441860404606183350761696693583061969322781727207943888611209234295999767759807305163321834380498000424584269094793547152999107068185553335344558228621007072776434372302811948151145012786166790809723229678138755936915454465222138200608877030869449271090076480792602031293713274224940544736858610690549225401783072656175423030148875984263272194793871430536139673335984849667156045780267683050646446275013955446348695724447872382049471502948779018414604043929909310799018763480554162205395459837906132628716559859493214457474843091076646391214153120557450135488643511997902849970387014573724846546160050803578766007489412491602113841007458122768840531389682500083314144263361707896353204015423295164284503603917649320732524027928185011681625784367982106009063381694677129083537535823690055539438964123463423908776393257162822893102902058789383812134090185095793358651498907154382178184053655529186970515180956936016149502055279995609675857565447638052813003950331099185073931331413113996074790262831868564039488742631830748939346121347587954822203328731656783956232196486898071735572066316315408055875922560683405999884807980758871181825967580267061237416396603688583069028707265911823042814209751766297556869564257254641920202123737596385988204314036879677741096041023040776640578724417537296724370245598162979903662463859797582376296320877215423023478409995655199089374512374864923946775888250714669174833537004514902902304367771160953710885531591597245448817094224035789190903708792399197485414280548394407798172971442164178615268756242666521680874268774659583464574757376514283643239250733411897289361176733123676201239106218309106274727554458643373171775529207364075617480630588896392481746359882181388733363397209571020096917477313021857570747024298590304551821033091216544615424431883083454405353370190548036340166503632795885448859760989696416496016692000857877406437155224078061927546009361966083442462883200464770253547682822730031279208259355392383605641398912611417209247389760853783662700415263111579433053923878829719860950948348410165001608085029688113425428352169093577928977302738582005684986267135593763106131681369194419881666283201350323138815471248718518678428242376203073831573940165246028705367917290868383439725708820101383694961650005897423933992777238948874216780201668418319710608546728250388133315063891781652763530728114945281926637024980728650878051003336114998736554398572151211587992839487057921896988798058881342302848577687512748776524791472871157498309770973060180879624563101298835431663412519918564225294759759640319694122325105401494064900188191488592355001874904392392334092331105835872918032800553180412688114151983617919215807987061573458279478194911861299066268620153282156234067905914872535050557809498523191165796738705163607552848401812785120196927899962326414747925402842905842470926085843232263417172049862933718240777066387034811571650202886623106776195987269210403388436465730962122307262740743890412391452623554867527045815216922245181709175662081260698065299245511766251923775618351984247648907354616623343970219793149021446445030505695768549268103349782954392621217347088262558630142181934957991269954222398487723243312638572986718712737308110397499572539073505713430791417281076571047205828149374260727884936888596669789667105400694234553710336512042596148958184669744294137957446977647790710750177138402405928127895282373233806013637490163846903646713365588326220268897103849072423839897741932685323873707018526777680314979234031185501878842970587831026116096377132682508517247405763227250902478171854950914855427705055307477896390602729157041505755233655278686680930937303382649653151721051021369699368186027833714651033430514013360231384541220023850474308715344629034719518998426846759651112863939596192214298208739213528626145877271660818208330952858651186928483765098230375305244180199190778180058380339579244937943780073217802005621869451379146390081868051029035210814240415472968953437777626898520523959700626144557234543867474351966490693849654791362868989271891737518561281922223620511156752115085400483435112658415633454430998759809255231513413192942456330796452425273332543975620910175295644932221717266528270123650224347376497514019948113610282650306036128003774894505759196781413952266095599591956680246315622074245127753406537418354572254530406119885975625690367752741448066326205841122505946641805325842845561131375084885932313202502132708826217731668735202322777891200217521573473400512315433778713924370476804021715027148833020737151040314550453955232452937978323865147388630350841785636635850155662588570129366440019628880474091747000373200848058477091180726945061475178451285717735738464993940269644971354138680087056485948635409934850661207270544148448703584980196856555151515332636036686604078253326234279081199899380342548446889324872207351859849010450677284874709249408495545940215428318175429932776561539124024893475678369270466040102685664166993584016553510480980983758723381399406490955767205288979672661812500570550691120220238289790187368859298514942734072149455855187650391495240185227716659046088194594536876097231482641297452138285726344276372814984610518652625366713046162551168711591162021475546407543372534734393366232592253571610520256786996337805507440091106950691214531496313986940808462625857495157837285788390900968413170917774609512112782185165670834010107377423995846171964400900716249411307555560829992106055733455008166776727191187413743274498124297313776944097228796250593688949650395016311829969551385014709258147142202664907978963705018815709157862632721161301088514888104480240555215456958679626211315996363652179542992152575669161964885545135744600666382285182697272173910130746574721645769743314571519563318144088874954619141287451223585047996835734555520395230715204750861057259033202050332006251693304001150058407501114836823212157576775206565786647613641806008351878920254165791430646809404506998765969671290886487363195743450388895199024687557116324010427615377683477244785732921390829004961733368751025037700542068204805608979511913707357449683855088334428199863795030052490804584138572103959012687631016736415142143021847818012370087536154049593075359324120436486357411704966619939794760184269143664656647918550951355172151158758806225562315974549213721761705973255815683158647435721979224611910135399299427346841131239226511068360581633194367939795355339879959722493000918848951602969337002791114724937236403084053839763386116379121015013493924859896308586509665271413869179029249930471279091441698881285014892116322538087051371367070335232036591556724781370396392500156310326561978453152096600332380467123438339795257081205900171543123020752911772164776787478995093783427215845848434793558181057992958539647002395232948251342940498241800770643585062114700036807526832331363221772773954119140511479666751128112904793089955290494780931984565931476321948524836660154824932931217534884560317008069139667936997299112993732233500575775211951975007818347619533900350582170093939848299517140451744617715477870316253062654417104673708504437601439830642587842979461619808301316537362651776586928850795912956311744917108962438644847940362946338202852200043269123312122480956440256994307342220773071450804243428889743019863271751552901935720249521414276139069108584249092031535189881076226358111044284267925110107316095802815015660412805281812073892344258648546098067839523641444334857434115201475447042989716931084103418698592571882159009009946805046448168930882662262333737471356082878010720979080728514342380798291532412771208357664615156016704752938188754452503598572498646516017466116938845797262919456865245069932695560713849661294382457158324952888839220962876060851395908436115631205925551448744293054159044831584958159390468429663347967839192091086843540086394885566069561343703473209241306945414516725850000963487729694166046662269369373408631830998267042556859056491351568215542751765737528416227816202388105800409716327944035936642204061092668363254069049166095967506453470033576843801338399944479472418265220306785723824118033377919106663281368120821192190835038415755819855949200828235761290431014082695132803086867219520290898326337768040384805345808870534991180455437471232260755149148058313845306242069860478065240737190924071839813960966925167503519579720922803320319242886603165880409176465417786421631687128017350877003144205848527350489346527772805895495844975008031446274885811258264322093010983084651595344902722520824959102312813653462494138967863041104402919235994297573166546719276058238115538860206232996800821979843112204294539039107987609014136944074537555094327836384928085760370312880086371044036688219514979061682222083504433351588294848061486121236335890090357862956836747546382565268239161193230966975451302839332347081032815392813763617448021183584553447253895873534682881199456169293336447907110272009970972404100855640329977339339125073371417153559299341409543068321945751476436373466206760701795008136619820543055151413135510297277524779745609198602456762896781065682558643044197548681907601034706475252836631434303783880480324297054017177285755226745790945634623459760214264392068444492946716502396275614106621841865365846790734526844232912180787505692073913157440369932500226901794024602710292632843570398242954114278443392505067041017154969758868788178517232359571471901725862820221462549428854615676370971715840747796093184953183702668177490120722553362035340803553725580325153339732990835432921483749731620925704711339687955854132273154636760837188112342351509854709657277921752206177015551360379267767941603393702766821773458990212814160598492055225649736010603495523730931020444142801702485762409402549758906990448380674214280907717531078302068671444972018810397174069144445789163659328180825927535549891378050189820701246429846142988753283689249796126415255556379253175039018753495114604020990538390917347191610672125551752377541408290831430380216356322642926795248674206001544659943432909258999962614078204521452585551677317119991235221932716131113591353911890233312066594602977503019130556264388912359998859136986401268260733790473991833949175667337865912271108998932538506571554332871540319050458050357755017047002056428186247189214860612201673086845495568626639814822611962849509757705949990199392945715473825388335186660839493259726474288990936025814447151662186295428439391158683630495438172269229655916776339697633690332843393947689174249893508651949484702953037258228707868743488944663554448623183235716714560993173213579841073575856939559939892484246149972011048977870395705704896717443888381253930889735683991734042593143106953433844620890682052600162583157519504099608324874821611516732850068080825877291359211002267536014003424125354575258922460109138428287197583433819268307856785411687208420769299312895557779494181562647483896164550585490911334397517389763156867637542660901346139603521720554840013159155462352210231482075846877078905606524344232202167383930363728464942716353740878964487596928355937611724305974391100215123076992385888669004087759438128903249128254206916736826114430282176255691661607982301905730173124952163177714434668748640667593810389170854587549460141762794272617103369198873443626424545417957242017926751651309043252818127902122100521851801257218149714971941307891373749017931625590937649375071488823038320792695528531421591362338402425742778462986534926004389778321928567180377977866439980538580726418250237713872926197028710186168674272338119083209290048955291009522698380910582463155825395523671502604926768611513570486459225284217252171481197647669536527573845325957858457836080470690803763170982934815305819526495994522693621542496691672126869948016326011505244620792754376637101814454689771850810236592767541614256494762193215776142305216546938924010671592626124154395579045268913517318056969290474050395909659437251429941538979398246568972434645227600155840682273478613059295990905326809162615681097703330004643059717910348871059067700737553467066025015378371925453531170895975530924238421645660551181289281807268296332181143328308565744643019636747859151638477047786070568617462795579934517035430655138513987909354468574778965253563093185383105178265489173852727817517247714236490216407994783263041099085304365019887426909688705273086212636792452852617249422824281444225849593623332024452973987179440088746467337166347742315429957073039109905501389806708840647256062980302076038184217597417190043806911802354183878591157397192192433619615236392268552077208186321919055224863647129048363913978400548673829277521602752397985918545794634234400419701300303508695225942635313256327510197067738264977356683429800075712916776911100049334482798369554411040571156239297450534409078040695952885408212816896215527313388632568497272379137228956319506560013067029394872884534359687403449455585783430434314588958781262434933267526221321571951026983956203572101730805381426160044026825531095391554118431071044038672308657857171617897716775885381441355750035618986539447533481645934269570257667351615511402427898257842529540724561299252359239461553298150065634210683828719986642445013142706429516113757159727889736013676818606739066776654198222045284945692454618344783230090094609659211087682573465492394223751574477247203270100167389139910243128472614482646482819693250369155498173916036949092657115356844006476503257546496866514814170920856684317021235568597805078499903186400578944235353961197509937884492302997643470420102679780223154241034568582002294851378455223802719585401201039827226503809484067583357268897925677864827719633345281036693920216385484147311133680975662613302045494375410310053258809029161124228501951369742422249325754039210188538835381918588375317508187025329049637863703603203015895125247576335196482964756464955902954453885217943298360041946655011682213699646544493589231499452814001910296087677691280550969344978305770094490578316174793531353297204253854308263117732082641425531898524698618244887244140803656164477754704062235369935544994648203629399028722782145444872586298996439947726384335801028225386698198700348536124107153101151574997346482601206148593211429205752505445620349709308176801266638250338298240191883875017014343201142046355813134705701834453637851101633798765450991247010416006249580440936429057098550776219162018708247694095394437076611463808075021904687824128964843703464664020689363602157650944490126692721955498591105313778838652907878337040846649167825380894944389545906473193965481963808437984760248373087783169646439466074043907779779332401169997845184573639321183445115054252941362797180823718552694489834101600996395970177196846728243343725498295694157241608422540293417626311031724388267042434632452293605721493083705358572901238228351086236787694684062446058385523854653087482088387020083840355403550104659755267126686765020394843641947219845233781935235844519697114464331112454540691028137029404508823738119568298647148453765509985468953356063410938733754126056664791898570347107753232570549561354163381139898854876510790727599836914737584448559787317473129669631800355777158722625778557698875379602319810167554103491483935872030432027899406895499760282134493900638649777017114335819911074753926104182620356827979008135058080829611264454588829456019431490154818145461705514620709388814702785978697857678952377162860559447241012309246469778401498612423790673741620424719485988428692325945187945476699120491710266516955475306429637789009468143755938371465825045231087493350035532859567455809851811381059192945154802661699135428750022641629324726877039268225420771569650365896227754386246835719270070985635166777546886430185629124374059003086759612275933578953454449165261183444451570304966863572915024952900387891605028946210112945396888179369656599087037023299563162238205218893110992559576176587511425641326937509408152870501197882875386077724294682849342908807785579681098043422752194277373272321818629164122183860715758425475104790668500176321530386702692697181292385451422330232399173968388341002725127531620612359569932070363648278607797209992914098835984473793539021176794147409731732048533157134241057197387002580127783502302796344480972982290667076892356752690344701415577318197767031780314807248424229531146751930935369552057869892043425000423098177397254375053645769920385861279593393811533781687998984108971200330326431264536691105202691053435005908988414302401540173330428478812064618293305301193141634235634015869662729157663803258979925085919938943064061525493708131332004891246068507848831341020038840792703495976817799207952568676911198212980084386966241953214057816238108766857952846764419459512780184460047286586355139731903476375162229175677992742225091465491620920487125392089805486804482451675673885751892805340559336590571290571496295564551897685642741684387345772800091864332401801217152257519938762291615925004442618036461488994661521214823286165149194291666311094579502625823763838145013885013733042616916546895791385807383676789300481005568002540184667426235866526451238572885466609187655827932983494544262404128719591595858254712584774671931382515715950390698760913795649616135386535081307311098245762477028688363867226371405604440496659657495107690612758358204674954946326668795571736934067003110340340377452135455202426077727963866236266151101470071670973944156104195205696265632136365514811730628416747006427713311694062844825249209412093069153047989367034767557542622155184528877702804716770055148142114851316309167266648654969175252426960591496781087743404682153315778058548003060580567131025982106431280616601366315199682017095638394261929640169612084943438976309136815065361925164015244016149391924933059869959029484415582433890563015229787450180609983415203452111737192547747462267732051472027867246913050230927682493244677163106199644605357363111742376876518591460738381937262375302109155846415735235814369142934101588495981196904777938019304217972107357589864090732193631144366209789371284146961247912302938745980083848439001857766558933844123650231955827244165278874115694393285385246351207386614108700817422842017360547049066959654041643255669775119704352283009054958483982564338688716543532419340538706023283376804348640462435047999102522963824825883876959668519702346405133924393605884137314078103390396435748756984204580993795203039475287818767056475832609726034693168954198500603778935217950314008155222239910977141302593013795962171173628312391615358240805279293477360569397688717602875177492646197637353922284700494314240747452674712426618908282308527135827761525260419575257092143619745106778897530975430894253628037680980757351355537329883133661763147006082219407781180328872570878781863600678505825846998368665224018545709105945238665431083672217189312247078423870958001841461984138663653481253062706247111071387593212613790003469708086548057087054798470484130792614308236027477863304979609588467821551999011032153051316853330678923714515312048647497145488351478898097631602367464275183757587411280993834779733806114219189998639819985796079109067393798293806732299056537277600493301465304348755387843731632852195824454863766334734018668819429753951062035646581013746802942909346269836993571763219176322763006751342366701161811446650223194710866711908553675505648473558473493763507506552013456505682693674512332614717397154154049304276999469391311831909983295447325457254220562168248519145017378597906143629861004872047536361736651572637916893163560722164735850411331318967214669681823730224470725029807521931273262740698489418843022862302953306155207892661708398144977829775474153812146174499650693991576743124638281787421352964187064676921813929867229168276286614076903258085897777148405111636479844476572603697192493747198999106303953930467912934742535629890961001617120693026387860184388742763580374598403037134256850151175311477332050407953584715980085025709544426555508466724577904768806621787228476570413567976990533175471384020010628031602934430835725023929240526719243774729826701763465587887211208356721181254287043499624588095646607392157582862528412442375976138767516828519279912483069345445282083817620074022346171631531425922244785594475962037418106433226237172920921972158885909764117384003242202926818946036134609437766281552362795489576361349105697644615704875468197763673861049681478493126440871525958313592158288243373743911524742521591157465285953181987395012531637479459386634695102489621430678245042361643917930703050356702498195776421290752631235334011049785770445314863102363690085146895206504901273482825639876017198284981270289428777865575670492135656932646411797175442429069091470481567209503258617032638522539508012711887814215887140846526671852283372775922403131655235293181961160155138298726760277688438158101122002558386133897213196675560616953580457440460733148794425406861839939111583703689891682448770156639990794858448881003926774158091304702446445935042205932438484533983063296758774038403448234323398010460507940724683338893713302529981340707287567872088131509197528604675068258322902553827821200766419515525056441171080444155878087392359542703940112264050939593147462543598495600460947466499940740843456568663259488840723206973517047859032131075899894190852949272001694367546270485324692270122825784627573137427091158252187001751260836126807281993493040379917734285286533728990139271416311594555895751084874535007219057964566769003981422689214102415046033416970003075551448557905734667121678728829249023554981842325967571909572114556478081193457847923910452865701827565795626246040866599138147696131264521475043515857306446039536973883388102189368402149423855313994046236406981724237351297143029318750430703274870006975645775402334445019666145840245321015399635236878593730036789772911130633776860778801734659569034419602350995453772176300601063918855217443400265814872963809771954285102240556364929273782252843693722542247653031375798080595456776605488343925428575724079498710371344333426065917559292710716244600962687581369616252360358723769241800593459316461577186034531864151282531169182573635423151729322004756952589024957185957312363634848470861219768268530499615046141142553709602324756971915028063820272384462535607537896008197494124140011675112399064862030335668339357519515380381029251521582842233485264757768419158751661075638101254789315745132027398505885754420615721836047217851360695051241639526934718962420736300522566870944563129398842185650101575139358143189046931082052100925271822112987206304438046661058516732865501150346233693206183547448940920989667672955499788716347168299236695251081241301788668089116335807924654457965946320254144648959789454483857029458580563054374071411714383373997079018679325918614276298934714265823742569591046798858739789407624496834727794724335697486243269041585519556174748127843962486050679249709811353884296664311829592615017359332037411975002632152573233120361194045995732637121633508757860256056328370325548351123925227435872245025113009202892927343908732748984597206114083265922663062142940173427981709692349700278335924695478945336850978389383086370350757196344674138846563937092982228052943391726620395564815597504188026928318524668190459930403306957077277402888059513583389950402678556492031634264401181718981242033730597647048671798585932124507511835885906166547901499782939949544871805149280778968893183068975260668239897687840073732512979803178470805535284899192326057508972126935827625633013255631236478071931216318324844900397851216367396477391744280463593872543970165552549760450755725180286197848304808408699499242920494965774866243109702737079562019010635380177355136156825981813835338845620445700153895051551273659186860246293280967307578972974673939719890941525166622634306144934084207969778115631175116549661246035739582737089191524383688986399411545863456929016041946268216924609807406952204393783454544544859467389279646276253470646252453907541461878309521635848235006809692466664613850308059591718110356754172246558684007129583679183480041601190998928142594754929703183293251749077590482908462826201307343428503687513962133146381840232342619684164831410995631652838213108193615354660782508642430042614896700386755153078899502024578566248891011920405355100358944499796345047978896808657577481578921244318507089781373017106887094277229063409850849469444321727481471636785706103098670163472741226562672700892184481674682259573635201364151770358255380945119604077234018384337579686488915257693659648856321023751161504534675254500231865188541263381423482839025976795180379839017077589146105094661701487171638661439955750382735133830191108796620276322466278619538274412821926825708544931978919045838299680000311409093771797059656915367766116742506567442857931738529127204167285322168096420466419989965519005089842072373532397718057374958997604226958076405964341288074901337157433755445120042537894680791928729236386671754766669847281894662062357372999579442594227871949152081025818829141216373350394514653365986062972021097594863821201321624294732436478803084176556597595011717310885368336164803380497596440584944839199123306765604591604668401330768589895558779006169066561392942868641169282723269346670294903359743066552372523820251168219740776857049022885450588311233469347534565620023237343169194096749909422786499573641325353730807228780539990992329362111387296751095583850719494634688403735163027338554310983409574220382770740239691363331781814044136275709839474018718269529454335613142288225577538982220631739605406225186072395224821367726480747739713734261941238105342220294984808935538259176924989360304332108880716115824676993867534808351703945188537775966116174985789593659876546302459257816755246031037897566344515967454642213284992697603795582104176181600792591923234633956887164086130043897189202943131974231845310767589634393477605343346414641739823193829741946263513669536616082100666851523605151417936482066672124661022697774893425616884904619058652897475874758020204244631344795557226880234814893843179611746312823595325357081663843964770508184285144540573358153437383256486890134939662183597097377973179147475770740472645748651852665021217117204285154338513704944874350286971212479698233707628030049109158536067944475849531488907494937764883554596137660163708559332964137046364564543786689258415133545340666363987026215895272047482796461882189201154133052127660786878556830325660521172562740047285492549389571967466246999607514087842594685766376833536949829652414800034978954904896421346084415468416080220926723377235087581476215062393879059185221585365692102775150382842009901841484819351060494623260253098754123998130645662939913905106032593511436465137648204428178636743843406060349549928559724392615843563583948137133468207209473631989264800121752648852480529593288609421406099918890509161037739116984779541600734379196984343359208674402759972326239045649207340995355212162157256750297918167132098796878068746052739562476658052764961154074352099097767968805472431460737498808809645555774034296745970314358140137486316578827705812280947241771764119504949894606969162127024208602331567610667728949822828517091423466320289328400366738411216218469041520654179208164696644828259007481462396425745433449586082336616194297016775113121007895498313695318123789098822216738828261039025946527600652847669046638518693888106013399908377338882822103491881132916415568279997991042543413578375464929534501713055636217185648880641954079564633558485319885360206192518171418937571907510857950135867094135530994721800031415023293977271071285954922307441336788361234616952719234188029650628381082896474752412676904780345980196334079741315104020607754913168220393777266329752454406866545886606194564362277635817648851677354984513585651120971890497655666737440089091260322072957215832489970815023783502888047073490998380088684301405468863776379599944073616359603310366339667758546261132539854089533168306157673251951088727772536620782710852579021644854534512584353927571660648569106709824202961904115673924024575939629523193480898884442776122406679043805448010082707027792433303024554062502097477897113523777102510059765991973615872645743272528815425681980906223029919231257752723064840236365320680264499561624022883161802595662894609091493699443055316617175114805942781655377629322926305954491693236081891633426314298135813465379097120933196034852870956530483656636851133566739455737920632453111525187221201634669726088125541168140162730172958942421686645057066130701678721782980768829192906773698897395246265635101528508292254857624034251274117776392717343124568876635607560612629713316223689358432345409568792789994396604147966311773687676917182009893997640756277935131117373281106780813872654553557198087230474996575812470621514409575422200601131054734597021911790316881317172613261549483128526376449531842801672366854244784312180594339166231806259872946801290306573872046625294854685210192747525975701365897429847623182238941088548298213447996189404956390782602895164751549658795195738904816430658793481782665078604095044094335772851346597200837426385204208430398044776022528540394742914059633614748089025147287832869950656488333833888410850098521668781293949286541797657398677217314256296323872449477581340004907637085894617329000465134823048688255791908923072948302459551399167800303807288899842881906444254807738076489405675943764047008861960393421115353526154874747080190902238937933912799355029442428793206016609744665866103998695451855124405572441013250585956681735047220205096705176652461438057361061689088787633310873524397290771612778957377620498510417913505092464523528288234879003278258056410191377083162961939747818643031893004158615587374309371502726098031079848993352809301193357892934837021946146503624609772908130233134662873297538717851716517317463078183430764333135195297954085860265345753069421104088228523130410214744595742696150850090997341280148447580268228730510203598489553439139451092600514779447520780611361550259572974904458855282675999719728649196913716859882429842822942313948661438243406700466224371919555868010024889548934210745478032812945877936009585919917205221273651870593563294440322834758302160265102935646151944098581038154143073947097738636302666890744872173530681092429306056458072098806336508429763582552227108937461486565256557979760922118313038931841146781451071583054812485709082936123800671933152800873750957437843070421418030590335710924224195544264682154535360317976791681014871819157756659087616320565369177850212066022918702291826547380349931127885154961436409547822649251519153536132729379774679377574025120850087540032258360794828445767673416398163119487821370057617578630785219326073869550393505805878206821095123951425350912049907647079880894959120568527693268086225577664520596070637484743878180889225810280408720368202846862296870598135055693788030309418790095038864118854309019817137485867077042059660314190283563167832713535716256893077684981090621975238426055918650708413747339738359736011617295296896273003529073568316942056139445375034926094639094690507216445791713620130230844115767265909762622784169465836031725974493132488667842083773707257105579874047468492106432511045391794213052439197433203850984104395757800071859943712590791344226718602544725313737181628069445341578415281769508474137900254085922275324278658912558770252518617418393431968255806274416684582793396020999332191304620377969862876009826440800398200223898970234361445099397593873850024855361488772558917093521771331104410954272122370493611911700439627750997646659552692042425303584711191649684328514072220581727286448971027968208013761151330400963556392543411695627054519308534985473061728930478394241578918803650585927181621194202641904499560051664406278089911385136694085948011282204617373558047795209093829058292947316182241564752144832239623218146889061731219596872561688026094181885083420070900744098905418906455392695004989119576624623597764489921776181073697356420526430196669883491618340284914451893434859741034593033092917576227390934750253856668221708382965420766522595793878033931808827677162874929477642035342531049559431769919038238785781288581874954528538943242935354820295960412545954646153282216050240863018989024051101784449364609884288026568251646783343340544262409932685625366288335582519929820207933136070675090603363694609849666699883558827510010636319647559718816694162484594566393466906597097350881216520456591569562337091757859316813862094532707172962581130140972436724933619038422378110474645847621982359120408019273209134728556137894727408953504352861987277586741518993356236101943848563915485753377560344474437949990745634720774010560866343251622886807585668918328902509220891730737513517161264065151785637074201802809594026949971289781444223302791875182410148528601053852221958465877361277145940905506619753318864575183068806851267421718854593224814953503708960783074232176791110797215670463079955030919660020537329818893147343447381265220362204802506262227693284033499360115269776765171481729407282224968235283271243843604522954674955065537064024891292196168060347997290434150011323302625751919256396733017271670798098621719761001927788166650880135348099270567921731893858859409958201819668953839857460942384685768369641862692835993718696936740052192177550750690779492261827569327469822954832885224044713719641925571612057706151221111291607641861656556721445354055440552481619952123668409405586873645640980364108737833362163605450039554473518664612622301803563237638676941092280973309736539136781791919398282613029210001882859538946541346194402878437604946293512717661970530943087128023104717456898783820882766103193476635373236264363141519162234761451781155233433718074936516551847678871172748460634064539339924732114782217350782426618830956905805535888039616552027134478458489947597271830154582871474773173661702840474533301803840322714627058369867949662033014188751953618781217969850750054158569228467678948731991238738965192406747138376216072546691062972020062806348122426439468604055736852269151323002407876779704081025239159927507417908518122150056484872069235347808190321016901383857500678608104566395809824177365359726583851097148003904549973915747560674898731920678011449535459600711068895064688010151562865009400344932562428456350738197242104095777666989386665594110885253110125077986171323944627218533553430069768867456180183393882143397758250937054105184991662524079881953022429812757510587169795785676471170996531045124034197160545462618690648764773958506373178353928823004997562078493876379098640908309115545646934518929247785461295724102593133332005505119515255630904430520666652935834126659476018657468487495578140557249206826268014435556650425646843141141126405721903056515660471779930365394807713567664774303430542808137718923943732822207670019215878893488006597593897145329220568051531499650366403619471170618587141581133035590113266172529325836104820250466727953902973253381026715694976129320649779994092958533151057168022470705049252176484147186208276635309431074557536259205423998487143529101422186442628997073451633211873003248068338486019410262020439589869242154053717685150212444420286841799114815121725072203265284813193471121860143004172479213799694364257987734334873633110939578271249137626942064483096521266609652066286269271589222105083836695326665731275739151578220602608283792764516131874307985103655410825210595635692299056717234880654986756781709728377602653069951404993009685726839578160312611332210760994120595192210546902963903372227119688164840945019454468619610052850179796594254266258752136095522296693421340608639704689154409484847765763223299812075107686783125406323912920147386326059548520134492566360151595803083145049355701658742425284265780489525528815755869477038584790272135205655933273425731096789303252401332562660501146900497275270840045150545429465524086703692910676227330492810508829362231245892870464221907161513132885689005691085987219116730559096734631347049612216038841691574046538515751049589707174041036005802857212703655395784891070359535322811891779000092798549976573706047493832754913021829481960868260960143488996251042363291768467781189881482249045671938367013478264247910714996648824749807671180568239108554234398497705278865021768431185865961211043002068744138564856332006458906087279581289481564077281972784924547605487857232536099702447311311519734434716212063856088897104222529082889333222788406360892029130412627789531251083229728909526715895171606914816579703856672169105275998015018096826150535116173893897998630677942054060847197189213912472416704043019069770361579125707515422287309069250159760073038083956097546556677078703717712739261907334554091487220703628229799391951979372644626805903012963412629139245976351158710786624579812983781532108878310961003838573463251487148087153044093513276311532650988401916404200748286894747883431669840615624755731175270632528420462333073086413459661584275630134975466707271537782887166616660907465175287917869200457243913293182152347153158785600421439628862488104974093335855671779189890421568646266976210121315839937033876910550387062815531484974361253069301141893748526413749771994412313882324737996313263925519996599484613308230440472713629050907561316140294430616910249412126113011436272754933785713168533667973688938193063281262237802212758431587615565965538919296020031364616883572520852602577103168352198712919175834035673463904784241035833050756850531844141844507538635336070206334108258520147917640085385783983299728115893979739585131406137648516276360950704019576822008763832874988188645361735460997761135842648338968498984853015679536061701412039296187632576149664503000580335510032705225238616112026996060929495145975120434150299900955233632282705074951489624745687423346985634995403222781694414537182720305046697390249065662145851764723251518635610479151789063688701888931152386887200399240608622851648655436514638753852785003075055144597724483322788843937976381761958015830471607234460308984541900682142467446867389545085582904746526011914225571312637734970812697141619197471253036936325127223043204212100547738311128744121222525902905035290312523295623887688291666754044425393688199888420838896178367049219276585284223512402034421656625511568320882445863887410266070896250094612968400203911479505266275759008499078260390813285606406373361337507993217612967156273784393413131878075696267223360979380175130602049970043135111094191366863437410035859379233925082352149993056843105497873418579494207146238127843159535785320155592471083319347466125363750143312098068318543002923752123663142625611953799179799843447172702146713122157630817336767606036781532895503235307363118532713860151887868334436637548591614334071882907356353999854784736565113047446920437833123003775869823492587411262675614857195635884974622274061578020864793361230897652930937677965229877050672605167675064180427289413067089369301418625716375820882964951059553928349791238805487930134450519053324061679776319589329054869596169759621895286990830114740777216696891665551052640533382024524957347989870666778277479742985958885846562329692131638868135591999504358623129160865854168753908574974490921909573195705417277631165526580486747597260418193311139413741472629838982776638328730609287127273558551250528541264314974464074960414862675043356970690852197650741407094077618727932062584143888322380018131203059980655583484545835380328445353886385716493282941894591288023593839311124543801057591915110177381865234738267580534337226261580954646449258450248093633067476383074757888979762644802539960845963190329317708788512325414458065167456485913914628586000859609058136647790831464583288606779987865385776986589993961117492370286304939601301504656790775973048058048922747427629459327312858459557043264653324987398294327059927654755543932739765099058652226792509403991826713414538117709695520104294240364542057471060479291272875647921294393822193815550685472170320252932514913602675461032861233334862207261401299428125877464189560402579787116623624480329013635526848493946547976786391769471724462018238644229753342789063568745239016163463873384361880104371773955939244830328158691851170414401220711815116806796653343180356945007771498882743280848326440412137795367059645264437084357503857966584294779096869464883054021746312471378429190702207959970884419124466564514399233804856434807204568153962336425114332750601132760548955457662152805107205964644811959040357821278421357499298898019706164068729069065195962762405714071959200099574518811228000872179583462734179275991963610900227939441159876978856165021847668191021710406087913880062127300328179558690423598485249266194242094436681792169435771819781942386995931831313549097554680793254969361846522358355406252977639024033729901590001101835077789395743353422229146430238404560759685005145764443930849926619555979907656541000913476709041684549950021342796610350518194928573376612872869528320603124050741604535901105466954383611250157253185769847941514869270380146329609844829437156480270766749155378839674768316172090775487233827138411158871097159508077146174591256402726911112951881109102373042839170048909472515342850351478163741346536076692044339085478042639432967318941339525961937644249544309915773351301726737194434875002936027302067374240432783931425425672050869992460781616747381774881656616059096784552950000437415235055676358838752465387267946444120228467892213281037363521718563364051863621431446705637349945619617556355993095051246220151350567641625257465184013398627541253194402819746775043485157705858998761679005014307271017539654284486658365783440193145787182121213170534897430411413486387597670978047137245315731623797243281863124670638130777540914352071741213174409066651875653713852473072186414887283011997405233418940965687272802231936238476195906769982342828739665930385614486425821794398567828977725035351230616696428979502425615786569468296449535052346094955533358880361376673160631738395344585289816664327679649761190995604856955962968092672321731889048494994160241435435643093601277743174691498976604519284665936026605760035109182536519028729134443539351531754768623937496281866103158955880186071829951331060031585684706796891574431577485859441497028196064823696948735938834223433379493198327112400503551456368413328776108559440601358814240595632045367470185450013420847567289189696460049509403315994159811628685322990747048184503230959576214072965224979565844567623979038505561086573384925907158134366050493750808273945040012860782844759849621328030866447479098399821629958503118654930823571554230610798682335602209476772689930023242169760803966169681143902554439885029004045929690579047600574932650465411478214476881960141995138480913929141592353092161134864671840916307428568415980541518330459539691447430357788808143380283097423455614391362821848334834287947686774774793479757806821451307423050259627649331071968628789522179318125153138272893138944053258695619432167811034695073707292775422284847882089931494061878553070542060843441624027878542756429081586958339780143330191889938646938430939011508200888100095111746480199210033492295313558487587889015059208444382462287207783728727578536011669139721562378935864004141001114850602807977018716842357657924230356459079413941904185485918331500043207689545947113145025037462058997952633767716296603211614061721942276195148866499649987094379629238531223109366037682556323798388279914428323350577171586884697858246905925471644401043439087606766523722045534535783120030809015191434520901333529108850481700251451161724053028435484315855881804051343131677204089313552579647154747209924190766381512981979034852767677757783994318136931601486284571186999172026434296582257586415023953385030720054989794155002081441142609865284324275095475762285546127908239679549238688946110591280860533174156619743069734380812228742460295888290839816797341092525642063626696611701222626769890780321504118831783942113658548236111074828520720920586117458834677652162125941479197354915668727660093348265976639499627848782076086883372630048632794889543362328320643776331289936213545930766740437464760800156070225462768273315904846861100670469195642393738129373398779030959648250687856957451267372136239982820330084156899272310019169330674789912685275551066113355387509471117839771744374161992384605583662229530011335537496651997260702291333689960115025306180940557916756222805888102605741908012630335209876334825761315840422914568020147255068376942449778908812141062757621992733657746111326478029520304477905818143271403498664569293718092017045389818246629113941656771109549146647079459194857879403948459072935118014178885227234599203229478342414184652888887522532374049963109379450646797374388792492235300026883168967269494989691905463114202582681784801016748448632569381516544426449660435364325193238348105377304323838324267431603198818711132661596059729711147845177762696261279509669157499474811722089115732517413478929164468775004619879216762719641300549788000745829520733641347857021192043885804450724893163424145514245536472415926238250189351602066564670659330273867595295548081269798179620480734828529035554814146083814988161081100849722938405403703041432289087613930890575696349113004336971681707906123350271556798522350805744477087226892526318167817829127434540182226456379932717660566622629759325919622556413149840197168237751882355111223711578792877203755014544823417986673276378754364415468067414967360692455251606496471431606118981079234698541968286249192545706036885495291939986016516713435562757080895805672844941009143009502663556617103754526460978197041881813169134865754052878567531009571652015733777222331207859141783580690661678897749779044728517761161372779382286111617421373756986156734540025466235452202858005617546542194832019402929279365093351316474885985366430004125057530616851868857685965196912919498312333681415314008823790838281555502766914810341120137014353535597320135051949480715479823424624707647035260833165951364430497381595674742568008387351933264323318341582821760836727964526949202754389232474498268446567409950561499375469765255279827440569587420745830348487945557256815324115457680390228229848616235603449061210186988553502497101974583964590751087022079067478771496674073801264799791720313235909552949556118720619996924337294223696158582929779777787689266719136545917986687913169003400688433096267676557553077332031327092605828404523273231761989499133339125137148455295852186582424791655269400402213443881144920397606161624657975717369290191660328760007959533597231898150545284169942117627836205748679265944779969275618116972479283361127565168956974649223365177600398542438195583249202464273762685946571214505876581354872481252681916991087213447597121451957117380051406096990156308890399553297048897513187810635584826482497580917414735458709686864171491082644228083829741835307887736818674846127294332917007445866319571837398705548399813421497369899050628849216794520911968699714950802190020568371347905293722515313937888986852560187941613510223541758407609863136536181973456525776796876178273487470051543389795455535491024594808553748568646854463939264576810529651871065498516930936609221099071135612156870866142266469111069983497012095639841552021856351391898296523226807012215546236550085734903741792635708661546820194957479644061750504716899660009884631314449672783015579233971961755977313433824765742994552264952161881741781654964475491802759192066378505905673294388793750004997235810659103677228321779871459115494365956269416772443265042641936871290740065367440903487207855455128591355593468713342432982289189361725484582578073919300565834579744097981775469783480794400266995499413084094362193104214567602058000676940406303440774167029823288450042046955605224722468161611413087885842049917238045018103927703169646099366948604002484451228271236142180978787411445811889244811270908084764627455033553468935038264068329255370667783364475652541987355079173490737230249444996181916484202757453329370354014585448472977500971105908264741551154524736315305281228272858951827536698818059280122575768842742693880685112034808758367866283280616094255835315214104239330173723376574127002470465196220828464642178171124326611628137283011730568950897552408474289611322571850073602045530210011049017478679466027239673780367122689971215520383869605869229128536103315505511311810642741730231423604847897837569338984974931760928486192918137186077029186296376986521970658918400850245595941915608587821940391603409957343110507343954970900546638471556375455523576399333994574596099600213636054644197968340880510183654144449821777985462297781367819008866527036476848546967581138567070210641049728981334326288123210413050085010405043727012344236694572495116117844815716723446041132885726950676303221915842465728009615573682007524328056862296266951903355930477759269767742583304502446350197141850001694580680548293605769463101573959411153938237912873513643514431777475499576972243851380901794160675749230085809069529479141728283779486272650115456494668001975708150204425272347794858360055712121669985167069868646079085629529847473134965043300784588359050897236797014790879361062028117298715939332946283167806002002518108344077690680299762963384140219594581970043730420622359593633331104273447396496097154776545927905418028164526211558813422891364385339333372601787864884103001739188113081103648213736781266738083599029310864984150543724780969826692430238404641826721456596745359468591170963207127647358081559709088302645319894624030025067424352285633990560511741547113223383711867110224659916787195523085358977110792969974646368193115806270432850055057515008386900056886183287667716663345853407566316509029657893223336854538469687336982481055364553631049791475006043822905150803156449340362095583971352922417759245660693038689071883046581080829887138474754266122648757463131406160998564053453308657459961636288957969298360389255355938553889023165328872858703797632659304753772154586717985839705327809838268179019453948515194761318703050796032950950029373080874311046468998024416815855832795118112364091998036523202583576660330540832932826292212449520675349294459005545417564616207937128973246582347881704318350634467549163594296358094985730145752303010936546696910677220083209335911962959774423968336569067375455857283311521909945873362747705911185023323493528862209674859388981495722822019702987055703576292065362141199013460139267795537216144513645582150481760682289581817616354163386786123012287443152696870857184023894648074076465718065309797449748383169855996090731397492551735037683601909641396250156816955066775292359817075292287915675469270719133017170773527589726049387705031865258570107509432392273044355801548139347882151382166779369908011561803055926373556138379876340634752590779851111664170592404694461960090489221008461968723948867994019262844659577415363850570003653191027224949969988485434545946126546444940828354646289672367728362398530470377585550131195329335040018048193095999286446190328492404509981724435283465395774285111392547557900724167081211799427583246711899531176371838718050562131841898812119967662358121608460875440204160185985519938128402638452780689786517051470368658345017543341964025419370610718056731830310818189957688791880536293900255052548603559046793633977171897237987021185813252481974072916585058146408176856506811497724633434242334118960498927729377151103962787375394951470658259320290059063976141711242720654440213200184537386612765729186798175142689137938880786666551789026863585614190712337954437226898816050189594548482104489642477588430755061673966208924181326649697411408571972762409708627936090323509706842230612554375593444765981529227869858258525333976890777425773389695506271738759534743283010311032361155555293252875674410276914806204425970415087101962742773815049330142570796266605322969642230467482205919108510064269907699870673377663871556636486914419269244958137807026706357922829869766161813503959138531934242762169838255916122107467693532743370853174650303373074058023961442143704861788862085244932834594578280866026111131182367283987693639511750998482238407456660944400813414338063820303698693564756212689743357494836336964259285353193328396149840506088592018543270675996739411524132979004435886619203169878723260973980041057768097717757967883035826766330554490480665019088156936519273258660886042396363042052748919804345582373065676917978377576273691927219847676364234338539162218349049074702464656122052595587600795148528805384398820939895363585831393636842408318173487031234862832012942727716949725747317725075243272547746988488825107746304395276653798029752585061287007162069342878182776363078647764650370142264605346409674040096835209039027101225824365530855409941804013109349726151290032831429078823902649355599865354277859197859048228958039771122940583208056990043111175984613188217842779050902782064545854856555768460127633042325263685374663017481921620760406977523481174241030017934084941073449356973646201043622106315629920433287402076351468485379278107912107719172494768647825559198162251507745991531119045445172995287880777365601958453377047827555165462696398342384637993740161281233350502319981982462640637617838357100620782891259086422354586061671919896828072550604922647028716043607329370941609006934047028636878261794341068521265412542622926583014998882273066584019561681070052399095674539027512061349522416768723210082749992049372433265952128055826264630645033796712566891285382186967666179876284449012724894429062001425980519073982596025120643319257730631758863820012750147706920980016160192809814378756370330599608316189392983144979910353243189305378712854224788428041401278214928571027424087242637108903793598950588159154355655126279568263295919870723750198351795067561091872657620760601239396382010486089398099300187515793527228143690454655168532225513928935899875322310790337718574682556965677999481591098663979755825518477029361397976638641409798579057930753170456148608862105128999765085411175572927480520241896949975735013840090629955673317354512720232031105367596555180350299524110736679801270284225162608189336324931519381390052679971934187707929199851320639054007108548366952801565413260681733201168839890798972490502636458118287573181900425974842168170587261843413881158150770887219582518424361399574997131022841177812644136685328776860452369867347017262806922961730373575338687094524381969608837498377274240450967634017262192848591015536994132170518088494046124694901910280714039982657949163064900241412945589587554203749282054550718804471508157311126194322066289754073788656933273983808933253871661630656032343025126262425038713474215736980486551886764663069253192994833157432022035155728211071459462057934251982210216856659365814462838641832193309750567013341753030432349311444896273712481026497415858795949926450411483640523471554862224745770070772386873884341888183379257007671131894116184853873702473382173630579513257314151810477445728900562347649591661800555374206613922986309114019926925097566934878701835617181643390563587536596302192887074523168535429727066641944372725254126319297860327489799883619217706237687357503837550942927781732963642446963199372629454705279497108401524556777479199862009899713879755178042414129687937020000611213727920602953385570562199044820204751831820693696723019225620023115476474127568228741525907969066541569257367564179531711717148750647628031173586031960949933127160315709227478862704409377774091042864784217590027170180507292034426872052703236453527832646287561253035776171477946303304372582603938657731581598361715827106598323571060337826489557026548931825287153238689921357055947463104468717295329029541626011576315537930780190786808205842950655457902892764424865076651132031276770030611726051450249885741644470835346240715180155187738856406974505752064005846881666801404654551164781660658011127869051645650765998159010583587356081228732601111892815646974203812855341142688203401817921641566699966950883947692606426319089042218183602652562351870546641558802123780487648743644745982773805060565146936349550959067206220069761033944936747993948109344187375966926994904502328361036804111961264350283937371915037011624565450008590259761157997870619764910206002128197396515280907225446722747822981825539971759336064711567129159990786980491634461501432568745212562102791899705255755622735632026797288227229613488024641526647801754306433321488721057793623210163379383145367199650305707043631879450227124976302477280930544573652236489014516744789644206910778442209798125120313608351296033316347195136823402332082295517950262411273992052735267835019209016230017187856367572139807712705752743505594252377507303823430853645150798100353821240678756723302110226113087741812494419333083130659494914431197523840148441580105210960774843145969166188381428921895975151541720844832266436544705085914673502007985628869414914757569827992191855877926134696949443377837043753208055887854925944115087754196642077226650231861938199538966336529901123365069374691084597291683201812767493796214799788734315505089564510671166536112121109673466381406418874129814174554860762608790575487176451023169743102842312040518831157400196666439369393836811673650067017546323076656294528528369615802208987680790350622773006877323470748708358927554935634877493768115367024405275252990490598760163454117201318603263836346292821534594260195114483157500866631375037248769474704487399262983621369958204053308224015624117661950210293139038778893220098811350576201378965334206013196184123723956848290322929901027290587579288019384917130517463444919366126854673747341518325152966244130460275163974580631420212437102048353968405755479392876140169974966284353611832012430418911016651564793320130935694290542837569113507662582237284335172508459308766784478093903631221903220824695678022528043383075543596660772523283610740903589952446950177763818263896621498624290685994169641010103313341459397266498830485644997748306700168877936712418668768621919238491745748311890775931280759093410350598247262272897245671181481769193695636289340568436105539962711357456359425759554892345619067448024581643437594512570291943232142093974821545301082116118162678490923143758650019515730796884188909275087585121015631865255634682263726363190615559732298900753924342305572530721092244531442207931693065014049459384539592466412294612741715913221863763155641778159264642523938389874751120523786261987009174290819027173315649604245695626424780281331237876159272486689715682545189628148207779589222647339389886593102838960742830738956995411206233697364268790357849391314561762907147113171505633334227721627050681596212768355951604218156969676857521576592478234636198378076680886796075417636193548658322508276672220914042325421752549152900016361181960431914088976058053304903710835224715825099071564323461242187940224977340140836791204571197631880750345185477479432881607918534541190502918966497249776441318970695080489026547570163748730841194913675941758179216242932363266386513801351978779934233754488544255412803830539685576542856616290730570720199966124660384472257972478004710014258128121863935815559361419727957071917839630788471579331178652533783467615415515315996643296911741009245612337540875602901589335317713842950280033045559218057357914198928503607459348267493534379607935926485552130551289792638071832201955909026715883057654015132980757175006646252488550159796607461111945822368507301592267177076920158924365454862653945023921432960933171937682089488027266046608961956781396863393117298458628015564406264019962884699375510500966985363616408059204605304417049548957341784799319080145787991847822603048032078720809405310442964284918862501108943700907323288802534991461913236471186541168249754635048086637641828211688319509668716756786844241869648292043373067321671429847024521353686759229934336142805770694323633092072934556354438610858597352379533970471862321813374535159742001983558324999239440655997327512222918318890845942085960845671172302213891420561942116632289089143554414266173125898832227476586903576444262162082566686556396816124772439215479929394513894023632351059368141240936631636976984170114592308236123754517052357189220060867810621344766816935232744114701671565127745000567519811671359390245622675180980157677234108331284036170732462605880513342715995693458564207122946449385009116056760381045601093503054441643643294125940034994555701589619940807028035529461514579796944320283947589154732412576093192870167023048580412923386184519043640385132357129114972534401008710046580281199186291837750844175463465602822977766510562182079857732770300901604108765262086057943229786917193677397213346250072248554265753092675942893491496479966633828435219794592040799526384536463412280116702109811821729793670161540362124975188751700367160782723447656226500920074470107979876673764997709780542855470785493558955396360165736396720846996742614747985626587913586240498782115436839108709296512808118652801250828783684218718614898097529439640370642919815429380938643030471101292440430798182723209415891471261582813491740517266301559654391823364180653505855489015857083047114620707747683821635932508061944209499276114260277088684982217152618600256347046970039264760862806540072917220704590000339502683247566660800216740977860642363583676122043559575598764687009647176196511845405718325845665558519595554941114627324258668499088715507325157853836243576913349499740858970743323072234880441801467913346494617976981741173772499530967793371412852251403561722342430921518371089797581105311481702679016160901356040396572698736401650502229295278952961175201601843490886226208282945384636233328095759656502645694833903375389900000764568005789384483254788106934916277500213550406559548318707749613326090564907643017604051127612365382064492959033496374994713299281455296703220785784911198958638434117795040052090801720431046888361156923615866969512411748382920347145486557601896511896975793583162026549488904346842355568028866142837089190337794962668834993698205208289788360680006920989742094573642357356741851385237625052112098807458148055440767589634008489915721843212554697677349374706983365307957960842680567435088731458554957473705064007345411063563885454957619289921343424217730630967023662439553260820093877770763295893657195398031015969115651463478452727384805292285029292788728653336158083970151302964769187196596330281915722716111267924381786563207878411642579712349869543158335355048880271155532991298608575766953638879717805362462091714797335863227381692258064361820630159127396168033615391662385685170988762964846199957107397573287069631065132649542149529776639254442560255482262957751940748787260159215153896933748635498823045731603201411931885325680790204121886209623339571439855287830762321595651151049403577904221500152021096415444993249991169065174623255465990528245804563189814823370065710660615697142901654145576348213442682952641425196089177578757343268550713855738048607819740631726897888213110647887123594170990349964623807755205739818566640006731157760296120702286939633703772818355950319188475361669274108984127922546122149175281140887422452146781656203132505689600405439750914225591198847342787403120568768368914437122556998240779143228663122608312616984736222449015185255993776718447372851227802555122340671091482868440205561477676370532051297795310208524063909299946194350495730051795741631268496673765283748648430142167675023565861794738159801556690204171511569859589546790614899184292069416319939395170862816004411331426739461073360141153742383810734842165681371589535708634527201385665338966664541124672264579129118341380776949089790416349748825957211851790352068149481249583496852112161866211360766337826858860355572141994130756937112245766500063844428388976670322514534858345294872101151754569130902987717750279725446190465176223774157442878759161465974388264012329467738002732260781238593896696292813663638559029272419135638879995478312555699266610170999886052008028344941340030254420113058429199719618797536454478220855777331212330461927479664600723894297323576660630163214014144520357431322846547726089603997699098014660533170473827743728308694856168831824236043954328464285430849840127306429771477040736853800873866018258088928667119478906144900949412123691506136636067805554144324770586191094421331324035441299578489441591439465473696539704302125023330112551948175432564633001138753555692531002833732257563002234242490644007610504140787007978900816962087574547312202568942875095470343319118590334920293445005963819693136928675014129173327688498886339360232723350599545263619687244274165341803367271994269146503518046059309346602671985708564323394704000130208639964386949963842764309892036958495880236270605057375511989035898293265139725114583805257623662872312731313265496090608354461005489557959971104835698142477732227320615701077874424943073618462465331083809541904078207279883816278789251152893201800553079809212133640081870074741875500662495507654166638670788339904366870469284754571736384393230059160283417172499545672464212957826068013212611565994481168810778227561562038484929844425538740049700874378203523513850940129229121918357212711896343043408375939521265629650966500495410703383957630908897426918317587349128630756557923585813325653520446871243336373040562989069743312779914290466127448943928577438304437613795817283108615223100950096233324821347590295144108063941255633842659786049503539780156488319704163113932034742403722313507180879382505091918612894545688375935888834418760834383771191981232370591911651598539043546188496245911080650301410889608444642186160950296269221914557502788825880903029463374741770408831167407551798858470309971196086599033375521495937404236384144383482676005237978834564752216997099933617898958241418725326016395809130385628455828612578557892102702885873968590330758534845588227568211627781022088605735757289696594188666410709198148088268179637753537916728949329129749146607777320971094138630151113751759382977986212435940545735430864737911142116074949129874302932500881827252077597439436665078508455198213279066414765959396502884644427731711581274911148209010699688184813578921361000811590982323388621773201465029719259467924998776464754821778750981367753127393417704085463686637352700183050097787322527392529229028689932939965236935252499988781733317140118234910135937493228937554810284469193064729635729809320262460565365906689296852804333751886472220295116311089041500262641718144870285038263495858065011486833362131204773851724502872147479629564919869662528547061758968424081782638042415006385077126305337247906758863008739623970989785436240157072242752463498356107139203898213789331194441955501483553311765399482951017707117548833508935716580018701806601188558011467621568546582981147988242329678855838967803841572637335053873445240186607587383425742692683835676819761939138108274894289293373043112332002414091857166906489026469422650143832075217234452026976199731457363468432363834679069018527080694251285860176671714558750964401220158683193661509492008724885697393456423265955220414808448198361476410715691712611731436439567477545488438811397943618781175988661985640540313052815429207359394120334314380350629284421785067397110007768409601191632342502390471968472151016298144989562177640842501916184602203964335348606859628274296113817499201175001976701917153826065581138591406145524439959247011310615957794897349726052497695887909672362042946738425811729070807101462825799793492943327879290226051086065973524632729986191307913736904803063509244040888386303659158505126377687401497524351768901925661056242900561064695884037330812589870176982930424780332381087283965265429432771091905325160080424584992977425674784646758971195347016458934201069187176209353859899833426385727501598166549007690661086727118976487412828797783984656805585371591914468870159928692167178436871658250486241825494906627881900473756568320466569382556546590558338791195457054891642671759667373702260031806496140704968985669879754057371346153651389970970994245593912236087434701382052117714901691648723395660384199275865067748436584129680942727381718253403091004319858905976764785733372871453992098480453081805291123572730302229159751403345911306308043484660064271237968088226168526747489220522693262561739463203264198423226375440306677773004356950348592573567321010258113856689190481214904710554738293663682672406521806324548911076006420402200879937764169416246381887231145272856425982547025938944244568233435262675311305611573425093504446496609973436695302457438769206460604465149083781848048433704875585251753729443580034143798302048383326891391520824165183023770038128354311235027522071963229052416808166942926274911645735403906269364298418627842550947994879918534493947478891770112068060287011927230766049811849091951880136467911764960437304911632553089161035029291745516731211251940311899377143971955022042387709874668131760014603177111772534191966071948285477335455509731274952517213079845082095050419587386816237131849301556139236306915947772095056099802588798926459195886442408426622504751477502495119704396604065457028597562163034746145871927095291190520921165468060804327898257751901946955640212563852833125663278510849730363364378917543058975964472489007238187329894868893236285904200683099291317918033199600104005448704168598361503805589290622210968091407130105044904253069294559520132926448877623463208924618809729829803402565372358161274892585449303664913611730946169348032493539998452620032295893240243233593033799199473768823401080307450222145180732484492915286836455242554341445791104868600212292203204721161107392044738582549959006959423100895703166887843800254029839101158625388261737021409136801598803083736455072758337939487021970422261458560743374305520370732762080017433816992443530716232066601985808329288456065462989252246418189069932377951773656052018949037376373468541734055422765762651343021384412912453158035092111640752850128176459699051902941866322811594315505382257015384427353610446906940163368925512675873565390402667753091662380821457254269144965352631703881872161053286955762166260521209758401731590974453784364436606328952363361030823768100667179151091906417874276287988742337911293917335589838863552396614366093067347277852860982207774490479463329556961706021227389343498628538335310921164857910610264059760258785120102204004370078249817446863509774565534689889791898543085107194796364557219982702125296595978619603452030987350923648049026242963036602750449640220336680784375060615105226377139269123755496279364453419603799590517745459701192312418902185328028858157463972444825218931004892478402268471752647785778539631263835739717583714014325225926409743867404847178311929116545549442186382200428074134180523689568169336934169298011330761077539819145504600224724187600260120995871735318448105370897638028262399460076090895150713093197633692350279019183902857199650420329644806717809146091359127096811122958268219612265230130637384866792765273551416438901673974439441824647496582390516285669728192480839071135878949461953696244219847077942362091247408308421023844806920685010741445436510935749878935139641257938468315942887421617276358505235605641134361495206937666835392122481652299056513844611433750738648639954100424508343519497765913299437751866958454662336873104749474059550649756638772199738007617552198702392097859128339838732061251948240855759448822695676621559676224706847152824279686877556512582286678504298778613786141433136617951583736819582791400260864041820598392738737733948863252743474600430233997614992176137963043689168332995232444113044261958107949901432242595088378775064825534448243643626999589863769999436837674455700594691912358030746699572146653559829396691413071925489165482563642236883884305166744320676357620317710409839854893493685982762210563958514336803713298854608954275804887067450028482153816585871069987381894421294668945120470518117820424215452766057294781289951487357234938285768375578450547113714209883891795418892335862801386604563022233020756010856789122009786987535890656009601474668996081173974732167275245923309949614562378395063585375132097412167636699055402207708977855005333618563969177439386724239065084895823797660670834136204987493415806425240242814186411421846296870753809903254909296804371124506202465995682050823301952693153036887386922350669313982080730860408600083577373203888940871694895467743240604073116229821716090387645080899996867300345641784409701986067809262729429245238779022239298426754495586103594512657557289681927099260798160601590964341841862496117615563584496493585702265278393168168193017473201178067336517362765233287001072596691201783019973943854641205878275507028672280329561134955295355064157316265710734047343996982771874608848974324075714039221161118124187924323252832074518525758203580995128878237674994342100370060710606193736947504366616167011069893344745106183722423677173066497182116797567722356678262072013361550901594661077484446938054245006861422758728202807613249481185795242267952401700600088921751035496442474757390618033619784282192476570926783927157274615452638064814282347891199613811417630174389785888819709337376724429492667531501295684875223322022403749458195388841822627247843052593635300248839150175853356550632240894940896903948581161857255283887505356742334466756276623844564383692755088601091803923815220121607799238627899503553660526048405090090572250581001855557682724253090642483886919952673209648713788459440396105210310870754393409590055036115373259352950011793162358319859871157915285193406579534032062841028208442336945337394202266445026627685283848560665900537204285442196365587125403128966124997198834236989404217144711692741964771584451068954382119119139487672787214769020239558629056657145910696876921040003133803555691433190292079149708253926560378318830892355328148727611973554487460200105534137553462510971921548831284560849103939372047555211465819898629758020104446362726544339849304076684680185721685845032697002560030239400696335848587291042108309916733265775611781089120320000830142935765323399701129965433810155254426996919180287507270232222046822313973319710886001266354798202493100597398850580854986455296089964165884794172298415498768671400432729822351329105921972769072746287292430218702855792015720835760071463640708282679853745726292579571720143697906998676171941185476772118144484003308266501035494159384100318495858858187835697965613638230443920331000569813052664998344937996545956578558462064198577953389812780364167506795169375021773884141841440053417817440453637072253794480224613117456705297084175403050839750468460738440077595575997326824538306549264188399551624636826347802152739179746214174133020138270811613914583226808288863468029483890711766723833525639037855819942157211246647312559701112301196472310066642232031061225420825846563129713628544648679024255104849316314812300533983111174541918462687717539684390820843741306428224179561754076898269149581916915445205743908123927521529382665609327960139725822591127519965939907306732962413626824208366590830450086267462304534553439057861629011385500994693412268071562190226487109072092977386303011257081833658992632201572194417164626685479206389243559330763314945953444583854167496066102256144623973834641346261909077157433431880848642737095256709733857770879715240450203666476040511318380717646894482530616151806513050183146900532729514215451710374092878792434987427460642461999362377179050254767773600973087774061917237402531125702215076118884210605043727962433362018588563559743917225805314025088715575219781726702685042910974249411603593064681507346446711452312843181802641181042708033012165935275783884536978718616699517052935093992826529598899701911639978976361614313721010579523225952439256309119975047488645323399188378899746763904601335637143912772193314133797961725486856275383197819182030384494229936350091314336975224166199045631869432335375181104297814462349111630115481481332713954634233206043082309685747061835475344925685987010068197507097489423938077777270896345144091090751498233815168103743988671341676076122760899262001517506090165290839322099890409245826345287509992362044124010537476515745246744363547423116506456882403591232070822003228938959198536487235718075049941974905371695125576695731252300140423257658967120678571322614848700762879211612127485373414714564321413190909838174177761987393812984206389386387239609905945823118257454569316367669507604326761407258765841209950630550278228113809929437363810344230909291189119935438666386398796789745612137826424091483789428127426483351795640347099206205347682801219517463354093091186911977733456431452882147546458064649854836801469179477510640095263768816786179582674944371315007680598986728421163999145875694105589984111039711720160603135348693650969987378685818385344842019198834688437262129211685069811165288996817312378259802326712602585656392391990878185563423431176986413983361954440248526634158044982270428647311435418653265315145309318101600957653302721020229340029487941079765684681565323161981041755475503531251739519979147043934699035928769011609542784213619475910826183763737473802358949434036561332708261134651853425125117727160398133955011824418839226901727771318555715130905503503797282363972623488105662722262270988353152921205420527977313303604718469896719259520203988864277941806246611690026525572257917848696173845313619052034595777901093689595179551653162356317440347425529307951987004880656347792020487043167912899934866596239013632734200029238732428996504032055003614281816338163253245514706533275948271409955170343109516104893836258371230870603097829200719687068507222200132939153358154156029829205023708064799397474171006166015103489874067783247306331930910240402599613697869960677895536087593010930709435117577051563289221485476388325418593289762490675631826071360368513684813982155471141455354065008245241274819555164184686043266869978501688120950136138090085023744743927820597757693331653930675659943367063167982664450810878843848263116431559322433568440962563507130990328591265796462478912256862306417501425229169092481353923388980999707973861852485327149796561048697614436087509585803332231887320689146104580841138030328731031819038172629000239316306788249878989031075721387351087059523269349430579473849641958177308347373376599777010344577151723845987584203286031684813060247015885568629242188435468217040109536945765106431196153252812038559136180527392906637371294288389526367484658138596854916119866960890680068363733628096590366690181053237066189953557483994621866493068275497788283888621851031278634950916953733399427222856309497996069826979031004736728053534950955198137641980253084422669809082235683096348917692076047977045838274945778347092049774880266460417063907080156699024905486860169192237641120074487086798572660714015854682723903799683305519439560078452895691859654736988384084786268602067717159793213975106093259347876800618627738892090513750299606379215035459287631566650999852695637313186990209497791776788860120323335174366060433037486276524401526776009800344157338594020390434540925123951548905129554315102111782373819346127638683858470586068781592384886573248662391605272185637276343096586022762739574823964666264853637332029963070223409303529327379393655306880967446269972694861479319123430340744448284747900899950846252481758196585027641428320222463948457435411240751845122754764292400003959519737461015645796031812284294201697156966899474754068325932214092496002638491960142930946516211153481867534127956069599180754069488639738741233332394584417673946272640368784232403838210736827979150358628235135700087537023951830901195155682682908626523387285103922258436786266666639507462342554842408227899314484371088616493786114345295189125440585644513255357384164157921120332937379132910709604063225290409112013235905644454814608754254277890254444934543641292241613622353487289894101226512820563847799378796984491688190469206916327926918315677823199125007577182670148437207729211390441585329969625551870213727771651223010650794852532755625781607315325600269896686605750512449777318508177066438665114992795208021220155104118327298908457413478738612100924622444758351192443353141154814502276236190592338773180668851002608282349969459562186834748338961596404078330352200587426795392006618058958307187984275783441714089400576367754890680806590574757226357402975323704576595214396711721214485945928711632071142987062071749322186006795000988132887636985993451479933314060261897829207342910175192231360036661716141572138037832292770616445907350831970213090611604973707256167232264282387350348233312404691219651332386383913360152886530099488253732498809367806321573935350492051276437382735353775353784263503542193127016874009909772199359048314054325943894743664597769532597806240968313131405758618614184731836195473057225218468812439828875026291443682388576128880887651870180892647646636623220465993095749709701992192922941448864637002960626307016271694765039615159526842362496297488796687480192231631117495900500994492464588936134697952460160018420965007204433973987599236142066942475702447530390941283969469289410370312335873195224565761609851684991490618731077152629682084983396069290904215194201174286119430789594535376185547821229676115269775549816217372776660737795433061688718052885898398853982146241469890197488333229522227921042745095099677508380999362834285670944268582992534070939069944832985030440850080972031247171243643365960305212100200898042989105884448050038997899704988854003817992927786534588292350250267499563516633908210976530403067203303829560139312031018926444384883055019773842471449502195125567183300444603717546119341164757920605691647959178632293837295256343316566479318586119382409192618514917984830075945721851473034883764714020622802964164604080671023157593768976518990066942486098877150822310566806698984175759667325703615825708156420318549473462588449843368862150809175900216682803245445830847077744307853117287536901636077389343434954922447199086587614075200353919094118748524903241325918007856951667360662120317405762427400451400730519848427718017905205813797806459409682266557449253573370207911587018924524972366512210492021365126942069877225119190446151502430732208737088677163638483532921788747655198111041676982858677330889089523676725797531051503167976116734460569596722705488376035165818307398150682106019973197257858236034942599466251206770992835167563519280464953681342927214223809140839216112892721332202403755610897162098210214891482766992451484076683291236327617983211782478014569446500625499545166050669316729317895206958086258342674171551011758735754685505406263198687115595328143054351008466199026740697671707608203050982484865518305610703156214175387403928148846686909615110301909675914200667967865847573607152129082236815596798354701271167046772639729522542602064329018495279886530117015806940306379081903720477367388548354246137470063141344372595633914362576543181955970529920281438319340599688016526744309393379469615036876086457083301237835951094226160874868781417111091239350761083707236921562417920429717706186621727996146443125302837146855611436812372239657103725845558813241675479678209239859138886919032748988866656451786777488742047934020415026282975979057751779829568891908737084009632398096138717448661971519977164967438727422308044607008439989137111003333650615865199804102178793188319390206045303420485068525080366482322822875461916239391763171124342253741931001776048818684418686579935261520560093223013222688388920905155062537865802456706381904479394362336439658559295825654751189522322289128501183259722334545287197931800093890520460842064513409701449167389787153835498249099360502054943963814592532043635276136250719380779964654283544537059139113103012086267860605237330643868429912750749962273596013878638616694307864968389540940745266050286523391688308077081538605870874244244121670407489162917623217326402080048156017928049427011763023773939449784283120310322775703779181348631629427378507074565332972832162150047248100730041934072768388595125059707078070967524284234723704284800228843798779654901912235715791686127470122251821081954505222682016569243684809536183656731321011789438666129853049573648246520068118197884282552774940134697921902956326375394251685502729678750437479415202513590970860647392511102511336817692323593824344575947383002368340854261478449971536206692800010554245568168883547738176395156669982189891833757782548785026727890801719883292910726662326787060481753088979375107996595566472637894057364092699241893233445194157027537549482007534438764610967459662401335709278232777207348044688066972116965847627398343897976646494269372968067517583548906920959466381142561174085882430368975938185078916663595590296161544218471031272967881328141334770222306803447850768688338973783852576097179180035971270017038111851431814531063056041102420495763953240963633475998323210286079481751944859892968549803462730451786705058222764665688352245204762090146910737484551221771064810756936887792379328996498763224579762243360654571964036740779424659997977271653011996874494871990031771453724049736326955208603462907023707833671898296406148799970002889076271071109335194101253292499533097083148086279590817397556166602501126853314914275378295209511890462550735657502270835557184950490390723324804118376634874176571415870352647575121536883209389472706082536603160501548251489466817127763549373153512521993793046232380118082507579700992518593894857050958186711391069219861529519494619186004098561739528058058991241469945897969395395892389127531318296204143560920620528347656566123791567471040736869376737319232677222293125349817273323511874196092406986602769245527651878921575825518198298732931065799128652362986882797772883029167657333114721406765746793995680765768914127643598333583825378757587347810715361387050488386215905847828678944472968326458537376070703140192482974424777575334884240916489294544712184408186825016105037691908261358059526067729768418465863113818853669478299355332005396260012729890414667177408059382301760206311345704987662891266231137408829928640079668887784158247386115951104467261754583764473987939727114013433678746639551197926283336145921267977963026015283933926445266842477373205383941706963919588259376196823124307231968013200025678190534933361650529357735199504283853224812065050978753182504984613630120650468704450113917417244153613413080621292339396586226034910970755559174738905074392155282681874489330033810554532063090173698612189040441655307450875611093834952730396568625594371854747041453863986349330577217109699954162381718220720099325828103836963756757890103225991767426768268072748120897232162284219973682773731708326363690576975134793819283339900988603070940678608023715679485111529700015201149378068673865658094005290390293923242463888189740912576949458447161801130549182908332859175538379609045299220220292195860390427967561476688633876138451736523269358461598700527907717467183198955614753619359137874424915972077224189260329534026605522609124268012460138536127467881365467108092111330165428914162885865913765888261251496745427725337660632772375144761544766884492851173334029829300109480543049869237352770798194229520673651311913140776933050824342195378590519716910471562868423149434034995116561275648172899584999255341688136429136173269567661805307133431533342904346568492672965460945551180454706953635396785052674905075332743492661466603243889977194964414957010682492664202569324860635107571078544210927844371187830003220659875044325271266042087782388452050083420005116251525177038026397153381005458699385199423185216693734801549914026113112738875746693458241719100524156076766177925600367221195846229472021672880412277963545253145726248971210042029453901684929762438547829721671466126185376073643394493309020998746352098480418749211740159497601481459282625458756298098484947687723005281761113091964631910991905559846011709004880154358004573987298025558231852686060589540982856982185347114375243269442357611887077905999754193134859408031387146430022186808957911203739252587717317976236692261932363481929270261249277345671154834148587109283578595618229951549864473419255819566133669681457876090288960680626905015646491504952060171514382068479383605843077000328492998719895264460768249093883230449293667674542598672175878440565983261738446539105267137669400315539965261516399195366188492882152098020231261088314931460099047714967389418309749845187835981362160689573919443872535849146746789774430835113113472035429657145994985145991076634118955093403305128685089294992422921596568927981983804883396902514194674488612471364021147638635331911882481744161215969515663731281637033087367715743907448625317096422932794721805522313708562511658856787805029653725319892757814695794739380194987833866509145995422419188533809414702661945400528764192401874471787906822245843389809476074479654275048434132073875533694822973157450451082925688326760375208236180132023791649628225728269963393980575190990495618228057725660987157604968886654297545249741267628875882294684887404425603719075074788181860733076381235950260124681570713284643964955731065019300532936221068923739575348588445505054352250373282471101578887627793695219067164507818701967508602054291810648778360180164711399276948232096971319836953914461636576066819987497802726240859889793361348363722865881398919150439226952234749351251573433799990473909764352472109353373429897059749534048496572162380534672878546890512707412877836343903175898568003491005121370817300615249191853679328718195593306803101274668461588065219506066695039982600665520392503396381301704364125741073160987544218909414666773467115477606397830415820095566102207332246937725258511230058328693384063989343325467509452339958891869826257743807646732604202955010363474844320383317685749334160302959484076050421872616495420226798694210652074692188929152162581001755347885383337613578080769775171917607712620575435503236871788841394698859473755224572157880947350412596059448969921247283733535977118171599521225967745353940733458910608391100078863660558528354529612065975225496185611405096658548732391758789697479481137595500327999233518380612995129532372866719206628410566642408116217783908148001490103286806342254607496139410971630830844684884351174468271550661254980537120042705615270556009186160726330537550540013365108821527013819158530437468672674329300104303304048506537816856643501077699958985558010279395418044212133146638561515328236210176979020237247328831387459314554157054688347814948996583056651134517316319400171881233358689466339698656114472940166109604323824467866782849818941217932760773957395715832426388376588757578766038259435336216759692538146892624297993017254457739158447259353605614894739247165420693950787918422874436027149977934768422456645916006361089830501019557417586197424688550222981674194845808233077997007723132282215141037893728326820731762241926555086194300869566140227715786484725155159722946201218045665697956829877644531053108754239425875268316626903846109820111346453959723167237746330822552897401009070143963047021700878394789492867666235421632190788402584762433363315991612783621618426780864043323594932219180695473609437516763271220442428473882605867236073921608134415297943739804479086776349798400612352058178547181128702752365193162349511641470845784142095105596122376060800728368701441234732501076989811324054496977385150053632023820567906598002140644738758831041113367502503352164703464502939222017643414714460881894921269393769607802732167151661573687263283674310559245917264304415969137333602360477829350835624977009138096273475451551900588294175019521818430400866969294252773281016151275438429813388499500767916446922342880492089193574872605880965954309316197517978221267853751060019423533582116592937713221916285724682998647974293682349707796113252066318346645298392883812640694002220431662977374094167541235652093005785471465905412173434393942863789196078460449896213808827980715934593221019268211309108462901676224934514763263818394609986333555875507938656198042916067067514467136388828395325100599839824735374182418961914825019378160953776522471012117201973125982734247918991208407718944120516529124223407677201930120781985745256366581137401787954274616602736335039936021668552926460708413779382448021944470483400911607926786923394188176171390437600879443553588536080278883490319290180184804240317178770425174636138883035087658840898422028757768357992473063973072838683243969389691077345118628920694686071456157587664110774584073698765944171347111773143210300261459329730388119967793054840312183377295313457673822259172399742927789769891240404569810066559488001155703994221578357868547899225441227496314128142242793552319710890348489101712953433769477931934932935929158157800494804473594229811355647393772976031146614748242083848325915709536983445728317671820067287518383200646552604576798061113428438710917038378084023501201812171350147749184268279592405148588617297905654781330303240255294019474441290942611980095145597109322998581194298705470080941220297494265724669621665656278690366273384675219099253533302556934259539176420397157205927102121225379488242429702871460169171154919456879543325546465841071897974337065716336553294279467354822482767020094793171254319036161560346618678365674652421133231073039252972750344617105085724269856916003413323583495426462533688389299256430635577826083565353977721514156747735993044884608543843325949893668933288088318330992444761520877837558093944357655090910377919877613722115398206622972871177611404519121864461735158495867812645815738183262824589094565082513298650452039493787737677290810513880574150583673001830029958373586892738378639092862244225795529378469930645695084732373063362586736220291992758608125013823795026895072439013262798619789365297043525705306771658529421732158819881954947881146605946029926109797144994627060363087819351802593730131629903524054776631376393296344613027191487304731396340960924110268918100221907196240784109994486514814839305275976670907671391372324466927727266498181861291939811090831824062410415966885752519967694773288091282961365872525710312343515999056466759332402693891581245131316442342969521635060095540332512401363801149383456524209292279207988947122325439367312434160269107902615259400180829813568656145443788954559996860719085402934630151061749476642476685713858038547585073229592852530376882533841687564498061768250421796287471847606920994537603423088557171618702546324367988492682108426076695154477381517517828086755216931143413583442383666210182024028477896956927914153059848984395246974486598482377964239281174033519384725559228878184001238755744215287033176559921821127055324631814578163639113283887006275685179784190610320536482834975956981575431130227024558653812018306883796230379516781641595918987688459304145178622907581834821064172174520041193870014694814695221739179369318807601858060246491401817686906823133528981205988449353943851606618209667705011829852764929412964127101326291784955743103911899052667656705675006433482697786875478319819712856664769602140100980808677127166702019027198931575151281701859163211079049405831924064918607354552053116926268156584564939723518679478207398539220534650427004786190646103647942135393734873929508821542713055197796296852412581527021427261585808146062923050194581795633470489096612650794470462522287449927705783540018652013397448623138118145152608055868810805446996246470911194040127761503021496353620115533873528773776773264752984243046920468716461534990781683916016993352575622142097772661159585871652501285578580438916842522454837653253547874981784258954158290592338593484997308770087400120163752991365838995965421058981532472940681190056899216448994820885293143084976066312571788963720444345831665202343680161405830805224148449800973983913442457927400861717964846094123587282784079610828794865209056260294245511070190620219338447407430900682802088039437570458655903649926875579010586272597456348603292280712645721856463266596499084160874823686889145906744931686755325495332856472405995623246553631006296676685479721407898146956172710222534235051409981624674520754015869169268315026546086570122267843794372208162079850446912035558652162350636764534231562695942591717807146922793848895922893860029738471106763135099018683795285210295979160379996346611960035171283345582064100113216045148729615110745541181408842504913718018912986378174445223774995931312476269587688893260375780730751514540147402497691798218492491734468575207968516002537250077752193940209618718176318242811221766053788907616515907464828243810632312406157298660582233481181952948020068622951687065247726187176820125502783487459368722163675625652136654601901291338140629899320109612010073072381658786563170946746371195713952707789559679825586631494854489176848723247245020603302879269105245013344820342322718896991267038651003131188236853921605721771302743746627252479352634210276706915370553775220876880791994634777872163046099985317284960414501449192017000906984704049886801265339907878563377835927634456065924880247642614060376687423569588325201536132655546641857898647803711709797014746892811972794234206399639552653528185800365673056240241169795191672008243121800148446791135751969532334014605211341119162553168639724486261501593776547271411721548026321954600221346687441815149230241186514365345133516844838008019450976290094388175837532087753895868417610705476015078938736185101433930008551351797014379834847211248358878749611038302305785589210188735121164327573280630808040118212594967583005677872740367847406103187546040877112650679474393041062592439408130166817551928442701044670399389886273883758071696066582014187267903600846582892366673587257883645872606234274194924889117661666054614411294511352266718733985645099795189153138228827716101228034684716707822286291605039225595791538511003929868212674386904135259073432853287067824797680298280667121420861634295820460357492322355476749266285641277117862913482288436043795113131764873669343507223580822382872057973598533236570219618970749401371218458012921103919584824474303962676814361537670613847528484018429094518439241536850242764002771165784726328306756263559650811144250817636832351234979673244232248738646199866546569808771626372002254711982545163116872384229845659505076242075006495661723525062371055552255092986889550764721369165111428570885708436527902457983811807688165323607757823322884482291646046185276418298663631697563828658897706459042171317622796880889618362843370720658866779834490734196299925195729821589990649933553229629025931213824688527842328255834655353820471561611535915195376498902170955703580950921557676560700395260808263413096959056665212528268860617113213164714663720827823196183819947064137716299101942001180872906502320051172377448651499596722782195877092490792425126121371007945118413836807339889282931716894298249010798688123384656567406957152143803065157341015777905957365188070309720618201947257562461182743010236370341924951017887849478194982331401614696949240308724432670806515907804979824157775771285003560964179963708358239329299861617001771194872895196402542503022464924627780513964831929022184132989709662092722112878019413424543398245872625627326824465811277366868355418111730027190240567012537874210466018061375548922649028220320734293435168119249260746715715096350070961032273733450142046564944570612861017023992744447107135600878622980751015556537671394818234921249060494312632104688717271140526784327365945999847553775337148023058644817456462694760893906402638567289738433509962780541795097730485652780854280758486307804968064686451783474673761515935795751143371001593093618531224308036565837913822092803321362225392874152185912971446377100338844164483397525059695977767572010579377073659362391620155116662386631416415699989747467246856110026782601133039388959854364625722864095503959563071311722065954442568542922137386455475261026104796543621119606276791836816260522524917615242505762994350923566706369282629910820468483055079091179499378888254895437386188931019736676700104506247281142048188021982061118257854467886924752688839762202828411327300607708191171863581410427943381622985908849654676523006957223295252374456498214413661188874466684938692451389323610463571943159717534976697314740804289039639467572910174424266597097098101231672782708146948787612679031231817837581220954156553015132545858328254203761340271153394626222647887833531595048234663611316520393222078572208143417877284441247995378280425394977864585627197960646804749539908299328180485473634219568199336691982452612046373521023010476190810415416933735363895912906001556061936399320262446441190269746583720584384491330284716146053562464155571465132425615242840191237644011280601291221289989626732631931878282186012619583556766042290105719399513561539389361289914228395629154990004454556413482386357980039718254636030925129095918286463661882912180846848906697093016003554037246110732424319867156472665053061393536498910603549358431891573763640587851828384439211664010395645340178821510144691745199752182744206198863524218907225756478044606393615479370362374617825337566895983363577944979645371675587195039340448086000142731712220100511422506994299146053540498624726073328777557442613196822804326727342068964890504777160237005130742643025973867430601887349538333579593296325073457280207657775252452302025572965907364888944886454039537493799092996341530237703306222613009112330662523306678981915804900175964093195984821579790131349824821075297459009110838530082828292513208532712268014318637653414466594782529836780686777229710650248219517137884859689474897785595815425290942900174239020040059939313053853474161961622548011855659226196596802887150423147157933911846112257671159004375873468044492486240757576596756762052926566225617131390327018964533614932844224926898815002716586991491765381520481917608284289568134888059629898478695261520198467897212535415322488614614546058824804356442944612792287004489203045978583667194010953302127609950410919244224939536077049785227246988757475243210943124638526815650968220643005890831967503935304908712737860878831336783508546561551602451815395983864894131934534034445457353623565808137640821816685145577354907519483224203201800968207561587084245989969159604404039341843733206238727158545245415315702240330188203638049947290879421616645864982373634481403800484616778760191175296542651112959245124407951545870971522580420100003645568142674277326110158935306063281000397030105025203463316596690231186949255238767151494058985460704838695319516459429455541430548781343303932275252045837985747874763267406379190336827759999228649227070127194701841975264979777583150715419469682843150193582340954789377534848990768390791755721125774681597365423374375269827153703026444772230191944957091991862852037266958041726413294963558900479617037495405933503364018777880688586154968835046127417133657604479283717791147623985169841154569163008694582854548138382302046602118684475534116318945519332021815517539013610641873561826533620047761636270849097287711402338509332482560284722123870343777515489247620420949339623695326011798242720774582015205475495763818380160058329842070355042291018298980185210753862447264764310349696045582947034235438791533423128315997829809575834173121382537583138051094911500916526730920660364189532198766949356886950483535882737359586530181302496707176737671453927592036680721556471472177028886637947125824225140693880868594448081130298765309564282850412944220766050186575011730834621662597161111284029062162331711111880691064978472111976432521966399450615937594825459983837616932266838963067362618286512618926831669412371602419040572432142165672819051858560042713734728374260232840614281589445780418483705630324866926661917245174523277957506990200309588097949122191105618890746009934539498913847678193539447703228210242843309051405063283286076225916885512046600066665738390997347187032673197227885311425313505273871356526588527036946748284751444026822657545528982327693118291545618024964858634829469393540528005595631579896886631090513689353886641551698876805561690297787432159123347282119644222705219955388059604090648240108442390351004060687288770771982425764349413176715146545810709929436801128424270715319954536050015842677223024992628777802573151379119173778908292823007933400045637107367500030615848342135752521921515859848905586256197950915065060880029804135589052259083733330860170199179027605865054892213807297467590154887887488318781041197614984021720772202497291837903081641666169873947167958790614155312686392668460072288410754502999776516403133594108894350037628085980790254697810450254060875476121109164801988698286114499217141826494738889947511450839575056580012010603574448240569214474664474593783536997723645844562752043320035134879098475059330492426936024568100055821743039926669046570859694880893391037289641370619757447242511135235327118037814873388074720765077212323218208753406471115324341046467799321399731076336177833490901421630870698504635528832997771946125724248275118855048846391189703995144872898806612509334136440365269738627545373355631984880511401998787731480288845118995931559993979453458831159339178247289513611384603751474797064795069668437575054623158352428239348870459817012403348892494922649648947070752701755648208464635354935196824765844622017153460219107766605452139918288033099593878820852225194846344763239692614847268445763283004117127475396655520025474302952693753958600657317297839164997028007464309373205418861451187520330408780411593831310373365737978684698728010602159810077983705286675236726655413107336623973705380102769999249281546176467388009419031623598219366130618156024180010740887088898353866925266636110250834444533817154674507007948296785520492493872779602881505857461984526253080643506513128945636514134296937374391337468458631665465422657549735601043301443698908565399783467772889942762774855564101173625214556319813936265598448789610028279003871192332917380920189669984056718754476153225891453634444881509429264174115236146941152453714982614821695403966468760737895612499289831737615795667170673242975738249599250286619432594802885124925535946352133964998884650783493850180069819668264000084861414309910620717007849352113602439092315444376938716299158116875587671724435170657315702242412932493574650185485832942478257053680261811666557281608542796218890726158868306407436094270208264879480236757339654041514605001392578957476584369231979775983527043858598744718278856297941005683813845999294823728265990208763346353399537880067764175363901398220321313339641256774297015456803009143629001503180911012762195663044866152888662237806310286498090042211838147267270700125608726131759533514099683162404784317458309020277982689820551696847732395846127181996743048761847086562482066823257551543609577961384089865002865017517468155148036041837538762701235281696950213890201594912242484328051945228093906603144246319581983590729490910630162330773528480541023099583799052618087201223079390702355426999126994725584585502681131953268945222212942801211116822453554953715501572986827777731575744243420883988867458894085678173877786668299399538640271999183501543503176216167607778807408051092863002892962256041841697336301155090951570215983430872730663003866017265085518496836627733573398029988827174095761290933713847099958685508538037028035501586604966099577166253809929764892962310952185330931629854454773054537423927089042453096158216015975696762271050256423301250763453566134030006163774897273154064014889109445031832696630812929655188082828604408250066958288254843327042343693581333312121599101226980280659999031314507682566732135799916288515576862473455037279262894736599499491203065810531792715853177858516591731262601376403489159346861976871128270074566822433799449428662063004144677099299764432070944894358108592733952709904885928007016871793983973937955864882317966717085334424117399143376853170192500999792470231180451570807755227711232330316487181969998072589005022939206246578094204320618141410024468362477797290606227359558669724451200140478616062545562919699106439563938701126254664510139252000696024042122712472777491886188401130324934273918814924249378863096088122218255878916762264706610988271339461993079490214486237577956267440805506249312031862014396524507776209517590147267554166404090728773739360434936633694712181469729254996078668204810681585668214417214574555085442481796978062863971709414959001263695092710584601810983163540845794031362127403901619315908298626709337989353563880049908343287055577411611076877608354651249576189946012659733500491241441487356969622929067730640961523960695702625778413036428954246452875482139905454765780907167191784723344033629236170878480325922462550796792172615696663296863110997652514857844058443950779929464435745768247022655139199502887566803632252121156335603017697876001017741205642073006157671511908149288571346362570808684779148013610293732128350144522568472483862153547507583835254957290499003455281420881770797091858912919792716040909493406257355144866805857752294599332507026158612364630167154504586720507949714248832100931236740044607882580340343860888665875401653691671680628333886679714989690112327954657625663067447978950096778672988346809160484731324339182713210322578477540677492985776654386337272748506291428754392071485655937940343842952313671363978112183725844196760630201162087037299642180543380859693876537977655461561251598344058710304595617750485759241666124574888230093224958116554366970633385339944738568967571406560692167790932357097783904125058341360379748310918133983240109360538153494485361646690665553474291435894460892649145169398481454929678746833514208559222976373478029962345031623485640768024940553154335244219962248452364013331269659662784271497813375266228949594692237796882202423275589137305616335931362044662189189967698037371790548599791253381809066613653939829415855007420963251610041542557844744030146238726177340182536645767763159147868355208181523248295379258749226732270827496751572201469046483625890366675951027533057546099453759241579316155716907688363916269502597779727894773399759231978654055110544853158954709221482916447543278946012960037864800589043822787765173396992598885368424015860766020146861741138382932776720959902057919688851755286476830393850075565040584333072400684850823850910720245500216785890653571832130132789057977617058283309769420449151761238356069584217530496920858922380943842505959128319061807135281231407132477635296707400333974633078503573647210987041382098370341792711075560644915630492686595908629302885371114857523575738543189295170321400457798515935440624734469546332443455682913428751796885654286171611248674227502465338582586246518293968942785245112600090382001919062188249756295647964502398563768818922466522676557818910870266250980174902356970958632993558650771921567905088592204921549078272805887777770528677045351296027513480878516077307066141431475211698618653008214085701944246220028737126797414489257024571198565695877704042863662469658821991663880236013097837806643150665648248642690204867758747641931428892171920623447010744687184374310702996865974478559408051896599180740961675180146777838889069519061805249030226799848652483585414533703693869464518580178166247413290822688009924424573186167034014000415630386660491485652873708459468734670744654979938916150413548228726887922226635061589218287217127711352633951757690386436810187963877725672731597575515066189541734851276966838334315073464125140013298533639595449586714387407665095554958049023715398692159689938957183859554271807434206550887913298782371653631990437161101978622695760580102256974028312399323273158465379224297050722702780060160825355965474692505751741832465257520854456350535412719111538915142587110912064601612297163310508098434283579093363377063922021368688674891917091558419511555744424288116737224276144843864431629642133473140295511381921135533751684026110949067529911882618454257312096647507158846099066848072401535913705245600701314751561219262677565029065142535387736517392543572632581948869265848357201055006088829225606048290790083714043819997845606609137448832942743029498405137653566604019819153685041928212857217586141745147977689931650901805930703534652365009469254641792775649505043064049591814825908618886144867188733871144796518509469732929671808864939728819496982282783203989772217611018779420303999023915088227061808612159817291986514140711225851925905011386289362783543312011713890195542456204782469956137519200508119838468081700599406751430151592249914824607345974117498450776308841178870802114349923454187209926659559281818899456208488099244835063825165536258451021933617762869975152142825756339536905555563475349733622594156531189283080719091569167802101741150384485237672955730734782112660888169177887389330890685246650405185398733139550569091652333559121895062558815244376406190273108996320768041841898562332355672228856972804010488462759848546323439360892419856925803873379846152053636882887316668502908307845320303105794504578413196071198729581101744036618809980755245041151701775440214197558396454421972769953755368825663083838693343526927737399201671067885329490825863000067073606810817154868421780031051440848336407945359108660455961577467111279491694207244776902360400664761834693087965798603055743136915659477062825648160227553349697369051970181367782280209221942988441390533082711341153654971980984299945119047689184996383377866432497560675034256992614078561154640857256237272137769027967487675552553100740285509946279986554660781353359827050771731799392465568534436589082067190556234171136863324480445939556289366970348484242768788379065057768632098887358227306831806718899790374023843467744413141206045750770326508026276374945633293741843875051467200710744562605527164606830028662289992922834914883518409073386136529529058123234548893297715627098863851504486203361635708938697990457459250708744650128974700000784170205401234512152640794911857831685390186580437957277002717680422175770654501009893072527337051410945513923836694636305507832595427638117811060808825471018752366856563032743873659727319664949235550894164940170825535794779516775819674336145451200820544359058391946225114651756930457607168590236602386367034254531394129898563861142903416720164801184395579522530322106251340302836373922301748169198706076387513307875424074391909542820507095262222136210314700098459109944061024028138509644961271637082414226204684584713551731357608208577168231281537985620268765544625614360490148197574985948633558114269050070815180493846307123397655821393211358096296873781684282954821502190134342723401322068811080272043889891348382286375680347932884045983719618189043935310819431513147350977038920439718217826561182115693671707262447341020084487666990257384325865211009127923318973952739416181318097933018517553137707830714340029215001385867364938674639988097362867798507841675017568563097997789709951262591193199206051061495658670788251004764403694111675140284932827826079302059291886357796963601744623794654319894943723000996108675021191483035366927119025852287964100593461309705859491027512896976991693664019925618336757665768558127562595386707396982533398821450167752874367021258334138171841376423060303942559974579959198719054406346016383512498936774943067844848891118972953231372363532691200072325898074882544162477663040315960479193419297344240584479845674925572705180239274986621442370440697418325643074908270229473284229201310163906500843611151085951890347828432969106536210321361124198225725727891337894548508723753538224265327852483905962083917217114451895030150124221247840645476733923967032354703876199203410888948438004600991074705610575124325258550560724164355076835295121112727615559901185565909945842734425491894476135256645006532930704786447338613160693270213928339225175427919619189005151805201930989094425001613012502594928375206632598275751754573857279597958708578617606333805659256479108761317504530217731824545039877636028503700759561832066847768760192765034705208073942121277245275725512853499450494154342562368473509473807753674921481373726035614098431510444684868475808245761222675273350362166190162495899805319321546294269627654715553296037483305256049761651386902230642884703946140495683398333100794271263245728269529618399681121798804730607048733839481967953982280201915503211329462985043966327358800879135889387078089561805866406348661257617337881502780551116032340267242666064028099629284107827266403202147397279539511828035094127439980069703859513685412245491482771433255361867423293266094975151842539636017569858306102090597210908932704307856535535905410878591233227409992083444030607026475253948590202408175880454256053131305877674253180072562173347542545555005586551203487816102502232237103730099687858935403904306384026719132370262044054383555895714683490937814856293188936207495382907020719230654259682518466907420927584463906429683554404799527863684956172163953840694366536524935875489190182167079685982044999282172114570571169089138444419682700237307551170022507869649616476276970394549493199996803582308855085345960397051021519443078522382381892355229331053030331117821069341077008730023786106995547803440052109378963313786057879000008893125619923623002576909513298356915761761807530078478270556850242074402634975686683920948024730252795699043301020785788310507257000094724789176030958368158764437985308801333037195287996984557886041339522277865246589822338973223309953915605967662992709131125594878076369157246615466172480465439616306568096976191205813177817613685335145497673649682228497458318614280674430493749975393953970836593008682393755577296092940144876227165338187429841423909574549558623620569246344048734770116686687702554699684027209284999024528707109898172700306338716928932696938856521697780608431691098580467530927179519325293888563961922405751714350936628536339663958940460499586676987392941178135126163172256372639259862051411660281649738633134363332790967370363842695528283854221229139910678868436334212825723873816560824477804581190551639028069499517077888158519852435520074429440711121634409518304822565192247958787276610375711085461847151872230925870668043779764595786528886455160957545291067922746638905414830178320768220728550582355814315686720140096812549091130033881426609615994340897145492693723367707708197086740761030984664777821407611341763222547781871617374440235323701225715406314067352781233537796908357400104280118462379803640377317676562499348833098463515265869702969985169255802280586100855803291586848950520722310809449518454682567273462338145456463585963168267068617785753399407548376869752592557386954415784009653113202152890886085821141226919886744506895899615112185535339042090816066537145102487951371601418554678631747929567789824334332099812873411790777874177321502987137150111741616340321717530934075101550278528716701050772337371027132520532248394274620853439119079042521874667008325405217312297270665855770879881316674644513115780831350096068676266478275773466469795734853668650920161493296264833779205698974924396076238185845123778246607101860067735123173254235076326315357842869886190949426721446775349904047117516610702822309065384375285946376490608844675961856662109574551334025433592262906057947131467416155073795677724092889049448047232559401270083618649929213029791699109500381575603629699931746631717344321462657592584956530834149873117831123261619350200171002465743918580546552816403868493581984706458465416725946124535851969713911714505459176801548105236728327752607778571033329771549370383794769457029705891454694377862842869717457975532167220118628624374806591489961184858092875760927110750978351743203883932100748283295237446179906272708855714208621502825764914477969812338934383673945135287911467518861524102557151388116656678986220555147787628467819771480608743674748378883105853863648998737049313582949210909217518242226873927266116297752554376110519247492307549051940648591473084794251011802352229638386719757657825049456258914199861904166837067761249958194632186284551425065427695844331559651461795012179590695878545060717954972183435170943872047487892271775639212197375056611399285094854349288044277377958438348556754836286641648243002685182942896664006758488016901400410574450078344274093869792391318271084990861852400769146173614245719170121896351025317660238643465128445033048128519413090640053633472219488647475248188064772022071621488561679531317380133617525600851687651697504569275535520204921296574442543632182954180913002349007977833766008316520995522479276950781101366190087163656051371601394232567021081955242446207342250153607243098984024883073397733572535692451753483693800567062126275097273994674497440458744970270492539058998790001639146899010091454688229439281572327735373440652927230250587943134449901895358625444492778219101171794865402318664782923171169207288467376288950375983355758540464962928674576032986549911964547429727583970776083813351564080824765995797505570964796120304435336451698566620976441760788357886017573554307933608287666703378262117184046647576655200345602360736879054593651579648664068052725463662048554442087312857443785335100316147990482292875744854501477762895310131945298081434920208585428984322434351377245944243079480309277814796716777182994814639406693063469476917744836607560955611887711475722252762859852946996457300259139198346268874124037618281008140203454678263991984425223214702756758729545462024001664341608018359135442034428022991211601069089360141473080106673384191504934021735361374673945561528327028656858917380304252034282629180615505689163633781005831515028044471889848877164084710001992057487942203071829673215852694551532903394637420911939715792458111517906654695336112229072713129287990844698439393315988343682215735343976211956284120598213705159161562749384498350182727785210629529013580940354661229107297119839963031407680448694881521698647352588352601390945976473930728561642182461771906806666902199264401480713189766345992555844093065350216715588915606189872543046066945416054848479240080116602614012027574918345001598255131658146989900790121524509222366049127262562135226735090562481040700095612489505319053914782994044970383433082767592516528480128036795203285135094935958144270742241979618694288751096038287082336538599701740033699385808257798976940592573225382141099620548778341167390987577324104211164479915856286695443277097910767500478238908859626647978580546014701298127932606718142849299946636002810465779700841687651715601282426798381339492513980585664151291769552006879929825942930155167226845934608453998164424457599335459540642299999737478577059357773922726200012928983735670940095314840815262464861129758129375032508001597396155799637686878752198256569287642782812655765305684201072022715130006624349314583206276830168876968458258560834372782415453928647245786481786155412579375068401440493273421110448812113519976918727854440768298624721196308266485328783137558967292459348654390945337070960302095103624693482621460674568607648326701858315407135927216543209006300301622531125446998183642821121936092743140313358536871102588768217172818186898111686767188495853054370308541474001605669240926839521874886293631972265063898956300226152880322930669540313371902447625173984986056170398422862706614177115153145427252095236667077451720056699608143680790062655916770053636886963964116128241058524550609883119668568809206233267935554326945067290633675172113161381419131050751878225464138667598442500673369631114539269080501079479409870563150535960528429423005019918357864853721241657133564525783380133912266341907524551859220104285849145997355614396280622097154783876106513042424927419923147048868514558472214708959851605866190239402278939218876051126964916447586952319940354556267172104933580672208003439328743489105670039729366138525458073365782211084291165327052063150038383874489967941593295579051624091411761751239647221009072629239436492620370485357133493801630631698195337996779723601297701747769454198532436310593251532456573669919091233325156638465883616695163969386453817422772467587704788432798257075739281662538800575640916937675043493823705545437998182270098036624388469724074200570107178611886564452567359269606774556769126777673150930056925875109197392540779107157157214100584712168875303576209271296966021215410036782384425511322699051558961810858005345029574413042936676373743508278263716263246729841014178448062444043504004552157927739018243811651967209741410645870044066542406733086128299306142129331434550346537648151244146401109187583724476869703916120099703714702640840805570559994533644050226374086865148497130235662891282281348367588631939484097981391790735769739555433425396155142820540963299776118218735465222310263841502522751111504237287818962929108521005269337188073636609982680152493842868034189656227173095227918807573980958043662526688256741247793269405653317909744788321284482457257930779809151452313220184885293639420182896897515086380485711028980944699011974682181295565067263190517997429560664756267342015813482204891950491045666274724314718375875341522627152556111652885846358645803036848469436521474568492467151970770522641764228264287482021750531186442854191067522735288041921708269409419738473549718841664409975152561413374307054208410904321870117593524555295128787429326751235529177929341881675956038973969718768856968143241021905883154875255226320536851170542466022955033919659787810615151133020927509189404878641725443578873869591707073682192068039095945972910862176792382188101109782760945229978922909077430057484611163814656494859289014620351647322982368263761927428702905407298868080772430934648624545496134571918144021797174239595374520488740403587060678420163910345866315719361010856985535051128505259954344241868686860496668349578241215124155540952081121014892850107553574229959471844830445820495978563664641966001858821633142586391564940066468498179195192336971403108953150685992889995741239451748180514619282118464297210110496401982009812455476532675673005662221673064855450747631147595750968049883007626598817948463238362943607043397280490359933930098746511946988742182395372932321333701928349303688736340869358225248029465911853427040638356091843947200754741700141362602737354427562949385056621550574362745443629744177493320656341482602847652041642130246387217247122108165797969133687296319929982887308043640922819151754392662539405584948798709612289223039813647758428085059325007883429712797533147789196388763827145203817157984658065836898573811532242815830282597644652759990239843874283853804879425977565314638380305533582470713731674313687024412902840698091107397545099388822361272949557105627871404970965709787157741142255556241576908805219781041218167088984834582721677659357975300124039551117264198950466257612554099109688138624336455581517677637010291245310976408449752152737469920133164575167543704580034920825762170907374970012159735904191575648295576337070031618627590566451049102525490802810076563316599921003625881294221247355781526558982137025799503336300016513901257921446794978968567001853978698141302917227783236003452698656501647355350273853498552103669784515710881163560462648881252032044226391268484278269206096402312531386896643476712635266064856163715100554140595268155800843190738495035836264977390999023567804511817362226875627259116437542510661787759895507928951844531996012671198219176145359670679068866966395844970628489689103080958476797110205948386299672897747576969463883477217520996751868070999264373353870478097436846246051137370011685053317052799988837023923054967282996256385664395680515072619735480854471025316596290252290317666170062223684984979122572883175525163170780086239614170576843134937766541936307288874869220227257695676452616982921311990212689238138969794026699748812174447640420094194936285760956603814894122493047929139934377182965727020471844595527712447269435417624378876531053668216937513134532420156585258052067937433363233342045820734358303847607657787895718410283773232954207428023952033008910609688219821787345794769730963843571148126633151429676885725510860850240963270668300923326053691021261568135023820080115391164890250694574158230803301036285415702735119444091600406246937646169828421773125859137493957528893716991958025634279449371587290194711229590962762484898989470676528498557973112346339667321713131779982909354152617956132835370767230071492072911687150535111382116331597913028071787057305628920787494120761037100639358886218231048355384731535301466011536214450248837638022387129120152519172185797726703310969418619708078096509432259840693683031326085633902819610252551221458629367839003905465169960983324573753558203645198122505714219247841851494647873167050902883491667732208225527164697063925236688580247785692417290620523729474097020296448201780899547321637115808974130780445708853909409765460074123317360860395972966509653712674360308284121562605263423014005344205738793739886742408366567977257002387189442175559737711889815203822950625732269122677427300591721174267774770916960004177867297900262995153350181757974738761685222423799712262131108751746160330854611869540733003323351769787170371843315888234478583534037964995675210489048143370601940826697986244334957015284674289433532198727008089219096591093058773800473524749297728063881580287256105819651041160137448235214368857236618301449106078326519649987945428260148546838348771973028825900207408391025735109055015270074740811939636509190941547743197837784750883669700131470317719109194187765394278123988035157764168756523486970784697503047319827566771005677060310482689457079968009365137642835373271911512567047115495742381408164716273117915142250397131837148832860431170787248135211598536348384120491771032593022944965083610825415829146438973969716944827620050223735079396613575502678653609703178850972655329078558432389765227037565824326469407152872814464307831354147885089121599994841828323775410790084026975850408782701181776443764491436232033236154447525663928568238090345294952368311719146642830210801473814326279038766113043700124792075127969108627405133792408013081845453521915582422826379094389294867622897880988987104657697061637617996411666894101025019885546980116765679046434103187229096270491800286736596203088805045935492914401119731156083359395583186923264107610524416031218222653553558894742533656052496971415530512078677056997493774329521230054979521966692430797964714296191731095484769245962416227467715814777471875729723260542468980686644367971655030413457224181542442823563482512017254368618120555509999851726731676093383546936869673695381012376316706335830999076440854434544075013485515859819642433372860650762752258591333469001471472764969730685253365135375247206425999891575184432323902656734604953462305584889751745495291776885048956188945775203922806191513586023618744603260713194676804665725765606340496362790609110451628684803720456515939614782672494614588950194139859678263485595382554053399726015024456923883562649733485970740237929136986515912226074027481726797718051986263370026726261094108945146757884498073796278870271018917015552061613834714582459080470080575222944149602981364995131642151623466372138591045104830015442193048693973600169097089236698646716226741891704931676327642452062915211316489534682220247693744430855788978876215601783786880790936800938940501218632162800238277308040626681152466077549857294165746832189056841148784358881236390933603842255312834349921506528192227555479008067673427509532978009049416298375172925661072110137396386920689532382974454381103255357582800848088222437139457169451629787687835841768361442652029082279989931572891465690140009641598709276951026614749263676756595511958337422555745493156085550292882876165817747463554941286783396098872347954572468534249254707879099947991204500813409710170138135561300667284882658602319851551736111893852223363553626531380544106967704286868462734695707428919053219425168038871986987721223007195558228601477674414773770498626107575774038497094973164120214227319478915248015424023336326524036165060936427640811239374342988147886970729197038512409028045117930996838677748005580499193722777528512168774566371421843504693148436580344801795904309688179297950522091197402196401571297650028242010691304155387894364902683707054691989134380875054811638091254860003308782882247674496955542464974774609846503367099129619727524580839644343619037548272593993859854969753166962525762023945459543403749653880337482292620361112817354936140867352734266806552869110748844218777031164369616152391140186905976412016176883590439943136023047536850138568951337994602864491628200856896968428875046306369869970790869327091472787220499837166281369430887272207601981625070614656749711777228445766784683762026470264334391680937580395410005316119830765594891720400969114900532386461236993937627050259588970761492886389707659087798671622740535084785438079034343922398607747423148258111149417273386067337426760779820474031862408976751495206673398855918184395917030343962960714657612064114587263658526523909382307169133027769447202365273822826200172393568646918171293808677601879540475781171843735267121992380043866847995201333639252604067752121198512937843543504076226606165407831067067616976357291921221255193482906678092074667371140735362474069302458648816348762198794628639250975975669203080223690140515220931306328512441886531221666231029757073343347148044060874808102073000897645578723579468101838436805785189551555182773005076122888297700441802382041039876978470646721842614689700351531674506934798064290488357976936827078680368035415725602587015227885718393819083653909111525582711315544707616577818252388923584327729600140252849334587760478040653644076865821987828838694417945464662956043667823842590426418391610229938794137655344884229805136991209257799497650433428503817726453426467355542910935899902162909418240719170686262785204206913929381923365053926181657974795695898129960169907615352303848797377510242507391792449487917463681761263404754454166109761154648918538288009129557988194489368997638284435267135111207833605118231359303328114101306308432606069851575680911513320875233212341020456477463954525450244199817186858281774007367519254014302635031176472456849644692074450936942460892915246249313228492308998943205764338394199499822856171604909613032520028178874098955965942800715071222971461490895098153694604303162972333757774543756973082970956264941553072048965942074069424767970536968551827394426489936261464857551896428319459647451969002454861958060670093602844983730455871231450391791473671939615823102541661113993272207553789826720551679812420226351828530428774660961248368426714920169763303189134757305727334178724014936901002881418592579752525190007035426209650276148292398895579060683313668488458336552787965664162638308697794783468563991461801143382089826589814554740369331003452283249493036480724218921557040033877778556358630052390111257287420960550751547427348217790887254107250145229982691002547438853174702586610244391863052525092422562424916883596357704645142456937247515848299734253132124208466852607940908160216853073709220312839026023678419297285542933603161326172148017982035674263148175826569907061057230942329001074146920163648474970659158992057000668967833005832455609157174466591814693483164043271879206064812521340056317258971361993101782406122308657512244358947786361147195069308445637940022974373758230489580068869168470555273243831883307748055642946574620160234811804538399084192392341725420778847865102701124040212343358033954723650050591044712555228747287971382233145199757886803120357335103111527798283383851042549271132801314227332267911933667665790480614632849273935713868472128566482999183224186038280044156193893764057097204222387018084246113292061994446896529757484960021941604779670742124380702355353279284098077629560532078494320701043247885442905638864655775445665999207927007073663647114780394221144146358607156183926814775567902970198857612924555450668041367513047888669660122785722352520779903599950515709597766523299042432399341416669569400775466926366172816755645631939999047842900842283208523950290627479391174220690274616940431440142066712012687856862680005342313999183736698395644658543413155960796209117451056486009075055105427957938483389072190805581350460861847162315200468806843616672794628727800499849246624445781023602702190282871456329226130632728840230759179577255798783765692389330009506755065159605646197026647007664881456954355038256664188704765542969403879591243705138574890704292776589894444076063555763954983005128879259076072156763836049163819262908943719381394342954103306089078855563747739836458011714448332536879193189701078887674089844332580727500195150153734072417170043942878286898818111278694674287058969461056791232396801669629102799571388188404088730517844581017261177932185175464382862315998646669077090584819943695651014675631000237897408198239696964831212605273635064912859136739774421173512400843004731074698609156178624952147790237267721026434369937888742323256789869434786878812605757328211330730442293001290907260440441272574931482480377926389513940302752066185537897367607509805610697105888334550971877772114067356577635112472566149151273692990084735031041705072725624269259675823915584232270718952037876982764453698298902213622326558721100594785966493053978719756077198350641498383745295268778324971889706856410377838409051777328119862136875068855455927855520699896490256693776698032134447591651393268877836651475915975107829209370840501798083078589833300513576834716478788065326774215826320543436485832086822556671930585849848080623681158332101819299777343558985788409003496793508417209674137131356306313215827518439009557152046611501346268175252194700617578057789405383343227215633401863668243176680725161619502160099263809801630776300403477216560493796828427233532686597956019648090994675632237450290278672665006375545670606906449837343309404120249592802614033985107532538921327834526477166892242841329081536966738816499645933738804048714742397636155744127662449064084099528636285316242032273573216546636399714057429599456585473649685936900917845354744566982235147258930235253402860393404766114814211840893222084204940728741310672093084554408938906599512133092881868111305283880037575237261632332452634160307001076027438634054458760648347905089827857959331792236859539205138225613424969696481605052294702413978662648477409012185145908216787637003702915185717418936076034788069689583720262523621468282916082873214363676018763855775867442744573817357519639472109961264620353994939579369689968167794505878649935044161325526177835951544357098054713609558169615179789882566975131497418708599689038667747797064250931234116164789417180975784568794506593507195620665676950048359846730983337314864677244710765348493873069769317415245755795143700978274079433436999181181480589248704632607746682426213519136393349044896847207402021352088820498706701109911546671883058631520943638301537338377975673444069733924918009024992844161451638539957036848004151102892942264487397602229804721717218025315035872442905353268601647696980741146194397494988731970563950148718932342694960481301054530381668215853354981567183213054169571228993684939867890156415073583459685064477128784027818863742712933929085157077138612116319735038583275061277417536506231471353276126483910555561629641545634446126966466728086601084863361927304292135350792905024092171661798867592686324181995219166315778238203351277922969248835342215877348259677786499913608668077957407004805532513233056595378724571045113470476003570335665337809822716798734420564937255129351938182766673214739445408738315639412725760532984450531873338913313939150159242884853293361483430522352483468011191598744572601029488502860672027079196525763817556024469817962618055432894247129779700544983187595515584596601745150685365241927167355536449485821536111999726083746180350315302250801216355617110283868553066779396683367557793427385961623350425795670410051490180192577639328696761262987722520059154295197845436174675543200583987162206119243103669230312237212250347135238291079206884685657781382431451633962368683502424693596372218619346456962977143691066855427579455508998355292579491874319644749329158170342223584471376292139824717842246107309316947591645674778803262915571990185509374706521883071247311536600876905496798709688804022153154712858883455425191368376303886676968839809023791543667080612643044608686048431970481510135412637480725980107966786542213417455369580885666044647247853074237542707763676519307877385073552321800800909409104176779044571486077077073282671153767731389897747666727127644928436914670203448848742874889156914236335158222334531877176087765742300687565840641359812712741099159836777716757685087723579311438113664891778692963992815161723457333748833215617004394900838197327543136136265528764240105832683392347425730838715739682861673183851214900152540443787241869946054830209214828531283777732837415543952407072698419588168774919544674626617137358061336737638958341997548952279156640022932877633270038159535099895646456046160912116961831571794138357450510588616685844477413258649049706439541739151890221564224326185673558220943484589070636645971982540276582271588409428876461516078816940527573353127397002847419940845316659067059566196794004818581045880571549668929648860880183147962392628188271558802098994726392264177854884398490430629764997493065541935697143297716045916682171087973567604076827596685571612559286483636763014006071965958572157391755823682896885082771822812293813621086202184525128123036290854091754075102798138320575006023825429446516328345693877098189554000480166613813182340957454432621867340666353538725728766120406117286999052076318710937438344642459157732721758187669442163575368972766722995747125006223277686311729786768009407202952176907007456812769371506717838240068827416054479307253308221881958360908126637783446259772622264266504152940447419494268766119929305761945411469718279615289337620539445431093310408627418250919157244436905189138461209141532558962483325929400149538667393063453616820509090949843934058483172125266947048214223969240512923566162361136618002326244897333934686473008086082078524187820825844173984319502118638401340015756090585354860532389073982238125730151962884664367079500648206332383904554808485379288387394727239221566274094609536008127849481826599907790144444057934440078685004398282879593104916167876021050339944924117442679786794384921958393517553520140380284838267545700940059981239324560806763377450737831804480856786834941862001538509608088914003826357325534187091644871117955878024196217865274545727332006701371092339100354720982716556689944881867119142425714667573707679937160182084297343244884882329392013132174717852689366048250532137272255547517380121454466589754608283968750521767673458094196281416155314151556031597123210658239438787472052834692383880591016319152314833613846995655339243003889414808628922665050953035199948448786815594948293966438616841968149317878425444970981356911216086718503447212029516225335503727084079194329889558447969693284891616941140764786782007132674997647965448516957787895303944914205195870155402208464588987813485112049357571103050529725912556849715568313584871482408681820697480244508605877689802444805300271816287942556761660863355247638051771707251792681754309599982657060907999494691015288440805641299326600518626342762193323414595501279147997544245096352211090029234700761877487911947258423831747496829318675406544163868501521502147024053698481112392106659502745681230143674873890880879419337377379059883942312523847031809262234391759565578587389755871105694856521262173845679014500719472632899788515889336142502411620676293010170237872436921959567640312630888896538524331621922072949872709891801217144791480048279961712192399654758189445424398292093567420322518272087468033486803145776588605073931408727044663831067360474946461910674671251235410216297601212244780166224507697365496706697683176055290765145930976948772435064734189811962996090723194103817180959600494524805720621722999836947960682022367053751695636204721855443154492442378284204943930873964516064503553622022569700062967225310596299707433079382321665227761747448403672405790132631705965941723953203505337805481223914609761130771932374924903783625565040666569059037097190288136296022564463699969895006353021351756850954916382785454321523976121391095394879278524193241837607088067085941544251073025392998614053927025315205167882049649926018722773715596860742942444521964840635921689965607387712039377374264790704499279441681833229185752458451921321917643694731326362805499572875285427123545498085340816807172717994183817261879741112054001171787379718998796819558148358371977482004495937864774521034528997055780335423015408346081088242140676757117846939868415105586074867734785250850654642897029595252273272586993912770843659641937304592630964254790228897699480458224879622173515799904463809857212960564596006381452738770083616052336941096801048495243743240922364307572443783499359755313524913576207723368187062608051673156591782137864495403540330731041431753207824308106054899499037810988233253424332306689358409082965374807616477443505463587570324828676424468957338551852862764025498185751640147976873723938093708790995482170789915822613177472524786698688776340524229879016505525880028167113586488786427107336537946892139850230053219652639785920970936288008369469423810397080613748783280870426181766755087239346400047451805767928834645077979916719844199088820404469911991225139782814756387488162570472261536518808407092705728233321183383054053036988750536601952655650424731858207333382567725150242347473109099146091344559310312307847296311253042052513883694611864120062254769210280286493673272977712418000405773094637080776538707018971414597844455542594372292689659683476068162934137738025794830460312659229165481577772483774133637317043528346541891206980410973261441709753365973487923418747651181352909755069511056741464565244370960815369830085603519132015240251545265856393834362619874194494361889582065577752293441336035355520044610508196597800036181958796711157490190174228676317327917347186693510287285424606746259623452275125967108911337950546625872883407360691377523383284076434624038056862047482969687061947739225661129843231101120543744502606438033707689823577435190364645949294179481575511090188827865473113331817864482300636814434798607544201352609772259083986598002693883147232231799689181444654023357661662016030584857459667854443858103267970305536338416293986752311975199282395614005466538149351435843097607601670184530076279364723128694298245252362643338233546713663829063752217860114421407703973757297408432532697431564006311906041256881467228252100982420157804376003892495951293153506918629475936245632467117329855634665622819684058935498484335972744399559951987935660594404086944387841334806351654607216234144804277188345957870019888745464553312050491149102455046280848940978997363059286057952770215675763816352987796876005599362594389040589599709049674488363634408334967512972223426324037845278385517073833518461598796639999253117580818537453903662019356454647049580929536912822134377654530253745727458533168473168760941759684881497913943584007273844880507409284290034645425406803568275794829435120801778141252988971212516824259452221125826040505632260249104863060511208078639581136514833636351784892966220038436934538423266938616814411252736757612296183194016803001345426279145761306079737700316685976781904136365086079603749697404111794072514572885551210491936055004823204709114339619266675937262075719110224613735150687169045201757432340446306030208827526456769646182474376944738704892631084269926448055966003870594881014688834237214739264198648115480626088737602147568026092562890211703826144480434188349078850929231460185485548507574654074533622672087288999062594346158465585937399953216770616859801787213533189989298919023558111158974970039146655408617285420254937690500578465144820044373545473434885438427421401218726314076441535806205846354133505044355926393461848207460319791575262173986809064829339538879375036319457486434986866578817075728004566451435585296502007646673706747219413727301595355129698648010068171057977559606691618775948748534025372956595340597224677841592918819350876626691138589349932885028164826458734336697306333458403037452533670209150578129032581483576175582115882647744117926358214237658841171838094996102397250229464176958330665411528424108752966190394108712431454010881060344193752590175496128380350845969547713826481221780240202178659272830370898021167411906731863750881547316402718278818592543160533093889093812496870385605564739132217667750947190668661715138084980521433502447385338204689667113487377805472049115241268095977899787747868904266136560312271865758103160443241115877705394065659367115021712847833466272479259678119020738315600292736236652102354941068224167986101040570736873566108373275139773490957459049301127973514680239126407805126860587392140497328826412098786336884411851291564496752136331735168558092003264054214196162203563913909689862215431206083599254398873483109631944753835486114227726231034745997284827533057379520623178336414901668008177947734046535327420980113879390819896706585193938131598695283039719741203087209921324223371177525777322151577682530136413388371143580066762728865451386985269937425980699145943584644348242687668211959407899064073396135295028745118917321710394820571436337172314918135082618544541218238412456031930495462691253719251239196814349829169658455679756487149183816074429350148017603685707495209352808374575069551287666698079850549176581020129481009987787185121064997045374695932806735878174569679727074115616500103407082610055889575424421084162641877056782560118133780002514614337920476315395516904202140601543737570352157330266212370652270242514746817259993205948679838983785216671900393713966774988963908450029672639591417837974333794693411550765755566319909216653173481798090777717104304281545868782790643450080062981213032906569449313255177164795326415366343327550016613752492225105216219955067409118556438632154378441499146081288344152323842525323312062817915589704567621895012664933348106408018771780598628817361865062901477003181990198166557531289674154883288052419465204836581814580667009020261861370714477364355851686685338237658701959369267795712357908276131415242883781791165526529968087072635793204834812525274891080394550389362474813861438226650235030049873924777351148700072564605999564870193022459950847321141192896619062837422911476531407499228747293988209264428106113701513966425519829509110531947835050441454131129020098396121813930160738275609056985684759401119054671183308038965933728824458444085515375892784163461131932505122802912662444897569649772520556768377109937214257144011812395449995732352527391745677443702331492973070973535724966816775011099945347319361735288788676956779187668720509776503905398415080726193517963386971204181602895508133121390698845741298454277136900903066836772787147603931264735879644964348322988418232172519300430985142837986734902302871248643679002864757403864198662541199326776783192105533887524288578941347946105777981320818395794325637974704000337615219577828509967173286732184576113780402328606841802714066693264875728482874015774338226457535506749817191388955040041691745111586840448818297634173153619391400852787788239261356535019803801851425282210602984237957045470647407323639397247208470181359048796009561828886942765961600385005212922608972324050966743733012577395439449282179365221861453052933473153956752431181390867036315214505571235832365312907060558466156072506304453576993594158075256582380674019962636770609518676319924730522456876466704495711229826651515346086126399855970709161769199485449751915046780074306972445027397188338954131066854441483403849499179598200210383718173160379594105014268108171487794020122138061882519005110520979968838684331050757616484610782040880890475275242058395841204531349454301917580504604098472736138622594226686735790045752963798924386513585412960555571711982635735364925981827420860893087574440136872237562967858836456603431768685116875473146475852193096731258802886641289018555658496372755859060539515413418174114892660527876202826328489821482823599144670317371231640183095341648343155978206006697622158527157213509589022133298217071359674201168779212484991189485162669319371551450891914536613149043871306689402510755026424208173622166131880702899760203669999877515294490936096699805624828674959729542319505217455671695604180406876613941273249664906804752282824402519572573049464218465900718895918870785909053494498634608200641771566272382637209343944726211866542835796370680845995543809272866796148241503871603494095984324044074797527005404271949795808306095052779979966672682986538103396920482756998793103842298124784814468189697924773145260654797229309833950982159966518883094076129311944213778332908126236355180036570359264921520142271749387070688581492603881692227767843795222517355839416847319069822367267730855456127751035873926014759038906068605300212197022156590696083503285963438641518403844046326150660776677961900407642228461699891823050599396581241551588001362211507419855131470337830882235771527048554586089214591316558770147371677912692444901627124744184456119338602958364750888979965635353952616327078453209903592497324825658484954827422815272036092698170384408955650645811689846820927335172946256629365146527677001066797545625006986538004401536855930954899533449488479239943961877644792305093524131710064469771432157077736770832318684522377829040360050403260844249551219101491283410922736579485133861023266264468099050911158529666636791652946650918543829810507209817022380536492476455143973701215827254916367264901556019711709011030966589090426146066881911577236576838205839406649976427621883141291460247810251315606177378249815569053898740091531458965437928713861309873043064894962663275932089168903391608031742836294365430729978414611131766928059508360987831729005561049631849415106377471185838801663941122659237500127086178240174298774969083525136598567926471506158883281811698523636839080965549977055937673135485433756128223452028843978482812925176484220843280948986308982805093391603853578544873242411447381469757775699643408562130098532497527134705226023041905990263975155219376135175049700776550289639547498639631196617829368627721848233952274117152841541845636522596921769936158765413894829899776563535367982881107256943619472642740071741069807818181235597029771912580459718804440150262845537228877803990012828126462420418608122391798197211519666481785076786424278773966806399189677678617179932757669120181580206330177450660905575590021708487137675285622482975265532112528084617875188622656470841188561920850380108556404375548546753361593137871289674736759067747572671646434507367781290043484149300798525758948802058438779370038237656395406759141011381936879089439483438077601738623852560475922608153150443616099743618964374639781739150570677134803288996674875195720450210605757893203447637694643486782800388073085052040533337780569626727661370703836359736014812584625727551032350715346109250449018220848460395337191556523697471345042507938032049086193824127063393256025526208958993060543772146990837631673108475213856927530192382781268514021934375700644704661513252662955042200920513441085121478490095657826864547523128574568412072054526828026543140724694684856370451551495158512469608982857862188434460186975479639802947694813339270753768228136467897014488098895467175825273882759818885328692883661520760010987912146005744808144700748917965926640876707963651715767642933212184131962054611814257091887658271495266200921209821364957287938102973021175418933471032402229129508662957602646525756164093325359940726553124571478793803643690070058559390928118548116949286828400539832138233542759579991828064420222161073604114672932384382780832282822559971087787605038758328709392086374309989327079197220092901515640670640639928213523791149766116262538127514385490731030344615241743816699847525058826169067150608404191356398481757747739161492287254562709819590211284068192952314495070492137862111433531979909487854545148710359314276545215960121785226738586363088260507764127264736056017292083095024081461774128584495311691262883203415321232332866646524251258291208003303348159649744326534442658000609062031058444491410770200290200741565330911612664069639920087020942174629658070162034934954641022123986298692215324812173869419055831344582078117457371169125401513970788128762261358125897648549002988703722276899636350442464246186243185166988143654584624126802500278250405850398300788281488729112541782986325610159609038734956804606853961333482702025597759446884697819153079417022648271701022045316654689582602877428544142013826884726749037516566293300166626389261972634814013811391237477855338386203106354726806287600952126939373940164381803419095917118767675882215863752219314910767994252707015735017680383135367827945119853968264867128206072396928542406100080004726533944485474287389004394072330702653027505100610847078107735799804726124175990501466683440031989302191617766770436774951593984344414340423263372022940047943584298122768491363635845382628975239386118448672395383949966422353031855733314169318612611187716352615963389804119666040236335366161702790569832283687342205143907945904687580682181834494771764508328543474409520966427253961454649043830488891959902593021342324747792681652761739551960265329854505514871388968894093443700112289532833053165319621047349782312584273673418206435907239805720976146177283087728817618192050162086186248251479336983119649734361229632592422155212982126221953562185838806160134301125394535977182570049084231830811567414896368928881622053958397079154513313544770175674391786265743461331107104893850577689031985699386496818646832776390702316787161137314854653748127394237846748735551822788665261895998469970965674650327122612145722379909012393544863382695398363434662676571930341003522364607333628629769897638661498044286085586524958642547423375807452727734669021645235658906831384503818215105273089323405194453275410299278700692050208417561721145972841167408535341868181069920947368279374585290238856374129041732243654592615802065346083862297119397833053476678574541977201306446917839103217942928573576166191860142952032894037997180836459858349769366754284444036812660732981446998277505306198461542358521503957757884871772246990165178365469265515728230245147774101615444150390680527104644199771643109864531072867156358662839669660135267157155672308050411324111874953970912570219650922945060729171670165339570686781407802678678043250606955523831099405504457876042916323082401237178518441192975729573604303210466239288161246350240958560870635031414776261812618103104374990183202597010667850110272358310207178894098047889906562843815122407365309655690695121745026372338291886384615795449898150371268468828268326694494469681440551983216984455326706296848130287740779816227595938768705738255498992632869777325191583788121848103085871588119963702112130547877662865903149814621150483836982766803869054131021495719932692224414558065258672916950056874012753485162945367153862878978222596669280088915975451167259364416929748359726822948550903356623757045948937247477443847447386571923258089446172970349936716018851834434952091003880646323660189433415520637190003964881560315384658838655457715151027442717046305778319067573969306123089419612454031275449946480713284089390196083752111150849711287373751804282255402395214421604467421262130115084280342561954725110451334731965803248238992244526526377674041379516877336979708400083067213932490327725253922935574584725631336399194161337770246757107606010665725710263036308134770396222039901704274808555515153634062062204186947088526166625518487140727800193294489851921334439013983142988384731486293158459716535945930066945711169108536102389765462403518442021344607363403432786203311031369738279937463474973064681464312202506391835619373675559784433838405960770319746124841496011119038120901890504289653425236082858661030334058094473449431470755576701484260359468723844401956105845972630376556292358215840688277202879865849263679333873728365029019144883163059006065914135399365832497657543334508943590776238070528816785643877251751449163885797928398767393545660467667366915636772825063412776080049868806497933485170202180745251645640804233434994727707780220313649681056676796240090615945947945940852327302730645943447152287383767127712628469784691277770864451414476524357537200362596236952891382560398708415962966422354727446656000705921376168035056895543235086461519253752732819095419715958899588305317321061714267266300243115469034374717298761031451364712649266158740014144712553875608289883425750079457297639436045289675386044434937154532687963468852468111394616319180125892930001981580114520501633926667206569811838759595597762069122840722914275884545562400724939334788299232367421316945333562814300043283688533870723030244395097082244527871631827371461513076629400674459632960334496792791107108710992474627333820407177408179874292186389617082344035404620360615256981144369381473329088944911407922032531184375272615402433475555207529086976512084763912599900186467773804760925451526039134114220032803160412922017962525424123686462556937733285996368239035009432196890335992788124242409614594828340565142830224904720277563493186786519272685416849584707361908714175016173849230262455529771919862687250016174607829376236070425083314722126472648731048599087812083952395380813646217907211808454818341548598308768566377544514493918880551442654887449542475848130659936622736369030842160163984586076097079147039778784242587435152588954787065602465251983965888228971512502469088919786577514683611505003749927571736588234075408064823723473716020895017379319279406919690314718211950114328117524091503036813457077344748182414131722390323308827503101430169297839558741565720639597007205386120252356021105860795831533280342171201209606253744931050461372346522537408354615255402808775676580401174695938802042793802122559002498487585036006349127900352665993231921802220081943021449399181963582299235940420854560830395509627134358671083060389055472788459091662258681313962648419469344731362549078007447989398941561253871532193810665543166039608903731478320330801268941280669346700091856208920478332368567808405257882600532834164843106630316533523387614228220343341256823331466108166384763394272079521966752520128027906133914746633644221893218721964290809082248337183661599075107527348026185256919637140852532297286498089540563277590390819327147306679874682807753219496373459094988422751315759812356873350390499331949006867517524358667138270622719373878321624545309815144705718648906735270097582867374569954147439556979326974713037013307139199870513701351985508831684547759558773580044925713599967483661350312349291108226843238222178982452276095180708923024963933530379789754277632375699111340897530263852120687279726481309410105187712540165260690178020078646636819810645840708854290950149189572622245176456591250420342537725443676210598759079820264321769504768215289006615740948323782041221903003518324240024947875981700497798629048250667136800066137000388413018832006881460389905264073385642263134042923653861788497331890206712067799200746834396391934697070943983817935552378230331780414014082263077907786837249881010476555052589826581718372273405923036746648980356495618844356729863840870994859369341372706701337955761712324715177561061690976694308525859118208052709310298292459457399589998981925212716622489097032334498716352502628697769423092211966338478815175534318770665014952639498093066980001709811363909082171024708299771366490404559742995343053720549582636768403067108942707765908156714005348983878169644572144172753225571465114390054683758723855219730998114835491846375948442240520131651697593683421792326779465180349755610330110587419379334742971976766218709326401236158142934815856397090767581215542781879745218813107876377457717095649835214058202407776430172957149557090727878399038332666457567745384661487441609471919459114438937830409790012239694480439110686180075039220880472907594545751821445499073643001228104447636266447575629844545509665287064127853688688511243131806371461407598089228184983161252825619597397335288885030775255286842498279887411788763803614369840897562704453668138268814211109840068402087205856271893264046625450089337642829938824270738500330011958087496849011696358740422989081655433113059836869931537117623147759386270727218742727748534658469383178600984199581409107679333863506890907865339260772800353703583648292929505379846492179052970605735409239915084449003288649343832117590589595024238125604299522717486965815296611352397735571347526754654774593678699077759757118960673628540259637157580906926455454469559217563320772571904348426284528663443374118288074727828855613749745431640376375535140082516656593340116727967527892355966307535427990356246117774790066377646727671982410746451955731545365702161322467666013399678655488536111508762295092832464478295054106430570268989898038440699813725754612871109387868648154137762988944322514540256115510827991868890285077497071818796581812882744224003550428022686605947319079155407626028225444735465168409811885019842320198689007124657352674718085103308104511348148445623047528984212960479440027580813126803640597938176558150289723171389436833296327480754154625202149889239076045545472662837121472967086643110340486238203085683660925266248963995254895623924068426564482622516276015814959790802957056763130626435593546335968805881755828667175680919407690977724645124366469841596648802752141433635349634006389301268698831139338852177625017563278076500817578524151137894150596816001942478551832150897406683205349068443294734975136126482797871489531037293212385608049378671577161131758364552800043757747062635919439848782537764751562548031752955569242234353347840016835394841684957577212937167741011875011423976656418708366902335773479933399157895806621407498569839949536895467059467366534702684574092776666853220621775913149680446302999081739842275295214360144005337968551534261571870000575655866178145723477318650769148658329809082700080693390872180459823281308372138837304336752830161036026872045362345903119140982381964590339254755717212779074229160391071580921451711600662219586651345340476755080920760716064688738229628456668024706579510651555390899696320813613113737223496623521816886698406893689904572960648551534597538161267520580044286804465571060266639891173155631707788942841800998836729350067143449960783264962038764019187451480778842047038410859644154028173043682202421188211891062050575132636587280588165805356404586846179693701564270811046740489445246409397277486424450180997942881258561730468334613632919150875761304405268037070852989133161247598942937247850986990656406554739599085484501732042977802434231868876312346033613967396652501868819661599560127609304915440727752160174672514419133390952674044375202137312542499233193529660035216335998898035106532880515276324958198148667974878989663357214712799095439917751284296913373438022761461825884037100338193491075644733286172410107037768746453170128916662269281572211271916385516159336456534578986218307946454340137921837851720153819678962696682675502610383428504005662672656698255946267780740987277363674614165749538000529355937655015690492011988298802690334174260402533735446358408565389188852639701015059815924794545407000708468054954104891607079130635976363948229241856013773549416663800851375514839416079802149171939930355212918038259302378181845215440348963382898823359850126285987905063819847664417851974921463014135366852832387812781326459002573677271912181299750915333305598505751344079321382101141036450021786464314341014585916181695124005246948519787497459457481298261643582922583340448282800737626442234677890711992984886161783592711803023367389853670641763132631791548733853918548435221254407898085290916322675303771772935234282464927969571388969446383344848611385188190208117334259641176700482647242705703006765522925620968695739184471750817290242674010817086102939897359669263960617165404914916421579021910042843032302560124147075318839213944945755045434168275624270234610982489856985124451205617064037176719237074496192561655950424598946269237158530217697026466811149240054726145700113441554243864585297474625302225021971929575137816135024256246255279553831659198732239531510129498110998794863239164102345317036095483585532111914530688593359184979882874619321345432944003932408986361890609567473571498662112492201567401078401355772981229525535678237078708615542334570335535896602611407478414690745931997433281094250803162523024320209063266129609840014592091290718754443847808439836841920850430958087055986001440822982578258196618933884149842078595090502737505975615480786177016376882360342771343408906893169031871239170117325198143833763135272874794796916651523780536027261599602949437914963741691229146202904194262860545541305278940835098887533784202792459582097953826874128265015085278686667171876891619105047012530906951210687387324474168569663147690857366908303957621938093580866631658963265543345731323263099633404458726910699459537506690206704396420246391318984044219007226717376820966602433608254667707951484562903219928068386621805482518758635159533042711812434100330054067763653385737427654834507127431719863569050819864999396921493795224223676067107952762952950675082327891765775537841248064956825608703593824516914275174551162366906789378836988427897718506446657956496116686665401264475389453317012541959666576711573703508162876824723630866008067381370223844258571892111194950113228032819740771737742012143727602407854371975245672692771046095672213046716017229644612993089630140486891938667862613887897769617716518973016622375447602799987885069312862398342973458974316711642380119894817792201069067922395712058634596285982470022863680881333291082104548163209802040601515007736371692267827688909616461298615299365848526040271979700703489680562424742642418318728244671803620828954961118456125503705893225012431627715389849560923088692316295715430766013326904957830525986358955428806013332891102468753212585912852157722309990121269491275578967422569378518778214870301916694663837040147129708101910363778199594923797828390885706295186738151648818061817727328848212609361245180542791778794074008773551194597317150034742128458303762880196470489457579221814826898057815967347709313144707841140255469401952728348589631787051826011819817811991193166520825108761555384019809489770406654978333822937666437122892156521713759462027977825625881270633398463682883886674515537332647408822662429237869700251182071036527494743084186247893564647177293987897895150990165097717313639203712841338863567217265175605002273201900372248212830780956262603929992263296438068512092551256317246752746384071843972550793721304130006196414007009709303434233562727406813817193421196144088988278696895221724477486759787387495133275914787630335349292144119631071477029832531922764988427473869074907389248082885640038184733738179111174168669812002409602245485370348688152421237553068968882246756247770688873696050689823659661367988527617993615742993165560773527144715007138384157355035208182837431457669119015162867344866283796952434576607921583089373919493472756780768047819074376431421198324185720711466054732584199433980638216850296135266877747352095930274934030834740939547355423816936705602554163114499870945555967166400899756102613954395226840279083166849567348966222238689196572276394580811305535408082840275418760582134173991028511448931213520050599772087143156835072615061696564128573588055908913779573479947229851824841507654018709942466123280240614492354700490502248704921053430076312865589560885975968972205453064448885688397881513051972547916491187139076262571630902853264768750557310471671829514254579830972977723619754947827742345692622888258087543625226366791480179468502533206908419377493476108331639960112558554099829423883924152054706204652677759588187624278892057672572275280214951187048677205653877444678215201802172602464493916640019559336872623496410859623563575837183468677369705270815860541653001340397369577353894976362722896174377197996718239319498255709848490374083352224103797794057198525896490858163352280578048128912470695780044358691445521107266513744766825318215143357841166765298372676292796257231394887652060549103666028339770655922333454927664776621258298957883081607847966278352880631425233526283488396810318594310178338787653207791923331181587392931096309216044249005914019728643168005225758003261249452819296130071657492253246032723549082479666511495410079936194611421687246378320366701528975006190926413936367942560255654462376549345546291207586140991107340189161149051525179109475943411665603204452724150609003513479985595716530863407195514188493840783153533480324616978499932027502420780470297493116745736298929197223008376207033305590717922553405542713071314047864321408307534567450011458421693651628491871769663851805020744884615184529014039450775306032934127204594178515511985204872160262153048837199689694384358708187869768967093960350015508517783077363100566628239025184493775389682576305812683864248954069634615855028853920668426376348856927425940014747108751071180518730650142493334761888636220811621655756254678564883575493016058010673248033134137724976172289255842247962587699231039518770074323797937419757519383730015686983593290664096436499278240916440439480185972155579070898730771477305310997098684803950767292692520702791604033848024170220563517126959947139697819340711125728749118829598536961099355344079916722053610641885661167789173748306996037944379391841585683123843189590765734153843634871193907461977034841808678900857734398090366276896309788073451093322254975539055908057099252369334631290735378065578322356548546755231532456299968087764682985310742706940684034499269600247667834717294272257996985571870879209560973587422776503466036999853700660399603566982507898155819334866630331856267356080060362166277942368323297094601383092736384554503675885431487903278792655277172646360443113620091049946903728156927904904551454482901020138287358658735639651385936311039385537770335063619906760972592509251517965034525545130445450320679918600062173889909114740180820761422622970079569107324815183481490935267446878367604149189676478237945580585956205831126917762899905598912620675116362821715893988363516598063066079487850201744843665516997598050742515233103765756839531447719160710561420503481579274349429286429689422224535947091583734272860442299792354333145283202556193386124813078995517369834959380899898312196140814776208213600254138160576544430094135184265877791920669742299779346582299570571597548993569244815102094286619295687544595670435626610755120072364480014978163609586900663286254386758821235555043916332574891790150176156381086665615095316818341796311916555792753655174986238061609891732458179193130740342158845662366903767819989632894972224966063171925443637749412223109346137051823752377397881246994867587752272685907376766907603090994992070341225304229663718865579775039331307097381187562630846907646808496696418468473080910860952499421344066260961199049616353561785137564147443535673043594234593246308814226762849329994431646551112460790486884383107744783598112844401341938592445824140659867221430369412086186173028917220548134210294065036544493118925680457572429739512540941869702001133383300297655050817298876164306322852681175385479387484480974806769711115705685931165731903667792054761928306245351855204395226596990956668165967459802549635072104765013368133780632552894323564858250464022640405989658798567754171953916060251425301233122536812802734098279426433620400322425822982393036724031596063084254809473454304228325454375665285024149846667067491744307174839339864626857984024416516642194981102216140061113104518072152895544612854483395381469223891822671452689240647360512897457039193245193663551264704473616347692746321003215124890970707005559630332921182046383216338094741660565050558090777528556747293683595615863677794160185819098671646941567716646910028134306144890920384487979900095277227456695408239318678833248786545220209414735011698952201571957756925307515250184194027937314385962302886646974950274887209948754655325547870148438182266207706017088920341065039425004224795782593709921245989702835476240821615965387977608555198886819377729267443331606384270985768579538283231573247122819816560707440761547959565644322659468286246829796474761521612648539197545688996761937509976944391577915473537185652088111888626476506821149533832897311266850965961747014040133900672785827746565209509465200646014682781670737534045865353056515096559497259438576026801612666163198774831822613825292456914646291411045696251694499123496837451574345743277476181515193321849735431830894070069474319297433123754136713291721001881742550035063192591973118161541119701383366144899974035584881878487197492337783312220627863620838001353606492078885233315857390217781141317379092300174504221612306829485790334285312138588987933053454808231856955091286667613737649684316645842765813368658990811681376469862427991487920240220844890283860773838576631545070660406766043645252546141127951053873096813294228960131880411281167202501460470183569207992958442609461107840196876799763931595273623910233223640140887673773639113018187739271762155120989607514510381282688365555507879975633965231292528673013135027188180131379052045564353154674716113297989226825133239304392740608005027537169828636848058922707123499769789946780587569102471441542630731012763127703049659389238394388670187979364358373532324805757900897206040530905801857709599973392291020498765247173877529369896377941542942077490004534793382194407508237969373727908949945446390148631028477254018198044944372035071928381576915336723264604609315475391911472559376726642216516170162228686420462898911806577864985852629317611295263051797658593736267079161696632166644913038950722257601971094526379606596651975676191246126801038348380226566158486425979210028753048091030562130106959166969825452530362467568378694004821914469100550032343643496766370826517730806690814474554391735921324307363618726942931606081251729639854077336910988032847853481519334854689411085493576104007463333090557658533360160697660970339631758814598327863426275631721127132108760976585987293432911043178732023985784712196232620730552860861900923837702226163706391354190852115842986594308668830614921708705175161725757650312923322407015028142210392842957232887390776958276006054282299572993248275220771676591974602316822035651698820318520438530601520131034415321525200057453461579706629192646854554358129507834285620563877645642835345124353744139005440240457813893863088534995686496759330493422889550890945737775757260260493305158778223344444870528619371863226569851515124900332771795536782806590087047727515890840963596269483903572284489381216038118564594315648204465430026668646801275104602347243366795705417605306024403651961754861018519146678708553569694426592193417522428625890502655310553743118438613953333057495699149332200797355711778554655013603165934248712696250852498083285117712662666591766844027284947384217009251468687863444839000365868568801658317822711670603872471759695461634555591308090111680407155555310478472578877669387362065535279731738098630453291059480795161048596935800774521319120956654415135275309491241470209902164681576203781588669739061205828740124391347772141139535821911529140875004602863166757733893837524188676493612867380970797181500517704218401133022572148798004098542149775655272877433601018354479978149419069939994002492653678360072243892704338606843694056664735621667508694069443357758204432189401513628321203416306839014371907591295580146381300970259452415769136896930038905704042053303845556742175807743161632932865422163312918939072415637026831960960829821089686739440892972736234535536192069379259697142137590953051611775961426806987208753477492131489829214409484362738619074502479965230852871690135191642943808793708029134231533218348028155247369984150103865109961807037536105235890428842843166158575868567515455529191337051529260989950012947219828766891220947109470113902383299347260097758801696483070349948163499545275956396824123970122115472538623661432963894435347209429047820915867451667614641357505880408392500682635483637797493487871633172594234753265061811328541831609109974250447315088386419053854348597524489798761902775480999908967488067176910032214567789399221274954825652383514844364141565364039764051961658685881778053975437616320567949138130841942901181768303113219824798977626995803047458194836800292821088384794416479250540519519002405148106276835092822184791905210552212021168155391446117178232929678769974447769457912346489038837434774765172532076178073097360853810933099747351839798880583228453414178116530302724720775243549365828134908825176924894260859296993326905025165872073911915233653833841539408636895192637130768560679768285352022129246187641619545893618644341698303474633074683619457481179034615625536340581360663314057127907576941906401295651349213966827870355765255082413585149209388188359678180733045361035785080249567469308060550694933792039005586586287391138424648904757880508314007405836776510723733772619309446679844676785219146391643908839467812131841185539255742534351084137712040106571107199737150619030734016677035270564592456910302207355760459520196635470535997918194907412874660382783655846033974843687349704664564449002032466622504024600551600809547167446122352051248554152657645044676108407857356073691424200411102920702023388151768478774280319826913846811840520568437669151512386516224089844909774513736558076424893522560531561686192909693226942312128225124824369605752434215687791406454309845539217732266993735553284312512631179497750961220473541292874257421876406817080263949629605038312747680877313692356299877999437784151488689108065659284402634324878517493810783531117322088648324069929409106566124602233502453208313212422023235352106977487875980519599554779147981589905462618332257432903412203693043368569910419738708480456557385965181827118206858714894251308924363051469527929922273505337641336409541057230645327929845683246421730583466873993242133512469830842745234313555135500192558198645829324691068185543670435970103527494212496034335880619839194644048235563345521903918554549987066416309009833719709482902382017187680533968185273905570470853874101526043520558381203275060412599088461596819645767547203992651044159574484044174978976402522277133723984444018524392429398088764942619684975082745959793101540431651374569554112088514620974492564276123676735062751618154197859167622975242027614134191924117101464731827812235548869548414804152562537885313336835375236686878762587715111166081065908429869236714474143738134471199212944738728459955496276047672246806265641851295209084469945761263604362703056270770349776899661267219977293146958816160242979402112485368042364573845530236479672425460967561548038051174755786288784707720977207213144959283609974881325806437392981916000124938009841105232214982459226311988710493670198036951207352847279971144441657686119046955542855001203702990502414708483587673323734599104466090186953997739034836799709914920337313003315917470777279292254552139612541684072398904036789341617698970881845346904932247564341752594816646889993712834713019106386172291673736526635434545852658218844152875618549137750663910244401004588700838511690814544369620728062749615964244958719183506992163342015223941592489187586822380518035412147813454757875045339173789516412424767043079886307210982413998929460840068501819552713062703142602267386863023211767921863770426514692959407763699667646082703103403511850642856897192424993376469066680197151678668671732353805155758642507474923750008765339792761107856198859861168138796764822388313955229560112714345549181637273466510122288039182798095568731267308901563700545640829294927344025348874797180824293951727982294295398343395156543148534744906516057186987701642020430983397491578721049056822328161030228445419055635268162237196171109227329652801256469278001589175304530583718659709774772722756871914054828180666608926109544171402038455062314937712156120423668151623743134288896405714265251594785643707600967401470989125056112421872958708739257747283059096450549769362389529715807391420082835600652587915992047820600794050072130478332220150973965224958184736230539167146459530225313637675450347873862613033090681802772582827192709258560903387429045771969984667688545299151994598577599261842053531013713909679722071748187673607406292072035510084239366935868836786494987226521154849876748312978656663565388304378405623081562510527607876844184996618029981219119112076077723214105158628941849446634903867263852984957417119002448207057086821653817907392176584410566722550137768836000222429476054682396415376717612748678605771150179704446311855977649504556766026424909516980043433535144059424589021586922468036789039472759960484460715162020618511481303578647534589175419200901727489525107480225768075281224961487769207839365572635748561485507539795506094530015511228296588878050352272884211990365771796403578286870821977416756729180008394964943822290138663299621506925045364329537449864240405107096881150603967192619716366346583234313018722743172092834961178859339764879870240018951781384378491134779437443415307581283772796431979613623381494798272959134098175703739096545174187081458958741367839718657704385661965211418753747220451948254627070773730314660529610218086866196867891160818775250418880326124408266770779626496341150609995445525668616331904579379551876664224347083631546240071787368784028486879523675168979722968384759482757802114259250140584728804029198483238404552158533215115959309663101261645461885611292202034197002458678354444206564147646304176286140717911595414202164079606859161153458190127429976804121131182675464108421669066548563687789770275950033775370409150656331381522071495492543243592413923380262148422009048003451875100999797969499759978361870781211715235091395083385092859058233289051133809180163426183491925402504739313149063147702880692865633877812512538254360951364430933018488226114571753353033520382379972716059655605000643394533065712836674281354546292216678228513997309955837583195384212979525087282726889717789718606599501168364664144970012018415188615591645008659436954172491377180364997405938976476461006180057833788920810946536798965433870603041302263153227291389570708574171895279676036316102517194871783460310772033152120099937175576060371945060418797788365586977697363714435288778239842553576223694537103484761561519299373540198653890306636665024648880255320714174539958902503567027798394733736108988944770325677316584727564160968321608569735931730349363022302192442880280729754940345485211870967563156004127434376526880660343433440853430123150395608368380987902513302780714312692834469553659225334556073851008892854944524095065063011943653167668042205342678871778802114196054832401520792109121102630298123347037959814365257801763307471074530204566421578522050920576185060224449323961828644389058904482363467624046997042407792448684217613151234912035324429734379030323361641838562733530184052500112338685136808742389184700561637771530883333738908028745891352509885467781584483110256403511951081814332371660805601672864218487615493095596955547783534561760287178049401418076071630901027894537149416514363764204378068608611448333775098922483637386733614906501421749471366776240362426340325586265620009994783235666152681626528808815842833770998693963801984480873069847505656250563630337375001762654028095101870659066634025647230229736050403054577779214291635813010167963923086932886694211719792320091770509563737974705054140991143443605622242358609218480540802465796323741546399326131386913021839715334758531514148950464466062816961942340295835710169247568593769391187409750704625718080723078045408458543039919569521633788971280380744041645477487733895221561610482258065934644436917512022722770926223799812833628107565652457785441398169660049329494113410015948685589149489509685818104907613998732700001630939978509794907757469026556960706548094247934679930445062155442081977802000817540981117571489696614502150488471601859783502792272033534660160397886849847168111039079594564172345953200027288191462290098152834407857583617457293738282381400794096000771919452582855028225967872866752671179133878515652781107133272432382774013244229987046772109417554189579124071190140996955870137303975507862539686926545632908375079232396992734314048758675104416641478774904721727456516312089929575141157331605944566190322271060534195478640103145283868359037949866317661126297234435237491467071458793417137779438164128060580029247464700209489173818425421999502668785896521289641869884985508235654118079818117780210366681861706797291654514710026350333048913484762623337036990400430403146132425660209331175008748551519449759909480223597733275767161395852835494446031666313581200409158609362790516266516022731385522631101278455547784373248750547415499826025293244700346375280859600012132780333405074719245009317838821390045303301031628023174621148933340447659179466805109605893281671804457055556286926666023337850991330701778471081180280711278537358209261280710020760106248899947605004814096359222801833106190317871954431802465467606323908320189996627986075798030344443360631697298528654159030495871504042519321450012588495669366369138909404003153820383083606376038055157762215526629776082319245194225144474820364707848810266741695528173691599376969199930514259241856374381907441529622110632038318456671164319095606553219334401783148287877455996747850332610951576469764906398599958309094958625760452864392461494092414714909972260250809861825503872575518633211402548040486028126407029101461984132924985333439012763490885649829358207066074307549575033577386558599489351715273487927786952085921218552989671554371285655549939093788410443105922773251480714482466284080449926110100585316801924156143623101489482578399310629524485452408730711228519870248717909230397764437632979818405898001645135084967099499718964451027994871261514088288988346669108451532971584836836993620613946830614395040356452146413514703868020528964364614375785496138316451755235914913944966023755470053935755998312297969135026477063572660117494513537720792002117206793693342696401214442770410375566265503747535606718003989993134273873928213576168255523658165366513715594294058869372983338011323575949337460425589249901040824459313184321444485498151419131080896833581708461991245077757032525044607168023996228049507529791092519764350477972034753611827283076889084736737335039200624912385286520206660481076289885696085074407939881529336527865358855218399467576605914389244762974895597264324125831406019881462259785783164672102014583849684297148907464961019152192119287439784486569120842342613620803427229019761432919029564712687511907967505314605142377098154590140896534057780752394753340001830020778874504372427556475848816119660339005704974910069981994631325084974447293291592092320893446821085149253992868182097630761519936944620689955624915432954101792920983402791784608224183378663865448353036633149164612618473888099583773702960528278897265026928350123882040529295251015824481171852516834825837645624238613047607383240808492401589159358005625536820720096569468611100930848502755081953129831414946130546407923729722167866323895234524194877920501914334921895542656057077670422866890927369428110396894339219042461199892699367974141677963047427822530925915182291898954247114756416459249601376503303069756039453182204479023938684404503203611225335720083191290334407787267491583305088703324432880691720355729543099923214358657893578683562216379356065941690454299857193660723603839318450717977463501845515558347380183947252480578722655569078570261662466404589456519572442019266658857112601312066912843985064213021780250654558065787503969650195979381840588456709946218753545258725806951082244257782238000864216903956192723822379750017954872674609032142881866581824567056686682180625728792329668969157887023954654275591512593975945397083630520390302795371730435579127361944499264994277231310049146820611370908692532969019708525990491940033697171907206255924136252686482373849407979257141375425080273991573705530546903298580045851026669264333610282319663304454408723825783026169729067533590843857448887711689129879062344739318192425249626048948801276439593267279661292892843941990475310177502758644152440593115646987648046262226994142934862596664201429917284644186720057868891322526226664679758160932569019690505211166731208846263866402468770881550280808888911598279899230180736362832914521909248792737683477270190884808381634672654023077703458596721419873828911633612668211364485284907585951851955997183798881840448295782488905002021594573106471992069837964750414109956155993214412431896790399092030173297487037362897245838465111272627322596147017455597657737891838201554153216937349231260954234108263915083329806443672440630008615984312449887995359927471589345954276679254174894616287077973420688201384966706950561008603031245283898026176397747371306017523722877778406338635094199240091339553845435953333955516478487625767116965498737393697702778053397510026885160594136862099520444933251337289357581316209500489017045567636394118518158600418411980283886189170201400879314079507009491130488814515103315824087887931925191114757577712458550565912911125447363309580227392192560458325453162263303043836860498945885564924767842625947128275627576917812344337336687702576739368342009393023521355687581500454682620313759609146656346378496976374315750244671235799942874914128480920078669306149621529004695132506199351653760846318153133546419756484151996953805766385790412314746077426160231918308714964370620718703203418235329546351717070923942114116913301854496307193073467315737893637262789066489790817235092981066274950636252776693812472555788282579209982593260410629331750839661444025179333242327332196898986955792666871679128124140034171471263642826092045099013855688057436957216894643643444574474701917365497766636730773434498237798737717257204477876305994094450322637415635648330135285692428689366977106180841798217074224592914144644922137500479927533146625540673537270548911549623951251684892894141103009501154664068640930860842152460738790177952113186274112763527604312448522039265196986406463675454800682483626342942819410620862268509555950952710318521176798004906545657056291521607192113660743045593024468362887365159932652145004315573912116592988691525189207138783533101430347360636585147088277743911971389054953924234974765947467339090091523858443114424442156278657980937798542835882370841027736776363073747736129270770296654832022736377637399068888082252625519992038979268149352748121454553815227246754207641435110723291716687771289599323230359474506696387789525424272376580422198814105688083043070072471145999252113552368158934997539807233742219568382877763973599574660514865383236824446228251248516877275542440811938466301995447060568215837435841262751373898246840133693499097596344541708266711989519836904018517810879075418257505044484333624521723669989580346707857151792653629950346198188519829502481974947333736993343773975404954813005990061241477335773003374931963954183382280578869032873244921123201655679721443616720161355493474322410226517706446368809787252447883605916130386403211284888013217067089959811476643802754508217703337636319758366865785939471182935062756691135808439824173743726898231765905165796269739205085565420612826780744553509297136714480428468252045547857771023873435588408296910758726305122993619484183226749733002428812618502882370531218230693251182738507203091321404010883183867860410759774746144704234196655508495400154055126062395061089058294037206992311906759571215313323534809738069231326855460337375956967645012826615646120487265079696260209081149403925171293099123335325067745980839663065889527810148211957141158761477858444388833714886615623686856727546250593852354109134103017056632085424325857274519635773244549378951654560167742362738383118177742770917883147324607303898829688431857009967969969113509243411651433973087292195098593018045093362807979960503890758099403187128742831996702598677133770168575421761449414975229484554180817330836661599510425279401398494962923283002500864144073180934795214464129020579623997727509292415229275779419126547515759477339358190835758047462578548092248453796720229669054219787189726011494367620148215612747028641555584277966515814157001646916153823311913398562909843825367457453242783713874092861087901564601046389352252786587177454877125366000280227014354398264987819968703829583212276295588684694104877555409918440029871638563070916359673193073624970738917844871984266331713048470472178793295608691373878343652101207163657960797415864440186064537929109738432243583683682431883464644819108421456555272614156010003857106004664410404944244931932164806113849810786834939170405877644358718634088607487047198451609965486607701314694536660951024021268833357745236691791713118155557506846751833684802264245211043195358613622593762511600252784635734537130124181332766586751685618326805094753259244191289807033117212732227190076985618969458235067559592723839424396585191929193371820204139305083746962508760385287083710302050779222808171180875010949245500838657050811273597618923178002407741770609108630127912314520172305052085181430822966918201142008263469170586956176424263580334803645438970964920111756699979028301136062460021432056608206285054926934465955610478820446132617994637508840209087164181706266667112839571639177633079980059673069364617435926317741160635455307794259233763411533660233587707599657923649874508794526241031115826399207937858816298531373898918751875515416079900549002545992175234738048104476012512522216248678608353645151399655807566463364270114661941007145634337932500107465655556021193117447285755549260771920218214694027501228846544608646172253253392581184032745115276223999045326048742897751285632016531308301632432523100557778432250612349996663811812895256470217420840057206172371820737162680659358000913532510288676601455354300352033085149427776259553920115275848329325757654793409983414245177629722713842240037411911493459052099309252623107371320304490100890861007761446643693750920819389041738737577865357195887016902983586543403190243488383017218754379134114289392669554540768020156696035438763618475729207233534975754299234608908104843390570790387649783972012977124697080610854145438634190014598280617486516771973692153429540047233266682882618712029371024338011519188526933752506320812382792786170290290295096865668858400999997468385525837045658180451917047448616914631622209678078797630127661241533397051811844417548325825961995223644185539337186534288617670983086981002234303500911065614544033897804450751807671662158590546775717274986745047513708672442361063815332965732005347215187878803348327082565018554344048669126853577021420969847153301477628843864308113786485894581721889771212859527555281509215968686423353245258966921635950884554445529967124057961305132386358034454663925737689660147129668116610204897910297532888506308688944867469745511525132248256051730245294900535146765203175047910254173561775842249102858059939580639656156285239823091161944498678909372396522006770044303515610523527908528273236608383767196385027508078858555114597059041305735519502070097158699257294634589684031794922099483366131107586021393283887746190553121040693296009735527344815724023983066970902823978942069828987685703554678904309471680916593360577111117139101363332442355018533229812101465752448119386446520254197112381499663767688143677407227125779940346629853839014828608749381379090956693158695496772514576411309252087505171301342328346888428111478407387430986505298215625037556819876080965566017829628161357671212681228209314738873224750390917426523429928679221703033386448995958600897759274216041232503225128674812883483765003875862492989077215904492993243633604716833700023313745733617058728702857616358874715889053026103409248798144391674935103158567987755825557742350910803511243836935704578091999785325075182604388351990478182178979894942325278020527019890226050793085158592736888482766022883180372883938917624147094943859921853118083560180270601484876286067695179295104562372810834775948407072153576252142269617584812175368265722743471856816903358887187065885834948414739884928630770502514998798952042951706801862846620249848304303343491928134567484876198128361315092276881756699752465035792370359803875308836256891572572736762356299162841947734871519781388523766153252650067912543092324616326312197044539987077990688044933228926366884320516780927278218044624831560329554619788556209663894980491286004648083702937158384356800789978756315743008550400220701126887153714516926236627129548568409600235791221716982315459428921976328599471685116572277634254884385556056554940195908415022389633663646392353301610562506324371223972688572470917006814292145779818479177988166639009435352343593205094127112339133565332250338175827848656975743296506932053303666185054724178105017846939930165972461832017492368465331750890122984412630429802750542297712559504783986294490936223356206095577724212334244921272789047097397147080575686102767570171473167337895017399623848633192386191764600420798266737197803424387175801400279056710309432136387440044905837443076775070598349111850823067303664070937327790259267759128843676833038555025658046670920865742699509915708893280473581701461635786646701309479051398432342668792344312073569060058786124793433236877707996026263186938292639860844182723323840825569041486794312193814247640649451555452483667352403607073878667663639575808968147427561214460054155176462031321883059990718842069136575541244795656382675902379224383643143948040521992111588461192312923308684493886339680820919769265428418818737842569639737603353496916187531678178220193831508234366959251917730313802551386964285615089426298747623334683203750031296106225006046612867560146475309565602940829419326194379066257028223760455673219201596378859724009280099064002308584687894455018366144773752284165046247353721208962390677491939540657280457760440067551095337792964339039611689028401505386727229190566876975513130506504865484706972661493731243119905692426250097048974882554322294524377999252250511275746012792214140088502267211088182367626340571526515098727623834625785535286615669579188116397863358313114370415719155226980788950469057993843057583577151036325621710060804438285131713469356292181596834550832764719319584004286128714089287372183541594639818829240473436991467308550450334170427420391810641737250520518987538017243516968364851879756197364307625182438179105327371651574587125985610729780730724837178690689529681189380483148734513871196703404872313279296992336216398326003138992522891067334782075827979858061983369618797128731014541241508741829332724026201841088841168222040146716094310872738148511892785042457094334207165426512193332584308886916863313852312385586188159069939582886746482685780552231903608216240071494090766549318460756768175840076913405401905139835203845831718180652361456268965286904163413507728243924351406413554687405366823369066682997699591246403598975564803632744438690290188486547550569508092548268616318985532773132443901900620440480059236551576675713370555443817323319354111129442136136674648901043233485334630191538633914279643342769750880089223182812791538036988279768938355527936982941842102791503745349681092546083921315014909621355844157767489774864986610665892327990173877545410024288342805667580268024116485021324721481996346657129696230484187324786938557600814785677904288246428385101432016330473892517070187656174410475199447999814458403707622418663935679044111078620194465013443370597316177785525939105970493714435982961295583037518828642118899950314448634708907505970692510815838163658691348974916898219730578875750460004912864273197980520792006769404727668888726212676799263607654860174271585218501709152517289696081211626707805266888974433657925636148248294422071937023021814768284997819792347774541068751262896420072019414475796574181211505260624608896940455197796176492638902162517307124009751398633222380806007217155458231559228177166300646254420184485376181568052066345305708582931274712585803945183715883164760458703230574822750806774741795694588576513196032604540041098250750027476255127395997001592249188229522547662657415649235666716580196476762698883871312727178941356429484898657115727531540059720363797288238178592870983064358789614667338286540040370845746816213317981278513796532543873808006125447481326411482966811453815274207495694638408009274160610317851184699803667347061946375348188850803943508737685099675913087432705220505970582175507409812634894827977823799285394287327863888675953544172756777076809165000343320419347523342302894825500903840600039255271815732120723013897377603449568171394086467860720967115188195562153268869601598565688054659169854828103831746076663129238507443879893630008638334755782720357428050983717087197385619586544228851710101097512154289102575048876867047181559550171157436830934332447294253600851360469697004184735080231615563050534400323363264174949607263690193685466166211781911486140887115305345196758674132202466037152492456635868694914717967590024581157823658181469052120014768342997679215245918672131699618739036328673529358957338790373931561257061413219622085598157330413066012300410566354473075500167904746713493799587256473261227981320779260240590725691958691792221347126321735841677342333448613080341407472314218848554350877104073445775906752482011996274327000579542956464551805357527430312019922596780316046193616037353816811219180630522743932544211172099166078888669750624029917880046730430360487128014145817241305263151774293292240722106664224917816150303402458856897694088660036571277969476433724581507844384525456127288721270020014629674788455076998078069770876227268591010680561389565569777075084702487408172384930020519721435100798831106050414144693985366965418822962364573776819441470167054361317432937553628640541442060501709421209547973214423353461748248659731953877358986138618196340562086132914332386942331473928316425783655273728074568298622867885652255517596873031298628302857862751879053104849206250106331669936070187183255015247722751854410832556015667022870470897506344500875047484221879686435980597930320857251103174761725952727752066125510798206983605334571888253890697174700374333183929255877514635010620783388922130902592141271912513099372587220782981250885967701579028588685269713509975138759100604267358610012521960170216080771903833936911667013735420096024378318441212790151629812481323463555266587456968355559151244277590168444747869213911078932763455739711841772504422394616809015460221969021451743047127785057705039816835069948093547774569983898730695095468890010170406922037273456815334762389561727067874994055753084700367447618611622796836047284649813613162707114714408341546866488770749813946761183780906365471315565115103591163742749750238655121143644072834397939874117276296534607637631151469296408639805489153421068485772694439830132472613334526941640217796418053399285642898610724698015308569979222057099661146320315267213607400785431470211660001163417006900226683930463680891985284681142875286663182744522105769876579130065639080539191602837332943219046330453908140152487101256272866602921115010069061115717682332438448995522017034430866845863998601117004220624591587113225517140607089466850355225815059878802005451659741244269977215525835287526851776129908435721131842378720344524767008874348825142111403741374136295187594195212890780994270585602660432844191359224327035217155824041556154135495067558995670051295926270718885802750070104040350218793475641265408330842781039671181863921188919460641550894661538277375596872335297897308906962140683013165886238856614653722890987436109190213066416067251970873885674970307894691043332612364306683057879491687146424070739362017382673859521769911848282342252026430694696422606606617649737246988953506459418921767108033853900369566761408320263213734498812065424273902139563431189514811603331183535068047509300550246330693239316477542747431308708485277123691405364815364614937382552632971548195125346359824901650361093053546852543443037526214404837682241098815020606930871616007159357585322710135025424892726740965343061811772159341705197839574208730394066553026049657873090765039958304227390478622359908414005606139419982506347924883664721398795086167371407531588819580013043570110590802048362121457033694101658447551153374277031134408759158001642953785544009770966762553643031197437523079706554956381775139483032954465700479765059528988330402847288879960249487528543904464239323131892895101980482319469673509411509496106880577433714708152372668539233971592210295610540633025804610760099391242131589402457522222427063271537417613339150439337046073954360197342292101431997279175276437102734721869569231751387237172036930527409705841899460286217121675700213256234759668461125458439536947595641094326770575363623672342867303841591533298906068257099307014765139868384971373725327402665031193039677068145208411377875044936510327383556514256372274073326056620296412335258054139327132952190273552641885533014094140458582353433435923225012863276467345018130262659723462694388068674494966872658705057518362364985261930592233543319463992272412874055593895548214351245136812128744072870718447027335368447157796822541932895746502305330945595322190046225091980114869130477305741909133291698919272269124660787943743347315362727213534317653306034056826244123094543541871176894505369365997768710161729297142650450076451875728920735111430852934807324682852375983413664145805587578869901064601287597747833282212374043037538399329692967928419750564279107683129208024696478349954174917087157253154364118384156900155735253627346878354583436751351366327252268788717440095768712638152343899198432606215860993045936247078059350624017150401272609273675238962182313588649967116471359689274033842683818865982871255526295538738172834986529528012071036114659588040058291252370880789681498162143154141085276803043091755521013073830430324142100826887077712478521066034274922956781059302755505343665672521777649401551264940041126940118117475334406836327697343366173585057229497010346030674008138494060574109951487185297368651823479198549532954059607891437969128658223434243597048199068892320079033505453455782895942236440195207402802617796196972676863813296975311050074539272669077170240913272268158740504372106027228046220522579971625298605409254202899128865300718514942764026152549208301589688471288366145764209441809316995036391302532393583034936651837504468195663582789659155113202830491196338513512436803140218273438855152033878836486275691554522014214449493261529419227592108060878303205130027617576577873016100262173177537653462153789706081044688800810620109793457685038107035262462646843176027356181938234653204941736936660830531389250732295940485081900118353747536713634057586169980434961480702657708166527799339904265787750023725857870243145376117152103198615859450737193453567772547488111379533370248349776890306210419446213034167150080922234962158586632314651546393845345030342804866343714882720328194341397602232881627451207137891487501121438448085309962729982269165335043157732804921489014832540904439497699339539942580546960698357698174218654279000427474797059984342345969572395140220556292806822328753532243334788008245132919803934347442167425423910428109066642063173328213782717677097778095595440396166938437918001887485928129201438495957923805083700561724535472082342363059597210373668120244827884976154535512408226654118189586780031816351960608391785116522443763580443323625045467476906695306219615737625397507108981774785944565281924690685362141970323169932057392011761979669549903628780519765248126081323576993829977415030966380347971940661958565295511510682945248783299602765247366826662171962346952754203475080581679841390819872720942287128433777227126462369339845982157785009628065063176363405749955262323731459195254994237384563263920269968036535769892578156321123222052439917605469371689758459636129464336718115228202595788296813371829787706996054539917818632890540512953868420506193380648269730371369443162644762166503028799079151511515962154617796651522647922525839882661693160172220723383383644578030897494571540472689336548365006056907345223012115549999162135529933788636042317124057023154721984497210751852947796561077895458360419196884058537337673777703512983957695136341970299051305757489150834744061972068515322611977461381103915634299795957539348360798431371568834505623352105046553114817137911510571733605676695578705964286354584414035765842413555145063974594641256390870878693090555041600208492242362878870778546585724694909636524060782409677134108718137950571259432161736753984925022735497701926170654845194102584761724311028488226964197602681821752195475450878891674407722413767793416458298047369304350285816148452049315588700912194635126058610582819713128711275321882313749477742060334135481213650582259488702494396603472904221299256736763538611341362047379070096749774488079327259218124745100827493294641727499390535647783267845343898501950616435732410249358195709473465865150465650333959367972761674608160516864222468879918634457907744008189136149148538854969004021799494669261824000634755915252507803045075927980036999168657658179659805024538201284018248482547355917472989465252766358565143816115030677431556221975494515240766382608373572495353775622536184127723707390504200092664777355335570274282309550088115796307120540320104281218629523456359595892203224646109423686366855541068531929217669640051738775811119299024920858578409229205055508258896016549148141528974552570604583595992453980856754020281188500739489738747364456331755499202916542100934698293754136036272291493862209427907439692190009323834098899329911649760299477223133849427801513747465818422581117562937472433333050672375179602261604139295301674076493283216906949941372721250122890734074524144244431571055965717962909819013431047352210947219087317409686694673401570413541356329883419797077799943567846037555170981572597233787425075423660871232195849780656634730252180279109632137001760719042830557135384214230980439070763252180317289786698871193303844692445968457202272850669835891140851686209511075004506342313943463159387076084342171965190803265240015373811491213098878216415862786402949437028437352736794289966468957418546392727751102102148319264663341807244298382351871949270735837691760886780184724857846100499705879464335793056593575306906708566266887490500767995441621771040035862943054104721949412104346199339610220462926360252986354509726837278234096784982900924576571797624430001829702265957532026738217195944046841684134366352455917127381495359215699074159116796410238314115721991588244047651804019890383209694663143827902037787539932290903633710145331238904679673379816542536616888016336279867361224844383236516210760157797984271614524868657215970932389727550313401919417797528860878439200782722754884920513369953976894274981264223282189850490351824276977085810826695964425601715185888285352927958200460927740358007351300478846824819517381192012963935156072022306844464629920164971927871952980006739115142726748758537537745564341334532976318384805396171292855134433480445155558487033241383550999699735448868984185760942993992947756124974676295118762081039670187777290431594258491544881480457007643826968824336875977402231333972122007822579649151642854596516797404654771056595830205378432868833911680877867365619867158270299654383084147162809828519277383412008911826564543776177076814252697515388331802468712884810348505998459164107314144268472297453373977024450392454257977161776705452884085145833909613702511905907925301997011227651667307985319086842791293213151226042699857854261502518976856918589906797552357528025372441144355627507447813253910406453451139614648019342349669475943073555113172305949662209287280427590077049994080733965769527011309319221968865730788044979941466555729227303613815607360959102004865031962643679295432167492479843100980401578912468776613886886265480474170640724653126633774580043007337375233506147674739188423802020999336566069178921092220516526300604252098329979508680070034160553078570631995092991984296075632950391630365921949577590001622046699736391378655685154380631157073543911097687847913654814967066357575260948496194789985115227005592344250639677914467434736967292346599924451170539911085109144638573928120843022538311554441636045475072478012202459989328478702202429325227152705334811350267404892096969042678836983664598773349240928773431422664477480079283787612698372661571147985838385933845707156061815015344832216852411706035383448302262028307789130459417966816179956518869966084873783300337346762474018376947265748504477022296113451487983341129669689681395858219378474326448396731924053754257542299398578465675781776416712076716743727024703167352427893050746723308896444095754335220641307539030917087488541259324790830999981292949923912498797000273832265077468961758742650105287155216694747528971312122267364847442826838598169385779668760666914863967878441207498081933923215729580192726175748195510048864997630614061643563910467685394046585273525930810548421954655861817850618850480925208192554952632619441865750737139494196829918912000340005948183076604267392905384433450961872474584458707817145009686730526145335446137390709287862276264189647695291620052090034219141127495916836377704139323609239348065567285005799667631508315064828395610061490844722324174614202103845743210551035417818740302478535087283462737656173361776250397836065220849529802403367104986616141441646154262952590103550274023392308790006517336773269754537005671113131583402306436895707458393547620506889787063356374784962905141565956928657792365806261098096677006025210659970866988199528629850249149948980236874096950974363481689793397529986064641160967825696612786631276022013565566930139437340139561837206769157484447651904744722940184100010736077066541531950709293151620467210317867163533661795418930692378855520915784734800199898625225891966935515249576078895263819482086367354866035914196501726389030747007895061507533425609329010977990953881838334292510365916489856498803529417983910302793860472773812774382810542327097625448979938056482070807598110376420189053509703496437270050818111082100844353664422026561010316642033963111483106572523482237263216600601747762416198650089140111168219630954661661941275561528854811334967185923848266569828182533534145642616609457443891910345041695278928493309531386640800624950462135835394115846434486454143405584867553046910390125463222134821434554791437438722696911225166997023271743819383694647146196116946137216573098833790973602586415222340689074660173360130148632790783990309610417137572898749250129149852429113702287157768172882913946232159769062936830931677898821273756368245671220213336751329677451074495222702202717923044669375302865543064093717572045198484286529016851611636329114766259911510961847121598774745608093346366710280574049552006063711329898477180927281995745809475056623266938898636727958244471260092074514340348967940809754224686726527492039504411118384360192583323534491438791422679434521287145261214737685268221329128615238271204658054187525350662044649381199652054938391575216881723408273081953939327893072953889192133727448293178663606668894327733634852340457162902129164351794790824626195406867038389372867444031193271239936118753037740934053269686275728271087296441158126819505810832511538377682939433220478796526773803053101344831846616955098973030958629184108303869303677085508964250975210495905789879561510410018370463408121268121978593070754994484522755282906574702661042207510288199930293818303413129703760662772842499986921610295899411507580527790751552638513103660703030573577637185484774199592791854813502479200839400685468875688825310078007372497559358060145426446685635532105800669273436112420320290281069803843088773916160377247927115649393678079427708830128834234239615862546065271685843902004621130932349322053702146646362829592687006515892010318753175628533096129783225138291496660079440870580874217119439513330480254913364778918829434264366606655333216910544723874237675171184365689309310655648703069184235985955796364220275315652260745466243217727676199385394557762527154960327890568612097043952365039657885700905727307254900863199655076408602381135098383021269739554822450794371355934572353445697228577727657696748950412307173897291860772703414869746355900924582831395437843465698062640680476848122827546716126397978529835887516071487552771813097767425131925162126734220155131107787746968375320702171016095600634542795883718931292091142002165955161033960790430715813739532280103345746619902600351605392498773945106998009641838468306708059462121179217699236707553233879813720693359995690134536401175402286523271176361175384242217248395164422999100427291013111459952013201293909197571248329523310968961199912730385662835173402527795120644820150606437969970317387566206908759171930372435626390616912044615182576910393225134798075415014774338022136541229356838269185846411115557779217806216209336005171189930983782698114958453591278040593947619479471357571774916994219039367561472905364810163485860789876188631114967965268489030596505219570513761370793095093743723098350865605052324416874452603456565151713500848132957927093631248602142670767902421258550801373997681939588354723713369541331401398970822878452799386836397262662285205382754935145875018991944573032478087378132212935426097878978217091586718821304538738218285435543646767505518465576301038657098563421460299248072378849747054835439268804139710210551022783293654109461878510676110186163598949996102709278419591542821876299228422448902686478620581881611885546198946223114575282496956163198809023011295855839703272428286819153305500487942703760419367726278472911164524946177680604535776269315772280805893318630481019905706637077729108257153555561434711119462728417999973152821014089177293421012938142882482935104236320517487798143304072670435067539278985554002510186018343059596065785564392597342023391696780186906855875114426368599080809287939545568176227063548125786955533569200893846226376490594481474769250155683371513956182164302703736281303466384700047149531837409456725677511098602591219829250981195231399191841919916855862921552982387723544895384101629302919423059022153995095728020523186025700891362436701921051546002727980223968032737499172183335781524996178428665931242524857072978825170576159106741635346924421750577505543249237810433743283396444612560040524382910682097411091540200940611902943691230150643817839054866595497262416000740528129369181287977556537794885370792227915930992910638579720779730800567179035915269281871237370281362240915733123853238948298126713907774785776236821882201534523997541851512256123664258326346649370841440900774201450279633046505823316259846231377299796472384797040667035760987158423332163854155046800359846697865967372078211034869526041371433891028865558552334157566814992627188058522491919405773648681666282869298066453031022000635238618307224848571722217729590809002917713760308999437489743819939763810728747275010920531781649606041362192379094484872606229227585994387791726145940747591592570748176268726004523572289556879965036604808794333379384712122183575950692163061051803157607523797287450628089790984271029718820321245210548943317571248308287150332074314431578569895749314730897111517187367295221717266556530945424767184554323284349130078118867687814295555843304387236414304267215147431505436687378979014827034739842859327356536212510507661249661584549820819332832392167079508284609189642096365437422492529410913685705719930676687206790363249459600306318758148690937245101571415216763261761402766352411021088607494499033488892277324727388515234194080264992170995040461613427916167346945760238038601378139403431557567403677604749923924682831014659363182695717047922502931622172890142773569780006266089950916275561006846663344817958116964353127524237671970383422327083731016721234675576672128490436983053736513038280331281707377195662694292283089029160880482266924717202142123663017671173509911984228179543930556085067063033987337890041964358746764528033662884836563319195460338390370107155161486415929087260618706409638037844712119098603299375845181912859814248405360521623235411576952730621434886314227545069866456297698113921120246059068776448245366001855409169974283500739328592244974236164797818170245632265501992581563155140121708002038292320558807115548190854654800453785058072344864530009421715818010034843982398478025537028219350464776750031564382146218293061304186282732665476382405817726124049500276842012376953061454492652397788820611926087305822238727688725622893254803115792086380245933847429837128123347188940333342096454881149959115743182393406470785610463331727569357296387253524679160430977493856909755662838845022880075971513279768041537521333200142160263857393818283826575881640420703216293791701523361821331176014481104052245533473482152098248062667526179118743225319188837173593734243466128689151148210750937538204354313141430083454307527289106513622005246182119809964004912608609201002116198416237489791749748788018119912365553059384487232712164686443459789035421662956602015320694669576640760711497974184047235721645288416800256399975702022017943076518589322420867066099303670509435048831898876521050143694795255352752309837037777402213457743909919498258345893741393572576818627799856983690576669305763549035709274093076495277129932723855227772346293246442848385499306752934649772996254513287419788245549902315885412454855742466851850219510934045375837546367121265133692434174540421720785756712384847537028354173325232723372002077585125747232890479303073082881450497087462149724362625905799193409047514103123136885626706085898278456271158951785343605172682717791489601661324088439875832895090653429512114457730863742051827387266122257571835718854370041955571556797544669235116330274244157463372647258774112577769481150505742775629377107657360416157290655518426617821574808571503318621093345960549590678540684641687757247205882972100875850700141634653972972556764305456535628950113043144207578556176521903878976250930678200657356775584607519384970876390684135862601183775446456961495893092056609602400130872440037558319866856655969369650911550599291856184106957723578074469500772500024494254949359941761915740814661032806144626395234741011019009452386857818504461279717258802403538794208318816620292267399398475978682999310916502391867939379090072778036782032478716278816276101863094403474066114462466710839731093525896517809674323820229567187361050220835335163864615310602861632029155530151220674099396872067474181772375584244115814974201337249565910076732281602626525777082438243651703243700641349718889092538099008393923412918011957603649733374560950738790568009285343641713434887378113729673964593826719054034591099509147402690112010823359043633016288882076064332651281270273226819678411504288336184496661414606119670680056051610424606158883207174224146229558269592558501115126488827477503653115479921231047525581030788124307610907091271931766309664853217848687349837319110302529322841556290158144589986984334662692111444593760456152220542322609830162219597181839223713911197004701212738563683976890502009763625739828345752369338876835147900258017409416959351801862829671863315781824396933312730330553055938826737084323420350247399591657562884900959608077275307869787697799401320029901666426361843654874136311329541740275295750329766579550561166181689115221889686887732574530777147359546952516630164274198089093103416510752757935163664040965613332156087665199096023394209784712360071332985391884487597789190828520395745290339701725213072949879517883447994085338995649018986650141038938933131242110474579805645666755730346678810915615080346098491101392334111879047902837754988030808226098332376082565043275705341442680108882203121372193069549484752125377683482411227274839596366292939122588229044524934046046181650154016552428249493467890477776620688497343649276240057503665485947134330887724875238386358464363331869186456942874066975577783776169703407113453308909028943228234504924590242594588611710086373896148998357994727060388302924970508602313219721155477027230201819858347395181550260781451179350984956583689800149435559129931760280720723526351859933631594151089844155776625291138202616813778638384243546094661031912421159090109722772850121109048946805276563456802756735339452627710449664727442316306253846489603607773536169315632429769968449646366069270154484284801341625940907583046465893505998959127247228682928837859804049581024804430060367405839651873615450208691956857110373745264632727255176558910870065471378336951457167721620528015325186398864329888711631393775873006062133490849305667271001502388570753065530713258110548421779900420364238414574808123012859162026517737254578371682285443787022132589066980891878681189331927697547522927035446765842726270165190990450584768946515078816962488772213885961932008384211721764266586341335930014788540470147523426141710620595016351810003771605905385265830232929566039853790483415966654010659720337612912507291732176169289975550739589386741059589999956915318976478707422330175054168972835772253427135598830837364098718412253928478615087346340700248427064160242482853915991187781731683090811719117186986138128930424825664975895304062544747788290359149625633220055014348574670318556824592919109230307845055948204802006947474728705895229814551381140917858691190056479768818531238958504448228069972142789462853849216857562510747579443613275328781422799640089033214153274973283168368744934207528362093493397658938988040512465848456136747751090484614865655348353039043954929560549751913435935287502015812595942870787440706673645131362595578870897425119870898499373666846450175491269631033640545349471793042985179126346884671026337676605093170703396866423501786966456502101640993018681845197062104365721874996280688818676457907594497876107408973950502128170458163881939684678601742669695118485483730045722993833311596399028417344286483764479122189783841975574878144557323731627686359743301669524508835112317920156408177083764160245706670463666303659993949889480413418423893264647131197836112452574546882269696264705451954479674036621309566027576488513736739176065712946545221511077001858402398044579135496658590400435668161628307554512369963990320725852740927327638409268999780525335104186937683824861595501903213012868117897098396315423292932607407250097895115338703084646088689257185504779805705895331266011964624312772818454002776747454402458303604295050840333328090594723448340003185029602313692576343771525560022564171120200073806154594134087352333209172992334776531398077756239677273624099499829309259388666090807639212110141303036799488702302728447733273045256884586342684757012195726471908021667088450118470070972778983281900867952924733256726711524630858137992248371441740834987328648223024106501009421951690494999642628202001941630257207026416627385340965186045213073765539861035231410348506239475791839024886232579873627024840683044613597048570615880026494588557576885978161785138418299971520098788559201882397093553438834903246370567727661331031909709958280995328399514129879530490957582192401354509731540469563615475202640290015909306882857263746837788975650470567444110804494735850046407316999098387745568274375006441382106572045597896868503367257592334431849101267612439451693114539200943888214036763108270551963093870355305036478710608932339684869479916136898533891138125902339322276701180857953535416189827398663507394919913371489351630795413201288954052190773495979513851959702923451529240997622048544569904906490836246677865785163429009069901230476773125245762233351677868959753669801086992996042139715129531335747718736377005215807657676304911610755332382477984974220450093779049338130555148076968853523162436031283356647551555088521509678049082863264699897665010130981978182374317680412775481944626784236035071243810252290399645139179171921124613782327944864621416106677025720958226559243074424939926693457005825813231091476591959505643864563991126866532363776929174119854925677408714704572339600021848175626014772084458149427063353261797518318105751331388436255400872033068054808432376796245518683336676441142624579248945980207610064967533516773788888341010246530461028434916028778793559792298919459347924058587442130165644078448503578889417048952568983692856656320936577658143211943526548788349988021542319384949875716077959860958150084822128586218049686096147457270361993350356746468921814107695678553229386620957772508195489306528921880853427498966834750918912181413625400225835751479757784975114062328546550547780093303916280224668211092381818691130198220949434622146026781607991293379678677230102827451219311172248079109970725655728427888329822407246862688498636281008672083438759463435369439447948380569172995533114245559793505744071215118323418936882548032701178520669264528925605146934384122242872765588248694039437179047479195455815717678720170913862229220953978857915672729726695346883670471873821193159006397482125536068767527949731603521071798301028533834504884645167308753852485533746697916664472866520795827783236097666398369573329263031876734500578147418196473303202297024859014480945532306990520354639020579333390627143582393455278367741213851550764763234746849200349109089415289127401726755011242366859227855407277103652132271121103560788040366762019801279158065677947649811056966401475984060342185300294495431215985542014615324684723343901388057145378802162503075588062277813799820836381912489090020595172008915939165665782540550342290492076352510344021309256482012380097144730368431034172535967997013865507679685322328600948945706121377600689440998041578547963944612391604754417346610696937868865708241107044063393408467996742729111349875762765505660932782450832969477575453291936172530334369605346029882359612746153321111103830694787841102838711461039642032793290467951346487480545279638846817273906711983711919459144447703103873133708961177068274968722892247324578134434877643818837236510742685025006290510329289441818479583064691598441076908648195497250340601008268641355622428698971616030117277569578421356969445403114104617391607120454825275190278655810896563989565816430167061450739747348147745926847371136556061127145118285086454145693688802409441163788572472486061490225884305294673603271935284614762856295888722661125003853911928983803309648755253517567882655800189634047256769070034858767101489979452149992202624347634444903400559449012049508483132189166465566267615552773835098437546977469030988699273940848552914383429010235382242115068316975997794718250043782777363049669468868338058397482638351355209334671954654248304753463013872118735203283443250221866634751246621365278012154822180148641322662126448591947230263324639056985692384051347419125175821623488296856453133709902509965168045928427149954609186040042971507317261547547706001724857452769079298995308485805330734523336169331865307015521127402088477787723685625997137493835854967971295322267482795169476429877703640668150525387467247732345657065706825500125756365271550256193132162581042818898320442023485403276211627833564845899592501238999972904080308357721867924829635576751466145410191493432229501368550415681589194700860942904361616314665255622180335985865924112686021601101097952947728259166623473656727381962023808114268245087589121595990419384468731416911431403143176271866670225264708787849066053127107413393685696496515450363700217394883795545576379385586095508148883204224710409979017445627728244011412502459215949252469444998435332604558007006185972724748172237708008895147099597853343083949244463682980318622165452581533529608302280414143577446916580248300711835139227602668236259352721495593181336462495016309521693138263923998457850041375027227430819339450891864780843314664242775245806089390755314415829006425677950818784415252524572657715067279458516469830799142630066588192762515678566340657363802316987677576636944915601062570980337438522883858279620410045386098745757229394281630474434026933106193568819363095156016423913444164042429553577853906087897155515188090696848150992759769869768916950615604104495588633823856653775325518905193188665041983501084153028714299499030760868964189571053781029194723909404404270046923178052440933218537884395553433084875623036003096859756921074238810210753597293057082879547184293960766332837814340382015464327413832440020639083469697356606145419603307015246245794887605682710172284298883743965784299559553750802141789290392810033043792307279428703420592257301916975752936890055280444584973577172261163613070222163263000372397297646878937905123973233513611133877122974460087853086126182761518580044567849147608244977132420571292511378054455309892133753920568321302198627070514604320947655749216467410100015457354046750926428113136968231355523876799281514471623486810123108250890706628213100554347160830539403711844916015381954070178964045106700415952568402555315656568828846528622273097291851481723867442814228612153242540373679321383027336456797563448388279373884956985439068454098309189401181829970880294520828373720673849875828847648151910026020012648189087137713912916596257866292911498769276221903886993258503397776610954916252196820422086983536616172532809276285649453218290878065780641981022331476767897833489302321412730266979427865546412272744167427031539639667396342900903445610039781834491140654400439321978492445351099692235881087533591127846419480359560694585745478869509451927829482374152971238627953187758220279403480308249074598662599527985801011522106145814473044931705814907878136208930750832949125259203455758807798552893229930468481025421308116832389461657871955800679976988515131704748050878098928428427926893070109212963522143831470263606512965869151090689732129773862847323247433077295815353831768551011547329158858668849960744496731149285161544743781979424852953400324061392700165805004094697730553531829444499883501522531554545657796883950469188131094350500375079304871066994824403503104265740660305587957884668864063028451370424709226719913152074044866205670346529769575722470520713771645157533289697979456220121722495254556836682393100006690765205930907685215944118163028549768969397214022572711862463633857625575872305555551573041006984429135674123029139836062036627358141452195126607012250838054040248763625276369244611987992238730584894830706441299660104508574476474013850915251415955968183673566240003678991006943264429000841719893600606707405324077774423221038666626831118504938644974479583552148416616323024089813133954563815628902768857362679346632356445910698500867722224236785793177246080602672053725751600155855835622040405784287744838060580778690301981711176086704556679609999612445080636594670180934829371975030488438495327347494316173671517010174627205324447727697699329288169975074142689373333475884166355022334614897274729902741709191126783645592882113664619572014175199523672321691507297113973104894328539118872287506515318572830348047098007240896787193914779980649009718567441814766016244300568650531136231457093173458243870531110171086195807796904505978437984399192378647568470383172631226824199311839548949742436038005986064751998253331028596358081234653320252098343266697036679841849878441424502990865795932576205562584448698090430175545876858472068009300963730016099846043096435380238843588400426107976198005858479084162740566394712993926929645962506487051970477421402804503154106193567994979608658532582044783955166447906688741620170533083690535925785620525145137607807751659367990629465257386063606206463462998514583016913986975662314270456951611193300280687459563461513635742636386004192922667121090117834204270957108786265797696935506046965445406666079368666706314041742789793745128483401062579908620965175970466931195941234379948577762860599452660503537697548207714861050137200785588623120266872886329392320935365529200299452974133376457225049683661554565224393909284218562902301978873269020919072552913725092998199601921583422745101935640024698431882075673084892636770262231589046238656804145141306417398766459816025529223402037376288310902030904681296649229880616966004746510403808475955285620303655703381650429451960347769837813142763919970556272059884967259743823131916464057244920322452144194233067666023582041793999955310204619779482213540280166785920499700391915301820793646530036849822661501354179900547907206840852903615626912461252158731510171860622622802658682260396754179553970167602279705598122336224068152171846937835912440813423770258459605519190180559155094070713549757143139113644560622519225664836830502068576816454858465165756341460843818269322308591971400417919610296947409637101310232971591654887400280157363838182629195553146395616656138132759228693059592961115546662972611270603543917380579601806360385233708772910441348573244972901162514686400989115503221810599174479331146797017772573719583584661864220253657377926340162661099179421079727199133349394523179059251235678861500427181910377365365457371990826823048055370961729401007864486792256365687184346916934123301469563349298860880773967365767267975878834853226247948199194861891208621604476281373418723995777651873590133325898417521722058091220935107800087370176656571467209922600494279260593578739277442568026185256124940823718944618671144051282139771832109098043215520590467167686862721852644916877610464911152043744905044648762937229601388291788838352648483066754389260219259782985196484399789149067077492266180873308735765739018748644835981373367894822097796180357029256941250963474409162134925950927358389234890499259635517753079106694713138105362114921376665827738828636957197113293406956326694181409270542421724151764739001865288801650538383223804424863867552637293118802489321574768623438456151076159041973763990996843306603617074154412126139951931807094430813669467649983814072378414977974713927427376945706525727090073624035327769919968418643181068624770769682526334666582349921462956982162682608326202472215019975859975761851824862466779944452811871475600511262009901811329439273009805511490506858061850530727747877453588032863145951185694867289723829933048555096716541381188841858029847635063635225488097673156855671525127130831361320841153570270637977552824935426813527927665546448865671190359972068370424580429350570686274317791143621531908968719057040580014387666576082529301672260391749051810861053709354933846111219626690107854470605361947461806035127860953119080985541565433309781194556235528590920643485396534630679536684902380832320677955342499109246174128383647321244179860881974860009354665939168980528102562553909497262175389015756414800320153831544341589225854826510632693561690817354306029574555773788301997845326840394847115413282837175050381542458759310662734401834951555058055716907404040914038706542010861982681080726758761816862307843751992398321246478634733807839959432763764682220075232650140727531100544402353534832043038289634829616285448914317066329002453315818527601958307799305977467199859179604491327897357896126596371288370892539678833658819391840841968131520395228298617388505004221559264698800093664117361089798407674533770131797962330730830861180494631735438013012112737225602925478898012557240498186741923581656079904757263207675352261914022847026848377797594047618234264226386638602228075675629261708440021194498843821934985602035911414546791764448744363127913557394022692372257472373132860088449424932932370071418210853877752696698665683961232116481463663534109485066929506636722958742355995382646878950278621521902505592026871343156311073236444183623890381697349438726795525168320568685395937875005485065623773616958353514370439770988632830981861762803616854031505921366717119369057598216268735409213415445900802675519509386833893313099503841058167881515556614829253853233212931740250812883116058806971191817279444341084224631702175798116452435813042110553341935705209095660757840836748488165237150723694764712950169947855859937500623753996066905385475404398770142662177449403569107715485231232197329214841580263643154476650155950245509032799490244805474314167695541905207708940901056761504971363978383867608303345480127366509780526989389817418916549100713946293041723640114933182436127251792104620537701578337255252966059014421065952298332624654852050618382773281164161793828149787908415349861863711835540123233802311207567601340462667226940008721052819703510499012066345093641704952663169317717291593053259122248794762034357410905535157039748869285053641625622975769415532390958800454095936015549680866644992484974626766779455223366298938010672300191935678090113848430900417337336439291569099566441988021462380031926377995428406153475564431806693631944267945376871082929910894427929882707761745065033300282954548348445959697842873152008363698794800021458669231025158831910190752220636541710234325842397476000458681414637463759780617008855813236310156445474023781202931297725797383861678798678070024521381841977054285455854915638254229329395008188539064835932367098195892067211484538117583126616782108145053532787369166049701048352513987935395199048949310092108497325523010134572993888532342287671570715301040934622046243949518919850311400215518328311821836380529412661605543714640980204678060735162342227411159947325340037116216145739888493783245441764783253524471811124515172452453449122861419006099556691593072404951854120967005089343949413450829162207170642775821312516560168868149661149873439563336932167034396515827544823162802489740012740175399745331535017022893197590223500080351817657956162242030261621907529890673291136905007958365302431795459105329245898283476224300888307065143706827366894132085063211310568301352944390513732506329448744067369689392832832275039394172728897604426152079617589376579811761342609887166349914931963629329505707346984028316631434645532722513343792714994313080797602500673502649593950814303583313479376954248488617006006319464189454170197156948043938596833509897729675048572922919615576160351437891218819192561657833602623576682561056214146956905368116059130177347404845078874275022817863343017386377415211970819062369935472628515240001426243074939096703498142137034124114225389796087364440927093116918779415334592639232658382773686631802099186020162141060646486067867428796717592690187819574310171744226331349246177630125191370302074714230049591154205955178647648842383124100887371830511675445492658376688109569822130006289940796885311277632353682607483776496780725789988600389811031984010640084415202867797564212830045617527506881043311519023474459216231296783760069880350504022178571317397390961168745104691907661148056237249703977295753075571135868633015521506944859268494011330488477944145176466809003446965916241186882661649085365999814438474340011812271508304855922887231426943111705944486525224113916706872405904698082824027136706227942312811428875836995301684242650761982908055227012182625608217359564108634847355652005646382550080103521412948007294671208850471922976905139588807800904630769903912574552513242592450830123124608585090304272813712678660252407582504402691137674430264853355014318101693544361396096237987137110625573048624164722676628653128972469160589009285220574761807676803738209890231057172222853117260443430804520096738723368536915763354527384049121337292207841695589596755736334287607628696474834816632747654815883261995739107744300566236244083675349234044334536816659785902017415611140294367859979917959598874736437899481114040427789138170240237714944919541446857352498912792354782098159537341612877350384413706148918847236972727147206686108802851004768083852958539484485191353989786595303379073542726602077279917343666962705771350416568199155343042222623861422718327574240429961613018237423440937948519821376434002365237238601572709510897834996086199523337961176660444456290525370688766190244183889331148794391893723099710489215561630245008157242595994643696756799964819672374119048497496677093902917635688947668845770599746711934822624717589945099423837381669617313859227334201723383688068507815078712138420045224181241672505911977721640918771953932267091697998399152434109943554845547440049959018868327677857618574982059063353938282133396570207092884168005694870062802371450680934799592729960311721780378625029694456607947180858693562196522555233762563699528531666925770156460912225398090368972730420276128668180098434680733134661394808594288210117043788717910164623599402163232568433014580822615650408635197676358634111794750396701405954334046517246929639548811687900627601069501247067821294984032255741565144821611393475670786691627963250155673469322142192980544907887104245809963708643793979328520810835862880207691774807099801913271802206167432526082173703226450126930794048750328707561675118758389262757850542651199059489804584256921227612368398147511339581012974603311086998119686318994729047281078917725732266493749876145813612906053015171013335219761982380080533005316550045766819730132043778520917529610395277767873934324741860996235501777054084415700279534489746687350332562955671926473601506315883859013608178445154387809101122708255455600646493669418447320291843259314622641280350219670069074605108897393002863606950814892392476298759159798894550078523528213842211022584455637853192670637244496680724897343216254794983389936644684795572057399318935398351181669676961997938257923798711422517392220157068830214603249726566650213738067180649716515412458740858289364979418838497282799640272894066745913783614665891108780142062106880969578791493133781526327742305768188422385609545893489714131731028701116703226402363092836076494018197692130134431077752111763163306137493599704839962582365927211554620796457915630053818338539373995240800539758176828845836873703329985193792557854450123435128574801060137678683588969398254006729344164255331037484338894257343942895792923748876068122496997311956765509203145488988448717833950105725647763268929537955400350425080752379410784148499901071744570026926501041173212334503139620671367606706494031265359393524999929371920691000671448857639932181970255891990970809149405886337901777050316645204768592766106511402594314188566429967685496715433898182422062098272438331445907868398064634994929512790222697847240593251343549876371041956733742907751572436765348173999605382925769406525806392246608835968706866810726401188210074271695871303864334125725387957040831011589218417953694918698426397060923131035871579681067474724202985044062089843730283917700257971906075170014738990915655661535315009294479100686918454273063602856773035904435787560264780208336905153259515740938734353715625252423547985871469757104014566248585974764193629350929171542404322707834668873263797042386335879229272276394053067561164678999626716176390743200085220190978138136552391893988504625007966014035959986056923875202501305123463168759962836086344208246855663783103804741389998119611626653361480857805462204665294540821475016854637255617796419698520828641734491297618945217881200793834351201038492509597365904434682606520939642553485277477219974684278905891991106402822912918551724658226490255258935542286158606637561191042194111540607623193705907868184289775715646342933864290807678331710600928790583641137281399860232067718496314948719554974235978597859993019535597632137476796311164675299460285925165952289323594841232070373514679753555094035279577604926219982716905216037765996035434685434994392339061253888382663085359456929159996313888836502323541821422967748008608317758178800516758870343915745667615270864824571940779324141902787838336731855476883926442151645709065184125956047078690653111042433786139451919222192148752981689565250020864668776956328603176592191033120901806691816821536106671411238962004748940899603797457828780729933066547404607079701576088954943362056764076285778089813614512020732204773296468391065030109373821701599464703555504312233003869018159096486923548770253375688782138974709463507455058256632207244346517269354445011882531646001668168411542700918951798452088766043955834437645663427062691849875143946030383842861118985644879593012288665677747212240331651968226813476204062790439456345117871178632069889015526782471741316351362345260452632147589451543604418896156852603307990367373784115475922529942923692101595578141939296624078921653669231022567501157831093689980657633265750114335220638065834921332102963739585481610177648466855454591177811016891479614262326613925085028288756467102814657534705469494405235642765535699417214868482926342359382222805146127693706519320118349529902552914060088662786742215095532043330880887654144818239823027699148251438018987825208383578800256310160152172675381529181553737137695262106963236809956526093419622307629204250425913059931268590676291594904352535546296695001815188318462197187766769548470917178470469098859497552298793588919904393203147182026308201455756860944205801729729006843165452310356597598772023608290020748634639435485360283880885081443761187892707860740691234947094859408744440815033427921412472149668724295705869650882682861927019899444438114849142759007222374834893377038293377532993182956813174359382064034573683037114751963766026684375925260527990747897404285099820256699359580050651554109508639930927244703778495280186693520970336107082225736880221054278481751387265408302121501423204011172663976229700197655609375307324302639298435165513813595225115258541626550178903747158783463293028364565655626757161679952698144231571698236683745874932399541373142930608067646634720193675163555907303694146708932751735662497708881604431474793497422820055457148636815129462759926990350464393115152288439430738767652948562022622689104744516833816928458914294369167743926656273337412663107135797879851738854422529615567009542846796963654996951745240068894848759533486920689467746200800485319944970489017740809278389949309134192057317990090556310805798254595761666264553647900978457582056776980078193084558589758863734559208362348981819204817163986358414552813309889321648117283160914912695497289805214003786608638709450052828137690573879180704460156785863815352591922939863694272203254469313568680423274800516617152183736481110621247842228398860665658960924275582421768035735852280658787290104791085452239500210692822875262998014981986882676412364120853291252707804543539084903067475656597883070741625589275581110401666463820528888140045721541631634241991722324195189000564728207664044988798550297421728991910534900365318456903836134553021049368262375255078099150772091733956730116116286719843683793320466926162240751528516632857249032003216725821143167550655725841331514271821773907906168356481506584781456184331861669729127591528268060589462292289394034572451207843587567587151045147123736960719579482006997795125777139860129579769393209886070945952618325990918240496427303312379377443869918142297130119646767199004752148788864448221893906279947365634733000826974110333969850422257697839375733125153426099602651667787687751525705031886088483606920813110023622651058650956979377644885208807510711583021883017907248888931806718740571131479874442938396588709600231290279367404825109571875990062493509600703839469003948773956150375846190685254609931584029781981003754915097876390250756341033196402263291686401906028118098672154389377003910464635538193512749757131586027986070224124271227406972538410400440655432034936238371854265779780638312775168700616888286233085034663792205346636913614383163747152298583443857041321727028949623283659382416306726273859171773346763827213842621797848154344609822043956954222824228954552525169594872809894773968470859149683613376627239175569006247334269747674002554161114077751465869001712835991990036277783530040802060717519665003981483060523494880967675643869277832448640331706559774996342514216540247594779337313431419960948769575013649060004544087160527617105306251816158897558154915529373100790981589631938215397477832062831137325022740931686628463894851451767964091148219022573859008508301872546728344814761004430595522025509660333065846711086527924476981502735041217747843047643092345526653598050474752791789665111907449878192771554101360874842332867208578941775084620344626163616193739922125656195019537000004953066982380893583933987973104321456953193348880674600971498757272535686203437471751822730848421831053837819555201435415444841010780942251409875911200536620689677732137403019262991283117908771590049696851771654257780090978092172492639211870440081620757463559771014880713195769131012144328042691674170043620977456329607532686208435084501552782158225282855235757733843915005865158806412088951711661202841829383266440723859680874995595463564868808599995099043477250626808306678797578908988564424322611241372068333859715469357787214668930641892166583284094711539714174002453344830190361152699530839452743762431344041985739293843908964123606652313496204032781911740057950507611421042688070850017581172008158657426156597661005009378687339806685166734247849034007066430246168688323603305528899941718577219854356803447049327438704487918717555372268433410461416373255769624258501295107064567171838109508646235887658517272490274708990614747326247526459416636745639054520842215172356268652156968826410956971976861011937569221789120794574962773451896654520236299826619205903303863234760336326185191921965490661844853900239627841711952878922174674405271212716423514499755866519202017299890053225624946436238368761349644691768817570932748483933243459371606532839934804772657318450226899486144634149036078394799209957496147848310272387734373017857040233761334715252629336183045045358010872689795369114819972880230650152057347684617877856035415468905372719363102157971441505718565483974188009144070717698846496093790337923128733007951121809037679606553907023760671112311449691212813625548378394802379567785427338296333460946675567633660344368307994729745195977409787162592299527132150601842234018879610558341160621931643442247827669301845736217971799331354553548081742157157806608431863175213173942072423532143090320248315811320239075027282656318539528331052590299914033370936535079411334254516760525114841599182065465259093013431297887925964710145902470103314449330787662451188976947417135591980675307673903769397237060966433173711431881714707378117538627986054059157975950955472812890427398346539292139493613414471695878633517503660300739517544297964223144821416493332199981940443626247572792322827875111939935844851360202837916883011073362625682891785464445885033806511194479101727829736008187072669089695064942312240247911385800218268446285052018160989564699056459015490911944674152155360661853577537367563806766562680902212035208032487267346163576955490963231061484806743061140302701455509778288695172161256624405274763269164623641084862005434539853081904875968291796410173848842534361897197977093603276919270696520371975308205792921401946157961482010325071039308135594277566638579816012622337410209626005123760961178985444550912129727800754250789378047379951211228509699121409417668263921438980629877427008852837663569262762046735787615657005725216253222531854571117422085492581909718810957616441568446776650256975652793525191399221929738902534997803221108739238703391695934781928189029773822060074139558468724024645685375302982466100423475085417120353561871727469204113383135055843796346327268548202524774745972457030131444354765949431608108066927179083345688124312731352703574338271217223058027611512842834603055965577564923564591690091794961822728202147414417158467055781434702587638918243232997736935559459444613690920637387498849228581555741078327478191151207681718920264716760389762459528148371921464168731013408691446121140486457573145643357056211307179212862226978761870027186545297371247644167749972975038110085959062636511793280189855949703470007909684960354734119626469347272270557264721911688243142075663700424857114087788126143616225415919888302508595011232711301758769839897317328803490497526976097207436536397217920980547204103824164141223963777111256939699370059807906497805546767632655480777013065580354126685002729100494898684946785316676628027554923455356713967686030527878348631597202125318278348245540306095811358141220303298816125616320812494467474788419044517724604822575097268851843028823399092988828313825243828803411530330810903214363814589825509907716200814682122879769102726565752849197228015259306438426532317734253761536957614451024331606752628849635656150701000199027526117329583336027093177767002226394648290911165315985514903558042205722540109326901973017190712255643322744310673542310249249197204320421604741046054844210118876177260943292065325645788251283129804815005262200280853624062563816868631345503997223040796830386283672642761877202979401655775115194449710652341041389434574135708478060783145240209235193872257924458033713564016903783481048830307624512057297789780609229275108422379658445129824287383895395476470631179603413879729837252580564004982231641495947696773642204716536812727429405264659541735843223963680692316534860818819263208940793464476168787144675262777285234009165002034319973750710307038613306648772115596287174355266778762043427670670212006652746506629780744952673764673385755805624526542285972110821547133514919305637411110539363728323609691470322418233807498387617247184018528479011117208294649503399047360641387075095171092566693671620349657547424132502852026345397109317179269323512865199484200285752111392129463801434011299366351575372686486254291378546219344951020463725451318592158879300181707786879215732088202489423079517684002324422657340156274069894741069483895956557088660495608249761484853105001211166335621838454969261250435839158224381261274297326971078444065069536529909091170279167085042937246088336647713577527666124687905969564940791801372681193522960298977940826777033702299968881162045065827817671530129689877941209839422337477143965359384280951558346397829844687286553430855266943713638410202961653120088544252464882662822574711562157297328179731463788670764754342572825898600159324726746489417219144456077018672712159527563455298702766445859692408292968474296502545761730817573555776267469975901160243332143267350358219853411742354948285734115265041080095966300626532035619728815569056332847615585794313721137032446795113856742217387850406279348129684537456215798498507059229542371377894161615910700235825216683575684991877196219545537633112151933145240910570335683710139624750998872519794240665444811659450198907093256710100346257420561018373125507104497013219347211679087503255080202475486074212553827240043970423186862549550536807620745373175923094886075892333873879205154755953752421482094050365917901402966495232008877595731061501934729255690719144195939067207393737982079592910847938482540506282794415555185660493709777791961147543582710663354835411113061981428858517886217898852753968843366261445177219284925778074789306026766701726639285182229758299655355241120678936113242191920085709053063762675619754504703441960741866551185917007870256459538346842797951646691513013237679812973851445752629780662733382877866893155536180628675819398799531390489367759267251399579766979751824846450839399775739811759505382602961824775942014496307385228768914257574509474958197552903926712126347664832898431436806205387234664270001823110472825191256571218885475522489327723097693747676889900792990213838747017183111646724998194282254695844083073310689724479719104681183686583442316569276389645005850968286241720206125537879389156552071629694858951257943731496481749395496311579005361330616996206026280477847498273358057902652133245465087254767334177262284736951440995193745302307250552629984390437008614726443975527699430921225445335052608437575108944888164879116103008990151556857830122906497078099629783500756130482693738158704275407070014120480532558707926345518404265610134510645281596910326933956003165951536321250195909881996715786593587658301291263656098379659795673828235322833684093829413526765212907476254600735173896001850464565781896940123256289214694385602867563120427921461497963394219162550733652491238697917134254162308476292252968894994472960087372825161090546947109993224770508778283040054829731928390496035620684910314763149282326406035592942851888723758465075438299972227949602644181879087624925371924535564054455696854025080537770889733517403453963669861904942405758354877517907205544240926527698059855540356876720701695050211116961444108754289172090869195451987887680300965467514373310028458423374395017333644708565677513376947671710226035764392949015288673745969510896279070073711014736209680854135366254533922629718636818325891749328681570104405573536304307997816346913174506434120496042264625063866372816612751496372200538966894998080942967044193203468883468461453366107966708379821399767207110379245290467061744162949926290489282081192658760148975157489281774634836540513274803770676214698769539842582299438329976835039337625999653385198593270876306990053168815553720746545837409735372091813586210722536546587466412514054661052665990502463735391231567895269643120737724983188406607077180027808911989874142915920541152332794799756503335412104829608438217353184027671744088108217098031550778352455449554115782909001461825835852065713179925711552672923947709602377272176415568114456513397495871016693832467808758155536548135428722720744523177907264655125156779818038522954496623510616223271608769628695506733752998407502308401951858939868708152491916835200297041461459812881402027047379328009388219020223815818518998020267194632245609507754100862593950448658447438596940673979150596026777147065866295009044292349712610913189109884276396571713848944287759441305129793454038732476643536135897234713259598328646330979745201041125159084140579531577144024977975056612792257669132412954165782817809928192444590196420947161205655844200741764529798849202282962131772894004025535848344027192214901228611293816430351990626205005323453962876315407390863714929228242228126933211378310741510085815607495786828574579819867598746465814981432843150976788367481454637183604790566340757994818686777213427113080820578806205949151004666354958735667294654708377370785109046079079240348111110650073153477438966538087601472727249856833761763219101298575147139520797773257388425441627315598648337162218173424945333962212261758158838011698844078907392101157436823147013191450453827314231173498423601270681236289874043237812655048678613828639794477819121000286417813519780239974196899130805054105509678706570714247845992346834625135702436367004214877885598570184961167806614624371802392835914909825187352498130491982243023964175323958221763277016473347460937888973401455530445844074105926695501819696151159529913781943730963975240685545868672124283701044667208807994752218976816684578881148064461925245869654126350760473380237817788723977999740304420920362161019430166783426201277004585738481819248950199214073283478285496942869040008771833857912802244005528126030962394953482163103353375995057491998446870171333868822594796207326612380081132812533113859896044112358290285611816379108978485664732862117701076611792410777583234698064151966732485421676920065375410950856123542719073812005427822682933727520039182949585926500691950709518303433160346975071778888946422150696876637036409659549032859098397102119639544686556069821621390035337544568076782954059457341445595917694780350742079109904316646050800123247011058099794299393703605626643785668537113194892531232369524728825612996349427203361955159358668979587365721913908720372718471015358891645505504239015854135066255796213156175019116124122637844771225066363589181053910147313394377529383594056438178504654745963687994472572225787789072812744762980850027931754216736917788979651570218583746599143518321765817150512504866016176541239348450033119741471255949763983112547966608705419517770857649005068197963801874200012572076472146091521479958060952909347600940521201031184192852888393912230970460010728662484877365619178124372439038740011708484058054226998494842332493415521685580142787070133846839220302492988872828691891347442178357344371245991376034803168490704186014885347631343537164296261422905389718088461060305386337987884288425816796515662373424540198657838664993091524869815825477604164399271811965209183636212054047562507327277906163436845734816783927017438202717439948465071610447411276986758240734466924830653325948253382716590030656076774956202596722655505007823981830536217226210965041647452808937356883024018374016130179383696686700591513621643334375154467598198697231442172543325209239280729768384755838093432083734815847908255101444053036465935661317129957614065361858699354229106649087347174128772250622423719945346063615831489251980156371248138524471507165948320148472796356982016082056741271459762219505550093463731119091665988015554578258633712236701575754393056106834505426853392226293437194942389173430393512329826193563698556802661322012558796267017602079245108870771200240389611106054749257392163960920729116587162143344912893913149093622535156932509526596627784991194562852853795686106782290892827166445447859046723105505609499308657515505938565701521350086116911618039582584313714720971442818659106422158506441831356946654528622077282825209183569171455427530257706330809323446924271457037504561882794549165483393477335929057364446668077291307724147463647676251581923006417179854570303559247143676160969683144573103766169501811353209078989651731646435119413306914357185319455943257641330320257121277920007212603599581540686138678889418241697384806294179717462379527298356555394831155484392904351853464920168243498334635197759068042204782686660098782432006309696182926095624657316215086882268367741389508461741711240802536427184845127694718682225346451650293105003919861112815294025166540587258247613895308813601458747527846334001286064323414994125688488371832314132445707908356469721601381796934828254943776384513575627403280306255019727697872593472577607721897060671809878766472846296331228030156324883153083679218351527109738386268319379839875324791150108632893271998210849177901613715583218946559787661340063527907484868184809943632426575068434258713037709015611345122743700804299809607237724922635018079624679781738060674209830255045996894345607488049437688111755035704025727785478648420736677291309028815791302800356687292380315267819768211065723623224552341185050977548284244374663405121852306198306009757456705118978413434514778516495225680378899793407753468041658295991824895752355659624773767253410118908484533769239146872762410490508927297429585982967957185582130769947045613096126838791176368153663512951690025276502939047979768892268143777700650060860842974157173288196541518946598524705077740224561102706408739706716971864837475287252225220770443139263293519202364718768893955316360843213487309215954268148215455933423035485713280819667233152193063564006387735851829329637121883928234273990060153662306078583684143622196638107647596458090672122222888325216245606663823724044757692941460910217631377810048126054612769978897776050091456193462201772396958311354281867911583581753735065879827391037644811509737207984968066478069149602413447952298326849229213341015965379686379934610715909389030664941734231757023350660509531776136251993895843924984559191110860401439608788751262827288574318043570738273871059266183215152295928057635509248177016533908938403629677707605347906855089549920962024384467634642108846022588727000167274978607742276930625461746473662299610994902172137278418535255286907611131487941183518358385844816661660901522900143415246878256772750058857975054173495215489732679873661858027332138483415753976920976095229201797238404199289124177540531788295278541985021928583788592020925437600367958315122756878802343867586677427538749047149258334281218403391754209216080222766718504134851751818938709372091939840226501206030424315401608661064663368683047686920065258785756363442402096799022052892146524984386955225203844869091303860605372756742474824182468278687153529707078963908236946310148074908984368414004582436138547465341418798510132781577272218207531434889395370463676849177263191786098172105190499724066781058260928212939125511692651741994519259453248146094502920774387908498035660598533218157751591667448015814964910411445626577314041810761014687053210409723846432204965824911001678573047741588439706167607539448668685586746546394917620107983847460964648830427677454001870353990724002594278591423756746075441527402444780257393070208286226976997969085565476587016990866510686938586013249514194577793641131307480242328017250144117332589799754808649799270060069215698083841094361505680766056617605098277673850558009818515707851827419932189774408692823222392435589606087448404038036561691640825499080448457377548550101274376887197556565602338679831539784309742165406197209510412718143173093713832788453741604181961802411229292471322942893833277989030436644972191264346343429614747276916362490140843700455168704169497828276726973603835912695190194653150643629330804021410965360789069341103415894165032586165984951619306141111486883051799959927730288249603837742410196277044938190269491326350979898873471603670392427911656470790064653602362370989425866813293274537361724524797574737197200323309270728762447685586340977263621949542416273305487009721844331928400650176850717982272153733574910028019220692704205071986278738834189224110983739472201824292983047101369664048230886874158366165305110150502803259778226494089815023487498166304091673984031440563891181586589323152162501809733689933629904308562556990389665543532400422618663112717977329062613869733397122480031396157312622963519803408543972367261350477414713827205498155410212147046852156290331803799466080429181167776679092562979274038172344976796602006179426659085164762442590797671608846716238113971760147062925452681161788926252023360915624357989384572933629378668326112020976862634171838524406430048922495990735819541671429934848861565084663322197144677864207587920751380702816178751601226894371254637157752818019131173188792840369229442676605780863821577140692814313573462444124768130566938827253369317111477550903870872520427996607979660529080355551017143621215503969989124100263567437909941541452052735222333277231551313072482838973154153271288422070558707518389868247900809070413609366839655609739063855133785366686605400051533632642011272285948698304340139682019389639862087339830507705787605789218672687899032718941784283744032591440253611034165225186249564158440577216639459694665005704018950429161308403684614356745070736596165428890836667726639344427281053866485756953206704946434506757761658058237710281092025215991816044499765207010889829196948230947803033678320265542071280355838572912132413970880495930340474394388357502188046894085542298729950871890069345752207099067147961863356246720381108740605869554657011021265460566116936635409893571987962747518410064097908426223561199143805695565389316464518930401394691993327790066400113813179237077206721499215183116392897814878577031617471505287495528024478269426290784493234041942771968029474486583920488790044244599190167113558105156416033957312559760682143421473573577891805136767123269840226695529316194612480121694358361426269688012400591977129578261603167775620338294645961401427688248039060292457043214272223964543942206338827734697957335769971957560260343450873026531132403224205825495516063747985146672779771010507115085141848253659106582488655546242339068430411840145305916655687379210568397736350572237571619776042593445084866121676153368332907700929612866134194393750462137582813263947533753828798670409217874101649679058476708461890885343496474845329643747246486124535015320696481677877011663951167704180787335068882070342571109342395937100492045125359526802612569144799999696437755764205584702717310137090794248731699775443281934418495622331332285436782013635972926107094433969556440527321810968195929668340037380059763861034436587516613573271024342469067334900700843340620868651646131785774273843902046077284045486033750721060322032954070862229932586376973179943588323088720987487139585713671000677728984279843594669361523901538372686252708688392013904912730671943978934956012257395562610688212149749466206673486240704841187113108093755862760541068264355079189397486282029524511991674994729708204532822607240714020620947040833681814957179861989977905553426329131373550641634848289214378505755178229591604789427319902352548815511954546969610669114472391953372957357700818336625611742239550135655796783757372926659060913011195575953359845800567718135262247284036225431384296933730475656078499121142526146517279007672071502169545711002843563298026539478864158861148187165790238530950850342149271049106427843709448155327177089596018356522497774803036434155158340809123533244961435443348855718115858894626970866321202458879497332467693972502817151230480223523075414378848110841204747888166905654009316261982857757377136439725142561742201498805877790771027782263385698400186825010197560030230686408879412491029124385775382449525278667543542001619248982832523682993701017753970205387295473045781636658512954708229987014363822293860071541285311772377189590493015646064618110490633890389168306300340216191271911601856563257397894580845428236074916206074644276187651302950251806274978729935271886936510035564123310959562814899354939543765118123820498275171417518911175755303680301913577726276873014508436350551220387027125066841475040758885981691721351027456403594482488965188741099864447360965616034413634911212108372025236231496209846925393360699359154579578712593510354782341617569145328550634088302176207263580229112573053725003664412384709956673647118344099114568210124821208400758700720810814394468622175292270679529485709901479518371521163802171494539745688886118853197875406389047229465747150553331613502393997034820079217115205803058817553350388007612940061971306292723784128157432099686980385957103873113312492469482662409242307516221657375683030322006694440977677807390759396326145326247583988879167094451068639278368765827707106734586969521934288616150667607167839448334446794529703201590712620265808717890097351464030048394639710192574664627665237950324815299111362960450019087970475511761764866973832113863058841032188651201780913594908423557538573645298846768558555066525122407569283339536986446269309611632086665684541429556155459804650884695981255610790809950810652917338046457593774950593709645012982978629856790131478371849324074859515169391658181819562541513253874988814478457115908988822467194831460982910729220500337444226853631256403478401866122498749385703053864026309026747310337153626729010244792257691268953599493202379002044023623505123726914454983464554768934200184313993596329766293601865120123378151325218392044178330614007215585504281826919608177134864121305297055945619355329057675267333998267934054761561102189086991467082768263950680492215074192381178885097692683767121912435009847520726022079436955059383626924864638045072402045807695695127289105736772297428103691338741728309478230133370934483667826990716721421751108090120232015857962060194811396896182544139970766106808941622437032582749779472523769061076478134972447155422751556928702245538812413874933100128960035106400579098905587829597816400980904087356387037828421735468272641646260880592359191198214173185990359845254674911055560102389145284542868036456986877564313735594171985144233916978234190716346007944750755862707989247291012981343410961979639849506255603805548216999492433500159865007418106125888054601709892574363632241346089577496492507199393937480376349273219705301714477580023694831117226136449798976483163456455626102983936315925231985597054626389831944009033764764774595964988202245630806429650601304241820396664263537372336028636832804734308804475277252750065756561027982740349246992793175645357184574680342475740849961222345131417685432132911022129204013200735961736149174705952807198106566336837085996691682451537115947094152682431273385165859903655207430106733256557052280211438998717372316146397201649717679859868327493305989820087213276780609292406172850235335586316525275702687235114452839686985236277506405411459075098018734000629719586753237237042729633984423769743412313322627036784692010278155131243324699211379552611554268317673805891125496698133215360004257314185245615478219603674850515986725939179719620317703512944852817659492151208428047668981577304862557796772119449568440483608835294269553392646561719962641591267496357224210284405897714740069499485299218419441649519672513277741681886667823482803639798692741069896683108167538510066693751716395099825380153167050540902310423539405419691672608609953552632419918796277490218127834699774381112112680232340081532232300012437478295251377710384012102700425856460686393007147542138863807392863540966428776710729734855847284217271263386490834428033716022698428016565861354314116502721316719576217018066034570819251612337064267375179287233369302719997149530154599973606052024810808581766436086744536205466451613330046119749063956959692551654105986427204819237591439175738421716796871427811134968746344837028735282031929421119450928914937693183335538439985660390216584088049513533330884295384046316236296018770147913230107787017208234532310263739236966046824457657693818351745702239225297161682099957610582577990451242651392510809004950723119735773052372858780085913027959364622373525620780382854573181507984473833276347058370299101686738371709677246365605951221301623951754103593826529475411183822105871823208704897152988925893018375653678262599019607251537809531259936828850177510541129207433718491045541021632810966141966026463342206798210470412273282493010518196372473339034196600240554650813179840627572011782793193633888206061995995506204410675038379223114229144345823351818600014844703387133711340936254051668941452810381886505131584285504009205406616421791142261268168040851095048485954835523295273770792430442844612050153412884024701356348974975120380245552415297583065660074438637068447689403107590861498588981243888927542865115808319430697154264843196869345088960857753679639818497329970099027158421088377141800789248216136472051818057746335494979890389066254922140777373289098687584326955090497467703339171549298379305119487831512149412056686962611741323944892828825581158052702753625284156570756649201303907901911641311522693497260916862173006023909049308281478028809472054563245027193959273613004458006164309577647484179085232986199584020069153591042877613958002911709920616409103127469385440159990909901561804787854420752048851144506415244494562619732105268987308994550271093544149810802253321948967132985265684344734467407768265549021255945453297382841800785423326627841275228429718284376501222880067369754442454611777699142596740638051802748144781694105298498674596926277733484055453966588296116992893394795039381124733921955226935006783820349999934955309036691499418236091785152389628113126793407263182961315585977996860480207725184827178397904079535458674262218265040483334771566543819002460820264980941394906116710383535220083938385508775270268310561501959784067207176836139299446604629389549727015884847614457164538821017162154071549981934945370125893114562212296224838823439256332714140110510534828245837488061552062480392739220212605884403314765427393529194602584740481022133386827482524044044495984694875735664217125634335783919350664273065048008847798310599832892198526551236270595408977653238717438047973364556926367949488989710812287607192813273062120351403781848617730632247220798849867712752702827873812350968852860128521690057838381498648247464729746594915698044349098041523775011547524330647031230959921366420388492259299464289540185795632486349859737581795677015808270851442129729836169246552318175045233396065588380567206190306408934964221371029630619651304916442702766999183188981951177443596773445064520697080485794675786617676354010619254625242635086365504861023836173287851327066204593714189617886288362261591139021103778545859223956611525494850551163442613841198560535185124995995817160459864858016629749946719952818970573912850869220444989081794905283693366333759009992189110854126767702304184461204110702027861896220371639477461922808577240951215120100456637303244622577853450304935739873030367512095013725750350561734746737895198103163659452444926436198395361852995805865650951160660411060119664956615158622012340298264171692888333843823743543464355767449259489861556940173027655382961139777390963567429871969482967687987853597445061972903805210806042294013102642796313822064623838096443255782720849383084799139095263444367351678498509333448932190204403439847067908785973737306000680836634167421576916926556464884644804479848269377456863165817973493113676777853906003391657750794753890000462047007225329689951784740789896181139508646172087258979476430822663246324251621634320543715540054345117321912402461096626320867567891610662513579480857407791947278236368749526890827478525612357512095223163817041424198765078827823935095039427208281546021139337472925888490931108758046914131890872697564520101910396918692888437610941146239704018931328329052338390681567475470010734030953374145347804881292857335354468325865486738457300824029780419229369391118430581538126699406932819967088925962587038817988363350356384465453636235262392410835873376816518633837688103602731574666587261566496404918837723027432517169951478022337738541988087508731105545697494822864871815958598984013130705762670985732582566251770488423872088968802178434559286818583484750868478427377770653626708321119858276477806088926848943928426177292600577072355127645229268882506583482641557230188492538119780758757738502031190303523969670854580452752028545609274621379353610332442044254455076300998820620538545103667673315108853662273756688558544640506249800370006710254429454041866017217771815646886552312675443572119590359438070637505616549359218853667456766631949237572244320837650092387817046804912065352623452142662420612439710101038501183791900880170861300859537387626984927654341691649633337025633381764089341578321321128496190030990280432575382844208322578152916501022724066761967414507986378917512420307465930792217367426477422508183417547064956659120447662105268818195693400855256234052572483130689941194854407693090730970922380576035817809262370669862504648616570908788291851038066752075739684498762789131091204025693520403246779688949962794776418885851740144514421385879737430184921491512439794489337234215576412240058304162737092518159752377797000891214965642100743626330876774308914340177473507739155592362154580173729127574553528508538565088348237550765377961482616202675154295876184353693834542842571601311407361521515522383490620541514952424143884429666178342147704078976128767499819137258192928033273035537419748217573257214451582204839088316995481619162978506861018808991466402593377812680649414265605098334639994739605209982543559936637440253484598332798986613584345618615872107880152975693951498443545870408098576330691688214055525880153768150426474278481940029122588720104455445012320301659986644287492586302979443574605422537233938484938816532454568938568286483088295034814996785509716087959539725147108594888511415596284950647920656370813468766335709874321733140017246247753248054653122184745966912473174426720578889761185544257578709959622474672648302862429171315012626442840232262289505375206570405239794074443254047581087266288234963609282058319442220641422780886247669404760850911436204542375736300951865575929007811604215939376253880358178434122833885309883662957631583636342268804147562322653092966696076134538506636752426307860796848409054212149130893856475303699844713424407544732107103351817993287123386240455354556914440656511119361584918130939647092609039922086081320534866848864700055951154185021151383021949271285711780490731989109464138524099348877925146057310499825120394366525797176179694582723401734819691627529580179281764271230767263222637346319886048439915806068270445686473501375402994914432444072380131754358514882137030480578021911324552441938082913526762713177619745886104059752588969816655917543824730731138607728570189273452757815667734159295532069503195229498799319013144851536241688386016873860991865541155105280913221008471854676805220137910682479971647379172975646049998691238126381866439440065878269297320687077727381004707631469502608594094481180542855824385385498131082274775536357705169301106777456002498374696005628836848223954258490891147083103843316718642397335516208624347913606111414505399200250782469998858295741673197010530542033562792564025863523300408179198103991964689465215439603835351227018651963354499219091098080848699333693770715164575112420818736845892008886213180413558270605239889470578328122461500197839531407464590285854588494516439741914936625506743493459588561207892946479201882138243559601210913298332368683190449274344465227962224420885644666621761958057791033781966738413758644626955426843197870956421739696353019084565603580489757595062472103842699019353492435592984411096908140807784051554270936423251732805269528509692666506408136688281928027923061100194266452864694906225324859179512093638473685027387910079290764258101955110681645715052260954630757718003039053524988381955484432995216403312864016474146902456603800186726473392259023488522476662669346071462158190977371323427274388760942970030351022929644010422897836915822595273443476499933172366380959124108655317577503729233168843887985358442709015291634260296518919566222933307349651748606448833759037919677240497795724837480889312539064848228657760836360360606498247209999127572815056142435995589010494184168235292033070090737597010998633044461148379930035908405247058598316998549226309001971511520538641040331662632534283747971097422199683296105641047147359044902492357853197047738300732418624246280135206445770368904917261920275318631965556279433902952946028134752071030207235934167507749650961993241231139281742988889476296822569826028227283741734371316407677698679901484852045673626378325006300595967898225020926944383452197012529729513919426865209417232927033675257782583501306800618467410262476023793745819737892109180997894458480674171082166699942604024527337776821226371519993339225926443597111746715612165948776220917744834871840408086048710603455506954480436600117310776820026373641217090626908973099691361340308395870336854538423311734795061507816913336008203170091818972531559818904438283662259045031660281355031098158092451513363445356684813467984872421875132529554161470514525335672597099610812757645201176004519415002733116950902658718613315978099153937025229815190899339135415022085230939029869301460329118821908454543756738426877567842463496279306194155044280167773997846191895132859265669627076975527249386788509164604398916587950800030559433818383494355670307101630910505665429603753024731189865082717273098601919390330137667047340356723907895494411838366100102531411874130116757227113380357958874939086962554402023014616359551569258210991217057319015827554381598845847190941655778192187973507889462486874164036849394008516347521150946496188500690262147539312865354040058119923243350230123118691497228714868340515694335740958547188217666142403668173752063771120393379121680198912774524456407839812312445863726970449992660488824847259251065496998900686122882306599315458437869874826514578153896454886963414723243249509465241827016049256663687257963312024627943557481303838532762080045944774787134850109641941431105147486413760461729699901867836293183170293854586152128430365549601548147618477238531268894569499175245932427807796292937020005339528091428053731713795767617609692791334237334046246538992239707294201857444732805475389289823360094741440964153638389119568855500631217401845530892093658449828527562231370377177925359947786236642548567968972560910638734146136580770442353365190693649942943425650653011796889962867466807779895387261643656648192816323036490326110616691367115031665427922506440056063488418377398154941135844447338301953492521901207678715945020181414961436963835802168139292028546841932135602901181590558534850208950149273450782260136655641791927536669911743571518437278167106623090969178091152989949066340389910936699627186332770619215681634230019526268685727638469094866422634162995084553057758147505413783376961932050143296966635547775560551864791748910492760325353870652980136415237319450972798596744132868804199597912918351634113776809397334377607525487781402259559262262242811882677233273971727573924781036044287436302624709946568731201833558283115587674199464472250112924424744984242214681997176005461225986621858497032267975565176611064880585336441863473256433612626261349502620516895031353120239196336753993199315438186262614161737900495885277587205573987693302453166934137219791388861464986673427744458585023366103104085929254800542782327892820127907280654507045506107332988739572077076466301890888726876443329127585108482266016937146519177854284509739346460836323925497160095191314287649405667284954062487344914090247696778123813184866919421335733088897409668453982890672082470925704377432695135831549819309782778770107594212390791038237985167031131975390582523188783073138055359761152364398651501412250629376860449598466222499271951483625763450670620636566296758328125218452128698635061236472345516701290154441679959422289536104252830328306344934651228346584872486351897296835803911283952498050794803494115138332095241296097432537626940816415097434896524592792903566032899888689023796337645143008066152774115786909932481051547887824337000618198842376644113272272342591879514728923798336762481621138121982609275181514007333204698347321544603726769484783923903177582052632593627733835399539540332831115552392155556012674411689824043773556614735161453853294328804860853849813677156293695679464432788309830987807959511421227446444026951134448020833393199042829515492239340456645689731734572671446056497209722431594612709508649829845841415199200271072303026893009695987500752051782468052375640813460597328150921809898622667230609156899410321387715414293194767889372809178112289450606797993396039816530800988104032839682479736937845421135385633890238519724989252534509463335762141010065687400213826574213002620457972215594453220136764048672294029552982865949064676545194256187388002835969900241923356485237595061044645801911630655948950212250288940821771847185574661870006788542387509743434137917606396686454673511773381747079458473022347581998699590796077747055308664079802503596689992378721349010238849030132213513412667495581242476391558906282171290613555437666213620710501512937474404274634625821746909525186786612814185908428885221914886514706990487769584057755331063951110653891616553105031275933910124629039903464933721173365116817818611577805567067611207469632550670105501958379651857255326578795270880135691400757202502071360457598465790760978856459713678068110861237623862421424124691797989839424841535078684413454252101015264993141914661719015929937480807998083109347089710881641158203347308774579826709939114701197681977349631960464852190717738865300499427904415805856913323898397770841805864133454123547074907743906885794216781086627560171682937556232585359863178936472083008265628422988687601276105432657427466482457127437028008177373172726003768266970209313092477199002303489741333078989690247072414094723595324777864827493519381056977284126366574273816707852253097362327168460527908528206685384004287125687314608876117085797196962646377665630809325760839532791883150780527154133428831096342864030746360639308838995546909199025344895585565253807861751967967827185896564870484113155619480123817496066320371281015777754718824612537777439329009525027100174568213011603051108716190235893906192488262018530508528377747185653995449807214765661054832018408328989387722687645842265701457753542819265199992404338125873091435761905602717311821328018772985350291127831399582223494252006871506107852897227205745342797018660091548027796057236983746199104913714314893332627676847715852708565006788779013262720688222336220118015810225405183062776151096431619637827168674863746424180978859333264498088424298752470408705744409904794427445031992975315332481100814490603380621790599040775205158235868624482395810801435219570164054176340994395769055750158265259457283477331041835654505691272841587902123866114585473800364883399879387004314292241499030512372151934187571854896363070654744254489187660438632607895223758304832708277394440484206850401283593325053067865866817550204288563665164004927238943229174198828014473650448085539156471046315691249051298498389861317725683958702693725168741777775124398354607857720313948907590623677344355071810644014418528389949957439197866325270071541777646148571001608472729617912556013239116977923626619741357643858167355902207420271742987051492732855435311727961725359289108234272207775073422859397357352871674833436032271122121514180449304419876739897166870084642877867112956781264568160651386388122298508267236167750266858591059178844876959927917476779746357805567911122586240565612187390243720180938988558595361638780839718253033536426730469734424386094737538922563269916348588752504919390613760578876066872736551670671939690944928420627082714138569814127254055274510061491530372921820669679945893575238284475693666521474899158150897866596699203388149830014665188907845621480946137499340645719504203379806230915426288743350787080270710697860608072598576138422489748193134924702207192277750169806394713707039402327782450481501791179601851522683524771846304506006358523304451725663981817868006118566791315214520893652223501164596465097901783073137714559820192857661942373119941154107559839416746279517436382742411978835951790598001162575054388704224317280209013366700948746563138401641267175071791629650004834598084954277703000633050135087076650470910384921416534646715726878357407426961030317956024618225974812242767190801927378914885924523397533265226351272205076607387738606586676817777837494623886613749011269750154509663570008934129149359629397720894666777405346409705215291267439109341377019374571418727943853155789805514455760370108718580465393223499004650357001206369632906239945861967424726313231876488815685451562114386240833829783251201445184044783958194593657484454534541861386003195211149363579337003900586179023342243724320095786367631248792225304356605171236246320543406303261896396008775171323959268472307380737439147495865921995153929519628194679367880381767719941762917968048369981348798538889063458045954600700182829813619586940271396779346124756260846820391063726614768955133462737375741986023038909448182216293089089183150909927909796458082226635234853874870977886346388722443477816686914517806817712986740499332984916185380291216794748850495530256192591380126828715281810628979200984574306618183647494299716188356085559828857264902994236355893779162599555805743708902811076675951612812902374562414727690978689610892950619731307065081905714645097895137859851813817143658438347978179617489851818198105843320554501887021530961069291709307948975236392997922085427490409521222071056021781275086436840943677270020967552668015519441652883067914473263369726258871027639258672689771663395209336896687724428723005384201155412616222311090444433232676766314299503794621313550374724159226851516132525235142015404162012761924339314589078299197857310452561114966025319817790540769468184585772423367088795166757140859675063453884596785709241657965573739730436377069838272572289103263327514015732194961456936767494501584792178825960046487006523711783416318316471622015881843222975793522303301541806673634621421525955229724418701680300755355474132862088064652896400416951106309420634688223935970380717042336180008884469868470892159484889356880767525120525137028159899826119757065401782915274617324657525415185589350571841889875179449447628002756555635900230918771405302973540100942228801401947652314302189529150689222274244854268164248004955292329787461110012069438730827318291884083053187974290335764887209429651571056371730287890491152264425068517704963965037826181424148012622628567381476535936713740261253603654936646314946454168883765881293004785450913593767341793998793253249099423700549785310561316488986203806303590257254561992117657046150965408496896718919840624794240920516227402385954867233511275451051204272658332273168588351822186193652789994330344420317345571677229814161935890270429367781268750511691815897255058717010842601180252756077131435710938111368680778016091492460859302956389982535144637264281539811913848007578607776498920582686199510879392182446043610687675045667808286671620370544490772509542875242370645143968399934041356546962753420024573015476123732453801992876274761091631649102714428564843734932966448812665875527940430757277976367580277313273719501606108085849694117690521278598843511355565333637988774326016757978830919041178140518573197632870129043674263371629554403901054774097362295634580089047485173022943225179302453416540032503221570308593515377783264723877190944613337821552917187239926710809715095998832737592134169856250800894967363807886513834729437851443175261072362222401343905183718697746103348407497805339234931884680622056819813600513529531760116791285786276037103693749695435189530810578113977777737849340368020387236185427580879511465460652032798334081670745914177671567959585874084737583904207854208388851310327539731705469160201669301933614581568444371167519837297564797478301706723495912471875720248515285807847320331370145001817431635535002908055876916666041536555786153496362565518325092857334554400581865212122708740409603508638659491059354204037842545038770156843796592330798832976906377656849799074505002744146653991305475986608687094742991693082154660788458832397094537095348664295248502966650566570414713200860911050826294036006572231131872697995086553664153769260898573514462621728903738102704262691142432467222053561988786229490203042313299779090890380480024183206281856933571219853657103310931747817431471415410468124581610389420257259107316540558069561938353018827237390385139693320515686033621128366622863645673625486877582074516413547306739449074040669533785692356094520772340459808110831565855505681928785487917025312509411847044712866835856451777953227062901808622769638532090378871433413503823505706228977275359397227301362421821680539721830249756745595108212591565601584120828347170770183656217646876421768480337833111270329837427713046955806426421684003283053035277708859625635985091437970037942417913189378361637560738936699038337012671521915855562824127031407337869717808056638108245824283713762518236159979642624919281814104586328458532618950608749653321716748627994078652641898105574908707019505175630476158837590578439737542022109704130071721862397157504586699873771985368687474925139476710464497699663736309516612157733701910547665965221735234732800429744294064467631990492830554275848733290863181345330514963655704665481185109756173430044937405391915024257467828171115250329889446275036120251379202843297988374026724547685282299735973500120123055379676790212200034603008866841942246367845448669944086127215634193707312140578144148583685644547185958835117886913036755755291478611530410736201258073013939455217482688421955794000134230268379174675945515076185021272089472765547699109844595798291491643390412274882748194832151025547880785095789903927762061474134876763021549957740669044042272918088517361910693044969556755499191059531703121973784492730605698523807998944679158509338759034835114517621809632635234750652272951685624122364609969763594297077490122923017981735971111519336547916506712835600766769958456002593791027079360166278497911127879407148696627782227204200957738458156710931531242936455331057909952182299873019989475966229630685713953482823690210363576905943073835427366937954092677521490666389491254663910045967328637180934875207264830553003064203726876629158343238714953222527823041566964303262061827028757682808703357811086825260401546077439310833366769927562318100625762362341725177850559605368484718994297775540580756253305099510694528537888876039554990589740230647444842567805001217540934075073384404893100858782985648895213893369939283518098640780535546956825318537265323409343478268515107440448898927270487306127030917484102145253394116058428327226402131151456461477167726341018744613789656993570887789779937712339785665719338333011439604320123337601449948668382303179054263271672992985831026788927200107568037229193087724772931199818837341570970103341067228505625362094922853163543631393339731535008367331716762204700662892350002961806967521825556457858338411724244406083957866640454171437386730620266258117280225518474589393418725187082545597139017388237573780897080666771526800294476077154936726806951251005713080533167656573938404613827055460261094681902308556742814467219396304864181432162973940438602547704642394551976921489586890048374752003010272223708732276573632905872400298862198900826265862019550812883718250072209441656285544052625632655669163125929419558244965469786664562824360492792247305330224730097599000029294850751483944375106788785242062750985711872443393029410416362649917488271955614507185367931876843844012331876515744353466058183644518776679627416212984122400726370341265056281063172202443740766189059217871904249068974585701468141801813297923811457555372047294945135036036891912174300524968992639953596132492528365224691444697158145002435195554166162154904275776036708981788025095737485915446923536346906895487016101977363911915691596431809039886595095116797540949094818099252184688814046179174549558989986807375078341128244406655770183139778006233266577248527489811860183709973978812143272877418874202770578810657751482986405543350356051506971308421879358602172508660870107808321725432575808793885027704255774460990192611983481537676278808102352441716581694744695981224763150186960324184343300097606421667099600565216060431540596269627321665441061108689723684860630184687223009983204618107805136152461438258360547447099060724369126831391734424772975213248542144216713651347109992279386500143514886773258871973231586556579976286177855552781217466915256652449732732191663533501557099512976573850180952155452151100892502765959379382117496818617796321808959465314465108976136036401014947514117132636877489208384162338971048525085222393598797747057613619898817083144080548586706704343018755066831843897065455299320786062863201761291666383672189178395412282200976740651077517151416558377592845572742064160964826923309960091044955806105023922689100075669014827220729830519653101025273362877121488070639088279147184515819885887632569218670347864003816870520299602004882091707848059235908805017441192677887695080140746948416688923064304228893726699850513011899846857148653841126879653896013407358255950610476110735037101398946690394290333782392155126875802838648458135624952499776720402829243454170659942884846820811281089472426771076453213679485749461455021867431125854333150595606723915647854572566704256264649420872404685033099132428111784708642421904385480291917127775417614809364836905346773106737628911965647600209757432526366084575875399776615591233936987432653516155771344330806371963166472764147166177570868791530228591744927917082418294960767334315067748064382095116167061360191054290823195411616816099668000645703235924726373562352898600179945823053043422007118499095112191628886585165551789583954076738608429456157696594929267502725003955461579414775380566323062405841147311422768071209554269498267312950164853026363909369164506872767986743896278352612492222515338662824445694015884875636748147137905218145295185650271585039378961825893281594882585154121785572220489525686662640932044211713957245411585359709516254336297044772442468471271506937899568200819297010600824339691572835103613666059140573114080198484056201894581701530004122082683909223573668197805709668023522900396478149752881591295243286835116451685388439345152981946410169927486544049419387345235480582474655901772266385223841709214847951817245975891852723272541398096031905675889225076477873190524071255737309391824679845284042988726078288474349198075220132123701090597487839766457577409675212173864937359745443640280843531875393772607755425309729069835654805051203879989589885952784445959697755774657868882454196899201460670221864688196777354602732885431986379029278950092283290477005009788811926992431396614099753791055314227305515585587793370794703734039704284703594833859987648948608587302011930548645911975738905419694276037277541622788202444375932059757117401198310728016427082267767845562549890868577872389335420291671197652330737368832540052241407955982456185614817014307792801489429754622265168144114499502789910537550379321689792896497193942001635581800585903077506329013242609824453741271545550128161500138868718885587766076949233485298832346518137400942685395417769704848025825114186914387363462671133515341099860634035756401032151964812469992715045165868828109402103395041734754120740832266637554865204612958901097145380647610453626270687293546842505921992190998889736900986890693480228869825929726507388444191377641553197079972332985637406150348060115687727550143912883088286142668495350943352947753044347020455455494503029591823354322756944686281540518201421787398225263645233707801728031369800628329680478368256767651786358903933626856456654716861438803142677817173017528775237179706165544734601689830919679703664905770289798606946112924051720257446128953704323306948768576570378382440093171380825494211594783255862559783981223022528784656308013010519619237617171486131888999867596975889116730855216193896367649829143699760557354668322487977887959436434711002945274020829077524168873056263899899069148636706452855220263803878165454483105588204572851521975724743003392993147774126356359619105739430686569608256414718389150256139624003348119768409982962322433685525083507196972974813052945631012986000445310451383359720233268690662175992601483186706696657702270350289006970669762276134048098643276222081494841078544957383786175989573123474414369980761775930460462311227673180106558417487745979495362988913590555048947549939379901635173940761215757382820226677981036067566581169232177933533584754322154189027080952800992835415448750763695516513515778090101324331995808857233379603585696111638489705399193700567799407651785988733710330015044773831323378505536704986469367076891768985523968279406574776158397806977461340339381359950996308481517397693112645304297416233191520369171978865545060956578681833771386431498200180810261013080481264585172906098207299573509183920197291913409781915199198373665589149815519207313966334121291525990400317247196555236114661777362460297050286481671898429192681661642561481611464611774775559365810016564441042628490497142402171436117815576354838930938736096963869943794387974411107145214931637639033072559582739946276906072788949122259794543198826580172811006633760075170601683367318548072118415473911023400322453747594534170024822644449230267374492765502090129224465306016551385026585552885338977949205813022216676913796915804466177780457440505587178191372985153676477917478657198829756420902074068907115943896686129045353159394641189855469687752194593827269624059847595208089300866790075303707300147734914277300378358163902039653945577959512583755537930739501140934231952041932230408382571239167115355335444981406770767837672554875529817282732187044422563749806616387496358468706705821079838059428774843284097022610358617617659577197849460292768586594630727626094137806463692103910691009989669011118757203149054390865977325131472019689700881609000544443470989950641654924539081969347182276272492450200054403793662073214402905423378598250149097274928385416595563247805867978899498497296913348267548584150215882026093913797851814622944628509849189582408177516485306901446778333907831295106764313305444242815494777079896088520506586234804990884536236663960326717497894160202169906304921057859825616878704057865378308975075396044205282018110479686140452394162368499871607618367559079314192187921092677486867503802652475948517778568555908428871175876884437340974515413399362664160071958196706238580890843507758928173726196743749956594531613634097308258301193081959352073331114376656212310029740332372144546337880039772188960573216188849309518956534381917590876897955542435321442003359132282376214410627726227750654682833872361249612869826728181356551814280799903271521089085484942687745331745998936819062356509702520095032202436565567018930268533408795007856945367596907033282085649857513584457120753983353264200937951692913320321599413422849864128388791622932239813715625615593659821326174152487652638861956310006790778290907696287382972077404092442262732557838013119030865028596404359666635190041902894693069141620627376279640495414687090783225936518881240762928710147969697768754436852723280200259240146256324050341467281728632550669720276466574602261626001838086283884494457529861603185593122374152006166093677571197941628964989691763260701882389529114331418907673442600208204987815415985222098829269331642983099718406296419940143761865215851763763936677829423364602151251731580109005154487965156271321811523196237982846809983275627974464393753046313586079606842809210988324090374461644258891791321236229461574801089404290284066147777972581815426071030663566329354738727436486442524184559843638891566198126975623776506504583166066902888118362403553826928769753667920069742063094021474566104626604540042354200348461873083252594621673199368199022009442166175661118975641743153715354122392955716892322747007917065291384231436055526527417626361468935609351054950662331928732139005453811173327344670814219942391490124601472664436094130239800396881088455059572688474519115041280296158536973142806066724086213320780244624844404226223580266814231418186238297144930213756579630805047581232629631817723412355887827893392209516766876612341447056805269587734421643414728538611290231784191768995766361156137022943343742427526161277725155571434521678603919515914683164612959953880868097504626262079377566447840421002002374631044917246750034499796438316836729662002806251454132246828467163284796246292958657529172884927275135275109160547175730648418767357339227170600130380996601812642300966876409256189446330622967111795451887806592702361738572848987689244913530849588446370507467753702684520314240905642978557327654625407475846335494249061927848870056456800450140528800937035618066137659687466394179504864442317583073289270527551165940989648059266262449558075779836907528349553900596604654772056386586098231639677984874440018074405486496593648037285690079332005312420063238781866625041042852276525118734186711866690633857052145369951825885314615581195652333755047456760334275004056113786999192291793886248249745084284282926792099463993795604764429112403426526001933415952018040552735802717788110387387882520331964233193339923784800955239203584349564662004709396063545014970748591618531851866509260111583094051431104662315732430760051872805056466274712696187051899862961881093476014111012199104356235129133621690706859149394685416342574455921956808008713977180653530452371801619179512263757135105493845117114962787668807783056276301403098389719675780935505715431413267275754649263986354720499162487225459243892729645419758440906174514949220115964522786185125265108384049585634377441642176710314909021806114906443949883852240792505330891034975252917739494740118947632134238892349161095298738813931053905328013032669348731221095785210785181803012002985954703197713698456561294067792993032324293441764997978680916332864583625387406959902877622006697198365481803157069690341203937432954689879063338577021609802874834822634068804192527763006653677146283647628874985611975687066400760858503169205048180065881014356072342630648102243612773543135728346852521353518463335197080042419173008464748672724108040440250621900725258041988311334843026561358890948208813121785339928491379063414606270383224983904183980868565449346009045739725946200729296390420867371660566358608664734645932314093848812686239934489054439870007658787183894033041276705101544445034355572968851921723205013167145784790621400857429070447185002985178392108700979008611044468082486513036865361202311825982571027513246143829901264388966733741360845579885207631237058652652098980198885493856638374023921560317916853348865880969780675073804152270733025547851293487737088143197356833863000888223554016801751606778658482010999338092001332265793572842001658446528750897384133787774666518427710185834848128349649315765298016551832196718931590204731339735525369302380693735283983133156667297385574433099945107927621020712891786285406455900071029231086103697415140882822500895298514305603169386099317216344336437444304653875281066850164791401004104908604621401107734671916173945583484678495457845389168378846261673579601040280418664278518996754010955988187630983324696245177567099196987925511268799553855393462690743143150755984564017474026503597100888300276748978761521635277099479905721969429705324992458177095183893736463754962268727854036334405935564655280723992621183468110470437179921370407134442826860799088613205167338928455232497727058428391039047639761900065303054600313029831524398827864887602096707584651629447545867486040742396181962720273740108183910617623540479357822507078898285035814364087778598897830941595740974028008524009462689220549740516718513834896668611525198029648611745955340276906513535402556348880134999239907847034656116144539195126372103741800504146464289878698396011149575323166614534956685326535062673453625521999288306997678721619145642800537799708207631023269331944662826063253910298464617737196463772795689404954847927798934314379313407589230088085812493319804968716009415633342333923354953382978191673060457377793113672244730720760504794167074669759563160479653840769786566760362778660155165250348906900142694476868275107340053908241903575077805885785845601112656356863249990955466492132645977013173684914752907520793956548362350894374290129944104564737754023869340024788288432643606775730548222831200524315993441579012163276022094584538453263492018987180584048088547037527764239243222818411691813292156636683791560003459511776536173294302689547531946997081566994652944742014037010386991167844419544759851395355389745388543910595803115950631058484785150499143683431886418272890173198158888222593861190061194439222344188243710151461722017541299338046804062641876374948916009930303861858223230619755336715689152430845550495663994807773012231981577162758211192077097318995841521393702744095472659032950480235682998326201825771123406447601873974529015682616699390461765640189315511620299528743316296115771085945291839072230988873033202282941003330549225586280852726411639014145358451227072430561149763049874599869845313125532332019070161529938759967780612382500600317791478974914892006030273778950100413450204578905819834731302015605192553520165160443010683651810279262292726701167823488006601457324092152782604236979645873366644085190536320869007569111747264628997584390501793239845768371957965820173699584108618400532527558183566102338415567086987786878075919855431878890105674901435605314591494756863090863559214564409927511098916869869817482795974213962343678163778225281374999973037284220149929207499030785797618306338465415768531664462034091560776152089407479307749765316245175300755393505583839233598371129618360904825229939906153445483053844303869212100071957454318419509950981766492602280457428503071788687032153521968207984605999384895671103109714625500308455378367971157383056320959396105310074217124188492492688154776376672392986987750336104622229382594463353464375435816989429927219464157027070545352389422034468642957216846776769608578989465303133700934629083631670418438700063048103133832181025233690396005763835391644992204593909090201718066462003942859888326932058387924079355755519620361561583195908933408982759007264495071376053798129652394804147886772449860350936962760008280132481120137807022387726337551147032812902023378166327554210356484568750461911155172785302793894690154484273138206181372600279137838254695528120023419626135290576030595817177195058437689449913113287599587205416076219825039817717778173324722215580587914073496083206047638080648227473690002968009391855801993233922885651085990004623104275684382440611418463477545815912288502556965893259444958582201116348943608640935402765833081241172383363447297392741751534220126229847638757383062593876853511841103385753934125929998239409529084897716147188021120348490185108785460333616344907946369336160253310825329852080468225076434548280188391406510949839609105740969117287916468857115068940889095101217403186605710483517332365170989730128377688276164300904200671787175336898204836836617465279259071676312767278816485226420602249052479805877129991213167092550369934350018969813583131526080926754826727017622474784983419598912999257875085430354178912022822627083649980404432256647458499623453471867904713606873014015032476356104054260352963594229813154066644059211769571217381627751493139101140895411583043652964573465223869964311145645912892127134239396763450758306122908439907808194472649885516704897605798348438039492721232256067724178812528523606314974711370111738536672985682407131040895295413597734437050548615529188771900667160650349873851950787226324365257915832050759979926629379297410435370741958045887011537702130401837762575755943552615743105645832755461754543263118238011811704303493692110813053962722716751599851135691823611985943790459690694320447751910862344398549453432512110093007290442663619985178482462119542513395709944440269460331685072746802236107001003947165806542690259148972463665709347181001745998457258053409377721689490125441163779246549633086783019840044400703534344622691563331437635875779918161853695080635634285808979071552190517169434178142869914630482295537781229423704994746208310250939639075270962106206713308229402972459199116769397636266503181309930706520406087045593112759280620356185638146971067884556062852383409303805141694644448207756018301613892435263045844522520202425202793172797613755276687610853575069294245097957929758732288582027246470815691584555422274413157892477959909041444546275814185817171391756468452363832156164539161483630837954643193179526502440077646873419755709259831318116531369805729398577055615411426450791386306259426384933395215629380872748783378288176630521338931768226294852572373258351920697141962181987603541121643537393946048386566061317962245348583515383447172636965736414288442349671392293816087809198284259445849451267021565100929998979273432420085204602289826757151617959041789552303039233766669769897454296273108849945437633303781807921862164266987323300364515174051935792967859372544987426403762453679467712164801738096980287851745839469287708429980440852180786555187474321750835641305268663013221218728227049753847487304045811128071609221714928003857316524052252832604608831524847232824655405143834195694427919942002035140418704518940446982125172131266243873125126193963402804943244814144340160428988616975791157902007398191643924310487294033024710318594361079036122831835869579039269272964301647563344110594184036986099982964441054113771283210519492328311923163184917605867886697279346037920821065169326403352547183038245905752053048849036457918827286442984857154473311158796538107034850718465758366889071304033375747954535030443682496271079904828673126276864289240051879585118509610691021686900045652636460450513208214824377702064070413193391016313701954096066745930005349148553200045847048140934951992729783369018586003411366250395892936564210774388943364148186765048055171750508313975754599035579413784116833921842655052158412692422074783622266442121260404688794780870793955959920111680830643556788095028930438637512302199048141871983344419535814650686829589346594014057752115240567534355040469242527762151832209857557327085878652198496911121240179974318618880095637014928718451379650434553493710238599041308021019619545029241305283484484668658911091734605043717654435341047454258636685071962225877784238672831342293703806718156265584244695104809791726334604507723159924755477515720095968899520584633150904478275951026732588647602519505098852982726609159534968391832999722472298949501244112099165446719445641329407956663638945046368170068707595042878229606099214430063357765266261524455046927675262828974408350246627989226423830410034087687629561534434188871808627719389837362177410160174764666531019905869270137929402337102142557613586661820998135214310734846409078716336912258059032200417086923477914935701980849689317489229672028831128983374330934758990109942310951339503691099587751008719697680645164246203437254194389484030929836479868430688288562431161336881095435527581412416759447963864439904401896918257097185704314338554279277016861731937357944333071826065465123686400729668949080726552045003607287983008740806681305550884750559588044119383825639038343824637617312550689362751864008894838592237631336419097129121833664505986608029091637368752156148847414337947345745962557180380254020280255600761836681364203184451899545239322151261520326639785954253833208763138578978676705782146752196437368616990812686289433821153935644594148757738449610600116283641078625615987060763439766989084286213493200601482911085716846115087588739001636502073606719351875617565926243323098979229408797404762959173622732850628910694275823414824832746094602488655451517419674810686496205187295506409049029929967654197573197031982505193613600304904083224266508208617465818819034266439899929415204309876979334307094876836404177484830582244931606435984969026404162530449856432888058789963894865063866498128548864198675320357794829953241401339677973164938464068340596636018608812496873517800469790341383224667810006850201546278642462336471678217251184464863015549258681372286572585985148593577134994333540200562766468234058696264013795243691794369504191792595364121782340047520652239738296389367740928263455900305834939049335042585033029323039035524812613588271744515955890852095529560260216076543352593834707007956369838347753499393312676747242344736910031301330105446336735799332851475630188482528938118906937311446143717447587276716536862787851764325264861511065237815552083404747575283243880916805720823448982167768988818222857174803418364590103825066058104602656804193020007719829890510120210045491879618948050059554138589752061226950524539796025364507008426571925745139886109213861204323553935444225449501993301080272404695987624198845141114474172996484940407577248817133555648585079172559190644236531548791558124623586081728606478125512106288091441729131883345335735543233461877376493147148153206893235647311302364217322302763399839990986626183170759487091276669536600775096998640608325065500622668094206168190722489685477930196000409596063200460820453753036252675992421593400929338469864304762621912447772412415853409823470387052600025890385653196082264329344733586233363158033615914989899364786641060226286644357185702380432205288695910594689825616143527094359402058777358325576818765251629248954599338806103451893237828148820004424151512131632336890583628966585830052741947859642357682860713146611734505492849840848493911505374691191514462784180059027212926764226466045552412404631738283349477091830026223843977640036839471001698035024639631448977846657059509593554841782429288823641547562779225513457676891487982138760877060926362739445202788754231720970880186819250232825678616513437746485287385316174238936114450382756766656647631921024441629854220538541896663451287921517367364898032780463790233654885085939721746858222381786796085018588041590570219764177269407179787175081587011026787931623043532697934516697042701203421243962047422263699998359269785791751155283769633508034561587140240581470058742827324896500593201678656914679929069114307266201205888965330310172579439798395851019077981501211703269346439229956569721482214838166170675147935594954948743534758204533801516609591731880331498401848645219157153706414575995285343439682850084249524454838183010918899413957569117438037525154975797564850078687268999660255345249143139019739639847451801324177760760524460672024807383462012338686182062195550663160016573121506982426723817396216729110071058494356867118019005482194397544145008143346234153774655758915636904483714039850580234147658952324891752977116019865620491200603936695918929614307871443313811383690152629055762882488217815840371681032684192056628818503363614012758632045615447732551877418145187546487883269054290667437766926247349365423272612505873652147486289697966220845182579796306852966188544043754459789955125630925096851679764431801094427580922560861951847625538862572951976466405195219187791254798523522679132958417633945139896861559323959666433982264325386061083729185668422212412304353592131142254311815044849392205567876176716172563404623159690990101154176700183890658088987723510645013442399639932172127567234157157799419840470211424040653346346171769934159599989510522850770841791787256010611417071817367084123321553546289226916950707554723683302977881946248384701234253046897582405941281744101294321712814633426476968917996450752713620436380862681711527511214364931349129868459593145046699872778936519069803398765714627878575616196718224140143051753559233054157767606524984254587530788071872756914375886808254515859249841314838868763149896726405108693445763999964115355860012781774233477645836861751105112080059784340738487738695553770240469667342227276446892343025021858977422749326638815814002453203143679322796999707687525043005025642813101307703114660775746113014869078202970548689606951793263757093754714816888002101184923094034368251991700469205705290059363256624641616813181880343547266829279824888629237625821367229584822621765429854001734020859460369252477740774208789345494403070931811352032075889913624232447623811785316736543278939267311790483286210968814422558686492325205289327421565288754149781666623812492869627448860146982602150257948328786456365716565849094764821111368391029574835871578058848852237708802820078036026615505256221709809488091593767105701055451770875859050063034160625958673152932547164721210672109939144639473933174718968028159636402575936357216082580285807925475381101762435429183574668223937708758422318153016614106209072339956767958121271253237442045537856524265782022714834941434455221866321384023163362518011839663910894774357863344209557498383404097244818285888852688370031081714793651490861052104932196177049789624308202730464613995493526480310444801309553168067095768753527762415307630964029317375090033625908714687983728504028561427288811422811788394513697662843036122701981692745613248795869520256104909577500545658934554639331120536855313818392436577217146605058440811421763591805264741901798673017931504301655459306143342994936178937354957504126535826420007634376909169579207662869690202102360851481723876595456641136495463395360870517391849415498598743375185772141148591244067031982287576138762726196843567984434302837344101956966611355064268242121405353073442618306678298872845833296248471143434653122981837518645494764948339363506272928834915791740679569138131893599826774876622987435687188677057805373850150321077964348514162145884096248970947746643104557746187090163793805352214609080352170619608654299126485272534680559727328268723138340472535844603443553251655026528177333756519696180175619733907796289024485593435184542696190680887825863739769577556633328313946306866637365836895041723077711512480491974907357747502321885167213568280508770993829603446072535850735152277735230281890584038535422670102119406154514827520186190813687301552070326236313622084551601255149414264401556488459096390686867241350123942617548215522093907333979531582995298416020728407477707397500748786364246910419949871901087673798735182516152023092476346687482171686623874972070677793718572494351628422137923165041786132689836703143717779098854805393436642471898230843971264146199691823634342877098036517034373389187865279551451309066324287508310249827580379567994667084374108793359437611318136436146609240830970594344867410068027948577353051770513411354866256362899254920305907884433223317054571691557937393221954898903713001056856604116676901819752367729436437113251694514342541386524909763346998942893375774675610624509315653859571457084063571412773155959055070526499744876274470514705730729875167842971739245603166004206626151244746070324489697360190267023535390675497467592199964132168194522104509069384672195487779878480940642896768914813352484542774581618876443469651713825777286994848950322685681624125051661129023424370429459310886162068958060892189796568135641391185593921042866448476441360300950248358233628375706693886140451659197598745577638584976504421926392816089402253124393104036782810839570206496852204997966335296761164082691893443537872166430324857492327444319354740693591256124478985873412301929943993177672813731176525179750528883872768039050048268718804673234784180277924628385209704658018148518336429751896330827294345569304039688597684254392850619950577731479629935082080069188320362096323995155390755298124383221432492914131772679426205979697205159595202465706618938572896484869125116744934968656943434352278972794004566556829605489305416309840618937342162039089266355493953984370248297148483791798739947018788951434887024703483214749136649938259705444169772528220153470114039801389495313771686947153390230916148522954502527376210231745604635706094357575200438156300030377965088898565290384374808394760251939375158964178428177213883750898587909100760423604722519160637343013403843976479558375460823327728472789655893072805550249804673658043832378530962040326945838253484473534796610425654692977263064150745918869047739426937838378168695432710799597180538573817200213345312364385490443972416174691494256059779029573159996952309996750166934975085795451968185147353342973934730661964864273016713395192101257003770197973200485845971458398985078315473887102778197395805592292330087608514889157739091293328560249986416798365706412996288273226262340191283581872627362500877323295976110919304784468609264917258302355917894359831929656712473745881051603630707677319515941702378946237116520032578355667887896681783534052087922751376726150620181582633291518321359834978040351728549754631062975891814967456641309446163875161848014652175411664114124734901381325853237751069022820631495284937062761061556661925751501359718660525531470591310473936568805360309934500079331271575865045107454555402479815500147888664598171582686140228243942719580225456627558686165878082834855988776176335723080067213484443864354004087198271768376550702513094773941602802065037491092405225623853320892555528692822597544875901497545737985425116001491060166761350195920200617633073604857660765263510915859349579990119877800110569257709572155424047702055230925140528811758199900447364518858380655024095908020288254266506133813083858762511240486112554738465539250770664747721022911212758310949729862962686300681469413848864101160011204493823092265952009886712382708871616214609368666031328665287871249629690049563720211480373668009379246793626327894362567477519407899697458583772475951603147990776552832905956682022082386921971205326707211774545501536452414661059569946316372306623681959621083163595339808497694171068703678847621200973677956084768066316394027166664317795565336179617492649359976149529780668771807870935805718935741947827542784826385700072618973915759355398320504946093426946272612824896046388431222230135864647521739697102649900846860852580587824058880605085236587274215014057574819584337048013950805087347090800294577158960004439581312142484941812294533636574574321376234348884663138943134055331442527969034022407811392613613893370468352436845431399092540063180552995276503880944238436056156472862797411180050292311853560973983963118984716018243563228257768677806685575702291416646710980730465505164831187788016289237925080820403172547233755654763607576534353392059540764695063821357659848566636417005625157824406976199772322880516351820350310677617533021496591095370423429150528505834912478676714018335405669157651606607555053648593067219149856624041607108747322253232321604129233990120234537403637497565238078743713961223928861129110647921140798133516378434620389391862364729664624238768763528149097386356738133888274138960343684305735701878534548566407164690666569550933395926532703110567047132301173494683464464615757675527260547089368630069712425887218462729779678800564208247537259004363074273541376464879407510398138454194351441323578746978807241098552605084963490388253857186279415625965286080292247915211826621835133177191396174544718049158592453342989549830563624850406434680162853243183570527993221532967929153859436583022000057145015685983732049521435193705225102942954558684133200353436436985687599743936508150394984135477245788794257927394409917296650478382569153922702633803122421853969280463946439694060164167654150031506455321806055457634705169308319026238641845874048366287159974198275100733053785401075014493706040203502794556163677738645858420640865949566629674345910303799631206613326111859775529595802056478531288171916901817542602068643248316789027760175507649449210435311384115345415837108820071429993910108022214564096732262971845328506266885764472456923382047972936773841648021923130726217183781476067861736107742890976694479356083841778006598847814639459665184560941906519704439900378547473980581409922662068619891665305335769833101335374168609862382520339660559247838253288086982843652792002894979095274129193080760028774170015922001094014897781206110637894768210338664814662198376379433038632254437259989849554878299586170410537624772795088088563133726203397978044589488618357102094990153162487496381026455555817288475745880335246609587583414243279232576831766823807564857585255119960720065375990295534524778660768154345987031088381319456163069552543306915764015192877841830322363345045282767506935955746560994642785743747738141992221754030743174139979491230610528908148208812458481093215042208175390098828584459587587582116322438930652530390226216927682302926337796680738490268668228238553624953693560433154594816739816585242621454674667462059566735504214026802713935080114988766704843526887718269045593475953366105185541379067058979142923914830445354305956161610100054222712518865993668686023818067690072335663122747803791991938573421037688102135773421292277202324680556226532678012461703156744161055431514129681154997618514274463558604072021641630573707191721417068354667715638149955901780728311707623238176226580716066319975798609694945771216121600425605026432307866602863496987521304777152986721130580652986634220493946686415626787493295394935787029376300535023054777006119710471450537197214116289279571413460448482007432602014347200333813869346007189830039449323891994060434860164647748679537069169450149338232477754747772028636124709440131572983071238506775418350405886736542422292758368232427776755474185052800625581300085924682520290213864523420067270755130976730596796365932568777713732441648981801012771531167533386179206929051966174550543750728398361362874332990322038397455120814868127958714785614859930080339336183128911807862373404288642752752620313977917597237007475209410954296324349869625807000036205691965466928070328187407645145533380408605659758833817941497404019821630214845587542922779049616719219449595322906789130539805422265298836110484519593676494426825634768237762091075243167893155252084578945196086537639108005222632156843633178149971156159449781077631017915929317590259775685224347922304030403008036055093781394370092172691715219849754836219244283899583346310031422299375504612126066349499646263889754368720788212317451269759321325214088668952697426181312495535118492328709191380107724778007981357316199839984971529984456250745099284024054918665697382765908386418513982132266792361703990334671865878279823626346734381583369937758350822263534970666978428565666510052568708939309306566967081874944616637594090152302756222114471974478816774520848218776240629929642883851826723441421629842219049085404602348732635288922080152929051027480036149808829740758013003720799915087400178491609015085029869802362706767786521409584682194710141502661997780737553150685809958829396395651021799981415881363466161208889044760647410676002328433941218861295329748185290965147384730615194751797558787748951928004432134332634856659058003721274252058421560202259399101628131866768373885166789750416384484468436758402901443835465894009983483239555292115365672943157868903414983527652150135289095578150895313826650589113659234608163358114549485730431139478844126629844142764416208092957934645367636725211903162360803472797806624901808795689412687335888275221548384766079688007775882110693668575145933041878429409636474631200072328494847603232015652761844933200193092021277972983362058823957634274728419883027495329910753348647215827828309850229999033858856765921455596027734160006367624631036297335629392728894975856039171540999771195724932031555104293768602636092716143261266855238213871793332837888342527907119609434224323129228426270544685983148658458692646567135561098503671776153455837100605546817586310223085315642599377725981225454000917279522566469720357434810435209743503599875716277888758396041422827337753779651106413845295733085076991914541018475330827476259439453668686414769178112096457939250721779915059276091587571050603345856041039680416430960334209100312056496052895560638603961338900000922341876434993212346764633701542807488991528281878026685272042877557607686602442966919528945092770339585318049742220071463366955065796603119801014868955663799760666382936451595517710606387861992449720440274713549755222950035859585978701790760833802948460487505781650336726041342679798886235129644510639613886476855528837084276301621678091088051567109986101841241523003738799098951839326209030863432641457641812727971350565913316327564990035624346982550704844662205441428121599950746265694066118150180554749014600925511555584575281246094779862697146275903795536709399098099355480457313075831190838455923058525110685272549833870254365804463953937634974037995136731962939571461621857053432709534772790815364165044787236358675789781224695967270402549619706298649177588724818230645039937594248482351435510519112119122943236878577853053029169972535284305997746998417215947713536220703018518076249071857307293409123863042009558850249153776698510573473248330863128337160231680387770091374754845287329889790014263283914462995487146404198394132340296518497216340343266116220766945239544116948527388670519186808101382065304464881194361675203764203335637715872310411008038552521388962994520964882991231950711839701686009842747663039441333204290583804772294111709712252153572858863708967027629312662401305664332058529107933279689719833386634593323671572332782768697834742303958522643720339129609287063386887809621299658235879843443890219845250401305048922046495660763786983191357264856523992569496224888235809851807719720243419841525321750006103564451381418068805992846010080552063030344984533570813565280561412861994135024117022572782514615764513494948883491855460557176327233094312244300114431647157997087050916111834918618126979455751605383307238918760081786690718436303125287111015394113611551156581226670238393992743509108939028984776179458061519025187200646033965564045300059131059798993845206310071270775996963065395188440473846448721644900782005698899074479948089821042007488893152910794963796827109830700851769489080419313019735766244368960533445023788112021491120751226856849451493894035098679684397407245922276248520369790105707988635727263816596946940996856226507105086132774924874871841710306045504018606866675495173323628617983283960282643348668079938634636399402039509150548856946975837242589621667364144100504111178438115445977506877162513163478416708722328785575435810866785360835833737352830220931052262640860826613621470742713898155162574061026799976871293477759338754696713300065397572313144209013851117575341546751809761509250273350052890554508848347363090049605846516099355094422415897752240352067786239876293231190863128104965711400433869708608507358021317612508023707422884235524696757013747055739889633884373002912058307595502115314182405573549273922077134527077640080015490348008137610663077277241124051156722402316095215741913529758828462524357340955983406024966600197024590408164922881700652763182585715224953057212887802047348488365942498284156199121749194632174382108645079727598171344649478219079323527154809586034762418913551113428725368364839251924213754774905920746315752685918015902059898127926212829045145470087256721699521451400675337137005047808945920653639609515842650323070771106675071780209524316641522004415902295732207547748489257441382729785242962390591350566323738305860015518745474465390364542626091156339429119116049430045677943418499349575838869539779903797807761193434229259956478736660087213757636124968015069178778921656564900588435477411818531770653401939105561107178885379186734856591401877822401376056878828067220308887954752995673397260605731599552042632974660395243676166258889012273735275836382695092014880130756639196043392458810570608495565649711235655007871570313592331409018862877197804558202962038462498553644842743745764365305662614179235940516134681663263696953401778136165721928345669822421253801053017034867241959835706767917813546435557557403642721842730194675259329327876768483131832255476100760190787136448518351423477322012175755730186419070236278260198979478864487187395406215838814481457614289174245738517850207776217775476037496610192657327592893977654601873934816174507641477515136048572835669210209563991848886044050535317340204486063889760382063988082884998711167348583925026949792971769283761440943808545810588815757446864218107231283433876371776948793261374833840759213040296820317159225744605636320018520013584560097905282883174715990805094086006398830800815069351030005568910761159316718877857895275406367811727712588154594273974144636867693954488541167952481471133439883661179675970845235637140846484448671049131185667547473158082637798072707131941735783418741982656040823350655700216680532142069150640278509189279096381214521424677619040974755645536808378728366667467852412670847163310826997066339218321161187634331076786952193913660487819564995678041090234595905062164587766593189348243896707266635326482563998051756587184996651384254802357422238024415699777070432297131276904145498960683136909631814594369710395384651432859965050733362439232573429022566071297202006431500310933804254598048207992264896889147129414065222133596457417033757727824279018028066929652104566977210205870227469730622890377005637865763245284861517113785043427948721425066189366952472030394819413555033112708446350231016724723694764588381506950674862962524148291112435382899701769358547975098205560854047081653635698675001795663159023339809326197887415607334648064942962951394808689187837789895492629530326990514208893792193237082793156073231895306037273949398394644853142700651944362610799276004471378551974023775678584491318479888615774861931603123815943496309979170663388372656860505781929624459328068590776880821759529200128299254487319519054535489708315606168294366150842312514334777577351849654206668509445717502989986512869418916192018159489035899239148283752372020784841248222962383136302830637741661575008674347463651322325194974583821689664609933244408647750543239655805418676154716332705529035832895596924758589902415708276899514465877766015097738863123565068207373911457318338578369278176928832888696023584642448579898853054765736961188518664551473972928776576398519803833842246321367352283247675920868792890344567437088412398913660200702932261146014213831163069862300681800831176199479732170529268034324295709326587302883905834559492974326092805916786485744417446325797553202000996662834532063712879342736026194805971063213207549276270170607296240117122865897477474587667540527019079341546225885194430380653885301965614619175504725662510798072128788026042489497105617244664529642281197091391188783664522450598394821574917118670736467185259812202317145814568966800801889111666648527228434281631168777214990312653495925863582161058348781886443602135177583902738126768314188789011806790757504282514636442814797814928599382975448391165343537097067702877519693833267838325779871858348333283421240934988671310623813625372223111832393267334097248181176867137542914328173214474439485260517044830443804099685390259292221870629625238398129533160459316324377300000733305980158983336214877806612260387398328400520850740995056377551673592296283980984474753136630562241439821443874821362648095995106430251174314170926430291763870384535851069397927629427164128256357707109433490044244976034304276580880719472990252017805572792758984529160334847982967341720971982261467949054751045061653523536378616660819942519994337625948871079133197297802854440263927471223265360939514818953037592068172043524974059425413151468336229896188733241338308717487220010633243646670681981087210005719040100154501893833585108176442111917480753460211258550422849306325744178292102557605979784503245173340870032702959648107648830310665051539541844033214939520497225757473137832238823833364899898711209594568255427646206891549197454996244697257045708235445576726699839376793061221211434118883229710121203078641925047038786748498693257571942205992742465691881298967791618697750865033859355435991928726287720056338310611972857905886965165380843053730648393903551484005517719772335677476782764900202082822489744020879737124894562009815440172817454454899300653623519213357284716753155692490588855804208712509647693750317863611295048265488437953152333203362439450483294416546533431011462399749944486581831431030922722850741857318854206469272411935867943833924122881710974890699623129979701869980994185223475678604071947737989236904070684660480272650071499286353269599298202456297009964067415409612290258543595562166806699259692961921611930125764028783369199357797264548624016060683376050975740251335578384423919614776588592148315363283856556455208302322263099990443234821428400839741242915237750354092200718079420576633172727868253118972061488035712120603100450298652575213992973848579869717268289276850966140302912734251920263551109614351049036065370594001933113132636853307773337055491939074030713382818277630515444249005625045427262370627994116422924927524227705686074372712741743464237730496527607722869140865770832435548496825265876641096857352091016065803830619728511003641878512781027865483391827247258130630295945182531470597590444719459549483091510950085561148507473532370806355713727587020833421148823270670685738145849981800807967875959505293149413100017182910820654874215460951101942180543258326108850054708579800289740099587269328479927776527486294736662724411518416584839648134601552409970707729629554566353139346009351081615809322321620600658807410156508774648785983832721956814758766123485704587199763844272299767550149070901495608801341039585531456914457641607961848000644956151240207400100601156777523296987294730351770339769782044880410076786781524523575363372980579832337901603053586253682850111127057151922281477012673132453271679714757139918120197527100236092028175636332062556361765761534527055980967916083921353571425015820970450248294738785213062831175984251514420494542309469702981650654700795346629958537172378450027695352954895210772778089568719894213063624551134649251945632865661906890923940940172594169881731078443873667783214679422153349876670152780488227973354696577038191343715317165084722548923015734139647582789984323014274239291904325837378964286328995791753413915973905480797541774037548678923218833708087072162283520619440280005530488665463642733313061040081832153569466381410892556283096012011215410795775486734541059479074659966578704664239486320923953225693818174444957065109215070486922191249563146179343549223152782458164208408391166624018410742031681687165206056752606607196937888355483372019329876154891026457395656102758151573299284597103626208802257606004197331090431408671637200243526374999580227041416828700250838196613372653121994380782562547355075274135943264363086256313477807913996160566894460413742441279131723080291747268986471486824220335938088601864677912034274557448431913672143670150662030549120789133997172390300319177771840801672597212283148097162102179629324852190751524840317875627614366517221464174255345887682466783232196513381556742827792458580328416721884631264414600566673238952737163967399680912287360909359468029122863108088712156932291164210878491086651465703988174219875874030317776625244455297066102155955606495413664994730489473446823795141501269506527662821144733162085269994786645794609981406325297062841908428589406093071189282257410066231055075359917313334262861093302287967806340978625457883137761995769278034794165279651589755610146345381602721857850977033859556788446378085558986597968246216298062296839209657147901496038322155416087416395397505354973148476259546174915191243051605412647847978466295797864404267675459393279386524573392568156152162389816663298253427248637635359146732524249620135011479730586014617699443188676045371960216792643989010654948131903712895050689832010025841463290671406824099841747894161720076141863037484142964401293863151181386343080026129389491066391461659692449406151738338941147376310926921628439869980084044341897439373386906986681993919545582181616775472490077809254642561422657457827427659597823571249864220537059044121343109327441843674693008157686811779143790650646881903702829792897597256180366792158648170033820980629671490376695872071407914289188439665818191891223438748567334906031562243533854589171657200129238817049151204948936797563153219382766154532328066544682332860257313244726605556723239084828118393345362138811254221722215853806847353309568525721805606053429991089029867548549438058066182842627246679087000377385816756428643000417371302849592951723561711851141565943156456807174456548020934346519732461348715947912393569396700029230345936277103499886234624772235524366165169544366651610615855662830579164424293011864376154507134745033890891211965957385788308839542826092992665100391087226533909222088417589647681047090303158526986912570781239927791706452974514405880248808613341849183352516949485854901673339803088330932668536499627895009990027180442381036766060491552450834920518248830581305053979658309990432212706780654917285132824250072730682960160913134637631161170743411629074499490726843328871658758878449332332656711202765564548341885847274465395419404349391228986057507880724715417439974078781804275435693197446663249362917642743748377220367853898074043274548908619429182951663479826592851107225579965370340711065496321874914668934998874206984205821375998708270787081643711665298518090101741599179822081376268343964505255955181127210454446574337320901039453827137553102220528206227549715317211046606214963316351734433920447810390950472154861106602656134188318985502056615436061240300471849916461101846106015753596280210765797949754248834069951790121644850420826932854768134471201864497596222535966055938447904110298757961374484580998304065660540435229931517945867861685554312352066316161991992645489679030769016762356191106161808679318627987915028443329888223034603658347181375990393494728582990585055442318114437240163236361236801184258837061480372285087527302700425228855610057214598156527419345139318621447163048761646260764652097003197775287860570663268250988656376009782347574632438589716803667932538732776215276658534368026656957389096574612688677733302521000629875932605496738031770513569211902703226011878762362351214166936938260289060040192935674902448429136403193163702338481155611737087709410711367817482658131460989681537965698334866392222584214179255056238439631097076666412396617023235110970385199869661195642262777785777367888350205120946119310432001825021043871709346703091335805281414800523121296234499614474493858059241378444045283917943227380207111854189963520243371921601289661018490147586287638991999667420526404998602149965392401953328363923887425845536639106613832128522545569388989487491103403368826716229224883057341427148990785339940564542127234520000461116668340589658509683646260255350708545093256311647401887769665031290918493421847990663384641504942492728854017951249088418310200904513616629616900455236040340961678140962955992554393282795372209953287238732765841288265064257859874713923639967829465167196213350656840342546580504832964998706354595317921168893350148683053334066693001378173561436215085636725200854933734387195063140801706612815208043709849029393653179317725795995539331884311088907911756974337197279007326281248290884102546328363284663059054661147963215393064255542719223552732396874501363119007157957889451179492090989398605969723104657032417570695984529298316394062135114175483602611330929596458979575788022071609698410530644526634930029905243932756218873359231849131454041505927873213211643456266175220584938668183909862846550057670177530584186914255977597458457419112529628236452420147695293369293960604943163462135488665744176825341598109579606612166785323575226821754273255332620319344832544910850158740322433634705622203763421668000100549191899428770015499509710515182770136918479265770793068256968898526066796370805636580344399625373751962673371435592937062446180332953362643354655116735832602165159026234236471199780916431765653718431007888931630334503577856460123795956204597621865120856478313709963541486881643242208332230585959250324640642772541381129710913138539688534775263452768701087564118562554829636211610073551499519470725169141517683178406595613402507695527541000263168259460907559626455392461016915330568438780244285452361987273032089727717375179343164693131485158874129240399867780388230976993492470206456270870707991084613995221054911015864446980906231277596526898974326439104246567754340958395658062599745701422223405630079782426347465960804365773390711457581367708019430624365025679317651288127073768185999254522197819269569166305499617437792420288181660289503089166498650145259627898392010120215388029339228641098474065062812396282955244010003265621761731505315829362715045715155799836451331022851333698060193763859343132981747660869568894461066711564706129882409970326866547924679461090862613541627730329806894009038682923533507288643443820428714983900576128447647730931631274947433036189725632684333049489631660803975893840107512228680530793727250226761432657954785449959849029319330632039498148236019299808813059853981182033318336246549239344694346059617411670369813598943079542842872545383534019826504692070481506475680494469094757897634951834763023701506015255732045260189940695138168769619009171703972987986513679197448510391120400728033278723378868677477224135239230340234827495803106115496559508105511424893042352421586844909425659410017284966890531646061300773033957347905043551469013159683862104421699698026916579975093749006836016785312793259765141514206794805661349047263465032345060994426679666726500210009595360137066371896623953206263261233996997211244266868367974206073357462464703709612989725441071752984567115737100056162760832075403908691908449256687500571300368831091056143031820460982591367667268271469388509914343973043410987624890276423865066731823664596893499405338872584508447923387310265826403779510619387054080290146171169975382414790148804774525985682400583501365274826378968252973805259741594416329687164506361177372214236747987403657462008917477560450225768996582335024106156149146295947754861905965575964949179778212920141246077339090117568929321325273046621702422363369626484220232717954537048914402013418652555158558329086981797528820538385821298458268948232534103852344671909758004723038052882575237939780463080026428862010817119478027891353821769648445689059299306130313089415065637895818750621189664779015460194642415231367741745610708558773272250771057273840025987393197249841815941781694821854557872504002316787631879507109373053607085868023676880153553364100136882671739963982590259729870211285373027314913425782830727109289308931308237032120933432248873570519148879403218726805752029751795314348849755710517248584759153788521799204977072341864441581089582410558480434814225648702740294434578487606556778519939347439516267016287959574396648436448134067373117423998332817281385215353168720815560894897103501272046104005938162381299268071711741399771813968427213791706889628829334339957558878796644322780776595748303339897852222853009703691877499878974318985393768746148145305355651511346059262418117760817463028122764293917887448399821831333246038155946258971773875103784433368489025144478198991188069156784605117620056360157611571540610602121044039851897739263964549429997215325881933527336349789659101691561145306516912119607121561548537096225026220933487803461824001947504745698098358328301566618880665973316525724919493904422918330054652702039205834382861556477719706388957590822054008639578001966683485808946761003421474008766245482272198165321786441048473790750977937628250563202840642251393665422682403036535404674875931828956915450255090331283733555886281963791665857995052039679811114672478976428276139382925779581615236125607364899902538775263930725320104374364887722377368576896283756850129209452432462718141454315351159831708627399881294270826291650982210568056313174438611687111593957683446616593065056766846158042695026832722836766146316296884527862273637269072489787765612331566471560633253059646441094792892507571054313994606244881038471655153547896778189045782290356277531345432494362573507586042852506347430736839049721238383093666423676154263259452018097116743161816694772140327472366698260489353703363848805816984748555257627803285165050412911368976555929668582551348881892490978695423158526234116988199211518277358159412966098242120829580955300174444234691709441856740233285999961465095553699610731393785296957099913265772333245119852773344835191457115023705612579310223635431269364518095852054552704670577452745857208300233791836144450587055276002707597791345221172058088699554333014987771726361411974078179421471196022867442659519155053881216760299651776154395942531353335819227112807343189407615174635431514430231238540637817526798972030169565356792449703814963612217129241177853812720941074252029993886727453945835927442007740567890903092392236489011282687471644343929824036952953654787727251745872213206836025802852849096728279959037690497094259873653032420020480680630757626875403511798685996233196283252864557282515882030594487187069231399859464370508118292837768645445601732513919934306212290460389423379298302017774687334161497388121542120227763714082124069846523833344563886448368872935240321709759010813592896882913311519588959979823511181265995541526978946917828550163988592639086355903250738698526062917803339398967813397038876539512385418289695499099680148511913396413405953586054386611792609836230396805315858176719670099694387980981594080691803550808043279508455810222247796908654355262344446468327935175848213110626160715650469879931798711415573755739103689547938688382588773181569344567072678737284304095594743249491053016907290262300646098890574739320258997715391121023230722604064602740325125478153225912233118596058493399567117266945198743691428118845534022198551090374559137730559335823370674448193931879869834188404574450383645339964600163754941745658921679784256346116958385063183652896547370309140432755031648984945627977335818148800263427343380914438729551303104175639760049918537460896696796333960321085095393997768374487041537943089379708814209896417510531590236890985284034984822297293801105436747194295016922132877074151575327655391030784827837424566952333330447001146632681229048937768814899444160932402036301300140030061895411651514459473328048502642940740502525546311406526044114536832024536665198003187794367525516958669227358378085354421862344200407243221487163687484901138566742949760207313510979983661371695558659948889236548198800188551887206697383305094113891141810868190232207776800608824035473358916736758635533219611496589973135035609003515845255096042269350257433845537023322143477653735181759944339138163645869813540884571153503987092570338131136545288794834487744822161028853924994237292621687659720797294104677413634912337055466858246871250835626673672026105679460843928471288786700436936047482988700694893195004807382014246724541037435019012360070982708221492648573348601241350968159624440593118038436656217364898454549192214537067492460064766196678716636250684435896092944088834220378235506911131837282900293070397272786828235293847322696874945863921844060084471058795214603894346947023265955009224362765067783013561425635052948914741312882549915473575870274948051759296871339610394953110941989586056734739521359440965685063064154802208403740799249752104276621932905582745216579774802596614255582621732333804385375264572543483411208034756797909205214431938996922914932130004945755280039579755653204546495430459939025720590393463760171598777340170435390690443864059861147399747752931213423847833153849236012898245574244627121334680592682572450453735599295595219671875032490867120571072025664898196169939479481353939072349163209799272647232804304495009573758078887244420990134044038952451396530805860649128905815702824829285101928983776430484104966954461042876446914322125370700478874834633610995317701194630777092557946911470979344420609131206645661468566764866321851075237675117543703471545004558944664984246193989396296892196243785480233220951933278572592451112479556689242426172530453405491167292401341976297470279346818442094576977845548337642294332365367467268860993802652500421905181678242492677402737504832738320901754075876880262940264183462603791258439892217579062716063138424985449734396316184890484339960821265444907909174166219297842914577492677828365020699678257338344943686286006541143182910698923321244691346647939599331742757898970743882530150664347476253660999540594793457563950784842029351084510462267632081983751382329835728592921958839093719472790543027209591417955904398952279646565061835227699818808923474989687511970445708119453894530971177084682430026745815079584041088375226252905964534904814934769236493727841296708168163140910640578352925886968476939912920165469747644240916258467052382202466918882095991011568599909192014315247748975371424055364642961413389090576044192087253818742159133133434291951054428068506204594659872968150870988224594950200459910288020680749194982455528656657904875966460221527483812795498370332913292294996230900888454477557813659310159727260589342908255935329702207072690982056384071263776127671383616652424961911713179156997092228760574448590143227559311515062874174044260573679177974511439774745538165737690199991400011659139682987509406477860572346061946412359906561864755029993107844456220030718331655719147104887657690170082368297077200350518851229375072683934687912023812811521412193163369412267257454480374457773908581458150204898184531909613963997662506743998429372266799532750895125205210664245925968941075658395613455768941664733347404418651487557927413595348843607929429159448922828203102887700074903834393560124328859756640268097612482229775425156245227064990696177023762071608380645803287795070067949862391781983719665013956915500169617356728563416621619071294350055454401645161527740988728607314125217261179499531284611824755118538291057245966368249254380473252729150829800616051712873279904197403928493615754356184961124903753351155808458271323765942761861029141066671627291242249211298452030439194020357491724116592756694278856398679904383403738942188338507299576157046537979858128865708803379316295523029195139450998021178500108750334985461118176587161405838214626568829036506890449885191012674434815411475338561378962756303097001047234669074674541782591614029446479069677389387519542100570808164997868476088420149299297051230944515665410142151597546684097450537233731496903351360622517734279358144739749701142886764489264028273801353284360637244560597721301848805494861231437937612038874529331267383381560338239824399247548960801716127914453355179898419576447614968262601258683021593263581548006582280016941462343563474404843497609583007356578210794851493554085223959323111617875161908644901672030468674792023664376836871850566051668559696233406384421815722462726571778498559693530364949988386513286037908754942746164778984049860322838979202350367603935794009459590051866131093907713341768519311920345179141709781746189710110955742196538621572749591616130612952685075804150142804032481483301335063822382478625260581105777175478986437005923406127472909362360063009435986628251691872072174045064906712021219229918269498791299191704972167465304622247758113737350349339305314758146346451486097695161351328395740907443769197312638051049048173379775210453381732998478244614274022165216755077528503313916959480480156093474747072493969312563712992403021004073717480398225713804487601654345013478950033050286680463955531391271154454464832177051550582686318734819233629301987949551314911340762900442826959472620489148951005646355242500281402464033643833834517011260199117086471796499135649495969598714811128683563181868170173679633365890893006042566526728600648875029731076147475488106248804659549327977535065015013524549119518445769170649460959963205956762452271483174257673038698996543284549291590299928953407599249909958552590215978184921845061135891221612183495939768312079057950028621715064557997278037117387466003806559737958144138352937203311258377159584328520760733943772396133960119561594475565849626725896852378031476063732106897211634536581941072247508866563599126228403718637318942250239285529343906060020947263890270900936705584987161192477870269944756986394738068694552997584675142904703265486573716649336555330871526858613655834913229918481928805248682059912155489955100326509111027312619741649666115335004985662705263294633663745088508351906503045875873028310059506297934960885920684776769898167204051817240279583874205614387650395552917819139543528991494138366080252940712319773619210805345087095945002528265002768936361082137510882986782643207470344286126080271809369515710683233438220710679468548175034409862632103840628541118514685163478104888092424717194330316325734718142512586801733516434742045025648255906337612831322666026274978405373429647584460177389649578626022176988074120103508979443278447159232477897957786010926348065573765822784471781586780449702480124289760853758966656376754746632584054552937534011176086939251782040254512101872817814888968971783977814369138609636364743481402931504851608256193689463432831289749903243494500207761191432375672919049151681229177464590608237122146961885981298752813820163370190784281730840798197897588833581169498378940719162786715433518268777283368050056287331708743035399182409227179090420711553712337636118013779644911069858071003936923784917017007022547788714686572518401498848728775541392508437049579487332499577974829015726695825922302714235510465952070247144076288887156709504792296485045849348210825776589599567766289396017325938619096446747212483993115891404794916748033135046114524810911810754910540253556408954201765224042928507209078609357652326267776732348362586148163045869802146666183186925337905973932833027797558846680920828873747631183876270613418673529372746632125669611099147936876943342055468733839798459070970994240604522328064736331174765842544468441418333305103659281779707647392759792954773504657952316008116735374804055320090190985797914530962422372720190827775411805111412910562180495020239979900466086816474586776148885438965688911714653476609561593782722949773537109478612271079548932255633204742188598458792783176384226396575670813464928545671111380535690628029328520191516699845407042206436504979985236332971787638140611784525948911378361443533780848123597547622292879887687278026014889058013834861396308120762198655457506327536240576323377797587388180302286364751866133329247374545106086327286388647202252651419642033525094048632231974339228512595932028191451873352191101284352624107576185394597187503870107965507693084725428445538466860259347759119562285815811644082114722008398259716596415258701980937481019625442766941312345086874257183839502810322361132458220222068681874853364481180186577432754255323452673240197618297659047690271694740066341354661170590715880610348035775550201361379707977811864238401591733983060454859110700997035741795452035546148829969936950499374013777089245130063491634499439684515733950456948464408898333816841006087395545674667752579759823526713983515566496148531791540286855305916982211108476521525810798025262351082974229739319049202539392475165352809841972920423006382931730985756054461565771934952761519220174329343868937204739361475420877866596359749761102785657516281820024360299420598652471172472418074728060395356331941524364216921099859317073259402873715209954762845987755369180244386349447975565822342511356597770025859861956320173696677816997730878982456056644558797070928348381419084197388159819909037973345699438284095347212850726346388711515270779440517738071796141201676221686616985177935643584210864766199991111755598127737846827879597686092567719503607350807997825339335625368730729597638948125897801261547779195126242445351923838169370763731010482790942136360969097684227140911909083731206197098324295213081068643216820758929770438331417623717633840765340211625484320175793767758633616902017360944885806648920888446900138111406259561021975273122076269984317458002125132055905123744303821223312239364409627744034357072119955036169722761102483247242329132694334698470384565872719338897249028693122495456829548361006402575129328191443689011037876191705309985877264343587029589083659104918770636431037514778129710582751076965114614832649401048727218520156402161128908911797056628007202959934537001213568874361816697152465982410474298724882922649165497092196417971093667261976626213528426160393250243907325845114894711691075335492023368750703109632890623985115574881155327408822823328666070984242318825969138018290980838180267509137410635552343283973964377274544292002097625509713927179481354201087752130306982431211408004352243610425037106091296727861806583421390746259851705802342063902993400858329705610429627223440193445009698819838602933653847734666097529254148734932323338470035063394289234330270367832675358725081494359131703042240544778852135942408332789228856021501524741264140144884876458923303990774482663531858347768790728664689285597221908033988547793372014899195541085307637828385524180019537947336434168210010974086287280669392788682292961027095997741198778825029314641223564217491091807555616125688389433916343045754254018381491209057258582958535282824767992721555891807698949328797866520235984727696535954823969579098059002723762213556712370391462517665420483719501457933836584928003634146911542580784846121486170242258089835264923583298971454387239811359271489025625952441442645427076857359274281403298185958963588530042004649587760814196394631447578773682406688489471303361080007848989906855260863747807576611686381321749182540226730169851540853709171696285859296363107303757701670578496816654098986714459174446112708558524311588364334077989415638091422793498285231542867626790579704543556517789854963741057707551264205720094196499718510912173922928722981207063563948461333650235526513914477758464904054014489093651265253164293850554549986224715029010418957543817175714377611115785358285837597811193878370520650751713692480065433802830086355963821585786255002109760257488502718854166558807645084355121073951042747556010634031130187682463609647702916181059718500590892165240289415433950749010208526466532276200107979598384169432278074782305215982583769776110809926313380711999823087117144852603429930699177795158731530234161598269725892044401924213397574525705978146917059133741760129682432440222397811516354371663305631763941319523445687340490026894067223565843620000897989415512475580931212042908033047352019155584522797483173578645890894353981142328139813041668053292721869985807171612701380389711159636649548752663730736706333440876671144327911399192940364515615279699202517622158502829064591663204999947694550992027397188857410071419693604847138763282262020286934559170788030042863107130845791967113928636124516873097352936695240569153074502118355464258656727807782877376237658508913829190436261404539568922026614873470515302263035556892358306124506618517463159101858249368675609975757237100976967619328234955588699594029929985499743152045302710170467361345350010452877097262384608829834000777146132051120034882997143270107263452394199814669216266209332947599684837657249653735344993749643201585958442742838413552250551061111968837170848952969396422523488212409443712520856269008980015687675767485559445259579165848106947007190437998035822684049435281232622819766277024000525379660712902289466156255937700002489828227288895088553517744989596405878600161563955032447806754633806372520781061216116940914655942063120944023947856788021409748650369918664091522751477081843294621778854938204488240236818775157888276053673784234915121127417807365212714410590785658508012289177463832151592254550471578092678733173964246657283521149250671159433280633930225689673129574329771888166206388178552838392260579168593575770031358562775443981179945610327307765539577056070904868312732546533306548633842546265706401281858640482015132670330541206986280762935721170176258205382596365595525039209900790095884724806946604160899258372786438571796892562264600028137895878914847221840955893404854630935193230125148558811382464813483992119340807016639428302532298637729476667635180115229059689976139140946041590138058831578081254099312138760423065222860599154661427808441097164696192620655165425349313145043624531902089903492301486514194657086034232339092947012141728566545160404693580314633147745188652105920993521300465442098259012378924743408439463807767551010700100596497902423061789190796668389987786245100807127106942113598874275212925168486097285621462822716330571610339674354064932202553457979884794514980851468449121670217690513757847286177294298871013180547069595018694591354122709130962539317515948075582219094956994214857494040255610713970209145580150700256779293214312832832394251571718764313190841914958888417340586079832577114915248183924858848790399041653682899388423737913470742109890432081613500096243266690293175047603577033069595386153878442865528564270679104264130517728248108942724459797555757691777766238257416732565193970570734011394459663394733071262331257076485853730055048983686216350760043474354664176739652945869106792711154697454429414453602225636592133640956209918076020211106419475069364150383498606457098248983911984845572013191961598078338435835660636793178290041103330062125376989584650115987840332103115544555945253935592612466514882331731097520238332303456591390565172246216678098964914433974181652995224639620294577525997746486865135093541876861499234306565698287118906269365551734587666269713355967683398635320223788355135629548976469368552499462016846931282782661880275195819410250595111046192978304576547728758377347364708703962255864851954684013166220820116393665429928321978249705609369188890138246302455717674214015612924902206749925850346702301824941039121990631702167694582397068693842138297807557661240340961718508981762891168064062759834743865794017844816707250182257238849737453911065464781651778632336376657521319527322947750002871948433854197182530628003577593288325777945940182111553305528286271365113914519348325815122697749809575484961850932101234036150445587313529015601597404470259675968723048224474114203328589948460937974316049802128821390567740942516894832665033294436410522409457946293910397722877742755324982597084793063002907119578864271989340508179937303976527877860957943394382947771770727062634614676187213129552140655078550430336587341225636313635832022775444854526239788648442466699439923420579390300960460095563362664954502147873597863442324738626240311647944335241964042454881676110961976732804935588499361243789867567159813859250729492501660433925060176479292413821486717534766577165326097364324071499007755204210338251814969913838243652828031234949408456689054167082162298292788722485286188690637341715268708818998018001596056452528395829328884746289966479612602926293958209185789790746898341677821245680165516363955734078033009456251884796466886489845675189482535036081340862422776376348967437941084554011346312272906059793767695251152719282396048696699051435224810289039670663720968635879665500691636980757548985587968516859571366671447199043975475382076252829084659984077978142846522653358726680771523971438536824218519505238437193208143930009019768840677192884217179973494789103621995763880761980767719643860033776075283921125305825267859460515937547644061453759287601341677401199404066321529206227297778824198642638808164201794455492871378799756780332590391837082225451100818087094932882399078544533723354327736252196777280155998852646590880918448511628642866649987271956303855664625931221700942919979869063238666472689821469646093208471173761173159522993176251470346668734039095762642325021902136827557538275706857213771040024626359842511865283883126439385193859706824707771291379890934492457935174475338930289659224157311249529206931253842796645071548894533993136710744646977984589042491692354237787246324381501056108395535889222542395816245389726371318027289083455609509687165234582997174393353730906143759359444621796651971277298278575504227196548659061401544260876798144313423699925789619888060985882995854885351400335126222714872648792346881797702490525588120199463072755948236845216265245459708396949072725464881181535574946007443582360787963863344243562179520741187795523202323686956061248287790259687190947060802044153407879524338101554299244030200370067227321140068976068791596355997775499014034558878690777132149931273009539938999621425104646204285962529615424468291777795906049844995980183069881753112831243054058699758031027975575231516002113592236199101753468080869849343289246800445277379012521451212657434368743424164293678816217594999523660496257452743044980251854967148436015362295398316984783815792083371239118069010845440559087476308282629283180028457633067665292218791151607727273111787373645688034149867656205264351469098242679058200583890533273235147208835712068699180704440334421052489891038686560359024612549574584984230917454495790962578974589339678364526046642309649116358911274935787723221729936269622914833814856171092057065590749455967723234170284932094256132008611621601805774509756855454987254300686172924421115328374642521514307911718799078001758120387527256674755060688494534382898528030815375652237186170516025904426593039649422025275752616730255986865113434949369897111973543794297601561356038281875511132679108843780164738080974761010997151990526375720664732150745775299339121645267347553739795641102265718898401190011527475955336851029913125956459058165948147857619919091330650958612682596678941073985472641015513909006553112220437839864357277631622800594048030457276678926455872554056104397754042859471712205103455308813726901512016708639416064890497991986379547202588830354049047327087672742970893716936727956238645474444110571036255920268602035909603150423774780189026357772863729886916964680602134871182574193886466869466981943521544048387573878710070219187337794036612047720767913334206903577868132984196882177730597051519945367964041867426783287609109204957864250791661351938619553338155612019049088134338539801095428909902719623778111594310272838905118641643598285908661540563862875356823304929298251133749149964355419338384824531751043138525808673396380439178724067554421576636361979269644599329821949967127760284685993228337162397794712217331845819387165928658798778731576973740938229244325886817688602284057132091009686229122433071834584841347413291542621489254577131754294138873753140482039559833394092754823358264203867971580127865503407477811338750953012391229311874380585839267996042128284491142065233590181434789304726944387456699352737045318333344171292222093701212728578046293496954746591725211571963338177005452917728624483127511205847423718357140006914827345512390193986785196380137114434680603780539577301447897660214854242721481563611742119232125014340285311419523724260281363393593105047062602291550642515603027577670283663316232891826185623771576578778187021216743941968968605016772500328455093799395634873765864698941219149976839337098527480600220937794712634752222342573508967228141755581056340146006575303804698796541435628819325945923547436676771686279222559688617196161927526577809664579576186594545211014385794240483653414931292764145144693667401311815900468843243805274189026030779912698287895337756185319255723000009393377536322015691007686078443852412841860177069773893200838713200480167492884988024880826121923869996698162537814188050165442843317582525371143121002098281077430862531808426562556025259818328196471511413222573103853986810881031250603434670124048556339718606751038341540807822342263488058539169427923827430086740016205302187815176796059818333903756634928097196181304176800195273299437267455342015471796743547756214132235174333580572433609825754204313588211882289863619708358696832086406029258642541158444074385775451593612054319346089948027773978628808941981111861692155738172973098324304590084589368390678428560012881235414886789218736375116115979504700496901878821402331217861830780383028718236451827741593926695606063949211162429627378241662284717383724284803996613637939452076132026437277211007839605293881159067763019511571353659654518911810352203979898581005966766806873810810526478714134714151092479974999322641766618777168288936791373862055850154030711084388920425201012920673995214627295469943259964667131677507960590927042911987382392452434734112255215400674187605499841158448781937693366548515153480692507884472299127029702276725527522963184280054096974648308928615815427298459354438746733666743274944037653148366112287804363883947819649799940590947077722954371867110306448174367839669445088401137232513887416630809299110620181892845856533705879855318076024537921202833431576096751740677449512001268806404778489538420379897758609418151955518717788317722128224836298531010334158011547784013598503233093648453437965358086214536724816148989569124976181022887117838152451888513489877371575917575927836418347517807049246323725243509038157854080204287182460676510838448065847635135708270079363985472733303946818925985636538876039992175431443454613408427509094693581620450852230535105878431460780620930204370265439900282149122768360043319585078211070695547779533018120529207499531455818825722222080424756248062393016861066194921005077125363453381880691421376032091828135278296769032129093925960073259756582028683331749414081291835747296195297583771774923153295491919858635970407780785951128879586322086150172486592130997302081323746379942927994707677859373138962052686245072818141609222917522124406244187047015029392598959489407241232620201888523740814003132825079925180321457301407684886949152476311226279343689063795558653448398019938066205000543292509867103317014180478787204611512347148286114332353636868292089475150962710975245828398967364745231203357658641932260540135852618578003408833786227961061003888740696261661490732896741322150709815044311469179624872678922532288891147847272866384604041652347871020849505178525733953962378038112172457802630344991737153152521969399572712581801601317108733332058209728636358428961295412582428458996108871713311598291199666618575694718354768218195736680692549772089467072997644234699144619726627698637732129634943673285075671368043451075532734923429543414491088511963031462359801469179230895098556348216994494783764918170612251557962146727816017368383475657687552151338874407003045064240081328253126582055821989761632911341152889898906999097702935958746206959721519454700832540537703504220914674088787164006892756244242132987089831784232650699285182425628849180791191511562653305367639705783858891954273680881231268144136560381247163380309053803267769956477380712419424554692681109896778049729511118986342933630235652990214726200488925883628083112049431443719025621834579385171638354508929295882689437833474596821413832827302470430589560497265832331004978677037025395549026403947113163686383921086880788375322016123104674000507727046100299580425069528634768411990575636871050987220819220673072092271656115172071761518810822887106335466560125320708521597348910775852405678803441421776950812030028332742801347488261407333748757849153238695007134804919136409174576123338724967159353720735263507084438473440803638041583713404464333967743852634131588314750674208757773884627269206641008570827288428803479651502987159427545945854017969770751930244596558481181158140611497302014891743477841851975466217487476932503567587950013644571938215418603656635945575912209449233073762069562621703007288509348591429276275823366928414816056379150948575764046186227831468706128753819112455321417806212348603831443575459797230792381796666776762238734253279509922510739333181974422506289777551892947709677712816690465912946417996512146801883240478519805066292240581369534389322851590936239796689723645076583553742399302908417904284054315705684819006963615404961679398422472601456713783677123539631752019234876081575904789166568726894072187127327383889033604205940143671180920316181778419471290531142182458570170747031742886774424615410544342369598446114338159669345108099594671593593988980554383275250991093761361788327976501493007736544239257366463621114578715432165336795554923368046337336468056478894637348535874953846280111938269834404604540298549105778841222363262500358834868592003259333603964459923473353082524049945501042654297378396849074120458230663997622748362299556649184658315569777113775391030523553904379085113626950447928708993302064358762626597302449956349633299777153572265749938280202051414485913755633039931503879511072312368948262493857169690661074073665844897138366913450793260910143004592989702127560324000374364001159814679172508854351955482034477894702226348647904829601342213592402245373188142416834275622164688035935639385190676177588967589235509470010653557773355302956918330940003785572098307638575969111826099708641296146874994014036725845424984524204374442057036673247705064727726011706207429695949888410007177329252437133354122215593247925722316446365897159834229782366479382631275745574468555708305951579605656516309216754004638277006855126659406232071446941197093788036860966671444021015223498019196655947522809224146725630155360107251791827465200777659228204643550068469588084267463233351586226225776449396463048342585401194605834323059015399532107404536305412727633384611217665313376797273479883260599483413218492191145134225329045867405451169355016006410036179196296504600313512969113982391186465470036763801966407681233705729071517310153691017473826630924044672596508689320549930939411722417887458524079107064180905368213025513840222210121998299476230551559689530677020505541103246661957736433548261352779913989276600964291183165484363352445930933836314096051893653604037055094153626810216593316586263264441787381256421465087916992122337917721497064841139710623004153428013913711444135143470716336667228581637755311017759514445244054742774382980268579537523727370477550922981687083298223475289351055031851637382833388324084955191661662348987376944935544699415680797413339222018707621038668729081844986148401258414674838362754631793052413433571211760172363619183934903971196760549958564362531542264964387655655867232780919992221081528585744240702377481472359653626620164002408606682263175039805415256332117084453476204036189874649200498767805412176491434123370928868538436505353905161835145309986309911787263830756125137489708852320503327501158610662978848765406476415038445560590296263955525437425586954739567094574569623953586867307758309390221717709765826595221113395780877284896486762984666026388270324494811946922006800746474144479524425219207595769887958853081128057547928354010167121227123793942917194879594774761822585219354394089262186982358623692849289236452687803665550013410775132465818578911693748789526766946141260735481407719165058546170553303374404345999023458289335320101807687625847205552317982166187222132055037738979234129575195606478488290529642719618802016341765021510774655358888558254891037200812116517092004476956167306378566815354463487054439119396455316078895120180525907960847526515897554693667799582980994019564735271715358126852420003992442614376891229254549887367310436570964336716607709549336896919922934715432403920134947230437728592909651732499174515448316053305163060304060310659391391977475201216359683089150411897953973842143938565901571314410727684089401456226652933087710148071582419277052259123726758912128461911748357176636801461005660500430249743884425703904243371190913157898756505125060623104152224491406457890800376270327887306192644772375270032691278317951430009280428059696952756113751171956630294395202292684765141493512953749481096185416648051519542920190727408398743788780698550513558011420046192932529522422019020673138664623221267848773119383834607525835615933271202789155315078126017016993795449113793946764281958251417558495929020729967788578010327355946726309018033441621491929516212407007456693786818900401832102316459197239394199643926673834254049463517949645300162046324725394750971283261067763850688729136853667058729503133969200574887055256253493140872074300280828317403712464254216432204766926058614505096344108894689710872210552293794561759252707487394481598666463598326863062864074948771080674255820973447522843746903315096986502977221099114826846122636007820179307430599195813671460354296099709032514509355637543832946806258584859716015726043390628220862405355689265960163569437090372585873351042282189999455083864251604271582050625166697085465062743355364853163275171282468419657923607474674654668346205146131136326328494203362154286961354472698256754539771646268139478744716127824184717105938357098617399602612639743458957506108431763189326425365777146228860321610067818683711491342049499823473215111428900866046208571231173032952997705958397298845539234829195485998649384122554711099623052129990185143216842768054300640959155661415893591454172032600506923403544264373613392076421769988453151464855320837940366334651076517553263746311992160419082715382908101507807003062647621784775499687238205492765392614213003362015300931445435218290581638845369530039853906987443650387487726032549896057487328397691785613098160096775184787769814129660487070862966414609735962723481822090434289121456727170737081098975459693707599277964260547016626130069664417939473750359578073224853706059837117066601714718627451443222344932272082331179934255875306359652593894398291350894792492693773024389428474889342000053360774466416183901800282293569339426540747353151858370272259917431627551581307502897639771819896670817229943243183255827095204100860870837741567994744338023474623938673646207945843480376287115148904892696520985383524689613182847279192403349983751646514327267211245306361536796975551233431861319729937595250216257146703592460152237187557124815756693024679218717280183209482865646793525936635947666365750100983976757794824248931278899195516323229313705501177490696414433946064592367502972882331683564322967452185916912231840190979738198357357189152560648193110937717580633284582662741169802558343058753649428975537443414014009848760448990373573918099894548949225221989422442427150280087199617992270139677845888378529169061326728084842217125475937565447153079687190475263258706512621652531758310746128780161299094535668093436665098205600440305008741701649074571338095994665203356163199853794339965080701181718792536892703729386243657976444676176894946841175737189214223104732555835953604749419132230459266284372623971040146002247681313643505395630551372579920878775590851404412391771792652423629695043433380053898584751923110362883560180330692025105890172647610092722962301284312163966638346133380402937532574488849264877211585684413672886256027061702038378709348136490559460326951743371290946584417250403515163162855530476963661853928491237125216784644865009455168697754281189535433859958114349395096158897172005178815228167007773788072876517561140649497641833199133994839890469023611569885381035475810957027461029132929432125959680280874362450887997890863967372680302739952102518720997320065594249904645880630778807021709229758436879266556411850706401828195280740228340314997619239194464892823082547815946753530453245312295629105936039774982616386030015362485996020381203215747550171872353355494402115340318383735606330705232684472313083026216399476349175179548285695190940229173791663964485989403005778775762923248026146122333195060675351016334096516372993832463893030301837764978740841043910288300793334800971361924772469087872553267341295870712652761274744432269386255252517530556384097925140211707922284330998535570685294313419859578791243612450782131732941224628824823983204511606368584991570132681224207310710316685075309505525531207046897042911337235714485382775482845463842581204930896412559146985776027873706169828080936850872591226349426747309619374068501825793496753011323186606352180244212777169657691496108636396915055019692226116866918192422101028579666736079717246379400890597548494315091680355353801944919661990032192432085182615815185533016067781510281536277020862465368874330587752678276150300967127794396566858043580069572096533821093367845763021513300057849648129562954051141326020694163363558374975411772517791094885875006218346308146208840719693022652780145393798125822139855876178143114061473255524767394452937062943894286832061612547567095469137701104440911418588956830067562400010948978869081722721012997320569126658733161251111872149708383103527287448653653591777818603750821081319228478394220179931215047558747579252372063539895476772583252764589470520460506171791446822787387547067246058643759060435687101523140045964989032446599303260728309910746542333424564305282314887218566096621869827925357917150430506292516402713999117088981969050545657891511159479212855781006870591629787627246894613639746278544033309323852885949135568235511376180475528417442138218232741149781320778178558178682444606493656545760237405000922611477730130652410188181917429807198197736699033114382983388593153984691456851727752415488699269693113173946781090821358364488061594893391309284353993295684931568134340715839879204855171054268316259080475243448729337826424720252811234161295025398279235797061382798898347271935558718161082907405923112690238654342358423870177410260866311743937886217414225915143673178579435131032585763604484289927223234361215400248523057320599831364087754265858525669557715887172823009574891311582891380602028093474231846491637953136496763367052271027265197403046715462255768401590903050749698192560743093131782561094173794650400432816537723693127962243987525198120892026539932697441383550895228675075174712447687076354966868297533035726831618440641004088434257307285340203357642299632968275321292411708417425741361890578315586619039071549633064368946780949081058881585330420763938433287139979006385298569324352724516606654364315077696843685415645848019252791046308396656448215477713001132252802739343654948974461034097256129955788843275205773881524032136895808611626640381998200633738346668723668041469828151489363450203793583718198490577798011834498558310223524188680333124855619203727568101587330772644206505213622410665082496863415955024476581785867962412943881773361122326784896797790673985932280032057401141179719515986052692016503940035963291079254110366663040485681841851249984788277658918044486378447527572556748269247134172967541618586758321771879368027811419447792396038678023565672288108825984216605721309593756837859557552813401462355809156440592331617773813575799210384470825129279781734446369933842357899282912648580392810620667101300934222936789035393411128887878435869568040879363611422560062866998408818964268085069968487703416154438759405211763288160928441953701014704290425840006146793403615860155345174781615547344269204297842069406648293651659720841581331800550749594156394625779387139863605136120647343183429814531024410288610762019589066005446399692168563979470298160566587391964118171958852458662553191923588282237613993266006398188316113191361797493676058819518878857300911050754614600760571925739073376737599067934129362705592233263788542150163621204882002251342240406777888884986317300204692721071277850441746564353582130090569193452405038965040386118431721342795703733160649311350992652145091704021824904587785184184140001185302260775945459839318327094870373141111140531897738976764217584337594952234017103468953560778676590423065503041858467893476169279769081413821139416083209394724954370860122568056538225560103576742018781157834795741951305756012597528425081799217247386166914142980672335117031315329041249675636429772029077081076597995661942220466786286105654623411896811317039221059217011636530543431617198377238724499130342095023299305193561297274341263049512036371723486140795778634812072655975869374504003129857595907533444261943775654355263802359976878179952276353446876894277723014477280421980406271088975780941746754288869943310575218584143700123422308431792996918805298939721594815129607366055674305211950807201006686663418087065421092597521862042398641104898318245068996914742590196790313860408087945360561946405515243189444354910960794647195078836579201773527108692214146065031392873373307640808716261254545195717942843380239301155595294263509209238439941104157246498248255858051140439532567565128737869866110867242967798571670433616681548455090429154519645482581548765932423964289260435473723442363657646183871424293488641099569842312034058530188575855978801285185283317153850387812600002061351487842494523088171436565295370636588763272255225610984742038991005695595581943975761334950104836532567131765130503267591406935414183013586788579998267699196577885658709614048179522311502081522924540249519572885183177289775413012133434280037278940867958480219150413826949116725345229563677784334504310875926945268960956612502828928688164896034027991523245157646532760893574434618333173133524747581438781894255784529243979131916067859934693642738767932147657697229279758415390163146366205113928189093216752928471883468381164087301798442108923285242034082416662891823969528092278363442382605125807437266820332197837322566874462280485724197534297904948208050315167879624770550113462092428270297006282501486326619550026940635127295960264529450380296084558521052214891042508106542953317608036305080267019240159568009642376566326046788728357358697189823521068607368097711989047398013506547506663361964865273923834379950257016946612255506320157789641687777507184275930694569266434571713700103571480718221865598315601204730786911235622873250774857717011949888329630627242005024824749317493246163469174241786334998081763120273212935258747205681834318538669239453292945082484035750914822102702064601483698766729976657434049774137241957229623704016437588145818207752654234769026766412601967937125959463623289419104920513347711905044582578080200285813515666399681263045334364818347007393162639509617767700430157107162649045445059683007952868680678361897522969054723759276468354474155996108528228682353285077205898348521939244038746988695893011794340592972479190965652607624619387210638514060279217650844427748475847957311006687026158661054641206217170204462663800477950693652300443154931399856688742363362842082035840251574005124081764329319378205928025404837826602579539298820724577452278425600356368494136824944698015771098795379004400518245568846845159363100651481619634277376126788244490605921666223007388190976171391175581304721713381441507224867020881426674045040134245991767925111280154647265014699036381766537317364147547131762566584109383300663479252515014464079501807910916642651230398417499203711264835999197652491560716122218060382546161139752784924239597552332530931183990609608534821482636783167313189691720506683225689681802636593292575989910169593711053833468545813873892970103926433270887393802515506896678607491857823740933465941822763466382493578593575835196195217586189309407884530417591258974817731531581684684856695490053665582600686933389354060745223837835723266423785473046820245363913073638340238566262172198529841443602224940077875088058995872781389300731092412654347531420012834460216698411481867048485488031807155388882422225607456725658239852453480297767179128831115507382669669154937387931345679983881883365059512485396991424547684957443018923107385186444590911426318524714221409641077264408836282053798069969904832621022126702254234729041092843293677483889878284519557874105653658109441188773184481540366922905388555999074949415730341865524342473650808967090138957825387045674924356958217517597637592262214541221067262806861657671826371310080927165835393944834568115255854952714301455388459191560077350686912890911244983157270518253130532493562421304073604069892972590872521287833834606828136251157533208398673311204529562611680618034856072444168941291410778339783447132525741878127346635801289787931628160492601405388459552886731576210824902464102932681598434765289629448977764799482561359577527440938170175229278847568160271598904656401056662753373504047181697950298416226103974224691074512841291054464955687968168041633280094314145915921016097356680597645935542026736388165322324166257235051869246344748934966919691772287388551700728656177027088094603403471564637367195128077520714193030496151684014345027361618066061466098197325883261584499208657107149574697175041347363218221474773242528760779152615164387904970481389238973828924398230401319157983139521146206401178812781617600627277883418138892073325624391085073335802635953243624469229309247780818502898040628383966414876892429296777261535706443981302016892247682104855651472890220088307920382345211249941862804094414025203642995487151779279077961766862331893829829868525616681862920156944357915833664977325272009923209794629163337394047075552224560703587463358943610078968744300074517728293454910281160051981262882808245010025985405739221650035213444012504039072644079301621468589584267711213967303623666523200010783407076507955083782322876392167353919283951278391004720661682438322886401399699319028503455371900392933994107307153548379133321432293079919600635758612694796015046402813717042520452498565363538999569853496959596106090444502305915345832761947001114752710391278630617879301711453387669848810815009761494900769366505552582733331315318335591446427441818142244274318725833466553099074187377020139148513013706322621440806723250869332515642136957705497118208349096295504629544811517411903258418498822370273837760983258962643011066433108703395480669351600368988040583189545701912507199424026701248513460199845447002095510034977270091125524072526231247147218498286940748405311584254544846750397074559437645925299392222181877240328533597585625984335366469510236429115756271312617006440594328504320188482634146405335304932989120929174047382597043048233377931800123366521917576668966498041745643265506705740981724969243705772799530442090321398969380638939995445336634943842757460411070889008106315841885752361097829868064114228651693595148873785779051482563625664704005876604537024438081072647557776218697544103171852312197818569383426892629716928518866644309339094021919063571584978923537452688124155829382052974738803191094621810705287316323837472601061807952857234389982057753375267301651903135198628671989840190425649021288421979028459980568643283386251021609431947684506095540944771651561147181615007362985229812945950148532568547023094416848227142081440564164332302045479293551249761358955045045940629568093953431772681908328424056632885172374060475644048577949523551964048386315642267473642308262388175440473486399444007377399663140061310270870649806733261314705410637216393198204605214536046240816385896554220832915273099156883626690142017579970998910304712742890985084396969020396838496198776453573093828885242159420402727168536871666197187274605899512686002594082318955183999925453070026962949878317767095153049327334234730336482539692960672075661743125591521570382034284788224865932754567476234449474830075245809101715277196022222563077783383019130010451479744396679225431621793994134714704361003658763742600129877395889439290071322201797690779911320676927344606521714827414850783135376996871554862642848780241003141272909865114175103218529659175678670373440211279938547841309615961782960042445554461306556939447894151036323812115743728529060450745888724546558423033478195916407279088701814390874062154454267250069522894159111304538863385167568200561410127038838271501939605164066912650823788517324097285455207196222822433194250004291639054400807354180671871261330059108467142082450199913380390154144053666204460518459552760859269797172046594805444295792114584197997512197203415245445200828687168066076836405404636724494046781069310575433872703493366002746758607960332942328993426657872508153553116979309544198358192944071479375602184743787079588581843037974975054320747082561144485029387596522115640770414290208861479288732040235164881894078967975855912551998454373922807745712929837367044511056345894047652288103185200461303485879649640623401191638471864532462099522064209411078993559396254038245286095667271260214773882116082588730931390386273799995787255812362734260686430562306797456590194989017599648704334232918204255670637070825664853296692401219184320071518715703620501257911514002107093724594139942086337881075255198916504216747303835710190141630052011076250838656392822833411639903232797921005354231183349014142897399479641027318023346131263408210257964788858637832926844468819548205300130490604773780322404087677945047913174020105016933124051335855179009327745161630148698909585956330932860613064273740848365673391930189469674085049263212324562034716178830262841450351762099430016723921436691044076428882986105862180783484457961794697701050334470913520683729656432567240436416587058253147701555122296367747096242531193540486374296276274160138792921217102399217376338984629249854142353933319472647047927426248138729524101109754193566114351188272020384598511726029067605217143636087909243588676116683356862114124250312391563792569013952570521040815618833334566584871493768423867825545363017721245101539367050059511353117922680635630718511906741533261019209065579160101567469218453991693226349388090887054328751006350612956625796555467539100321731986547888248223641923799781685147883545926448106991417845053894780026237654377867766347532249928880005180517394956295241763488134467886451351912682985395785118596570593297568973202935390138230836503737488265786086188973383169988639762443464144107165594812204824103695278152232166391092691801008784605005781099029906179121187898890568570111645259519899599010215619120035917331820030880198498367376418649821726877788642506398338542303571436778918975867807277820646769113691023589049667392175585346457886405021156733764530386400432576288478617762791515715228957086673209595466460413210178120803991577821970054749465566656764714286173736574700497939291073320283029020596265280021735910278123448771599518509743244294416596576748355621334136083786839909512305192983133853734609018885973033830765714317626571133209735147567726341004438149617133288568409066478429082693574199082138934907177492758496789473371400371953165051010554142778020782719645082863522621245831678418512843162564548596575937754962136442750275433505745164220097491715445808053126954961271716939451530825620679152249719346869814890254980665245049056316881045218150323212331753335272964190339757265416716335343960197964915317510120100151542919921488494291343017981852363901316309158234964987016440057255401227321879100863840511051764109690105283377110834773181428792684263253362781323527166278514211088486700158246700881370348091838329283706288038204415272326790247938008743638641482011318395703514550636131691009393637945836798494313988763692723819776860316070505978109535223878497282474403526856695483615581394508460614559307456099362133964344097719151293859909072010000459049869783059629776521559839283294295612171474387346803222722024276628989676257023407510978382800268505487623362912512318341218380115213759596736142872841728234911135048993819232265960590514816583689514115634167179450463598050075789703794801821485734497158504588308838277751856220153444532888691498122884777718922902970653908747987466083546838346074782780507081111505350990867524045610456243062562793973342296524139326057357793975645655290289654535138569517008310135032226349132308535555344754747320833677898497734309526438527223755018734704533155222125658147623818160464761119170715493009641609981476123655407696933119233578158883362619762224037566867708979605635730520234272967226335661369334558891013195683819325374484763354269390007307813393806664744805696738229032392105031395404724141262440018516063100844734923807442435775379576728112022944311900816231126723073990409106223361414592448832974183010007324381665177644366161037990488099852001991661112933248441058464151572980073744360369799195956818191077635473470456424530744001758504776572834323079322244190887215147842837128942446878282381353538441995817015896772060436444448073450817134346163341524364721747734548232240521795808432327803178967569534896942972615954448090094309161596178668382360769548234896537118876803428813108537790235163578639772032436615782565327713101211215725316608959039375757494582765510674314671705742182577152616462890698429042829909286862694453414173656682991286212286222274633019607928122663207951799146628134945750948998402515573589455065598857308905997075150140762048294349555017250915241979708588783578589303775086356061613646087750047091576539431091146887339257346920256415854044378913182626692976861896578006296293308862763559963241174705533283348391194562135224158526577388378257267742405571871779776190781673256591052426421867038383045225134596663849903489990456583538705126378225460258235325827705576870569234761418756875077723376765434231556871145289954360873669609335690751293836980542385907757789212768302408115591062490445416419017599413895104582920085127682118859178996247030758880809982610432189585724839901088660107408466540448312075874321046857155156218165097455741539463773977579523431004638483195704476790364542498333933281486995212046479269788603334969120269643872357207467752945492045737078271417208127040540001003100061015913253277145086824978219077755258855055921713535081288238305263750312500782024685966583884361550595466276744945417452321670206033485112799902532140235792746838982480352120303151704236804034889030326922232002535011094698901979382371198637365488931392784674523530475619276814578307066488343270699347135216279903810425333960228252284384981738182112244054522997911273650616017744101374400473937540711928496252550761104288496442811719245663760878805707633427168859234698340926540340353270314091220782663710941071798735872947403458813538662401538701045787074516923010013949930964114467909897226627049389188011623493407693584072415344986126267261505199527976579724583138650448192379468159813884954606490866395049703880791582974273137910537058557599279959768601893587610725552602918410822161827406135634230330662258217484756731119391718338198688011897844643531101321591766046611481441391163113957423741531125651243256910813742678756572782838377651380408386063393351912402434115079559179771807830385612438980435783206611326587680796509506266612939806896392848388504032711928856432682193366634724489971997067118304713675522234484246615712074281556643322119963510586675373119431068183374988276581181954436904681808406881473769987083515070834951921222883635830621656981753150667497247633186178565343040156362422281627732692679448108532866655319693776810391447399322765492263860273911989985753747556928279143424419790231003550798272426332778309706103680239164635783048794677298075561613874073238032649822152243374055549166456776434045122051966925161918521880353358407694715288360025409970763253744040398746741730914852109403858724619612056605488227780805995203672084672493349157347574237564625074817282609324876499244455217945928459255251789519551155253886994151089394787541535467105432287413559845730693848262435149883319104374521683641479709368128671419593053117840430431328900490565937274217832373134859778556083415745396393516391672331145617973363893402158698838977052513406382298233778668635800245589143497773965865794111946908057389321724759214700838973676080610069740113207009526678547688170903590600132539376614905352153271146364550108675336845207428097550320231741417614101937472833546477960451578733409279115825464328626730046195679755206863702006581631226808398192990012558341456996607637183202664460875850809607253674476282365280066561389170176405552115981987509740132784018401227042944695682263617103507507897624799050733716594208579279248185414107468081433479935628697513011622743789475402467594008241434720154167117477435530513809105438469134037947819430008810288996238843792969487665990688836044794538414953725781253620981052167730378285675135907244375478359607470238756544771303294865987063145181096194741802332369829747290169302476711200234530829389907397704648725252231066718212652752331908591720078343457899041094761060254458700702076761538314206790731418458248331794396409368571466428155673729982884751821623348627990113328472258833727963020281238225989266858079287710443275415114549623916073934068600965452713019214899300602663637077880181069168200505308399657707283493900067974810684622900217546744939559636706649601373550674800784255446919479552211560864845046219992469815793892161174146135406022326504250489677283904923565739182817189315913065534775444051865970709786362650251411317133843613247278557835931487630014885661333624357677722768264979470349634319152804884064936896450081941493234750712084123949191978725594477408976028519777561547010985217119242595092439805021827387189602685918405001862806931750115541468829928576451604229630504543617242713403069838185525995612958451009713880552144679043930504682339230090528657456734986562354561061055354325719654189702145664972950501495110027947153794211254434567002593257725273431218802155161321193613221029560636689082872030600982067890044098897593733303753353440892618357718738360629658833992303345928065030051443407147371535175575656654501524207612154231875865998557843685709393041307041667396201571928126902372522496672716738306769122100242707892445051738262449921688031504775319386300498478940568615733517881502149679797273754052059657117754692093038008721546195805162623857965479006112325548197943848800168131409545049904880674002333771088598078694542525480488658436169799141480637351755236707072408777148009345266315880323428234383742678960227130627632255445893822136922519033145434750986982067240476513841092715151206208847037610047566334197928655950297324914127271952132835556569579164787032316938740368367594508581167344769962662300669784823810634276942959342215083200029150600166636032974806174620434139640953318924842192366154173251494555727188041080990441963899615747637869882804960538601022799127710885444434040581227592798353898697877767793016685171800068755977745578239044974255815299183081903598288823426182615286154524350617006717559763929043787084737051069284963041469640437246825532844771713965978926505932752673425102978428464542801349812488522454576337700888744127584940379756622436143602144610136130073825707489113952626747901287566726144781556520167212190546436594437352931536743291293913283902236498631400682282140029011030191259508504160003543243818844417129382267994053211951187846318060995891783979630446048151512101454268076455952409812169589612116163317377532147576932825441332961912739182035717592821319335462974607227054753513338783681679677343657808433802372380409861892429628431616820009326900233541318515990450596882254421415123271002042564800991679833566934470398272600534922266571331131714564835514633836373014339854646889742749300858814148109943295706438666949976007190011306743221582228735244229177967108533954866896094743416869585945683478210113997932422052894927856964053426148954685408823296920994435249825875024819078903939292100599812433074789831123238152404355547395769306685319248191112000173601560207130914275319227023592835189050241817301184431760876091980390719412389184703096240772693449716299395268346642513324322785515438419265223385793387815917866944869222570368974488584749433347895237901532672107594076404312530627161388306914372680179662517897655865537202773626891752092157544201499304844200324346717851269947648849760606010087040932184670447968290422530203747986855916342079114359137520844505512222522964270030733014317308459008199001911203033343405323548360706928489528649826522737588032724822581497075143325706256372902289129489227597923004262823783288213856433594019721785803111461529102657381164506464471826317278113027333122563610840676068365662126562215185779388322530225009201296508326476314068303471330050145106153583766655368661516339750692296937107896829751331859635832571350599648493310041323449878995197371074010580004233825626429667398034828210988193509590248691221684069466473509420841494772686404192570173500134019470651942282017668693557329223688147888005367157500199487701203071031078024547116541597760330468153383208232923776145812345834654856691886226261618085922777454821998671880862526313194735066385975199765569765133998795124542270941905137629990719674814938994407003162837652241366184842546466566105124208967788856115719944560290673091226230226620487369611296245282667868928719832715077564974778925067199219558310796942225619332874837912751908911742561063467031166135117650058029322295469783944826147917293674484107824741979079009886848226913715442806624358857422576866815438329532319391488665125796685441652681870576032806523515802071282494860653984166472568024822397911483203648535141431274061236165535227724021776715726625122677642202334376376023635348329492567185181592758266331920584631993811559186676563187852641678710103045304834300271245792927203966968177736093526189917578944713072581450809567529337087069685825687780249613839348170966119869691175573336777539657953551480222280947617198277327918243681857704311119202819635009289274925420422145075051684714962521021350696325226837527403143548485577599653029732983243792668624703124181422267904651161378450601863758813262368382327965031151417644708498081214532208551179048417362602259749158359920127879687759808240691707583910635830950636998303059481330900786790389009241152202246848171560006321937723496049989704492853743118889765563458093758961916236056735173074251834474902372901597266111301601434505921284630185676528873920092160929178048683276991318951627880488010403342497048523945908576938333674111532826180923421520482575077195642352203271751425001907110531019262236749655843845879921825813872308138163025809313259483333603247773084101721338474905980623651015227810466710680827201531357360263748933011837290180381562851497270292587727736656866752040974983835298214880958824983258329874289800156912380853979271869748219666362295964889931710292337048608966868345210977761999776634425522234459703927483942697748858780887201665036115075939972597359714413729188974468584529780660917083610108215078913222199168150427729494161337508837585704203800267894419922932768278601951191550809913488927377042670618685686380273015021801878159379937996660124322253874801898038173340939707996504716396118640459803731455435404704253558609482459639225401486027442278039007639805940082008705393958512480668907286285813331963186754071247546211233855988011708934788386413796704409904977841189607109094186411664496846914783822574323510110366469281981045519198001909211263883055039339821292328374201502292454645959197729143827123602607312878115137009333388445517219584945299963639573446456004931518285549057329032834902385394641231643239348379461683321532220164609616853564017289972377617239669953708009833866915769136197015674837183234921062679277747017862266887574899927727472246467139572277198495597316832659917826263104962022242800395054993883098959036581397150279813062198262216716861686159831981570651674318415464903209549960830546537184052326228630914367412710528284573503390961262710886173536545686493537955568591955730736953802928314318364057640649039622943173110608631163182268316789741661044025595529465834594901818356461613153427594081583195292525901852889781948297401657939842870327808427256159884478398542849855371314275994406823181307103938417400403871896134937655038438046368838223303897939237736360769563502962091189807875050536614155399345741311445295445465733473364362957587873563425303085706427514032486056424812102082015314815736248576399737934770038160031884936047295330464096512223801956236042839225186084863724164051570422873734297109303725709370609754803171286693225978684881179759655038545938196906920068874745760472591497686461228527798092632456807943981727898156533217404147635053915661128533653743619161359122401954634723333665346745314636323048836301793924129343089847621940502442783326288839189041601804714582318452740477783458593222911660233943084283146240078097271167141031812768075383325659885789465424580044267399330159441108849675218400445224444914167686584996618827471474567839301921723086334657248823700377967173396576438280306237382002566476732817758379889914558569554837043942927417747920497795732664302304588907253962695972668150124549886232358829707608332150213357079647199737262575126874637029686283776511120222294373006088751539022762952699649396453779480415742212362647186961003507195436649258035364742015420475882686996594842560744489107107438315272980484878906493110929096536067112178689438934591947333829074954563420652703930798818852643293879755685868439105706898918934647360810839835838178350688554764184153884352125363229927894206170042083876983971714963331381074430836620674298078498927064837739862749321154752640529646700365303872044102999508503945576654901382744167672557302577961106652165746921307902013561330746017954426310530830778143680897877801159925160667710685606712972509385225904206734264334078179205221936318517232839104639054194104395542889070202324509621965997376991686082675198106961014474006065878456805359133074889644938473000556376496028818565073152952974477094293316560663893488534635944665639741844769319664978475469243609295646226384082376495301845412441126302311907474652134120367732352355079380695392175504858520311618324228544970801583036876485536843870198580680505923630239170664643974690568637132714708564156212007260392625034195211947475573020743056943986347485559319905876088367658510834266431059115586950821316863264892850835433959096055981894840447915776222969859768057043044024150704827936397312753523377398783676217827014573273924132275879621991638642338056317355730121972397721906900113571923938766578101893245921187365459140677495700081679436876728956432882354304766710875852144938468680416502265003110450720834516465210079985926539691520471931808639317185615280710633651063615747988080336098382038256270392795055632853031077300396418126417548432844085849360447663855652588656898509021615496426980101580876017725373059186044490988420723200773865346154421139350558955695206080018744676271211838658042462539568180089481280519774583915130707555115644423879967333203432441268894950787464421299643220089343104900170209038650036021862848173704728483257155344475435763362928715008828141128854267325746335561276427194025781129246162461687803951599532866448108938651026061955335649475257542059963517432258118908613033139666234213486565012780256348851102437984730070842855897448646635745401369867392003363302919690257183735832852042771325111774461914489866154512611127382430741395277968682291199767390869123719963017848272054937470562878763750015504203088321515737991712718402133963126158484831825708047334316911173153943176773757768087072645118932307287399193293189395588759304776797358388812714915295368710429164790253873647601398657287851420554518518738287232691312477500540688615600946106180019511977702191343170287345803425490275546443996751545260934844294800852366059365470342046524674776737124725646264564728694081139361303509514309714974216569328481915323243430628287975597299170348525820228359866972002842453080880844678643953472651218473429849066482340214368805031174089750245000752324960962746227005168381647913032602178029298118147011345816001284623198358884923643101112717261711189700086302216733348232180546670486730373629264141974721602453817204776707762872209735112231274595994400028282462705505552708013208043078286980266717950472581178764260907111136542649925437013741189315841745224534653411166218767254545728202962428997977603221844372312028525030834443797429717244439275159269891541504924810879963032411105630949749115445519941318270725655003499078526653251522408155372616343740245386609686800704323225801074713041821089025046137475618015506652731982428747140826829307547714623815577722607375369166335075483103544414221312142934526816189236970285662355737553951035382099536995653966056476752303625611896903221899439074776909996312513370944636917647508195452450231948430901329419517219166595932035033366016931645987937197412859632443987618292321610052664455047162469054804410854183502906734556222626722055105615001996283974416061356393256418343832365376819672932821475133018082324500332700859059697266035950252830526670004698226275334634018502708936916699288167039928166767002759159417082642101194197120035640824796873824588882964647442973144226720433265155298052032351279364471553883605128669447444603322253443842052455830070712533486288736800376522558415723328012236622909479315273078279122648911951314314987777231730018539239595799406122526452808836001418179884805115319296585883035523750890573501130403177970979063950080326264504304858150171008287774631548543522262105105221311213628420486129240612059287975321419358730674630089924255679035167246382821368430967665742685806560407364802420464780948758835504890517095193854422906467407010725657163835310455201064920371550711130549333062274191260764613306848325993830893303586125566865659623269052358538405949301929255211257525144729725182160004728106376114350258686418738204448171536628894474743052093410768739649337136607592928389705490547336833378392430450787102483426047373327080684287275219815360309914805626481788554041227893198904044315132809864716920366500282422427485202514895761817619810272680924055428634339282925107637749488297161245615364154489323708615100481377613893767756436902710651861020390149737703044618414462943665502690251997710787091149217065537554324887953854285170626815039053884284166064383002238552940053606863974654718288662689290610847261959068815458944286509330650547886401485283645609997392730322009736133966240323038375704907849678611442942359868686190357196424044704138548260085944681670359571596234615792547004667110533900528512023226849291156612787684392845416745192944788555441177608834464926849492592605697466623184845573487453084926173455258235480185345839231392250539427439986509871807648507319399487586937624854251826501475871850055818924738247698086131572672863931169342259955425380066141628332526556807694661511988913265047583530546433087666893219835877800320594816725490740258247701803025161186914000386062879549185658287518365044490393057536158863892674182563996649825557614589774534410236780021331611317434155431044827487939552223857072802519524073267804110290460292886917447852619394637881259759674627007079624517020756524779968546311518280174028109180088598852771020403390814988530872458504564705106194423718621774281395164447849896864785926389471076914443332599276411193442600174139501453191010634868629318913833967476386868819028861127673144727501772940820991832082549252915161835167409640175211267441836761610540250301172906301542303476715885158753960217955686640422034500309691719650843639974592485939571615228685751947907101047461180858000699786855096174210646779296040131816002807799774926816802174091456072120948361133611444702131424389268291501362335539304413410050345044227780224769500894768114635060714071653875003701666633667593841304423949933814489933220925631145776402573447626581542504666135238647897522728229305962968709381074480356006201669687334592686125587960288395574699314406570738353710362272136147106419071092317777521324787397427838005404489221729672796725223821067782345489337861121367181859305848969430024282511289578380571728933758106535383013145524007671117681858473889641834214717677136439743343705891072558048268190019476010443726708127409450484853018948678609661358623153496355853404055682489227397320857075945162655778576116026841556417604487079439489147637517459728450010416322966069941392224463573989267625077834308390740021820628245733029584741603191016346002946076123201101921113031581871638772321407952316456400456235069751959818819387456319734327721420285674692659576079716593556177289337340592785042327836241843771012302330234935183923003272035288967473867380205271296735226206624866491838013127977572406859263545739041597378636825612787921820046381342191515987321239977415607686075128700148973860989947841198943927890444861383520410347847964168578621966827540503818612611534445141933578425435275534862634170173790206715531707024704767352917287973711323249825162651306186187937587954963239285838360542637686138342353748746030465563147217503874130996967825204370360184824304176081413057471654343334386281469900312749047930134241356810114756979088445036139409946348669965490251107272988781030679451025002664552428442446988912366599679953992843366962574311139071914204728667244516538552542498795123188742315218006245843730707249500884915318265113250331533641761390412153143685073553014434372659516340796668585018278163311994765230601904265531305276662714388208798568498967593826842423489598059778238110043412834415076589998019234155113204168300530030124935526172128593004906924067480054155031020102048234917733301769285118678658645462042249191793954098748612455630628802702829882770693586293625443603411377627336049328250187043074982641872093204745657990674972988563654283661401207502998063229452293796395036910924739249850741235496206969597253229966984046882425412545032000145789948240989609578977519255810373916907577241393744509498056539023997858959916662100457514745849487529999716347626954534800183884057781791105036390473014213542031762870702208971980044857109514517543486329549736101022089129376162752103124433798543733266472398938026321620268360771328901330091190641715757453807940075161952789120365441202732853190255912478161656413016837641496886006766108629265420216775147687395672604428957183276956382895078811249345001852374663974830852427452891637612403521386683510704375638342842839487221082341758166157758913277092815826204289304555536923541634771086205651928862720407478542888434878661816109796641142388935358268530580611676234892971561278589755408578394715108132251647413545192053167213326851100802872336286539345414179038973173943490029985410153352064390989004021315831612347913539351940898518661813261223956675619907383893404965151932891507096117928634346272350237455507249198272215586976781524767611085678628127542414850672794719455914030377398970518406122081451170805347439380393158482941260714348157347981294890625487929585133264085854002892474095128659277870665924167167064715424451628782320619551081703807099492329560867090736685358057762034002980088432740294070154224905526326862177098833377951507459258669605595634056942905538855970192415137492832894919880687623266110672233731738072588974253472819499349231409666891542750631605106671831876748579064751287973162609470058543493689201276195940127477252061003834717631464263607950351097987016557031224898343934123518958520812301136924564464762863220098048352783659934401483471080520089000467612788962351473923600631129387578009237920660487124302683362009586541789831781917859193642735875420962393197527050837572966712481861304066702888046159779855008181827963573330941861241731033082044011588853075952597626649656239636629329754863596464857983656972662471996207718910660514624217042580824464036010277494588575574674881791022353879410922649082266408122690279468044959480642183599187492055350031343128520412077836432471892155958788351721931159668751752193296537420430074821424259857547413802197156373937617369342628729921402454697115189903717978864689920630910311233260791307173761789587871024121900862342425442821976472499818887814726606508934968581623505759256945996059164961697358231112761838061181083805149985928856895071364595690911087799800951142902318446582004305736972423893384214481147569792695052436824035053271832328515736362881527534862615730294961231913990294119007352313970225970347250059125491580980579396074489201093656146604681538781257314897853973404142717475358431754074613299897895251190307447711481376348297671617953460091525739493049771511395369885259228763391399874067610286791318406273194130316464662722125495954720568341963593180815467856930190484529331109164788104293165560351780117908531479018798713614133081164643627042192982181185086356645465278891058229059850804004667526256489487771167662719770720762724904955230761065728649960720453222334615092695228748402680258370211870811578552394160809937014350714448353960034183545180440431758735466908221546166403308500904321555660179172304339750102328605810300287453622817917612804251511706691309736595748395586110938397827958674562701605544442789952747677465693723208423338296971924250011625253810369289113745267452452513629840999857177931807784878198032073793344464318815612363522766401136707865180423773537560496506116358723257806600361524998576828226226872220891903316229367383158867958245728761069685510968573638818215292178888585592362662546634459913746782212844569694191444761006895685247304890107764998689058101470326276702073883101257827824361264452243541183034493044020007950784519458199883691529391551852150578822105402752591867355416309836933139745301242973535066853978709300596960866567930327231908398063357624738708904326514837879739234175107565271864311754053183334743614149407091050352512729296100943448517780099259095569195023122293488029718008406170207549597551347928435189968824951730980298929693681590157229138271528813854041957958536509432780451515035847966287017832092942767517039120288704833378653241798835471916806323739327478975478630566018595308513519077356781566436609858487034442100465068404491056703529940991403931216614084153455726085435427918710130444068685078998162221250069606386261653764216847682438078359842393065394728244790872714146230848867491717358297788911237940475708588358317091220458884332180781599679684734126137489779341416698428907407946682926701311841027071442206466361564519811082875940205933982007683546772542336867903874932926753438217126348119316840806657096579415480169927437965001914356558825431785303809935697165174894959897088239474191013029516305093326531848409311746316968121541421085427995697812834645634946547183188368975262648677136444576046020724231354955066674851095908315594791489355514479397319551643938057415158851068281208235097034512148535948933323550884966483173187633354656084482887989589951794106414682622418475667254731291372066937498479074052335463801180734880297353300163538803872633567434621763044326014831582279259552246580875744967563200211154090799631008146890810653488165737443886181960526867715877305356584117362654564859450875350803207225732882242964344361922747910971979273428884646399724871250397924583979399171009104677799188855731617193880291461221027215908822665902396159398131863040487436860853299245682139874162111492879433771017653954620755788167209110067627929794683207710512371547495021431768985979263477467093076022430205534062017824609784560253735508623296943322936975388721764252339000649112692863978340647440219431026107215157344094454008930774988205987538062092876828828058012523161148843747605330235226419037561224945549462933240545478593909370176910196018965550668201308125535634375525557431397694887352175640923978668688832166698495656538291108610269837501820061131222326138101738689311704331936942167651978528662732461845474932753600632327654610963705042117290708410640505154808296854588021361983691136410613135754947423515772475224116464675323553643290328378945407977338318340380075720503276196907670004286565883684112163665066795573630272989361967773884588684781983118069965630943315190436888991470952334110237540674628571430602280708916909271047100211509485309919740521362914606267849947599973235505934090655233242334456243573722725677812552567062141498495677911772603022125626049868133898462436615994583924737773602646440106074868433761542034229318622079584913666635695554572296908920690705857086182673696035199211407686741344995062927645857888543225993230447841165496949899529580257595056062046218614644841420352998511795342685951857799805306167763577101319777442340069835347274433742040641425056553720753636623159625388699640204749818340020535185895864320583332958267732963544991085918768408463591608684332457134683824764253841788109057643168650962199241648657032987560006430939984154637609142503383273247653995979228550884234871327119824183931832408709641835881652228852431441717547719853258771815477201745839612304940726809194476051103049649271798131676139157172483489954023124789650802473433197745769177738073843243564217809252116605964428850427860159887935864712991067844711294790681301661692788398100064355242976131444514246673850430363675327248972213100467179095180162593693977932880940023840072626510030516041600910652480851601547890885289423510380030229802000971024792959099814328090131384575026663420690561172104252118584872976611744802424780402477823016840653502866268744893080634852081216775328123826131121968540387128472112192293496087865698405521679957489364800278427849994134405263838079015691798708532413184658654784053434885541255449744253168839449750424480026535272881459388354256353044227048601133888720023131333504824104554639520614788051496062519911897050621024900387791763667422864043028790688678738659843421726178588174972488353730625337375186918473883201021453978930755124336408019951321321967149969760697683506144057846001336295371156809757964745481010462339093301790966229866288089237821168711289164850836105465444012246450781976597035082601515446053291483504211014445733633626787415861995429189901366713053254425394016208597149863948875485328830665180418060847481248340708988546987901828906431905686270906228782459124486662848210119194609222117341080647875482732352266543772293210161101882642036669828677815529224482738741625017020314431809778451161476973100293110737101823441075095171001142858482815125106119103664576312561958450364150553993251007860967519348758191466348320260487086667194595495650044264530678929447906395994660963823736223477899362456550525433430602714917499024154087746847928681275690992431860111638022075137948994884245109677488380974260240093020983886842387655808665689860237960388147550934609223564456630624676014465597186526738371932187753113248096819750039768377390964524757809452646120994161645842038682746344934622262773360493585693148000988827990560528188552005162558682873861770995808778173491759184669350597303912089467848842075345275195648453445908178659746544615371449826263353465009793346902400237074311319119735761070181205115028681077862684297456555281142773330091758416289257181476415712562014748991039687786618015943443458394655137101694372804190446979320309151182441058212830283085398011613522030140822540423867706661872558905249213718475742836328934476548458836539189110325684991748614170084309692150266739470108758560233165843645093250437706014490891114058965284085548371754692977488029490912121364681059475111524383310654445555137295997155277904702184229910924676182611753726696891193278483407696448193657302158226121033923230022858215452829960338604517507737266076429532467658272065635033904554225864071407979863772157604355720852904153656948686866414320750521507876718125308849246057413994591346651710585644624183762521478488395032240761332079820108140239191185756904336877657508827399125055127774323336663343384545601247281198550585137714230605022204030774183267866953624223835267717386415171107091171096224899209814769513713736830733271871265604771705019340014310917901316407701419181823178520925916008749078581619578594179582037893253503853329878837502565454299324329535668914790697765621703866300061117069232853744817183654116633628876262687507936431408333215974921503955682164089280280507490577300394828244974185428562128121075260026413298456099057120437223503163841895262649978703781343685131546402612837070192799590873418910016411920201208514459979482280764238161583130534334337374412559097147402207460035528828452309898915739697718175395055967564738406135883257639683946865019301714843226009111322169485853890412539394041024853086498335647177070944528641428250925153857276604712554343095583144997574237957083359624625592990189114765844200452351948718377012945971642051021416725845000132638863310421839188923822519098987430151220639501258787588679993264415565699949510078371369923113392122226818206663480186883313185446093251009806816058245896270943632643662756316648005338639043081772570519704728753925194259232533604235320974877929781483283868907812413365640859672868885826166597861822678088627008129665164854515774924096377489612725176098178249323874782065668802397194707692851870831723255827961558598553642711991785209677526136779559275561985375850783133812527519349245862184482996918120741792833954122804696135519640050469572252002091983536276901823373706118117342068890052780426797939906900481029647726815931245109822854078802498796588709704542897441115629577540559065822677878702864647088317056357970889328313907456468811918628656766466499780895704599138425088487956406235411106168265261636549443658422116164754401621906831195808231343211987666585133883623073017876256218407748623982305993510061817787762384347819633741416997107555534238714327540558415580276737157233320974584621264998448248447946411299273151188131408646250249466660863997295353806406165199303800579652059046155902846518884454226867490411651987597421184701872357123023163758153443901724891412994761748195241271157668455879236374135442921973982548381521194290553251827134913811830380953940993301164021486059772787992450366461125829195993043916250366862379420475979037049845435197998717381098656210068494589011743092329689196569769844914950652488653960456394216605000845285806553001037802669189168697699231687571265006484281532682959580935589474072064676909596021786917848997066764755135220307873434213930504920660113467901293157535880670850381385379999713231773201811866543032097209160941766111317918919022040756563180303623043458294633254835200258122654744843612926065454173175044019154187131535735154119422411281267697482478236243532501546019108158780576782799622392626766143274630269269437875329653066872465705969063597194943057557494515734049699964239510750315637788631217727348868256586270921697899651868157011203911390694868910170046854056343230203321376325015657434533966071232332259243357516517775878794992856936850544575629831946148711422327474380664663782941770132391384174390180165341943240777049146776312280037006592620907297495612908823309548370349412467336201926756179056920866946123927156190087691682442481668371107801853171899005864609213252885528531640152511295908271975675186110004730357380913003835174977065789117379180323872457146185780456191594517046768650956960606663358348417170390213190583627650143516672580515536877543176313006778139502653548855516323268539402633170895644669368483153688637878610362958687710747493917004831493555506516273265618718867877010909767721552237770437383164988979715875102775138318854099969041634342539263653210581505556615777441884812903996303986460738805521855829900329483140189658595300479230866370235740514255352597149486439473734037030907501150102159978868677855229877909637222944532187556796137120832877445320354475094416736607253086442366004103927829319233046791799429655219553244922498480704711648332290714389203055553744841385087500093687808938138907701001164161586636990120247423983770582883782163092543020171274264556933402933516826577377321899353435250520422603752718477760240057130663423150433213999637628525805566423450650035688189478266138562013007782169883261031624752345040831860960869224224996057011380413184793504712036513883557659946681815306312567036324176954538808895521562231085812783115785661148546608066794870961061017870603000650838833777701850168539607498219550726351203821340308229798090351784250207897210535238909698211537571960553838338797229865119793916853386917512338770502530503934404536904993528270111044778974443422942818748119073239984969512181338842688796844367087986690105394622398211030266683151345474231325109016980615699310283422417121541117623189509821888909034592378383132189201642841804982520913761108443884856199696906472978818140128383171234647054880652065166557806395136195830128367709090907883358929239858536793819916993872065847153862728701154055576791946026158563276612222554361743693575783782450550026820903518097513076261394490765715780056722194801379119944676545311177874464181506660164203821048046075360120659187890091278506866657384480199490104169925591792203214354790645905545706519376572456729717180123628955386873329752456165474724790454353417489738450841357217155244963882004491098964651950484209839797642208595512203755729647441330231982847267510379433996048234289633933403266657966822914022425573983308172752581856911854083773625944668553759293094628298872794310992325324219065996485318079930947188960799969904471795954463072540289833251195211487225915927283872518102956114700571701625830368042702067085211390804348341747733662497331332872077046751198017619847234335552551007813965846877537517314614441057553328406801392206372770262650178214501764083981984656070597450951419342801965704531480960629666206831580393735683079850882630480926015921610824411630787516267291527621248012263615885200225594630611955454310158677831374528669979155049744828712947572164285111950714229127963034180729707187687482334179456287104625683823773526577527508165000218936068455889203210603463131288343917763973648060874748248396503607613665205598610458613897594570014538999340846369643241507004953843331009495593570815667197958495883757825751231354872287196567576705728984696278295285860846817641318919572507733414583407814441666211029929883835070027363812740113414815503399878299986969775108449738986086302613303656593128019162938053943256190863670218832575867738581596151783877653284191823446153989101697785109785355640860156050943203703612360494534392502501622402167099776181163248882913547441397384438970690117273003806151304653333711934489717016034450880916735372929770321242862870705912552928177552899792155259302720941644571505471910094061491516054372886789831082735187005486488316831313244353703042603779820844252461773852162204904734895071221687119326499153171356190634686086739005508129255636203546413826190818755723180870040252781225719120812410678329599749753203492697974985776183271192890688548032501250635609096517623385730626874967831879324522255775390717295459418003513061858011415238409415104209904776150701582917645748249909188443366361231429831162054917067868079974084181546265308112049065245544739849104149518104562920450797107506102805598390367846061267416561397131374422348592871615793175808351135923910371474925961663276695544946942861190721216962776351865414140015601734891205358976980910709587325358104382191268836820092914569931805750401121473701872830100581491799546811321902171377062324733271355798284719280175579631106571124231733783392813711623002458065667371999087810527747244775758851819508803543133378137603041638377405216425003202162052797258701647981410789525903206474724523822120398588994119361321567151924523996363887954332427586726263439325973101891062849125283178629034552731688355409898064488404677726340597503481629079054093366568213839908240246501108563342645530506415417432898903901775364181869079095221789531903834513804763172377481880068006781865203023017540081846080081694676388846679992150583671068134431928941257963213200996757038745182887266961721880473545271753745104791807864952296134602760499926914830958045844972951078106788392718413645552457952269946119216054464808356574295611201106913212648386502381193066552951682721470281161989259728567080208223730432502887370103923351726549079626608202792518555100978795469845080790306667465404620506695835449437864023189663592290888549977760065112976329369933352346840391250957664609721168346883593540317122098927912279396036847837517327155220344980512716376783348326919230146755756321054496563250864841493713628040914958092250164955447135429079019313524143334390603701995682953402568305006951025690654200293978440970262419586495041915987528328145755228117179715543356687133965610054935266835109572774272334789273242980133084046857750332438614649212582456293057594053212374393832186808594860908032207815952783746804919689430417913084396085199700303164111975022895245131829685246218715868148493569050980855561334148985199917432913171950849708466833016892528077007064396145854880609877957672513139984337146767590581668198770510031099803434348911843771536668166043265801749986527625382030986136426106178850762456377394316800028663070355694883299749320520247512734579103818653904500477370843868560082270317704816935452013482648967726898696958510358795889495394444636972447645568577155207971424756250653186601995120970709371629094379656835654804962729605847578876689350016358306308949534074779961677195008798242350339784380957453592639106875400285551190490050130722861571691993263728824664600117021692915948066404107243238486390964935932266510619067346760433524468907879075541310312841042112801691595071847552571501437734890098030554019152344840478743763609138967093406128528064180855031221212422639507986686792114626034968856636893012994057662180726237948359371738433591048832451852548646026432250434109723899572353313000325171933025270563875933659980996597175272071699068579026956167546951563722653849831578672963413829254124269028303847393406026731548691189049296727183008977639359724230284726927532985961698583224455123623725063346995007338439524617430737151670474313236982814588221656284460481394141405782443035517798578377460852942077226455891705873099029744099525092740441861350179030510418947084654034463911469511471304213207108475992096544222904108760268818110221916614358548128139606401493762307862970870123391693094920900080488209986302026059599909128875610761564535931641342575752814600056395102690447883191112850432089321920288439172350134748573438539668154409160697280078512446210643433404320537925580625695553641695185873370263589871593874907198759993773562212873995587532745256699348641933643620286669366924384981185947400898399377310375126569594257616386967744127289794057780480871716675040530499066321276272847184680434639488757056780641369463602590472910032616974964965833324702750922806356517042446603614508745520122101599222508757679274727527023478210163503108304672004648343390524700816274434158643070245268899515575463024058566540882787009383521290040962967602764067508141343717528705338405259351693784859235097432432171239831947540428271830076532376121578295834678299405081498211088115837319711170304899552845829558411228971680935677308515124796791791571305151648571347573138577561312320085278848213905099152450847807331894677190760248928440027315503514282430040897749339722862605025520913350345189082898314364580875482171909586388834462675627091538800861395904507199038843610860012328849247369323282140341079664297882040686691441029352176847562767260485398248901492998996224258610891096040283700822761761955206061515687572391083071461089202433515436969959042879765162444292220542100919673164254519729112758961583206211933359295176056597400908732582679889485982568742744729658362264100493995764789707254555058721304948419826017225839814552727141095465245647080041294323519612372378871111355351229041264123533894209628026045894876346132967440655426732175978344445818117343532131541150840442323035722386801620488885821835995370729472727651476336529293245965359571764663371183118126064846944281852010357904662675777226731767612772481284398151466226304586795816229960700946819696867819681512543407565700887804989460688383385721331166879133225937063004082637109993943484614568426168685010076044641198046419029743531965455997923416316527102613254026683121012794031500665850873217530723001495381117627265721753976528981786015388845420637159331714322402110476782210637417842504666697983972370719194068370026939639685730839690495648605881976077313524529092997082911232903216355169128279246457600432856903221486766718934686611712460813936971905820449016622651361830631953716213852699330480240850060234108181461307783018766497976739109652900580985752896089830416360478738388778781372793884925239137928558616357433137501689382418612095955075041502768088144971878797266476715552572794735789535131215893239442541353736515620574721109778495592075934333475271654632013684651993787357995530628155526773503794086574627233603185525651289783752409045298547033313213502182366035214390366570548943069744978701318232295304425287475669378795698777528024750793019449913350815806342922511895017528484428700710551421979724254945803138188150307970036389090561430006863862870681275660810086126843713384854144497734378150677790746828879955628110171920292023058173997024158487743454640959538110361512067277321297428744026599005546254883002939123971121871147980532941097304777707333179553397059229699492458861480907985051524594895438368394937212398541531101077634365542327613958401011351887397520285101685080572887315395625506348851576129409171477258103465452306135353131278981148052035354065314500111809516207310857248460444728302782572984697476611277925261182826524255939326690864801099676536851817641737353615053220842326879715059785384131755135505245111054790807050055973510412532776353212003869288823268182085952788647183064932406752662183010015458191772642002624955133542460090094855354327102459336013782642583421368843442180635238157132856489863800216139261718709555353876374026476473837405066899878350060784871244898060025851068368361461437331983045716225502743299429900407165099241389831360545226662904424308144879115205634159119616603476877507073431412340035728736829174716396037155669487661218904705563519993162224513124544962873763893882711043439812097034679844280497555422477433914045985175572367543165799143014748189603931739770486807749950792055161550675168508747635204788002613283851763045543868894452136989019447865680949466265102504575519579100540923689682857558030383753788187595038607116780702283532681256388140968249601810194838241962010733462647619131227336794147078464943139516905960150465805177416141093639627820823533352152239512739751276360821581723666763798500852365678700137939297454945036705035372480028669652670537135630512800318806740021798173729555053811393507506918687976506482401494102660492255127021673675515008855860987206672702023838490803675018156576877212681667912624191733916314015393010391246838005012591848464699198481203424003003968236516706386401968787526872549213907842820722790635793421506296989430166369224297134984065642519547040332566172206591881162089277414555266787484802739429658883641853545502361206279131861427326531559267589352752445241922210360348251857178914742010313164292099503244884095887406265059840358877101017217246043230965322315085426057871667078894681586838200074856047962386723118068552219910498098367128311290709376729214053283358972807599499992615701749657182966447763929388625310914432377424149349105120163649441382645210043160990182251872558075446850956757862597484605834092310173622866225436200040185405478944541725859953257285358674603852897965132542415471776785982520131908596625506532440336554568855748673259859153012103336798364312920976873538642589038487690286046672161803394746421178603232728296800622206740324825145240981216349418508676015603181041942959695116953858204512618652629116306276568669075952752053145439813289841204026324082275589206545476024594010838936625676257200258227688011450005174191731183674797411718014604605003794782354171646757738690714354894129706769099970334703897172396298247627289668232573445630922437445860884785685706561264517849374968907948956455934765727074114226736057389807919062833467171780543918837226672606523703533073061551187320542740081322373587676472826290856547906850954335639852378738868924216099699122532737496398280616772365507917550207154864776015845756554940855160440264304106042953646023507930884634374249354424205973574627372229820107958314852454806599713622735551644177880355392271673335603192182816040861974261790295988673748158930779720114873023634074919828733780611363323275147974735021353141941780126823548098418993343339223299419445711245176140420991599981724095547463553315469908525625176102899434125573280235828391276489290587578922649047757255615646637473620445885840072751279738726819174498362049274582146469642864612506715407450405251627564078592829766877373356359507075385847124852054045926173549034220830299167231853092795554603344126703716695709914601915648869254421230836088524795671728904591985284464501355326477688922772744995039390342260225479230770837084914174508534494296277622355857888196087459583729655822692208137138513950682083224445221140331373740423094644444429217111136849442131823867466510490779049980429792762336885950989396016910658133100298112401908404112719618238026382144050998128191798781483713839042328422701051096525210591995198724102050505479565037564698719849308776405366236027048066627775553853877766812262117118331126379176466696298243843220314803913537797530779055769678144878861534982521842584829990498950621512981273119747975455846629493491099169893699994662457569189542004159746578096513931118309421372054945290105464003435727587864492296694256929943065876235136010952128455634573177703011915611183434023350611238179134942876879266918388618798433105512286973810632737387527612990169196149476125887175027091923693840798900228725693349888872252532412279266156134086068113193561449866916687041907624388226828697969596364044286647833154870039649550117802542282021161297272014520093433666049588504908043970080190936935685119081221232611340857634938585980546226426904616706389286724117295708809057651467076788704782995292302288127837820186984286388542362326289302246008981240034670294815383410455241324771207875230363490726575698714580981354510500253434088770799783777096906162512156372262505257831660502792315991332313760472542098095836215482823430676449666724661071004356425587822662136405158790254531694426415318373316396975163047014349160464105304060924914256934075500891947063547012976858822258070199795120343814800708467306296279787171382334391381912364815949603028922050084573805093940141772550910546533048296676225704246878870184474425275968124408457157844519837322514209998211111858425273645191916126398298672532515598584280642153964616475718851676467279172491573067904414119380676153725640112671271009924699542212261165863017156106665593294710734585362164682934397463649283133006886022247129106361258101070691884529716517142522631471422931130599064858776270992767803861123180001492877819082856909285798913971883544479240518722643476815464033799706119847930598234227469110426423192457259687031789855690820368802131214056454253043219146648837642310215691122939171336077777560591207808317210675719193101221899579709808704116152123696209841010364743118957572458548790140373154596073335333856818214148635761691768710356768977466920285550810542305865216397425610117666789324536001233903656419481184645835255405686910612093366062362146820550726820120923029073318218421014780508967156506532969251050941068134934417670905627769931653091736133875406424088484779872785751868812556587777767192758502051004836091577170050508048320196772118402077750700918027050359779695896428492926753595100021455801314788731609047831043787934956856433303612374230533129345451010899284355980809990966137633826583936300650332248462759888800671316276722882843269731211481056762878160459999270716822833027241815073563386299119516169414979220662265001390060110484274655709557887758567869229883811674890356008628571481741047204117729188350250595555035527266734885447552722768300376370526847160801161774940944884862858078621935834091124400696818188099572315870350773939670907370971575889994878602792725430793461248533041254702092139958274789715240005501020316626678594115912390799633473264027422591412608100091556972619492802014394664291572893091459645235011444631623678956897950110265978288288596341129968200060216131830569176053039611411607272415170802390928260581252172461483171382439145852723211590168618599576916420079027288000336567444899071380809738301818332004503788038691090571904773346405062100627866037610494452316810257320445687593033921643243454289620993248924392039868741991096583636700649500479286158886770813044066909976800739223928317560950326376714548033657996411544141030321186225599046878026052877802442454095264642986174774852208918548720744231732081511420330333666793943466702203335326566587916628065345909296355929665565088348455960019359613139320017464488309549462643327045990557987094735450449098244332729813785202895921064496195974964732063706523711191087582829494801718587162099174149953680218625423096581901545219923445814425511234546452194354858628446769521038079644726925150171466185294256388225531354820042639132871526855005595852695773674015180975237215382840532097574224692650652017537356942099605221333001986944167481084479083300369925759131324037162727216222904964325231469521398405512362167009004754428778616100487579244942914557338987625420131009959223794164818635305517166412565436260450268968501708427154288773634924159741821218609274260261317549571941536979713279353435544148125972347822579517725113191753116972252241419608739653488310405636402317722348680356640837574068720795687943052395915036812410689271232489612166248173507189929986899090254108303417913918249982592470185529966930021086423500654008328719234595325586140149214295440849752059031164931208742110176493578987752086362472039473132133959501477317583488935310188365089761729565473956382326493389390569731530305996809068247294142033133316723988914941545591295810447504861472533603809268605238726004211513565333539153612074551702254129889236152789622524869267422505459403155988366161016546488040939754634157123897894593034122540162752556538408983074873545041242670810922091761109403894145261916861063230285591868560581856336726637823417145807776485030936928053576334679316287246934299127349873179542463116744389013091348724268118534779493110317795090878638367999729432071618765582354829513667117827209385414291110222366841002007595948847108305605264943539470375355668198237859219054644314222623333602036028482452935274577384815113919785932802156097550305940243198221113226041236662299640256911010382266468557886630937843137739924415734677550400073231160018790443997481403587062354851053993023360429772991403239526372494952059138829164372105305939316957359620505014184512176632722529651626682672483343484199293903410889089500924985769684455092936114122570046527544829887516120005341132810085822867365641484063278597422038321379482305755932163141298944772174767123797948014854240005774197423399298421373436332787193568542002992484240253516908732100516904752327988489239039448219031401572542535843640416828863272159642562339848015012691989470897590561510258460378325910996477386764242054235686269222034344560881365081560498173287510712022988835323105155605484071766432594758185335609307492389009767307149873361369163502957847061751782512599757536168459046111285693246890307099812760951513789486518782974557929527167029925583359426086768627675288686576433829548300028817452802432713867573077172865172746386190786980067815055483754282326915238820586369723046797879353908171070396264701125616433777470833731375658270829716377967724293155076647460225897870677844466178067336812606968471473882253899873262647010189789864386501178243035239214688966080575653189230776363570572240735574481823740747516613257465534608196791084423277595783240620254608515278779317268137201704656804466598126069840638830385458303138714952179301835649808540408335432841128670276882524276152242065624332911989531321119067966515447824671192019798662455367697417598902271664225318313123511236549857286519000927600732937228871288814997994077069920613702349242479613050906189614749490797234233392330364897517921562949337931095130475107238695470086471135283003841650351640733570652133649535784690441488827673041413996204627600368081417064065335626646130616704177477986230857549296437527110561298801895152565820933068713941589355776006087921940213636341954347757907460670877885185787524299361880890523128831436757434666262277425424107193781857879811067530366879704960964279568409688487455600530946543074803106532803564791829027547502855768889756100535735512582791719921783032462620642347914746525477933195953322051371502678728439540579357310146119629657339777110729512635626864587473674563799248018663636636280302572693151192064022058667046135163902569710046062377788817334531195003062619935703999136890912498990329286626348366542167041611025638421235963753737837104581926514530329086515073654931076377196756094148245871546770516084800108352159931680263520439417340464565048522142072893421997933985271053020976829671132826130109848877831752517570839067489745133561409292260376744709327841639085087785613588104590563738173371575952792082883770845176429510605979504828992628944531991538231080818034782082145443460057522904186707595703347836630763281962396578773372750602037144152023395362765669664248546614768303354393151557313269514657048770252451402029438485883024880328055937200102488397175002879913555609186433122596558703986746851496097614178554557364831916329086392578573475643138236453903188671688421871137957324181442311368536997432706836453712569394329938471250817496626069568507770155414095035822457595085534119189798915546022411446561165306010607877738365731783700845804356594820428497853389297415181405771475648028156124106474877435015095163738083173226258243361223836688909483993545875333981663057140503382849628612146333259029009489909053161717073341782645551804856518235073422051170254748199097184917495841840864979560729749247266515294908901108287825356596031557839870127259291977912473276699696070112281447892642396940177255377705489660060176646368541468591630171560848524133587701429255964480180165551503237015021457527676850700649405785716007021250078416556000005265188806141645752926809834630684990797429241604716649773009429118770803424835907414328366811947920986030368681457508339047421170445233193914713906948964937611301256361830368863067008029491440849139094145576412232259239076965531238798933661407389272143875954800431245765383249778413738590013259503103537702991560896829561710554580128864817120016478942504864665531341752034360927862577512133812231466471784775270974546320646551682917707733761356524472726479438357395850471183793226897708625905498124659334471947620817629032685996487594948858381362606942703226882519048748447805422022911564463572165047080148356488737231777379621831933253780193546040970663369547199875546935728061145138064878892197626381792030066630801909397836662941949624042151989827499253202233765693569534940662721803882090949559988788643650637810675036107264328085242241941632087231778996355065284200456864540968681737908395765581125322677560351210013602110671166957613956277763184298250877002726050210530967788484840444225492736417028854238906382585351104384907907276391621386669160522186481443578394973406045591404424995163964394656618174556174828781224625620115532365319677108780200819831188849005573719465047829414769347416938753513181043865021886651678914025338379103052924446470084666779741947906442029091358372153846628817917192195943173150170875822787022320819752514091228470290689769413608730966731335568984413547337322262942681977852738459487387977625070975420436917704160405373610652358601320934619417095950088981328566256932829887169580454831533442553005169948793886234752390735463346868046171251410739910225486767037482241479214245061035842673019200159954015714544822675408491710430588806145792544734538293899567380325232575996946270089923322020259901438023168008970641446167380254991764410617890229069215946289231322132197964283095228864772737785911044404045791067318898241545684977850962573603806508737963894496100207043285260725354671256100965629331751291507054344221388016711910556570901166539345486310932364674737660252261624111205789436645532194473337928548571141049427409965643244298544228697213847260912323475604903198390151946545698773699512315726968384383211157777064119756493016949628296906222112049349908258475121657885821683858671045101860468480447902339864999613312222911596460266954847756625660096720192818205661134728665958859747632180980934559029227808883725225212740304682389307088609320248216863195341962881135421173152724759465592892196072038451242498802539601421423822845363561978502876011372270377622783320297144649760126828549870765204871018481760353331280953812721749645031292437145989495968664029464063925842993514037865419015360035562716422068084462021741704607320364831844573608577621053920660127800664207033340126133301421965575906235794364078154887490755551313312771143017813313987469469391671454927765029000577864142643082125052828468214076492212280118340689936794629806924752991424880366720808560231913116609153225877792946143799207435044533568254670161443282073654641962350500398219314344034289132762534240397094552844260465246455444044008223175162562304951323759094081455996429569794905815123309803745154669453115403297546723866135171678909185933031830395403524324893135189601607421615027162146290440804615621628059064058221923205009693752981923942167799489831181731259078509711074222872403058291887132889091996213187534728944298376985342675399715594971543903381706860834148118963202576707020774827631872355248590695745891485212077175690849167731049249438552393867473644492212673966651847403756665153253542924551524502513701621559722297102124298130462736481876298431294574540915603469216207156014412485103890385401153668595142594853812516860750175674068201027989747697144702801928926302696441516476345808580756188707124084031308828035984820667768680921914307023794319346315978783245788302372849542814794209101066479975627125565187978505570996782854372254719231029758995274481569931579188460584141716193060023931767422167537218211713981694691576821473747110930141304801987774045731862221135510168179509205856552347045804997141649097114692858393594067611653941410253392306304015060200268997009778283916231805408793243383613984093606068454903236006528024474081418116055015726444833383096514178556799868314145950912870422309145107233600965719913386191487214265732680379918020042637065886940366885428930279047645773927662962922558183299330950444633505840236233647279982965270412846108719280537949706339067054705726641479250445818833220406442302249521917297923897944848019360745999906159988624942109365477633771392094941755509908897918315504024837916526327918552724236501479925897515072135053948174468728525592103919670076700664006066966803591241561647688373455702484127891999309047101448299248958121784412423662407590036599187085654832790933991581596329520451326552004104611681867900366610940550991493600441082576484813013835496515803482604533670351690548225709178368442629261773078704535047425496874507607443952552983668334543300017334489090538004197772234796866387070048656850243671018201790893382969816695662829343349133607138485681128565348173825204904917625400866244789374950494703530713529032771844424055356578529223943056783517266079157273189246099245230432378437350898594826164075078250088822336437753417499938488784826234570633109658769370438111986092714701425319798883108059669717088621192371314683114103208164606645511611187291564659909763042157071328112879515084760678357355007089552263462258133879391093178758308575368037835644764271729656568108449286061689401497980645807342878039257669108578773416511205854720815913374543416160944097229373312778831910518893267429243811295819706632429760777504262381941625981150424301818005678740361139771433465547817564390952940424057330113812671425499018720105574417435417984238275156135872508011929187721851187249900031667746931144371959466027630131522152124963563059806475492965522905202749715492879914433223769384406801484085548254225211578576130842652393569763173582599933713778402494134779887425054415218978154330043321744405626704836507634130866175355229847053691297956962873305483536825162419508843512309722584826269225851213312393561754455338986731379883782121034545518296940259765019601759812989290542028890693808129984959363593708108234718008271303145317074093235479929550007945138326056667314717409709822669589744879926640396232997439928069848225779424837729242859963929230793712231482386583942690151407353581993557631699336694623907354583223014826012317822980760168155983020004289827707389009504073350255894864677934215674758410726139723196404162859723479934832449024692902085097611126256595171285990813300503897575495562380948018900127067891514968175080100768939286896554530931204497168776828596997841049519732802553643131139318357017235798654737435024715096176908083466926960329243933634237340570019742564142294379415783207880000746879667825574578177341187729652094802306481852338914301251698094673784845276917766969980078925760896220572911851603459351436280622039876249169056455937507902978893756053644553887835353790478504699832430474650035410192497270627070533486386277284627246950286565662154102705733311412760989898264986196895925686670555798882475976291294654553176659984856456380905744967514433554701879554309072650154721875546501491889679800820253502645898227615500123434450816490732986934271804386073335919843079523568922976960871370546063950174987555617463771391262138642459348105764058350767492812338683635529256459348172897228515376143375549797301928514535331684973039038280589381209367808940663196064250037117458710437932677745705374348277966084942060710588646265005851442624104193884948818309983291046507364920663089538630139480023706464643649765105188222636998679871477010359142374312149106669295485401611899768125111877421824538599821393749001542730731924797224885515289787141947240890644373476511283484663776362526287943136214797265316969371331610165668882654896040896745889529666319534360417107189356024375784894973673230799383864421141154093407904617472873729884799236978581803771062507861205284036516119481227692679952154919866206687770456588931170093492823397738346596013520453867458038678432700197098228646981234689746402370599597765921355955302520715148039023792925268719903461571245001096454885739925074498679965261357674626200252832387281441432879878439850950726701385099386065710862841783919379268498258454485377194464039554404745748423441861236305391466665716055895760384535072469662496193408107690932836788916011588434827030794546428567802408442830680190080847470242346797426199513079392300858636804367783060008972432345345754610040543786759692897476712573029116994813890472358326585221075413853106268914160999380189217052463263494118164052811319758507562727986747656132721796807207544833671832513996394565698673012675566847068427206957963837230174088663778534794835402270664031621436765800105955628851196921419586315454427643217470667111948507336149616891066705395739592988536011056144732146973464512805925889416745795146809218388290624626247303871180533751474842913721697358591953444783961790756342155294354600496898101019824233687336179708950201640043023199007454224699945304796219766860439296745807929362407735142754983054602302384848363244873113756669096245710879796954614495466134958609629144951446960994283490589464224621444205683201239656465302855761189872333311848690938026056026345588403268936515900790142214469997713734502646066002399399821358369912783799028001572448915396375504669158236985462394057546788381670371081435562281271786761257414095800345274521940364682794679335867407400238212131095721294999795110687302937514515577515227911201187984739672821631353047448716029068577296023611171383352991854949446575440288386858373401925203618926258767172626234339393957347359924168858119233344346034098144839125899323693767725007032790811766189794282536517011783462257911881981053775738241416441559225568301837571959863753869982519475438998314457560507555011082168926816162894356867064592218800907554219407943432352225304166516179846862490096578097551348316514472457503372094076548476835085897472608185107939077427710557917710388252083457374253620858224445110521608130736661380146039191889755357748414465029790577561599663851305093855597489216617253296341744619599782167999657549203694586783222013516395847210905150599421977479225287160582792613243518349522846845970502287337175399757883018381800726338972981459202782104187708267885502291665915753076573679237534708618211877236330805320722377408707694209235801876463297046812534383562683384994387614983948958896461237502885694869977151110404309845616445436310148564390990319006790750641551653568453314635828841432953089976035109864186538493468647765545735095218508194560641883849093192130325019120739471515743264538239255915333798168562090024910950515347907847211965479855735699055514665456797117306075394119233698905106605686800017072382529553136902818991806298135919959573904684165542623931581827270462033530550950148653911054270084320366137430096764350318141666553396178829426280463714638456151037231609324055382791805919774221258424095352806530480230406590041053322069641118379111566720367014490478159267257532946160556713885957907829934972109595850292424381707815736772452057623894352170697206696133168689217559233012250226624660425744518252658373597321879784544868222699586688035857085292727366811683859996880478704109426733499140433627871582489428041747041016990580345834865031562801644214947579530659992156107187661192595659465946191245228514112225327360049794419933829480545721957530852387472126614561824551325846320689252490936275322961583156445018779660639670309480165159237074638591046244876873641724616744235068215113562967144295543106095443443565053612858076785495369911912084209624322648544150007461223646704128462538389669168236508330489415658048175804567134551509080902410636789280976955330754515417788101596154581974467299212854815612650931614842937772158680734018113941069805435881828886494301328258238831985908303581369744263426239221952067630156524755725517405711731007007563345706467581001498696074653387036269084924571959636808223295497135907229277133163445864089618180848096474017319573610067116131876147059541110767301516340745466007259152595976180188253363074005974864610536476067902649367207866352905079421294947500374092323901231813077783716032916684452865670645792743458518585095014383597458145147580893357285671953994027320025985921948919781121806274152211661668114393049143791688496661516176573920243989106016813731926882344161893070262474135456227529448138673886499624029284388126839720887410480430578776217170462988467157067208642679048279023802129557222720756673995250552938109829522470987798146740444832153124862633786846193760130762361360994454026732450754602204448858619810298082998819055036522631972217109974365041178809967123435635023677666498861968070514500161644640917334510847933311285945585072454514784967731405256763999565677475697107796775877014757980829760149220277423358091642547393168963242577873571299792728957046546603903788795147886621294900182659181282199432017949200064522608262320616212305117286757508611064089090447529790843478263000891123044487029097077395408082577417242384114432699970217524420429786364698744714947232558773904880547221051413615925508363933044009288965667145886782477700894513258926304589361195555984175261880213248652576379701888036681886313738310691369602609588529449569799377194500355218679156886856589412343060814190339407957131488600017144313079767222449737779579778395033047053574512164425141227075860055187155289166047958450200294938548543650909470433097516347954549700742686069033639558050351463819730405886155875178878007488041111983838021979255327949536611384670849417435203123323861473361071874607790924763268249962310305646223971599900641252545779220239248206061859739066506565412227972271873191288023295323805291704407402992946849512865546630922500397552525030128111014430062467294155274666808192882732213282841813420313717327855361677531727961716385659896406146519031081426494386328062398814507338509974288389777967437013439550353619247457738082455482868488881880175000011442252213168829635836641163257263280932638500529443608062027296368297269744256582588052708595287956104893946129596338722087649832134886247448951697844684653834726141459267560264255437640223261754862283515112381000012330671462590546231984210395201349459728337376222491187564825238546527187070601538141635631404012237080443737763039517258830940972394181339923620851421816195522038844695640856701023053786979175164344995843703169314661231664540851732514503632993467679726345738364664276216138908366266555873673842964323820756956241086140416380248367093502781961820238954023527534787639444059785636026343647072752763908878102273734390608107782568963077530761939419218560699876700220470890105903416733075851153185424333494502049982531336680495223678270508404143069532106787702748356897181926799885465359360693650326095339260488365598063041937802088062783324230366511829876218309239245227967948463756786040236740502221636720762082643950713557151810931556481927775337002854377223752269352221433074515569035268866085750134945641860351585755754446326996695589202833543188453749305234290980239580914883636404228554213233491502066904640289291776935423716602526773542037160437400312297402564375825639636267746799963907515046446965494865909151507916834714030863255025658840910158367539052570936834534622026303968660122782022688888199516346182478177277517758892172378440099894568164880196094953269066894766235862207078201012738148680576389771085421915518203051513944766016464594960569635731633232488634125505905024115730490058728409578454105839812302403166740377854658017681808079371161396492033321550744049857661951671870678933144351864939857604206497591125714921166162524218257802419604925030555203509276135367953050455010396183552967985455499514944267233131417767354188305781453129917397446732329949276233512870599275511504518506000399552946240345760592065730742955176995908995139174980857014319206858890683807674894641144177287439114168019215457524072673470403972265687655653957732949545045452138104387747625046894177881826998677594909776412593940002567838360661142800259730110779380054776717104311268258186163341642187896562124947963201527787140141118114337835215328697252016812532171770672228081498340175698044383983495166906120550159501369977042409429992977296714455543102023934913883162295017516135504036648237565267464678208419129326450921472858832335620421779587599840590297386717398410205105142008576450407588155350582228465576602349505737785090319916955972350766409449747737034176985165612924777762167214846456145155037749047107514064649168981066857456847652529535511402861726709196769111621218224987501087587575614369948809918119974148249238345008670989559728120082331123278116553803975137405822751312784357165800178485541710980279952138702019477016524383023717328525140258429684400868792104827089258276520166707394942606357591394040033478495031738307966195522704982789506081254544095277856105761911815452389777181846510420558029542323134242682370320122731364352220236112492230485510124455698896632339502934484531532946867638174555200855508172031129707548331667742104704131430073931217510978320629872828198575040801431907622524243944550725610473492031631566854659354173173564811935129377285835289822629260398952750703448172385429438951549046684791816369699120152108042624120665165524418160413446649360634763859350830880858375169633085419813203436157140228684890732628300554842760157506483121426252377596166737555705538030469214781657454125921592048370702614161445987349068026101286052998745213534482721347124167778409520637110578244164258688042858946377902303330581452467872052772518580575733915375213481602596913556525574109016994834736489302193839576257787204087622097073468206303719075027741745785040309804208618412925320821438666419809619321924827391695232200217883455248616693746237239282840073187964239122556049191410561407686232662107062288757652529409100840242867677975760850655158447375934194932073066090110552897256280360976785705398178913843884155182598187806291369219072822326178522805899516336805794146866979170627497660503069679322517022679758970440211941847356381482313159072007577395000802469931136629704422248559013366647769428662378281498129222890478465105357737305572660915795412377084824635995607834756670495609507744679891961416511841743446237833953830954910498898861421459900056259556493678098157188092934997771056302680354202521594471619558191231103599977132365606819819293323615380805521515109856683446966025545263886320674093267802026366720535348131161078751060085371946629436042412716801010799071287789519591425898260379432199490431905859184939899790876604021554545208102025605581512941663943583865741367098343391432005924664097905593080742280656141289842753980019809038625450833416183431584137065203087045622284827630628479847984263323391722332879741741353495011436480248675998079533951355632491875645406352798599484345964999440526748594777905370732181661949002854619282648826307673709388825730577159245016193198482009839522763748272663790660954818965797676361461550424064888968819350131227160965000239731775701184698278715231181528790898161640955871991697573793504725128003429560221098317200375892806364266326946180216004024516368183071043494072241788207065601927403818971227345993841387669783893565081143038225459473104583935881213388756516595537315489525915492340456822512813410815073271401315221198884438164638011957142838491643874960679649527875213725543963040781924867782986400360780490278456068955636654278685537678798942434130014158722444484283400323442590880296296881963690451282644727857573402324216112220465838784272576096236490010307852475551339420285978790092233208032487652378548887799201178897766983423238577736924934072472542551153115789596039026442622401582611420018448092450251623235690881461335540968659578493438527647646969846085880928301666227354833025716385040759465870664658363886826481308508483552946984237272223557933125483697053818102320530594289394883439776087709775783123208182327030878373175359869129251121298578347448946081950002973493147517259587432633884607865033483423410707586691172690277471914810588137236858193487803841657238118767137153586308043230748020227403688995270244222631421990391480748614387903977307847226746720746325933973343653669608457606097800484713735469286921093597921497388640935926831604603265352615594734932634653847118614650265879041025937888146426310212698551784231651282392491534834974131857429766270463797196584865139546238300084299835388184281611411169094398235729390426946861985350648051034358571369682142459860463336150086221526466265970305407667087332596507728607351104746923281049099665656700454143299036561983145485210043189353083563230376709071791534901686255732966898112650564964269142576875645005566498632882380383263123457585868687732649744021488003938905580316549838861328864331597634289398821603243727588100272792612151732741762393885203627610137555020497781077431234362841881393949235299489811074972573805113606382894624544884606572156789245578330394500436225230825915817725185304796149232589033431629297451011875040140974574564551133034605291953147068389348818834931439740446481252716988595929108877329325619137484663950411383212011631336956833120398148646133310967547554453818940348375473411893914309488407052328395178620656717542421959128068684383368918008994642744591438029822245217697967291879589660108310700719381502408150365859359187847021283881733351249687753761759303704996910282861624147209143444374501917380261463177473114612933186129235944207614529168232188792805261143160836981566208157244044407483505351732178053053986218084000700081542053410406616675820338927055567777342831781055072498437100174041743356998886185663038332067493182675722551847443055549495174140211712036527848935929958626997109816869926954122701867738878031780813066029985605821738164337958149690348792154749484318530842639142105458401104595146220709110090417628888989146379049531510426180228242035898610685171876846637683828465431539475757854109143876504899570245513798352552430412647305596201261963618964371988707083166792424433892872932650764428744427678272381861128785905179082307403199766445309906459532482917890865684191183863635738496294930482558606477112956138985783528273321153199030489999311458361765752455290931792264848868698024623874671086395034988682354511844272547747721657412315244784413175364973503509748796420714484150666508253471064602924273776307544219580992083806122936175961561975964029175118545308555239067583856328065895993802450530198153350228103765881096555156648915860604255198786234152141457068383342164059721562818646102453189561358400968637555030602435880105848642453632316991504110226791369336935424913718742136262835511701457747975560763327343956034589876500485146688399151043506002091986415908742632667740658416369196156620302621703069047447748909623129167465056614593322268449572807483925103633998096750764942343354781046780057832134102641778026546048213825016146439275829656753859655544835603594328325747143069366457880356571262386481336242046535552210781937208979661418872592408565878962556944221020440813750844326404378791532932234714022172914446094029999945399207008776732426998261097456210173982721144820667192809354968491094735363421889683852007165530728366974479232238009809849734554639485722455690640863238854226295975461723973036943080018942843812008608843567177935380170043355889270298339255868867540144509790589150476810005207116047880345569360685879810015454685977456666845837465609875688075336587073300815130357670730878488287618774712612833204701570704023368178546086087492780544022174414213030344775639634302971089023356778270277591593990401610011330157770776027082857589396420022665597068014963444225503006076147090834872330662807849645771914937070261983388639514790534406535510244098863256801636878482859591592057562776250413736657865204447028845555080948897291764511753438625202742314517477767841374300670927527507706056723380918137988427538518180707888321734652131680193028262251355566841686282529962638341472515334292996852769521802677494092989958487889182305017489450233057496582307359996009792283153056420646698373300725174124323806442367549458532607345699194880690633759841710775489822225759311354898930691328897894562606060316708883703829387920270038515478439272460195810542195375393200497556719769211971546950113012821437591599723374569671060033051282354724960810500838569612348811103149409144411958519355723632190031457069481592575793095130040305871675591742395134494398067526774444608092739654580565529647382891623258336929878473036301165687841150734694966388896794672661686983113494133970541658170129224145781872494802382148133688675714189694613952864985244107920168407575141629262487628793426594149359051929180824579249970265433604476628193152260411215820409917270285562153906913009760748741580140248453222423012756081036417417776487943962596915136360128760885793131133228138040866985287975450620120359666821421005010571029069209856074165067386212725143924169924297301201607642141078442866176210940924741842481634422916144446235279327101490117861011062357766219269170220322935205843413019613924663324583500941599225806070964691388455810010487547901811928082355334506974911047623693170458049872099209871508891283184027717461807462436299399590483780248651316647174903951255162811492482799627513728852053465728341504822686915883326123225685683958727870561253044565792897498613379344030994964685549804368279554906876755948728888686739490030642214657103661208394743685005637507142911370895658752640517971708673197007381632275110180084631108367911181039207686814166158049790054625720940105983194407401860814885868102394946259964173177743948300280154400853552076598466565785340093425224012839550814443842089981450908852688808179340918077674952724956252137034876776145452529616366981927022898432929833769766549004943171262570386737963824397598388699462213402440135022788099307739013880934550936375892178441936157173145082195848834899088685170568370571011928747355511885310035290707513298985595149305289645698233261854749927580750621153423432804602099739348406408722843201123043468185385949577758167963407370055083426656609835228751397822125038094007368531004037976213773988843076715693184629727144449729680817414784289642932146128642856237536308936335948593663052159443063077746940904525232657367702167446809214228133341316138903487048223621945451084024656703009535913886227685482893068210211324436006298378231909287103642356639223559342099244412755134690584189405293115086341690900959525578021710508809544928068660313325531177637759218798924266634841124947614006718948738081001229379331623106696863493539960267702793019269189715188313377706886177218441748587685127667425058712102497017015498204301521648678345321526660737973948425821181447909329664410931334735040302394376288091554518113730327534575510605480655540623331072897715625975542485880463141293276782020607614182734892796340772846551712705693677625725274727697771633336454959031435034255272629033725701566901825617241033506567074270806050701183762331361372697371160431015605217086320806060568474862611519340157974422580783518375576435645801054504182688090091017524446170786724305899040396597529464449988324646064192108399518321198098590255986153971436296565302236641329531627867276937878791414187963096072543162380290109582244814144918557686757662605186622061432684793224970936960549105761138586498439034406338064720752896594266853326058656371724663573950470529138493452015451349506598196855574330428238148899392108066963017121786909015164991266277258280717240778523288058185024581307743015970349550912786618319873787307925004138485617481739455535967955076541600641100149034097368996154029828041473398387108767402523196798935605343643883164078108062380168487451759718338635271027139973899733720623935689726328885398050689682493203736002332839757252231767018110653726783873997293796828268305858000179449483558362385997330142873775159692723560233617418064245239109939121313427395749532498945663638163579699303162413801441862192942346922643168101822777124160932814810189853510524109121934622349863831349349016196411962861668297839596567584440092297357582927595261392939118445501043237988168847072569698985158156910174817091424471712411077742222322840271688685280866383398236915067639392834493958681043078178827053907013942283307592607432698571718036582319204570582625237038831029042039652748618656686064490306992723587791774813986686208762101315305731551229967371343615074097229111007766650184175680249670215325610801571854034952953393253846123568140821211980195858591374608218986277419931994271154108263090221250764504524714409970807485053993841048895164053306484402332618521096183504925712309471319054858235155184242147061396124402029827804198939203268612796912867202977186960563978208505991784295344968513221640158725063989090786568858925050504778342681524927658718103307405916238979443404432898153164069630475818006222884075619407747631059981417748264713907138761892816231228760081397847236963231145247062182776688179958191687912099721740486834170689149394096928763455675415104816820081834190081977551017820442662671741324030615941508065294211759307487113167830096284921353500301762714405389114550622259881749348795229019827482394345202824529915609644630828255240248315029652806180628136469436892388279365721613815247559885347334574351513177588720169063517031991434678967588528867617892756672533392765771879826273841446864558863311145607837013816960913226851610122643203707758199498045553765622701536129806581294867152043138531664287345821905832568047856997674516797523262940236186690220053400873647190187124456530542657319675177998395549138015442328566050872534840685339668096100953536374627316123459438877685282274664148535376052827796529056376012202073619045382435542668417790569843783778354136610994407427391878322384137474327598485203005831315656733753357128030877529791601681220159020842194186997082743230837439456289640235896634414654165402842099940813428013070610573649148629018413796907069232231623579801498915952641168167145671448612426426120687705159849458309501655584494823814927630994748928816710935365977028492526274944094570115667587672774773078196404643813419599995884527248297510682515673047674222568124217942928516675538435331879341326232923787166815934552877457595087896186527725108705475659445804077567556520711096201640230098896929701791402615196391376941267048353736273021759157707581730134306553325182846649944677067038389827897077183963155954069275703359846095754014257701593140342488062230424220289547201586546289617306366337151790234060302675792718036981734159787735277472867074342476137007097357408279823837584056349795090962803492059312342640032989303864593104085876459431088146281307747799705655465479417747013198326143740895351200845396316102812805334796942588113402513058967031959771572551909739016871774190437209394358400147481154073345373376641129621407401740504416491829238098098505101888086008141252872759336649527686615172648529515209523405751146304393176395308491053698314611658002259571473455841182612557212052404287155808673541900873960592952176262454759159649350994681423313684337431877640696730336584222721399049761342884177205278000353695108955329683662960700156572167263252917571146567325203802727144869763766958052624029087911438418789433720489645895979434246536212241724034492683320605184826866095058046189541693611051989678778933254573523550356486223568687783872399791066122433955236818584471720100567655347060062065588408160276330165628676782388633561798083440934239867058370579895459340516384958400517388177040712774156316444684379284917637106338329525348743852326213435018864531692600616126492775643676793201509002304320909052280906053225000460938438351574661423014021950420136968695857246103410231817123311664255334260507561369214498697767697102020565162769771660312146880760780789748013878395671404027997224206504966574791234896237220059691735448832492260206447675730313047365719992784384211082169671770936163988776344989684731791666882652522287430560747713287267664431998513081194083027551574446282702417089550044605064979043076471675989143993624866100429400503846863269397658945092622533411375198380180032659626117529992010478944930537947157930436764826721374629392064171696434162161538376876713188223380407770892338891191031224706315645940513181645149101984866705556596574547929136054537888575221783749956327866791792899494353634203890743030665696721815439820792282593263158591513124368854516098629417061926076560051848539064872637518853931948431046776419665975945998162911005442833334337166397806668379241480040835862407718346868785776809719026502621656559342937226045975357883852797403273067916047619590335187721093935813699556210992631796581448894285450067163610393706473914540108936626899660726426928711004394257629205315668252577896487645924630755923696872335733311996960806197427313905200006494229903353257843691458246057364424504248782115285721793444570646098151724017512142152977783342607891556167010424500956291375568392002841047636237007736597356172352709264525009743520058522791577124471156097542210075569827423717746270294967929920493057624317570054219389927755572889466321529625227423857631467697521317586410939591503016634070270356588031676330265218529887158400420534942988645396682164412653798346294482765049109521774614366269773778972626543666843750657627014057865028910568916890880571897528202422849590505341096435424294571590520841008424037065778351392453394637527281727076500339952647602380400186759008496266131473074428626042756552725411948156173299030662689035580697720884418184384864088558387260399721094930240366854784654163359927314394643009508059339918501768378065725023416383444153614680905761292708156292174727113998589364717446955029700855089231691165694118684951086597116835027780466846189166364066176752263945849244412055114507590549358334982760881532932218813138251827783242912792836830371383919050800634953881935680355982225382802108975096965956345672039512574413486557253686374615759272661368115241179541201909598069706569733553897580793045272272675694077134273065798954324663678757763479794441752448005980572885790040865277625794199213481198993501762293495499182666033853204135894584082692482668880650336846702188704912289853599225361054054024801721386740084428172096643782927358270592758682320751803366200990442398058009695074842940824412193956748217488966692928796878174252619563312498542233902215094419043169648616278073509136858937963977239727987331145317823089778260213200604177384174200227636945766228365747273958087529590883340175745310560414532128949305758175138918163921519188548405550469541315749488270736254388731035914618592730337011485984663597664059722280658208791859108545994680894590342982830996325151746488448666188218331651794225010411709307950235727291827907414684127921162238218544498724177869412560501888630055585742455543271813050443822980460247945076507670104126691662353428874893947070183295059395164211872557987363978954621559306391104372767591824029551385718481722048253663960944319288625847514570740637547541167356119485722743828464564646697540755069961902313559327044360810708025098358433656688051827591471692761066250861288152836086779048473555060185889599992303276572719125468111477529585744050298118634402390729594026945005831195825708342537340500184252650742899034178202827281703779376960969116125183216248151601441647541167519056349435663347191002337344152120360104400967484927161139528104841148624871513375451050432648557126617534331172363219279440888326189379965707731027483294221556564508833786363238068218839648628925017971449951838479560125490979823885520428647536163521443439614199837275267245051279055475680874876690528391041672560944354169286212673391374792824438901296767932102272701802375640262529578449246851893435298277550299470038662569639735449600637282536238198958892869874042237403009370597972257649616915842991983416794331079601238782549663915322484771204184076785331001843125766203934040893444526845874298424797072785151712510280040858904031136908120963265726517902914071266492616355734201118274064416961739325701051058741897809058260646293284464858928626357444860690500468771940915165311316021674187892356181525405122323821444988625290449130244408741654752567283282111969261942237374118638059254284673565372689380934929162179369404915283552068381324380573799104108839477058959930136923376442325775630184117286677226671075560548741962543646328854878351372623334277373071486814188751289203946715895337562867497617471252470582450899911223984166191199698672166324234367421784409948677670087283833637400337746028454440808859226506082270792538221503587230219557422897790725700251936862946745143288064066981921228182370616278332214476283369134082832815933352995632085188874021758651724990843251201069435638495321964552559696283675998321044492044483344829853370061172537398824059546408025838106910814252870816759666885138540238191209313004560310938840206812237804201366116151271375474974563206931284647087788398858941301280912018638738419510871033240777086156855737069842365392514843797966944602702845246570993522529482264068885869449398133395676280833209188827344813127543049165526085786187147254263409822651389371686168095878933470757190411095919719791561271073254719917237664078368151199509038001663782093023265335957243694509143695747087034519859003169254472465409490240733952203781744108011590196562055636274715148849894073018321486790562461121156988238907427621461439691853813046188247716282118585044370953078657682027085844427035824016755547538780489889868016844136300926623942394831436409650209982113090118169285190450851679621779299774556841806692516983476486987619175367167632433110826829420227450319379890666236072185434802372889520024131456258483112594888135229571897022390400492823008549461974252415564081407351964876837267965778483505701714032163892476741087341368321971733988560250852405516836586547915639610056226004437869124189205241238071869754992131648950101781869919537918561129019026514219142939832420298835673663109634516172604706544819719842783839156938679496202642289272257485222298546306538448218622391982015689122686389571500483969133858904515513236679938779504024439642150539831049878329124350339852910143720104490207590116831787089792775849520924526527158354335333139417409223325151708649154171935979153719204660026299244216745371844213390713869964431207085759995601085282734962498154441477250814363718674213502674983696028097791626262615649183734168388265263043156746856965084764842290853389309718527878345028324379166776976847112009507318848020076487034395538294368250042794735417652540688532776214592471408220666870818665548171678154360711127093003310538038418679978527630887877470195803259625024652103697202825792143761463210906048002773440266267119206187427526690801615824952646598422397745620462602973414678534710251900654943968260042230612063889746441340638284769022327702306380803103150787411403768894006441554289111395499602151727878801414728520787145929115815807346483366632273337275152801077762701350306885510223882221091189587125041827767101726202144096032764035118571755830843987974970590340360911869661961345306735214814870378502245403492717453914401310932779073878924983355011523309667515170646270125968535992778935660129125047601779622382810633357677032985740791057997852355815491476389832605107451794457725435944381793610948577152568798534767114272842895964712396040829234339471134307767909437212970013949543413065189106036709713210443461209802058793308938231689148068073078810737125172630673421444487348932890122399048550418854343046123358425140308154873260723047675645397739677158087557375239236595416791692853657601925992247692440047900664011808403886771175763600552011574993364965123981675865983749314698356160430177794918122770179049930474900953239946608483600223571539469721905293501021134509168634358762589441773095333150669269380020400717108862293655241361449278479978361150216864708957132526584856295435789675661580462490400321519994743788792791810900649690899674159709645553519573851986750220529824453325490420887233999337443467822796303910941436970205746654471392035602664057031659757007001329400767315035085436293796413819867127677254735846384144153560961702934960500582755196732277051286076357842198811227730158724457756380252218304335398370446435546258282869426976083854958585257541750350209511900923195689949542420158908380469840822139681829117018137828865715387897996041469496042000318087783471665675432515238833880486132301517236038435851558675393917508492500060947572502855875877894616024417921469764006970036979061089624927494539961060832091721436600734574353301882536622753572222777595231309176538003791078352628378104113741991777459411735348478018334121555393676657602582084298208948796604231415950210737322167802725243204385426536398877038496025807668735195999839934185193028483550880298035959207313782211180663654007278942246600017842671103789546431020823945480834906961241958556622340824225791019731946823556246857860579149543981500405095600471638373386600427249363310490442462767480388742378897536313153826125469963239459760287801391158877030299819749782533317371824839862977011805179547860663716911721156308405283569634165167251943974238577185279023419547104907691256373715328803186259536292951177966013405333756287703141224229268183255845491398907125499538335097644053257434870623300050668235570517622913805190406813668177651620245055684301149357201175461666337661116138926413908616423861662260081095836245798039528703316555923151657729463222239275084261760108502348449193955167114524570969255671334306928597128693884007426016916913377575858655215301722830704246366410737920214781787058646796231445689060162228770711644505785376908097293592558066342778522014869396981347217946171497209245159109593438494617484384233865703359795738062457227684007567769474829186632188864933657222099175869099101305988893499016483127721586816654498781366893471505990149539846693178844764435024180638242794257019037365317272828966838124442796740836072002374994521528754780296758631544344452522323795496811640390671033343147111578738061025216789200354079185229795215173059502773516882290188005360773257716084329326257661987722387623132836930982527514010443032480905714384570236446587216827975429781779100005043010328536245171372115061575011067465889662187195519034954695894767367760865988856969522898425278368164434912446457405661488803148821500952182956290476277921951276815525297524408654638194373575168120746976282626507819770969874248857578111951274503271057207693434225573566457383731882934858445366773019613340406836985895804834520168208861195650799589104622091529374000469706823786295367781118649565173413113473213575362427089642740215715329709528674888440315423864303909335022605841549146458755103986984130674287274819184501813484646998585929532911456728052684019685528383481597959359268869845732657757806632537832217521676752540080744630517257046512076177138269003444899992999072530349184237830300351750339609738452199424656897334816470736121162000849388169257464947587258707654120501858607289297696305889650241724419582808028892470145994178630928072116925835310457904673624123180785724165732837787117708758479845425644515128578278838399527610183978981651663076554026959011333287544466865763723944715331712473144050975071399778712180453639758530195555774818726447277505431201633747306171618439107941768943762169723684907439947949342986689050380277602880805498242030176028221437739664698392461259675921631563179455662388606006794775794717054397906237836107303192297054161372239002189595952317357125754175603821078718183925301314191284657605378572047447905536567700436428906554216600682720730723254311619170328151973107536411298207319708330748399515341620340076998057908567145472878273983302680535563420480671016960859686103191805104836029322131104582917590691319668113240612726515634029549695287349952991672710398677545205394160570947680497302819188823507025016997551027372011269344205430779187697345989248960698522171572985515830268709587598442189612817765876977740661980661692130636548912138310209260662489470325117390564997455430280002643904103044674639427811895422911329297488307966448634595036628462740018049243193933318307092770738990952994479833073450975201969874360937023755859430413323539134978531025678175531400573648197770576034150067918132930603088970959217032471201684834934008175126061252782529727590705172977075495675969117452209976871469224404559992510578329127256739647070377307682994829256336810244356541062950190521029051893226128445146834647742541098146961250163827560666721481984738795856912751471609786381093486353683721072381026095962174533606195140739090293192621419061793097931887287748241197706647149133873218568023884699438173252057825300827834443087217350715595106587433900749229830251088310805156429796076029935840739199638561227185979509724309011215869056155397430009638933180570362159483761340543220741011173828755361451185897242219102283668603259891727401717113707105589426395125941996328623605624227745126803685807056517164628884102705580768430910607732628253390863713838491075388313715248199789408072386229861371113918373544381621587994325951546688832244814163830302850069014389469313680879599306828211004901475617453882947953084980254188109052041083701565552707336077646991232181749630863154134170645092608693860545326075332101882155739061813706642739162243265536774646779271214314832031897022687338553989325466594497773838402090841109589194124963248985877719391616511133894698092839696368055992284569537171104039192589449102026045725146932219537530903323563167319137759378867977964554523239705801744264828473909569406319064273013324225630717972413698023166885068308415596360857684776157837278782336932144912700241330485450564724442000993571389412116062740025604378371279103916926194819797143513444693285681100966365529044756124623243093669435554457770861617289043148964975013872807109930538129268813936977966930261674631136633838458103602844873533764918482831712632081405306907648418565059027566554935265177368847384485726517908412212984281210354324642961128226709422734586818723952434134321168066017766244533263461651015296305420825038227180374233626074013267142017426781323915595433300947398935704173422968413412765209144853111555339579196846463224548008754738281091854530655037697736162062057675349042453194096803774132976801542434932988102124394540249440070768142587560744927907124811298572904659513089284211353991490749970615358902774204460271841450101091565855735144581892710186242726315755240398740337852805616268916713225175260124037399179075760188280566455402393869957850777542734820394012092976811815494306206378823908749985617544583760434512680268754229443344727079464763291314201700520122807336835212723039808470040567439085239506039261416278407673516589206845146162316931744464644186230533969318375948944218364154179608117347707765580139744095985223075737183040054039895627147179447105934960798168282002342759231106375326800822474558172351405328684468134108636837272524943093819169849384699522327495190055297369965732037669397743680280230297305696257204781636964126380880432929717202334850021689479432755651568000303353448666862484058430192691557735465196274972574133354428776610877071320645885263725909665123525107472044824155457048112701018328175226275589927106363638523810258992614811296474297536523332515811475672393812916557513779408623284889547360916012280978604304750913244476539404847071462200596424099871538141445051997898483371996024095420898293666526541451090130473617627482664214346725137710605728815812553067300878516809708376600397153493043438467212964315934095396763575926552077145713421292305941260219298030499740928227375631751921839363281643617732836749985548602829514955948850726288886548691228478357241941048325599495702109382948387848340526866172564423564582165108766043576959576414574711230705767685911351808814579083256384434676410117862736096751748729415961715889531161180674908770106794156578103958086576672234599594018064389360608444574168909694542599264139360418339455107219376013987316564461406695650852347007728827483125536053417189178628538013446529262079539187701083585888739572679095344504864909129101711154688617274675258301422819807030160574272578142458117179350318575182639833970853145117720882445468576269938047177501019777681105845863899739418804875069477815245980961987052872058744035111660320031074929538321946857966317591750612396120870113837607465806206362005260605322590523013292271259986727390697127301065420310161347904683751114839751410389085181484959833644206568765447685628318580446345583621390243818802563975187455080221556394778812464454525803924780349617563957069321219619923111979096435501409021897697905262320856873383099788534748856770202606241156629130686270926654417138611314340010865343871734659059672281147129028947305208946611815288879624869046653997435945438692629141292594346317223165103282258969260835182296799398517333124979901824903307716904254106245619053849235381509310376252696348631930447081510478910312406834211157812278961382786503756148792666408497446632392579953434346604589588061269118007528150915138128413159276833789091603479413951000423781928203764169445506655627880971046431576389121228424997384358396734098092030245210446772586627586139240229857848083030003498058996869204296364459737563208189810250231469137523437865162148168479917827008689105694095414366997842935100792621590482301103032109125168226117250473327078570847573955411907504435756618466049000383242201215088357333123148925104700362493012156612689644447980648859449046154027774440670286805909554963147688582960228290538981306485595518669175280157803187206688066163615426655608009661880534128274339521372866576517071512927187188266592264111099781172009351184033134690192578602943408456885497598228936434033605518692225186962045147440339359307242151292017801368026364913941485645487699528328085114008234080613340394441925283734717369246298822846882941913843651112380017445222861907911588051548950986498907812704326466351479658299435257448384893735888349347655619286156357391772538071916108367465238728884838174768595849859040757217212933434860399912755740237256637173645596905600581279724860327908151124179295604060254488518289307445176243171580509401925417635388662442996573065120233044102320304139665454244745997619779434522569322252118712274889688960701761327543762638629054886499028350683403947295253070223104275692027028795967663637780136279165585618975738102233732603061999487419132560072154671373011671658272817318555736950481808823412252186073693723596366530137542055669632163618741737136364095194544604090959676437919384288036635831816099451384046467011587392139599556985020491226248138516447238106391133660280922768339998568842197384904210364477663243579093521628966147588897507625946083336055933367625831306070228468282342553754269613896401799897048139185907705833446604611092240982942499463424866440209592564244656316154815057709943656969750267641919468695174608459821212119481683661240355760876543021585932861391690540715008449677046230872321386019008468428995569290617982681119718783238977262765646018660612967987047266128153789309863769171551870763794395760170721211969262223358668250991859117304957141878292267969093387171846623775297795430503852579241434727263814994534951857841659759352965326784340202621279966965900298718014332786939183845027125658435443973416111166805192744398873320477927189888187696111498855995356524641824258731624261010899033213001116600866052289863380527651426594340691073566822133043636439531485665165841170172608968770017601715804248281901293007072099205566922844689625405433149328839030180206143207952740575985951397650530077958925977147496312499908336426438046846736561499466171351274895778039952047567871457637119907071652124378759163996542187662467648900258889498064623799609042205258210760620082873638420779606245591778366424785457438889483282416797835564002874021940611132391557754783466367117119212254181184924614638600872571545249362011212003321419488330551972437513933945363188073723409607380842816405993719862224442981174937778891152169419163962063180966858356641482250287859612017052006597851999905067651253251801827828271956982290565582733988370367581012488726044071280576421297918671908317644689910135563963127853687249779741753716796168471352495468060691805500069319430074051415507601248524690894782340648317984023867821443794121775752138969995391601759402266178765928594673166103791539319669601035491777168901440530589607128254694587989282544351138894203444733444532987318648981421913942847866876215855991585148253731331980814631669848463018394382458087365436530350973446488094989277103344836621589845719392723448325435563596854999883485788600252698951719259727707413072543428849365033948924996347781805759531266642422075969884776194115427578426931960200475107872335858150457938435135101461976850008579091527291558779809932317073236120867455356737606083411246448191993006173831740497506336756257412380435146778060223101912965971592587105701628307282540567897694560968334095105811762618467675409570984770089372921536956160757136858403104857724231350788451226838136378769652587334525727286131763377046786641765664733822608048390378681613283784292278534976800087673874055435467541322625480180044026426656601981441348809266296146528935922953657822129429248976835656918457204571021730467629293184518123403008735621147281447454508983448597423938004218845993697402722382429950725065634145752304731092518915928731945564060355845056490602736427543368424733088758714424160790540322054398532307485695948698945070128734259042213284854514743704819060094904836115630882264774649106031452108741970380429258856293109850266615295801780313273225979414775608013120404943382890847223374908693317127493174156373172666431215917297886604472214587077236028996001472263252072189922776671166203667767058157580744479052871901221006528884804802184504024026939004628800017919449799720589327138259254332040142632238075787601527555688329130609139899931915139908839065523260939962907041181653594321889251887516975363898280015640147858910355551032491238730336595462023642068124662547159046681615275589922204878408354435309059885182044259748000536472329609583020690450531201393565804452247800980109472918492823944442185475929810814605767617408052639613973262699498390266386260982443673321172575760584486609336122098536577102482454577117060607101650996966793095212049965304462083568244118455664591286053142858471180177168229125168852656492059480621948747759896842536827075903275814831779209243107417385892578160753976433000939750005754407292835661786241375041871633810611246077182358162893746893372893443763246069375670335123419061116931497418556773984785165132413686821840725847351856804714196397437643919672983702164065859827040220816348616779231015973389699144620694191361137867555720626152213113710462745409148230322748989505724080383903560724400148874063969569751560919527544241106285240170649949631727989017413530738072987041129336756697575459015999447103402648647668136344304607466096312614738879311917367565032303953626977408121755907742772572737858183751286547171520170879997366999978086683935791219744549883336093492823135023583923600265154085919561649740200193866665860399511178933996852602621605618509105994311202346720207501834373049476237790392480794025208458988385743189153349927511261440050875561961654799336131979945681887382152758302360851292782681609301734096630958524311974904500722017927189030523113819347430039519692956103191356123457762991873694181050353735910525219805694581376471277315556385301651977394694638598767345108583190647680411131284790017071573566462369098830504854333066394747445362748145894419953053696494412302825785570667790730552880826818286354919482458358392311762638509340035536202091988306380991776543085651825390115534000395357227516298050697403693022755276983112659446656350767744088554591253334514625789745466961618156335057496728375989157681913967530619742913314330723805095141493122669334373648102166238216282373974570345547406579869309610889155487803708383482282197937306502138742786321807500604231985123690357083333843825172359762621158426860594366501878500387381623016034161229238289618594262251418194036912630038165883970595986745299167853782972887612944040112992606739228457910843123633640386798991139332452709173048046152085510928355759682829304734904107287893430004475381956229664607071265649028124261650817768329954967344946566103766316982688604154170241775751964853556805355428562399281541852956764450481938949397389867311014038828325149203436897505186375591154681818241794654070255449315931118803738482764987530332805639196897860825702177629990909519912865698147987180304768201001644351559932286172346733535517636118605263559828047837808888279475851543904793449210983226680566474684934162228795545676611724279855780825429580925259464131522763200367384014303928226334038547721126396630673858262399337027926715225359074494127847401914351822859396795990261315115081216387004484194980216320583317802731302174178818545551682221390779579845079347987379285814023016824414575737742268228959569703753734985771615965878095282677929701363827185789735232907308309051715973995025713686397898113097700685766466968762979531317740876209876723434382814628466924816289203490008834173385787829869597226482683104306002286771246518269397439069504547943996191464492055464661552682699983042970275344110949495668883508543901601734924209568534629165268401073857080380641349672406623235534217194419036042442737921191469027042442027603544839836157745445549649970720214967567745430469772235512573823765592814975222380970312982595772145277728147674186363290811270713873101863550540718978591229203627667686393396410021866748057838762887870909548422442440694185922659691481545589648387250934004121126759630746659185656740871304585500281585023382347999560477811802653935771806147555797385524254286233396306947133742200892265615835732500369342338538236101179388372220623523453245292130746102067181807032111026648525300719306788341094498777017945317595772097538777170021056302436979013500235368579692937869408394155030495699102157048873712344019911397333603784301207410798365475675642020280087659844989841646115173340356162821132095333079875459352867663810893093508942152496728587501266996796681347703086765104028762295354132607941848024238414864063852401194876639795832654689316415625179496825029818904383416476293655819505370658980332066957658012816460791952652467273756957098901597971451019925584636863325129038722116129804445997808385984410712564659273019372079997504232558278388586926192169706115149399169761461535409627895813129989420937659950167118092924035043345858573884569327534265205237578988921795610808290462011765387360243604725734693275519381844055809186718704999135563492875544942197432027932359859561877782441099400717950557515155785218841227648800598559364473425451041331047436949416760799785294987602026074321965510456513585775181779385667754324875623072012361471270624347668261031493753803550410543877575587128462987700373616749098468067803244785780571877556562398110808192813859016149415149629968418185973749307197490301001908678428380602322178133907754956685867067631524874902588528962534661718367853281763877760033476173155206815300257807878301777832554447256570712583622657048225852399706284630400984216271122558227213219910324289858381972378643060965001504898457815376902738488634634445735537029557290297694682716173125412832707947401082251420098567014813731385662001459565245631648196800860201858869976612205056307466775243993030008024320784336517488042498309123612665469610217225895859205425013336508704274008477879626881756226409146550408949765960218314006399191490897444489572618363638361961739744579518461889576453825896889577676926256375068283268329979014511479962090075530874642037716431053218385141745506512849887411440429946447015479246273607557389717208816927045582283085412080471522987125797012443136179069976883924778124394055886248161572659368811035054158001154069106435390989993111555113919149867123098938897309377643145411305941837048494491598838204927238108944192170159963068809900873047169133332056817608861558781994342525182342928229704306200377404619790332007499107645158807974025182101305655260812159134176534402820655113817384890242549693470698979032331694531854674617878866737053451671736443152145845133572107251192415207801317930090416069821342528470800869896903265664233583134791053291700580397752870815635427935143885673553548744916091811073729023580472796130677212694600608149454872319370797899341041401309616233927002798588675965927983292474030013806136220647755039248492054423180416161369675811583042593670807821630124577637825811282439426231976708932680913532460468762570182930557715071357105702280782629193063182969057866597898280379852885575617057750995751177695583895826486678414068060552288606696185715952066670128575988592177964896635333291407522375551541946956785633257890767454535742924207253852143189083341943140589938979310420167663824458808121155308723728461985953377685449708088186028014891670167772923796565604156177015976790222241581456434197476082686008256319648087814994797419424674520651490667734159717406893690139601502936439059711806205999981787352212312105202667391155732736644743277889897297541040940814576544108125645088944588751946248322245858863466217985898925540955720671502438859194665422932880244444856180782134127705985992225483478938209840337114717805828874229286504722408968024072248713512332025056791304932968106953809377471129389979979058743886027435856949733616409523047108999410178126014224542835927249743927982463162434025737917366137949083137858140708949117843139033008436175796784409533697997972965429831325139053822334619774473196484317246818543883317834957042601562013956970381221060074267132500030365900882443816322117061275615395108484467431574794797979455026833726100638993142634399492692373108919654714615159200037526209832831331867535633047511989672261641063227854975540483884782633812525816954500269434895099356286567364021487871122809187529443478425403200056294320555494575179931372603632711608705033081858697290204401328422192739633806122515024020011438138312966722777815227311580571000033519625311503485800635761981913128431379078968947089362252904632319083063217307950418031774919169874341882250341365655574246728647010285824076321943633276817771462434041529506736442026888201666267894008629312219364380099632214655590212773788351153353340448251798988195193681387231816279814075574178686758873472288077338457021113216127135272796255757836121801842750678612977143612916858382163196441814155839938720691081898188876464187718821348508682402047194773156976098003535550800095605806958615722232577298492156641085044375415981534212796055557632543939486656905627792384368043440487249940332979382715928802848217321963430070737626848748645758590109516917725158979628290623531087561318193988367023443361899797733329212387492986277184271772691960720858027516557133664297753665247811073452377909576616486925381167126712513493369879188994489995904105335153992980336522275534442689910418846469027547893577974147009736246878996338637429376567665428311601765444610319817834210376623829850425270533713221283327161014742044903433329451965612388518156566169781595831959375759473284339827857056953071522493702852144349629240511575340389558682142436816761484147404445198381941288205351074334390420460932541848537052649208961805174579027082381133492909322376673042560182035334727115308497515696552513093009463505048289531593892326172328036867069272323898610404396302075378875860019964212116500207546636941940693445036974711812371637514728146948127943164195004626307442695414380030295624457150617882113268753530241379587204444473276151504993786800326622858484881322521704655758156600460871849552216307254594467816212915761852852592057551791005294831623606152147494397891035396653008263918512090053437149729775938233034187018392866527376013959046751264913585176201469369997334742104683760320876134219528925219443957041388582762976418643031213265844609433880201921314890093662351527095040345277122208136171824141715209275175626842852783397026942750192529595665820081700078154051825572543808542794461561486202511616860250262654396832397227417985663375723100974188765454096963880767501061028594262995055594077512769329429861374379052076531177765691739257894363119128137979990908067292273884461292517772573809495490513555309432453011457505612415946501582858013460716372047089523780703536202337710019216305940077187971764777308390639009030479544538949908067456273863579200071521137909051526367941697582001448569572540818182617767735038034761328428192887597426243429454420544730358340530744532652405083632150438687183352168673930830036390964524079521834614204762787523609999813264906533725133499284664506234178445975291614042598339459615522449686173583957280471528587917948222161391288036463633516037522417483273352288443014321219800125835811800412510899100892342980555829534063193476814752471245036529422947383961585236924656664358885257063977806463532014426389440751505276718180488346052366949745670753728487972061581216235457105835896137105079383017208623570638175167675116890461054660404668789539027445393878340753150668050355015185016445799159983266859417551530083426980319938724336088409019317240389291186358297952237740482469104847067789643135689341862639932758824129490613497036528904120353308770470294073318779314138712483479061846660430255839467828172378045543400673201397918671021392175721376939493195798868585869934121272791260815422430817339251899401797790122172197418854240052136282932116223640455768647740384095534258005899736708088439226536147571953752236181051819035984505477467916800895334420977291936831351323986281008359506929096739864240775620330718818995441539725126766469420240730345392211911431487622872745831071544211630006320181172505234694291859190845960895011393679355180789100968563663419061895012154516309459733872541780540348350006328795723798038926366152687398080741246602253589860765005916154333369011628720376968049960507999977357945492048018197896013936165888166965167086032657622812331178203661202304103042699204259242354285125482458860776750424611644002746772767458786169283259336557134037877727216708549948566383963964424389822034586356287691236981987167576765072158532072946942314277998796529987909112820103014921737243655898899850241848050421954577472943134793792669124503396843964010047924881040175647365117534694845267236333243155607019412241001439026766831021335383243580240106089537880311729463541509789530381347852659424603409878824195493076859244349352809666644618128480814620579430435913316307287986085969983583223743825608217171294639320650638422813402755531163754526231015079168810330350213069313652336685368117567486429938881295449339277008339567709902457447388178810866840586233626862813311814127351648930622868487212532418313531152766017178871679045009088085755720303277541099749416210795317487179872597919055374490818150999910804414568421483465834287110494633950011545065671672593047541642702181317889150185695365218493113904329256471926412527783728685742168423517402595223576538532493770677360427267371734155965893415333146775099021840510366499066010589018288873971418484008847419487982909951248997133392804758543336464651260723196958724896419287991709429317557812404486624272136347358370086170602408746344522482849751235559119490289815457012286049302605566856534324302679790749060708713153859536192302818076602811838890355957096730213945777658730255166671361606787782904479204039425053306109420115896456738292639310995711802650027231971032014776895960990579081927883714528452676595933882894692184925918046610374365269558791819347740664118201305543144807831469636488119141801381039109631300596594110278875191326058088073257788382177574103217338356815834491633510816535681196918552978846865787800930115011355937315455394633328756203290897335311193051575513722513524887283901975965408007369362247752705838268995773174675569856041599761392827766283696926926877563151555256302131773423045504614454618237629966035760089138912360038038212900118255645474132602546718184814071759364058928435649581164478769084997276353694673226483619955784969951764255542765406213692947549829983764799537895764289021069795680618309780662541253138945922267992168728696875912010096013621177153849736176611293569008380743995750030785729123414200543213494078672206624475143151109123403968445781215865546524471369997299329598248870287176634314651611891812848413187955688705949421391049353986402788596281224319252234381513862532974081142199335999316446313017641915304887532091200258059454903953329611037864327095728174785607523282005485537191772379495994118245674148171511676724876853600923513308558403246130417701180153240932153373157358295348929078055739893991827629264869662877762191352592560488692163974173984652486857371212210893949621245744767927381665140693023083453353410245675728023656311460556193774905298335535274391117090519899050321195008933647444055246460125436665545556369464238957252692423531628251575752770259827416711952444187380311680672157613984419479989653650373922515300791952621145992603299544939361382463715691510714983255211255731135558759834550495860944397969176438243582968640426309957419430525432247792246962529980779687168690039334066059253122562356067013050973987316753247332406878480310699906802258851173843397015120735718132218697164333048349481028800497823465994521448152826508308868442942514533070421670346155829000330453028979063038075391495428352094833528827089290117102711480807393342735710191875079894933232010465382329411370657610725520536210024260185880376050091555946822676491057716027127858902152731444314670831474947501010063031587424848857271310791768976496119290395910278418861015477265117261143078956630421834152183792725972841881910237658983497548276897786189345363595472844725307974890172089212092644458203569004131930881533710369420768050075990923572683810733359590282959046251403981418259578827856204657769363988211102237498783317060151671027463893706614398113300781702296166031316575858308384271682312752504067272672830087473773938022290193536253423094200729934996567413691628075249955367338158940773426569470979776822910320790743379560864838812853843544542922149014291855046071603790543028607878661339747864277500810804070606133589967054069430462487509476444209811122449905683089389622754284184226192641917814839949846538010350659269083620661322900598793168668220243338831189306007230223407291895932073185784930926832211941657469040465364383774207686640198802853182662716386519175157885434201375136005768817952331102371323981730317489792650937478622434473752528912946562986261927830487369050402963406320552435241187094717674700630221571233547719888102019821408775574628783047434659465476742904894841231777366633285788585345753151589210581668924001942309505947597310725658473152658104238946330767385517195097564337155543248759144841245029616416571125240920697774745946251818276963860099527223666028486344922824562543636175694077138666462387093371320318374755639318551438608909926162360996247086820598815363099094346453392133981165987946368816890448064678925167938253228173827207898703832912182237995580283410382099618414342758522169964740970353917353738554619108861176385403018818687891339118762787891684049659825670898475061635469968651923570569211020828493667425333097081692302160452696285832507801801748752112655355382227327616243842112950824216362012491697649520143787240709957031978628217314911183582942549235076743682850933544669002468785007266903771151063568415280375420336709319678418502979905390834641519310131801161865264011791153625848562802989049186971382423155892349548703768949229161417813245833561018199465872520162509995361331730843360107857981020172989952677793055176611725161147291620702142383990698904405384712269246952598291868829792026149551395513746482612630844501127553612446784621348817460370168518811704618804750515575189732130767580116853854669857788257158304573167284509109590646239609963678503063816679103309878621205888098962670516407593365133110968672322865626555471287657256579640896956295406604937498120872640634001182262098005750040135425260357118037986207908985335368108767869371768407455648081300148548173523587314989407275729874603046801380626150918848911741790836323842519289833512955143939235543887149236943434718775028674006436455352556229609721854288232391450268264656958862810071335177531899165961643665905155230028392260549494917816013127482768604476246184306709087853572177314881787018861424689206110345769726556530533213474067480546001958936264186046938839458523669436990006492980408541795094809487368203838626337861222348776333507536775253237700507172688491586524578407228068019434133599500322588423140972105411053526518569209314011793094149627791532022228507945260713653063358898709911764994532979330368040222270516533729931865888056668041215947791476241370110685922152825426385315211818665105050759023296273508541916755262650646020909169436492296940095050106604964165943658510261094143827477530172960986168698198763928459683884186501145734955210951090748356969778925934168831460229544489457249387795772588858358998669861085640329352301757910916828325430473123134550145305884420446388315503580711845274459259902479555543888410244903966129905735302949691922040269516708595042233564222821701571419681181968450352987470379287143120450009858761816030589903256795808914712810274338579478158614210002104377256864569227219097376689491039752549824352453700313293848528002310626712924288634764474250142490464024433325381623106863433701775277881354962497649519581248288738358535434397638408286242834596378700386843323876215540254716439315816773846545038529613101895909784918712846884277372590238707793912598971096845241988388592403954740811100550291273280778155647734540154223926112820288017523204998388141928965629688614263796740359071060632989606654950551138391756313268690286333693119099216963741734964850411289017949767833378600249677910508765098787661676236025680184120498799890149003270163692179824559199377559923278806728200193292568927746280112231069740351829798135659540511189683310759720967339040629031147336914475618852371699734358924698383229750254732207663324010091629632593936036525008830082910290228223810094836291791888545477768274095637294174067601023587811145438434210430575908909262426354231303363286793536775693306217711969012557035949696324543462344093647095736843420113448937160573015953882664113621254273292127229256335108457469688292473504587357782104363494920393443141341356837707737041510511593755252489305138550091501612074777232200815450647642426866825121882621679798373457637760549542271595973141162701017974569126482208636490366769191627968629796097625192142893547636298647179541378909447957214063206743253934026852512353444257089696591679917106933956662013533487670909025025111182876169622809012815056052790907636979437816408586306269170038636753135083163938882040799471567843699396024933286932754532535247806438114520482329862938254983708504859578541613869083391981195705822582120717747753372082375919723257583158203207937072813396945853665187823675067711228132440135056647973064934601808174540873586331365213577529424974626478297408463273345825692366831278161837820282957701746546060768256601193629680120819000505333710034809779577885875807836070902408230390632989468548823516129095752569805758238717942730490691815527972849730676091833582069065951821005995288204121854754594807420965399686103225352877104863214006736675648248541172939462973212535186090157699448001123155317726616669087620859526832840190904067926338858503809788705874863252482524312702805979019238042239133613733427838620451872040842507059573697216324429220179093395390306120285880123562649637705058477120219486168597432601943033919271784969192393685479641153404017837644277909114023436778381315180117450634847115686063239379173344802670924791490826429612316996367140948722982872803129038360448033453868048161002892101439225623159683239897142998276940340696277963554092727686287385150769772487954319784798947704652170668211014012931807914641773709756165726123111169518304772631344674427932950876796555758220706662835106779218813056109748419461749175712227785271813884505507090648542390929062158480200961268944240085500418633594702358066869216235967699335391462981854243940385140875028633364671334581914957858803286583907659749773378789773462649010380809006613962750166566031596317555072174101598218047399444567359714805881323373083606185178144050903628742721981484742117169387930893348114922277070633228760671911406334005156525581955279051599940015555599698427807223570049912161241658848053558918485410655067919562232001345872844533612163892609821195547325145487298016942857490513132005520247030092290187150937799277717299066461795235707018835130394775729923898817154235558063444827149618482313439572551373738933539610011347595425201828122468499270500276522606867188176087922086103321104370272180729923553758081558028136248762800467355325912512886803286730258781249371392567747726082081313418720598648937367802698345291037681753391903239388494359045485111301335145603501234712802271787920380968927606102149456158981935978030134534932234254711789809886654669204108543666399235733847441432132535563828531816940689379706711504778404280591657689435461441436738275713822863209165900509823606852373914027761572379395542144267945279069713068794157780885398418339497338565097940082504354819652663908330871339581350347914856274073102319014511734710624722902192598053465550205754482778844619503690779048840824843151338247502074757643692789614474441835088974728024737204490985139426200034849979533559638027644763810682268870166210121435694617397113751831939253350794361623938245774086860537793793848746847379728706845351839302042810673200277400172453779854723262041847697076234017097815579943339664516286867078520685126816989837330392725057085166620148713825860104080485234496161743514442369292230755347288513657751158506520528978531980910185034630042166397287489497717503446710398690516382627582987966208258512543690636418521219178892077347732881798703634057209652397052203116308271817618682073995749042880824373879993509664109380364150805208461452857295845197073938825591507763388474492449329155278181744590646568863604605441724839806175730471330556798546743353483167013896699364410475165256678759251805858603770265350469830969074804286791109434723100928069967552302288254129741384033410736641064980361778462278613279999011144919610627334432912348124937380617984217616380245683849261459403693993093664108676181040813699922042996825405486468652652013763421324845526367785870844048954217018654693213944025965725550145374234334870728124540000600510676025136494956619508943905085624845494177106778498738569619728080132773481267254574244160107681625833200326860854935165649895792534975332941075386545047987068151213482330844635420877185956175063591985826324690597645364459940671386411999596096967773470365515206756798103173667114528635921164443033951656233680831447146577756280670243755277335474691368375299445209106750142939927585736411814640147038695882557915111414723379009176851924183271920691899822833716975220680676179100009434731052922597103035488265670787574506365912965991517484263876692831562232260412725669863555873729543003708307379791766727155022199148504572551043299920589088162431619115746052432196195400492894417692258360328534034834637090846116226318965895910558740382874970757391214353035330799572454177720403264257970671968509674703250028543322230265359245052593704990035095649743934827081130850953000269657706955146742700389651153957537558291983836364273750611583244750332420194136273776410879704239995919970211307994360607655993047370824391343917257494581585635580099395323011229406935628148318271440325983687208136740037313346492534868673381959821165403050419229067293829609740696633472976616835473024237265043549273830699492917330605820391535413381929801968920075135059801958872337323657680756661426306683052447257103933925435361262928403308869987613095757523734131366282833302515752967371578370290990953318498953151471033224733094949946874823385662775337728132715675731438398471310457496806953791964523233256788111909900743121896998809944011197603511189729793137829018864521538168135312836071593564373901860123511799044662197030601613543961768539482476957641647081701952204419814644572214283111991978110968357243088465572589707036072453492600010409568563727172963456571218453637177193807066071351526867417973445320504945506783692883585741199957688964909660966394391651286963651263232734089322878650990553359996824135691902564047082847904959487295110340785795027487712595591274032022178131509113404679073477371697894593739631503724551980511439053893801260558005618884774071463438372025061875923032559060718792650556185012101460938401995305120543036295830777233726167323184578696749378150508103134654118512518507777826509542204361978768535427779843674716765730067362698527460647930620525107425089129667462127254727804864173763722149854142881332123616279772901752877863595845899983929172011104388782395013989170470247092276516597283428242158840785997269821394672806158747255690902874341222886389756423706409279330660986867458280172992916540858616666507967010358695260662444571080994928099103771009762217190424142027388937949794121540869172131051316271792271941010061269556040015620940330729485941442007803787287601473566668741875032749213542241482776534680444131011011394203201149496452530309268167302340892261567550748292651899822705969731121709989514047558944328214278700828945075195974373093425978840602624449153514890360187035485109301787320216297712402867286487288199558514600453841638332338186145535183502234692379454202655033656215472748606454874417304597913577673895963268598300243528499694918504330183565304476759408617304497581098444135659756102691733358261201029970991881786690187396180903422842543750513176690929889042192360133971198797662919188766508833791768930049289607088169294684005788597942449923932019919718110915703096244482872691573402163631512257914702393694316058069800470853782664401657563586645998359842117212036132980517195455213907485271268163993291798658470937426815817714754433034209283970745678207173760413324803222729460939810287615351847024147843631082602421271986605230522270447288961014366372569647860612903937948373123787165365131430694030403771991524276429562675910083240661452841162420399657779837518090901398323873962355712523760584493993488103925419475032676074243158481240556182220029991510342429847080078091205389860543787798207809758182684198511631054635613016434128909067410599441901001677992314914787124103858248625885327983653640680636701420633719144639633451283392998913041379903910943698554398587279924603599573425373896398540194204624290035608032851141920396898623370014807054078334971581407253738380531467589027784585959121278031122872671531028287430083014676116590050366849951207525671231653145307163092391510462805497969887054575222934681679441910510831794965532727019917026263151994422075793024270840123933390045851960148741693226581820050072348642062367722348532642775609230820514014091364056476852608742037277970058840582723995740867495887960504522375122153163533355485655299039022365382072342869881625227097515597792193757293624887829245445911882643717679497663499310229906219144545983473942191379284078521827166626796249862710651898628589995728874689001306121800518119571263586315282632021897316580147105952739431381759088638124266242392350530654190487163389597551634473681051001774192681259592765375749799301744921621338163515782287941867820199858114082676096276815506125062429450577276213659052025196405892928910528372302228644616225249087399403153872501026456820382902707559618143652772613792639381439294744746551900534392491727153890521591238759930393676666699395682362057135966745404650720500761286038883435312996490798108801030140524249635916798857037365941067068834168586026758856314178687689566417888702939210708485901967631138041685830547672064864933318456021475060921091982662722056204149951080756511611599920156821569891153652535279024246753880032961022903826347648241344156817925059105363686509189034068186051201521007431113017847146249251536531055356421467440289700791484687885720472629873549250515112016187518292074366523251679023841509283139668738173931116142084376915381527360889994419524854004801989351000022505150185579255853942418589896291412897137812801354735256372315658623229605150896376533370942747121667932430112919146405180377017828527164311666185779856569048871551438472372053103012094019245632541944859179713825871435451915031713759259835634263705353274686264405634472869345124427926231500112632796838995269635034734466879378234051242609803754493216467767906922863723250360267760633301630851007895117465269319866017728443049471287964693674610462585694886856781467751764758971236219365371889532755737805903791580360919748591261566750842898316473066502457066538958495942064334797856112237426141082468906228286490299013671072488365393708480428288869948572516546937561915940632702138511191624902692779787431633469696317583200583143487814026700511682073852376457575081248051161002099720564443685539651902997325896977032191835210250355456363271594386657079710393389556159146120000028126069670469388367277095877410978770745697830925673223691968190509593859024304452832148211695368618474185857611332596169295103144253423027492851382862476316257850193550984347405857885152439210809805535830438743117063468163263677708093123614262649596244687264917403374759052920595442308506391334268573911744812698633891522422743306668852059572260168728873588694004531933490636241244910542609868878660593419395847262690330279650731647877221353883256245883932691634847667833560541319646040559513577450651611559010911906293369054950340354982731590808262226375774626239316171216103808710590618191995613421555785345966839971038682922261463742466934165690508142573347989132671316799461554539136275427084087250819177157894159619639319595701617801290401737651762387593765647402920274791443100960043483097666125652604777534416597371724689085021913336547400835776094577164406705348329640510490554701567787674534683528700285006207480653661259692162098019236658843697534808223868121768214343140745703230025886794253706168194885775561911278834165537073995121403785211843622471977485998746433549813245072787358134832551484423357761761944264952318007281466895196194007420084961899233172575717846981997908297970079901105934168055007407017759985998956803097986910587184122706911852632982810785297883219965304930185329199603440676680310675624704391621409313568342877231692492220034202084405177598196437718180263398700401547712582466638526673718727759111005198133844650658372110896564252696915001645298672613811554473409964260185507865219424847776106277660038452315374251993013226429096218757637238686852891259536407269198852534444752283357815049280733514123754581616200226720044514314739654230876702976056262778351910002079129221719901325962987066549878667206654738361141909156112516227908852485272933680066584616770130324684699861086975623152306708176677430943008739851498706736680276961644995889183619096529263169313911140392811995980971033078554742461034634167619270888473918648253924786590737540479456447619550563250650548324767504607071377485771913635923646180399024601500120840492692136521840927258971615261953234232839531963278228239719399598856111262756338772877061209441261966120932449266974939778761040988986443862713144413466496003489351843742224638347705929923606882239164014069063115699031304634058340200461911706794948133527859620832107555614291020153232830706946140725641155397422891793894438123128449045414497590764885143610455082724059295049375634286975888469322997199719607544513394325544408595982585968754656517439820836384994401241324637314819098341436726610957744601652719006097974247342429995954288251107409355700519516922245472975778916787102157937004115761616378084876356219729403901784175053432122020859130694230008121631871210465032400267589122403598758499560934637116614216634624004813352351587409140138639400254325120816862464285143889439555365325995350013828790751584524759524939424251645318202607301621978376497664732602320635138070472754060120895980237310621014150497494253939874037540031383810174200001968061234525860117756829318577872197450285729935496221188098633134969747296268219799762846337919951992783278922599777466601312811027708243976799351566525522545834285333776290506224730122202813241973993275390366641671473460655006256158688631927570608603926931147788582470765168631397447392100315382790827172233836527259665074083103977420127288954524636677172171611230067452043327746989140623287965253725653961932296948034215759855078655005570998958697675795791723976999000628762138784368753971712568340499758714003469112540510398591090615042110066329313026917005569458472355912078495999977146973636475616054671017483411098491600189384241628271144401216740832275113434717472085027144924495048778943183949014117925737266039711145861452023943479003727248053400587888959708799079371590466652112321956395263055679564363077327752039203220755589740388111945864233471567650351398388669470240685124105134649931668192435807143499051904264486245156752499948124246218617118644966874676729737766843542003086807902722296547102238015791764778047006584913638182326158709991955757049086766321561337156510091378587115205122928464740394745990041082927663386345176545489301411747260693162354445880235729582799168215750647887214130813305116298702857609511694041510895213242333728565320758658529331439917393981381231961411837446419734411511255307540319676281051411781328704531436550979106647603669308927559238894922021533562128457931862307037078038260579173517178024813654721827507626879580481834811852333463506687262864735083440821091424849320901530875784939530419500591175822244054486123704201734190340477156222711065065018691585872675853091349935741223351857296632020010077567069065124827072235620677584401490614415577144163344087723964209217285885925885953553099222664683409698443240369615757716891136471336308729037486843222724877898282972491121549312226529625326003824576975480189211260908131055069325985827044650801745379151777971983901467078281943656921578799483469539796749068153742745591101881741747833971432638968201986663735339259202409843656866124675748001738666686112059059903142020914515174082313393119430050410996631761268363573126485821790983097917255490246343184506985642844703425850244483689693242881228466046093753431068601956789499156890668943157789426396317651438642016948717613268512125974476324842823904096278297949323961133546196656972884904133538424612047860500320055749430341028382241543083408439431826622536623498644312607888332748968979833617265961283755310923814362432556659057562271957435964232927366201710402360427112376993515985990704220506109533399456106353917124140549269722032729185754660539664920569678367158062664635839782608404029323146171618519475893813296109930205846155551007498042259391483972586315605258191541279499334892244904360707254276243028466514438793570520594797962147787814158216752222172341844914469754272029080068017188565178747094124467697593106062234133844099923200530958135965564367851544445794843359549555183899438363896802058314905280156206932152105172783400256398427612590580652642721400830891393096674193878368696260628392670865002309796100732022071182921576497028799498850279413820731053533722723240341152767128061567661101958228741690766172135533391382337214511118700223082170813674277543766140888384122825661819761060994543444505426819591714423180356774195225420269267759840600878694321462194286706267019816560415863529620953901231562808609126655548804760003365909279182131766854599743982177228157392506712197833299901346293014540212242413904479741385748375328999266195784966506609548626220594925228717492852475519811988456023902553204502684731018413237574593173013290350413842934418812634450563857176362429749350434068971610555509163650966310263225764437166478580866490919814966367219674765068118456481652181674714804535778250090290837200642777895243185878432648708301084212394699501242725758930426699922322994456312481190237110280328753425098197109655568944563400505915732529350514277281718131813486515150630245674682893951948015494892153076374154393358217116841603727671735581526922428782061110271815279205263712874882142672883013975279263670214584699519727114210848243761866727669599177410987563597744143776905142136264315697339309306079833709377415664570819036386345863921239790982588923389074186603553966909165358078463603836942895759213212143044365486643159101397503469692420822000746712756499813040403296917727839522439611681616826461744504603308639731491254470293773097078728152883599425031416434257284785763930508054807778910514104362591745554821286584883891940049818884752274688159575480207524194989207447163159257558358240137891411301294224258572529920281740588628910879864166716092303351781477872624678365944026728840540007389359617032779693246404720753360621483808120457402489548204358993874135017035696601779558042957314573464316104300902032347028711799898964751276171329722114688597092234782486588476102677456087880519767248982612584196013862842859950584269848885733153100232131038167050818331135323233212361615937435565592221291247958984013773909638830834859983020108096311537153544939773530537277263933651286579956034671954780167865488167698112789392984801826534404964061167715804353050213354967707034683268636433858871027007189304019736633740567726670832510794115565985585598328387490216829874100296836413831154485317343596116230938674518349724127216677922755736666157829847051343790152848284427130706571083335038151697262535926586795268692547206669535168148535266675933203865753637121894267240746046251661325278901304476536812361579337479314023485531823549003043125054653198676784672436149814987072130125339310956639783250008589046994924156577453388901014538712683920958101706009684868238409905107139666984725293603059308348795709864064641258383603082559102973334901721979161673473057286831091832046580890372421510229213775128681503439416437979917040784565550540232405262625859387349193291943211216267783527803428660038730384609479486744507014821630879045402693339886360295710012253759356018841191063158243606415406116866559333982908746177796305861182588134844662910511156827128165569892185700759821748141253706461921198886908732538369197587249826243410002446352222493117014172759663788960359840002280148718336339322825586494350533262500163144051377568521861210608524820937615034657214674486361229678633423385713698222266146910193604130314840802337994144596332768867570410733326404732613063209198283918247263578781861812079572322214842109500513389506705774777429688972774828563992750738235378138824524317352770120875342316357103014720506614537479592121372475203498023283115594586031159366632133490244661477162328760049807110563324085263712953005682715375494065749263682410787467929981313690532910886411385644149719774021397118556871760373860469635625514929611862289988678144301179913179630581024089797257441771414802262884715246789280042294733878155990348986667911636499871065471340858413613668774689819397796279881096510714346515673428922660537565073190617143531014444554146275741042295426765659740645727049002363934241841732911985556254896105151062823546650504035027671623252111469585031397080812649532620729288432424335266318893298489930198778555832419308236619447911816961515673458116202335265779548752877491970067602993658797870124524390579451084085809822499398741230168763660505150811101226917199259895436317652948094686965470205327911013078207197968984120304711940869154359976460203703732838162913260337632710024315759985016636690253129416859476089234738507083981466993903201284447159054038550190938237192377937950643703472868988922445861006571160615127656908137344614685461951288215060173909201297127621988674619762722379541606451833024475455896678094483584535728478213575294133105321581040016983405792313499879501579639699807510574017163292243599168622342786525143124451119056937796223346778193613549276397672765279005867556892739069213533040782145533835994577589324468641225338493447182906106101831871643216485180476999854480244400033154661320362995258974027682760352498041444344474559502264983938570361869750657556050776187017719465102884978996655407651914457716409268460401708914399857901340247925391088771248866473355291727351008124510623444408521504839704162197855333703949222795371680325841277483044592735540625957373233928031797295501823138451358777941724283831745281980039027572752297023741719014390681272372244864235113463032704565383497521977299293475687203014205033116230592747472372977596799288501800670972467757042717372884428124790845642400903322592094383037283765868383655980664338633017961684383754662859057704313445617410119789794789784111997283001237166077340477131589160358595823234897251409635172572019320204025228773532991239069796866806729724658198112677133075469494798746991650657438059798771399649849713589987058980629957743189380565695922231500566981338806541369844861111292868048785680322542557409484339118603082085407876065858870368593804229038334600733197969060570607246450818079192721557261665295946088762802461842438074999729584813434071617727235821381433578829588219376071443905395465878412631707155307713400416835690444016797894632894531567449584141090217840750178910489066483829188484068807903138865275132126009516966687262000011545849754856795834430342586287659136937198674223788592879981898389613556176344198951815032597039058723727562054708271884214046242953393207357548532166777164976376755205043094602916985653405336891419160054615541761846155296191598421245598864726631012213006350206840462261533622175584320556699244589760140380042015342165616569270363697596178790954634674526277632709222236033302382171097885806500189410724207079789430513384956264418711214903125924536470976463683787226202166831465530875429935094361371972223986036760706454983375084730101047637533197835797306647707647885196438886782670200132410899343313739886090293670158014735275404207141798805258958108348881096752486102795555153386126217670291535637401514291144504718061908094715893687056021245846059548369160928090616156179893610626767703539253271143519513331417276051530334584642542504808022151821262427132144736018640785196583528240426509313115081973909710389672983747487694784731845064504838143438586023723432419750926336647830463345888305959506362669913022007490294268810428034057817933504070336528951608024104863684745584537055044035789034339199604133330876596136599406756680570943050425031917469881568801686150618804664819615352761058120442041157112901249485468736971535593593111503162848881360888384292654482779902945896462800686110483892003018539839997602850629949344413415181599060956073492890776320100606055701748448063174827745613615876116211132262931357767108390347757579102318424083975785455254333850151318840187208800061885651695352490231564254424954451816180925035318666195994453162755940809319574324323735876226256863064493443158944580849814199919324049126519315434069077644687868168133110286742649164318018221359552548383499295300729498683468413680838602373959394020992639206309469844817333876953124374243318482305425037135424361810169067048580309027082843968870648826129674638146741969771725477468670732521481423020397193704928829496309391265018824470988843146543471012475747327107837727349870634198905499035621959355403402418898023515950387863514933537916824103107648279328104351651869293868665325104205141424390920431547617574344329171482340693466063301919308009896560181437283183468624983639561673614370012504580654131575144978682616497016897989925774405817684613189643981627015704561495245417867024542412430118674500478491202257647607691068162431459827379101317685409720242152408588528181138797538568458041843355001350415357829271940491491136463391147117489520910302258543007986564846655084669587673951084075049534694852971156562869651911669678679240258301589805115804885115359743448544264088819218549680132262441809101391613159130436747433639739233369435545578026041369101783363496995491983919073744617802859403173328943934908682700466902895836976434431848008475212882508725499397736588538456918599344664189981419057200825948488229848804527504499621670479302503236686083090811682894679439671239984509398315872295235320517623151594859941150857512334782227931715530813310160204343205605190174146281918815484757088949931376275185915795109400324984009162104127610195072300858132475423137621860243052372690428259374991106204793828996007606748275980843148454033903870380697801832272922733756466650418781096297521923467770999287777337835528370957008788089789791544229874476919040678711019924561970006738718294080406862858797111002466633289082793056267492061903642877866629944237912046870754140391681402612367391206940473170825529346937226032930550637635141468779876033128316197328992140931173685905761138136001948195175959372546441534525048888678829237907000431336607448711431921002449598875253960058502844632464367222314376645630177033160516470750208583790228390816208368358324505247247326822540670105204203721952156600240700885082172374110867846649836068524227218115734511586601204794096199376020092560450223429767945181549449823375788367796221938892351530481015946261798005668786296437930072586420310597642183955214906453189034493056505678349240116993068239491195543743203997286007048462046653932544961497819474168951996181930629498281024382024509760339798229251337446846883002932476902575944428344607574177017922305668346343914389944318650227558668874081495604834507993621481611356547147275914865553673041094560307150856852564910246534952766998721508662979621137547808279287067754108048044140970583265057476914140113743873883382700298713466698695910367041248348407347637015809017983245790755867449804765188666254790449054254218771846859458737377799709973267542570476764950427727790172693839764980723204592828430580804918133400134040189666143026604136329682353234277740481950708987791269199281236535549251234005181485019473847421845258916125273943589471278039533570731701631768482852388208364450597100830432794474252227193595718214966924449896858502140640805530845224156227209126586394767158142614239825612051852771547397319988547094289982624278619777949500323899038190297789481082506711779122462004692059700551443499144363833121935965368043381049562134665766449577718175705766117808794056237618250739956816485723638375863021162490276848035171136085403069289882677219505425439040435414855673841371215283522150660184772164021968147316926584975511521979532678923616235268350797708921879173019014988425426476715357719610928115198770620524981916550747574557346759078107520894643060607605410566119380744780403924327277770337524197248433050044955954114436973986211725459236396269034732378275653730402828151426970960792874203858683040101846268084057721327756546922331500422485033571346442513775965507634931567666445958169219153105172335754763410720264747336831357815667913604981423302112927301517266758804275066345737952889038343617020202380374764332280707675211051577279842263897168302703033209606521592609820609831242967108496504147041422148633346941205655416707320044504839372476094375475518175885425096548816907768976725585529973301580987529839524987684647620416968372794935606259376579478874377369463789372115850248688857723450882685731870355675355483472862613576636187056114775329095545997804179390591284139688500466252126732310088509135719128766179520390709105353001352151787558034807080029044532936054202326585729439172522645117378289867080434859256291962446260104230944265779642907293964329929399733861239927583630428952059400796201784725839721550938209837513752174001043877135436744701742166362730633851360388560438062199768672987264666460763676385143884097707241956101180938829178512438985432390398118300204658776639935828834608946527803053990939595556768636107811364517689760458155500045333938129717214801250929864414269900419167386523877440967310670985243566882577357400624096174214064233093543503171195894448127397393913937154082849626254656814186175592142760184886241636177615675694857106607301963553946640748536069513502566428085112787594002782076888620836629139913493291622677382263750940286587856994634256315778381165318483579393812051417124966762471233915258163935653435298717544187460962098474789715910787112403022986576535596054882152102689382780268965761040023985218644709355141289361730392994732531847686261671715072357984367803312318394248937582162299126749471504915582881217179739164400613262549662783331447460908158219885415194546901800190175057953659167811810416127889395277094529412622307719334713062168456821750751210023186071716129528539522259390304573419533987060895285342135745710880128377480180141292435038474084068142196425421082634919836182203267823969820255868919666600562081764406350194736880735203910708782072852426894292490428657482291655600154747776414426504048233150642681500876630410759809442804858553031017913271952174249411709289781097859672985716095757871733260312755962992707114111683449231051313875735015816204443163696795475458995329453747982725921239997386754791096549780172223276100742811781972644742844794908302020586330536251969084011668306630739370593570089243039916771023946135409477008237610056541431915651654802214126715338062215029276276774881072679200782496058202314004216848744556107767836857630808714289607317547462430257632145917654234959745150075836742706094108078854709854015752119937467061229553106465646317536616942962833860008974957749845447392646505470793045538727808630322209464914452286244326580854954450853236584876559173152088024251473184583650857393877758166454639957907696899182222851991466890328156726337986007440010787109577792307389552595558235546218930067696307206611408405735286402002383067524202818769092592969252907932499750273601554797411680470455027757653445464390704309225060991455853646058722601013254518524718697984190951771247852714098049640827231828684301588995506510918631625695417075491750678275025193345690824166685337884160831147919437731700250237296416928489952510945349599465206966061874965298926557825260659394609911358199240381740549513486846426953026250632374509689900229874451152192837492005579122850958031365440493121312613213029829061717033936345821497480424960246734267039697466483407224883917603524175887233523851664680769304146281387475630687140640313857593526474450846775808710279317624041177240334351960420324569969165012902345473734102232041946841894616764442872523896656252947476232144696529480075985544359576800837620064896887374557168115864659154941189697092026188634535577236330897334832166354420313906477665168508612876198457876023766867424184293655403195073679655234214722231552842456344969697860877114637927311207759742287667185039962268320433441369004531785575798902181703380025256595208961992058355209337929166567968281027628261750064130611429364845749297775197593506457073751499493444954110827093658303259462037695616317021358928641283174076695661394682017592409859186901253139644675479324294879029544525169197449671282855926870855503743621118614230453115630300965403994718077239179317052149881948378458110126953094335629484237257109049564568451339888156697127803005987375813778479015566393862332912780628471851639624014719263093972270838487670713631520418518257280386286645125954909813858927374775814108027186535710674551044567607746628471137166366757155765638331389395502210659058233238626219896906357745605267738623756650831679908203071033648512407817769338942640042846647721120663702452753218594231793150080973484441049377260796854822587284963487895570386759597992320739180110002960804853117778294332297955751956084023373707519944777862327597497496144838596717948153297023022383197954840743746728747159252320996385449422155033016053807168680649217279638095392349901118839262923638672863957054219373094142622119820443197209358044946480412059362690272120261180381498884884051496413227549472491681860923470668200434524539176140843462868006300013760264285605587213805439357143763513282242556381743046030128795832423372021825517857620678332916570786839349831147944832935359250182967648434294321743451946465535625587938474967566254625552248829112039362641001016800289746784977863027596325321657971666940535477234857686971178741756674625165015831761984774822360558532559887372893187882019219373563632466419611680568575031151532151328962931332300590365839604133246338746667580075095974824558846809111847926122268034885517016167757996631565816033885936089677237960534405902223169381593376912258526971860569336306877225748736269482861634385321042198434566526694723403266546958475583441077839552010536771256820559326659686172486587708362494217339795886406739425268937602543283357291218000176531341754947290008895652059060986004327971877882165309211730109376225047278793315048161466009310651845789149660518172476824887593297006912178540749034477059881568953799328082420072217136984316083967799929878123215638335347465725390217114984620670831070401045767240826725019044656218908945835466459630682143113735575942393655342515767355328907915236014116997492583250181332321060648739286925949772388931923705974457387790485300531094799479431777292588324777063699061150199574995269849205500530978419953176557881168637672490160871596009209100324753975085191347949775013633006199763505550226597837220587216560627220194635581950176338116448845690314393162962686423631255963038836861936709998562516213244076712833634547367376525364074848983963196983671665123017747719223607717913022902511255542341646271612372000762792966097059318999457839833323067237804590557920610216452042766193531514653942063234082893118213128729730307604679012267010807952862715202229103976174458778375682052394508660583547403162102088747953628758110976317938596577843871470512165392899918654373016336965717598528309827667556471934199963491192964760492488364506947284481697898013515685181132842540538752109243621781778361028768696099611828697984230780209145854830466292996579401418465037398122458255041615286317256858897089225049738735602966847609165568955508740698200514776915719928535206941004324792574850730832628887293986442631368884507991143343053957569214475545590023073884291956696903253515830779525112642391268454552397672379058811297090195511467589613112596501728707199900398669682198397434790799510407985508265043323418019487213850188909093061717117135657227279033996875576956463940120556215604008029106538493215238481703563538369442362525635141185237448016313214192235146578700443938532536171272476869726746578181391497197173581778507838471612625733003468022105814196402727024393658373945336287516867998739009684234976472404241063592436201732911444193373005185742712020548510144723639166741100665107684517751395170532185095460355951638440925163519077491771485014484434714393491108914403860207846658310245749790467354211916123705674263690045510662606418117092402403482844047809931013795300613119634554582322962842898388948139881171242531408283869589874717294201805877983337644109225552454650643955589051551132237440374044486928747787803509433616369211877885132758731206134342595371292364235495636443590758359364157762726156227914181637355137507465241332688071931889640698197373150508284509737578300663751734805956041024261078081929441053676245546398931055802466758192354216110914019272340284617391386989604687868823066396500902782760927221662345507574166748484517612310248506269447444133589579262450540787486646871777849024577947919191721216549995991741391284756246841255557461202866517156532061976001472993842434771323761841128151396295218487618410051556417205121847959542225020795660931691531728889864412294157017525495651228342564196713248914731617450228542323484213440007922186733249715278256163065378499209308500967892941317050400698333908073501843747789402780943127494445347930466431468497854665716545672695915209582491117338241866031093583171988317100555749401685280604023789381155132855428612404650088932180942458314252786448733758035229114239093034490226066764463187840444735875587654447759236363051936929814479314429891723269682233403130661596418759399545114440622557321993025640249827813234119609335836277808668638249297580956694146573590571785531967634875787224808327251118293210592165983820964562797043454004811390992300556449025614112639174202866729701929681988057892962627522532390946643036967609794574114538914345995499594553302655116583726875392312753881469060552116596454594468526810332328122027180079381619925425622204790720222783261340676273596942425086725455062455122223651062594135232246420483946732687444580020123477687465247338464984121214472464686533502821173361854384515200001991719474038510225433987091796663879316919667599637110209919929421227485016587405538132079606772829259411442236911864642577132456986418790657993123790244383555366722939218269469189254749266305069932979978106831190887713376710441076708286375437045025410356219875322750448649741016674385207276861712105707688870604647409791112841579466579582757667374238000197486858771732227853393626366347923384556042402850292106078317978387556623007699244348981234464779678774935522186191843593392225922139118866350452121990575342140815568505701206321544884968493643258215966078136989266108879254974004272769740500382752530734683396770869370509015376220825105914387905394399802588768981424534134095031117497261843193399936086274113661663676537199123961258014788597900376181404389589254292570391173753826970603337816018802860697501278587266964864659462221747961983863759224519149337748306320410102203000674157207195905330804970692838716770438118494086923477173548238302590542852899275841803179702666174810911124511934200973405819816952716484531817491835273747982837050638490872414745318432641976869397666654466052493897868174309719413481252931484481297520868398982283808740422620732285812162944972611275642712727426456731275558720427270889053509784959738731963709793895818704973106540735660434630777013069682329458548561417913002782550793968863824483457697550939220326839133207658584041754195329361412941958888099750104442207535019281062097915972651730820987009513356523984191949459852325841885888285360348698894489546519244010599806597214893401647956333346482966068289445855417371726006303858631141009628510087664881648582679761928571735968532148168734228411742170815007874161469099112050464493635503430135022626928029917358080170828263874959131340810005018414513258523632796763742548569596923248227390166436057320912890110409318411566285446206648615455196879312672037480687104610623838151356396808560901202076414025950229332845629874695165446843452745655387199965515559606400671827999079014972612907887180275988823215916606154874850831883904081042092645050817038036842950568310053101382568974284332890991339831782782375978150754519017137304546893588399444856828753224098073396906015304774093860201484294741186173039369717280738652258231348880915532570956385051351158885682061278146403126361608015717370172695087130268065686006802614996134943929058030490915797285891549994805311437346742678652947780718851134881706702305666662233374437588543328498584147205681953244738689139325358295502572571165018834672725586482705705278834338581066347225190760261087494502793882615301990126857989173573494272738674163520232419286383370279661352306072561255417849948997163852963646706696826190748387079792228713397616028158064345275937767976801045993796658326889579161130148999775756707674406828771680926412317313460771759022818409194017454451585803115660679327489157796981469426624187392384645298510409656780384053414205662566321541939408214810554799950633254537359620013359186398560638988408078621539339968862149891383731083951256795975475999007360262362353636180812635864051385689850738545362043538161159561671330440639990725532756832370184395176158620193474560122745946959686699131180711611670774380965125571535941590698438653655812469952870811394821946136484819590840407091300845974700851552574244186899447473728134485337547605346151274881784980828509314674317741872667486506821162186574859987958589048476308694027647177712108303078398286272606119688956429482926817151708723430299344991246610300074399114797955226324148625530692750371748474953401837354977013453911821563900500401078856023237751478402632605914040428268907691071980446640164493223409027740942872427164814497676074750372282694064569859754808463338943345218454586689317670284294582768648372775931024519733596474182613776775412584671083625961751302792565468959841419601328424711095580994307627933921589384112062892571892531538485994759741816428888525702163888788571078311068297687591017511156846007265476371074029656096560088011106785150834966914765405936522920875930110590893103608307329198332204023177827975151735067667928556853651643628941041853223476495165949460769941170697282784368382200437135864338803205308816146809729618777770512281822801546573063836747084407368707861458879881898883944852102055276478354491385533532357362114686683034036457008846227607568358025062422392914293368788191018285874949558142168148579879300020420303643638323722607975644945347316641677191117220554212239887377687890787044224455728655768885042430273501735045024230838686629524570920536283134971163074728199334410169271727254877946279911467625032840846436207489687178741807924622640894288830931001802379596999511004326099176347884842520998201795673095975944900691077142040225985838362096328462280488354453943392727819094766662207762961354937915015483778198105198341023992395049525144159060935189061936744791195819732801392636107983922510857044460449471128995877077353883108906652967011880749998639539387432874726189610587424263221901706068899256982935701937646455179778905404394082803561169516083296493186733336339554950465171004831620579897622359987699701756677651703284221100618311322675302569013186791479739741617584356683123613858736533629085072293521279391360213738754665219720619294114250976909310036936527078933177866078734395366455676965623093804341867892050089578897959169971321222379167934246169826235619653151033406582786039696116895858575470337606527985963895979954130455552696364238244491856675182592791770846906000361788551639446257404602406545644192451496246472258709935787112071492375402734797489652279944846330919617177278763112153654681114249724049317411568271705974996998449533518908766273560790172733637960484963680324644592908695387554248473904766152512367439620815570761525563495024895311910644676586043330146523635706233262017895987903984384063462902495682115296409455638667499951151398122464214760674704992196170838184510455593360763318160967294541312087747697374415884031186229274999753472367975519971949500244613726648236053412185773474051633548580738889383164841878926382170608677311665220047585021583545795466381416335165212746325213123029452219786124008609833400468863458602569093783211616916300826575912075262904949494405050044289207129443110154446069148603347939984370677481115920270656556840956242207843389887304507179218448307764954883405722195866658724100049602851906962061731893271147386719786994602705587816437694186531736632500199260985326287748578975484633371893504418530084389275092964952138522115516642010370999599119696944825135817277763190660440852324983567776243462162639262055008102364018912694465090857284386585546441733879256201446683645839089473220428267141893281451562638117396358910719290746909331047525514559928200888573699390323419279663659071312382235941342925583777360378017840216318977637857676956497920885824518157675708459408778414082312964457814349393305590264193604497915008741512635571433709279068996866991749343306365779525748466496099069280348715316839754557616917787775351164151677493555986426183993380904767968724887968880335571759149009977420137041565989705942553944202212003314680167640476479763601321072326310153439268029562578509152336068090387930039411175040509081719691412522283772738324392039290263469302087009091180549203537371055170406279500953358140336951038789481567923574598199982017493348640791886999822376566993174343746293566383168590170659834348604356459828318786179870929956653141397153516444803839388646803840661536055704864253093944444441407141775791085804842631044516148673918258957337521867221170977015173429536410252478217999383031147802563576319720988395180749411502309555920676050531810167575029619892293369218481174509350685737455593429770877189664204290173594673258860126654783797907874725015503661261695624988095086994964269813745880656276160263955946492259885850799259153635537178894195191150692439490172282094237180403091611167023913978409649511386144004146221115559846428375142258532713074464401459255732379978055480699806855102483436037897040490417491018772163976536147847974098727274096834223582036689702273432880641598390787292185797672357922642761180813963436055273496412868241073677508700961536569327667643262077119768196885772149912896887341383484565083170769889172412834192519610781312097241808596903827586093781198997353266833729230931961796019415126113737291433530279787948490641871019856115571408928126315412546709171252003885260507300616037134524713620551616085333761709783777450245224145629144693086358275044816921611526333753563963263499223515928869620908517585291336567080705701707046033054140105652019726632715142459992401308800811049689375518190905106952085999331981555751892713356742017336752821645513169385250573076735245466665215212270325585833306166716953903242904065098641008943497247097514921928787514698768802485540454348545727463460632624194578184211552650932802017678674904110543887210856522697664884123151641764398568648903990760347237326479897204594234845245475087475051761517179598716850206503669874247778598452623551391229119839310660104922672335703928036573741031253876490330054096735365684302458916362094433515177006503629942601433440390966971597430467202547843868037340806953485713109761183086526905900220207951563474352535227462624786901468678145039182049808232000338690356376507608806645190342664349772614967103572510845291487882788286788001033193552877520385864778662385684433822883417039723609689535220863581370782434220943937500405289050498421052200823666018136819692734300977494356940447292271141780028735001815820802645932276170371164203199175574916277725708752029773336255910407926506892785913923461103994990049734096349978364678215117721234153394906580397550242550311917151623268276034138883050518971978285118629414715187340201597052963881445397042248383954507233829259992015452335515935943572107072690490187662593259745808037303186329772051978364537052949686743751870518399313522596072844225431684918276952689830471419188220957681218699394746488391050585484688387019983884076336585665492747305949309434583279417885195919233133279464082895902476702081493252536901559680227966704403694555970528617007648825684303012918454986921232992759605090786238668676930193761559631812693114238442754068051757314376338605867088468893644265685418640119411562992774535549911044426039093723104418106794088514493225546363748612824144883966076519962423500936030579550052092527979173569290074710595973528190149824976545921086339332394680943442490924753417993543204761760744353184734682569321952642386333152286130891698236763291533802339671763763607725694579465620126838241997881649596308240920978658712711523718130642735655019060901206351140369512648815454708065912425479276319824420273019779902247264588580847471905283144189854422438731632257971215342755138225729048826143016015518759536276728977913476821897934802214392283110738819408177554076271525999112180772560896846436932634410310343054201013589573238717472950375063543951513838910633661389557212863974351452473471990691370779579518705893565038343880967938765212464148914651276881643680763633934724472669323214976371891771406378270685132208921312493823146244624554472412389064641911839930201739540170392511473542928504409923744833930109160748188437569025684899020749525935446715434229142835862980969963210594444987213497808535259087784780381009067471262066239296147030418642090120871024052151397004635621099813963335602173196647755753988605613141589064814823254184156710687138060711484810748458446701448857795174543421286591305997986825186547504800795712022656930621514679250903959076113959301222430217774717299576523902073929143659025745055039072386459649169490847364333094037942307027786640356298361508227123350074453174543124834931302039438000726640808836544100444256144512461212270161284696253865262800523886616723509955553261589607731757287704066899592031762996714044523529668272825691929328808807528192959202361592750420253915865765106714311498966270445271363622125189319973046166171814312499725594208430511807766603024555145828839471700515383736857092551693346725925480164879349411996193483962300509230919041530727221860262193605061980698300452445844141848269983334156863296323078564865675874519117477957535151229272518537903339970378317526722731124658109400199540776393822803309706807986273200207773136561788060610739738122083533034080518160384018966007004431753918172667513400939718217037680650358286194195311916169365911662235982387093003185468691558007918452130037860536080618302782742018104191955027890352124888256562760387997079249625432500734398070493175430656982376797636865063455503175831090047835068735314341758553072741611210279334931632212877493222606131312741399546507856260301518271149321393904765000754011762450262472681073637519668822558619461403450323572324958786101894046630550647101031580207456047538050308129705150727780577939609957325676471039264520717488353031892275321318136879418137765540770870641628849640510043722409409316028210877257726517822839101870455258298376086014794895530319433821380439773106553045647872671017755241262810531165234694958330208015693986526890065298855533375297074113650709349880517063118466153701499459019357043556177663933671693129722680949385993006051500451787734763110267029207532723870197088715703090520282726255020051004584533002468506870570176639356749008139301728623084434590816562395487972070217978363716759147173508615573770388659286780710567905986706897680338568525254026660797032705261981773308647016968568858492183186656738219610668554059287550199960322585736094432652440686366693748026239187996813830447616910453161197079175158782297705346615020502509004118000804132051369544857292549773154215153805041232211581274350439564004813966806688557081219018988970147668058769818468354893925866761496170586486961331917090040247229665371630915658940019516429701248526795150677685466561897644657428349422008956957548988106914272713642797440359187482450000065048320396244330323368910884655055709075782853526744879540301208935004978193927138647320442190106934308658574051940637324764067623113063751161086760950383385357124147072033774569548036498949005430234261698126463128123552303385661449489850746434829182614375124428936961603153942162206535970149562216421062535034686360509445551747293120031246158420869948037491395811126701101016813561989384648448448002755784531928570789669674864811914055577223121178621967573979585830039070675883876341564028014895298994756443583519923710324878681775055886749059299843740469006075233075570469728690929562347271733840796345155448973607691217449039136115115655183837649107373864054580745585303815093701669655784214073638350681559009352466467448606248867245243912042878977997313415564087218265291760938929176854604467008995216407585420211269735507353421862895553407516693884907647505344104637335952531999382305706894945832625001549077346044497343466165502301921434444271140735939477103110364596061555862118022844044737543060086671384687042866358862760761499200757395888238646291796762086422102719920988388266912136211548665543685448757415052463105355427694121165396298832203693969402991100899166819087903518157716339075495010132802388725462529538365067765768326832979510755763993351316642520723191576127843712917956358461522288215076378984589423895453002466362968183851401075167646258313333794111044924073341851142776710773911701091444270033770337525397288231621274037501038975273476557178535756002886151967700806738135239956001359852712930604920083706677228587450024514055368261142465916836679429874390287946995549122407872526646771703501938222965664940041718741270494655312612398451595886511446716799178137087534431263785186686942366071631766179562214994643087903321598146754859169241267108960259235864581902004874495870242675541160010547758859129752624549814644127501496774165437952669642480253714032679142366421009383595151351717846792820623650559101381798074644776557535369713485999925728436565659871167851406438957362831145835905829595782325630398534411111669017735180428854397679329204522227177314988087565163889508566586603725888064205259771543626064070156677185168607416528758127550097794525674569190895866614062383961452263791805416581589530833751847258924510854473228202104237472426979364507516276753166398276947606752862521503921525354896169204097092556740362417577600676405581850998572232773696937437422465927802502325636251318315216255763692576947151108370535575494277519427272469985203165282918119912984170556601537091955963455323625977918195261295631670381053111396572140363250626024412243175459497160527232836706217546000625881474365120606519625320446354357558497437251074767236937731369355693038047099969205185357734511852409262522070375732648512592346140173490415976991960605560065242555622936064843210515797658066705484102596150170490656862774919443696225570568200413345963966666082699288364602617280791460393230060177004027590458281576606167617572519856621796683944435204166887908901332607586949057140589932416923229474007816476836608556739172641737496660776585684172927197523112696444109319845220386712262123610568211202750637643974589476107155232412113141849441212305160602446269307596738787044733830685160658720623121386154467349577215392550459491975442159715664966645398721765090006776128234564583719652101942021760568625123628660896210852683763820635484002453198228953187178694852998036052884629643884750610527093048908533325275343983657550505883274693354773451760873326974432746540854211711045640233630438759590218054551582857131621420133435210988875908553302764640676308881271579062951234367237668444316052852433502876922150946271359800180605841730743991421526392687922520402839984713245909711376568429011145343666968216026557499731442748160167762759407130152540065177106086888674564855839688663923665991140016687842427124248127952332161514539410911835265623677397805624380987595383205712671612089708545642100482415748897936462301008656849682034151299975431997730371460582144923342868562940197723583902172486022797593835633166612847902107772090990713168511803648262353556944529159954055431832907943994830178621686433682989299501786355646795489631993202193040802952375455127085774734746673376633050086612382195596477194465211395178136546927896684404135040798113334252393343555356453274116689460817035388802524792367278201665050012903217258469434852351110781316845371825017477223897516872882323116876608048319989783029124089416581956246398342616817333921812087457112858955347342780395061921707314768360316873590846352064807042222690570318788373098338129664793859635200611249797483394686297558936761381908260062528909905243419213381668925043285538374138132111373550372784367985487115894094612406652010177339457694041966370497019355325067114636666407156182825639153303628808284191428860937262136108894451137727091218627427704573553317243522952513303778494492840855057660877003720999524446325717348916886165091487686188783042415180822044054283541765673106485751496624821616678365831147767953323175014880785729847401204834157415332785287548908196239230961000100409621062634989805262554497895366260839780006802021187887100964503918744793574188581585234000823797740146772941108021163525301375682687111418963095123247631768448270453121833320407430484090097478905839710775982778102261847723157631087928443769095366095566874425643418685573879640885779704330580395666700182391192869194086656242348511660603384939214058763277939772304815789072657136903426840923209619835935819642239770158766620872203770033783523614022791028556348532592614792569248941101964253640659219039064357637379350685318373843108233278882979396607080460508347947112806730873191182685545422327358493480989708045090418264121420601454282543008361986514027359920828738602510469920568053388118744936286201794727112598148471672731426013121142773884163625170476258074432044298287143047284309704556894308984088842204966520240658266599683449418593029344641218776211283999206792948845413360569220246442286920836448688195882488181091588914568131036091859412161389811389994182657680519588769155696967716992211258431743969526723293795818128239777991215038317583131576279432165707670839940176767484643186545812737963297597780082277663177681901501504318475995139458951541322006658815706377391560246152403658744603151134063315662279551646148281612836827428263277496260821548310706603364712487177295394774532311099216775192493728261888631446846187222008871317000045570687380044090592672949277027341346627357111626842681911671936883675047816690856746165847984227620592535368426350802018726539246702396432333258135470365589019918046653009024812208442094732229189606622761915471819180776878363679096810419575517768764426797779827321683748605216279437347519939150332865954195260844282203027815002848901078717117624233565965945742715607035328575356566945188591157768422005311400900767301187731447824746305920461735355098056783173373058166139921819092547182349500559962679502642330913956757567862807028326864169405473800674610692770346663262718597934783105930690969845190956436346204534045380417801072553072447966419858820124464182176559219519764165010768526626083325232991661192992954747737549993945338696132421272832764489161609559427866669583715898514099000540210555979550089242644416457699686954054592698769623558684689134899256136637235025791461638922984725278912060733444610486661574850461453164639607919388724645099796559873513161579994558780157499592011023330673865511777958769487245494267669580659466058735558411989032806903004414113049316982206278699820189234816062591572514929005748157264091061826887335934982537465541726640737653886418435752832736019737913901483522943997407065522176139745211759323123246942794580490068892264648304139336589146555294066711107733831272155391560381488248488475485783103472064185114986956241087771449233763089214290192394025937823924483653084387352355664836989337858361823945777568538305260677385674494439147329401818396337609628115381628116900244706047431476583249901343136059497630776976667302611633555224957366961287355336438474073871826982822569905465571598633160493183001669072136551185277660517823407362000478752900954349302244698664418198754656949809019295006880671376882574022879430309829801351498244563244484381024872069102251100782859953665114175983171471631445494184148332686140164205078259968398040910778317570430267821050497688482002082367896514503792588288337924381390995894309361331262715551593263048354096599067576112764301419603708847337312881142909454814652251677017206179462295277539238099079114529927951352468283497204891313130914243848637374270045731262608042332190882245553307452334794303881165020455476747381831386555845573498905637473335933615668389949135846134996497615565551742215641816353916432862953724012130595733416285044363320987940003255988054179003643792211100349728070654814997982902196337735292325430470879001499794784280420029640031554433413967360630215353608432132557197199363285457881634589250379930065296722757129774017059776625136803340080707568491082518078847088050388229636373471644622826306156454364321698706392914180835753369478720856124741865900675018965309553501177825337076091034209113341087576879511457767414414779022224462614768615082467895271069516766124933950601066782056505269409012590856881341092973440182807399728160318707427508239114361553536757872913537311134697063508412249040272062486743913600039649108296344552233258993058270010387182797498694859375295276597202954436164706685195631608833265423490826128856298609932369138077726437421097206107929940246322308404414310138436632727705626443355471327547500548480179370651870220255421639226507795753446344988575199289985373721007672053956332358393563957093708698247308810493852172857819531633686621347208188089837201930238290536158984406135595641313454060407400512541707639339029058787626212401643869179315184403972269417678573596032190707993209849063773786530629572884773631898988770118554084646694249502610251657307290805108137012502719676088178539475550393564050224537216664599972163050526601888738373928672040491506293102648096091096793330415090657671908433016584943266231712786182376726752238172883021346045060013663089136784068963344359989219782833003804368830178363131270927709868747319670141534123768385080099895706285611933106355897371726088922672356616655606975542448790321261297207241835819085644742147787818143490518111445087596313845513063327963877462011000102076663697191606247526159278596325694166702520547882255167176169000556162425956338627323252179204494707043936720303780715227678742848087893158418858942621367685053717361400543829370941377498633145877610386752397285266801841856508651103513292763747979209905107186054750449803045105005416021924783763428955684225791712124085574171567140053488578166254406143320644966385429023093090641673336745376250882096978632405907573390314955563911062975170326118006955703045594059371991187592207798053939768760136051284631601007571079201612347581432396321846278588947233001121348712354362879941180608824610106618623023737161395833213724251002306436253263856081824378615228197278475610768372619131279185316532438066743858783355191986975772191588375960806192376417644892807756287514756942706945226805673476409068937191788580646579884601277585831273874980838791565341253826406529288142560901569265537754004241500459295129159418829118351810626393407546478882291794043935112890187058081850146127825836690510604508992647530710001434187087412361642976468468346481463268029658646306348639980155019854588001935727153602921247377390532094483497720418432994949740991980307403786166601564818335736651028684495902956699059966687731820188731738455768033287665315619719278483058236995532967516934727412141427951468183177375837201822728562820041134848943015608292646204687811455606685949246078155553046029121809169288813607035574867541192012859559768011166767936125202200886771822820102420512854579395281267787117233275864297443554679882786374984312656082260725947739467996977061187687308117700977742047407345810700066243244140944462876024635133491938582902371914791191531292206349911128392321215065752155213958232526429156531284610874838597119162752010186533916251985578819778527631180237242536611658010338867290788978281837298506346128328955720216381238985693175256940122114597996513171644015326916582063168478625825287296288426336013695534042780475515130856186525867478866487167887735209959390208602950295983416174613303285406790892047291552948426161429602782552623731905605458613280496844007053394913165716916802108188049104474495584010519848703496331088693898713797793689081189380783939026107015563287719726783291980320084371985435313881008750562539099796740049774750890867899233194344212603653170084099390678512447963229601106517685443623620363519315095479012576039281344895756346868715305970315628130587444122218537633599899976044273538075077196544203314906939148575365451046290132985160602927793633161624894956514696797504472780260777477712511709643707592927193229773341893749855720040231136033695527031549434489938195410597394581650938309603918038973635193548148043211899175794526695710313974074275562067490135534841329405551502433157701080231669930197273230551244729862873379842891687837155074181968917341680730773273673509276862704451176288245549570219031362773504172133495713617485730064845107766788399043015138207180413867794975865864762920992340130058717349196878777840913221171992974570780426031161685231508729439578933962966783377432641718222429756297658021636021176782971308516919932708695040388837903259441976150298199692842165289644964397225515395580037837078594757296407152375275334880304049608404477127896659725696205903756198360419097531694128510792550613867591923336871281940265057748038538581943044213501457872461752345710062562540726806939610688991994590746213711901031603823524287764974320786203283753953408476052975163679926093826717796902634401581344828535405303273939558246827583632385783178468336121530816682788125030282236727882068322383620371916830177715428275831022754210447010070387491277230272616489729771729219866123367732895393899901192859039774023530104717735685521500777214229920270944186578437086078750509394455266406777846642178052819122328667506795428515831835380666066717831089808694515616560169309500392607156629183756262024551448606194312918494105106092859019795999756582755837007111398254705536824000385840813444804837900576924050998888249767732868002434533078807542977542586562382625735840238536121704060398584556123339730580896922144745041503051044505283717799090366611366359739156751525080127607816780159742197868729961066018872831210516658275095804679472268350854782906581851056990280947257504291282386387717109039809024916557108523767830587641102841239916697615105636238300530592434625984017999175890981360338088643873550991431362140683817021668722401966805145592858727383605232744747808887134659430234916321945001348140559081639030394663659642620549268663714194092614800654881955666603655223618958973742455196654455939480079314975813968346216824655514248663864334814854697421670552829208511518059393708645809328496413935370797932208982508410939338048397787474291588236059856577364505692014511663297673656469612549978337554364211967058678101168771499013221865929443378006261753672167196754937109814954327595084059022448812414532207619661932203999777399296283567271799279625897032446147515604415438126004917466204064348422000779168241364417763234609552537637961139537518299282616507696455066218777177918514284496566875703328492991490479064486802520018543714359176908954843072078395104520406830708278570899528966287439630001699212473732931458427582414061900410207467507323404940804589287478567486290744871962554156016583798853232512468728390587518765572005386925775119467734504984122576111557275554960644972198190569229561035846623226576249660226236191191985445047981291462949490221617054630895245756997786032616007574294545394827350098726205633257415151683356804497392013024044412951255273755904592083738317291111577298809031695823721128482520588704808965767606350420978609492685845677862014379361904099774192114996736219417936657779344742791808959953706815452579094936903032645522524108184420997551997042686177299050588712501074006322441066395403017721912963618550437662530273842210064384293118587181887154787587278362652852662704096387784166135273700108331898233227630215551757586406119750473068590674838163170349704347555864102284010442347673217793426284816361836726949776024542061824881947063354867167660445284471191356211798974499965540819253680196330049853525100926570158487208196721745540130486148592113571111396730063729667769016562251423202099741587277803301041535451634862643342717444296826540126763540271205739810642834405244912360663207089303869578504312081387639349207024072926753682910496441784803112079942965570785542486239862264262116558150165761751905414073502126017036859701756984011286592741333628166643087017472232382505921636760379049903078378955479940291167146103108469102119441073102892768647867043713905466793690208042062920943776961535528102600088184259841426350054637210729391166294303175010255008266962715225671672241376678558894486177589891808410728499666991234792068380626581849783333368356095565388936459151392105047027912240512062469299267399295225719411829597691452784671753286884835571302378768360208538264554271762058649254697228855502979207616674748188171402020527170855739871531264905677843661153571413051846609416133444283030175758940666212969482307641472682574974515907210776273070195940796788387560916193925535271721906090511366916408830973563090441788529272383508817744641831366979970177884708595066105294447938534504962076500293878986546823553264520259194098108584439782819976047671447880448183764908540150119023115815005965658720257020774403316135120060817577461792299421205796622173144016982721932929737646240373805154278495371316474561719258318725003386656260689617591274728684866363850281597640023903802383349097016599323904687789874543673316044778085928083522328840046102982354784706545172411917002756137302573733729763264577784085351664226042076153890397970178357066681113839105737363355440738721962692607591617208787420907517089063123802073745946755003063962858844836919919091772681941988857378248617116328841492836456436536762800658716256362990973784181967616177771188646439827127724260130308530442088746517426463785423758919059515429886830162595788508204608276743072531226580496911152476001120633053127800232823554529389305009893431350690833458507890255113545095307583319051239555309635690300586667701057283158986080607426418005166481704900240361260388201992300295123121577044469278593435845779048394871015880790942068888220757343878361395887967761082349187105135432862447419468385267491427388462198743971593152860489410109825581345830968008299636273712664471433963823623333489179970882868107842922469012636348776604061846219742107580999302008858867795006739926121239655050404055016667278097210983411103577435375051489272246525788026071724425705999239531108315576049255102753978855032620490587317576182350519552920378047065172173253092585163641423806148639179680633855003014581866067518898739156458428766412578407932941268341048185857864762278952337114631438530322438741128774676588479918290121760383251589057947900575753703251914294315823524936604127335446804803794313649047670801066884010802006747728967138803090711858357475291251383560029044721825571532082556012185135287176994604921321063660463533198589079056387934825767644906951596512856103662128295228917499444169890661304891268636780409418271240858888241458447285279233761005970806205784472912659308502966816820638447039222956134215341205073799525064990332250930532658841209446074867560616497744501805129231655859901016081796781619541138593515571291761956494145428996111896556119554905591758957754520507843429114485330382778102227005893543515452357681311029741141982907466363783607973467289742466338041476851104417487753916284537522711699348508204475490428394415313969399323622674928385402900379142787750870879613053979979083552762088196503619386901223817174019139690666970705809180366319194688293488405648288549961903534832506930317066806844496982526594509811938266380984420707392823047666348052967792554904802051025664261344198936712397479414869247580796721902822082135990771529009757498528223886164220913384237988996974585023354976943232590971232242075699978326615761941928378406455649911970260270028734914795504058254248746839113065030422032344264249399430270576436731895625749196874842739987370299440240027524977135171361918989010832396602832697708239457874042618834880620744011492795692934834375416168182089752571120244233604596686558677637236567568731509845663178101058894172330330253595006680724556810086909574545665065933196870358605877315413683043379760123210643373761531793272357444444390495772973683590240304026573269268127766189182922716243861485306582120429869610416535165558764951011500531660324423860149202607755843316600521418236017980592052570287524478399180627650147294454692870476425232207210286443806252111564832218156798607389715159296634377531659406166028891463581008846555011686193108035899609827412630408955407389131923152422409536077711532422023717979402714687251337886300501563813006450090590898558347103916635666948293468657151875975221580520663522917841007729209437150064003724347366312127969856608184621432339972089793795359641199432433833747830856850458216687874204036457589899671937550839788115569476338030885621629979670589991317979095315038912626676064867674718843649127276750562373325778092948053039615292334325139866815967603350128103350761199815019414813766260157579580518601831219354711822620539274448555367892465834987516974590613766873034979654414096819531665646486670549660355382533523468866571390843103863981687581404807908309988316277967372091758811018737354520724549841254716743548342885007707999065339576116350361013251264205089258701476544976142276915867211214609114409150282589090582213989989075903067298376044024391231345854473430363050811490798351396736124930982063474707005769896938696500946946532390600909534621600212323728749478657170977650535163542347976863731553710050907681980387007109352203754823056984154469704026203280439432976127025382750446927074316562516837986735979320003664502840529138258220759094435054306476677631511296802294105292327121301900249626426294420121588006399967872708710999862041635533511625378787758049533275001624101220721975157511221214117854176745427220812365405299695886246267788271863055537040755171561351072398824962989784729127208529871963532763648287718550841666781841280634030503378813073152768295952476344633235747186165724140101466599887957203117409716276626282038659505528117219204573220636234445230827289204886661783816070431649258924636857737957789940594823834683090901354123476719726247777845756378182569696915242770569877208354749527646747434976391527915424445791834882815943393016954251831725811800040024621132501814596347451490909655402626541110173900460306418741380645337405466122359160278424253613330428503784637438024924698233121724111606718809814459310374701570595630320135968354936742848718148747592960770310945096763009304092717682834803808792367569656018015414787481267933873597323516519862282722315788402774177503659371077046738544204628069914052249552963102503219184010571941028975406838603297491994218287649404262617651143629286624460058262317977998217695809545309580622134460071873677287075951450996429425401686603347599325917952189549862433758058540310600366727903359020540059874906050708165805842425012909002026838771135191359468785775420370717974662312975683722163662863859504391984755674629802849868683456085503664192600018146536788769305746464005686645536536280657366475599675521550996488772684155799970662233310424702964052214956794789365216259717608007318065648088531095803235130126533793665247238028943335674705264411205726889270619840959783886631607144518953184066677673660475886507159413719909614674294716647574332315674737343128847766316441766874506707197555432085146116512072087055441599885999843810029406795136015688485432279140179558311128530766357896776946183266739711497862179445161850184835246901706352663388177979082247007867206969396630310077121293293190839576459796686847191490604682516496117880807996286995932310675924480729902074112759692999987907257193949103155307990805061761307877316550128637513534039548021489095180845692007618648732986159652200861021260604397290755355406301608559082802781111437816972118997641661498465160381707795893958731106166718090344650220264517314170813467298236615462636850659109777649564761002916685273825394608129772474830125225287270306401962936039915535315668006401747116041226568877019326765125501424268743026276866581864225798959914279410846628633269745614159796013452313311938318542820538603279020226216211487555661685267898889101093793815978715043537110239656274084307053965402951998639458953087367308442764645283853545165647307669082940793377733984977535447184445242929453253143950746123318072088889702954637142839646489439687465591562656216830843537885056786460255130507239550401669909970497852914214488809107566141148530164746736245583048054544673889216240323905004482642284099144497402190248668363007535871662414026983060874267976229991281719587561200866002282098368300326819971996960085840536604783044019201784225714859767232944035399359441241758516912070241197700992646553806047572867779758226082492956947908457087270413759708494634671275086715510193339178156591501080004484154358341780106660290354471754424628844990822469860493595546390055270273482834365097719407250251569642016195830663272054681862891590852822702622174283371151067355610928685687621863089918707604732654364879867360103915553614993475682907997209016977017064487162492748638313526768812493695445267780263364785357719841721274417939765229861012657342670048817810217509302326120976018062552400745417004308865916802553734766080198468858428923158042626171234892075629991883543641353123667013127404190796564703014992614803872461372095063084571652922396656201938150908636350356189616356163276068190324991707534319664222060449105146372231023408893509850558953516923429808976052651379723537717698347580967181740627401408182971099071939563909415877182591220384889080227518577281467182391846627824030000976993295601462123726495779549629078717908657229780928455367058648958782804075825420244965626674978969456662272182164991551345132525174434304566048463434071107953890295949103482458867734770871215114070922487213269014639674139473260291616240332291641610365731455732366309970117660455458057439227482441048301389631575682357729163797004683722924340467450076273428236637251659187402962592736247002963896783522012192290640035918288589008712450410160047136110463432243017355903866259715733091999863070816531953075497158761596315047009114962713829238624652035973456431129243530818448796049780532458595162438833171793990557423284735796855684960480997073545468533635285373320595824452289956849784529998344789678394841832504448816666993143753653808559907088345174115220238131283747020771994580856957218433885140768707266206783381760255284215483023114976605178380320517564099356514322189211433859551208523798498939534420913267215710600158462533354790816646798969587535810209660000062992561704302738541377355095294918394151794826364158415857836706062961405370365626521545610313535645210880846551947262285073294276936505748424958496288237077802197203502747134214979242581411954015597702234786995254068013792198345532901273981301240197375026065565744881162097838009650690467357867878588995922271175412988079135687770649221031741426319340234160611133435696481839088515142246694170922203249050295208094057709467576765553917404737677728341525598315161700803727300703234726928745171141277497825514477048523651181618709308410444641732586781628994921607439458818821003318921921561296427164991788615631197935180752490535306748537239488636462983882023949054889501834399229831949274432131814661944822770856015137970110933010666187201463654908170314779724326764429693130892201861197863448967134471544163431597026411942175431136875251539262142739076581399922352087104881042172411204069483159010234400787699594565076313620479576317359267604772329590799660417569205841290266706112983379274993602514841245549884905352602332951100702140208474701801751706153705876030076985579477940301612033268148284642309569218160449166679865885680346407804579095339995171739640631209550281893185996012480091767024025368359213158794804306019213633018820506660566486826552485379935168089799496790683484211316551500920538350334632005631833223576429442183630572819047367229719376994551151858128986427733520915494335014690794402946271142724584100940075712153993659035973927610708994830035116491396037872893996246303567344035584844055809079451013427197589718366943272562688044299964261337377425325795167985057301465403005262961905571881494205720622867895127401003861446123917742175913840975930598987884408669994311342932237593551407165497613564801866778219997264510681860003628244389478307106880322620921425133864016376849974184464260882974516849516432395657246473213409743590111057814024168640941617296151578442271784725495157854572337079859156949593723013719510240662653482184318379040248096136798557803249558617743369788747794686005935763344951326189373924522637320914914463769639359437913533264394288494162999612177199290499701901349244011594687350070266328639577538316911905322344033508738834513749536848496626874680791133013701890379446314878037933959641392985358561404323823658740755241292279950766242404311072459824360510330135957048702184420458072409737833630566506066661566136039155721664237097513013658411535403522902811234146728025028726962319226661938262846136214917567096318561494755939389195186387795354993179754064274715731252981048662915496991918873226939642743189435238124896766746116948974126984218780800924023692569604214276881911596048128857612386704908414170922497944722367701161956957588499565864491634604844573126139833432122236608388993327582286794088673060784410718085650894182810093785162394156984558091460105358373915665561672468414129013525537333224486391639705713896942883470330986805950039654032465268380250644084681473364022307283525026359263292781296334830040830339729954964305263420422276067937438880890146962352690306631395490270099974740429514821864612776005500203916703011907565973867924151672803059717448695718254767309117609279458095791088614162909611603033240423470596160934724043689746894121633789005233011993857321200132332343730727868529096057424564217170624143461042206625967043319945057352060880999851839480403709863642551842927525896519991652864936529691341806064678422657119778945680390302910778183516282849532703594618002360829562045599953328293637679387365154108092765678083204672602020634023895204086586822568722045416192513248816658998347188535335617958852501064677317766518633257192444778452304536487979671258439420564864040848211315710794274508563238649479645732123980717249424238795425026855747780799120228004903184496796315630208673166950761440556166807681588887662135615637102684106744537080076033567465968891360961534838398941131761634268036032816420521894077358362341316345309351857333044647850082463469815218496368456636159649866449064590837266887986635133339533025519950063897529330278411779190591555654307313433257383579970443208088930748776283856666897090754009300207185007178012490208010363610003627522512109167176835771830167286253386752913333336976743044698247072296147423283473263110674742455421172458721591575534626118974254821936773612804121443141713949754549452836105315918317106253396572676251167284782191244272474458106749076428933005106110666814850972482089620179412330913004249172684756549322287465660659776379418032978323780141781733248286021240528874898943198756998339912358538750964625040178275395867464827260543826396807474796977575100440518925878391156910130471836831290415232656080797554091440017248247914526447661686855422946107554323488491757616729418212551758438761893726918113713051854278108368648158014126211202041295199195612303518821268803874991790451121980801330241499009166440483329916880967500953845165577238925913819695659009282566581357607955841109247886119562854580372328993476955215654115682924742358571355122250299756222502334835820740265585855846210671935174828545308760679126947392431078601004846019499426989247861451119287956749296321315573210625055086650250928125743045819537291192383218385043540264121817155291268145522226736456250401513489797848167764515053849723454411194286160590681314247821021954870866216657340762130433471066728482324441948930133693494741618693512966258176228776950692777060572208139326053868294267844118559368103323032199855172930429049975563095393977036803382754859316412343125693985910028260252683394229013068688411134517576222745880535361455995243437407725470707233977111191804615990602210837033676264966911178694804023436541705379167174465690319328856511578237191040958630632635943693486094603031117890976349561304916154586635822551088784472439664514775462635900672843587495009784209367923013854913773034370904022745326774303874496192956789420023249660057882571583529080787521948036377046663405152748529031456327197142537279892014798926460030282094568592211899714818884195735183612105408860112235471435359902564092198645931214988944861482667211409974368982549273070765751635485997939306222298956099216330193855858593798709323586473669158560830722750808653153009579292846704314905750510078708722652422579316552369503477351100138055386459515511422164676026050495775575946493101659481633264682834301898901045512359845913372167757341469946792218287115577859072683194373659486949057054464881063617416927353749350754073434495813146030598474735218774485525957031595954991946269611265678691183833454510870975314655822355458704218285298368851802019960610744851258868555080824379186107841745041251988417770276857468358793091627696466613529009426163904139707988266074822679540273069828824110047371370711938704411022130772427304003625145149727422235072116631241555158162083567842466936996211874980406724534729777758948544905603740370396017704348137188249614391404594294927931706388518030483981587109434245687325043758375152407394383318090689765554983790417099241687064280009535098005914947793335770212160571719709903511896406719304738371304467827744869338731460593992535554663302721851169036724383866747983702742937667364331042806298830465026452732915181422628171452138760936245590669948950427379165991684545930868344333978013015654240063578498958191476397616521474852381371485146916256708917505467501844617430804772684362729351894708012619827148287578784246852773217783299623590679430247874966641353550670055560737526640752406131984150995718596742029872546501324119782120806441911720622456610534133322362503494877869076217782905745780304898181799644103894552709261488692620327836471442948897806643798242701387838551213688721958698574131507318034154888357717080399992498986801977412610023158031210528860144839469142696575629325428158867351180472326942273181917426366836246347364484812994491088345940893467099513105440051471242070872123582724984055537066255016519292536460900994418378165030970096711288678644518580247811419494081776899945818954054810070947525907864151163829497257393091896960354516710148680693742209798519982345372421794350661966908198503349409974187227723951546097121431527805820438751527273952547629955323211414510363209145126706052247478771498124216089269693878532625558982548028174208846225891496558261942897747700733208493888327560404384467400606185942471073791524087262591869259048623392343451513773859747345916322288613642088021670592746045144563254585647383393306835414451298443298129624410862574197786649875728697203145433953138950990619026808824947385413146603722347651488657742979390325475128361225605031351655513044612225706025588051616655832786275339217514196203398089346886519897733795010077308441622193747654849205818687206662561533534544084979633512052782921899205928679531866350131081313527649240810950781016619530963776382771843125344342294097890723752903883441739810961583029971404901693420337891711830857012843954547495851164280222962202872136336436805230836043461024380420139162077777830459294099525776434071302397542096616121444555047036157882478877545248153663357810391029120922768030383481594327133984699893688696697260537238197086442829806088735447742270645365009635583696849828392751572351003388599461686487242904045950272520021189629736282508479021704585136318147051749533233854992405690625264483597895662956600640221016268304294737090659740978792229978018688627155649353106490636978463971475359637275154629394499736394863492357023132896598488661373975706515274396622256704544958551761832758928428654481257579189215818971881753982802680666404333457766564355012529379232423285320114201640540744237497879188895678711345077930219671211242124024694833290737574566667104904202051254204529514507832075586136819798232817101001005959081427013813981804361117597162338681914922724127264897826672219997992077940117597529234473122774094810636767316044341422009286395498669858356002964923869043307220278807053188089898661945092074222513522411813444566309435806672818890301657370061006474824113575636650128571601479613706380406670731590954686053158674780956713091242701092448643666770693005040381902284291188459112543422132682936577195157878793975652656558013529756971344132135780855282524276562935948489115834958087120761145786698326351497963287774127101588559354978874971732380791249006616424793426270510181014101795948425296317720263504223582119606382159861066633386036527451807616819181412512961369384107835134392140031501453827684922786881573882273124006338445265413694057895246616127651251187961918768373309163834795910098691155902965737970346820274065004546011287759205326031228089564266445584679001984368928473134763180099596204692208641932352525323093291230023243042638302401169949652314229582991009310989213549845748569971289745318621719447418575102660271854546080400845977851284109355425727041749357957286700922739731567059619720914152167997290466235639872613348099993810070694706610079502684726231308414087034681376565265584068339045101027982810347281549452728006995197567369313254718110522255809123136462553887616445638675255462491805052657454446565580201597436241727027985310393917725119407660003619028251279096791375596276195200710754477571813922734725026526751703491670815687221433905520797727071055036129419507966692459603993369123111099345849901192685426849842085737024429177305991246426601305512345379419395332025320335606300806340085598919135548478258854016516182084538477202873473035588130784215471844870269499201363957863191226931146191992685557449979931034924088691984093852230951618669385106825524847327899155555837205032390554764761847574223962151183207344709598126963893968139549157986587500832279104483321503135212673796708466818295153383173274516136474636927104573161885876571626919466212101443296740874086505392094581907784241929950447519269059139563194043624476444907399364724424745781439241967865458824982242817210468970724018887948345951772143577615104046613121455416412885966916945589730802937050169406948864487156891219326832260716380543246000142735699177262540222297033249362200185980484134211324945205973052559018588371042239107916650110240652185012149733184445468241746692637490068963282710275843890682523048754480349093700534082195158182396781933598842495564987301532222239735954243176718993026733892233913685108798856789189113381297575696085684503625538488207317182519246448608039532039569474996619688848176178813219025363876574944899804894665387614762765477311242419755872695393250064085118590578393217018405700144016958655013339464578642194699613040842846446775658168829289321431913106196225416771219464283223968641139023958330894404683467531353020192857057148472973813031694465571608603788555442493429746143115823552045589589655547999406989816988503653498316526552839077941531558143341874467022137610258824370392341583839145381989155941039447270835467624964272952109453070905891253728677037949487664917122558878587339148381929370917486594224622917410962833850058757877778075549236911021679563798681951166714825142818760728958309409472056796140384713022278931737344998267184492561361111579314019548252915658944641982728475630353121868369549687823286034597959570010646159613633649615892021932256345367559225376183463771478639156146567808260753453642286882962623281523020447592009390761725796056758852205664278613611205878134965707692965128202825962850004151670011139080779127343110540405269553473749449921050374008457759516351658456612833155451608225002964023816212290736505655173801517980626310103027331391662233602092450801243558594195561038273910977960296658404680410745508664589215745218493031523520478388607414798319694805820814033738836472346725156304297462210688479915082256300349307935124727806225551880068054451266416845958319673761702245296963363412996845529553178829015361918618829799105594223437424010049480161390305395640657118081696027341083048496176702597121641904278967277477371593167779248625153038936500201535719389175775067464033867740476569010575471188818421340459206974259711161204951895599180088913723602414463008945231235027304972174230759693429250410579241249153316740370445136783431285563599825738882457976354261106776584895238255475564975699588280017216106732894683184917534376138055180447422254060520540273343352409394349283942843218936032372988784137861639631952453835841763632563834895972657245387751949003577222470558961003578011816975185281870562340469314316127199218045220049740884724795056803871035177409478244939195907579188954941834667603830843911719999682198346325333939156699367269469006675033738874555259460417162087234283539206359042199491797109775204040155684028135214348603864000835621891758181512286593195628258933231417080190757173687098432045787314868354804537840968293214442320455392885243883160742653236530512077859299149987857932450200740868962081060689480051421188072664557663757413047102487012457113589058888763032636920626645428558253153101486175298507394568860469689503488675139752892357008141632525176775752947874615913723294623822179675490747117639711678620728354574120399820909492183411273347982837313595019058854144851937663944426462918161885284109491877965865862811898000974784606621087721726110026670274139510176436396906141478857830097470768906514144897924069863442179728471843085074966731966878348618513487921382820496556120012790297426951744351230063743808133840042841116592182386603084920194949094172026220204849061092762836361158799327112478282376237847288733782243951891108382735216678466841119867397382638385737147184853871647052820358596342605426555421212178547257103272712818477260933855441776811285113495728573960995580908391107266991351343666777005811406760915479254037071164718456535495293420642519759618307356596794816628983984616782690092874144964534975508432574214294888105293069959595534765963054515750806731741572513056329750133844313371648179324700916304998519121210871899372812363525777654749596649349951130460173556781494139133019685064971891753474247795582370124440457328567510355867683191852388289323561693615933268544056286313156786528597344211395178560743282500224001281148390124833531664901122817833143097954730343426175079043723516360826459555740581015718422288238920787335997705081575132091688685184120879852833701080411109845547848408124025295939636958835655131367084015394689689304011915739928227246498340089902855644404035425073435991402512716221963872235960323781989250972984460517268951944263246730457190592543360265625705491589200317908651959936670203122981579662767514414761232698340176167879699368647396471339192376389437940598831135711895316868603671761505908150424410481253063268947349726181831197262819858660149832946762871538491633257390136281865059531457264785368553912661387606685977186875234444152729653201681343803502954666649831907987274490396883564570891524647813449535177912554942062563453397438016574516963232472507743073685461910935941888360993221246020154431742046981126640720592504208328878936676358775351131747959451699430585464437187562901941785597012038560763118186061010906693945172434682898511739586858135919470130767584523905748433944036525424680392340441550798579096145437891505134500338893889240562346206615501254213916212593215775881356405014612389528411903236455313530585843419208832467133801551330966109506687540528140047085037315908270904405889299662509386840368684365596901960271709168430337911432207828571093275641620149826654392970533633952443591401158602852201031215826084813041770373958703584198912552884390972798587656162374461300009781014493103277584501409024929647277837757134425774984599768946585777699602580358029738749170170095183573115850442800189291737027098184466511013276219390400522269556512729016197157946776550368085120656894107149993165120688755774450542401398584564243301636772683657822042731404906661780522965589470948002907793793580054786575407888925355490029388926027747920808301818375297223099075009434594384488026975018569977786651604159891539802599188740808688902772517996075827579383601309675055478737002009428783238123557592770215009987847998694910740789165017267541132827735692201519182148844022780556528036071894102311899594857708794710789916537746325273906524463732912093995895523181232492813326750861748807134436893443675570250047725933859220000916343216919094151851343390767946848807911852799842790939104209101886720804586958737907344190052225565080841274798075863866087793636187461238788211719889027533984596504340892822405962336824888985879874228888351682136648074010701368910636452089205383463054968028365508994666522081844933473653513036859710306962045304265225905455901361825306926055622323427070940602491989040724829004854281872509304647551473789303032999117284390012797424909371902961724508875945030798569932650854034325899800121059967376457297578034529703467137052470162568474168122092786436049150183895139882675167254449394669145213088722955981303362877683016564144660847153297333323213174368821912535259479645309731378679264032819416089894747496171404448107198210145824370021736747933905302551138057811177934376360004663822631345496989265559277595987000520154029936617471057753658750316358615666853884244957817464400473690214181293040862514832609190719788579438784115571727836198186481438741741167062206999581321768094340530127837939499383276779905022672046308458019749531384203955540084270948929127193119641820424652063288185774877832083901424139921436297682476926898930273980841778756839081261928934956245176829374097979192243344799189345490648728572122198423407531349721310731913032826746593833556688323278689015778434945578074225585386147167423445773163311268834668547518372132570668958542681034426039682138890987068036338364914532519270358428835706894599988131038042597869980033673214929256282219358321175417873605565422447614393177469139975161389286097638852037167477023530502535571016291676936986146563521237641274005739438298902693655522568418928289457976451936024230046444744817574808650812432138855440755764636137314637527671572064159269118065243503092892573722196071692088531334321947656884600597603782567835166692795320262220812525333995565751897356312143853602723638055255397452681327423292078242540039224848598718663813714063329075241659655704745464660192509137318290377681918750469823742150882180449865570816870953169605116867949196686521284491630701083193689806671369929011857083759326735834933593008785794703621520144662127193128436935923897459030642316364476624888503236293528248333867337277918309906236009962880198481628214564941625596535183461944605990166924063112465670967846267219632867951731045430156950662620469661169191791933296009206714245511734614127120283062845762574646196269294362359999932078792982446453435775499208396919159251017689031221887564061141782225330256861985775510588588141439219261068675339595906295819437658344771166523536302229066802486534125620255602117839699934883074441070610723656328063872651533955949357872228806882377470501142752120239776881425434727137939915993987480773713183686622901422686147719944285169776126587221057395695774491097314101962923247974211187902802788648178259214528738427679387055675008506678282360106254557834682850901272763610053625867454844327570301317777851094104174811269222744530132909577685279807162665144990162957001915256621137879978041085461002732285832053740356505142093766426966253505232864133443431890646034092030181225124048501351364066679075953990613700620268025651186811689352737606786611316429398334636735552447541314467411484443058987382712923038166469010238120019345562226466153638610748707898492413891774271462955169774761491130597148221466821471555136666374846828969815889844939773514772441627443126514664981398077234416112383867462798230841520045279587847204833723044302477808472955700936239006876791660402693834450444662007411385166589170628433155655122230037934293562905340230579649564105592490999053281084296853429859259173023551930079415471380020502237366330740676813609946047877951657944821079514189904681676800548016360855145726660975727428990228193165387790974662855554305968863306760714691251561083982827578865519941949172789641454207879722740515011998803205400194787403690663005079007955261349122985633269584654824660735421961997533478618609056797849891527758756291931520021783096901097870227794480402220263546309819736858105579133165582313836723649657673624409268009288613381216592110298000571875259366765502057652796293799880279946238807234446120823426980360906552433564444680678670028966447350744736048234485098376322147416450716213557040463508357734876787759959188541680204469282734350435963957490803658169602449881378666259177297201006726843926906742802709323058964573959628368071096078969154136818144514854614660637264467578893171733180397012370244321856247899589311016585624418724885546404850183350269338115131901461698824715713891740220731746541568842443517345524775618916059201658978872762024781757797888903285751025306487074224559745315352689004372954836018653506294451011094104442346474479958861527225406246067620987266498250691872427827119600650245324412115957120054942718387705756916989552795163625801138861356605873615333510866719553957829540126934247627696858913512679955631636405651668160724103585005770586583606729691469135890633298451079253894248386753667064273343515810682955041043913495865067366366835038089313233423429008573538647977694633022105098362435816689809848280891412008086431746315912519806065004605003868649983460314617482976330504761592004212264744627477834835817235833296580198782133895959183108161170066492461251390317812697650565474311468315333834601457482327004118077975885629305994498127025400391255131704040166297201615502513846339220363967823265216179731125758865297986307388921898208888532485509569370678541902024126108452223413785748284055162251970366783273064619862010540428705195965653257786866413985045209201229985488035777931821960281541088435818535188524818201481353373922692436220773565463873619839872135181093464793456467682889342323204951383423775217385466259187063955606586379821776927454005234727159035140457500520869716834969495909946602233007302203189690999131535029095061078874764771349860912974565136841893016804939725093800184683864229152393977786081884452397575451930575472302501154185428676208540883229919040548888485063509526438583656777770394534751443870962159292912535961023417738483524329592247414767269625048104126537255682947059155686796832381183158356378027019005209984978367992381652620949608034454211505118990670085676148116775738398397276744759594867422200933735124886018619030351669442155785283469323471568226252256322059494694218921563688954393940893353117315622968178946881455600503246322163549693761176107145586759627548195037401743890480399225208208355105115329601326479613061236758786264745127377409530324807949469783958567491350390380246759640375316961044236808320544427912089656921913256533139785514180259458916375335004551545403303355176118472099375678165899411882496424186914562551324597238646513387829306119785556060724740600751603528861386079713803203990143108740419884126443230381507995492495216355336236053199929118532752943285215364194789885438736262646578956753769159663770139285104715227770744682095444097083901962264605580211428615882862507635469540966874661616059448162291415513776284002317395070490815695110819135636008326898864015174677868125360327920004992886206680498318468988431678447233093904812712345258653250325264434314334870894204667819170819731612004168359360702469483087483154036969290406129931271959653339665918948608487718996432968005116902324255271015686794694599842545644067879697941125585772958701203300423053280474531252177354354472925487471360829581428178229736114116023785487671990441367990499142316500452891192498480736325044363503492789783071376827932222976344699107541801186325882886005053867565842619881004564995323961847041269793385258173192270676726253513120253121200053190369718637618677954775510198041035247143316043289131881620049627028636959609137525818201191817434828645551564177917109651327738197725475693246150654405967317875407114600116865352453240297468694591097655110201209238788875804474963376547986217909228523163261300481403876583944415122829081281204389447345917936626412336701636611794605422883406886402506397581804271083733858592586400125549485415187168636648210242583640327038403715443082309922046118110927214136530331744261269632242879950500837063294064214590148146712391247980036362465301649136858968502124580126068761625273022806749202339947032294134692962447586031164903402313386431511511522678222267867779553750691124206248061042902759228531900438851159080259899629822563271818197465940903690792787282211381901348762048100322602483465415289726309437639581663403188988673824236877420046888664455108726661037580558772029454204741216969926329695871427308611478829366829968455063192933901241250870995298648281857221057064050290981741756808776353574394912946360460125278290010621885613548859603987232720811710845688773808002562677198192255895149151615054122708406199475663844840685431306005855864008019912172749431541248912050282692371494706501343621189491896681929544974491542461563872086969971121813614420616319470126429409633932185222350481185001421613807538840145456813479140212286990192528466002982439335928706985334914528665260378979402656521628457660316021671315519019273725804859515032700142547827711680844598638213589185080813567717886155054938817835788546804865349208764249964384644393436915725625492364309059703175540722601080260515984843294378224981091218134959307069489874458018797027408725796057222822033093656663933015739356382188316715571891760907101927742358142139425612442176394106209376999503152638047395286303700264096062706982573089902650613566555094588030692718313927013204548363178218621802452968748753091545586434141513918680531030325939558206513220942000781761448146071965331838827050170444850594772520671390043347146588182756300761046323112549151432176697808238279415871648914367521531810081062517198511598557169645039588635136716271812124257142349363621144805662807425588929461854670194651897415852694534411834627897527595572797393108147166972074469426202742738602316469050182304286678779036745414674641645006447081812954752335829472261315070156542477377468354871948336957923291736606917089555388598070617434781329177562777362946816938489589350491490815844964271770485227676763096357104465314690994331529321810480220886937511421916977189875994828726738742940499145219728619027612991328909202660933832495007491533346940901036452762794532585701731156037798760019725370143242442608427981900317851080872744034112255643390304550480509883707723420165560309223604967454788963513137886823129551143197054989511600911199084654937345449870358215676231464284855616233236905940410503304678536184764208874198119249056450994379501266912408019678600151594384686508772899349437063777460759695803946822606633995330836536736136466066381823994934271263828811227582665863020256425148746005165406412523884276509282446326325124426960834053177322747762019339067087808586025723964019797817383738410634758219086288026163142664698246855769554826019596205503036444800728709940600532862389809868290897212027895917703154424461933516549684549154005651539663626637732929723608926632078362093999669770596367978585272386893298815878125097543705703606402868828027433742834937208572928308844473235964105776191039441414585489770847206972666276982070212575087861969775546342272415568903466579669466591036586595380290811768014905004246769032711446358331628259824490473999057302309358467784439623326844059163038016227556225273271705531297731822264159229735576027563326372203613888777998180301146373544267555521678193772065387037537876509379500280532661218115873780213509000587360594923156993956402651540416074578269255026330094720882722867620667953247775300035186601821765200675272993603248323101501378497027709359082278757343365957510814381637883292078482856081058651891903634836103881378954893370539976272687187879775458296783468141281978701727897625160498674134459788800381982604975527041079147402359841770898154337237707850108517081898357922318667837622048762208391310018247200904542810984591568221462105985496049470700194705853636871812347142535665083238940937796042588369044914778573827568265091563442139800225636276333285165081407076620850434151918939729243055962608589996438118858742125132859279526822132586142978188133427097579998857269805648042354728256458573267031240010177673627228731245378176545180463082996339950408650102270141679428127307709562435108409161552506358119253843202186351547107052248423192409243669421414710976825145020664408853510154455281261352155739346645999175105404691673308592575936349372906845188749513292667149136298989408878381241193363415285339872044344709823054927588088349702618449232972714323397530942117853588151330201137761949938804208762982060858123684845695835532759545469025559096448280971290612746385959811931504516669796154217936612098551519927717144642629548095253697485041439245215150713095131864735538293558678089129937360941466712039763732172208758545422517808005739768483264344530886393746869499736906885642118823554975002635324964956470172807110686707542992716024463878627673616874732684610954261974594856709617214676919953642116286222243783640723139999117179030660065424668627306579957142226878148790668433049906131625961957671907995817507556075230887908238506288280521352746256255204443430308960462179206790692874625944716089696275106820072608892364113338935343373721836949743279181656934697929369925670327165250928402246320370426933403594809812592004904976415994909376812775895102487264618697596676336094202059702586528999040942780848323048733199045348533967784217343981418823431527536118220485120909841753478253766766184812844023025963523440293967465695763383197639838724469389123182439922240487099279471080566017646620458495029234144356057809853789069988187749900413801927037066138475860487816530570554610542598052965860930122394102473565128116955501717489685663270096074768168657163906433237101283507250277750907031985707326384380706018325542960531191302930641541089997171822029507247077866158754242824993826331584046094367000667939767717190227157910498429931134483403045195409647157644206803673662176977491787798011187977956128339210112332862446506417952562455115056319207641372422762675630717525477768573943741001878370425644317771825475480111883875732613450625812267349427652546101732956631723184110001905948848362251963218798325106922534356407251596508065144545413545813651492281714821868940668041570279415228031298466201925354322832595849989048820810803386803425202207033395147592807108794229301070691325609629976336259274221356911336003308922996842416895102735639014956037323335402458082895175179391607459503316319916553232177539621826026552958195458025477354540253126856401894185094142248984817103549377470197944881526175887872805407052454111955701155605260815135584580828178879796673959292107327412821810828802400444433895821694395695125312232789768954715606997391887088564832272610162655685332601082501562641202773460203817509842514483733197728280257944290991526026932262177329543359527424881202038572367024751085412924937215557310979503806082606106557174135382578714602491373310497622833942414855468089275587854871933861714928870990641158163294319486959044696330768377536268589223509778700441221804326384907776736446207006081068183258502706991544481074640785494032561464339135365100965899244268082741333201496006987777581230740315244377390442799858299745277477361904050689648168881066374736289903041903492322223902118094018498875766997738945271638774725636797976770299238997723964808648938913247264548692589787422423772625083911136907541475175880769815052266992946510240046948486895029272752196523773710088809692563902640833090299869764190417779512860188650457907768954116206744056489565962869427252662552381335260811003800612394166516164405194435623267632453060612965734598775644679567384623918645845240142618083575850569523710159372947247606518959656561939021520344134680124639763216584396474402453560062693726388593419930997439286253583475654903307690386217349001004632861836961167071086632981805283927984580076823653329411997084424377242911686955872125888394626612898992220878528690833935622097447364672500028859079607566432045141981782506997941257392503224143616070844491034727531182453025151977675809509468266892241805163348260340575197952541095560145378661773388344359567842542657849714690000802292211419750724106553171447972665368729190202579101527418017880960133295872426285529122418498912090189098920835181065592612635474914946606647164300003255612294567384639186703101811168160322232243478425232330318358186877134502255861451087501436463092542823140514123145226855869916017372386934388302298152428345601135847542542173979130137678366919588157635677590130259246144810145631042188217872484926951097494658703917760012124320878622061939356893757036420258555629680207174487201343072992003638538188700724283937787303586492072070254210539002173048479920105591590136184332606749341008410159130764258084049904566629367295117206430250267359022923868205757568389141694236667665630159403886150042547963897049776571688131326614104930664087941409998208041942882608464298231218628503421783429830959995457106127093944272795504613634620751218759696727616659153716633321750211237772309519890111675887905978486433000952214527834001042601485803644102529972196549217937140015982037131169528945189217102361487304292652528208249474592423989829110846141846430137330016137974108654098598155333901916875852054341700484791784365204198523313378265987452769564885582923342825401892529265314944826163074432503890895644889041344875176393855570804154107557003612633017774906796298844754006939861841737182267740147899769576003857036683426389376887356489098269123676734923064736813059191229146188940357488736584530034327343296422925456879067354445414410236065437476861890684251735734382148539525144112585030850972772298147270807472221536276314542234376472314584004227312994579390110576172006253210541870627799207136133902470977755089700807329929416283950056441396239407662247477388833524660166824974165646748395972934080925152964680366210579612308342850031795726422367885747633034546231718897425340941513024820178375075349762974185844385867985119620194100855699616045558583442773359434993713158874886102600702520769316869272557588308717272131575626856919447702063447454202703233871043878219521548384031956811885343142689594015428758945416069884744237618736726002950355575215757338976255469001471082623412485345784979508373013868941526048306478182627148549787507914799720947172487886212102366865652832601726437602725477554300413151449129674603784064343164690327586171301617868001545885571554260446892057683325840044091985012914080791284114873257710032365722540424860581833453285084116248593806859295753639457851510357592782057814904270184132423693007280339430523808830864988496783167987323808515817094886182978020765780629153782474952367079386331823019009200070833066972723849307474364837516011333314281769172482732623599938256020491156624652091019897051423684659968414768452941555941394401651340395752583676040147436539391098965721390703223742818679775118412492885052405087021970853121627565114017445145637149058319811710907523160064693920299365062067674642681806992823577109489779097862980252714978024215836479185360794127452602535871691357197273544385835626289664558030130730256326008640305912649672219230911301019584328737129943426356756451443348372101151739843027307129642935461855113816697987253811145903127851266403068298747914483090745697501679480107165430164464299816796594942530472310025230242011523055477613564910338675579625928419479639051051992763939025987200877841733439051940671807418008535250622328090437097117373142281530479676175934237812899059007748771047720503003980394261586540518007654859412557792301256643927212400491468511095291823046342825481829986466167841692879190023963200131209581801680832762589637304124402746903290349842410333174844600965937745484206903970384190865164010765194353305322311107151424913835314896302306826039023556279382760193926350171021204295986148987170558477780273679993016807941209272186602523951344247128181463490691926610077672607527860781703033151924252319678646163411015040784939754848386581258099842044562420563606162165869969625942411773708677702616146074066457302884841726465502595890891239978757663001574193796649875983727950467738393728810704769250705713730666182010933207138966957730421850172440199604550433819929015638722577035381654270166561678541821357718457501960866362637097220491134901080346431039402284920731746674600988371803844315194117887410135225056940041805734763272168457509437065627122577943251231155885335811190718439708046479446657692646664989178791950976429192360014814262602629658261529329921521934979212267839487055638904875385370602321212058944054680761664179040847200237368521119935873362109963483164526027487572624084793310064525340448976869736130718932330742209231319492378894118913447591096630158105005455982182294570284705149885702537951879551814553162094993332959838262085410226169926440034567475494365616425324529886081590778086535734950931610085711124608438677994143067272382263513387302182603541522080328828996034367792844464471782301493659653561323567181702223841678377014724334304405304541054542678367345388538055933073971905359733826185826255037748711968766627884016220544068471618064603768376854664340469922442791782613736446493751235816364935335635008946001040803026877079523835201691234605706641252727052284254637183101777529624680109099846117625352753910672429689656782309946038327011482613133935810927110961966116584414313191825966910604559554449241688246094477891042020104940472096401782071306655167222751294961389342592135116839537695486353962447799296240236104718279228610636207967798152060290289278641918716879149223401178198250610211107805822783094615340511085271933723316461824509327821991343749312466605421525193296696804568864504749996112486048365948919437292571402702375576325587397430668440537589635902296661097359070533566477384715529216952924233693795516959786924917119585218843328710153686751920526743515571785439163550611971031760014976172417151340237849830687020115131149287155265906873887624819841806545873340911202755035712417615405116798758891870193621022313651433057375939836063168027335385870951683424771715108473571944268358518417800550942514981053235669012022460964061030349318571640991741168515322835676665706497898159314536614244127394104698323150231767126261177709467960731272877373726221375231975856754670117580199744998773356538537226170207551407262463274733228930069318636321266259764162614286557380549526695082203339479117214090240738877519268439098855333348036504497514894599865436366839647173824593426119364477644418383971592749459173930727473715936858522818959759118587809868974818385530009608659539509742690117455192232628590080242365563230320193227944508781525272237397962675287206781999881176094281195696369899938232662307711455671135977880333242150452333684618168660903250793525201305802196314141243412359422161548685437468262565696926298345992402903627573517230549598019449385711473993002855525253667043303365206053918794935460353265827409276833718522740225653866151077972846860647387312679924587465288254358454644605278762742310560949711686809062614023561956043603558389846763370155844104894060242759962319051302033184238099781499304005252767935949107282951717104551800827798114221749292875691938005017870625896221224199579077207110152106745470724862084588366912637513085075585525197159450589574350216805416885368280397907112583056330991641815710535985487365762067210320006709947337343858170513422327022318801935773411375696827407593459680824982834946134147040392428907863523710635990276510750118343387895595111957648937666847575453510164190507019042381472944934400356406574078635211365437742503644828179845742582907235551177429056293025170676964161852780219129480730131496788970438419038531153344079979047688054877761306071576700475458398350560386455085569018342261869663954749863263637485113615750687757766067029894971436977297170249762364845468441261980339873170107267293207222522086427720217092344429951375060350256073525226362732947645406640035675534409374825694027497532776637007716162499560631380846325197451125733042231436991935411213442688086800590030825369946177570237729126961234200294363213322893697904717812104751436371482272842798437231555475540974254520479946419800770839800552869616731137600502476578875303415707758475901937583763926966390672759006647095429312221964137162162030208647046435678547349594836158547107219554374784119401029528027617282019968197023382993475108195339692804418999703892991941304780495660116225082660974571108756861326485034263238727057792133393967734129923656509013501933439537424554529962617067771961455304186394215330850000263015043814527184817161050464312647081967578638546020664732644049403458693330368050332231590586155770140699873456841730905601998361293793544615578629413447468885493161654387640034183930490475796522881276973728345816036646327101609067676534449954908569434840509614540823749299035976036266720374344262730522047185125343778133788287131414532783192651234064323851709645926799800311530819337392146378467938722269410941318392812609574086272476348168552949604161278704992577572856518669274466211768773249333463696506660468042192634765785190953401312871426904808847254345985686634695748429095293687124649519029817289195696735038550722662077241865608361668280583261422688451647017488008799531468390141635628683448247557810475677303845864932126573384587370784465886072187565313591087070036197494909417011284204424967922012388184887110585378801460808830664541700380580213196098773597105078540153322546321114386956492798683408541978745620340696492603104677646945957285156301815880411797496435329851087358348504223732708407262499318827716920410517995708801012471434234668080356477015477580503410287460099368132891398114794886078849186370596100893791094714053249475037141503545701492202922225926190246610658551835346693077539196352478249289871442281303320631256459389922509521896429091158978197054738818935488912035060650058949879176023897315486448622217172025056121586238316995324823508125855331532814853716718017436744684358174003500839463846503969251271726950933342066524765512691237633741635942182888234296691760959798554424080366990219993229217349734810566068401040112907313848921078902511938393863077806412757811794342491560280867536464657380751270591555646428248651603093845176832889755291561848074346009104648601061317786287162671145316185331171602985076443320826589603389020772610826232895275260796398615022084086055464457895599491447691379419765506982548795597766545450909471324771379263435434252613096909659475078032017061008036382781966601652189708625098984712454667642465861673249960306431547384839259561372247249527848529127179774812717944083237177148900093121403507805557764497682795894893434242767686211113394770258233532412963804503806938063522566035600477723176816048207470417954674166159998483266462323145035402840372779606447571147181708657132501481956856177940677915365779458159250324342077514595124175979038697608692591392738273549958575304255073199806647473252789267570903224856022879375825200040237081647171336829769724619732685559836257026139260298901785053564780342831689956698308018064009591567275882487852911887196118996069488692974137286808685753751585316023682167633672408119356582008331947877797051739025697571342541546619830255610464263210399126760632800029217900792852707493481244977747549796181307490779699923494266995866464688635472130340208895279461778752272143434650213325196426456967158046192312071915408112282814147075070289197887725775283795024576753436546590460475741080614418823882549537819920797093488644468788995471616572784179126711091707702749274082837097481102833006697472212612650340267337567778060909953585040548458047888461561341199859484509763707331013840244020692172120825814884588140938931152896915992298366419364071185034465015993086449212990843374830060294765813445053692277329621604528124271265570198542427917864094336821359788875623537269022043971433269415132658188620206770298306908689029822807422300507583743050930709223176427403620571695492910328132339540357158132129278480821028242272039547813379171877107512968025807195695966811435318491649650024742155496330879944795715065709378053832850760724336548556185937414560711824140039009240378397179099602911185927405267376152525217406810298511478161283947635346007339410689455438984174399971036961199353131119797975586112089012926286255675542278556234621334396687961453837475799484794405909309150249834637356182758274556434311965956138514816342950672699022903621824732096835908346147195473326095772744770154120759161793784432360300174124839592785712702354855728103046214513127571401668658421252060096032943746787663665381366951429268833707302364100404588143432307984837199224800980293367669062679114136017052542131409343515706342858641966724776077701483498665271632155036453231210889815060381568746498549124625477268449741140669932448156079472438689440435014472831639639379067665156085372418064548472636414992738097447600744167131352952947165881683748209067884752756236683976640527632632225125249655664016504326437679545602362921946881333234886524414186379478434154952039086628304444294567007027377537959201870915720439735437111836384443229528066772882929763544405136117595497424336737120047220530875966979603835269874535859453540946975962620231638431410786178572485799038240970123214345198660126104916712024824047890369916140311343711231344368539188488887313519828328505441037195931621516472143603072343077720455544048230563539490278025725831231733508030541405414349149120929010235889443749521015485594824447337081866614888361185570261510171195211348451107238060191603016652752904627573950895267095743099892364656371071089090319244780983189013400710671149299109721480094461912914689818873603576597753699237493897570418174935651373488880675986664898671769970344110840977715823012770018372509245303196451967222557602407009756909382599737867041394541276208479107438401816720759325529325529952350239555945056044395926398915576253927486231416035243442736213562463227075916016772354821552807333032334339781142543269628674081396657197289995130274136049672963872300304116898477885478999014803974153681989079742477206418762031879090167437601748470024970759272090697830898381851831071304181291322734732931772508380397214401893083027706134919915440287445141419318334898100954653726403476103327811242592676205529618733433886768504209697858679345637344851979459489941023741776646022468401221447314723119850439445089173644932113490126509888175136488560680838035835537446203971400715628872248757043870040325353849611730464410659303577200420520783674706206618854871925617112879558089755495279422264801437499254411290720698464668495869670726715068689628408109354906205696588705241147863192709795916777913733125574739838011640499181966422800951390467426505549238132307602772658217191844884952465016487478247317858737659242893534741594455125691163586000402898034122925704654595237704284503478836468985020904154830156569997358251360315595394887184733779076038528343348282212278283547293182277745187351534755840443051650782739700887449070710389889156553399143859572875675701348338509808538223886234261646145627243315536894612591314969262170367010976863962342830482008326116386160437177194210930257598392376529147034185677870907066407523457681065400991468418148239943058073950483884625886167330943190862656032388065964121312105565082744076891402591724874226461023445499071361466304072524387887180997571121046468640514519180770939620575851167108018033219112129778178015691446805060356566996089394658908864526473598857618830521560379537598914718385440828027966711846033429375941020036130085084682532321457669010930580115317839542624805727813383060149921443543824407077431197934488784939300073709396207812518128498067006375694398406604304628419891736311489724935769394402725717765116871723388467377352913677891957097536504228996318224016576367099207773503410350933342562648298237473246536395998458868433821976711277199601964218855820336772310073921225453499404107658665300741720223455551068369172375900936231170520380999102458501088870919036148926541806500935659019672529937673517896236673356296862667839619666892014647277614498818181845074927252525080725730370191418405797244436245097412143019020382118486178318095267837523989369853262245331042730133472513396961964465571673417003884718609444290540929908252952320648656607028615647775035748610098618896622436451559362856721509878641432138087966426377553072311055891377136812002664156419612793619003277982275242529302649223399456668204894880481080422660348251807325521216981682186728991602489458102996980655048979356476498830943029962124528128219214582729167186532536750607189859805781440061535607154872680110019477521144314208384280769996296924876387408738059548699035483487320265368459771709200002093103756668243716996566972617327250086549139953611098014118298949749602545677299080191284493462216059612938670619527051635083914435964381857930474468619550207072306589532295162397120333422925311874870156933232759959472304701994894648323036092798472348535809630414182113035849395442116818022409021876917896031813570198316166218821424950527182022942353962337633562551288223532568319990431886183593839424613166790180684320440488995715984236450865881017448525253252260137313790823218154303996306983243947865904180079285842932582862495565187332346649890079485533603058542126686447750423000580136167793032410744239757983190592823828530953947515975913936059316269362148832825973789829595048677023783017014436739622672213004273204912857195624670567091627946502596450851196954009811898379492837745713659663856696398294604442407599788380936293537950935025075472646790787519426329194729219052258019773184306812963924396772617759356004418118283986013578305033050239946476652878411063927983332874981432466059598712730298130391854430031147070488137773792452622733683124148736418065679396507278400375353097615730095279371326788383098313208840028223088647517995256515305455261058392990675748005268817849561472654380795484606592554817814652148742506866928989170159323021646285581004667645853515016687607723175547188453117239365077880089843171999364065181898028349364975056114560779165610595293752801040458067642961720439991035916643201683524609176066349835150226955324334503371094231656858579458002862647832291344187409800783248280867494970357675710273267180172479873762483811772919304270336381654395220114194736280141825007014342702321296316332487885526373099126685150341811518956038447623361809709659917602427380811231879092205802050927593660719257010870130504813398848457269610753644987703734356990301369915264682315563973802784087505283463571671374353412480431902084608602774031078933748196662926613445648753406185120827360884248432415747953123247446241311576947335095936217673845837873198495492528090639083550488555515238950073127007919212910212948993793504841780036417199614302418341076786362529902633944276053955749960726195337443954256901885240775345210851100872304977598326385837834534957577590970641829630949591420530836836112578774618689582930341607843024960855335503493828295927137121503663141300922475189760145334002592984289966984104319557789545515553437953956923318814996277762890070249701142936026842404491256638929739799347147132282418341301464840134987672412576692235815202789035375523692904920697415680740735809068452568028710219599339788319716783101530810467471439349769602112118268568976366377140672209756355979258430416562017098184254418652014255791047171638731583165137723707755734459762887228442597914249681072485626233999795611993437278084066667966358194769191034102129165904910629294529113751902947392726202031882183651904002794555180043628858098531190393181210267606625758349527582252850754251118994539622386042611068956014917953849132520957281142872994779180031227520667216705230252853856092265165115372461991473133975359294177754742549008015144621497730571306258633525992692664492340935036068144340689740964044457252286230892802027235338033078075807141378960195290371651151751815668043003279372670563086111072049319905567405013721770854246437505891363963126537386826434468698158304432567725292125903646974836546603815718557835305980368325590751089514940939678180843189906582245044819713588642773403273986380629382225192234038537132558938018836795763496788220157370252406605727446658598276884221284675403203160265867467792705356531699168856949109538844437970531268930948465817393504495714585258553328961689108366501998921364321775401936425323765931459231909685469494828136082123583646867647875574012009566835974851793825119649273812227491291567190089750118304102845665486833339137841447549630433736972409932871115520218778960481305125634637267761950870121419339038412552536778954730858871755927753688810835272660786959092835570210493370795821806090427088630533862865039369372802326363521917608402435867590750713830166302724906518428190749341807498753611318306687124154858977999704188379452887376927260832237723234454554398548119452102164005309690413227434018005601004399445979960967466495415550227481081841252134783997275986436054859695403366362323796425418584817209146085540937312263082177839603049764549754465602307116709750304957095415335708271978489772376701335044308518314759719531669863442675825534013137554328426053393377964790619107486739863163544752986783381357277543529908143010129091794024206759500231636961119822658105162137147557807846107360053780366748970213229610716226610701149244210313448917188530171049592306105170985454952305402670546669140989632837821024935209960964971180644459816512527972695636183095541516469370231015299168440490344863229300837443783743036088290100159823326653411597280585625690531738543097396981059142294355539031479266699407655919461059338856481429002382863116831472595803750155323154821630558004477604364221984917528292439949347683522213012258080624298114801125802499944979691098995407900779476288836909322166995112414498770778023412555870521707042395709822472004851496646376849137838394359251597498082343320716334131808744573896291624942233170021871888944512703952413185195105863451081630790606391180704612077376371031406474406151150670342388896896470090598994066388029870471269497756558933155908922305230155170099212530355830102065260720120055829312579765900884366470469036076928631250230195640109654759045193766518863798811481183564818013448257737110713032321843894705138958895653711889671515670868114919195154591161330416346366007244041659529367956348719820602289846490764060604977272723320965946715280637169560706132081973366226171340849011297595875582996612405697745625629952070732107459423414660849003954150240002970001474436638170110381446585581091875899162736507053898560261884710778533743571882222437784022876936603837798419406391307463283668478206096261145299073107273204985944442259367714829551184472380909572561415464379868318777455174851688288605317409390628621592161406062818553263652424817846376420302119285762977355011853771287739138320987346811306760479457407890934100965571982073068080244285914877348111366731445404097874739378618417888970077308858042257146304633248255304380494674154828382328583292526329213429657698142015013924393444051071905208327462541588689193733528416842287278966703771933484554150863924958969116653791336043820361933056483039348448701995966414184684858879332784795353823053670385140620325173217030457550591276615213640932063347465803071470331756850840310131530808883559508858648307917617915817130845584724025910063324389303833052856063552733534387832318735519829348965136143825812072074731997092656579714725265491257679959940110624821510001551067848565261394134131310860774041686738153737334106293074769439812193417308184405072483682041216725142001052901140419028547694735448793331328651256335175116157630069327610903511284428043169349797536336864783356795668865468391350883855545954861737174796116917966226997454874420555958844372871982970768241083632467031521379709513170266598858888879576873647206439331312503286481854000729657133007285140640476396179224590803596265506880514321230089330186454433220111353439609006643285728027810188574821007606484076817824375632388306182756081504416655944022603368109791127480025277197838097220697680727242062093077078394373874698356831348078084038584059623546717140794476097363122464603749237468419574364488147341229276120624158817527043939134184188661934717172587446477837727015098892645987447923778122201555590500863172831312127517814989609505942146185645782265295590818955900605226114096822343450401475515743738617891596720735527531743222924802679336111678736829664733878176652785566926146130202852784413842300010979742889156916063571255320545947576970013851845546550918623331108976190884848518510059347623356179359932789277938831475928590852835445072069670053836962033333914216879989107075451249473392127682114004366685346743838468799822141373056037799735977017543540071701068150379832820460549965703437943740787090159042670945259293427930635033531177503535101578440795864024161690942587409940951886666968399564542403384465634093540782810518015296710201540138587167764950471860692226397542905254923001904798703002928044451680846916712127334640433903416224976031857000917692533748192952383872066085532841142476229808924107446763323042615044507733227448822328348622735575448966862216901321236347550065914451283739682656452277615548980721462193542217302835821792476992943113024525955423709460736067705681347381036605491648359731948985938051178028056273300683485721730879600286451182310739854613342031597703528104012113448728107346004499804080287608112800315645962000973936101945722493541549909225740324341504655002747001389787064211507227589546490257986337786413113029186351120023670527159981427228646236112724041014970897357586004179257807679710951050268021353618363315977768180949679006502633163919104609703041266523062278016061627627525727290337711882239312312596162184294281919912089639478091620799963502740608708199235091401814326696218212264712558614397048309473578307205498527893998072236482768870984981072385971112805366873513504731854864011408812072731177017475213523813860002387551188885336537160092340959799166924446249341992103478471308800489801263543674089784377314181753610511060112849556207460006999559442524355717617689827061567460781247037970730492742267027948125522965026672260720442216025069993284276177927672174462990017112918016211445096328567571379645779149208171028447207218446603346529441870929022944970353885816081286428887959917030832682609190370924710662824012770347967799153552077001044527571633611242959714995895544013157781144444328136361693824553335123398299696493950243873775472992138222330633365554292010104080857062831366631489235833284446579613644126141700429209304774802504890675818685132373937428462775904162572531530501510977570400581915060040969574092095146532834720137545927538661878058076035272456634102610529491878902636307822548048569064622757428659474163124299237629637677076593489449887765849239698038016983971982802531315294854112623483129060214473196587712654741015861308682878028979024751344821610568246680120959122297930772643476293754101789889783793594206921557972537788537286440351347704148107032621444571339733573756716782082256049608854416498883408020181867506956120273188311243526441566731799488581693019715506905187234895818276890313175999424047972612863701936802642176719722614064572675708336794346671672270004720966458028270950590304906839587691407791330548330943107177436498673348212215042601256593015012080792777721462752860383497470874928409958881303581084177516407352650250917719000890938576530345729036489752406394393910262590146600430704404237778084361724826457258362907602912685596269569789154327209028188894820104111897512619606680149569547674180196723031818553235680246591977478108872126768359637902134698725606715117510896725020143863618573984070629373644087337941775577100788138475184428098937149452931875568237607452650984759666386009777723019879836062741604529121473063506912434982440768669232781407795435907563901673983209134630828772248043063406690840816936800720897787192379108035998617309498326022946642804272827804929591549223057138196929741277023196785095615888118547938115556846158949767755818478505897188534213461596127279560192326956843608506991448239023777635441736206492070716806842459241483405006444229835618511019566144672970040023881907446589774768353682903144112449733539507149772617578583173391777171822049394854286794737270797849756542978449077020442541799037338592231358617749060298786656769440652045106818272803867830511513409359523662559171861022374504956362898781791468612028002137057764343202109273572693304905808901828943395138997409979121029153277977081583503897993984299963414123816116331335990442725374765421644253360087202794593391970327301409280170798509298446814042200586643691901211593680009082140424989878392298556432286707858152875404827498413439326369274751682970953229967882328398082325062680708348120484675262500502155404058876541431504985374511411187691171436796968513297370798916197888122655831028424237345484324638551212122474055079739819156906671254141140807898618881242277917556626247771656883016487066262914655913435487393676168101545209551816892508406589047703752119997251106130084195584913132795756529256149379211300330905476790736775080131664709960939534266556445852581067254002804217750162363420892408975570518137584817050123204660906413914810684953734469268095584452034060383530854199198534177334891214192826357524086426833852689612357995204042661425192362182239875944740644591697782097840630642703978450205159219564264778274049154283148124773101220989385450625340951487080078278050389554775851303936135994603143799557900335569542104375591781598700194928331004079120674882256048316499598206781446000860509684388652596015626896175814913689300120820474217666683703623373594783050711840143027925615916534003225037905791717884269878282071494308140437486371175913387682604488818619390074421709139783913718999803025209288067238945107174177099350879906507578355899996614258133441811749934668846444655674304787800798625926815102057050291568018980258197073250737978150307857711913706492472633467271128425701853721171397001460508812396668481081937321432767815696591451155146521454389135695087012438871433252875357328230636720981749005204608949081456735205911114996877498574994556586708488925503515638183758966975292160092287840477671823794562749531269221754487147317024429119227438603484455415659116063352973291710226481175005873097826786404666283742381427566991721787493311384304473665236356340924510718482847939511257448803242411252594074574456878615803495689492456117521536389907783245268285109231585238104749346888588371952146861099046338129839176445763952529962000182258272145281234993678935758123661853260530032387007881444735340760797925004992966875637393134651744842027125640754893165026942241782866340387401910804446038576577205064542233984316041259863559619331764063849165877225253478111130235176069484025724129032017896370897367198909617469298584072743125291172741674182249670939808104019637332187402531629135600218854492058436628815214459184786790565756288027318378430664491949656867853005469412983769408182633672844387396217202068737382855531836586882532223151351121632821639462845528127028403159037629767065750785243109721787595879965309607531479558759514009885183419233283783896732340103800045553476410895589872969997092519390329709679830478979704074396447108967153201602381265282346407209904857303062342163593700440734621654280378924483431863403724686918446036806018198092311963776401075413995881603771989822374036788439425478432773994464145606603273172963448890469575933377116112638852321686738269700663795244170820099083523093866829503837629832198903920835612678080715924233116648525579435675389425094323887599011472578013712170077585752094109551500301299831224818208108307401915990268213237323597004773806934693582754620313207667647692276183278372097820737859285541630817148938790238157817319927682575972097545322641619726085822441765170622423725275284185064540350980929906924481725203778732337017013547576441316827887147496851714096701559722280103249063660244394556946329579095112372435859570285439401592205709121279855460497703406110859791786452665052371362655124509155608684428714338379775465435189355412931387400686872628411369199594472363557675278055506261520417642374250163685451525006439931448536377925892733462083388636722014237324556604999624336243086223970887102426887361374447637781399388186452982190043659573488932775317523472199077561413249560553205420668759876594764164107765607796954040307825214107349961667664046603454293792497726493464251333666580791976007398956590454103217678575226918599640000045279896595804022562677019709258116036555975665599389456718043157357501597316667939808609823951559842516666181751965657751733996686749109318826387300579644160706872796075109542673592945234818931574010748257500054950090162222273619968822812962904584673033308258044116952695841849294913775063166745892747531273148467778626086554449385723241965718780909458791005294204885312447463381277834604752512836145936330838297714999244540670614083854107856826625830479314251803021796143503143157723612780581409785702279870864451181763643962137507563727200484050757377570735152346004786142445625766804162550291218409521701599375884974783442936273773146665663817096027054714132631876940745848432997726856448484564531180668230118891410439839580634424114469993540978192086197717839726817399593005569707369685244413226671512580092035866747879732395821166788496104048343818124086839799900897002796045527153401584534520391969156053914327196605170276683777851530990021692567482910079301205251600029014474769399177926662025067788523214178933841469050388664284151666972517676784544740374171132840530178420253392130271817234061435510776634405923583274594249647112279094815673476742349886642834329794519788968060285060226221808455732550662543618525137450959336807744517504884348621381973258549175785436256415577558377398194527672315900515318576608221563238598798188248344660572391897945716423953771259205077623458520827797331563446859744875575907429000062275550601883471722033201795935280719772382629710281067173301310303952998356108613022804335478838323364261320275951331036942792155017397212468681841735267991873912417967415375739634871435666126804714004925409948369195619357251358626197344292899149340551523527467186300831397259258805355355831883078235061158501993908956908297222035327037853468750495790998136763225758951953816875645734005586450756924488677679097057534576624196897206546749916788147309226863120293834790593551432453176701423701794823988174024598428489120340881457698933469732081561955312964481176548059091051881308625879351699102306066124873897657524135466927605768979206147207787877595813351330349816377509657016537521833133744591899337862709414796909508207058464878874912548824445915154898195411051097214705721813546456794855106452732909070575520022129989171083861581241403363263029601569185789086838551308218062074374959719942598261112809341444736262271925313358880437318380657134409582082079719921677079545355375033001396655171870372752088566194654110750261234236790552011495012054822365994260064793502194351890253322213968219568594456529487704901825998926655668198450123745406360362470794187505178910425281640791170631627012601167040866975810824951097010764908241251205217014936075387036719880017000361467902056854535845082477163747580348014577710286802934508365647543010486835192894407255224396984271785270238262270009544726194139612803713157437049161333434225346618081247188513267720438814882012314541805076834795929921622372166676718444161239785614300558183717296840121344031525158478967022449539256325695950701042433954866105518131001619968512006954131102203566771185442965469825350960657576465017693766962182600540142462807952677232275254012165345413296521430808326831063609810885415821242449576392423591578772837378921639576710033382839262630962614681141529537424037195125380342699029253616282982403133133966263394182904957706423552647633876663205676032314717695401882085460800655898945078339099283196734558933228017994899845218977528759959085314853069264068832722834506479991321745815481864755869802799348209265915186653374672013991754590141421115386287982294867896538276325433046710758447661590224658609848425267320253572701902477227683677918698847970332386711743586416057789682164106313090285446110417688595496777137185387406650989035148681232649062855867151352157666638767071917453817635682818580619092849081968596574885040276006265121322991178748080736152066321588155325502231865536067146068525112008721628075327162281329716510161464939993067091880129904116071785551864101779339624846942727804720576483756153193290059234978604358824349652695326807299576451861190738618934375325656414687360095332250438865816815952848123342176112271386592970834162330239743274453719915244429060002842198635222978289045812971612016854553958953438277699976883418745545383577106268714510268707377246086912830378567066244260109342980648298411560091587526728507943529975502963066009347145451824193724946809813387324110584803558499385596551435600107666719536965723744445752679925265271610445857698596450185889536313161912557853343841447143657225105715206910329821090643476934960691318867040393587823403707946274838584414969094123422658752205989011836876598975372630677273116711182121970833623586404976312860618949834314830170135993289623543044140732947125046867529625356666447199597432455956747220885041393736462252436570804177914355340604462509793251734082954704822960743708183217165954451574214647096886037737335948108043435775715933291321671286866222631431521957492131236504470621820562844548087005835002617366738193120598900612301372984309238963683970236055268438706853883806473255964934426085282795262322938144660559160027418849897053310329563805429843716279841421532094829782623557062140635175978186837171601757794047306259325532071401663266977730091289592418809648205039610530647625343853770161060077134148945668853223969017450839723216861553224735773450867989530984674928787744751613091789280886724033411924516099942162150928977409197776535450409858040795569446260412582479508828688683908150963094415965541390260456062422602151617851235470016113017493337349116755495462011263512376466461375156102386083441975366292790300131325996823143209903280245899567068273404942100896227945343013963067155127829423567157128196913358674256846729063768326018133094689575189506907252528416318442915629678646039950062657535088103251736962068701547691556985516698080638519531328913039346022112415609742369490448127470937729528073881867305900414241614443800695485742655866449612757874238828373470940281628188439298412035343756835237287899631798615934570701617787000948935390111140715742683933533666519233741094757585981270472426718619971803622450870651568643006224774127850807552229327552345410855628255747324876129620144882439717672022635758695130686795547686849539479948723955098165062787438132673061112093860411271654136306817905067343505782847789973299330832285158096144150293480767704516088791609499519595026610629165275603178089534377613365749880515178716639013396732796446818103376315486584931060300727570354993145215615050726857372534520637916257012342984535392350252463667344218013034097276966492729836404642543203863201520681751876434588450931461892507442536505285888259661004753624310263455932235799261087724429692453139152518082768031332185713753382102203004723609271791153852284680238841729001742305937447761119078766229499513071934487809104396139638736837972402752626612330092934087670567017743081488355056670937866367380424767546462250015825861944900138347891581281593583010118520285866594721011665841819661633889557260379224760388821814386235446701530073882321380559795934709340366577915567449666113574785383569170353678964502990354827983635033394498988407200290569416006647003216047644087045009374047246765082514070643655546607241208608364105269582292731263355399995278144808348661705901072924089946357042670728985194038310072261716419249480475625533862496891013311698800123460500468769173369286912502213621880403338395635238277873476574927521262798969604355194336950298888094606032727847757149479548612873558522427916936311092468664574306297561602303430520687782903306370124682951845852037780269771687910327355206449889775896554272427856228286186535277591948786197400658578320934582369835983406043801776023652358957538818041145833990541327938753617840247383481165704567706925053007135022030692957675658493312075123576717118558436216364580193041060472979726655991456563038939930303182056531853941432049688989099703454392257739184672707237498530561333187423667896820555531149740043372637260243958521341183761020360798758127684748273934081186116451330635320148378368249188718212354834556246213152944863951480000592775618080679869002401892241742377341912394804934166343431903214071168105302542047264750570453813020859453319550574207129195487423747075161279497050241761810814905188485571274778156045697773605805443101371132459666708947784516269578919879171169395895975871410375943817584101193332486863490891010756757245477886424715923733092764906917664893986569130612886356447861452789808405259604508385232513335263870340281407586022272231606294938453883025739993902006409081552616848354880403932644029082830299199503703910201453860139947403111491886639899952045595577565219315812127544941535189421597165306332150088466252559586787845208546044912851597853254176803776428347712304084940613594035263984456969753266188574361206906906565828721859344122413171148250624844013125279021097915412042253960930882007084326308220642815814385094815970144215562342926424580780213044915548118819995817510177063639229384643922596118771036431914326082875002175996505810122540933958751654485522391160719178783630958508881112047833773513314574054671400796780173880986788994580851259679714939918108602331562555579149354858430349922861401174705306079707384426285251415751098189766330838203320493009727774392235130229531169690531114173314092142976787013516533466473231429828248108325344129882926614514432038563484237977024860397897019430000838761767724422023897478547570088900833241530452613757255306858807412805808637614950378365297842333535382867046561093176688096164766011169156422657551016473929069837413316851845654844920586057748600544135549107204037631018698679459184219550083859632988540037578675633062510369514564427360850269511211338945692259512125881194546353722148702280188538418878813826646665729449792633768352661198176069803826883195538868834279343631817700550810883006436662621694626280090122391471607808556617679864259936340936046148387135880660565563891400601787222342859012908661193042365002339177093353475326153688124136235179842608479440274676660270152841435925205417612466672936119329230098226343948719130871369192330274022184364348476827187970211193845790845792168651268149037950199580124148944567684723571180280500134244091777943835132854782487833029676590592388577220447168667259857330509804290188358193154653105241611349788886324071532584475287161313394375913321924085726982967383565516599583871837648908580057589727514583681918901349598011348684890782981156950420487445305891226216908783870599130522884544129417693761145279804642496803097701852929831299910042102603974981314943717000092556845037311388856449363144972437023779855216955955258656161910132582449685280590824898635717862520169923215611685006240044414641548817515743628372031898408142179191820568086269690808606343811697129502522741876096760899401420142925151676078904466703568251436725433789706990980301337659875131150731758539836616803043833184157574458926647909651836986896781613470312098802883752089711779936413417754901774685059301753393172995782751408676871155084012085460236803385557617430814276275141696233680490559537045112781405069011922381350756280671021127583088335918932381394231209799852334984539250654188825020859258412228138785473340821859458099519367549382753993207311103914261195954941803174716600785270260229987507628100118466697940806584095176695828629440692082325383283152064016421984210156891692602718735143632980812476838076922158068052691242741216762088728615679958780479549340257169286513709434639985110973924955406574736599047144702212599267930346188486622110468369788094880969141652453778048111906556460169798009237545886676670897168705272015795769700909828625937118237382472536299926190597785442796622755801197042492634436284564294511424744631368765188901327577295608886032044074369060297133336015064445739754650590649028020280606850877735150156277969396667925868976649682840195011077003025636627356876019958770019463435278480058273724784573975004820303306850019966203887456280723713026121609043816340817730407043520424596244060446451362193537705274325618170904755498220944395751101792663419034965160626857274087928018747859445359993021349504700449595457125236097815932417554007845120401406584757523601670493884279417023296687308587955057541529133232918167537014620361126123087562003169718476254763543788384702522614791312089228036113537628398322200471193882455162150567639021825664247895976651210614888095905899627201781354775066563035904293514730876557155178106185270061374119651565687793803182278288914975186675481691494715736649095798038844234753879024803421142979195799488005785596896351264527517595741978606207328833237870865478725466978379367825806722162434891464664959163594112413262209871741947253957617016024851705236712824318033251093202860704026201597499846591049161291935417169412120016078244071151987963168091361152023452001860070892143889363542138857284660328854586323106465652905098478563734879231057813691499737516152712402776867856866849210532441856177498352763995701593129314445583244546707215850401683218190249342369709796585283927075585137691140170093215511068408415170144745767975479867598652303928458401682786760240363598094632786264394409806299418760455564720946371260154157833988120889469764585974397429325327144717593632476426771572891268462363203698430415292330337224501949215718831136998318046720670724163430174216113888216243855081451689793573142431780195774297626616265199576901723861748473887655808234180495564261252569180476658202212809760920020832540721698420055659281959673260807156871020671027167007345198755040410271556180590537362109155716596844654876563651257869529545507230417795000774877190781591945168152809867797139165310225307359581500409020021797803453582381425849916875661765739441415341617443196249130622903525754289866756178530754684101842572105323121842550194188413305638652674389040789319839495754141368271790932490180641603428300959894105064874838177043457860308584776639247830759836413352471077624008855391014321189308155188082203096415698211182547382147334150127812488325208593015495003521775402872765690387990675706686749996947970520438572747169190123835393593301330055151288292062173715577393141490674365507779883792856976178818488065061759655882132050883540715601449381783030104318068027670343570060202910193868340780276928708914425659265413304740009076084844401053163712410356987095583098559041572189994997846935183821383277908679621611444164529594119565686827272525938923252326400854257824654854711223425472679913330799003339545361590861078873951941110387007181664773462166712081434836565308556357193235374295348678633239379054648270718369794816324478284608336574251165077947819428772890440852705849265820302429819351941290798399659880889250839065326486740333126341904432837391341056184838730496089616561170860680141080619764437092428869577557555417055264052586345433502565975027070515206584565047687061959695986174791750325341343373880998222460139050362247780606362478154637689513026498136400831352074051869006690232939913419447908597346038070278366383990362830700945907592345050963838655072617878234389174423847353678107380348039244451007407261339668347082952475141492350747973708854814936503947382238172894453197170922344542311633308956993137710899004989238421613754422819940170699537678231447739104815616373215334280164541471076770827253700720851655285689130124849885279019456935648570295333230043541280887416684190284318867091690095111239408991814665748019588034588002716100947706549195215700092607218927761119191831403550945615860107731301500347536821405348125283301793560750090771178562432949897363701192094014713656372146949359098011404242400640012602537370533047345017726586051541863745592449622207541169706416126477406441681598968825836008500666098025162531369204615629102487138626727212987671221995998655979454467729255633606343643906384293275510360648928327149151305054672106789404920534291229656426491470990137530997568415496873397982864136911948271949166496565371309857868552463310755531970642721389087562362922269321095433952590022505618087312545925216687512638256579159791205306416709223890029725220450167068921348097120195197564921395140522276486824921775962548689002869784403929475407920799995681591885395485823961480064934896360980569796443175975626470737495112135239988083286335343546781419815320572116298361754066167835149587852266443952974021604427702298867538065406350263070305508479572337941132476603382575017722884584791313153960717160082219911082540104256942278688389701084849178318838911870628174706621430269274392020680256150142521685392656126251293380352641332039419399758877367342018624816954080714246696115637932753129137360479949947148728801116048734122041009082709114909367640681652601387116544332837525134883554363181773821303656680388571962645078288617884753771851944188425914084975704809564098327540020971165427242130524305177459929733821027387287903695071014069401439623174690585058676312285574279708166663575133137513470247328190294118818961369300927500550311796323171208923689050089548702987205924669051649171706340471749519951442729677229746716309448945613289468013826768268684375384799514307811496173487509970565388036977695369006260864499831621243947377843857909299812721131869789080699611078118872552454424435023995141167843005753008950098815339686523347562044085149316576286069918324156917644065515884107350661797006297098157606909239527449172615743001007029151037224379352393947844105135496752624781278404887057737362189816250276707234562463154377858061017559890847333104691147373109679955152921619803342976343048195607054471309333775539702920726953124155604262006938974595248762831113320045773710697055812362248216712451699694233421441485064385324039584985916714671823471869034577377886624934528948743053154018924458679631897865174294017932923230050670427836400975631953649848298368173912833543957154021410589796740878151634253912380732883147489639413944385266041641773084060063358144290631663252493865890125621618512467932755600078304250720115837425458300853207154772066441809160718704950381156009447177133843264372539485730697315133931320453472154534075617423971400874452752379879361240912491173501762095554015248699479518466013169711791940023657978812291059624014745641350338094996185670976760983807655683546930975799898166905365490038613999816119605739146315955659636548370676295586926139248454216117061336696870454276758440911280135069485905115859654212674397960504264248435153424404300552659256599710947700813877496794663458954528184040564018984840880596018233605036099228061617103975918880434979890317413631177399985950271417788387186825859964761101041518291916081048050451427564967693285360382713326702981340420308941179132912013656004345782847662139536022421529487169512744965991478595542548477619354159030752110159923941610551132548877777363139080393230666665805282099643639660475220570730864897888525951804609909868282152679153317653614763489258736045396861795615751894844065943006478603777075144992557017312695309252143014098194070373563580718770022945894918649814548534061583205597016769732508352009554545527642984094496333066632143759775151968398381599302296312881061909532331410157820285681219827588777555062429945770328738630897541532663490703304139664490025643586792480138697824695252874916175457290744564254801555541123212780327596191107043654365633342649789195598296216893937584605540606691100089505201225723156460690317717373129254514190140430007638744763080705410490971303439362079432827074486405836554339966965766514677400133448311324170247124773502287328201302803589160930433422213784551946295806132829865453781868088368521640621419044097771883538617342158985652633354459998091815569228816259905605585999112633369886885914891047372894633375153496276911714100529057201410583559236605053485679928326556040985124490496780880624449943781794432269229036242381738789379360756820224573789303299142236832616421463793295104787882357957043085113359871148010418885977491757296991030820630082634340243766654466140194487640870961641795855123505091931880353982662095754817609699295682994843501418754538648528610902862931730009272452913309739692998107240191906497011399523724622968449004738237031920263614837284289362484843828694347491296247863201170939397418391971054322652554651031978366027482139830890447097246264922616479005172767736495067403123429250738584084853215814924115952865416336889010389311180747657847646920679773029310060043998501681611895259796104440141122372440660357046158480179956564521275900598682177007630387699934009063531023043569461126764178619386532361269468296978352686877870452315918927442339389596962200681478457978230956068915898073562089704590988234313941100892066892509905905454635726302624998060887431816702882805599103304040823753576919411472303015691658185723405993457573199496629830265422630388159798889988844681716866670198319284622553565115447010254610083438234437420775585969089871309302233850927024835495558012510541706954583030391781350281142767343152013748328898590180175713208795821966579364881302811399570859213762931371908432243654113391149870230704488937268481105839305043974592884844947092976955108500251126297904775880737431191641724225536703414207463073414671464613396801222455953255189299765985170370077955006527019484758003644100120797911395658951707885848069166527599524438687578029135449731126834457020647254857517781131706081601977371386583008488500656676206167146471180136749285614129628957676619301028507676570831627777660121691353769797481071844597984775170948526341996980334587944755467474437433039583055715658095383124059156467573002373715941403760781185583726120963538086695505642337234288294803147207389929877165092908777660649811515750404003006989019050720071667888338732775934700944651979120589751229277970245329014040883986907330389643995050188223727577293823832215525166817284931193003147458184088674821603273318047766989622967737892673561323765829718399673743977929224492675322306612063916359439456160766912655819319521092816735665015464192889819821442677197189989236740042318224997852912068553573169429997849023750877895661767823413971709000503044260044714536588828279889160842604208972198585412055654416633316379162931791967658880627656370532188102102639709598917717498272663229313579485323748100558552612949476987454874108376360850413590339075988581206766200040027484080471988148902799668282128281845493413285076475555654114734000552598189976212816303712922362187426329819023102784872201571350796794303863724385473479237677319744413867457657080655902624805170282521618413213105699774911129018340836869711822743153690960153994757590595691879574161273872944298703664198847371684860947340339801190464252088287216514214507206928322093599471139848335807206288410686264796296994132481353879536693236477284671371117067653855784477663846226802188800870528913083699320213232018823331200549141879117458089948083646294131005931022765235908055169704591169808271255853197431219616869172952365854935161391525919466722971766309265134948316645552404254427061981864572484542265520171337535743084149811118951620564103206066919234584528436858374209745065834486431061957266866752917309798758410736136320729957732749152508445440807090488296186441070369166351635267636871131225368140750490213473226043283897398292888384217655300660283082370735260997027773684519621277111955922291109951861864176645912784286618964084217726401560023302741020978777253105144143712070575756395413493146296540829882695841680404112656503333516264983907607206555050679646218971116485721068473160792371515243428491511804821649192453544156180992809092964895173618361373823461632664406517264559871467742417956866113443148128758546276760367827786352673450946147505284063284425084249202482432575318120691585051658083706320582685948922629619470970917224375558868699607551755167890625304186648670822511980229984781852486473880916827061804960566321852950803984077067859328142392482244342749461163483458673297034893038836732495177496212295412907831701757851832397035780594662093881578810103386054794796225008250016999968458800336481373119491294770654773967941239774152863796729324915183763108212122943986590756707713624344227829266350049189966896524028544281837683026018366397600962932834221575170021431649092130479616893727573456142229050350366684774116898473591351188271499800001141360085859217532834695535595519904160414806213934844787567670898317191041153381152861973813579919017662696514627945394282096852427964316554286366690438353030164802592130517911438977762117818788567665374973766923293601197438970878247289608679448789626676545184539653818120701588339107541297196415459840302598877758362956362340307259070654186225679579691323981570929506793530113061512760179535097601786615447599805756264508596222760216832477072414309869709217758608928434790550340842543163165741383451194066939183248364562359646647025168393140525026155104806498042999499469238270307447060836280099573154425825677859189369874301772667883159394585009273616790612907118408331230926691612871186858046597281146246727192225220039306346599437239514104879475812479230793406503393100631474088921115748263757593917331969313135784413341555254136245304670188494398538677163903742324972594885237206026045949794357468851358748521557694166265660210897428811477048402179310948255472972184079637145745523145706685138890481403129083482324828421193119798767133382275846882893699002686996986515427272191040423604330369936720508503274998431867942330198159982419587565236908951739294221015897840496710550702653303023721571170828718919141587664702396956754053929022908841697601842529255183428308506688789487635627521808190114863085687911743848697547699595874950704647006056005121214903946031242419659189336652638107725639276016179424784022125398331244072660382154541929230052699922522654849095196847061038941050050096455950876186792671887209132145740688156373355827034095964288466693378678900627168392059729627979171511454870480318622940595354716637225852648704023575699071311536862526506170954160648600388167891584948856512438290095299387171410411226072666144875337922766957216583162297265565550611824555567687035873424468772415133834761393801569541201280891066278865232408645336293360839672917554505768012750701253027655756039348862053082943215677374742187588865631438849419206231144574814380262908852684548966593380641991790636546057101363815366915795799158849598929539705641012497005292167613911330878975014586226378945317090667123373139978551806538328141303990254034403529074933184271228385352842583521979396720966356931746103010653544117203848233252423041916342173841808799848954795592398355725736247995689764210596537665965843160842941548851998304198927314759963413469801448761783897504008268654615298610255940734729836692563570638820734020106121409147554232968869548393563178237609725537742046841789374473579225282206287919234023057099026836899837810202990535072826522473572645151693489547751837355346007909978971966127658595342453271928642251291116230287882632545058810556053078803564587310893862558227503226622775122812060580483159500004735460090462425914750702444824809247178244790624022048422133981858297887740394578970435939466469157589601242252486965894826429520359088159703192967159395720231172375486288297492274198948249848285387964089527115349577859354395534939512155894018576981603670176309699429571833168387749023752280106147418418140233282444240683642714207744043292573216515059971692337759069301502393226690869349966143526679481826435519320356761867963831078494841080963386318459303111901902872294419626440004769646158200966195357361315037466800942293600863865184040076584703214502856344223274330534654071159214868167990474153600514387903419832381885811340559717034264775015887542090941666141129240513754742712077776820089229283901934659717740190709712205777100484692976751957346962733194109330446828387429200812493202804672479406528920979856672436427274875858476002145949036964260900016167013889008781741032537861546611879405966995628366410519065782617889155692152570665360052514969085884938707593212513746986518300301203844692813901910325689978262532087575861582218495725766507303014964530208963467841156436741205258394515577768314521218106434893480219183070392470427935291862632723210832364959166029030316187978802503689420048432158165834774172871064251560118741915226806009331692733127659233714908774433590586397548033756795579824708332912932545806989651801568306268029026545068556634024353923682797152085318750796655810133558570525055425889019251679202515730280257826133232098599712355110817093099118243772375266024875077053933911053024818859929848780166024392217906421383050076326052163650802482458588503587640524451710312361595919237103387723152316235699407963004779471904269000990240326764604951216788441072628227485983203503754303499889607435823826739054643691363753308284889923089016334416893049780616108171418098568780766693310088868903760078281307724537139046426503878453172064023618582109181666621584749601603959251614078565634855930222267875347940141221093896816441051100473111929136153410071944186491163607621398993511860736011377162236297601103510995498011808309801973811736773501865927654252187345948626495675693723134151682091873108475187154629693040424993326501250679449033826905328605849723939985220728209361710775340778709090971260511092083605549312579070020323496261609789071378872751082108795418330682446419547808844160266351103238408926657828581574063659433815145581186810118209764855473018683665631489770617694755194489364447642286605303321464882565921043001253010054984964048794544714105491753613764098635253011316846208038655210681619322566236140711337676150693866997573969812333745312692411742271803253995788467340761208439691807234751106161569129385225929594251286180904262070681501374741567432374710762318624558129142425917096966050042168607923956661299730191084042015029406493316000088806235430528280478835176270865482614744745654695357541933198896525908671630816129329796012960807782686897889622546259373993152125073660084871319421390387841725693579408675225367589115153472435726718093020620202202366034866752354115659835720686648557112296551399588090763243589148208092246165155850956696693775061947333077927274234578080416453921997151064410299291536870391118887493304582554726563358224679182949246934093048738457808089692578154700154631159583513151235792014194371245795540913877207607338259129656465466813819442067477139486789454656062751760964177127577830841024605928353802947701319752769257572803280728808837666490210551661308562698278974375533544034235818196115005655887412585042477787990970335108980896404996611914316313683046442543966925777419806561422191005364686761652155776171030488589134068260099687607591172690712502014617172115166459645198248141485164472824976238083204020533720815213175389655317066152741303582584043092256891375133902215588040121174317762149613556837699684797067138581245348718591839447625081267505163463640225252342610363358153101562790465424816820736255787627488360463621482490209872786229104355057064219250684161966129544735420368197394407646722849691161276631438918245829626938180391859511584981256938312556572039767121619636344775396611788521156784714068652221393161215145481863095744147344614748164237346943692355982759665195840654044236365494053721771096259971652589857228252304086505491896302816809872167960894152649216045662259494497790775905440884844114863443006932022449737363516571976288020447653551470600293053081075420410377051221493673215171942173348755719292474314751636939323081591546086042416480897376575906962638612469310382135717311907117970539636691942515584150050235805275448584309474002283886625639082452801754542472285942397836599873333330031700023042328113484895146003043965091319994972814586974588694257480363853987400148286638258183705177193117659672000248786172247927130020929834967782951643046985408512382982969253625159688310965551839069223832347379929006300684180742957702338901726512293465676379773958206262346800644967493929138507005417394999997175834790588416046311183055454982400449443002595116478847134025201283140573213121238682882486637228943525636511472502246842599616641513564508403422934287551761356456187901037451094761791266199306477397359889341247281802718630889077262742829362496698818626929380361545486587112175560778014998896581348253539823574649278175379228813031674869768084964984306294791837264069585407617183398527448095044395683986525750697890502795960390797681193580121661711950103933317898806901255642424864906153482429305180769796070672069523089912468037103930467258418735605936233441569034488057363921039569404634687465178105973546466486005463014345772507088841349685957890007289623511039136687992984654629034962162266493757281768574467464476330345283379459126790920648307575408655766289778646987776238858728395393425455376059847538394328857020937441743401454391087637295688498255222277167483252486242542802364887262152122081183907938843782420520090713968663740320213291095222373671181590368121708166524492677221070986299332471586440870821466239496055170938553594306993982468143133484293043141553227183161591110166711648165609742641323665949669925147274356903071684351311600515237484891629367313244860541500775266994808650254583410209586244262548985590640558667926382109140107901648542834105290044331827328353674797007609145395023695655311431037426552364063979574600969758888208150988855481472863565580152830330188239383860957334735979390591669775013491348908271237460587897005417672812577007139083705596472910035632730712616572701126423523958441447245663850480059032712936211915988244779706657452442729520762918830655051369170034107645819244287279277418220900759914006221092158619559918578574105490923263363946095576099046158669011851622320324344659839213383324272720083800891808783931979594064225587857041934377640647603452244786641852584491041558220687459385222877972113884915391028187637031691294019443988095823866315690690052623084504685351027706363134193501303303561122889751288703715055501190971341076930354440330990285456242309121727234087517344886687025222591233952378743266430374958637340549563537138204718516220756756798593906638711603631197185540027538922549074481083745651422853061937462034600464963225647478752159358877520833846562038064459111384707271252560015623337130840369394210541310931721089839950032605011922948974353473178682577426650383838102473243327559580653017001922299211338244125493490302177363737941844202682769617093773889666413501566632287645035693342174029681850859498859575315379022608436029266334008257492014530746588684200965919532318949555637077977174089636708952609938725920556707036921846608618434915931279793459249694541568341183890845552902177406343519571364456386964400350862005950720683868692515552615655137135857225222502675052964457438128909647316655530122821045479749371080015754789803112613204810945370853493514573315053131619880442974249407604750898522508890117731103743837415897485216436575352681069327714692227451764481704889237504113892154697778826146217755469409193569330755519344880936889371537540371990007391204039978600326170662445431147797469363452553766040753738892064180239169177281749918165978351420301914078688897020815226506334460885662019162791365418169236811261581755157024041858750826681139286242774680448268990447229942303335543512156746266221665233750307730655930370756265766842538750515462274560936632307688962107028281648208864633333918545019220105510430362227031661867217975313719506245408684872466791267192912549794334850856637962773591872247835628035091171903531504014182405455364116817288489722819910267225649199299679451737114932508699550433753788087030223341421082189223923091083138550636174267299490850521697124667846186108618928138811760979664061360795037473698239947086057093502294695995214452988779304946452572053528461588819827984934830481842810334458892777613362098811042920003449079400796890177781188373366118104842657471854085957843539432735026963836397022026932121548714591745295627021870963628536717643998011083915399792400636349170814495958151653743366543578208410729592168970132659606938317383615446599475523891119827669869173394640472499349555910015656445459195529995609360146797042136815784013762807237082010387905057657694783172821765237935361643612894885395175136942130905061630257046825080634998129559638110083601037143253628849241729838514784473777832287819722540111412623817601068452003695276286282775687597518190600612265619709974654731095171270571414058291340220233369653048652916234634867236950363935854827798482239416227085202848795348915661363018855367721129224000173770963849038871895158457989314468628649136302183064329119201051359652361099386123922280060264937655527044848451094571143974256183507107453619679797037681361540193587106127070281538433257354584351998514103219121508691162753719430122683145164642863992639436972307227538039636377589767361128601423019983053185749240858290749338325847981230335975206287897745296717488264679093873189039894392917970985837957086476428499500643007263977678511387576880055653276141428242503965195172324472823105730107164713336972931144235342655733362152854036974522341907451337009501724621966771948575149994398359733926822971911310580401391570866231938125172580007057507976448853837644083246230163365095692262032509270584210641691561366654824493787552026892886642108044818144280203767899516286494875003092996747197977759348475415606313741279496503434383344846226775013487896754380750786343587195865856442988584517953178681235570168901846806070454328101031380124645730158070985272976605714381000476590517865327571831163261272657885470558076933645090969765694057868694710497041865888370184608068720398857112656040591006000088276767385542196818666932572202213324647648447837230430951371911764623625986846258983284324309331778875757281591057512122129834233553322394820425276330745646109063684217188247225184627473440074890909770074584484648278006387595306839562712763547130335062270484530395431777940797013898895274952049070449841378207930502591578304758924931409111443773786236351196746138028041948438703049144098516760277510191952386883473545686608819497857497662291469974781861997116898454056107983542675570347226352961816634393306942460930266212506633700927393155980388966118775747557991951794077989819576428290265774005711910838526728826875021399158593332128324316506853154962652451844662394476085119305299137301484063491200778992406655722700797153905970467251426446745432215352374371498537944571015722281755237742130508145434706406851332071581313145458115807127904597167460392438835710724483318671852975645972512409277432770936896392779124901076832494998311019371019541341931862223267810110829521710666751926139619286061806928574283374894096902885636192962658088416528766561836706523372106558133533246195048385781043339248767796698793246737686022682516030932566369508322782031795593572038764937852784840458012057304376635421985163940533704483730098528874565986482389109077620496113568394760650295877818525194172136363879070070020360858658769626621583521169594374435441193522422032097123618357204182513916418375069021007892626200331242325459738386993768586834965279825963953542200740749927716722157361644170357473201519584037529330330228390376815499194721213363901458934552223173358544805709340696132833497654278857159845057280680004785418648815165850144089403292375053716590491279505596888259667541696200260244010057944790248016167725901712533956497259539276867596673472669750479918525511212637188062229327604461054078471259495434776527270805177333374949175689994026313717568216474656590771235090153007434282924523439584764450380750103911235331058675479618826832229599403114294283370464707446087130034649586400603398517243168502293697769706933470179971332371655651034108523674264216908760568492510250387253703255624112767044572208370249297882132806898648193315651361156663362865431512837337409249871714134194017004704944487325880193472333236881117922366960344240029988696878495103448497068149954877491721119155108927795548142864537756587590911882115122998010461176277614636006488540316961186458137697144096496295334427421812819967692531344977788013884214447457469232787248767753797187572029980116328078128480497088934143210403675412917495758656747397943905993611959228022032889211440719712408541235717837309568033216332727860432610455997228580234310747758242948225671617632825085390249135981239661657750243295905992570855597574533066653176671436259208291780977946948615658742733871260119892447502096692178182372103808011474940139200241292986919877189889094768471869245466568255895157994522754614538138954944624956844654766279891349649689639679103393951372957152145091857905068910712809227112206920918928503799388720151880953579460184005401816326150617021072115964084503674587964025704500814786698910804298009049041218587168304182267600695016128061456918002346703112050580960792949427788698136704792314331967981061721931236034479340727297955006197678727878606348497409889173785261235737311251298103310239366868946764372593066927983582940642981949890170874497142954082298166465336596081495411286362655602011127497474169264651676549274551190723980513251048527051679352752974585642139393249731678341241391995250970553039564859791207672791803381176625755123587314386396727629928718331301460329491425359918934440740893114608851862763422233825571394593431717372179663428864239000103404273423818748155529858845955527654747265885142012425088129074957394089431969242026642237213399948861648359794233587794179816592324515728258523197744551942994562143809133249363158181547799716473258044573885706959029407997095833888320344301410007457128042775183681330011066081683245372074459330261263669243055764141458380865648126486414357860155622696348539576433202589700290014789060574866046257150648937974042615935578612246160441562157103976026947643575239388327407647943495112943534368720877286960173814062509193931585478001637944344676297967387931442697734752629193524360347928784526882451718156386940473541041323179194227279888657757070410282037304578152098139353921804682117478997357488686443816378025477452350118130504619486461315548891219154133929921565632585205492595288381592992864064541832980978856502384897978258420598509804924231819894179469399395946434325886994061053808542677450480811574596679266688740186121365938718595917809701376586320939146538035229855524695311145677060274219908521649660400223113938043580841880127550894980341651190391919975762745159611208933646837028153250724534805012869885819377880000230228398789686675104160673274208805624371554443647942270707345765023340855093144869863322916225624446808068773871277477507559478712188827862973162895602591107128003715919723835061689899553663158970331271356269146481837016109250686142257949524822216978748965087860607483855333348471760322547620700030593514249159503696205735245306646039451557796241957375225542636042974608284880896059352730572423577090320741270122406963581770109764164740089560084230149350631177175542038455730988868543582788374797829117406939441431760742707420413010279135181609267549914138514274994441226162088127608661931459462812592703038559989491035136659215739256739475812748596781996050764315212937938908584135515380960601555428397250010654928554514221725843471164515584583997099829436010451731587504228676920119957485879031153000374607658880771205272773598525175963196946745686221197847842514136975455049511476289617898965832066621800046101544175227249427159929001874434380785330699580030963738365558910558412974758583573897542657462807454933387853133272913395000125920526727833515139708732727485116938397573918128372776562827882180193890479356974862981803662184059834006257995942466121603910043174538651852968696712289798092983184290773095466634107902272336149040977480021987091977660046565356630630774370102898315469097612732680954869978278594874815708996562436867473882031002814484763659329502444667912678274745707258661063727157797641683057097745375054371316612512768063045815788968156334804488173777789490830319212072832256889866712246795783486860712328478144654220766249956480992973781612450041448255441154336483688461449655704451246480919058808953828905936312858600136955370945258790789439629521623151077161464867412970033269396404727997538714384530625723819581362236689885081632178109782768596850023009533753656232079708104568648504202029288911701012409350334900007020079512650775083373649064314518493196788991642045826915973158433311777887708921970859220194410485837446258343700539361478039165637109695033316112730770856253723665161155433526374820063954075527865975203700001968213936148105035847133894776387561800031033329502092507842211717086012451948409373317623943718897577583313707821228094815569986500777331814533260552104893548452923136842327102622586454982849605198451420308776990624712638154328770532626244264478968109935287300139245412505576629816641466093309231686138899974664279075762299671278300279330935590205317813623187703524264642349612148039171226955261717973937912491928902158383883016154653925988557308744170254661200994326930928360974642108677093676946083098773625795354616714391248584639218031766728242888385876138495958217402130726487651173604135942292331872142618484562155520562438701314000778104614767059241134311983345700474646215374081237491722473515213163103277851388795501850126904490882041371580097355416141634823783776667233689256436758453821042028991520063407599164990051524561073082868796169719182812490830381457094953509593281025887365922600997685992026694251069580839107083649080655843367271783978374763073312489613779936353293328688976834784274239579207353781075038824766471492136761611038620336403302501041851284384754287554107971989459388562235806639181065162708840952833403213687707166567367349756310122210414173688012662888983230115304543467473728989026447013367549276494398868011305523367846681052969992507267936760009238270911105993630139439221486133622060065796836502346933476202919838618392853410442275878599155571576625498608275244707977137728924692183889623899568815306112161956498560396360797528035739208847987656924522937880848315629566454806444587185292379866331822023900756098076481823904028845455806290605439959720090482002451483067651147995070723129691652568268960721715977409735893693716336428059765268217476625993946837537427254354478478813702549424594706199436785347667687819647211388774864936844135609977169511289807183730195190249502059211659505925141963950958112132239429287669060360816412988545742072767835407949595046814003412926133923323516565423013282567063989083808145166065696042750251745211220038901960738630148691911020216614937621787207644386639500760227185730804463590386889328771791449242171352424776512412663012593439207823890375646520182134758876712649400944273484749357477271585054250192631284434304245724859945141849007669569596768064023662981672974547400228277266343553595294998680766987979514648408348175798982155873253440953366087190023776969977446629336570029729125897866311283661818958359899151088037477568472494260480002704941171850063782935153420969843145711038317229732469611458122897225674429818341764156998477290815623292114798803513504159370661035646625160738291836022532901554849790287801961508159136474641694375006987611013486486249105546317632387036951501963609164537960098738488614066567068833782987346762543061682434594485303364328670946262955728897592384789113412481580520968893470576740828198414393228008434782207841303687771616109951126200662368627726059145305643365772791362621326499670150371011502781566099949324110000166665063391182072953004494061524422171925292945750363282982589944493169166327673219574167983783203465791863157591376689301102961351714243083944456616972323291733494814471354057618985848893889545702920015202500897728975697850888387914915003942992497802653004091782335362713477271303644825199111711840254769105669451587857296531867501167825629634708741271571828880955424497713858715968272104579087784334844844655764040214630233115717843477970925254971186981145423934646976817155283179701043979271114151460406839785383335050904334064715923093516752856320481903337638101230542025391795801877584528886147238271010851448793395344040306207534280315792234978975715609819706215464681290270882576294886230467436404640892348161359300314793241546266869468074851224966552326996287801222296760828880285781608804453741281844610325075917040065732595944411626204919868607555675662718973699467640061065995033328562539957052047894433665603195427457086764293051939930755920292140455214886608554815228592101254773954056422668695079208517048241422951839350429998699504192293525524597340658727834255448128876321534373432344336062130515453552092780165961586447739991219121142597288937329702081327459013678442755432992894277163409848027889853300251235923418153004643578732455274480716858001580703420550733687225571351696891715753753912460509848250153706694075804421100669291939526849853189042862646154862525801539815646575493021456432360551274105439359225206034684909648159065437121673889020331355952722806743547695989553150353743361725676148392100039910875967193125131025229201233919740375661310975199477021352530254792155644921254745109642746673656815559122832955256380158325915866532772456054854599157550312523082726693476213772047497997831647544767945671141335026951667383427345967459392353488042063239614309446066304266635154100890810336226343669312903622620901361173038871329001281801623919754971794404444724995868435775425400785302906632747083171630258104121255834598888046526423622348225479344740978388474077633928536491013426176319768057998316673955956370093362590529812125448698358321096772506843688638468715793678988265329706918591451629227035451064439258771847348549553030089504423628344735567958477000563541718878659202694530324427632120381981413153187018221130024101741070499848785770075538231745302766065040634656796083952856014039071187091521840534600538606028805227307431479311556493207199838418285215212124436975954621163150916180799154366005614483187794951622612506125425529693857745987543834607491839982674746374065518117626518154081121642085153489965112983516349345697763165466005154997487343286526677339666831434319561491950692542864866627297172402528655248184562394136742810703123851224328228311475910496674084284238270065681019385997370003739555260496980449303473912680292447446871123998054837924161201490736156001346844357434756200533132474180528501750498597643067475535111702843814206805367735593125304265670143874032470654602970452038684970221466927178708515751839146474271640700065627459319610284689683884248177623449472633221220698766354347640435787559710221139807541368670965940682514489906407220732789188668050062349621924503660975863867079062232264516726636641749687899337483776288329000573016835041798728710818773077286775639010401626243480545339993729511204537182561722431376047012089174599223687257597379654023921399859254672316486731375051734749604611431292587128866833054310433111576875384452057293536595835932862664775927957913249770812967694655918441270897211264050411082822800455534633770733766668072456063255430876556257572235415657562738225353539251786904394389236289188903554362824704015698852389278435183045095809535021229719088790592511672745324236794177735482301616226211544319299784040775986284844427979848877690302692976921023844203275824947051502081949770560739050956959302477502226046784557688408868215532347812934450402287827513744386395341812942608683658000071376209879364629564189737608348818276297070783011201463565719379556772825052552201545087155504203549821830569220073720960280267483663937552163785997061934732162502364275890659633714864705274835771443986699710607262629623117959532343164323249534226357129917839008630108537252568718561352407787148297065850051123886738685913261350279081773892100823165761482518236100194580222794326245056376863417633926724438320234071895732582445297692878603455680330310415234005946989741418964127299627077155277541951043467296396512143115011684269417671592631483718515553329537289256069938942071964160970004826830289241625892221363042680239210416096453317561122577889408375764397722263024156591122836877296897563750799505989492193381626490216216244021115838295419471180102955645098629907555702388109015212807905489862663941305699598712026358768209750160569526735383267966050669951255221012789258316177476413965392137090353849388874816166096342431758148765519029255021546818067772198852402174894202635085447630498267782578190889121314840843100706061564442583973280489482647886405876259886836914925836295297951658812888143908664084928547646046880949128023632846633555909339932845645528564437765681069027173123316669760061296423982312358533323985057294140678444570817811949954298639270564768960141684025943704967647402060238381983516983290839808308638607234385311248532080994020151116540209071895604852227884768989490936633558779450062156212359831509279788578032586842834031039447430660365603592843821174111117933688118853210043279598888547606602128700225199482788446771956770618655062215655874320237138012320956045506702385251299911705038376104433983186925056552787001932391728918946558170705480176141187214356776704181511055780141677619416887510928920563827713880353223948954418173795211491333211413631845899535621273278289348138769010789341061371103722191730419517285880100762389202107731913858308836972081440674426733370482283919470619628150093981066024555972094725902304520808745479685892368794472477307573633315906202199393115196363467704801882694976892388779028867327742596534344798845869848002884631610541626213156410971798158246705321113024752123984624315626965515710783139778771651707632249771125493658797549143673880125608779485331566537716996899364164989615476467818987061290205482771691963928010492937304957465859695248520195700587431002872962413341878111791810376007868351983812182743907525164032690322341714714207220499671316073523289298177206541366092553052943729370037424209041850488196116531177030614170456907142428200971909847254982027922743016079482190572244951251198954127355078697248220171870314384754412528680346781242641155684932476048561339381720175562951608363980982239012436280674087574926316667308127202297594383889894574620108264862257215763078008932718686871887330703011985475219830172131972043760453596748563079757008173586936565446753614921858289353410622762188866378164464469979113856306021990070191646407715334143585492028737513282996177477870789286041066403168399545415588420884207511438777420432524753459895178948015954289470369370269767442638797086067886549895977541740170114626170029326171957307506256687963417359073587120341803038271992221384699439509718410336274893544821220112857361481785468466271661544638070925933808763658320178193097513311264747914173295093725016559692919132047017339978956927451688656173074091627062618819063643128503455665335042893018540887493527291677962879398195243453986272630063795998018045798883598742620545339460079513042376709021220281649100956293494391041809243076269372972497265719941149724151594238804656240673214708843759388633243276328515448885274833235234231852051380407149516693053613821263678052325105306264970551523124411537834785038701086385055347537373496716782242170279118271716595375886514428791434723242837997199542119270953626328350400845925039957419452169854186860734472944868000898000192998577393401083359173843540736287169605019583678356855770907247378028187448233163644321836980909795553432060866367873816656710470931534861976661103977751993669384290442585863705113991970765398141669365264669776463101134170605179557887964893050324287284834357348278865258788093462700942849192395444262613077724177558082603609129585298138176800719764443839904359117502822934181782801195130003669764114837024926392587846789881441730108435098336084617320427878902089074224476194964918902979349174288323584761563563574719690150554056791503221515795488781653561815998302379923828998695795401214869163482964133023555341594067097673006128844779503910448930649428832663810942088898797903983169371332451090865184103153723981240214137243846491117049650336615508912140212046538592573002686350111201450944789229754799639553032883190944934019570453309548914941057250075650328127202586728766349707376663223471735887645253305034305067987077018172967476739831790843644414044248387272944624317862528281809994667752902286173887771099194712433577537784245250958147614156071090539090820921752728998741595685774222102497041358092664374743771084967416043157301432529677946203632750595714805924722252626483984516100717898235862346410225962789670038056609257476029515033213039188713748493079987614772295176352749138112374488386766198229496610211349661837965211854104116911279590290794748501850461619974247449867019681558561560427130126389218352957266140749985124438283376141594950704270289324968719036022172675975776425071127649658492239207833668793126593018535668271601354541623668674691604263047826920102096230704174879548075714063559110474480245801851382094209931124549042594920765881120223086343995576814498722662886372229474123048405737477959089209314691232853887167496145586924392373242127278405514145600650226296166627983981131736691659158483757927364246262615390759782915973928388816604761790503730654020025008954321673723168545748269892191736525164819989044886479302076359340139150683161449295401319451994635182928617557621168691219545782513709020926098517904578090584401537648281271881916858803237387400797159375584371091387496967296710565585266667127947351883363232258488007661881523555827819123037491031656193668094367765646996278044769182478815204303900981959803889468449510545467840440596485546593421280865064576365170191620132098560774781651939035918807696769542359054692633936519119015739086329689666500288075477890239257315051172049021557642733681427011003133814325433917200539224326405343479997478194821798476210773676285320004628577004685462559089346697786527697653267125581125485534045360949453951958416169246907464488735651616180255492087313377843813450026586976713706141567204497017469055228185098660773486198385125745722044252570052232542458492535623782689772383598346567795923959225902871081294524831690081386459388945763274753271833181465743027987063692021343878181899125164193149292915953723066659514553561889697718682132354283576578610610889951451495238071172657997105422195030480237274378601757138604993662796989163551039317357000956110853356701780382510644031016145537703169412645441211446665548376684495342368997028756110474435822946272888206837806912476516992680017031153851607373163375290047795728068898507062685554375853290400449641772967518602863854879256984978662997948900547746859601266556233696711752193396891294447714528040791846304471911125804255476968032431719441160879380827664597870470645836272056347668290475125778673331304210851810064037147256148276877608740620433131609718208964928684592342623601842657164455858649879718711664672725619570808278822779961338572658639615520586177199339171964885601593857058495039269292149153874440625371000493785631220167619613613276729542780305894874128792989248571662968889650041073609714026104944014975275622984315494329540438391850731524710359238274764410817799340119155430038002497831724686091612554058842571861622434867202217156727951136422897800415621713974113592830782786873353546438077382113865046013986806929161651701550075595351917228676697201437994294830564461042415236893544546689075990259896439584741832289745250863378015931562528858918016187267204458756958661705483951537651209131088480148480908790462521709034697081409376373955460144955238633705964953991005209522182886422594609370438546691837775176091665166730494224122481644386684767406668010388779303190722693148093226515530772763294682236599587608771538205560877978058402467426479092809519583040366492506715045011310198397497266846424393466677611606571574786793920342469362272659246545149280482087193923208619023056676846426632563659024689812589905603218184148524433546996352939183586360506341330609960742719055707255205743064929459798363756908276726970633710916640567339089042027826830533678183271426726418112791509480821396410757251794780872845970672054256647825747822628463190952700337211470249247880077345082371540800046476640455532578908820045989856678002359476676821445693160043056368558797338046402486186654510260444842228506521185658099221187053972531068695412463115221941750254918392175783192427648695651073266028516263122180881609527380194320600401063181002794575328935783687525939308123905191191575382063877932342445427222152483855277796167558860154497684253016528838725429786758747773071434825341692016643689852543789807448918604380452621254276384658036708056967995317288445925281759176816004492023609237239080632747273067472489428448838020806402789207207364259073598082235115352946832276888367302158685333136817696455139076165029482879964687371497569207269683308031007300921366396818615868785168628944572233935353150039076388256748638146399207958967893253701317728752927415717587725401658722294051791530292166206779830689012971839855901913226118469515650582460519386453563894613061803801656616456240501007149708470678109085141097981234809606651666155195070240830681415160507851108844028408783554289620291067249551672818772831282628875411777615264352873525996347085639790713910072068935996593335221595861177389724299128082171988120761456982446020958645884093561184069836901591646550985780270507872432669503116734691780811496873426276461895199844178431334533200029586113862248738167436515797168888190515147373152471352915792846692958191617973050242870481434467969599979719153362024479681392405986746682090736807628500983621253478258656666092754665780042293032608681774098409667436448873656375688014285530880598744923142624547729241007060545680820798710287357893712321416782427538193008823447378441288224395680936530799985994687578523959794374596829049848815327163120926506602090470879772175746816198662299965148795140658378715957089204631893638459791228906785895999699102296680808524949780144439823001460089935179118143562743582807948587804630174341487107696230872010227115425760602987459762888187017461984554273829676402184275665806986176744647220731549509564526136450317358578587111365752101939845392251064779293738505701352104880275507505540716305632985406104905662790367805150396260256499167863901352616947530867157852649770496363395151393449041598340673240684021096833001213288488412099387490908332780975901881862777373091047983285345541939757538825119767333326937295464832492963227913192926140619372686786545573073257708438827470235829817604822046668685161215988125015123031781119446900429552984436255636246335682932240774767393053899855274039638705780948115235964218756806599276227699026483835944496956769315509113314721886451650538502554657007066250797194462561862081727255932008530390104869482817616379509177088883286108675937276953055695185817247526714148332043047135137470286175965468895187135705988920095378889329508723932223629291941335023525180819477245041367740005981831810660164649347719422793097275776041948056835733768930299022909983389294553094655747848690675022875558294131732036399420351589004238288996048161226350719660480050174153993136410561104654250778343562781970327750542569581121303816836776805368068781419715282179176663853131804276490911501614401830854927855724506978245368502380837052910750878048625088552662083763337763426145412775761788061755367214309415210449282726116796583628898278389227202076439196945711954920996050346394051503324277033647764131353600268490941620989522771574551195765161061223127756884491549684603218973529543963106533639583020479461969757271675071044209096167378911607577724851387027944038590160638784382050567449474806839098647733911834818629283439794483547204889324014783897843564391515936629099498181802101462384946299455647283172627742721130850149490081508044082843154064468541894230721266880108242965348358965132158865107226890972506666045410657769864748550217472296387601413838449619825122039182807448078089570648393937492021988028051197850937353163144376896516485430987129264717515665700886054633249790348896799404210735814459459996514195109677009521873798845532712996670723389501812828358435140457324932820156265206063902469799799356014717660800148617824926670110962688922709751361574187687716223325651574251805078452499716559219339402115301725243824505073102860126994147926224964972087581749237815771647938871315825146491752739438793770940514409606797321600709576686648698909280561847421479796254845171508666504747549273344443816327728059630050263334385204407670486699346018001641837505878815240570096001726276534655347702962756338497850992306993563445564041094712983265190760373026210916204700352933560148217421783650511190664780471631460266310967562579822006092182739799478907306137042192698986155264158765483090421139155749884250842645872429095797923897037756649263352824744520841521782873111674434847748350442004445152757436585351041851529620071761675903753900653442870346343968198868654738133144944314902290256296963547363463470411392306428214708889118516404830853319354880621859524020044518532883724335015037843193810031628014544397355643624771620678220188985445298396690416211376611779530057474995055276755822262799149871449180886658198724927782630086564935849135193877387306681882911737719725957345671215811193972247731837095416005910099646713516770791177008625357093277029142548423123928472304561916551154509270810565819589214397354815475152875306192215037666634839039566046870337091240490775235596219142812494570390257282688046493347190487726126227665762766596122953688867148739804467559506710311359076579286980834961156164608153610994448601921345921210318961584006892943255701328524139303843437633537839693912048076751083359414793633220083043689658912651803019242275175774475276891563471623477390050803024316853109304940278631342595083137289024031670467703154256881361277768323907604562048900696038464381316697875797791220501598821291300635404075116429204486254384548836790428808775743702607688435833405064682700334402945962868625182000440451718386554870800283298348325767028840988778030026961426180010940576592385200088049990739799522063583579714300542927319436613846002139978827031177515630729703395418538680668410316784218960333861820608426974807427709301764100772965727203069052326221462899049151131330147310155188412581800416876410708785156803399095276015235267935534541025111535659715906232902994491852299520986621892325069424754033763837927906370641349072798153089935332619068614603019687736047642080952616016161780730578662045239804788213491183729411115710491297444340331383422383593137096976751646554793325258180152592787700462226878363109095898101607187830705777320616787552943899712285236313067858555173961262759052849144442826114727270302788550193914534756211843807679088134881964780382408470615970928623883382261656631814128883831869697151827483735915477628129900733024501963994068494479043107448823260729123456342541908950141477011579531362228652194665245166302872690939106895632059112740192626199194765570150498444335045040203873849071161682591430673954166556630604667200031241297898999919966999723526162471514607301239532147085682928579992119831437438710647061500241106709987000950938121065933809465882154757031026650105713535998625890501187506440101271149927544407787049642924977516911937419906527170435808303867201111181473858358221987407296657131539889497759768985763901383322733505026600864174781966254018911816471555612537330109387549680579254178149208322199535798054872914669395130970491265605817199562765836633507686681268724991920386407060813003015578526271001931317288676077840930277017973651695615768741797179798577507428047386447744380639528314272526967335170504276410490492206746467209182169256806767028197246693412757721493745556928467773811630666478119503458900103459430809494608776320242636553525737048985918542716270961931045986990229290401189617233028748308237875755510347941422315326763160215271676945544245249630827382782711874573531354452891455699034556134901642905931996410467786418816903989799171174878054695063240671543518697710866219628837498816455927100777697978835372062509892589310326063670565442164493721002555013103830465005810456318818700249658476719604509297909918473167270341024332112503383099809618355999173542668973539676552007381245411759968616484831088059472591280810231693958902629095767526241558776276903000034411202795563304835332107547999731629261231808499698617930352545116078324963598591037257463748389931741319639288649932962249137613775290294520304872552243143916625553800157847081691079959252901780659603843300345978557391513473109125038084904824338079205697702365984498597640989892702516382373151883603716571189275745328432678002073116735043246251167082273702025211075557661443488776080029441426178898550709764809306503349199330451080200466167682575185588564735877554438197972139745585419172980393866578257830970978138926593848539826245879309625299708027976820865453997833285957402651001707143059100130843777192781084741540930264643446056644135118647078394936803964312421247668079677097435933124345648112607973111862541189356701677418742092910786664370453197139285639956782294023612327228142608947937535919830531554771957881174791114662137019507590663657227684360272018776455578345691220825619147461150378620788476942246294056643107831963848529429989924889334010049120319472833201215924541389858296839409570327403010436067381861530684669575764449841730506488511027641309232127803964010557790416413956469833185238808169052705127170151137527415891128486162745920594011362159921675632181437305769736214327498078283694757827613555190488784981985642081857216655619779086294347261004859117715366264880679908375197627159316958934500900420629909847736857781752453911392517821092648266184417154690235899469709416982774083465495252648179977897848278811055077010426954819075170615721765926056945619493969501021540938234557247915192022272804408937652099340024723809084335566078257173548394253347787125451487664167637156062091308107938189230204257337749750038057401591283730222551290848402876368155953706642731943098286127394882162278595791756932925514575888542567537612871193668000418830706579466094575565616707334408191514189524032811954809185997963638317237868693080325346517894839439185009192761811093531511021712290299685103753383274629011403051659397404450661237476979631297027950421783754868348253248501461550525938526622227437009698733256673134751216613752206079540541251677916933396129065621929454197290860445453180199823160261198122596618270924692610370710310367173798386999455500812465807563347523258745563237856614011477223992886693023175078181203061237457229795002654043132770549311484624065792368471494348750913177662693652634198232542137704959897510752748930339889640551622792513813942399622517626663246906089098189198993773991631477463969061922814758649360519736259768377721241992702016362471441627810581427206851546046607781458536991448540758553681796508425067509222562010664623717850084813051438072609664030551309651151179251171719833024654129532575494851061892803102764444533726536660606490667090939260742033967711942360139657940706579950072978577079033855263469920270631980997879691101232604284784619326707944329808893339322611285874835214039834061269031102942986270887882739561412978693161017776009563420862238816755187457311245347650137812542363486463343321178133238091790328787593978156348713996887408753392062470312991349295846916983842898139111244922383080499483224841672560110425257266785972773533714409680730977871079725789818381453004226774375876883849181234866702346380401100305501288845394165709417117331827802324525798342913309578064087108628611352098030084876434492784783949563222615224027675338719987768748953842998537750001361300546154518929262131281283736148039565850560289023026635219651680687932223700228995942865455283455270041282489580549359335390479104270461747908530745330532952378227685945875325568456386297227188165297151413069734462384943285457283922586596211146864511593967693281033593443849427217900983533530544747705267098122620083550736902604539021191379338952055685450440247862182161750841457811978811580706402253711161562987079925081626659859822721478390358894716509677685782673661476288783833654652519998873465636093468667396553537030847775111772039182912116074175979006148820092221989341291664700263967499966143429215017188129812005785424725751909361646543868383917981942585147807574742278060925292855768288203360616303341805886763886350748950628189149277354034467503839744828021321771605638020885903984787133939467071172311634331131745953461405470169166321881014454674818222495908034451719083638490398088412707670961531815672585699675006567266677087825912582124561244862292358568138939728949193908607954651969897936228612909728294893703554474195805270065824673603841766799143655046934356396669140020890063200512916808766225498895825260669464930274877031761895665730632325731839209375278636969289936984512812113013234503679624005914992886695533830811311009088403017903156093773497127728505165289001056537724835559544435172649108398822693778229682895493420775843847897804842497870994194962611377016441546282167005263627116901832003751822109577232867538313915172410307132917267000119721646235376899553489160506700593245466698236032472272004001447549399990884248289724745876628496805150423260584769371303521161745360022859649484194024521902282741109260212384836815870464964277285262897248060691621523711258365802542199550045296090191299753256222684579882837507272804371564583059492620572394635583767121699971811739554961868633253237478613442474939562288097231332589556184757387206714700532718890816786520093875136142590516667730104790078147155650333900758003049193329047613687634481963950805201287597740576726426777685890237042404176420675623453957873022315102935385891396232167952563551749209856443797181158684210364379250672990117254928403555205116486083855464480750928154547500635099784753708529158737719320724996994878018231726437972347308359074497447910293361065006857309186851881408978344920574180293707456806579046380167499942721987512835339133085472402611046195678535757340938672004989264405330730491430022365966301665078334662334965555822709466913705209192113329689357286261845082541634607243363029777871527688814976107823935574140326463776746773522668717226306284804836463542423180355079262576683497770740970630326845349073680741175327848390296118790388069098157918339805089567571974495291204355825744063950986890560883865086089272656380183380983260859615362385817024937763010700681463025370069935906302269741164973630921661571684492457515258033224725412269179144067296900969021668064274236730880614123176793762207508489831722954779820650329521919372269628797803168936200448151377960143468604192670157836415196776305123808897642475954949489590571581636327062297302983941182477629303733036440142258860374684117501763933092063139352279649794336729232623397067062822215378159825900136398550481362225670025096940461602402627758533588500718929160363149249044594449973221925096578164497086411839098982541725540294926015746916767682177838458609198350917495455356528491245543213558285959296088035373659613796395347087577942207686596169706731185053042751061235010224114587551941555977091659632361687204790844752784438285605196586225336692065769968509911198841769472526125829742170736389239908395224671988432736752757018951776643054426088782945021416896436212527331109914443690287301762566161623919505395071025372866117329663275037400339927339201518999046998984645776299621664849588610271706983222280201940507277979599677059221595955483597881659625710553947861715334557304457864807456930097702146886519976064815571629507798427484244689486490470529933840127151375967698014767308786585962949067799373407488263460497129707857997235328726061835890137424471200989260425576077785413280671794123189292250474671646900583462802235845389331398060795100130531484007107730048372252063912582303140547097505975502890862434951490204097147015978126712513162531116048739700488792163730433198122246982618645889454368879207532801695377497182543190853068483315400334790723681854596654545540510212567645102377610281071740701287352381272242716151052862149128005852785439312278836283796884027242468605131925928013122099622621764696118769889205005268147695908499248141283473744957728834659012655921351145085564049909390128490687322278098787661233022833674840335685024331649045607843293883183844327674411999671621768367016955651991663914829828339776480981456146862692747619848244135439839968546835783918540977224749169961678468997901500390972196287251934733133641099881325842514687618426611323813796399682748981941381957635952273060164339281977778569302442916580792538517333357250383331049447794238629408396797084650796790476131149887395569647118103593366288584796485971751480051889604236605312253722846433254873385232279531337804120453650998959696711204066315133244265905278888291464142855206760866314181195046136636909443720561159416064067329281131201420995260663594489051428182897202506833509848426016039258739227343704391962181674818686070133276476027536924315255009063059965882946083934607115956713217584554863955042174483125966149804831713659257306805214951427198255332143599932208495494100106718302481954664195430406390996480414706098202719388759574834861464081985063248349425851869507378921356252772903089290989925243928507572072359025587381155871920908085480497500960770756762386010234541245423958134016893827440091002690454621786075497897645139768133078585688761649466066406577401332429304348623480654161632406992605758633515265321538090003535325153827896325458514236853174674637443019528586383951051024410080228077067769703727532167742086327853930265010565419268365543556985053087489261528894309467080546286617913153176721517004096742069963673647035484604914432837489205980562449409224505983036881945658430879908425503366421960086925783937481877673745014208217876910994047965060345986449250548168547130031094849460053738260797741337889395538280067822947214275951083200780188000292530824031355517057935861598006113913872887661526216113571664022118393322539113382430641393224229741442934622297406643302070966125395134880430072500085784195460097879901949481299636861034651161698636795451753450897231221129324302015062333976867935597540819622595474072526806376130325443840438572995163762852880877332868572678046138023744176354402145261276888185883661046287443315104081160369938629581047464381255242466743513409922825419470558294917985693705808395215609667152471000496664627181979841901280661561897024861497937721659034296951678058041553442523141314718327677779961058139420750525908440343437425713044533128708039868420472381682242024356257657660787068184736639925461743453935594032748732112879387570346714766505389746016701038360906648315438092376920871528020967869366066799656819854815991909841629777999624057532797205962018023087430275962673508530952001374135684454819224749022649426730124012927584902079930197458221920362648236658619252443988224444264922035636728885314789205145704173295985389480875112990739346138027975141820537048989219669856094435297665454826486085336765623225533888896428834257676917347671862020972142215198427999757024185742828775156308421060279906453772503243523114913520919574068322511284536966819975730210937831899578661759504859057996525355798082325415433256008111797188090355596938899581276900187717133739519897761078626474907200285923797521550649631257251273212702460183606277189460445268358403556553598799144079491601953444263038439113569807171306199458667496367581780374412158212904593510737372908987524826034058989302524243835385787209541873154516482269488371437297858263383221695030321842606670568837215383682613216202867399595518020891847203475508890090438931224381813139623694566215173914000736802312124792246129354170264898949103317903485490915472508924529242441625042666240440860885551688614174828083355643903254433466763620595670557310022738599387223015096977891973476316029098385443553108101340210634110532128711826576349904811718158873049503835844835671884751176017920803884057237085380647044780788881790582599387238548978382177513098514775151744318724888090866689906179383943335188076810214587152104648821846948496405149583371919394317513852009313747726983053096309483374518125541043722868231256356653329121414560055270073393008360495486915301423034281222034937122649421336018361504191708821627749740377320651002126172898236848413746666930334589531117076241290706984845950906374957079923423911203446082058373209163768040280022393216250938330175432801111129808286242700965296374559342013486659613561800669794838905554641409663721151715536619837302321720987187089398583557892922576147644367281629205300216238771289840391643045386949352241295406499473298610677272419487416843984773722550075461226059967094825666357395609837190801727830796612604015727367165520607037297458153781390205291066792344597783571600663673832808965669127478503481460419689508552297139535060486306583633305039466351098824822133210585314138922665872288161917623532775820474263698886724168187443864393339650875847659513597770430640141098579041351867961783114155566304544677671446210526063356333379403976076654844820110630376261036733385493853675126623756728859778814254172377286284593804521854165116995731983341919551113164066158007683410481295199764201775071734127327133643568526616380440621859067028446911409372786173789054224213380251754685173217048179690379760747349169239055838690318715526845335482791475028827939220533274691916212949341478998753715401008263568387900176458010930445392691130725980890764046556538798372634898215591780511340381794175548227487827051588900235451921154604014889399204124801899005012555538779865253993824489847208119671015729321295132644868800469922607313300649453878699598662011187066974854375997759170538812282936106485564775430903712661139681590928076967928000840448904709456941602227452034424640975481358705473799656311016512501337897071680977063903995779566160055961449805029880155289749790988396702503783633776250758807313962263952411052228707678502725773350682183515672223704249251477989410914661195720668540187487989690793487733236016747043975674416924333313604656561817475031710770543951967746743821819580974290245754119264514686297710094010586413502822281767509724807713333782371035786775140548833722035050261007121296401098824606381212861807849895929505670769376234249618066243088681863130410702198317179775786245969123932808938950264752387940616090497960595567846933566111058882007856182615118247595776371389412804724401670660401257696618402581943869948873511911355719816197142512387034908418222252187197878947355957898221419183815605010318675963659136916937545957910487685244659224057961043784486869650992471130805834343545915283805439134489030282997013175707232976758218860214007594529679078036171242227904432174010242821070758201217597360714016994918201765489121650359637469148701382109238052098742965589651923545858162085657363694402834649143191108305738824719139312702386071749058636018880932259333804476554109552903582048980630848286956638481132007610733291603661458916150814026877564063531398204237432214528111790772511052375002520901128499576815621650224217347271377257733305306938205643470081355603545303158746596088668118543574213399567522727082845664064608947537976738200748579170910792302622747820549147771181720864050509367876194240546777446188573309386178751406960720664066344284900221939879275372020466804769729087205058127101906711289707778664897221935504304421819977659217657190629100582006949461844747216762651144072903006435006945989527151081426172299829706054917396324426362712634552825332016574375540887584131510162229697544050032711920677661959986694573980341213144551648347945539278832069266243280597831706721086195428413802521151525733630172140099481678487564580153644658127508129338422349118135829979258911890383514763434820956501533127544956319565978853855972997616909093408238103015200298177026084576811326070073075979521290765654529909042126911872782714465825789185802613800831002419654495497179210372229661419126129941915406393362672523051303242851772768264163981249126653940790616365630642101703187563226785566523294574921277206420463810562263665702600470598757536620325629196531828013149086181808821160766312402864234315204952851217171449524314067515422386659011452805101381821807045805889131340642611700554365817579467657962750303149466988133302411103687384911211124915735151032693915968201155868970679778350614447319829411926924743599629498805567388847017161170998435656412738550378849520623301875431622769961569126068517078156823447070610981247377107361657814962732901046177097018811957415308014999653414449843905698389553187294178558199475208024656416781766411443338983763784511549281118603505800110871233709542735220426252976290108195605133351658085841901502946710436823026000883206918810446998560947211353649580180550381535136706838162127599454761920227040952701325103276455698436748266435889919174170546184197824787876060996023556250142103767101262709780630147993584905431747995048895873540790252832406362572176549826498934393478189654495868637177893134084641348698483583301655626769492207051944225113624023217964832554188404823468085724294034599988995238388675310183706230800017516555402853097069361425385080849411763712489837637298820730319027982872427221231419694559261900156830654695044190028904061082819099758029942486315223403121552519636981026239834313988163461012565179381688623903504209695186130015695418409724792604002389286695215029494306833832428837971308892619321503818216865817501597789412175429654108620615195875237821573954188253104496544424234915072664694265031240756654080410674348768721881105541643738999192060479566980644343856589759783058793676940807421418254637634404022670775450047265558340105546440371946692372208661349370149397746789634030426126979880542231042811382539939848668035886708031675855350852910949478632431241994933635244310335148979505675820398572734689975112083460619413585728857931658890694417370794229574797782107258984501090440767549372165259116942767452238328495537442825507963292473061992493839455637582382443916249748495020904848673794747107800500964848640301233325726943816828960030348286644078776767755057933504556786202169912889821927303769658151906854471573071375525728339641220716002201484059651447108275575586189624348950673592641587953481118109717628297715926984900765505879083576111587267997444282362308455034550213435274495859075409328068585131794893558867441288956536212927079651608860720043622072616716759425391646886582883423139423428397825342561438981673957004062741365824863202197392461940877336239636867257609251174551859806848150312980294895113797548234458836456473157552550521676638772444695154096239460629403075035242641699214543358928316609311170825068286414283171267342256644929527999954720562345471832144221877218071617439077543208108990291252732551556797387759919853296465827308291518514604749094555664391836704761839685117396107569252854994523351503914254928719461828472608606132437823506746824837354654743826249245623262398474715892436831043854615975933333786180551063097525465026977803589075733788715128018687714383337706285219687680884724008907807781139718203501901624434783227055014591487699295837159574308814195454168451540511308339416350593421488916112919028811822401030885324495811868519628215686056875196254920964385148286931065454801193330525080193086128659479956264261103815974424826383211753734265077021157871325969160065259583701601827835686508619020692878985136190950287285804892440047492005378742444959322557212000778516798216651796891090796905766732120605237908360068391454910342633819718826017903089244188707536228171228310883887928298185214384137450718219322474964436113760250116230390971625472108426075848025664497990234561145128902169820062860000008686248280058089627274152529422170269829209339499821077040173707555662320362360277883498330281906360467784097610797030378338655095730708434859850887013862458801210063634964580927957599564326047333606298551621542149606023937279847030664644628570280376692114731281739268567552590848926440185793440014095532759152331282542030094970984408858128893119003387877444314527685178049439044976942269225580996032247809297418429049048500725257516056099169482728917841049413077973144351661493822024153346134567254534790605207488741923588537443480552581384473940178285509483972425644412934532878406349142224928765259299802757776175356626034881924728479246524443994014284723776898946290600999076222779174321502006654838708630990986194269848847999405088645680875448127767373033670580935905432531863145516665062440956805709360320338816473280908267037477797097283307942891283418301200197960152968657795196741512655327893439420366104606557547623994823484332930915048545518607784564902874225138739638746470687869972392094098861502425594065596545573802160961308953920781246683661487806606245584470049470171358475813053720568295802913448304377820548197535786691194359131349045358198048706956386366563626934030364952770303850427492493283678611668124308104296125031870527157057703982228293087605482501102356068190662900517177569164536071463625247560833353748279277425787737736407946258283856591912363074338764118033439961912132208489860769907178442809854353775764287786245372222513236184289065944559292852908809784431910890900906343835819709749957763162870122782305734875968598065481746638699718700463999858364362220501101480710023128707918334608085554115487386940076774301100117207389941239464749078356733180275704472978016748900146594152766429701794236490901367498903732302683944446115701942337783020324365384286279022375915101905162425737966967640518069335308366142501853546633978436191152796637524909031459961585557265934654369888352162779118432953119077763250291442020289228538298123632094177816850065214934137388258608497487567716533570490888984406671757086723082165591770143181672210636254481916664297703985242858880811558309493567498586365455505237306342241046708576506327173031581524599988690144089898676285622311923975134245487576243480740661753888984323351972457575345306141944904494172835223532051058988819996797188152743245453777532712098201061069349676047013659262909503096567277283935399100503359470836165254845035054594680338308117163942950789882574040284578996350883778799657472006237649209066115403925223554576488810710925648459387780660824239338606388370323942861607786608414050417871011117062643779408080701016496734718199098757287742948764431620355592470697604338928694317956115549262807811492036748622776718183531872392501998831921920038920495948761765625589481094453962216156361123888380486359637362114295414910259611522949629232993838397866293385121053943630920923567170595240187663563214397174262026275173150190685756427225489459141114941938697598423709779104786895901500175814886626121322666370360243510538736588466921465023248220729298223263761301543309265975764664077694369551835165930531273978114448041605942382586314731238088564922073854412774943512492765173422625187287527701540894465950334160923696521456335643420174387315061572983943483364366069379923348893764742450690977131329990451057963931818609645708273219383161440823387382160689833551022525335294960774106735687736857368471447494781567241259830004902548913625358634117908280676369386314617352344326733902296424827363440007310686380383773379017211344894594437639359378890746780630442690190426809488578173313754194277306793201301422193365582546938615240482985897927484325536728499784242906970771549187395543991090213832724116329734060682127404053761970575520401054562682085183825911542046537117885041911291270975216864048502380930329773068757867101684479329206982092878594184304055815651305972582427275123530480254762758620722785752378124082218578318948440406879614653628400115308043153848489236102263775367783517000063428985400717004826407659018681624918915640114649793610682100797804146444153375284318869966820479743690954688649484419757115516479007674718312177707230343960272096108695178958053410023430614610367113844176862934336702365092949684686649939736304034497774676633675936100395533817179850640806124556608571364309071229249304664848541620061535652568083609442685103770052028574455689726465258852299814748178543552876067232482606269170465037525093640686719174254197150580818420721941123917171416163035407459951964501996103533140998398254171993550187659158519507608806415056517490885902276844487989104683884600503973543180814825284744683476567232757844771739280136987438154552549273646369015732853431548680800989011173774707320943435368423475818389037044532251792308662906013075090734904211451952146130609512310196429870509974855107197814241878872878663138172276373775953367750205833292089567653584850449318210133727318711896635279923389814295268051950218045381926248341991066707375606068181118446792462018612472227555744931196850923338671646874359195598089349968406745060726870002432596110905903057397207294942892018735975054815648260172448117830106671420685589878205236842430653613190652572489932976661550176128280118944638544733055340243697895665970512924414243553114524088107457761124910952135640098607769961649150529727820180474015267645366126001293510400993965869124742020601718475684865507090788721786247487798844456474336964664257203510113975467353938408377180054298452181763111894553493515272958478536495209340942019027395039312486490322813761941133603536049688049832550186148415945808328952626407670329840652116525629927890633296297290328470787062365569896159531657262628713582171979724983344086349595294855856482036016081655998642257961046230784460487109058564356989294950905009037823567525360352465001974335817703606620654100507032748375219260000327309401444534384433354545337669777156330457719141900350306992952676573013526897050343748659446827762145817491016599068991695819921461662256705419269283929754425224788345499126813089528864595992731703086890116333293668579017934632054064143897029944328338008789583912257990609667104438832849792695249606897493168480282684106948648934613077150760225879655742329330233204141715908399475076395318285957073132199172498817265176205816848529181419300189851544075975543751336947938770457143909440091111642138120537708411477149507696732752699287284534796177595326810579314313368135950956311294635456982475484658624522853075653246683128933479437151078759990693273212981388405384715075846432158472463772785913449065975167467463727140084712714093142632340748170540674311052194049965710900336906776511307344988947057049930994810686866182215346618124942085461482749459646803779442106466163365600227718338762554559400148727661587774796094982982049635303895062445723263480383830859814547674663360161052968763738709322067493411555302604259342710614123819465887140234339893387284576378724712345782035571888408893369479227883467393452882118377798414338804519758448499098898032116735209838183975943179128967940875509780282765432433853920987067088239215162395823654346985831390535094984997346997529847271199932901932816133914212070604603477077749862837100671298499314049643347793148233916683544979086089961080229405974101426775408266558187210986849503515788551736999925222580592538614180672296856663457646907152348635704388849969763017951934766124059037771155012230426664203183378053101944457687709689376347261577615235494627108007698367106534133397193049056867243084836100969734164907824215316811916911064747546632984526843431984624335573403356875452792327572306109032216482966187779144647585929549767468878472285085497787052308284962673236074812174811068601338339014086505229397137105385105418181991550036552981266854145951226657367745617471657152036983661514938249499597113836892491123289344665099650041456679476172554471499983506329082191951545272446486911257200220331996749445096478182907883215409075131384664220773495372929483085102503176642560536600250689786166361251378730628308563671832377992152409936867407569794028654982720323984067907812390149936431324698043663773146056284842757330922330263670664591342535116091035777313509558974251763459480835919242814281121124010835788960597042300929289345587297929536289101106189287725011572970881268822818540601283998905743920558335977688752566299666553611598064305657615822760836514952384710970990167532608686430074817709461480019227508290066736812939976144031741045552531906771847992079514728920354312630603427409610688613441592074607706938204693122688960819580281431544469864461433405491553228762655469102117711639756013347148881046863005450427153135201834487087043644960728519119863939751395131200671618916149124917009136313515849593432589419684677690729505279446423425086329942716231311225310805896284993733554240902035225136251672110332237108984868846408634266970213408127099105592155809744052950086847757218176019817251441127646678073663206524290233817365789613467994488079601097978660048625707598573625482010511032158115306625926671519557816316312604444182690594925795938401815298339899142876852645904722675591977766721895224402854806747475402911236887598604294931948670976918901058425543722832054594156561454008416425681592985231743878806276027916078428624582925078744776352444842125426132546005999691506832497692873241943851043162925424637156789401823433420550926200551821334443152521771728961537773588360128508513479874235956406025128917036051967568912682520933564838838504461773351770653892788327587910531812757069537309216352723862801943917612208419623918510625109530732964060792129935375722835364817304940507567910087403760446782085905365266208205098265641696186163116017675129770055477199715670358460662526008338111632022114001987255923794454449532217281519425643819026686370774755369258330810007243247348453892144443529264866369657158412269871985828815596154778992395774974799583943006893181734258617637411993852225651670291939217951485288191180044000886398026565518352131576309476810175568496069076014104608848571746719953780076830641397940472243403374483186674189486602990707714423108032772596875871457752679510199479766897300275909203741032820069584076014224877786930120017181493028561586390354037344079296372906169875732948800736702075966310584359288197087419679558456847900834446343631140468122318157410044781251610392800574956191849664905274640753140005839147511513607724227081530847248043911669716113289118313730011725417206971054005606345521968827162321219885510635345121791526206272285204126338358619347098133394183701188751468192184689144739920962474393198470924940550374919994643436975768870620095661985165032784788209404532540144435441190308374406116677767615108778307075439788053907620623843647517109832911191145075815691593002056557889316415010349187223137847353373262041957585080592546504791192845390406166771782754798201039311729854190690775591285379029332037684537794014855765963771164382610694359265134836464828604432626249829110954544972775026361329376184155386599340873215760796572437743212139549093302975934255378028418247580478598914372834013823885302066041500525126339680560325521817320371414998388047523254370482161071494312791068121701952665647974356125238166962196102125766857389074592322909778896594315303584056131480184503625424591661607942715884229713357530442558508729265335886702949407459370165151014621929161695834541914049006597951196195069515180641197208913832067693700928477105612072913500930378085274264296166253245011958311222161715200232181601489318014306242164318377288953742630821549653123593041951146573918770305610361400229202268474769126437370634332216423464479134565118224652668145652615250424029419343595819812842203107691718580118929843685950128379998121854088370342961256965562581999845637743395358962449529784350708197506567357322009927836175015236397825222883511222739522919332059153748174305252548596678985462601217144190605786318690376021170950647568535430988928582418196037374639461996833364693386105261760307643640348345016497081964336660144779042180079556945814808795653531938239104878576487831581101442002155415962610590433957438108649989118057878910242806407260260722549543563233329584301471557444139654251527760790322460526304375519679383678906064975938185927599976599137609726617550051928363188831286636975161690819330963972723989266702981915747253786157984701609413121654688619527872755427368067673774792314842248640191768095498458423376084244673606474427264363009745888075145454449216196426356110629752931707123241016537693209926829654575182777069489712099820661145459837181243264995790723481453045890523718640242085466354373897886948790706890948637239530863173167151897153325271909273364315578757515944890763528597258562615794272709265913501836508528043975738262958498040671153242391665498528307965704896156680323623986056705096025423523195834137911042202752064743183258109836399830151218698476390125348298210903135590405859419768014429495689607918822255906972805774619632443894437514637054673064713179424003430766469258551946707112128344486954796244532672955990740030889905356656448430851067278853111590474434769575127036944077462874600467695872361626822133805154161728142626038362785656432808306928406482129354177763906708962019381439609480382458683972043717147532600460742692815294507976774092038078165748972933461065174156354410780115203445645208991432503616023317436979163018607699331601828476411047215431075980525964565565425516475475019020301821264210227669076443116323515730811882676134356354644156562737056637144252048598445510233927093898122166284124325430310957703528798219619075196472066907452079625118732550150211807261365742770564320636940964739150385123654667121545734978021709584876600961881090635809568355214586130571313268145317301066897487121459025231729965234249460674755643516138082000300917973288480714205421535441826385999108644802056167639254074729155324635941764082561970206824955086973827222331657611294254356658821302434135669618608863011453396954796029191142772832748751445293819995478277744868169800774945420032665939757922690920577614106859480927175687133647707921115334146862389837133466667812056351115851030468971260638291071625839247113281910944064102110532123619436452434727879482932889197383735451998872443157081737799346113528153628941578049538495414608238659580550558710369505788577891501377560030430030674435168569226520659096821556191368141858732958570066063638234100613870536548497179791348178765635755709319108706763814442811779295261954770313146629328402913524687547953614668815095344825824277502286766329720695601208077523534099813171835986093230794701551264875044120988644604667275205199254981498785388077924697575562764070377877326827267714110253803555782142930404175275758130290888124208954075677403345903073003785827225432227566498421431388575058781853893984893887745631247607030426904913161220593261214539411515408179121817438938964985719198733438977034853278152332246246998584054083736120915287261255192184049443860434597433817269016033690615112379826070568494628965481898731715920139501215681421043225960764467831533073233438348778969599309055067855754752658128069492509230432911098172108417327330598591691224650717195658803496182819674237523339730218005462493463690515618208497361719660950457768563473725808996688540471561655706505112597760145952715978804037008385611189401972034186912316944483982934477008623093446800182983716641737607235448586640031024884868270498439661817045134777411876283408686326290986406774497528955253572492824164298848774976185857734810298869115384469225413686803260679920621529493953478927801738008074157591387089780522025328951137840121568919384547763368834849069885993891790232968567581768956369274398344517076756987883497633017641933552745227284856252208278098510876012528757742294832613624523263657276935568607679373922839618030108336640610990604720584023817305610283676300052595450865576966568733437458759831799959557611764890567387918887608624679800342468803555575585478950940447887236803785060417555070834973323735982225758875318996943306609154605165556662107996206298384961283635811030281827881041216238038386571291966552039294494851123220637098774034082561024307807243830644104579895348851848929783087253697655914252445653640698428228516118210964274234191131708441999486034925981109443685324310541840752684665539612537224284792923139457175214799485264949272347713577661181647555961557611945342197496898033618186975805823540987084109015172000612744352269953492933714095317017345286009429057082200722675914710851484835420525576134446927862581567949041674470370801030422492552703081175256076676366387808105523543939959320602332496016014538090432816951411606934298168150316354510203676110779352347005053037654887618845715076767284344785444647050788530272517360446306631791183750440795801683935647607528952554480290944358860905461141970226232079170850846240698154114924164916101568390085313491898558731505143605035309527638349994517958294272741102740291855638979883242157188915864738082179022299804188460783535384982099404831858386008691793921699491416459067186331514361748487307606865798276048181753833195782754656135583826721075664543138166943230259084523105790914153158270230576237023913994175132473054619914781476428407336869623906180066969380571193074771900753031701689205510977282080157487010533494267471886207709491993437699361429018194888615696035056826849333785867257869117451638799017372081676685234248563363731948562319441608109012414760443878335738385136675502247909593217538670991674151174621156990757566676754336046620640277647414969734955934736499534380250262784954650027912533431486094035699896640388867559153537222683184079642519591625246638598824589972780437816278897652365245597630750266323539860523980341266593999446089539298983303081372418495296206917714981582559944885838271354413742816447134660154345646832542920439877457773415494577699294301210841938646551016443250701761513724970328473079190965314148005136685262110482334041405384385107873802638459592135181095417746317065897047957699411469941846733069039448209667668337507985364592327320301998661435318577461318918039920658221034718421518881521275766157717479301250597087657004989171780729274698734236459864314418373388374086991183066169186515256078972994052881969683680323632898026883795764730592738205020172430887084467995650741047413994720208006727287323031021609384618228881448909958947067837524137657168380714128459978800228177858431768479174190745188518170000858364042160744444557081177142293115390292487390851711407702474764796439918241214414903743814158467708712351876835808946487417678943601648673046584690034397179796172905899040451421358962143952365977085332430377126711544942779337051484630993584424798764310039158680463935220967838114253962282754934601835753225430068998136436671853558502318196538065831746455245162671599515902489538297848667896512366079188889123176079079838787964759020677786516655784735000733591667254266029193246722750707551765011110798966224667897962737870852930202007900633096722243140424698302420103519273124234624442787964061045528779828928452901356030399579198584402985796511906048018550996182572186898384850972939190928299218931460482858586447508024218613946034473976096148725357458853375787934698845141420079907964724570079015297240753445830032374026290214531269991609468037117608856225877971762657955138784179518750546815642620943950966952976739643281690725548759489534691334678203044889289306015940321404424128928679546371197168380138681672447968674439868628861811366285416303862951344024708127618951408753900802168737325692010067334088095152710204842100935800464224649169264870547235797274151693181828736796721910298599948223113333925751098882231339278810355804795420135491504400960170814877266827723928512420875232629337879152335940570610101668943166636550968202808534583896708458129815688573598802656394962558462767733928270724055602544663508859449669031187631612753030527868816474475324227518968985480550281150149050884892338084327488165366565078690729437777646892248366731912880944005855392663804542142742978365906369437585587130405043504260706317264027247087411108704424120034990827189395755455872910998502887075452487395811852819830273503958319497373718817238663299119815806968966198704280557783441502586243361900546936702247137120996297004444044601607854780394685233325489093008408645239059115405437463950657624089956875061695743268883609213249876275195808828247865626868989688377455334606826103794641770883410096389882746736677091773166816599944536796930422966839076174771861415434026108630153360029800719741879032110129754929488301838986256503333471401827531140783270359547622752917802506658431056104621127252434179580983016279855591272801431631603276208223735114707074895245180038935959703003955700986990953438773579255675279062235015241089267760361037484957445641276183227365547093640126529936129400476815069367991174493918970671807587211573677843319214190973897969563366944288105578236757182637854324975002485977122868556199139059231305981354538969411199411194623940222823676928374933046508217760911941213969133681534931662796248639486414530799547004863242265082922974374171033846870943608851500734817990987224667397692023464122475689837203296866003240678385289150311718029064816102181367018863026732299524249162149520446030289048698004680955372340779572363271634023496148381700837466967968768868054431506657735343793369189866900078638429248356454971894472525501762378737647833428884192972337968459030055586420279224363482492025997152037555386270348333470641442690845588849356469176742609917633242409115493689759899547543332603330222331829450277667460805199047476771359184395907262095106315101036180569526904728173812948165109018169192115101880774387731079411105922942083980956051138848336945004009786179758284637531827559416243680547476851149002692236154752325382679426401818104545173303802017518607112011089168917569645719103581192677029333122960454785408939470429580890828664762168085311169128474586279953096868709695925369128413479309842312438110099951279965511680455329427516896964370950234588549641303045322453303245424318476261359102546520370650593775418258488713362956446823341171645386601582770195765942515482065919490805311392793821653574810483581919111177792843589869996858898224162072312384365522233108328206979511580862426814655170132598732830643089430837430583747108507726314931159425630200672251114356372634262725351227976594406097483094149255876405608849309690383893200356583521862775193563264055580105999340302799230078344343318720622292454094852596912260082788003156587036082193398457595047303970751233910638375341155723485741235929124929977174802150621093041652812221327920442432474057396226020097906431322001179612559678541236098591392492354309518239875902639509350551484143187166550238386397605913403557479027973905780248750385002852307701879132118804795094565103043827604521527973702957042423156437837883534983975692865558537508558160064633658546155047240874681450379482322064011206102588005522218724283587517031744083526668674684766967159254055950950672534432325919031198523974512541983789094923537770391797667528928723766061877069115724685405025161790923591901970705905052130446817492582295317128650500101470673136350088412406208198046796693042111260272685431418262245773061697679391901794936206324609780749036871622384188053264262936655314021586969413607826908111524755772704622820414439283295214133708152473635870809631767487610899774046531863304292219602021187791648335810619997159616907456217629534199867075903381454002107782503965399904145597251646883972258184107190962485021946048335269159032753419135343575114448573808276441759846047731199271491960735006486888866702775521820050369434457823961136391630719325518421423215426730304855698121302414853637452412501563847780479120208763929771111267445774965695866889016668882720727468542028448328692751766511798816584771400361551473393007692745892514163423615306551660439518020143272765448879821336580338000928838729600989647990762460592739893727593303452884997837792345485615183470887669366479322600537092246023463121080167642382961469805855838551362134713761931822093210148894007840929122564169767174284718074970980051671403470322782212527880862651003713899696305844865544745674851447244309603380464473256489093768637039941851834390631802892395147548667714107301579940695471494994875724613327848958048821498327472976517771592012803900104039042790984001363217876588876536762460212681456612729801102986304723294550217011626151955536270843734269681004788809904220626947337010370875257865912826827569780953809790320402932461933104358995108952251791181492294883692613110502117133934191317409656993179365706647603784081538966961188298675759899773774014581705934634321043365707969488390132793258180925920725126526382938463762728472422639554402488115392835264146418439118422542433559367746131948444141755466296976736903542090061399768269213600766407355884549045139887254351481270363155656808102081243454686376733147550224261694072970418294524285624070868213502665077166098621856978843912583505743942086783396908956042179845434565604164980478997493254752115598116610953968654878499756818219706291126530042062314164674509482040716200001707098216995013760560821235149614452373015539676186030156989212518673692958337040131998348732235753777156283228687406694630124536632979348281653487149341336093718652212883513294531814108759368110393486500679141187597610452188839541875662881910891854034782719330379161969694142590166593322083107597196750492326293709891844132663317679108960711629866764296366351943230718714623183224126023540229297852996246280989501468937728134068132029984245370994929643045855588503555303834807028801764962462204176079940688582706126101461571473415548776073772612136784251557191843506184393489903708013087327466456369149983286482025675445395726865955098033178909754886101585916388133564325391531617839651673599223343334382152157877635130797741125179085731557086921000011959831818750293360148991082860905304648146438759745221805590342477580308266792818587303339274376561181861077708788517436393299390375747275390026081282408576702585137745131529616210720275840849672519966090704559253628510539374617842626134264663367291301632530500471281121270384504146059327728321173145937721315178639539907204590132708464049712313715172869737477238902576843785132496142037848391352731387072973913575950734042950777296892597465661097208931078164712134919221655215450297869864796476908165212491690108461494638419623775714015082006507729977953360773460954719291384999055741081204665810607349106871259059978692128583473133488844789237709580644340242070627433398372277833482203918866820649870472739621194927364348490554349106825029519230595347317195912866457179435323032651836195752713914927185366662717929036723060568759416014053976337988412536570833595299753613840603566892729764443485359209095307608784278393473940826987320263474534878012182024841386385306562311662576456992328558016362519563245569216908175966469462761054732511593819632944227088722285229703564404235302849896777674818109440176073000437521927637011241188672562224070269388497838343732157700914434107953235608120227067573547435300797142017171112148523296768089392286719120812022627957376012981150660868268103214026957192970384520804234464454905524883634950212429331463854488300204066238865216796582616047446343799281341679281104745992321483551363386140728372924584180001458729505404893026613177946514350388302224774463891859783222798232657153035221824679026708557893797214196042554174286821182678705325058819089117842759606589599064631185290144125322576265236147927016413357464390865845473919383739239047132074759109096670011132420927941542844978652918479117654010158182869093134095468636700561058090654187591314058189560812789451593425265459560124653924191091867507506913954153593795290272476336214748463871700771892535907400886349668014156881265147619487851720266744153002603254444716514814098343288176105474642375610947569055181061836043820515599497920505513075933826214151892227099990235144688989276924082345998797995824585152184156932074433758841965522622569093419690712741575182505904913560662875095616184585199943612784024999935169912569704932144159697384042822039637015099465917428824722016737779445659052331925545923257983949266815535743204973762207300990829760338883937136563267428175353677693669249861640222457862334252930596518719631205696056315590905911435245389651376047348118105621867564864283049203221220380864026695177814835730382049732203977117057815298843950965126584021921478129343753613416633597737904071056491991714954035024637777474545602667823456756195173418936624922804512792109386876735034023261390509270850963047415151534924293618459927912724910230983507453861831746373237885032490909678156268742865172208473125537081588598089206842060186112522109064078856826370791106678287036100348200379897806521535860811925397413179182570846411518251568881089552114047400944052871723856600768554397465646057402554087632047882894744322017110740550632428505936885810449268651176042776314472694835821857776779905448118711217740880037246588837920247220503174126157829808937722055232611245345416040501373732941626378572359436083328051007622343274536033141987831301106656705946619295596540203517626637285090456383410043171918485716682301038869765054232334904413145946580625380257408816505047871864590394093243789012589014770638645145227366991796898679186216685082354410092980872579944734624930198540825138600099428473943179693669856436001686543503677889647830350141973162430912791019347834584720661015459059166281549012766794329930399266551999195253946911632202915008230032128908194853344897400727485229235556737555290119712577968530118362806141854745733550651290726183779743941674276525080056731925639202821355855556211241431810763507117536760575310182518847479051790410232156636571084422291616072122740945807612951654175636541328558882087181819391808900496506264590475142160042470117283919687064413541883738292346282715860966061284640479617884071336314351932759488529219556828086246910812445196742966822251134759488669888462965311009520501098394039792924210278442503665256762077342849505487590404403474234278056941106618028122350964942781866012706816246010695991233575097768981509808021954406998348582925921599538621193680717960473581832920543016625504265139897412827383198051357177392298172811483926848174388185354025029549538865019743680941721746041172196171397373767719637935477560553291103224488312436245814469163628567883717579343078969170934178401464328221833790560013828922253601525686570087642804136262459324526431461540195766609745467300056003119665173175717239249225254585128604142399999971435540702061404509042707303742050159483598665384957493620892137940562857972820421936073306339584684765933399259910176038062285644382999595496048174541925038401130446997851615208751061424955417585484373398961018980640798918835787742156177878731277248023605055234883262165528730312678900915703499642251125762591610186509616289381602096564505114084583449519610450321603255950171159973648107111524018965464946550497508066716596756485125664737961835258215610462765921500118159209973088807615926947809079127049630128075944273937915853418883435481486592844725045123715319294570002623788468611375141546733172329049159619307333684377426579695598299492532977987575377182811759432441326159849648359522727689666928691468711043874803742814187659579945394964039276043812716098386174140444316432235931985219261135342924409815231556193215076285750948542648478381337888556095223556213303931920161914852179819558745613556834778561239165901065042009701847713344006534024207346456513772921749216576502566568694414955193221040365576341041362457025542247952732072836291028639092806333351292431925667845384461877338685718251463724751545001373610424616820212292061360311092189161864668514977548948420162550736577408924705097059934571973479758145224771622015099118605691705431138936890722749787068862881205376791008830127959878380731947649542384891988464895398729160184898759725267303836468133759899366632743481381839718661900259788345194639746595463957173137252708373035942212235606101361235431070654014250140024055750168820754910856602382789397303088063358491178746827671043945872655311030394171256288456011260357041575917366439380446383902165031480952311235733377412451862899893043030423264505936577198828793799118061843692274345051055686165163827377383249221371839374940196797374478990825809366685538374653200468631159547156694492096964419627086846510040626658378833671036412546067778608539755938692364197898554444070884316731085473658607900757260203298002632799933581003015989797156916147826141151999856258885598297646540485938057741944244141280526558331947782443986412664088921241003315843269396342815313743026998885222643621388517009329634364068019609919510659199119269746952230862405943692055492113777954211657956716892127924098944673980450649855503141622086110164606237229292159727833409603969868965414389890031096036113948177091476906350141091932323333466786487057836363364444221780931407612271204203055514737640729483710796344099578381201657718549206673807311987510050649877529510439130843577525727191927470874362446682528377261775871663922547910238253286539511338938851250859643624908428756865642056310220355139590558297831029759419313271279539627153000294227877948749792298755531730987815168785890643371392333449778732376273385603788112534111151057533131465817404558913539404065770786777298168927590323289625299253101100198288876899893589313758477226998890907897977550295316186653150670418628550069172943708377118193890963468524441814678151745864530613577187134244622187351736303348963519889573773482254196190287795054224351421528625712273739847045307979361832778321051672266590316733543244444318181518127121039451455473902535090713260568630114801608025226080292534140076715944859103699007164898482010694869774894291254278010698262753795932887501216941705356666138429525291002628847055250643501189906710530053759398638740522724263771114549181216709969846015527466964215174489229928734302056842276526058634713530587589841754121719791379578753703621262825259725392457462510698169733153525788750766851512065823429898054604645474786175363620309662656689682932499184802846138416972201896320228030090416829462325272715850738333430945239242833874122411404664823839198907538395143898598950468212472767719176684145652735902187245616962846456122096211144537418455466759882238103851145201383676123275630773024739574767044177688906594502106245738424847843120494861068374353445841825912761679035867651290087912510709562597032626996250022043815650558890468231144562184045620187823510587051890786200052246375446574820799053201779609764470155281130712101332729841287577286020631725347186840179436991443658899243989053482838342245846712803805815998897392892868821887534944558646278872368208713927811150278689088313815853029259323400202773804570394590013975405834395641820441514520711939276635390681476585724853287723125981077803692684018135750567123222248751976568185353258367393778698363370246519396398760152868955819408066932555400742549965533119129192357680622216936834917559301516473128492086615651748768188828438724624056679088890211393924771092208254848330893725482009230237453387578762097614265101260690796454517849814217510964047517560060037087597606401352667442575627550937834493634053178958535106145659949922681485632937147598765261250760772308800884183680476855517743041690349947862676712710509512490470423059184231941662854310731632994330239419181000106436159502156570021421970104343990699193584662158798867965305818325490791252641018095318261664615731430473788679058187784655895640648289914848763029643556246680774851491713521151842991424438659143318875870574781261033924766805309806544019801709869486141980516816837624687446213065994583589035243887037112921946189407578747462750605767992727285156258262255298355007187313636444525601236189207701073283587281094329320597889467815740190879584626937204273688937473796151005008484826428084683931462880797286779456276081601293860803423167841933175002516220860192808635759642711004423638768544769065660652869306777720941952519317687648978904607492415686895353882358816646713789410034176564943515794828043327644079698085544422091022842649045799149089444952899891726367906126794019409510021074160517306287687281772265313672637490649043990534481707344591098946102079828882156870962820427671310243719539868713220546092748360667208359348526801363602856259538812031179487302813721272400953981564090095319102528781891062114786215444508619990928555163667551237852178483631899196886274530426023761923156222659594989350405961154918768245361287341533546541740672031878174894853960758850492387059481449371976561605111581238505439939474394663689313592970779889233911964695958951494963547759768204084713637786638933711748595150314274536453721068789316140808566578558997474443192375804913690694259076387699646444751937829512704653127594613223733634652091834271661714289376797148309439100622863440178499845293269524987405349879761625520299960567654873691008644638075999349437446451396917625203945151161901459887100254815152553590116768712127968741770555530282178757202822487604793470569898878548840988793832889050174572678885489912513362423117911672533653046780032715316722593686949487483985873743461780510173510414979762846416245476424608526225183341583113703315806571700962269788495251768382551861942602658254776864565847074625041465442897679939999003249435272037346530707319650690676396828440511428231236261039087068925702270560048039458456795101617892352273814656953705834810948378188929268399870681140698130541467964389065194100135347299311674239620311437502666203527599342830458183940694424950832211395333781083927422750670960192651116684920278944220149243310469231697016851114160062757976422389521759035216782032060162743707280278716571177911282911933668811430549499029818636234113108518266322893612453122852185293370506244619253743507353217336870616273005201051422281017431733887490872397475053921008135029759435234008019637359733009266127858044892985281779709134659320788127089594188080765644294214814632042057828593102398223619976535911616203964215496581065998565234838669353041569148953804297724385138456693369922859598862272259201799922644379543016324624506844016069891569224097854498811749918645593600367793262402110335649454336602139155434526055044869960503637640208127322244262410020043134131896024636569025943154785100518112120843338670302118260015727313924184982374197091183467978017743855339697498681644303160585076955628898623313648358128401807857666391948124467144320349037323501854175535547909737555379255972529517155701767528005628341229149326672031305925584468584999832353266011981967375289797446046575681597824536317600881413349606622699989767564525577322847907510384203653210923862810418500736354984479616060197953255020746046109996546962407162234434224744049358427884031974558338999353600109428099198908538629285439678420741000497023009718356082325402601810469671948669817031517509034033376775794584160196568264900161260473003018541688219373112254315582853626388645010222603764514469784487693030897889570734433045012769666077820365042914122630393209047618283561480636024988043386369631137195969844001065333914790463753525073560016358677515621850700947163130598547621491999649768572448868812064959356577906380860310830824497704543707316082122219009496465638172810293036735888838121843319757201300525752621188609132688077436592553106434428320704198965332181467818441527256362282070433953416529044940625138414860819106432687457295752488772850457739979835451292535422569898726127301585506844821632147733130276480013023815715759545587071405266715715190356663112982979290117527180790699735561785074004134336060526848525124155954622797528731981987242361248300799424598828539729920707507973775116852048335111355015169808385353255786165987485204472032803843369033520158820004333803535873774478401674738421787364653025045054138526188400970408048994884530068541895048532795166558106892398039978116234510775719662976140483766309482402649672211286792033545574566007550278189135840115133189716959875431613738672275923893487167037034041360680304188960401992494618896954550056390545796038722022180765286866912937214078740022789171072726086094540803099737687326337623132529002416285757394574383736016627009552447339292847023744898657893532880623256496443134951542752208559558110659903219216585500336215551348704553882348063118708584132898881093656746652584250136559068345538530010006739837935775847878525700971093161414809737923756257701536494708415938569264040506112680856976094511764912673365487144294579583922133852860510045684594241855456168955266301442407263923644844834119171001499862612173443368367181489009391386382542626401861819609338532611003109059444335593710341043685263524909878585150925478001508279307227251590417226055465334259562997032072203334506587318419731368749680900821446293964289477191991330330496871778927911014990184461285769418125324795902881723502723810297151461099547402441582732093358165774413012043867764232068013964824310985271569967255648937176116778935852192577673770386462155074212752990527836759252820570332914489711999842583359273604789202270372623243450808892176044789181517374655146123921236918726163902358682498995175161364739095859370855018359151963669082751317939374546870907189673775295836687757607804777141064739738587153455283165080068420707000196956085108231345586595972833702865511248480118211228771862166028818545696756053390753565364579895662039919453283534691858144736615342740147938855654625712690334600510615798166743948013882215013892031843264759425581998135638192671806464470423880316090142490608315735362989457246976443491062748412108776501139011376135139127997124878593718528578489702188664918656994085619648288073474101752050121347095868244483251870602741189058957424680939912857922254784259450410735134697996807198540878100899637027728383810832356410171928890702058041265895993469678939086129054799928432199503460956949070790621905706411900177739683587320055604200097972133351524442680858554852610985327495330419830858517516729330059971112180641535229350486250449778946197690553764659462354145256532709847331749062118325545391611814361198036983386052512011744765365425871084372549051763193954180436109729257047876090077898706921248422012738480848628540610591773331322278484630111731185129928592601180097557998151883882237608758882270562640054463162913851950475599994678932453579046168786028193331982264054019969753793990232869127970491150884371586280851686746878566413417006230462161544656859575918831117063535855861150341155994539768980925872300168340483263935234745378738735054200922071310814700590323325957814217722962189309525439998966094050188160447522478882996704403812225913631001869166336917787122147925030760436628084998441754917931645757817289428586785772011866315635024659395938906808372527643334761324087870404471877067000894320003574828530107904961862891116768784303058702781041549277758625726659884457166025263944119735142102778434686603921032557084341612955911114412640602948570227081060543144311909018554140206762935705543103166010840344702038122832613509505236130240167775691588576597208374971393379437206639807015429595813939326615257581132824726202263200437235703011887458767343614121295478641788866908813241846068039584023102586049051798479894770862942769314332159881062761388232097316946930984106612173276945598773245614375251140673693468662370188408445594562972518818208949104566275270314039585231256340073838380029093162722329043137607466385953560651486089818817860009698304860004662404089898490415956400990071879549444525937659058370894549759620330196601443401394923717581334836577311033057832683182664509645205225207510779473364371653417431199179814636255263473903110116398479279870352031680427876572784394358256580908353156322325746757614003250999194037928852153142498929830872733110768039238284487854853314702054513939725805247684678025714872594434908507306498806787402329001788512491175857858355751901411669596615800190425353967211827348005068210408501523590662399041902889065425874302069568156864455509594136831060760795864850528528058709137280664527809185594892382965230174236587308056183597574419122399291799097385687991845684853521970583541144782701837726236229595342243567506968117155563093979376535232039086721342197892104570737006060211721638567014566686941345231646617354888698405602012778388819762373589424820265727108294294947383639087743142528627602095036904291386487688802320365231856009194227079322293313520490093724956356690709340535825926657921306974256821367592342566203336477537613501729329656449160136773950680912206438915264981772717878342269956274388861643565771515579848746363582804178138872235232032331777570314529038511787418524187742181822503093405009461186556847743457239630350551971918371251697833735231271071155150554941711321999717235682554860411995191392441060550731873975118978087486718734575142769757408566347425955919078033363639375076129942949960312275073126153268179664828507813188099102757026522687635249341108648005998245929858142617289325423449773971057860761523149141343530203120610980981325987390844617784551295909901091886595240175935473692351375046273490452810038034539041766221515292102016358878035034654635480265006383995608894427079010558635328339286457879320155283396179966798665914717473283847544683180543431110907102015909148692821445986005399530898824416461090789073799184002208038139288687412691969196892336044165064612399251549356155446668392515818089540962342282420028890764883378656331309216060256155909800847100662404710990257824732206068677392111107405440445118623044787678008678927038368498654807349220333813316832928112265502917092929631824236168573356419343961021261769286715342712951212054090025427248620448034384421760583663626347714698825923482770367333747520896782804947016233856136250467849177328606309317297480422056116221489849801715185995982833207397259568750010041710425096003761220573340419682443406664861945451369881363086238828846955584818261848388057807126637140987626024795984284321567413418049115504604454574986745705546320877562662341479507750751146296534434726047266295523694763374091103230940031346949824415571674767318843824167978243566236141536926788545615295503606587295141124581661977416383420878413213708684167554798845968834717773890472460304782664869403490671042521015556398228719001496034362785720123611927199741683452114731220760750465214780897048621085143951528010116425729195916502532241323330083061732580722902574501338168250738895085161724088496905943197542425655884221596253207890727196128101204279477014581767593744143097267919527810889665280396817948803828660703109495734399313815540161171292470260555475948733164816509902466048532426798189142475570964451500633670314453972385797156286574932075887618036217514832488524389473514604487625188750787612474475066895916336142984507941665736442042973003673062124353752819464973088512721929008279835200008589112736813630056117195261870945914422969240243461194537488354505001530529429401447696993978081026465308446685771665249862535641950767407916965028041170608744409872431201513183617757828545307939063234032465668511708879065751240159342758006126413519859981712863658535976582671304177812576640412780014409064978585261507176204008783207323051443554244413814579517468475502128622346468813719587861465339054342592241975294169537171525190624765939991957687496909098753957018594612106712842155057372022905422478563104523894763871673211783693041453466997563576392004028204576284074136091532308249130132234186128224246902712685958060193338149540096164353232938891532741517937097456107298198935638926797956501362052565639442349454594409308276406288227407375129484188764667134726617910974059824187553208998630994738613856484573929222461637818174597598798853679492492571433994848770835770994195883841897932830702855823184586751990475280910693585589954021889375733792883081469658812648510400354342242962490251824900172328526611837321575747657015858143253876301881582713321697707760864595060189406436450626970876549617528388067871520626851236985294073886037350823657477081032096170742840408151975521043319748480064864476437104228921082212988707293685018411128892191894228712263713092327055020037436729020969912237294036263620969794459408014932393779214521767295256222605628432501531771302452189989047864980744841517652344453046426874650258735908305795668838263752465032395416075385804246732815611039454421294046927106906342412913849081747423594189933915627332787706995727701386447651492279379229574103616991751394512904752344040140634873040331704328765725721936160876969516227280071193343664304068043501667352069577235167262707699804862606142788101592924552023051392842942599892931708789170917753460699945489321194099069049528518327844084688036366190953579020854747912744759210264932017233766282340179892869342243398120235970310856240755974007195299181729476011419568045001193600351159216189087384046598997398365046184401507493098533695746898811034195118411130172622374334981123168549035394793491216596988738866601659194504438386560475319749871447235638143550848494030061831143968521517732557027916806515620111468641585720573058306592576825348491772284802185566433825408139719132228786629447414439446486829807882918288233017820164272016444053769610613661289630312766005125992404789395935363833352723420464070698527517589205677061128848718695991915879385316887347698288585071398756633932156175155508410308910061046561969634444205172718545260909702773427600064770683998840964215053981766213214177435056660354868508709876078183251256555155820893597083936660458832747433550512171829610285706652408255600906178060142325981708324413129314751829176660923507027873122478965767553487749344660473181494606140773176967083990108541344500694882268448967191133344042456878370162657765152708211526957760654273134097827985106563113361067510426633529531988836488089568956128209953154231809500219648166691690601774265580124366809502995108748965515701250012291114430604893475551294221867338357967500082817705627024427882402344985954317592333437071996646387200002255047898125159246843778462501851812292166380959813920266538355647554292609120013037138396305752458798257091707851615281150612191406586189266412167040567382159909288495360574931674459704207642105112835850899950192800168696645351228830087695079170504609509920836334404943576093265403403031553800389693331675179040974313714057290836652567598795188537531333198434222570550084542271072571737306775992670943223892922348942799379300689745897535252321093044966393674609955394979033168695950448625501954803756319841554626525025584862149262378963852275163037501529827041934610685378332771294782703266044445947330804863600278202495801104465476441943621103703231710936968304671919216869631196882510091039525808326716200134208784234633097900166278175923693397155630303179930470855511794504749625657923022388501919370420857118224884863951296403135113622407808564018285526680987861479012603642614190204214830806154728065850670005200766656428316400840224479191680861731227915751421457919948217967553226750230591528406404469584985417395122335588410699171317702118935270910957384179234986710603548533765304976501323446448208587780011001381712555506360723858523501555354424968468606593052320006998876106704463595055595611561499542845359596605161109680548525303566591472409796782970696267852180609442884237397196519133264334338316343472020394272159403060196725673474419891816612328286757221587291728211747503230791753058252693502483745852228845890546716073398317113463181447852731768495222230302654210185280721612588986751681552568400693947705714315436651702447348456926800441279332378994069617105065868034414985853533362542270162591798057870351039870246221682826177580360209662150572410826352273351470056011626632772497112353927974533632358151615137629489362596574465811973726326652104393302332347782951970516317192457512066006415738893801819119251167593072561522971474894061275122389457528555429822596239853385569594015160326630908146846732393558021915300948606082189610723182158708568732696331491312666921636098624636853504612803415368868425281121609865060057242054738225048516328072265752145589113626294634444492505691521160871820492080027893471360716024259465848640265673526701444459995184659255031880431381099455888532647062635588162397939598500940376146635947994421688138435862235397470246247154660017983151090986275333981974300061766632241861706990008888040602285666781852938824118677407258042181364024389811558382322917797938637423928055995913341748210391923339997726626211709919395216143321915738993782751482828418480779266844377919029956823268320897678595571704085604452828822998542716607227359896361833966949356861363881673631182435534516860014970805366726215731735851614258233393354293158669848708677474838071618525673608551602808650903576050188659737600963920002035563156753532440897403982214383193091746754649418858606308738560683941588051855036335635231650570746522422562694900372505335029740214736270797978716790695557717175000127228252225747076138518569737872973587925979612329803497045190504055449490361305088824381955204365482465753848896268766335289751362020610267000531849613252060039106485091094014272894531508036473985256521144811002116594541028577110623365215576382842946974571461085498295915526341940839706212746250701564974337205608530402982535851544046576598597735742047192983272796949856122781753374961224544721746750034409895742568854834842335850270401819252676222008573959712420227615323610990797576749433761968745743245105297655179570589734934025014685744963572219898256929132384568832415639662857235446835291851789828633044451413659171737414857337887752308834926803454112015572712808069658579570360150160792225226362275082285294735978598977347746998476488324506583379962024422201647442662180053074246407514912971912925296867997044130247048034670474240874032185005911667621803973849538287214528596475377058191442247957151793108101603162074657966361652690253075505320371279848326194726263745052098354680380389151623295394272167846155427625644430322947046567679804986043306718741842297107242617065479110841851612090918329517293779584046366081270757335772851020440403100317701951817203108250073509515884279336000798350413149135511294049710747914913474492460051479174124323930973822078612065384425150425678953130075957600817083372575138952936559970279675020260642971850222930929622869498073626753842771643142473859678274992440447563469307903681835193523985919471088329907293863297371609095360220735371066262275822011232851628509980780822209198562216775800098566942038672603442733697404243085060101900722343093661917588317349845892765707058231053859440990165265826656899054676411973571356501203660651675305581797032214645337678276312537588981434790341505509518068532813267243120386980620169067012075663961843727722103627406710557638484450957721039483853119038790926935468568811255333789525709483922489133262608198429572581201831319137211819984355947079445012423491818666361763608476990113095540784752577815325487152045602848742567421114182908611236718693167098296670035000161373148705595380580220693551014902050588880451096061378598951174171318976349055788365123376507557664351337706153578845933695230021947953607151000325240567520173742848970257647675826952384976226126112952174388831628116971722248015132748780232456290143230936782559644535459543798666317864157866848440711349136884110511127328703747368498476376172107912426782562611809143221013105303105558571671408293838831993418704969696423467903317549653754365442850274188435085018667061827110554061150797842377544028419423480407738973271722514956282760601942247933648249896032694228835646098081609544774967110211326217646336059230754863985905942204485989931180669972501173684941253520622317684966386302338738810889547340872285451840585218251511435798279695420349754649403235595748576940137224277518464016744034955116697231818156176790163102159814504901381168069337006877406154379292960515708872576593707043197265035024279524649821342080390772623194409755512528695917433072317224156702969709861045909762653634598569584992207063083246131537738984585985081228074233062307089655315649535212235077861144880578767958177798961657176018799561112813447197500854558594764528992488623808597659118472629653987462168199049609049760877470811320646371195056063531474857957501764845712960533335736655042913235521599416552795056313538860873283776752794909806689078611033398055584495675424704117122427658264781831490514730337247790734516296916163130023762338985671190667749862001253443595911980100028650263754073512072485891975184258138113877034816687497383862475457781346528336993842140362717121404760576116488639560146847621888654398630530924837743670297057143399848476744644734959404949184308474738511461169629129650255067682862200856572331837880564537453776288054932170110472909000822871490362149681152554942213659817078263571575603741299959856601395589318407023178890692049374458185370629992686221430262175082994592504672596780797620544458827569892795205368409172242265879409951520312504295795385284392683977663002099073960238772098794394117840566001262761865951744361427350765083817874459913882595199912717962885548187270431354748647906265677309100814391608353431425360741888984583879460645118365405620711339325885473882385007207128938380238191569568916447211536504560299860819656074457651916274501182597669718196359310083367153332132937367449366919595104475714967266894491053174734628084703454729378864901720551196146322434682242655702189616632187448060100623026534329717125113952169293752232952310363900705850591945787238069741272932670032772873923270513036048924987662495344246792695292597060807742091606029307137173834611656982590738398277961952416017893595220794396175031788342183650551177878491340370360869776383616422991023507032639245046310066612653003476926178840540497428598547078925216253596173480764809551703726835928147212790135063646293362250596837263505103566862839575181244701918011514870314104533027545259829579154956540989386930795833924237176535733385173868945239286426674692105735353377678022057389830514437904239736790152767542624033688938394528604501149740827015541618097503045430749613231909200632671168409168209379682278842411072851145479330334106793633886846317809536520718513917112308060354762368921903757363547913598790607242629705036062172149526094381007160920814143854331236008013005322889399355054012849204940982089847670502671319776794624993349493057509608099382360982678946505840218778037016620801190141114465055702567985986001750923516747737167323302080486011653254796412084782190780737599605481249225345790376708993899410864582732380395648650621782360696451334354166664289336104835711306948137729564120760166746995274623421182385684610796090945050626005949551480068398131055880637511606228975207737416362695082143085767702438349859640070284476153166130774285352314764123921676108814903732856655980115489331323416723271662604183752161456182280556975263459289297493633415256674171292568829583680132447702009893943616741223910227726578153853164433907363551737430249551400489868343433592720118023479440435201769053586213759969702139085414914309017581020942478016694330042571616295088523179860047250271024514600225568704948535530643721651516477954078442406185920417561863625552585609506754572587331614509979378145383280388596209570567930246103430771389174023110824703741097507634718257537951203262031188634071944683409012321711434710014790243877147814982989003303199371454461684687394875526491761486271879049951323466109446501724341326746938051147997646296687960166546065841314990830329457679944466410029921992949916016256986215089238797427404258632330452367943776351831594697649174941278370459345055537187475129649134460324365961370980339134816316670706569995969259145586731563496009915056034879145841979655495364825006835919468527473385974744584956989600089196830998586667650933745001115045562245740286875810121079600373763379724385238173995326772154289691987440632175811442931642113900420180246690790668035708755440519938972600525285218867758966493962213172007238926355360877367530972044757203042328364391029698790218813535073573762723245455019221268676757732607902161226404331437339505235523874178006211671198249327026656572952059407490568058482771950756467866941797370577880159423944657865205146498851004604587132958993879386451156149792769906555821732312177800742175855852011283054463432593396083089942216280319796358466463058695460712627342549410647725244465320896760828961479468549058652940788390288820389754132783008730551253007793792923897390793759731726415014042243406057857420621612766485539389440311928995638180441671161235060511144953297903943815954616944134281555669813634440886270680393530433783268348122566154557336630288943978426672128751238271235258801309186132795998687475357290433446542874118694961347836158744492603945565501141564117301711694568402638529963275568649025057993197220382153606209606133888665965723183381685985976494894478532215227811939484316329509742738507454982994881140502212644872121433555407940655527738962591728890821115909197522351472691296632234216151670998663074930788460857504419512231065492352355486304300431416419534108313062997441967462478750565540013352280528990761884275922618814207132784684856062516363413269288379200234762304045048381707527590545054075287450440781978979394950929185354002884670705350568264059125969853077849436478785709357959368469012796834920694663130225937519783075914840359086347835047993788774219814343367969970822810749933554751420180779644875395487481998601026624450045612948071109409094341160966209316120168936046220098330633041295108361749720608759388306664839762085104997212529162474764535625555857050839321664398095658295496679087959685509717376009842138286065344790538491311537401029733974825785696507221265758486140006682923322162257888093002464855350733983565654882956788348217491305862776581638742366510325412940271262364906083347607941976903314048860397583064198207453212836998771734133324998688128435412263458303223511923326858974154622966878696907654849639445110193877649062833931120162811426958397361845025753509111641531021710981103918857226149509401351768746276541370979177861057391946426861140117432874712526004466345494141714153212511424897418647533089730117910093966440913804594576966726553848710092422004860434773364395866220226698701416018085698242592093011321618943661742042424852455194006860025066274852751018698561485448464649047434565276235412493171679947582418053403129302380136496545181772122738681558999038086945278391761482821089905713715223826105635854542534905446522576945332162275148763093959897695805156061124469718480310460108749780265364126023066376670342613248590138619619060477553051571862573600860739550109196980883965413828169894078699833312670232257331487101321381598876869423380052043267940878987395044896819212273515267928006842793840710878188806267658063206461471467561082471415053456627175407914509962609050034857835934472933556583484499261407060460996583559142197179649679936485413970076630367316797873846137787181253969672995783158121693562350231250204994008971089284991489287919944785817881147523424114066149282657027231057030236859417829099175208903791783963913610236035393973154804216952557375348132845385070362858086443718263025788521375092356474209665052367737542483729218300081580188603407962019924699583524308773486864076883678143943354323716182685573717324324594925455631554415625694975333169972332072703588490682020075258125694412293639534648154929750487974961497245156727676790135499825526518495530165343351683103395028716670241544102197029729071410674489141266682678548989288598485257334956723702589358080566523033167188209373270937343735400212781406035878152420358959599417237922590665407302238771781836976215322533591667888601189940920249415142124086388424395717300871949933496947193278736054703453923123122712788610040184995121575099677812948167397630082502702205638623800007679369331896630472848338593766881978031470332264978299429757338556364112280001360662684991336465913870306380199013797496681749437513134699092510266335361952808056469791242174481838085946669708578033027373701541884598474937235778665466718216580127496825768618767117876435753746258793851063375068934771590054882929153741829992026951565245629627975738710607804070734740181531185243325717102471211231679736582376825636525217265848726707050499118011703129162424293714523839999801113791657791191580602422625669269975436865237429781394022596304729607796063755147770284687467479654645554743124968725182489323208992799214314781513377341410034813139582545092118134569779264858804450501876917760467651606604760593741622737786558034079429311410412143174384071480701562383683421174869233732621218225378081697526896210621743394578049193281634106670684340713914354864232510550462288324006518898247334922854671333216868306365945144293285881261533482365695404354437231553038736785092868593166422748267713083979737370694800946350654433413368222103284305066250747676129651494182010818281210495846409568383140339318459831711489908655508010695310988933424590172655591781462374708027259981271998446969414648265825853486322952395246894609142218906530578389791686638197889256190000550903120681160976441499698763372212322082493680685020633379286190490123328543662663852627536799412227481556932318780325072225654686898748479228493407192338561004524249286527132910197376481172730810146791812843472635976428278987109253747973959644215640891265307581923061265555641781702581211504315460537389718364959086256838567440674493540614893488947355193335854998806250101180247873490233039062743103950447330746591688156009905948599837819461186135565189829120408750775880159423608566290981505302085790108805923273117852486018660207608685470336945011930298174568877513104737509145802078048718593585009391485326632011160272852085169817007322645639583861691458459336355962135983822594123071318710759112565090088322669499549921561523249733328945048558429856725123699104191273861547542557752217469878055235556196773238004843026507567590539629230780177303878031112020433830277029283852616372084064145314084329496680623943288970530038560176368775942583874336912081984253252384619082290153469898089631067512999025758476103377522631092639516220728675718383043300155412865519628038954556655844006183088871994871519903465538298324982658280516400596895138175035231731754998326747046711287769031236984764309077486304578274518547659023441408246342877245591508623747842452402719016445975416738551337524636103851192690936589850875432069935102250198293656490903874976590285764597053712935320333772888640804375111470251676205430498854359388064137584808678259001074683776748833539137548983716509162309014018191962333096874905519251522705358345454109799860969095882786204439174422511369111270957363117391921619531566331596525641173490526829453795495547460620197250104253253364670327697190203020209156210589695904237192117679639406546735328321832886675011986525605242840594262382967568550163241149778555412395894957123675280062406644786670005691155804223616516759041982610311018101796250533782324991676833933815699478120152154888584189182194179019533569555012618568589909072265112470536335657315286625781397869968022569359107813368413442636804172271082872811939181631413535899284762410076422990621674326583229266561760244512177262036251960265039664922657139173546306169494184023395063854023099338803125339515103651038889094374433112008831873739905598207347799142058985542915062355238119043551137978194657609233311634253285605274422025776310475631557367542891038519129195883786716906257577402182516093206987326404992440322397648009548487689132786163550206267777855237845761650137256053544249928833701208443904078477024356153342654547904096860101321173729301937890782254256182900769476297670855999219736152883386860499298266587804643220126798234189060594893293244251514146438121943970877579424000757399795920728627626412597167965257271032600190976960554923206978781735275347100943170537241024361288021994117410798869225692846290494351271095604967112953131073563145030257326723381949769090957489387460933995726285484369065309346154202565161895407842184596871051355477659242769073094526942262381840398153534421122230905534389963655265243789667500324070365863577351771900337582665202930852010247499009383129265403645683842101085551911792056698319414346524108256119906574216300907688100753333311430697399352437648371031950832736948039499829192142420972720069184900182161628429874136487834596445415726452589985819230664053356001453212935872185186687916405333830280523585047555131685062465143194392267992393217956907145783513106721522202299832105923521401941757474486833276606453827604885279187749270631128249650745661774251386968985955906965911590495411541021850041960134704972058929463308109275126990388432777766569075139768691063470799319470823703209378437260456574982564313431167579390416167719162789295800704746824762551620060057067352931087431245005588350708381751539226591067452452770648124889184027710264545613611324074663284357854998789821362889743175290394372983119761143561087136490327648453152632720717432222763266623143854709637860702151801182556999688098593138052626967239208337773247575920117275457409339384073566055581330172398610696932178942514182044388432429098334564170884747015795253743900547705688119590831387023334357543543432011660805326370930240568584406319191248749893017174497778373179784488164347222525339105547841542647629311873396676470775649440227027411610149189562697175798529674718088139628052969574935983566680069902586900129977281557134176591579460071671213734974600330515215349144206082918077889277242827541979535661743024726528721283244727198304721698817632320868971994520525112611703162608612263867559213379613959398245797746514299973165657451433805173501436440552335603703105414200046021871593032335555068843741384931655905307561942315888386484843033578861402273168679315788658014869114472541059341890831820235335439470724641714754525088210578647774399242319945558968459738827092133971160046870630606489352197169286036205279292780718060501154693513017462943960149745063387422531846058884194604504555841008401421884586456788755856013858324742510844986481395917251398239321706762089887798117179610877684285046646567695376210323825448768360639662315101176484137712753618793375847763037914449305513864903485392756526229185770539849941411962361946053692194618514312908061913215563811387548378897029588089951101511422764446678573624736690355635458864240806959254198416121204865939151839349928154612996878284095424719563957559210338384098565480885352014602736342182298893155421998493335461042194927460394739694883396445440805520908512879626510971088971906833653175268940040518252609310029590191574527946106981746124696100627942718354657386866193390702453467711249321196298012522132254340906215012476270675231966521039008266983429075120058867409146302543914493433520049338302249569168419720519911026750813989097752529706110973147295840796937215203725240898462188250706359777074221483047314145880213304823639385654258117677378713897415831067889902039195137961177970320352877100072616622011089812131558559558900217817417667394383731926723451503446096715206364298352396096624656030809394798958819496721083155111933417355951627191623715243039559153742173621166858942564974763194685678657776269394480674908927943318486443336083465036987511323963045554430699819499992185987893281833033015027952598168987698955753179735496434821879420385303189534578218273472584437099393219812793231189191601804957050884348164368141205443687209729901153211560684839894596394797843073456925430165508264166704809230527623296179078074261793035171697211114631581007135734755765746331563018045463009434841628604701566981974965751192083369011281913955020212270782581072397310926051446535992969488813238374984192476252831889334485754911848760226020490664329332551109560327691309147882095812366620851947859492763696204755478732454361411486693137056399388793341607844378738510459536595558479848486725032547166086295983667988641197516567710691864875847141461525461577301099180099721231675788914649512284095230458931904323465898326772906786433046118159951681364391240279055757351800061205745354536476758934249074378906442150588547753764638586404633927692459162658820402252860654351788802228515693206393336721693064083526596346670470859587323422573986960798813535812720310627515177304901340584412690649037674164799905728513659293737668369419748236865980739384860255652070942651760988914822483499737687903516165012853739355918262025734391460140848899294384219373026709261873026537583952837662368036078772031254914392192586460316861247131140786811634192505696842062354414476305419182198821892468486988718799850289562359378645630070605165896868560922291193224989699039606201222023452581738035563777079855538301568896966084911548765828364957325080955486947996164460205429481282098039242988530973332458479194982629854664278875752529526352801503657243831892199518465766661605077286200621227176517861030978607223392360975997342242843169239253703278760502292034880791779830184027646414507711743799525860084735507596399020191335369488431740691118736904858973862023905816966147650162890179863373168253497298360946966770209053381932343357220092990503397726165404501849524921914635952088267507528714596795108439090774532688247153082208779940570778843876088946289714933554689461849403362619323913883977941667027498058295784457744852498527529126232339485029282494726853385554555899507456014720473648020260100099255888650746784629937622058482891119549280563863377610791566063712692640940118662584020963325311075622521053124242918720310564542586562084262116217535549211402088691983639034758477091086696290023319288528436553851398953468482532066570909876199055179461858375123226553667518253275239916770035407569382136590971737000432399238578444445475106861990003665208637197512475292607124078812407405583866864499914565417892337663614932457102973524819183822043655488135706634791480416179205281633923362777966977457887812180243209398717776042121677975144004275960718591470881972904450655885620726618589074203818757290511300087174111075852075827780855509774899511067859977795679623788674412183465355654183895128789144594356679593929570452923637351024785564526098520591993488740493191043848888830269107497340094979209508858291093375239295831897458066497771242963398337751851886849358608568394684082599792414269697757089807311764018838517928893007647126831386803502661354762929858413513050844554186149216527033259076919406687175328439060041651618391305707296033327929712283050338880950629465618948768052949798301449719315406195596790633203739977325374939654287851370841292458457315302702677065369059702142847961247021941875636973236881674096847986311106064645827413059319379104816441485157408433931694179938754641982021438253816071888097642853589906627875595089830147510228788134898390036122982385979780233687085760655273908782298794356134750384906857716816383729524609133735477491115266277927811960571844105325198622560398535346505887764652800119896684494691986268273514536852537358795967192609913338036939071441355380717522300869774461055664318641506576012022720522676184441672852186914177734622667592748811510019379785024338106727802887814156285474769784978593174614358066002220566799346611690666152388323200060311598610668967236491956213249863781282586405468536858236476145901236450444751837504183684498430528971580341814738802012242870830554244123766778401168790169620936087263160550116386916055185447859196011193865082775590385012511496594170219807459476377364124704129294908412636238716722556188094409697127466362579286152804826512200632673116223185310601674629890480222297808437299238995127850571963529208342990323977975370214880887027041626344331455400629253408086674330900128051879613859492308094868160281293181548075028473183854953072817907077080702755904631760361304646953706541477197470698456194258962173746161653868470146357939442159801722242807983371815353275463124304858674268134474154407426234033112914981283141404823992105412077757920176486867275451386625663081024984893679303395000065881691637867475465400627707942537720905655444968121051867130273837181986040845836387520914032324758943272289001415869677586432660944111026051276328814888729065366763921583732392889036412005042502854471963074883099815423881842299392946385508194352780063155075326904904286305992916516871171997072139389506642972717779633072177809336984260819290073904841760451711651204003551748420009752270205530066247562747795265260345641889822932765211791762024785358212918554580298674079981962447936079897943333655604331592437437355018516009132479555854136304243618681392891526518667996931302919702564750345879657015604963781815216644813583967951328603697405287877634991320409477514895709609816940573111685159854728849964713924356885492850350329048372761890339631874747014897645729601178974195130146483030332015818608780102856390975711846042652259674930017796750658409909301644647106685826366730961679066176342348479717341400838444863219609148864433769993990205561018486961564894757745114560568850005390667264455975144128616817503571135251726372305197667007225260517208800586218472663572431701284050076150889698118979945875245821738219069900013642494099224766964037322205138080063434871770916965943765908625338589251190908747116712956861867423664162957531880355502580553365354150937463848810412232830691539409092247582237735985487574041097752416132207104668051019213984358714857753287294357310851282528579678818983108593886416930828612702056868539689850421062467070599211769539219253416645569910888369922050786361315974552561578979855227309192213535333523237197445608881277251796808863288632217068030313092514832721410643596451917462056387462892097541640429063056084682532228429750298476746469368194199422035056150113272980837284634426899619330282929174130005428078126454520803157772907214514887965231492746438999181582786946131078765003889716213805475296514406307325903493460409056034125591637557351795135722498123541092418196201362756737087394179153612673230529194682204124697580066551755449614231907975964677224134746496583323311121257400994642793337173256260014035515244889188957773055514039156100373715067624246544579833955790263071513451698482041763515014910551231915289560689248894901110249082886609691971342491363211120256397855254342616096901444084775431063547135570870166260718932506532139131705197390708358975765521027291874534834947814680174716836057890468872108779696031025283356347063360711443079360766536665143993027133335384873772664395210270848450995279765962331099905524242914006839521683620310433217485065483248298194860926752359544601574404183971124862578303076552234313557302650010841413164284632674396353603152338487881853184082519986838935651658093332741265362708990545849551935222643234639934839187121688102919735142403291383722306730544099647547780773648664663651409494100515733371662777770331622975504384172083645798426379153049624628466937324034709934650598051787630207799991373854134832826353360650577216140782650617757223712196476708240169674309497995899727279047208406219361091516665318424357107131531172009504134881830241219512366478638938019581116343709927504236410936162653527264707740723984807269288166353885763148730442463691217443517423509724090587607709238542570513512518087346560935966143011024733085828431350295225749753432110571318741680261726394440297129242821418779988616653963881032979284166132566764419485219579729903096700959397062841599601234308114859221459395013509356581819040448950940522142176128029434364945770623059854971432527782943131921955215720848558526756371893362069983258764724529289623330968917210043976593279108160728627706159441128395007977766520312655511306083215769435018896548960736244188541859227252247368560628429287112741593322062548686232993296525238029363083608048080036045799305313310342382068073536454685773268444926155311157713942902813794333132168129457880524989636915471546352216000370555077210376651993915668129359808036868727831002040746257616453132215152638236330054913412923692493024665115236677772523603328381912152001718939980364005376926986108702792536917207680872878791589079640101027222707365562077282579121733734698701599029516752735893188382183365899491390039164254323888025554725634592216303442049320548838048386023046884946306370143289956884833148624464418294951981963369672772870447251087211074247669526997035758368182755659678222540218039211373585125632345700790831777787655830254618423028574915169622223022301334254430180950888421917055402260482683927340011483238000469097649022432161635715107459304598184924414915263848818070885284763171423115503252282609489180782568788531644205043632750749893148168779407064876454623854027255147463889127157747634171510646968281257211570905142715460641874659770990038587155942077087198311490295296459529470787902335730928309204714439975832597225295005673430182426220955588912431963209345808792503319786407432030727476982532726551648541623976806536285875622974583711598079409811184124093728338538190632855654060372771704250560869393073394737241307163909179330925812278197419655409153579726482305687916324867824801620264798519293417533262656668728489758816378138715088342068034652154477752104223022535414835750148834506981564401762942487957498422010520886350098159837346793286207224561126680588801185503342702517379841429516776986259980808152513968179769903757886318863086622607033578990890155827728551505467786120152802534528609257648672408908082358193384156687871647946111448662993847759967510658774978912101516764566347717143825822061927559406718603965148816255760125569479120991518432813374367248004236528727112458981486022031825936941523011907023025389266691733737188402773815647028686834136187381300005435814904364048560204988273029561809102172594272575275138313107745533143455509070541302952120413737160745548853123584923165142817550421308058442511353744283161261432794800297999049743828298672700670421365342686515651240083911451503791515158261029809715285261598617365847055242208878889545696069752925044762288531507894892993989717740400484475903245937698424707460400878462072252083272817950003320140732686219679857925554580540902575432358289422965995454113136903336220058966312749995821161308393190215497057594213820445019379399794362918972801190955818236372281484519397462792775252963336274737692445010995591359278778249584104606416405230835544939848191244336831991715687153316860939719604561369079183158845239269807139644502060279964133468458008218011999237652130208087023446403057782468372739011868713537798791876094246674992074217414286633491705184321570503599091397665567194216080446075431204616853864773790208284456169927739979549467415644465026047231234364650253861263411009380412938758561074746429742837456129732413995645091475419881974044200682833053083458906108966171553097019926512730345259948424853826911329360734530958977852557905144028183180640773647381911691101293316508075538116901290201285922488517283439450970419380282746952905106273526892191450924972716124104185825014166737675676370849243315227048569110998117696404566733428613595644766444957416898155178154942285058589135361936456013626514871351287589028053205167435316783200969156580630724629609438350269068661783747414455484981186829099863874760270084894579806054769038740825084106684204855204583297113575900656574334390309916310164741065951597418499076295011031326105412378251343633622527899069868130311031516138513365747711729295031852466177400727190103324510594135616144967567482566507755634577033140424453116706217116906795142178233707383508658341597310044722829942165698524942192343249287162794634027462597153955014555032860079635219800885512802111133554356245702334799455099894225987691276647541227181030200741192230191369689214251049546862249404352481936901519568068304138439071248952872446517973442201638630015343759276317487082782829950681834893893225180982695728948755290444369020155091622310427373638490405358644785966696006492553583171557901888491582626767389431966682908596032840197048110404107733147624119157998405044701542811225776151677664469509680664905416182925394458330291334721185930786821412104307100755742155942395055670308725364871749609376314266101725743417605366116482806585320335716077982514115876732636309313370273300554625340768411631521977401136886526879150159652796724533161856611231837347212165277787335196315138497182775318654491660288889018019652858730572182982649262113627622851165239074255513469470528905459675945559669580184631182483462430514549836885463461061224434814951695159817948253492619323411384974556010539596028252360925001459419224761827092783106816903866171497082307101927138587765745275960283657389122894687584101972358913372386395074156025574543951876423115819963578677496361884394522847035538030883924436173979865701176571179456584338888088285807863241106362747614149760791240917760865230657258805425994605087143076266138439746300383100689583913966256314158523731794227579020586967075238074480233371563156526452640641623926350424445859378678978934069573733055831632269576098568577660799383280742291747259287581755098304621680830409427680711652104434523838544324321367035826965270164844904267318015135522568696704675993188169766320232520199934031831331064939771932194599394956631453848602982463520029609278902979331023564928808888358089929790893435536484601188602524560001637092547783357879532392699953674467436022579387072066799159984210396849174342360235620280985575515894524141607937372378198851740404837124575644146974711007711792723143285977110050852341194194759430105650296232113608679092846749965887447615592698617953558672177838314114116140874029166731213664731847646650311926465519046865669230407687334930508657933963078505823502133883215317008851200892728156648851628866947823552551570403112904761345045655545137668464059740398530806376572994337816367093580268478387469117668135977132143452035338122368502542036014185873913539547007664178347776800615303126393233974100954526048568710247706246460127208338362065422287779049388529038092881087554973611860991512751966044601963413081547076151283717972622187679303219733595179723983095841217333194072737128264693606346831706247670449155737241575467175854232455169706709027956865036081282707093595488626369154455115592946724267042602698088390682350228394807205766868252209803201145108076771947356038233482175105638930106738021826479588843057782629398999675362251383226736643584121357153690036121598115939258360561200883723110292283291388502993018486407165065846906840051233495307342776658175269452780828649450988475957012184665697702812751569073270668431498990237389214599877859653702195416058399977388247861897893388480472183499434271682491765644231451959183191279491108618569586682705609583638804626039224063685476635330616082480298914883938836672030271692166077532891980743155248831125407441382831738072943978069632967430472007930635950453482352933510371112026881365190296256728695131183041718981308029744523217320879494098356971689806269162480279143246782925250083664348543211198486035948389055916648627570162027105147130917137047750060994869434032162694386594948648060961306978860922570530449546455658554530657582576316062283531238818711747255174884219000611596271120349808588393943475522349818738965483492431760917695896424095851332184102822765019512128233346418813844501436432540088450565146747762368025061549575736822719888352378279582120682207587360741617652934497642998206244079829469237092462819268400711093154152681891746009185040816183346688729575813137308200829594466648858706071307414979300284530784947401524514900163849048357460696978521268589459896756551902469581854569551112858662758849246781033214123418800849113843112988917065081033397351599721943410595897351773086860569059953338616409316469121234564803472019889693543736677216787360254263442923715393656976131211803881953756599547807475205473440429404029755269199230901376878444290019001502364405208930099276789863825581242476806778118143674198413387454353453443089045791018593473480406818921152537767524291377089484219890172807454152963993785575682756243819666921570630847136297142559455546628337488658834712870289216770894115431412366916367444344766094974161556768155553636422649504298101230025340659587306254710834528460220224425633984653882184097112926801220154999930278905004419677854989643812821745972320970699818109302815261122165371021908482600095668087333360917502600658025315041066581840275062441679773259055978360190471845061914461366067467377827552746890835498404292151767709301596227964919518541197116953815257555753114463132059772368824937768980734704941165630149248940328524902264790334534918908939586294672436160495876527097356896377251508561258740166114751525409096853281969565078358000853608803766541726946756771513719810579737098330208468438919730511281687132397365866218493372831689714874129576181325489054214270269330357752112440023091675125348969693436116824438903779922063375862698643755399119494121479557341309514969660286426993112614514866953092198968586663716267285099445072724801272126267404728271205274171333396702103935718714100119230617893058026532637416033048526706961441012308490689668567073007235397702943061063430358902745368811918437700491325432846788242197385387212912528888599137478951113929389428989414783664624345024063156783498520997081513022562894032901222347158368434324120037122536483869188281719165087779271633814662760163837356305386069517690330045324003684604112724420043977393115706112539885338938095048011863909226135502564870351555790311432024963646685876823043778202984594988442512278189121368431716697311655486967932760153576982467842284524397797547605249655639601814460027087878605872195933676135462413042564034694514970337359490964779765002401186083600786713359290639912410940154071908538384650843690002833527880548004863216712562936082517556844624781365010244809550882786693759609306317508169016551125433449473527471401494437646596448997282683971806244756033825614874882803590535216108918749029887633945737905491273328141216132858641822018765632616949812243160339498853840379215087447007054087218120489261414186789348857106337613596969702358339972311738778499435300946510649348438746544850461964591954737887918540055319669074061097078133739269344417730222454878621270265342746096172171569187076905771494610178791289739758009982097272075696771122595934468606438238517993091270973752178963842973534333990679853613726869048326534340664998738799729607789168866256369403044533797854062207379128159713183685598255029413913318286573691231943836996619893152091459488499385512074965013508896506126515758104482404469627463371291520773161351315698167220397135673190461418080585605991427360496241624147021951764504223421728418390463795030359051537199291572941966840951301898126220669557870094604231640212860036344321150164015802415362276532500412659433755592360547187600141405534569545188556932909004357731724465907791887552442168652294590558398754813408522663939315451941248455379327613146399856616417845420862863360655012461792059536994477720324791563283271748932619451681579336766705698795751465052727060903416978854061112019026897113022216467147185204354277664610307218846167966079346839474762362181391395205904085376994256685674304571956844219152168972397443112997286785717152097124422626675960357377755952723168489039299561722181433283740500271392101219813593574655308489116439009807954230917938657049245516571499575142561952137648430832595283963187232798262428356306515281739574125449257587985492692982043426041766043735187313815925635748743388063838416694563435156856343605255889161034919600675560893246750793787456926564061989946218380943038150237899980932310804577875741033507342226136249846699518214913671396995905074463274626228129999097988821201472347374114682503509663708768832211790442879092132829140260772994843031245234484642021023599306871098864950626128092741236566776381967306108951110842454684214923613331909304984867222214647826348068434625948049104071630065220651869575502909083049019713705391651179144642291960744494251701396867154210402228189235766595061116156961574187859013295361323963332933292830580879459683034805355386162255826238283515450903220407422575715401828987017106798624439021353817708697879282675272154927329421522136179780761229357421780322646854583937053047579359833748020603960940604256908749082522323216918052081751355010030557078892280077458291780903699361888483503565526570193673316079501581833140475606546799597011290776057720048542084736309272075180117786636194656125567452380544195824166834996244974539344784268229750164205302358544786346124707192461884814774002102367215269620607713739242124952733567364199417693413398806519726699709583501902957822536713478201783719551644180206577843178753501149273888055242882387947721994054503221771041329916818701860275514435363716895325426147533313025650246936008399180904133643852669710361018601178048344707900358130597918457419529666167675832741152524498522491774119028741298433036456706192005347742321692910693345746756914318888496207546188514983716322205242102311253305822328182734019557624738407752528079113287504514887252394428066552350441852281910334953050263185858577091086255051586389607996968956105739592690571745035276991766541143390036074209055530765958492250352741447458279379172652653431213834452017048859990576744681537219995971481107837009512233499089545837552972020145680748728328735740789690432911948839753061015765946655766001147513794100153275714137576984283426006112749863776659654242736250547102842060084433839712938268914310687234204449934769870765686328075820235300290643049848225827252034776060155571361701321518677081575439415888807062193379422911881158184604682427970335228044860168601932792267515681968539152958804973109828098810473725540536351362558417339647193601782624590983449297939344721383847774964642455779816706384262233178719425412822363811379479839144371466429713693112878871835093086049526451576148945391069437424746933494782980630546809623391604823269023557914074329045972287317386264653830046998897611066383052614931921661268397501596700649171020653880217163085101567283317164048535978732185025974792459444365102309378275306360154507286213237354617465257145136307523352526412321080481503780499472038089270462333313886784858101719256680838775347360643697158953341947984120232138018840438482644758998705151231587057715604576635144345502261208198556037952126466733430127892261388113777496762696659050194987683478296065289910680932085304509650928203995221992540551363513393835692506531203658587216058146246571702978195963634109013428744869595667070453452953760141214809155333116641491092593365931225825814765678185267577340136057355803251777150063812467015971902637500858050424757698677956432392297715291528291330054426542332070419963506549511127087571937724804798580372073909929414415874660458476227355712046212960839166592243530469602003649713147539441591642111877689298591855817057790928351033176239098254034462346390578245934073932520329821344235857117032072690309561231128071102202394324450281590366611231165759581591951395425124993450713446236285809987193946996509541090632919650761181516826373924305997855656050004547240306334382739021426226676051557350494494767774758521640212703291870895207866801881637707352386200346043169353325140724206198534509602972214978884953899617593969801879012180990973666224496419721597223810313107036643276247871600202312849823467511463324648662888922699355659303557004903260499414136962337929610115669454722008826763842119738100176432339359966291792942119557922714827138105631701936638356487810678260665461981796357933337188638129942377512487303051475017393700983504399784545538880815111375340968299142438518503183344180361494654115335290192682547811330276576656921060621841671814006701099706490285017237853477686926752291084237414884045404032750008376725661061262030870728757431905683164755370127492167332179761177150099237308459200555218418085923905560197149612466465851725281674927174475862900095489613555605054990972503491450539287756911083015373285433144439728612043144217429942106438365662867126407875874779027837841033522797281009113877193622563903244102678499157719676285551076403985405835816677403080804220013824724247034681002706341613375577012486401321588569184920803753077115937317430564790232496743098118297958893705055651546019021043101264065063262458199301654127347468727455272501641539575401306694870130873706968361989827627648303167483532363625186629701440750506190733351524712253555292434853159413194687786054021622134415773650634495363066688955503853920046462997357483744948515932945044175243236465953021722499375908483208345347462837673221974519965943800284493467200331976213151766055071449611283650983151367029890013088755701529184762916191232788181313799729147918831673110699088926760846237541440630584999176300245824872071630861686052924892315170213912401343627893600672400194178769901960374311797205530881397709403581093846744841281500438428818669258834060449522074910675208295799373992640013278038380973613279196497355479848709952055427607001173448537601274505233704904813277171992994522569301168660806003343510317533217302550796288278722781221424993446707259144750079391091081736919128070254484449371018654376355525342589977500741229428489126466115374385386226625941384786338187133982375408722806583487690264205030686519935420174841866443762289722765292881408379139378019056351057967646105928473733024080667410278803770193643687995075104213001656848260775738740935920195187087676278347977471303313860200348318350284654905637049871807654779724720879957398609189304022911440262154104671869842742925154928966382369631593271566630080122453090505650562192777147735748411408287252927709289123125853184553229212514239201640017529904323212260213435819217771411081688454798675205278411617379572729460641936485207047857933853594172314455367751453917059320700137186336173669840606006458915533706293495548478250425425023930961649966232961614382937146126366815078426104966499416228965257264635113361514993811338404132590354153190612919940309745584391560668616119050132890380004016900054370722051457508816499087335952478247869945393637512721773863157721284950084939585498045148113547429668498050200601382712775929835099342866727526144423654865159147553745635232156467113908531766750071176105810158714662509905847772022588230265996401051320276337758895760479338907981303884785604812248014179456683920310252871562285546975185657782688186623100835160101868949686386687132235936506422222277177791373826682300837565795740310552652593553795752057613329239002770849031908593892731352706126030503030022550166987765627037091375955122053832819082018874839749355163674215374255155473783104174293911257985955880924249637813880092313508554831510342861909880962372600045638070457667672247932615800530332592598782736529910081580329011825591958058993586205706125758614317844765781702508682142266935879494850395818589460136547843438523691793961565054435149380366181852171388895846194469509352253517996561391656323403571648634931799868221787725688987127764750245000769806593144822329767237951049134296249741332899696054997654155457586474270630485551602898988722386819818291906251293143220860492426612080357205266403303343749314943288490297132483677594875179526314462714772647926664270501281468106407384974346032996323995392307360608641312564896129366945885009230667742519257342150303344913034446509644496734574991142920026806232652867047907386966652560943188715312903100491275273369953446577415917810444072992333715108193185060059995817298583053392193102649887175209711670130451231277535000954483353009744285080743020016093145529043888824692726386215996469548701406333705180924685426373225618795368933977567454586007799477008157027934730753778674549549115026636213662643868239565362635355404081698778223368101392108774270731500544719664370288756666958960090807740969168663453933740838003859351647419538608077974132661219270342892226592701558805271086299362245065313550635241971601151268360623767979275711204906362068712375170947412337659641666924984897094549610222942173001948603189544052824983151737906899673927775239215464112976317226579404543793409005030080290754394965028446733027715113651359757312802241662358297239725147978476385998940540272558790463885493530430446353831447452337270715758975847432840548088259557981766890438394952240134886958092189524132646968879375375889591078938632499096862741095631076703066806120201567362515629717663927943612798724966851456245953395358558195624049795216937556299628507597715858160989194735841916722825873851921938090940857053940488762815313409042501875925533764367575433262934229112549526752367477206166513822745292703765637019795573437578047429053492196757445405134439478506666228334509391477737829893902001268698684376853593587710132435705540936024710724619884057864551905933463460855624889301705012280153469183976645055909121855706098827540893226617858498438596016025371003483657581564161675800785267421210817592004715495928087079199888515958326568406311105561572624511705508220558303832896541278223634131617165378664826664685520365836366350433834366718373910249988723217532194080391183480307981894515244218452790161683398877358415474197164600030820669403090674064502149813529387467918439997207090603475368837555666670432738214840975531893571493376182554521422679912104911615137599135581125978838201809143977172768335424288299147096943163582013384888974249380381481545218901360863096984755963852482332139874553095230885816668349955692989641337879513292698569132635640174633416499114164989736103645958286720397196506478536471110244324030356428542676381641769386327496800978901481796135602554944166814968044980991690820389928348860400889607858225389266219829140805343372683225302845217383236683720268107216365729081585175093433972669899659148797857334533421066064185626633906264682304232415342655483239789549692546909785182134632945559843849374217231831190180424803910561264224069818496272779901227947188347116707152850380185354018293403185563525018457515075767451024907058346272837496435662639595962015787477616512097743613928140329953388060331295487138230887451291915154050746110507453304283028809870489755044807072732301805349576572816931053208323354712397251987697698690990492110550146848173405772482085065295052043364393828357680188587591813824074995362430749475343424093643465222108462582307016262843172086690193031675960541253202439168816865508711958534758908007300523576955267089605629332466678471838506082937233989370279214583042498527222070477531712897328161223769348098120247779702885355995561058606881359769438423231655460727982271319881315145162387481380707418994025230142499327540414239109554494060801666590700165405088203976813344562788154846948717926883781707200540168762936988282754121956807440801663451802126353342242560659560564663113884662052620094868941767988395041627370309133259080569643589273618531629850651399869099411000800509542893178152577516529005885458980401768204795855249283734754781058864296507296296390263553330764403862410376540109898059352250096893430473815608081066972903514111641085447845420602655446363093316814105190546634208324554651344779789496475159330266004561833214301304030033458380046771587057745515742980262022700174227507343472517089729989027985160065586382132094529095546608393106718147332783069031491636504692509700798573598372591740602244590273704244157033090162280394774435910298955101110084064133842821933868149390477453398509712398103281498932937865126476624265642733483162812702797427619055058855142504612104957982141627423633802271053816842545551826889833101523843286087374875911387716789038655618892011579088170443628526136955433644588332308293262610946644096619264106964899861446922874993048994904570008598089858119351451872055451971236709120266026446322939888628732004405385104017269212263199822339382916772705740867754426319966025567898373730356762598080089489397616074693747041705498379036223841825311878029510483577239982218404553570816875322490258160549078905929276039616092799455078768645588261810128643932340894690880750738490743238810907467342752957905344205409446030211094947248802925260848384424798694262463170050619769761418946830983054734550672757267557102204351085807454914084564238521155881191958381196575776297227254879779029965864709804988129959673050707488326218815223610011130924377619567943042121143319621987837600041247364130933006276061137832642286753848643851921368282038000971792354653133616018123128126076734493789803744489442311205333100415148824007364880132470981142728284733632400715246646447349729114154964787918629117593034667238564377124413284880456427759692552733120379602303289066434591611736182136976527938041258504386527471152334820515443465380613180599069872729556948917066324115915929958063096952610522202115708298450999983819145890540021087367650637533286714922971626716869020030749374324252677199249325363147897845073028880999990224947075788410642457096823077448440380396279497795463050249684057809481988885998889450529697961855181464063631237939056361012489734102076670234751407458654686648141819173439778186577465020541531373104760959837625276082945568664752477210432582625445436097469050058568502748848468152572530999897993816905309596263993937563332231548748249386475781553763159786937733239479495846790229559298043395366230078281363927438395511529943326029225917616982310217645033856518333020840480117934137406848646078832049778909647377950522673651143097656270263474455432679852581051305136896918163833431145417152634021358112346299635161095013215050416263273851785407581484769655773341711458728540352854687685399998436986388864593935550648617621264903136748410541475983810659644263519138995775531065729263660767599440052947820852393660263433692675156801591923913779523752772254651152624962381946661490227373151918452146606435258093137729773546131593837269294735825228017470974828239240981754441481912740914124949913426162662289416786295451370527285822058288806765421127923721123668539279703927722134190180452012398809994116387295573800397855179621413718231124066746247106018016946946608553359001011377901587528719200144345944337975254341581520174829809202360097116571545015787389742077105854346173412895413967581577630705894114276349018676623554622099181060427860370172185814069738393509657804655516388781144153727726567276632567594217419753445935094673634483040168075798634451038264964684125095595722347431867818269793826647890280704325239313570230496510601354678647426403912940156214571998517086198644566499773023696893389342529659526010618593393171416941043716107480832923480052170899531056731650050551802426565244905862826278129793375102157435161718179358439612244933504048131484591930167637643200029208270718780091179976801434919261117010988414977966834466696611637592115719578388494939416421581202853163231559364775881346909549815340814548921413326207976959820834934420503159247894046987456585088849607925065800955995534728841459940846831128516250269475014850403710028123436421563119590324791653842618247950686202844859274490253195060023981024583526251214536614255486457527509530465776517892223749115487100513000780670491238346104846548604745251512060870238091500536449007843521915162036637920370340085108037091042231916293902017670079074086711168988082746204755821755776407373196697653183907307506926639243456487301850951703168364424445585911657075033789718206613819255137137830577158861343941565396130013580341471375426519689112657471212289378805192604183361977757096810890535261437041683282201025094369832362529938539164898604204182518199050333702626543818048674756085601247229084390033841574782065893700390406149069700491732239592339285839938157588266074076650139076180430013317884403627889170008426961489979190066779189791909362971756475046007662002823587225003366127181451446073735823496074992165545654243653998645963372600216094246052553972642327408688256126478958338263217131998768106523923797458709039015162471599836808261939087081674280814589014452319877503410424506834679670468670140448144866048776553586933353076556564059073658989297990961983445589490270129770752633133832983411836938811909339403078624970319694791937165753930626368621841087791010629338798980576756883146150718773700071667379353116872665676899557332819302361303680018576999248153056560668417957375482639081096979127031845817472049677039165488275124704809570975349318359871493783979419151018330266335444631881971235299614902357850044231827297749349193787004348311284449630216663630333799922942393732426013106711852643652290683613258512094698862053513428261076789590082692264568183544933623146261431615152679243407943505603067401179336890938612214558240149327248478412650208103691876669660344192171512440085059969551449645193877859931428601410747432632170580711557717037408374697254365943998195065619959803817347386358637202355703833486051351434762409050420819071114355559660179795627656612508664444546694058004543940400768557894300708973272436678412470777975826705342280438183184676086116532821333316932782786571701743018703659900240204312039605252351791938073035532197053142641071563098071011044981859515462150040645229577687085242852785932946848605432464857315233314894326430228506601756306043700520961950569703548166394545333838288097680317279625604122624880314013214913875439254131513421885963407439657128269243585837767968496878973000330664098317910105322993631571079993494382534988660664900140625494825973235037776514320048954487707839842259969335975368936993194034534343485476183391297424257192423052876021582537706820517771802530858399509746227371117365126370291299878937711233284901544655868677537175900618733668883825592656649153088101361678245478365615437088276706199296597327645869810633682828898929648762279771590672965054197083566740580307670435705025172193933098659292410137731336897673472344335242371266283766625602729499508402791697391506430615651549827590050920926140130241949112667962168607970165510391655429164652497352485928360019901480682447627608290254584728883810843583036003877874389183912493935007429317676782304835057036918978348673464575922284528671896511715790685999545433858397160428839905088930689229964344140434478441099212680262415926735726824955358245520808640378330153936600349804436569642865829717298767685800389120448494625675647492272046410462325477368058298741805173167774707333171979670240259452090518116734162342862368738720407508178992784906316066003751504798439830921325103667090861596332127911542761085530731536671375361303779559940960304755975532171947341615655663350702130335989458358930029834582807397704663165555737390296364546776741970771644964934696045316490372330474793465127055841197048740624308649612161077580477702843840523319042970998771546063003174074984364463564301543691164976631954576154725080751136082949705272675291522623931300433113589332684462715401102570715173995720331354703842926880402169001772296902093548443412601884407010977026638870897716828542106606892438728542094151969191664823139095419876463327511327885495379754854561016395534776780884622089565596624914563557368003100184596380500966828029837956711905624313149889972819461385275716266823032226390457657790638596237138163027017485376677342721143182822538326361096187502820636066946845736625130026619254558997121258620354936714376409773110169738402410320905156954407258172186221982527693462831427675256022738600767385546551793439053680828589337198896559973412651979511531514988570701780295760402271396308419497623406128265538918253159157446673758840226214219777509980891463371441336017843679676844925634612379051584796305272408517970020674566137665629055365519617784741838365703057239046210024437387761292464368993352305083176749645158147354829617434307781767797242957697391341447435782613855923570064929226969658195134737347799215537249853768240663422157343991309686458620068947246006869689127801906240678631845885938578928864376344600497829911002568907425812217153048754189236152916597201037261191720694132609799282662875633621915105086959134394516395431450247491906727135892931732372544505232515859812178024753908732095625804415615546145364215797856920884041240074999253157484594006862177129462724062304060647249285853903943612273345505064548441930751079932560659454182172413646124040449560930566294729716782950015004736736023061918650365949439937661245976597297457172961138461707970655658719599397287215114584662902682124958488811445292451674681657802823418684056816964070020487772830138138291940874717948206910371688870634635970155411129352715911839251775311620791497537396419005891577323362813885005568611669989668234591034931716358181118648573861917100234117264986403683760389156483521462786138008556979597396860511520994517565799490308864316473419511729004477743743918158692306129117273842253966832132984267678158288881112452017005543673273535105844491428588837227295577006941990650170813319844297718456606165864743656033126321487568683601490343706337119399475910195229882012199864893787517231418354013823720829861365652279163919782391944055286878333264035961599014241943776072174040159687104487828204753322397287578204089784893531958483924322248786049049467156855588746829232947105546986125452248555561164147311181881770010332393964157233224410960427300080425502206455057203383773474146389467485298937506575111001128553205162405984249002016528651655617428462502106218000188049839515136116148036470499553498402857276311218252602788226193368398822430585886692425485894034183518220396841839428710712853566769629700953626381374543075931682968501629421310548083721159889374927581992413231848388744353427504314209268925848982796574592408029593276373276420368867412200761424298890875351607108079544626450760399105856817110954247800553346423426501790859932046662960132562784658212613672942290683564629687909652821858706300155286038719275544194544225356363038527832732406894836635108751493506227027132480641632943928877321922030157185127769090538203342297585361670894593804218522195016124664414051250471410351946690306247459363681363858994022435091422878597055515111054531958531095319437165550955924411625469689991180201689113615249927280016405312830640409938065712433002843172004226389369660171558813321296291013874087631334099706113063048466055228103123535973700829982690063152486786767923826803758092961305722566553102367427705993055567264120795330044109298297796910510168974867657393026981148065497891805905392106201317585130034350074786097430374006547052485115392407590270668079535348124636031732809153190024478199711344925832777990447224741171139913371836316928525834271716945453538191853223106888978791072655108275400669563445980770922244510116123844530851106998504293062274747508282221770153727243737466891488799762768476508080206336122920081140080896542344426940829139097044780736666754996494475813952054326861655583101022258203470714313807353549437107855105569469743566793210808341419476874013623647000280947631527547095822897857606532878347039351094270689204314346761531539078464444338613876426772620789705083489862157026164593614937346257327493483791304375834320706523032359740347950511083660232718245622660351391787040517448108098743783825976641901951537946401940122049211123568394414760993586715790125597332107037981069956420513745164567476164258370212234127076821589280264023542116521172210226664838926949654422465323115514873980286204180635181006671158752695394405570301747601094232033894597670383485215916405606668441789712886444366482240298411886962941765517536875517874731794679857199210479283405824683172932511366199577642079896427134065136212131340989347032721795059659458072168086272175584898966484194746895022282485701136724519062749523021584479990433288757764715250807151898887513495498057107278527132484835639091714430367776770290497540999011368451037552150223671094272956819215228827456292560815849811981412181165545060672855741930083495555763423448149462587702746722896815473983165136742340587877841814912710237419778826542953504355653585002608797378555732555786752581525085005478940192670906156270834033354560371165940143724993878914213756797958975197526470390889804069438814075412966621260553327512546769222441212545535225623789949799829096299363449709452923980435379888247874162887221309241094454144691237649697852326488034066360912522563294489151207740187209324680237724979415586622764260341000333074680133474183207447396828001902168335133246156942848514716852601075230882076725034861631822926668248192445847138057009912213078934933972120722982099876238236524919726196344391865090120996874674126240333078097627327355228036951874854457636596632098006053471473545337546796861653896865990579187859626740372714324848816596893642124744533385311088397673069310938169972579069167810477424060627482483079486844496155448118178269731882293400650825301088696345323453429963210156396012464539013462543415002476788773305810420682419927489840379035253733317539408829200712428947782448965554875495225691768545926294766875370039085724552096749619033042524217593871677372941660960203418814604027331488418806669309006000514704013670808905803453076360913322812096985612603422549910760427414224461451845251228937203827756179731156415787900689588629749545501397942162027337502001406747198489403118907034075774817731529668408325097897872442015086995147854892876425025996533137770877414656047325598717160666734798246989656834770169185788829317214537072678025230001897847058391468835687062372336544103075365721000807669201598554639983557657118602252081521457909902446968048733501292786226099073138872478866065253162233851779000563740660647481059708444245702748103075785855127363883168792869209486969804216660479074714886813569835044641205468820410622809909010055546017404472136520893490678610873197427439066580515307013327428712296809700942359899895690512800273046482493718260157619542211073774480539910363748693179538233921665587208297148050263491852474266172823811295004701126422259288075867135942849358626878149194322526535262090141278261744138658563972588681042438971122795423075554686981253336488896547212993465251623335425226504707008514012530464615422889715441796995942441710907267393589753953162098859139664801746091838231504812200468177744458501880172220329543328684025015077138357292975909800641240808002443107216711320090728875998459474406462690404933500522246000757520056524292220435180903014449163633090664785103875216787810038063365084122540574329126775105957841290430498790367946145915639146013743173657571460861449527624870095723426422166008298110765778183938060587573929899103035938249381773971890499817531085680272534102625571624202523112310899948615452359161232948813259537910835310533679804650603093780526884890352944081730552804836495295975536896358333319601354744178721925958132156311942194612367190230789318125814044489281470597687057641457245162764562992741153112186309265781862782525438763688378827779483588767578617558131750080758868592699530867572393439672132211541798502672197370601430308661951925071056677318053393235661712754137950764782154908012876627646179247989948092440067085306390714627251774368850817270217431309250449625818266051974830999397877030288804628896847103037605080539544317925978156585429673562950629059650994646357730103723974630591304724077202500735588329835828779728959657625421168328809945298006937316817198798866533370407483444873461893353530391335779380040090585040622396692690968009243714780201522987015301479119634638911217384773261367402300307345120732904354037085096451571057177951758113902457046155603987744820333564603388068539077954029311484512077738906077930196653432521357538596635825641214223027619715065551125890916820489064571787204280180087591272860746236071374054015798685930720818809333099905659296961924315369994413814764530315278197614632878804764808562342420409963099430409674953394550532772522095834641972780682667605148641417365546646973064674139296618950420201711836268387597021106046903123656611152642325208567756642436993938273944817412263666210931703755302925825400502641272724604088442794859870594285789192475357830499717966244427198048120982873574741975634602794179272417241776793874326390527178315028096409982823246697778148932524925520095432959940620807316756031038406366054802611672261768070209031270687026594305100504257458068490608202384656867379620681015589620502586025461702651920028567611201511526012430107262767964527817152455228389727881448472402189141058146537141661836483021990443890103493205118743424732234081902226848964412693647420985910459462240915536235049936395271565231862995000392548021163898278390361957840366348378667645923906164528128175294631325845835104056453191937194641525223224869035890152512729487494614716567457215517161559722363074389150674356226297999640467073097860962749681442683151109669596983771844648167253099358109513344827205954610229730850134554226410380985572569083073700984751873155569205795474262034644053694171857972985079105825365811643771655103595432431151798993264763605966587975482956602090260470865404836060241611953240827700873375738556957596256732719338875075678701364736310170180065610123078504896183116035388250460070152709625012669864267950304211067520472789303481728692048507741031387605615090488484802175942054387325587159058581960922599319865832905507701850667449652903245327795400359823042243357490681536827016717527594212848633851920675516802070956344984903213704909370406021089751011006807996598919703058474672433150439614924863457328301091768432286392248327753588912842822117435523709235131879078356490063680766223323184225488357117793876252162412000664569504387639453879192247732952842713388433866720436421606769960855493112296855572265321247970752032269673526881443843571158855012910219104240934723993257167093422247236093006432688402629014663370356031518853248967624369171829667706644242644943876193918408562956440311866840811502555735078516947651415444406014236286547605150383395197493619673995738536050164544005397556585725804969893338345886766839484599330475901793102928368238648910841979936600875871859838607990854591081504265987300129960041146388346485338501080360359799505353193943542951591116952178661379056206662646287040829427682910279465929883782171060139105423943908465305085035557679021523503731437418362256759066196637058599283516159730490826328845610296393438216914222634573554542752497702700076565990148895714209621084186369849800371335496149765984425132063285116138671769336520544622620307337121033014773136497170593984165218260964282662438464697939731372977041468571608428521407974929426308101232400091682589323117769599505871782611595089819947402605239220627649293366302122833922739496931187815955681421208314881502982131035401699766813040491943039864513280733195846558948535452597669421941297118977748169766741356739694650063393213541503989977079167389662705440792046536386955048964071318854010926355587593296008636298546223527085678154118385813714092891663679804739515497140025584070136660802856329373963044286962731019015635453978389248253702797733607595501462842099105444181654658921184797525464960005588475979144987253816075635927008883859591895820229297498334641974423619365296799006007345655325981990568817413842132822999350498004246254828626034610062473102331325736604339480824293529588495287828278365905222242672166337654939304375197693753783356901098920941049852535259336183890153584919998114312747788683009806302224542449612700331354549266613968548049695061567302715140129729890703920922872669244564080321707556754805493473657881835971804614259874495237102168998139310306220287935717347037244215384605361286088700945286403928529281276499100777313628642474096811844758658661387519242332559358463776022268938577668882990337624938024677350698125030450487763840791958331700106792743891880665324994167333686415906637878168876342751389195116261211528851147496231655892765647901230017752696518876087930064067454775331175929163083004544726390037872106519999503556917149266728501076391726106793803195737623064564532145863597595399008848843205348058046087339411152727649871023873113170427017428995908075658387039083841243416669488798722678225259926125437651151688530063373684421599785585793522155859019224062860990776772834060950075381678541053589470438411188942789976933646171258579358083048771333096404620041753631903146396952080497501897091784851997392962756541426234304800964962262421650388720346020380914389475532096224954383717538622798846119433383646837128809547413088927281623476344857678512284023503763519982983898986495743875278162829507306871525416278096336980970131250318135332243246761350223934958929037704430043627778295194304671986483743299791656396297475135931093589040534211998142939747376784981153461446005536654792405575060645605189817468776379461551701008124767959368366142035125244846966996768660411001061823869255372645755142908004157836677890402025232638652751609513390662332532271801124301580955602936708401075487731790572663088268459566091340050579274016114857355832792026326722391795161321482426959547862757781543271808548790121662139892326016679338945943548466586059512176239335821929105396029565434644628029137244978183953066824101466049368821452838798513358872749766882516588733293523619971730299453086491333404239597567350155711059399024412969711368421660222004034258094342111191338454668908228158095577050492683587973356022266982773480515571375003247849892142920288330087715411989987920844005702866200336530790437116528666572808627627956801084613965856904472934882597987820926602033525229973074200836069914981803551740074027913495398853925028473123977224860243504527798280704836031803112663536858076676997716030051976714936370858009065521956839405559007531652694312346843802894543016368038090184085632885064582858714176353477714231328464801059936138425269282713793935969649315293136348587446723904625750661610208727573854306550663217151331490822881252360869611349711967640909000733479285825473208477586651466171553290394112318645285463021422269879947656119369939283992871319738323083275351054579228372657872906601854263334379678381720371790511979610883446037032593254514228816551876354855284060865025437354847297692991190322853788171298703676292315576226918500251085883826535961765711145841498569577882608606338186146485366771493900820774919621073720685030891115030985580956654379003132734124388404096818374220324949804908903406864127575233787194142273567015409957640172511674649078032560187404118750734672808230419234304065537249791872049819153168235939034809563760804367444087759349327779659413845071438591146062284359196930573788289866222976166105109492891170119335555625760378916314181197761711842612869851251450823670432691445169582839978670109932712558682635421961460063259473856645219592757320654613989939227723456341199649245165808471565045163278513422157197955879124823518517275273087149368618877125991736058410288975092162260998107806651207924330375013051403073058109239370327715808816842269932679863393567249419739165914918070517061030636409048826655338506656133728462687249580548742533783817144627255751488935554983517055561080275593278613940300785024887060188635739596788961814852259909528028525382554439872566879789956257017448545219035905028623739697063980313275404140193544288742412731483557140199031765569517120064091919762002773365350756331380156381450772894567853442959496144835535848288438846853802778116399461345877893181524322167217403585269457368850459102246810002150828078280587938151424607163426496661216378987466393121331924403618760286805065395979986504879873658850345150884357042939153676324291752757077487283987028806434060398437023440197797080336918336464971517807196023468766192247529857248403528530118821678533389024513920665891530543086121217591259194434549619068905332594551727484290250299564257774109175730468940616721056451488761799916689305459530665541655770495239608206347032837735040323742571245531947214407363824227073051580607684960938324858485389971421537129427179432241083945973119654870212521332410802721339535070151126559914531659866264365003849917611485676040191434081145036447333797811931782577545193417855268640366931441117240551839819062098492132244487452784902866062979825841675993274719432850172578504899267801145883910542354720036350404817081475196008645334455503854399937467086462466522269269262856312608589916378785228144131205562799550258435450606932938142356370535974334341080250210716287130184508156124840947186052625903273300813696852378665857649378341954642706974119247984195683286176422727731947003501294657841856722049388630394772838842369514024008629920627471412483256740437222588984578470982263277696641425564424580101642887609344643538810245166439778668548706558902754775544027963456132411423853670087722964940080245421671670671047485061179107723453860047626507956305837527661188014684074627256687235064936834028734938392225798087065159732276752065382799894637063127485824673057424209454228713105205030005219304525845541011972829995592936548216972007971663742168500632878338162250259374777133630354274885961496345139936798921525662877681897391706220214505428573495517045197563261056243350752143689547415866085027831949747453086037040342939555604946437762975637847899939674074885092447617005934012296225422329167247492438960239810526403823544499122359556325713002097252634545720222608863323873751611085227778088230514091215569931795858985917858278330449925155564103076705060390157790988483599128487908975573894810975638383998704955675582915693483354954347639125060517995818397445427907248746216052152099586635686537037720173257556227263482757207684011489853172553265656722143348657167743870586855580830388014674706535194949608233948734455788833134385762077737796322559111137075704835550686570776988664586148366916928238463049945157683510184252580697908586497019266168651340363687403382192676857653800396038574948741663052956137601047958083059514682988081427418026602834466137234799132929557197873454374134438746850438550178830364574012092515093473259918766138102768105567761640588107531773769245624813106138248177813703558542940454685713056439279701493568809847798037505030952394355523974833661594159600280722862865427280895826516391221330065169292163554543073634501822089505663419612383824922581868023336630459240899458114783888104707284875637862483580672246880606237212749513020199751001474065937441812122573149683043175220207134266430072240296675318340194603417473508523512608609189825357373764293010969172834718569630283700172730745645858612782231557725284921111030135486416622251421996332243136056989567616093793997744874582593125967904728045009159615014047639011216997735103607167069342195294914464265716956773050944522277420418478990486276682122445239533121386811807169650417084020042966926576326407626757778823510114261880949165713092360399027439740779080101850686636872901162839167943727385994191530606270004330953383631012142596517510686636061826484292198175890077084910046046263970471019618554251026981157209694544486846972279668015461785218760381977649429388663881839413242862318978793509092745450984410618624495434341323553966184705157967277242542806965172280674377064978214938295161195055164525519522019343575776665620576309990905648878121129583850980886897369534321993670028813322199495505301948028027802414097933759624597984492034795174865624811286746571483619010226674781282290397459766969784976916560321501851812025264793900776953168418630969607615791073201537891425244045693419313478597170047079757930377717096654225680962526832974501687454305279292869492017136829470803264874145932098494832668703043523097133078637681654092083680652629298395454909408283907634142804201693466687461506658844370661702097150578145972880787793124358297635693145265945036442495342626713851203573816208314102679458839741069624047367088448726907353122647640548148763669325171174650876619323254225731368151506554300615708752276956135967131158432979016752437090474739821654349936620117016920632877297319566458849957477597863294351573562850497849308686182990074813533609061009806584509791569432959435033915160043608976873693719514989592625598550891682388656105120373025538184605911480204266310445762069846835246126252206451192806453231652438261982204391562005167501793340142398866999365857880927160802263393007861411861764550131568409447499766083333285807586528118444999329218375494591940104221386135996576305546949150128243604247372805024375039157296480949716387044002814308480893296449727828249914789845001796582243973271765518267689938097748301703599722480093394046837873545051242193652272682354012613335854654455066084795906294709341272374202029763077093615886556919994283337618872510550012694026980437143200862827526172703604225332955870581241016673205970956784850182443665980231983820115832135495179796701633064446535908956988166993068031748108132835481013081346871856109843625917867359537028968974235205879161444817789809764695300765051730216072836273502657832442389253564220916879638677406796419859725776437724168977507270066806626574748246720410913670758067325442029791777391506782762689223729658614622189643479402239354944420673222328086741792464833925416057559201252365713412224659387069518219603794612759542304183282046861837455480532744074956968620480335046404399168385589132944635168781763720319583120977576795051155530610942281853217533211744093174406441346012550170879436143182044624577507811823182911746834439981942598257257019267215095101254938375733477956218708647706666596149880062916222880940366653612202501982588304707913761054635820606211300571678143294647672988822591883424757304994994060124685004125641589751601587386219733759156313209671874337843405050646707574575265913693337007768034107256517685626616792518376251028746031625810022985156507415029934415501174789106943333403658224522843726083438721813130327379981432514712882605408077782362505488840800726190389669154537392273398814340532173065334965917482276776839985689682880404798538380626299011017421552235477099314848976446660128649293330024436112531497296025292071947985494098168440823994564014920706380191237239309860884062758860647186178651681655861622227498349255277125248851899781204513089670262721902302623767091957318396428750463570036452194007603418655779834838525766446482370850030399649221060130434793368772008294528474173865204300924408175311021402551901940355752928099725347589045927299919662925452503105303284684959462571053357591414612693882502476466493662733904213575812109568651865846559368792813105869251323905183869900357914983918550390555808711901828021898125414338377094494507560136597808155310895889877173089533514789710244538465160150087209314703810530955901560143346232251192474204642485207348587843551592904665994301095414683534102314354864645231883242861913102861442383402028774809702988698578261628438838213850659293560107157267570987163320737228139589374210736004322545634545694319398766536546237946417121816204595267052397805742582160404802957830739296317139320206949118592673276775982959342855549901640914630036243046843545951125855007917082182297326165161976342689923501684945838922191165585785234613109725197411774879222259499913245734140912180335023724423289483178638177010443696886372281312626456920092399963153116045411234447014270175185704513063576970013121322473163829330947945259856787773340252960729312653564483020575005532412305279721557443874688370837560227230852502909646241734547069837228086142909973321384599185282512320043783344272314380323856440642202858418626253939539937764170424770616100674369585762121233037285306650053793628847070592486029385191995697734523017404486459510097977581963552314278198929562670015607640032937292738558248251867401986759533196766035134703626043738569301794471428778403327657411664777388329995474783948076816101557914901231262836437627203399384397364117481030618253961966902875901225514699663514375699884897010195073514500942523987617884539940017674033584344853692344146114450548616239489784057826769579606234783921302070550506657916831207392561867926579130505882117671729922696831613790457801551242962682973603275259973917543891926128306797388601407680016290735328707866927252201049154176903590634406474394124836633680162961093691163119049429538882313850326147478149731704149783268597049868209648404522082690358249941237535413093372820461270170773978114222444031921351347201822655741939081319640454033163965230896302952931892353519309807564741541529508375183801462372889223520422781636066129844547535383083131114817187122549797624972740777844174695137937059793517621151915726260329862815523605717453547616002734376068931564873498545142229868203412326251662469152472001508632891165158139443139086294003914185619578152852553464277456613117369770681460669478266605984521840296442234830893577086705910159942193674153085576015603233404969764338543207821165087346242711580856778581826928535380918207879546426271778537915936156125061209915656091293954265597820324881364037228825802500204746913320198731485434153605355037060847372724220915547974474589264763898662038839742486315325950291435295708559762465244684655351675284629131833018701558042230639016472840723822324118319482463957828469855391898744267570166345903279451013254129233107204491503947137286819799125089579788487673066611312478835720602144738612362356145761782896847703178935668140630946853165388889309125149478390954785542703215615159114868763149779335118032238437251207213164819360468675970203510584252319061696158781360126560789622627682667235080888401305654324522196292532133681134500245296249862142258200369059989963005860431796934194464784128890684921846624641301109117576469443577576018137509476035914510203323748600393950793595009464139418273145779460364070559840785626414800096348174384040558119731142407754916987209493329080953213740156757834917556756092195978845825897826711775143396953568896958530314019167649420089690646405388809317856909545330985149207805902984740720730377203088270658945736152677599318106576653037203539000662633364953850892332756348824345057045047601768451400992005431008474578854030199284864896539915472638794672795522521833316829043258713694421614915560560041670192726979139897239399976820810040494178642740437668003709769863734090409666756588255346289318520181396753759681484521537481702042594166856400655830642038150593752201660086546881273229159388617396496477319632898530579170234203151099468497359089271573939947533870283067059749936565033221481785480004704251512193642147375607736024455674474498317134285319035858083054938382170489940575510043528179951923178713612883997825663597593434304545844132576085085761399681751046887644642736711863668985622905390669407225479844449258875671428613494597074889702206400132775343656670892179614856512695403425315217313581305270290045050894099849363368346179779685000350064033981239154109050723505690454362785266741067371910309498832381492863119230217356606597262808042181196477342233109998999336109926144310910588060741498364034309461670736779608889530362865944349885975934340105192965380908019931524522071083961744602031099442140631008750308951095364079458002047620213844031239933121305468801820458688264965403578822876221304306889638936718789902454683551419947629190738999065205347285261311103089572264242713460089179565557098191566340614753755512619053729260116489653918727532635401889349055156478472657525646952898379291002524780666511764022779699999529974598234438868110524965353795206839101700281279807859428784498326913350387375985508948714341539123562086986872014263714538729485551149293871926943036675227349836606691067038947611552131438662439237970933342322476077701980081018769287247595001237458368405928083081024096930433458273800179306629488193655089827426886895021447685754189547063807084802605557126594691900573434455191186976047791707764641961855897777531517703123816204969246673404057027713473168944800149313132172591484894921807834705765908388306179396022086912312071707923998895998115519873149322966853228247034121163946763736301255956492946945858637656870579461244604502132859654605708508269650338723910947951101666697004593315083506628793349258846500848559008939816767661924689733971670872268185546764576867334156550373774674037232854807091854422919232673748621060196371303966228258416163616927967979984258176438638764818934734222354743329621002149256228297711736860558898444731394735720868671038435009307518510997873792769995269358239585131312548178735368380802849110124107778555045274476795790464143582270879139565249047266501431724989101691262833543579595679449361368398447076463365142594052341562512901939842826575059088906654596564598914946906557650757668097412137897748575942572713018239291004197420244278821953832304209894308501565464976349448304073396167703106948531343783236269180242741340402498286161626164838976821159106749088566736699951577782525687197728500774102141603280755837802712014011512948926950648065269590150602742473843656670383317855976555764726961777953391677024576734464466251978148882407104147528348785392985212910039296538338022531419533287997261122893981131097444519738595563773847323484133904679841704100052472738207004431239698179439970246538691799822193723556036937026384055121610708800595167037636912688050692703676689482816572423050432822838479717922643949886491949511006867250908648842309576783142399657929948551680573795247677428174956419271227911008181780247962179444339881756795208409133357355378468814339517990962327890800712991781533811749354547669499539801774075242444816708323892682858646536513583490554370531940776728006409959980982830467482997768989367526822718903218576298793129370741033028288346675067460977589760362157870867816484640087474902429908803100194864394440546654474522408692507039644733852030897777474188080100441446150259845874950938147985382221135349249295615314039700927614311437518893079835380593380245054499298125444042506505198580473530056856158875447560343352613041443381175638369171320486092491800066901901303858199731469061061095338363833179854876361739358042835524300029648694894757813699169283780793126033136446094648934238535684750571416445020367736943455949850016131115189901656331429927148979331324765950761943246203120055136573777705878108468485709124760448085560913271058357742487463117502612030938431130784220254252779875161255983250715078316503900597395528475741484369002035678602716825621197777977190457470932490935256939390779659105922861054346663970876499248788780393245708668669142596238739452627582483056713023326156449740989826965795323083139961883391175776264466861900431266423674001080469964207346621099104768756639918050253167721528314548478821684597853810674014441969655065992669387962095942231127686876443140314294616322988856274195140025323153433440358732958539302128041604605915767333184952132921773868667077325427872239067388153261023987888085019887055408799034731624063033222166694939345978374644683772083298802729171572631776671903108843933210900408033880453376518040268664434396367785807655167572292204350459328237031414612607402811125913246887829507329480248965878084285812181210281758031434210107882197963648334650195931987427802868095336351956561156949229103227580972454845472379838206622176187922457350774394578437271447603502138015376226355537478200947094645472357441779495780881273093843811442819207619271595303122339724726024929038864726728856275751293355948235689924671626142813952311182617221302327475714486952540199619784816245997050250353431912927538470395511950251880338347671644034312091379414224779198069550571526724562304988311961008617588751342785458584741727847742125293391379763192345597211278979711143879932148788540510588546108595166582664641430729481784052687679682057443283014866570025030198727034670673678774470222501948899380863815684043841147089916429679867138982935699371358866477413943530447123899857368824725155967562250988919730409298003848150266384913676102826922652907642596725097884172478887344131726677089186901124806819970169972268141613803157180187945769805073627866491890893672805866030358089497664576550625817736101741015406505771628958786915833647874152440483196723130399484170067629548187433027449804037998531491741473803902828528925233048712402942236366809322314646401270314756412671045793170169543391308664768335605100980355503001732379996489475608314572845342601982798052839695957079224937767733490401404905360217192172429697444445154361146903325865590069989058861374515877152037369922808354588849866150845109689576802552681706084989842444722760347470202460978208284315249029981358035700864966146838314162308928668872659923260518170728249048347914600503252727925337313100807282283043603738682358084938320685391608876127969880205632531643544661460258129810333168537842299574093760994113653872326952994221588273900713419864628675745117297619400885832551848036321780760252883023164236544066596643019413543371232563728539101556237692355379268065833170858157580695703908243409748104637306515846874177961260711450048171480872110252129355486513602508434102036380423156002952784523639311069785512556838192699859938447568171544925734695503424309375284047119181051380702239306903528533831499176839655598247080878759868090017689163191105134985130376878063243288383073495082426086653198256422943517795657070285845150317000181885842583090780668462481522561875855576743862500598201207929319921932253744450863612762747637617805074425888198807781962545033463699901167809305042154024326554083742773213433196720237150644407335478972460608085374650235592645958217150963649536597664564429963378570045438752923465761741414037281167005794167674372028039973041603230779417125932875762509779477953541008524669917186530913181842958115838538339121763863649945210550637134190184127158472840279906573343515998351323685150325357243864380829354447886219849756886388550397452516690992591181288159601031550143078634025983507432104976691280979713515551517415404931544936089416983706301145234703272559770145271966926357278218166473802378968456533487580373004985478005565958603577316609184206798529311346313544132508692495489154226703579292229889930848667543747602598138280160973848422333273115502991870515328186835438462849599454537092219058718571704775203690102725709471960164115188219747275065207992351161549701540296004875237709341894336522803078628038761738603640798461075187741202638672826010250580600565538506827459744516003530987211613482063163047384688404571999282794447154102067925153594176334935209699087063018098502565237690941209498718513654235257627600406682819846341068609909726604632594376052988383246285603577071412382116905840661428186549199488577309932106974126545849431462860117156939079228806262809072032453947436674966662783235897190196304350292876621764078796981231517703279035573101329272100798322800530906358705716661051755308704203201506248208042077960887431083153640962898568243700958898501715659599211145394347158554345691924443067141478790157171468249051281716455691473292374553762949558073600583654283689827017700323030597146274385756680200655451568641222904098336673683974544962392726054213267158759344445031553529953784399771875747781700429031786283784257064125574706347224344219448227872709646229962344691102984552961376660438910869517694785795145921027652026020733949906913402230743534048221426083334508155738579728832040661645996924500500277477385614001875940377843784660852020896750919806541641624071943060012428750510409768292802533471097697131907438877195507457222984028973220944037477762657540434978136108156980392116320516502698863472665765293869770690515026746655726321455580291084078244044656344173500371203550611086839773015216091570431339496686654945331050441810825100721580269798690060018211168420515974687518263486604677882909109191903536562222665439870456274096391437086510630387973032084141585845600565001051342201305831835540087450111791611199653946918100361681772474289976824373795386008047515819165028739931652245839269182304049387708339551717372518225035645735136196728444582683114399679062966682065906981233697690726195019205250888023220705270876865841448462595058777526360660022246772055044662193561132697218258625065541197826633441953425644480759936768602855577757555371114469957657400777292617942717795103256106503828959742258683243844227357704596352665468334937838462684009202018515808522043207298377901922585544988559805884183286600326706305749014044040064464857453823612332270826880727338594450949250893575305188647868883384319767143991591201833658325253688303801047722497511250172882602192161915825394047440055495402697341228458734828590934252296105882665982274313190387214459751058450781394488103365756326090240770646959111611543621560177386786349518457669249475416405980612259695870417948314630538313791706290277913157582743148516335831901603325631877020503919030978691792665129721113124233208521575953648858378946419629601484512328090867420218672308185794107879848129918639742768997552529554139393642263138659521262996655160059049551007906352892750698391570110520753486604262712475343066604235709226049799116104198422910500077766843678730610133946716457093433717191985999243754020894278943010186046416026194499901267871092694984725993450672153498721246067894324835891763063662575000966708183921508683140390433327842843430728805154778935790327284067084337118578063582077040886100659263955276867560361634570599892905157251155464598040651840398438081721909146380073860593428888980990742345157775627300099783058753271154289921349529034541684247448893118439898413163998196877557670728081520385950841868705425965265359509625764749907946633745662363747674555978681674374123142564038666022340718089612854430009552189455611249740604780715958725155868252138548572106552085208582686663258161789840161771289383061542290655990413714460248212745943362348897734568328707273211311473827409486358700503656557948182318626777648846541811056065200881087533623461651318106746513088313776222522221682494661215670354142657524915905024253592934340836541392864958763130872287492032508139206642122869226621814386320726426256924045472550239169948405107444011432491776264214951335793380248300027559452346270609810072436476469779106161519683699199412621364568071002549592525543408121109857268789564766262721246016966129921305716479691141398740691687314241376554497360923008021902926822923935430278620098714416344425242663336482379239442717248738513319629369091100313992797955606547956640624837313168374355850005355710843679540690009619244894493403838341743756589840796542468630672079856576675381528823460032098675498786169574052173724399246374682628016181804610046617756510143702177349019789387952337049115814772775538462559314549373868341640854945111233770358006621122809867911855283121097271122153779290660839065895514419041978225049977057026430572363273786115757602330596502713325222673484137350805153457364908170510325055149477346166575783660127250699884887791964684483415721968537244127367153909537872889421084003143952355082834153618905549444709374918987036305152785951845524263097121525517091948889755484125101115027355991798059620579909181552992509123218853068436514825299541834458228480921881778340672136484348056274129338497345812523196059956133517150827254694013481321459909835520133742630152070329033275628972042802721738811934068631687255332673845529810102705425346754641195115362354316015813788932298730193868433596240894097031858793482772709459193376147865675625652066268118910871988042876048695013532042122507275957675223654704336121929834087075914209431779287622933544353500114772141076324742626787275183160941692385470369984729174782176039413127692073473090882328354898482687990605027730745325349092374287727269356025868738685952628143100991234678592952229148661863781178572903808490472131441862987015494904853842533267195879769881034056134446348772290826472988043632973865388044000055934124796510484163931399762893530276100691484262635928650831962453594262340425969607089301799844629644982215121796084230505580327066275156634700420741361608281707841001936324307717032574583813409070800772893575436484498574429777540675995291892766004906120807923455391182995054151482276763838989799602659891500121655919187402658012147700995705785472481185445182789366061717961079905830006451483394563930459372707864058244458880090911127559017842922595665523555659242266379223534110557902220211369848184791751489800580734280615162698662171379115082047433312444760321829958629757493660310688760276224067892172705515674781164929183290359247706287507222206896068267692061556199208555389814793967957822714515434904592251187723495614511747034012102789241306685186633291489833895887857422471870093227429927492789700350881640927840292993705196152545822515004698555651622269250913766813161254117242086680619116740987630276802947458746300736013299772774427159518949838262264262363014982806512414966483921146038509412846159902316937430077126722434551533821014259833640005685349377559741662045931933084135902342583181735250586132887977435957306877274082136310121568749000110944811457474337029836623302099425632459094495055018192790157074501791450280893701249569447602899072937676848856734653156337108154574945040237567553003760947902030628504396138667737578986726212827152780536446445938365578539285804299607575783856318091452507492901346002187905299530059390271410352702894519188849767406501723353586768631414215142297551571678702409962374302844414165095355485599363761080778788106101283666317015081493593165445361809909919212623857797259742246221669587258846904557498038383827273520404879107674302429050042081152966122515430173518500926586261801149464666242510831337882980691187439967544204577282708473168718677926567908118157185791489130258490811780351776926294601107102907271121888026838319089680496503526189259017914723076701787444008245174787695928080195154777900681331241911499040461592456171924692372053430798509448664998887482950031989736792365841948049644716111691626743549800084424526728389670712646738968589972892214375174408367593737801787306281634781170319260967761630038577893041603745476249972647343751687581713875151323259594901608294851817988900890641766740336078304414253801538638400021192343174665097943197043024493060204879161132016647613685034943263274557011511778237329606929948586324768175114116970267008019773611963067357793843008717256833913324455242113779912827021884882792622373899056775143078936838899766332261648031465156935794078563430440222073812601412077810132716284988448817638805689888663880518582046899892387022293452835752001303430892641008897456683723123425944185159251094100276359142253788911895168881997392390669714062965585564623282662899225477837195023770093446561466250968092473338083608798522870962028322504188404858711854178717246749485696995896214862022283476058986652331048523167191593707341189340740582672330623765796231469285312035455918042357896989959925465949465878070930206760526785636203857983589841448803210515081867804622286718360185353354594293469774395288576596976807951456281827186548846692511761863143801022541365140049219722728235471541533070170600890201383655532185580453848982605675099053856774156382629288229927443307656826554232848006235776522825308034920450814589285935627408549279863576008598424398315708617332557644921343580577553559921465221980236744718276307670351674208441712721066570320719197586298637061881200826066870259660477445168557266508063781568283716795838988405948910020328211547002754251372666210853388661639242620398912869202016993230787702160929106853624401807916532952928302566680294150620175943539669183946735886491843217842806642975476992329504098045717528132271852257696259251384557706037596502824811113650753446904693406974182526816597161111192200455032505461556849409044452063273725886422152533260116991990973993402689913470530400044296123213324947859719491026146802955196311697039993808514612136811708766360462944567884276095259339795017749739630293541831697863419573237594178732240111565103146063580285914879327139218990237334752225343954197600886522963543000773630717303114008882063994357177026640607384739073405071688465656327366995418831225911163759227672030667093696839276098523142458782004205244018536026728314068414693666443035408102530935008576039342969011358023483666454555998737275745413413059632770464517986955829452050394114004844508119392516046231848453176521054570733750098333670411721750233896701932036193439424918580604641053728353005659305545391157155442252609075465934197444377124995887821046389290595916878848262886568762108962762178718569723516253069744160120124045578101693401408555782322660848664635558480566170524996037347702360586107420862378408433988585897217623121966050362796624192303187393639329890414435509121307400692145954019694858061104830538077254450328982198189549168513477386851388713244903944318997595487960515256356637983479777741057343627023270869356407464108010742272687249571448419393130353902288337687006337755250039004942575471629780444257887896807730605883015375010123830688353574503119197377504694525916683158679449167224093267103413051279020144618892968282181459998518270086294665442947636140062839396700111989260165007661512163772710976482587922242226293041398818918106602851450433318859302898508593792359955777754997318989606203115280997548761391090921922420890875021530456590478613793980538995270258637405865017071074341343261829574698780137877389034224533332960333650429210949311236471739127363386057356660332254783744476823602193444409173978145892379040564201157870568535676459666916062839337843758389572971527806632861238581830583570116622383687011053684741745790941937205206705528640418172992647062921318510200956446866594518581291029042527901432247093772960570653827715064854695655535945485292252950040409655322387914176537812984523632017663026290328262533014777858937292649358796020257162397739275712593340694604515378024402031582565014245963068330700243072505036974876333744620179144837592241635321798926605534856856764841971504969269033149173267297192383435413724771919024123547187142374724010554556682375126864678683700212265101832650151635897130061721224215094898544681877849862355814978524095242349437450342208207803097502114942368950682897310459377147873193984441176935996099696293212798028791756513487986719007290918432166142133737925847011518895461852684666161079955600219073347111388414910652516007462080905645481431708994143161471190214780514625182181803441279948739162853839620376420939658717217329886473766197994532668102098603892424239917506498691130986360035117133160095046133290686757102380619447232932684247821869635109613964693813289559499885437145765564630257808764549784846887761892176365667723458659552938082999455182975119180346807529146374923869221228794361807114506610912251128779082774333297951906967754452045235619060517361362955493025596124148506057708987475966594320180444782399461274370988292670694056454017645204929963552573577823699803117539609375925746397610830693806814552817840772708015427491387961717459185764133760722870282197723120984081238680902391551145361485974421962118107820530601683339702770563274587591660692056313922263169034442670179468495330930921591104344835995432064746304072957815502722784532189737891605774801594161983763137242783922350441899758884423358940063756020807704495969444930951757853371091957212727656188969811915029845547653484846832627610399292566254492252617333461911977318923371014388903004890245771063926770672036483428897543446840660319207172047474409451807957624665389723151179286978537238625366892936429689426115523285736381429497090613447586561974483349107974307183825598429539344386404898943234695713019544981736189651887137674067136910353052069564529290564974937655016665065348128766929156996406910602384900970508655957088267051263907271040766567615192600435224064021116942082131917128496212646828971680576671691665815572834682736900920976214242642390990886442264024888519401308348952013603258775615134532868398117871441986817094888059318854015491825736018997107576096298895370909311556931227132082508397710245196222891043183331723710803988137342429426688455294324054356888251943067685232867753576917409832231434386991492754003451018747487236312051145828737395300507029335076731256202370349634036557329846723856944671911156060954847090611128132125689862136411764195141280391135855107866011355337459267403325494129955912907865976348713763438303517904899724221420686126801874560564693846071063651981886871311866744116090829501853918835625316161729490670999381790634903291554451288056417877550829105445245570485913354901302637525372283217093327576096571766397911274075220027054440533456228739009779037266391041375299203760488939906540652629400081346947621556735012866690588066320502045529550425090359291489890019529408931688963058511626730760844055500527693969695129662564688075362086921822662829632107563020604116589225177924673167359769797748306684805448632005143877897229979694612315934371381628368739265000066171764655978921846997460016762673287208331408041415256361015780208638176474049907115618213039645093597423827865161114868689292078780359947176594381363694442149009531310565804081376767485549063463298474938015705975701242142971277228739098370301122319273644886166995356762603805566352469980512237208104057551918556607847649644456062000926184437213945680210776046750701744016119430206812222404550008800929073134085892403163186385667980461668926598761552014119171651464675669259395683238526468308428116327698403402909284708932202325667583482831074719308959755926321167020271543755942684124730664062048975806563395257173379593345462260814839845414756321594607019365540526872760489664800226328922516386543458574372323094428229012470017890572059180279119669315410574259709611735494314506515368671762249483905523016909171755885941911104139241246639991210289394679412103812103771946580709925762793082260999975404379731472648814796984648801143472940566335304111814833986809509401262840538395078925141075865918745101472875855671500619092556859617497681244496870785821746433771810549081904632922321905222837604409303264135130084971021396394354334579338026612891948675779984237294759966101441629934878493107808166594046403876862940338922781305392481921835344549255129885949693783450560718038516599307922320499602254299445855774128387570806780588461605682690800256367604210693910516378820422084745094082946062208042439222713557262358084699313463709969308300464795058135353867620518384510231284412644263580300556449123819159124302991293601635408612576974444857903398165302848721169102152931049604801843920853506041529922433650605950719504416403374398459269461076904558665139570986076502656844516579081153640408659050232643636611203036873216425386541531487441469178760494805593738570203693615205317484063523063672929112710613198953714604230698204397359786374019378235584970112412397991208239853743252176130717205532401986336174771919971680741522982649179488020625406115320670336202092196291028063670317770096402989396879078638187291874875228436420893897079301789265481559051091301836581994904798168112005814846442046925929983006148604266374577377231865633023079241500997759691584983624688706635689807410098910162553045126319654180645208901199409060138883190881551427335125947504145313406596623509727812871688106357935410377498640400937025941110408828848503035942503600817528673264526449909960713978197038433136374914383267324265290727120587771747436270156123578671653230818486091951798020884948352781040534664227133033085481678633144469107156399276506483795256706780320642936923159373729787670948510899202187804904647449458810621387741859729598273121337982624697506947171730609756989113804100788844516801198107130909273187214389308357656162643202695807412179088721881990993497865591810301375510707137387688970722177124362886600726770895843693778767894913904035934582361617575064595637190023689377844771134947237218711084330528890945185106810680401522282642695847458669684217304563187299018475872986099399468813855423238773536057416581991298108183410825913236431207829015567494090278946159699552085763008724778555631269775982679436891636971449917980337788687723782043149727174912396364769868173304306096191026994185060686365210710400310064311721837626459080222138627698480604152533689820032654740236852326021746274548282720121237491342631274702697725501555908020957720169685627929814192340237074651967925627336977242327713130591108028711732361904957047265519865072124563186644739889207407378468291154281488988375102067929744783267563070699663587670500194815324142652064026787305801583593814078009683413906432051887920801724350558585574410532855817981203081001892847767950300668870827911881207951675279881992446549792130408380344390435803574801791551988512415474875835548433471434881899501330891621970564837775969491951186678516971643357355839074115740175779875264231696460714184307721603969379564006112718521464524969816741409505220952153838221338893436018893239809621900660619822580132687028892037731081010298552668683013022390629057169799062883675876891549500221708796509748867217340660329839493485364466905769104230397279558804132338682090730072164275430228321835408271242845785166437390241749337654463807304332716120228522909626154100485685185451320359881439563841855824561762616219047953446590358703534952451433752875604795537767801691216176470132745217921285248033640743643552190966648376331023551873539093341070414253037020101780590510384976998844917900047600676250700275452698800366663938114452911806988578779680971121430123268868914869458743042745929563673478509037109244929092960652543861198681605504255134349923403342554552397447336105549917611695790354385023961475514485498019894129589251882556328171305593059268628744576613465034419134547465048324317549118824396726941336788981081432201772341293346693687435042773893555150977735889588479448995172584768058168711298448676524738938986747420173669847671217264193444763366938925984678713366932339165579190109162193765208813065893741458687569533272796835839511796704646145605563739190682716030721885362169921949256130619228274184811967935016947049712254618529325551669593183842026977845383143730140985072967237079712657232738084354600660558361209792858108741289422390773485407236424815597131049025279991378866574946721307008314141217772823130599808454846355546184273806500906842832580638757291094015246814964415725285857849704926314011989058638726595126729874427310487007221737505856153371621067721397234380943251603942652968719375756548742201545256389151738260226754566394711829148818146375961457305084723163462353414247262394584261397219538187369943266965557216264706467591934484806099622350449210153520588988940014198933081437985244061904622883088832518890041895311566793020413130834658264475529382384091735390727783322613079123881712229038159346417162353296154051074017333774733582146688696250985682385068911966181431732735729414055067814582637960476454442722275644451075520496480108549289408916839805043108647424307152780147466531282147895356039280215605671888897534628954577907651116185574204074770200825301364007890065593965210261490351358027357362418733751902561761815394901725004380433744876754954239952862547756395935098591361440339007530075145861261443605202078004668224543542820167069816576027182297150753271887865738036758745903652814759854924869143767622036002239263149336860965840635809964695092770502658087996160066314881103175264575146897492706696083080144674938336782653038541392317406454300700589155456269674086512546177799483423208432356606189441324192161043779625709339055408492438340937219950762081492113295873693845332517585705504486635946415429528703715854660553980426231461275172253008292218858841927018726703142580165493546717773807882732677898169484581333317016451688474079645746169456149233405696778347765341734304195287013748548370814300668319869850506038210351924653766225789509093621779215193458695340615100742562998037233324336442208560357368665717179855998888535313685636533393994748047030387306152368662252056100700260727712671055505918988286602817307037775915597550053962799252173282511942425657600199923774741153696521223904607069562223701849221202925750983536607796271894609489091358197619650832278933241748556876847435047810536646394921372757299536532899819144544736392617244525759783848834056577031541838962940624642373247186304166886703487650160057767722814931857319679162192329202127496983965707015469770639451805660968217059703696529010857786228528016299469882448896667792044220519082542630464571577585247391897231199967889639589391033001446468242365008692978562540458090171214245293461735869306837921291923257617181706232733042304947664219279181790770890309044929471113595961427815129180526467275106735639613125036612241764559568325492838154625578240986361182947073232891293818894785319714299920761833162281585708541869052549931477149384512837296815793094055464330912310140014395912583699883645629852758836240152200049092968435356811689213402951902634413329491648842414934404244767519110748765284952310065012474942401391456944157665888659221536816293384559617412032427759171606225285704047033840152786095473708036524636851421631684646220725900895218682905439512035440775223154902771848454945290691586422961723682126857816415048296385503058508522071187714878315051706037158828998037637327378206893925988147747992327405308073684680192028907629307020875070854997431684822221029872189077339410037378666673314588850446632332696629916719496942230229851669028452048049191217124164080216241444031114133688027803137077238873836843427310709462795670726486774025097722222268344193681146668082317968885554034076858285843909921417318593396874708724462403574134213277518757830193516609327406456242666408799922625308887050341294641803600496821230888564791807487601513515073801311284204333085660105565518813970349928649874612496672418265202680848826213046153341867538273648944599330221979031690548388135117484248419198000267781106905978799632351974860822044604787435395746749029225166085975844878637521222014888020847811165598981790832900813309105311347104163504330557988176947843957769200837005519290063686689832315385254633176279972328875864203442822900180002329371821790552819284450376947070446731103924005666222803919511628547874903277284313301388062287114033343582740986036489452836514714984286951061302168098830765284822480122476964851372428228332958408626222493730469489766830432062195441256665840501855253941242253978785850355588678935835004535628179751286547812200707160204726975090906094368379174029252303866582030925107406558934608304741799913123914158302659769950174112436961821944968722514998434659543319691759320170682744439925006063011874266256951366540667163599155812057627688059527383326969040559597932507729544314642007866970251594080830190327292360345066126662883719113528223909896825163128807929706631581177770419699118329658736556670079681320798989271721058703413773316281055247480044475786261220216346575562035540790525731108486537674478065202266695931758481155470345672503295223034505864190302963993429122743857121554515695494542444825246156873746276191280716012007964045096609888541249651562140539161313155566839161333270373037209878722318446773461637620454762081762543743581350158059216240801410168721695344728844394250806939057093815536346526248340342583247398318525199120202224290991101779231333869479436708986574488480872518267741653342878936925944242336572744539447790321250478803881776790022769057479426696423267033106481621107456380597158386579172854903832132524427722843717232511136888752205027041038476330242344639645666203591092226272781414972407803571960260598333774883168910389457804001592996718614527540113218561841042003659397894600915816606359803013674471819869609323463271092508660723295173055341992962615632550884271534210994003166647233349695133103373400179401437245711199907684672842476213698977928330226054161797549813034870327801977070454695342763957825690928850854453929426836032790038452307247750761718407959501271981183314151255652381625175603126532540261537227848574987950565547354670004673020062066334954186534786050548618233870197019898565448169307462016559214160674973328614615146915336477318341916872032086754039146093880171143445763157203935312606393653498442387166162129619334718402307180658744210465413125118847324051483496999117622954820991329523239007209402821257093203107018676079481895121051590646432739236979422531634177411370575632775980521551848731471170344253127979053720493728357089505190874725036369998035254249979999516002559405608354414244751050891550835166600671318834069795405342560344006910271988276027683072449903116663751877405379865381962794365295842763616383945735841064530046805106632437559909503776526983593648264778179787672906787183785369206115800839407070743044147577752520315480028636465456521933013526970453071780602093945072749244073762802511808048684680286932034991291951256350746885905216468945973169077618001877675430686691479695437928161658025086255420790616360364377543058098912195552019110795771733272920988712407256327737614720636205848617924347399466587717058618346508106225661329333837128244608414642754156156258209096155362373329034332323283170442334288695032574811559047216992199568538843542683149897353671186433055118302908214577079410309402145729343502022434522399763148157153105519187641399135434915669306704567524959910895578991459771548425676638918232997260429962142805151840009991233879281394011758869440123426484279818506347141083472076774640290176982648008977730489057500500807413098789403767505537751029164003520617296281848030196366290398149792368427206372924298524439321536195948365664029081655231260036347991188192225229012920586081482548918954377424300252514869889523441230629180336728743114109979040318440524393668696917874008587331675590530192400141263030058733056070219003994512988384787640760791057813315395772893947402305630064917928172176960353994792292583848959007382309559011941364074650221471016196074010888299920177833865975466223143753137382477088005904914446899872883282349185593739255321136566854652397140306692404805048940913996910103736390236091012376712612631106812225056766875450616309323386712041063429230032054316994991192803424434730871624883310166698244795917804940776307238042261372445734609217934452419566472706128118335473907333808912014032539620060577381603628691966796927838967191663434084237467517558939581833288963065947316679713007502163578803550181021644110660419498330653744687795706518655102305150899604771039988672626172953599835060074046930249807951888638356564816354036270962978177108495219351536394271787044226984569613315744479495126120205200882817883249756503851064361034227204136254949610384947260851799486640354833638643269314974545486726793777555228155741021961773144965381311804139951460799146872121768219666507569283449764274648680065797183591794629265906565180716366243250067557974313229352578134234723716717861754312781306136325159770342010405357685398455904183893071420726963399810999720023678488276173779395924338162825674419698325269489881709986713564652494467491785440698368161291519741721423360476804467248321231569783324140596217091008120425912452933247900295852879504076275455551219806423541734313070056927937061670567909870492983563920259846921149553826741288441192191497760319159258374373307363845124054500875501421278638147558819782880298432433378465985794553986441184932208533505107692333324935306169313880263323099725292495383095384460960660593458918944847732327691207984388095802479535727826879454348032457231000949086067222707537994678452639478855214651794593254927638809344407456312534037711452763122123887864264354384976923983467503807968723164958719374298354281439796040136825860543600714032201531386158064384059776777549549353117864789428593107891666912205202755288862597008731458547216144472922547171685059688976969550756023483801352821813899273026197216946440322942436687541576217017218472941725275138396134153353433406220543038235324589135221870933761458128933474972859463592306994911898441257331218169632111952185290727550931143410611780684273173544307712446873985997550933528272851037565006362908290200222005739545562190479896689492207182115758957488822872382482585650261516468318666857351021218727563602778481283781430027511697782385046143107214647067572218811776791113157189117716520153817120197234632339062353545757971320616235411466333973618689616360360349861548641999388763703195591003265798707270245572032202892209568413711896242069769919361539566927269176643783271093358294209964970853032265397478368051694760546725598586194483045604505686161692208941881248080101403854506886432199769087547429965875774726443544449265118114773774741968541894118327995616144109204086025750149912576824461883087130788383515847172473841912829713052179098702288941147238928498791903048177849836525932097161465157713305052385076669321649357835716080667255389818480251677680473356499927392367008203926010865900832926041601141316375337115360278927482811234118593747500123427106167380901399522703085532226690500770082375907809268503083949973831636806165635277855183689968036338826942889802027246036486080850622697993528420418644108891314737439947874901221069615178762730656413797702520965392910419061553567836437324523411795728591589374647253698219501061723998816051835873070793923282637973463781619875393745312855982537446948792550134570811175028430635474182269473162455846166211229586058777086456925806928552639192998318952819510094591863286737583611463150710455323668613285480116459193939397710199163446906360036583477684845151096700162515348743466704871997332329996773603513699868590248008584180974514501864473952174346714677171477983781813340116551424655652634564223591788441985317528379654387046468428566713358267466950905702760415108609324558751815763201927492860171294042731336568744599338390218254204455381931031267279270729720600122912330248384192547407316046143174415116296208824316241415465284988416709902172081732144379023438455619770730072978935740514310996476597849189418816908230091149000001597002157542990115483113445096816908528050441302879989452013310054163289678396101595108758174218226438544076621063207959302690404012457203519114496813743576866335337438462099345124590056816840257689916406773303065050332119970224645200980555183451979592455015376028575471482565554821926593249537281985887404573130525585698225330937752016205961473965938288103408057648350140646311809279819885726627993977551746610545521971673381224413139218365891721166367025576923082539895970795630216646233044215295698515462860782085589953769271988405309428501447958971952422954269392906074935698834517810569183586218104621835706617805380966894579977181247206436614623250336167983582585493378292878786435279102618413297931868575417481702498219032979266689809393198761482856890521900637704326675044017145989998615092179875102988731600766169706551512685396864573681802544301293752151101798324946741373890574665517342641998026010175765812256773759050470633283046661122669429067243666533550222489249322383163488978379800498967046804909381533312111643872257232427122495363607189968757850592558720407313854340282225175048323772886660190272351315560220375573861877333124958785670897406812678691674906210342756875887998449826889986554989332278260710823176639124214849504958747614434720082680309605277719345055238649786436979752697442817317147405856117065798365042432568904598470580425972919961680439755930772872478150086445556274165191338491644475787497525928410336151005585808079038395793344886961061722077538781639030806526394157168347809659103231060363569298575787114111555923294753496365959869668991876798806991954191743601580106572199865499527029419351026769451600954409554141957440498224785186355198639716477769580619732582670752434382552531134096121957203600470577187747498460348278678150877183284206611057462061544882744396349347584594253844897850799780810172583401645609903234110035951862453877916702574108595463423383592929629788655841324848357099165617606562818495479682574307373588040993286900048656919619640172325324758572614487845529122285907151537005404352017779756656649789057891935691235810965621767207673484082475497798406203865558348502219034372311021345572801188959371587474431226327820466406329978260354379176944244062802233056270335801423869310702859219593373173037542241229304501885560050826227870278520872845233061622991416522755434820800663079770762378029265426052793104728510440535661415431851128400185153383076595118939704008849270774375587789416150762501506614092004567117013659796181172484315277246077993468866298610075087746606358071551316135646011693814120091068967783771826794725055486301532685162924589029804740522580433286057561968784245676486265103822039963539005308344749403294628494455547450905791837250750843931197909237785051713984561286910051612811484650025843204373418345262879011151930487267682475395549202090642344063249061504010760129042233553633723864891461974283996043949233710851437356970833757098116850292846286159969393402677291665175682004670711813333604611572068447388556075939586917470492382219672751053325759451549105841138223941482046748140509509353328788967906122602082894048699653889999691411449318606244536109604079910813615462611359574921586077070524584814154999103297237176241164191250581264829291238138388973987286739300048628334728820727611652065781451417927406476294866240654679516234577258201639100887782069859748494024804479927605576822746101799073597934852389888200948340350802514037159519270983521589571787056739075602881164317468680126592716373862793597399340820114714565870639267435891319936175997276344733140147275346023468792309004207805995403345256728543043825308502512787005885456162002592161745463792449418949291831906509129139015600043699255676272320198986741762027843873286227482866649421488601277836504907002263667499693729897297735644652371175764892328052052961227028829321940726750935236209698815692462252408225646345227049020400480829628159605236755314463295054162459821826848645221580869725459486299800928324282859724503922742175287954783867169306432085499702590241100715287091607289023902960651437605293107415960775272174595044490695917136385880883981262678580397924193026663275096630152290314249006341367899596631912644691077483959730411218703031326990412583990990366213850563462273263919100162621615119029943681989672398822595195546658698314902293488464771593387785811024886251581463065508371651542252734814422029406794693613988268687758609711515393120397245991912032665182862498207687146422008899815183350983332688503536789995657547791472714677510221055387591178924452433940635675303496211959883047726385728995345416649223248569390951385217441048303872416704887932551305567946852920995509586614357876174957866125255415448392009312417699580909600524327620031145453205214582477167632445941839743222668810824793080673684186053609402702348017841736797869587905166057325565959194177010861188971141301002315614477871210819915600564815473469847902664928265358876955949370808442246737449132426057727646176102059318595218119799496750416191398288728531312828435456199880321571951798442131665035769116810384571829511726979840329924760990321802655034476979205668467660253355972579493692372192304726799562931696873693521274164793989899816266760216127544278918580957662244828077363552218459750608578258911299269974265555130637999100505032253059679985630659109928231606320041626807606493494229467468524284187068672515483244500345721956337882770935696367130619313932890328249499166352976276881644940230362356740098344939221632173079809435222060906296475147276777210878591902900502922782508772638662216208976331405426102240297498199663228654964265176389756979180431950748644923912476545221733503230565329470076576917177473628709222168774549994842013516429963199610512470892890537142668768281771512623159031761433080337382948857050881806552001914698378444011494973033987348863584284026386049213353284165554822310094409458787301080322327252042881189434902524514053111745878453229661337353830811849667978627230440788683490022237750904378165609676100123931323030031627157915205397053145458354317520329296374988574962409331813729307308072534609927531330709672353016030314958227427677526450248836405270591894996199779714158627463089706988220035818019340056406574963471864361052002165124334696202963165965112669443806330519723950905300059087777804697368560187378144239382430451409409932055588008462110121584521039893959446806507369231427766422610389180659152941180186221187879185658977984943769421131009905184613638995202485085038365900956786881174284164886923277692650077317908438275088307698941565384920990834599953014542433861259478674609647284014034541422517214066151076302178375863235898489007272348971895760430235084089224733485263230365106109055587139160180073447246275676666083967131457902963680184140528300508242907075184619692084701120344465780075598968592145632982688290163248684513153212136262402242733834766639377510742888660354016166620774015064634457692617821051979184402514539286379575780408149690411312320763831111570565870711297860140580282620355285665715714993547323978367271548607499784246381850081997606061837422131310866752371888123360093699455173093320860211331125785586354028074562660058850647373409409485022812226001906965005744791391603360151921139772527795487569045152170507882715237526940296183576827104833841945613335386184111353079812112252224857401983787051316623637330260476471831175670894802906667913438484904147168966763230783508293186328207116160581945904909972629462271660770969717122297419663210851704524477696321725244358562986572481372843907169236186980034544168800697554541082218248097167701913997276265507409423313994031395725910175135524781294061177740290737779647136527718276025690622054451952903696317011471179592259725544017416194673166347181106398640125918125536751205606128308011449651097725918180720806495171698034113480587842998043943142375336186009477592376692659189084307533482097779164501628739236916479530891067622286727623453055647089105889032082223001639064709688525597014869019849009903539275407521544602370520377704807161567878316613198763114430826819612706964894789209405885160679722354258955286340494032127667256350017886197671436443821935436216584669687784602885321953745222795101386114463704972522901650097669677740666909367466694437335830822382761577627056902540364582483161131034135937200088470855556571093046202041818905314384932269795579275904166495307514713380315105407401637029417848547086365267802731780400001373455247647567557917738785536060060427671087400035152204779775239113940255732192023301504897583979349085978802978016473171287752239328059232728879735404749642652187107446370715413209336682588018565234029543398175009804334944708431027751892522018839906513507040535965622362172365913182770176513585570614630378991282323167137463807087549068498666431203895362477385208475002058397002237864881020970571190645806833230064575150264252048431592238251854266931515417327289512227157293254698347273215321068295709910941517307821340174067862299392596975874174828854548503413491533707411250381441168440552942446570607576767343330055066912786399745763778207480365637057299977163864337438201424648686414414701625704690342274255917062819156700875824059317237494367310032544003644291248206660215505194727968381271195202307602518414625640451233620496643202276212282132978469883980697383226038885859097021856031572106665733382934082102336408686036406678207746762472156883792366567633883639400177825130886286422993676556535739006959532011166322252965315210963518797143074403950367568624972623797284546380841525893390648887710532171825405703411288583895372459312580999746757995409327638661615477025703766467053492949624288314600730927330388941271084943634956604237184995537613823540027651766800590925356291736999182944571372040024089410332556218392541293190673885198952783451559201517002718211446757602059528401406549545433714682000786080150653466634178621412347286280735858156442500873004072314793132316584779444565969296211130853777972761318198687980281185613188555085323626097324087514096142134293646796914387908344456757649365276288394052027285730698466765724333297968468913852549428050612409243826482387919700706137886073550051003988360938978643207770589230781211302498721272802046884078271982963652717308688846598072635337488554972038845817507155457899664506545976590926375701641896915233440416687724676787337648654292558725298489576194956071367922862238403150646123865404453094605444088160532511308385538878014031645824821294096243389604697955139631619493537998535982179612971182262360848139723717148811500506854272335869301275638697251652473128191051047055724781378730239399343392325032535208597298125959609459807680559959420462928259459015718190901121600801640947982885854892519056695836478747810698778657060417362594692924759076388637482820418538406203488169509045968754379540729529949388535890032036380599504034914851594498966832997938904356685467108287893583942464622170297324868169787875295838303438062650905566253338442176897384957951398161436580877583948995343987256685864005546181169151121872709995466473903457118144425546105882389709944473201944725366763274442115419885165866439007780649848682686493771814466554589402503304203874284880898256937948752108755911789506421775083028565959351717867027992229960206563050945887230576072360945326523590304488302153876212039721187428119762414896853836719816230819413350675331863747900991412931211354802069450841741185270782098749949744451102271367236960184614761019713418642714627831822726592192680071395210878252858489086474062328332530338396564581127868629051683058605510233772325941871428029115121222824040790473574024389504296260900548079036526238967986054062774448946221780694186238849186520883587396991951034405714642999648467492058806524222844116681986910904391302409551846998134446641922467801739413573808450384947004775285966242711225925305126974777350447365396416081308823482643476472902045222338814964830635977314921555673552084409680504841933870881889361149190107328247292033295901402969718009462293061916746992102044623658904781151202263098734868943640516464596512817760508471071150847244174343748453469002247817899253871343391568609686097404276934495782093335583135115183269505809956153386755172141689759641570207248911542361609727908333330566807299207937191711956717516549366502840858043528690448975743738724267356074201554369502281803190201474071620988444830131487153749756889397963548072110107811236332903104610028742627052681055779179943000711040019214198514949310391757389116299376356227208933643533412062270602519961356397330776336996537236184555051327772767114263523919270690091491897649444064708902297332593844490876842320209726613937618142392002960721003725988012281377977068858694144667806496490931392130551224177241171374494108144696348128629860233271358263153969278532226946437484691278101543185138082641645207786500152169572298818676235611922073701457499770241934115151063466456728444581713104211813997807753465669294122414480183886578023178743462152508706858181701640404352942695515383178697573946672099221421103187624586277264415501156356968755335634799492616600864094334801897239160884261867858775221495290968956158531096032974687863762846943915354716982528094684077464827192258548689673940563793982051909244418778392217136996221599584469264378871021144554005906516195991053104648755144901077642773316096894245850580994064818486766932623181821029823286712504703547632889362559072491886697559545511672904726942022878187141570820572113254435923461029753459394744824442241577402351493662978429419916954748957688879328210718655070337248129945188129086179030345167814589081939403113804908305176041216049295974050696916803251944198046586059463010724114620998805277131616571639590111283883214545688667213687246296465576303292817545430156597003259702368997106910007057440372243328489391664244077311249818192865750802945651696501203313929637095090547682688796960248833869090869091634446179579157166904817976140478131464731292953014378479669551454654009928358128072847022079912263188836996425173545705928083854502287398701920191604698912048121789076151247283281969599257415323906218284535756195409565348180039437377169307599160992581558063952928436270895876999323603388404823347347821869111924502658882732608008836796409599941721983002901090192630084227894672979111537119812146971561914802736347113415517025262805988025620375487522433578340383915660788196059836435370934893361132240058198034766415272095929795361657458127067581105009942784627033925274640804060141190599428038000288231840513820817081419059158139190179764209894804457205479222710694243108158285117993990598607624088843045715475600856917600657586043637501309877798206209340243068006063855094228617690062796730815536710914536216653710533968367619241825151314604981825273425159139812760567771230770178846629679866222050591769276526860271522357505844152497935237183323552991609512634321413164148164204868379822701684206978334940238898963047241128218950532810960484128429925674676739765417287579065483927970267157657715401831336255646093363492951006855333969888826394274517405559666447453857170736537594625841571989718736932940210559425840690517263559440960552440357700197346930612458250100036340770993944695370224193419400348149962181160762409635224586480047513898939713533780761393258033456723160305976137060518345549520103719653546624835941502585025294661282874276445886792523405005302946951510648781142479655615128886383338869769773765800259543906162514530228689425083109740647318816353781340278743952128734863733668641892878725658844087615483117048528945983096001967587736403329891652285819572939567600583286079776331894036225723325993058590449920976842168985670365152498436297828019928234410680661828776573846535636918214884959209084135195331227112037957709902645104079042259321988550063204433335059317199463786200015398100982155243745922599698403838617633545615428936550882188303305436103140180741849902621197148309715761762311468909820165316620714509715152720316799382200970619906380560860482094557351201501253985263433609261288069046057682988121501423779292669826853368870108161690609007776706113950429317677070306184058613641703734660930135621767742599942187678380542298521831177588703792257358159533121671735216813381065458964930266571896049422139574654831005624255055137806150424591930984795443478217545650072874586435508948414558365535514567759355276804910565113049269035485930191744433927959213894350504537523800552458864891109323671138432997916967390020987011308221245523688747902193276497207261965067465642061050235545140186854065637640746046473946894280968199979577486134448737513400122792637575685451654482712223909756226225469054683483580964801614430962303518479836599010852772290982300733513140653032676555350258847958780863343205955972627119545840848354467763414103139616314367578802520018836239036682715767372689396356567616471375540362618622472720816150215025874698147267669884870615803006653469645293994569359818689567943875335810637886606482401476139151483246680920851708543011445115227908921141826395294971416406390948533386164037373651255563963285834611704208588129815038627434720236557592020857407052517865601468138122904165470861981995631790457659361438366496230490615732256101543073705968956342601970391774429638592178906886315714570261680844955964422398872972427122603361706777131050712634187906457282301070654359837146224209493420959029012576194966287224671259996227787288412860369373533478093291464107282632629985361260543886437379331970384004152598228184685051696847587034553037254958487108528814152194807427397755386755297800403766997669516956176203858115581762194561299866951284729682745007414146540902879333465179531788771488959685176633894442945002446235473021928021750410669702659650584852252525944157009970346112743601292531558758369553643003499344311360746012906339159807383685264374021738582451797860860429516890411042216907904100600462471342883195933764393508058580991337291275567361602108356693138104132129564630265770295712153940661356485794699287567682214276545307866389203499649203250329489242562533698662964840992183045359358984899506769345820724049064464246127084245408710257830464666732637396954512444837991382075943348895633494360172555464894992512847964598373938137758399649555907481006142715239929154462996841759349766800652922811362393533490186875986939177264337406383073111670625332389344416896588935356695669563718850826713759281784325469465887556404572940549641397759817544681249315669382529114992563880145978520475781443678568054969817979960909745405134649797993346432442573100914417809966174961794492666910621903134926664695274206973825931528747916329887190423625687678224880967073077752152107519353611481867299206452712143406094592433043659179657877466754842498645623927704988185313223386223741409697400207915993079021077440632563459464446637230050397801800201530881783910215250730302647343020983261435499435762076924087130604202284220451625407350097616393284342613001170116061867190399226783367627048066592304667527455674088489303491498736297806404327131795964610381386288263419380350106801210523329068824604723071694742938935029989386587168095710151959259509276267099100587334909913182062296786670682810095242923340856233527520363659184260175449180438620359548599652828929287548863222865714608561964414722858011375831626274330248927323438608249059353569609762880979033685375091176355186943771017186641468036533413460747570770609233067399288526964081019534916742833932519973587254155391747475820804470366464906638701789581093840678957329409076114346528306148593923753091986054769848391130679217968876967549596228137029171155368634147653913655162301952990046688116647535621659614254678888316480053829043630627749083730679929220509119822317186746287320917747577420036968018562209945415535591100762956177733543159717405931195744330592273584765655725045552438937835112572569309410063318816745042789751670619256058103052530785100175512483395211770163869564241133826807811257598228174958177187137556820536634193948608731106394392880158657046916268581004465456592473013108346159339333671638713989571610748299992763286994807889693692058174971362421523397897729393579743399638727161473214382730821910576198500867449778790196138884723775715314742306952791841499845499461657721609727001196773101705035623858634845872469746387980377242366587240764276202941844606314345688341416402949051702434079852087559787144600858689584892833020839005962797464875713062218106421750878744755631404121223594832191451588865496326050721780392876838032063540417605265334714739676996652648262415158028840254095462361089660450097643744235728095430360472899531477625511551002232659027822260118819775088022393396825863664145135271802694591165274705401417491761799095707470956896857969349986775850545455801950447377154460650152667441141390323613088973227945450225614796235249007823902373113169075732125246615331470409669719829099716839526035369091938161168648804880185655456703660444220260831160566748525371595391435177907712941514208760805538710880671092215475629018801889583530453238227500601788737004287090951980906742213253738443901242719246958607485286757695547568740674736158936137454683723496015458676191149878174567544769326627464901329076304413647069404910118582171845085263076109449060622580245791884610114168548610043993231810083744600356425880280547894600798461350471207156713073311006035662165349437990593186547293473758779203635896943461486182771556435315310553071516852547244412952761657009274188029990569276071183338759214342351176529088171927918412105905527135065608529642126072882950508381673908213227298774123248324206381729199987092757411175885674279103571446936895741184850758470068106060493838929541213353154493813051344441630890608219036461528529598995050546480759896325645103895399337394116764426353050749729559247043344894664353553494623091414093991770550314484620331232530117556226252333468799139946539764042780746328947379428754006877921740126076295597855096213691193794911969574830980413912255739815430206923795993571503941098002861954411701541696112807830953334653639530526983702614075735173810452320622766405891906089083452900255065330154349860722464939409832603669085062168541748621173551242477889753891497236667741366824939123821660051506661776435262331818195931650293891848454281159986967377519521276215094022746234188888562249436159042172524180382256746316392392718465236287004205455825917756240606070368218596078072312925724879763467412372087305243180940574860591363590465675331137944669883458306419000764394049257188963215443905892584442312529445456904998536523519525777009164608070037671071084389970001521298008535101032613981840316654545799940998173746792314842915497534377732158931581513623349621114778263716851857694406594305315428903335340466351432354113166693173971155440590629608825596556664399962601524943792196915891358992214244360961144441567614061811225098607306964748397572785067643736760361048443692558398748599383939872995389070500008041547095906875775657311376062325880359263739275457963606823972752627208776181715497378439564046184274195436183291683711476325518680233608997020631290297517445715496184569600498086166863612558326961048921393398304350887603692609471621479376631466377794541335709610177038690694469646010052824278516894068952864623718235709554918588469359589026646954311684519833364562848851457651865135056086538147254914133045644951271803483299077051189681624110300821229398167181766310568718851216093915982491009162462365922829203341764488427920304391541909268873522640191701286678992831804207631839824399134910441344156379928988496139222369285930060347146989114755557654006356610068828371034129692686206453428442324386075285536896820721010086682161910122438429694005297027261346743685163147600853751660426396919201727184670922329316175607866865980464928973610170157671161455051587874124857605661878652481900045736864150333938841132539305826588506938542159476440038671918753208286964188056789641030842482784085492976292334966401250465816629586608470589704613471810392703603057288420055356415642381606520611125829163139801685588423783704640791452687672171587461081702247201808068112853561026869786578034890177432162701469778939781296467875830992879715511537616000756389863939993487101194575467988911343141771394360060047456839993467756139172842249008034530886950635210191033202927579659130824153156036111120944376790522695776066369673030986104149440606405019836638424973839473962536364994122520098098926678406972119635008890282886985117924599768477766685975871132840252443903035903042986388897983909889305800013164691073687477464208637231659710329455807715273004662287982817897334954950196816810185830863511019579558786435266715485872734008778336098245483061357854046347847167346037589372236099902685181413500297632096767232444661175986229557804592827560956429185010666904372563300275820368160086574695444461400075417374031261050236861242886954983218557122511623612743402059686617199511159654122075973685376635229140083772733847847847118619755304147829162484969482306577333985249348531693479699612497793214445600109540314926669877576683172111435868389294129886163765434824610625841969868408723126827901086803226922057776979940633199552601129853236476233486408866090202852681302042477988083197650433293666087397496993596241717471469136471389477794220259289878897031374988518911189956414652489604828354550473142364005219078987548785858960148573766070589644081456425450178510604383088179457959696757963348706538038845024546784090170531678925960502109793287807226218170011790547349874859190467936831998629252502339673588402402246025856311177464590731778436616807611529889849353706208099281533207397243268401937857961813555236219733262156985450869639187026255126407452911871787801929926677385922458487661265068839761148086551703531536255744703956920098084835539719317309585791894559538975925163627516588384914598336943313520569474270388657949894782007236096875654988414482530496629401565239284643385449363015746685729707505091142761409738940290065311859607557078489753430847605559385560792325318080069590307419612836264983898045571576902151951075114871794473946613692033564762230966531336826561234907269226752542735959095330585048237964494148006547316708659686287301801251298079993914154876302386745583915888628477990051029107209518609371566919988312249296977779256262177604673254006420490495621436815152940961813693630474105861302887119906532115026646197899478036004304226062747578421729095473042056624970876032833102670959529378283121521369260552653236789545675059049036003655682462631472244294360853747328167519883768940064903358847053087568815780901525466652638099572372751425304295597873797632895051881933790336926711653218576076308876641216040708281096063793624984827745323839325080106753405487248750750883475027960091229392345737922952493615745904088956406604686005967692791311562387664755697780542688989025609464992865716150262183337110764825481106186354638665477317797440927605518777420048868627277202161925279321341106993741694707138617766838589165248050797189464044020883434287368327595459612761525749464824122056294172513547605961779166833072480582111432195409013884324774610783251256852182368152356795250810835471928064931841909466300072545452001199256812505815115199972989307850737085252775793958044073646424784039131764441703884643712769744282608589763338649903651120581501747146262949706798442684277001986067119859609764417786981755743733993301616829847363131627423176837418072984819888061409990228890134538247467481074166038051040786025777261544357306714058731606666616516835271516456906232232948612451620655200576833532174032006342928979322743984979697949788828946496888199658428805655109213756122896879232724587124017627811159819076511601861833784025896228011018193605213925369127883812970416617992920052020677257752159531601470662050024181998760782219245795215757327369580211199220109127362444740795300177245017902053154456783484278654965836932562103551518099955851097292850321213182595981079151031215030021083596375555447208138488226990352412205530695282596653835127400708753571304051723869603666427407224685817646716255196931191549259914112557267022357683048157059969692620383707987818569710745992576315979166307605746240207676452038569778706183839799984459255445277895320485180044059413396889643916608175958493676167908744141214905495607278739258155374910856004864387092028860641451505063527531428110032591732633381001548247877091687607901427577350145798131435756802606249600117120474672695193757482244983921234161329085783760114533854429847778491443524672319585038360207151236163071465970912989425272939581514889918112046379523400884734093070331858151056439150796216341320140169495151610140550781590464847526796161364769675345440974828205453337074785298375747885146750908295504157159783581746750398011194476251978843776835125368880995064163083626533105186529506689248685729741565839718454653426505360698443474761634568000125831943957166320109365206316685034835121640508993106419504184413602685720380381010472690507436131843386276878397032242914393648326268199598681724291021932003255569618049163712269042571616648254555509840825110441788693065755806439350611698855665709439291184721734142379430727073095988092417519068641569936254858523256942882890702289246042093819835390290727459950585362882170445403471770618499792313499348075275877332331021299088475238172691512396534077933012875144916700101059557150095443399830467157727700454525093781229342872637876771958148694860015732541974163497822534977402134122710142444136792246458570605032799722932865714210525158173898309882739521158230718937683088788050051833784742440859795566377140106117347658231633804864896402197437977073862723971366188459129508784016542921425726961463743256783408763663055725369627445777705177284510306235800589477175582006759838311638309312322001111377465556390688011375708039045409177437213155272110899262905797822433689221013043846616776186688161347737771703741941493581316067103546715786928975382423307811758286005351157901475913128370854062795930076459549378317627238200405593169642484747032732874520620468844989001244851559583689479581518176099616903516969500140001032676594442017671377667605040517215959620143679592305238825706036472064810896281862610440007871785317100965073658781693255421095815940931523821642557458373142195742814656292508486688695776668100135505355314966977916558051246542454010056848747807240246448904869283105465720073633502445785089835216572445689521086273917804438769887610084230251430034082409594504536227608218903945881465099430392660917834872726898623895287281602634995183874685127965265118911277917025220837172848991823557788713635754912517654452684724044259619985178658659438904174383391459224312030217431383263378437291769396702750152381028937218971179075017434068384472084277090719199518646555415329565398903237757995033889627062879045434670275623623450008394161094860669031405780083802984304540710728239661270274899245925687372802065019942690560733243683701131720352315043743077691576963276026001204856478353323274503625919196309218314892339050401662321341097960336594366790715606874096121719846996098932526190412962421218235376984131269141391136779027459951888370733952640870260780083551304133015877888574624153502111663233430020809698557682867562276607037856343862192324210478111494758601527838572153287543988710120387961451212329926794049381740243077955662840152820698316433067935408931277454926089394986205040866463767085307350986181025957101773057674494472455513279729017313521640823769763290348554913054268370012202540452812371146388846951603012351437287429831317220262801620413465827339374468930225260115798337063127209932489171954827893226261637316296431458794971102613924651430844594030080578693219948896413427547958229852105852935766022822070143387710744940593046313377805575195539857054990545278744163579579931008315651000695909073939342060750066172856197444625445717712243221702987552971117398037382060667622860469963789275537421206758351589847822139468715341831747105331920423911444104922291874477670823834160049756960896432923367702852110614645797768185640026040938228947488447846471182291285957414007596536432816878443496466949491712663493257673208683021077235261829383197974502295223823334648732516692566151460119127811305149178308080112362053559545618298814177031962460594216901563026699001934460022015567735992445186274930183133667812164620726169008546454449841113967343830420437220248804522403138674089872287939353134382284681328322955842990411129301196416174085702520798733827170671076452102533985612287054155857940544648765116181913531141915884097931801678840185031251863555045648979153102935286521018537344917566306713531919793244669079431073238055169633997707129628663380456037737158704688492020054618733444374504188477372950033184125492133027200735416970697432387057259925033562880669774078377776800475209573820691289519289780078403569457318878292005509734853547045938706582887901637418122573746161947658889070840917863245998507418083453414269919415048176976704309033895989660684769484849143824409335124944761054454005644856928902142123788015738807900643685149616510858108079764540484588185869261785909880256412054235904068792017025691641334404001796002285146320396187242673259872720437110004013680269416649211672830697235577239291393968298810139032894742292889341969424237888601287783943375117703162651342773039281474887442027521801937482838322737970171584230529975860633417195847307493024434750191795535617597307792477717215483998667321102613115266147738480163232983508495084094276326942823072214783275211944842249078080633139021399800297034867224931699645538753012187932570104298664819875001850817300949535017721792685402714461151724265247308402233849632760846245618181335583674977947181019503291774054260563355234478543992889961168676751940368193218094553633129875221812491672033905912302939928523165291931581588114575787687202067089950371008703877934179276629048237656189340676280681671562265463327929354441215621640355385648092432451958909804770285147357081189604319472672330181492198113855368124393637097276751918439409332117689505418855901915224330878178974522995665393034889799251205894626351692630517742636644849935719273135010350645971357520368342212920831944593877047245911178248113294516083551485428806350749045123331886544180124056566680413405618476620569906270579264757310989250613316579778621075868787151424781500690372434348642139841605837200315643588192602527139133743035806338385060381416844649837201435708492932606050091958420601770467404961097111667564236694715287327356375534279522834977947254894779358520170400943678183671236959022713270522497662711339547723288940290370353258641625533720554419389662800587863289160052653500887397142483397956705577730797840669793195335331078086371572482624603321525384716225719931935326055324816653734927630889379606989531832016592695407310686452459119699214275560870510565590531963695815883245728631734328832889761903770763649425230533664637345360375887184374513097776702589936298556254656698720748596884555153219527189728451421878247785028139738628714671678421139930635402378440595059957438520622899685133283742013445811254987199225159657334470320444865973874827471234476850851387164579047270393454802338054230450517316206603782878762233517790763481886757929772876566400727618072561184597098778203484606071074839886915064458982221441858332850742921263232504740802785624558234908561425423546491395390439597937900421581204927509209328645297237637838009147652283358351265690948581319718207307869603631435039645687993956702594352516099508198537499194490343471410395347756477983542991626488162809428229830017544173034142144895707845786610029923220055826943889229897111647940002680672737200084545819644489864203329021108630584767561680117486599703336006784889946838875890290479394211785428426532879054285251272344181225828160065660832597993844854127548612185802667196969140906415992789076111560287874798393930315112445488054831159608288237653106767736987512851107192532232981093703047979357650337532210669785144990786356259158440886381525128404843730663948657982077362506962427905552619974932575899775062092880145051915998136529225557847231205721863603383865365635144287422073773981667086232386129135438999496013863333940864514157880487764038240060013639412925673085814316886433643958813103930355450381735893843649037878402239607046234115998539410166611209255107311514975248491398862670420795025571681360083804751718901405903107916946601628235929994983251540689900086515985001019650556597463105697831301404781502242139721785021594222049726026914508262246256970051051836310246579989232198428077631179733004946173388292357338998992978842664378436124178439210333909448296042849998465731035901225915849684676436002906742366665344273726630534413956879512079896294451992327081132333807666279897178600249925589583765233211833227272294020897809851552768437004414741709069467306665038648059515232632369965939162137740308172665145342280445234522943896635325140077436294982455025168235977984544742532416051147571034270713841509364059172338770193361892028611971582089757234165466063347012275286218314027471424591756391342933980940241144264681770987449245652577831839330635716438193115795220719744997311165543036396025748152039392716412497176597159527098397434891555174594355433986023686652377360841597699730115084613044972908155426122480357852547878240739986178362481236447646559105818316397218796368199077156522692706476475057319544030798330664034021755677460619214883888352731342870162480552105232612105886020909007137665102104621943416599612261973862280003292874038460037678742715127409477233530930543954118807677759389552024601183380299280174174779906841552366933343306647755308456660773395541255290458544285794943930268116064542382351908867153018424445516777739172272805487477955563089592170716713747735678022799763540178553889799259219516060957715452819963051488231105576199766203293040489413587510447081795577618748229881490163363078891394530820481214516091096095659417424634965286222949169007365635411031852711944569701231346603251153399578459851575002207342011405395712317747014085331745552660983280906097404066770649041136120290617531220531484477829133401869152044599190044366059548401249339895169877661865756401173980301330653515021925992452775230644239002714300962794366263110403540065788536964356271735390632802920002382789958660389239094061930033005825745462560205463543717184880121689677460730896217569962515208848362240279917989006089611347451709729037018164639262410978745678123354370883751362591673730887726446876814868788772450103152441845238223138155596833218233406969710204060947715171296591405232934556906039135441094779278524060801924884674317823250334235424912003080452681738576713382244336782920359000625167060184888916269247059999347102711184807317234549287099091969439750809353359811226804879662005963185159341831266926159352533502354803185249594702436615738705979189483835388176541409740551566383107477454283633856291631425951505182022710441439869199858299189947178627293636775263650534925629574237900285693946710716037009159434349668071056700822691612909842180853263328710280064556157746946380548640198520190014500615523422774517404202852370115312306463794092301535020970294932080227054539504364719924901157951085518621947540773244452724544502824763109111774863476490916761838944999988189357943234163336126081892795679451728977551659472253775796585087454197742198091838654604695481153339627499883138961169307700632971999032213598123545330312489021463416383458668749005489612812177439672243961093227810892376379732828980348729652729472415070614176103313111894557363560691805073303813205709732759260097855381403772701658922647494898318868677595151385415783710809836349021613680742898012862784846362864358002934522296178278525815720821587665381150207119651992189942323251007263587618608190831731472274020388589165716851842785751802489510464134841561985360775768741079920133816677452200628805700224737042407600181207836592118556887395423662245337535698342598289966619590014197362786109900017777085490874499092375265915790799101405458090489198458821124628816275451307204167115067608151417383202216861091953178541709309179655011785305970818158984397174997224676294394422291675524577001183490840011863991048848585590486220491269306898312677758627033487521979684137864633388976502393450821973168290396570143586411987780732687684230970603478148090397500682376989125343523799310692406785970951582535851466392606109798655939394708632381110455324779200301296902631549055204439094684362204718222175544023395172459192379696554485476420301148548564822713687835609080706728064158112117559729461945402539934560616710844616692311217632660196491607923613736056974375150504904509040199713225063060439566514079944944207625907914912940988079142149752651124198024762168207300333030450715970922705744810746064763725930825421363821675802885767460792386360906582362918891608294866966254348349956482735252814933914194415614035744250636166534034156004467894329226612035978964938937045071326214913069992177125790420443771519944901386469359089845576654187708822533727170423766244693576998043344399902452034294818611128028074219092687703742223631357923419985091906936220147115420026925115788633658637980075758599214676214857000374981854443130343236687491593091276862441117476702335354986644264137398030705283753040008259900068731909111040889561777665617600996930556482062936313798720358058677363888351349856142541137797685506027254815050161988554780288654161692229067973610560503495289062376189404638000157622436192143484791602102271303053899554535586830687980782251533129559947025618251693022665447362969949120377204872146050414014506670621010079108044087437169432318173992628018059718308817801856644268996073067738496685051681567367528489368723141280135177983918980368496064290278640979022036526963416186970787896651374165028172360187023127815677610918905861017691800320155996087440097897987205297102352523248383103545805612117298473212938673233637337157684750829083940541080993281359931993096546776838755799824148505422787791216675037608755912450805791079135584760242689905278443480871487859499342427084281204976895291056169507518475637112763560661762847186785956037707223975627892706973049167518778202119692118462207805644365239777318295479947367885658110076720121633283672298231444401751788333136165365912086213875193175799076665443305243991479602508790785302426676873149569799387484529009782758998559109590915275024452956026576059438240259347287867080703545028742610360160070282793667099688685807703839159159676022974905566477815483110099268663166765218024117961214068411594405008907948075510556569365326060537996858170032875404931267298988642601233422364817635268730028871344755301226665987390165378255359278092117841515668694672374175176016571386064979035586469542837407994239417917875265659428937938683385965115750856301386803681759499540763196470588873940417888917667568521077189952456356786019372829367080181620591746820088711614132834200896667183717021251921950069939720375455368602203237457786517469438143566863779794887435747746655495498355484714472959452855680394929863745405642278013246128503519597021227676033271543208432050778541800133234192310434788777762752198131733243792380079181957215936669899117624045817393806528676578435447748570074728959157089017012218318674269575447573804104635728440809017700500547764492746217261605974249035095939892879708439469173409468666521489227273051280603539513568865874006437848057043886840344458788100213316726335456864679421253785320314593861100209947484266141320362358435634363467926825420156368915676576965470608480518000170512436999557311382887431973180968931516925761342762844575277269799794276060785577542455343837037860708391107505060587777092569854561021168362019443544228055399715568802592284945756865685058219502089291275316333754241013500280961042470759017186000339978880721378020577154088040001379334626280912125428593526976091473891744392169642294723387918684974075245582328728474924946175640581139204878297884763599039842059722346060483481357468158960196186214567331893778907262556718121618986960166731954786889101093256457112951730865560971414280912043723332882007852265521649220244544306313715238171997208042027958453051081353941126118354513086913869017920572340963644284331362794794271032742520747210738129463587356925647226144774441370782943853799658968422331265385416827294592796860069655440007318770342158678976384728510777203353387381142945656384228593427293125867263217121958522543547248658886898785079522565489058323290131985715782817456371074082361193061085040397581118432297933958867121509577129178972209267538461138375159236616640811062507999539371551721048162931550831312483802226958038884571023589692032870921807299020662866137615074680093979006842291514946349054822742073172344590105323528916564323314682903517900181352720238546699225559031022046378077023160017478239753760324542483276643961358180720001053577963886649074054269165065286728208904885459282080350970870988971080653612764810727754915324396880322772554037075262344161349840015643679689398869887111399607552870470595584402642551908794135604526658410225010178217571412828173741976641756112777073811508286234908864209456838637912569165010437384663741583627362444806511895308691682592517537755806408336780046797985041533197545032207399861116414055314127862698616304140082310741428542044988219389003920307834593128768959011892223609173691661606436990879537685878490163988362130970702124248160248200396039600348541975703180753797096835633324481861003170887524963745912236968673651460652686873639257460052298023180614533342494244821713419744006518990536643984748713471566091604718258585019257717810643829333753676895858083779516373363447446095402317436233207587274005046423947785822933343963341059421908324253936962988752001252111530213212620069549262374518618439747830932137723310308947014286708776271690750585203901330674480280009290793728159346503092490808058254574660700377064247058721449666237231301612217950847145560570785788583870333932973474870895499840915394277604669406895298742220534443537291574994250557769755564700511597579967439268868132241344500097094113682953265305354540573758226397965645321039660928686666421548110503330557177585067818400198293023053093585778082706305586678439540816243836185769452746082859259474083169661647430937157886166914703126934753294423229701880593229223269359669867916142558367609592361691607815880426620570377281709248842104911302835867374492318828705580059498805705286296883347694937045983131044631147971363322504133874316950898614470188437428962599844807035114270449248585726848389742845321113627140963866894702642634065766399734420301649395626315833412209923618450062005181557214499873844440694682093568580323497711705503562272915172038572212851934015404956033656422463412036152492360037687316477537304669046804104821941995690843636959893158423693395775220639340021055232148006503842431710792569289754567499786259146194889063318021229153088375245750183806433579316794932102298058983844911447588684966947809971626132871848436609723909182743858438422396607459606057835134457269240788363831797802509903857651573963405984562820914221511905501621538974449487200844315517087797124174717147766872483680788728369505916221542925985218609450369427635387138728490457055602226358923804697860595148327330558658510404963066398035002087248888045115942272656103975116522781141599963544895752536373726037753374183860396578333065122847114760452966792842622692964310328694093029071618510707019768843543330743136131085740101140853046855345191725960695111204086928713310974348693973503527074212408197469397219291790263603444183541583634102059439564882635167149234958933471450918993066917508615151564430485384058769362584115474354715089497535329143179917791398130348907568552292086149854014585100990708391305030527361664263267463131888500341354123636899323561227277528316389556708326908448827963603995148661380224927350316348842957175245051660812763057348356765988795555776861468618056658153722804625208118178382698376133571274068091461906434689836973807428922059814584554315041457527068581658343190904770686436734227247066180783457907026971881705876585600236340716149798574955114820310384228980813526670668386026638942775917763043312067331241981086534316017680668253449939751573526727003778949841932949780194683623944888420297586313971618887636002162676977445351580992480782937121044054423350440700252119094763998414577745061680990569475544462460486172341107333785802145299922161527264254476392232553934789345345304720031309814240468740862684804001060146064547338644804738025254734036574996143011829908746061162214433320176343412146456978496321269209458246017391464089084996133654344909977595723690784805654421571548331679833033579523334443036450860732831183487568361835791634425733408134299981733751957089089403417087333257486979415905888462348708856663726748484129716223142880537996399421832234881521336093163419176885681814332163080830003931961940746788413998600570658445536291991487814896151080247229115264245931936305837569252584085023538583200934878315270204773080971637289897857173389491618664325416281215270375700895129992241382891556680341303431979701822996285501609114471544868373623520693893610324809896064970174716948367800549080122334090010775328298649109260886057638964967197786940697384455619412015829613644041376687921225613922142189128300804891954502612485992080682027260828928765296123561759639150653620839612703236395719431773391429015753678014543466488144769891849506240130219491315517307585757693245344210498328236941355764636552231031157917917750474655979969852520546188801711452916527116528965269955770457502232629379883230133546733897588956806661455831888473790402733857296673524120424655677018582594748336859220229808040024261345755231364531326488086428901322007397200055233374772697968155127938914161392703185640986169126847452323347362009249302929706431556454759808514243496571915654816693861941353386996911738562756946608695323450063948836940834657474935400851799101333970290339845210622029232886764504137604673292440108705372686684558577899518774654649959540656706716216434891689190956888633989452626513332975119890962010768891265373812232811696110012986421219769887047106970375715166260555093745079478806330389720368900882203370410718099205218716288797547084447584293526580220769923661683904337563896253973442139165862017318156921717822396070094123908819894454471539930326948228889249527314035090090083688008014672304291709686173455021519102010665407794077927895306831459410081665044556852518649443839951960952918051688983341700531091391260710935992386250667111359089546469727404651101968715770022690487585813932676475362464778539742912361728576008010558218809922126221425532390521125987370070069893222853003445557151955595245088751348882905851452544931061629203365467393280631865135625043133880121690121964284449892292965551627943814452287052572142605920750132295154046388167457778134622728153060082945824266252813383674632073152335701306563116212905667138373393714591631452253798649058255718744927442132286414192046996368129347791384213884709649022764989371068513195400308732471300731892834047205104511889463219598808091210143233339965729005761611240345277554619472091548705093056582478387147281255418867439050844822347243803377986293681070069340309999957586943862713605752020001956029368567351758642261990098724839674750869913024571980140535727529012287601761916441405645859441674229105863883781648878423449875781829915523510311571992170857268126324059928890752738853845130291675764871652982626338291714407305197855007808954555952193802813193751762690160554100619854696153022707016384639798595378200936850010717248961240329636501287452977680606139725005154701460811797351992430674563483391669139441265412477396708175795086153293937370102334030054781441495366498920861855037708578216615211190378634616257990326364139305703457987358473195034633529466001695310495563136707476363115301250260109478659067881413830620658967511970191639709496338415448187544870522101306668335540677926895391384888831830337429285126684589955564235839455867699047916048395533373016593279211724246512440180401409084283541943230928223165310926619468948295928882177968841168871477428749118013560257372695000852968724550898995758013727644765861354461656076106904789860305780106248625452660998820166029206423042519163053958224921321987851736429395068139333555516903857655315297469620064123942421156212246724087054511218095749582272420754377140310498367545264249396240127745159922634031205049690651245728521301500737255489634227827811157056269029041158358569911023886960478372532472022645761028408704630463139634088635504662282913522560098398033951371391999872887684888486916168604900518794313675339763848899892027950870560633841709336111855872601962278662619824201563968759877767582364642768153453488227283894186341805725357829192390535008030451934634906910425178565663575748672537246178381077018767628366159544787106726817095415433340252598265942993917911939237788484341991227212169566745301640850395379023690870911817122396286302150470992066963920343379563774157583424639638203921385499550197240690864530948610618632730397318588358194224456987907745926000126792880806483769684587764500618885790237082862832516264519676188832778614964756899585189866903846203978015779707564303523477628736500091908245959208845610970731614353470629323155344378300425034634476152633385380073422691708247410493701652327977252920118033509309614822661773257271769594627909830033387169983165999855730178765342669755347607399810826995847605735300444252745681895178486948926368760009494429186031811317863610179232382381392960718437063102650991441394298447145986992477334446402151109720574730175381836043538657184685207867313380134485998923953324552925277101672436723862741783602060790252412931584668035993221448555616658999294729466640282984573733024634914421332197230683752074766559641495197503734011395745146161014839844481930233259951454353353776406759849915513581726107900684867027769562999772993815500309753090988654172645347115827836666394597517350333091543868344612159365934307327630948215355606455528941628657823654226943561297706660278692585511205564045483926877734182711754318672872378715115076615574528398971379898780329006676474124589154559925426219390029896255065679505982723516889162720265543359353821024822211595864921627252236851244634954675104379710900680336932485065139241663862359599846159511509579455076840540743195545218382971144637091115422376144389011246567014355479488534549048368471319400668335194257450900836319098683232208599657943761427324181929797958607231807145202989045032347102157236233416540738378831562719451122217046576621733383184157651735507349248864938659806831089281963795870840040342553009339982320436652153725103015044959755428278577285582815475802108616654827491509165813384976189182430859172838964060018777107705967162999720030619592203323575621706266413733131020963048248640705133445357537236071312391837160450856235547077820257465494694199598691438627534810762842749790142670905752313858919893289203481814854748447569371651548191716683252918043059341940964469757017435915984634028248684960163358793062149922962087108787727610699089598735644615764541426724061083503595730893696696534248481170535872009503191561483470297675927020168397680632397506530198337389869617988561066773291814442568614826501503900445314310440548542148807812585495015082298211902752288194771603994545796654030859407188854725588174168585177102515207326676518263514661582178789851382278961702494145231134676848768347140514263526608277279121744983070679639891418934501314111104823197530546773016087916015873587376016215273087126426208461832882206582050881484791712962549634514953027009909399074622534469606108870428678374155406219268820432430212783440359338318882307145936655919393454788883198931568066513655464689973226471071200150865252354443154684145465336420569903142032381184576543233052072469054544689479312921411395672214033620795897388435306318802190934646224715544753728341206788121241471825476897789453439977495680402287464004474138042527464804186624965578378014370974292458611762922958844706079410459930125138697720125206294628170038214022768170557670497987357945679615479211302162791349777378705443488614253069244482515702577674712285556336122016719842024313498827297027220551942801002419311932923698675663091626052493859787948246680659953116809521819977848458333472334474591661228038159806802946926044040103521990652438987117728695369880765039034743031845820015381957493893016997022483734677807118099041092675128315114977080760613317769730862323863988398367322112457331404606219270870646227772413968376671050967879135154445518462870558169146900607812206559641985790889906179052649204273412820799581239518740358758577354696505445640883616368776126605698475386459421135008184775000481427004920336999509235561435552617253120207147778149087253284291003440090019850080997350790157032987296095598655797978205335338934778148641634580737610137416760465121054696437847207277344853628891080531763677453921692649480124375273028897559048532854903540200578459093685161964172442139453465690935904819947071033909415213941699254804661905678402648463316716491117540484947261789494439209300798817807924824125947444709005914588121694752614004000534996947003890554108800561581677378289876640112784264534288248392903269410430820362948908389164827738082878781301516515752580798353251407293944097449549016204080221629449207069851882242181591304061402623466168452983566038344964829887430702607229525322385919730388602617687382605589906235591230799187532230200256574046132774309903560972617912463854943834267827898023251807222158585972953680444572438374366128505681572333634094714668054827608422553401087175895474568372327587298729096384707581390550748420946333179905433095850285685623861445951952669447323202928029889953734283200390857913212608120357839560879388187121249475246729695827433922525316684192111124336749753986800222138800502454415971236548335776454750121361173131896256500897291829351952798372834493380053700976305756106552674630072017459885324809169798762066374963004464418327837050364545091317124431444348531707220649193311731340610636071920169776103771048249313883938210602254767448351873976391040534732229744259755328272898785979860007178357865814376282765906776281047030088836200317229456306627105763371763440967949668877353781191351800531914546939505057825199045679982295157469990474367381560759376118894616915046398126320277798208086642394650235428328155016387899271305414866961955472579863543832403428021622571265800072661647737111397667950248936043613302217464935438708227243221176585304246866535117040298837734894404806679067719870304833768016994422631758961026140263737803013575353496109207160137954008406204930930744041679388160281691370169142842747518169481275846452087701077004629804453133685767376177469848999811304663566939134926404198690399579822883877083754352924758484105030755735986217108642860535502186460198616791978842381140564019123191593669735958178901281000560003968787032394422918966282112938128818797922604063760066253790719757845856561671186449867829852777324605636694377683087735785960542470517533533693738537367470121524155931306127878372502632018804667266959497061450700963171005466349092756095845370313527530336502919526608429791173112774141231762487096157521404302984071577856483231365703979836246948068956082201337201166679083043871333058533235985269343572148421638250160535718583605050185852332952983153356376350053222860827342852267907536587584183479852379129950137019006177299760026272693254737055278444508001808003591039150531475647146575464929434442662755224737360393116117854583120305274188047653591427672433547487758322900140050752127168785874268395428469214688536107360368157129970249049995664013437731228932719502819944042526861492540195368310240200045581377879482030687707791712869330625578259680310955354734527201163548279727044324300183801964983262315750272077502028820591372527845609587887981660832138989099078941799207901410385781411331663855013809255086591269753701614792717142548555614959547376936218932106963914682087651342459445750778495737753775435126979152971921210360674498432029433681816578856141868213056348141934864471012691934114948818070928602955815330492596893331578512569022708005031328898679066873093635358767498331415438079640899103000675327922084950141512534589509513783147044179237585053745792648071678233996331740405159416668426376401262734898410622524567912318402041575710582528939409841327571670414707472499236953669839121518598005584888020097383018752288174847372978833432029124687090607180334462348914484463411285226878854235132588019337885966799332795275806886788647732103137755003508023943885993972533424755459334874577420603232612871462800117373877867161539423825492268936660450714534685335002510407274547395307049433067956577362826572588406215302754883609863259258213478709557722314720694459640852816245579796164541249090454928420740501188173592312405991570519381946835940190706703541725150605862419729472619000954305464373778194618768471449468669284574388912188509786037047297044972383457517498840470003258438165569038567627014322847349398440250555446185994201237684530615559435478811153267778220359654137174465116534300948684883680537816274856070375084156208360957238917009480605682898312234407925749918511329445503931164198030585088584510149779013046667189752721197436820892186958929002210719338083347359111235406842995795771670674194423724715041305497399730286506547935624467982488276223809695316474641666394829664340903363297720088515573045257036486052212893290230511325043603774425777865307470338341432778206249992870074896042633256310631469749495289376436381646335835161678299742161820390639837964254176678486780706672416886007491017480334408685496718480201003874244756540640003763463026477830572347925644146144780239519075215382751981212418807159899575757761141837283128439231257477139568835967413243294303892201303501991065426607280198283648967073278144402752619600806463230773863568917451065726368972903528522972466932391927325749480588550563320946796065998416101493342812530768296173131772154128176781656296175389155314639448842169456561095241254158547355382895868273257064311258205051634298670067214142535926821231416031515575959972716553961075872335806859193013671663842053058158230989036242795659387295094866710628641219323553619219477230945586540200884461446733301513543695017498228569702677647135714925133499637737038108378107079594563891903567739195713599391767041986578814284286384928215622001858349284231387597571755902923600228558521901747340415705412262991129930393319023166360723316800475916431924160944497666237331906774622025973676577383735648377874584404154323359129682423351101600821681407632487417198173979670938091149633299576133874319685928317502551682895096297249701351254927085813127797440453824499884849807379830535876231948850311377600340138484408802320056534604733423883886740252664780681645626913884912472755859949959046791117234610685495269327623720078794448250497121138632613353595115211922443466705803245054915782028256025159060204620313332194315918793564924528172631085875236452000308002117307005999584363948457732494111046720722807731690308996494458085249316529584926568521445304046419586061824756888398450724693105650349833456111886050003322277913284040091527039750505777663195469377410637120068766631001223457248970100892587719128722641062388763437058230306057493442104517736010069983068038396662667272907918708870629782129478722565672197063577935821843415152594317069148597782682313448291998956958732548577091595179186500127027971350290886962678626322648277258850457866258400437628194964550295462901110345925909345970141240740829156554694573345281116650766591180220794241177749685340491731601176974955200585795950007552535269367153681715397699392214691215841911356546425864373557956852619427253942046167525067713923046108015339917538670618758572753759679161288384446072909938324518719609630278785736530262915175860691701948027551181236939425105565898537901719632223360628073682974344545547017993767735095338960603091488351024000975788522592756816841476600118118703492231543162651250052954867292758390039720689873726044891098783324049522878991762861658330115340412530424876811753473279348477893964764164155183065341265755594246485240485633400886510369891744732913139674248281609362568813526559768524858353607892203780704422276578453212212036170336226536424223391164311591696534152193170560718627150164351733141499977480020677627772571541155649333396814700159312991177941452067048626734975814736650177100574114433164302454703979374278248975209781531782002306474807198945531850100444849947161936642920716293757026655470097366619204692253387043953952557923263769336248701332815490598103233267634025599707978070039663525623244364961929396671352871721835104603763564573503466207396201154890559488415798397638303489623177599957556528455128990391637273776101815649245074794401411106599651336208917975972660550622615411761655956239714002063186576902762206348111468217740740418196115523554434521418908195235420739263258387851584040929276983533807676895141237966993333691955412032880330473218736555996816720121618844078213162847365425587803952207165718731081765137800509495063157344181566995584240559774077075018678033978116915330948879646675440630861279968524621881394918637569830960665287735555733765910886806733256389916280650508667336343907901237497088910268528691792143787876037044846151146555081265522875388705735149701799812606278790891132990526669520930808463963957538512220044634477001975360893766726086599156210014136442855606172268978359185045951357135371612446774862264057125449073970304859988563001957917024126434821889561464326000680550373819129897119238112304823057787741440277662300487300333857050746067190893972056729921768470281781679902602759426151609757380688679288700499599885883693805622568005854675672528750070233364447829033668464972637366183527518188595519518897879429903833034210918127699436936044673121799978634685057379927555688977352476845716461793291531244303494572223672543422011785434774376056097964157763852625108358420722908908688873860979739931214355768073218560585327657423569814496783942170654349882999480491713492323063001821535258602427932702252943894971367025985774331438023425094716309205382464772362911181218526790372009212119228239178620193963416221910393971095021903505407655018544250280363378574968718168494167003227136141741552784480051014820697536688572965121289520551221847007590430117029927398050973354300518994148001555417843211595405761864618157589122570188176153388723519533558636114226627438571489034960821694624077745666798629001077678609045900176565498096010179887876117695686356783568174089409735052123120654918492378156807335549075311381253997748636283450122740832264977176468434773947839494090752348492251042471637174664869068667867524449408358478328071719516687625762308118516263727443063907178361590172800313334282489355212229589959158957555913654841390932433454117229826472222343271610700735569410952417377424775154018255618071921953412161884580964360638881864254178657873097640234292731109518893694547017797185398048271925323339718044912893752579457875468260443155137805432463986588882489479517086134908250383958356798125061767881243695402751087593754436193254119456079934185886179039539780634316971105557781834767254849176455534144881944207381451019949521005784982407166158848415357875837554225812946099117655445146087402265694483278350571939194996684189517668603433595011793037651208966576359823335071018385812522712375255370909404476442422266244224447263630869950571033920850465789239363462947567856555546338212460490945145602139303368454443535022776241404118626227966698168592874344322421981356134254700488106965605296716869447654561421814813717945961434199168510282351296679715615722734410034628132027708077376492873133042076684512036146564303148068954910590661141227562301134587680033394529333896180822273606067132005074024931342867341946048568628169175296458293705544163798246685674598514444795497576114483852136905013505094950830455758729391512002515065458701728780630685020993078064560324546329541850962063724726172958094337376092139837160045035139290915027680889354890762095163226576282757684590050174124046405230562648033827413336572893784872535221167647123473891562022432435904819046451433782572766926723425813217411559398274518882585243922336338190910901871162270955081699864191519068507854177898079131279750480584361652959473092210487507583105792678370887226640066361464755870307868012852858495931699136722520296259868339998221806559873186813319486489136992335933618905638950539834931014575753282046959503421088098930812510388242521304044431808490384184504045296166106399387277238000859547800873358318257012432400604673776241871080739393540788783470160529240900090020706428410128308597387820414579083309668792344332103466762490852978628902588164251210063227993330937061121573615174170479636032320244331504337317950078257875386387446593732296681438602916038942723810863338509352478984329766459735788917935127163075915405105751221806635108827284390308905626842529911188748740997806425960064039731283838006325613343935279019736473486719212542888324579358409137811386052426531787574108469496903664682253267076968624876715225559407882639826237609407774314669245322372383604776994988295159892824486620206624118688822510309626435744939672148243560402262547926651774988586632775248919331973898363854502909718893928598632827243786244904019216377305278950744994704703543431758396321385559110184442088264651834346999040150955467541914828309147256734859934661301780089551416890728578914349155105898585415442465700216825448766971726701429480330742299055234793462473334355768744096192111363131116617644863381989000080222208287999564345528123732100995090572820121130884428106888313293176097599750463103127091397318676199870289254292507159805293833821512984053406244514521923143607948777682883028180466997645108543387142482819263519342962786124559653441091059068021410651929278183662570573498488597726302143962873244792827000414083496513226529541926477876727195929632256686851486861792796547423954938649400274291281084010437328624425265620337658421234841943446875664741654881643387835513167802614691296934124478118404657502252634373071089521825086391794096752374921083766985227118120984303461896840691435352551530967932107504105979773428440783405696465134630662305846453955845536873935007111509052757253381947197318784011044462205820985965495102758789982541829864696833335540847870650171961168648584861998057662197001548231956815547507570563068788588912919993831352199080895553442258420451411468664717703506687054168079277462383324292006854624438951594735640991260097913562028078299052356147824457829299557312222087339783605891030168974800116804563406663587196273139717753139428373424721509668684993814732016603803540111072159208339346910744521830524080113069869814576496654877308390702787361919791549529358288072017667807604832138959516866764726551495290955110310356757433723852412159775488780802413581997259355476359786597068846928119795616874895299969392714544313430769909798342687495975605088325339235900961804289908326539918966966827078298916923133177343006556057138966683294294383313040026739876226143785173931771535077687685760327699122491411707626306887126162196085682515842144642833643798233040445134862225771331964491178819469195257548465223193039444701561194807745718066715106325110900357944969140952961484808568696777491028169877765275804020057264389654429548349750585469898303820321488689093701109347705724613679803344080725278054530735418530867982764673325229423664871143968842378537515947268404016901208529022228104940528919461458109177005217080484510722716570664995063965537603445042058401878879146139610553801495410318816241183779285415815909809546724018977717258753848503742016424770258294503091531261424181532961765077387180889379040832394600235042392847745755403000541603408841795642945871029562204771438772564116973193255507568657159804193878494336187554400365752792341412720471818235766351696640758746502512963348169953525792745402817067951381347313478007726446955920424342206464046158079131577121363802289230488588802601123434822991696373795393603342137855963217182668698355910190449457831648013922028195745562081606601206087686371210612845013230720070050712605639537321023049539478437070260098831858995929297644214110072484348618889180620175255750657786119819990639384355162436501367782014172363814555062362097710444946727653290118554181891912517832856918460368020471161140853931378295055788157295048428600694290628345495243483411993157379318472950871559805515177548560130076539230309010272825642587523620590073632231838115286101665814092861570746628250336809807897284906936400197281241253044285990958551141168497141036336126541095700330807386202510558982110611002270769244537799768986393471243127246652324442816353164001249041350859848529522683002438542949304232284681473182704603447496008439463997623600050196313518299884158206094810085335266967291710572035992217724110291659083566630906915158115623860305962127976922448108873967330620268623028393914515326696160783794053167215500110456975709537303312968930798687748330824242931015495644660493768497628304198330534919147393553300660123468667550415118869908831952121550974127018006708579024867409252079836200651493660526970781281806799983529625781927048826437176681407478344739807676361820532319088182273140422742907696925967322262809246339316106393161153819892471224865538379428699377527320008535775925770105255134598458364513068471437988626154514711047096217399218940484600771335829836875623922663713088882491425392911740442679692208880901542370400579100219404134229989556824493075930024534483139901689008534708865038231630523547235372203170124184926443738527094291728480629596285899919707059711392647075090324644434757203949404058373168719673408425196221151809046492691587545514599729332676569375534729766118347126789993601264170079847518726416381512393707806094073810929374866214621443955324834701592300981023890517728440325436263931215462138500104974532364231983820822134815499743853431660709853452550619521315686073011368433391444886495600082196026716709835242275284818389943553058966778290460366858911328174354537180445904267927438011939716436986618716026274201991780642457614537851398363265792889331716161570103887129793174577026619278870236894329348724797036010627812063982437129525018232459975759861379529611245952328703465056864033613469775717716364816030532861918991836803664111861393170176593941775714957224110358122797086087051266598410825318381802610373937974230391912786419722020020673941292547844317152925957284330718735386171278411663819555737977715296141507772798486300080789500583283099277686315977987414814179551946462593091855040453923045030206907120982133738428998466624287617402140138732240473215355988569820623598917079901174033081792946255493418797482366531201799395981201552131114804498162246362509819548711284040045167126783948315665311538868963748589844253895693750743204158783012411009292849118793004956469789999962266219113845701412445315986153700294546294076470427549635567017072989409293539067900978769871476473441849112932082877211744784911704653687909394421464276308886596840526602532546765162657817640243936568880903017564938788360988533153837883222214935877058222290772930804230542511143265298070090487430568633994786668700092297522775234273507284293903157436688127035678099606451468760865696833986356420844825833750338815280165260054401842099349774264738957921131643798724279992893146961462359217792119417333257125596262120427323664195385986924119697483284576255498413955949265764104464353276333006270132715323769903058518468627869964631521395508740007158071760379672706768895373906204944612166656149889660826297345611059952746976251977276172813509478449156827346162081818830031326205306491758234163955507352972058370635017350197269361575423814089579084502219444686514760841256512086436634320656767462416890796737031400324777129839957976616548453987923342163683541411660634093423162866353757234252741615171919857224588298151341362843998900884857892348682609838823412336224463207805438144265826334037352162833893859474460739097435557413834914490370957935046487231484397375063862240977449391523347275319247243329733460526845049895803680521234907419638949250799462690098036580656687704485565371385528234013334586134328904381963428646679525590296241902495616950289592146053052440119298674706059164411305564620755675648498512275625491981860607114977999647285456691219579696180152423844529019901778665534568278387354928107306260797179423904835930953933353347450606184828343278323868319797632330178145422641957431751278837131695498661888037749297914743952388833456576331081171160799607642699038623051431433782569263374086653029871888248406162126988364313764865458012885697833665085571155038463723335785356748707646165360335455764075915035714323643442453508184466729986851106106652227510863343948857390688386565307970798634917143063806807342618106126267171915795311707581506982431511457269059277832660047991577858634982641253581580873671610011258996303658458277013932301682157469211671545520063754601979207829484683000579889670633094062101626450207963122975857869676588276592267567719274519324881866100356421119530447655716359284866535155881505761524013674858696326269686300394619434358839230016942032882951334731613424228305609944434136143277105736456694346181343588324409680836023793999683721925884552116291541655474623634562614513598704010238209633497799977338750066060904788975253850161670290329410291049297166683075817170847634250498364097885656872931691698679965760127618525995682099223993295947145958507944255379079446563736944298656343006025382585021401730651661748899773538485510958165258361770414953296598493154828203141015737461232560435928934167067928974702911451391857280042643660082074640935293189535359601411426305411121272733938430411771196607768712888585046525667123240154245697245840395637054122637800546162144310729758010958357009968183549309984029492100312747454432219944870534430126512228725762600240477012184433089735302780904695719907194644651395784116727420924183263534820294512063532523954886560176172069309311095364227552296088410481567225781855075938650203155899568194619751585797653293261107279329555342505432882984104843403997812697196647166113963649237924991520265062018014684918457561248285634785016453280701042945117551826769886708115112136856208496025528606442329131255573784098782002068786271677375536830794619437085467195410698681438912115144961795091461662478937305394791082231867446035060090168884312544093952468662185298108215115158254771116071994708791597111153101567648314379166742045448780502254223209014569659438202288257675122375757164549664541437883315905068129938254262065720337716440115137161821079267990512069903150839257740400935642603140275557703262005542454241123106861361043764323765517987859874454838378239701014752562366730137433622951511584461226082842005325319191923421011184535520584591874729192241953066831289121191134455268633226296080029246224129906204996097246327461148762649507365479241044764475177147569666038412905858183872850059743193300097541877438737901054395147703472883811463843620029520508042984478183000508058819647001653570486971162936958170274633356548242455923156922269420936579640327182702236010597425353511706390682767322496325741317613496648089033662292204708208818377634888543265243172687196408780578162924767901136163933997500978114241616724646694766070333976316223149190638762475306108326652546383343534293415973921501035604014380896587865093902156488758949025680747022668033077691692768317560719868892212486298690547980447947820309871664739722740645058284253665031890933492920070499710012090859223159573273131511376809799049727208050195345806685249849924035192413531096927154179700182573041857349933306750330762705266988186216139189055583381940043933221741168067881534300799313425052772372933797390139047504950701845723789340781195261385555519947686078081206054216416285960966993224125540704255616517303509029529743498437658517143022058201631463634748856211944770933868247856593536083377979556050982456228081584223611026504642098909840641646909261660488909562400123405886730126956695246887129146984436710901089474031226992265583577270288272191197604137045024735962157433286678640928785442083433297252423226117325446041680162202316317842521873102926080550725363869004958520797477679630097006153734877823875501023381053184912883562806681675212794271163123105314773216449731824712607455448005406781127547679954001039119224943580043054629318616753741565409032832189443578750618756049698576522831419568571640084691919613792176852969849265110601633123058758606402577749591634961499322584546915524963300521301613727160057613881325957491444655430491851108999772045452163293465736803399438401479269959191479401079695598595893591456458299422919149715325901169912501169112601658848647134915094399710372349618013483601755802027079150127990612583777330648432089940816045593431803724135382603195663705138293665036942090220198087903079342800830088080503622423572289733275018890254354547663318490245845107477760137210251465906810704111627098355361092735295248619828995035731491310184486892882452068993412357015452352075195010947070843882093017814478168100699492921065700556539248735595000474225288276925534539590892144406861709982376627809326129468941076758454892617231772874373289805823419578750178043502214397687102024501359887005136931612307012382118215293202926144376791753012809724651145701776553336539633476144003033102602896147951787836492007189454555805002642604174493671308995598602368169788851369710908216639129152430613996023215829864153160199225681228283487099684129612587303224688550006215407017386044814144155784099160248631100068692459371705653943063142170381401332127874017926461307500269696489759116613012690261839531810302953874256904520598179098629596690619673618493970098851997915056540586530919613671979124973352920265843665099926350707640062412876160249136278627731534406833353926073261406243327591519318487141685588996908585491909409010980864202987352327928895746047467807966590090046014666195655067609231011257457518307427467842713988995218624574661708438727070513272214996799903482825396984136996336461682915899389159562909153527661739818471737768915792157103216443545008769507135032516424755787828831383267412335959526203237335348075768031222384017029306679608530341744275263930443449087383371022473522184349082444294777984020637675392689506910355337206173977576583825812873068450316097153899560403645735706020867015738245142940040403705586172586950738548108837735680949249921923793392748118862991720448293381911140117305958049433935306496401579844917096157872892127000605653242706489955229448647159766615547568701805326003790570833370701711872008700427997940853698580824500351228585636706151499908900866640893780877059455592475655662499505842150362671340850880722591306856620873540804706385416115835267634677648963572357709695471554884292012273367837973871068782514758905256805367435171550521268552748805874238720508708170212157150093497401522576241759757244805542267496408975812661883809375862326855013871756603508408085644347608021264964873511183488748768307330083592408684249672011341228062780974706878047875260316137075503489065615010512840469089303754150565566029000727504417365686339873664974097147425238342519162878275496237330070713883825465982722612949571455128713775728750587427097057584264557850075519538810338174261296743339163119766171976085203690092934239105251082349197481217276242878084725525437219898168156851895618163303461058458609736884083033050190713143705698475493656127790009719657307681392772884148343814272574734303863757923529312237154650921260200574377765015109202199377707700235663496308037400095928675944855825260942843799573103149655027477390927130531205836351389852327575244964108693599933846128864791884484968371884271672680296858221313197387992873148310395984104456723484361844834697090619408804334413743118811004888126863861788272412258316277697539195560145962757702579747939720318938465077886336483575255576167823489103725767244313373562293563221424577968063875821233937567346763345744080088830683522845876016303279164835949084451291830546205489963451697509232581225872686242249655669610417459363318260965438828069255745758900753219727869534656527242943807317492027027822326209177293993838229426023639570972409308338433357561599493875717292812221783047919775791999099755291981532282629775631198399102565530502081664120293976400513919687691829565091684569285967281646297389895391423337657700177462752802926823406787138346601509095598879155050684504134873654393461432181236560345111197642604985302923997220751448459179101596380754674356135059626234078262510161653923886192392979951598411647350684143670357721498265113022826170748948645267840034007245990875865468314590206367486770633419058697111564003677689683006780408379936748276230512066687845049126877667007327554077714572777942246281083180350180760627447374709080871536426388453961587244157434805469144441017216925650866451582613364186384457782717725960893481170053961336883230843655850454877114177690305993008864865875848369572718693781871836117666280452994317846459262095658005658175912564254962521044695316163314596301535852579663507151678726547851216893413374012145918760303985446630493436837921570940795917253708135752538655286133516059236359429416588178224008718349539679663944353244657362779085211599547253823472985776419728678482737041011684545006886648151928445774016258333599625540640150730859459032051455182226802803219509918849391395835194420712165203213410095195600723027112772034502448142655128610954156663006575769175806585115660220594735894256497113798801780938528866807374044742812202593562717131495701399239302019134174816904839815999228919395204679620136098883507930076270354230228388409396467302115904330813434072976783501566093828337468145459397174067603603485223986905276437617736770430937991537361815805591676396755483692260986601280462546103137789306681897791694215606576471083515728581989717222861533655333517404616632786718454751938959933361395270330842139451835359360099194846310724696918688386725861482106243831973897695430964867248732116848562336708510124560607297509721502795211192732788737552728114910014933892411462843741209541677362207274979598360158792115961486991843426898269972873610090320007469070095731092699498833458220209327274263494217584795563177647229465675271164905553339999687614954501122546937956171563710830865853977009194007071092706979158532831490263902757967863197186871549302799013170490707351990792888208025241763751272987466901276149823367820695278008813467939220409017169362263031256602462263375310628002435335755070617963379142992764658675481423849920435669501336543238872284697492499829898290325485240560170454550626019104412843423656799558557222183672533817418068707162421817835789960687248759285254347898051620176223083897102916988608459711216115376256870573884528313475036211995723282429307429547496087740630858844035594817111880317192174812312568639990385116336862365220052061836553321558032221858721842725140477207221358690213320227786503345496726211774063425997247015852221868084342445306607898093339840542636884805558848429607407418118279067913942138307013176804392390841989568322054407977139694040065216951356957718132135864212199420208343602223442507926234198200703018047366924213253877667384564724249091461689966128063916477002411629930656185435789739467580684130665744774181406079452371067222855242607986991137441878065941620430939656594052602651082947065164801888634865921514419433192932389538281085090849718212499776710328229629215445335933436329109315595569706978021030526235893291473850682669838789152177373033814985348654699339965837698957884159081047115769963870609570256834058641645278497003751931123080948687989202156477699638244353307198958171258266097738271180684847928557778978841720638811694793628175711713842087762610075365477583872421929439569288083767811320639321759815707800124136847565113519622046100339945268006385093058945975978998926784170089807588829038910402941611716803330870670699405600728179394053810010625298868076054245317248178146500325606496592457026024135156038244963058071788652311512812018938571101963164343316180342183096661378956544301449990687688332201876640207823433410213601257084416133692677416201398133943264047648312926142229073659854392377226791217683122017841554932706767825125324416043985450540614703635790532604649297769349334057139080411589420025571694662618952533089771944942998143010450865719026210309858061363146048989183283007851787162635593905625773475448994443005500252074927711467000933202905491411243924882972057485774791694268531422699993362772451587465913782207133689635832956863832407491931880008621439270748624299796337071777771095150279118566193855262131889701787826817033723062830067957279470426600592526612606553774650256774334089101734475034861290898912459904307609167041386639590217303207818181273344998139885922186700285370004138184988040911197553270217102964468554102660805328485748020415895554714022297979531476454447987653210304630992573759183849905163743728939351427398952819833162440773939809653065216399312223692039557780407992951507165779216031086796130158596602067824318432534806681162442409185949322365844367408580092632612414182990095340713352811044165401102881401599738721880349240476738028492026730869401915473585252322941595702746332378675642635257310564091730189031368133547794213980425476181290797361023982936987904315251858554917920100251202806916398381215249871580776394591333996633383834196060508291810547804380593311015689978463395424925191608580126709231852525525666540629880507222040787338408642780529763395970192557108283198906086529433396704138875200427899217720495320479760887668822668157575414966332322569339903392720092610571487035348181561849891836892049377949368621640135929882087160277162670601938359977395378270785518087048451658270708375567999727851329824960885149588218581349835254752970079941596741963294962768637180254350100530441648975587842091251902847854154690483981843913172379642965683109122807020024950639276707404541012838753226484852429563052107257098632931281748932005734554222503452516129415914670388501221885078538226872627661572868930858018859189409003731845746241730468485011236900178992345407832703399522319800052600091923643930428673592042234199814565005812311875788745937206161074999239255334802595684677124618899563059235421235294442190090536611219887067066835688486569466823440290026769818478734348142124927325923475026427552756254572950584492622835774107558639945076451868848760607005522004877266955397650555091662201173062086423210981255841432305185047758956124269935165426879175231441646944794782260061773350376585675210152842855910251850603925475245236829261752453451893778718685900186570173703542930767796684317674391277345326612655990337317679256450015033110895530440847932984297967050975573017015604098002881067578309048416151985320965873984334158852457503173975493284333779609623503625053479530478025747643694670733955458589822798779668659460175735521298341111532076830045199758798305384827712184804599355481714695509849857818217989138773370320959888739374943984247585090459451812551540819140230389690146682933832058332920025062414903449348338721892747053828931242140109248416969223482400187743718204874296925871332737608859733838946413621985960502119290586987566169820356771437411085472042494170040853194201072840506394583312898531587976199343965249541794952850735392096606539054531020675874956155764469152728934626402350419337918197664511954534918114160791214008594239276004737790119993257530778845220498534391346987787091441632430418643636027945178043483659017359387235240284927047597967994912331084776488649785293727574151346471255697290187717017456795116279554103836080390858409595374532625244487665923443511319908900105704268928482118074673958554250029291812844018872822731390094744118327113829265949732373242178891554899057470291031670581213389255991571769387227611473381715877994610765359874194306760359435859850018703104844391801382702278203399704570821195047795249732871668126705280399491868873521245997937800020575596171628592214530891759228241900186816845120874302400943493268724471490989660127001966362774169737931210818355658753247111515773463251643151615937860799921813327976935119092644920209538492472915602780700179426720370175259947596694779146796616415502504414775181469652875695701503731785080885707996126738041378249443856926772186245046678447208323726595306346786043148665753997294569924183262171753721775691317502273712304093779271689726445097070947678433975239829042684334223790215546885858892781633243703776005334095586643908883473822836815296014859933073005847863988752125493624454517708197782350826504539890466890906862594846794585385184454490084164181259454035758067105981220501200439235798318386684284753245063047236607366951952767567672506349849240785644149795705006541641197086257456378693033334006481237731674434165305055341187885766027457401592990458607952738435833308830773970608758716704433462993009192849659825735217606946366964461090958069004076649835622125173740638663612349241988989903611722220872743422389600859572837368203555262849409114901505748247925911088783840089089367108918306496383282321035602371092929869316151669494768859740138118869715140962702794841015250631213759667667248934782211132184541970830408254030003008918318495070403155916852619754283606817217043415158449879419899419371631031074423535384397754152619074202387132440566690179431616946743886572398819211928668577105292981412820630620797975800952103018016516430809017765254442479575566128746027295761317450174861964278336764980917890592791914642061235281367771338668813443002297079283299021648472843488980060206819109967480838470267059180786818634456475583770752771022776074190570674191221384919500330949671025350539880829194560343651137004423515700529404327701544239520538765653713331876167567882355430952009005058420018742738118667082174706439514112892438718250395788595169385216147933374643597947100088598285817282215867678003388181260405352799359251595862854942154812214357059656223512793194260751932732323862222701756595475394739716532585206068563850962810822186971760517466992237554849865438739457434515196264371094205049182648456920773029282037287591612734841343642691646009089334969470229188880873565123544020896633390459547653670744791503753993354818029109325833037024557159724028043532368669549345056443699135138772886761235062189438826768146138436055627343197310221260903259228879552127634741190613908444912944029145420595060025233454262853765646024857855493439793866067728377306737082771164195413442627199255344734423214888828598027737242380738200582192704450033814688529880251294279581102334242344525993427630457541286144166136105078891377709059334248714994306447730493416700162516615312619894102395992155271867605297371624379985216890282614029077167578948841300485853898767027992399363167730507539278200950831345494157610706959636283657860627733172459879037402609960836691100010951323804406308273812343657496235347848187653934330166489694776481537611913097911962327526637277596120254420404641088703306957885411301494139244245312465639227411353330721736650446413027780837945316301738308165159257464486817452180865980053926279214015759415338102492618929202288878678535786435104497228720372450780281432588530761801856297526530151776803485914043756830664253688222537019870651699471232160809011157281483541152095360667191386630057412311045021293543003499946031233344961760423139037954745554996090104668221342358501319815302842106368261917922593738395402461368107266570391224783594900736669182266637217111812506396736574948491639475046718762966386477770086110043053261940118110574482372873448134437890895560091837420882599426360128846853408004147963312270608914667684041484518105394655097364003548753071393493640381057151827429098490068320990006306673420121765699293853593031558851622570356286263253083852166208141383961101478398481415048054940929853423947152443038369372112598962349525084209184159549738323867717491557137020977815381981571614383936784052349969266844744736534941613522611620878522038685952424657065725355815307981379919948608859372556101088690361069988036109609915742798451112271942767350133360286797816120255617869735821916336744733611843015422554223091286506014881457888709721136567664955130440394400411821490845289792896462450563638417909291457231087772247318110197568790422351545830766040054539029626426001639676761951653414633708695636624590894442770753916746257547327018821347430171103184820642045902869238381625743922878942695979284464358558924917544327311790673454715712280687984519335626785292042058099367570192621348500388201003567569229332297142977772050541222989701126280499651403444519652671563909098211328991388424806715856661898014372080819113041345353587615766920822455506298182676254535353151735233026866651925812995052574845127450913277152856350557725765836772708063470959374673429595006245884401993384382247579611893398167235210176011754549392346907345677424782680962586324508163690742511600368162207183509236155298165434260771984789983541535514667787625384457209309243221128496929527720762286959540141853012160228797435001258351852957013850134313955226316972194357399470125310086340536294349412950243842965458248010974191611310577354124840937499689635158153275357651373132263789856333323973176836700883996836090576588071129141763444531807443292923264105116951378347619281071655575640523681511481385040938532339342420251277657624291308838882105864246494149336681331746352589996500402064152708868546021206619733611894542683535560612716163955807501719905156235260756971028118926766832628642393869871428119931059465461380525118991420266314339245207358278392074749219180667109169802426677742268185521026046627607118598827777456142699175100487033652118496774609599452812929316744389913889238960727604127694247864108467421589551802939297353299146634436085480630335244351097877506544088830792838042414252127725697902846472861600852930663103505581582392145537159069816086497537046071639322073730070668854223751717355982740850290921593834963048315771770132916577549495824052924636492847840001668295908003430740700192142888452825294949625720139918550078361236894479553764152413815890426857834082462246329002727328459497013345349678818235433195012822297077355030493992504838763584774709921174905656499287786411224969906933691089634874540551392079044499976190519780599733585706387445438657882890928850954615620433141909206447241361543227463328466921678899522540128761258075220780751622386002132818127782023658793685823143557843374881931313662341319054355922728211351503798977996970599742761237397164872193792467139704436307925882812961315377846577533651486802965229932313283501360856547242864744502424819691315863675828413440975813487696962270002520642130233275694738839636938666944142349568239633474228189888630957211156879421335184108228202322755048537735773099642982153180872802904923874443268727052448335164049702171563102419240262770195793233177751386529860095725474705990432883039739999881437343224220744885191232224200436932459761520031992499025886272211166508065956246624616455519337161424784595271861537911233958706964648523266668323353805788408196662709469882253485378053118981255647731101193176590952931125331905715372718068528862924320990413190348186105559399743010967360870129106243214877061087619825550346856166455668515689940121989409289135062033542418614239715346906017057103701170710993920787302781612618416066940629106445566653875091953535289548780882183125789920429738498846486783994089012648902803661721675297389843065272506060528251020982539052729429424035446674853849698432707739759061898984640548239778376409903975703331102626492240639842072937721477451239379913546070509939422993372119119797163913491453241402717022322709066183927151311776355855515531753279989587248442781839371439227875191197078058889961621254074961078547910570095888202162537508672708357152079383470979393973308484219052763280281783454411272763100274387926762241915205981354207399125613915944614043084505849475317131702331227064817674840844605264825055405149914663901166402280339510019597086971770906299315680638596455368661143880535424732196713356767686146351748449236159468234581394124231355935414461370841406237879748039644142364196862712572780166744549202113591689049703382519325442876684153077926754705119727298657101593133277684156610859448659931311435233446069702476622281526554193186853627752930138516391867631362466256972626999116485303502167721324321581118150631051396049196629314230983006550531302814426282174257516775170318439206082450636368555848014223634261494098356590380086608574161642034277163740126069206290115572286814039591293461945325340353539599952787609103529071576875262078526943729544264797403454391448691542841045206427500972631917009927427936372579315466128289368507331954830494968162787929583950384372428815044386113877635809625071147808449629925501997034784294272766199081013674954663502884275283705426254757882107653063343438370180314175248641878857260056442297395674206412220270597127907397810983028897599409456516848686562361494257485225110351704405000323440967467778762492999388362891720969836720341189098374644429878149386076214712565601088459793099467706524550139170875023629022414151148687193579366569539323320284300250053180665798628072972305380950791624746525431961447828432783454093782737339625142173126125200527746057428346574296871813503656731922329188629915126684801069619503734121204162218333083181116446753908863689894156184948368843591525801708664642159164074498638141153120764004234244586163260156966169814753638813139197142326371575847602913258503166193309899118589078521222769941325593190920246485109809970285543952265939901750054536453444045916239491522880127161691247056618975157821417884107188781616483042073471203910229240420025640001633344120768297987843865207863927700850543807168978002926006539364435641116541996833173115542539259361361913666177362821502943671366499273738623077358937697227258336817703113537305718316747047750198316269998086451236030064046524112707255311524640486589234551775158665829301954214607245759774804987017904845074875703708025940303942151226834326525197597686218019542608763268604967019026003894976374305624842996219778152599777907214713651267660304251235498065095115955188711495900769305052313347421499123821293757090277319482191674802701984802130420141989420609205634972144658351294741263760815388116209653905945237351630016315438933306915427433098008193883506640382977393509621629272142866514458047635617948618336009215267181815434097170971554898923131305961430365683546275713103349468357141226447036025781032119469727258923878853883202962469345001119930799630175208553548990234548636607354637078498454825832371629964629720144039863239844172790934234772803030469180415312507423815294341028269717094495333075832568367088555080104682368310248650318183613495160438979919776550894962147411450917690547451958443575100644211245938603125271009832837002069357323795096648498097146667360734881251146664214395544847387338551386998461799664492207452418314329634588689260397456813942216266026113743853575322336967392367595241192447688659060343141551915191061133678333011319919936961623207105695133313075652573031823325122630340029831996046734067699533387373487820592769084415929138047571936487571411368330901161384985594920808526583765840888030545655342326160668813382084790591047029563436107530037889528889266517488657463092839543853722280964918693355267588348447706985648290011696740313262037470043554696148301639422157129457695441830566154844379170663272808594695214311524944220246864553921852679397081062250204399664446813854169206298929301730546468071318987737243150450033205832213718403233615348026991478224219503587998165307452072290026835533908210808105840932498578474454689275046132715669579986178946858072864612695136892625075284792625483732733466893057028417290635473482290885752812065596455365747691715729083530603972984422628976248950781967058281380969246196062269880543655904862650328307344054719496791040932006975916802894659543122369480589907345714667286283731449017561155607427195000141674557501075696997499528642156706703412731177866225387849949932615213911834692372708382457788964060999666547665666153127570120434123029026439831647662829964379054533019869899898900004047978264347813708380984714028994980422326193610812025038592529291375805066972383183182360139668132477882391674581922578439381021207945055680739191493532841063448985758076261771166702673659483081623631639641878222372345647625419499684377057320170827248760980742462880604058035138150960660938015897445607638386956929737453026688264212313983931268280693859699683187170889804070217587687088028395928644362347233968753794004520431818589967724863693942162781808734237478834847148228409002675492458512200073519479849613376800412346208501810492008656322208718576138805685792635973292472545824117909820225147172411563855337522697038199498301017009045449716496686116398680422961931624092415170363237571960005946932061611390496362753729892881890209599312210307680592235353993773876538553720782385754573791477788567720218126208134984222600861440083235230919750548305929677146992666409299875369551941755251708170088298985031065729939729146197246188061267454279257732768420723632521714509233287814803922072820076247025350082791607796051492434971229602507021860585538535421564265279614435279447565213914301597954740640749641166845642554813704310823639888015969814542723540018029657501662117516328943978624315004177691550810862780909664607834276154258731968150909456686955376347947816708601666956850082437892700891046856579681318738755899161914502116491064622873570013639536180181818284524489234544147898106791734369671058690564187949971268818232770224155110206308780480167152805668284476118448947115647390213456313457446527004348520715797586184166908853327194381690524397753894204803746127950127202233763341649942808543096542414684936577041943123383441624991019436764806915489355686596818725195462586933623196733242927950794880855479644302569990908945274066402979092217474434937115046184920214205443890625014821769833274375889601528131980347499120553918341792406807771486996586632760753464538814167928686631342073717750160529498797868918718240084582956020613251919676356343464956500878718939921461448786403070268852142890332078947378974363728248155474338194472586306730397081564043673941755045886631275214716126738553354442150017254894349559913233694512991121540895406920381167268022199109188286076229933946850473655603723215142674051796553635694526356905356808773614715585435096991887219375059437461732733744498297421967223045736834717251602900013077298597063177578114998675558410096001325176756056146457528685136288988169102034657418841195218743739758804035071558699486331347422394825960970761618137463210534350874274463179313738418684421318480379537068130126378200594362603676689032018851453767800177641269424516502207074841391738864316767011097095262649445255235728589733896216698274700375411624208596585345351396025934787106236111909922123611924887094624941783953676443834535540058252668440503220466435982996627315358677811468666329079148416182901435695248377168121476285339450330810902886839307416903566885687178717447732050951999974576811520893315325600734472532632504563286038548929450751769768396068660619698724619894253045270636587163051443287375670297256652782372064545417513780242595737467583683050999060563077417630578206197197847404384680522677090080035763168937508997498722524567942130717338714348982788968087879410351479440967277885012474798403404147726230642618516665146316299861771805955888902766455520478543631826999414068051956417073698593170837977639523036730845600175497970415088008306363410115566654242057718864621758792540314956408987536574484575889773255865567184926009141779135713903556343904116506612466141767257968099265871666981529185022381251699830688846837298026030992518480813352621684534019459352261283028792871519980112433144567041703540388241240518118668006960799457357956124062169822248820663755596445873407405921594727178814482521745376576691597889811696191969576021133385241580064375805336797190597156528865583878926745384137207450878886247042623088373897610006423852929521690463173790601190983360070502378390977717582958514486493672598592716630930117043751037736755587408483720370478798341507837278479260178078292119564083398819959384860517131893977298036910623996048105190097671166361257293394051520801742094881136466826377852515169524906772081747102120262686172941231212986609370531977985618063545788577695990487263657458617191727300214194370543095618948429446721353971337430157758375377126423320427533674511486547681346516222404577867649273176724491532743479974272226140311259560184710098632758144182421589302949175875789618969739536758489397919334909520974939269004327327966350273706743750111950895925801102092434518118124537552829662133628094814541676263062586725347492144533820767269699059808990194195772073789275930196812375201627094580681148011358572959129408754470843214372434135520001255677536584148443648510954619119869809391815516517311368983632153644718437590654241132700483324608407627505869815764429564501026575204888124037591487886822192002387153513196702615826290896242643808005141742273183180849930668207944824639487707407981697888890538529361840463199169555630920787567113360657224441549043579942251195307705956341958323885743480399526973385079823520605952924803975040772447416862549230710354553481898023403579883414278475927095973804936366874914728342948323332497085720495505354819432340994598445165562439291062281956890353091285638353882968489663548011338747559731991100659952131848504110671152310730975083668812832858936451013501583433828122388670726852508534273148029174751511089347616362887514653668514253918434693063259243927504243948776354541883678665127247509169167713137947174565053376744430822584176358725528630636313675723424903520616837677602189288459989361892220395346817114355268846583172611923201230126845256872765858535474554875981541968838588219222757368630867058043984076876117282978718262715282166841576500610255561036377441672390119715594661083241100675423976279648055691590028677224611941685542913562082900950153893811478223439168277848924342935162980544036311148091894297515540303992461818670939908461283501178087474436441977904168445279572139999410604026797562173757207711492294095633463184280717501540595078400672337060140321851188513470648160681113357007770728819567009002744875033561802426780339018605419008502809493605372002984683574227856236988915590065403369650964049740316994237177984927080434715895168540655339387210393141876728280917194596076141001902609260366595156928176003510800801617284679005084514858584209789859445946709718197783144739163473324028708327916978217940372937769041441525539454752714933578040351495151151383066385841304806935024813800088227387312097729201429063653884829257649575775371155615655323633814019113500831504331761715296407369958356461624714389574050146092503688866015606240434494700822620662758198167005192329710602629657393396689982201855008473253366264575190883236803292512626261799181835395076494061195214137841076938670742988088727353724488376594164898002546592816280912644793161769942613928844999100216809112590802509322293016494485531941122316548683327626293397579970827313849801353122901217375969213456069191737804631459808058877920282884967436768803108767822291376496988575049199002102807906716223852361302069001623051882066146967925031277179437737535066911170189230599308678537694878660234313873979653411873071196900841067124909382113673609701597258112174720735489756470018178284079372153969512331358501440863109889324092379763114616895859400038274123620137295229605254262548702362628766460939802860925438050479535098224691817817403984008702957647473747070397536536666273345614578870387337832576570617014319507048264395912843036127414443196096222884783316891694280411897260786896986252186421093882865787631516779632020667163500150962689939767898092766903278223484353420830074178676828711636211020060642825679772154098302365979534305391629593456464531650817560407247114816636870364088914086491111223289354619865527971768280695448264968550272299722144562275356706813822769877556502394179590649901811272082264604117681455453640931886486828546195337542560475212889260184485525713604245442441919310354557566242440027345871852544288471955460533723901583410717266333198798431234768107752475914575650352513367127285254774734077390175748380692683018247712292045481333379938544326436480378975141133556373291523936093273402996503728811098856775932631000251162274138409193082106995143504564637687759268420840421169617036572212872230264760917488679736880433652080599950244065885111514661977270868111505880368849869661922824684977133730985618300658455841032244167800117117738021325915045199648908394396768129650825256913529732508097217874553311995363666069305428644609563524773624638877883998140751624075845706326705928129582873605482899637790551083844619899424911214099217004428494332868529472856745889608200495068610514122451422764226906810670815149265780655560355571118871232702694499902263641980376639112374917261994428804476152345798686282275657207433985102388050506132418914570311578210332405579593657034563677714454032289483816757431679908004728407840445391897251417998181663482346341309113011285622698792522245947180151542361199918748071217120808022515366304921919414887287722066676056735615789026138582433363679843623340297403620370779653741132313637244010854155923798279957583784672584869038838192467935435583062392906454601667761851325545803491974355792487246945018138885631107453756354651148587535602347238944308350032193593937913322688980445721115601836378015796040205290212051993925116438607017300272461896702684095653296553704337067856863877539913926472377868073192228028729989433057154854044082792354444421683196737672735679522823545586939436743854780470659966758203798648296846134034512954418246979382944528141261266539881447417586188005695491321966552536459147090747044876280196598574543840462255209030623648936230038732501336408458308276187373758429905422844027912293706086187773951484326327032127986645064067666763965295627134528976745739731709206024858540460564166214120729700524908945667304965320208792959070421071514561237371409999333662656124715377489722840786878861865366356529460212866000170147072239424786965759706606501295061638039848329471714256050450377955492498860144363245338488355932805124833819540906501201565978260722826215163942658308375842337178163682293687672170443962119122445891897442470218366461174924088083038833548829301274781766006147062250038880709397814187928276045429550995957215691228142605175778905586984483016360085923980302794415041854887984561833332189274446557493829172408640947520280937915398557183699921698982909578685718151090737285215153845562643808098508494641513176625452589719072997511867898003727692537316443005225417659032687490287277979053211057918269431638374173655469798327440748115722747964818736404051571343535419034009789756044375986605524260792260020520253559131486028341052385683160152302234072804355115620146152749367259904329114289178754475430453061631270596465681639770600548119206065391592977234837460172775094470480696982818780151427970873485201489374171370380113373337427949195540691325554219900325002422974054653893702649809992337664433325297172243594047061531394836204843365688465065494105775378283904844122293814991664206862738312738236128176540054943402105009825643902706174424725446379806556767720458078402961748365315968006988579364287016353317756594105155950035855035444432868108152850118557449021367924779452959369101209656030166898393621444412028795489747132387040529844134985273586404944411560110783981466554912735180597382759935990965085635953618788182858233806818192556414281697579454688716596874150722058139848907720446057903335568211388513370333727862226959774319789549733535013083148419152478322989418953742387677942873171520516516001985464693830422135351984018063620089266952994405936031904569277233813148318018359325822362801834176037450851786623545146240440459581878838269690512939851445811645532838824683753108960784908764875889513387405128812735465648489568270298769887387332189701404274827358766895182992326449838000282258723252103696295106584261309394948393003086438293691314756859744862984005039830219864335860872619099623860385088059591274667871311239755967763966504599320674281165489917695725410077908653315936718844943033632701144183900176245917370907893257617034359975343878113553616788269405476107459243925293109533601083303875282348564440830665659895046955172046988578434561276181957101195328274942210893900523236643780196544910946615017582211220424247251898455792840688072381400963243511702694594708691709382807258081439809291066576493895162134870866795890076688004768409308599081726903666378360759992952537597492052525051502753512769282681730478658040591678011383829022925095744125965806908313548682049268056272340773617378852300557014498378629609618706617478394984083981749592969376865045772146616117684903701010825325155210139040465187917537727184109414271914207662533960386013142974153085706590844460856608522358431874387695238370400066318239976860354171270638721286082908254644379705363607735102571266825646485154811036708942630118352422476548833831488326947810088892637213822144135505080141552207210391659502669452186005907217582062101707150527912774508558614049333899781339863179989995783875175472238383539493202229642330852021231372145719643396644028272412995656166649256092766409261651515143979476027195703284617164489236511045036075674692420510639989771212218380706245429006027605382761715134820347193131828754642937201657877289203472314784035187283140000839371434701435444003757941156319346293165051043614899043909557592364387075045661239593923329144731282042957113754598615408725391964632840459487563332334873432779994112830343871990459412651314970216313706828559639830830878251300788386433619940734553750874476335408829115471698101766889334197429909418497514054233077038649941173640939139617325531216120820444280594155091769471499939071820776059001892911669847899254966659436392330774631811220087948396786540827727524755613258409980060325773666028506177434439785092153497528567579742036399239637838197091370947085617312480660407343333334579271175933246814337283606595667944252684021677865267258643981993713237266742302525169568034164224400261052714884374879755789401919547561702557709804169555426043801409665200161676209723548292365666803163076555706320920513881183959036638202002145367558033792388986275554578513898113471205830225121551584555847877923111413221270753424085695249202376312946617209869681099365237452470397319349855805148689612743174341478758616361720060159310105332601291597322587824514262130066313430430236678134605208049053197349294827935940029049839345730046932925268033700898160790425798229312699612772785991330185828992422848719346424744551480065749686815637359704415640988472005214868927981627450430110377880114087827538357916301362923837993219119307554661941654342521525292878342466986934699570947151888174641140347686685279919167324309775427923783447482417253159053610884013142098987906208375963425027973609130916038733672172191055879892471556927246259406866229822363940512806888874300442284589663784373780024226162044020745219381629488119368307591346664969820619526569650083583695752697796435016214969283498173865585427671517345870248399211842008445671653287259935153233145884734102404566156379342730246808217104994085524600889728823921643600478597560478100419809214441695336639575824741980953754813495530912844748319997929476922413303231445087074904482585986674640059139514266877147101038839232796545184170429599594956030942451087772241788984578624161096137595147883637290894136013985019894569322260104486381598155386936050777777063326829269444343892955854131915221023123713214971176870660122209199716057492827585280712768052760873526315557603719810405091526759518750073501462703493680457180578855687996959592958778529857859562604212968243526177061772185791911128666799981444072098348258215614345074209685746133773787981957178943716940375208979330075617181834355042140328331947423516039308217322422996983940682643757759327451138005267433170454339883283057679210032446100021920846520998091302665752630388792728713686416006840700103937076150502242085163044355707532180456385683567605112433026983105034699976308822638322474956460208211019366131350375448278572056688342273530000016039325731948020615484835809881614272768797174392388022705552422829097764900791300013350241881744902820187841655015532322790382612655619947028694967528503930524181316342068097719536953792634453326719438411428037459704450170728644889902046308828704636627380581878346781224109500541425487081907252008076226092212447339577814390860072298420349880865504438896723844411567985365223170010513038191916605382250849188010489673089375124576755089879822910885123564028642709921198470156628256603676975997951090475236507428937345742421102815649976303673454608890289227496887580660882494304542552879772907925367666433939542929883650057121122042583265129918792425546453471315059593527636664214631352670832720924774515122879222089130967415343415443918429820157612665432688188177940465886082173373453473289913488583918361058459103134884646357497166561807924208109971825356094344704896009020077112637870595889169104985555055353936795963637832469492308698944888688842263873842131140536915744155954492030051327776705228186278158144860277426610171308805940365691998962685426529336317379907018422784711506468199469625015667646885903937267975717724773505758188514924671656307689377047668689787639374666375132522401629511968887778061385151226479205115946332540937173879059536241468403778146538172567864197174274468699666745564338485744328283960698389834463783451046081453449248808090535452850822270086940243433374819932839039371150793278807350950466080040038459246790773033236419078966164005927342462360664615012041415877903104446965619136935896828790111372516064856389776939035155198055964767270735281844840992741865645698674127874543507601374234812544651062847769068995920934232064511650397096829033956015828325903867586338754206898198879014370578313166396315922410870836670521641606195155712818967326143861185375422608978513985731272832892409960370122231338932988800333314035880025444599888109631709048602955138096163022972554512514872021098256295720905475527815156084426234784775614544000915366275248629120788619649082504424154764934065697924474466069545531438201921485226322268072196808162449137147132746216358877855690142736095684796539148903525480274240211694575891391350500549750698023168885312934995420677498069416878029205004050591487388905064737361570954484846197111988839347242760316234807175283732219562615255034700891247816179496148717098676869438927402938246763276536900470318031324649594176775135739479844800116451930186260304856370550683924466426842504770209253634281248574309719605756135358760071282729236473817589920948572981139928692405364017411978847558453476276248660159786777932136418515925838511015150667640404907366680003297638506583302005037377977567895023175410589124118681358598917963735066780014013422425606006466237873158502569365938054331995748341068588786666087051938275066946276921582647212106393708159244135212342103204247804914553900301319400253527897922989485852691208185980226922499472385455824951993548218523170651382458264208200806138019114833234412391616127876618294313202542560976363580899937705318425595041575546315527691847754138896164346165311914711634479029102398553077961605381800616148910681133321327182037722616866944069937764434780921805677136009536207490571034769637236344751715214397888004964741077317249328736390155836841041088318161855027023949232368051887772245695945462762456662447125380583118235167212063857894135973802476979744277234910847542241277149900640087443559719665621182996417533182777970713231094262986674680384335874630370269372761459021071982723518124821140952135157229074177499659487199572981370140584650293306407715959266216796395378474747413777285674899866362383962396606867647893754454637237436226925246217330064410508583544159740334425263906933891251361796969811931843206224140558847463392145576656475157466358313406245340586434002164695450208982539023383636652724421904794866777734254699099805530871370563366314454453856740272095891512900904888193074309061767144935485847330333382160032198508267454811465950903129899190235734730812558535338755111060607772184924680084744461270367764126972141831669511760214588089149480835021071899132118104287369073640176919066731491357622305392200559828301021767749482434088935512657696968619897928723917861322501978913509638523661750041955517640693946084341399969836061936712230201739379795559731993648065362935013898474283425244590503827343385417057382601695430870511561392919214670119908144435374955409377347523276904975206446326239972261039290684217606333635545564435119584897443659720224325075489884516881636615990914168007094774351409507509009736247505952438732775057067741642951236238836549374201997703960075779409548443970240728300180156030336320764634012891433733659317634245702568170861784290110424016615980991320525281143990687687128421687774224681350247190567059461385264340784782931218948033729764720971371073449215566762182559527734122001655930907420992624032743839162297889195316441113189079668013511332847321083399898133278606887913889448516607545876267345572302728653804241840269750893961083150306734819538916313327700355242612835046910889255288540128505939276968180881686220653932318025085437239930543429958800071692894081583923786413574944053509696364666400594406739042354312181908354448780458901965998531785426676696697977355158269030331832938806288571466757581556946841970636339981654484201145765272636356690055540689901876412533495959244476056552312851245345585664010548051910163044670970264916043151798413031847478947113004171943757158939561153874061863625744518664463184120457022904167612307999077754785632617463203140338466676180048722144640692694317251580042554038709878284161297480605029480818911921227915414587769791429901349735190257042841026510736381909406709426647115715721309183054647442911011788292228399939354945501109820106141785909030297706370574381986543762829941039024918299850514168829555324348275960916209845600269056624673914530777443947683444234142784671261431874386541466193645463807585937175504239759084912577026853724269897651452738315558691971445450673699115137674085379269131752604236219067859006388302714360748653326022327674592294563220119761187157633623406697349531244138541198427428621387863805656287440179082975539423425009423437004224741122973609348925540521287508936619467250894077095920961865198268980595162728394667535202919760887406394555012619067887539459292932678543353786760081698288793788434701296078442145363208310809042229262628540732071079826706760243285215583595489632895185781088789072765359940939044809471135943312414855660647622560714049541787164677155275628133452519871525605242643317189139194327667449985122312996228117790022404586833366008560263097913126557267580747322003299805398012324690976578601134272598139003407993634841302251545949832105264858253262548890627287178397754002194786490501296674873697871577982093511301076195261591588046973604057206814789499825342976997647272474711706987890783453555827448155675040880463856148588308342364501832581375372059790519822591750928450646361948674631487416431900917519975419504120955057277431146965070096866911097250357835943684067675496691939182094969389341840023294105860778296043170920194681616075351316696543493432856089954636411382519772662202671406954454703393774559742149020474212702342033212684366114334761977434287282369292932468240247124942430127890362154282102811673222477040066697238451598915612062735316147403249172102531316768997523791266899483958435834548443051186466016339890320360407326734598681655642726367984704832398009797430307102762891285859526106578411087631426283987609187948122654491323969410440899193452433916882976909154128169459120647927765810908372556888986453969998674238324854238779200827236027082939097860289368617988681175459295879526624948000935774102843684602136384991815396418179980486354673977994453106581255462528071232873428046318715714904473894143017937657315649455695565048837987030450387118847888389507794001700124187628843001360468254454189147887935169218260493202229094796360555295968399255304501162432830223389411258420048492797812894110118705572413617096361746260042888257832863292142366102333009336512023406106401827578429036321775919750820377762801828653622159194831257737301441072953503331313320348998915415358411438717895820647699501693813011935623716837039386836751010983675602276854512927255469966456821056620138389592518668396569354426077001832998234442231818244761634764157137999913756667098622586730092422462969953063699706906792411434308706843152244570121490604124724219904239646119035300388033507641740967605238643882243003423017908531675780338113065591970722019412329582788134838127769434205545917377769266366199734855483791517144292208356563345520945734606127766293272207415977223587970002836379738224353504419669828078349232394914670431884106613428031646398349786703967497617781859973519646848117149834069897352483116024315903927280335356697742613283560152348302784283147228498350742719971274054420959275472632851817677859137977069472971514749909423459988134196417477305848404000899091189439834898589441642648339159977802656799499430671120667378288037765463673499995404671519414541621809731067420846475556441918533402024967410906809773248718964019673396161051175468648300205541539621210115741843844551496156804953332542399997573670084895760175010325267536707349872642477562879927192251370009655766772265718932010991670343941736239129982150601407240048872137190194879940745185473688200986490881292221069392701439401992635124806208921043727875354506937418612586959389504061005177945442271204645698684681084986345521550939523484637924150439132374280541550496565057492691029970852682779473402387401180821390965736270888454106036401253465015357089338650348725111845208437226294913934638850718620396228742285637914572542478071231045674586822382300504272475975625716298003065486058682786665935274150108102676792906489383908755736394660783049935008813457679937345706226877205896380207622354284547606335122816512067690511219039913200166383770841380673968204841643028410042970730001622164374632646537929563971645972096329938636436359024603374597933707000565047716343871074693439663174332166677423590605674251466258011383018115023130665514854028809975421419428214413838056512696131861927870848130577446869551851516308612890421326648267776827629884038949545362685222966806191914736881252448355746178197386876463659245664617716721400381489520799607826868393657875755792776773800117884721897287754838512317256493204601543049527278390224359782039788520427092896291042180462714303326783204402978955878309650745506636398005650894321439409643556286662849768645319860190465999744436057641740846894008528842890315698367829371872407417003185836830022334091846000284238034416892702756870905672504876007695898934417868182481044183688358268430041635632317474840759306507459043045378863611326815298653680925610013553611155224571722459867502218784822332379693887572938474984719136815768006104763664874412653017174430466562479425521303166848564707218855242763413422602013787973203631419600265769114612211969561281202973929833730263261586471562574112859147329905826295219046008613084042370675337066367066952416639689276529564711794772998898271950127985478431483090892443490092604442508974859344822179172154165993009986033765317926091278823552064935613006142898388565388597605822159610268032108660110302433113637086061326559894998525977537382148843894451322652556247183385380457148754985165144987900681686627030861895881248611426604924248136920297899508495400316834289380479619600868190292012244392375752172885313440930061845288781477330675122654871617576898772544110348423314705720750853242478948810624874363035730964528329704234852964656438554465283456927781131889363099299577577985317361653097391508947350540488594014564911430820239471311395571989572135949880024571611410023715394544452458483934392147973774427787151742140838963303476671355538788116148915529136997046864902457208077749182421102309043345286726269829180499223156671504333761268042615543125936030491452943040347593381255168308567081490973865720606937633902438321140752818259336328029154316028878009752121500617110347690183245744865503900827928286571796801801511609557393883051410536861029889551991725942152769307758811483999878261834419382562771145214461455491244808314496183833388129454563673283258926471889639805194741457874126839463123945654707876507211397423443390635163044148740172917755735249402851424588336643362697226741779025168899239745325280753771744326544761630432335474836738832071389607001503278493191855789577772909217155165789046475094325934053449674193777578130118640226097875148510634075381266950491785044179301420754608866606820270708727558065459650130405767727788348013556552433192620561350878066871012826761185122042345124943316846047370915787114337528223721028680515225379733187685475781897216309167188934737681787328549444305476265777148028963514500328644258858095798835438879133956256450642554693184831508946253402346389368490492737004636519607653073530528063752510239020892722392115410120294570385119211682681464662139313087915276905855018908785156364270797360666417023266057419384263574125520940185395500242800687227308815472624040614062969991836512872537372857570028307855672599401205750487040791705130489689403569357449037192919012501156186772033556660469675997038256182950226749057092540124386421196074213943307373812984367723535339264712153441134016761086172263325627665194044859463658848375323931830039744421583820550579425971856266322408074446014465290289331972936562589210264275453825943128658309791160192706140706526158287192147307096207303202473777447719368894020438791677401856419326809214655020082886351708774052784457988874564043150164227077276857186313999437456469981805739036226530606103067228966364810986322047619406506078424202582308366484965984797903341083495659949382484290241914153314882584770102710995312751904678684853614883271991912101818475326657607482927787075840146873001143846147223808606291033849477291947152537255517143288253732330375525748535482733028516783681360175210447554574297338670008962875182208594774482684768376895869215065744247069397839357883969983130494598663775255719686406620318482410044018544423102256415133482104857717817147631113283298115848759887716583788169631113885382206076196413189518560627968798245413877784192308880285204391009256035564001907303965158902842933537762966822530863048646314303413945379889970478090614798288743895179705379768255575682528852193327150760794019063813125509230809688653137361182580067003691033267687441993745841549905736401431762833883488237742242794035255257836634193387814330516809682056368283548296798509147349803009895143268139967236981213663788641955023812119541475082217155962479579724551662754276383223404680527194798069355529132749030972014404495314665357074240249842184724308729504634054164628831606992807428400708918850270401722639430275134446700073630897619654586206089940600158413590256090557513022987655550162845322733496740750374983945843011855178636434574309733017172146132041639408252696794193946024976194555580973659543704496975160377803397617236965978404745023048648164330453741297513675793844872032703142295834664912624858310382043472777520061284687245003686646941096812073834261106955481693465680670606597738130795162516115274901832994906702650362812719600604155794665087847462564686218850098874681749039742158169483932382691721805742135888340010190844861550995990199970576638409098627917736541518778742191667732448432126315570535140002341843128751621813908760567529959616278322323001422418434803306798957704057935704157452486627334171437246643256712428506538508270638869060186469713106476020619778944157432799694036741587053815226249750851577286714967227029443683613233386828138731072056896890165533867368468668867878126594728836537745996082372735614886964117611990260776868400961630498732707562107046285007517168951368495193960188302317744954957018542989088885823046600266694781542522126957172139977774787982257491679116655799932321480247460851423748347343332693594983938327306797560057822747531579812995869039425906316824760424280912364285577182784972528402907956162554075808323817110333113512875310826249754589249888118256687480747626378916664965738598952255336570016284098942237774848184344798262791986077849559878773307460207131247416317881420624996824985262160051902050387332328472185749543744326441717761144975018503845441648406961469494291031743458011803314409124692167879823668389308954496490131471475518493917947983167900807132134057026715214250752194977395184482725445400628051430923720501351486945958903982040274031605065057618555417564623166578622320628093551059134664946949444185488027076691654993204984459443814477926702475335151762230064383909204580425718322535207558776763761301990565784112715252180695693615818533279302169007907021881215927736653300317990083165448470921532277676283264814113732487403361708114769955503333079855497189589187778091040834409551892008479581735111681362497463800644118252622977081820503595724295878577170691796519372921450209577060041664632050041214386851549518416766660795107523509952841668415515621562314951838743284464081735627594972550988687815646680395604887057909028432129392702065029336843605839984073648880681055969938386487261005281925657997445136220658566604501084584983678877531476217697427570207795575557210921671208528249240835109184735512585879894800367644335213650911102011390469359003385756783522356271634648480842028659339861396338996324870349010191258721693990989239022237869378087326721260860496531025388749594605334909119129797706289122393348521540727572546916948489977739054867804836192739567760776597556439681831929947732050912502975797932160292689910861978496439935989542719999380865626744576027813585254339105149756783184540191645052401917583485725848352487393025307989201965663772324249698208155544189779523625352947195627922517973852839633628494496008990832142967803263838444087314263984537488307055208927452089946382135781934621646726701406397499994082443408149764447857636399890378520791935288176425218894580790680950516942757595886579887955481840465830903156341108221266516015629508308234668244915346064452863802265522493686332555941580526550616003990523861481550539441901185107896939327275592657024305916378705368896845123536766255155699236900988546936560494732724566239490032314872439161941748014013629191380086849352490776937625097223325243530882201048236770322159908622829035819567324356800535370990775658217852566713992837977129851025153128339860765061378485896441311193430835207252407248894267292542665593438448687934547952963916356238837317911716075724293275398044008801806149690778530582208108168575006950253619052771028742564358322551149385967246426635485729729100773832736456424311457932609359744977563960361453509298206364423641833813517891733790079011043523950477741765577752147812186285320745059223645127318591077692438627286100928414431134082836409975969641176199377648313054944754043599460076887350320180661067810728331654468005472947506692338175762839197720790205126916303144744464901423579427212578819404014500213529560630865405805549875343192230900347296721415680315161671786447318465891057124117212088691860325078633002588875139910349840248587752798924899896712920735737797317474523795702848880772062310424655860356247788044565796061874723228360210980332502364569492309911838152591391501065883009996992007306368849892858078787043865357768390731196729489699678944931938739243275738087243457391391859275896398445519439061419154762020650695980381513572473701887955357491502150220268936245067254501577369447800832879598212470514005700084713580961490727130784073185089586397040703553031731852143883413541296609772276758305359970384111920040153622878180783297699040442838834448647582901631751582711446350035865106400857340774949027624296925968751501071915003553825039266689779037317512448609183430221106551765030412315645996973518571983107765966598435757127606351606518650637631830109465546909187257520647349550574122542520983878725642594570948070233015737446992135542650106455864891126570646834192251211813493089434707198741369480392946267294799082280764965761721320169118897455170006207603777426903564592578418178295231372295105402896284749597307284469311708710465284498215390488766355611971202262005408478730841794492040995017991143495778679580200710502340082257206815283334110776639414240579049688076854159635846529626378229257191136891162680079712956245749999756677787524793732254197076963546083925894307355539908064665404319049249641934345078320124128576395130601227728879814925188495571302682629976044616638478156521895628499772165266521777909755199773293280348234227796572752296484992871811390104299881062605898488511501844331735284473308508621519290570344531947717979784762702243749338098061640272640008230349588276675989282184047150676666638127161200388039300521862447893812203178558663940889644020266403780471959658380408369914407257459669410148565442976472828246020469949294625860272952056658979436220802057157795281619174694731100000624355131373922842334520627014191785863049258773448343141079869161434226628263596418259680444563322584650543920272585539858366151341403405690057642048738599697792338184125809051042646062276454768135706039604587041523054411237870075586353521127570738169548090321121615373021786580349265583684847366564397298602310900878139572800716619906395606439681236694569532402791310087733513652142351061806432699917430480185913260769310795548136362722710792785248885693069822736294814582662492637382722338788192756847787001511030189665226932606770426230226274822234282383775028085655514600033272641505469395265876128951938361211586309830987635548185818624731596570478360198791538407968349117505114430990611851479542184128263479897603573301534244652506919895584847833077242069794032588694901571801463184087388828895611159021657046285586514479415990841587655673143492279914861262714247868783495203240048019323083845651669384430933944736443368297343056273960698807155536132001426911884528191253467211665524824047245811864412259596306522141536585995873455951358641873541104676653626193525923433977391190930831216511389936226849217201961814777851257617381776595728909471106619986672796185905943378549177503601838852974298032901859730372613080095550311098950035542092636788319568578494366266703771154219341215162685120264349624123699499303760391452113544551562257875077088291509717898306059835193477471055193352467647886270859235517971766545334972810178933898323192448229879669402625470094581613855289121823835374234040160618929172249678865542629489127637787955209773875179122261407903912028841584570356809690094494671693317375579407874615497215036640252354064805002167500835253353331752951526120772179187288495624503140022834335239803221820719233107064820525991069056412556611274411232138169491748480807780590278472873959427829763673942637681103840965742703360962322787283749637898755098704480694106751419096240885188113177998467540367748711880131589377043329671246336904361647055839092688444387199909400664004025913068719074628765867501898722132030219857935076077560049844790596518802826556163588369869462227729528051283333177637726335925822518740746390338789256603959487080373737974749216087360163841683379014099226310408130213515020306873590533442182885532316287981720239086262021249859117388200183557826593208201567370883118582088717593766478214434151229762652319901382516020236844474309414684652692658996911937575540208298235818564108024125629189360381070717792687777278093648357248975419287403831474247126392910492189523209133888117596704232231456129035947005444745575500893891038653886218849412716720753629495547349885596271761474819894227821729063204765188701162605517965109339667147495755781880884261121982131485555993054463123458793108937713750668825778898839030162720900173670204253829072021509383411072543096100439713137130006632030506709335184453323136102175290120551956496232814719072226395430953233153564845402497990933707833247072456754851173721589072065114918927124589224554689195597820380244891044465023184641601289110351081222027075360701228895132955413410360252382789336322627163321195225463910264330351411676266484843627762997575275152741186497118889343952702643176563670318519386501762847124629147958671786832767218306859811151507178542990493249035390782694460828864190851293228822472712643619222990488458447467649786607011160576404776752786385248858782875644691667118482126935069830040707320771954803726512703181069327586298563903979634499272814981308575256701257027024012434519656178307724383633605910126760312415187542648539956017822932352479791777930476115949679571683229236146028172085590246808949134054426698384298366841084895014090261251381927810374503979061559892416112641901896179598041128011578147978124775328437887206093714109660065725429562904939421604012520755521019731540493617117015895944835213617401333663290661583792869938908425507293913602026986832804343340956649139543116924215275762363405430970736428834765416869256020802169591531071862021282695330915357903142944319834897295892228523673812673463327897694033456569760810746110350877152026036883195163315776558400618105613617801847747327128686507257933715558333062382948265934855377710858739292114786449299027636691818325064874158786553345767170018268621603650902434418429799393696700358956320231861351143110950376627233524741862766976710102178002227252233181647672750667090397256730906298121942410419583764974846765431701039875227017983084294719670103252902531319569726518200615212773632668553028976178384471912790993032283508865574983137492993256408848821250005413974166860988158805834822542274211503151322930216098081607014475094619490831202126938800349894489248415551027953682487876058276523846306485188892321402887549789191262266760066348708109300498280838915715082412973464630851750711645359349722135714149176550240628272650994199561614078100540169364882573667098255431994608940023179556875653373690208649189955164597068318637473772189929335979128512342509094890854959358362579009071560008622419488014192228169120807848748221864183967303453013215340750679004294686220125608149279896409983523161715511230087219257837824406280210781812265908398154431858745771569803896729480378717000810080238567866957598988450002422316316027984290260330748192384101544276725494991186706310755993399231010479420090177850818117247016480996658111147315826635127121783880496857662890874587036436555254397412004563393473405863511817539221279858067673900623912572423646346098365375938646825716635729747519811356554817986696290680426295147944988108781261371135339243766180155522578338365551549272700309282844281944685183728005360010763864762179915023224882600453064987760957720514848994229976121288702646137627938182484447878179431678258806106898119871246559447588305243883494423837136151604423848837786149206075085123783228746754358132410043162412713152014568436560354538153639528207860188303698882223879596566924507870762304006346829453478271813138809644609083842991782489956396234230942414066152212910290602299545613232655473318515031324456731255715463033434313988391074544959955588567541892236576513463193266080330759174511208671423616933228585692659322359760072207274099668964379985040291156388181567687635324239400524800679880717461779772301494565449863947737826683895730152334485925666827851130579539749968031406659951094394578855723022364215181119733963865186670254223741659050240816607084111600658804192512607769358149945099822247740135356186813921519463623307117671502623779897634548709074166897488221086938265607656894206647290802044749072202788007424716697701775109877540642583036822523935725394764224644102756239181009090042151563367543662054272576256155494732959747457384572259770972365945045824317483253860063021989056691979430344749181633601593434122861324976850101023414018511132801658296161513557275250788222211691327599827147610955025693681795442206479870166441607334434756580850288512136909528695454975710881804923032198873436156172504182519315039598190960469161335019463976189058288122631249568774807482830479728294813739265507540149228604042252127063705003001658788576665997108872645113576911628682273948730681934946419593380389076223306978152732259175284161422902437201172845863892447203067284526792665098479066389288662920411646636185652628876094473046593608293475577093471777935049897040840612739281628476080135099845037816429247613363368321713754803781797477255828761944322868856200941844968935356643044540698126234032727710405550545906264595543485563918967097401992670724153410552408151173428847688215947094720247747725936833001406457945183499465349189801713188974123384024102356184952368427184467586483595647516774554706974200892612819055212033577971412565027229469137037055521622668639994400434145402985697518938876234054318539475009357416644360899057939601694631519008853375830156652268109148147062317847872481817226756021660231298863134569207705635334226950975039751292527895677103063658505464910666778999714642540448031129856890468132729879489506560582345029221699845641672719045648346067717943780435366494229226183406242423594869033663299980854179519996555312397846853568035737151487746613316055475148995600196516852164324575801047903269734505403660394937899390701332010444130993874905170763804677084300984201477256667835343403363507088491840755504784193927483877614976618018333078744150179471078758530344350991251354020200484192751134089039118011878784643779800820143537367723526020978192520906740825805042857552633786652500902305812259210925852222826330611014706326337090157242742566992674217871144071963379634681819918435618629429065021013467752569984194486458918715806738511651667099872407791273114203962708534745289562489674573251689401314612208461280142040414267268470164967686297793401632968548666901480513804977123084739464510824103008159551827838840632084909914525532726833674423062846559375777360818162631931445430987735600438605654917884521601329698188471195758814209611365563768345479131012826964563514238994641400203795878012682945866569348783973890915609224150675902199592800798953001279227941412923951113483070482895975697515831830349219731667432900269187040755436376870846070177178070910779252242246837735454805737465300407203485966991858763715825916640977140700333820054092120984784332341700439974523186363468635178161680503669301158736280200047539961392825019439577125440191958264853704142733245125315093024842297661920158903142792446938844818716051365020228296384570523140850558732293168624195203501012178019506377142273868376058543856318783200806453520890422447293843481099303833902904257560364675262018780750118531709590992561241605009181529365804344259081513911100457897306314805336419566400957301402417371382973564545613886577413633080901017650045691522876549269432493802755485617862747536473158253062039936089701567113637257883871419244163933808313195922178876041173086205378945806075625390792868966629075079440445950676495215810147358948133177074806935107327574687570115276828156686128766440423503267415635943532998931347272269150103958652771890073654973770616405327258890043689620447413959581198186445579124073698048318940877978671228687686337659892077592294185259815531408445574884027332754084144255724646668869586210791904566803669584757941963773865994238977393199246510940161500924430537539601557990959478329667468619221670733259319354091401517049506533141282482967571799012407180396163845590216585447496222935233091915927335761553261438964856489756089550064175518861942490895792378489594364479431540592184755005468511290739905422396733068949068757996631733967555670869794350066494511221648975667272999448485918063881735595740504189683435437874491912227530384116608427517356053706814014162873468014295206487793909621676369283718176834597760143027659611462261640358079238709495463048279556798727214322716647743304641152677898096839065658421629417528634799221592964159393864842107111208101107717186336693169906404245613362756482734608039929600577394509820916353484047323108152469065989446260612229704520354361201172638277674959023389518640921490612768597067016576737666565984317713923188635516030624559162718953543318328313380812250432453226523807417940039742013030836788686205763868902789017993033927131652473323955625762080023031044495419719720483955381393779017912823266432005421432941314064562025325600924359036377112751032507405708288778921334022860482176792235567795303428514660215911179819690617713944850905235135077673674837040916359080546426906252561653937114249293637507690655280814102086124427019867949135729484771575397978810501965280106523565554440793179849709021705868429828382403479733010651216721562211573254390384072374347960750271951353518884983561082338694283462680933554968565297431912834388557140645710927840807053947492224463538877844781738916934528309739505011756900475723994588719680379042955271740446369567867841677750454729709281031098127216342398853886611204100065093447049377454798617593639646878119273245253649977965969288390404349694290899445424029902775600313033667236583205334318432557583645045412715889510005281273657121419331388852935726097769553213738239812668692540511178433849624348696444208851102719994283027767152008121695960833792143927824688295629756471646538091399029668994507090035165840017601267282388911245752899313834443795838750940767423060521752748991149582536226641727024613278705359356917806095370886684056127129202163206527189996479350623047276562572721281309864932909628210149240935017786115694579959423470775194019519866235353585255069673367518113765584907550115987103896217605407606982030045774110549174874081673580080526658200012510070045008302814063442230787283937952453159258647123373637703551813075854338584435270503306636778331194785134909720207773481805327775327607704549089117855221062821701478670119569719718919486440925805782155366100596320179318664023428833026526657461778113174561622578870796580110077020033153481912972624403064479083771427990259629358694283667759478771930042933562531650888457942601087509493395945946184293953471870697913037228533001013942586574964201706584865047430536509030623216747921208873148370203056371577551076051441978950032200992577050336376837535712387647758774018723151599770821870123972580401527290439421923646909868161525533004939885452283525288098039182001654338652289262675973284225824315098341137709137343690134991200354477595089966828191146406286043893883115971751181762293457395304766760624980691890868816132953987354337855148164889798333073914768512024282251521293334404529386483424662329435577842437382795135579464286911174111081858429300432233750819507202763348616206984493709917454235903516772055405308754766313459433765238061477656151896312458523398199806771639058403583148780042823574911013612595331505663920286624522200033880786756688172846546464270265936275188955234094509886312749832218098239931233296523269012668203483681632123180210999470535111140951745949157127998006657082632252328704961964158303578480841702217446018624009818402035509140370838499058049178473551721907958089442061996720879009507318664999719342857456246514682090203428238118728807786654331442003907434500398517860143462074897354700923367322534892616036574903350360798152940655800912703309346820380056651161991783104689097801918549915701036615965071891243115351554803328517102670996301310517570473961670521273407087136830028589850279858555873369159886494335145194573875976957943614112147914050572816269828691506876569908883086556567915009608477577270575695521629643483374132444188618993794835215698348859163316339070514036214631245359698306221655665986393661293645246115748191997801613429332973196166566844117992581285126085977291996846639298562798972254119110007924465132996949175460499935739744456917448873144513054901182332523201243681689785196411394548952452252807552536160840780700738280311713141310589721285246246334114164986582851081076776533961085497448710219334769637243343532833909548369792031157719664573669671191709706321322020548107540942326355306127119615883391920844308211483709186594319416561512421740632508123223744719745474456129928980565656931817524920979212490020575064983757480487880042512987395946092207560178621967252509372759841753444592532974438302497337085313975851795257500900661503208090675096397517889152264678204149806848966382600881429129335164370266880272319381346776227849791502339871725956756566652220061656096729037144281924849477399891267332225232643927361738533042461704712409036392749049772786198129475417438932936882914736262787931064735539379576103767462930371407473277799171117291521311091787657331176074277660382147957291683399819629387438276370600826120613025596691679282249056631010671325511508203551622841186696476460280954564947048101013247022978937896952923048346217213044943020686917469704305866628876060829204216246654178423246146517667183367902523853201210267273978912277711726593474699928275857597267718318123088246643948533887078354313729212749425402209506307857216924820439450785013725033600685629284614397364205116834755307026875958383095801131350569542296336724788492988633989327437882369106193772440207431886242340396699137452863723223790681540546069770419143463031782342214229289442891442087886213559069338438596284804659056894568690330303514961047548608029998924722962100473195244985263377978744546939323369602862788633117587618837609612328741093234889467939483779667465071122999018420077481003393275616676995420289370357801316532109990031611943678315541109742151981563365397365963571581836179985829694723435425384752347165905590294266423575564380040209538305011300574178551990127166615638762086952948692976518818350945521832439545109792048901485983077044709466779931064786164418855953710117856121425442022021083508225069902748404604035665920696923918433605359213991278940952452552232507092146890207016884707224984226015710492542556095186027571781500862729133127788732893024509831039539550991200428826065614240206717229956203523451661984790822103169450583413245361549104175098421943255520397080908389224173606950665409008563509243278931825698724966402702884838862209075742957446742548053946315157910368340900173759393991174021646493359840447018818618590264348512553419807092809631242970154756447722883733227031516694363046962512449415193423968862490162118607474451461653643584674070046824696988205360699319007105565528270205833259460592156826303980965522147339077125477209772143422297849799176404914269185908013714287137265439198404584490228317793580955425205372083234975063555014484189054909823361708755005632886539302610293222758879525255327988897436311472161491617260971190779199776986585778604131704383133689806518031937023190275888793727099759956122295744100386136562254236005941485632686289675162929758118946393622696048782203932846200825053244008022469093500610506892120865735401945901211310783339470776201015000509830664020759112303524258301440194166455285633507286346877506023243301920004718857698479744538469417739887129288484735641342308896869929184762872790627168462963637065661853026942036219767348262483752792001739009057455167520168678302766546746383853410030020693138315616965542609546500260223577478159030985134838057847881633957607287598682364110949310293821920596667849162232503041883649873412314548497337899783734847294988090716074267183087873778496756775609473139278276801268705789368658517488171409848842160498109103915080922427499854702616118608989796644192278139694575976919520011505520580591716234440069408618064362311071417262656852518112254470228394157733584012587413619030519214909191513287407306568530151733168846709675458821449188304276498192892550009966364418921180701527849202939246891560144184958060619258622667220307879511544682092786500197755905081475947243310273458174353843652542917197421753289485546845395361650091999887250233758434049903380492510838963568427440192449914266445697339194560452652612905988672238831804399300628806832129173833777913379017690669228667044777608254620026696199126139608289098346300373249229205085156020990337463626815128886010447394549859279093954014705685638149605966532924700155334646987641640016912073091687680823714333190071087392946245039993095609913292095980836141886133133937312355354325542819828615782558316568872397572641250310906223992830379306445802871610778865837749296363095000110675021922638965078871986998261475712686256563518977368886099369105594440260027099801429938150119180536779374952795571563098129745344090987363152606155890575148122874999926380862797267122623470240520134076343408615047548394449808194061473035576289115948643860449127541723513143789478657650643849020670199356279370809892513390325421338687644028021966407658410404062991471343259811393022802110981511072582950637398951516131145816055783773658907165528302769045916620747231609671034991781559004489018165767368732591813251903241461274704128802448632221264299346009944799642355495849353243717811653363729165955315194445433510656840719786150007792656237024349255697442257221526155557943484589107459902456534359833663900064985862814942512364025222023442724895206118003246266956122875431619476346743056073707276465681881233355325842960747211194110459437606148992825852511119449621523396844764351093612361080250757389042916069163598013915599087696718187884438847986123209539075643435695001699194689104767456598546046474817657021302987070817629902014463051966543963311698898013023777107901283065096404493084025928397378654396185665328713711645384224891299326838212276749927700677559103798450927331878349236682529754788876127697316616860043636561779037091988148447092801842477612858576960915115174746940443530232360296991882371742329357620054848882592129008219318189907137215397038750003999585770025661080787361623969374362549947973594541589200985123322881915547709972510068603816022141849495632250113508963941138900601998140210229950916033014817943005443488484550870009254853074194513459876750276801733608323258054027607483581484088192242931091759995040671118055219447954223221914874126954190342645921836854353981763762411801058320055553887024961768452336608472853807196823728025495958741008349437591538024138881486176711029534217067744818910152362542103306213795817204989293325261934672968642839040029620478368963414048595994069848781853159247502212434706041367728420944188573557088477217813393477850070078724859622669974150991507369760055938959346721973883155197890134024970852914475064211403603760666313467412717463374186071029404715955050214441654920199806585158009016795064224909961373943782005555221193242481547856918736709156378582962964199710901676918535662302031367184626504680598039588362388451073232694406771204999076859671873735120127417472550750111846928326854313057546507623859901163633260763577735031442746634109305580370030848184512346191388143549160062795841303557268976942407582282256222651736279362853807587523510935316994624229442555758245881268478849289982344858492194261789375567339845196361113277669920157529122941876480570505391608080243435750125017576838071401904007460979783602005719823225070203463204659786786889093488584909308519251491013173941567323513578519547471522059248966925859820945198597064985162269769930654427766751429674281148384248076183747331566822240004104295929821350804461520752119563604448096812851095716076914208405352030035516968948491813244084479915278193273674318980936883756181285185665149567220250534070204440422723843939284947384633558254813016551125008667908752510149514417279105355636835892233216052952295057355803401649096372522323780358501497347384902978694618936067072203241325542352511955943402618674972698473383804109326817351279552402821086018005204175189581605000980681933735960102213793105065857886440530188415738336514593945544627737538878318514213849880119530359527733992100903246441577272064500351094778491853497767751832111375410788332077534601379903265391093120931575792549465356020630726683312635601310999268548065427473928867597760617131945896823073129069447331031210721505193423372654667836199194060111877056311185599376839440577955835346624155134493266458594293272069265366162654854047830420824449075111279035311334173907870984555298099682021833783793564418457287951551285217527283009651598713037431713705166237723735767038972180171801658451055819011682215065849173817502119866246725460199225358277346015370110199658780730019901464403217888707997284620315040119592696372723308353891840209697328459486370651800937604364485525070692750186296903110168805586127707743641320014087194190091549527791825150543366320331498628714492429091195325900648162390211024947132046779061454915435199954091699598956228558496552742245167965214541611753593661731213451189851840010107727661796909585948276427351783956112007756063592272490978904164712807685639958788544617023199298578734448645936899184115675923051538216487360982198241129155275199707618690340606828175211195771023205138484965351933298420416746804006217139920973241293439932299218422936386531798814526514877724724816846934198024287298527970395557119311634517949100308607554889146764896590956682117584975522444005395589716925056052484716957977577276190179766617877317322481781095626668702026041265687348313518672053000031341603043555899644805273775888223528535460840443504981656090495053748355183455471571356295405204581924055697202578999128102171613521201149146001561098736382869851092855256767628613098323059674164514615088156832597182996112751682265371081909490532082497088683205529877661633919726371521970266106316894939163913335429836977624546831487795723567847747103056784201951180773111068725266595773642946629056416882066799537067049115843666320665925074757011440925262279334312721212528717668213768860637399823189704311921955484580335662307614499326983183853223743233626424557932074620664167067835042784514890078897804429587951572226406341228743491587843056607239348170171625580315711144611789886869892076742676555739474463998498357631468294615975969894644758359966111187744484781807939056512014965661467007890558762240883088895512721108885053976215671998912745869370490876041208824073661969846939275326099000130345631570070129230473432901963136151818349634779519339541465422464756472874160932872156869656593959327711181351502167504525312082262489294193010513393229726211713676889966379091584059616293934319585479002887207285763053127460679036572105124080313965551865806449478149968564869820148108593939430821024511388403352240817873397252102903421487570578689329681648431744536896557358008240345148869789452291671400224876857594365603097152553561030348370651042852793622654513501669411185233722722924523064556890871933749983035132992419006509739224592569912121149947361781901844091848364409087568746803985898753722566500375650595231464797479373859568711855799620252292277039134777277591343693817161415657876890228014092813827094380001300573360893327575172457836740944405452656423815841749604065027503530416757330345414832420978287846984211547148716356138793260945079347399407109574616983971458375313812932901739112059726839561582494550419872903970809800088014062331369010103485464166817399171640952709903328416082002193678638846400838504441887454262876707062618803181342757125506060995741476567213532932542388023044665787002565918341011213933594414953521191947602521560374776709854518197828857308276453126941182325702183022445638226803299304933054187002228824531990630197608814139889824412235945280736223362876539158817588004335468354944138278063949529665208197533493252352935640558031190236491739828909043059873955280717215762678766103763996036775089175967819968601253845800094508102387033860152324615394224987049978410834864583390339355263606833794277661215301975297583806587494776756005078308604605308168015224411208893856155045701195942118470117389025523333791171632521549072531530819698318520515731223440122111606641727690039761852492586471738759626194243746327231602812325249584983899081413548092776661980080457940598670230947008009671866503225478524436803546710950564504130321256850230537879234449232839266983003927464560014290417648730375551783990847106274275572834086602384197131792947059176570489285986313745919290880846713450868026419843164891940591421228805406890365188886304747861735507855344287756033949936441854537692391565774597675488960132154093477722557851441919103121381419072500319722202079507276946307004776911499539845825168711029488843567177756836594671463658910395022889661357421837809396615919263767981160150005989555961751975133620917194972119545215917788070703239965022915574714874498259907933558913293928121507471881636835647648349526509063971536266382431123806063813866820664128724116034689670151967691872203564116768718913047087791105277890850865395482306242627334186527148972069283225964674315828436504445970691617592557051175176332242514792984149938562984548800039791021169634352066619196743450604287876860598229972782241422768978119216235940289604684291393149337598216667335465516560467208751498243390548591342943421928705499217522155077896941332427892085830476703381593078077292497557556850723309377601325038929566373949469970846565251550711216414253138313245947851507121491629312166205739861793921691289198342608989218328714155943844149587540470692512428616103295539349382944681322172875250446077735478814410708435366550024589848301345504301177202527046313921233522859994554048640472273337990742155141266870677508285747544493913110674635045388674936985720744402830018550683739986814077948977556296784682259250964659223784098019302003071913767830533848338699746325913275974423301958169607264984318052478257736940434543395502059035413391061345520553136574023239639676178400117102513836306307573272300374461516152178525855111387605497792500072276190550168059532139546886060839707880042584264106343625118882998755802324504975241651949759051587035029742375456789687304015789839508468977531714264457239481146496755187274899869491150986647557944969828188535979533294869064472426776362485594590056857440831896142575171621841681292931467590348323070754058931880976679025100663954159791700711080952846397809126215605494571275005413139166429909600072118051605721722003848758868359639076185368331262230544125237043506360994217710173727810971092869566924226231611543661087634999860718604365318828318015924838935704055138458614953161197547784325289809415565164575447437563653656733108102909375672286590489525290615826355942128326224635970023502840870900961225126118386017709635275057288282734646860867650105136548155335322073084949447347390602193509176306900956015154553641680069818025736976625124536663093441896937073429438857454705994342566058339829489349146400278749196073165772006392222958392553771470623125732757445398954123990365937679489221916644908088269642523766678858016831652163437803301013197881598448267595813624234181595402431809490584224444474104431386390431484568857295447486218360949178047611601624087007855109303849338289469935807972129426705194571034622634982753031298182873203377320654830454618447462074030766854712258782733451036855204309399328141860765647209259761639868352998643750601001545915849705718635997043461218467738271379168581178398698466190367822471510474662434710480737322883067830035133477566716059922630202736922391059021803102855349260489201952278031332799484083672145533836125454137588885292972725535016494601719060162235191486901710764564658103089530574614689019723520683791527240924425098838300287888845268657362202628040733499738605343443904544191650211746068115313024599299271487760980854491426326242091747436581458351485036549433907543274926482231368997849882194101232381376660847910562181000014611057072372622923215594340747731107136259129665626773076579716436418885015925536247368891722238484347511606169456888331037228112848411016748554337656356826852871572050642104211216154128109512928782965324381378523274751970333765621792467590970362840480654032930486044668419587620070470945539773212238193178282167208089891020929448187582428749365998322481962539280376299477560334607250451237422800499101518907791291234940554047979952657019129884733850104168902752027554374796823554535763211537219555567262740846173447199485180938691675881512471800518270030872464544002750130135284522019889697577219841152278217597045582656898612149587144292299284185182726068632434769812985011145583298329031306251794098669900006305424909493359930160422289895850309174429647537737845533740479794950137319463308177864206023312648577728912865799132550642990754836931358031706751234042218931581774197480883566792291144185662298771897943700885836306141482701193731049964832425886259796372143119707829810678967670366979399703166661466301503082920181961554452679473192421509224516555277614767811404649912358080877141485045082766280101594254351052343776513708741780011263301016396486441208016737118793065453524747259218938427376640425751134373109992699312849569382246965768556528283752223495100761842739103840194442607109121974273854344663704924035167320149519714456579139140114499976978921938235713554811191382434373898115882430438905016574744544586463016605156270668624291789544091576681256238958625527684547599187360969351412983789577561241088888302802913436478521507374130206341612916998707082773180048516606358152959947024896243644190437432142767736502746712016684737282333440331507587428142385705582683034442667552172049808376267838143705438450971476087837148341856254139150935071912258041012197965566606552963405210380748268110746438377095170639492795229469466807514521148947363457456483214305396139042717562737110187244399959883644670556737121950626679059424503707839135485452075395964268375942145231836509122893984258015117805389239037187866075024131958763579031385748402304583634037049525532352209854677738810429339506910553473016652521982554696046596866803086381409314105643857807266930579622196447093001328801641570950847912506438434907238652451882818235913099852084409002977463409851429451657971330380762626992183874178535270489394841048177955035604964348711411592041624855503696899643435809950473025816863288573632705777442285455335012249508847686050363631193189411219622113080706173900551369494666680690968959885001529260104119262612231599284776253622058311627759731079998901014280189115266684345566272893430336172714391222652841347754182932167289404247865784953541930262731378389988589561102374044253668287803180325451662198600407897670048229060059200010761922351923313568650572585397357647142635461101892459134362460809219948289804944763498980195995693698859639068194861824767968505483876480628111865503303391923725923306921287921835418067174137740932030343507433156576704191675991449194442109270236081705702606006400001939425720340051458661237309886237460323537351875154724251725521365955738626663857528839508846917522542656569556638615554733130009995239285932811142035805430133228827045707179290608383157731339133094170877373661316003438785349664437752759559859095495172535964847832374980175328386552933663228575628651726657256751016858240494463882735019560461064178697676926218438485892868945262655223573270812918711404166170173067436534769022901172496523044792128657765529162334968315804536437983300955713115590856029341081443640130359443214806045123209377481941994326160331337765397967167913953223662874091120565199391137493365460126516889051041176728177057078602762633645221384579492950658170608209911088807900891757524358086449004840265920098812784245380282681628479774818431160138407420870767996899145943602629517841791555794430037775551012920168774573616091143234277019972558979513973453495738566860260369345123265122201779709686490370620961035106478278056748692387268940469338273243285866031607456991333157621982348723696775188163535573012370841233363428086100457287236727758894308451742359589678409438958340795832579001142752864233442891519506366526622639021656336739669698070782120796525598495199395756119092317573648743026795295759367521462356643486115386354876385359846249751925789866329812385651972667085387704982276062128318452311630339653088159990874278137009199870398926821504936234908364413392756015515645579603408068141667167840609732514883042486375858186563087387884225616492180300297310807204269306397330238374039104156068117900009769836918301094350668572162347983013178538722411347351345828746418752629049693941220754401729061509599875279314012300334625887182214395054379260389255910768245324532166987384930661139945169320691603523487096722884791324657969160429660955781377504912492405458228083400692310702395119841881823863634601456899987387421896813426410376100957848040194416633750173450130194305799329220248807020568787253907624092788136979029811297784689630653851894630090608199205035212776818490921039172006268463052454686007408713077144220329032128383542162056452370367109954458282572314652085480277586069369816531423547012587003406900440972240278719454177530510618126972727436697984511263213848582130749795801611218925268423881944887674811024130261184465226892884678004742406215790838715352164941445757905166875923275534460301965401519246099479287341347407011376702153362083225986950715175083430464614790131234538138616942654824940471056009065604576129368078319945557618719494111284026811847796501481860115620806150607547911334938102690063949326453304115963809197175795420133148472698151248166111188518100393306920852799178544046981113040798341969999065325143425169492951863046468373964375295786812869166227116439607688053679383908161181629267229898199285593194875325566899064213317340700408473862742542240959354706923217419549530241322040073918678365789965509435403350652810776473105933268212021364950695427508551380286889483054668492477330861669781965266637053349045562640700602421452420186675235827456506670972324258431396761759859114275770573755067348096905009660468447787483205402117039261945502535969642910557007982883829923432335650489164466147670268849075649432877237527594717586645992106035282216274354914995897884719164998266970454645643791176059470510814991871159430147715564913603154315761338187828647051514035824188580456560017032156251331509063938163906740773673543536950224265896890683973494228283410541199189608552970995795075972671068767847888568243292329422600877125497904025182248437794415233146514801232235593659809252299882695933090475821481001636045551490895530536518704655034963700261911227236758554124236284503299365217094966486254130152335750757738353923205368445706295733344040617794116428621293584683933132904663708793869473528052896813965823766153768511781796006612315945612469832564204241207512517077854306579687879704740393983543683262774754949819947292816829936736272538957079382103002709257395694165633893182253318638340611074047626143330517123582021923429236789954443085737710556581973556045759978138758715984371205188236862944185364695238527208171548963375520785549375522720289641367496970084221055432957713898261582496633214162278139659581631940030250161393419681045556988932698378465105078902904820196248680511412921578620744527770167087233939202680656873812121570238772703804702868120813827765240429369526317063199652293882539990565965863920079217528178640271181880745113852670376678680188880074873885178026598691350295612166118575777525007473415616422832598464598664725983918751326031542536687104445759277315487180411815149018103117728743084453370565756012707002147121977763641231329027006559718551612731625791694515963492950920104658834323032975475024524073188970551320175105099836207741806801379969651943656614445207842720682892420722486602781039941720047784583633684883453006103265123300079891294538349404407381392149770114108112431525467454493660749220923112743857559328585853246885637813520271494412721242213132601977602966695710374852538166929047621052981121012582747897901924597956546661644001631702315505972755699953440390370226825273358226133908926425286415305797893259859434483882713239499579386797638302478361224811207221981149790595037929301335437942997222504138417338131344390333482211666278502364162840924294468072324239441516904845049141415785207636229604654901308934681747850391910186114667624891404558940000332321832865356162757037195353847898639341777347202300745618345484126432819820414603641569152823579579221554139465907192963496861666944942879746842089585911732689240105106924788631204080527148854458481174887861870072623866205175701185218555944857674999237239378464961697915169002327393429314071436577251447715760110997918725781193249176875473174885651633272742680915179044551505252520692819777598915723446546455458375864546298314283868855231143387545010916882856362473543438651901703979441807972026851330144650382238469079724084695035710902598110579617564969973624259817802478410318889051303389538249854310077019120685064336352308825617243229102028098036408019922424848509874185587822248832763426937703469360452937620805239040096860478484591156821726176529318787782108441205927445231456279522086234884728959424260195100164730950163609279955683880453632410989355838498651418263295372468206957912451361380821520783196849823921493937794831179283615967325778500262357224909928997684424334885308803660950200326924997044176652095295578044125356501304617128922070005129341373213393662860591533197385416242670885918973335100358761528438057350808812477036733359897548792731648686401121482570847322748070836813393707286779161356913808226484419913528818429721531081391314444604364766541008997968666639153845820163019714584542986905641476060605962175069215059063989418729192995302235001761887732969742158817037121055612284389875886714438824575005571585309577419067824264276339070496906117615037015817819300154856540447097558466051841765925268587276369235888255657409878724853005476523253546469050437190481807008270190484964724709506591721891047613064321034021972019381316342104663885154326103545767131704975567776286828033906712281564096614806297826402896339107751367108798872754736237844115937793502562905243073518268271073150396429247216824136347214388918612965916945252214044022052893591377930996141119625540128994953005368745931340443784308158812625550523033975221034050606891247117576686543758275920758282447279630689019510641408848532601898355224118797621468284132570678987341100863416369017429534376384948564611894927974176016319172621659697061727381029049007870059438947854156854612655917141296045824802200233868541372633047954164785556123978887065411941375214838480052336230651210302749027279093158650900460732362433017438193016993858457031089857879919169959098342018844552911456709047648415171824752674053374691689928636991000759111862548290751766786717950041280470607475179102284363097161799073787686914333311373376653609916118976901853821697291483179942711694901340606525212882938183949781812513922398352917306086216997449508341222073288716454469236347924247210841188864365959475113765752854335414800562699630109451418847778195529814220469135389227378282190833652048565648380047969371208532287189561977675318822512958249688806611986696018077009586392453636566287780027770105940012312772005336026495546749764217552600023093327241431646005525326867272471033729858939404233906349579163609836394741865853392550127297210902260886283823026508440459732871293184403749135441658635745859107546045136929693139426988443581109006235353399353449268171396268923885361301441746548185651882711008909388263639801391560415778198390443452557058512191089682132548735382729510235167551294535973094679098696500162431131167462731744977927125922886766027427023349831357660439064071270026652388466618209879802661092725975902983929349008559151504210650782781181432029986401075374515078723838499330466811117746434247445576319199316496241930047303549272792050190043060154114608088985939960012021420134533149772405852883598996235680443397947282569370467095468907669626984500364885973612700081926410608651683964155239715293795477773953834435332847961625375126879300543372819103487283991366177945211797484985525498189420876115938944047622193062034176813231908243024262563435841206786322984248896915469674282598403578520511315579797716420143076157559451478036132144666423431849164861733078063637119658631449622346831362326275226946207239968470115266861842797151672663298320763342676545992165537153184565789363621017292644817491622978600198507510054126437239044652127011870984961952015321068582783847290451419365135545391102129140734353803966348205635849626826406655365518863413068903727750274816773312296439625777928084430886033516223790706409024064173915040057110065551076416485942795338470598031027517572713704698516914261953522765873837727270445441168435403147230760306868481273734021055653986999973325541928599903454585811184462668156014501237845723193655724859295103670224535351803050642365156613470285422455423921447383625722275182231707377423944870657018502387487641970665087390165930830205557548922564638929016947021273164236774157111504583615671009144822865479013101095473547615685408335813791448978389604007092412911024464540510516734575199714893000638080759207835894163525077455718620797701980624027468456780350966382615743310649243631572840168521657160649361777656491919964534904532903621712722112082778982202795054584583436364697477242414838521315049821470540012485930960155706006236492279047675588343892499617136004965248631048547925269799548338612628850412460430105328070077200832844800919528859657259891107324308897703355003798151551899389780627210980895575277208738454275372665038700323155554569862417108472828334918080313758134056683818311291072017952319623622907038035735016448829216900170126801382082058586284369561086407229494556099590276522421188683073864479277972046220834226123903938512909989324371033995552923099743583617239981177786622365834079448206394241659005406206151673678736710428698201436918641983032201163209318040958758494312852606961145021793448296787034956934584640816159496278588821089690404321349815063759614235437933058883051210855404931031986875776045251174890199189396272524965997666792318070265969420506395025071841763433794861838337552700891343572435449704071251075502441348366016453632537600986557690375010969758031793526996827901345211902864323870906580005245268614081752479795716788846781521242506106383230897289918684464970410526783478875925236735914086772186520606517600625466330737842919373087407723924131931725008776424099378036364573849643136908815181359609031965152066078159031510196714121950971713643582706667170431877757783314086885328719473436018068751683206054007972742501579260181144033190913517377134663687591556108456232695320201179435003475811605870243845183470574596937600849256649030996355748763322499206715131628608889869153143687602390980231904322360289592560459117564135967569378773878876269441412716828562073805698623927654413647229318899108263074508176040713191495118893645811005321106784407904891870097198441596573956049663679401271951693766608975584139145387137118616805456189463465337510340290791813040203990932184318102264667557099237430545946098415588708834630763805097530007471856143396270321876954406674169541010605880845288645046088456210413635040118183601041524861004905225796822427477706912873886844572333528947266503811518233305740348534595529283475609312968829140319617235433018331741026191722845513631970622940361146800891357631727907204581277829472567355575545129428443677461111619242711020483584437878166862776743859370110076917057845270762777441162899655736645231419237125519632908482742038741398681715759271820532605815148950686804365309738444534978641758984285278666455636806784683524853652492880181967026156089625124051363972923888621264236817621642015306108710610974903942711458063185513968028163619143573717278461410595089627661942077464007946399214951158067778992911783090361116464364107050711371017186471628736966459412171994811668082993247293760905859706913523471217540348468628481763340369871909864412223042540140294702172565654457214964602049491653551416792744963015299624474843404357446552901066610469615337929341544002516166357841083156847332002583136445354653707820836019606471372409886046165492525428706417072987809308793421414866913674321690995586982567492474825479583816513599579123457181457470670390258307220326004716129207385481185860993687162978239114014701787816573269936497414484819915189899622278251347720884939800077148009014318697361791329974661064621803692340602784791013966413406721689011275674744780105229553786815157721901502115407087416815154713304713574273721581856440949733072867148462836767228159387528476069719734881509989571646785516397731953253891908927828843018789083153758038080614473021546075599582098552833301277114908359795633908880722565945872696356522985694676007102571993738334786094961763645450989579747766676479780000396606702256384541034982224036209901207885077699637782385577487484405734445196548870775674986142873407192546037299904039178664176077028737054736851743986281514582427048238786548516673054189688584808981002139066225087328899678545825408169745985673519308176088952212692615072245345268755193284414593350538206989906691464808273282022572687795703773323430636965349233607593135768467248287278695129046367080989810165500372756149336634460764809514030510183367237054891248044827015803570927515235253269450772841021859970709338917710220188565104723085641225660419360535097659933990589924677582146521234256204315893443289920123053269923875308585691815575720522921178375788560360655647432404461946600548769194162791943442861110028692103125882019161156067231895568529153087766720208452573518252496384240676038912223116535638462305129946367716452647146066767265316792915019822385434535831482384921637473642152946319411855211833509720507183471507555735076921751556173503173469854061263162748525742701208512223562746550210480972008996485825668986928650325945928812236897796710720804246483098287261398259128524869628917639159959277845962569349955528706693998138668161342899379906867793806467944961650976654571125431874626541275441080476756186839772333514602260952626718558896188085414449565386488517960112597481007174418210528434411817400612155442657132541076803860072234777383135169666532023936274805959720665682429089258403585882550960410117390585099127932726771988109549454857802814552569743702977021767238074371016756368163517581799545385577952817010992209188497898590246104183632696752245163525134225886094888648835808448470829269717922675791063321526337986897271801210330648514811533069445667996827543307669459823613463791138154414673058020181247152646728753752462043790841554310040865267975128925556158336949954781643652277181817208546689962680018213386443768867778756785025478080121864965375610458696025973882288309107193082340001758651089627190531474738862589917496490765852742352883658004593203584198137185832375119757765925477337002874556269130932296657958181059629528954361558375723906366572103646597599949569182653930365950015466343744393325397530134154500718902336662651638670045586830921399853946339418718543599309907905546732340351108228525537014149392314675348713648419114063069116924484316827996860290847634369524618930077823853319504016410971359521172891265504922447893608867080338510846129128020123979465357068966340348892538722133994482486928605290216921413800388102736991885576016610748928296087042908093587186192129724993546962821951156724535416436250886626872300920282611060702714023556291821879396672392901302339303241859092991812207741817354638911290330536455733827939580476741050081496794808745253477410585198601883846560063156865767459899627186708259156907776173194637167700070980188270294339650920124836381121851712423104523794906391527884584906364143416439442641227381402855841539862272728050652921993504908902888073782016664767152458759542434666747124817843571374476714309218268850956543179520376988480801067532736825492550595064482245299118261608840571087056286499796997080017578896718775678125334791583151825593691660087377858239430481672336111851580588720882410927704969506483768899074729926668462887853510973224525854288286242427473744405478506943927039159290270824613825401462611406585010587997017915256839680444692977461486875735913366309967750134889437300014065761312348227005995021023630143403533921559411498392393503247350025935935412333864552921448022493848381654989984414401901930448773718920491952412239154289790017428167153063287465234768467540634668783896610745791890327207530044733965494844540979405878759935347188901064034514924459986782587562419977871037609001873582426509510874161393565041373130155180192448171922097221777607400395795965931534801602424635847769162271861118241827054912843687950359514448919858277442626230286758282108401353244243799368763256276942134251651647352193655810781230986077007187935371177626407373556380735898005712086450608746363602960437789604583180960873980664293415165729683331329656147683095374503728917984618129653081044479477839543887702117792455538309152827847718126612919397105906222796052918488414694316402221899724647381564628137822434469373090529783980946229309841750066592082543319726033238462218247725671276203625883355433295361382823373728224373190313968037649931875614909632534311357337926605073687716545002849819951133116317854398579358218995410422044805319767631329748412356397744408608058968469701682004400677528027258642195106009094077100263564753161160784776042621650337869423854525063335621274239918141033924454427049777001502951906492628131269430643837390587570998062727331466015196799115696658802410636542716194695100237118018623323768390336858950513454110188066010792338308191545803814366321548162518377121961957646818862641099102446454280328937837090971207034151573367028393993924538060905786023014210570636217269431404543812175042375092344498964905803770402659716841650582811747907675587838672292233093606111966984823162188290507660693783830470228872574508646391902352014552014238093215578643014315844491217601855711666042233450616513288059789052221838514550470585020454819557186051853304113559396115764796719561587959647140216570759792373788257067830390286513730749697290238802614984990979591126290713672915145541683828991108897234522715076826397989753864509393249998643307297195099026640455586228901416726558756071929278221792612284469163365940578632620580183663488116466677584708996822187731346566724514520425701399663604855691770122971492646885300796952607011771212314228335475258729261428128381598376592018067978645106092688453616589050029251678508578018848723124307913009227616852604981215072292322049502274602789808508193234796106159943747299369550004969735706105957661512165309516647029146063069572080343931735860288587809262482104501464377850670301534409794258934106307567393692400980509634622922399294758550675750205685268452368822482138949236726268831832788704949049897038067662463482582134435471581884124093048836893901835592184401027943724962753788097820100565053227878524586866512831771104892261444366324735825082014337003169363873991392613310764998103651443796983820593761653717735395366347840817750092935131260424609859043091618619062051563358445585798796331057711865844590422314735347265713518598338405169415920135764922005461095543168418802598880796796050582394071794117464507776471186607604890921769450952756197813214690243860131679073665558485577829762530388773072984098253751546587175559047398999090566288691816924857087356594857728476727551927672079517541794001135612674153725481504371088714465101278959235017807771278927916422477601640572704991091604797534560560824631767652000006943960404356396720667793789791667704948747770407356767121153600368310900665662792577232447144075087527727244600563933233681402703365195163902508699889678471168181119324516227997208174748427621530235953953989750438082389864813425429507098403633767403727366525281465290090979221086817048803882890898717807781810256550297502724106191813424470463491168090853602238112724617851513329295216016425582704832927454459808395247241883037396641366264474800225881986704182919943812770411337786631644455927691198882811129327737224870650278483693357969468874799674252972981185823649400672202955878362319338984919131494828869517588598346652601069621755105181528279012799045458616180376636882470497197242781561443758499917320691562680739124028787085163559799786635181704848595460530401112440762985849166978284486766511849621984358611668236872694495324063727438639571354737271847196355029532465989811364619758408125404821859111455670475071955139193528884181168844011388589211983734749711592213464330256831994065112693232314270712945797882741967684262281723699119303954853546314255215715623021714679298507078779456817075954430464917762136156912185225279515307723177714905216093556216770454677826348080888273873390765020822499551831368621172711787174122149464434910529271331383765104629917346470479859304780814212448204597174300650364146655498718615917868872747490901142891068712778242686639806940280314733790675471883306840486792354488274512498848596743486674996357269921972274105903322165427514183467533886501525485524898907553995739877639058368667862100160499148732454892006487417967869588149494990326145078008505447239846220680995805774589678912087158084670361419537450041231414355315580208059853487154436408679011867936221980272271339905937625559356817432001573772169876013132290277562545833082213115825877907594493789059900693510994250165380510679776233403707918267110327645689024851920719221381076413266546975653716929219257971958925110877189353192769900234376769005472457816081955719372916138554190884880933856350248155243838709610355131990773202221141083748477779985011630692465381835542832495446177421028791719329784325499192691761940734547343028937863064145904400926592830063909973243277332455441104195372844122055811690712335328939542440371346845927667422962195328547326041171808403244133509024476510902056400914279110829922364522254437594419518974543965497325664173465258668894402393715878180859439894704513081564751181787446517312181276959471582909977600622355738321036140553361240254649871620434592355504649032187271293991306857264140590687646849769877414267005537187224220948919173362014975631242160369787616846098322070081372434110382498182442142185520178813287012489830893666344721585829159752094542483576854610380299673331119270838575598383977032274028067605095606257123177657031547956035546279356680583020046566063163838285409030455199474519435623811656833679627590450511946133741876063921959866075192885477076452986987320467255555508025311895383097525609714044041778272109587317102825935197210649104145956498261767454601942550576087606818959359223796257508174265202506041449250491406862975841817277724375805799596259093304972503336332475444382083434431639956618264263655558628278084912226315960673491981675428090736294442263880145509713414312371167924071280999712972188341771611462875818064449578538031256055198619587218005899867881380484559848882389736329845684340563079584684832054106337712177319394721289384078166550178567977882288528490711480005735765977420829978294933708960200783813012525509954470743029398839113711012305383585977515309569017643845824645735843085352332379362857854257277535203578317445077902721504673441844567902691517790460996033039595482821644654355154067804654083392223213529560344227729640524453433909276757394979917345512788201516388817246073904579971158044033691674186556077603619254029764296597290351256861393648726377807906848258914175321103940703042392893441513114853909253420988465390073371012697523376534889016586625388107651112316453235979059207836748624620324658866552614098867712635519551422603522090999958982733219108577497639678570295778007348109137590415364946156557102325949347761248096355640658230743045723043234053959237941905925036074914296301363799433295470359645220369653616169752059030778372749488736454427175546602369637651008797988945725686136946205580785906166044824078679016728848310355035859596219606458167991225198241614840532990092656983064159315911674377277744175569633219903010293795669996609893993630463254021466933056653360532287604618675255186283957541513690793170221350445208611840326204161635745155958795589464092471913419009173288573359451796319359246056804925530295176226603240672934330899895056776978606235389063472811490945933657602521614540780907883127360144528141128389430926573442143754812870856085068168637208402835668062956764214912895459603347341500997799467774662993811745546450789550286501420522746464037933253828088566005443349203570738364119581861912141221796180202490489825298300832779023550504749915990330580376242981260316274943090373372110872604321618633805546809159479617190914995957292036292854920798377401989956292676061716463904342237110730225490236635467911198866152697772263542113917086315774930894701693310779117447523434946040465086159933229289040946552565077779528788609377077388442680318065743575508418909911757541372360856406246816894078439044310034401728989789861089176656928888882309045144982647514789326916418469105184131053581235990360554290893241388360665615018163550655597153786419065242814706787637186770708526079313784181436370165055332533841453519630432792151063884832314863146197858634819116466559561355162607265594108894587900094844847120074258671888433921881721351340952571666646271177195863259373903284744780586078394865687645519135020862230387862041500580938390425166991263327729036220358852220273215110057510367649280890648068054408679628917092798817120673329919869418799555446808815691511202260399547322515868586786106694182396245444014258131086392714681898420498504118315374120246076954820314502965065486261928400035265464120227321531114438124159345751951634180109568142315514613804456354085018817254213481240934478942845953589427437340762651978835564286411595186648219408465914485299307148841206756613579308099418131855315940762069122338897506761337847930513030422594696248353052021116146635632236064221911357510866562421693199454650137782374315484418552506477689539447153762795476450581846671445843246101381325590900304816620585598306693097663360904386605531166352763067047735015736375675649990042217837093727141859461608649518339470139182550316150410478652937636800379792660081122064910773535518722621312542343111715500254830146475051629757322263853127260790319750662277693828422040087625568510818342694884281207331943561997611020527839063236639274540538475002692784942162469863679306813992202743638549371947145055079039846674492841846734503446502604695235023737241198160794741508207707306205452589938453981010358332885179809541778315711356544958593973496067553892161483927827543592032099099242501000140275019331300564452878394135554236254458235665969395403383448605366464488584703861711834176789662832206007812222624613680496334864714787728663259916523332313461968408665459783589885607170668957074769898274220464303200103549259542936606707714143490904687064872730356098581215593204565627482578664969460197121240044506087356465017698566192284009695068579006859889434924981470532839246847301000284148302429358581133400575383606258600502027876285626381967568537273740016697017802044869138667174903991481448623792332826765494464673871239233456343517320145586906275212264841691344291061193216266539471601203425852898435752006954770517253892921741092434381214700618177589193491652954025698617257145479198851823757169777105354636464067201308430973638565949877773560941347767390766128643435188657808108955634285737352204240812047933494421310002653831958679591734140509522273834272984612447794882209532519313839519873338389484102740855410430282615927258021631689722848212251479931437486727616624016554849933407501500253609720624367200708296522846164187647644165001038526264495234363176457401324912746978665936998413998726087955259165032660183797588880390967239550653727516885371151715921739842963597486954715447220208589176729436942880001375397681699089435329864409960539669478901732800552820471676961228355509089988485624575038579954545543463873662363532908784308568126251417050049541889808406672969874516553944712480176241437443045067407968427415015941714636833543541728292592870022178213975686528115908192495088328713855390612560499116371502085730439138637499406970216195480958435237343607283959149172579890501254926253858783086028692105538129813115352075516666183769863882300428108739214880182742989341255341013207558073575934450531541194919006495295612094735465145931361713228872215136740240131145099479726277484463215586184196686034176509983308516999183828575064286170829091262835698743674692825866100632739148126859873781197843465710975261722662972197771943926398821069946546659140685864128524127789071218234117683270518727804923624906565995057305415957714974599853042693172605888716890968595141581419475412487260622300883372774893884195761404827500677315842202758884302389808375543074924528200766000543562766700133133555793516485467089132250206020188559288608903248511839762292752634059936288929657342189304389797414730230146694210465958856934670697838418631952572043761063166117047938419888302167432608533614958890619778748163549412779194344520082249463835585907922877436902572038317670888073467581428213990835964359752671253179471856069717092088183909710078776312315166262586660754964417186468582973156793967829241733095931219190345599041254508179136362045302850137939302207668948860124309964179251371796963683170091355106239907517121933409300037393650548900304560662362317878531664273569501468460721646356500180628495698373289090738884640163212994490497091398138758735512301550040014597921675232082698657677064257670344617353834537945710895938003227273537327317648820823634344729210220119518186093338447633911139560050905692952855365386328539101994913262377791904513344764180508925120393559708937412362032669015340995089209430795214683558458164310302798583805895042075854952077975021432607674151271120115395201348482827167589694511088804671552486588783088642417244633130280586082167436785786595826386048955171911222669133524687235731122568478415891647578584254090352010370144419593724839695011663171645331851881761025874854577465830075008880119658271037727011097350265901243387599776895964826621999383938428691859631467849569800551707176061322379871509805656226556394142687160540134921876229972183998689746619928450640982755916496432645381398117377447367017897058932025361117196833348319729867484119855572176657676367218656173729470653342764385075544420134992433034531870889784543331168528284566864297256419293989551538863331128151824013527090009834725072668736243303131614679181878560100095840075902454025198040973637775293658563004332123007374544679541887147086128923646624885260905049075303179648341206828988902853845800221076867658429309802986769994887004551229972853856327255427332873312982934499928395420252010417034022974571702327140361176892682855303943417830719842391247433107978763128777427812140811048168647563014854690494780931770971905223433386438417814875674590921985054754833057089523359779783283714093904187009497104176121562017746805270769028885391988475313645504182973320311394330046005562087657113326048338420289384784378469883054531132016336785653244232932945728852027636002712175877456111670713940094896099462824016207750075736415479994855826143584474159742886576758003782205011451666620063574387862392017741917826818912376881552297235454268948433104241392975763981600282545825073121293335539185872137397274187131190079012323919415332217732720499041907151476200129873132549387559670986084946944686340618364143819050850781370001530498333159165259404483883624501242279413633770988458711457052062383759088883268097430798214756475609920013499550297579895026939902541295302532371731304533154952782856488722072837616170111759916312418893665997946990591709828737221463961033594475658280461677948825695914110310102593970133875246000477071082659962811919614853192635981246405028598785530066807616904470361276356947738431699881442415012481341604674101446507183960790444582239783645593404471341922043402653520408391363192196737596406891791608670358671060606737381432695145040436027890995593655558256430459969889471453357839794809446943888680326213072933048661022445301106279679356569473940827004813442560973901613183995906007995479721112156332033411905773408335088964261733561051610043506283029502716924420747564019661352787238257030951283023898070469637774952285642585351013003874087142727950741598421853002960975363537719974177369877153956902017916091470088834451790625903257182483061204174208733859057848362558773071631769609865492796676140259447218537468456387819727125914089381092875246220007213030925090330639029408478048749673593040040167995703601508836376252824294999674101921195817237281691838330719332564151091407654905649746922723345710808124724881382739211434946956073655130197635002774536850004384080952095997462069050424302749771939566396707432606772492924774791820679925339045900446602134038493928176763271870132135122219064406686093695559423134171403564692720707792560719846293510569370003155055923468341763536725570146277762722344788217736372016865002807458869358738331464219502169215394661676765800631645773608783575001321128551472898577551443532533869733040980628398268801881610500302811676440986667523428621397904931381049380279352943674323844812508394528996197944118372986335109929498376379773994159839921749361092680986074949990602596909917057072004156929764027428024152220699295143501538560436201289384164233290151661675970848229128730547979990264204570475209415372177576639538149428282288595102095458269819938613495866507446204229327408433824102542399373465536681197578642005125808194577215532866321450547828761332615831228428578545177767511419201129731113650552571501153693658059113432399255784428402530998367354944491860525396994534096204045102738879446006890968344920674614281723838258594479929713797969887437067360247447201541050560426073154241855208849711041053044125964239923557180578185380518449447680774472810236426347205920557586454993040239754562049941761449377528633768924445172541327624103306542080174463158921725488051585888940370140930589035253598443926494938802718381104655832142061074548610263249697762771515318201743863541791589876059553934422361783463683271393162133085911845721067559853731397848285435619664345222827455568795715457761170825468582415312705735843446428071378332803023867082574765222676485265910316957291534957622140252413052000826109283248398582642406441845563396727362592693013902621399609101092419590339741036433600820824567468226344835299397363931852250510622452577228855790130011871581890128009656864224224853798416324737802793550841094228928536259667243698124011859055492599885502594004379769768294501478317561132560831510962571779552107894901202020336906870399278697275739862974514042198759420486718297832852073289544142969048072305132665496378597557058999602266217440099576303523383485234642859867909786047359550654309417903581549239927308379562579993654568683237549329358317538591877738443433579323660722048604775897859509100590472418270399443177637857234552018913163809342347399844205811690892565047482212555613439939526643773419049007919822493354084266959606872068364490774755619358592065132630686079878860981775841654930285559871383661375603354455795261687518002598595428248449423355360172087225284798399423170409767936676208751173400510311308902518515230903257530146900194221097006608820606395401105000250246568379657936495290886847765458800690766489346591174608596893177399516504614291052053114350851831993352538547841796186796240668932034662387660016744662300307916755313310496694911982135794562500716644277642522325172015620713964668050451190356647502841744952554057972476722225781717712168490464336418614988780294523101035114882041853772472169839144673538140875310526691682471569657288079419904627963174887822069673725601334210073345540125394858277058059379707371776148490754357442183491706363372401297206833847709279144434775775798418455451162254439691145832822462821329821296891785926922121406997375222626554537017642586523175651224112396181151215870201004574218112340543981114435831073977443336098230911685754662000795063483224432420663297929275794277290354064420103012856926148452852918228264931154734162718043923746971347350941387632409693042897744218465764819292665155564236437659248103046869654120878556297059292294413316566072360544035872824079846317506197837061276408486720555316145160700485763568803654169253745964059028269239059283755183596890622320159299322785574032463508157302740924981932423666791884866773035416656250506575161915556846782130621826459176314748774362074672302370764486891928244569415389675998375020857061755979443620358162930999814636730648781577862379554815885110209065591628820925659822837799218934901246849039015426456226387486526414755242194678249575747945917728102439516999625627242352200742970271454437972366944303401866733548478928882943376008197155649590837506488567619408053443185866278502364491783004678854482754105677679418431606279908155262294319311313949746743195454519900533104584639912937682570570556689532356069632467465128518994788183286426749410870741596609257763409412195985658165294393446261211371402811202103351597030756678961291928820167698331536150401301814038388014959147503587682855369056995111778018955946577595482079445972476040031887191122765486810050416764225927814588909978549553586305884041011654950589643712947338259622865811863907484368344391900802794050775002783454946870388435302888092941271809066058002324935173462743073865801770385355857553092365183835081945433459914136284627219136886323802560764378647607266902804207722698079530215980068842352555445050558198520309063575675911248806131687716143800542111216015242846443500562940557607121019356441618019531476477668683930754411457105092794042628015302867733089574872934647102808684441841285009939683383428363638252055981523078723485553243529352993265030666595999302171759080881689281113987082055312163236161794893184176889806710421994253630090752612135178181902223948367027511946637633363256542404568157450398405824828524699696627470396939263477124823893527129528258942183956311445015373779014195396272331372523434191837703405904866928869564347571928859519970526300766058869163396041614341647177074985505639157506727375451615677554539927152338863266931149771126623691098841562234264285473867971227229827650027662800673896237629811031270336365370174919658606455111848789663638703005492395520730669995280474167362508095327535899678538927857908804559436681236809952070403166323683582401533747208531796493513145085049183078491410895092233695239932071740122658959116079810046154325671705228334221190787454221885875244687369212657924612415193260923612331644050175293661644753563543930292107007854316427838341092480905130233271043723155300791206995106535773839616491805289060130722424870702375852578884900641211045454519939608708501222329393262874240107049251858440694837677672338999859091339372178947359460632182999209634463239559285318116322911019203219868889661103253307074439308685702737230294631635452847194493128811701786638794559755660659310483998575455979081130754335139334312269339053584268163977098069624905706202162782768679369663971786425962737251931240164418994071935467516487380536602699688846239213648765793360511295937654382053102545429198904004485615625284414927771036721432537373392799344926541911876258034854107987785267541563667354425639888210311523476996387502682094659150518023311670564969871007480951844577445327370685917757837724752667165952967242893118055952659674984450701507556499212542696817119041052703797948345227356023249198534808337263866640787020885067162070291792558397904283289863129031345346741401254388008236538721791723528863415257260183115478598825602873841827258000150675205927482923332105408950136800289603945360717114743166651670812143677230067671546663542270239634206267426794268854568362283278380153629665245191849727728029757539846727215172623888773995142531925488198636926168572683690518522864988961326501249369111683468028316271782887236846982169934985021814983752001363470577550623633756546747005017212401737312429908162380487022386392162767398305041595337959232403280882065689576096570830850685383840822171256364608969295961860313022291549058539517382371036872419898600974073454911838073934281498600257669662435468994925726001647952086539928344674761694817348897723486154443894293948047146334372082280488329578254770118422218718912198959579522439625061208951031059095951475099637834763488263137480106315754422928167783150927193669967515956987125344840091601234214173417801160940142225699983537837832354947402526673093312467266691408212109553559116127402940895917742289824362215428643849107327710971091766172477563583444615840190360560480130431943671824643341382828895120100000068991996112541220078274901528181460596075856526177632533102443204610596504682287489959203324211135163732656967276347788179629233385749854587947985838590289907559912302269605061826157350791941350382534619943192168591852357845078600673367276575308422251114685704068301568702848296939965093528805830718207956324513002352781900536460448969408489501799479113382229135245036808583558077753145601608668599286368013336746571121889732706052299166451452258310239106040673918002903687566081486858920475449722358005677848416764143923961436672736022239571123399341926120177568184250457500955659369519221876460126795192880640514363198305539812825745484397896005915884840037419594712392862366937465299772549857857203658695081763669840383738641553091486557151264609832476439466383846566349074841763767625961268084266739472633843909131292334948003986840954854168279505270877170101443841261407468290121030005871141755154354736609289103398945878994131515588362177206834847093565287912634816890442808333003131791879241076820238924808103383921790642927967816583320689730977632021699762682878924381531097802543929164820543369073527311586283132204210885825346964740457088958447769875526195020799503329565638565054685594765777928418957441417220466803053909420619130790591028504787216413163813361430150797041519073342443080578855624574009689594904647551585094073003425330043491334454426790298509804413111896284686851528845709774605750353982782968772028576573338205566643662067790464079946788506578786630872255924043017266165611936560911454857228539335674399846233626254664004793600283645161157436769853041199399485800718166460146507999282623158137542518798791646708089014774616474707754947679890463703017528574825407395468860925021530879850982711878298144781814791188420629651883419326336688644924769342527348542764580143858671659583029098465551834881724021613958763494437485359482789575366344892905146612706924079693453819536511594759989478505820236915050638050710311526613396433911231403886675852596615181869169340647681425657142143473688653361978194448784505118484520695131583416879002028453759500160557629076961135429494952730791483400702427783042845630554634014514263929558249307168717949657807278374773685506970012725029349327063596879862901589927025473239146430440960616174957044790352140250584593307292499736658390259149462173975132238786666764311555411576394588113548647410059077964945849495348621575349738986184471082959304452692135226401349456120448963636995351256599816113486073652882423910591889762696444613483082212192209468153409812012114879406815030477702736223423308052227649796766687083000844285678458511397901027750406667872424064724362203210469826071568763739899183851855314981696486151840525133938090169631981724454806651966496603585764896456997446998341797939353543014734130886211063692351621670042097618745502206962847827633558808946223829464981599037540037365448632961424751718911265551807752809953208903058848540722086753826446944670496208305965094579047111158413229566285782995819794124164969717577791536397003060213876267116871052475392639397165250800528269869372225505350610071693044395821720875227586953477312311953255841744748474843717653152946083591743940362152449396080796908196415126084357898717690660777109251128423921293091953680055167092874058912244279461498788255019824540763108660441167880855381360095633511886109806130104555680930949288219243532068926840159721026269314450304576363062060994368098620717247259827171668002821028872940422894043374247953020423038600427112728991572746499728604414027581477097663760978355399961290756950658939532516534288450068794648690917294224169800308271742394268767440472044581184624301671274221190215843862249839095353446061388962853607283719450025224065901628847871220547270079164384941545159195119739268833309300285744440016378157460892615612553569071626538243745885455838939971005981434715588706314213867187002229697344049714400492877263498612516273533222767876833927856266607396362585512574309994046939495071300713358946988563568655443251874233707062133288255485791693079474987452095678915351593434979573942266470157310261740467245170378655516522143274007125714402387599678411976290477543025702248883423488121548404758501328782997231548733327279357763985265821430462397801645509431368933395785931556266970779154650128178060756758929808445756500679259331648364910366825374604673483316883751510499302468489976276601285929610337043710932154387021216651548642531734842466129156103011129273936890463766131201516245354680934861867514223993426696156857970375052946589851186991591044298062265325631616756605830163567425196453399788774444353267068919944490495516053390266664596206461833371903637434456580123818038100409711821963575829296630530455974801196190920144466842842680743790985556873189020267949760478684344923464836127482125694752681111814475096593074891721143153678681525418757190012970212218819473414383793649865389598600403001947886460344128580407164231452316913610266029849322287035094478567762789309090407348209730756608318842560988259143131629789773174002241382637372212404050826020005273763900428863070255178719447747399076509341075303875133682591769555648001575939996548507193529520120998517296404529014436358644330915717864912738910413466106717443893067416619082000548696016886659647982782232626868460589883580807667069624731911381222641958878657127679874338491977745395847626095709831771775171381931377813125088873062702766388414613462393197364627299960494369066013251209202092296176518286990228735336969067216395249380475414902356821536230253104391958416475008844295224871952507235409437831565498554886145318649847474649003928287255633300643163330186961538591603608222338085657651923634086043721661462204150889716631679529494463306854486231114336085751649983321549828203507884243994158165966638069108669190226551041264205391692419786563849335688047368091311750086933644689948098144915331160059447503977752648530838329690481628371415715456985561233303251597487588174538706436978564281488730249831179630864289748528968462567779043762108157307665011357351343129844399084997424410691776550195839148346524846400141604727792333373164612175728222774518236847279103696249440835271951610987174613352670603720636147086862553191804344461023990478079565627907542336460516632107697071372130348790487402461376027206701847221201635050755699300725775168756240545541417777113717054250638803739771827376911973229468024449864662554049489536979936071901195162106757100631183978720186650198913346805054491538981313397652946394051787939806350562511946308140568546269859906361105418271373743680756041066631305507884156397907339179143445025064623094445270482871063253590171246837386255429106392521136289238944135899831715332612147354110990160586727066426689651386049854821675029113166528906120189154682349759460481499637024591646655600222285938313365303205981819231360711995122298096372773080988145903740188859566673548697262681268627256364760011774992708947695503257197966507967069992126380596786413920213912263934904621470728843835393194719361321285205157939614484734155552650849263549052563243150327573581110342098712765411531904066921185812535147443806586878784246676400013159573598919928985823612411838968821792690971813172527921874023520767860593397308378099674566601427033936570771647348064692369202883473152033426348004061062760195158205179955309270784522034265393846302379263857009890760895295063685321995571304623029824770522719268384855684603580014791814817390598530310049377300624701441409339616028336626794637691906059675945731817171043694246789792342028776222981876676692498085863990528534135355527576170998138696701910176030108658137795497378191061458245534903098998334141726302151184755158559380314646515247571161739872778907623966597551956469916280654303512376058533581612851615382706041143024595417894954921599033561662415792122147754830486833309441613366080888530602345551695336533739798256503472709709007146476401786789108448372940402512514654895060968481245929770099009458261471515547975405904092541259857964548878843987873203210302695891443438117414434807393255711116815085653122564727347406547602556458911573626434368607694062760869593578535685971196451575137652798924383065163316706839365546597202845630944040596677803283596807256311618536104812574550736429018815290849315797799166938934162330707272681285712422750708254371060589398321728837992839659726655121966554162690156016703602228855492901755366781133825474377096177989628765986457887535495969038281636270776340251053760633252310727917625065381589594654689805153220730968984849474665110788874527520333630878695046871488116650459983958934268126928147955748369938061396924608666043843637110281639680290994989996362043343749953218335688609286693858144338127742807595202806406366195593649775564824633509193957611701298826809086548466178517595925890184940315514839288875309902806027255785658942173056721474658528396713928367838559494431755391988175101036203365492796806032182609563225647218396856333394337463525490595060381792472928451843058959925399209825411628045849722681471905376744807024053665921998439633817255408485182752721334208924812216215817197472481600561165797188983618807373524159345262012119209569743361255055295407998530354603237208808527185469369367556901376464660958258759640363317113269015727292618531003197250341133441877280726035140767515013630629923546869748058690207345836527986269079385988622959006461651675313954703638724914802925127549437940223073085030050307831268523311156781763488549762799020216547279622441487146609621411402225916703326906709267603159168456869398177098642886228949819616275842894920749483803864367405201610986949527187864457681643917529642525012702340631560180226173127407588321063457176632555506482175755769003409603791493018495769861726178754541900175120203891297843223616026531597237114838775465622456762445932577340550061836027280596690034529883623920577661485503350847228496349394405746385022421961101909733830127401287392534517780301737978444350262668867146280747553833716769619441903507848839185150144616205822416127518500287081235557543422106505011449153670944379682983061262605121018281262078538217158216688046319738173202400476334330109806107891345382411841140072719607012939505407167396351153948533865571109415933945329958058883447266421569513374562585651067504155841337955209675195914438044868389440516102058251610106963118403102151721364628079676467355340368040735099695639746255592579964123262836513619934987907440261993949068029284519771432876876552642990523200293555798622794655588525077197665075213408990282765642632652229469934822618402219733304260379774307637818751730580715257755328442623351352127293152641406119993222626276311073200449708731267308350542273809009873771727974832045214038539961766743911067192386103926342271961061527661546621241852074542766007482904586835034057936921975095070806197931562664258352181478058714955794311605413624528182749409113724490981617621313449739199482170201411858232712482433092125689519702436069368432649631394216299945763529004565946966202769955322292212278292907585729035985859205344657205501072297499143335732848533025264205761114773264514004155269557567042672847265351023141334636161917656054715171513815461801672084550010137261054794862617603977955127669167911400835010024524306792078064339063191027253673621659810939646404875927402870303726814932664709031715355197344933298815821860560993485572179162257564224998428141651978354845900280523157283988111541498253122018370429553988716704172391442417580510064960906134782505344237348071636864417186857149362502615066944225316345102817048534903661290673683545017202989361972879691680238894868457367260786916497087677558040046585223318345304110560312451129701846411828435051680013627009754177035551518838998525401179367700767826360207475990047631885600154612078583578585275008019790797256203010120205797503064397902858875023943695540581194412605674848937302629949360337993310276156073927876801892436095185147679854434432249032542278447614338548396357133277229600242114471702037334563695384683542632753539243631136057901391225814478407459738351117174898764847123931413406559000304665574557290268483082570480750726760267733711733381085126550460140671633318659443303941339159994110282677553501412505625463808017388132804926683224043858315646509907285829520630551619125959580715272065240923486819000542384563213200055922256813160544107407465582273094472869918696972427307323338861460790860287583696670842592379670449911849750500792456205740415781277017961796800734391701459923972475045111651066893458369107281663419086997577478760586125672266778489196364374738924293322899867523503621808978185243265466747889439862830853104463221225387059526838789488267599897915057865477641252741667777837365148282571595640689299873207241772197272845532773339579345107526294980614657410312861795210576574348414376966429457396556477188855394421805890115348072705329663418585047279871866718907169950861910632647601071815773736123352564266266550410131316037943666180858424514085135151083926749605939327827715086280635678784093805056372225230555740560038840154064484513527638675997366308998361116449109223223287937737684999807789844429963066533047851226748232372287450788495218930581707500918379570248259125921905736026993687985413820609610591697276953466807802398563505693994915313844209196143660017732536327553481445035979650636038808656917297756312400975527621821357623105867407234406281817397599818831116838123493635524397032096660797185655257837053073074286890271373105160435337011411648261655308300842165927109576593475607731633470033314771391090904487490991462816014358732750594524708749543426684996111130982531440217808313484315868282493325031144981871656983528416408191330246783789586805645670127351483121061481925698841783639552639694977820570494865253389182783464538640897537973417640553367762298025521441653449662369285349473394201833726936270104511687106889731984845262808390846036731615335646866856214285950936728313488655843097754833369357826629315170927890883333447649092866898243246066361713718285209903139230676586658573395352785779882963485849515402378582863824626596168749467846736554163168908110844651061144809190464818787209861175661571302507802613971432607253736019850030743929271215714420740681475361118476979738631507945546627962280109783526635108276319974750986064816959592856734792629391432738622598015484217298906607729686525130887582737555051098172616082691883434474940367293805557258782358890621949380586190229779080773840991555496294359002199427550761987386783137975442730098804070242508753306241533900285796772831501579572889804103611369478933703985759135502615516794420398535721545446453958189561313224119567757376913844970703796748021874918536012551170374761033674961605233811333468032868105980495210161452154129970509094650036357454952026591376517802389252310203400374257881461490045375870008566811965911042944421018631966889888801767117829456993815071916330423436847694232105469571669528234875727354772117650130795945240892538769908269355865445623220358436207107894158614067830672275654350119645076023136205334139220012481607401549229998620149446220010892532546208283856405458280266161519885823265762441411282545603669559552319099065629791417094747606701161994817996076726794653572432549100865946955503640730631141357120117025299046242259682144170389446047944213800308553347770949427024741304141469707169608614600824653854014268416219076230150968003785516943641936370901521429593323351059976326611170757973277465567503519290961230260504145814021243410916246920492940676067379723033943317050221107371994934950677558930240659223221175184785779691866671227793973782034918832056251499890660057072873236225711712410451705510308775994894315009188723956778599981672774606545300709147678345025404262278104688536668431667885517114937725141925845379499391001416143934504050095540560436975222246928080157481112973459509964667143441819720626071411599543615669246549957757907700146071111184331180519822122690881650752512100071876180081056126576766311449652163802099357065769274161614575042584065288961313862759778549174972554744568784214756415849081098576743187605431288152203437470436558866839035922315180148590755421206522861287100922704400482604782163640997800186419841123761155599916797075766362165851011863554135319636837113114747071794313245864573453129860676515052403097886601269855247522704050866484223779295221762727959467258595558325712774574509391112900056511071021665425638758846706468066542947521479117517261430095809040135361805329339126971298797130730914038208046987490236418993659840142677327907086207424386650675008638160247752758102225023406726146595508412917146948773609321665437113670910455362675503631106089839208976577962369960005008925349197289438178990633507981061403217331735476295654903210768862271354869824845911510049960428429399772764681668243715387986987078663083581312053997666977220485860747570955848967237007671851870528465683898011338202733587330226067255851013301809181055830341786494269309705483639562018621129993282625688125234961336549031516775448314165536948813973788123394576294511929616360251304895057630043452436205006706293222655589092136803581036955755255566390759925013798773688741727281294437353579196703594886184307135180140582096715697109440923118578094990710544314098217514640295462623829776486354988885481526203714801003347080477728033841245256374262682263054171592202838953263032365980034782497323295514200647749502927134246045855783511631942478187897387764500032526084490492423514983997190335192468524578785572425545231213296933200785150391218388736421014151897233588765356582539631314974319295144441940084030891880378034927901752924672118144013724342108063433433161441496333821259940836574031511580477842656512445892450261787677381375682698588093736823630848851550415042560592200225959061803788300071338794748728412596897539161720002991631984197251644321059926239696722228204943354567583179897918962306213880727819629263096094776350150222820654589472052359140650874006773940792790618375067693687079190528375398812993421836093656745864053393632470053919076186884902884860390524874076932307027801860249974706230248081521091346547181746447227634975790161151360881650502927755851648706415972859238014356562089264664420518479402011507903323973841656612319746827469674174613845660399477499125603800023921553885581956106428159678714275816240889238073809888306331357117032270662742793793244955239917601773471926979147678553117307622267948895136429286227864876419525714410438235444182125636332234836536099064220400824154083603999495815117315484168560739114673383688005522385918224007712495788207714802572753840522293499774331754108132803963966824856384792071266251573727189969620709596965823256390693301903454642099303953569772927353445601174498770143255413033804981950487982277671662819999737105403273616624703701078065816753568053048321374475968391258704833013213747580155825857892280660328190323987384525462830476683435506933644926649203361122372042439094153974959672709495417291264833116681438772497094037667831457333533711600495479214833091570232795573827239695792220871199669869405133800471012462321100714619527370733710547594296556206547725892992829391172037659646985529281741611793364447561237383752296645920704091691818557533561652044338167179481925280367341644102868979458201473066776203867534416432644641432856848277880715001457567920093731155011431055651514361438295794213923808802706372929050618693570371956854878153060490721963321335441108046605932923837076858042492164320699457082030106994251049741163412604579001568333332234617590205196659465406901874773141624501253835421797002026105375748537413749129692762971707461112056379556178490705599804243106973121052943656955460751252996675147512065367352566344174655861101572973245890512441699481093032055817767717101238095801353460593360297249945552257627042589966739917584843216372508688989002095293964868377046996627540453667061582435051085366393921340921230352676332283001024929703385869734065506511291410259617691491515225323226344146998131829603886462065331041243363094557999498028843474795080263328438485937278871276843625703500628700298432886293956042655590932895180366782882554196109153586829102931707563771539876467403312021862343471697069913408525530394105305548916567533282549022473276906581680496145423480665405402771836757371044472422623276567283831913202928539661661378553279583817741918450051536117866034577980908479392623224703517905612943434102040222027565704635844066134551633386389487098966062807185546482198800895543048599904932281348885630911140954119661640042365349054874258639491057711731438882401604875211092162541561161112691168959387313566217651946964711730262702553427276025725809372476171785294309619711844278403921625638259218450281495168418000812735084959259459448402841149364177312536620428400770653458998068132815078858780109548375218897805751910907239571632231782763595639460803762077785254154702352822729383025363124542183205082268262121119777699937951102024234840208181130268194218067609170752883234468074770733780619525870584476406863657788070816028117383203337520521794299276375404463784276165684608243253034663275895811816963122569269491838749471983060922198339177168371557214703298120027687845952160915443519010038846869158838151575281845521385801068097378565899324046728837749458063829343637252744546887295805655437303976213606333609609530438753686517669759869595283778269825539975474854678274771732748545593585823600008425287067658523035759661957256880403574033396058162119892391908652154059148213821050263128559761989300315260050396849814733931753348378826914096396553009663037313897784605887269183975982761255437616534219890181846606042275142030406555968326790453096136973102086757577851265402421230277976193260250654008093212904193459939298553772910447841370663702862951666291293559853582920146394445158640084253023115315168949160319153805948434477811466861689786791736822726722242302347414990470083265322130502141198595192736638271600740583063147332348233140207175216417750654441792798872518225732327577276746159652461740926132937570513509302715789579437813528289928965885677488051178544978245526575941399860072600547199561234397086742525521673280330181346981603015087015083032638445227578196981094974879706655321323498288971626732026382386431434410202799558247149502593565918900633426155799539000436156121059816426363217894630526486685996352790250372039453515854788436148194318854894039189849701755471628166750371173074117573725109508764409001438018503442546962551847637703890755523746260638188191126404776653816955243614014455367417167986366632786548296672571004436537059968306594770629147663598625530634317040397539762039982500714401306212705677846147655767600237820976031857194242983793710015417335286011330738312603340760971778590916442717982367858400226895972427757119030948628307677740091849053588830776660925759161512932024045386630733387491795822146805136368220039242878157629749514255082858373845786699622458177927756895232652059274802341455068665663243053365121045507887451609100333504675595027718935256526100399072260048899942489204181604832173576204505490423099131461292178742505775614615905139912457919877202332585164093801685881112009336399311051691106212050884190213836691765600903214996551046076951447065239845098126283395325498775861350766436730904467115467055913649440264160535936672920185835991842460191921937119965871426364686180421443171216043543514310338263462229398734466922059089174941081167906624195994400555706182792745356815668067915294653481785686801493341201124959722531369355062575888707975739942469926621202516868310078426218521965286661291982359487366064902798475088876022816924899552729129970237053374702378084712270687541239626934458669635355519141272395908010250007587696642983382292620368203060806202271588233100087625598111020899880701520888287588145875443294110312478350561817646321504224409238271742883322116517704298980946695093413237614840686449125319695758572490008712694143311597832791614188501828300457557565049138105969571439562442577902296857420769120393653775969945034784915232884584533536234485692436150646950345424794898190134516336372042944240008616318069329154193294371647637136101433825783245748965047907299326146942849265010805053469470370333290459222635691572694947470214627831484496255960848818927811057955053581337765095412418027143078298598820468163246541766892690814017408791841450427622924969983779627042589599706071538084963898838746622405358334884925371943003640542479119425073276407556353720724930721622936081983001583544178891549093497452928678050767424470362749546469504517414397885241159530387170242624442352644314743410413299067676722090290718467853101873356458281339362090295928142713209404979236078383364652557493692066234516206116415106375415030186174205254335082230481155529206485984537170906938604154349478829230102365765438303125957586687330184359722576998275570811792827932159276971418157379329840827950220942487832333682555825146591739080297331512012695087042863756082011382577672929175973716504208124001472721362063059283044579199923431953739096459305648400939996759911715725289269047558570833670772820507544914563044774825079192570781487791401172812585402208033780092972226162170743786390720199987757523576193840534109002977268097943107798568760335501261937524844485731486207914289899995625814179273062823198414656201904721609808153184419570580299782452638846468325175041747191937264068633113202409989934126975073165417234985121340459861071189241697186113421591365266134467027475173315128362706856815488916548177230053720397535484048830322129961738932116655577053676255574714395605138414012993360485750116607081297552712141388615759964913043568787418234872193430246126651032906918434757014482433905906281842097160908914709617106297176256845310930910894840975038635715386534845415895801015471640515177551982845249065191181575323000159087588674432977825263076267712462497251808995503247433540215359456719818560904344676833916021259586917656098311732446989797203482708570986798784407465078241313677424987754485222366097344787186146712040698684766506251451772922023768010645437083874890184870125324193483726912031413117746261218913713686555094369567069119475521712740772027723518874787383549626449764268297808311762520459746719166760475050944483324263699324578288047301773005486153301810698415030912930513898457067455711794334092990394264293450653609731412914097970465495863058442707243017896014306718242570394130547801267407143108100506274187877934977827236988934390412379234587271969534604256611963475162019304495879334773945593718210334914125130348404517444931663270615134376723998920545949976197498172881354584733011722406235764681117091784692043920766193694755538081002072088257060248867579842235480631342982640332120159908475721634750379079932116429222757833464864522564687761602621191889127616757138259015398294314111316434273616731015982561454645584733714463912403052008748866546379761708192833955033602883403458892377839970651472433693580964209813178334356232339736798622702221438577483781189499741647463543764885938414901129247248819122843982465398433229618640888422117222569094533780023042706496750802884293228447500937559384355576673615603931684521006309832408823716054168448487401680165628160991543574879858642475136314123777272158558376683528651944484682736845732778815902760032416505041879969513631773271416024229506569257388662197962355950174162764069284500441314333307148319978085238110644679174683273965718902746234043459361508943314963830999256831370734540867808862055123013998119601528040024410294174358656329863009800546314046212492229893156969421841642578466071735512885145606335434841050268482524739698258016123547521275877670771995720264463989439633168446207794558624270408100662909715718359382035305363440818558618628159521695458310093465467382405023792660445977178991629364980195269411063568975065653203762892265127304831051615847936284928220435932604403826705374811026190325978165702251359859086302537342443720058158231388538121291115043309301301177686608832482555618756951628350198884314868708618218445537436626022200889669230836091309933195275098767792439809734833042289467144829583082968598897662674925472435752829147738160516379491299073381382284932303301563945025572305461751401277871388284046833211357227760445250838114971721173601190173367443855195710644325633685322754748289113838548159131494597484335427237809602728667562937727188846656249635207640913496000128401547591350927161097833784235421276463032707600792037409824989413108089005273417609129437114257096974669785944688852615765502460607138798029983261725602402073842498747962175912868885051937674512019346162649015105784063287465633071193867087776207698929592757971633454445045311960127430233490253165004112951253389712806087422405305343456071061777398741165132514158452749568822553877959850623782641535326402527228559672002882521776592333188564252832752570259500607659349447872897546500108921176366665199447618715341431099414714103358299095509722732118584935196254431302220901664797285926737659704470308323758655983937976499759983496597098666650897301871696166306547214919549332778966993635786158561838073128348331797558591259223761700450924214122658571927922854337254519919309433915360623240794052221149331550243467911713982089166317492688239951571128995676797224831506537712618068821114889839335279397832506940618153223203314350167351148710874592469670591302517760951526075279738502168200328900255139187962009384655007941836706122437420596911715726811748583301986265209934835405105246959802382043868168341287166506640678358779951164672011608422961132120443195447806610123495566279994301128129619010064215191749941967402723564245646543114770174531328392130316649239371716148773581975209309585507816479598598124746711590427848391652204470064846906465766908004547717525501095573820882581850805738126914275309415794712640617741627667937952680188457488953634847687955761609799587317596564029645840565948914058814617657507245237943004805554380225337067694330931134029358752201055626884725484655217309678338540150404234630347827721356947664616927632464209007163312914083226816545586104239976762247789528209038410526049346948254193716350363561150081223032600564780075185759642921914180769114542274073559456034226532661970918254729181914536935323230320446817723124475008720990004021564394373205808379400207406770088397901120795199608899581088196299493271934913269694903181256432047322486520865067316908866855225335732941782789325246832683802428763444537936311560589131323436624945521351405754484666812985763017621149201459635792108717574873962649996286089837102696185506502416782357318767288149473549007608673590481220202544203638443513901818745036831110399590853716103218673944760861636543082956801876040945029788243624315833753837369638752132495734666914277907803050986081264604125213852154581064878985186006009923329393848309391419774192775491822313738155445715737130183766724717322428881648907066885718931936713175965484202602098485146537547605350109380591371343760066671953666683177311023203390371638951981917051374673226170270225817835031224663214617194232208866518010231165395974032074061996021903905518492403828620311434076657288214646515467332084738319427357219830800550386387903607003896420111258150081027615877675859054351716618151770849447251191150039177296546779472817909649203491142304771915175919110450351544130718941694564969545732636434286299552773810791222886427778105933131627729801720029594667224290941024009458633088786180009106701554875991539141360190304029688212895632194697260098094606638263836453172918190399402075398498691307580689282856675344894988474176805775974936855913250713109899961553102039518158494524514314493354938162506025000874126145576381768109392870263124631281321956169490290170419049170234102564847931670994033259222401833075002062263207742106277572017148964429865885232480896409457018237745749513312601399952212482218287858897086077471203803280909637658660304009121372150267752384713528426672364715535697152471498082304088616056520225660646977226875366701530714852392683705809859507131125354865619837356276633170751663317016437412107706208006020725148885916700670863994788354859101644566565311553948002726827935766538922754698395228047739134171370113813656430221787533580779569930593762091648925241345110246607381922410949418056226453822102170337320080012310924532093829755253935469933410394178481681319949935664181166473339053049254903413768950222099211071983310863312943981382471398689809321630209389562025741878026150621229400591542589255709174239864793332169141757243988644209350405265288576756635967570085232103160034366628272869395057403870025149576451207941833033824402453657783920828594978467802587602995881480443235837090757607637911732318477938574380632846364800337198960587518582211874250571219437112731052325286995776489769534253927095460463552018198992933400955997524164887341306684907046274975644383333611630984200835196186908780410806197108610112745980609294589956923974312393654312918759875526919076789726412184654819169268986848851806495319771265533474700587945095484617332024111268456353407841672016573446968926857022710221908369479572178292704507517525170451803889488088376681538585404204847743142635392574621419417530967144825701818288683507684118091867828651461114464050647225886731002250934834428688840382337915598951469923438760217373303867793738994478578311644689051440461043134930755701192785953700742533397944100337911168047876972115169912187705350353738575221565399180117653930641221703550522503578380429396609273067675451837228233862176910410475032354909682720532237239792083328515650209943073566431435791087214499560957263861998958219114331846343250769402017527954491934628833650759193103810467024884407166641346721894986640494180757724603203441358958602289633203962855459799106137358433944139610980435997345255515900935699703538234282080709173561253427501660295629255281423580741253029290557423555170424572002448702719773296342746046576854440556481907695973006838892840829170148640248356059462178544476629976515200693581212078556547571715667355436212212024095934158471853564615132890563544126018950378328245547618377880632110005824608521765097816870966570758187406039630432298733913033675681840828095213810074507755781887899344430358982414089008138775558302028292053366132270795303809816390235336518003046969368382793207020378707952546549888852263184970008491037618369373200693783765028448240133975392647733322547972894487210279565045091341223935779852211951616661327828847165561611915834456133815594496015654825292461190786295331561419905632999421091083264520868769040956255183451922850591726527656952728100335969193280772725458507277597149405552622829448335850176732650464709852140204904944306369017763569954967335202582985118068142837928343448326123294073732916174822938763367034826863093394655273669514244347905305152584008098220739220634608838704477126421536100754242724263817589358977899936528078075063165763605084274925189470874339096239858547440507597770795266317016702849297601017331443383046364923271685978535533673688987178158074472698862212712950204855929482288851923615826674402087386623247661907107532627866507137391452988642758359791216514503674688094819535822104828237885580428765475242687684041779257100181456581997503282060361448087593994369049941597031172820375692393639737605588509329788190253921040509092480039186276411039133598031187312507580180981238892901304184675055625583167505496957586172846523894541496132871245358560034273781013916322265240628474546927587296596629874147951201197708066079393365032260217309077680543004501709942456118834127046542088261536106338283536266126619019580830172303588599722696865223331914487887271298029440567365141992779395768316517927364593960729272940788990505887826372943601417824573874793338564230853549135224834023507534772183444454229585263349430192876334729728339123580238041909613303948730914799466605898680557543930833519843624332155204880711118971592394178993977169289601157272545909190012540252396862479310018190205289169008138970691415614474909071062439693878592989219640249411976230358762895319511376764966711787469752071896700980585720106625836931290014545806768164076910841289808975696259126198725323747409650611973056170221751017728165220808150802136030845768002677931139449624993918512757911244219429076883365322284634009917757378346500747675583590093052094870389079775502866015651220129169240837765605495343631553706818830173833896696633611191794111552425035221155793863398728430632890670395741465078965454965198564069071309866558277367132122497853788737191585544473693757078863215372223730015459498701823857202706494068760118698943800203954559839448384861146482485285108259312327750404572174824365749684751977510773528602702638707390474018799505788074805775856572325770043987400661659523835148430719978753856052960984527071650200766037989148088243130851840353090285520820875091897225665803651466074654389532173830169595481498617095422523206625891343007347830405583925419460749586501402578781709350711826807702607235321257685882417180385677089924888963073521513880280897484980244733684108927522052043954022960683924094156277226734423875334135227248430217002798616996557421642172929121817205770197477585375857875424459477112415358028087827521697716168979659605906169819268683179009972398501560436061256773560663939806539938218143543270426563551757927109347909264400569968559341964773242654711105949207108743233463904217141182904854976440616379371060519816194666838181238277133153344926288707014243695622569563935441806957342171374758444413153681198076205970939057965927557533066797305906296893101465865471805360262988826546648123224877534370802375344248075071731214559147291302399990451900465410598299017914127096758596011791221169366004123780881726359065376674971085767678266966027104537692260374464281688752481571040401867569450776691400030698766648915354602232724714657389859197150391244618235351207873173158585070804187816505050933665246175530144247838869296495009863353586729443914157476650540297993979880217360013521238164826726928327886105604442828563948093272513257682491073322040756906434443512096039781474286500297369297733681206592971192599902814505871869002547424932880427470028303793581962451594040430771289421897776127752669941397335513608469672623515699988536484906736824070644988333079274269512692671111121580990002922958335016045549096061149153151029185621091980145716112423720480530465577358859011560055866894563672178872102361672107087844640034851169178699392204660301018287420433620553817467556127109437771250781585678631426274631928923108583323263739376958936158664484231468652876756401826217246182047324920398631338807709278020371450567304794905309464194471506728160518722474268040102452639226732513754205694401092382160430467028486619647399045617024023652583462060758010223851299912350663488234169509980523097596066239718782777302537631194809305066510368268333489543315246831907734227333101571298716452616453849752940914444955028406614450720341369528399208102041393254916991819807572117187133255124398685706258561608906774320680338370735322042131350110735550572538038327345278190547854504968245431140759780950461192652174301053467192885041330319946330080664320326151753948455954551786235726117882178447638899612222131749491237598299298882061635579883971042485704379217703577897171301168709055434699056167311023035904428397241299742982122048945978173237915119964843036622029374333016645058969866962969064178271888546986242852272150781438897370159708741132149224882032799193001614281462049024582818813076202917209903032250383652808136104778941534459828324550525282855711463641984022972912261345915004126733811563092627967805822501699099108957021120858900878573708941438649780982127548483216851147314591245585211483553367681268613286148053998168827671957727646295088856177897812041539310068416237868211994959001795352397118017162289722895135789110853809151081743934454031456918866673677116442358546924860545784319514399002671681705364110425515046780590932130840050540686454383766273006047062827586227462837076409369520266696641224392797761911124473539448087112111687864282678391936260393666010049721973574314105864250302825003404856084312504862308663163772211127132338817032722732832559100342696597861481036738568904623640901415473897282264051123284424492583231208918969804285392126765725154800387659403992668600351819653450331331295074677356635522898933709186654114839851334390792568001569774951297806060297457562519456838641809165333914443466716453206902400292558471445654097463095676560899609343350229150340083862638528495837229936398878729318010806181328303635248801961509434485642466330919504774201620278552501477651698109072377325278556878951762529664967423582025283505291048153683760788040622655929857207985468333718258864324778700835545985482268242925134598390414026721594187554531759559441094912719185841126385473907238301165073202475618320172071643715589072689710305071577384946933047967975401130168734633145705197879717131818285977325628994470922570881501601730739207039323317920450077987138172760573681672108854144251273631487988662951812771152265761188110501945520843074222736316297034105532606387327484932314727511754591433516982796325959597765276534836752563359304316966713778175268148663301754443538951716547724989327155574297372600592919322578418077280462927724873819906169021250463789195410736839998765002603633735656104875439805356900427077186809741016911590432512170194584636852942285336387372289644182628016198135573280950680906347422578559104224483946389608580913843583084920121668297777133657852868497408537847745262031838433953106719111045084950558501693895104748946894549059780201377382328711053670871585413749285870891467294950918091615567794831158705152504303957079132539824472096047093963865558530022824892872226688779288747895952125448901645447965890265949684725204694863097573398457775576803363810513428917233672239933058637014353637252410530273532787469251868549234887072157835459898114981540990413276150983269278468842154918705711282597598365561120760662739044260402512060562189235209744345515727948433676412558379566747154174315928799286281825618783219248701712682915927662739379066270541268549357044837045913680736926661023472493409720773928003814069729054203928366728660791325447762098434960271612797759891659415892911516695017010219154425805959816643957463765114977510991694470880895012839616332405885259236810907456502996038885258003259749185009950106891419885810035434783590272852414400811603452368403892563314339205440447276610227276997708069645594432833721226409682611371456208272198981837294744054735833237357678776899391884686261600320793456299148433820486058479962436744211002480015316602920285743268719113985802596571465620791141101122127659704998649713630735993256022337939796145532254120381448877545196245180372477562177353607566014923935559058983118724957117171176384702536389317278380564783404675514725555703116602687628490082061925451676413691404671717019870198488414279800296526047745476102361063624881266810675592389767316803795627391514635606604716502786384321791926044611705628219993132045984393172321405245569176244980812289163964791983663871853123701758137317816755704809001782716354295418746999043996984438220698600724845026099572366920240482514183509132878069951006211734588928170068094189592198117297639757730109345775812150154210766440064089078926298536281335475779517902997076622366858361974417300561356006619243292362360101197529306769362935586723546727716097078481807049718368496341184541831535831883408750872738681684850215535892363028293273392845851862363569592893164578237881232673814652202271405187536193529441465050210125553872339887377121173388495320629654378123230442984902258936225982220101671310541859235205019160009325012565092664868238857025311082290372279446118427774773273346991168594783882728659245375861783652841606658748935397971246333917652632244760954642141646948648445498259853204793738470024724096264616770863028725428567011717902770924908401911062080654839316675083157548731863214920430150103157682445742080309058692155959824584852010523741651352102175875171987708382750748822990288654997137421839551192426996276102680205779481064614751164697547780951883766126660019276760774342884483052148570977696030824016848432990823618025171144606868409148345174857907614488987521826787474552806163261375067332992144964750400264534376143131994863161950585265452075538649159858415528771109626446157607461147337663427348499357278150112210430715976221465134823288553734884425065922756300440295241818202491785416037004835234776641973419583547096888087415696372159905121576691870867430179143433514876468470844687041993457369251361895882346950425446630643050271323318091328148346856961454498058744506129753025231047719987106084775944569245858260801208227086657363887295669653739853890752032575731065923333119787858114200278368377350084632437618978142466424571689667686762178671819650473536493117363867318562573691228337858355426858829608555605013545878254828012923386624030137207472596042818112060983019632720239211664858271714529356212962780163900672821723451066933023143186265744125507822167198420169162079116418468319521304740795717675757296732675670299905677628230525823489806608281544501071798705548883546625138896390130428749743923416174546969999152749513015416880681050787054503652098184779653671580027200322469892645908040054445695262471911377648110477261726951638648277255087876752111631527086523785543312640166249939792923035353279185601620918881019199671817555678917596413764018388231380445931464430300306938887540101359297616265943408382209731286413826972651199782804302973515848736119651209098404026502405194630917688822293398030122169955267067211601365156132372874931465316508687159375071400195464481122338248730376728770162485771135288054391065135213190423026362523004179507628610202355979059150095436805675617286050252795761918141273614876607043974512613503055037075633860525950381160556044462697898629524058659765221861181669492146169344460646153990602545557425992582583702792882700675547148864665843196362491060208002131660312141842532324504195707810550181899290898080256213009433924427835912953473646991635050496793328733149848718698923747748665201387192399611210988829355952653739697892774580624386494649732904453664968934915276760287712255714486082580919863763106991687938568432814409005981397429852621435857310623635298108068459863119778304307533293744237896688059808568485267724719529875192647526051819421003540815276696387119001051845664930460783962689397797795583261406072546281607088497800439789125965624171172888381224194164937983278607434139236818445699975035616556961280903807828890560499664432854105171782159190847661949253057719152027120029048966637247118470189931604581963856123361209005804751130064004813886466925028923213155734086232841092789286357475267025142617594981634650868353872668683250498240224996090403609480795767524602702357306038308532566060195324186582148788746824423287287463280521526098735984044742791328647126567511182198940216862397885348366689002971780325282863848547175495128339894116863219465864918266150308491169806740144778056522097557882555165945457840588915529438184486279257869078802781498570355229330386877564302374211553483149652134336897624758405380224815729030785735534617125842582259267864521762672525576300717329995851885499528644094498410416586085054295793263676139087935690950036995642040199619098436809368344070480227813944169076132070828724031473415491834475345062951410171061275720252911795395011338553750852344493948110530078476593412854562706910741407401729193361391921100104294396151315373513648751338885784230935052289886647829053677118423004008132841556659386947011897196465634464096431217768063409703278051050099714253088863128967868995255821648444284667079375422421496429302458370673695806688246996258537885513204787629833546814597518765184471704811755809657058222872922756612124148403735349189076331192506147764585786883570080067819809642114658994425017398095586041822544345582779079154246805526154531393507580833534659783130303703481463364242009637963053110404107374541284095070138241897055689768980003790582666732893046230858743511774175187876425191058984306079351827701360127442505131744490117221220595663854746873619273043865083346157080677240100113548579982676094933763713748087830758039326688523444433490267963760638711097693595970770270053312272889636787849170501925079609125664314074039898173910177685465077736762246895345589534290217131912951404189722385240933969469902078385488931573920116781631473065314291686650481570456781985458443542956796633139356937798573760166171727409971562983941267255628096292233511667114770048084080055130036201489694511977081751973680618801061327383477974432400554287093260297168635088052796877210372351054847654635521299749907756115607354596538163913628921922722851939349786486054061931561624825271247552110752686512003333925670078794136875675241886178458697794125832361057830857902481451666536046583378304346298967328947182164215347590460155506443354203851002791448922999701557338648750871867265151125782291179833886368555829555899857856834422082339772871181749094455095134721226116582126473251371654942812932981857536259710805456998316247805924698936330694051821921858713862580967084499775128322363284605820348130435986985405137721233074059957839466574068551022435345809646544255359354418553389038306068635333232125980730378837677041424573043120322249403555548866549666344355149345387466180295363470526068704486920261107462818782989797134530720413908954800389324496879598926201158311145624516183624145245026292226651169444305439787290791483834425038467523776700762934541702683879160712283827978334883389279637216613329022185004329250193256896380229411710779819432361952535841095971247965514579419377312269928509600751890603429098368134906118090130054808996465254078184904402405552556622589615472522718844595495263217197047012362870055184203879875392206997938042555553905635631319515855457854491235275488291195634444067639224944002561963844072247921231150624074705869594732063042303630627359450186329097857899534095739805160219686515014280560478930611592420106015773330045943954757193205985355778076288104328620781535361621866442596978897731150683477875928284064629686638071260972179873073204197162540060361035576475268839946637824933107090835875906253253424095661606894953997463055728532933957188488112177287699190160475131571442465952507751246807058841638204432297014969797207556496237827328747588613376328848357971508056231403154715834579457640066842532802249364195330238425104727778697767842365910577146235403845276865067051746718489099003269012152302418899078101616042084796374196342277678969292542343637087129051548355993044245084619472637488756347815495699570265534084549767576800159614510678842650613638030806135860132474351010802158311762970283994988547920804419321279884857742158874174865160920278337507456963338111147616852810228057011530348226362629558023062015497089075602011590963650983558380478841056772385974870885640330006346256945939245615467601000817017792121783923674955350105507291743955038263116479032516001476828562824749808773932760022248127621606249832664180940335308756434754884498329934644004038501609396074837205742789340423627710552036588463451641068346616448089231640514117751326862672563609127731099824902501481462434611946255985169994905097469904425020244210254125034166849235850125447087497222115574621771968044911522402871420972146055201293020443098828959648585790774971989486984746411316453216640003907221472867633710270443390994242062022639358518121830055110034552276382556669265184932419819557174259734891264476484287007287523580024709977000725747314486117287906610906159663489488552396752294818567876485560205844024618021582983795936717475718024709145787950194423472376322758069136187009342286691118769366439186689067130957542910002704835031100524633066343566965844163580122862204960733394920479106765448212532007500217341232303982957649700961242513843886412318127715396159944585891796942017307509576486207859933335228072561499478822119786267742685032452459284733939723992391045989966272789372027040253600565686649509253692016635692210321153629992293476088904390102805423583099289086555248080170777523069968000290951625355275172601230633455409942508614598772245940678163675063846270067319855888444051391067579832172041721638423193636754914422463473643047458770842209000231260367513518128543297533247510218102141731643514319537990047793535625290999992094960288095587679219621496677657818513941820025358135400621169930035242773501759449827622174315326048227914871088781003757752123703391633729327403814638819850411525992371189940803902631740549993549446534024848639341033724743540232666269510961787319113851712271564156118084234275316026510609056706848259477195365316809841822477072847320921693213247893780996218683366877120456865906143447926775937276978367008046438058505741818476048069951262769091763040001914366940510173869564773039087382073321323233072892909667068160243075640857193270819841909287098302751263817087242453699273871963233080392663213919937130342861048851549106892524082457524330224979359335420370782815150214505880244582071628024051432998179311422284810810897542539372909504715613559313526549098607461951123971356669805873770018627321156490944355592995160714767779477729940883517096771940876659369912626056490471650705979541628137500989603998694031634235064504666418563687216572922499646423205474739899328408524096724227766165334945010996017948275888162276720631831205681538755877957776244682023939672492761438294607891596472385676345702375713870930567942205554428969554685418615174810216223300027172454812070402790032021602297464222737521122209732227619181596333478889531638954858303561746761892699376469597640138871941703420788026200638082809220703343259643771945622528415658328136914151830395061658728752355967064724777675462539230682018107436493635136623619390367662766308845891901452650514315275005092159825403597597560761915202324943394473361858156254958395069781649006062710191016806331991458482089800224647719894328574250226629650418516501256290601135514241747787651339303450940783408575725446990894640042073105505775734054558770119261757181089825899726798567040187165749434851474699854237205426962522471047591738766816889006191104386301535389665715637773323068774017790259838721484914856026379394631030965032884957019686415942000791645428035556536503502276627832079129104134124997491988390007788046458367205014586202333668514051522519965873946342967278603323205575574138318935266400458063990053512868229984466180358498861999272236027689199757934808198740043970397224649530617321234374473509205999440343911802474359751614936600843179115901628100225675030877397731731305526191054675972807830243904098506818609219125855221789500692591016238548410478602913141949954257209828124177633829300822102434900230277418345826598764029748632061736078759193374200520013706303279438925599020084462161476841092310689290376778585499602680892316497060733547148017127511839355821305805328396656868171109391891003859758265889559984126773959005668123860848636462731267415775587453718504393014433019132614123724005924751858353728308047961376577565197642205543226638398036470195054450647689070620170252742219712954152309987777742587660253291048013748938181954691930983684074035158717184770472817739868526690318833101374839054458863391153761369513537711092189454741452106184899733990902765403357724652114679993038167149851757878784126593639650417057805635810118422097107298098438010184206085468435986237030417020976551155166708466496984202341536204399711476721532656505646772837860623362837965000747682296101804132199900048600293822507945018382067875157201823407372162684686768616082329912111689933917302743454413953317997736882261571766600306543958813498858599021206155767262439114219466659791530672334623994813973818744556164159514142059142029228622586219846095413041844276985097464362368428370690907302590468087011024963942711227705104745330640886888549297508962379039374360869669299630445551893549239916383440875896994878589978407847765403771418666035416412343499946717765037198510479409397125289804387673527741743696375348062459799248609346172637968363666142397979869035976321688030136757290990141755872710158489564429033105823068749024630443842791674454372953827823155922345132564637348895819459082015671526298001690158980476897669019352213573013916385644074335859745027774906395589826824884745531460983458128673748175689547174146349379079087549327557589301073936680568808232662758263973732669296523598714220830569205746758134249608175857259558634730499397868843093791922049519445385809637415124303072581540465712999049959416617966429972293662098520895541557558508995010084114269922276986834519729487778365407756833979275569086727408163360724106088150999553149507803675674720469191195643684737408950473646426369741182314205469061147842054506382163065834373490630835805789076633935374006253227588706356879785493593354329217786585414209881010741379364123093055560823078615733890828313984554240874137367158050144732763784508728742311894543346741416487212438330778145826745698030345195868191031638854902646284374912464941375417201577749964300947604057728020820989005585363135311238513625712123823799895299122616179868619297374563717864333545358549288615912973890191890997002407546986188670209099982045636930018308869864368417577508682876147176047113098608515061027837826326009433288345720862272702652331759168694957419746485846370320974290276135918028137443544712989310893615258780401794224541961371742047641203019138262489531534744727837553543312823765913443654748111766838758683799800135902475741071597542327133778948427241191654203450847523880669297568678796789738481103074554568001353657873181330732366314704007839960298383049262126105906351662957004236339799608426442418290438227034197843372926904095801385288207591337273636508668643340259479131863259809564630444638567665948273916745182415972988792098127163097557697403600728901458982139556447835739016978706820945661100783087761394271202734077120658299654741734001060586311994705409198942274706898999912221214203859506038011996416869611645640234076441076169193897134599897079974668584133293075581605506595742424757694501462608221902325465521481948790981180759703691381910054653387723954715039311162655601125082488636573919592931960766528605750802120481451883171494787701121411470506942508904106056648798572288756348247424339788162118476904540784188053003967170230934281017244262357040035905409995301852965298869635647082269524947821172051358901249702122287876409912968800445857347764445489671468430821960169798227276079996791996546130695338253046750471165257980559220477038619397259558785375108963242164772313776504661234566823494326607380998968343879639456800950939700937251405463442897185763353182898011196819104720964389867443097019914048977784015187242361803544329239271435886004955683333509514311900538518322731991478888712711191798412102051181413005849813113037228273763037865733578065406685300007245204872405508469384665780189051481981830206057477100029697421661855926997043184887067211697758106099926846930753260718774223702875595666161842506091557360312706438670636082630517534068878114406538460214051795105380214762998402554610773452189383324231167004119087335740075695290037336421455284850770040096821701643580432220302664346753939518234858398432396018191191141206916607748052660703630319433377521119187099014791459461670517866720978409735706047016721715302288928945672211929593095056789546297895110205104963889288196183767376063475373663230293694722447689647911045975819771459692432993432371637488364830256863484725188904375022002962898642143550696417598806937952159601853487743460915611299881311725578039359190028358131446258003201454869850618112460524682182613763586001329526745569151998973295397878132670469211750088159883293050332293384613492617789558954872512396445252593280671038463767653524300701645553622213474518130785718732280976836533623753143059464484288665241746354324288119067375335487919788653972828334572591649013112143188172879487494630083415785599194030721024743261962610133464886009117224481066745853202076759294027094613468336284755904999986217724098706543733569750546779764649383422017169945438881478867112101791314895931308376258963103859744889413628920989635844672834395364115093762801927700157599507949153093602201495060175398588097858089238022760775296209171460657646528451014566339202677502697170368735937764407626240782864419641662817951979009310639362825093920081259799620374959710307754799552934766720405325637467994511821896944064432116326667995767196733672812489101289568364026182934195500133585313104806240699812683133316276759197530700680028700797483344348920897583220457414249742196735012367286681837503852374926606857787324847726535146560941454814011465751523724281051074079943335547819252403864382343948349343078041636161623901351274515770153592873833448634875505781418934104531205867251889475933862714244998364682301037996243994290939845253722399417151576559017869320149878106573260059208780343237329568501642701252383679053820782320047526536979889117450614277743131677432948340766836074599847567108523065044359749018158699665255963688133650342418132539267633140800354962667262914813814838312151749321436482900586429285327882608865251461991817294271506795957022698806492880385413938256837618974106720995293099762060392842158589317267339369641435300077891189669380781149920277306175577450115942884349711205549641129834384999180475842482294047977671066410840664872801977991606183744673508216281916067356053707073424011841153869997826178145367253732940283995136310805772758468139087815788985982554389380565086737527997990346055828952338873475986462862324116819001270990591280317103924463418037678549337766056786268017644654292263869969601681317113328963492399271906638773157910058154960418396042062880676834528460208273313428465290103000693879477795845634882195209482029399111282963900135995727069079859413793489695482271021509995455488683825234949489821321034037434150359466883399440667225950961040837386911042490271217248199215931629701892889601265475590725365366246367232864548767420140912773637341734625202408132130274549744209484579610325769568710921724227156848617420765556522306882205291358792495385318724260198047085715843706591751983017648854215592734362436449394851678766839489557969721086683424397813579751689845658075570009062229758477523997907491518137408838550129870079474047747388238300347486958259155917963821610440249982047849617895060022711822175035098247287606396431115256108761912151957167063205631948592615393048902411412812406930485389053901775025290111343253212564706794530901435035759042666458667078084153738760473266289225693855131815646380473499770740874151226681749733554084423507037838079437403099467520126868942534580809948777503485088854570809087819951451049100199546427029072748724355858514696187887252688902518104681578504224722189876530641279623018911951998403977710655658779668163366097161996292131097605265950246467994606116294703769801599196475983789523190176939433692918199905611561273579067028686288863546668346797894314831652314214712258453015912818020233563979357411116970929658987535496389250848076640209340194253625587568575572425064258068538446106780549005427763863352868513793023950856568076191496115274646086737993877571288842625232941226796784868018278322423173529257226681947758344641435815167676195064114383182817168745846173739547494445149833735826208597368349069940662702739285390471873358052678808786156861650066284540579921038555046811599933008012982750929028388393773100434123986799922720311042888606074413575745608458955126867940593480403652426457368644927088396814193203303305719899250918264339815850026025262294927396350808699869375082301686860083880649190980357548015320330969543403243063653348667418618869432507839511527474974047638551779591354895626916890089322718340431527297527748080332685456707350939122692611613085139193765971081127466966420092973262033157448937263165926696848481090672821241042668178206055002694265490096350507984810127338545713208126636834949398969471236950239342452580820860884553143295660826313949645593696203154533432744101748972568610930403792420535782550521159118699401551587069434736250080398719159297128399362171725705048826373897287147114280446940196948286834263115714067336520492381442169943902483733045213422112382788439242234596967215887410809468544646433848037742511666361642247639668945972033926291103906040713598621065462800313237997414591327787393167358738614891097390293079648166397565069152484849503968252809734390717247571338459347657714941376676383257288688093269324229623935662428263286801845253596665651387316777815359337822558235151866168444219768559077430117277468003824690895666198745822913524219009929026683855592467450140339272844901526139890786250259194471462909439996576840699288090336452060524899760921225990646349447794972671844014228652558944371570987848282883631554169224369235544713623292248911406952848059589048578601510309609318114255319726601318131099860918338515549642642347515703078337788901928755054255884383680531666648274374302937520089944602537495339886635071067413355470330609107912980168020031746786780634703075213977815107348953731062621960454569267700454630805762359017335222262753880318824730016882521005276959671087411810003351698427932367904294248378152900333944370370291388888173677315534050008958986639721571871910541433381386756247384919534308956801364731942651366565250405628746337967216184250931126379548059424676693648982674804682186586276651612173508581781922092420975049190941587323226572361446860376998263619267079687270324951671544183125797538896925392552632728199363094070395986105485472981491083576285556868536431723362212268611839078733051786954827914417127672918119882581271855864913973077045712733215280034704698201107426440379369644835700718430943672597093487004106550661134966413334467937590034567739208543718089129774184252664305762646874858653129632810224918859416372630165359475798380205272006149610906277877064454287584481256249396979304020163728328156107172352085749590297547821340917742846551127628721135788342343489078499938143099148520565168760831324586630403065116186579661050857758366807088665926403880879237311602777335839252368048508877536660464233157486758399222221088242687444821469166589469100287954272697322023647381536016851438588741108861348875924948609714743273884052540022854250130233410223693770898798828611537110927795019489225800811625540038163729585203183603109276629911010270087989223620678260306935677608365023383792341700602896567278693942776708918205319190397173390780849113848415326291104373618412934516847871435394631051647864781762130879033451469137245017324596739856863569526668497538994863336347064912686871316235477988283651200707080119542960613878909169471484734929603700589385656642762445630748078405072245303631482253554736403990780401325026378226295436695178852156393766364822933416050052195367904477771404469656528406126634462499963766244757093771273965569212566936322249751021632701700513613758503806919678695634093518492812129655298401226934384840231813701658569533465944507629816983036888144491118975951108878855339520767922114033969617044318274837488713529830315480149578376771081840091116523181122206015631660086058938320380593359818992111171860115595749734838076549268013575175757385800231587336933666553486216583191951974444863523588274288551483197254735087105345725078845562082127240065811874045471024486540602254164806470839443082599473062596182583494840093620379403687940443911089970266212837907151214918658934754925615868249000635691767497856801072641876394483319398991930136583379899858938399348044729038201690573438343852442682983139716668774190748934835518686962186341783566408156126333391834319326352257323840638602144314778318526180208433080821497254626331729181178411417686019217424667550897686856224005895323714317386733325881197916401831850737126475387722070539792647071644274158273532566454186914132071882529034867477142272802099180331563805934547356265835756311132524394347425677792347275515768636335938365684295190389740654024283647205797593539213035996326718222383504991203158040332981614299109690722336424263631434203744354505085210678711591465135965390808140109662760827901462532613360791223359648242306914079386536334225522091666489826638365459403788020414955234578266896558424307553264049979020500273088017868160866852721066628347207395203937869831820059766169916890931390831904117990264527525549286482674126786139923912240801488068927375779984018082443643992119381290673444575109579748178631596116926505881249199730528203319774548785748800433728141799682091572450425872430839616678334604056905340929903442672083277756844990392608294498236462316592744408996841543960445215476269045319122416996331139317803989418530637795155381238388178374986811405387476974704764156780654556272964249280848761662403260631628012692757231458539261482907862765497557452980775588641035750882366504742550249175533372029866989538269683387641146105394608389961749575810026244348603634605052754129071476866417523998271204288825631498867787769616347086202884856333413136623002972964935743459634059048175518648587872299350932512230884591638917375811525679147320816451023968643470357848474855851031387798782203548128183714727603659797027019555270508062430432560446092504813922358966438881933100743860011313259899271988453356885302987103118290349750456551738339191669715393951712767578628341011346236502076002757855481154547497377873692957272119580542491961028071379515435101291399700581773726001594816175994736918221830816783659163260578872817256781267995563564506955469068794529619862308378707676764000090210982212532458669243798848095898776201678569473676069833048173129274818269965604931185290102809322401100125548490495835887964251675562433069798848350569817525832452760855981903583673265943746979461844678684911699013382686291936972110556101191963832957350471060009539217694014092981707436608446624784059027183052080352762711203755347680746572294269481575952375173726269119846851509035106896189698020114548047225258441055729685324138100657397814112629683269502610796186954985425262468199501173400128390227448377689272945181721018926741131561407282529978133301795644954510638976511564589800069154228511981721512681741959884149008239230900126361919007833391863555920914088975080676159899190502964660545146635480177439757433146988060259108081559299111537670855414273326366166984870780033591264674944468296250566263231167235934058626249465704547734834114602923009269280985943414174290892569063572162571569004254216306696662860303772431670008582562283890860571934838503374905736198256222626620140128720237163076728688103668006629856677427416557463183466867263625273271111104960626079821448281537007326491159598785105677497073245213890643265844327847304450187133268093176704139465996576949423637643261487424378211259545753202561718096692117719055024091924236328515766119213390318355291178806441164430085498045337716217782308656532020400454004589980979464362315856185942251509206213085606865409674036308761425228187294639338425625601883454272386944852599600094198732163513085695387582548575350328591019089334332654696992083963630140145186477693835831176410681995566980239841145782359282223790631759674903086156455216396582459630491410429799722331071175520282969632580526982780829040597647191557299615791630839335396652304830764407787113377173417673101511637649572624048452158422361577161379615620933987510678061107593718141223654037417048216425490070400279798987141048549317685567606635641042992627521397643219924311136162432137473643461478841525589380610713649934917850177273135880614869577732254228575227155620474819979560109941214335645575993471100436829820968885290631267806421779979840017977225106313051663870945318377815318304277447887296198329281771676843894800235950563286695402637653214804706522409474657402280903617694034925086455273954413678301232420726811549612226215721810636020434161480022436694103844690081105041271686906221357069371492752963792149069944834862311549050068568663084284427245480157904798688068716135332108076572317705112619516075708225702125264167246323849121154562757532990815465324912237322061547391585881520228663828471767227921210979309908909876660974384514625407959847986144790827137557006226398313506775535590232117510069659976695513421173412623705694666406531967945683425566938989966258377677137104072101562718216592857962889686437700502440437188000857948103547756233247585895409662245390003858260703239092767776990527916740302858971641916479048694471291027025007578716453379180272350580624523408443091914568587971703115382384694724309805933591363019667517194660608687241315825440386719236587954530497381740306259064574290894563485856974657748968453440745150551456655347192895650278279036468205207388827562437565871372949054458443967884723094537299291500668928187760229001036047443604859159415768950533601223081084739939899433631274913568499346548572803207449009546023177239848690734375255774181076648058480080313680626353215896167837665961316771174002274366807366104793997642402152045388814067017598839894002391148551093100558110061265989373283276364616884099277282534975118667041554079912157709798360092607105004809812038578887569160007362478335887573555123239873948644623523478383343903227848377556466153784517359074358413505196988736395555470128717446074232240926673904924014091543689117034628939384938173283254316064415839869610732811703920619284530909914687776058131592607864739921649664581806265018923983444962013839328557263640376005328933370551685585779221555491210857104245531604223384785630931374169694657375472095745028990322530674377146281897817251794577030187182151486346368635094328556014461426766674500245045456290477914377149962515487325234953499653788440920294890293475925373056489633603431689042379643739719279713835945778901437495847735004891480150555931434788265958208487664965948135237528146181406981948703572391903767837722887347336353498158218634977467054853840632923652349618585618965459281008846094117710105549684763122029611311726718748520546176650565757802263615885145327832752353533290231246668684407560116447656420664889517940460041335263941838216745525884614240857325816195226148278963494713668046505125481867381571724951898600347100276813031138792856997876324142834522478824560394565466968959418694604461798951748218534148905522075622736898773914964953131016052364977937705796221737405369859992912236874263050165913043692632568692908688154055894951170241668907365483831742447555648448885283636447022215934009237691826062922299513705106608564287801753098196333425516538597764687505790802591791784386691746830378231245435520373546175092069977751333217364198334715424254417313010752203287896419385704455068253729129728658232308110453902446218245452861325197670157409158737638368177251709770221680400250846923867237441567245015827060697673250273787604205056983258119611064346895707363779157707326945437312033159924730281651527708426639713245118104555888036016290292632740419061193024341824943128766189873549597652512152676880905760608437130595138482078307112891642911074333150262187664419279974598449546125759486349275752664895906488005721577065521476925703850459045460982708269267795675206924836252389427441534256237265331930865176279648440819570998548943747720497014629937025192981521991482328327254952506854241213446158765031461825510700511206141742412976678808677238721552288165045995215927000142499857634536828530437909374637814991833878659003546683993305944580253295835211751770421304269659890088634632287132949769809138053896747528749012878459436879038551175583577336051585273477912596032653382873041663370600222582458068881414398637931412982784607933319262749575747541758042718339217661352935077854249931126678513691512958992473248521195777363898644340536057292623568863715393018707058883162294598992923331393235097629303254009034390404943615813379111471234840279545409382594302507384903682780392252907600853216705433178306997100616470687670693055885791896786641772239854957045360782843933770452699560443581853602712468560382445039554491770433183278145334332000075079907516434923517124808093724667741934165110278826161659701974145655511560176343938727753670795727190729977230098753212828821228944981282605056597500257148556152413630255503148422012765266434113291006845668535828512062240316257055688590204346365112784005966311407501091669080369843649934431936917559623734752462460581218349689975215564911045319952202285386461530151411996187902896178073290315023584215708257654623955176459618179918580894870007580240398348957245949771038538627985554590380424043349624656671329077518093955402498712799921212659252485933324282743173205684772789167471094538873555808668603307156732933089590090157804292342999723983730645993097248438717037857144365345266680020942413975628639353032813498030366525045178338334730021899802176389619402427289787090428472521955934687131004130797998215295889011508864126850396045737675516079802271751779045137150891917583721434471330993413039323169415010945892376536247522998363481326039441274369791178525423756420483625203531695909278897915841284821076979018680494954296752677964386940459126720004665980389725459287875010682616088669565104871268804205362690701481897376853586791890379947001623685627014400720044829553899390955169323825980454665490523236185369977297271736674272762721452879468710931650646418435401847678020855700102767827921884468493002486492893458122441010766966576590983745913276935364685786319469741772122098065783669043836005276409069401350908136064768629744639033355650894738608985952679177475413223893110198338959549502656509620420066714001027869236571818980216678342209156638697212332065521953611845525374154986400815161853492542784926606544866196251426171722970826130221993889333668238329921380248790706559873120450597326051592171057279054957072823503884184134597699706717353579310011322566738754418292863396350317755263570826891762171828641410209837329798859270326693701340884740682197114328828738354491607379911100633832911480819164088515682478374616439674905196794370184862873329928074774505718542544717346835359508429058173898621215176997172602122415729933385414707875096811173195653120166252214359119710079472394108629054415750918077565672408083091378723807480886712341545337776607556434071150672092375107547252693357434580019308184608051267971102170216265220299950839228049914312006133822267471922543756776868893580541472078909729175941425377908406426943017699134128570230264761655649423836613529944559928519322613299787914326649155451771156608464194494304468852096702573723429420454124297427155337946131527422872977149112780840643234293798284011478167462992145815020954173109636828601648400169425856759386309282535376142946558095798998931354567622473273866182501545944383773221255397952566726983904375151394353869182059273571694676494970046484969892687933659745101451129783910299632605116352546791209443606099127706972033894758770803692043950120201261218731061998885784965186864116784439915860845511145938387206446948087168897626844243100683882892411480393812837249986602878973950450688948339227462112308195046100729648921795875996818268101243196557225085079738472625632683965991198495279721578209194939687011782433347731420584832550797505223559041838763135751163858586289190482197485241478052250643109938027453872769767709604488428848881249547736909488088118805376125075915972804963066052852677996862199543741416670794592706747924190321274738538101634902355129830610336572562066530082379377871311027885656711039224281959953190596133618495035260695892011394422131375785871337317461981566252577381250418251208163759533122026233321353004119390126895406914737689457952566307689415183352792966630643237999342561073665955237568381740346060399196139037387461150146617125735883018895969432583202402655592362597974041838601520733571116514140541463680802893170368304701381657597295778523505274751066171590400822718478233402756664392955090320933984501590165156589884375806080199777642601220855420861994078961715192099481307954220960159351830198847283959153556818348421533690948152461028789968698220848426050118609431792113111024625469069925236239254223791209796426032927484190033080204945758290645053329935723811373873146872232338640343005221915482269225696548070444727609890559079122663813470336325884465515486598109834541483828338291313032730475226928898069776695726455843354846092872285104161215206968930818022608058068840366725167542898698755186417744940254723048577889942530914835266801267459812142795848350833732800540886951782568748834423672075575888332944669558234572819889034746864492625858405768380967780027617715483993923149636520262541422236614314316474703156631571272853769203989333806067835308025987205715897181100531369517845899559025747342798321755610844883314473995080717325379021367118694624575386514222318072342792512945252439831810907829140019072642000174518214270471968824258943691657540992496646826971225387393354110031998078017899740851515748357994101819943479476172119924040454906604804247173106492022797450034905877224259201936348144920875490995356813129231225635627426251360041940705696953902123875892418824461225260010369359197418540965294381247294546390439481809641918844031200934684328740617952488839807707015305633639785408862730175814610019686450585396392054937464477429806860710337719543102541452934283462301402442474636610067725996928947721892780124607106567670083474076045540431480622514107042477171775105604355345685060321041124538945230190387117154193859880979366265642282873761220485959036761327405611862511714416689576107839821397581841696203959612314258555046195425068614490609466222220747093394914977691238012771930345826349877235552928353743264409288814267218574437466253783742474385126846267023150631145634739382132412828497709664211927174225807135734910545467091639676687593578084319335084221198386694306144320745048267804237936204626347803286240551404924612109992531731081923025240693155647853950758800781938292077191953450746400000929791596973297750539206564605358659349090391480335835110165218516821333189122399385396154944708056562743965481876431626804072204726430013831985695175887721096923947288038254816902608771449548486620906046970933985419908102600881667609399233189705693540718707363973544531765333076343299152985833757776525766987962846776678214842499078013457746863668028842600404172749199227796898136334381411982684790464051442265473748511009498847094879415469414464938439052936894554641479933375529762486319947250341422983986058927022376902232839415195568885021840687670846560179074827134202224478274946371079609788606641967787156886276070292022043524857275262608942436073140567509800666920358225107901112761114324790344410645965309184129129798245704861867243445286231494524090246820142264222383488362239782225913155087991590459215663848127440312258232255524161664029868303498279470118061361997867721490613496950851068173163858990698129780800000908309692633427850642210483480908861331198205950315302313945426824172349688017016439928601949300674570284186647045811923899057914331661478147826320614935676538045354444273781578972466151455303523039880300168134535138975081101854392047778607636862622276830938390746023734984967001062150830869840509400536023179557453037566160431487909006272522358738405668313514895566601284981022298510137456140587121598483570105157009957875641379753576107463143251288562439623096515482289184210357607175208854273543370417520509758652844698735985484589961511693043461697942862290181927579602328682563232986431732300561338201917452341998343788453080572931632275414219952074592286053531678167064397307758290675832367840786808578479112299464738926338855512727462875968513102275640915610032569899112186145940906196213564073978275418431214932128070871967136370435911574962239037846636381142495956842702407844677134601151675626960071998735177964951666959697645541733447653171028009644840378884160245773426431693590854259466995516701676166908649319112402848773365426703034537991818649989797523169782995151273895779167980547668347220486266559564020451984321021290530140184135922115714344562115465601453827184132352079514060820647651685387359311998421428288585280894879514563906313042141506558123705385698334351109221903011087196899645671099604577552535870727643422988873802704922169062372473507843811425802142127923392609347054489662944991702231555126858527967363896886569323291761907192973854727000654706960038403421217194647693323313668673343677775042674523767931952081467054497877159897376796117262474352739358421056852681064126904641271298251797131172121430585221332442792815483653187647074095271824780441252243977766265389326386398753625731475386582961008855091177186947752531943753796534474829718172888343871531968980008884664880863869913646350207977486498878899164798131096245683136454338009922014870412791284835414973356831220817543529718986218576408193725947104548027987062167414135606024690627169531384592938403515653879845238759034682186665302974238175923586001444745343151360347699934363876372538375931994983043073200922846879259395297954168697130460347430967855466325141267586374920323855157914003154866118214525796020974953475959750515134343106645688902573587097185347457306438992914717461536196757152987991856914054468177585718183623375717387280513570048991379183806741117872004311369808275915067420020806528843728098619717834158785401327841683641264953708900933281244858371397388333759845968367977076358030064957651957219815728512196952998076719154889110012324901385853476543070165382409505050372398620257607149449300067788230828803432254695265428827629906767852378189089962511542662352575841046700891913935681988862148887308357174582322875304513896862719678172699928910645516322010897849585308823573337853692289034775650930888775768805445376957780229013229132410928955897352859797000638886578289713657276188088958029243076332940607286575195860541437258769198608207323912270587566835319193968633841588055855915769273743446862191648709694452079239519525001460882932181468230504002421090809724620060760358780845749879952894612680138335434128170518173404197913333189975516770189269148070537493474791052428132125192763901361210028293417672527992131098596380892503559521928903069233383941219408263295066316454866954951979949662927921762386908517081802464061318257829212071935281005178738457693397280996280343116291541437218199752641953417686914325982512129705699393611441415822377617203494308084927947448557793976382324233064671353360811936445518112740475143314227588584570630151216158779232958650703510253471210333556232433464844235193893849499043461406901622557544065450803661875085926044654881236203223057858387880991476225735578277308663756979856578185363630324277911158612601772655897368353862490320360263986982607091783615117705053481320723930118374265178347942829262006246641053893087756846045173332236293886006801727044222324155994035441004181499407238691605115590419987991439341914268121209326919084443785247003677758837373880182656313034369435363508715084744532747768532721892505055319281764991543122360785373550657699310674378675004840427668364449037512301657872061402495352753182782850198922080875759409423854878957340479829573041029176413565186431839795069606438406842887258850502028815099837128740602199643462157050167075223238027823609466328716593425022555403085933847677272264755473748799566324447771968420973136357312298465889227607309639854388265078790540769514370076379915365910965613112640927252576754036997133163932427831603593655427270425499420339309145623741468409728096626468293037769064375698537093520134515262577731488020910130174832701182055703629951774283069655844608665219191397996083602976157165530370141951822307240754110801431650501569529947721670580881515853262634496610082140627022249634832900553005981001884475512321687863276515383445621591929039522632511709140952583797999002912340438993161213964735072988073103621995697897876392485218123748660994003528188316351600188685798929192267573777467432487228189326979654906253501311248838961055404881130041308738154824784972617976977619978787990838459563396523630360550732501495794710205372984186100100058628189891022982360031613036948752258291167772027339826920315762934242484114333461196182812058337233198578377686748097735788642409873719102380089712481622226078070211736358530655244691701116751774104952115740769316813369318732823348547569225632132070462586253925444910988109407730444728445694881908913159123890879804230239599474594452817036224680996564926800029896037420886683612272544455655309206041491840007206136801283462204660652782869143328702450124441535167911013589399562960058012937321349036259511673180137835701053163496716151328222017501641217810516649442323521929911663077232364106104752970420012164520564561916533593738635520564170990345472050975279950777578376837879939362110843689169301324865424946242219005131689715772675417194440051555674636133362335749970023614860352981780654918342770805741265608411827848792226024985467188516998559693135549137986774581170208460405807154753978918011045036767292515428926540688259030415826818322606446968216762523892025211906060410456543895885699301782719372101103997045784743117959956690383465716439303637358347533978536520989000038476389016653195068048986855054835417797326253871412751414532791395236836340976095149039310574249118591755393836950589593648435627358874201465100320565901433423722092929550653000030328812268635099896693372282252549520053191130808785278855027735733637637481517098551288949417369508473617098827308073490518009328612850867780071281938133765188916038281572896632687006646843576792924563988560359500427474034121707813986897399468037019700418826803374140768083567488926405742658308633097796929156864212276504334176917496688940415367337458147041145008113579800195610179893236569480336046641416574376763465581958955043197857626954464159572498479014720364917968777550770044690302854120025918697479633247564612549122641252519054264317159297819953832881885120742431349291813310274387943712162708510327760709873897121178481351697864046505389730396712991888158206168135461474678079150040603787733373588894379147298493835410096317590960346674684614067587745940675153462742971225717408280524276505331643052387603466250950854775777738962843502073488544740768088701090701573199140856568912569741148415156788208018740420539330972322062815297643425906716200347703900225422072430236834687205600513477395666489441765219756256123450078091184588234086022170059290233896490867656053525409262361073925819465609286344869459312227218577065008074997395437801886044924837181690017415681305947165351273426703025592864254763111992027287817008353603953618256921849831608156206207669846465403769061624400408172284889730399175231713972210490272423047501023313388057073615254443901917836289515892495682273728610539762282394199333491888485443419381949497686003944057129957891254284711735428872286153802085542314914611072266189244200839324823131437516936645573841305095823551124637555225558724026370119523704597036865036838787195715734684714364445336366766770301815844987324086661276151431729103178315837211067424372079131804510468151786016657093332569458049551021068367301673858430620847318408035393583622763733802909113119693833528238278839862096377084791801156648628819558281223785075523600332608431748661008752877289169843800043405852278014087574293661474760443181230593502760462852481138229482482114022685730606627297002539628394826668360804901460201918392728967938047326842191255079208500292380094607987860760394572964897745518352998245907418419224066477904063688456943678714701164456060241109211783478351347250511413720386079791267950782394131715267742757984137493151094005093367346452538179017566637995663843900806837372009341311380976454082169283498257010072280449304677386381883514251073539098563039838785024864425339347190312815560413102651642942001581982871373668317710072590003782913218264796052016627389680248220107320681488630865754563402042643092002416605865365117773137898755473148772269391940496727029690344089498067123789952155950040792369609667186206271025223006940790559903176649277877653392073806388125521194133573795759423408745053310501515390344772861237595487180347665817226679689215824936203849233266985986307611920686025418244177772468597588704461070144812374338752042084120589743629467634865432208258360401332134430591577380287886310441218940397836764975259435275520618526017669781300275097914003906451038772847243784549821182355526160758583338849930347361568769677741056471117799977165793972065923373795132264391038648844944087217508061923863674734376694767253926615888709713942788545747468402593964523941771091651487220983596855016662922492951802498115361817646176459466970385680127888413344901527118169903001326642751827338008367144781847558795233082292955132175351966705608213629268768499127885134377081169136516387926777998131750090560610683376307552311083337339221380981429136475464105045656998834086743938275046782720354226312379098945102743705538246745024752966990795569123687288720578663540400540916393135539142526492371880036152711433070656405182377546726428382774228111713998401294030324292551968712956439800801600128914723077200175954375795332690122465824485055548556414377090357740175302114796045816109573893121883975855572938954943988284626583737091301287007295694910717341665001359948236620071851502960200001892166211391255050673084577911756545088992686244430423659971540636223858202342199578969047541161174884965701909230732833258478294271101650100598613913163856047653344922758719144159515668982276506665673022288886314370887255568113407250217329882569813431423348491608684714868412012168716660543900711047080106986290857327169713529751237824500982768922782082988399115700893877403131586188012284791405501987464823540102424472743677284337284711795050445025640148591712950617965216291886403342281449870583310886717111979785397955633799930940127776942385925106457099466003266477731311629822314473909786695808101599081592562859578733452152101560420493475476192137434871079976916904823997885470279039231496120487673399307574108394310144628516338978607901204751526884339912271649627715469172533395553056266734906676589173900920553190088160370242767774125185549358547804830453004066292325028107430411033546958782848276960185388831482562870043366695334779420569077778400307861871230518385570974374713139341377306725212623868014663242827000462614705529689608825488575503732517731557145920101184273611359039700142921557418665711403495310404356614972309424350071539344985157136365847074860628859417283973707133171628169064083397982185695375470375670788210108669334015711978944490520799780884650944448868844271521053100521144526926677852661589386344705697404127489981854705565396325940241966509459352765922500951944190499734335421682527100808417815254013857515546934480929410545453847927061703506839502327990683101533939243992705985506132447718072603730897844124582912792096260205483738828284279434821197865040322163845901373709593204097729825748474272606921747684327772340430351257396279638336463861445315680494454279517476582119123964174803112767647629611844143686316120493910390383308619164466834112081353420407218080659176436647781446670165356840278521457931769696416590388181828834674833813492377246948074317443144746587440939832170049158391571179385709127150142220928934544448862375827212178448181943183508685796879810569855217894817735375502622451196285378778100604415569188449040818741677010959502646188176726381106727198117601436075893722018007227438546405385064725313053177840629386805426709802419889935846941981104012626828141704610774412339110806295283340595979611280396856064939223355817096230540929115293826861325814906130545295342115995959261342847563878565321265350203866118707632540288817945732401000573142042017366070639889083046332935869434989946592952439313343660780423338738507298739865241583877839359526594404029100493361233547383256198328901507017989862424974882173144758217512025330116129734921570384094700532731900423829915497213746311443831353085053983498443514844125075421268091061088554948875366961841426473542697628074894274956712112774417584991104972933973361590365906428193536685816394199645525832526330922171786835343410321305931986025784882151049752863888164300064912636096698568507109739966412119683103230511391959357204638294943232937028287410839373293513396935541224157136907500820231462823355114918188126693527326641894757402868101171381198685115162499822630965497924746410493110366444567643729936279916941780584216328900603671368986260980778874669621823921030336710581891492688547624562899056382591814307067917429052012184576298763853054841991066360303252769815895389443370066131882506555436741796119879353423187262385566749700245183834693539483597871576513462790034289066224030393310908129002189310279030882396633268595222443887332190740975013896205069326156342517628124954912380728231661599379035541685938238206223481089135026327805972203540232671834772484314762484059784094782413367833440656504646155316796556306176646425020413716317099141143281293734279845812814143662744659261041821289956125877737798517883232207442377622631344400332640191703996920325073938097242058676325005169258994484957053925811518380969516112090540164862281432220152266907909363285682658202977817159653440700848638336382415072593000485777912141669365049468765245777190114790685287354284295149123634002972639206688240072303420805289989706887149561718093327968399347836939876756887122412078572235690589972397384080380185886457865334851265516947423277765336741727677962841062414490577556140720925290486499873832606888064230758712337920991715017279702132555392073888954566506575834848453788951281904626808952435944117731413336548542541655254285975838764102466571590125992811535623600609666681130510880372317630457928523156381228945001268937537440107852919382834670313846277530436075024033005819298671740989346065428950096355138064030781222579306102023270989928574745170465802989296225776568928081123336530636190832732874033524312687821738397088950618362851367496307931586526694464435087150546441327519878047577872264811106131324160933331107961523948705608339928249259414365141189096694802556336058013092645253666172035031258979181142842219247577937842595547406187653428823064458848732408639794574494203874641945665037113218420288535324979810866272430091159985406357601407805760808101722421906708220488798465140092486666125677312973690215729755814551303439598343420658566121881321792642873873267487511109507868391951162570959440824543923874719054425379032744934998981737434312142101052154529341374250657765359963938038504983189134015119640591456520278838912994892248035334343044775064049539589980976899442585584066995394024482811867355345794992417563212358904745541527393900858048679451107834514869823837370497105965837307429279278809098296844254157100346895084253214972905588689922634440594059392170884545269124750958004251640895470904068745859736879921974131718829885253191381717256234110688458920967190341853775949733113253080520080020663276729003714993763991677239633908678407238417703821183653802754763012913984449653071663081599384367858006246642491674764958571270480488937588862187565271669792776247944316645849238365145419512841696022281392669766973472479849076408323924935205811874681961491781990014798833865477784632797183788845848995799994016907439566362141277213554317151173508047006717143643487213381944407152046779943621194020296228750820480848019535965284517964011385448619575973230566027765635257018317801489439405027072447846328784101875355118286984762336764545280861504296597584638601650619287330503960128579699265260101344388858260698519981976233407160210877243591365637416967972997729410937217753535472045914607615155536003145314663727290036110473585341800994147135837218480667222741342130300366191454447282481440446738209189098602594253875949223560060704134637258489103046367193253578534072056027090125347192986691628152458748784415670526967734258450270578705897357207071077550952703629847065825758870681270348882878676306997206118897344116690013555237455604243873706428832328651025926652934451380142410425652916571986332654135415521996031072254228396690663585960763825911174869532137333807063562850575741948732367449996919633682291811775969025726368367019607268339590706402250701141170526227014934417405851314121869098583709312924593990331648841593710322775506289452621303238363369122395288427678313499035801838604859547933827896075849031672413120135076078135934885411877890283164620825558040443351962388048305085158052357433840349661886209229040882394506591031278879770031871677969442973981954691297141012432202277938261552576081530471802565580130154939641968685272005709445945907967415986126958403118912513856692282882073154354207716236099463405724254113231619330670188028379432998186163641015291417912801611591652843530008230834488998720750090627533311900626279166554877078971672649893842560406559044994788057500761980147659861597356022707838992764954540060822899410363739014550354955568169954764515526870913971077415244675242147348737048875926217820337058460217530697565026945445202109272414410783823862807586220204695336463936269656362761538964680486425974190652609260176856314619037690076909838479137710499067921059774442798817442956536703294573889580347152510814705817930556260890105673462980138435789189819171092159640839431598171338417774546972813981603882396673691048152312682818853639070141234541990901196100444561935580283829706469602907605887791220373961857099845263674239683826611385603618213690158660586442482853215835281249112154794316173984102792390356576996879298189893061864810946534437436394776872044552432220345242512959125056879230210327994476702962768406368905903954709313018908375654111602492456278779297177713730049698197541251703898389758425883579620532495391295708563803105639678457314014163929953768885200348679083351262742928377669109365912095788374622162565033973712925789755042053250846664689841622241716135482617815775065335592886449778385537031012191017765480127446957722201960867899537562695750377511985902391132133608969888545141027125993160768495495615082724066758145793216207647044078297827750608709947651512230346228877838575805632770419935001998262635902618394951176888622363145459767978563064780881315851577237157282345999797583710917099228606518949761399781649347230673390497495053832981430733472718225512201139014883557292904656636071675563956069308487486863306623766091137994186605727646472339508637914788506597519582634459390252649485144365802040551566158741966855209062293541459432819667922972321647034222103316682733156919360585621033113889048467017356269663797149732476713631633487834805735590421937582626942956707568538340201120393749018899963113525484915172601079049226148044335960645351526435960124836850901975666543610241985393845105628181855144811284054761019973208564332735889518239155422949656739697804136522402912698008116725798643269559040838068360393479636895186291702760080614230507708040320482228364319670555500710754431065877592637360259267508848587113065396369121114509650785242990483025210535888097381085490449923635317174286152735814214089300460558347931482626864242263433385609139748162989198919086588187362763363417163062172021423328268327873039253364071800903484107540362185259843504291640186800281416500072525542248766391135957811685847320348905537575372121998279979357291615696350597963592303557776596464642790555861762704557022636019408020046564936793432488878974384256599290904930346783970224172031999709396922766823691145151618345181576633889654048296575362433020117392182102700920942490934509886394788551323317394147617325856915826566565677051891014631686272129551951518675199558851282883683525559062251888703201331448525778562497617257927083993806435024648977814957138671187810280228666216221641736657164425472812028696779011983108286543147226797702649903995148216947342081864677890784569724632918122222231806246367551070434002885001459352131768440045001786529833799964265507222247473487583970911860800747484340627777686943994576832359661138833446962694414861224052737701996568213763442990119468436204627369685957446795268900252224251909701578962279352474913074445483050465457521800110485955178111825078578815875872282650895464331917368249224794427948885881170931645375696936918638080726071349509257859977905673654770642037624037633791442783447453626243880706630444666427140585772494569397327916317577262452313796216209475717812288110758425030490503743483896277588560810392201173144910055886380914913586142800019647297451284955542200980272764601768120595440391881762398402103042441607678125781252911744297952620401634894374075219578048018818419837626815972857392656926439131382081059567093351087358387805234279084658396861266527476851385439873905487101461643073580963362186209976138989301525043819519584725849399032558391906636879612500413123856692866677968789696567626130859646599797314289023797385168679645430911247793491831848685258222923348636932360907073760205537556120551268579804127215791778053008422769180455015192914835743697139836740619907615281300623674133147349228116074903563073868364072163656114038444140192868953805075866236329044717099618016496153919743921068869762536157857515288286357090933320184938819732357124898499253196643942113034665253531705973662497340056266154454224968344572321212101613039667920049194404434989475021861960543105996915817761958697528540788289060977816673205849547673909647694313934828956784049077208629711798364989176132511575483690088077012280601841334870522809347340301734868064833163740120713756519579355891154974136061123751299660383934057936663998325558335035886724743538713451824430904514578269449424327912468350020027132707441162198685635461246953896139887443356572136005866621894410659071618115139612610389814917400688758844908071365799297221440230137092320735020422077655202362000061861655919761129658288932383400234259117669267726180313730321219571854980401678262685176258797613026914205783887759873124871690441985671955711003405525491024606648964522834362264354581677045542522991634394456879593002292821078580754798320343028420065703745044049508492118739239260644480206438843864707637011280171285194718005150443498207895299044220959213957875297699960850857787406551706373404552817190621190813517073008963188991098740630822102531618489605085784599525102530132866733860423174445602401114529413242688904684148693482614918443612486315854786776869251714060743788219363701275847677716040427652557351836514338128312123752222774189871220983623070142300988359058155234600215469685407480778578185209425664253238876228359558143445074453745302516920461177533924198213148695300188524473199189519980185501828573156035474302648366383280834855862826185864194459265874162162290479780343597139894133770899802821598472507640571278725520281878194449100453384388115568615167828841067960793773606180393797161051863591952342759474958006821521885252327791233077918843440887536594661505954518190490336004702192830042501901208427800660835391910446708907052942211744833040059649933411560135089411845517033695821381637772121148246939164045156686556681586959790630380956781344010079002235368571581730398253837009446402534463285152723452429141739036930292610800300485148816354397239562023595967000302364506965109796562767549271857791294666493669815342956550576116066461315592495364119348005416623998700926875908915963913884183320074018364567435927120723458837229882117428898418933326716305317678410118584155522622896514236813023911729801156952940973857634696516211001270573118475488031522070806694260370895044901364043634951729875079303720902663309553440520925232348971961239089969904537721638945212600211565054721187080632309970113522144387815568060197205504918645058573226961179410893678547627374915926938075351961210066508992319142871581629440856152217045130119759994358763327611300515283752112313139210905295342394993401479227538682891019341149663150962848223202018795905526243183292736056342668193248725599738155853426734290518717836405795175810725893137309495927571664978946032549276347086741989620334665817844313789059384366896692991739535951740561519962453733406257501499577915065381696736435550251977664383302041121418546799375559221600388865279465480192744544962591026670389539219499303810801647567374074036834227265643140628882666886930204433176962137850195118896154130293844412915889504175862067393411364955965514036652108523686294890835657998470211648493118555050942804749474269596671497458886171304821787773389716028741001236280046838056530203099146526963437061137492558586382106993119592346477292284385468147043776383027288339844130427535173202809705932351266751481018501972210445275291496798160904085185180091623793733722483044642530428083089466929395747338631810418118703860112757407202111961848605443589805766737411127909217208230894273540338662708251690105623000529205990824481622759786459712010076620943675896253899125185993200299436636548371390643780486063362170399554712880078490332475592270274216464823494199449368321146667652033938624572208437520717788606409363103417967189772587461654351824925741093574003480204281652028876066333816635379925207890889044378446058464581197183534543270772970912350038963195676290865454405521013745907241533215207988798068068003693599021707205118364673708684109141826121458204459571680400494682244982185666265288557272567243519533919732504733590736188634862609449770967493979235487086652870568913264391153908463648551604288103297879585902451959691264498209247953034266706298612497502642603175849100246702981922296099378394070192971036727854218569931206151133900463554501270046664410942660539014857767091456943300251416362802054536150618511614225166651507532830796791003805741640252753247319798521752915664509758021687926833501183972201179347039592126352303677771036528738243740808861306642517143093232329696406975007000444904056310389658881680699893789742252094951411246967094615652491817928073000477991114510865061075544778863089127967453858045259545574640236317567900030186135915842506674438977579219798018316292484545536122601552064335024343743859988216116394656063967858029841080285100803843333562142613886309024224545266504219410502310561478609466751662008620804566026664966186446700273468566807484763052378697067842598251654369540176849749758977615515282433407132000739054346779847949821882040173098994595914940393813159147429060013583950949597588529496126481017575567917866837027666739529765710809135916565340840938565049148502292417226122298077580738150699418893401937165305574520887514444272654895406679784904690697213795787709454161695396147415810654567604488507333540328533997209780696503394292415566881572630545693048145277367500401794714504760066903064216659171117358468185916795855711662421729467885051020090062994622292207288898755305013526100647465081210562966492491007060592602245004601600027921923376301936633109751559939558394283807872305805904035681052976293855228834285719832828377500545983090296974899288894866190801228418383727605611927425008053439547525262789025036512684799814989613573749547699559926073324138951147264696305491719432608760921644039403085121428178790794402461526068291696286930859871002195096890502369637150411329544964940150782493582001929429918606638668508099438944077485362874564666460848422775192603806393125596761112075412826214310780695024704167906019438028024854062081693287400735548105178743885200239482135511274443262455705286235741735884283029673636136120778511876276366186237190406519087552934700919911943417044283136662978547075469875841299779824409866356139750470344228662354510867535407008637966632548703868625593267821764119615256905279797110883125963424361087948227755704730566072243393966455735691243011962583899893698121750044467066124784288675280824631494866321074615434201022884531021642520303395949071172858121675693216309602341119946633514418328500723947964899537981221065641164437633408136661744235111414250904575884526060344451179825035060319993947185602185669245069437940050335757553113689993132936237526378181565618942611255588594352187819912464383844720185074203654194433880696743344668186453604991454488124597207387183015371657933766687862455233356033923610044737671278604753416382962690279701693126504010884190145188608668759698110046157130730080199697827022836223917254088132574280075280652172131065965968442742702863494014570693386673476685461515167151875170797103731864834865164590104486324845650927508760389614153542258694579968775152177280593666200683474232588991627545189399167334015039243044195873228760448590494009106650285178034644938984093362431768746623094696996507183774491767919404900453006931715595403430433784445002283773710343174673826737682337212604976133687514768605325890060491821558073089527760119193134705712670832982936561384439148185230997074489690459939354651667586611991346526728597501265576627482904133036340948424102319477131237926646172787425014369216020796025840305521635290874950107328348892031982445577962984986623192140418539802017504682553061854890228779472653457737843200188947160213189383124914159853909192777989260139437502884475030962648128632622786611090075947985564548042921894338212377829792712953141926063254996837272718985061827489542707621442270135995028909002151913919486784819092147671418989706435562347048282864210571911783043984264770988195264483959469979228564534660663484854885404658311943799406849354879944731955441386971319321686477385970232829028298805640641310023252343905641280922265976573102466257736869812649410730783685431585029605037732601619623754702474822126022876145364190345436237089235774351001103759411184789873932298261719489832317042267359581549216816685860948573541006467133268127740167025460195924333065724315680915895674841250840968611999789750493695488627825710708290240318606043220019042839015932949828564706677810995745572704240928700890783902064615337818338569238727761533723694475842338268078916319178254989536146766924009042560549889630631618170418570497358313040989371816516823593961193436627257970982898795723280796579895716754569170496491150469370328740018468742632357026220235492377638346005943214142961172563734474604152241112181959713925515901786567656342294769797498769102020473434953817096389027367223601613686591069192102155636568510235531917040856671151027330489687902662688878984993983098377515758929931713259125422687800416474741615728383704894694114022890156585664127670939001244061009365740139627837664373421390914166314700346990190769151472817944643025763884802135926306550280613781552678882876719188168256758872756272463006339231469138289736114315292295377831714222817982098354830224662053731701141267789443386120116827381464796083893478744324084235223741734798449941923191279442546022940879344849782192978558376154453772857556217778535968656870714268950624567629864760827607869445214637537869572318413801458838602595372412498159124590919493447646925449250516871474622424180283512003284006634251440486567306644166934319766884237243898258931429857497703220791975418311204281996317108088444470966652323679715607553401487373745696537376320318319806590593287114741973739919431188437423947861257140666512724190733131240886714276594546615682551998717586319369566063183786634148916981855990268949120170889326205403020328026364906752567022801371051201187967336929565868858632747088343436226098061654575851538995356664704215320690870595581968289586768146465654510477806316740593021209123937838582701335410095272871416373365277033171055564259366238394935592590069380250435067504364876969020381939726542590102104085240599563624702349681185422767134844063630249030494471022468408157129986541411416204213860360561697755545418169302148833986536306856583730294015390724057791236347732727483103340257526829369322554050435643692896384771125039731054897615561096397984638841579989300206232495353789700316383532148916705142842298238456126099170433655007080935682866338369052879013421165441714493315871576437094920855158977430540053771909526218965269133249442308252654963960813795157357204570324308900405416428456592086155362053129751852781817707512560661833055024127313690777492902348026255876168770771039411897717364866099538537082552887941000053782171583218321050202888796139862919908868476482196205304262859221920740726284539512035552558234922868624590029917497866238182344622089366104678916492436187729925315532495031345898631245392428604466012558443697251531154322624313615355482976821427167467848170104465989118119024867144945242027729958648463528455740332612536573828089165150211738441842592804137779595358658102217317513624072768270323587991453184620427893421611697478796190625621054691101344570534550686872459933823242320477276979955177392263591882025609928716828357912110113440832528305791754788375826648477511114010169837363943415959433973512754612331124538801791029265978307032081641702957182656963129333193374144287002939631468162265649021746154986268998298348586405731648039162411641810907161425964206935143984136236786399354328788754006770834988014810086014233945340909575221659649107774203556438487007426502032894615704353943555381022544121238189517461135298422853479448038702541835412087263050392886709506290104912796633894437222362483347564571310603895196223221080710407314122085402298595183094623143919449275821199391119284560430117190260610829111451810048103050766708315300225680584212737986980683675724883825897466869083296387817925254409580453576814141406218810261611016834041283529003039910511243856744144638063407564984794614849386471966561547320536931859310596180185015228661559401402898566218619392065139489668786588525287733167284636346611827035617905486289990733396045225285261612065730523580057246080778227939474295278016686448526482001085756248474677349794042140319437370776071717402509657563794867015051136968260348847571827754065143141250442422049681505347835551252202239090340794549908011646167912419053402330501429336850481329880417397820088424367661417295655390511490350078513979932992460993947218608870581723507704068211631543880936580383538110897711837292874927700117182198896965992600150819988001605300604598405682971054327998513898944044274517912297687791754251964895485252283451903065328138312855112939164704353726655107363346485997880248769574028639650671172363543942974474034860325609330559866883495180990398908384115000968832900893985030773594821580164255362089908563963401585112689389767274454723723859803355865710391020476217204109248708088563499169438507885994815683422831863665073976286226575762178767060738436607819821110248344759299243329047001352209193206857414921405580695596234790024200574689426593885057199688755533937608183818630858559452375679888837840427796965525394570349723501703745082664456806900419578262891213567867907635130072286969903010304523352625939874584804909379114443473893850794096760999258524327773021103353972089060541833006249983749030799399268800784308585532070212418091855659715093224232477233793219221806700592065743742745627991861630730416536400126833656687394498731397416656844381543795480510359000341954899968309089324538718564675042981662612904900986886241488367025606636244379029531247230654536694302029627095066803505829640597470997551195529835534990714798675409248387745804393326427400896408406776147679849341619205959596087930962851911777961442663604327591231483713561847121646059442691213812860998208267325150586281673981151702269517849193517360100549534620002356234475743932757951471258171634224820929101034929088536168140808635784895911182216474954172822470385935217703367494750776038427402165556426320702477989330788571613258088862076332337034768191957829469567149775947506089448709379861683554086288996567960628692721800891320300468803811824218795491741837947794137040542488390721820467368757855665557482024229111937460367175563374767580750716413511559622557253114801176946697478590652182537953829476467443456826020841011659104969997271352217929499022846978873196169665472980995652949098010952896030819305390065966431248137843584778609657379155485399470062854047604356692743450778974998490811181809187594387917154288015500007485818497211380503757877383285863545598587186744210783555046618346618977728026757264233681582540873198667070112572784133128929573648814354880670258745570865483210448831192065633839262773270195339722557948102043480004746151121034130702250196170640886564033405158147000081255355421686712727500251962191817990574537166064208336172066953763028311698060640009891440364574613400521056960838863239573345339431486987197260681579182427510701859894470533161340342533748709701863812626857474667419340925085825877853301934761095951999172012769800444191145181882045855616134055405937087292416448402776931341246892153641140801344310968572976225169774315334626049872043397426303283008947467401231561992614156841083234767349870893392336847080999925012459092141875526387570934556058826275584336075606439544821055263760939178672664786886463488038493074558403695458414887716758202795362511894418904765609892995835861876772214932563774938373227848590686222549041954676437704271216008330699417372103517608867869863409888034548056029329830763169088773609806328271472422478825502373091726023303153967605478184830080650265659009841775611948418159024329657799413710462127971837552378225474572848108637079793417366284785655743132710157629380012668339537867758422762467261781825347963787943027178464935379020579451733771390805864787369624583415747492501889001293306903520310411183718586570492701129597662118305632214899520285428306391972651176124688929211272492579767375389561489563524854570333528821467651101230369241313686552565841336144911657827921951688213874546899162517536683953634676895812437104932174058576180099536886453923926592933487267593059153723486608778116558354120579152803147979510144822871274579718360974362299482555118569176019392631988034420934625899760834438605459144137009804119642654199206743943688174032800772358280492192562696291332994922715978819706950916033071297541848313306884736395804870522351986502913619376480883470370747441167548859114493993813187515521986376108515341391295572929430744614320395562641215623516353643283770435462681893423005521322056698250307027369685555096422140196531324686624931633565353214005701974832819648031835356880420228782685908307409145989173302688025537404682820155889292162845747576254902966453433595006516735300649091948044730964057123858466587407569834999251846816349065263087279247861229762076003921943256422825499574164007977788237004192298320373348478901233888822895569653520006158078073463438821494866677047674451610325143342816306364349948209416077121980025771820166404996900102059621113834034213540262281034440706508494745017687459433087756729322993098764230223959578502081707197961848921659924151716691664046963429313801908087479193989490348530709105587812324401399752988370725236620446607334624500207438955861980082086762349131310738110934665554459453436468150974796224520761567837155187403152399980175812380710371473921497542772867576646196124750839244158726970616497347860754856414343787997361155043372192341938738089869597189831168701560484731378077385041947027229380573654385383815666588806020154342253467017003291065650990006099360828343438852893049761248777519803519507875926097704809021415603870694450670595746966454947832051515066836568273739031126991811338876440509685236663216215259187632471206458582339673267745037899852927307402026499542642332199114380864130884606952701884288813889094750505699198325511710167230284045490604809404766557991157750704947120007675113087499374220793621534140159547510795229583106788041178009633085548758118388899751296907784421605314791760282919636429436214826412753015173240698079957569478334842554942771473510209567680749319202275575537235635506976903167187205774213692976521181978463667468696961599827737884090937413653223909951018349765211657692154561828922584315008136520928333070536752538983930330073426676132961419518587977653257065112794374746505882931361043600744870970924867740542429080875598721841152037699267426114638645864624387950745635260335824472327790807132783197261846963159569732988476496570360115389895317021466831124764542846203420438783919830460907295091592655773344579316481987737153439791009295885903595696817774908040675399729717761822009984528891443498042886487954886365973243300300107519508878368494714271754977506371855605819679142191281299296660282313725956055966307407958872777904707813340496483324231574728652258435578627634506621816983266819925604375792063513792087116236302263443220285842225500798573806729095431716156933728588771851221275615239914626091258354948349716421354308897706180257716081620652719783317486103701504355910398785535979749085372659705040919612444033726941091318728837260236798979047631893344598987527211725489986532477155104009051965866257517515135090935396322275278606950853983236280908863307065657973882325413761151104539315200227106013438405069141924843584648276519200492470524622913971473270509250177888288716142938602361021709463579729878768954722925463903538698353890127813154992538132777370797135426054384601981974738903552813185140026180329440737053724963021627074015569250766786533916141374997334264079716942128733859801677343025643524938513120837206730871707671706963010860425829879009511097250737483820070493866147007040702612921822169087999868108328547449748579946088480988236740052085914720914717816481269658906928814931149992662541992023063101220385314629182587038359193456149922940977122678736148171247909759682702126821020375945010244908046090109289612538823597451114528104513053851635535385020970154193995847578504491890197781346119335329535391305722528463776532905442818416999287092413495521694145535173252597859617496558012655888644315872142339113644643362537348454889936619757620371933285421055516923298706966242147080275743549941700419366391545019507830706789703923696404461658053490323016100575767472714578308066101055590654772071927940631172212605416721372864815049197535723838956116746413693011494275831551196337544788107119218587216584794079461362620204240407927827376907792272680000493000248347746409663136217625811690250744953608745085932217023816227290525114887999744418654869705670745885968944837203200791165179169479754304949215513440969580091644683734400789886542288830309764386508140821379855702675057837169331896153271849754950022547917414416315917890557427126692309308190144745470953499806685448605330834495288595770330189631918621738026760997455805407356750592444263209166385136467919996122798384193889866209435296370815091964485374390764416986103541767319819061318675396368644718094225715990271862683588476354796227166542427508291189128865523923444714668519471997179095409115575724546544311947272313337885389948281826467277083412308271301517375880513841100856426529465329439290186183528474467483712909671576104360460907355045069564546336233316462488875106028045937066175792130624902733828995534949485265389899407924056732748823391393629167011541824860283213075370190950504549866010149071940440083169666946598933904706367893213750337958266840953786765810935244254472100102550108612986586153059588479910458463595216675307477573567980952966711247924308493158241428100668392648092313007958423611013758011355991709442163144045257172368399238686008434550037254195503708102217938744553046125976240040008657266288789308140022683082689131522787099784228719514186501630824686190226121880676662223406053993094716735244031961849276233780832737121725614587989583796023064229349438414102993389303930211768426226535065352350514914933816890448865096336991897875865175652877885417258348027647662099630374571268848265519454261967382805780983515147766764588685386696036077228411638387872692723832067557103946506812671958052030345113472845478634131451715630933495181544705784202095950426377291279970996841194952711356743601363822000814353688810799320280174473866713399465376968603692680587044860872011580641336511643834822397951853430136949151731270453167439637764305188273594476542867442430416321775499520539818234040334335082081416375582797292081165824928729224057979408714868818810437954372887349681752418013050391829857566654617608514548144402844402975804524641523524614376262204584843487842053701209740752901189374884563593712577226394406812265457300844213341971291319679021962606871996262439487374159782928389875051050924117126641908185671177049178222141503963974734273413108672031550724326400965996974896273577331773535543684208269350960821157521515491176070994393657365043269368841849682151681415424072100163358912778349359092625799402680109163476005930722210327422143899546727136985103439630311886242398263298366998611392189202936634991501021687082146367948423816057847399873595276048941982881966118715773047263402474188039053335203738523773039425302584856042700745950694769639987585430208691473950951158467264924587628461850851811421115478003605544618350903856265120283327140546156046242379382250503352440600487791879126564501062425876347034987297827382363065772800557873231287049691230526394512285897701345544611317358544888170665199895057258281956514365783888601887504206637441857965012418430053625674105521254297005852990395805138895039566101819149604818801957351784505272511728219966160574298660137381314850419408718640037954253864319670191505565466657522993010629143072399431468367312185551460447723736315484067002838318962408941778832383683968767371108271441535403814427891224930642573229906552396231991201102490321527443218073183667532636007723109884033221673223809688431486554934281840118479914127879113015678473617071912672777672684176562341287115784034474198612212216117888939617955454894623099122669519230881381063143755348601508781165370526644036394155374761887725001749568576261872055155069580469204761894301701875927456166664183404320223648220257855163425129182440958284154771655689355670052355530050022955060647691751718372281695755256353147364370496455956263185602708164680739659690060765217467461132055434739129252003102918861462382235104039277179036642162831359681817729616977382808285187161504687633065330855205706920384975919041280214562107616432994027571223608234811075352188539741748488074958935817610641933584916480835395759175414924172216370900740877158947448744373216870700436961288530590694351989582767468470312259934475676166170061214508815773672497483045867558373446298929365750282664157123450365483466358805312189633160932036506727794504190066191632829260896790454885118786688376309721679984691563862345401760855324640246758175864016405873622136883347344790240121121292321414377124608295533369682885230371472260638137438612791895565957409086304848266767268322824359170486193121460686711969441727242023238871139489201716131663718509911902680627815773288404771618249360874930237943166591349911101092390560743676173886191519357573680515096980476108393180440912583447143094717402766142317461067699349472310545612850174411855839305428494845246606237564117495263171815652172418932552730516703494105695712505319748209705856116318652924660569530957768469875128053188128183027291526857814779387655203609808657461378879129176275514360085112646641606831446554752917371332813265402457075223165658880845747568447773852888960320007970496155491914445225855388026706975259858496659495117659778586183177550965028165570947822071686683570602125027319923025279148952171023381582375245227194125335222745451830533845858215125313484138364984003466843682611921905893491117420134648176415855362104421034092828850135399055506999329725333694719166258598312311857513199502246213122909279667881060953999325155912198430246276762969051890434896841362786003856746207495351085444611200521159782645933057925868637162462286484005347397639032760322171726077233195755273461460192037863819170951658407730434401799393565129271355009600467081844690570605857370632579072723559163393608333687740937450980484146773337743766547755465070345824406121633431487951889237681393761520507484691762933218019347467324540024772968515774467353813834376476144277403373129545650120805234198811446361900755573997069603977001061152514175312504657421826494004568524055950641197089987669818844238532808423820976014740275337178611456240892628041037040489329884576715588199850915384503411126447601060581926916440299182079951723091795320793734973609894506408635215654392315021940984963614917098305529496716581757956513582346520427835604419939197287587644556669921753870274966097179959569367656795244763173623168596871363606112375872297838785736966341047109457496819765627286553188089945652797009153456760569563834033442673445171544771243724687312223671039666318913221064179466785531824244697979580122793294965674144389261498570466957687637309581934866549263753492356992624840153773220449630233445658385245511724303074636328811876974917059369811269497927781639469714584082160258721435529848025781901765021736863546914959772546606847197944819931869639407096605142771406381400433689631922763841239324357556276427776443302848047117441018597982618124011782681567802349656148121201841305602778440071305567191543259097425868871134353012982206508705162281638031183792304143921653508765410738682949057925875589959413713874365858494838181108670443789090368553172555803727964800088020971661772080893476767119867932671969065117161067643606617135791541904291650257823173559349223098308382647269888413716197434110591377598783560914015926036788525451556496703381274566579750124227511526343485819450239435069217920048303295502961953159144235211099729719955380240193127767306194650466954319691633477643965991636349134588343386263994424490748145187854978946769641883952788456686510651148276613389876251645529757945051248748998630238760183199427641960842592542496590064064548397563005526646043349541065106161940274784888371926646694078379834356305631393959560283063049077319753206140806798032974907085584311651806201916131693766534817523138490695465667370784893040098710839712861583321969458985693274208082808865567790174060554231198274039910313223013579689409141263747142238693542547564553386388512472854216341330195782458788189019483829417204813609620931900371567481471314567386796794884400852133589599523364844822421383566332651241718671203623828684213314714380498377844120149782755141051797880772942193933682451821804885066200814943352134627290683535324505744344008233878100562920334061544222163463411001433538852796850789598032019106809833599294542693503477763571959896845801886019777854762723717164225296336308157779023966374726284689561694062537575461898728192621631780108275967473157170599247473454512167636125022481009945777964181531634296306624613072639559786858966641464406686885972922093998503948123441916923763067407348285942810821063622492359700559821910774197540335224838092879278745015701212698102651358583379292368948825507752091522244435225919329314085492694852185233974290582300100223005451420129653178123419969315917723775379194697676748904113901662298476332910095138159025888905386881501531830057968633278806320837663304702018292711541552141712655825158951334216657842451258582178895611805478731337992936216611467344141381238581705494538628033775131649740863874098580311905940174565532863426079377257221541164921601140655776812603714765889264402741120128826536989096062537524829342189093161698477412519275364859854293384034230091972453456556650604838400121248596716317086240430424962939997577898992618398940784669819694692157453309634697240173889097183214678864571264406738465017800481538680749701087179319892829047078300576597108424905673581084997956657838085566538500722153836103956458410608112340034769293848221180931385544703797622593641437703323541554561152314902922072623516835428232133281162830133739210086409135272811743370201665563466324282651170883034108776862935670064095539022922786871112404673931497303343444820440732760235104092922832828365049231119396964103860277882448126304057962693677845990005644640310352311375368780645358631312852048891933221236876083691281105275051077295029529657742034599068592680479953998079021146995350828941631407454671327874971586931004163785401900693080686184806749093507848622761718804541536505904862072516252350437559321446400665532170604717211089555267098835834076156277265536992083185004023675461481591872162117525138651094241725078157887152796972329625229930159936999780387801278182331258091083492491372328882839209139174236524408013135105653452702132552556139129553836926068703174405627949667245178476050597887465250978362946144586391019713236111618631806261316345902939075660784011976423423949254935377561317515233338072972699794923691880180896455580402011149977822924899304225903670513831870662520880016406386605064568105279902514942611072987733864167354619565289720605308560860663672915569931953324978613373572020575809533514186465176283667229512850373761946236629920968008704899200406116061936902645613496065982638530492505256371700513507818668383254081101655291534316400481034815814273487835352911983462441641784596539988812001708441173837212142972243659157824145154029601247271707506365766856618767605235373145528296762412194165830883154874964581131230805113151199341544984383220551792235068042757071638313468562229600058011732936813698597097325230220893741795350860635424336111814419195672977909902909542053198939632049499970578310923979485309975256800062958854696867961130556134922558486431496843475534423203150662134707698096824220518198877055578632413979337400682825769975076987150641661793391188569587328436155010053370918552822588803873714077074254454943308657578233557870893420252696581976887995361995464103727552012151716274679173169283466643513111933898532047816415556020244878535740196481348466176063440594316151261136941255739996088711521987252471329693315076684526165979840054465109693823206127681049085470673703439360897548249229129142405302769752085398500216261115236633289282158571093647552108126579624888454624579825946890386760856264500575822922917655354715330547916703975767561452388042862458387411101320589173121139290393434006436467867288224540122965206989938551992134873320930725416809233134318283366221413175327182714424356648028868341204874422038872166638545034696593489172227179535389095198249450776604057178769077524119430561752338670239030097430932176788648901503051863157460019145031319714900638890785924825486245218093894316790364326368477125424458514130140217276547414656688544128780102714061877594734972288589424700667913357374371437611717016489829784179161953326051119164137181110037217781077003744739512349428277861687626662090303214223357274862052452859266086562948422779236471116185898221003880693269681462738322466855200404011758293079867922151658846979859637948042713405985311537771829300598309802548779280051533789451759740371988428370443674989508108087112332955702618582137283191504941709627809074051916977532722956719925212055856678463772982981337741024068997591868678695508346168208425786492529555668146870756603063549837468867704781756280385004670038890208241471947989458228900232641829769412674389694342959734931723252114067549803871325963801684036554500307740871032581022276903563547123301296166142853788059511409795660852309734630588363710646458086124846440261421558481760289253114560951158347747333001752997999653089699618745510265451175936608422016170897132249013412433048722127456200592423348582799014758516523945521236557449067373851311284565098171607549728885174875808185969745591668222798625624743388466001178421799213092727035782494531821009785274942953949027668235869929572184313843373034706150402556618952876701691825168382969051772340152776678033738422564436632895513087608891684689155878095380658680808707129952865368947836808972926806036140467672084583169151045806207500681814128851149229171418699219009913754661245895412928234315584499147274693316142366595129388531350123483486133248436348035312526711851613259746680875954870069794745193433249511202979045198267123198780520089893018193106139478336955139405510288534379540069910213938774440749539047022506001623509712494865842444298371525166977278668488747316247507980120969909111033749914531871719560032897181632549728400148728169765077993038340758213500906680081586872390255962665377935620157200713848061348411363609893342142833377940143655599277102962155143000659286803082759919373975175370339545064167256344768767293217080324680334397256459116712407003221147829611182521085436810149847086398103169475621819697960119754839526108026375349234790963277106777346609905870984053091723043622645626076777317164163067879182078875998316468308347326519778981833661983384335388218791181649864995221170405944753881022533010402717361570699925377766426662729661381444724793946630566210772401951983713984391446860085222747640047381121091997637899873202664721418783589638202248737991448179628561316061688252761737194996492840216753779632772779323875230520862295802651310119928842183308947436463286752970184439040928765309773660992950676567395101271320467352458423337786683688911632585828703011226532882543044211006301626736724314042786826238449837075147597189476429531720727790379885956711943014322634307968296462682101729336087108616655130246168326458477985271989295257117967249790759791450104553091734692719083710096513247606605982842376339861460120375507779318737705955592118165284541255776372331600433532088163463353227123882736766165564170237004420643270961008597515006396413716339103810829312548085470483373492826538817471123930262238161382931753463346374433686688622661200542507376709494110713965178140005212149841636419972416102824539385941429916076434703928718660737225541089898098448323678649467313194446887029110619536543267662337323001818855715659306578379720304213481098862107037878996403677686791218291523908629998655356251343902235849106044764687060344871952349554937553065296625576377412546758043466443698731403773795085635494105219537453677905212099632731615658542569900494141177685471080110529597305958230867702642173016986427242858628579723295735287125131659252465182962834057051012214607543592967434013295954441347873158290890097593544901906450073250231162655415711202046098515915706866687183379517930789801424693738317771869779188349624590190426225535513230431222380544274235988376785636509079275236610800546816452562982900813876696971637307080812203798209271066762647734252846123019744192797686765159261916776454593948194608547725891658706107590167676979870901161389450296263809027025680137987503507715329269570555276132375287954123470660903069291602057702463657016055181946769567206746876103677353520509120211583238460081242182562102021082954239001328423944718951740790044531653269811420290054335451187870549093203704557052485028553765677692184752503455044761139585278614529720700103785633920524314604644193817667354922182321386333175259969737306849543150500479050028414148587505132601368238331325775076466500067259611101500201442606250691710625302545823428115359253996072235382133386347289422226172875516802196296146016779916789394585265050602041014787906030311934260722604073511960416338597469788094214047344962923446671710903377580151548244637508513899852030544859687467934300688317729514317243493219361711410789558494552761690862228206904481024921978593001448273262956247224855883756125375226302295274783227685568572207840639725127128022096928446133652099473294252077489461713048489919852475434616188684895817684650643590841776278274416184602298860472189766461795778573137412026736706800448369142615109631111605487162762693435230951725534148522116361517259315381986859192035858843050084615626973315548438233214942443777411724439918716582016161617001305853243032510476713144398203390447921367694051637759333755951457719515885421572351307899574245456721285016268100907807289923976850112251563749207080132455079143216725079194428749921713337525445485491472223040961909194646349432964134563429464859883905332627215494014056556245529747313983976874164744838720546207841913848711566153145061296078334547215349299379202346617038829190456523210397138483536269673518473259121870517732665082703781415838658474262206832814426512755036975980816085737655211514219159371784302590829620734387831383432628155824243877200845914156590904251722510183745397506942758623162164017266348015611684345875515151989710116796052542357669133997233166575325445811633269352326375663167415604411108941700287777076767175862278979507147389960338558699600039267316161960477007535959615379755407354774213172897455973094034936920352096195833204798916041657748625533081290443676984022366027698552111744185149564209831061346660868699512946089097822338783080432130425891072711459679667299932628416187236794655111737297417799150514350929127451151162838741349310366428493028416785526508074122878807434394170963721074512584851878638656647977853908509189748872295378053139302113577342650878909593938614437580812723359922156723846789241867629252063564254902132426877777590271326197578702817187933927956994341608400489980866105155855529841225157667440023437677118438171927866151087832585021513270522354473696315128115627017964138401149196281599380004138166456329282978630797837628145539888689873233406292508639426467723416598808465964654645180671710669915470999886774065250549362048330684565927641041058251543885292081028037786072496583932740992839168579059029474780851178998630717864203601310927206797896324447494052818024747532461266295734410497426279984857438440453123900762534807281509995035271200033862652652847680116783765866328960412906034717746404068774004391038468075257632658593476731283633945926518852793917626799974488442873560192119874021145285836146866430150824364427100930172764248378642570834925541926619610043654108194144146206993805530096656878479651711063818307571195378211946475128799663234050510459887006878386212269047839345464746119723403042277480984428742926548549750478378569478068944842924905980054883479087083018103870638233826733971820739227893261949664316211971596457431243894485484038605728152899192495197034932335525281026225836764675792126898809101799265630389656765149379322670981661246106450981243446780494336727600216853620529688746303011940736283187514909084785137325971481646562898340615690975748044025234762432563379417482620914199169643007146720898696501685712155668300781843033381658276672056930887369959023794765062998585674113743273991930530974860582590789416023506631259071540613387015582165428554815825001942194260473864839743708854279419006808058149947236205799032175665119656212288232579991875355703579216525585321199083907742845665421748861490874072370637032692285035713886303696747114481020427029523056456370623680631162996812163361039584389426043953821760798604541973135584659621470828128663861374149241287637550006628096404267409382893611661624428900854331962773114442621367662579435343133221201105028151136262064275312253605327622265697670263046349116012129473852821965587923565915048880114685512935877443818537255302113253033117981785142789087858477408106315543074820338561202399094020710926145506217761915116655609856817012198025951841263275544112344650018079227889736060948424888287465238312120126025351231995665344526248117609493579821955240835614007968165457512602375150380461395969984448149537048808423297060669544113228947787898720967979313486691963799172014222758870486416460616646198677822729869365787081585194395220422903644445727675759484837250906440293561267484111676218335923033392588796133089122160770798875869442504428730562948024683860038834388931798600439175808461199547802272826938633091743645801840462818404787356564555622669458347205453889959885708769593793279212474905463040971805657244282946502407936330400345472933907144276923603425065173665017086871501729687155089201751963935860427712217262160537050221584211055910167083498688675419147545557339867867095044632280183891930776346741216580970437107835409997103406312281741754265248295410279684346325260256022955677041617148069514993146339544669282410989058695514609559282899945574252323205225271206769610874967419898035427003953786802354721564515609493608404478511944430657672313727989003992328063441473907937885922402049065076690878082126032101311528690677428365134476863545826795323590613262077676917601554795631203595920000161073478757305001341127614108405550207019282632228005335248804273377524406223593922344857745516994878388992044406356866457186370030892428856608977350292318279772364769530358569800127244790568891708458385074333216737512337847843103285402777511974955203818786078773480971099162714460814032621489134864734228727676037494248416765301815978423469296717483525962964825814079669220135345546594997354272209526569457152743289136655790042018228653922515007416844921003708373309449462261012749221218768530050664507867341771822333978397241708280433283653632806374957441131213093426951298523770731384981144459611414419253358649855122262109802776650678139890816013921167326575027134691376618206168231483371876117642042387957637626656936149371195655313330111940397005964619436967606222679052605676363163127799501638828621262168081230530211755628420366013251219578231495944846572471588684292357231845382650038155292939719495773757917870655350451050744593802311030888065241388039462989370210402266057044913802304440531949517726625197576368416388418407711213437208958598295473433252755936130375508685589626007678442880178666262473339819847035074325370811955316534610298093018777581530885447253076088340743905230215641666030587867943268181874709207377610770082743073655295131967743813801554001140330430487807746788386197805032117470950273088383277943985334460508500165831791175501610810142978029183135065113185292716160342217400224513800152871874357639026954557102162534952343684484099496031594995391376560958102288606458056877280699383907099560509186660555662583272283557726973293833702004475639292626383704829108978743160445350639375772889086783926992320326097463287898301147345491963316749823057707327796448527916522489336621480404400985973847886014920516343316379925351663502218070631103642243989945512832470991988007883583604845784790390835886724265685894714897549488008444051525168545551779751338744231555906258714720395745151835045208797160260960375270657533770452052093335711434645747621836439033974714045353970175025888130521627198900658294516150696074481716118839323068715420903030540811747457217998075226528822187711194817537356868485660233225903221669228422866339719276273602813393926112819782137618476177926709255117764067754295393967811864025246325414674786413576995367867535791559810732063507099535024577597714063344160585092683808225469938973308487675015313699214783914417984377338444445027959680724121610135631669013086212078429897479938843472824032635974757024538557794637722459199503048162183569292130329034015981878955555237421862775502128544091891233960119264665921908064851506620602425562032895952118996823134564903454018530165121132466645529150558571735958891005457571754475636374067889124318178564191884217380614322658518191392074224805174326077430351892113059590685254261554892663146423465242914764166075625939002751233203834120200898244552451321599698379484098037075652583402509047560547781375416325562408966586564638211526439249874598427953070153957388593855192756892005361162023010412314684506319961656152595977733593791765245452904164610232987450069247739443217537727653000911919459971661970416434649781974353970257385601123708209880029511136392247581388564525425811593441721660610008495743341932548922789273630393141659798725040647024245116078301271705983721513319775533739649090063077429056703003882822246137067734145396699730412302034484844607125388947955342687276378096376742583948201198067722727094692848284590224181095318161246942292687006932976624551073706621348208217232725219148470903575130765956853821673353309717269479795035771111762554417226703079911661874488105274384052037422785954057406523018313250075540959109730463742907041026282211037902848921370526264886467759276173085965900032850564426954811577674684344251035400419887464694056830022289928715966182201900781188151786457828311548373240743374615405024701092044276323457151103214898939075525349961684325359237542613314027113052026216656943217627285378336223246471339095618227568560346845668901383661054459815206329116081877981704677904951024817485469482835629821209292099794769121577026900787573156913765994674513017042305244916148124729627635692728137516993311300914360202144628835548188535205361989223462873526639621585136478090746647335634952480202220777556807698228970176809810439167911191128004239000896667646691909101009229929066243831597431079740574474840525073780900830208340979222853660666814514500834599156513483120074017224883316185403911728940897166325594436274822632547201296373656568676937962025115628894660026345073353752202547789134862231241650824155106866606234933929215829865774067200681351729623082982100768000463897424485500196083918391631106159647984495359714418611025261095432216277579758073654429002104403244674041405237760047187404672779753999973730014077059576909158336692798252178629525693530738608559953410971884086754170989164285222357549794725922509174882486081933855377671076449173103876343522462866170441747341480662645467371929497333302604794960893299628461168619597890139422245136489893739454745636197146694387709772317241908962492447616755392937072172319928293913760553172554410150201499961550040105002003461435364057190737698143741576584993715756965929226084113283093653822384063316103250983796565175469530047525025612597712573596421927830894785248107251643558112998547084004569094416077501385693222150611189968019298809635422375070158658143304701223391942013116696789997395544137777012265923535935190369446952894939912916123382781483144692364713959106272945632596605861480776083369318882569522653875277683638031956992495747068523365992363718029279492990036962222689567909213395856979611073855027608607935927379887668582669632038982068061556831336572049717909271869507390464593629764721265614334708380080164938592516566767906162680154282860673644103489195392326102449629010473806722063572747857792606137690245976942905031862609212251677295512786943227218024121464397218137597384771667369752337222494330024452901799595337601797077942340444957064432780881445077584113579271646032619649987960997619425379978706413929035140788586502216327171595270214646672705626620855990996227536752592953148606650358577336196368414024281790665040655715770968017525187618845230674222764185223652870771520309841927196762959917014194385922822259319870002293451061503940222654474332727105350491736680321824721005171066706443974068267146795542909873846545366384164250860069571178142185338954696534034249806714845644986833715011529337576026494386630028200855225818116828989938489140716705866428406790108741732812087285949266399346026264198693822066408399063991764177410638945950972187551592745574890816784177606274195189416187215763982793746454685575093606957150013346215354927037837294728743465447057394087362774983572646423139324151989686580639447952578657133403233527667761189352283668866247707954965499275974330960487318777879297191064194249659880776934147872519937527435696121159969307261325638894618570083724658851267262038566030051216682382472216347740964287304240094596720533260305452376608759203372912577136279413212383252096858198267900299544402603574591773138046086770033704100096083265197266922953363522805285303100563012961134107486446758428346484015831895833347132267642040335236155968968997288521422581390483529924101525829189717855237802181239350144436879650820004338526770120034420429825280074068683666572402033872624078344454136275066897557021042354174647976146088694807402701392271859267416965714005103243090701045386602105296141149624836649461208096887241390476588531140370842146473243391099677014749500705047942282497861563510526262468677264482466516788497558695158021280282327848543754791367124262699238276099373086124948223129783053605850660745942334052802520987291421038797985614515987711698635651872689234939939906197762947650073149635610075592758573438882962444100884519774693701855956080163399378504686534569801574807858701976723884729395946342910956720266599618290433707719751485829556528510289715804758003924832339052311759236509294309972858333270444453071272145234607707631683887569244444439483316680472797189443842172612811339877105378345028099292249117543012576828305208465537492402364014425250818684642644852431858597903857793617836761344406356712885629537456042934779204780742529889323506541099297228809128904040829747680490769412160043999044390442185793707895437328668889262239206708226197113737817268495479345250896358962272157225990360791964397126157763266220872567101386257335732629594346017991323503975569942470474032669516964021734711068843618977128898685437925158159038232916639878100848293951505389516225735817719920553165155741886350324737143052627577086332455402565132112013731250389576265258387780670999710773955518542199254792215808669397112369158126425406101336064392316603816077909778315749110844773686072284616915525044826920550794987935036022263052739035328285005176131300398221241789932239134922898905724036822748466708233521758312400973240853188012730850538486259356903318399503980095943539978863705353764200094397752367905858943762910047454678568393875863683133329410386365205969351588818834948972408238552718380444501666085941225870980449774859527512537532419985592737820026554225709099628002114060387778499539904170128476377216441677368342406591824889516473729052307985634574434339633552644141897173728281739394258735874286117320687253369125266094842716424811007410184038110793632591966936430210540565632171814681579853938359054045807984190945347604953662063716558047643689858194133491362230416384634664526644200824935829358024041469166014417152668514749784328102968575089009214276517348388198772988221797259683783826142326073014589415660436481790548674468034510229492081913426938371809102396459732533146475721041676889428071636992035614967286602939479087832297129794498597431459377481371525492644706970543799032180155758703702289575908838893583069876122326676200811060765651884998785264957195093586933836621928777820624955558773864536422111749387322328583573596784646802263544715726714229915027106974523370856560306906501367798996769459684882217720096690690559236139658223486519436905220059389458872426819990847331146798402020576054930971307639332998727313705967297545466236863241774812719688916522001951198119176500257397727559144234016778367286247116314064331057283208628853306276781315952664327229470278978381576113074282883366162793996357475881916243014404216960950606806786618052811078609839875037821568906022591397840601185051841732738367504436632650580974648355543566248727537512564603633418884558676468704031922249221586863103058289620797780102729073019773230546632467114282168598527204961424675234210785225435448498042414453615836057216559752830432537319926510710442647807026664932093926769758283601439484803980711409807519224863064391928682056408218711601244020269209019741129342548554190988495251218023101240760748314878534722814864207813327831541365152353167236066031638889964852478569460040364807490187586244744027459450221895535546429760940207070500745148272524136747543941437059437812836197219407597276264552964711119275169453288095593356120690614649051497570346983783731939673413104966135828781061575897554980680813076586437931671575439443120001528952262304671025337290467443354397515518345925703888625997090907770843044597064197316222279362399250537357733008280769004224076356116409048408434916272971969690288390630663199955193252133675493692678916749914041779623721571611586887805169692249673933424011671480801224588601060931140115304846579817455772221178937630920241308399921135225969110204611172010014516786391102802090452798282085296530979918981264031470305676318015281290766613043927852237106425211668591166592219151323440722929838461154246754024265415226950142164685838333207356095078764881395082746085383633714715827565035615515808069423030338066275879834560569919537878544877707915955336672493658043043057381728556014414111821978208308559605029746324989013411146369084594617506369858051487650399910178981769496121036625949843640301905719192721873732720304410910797692054266576140512120361410311584918998571126820999625196899828729073856523280913025586196164167437202097274004247667460538995408682577439647990680673636583215216570478399496133070336592195696184640856427234256769698478158177701699299748616644400500139875528346530397615110599988396305511749115445264779877394835759527906337867634420302579025434729633683112817431702531379384360401928879675386130318860405432684814538063721642207659054616276238200233601779522635941410884751473982004303698707561108072067680879553325346173421070813866535321834705908279799248616062326475955776420001655892235786628713967797490466148862207282649197438159314836328793889505870958942720147993589983309607500141907132848046013612333805120396308104362547954761862531772082687798696298455953894902156468698927212581254570392277727054495061936411021923398495463528337257461185666931441695285795632312047701448591928174286970229516827844374108593550369166613495903432248207734545332228684815917619793024125325608720553377270088669950305079295462611896945791206306443591043919108110451208143174228004162170270115933060897940123854176710390880474183560473866752689911152867915013303183782048064505759206267421324693697490353383087723530315885543078934669727255395529945598926471556310229806728458879708045333899854809021365729697538978973053219090903401710023028614360818219705811571448539574786614936829571008287955212628574899331318496024001404150599901672861351219692857009289697342483082548983565471556363600003894641359529991096779235280244670118076501148879998368920352943506888425872636020620333494216211138223582542008649870511436747327258366172128735845227133711326641718105227098833893324040148613586650441498697318957350820277212136662028144466341814100587481900161974199483178726445190422600286027938826909559884238160720453521400680638043054543523151815088577975126542398976328573113290663165641509508296800555801477370466305757908325878863744463766240108665137297256145974510072349703850386355073101135966549606477579638837877617937311115907617205256288628146407776309411978444103634760287340892346070807787164590541125332728806250840409757638650055780611183824510264275424344368228269084825379128905818675625323826128093311458497691444093397011869281899953659040951800790433969768300912345118411249594918759288921860648346291826149222309883693086137530239685192612654642313953991576700690986125124682129168958407570101706457100953788638683717187320072292565708144500496066127676464289986717654880988698747048949031416801299407337864771641447298796383763599316768076634436226139924627043748131996014129350548676747746197843655204744316052698566932905264945031691786918248621402363580910028242164934719820335076731274382783993441074548893550771465011191485013293099795328951394707341249554340194865385999212645026112885409637513824243715622066181165755093151369449085005082781634540144659926811932540458674102304623366200886021352919108691174376414104676916375697620449834974768087972019453700847189327271133626011192946479216579096895816357556052111085475338087444404293014532219353812650767710651030875001339113734929132255302036319288666933905721292550930583461847131689320414142816921519942025778829468187510042440791728534327528286679555158991417986950487009096069193409842864066696763080365832332430679242804140513283889860009814525753655761557385810947955445676195815575061574485923602018163828552351380629654945191261944180423864656780951822317826860278054710003310092017797796676868219990442811178508452085991999473471319055529555804292601813094451862557794392558909218876426716275240700224020637878582309885999915537272112910527433566563228776542541744721531908721258428845652333005972308256416457261586997880095126650671742444898347362958439969238540788310525906590237457368119471643405971398801610415482978893048630459328823165059239613639916937674909854352382422603845253726012412618444161385421621942605035625624971119773535387336034888407205143465043469113739152114181281599810025648186763597904203154329927429829610105257946225874516356408477093481073929654446849033390490376375258570427288798380093196199006253249405171868837100314209152451320229267535284391761055376870839805810163661050630661382635137144163863429847606493100767590186316229069311868706963634730116869735391430985014415802780624724235901982091596401320985372957366798113086376195867326922177933261585807622966345747486895694508994070341828017995396033567767554673292643870771727059034228147498952001638153407239966068996573740377084529242113235269168934701884939158520601706547315319161080715744752283015823539338048170358333901018356582054669467553740231841982348662954876275420963928189679909248790655283762749019962591978915506021273525608163959519172047665262110968594863972148007043256954270471515084591071546381953853270755167283008723006169912284510805634969196588264985712423082659485239788695892741941346930820572343608451869370261438071427716469363243992645709692755637640789074443565731836560053035848641517227988362441527495855459981667276182271265399904603074410815881383269729940136989382037910343766477627386635248335956198787712223967400903887109061939445446979962682443284532381331716179421565953225044930471901025727134310645077441286408307142532488073183295686741094830462615623813945888395016663376804964982744541751089208611789953600123065192996198001594134913733573766877471222863635254062638369596723360160038705852987533111173800418513747830165867520511772801921104987060546263267686287214703933614615903886167842504584169965675578338208662486353902163905755568075767251411052483529699580231178437300405548214567934834291924315656306027957860302022943172516954932843599258145944985257061689908786788753800774239182487633559994439665555335995479733935732846510607475642171358595465414162033130733563761153185299955694720722893444327723692880236629014956625060659905354528369441055662055022445004961839630236405155523892683135121942395557239448236136190937322109515203700074360992835313358407947968836760698972393680911232210072525930089785782115111901732163456097170824764153032168256696016390017787502472219260774192032423667799363786890331651866847184988375745842228264852141592891491944809413261172353963065485267224905488003081225707458362332441223434234573704089895609937940246129694921950929010735220483039275184892071354747599135729630204527359042459123271986247922783833904601484783318634963377261677301806169810568362263509485662976883588423386099598280602473943002191713746816868121964029062910291573266071101941397646564903687136978509835681211507219372444957722811934542436611050499005841161223942109510435804109068743277707528251525009631275395169941772858687507655224595332702681840012657956483394682618892125626239375285246857784284432138382561598525970450808653839093114578681802324003355241878128450841359480520653111703387220315732564820206227907694392542607709472692235894677360577393308655792355355875663136372951467834015396577635925025724447053765769064920865855431595917864788433684584919025658041213923695961496657612849424130681579983952958438104989760634940025511992624032261369495889236143202932965267091408079196635896811537001870996507696156447152261602105443700022539039983907725999367876853972016535582986882211690659153078451979348355765418391263426323801539686344327191633751907484982255379452770577389728043244908709350293033949349397930098237498100461749416941988986298514199831133404052676000684846171902252326789087598444517940002973608461292627156511414177075598723065327422677715531860836863366530810179251846492705862703816483160540983200008767657670917893540699299629911838252739009184864447623210811752150892032649001400242648765365781250985233975330787630078413910562166067377830435650335521665247011944847630130134376291266462253360247199618038292467934988480747734857164138830849214590229139130765933816774556969293039800035486220589876631720651436538904351871816987677095223163136611265482995634238423932453054548225281101167340194105679289710741856064878276703557942557524932649382344533619251738757830649259029933361351815850721603974056363153180111549912798255184983507432146590516112158270406510963661255035974529810421360892798162053524320637549186485823829421160950977509639832439242489413509691378270769117518794521187525092393352122699579035527191219499630467321935130871713357648268668804725764064013339796008073339696738227789782158944971148446511875968671572021475538108907707491778389508574424266559109232632306992297776644562172734203326824978793567346682043871936611129522829245086010185110198380817379276912182941512972373701788183377251658195987391761759056865091707563082056663339557637144991697900945762584225053650188252925848194667603305028942789859709866410210913217060874092291195569131252369891537486759251628043787106485232045240079331642888951788878225973975498566310967125157575730072344770163291820001717082397639030175385925697841584883575547529546510684555199065478882775845755555420244697981073331309073318596576453062000401291467351137342081945978343939484752253024710239324850019208114842634018520468683542828509807043651488478747664239764071395895210266247705363895225163278387690608623771673843038270026458893556828203667503418425515542287442609321178162964828028242842244636306001196593233594055177335457088525693714684907967157540746694301787569932906333340373002437870540723269536735555378766218849213089977336048942469058218865233608013096528794857938204825635104177120271040383338319170261597977636650381101608269846553311320867391299547152547911611015445774424991698298212974175248662310482975709831587098930876214559158990929404672118889504408057475551374702346025678644339045906604201561718997979100655880152115845005513546990787717866336922656636587276234806715869113678690508740415986133585149913000264467881889671035206701475876024835519973280339549090481028000219999681286565162737781412533117720922260162486816487308181866842476803983238410697231008439788018282115312614951324748732890906740821785238373286639850718310517410725068171224903417853395331491088405094208923362624160351993054711039566006531931257924558960657496528231573125579233352946857779455095678382948923007742578995206734364108904983048638174881703380788590144547178490199606370578790587796924295791401861258451214235977700698693495052470733162892930724649530434740201552405485859498978241959781126486895619497735071479065096284673111572797196784682343657707201071815246179220096016849756247803692547456528474883154974377680308953138186770024931988728176349819722028990914541227580642814237323933501123776338622883538642099081299665422275174710057398196373867506249200708493138851865204813061037557873101149756183732611825253406193530431717874698894565721008436513555370061825594987830121364509413228383275253772780016591666676824486155697243049513174079032147662102840191616351600002640503265064542209489355138823436920263029672067982372313902979726979916177055960832709911785227768262378941489369078233949253259991433678756318363403785580221983021100409550021205245841009835926387480231638582805358009832130138960109209065704099913471407217223363788914501331794528620141452094694115312278084788260549165895629855977709187636787743136730529893672585549006001751665620054706911229094942607306702961463806322911348273598250768226086597015373059219019250191969184011156336881615017837810327763472578633136956835628190880602596813724327523391528595252808515639358944971514881735069390794526204429858184025422283728172512128875175567032611104365236897142755603793492184098511853703975211307780199476082366975025051681341676919461221590731818544390980225441920151329403383560520595161652033049741555421874322328380649741738989391856262015109388030979225237082345508086972217375274676476985190515728035434532501859629546332847716869064032424245197671853769052063018114701260893019547475329132966108925600535846539695677247580624628232291177472277968510655328729639856870523495457332764714680872144016363852183462475224630214690324890358519458114158536646256807415877888625591281625567002624347011480658111491152736340242490270121103570697628417695578800801740819556703143308349473091993898028085730165998023321552720744844097362980884911194446764543271730013015338262787587230452604796475311485911328283214043368731161659529982276641044016142340567696472607690628727071052095086941922870607878038054307510099774828473295499803974677743353390324044974419987843555680563848053708734633483422027002251193861199578992045322133723694551265929856603186169615994099683414390702439143641731835589124156465207010010901653722095582610840364324851827048861599162700809772821468279557123408538703921691532519165245405085784557131001206107044852683268044127133322041392735906300035093238707330282164837689406663058179407055589609505675244209635004378634828437102530849976374245279927100247141990525522312157023148975290794156827177122454871580214667616641420534553362401143631767323661142222085911390964732820884424281577394649042082016770882004017160141308680227923999225457635592621805497382802330916791761664785636556801159438651223937752393989188648108697754675347703007314566816748797364491468361385927158252100029794559953527708173632956919117208224982806221622562326375804997061192176156961535673821957704651101216182867070371507938627375597115531492442671606039819185414961523401674652164183758145867883783692284724777407595358996244157332012891542436970339116919078095463758640467789048136978979535111606217802264439474501116913382598183787774488685906419286719244969389898353110921444325033443090916104600674620877237978852080786585699001189340289088747740891071269406440169475652821402061640379511623596945846864760036850861244626439087511694965174568404731810870527210207985821161476558112405477185930148223368718800645142161617107184250367455110995735212918307200624029418133683703087999405863557471291487834558641533101527814571649906191540751561036366643438386969357183761363677283452318058342887129489509337746996147077026036559130417341953911801424694954129896219064670548351285887375902441503566790667676893491035583112722143604427720379071481572626197328784452641546031897402167936663848375368873265529368198292068248551533995937015714696627390517713040420890131356040634001336944100717186985951949535182266997463537144102935378087799829449253833326582744490162473303176831454692740501015878139824341746154022096899290307417583303881697513431503545432630743362531366438712796628700118299520605846428488035823117455460716847341862954701481757368386773401472779750747719726935993560390399355383633703360202370315913714855430158482161910629775125478652678447860649145038939268418480419642360016416208193968202313729350395253926042733032924468972030735477938482132680114364931118656659214086463678184297212012333673853771910203404135959585728714325716571214368149848082154373640578262344252572840317586689121364138151096180359822274593704148437147726377209656663367698637785534025071693909790575935403809205280809544643973099798618333258712689816814036285299752219334882453677251615590269857146413261040672086196502254661201937670935895223743157850700877871921994347530448691487791064089636064944777309445190798468883358743318061564525514356151869815020694899402975540324663331764035709224676354566465184965141208299068502610139126783653648160511608782158919792557181238302833121791555628918559035770366590953925473060435592296410565566307146401695767739331067471283701363631873018763670565865806484659839557343981073156566188381174316081845682695689925433626859009871217133663438845265661692914943955857197603167177069157795337065288746112669159885334084223222288568857547550428279934218324230694556099580623308993283243570273771091194700715378497818934200353195243728678100237546128444756484611046811788701462899062255156047911398089343775553679103473376518841214737215619250841076595063460599696307223078754235422376076760635941689269511786633218919054216847839699421203677140786079245040215703886795458365721652186259982732716502039898594305657211890780757482028113039935974625313422483383058155311203068130333906508934172085194366293889889242190822732002721410261423323076456545444465256586215913134638257659543292875137672488515130858736612652251129810797088248920548024012186740819457649951243218409771958997697908464901323271859417378177253945706969779258087979857595605857435403835277235307122115961164486845022593051194714020598920834918288521806798218851929039852297758775103531959551021080636480743413068955773117105001867555409380648210250395275883396833250061581716466702673968512991128531106887576284432675419678733933583739209513418295760718445652534948395452720010165393433016254087626771191067565551643891867410676536903791474528732145434917398585238821927921850128628608989256952232336279906501632471032687828829514684223648422933426380464442923191552305203512885432655270983484606576578006618132825947442243946973867382367546957269963429672943502833401139523990656096590124465895477313605764606711032627047247347925944223563077013297937517041966362369477133214487988471415714015598769799367523000266626129139066528351037587013014431882711580590146051847283581626546532332933091212475889357882733071229901762028292945673973934284306542798393472007043893995779262025023307423927000835656171334381368386244775825158926592989134483442569767348943624469645851569539937689387698470892858664207876881883126372547597826671694099258198143280033078991298824666841990576595545458122745554063158075071455873320367874835932772798710608767226581079350597011551496194649720560358115716805488786589108979273424216823146625634962112293608127408583169075552266225596646287385224709727868783787744592784102313772241416631775480402747174041423239604530948593069425814291556705632367078745558325198025721149263510002347014930830581181282447584666143192121630879258870369176158970522559835133446678609733286845744816762203784362774669477036494212607891610111111966534405786422889674542418716088110056920020962745025966418667734208073768186781420056968601111545403488514832830803479993474524121461283552544004231241597965680113346396635579764707048896998279508318130122533406285655452077199366614613059062264027193262207654080587344049810209714542739484198429566394240151411734427451297500214095534068827239266477489293097567278068187053954004524530426915071732787581151647297781347585526266098474442360995103649833179468464609866919337565147186481281614626209027894015076848080639337880492355052182969430255814640247402154414676602722334176289359227253810211244450825379388296395256933042146042389720316901077680539040013329088016313842801792009816931088358684237808548156893114236280066858786526633670882552211408057355701202902921067169221520008845383069829507915792957770914454286073127610764963410912497030994522907212218103700407533641876399851221793797119638852625312296546803271878208627980339143899054622567381361834844547230230971704941821851048634984597905538047179225022875421429567884689681877428560128223003414183250058506861762083118360736263495082649220393303500415171048711270732676547879007259302326828590033882270174946920652262957956525946745091660623571514480672382083730697671703494212679614209121841055030031471338771636296957039747966429782216077296121175975481399992197000887016193534884351442195341294506742130297493912827853763876906824528007226346493636408469925155472434348750238016284463611673824583600338849201214855484559417971313534177443865876107563338033970368574388566872886569045856060939755465334895897762706802464335029807494225798919346490411361756669060047511411218598533084011458027533661269440787256189945851718434740435696757206155605947360404122454116779812439651443871282567636646050770689930294318597221224844397624139916647017968637419889298353491364254838089817663943328764922301183026960290874175944667342125398463108434710015979521172252567445465005886811249683959957998787750813490754065624717364193593029428006192717657530071978255944728484607933093636440245886549377885021701021906208684945734508171785412595489528350504421529481272999135407895181250253497675617770516044458806364899907205525673356568407473032859678563220292520652431191605520150270057764293918382202443984825167667017641101720569196223314734535598670235490077834164146598472003130367068098988570438810742201088915624693236491438090666344816841716084639106003791855537297912873926175688305813310476266533373356520631720841073560775448194369441987693416108827584578315907372515428658001356580418435192496943236799542487348009455028032793221799459083407727583634990989797258650340312134476012703618822069231482098432420140780678063536683977267218071828603037531337946366175380016400048025471483745927689143597295215451604926865508983050447663308383578927806763623470787232339142221992689273575074918834938295876406950770860274488340449436657176850510439735431628129882665443715472742446750915880350895852393795262307425924044288844334502230154015077465181675779953831427262219160738732831424572445516089703676514593496774491888568085092358787674896769755090829717467419921593382819834912692918034832653957729521017383797513576049578172501332392467397157146537297376437093510283033764655174541370513738512216200044666054120932907589400177910766479606890859318134105641248193712901812148164924868033845632883513386199683048890474040663323554257306071017227169370047128445116031907823344258676080700009189845754593923403967457992000427450349449238700281619207214078905415689058113740958816956319228122363581559362395997125177325865080041807247254437690347977161433541529575524262300024639195880814769554630921788700431346645572725306065096071134913554000889619787767969311666768106902773765332025928640311737632006277805517002180485301650959818333525934408841005604187367703726693683766989642868584647304580573218300982194518369668852438792150930715546640639101090698345325675488865321843086550167903696951089134105696142188780619895160085222918941673151933465751514887589432544074378788361685946046331309441130938822481884053877024592885211208911356771649808731712370519514865259227638752158892494950888666181926711158754746514664185067353744695940427807487673068315066470331115083590982443302605929851929604137323584680386718581427895604715106928530783594551379537233220766768594113909682008824271710894894600938834672506417162440710190485823645639449441414700824109332857154540913037597413914100765680494206532897909368996667550066740681939236109363148507510984372778865281469104280011837938983404313418560477762356760979769764538475592973398653363099419840335356624704028620190340625436909119939130853212580551699753191815229870858668420936287554974747351108387909824623780940081610519230395123931430732759800076578075778337840842223921111882970941849419206734077572058441006066650751854330110498716285035233671748061974780978958788605752983753033984484854784958028760545703458512807671849254018174541822597824126002932995897916996553631699516093280418187664935423477778608511990011359323813361022835207406380896554692701099033540253183936202690903517697599094344989508906531065534061524595429094112454801250700304960308161541114347200620008231579411491827560368892955392815368998435012588154310522019205154779709163226026620731433044642185102696231972178981067015219045346593086730357566974192991255937559968662072210822246455516387135354060207512423352415423232722151215537202086891303093990164360942567311186602952061291408451777607436024574625150621117006460641527336357017055543183134427672028338366954477428093093482157154097842529091881671289092960419593516086493168111579316917155410347512188798917644151936556193165960014211601341247858471215042617445185134875775803792121225845802445429299797808895692267983089974384520396105550457803944137865691623582356729994369506612827566127820502729760857143528141312297107401489854012498729378929409221336583034135259007548828796554723229539584872025841763281806898995300620309040828605856750892527051122302896131838235962317319345680228421928004639534353642774316894439242972307671258437004834721840380930301986612393185591237616832920667327468679414441422366950179289931738251926147288914054633027052715199541070963589666709741538113215966579923010539537839624272467474648303430244032593972082686598539043013239392808515820610185915413893012387752488746089002841339836289390518901882406063566593058548921948224772922381416565346661377953125062555413274023873439918465650669612358741523435895121864118895360756573052548012759167894737912279823188456887960856954246890250642468614870534592182689345562014237929718976302611195579179023914095596797352255200628536310283982078068063619191080207721364689505494945281585133350362672085458937822702729593817869963584841686120677137758795216390330273711260834814006629013869317499475260292677755350850555218809914308843600213800791862091121416614818483886820397787406021013485876035365035022954444681396005177814169911049370245701756452209332860248382825361427830530892687524246628778074866840779599586302575103561292111861101574762727491302598252320585460705466807215334560066914784278251643024012586909098908165049900477801077864383533734101893394522268986462876437535252374177837163191053061605427451901247546979111851404744064144154259604259546192385416901187131466682023187699896960166873775234195039357377201455643801930432205772353316325848462244837834834398408987213306403268139301847941445430835346470325022582597516146994607406277859527611731669141808076545703233654466167072223334281779451676109544472444492803305595061579096368434565834940850039585980480910173886678177705331344590209706927507686240913150079169700532563737596219257566583025359213403627421404120855366287907334165755992985419772690749058779037504599380228852188068251607722180084489242864542124755517626122015631237753434565624342073370987080871334541645233673297978805945652519007795729963090921898281361192522435959238825884061602825426105895192503445851769355893300703444944693117841209442328053420178497197729688316854732833386449552908143425158246319343162072986709798449503380043005914983987369569471578921455781723193174592245917541157545529511013682975114373974168633278712748542525229217993881185290932388099711115331688251172684930672470601517881994431035737905914389802528836025497594282906912582804647364629557223909703939918968714713665700528540355455915166446107394880741446775462077240088362397587813199644440091615113236971773454869656732073354691505665429909888794895884880000370378860141511212322592059028539385006451532099609640447940418972707078160159990297866865314317409526149875795779256365557570107373375572508181443351058395805803752593527629545475474223571902273173281881219508210039249378342460038283213167295705095817700779257465348173399786227648437381974544134368840425024018561764259300480438250191670414264432669730816176385803391002007206232746373468236346377102770303377793821442560265749981343068259751592874905394822206129517099971819434006930100123693844769645860223561705303748381272902449161979147365573187912315203549690544765105591949437706503479495935453579091430136283726685098224780641583571916350943690558183761452669410862522272377650184220660819284668135122340040288759984504958585674680963967337843874094414419357908505622138807945380778823671646567570601653157718367789980337699203358348648991294951526727419136230754420468545724192480848176149949461657610639998238529164206663996106576916842697479438158024532634506630598905213802409164859142181677892998455269291050024878575109946838605575994441594733586837211734092916798712963544388093757123340931963520291576268108753983779686418755206942047108039455482351746560739184388239915509510568295484723395780846076536629290815238677120593053317170649330903899770480474855065093176949875997518709193070376294930185724066237186205464825293349696270284271795489842370767818848256245517034258554436615345838186940177046800722294321068244230220447952636042257814179636460714452869295642868490014005763844451006562877292385351545670271003980575632605899362341672977031788816634130448925720531083697796068431678103741724099779766650689740038897629373603755289896563056339416429329313728211470832397652240060664804915676987520607315117644451458099498072865895624893164899257228994533434721219845253593834436650001886326529421857409372841584028250938177387056575819391800498256251138708838095998814159016843966533965798105208740779378541320605186738380510105736260292572579899966063459916012369635211642957779603078504722137752650632629840095002973348685389770253158169304872590542544229514721745026100039775372714637563459139283097032857862093820311147550561368129860346727415404791517904142408584758661617063997471647816775128429916297407323477401333368100935884921377082474909825385903186422282202635133201277752255551932410775730977713068714337740784339533802535308452123710334363272209863882887347501815132071798231288283926018379810510569992150489429856127704456846696241534707797459312457273519707876308318373668880668320923843864782619089995217562715231623291836357886836108342267939163678081364752256422997014862627972083877102645472544600812828828512705586673411248129704795970005038196446313945162315853839090211171071416601390321469597585441746163716137472035673204541811141474327030676559233606500836220377737980613640046235382946616300067781907380789429623195231532357029261355032874825203033509773795597717000191151583373876101964904283629167793866887860609883667367152301693116369119841808102169365884515753068087752020524720479700340432360035425561549991554513359224348869320464365173738542527151919709140476410021454553912871395867998337072860974530819927480643584475034824821403393283585141120318199546212452228487962176758446206178726694114798049846386944369859589835252211726511873300947340216604282288441431554171980385154787884061698398245255344917656837432423497560208741937613663666644305813934044902902005694893897946579476949471064614674083840540713022069148295116419362101651631785509797890025206127400805881615757310461643781321774389931770541755536350182707140454116070376354649942522381013946698711602077228334598185934518728931055906387077144265157293988289381663529464020609330563928042208830805817962439799617475030343455359529722987588659175073719321625748188707159711093571153416614896771703270693738491665529135401557480927384203148776021872507041080156147720286414455390583854227796470946249145560841427791560100876665030833284787016568085685896450031554549230767966382799282981427393131198136762229184785345136854860319053258748734084477984613254631819699746785204382894835043662257908158850637762238659562434709255643980278902191216015654014061008988994246737272343451948204791540217265767970522863067022879376601224600704298307789478919514826639199387885136973241060735226167464396485859776129442484214765105478783004234062405543798637807337505002086886668769560329881035021927550746712864655041651685415961112250893885613032906689169776793487100235044821473555735700303311211103696151935189916314917962583820513146966178722401537605040499331306511639746219310201341128178642135936704111390592381706797354211818352457979267548280006097541466059285575073780230944656082061704957486390986608954121398095034341905507935045483904223896158018650491883347324252733422626539036969593366075542757961235031947736780303473723589260597695414441645982251248316376947507049756879244906397477224469776682867333569279410569706228659780402723404420249294517230043925877429762811600395303978359896216853092190228061051895398595342897045293135207582884293903232609510349465252941864610648397337683031029775701616914802738760794356372488820317516240921280991205123680526428609915257843416089597360197467478996005628246965376477694286354905851481749507557921327105895026924463053383611900901474924503695705648617309338320043510916263243854050367290955407272208003781982973297762788946545402586927925635006440726661242105340657621186632215090119024836274526492082756428680186127789516201531742093049244091219642707054347365036363500706542386799382010022475967845461403979513952133063604251334994334410288855002118231139845168622395950311110899052545597692424191320529886487991835494841090943141524929146248333075150179688074790588100959667855243872487767649097748585823420683559451804702629883716673443311653383441870717390740121236629032431738838800650933938897871690986909023176505393612654802339888325010490314616006398797510139578122935349205006221600483847467453774001909746963667981391691786192938030436436636142893156891591731004178217149100321141398889365912306377128711913408193135246492024125752554195828125754228613163298065058800246227929201600907092160513478596247194879356151392257837093705060148606307626456661029269521837951848435370490236559923868607269164347919521437104665527755583518080886054721405067057757686561414808189373249472192414556367916190045556489648750885019321330630355842304253195785183801023475403953130078083473147835920004810850773509245104082503426514981683202866387289596378863909189376057481563313972489586678191277549557453523535952207460835865123475905027405044566194127440595998734812397554926476581779668463276601560930888358800868185103220508375868857942997914130059456071103844815068798651392715755152666414283961219006731488215223448880617658256666038328106946475943728365594425414804662373340748244941800751344583315498463969479017945218921926963453880868142015621693462853202725728368338052570037775078587841294768048934579744928964331351226434918936697866651031894117241294638645786018228020546512410859494051036594989104303547658439790969690820542898098578056185335578392934727238545852749350251757785601700023776296405759591478024064589285958572233149644218475374407926832876214601204157346831574924751500157453332754973399821834304612550579018362306709868272182362613119035327614926689576624609453947540848003489008396081440858317266784359352833933085282810352416723704354151515585511364321776765610557885124049696135661123406338512596854864209641432594124214805834300889994613386881059832531611730589621450273562508663109346399406940288924978131240244662797931627964630018269681027617683996244489231268524228923600463562436851613204089823591246548866734025764396645578998661174623988330889628342955617127235172225333507692114092776873642626900655981277975730502031938275344769128419014850423561379174573993213040730406306757024416615419374265750042365226506969117347080574248216493781857378772282753345866267606899526879443079412544002657572881120805226995583577646334391876024625433365491812658292779105066494486833429334984507021757123591346952925026923589944761843561268790052758468759750949348896377653010081638848075503544997325799439384987586310186183275056415201966737985096805250600351362156391449470812999701140017975353915516466627216902563648244972527940377985301375731711346595954505124045572013127674803213663605609781931460781257097977548040901706403186721728489125763150253781474393584769882802235720469630823983806079950361088458551595544419078416307267504714772790096452847078814332085362323511748900362035569787610895284445656485848362534966601780916129762742774691606949700971852145973831329651274100053305872941935288322860743820324403465445587721141014309601467340574766269616563063184782619065580014136457762245759425409094635505101920826211908222405379212235031614979958391626947737835104717114630448275011953821327245303738391842592264663784658209437577934211053925865694283033670931568325480699172295498129677022000286673467121050771696619861526339544234361467492088342404619256826306035879830670135519268541643921098525761456139837473164911954065070945687256056461741000602803810492449506733951168607735810429676273224219015814551735372498819898188966433109797938359276672859841016376270483255239453299815798152302463872828084844630561811392311570329514609269944614783517092269418609423795225461682225799227882950499956964557405257400033547823282301699776496783075859489003834106736920178096518388566186730578396108126363525812482567659797485098516346043617995643837051812579737019992590923807898329174791358381568544938404900780903099063680297278630819365728027084759022472790628156894125799472909466999220433037974432497175853473820840140222342659656942255596627043864090553411996563461925267158442070501322687387449537232652815068327515218665762189118996813180107078187297227742312164732694363659291883062490001534897058412412860423474813538065901382719612206178626155359407625275303997142584794872280189277984646431868300454255401005616691321639824075857684182135028404866552206204072985739850351759196718611968472435736797636512640436123747595733809823135060574120181625919693064777387062644706773255547119395838544141306230932349878732200698584158197435330253935599310992314049944096982445439574744954730578992907613965970265329480910286935526845093810414542376201921230275239283861200939846657679063334424039643749568825009932523385859244152554635375737471586617871412533582279685513502043828441522821719270622171864086652639294930049429000158694174503435580148674537676541640684078890534489987453550259859165306066086286595732769937694413832080872387919182004081974162065305100308974950665463092531974821290395764162278616296251250008504666877475916130611591781006898569592608676062484032820190865771722803072091642791149271849109019799834997537780869540113689232445459592160048572000491383944809489555267372795414343002707397380197085065352889765660907842805507978097703211457130061728479741852524680736267611707443770408850575819172269204403129066160348106333517035446016265348598932347703168890024411639084157876194537392185452905052977858093919486141301779507217140422113289250057991108633967288677808332176945141521262292015613111993789173964254763696199098801064740164227066408108874494332889070958484975245636926147093525730954860682132285079731458331295513337597395569080028000730224149494928941372315209580615842570069207830358466095199589217064982127685840031251613368775811327456505564890312765660799240194178768992286026437215927912769655421803947339746398680993700469168797291389851180236985694513576996457118187009059182710861190512516853634705259162545674946788615378848872284249501626192101648116856721629283656571165656420475980699177776396850628215974272949826075413754987524851461868259126750857098535214585821892120931596264089112236246489993780206098758511990070460588031345531759605582264237784280235419300450209573758545167208652528588051115357037046862797037344117644577892949492850278104892255754640018571371148749288328345553522835015398386552696451871094034076228128567917608484872463202670674584758772888543593641487662833299097820850993162339009782845591740511769664417990815881262980541504131744659799661404144212792098744295247312956713831417863330999577727010212161046494971221111161898679880326576617532933898861778193513782679697518327745748150671346319458270936031227934221507628744180556017942057604676968100857963105487376468004919902889893019371843290896246846118131161797313090837489402138055599565268929327753443556583382311345411921880133575619450521099000515956573092071415736564185569344203970328682528655069937623640346008665303298758885897604436821271268165184112400851353488651017614517414239742984947555454156365394514603000487151033727299540216856983238339427374039278271158757705932141953242399515550448676280636319702189636867553569106842048302438327864509064474808570399651443998164312851265415656117866929262150389668825057271617929193629717554313168054261539217034682878181583877473176018809053223019380663242104940566735342587417912635457239807657763734829239896741684991846116055196586041348759279090054840023080127303742353769334899182155265778311189788750988152141152960122335389466115795422717403774153861171989259811371702272430063880689051199859338585935555781476593607631232866601985358868161829491744052543952770420314936874404472625732247195655749625120080823514842126050463985445720487099362303906868509207335873425896233021977753794099991320598501473725073873081312833043625763079861749567152133941760567164119737355830481427967752967496949169510903225969507363986413848784108982958940359033116011664822501060801695394316636918999330081029207589298651042283276510245758974885285854182887635734299020952676895618010311455930533185273145640088838509401550360298749886578109961459722285238710110128264859505739065799973803949100600648320731533524722980170983340446734162613804625955160019650305812465811699022604862848388671427978935318280051479725702334480571735971275679051717930388404149701261722829962384175178050351646350009847281266524216836704111050955521687161674604560233331457848445972133049179525976854854924071767619194001232941058482412086677493947869470944405395881259489609929207429266179244642341929350689063986307146705162666791883549723142836358071126187802262087978180921637423743689854669792600657142097252343988830767011675280324282098439912721696599177810490288696629721636709176398529309709574644082816643539504174192153589486657704027118065650579856732594327180329499229559243126808801507585178686191460869127141533289537786051911497442093694814027577408608430309288452445287079303529222959693289417304818965485267243963038767376895852824041006910766353887598750936288163165095044438738573199559843338123300782152273570955208341999684289722373557306065069673971402316666309836739998078212231033181277211969950599290301916249676116677827580831901287108361469140804747583732346609084205122125188301314086290555262793007044743420750281597383967421014445174198219639400964747744524811467510222740608482757565563799234694818877427220169021043546374428133736145397244309721998345432338569394357190196426961045218871721001147060766326154463149805165541725252827374198967970526724875389058693422456931277227092359114389228119252867033808436573411870656392768637907156967647785898278739422725586365302980920507172662372699177360611610194500078785125095690678368287926555967147843957761212109558851356324926068599920564189505725546744306668171356907505286371782059098853596738889324086301709898142270307583930679893869193989394485431325227130810401238269887671219841325461642933363857170005605936113534148626249083827822712972467284034856187125635338120367550310039749771842584671684589820951956450681846262899015096314687713577585790394400326108589438059382269427318174165006066318541572712765763039080001242740236869605402527101678741753277395331385912523570339936616306969418384920262912971257457222131977355767554163486863513639154398214055049121231386897589586188973257623764311935695654027251691940557385387877421719333212451552232386949477507832010147673070620240054733854380303506335318537096967774993857149372879524015759031676984158951547800869933208290167544190063340566178227904263003224306554762713252185642061760598782175041721621001617444641460451728155604680057815285858733881898290724098334899790305961638418878879623625481166676182901677504937448503876137357136480880931001836290201940149780020538432487789105816992560966596891124333247207510508771631084269225711082843474731687458894073968351586046873698722717409026303870617871884215604161403288024858453351826041253524783680923809296025867157598345842951788962883237405943378328068106411881052437472514563374032668965355642154149761476709238930525112880678448392110994296228014906958602680374287218237684449608348582456639190216576696085823187932113415331084427032175427129092195736462779586550843248136924216843197894351294008398550967690999632828342679780145685543733437140472891391719626937239348166859383676057872213577270876739269393912771878305488887188154706044576900757964543604278148401817822451322329936087415403604576721247612636804180191819523587735991597140334058254457701019470283903695620304511726089015117378321490457617255871042983681613053333415730904974437998890010099001608252455303601837152611168193445197706012155649772355011015899943346607151085584994227975070286370962837476234092826406984828616737149297487144091016622212371544845093899706058054148443399941106388507260956175030734079701429771769697361714114682754862289425536189880936483973788626576443126295569357403104329409119425522446053788694808037549699569155265950561995852854433221474375678510476684590355628492810387576504950242174801267445941570378746525441924914978127535628541005363660263020815587688333468936502587391555095409099893726929854856256638448712575988752070539053687867974579055446203976266781235019143418847042821140610014887893336381108727876254819243563748615702845446177603393874540379223957886237273264334502421857286552983270946697968145789383975070523807919966853440078586690944792773557811249446504681308720307195404152029575893119683305337602760588716916276431017705529891778085674776437736875026924869712540399792930991951888937068808183535210051443668297565083028632554185453599988564231680589954387335858760196151279152081778795366416424685594078041747499263794716017976101700961845802774425486909759299862663548770057360849627849821885507781719714313187287790333658531446565088498404623217484879019933105370016498320273077043518408110382524179874730924782405956643008595938648249825966404991181988649977301212974921647756044388819359276277153957916298126617742654493898766910382844346141316950027046322395951035397966758557499896233682064751221585481930046526069420553072246591634931983308881703896362583752005750609816837890630751405120267276150371072850954541518352040607786294460478635685094102418188555682736335614751911052861945142448056529809981832462012043416590766402821045406366662553744263607270555887486140547974748447114949559109462601023821871075661491131115627616605816151280363780115554729783283366165541105544172588377828463089606734490464995568341941404992951204021079259087194341682771346532934601194191626770482177946437346522932661580424041283974704438115083891794583614477169452369778866003586605716605797712822966797050081036526039298395925313581718931651223452254082290691542699195204354034969812910769684626443461300711953491254592069303119386134617082572525490672511131348296891942027038567124737355126699752738986318615723880779790434607840192934770451771596742835715706481309852412643999245561694154094259412438875931212633726719097930779782344013130395000918287954965157145274888147175186108710726064707829247319449730580381387673965706295743168243176357765641755217283052810380639645103398291473935746187627840768517544724169580942685932900647650387119169088569402044107372466018762912649412951058035850136308289408041048312159675095730666387533125832055317569519560448201160652953663051599602101479488522305505593329138410327674911249183960129012505553122500018411987796147003342092409202957081118472010485598933714833437043900981334832775181054828957891325557377962503064900675600361428206877471235379597455810405263268348141761591285639763739060108496154699567564831206628201573292720894110894986323236286776544402441842520154275497468675374664682170820363756631597478432029481630385671706420753189740125673613127831424875222101534982431003536325630933790696122455560625695219983030701743372972799500741312562617733885835254198581186891433579008043568942812026180291528167106980159976814646732755846392485760411837742356111491776385757914843971712989440374943169904056585964071179530125593765004048989421458631020483429869947381658789802300057391476299292918917372579288893918665891379519517573637376700487955987951299245161889577707342948400461683435356994699997770039182759962762837157218311129698636665798443431269568454840374521480973438276055422244596919252023298261983592159849130190383545641780720230564295551076175735967986265970151361807619148835608534595976061100133219463170537429419393852152788391845010527921897431216556346026021976859173857530494438379566308097468400036955880311887894693705716698471020119790045093423049140553633328211375996345835746381322572894666248020585123797322120645388436310736234086638405102839747601199204016488079410614680924787438793821681747830627943645378252822106098615352237516717616958678105186182859694328006197852891121057750962572742208242127311022920582276058650877342983687664078760372585022267761474520176912228015042577618553559012402307255677347893613340717685816174413765980212307185117450766764009322894045612270678282547308025464109865722765028928801942228632556626772481020557025107203076420846566222718992926610190772579173009496054288925526606863949714807852165064733022877722200083911303006997937941614364295250163146037634373394389109629176029032956710840894989066277013455216814137713591180572259860788504290684841667526275223764850079827240961421180814691562880458144186549386428456608057967061621083832840637021266193139426287450295165217395911593916486275620710833981672997725338697541628195902257057557343545912781796431657143413609033693281480844344840738349927395279292347032701337972972566766446163683733895485657361857698377451029877057125032011297069541200507449793516070430519471198321093914977802541142417442981342175431980192038467237212649742320853295796368999899947176269209950166258670161196610877151091248554459607027184569044655402651529283753645467597600025236148562746938511845097610071919755185269481530087817942227160892688071390150557462429877324092949437593072580330929599649248802187389783386128788430387298996809435102070956818888849937225012669139734704455305022392977131017168998225581431229212147819861463763178919985752215099812437285095989719206529566086492427516051588010113716112376802049396155941938976615175402956212009481566514653757062782343658984090239697927328682786488651583365841918095146418397903102399364064620667625679013300378622503887739783363046337038990034620835351532114448956852136846570505901508478281947601060959852020471430979130162485491554721307738939748997282123114002022436150556486638341009933278909656246702755301181138862776799068199728451668134087590267522231904444659503534238652338670263894354791086125459507016562137873202574613750569994743112759616441214156694789962933307538716100773086138461433616435320380820792003008619814224766663819179302147535027989585041813304717586458457849495398754636138245929131986304376931197983317281299961732973888305729175530176110866368378343443928556537009688979711598645234658462445807260210163500081064707028657392468631633755190185682855909657526516782675734842041720764844775502415386227394062075824739927686528756733799553643067110304815549367934874248552974123281146392742193236632090421278126542392617856390016743985181459311703845613459708205409703207176123494117333791669851877251636220796945277383422691850998059028815721055246660624617013266719920895186081773161465212953322377260114395016871592010512997961240336284130097336408995340466241075020673789463148848718622398327285502805445730126435324512393188287191037187933863665017300266809939873855916882681985834596610251263713963239886305982823018520799702115850099375225811153879328143456981366011573922472532698865474122907739207377267624784940611834025237600936465531930251952649832212791931227017626897455317102607890053394760263164543793718319107756049808948762459388975748950578133409933495899113816465406968779815599991044268271424570172854964443228733759327785894580030889050967033448103596756475429100559886198595094283517217669544332123799273685617053625970207305961609801492511014706692039566835568416767196004266873660955896047474045238213960542123123212928946928986634513079125498315854242251057253753908144198629202430081206663049524906698906838415566030411482689444738546146399672826928927807585970444715400947609191957882801824251384149453579331952068200980798603324913917046245892048387881451357586696677519291566290225046976227182176893954702004528430271950464781364256063377786367691242511451989968443813764754708749223158415189450004748527762200043878535506986618456579750552291128942921260231024897104607078431055360589277376659664001874239139563259452792755606387612849395400866247869306695980431186375401083793810094887889712191511000853418669631971099363528882986816206236484198046755757520277593775107436718028603390892444696306753377732916490750372197622851448948503097188022375241631092124659592214725332123326172020699076439239260896562094883367349626508854063078097991387058067442213158929242788044125246742905247149387240543143409769365871396247406734001498918502710467250317773670762954478357299889115456515641170698249803533800816731736844529568289046174915901002643658545155515193617108519931916138878041240578325021848393886112116813749079712502301334142160438050375659946774958724067680612897847291333672630113125904210568669801760436005440553576147704214712511769654417199808375278463742313284579638605040748453282645141125803015530167618515132189695700799125009358313366575464355946336783533516140395432795880400655565682862373382527384652949250182890337843055095064543697937535243663835230362444516644180294506912222413862639903689304218378133780887892460145619399491494868549622104358233367781841370672039172222087281101174941464818531347353764688649533170154173627937756168114047013437430525424050890876767551994521741202151494475857037779316343062036768838483309340932855177152528565693135865178638052729881993440969074799472110766446586384431193212415216901515467993241731117741520567181719691538361848771218674376431087870172717178253692994111734263613339878545835104116951767480582490601812872721735973435019520555431895170924248227125572384275760285529597982689372035805107262343906347711555177688769447153517400875294731669368489337352525480721383601684462186237801839753341206310958851252297105981766936716095041412820543031125696722088970948248102547006229581823515886693666720602261629315809604594973219532729179339397370239429924905652775856132646157054807785042182191166511547685212192095668808509834733256953589012661637505059823950805314860415982835897082175498733010263284433959673388373329602426085926506908464829607001114433235643360001325473618175104456360298298296589834550914664447051086930959460648777469210484109394652980859629709985533271688366918062205167056172926998300129981221931937563020635609967947005048431042042085275775214873799037921042116885643465723572232710995638896165060039361315267450937643211516339759795760709729384045530163408516913176945191975532298423293268177657559497205581721391101553818464092621705176130285893770067593760455464296284684848112388127037794642400981530569169177410599003473082252383141473460065994992337168478860668427601379574746947318239852268553712042268231757102334511257373012323361059423154463469651983793836347495140531936581006411926574088826910019093383043150908805371647766242615749076272016546486623751968924138382061740576845679187714141087656181343350218412611174478672234699109935212215629266687501467687728735197211635218755477529255778200694567564877031253235527543070396942168391208192892769138010009945573617203874929256092684425797726617787909263364724012911307997635069378346537011432362693678157006152665635751306356221009552249339447797878012164060419293005612737505927972830392345768979863933930501397164138311549669399859587723262412594443167219850252918794806373251881403595723132736777980837202741879630863476176513910190545501144320769820738666099637790744318071451841949620430525001064084382313384968952086008489485528424070488356455937679075792250637369540841481745096568184571607189140815631882589754802299802725389599629740702892913363261008534490327277542771531427790579356193087710432530868202281607322750952654643587534293687452211729609874754037074252069740628897101889369529005965894244290685581713916965792801508308884745898062085738067672160129206413456243941380151837031969345537217771453587476068493933911021787514280986449431964089306596081668187294192624610919226301527376240583934867311693434506030783981321448241019979564041051074761314046501855555267913356890857061966029489132906338729963210487869177310218065363421217965210834461827413515080215608140100166237346982112744784289955139469674263761224957411185449634878725722907405031478872004814085151130348015675331976580797947397122101892151103272283717984673144574244596184542842820600823390403851482870122031080652342338812249956293147593709963045381680521213826968833768203554190156058351842957810979226732848759066783064864547419020225227024306451193199308538662934992188959078128964331219501836687337442026425067125525068070708413846174176801527918818223325641698233892237019097983338861415431651358399270033898562774132725728080568762564768250435216200780753343629663906533216015517264688592831138623156616622157860616081279723905853838883002822247033018449526697971290502994501299150990157540362626659292140812287316320730451188011676604577472110711297382724945991452007106621963938391449414016896987642847203428783445865632941146245805625327783154859103357248999211009245724195480951346087285007880506773155712834171684645466758373963648215446332684691230690829691589397361317647792221758660314474638465543403524881528715964299446569780160352498795646500343142003161890813483448783478158273258844702903972201868212151102223625614005991079315081296675477201062100870217067472610233196493073342965746475153704864204744389497488999423369821410883126635932392326108514024638897502280723882042643312524948404926174069058304340936338625671858413185092015178320889986037926223657966748486330514857656926727020123898633775054981774189140995993787460692222537012296424604572302429513771582921769095925901399566945194820667265124742442963319687980926721548932548300966389703481936689569281457767535323495905310341625481174713058638417005140970393125391169070628224091510404222523848811129878349540881566952668972684455388141863570312446865007563183863409464766144740633285132421693187954941621963543616265737843152517125898076578493134195401561738923674652238979828428654905996326894066870061336274272786138195213954364958743401468600928762287833505053765390226959664052981313610772055879060582235393009489637818636528740923465934625955724072373212888771334646814835956213406367601306505302875473389852252204817224116734375592045456830189723683197638557331447424007578519669805859724235687103235775870637039929977046635130324656676387864244929370568764590640519465873941104085647199756119935696466987850194926986267481595304759286267937963635828328267868080092603764721556346246336384722566196675269597998677760544442034792783346440170002473351380917330135564439632366202295147257690913000526298135818446990106371348263596684252727799866299326212764967255522583378672561869675483551382072509197301770564357280740709415660728319259719271802391128497638507063922939037942811052907531976803785534272339632006325184684503109165106217969070421394832382389137109642553654815838442713337108630477733217755559059310614730557317525304998398451062520428479042316361443194348915840431942718100013472327324938447568628916295630011663104686269491203520125298099092916246035681591886970121208471062575200278620498541862200121398455288955524580505646226856899963343077031574408459036790443766946853465731037887086272339259188733643165841376260486315353960294106104822256677556380974741163841366009739847729354371435560339378016139482981477803910773555069462038412916733463824175477169939845222600716101929032182537565841602619089728024352560996464512497290942567063074144611343959839897596339670016183952036151994327180626054694939897307703138724740169201609157424270753979493005651704261427524459945979460175491770081342990147685863230483167134560830243026860193421256315593908551794975010233389124521782337352451047908139689530231590383409676744764035524025322426747408203290407075669689143828164834036005280415157600526717118341917816213005378055913878217516309354808497568835734483587771734296595655727834060456467945598513459684794732787077778711572022420046560371528872134934512240315864612892355491211829772604755496858040142981205016229227619673340963869556909397827858551522160602228058323807451300929361432131324871476664403695130005428970165139728521796052433485396271956837182598147413807070571135836633884954185549740913727057951916392208471959208769061672397039423942237726191421757285096495217218394386113016800862479720558675393034621516384450665625927396446204724170973990382216188322857317993598274627357066204504034817379595910420758636783667246043127764094933840253966886923596510953670551953406303201608596618892427990451725663418845692024220359633060346399444185636708288595210485439161625783545735103535137297996312101860100545466809549354801627637674669881189174055162835394875357448109535380310532594338586895677816814076866575322969994612711708879919042092006365783569193407987264288602103467322904497732792215625072750363304287686605498467679728979291413682918338992992143905662116945458475838675758427355743140642851889143479466506742521911667766860253369322091227656818556026438721579548389278437500787459064928043154191715773241684101054957228079962466215765331129959925092510837593553957995028072684600762682148209415755377406707692719003537317392972254104141460790246690487877656232946569257251895916371280350140321803378688317027501422934288087328298816045686463610764857630239957814946321198133453274630358201511288304001863522899053330420211058424212621194039144401582952217745693043829486671516681007053457845523277376506375981517238234851262862915235532830018145118622313208775482670252816217806943123837641000836551615286937457428182898421472764753467067072173772034967560343426876454243277186613812582541298790607931391513326147259965377310316034964783228693802050438307620505310297641275488224180675002998137862118156580317545734866415124595267001230625474818101549272980408292577258587672353096011898340480687321625499910910688647191141419245920917650495950100719912428083874266535882155105936685407050408113996800824710722136620271978463357208469756952828138417067220156063350575970394056763883463945403650030719025190188230687331725117182277070819521601594918658441835889901299427598836993289810685039555313413048856043605242208745120628860175889913999875200652957685855123844461202505776365998215329175900812080830015325590438150121012424643240194389098391627438248522491070947119230840122237865982416247628759072515702362706902189944724402088822874205238026423980029124306845581269403169813942946000473583525020815090654451463106116218640306272837707750960041066227247560477917883164283900035163648430490645618401891886258176208939898110416101180142200340935015798695356533373131569358085205169157309769198822899453960229491083747946252993861093440974237373034660480450471840022120155922633167454011165380574347583989896986310655635059670671887453429134505138136737353250015448266809451750418424468160003830764892280609347015386818746926311243054190427868193699137714974029108190534836312164965390667591254209668006813094855352116283953844932952129975032677437844073478410747178808456607698466621979651832147372896772337734817184618565202186375828578101023462440428039592398033928655746446035258281958264118086196454310827890203852959607692649874999277672884662184030017343151770014549360779552925676755956599619361591605923958112495883732836028199872573606586756266633582991253595709536458485107710576467399278074195469730161861421810846821984131266062305398487324601616705996064682743508214175632674559087113213466745877050125153190022083857417823458359478462638604677381137222764309791700913844606903536812037274930000060995493509415181199280107470724409931538313930257577871868239125526577565369481705731093652097493578420722330374268064645620397114788840443856787032990175462023834865845372769846854840684121844923721321981234447564414747444382211414504562980407826341823810006743272561586629512236303781705276643174883916132308641330685419090274967891504084110105479429233556134929803645293125277937112976897713521397958469677701410531535807624172407025107763262670034381039738128204470699020805523311411357404740488568956168039782595781258888713722059130576694461997648949883373588493844888630813991207244360062349647370672601966359074438508915304441136289354694167556837399749281300196526881995565384404017204657087484366095862037031348818309584672982962209213367025072375460430300097615929664590767423132845709576383252441919560028224189849300955500889579229336908721337460369941448885984255297448706662361072863944093294875044088255387896854914569039283186453871519127980409212759558999820709296552794921575624234645800242089142053831483045314769543364304628095226701935777610244507195799854804772077515214572941864456360050205613269865997539767344661637544253107498902610154570565018307535637419348008225493056377402873789977680038046716912021721907907843856555526618315999388041638355428724304034972478348123680944462015577853127631454088709684490024848163095446381872438615669969560496226102908998000179615225833714797782390124417949155337042382435399251534681785408156747106470127720420001449203400181446542620491847952044385051796643204660995380553526037969769708917718615985784595391903003707055195753182618974368312187713315150336794334256101110254315204967928574673855167145520099949440582958318314963648874615207630340071442773794119471996114610064845775700135875942285553882854773306317564038593468226990499634632404255010967549553353669342585498497177187895127949590931960008338791593934069871018423100682832769701051904976633097620944341016484525296415129450709613883299883405630208471772510256780904737118127164075413671696271953141841716087490950974808468754897573087811652410984837918600472744360589836679032450008195782260258856818830014732057187183602217355548236646846793469550673004073857976527216075968703680294287842274739213772001176986480786463092656421034936452845478201730594886339107699431152096312937547227042962905849613924633916199991731118705053072030476815217287983111201842799817896087495193829346636329923633626740895739529514177070563677252406829913038319403531567905631383589036647334713403930654306974204766979699855433737741205582217436635567388913569505605833979398263862011358685733657210034306052446990763508945236804552877892617006485484454516510504390827958130832416852252481582199597400955700866081042621675182177722623545856684522075638753185781452297278238788043033552675142514727010211917895029212712864024570278991915809228153230645118208095799537082380987304771247311539558580846935788289702025320582720704149313033718893445164776782832254304050526835492053757642719232237173306010300663273819099505884667643995268273672331096353952587890641523984097601722404842998024027649735655257215801557260945856604870049016832016275218673180672395814362889957028627880911374576608065184579265730370994635104039986757605659724845544147135818508627069432336900791112867962215170894847795030216891721890196367708445277074644828200904161544426685130200062650827804256355376772968683907711995462116754980317069958764793472415755199944505980730610762001416605899826594325118292497791422593303438913034526645967043728052546821700846889457608637827744599862661266184792836048493631202367502902169909917180540356809363112028466034443206355646011150746376697075568615424805005396389332231366470792506504262467239323780613825546000217486355875016246907574738325606346377546218415499058123465509558283776965586661542256624762071669748571725468200652319368878398113498537131757198565003826732060027897764565564212208571304964019589778977492082691901660177870734489642010022992763993592909514545158943312610321555108749354044263395198318710064526911581870226948356511004206834363729402520420817033071730681007065464354171792442742652637187283592100902074136000411675039731083156136389217314168541239063315211008873876866299239535298612950732802824667383091808506500402958914305682132667966533375591180635866266333547996470435482396261003940286823680469037441742746335146555182211138792573067082875170257680677820797961919670625318394141223082928029761172599128620558578402312761775352288349663150936204817338935760204772803801118925423600459412206837096992324137866085037626299338038623163539782174075228935367642629488971027013245685351977998550409568162199180010250286243017293751891920557153650697963185936743010904287894877034319156434712065017689408270287133882300333567182634153308668479751099446027498718050366183128227007676159594334768049494889590681209919997161952615919501286041287218958755077327522935788959139766707308820963896252961143758915261335452110375721395514828188420831128868387921594156329389374382893296225582700572169053380113384100820137570718882480997391752509429214703333599087367869823739251423998335263618949570197039442974973345320431971493915228561101883457044518336881327972752064090746754271844419944649856674022346378007438945422994199233231763603501973241942610563604905006207299517390280510397720320425461352185934706648241302027105818219200751303361547140260176134429377521740034885716025549820237154765713794296732827961888827124717958696071541479038973389278601844434581704615514499737998366722140824921066533009401855209990565701450073603093047189137793707786508969215739462780001851871055512003312757519766047972283715043438797329866887640723353375072906835792497055040600056094643223585499249657090853952428873483439009182301212396148048208671892003135125137446833722471124256245141990947233269323049830124200146198087358537454169145236664726187486592101387464177945871912427108885055018056651700219192489602064482356847225393587717334515031587094606213278103319984714890334922467369575496086848936186907095136054648977875503810126510255778553485877690670415229616405802639061042434642181640837252367119768406969510541558865143916153260126286291268409240601729495075950527421515600628859421685726699675436580850618435947245879200401754357496277842900818364131863222755556526679281008584109590582881870307446029732558267258260875652491174546159929958644294532584876955329360222513752473958298443070590812026131183981056203006488056738712663028881971161147938947902684448590214398567214870305887695401066378639712277891969500320913299001131576933527081037428258403997232951408298048956340698147606770780461841602037559514697525255898532650405917980633564956322803809347445750436162261115262566750630543341838335603351996414146060319093378027326854765720312323567640270884635931916136137836068542853397648852475409231326017460315654874511437142306256407950573354427154801832158127178438799136339527736496790391783008307654941939348399143511209505846727847141907903318096958761752541461518208106642128480681487416022255026255982088545473519064440166561008800254432577389695473736640216452957891867697856822946639469559883154630365778693987272838320075348913845319325056260830088576315484037169225503308573663446036646164582569193972217290026869546691985116337479555562856734786934686243048672260192919493922893224586925071189139656830051985147483598793868248789089590230168484457019971319686261306727068828147121121567714562683499054300400235382907393814461611951850912287126612732120817068881508503799176596526146626921906482098288062711537360227201649326631221831584669100733257189298151885871948324945441385118087122203009102380136267846716265291719765743839467919825726249543031801702265543351175467497757854382993731225817385172540557371930827648901816997001990086908237050583732489842059817577947351109560863936021516745863726922402117739817336210607517902802744519963273307842950638664712084820829524274583773921243810980694499482879747435951598573250914440167668767411545268274457952920012845187552688818894620939978236229094846273273388396568072036691383886605161349146871850209804560214780941969837980213544876921288997671628055617873128679890347367421467744493617056740061419881648884983044659822321328493906031887806996738057416680197656869820549381992001723374072156175593354462563057383983523032493339434067454783396388088879188644694009165536183640023079652474128613171555532024133741827302540091058655423569111937279282049152485958773932258270423000880281853788704466961298956505289673312070019525312554488777102983015008677100235006703524840695168308944042079671386757167157386864065978363762844662589237779391097590069696018627898474779974540679424023741962960182687861669212795427608468642952615685652628499448070049753734776224979597070975176129419896552351290979176524391889519259218301563098546626447839536221200355559910372457519660150262721697607749451448799400539630462840815949083288628943290345926747873000932836939670915414348901072600028301684221130539693918883846685503210503052513546814428846441913855636385974549081821817725509527406970135875714073812102600696692770562234658682725368533460290696634426688807317197599606271835843587836963153107325078415500466822390417292190748293829323479441342621625136251290024150023998791099107565524621836090646969032535319803561913432599909264346266987202994559373729261872675002250116085307107226720121837348713356013927894209544423889493476615230519243734091889487610086755852374373942807806969609310850725223177101367366205425510868212254555695307902462363532282373148491659418522376758012071220491686431834294774735748600280028965404581794895463888594078448249916545744374050103585991418222914751103175719873239015972764662185926260056591872044582649365935572582641920356702182237935291211941554730517470396931688747435530423879844424962927804447300822702985382194476488705989673899008107259467894032081999104916224942108413614002803552638403682388725238908137469962577264324710009550048028960008792184470051967754267209899392375522310896987021684748027062757481023787032601372522622905340558266838012446387425215801367215913283848706161357841191195004267916101039907966935576191051153654653404349817688027185669943134037757536186766329946282415033799180267249097377087333678464674258173780994665077649258297212060183044029307353962854516415299101199070907250728931064741927498093971436084962452813333331765528059942261214081262084014184798279512459047121705962411218310431973764421445717752818381976901968187514120133214810179360353156929870159521629109277772292892845876492394212047319999680011818726295516120428979965978074493614692660289992076905901438709790898546851221542542232662922786487281466731013946409688423044934251736763693064270033200948157478348405129713512580944150506258395089321737785561836872934554460327748261310479754284662126995927111563355047125465090850769105052037402913756248762531290219110170251177079211858918625622360911513151228865599420553551481752324113156064053134154440169807634616088400497878928536642951231306936650161242689533106161742374426176060130695112088609626071242688001896097688726349958324692408166102934093921997175780634406175777966865179403457879527004250018916023342456212029278891627048460122090395230771380817902368297831165593501218537382058592700756583672752798399354409847026932615361110912802816117091229136606702941317874091357439635303510253397388093663503214713483115767540765110364875569612440578067886686396368943374618325891716743478645409408716592032729491909929415331610138739820944558402417382302548740209737161684623751851017820249225050277341263685233261913006655314873461886350909391612223031145536251455579065056971745298286523234664083034828459149406925267149294383502857602496869064159088460966622878963816069157359028956669231017458676568434459756060538158393563465770045160460153029621621020986869057216292124300981237307560108893933957786491448639140549947913061696499533082155847790786512628884654239583387491668661195369040127280688194356466909380284284559027727326464440875865730954309464759499689201357385194870819008236119685373138580944912437982317528283288705617508232371436831597813833786764190281296734015628817297909441824372089492820059158505601050493786223440296430702862515998923056177556836359659915913185077633760724882883947090916074235260741803004900228419034434889695348367316090689142366041500642329002562648401343922498615456273996954403143829378644758153115995820026507969322158235680797501398770963102673412090916077782022897855017848520625917978175227653631124728449332337371399498748216270720875358426988230059442766697958476305691693259142229427480144278105565681407373958838882808229039149246822576253386855523327601050501848055252322903825373205420595393005736683421728925653567591587096491354439817338462015612113993113185142321603280045761683155623029468839416934622226599524374917270907152163297799068529027119266526331447692214624620301085478102968157795324306754665742287997008031899002890283025322834773480728498356812650363437019882790672057000454994718999846841726440131313013606665325216061727058569514078074553870743731463005730666272283740731472514645323545790128612002283519318936475330659414021181803262026502128904367198425365403067901682108806753152755598410763089449599772116022683467279027015387509871905970759235341808931158947536927520026656102541401864327964642571432104185323311899110051822566270025400302099924619138880488131067780490931909254724577178954918772143132515985575078383233737107833474342688997776111200470576439303069765895363146893917977212591093635742137586025704573279854738299740677352929873756726888030170188696218791594870444364970863053865366989117569857652757035125754224958237259145823369333876288802348745148385902084852266088535705074403428270173678494717136331813178279655946853722638949990509961871361342507827637569233865668285471448665486791068789203993298512112010589092529374585774294160892575036872437358287122802658883006375489808939226615336765600660729788906150680632032575073884193488147056757007023440637098475413944280110934002750441586797267753080511614254534241549224319160114859237320791447396876121038919521593389864294624366658337604930604777055052425957561275628323902738835005602194089762383170266866866313611543588776239419212734469682198929411136314585623619065056051963488214409043235126872842545177429050304174153246677694143686951735417824699611016456868735312686640294550123556212976872534505318234103976966466803623044096828039574729254181309498705077976867594652160125744395547297358475337160684370035194982311073394880042475804980427145499090393707491149064532987982171507513807235964168870048274902398543418668211206782957364863217818061793446516180707632895444161564509562124717948534334462469303887778601172391806130299041132743752925707000464317024566742309035663700467986450129624847444175039783307887646147474169012268109627720023497501708021236467267267690681732486144990903703018357551586393565324347606169460330041015503561031923568909940129338449117520136401808925776467821203155466982960494206194851506900629931965234993895201335928868638519751597353060834843073822448196471285929795028659920982845683087868665724473522437000175724444780426644706884878668555115347324089287654473911254720169772529449968046962920469521938533378110472297874441158685351487293953175633430141537479437972640845699708856110559442269722923389562297280938002747654141962733731235508675935395511714749365335515072938959798594373423648320823610311865909176983912203197243150975267515647574316785708350919377057478932704610599554132494928219348100548019918196725205869963389471531429327884379400460794143593277374023343676364663443767193031791954307708558492619171945961809517330129918854059479349256432095010417549151019569416614351401332844290892935347519939965495965515359924045150974043383790379298405739690134940253193606344995119844361686375376535852914509303825783701761158700523044287937212858625441534458646475188084783654253025242944552143313978470535688092742133436500041974213682394621401307351413162951968455697684153054184699989080625006803232191278447960476630824297319056955284881621014893296685896362653540608102737695707903352327707532982739093453908788288362041888399360716973791961468217917002581008008365778434705733130110601165509043176899942506769669574832032167105321898913677420244067289284449007433883887945262302369283135892762867303710261837874154916342159988043593244670839258152849873133451806725692420907281290974669178191382126829524232730788675225315434336852045396948798564066011549297187635960772184925984135170008258373991445336283028607686911796740852802377542917805433534442881870044711584339960082904021164019245720244804977069971377800753442854490315332063660068616135174171275599771677706439249676641394255289860006590962487691081537726321031828750516132782824633116230746928048699483050308563126920193319099205603088216638273399286196171407813356975203443279712547856382071509443985092674524452403570434286553369383634504288142367413029405462068431375084130693826386600344787806760664327039872558248887552703093168776611396752257523017770580126061795263206418653663039202819235142073797778652920334256980257457750681265236632435968945857557103536371210876805109714648401618174494789008102580571801113897194048838257111886663711893823739390697070992001861363371584736983059874082931509665179472684560478761646806248714665353171513343866335691399168063536073600784897774220456764489625066241208976487953931945088989320057911143734217361119879794667625664408772544950533045704734296327715229111520740501652197791885428550405459135278928269362533952587696602000810388216181912361689592967172425339399770562865630151883295221279354659615263474691410722627585168917049613713244552320822025998578383636888246945360181870780778741767898581785029159885535182897760614252380076647829951979732778301029756893841650116838187344391275697238898460708861437108499202411675787999994225706275593861686854662521745623498472369203634080536440920793776248287626438068581978017116435787073202972189384062795164229894000192481843413628271947523488357592033810934735231652196391938670423851883291762623946170351434594141822105212718264914869604815848770353246340828925544173726099808075253105389555172580222530216506489571788149191078012063582726251561921371130066855675080964869102278921931761728621644775648735159063365738828251288451483246456296600402708436363403401261010219972159758667954302506679518282261951718169546710036675593271492409472694237556165252347055565900764230649294928047740862071595273700568300365253122067986007678556413992114780495073822606825652695882591249668040192988088657232504924284726056476218429930728835815465067750103482610539468211364146738654059963094128584801986111513049576701622221899331734534576022321604712243840278981125327077148092694790326193549333543580409941633578233470830802833971136696952682016759164292618477058116810724481926824438770076640124426014758003502060178145156986767621061771280074441608537474267325508741513213389818696538715488911925734637896641889221367459906353639995400238550119190699443495626225163427193813462029148615015566408793736071099560950306103976160209937758021682751542646786604062782395142910432668885862797331695554123349178981700282574228710600794531607758212096852267973495209815510652374185997064773792003097518552040295922347766392125469418017415360837711301737334226523301746038541174888996380271736902718063393588479513837996332697129651002925786738702359925146575160706212608997802160570044512978499284090241720692587125969680660180537240596756698764229653654002290112708897747890916592496665722057312226751892527296083171488683600199935797917456735658928443847032665763600798245219401708340704401189367085688941041504707928564475600908864432633032242765678614070187949622318761225935215601042306357160978637070294766333688743478886610649455070026055917730080467920271498741905673279643078059326572527163902386162860826108037988868085882830073274171065794119574200627139153273371915799403107706817135700670460912549189167326152684258562236921815124789529267294760446175886338079006348867980163594503399530032210773360209102571898000686426655455959625180045823448357285079476830567128580095444140624487463512225264648433319677205699572280127609165952162555097759392242953032997713043105114624256703723865978258602505952265272109618390740930509108121318234868779461072837207398672685275522148403015115559541508241507223713404921336265906461250153836885328996366049515389112132826191289120620839898742877300916316442399292742406084345883648832674280237994151031593730501495044356607020527588844927324662227741856060262927998824566536305977300053616312863296663308529208501477457753964878954614812394324381183594887263503689200948045096180300346320505320003120215617434151412997555092534138041145633339136137527100297309662025228621521159086255068763345107383358331388383905812470186508355977134949349838706793667899877403455172559564779115670900451791638359048360256772897152334735661559330730434704370923301891014503829522803733807016321124499349253410554952238007185459702327813928654662474152641256915911093759368760780105521035523688984997325571359520830815534964471211336558906044996458112056664735453676316806433268098664306967563702045274505096152804687977729091512325717440457905133297904586446704062626677053664104122639109890868341012280135403058258889769383122863585625501025939567437480590242516849278818158245273173288584350364704495683505569443307583703769834030270007587050308940255797432037223231150438803698515962661533089677527850053030998351531950626011764576569376953266733515309904997083359994161016043423096777717965460086145720234540629326563174151556218276049827384462466695068417276614699831931435412391174879569501524986786181621424749671986079913700191617684432255940673468205192575786605458467913671575811456219923818076052649389316389665986015991398096785346508178689106406783040855754363692711861052218203996851102471392698231151191480999513998586178247650274275790101003449124972225261821970112507482296226916829991332980421660618024528249403663330138978437694172370628631150225273001408066868440870022132367004261748510538961340915669875914592739186487163999465287537214746434775336036975977538897776722873010768444249920802336866358670712678190510601943273912950112517696154279077019790798368252427286961695709218689672770255137303184417742322380731517697140225047640915489676094077155356699317759801854995573835658512681720867096602572593325552257267559745109166304181449647542493869067632546855495827382646115598374092713724448474060253383253074897706369842736936472752880728313941567829434170506226805019406773009001005141781689694737983602452240596218354721389913783438960030228703484080276009056482154734560013729754255544569835437136764670102201612759107000292653461947803212803121667823285544050851125112847672774678253031565695351565024772970057572640048944242873679185528357177364763638192311484532799492853538995165232852242909326560235956776124473417332477506090485732682028652495157541163711208371964347584605791411147024593972667485728587925594792792403650926545646795298716457900432546528272609674216955907693266465353348095973199649634094625281215388165298435815608849100032686984374964671036510850429489352066643829919714377381885031688530068796689476107986400962328463437075836693578794400121706818841818359196015406799031305314520005658772473272766351034281000708556637703084865412944657835633783288232260931399914253924679297264566907575387387148543901279375144395615401320353896153570932985705991895081351909242244924481965938058395795584349084221626785461744349701261767402345322443562111777118671286302882460398624227988339703731323051637792976022820580210458268622150960000769375698688432907376412129413030879918495060508739936781049416659656995353827009381563343214313615841560323124514658796427864701426368616551261922496580145558304661211179556090922132720811006825765978160470404892440443278462039619918865044219774609309159403764962223471585432336264100858887277474429673244333487836010397408472136469478301958077585196722198519662830259079176033032198900794175688348856408403226792961683185452864915760598449229246726895321779892032712207273860797896163755526884403014765687569543948194140204301629066486212682777604202396620704339283469650415702479818634339218328024847659116900464452756417218275208070179999842356478937048338917488906994107467417438850420898991114741939756478241976367394438471418805061870841914773041912070663492466571414493753577379954948072862079830230747263409683417280096878237960002348037962931205718694228928767048564957194246445706067639280063664054916956318999071139259819241151970439544057836368168475968691820706502438159433795063175635158770178499193016169199371306801527949852752358330307949650524225919335093600576428889699181721122098831575084036927799921798279422962872772285247459476012828729608234360370292178954120117896671280101324761083766756174356687748528230945324820695807328086660040671188034198446382306550920254119022819609923796895734082469815365073344241623399515307004884822086727805401927706449531179714171300050486877808867888764554560001264668770598792331837329532582693380704682773988010507894490313471657311234468303838176795543382258955031476119437904591597312843128638874605802869084157085691251989107469350598540751440260622750407154988872407708424601198062215493071811481308147225133525578128791401922789035987089506517764145634764451809888977415411028665612502344787808434574078331022543972417419075314965194217519418795242883793056268211683718982521843688355742912437380627312162275229227155794885278166224867436737795539733618101023762244231104388275345183241134066436812509141720909220315706987937726284796576483449792516146109957013839267362528099078502381312764236693802604965715204226718678444437566718824981138287089711026539481878782193720593540090554444698700051058183991546276932976653822887852259420139726065701355483888743002458625749534304600905360616943698078261526279194835149969094632923376713300048633776231937632516028388004009588331886794041865746161872008226118731817032385846027278539525407955019530279283780357689524382061744923378641826982802592833200954047399206422368008212924959942123724993447756279183082039337356680849705305156934285991188528982038705999485956673592803483477661776381124703581301830865672175456942304985943499241015007089039673680590308791884005153555021429920389277996858467891911129776012033164041248265181310117871607552092925363320350179770273448552664096820998624519601282352990601043249868191391309162553948861020735908978468989902515358260151200088156661891061347457780467164161019567236693160227775084409584428643761264289464046632815592247260730714137634099420126167809771939507680365711293204266237258403008922264269240238517053777713237761705217067951333481270097230230375710016797106246456156196264393610484327022648395843846804857747104214070090196366662766006274358341476975700551756157230331233849417574143019730121040235643264789666197485096771770688254071313851328848058937342209275297819805028708716812109463106550209736928699612415498755030766379895751108057296793366122749157945371483725931068106680092169290818933546639884572904832963046482736539197447589190712129958000802220939648284035293058017474586902360251711092595494568261300075254445327230307051770151812058699923921434787200837303705772241447438340202028923175727848583728421048959755929558691405737899784071875152565620410553060008734104981220663216683940221383663131962889389789053949512615910784846261323369018437277584530118470554866324183749129956868503903983633794334993579766896644248739577028257852765546992287476093536131014708255037098379325667050129548509264738562723488613265401177408860352233506388676332790624212224290025529426456725235623831978536305181856398997158315768781540596159921906704627040048495936492469152319265848502906800704029131056393210001678716221364091828196833758695728144650094635549789032736512546729318504349359574457720584944758727501329084288235055614630875392937402515001001473742410386437601324562562864312545725525687043326111774546408746708017056425474212723283705534565155020330098654799752124794171904870158905538205778291158023661374671739674701127908437064661218758460811210931274137194438329597895313611303783066554038625436601390927316947462580564339104406872581293593190744655401872088775644414340828136111739897643880560574180074558398676033141558803609250502566218373422841797553048440424532847104557318589157342749040175759678135858952957912307341451394986118978674876752802735752199311699760700379649962220854075349712862143745690867490002899558008029366901478586004696057579673426552993249601589661460099705599381759829721161036891796205612958570640307048116218667749993391595818331635690740643978443920984999770328309192719198475645137145242902656892277608592083579654018178991785006782189558433856864441968617351742286554639319253844154713162495545102041550799632112223010329217439377100867956717311919658457945494592433281938400652400431354499098664469838150767854243741767242467574841517192600006230760116434865100421785932612021532420782092111209502617384152300266937580665164975851696281050256981631643766499119273091120277114898637677211746085891238547290629629369548069145853393158686310227696831166159477455128004818522437737118796590807574531506852766729593457808788713071356310064606775527165895921948908543722385759660466047601699074433257607094545765791706283171081040882573711404356487770000366146129849383370459688016803350096010783228388781489145806187196683961270348304892287108546654241787865526922732759107401692945155977949487281368552693299020720259903258553788231922852658877661792945878735373935698413378980221708356734429353504041503231322131962642578862391150535984460352535163798541646386984478133643397263459872338208720145607437560133807167728222009636332784139023998233914566419415697244011782928983776760308622055409354897117968878661383846880422215109473228386430380189878186793062954893423984442972881896475989084091609951603595700963894948087397110661561265590327721334088574292342513432502966395483592832047014610130315577783816828152836373501109547222399438549538111796068425526542294373007004991999890778018156595747843410488394024312108759205245071085504308141819905553199694500040881828070226586769389720934854281053515060240647328448859242643933326698070245355959148464051171501866072541693052600891013404017622471210836958764311955474294093787052761617514403061965202799674004817418919782244485109433094716939364732715953082418784230461486087856384834733433867689361102097167211154744527731194647298090165663839951570244652276932265701171461916631403781138257113510016831776703935480471957283102878072347785938681806748603494246730235707608804297396355493000600044881352972531401436559602728168695539264621763546868148594624707009896818281502494995168310815880758718490642957579109064581770817443583895308308060583039114945576533139447009000573365462665177285444530001392646866907104753728255600905757501617817409690755013729872861044084011399370373046745608961209970076917123309028036798591093784477209608194659343873086176281485939831778247819382931789640677812257720779251831549487638599750505770016014706656870445006842002476324826569748501697728496818362719605602533380777712287096201327597715755985916939864916637300952846178767378527299788220778129776930163594618645541845041977904654227008357125783519520239540513723768047007289189981107577874685124248614689884247484510715438468570854707775962229665434169018920762658247394929796595613028346843575529392135119493007682828895521806893227882087675655087479003223260609601432520842100910077146404434486544835765347565355195034444747227476306851708670554321508203037157814432429946291044787760084042864320008990171944546461821758113236769146275091188697956962878042252361217492135239750074972962358360663198792820309272991262742321939198874344199777627374790988464429891872127453989561079792730440950035400743609915138905872142924440863307186359367283559789442976244677117957669483199449845622740530737924241877616764718863891575091120270365391871391355883747692236634335905855336376423710282743981858774042384430805547333441719608196664238252767319916770084509729418007166586932769902522525030919999366994674728806607964319806968718148641475765749019282119109818121747471084374616452346862544492606267583797059746108153383053841827292475804119273863064181398650538832185750798013573318662683550800436506958424103555406958897717915356904856362816868597395343083360190808881934663801209801786957592304624185307963478985744718400131456227747596203299784788484107128044772177092385443624834220774212123756893262775226971379660270221633595252775094254850680184360090687222736266419828811195010933613474144616156284091308043511676393124195295435014113676873860890220734569596024389215788006810715988698757675148643411904622815805014942009296702270082542532248378427832251165335134724280474876987834804505561140928914979581980308158720209852284600415384571978814673004391007387787727712797972322772681996840460218858604560655906351276805350750623777680272278694704278464337387349211610983779286609375997908693497773613442888385384588381050272378691306726218596986912865604215035651474310582799736106632304323751215574488356214148865277851557429507397731701067228037823045833071600956960067425033183567795808215979896804220011571163559579135338342184478741054864337477699128081271174251315176710179326553871600821953340242004083170433101503282995680550368227624979349948171859524247358321795623452033958769152520853367584703612516438263678078292867453701182603370381618226609567529705764441251425915304725533944008683927670458918651324554453617744673424679158307676108804695159343904206626261235946862523604224141318385664692732670883449655309373261067117239700208817367653185761794350436998107729462553765231425795807280000918715015075261022823872888720375570196210880477566914031932047324404745058252595971342831947549938675933669127446625096521671447825591237066341014260115100212094143845808882983632081079638744410721328982098329496134641293518500325856675600530785097311613666028609342944539387526315922370389692141641332605197614974432559113776828352538628924191219324511296624680299666189309529068264980626724075367907623629225165010174290161430175481874215867837753402478324897022359520606711475128593129308822404716919449303926114087335509864890541671036608607414510378887411461216007802472039514827726286233097494604206059999389473400920548153182794627719942568152100747283862860896835247769363709948639566679744842517156879148711776317896296355789673548827822379498277338154838241298942049599590705052189307451325573393132842848034675885025459439142609017499392581512599447994408767737668985889393042705098266383243505398694086934537809872856675783164215699116842553072620163621265565627787802493685613673464085953143678695485790737375344837674245404078696959359123268622142677007895341038580899111060380689579223901350035646076680036296876753384886852321650535067798577205656116839959339888703603419739113850879864001210974165324318886499444289955974321331561406828730371195125652737423546479604924414601818611591576835908208662018610275275678451882923397477840815545035881633737994417831039700138569193180269739667130454317857876342154103734570623028199856290967673008817082128200613613759587699045226002615362267434046325139727783762979499223960501356535924310732040544133356262335256613442683538398034355465419429922458531659628843025192698900520513115190388848238970272478754986993655512601336940469493997075766884122450435678886141635818565644600910492135308770233536660247900810119551644986441592733692273322842376153130309618090370807785878654648660799978142877250885163908940461850480957085670087865352033161683835031792665706291365196856363228789390603651478990681678625334991325165087419201778361579027027471090308099057621167187917174938200357415497708505661813792870801642552464042408908665946266108329333289756961670945974592006079279332963777046269310429397456527788562554969405106429585559584536095124985919266227363337077288049022092159103693003071157516073182538029496795366317733181535919273031690710650875059497904456101810286711436478974457915271582107141746287527728534650957116423229699881241156346769031699615129179633583084977692208424418837955440397274531663978670684910453395014682077932042249479280522703362235829888212575747606315845130524652213965664834896241120069381143342484718032497221376866913503775203381891931017358469232071849982074141018072914793101339467473886787128822539057184525349224441524641303200857226144162447029331681757451269174322873940858249311573007915959485994455139878874362072742521913754632453050473360424634478884588615169560154545551886739066416817753236088977401675355898668079924862380393329102989013536897368040761091192868103856815805853624500302525888779259012940653102070170581518023908242193747601532580176415481575431489155384702313247840546400972696106670814025993405022107564442396590689601692832712980940319737863717440481477795745733612347462888664329765073526822896045161354701544585742937939078858305227338212345067268535539255084344096369898287314017668118479381646623514310529651660271893029026659795019898398238403478060670243013027052000571520961806219264552392866813593307634647543965212513612849644144890717968637143694649418082167136904848291553906469085407653889991827087276853570598858028282753576500564598818661442771290889151229374630935219028086756266374673963290674871093995078215384051294653830567857172900634625069464720193273367027780999027272201697478736225910297059030945002716816123047740607980719908245282992254262778629876907196134100003461368933176613910964813724135580153477101234901833954547876458292503108867169026441946077367244044182257448260688886983943093256257325518114860544589177289935218905018638946643071520593826434866161954650861922885964248651971469548093225203790830923708158678371760101401425566695746964914164469251962410089934929950301213852678432137005525100375811334124739888445209505081266869430616855255249278036531512785590145045943947423778979129506019990133826266726609445834519308783372842082450327313492570965511705378032700724749116732826459567050235733437606193139378892494948962369110090072081142248033537943394205680633642504890422471395593208303961040831306927503197980788716744648186604678217514037426629313135754970247446188212451008428142427925415943842153508968728457184607575639422095616934307744258515123654146736755069130496304019944062826277590338752085871050963490077929645846182573570732445453703931514928837505592152912410634596640651748615303676597119293095715031073537848784470120798571468795531952581859341405193842950630120734795968515693060454911182921923680631666281782997706851808594219169685640762804874644872133819384494102054386692319060254878875597490364925342439913304147152902247739083729298498291941648835967939704111111187107026369377113456381166572196542046322412775463698517386673759638540235777716362456909647890845703699956739258598405147323264507526237269677357403278963113625949862626495635807392711862042465331968666414360427218333028706657940016519423638960667555935254343122825418644799622747727784607967704820782653587989332387450480826524021870468506466055170044905697270694096560974271525881646147833810926513197631877196615012938453629038192769794477881509846700710632330828259892913573108772533907389210188367685284337307419001515393232809559713672006169863760225888302965769149238772251756484776652807362453682017542942052415135260236663067746367698633894277414661222778036630902633770852957202045938150692870144000021601780264794097255037022702383278510967059629666219216760244221598327060948447341402003046829693571118612907754435092005961701584929846841626021884100892670258631664924546949539458540683946582645221389946694992322396386212312609929434066486302637570409493107906391000625610654866415504515126360356046896707472798715836012776923302337697542394201489981033999555024921633441423857700785131880255189544405765794055684713566549787862417310618795118617084419455798788715636616240866018802997941769195761694170290852588654867274573797463848046556031227447303385430493211447632877802421016692387785358163550778001223811526957911022102181832113287180060754955940363425289436128136082143758491070359460606481432297827382389549483387950633867424125624695862377233287362462462402125010305572260457965306846296526621483514625909160507244589855006593755934619727851084321013932338536145907316666442168636905705993527543959994280135229849624899508971807584007389262451786863280757889762715514709993756229976078669471971274072403464232745003776042448678871513100910857377260149116499741262316475893776116054351838202321926619490206505221079834374535833685225081044186068060614588779676559051320026662065919858122413671894097758798125304799803676340919807210735852216215236776386445303731487825644084255190990471277779426069669469276603495700678477348453171066410911373147389946892612033119266202125572220267410244411461375933978248796228834640015022016502841961054784026728170264618001295918062866145481695819775691677956919143803843543069890968061625731291067037701812732539135691600596143638620939451169504954147532685946146928126418548617352064421961020756827784515783757149067671038772408663016845695776382150814331625745237371151371321050788518189515538279845283079812087206178269700090385823065117799306560195873729252429079547537454220910577615715648282391651225775637977233044395456954033903583181504498852074361324293952394314969711829137614447758375670497487766753758815616878333276437708790165381895146335865023453232352207958039515088787431277894666795661486581492156554164776012839046433811082295516277206540327983287788415873878476585991414077493689905377124866168780565612614817029553925106881283038063586087042373507227525164814545311519414244814050752529739790705205842538775752201342770451554458827774498456252254540618330632276672873613603831838157390026963554045340686004814789104131332720893315548179754985441612570566074681214189317826937004819419093130800976768891999983787415853101018979267566521137106087796739359429629799490229229254705995069581795710478682495116336398412461500402834965512948555892605446341400417468231896476926040594331203345519964048004642406494797207408631853702378298037558095166854964145290843345403164448988509805705450379590617967361516773790477376558111011276131814123289607054147481292740006281633453539373820988422923447279857750922511559761650003340465571793125100288425134084958618638941270208047742112271779971051444880665230572868820481592351936595989870444745584731689852004512106510762668581934548252307818044304419261782133689693106292578146927808379850366892006757373818058171789564861350623564859098813103789252876195038365002137134857659041032203153593764575251909330191492159212265438300084071660583204655802926467480380876258777764862514485423935306733335944901510982659849518472740644798263804368985587171233771661068690652385365510820166995874405166949029460050291719004807267569338760642984143492651657553184776417137755568303803379068190292000993382084830517323310331194882832676968387996000253495931256665650046668423239380084905592562053321073021278588067949751056339854692194598764984346369914213319916579324271542521022315439121253824205489435915241765254970601277964086445239335454058110725567832460508411303099656185904241936106379339242000653826985613058179669956947021475760395552084499900455333200524656202210745224216497397912803188927387838917538484112483389300918101361195787184255995559311231361640125161004309236743870042152381510506918426459072680685066864047288875206051917250680318566464598745663927765553804575798183228140550925501151749903040420899842618723048201799831594973682297486810458066510360379092225907310045062534623847790750803626326483451305560612351233083809629469416658195049244556429264791265198030949520911045913179725969659319420212913584557488596728304031273447655779722271388200190978744060227520811710412097791262718406328069778111139877814503219940431390408474128798531868111272391845764267482653897549687049807024883781412975081328498259326724824248898695822381089015165723429331201862370741820893613960998264789529210287798622145727998530401354313683535463748206244289975778054226471324420000454911666241149777847656811790521508997906070300619899632536952307996938589592931647328496582285584592876991204639306132475590212759975944823690070982541069361932618020356384711581165501364785081876524709273424495607764599084069688513707815931437891371648870830420468461779683434339922575707603706540454835615922530442803553232198472067677456969461635360311034748020799260432340435171060259841647460349040162284997767378427338886953852750690605269466254425458566911469579066154105478974477027237231676455996730419370484272132218923521051537662845091145357716110147180543851858196128958603122397032807683263705904437286795802563410324406464326635223917615042036335084990802637701984755246389636872021264657601906997430918051351783333174894341665837666090498237742532875854560567114593331644391730677242467668711549667074840445421347903302077141187071686274410749350388218138277700797336326729214179024489522852001287900571999569188105441392721615642470515657231544088529222511822029794190171936605065908091319317471691172370816912488362567142795462872491711377641659304776616498074108394813572566303722779788351555232493430599716192351550661168022845212827052375322527907861459940527318526014346439782606157395272612435570912303229913321271927263057292443682467691748930207772531221594013526718510748393183005650609451128039439651451047483295042941282534863687464919233860611924355513350354123632894628484254661707066549171144618230867330025168309177825727236775036595234946213033645543133240525003668728411795884971415138089961302169169965373589411080297919122626733672091928194252025721982690811686651989699296377206457199536170090040601146847471466264030232491011198652818402835239951872251200699801355530151379347551052760500541760381594811073160526807327621893739666197877349076197975327379432765679824387177132390709439629443932066438859587000933054992936240284299613132939964292163393834094292180833323791155170106924209376808936070550915054562437243187011486011752848620446704366037507889854463457901457668609331635245894724090441096588432257512667817240002512146127445920214921147192016552166750551677360659901739884526101863724601843001209857378305083742123905267081784115478267703777956759621054358018854553373695886366130145353006503416945781639753970695899353448151192531316508068793447773870991287317763565780146321694785130495066082769056943021510492132295822054287304124356393045024545693887174507643675242366977136818152772063235200161676305925229584499926159792959517532815977672419264088128208687234838734427169514415259629546283233399629051022040207583874636733240289780614561872899899592316135974997989443822211092685130168141050561184934302546684701254329974856402076579056970427104158629677438785903957450533821780246014780295262786990262620493653990159848574699974089255722362012757411560007686728182474260133648051063826845732706789628181691545200312076777535742317330712329675532964762618981614911200352107684069259079024440407284150778110949336638346473743267762070267806224015385655625534665141569296086752857339059553276979105091377133648399112939237149563150066792677668651585156261896241651476801669438591652986766636889998805601311814774859744961417982184087262178755531729622583126359736741936174487030947287622796881213495720003590308517285409926628328469159898903698262697723768006131458208432436975992158093893583411824428475908391891203906367790663040609538846058680037612895236626869815166463581811015047460411143709414950156565341734096973726705147868180858800985310461562202604488161170221545216501082590122564866173623789681780476919597522768907669378384469950619716658282145805369085740009517919682075753963879645025653898037115244638801036985965719393293705901820805718055606936644587044188816955659587039063568379534977271667481190988289829359414744603209142891504335944744554200549740282203349927914610087156785954657327536690645786594172643534687944176388341008483574679436155969614749984042861115806701577096720485008440270259102129322804052597294593028954526366926155434159597040596375228795848628505838787006921306834915137701697974470641806172131555433645202276378737608545396302986781975604087988909811125304188981399140841110915335637814282929854498132847982181814563703278060699310267182198940205644289886868411005740135122562725558592756337258258720780503107833105766781636816420344963940503282569984221719149563379595919867388251896616075010385099037553252416786323568193586232804141706373579499950253990546363348526330798809100735544867215425002164765281230799958396529587470716001726621452543150983990140924975282553132309862166994509433639486586720943670802107344801968912798310849501889004873811652957329709065338210413975758695076121886275451113082971453588101911138171636264159296001336322080564093553301282403957825395261290932309049205091318104534387916304893701928717416663255176772662526018473098669444176010384453670647126773263846316483233428438296434907554612636784119467238793740215023930007491312124190901233081793347578499607991953923927916537358666043981372335858135025485084342693188840180751758365482032664372528182497904393489404135340802254590539923836416348053872414334591119572564855829499855291891666649707719947516406772154417118611537844377763094008671162818905649083307784727986791780892962053650314233642522124188421810321662880684527184475877620568353168678215745458965792505402497635377976327750023767741594727486522418143503907335040201558907540872210574258541610938976715776761379697362259241746754645678456680410724164152907842160292569333342133166110822694954833688529225528551246480326351843799788796283768761603825905642495988043070869307370656985849883580318473829745585505983695470657088060615117600683938977686928992762612736642451624554302974397821671234087885231063073475207240763540656711525696347752640200144806468309869718052379752622213253849505115099999000246481962283015936055509149254212630486726527900088610822463714161303613934681043101796929975535109096963058535597254193325766930443005206160108759886090980954433102564413157380252899498658307769970422173838931415669133226088988585620800557729904240154883453138292966195576984123425314643139564149170450102465367274771637984132718369672001154262123433858447704773889082250210845436249849262295156762427698394114803414951736962864397108872075299010187951917409269056424897184872504487267654446398810264039866093096473587491153163862526855383111156875488944008360664760348917050694870410404200412328254053834393797925195128763476297347681044635016070049111293544940637237548434734774450954271704906564320850050987484618120429601950062750385821342666931000727950804942992624978913552104833527515038255914738930000157790504085640616720993770614741923443925073223785901585943751197839776345264070999755858143031256489668167821921450150831689631722943191014129555168461536641252647354643669074994451787328050405973333939633109401381494004015888258534227317629444551485730402610525687535408573400013190127511285435415502351256407488508409153190464858773737899871202582395992820045575493503414737520691458323577336482590013991284100373920017845837231494312571029249634973885145312981990898602707947034522233232289849355378992431829558649943960357899847769820975512952038075723629252865461347695995597266816525022776717923667558175575561032829990345075174405181689212746214138321805326321466620400107038189576683491225385654323376110428286716892002463401572392401783543634852424691576415797957241106302743539826055983077559982593931498154518382625857394943586726220537800015508099345865867554087150095210141613276642735124380513294299770766251097164701808573868722274670943830476104941810024293271465836951509351709755458846698849266561897455948825155420723415718619713801927789758288460465600890176338575322291539024590437267295487439102310738550513850416708684770381161072425666061036265860474150043139486869861903463494122016172275195406729844820591420866312052586542406191707058033004140189652972816861675159043000773298602686753174282102452658487886368638932422050094415306654061361701003820501424716263314611498207133995672053042444681422810182489955542556849715567462067689307117152664579200601830986442945641556572443539461116102042143634874694903318122561794529178965020187214599639286260384324365957147632702812724580488396483550079135458718535114535364642508739698561088047530174030074485641325918262628161469865754228889265449790069179094653078203500977827550763621004785805786041961224789205001785936465169650154313255528421392140655971957146205383956355822958994170975275541118637601545525367358719697152192876169437882316994476621137236772659960055046403976078208416352404704876455452392339875180614717520389785942636444512927878904410117065928879548448806151021282327336398384050161466179592876198942933742599607941115780330450899065899819253796290916337514642672057372351652395596938136062926536700498539839779772709986737393598206215945949182246373290913684677237785023663224877312924032796866966998278798870167474085378529364100783487585127875817472656926544863642600538035807730391591837442919279212486234303799661320009930066171254018583227186229380565218669175001695800018902670525197500468972502076502771581465872196148296896199171628117983028927042501547090024617049418913335317594169032503851667219203563175640918126864390211507749385720557801891181598598702856646946726545234560100381021342154941603358650129460739395435970066301807557436528088692430594282864535566884119500849274079491130124300060852966188019815447078248038475997283849492809948035017101533974146547345092113564874257368115033287494430342580685553725187546772727539846471235599734984544304057132735061348537747424466185462655434528692535896974811694804641321396791156161084661921045835117777318456129329716383044385538159350146799221850877104381152604116520602437233297285761502152185818697092188234941235790224133280153110364921782167894713542927540679460623851433575487595780819636257513859688274959144512701530520566852964165865485752678544944960744422078116143211764110902282937503201219301304784002322112476849847091412406594711123686361586660185439965650646709486335225372588211926486086274494338048086876940033091675677330185659848387594704359596401197434819829385794316742253957259671969695271949804125853894660763568873977271218534620493009106062730524691289652736149181358467687553622678336396390433326016023854334025096732966769860338025580942115101906607662700593206543738189921708337018044924460061815189394805749135514527628269659159909177054088278015793016627643756026778437890619277289057105578173032133104870920502938478738040939208570722315526678228979759832419211033849390174654046777789632850416271566555067153761066646476785452542329167807911188569520815486481198424232710417206783858975431954775549183343804997234637494233483644291568989825048807933180547661492981401250377132444463787118299298849265818878320388174952065453362471117088152009808832964293432865515435866282570967248832143344545609559749515553354372662651219675416150425238433637600500360918747784955199370562829220003100885890028797428445852466128371453452095358428377580567381531814636081480068016670367851587625351153119653717207758550541231523577277899116862964276498150389316176318045269691980452528643447875986342243822243726138309789128795157499996520755324285637668349261073671135740247049988266191850671108534323563770998718861000459830291426580278774486227939120864426500896208888117744214308226723582816632217187666470746305381597810559971953325930462704111965967284161772666917479860490783361691837041893381932929897432933550993755095004092236670560108414139467658151037639145998479662432772533717911681619327969293772934317756355813986567845958872404514330864862093625974390388173060350488180038182332005479503207504213838897626959423278841293266231646884231287094621363761136591227498704070579278828854938184463976252952022747613536482044025495344375920588982800282324476339270045318377747870555592456431990756454290774926570294154383558192336016795528474910325799212132043493754631616428083982792335076572477751046711220764858727584391773644942937788017609539929933513980101212270926242089414228531292867889452429848247268916728966337216973286099774703807882622883664448052941765459052977686922923660725531186279217977137125665789754290574718332538835533243778006986242080584398248514421842540198015763645032343426827256136614747443256625641400363196794108385086459603129574205561467430004002761146417823347181535711462515993704776101921782650608980563287157075520992762765297348351675497753758855442101640665592881237355168248538963965364798621334495158456789479010207951740102072634329308308348478506649088030750175680250070465749065507540628693107409870600726071538174466533752168716456471800416272069499615494843106158996358052900462457507728456490057602719572328876104548640969580860080871892187612986032161527428167630946466310986351145841027616404352460534152453303437949216872461773695945484587698211062388470630065531783080060793029325459218875766110818936895408260005435671957669031508328556186770351109623927159214342233895874543029097430368034759234288102749243128180410391123092044608752732245367826471384683252122341599023045348705696836880949740723076105286463693514338471964953051615752630253509905862914091330403327897177180115979482718113486164785600417786905747931744837954106246915966273573528637941613560180885235765303460548312893223763809845400101828975441770320270898916481865324538792183934894045391061256334387605835349370946866983553670516616340149440839451453202289571709574313484201092080058087742693837714079229284857893560941314084339852614878561446636896082005954869598808070192426377444998845847632476115901393581178906280367318162848810046969793801391420267999442918813001504961204619070195339220505870110376823106546283676396014805619245799348637396890049522159432986535836681635080091099775717205564654252875376289577874552353226968504983397792185492907143663131794237900310046439417517653996784411470345875505743077142215352999856610508341991366264278616966420595515881558551689691913219622055689921174518461161955480032085003114315101430090305717562599420741975366982008554679480673240259122465610925798438911659472136165064296680177049802309513800353307684374012110638827720723894098155019844204431995517262672070592665813071300149186165945497185840809335499142831114824212834583637906059157092893507744525118153094806404962540800239197068729715775330113359803824952380267878153785251254195527996475209954323303417304067169762128721695177010470866746987014744954919050733058202073349634175862349587463175883289384298180394970048328227122765403797685608580875565378511988035669512295562206411248682861596669669576358015380866802079350661338643164209473916736366971180938732872422055298774839659364215158220499473490587804340826011985678918518137131074724789672076647020151693225883038525052756937499639972941652273288507048712511092299303730710318518009743189017243049100402819965799219211341480560031822332729247692704159616699434915175939931360086810228955732458733522041437217164823004960769363741287553736481448428121086997393598965885231520082264713976668555941819385805350290147383079159780927234086322530727318616079710475845023235522338819132745632292753860243661099213800017791255914920243098920660623568534102552794917288867299675692507383758608024194379433839584584786178874599590824072521804452001763044288987519353843461653903499921973649270526348937097547875538211182905429665112390989479780352351324025993236118455575115046166005825214331235637347385599128997463472412426842032240843625234540482542296539516726332091671576366206131709436840431732088492049464254009117814722567279277909625794916826019710619413507016843725680448059478084128510118229485901230241575558144070595783690634018847691179590870170858899682782234902953699384245501920260822767672338150574402049738556805159521904052415652804618570546206863293510663712387130389470998027508615884907497020634580611908013864395026465176452092981920813117151095534023606306182034909701605495705144239586979753167278212314883026444640651671369404178608567931416604830154838925807406083524746902987628543268727849042826876869243456360713721082404828407373566641743135066297514030367290163878332661571120890180574954506497998075802894678292230605007259031710318778159884076484232551193543570186870700344872631689145207579134013693800586768861491736991964339556387391495173546820526672431064617015187919001386871211577787942280817997983619765529436588985656732281022595858787828844544061529376938852862262324464100243244956457171934976535803675303881216119282479650313847443622349327591868442232310635650319632354541503444790265207440416208456121472725118371435637385045458679761184090806550358981256596315737750900683159214757773527934107198871291630590267799606022101764573976169616593877608702177141760828205882777668279860093035193259272020450352030318891677173271072720678282988265497945261442462258523606300340548197271710008051464798964494227519136273908864496113121789614720688133198626605383391275195661119588507620745591850894443835358087086807463233550209489815132010273933242710282565935704438642223321954822780596212884088919396221947658166023703239515169747277390218629167513959498383379339207287872861601867196061678991850516417021049018459624874295867572502219892165217154196578254558867491512290293983034444812092884457025263948110073408219349503773424044439580314841334586270691867817655670405845506496915569173324601806618878349592483168356376130934732006050665226383402752547669072892491390734312090579126195463128453016450918658346622755383970875981306650302304939687115709753816132558073171916982091061946705032442558198681936691881808643958429307469494720407595205340569248529082877180954762082355198004428550226355870942416861626006941193383184120779245589883564742070180459291371756220190136173671876601364265478337441531400517174329860593313253466866546081416866916007940679724154059856704021345943289002311260532660673187975390674915675088845947244147499658919607517476577023907744950312711401295431668818853426542345610350030314748483162922643484054349102114864439492072588580428880555832317292520739395024428756148539282904637644167166138062006832190557554876033356216833376378276631708847213496009471173992973504807239235254064875271980000113382248209534809023861062570937475470857090192933445072816184991783157135164082698474000182914353424515140014783144537531313946957612346035377539532021271492746411860922778451612482958678606944078856653811940544243055344606439622743868522682738455234290745989738830336884929662925002243417059286927180283619494878131284810055580948604652770469136223115651786053882211539230191827734403684048439520735291060091874636610303204585852416580088404258952889489290863173602456009742628600189960672160062586130338010652976416822458206176810114829265927967841753377839703821337573063248928420817699505781862352594856845585499136558328944739876526294237977022019517140822224782251090465493160387643151321660176640107927043106573062453853201198779954492444195039940917972937519815469135959714932791862996932925588705798966895235042736634386660351896390564576597260703372068404278912846629825903718485451122073947019139706064823536641524797566417633477671235774068447513889252196454819025177830698062188768448299120338228656579961275191160809278237464168721117719353786562840772808284273581047868526420905104541601930444831994738267191309944515143368535269207703887496483709253194315670245112393979688108570280160613386565146715308529891633101749831197253322358217811028800398351110522361935224353030891088157237168185466565479809478002688193297777679450292020378643117521143469833106203753743171719114666027708118618030567274841326032863172399759467650998407598711997085307732201756596361303034640866096801149326585914003167465695707623798913837334501072518706625335127989380918222664656425178540293452283482470597857461928033551253540453743812383380351452584861854862649627179203240647660667055122419660613110431822539713683658473093325868848055712257101968429100507390289983925313606745466684479939463079148625359451774183146166620451443265858075177060677250224935541101854014185657395535998297126875174553627733132867734972717816579787924261597772692700342156366643045359841316467359677828763792153741679476264786806969744215465357734560775544388804201139720552460450331700592276371303375596674191133802455246632278978091701499060324718888898802523985027156319460717800271779477273992305731310082368331948275199977074637481891710531904202670726811413316484855388023822792701084916130747277928857332004734962291363263627058066410935197181737978562617690844064709787888563266775271967078782402215419986417373570585410944955120327802967031093253771738021861189792270820293277300391307240672960813970877841904826985441822944436477872592913952575539062140842542880819758779936714836606010907401540913975583828476070063248124815310558121791974609517405650030562649943490787683835063606000267733349445872679994309505344123105759772113882748238292419729067048676970822369973388100040843345647139504897255050824010405604706197493915870167985156329211472135900519391217663352644841807035994141979477001120374723653257766292268436030601845572120765991255459404399846457851650013918591057622207615985057343901736077630527101943880722762586999901633946930799565683359200974952889152773958036688834736711759793947201072553221183696082910136403416385721880385659327485551742921558961517776916795426045695993042654389352257495099537544344031286727849112701501814816428084125614794591509282919445418423029895500742490068264795793455773334363967180773447080039836019748356378268689667530140534964205339162039230252865252139802640957622656713910934948135288331596001236311534918342249269214968155786150583359686228885756109823188807780720117725008835104600986368964930086452238038291767630744412730794133731533289414353062898826759341707159396533681296825916945086303664433454478087407271260079293775503650219463828326322395891666236936572778700387429252658322574863244343817179862381740205736169380735774032561610009548419690504461440684185628219400646998170946349537002025696082848407660843893251293978221675737870179550219127746536385070599480616583715292494462114807092863580483615566310451418635254544331859659995360490529752105549768370578678364951726746602340852321295848383449795714520258285616674714781573459832524229421520335350741422505344707365541983814552189969685282727274244522539568511805131388533480315196278542677872794643874652574838845169605731583521736116674540421685900177467666342677214864850231823000297247258625849540639340458648909849927128253994552889759785251063952914088424837139054976906970599065663413993331984586471068926485102411894399387861350088971641108282207694765519123333184534159500505707445633797261663222484469351674797250815916509146059173670309631895124872147143485867739089075511955608980185039348354054547195440686259306569832753502604085779305087758356230507905365373388041791723531465657355798644926198811723780461984414218917444041923663552508364067933067629888618060065425524759081691716962230093622050575898471273935363845235131661864217343456547087398274312620786953442366794174758645154065758752946499343988168168860955764183557701586327049005309377478841408819153990728667275540410458134698168908895790223742159411851975800890272732136159528715052826851792926997753081245815471469705553102871938476028001002409660890750447759294811036619067481773938575365825616790527510095161608939179114853644104073222038035473550568165637980580571988883489517847249444795151570728746194265324182874189924093098143521117937668910878840544888266109448809430512807026989731439576356887400753316629921176265035973041525960120575051554651091507224564631882774496337089545186998825823130036330487488012460554088071315989788937034325803155937709523547864386202943559042478305585596761153827546695150748198542233639302445791673682226293866645087556706042649250870397021084618098530555348334056757141455909687526856102302634621138763331188490265939361045727762058927407974957296591540146991260340675782032727734748711848076420411762392312676146492818258383402782094440130936781519931602185831813636903609627106268730483886008279142944332093803706376581963065024448656298653726925191425639997957107133957678063729648189792548678521374881582135160951785186149110312261975163038077541473272491217957135914333192916275026288363832417793327406579984796586342284823934625948093985427372614132786658868901700763765402681934284094959932092392264595088736015489612147946927440482840273867135494199184674846347265318540461261716648232772963820739284407872200211013720380606252093483070469743135486720240558687551632985075696826910474779446126219403666201551340863883884739662370215429056935354282701999277385981113144514856289009116944073929920863652297358148075395977582814863354467485519895572022945306844389083860250554322556621122155279236958440106748837710507890997809580635098280929724427942493044985268041820573373399547988492138628488314571775056811769031260115382815282359861358698948913513499471162729005823208355307654123705998316197307144023033366482424561944753078664203998086638408567187915512514261788579389828478151658552009447990673735433519548218853113108008707210044521714631660060878599675366091587548941722976327979155140344029601987071541994855965957844828562673610955601357807746634898455508629097538306800490935272965101597246179260259894103299218422510498593980833941738923065084934749277778357347231595542223344932154038425045278693394066110342386683138095298864700623365214177455980393808359576745038871379360927066033892005839832278148586161027762590423157444468381811238520300147614111823751773832647678617909010524288405201379795200101391191516267649299949583337827637495756469423969512254236426590443183569006326968197612201064194904929341971873514330584948601357327369991475346309032504249065187159963619814361800902049632932902371138318084943675327012348217514643412980603006935750320348639369553269902509781474080424697909951637027473159124015697887410005897027614118114671811967197265618233211385100105384169870566320423717973819198215511104860662642707517584470867715853178415037706027270422747215334309576843126394407674544449523605486276889235825986843023507875208710082744324860770063084443338643713241414900122907277083702908848471678640501808728417746086409017746333419035814323893226781923440670300128773538529621503967661316701648860057880390511598767314055118007965054142983126994493489934565356706112531862030668965239671084396402726878231624773471431735197498292452505805722001614859446738725709875701181812658051801340697806289931203133704173434234968932048476918656609035103388989854871129529897393964445677930846786501785672682669256997842008264523579872541485310660904888192641532421087379929896664656885502497862324229426155457293146342672042546444048199746019863047743856437213540520672898180986865417087356403804692304826342542679697456288259606307391020777858692879322487556598414273126530375736447727625061618265548598734392803546095959976035339279185683234494355841005807113079424658669224891644425117172454610956052687352870838890707296682085456547508669772123456291441870074104590645823040212318130719711025781170984710582354227199598974072524435454725171522390652713316862485548927463473682784782763598504413021429496548752444582417696675483586255320367596831972998802147992344259888078168284189420097065749199891008974878789698615714083501521565509520825039359298055801615366535995142810101147931913546185369632763313523889038896841977325479154301954742002778953597093432343178887332010987079967115467616429974811274637314693162438133837506028152370883967777284076793340786531727980970069280986797278667292602782535531459022991295941521068275678835090556443076320275214933214049358463013447685530469259098429224057407271784528631121450844610774712837757938284088517483914007247971711614386332097872963123108521261416720396124490193368212862660887079181162986425205358414246878898957647194200148219455478151390091271410791784612588148639639231614160616252912518191107121785224503462938538676349604436806449703614177246863314756837570762054129226405764525236511674196383280250952517689276305610173911052885505745736777018366151844717261869118652632514162054332213311929356171755149620326084591606439914945621747974963502213209878642039376966023254729922543604161335367836064763636697189923129123083840786379490120764296647292958987230952505549451251696359899217265819953230438547197189468305590651929364596432389123571594468743769358054979377552286423437556745982338856237691649922588283940021463067841767917245868069820975921723370669719530705154088245408506290191749264393105622590784957190910480401811404006147102990498329193563057240570754791461554477963271455899355264704150337439592673518226150317532308732407805412691339413825476976551795003958796065263127239550422757833134701911549453556762017113580330765534345615373087510622729694925409174117450431285872979300703886999042750429704260213204959236484474107963345561939112647462120809653287931204352826439207220550756633863733713271353614378930275481722423290544516564200913955391956431444384318584502240734300157828328349383349258333246674042813358108178719140798484161339020333488400349631539064121256699708154800176299593482005121911436371740588606659238665559669728952031979328688513100661233174760275084123337717455279724326024569972922230800714020348404484345434445322720953602353226343561939414091849900071972475517336400315560956878009415771928164983867526976093316588692476417292995851487338655207205828206109247444506252882398592965287562403726709137358465929676687863037416436990428969446637677533801443037221576078186730492599157031744831093111493136888181338630811338429680038917512367817729081899333820725760887574298951090059625863282071387024742990268737103119166697351418905570397589773964632609983049902933841716338291895827033796382189421138861650737144090214439687663847012186683123340149134026805964314808295417572939538213079813770394249855784303063783248643416903016684979453706594080326314227455974801340669132507950474599499221053439397157551798441385516093409172947051347791283754081739380756742925905067896903828278208272503261122396562520675535854356029334875089248758541172418229262361414918187874919367240925325900756073412572713748147030660456326256796377468659580519314456549006135726677502089197845286300711224837815678754790787333946852434127731172191994181932887951243313668063756830476628638177143010638170315225006697381101317025906987372548991896364993612093587529451314561046206395567466064688330317647819250835556103446525295528265451116754858975549295642681027820254134474371496230487036431953844260241185748530266638992360049483813767399672411683586599980647849380744790296390539413519218115118146676379805909677020754703712354390064716582630051175907266909317779076000546504638888036186610543844172334349926954328480402951851336237777139673980269276134799954250131398956613750376344703989676975417338260850269472395864525749271355510329875748483700720443462272398598968744387445076320104914475949216518215165341881544500260378860340647659941506919381774627525578871912141598891514310915334488237301362110286291734459459670112259402855623596557769118719696263257536023849360066295874610269325004619913965948910929882088660864525948868101687397799211179049591102906955627623561345982781747012795527588706053611684565313091706723116613798328040400822127054359343780036096650566605243283398724549194954927097147463564802798309156499123300415739701992321138645900933805085556826100016731591730823786674259886145315650864638225989260120361176421217680687594832137666831590550532823237911036467637519427124123344625809008244649411568241591532920606436959087046393601304707798197420168852639080489512973948441585551540368234739383541437650506760377042362092374252882479593677206038411242391572216360854234545742518847837108084236962094533530073541004397479059847492749354280985746051698056242542041485200902556161267921481042954680359768935489438287879918758738641001637738842845519985312478279143665251929630995476311203798319950564828220740780197730486184028811778253032529856358403382384348494351302327640022172225820656036376597695607666660906614973853266538216841349955222816286290019128517753406991090240483646859149673297315708358721958611314084289232735403655182203570815992866270988403958159805333984917851218731190763420314848154348336374564248365083519974615953605740531025737119526415278378972679597220408271718384086643351548217829944688979313875241053006227421877052173598217207492245789927047537785447292836569336736241644969134555728893869855730975992156010277961762935027160366701557086855303669150520192804003652568462146581707555852367884311011085318496421613619196618119067487925428474525679827548562432907206303905814467971547115684800201665695775957193761774297579885292616094237521952257702218051749516468620334567164743773540112241188197765877980115012403973625293102202671793222530353061718888559524869517703706025029065120472976529485893629635875929754735024760017281536406603654462175506741822498618584118009738094943738240100304866841482990117132093733426573429093173971549353106638138661916341633821811187525871976830059221912076757284729212129251757396101879823181141354925045414183672366503815356573286524755035629333610587799431942970157703326077144140735797285750124304724455951381557907954361631620456656857901304552579766311425387090678721201678498689137072573714573075324185090244091803592319799054311310841837376619995144567924917644616075173113096701658409102361210082815208953290032201536178964421397322595271183783272772692391338806543495702811650184051816483255113450991951329426939012918885130157220271944331024898938692257643406363816051400572549329331612108510058028291028885587531023580732202667471296865950971183131445726546121227527187556147201478157834624882208163004925990151480547708075042725281805069181835395361210138703135130282916789475526178720347903155793700670738040219878976433703343264828023578517907984254201104766541157301909550167906999008132064145532128518323883711212199481741744548316714423490208039434579284510028985409978377689766712187612661385479866590137329094296783514944240690758847425908645069385084739385115116635416212711862209272086369376061646421986259882159804773914086535078303935045328244575356395794914956111784723002561762416849047314189970774953325062767224809830889637712635409574295060166729255739340353079394146233272165955465698516187298121079983333523590377655335234049538885609608843738151691660150961742341786981003715280637947159652132696213952693680830067195536485209825030494424784107344758369922794961389959110575220075332699251117992847496401896171932628434353673673063465393971248380544978321942941026833050288927972266784575712036889864408416788946395228306601121488695925506952671195022101025812660289852425459961110259714667115959261623331429019289647550879187790776884906084716009721516747024603445431305200000773896705285117453549263201221572075849500191810525143895813406225883714566410221421444332882487200728641969530961841550475039186660365344325191149686080501691168423915356595559696298634473780291684058852035853536726628065641644093389649706949477076280065382799942778837983671869400199075059220834090832328027218674538613826250029599621113376399745178918379687361970665727892815933727037090637595582108149705649661734285666445452491577402532319649449177230109462391903851521229247075515368903908885148597022318348946059424007217260868532218905065469369708108956396639445346625678211837084500395664190934308155714650496530673348123028316894102160475107623008364596498891725237585915027535427797545349498171940278156261208196014825183112199546634396638955303940516150894170394066265107580440020930921248563333149404436308917766008436179667742694702349507775481488108809284238449158927719630788590908212879182721705873221748152277101493617902047227217275123222677050859076640643162311401697847916585282194384923414631336424987868032074144736304345756051857724531023220162350639075144134042711662899643409880209048478844636152212257963851209376470774517454192491692667023640985616915938951072135925032239171745159599307203181405247776584032873098531019801760878048459655821292925012157734815714871869094322900316911142809857225432953022253145644573148677400730023600332522885731170415328449797586386147312098306590391137322079993521554490330100403104309610381716249251838034398439045316275022908420343474775128482941106025906707291644843355049215025334245859469254373492421774140411105836856355489893927610889511284047099418561750670979735288317438855793557252198006513637708544601912976837841053856809438620317281894851401362934703958236116303766455273406960312936275726953317455350043321743704997240105826747193037029435662758529649923686917721356004997093672175820287086400629032099411343327960699765336017532515782843906638486558469730158531165102648938172083682251628836524283279085367685423122880082911614801748526117219259256266285846059037377367970501534800283253266672358328429643059968455513047295856991731147082755620056334640969205466257745418139964552122044761827598561911782123891406518519524988220557793010462523853859709725399723802308521024695391472755048255488605605976305099457196205988901749680301596567216575033944200804664308916795217436233007113159162809524235801717511848433787905716706429320556764166308124080322671813749107880250879055047784907930398236964113182701866164695811823857505164629391542976870171728487753951683190411777645668620679285307047339349187353858081843712696534407820603622735588556769593545434569072296671621915906452298620183206514158477653560278200679759791609536207345588805470585335523948639551204480088319337280908924412474286419899622105202758737210175669636640127844783304107310135637906205343605318990801353564165230503960242613873530256336322146618258231397188854786595996090922676180444640925086752837033370121315503898254170429540889531745805318141190197985133968521969106062775379766215511529646876260127231829629557205453261233937561696885873667783783395762615138980945321604344444691979996761253934647706828196835614305781637968574768291987982334966685572610032454342697187750618297115889528410578776051531533426893819392426128638689461718073082521278500042413733920703401588712134900967960821043710011383183664369614929684799679962825178462059143305893156782398500508108674098593745360574982706062286231551913087858118706052864014450144922363757551397921314241414123295885389806127872189448260062227463448717153432326229714493598133576955301872321741152972783279259902686335671775046741590522248623468840338192168147554337333168853969222907331654933547330590035571097208671389897540549060942602900282547603122154887247609882725837817365347832402902809521795331578457850181870856262044004908201240516404858354282577633193466434029127568033626912094854645893073050683986460379069796100876226273932642135598618160839325374165868612077529217384558290763533318082238327933636528399412274898455202997471033690903402050450186017108659742890063130905765404264862543091523749650157453063625391593224530663151742626679471497353109638921685824868244066317793621692809759678644822130114861153182952149249242359272726119854915888129601586493455572455295595888306818711972316558073318772517987726850074213083215577092947268464066865077864263500942335376272573073770038816725030894413355646209176443519658176195803287377708866526165272902460616828789054977607079437592128549788801530279051287579601457515476241303938019666044824061953682596074082478425540849608159477951908254954471566258156680452046627451131934899105595414369142079104180653608769287275731109239293261651274006746967159099662422780600839998644975468560797748446113133800571541276410999626451929866256397869646282335898803523320137951381317193065039784157485673226133930636899980580680419614445678974635390182041013669377762720158802952426754616985371393108632421066599698397908836056067312854042540096733787321823836346604879737328610203387353850472441118446640678645486045194157197401358881588627857998435033840816787598418493189976373108203310125634755394133241706337246274096374273664254086166620380478186779027091678718294848191112519753598782115253997476776192562507607095349104814424475792944752514138700834005912649408179109116175702901942874786584099436910141776265328252665408614005365939040534282995469063837924758269644605733598963185032116262874784468318626431753889941480877311745642402509918880068341349286250784359798387326280629328773600548955485181957584673683585302646144305590879997245267080156207056665643154756601099728351136509246646696790674911036440908247089307478984076786115218593924583248024675691637153830731892057834822617057870251878887321179466889314269654337184686578586197749380071964281623467475719523288043651512644900993065439548098563150332375718903375079207280292525491083721665436790062340641503740727967408799378388762609052797055693061709157900681258992483594901280088026938525748847638165426776856011818259732519846586899896173996265166748574250644958546090696779320351857424611270006459564379776507754275292809878573239752158821915846641714584030567865768093830342143472886054509474563926502253612227234107115878346842701152067557670439537191947376024557333682030834330315038948410704492686682574990825487640961326532400995924394910358723616311345736740768666343351729954281251608121049946351248775863185288481610046688742507714095793940566724526366896295699328120659379270990580261986310390733222108269392200305579329529409392094679921264976079758552346156492602196962346571609476160085894174161413824251509774557314974172430925345890077055142463729372735544889087967729060998237334410016282740792321911174528155883714206482428313386501066697010875059515316085721798153831330415104927797982584958993383483829907544045625625024921645524365210726655157602297322232672955809825226680378035887242514420443331865492966089151733327707435446189704895330058827000348678205713936201486004597011628300519084066025092370717376314893770309174697826855352863185465200777340900133367328752319178205973426655576223194057336795838005076835164896145637556120524166873723055295858386874712365451869144124696469882003749120618965425125865669173219541327952345862908718342486681874022012329421277210085926972828646498599005492159763549354524873934253496516015168682492217359223286230796259593121174563509368838739556009509183066657728264127063032960756568889893322700314335915677993914754220654943137006506171231526376247046430268179142182050139520848291205770883993965851372806328073327644150907927198699002626993953825957034558845619039047513475130197414059362504352398212768108536968232117350512700041553440281074052062673175488244019456456176500084009671519456144660957537571617356038052653868574905097704771936726185061831959320422365523853287793152002289988979341483676391813021971765123086892116983413915674712741324377177242594937794125984687537210494493167979936280470961949779159600973287637835486055669491373489071152542433556647033616164274719171314598839450669396154594071857906638380932231869497815251815241619350600184586297055275968988026154437152948397165745342782018997154142178059742566938512434438292921264698340157948377451740521445574338382469340263307173589972658695393643916189505987076203454737886659379600733506254415470874659257000437402148621267640821536688340336467250715631387478397055188305248670032491669048912894093508907017551013320886994636019612101266287555909413484205174470923509784678734623660451785130970817689717774870829616991424266717291839323256420680267784400769996456575390609296473761273628974431716341404435285987878949473198071542094502906290184412099322261026066730810885360988877620948046170898554303722827584302264903535678905025156305813198430429143666987895495903337708205707782839179651112776166707655367056251331735741949807742006931788032692245468928864184346508747785284753807277419363893738033477734895481545587384472350145375777329452423175956269493504008269965802232310300321015726555109858081090320242169006009518162722552530560140564684622831954576990366503083290393706785688602072265222896740649045470379895023261288660112422978466504092762541011624579445599530092588894655161420971659066510674859561876593482669997449685420155194376767447563180964844954313781725150170357672900814183880523028579125031418367737532297727206427417789428633119663393387615629994022064773856166721799948311679725038430527547816216791249013364669057545226322594928939028665139094731347561307321263060083538613810750931729920453698989922274344429262860527588509211483135211138894188785315551719244190019392753125816782279012892735593788965463852934923608617464958084032941659853012888429446286703990358247197255654588496911335541001757277008427560405973674631947152165890284462955474247835541106746590665065005145004843475634285000346537096911036166883526039140630515980046501440143719873683806783490215682109059006669663377611663291075872532263148182851612230195789803446434351482482895007768743023075271797974489937147546609981764284664218830169132725718631222505211833428692105711531013650932672983825260311543825919413270640667349472046519707759502606727314996987892037185919192582657398147162983502118519496304707402472173727028959357061630744201496661573127781487528503554386678245768520328886941106512506195448031926755801379784382240335291920970180333563488642973923780096122257288426631328335615695034640812210872909934794194076995995906950392261541532999198229421427242867712645893754995336887536003891641967379001088102099791008133521330105341619113806778364817647024357402065787777706175651279328990980977962417781863878111547205269878931002230792395425227824377203965500641144215619261364128412037953516223492200711958882859954140067577685641410578659962659567391832697778455002161774510029233337461230136605664405286310295349204619716572738697100480876017178093472509148751145159200285687026841613445220942449028323004696914334873773665632848272587251796384911353321449842677749287727291335421454955852516786084251980566320939026427078117777266467671192218875989057421352663249478539612083370627488217411646924987106714258965638833128542708641899098394184273355834869351012080182447344672230337145018887718503082010923179063850438007679733887548172673493596892410427704055986097735773861630754666780687974444207097544444266561578090175832645285365486046555973882827715178372113115742063075756333763912860881482815384134952181068754331228791615185377980077781255144122662145805829986020432216861216066217445305871164162578202318453901591215691103333176984901926282173414702316003476042394113259782933785011662157937205719163717841896669813015481329058181296857104517759151978515161904691863129810454260214150310502325866790675670258519622231187060363873646292237098233327602751081574475003371696436462812304098834320840984800373861195150179239205184322965249943000634489980697809747907964904679374905004848692408816146954475372762488886647423197034836880518150660576648121559398822071634860609397997678228216798553582334899055539468357550069201299549690879990492708736561383118926732993411076531264560558034542233511419837808463980004534491529876710785124379357256939862158639078790727203835459215520951716772339484165687457523195062885542113789590330829743235469849058702719528683831328881093733876294713551842918822595636446971607595044825528603305427515917856609784532981384142949340519028234150116532940690420561810873924739142260539308949682693944397991636227266889370406955913162674756895554065979839555979782978038924981148425187710440875844843865581059813354916656500778939368315455912030836409146569876312735510377471972779430936082841885018162702219568837403416978331707080557390147404774640545643773689001507470838617985614851211125577450128064434125798128961814552727281006078108377026847656430672519057227368873299797732030664009841224487589601892388232100618005785563115644451995518869507370512754281895316794932173043372528659841633970940635541178724129084517876118289687882387091250437819740387709743013350244906451962565259810029033134875884185535836112683046120336209704986820159998908032895094080325268632070580009318880286208796756691792286918759549007911350754125462574802898660090021289849885889713499862813134357007460163464207472399796132060362281600984233919037798284924997062143398550673486021478771706744765538747220993946796549487870446413475654951513633279933620571230226153840396713007647693119750695599465654131806245151705511977190911164397659021583263288639698068424184097949475824409850632857538289550859900161443468028468843837424777219314379846649640797263623441167887326990459448384140353347924446884454187867428788876848292795241503455534893386617636215823795243826850621905804886713534536924346528001739349465046300169360939808023680185564340156376146248252339852867377104880691195845121363082658540282898298605968375949824779035326706973185527140475882469097542782423040355436041926879622146775759334348882941783711475660025895536843725789911245786556116666043735419375633659593241559203157670321006512287311852665971626948444751429505174222097330652710867902896654655229438987553340742905754757716000128147930036448122044586066755406241365628675703326004176771555692999135287316947715659367909542917520868657212506654186704003818406365626165988119185008734037026059673536724583633893231163976838093929246175346872195632670561626659726870281414791737307183567380102274997991333267983616539872577842768219400726486311556524167889542485935114999704929277137545407847684673325535761767422251723615627119982037484359886577182727933114759566133442362319387606816636957297693907709236064085297607658872801834759983566936665267396836787021017167283346551950300302210030911066810761546210871499505018311006818700348983177947897558606866388429467692546091636323186887311004434212793489741292436769620108712783522659325562254174916659456507425062505348681237639921444019946730444477738766647373358688785141461547780397766247714650197806729199916893525355039452852900287930353754178493648951128407055073944426658199576691672941901241234817602007343959416860988200619114100695320076382596633752214008110694231925757280136898173079731950471346731436191866520140652594535712349227784745186971916362031575219703535858956224381934316392439032913970960223807968012365141547735071513852799952848247134806496692781659900650796358941695962021603332358466379612632350235035255733625311086644142293754838371611856655377962527925420545845040900214584286324352303069631464870805044796403112724074054090109934264477816800423181987959866199251132761870651671702614182193312407081501132099336025282031877179705577219965516902722321804799731023032990670252703426472901274963507353795367833511468502016383326455118953720630090449243852489408819955313148831599611807596211287500587809027101135732531597785569627987200033763711755435067240669754886685019207639661699348395059432644722014805387887880070193315489281016876822444009749488622955207211312634916141680650945755557027646828569937612119327235613176227926336755082043359626416111807367117269876891255066938478019213199000981054167740169561290296029061269102662492315535129044235359460284108406047735908414080604935809557622235064170620959569977673296125473160399186990579412335588508882312455691508303477960838611526054334933056459824792382947081559444254545971116511776305188406218032628431781374946226034143149091732915807133960492458927650928222476048425688139823667497336973045161981609163427148547137293440723538907208934362406226482626427383456456131722695374450973258276734981518964166955746043731194000117253761758621418418719826771766288714995291364884607594979563337608583399722865177104421700247021327275076880135792478807407927902148563397757185989903112945845251545722421940638141391101215217080719171334951836162701454617163657337916339480001923767213537555894242587211753421779022340265343353004464954817497224557896877539972152479005692383532183649587574166547005901791736818589181093399095686828205862352255736957046376602319306510282911635449929863694356897164923736069692502482041897624900698727092783098596770217893304748234827796255316210538206067480375164869895889413603641629666063412499714510790031083655271283854416903343533896906525801227935980091646617006835815415059921743018670267581848736136040099297439001953214971382555028335871328742903508189744539317591685851713224992887206264278996539795212840250877678981367081009642364080602045260206272751052797224811576477516932458583153123981962714592317224013340055509839602118748362651138721067010626182437838518638714413328840176847219799584054699563261395378103408261879118886797817419002216970948877668303602001526000198052732407073972130073045475994328975955993696963829024823088612372253948498175084901677828771662113651761513772441860602301595057331350897898048334650286388517476533437275811168639572963923292698149098949450766585410313301840767180539386825531039576000784004636786847346761673017835891737427991942688020071574296569106663394358622610475157846993423994833790008578235205405693208638909128783036545950583407087144227657232319673501264849947493502062905955153107938160155162768927700764192462354923111989265391862209690426385767463860641332144632460051893016706355798544356483898725225716323174535325560401667663412597420075882918794403379871114809627521240738600343077072585593085717473048735295814853551779001832206462564780585621232592111149782924407864778031415180548437214067872050270516279373913802887817440099965844953334903581013102538714282716439274705879122136641250867938832133171841755121458518489925569561250128315055648238442608460565265175961170776782661758807505472068378893063684408802896220011430776474173216156446505156250187608352274269979977566695352732821189042938147806004318752253211301936901947236374445268731472050809185986931035377670870606713170550932547989061264112257122219448264024045039886141847676827706211345241427923281892230556602139561841312166816107911002112293155999865674965164067629067073936676644022708908847058539503220286088161357173141814572624353299200606529031610614531289476255352000203259205171772100442867988743304314798939205018846903140203145775140692320281762764263558368705481896372133655610109830235866124658151356182237600888739861688300167617922196805201461202832859535035210575564479771821835301784022300541070426952841178124992366039926691270791889672514868399827440596821146542588942388457043142430259125421517428680215212947211998214153985378084936489502342811075944790765231459395328407508417605586848106446504309735264805805495325674608049529602761243612106842354449669042136117112604559608633617644355155986318656712812684008364235087362032950024440084225390962028920145656159915778940128211746630183072263417057742762714995599014842813756453393337069134189521468696768287829107512181621537621641241823855848669379000963948730805171600172096500267670399168366743212149341561384415204733313715157197447250341173140838123978896259483403932191115258853708769393835598986297367368660375721953261855555492985365604300435637433567262341125524974314446316863081252063386928360525781916962745550645079967807874450945461999719281939851311271092356107156505217400055363618396351540352283896585479195187278417464409051248499785335967511235734329512798275183257555871359697587974892305060059327517419400057142755540815588041337678946215313770687311070503510822402112372689092138059202304033466711105872960494253927441148300772361699382777321306582007891165970455356723828573196353365226147922487016612057415602208437386324346569237067976503336896551997218062955398513994206260526619521686253289543805316226004010358219845814920694248669323136766776941624403845114058992336128372669917593068798007536699680110210157334834567587562818563019901158536679775953028522713213933574425323226084109874432417866179661334505776276295296944248958509389388695954055726090073562689451072457829869497042163576370937505699050031292374925328629406089295534043677755186257004276883464429657238010650364457303209250725309923640756743715724284385166882068255908497643338805862671863258296061580273629118038223069701421864283921537156819469945077230368280083017951308062368434360646733920947425575418069311212068215543746062805950026420292375671424618461080320006251836306347723806544041427654741018711859963962919788129865236943073468309189630053580042996931996618375482571555390752740746177291494253220756347079022667383805481219578078829847495012625015278934423635108490738655264089082781353735222242428403749971842943046188994217083364193537245566119614602751733815986265575347692212628004017127362881657104550880282831785760269837106820453392526464718664612736486515437648926714258237466849173896450251409221081250320915774270666676256631728332998077699921085880585018350060989388584580676126510028466377307929068204850491395592413748024689995303638520274097900582279710932741403480873826025267115630063211379353586710395122854420122467872246002446436809306568918566512012453188135176027409558812018286639416459597901884414289115267869313111717295210633111761896353773862084139646024619643114412659305480993583960178053141420262409040603761253493297204634497314034648515643470962894589403170207838922646838839845077576146665406355962347847015254826450132142444772406136867321748875552098829746023486683041185434187976745374612618950092992395651849280066919619691423603953810132312605513076816106873993260740145277545993356993483911711196513341681524801560236952141498960171249124595016346985293407766738127403270982121566798089368111982873631886637913954736918963930185813933890227951155210777834855152449877117144824194391005243839931186787355245635598695667109467806622831056386638064030038823283704765631081180922669174321895512250767395469305088673544190203350629994266245080616562531731675285655957797558646291180947252046613118960060991220564433045826475723479316558380822979048110717954625855760593132775773172240464973016969904283978331453873519516537269792059774834564600821883165297979832570702913200563859598080789412250299245136891680479339821441331138214810737823260967001179333569439424685045298058529752232793769197262447935104589916520592218340898994336681464738040873696703793490577229616034389985137311952583650372298795383587925088522261739686733356048497055513979359932530711603863691234070822634895739177884140573437071795055583103044563902007031063427516051000208557031983948876643829425737694661886758487110247381155233571317138340035392346948748728890945144846129130291786239146431029816368554466160207362701597791409877234517841515853166247930291586816622481787770711848127083857602119441069777145489313821334517193616183904418149043392436859825377390538428934421358174773505237913905883985013557308241627165026328850287254053091323058293764586400452441490979127498608155830402485954292481956320929522486744174508184821064137414755657286519958618341519905571173055744518734717317666366449578745550857079274992102671735956175317177373679237120921614719315524803416379811207410087332028790728687304451093255121882045725804969308187318699752113027046993996995232826290940547492045307225181904726390159623608368411041967130970062426573394995180741598074404010738239746337440809732391859432877791451885192334252228112539577025651950113014947560658732846048866415044073500016813355158900814515640743401120215294219760778391721762038247108076111506780847223996195678365714327558140575974718010587340922961553179820604446012046292783788853409640292212781671603404198622874575766130598189303881142748449838519545291035384123403876678477397863535344174433507490802167291280722215164605124161973104725635810467576744435941033592382602491671672284369744602013735602998560512660681081038396709682931265223996857512798914925649510251697463343773945267868893016975751025503907027569499699393334144434472839844371643894205432949120252719558309889744275312161719283956823040953900740804713797097981460177730479119614272853964540053147982616103910198874930946592659621295988473055818921283521533426079373302212187114021408586614994900799150976040600391281642354735484375746072371113914622027847607824890011540737275709300579146566396897585210998294919885244109625517187401482581849337898393905335108631525832366732661958120096494575274556680206401541445468479979161021043444734266926634730029517790320540776412001467012957543775363305843941211732503624548082576103229467382583930960337833249706068168697597459952094314570442743324618844503857277700927834289932106315961927854149965735708531476112286783870055449205533997791210033801294865329339568188030942441011001393603320114722995198715878013866836336985804187450599449612871496550605850088990826504465770889998039162965883014935817659770637912331006441197590855345972829657849156838953119077990606969351829391470783159187224766798556736680554554361438712617747765063413605514496464369770209462722873277406932906827742266560800234938771334758291583921382914783616590476760441473800838590635734879785295397375078667433590387958585722748383572386076327265670404430259449391965238623432309338284814789629803560422716950434208857999883832335252702396584942728939232119982675511799076208930448750537309832043237136442684142867537919530360145640189020184964093595087670991441130201023547024232610058723402525800909321198774420582015516432488865059545690597443058890718104542109107493049499784110512303330690659235056715395936248021886379780903782226513885078563705285709094921836541227817853272902967693838588346120849691612083970064606374995513433678958038818907182636250651770909616912502385835376759219787714644790789462594452040407856930496334406673489896209986171430252594347072563597113088292460607087594540346436775850742710338046863443204388368860148319480354118053737332499099802125924990743230403550409876871684796186693766706218554527805997014732927154902873603471552182793742214515658763867743673280405784752713923280925239810115556013358570647622531409756378848514088233021983679000609200181364105482988038471437090295183913999285211897007927298554910497247081104157710781571278319584312405615873359027214605756261303056022869098439834095720627960534027648893376930404513423798304865993319952487785642916465572409784397671266401361302568515900153992998396397917955839078803754063828064766386387237262485767539251293619236590134992987334907723373653535628319474057019286100913463364438260061147325835698898222497555996140267779564073774020010375058493646065735181424906844410318265066526134188105225425826430264077553896482119232890233445726402893516321697091158305706682487122249033995105176478418115272660387352870792043488173408232493361237198716964736266406967079588551218951258942236785009129102223649146455644104231402992072871592126339165626422024913264304147894033917948316022758688935134091142438392290148427651494382061203512223343765736926187051056832418875792213375659633871727455129257099394298908359627124061309653617748836104032333915643642609603023768224797387854341160675052937648703960120589369660319099836571146527048536170905448353835657291922001648793704375973990191189647999486609319483628271382963688461586689575156042040582315029031930424034969530106450811901277866619951597100781972269430952199189658009649540838056386544927647120440706289817470191098805062765417923571605755803038172364147050691262477227293592789101888042680218664658968917287295894650503125565469126859074345152375823376259877662512069582870444530097230201546710536826878088627563835846544263956997892801688694415365625790669552644801461774513221926188958308225767632472179467545160111408764331272432072615900765175220968038772979355714287831525357598105595447809086516283969197260208616431938161517487199239231581410904526494487966721233735479029987735676943912595210318471302876451516619964903619677340408777507422751534708653578592938940964620668644201943793849434319231391386657185624816806115276174175417762396220221524022159720420791756354717267758118579720919716487651525520579897030840925381217222746875628299185443288638047987362729107609650455298244138698046798380368727926363538328808070684944718996113870846688119938409506743600979318811726337554999800457600726604930571730895581308138367838650786118679152236375594889793242821016422191973293107089528789964618637540303803336035452852264361384199560201687203754722141180625655219830413217624944633207190569268935333275062427385760228506096570985711361647863778288949176042498787343868654072436156115089551383438144903799516287249375653718556638636869135143255570456684905926258811448569300972074742011833831933881167168384349547169713658420010934648497377563822453080491540131597258075943856403110709294771816222132211754411593885485151412501281907963623043159689103209992608808008568895827384859820795427718131007393044842215963014614888388617125351197965919401277387564949064998019208120928095011288021015358365554703463862672823203455070251963610598454807781572005734902206728659670221886660068090141625179485068915506789067301803745225695282877566106085472494040332823898287304964372275818899160016875335207327753041382964008533314191953525462581434625553910431284881482969364942663861459761069851121525357626491503070513122525473341595543392430263177684202015472415082392578453886100271468923678420862576346830186872501459024139334964249694456816070159964195733818681823025109793818244593200887340331686187910822972264453907589402316134923051690282038135879536762511452154478628772310001148041329745890006651439449975472839119684985506637539839457124309216428008674835842467424981157137091485333309247547168073598790678651814654933370498549431579848908184076073231679928576700348336682067712385519396841983615857300340721375049068472939248621012620560615845553855567261929297584343241470838611383814891382895763788448846686450769982946012506921887451039300452425495035200375319343999987448423815738593254628187699716012568477186049974261725704185979215783169351780357895411881311823895893013882994264462663980831707476470352023540708349021246625650322375740808600571521436869807818186642687937214102393565826549409133017883754933060134986080979212261493763531658296325937425845377353859707324305951462429985865614540005565522915034110515735880166867162804803448382751397666371011540113073273092491524269057250985696424930454878762854839002027636080895391893016595620686505840659815069812890056991029131132557754284279240425064341017210328844147535142419383430093070755107000065079431776123570853281178546366371699830821603978307645259544956659387494736990508269522297153168443259227211057819636925677228587876062141926488126985004487831478245690266146077951027388360591154173216019581183074803454340436904265575820273337993814032260281626558135427647572049471850730164345209304666975376491725589411600567473934241091039249549427174594029839843403896668508497964278979278440451245672819267373772674648038157551192914500331995302444874145742578145077356856991392307520702046211461169771861142076803187131492670311398590548324481844375182835730792651321715021626357779340833017391411471553768976510537089823095631351024794404707547941029508493029142037562131673547908986557783940963533676466158175166941912345693607106834041616404971214235147063128953641494695512945623593658413844580981170768329856272604160382026178336549120910562801237697812361939979291482776798803199221205816657499326509745801476013781575586942310724007631731574632939131051690535791691742690649003168537028816970841343950551722592304227460395072861240920491801820418546138310422806643059003875610370430008729659611696913250553624291798474587236513312715713739896587216401762617656616513607536235358314639293670816541040390867021941096886416967736925427602412271334569372468883955073250582091653601812643243116772149247735437984298849329336508481682297627023860054593554468192994823924002313117070125469838715739002421405951651562689275634518126700005688935449506432177991501741499623064528534863766779930595613866942434239695521440786057879286905916392857368745147739677673356794998990824062246494383611007085757231226406419745383862819214727366863389257344193895176064231989198669219911685030903151585238715272193154515671262809138388639463759450265524338512556268265155013221970491874161601275499291139317877749298889174923172782689171497285645317324652670898277813918299161922963141391097441149189196204621602695236481485499308927664395926915918756785811332201813733968514224036494639498636091614706348749382809178084207191770213540180175065569956117381775693633623221996493988356802018795561978468809236025248563032958669196035180540454904150718851704185738872912381533620471934610088785745102829465594693279476958001665631993448474768145917912997666942949753024530132675630997508541842431924159846238596975776262494416863954215450529335121079616898997051451769861731453873372401073203807270617797334498457722623300097533405297899820283570511275734951068921388140633347588046198039428967531519050722890411729839243962296962713613111654497066409268241948786307449975395378103025283191999978521065015343247077779963831393297023501356836463649870271243225774244431826862067084434623984652379710618244137997415747326159813021426347895738808897001637321782575725698379285432064693775350570601194072407430825764623615191346185642341791272466364682333825782305349232896803793640509469429332995822462801341827909402050573360658622202618186691900990771648609680820272866956607995737551808984104898701856044714756040145178438303670591634038934852377643806583781245550396441423590265820813418247760201086600739461788315152372869945507473279236944482648496696692062546562579929370314483631467213880867629826852781779668667937239057489168079104274106753579546580726361041065911307266287866617278179216235736923861779274906635428443186309453504837982349843891645125470828452757066112280608664350357894097483505085570384370413602946286514847537151933345141644330763716557829304087213137143497990487569186851906317475556195708160678255129415469448823416657394661589359491193861344032559066485662726930196497380252980660494694516251897186619150782565447895192173304336292565009855877564402693097781280794196233892499593214945898380237410961465304246810336822903005058114760982169137456012789423880730424983640722371101536786891148719196596073975560874340302211108415593477975315421835291420484689034270149860702924089230213639249151340966944118921014900323392916990469783255894423355283567449593824873070582058175302944103974754118049920069683149398832762566786729932459157905474844287226782739701328145335530556676724583507128988855192144876435455933399683194219506471691414134793288072345030841380028808461865170750915109258546423594803836386158111203158554045046205001368436590587632365915165000972096998090520057675860948492903083699167906895203451073737158047839455136138582744271555353888247397477578331103928256573699092579788587728845394690664340699376018201534133353568875614032730557265947779498764219425393172937463540983927241294966770580085983553073629279238824044979006282588861188772015515677670021153655103930608712242786276510677883957089692129213665823067336716505905993166348663398413394767827076377596661663105085793733864216474308175132023266820654110163582424848665501047578944805608450149773322868629814042533509458815973266222184628664678059257922258615589858080344096348293241740778432351135688051941503875098261240107595065957346879632129891437252644938387362483867740970032910156999876584096919611876801956201638475310507429270317516649260193032621375111103192474629312040318083400957414461920621160902204896688276737812461909336532425929399785914503609828255747903845613397215780247865492084024148383292791576665487415564552400761028237893230094570074242107751696891950378038820305183096319004072023374088319416040175741358582827578617939694803020451938859285345586806562110021164700383697332511907565828787597165393538692791158972426090623336341521458398174758843307420273414984555301377666754608885490339223869673666615778857269847443536540402858938099823595986144457718154464516595456849994873032396951927009516167029491921245430863211483967707417121851474705681654489212288650973643123858853763362160908747073063961183966919686607442856656928510018911262130808215093842277553680066006620020994301600838330708159247291176222975517108875749139376131749406701514374037509109224681895317354507413918109924754281792133086131659578232147022975440150377687822047274312134872317176304424186356772129025704116144706638551186637634775198459678004043046466929932222787100190946294855588076606609706626834159538645202925426814444523845888176849049421149771727044479975632344991861759257848265426832305228955493258838619862657208102824450753422680928295610969799795479786739129415332459935826963209350797529268813161547790983652479998612261952621076638567528229711583379155217743384554422348345055862448734916420653143148933729808202411653675701218432593599241878869175395249578312728482231199544836187615253954524585684502108912480763166964783252871315630054926710931693902752137830547556503040349988401929259768075889396067177010461476642085229567504846507825705881150947589009424009162249192224397917914602012001448649935224725526168187778693285870146302137741084625022110789207376894320193410254090577921464063165923349893030845226446088009874723897922844494672538138797372141413408764007740458316516438795303405666439107376527496094309390336478121226817367823107666676939918183925426194828439852392004266363668128939847140854408355514543148514489979411330884227242907280244044169927179428463515471806982218882452061942933001995674482673013496989522211840250403854721739284510371199594795764911375625143115701065788395035042908291142917592684638309554430215369509668351139001001362087326361961830955882244279506493290128041458858629886722764019468969098937295106605406128330247036779866256800133861237302727220647053339991774183560327377049578880661200814006320749688188359177328783739682373967761097151614274076247414865034955821232097269790164217020176258007964752076826574579966333107568000557934122067864294201397869856879094817408762147495688095283549246982436512601711063889949508419613011892867658465464713134536748880840000216638367089623625491243679543004160905560371772773993227124245373104992052244903339004307028576466814825586689170642477681461014330971358157132899039831581634192312652795856033917685870678937670789311986992516910088046447693827248633021218183975902274196428940304178877287746671739912865800134117006561322578896330704828578482361543257953958935565440365258137175436385262372374596573006185538844753003570980741754696352809665265468194790324320431256960975520103936557981699367048120101814344581505293152778618882060119287901515597685590523543724986746606902650562832906165746422615622028455550206439010620857266442096469946426953842618413761478453272355765007574723554163508080160868380577100120404428181709648381454649080615379438874813865303298215690834632007219507916441135911091265467045779753657487011736786791391931676663402421613325690983618644528566919347416146486977701824724571659021378017437332236582637576667205891927576506411061816933295900589931707006187844137632603589237481385715892881126033588219070181056779419969279319430531747676889337725740282380373185114696808683568447341474612679691701966718720169754451067118934496132674689207044388435570464354681282508788676023718648333511381938451043960774918688247041269697338197364745986852391757064737972202448956554513255699159218199427265183004812844830227313619436287949445896973427947810673012420542083571812361182762654452695980531625353735825507472820976178389933141158821344517270408312102808351376853128725428451815159988714996835285191400148637844036139342383727666849454298718526447870906038126653406773928557890781464625556744573850380345043442470815903803886742337768721174516854924382883433598071431399980719278848921220376368826906906643353495081071965754370360161842681630329985123584915753916342530552045542889801292102257939850412873189225859901547126158852647680394883739187171846318313006798343705061704010409939395041777849620064811742081525378159612859129731574989588047058364622272045532849383001475237151860087720622779059908471193222510451668775068776105692230187040666222612414141393950405511954927928220844214120768283399234701592105698515750544222383289425944727949797689796444219422755607828214053211716581981395033960552898677132869304491002123266133875335980037096222794266345693201338308236656983703277349320452441876930590899643536208528129398981661615317825969600783747763166650749287870220868787702361573504916101307886512898673614826125931731096523155780704840207124788094469501987101739698998047621848149463401138243209024567897336754247819807552336352442272133110576478130483616381357121178915008893545385871585621460763490020952479562934448140108403702886469715801208949066098855455908465054420518531666117019782905237617388923467279123375916659607059387956846460296553557721541561722910108524208195157911314986653733477411548731764578456353137300012708885360892804592259899576036374771232081864405097826872220956226118600015670890525311921798903210932575587405713233238459389226061396669691147985049896859754805777938154568687627545348468192516784902461586414898722968431392917250978109540986562955789130053501915964196639828132123176072616710300390815758432729285862680597502304962309706741578028475848865125406733447460831585336548280089073222296658932858637472749938775241377034982484112832799198912014551840940429049691796466481959269081154233348203693944960716809799940574578374765142601596558905504507631181686662273038377288609539570247772962040410116854089721500600434895980433605232503110081699243363065211417581904187055456769335630657724081787234596976173168892528951479617570504545767577343908694967409130251362573068265414229202490253643357823069337221877273183621555605288809651148618743419935123740684341840814629390913002671237727218934387096719796417641204605918635511474747174929574898180837023743056407997949240232885982588052825520095714695261345088392845722135626301693425524053056987780799994876522671090029304465391208941080605132943662252938688051318086298949966784774789082154590436976004288334010052419264398316608963351760544038923123251788295854671071349323091564058677740532822741458968270651921656320005075415244054420948895736703867921138473045146889505559368032310681841454620755823063263028087461123526886812898547858851796180510322770866916057842414520051439708818539780363986920188770129590423457055627245066569696575487214624027094997150093074548930383774535531932799114683020903083115005051672985352843261356755563640906361163094869303248525084354477824400442634331968127628323676208701869630121195381390802166181654411214922452500526979121127538403501399766001358600672970847339419196341609580275374025547762348062975712011954920837210399644209189429835876325803759960329230147497623021981223149468447351672324736085728785461919660067589109860051303624368417148709975005558917674929677558162703977243293386395351997147272088147633741604124230633534064990163048192946370479862634399752430885859018842351428677160174994861241673299214522906993237735871702096641870993475990427380475813024948328135014664489925414842651840491654048837229570581737742836077104013307605852883432044219261475003866586818341012641039627763168505192900323990806760930388213837028144428911158341707147917807847376128676432989780219190852273947530702201453348651097282674029611245890608302958549171872628723922034980974426334113897214973611782454013416222858643851930219675908401791710007762555335598302684568481711345827057910518202531140549069359545137928995686086589459332985795633852928524481063098713848640336265963851386590700728680329978103103523671196666927582449161960293739237696238786248498098372448947994512477555989606903343478314829893564830835623489031079528560985713761655679470641960291454914295700098296460801667879851231090185606927147614296925935127586086546629232453805623202970705393811484037032049740701291497200594533574769176879239448811762068181721359136903173245665332171549093416556444213944414784215660153440369029552064795486204524201345271933325460704778511185813051629056621824944634585568706463078921562321390904420387228002064704478767776538783845948907635144151599343036415827850874352163631881914452316638212850816976829974218838033392396494905188464357566711309936390441705112307494697831483176555292770497796011626747455792904353054810408645197271949550627769009479491293621455901593330300577704908254507439196527983042638480291873032967721602980601113584055536364490329375609880119561663921924713555061790903886458385159183699693274739332798174116134619816874533069702398521102250747261715463776822135653104196779800412571555700638545876219644795448406082691683673951186349777583315433120330817114952137516950401048402203768396114051990426453009411911834988991867788288074725841386574767243089750750014052734519966723985585503723028071030886609073574958838481484049657102197246831854290319412972378738809187770389168449967499517347035696825419864498828251209385167901466235558300639162695044438680518948804553931135523754285524998840434677032906802492787760718093781702339358883830648790349630549958391207120541345555954976581689608766799323952631982066361155373372348262253964150561492298949023482525218477666500878778814537349242241829074043150452210782210609829274985579937755836323027268210432207001751820749289298789640154791406659174419778244564258732785499594756344146765831711969748776517197843489141882814359181829935168212902033161440787591873693778255777180402744951084783757228276880216936988650220200023917406218843050997307918193524741384220552321918751437935926449047440080062862300073068670028665434996309621051762478517426440822130887060803813692763481025717989018247388605152452810391710681860213433872622532377606966296509810987565759398196660570868840165207167506245672684752597251541519969113804807969658987298797923791356066508588327569959873464294846417381226896184942341026332708263007795857440962966916068501895226586328326052664016627541132467454154416642801598561374821658217924356458169034904119384691464669926852118144404660226203852509007138839159341922031057834183364999486819540333173848756451219317584141673393419898755043950497723678122675316078083200810160417759165633692084302251513411183503614492311881898790580493355293469773619103467798451158360823584262784835399333189564057782077073918299575515106721151135816813580246878047387278554397994088676561900029013198343008175795600924168528728921484151582772937615705466165786118961890503498024944481974579664484823594235122874147781867710521733460018740014930136654556759627634483540973327852461438631669373766955780150608813369391934506344378133188696030827060533383217369533152782736980207660942172852395433983769278757517451340952098778610070514311643865364914271752577320403090677665895475636047079414992497313467927406976727901300091956205495421971769305813885561563416712888353439811479941480447319736272517660259842930449082683383674372192563720970492327685554895418727920378801842309417631861107577330237124446371351486863178691745053541594205560608352072445763288052585410910338891195426744110745183721556015922209146304818039945466263692219179579323789151900445051179213978344605926698982800275891468794912054150019351956073562835681758087659273276028760850903233204879552984274967646630796354371357888827741222587400506723925051303050511989940933995590374915126216340334856024456671591580101545499012537796138377297568032660771334609555060404142641481479693838722889998185987313737548368090178221709692826898458549665485251756042683341020298743163506347238083849822476838334264109220551312240335027406607293079536849190128652138082042808816396620869433821532254995771949420073363017839060083961131782483033452338449459676100200223854195437380570863090817645736313482908534163366151928844032758109759497333678188131150618921246639617631362762406167069287472086767525004131799043296095000542820896087633230275951650292881612925499087881155096075912992682881439854466717555606326161836567018692838325629308118695642008867024955681680226615804750217888849947598617235644638399743249810581435249344919341233638301732523251658885588099480409601139277732072871096360134097629780583689259376901277784960853545936031158636443768155523632357816429679872790207251335414631843791086634578386517377784738196104203273388729801559427420397325519006827110378087468238527697866856055430495258187851221808962248436221078917189656360349510233680860274493297035591927561030243792260495923916238134072947703513798015996193437064802187325343588581415164633623983854653784502244876889642502770656070973751201122975491925629078337035407612359382736551324477792390590356790795767520684167186896182962627236954672184627526206516134918670470831013909717553788160715285298645645429927393407088884257445271458746100454676422217867906390049939171827667091071358892507275055538165626416810349166088500253367765768315097271906718771074213356013956087933854805950501202192326851360724426022928410416323158078030926127729860687255450822726706335007378690261391575603810268124861305495211714669151106131718508397256072460696103136852833519816875917785251800307105632123423443742286921706496224076131341522867128720936901665771873573456246030308860037448382397392084119328210715426558915178977526618388398667220776734608042049550889712427724773311723153793771175500487484903961069534716150497855253433242777266457166661679344367823417402791397538681507895646143336944762247837215209236598536697697249965076211843820196486091213655132487687537123372605037391732630051901638692132197122034156803154947214741545306277376175692788795074731450366891247075651912148179974915828686102848080878399325546964320991937983287040859915101898919139173074115720608577759177033075501438661450107340658505685561536091503610852805629025251062974944666880333776926604001372652805443684025674705908615725706188854882075476621888586995256447866123641544930325943878963594982677174929932967691973461484777375440386529162572052453178019600688265174554312571502307949229737258011566551135092366060710542605884505604406372370395652231250286986696649576375740827476796204116801167097571740972642460977285616047549852505660719563897429631102698029971574616395262533521240007249832677161895826754842256424509246496497103030606258181041542636648961232758556177836956855589664156400269236715020792243778829904773638496686463575908984923381032590788663760552067963695448819524149034067049843841807401414838293773199455060448320940898274781209207273665141036896336438382155606540385910211031086916495941639222074204054516596342686747611018419031852989977891521887087883786906432296412452201761715458273797879691807070390314370502944063913887939171386092119949273128393970592225582390744169240069998972136422078457660831562575773497319163165426268661272905233921302578869380263216519667072140631175316516453364666179204538219320272660732625737912493597476732712456943370094034406987525070765745196255682971317800454410809836345572389069581411927164933672135681148703417013506571136586103171167256646076249806198080901391940346928007473952821621246071629249737746566511996577627480917180015313717577407383667523994365351705549322248103439297470100377207800932173895481520625540233366443564707430971833271107287027916862931058331600147557184636801088860581152737704889407852654206572191534455445493689046335808708754839476386962367234018520919978442710229638135696033672532207424272348513328319603955826865261764686287977705828054118088727255202250030675998919624095976030095410663112376148575889931387680762737723091406195773804871211466875276030482084658472243448768642501828206651881363294587987353383955158942168669600103345045276566509155860813144027511967053742319473302973268403448627105732243045289385171821797794953958197645595439493786626287197549964911601958028568800036778521049181139660050815327665315906927694280847645684524705881311180303797524759749242084902609512974179785047123979672015492584845531668413286007636674712344701807663146992408754806781225451842621750762630790137302130716837350745743937152588415626445389749047519523028190249653819632599161923831909974681009665356508144019465158101351105430092913033318936738185667628968699937343978861949191338700234938303567748529477264553699321757035986368764319663474996589049732122396471257434824499944366939516718178225810532698706384031826638566365424538879176124014948620917880351471713414356806737657807282688649649489794436320817672661641613186728921784031923007297413462722619331850365954328407450638126328851684644787353046518546670354370947604969008199293366652625715681391369766781024389763286118313037325721302860455389127291234875850353449182882213736249065733411061093326559353516695072370581505029683690075982399300110692118918035442948438869179480349910520224220171967323425353404252021088173831924314202657787779304076078265820690712638012829688975964837475458662768511822651180284171795501447301193453737953135329028476235577239709994507495935235341742037194956001472816962349498379097662841091586797008074327874891738591162429385150636131172067537194092116305718692126322900147781866107903220210061584820210819338627642571860087853006588747252042060509732850961013107956239307073800828576213872359185718867062144078757331668858924100511067622639201877339597499193390980761483245725825457871704800993886820824567240653335696714056248953068822673893911433366870567566661962553758877302434707045409502233292355910693176624030726437293881584284821779767676789645036698936622555846025216647116340903621412295242966528664572162681054519197093871060650079140900473499240432369710775868870547328273897370344506934735609978249888399622119124749252527223360468196696348199993698360953838352995572050528500702692366399319881189070126956787602842856979512601113757989789492064314257750256918378622740791103277013419749865093380760613129582914552427291848113971297479112639734636818433145363453556213280933119948502023586608763643203696616422270173915726736513994223116741244108975066738776600405153232046216495774089524035591001062733157525771130213643562747738071548504426698903374203481368897867947950116122698063521859359969705097787883122526076989273234344750102548645958961615080516582025408967645142672590861309542918572027073660583011607559461416543704199223694443497367987064333097497215600524512080638247242623429826580510785877825840439497059991669677677650659735825944991353158393153502423583737916318891931330715409398263529555472483748732436265982956447711238618216741351598407567555411998018070143300372664073727031021985777039923273776269214785358389890176628238787508128841111487466171083886126051961076059939187642576473161040948188350004132130844372359242117337600395013819662735019393579427504699660736716160618917311563724412300461866712443038660954466491950044043573176657039958954893613000365142958850209104950683620679520092882729841549520646480402218357000900610463674323431133176734729090815298093883963332278230280609126097073604321388801056248115592768977130768690799364473565177799850372173726439562966802098222821877762601705232352120490971873956124125243391463806343048609425007363097946328165646625885068451023629945962511875095109512317251928941696265356792375514928548099632632522932501930083606346712860852395670766076669197105678559173005823959941786815009146443070790940821052882007258247840486212467597077330301930781097452196442505537367499542364698332457379955172990848753124832636958350770829585630181299460873941021829539562659248060654058338002715486912544556215194457336547314195423848542213741836955728507945718502761678493779822664674093922416583613023192528593040534052967635836182497704975975224027110992673361897163647015534008912362161564142830729580749929346816673440709092556195449543714888310707409074520930865196118637328609378092621834196542109612152171399400706009881868355916442783293406806038759693728061101537924613698730655062186703973358674896364767379608094034582116538395222259800828861209686240709999862402634368441091593739574171621847305246654717381177231381558301879969254977554354130799010166411847844766354905762097375622771473512407943291037083116781125321180444256420217818253503728238107392800429559436015145984944037843564557295576581408333916902791903374924817309546385309259903554375028896575303089257399823034695716337157747171015911237614507481705737857298565098644553185065471038107746192679280470229979881433989969134318186630819383792288151049175057979348396998212930338887481804931491666425992278919740966452205320648009460891761258333355080058013045724811137948732122544263008563308366664800544882281963177723932138479705863131944879648693997192777972963536440967830264526930310006308782962714139473202762014073491684483915175270445546193274033165306058712177682980516132478439690306349054440991790628866190168374144823810368483665263425729768143868175311455302180426832688642230332738273564567369002385589784852359108560965665805392389443797443692262168224715511333908128555400713191575154621291015820130533721470272939086571990139721332691913439976771392720690580470528591244360020135862411127864185170863951273122603895144546928938228073893624754909646401464401707489026726128996363024568148278771833081362718965120733215852592385393751522120016834798456040829603367390254473827600495960211962088701014383516414080183458098074340919465266757245399148914118214152685895333894665234894183669567890035753359495298507129310434721172587365818549121996335057035436099616458450122706693276664254363599892332314373073524041678228998108748498653260178125490830284784729283780868076380073870787597931840677287009696345782147020518640667830809333537438923151942777503658057619742648382983739083677075408966637391198305818760617888803550479196799268706768952914969287404576408329592876445018000172935237945755739693735533366229054290426475159729192026221633779884169995226980324794035060650504854919615138308890022818969174722567540126200757008028928415958859472514478033273992713221450738732096526881921863629737443295969375005941740629803677084472273511983952527209233989277542201633138852734397072239430225808988944209327391634093018282262658376089185676999631366732425345013576249878874474661766953609825787854183116168382020521533746620408909134440948839485727721021585303934684946524205355122125101693656262518574467478629727839435345641003113069883028091076805579697816228954569937595186174352194059292222264156021723148191236943235189758975040469196647228849649364029992083157860449148931346049378227007342894153637866710373334986793788214357139567681041745288228761913700565081687657450379408891012077957700662599923489268800934232012704902841392176063137607947364200216907474048855887553341802754970998238366322927938669029750326975164205788130107126443214854499154439224249939130758073051950070912948499876323150624085335020151223861987063876880922979903699264722183595188153211624551352706208946165346922570633164227694396980858219210838612481921249068506334354708786595758056777560267943949313950897540145139956727468079354592280241902958222190475564397311601704798279727100041234661522507721113767146488176141163725000027824177724864969324243430658186788057971740764603224418862733753630400162985862866204747367760388855818676869646811143711451711136844196897012928713745837096626460160091200549240868444786292692434118778254095011935783521066605800632832618373531702788626004717522979699307008807398219122138028063689246591462928154468747463536653618873715169003365894168644603737593169408795087697582057455919647887015676608939065741898183440079780306282302415591149374231835104625393781364060485296599498014591262427967842033280810313140409933966526128644351453505207779005695895206005300312692189846900335373087160434010813204483079666522606046771924183601209810726896208432638848220767163754404526759092964069729451315585315590090195972137221165005485197748720605764399456894993686858440848910301826635888939287510406644179242598153538343976921639919661390744703458948362504626676876595404876308680484437738105991996184506918592369718249211437967018685088889280517239850498861800023223512944580478574269736667249829970609040414032015925171888686308551207265114026132775329242069936040574203915161509444944545318337057366706576920378930498806760486974358903502507466890140437348951920615809759396171195140896003375378932707460222600735319437764230794592857686255118859168507546118659331242309924487152718185324656888309895994916600954747371679213115691945639811748690775155102359337432858148947474837938465650718400725530444387499091845244647057369359882114195438145936251675990458426867096538516545436921429188955446412961119529225928187203165820323743915221340515042693686215484044405302015678941343838903545616081029440109626137065036163883462321676089694279039474860185002610710733629453223153193107887481127288254263445382838343386190569218069029715289652538854362924070777082696055795522495581870491256103311207528305538119686915297422894817976813572646869841662769607738396126619234644800462053663677008585240607548450374332085505029294852518320737994055521368514973415660350098633329593230286814661458247296342361058095660059502443450133458188772174201461348957359838177898041025292516269647967460944476587264657090861691268188334111794576058823301618180334629350790739752724784041736758485016738288527629398897787104584437218341174741259398475559632778429172835518249604417271341205442519081547102719948815701780376742588085433655625393042794088374477194494207728645982370700262356392022607556848762646544887253383715608854128874058369162880489959318098045399487872302976073610798530576063267205762170210488403815014545837870579703820004796037774330079409449008642168041567102804752430812215136038815227335594996518817791252664077304378059733002884789915704945127638045604196868428352732214671893388745207597281652415649475416083600065772054678406231312574493784679954899224483751045665158745579964658518900468543131410977752008475049681411202698187504422896182873704508540183340112967433824342516179591829717967237771263663504996970569341112474774317133961481404041673204674710154704794410083271930164533510093464329022688973765870700307300292956480012455312395521472999224062968983892950171971330711134508105154320425896514409714488173232152705320963726856138211914981190837095675095759691258442079139145256028753287388604013341624991957232593240395023410688446546195545562845482429890367507147977873266149789722110092216691101601557073450143860841512325642852181045661307819723343030761291233383540476366347884792871567731311139318942591704372714858547585310326678253375592006556658086952272342687672776544425490585376301077939566692915812303702231481437284933024318317814671618837609760563147239801131124415121679116530370157975435965315752929397745231784429832235111729641171149906789361193313340117428657888530355496630462062138655192070670875809561950429351168582198530457297742681721239058248393961082040361249111595759507074261028017661936646773451495042490540512589795668281069758782795797953017702427359013980983731238718523680183187565704335667023333891298471250587136671549811379960939113918377599937121858945539696016111463394554813951215229192614297214471442309301686072900232045543369090185039317182302088821457853192376339880672825331399574461447677444269983131054703890887509550885564348239915395299990090167222739078038572826920431823684017069270924949943675468054282185625371575135900736870556184153559501244473805580254376142859471114316295293189244181884545831832169500521669155442855742694640800182899968108508732772383796105762391041928640708350034212438615617165588645722224245409292076363818134291078424580009190696574222895819289982978237491472671471673393136764766652474153154126811472770406691485432063099144942037673474065067229766835733181372222834974759544141496042203244033915815400514916293447406923328790028690779657660020077993460471113243994256458903653844666969727613733945291579919095414819214841253397280248835850194308245951809600193674401001006015479696546823725688332623591188926049139359193784482473225893135714661680198604518314404277221627905782589548507213816839317661717097480514192972720947779867778513338365043615102520185263595708502791723659501785691728086926904705101432565687727700338543331440997496114463311319097587422081821259859088902019435110881266979385990340706506890932072593225504983079176234246348449373446645459126243015375312325315668709982701908329412716733652843445229089093996521882085679081351940425516635956148217859031383600491356619765570505874407450753828683703504871361684087892140547339886060722770090538862244068012166467417300424654058906632595653447586007753365270944563459268788042303491294538512625349944080874216157961136415676652967437349113388080695955303078850490726947071047233413222990069860109243675577062839218261615508915404529221500405140147397146965592610659465033806779192739050375991876487400207535003145861937821324635922524323390217569826697184544417636948183789381838562657398681289899868421866741917085724225474275721946858875721522302539274963285598574038803388719512511678189834005460200030052923512119807186190842443486753448745678649739984234356055956303517794490731109828873614572764375327651168693828313522191430625936816852738638305662697262150406226367909335095347035466722932839744859197490307472998682038801300292842646365358384381731286141154531510997968173835989610510678495020339297965950487862026134636224819654711559329294169880947125337237788302397169924556810769203863936048160494638392701658404044178509061380154816389418460809650833193170856370839510010654432977998436382178610882310421981397919300749551812340189039744901421902072561976400453437091801440693025752021621286930361475409184133925443779998479251922510770660686580248131348120046413029412939907523654103599493538276045947972112058513291873882613954256272557963182668898757143812551315110973462410145067627158950745893297835648032190004279897339775919056678495614080130472123175445798504611446979527807299735288481363027855289718222803610277826425680616318550629227017014307196010792065745030541322238634427510903111167425854574708096572762088949835837957184765592098929741098346207721767000113275625977084628073522869314617577589046349003350245814768172012096595848912254991978977541084274449941119662758137852655871529377036615229574757105624390474451557939158526452556273708657487242595587916170666920353723604971246168098199881185925009073024305720590346659744933250003309479734014594813787784704053627163786298225533658209460089081242853698046556980646084578096147340972975001454676623605605115240643737204737721133933071752719169198495634613183625387535738307017646552949810257127348118999480494526675105936859335681440545900271321644793463560831576325569046285414530868945599779610954142231022731793412313678752245410123845248732817154118566122646018126556621239747466408788246460767831697497852836635448526916031072555330808057885313042835176189631696413112441618938133952468060120518219135683402840705866737028791556244775103592063736531902855981275599925491738710620928811478204603238374632997715500455710719420942128671322266060704845518037103057972045456654014355482147211636277758391335532500654049245174606661966393279827539899718060364644887098602538140925151461866483120330084190776534831407972163585395505760887396629132817129830783468607517450056612243049712125643034305370332987224574743735413587534261840645550218633945018688471455861871369287870356323564033131899550051848557632269764335029348814634126126279625622265576286455383409205728416882954037666804970501130354230982906028142472851780949650801548081677619473260969170804761639301688534242574496678667698052791668950693188891737886011350243158937502109376216954059364933570926622645710861543755334574932742381508916468902694929235297904939730431146974861385195739630661214895485877892280738817776019680728346156551473544852292697741119194559229857075152393261432092338850994816152131898585459052611310838851172338862847171039003968825038243647927057432285697727580728199244346479544454086900378622654414917963922878032076593278067352386779015477729483350520285726013962949173393805193578376780839542146831713616692474732626415660023088203070369025106427836018632117958735108277674038029292820134109589395827338128675701659057207696018908795423847627808766059099400528474488333504582070419456765437441472278053622470380227337105283105777054632569967441284286011656931964933649007823876740982168384332081793205069263011978583151163093167810747378896365565968588143172117706910995088662225030940558968777829309775778300202019511471776401481904613569345155097297293466307859246103117140457456638943093382090901243918438792499498243766258611718002068780732562022955552264926652341983273167707392647093065407553910139818199771606446166489103222714426536297151044808200154039776457721947670280399112017117094948724809382648209900480806344792087310385917532312839604937722478102402012235416083151494241418449921799716804271849851719331101239014139395030078289163923899008587056672624530782814832659931586777047709909032083925719032947588618841760898299162227884614324274061834678172574989509542443085070859154495874703943021642334327840055140471037389862865119263718465491683625881628465069656457758018012472070438242325265582164919629085998141791648141975151620959554725851186530540198106293541220338655017135100837693322080056644547419083304389301059731769913526665869950003153021622214157995532709089602254685165914402916018595948489398434841272722629945563590360216933069702787355134229382989404163365402308297831013341756845385632179917107435073558879435928140526360359656113172188039198807424689023294323159928493190812324825660045662495280858661624571674467175280618145237804606541643935330053571807103522811906465274498172875942549129599904165572139357842230404016740870904200963481448447560017411488439090073560632454361727087487177614896192331954004547651275501623447833948364495611655683407262745640858434939222343431110560079182535150717469311914939598688816248072708652928650532526481327772148468117850099856793260385938959122305430608446996810233375693932744721285149047326464765802451794256015637611725273160537859524465507498707217857144972467280644048052737875905039065199994554533994299205502274276739293451470770258262812041693063142379486493102556047790017504331386258066127770453005974575334236476723050666340779042258644581525272735466784257016011467825474196017642986712660353220501723861743246635799268723348197148538222000084649362078301022126837468815392545648740347525266721606069876957948038819000021170814448157943503733226891581125557870289512340301863040324249185942712159014305418338874057028182581557280821277796049521538410211248924752799218260098760910073845439930328188003345014196093441526632146543841183213310930832739742796319521063064292389198637048302284191494667168823604025778028901109995632555573268019943721647678347281896195284309244574122320020384366754378642560605863778720351289864055768202875170250788808314458132664497011840171760500619943133122951781397455922127134039409333718322539262871898614476138330321669632850837481755160939084818272789907659353437031072136563966520874887394268327913089277887683135926107480244767255998158262746437667137894173455866671491490778967614715600137567736844684016671772214802632851524189739984305352309523302144786817416323088329867107865953348433999998588887949451002347921526376637814281164023767431279601893857253326271821369867358983776579483819440528069716788088208227593417055836924422420202545946418764293827972011992948750083848439656626275972113702217790274044284394065940071294815021849524493532478763501931609344599225803988151389671881428826178157117985955849617901765119730635309341864659186170900871239926536625007086845363021890455682598684909409183174390042948356772357994334579528335017290700524667820805671940047939902794397396312249654679584232845108266198631458413859041559451981645917423229755424085906451522392776672501821266392114819795319664318610538232252215987029971883875012218042060201947544488719646917233570166477962135102759838301004319464254872984498480836104327805724739047428726678676622072142872004319853564826870725442771688363148539570247330156651905495931853381557773285172801370051571373183468884009096369898273478233481937352684352164552682930078591674178579156417711458707243659546373191282102360845887929427840361602668412985973192824352485013547885142151261623666896323342154876128139471773521517640751198083322591149523442948242450381928699358771880145674024382706608593688653602888026207443773345605163831730743557439637887730670369180143262400649438026460188716652550421160944005057473997315444781821863591236301268653233090076553277421676965974777012632398477684838541278624258857422382601564439983560249050382982287048159400071082099883750953645458353219320629920493795217090138014235143285475753504825942870315190409562913534022695877085867056696020408256737284730161423198429858627019038041077084506695271376579908041918528069143288067214628645274975319955553002778647043716045447945329540962196185514387001924559058241409284017988389124513515643195959697805527450124522224968069988023733370523758275686819270533466427044722227352365870790559088797741046460567620687637300738415697380251550531081019345291788313154367492903586166481844307915216031830412646344958419706099081693959915728069340848024456329854215751302617051721075218100716638329510834784455891010671673196554525975525022605189639169063199332633578652645844935318456421950394064745356617595007171881608914076519244401574112371541731430374105527406686250753226337550444325367694964518298126749851050598354543758473953483109518729755965590025067498651983333503267461420465192025262226269446081279171035476149725807183624308128183544625200833217454832632081663636348194875834926980493230026789689149125986938728509980019480595920996463709301733524684513939645876792484981832814318585398146927939931697563644605251427295121870398369092653228720061147486222866215473556286247121873959198991327325540091323261354682213395827786430040795652899459882419119846470524136782807109922813839393094728740292902159174122528474086668171457899453031945470302348191147255867705255279032560419824886965952033288312597782826613335215330290946257819835122223342143117243811872032324398671971629358879333405295617251494847473686682611127005580988458316032025010429626098081803606930823620800619463618802614367836610567140192118544525964854009009629166765988672564335512324312907753933519403598063838716708029346702386532750504532363646383945322874517044203756747269103001711528205376017505168887794445846641532665855645286039422052832334180640857215812055506597834352890988536556872367965601049730616475205621411407050671614237523288830300452101454269365305251170083129754867766621753282668613363885951720750786360154977332782179861798563878175460334218529785323772723092731393176611841874507028317641125960639691940911696463922887576690499711837534454005472282718320107719852534226482091162048398722093511870527864045186017646043725645949244227708506852660954162155632080992971393230088953266304710853812195646356074641063399462554141126466046252412636639867485176539049433469608990819642624936956277308762690404650125073394980770080802230461134252374014468255414021958977446132532415698679087791742834354800585624303260120700830151736368467038984847010363642749712898407594194157011244222026122709163163453553555786561162620417763938212204315081560090628077985586103910919873469257418500927189959413587487313333988198915685292253522809933584432781211412115159219434875661447872450588171937310738057112764555873078031148275657543939317216515152246546795287183264535147773320090585026838553210865127296039321236119046466136031748923328366321692392912689234617005886557860439648844452067522991060538216000894398432480082118846197017811569043078267307794333485737180751769126040522248745466389144529019113693376737751993625491539750996407121209829869598828682474270374701478166192505828787005594780283634383423722799033839218891721972470126002695578738464688822983161512798710177736438462199921215819117322398367987303224590066019414796719026867308134047419957663286329928418562634501349803403118708497316672074049697192580185680989728875824243692178858080671326788263076601469836794088946579288014133419515651521303603785361312977369927228826855692526544414833672926715939479729569969947172491369919357102876535358500585024215557941082331892258535101504132503644536968465250535851359355023579226114085061993566906874114726429543726815728824394378683979239202569493363661050178198603569847848612532251914612025285419135660862730731537708327383142516893901688085513499520697883540479442479106149437842208760851931248742794265883393996960376558085561765644926373568176884697555097032828889406487545763629261981171030200552761756302843934631326946828711325511523060084658437460939948310237068134163096796127116067948897977224665489560723247826323708478707086820789976799355034422934345128669942311200629096213243914070222222065892007300197221866435517391258516284561685898513336703575161903119870308997705395760479127029232226996024854182192185569766393425803476257418819513770856774162978326907197543885779281081821340526735904433904054410043935339176701039672421662359496035188073442423853836502273074562826767891655986375937033487003053019297976139737060622359450877032211918372242468080388389647499042267256122666872147554437997695427598977145531326132381477145758940852188481621348657548276221664830667605628949993374297363145571274051001971252135245268671624560814762816059544873989625485843730904510936438936176554597522039751752954054572781558481074945640122103672538517916527310225204433245224291312839132232326882545110164437716132805053505203326018219241008732323988337776990981160147117965623537536412978102549790051914720939891155001524349903206446368631490617595428017928059371568944252317263113965634617108423001371101259740134916998453893860684518639047139309005021688241090839726327889431560317125302057828562628442367268961010968718941055976161422239866241712051938441372915826705076833121247071071704329047979039971984521654402912266275457801902226194289421984864736424905082622508939891522624008224464127795125019508129382105157853048877328155134587014136994481350431878624118880244751080980858527920047123795534005376418879665653731872295900717385605602573478278661319467756851885260209907597351567567501116046845571017076665759946384285754393620015136258757266735231654770005514926998730568891010929896072568268844767798303463449114269216039470066427559897112413146676379698147814971481637881190518203705893376880959567833682885679727635090409783011488686923621224369565540423193550934300220642573331257978126967692297269416097547938049776876502152424428813991987637169450045640482523318076079354358989933411069973525135014718983055395082795486454615622210738259402301216050468244286422452007661414372651315307033215179962547283918436926038810689216528933909524149902374967342713486056863421747690011965070737285213584368969563511491225689413812227344326213681669865302308096083829249720907378756861933681588467193502513437863743249465403892090531596381404401574950801922930911945181015659701438747833460975259411520017436256547174446112864469972205351461107295994002126535486711381457830698187133579377316431886843437473730112120181830112810583124686729835288241095663058276242383855992153169603414838206035235807627645364637015334686349620429987451895490094324619737946777869590848076692514689967239340880206105474726177439530242250581079529117955426846513604778054819653422544406530006776350031152606659705993278764759294949136074194839371117441245116194940373356501746532815616473261443349550444710739581674655447921825844897792376077673609174791597686748432059473516402824284458222116403771873805920332590817656630521328554943550972034320881070998493451467205621553545976260580402732610855475980304241736120629354297135120070115804472452716999128204498765560537712535047203948604136802919349804920065905452591396783729935363853844090719896065161734583987390890347327776970620416662427069158266288700634260323491914502142759801258252947924343860918566252844913128216723998859005583658422764052044288220306659069631474348828567927097061822373017226482376832295541558885541505358870287605572211796828722703796240045615813130267496790599477211276722999332201040476867539259776628422782864292259040322602968442799454781670399719920986750877047459712331364420977330247887358783885231861591986215050549451434637613774250813847762941123504993572428364402245230527281778657902806564613370429671872411080418241687296244294185703412633076677331729219773011341419400541754846959901588970779164663063880337531745181590188332620557856440954342290033832743510802632346649386808832051072032895382841604338326664850347165126929064089544949264814778549860222378133315226959739944404146510291899744167259303051802274614909593603782843456293181501077491634570661543032094462433564485248093068125377376233026791023116836790935163734401735143180058159033227347345975486523983956827128142817967279309747982712906629766493133455584196519289612058967587207884627162729431502976230642508342632443759562086337193346312670684997830010567485736655104362613889035999819632125203367735298882621066415359881894978416398214313732709729477199955564457682698798097761434070124252693398236755918797644582885310524361803953701862420672601339544798288054816614334968791892839810385541110433498390702403503711694612857748874895091736571716224792506878423432589020660887790951458170163868118781388488653441242902498793637856119431950326586579534050505287680899085041967576853448021476760760854708058656576278706140570400084388748549372066844346795356616408697880070710079466301790138950277012756186013446554269398606593845207198061504625774598307506216149127478193670459823203271171919881794253111706605275833766877008964998644646253027524715113656590386639945607565439965535826970258133595066924864347520806460574409794121460990855970948323333554574871830203403988762180703766980468310035101137387215506632305010880512730054404075345056583661451192569502713983962426291789210221755652521686904230065345059351092822060625387136703174715154671695952416073486058725433914905037240771425257321918028195752488152241287590885376070971225055233961322542245652063794933222880660256147214876384798715738522926549162203088221324603473562465944168902751432725982546033318909216138244683180629605146319670265997477906867313230410924953254113411231868635801392183754529523231271624116553336499504221831688099178402203590536099698797589093395917769042164307867207995932491074361797669120064020579695999937013712349681742230149241756738752362946411014390811742124286659897465838069828282218792702365955493306042931562772159132204151975572145633890853750085624255125192699312758431866146824417204424754447956445371505644685981266580695571324284319415735858963311050185711285595002959221848147303176784363520534489064237533625663109760965586166225989841515971804056642356343078949590951332731526509197360522503853515799430685900600716383116300212133817719921916146722374274320896943103274411840080917052224342974360184771978622770831395431906416401594356812053260351272595308271622207714640481885890214972589278049774485282941831398247152230966532208490563220410188554690341023862521402861113180853116424238031944151080800328426094486233369753240430812611289868474426101791010941927743009080308466623177984122859431767954342688825207222764016182754794903886240891988953248902984016101233262596975389237689941993183649886082980829561094210504908767312459686895638974679372766005052873541935929542365003929038743342672852222284655361610262775806185071358237924271560723749928260097790246428429553323805487306087165879530326723753853901875606187753292463145918380236576263436446909925481154918455818581216962544181492157572582865365434044593600398297587227071189773292714067354697713128695881466181695137820439517965863955184537813229293215895006510916313159609445671275227172573336142643405191026865171594648820102764548230138765871459967414998249703768917982200643478294075515980311557438150346140172803128078767943096999843734506938694750620818988183303532753934626545787608439043951187146556852062745705579146022171073784012314747587760529734137941972758590657631839860760714854011086860758580276841314902890080399467706008103197647872031895297872765994534247959375178564501081031245121976232199119997893850137233718813907772433177417298819721409552434044975331584449603067080438851965152428288398673287202978169611951713123638953374258766264993008518319844517520816701458886951408182565524959027448703855896130191380938872977223128105654260505211645238011342044840197133336391954201396869157950195640730262866410334603152776104234364111555558414271041750705458491602501159555832293336634637195298635425074645594398924018652870103855378451022501498920120298455999431363868500475539650001177573084172481674074395780162164551284035231638318078515362611289854143151436788130338583772849390868124198968192276380035931782967232620510377931858758045963633856902146437736233143341294488951622484288669933681459978730716625886625455558312891507198914849289990503748198044471194542602613457206620095602501606530339247095090883855417198477419727524940260550386988095339784717602483181392561386748065482748485248030713072902006934709024774632890984814308787558229588553389076082780559277345356298796086873747053416766840491892498722466280652762652715535439074724837731327500737853725628915258296883156766321126229822463546911408063984070468497205733198872890864237939405014459254120126708558847173810901245247381891801488393874350303830549893815408053979457506723639329455772522160128393066656859051230143832790085212403227163597227923479808971666497215099418073197617361010282098564530178352113764543811131849463014743798527047097201911820681553878673536560761052677163531150357428720935622729430593463173816662811497814742311108598159920122410553750468507396375733612296756437045222932823659285947089105870779399098546840555379963567194097752829940635673879668255137936729905935727868775545383014412304201214171786162141919701860193036441273932486466022578917064865018177102919512714939548391301298461595443167262616908127907010833462640587861319089745873639690552698859351591046181780742284091139338041601158274380435851048091100124522226139328628302709698654366592476525303762463329468352970727490424517053962979121960480907582582487696960503370382273528610466014524194466436959074275172287996504910760153993555422799900892740897684052222913322697630402561070756709569386424872594066935835358294099343548051735679870649043641363120652517288610241719620005637200907065818891087030066304084236831455042137246286835541803112287437793474773251101053012166150537754741056779339020767291353000855138421260688649833608098007382397144640750848484914793507709904765833420537596948967341978803965666435192091081810043212837713983619730207022729234115688599754406718273639515594699938380355842378134203509639967525675030740835522304825740244534065995561990959042221337150094409645732407236755981540456429257640463780959321423321716218089200215406540527033577878825524571184065095290501575646873757897589633351918736995509776598364598348558051900211813673078228326692759278641161175175141001668583157578134052373180163216304825637673449712098577982467537927197809171412798616328924897931094169683025442220700984485384215921092195474033031399493925698514581567513556556437923413823322064731818679771483096203573998009967881810982250494086628442273746572508317591870888096831912558835750407747805040995814258521142952193242880041261061314758716108658768063181347851810735903639962240086480402985663762169832943227712050309231000289753990193058250707539056115178969173434013136635926659531526969441935389289630542847272304443597216490036071322861718604401080201273141976099148936222969172212517592728530921992545816205169762119076791070848489410274013390211603330547938210522163282263563434958258371165531416383246549215492279658427665000955536865230221957929167348765275864699499111960817664357074834685410992358186810772742225493794537512049879033550610102729864668919275179329947136974206327938056883102444275167471384188444939976150981949883258847180928885621419387328337662838182130978124073839059459969750583980145889153229299891583291128563103566169661758651802908927720727321106058742348234652307464923246669878943819210232247525388773203713755580299160558915840917313116825299143312269003304012772288404100094474235718944134947472221602478968589443292750731781036113428023151354125845795729630543525794444820281681572185429026060313984709252707413010704896857212930883341992532160191820725916316620560386510374560310708468662973217141447659705580416551365731231051158206146075469956040241589158952006337197386223459627789206628788769153828708831983766548936439467788477529220533846532007849184450017526631785363378932053879539199623626461921852875404349807894402747898742592154612117715007911302474457194681512451498650817083841009544790928624828657557645365865203046276858709713983757553420792184629296165094774401891973352372152831065259307222996358644899089270481063571690202492998478643397515826884044003942520712009681274191041086814119199943674371025286335430029877011900284001537375481481308466889997850623622781313162164647776381188619323588278492770007767124246276095093753320645944444446278710785553476367971257711093730392717493210928034566623790630985957180228308882828045897910379309125390301077892146462189327767623711828336797437073152106705442986903087677900231800459700163705172315532403121144675976009562586353606498545002948493727476061965061350411134574171302494113859915372203786301641343407942022379639986000126761580663636440907431961997738551872824049310287257125188613351063478980545642323609210332493531430722488245209551789482538217319955682303960280625024108559716360228211098863707234668795031652108052181884194188824174561369916995749327494775367501792052969126859026616944018176684931934284508983591829011944059511148517603547856788384231517177759408707643821554161311779084584117383704129945395959349024484001676550465663197554252876436185224690872673160355230049163543313852348868678993007429669339658467233832348704972243970159611223022693359588391442539586825841597522154490790482489647977505952706277256598663296830978310824935293312522417743015939999101799850585202356495067035123077205178763398236256012128496890483232121493181563221731680540758755908778451340036024049977863875853137205194567596432656417728522038129626836062427680065539836503716850219262106140687695598678105267231940838743989563808050508161484585896292887496955902053728805496752900688049871232264674503006785972329969313109784335925211789247849888612859188051265567264167593199397232964321035047918504959817104509819591574332104181636460893828211542322606171337275441325739264602644641304125749189062085357899711319723296420800076399534159875280911949502490894660606126729443024175872805018734680136034524227651775374668343046960297769319926922997345249000166092041964008649509202307314555184363179505980924299284952407650454434776945805990650880212640242112916063572031940573149462779032782749938923733666815029260532121733977675085256672407474152228930088674713621593855228273389246973498750182318718151142421488353665332941017764666555763655123519763138356547122889163806514154462779973035097002538206398371890415811183106722420397660647043461349972387851325158860595454946082227835129799633363499446162141784358406882887386675984185234371407632872155943825629574107130258395682994961872039442320076154245481374583060864940395457673036689284122958481028409593006236429183906611411431483154596183818561878166880019442076613160647115781260612467758177883475343476494743110717990552969635585229590098651014878186271427999715021325639715024547240517462753063185995045827981222598165006099457756201624958819552815746700332190559915779675128914779508210366815759496225884172203272517495586816027756298521037009740695937018634855427870590410969432575360675777589683822140355591957884034247163511162845305552057961773410271635421574228293884240867596954281369584437066802587621989422395973825709837207925469807280481641650227879425067765058828458206150476111554327806888175053157933358337567664541006716434036838593892985760322359764505547924931430108432620971000876160394736926863918178217414422050382959184044090528372793057796608310737122234963144936493512359864902285624748387075906893241770665343690753192030783624913625108197754917878735200198263213858106468880865882104306116986347257234693472856715525691855508290095796788320621472996077629952230973676790022020518806805338594656627272801356854712525604349758797969661986058649674897789574713255149186085146938620665660392845707968007849501109215140117888972992542308578839398185584595546734555445675135362921524072864126072523027211408586606896828192049335805827868332322885017166590978539937705378378597327521569614714624135853228699294527351138798079676795131127224163419766994412736906172038409789228502908616283973732703103121754844649651884923673955293206957470098431576080190121758081672082537072118215351732419222527412796750518111192328546557395814091295946662742850170721849868303889807473638782639612627020446634681195873332861774826374782440271692997809868741651222241253258020296145681639594397911129403266024626121050916043572802432019893555462524439754433975395545733586571100782099464255245876541542086109210651287274155203056729378894757195489495823936861762198984155404922449555913822592089686907685808109787478282999784089479162538122814103107633915395235450218393357145596691141492120382036985326751152294654912475460634556970468678625477690670094853312906823606223734842626006727198990160410408773715417873153479881095247504254769572342778666166163829700394846242240775779529525158774748192984691902891497299561247152804665392709085434712513243475821445885483717649314367605999779751297108141887230833373327456116718779052690265838128789141065513484282522149836000300191815412710751698499841485528774611750919959339551124322962512465587891021932872875060580103096038080017981172388651004423111297189256532220292423621172053584998983666972975524278854909745512466518905660003290345376023477522433963356771104119767061048102732720749444239035821830837055052600927980075153011673967612508989791329708267293280429097093786029773431912141494204026421306374298538304109074777858217658884011749745868768099400404575403010325178556839809476066482087993082278263595072911084449292521317915102975891937695448521036267338224025124431611103804956163994091896314206430638659128421946530028419112642698311773344215588533703354882082309510414135874675421124882908685592168361477626964476114961866587036957966367663850451377187212107083875435710803476835979419759055335451007430051827348515917644174372295774546394367525860551957743246417690662725130941806223259508034244876841770157607266974198525132764554082869468097614281929965057264742922501472832724102925595004960321543842598801565520984606251497910976133579315002313691354746334856443466702555795495777409548620013636691427676701296964610679965603469342906126032663664036688972977527289828984078153388637638757841551495551840283595739079622472770997793061358994269157091236662931375356835470854682609354858991766651773189256829851111505187225886525564947997412141548369164481254388517491420191658504181191979176781517964445188183015826141379306334994105414533449873637771412504873899624587025203392666350114856038585547710035230000875102966178028040794702296893504424191845853855785966983918922928981402878933190064275712708444273241649291421688254197964210974348720415801389519222299657064731902805423197645838267684189097243664182643835567315145357057964192165501407230663305467547547766036702199521737734411978582123722219221740595123735789529607657273912947016203335096646466966480921382394414951041454385736867728837136523965620766018478054805299473160773364617525882596524368234061987842546409044697577139483390951192872948365320882026827056710907497515112955328675935874847145338680179735227886316167060951674472675015878483946876829558000279853266470114832204711211304844980093080637679093609263547864831364049334433290910040357160948139632750539189543717485946796778049815747741140127016259641803929705724243234243488661352711094425738746180478253311872819378663412751670432771960880018632056088642981820752957138938111306397993083691617782196428884496309315925744908233033222532430985898948125070145354680443950829648680887690228227850505945550148833367217493694526719839238908470057034094487435998252187163695845568112327748468587587815977688020566084841109305394285182440083575131832114008928939306345776445068522952373120374665627315852365634100295204117872133022032927999884210055707984432284669909121044677740409736988407949689703763103558472045278975625426938210457077221005416661485813184104770512785235435592224231772512390188511957971205999337284331204458255480318925420922276349536858773124256761764546126608893628381915065765787121753034346918868488163172993658790039785116203101236237996717616758801215359466680481768994960848896179261708802037468999726173580515433463103061260636926489296685580617060675938621087414220856082019065794502943341363987675327180071797022382050821712262677762267845365959138944179116411727240185288622321689446934149625845085334900828002748061495758429956756597165777349894475754134785678873749847567899060651644085621779080991207167590254296471531718744319266547310485722089466856866618919562247172537664110328651049160165030121562767120658317683599629129076882729409104809658606856008072546215919117734361245982044102058967181170491447715556278597849951551029511175252687994338827474660385977424506055133067787629170528268585594595369425676814143582014628776897731539625653809214901362821416802522108799996873131098094741345623268140123986540387927577535122453829061931438111137758292770323214988350272724227475262399765139182622368434881627783538438013184031365774854699123669226173927822215033150278534294917239826151218807237620421541577445612519746649319454769463550923606624946804762570338273216941877749104582535325287753819008815950315413462711465037304258746820406516436820349449517947747420476239931729344690705067070816063544323975048205782503265976928908225118808409778244475194647234678552163820252703402710688189571130786742175059573369284206048685752978812467109533022169749488812935029492718059995541434457195940433867775954433196978999234081828230461489010259739239900516997278250419191285760505386225545411694452185881742675070688568121246754357975933773794636699558543731638730833381716833363399977593809399496556709770994472175961731291899675233236981076255976853779736597884168489917201403417937222602666517878069617026933552756164911296177994443531710093155900609420126423683863640507770267030468114101520480854869784910701985819503236397515015120528190002861079934915167933610722891324833028676477295053423508805444685517947115870664213610314773985595246577091165099467923795188977074779612344463890534749497581176292411431844019760281597998960884106144088100411495145990420715320198192904122479512368973756112641603598110718868939048408931244194208631143761198805892671783811999263091685843221880637858036714032470357695702233751007303350655357495499690461403297216569242160827146832262282704540853413914584068378372017387490728885312621468833663625227187193927328355261487850237961003480429440986101089699797432887178451402676782118744645613207055523425689821474667711997112470226176724151842893661847916133167060941944991446099696514366243287944328041536990959938274577576577106152991242650895989080838506885740114089926519117589943397764858231423406392458169276601144356292804625895971976926651798746579895956154033418791097742841286861030188655312205541415234100357321322249705423986451018385529230238322191102856969620605042146132605289158448356041532600824004409940989963068673523019313154096436759761437231930687703743944546215300631395707588644250128929641456717380194445732281222960218349359443055928963631444821989726295178593056680049130519653126747831348326606229970179437663963716183146062860353828383957593606978639028993192185284153733617738198017445079420119951594175186046755929179113090574016069928065237850260641514431946365377048083812355534797965318688103647968913902191215207439477877605979699274218888987731105673205037818368482993261946074990828969469351781694141875360605293741943031854496766159253865842421044785701515866760400990561497317763350195621785131305290970902904137247679731377082710219242555315630551538786201718217114540139775623621337028721770704494714754408695714946034550057494912034352772062076949803913806557859171552036457875369619808323272540934506031471418869902644085986958537800475352553656799880201442319011636849306269433619575430994245399267626535850472163136221082455712402855208300901213395309357000546417361223940642870311932762259266837352704834006053220058394718771846369402483969498362448468402175771555425626543496769366008069702366962960690105825240368746858511550728924992642795552636354965383109935394026627949723591870027586104129209582385268271780613934395879466968321740735032893586591516490231418713805965283171756527020958078015707261239312943409264634444344049021223144299433563488539783293291656244836920146127985068722212601694211009138768991796415662562297297440227088544047277545077581655596963414716939234550792267906111966780200476810466279310031641082914304729007367597998147498427251491404798342732322681848750356968072357617723337179382713999957270919760278644714272742588642978378708311558194446367759941740708371043525067689965875545595758167263555836854224386184320685870627529236711927176828745371851605134555445776671168151765703140047287164633387566249159917163208542482786877044972429188009823674520254322134950515308653185055323728870269749063010413652118180717402415009980042041763348623219391875260337613604897697731613606215347525453262439052367080640358440645742924551012665604574230917885450124718972013959333406115740387321438122362029829657009007934333407874285089410357381231343254010441580318050541137014455308806853135679328870217542696605691295838981735307050390588558519703033816231560087631689105785344967603557671595010350177709897924605109776093009041982843897625687213688864013223345771507609271230133384539961976052471379775079879916839379600232154810934471093770296466883869106868842529104467626200177002982967434447579960939099470842663194007376581062564453162611567503440192641039021643965532670061214662162200033421053818994264957618447816274077431817985527377851554090112465858862998755831134829806912110236098936239369424485405346457205413407474342944556914693230184088671575196037922758217667614240583129382258072929903032868803861127265909637601953955752028630142260584392593712502791718509625737032816842677859317161051712706471433364679962918585564521407158798351340622489282393525398895501800173734227623858971460628087667874661313702999035716429397557745739135362718226025421688577037715949654473627354065632249065602061770371750766863436522183355755904463839234130327184634839058899590178461076550606978761965538655503348492000629539667819303870504715489967070976771308073858324383976384100851097365403564435320932404856684232238160965287056350496362978354445371949733571668098802172105343525498948964116126918263952519794928467396597400337386050926608361032505249690699137285386880689873863518013849762884081609886578709101917666465844885180985363843294656790866844961329697024737156633019658244285573692431631500129468455194226695667845548156346848075886962282760834194267510757929011374679892118385216028637766937113623673656845477003523800004332586247391456831460280788419839743270017028005387450425947699273415168071436443346031739716031944026773842581943433007134807662209231630235189354263708570591390480229198502392630611713706284382734189792546037103414191909517599531436341473009278904815317253956290749870577759932913508835484013460209591280161356110151105406785746823757216002427826850007238531998855109090013195935429078468378709917250055706765709890442390664933804848141804854171894495267094662183334604960352943306094004401078807151652408031282152490791154666865929911578989530493446259177555002603769777808236787155954430728420374820347627824219790287983491273577005443981896564465075513495779991855400603825505300789667037668524136750780660082657457452000323673908244429867727626973313671484485069145560739928156192534896187841657116692324516945172336943604992625487391530035004919689136632731313206583726130562608381978869959583432123566312470663375230733543388737614391682091833266269415996393146082745318262306061106555172368849408590139010501303567300286928472899753470826317369339215235897159348936095110927741649153470661007759817639665614500062580211266039327297314527929909093156434097273453631646097829102644440701592003753959219779836066756584026622502916307570772478372215098373617061585263607092519924355372973289621938851076992776784976067384082531499701567959735207109156952789374852107747030520202269464676199539333782454066674261884712596857979351203254064108493802863167670375806954131272495874222172656678894370723189589937872484697501283294308669004304886100165423452627026534081641096548451782315850392267860245348529136190500935412545459619381981420720990110864354386717990064789260174377142269808296772878497206850780664208800160880790733791980601197877996413323399670137585459784050313085471181278705335645947363515742316373592613401463873821280938985516535203604561467657719233962262526470914231657686757231213368060774554759158109274242628581838468472693097748691242661682766397338568853480696399350080499960913328735154013817223108515921586644236925290574485097215688860888699178827525055490124132926471446124194660349025313497397316028246128454635994111370420902191797779353544122941746545526622884876153939029841353336175661127581240263180812793062821514427571750001305671036240967297522497071643454177721359455316827498033764506648355330202786435307656920988693686611691414285217079113804556578802082267599865671621490626485096193234960677107453586879591447449004247615248714743694027642087392985903650309861298902679649855996170673437634724569734507685444000337671862384228419584882555155985527920741303774805747354881519640654558094174110658319686502449230804159545039230155571838501471384625380953850943070396210123808894040742707450337573096511666821779698843316744186401432392065965053307432973115881440569463484157191519078207332304864279489470436418309709169808463019902178761128000496712051264828876421045064617721801279294680056694930570563177313260093431972403119780497206279521955131465808766651939821905060613374111613891578078408029165367184351206019049898290522407034945271015097938152036851074692347038496727434567114973798188539106447349107830472968933811909791033539049622528401841216032316201460564329681261879817844004495022196020078098216602955605495591438276586584488373002921002885223308537983763397222309378145645975532410301686150978299055672463243876065646953262108166997680996654423504393993914421004425972337940006911177053787104707727780035937241000833967442032168279563742461155082711241760692694650988516057386736455601809940008765344763513586421025273342471469880335464585836483005383012380091033653897644176342218220738922269379009078310069487520495927794414698607738985089341372980685838454801307980235962629339491636410723443910377506107773951937029781265745938579497154035484976537785636892037623272604779070184715012937053435660090125682473114303319593458234781363024258525096482898774078347857456323739243420276506952900724814805054684603646928453494972897951198649138987352543738470640567709620555925939522585518424226239962048003208778373518606631491744148441315644574999785972331360138800468924956706209181035255972222554777781326606914912085470437343583618607939894571051487937734822704509988711007003410078133791829407630255464286060590983567099082285949277359230350828185956133579073911479324895142918865425179201944823606089742374066007676302551788300245519954303307694511496850026505746907402885376944280663063718066256785382307564862332001953020245975484383719188032461174960506747544190688335251949225946982567744259926738062404349712532887732187837222356036015398370993361029204382219152572083297340451132272787299060547819168820959141535582709149420619073729905397016427017162168113936242311103555358342426332516490164136829393779583026250367557833341272253419237767972490800894212924417145271927203602338029303338598599579390371125392727491628664612655193550760000697585224784072475424049807939900557126642599516132501573164464675948326021418144179167180739928230368621537195220292414326558149501246846967441536708233062833911370735923413493477956719587262058461596045646906043022420819595030258972777431493163363727111072500020091112706036702515795978504183972772403498030849670806124084190059901387170001646272778096362243189238112749910893709014218661865816378671567904057804212754418452863790180043392281142725067198655506787708479738419112831959262860171535168935337188573810893035801778743477437301434416573434305494648266903494114228089753776985308180669870334305154664994850145636296886264503640305062103300832981824875960945623653011477218668420365407455034433154390884650122233112818876391806102576847581491601978312888130701485374321460064271548529085715501187800156156188513498262136480807819649940388551867958923018084667643976085205613119114994667575746963958797497990625606832418483006334480932044785743488705253881264093406375903755463956997455229381208384461777791723462607901812948939866953674862942673145756196235096181800569578901236088125177015722975845164250947741376591656127859707864845061882168518002935541883926695642406535411989844133734650073526600051979302993661734513415148435837969356433338455144315028943596818417704967848512759338428721135021432783639472336012664477031028742662739843923596470110099781126452236095803686132968801752176340035250762792357452807150780747166834715656663884170333430424102426807573120967897150127968671505895630949623464603526907762087191330002225122562192813708920154624700856882005597216955729145406239478097995861626009002130572802582756466203288191346092145728241599996411750499398043234536541830104600157985903799234694581693201549409797751835797877141624131475484970328872751211725636858891802163074879603315003002162457349049299166251905308725454408127609428811295520065174706821152475730356074317358821242769404526736922867134700482012678198882359850146123307970368640535069467487010529389453084591234309235989157628117471527000777033570700914155572004698164381247756807564117868504823642350711036220163827385178216360670738375209947665839657029050630321804831066172488053871156637706559069025642379607612518990374480816912130106690382125575462632046026718326772403492187573283790984862750639852118821542662064187552987864737338595784701075845458716319266640311352325963124973305261178920439910397795872627577666283567019615018977900112129663166343916102719363837732081274700473761114124719737968173322568654015467681185481699077756634533461318036607532233260664621557631735969485620472450142000601577438412789386215990858922085777074327501075895702280857384944472935092112639474673359012045990772893171888184782073928394006492546771807883018570292205169882964253794181162643520804018994187219275239711123438809946843668393243091360563108167717486639017632784679172835426989469482449164741562905404855971529095564030919691548924955668280426685002851383534561179902374500643730513634997644896532726284116483807930081484079986830836385996936663695031232504220024481709736447640639208087599070353795074713833905901004280561215466585815047629125986382881552508218347275677954687257833523559454338283264559595685876349526813694595086833113177453810542826873030713531592457284021875062609808205603182439355544869424825001288263258219756377437380389775846274732392885458482769710954384598531247603461518597584668219838885984024085022903478096092081186395489255100904119433786642669864698357947313926481182157956269010754347043693588960540764339988912781742043246004044030749155080739130345218802942293341851351502839371148685600890479758803516642734930713724489301417386505968164938771768899924651329122073794393128536733801062272218181020835689702372282578017816467200853664933486913456249006565540023733908954862150976219834936426322404492959957299597032058433011612530450665796949147739968489181479295483080747589705835225648864195337250403890419009873840747391036671726043457396043902357755715009680916990712698513106690540934068304151198063617723370623661500755294436680994808226925691643607771204845813937057280663208498613024798556810839171392412025936156474856926593555152771592460782061250748723173824837170109259961099665530986917294780679417781731153652592114290643296544674108473830447558650657577354602784521488543687367325685184804589929189746636478100951796667101762869733296636039843074478954098866051379717432654673687491265394760340175651277393785015453294409790500581302610050340787183873977838965472561816399532264516260209071512187799863603713681955049704262273536932525160146910781611860764661006496834294346731155091050387644112121742140756318884602390596270527224618538717233491679100750694331250243360603802739814947716307510794857584971273451583443534105949348190376504003328987503255978399478720961343437091332456001664145051729940194413931224843232772409834626385940664125907442762760651613184491685855077782126441439720644784214719489854683536987144411819196265838047135095489315865222071272166508807243779601742655459806441526640308906683923498893659647090785270449354290892863905486568803240025683315902020821295938417591428976782446790016895328700536693005260555832399160666715275494838294246657188220437803767629903818127542029518215658245309618568262835617491978016666165886718382304171350100695440411047924482985383380093788427263679698945124244533819568168901732865977665802849132518662334780233192579531250469365256411378961248211842007450185294095405411769223968224687748094124138609673259502554740042489372057755031835969687111502268899234615043843124323656245742158667783660500260926961704419389784934216893089370226275703860900610282099112812860682986505410574854038232899090793250903156683708668286549273109751320346135635174115975206299982597528313440705556186777433136463427074748758880071649435515135999832775116807192393774390268847312463586907758507342418220420813018862887323518452845399918302184558610257735789251479848465302877632653363372433190691197179569325227124274692078124326431166294335034453982389997548364851059345849080378002059627554022026987621811423724916202205504899870074408289272579458097558619506393009282444045871900840205761598249255535548617092369079374761989374647189564803472587388826298931663702495002442538948066527905502772220531464521801899182069281658865903322109533540457428092672480409222380305661491145171190067359747765660233015570611794691827977403124886231618742534536762863689573104760495494648479599748490742657616376035656336340386542986555268775604235403173329364530329091899290147261135765302169491737676049014956768857125086032964879903715397840163238106345690770241704699065034147636388277775975438754424179135712216090119198606306066903834497163847964969890872173287989510757938669022639721334366866614022332004137333818633264762808368670498621485896118028114507216020768856453917465860076493891670487899610879990635626324766350862629145135692667292658242266601604746963034190324771662612273421978397541314814746529420112805376752147684148875771473332060859091504056957429807722791811262693252489866455869984117669748425693564399773336533715115414062317280404189656884556123121987601169165154966554258137701975962560346498436772818844114071317484854601485075723819466758142188129688278171386257688579774376102991753988125477761356590042839308029531940605101160973651189360330604767316646009866695165708028479713146880506403481609393996672924854920458420267254185122432437838355187837464216615239567953638937853260699947228507701012578071018161825228341448922197345758078273885778606258354450811518922980316986683521963151122636376949609390331154742944019475512242124250249732507731577228289163824880966784022041972404791588141917856230962905985145260213103824908920309235062496542334599467561299354717161452650998658470964454716749877693421893511249987677483441072891521244504733423772772959615963018954148439671104700757474899247639626491040372493050583497778182207222595361536076233093941755479856721676856245351342656691236492573153534596362761412925802535668206241224639682237764715900081869490657998294860686496527342684459687711485571589854759435956493731502499203571600635001548046970640619192430092433521445879189474320112165482633396978067396794313349009272552828121332035837678421622437385907590822750813646277339815466035764910646769054997786741179958110777253813358303712269791392666581984835164009350122189682786778591024104376692085309848845576999061273306725347965439317838196134027231671220389199283871746999298338740750532669794877432311158679803062187846643224299952609756560035892428806107531301900639640820212451083348214557298335009205102251442509447711335169766120547883223266506440998314701940909077475948496168322008198254133453370258951889566595510855482462476891833725525299576946659459089090306099505621926158317314629863362184337000383463867694290642401861852490934424112389226529356296677120948778052704492786722247606926037998139954031722689752397200776826167116994460163165617954301717460595507432388396667077238853531868849366547102936173102817445286478158366237327841918414254840672063017966043533117719594181093619118914685040787483009076029179807577929498157247687806362351387829811124195945320344030341430335789242469577486634320792213033539653391287729806179230199728953444208750059494744713066945568721682529534977171316200770431976433941159634848851196722029201647301210031461072205470732074986227047448871285597023919698548502395277583256421351129999545187511039364477769887888918502830666968352408376604989565766210781803937377066765790680487393144508479105806253909543254611875249768827369373370679208049125366533511212872815966257329402999232055706039243571940194899213794033550916161657808441310089944472881700355354593681999645486207704426561881501617190445213544853545398235735039558105458174156983143367171286578263507483800759045476802887381454499932455142826577373954361009452554118658853199147982617366934620298792811970009780507086566219558354339272458712549198283340716740622106695705117186563074442189236680925383650841152553441203554606080780088405405919706276129654277588735067130807669632625214237770970429003999655483738400552676033465454368143707554453811873895838792433127942014146983516373924558200614970822286323920370843885798152301982486044414323324785290835063320693099447274898121966092963664788951034676825263118762905402123793207401513230620822307817141602054108587088031690160750900048710031018682197085856854537428895084433150870082267096487008316150484191916266909025160073197068226372931631551678733113167920674094901006178698553558142399608326557705873504544243066486840411732128031160675938285973595623252273339538344451859432696588719517990249320689927284268161576607621320678319517440271170868006023513961199606799658156705545037387376509876799704709059033409243824807171695642684829916996727008199419475672498329628583463154100321185964670052399269139847979978634119402255233162881231812979159771069041665684746545640144230103508556012927936671690861450024338544480118374233206815327453325231653278026197336127626502034271834899511319995092316024849442430951063558681389001091535597067368965907600701581866484411901039772996404367276128253491384489829924706859013089623589191711768167980685756358761982118268642764670187450097077437367283439792139610529273407306744430255040268027459151171021067775634994371912694481456698782385502230417247786339158024241388544041084836012810433816560494734189546933055583506310145664366616031537005764788805127763086217181655097474177801514561083427277770047031711666482547601298869075088100913150487157395187792319318928801113026004366600490288140980906311409157280482719466500481596451573471554272246568698653265533688377547464589874491224928306804707424115247129762107208951509195560907731680566913039278461731187633456764096491015200282212841717988083719155642511602779941473437672475463567437734636122633223819014188598152341060772512547700430563048787560215844161524342913176265971292660776121669699292562868798327614754186484271777118484693901180626050809564871737379027464416251989717175015094084051828093030621294555831526239255153166514760880799514874998956083361516687758063525023338757865383039896915386402356267282510320973129958901668617035364447664066941251258485400049042947272583456168590855101006605068411926235082840197089752168889049658603896085841660847629601299364794080670102424258413955494480075697713908498072377462434963307110607941303985567654513435249441860604000528446538874261238519256295222119385227863940595584794747005919151749222731036294920268775807690776710009131187969890860393353839941018923415081147553861304191599782051707347596222974247949021295739360038796910639951901913717867652481547779494058400350777378642941193790582731198846262978979794172169041763941683661570989284078488673751982675537994153105720889751813319204392893969094845497339686004592339051849549447932134748038897569036232217476256004433226988030636227457517641049269624568542102936278896694152544119483323495195664683493606513485721140384177401580327155876562779362851943836928680668672905020770727995533554916989929728819001517908188702765674582034298678196176824176554031966367818220220663695655765763906336397142250764584243212801194959090879928213971026899783428081734657080401497754407385558404004527224583672971463542359580544503192211707187061439239158198169495565441311140484907446186652247282685086868910299501179715330262157293371956415002053152087689600756332528678667309452566956922381917277641843453222808991110643134054043754065966087124837812098028363328360979695791905211528858053459716579160098425166791873954912321898638798417544705585601606520213518520572399439446684093049390254966776943882197832499540499758627501782083332574386344482231225034301557652334184554627603810124461938353428971964074095357730842898807013932918836531647391722506841762314187835626410869487033990896792393138256463591301902685535434447347092294624450323006744246554300565337422467020489658003122159139355286457079003146562243724243623956693575134789699601423281930157329840289380950385782009050995449852828524072303725816292594074494363618820950383558115326097120418834746272967590849024161509988398842999889140786688105943928484755409292208762564192608474320272215905080734694581684556769013899087823675433535728305726345316322711138432119470221908679544236728057728970941165920024787401761088752651052502092043734313034456070330351937943022896248019159602692394429747311331442831046434362473639177199809156239409487898734392611987636293755886607629159335744454504616917894775701083087311225951331248134319027880348287948958817850160031341336013727521900871638230827222386669422709607387217742657618619284540126408410746962967187040934634513278723328957685928936809291162876239605153760088896998835745783896671775905725269539019756381726558509461123343112498844308057202287909681660315608418618693120069855650089931046695805977102359777610310996916460041102539175415567531239013634806342313578116087512257053799795734341121737773392156643271354281122314086218464433095752023315481316183506396089916710281837493863710462754369026953149411733396434596149460863947189679997329135140753381764255715638045653948947720536047245267633574170345064451877110652980285835014434765692887254103604569754409364910747065024902281410689071737450795115155669894027358232014117770294280147805363948132039679690622363574995267155958390707460141624188799058243343088617030899106981350384034557675871338765634804223185505871440673457214451540390389040710841586019936960719284141312191441872129484017855943030876305648918108680310804412910334436383033439041587098247218506626464111547719620515829354333150503387109383809178076104137533834882427103880102973739997597885792346115580063703618462176365453986786027911423136351337407780017088834976385324668721993940304409638372656099752236677997379978636922892313735534828244641867406842499612266745524328653640416956468428059969153151273509817532167473213828046368314483824019248745596635125331739715394373345056846658490920767569045055103053377554423293759425295015153809442424919707589804009689767891237405900318269891701167473473631198539253038520900270016714867166272331623794917243067990399107667771484843373909605342180295749593583455167727368256392068011796546492866976380795626395463880697687891020340016778611092712223265679756254005501252162489041622461659987820673484403355842886453073765752784533466677756787669068685836894117882157725240958002869157935087626981659439078015025169388524108805709651669783276749189185858103672452595585324373842939506118748071220855453764624226141227108815045246995804382616639328107463737961860700716007163622443928920259194572293559928922541936852767665565045186870826580857518186614737589407386423289603208287064895204257945334046309019858689499579347649644592696661875355961048191356673088922609715235326997883812428611937708072177672096339483553279024941724103206116065042869226968933849630076355598232374046716627665953893833855371742335227447759004474657863222299370217629636959610036502150831408527783892571306126799147282564600422715626368171082872139649991039845971527851315871525214026432906922884543693439879242126307795358742860650518019251933504933003114252984648703423345050783943932250160633346295438493083998254955602396045141008586070132105003893911353375825394649355920114924814695011957781019567704673401356641411621933375242108127544030980925858267097926174846207914354155581794070460615450024539811165803622661537509512755797512151780111500894188575358564395686407849734705656947259599084193223057196587672940741644791467954770512715598846239255759815847967579963929149199460444882815629327576236933855711019768744639658021213515571957264055280830883519828125059098126747014704691457848145904696636066291553561658137442676711183505849087870171811147360415833763819505042872473515368659446476932135873514535156465000925220210428211589124004188541615489647966993076689004842587702440418773392079499036636797892545961952946975870002813821421143680505800968548346287304464930860263991523580634600002495230155001806554353274017000096059011121106596445076754983210604983369397066772880275823498833297352041341873239382918406597552111466105886209324383093009879680563229005472517511226886662427830040553779807838793126582388513974057178170245856332233520104534541820211652556228052084594247006534052227240446863339397647423585220450206523065581081557262870550142306691078228550357624557946127781851233276073571640456620524754396717604778515192785416967327399582614455464339279221686589932076044701620540421305101258656780001569403673811263234695747400263715132716071132610861611771276385940285538834621864129666422527571119001267738059998705007965856689505058188915745674947217242874596250062336234571164060013553719272940004508085764375806009331667894055892893046137197308151091514094069141314092860222189118757883591589695690284490153306753292271385669101288716263375713339918396981462388620568631743045347070339777176532658046965326437510284244692690718048502446208917108508627589896478354152183966031987659492113843481017849931781698453214262377389516239454535406607290870256197114699139904610756311867761963144334521792253604470936275280480297729571257134578083869460491800382861216674274966795448274574919200145794924036122946952832220150243604298232735955220883846295786264401813130638459683730698558732300475977100318225401105622685856786639148677294974235735664366811910568708434101002949518249218049358422968047340709928820867444381340748816433444589639784077519851760992506613046804921617981471418947793697520257654711636440851428751327197575535314484706380736517543094270394026844388629902886752114119841753998117580330281922616674452241308209707058218426204005467483199161794269656512219365774122559148308769052441861416319407964558730127949426979669977646442193807611437401122131099193725580425040534992290333951645566630572516854885689532133251929014444684242295152236858495872543487933563487214638674247269596706153356876456782737006453675385384970216245722086596382847127509243547138107650224292370955111863078885876278567728952104321976760102126996579973811295400176427708836799340896934904497410045656474560437983951539238854037297299900543591077292238375982514745688271449184211105740183847079286797577900985672573184182197699398832969352576614007231922223370885136404086498283771149455367116405287155288566182110446280026239370682551547395618040791086968541838665934660210672966471049026917817374791385652392137460940739335643660317915891444198487103761111569234326343314775662856167300358255017610834531532699143975368597310560944298762231709324117124023768496744054505578349479776888294282882408557234620331068044929871755327997305726859722298383565946557781838614173337320696335666335736429561391486149609920052350059187205597434242546171836182404647301511012244033272432047156513923354092940259119518818309985752749990628959569521575906208591693565588440691027864159553547034830755433419069669754249925665811843795390053898223865660233333884618527575629831238111560877800087550236799320209730574089072690655458679066501395120315608872364329455890298302105562875829617635783337538552089144362836381133042958290348327535928019411692492112503268916789492508362191399820110624464151260634010875614922812149404316142549110218173403337453987376827170102108966397933471266133366512578098072341582831530013793564556000935382175492021243758774139643646538965312187423637853360063991834841307210571230664734167631665569574817064727637434998035897033217478494159472281452526945086803942255221466152714261058287757419220904471154285457581146182468590741434778349947361956066611526543985990033163400323596158974859782839293061177848646594699698459832863068816806273631711865834529087950300631532346472666033390997583713181239230431603404225054366730025124607009095018436089733950324269865350700448072072235033948356844483952829071997136649513069003231543444301408207140035592102898678974871527804185317907072313287334405818871520728598233820981043658537503811252117795568913822984886496002841368322025572874160577188263261715241452451800281924363486957515879869748418930689686440665412070746813147519108645741861801454029258385755002571749611127533012328830391668975654187667610888305806754987835926913671697880597437284773978284963104588309016318947041572195563481898137481114064794915071707629096011908020069493802731267062534611903560073174244574960922172336319502740946935839012057073191004487463001562316736283267233815507304138937132942941717141318196329107304109681941563043875589199324742418942948389195299145189871877837501407545985078282534348959887260747023805600409316590899495930185356827260480390355096125530019524239410863902221666182611518310828061891633164425315568136986170889733183870253439442362367550820478312304872259611077643366052570454633146659548921274147690774829997457007077815003601650207635580825691553721380449277870485788472951028619384425294627663887044707988116914929173892328171718658412267054479253721878096356917159487287570852216087305571723376195967033889815297224041798738569374587671843644002910416629210932430838828650047159674880083659745022479762445737033690528965321821658795976761790624989089090190672383513489440511629898205589386810558669519058507337256918090708538628887625397751008756878260886023003010125185224119250667865239613705975905495531203105553021059743455785831321884744930570328445606826873408953628726035140338328611669702625991479132020586198968679951622737037691622447530093948580089206611338503480670993372490291905016995528488942926297029801999324372391941727421902052518641972657423155024696603131574146548732760843604955811012580640423512513167432139268670199843912724777494319011053210160880876915917562163089620472299812222731617115073132853318870250578469700027648908724170523308995224907113412966703023848454475507111617790834652242533145919749807197845165109114712857651857464908582975473303161509704531164497220962591474535043089851217682967095938677928519916495304412927501437324406145043562676879386147877113787684111304454156562573893093374122677988738295388239078494296330361339480682856157111848042070122536417024902703107247729940552131879682896286332611828247985945462589188289546851026982078836943239586725798419080130958597379326413941039318795462093091036197157208302686855733093136185031898706822028974182451635782534851419165587050470910874527332900167525496462454741214157891663203433407484174422009845998636411757761127768541741974524732845223293753870775493768036892822873659660303916094563035938490127525685216507253611583440148181144707512801281061782929524665641501580637567855053141254052276906128159598739405185390254656913133175978864304227645710984571388874206783780423482514023179846802094019837080195033688596422687319868158137271118246008970952590864247055161849623607814221402256458310175699723021731655512603302329450566370568659705192893164126987064569581578201082045759002975404587272766015905462730498771905389261279283279856051111115732206050198686399434791986291468283893274110294133996596438430445276273175323469183550437821588879651851656417997593290093569487460284640562539283222922575624800734323689959646179913796391519189849577430137813375103773093258965423966853541556835192548183334877639108582751107979704947917186571799948329995236579174820003416324485561087530891207448310432405935431848751737821050539981907090211632717183530252898115294951829303655059565263135474861567080764584298597750924093224840115716133411633695349524944609562222028020312110290567548061805208895069311901083425911066922712686718674394538183958778204951241907784389285480311099375387587055406532549626807175940039163457188570616965659246697883130300877070576897280445648107862794026791633985393761926774832647769673698519335687401642812700497359838545142302720969233526564868203709882827048228672965209266677462313059452330432647400609046182030411545927767724723803526162296310952002706204721321218474860404595981885723668234212041951643046127361883228440817211323676483671872842259265979880694006421739492165290402121738570787880911774896556473490351987192150663485684506338622028857647370322560421923436167988109205251511347260798284845042924702739819302204134689413951729623582691034346007099967561195524131007336277082300397478932270265900003190283164183256442197572409737931035136642193224901212197415809874437561362735995340719735729561866726071133615779694552529460672693576545827238059390214817838927580423521335777895659026021716066398396206484303319197097055326143830581799264285827886879474566615127443582914871118787903845002345131304977294527161500098772403579746598184487360859515744325105697566265503705828485488604958789915005445362293188978973656604241730715635135111317654492124517944173542561694801833608157465904940638525800847130086717948861174397927463447461984601657566415270246028547332263470945682453140354869638787760915989175648101997150058152685036934790576353103630977252863754166807155454708676185634521459250897861901279772360648163672784978930479312776004464740403716073472710716625995630548792643346299105952941854451287102769883183443945064919336015540720389198679375827880906605537700265460600704114049871105543554686742915452192668298026521032988560690718106467715600013092532833333371866168398008971752272398234357534133380307094228562840310184061101156621250392645892001170874517734074025609700874579483630440854989545851430028069761384567249399184034183280735108066889288195917728515743076982235825114522747558975482820943918290095614260914759459038281949913243817851926661812958479103437293562356898772323848554121426418135815112498876042776482696767110740959440969700296059589721436201211081013454056690043787352732648921676246372694436791966372616874499504232918234617402799709842254628923837044776146206307120907288635458245572458373575383037017815745688803470024337316444938401236911507230289254146720455963269366304402297168631466360505028846737882364334686635184133516286981173078856247936131227992024261400907935216374725987090665173431408910444164812444638421020181003611538245407075964672485884511262180260153347074903122534766823515627294085527781762072981375558700393390769890887290706530739833906541798959077478186737226712141457673519858271726657710904122812955416702381246334136498470771769684719723817590184363438156955990972600507436087096969196924811266843401559171403614949250773842409242776422554616878337795590139135217620660046655856982070675545602232984375618968229014870711766275342531045735963805979237150662055674688044661064426976511838932412335609888127445007071845029994963394353749588001339094114448454778744241443720838436038339302411326440094272561117788848571890820473521876863003741053048324715943590734377240857776918481687586372798964561008608297169842618333919632666404439211642877400883931367906717614254909715489644810152059114454902199130486876518182879679704972401070219280374808920327700122781694902051145227467118745639009477848304817066256827605053010512904945325175496601215860732542738163622607784276932044012573163799248669109227114310865437239151645108892312122848094943105802325087121953439272947783338030774454568741432324501941686252676605206470030333975573768001401214941780073112273827147332583104869630259571680013377351994024767774828110811229679001815489932733638494560600475846082180824431822878798136466732297147716744291330732383704775813998727079859569469951841184198633867234896200319033422840767843361307381936320850960973151598921404462840144933772479632180054197042562954140946573221147668510534386678694036620981099567341751996420905663843560499761671016068911080727141473234911712917932812439257020501349435251120967047559097232831827088951922419577034956278431906305867438751245164794170248374467570401294627548795372950397492702698673871892697130014326896162340778289263004434654944271866262904483511282552724064517595373036024538850286856639617917283867766318956137395261936299760784059235249956636837809763880642391052522723786531952297842401684031707730604704489982040228802203658566840010167985339619830906233324071112918315890409442772533506954883858072754133735328992620927339875241089461071757261024542428925532009194019784432733225370736626967046220786492467676523264538134918831620155206657542326909277059104694503329465356642489121053838275531411060551749943699144705110265286229864551765786482534008883803392578143646287377049212724682404838742739932349954716345338610912858190863157122863175470670029928561918755471703185253351589727418371670600008465046677985883173324007514994129036125867749500521462259061689350529840578001920071692398294308425632940905952194421717313898768530694680318239168531839640152007771515532105729800657289046703425882056277866312403890115883975036175217781195302480868068250838794448411677866260567435273234569888770118847172424863067543647875765325039999234234036212622064411488618589470799088954897165753965701176216318248110689103606705153802339831747237435371158044998783795178013702292483865442983622418509172323478325846191892569396410989908712103335335419498087864687356287271002885326130165837045534279745076923551670887143330594071845923465239223095374697443918764098823961568452010869962474745925792241150018800889998985379582233990123337686807936952103340950921672364569753827567073380235608832046080276128959916221630352392079652961348539644146248358448465556015209574100913441218029904503251608652361981776783388238569161187298357007011717139310229362505336222670431188253376226218053813877335923227158402926268890223552308626101433257393934584190665800662375984547640032136840366177157475824152986302754477448017850569826521810764328570978888786785964959327067888463439026954448458440614933727327344171542547988083921227855782128914622257535105453935307427423965905137656700721499455275038816666448007516538901039493590938694821828421077479379202633122196873065080431060741289847140333414906855319881929945300454287824759088451177344426627432074107250119755748019332440832605778901308539082549966180974181223042143488429530950828870989471214014803677240544266347885269657821624770666404787492018467075943221287959924135819177312565698003699426980572331422435370764162478554435535743595082074881929840370351973873519108038688003930544064354099201995229013177331104802571542435962200187576672853512464652751830841111529418098769948771036151514166114014490782611705732690948007103190048996770432876680528199607649181327078017063621201974320255777987286334134945404573472394790493613452627755518193687438000658715112512596144167790142587946471467791559973391181343670994750009557844496354824949485105328457483556252515886837810320319744167393610292645909184925782886577812015941056210848119622585329238045145064985400156886705562089840210641303972182577683980814325403824036231804471513171070039828177378263521587213084247274852359881226374690686196178403407136341168461075218044945062821261436942127045018127579324103416946196048530985291507699498697055098967184807695173893654678208602644959627997885273903086799135473205035721301117108932511938617816650646635980166036266654832826275783736837966775244088326039408617699034273769727120126359977335283074354331802485753538918557939848364216231477808162690070157446825569153255254670074563902130522396733132859888007523689048494180905519281228909532660427426408077072092386182114040562639814682244452045632149935066175588402402585569749252289363380220607177278068468088799477258707350910351783846935676832624749425117276634505816509464003597379940435271946973164020989734956942068173710095512782168819923551243894302540339269723017046046143917861342339937124226580020582135923277161138454444515378055719704594966702705061974191965024888240636316242039635045992509265859878686920728925645010405135999600880579823749072085730771593574228309209356326205461081238032958484100557011595782725529678112182841282962195938991141608174486125559684077852000768406007626490746139040047466038057447023932765318740466899312265450797239728090048368672308368133953051935213005058286457901901134561336766749703325030170349500515332347955686427433528514205604046568263441659106828470230653066989724026385062474436122401265960100043376070522267973771260359220244055418741382290032857259715600506575226665575850842824836663456738257812811332243433075583612114762683724787916687610715968428241068412936132627326439995749152117891074928448109356952307678211468447850075418926919306088899798798879311189230437782303464411980231429848318829836298303717695468501939305199008674266301822191367026574968367333536062914698631860429491000274117607843812492168062234206676537383128585155240581060675313280822144815856595604095462123870338239761245685905518243326409938041041252876846381256706676167506427078986689424182221896083327864120448471092630961099193315157695799527884717270223416838072540003186724974325074812061363500203300527610178825550741851356881446233700077191368808419565195293987317796140159028483108574403263468769716676898773775544612358698415448630066406683120139832950152612840799276754706097290296769707578799780159408991100994411308648258820511551864393174552671408258400327405562493434430126584873607391385785358429787116157253894254916691738550028786356802054121936194387089850349723735515108090313657908503096313181389274202566087505844879006738499702357405635063606886162212833603077853922764557068763489141908254738723630999854370780909441038424365652635922999932654520501502562719575018438989316206300993536487391018021439197216526821519503578119706481364294022019766957971928183508763551116609820497406486622252360395885618865852958967456681014747282033620229134209815387306522326841786269871512320360822903759889446528922440511878877885578906337112701392925424693880657130034240979522873594323331372020591794318151697443023387495971281489103494528840950287267547702281218482175044538857979560246546271649960063558353838151173985540381804479779903332355109179616190962172392521467046852771011158924633526343474726897450039561607798392978957024416384668460621001148652598004903751574040372337391051872563030800153110924320813644746872309255246833896098641304066620118855270691251336096806856619254992089932767630274047965695664582186046692471579265130519493219046183550013256003249321680904757809754567255332836202368498953731473443120424316987972709728468040193952899637420939830767371055595312506812340846896629474663283084289705578517117845805804755692401177501150206676919323541557260989572245756869893526443391479492211355072566478567863234788206201456764615041651985962773512102455718095285773746234735046316464701593287817758755387940787986076002530535421935017553709569587044245913765635980513542392663495857236202654498409519285683790855026198849961761936278514290227449560040820079814886005564871278367283440355923361935289193296248148495651638829321214655630223385429761869928698779678079925541655700261807906087342382342008577947667023148179217801630754199524819561180745854321029254717961660968350194708823500036023326529659846336954727647566277470677157174510780245487075166384406943620389379862614326670197526245567511056141447115432399245437679774785292281312424543343484780491725236410084597545957054578968184000904134943857849555159874323666999330897238115085725112743250688363869170295532158026084896056222735828855971654148410148616902391981975394361272847576974118906585088982260837205698940084816049367808594205222968721640546415335981190547139656893539859679261005367533136048552097694551555792009425146191440101709729709273814182693204318930835478852101541912348510805034534937260695212372924138519844434883355924827020055870000060686240289020801575911926259820576137349381533436176998939973744228320319498325563568793203632006975783503557441321497497498556921339839003597893861357785475261379230536256477510561954476241314848805456293144666007206286740596492354994071037616508670623314178885647289626820751941703909552254998088846910455670686644060740529655673454027542031211786020329861993830160025742986591419300449476371739275739962606386765685677304515650063497835546355633536435457267387680243350462082214524782367527804334055624406346667196620211463450730933057467800575084084255138811271027659575903949611044898909095977250140886624216611132816378584327339568567682872156786914966987249649247952202713104370793771430761666238976361188988286032213729242855674891638618881180723922565849742543456756460261942701047801805118662223503917728694784358187309530114503891877901049255204366355757946705982939634391724973848580258955503895413170306229765591034044149391519779059987304407643989192470544556056449150595796215448043776361808469416493657347443134040086201670728705886933150254468310826428614607372219059478650590701314132575913269339110029254873711281662292676275045583555932589428917425844591760820908770695758649781288130852444586747311959392717009812847994446412176434814768140089665872589283899697132447336881283074537756005334267272275162836872105828206483058967733565945271568667448496165176312789155761355609239555470305576643134333180952729434209004745737948900071363329707402090722660675860355405694586276238931509985634580019770811677852620999308540886806213114136529443763113082107626963177753432245860852940564452805646267724132265126593103116997917579736479670685244187582922457996814388105963586521922237428920971582311811728499682653295591471125626782840698617817999334484666553153070021961684113743205469987140313883765470789093415688580177857315285464859950890939344068208971458812748382871794543664812300577391735885168129109427875508951838706345015855756061519840708224772449648519141881309966989825295708479222546125906158344759134944308262895615048316141230980855815476949823634613929100716284580214730224878898834226129297780186472982203514367577104302012524564903350042760691835453116811334025961816700654410453297501805443874935921884800630171472603507872044674941164800383278886962626167496597808811542916163492044371046532481645139344462469855612261358994676290545107623968302264539339596416846930616224236842402507124158805860305237745488692253267457660751849827891924114830195295623175835834256896719423144034304327292030054318017943551360699480311765616392417277076259263313567525009782465189071054808592835740395182053569378072759265137309169635926643730135783840755500062127633177387599845058985519043518823692348600018021647036164486420731808100978520240202630032049467912964605382848079221562937719155224907888022120966277034206413152998327232475368784672253772208862899456292537465476795592606430616843891121871563245298236696003775814942425292451549158550544839502518793427901096733182073970286592991569381030047450277320814297600071553795259963939799328442832266733545984440393730422989472485734042817003802218633657666049187464853308956957252102863258285230904452117639944626402893098118696469807591850266847264234896145549220312291948084980739049475152231054745062657232964437442443217954207375544943831010909156309789047344652782144900699992189598297655880819949251838856067888010711548892668300683485418435926813756129398275742877841476464307268904576374471962014511276020397887308022733784394632296072117179569990497500221943889245933446287526474468032106295752888090547452190621006482743157452947370192032475515589349669951567363286277690451467568835955682618921318804456301413918382550356901456733223760942590470454605730992598449681586872773132911594323622924579942252063973883274820039713355722136665508705469355816384444694805827144296159290265530058403495182932580964635746528963073360229188002238805392972631017462894491042398826400085158803552032964651567713946455910910978551352706918817842228963393478607921305243083798832345005512188284172854664095911832858087392493627349480856623303059112133070957786489644500172324036943617645915216505939683052697848738568613917172432386425749550450607365952335606449401653045642900449200108568192467876522611077559263374682822040555829963349580599646533894223545305823718258945953895146163283162439802014378212326703341843767826866392579411438207782142626301223667283186422987018189920534519927270449265025644402018831821185702119104636702498071914076789046157023809701542576388451232385579970099333650093103916034654254310008737880930266765666707507101470097500141607307527995569316623983100095627231818351003962988849953819558503693982516255494381338291230119254792755393640750088052601052698111966593720975081218733958127079229379840393020285517941551114149224172630901767027058516558709673822798437389496782839166193360679292498354398171090501123739822167782153260662150315219864657666128665719007835013345113844765515586995013237522455580822258550716659530270528563198768502677668387457706130363886431427318922219212292390467445625717478956069336142372634645839465561497083967352332856276950135554026541010275242499237985682202595295926392579657318140922465445244214112756819794927463506132200101420921751684290256291607038585597484904537262894056944964752403774226420942510922230518944980809815181522632562959541368035289985670786730770256799537732305002271321125994440795130191695384845405434983030453639419376402558815955690845600798551124650710203563020342456693541831041380244314724417947415544745031460876996851824202418256439694726877534132619091424466920582526996840682378394321363585048931256321456081705999857197305131156091111417809927570924887595356512082858015224457999224642856945362708949082254647906723265283660105037942705137146518543505737591900805375239696129035207422104740669654048799264551714453118744168740500196687390411384974671973317874623660970198547192395027916092017688977891071405240040923050403562326373650792123119619004543020402708762881412234856261544827906907744312510329848170070818174771307038730177148925692887748429603206574577273017402813257026798068478356569630880287555182408729965814773210011155992843551821462596651554326279356975902016969485217410074989773721264295486633818079873955342446306412705537572960722754072649418627565869541275635272120616858647045985832803701875498168542611543740370440960472105470630796843908686358075107782884797674160498799407898478845487875236801399981840248818478959549052876385623999732104839099093502360420769455584180703592405957055508023435767579751338547932311317994468846122426265384914291374422811622091337862653630384708436851179717292130397191832489517523237919040028643609380477417690703607095429005897801950786834266349435708705811024080486027249819097914835502669806654323317742662313597639526989342726062371516448664277034452913107521118801719555522531363546917252731091881951159636206331685548796616632638315053602975609947491202847041737492517854389628662573554231948727069580450135180291943398015498809167763717212653369251344601691094136707169987317318644964762156394648983226230012407625084204953886891892514241537814545449420639045171855604278921398534182660442898794860861398235212891035123106592731434053540118636120175194068448292523683387563620951863927032808636061224231192572648566744704314964701041801925120922394404753490633324246121550789887676577178795062925925449713479759677098200087356543135942667070561835269368940915720454345116947325746075673997077366360189826933241474050820218843096374544012551696320410334357490593984191559619609057559944315598087804661407467680560877971003220438993216594903070102806778768925560259349844467767788094398393181347976184689834259236081210533151446482176764184934095647624078237412517272549578641633762798820977872989584816880733008428325793529501518880794941783786305716143035175501287218864993559165442299742695139137589837421240122517408633260720740792237735388139026425524636955666942955279100032020768292776605655199304311616073376920983341299729656439342798492128766677859060353219503058959047248830695790878998604225266343731965016389043902012170312725161722595148616854829915096408295947222838969114228255710119494847255158040823048239663120282671498586496619940069053220118954355325447611205556734124567920795029555437887337616657677275088160206233300008800888636724069170863352685904093682295512131107156695533877820642139994639110552142348972994318283381022340745895529828925177027617988853534577427408955328160570763962538139591502141325771022437605993052252830828044594847431322909963315587862194360555239335882171073268488488933272136926739814536887777667511231377954416221880038219718691369685965665065123051183713858772341366573238102300121826090083753251775227021802501974132317367646666536433753567361362328526528500147045061529598713831096003115013686343246524427782582510945946804753586314591835818523163477841703272465223981594991218246347511017021006656474794680703542514410571152155776539319939304552400757728536378121088819026264529829588419128841205875831196675047638429783022505490680866976960760221888169197254348875512140897844768463291636548785579838235616367747802444494968636398700186924130775117441724447581903265307113658410105120771692589886514714825884409190580248202102147717216770960845014535340856496782881159215402000034741745447052879952337657216394356457138251444330556858741073014368904610788254110041559063479585019930891727603747987865065278662519891650558165728912347916064452736779245535111795689414634857100409436097598866988359978472550640868809498174069270777061452882214399245386569196915015456667501026255333182531398265774986853049220421220439809419977888122212484906942516579771661734194425801458246757335003352833815358729555706758359955856570700676723447808608187348440811695001716487872918296418681228980203038718010581845915000963708843386966521430983155663587949279040394392558093286768175622500356670590906644305998375455897151138109620514939941859858349891911935528329949359297394995598612872606453983559286122101160515235568370036188249014619094729524751395741502797895927923696216279991791897980891295335864073300853449760498437126754130015688203144053010576328372434735541633842329948297980949492020863400048910618784913099267467696054846953837621686953512862620702225585199854978459041142882126755855091564288571346955248361580951368274232406780192880996115986869707646281630283907240267246246685133726529489038435273408003819447710309779411891567568415286551281074803432759766633942230526446052701855803348516367691527843288194309937267651970651600006251169746253950135239559862480635833495463345752848044683134206161191689118068715064165850317400577342243603176893106082848717744823330664709080823852363569365817907135543396921268455709744328514466374931508595854722146608090856180380961723988709848517907592643884150412724642538508989027663885759394184211026166749581737696487583244938116019308512545136507450251250573776594618912178642356511718767645972382131685923542225339715049969149147508199946960337103298275597959790807440285572207549553451142388606310939967643789079386549906092547709876199861155559121171727921099478060539767721587806679734579027705287629882420507707842062694264999383949854753087318734033954011174010923043590040731842673842707363451827606206757694385138449455478715156156190759176772728752734886187617439070623666381652895083289147612811731176583854955761256826045285394488886735043981349685630051589442275528844798081991246790528382256048991702826956176582031154184343898818537572166787282108590730819101590176283891340432091063626734010297713786375034015582838255344173335224618963514937816505069138270383069124912435890662714516233383648235781269146348054308697901662544910607732747880034662205762914052583918509096283915714245796029256527928792928869794635270616319220416251831440054118951925309054001768006032341971895722616093526019598886100095668630574791557192346340338851552474988016988106269006595735001097243926984396575145271034728723346906334918428112806588493623843582620209007248168004616826737995968555171963108511486542963282098546669155886665874884636567789867684426306120239713304014813357396717310307946479988816912455315709644976711552754009757197144230251084610156890362370496560473957168839370036972094892015726457293665810424786486014708666125184506734462611833966212206451133063056034734866166631090757395140601042793445613265126192997291709743957334590682122582850070418633098940724614949907629425673350629876440222343594352415772926749966407961199179299363733039125908983628811915176373283998614302892646630484015139888387098471261109114456026278771355812824410111240171780861372339050961826293719487045738893031589611809298938901974804417716461133960587240626652335340096421056952946129936614512857990245777682797823027771627174678250065699760734695504656544440684124157935192574342257309746908909598115321166297399072311009150486703172202396975771754810806813853560072075857406976006019796283796623160830729762073499815040277738326829403779533084643523510060070125868049404367746286254018568037397230018897621450731147271094861423960331960083211435643927457357837389147669126178733766347240089405620519651567201070299311900361870447898123501187852093929769800352465807083964164313419983448401913319736997552327436287891438587549284275041520423552354771574760031729040057238909170612734146041929213491351009347468150254931328503537475423994495922749984181780121334388866669496756074780809038770600011069442216528290897865507102514735382348707435913862718787125889432956820284682886914007613631892643158179180441095978815112336549876821542558325804256180848793268782098257003492606965678859396543928223908455197569653631595561661412238586456683830258572705028029973516522702999422063497018913252391920338842221747798724129234504852638574312297542186259191271105076028876336672502005194832391708242506083485709501745013883165319738124900499511153698196003921520312696078078501462956120713417042709903818453757002348268643419641228037037969383052814678878285687216885234953118608724348328693364806932538371436301772198993554794937212512860413578770125398588574050846086049595237793814042590244568651740485348133849936286793874213603427280894495680562358985536543987958073726184557040416415499006926672779292297047105110579970803401717751436105897369014668049038719498730374444727675551742577794267618913122310149532778243833812112515909372607820691548854434518913169580036564799774954824324412636177554019713807891647633593575430038252095003212616214909114137890462430745349894129220950188385054647725625066875066087009148080297254712651595975711810854594074233854397664484272276439311125394695212725341566842113139923496163191125879566020087653253791151702639009613207089223931808839672931657487301353670826571349853171671342168430116083976514083036140056501385067520364639721436882069021293701569476778555727129694347803849838948313851365449572606514846930070750955566219971899161513345745347107725786633014921991893398238356057271711992606131103945011505167604001914812256578027108946550497288898016405464990703815774865994260977807973666956508948484328133739035692565519643326763099909757046301270539669986616919207654229038108953823959852271551897671404272740147009872275151547637031915890247932288693338514681025480252842242804552425605312112919067004942801127510440775549144456356284495389261942050646887052806060812626160945607670962960594666090839709575903856367618641848927909352893971464275436041383467416063423415278227880228994023638063508196091384222390775553325916191253497749656472885652213705796526170432700746769372917818674891994532463313279893102346127288610530966073920078708708494322127478719548390914976075453098265056351718577867072822219903330144716006681196864912775949200375682381608152385422477843105483752445239063969182236048959155456449036689742231334452573745089009288241974705026491010306556746048491503766396246888196879059911497859971750665793402651486481854147149750758446391106973157125815575852662934293492082568559311743052305681095233533158700156679134093962796880829202229637012502588345974842311196224108137073970609099813589591008730133693672033876873108606011906532950766918591405950362444230279992621469578347256142257056149226527848829705609181026053951148686427904105215588613837011896145424528022093325113147561590448155714433064326917482426883485813527061092431736546451986068037143072753106250367315779964216831475587845170906053561128928564838981690029870210608474182953068999125996011804792041944127951562028877723500662372618569975349920808516029800626657751216545436742392907676819855283312336897539308950060534412008234756821552976782074551088457389198117849547971384328105240708289507682193534807036329315374424525552584720896859218129466839885880749191997235175579022851775679412726154661258044062925379962569925603956236194345166134548226231625381278828566209290321259427905264839507246094597196356385079273409409407061838414281691789071770589415950468948947481069097243854026139159232339143293663289805389152267984593096767241372627591729717566618695378343983253328737954011355220107978324907695468731230380325552924806937359618084981746229440513092361453779349442981111426685002651502362729518322360786721630855894495466055973490384622794393618696247170885475613699572083144096651488059386071578402310978093220448668739903903042114536705600386139879856898747287772360619009985480853421373264941485010010243729784906768200635028537593405146883259511833568416969681027640211282117282012306636751951498611532585486602848494262811222029990539530577540628732969266461688434296522453077680287659002870727379741861402596802451327907736774231285296729166535285490943368647845228021944209051908963057731753707810925466562943761075390857110563935891630981769712705171504355062265511174865531400640156228597343399383352174027844953300846314322816940802678172537537202008956000921457137933997802089773011752144282755501075370936194567572837349557337348374039776920843683870565129007397680827015573043968837575077348845110485871274317517457858215459020718007895556803401735295238925735097147211392361636797543247266794331063307681559827253663147999029764993783000866657019154689496122751269349990966453171157908305854093794683437044194358064566224178234186854055591248603367953931856124465329211768845244287982862526862365534896183911501311498357743079213857025746189373580973308285177581739530925310480026256719380505240975802064335381380680574629672788460565467323782469578809618277888400574351914027307787855963220472530544678326262832422333917536537467050819913822359899278552906129143738759268256475357706708291016495741167363282435929232984571546760783915050252921064595418412169385418459189079673400542652767524806492863976817356428006328690225196819614225123961196824939876891668962252426375388622525243016662241275223178436406416908603604328277718046065026160343105670471867788378968955908288771690676436871941667861091562727392200327777397758824566017798568055871007510370376477461247130814372852565650810286084167149238743110964444681647837908713421823249182781300050454300563659148864140088070060644807777347243960107033600717841199925602337234275865598209752382547114177389133178647631256313085955551343289602264082944529297221965096491529978354739005788969745833209787668081749199782975448573114256618333722137152150346533891829822413791594918222847104780932768536727456957677710527678734347315830372308514782563878447715997197710635938303775640067576475279153803993666233623913508770727701411793193321505243955239259320791419006358466021047922213258406492343171644627446788438785656784530952574290438080213372343544152912560131349804075151588489398959834832326827982882071314919084734355967370625249240981695987760411794810312480269252926256064325911525306419343778716836207286884278611265910151925291556972825109656314193515151616649450123606409955373399922511550098212794614517380072286331037170635443007992768035586055723447775887016381425615013838816519471819142012150418452840802385225819554069413623494423713074591363097140467136750896019535346916306187810899488241747669984782476677898324373547367288130209784679523317996938930483680172306454098687943866166485442182553129045902181141100268487895353848785226202033688501127941419060904614384426049085347336574348648068579276575864195458208573948391565658258330330860130072139956470764815555087649118369749274865508896136382724671739542898505696368825890867369689837978883003208468530899954409579767312938355922518571742215913910891643752206959156036453504735823490267774556906339164095804076654058318521329986149203071940091776106722453745417424164653962127719050307889777927466321486324559613371139915476445852519769651283152355732999056815741842962688527214887719205998216090168749679295483618439521502474741905027996857179485015968006405784070420768653189460443443091400400097184332227913413278367231220436734814358420197873986308126654157084254094297496429785485470480903342374438703136541108759723203706162950782370946303773629726686804958553395356733065267822115222689201355620676431011785635244779201365126077721694586380631063024565520744244872959502365875540341928627973617528174059710854437542726507008158588132959783195207175095989153684977600817572436843072691221397707176222872891955171366710991288667410880490960936599715691119196202516795302926889586526996928419844950055129307997052269431170575809883581577781412173044580091058404016472869081709582977902378317567779556526865440389945044385737856477129275763813837242034613994230494392127388554506151979304042899810943619362542416152489922635544399431925133092188502034628641519947897397961192785741635786091884314324850674142039905225616549015544998440650975420861158448038697396833366316479633794725599436784747957095721130724219719614278625590056167890552553297328738786930623550585178719836335659350382429994519096262841207716807480000903835569895642205263635412991874120437137571587183864449149695918103148594271337423976080149635142753560511888307446186195366927363245961160985562271510069466741558432696273699710758936425304022639646465156233170338995184916846835388564176078444931150853176964946454262386336152595816174531377975293762417459041860565431390762252480242408232265285523265768142846031344625991069374450293392614414847490678529296480855821078986000716554536414984380504821287385147150635313923194779771923305511927593304064821641284400270783393250785856490727810258260421749592210681053879071458114874621207325331557404524238617664813623158954850000677481569461471985308025598446346540916827532849913818933860075857498984199234094337423510637165456915544911099924143804290910798035757304008692751058004787973483428073249311810199443038145015467483418339976897945039673956546931995591263891222480759211065373907476045371127803247724406624438654140643257541232162341745539748027786152667459697155554794976791892520979345697812352406779449484477812143966820125583857519160257857287191114622398194331034330617401452732898885604602898950907719454472731537395031472437756719733608497599252696264135787088591446079280869579280532280775779574242059873590426573427633771283572323091413196479415284416629210173669309047779729363006033632516072490978942605363671336510830025071078676130619220311525674387598059939563865028565591481247462554244156906936260464743343299313667187911714580500450918712027341696707998497940448632356038144501811257046721038696324468783169243438536689298141741571469695599110602719282840880995260316764021742285478669943705733075684237275891981119506949964038468117568414437938994367293524534195801590584603970503262210130710765441571239537600151426134239870283796817071612547524043267092151620134660334107151073510379636313536476638024966310707261583535877842957149756538811977255880847366173437844532819108732573593848429565567465594993891079221800789656502271319147753940094808274242039075436191459037530480156174684508444507754872852217451249583214635798534478074650221587026880570701384966043718480313965294909415009480832962477153822306844108032285974177988658083345673392632111470394838965108584548959631817933365025735276875472338333992545113346495811731803983396013706838960739100838933083439675691450090114064887996575252997126322699279080843531508861877832499812475870007732521872362882742108873858422351437569522442585113687406367126614158467705012012344512045164159137935791549562712376678059311761784345866416864045767817137979300758262041474877121557652281114655470093617360868194109556691931322742418378000224334493040926498970316329834297348494659990586806217745499728836483439359570707503325076129672033047482131633751514743705381352635493252542973520438157623868970354024041141522880947789249578214653642610217363567936022871280066503498062773793061084765570023768505781219090434227045437780189203459375163396314645675666151125765155173834079798943977652776691983742369471536911883628943686142896508006238609682197559725089627053318179738100381768516707961822556380158720538548930726267697668776997793671731135737746772278548944805336026263293483751092868109102378712022276159128475535264231650405070090962642651555651783407544294750926103318213636979891029120183827151822715428167811660740354615255379247992369980775309886861893654562877693127541053096846361011739383075259540754787745939699955740385369717285064356553115698565287940471278367740633443542498930561750041948339645489037448032930798780486474257715671978810342939425765510029672075276522409588335921091510224582045379211303769132515229002975407659810321423587551155485508663366925130392665729422177386562708778609454412258856607545142533047027717344171286425625793231282966619943041159155063375291966157209994781489571801917910346186229666629149517940598191177609925337599822649811840317719929264248396642810543408865782193134726946986116901779915611711845733982830601888904014629430416438170705065604102558896097123398412896767536875306556230131576871594732434186847789860448773127368951252753360450086581662873566265204500405658631939963546039550430586025783949946469115851343254183843040533561115796949680375176213580111244477118084562074338991400522777620988689273531773272474428435897866984242426197734730792431840588468198676734793881565558558088460125107116411079421493392149998097196585689335706286615400428460584960666012880440609525341815714628858601542856154997297706752831972615974503759392410835437408047559573540968370797721567036725059061939321847742458618975137945701292413947599047401331528199917201834960627923528713028046834026105804811690123412778556822048118140791960474498571456564554098419493583035281135062959904188766488991437140673873404102904644625889535541275878319782899411872259226191915938645639502305057116297304597110112546453772154371950224279336686488216710842277930945452110877641265678532501559062125367353239578680163353637250538214856515260696335263299981431734569836092557764496294464271788908291474019028881206938792455012518933243609728417501867453350709959116921311900460187049285666257901353379109291692367344039000843031926843189851027107366930511401401793238849771465113514812605751808474701124219439092272817700989742620184368627962522625501359345671563175660846577437083708593074588914064110150607026547471687887073713308164092692681936486547675349738367537485873053155895224672685994060423230602413575623316247854005867563559629293987891785823233419732911178721711937908436737933032698549573895242648726081298425166993717403368266840668275741380957340519466950908853098162915554766188671794263752745301743446637460582293465133449490269607793728053587352588233480073863224396071268418353779420325780118891445511678518798168782678206174061558166102881097338326902917188232724441188479749983856289369727232026929828789709974426148352917160421856417112879880202554400458393898495888968600832004304427652473766782812279476567404707861628172984481365096517993735262972785091858145724499089444876136875390068365744045701245972400485162713508427803249688190704593141331685510588194942744783297529848301382525949107338984912365280378829109893722465668816862386852779451044189168300663787413135929668169850721401274896554043921286608749759169840359714977300836861500934440286022398801924469511141520321446292230974267699852259347102979432931482737603968892511193205942409373848926080734023851727720881812971544334596716025025031125591488447440312274950166397806351500879070528166479429485787651578730858383039067743236981384479626284287893447542659658613018649049699127591079702673545111723053402720411850043026220825565336835527319942263187672553982908935217300067710271181526999692230100799022439748389756302840389010103654634724938214936704694491326997625295439853750557398532815661112489442571758626587373797461639888467635401707129015526637406834933003208076664700106668502714557469271189235746356418670150976801659136222578106216324646873092949991718633651855993810074730886466688355491758448221815070969639717755089379159277572331289421124541728911976414855928992073872819816631139373101169613396682177941396407523652340349697113196617958057561097091615951140814343317601668995055039468215290191705805235451779017496597090916297803734207088722302202867274394281740538884247990112788727268321187898830722415553259602954063088320810613456289340120512317416233720373363315052345493809706328985407825419780836483127045257376169873019084747438264186321358512543052400874810480033531077254187865095490838223792177026476186084623824763759425715017586015974265147672621060905521474556766047670988626866300644688372567399341525623685439162962029061353855897039281959490787578441092120448946851615281022567773390835964002209865560368085988785590557270783657660766913679629161284841367931270905193226861838957613504046047048543409823960271903347681492170711297486746781634526471015140099310886052397382467248890476646039985111324161150234784184662170985425139039184301527153199722051312695049707717549286568211327737010908251215656681675310477789963775118328525332061434156765805738048070350388543893558072708714196286207559446938813731238195649063360321421099749204546297900673101293856964397347479016860021672104252299322132828506274519181203393878951566805686368491351315912564384669888115210105323246301072244042921927512167175638477151258603984998554933905940734921292730678010790624490244464077915887040854477469395061760781225896299778663127337056148758179554448765139636889082675647848917133448017976309714864468483561816571111218566952759149026241069177032461044534199796554909685208658010027782299108648135040807016046035902538067025355746816268376886544514547544958301155777354590341956004268858245205194541948809532424474893173277825353506790197264461372948781494667978286530136238463348182204273546250230677669812497259245295969331547516014656840506874146767661614309425020318120440417537276953959967364487293298787284212118793484843772404658154609647964382191900256375364897963329304691823192637494745748562908840941784355266880794930599660423927606800419706385971568404196644573421864923753584520945204089194978529666973503648547919964238107953827244642711424337483936047312242523562930263883899737816158245772660038066141523524083013577447442091983901157060932379714065613785652039859263934144373910229838936046508651890005039519327991127771916498043281530936431038003890730043124968870948990841515927804625121048645586604051425469785757801819696713058370875302696372036808031810232750457312343005827523075210906305672743634748538792082104438762287835744399909273151754976548542274253729910816900920846183180114499067303553848741206885783660559477928950397224977802030633265101109411727509009891471466055638925069160829546022052662646408201155144622226335599058890126112855504682321351183451471279404791668388613127645687287675977040263053164677398156235225838727720013351150271602825188599069921970035533145016864348803993744142065179815688176687988695216635753614897217456598322719631305765996156125670376610045867989253679041118111013148189277630798006905582092763357421267045403853112543307587023259614827730080154000031860046655342663574994376236759172594823468977561439527347173555796862217952293999269452304167231042840690936845211396295043260937353706173006339077593393474938535055394772571810042361902564248128636628628488930046725645525361872440763815640674118549907043204407436742182788590376631731546917268844814149064403844124192367342844396684708518464560243933158358288566129053151384381483690530705584322227124011620035842252744592277059293592368854239101905602265593867612142454926267335793901363752955475220137702569305080009163372436150518944191502536083038380736652485994944729885238572717757531442405088107809129614092290791045780090707693644823321260407640258764739299830909553337214549694360287028506591568726444021933346063991409089535168855307834428628767294593830243153608372035478254882065710538295663781087095357911460075951367901668639819031438014742995441460211940470160984625809782632968266907608008121616384931356568799198612231154377464324314908029100171073494987776342074436233703971964636306754055440556861976034695176563283339320639790501081038176497861909369286127277925673302268790758976363315194870870724669666288865464323006558547503396274065071921784726103752265632359866723006215408892651925309495266277017222424416829393590143150241078977626631869362930850405821440305760332643431037602302172184920446067145496770409041337313650687645714922746376862467885673029325385840618276583168055034327474231920528839127090661707298918634735547666668049149384671696853674717022374851088094758452312277753567755092158370605669853072670775634927700164514182705449597034825510122265923372135735702383591479632337750705343917435049560224884391730114778946854285298960829826224050147813520616731504601199400125788732485837858771147264124436571428585388569469283300666694702198592790466656196646583972746861533778691523495449083783628989788156832520634960294937991547075553778879537080619561111797920742640742160332436401133482549997291203027650719905624911944264413533494577109360850556003436957927129621834009948084638786840583218443182257101975007906013576719237132877332588322202737456187404942147820504523085740858446084518680002683744236369784651992813201809089842373216669416525555943819072054603503460423576418322561389807277877110496523133892313589159604672880002670307441979808241715617790170643503467629494029215385239285128577302983487911547852589155541537926364682045968929821235580689388919267985257925502501376645569914218711234961729549327715991206755954181107917502839099907723788303390719668476057864909793403608674768528586020331065027062448968799992283568307540626980916766574461318519738745627529250754867856132221961546098581324677810989899034388910985088495574092045856679249272636756154039033841187171916518413875603693748998537884178361134272205676182684405442327198175575606612062129456939118769607141751767365559799677982208137201118184505433797034356020400204786885461716831129787193158442164987214803957316964422188440104982146891364595553495916469387005579442979176598679985933191377817867751983774573835163520763589884405259426554096605807837352076921605682779886507547210312452228008492760184787849451148099110841254801759521686501213404926839389457074757862021743491582260710594595142603799202325711781590103160923737794164964978826200214762670662708829572874515272980055125379473951847213696036822062297959509354205092215346036404535200272239526102329710802031538010925852111098104517471202894994293904105121071721644349158540692646313141263853354075221497327084692118144133565482764736789942997240831659818994506552508400617150727659437178806954281520068303998177052271140946521469957646104663061519028507977547725000724762489365520992447454204116742113887118738555526713238492983795333321336876913496416376814440750079265565149892280173899369482555635884594768791294471845228407422110305687646752017111936849973487411145388341371729138453402409850089094929324467028431072640628501198206111336894988034768731791468883091942973407176443868036573102679972232070437686768278268550617430305877256147776158105567105934671594023313474105563493372132873241524846414895532718226412488283410397177362130815958905583333378956460659011172618010365486047290635991853453542130759736181314933238666706871810594621700168325554155392824782435275534525244829755872760039834315908915294512988794881014842449064970291847471733402653632363583918561421155851274325396713815280185480421340651667231674542986096193470089706456883099924397708057748106201962187552105401432289053419670530455892131485954702909868466303107794249678996946894567263975587510623408811352427286250538073639823377994780863325845334565942596075502777881202944593358751994663567003223141948529136513349879162947128549119784322153694441612704685548980730298664457967203456376820837072657753525112705050851495405728348286936867252617166759686243878683657210466944238019894172750246685839469240342564643264326684869358607284550033772929499636553212812402023543713196743112824983806104220046186251983368540603828090755347307362703924464692814244182148966942213442732242701955784264863815431931169619192305972010948716462247446967379961254179808601698964643625381421884181763601534727050523204799244747844766052564578659066094899072368149500933018269517085572316333836774698892773949464265689175488160215348791175148137571020233696741356090973069244685606912576570378815804558132111668256240903532064369369992148888957174647550412029984724851420280347827598676170323885275430227722035320407251156959226865576254659901427261893130728163016453403618540738422963614864360761115865157360226317469108242954283714303545123387699978576965796499704109851572861484757134594640647351309396641594133402678828051478521796687812220859018768924806151067021155002705527046593623356941242209083213402911672476749441501701668659941263628535701753978869397624479683744463556163180589840093468430510824633981360474461825955515517325746850564094081770465892499661763058670789884677452495140694686323497295393771870310723378704190649423581434592479119662239669510441540216529722415610452362864513681111401187098661160951484597834610782644424446918818903223164386177705743922800988981655358168474510013468280152633674199152999971373949606965945841726052962969365805812510536020683933541387331294034290281075021370209816504991584623003244210065555737972103533531516426627865724087552440543122873997219467478264448423827244584325118320383503899797608346867124411325089971849589967662219944240155520857874229040517536864654931137995829228089732381365193142411850722014167336459387126509685998695754713097805048335974561557494108204133866002042898186934878431923149116770212615312063441775677063519609105262157126396400363152376507982151490041645062678798933400769094166636117150809473648748655504455677490319487060051138598439786096701926055087236352334166171270093587430075938223506158037450771494739506827042892867998280453355113862509132598885798633369758999891795748454616779871478800671704133880833032909624361366566335498763563685774531015994414928878001282286814500536855895537980528711743383984617170576655863294530381596509650324748550710528006636138159704519326317451695898431476117855616534149162195196898720805616278686932947273870637364503104370043228963923871260110164883462661490089055586057706677623401479702422719378481625984869896588957284903583329875704809881690039113346951014089997662428938094085425916316475930785840208198317613196932455886308930254709420062247314031892617307729611816605348727888333935960072599827660494082875054839583002557978223441764839473288962448151178533773520143952893258511231698411094001622984979182200517375387471941238690164309455492746536896081497363563814454339091498720246048776209042508562384167768112877039568554822975169851219288319178843003340398194744118893385951971543538826202841032209989663093777201567333954693654298232113439624844809108612181455681860618149474086974965390865653561003580766392561984409299345932273413099442890397860671797536974917258029625779360949881198428504052247328421738607005602211285398697891578199680498944903552865993084204524470731540939339009988728636955042368452708688066877302773418062559124404296232790285630647354364267377231182186458158359464186082496894228352923431894528812248077197287767047628112861497542293875777377732158794466427933393102081177592529160057158052146085703502881754683116957347008287145826181443384812040797810388102036661617642147457417736791650102678549775027818369684709151226283174795903638363118908748686541358226407701045846226381274473679587332004316350217738512458420960085367030011424358402243036738647430730907695623343924919798872895800045580164405828174104342315489815645936203533639229855957088049325121796959509178366857947154389642224816247541309601341455964958476073302870513552985402118989745162196595261367366014611139089262426662784532474996794490368995664772731220125988028154637027179892177627703145203334982322744795849979912092748979981670909252393632278629516450898393181088943574768153719350597946546179916532106556459630157321699842283356791283514437301934296682681334692917964166003014911021610831047367348257895084873106507815469702652542400368429060764425220938812041784185353037045674424699668550623381441625789495009684671898093503716171636514784508720779293170419959015019003052947459863421116402198519908560788796100284430510670692650401185230110977580750299993044483428042874336606452026719253977664109088253104627681371885902472668256801677347098975126299475941823960802938833921503524239319004680312396232441637106123937893144408497062031163290415404942959415849633799071791305186687351112722346500405519732522301579177232129105413483564169691544807197647781966181581301487561537437280095029612662840651558663811483872710895935277169509563861421038321100802503410078675449876978060843525518211359097907742974836535163665705067511332415851458323672430545627672468905608279301666649182155571794417800398158583245488524207469653512323831406987055503780198519672470673642923350912958116756845776311827675279140897708445092462569451761246388194198883973754201458572686209515753100589566831214250817017883433210824396494738611643517530183585930949618568202436621678735557711398227096420797661245108250018480286642309762065469999054995584162929224174464339033609680374974418649073503045225594879734935656417125832772675612949022989372841731368936873199965258907533627187316471706049664865294662149071667816950144911405717236107459801307663445339673898233429361787672816663582098327324046819855668141901511201053958599360354803602696072161520459911242421543323784455606577002724159095508346272316894845276443833565071584654652174121844390329612633839750809555420470657805690365321091152413283124151715385596584296520595352832270208433486321748880619169052966020958141031259019179023420148357701162758996608987936579480791048244325085373080938638221056137390567233510882366383238351268562099023979713673435275338495630819638538148694354866695086305123900616304384550580736488913409496236427427343857750757620889413654428378491817826782120224067356004733218025470489578924666843128475719860927010854931947535170788883291916367956815025223476145207561060629600506089584330118063639578464094510420328650090450326550068564469426999333162631634441504933936688414565012570486546070450413544108916285880891769457959818235018647533450069783682473996286765637438399893888743314724749085700006412289162442611122175562732127214920489564143013136213570780302575789194685648336793577262778592644037542163658418356400310653747484497936979271500490107396073154755715882356808496035559504728016396006076650309895887155116553765254297598148011694839756696140038307916371547839875428508879481673961733372229957216259751052985056575241808042705923138894660421315989777986668184225072931623060067576321940521192774512497770374134628497224463612693406008072081758728656628648329470395371777969489276632955173486199394326852577343027781094019011356323024990469410405439642094291209642005580325282995813522971728516385827353718757078157424368047088458891769301541992658493547091160440356438377351850164335909974981095186409903801733086260693881928215644242852076183425475297723300731082200645175029703612306094165703565448502915378221844319719319230728259131518586362381295803782880968907432250065942376683096342239570723175587691260281725008166987918239964407632585315603689985869345752385609466521132430028918334872431367887182762888992833117394877033717516753424001964604571725228785413875027753531253493301659943886511607298126178849697392119889975260949285680382862128097034797354742979175084285201895658400657305209061725729550202030444849806115341103589531914809395684091144060862617172446302352505646735506803844328326493798375564209861771272820881612629570750527963002243014202322313012034111498002374433977508936987565951566086634971589206645627238073045521179996931299986179596501398784273517968093716335733422438910232254841282246445590810863700204127972554600861125037518329509645481239769739857743083274940139726215083522793472778884977011084892192820574207479864539557383638581709013083950662727170205085660173730297199646528972411620696819877759258309330177667049046752450075679502060593594273668501467732406076604005583382347794983495531650112300037767949800458601584537635638423807992013947514310625931590526707862204868830455806114734694989939703951213567122909182946704807140199854667793568245610247579105283777735042254487633281708774610956474605365744592864916895377936205608502323499249199245947385582030623459766299613169575662931803989028911498460744238853059112635585849539724516828116756648835343452708777845208669364358190449030630923284976080712545688699523448469921363804142088825648571880200250686598717744823185463687389089554325658779232868412217840068653701687569502034315165738414404712981165356293117980848089092927251351653490697937926803561834493339264259892312394056773652684789209812606284458306540388475438029875265686594537900003047164666380701576881764618265934585500561971293077349148744475169070172664583297331727065329023251184660070112263829218198460754872883380412196147186208941027370441876102736818638656889276526361417340400204296389802691922170792985738657812853693778150562789837996118617216742026400614303467769649645531631473160252087131341977261529565559328774241065073418394380650883544774209142579847324252628549222120341414774368817431682644092314332116438392305818031255968730761268654874798356986969206414190039966063684148673244159995912717913499497892475918775831452396446615403577677704044191696684203025163235069996687080010936026155073717803494159306100862218513741494122979278998350786407971641238691295590278032103836023678884919713693189236644713604562772055567811907652010999526834677474269046227541540076694941837397512672797530473620657702355131906035423525184104986017750686409098965723299898117810797118261489929159671627821445492861050294187848743128206172630211285350983189303828919261966111620702174747070442839331760829066379669664213163002248039649308276576524220995580678385700199924602895112928043235697979796426818094276860220732746704519746676173422726569940344160995115174220128020153362318939199464192268225463666808278951812613195101137481387046249421872527362160275799724443998769689410930219487236633241535471923124012437696617327526895726841201702928415064706590323668103524923812501925106822177394262992985178135713216478633809805869479800499911937492847316089577549626265162947752823211415956361985506226708506582337363885234866221449792784558335011626761388831214291794641160587652565042525582802241642729995773266830695934289182099912209353458187228548435635908776638406619417448242553007356818646856168879591652818202867688549301024726274696508215844578373516525379666406197690937470821834227148281876248139223597317165284423198067820036552871221532092886038481667549391285008860455614543596151728041172459764238792640727448765940437231590337728600454260265114908670630719932204171500040927823046059433886981445045991301230485462560315464660330597805244036426163315510252338791424735667927685723883332050458728580926124530896311198242384247808235027756739341235686788141714483916846964903900201348929180901869977075574570274874324558355217464117393117294169688158379872467015062872010977718435825670338788923683475212383018351627142817308898423715132953302151462442956789131458150251010764695510959495468833757464653352131439429355888184270286401637805167051812851385168397972066822548515113043423016053057781059066141830484992945224039865073661303937644200995528540607442109331244572441287281184488466131941712959461132354259662206512100180323745857263158817259183652004841837481597923567809561053273879654346629064478940168192612458469680733940503422141196980701896772024375365861614239700167097181154077963379023943328212926929240954279423873899360036025645790103628867800282629449145525546374889656258323630740544649373476748753062826106669926919303069443553296161650644173240078191233602084526049683805618553026705896308778070999505733444166370175057535645393567082655861184976277897291098936745164996922562709606497378066073586617195038772636868682774921135861334285045373609176781052594523942795561672431235280876586933945606180907670781774195797541005240231993057165876351121447166513562431452508015794414781115735225281572808359717588659767065651701968692103847478976537536399983377597532861809039786658276029329906088252196853236824732989025313358358226563452793202796648571006931301796876908824310632717040872111462494936966248046950383189124149641524755761986348426912836393227251155688862466867855296863603212401407678733260894352755242064999522607141155494318736172221780339888453249326397475109722955010214320972028734921608901985997530636214360892175753461070702257108079227807572462786832775198737733189948158608832121615731018972591186709657489032561792283361929393070589758146275555463895071242926351569259098558720849803404054712209695324952836409723657211413253427259505545032330995659395084901948111924644877018571000460409884372241818269993292628194495939902079335057327363625444364953552179052277280637318392388274585022917197560267022477639449136474183256681637188914090131845856118391518528063365389028979348386651232144470272093090421069101291155772249261368419095118903666611685634996041466332833779633558587710197103543783703402126981593362349490702522449289785591279610155418263572864660146276577063640938119405800790376579465827336290045853754772579932866096865277177185749174213181274677426681966331183141104811913736689768930817435062595625895078003837476474980464014524587450899803776091454705455044184178954194538229755995949521367254693745098322381378060938959769067473398466638599575357576288288502724141654632596263320942253457088208876796908838123040708347271114916374360138799314981174294176559752013783721318506543228851899720660821861904685998770766814471502141123497201695314877631290421459213876405900811348801949993093934836578885230738140050626123255515765999447614417733331630814434908912106198594572595562217348493616506394756552945196329550210662477623662851180042012228067515991003437676978295697874045651841810285747312609076344216176100469313286418888900179493811420691629839341866902377582717606877856317101784483114603708824151576423271332176253426265998212119648496152404043103206031288187077439216801767708891129694712939394301599826382982676888871084932972186271859262878190154186168246542023201365901468208081973347428265893259741444304937988558064262279720816106490614953719369610128788189424528026036599109219626957347595399097393549170878773987780073850583994449126357861701248448276058224467330022706191858133658153515662691437630656953979083617396134967870774518049551233942348097442820138241628661283106582329554666525526171182893570024524353905346463158400463471848459072609375739244045963774800904732473756816344051818545210971852298278250279434004777954980666573859281778709063018981520129206751068730098780051510872514630230950967493053040822734959250593365463293901646851597057984641504451707358878481576268669559333671604568226309266308796135573498134004461892528281079060053778702198134629988753626707920144889692293343925358477544251644351971081765733326745842691063388155663150411015174276839557346904983762717636416132378311726840283471808682806548596734566678769595158660380333987142930180396130551133147177619086278970674597575937734363118403760943623104799173459260481237870561698604105747269429463847257689827125317858719092395007824893907253721652529021695372626385777049775924127693179770356149547722316187732027443815333338009127447702532203430638673820521991289549411639438382491232301902582571102223527693580673266767681222947497285608820073424983536913868814645513429472347787197167894821722108359997868287460958246786066815927404391250304092913358212320138445511431789043007495578213669499874659826807709386910496561324171197355625116039848747587135610545325050117453164653742957840401814323811579544198127465862591721124605794724469079440225113669507905457274506746891332952034293888100593883619657811758308440268313809362725047233456314257042437735390197283370143257898212038822691083499922804439244466768469457746726208672838567404006672754786498544243907831604036932213053478981584914283369973858621010059853258376050284841495583852721237757504839623833520621156642246867070181291186876420708768418873067326771144770550132914292231664897889366237322526832735249331609784021514159420021354893706499910476534133593609616728197169620381718849413514855707356247526695988914053736848341054402938049711556447748430735569484122608622688492494007669276588845114024049476688016435471223380029421574544190974236355110581454805734686709405839528414483147247210974608485363377569879403727135193393994981578779833011798692324584823588926600076128805592958445856026021930852756792592176420486722323953360020725634381558846353658122052600226105198389538454289000017059974400667210415084025682215826369550179920801893557234671195846526059358871974209462782040961065855648104029781426874246747705049398103461405108735398224950874170510685327078450914826840374774238472792860349816717885766166197902234373940883068141154610857609959914203506606743367762960020443182316852356219917692329762636788761688806140629114004130163233488638149817221313315037259198790274905278803192802213902668168898929966912056104769341706648451899112241397231133434758618897480155766600949286511424655717819875649107382480203777933320053442427192920324154377890178305965657630171872164885433585922494791661885571587341004781876976514152183177107171666304726977684431519439021048311767324748226632066490121113226700453666499128169819262923219784719965127271780122078351112591646977636455594998905490827015452349850478028327768831735514943556101990953108524879846322025997073555144957064341010301629658189420277140938789276303356788403633824441129149400592991041772343336934140872856042409092793859015095627730306255458571392791479696863627509122872581696571895446645603944221873393360500594078742949408133483640743536367670891493694813185819494528082059348093195589397503444661364484980634784271063757208803851048030489776034381573653191456455350720440115460815666673547244888109735841776771256723534104529790957473555881067843456810000826797005218385678640195131034763541874104963772083440829216797563978268468736273453903084924403789852919918765268681407437810392818521233740921648390082384428315319149251496136976778955530934921147000418673634292415398394415548654728468722321933432979944249729130525570472825466709888035006960816416770501521176984353918923951636604685290591014116649812963272905986858653231746409000963319772237170923124946306297334193995826266607489177372070637480565487550510562648671066603659093846403476673733153372131251446024679365704552089057474428947582680709225231653546586058841884250296712813946646818957976966168706315255096805585586196594175321482502467817987420660425557490011642493367491498553583553478111153025306710142422610536635046027665396491220468228029704049127889564303385327587584056357441997034885438738648568817469212013301040478524229520128647722896073568641053605930439420537294750871813118071993675404874972596408942534659805112751449661878992024244443607595797621427181845040666247886896298565760003297296698705726730870490788603022136472826609506980698950451252236499611058404643855472083489521031398123458081695787096453636003911254640165359828968124603432248253327640110069300160875322186403296311024713891054159157070233990222296856478266963954170044318875293200597646453654340228085040016978844275860187119728190169115384081370927023846826566966082505528428164315742206144290233399260947270598925760526950954821932319277271860585664263210897235318472434638431066786044780334577304471264669398954179131038550939672888867941858362353848896098250735306265570537206419914991352593258608943350119597166954744354499706423234116643478355215635112697122928892141626387191990474658104561979648411504311715067067332415409641122035885623993207227247702766896227332078028211480620593627642400672359196419131483547272842858411794692803324089306750307258882789997407893891900574488871139347675617167231368409827850532905941978472762457606851364914688226981393601532058667763498438802343223389197589596800712477880668643718366592812763171615555244807675411663210292547405208246072424545999501159744614122951627242918338235901347129155660116069597536709424142556636569544586616936414416606656122989877913303591371981129203660701942468071480387730158380109327411845361785891441448516425527116394290450294578297405868972102833338571235022814761036049907251417877657193955066658965802117651824927310542219153796427756833448159929611149881095474754082828658505061038723954141925607664745782957464389808071978137947125392450659436081555745340408034370071090353681232116338507257637561373817114659335411072703117961235321888366532316026671439319821550436656724895731836767157404700230811572720857312273844463316649590930537729939597778184159162277207448923765525634345337226098925919437343565150916855822606644863286391904775877485283170147965158099612616069483782448655168968899128929438017356075259999912604562612382598976495843850497107012149653431730392890043742563501973531818242350563346644232528450758041906488817675584303292433741502033371958741155807380346537591721639977417954341485680879416375992010461528493595099613962411191438586719229861321656017752799331015717284051769223553073757624119254366248712774747700723355732374750179844777877033310892477284286747912318368105869752392863337324030836441719123547158629413378482856716298969557901679743612625387312625208988703924577614632763330820804495172388102498356744287813294926608350240852960039625202141534204005756985281332389273264076450138782083511263633484802481146568486021609979275040608399276630658759133173668144622836663137929239713662653150040466151227269778192039437194407722745181146637152893975196292456241222527512606779263072740985566295338957188728081678080830129399719007654882842805706968906507463874188739198206431579864206079280627888245286165410072083043768044041787928518964133323751066393853473633629327854654025473733947941235838252017884832660391582161077814476800766058806669144075368572040626873887328670235704208748620988908202713167951434076107283443883075145641686474681901750826400669320072703771920827785333950900973470695486655110854489315669902372827124810447370627419289987750678935856246637665816569505727391415039038723016636378674578129556479357969357828766548732263616103122203719011608739650168995856560780222786152848977587782716852080621706107681417477192243743559593951207931573409696768259058428960673707834198900246325650754392567097210715699770366295424032664701160070084593254620054671805359967038090384399880134012327428442339561675204867807140818254028131765759274972631899055203071595701115814965401531888394140100029225703703008399512293080421225187405429471295476973184027818238821860790326879383352003816046518739643831623672446284171578838950435814359574581766996312035672303469575015369744014575578579329225131290281943592607266782897173759023872877572981540531130441504718783686833977046600854079646594287687169141459278577947092460820208352668233756945960199462271669404430103857213697173851034321609708304537658536539330759996309832302327783366001104359055579728269089410535210233820593743399073636472560739481077969816580319316969348909076437588435318179516193067623962841400087443754802362607348271348132967788994007154907589740942505782781538430104542793921675978369898078319425405456081869708596463749186712597205314126418440811568366270257867120547187320572513546535825228465868641875212671608057713564770958999254368047936898141089808934454046380170474088295738818612452638523405844489884139032129470013499351184641938229391725018967423659238764852531384953414536202891236101099514686399030232637476065667127958011641584080528089959645018808314063860631303517728002574177739516122081110674830888645701827020843975047534864000450252548275447544477059905111965128381026650663081836039572092883465938224575557239018522556864191826814022387462708033535911354451580526072233878897972019904324322528315480808546334290559380761268806274259487892226414396690774529714775849306454636834801024280506169435881153089715778654350797654824343018653938745005202552074159636625022285642803551273766029967564413894530801012371016859340463182980237340883217836923470945284422952359662736758723954392487567858811359305962517554263668888302116043425876649887140292195740901850426144995221666644052398543154239257920820936930860514892836083473979666641696996201685249731631755837212469409810297715590199663648632821780100049987785900293762529181375447366878954111671553200095306790147661467140460436860709763069773726492047715358078782261137973265976738194086695969234045326518646383564941644865817524270746219997058400950533312937767765576568468705871135095282330002472869062407869803552408646360086886222596574008503478946874752606935338146779388336392811415525565468711424635941608267476918365423610335927362319707658400076487029455288278203591620159176428758448912741789472073720711612298943691391389256044429161953002914163475201136260601798104497746687245778024152945367990862510526405089759790561116358349123621371004552609296547792412484623226190320536623111815222770089087625042882457160054279512125840088122979698052489080104071517701513997925355616412251251814842178670444518764213713437233210677652122318442036664094380435589635722071280807007192012155159997348679442610230434090890673869351331162302808299311765816100901236315949170488207261356806451482484604275617679364352069204129948526350784471514073743608017550202817874315341766944475102234945868472321099388938639355182677329915969739885447874545656134034386035914445425903448146768307742633117716482996280593131989987750086064367569435292740460595489644278017029370190275700947296959455760935313189092965649238555872741466738710991803601068731045308793396462289725694869092549238205778011711278295217691986762504966365924087264210115508537267578555043249977625635948701051418532667434275947793368979270425727937853493605879061364633711023646251522792044251961171250152430903078169475100022005217790937570027637438735940408576102913812225643860830298135639927069824130070709425019398062627457255363117422475878451963577974268315920694069267839507631148863152591955533882674294216849527435806166057637463025304003573311261949878623456247494018414285543442324229082680957953144803475994399476467222621046833694143578713398136944365672411983101922915089362148795101478531812882836535598847397489865887689157980132709231084293338041082536169390454830824677983845157032638340429941487450347217323013755176581269124031099718739466881766499456267034217669382591588398822541932062423022110370579998753954446121201515882924577984968996297481989040310377237654246376104304573653555848951704341490985643453536918085038806970567624410091584817576678053349100665772280637152779925809890270040705952018621959122824042758469068032581911896917056388418741822656493761852621859138463538264542012749289153611673212990657596090992336264368194234424731382822679994176211521707704407793701699067225840226285000615085872058723981464203570166986116613385197110322899998428198174916165389089732672337777614651210135860151859307435592512238262326695840365479272318777690586875138384806106352356625140334115629209313126154253917155736501417183078799193921808837696727581614024554094780776077552974245894076305061552364237816765626127612336750259578713405663091129691469515395546529198830379717969111566332998893852421204537470570246911817949088532290184177890224017157354998533069900427854515488853484964493507234618002747187211909189340206274647031220416924302042561345873483546573630186689210654549211440676575101412406918577348849809251565707555207278870429725881608670122184279508048748462804064964115983106988893935580210916015591073240904974239940371235565030158997513158095230808636964939985349416491650161743411354227711501591384424180774670421633332273041624106647734196872546576501615139788993468577780853454819942392014209685081384679497125742480132338180896521715614975211373704222353128913207953086552628564519761974686115255934458264587616180255875470533305034878277189611298479395587173103513185733857639107658037612065863302492577768713440260509662463541784028252634862129107978530891603134985869508350361492059975847752526342186780422685733679170204396158373647019513092583167886506462154016378051470215412740661368658950876006924332088467124483891087288494683407001091579389651567712581360438874597372591895678926819869171376963363695262242467136505430733194201462272514683765962293078756439526594705295869390371820016958545208576506764244524217110129225301833268305520578352176540461986394991832995293523841731525864403616893468029697825214268777563081814215714082059163882095373725802579494708133546018349799520826788544240923509113825298857644281785632805024262811617180708422117852517065132899205865927115614971740191482185577320278581953996710591498306095941574735379032783854513778746859782727768149556577293112742797200940853212171542320220317567475438996671769327160927355240299364446924357216260249872491722670666155409919657021767311225967962982933267146585375336478537232145134168556063747400911710596317840047225131632206252091465620805627322786984512639591719229916723285623105765090926949325889362679592050203339540063286241126105731991945364550687087939045596048765801617964824869884817271072704786461046127735226805524205760909447441103176809824432808128434332144344392943301458054384015282890315058840544408695770929607191287309289522133871344824187782385915419815307644538872521059971434228700581541653769812625519556374223682780803926994254272792075281713980766720054579740337957613813094423977108273124855536091690765211729925280191917035582412120229680874798905963159731214013431570723958711140517864749038465445155150176318874579771408082847891465727214088271559738909390847748818461848433897356617406310486992407873104972705619802996345474224238429722567162721964173755500328788173996582433451120910193328884128784715891107420986368328425584410033148796329142244490283839301485233210009307197870660421394468098633756320038200750884967033989993208105646783362666673544299026782964592636493804311078253916725051068068238855135094963984161955373856433911857926119207706722466793834381212230632488813358930672640132951720120600861886379369820120901846713521032310637039128328606465936879249052844428212867902621971084102009426304291314740126348509088132587920146892929457835544049406630251113881754943790719640591229409809348801402548873834921338109661991367161483935417940515313196049862939425779869959567248804248414898713280301453128593317603969594686801888954693384627552967746485594854065067290766955576950462506851096819731669664919859950429126135936366818799500819801389854306575679206861639122284790317399169817185474308285093530399512957915868483363385223055524247452966114461186554956059971128873080666906412752582579903145516267741295795469793241882773732359984629952742625837370672854338223484288679162399713275566435864785832087514110494323155134120174800973104482653755964494294699547362285651930841712896199136198979202387934063175493470007408572592080264087052454224062902328455542364235888555559993837013395589254108257463179558129863663422269456807605401362967172863356168765202631137562666265444019283738037508159431243814603500015908461836511697802361465845956879739399585120938159936060145309124011184782412247894116487514262692366724925741058540681573749339472260919915403286558009179735202665446078011394001657074803373855033514400026704836557481333970724339588269110755260263892326306460568516156925593367456219799808575285320746822886215289071198508253170079794541668668841531146197534701312229741726276243304375447446258637322569977225118369402221592931871306321869651421751184424874167921212524570856160372736605810115115960988738542551191682045026339020434192142341526689378779720040665572221787528395118655111475854700398312011215412314927953173324734971431665185908365090143139032914213839485912148938688265267822677120005673763715936391022078529627921492218355066857181455846727537699366184070676461407239122089490239018264780301334281234601043048697266236053409865156070718002327909580922462835191150038326664043530102707254955053622612767016906455039655253997367936160167250493851952691478172249667259491904383237970734508443888179511739364865042403577596358621733464584210162752320314777903310387452164095613745411105391140643413251630877068395404814163919253080234736462356078164748735951027931717012480537947887866877926004090537162366897415655191019297433933092670824402557980165587143718920392689316487589150193536518917045465550393610279054922999524783822237382324002114355812685645779837675625791411130970092669414762501800222565970069825280587916339259972291612683749899543958241100948793628497970546767650923739970587765223941297685926505147776265746115761837953876909874272908296846038779130343303429898102733841882460429430125345005450547973691728780596976169952557765683463750544251967203918169090051532765184543737066454444699755176241398746008430216995746002506495176476037440399832707068415825291538282442422289552462723699804661567351966713996063926464447386496213955884155743552535362973897150595766501991682921854067876039008833644104140943795535958186566269676186179995405120222437265607098043737031428944870430446508985127407361118645146409950749989669888909147379662069532387177448830161717075130702303575933762534687931881500580127337423762662175534659658143344766562292707472493667948458468286722327299041573543517790250582004857966595956390552792606131109151386316743044422953191042315731834580572817272167285196095285273508315761457582548666733435534538496264085650620904677912636264351648552314500115091318032827766511495391830541751086110999809704785828903696442560088347114855865212679874259734167452120998417276190177179701672379110439714354883277437717690691451971716234063365520564693018873749479967795791616044346173466857786381292199269683489421950444359903599607609225757263941907260208879699453995078318976470327322380014056476769587943338280461638953178709125372810643516699431543696071169781996265885142180669295208435047603142465368740547186552008786193908697481239045013096109787825090904461504611164938820186898557001135194473831633691444871643914451731222129839078013720645967132659188335223940384297991231720480416785903157487788505693307994836720623219707340477481491539512953690493414916474113028309320065119709859964918276224290496247571475827250983238741738647248625049297492672529171258515402355696289713058127718243801948826278412235142544181468296755498984889805672125752803485048888598974172107403619806922794821720059078622986110515197887682014892066941145111086496652558443540623635872535997698569120850121331850462107703645975169473097129977886734831117400895859896153427716482999967526166591004385905157419698323702913751062134819036521342966742432273216729050994376249140189137320402176693745264265453030209464957212720928614687244323928964376265570530334670243156382521873499126074806811205101439574686522833752961429705024688891574214405993576179822234470826742153680263661466373681463313498961704240089543231712098043291479648343518723335580943602194494463014374961603151150815696945761200000048667403804011453716113126918607653804667611805200850654909857504315380543972053161831826495015900141902154141317631945043223591153125690138126715152970684778216651952247854568411515339803774771397905580342362044257148107304577742879372595995867036302298100300621966915737437779591698206222431549258880524386935620472306629083211082365672352145191684644907175456767445343896564001915314835237932886285368987524204206823981508807001756549134365383610709631679997389335344233624640870395412522012253401791497712707611875537652883518851017243332497913366514481921832441292703012021636616238860626160058418649579823284431701594803814053131506865604098337526584148017511106419436336365750560609297122721187629482929848689990954842883817383902190929431134607535198317234582473227470896932335909937215174206832009924245945561756348704491338281806489727394117572715811630970389129742566773964150850204460100761554073969207914395978818988390702446741657444828319807169689536077924897694905197867554041970671048157844897455392291619402081158155914868478024725339525570283874899159497209955370386089894493870660085147141876260542459495219326907966885258406926837414690003756892797945874937003333104305423843686751297983957213586227701721516463909849171470720984560302397773226864956291592677364069720929603934692926399355301891343308653080418004678455391356087876234600942246814519754729881102576159281723770683196440223762602716039005407078972602160482951234214757926846244632625464560447447587966727113783513939959368173567369566504743328363826703511874196111017684002044707383246500788044783948311493688001523491101195386063699182368288915068033859643900342641045664513588541756671783519489188963392780028418987140888941392856546224602985505586166769414664342499620988084660733193317695900935515330855145607833465660163426324893298418915908599376554959697314591217292816408784514647140152132835046526765990366261075991782396465168774148603287137154632086653438714496141713948754499998345644853762262976345502331446529950607148473595805140327290623848708361366401172066342189450805138734591410523127054984315935529291582145337488408202517496738317867877783840999910654734930180260666687428908012710121397322147489089733533755611118170354942204853831453041224080140851866794939973516804405669714313141136724262759129153813999221235722165266401469200407237785895983936722642358093818607836822370520536102098101890437321300825607871489369504776508705858600076701718145993404745347256099500368241636190301742397872804559726876325813373611962704961546246547432582604599508613507015576232415267350083184860842219956623166212027167404280236400477292112802039810981120272530706807388879142369081027090237742262768495426007051973268213705797037635321728951529558887130312326270653159538243321161618655451093300052960312840832898131497889804571503408877343046174961702309886171852361294883313414006347594178593027480272154061356032590418127991992998325524929080979012999848675538594573729057800266307960982718732978653601923643824496970337643109023412631800386209951068366466226776947394548987667409424725728460509387465613241596760780922646330690581468370314237941791450987544085481380597083695873486570842667117301543070353616593656280329824698268770942072181423923269281293668662673774126942961025838760538129907447347927951875034681792289331674964789963363486068339396573462218256935223983409573084312961141962397764946831629515926723735556008618032836782364456762941535750586812274260002159878936691241142967351088581039986754338691001705834396052856303685788217274386048470308131434680619437012090707949335078905912127324841570964184703806164562553992726081585065616318288621233353615744976101054739401734567112011474240431428376176525374953708060371966660151091410297654495729322247418811135133475721145013932782090543511987111140685799942372856805019987010318571883932791192766079787582650792358160303433211526279344863343373136578962428178050248687061662977112484259498136901996799387064609403871863893500302936651994027264393567984655368877974020747226573268337697156195375305526041432204020704465476050444553162740409548441502563131499460601272024130066490832855531640347641557524541770620585084189806589544208150450000559280539712591997168667865283042007809045807065606996860021313681431531985590262183536256001230768166241468855044308530435079374888906531389184294184647536432130454439484412998112510611484107521056316327715611324536688703050260108029878339155979864438833268193528972024402122105392053389148102062734926821844200541267324415801349211009372619368808327185082828527078708489600789766926323071390687192907185474223083422976836317475995457805922658181107916778953681438560228199609785578547426129976112029691127427245417555717806063949433239093353178874204905253524567993679236692656628563073068912156670671342060444195397687268974466599090420784149055729527654725896420224233796007344497003215554228145079870200042192913028532496594917052485345886886231214683493071176323605862664760740884013354751461844536143265085877074399669144921526604006866241921941928339024557710713710103523143479771380248942077833670758479117774371906154005614091109164361141527890679133815307134600727071512730601526044839803333792876507918535330860266421839616900111948205331073904614150280530353398926814808167515994525417726167478926318042878010723345939609492357793783977158516730960162502315280700845627271346739868209328705073619921890322134142161183141792893413696805673328295507922744769292672274370411726353623471648890383721792881648977763219320984821854016771683936106593955236822515069552231503715741122241316761342407381882150590354817676052051900151388253726420994493694604239836370770806498457755612085988784456106642432502702424286838934406373495452991039441504161594627091017014889664274545794141067343982420502192662366450142730696584608611868151934075246396725325800408851754207651104607059374210243380010094567701328887321663957794937865256289426290381649103313616031228641165461066067538330420182323920866817675150030403644593661449351675228203829631707053206369771326367939279238184875372910518453402745619248385999891602084682784485819910469759179015175836962620594540744366979274996250256810280669756969427883736030660564648358421311306702907261519890941077773493979833191052185104832258491559012835592797589027848968776101924045012582232650325639913135826990292801089674658654048661900819499852303699282909695404023316723884178395370807602396451490952012167068419821960567231777837698067863076180382125137535938678698576232063296770699400345928750971586268254856254172752180449000077330794322363312081460959168029350714060764878676386620494078161227747238485597498404919407312908125545148345767891078807015307582869624270975911795686517658719440026466244672250139610479621443130483569329490681268521717587747834819295604439793409719893025078475880860935171717081048153429838925143033663557244907019161380273045789805411565286478128014692524622222297040297921238297811344629205712787021029630916084902695458582857352891458927136885986073912023022478939122148933862127735146314826490744612521217763309877811721426934776627613906177035404472447386489759603158012274760131887874335998113104519133832404619799579577494815071385192061051228780912675282316380107537886204521976597354837795712961608910924406504201341150064237917910777522530109544517057641074387640147640577112773778961185103931879909826950715173785895405924966400855253189718340386944548149247984780790918249168253576292314858326726231889593384073704499600520779545430898700420891206423396977884429822887968295579453392120678921878493206436727406784471958193275474493047090911313930444496291990865439262070460510457192711961009435039565490116115187437178927987431174427641832336018548515391824543440724035125274708853790598333630168455574210996988477196746658074127911040195001263447228174018446158778047152335459926836976686370838399033437013123560708264998529725810097418070018873128424352210645341753602294066632942867884213593630653583120087405967920315977244418135674452833220254422772814928059394547102457357921678060424055251766738628774050854857394792130621595146669100264348071180163877482460917126666794672124544287610780917873216860186838882700662409947873169889495078638044000761689472488974018739167801276731918443747933923426888194320430756456517561161560239494821877823254300083380122899392234539585102490401285504655770965857889119163536217100889596728072787745826860057373250471939179169305735505471073305793126625724541310087708413370849563813741613869726932583855574485036750408015592016308370368530882934706261151476148830604419278691189267774309574838966047062043100731093549399691083744879574525717883126903522020977681100748400202876238721068080553039348999530918897653272872444973300051284268122425020260810012108426242443858817553642764315815328031419345808895631572286062501578605417101173058044401937686841347799925730175312970889989471316386485635382516885191053845049574698860594433487298916037612333751391706998096277989346905379340801511235307502380389819148687521860904983386397634324068622668402944351601360045730529159174742821971471687137430517491495282160753205742258444166703845531783594838610132132600334461636570841734732692985496418395280923343025873279938542833360178928930345038460679026699108347102053905761375103689687189274283817693240912810729903250794726291989389694117427954834529239365181660185561826797478965562634698444632115311841741070690026296998603797096479795627550077254452816735053769399872783130327118031867057979242881424692936165932959942874670009302661773671305702959763366629838132019614701796932323172298068812054621408647265547759859064941181157778875366188605715449886792505081768350342703934002354727597528360725378010553256803389336319572691437821334563764315975794354622990320646918911239844946986825132934949003526744848149781387622181023967100716938469138397785285356106830300977716289192146399358125115647696415487797329180645370311566176986405087975478250311653273880571456341869385886157568595970083308711463363356777402556899098798003241115267780120597336259237571225782304132092730709743643979269316852300051765925446035416212568463362700845859907203336771204960902588246803979168363333732889382501869596055797049715764187517318305137221028312450109062116028358708204433011127049439826572087776224369478961160132578189176558874416849378219611835520867349800119459959179422971724208551360865782070304631749602247383665640746256392753575088330837769341900149629300786055642212506690633532826604369812183727311433477377598839274564518489303130371684302608211301779035550715698459422165637873743320348522900497918338952087828618188051743508358153044586866462891323616660832901235647423323321800692953901479979948555637032163315047407184308579824847560360463590567638479150579239559381204556415140066502256364705477927897707485792912744272083861203174241858978114212514568998523030090116936272913127578446178421379775696069860964919096703410326993668771773288503794038210992895886535300098340078509100402089099108610026946223095223897516149136919551620148391116088911446839906366281786842431621737805675819164808183592127812984097457823748186936187299272675449586900953589585659750946319954454026414195183077494719187597502316058716381985098749003170917876055842936995830329289597818233999566618907368034384001110563080142035688055501229980333752802046169968892498530989406732672622401275294665059018253252976473049261293290190654133602348072224780474232249585213123229124249676735239732497648699761398934115845104708806322171838137060442736197564703405133948244516219603487422590080445769657554860416732550007057957361803281385997458716910270763118083857233461837529928821971797665761110651208013397831374731903360242025611290338968163728485615048154389464584070296467841729191214316334789999672040172391402026624718885432833372129807772394215091892463918160713273800531262461207890277770107515832635271383197798026813068534092079179061696285705582370360189983009004991902762920161939793506568548444546939443011284327895953992712795740294134950985113019450969074375763164529918270684884775774742445928703362350877481198573041897952304563229969187465495326690718316247691984445100389447414392907955084252297604702723448136988472213219343246613959773396626341951354468185077726597417712256597607477191631057960616785344533679069196766282082722108956368087255834269807523636404520815434139713698658984830842890026368461918153086012827375174674259012262024388440673370819085588563191160442258588768470319599931622068760823867492594214304968996773665653471357119984417930204879455979974799311017282690679461825803946394100180624368226765467807850611346429837278417797010981084266111633268006063776623988151040619778054607069959039368535483157096784489270528552693647340767829358261948640966409976937668174559088123442166733585251851198073706191472387789267788605494265783719963237684348423756129542982983407108093806474494883344550649958412437977848983092917685981029193854563256009221485585934434100075733341027804460516336976851355182082293667088516520242964717526546661833787330754418951287476729617210777951327433700287304838957714035921417707290441237169596658876801908653707433482376114012235224841492516193192333644330566216282082980637712116883022028085166232359428003623789373215964429036128792780974602974464628425737982369526338093410091478747659071242741602595882621322263628467520067883188527716703768726968275827267704395388941606464362677518150022425810496651273341569595094229040222222774989787602739744528451279500786468761881781071902888051180924610171423442443878179299692665616283166373575367550186148711415249555731557905077517439465251291217834168056868917487355605507764437535128838152391392527564760387434025177258913664259648599734330133687927256632181452242739674284164520011170509868149553790307058765095934090161567775481770995027696679058158457509166009399916453037524983758810421191789929828071381848564889541112229542859891954042674479013374745591922830218055837803813597738456166499695670257148665170548978630080286315796994177681258093873955779122828351329791792494289935507020828830481041737134390668921167754320698983689997561859199456244540155551228518224673880505353008007943840613859570507743037245648905561849524717081480230155929543688700309374810002662319057838006691597747922006550493643811798421887019366672825706628570161095257928733412548844978204608870077692481247228765963110611645909991947638870875447043292189076797102407496640756838623171746089828798015727421907197106462403803343755321641814250578313747757235055189755773698041724537372563386296455224472946545937156622887079648894575372351301012404474458417496138244794791521091741788376400046252228421026088597274770366383833432903797613666415299854697062418999938843814289414845640534214677143461223244530429273912647990612909141652642906433670544345605545953444733980030455445522157022820612351345478983928775715756535016896921528144627883352461009819574629909154427070446922887169688328144482356785869790910847205259560646842396915125308456862716243704757430555677788154010243075684900607662824367598377436764194984565842938744410841577688593626768663677509632736651956743681120612080045016223063229725962456054633593680490855017622739678381934304779849393625874509631909524365381007111032941188785036024799181339481025373229901677973384301697578311486041921574322281671015191387603706851681216076118055017756017100742758315276884829573959507725557837421897181346485321041657117256415073567189866029518815816456609580581477900388166661016676815887673357964161636853249143510623163208429403427391782114261673610948131116791270490431693199333754597785282171652677804068248627788911476534940324033802341102452200938676100691018171674719159062335151653966826561340479063751814062777395452403051250963151783759580704486939020354160722188731035797611602912608865710639317507659621299924654883175607516107010215314493784371941820617348090418841260301004826759147793630482299332028860032337824259975467519892273908666743946605689326582357336236081057863753705163580188557500334360975756157412387913168503681418443578484846216265099653467499785834866861464534307025444818747485353564161956240871402038071189975404049900004259028900339740380890736982331826168427607133985989427545297612280235887903022968975461269726198583811417580306012228596209540240686210595883189737413140190192664964887859115900107391674111489585884402529527280126793899643729823132181032546650497629570857984220730813473731149432000055434679769662688901791222423516131692497359542343010270888696652609666264311176587486115800744334060189871531919761416490662809227234749788758449546821064492045761454281233816351499339538320736578892502387577716120746960220502838591859159263409779925746600895020304606944822068833771305272615304029404915777946134342141452629382592428325735897391507983584986176725532032275934804339613777769987460085454636582658098962908217821487628605808151290111171313449062667396606287059602567741071111210769650482888835345540691808290729726176549928361353411916869689065594800636285081467949032746150885671103894089714379285619118651807774779403651412171594487138634108709903996646455172434361726375810477476422941365013923413693357779054458193099172183469977369803553015951081933218024525562545217579256828770052243496946027540933755096705719699110801875979183365187623201144783134684889709723516300419955175015549989655369660948022665755950835667145045883495245158818438660394874270730497218888249518582260776948449376197601297393763330617237540943655007627180217875482244026260973422199173735110695365424092794845406400792295986839441831572873858287085829595067481587732388099795069242835054447273794997907303783096604841449178107200399339540219788868753562232625641089146418250792503088127765645299021763045359799433161206570580288173858007710774163462690980889488757579648921087358152472131980287884989673305133056931969174375010092943825919039001073464127432350608069580768838071673167997950018476711052888849611908371336713054864662513645770726244576296427910506726375251586218997088344967000805696854194754586198051856783720815724280634383778006181007594435299338338143966013450194087372049070307087652587448491228114947443509756295478225823744129485099710711633005715856024871613475503008132915173202216211846407528549796078676417560262826316179180447664232999417994237228784711931902444630282057169603745554250888253318418283034174789582823703955113001822795682078945570018259627509263989528599641130928910208057970066890440839223526433988931270626144395145093707355255878771253212348258371138390302861752909887750280789866068515452536510781188131530987877418427339730494080256133214009164790647697200658325018065009662217342208618073241389293189591491140371975554202871176968260338552582017197161490029305111772113871126765752195950590330799603286393271002666420885489020392640409934290852398065824219211768613528658755518359673310117322365335035216757683494075143933746497555333386983404936174733456645014330017523687485884813006076497268252018716237715713086048448141102776192094146906338553729584372961271210900775068774457456595065369856526242829835575528346475445972224818696743687456887051246935828786462017542745758632459247129918070551050891890818583873831185746360948456840863316886498622857126618509858567830325854736318973046271823720450771370571965854599632969178034544581845217114136875555132684458693551390114131128334148502409401543897594713926736747390701009116103334285885095715814162444992612922425503536309264542950037899941593899373845768253728188500194569087376225041972913242699341229618179694996388303334665716582004259202055606025007622996330289000118181253177756298621337625634713446071232602066975441399095280121042784028074334258153706298809231038713213535947804654792185046347613360640989787116015332562165462422873579618820361013281822821930455234295425607332318881628378989374410407060059956286528113471976840162537211822992987247042621619101559331762665986352462698937369811935064308103180116760482867981501727829541635468124844195259497598201784485533564479803874786679692786057944873731709057993706481493462192821515265485752977022662202324793251223107054581416607354018722035178145888889801557073569135641047700613556342581487201728631572160604368198035609334545096384433255528853513329085965243883791383171027488487163557906538755456380184444467132049114698961543126607399242801637512882886943725245176426169687518120684795086439688639611709282621978220919917934962402082191192645471639030814388728304875411707579611268631900169766613663905580548453631714631938929414235015397938972490508613488946927363750873005597960398982117515105928157714879795573169107086567144852529252344789158514778167178467470257039835819882914538903520341219773111423814449808743373953909914807005625007518293357681791158039128492474883064446885899297834436698285590577825551614057914508824455554652480966405245236294490403413338220806097772800780691062443626703410212906328504667262863001749966614792908777064823122361855942813221993370525581501579506143650493145313471502380500790811804307718644442010164171465059964086448569885206120183467148467812244740557582361345984247268680549106850317636789617421627625352955460982831511655100183743837688848034563135483272354841172224273593768232161709553849904852057088415753721508146525727813102020119624358151721928360413772553812407783897131901780461564949417798206597046516135746679693198381041512607539471132578742385079480391431878456795948447843025559368356122777995445373927924838620577991897648332578903958280658127015346393295481238056680249529661141372799458329730330282740286464172814474526394799921883557225434905349663700330905518000562927252730824332951233245109972521142386119851521436088356811450827399252064938413933022954562241758132401809940906559871019754349084005804205603848593221587775497697352569780606095587020139860381403984560713797161890418477967732207783373308190011874916605586647033745159986803924343583305364178100330305195990829556315285846722496775685117500768506410093180759511053770076852781268816159826407010303246376318250943118651029039332772657475365526959844429124879730330166499128377972516033337237013928002854490553028199795849872780019992604306055288556078042124922696045738525039237574584056015764167851781526509817013367880732476441766006130748367462206720818886506761519811998336905094146157206059892756048221535590106423294393631866593876097332987198928918666147869895923948965171489724386604527627346490064102056580790604134690264398738294602670132538167795142622570474526522964415761491074603203887633791961762340465223108809081865735295846140297318463978802936141611971954136998273905321564880278643037474470547211715193482324348806009477901388791798104213961968241833303792042015812130120473105637031067259013367662385394655806419180737743757219966700758194803824384601821510586571406294144046710575343245271499043019758334059616799557862573460128081367496425614905033647873134456142095867855670607751848566047760058128353107199114858540344717783820152324364648484536409204397576819328287831712715333775964694113947625558798757037275259686651263270572147116093040467881863072032251048926159892068274101082023561736849934162153904523572286739898205930151442138257283027667096829907889117373855065955684493121826131419138772506675141232188328789328254362698969097187381556968255563831343163629137745760144153130972909143605483751177890723114324992272513375345497529072159905198537139939300024881780640441542658950496305252281408101410329224362122612632605430949671431434449399545756307602270429469159838482149099087798941279226901938100154888907638340254932166860512356502126356178877029847961349814436066708204117823992321897530707676953418850867464759900539861868340911397828859991434206928959961112516174259644524760232440052074593921548346316578148275547179471750071239966241896802999282532192130243158057866442706681804267405778977926788031102448316849706673685147861911515845524975583348576784431234677906640477544492395778381634602500620556765892565733607680387908438459750802628526102466738153128526674120068503273928690806935443885004940949070653562487318910157148154270200098561467959611875428037494016373231787834307389322277565080167638542743769125027876751801017276229657112828792460593366945305900981403373013596759484019943639634384474950805923264154572948140954338689488480003690234448587599537802523068408943025936060367225324343164530503326436025136609130205285134357035496571202977959042059826739083902877345895210514411101659062588031761037462713832468679482919287693058530462866561647095297323692152813423158613204391678084203412585540488703540259892689931583422995703855004360783557947711087914144286865594388344571446816886938554204040701023473708873140990707231564499812519649389764245105923430404309113386013974794216075953403459570377592541811307379486248526583770491822198552674903567770393768159368884586856273875772543393504365619360260723702010886550510252497023528121296074410991132189941570545207651502170908474819799109360600696374946145717003709851258123264213560190896145926552679817942280086359071404232138200192534591172921716645889616823714223739221162136400662496405343809912110558324075449491870955586155301839499307310103566524657331394530027838715579218769452200279080717294606336280711547941307981949617690237761410800675076643041692871454145752252953986936414683191404077919196261869181838561073548578189698513132245267766618253839660205180273029514070925648889342617011158518686023585042996274447606333924405819283424616976290295899233616943981888940418368757687898632131082374923459487230567621382457042038023935453215166394748867744499933745004346605652046276000527440491096130665913908709790631619474504890179431349843502292932688601112690493082245439484684103435216110639889707185734823833447942785853124827229613094686997960781751286927484069271778333110659633393796638214991243994360413584007392692954151196270508045759978845501289695308327086559059305080110455836880538664281516089406556804634182359240570279903955643839963853075191413954939332370846631832660737384570617010908956567182887912004922124392524747086110240368942281284242124998023613268683029534336595966838939773872538232017171938341036220482260556406965832132897177835277774025904468865453446772609354204519712392253090067143975917999592966797855364371068865250884973337108554881996761206264928225370202576638739599605043526735180437917925166586796400210375252278647588624224753036802168236610333194843463247394603361477830757955341441128662507778340629691064888994339908986863507272861402958422035915946313705533015846036399008517974603258715400731442923723180500122177584650669592774159332565855881948121777099281395489636915865316956863821966831007138108628963104119705529929872894114047640441056804656628442733059098984611345433468549862788120264745701409378695768731525907035637478451337328364841563542823935327438953051905325338529602183457192444743655085208341216277113187744683360663618344969369136554242446419312149723076650370397918815728993014584994711477441970894120233710226496325084134183758059250394039288196652440489093032458217455514085654008025718297182828030525018835026241533606612603914677046478454869868809797439168652604275301078430089520370500297439791872149048508579670282664335093388990767417873396438280991471447259818175963559797903071243577118510648637695770203507035487332109405611802896181579329157672110810961406843547986376233912021457091975668835822157935069493529913527692795678142710561894730127824130001934067005222363576014084260450936505093682997081538017195217551717518408775505423339260945316352214075917650992130794413035286736998292581591828629242883246821805933680147086345249558734579815820140016213014591658067526422895734359217732421882414723808824157736298983521615738419829618382758414874061226061401756914511087139583843331169002320537368776066089135548584609994096624119988683820498389070073153855877103628795829413073541321327317487315084320336669364179588082713553311890889812752015583408547877594654997985668986538393816502403894514652532598932803853980925420568630516597080586039914079401048155776575457466897789167981904885936020279151483372716052623670337900606416425090609614891051283222796188658913421698428083208683925713035564356723561571600433240459554974531125086734804038450551110985511162966267664611942841470531439732813703695501411057144079704125621862580571056879193572650290236610573126857198319304144888325579157880631945602710989741925388139831271038553525681065735721454520386104398850677524384305042708473086367631400953267222740908295720759177560658121007152059090505484474978678535489671539991885605932205564581701472288140860208746308998979186676082395417698291096971939499961022245747597968857390637323035219536418057232499480561483067634276087861767437034014006775143570171060768687667143708678800743842251741985572461064852248564774465362226733347365463445895446771296826551821319079124438484996719448001933145381308075101746044114072026203168547443446903199895243571090950258176149578832192200612365442506893454103771444046241157781475449902185070120643322252971359312149858073205902171123623150218078945235156018172313529180979866396851376801916800706444611418773322640246162761029343616005906713478213878790583162044216264384740400337625890723166973641931433098614785083637499123893587672309567206778233069920116899938885256774371988163116746457577199977612605725255125025131569288206299175632443866113654629474957372793644333943520405107986510297936815473650676226282674657188345859368249241500942046760090150581313774495550635963393894495843158952159279016043389009342138912982179445085545228394223178310351085754155684263384784944286946429809248495723404208134836747174004256068719219191482934226950704503511374760672906619488981820793821079678231444973284116185291663362863743264503766636500356704197328905128530491073323296356643221592955124330842472718617374474215296307465745366051113722027702378315468065573496991912908645698681783078225906813804713930688258105995882090097955417430555661039194576779883791971343272417631466290401950339192956010070602550700639261161549076941053346638347750465423473501650527278422518950875874539989993844157881290805143451257048672234083388906026365072817878393811136520451804137215583300208096163649002929049085199863838217424235877506038686786657586820801920915249227115740641094099897988405087019960553448256522039466555446140582232942604672937675924375191746645664177576083122809649214722602094612304384827981388129912813871433718411613347105623075283321685654347903477364699562526746496688061847557991478264920676087053852948392447713391072124792326885350378402358744024074403937626774863186389754547541926074182717209647126427342171214411415242568348721951405241043407482996149545284556147615072298741183826437986263292579430476025059659687631411047949217926491572054090847235672384626537386411372601386324812280614014736325310820243619361956378323486789091191787576420837497601647939727228914121749994302978136141826524480033591867384210441758310704079710093201752763574203151504386666698243040031317786379841465698054096937497145659228164793667404200162144234702323016791064741876172436613234846908644919700568101328916932813865752619168907229984188844344096552708995630888858292335672597013115701913659501388270480788219289445850203087443219571627185492428628818650529643918233904597359258705875898715875112042355864745260657124040516264567544274052624001450596485611361919883666603087027636343388809681583206299148934399483557334058789317917475665619919491791912409034006194479895346973481797321247325223097274441306655984245468675954941263857922522144696042412189903382121773593533169330484363594338585196527187739585839523873124452305014855047699636305977377990540909174855442262021854819027967051191816963009810144283858832894424770054820675885649265453034947384455917096572848638594280380179574603973985545597784518036738293160443183182508541569893701478852678779737602371606744113502861711841792734298468148343648654827278207634227068265711675226143998992562795302979403932231128808979531805156925277151603919145077960141652538755445161780470312751989866505071385521305074387879658826239466294235733534476922461233349326201248493906955431074971588901863228794969026170620770805536809944679573774105649487859268846305905232033220474326279359252697178012335069709087455770044075837428678026251420523460909599051356730181020541530365905574434668772346864773073464894478377701034421036128057414091294178607888919963415877141196994740585014098318404961976978693584379790593613589087818592106729049385723965007469220341620723360456416112804279437995755637043777307574267531079757150197542815875541202938235238744000031334312024989933336966230569961128181175402700970253473388471434370358905976199252401021436174442713336681359348985683568975412167591868230470759311080145988981135272087671756094063876584856425159094515641049216859151406641253651001626723116353872940940638318391732361745157536561530293218040459612216693023589009300505574350621536256129162592828181885017256803556891299404236065894543014055542916226507313537198163928476591467503494306423708214853134529702469755966622420368049442160285707485221598098513704814536698249945857607066744420779433640871482388543942175681246163178779637144396757509540068579923995488953198749864382135831104868998713553766424152111990084023986122796498183060934249214763582292274822300818371673320649385748526803481937334815623933627354758199110576126694477263869256796584550967492676429175587038896206374037066848947110259766831663901442268786249886528015209349998635233498484506921076490504961397969147224959787317536976476308594122255815295119566243450454352295210322325654587898292785433582224046270779249965522976328494018869777206455427441206887613686113523137288225830966877623720142136236860544552581982831202287543090439063721188416546060179041516475464883817615259058935692313800862702009543376487459070818717757849795756339303041870130996103977737009199513743215360651695930724953367292094863120926904850582125569032363342776713286408705687285606399387879475575298469502840901718923332171364909826359596607491873135784637064620860645917736463080832786871985873954289624826962377343519662143804463226152813751212225652392487984626898950713898653003845688335901067677827044086312888340894404163666395522372704418829996498706675477996692208756301804171669027927443687968681551835697881396241696912356341354874179791634793267787538539988308793180783648009064516966243524584235537759725783396842331778315859190972722103662031291526726821017477462777700260769572055429481441675180519975897866499855708822415860931200623473625684718242521933884785241281017983804927012545707616764030147559090896901190763114675474579779499716048691228101290226405748716113315955983423736384147126104650553506869155992580100371202441855641624516836282348826157109864910799918088386124674507194201931374443744190309751651809991149971005550771586962751541543357189207085698169830053687189343984501393076894248007047423908061825714704635420638822662075057089261453504473151562598234471460950257934783206847291533085437074262393997021785189946353096154039943163296739546760781826208713158594646210231907104848304138741696867276462776777203643932432830024000848565413893248955138006169894215281215761270925898100284380189326939184057096773221628978634387415654835095604936855806579745011427700287571584225857124590902063552084132829543385681042824808190377979506010085644118544453527162083847566673407020776941169300884727330722892537465010224128658753729330159876716172177313173420580797934217718065862685632019967610548931194451814462840817952275766516694024144302078389732107308294359692291875787894283473801883404854260687558400367641222221802697493569953710377494791661623346754099729302033235675371554836140375787785435810500436163698909534286706549916158609982566219365928950306782696169021513747841926914309589789101493127872339605241402875274648094421533185234753429095983870582062960249812326967445216210712850516572312521849458061014762332338197982066934639856354499068019652774007876722978270656837789872896434596421637101142222550491509321615292454781344276385778639218160701016896946622804862595572850532036831505163353230591664889216963304874272880532558677984192805525473197111380441842414880279415702667143796329951401614016159569628161869158807926338279071647812061780468264529183843985291112654054649574546887032169142097945356106477352638455721654564986607055494343353598643214200999769534331302268946130723634836866333156596637092995201029006516797348041490597691977306781574426758834097038725794043974102317410109366370030591060941664320566298310438688963066291669516727084587062881361007434627099426239067200654319795491051543768267902506464789785400475822902537612036278626168010643371088967644820314353937979234963119512404766082886151257691875983007075108843854622042448422770815936287218247423089992515655575064479895598999536945628012749831275153057621572755612549683224682984326809175359492968829561655741471384875403344819681329379582908048785395403532114980844498077935038335665614547445878450038393496807686040963721270445693301651219649532328628187827623204461046995259257668423771378798419381090313127362163950571696800702413463868611448615867327764676035873233216034367208047740851082465256050916211342856335428252773986584637892336260766746378977659229530844220503204707044391985221647727082435978705826126919066546787982540757578508763331800717750782556254698736203946670426987413803358173055484322166895045045698187943807670880960802761857039663952308124371543516189488434986072073183942326797167170738907495207357918790452419217068075708926125432132288701104064526549562901636963893905130294017253867986065269441956677463448491728843857840321234625286866050941583431940060704687799130637318633788416451354963423544944797523503606511156095655259763610166575046059907693382380113851210763662580888151228918785328761248146919974580715777715788877132081351751234419406066779880357258666064079524200328806045195687076512890805244577706432413587370550123676311355164375022702177037937087010274436027306889824851687306104699378353726978099238285647219952756255784929412324172898541676170335573611900054220720477568238108916671976737221779254751308496955767659791733646278486065533315201859487111700626095020962451227212523670704056722411803135775271641217155282518025453626165508560868645473357977630206369510001249376665709512248993394200930727421464732789964111585926641583254959319749845227369381220906756951635889392853961793178681736749721491678836796809572402236791175104952680127215046378659459136024632571055578388336116019805104861980897716007434438545710984924304373558137656541021107839679557958399515806608297532389636480930392757624301922390740535141638726880916559123203524952292821909638462931137259748878914431012193374468728310059517506260293045768949580554796739856061483932611728066320285822798837246562643330795886014895011892255250055963650245022773182170219928207864257495141676734419271477325758070452699262741154027475879525000064633907799610819631617976382164450122618096948390580358429631807105239118227105199705910521655747139608097083523599892355815041316535933366865979863275669225078985695242500410965190659224036629150098916612551663088658700152184223139295459530493207802280234360426451017482042003222676056726989556490139935540858778688052458145655221223111642360641490180539349863332179542432380430356496952810416809829983080579317718107737243173876272713258575662180826354675919942807123860655019564543492873950993186208609183331164591214980031460872984052724900572623915914246580472530076544561800501239146530369105796693361299430881472994184376414354701168413265115872560047351936171726258333589970521078312744187475345908159909814989887352736248736252287079483752458824155256213794009005524011117373593423367382239750041601420902274769912393877642679565822814044159400596959646863858190127696185626458274605154633079055857214360088248625673563831605043627225207341143635316911699069304448659548104102063802339745906360631518511296927892506151183519263561574591212385306556285391279218655369364326098949956029864548722741541474887813440367017352252347647862137750296196948800618681418806396630408913284739522070155862613179337567040668289011388348826081483911765057366316118228858481844008011333684791677069603341164880868371918679542520470728215605956785091494426813314112238678266592794873483521862218592269295198390302613021239090218417619970465440280480724602133067067910884260362543954142548849685029003927401149235385775501722759359233518113079972086731215334146205844770897507944294411177318334187681483378754998501867104189000137275981760989341840936235934746913924535361624887889382064551129916407078046913738894068308553144288087088530602466301428853569185851270680198083103893658221840855214409677942790155656909772978693092704816980326254568871956862593673227458414388031633533939465526241882246784163858687179658053892023006359517534930556823538158565533470680325720554687465517676224103697701560529468213645666598928827540636797554863766139221486803571814092062401989182359706547470316892446171042559115977331394320409484447088043074550192193197319554350724908047818651296278608270686762253834194394007941537585343475918318577268439721778352886882599766442196642762433827140682668510946494489962703649510625581696577286403105510923928874362646898931460682124564428252677353642650347588257907971442739299357683459052854016007537550151743057649144824627506182653409358514129400532007358916009943981575031327356394127386221363467705423654677859505913849889842445093136212556995793455757230563290476502603413726510087880943362272036199012233179824874288052465730560524462737202978783598793633779612329125224788181901946512473756630864072474671493766342840846519670424863480836123407592944474268996599490784824555681571512627914396999832062430941570452452996832362641438190434348383036464790781078196601099963053338759393930329761831248981910980352870940723221288775837666831809314155183361299557513772999082873498945105945019274380758145063291594556994034351945229682122365523645177389152967201642305693299556953929691877941780747264053849049409221418645001448816701706785870194723203130029035811837508654855574421196422665498243111937435140878775239385864201227550205353343263538900218753818886332008793352164372810252135043809383443860715826846381176967829976531769705747602006466987058913977944334056896404354837339098114869997685359586852767302320006714011536237997424225844772408167294179689907903315847895904665478453670353845896620225431783903250008237106990254119929070796351431357294718564719110901277968652250748205920177794661853289868287338456996862233659870734291102429148462301312298374847576248804110068014762185278522306598293947501928452392772835074920517366064622644866045485738059155101636953660413588655545336595880228351593625489938293340089688506367876358894484843392960692807674611985164610101959380922942506051208556685078823857507288988124060615665365287619501966509723315895937078412450788860145978076173129124777240159772051127878879768182290732281013445935313453878884738787220794874031561801238564823629129455729841110277027611235655236215346063246983436785822879078567824400802449141000486876471580118738269930844963550508412574936283867447964651895927725481160182103609023136077883405519999781315666936826780417864338858416003080801701021316059984288930145354984468863213038465117530893719553809059826434802174001781581197521364193645904706360922493695871274085693895968741681704316047749578450062322154058100329253085611644624231560185741570839461979769399480602491182122692005764935605054324512318812724719939087828271864572340633030604351455657912341676506978815482938803270182228320408352427938969083698017990373015204217174743451422880845524085634818332034300891928071240997872543882169867795549911803780641827413363691968412132439706853645312609026323323722131780153690759070875083920615458553049372065833392276983982766603956174765090452202330941929812899996462071103829000308776538507602641905616169337927988038513974693134570794007898524714937600835203320712066024472565657052889571673203246833767567364388372145860712359302698159373329626419572504409397413859304821233074777365757603439603306878164705061674752376098249416295913038852414963681243116154375999774238984714236551110895170138103868280593848872093856829035663746662768645512043947087724535970518746994766531507355481312907052995163167925570994487097585237576828390825616990879828470218407879237134497409129938924574830682274576573819190847537266164519603494348064790024169544085876827822246558779699095382439929950930455613062794347772886894256519997136309398881155142380132446815674634288064422798565266924769462183067212732478427350406081124743586992110768074793439066358986105760462502102815576662223834093292614366081436783019635359516977256160984118377657457903512291240492006143642372231310382426424799511558801751586671398957107855162330280271319393354425691374954014980531511181000742218144778037831721480299624673148100778902345090512599260658915098888181955749696337762776289674745623584898224005889598111081886697391195650148307923649987883445925353713673618387094972849655686800724057752707395882600460775192246342065204858173440650465319927553069433342924582784096597241979734380514910363252269464961123418776412685080328230032338188113023007502987461091873863673249478010901662359973945187183434127346939229959103643806958287259042476544981566727175249228037997866626722523012764953408659277372856296117661879224024928944033277200532568738751889858796663782590563553868173310759976086140352568705399389106399153942806631264634762346249617492686907793936179968925900175002274199067875086773474005434498736277934800423931400083490097968290708772750225442038329172712809589708076807449876740385026708252390791750350910262313928105781775732024023787906771065275896466183485234931346423442804796741251921563793755749733006784611024415876103761820903327868056410271491269047597104228119754035974015528782282159057189891380023961726658893441615024227533722395327873577634959274329757863253847557543906559249554058005523052709370556038985998901201361651197390388464897505911745731285190029021584298807373211152766659076838501648962894260196267019706526452725882162798206473891287720044717154329556299994051305026175602688854857680689762897146505617750630679837497125528688331403402040819141609029018805822260224149334437208858428123808848571388455880038728431822836966198300573902760006109514326037209410656280417582850893534476928206661598759391929169622734079960614406885874236492425533935593273623465859537461371805781492866508369256369397774738995703652762129574431598953900292490416534550121901277311843119594767444586336258056971968644667982435635251817724010252187763363930427457766871074321110036506978432211435021590036073434185025750535754408134051185061268250119432653769515306036758133376654102189002041777880291776679107823311294564446711175571938981153212907529469040471275168337503527852716746253372522465928832063506787968431560249937894237023776298220025095858578547494395899634401433008095649008094827253116778205016405587246535426299680956889737939246339062799810245013221519681977059721880611462495351496333299622383823589876086986428662005286921628105928013839955042802152906368356306015334127265835435033081278601612931589051592656078272908758234580071782107920848189656301807199747039303509400913140656018204166131458833169203982477841504368805063542903864010510102606108357059282824917131128987934514294481158732410855801204994170748203955825710767615469335838561958846133698723198398685072900824718783954361818899421336687678653357482194263951242538032980268128316763597693593061950220941607575024931806391084917463986661420526947632545253901536806992343077455109992488821339998275298155912304314403714056063227234068077752108698087503637343627005057820821961149317165312661727247892496516115071475458870601009409743835132566480455969030929688450517221399466304437831161985452585753173669616944291350575605372980159946027454401522729906664466997575669311876072886565749285536719454999730610895261347105206351296088647008585243318389547536243330422624330370161074276947020957780146897385296777015325782273985113326877018666656026492741261050201297269852437425969274659686826111193981722816618316163180488100528227501815483989251625899744706442092140573312565257087904015187114800026210937135104726743362078329443610099369733781025207923258053944407234140678062998356330642330241975437669856702087830026201956795924030400595777028547171068150173616528818939975665565454083968574288225912567041589784702601968902222311871900364914232518890678134237961724703082627285680886907762404072437860908392403170101407337674847117141597835471235895478732948392469900150338718630324245861992617820030337545594322128212278144577515661597003146867659362983275761087371852204066780484521688072940817265320724128277830459996690136350978180428064709517138344790392513632277751481939808127720025256397120877170905232366737153141529110000635869849291248697037691123771180569979483208363969234962228097893561457211703484366577292173734873259699982290293002092902028179195184479765381876512183015858601044437932049973822832424421148949004765912923020069096544263838080395642258962288114013751995222036588992432915229602779296247673658851934195986231709319217202418340639789844864860581541009909124311318780326847175227945692283957289676752701005565183331884524945214619030059674953429690813864418545212139394746505512759641422542012816307270746262519650378992347200000248485900613743765781492486836596763187805442944243155475486371350209091811986072357900232504862257086254281871955233431050477330182023163642122777538360901034056121309050014809542477653073771916561714347305656585478909548080735045776778325489482189509804135293227289644889508379628282846382331873644270824638208740954578324351710595475083256513331348265813747963282506708440884769257930728747737792827411968407483162298804075023966495148499310799870914607317036687184556792145965125597702634193169140224586833150347828903845057604860034832411934236597923285804617396295793825725099231958694924645457971428041747551577995528824554643412004040463283127053287227520216903604904379387459024744579882338692071060656943172642027127462116439736779789469016401244404188047040600964311028534820529962495041514925513174614367880947275175496791153337114648878730712472999546803178969345628072903693571731964006598019447473367784078369290643261396050030964946251794896102803691842733534925448189301700824619246862581335837256301878313986030414765558841697648761536792257223307368381009271661868647902090216296290848476456339706723172535977141760923898568521834712132549004139681641928207162421865426646220796059443150153205903879238138238632028450768300310727139622224587158230168286383615118420926300770426921537478603399632963525818090923522827083376362452204265869170339165012463508240830787061262760086192725421423934831433884278913730602614332682991117510780461197968179086441109758550338752561427002777200877720822573244691739003726110390323814011009785864689561858829047771997565915489734925325015898698130004913735469289478858178439892806339872301301910457611314837976092790127884416066645857972001347066750621860505973011519703746114379660557416603739360972215290077937861127043131072817231146915295576510377413285499713294223117209638459628310888580619494873786340035250412338434214710827055216488567421486624011411789887478635979866362329824630371822799044829908057211780076946457765615849275886389588751435027352972938749579607513122300298307262312495545663618942044684972402036476865945323867990823304070606656341945341120553415560163882054235923562941351810305534424633554562324056206327282202445198492592922474464617890193777093694036135034936723613983127808280126849760227163923764321527988222462751399371820420280811584641428860839920644736438165936929676670421104580738468667520944396679384337427947066330806544232182750374806193639689921268202363557830662050729378005292155442544892132377418809725617300074744614349534263608651365928910013655427977549191836027193922121673017921035019998191511779251391811759431588681941409344472031291291960936724115633730163137828905033686457227010281150658142522649775639350773724499363477721553184153990985949487442276338350228491382758679496447422072182458964917966136392991634163795774321791834647442463606283649003409226699487846914205266000167816634172635903860250679543562971057117386614130057376371167155704835929324381132772076396035969891268587669202313556069835263243840611622883434814004501835113182459727523126425535047651834880554200605132025071679707281112245627411053992529500528427280838786237280552913752866425813877414064570237638903405884731329536973134989600060435678345840841401161815666775358085362264313789132661874791496859734329354378253937059081004438886399758043071009302616127907872103733343609084248063157532736670891252454616963294643463357833299154578683482127598358342486432641875946964343207854833608853376297081138704022311357782871543924846428634792967008121323098226275093672688684743992799762359997866156277684622164210208100233584582193968784281140224324804066360667264384190931343792550298154147800595918700815513829071195768689320424256596773311802112797664723418887356133210284866299492307646600663145720864589118166829048964657280613153843343015914396334039537962687665620595282953040344131274872924620507894552773511448039625718571630396382797266148356553120801423136381518716903949426661643399000934218583832236449868959043467363602220307948145300374437163946253033664471654125964073264018214699471828410809785466335329936720114746063986228255016214024635746341735096478940914362329380504245784132743294772880274567192564941789640452613163179036286637785044011119013266655451458669759221274322861555226467557094178726811147171399390081256574927505410193014591312801483111122181832700402398287757804924809208006030889613345843486700459125910453146606948325344909417452939975086814109482306352695346059335411032679992948564163829629084630610480354972793812261771037249562079394574192224962023153899504020179763938661059289602675229543201746246452252763598817368713035534384957593059418385375276080147294507234257167642739088625045966580715989319316131121854068473729552115717149762179719767350298630233614101559968872110657338970126459354342379422473943198579531653505070170076384554011802932458256620316081136876036755545763506998840576848028381784489838118101233109398116545372611664577628270888156685352175974620413253441825533283575373082521491142323487387099369228929662231756310871536400924658028214939407524003314558359790348366620891678131459285637308447222200986628488813579728095145255579353634709767131846844624564708732080357821143030977902416578994814678813031531454550255380960893366227229830815787528455557341318743537702919154695024738688611495598858909163306055508441886522737119108961742687571238318543300486556088331708698120999216671903891382611961637010673158143081583096856157657187001069099574583779740056808361554468234632750390898263675202384761318584134399158714331147188143760918081140575771940159509382762436377847273216082294881171991353710866061659171015343028094500677458890434436596068113663615015018909117535520369105471762663904657619566122558383227259740352148194542096347375294869915719417926776624626057238038023367161453710351029414675505114665439489391254411850807407517026661885866414491420258404475211209907372561099767251671549623977621529431849757603348007926140616640847137053096377881184811899445630867495530505277892858852091499780442095197096319702936601107759674971709959785777998491684043002925530039140247814801927144409970620673425367045411666147182153485041866385642724573174361626785411240899618267572157763663449410890542399491696712415585250664671863129831427218605995222009051587161265569295291291351638360709251036260994253763812950016351611074735769894810627178744174347864278756277184592806550875520810823482003729782379648887048979927510271925775203362623944226602060489728849868997011433661112226533992201925235027037516766921439819479978156704822024893454505437900139076405254368378374920307378502230663500435817538645161167392577093729122446162694855907823802894333753272639032137366285500527199570807416351359232880607398040992140430923426147309557851164066570184073742997715713343506181989321744062881329157852277599141162798564433109438051127305432546392889099984465251093476082020267494948402625584637986229163078920558051336615173297582101131443958449541946641274149792156840053443770741908157371889100693649673311376429663215894855671238563248987253889027617079989019662124520129771965754865007528260372951709709977573593613023846895219867340117400470574509801586692996375114128358000411135818356023568151538300705414792948701963284847373071196297685486317551854549554550164798654595381006566066281684821410919022187497646885635665057713810974751454759101752712174624801326751940740448610322733938728964738397940192390536991731805114749060422252874042723244813633810289533569776409555203161993559199041149850222071803722044200093619887118907671098052113456582103368724176398579333189787482597497765520997229591546131463375374224119123875024564234258877012643380865910003018333277226885889091995667580373654634305693370732820235720721336107597392079902295090706339263398943115124946810059915010381615399380103374983152080379920112444414859350711650419932597849516900992137687274563837236324902193040176138261173889811503504323428811413324197808603618885274062918439291701789384141933364598712716770165235720758607900645015037241067470861159281924388906419385786542554737622904961590421887810044558045378616609836843015132326690471582265346224846795218198273357159544151615101740642976621484887179386453584406501375337926006914289270714046275992237686450189393606709612296700722993199476365796163542660316326205988659906278790340111338255793934959600975073661674098546049673347410884074849586358021604199244481125373644825356270710249548922454194874657478220006050557134682476232386763870528441087397053875644164459502496128982321960484009289634526910062474394598004851033467854300581696893076154531924983085341191450498687675300410381132027027910607459089351364940756856782884677807159289098768370260764959508638209335796707247796205998597048658640565549862207304833917239352631822234668916921462011726115495532541541996982706462760461771841631886370962176828192927143018041202416810954456122704789512760090022626205318598896891823543017698189062734368353371770747998789374985753458550245725716025813296804800304551374461000833540083758490498239442416969811289818343596862195579407182291991924412725168810802696241520021571266295741013771438770102845907287218338670250763672898193782853096163094082317959735387082375265458668172465150824215644482778919111415214946239457019209947055181753450389356101393932940027038274095966608517914072869690663614406374496515945915149218476219996089499526119524718209180123402043950990101900800726694789568134999165837016265301535828860690509698256754663124300021125248015257020346879807826129602466533438020155672699161449088003368184390587627663383990432126139294009474002384624488469410938652768650603538151917156286481971159056676139613744088262245484089328086496273439359508039067685985080595708314584729190984291585899496312595968815576161137815060854613115802649318522953981343735363775796691838572345189978967186382465375117110672871348472593017350394950964323504829230764975613900898326271573059845758733302352613684684591172427443564847118205088407524490964707807462014438862700113727337005608454168411038716721177035646813391693741623613563952043778188781009808336958367530472937759180476785433493971443844487208488617862251078558478431307045658987014131856783279568845590396828094867091937907567020129599466286894092362697497161757346669922433447616172435383251315668601279299744499500957387382484590864779314330774037112427212788676061239019476915509926466571542150210811247119779430882814029086801267393102449836419415591667978875362805514900207216312551107664494458869006272374140150552988167011154826357042351634886710777702155744920539089696420999487718677294925218772928088999899993480652226861458855234586311365244755389879097296054201621080936328840037190205190153586034564130575638054386241228378468372052816260576445500493108622891300852931309130812321761370068275323370047706847380717737319858628605450237099879485624932580800318696377785661891199636476119179686312952795267882363341613965070460689328908603171323893520019809773939829676880012559732512512413339867094156591436721283729030654287579508912913738266015969249581882752514609916666526943022050871661662269439412498336752629071079932742549037028132326927993178487523239251159795335523200609044854850169637698340034457256819607789408204471219410387705246626438352482258363206744545986118710054065072815072158527559266532296235764510825977893900071633316318989672434052998933734629187937513306481994612420337054015367971802764290324840763695725205245328978610113792007826379751924519372226128431472562422803271721895964995746747274063678124812853197069913614019429241117729239418092983853672957760025368045528692758358956568894483206103161888800978857237017407746179292350882542383459014354442425821559814796188221280722750060599093907456559087089436098600780424174726931213498608410089976509927916815339785212564338638275014981232712634930169763143247786947754822745521799238961752819066788648076811719755931128763818576751897401727680857985687828072208971524763836478194336993807519922405140212126762402701147173858596332560526450702952995975122815258751388020807760490286514766130634157481195122709357818180556993838398556291249035765329499818028090042674834377628770511373655506319692061510120049858922779566725504495746195955793674507232033846075695705427541950839969224309517687173671936064491147005870415513413589732829559554547203666661050741284952452893725286234871413770578187559430345352819753237544546622874547132553443998717487503124540226052656423957718658956745795013230425710360792564281821017997944353818913377132966684494159484561671779343697551296527569974777295672480439094396307900901940368673296450970075937440964377072126755159939717139583964848084388860443827826957494683906983275217437605541386327766243562027339464232740163492499487047289484907838661917988057230283283746680332044455504188391595070783866954629534292811154071922390668878920649201344271078494502319751158185854797587112771185099770876468863995146286475783506341404605218375719481320476712061991558336209834987859581146101021743865664868906842417178038587803748681584575856897181897154336370743637423644708147298054521269253126186146365690057263721782655420239035391059442982983586776189648235351071345429787192048473088751663044091113062759649385798814028467181625777746517679132891049077418865592505349356629224945285088933847558215675463315119773363458753797948744538711579483495773520117821252193666198097840161859769426668265483390162563215796766497266713063450197979788214340517769254886881739331375203481555444510691520852918061451902800206988717713931571057352604698692339181204999601082130715942052662979248721043953642761906031047107438394952375119114543127518182440608772380641368730573541566122162180200975146004666366905479250417889445029162619467999778598067351437317248020120316454351414268080292445808409483913867199679198222281875034987585018315578759492656005988062559763320994646125216056046644531871680798861934854870095322339511479761159194802282368030799691434615341892986167957065371310609421520526352088504192922462200389497753981325298138760038547477296173682079351152032991322982490735119979756838036018221677346317724476382399109156905971302128405152752631156149541897760446074633382874558034310177509531580970859518491298874039806295129693290202106536955214695033966186504113862032249604548592552410697837096681020619065205899667662760514823826991644301666680841688057471233788492282062030469549503130134796072125780500401400855694098184768077756140766454843712405998971499877344284225157558728908229909903331373878656274030084773075556553247933395042774019993915016181992375049557756110044792835867173935698178401823181959764580099531525362095094249874216169296479548961075557701370140044019666913642687119935405307947295831972031752496302270895818277015841164726163870041502943101953699105920502068765458898754608804719437825458981345741040459799475380759870554844021276650362956251996719583223841830346085534039570901091948054796671963916616830572142174304633600974990018091607073264367116794746825646619587568202550817117951290872401430166207655787876409716113826869950271405064081144416985148427753304454847981862098718349469034548952746667175989700284979297189690280902882144173328274218730735044659514055048360267148703265027259895268343119427418058178105062770497390429410034354111442254138268448971090677997204732850215022199124747463770141555662670128749582045962505093770155262356267934821164829028418266966509466603977844303504973864199457026648006822098641433844874515628936961500568843614352986452389406954753185469914352951349784599885620835659440941099400777300362418217813572030051948781158752612635548239660624626211247569222697718366539014148964516019563032256694021562433563529876721484335148168514473268745342840590769461325540670694205453765852947397054741135826005434004575807410142086735550700471611843011873653453917536082370466933651128425989921655193351780641890349364875182237780782344034807657403966883202076008835807230411873284990366723109751293271693971654049742872830587045300800479553874284347258358741483822085124080027306640816964322037525768270012752782119234611618525440058919574948341964044360668048802815557525539488035091622181703325575111043664227961637464285812546674301726678747199711233969059180563522346793985388336801257013290334742659114193961015246954844698054277098422422479543758952182283633401281738160455919241349428368247347062628233111269114151822356134625609853057448242712843041172228032561884167794306752818125549308890690095738399834621358432181592323308281975090944551586818014864573183592244866140340566089783254632520247386348984739492630763780598517239881650239660132858272931104564876100136874736541831521018189996981903369619194899812952516057328531870471515970311515218873754380351249367256585711787323825899935939654389506880401175351523383686523163403589934845242256326716677684949820013902526500846429234655630355366773020390242651547767440008929949283540051214493620310265426931435796477779951988480762756394919152898821448789919155944396372976098143290250279238714848092375847325745064313398576715295820210370798225003618813651133070414172111397360624593235847176307507270292971659580281911323929567897096484131815031841251140218127539282464363065140550264225663122489664131356118870967575938863134501288673414272873863024231024589965217659928351169664003126546756835152135054872921108893301292777133722029269107886499843448356178234609234629170126633595486371646596139644267203358358138689640659619791609868819240390733551294535305678933390629438116167931656285562410320874276219944760636935532157708828470260372626292108350433655967527828750742979163362750867144780529026058230156134584723383786355102563650867822004459109978044304358371703766133864832497117115642518340780527423423720056981275840465149857879260924838020052657861357369638950055712134729912015033334104499319823559782212269955170894075458053553465242307476872194021679192653642337991302920026011020431729574646162379937755220131001743960838529624018420791507923152236891514013567828357455219047596726509306476607524480917174156064677255822349793754690864850832301373266857202764828878493114428526657326010133378878288102817168072530576288112822852124830191840234531961979351783159680258231079599534386723893319621097302691634827987189904519964461139449261495126004209118085948906833757935144000216682767466386561924474918874848909964765470034372102992025030042225020662843121420439188755773811624054931895880291880676999887058299846301965870500812765218395379401801549829598227938862878662991844564663096911629468679942302304367706744618581517901633260473249423160435801739871898560050260337087309431155377047908578019831330523037739613776311539657368694103718741540549086786675724088838130186888364959111016818675396981085146339378809915705006712078333009330743942498222763279760130316869651332208957966196080447915346603285391524145898848800363734703216904935229282565630889182846536832907844114309096598586706277822053272427903760956282021740026117492554690537837960926849984666196941629838141267452841387888823678890680953232548060876220983504500224929251244275449868465633176338633237509573131072156913830349495046345330594435837723140019250223249258386414539040301588841256955343449114733179390281452998070219686638797594828010315802494196821806108216802764767829737996987840482177500809489650452107322480817539021251600387781946300932265967968359688907928319253877684702881027304624866097810912038243334118779985782026092757521735801588325969310216720781367965184936787791899346307712979270782863546433776606960016030216160394386633151273841533542329347729120076431561590287345935330003508630028540472440789054684148962368080756018793748245173050721284335803735545634889028176854818817881613452330316096409291528527405136438338124871011989262587709670138182667691916302829102259947190427347947637396926064875305188361649886165797565250549098255778569464069808151298690434115688669411110042573999579400747826000740285329151707219300129962902743692931788147367671948014645642037426964559809890785916649283711577081012143504130931599975811220886858342020197759351886651712375855181808954302755128703387667653009156010251167834636521192194193629283040633453532140460022384134380597301734528784002571227414308038191079804182822755319531179411155359112569207293988740317305040158817827008391017854629121817614060786854718721736376674168095687978823572483565752658372187477557397475067494746646640383819510440124443321956984174195330670784374298717290801357068922666783453944560819453889988220297054956492203588361350235517026241718539722816263706003908973787155908586398286931633311446409764038133947594206569668272864428423915531720318335752748494357243020488506851964395176410129103755658179257824470453267117886234684493110139498487472735796000305627221352763579037534074994465784246415024742007191081656151444463991066008201388721080636207745608301041366633407909481111265126136829455038513283643697168659073483500483032402560344602328516324929271464750098167927121952300869548593885834138789444856030531222356390689527347152814443709354156931423525284503222180472649009799034233338867732620929449021835213516255155142070345271489571929725521734712284355252973829196386962609188420183529725692358249087242099184977918794515750614643695372112980158173428893810774043599822474354125939926477324130492588781625819643960369755719054906931006588485646288961834155460642070561553506748209413033126073219353398417678633931845672407685177038717284919990862258986891043648716963470894086181634395825218300693343763882348447650239869983901452408281749809986834714702600276167947615023270642285282974602964780802340798002118249066891165410755960084167113093492390010058647635889259643780888483734525198936406819985930282241320229235880978625277354347627760207300749719161006626710337505675363665820740995731903859657208848381624169251606296688172964990982659396505890284224978359110295069927434148017673823316882027969610571111480936762350627644515110352708355848180814099647674635728522111011725601694269256684833256594505173686781176621306473423801131017815796701761740340237808506423748331426402920375605369048099387006404849572038222383663803475665320800460607364118607591020451584286061673865879298667522956356544038323548008053318238965562179751921489940177804899027634854501941675663812300507408511000283904658476678752310403462540322305567554969975387703090917227229167091151208732923447005433393709176904632363253777583697117573713576915081693309004369250055345177241648637662888530534113982874559745678865029388634277114269614064637802635429437686855289988913579046536572653266367495626064019431236893385008443437518320694802547837158983715658897565509412651033456736945164969820881478311421021010328929673899778551717431292496887686881592914865186608783712811685110179980387537253069441800573909017438719644902831051877876811609146637351512298574534673302982615488439136168148391493628272827319371511820172639515416186858187651268777999546843158205369666024465322441848044535200386253904816462107112735137040590572068571539770706294428305246217430283207264956978054502056212697900920740201121541375987266807751131631675118543606331512747790489498149384349272389238586260383567793911446397205544021882658720622631348381698809189614984993627808110007461425864746013349717301292444079559385401694824334462830161797605463157551036762860884614215372240467580452082774880777947312739122280800944897532111716124113889750478430620375031773065591866751297150456222030753754438108053473517392549703205927187641439870425535693452125944316623540884684631820239429052272324005319051004113972992321381877570205409768402219779606627899207023006974745073466667622455512530632997830396626628792573566708858131671306208765689636349981863543956364893828567832460912098810357985821553645942818721468912930143299608156571034783425218625924633825080684182091652121147338361445054680680132685260938002873752406539887063240675906766984351982649313184512136214299870851539292788578994478017100610831755296939107681127358411052339550029623174182370181770039572956842454646425782452812542950582261590653883967981574950187583635446226035133351381557999426148366842013108968646710549535864213451515886119326177047970426212047767844507149372375715943320956958363665383424348376761607472230939564678268185327836880133346389198559610999144559870836476141939770499311964412833041999358888692530933877794987304868622780585961726320777352496974723690883279392973541129438825724601073542672406397481163646843322745307997508630947798855628412531395491606638748572663857612426895803326133985893361132989958746391456825882975555242909106007080689306264330083553481533204709521479538204690988588005009533949658268195649577983574776667166733816488522496328838629467260474537748115870532341829659551359254612392606585236682263138406337805696886442749095616736195274259410276521660769011124330844254949494623579094849962571576687137358438663476663925012471658547009213223223369356588507755817924444053126328200292851458219907153646778986893299504633954772681270657105597056087719912364136028377920282014952334707872583881283584467187164370126383425600459336403079688704496861750963404141941736139424475110774662973591275020600426379892471131800829874004358266784218269677080630004833904229291133960960711746749733336344792514077475152347442048400772425185416528569446188227983140026064972053827460964624960579211504939614394793276933589661137867287313875908094413460255552015347241233871843454218426408441202381378357995186944787527016470107906126813113291754426024132542747626456446118665513319376593584493927090699621310454404889395542879270001815160731704859474602438619105048473342027305571074897679524662888430816858040407826353383038761150334109534445051288928088588005490453318239024511126518841369279362905109511607264758131348949771006912144390471424121338811587996766625388983392133362056539994433654262912153106211369324528122401378065103937866829318436257615608656588330781216724644995458231266865613178916662605115691069261372377503014428123135541990140452515706739956826484561936952667475534459485751031660045086822090834380023357028698010639053291826719350587271597726780775708450515432626817402414312971450826929386573157491001316879872128839949146736387356840373047333070172510181978474995283765539576324194849654718142244654427495103906905768224584714167435808006928671121722584521624747299913332598010931409166007309236543817164166473105904650170603701546017852621852906777329682980935655592785028695869610020173072321763372172130594709808044498228725950434694961130854279009708492835571669443848188971008571030034531945452963061044562112882193103822539655649471421141026441806010389992732919259567205838548059058731142099005021130058911259562931183824889127258816889426154327499879720899721214335977746422029592357786758914101503568615518781191458272393306231469488487281560145638324044506900823155475094078447328362819212681323089433987874654755307938123532252687646077498496405182745147748080945042985365903823671194049468946537607449151537252591982904688284205692581718946591583308956487507420855007847694261670515590430708144346907098215889676078177934155947726902405448492857774909429083746963685813777874362240274944316742467333953201408519610935105577564606407248013498750896751211513100422635614439712861785102778169792591907694209933286606504318837319105372971609470949035279773328048402640532859626346556738723958838545036826963122611925735239195374856880049745675565059757493213744578584955729455022286901280089421123645051832777563766292443753631227703747503895790188763636163487200049317676179609950654848686789489313140502528714480043345551164420746459320856964977775360650715420073167388726657494355966780846445250085482313125432489278545768021614427216214889522264292335579046748891049383308904893549103474790410127978921386230744749471302740468961345893382274663617806001170742306880114763497152321834370403623682448289328784968377414766789634919098813095521605612125484639309619715475991790736681888367648426746503272497069199254459161882774354649009295534535002604006529343507884117094637061478313050431034045289488543678531014204898911281599058051099830357273452918548842057150858293588268389790234614833395343144521004395269123640030462323103901781448520144882004554660455363220296634035605348572760200797612711234324558697658688976535018469687868013571360700629685857635492139539592803328527394928939213395398711380712541100624651342365217789369922561437492807163173526240258066211487946987481699450092268529728024208329160477425972280743148549273715276121061273655233327322555341650296019403214450517554950064348718701198621403194168650120819177519303584910185626678202968816137483788157061878649250880186699994437115887360671418089863816268703678089928887079107408529193175742504123862606846813320121047022160698171946977968466166951529607080232180984619227746081720318293223907606617605403073949226611641049494585850001657063930460729828666278527178683322532654509465312646846365118236581165815410384811060928120859197056256016346484149852882169397505942625298719680969420721560856676659089945408068338210871064985527016280593866128187036142025646071440476515923795671178231784596765280881164030589896168677020812159976226481524380592474121248247866757555070815457963797627210488183050185711467368112134907884218914386386366715678561565478126611316661915601754853155704462251980034669183281187492844637526800504868490071501317547424568845810315615439081787301436055210946172438544978219524233293374514376055165932676894668781177743285589394837950915287153625728443114213045813165461468399264423708391031397950102290163169328831565856868920223143236193356006013485643683729713227498735627480186064519098881055939234329785497351988884420972965202167192695790755491905881632305698810483941819965706967743648669116220919121049017576312915289587222265962484230177906868553260322756028293427687499088050346910412355843092167294896075751137373445143407759483785341113041077810623832700069087619705568631345245205874704772225479669553346865003979336481741823415251601922287524196071884221503438838332437354492408732391474153471918897790208579751725255509208552783427149645796451170657498577605637134238621976337241309751834291869158525502189261019578965136838222318660601480618360755963477402983926011947490225298617224776070292727256958538740045307084522231836110386687167923596175802080037721281034521490787362523594517898044267274116138723249385566364602818403792984536324241299909406831990720725478081793833558781888015500983739888807291093912911425430702868584974748745786059941950440865125240603318510017272449596936184422950359163400573974218981542119634611648760641208372368834352855868913238266857080997082428058859544149237227674076256071690406482112782134524781970027145752164881793211980085807518432654710013711030728108469257014587216077995441404475775801993212223345967080074539272045819351871172416001078547309562972923382793376305346147291957649890712405913013717289476604396255068366798988836910324010074896069894185039853405245221372114088905889486199295666135316736117835098191964780278303052156445330025566198338898399710239540504346738073032442949659469993520495845274483060350156904840697739255804365405386640648839351768424318588675415645201565478390629591434158548009326219432186265673240674312558535578390599705986465836358713831235614074046584051317994875319045996246164652555446873163348011182230784471644815805584283548833570701295475732565079059383899755625703176832186193724889295298516953685233802333735299234204726476159305445641484748355013660707371678070451606342727865764285139935051687055303730165679670178908572483273534183256785066511624835495457472559487018213356592677810666570463427672296576849531775051141880615395575259608297278999360724249227402409151016438185343928182788973436586951039668352858810451456177470809993146121683209912935802719692607834332555512164773240619121061420420409359386461692813852368634199786891427943964281430028014617013697644757538140298230890164478034254105232409425359569130303352850717670600916628700903801444290815314056479921496072163711150285906118306368670316941910020755432563264270528903412562913017448418769610527587949436908308116294486241885551613392498683150393358472061059662829844127223224834916641855673537395728967224069003153625594374829117136536661213021707059191985562720049714397129121188103422732794562781257712011743237846452138181623051721036530749514940229366032680517343021673522655016648434168171640545796178348266477405274962572574674498810942204594535891975040530517153302471004273847257196924949515198315028772253959436100206254523366987286425696855995941891721564329391954788491943246649647719778016154652816456843021233315522716877610807557590540938651591286376481837837371304440150406066409496884879670981011799871055721558580642911495531152290984064896986102029462903514151293073935210126120636719971307501845470876705411711439443207172431880273866149651580906986465054353186686329498718734611602568718680682062127920747956851787731776841104519868841420071713017988207405758402818921424928041930905772597434985227813703530780156614787154289487137485832010409120411191037685672172147967153661317915649264893568832625651636093255818291249144490497642620962918052923102365920153511593575410399306893593962632179866631886193894772481395026469991708221975092211189967731778439992113169873591689063136129822022106074161106552384920942643685046997092536109027107390346738852568453130474044916396922913924131044854217241606362954180249476766849742096910651280059310831031777628399120745433978531878967298784201562143703174709231574109691903193227343086442642031055571894070862311044514228281785870598348150799980533981909711644119220884623097300583639721565343690137204816878878931398100479339943190043327561492249357301774835140905428283774597092555756462615262179418995786499766781007600162298384634144615748534430264028276287845360768501361570601424591319242691247934047185275152717860339305413214343262313783248409741697477073376238141816089163003403127919627364083628893530883979461667342895244587822222179737895744066443428012715875061720214628740733257929107652319301787346067729221636847422892244278453492770462611851249167735895771506663773365041020791592608230626524669870070906516490474714366907717452033991943590517662122210549072978930364383536936660431678935585880212812231029276063125277258890032186815475532329013697904031924555808323939995462707066374746051510211392601745363545352941434759252236732736449533722764472567102448017402547603702077060991935923582117840020757949679237923981900796971533868154871009560585678685306867542132389343990752039618964251024363541288368673211907596337301182455916988030286836886608170369761232097322234786654668022084578287445946844303155186445995110631998231444142560862952222202374660462481042156010710963727104716712734185091698153111710329049402066510252650775905062259375560484671966664316433725817659414824018000929780033419653165665176755442649961189804787896548165977613154463592645934462557913630047898723559707374382713577322853763442332055795031865325893656575799372387583717085331450265530616096608741880479778951374842748434576522785560295289213827271748157737922496016809591294047760735316042382217256908145784979913266544022124574771352188491327536939633831498295574368114805001478677943334628684887037558944405935709177571165766881057421935147196834370038663232615566703231577008614752811867301715530804591936188250577191321807674318773637467327987253777699841262121431291486914258977932278427930014786448118605469660752937661545378113328335577061661126664644160312050365655122325302044377562979021755633070512434001340248712994467711235290553968791660005195406628980604932902108824849293202573180395794829197450321209206535586539128029821271577094416119254726511881633175054983894842402352056965112273558897551063986918832311009901899331823693005174386772375915965766363891845075024751284786456309785362239768438010394505665082016437148182475060714766291115533894929719655893309318712826567521727517974824692171242394536942793322321240525253006869635837704422785081876087297830609297158556872330025164420264931976649347125170227418536233064387583779664671043573429464328699995974307832086549852835249738898083993554908224814091068958975615867929418311795723142732013711228057240471043949307685207166413025864251173778620197262099739449229496520822891410711759314238413536038708286596967741795760254329518388107100066028216520460716016809724892244279515980410898594694441746323292716363900358910954900376910217878991109537391558777586899467623994210119118138321933354825060416629599808432055468894507355066242188271019941316967811787222316592875652965136394860968372136827710801999862370446679082999532654482008932698626830767072077085093151134385140147289653031148457501665844778242504115876193329119132408531692431909949821149599937447365244155344641486392631971347817031322267676633820583998820668519923735729193625742581546708326769353317994838075308794954906001611431192301764166273047390765422996086078689053442315797928790282175327954872106885541139662928720631069334321167893180698211006932742247627229763952793471570141038898362453115338377575193881161464913784957528611267983096605591581206086790521036746643519667157900393829159335442891166141980145917729725848271525604604481105176148552264879590203350908172106387285028754153295476261713989042568659618389611670957125287504122297428061793610271725361727345978572003511747227830999149199895757762852386393264271343626454176457369263554846667868056623697628688094825836858389757200931286330854486058586256727710352442743437429203221050933873989295671550614399221490186892622304381233761583717919070795537326025260389048911639445435774594800629482244686067880086578326246364749717780508781732123249630400251622087585888937516347771193701661962702375798152941405896129952297069406226426748862223578315856783042411542375773231856025109106326664975812897480236792032834095244994743044717350024174662345023131388118143530558530671324197955223930665328649195862187223301315048289346405942430933985821058888727678967504404191687264006945330247624746026821156600344436357989930751652592134957585389068732938450799490559712496638012672860789555820492120770713193902543045590768315592249149925595518155032629320985337571968382147554669306398834549182709151791747167984970527631556383798593928739180241036467900278314366825145247827580974996458821077172642908042569221525839404216977412213897931654977406339358907020865172789285993539001026514683958236215388853271017850787970627993572806443282699883079994356367184155698289215350110507012673567615022037135574745693600819958148613057899541384042637787694231247838909584762347869925828274073050760762780633647420054993687323906834289682696617063553326144276154604233949610389228820160650662563174076432882575875271857321496417439454921656790798594962524214142800888143500457070070690059389785374607760713665843793356247927121732595235485852077193951607723709508129159173334819566288445481116975855691915931775093467051034199806347865603652383323224019064716902281012285565505920691061626857427141501887820225776720292498296933628965333478924754936491280218839167328294838213185855942070693872455087804157613067506511185737845592404018133198091804324441365146518716177352288428897132530471491803130506335766931807067994878605735103454124759279362659341313985659158624411037529574913875506102551879432301749799565196774058749090217642941920668423680773670717418617768217264696843995395151209366311239244396169366385729275863501238853478386045357920502277017466901837319741138166927629546878674933044951882992386912713075913823859489326549243843947993413868394869335945087829573605959538602397787712750161866991420322958076554963206115647439886197511616227802273027417739584752716470161095149887233069561816663062537135079800087419506256275616900315948509796211636914223851708405499114102784848662240781625781350169323734040885493076339565410043606787520314549701330705155616062719775280879230136524084970195372097585519446489434155808108529751741133111910685328909703804801472804062959094469572210119672782110262528545514694236498691330655463665262347804176481954893332125250103738448627529300192287807716231290405097413216399901596870133556969208938740262818923315678374627425491477913356988574517450481966311358782503629891079362240963795578640988059268806374725700186554760671310282111361456392731384701023369074802553312174833871110074672768490762598047493373467979762116752841115378879571167303995020032852849654315921172437622345864034268546647016354839098074552216789135472664846278270149820417974484399137078513855926673059676829672694327538366099831040004352686657870975270788626861581387949421654830820431794933863937933937828702848566042115064899411396592837175634874496168735356697546156224027712848898842746188604712771566930753033496364434342608017227526330863302060917864778060560309330267755711174406743323210493729202563122962978222085017131686781374100483917135618993130992797441608387021445444875205485975385612917768352272268487397184394915743000592101688641685003061788748156204450580204618836539178226008573894618815394053289924273617291941359106390640994668995102926672860858592873298103640693745315399086063474953636622174925643718916762270646032378808758381461132705650676462485772602670672849544224276172034655906317693488722479544789497982990927652580578419830331610915582200049171514697166615150859843813063513862002351985441535524684626706532669208766644266735702881518778489341413666371010243712610019518592568373930947641140556726871782692366930844475881266210804863621755547921375280649984379331028692920822038206786900571058177125312048482089032421236762422881584621147814386060740544038655521436202835792893514660325697273463206633131555889483960394729741853349497406145911072532988069833541727402801511298379393677476395490083621276161348576390826585561923319414020559932490705539989297034944971192839924894549259118163656620003818582507137854600478173892797689954428597129207511821980657381498825920447898830115813149330181652818886874236869320351521392744348401224315691705218869536119573905450585478143066813353716215129844556196350927137821112815109419944857658393924337271718778289709111406422275010650001897389877803002195690653263254801082893497072539232767003252079876783326274654175722185478221363343446310972202324108185944036791507315053478365534708512738387351819703398978980013871078055037513330716933811175441569672176875921124888341582468210706435039391042799021461532350194297530136181066319698077323041604212784504892537660400442958258532389361553963877860468897883660029623084064090401682429749092282052272727730463490548717436047942366680138004927688663671785706317396173129032085291771059319954450282869471534402043040397608341879269039438926553053895047645781313634908411811722398185222265738015917110166116758713492157034101450309336264857920672303114135406553740776445162953989457517503771416708620238036289321947795275211167474494410491494729908369863885512581949719279980498022796080106048195892074445860741743156123770426804451998516763851435380341002798971748170551468167868778881988544472013719252381303950453056527265799602812310199242896792365071937569795151957528530861675965942058009407390146548974846278885909341868815940477014827962817392914301601942603578434689648667269805311153007544800429087538450318901088216972241256746635635455013702842859969086133485219842874369749009861757929013569607020094046139150513872046695967784630040762717718289470907940701418808885464060139764457134383700428688640476912437346145530119836348339899874816042076894106767326490436079693907292448995841675521093224702553957533868420108502975609001110575838430984188584965331052775197777315788008394491380187058316134469317525230797649206220211916571350673411333125778149025462607711698168924893062218135446601197652964380996036044596018818559806721534551705451978002771042729304046560840042515338312692564779666809361959499405663024316485484954794911921012052783536061587794794700095539386955163833595895088516365378290101666753626307644557789100202167761437003582665620945787134819288243755035753268233929693513949372176914799171574614369283987927581421227482080202669668633614407535854578552285639647338905931854624820511192212418878695327854212839235670336085770966972367046324947947100633687835402598897651860649302535923425536890461055995540526388170384713811680027258082035167257750141690354026242258769061846756101800420405607674683766188146165295814732206438689709544441345764657207368399467664259933719397538738460651609236143803368414567317922492738969523176805037422390939059627696051978044160460643117862051529149992877314788671771097402316138622695392711115139724432364716412694612715891808259827729620881350541938145775132237370290763060851799839908862494111025690794783462857138164428145210434703288115381798716965685647837700950543943284332645871652800436435139612503184479289629032890856206795607714013627470210115417617781227459657958180461218528790490568781015678773149666133287233307298678298278212259764877335901490630293372561138644621233811541052782132962117842901197469105490215124604666643757962087947146294967951550443089206982589054023065764974585996637482570897815104509947150623087121504951271081853536129273138267958863030049320479073716404734964576626161021349835206556808471941951774683056915162507335618733419007257089534838808707355482405902583383497215805525407052322964320991917633855162956322047883840021866486268919208159545964794661871267900825388856018279069555307403969182887150644762676387187467451818671867362578630961828090810819862022736832412532889177191996770907662328319830396109962839035248458763721060642952402204415958734837093890492919665826154037120456393342355188631279851816527551950685985342023555973149242537583116398147387118514399536020521136651425721229745551916159289478606179413712089820926630263660366913550827128878123941994645408984611986977347722620269348545146000908237538411754788205139891738064581096389506576163207661733202902726822198679486405536423549229247471921974041469583660822116437564276027660178745350486320280994458164037840966691661533041298322444360712359631384661634985511894011261145034111776010186993936591245109749616177308723387909389724753840988472876465430968652015293583302069816390934490744342263062320654941452509154720576614271608076734726223178224007122513256816021518284512838951681649868095049804297326745221751569972044690705269476488387690001036872208483800556938904898493318982148641875517741824710440594752294845562873449023339517847086196173639225418124422471232609233982807757231744992862800056319082315092331871286766455139380135771794882041372141053298165611000338827697914310418304056870137607394908688763319174726755881370719103706915539853210912671073060642263395237568171478974203132451650280563582682187025839197233563304251598206336107489854483170993695310550765680548692091253891559285242236922756146952326727874535826542323234337858443357084804486226270649324497038454637130608571548885491256785312664019432042861651020542580157811308869421996607449425358197949897258682448607370646890824907740111895109576957686153618691219589574777834122501098561226319915756642762274363908295665011854049284139473696700486835851737277016111912683252825897313486682765495397972559781722584904763829213368196955153625405111724924944095341007415621841796687714555443031540938296005294441655766483387825983772540582142052175660438388934349615342992276218819160285104395568119783168377411569757749888557003773147906861954599846820988580255296187750696124734565708702794005146383230231042556919459040784390836472522537882866682452310581309352052104863556516807207255365265940557094401969752057686654357464754588707061204002588248669004552933273866657821245580079885392289943443524106473207580794908831712393134226397287572629423896169230861255425132097467745345463142115478087902621777701734339677353904002416492083738418508498819817183577281032198231675894869212088803765647001821020632974088853785848420879500935897755874919091669855779024168350217518131706349680790519996036211792360506605230851703178817273577954324465055384480734649152591797597903766396524483732212050200327164265120468198410457011596033443478553729614795730457472495424972426997612146672757355543190183885862646408731736173453185066178406335597977207546908202023700093372879174402046242755985246983591535844687141746077727238012906946573742627222736604340861304545614812442389227921830957195524115157087507555261765436548877158732702414005760092733014340280680485786736714139255456734275564154191433770167587772165422767558565716972297705178650911853847259678693664900701300814527739557814934054632357126514721789395450823833206998988480033059570442146877420780742298642178375571438056281652841508596461547332573249962764583080492881111610355679329110905965268644362244913046399173647205151404411776271564680363563104846544600638254299737628523893812969304232597909735577339877091527716422622038451500454930385400405039920236521994600982951925719478889417295646946762717068842609389142695342903484343913373698959337956942653037068071994804842190301530267933712155096241537795817251848333996525928170268947283464991442021048784546704192627659438729161374392755342698484436408918982704668197846054604500594085774009776372441634772379391108705975840389905126260241919805603122226526850905675337458075447705686515319734300031637642331467482235211616546303487893269801157457204716447562189376658095901030442160257546755033587982895251665443189407352198165784727295696207491908551859254605610750333612623980639817687759095236630597771635201279406895891277073640388673809466597394427604586626987009056924105952706592356497578951745317344887501760963631691276182734795751157571943502199410698186163743035901918184635561657286766169046660337444095058182082338070247369789779624493245915167341930534424000619346730133786577414053157491904460679831615097459473841168452778167427645949123421471037229549287711432744407171573638236877936199589019422528326056534016956353103234824654793546923134180747650078963220203412467251500440828718858202720169637565932383087298787085220019211957618265640165979900491902573002350029029519935830361668384675226105538475596588401173654506884906379689909568156061815199981513631804668466541220646478457466339448888183712706091006083753587118339036556345572877076354739255325805702135472529560273055882921507023830980644478329554220434268085642559158675631446134964501509262417882221797848300735278704226921708163183131990434262385587605004021004812833743387615888009148667894963144750763241840868730678856562299998179049507490378406785421206976140210668886020559415683609331022324569988069868224314200754033724287022471916603153491489784428660004909877355373427689364208183126785577045475457785002904670139583063070763198073327372318862190785686525160636781436838750916538510207280859300907072136805346431114816648799692425337378815847356035551885622983311173063942715206174299103288219137934348597531990737327040249077613965935463455176583765098078442479400317583050857604572231973998360637638357486422255217278038828969033423858238732377837104844992001232755132302889137197573192007288160342223276492882846928993911280881312628576578590457100637754079021247812448987733208771302237338292059140379200472836930835747795131988274770434497704344693200980711435862043313133453360823984195195339806129902388680399010781610279837320022456579532938098230214831881413098146797791490172243445624175368904637090692851386797289158104054351492663345223134795588137284118971665521558949923530363430315403492301850955071777768955646672379991472542823770378867660199946012120023604619029257146897317459636506753621409064060365832251342603503084079558853094734939626555928130544179566962904730288518238074119152786271019759305554428083755949172489051329890603819297435241111350301555934018445842262997749715211242489792029811108783103964221547568762757171499310644092010668341462919150408571388297119923661954192553291279004884835759814193367252042257904848325945694713233909226411344683403840849028280385454102356063417217740537641350341644861561522496050138824461983028921456837886020155003926388655712075544362293472912916404893381684701535334683811704710102005506928991547634895003936471461192320654092001943115594874862965387205887161378781814130875446292220554423477335852888097152375864261815734356462435389528156442274907268479184834985463196488810305408109472511405309334335007772198442167921574998060851227469428986668850208394629150378816775560356024958595543423829357083388588437735760548941387364809721562637856847729829386168038252374905958827877603798835656503816398213497159746296734902221373232378177367923258929851224546204845267532301967579763724543644882252237858139022044932469650291715039622352922129785522165836246577026068086959398225845015439938335820886222728777907858507027892263397600490430616643147555685530242551363312592561961642629805433281833031658187633898840863241143785201037075144614388106363961348969884790131808282206849991290748807523092376179997865669705765908229573252185860000143012614921153465741391855343067582479415621671522277949759557751040767219831501240764896650236484287650721009921708344042235339412454520025929840002435452659486292408170306207796405910865253125366973452897686945986990069975229195470902848040383412295947377760154760504397315459260670927900871414317738126814323326464480439538327424567676483692677168436717277405658195035144040191945925160199573444273000794545940782027738225727004464625107823972862479270115416491543754801674725182476587817246569134610686126236601316365559349974701196178873178469619892244636361815641079024069295712293535230582453325269327367547141129119572293874998254017022989598277180412334107597413025388460528454344184984607059575707000723510088804817283730149381186066405894942979970650033760791736564136409075556329882639123146953101072473582697989084505329657213469140674406688495877803813188863790103509895998390059963269237706986754182505765491718508499395445619087329145271766290572109026760878105077374198505438448406911824907901011286404886479818827313160820209675833997394893080888132544411436790844125625746189840337104263417298766200780005912542089560982756268930605669647800076232893009250813718794780034656905053994333896274926151659143967732044499233254531868761677437420341472984653021661703256158065979023883173971541342322211272881776152589215777048330389534424573778052508032202400313993202836270535950621005093807102545686268465424217602935311427613079838159648159889581623108371886589878080481953775940412814377464947143765029422908896874341562443578925199319382655194711172721234085309255436812425419966647329664499945597014543121451365770692779774396474734608922557843296215386551851728827291217867900249875986616119684480192816279130283251173485275461716477936361145526235197222968170303135567266048795043200940930811890500419942691252777660900896403105794390552261743878439063384086517341736610667931448465475944343430003616515135115332819342465586389030631149766074875547248805219413787482702087642826890771581106736935951881631967362085707176852115425307219003206404927796652174031658572960412078244851997992426396945184598231306046639510365950332083382363481424469403342457338635574872693326225571224855740835815276199472408319471257182510652063505156932881849312086461873209993511925711225738883886665552673861608078299124814203885712833675959001923481372025070608324921936088476413196272987625489406023452913784133239638574235184188991577227947767770914706657380898064739204277321965603042050248170485215400638121675761418255504105161245523159892042708103946430498673763618210753982450047351029161692832160105721133543234031094165796138984694283123691553537798165075724953746886996224752408799559167977378847191889803726109867532735926438660715883437808849371453888185434853441237581562708175725618312855131541209687708994728263703542853823296822321627836372775602921830779791886817887588585620329184067048055136416578085443867096556388408982556314620198363965876377883068186331232437801534448674741628919425190871166563882387315448423432160724491839129557262160234957290609984963340870462330138736620532885105805234614192816130149307603771254830122453412291625717811389274536345662613017383527595512861757251381876562472088485199339256328024334113017932000000455730329584400426623632015882211261869844922180458215949638997924729890273434977503231559589904457829950716110819629573611120102222752407936800139410611581572188908267402867612960321365777321212731140736349248276173356848447563847456235188090820668745299923432703481274934300324149234141963594155630360571634496695346378967636665523540137533345439762857476708922722793772169233009855866073725144411946662823731574289483822191667749728365915394315711655295510567787250867936163071551200892069529545185977065935711545235030394412416858058462251513551218165493542340396607703198802224468966810007913963949484345677539704051589446843223680774156957467176786879195933791556851670157607075000661932873722585033627474704377786947665297605985049741598085108007043302217859012913987586700608341088435937562955763493293614328602226715109493683912150211413213304420158430966569907128189141392840573796227439636798076707220757064840185761182124406477393544030311680722639854881034693292380397115569424388200255602937298173104199189665806003738519611496820612936795089496478616105064904125906309713121751599834984690484779709435099964465593258162291988020555525637801235900145680269105667945669778030150702578216406586313835156203556068869307160520845008085092960671253600391080825547405552783586674839728863973947716270104136617591412957280629720531779059081459493877936399510079927545530916794949668125899990725296610874546911709876596184297741633321462689212498244456509733960399800913038749629178658624746242627849184366612302176688536155093201344822073708285544088258356432423344496089539918878050032159929053838637134429289179965224294547159360018152547590155700827875288433428921748247553676916552104028289660554133330691031382042099352381638442655137794133119801708479268187875648674948001298689767850176220434486698449382614321188110169376915514891461156836221649226939312822565355322062056687524603889947561103847360750580490684744262819922211088744087543942281298709641440849090536055194099511916714651459191030713526522833733379393492969570517010194890583613604527019189184886060707537640650950223380416740609117236593023190565570699018422021157101712404236267350945024660484741217082610180468360641595337933211530577311277415812643161724593958945418303212545022463528363557317812242700394779866565694977695937464332768855412262342880392064866332796032333843033370633454016732066478141402482905463690098762313462335172406347019147832788017853150069892043001722944029893927400541665643428106061350165894813775203208286707722354439978605158508325645025225711579547552340292085079708265998039906489383753529948732103909356308554722339746371790559106268032724622157130639297875257432632111208071384206848586034868275264762732937517847346706114681297141876462218373208000017918208410928659540895198136219397001227560389571089068639359360809249347993859358493514144126864056307931390000810150949750409564018169345323513179627306686826892356600211990955581325806535998950119884785700389270123573397515990062662238228107512462134172429594882616699460777946468724486896471955194180589235778874485539348546303372614700856365084611107450026028721886972559143717632919949052262127351797795077613027833035057762698694121301238291199290419661823072715787795631618002390182034026368950862831052604985937649859380068360905175515508602386851857322798098869103737899899170707815258076388386224774675515266060015995241841456275961235397498512759173627253258316028497624772498625005339502551304385028968295125587117375957417687284354265205777081062706167529474279152288795682284330382730388641578882404206872137832278112150265944810954381465877216446909868186846445659625913599053688208354011950836786045369509274146032691019893484307728854381692427059429433016105526183342771268877856865315490726565684234243441630275472773877648953750177200829820321634042049233184664251276742495357208401876186936891353185481298435535010903651167192551970337001843797743948887195673697259036811369560830079055593865906866813351164248277869498769281611067147196857664279328000964443465027042861200990028663685809707331897194448827391512575672591801752232323847106805910290406850018534646749465784582812799406845127600058881489635634854870826484623563865626181795229022441818805955170905766710044586725576572512181042751409541281307391347051048491345728937114064910408398899633494793561644323735395353169715859056715845182498795305378145849106936755890619622343754031958178886009127201610426925412772421165275884524484162403575106660942535901345033369522149036211044695636673646879672617909747675910992313010012163031842662311562559629326962563295877516252003313641898678280493770720101745633545008487760945616765395188482357383670666227395433140114638015978966677748843718559531361112609961175493633509598727695953455706099576111188472979824179234679425732961877361979843045149554239835202137886876207615010430368228974919071767283386201307410796258936214472845728008912814243966699469203981699192348479604287504789468148619814811958669196349356770872147407998996951077684819973620202213208547220229216478821267082214725931553586552485181164663215879826218959159022930708296138825694507833371591557979924503474469246317032882189298733136324099290982435043442062125667184972828112360457124458517099424344272261409269864888548410461749159182817649946343500625211052739897835097673197974661581951856752048613345336593802488989342021195323871817349954165747653049590480315163518905785038408948847508006840657022663321403614372813626463165433631424143993130369775254611481895807263118419100605566056872742411748711113040110743294397207596128089799991945234337621494107109144040909312594586319637619881413587287743998132359036982426578964880680848056534579955549241643974035833528890199753240870065724853327660996704484703220285961278003493024080841714485437998823749420901203729492554286075746400018401646968241920021357557648970446187720880172819423047205949809326780691168078753176696400208682899721163172333085864490491203643290533955720448071102192567086201143000413576618795678008029361164094254232487263207318658967151225124925148022889617122956703465575670954742455656833877593006867199935221042966875619443690528235405180755269158289901149777521200763742719659300646139551625079087064470966024206056162883412629142322422316017868086471015510865173432124590914476981327773716832262545839315399730021935913503715743843677964069713592842835415798267018933361997729715428425881420734149231045197623119806516532992209570725416093867715770969565647143829377156475345522889223213268968486389609416032822842213284681426363873801965510541717120082874737623579116990705825388154349585508511833742659742917833945868391815118504048859829577589241946333736086356673167799635979512304947164082704917774954237014697549918658247616179530384635817254484192276898787284596427982164657788215936848667191189001776429451615497930035950239212824633886236546120851169637498164147122654361669615625138513699522697501360041003286493688211051024756564668361221715403654275720889207839223737320554782614018904504738066147589562534095212737124660393600383995346126090240016461246006774660273341799181533551815426571638904609074808704171220475716853571861437799002058069884918267872577911348690514762053670659233657556018201159715579987593521394833429819779670966605887902262802741164743496808251057194482133875165445765537621573825962730250815348613349026333674543757433759136271308660229563364317889042852897977091661540304662451700227444702286884596706570711274277108408513957470904246104614126414540119098376267193813593099061589388576878327042630331633538584696330239126479523008153197558448121335561865013295264165656799511973592544699205621305388960161123994077360841484957083789924771007798971070789408710197369393232985326065282979660113507546624397191069929135679586167951156784671863972739648966644767575449445774083358411899188847162766839873189351881746467838558288456846588679043151160771370614645956571394308433636415397116786631790533390244541989013935088672590272685623781294596610176593805391095739270877272123676418021941858985207288496704517893991526883079811006540194799198083564467079040024066651239381661281427187845761663248195165994735905096604123290654391234029969416899821437842240315161487818759038535080098280646326958137738805341260953319641935837622534713623480600588016232948009020689386172578250649549367085412585911561564988566365596890750456402880231874551953932086636023794693267068136501175268399395102336217614582981345780930098190993737925117989047224439545010883363673590346572843695289261428083662913515674592916336356100540797961741001783036525123069496118724023819175300714175239237195838262413195526419552270208175585816828803549747092409648129243970890070403341266737910643105378431919371100738626321128082676026885059806159071275925828239957051588325000649108513025563630015923536236503089356815649722159040734290626456553364761135225280201040533553701912015081105301613751559867633713869519881010350671665273929335404095859695312726550827126577585226150053202474756922496943485395240161355473789703438440095141293801247150355589196632751286204544272656445958175325545499971176344801867370336067618636691144164545679414896889726264211870657546450608622687863553364954929346922311251745413699428201253260701200933441733831659299313235290441459274169092509736182874569367113071552608734044370955754879201509957339692387545454464370623983311776595818853904440969041995330837966404815507350618461524764347280374289883958156480238679117063109498071443787836361889934693134359543667526960840563203749617813864897853469639283204939629848002037259341735755937213767289912212863682865148018199279494977326474654890543273416857240113096694923499737424804927623386630554625874989230967486702381756881712037513611211790499471657753462803715076428748547618438400175840445567463825832656380169118024357160026348079391694987685653681692674972744340294766100483435563273219964223850251840321346200760711586122181683589252774637826165860284594601656844439161698915265732733470497199183216091598592130646604655594303873515169836306302566861757909116696668652686549601529748044286107134687603448222595561411548051155638228808758896049063526620950300351506106368378147191565755065253041899561868769990701406647405570901851310629847529870687700810126202094984161082391975756738354145671918743395709889574317587766201253739811260076770723253333503884047746649266127253810294678538032955294428311712793586988955753982620897597892748790251424766013648036290416870680117171502691549389935396817676965813349546175968641989551522099642202704026293863763457044265654916966103149833912145732002332839006735642079207109009783331534091748174317068867843078899737546025039927669638947565645201350088492581595343466583526563197356134203714611033358342017190751704048150358231946573368499513684153283869797613605494033178128269402895342738119807440647517949113859683241932826801146885548536404488464585350037791262164049472275365467097009149972529524361083227192055172511078907096641957761286542206849935153193814789525731177951659579531245188548844948272082621322267922829548766054138243598879284921392418331565188576155689571998573277986854974335564040283979572949303724499452867546467910862026287511512545896879310457975324739818333770336311551094710599130105748377462956789820716875064468738842304972149238487812459609522693348447304211300936288900415785206938015650961341660686091498347366377124521075386368278858564209385449588433333332075614815730575966976653910290652305788601591631132168839565295350184540144494161019685328786048831580320204465470573477233351204649533799430718326525459071935715867547909420108123997038813994546636712699797156972883658901878891573426580434549240121464085425368582050151038114622262243857711152203610497952140645778893545221555925552429865044743740732062934998887905442796936808793632649309287840945820280547712120170694865696803497834331459425527415723799353099666675247259908782171602007728691868957221533418528279256818393410175942242785761823383175366302610143465788060828643485348203877207877218519109940456418199576123223841127614195676807648059526340296629994781678318003479200784322072742140444588262470212060504295677819413449989501307500430138290470633680076967485600905180433779059172245587144856079778583525996882129187203681803280673960858611751064209880662293064502637631118833919997090016019856799294986785255849234196095172561171976434019177283860823729410075637029414072293913145063999499261840828642654414238250712368992253137894140715919850834126785267592911583108670039762455778722632643655545314643231180938141458328410572020512996200808888234346822277023490660521738036612487007258330912858888145218868317346681926302342211013131724414517104636343346215131589760605467805967859791230150878409009197039017361245542750380604062175506288363609324995317809004957256608309451175917137050582057346281008288426978855474856226783455758605882718827745137837955110901594640675327974875816800908137627508865244214825466744957140379877302962779113446606153802381155766817819637042558580561484945516815932736685450606228954439583600839117038327595544579770385840517933421370445141652967998122584249889528039891276453954149643303543225239648316919309408457076485368456374969688999955895349279090294535170094880223639560543799189598452816546381905582153964496676470901899540252839468200179393931163733642309162536975915052727672355441660963576887316353625383185699305098950422100148291607999857717609989524756298614039334306642321313364619542758689261588647970748713168239662742088821580618592149703129711511418928385374335585080860670312856763429803985939833801636647611496554494715046792726993945378069692680283293061185779875892680252402628641734257946796236365173672711634083207712468555033343163045928876925791955527720941376391643302026371331219204321329706812388278627263700388293583320991025548061888383181299938085724807796032837236859494119794248390775941533193602665466633516627961736780863539332373386583280332016498750322805617031239311004436223560496439666230763845533010945718801646464562277059515511956087571409721068176152004916748924148571548775908870979858862046164221582967894489026135917105012928274895827895178184481317225367604069546804836159787140019336807096160972568852036369218736599045645761828979004397523604338246902765230050693566065948463191601902144284149322908259903365588225081335480696269687045422567907349149450505657596739868659929905586423523768404226403770547053793138679797360236814199204693785908098412581271238427215271044639327457194138829055902411579702834038248700886639475441324257296248809938547327589017409434549594510970447990075405203624169191679825029201896292221279012995932972997603992986560430328429002753578219181202491759564861689402358508074807678603250108611853008095629954698779476704020180488102669005601817834222272299168658709856087116164812510534960713881399382922187458618882510931966462800154796929832564777736035961457788163485125772708276933938837417446421559296789773032226385757084842387033865866248518103108282463119128711603271281954645226359635538546999786439799909524002501269183661825420796510271128732081138288992650480520976360957781606627377885756347627276523436237089466486223052040761732062634019710486312346967427144640456888912906955498429441953243941428127767283820298031513481882376322118855242458703072849815185727244297166005542815719102563528853907938567146631943349297969589379580224440612150229968369772190608959322264613169895455483494909502466092884793655962259911617209359724797500044039991276128703730014383497366986132759843474014763717978089160548805849950825083726887557995195699610964855153699083147476184676792706499412080382438625265368916829483633865979227111076319710825461243650852537254819611331742700459525802236463908130428047972130841338875732395243084800686564380740592090314684156088950623747902453867984998390078355273893800227701285321770121014991812107275963012557372419443023188828358549643607847944938963435329660579923374460523452171958672779666766123212700239166121595318683084436452287659366021214131822672627140671133548915304513664851357536204768854608397265362766451724907205203834538344066776136312707449281339259846666032187791021484859098273972640160036868205323151440695422049526187489532458211223607259378415738809522982750836308847475221446170066404204148940444136525998006233663336117043953881966605250784681999268406106785496567712493707401190700233233499716193378945172781755265588250078257984617073847539919728614923829756445169401365885559860768659950599669373421548293153740206908702456042920481338110687669494091355531743429430320107211498899988376422834742658582332091218005310310098234687378067290502560180316604582684254946157765655443431320322719419091274123599767975405033614785774719454141798004320519076818106600176198563309167994638501527624351495188258167506098661958309332872867985153592213538548250750585567221954499150918581591426083659757200840731576760235385124871634400361848629630893256917935162804700452690919401315366533700324930181996103746098219055485653446126713432399966502576237516530039923851068456936119084535286427072472024864959699376418423209065087138200751553978845299499912997031352488890386052427340533876468037205913573987795243993546103426543187027833448553165701347633609530764185890684504579767471778545657944259481628071907430704993745733843235716372752433955612805747320010326038302513000757497032114224657817453833377526232142226693317483006592378463062405430238358869049328405996967521598918456158316560364101251546525735014058337528024858512990289812735961719024679579650262719782337569039789569727788764056825885308010632690334055539928308010309443514811694285363105987903578958495215832924747078656934038786430748545989813894054858549303842299310241113657119525645903371225603937776538780189601074920974967617176035933197121106777509973533992849197827927158535093524462268857302668447257542806228317973534726759360588294461586150251017979525120181777113882761860633576298124264075377356189542147977982786323516569459247511725014703512636810014782017605551051168984898437343556171604317526844177733502780566978144594497591569998425159080683516233785731236357480860813841941815923426671256052098152676492201921376494675236523169683341386988699018536307537420164331655984890248406092145417483588744880669060672346391117800636461813286981007025874136493204648179666706292321745002750577770910036563505852677285361026688400369637410940477064176299585132117393504454823762495099615645956778371646668442089378207004743523537175524612133196752353506913940394887416685365478193530395090989515608075179880859694807242272279321922621247549211172244849994855588482344903943249151829629895540006727696767277367020264044970768128803493523765285749840995620283310678978949631387688678674376415142618349488376045966099526278199131845698467704237978661803598453319473043083523330053811534501923067454188778476067994589605190509990402828634107342993194412663454590674487589461588294941560916245557121357705225948165161359624823398528357913556286829939829028367041227388446855239197652491868079905822515920588284179965512944831929744211702047046994409962333514222446097267415421852419242446058255549222335187693227247884654031738361959657494742515809564321321313578832443111796268908670057843738399178250594541040836924301247055088521500649611682837420401626437319725244769242414691405825054535748170274124536700223597956028406814039280791378849593728235983089654529974137515559110059494401706952076514899513872896764066718174242396627661339747987724853928932635820505451687409414846281500222042689703043824162866212865310696534674562271503826566231679480043222431244928100851021772279481346334395797541827655456647593649305324398167628122865954784084927756892911143971217934219753444593184297903713343040579481429528753982716723419797583007058283161149935533818906510182680723392851251741857963739319433705261201111159964778704367476167421601381815066578151742018585564465079714638325901741743751891789212288778789569738664950926335469313384595503395676417194602705106262901177755189266183719557729967621510426005036620541110642026187798556614094218805132839429784361901965260463821914392506982269350266351024845837496338943330657570828511425009236073018831630356370036016880622415970713551315571722129621594950026107712230009472530996244076513129251817352035067510224617660892282959465143459730988096448122748111012392640082808180194861246164835357898650469885882821471833032645628041588183098801405655827022949461669062215578149547039489050993897962931624089465755207113938733082425392159776342733395615050653403518922363981097649299298286975687572805115917508119990114676139642980702915231873358402444770203927568094339747253279798464105427270121137983186907732879225022213778453541851016478986671923866587415055985077252968887113981849355739849787052750209472244098893220257134741502758825438813549535752504809905583659494896223435292964991200918746282249435921862364721553297694794911587090113465312165543215155601216361357003797279085958933329731278392554260302510096095209383811328180754216845445800165700148345004813607633527035122010192489016733890273318434540758911626618916658777098128229388031865002054598796549745433208010739054374920128459026247761383497443131933962869113919752139186552202466177286136189273856252089601032664780762409653134651076231002492122490295711022763222752054355933902757827891654956199565405234500040329746488988117036626646891264204094351762983211425006122877696202209938041052231713640754215417913410433372271582910205279770316003538294798860570155561266040959823534559468404164213955923968696434197032852124728891209001571363139151738698827999352800817775295899843365642050545808882876820265628552886176743057175243121031160767369173614916132410513382362492104912019529896519871354716309378313464266038256936600519456338972112828137723666079917001429176687713191497371330622451683254298190348432647703258065907552368011399736907052009380424625209313778785382460064436705321562430390759901837581333699626763473745728705837525555731159999223847779529227556676234700055690334309661507762351542472964415858631753229802769299993434187290079967474980994617906272282527368874971111833785487015490687888753696958510687399949339544222105822126288024135598975196872177998319990434032238011093624516712316961529938034286018921602280446467794952181085479841073016724422976172222583812753779200557233306423673457444558390237207480601579877060227928574915115612782920436209105843290853421552558294313903544052916545910445396553055409448397007084771827440696507382548549790446182069762965656543312603228585586827891594559190968447587814196772898576737543552906156103835185329654579557241345255883460260057672114834316147772376024175290146685228053500396295575755195137953806294320592251226688767884997104987750547853789256827492104012170003934936274266003686776918365567862564211206459763172856826672921312093427723362417052371104278306385353168387638708285863232383176542573561667804831982260820009220106918230125348827638618447915014320592285708321324878379263930648775958573232880516192029950579966060746724909406240853624838821446178566718680204860942841040855839797036623787737186414160253942604321254903957382167081589693719169368835886711184260904740197601353983208896066549411726781731576392695806980364305971769487969934201154009101361257192331834245162374795243908396379504727570380384566690181780037753004573620993355705161199822334192737575014920887838407776165319170227279206604801303273160392786814881994439250589097141948764702096422115979147515132027228151383497319511940023650163212758064276800086629272888471565419156927410283219188839418497916208880489878772203316711379189440749828906903140505643790884872578821933588686369450935100208607746289127438264016942863459118379356143200072363673138858198060724675416194638303517044521188836386372134251767855936087168960265418085755370812986272351448997252832314523197341543724729320619666025348163857770809404186090195173884157950815534285159647406885130901752577272146757530729089077740254900257408871729580936959257696015943361031631725384874842015338027204188942064144017357793699674512360889120133405092419063866735154863024620206481085170843508918198497196172257358294314524980192443026297754783230203754678524063992660377612069366536385954191463544631755091336416320585980025093745225787797402168981043752121658414261651349062093526029892718208459442444935557382398765111509108820431093671654789263392861998154530527048919117926444228480276080930576454219996271584917250510476831144611214188651117551207280928822760755389737908158810899733256881380157029228756901164159402326046597164924973636492096766498159466315747366095417500534850665130011549542515539194665122349656979671372702698621986011168381214930513060897362858428944994219009369119505941956079567522185804795123523281742801325670342859891367015060172839095609758626837137851323738525332705347143538044229674554607945922936912528775812152759147127445806163731011149235709533651254547474240955256964889276746298388511610660997377092967131098863148520817779538023359777960544736698015500037356209680278432659990084248618498966725846169919972945269074606681144139243929675586964941896179307210207052590845295726718650797734367124533460790525550089118543415058804302958531459062862439952242107642450674574353204889612374711307284068781022250311185418422170886286511310459266450397585841878099945228857125225563082947319778895333385811620753638106216443107219588238291809698638836012712085661750140940722365292652920679502996690623541576978412892415927035229857483054318704311915585230424940138868409481738468116533622885478207649744152408943961108017652465694861549764249485068708746898660872436377027017450406456823496359223522630764343263293780450229730040117245289957954221646516232595314885158028462825286678381808249732778345633298425215881190593711677596088753562826426549822193628494375713549005767572244414732665744791651363208464192687256192723997808836345288420973102748276171250699577772665657790392081915912270333959084520828668092191153583089604245938222651776978100432666648574846676136089642226985894643671990956862853636556821909904799320736351403201992719388781254976098329544956144233857682082261089036162964153170046182665689708697359474227575385763727428272861682197849894782169196280947472006928477405342956129368181936578008980982994262180281984885537626513956765967312696616920519043060128956720409682079969209831445723510752657714993903684390937158934016897953141365958414814056768902656319862210093495219553249358228492939451764912965969117233180195045180865187520143970729423063017728182596299916779599328627343464494270664772425581855382990144846862340475841645297112100668921715086069187149021061260170637651882146157069705469026867289627194781656801096644603462820699831909955589278017030635893160723780514217698554375009175561489814738487203599113415146507729332122620469104219682060335229158425072212189162211293803893786479537944150571548166682495582540376026895045942161899873820903672857674153269599645865500740930778299953442975541013724272769082987967654057423519892548666851181226501986368889099949488524452321136510904665717381482827428196043105034267499532213891175710749307825164160781626918760721553502853980844632670769569392579867703026814021893371499463315885704455834258098952023154243788688471561030905206780382921789868722889248601566520341514032203603410151924163924611721135552070902913349293808552549807698489045900397503191259522646930892787540154112826329042523032301039460984487212010151162792967823193814097211305489732068011816030183071177818159650226913313748772817467137249751818021344901989736455287729231033774307792139477014502391405361955158671951287721812734257778207710406965223912358560895037664604167302197119713411992758858476195865931380919467021563368153184098019967747645774056163388643122344071327604607642123694840390890460161788908627369043978921290333208366640781830430756136853819595103231171994518207885631965981492116163936773093347196026082783102746066811688067301864490871587367935686242207845787734331261157146279407920014536009578323029790985991736214033386310196486451556952708718898869022037145121102853493671171649575228059767383883002646311651570751115893031126486917698132571353670193995266353958127047970180042613081740977247055047360612773550414182297901162647131968079357613715241207620659037574736369789317161738051653298270426910442588595130660662442588159103396403031769699340207612004017296440739290020265019241993242372037769142106518772772303546518096752956076571279294469812284686720488390580343018558256541950529254376450469140077403569565695147202646739231081671130943007639206504620956132260006786780664702095858372454466913846879942028751675596394846111492554230398995733691870453842917847692499821500341972301311812348734769522342900652464651642099341333884458590736104977440745331207023068924503370055040289459330702035627921331986931781077086155051082205569461593588873475886559165173880004588994129598672019285754686509493768702446732606510674837242401628806383289787292837070047583786408853165550860546772303410827161359806378060372582161787023785643033359031917527959477683316482667169713538459087506817181039320479136430150536394576452079589503606218902036649851832193911108362630083637638666588475115108239156017625947760443590158707461904907978893914514706400375385698017560283685856124621180003356398494807674067931037409778936713075536411334849607632849425718565943537514047644520459039971976202743974287645955851482595313579665372182611067732711835020136159834507956372944638751993894811394888468214194670791178333478112730574904850063468986570954358638257807283987307411945317350591069364409719271881002798005264507550347856846184473092708575634436983470843784102226854955367936923188397903924737851006384368055443215543680913472095840632515016972558395561230544874923896132567094240013210505197108574330677693967300425756569798017390193387296272855421088216355876682071094948193888792137273049172750895595224592709303482598802414058966871684574226546786447004202307850689821532429712233170643550120549256183197264385295677284339813286828767222631797990612223552049622636277708075163613534871521707264456699527632932114997828479365117332050250835117669134764439075619043667046874199441867123899788001351588772474680716225696579049205954181941083834625645993592750686734898931790617776684135108701158953733164026247764821382819334875267989020524517442753405200018128420334452698307985437879044947034420121244583942639230566080496862370347286490511010449883201212589675826543454800000011246065107663916787379564827998271844184754791423569725127345450960003110651111165103925622816583057536009174297641079332044804558867492968762504416095972561758299605350274378762355027443504326302065497969193301213574004838479350479358067330090448752205532249766284070510285670443780060007423309149687277561829464985440679906664379111417803475711483466435498355642170791523497349581605249281652008177671454295571139263733202573253560410027594572656411461680912490147347218283085876599785556519999706593104507948605853509780086812233898520140552372226343036148996666152925858988384388511885028785542057797008672301040826146854515975181860154428698428064256343392268639174960884706102175438494222330171766141446579591086982820820589941007331870482097838757075055902969976657404082965669556287920195115835034669346864644671349844385626436913901759137976579539963356455163192293386621915685702578121727801913733001792015466407519139767812938689303648790870235425615299535785805632331454543771321648330799782170630644023559250460641796719417569145635262663276403970600234016781361196177491154487632509237186233815084066117852227515032569495978245106025005999382226588826822135216814559913163515982223793879418923331944062388312279251208082370006754300625851037992115682160486251024064469314538657373305291150948452506152606942206443476880909525472444734749926233739546118401733918929048848290692704156718501260241208611468605033844071056437142166203730769607759703502921975810862114874774436787771138433444431271872299371762724157802669383381955195141671516425236429790908656608004548910550998428672105486806127842962797148550083358331787961160674509732224735821741351023070670578255070558353600290770886475738755730801042167990511198030407140539719139199858609215819051695188858048757662902393876613645041154316838685882803200406585551760205258005755889484998157423745224112608933959652384110573548375857689396116767292244940256337580239675389923402097989089239041245274323120162645261820014448321019501571162536417197884383341321540631104421482840052056988677390809266811369073374386899921005106044929364728489162070980017936918985215350580391163981896524092895688818569456349452231702706146688612545135160520749855262313299819342607503795957881082962273588658844516900697622371558666931555054825158655258738867492070078576035704183410490675464560311597122447293098334401832530121569462329793355439190533912265809709820133058658843202336687733608482777286023130505914107841928371338637379975575602187079731428335932872212332608658882739967353098381689477769054642969431257691182850835775730183281868292953703410068104885606531299330686973342329950268562188614586110051740162240988247380761948711477741041279342908288840672501196888245152172863277377865901176063353471427895143750020483425501188622512866753263711222168607715022124855845743260167403238130685891001710838215894052202093856457093017966056402361701038297261202603197848624266299056510137209774901297596593252074371182812412785580139565623091628365284111732264548105080022011932967870449466161539477761726990032464015239365523324160123887249931281086492758630426284141856494428977662472134716848696361640222969354287254993583634917496095574353166656655192692069211818769275609423213114041087464978329553316486798125898199259492462696625097978134509067525975570264926055688778683378709164592974452431730144396300649534701144045415178858985460321013711337632404504965217232300954247439678267725351001458059840762924953906349211716662521240334884581264597965576320953775361106825774565646966698232044481170837122256052802537215111245495292392816396668313095877131502048027358183154754443997895333947242941905761135989079778342348832290800809082174962412717739101925232261436525315596178293914203303760722614783529779316389984873681973071215659023924678919272107531691880147729468672237881256362053289788433194179945897660556382629976578288041333121225561414291474505855659252716146192679774298381235876248961195178294769476819788452205963772755537573362331340523872756307619495278509652509312728531761767184990057555833543024610963539937299622764568506114070615624148636270033175506070712699192162306491539350610056287780761565496753824585896148314159408226802023082921527835375129222775487117462685411414595648968714345004061584085016126440123254693341221249919484123579188860260752939264426692204277387527069809193310357187906020237992308753255699717325816867002864152807419821351080698839398345849215508098205237832528949160544660609494193947058657182676549666766271499600093047294791501695000613253275578940987139952931439333896937877133651120628523682313201235268015201250752044567723693804793661753053484924917373002578285391816978967575036192304160436544470094920169266894497974062638361301508271811835610900212919065688599784854819394626205423925064091693399977448023952288302032696079965207587957489590519220928871552858135786995164540029853177695541757335229321200455909763599265928722255450023956024470523439015200488322964441284354499396993482354197548990121038791486477281204016725141268813577198812768184454568905380849570845071539457173286719229775745767769093367192786372446408405147023634410879403258693268008852080076968876541858213864557907776108402706376873873709397891612048492189999627347191690921670003445649523983502401916735594790494135303802536079423233189620404845676590445083115544870441241713956444594414999431408716175811496469570049293048042870976418983247144938618874074753495387946986519956554364640783451957700737781803388785530555052597301740594090238959622327290692596110949147668377531426632003918400226083062388798461494113271351972876901448348871798607721171093928934815431754764611820912709421707060268827140754977431580153564252979877911944552363574704984637266814500029556763008103664009915790898268299544688078034798615509559416745600452387191342929692179808176387948996304064251689338888624240513563202391701127425176431742910364119822800836183637658635468374162857247995769389307299378660264206968766743656778917348870364022212857465410101881840711258914985654532345142045604842295055945527911205145352126863534075441829707056379200428831175647125271197485062114164977510589525152887901299183302043672880526117698895891369119916953488071117125622140274082549354450193902954453721941276132611601948994519880036257904669805046231244368853092221144283045869752435415778778430592308361520023806207479390715446338400311168986398428766155891315040668622016078410311137756471965492099805612231640025397658476269098631397027279913831425477321482678753303019692167171015853190372462662441945402249071275420058691404583591737366947745970731177991122361481923035140364954616365069311911080978477514977226126200722507612647851926997209082619654636727972063232028742297438282127982293962187829310502779733135934120462650779305972389572737430033182866978061263912738111347765374612679046879081949720591556394439578936084896600407775106104361480942205948889552114861997163838826160269431713533722667658598854099616552227681468242756811004428414873212151344601196619633228814601468172889841771786381681131048626138672539153542997485940861684308607206772936667692847948661951015305401524972913657515296049357205258294944173190014740649265431954303483534310015134958781012974195940111762716833303636836174965224352583887336202046082909426265580294445062988312269217544271396220321028014384480715904713111593880363021317833373672198982018868449261053966010761357780103236511359671020062957187615988059160913817792104072621842199991572514174526264121411050015122530441577373605370282482647944629896413225656763468371682563926917813500365613322294039858608635402008134947623289152119454307905731566819110654733312989554402004370457641132850819088126275745329288280479400428951643307913599412594661661736399000047421311163229008429598780580797929350574417334197654834300565132533759857927688009589889600705296815264684998731244981010442650936243196310883784226739011934976361899975196459753047694248698682253841091297564472086585224858766957079285706466508125839242783229807425067586025791396182125535388785534131757789456251330638939390972525722316111051956169979266829760752418785531136522966885511276662697842803812406863724320192424437387968416669307403851839362482573325192822004067205511375691968137475771474190392492728081668934152779104790275466655531722646625847286942830050588244416369304492189718860354483256123038184823540981275499711564261508024162219951089041612825508443057119754192231338129876362180424062335783716533674566377297962084424948570743543928638932471680787764994815369503604809879886979728699986436690751613118338803593459887876753674771771570272729790314140812251327946567822629942582361364173037479905784542606370198753925861679645430647602191491038858318956057053152669600690290500779134511032962540931491161749132768339668888957315291645986055947836117102769359149637924751346739649911623835019656854745815944447995524789163276329453310857710302163091850741595244605219589688519453851314050835400677721414588683686490812458834402270584858014337712181021844947318210401967757949662137483318958874771772512200124593891420047763812622645355283438071063452862512502742083913187717587611166376743148621988082645586946195907062274425354756183048183437000790576668630911297176401654148975039909280521262761624459134658882692543725099148003281826255055374679081423837625672157689203286090398040318142664999571378643680618640583768954372205143219124466003171052509811404627393523134244158812594593762443768956396714404588070010136786037404632999967273916360748139549413238498431064488396002740714073041161830752465317252398232182121915676070280327561743181388434155536287967135223578784775974966326308872431557357118176456949348704067703265119578375216981818566267877971102485304743057768527143796584431886027009605569663496338772562546497523028568010465487109608724550018368082654560742315573266663193289015204989383361342335457271462481581955884188740963925431712104173885021335454206224390346904931264114893337362129054871042669798910355990697358803947111337176634387409111641245273631495902250036751989130718408189803235527511525731676865037633494127440744468255983346437355960915981475263650262870945183465893206382036613820189416040233463639097468691807408797320825179949978633274268986371245901294898107617441978538533943247627500343696270559947630695852041287272736308573303598153576354396075401642445399856228586557434364799274870192594550271769688957097734566863104090595523303570852257388544805304372806321521263776079868456594233600513107767229966956040216746034131249887380033594311493935225167171496475456381314477875388252779913192186788415019437483938709800066151607182308812185510697653263484949534086451599641355351097465272365809498949673604653570400418702074636543924008362492588257153747394007954915456960499415568386824037625361942281075403020940999396650754804175989648481333296420488498186929728418642888430283780893885582405802502901429540142314312557361184584607358334345532729112671471142050354944818725122727668188649397896739375356955076409684914151833113846580286258438840409587581970167538289496597527729731543905393853439980292919732168823295415891668147292361180716229192519740992934044067675868326946765090580169776998280301615796055139693593845376072100972990176966549027413267776119521478050546841935557068808512215948582267198231203028076182983939303872243970268942774503789108071635552942087320986307592265249552972545831480257493750793722191486088195093071745583604417040145143521554403460295674586635270258362567877496742696142925083482040336820843704066456871795328242050665104528479684874338392076130573493740643816011087617168301969610053661158523543081823775973670392185504950931258427334025955002809708926524251045640974357188130756530437318380006558622511310869076768209357878666238694535497674854250075298809079444679875840565952071118914486474441039617154644737533156322828098250524210579265574964621666888637141411962222062425953681593075276927763461143756024941189779463950301886014766525429848270748579359755271364861090479181066326456477700120190611615215277594475560061318524467680022348114712106322782148210252451286198961405371457758688043757643462243230886166450193617277227613950543399678398626864930520682258992593912845487372766758509285338365073402146485784763530539102178663465352238134070966818294015014815434955497906655195231338208218523135897343982838106817795635414371669876137125930699317835753102857097027922388121538985133493189588562780077095605998648053885189058805762935647140318855523233013568611572436626065966203337266626743172279588936406436930477734839831669732299957901755066785927160953240866082175998545507418289745175793667874874450996071936493642595556635504021911657752168842415193549791439182784276624398110121159047416663714398251801503633766865157717557671254803508186766992878968893351646651304278083380852877665094377981323711039841516313898342554186782963935843147822005470556142412833296393556498049165464836342440780244412029387464973777679245501893158802305561967129943036411729702282516218845512301919908578939797488598583945570678737160532528471628114821358556851243366254516303144295192254737163894609822508932378262838237626103935316428466456423542082946697440924830196917813682539395782807754040263718644062702318274146014320199730382863465381419089408132984921508686250548181855546225852180808806953890853968000449087693728026756796284781350294773572390349165374518221511733536402778265024590252854689116957011419113673340780724513357311465965795326916097732149070115078482084106603290087495419673661586994500500331003184860384088559579051042067003150804473185398144680479948701390188046278988086517644523765549916263321566777274077624063573304604588058068181742464547129490564430303956125738436338623062234338903047167237015654930270513403217702416864508984524827363853802858052092832796118334608958878372767834655045963907163706571351751584517022299428174046820103501253444678639693891435830542250708701215835814996782386595438377627662238921614433283728055730359385006044035978050490651238394887702565075588271816956701730535015811582327953684309560022567121161527658604153562079786004098193089983036914783232248285609203757679999676614342477879125928455365825486877417809887722435210841352548424758691562012169589368661605413792446598685244379273310464819314503646912371429770751550929064491746435884450821431107280930324402331829063575605183474129448051334583870939812051565194080269091948570002841963888591936764946220253952820165490811165620964948729057904839011129078938463011112355706620904841729130013402503199192252926893817921028372473427826090425014431839443451190071651438938878341521544206021310122972903909825936072543689605938235215508703482965369218152512648226066097969915807739467717172372856542945392036482108748343384703785211469953018520131421349171809817072654024309440592728693164154246251039744863908748112194942457529017867185505556391671588594038195286128273233101734961980183041046295317822741618774120520973388271710022495513200738582838162396032991002876941959395464673776936500371292788352763346302986883355308531703869934123688107374163996349356752047320798726501960833031478586021197441139066998547992158925669585900591298687118108781503113562986672460823237041352417063338576132806786978961615477768615855256668662710895422912714279268681826556888954193601467653735889257299204806941382731603417477665263200250506974679322824706705594145459039456619327568153376313928498031041142224969338435192192024775468336229810869012142206323750398202881447230364841657518734039432411442923257632710887236587882354206498840168365340908988860585816478229299822759147799974140172034392529432817669301217439296858063878627690104910601325504980607171261691041548958481967672906653008501974964397815137357820113663419527773262599738497461586762865846430140989415376678051926772807197376105508356355263731403303256286518035665289563191048872693050439530031094290806168570163535308708838301477974019153598732127048464002655646717025872120120525207839092259106932597476980634633444093477076501970061378614015888308134571509613038705275781424848006608098114790254172235201557165103593239955842154867456143215649840480699980942631280898596691627095106535218061386035582773590494973387942768745486654506493652189201706350673259448869687828192389476792566515502821584666374832113058856798827454978144510170243436550215750735746688286345519042255536030050549286647328126461361255202892868578139554747613993489738633807601898745421123211925834527305671872760000714765536432366067050988516422491504835676145145609263841682719860146043651741057792518295737201913558457582260324275261428654553603536092559536344209639176217256678496266922704429525594446586006850889631776190078203534350217634179944779975567583777977246353171866897813871550271336036449370964680999558912641777469603191666036424336379578521352377565809602717027656612901187078937288889114889293580394888603838874151465949446940076728924907649942628660564602318940808680784913614726521059538621533601570525812913871135194006460942350331768511622918598196277582153154517495180837081261874220506171082395112222719077237070761246737612420350941126665062032433751600308498620264865648154807626089300786362772010469625526656679930357468265922050648237457230935007760951263600038158890252538944993129569127142830768544490858919203142672144432975936524501919761412905592626382746560619666219728597398289752973082974872652316324330972709153707303045338847227632008074212678882184823410051847215272201615364029037355368268102257187284841859837724335482928282523079207773157142268529249604375164375171540146496824780220481521204311390162227093421388747677181052796183846320792626223580874191153971587444345257513070721323243095241870760022393248244964759306002968846976231220066870279117888248599715968016101636584472949696895282739865519616063766320541065732949284078234054171581199121143510388962668823422948291542864632629911714830206960283406775241705749146738230828728078155344810520461417176610839657627899757144053723354077655614279261827633789113219422246604623429950597512158548854043318009049695386423590529070376495508611400259262258599741788141082552230412387794345871039583395194030521012457390288979762447455039302589033475324938506935181914806183030627656122120703753899149180890438567836230027929252886785077457406658792057577755776731716570450900388103642029960552946173741395578350670767680538985687922788670474159227835214948714844597055271851246021412494948849751720541598894898537555821925148320111770663241314013759562800128517212347290718445476306883401949283126316235363375147849664098378938103107103877716572078201527008431692632098386125136540341121751097939276326788062211301490048629802652076292206883824074425713129067390311885841960493397856632307014381402582064228236252581614994086055186082852679641384514760370695087728022481773844871408467555712482923979745662665164607358821307560331014904206836655356343315582144573158647064461645838855949608970410997991952743876394101328867947113868986172138585472253567946518523056382135401683232449579307107100405836049960789643616619745436204532178816585331213694757842848369073036278090104516882405081643130107629292183752156648118689464545707845894205947047789791324102766287903816705976166847212595981349865677488530671596032740736216538446772453675785739829614774643616791742970740635430151484949148281948972809888984825330707896111814648661244357021484450237280149929848322384727153538204399741071078608857024067108809619130930676915965448286805298672008100668459308787288934875711203309961142256054986022433433015243035465706014035140038526722250291581083461428683430353952859673795016902996503672950011825193953540442250733804078634047798584657672797220501310543794785574344008906771436971874359403349290482688788251330101564540535342269897931642558035563625290301009199417043471289945428045843826987149694300180641321726111261966114619327446761223806036345132929492229990395930390176445283137824008510223950387055015475728110714455972238452303452450001123099114267923706783813794417888492058200123370745145017697086127917253574950286551710624664614356835806910976450063498405742343953203919899958121013898703448349306859566180456970244247542752937405431207235601432760968690311345834417439004349088765552887675669500803330693617554287421267884674223625192561847386832918602888414643730977006074375586489380838127730712046032815914997234999055351339432045404097052644417918306254119802203879161485664243410720470113014213910506223910305077125056898634261474212825157831238485940007426518714589218607286949270001077261617789735575095121712197802888694660153604809767260121330747006258484568162469943037360093595361780883669082008302867164901689666825932452439836375014293743437742583629953363082053783944652326461019463967722760713782258562181053073336077189688258004314492585625574899853484253165191342692281443455630570827335599931647763445035894808961287033300546945170715244430090569486100547077947446822334148269968087901600263723607122420299669410723019217379671884621765146998201882740513596078538959164568659201542935546481701794230916721573680897129742058989649815104343090084706855030230793900209401527497247962237750810284244439227501077417367663519627758416018227508711124661998993415534804739262174961085917229822530558651178190506624127987231161017442923160286115807586030829430530194332310637589727066118484245300308260333054273006439615243464442217316902488416371591056587321129694289468554531627570436646593700101741704310018324456201580448535162014368664478135261753698133489379356502849870721277287484143284947530949530746210812059570322743653120786264549933543563702047266198359278887928208750544149653635513611272891717042900838385861683941548995543306050397271608436022472329784264227116994250327579877589840469617583555763015206114689310929909178322397347368836837400415904147946333571662329775502006274644726429158007479923868353413685172371707952930223877312912073785007054384150591847622953245470176900700287589285324346215957214533536112849832760366550580587430878728911099758522014702796000357964870892144689304349419142653114946854741621572844719220246020504755061460468892810881577688365526651841916996765845414582584260113882271479281183566351498622496526657568925334834184015000684847430848359445121862221910366522226443542643082430499314694922651540772548049399775525004863411013635284825021593357136426523805701768760011388803212498076694378720725100141533032093837706721507945179162670795782112083222261687308065166196615575898558212306411628901530431702497337403714628121959527576580793344004163091749163310137133627413299665309978176914877377482387024431802603515229254403457750274742660046516516348899979449555958516598097805178680847670345490606406132272814597074719016758308427259268947547551364324523225050432348326272331256480685694133962050974575982591032818982813075446667243403694394088970420020954115562988803681564497734813297488698173151192038507120633878524900920612510901153453315867817138307289743917781684597271048392684989120803693692955239871986412295517463986453648070998330069742671936732554432830391918708438442678254000659323809057298237257433249783134415357140738287969565216951850194064959668947470394586255791652178883185513114428385480158169136053686326511080568825509142684085211657606351905748997636428055819643547533485094144759804202455014018125287381612830347171725094291259705709733977411789411129452632455787554573208484847777329099012255702326588556794372331111965353691739784434293724282165039964614035586807458064031457008789723961584949636712749026808497189896075609775405415331905747156912448286283242474134492333526778175833312530290122817456838327298244343858824165650292374059145833160591229994552647063690866821776594184047861415568436673376665152145735885805221758451422446597460414798252722829830367013250333357322129472905783126249623904109330275639005644649808820957525140385176483266408827367533033142936163047495610255280761376180449994962986999704477722191052282354780005688369336877736253315126582279124951440660225770540646550589843456871211145380392285077835483837980022541037923318851243934470555978173914786553848552651376703565148233570253408449662083327094703777528385506236544457098031781844729866317227694861962846549980280353692335873596171709020583211238040121723752525769747487893829126617968579335208190339775715722728205334222872016909061758711435285672789465867987906717486993116793263757453750860324126823425930230705556963314148812029158338386225992399055019683732010629990922712305086494288497690870779642156570188444130167351668747977812223658309266503828554357968861783496437049648822344388693422295882735771032613176047509580931411684872917246623038786214200139864049399001244854638434986849395986422010083136331273914653176719480249494437479983365694938599594005572568336856864193637090002638409977477146636287404919306476257684641845084622073478432179954532545847400560744891443097990055794929170390015072794160062375050594218853952217426889055575163078396008554134912111611889784966210267853882108457680676103449274008175531735726512501719640540912114792201954661253524908382478497058855381547125726729545488582070127918326449670930839027153246746824314968413597133678625255372284761347542858625625134251450780970457187700134487642270177988210315891443810054782015566537871511932802089153896024574896619468982717428187277056329555162169745163614602155480472089011769958780215234097508188598059739915235128681124866336913542004200588604263024076308889572494637223931189755993836946996100616329245280474729127099621187761997599196823059346095189381259322211960167630291029939296054056474040227841859631833605085080311761303221764409220032763429205327609494640518434272924984591029865993151750524891340379797516402538910635769256394244911686227550098372573958586043126469076075453955557937437490640394267736655194720082038376067388231946940678742233962445595569020918506016452471314811109753600149494172244780559580159799950146447522464407412604615930136615940749217887518403400113696758074612093688406702724997174106165483515228616704424651995354459636528939907386515119295444306457989632471999096803459455989270007990538795948012322673822648530339224658113192894767459779600773057310478838855286715303601041884656545948826629615470646256165993612375852955226484584176581923911194701501572133251499993786288764997681584900489799341178318307931380948720166321690630018020444844451819696260582611934233263481292109675433053386278524648455222144137726753596851942217449863069023272795891303119308663423520823814047075632625726016912830235162894537740348223760833864468313665533943649577427750702157986971273793129698084068371132908821808340900953313516572433647436817723121824039444294628899360915398184573311725439149388590971603725228396765798678216678827180161815410364286918821191875181701228881813177003920149397270087385657875375838432104747068869473596214177007818281389840921083636436296008292774108127630101628090642054271313092138785906664384144274661442250665669941195333036167073179083133707850091832177423573564305479051567260429934448551354239649247183402346698617060525109866863994505057687034309916841330609796450045073373397486589982885596700802162417218656064765475232594724773967543638923538409802218353445702782407793713183926806181282234596984865339758715513363823351098652623704999089317028163055851708048939884216474790737541389143517596699538960851715706315069630487954752743391111779928947002987221297798834924035191682324625939542677294423610871444018541485946474384744815140279318107340386604999438292236961424924784230176365295850713072228918263978392381817322423229973900542882848700320579853956392220107726072944838209039714245158999801286498475609505847535033030949116961697088877011929440695049823399913697444916521361324810198459653515883149234358729574671820363299206665113779780954036754631353950860268696909462300235748103398617320688157099476114797603509073845371591868141604559108929098408528260700793396965043104170186742167649900427457137686979691660410468812455821962189150257319829930896758315158534310232159542988151084355319475401181926679774860978039987302804387954369508102651155397938834172524525977793915116500516716231363326466767404653170753984780080474553826982701802321442296205140961259738919197575121039282110414175835386975136140251721839304935217844458221533930945322572801756092208606879279782786144378390299766135579587033684508003724637142261902699472416054827886803897552255228178819412542282947441880087161425967461696616081848090463538206821383784047379592063937556578516997259308838575621857354168662890848645211793820558342641256525545486864294289947086179907969453723458086103243970387479791037025590390847729061604962908843248644733585369395610598012879635740152548732182519611730348128344475149814203044118138193525499692652376155155172877552259967489632564464060948906710950796603899917359910650304050592590654394375893149496508473338234843023253949156808464898787678125232169519158273364230548697555644628529969124058161410097372456049736846186396130293817452871072886322311561473777771033894894643798431747955391602865405054188529290202476607130650122027488773043960399004360119209341688731608751984905602620553528455663149553023047014008255619664071132080082220910156442264559094968424370891148581369833757336370405544202366834005125096064516816223262664607760570558042338599436143048540558766768390855242955724468297865497594054015414985890032028392058378149574581355231003404371487795010485618799490350671992502719800863052797668465989914552391280870947833410037884727167805930880023018498750342451772483559637093638643597244140727487094086628198670417616174368441395465296242940393994303425903940991408835231928567256926207255566433488648132681469061921645407205761760440314858392309498874767010893963574349132252060837428346797514749044592958309311725454153551812479496216645906928044535030726694827249300993831163710302825587217033965113840713988478136209536560576690752033188993870655301442853034977951188717025696308818645448840292053610737103756045705277041730831935787116068941432707748205137151923727042531840421939497453018308532801823457497560638819410155326419259189422810533712698553703566386284621800535944896282191040161409979457539717574061946674608993116321498117559233057709630671769246626557814390984155394747453997961266862310116970079287811954852688350272990157938567823184418340912723122922281429550037102818954894293874062929840414628828234585759371422923519960356933602331627041418810043812125763924610155675662330002960436936451328706734545809581297188631860604203885229783630975443683561272695122035617591793869251965478625269164385353280724214986349356878531281781833945456954000808699631935110983754153940473419211749723549758798848358943695617755616731132638392167231494994179960807747211905194267541803884103909506343881950445286135040668951348538053474348980219044898023271529236813512046383591596126113754468447147817650231334763528895879467188406244481878896357961935782085177684886015727298101543177074112093521434138340863902511287567814891152207823208665926091073701353267192288488789995410820798821404838186269848857733610994831594068461495256304108697206302356884042524438679043967545003898101281194256265756353711627526911509103615560078947509136008126799675209405766238014985228705314145818869171163632193353666277220661351911984488905236570205739153450767834983815812330575256288125490095924689347227785730221491672391980045045415387297688458146733385266225776856574320748454619764388354266098189643941919128251454679605213916635136385233193254736282273935180493799466483636570892357374903908086445005353767496830870906523894536080247917477863068888583385779384554387523689107477693163907777791133114457691937900880684311407899395739161145332775947577898883692226237267365104986076556959779691356325690252000287670622895153844174269559405299652946923435777671674154501353731657208905124171465801179540818337669337464405397966474227017111367540907393698928240028302691748341144870779733062583224256320076497095983949931847562297634425458129445187460924898485725756940438453416610361755739530924761414744246518165309029017605677760097232319017151458341816438814160637232413909358305057865869666006857666624564445081692825050483104867122773638281131799180687247085099077386667735204216394305879022977374576416217964098034107612929262371337196330875772780190784072928425668799630529442659380666640521696576218715613487833351791428004928090879197057090807125232359567928904857162776847500944498024872039762015569864105278101430936315241582497046918953197479487193632022509490649541782760389442699788790775862819504636215788282064382626795143351131549215491516100985859992193946862656716236736181890342180261067905322594518019924423809294850193088428555339199619377553659005559085701380194397209992465431146239688192136296966140560866957169443276004835033506261398904691148641806604202683268028854376336525886390151963318347933178556390594677588506299615765905230796827303018664589209508218782452017033155245912248053754636074484513524130992040668190260615018318012728735634329713565385966427573045053024561361118616838477325541559962208845514346740238031558266754949170987229977798843203952536045809429870060540910847451289671046853602107932867388965595371079517127927279141557414478537107603519897714742348313808722028575963371344498676511938440852421168900707843293577827885732495395513220710278483726989771102699066523289364899396918939882797737998896399918710161004389865807842685437999804969817562974054885951045323866647433550439299804403223001734600585720714336325191096673377817869244562872802055560344015258801646932051062744023818673527823037050672352692208195581113950144062054606402274784199606876444333712204625671933344856371946828646409321759048358535964420788793671275078143228983635874144991808895240762549763715659973900903558634955892751601160918452335576452828374464437908265421915537353559113081602296513231116308555415259804445297404897239142624763482327322308822963916466659916384586589152772924098317412385672701397167573745459431874608970879908516319225073840026919622320019830174987244081502956318086093947581231010657493932339984961825926476461456459917595510047249688872669212490651594863111343075185361876186935739102408378473994416063488290261219034726812807662962048871867544577792834552975807681316108140932091301608424229537307185553758129339493387841554863947126601518937037055802444932161580813822163443275970026510251908183114915842137542926402354219432296436285314913402185615114635545859359376672645913913079079563327137472435368245409870593842639683388164120867423058221748860386505847727266144518693524882059199374647828924828127514089461650019288019201011957661618882418368353479612720923040324325096919409944047895631785188718100673024283522764087518573512568790607957145889742689003279085761165052038751363246745797258977456045323318050243004797323571652065461931188200512716329937300810236292078274732493255219801963603963749719403873313135897528614403840497785480789420745294843275676405653380584577439792023501175594212170774995205495540827852420522018407601925463417184210841945025542867278987053532359415744439826293689218093419366475305942127997993772505809559093197315387420254547797214874835386458541384198313942921413604192828807343089194725923440172061845930352090158628897604206980315764128288283317147156292758564731651355265275389538061840517089146651706124944699977844968509027340414636211421919940268492934784358013275750173386715316161311574643519783273236250393189873826917290804342074751581504202544153399608929415873551838433346962795775015669862067704987257614672197716961363586213028656588307826987093683117297619437032660238910165478214280396210328832195598169486903839376673264948803666161568092390119547524380113443312893091730202770002119596479782357304966143342360963499719748515161404329638134381663501414245654142140522894870119835509967545042265353029085045382485643676301698504768818351736326394614795514880945668408210355311547688873590024315431504372535483483466454285240219362771457436202563280416826601352813616081936566159107284981580040435957650487124794356802806487324442026882363471801098219590784577909285848012202727427606497927504151951695516466736585704459642490743018867619994203073998475819667252931320426232034055708972534025098153098625800409705533279987083331504012007524314744792025958252278922027684024863716918183208787750704832366622229389890900787470693983838740975561918719954353265720846681647261818023102204186394831229800106775496129375449409169782505587374891878506284971686270618588881504899136912784338082411041060410455164714406393118331246181503699812342414796698060670933004681796391398199926594991866813050855350648480382172938372394921635078962788544112122697363973965726275115586663948548665789355889109986305611400109478361716843546855236300899155359100503775138865824556312844819478798438167228338174288876102123612674834993157380855015720325573788777025383081922188735553121690617674844616994270016094437315869287440276589280009172389294309278827575843479979853860623359687915428967163649811638870917987471111502343063413673080268614520504120613022721375986950641537069185044036027434257248770345142829526721000713586371569535989193077304148878174608093312489898920346338235957829871205206045138645971855138854835044017510967448291049113555933391525803925568694054214811832870195559580890386397145835093964193049826331075230087420096517133117705024910866687054917997768649388949085545158821524146692448715624473112280408062340708220295050544919643310164324817353418641009889592278145386852272570427756906540267506415151822581272530459268296808768569860317230290890790945855023427068702077841163137936423791869452633129704480478104333553326245496159557052403337488493657829335885917051594064006282628521199030037571074456321977245216849953679803047481943976764360834529105306027991045319758991302023130474954402093267677419425532316466655564684000166145006494119064265224523085566349199059129109223087314622265289625135037921907932339464280771117945781976062042587566454796198825599404554990813108418878907062343911964593647533698381686491379998490912763873573610858777665026447456130963065433365414364877015906341404981004690159311903963125900003622499229363255604198679972338408436435561548798185048965053774878237389134675079397957792275832044915293831413034600337952666494513817989812071986176550812375969790866160366139152720204206803723148071177493132413608613972210870127873518652849306637508921853578579452562653719458836633784327046742493918322486471090234667474090162468412697217703773111072796712095778284025938163589977013156760601430348332763235770596288803227864785557291700910892242611454248381407883990951432166422497086661190661282469797975459867983096724423565694532595475694119140335237877349259859875461984243545033413848772880799457967833068154331132810290691856149062472110682456871478045191417061399461850137501834968227302991728453264437839327112624099485514094428599801197516579953916097983851930533701328016656386224299679751663102726197945481353851805181747121225291102486642645697967552127678328770234788547699076924641143094886480668592012690484919611921726345690994863141281776436164120521399732056916653447802731985487408289480027650457461792665003288136483055878385449819704987364337316339378226273630179181203543378388214504219191221692574205025783549391613095435806687267200474672288055045055643772637345936818744505697894664277032370927562529972974136975392847167286944016705947596724913643827234603357562324104694181912749250136662516975492743691567926869358752620093697252500239585795325573139553002961127019400869559695968553376195539349356676609557041079884927798167995898552785564084925376488267218347485548076784561443629198729682117600798136886818769345516635646968206000410993214243032394423369276905283607123518541659286966271705208655487879559683345835076356973188329209317173722022168394366272070149706289296472715709479002942378576306703142692721049431441306075612680272248182668319503069945688484747058511066848376475425218000472011101306205338698412096662533452088495986731428772140905519063254465602330320156816799552857260789256104741011067906367119653299226724075413196139043315014400011110837165011251115889863991397802957924648512510181426607256192268357249279584703614834724803371773981125061240990059931860808041285925718471372699605094418553882302700362461691352800657003140190224116405248076878955323182284129172100399145748546276109030503622854445476396643962690923607110949962715201554501938534982621738907697463447823654170250650479787034140705426452289947620001959182611683663815253904605498381393862152539595382484077710752625805203099450024780711436673225889159730618049608954839808803908387135971698834415367290814888317387525721012203703923208826155888619158299621705988443006718724055123494068224445322652859237706487743670482511348156936057029869899820081569257394579353290841264617365383231727815971916750316892831369872005955554771578162245181989569918552070829889652235780932133158138983744893965700756306259938097079830785020938402959422342574245999295317024075760891572420084233026677801679545932515493043024889707627547399947876092750729442843636356351976713779957771975783952154043549154337584657981664347358938269154181199387901749314836502447448372509516076382820836788434013561359126979493102333416121221980757417190188230172483855669548231834624945581729464104261949343648082122881926011357938794288607266503315170101519297687873166104650238591318001859989673364398716458542100635197845180069275300705307743867413734314161123763504177616691326949616876778796059234766705404186887551613228717670158996100176040764703060039634298102867745218047389494821163416709107567431898692690646579398089855268833670993797075875303145133222603639341573546650978068416300314381372499809189616940672351088120831970461745249870053997123968530999569529783724283176931183444248536812723826407919182711803917723418537619675376267863829421510586023446084627603947400731419694171125236504083833713407648090109944093889687989213652544953975440715458700438565770919678466180479475995602234415995708978285498087863860794325497911591275066090171571133018025589310859113943002612942997577346241160199896757675474784823317760514980762732747358898899058276981503867184349372442676194337524812159334095421601084141424811243924248716967859923472282878883072914144834585675560005299820802743987897451982611988075585756159299819536991533332069497656880875503016393191971951029012102504753632408313897797013390224044721238125469028521467974485503523999413565140538908017240688459987575174021542077485113448373354518894130457213851895280764863746319215090757182259899859571653356391652680789939863695879409230999697266973069966947983488448769897582202775467473850260406836436658407751206684602699400054244518353432766615985035316955414531804990750798886403634806389979562328098727639899142404532490300431714181434055638488199361765269243558263120375514050420072921878006927287164968701214123449878567427037421352639996725018614410169257963423142210315397694264439650992508056734349630688734299849566511965511630518443077977759170128016757668540390512414285043277424471476042578763174206048410423474953926458421738579841105777202945720931744590548594027201151674211410602560143356905312220927016979537214559756090355120821668280971575862047506175610852745729577060628273270258868540153968149556145603634392209849631881709730751531705601198370703683943092037797675751865560638363760925553648284698739919608850666773887054464457575516399676522090738356439708548102590962976013286255725208795597297383503485038283810780746009369186360251635017574450085881200355998973606691712677657681460389021724619812875832061983715783951978178332848303221465304233998858232132053389028663644827515901424481384050189700687199525995094321421870579482868058979760501715143907232630777440435096501578718822130885410025052054011902652157009659342188287060451805832333896671985924994039563711531272054174190288840147802307027378975910299399890513667624391900881542301836211466404694073950622803415440663110175185205562465784503077738502310043827755717825189152282863500119214635103207417172285496473688496292518125546280144322100170908470490986464172699025859295333202916536117588551359748395497723069428857092886877148088138895602882270602696642847315277292787875028973805491604806701983491173767186423144803745373729857525712188398211100405074976669899630433072742134544116043254914108168790991977154219923963584844055481096000169032766748434263051662908413487853591729450536773163126821297991638018786210455318582019038411466036938895624662236243023742491996438965346088374312988719292721431609075271725981153919636420128873720367387538071081604817944290729843516179312593926361975020128275326269901411308793088299013489950392422751993082888088076106463543184338640779370920067241359301538960700275884459779833098523217634673801466717445232203543736091144029960794298793176834993193360165962545007977459448711342770738102101827681372928335912230741497936896399923211122678014960878464892640535780105769231655250628791604333282020099583689814716322346650738144634343189515102047891146337365742737139139888066923087934629466167334562637807143247329259920387670428397250425539009950677698332404997958731074278477176355676943002635229763203880205245217218563868605113812938733602973677075067598340385406843963660694236062354039023648675834737143844328917809519901377475251102720238818190858345478227013827703997220607042699312192698553579630139284399192517505657574593041031845363915035966219237349266133466944752431027807934200756834541479325541833185765820429740717773011274381511081842758935457628977293506081313671047670827663067547045574637874423407666738221431464819660066771932487971622275290109359973102797946428439831537247254252688692820676218157408177199156515651965029428415256408409017035009655886104996054355958809881179848778797332467406413683610644558830855885719726799561176076839387458380344742832916857172672218363213159780562172938739425450901165414661305192024504591247292562853001022897377773876008022892352596542764911724253384913312018746936947288468216503500308540437218649406222780851061001107252066441911206451246926232213762849533500252681067232229392290065996835483370388682749476991727189744792712141054614760895168082223803502093207846007061704771801727322177276980759003860333267587340831456648071949044036649033436654239245568400860381182413288541029393038958319702209606422352069725808597155177979996254258907619514275942380388291923641279309650748333124971538098588258520778129835890175845591341027916328024577015031312674979379129960804033755093108908511460903250422889160275639997727836202783212029492326097279170493650154923126777037862410676354053693004945121115713044974403455941390712216641879972456197182755834286862440693215121878236688730990766716013055393846473119997650618451897694457957186478563402586619304490010978853210780483556904798288223862332812179975302120276788240182509854507988991497547523395409298282367109125798167058973850221262655505952286505088625608064575823789897306216422423413670716176673347772673017941738820651213490209641661778547512913049445934309285105670860882220101067818513609979514002657805087606580585506661927366993010070014664727560332555011748910122236651673764696634599175365846888133077810324913187450061586802987165508966012661874602697525498480808536536135164116465928288858594440181682167921126151483989098435412306667667702474616553415081032315100443213401826530896423503282310777186240776663571987308231502946209934764245321759322894858874134599843860643832347256525058976892961789037649663181425588245553554482911063296127890324635190811647145006288719863071695806295383610026369595565271794142114238890231194038163937741441834583974484687446953697048863334735400709011960744539202321818950128799824243549949826506784017886420761931436271736765995642578294209613993193956196012836279836831525459220406451058519358539716483932914555682650983647106701893538158457963527649095973573111270894969798009761109104222120454102726053870164483174747310790176352372900924275216937425118735511452995671678816000037909248073326065002928128212153769142339384543269601140797915893351045287470711576984959231806538859632164750821925440773874976865203349609747996096094687380525368707446967342557479077715869073267972345249617535009143549651372575079413379851362273538286866291757461341871961737054054831693382768621244343392946389187130468017405981828898527149777953952756873000574100669327963434816742952336183463475410036202163640335292660277626148403151094806910430916092344344768164584094619514908362811978581298010061642853673968784606730025302257193819750404965400136496991032705841053437907879428492888941967597676313171544404074198586108181397692140112790276779542536087504565282061338001496522907460400273720693772417408556698526919953104082739368691530424086453241737828106333908875114515089547579560145196907328719251266678166503351197254451265842493329542717801245935207299706004896105395733401824114891725928191681212316170502069460603693887622771518095621152475865227715057669184164523609349506477393602865026389132565975974461098492195356716710352201806683075401257871260170846537175766112325265625684218052326371395156188031062815610117553537150560864539223009231406556859972913275435550607089475882935407020947982377205218319439487647073386765623799905860952869184124839695296546244965241525027728033688568450440300219069566644483073930390180251731743476631773754168059547056193060628055487912812096945493551894769504560162178337967180935945910131757165375382990173468920149588367611994884737991266403951009389123946820175825099349469026040586402581448285172943809135388469126928676023839896315525455821787687843323616273096145717789651841233633860717615539283757559362890445117382701279990062413165173879804496088996206475988409690518428442092210433516682208549979107347453805728713455259093953516613028881303799739249192023009378003672799714184898392024157687985518150339506960330411448144909735353171520471372593779974209317834546301316479194181257717569974170786006615080806009978407045774602124005096992823448970203454959539485047727934161734035763023303501201705775062151040165501827297904766187696441608108085919616071389586461275714689720112313184972917195431042978545834546099134766173655391795228015681677545315263995362465208557204301310298895603025003170908671254594050503509512072031238290462292762561262337221906341793499645858710102594684447588219221441962096210076726988196017784905498806131252761819584620629150110346610014865598212717706798233412626669262415402007032907114240544530003297090208862494995533585003173060946209710474399118443597646221275833661136977113631637105508317968105903375923968795736630055098743928102928926100989638101589305391341900317869544879534785304269718726503286351435436318324426431413946379704527921132280909118063826606861397340504169499654089586668004318317625651626048023924059381994391293399634279443115603509617546814444380635509476868963968407900863465862114008030974043790638091866817718850497803044988069503906930294488920098643161428907065547688968312144471334809196891983297212812210814772828771701983567834604992583894263490208498576735715680296062545984741038233011007015166308234951016342072827074868323518746747982567435400230711151086773140469765584966874448783104195401739751487016377773976342103557133757407449499589222214312793648615436956003728513797070251817284512504698484506020526867837996429017606183588903782450759355997180564793965375659642423466066128257006820067188917284094089689092450276466220216310575593751302132793433493598250710192285023997056944126109736805804584133882784909382472186508769287003297721189532598566349262546178387243769536915997260971353980451367188061018249630438154188032993025796454619008240255488331466049960750343470418684273203371905844551514988117355221226070416695710642959514972620405521613611222512251536257535482841773101058415177880810101189065932250010207265993445194052377197452692999915813826400106170709274988615303546302297816562013624767593387430283405577910196621964221586805832849266083229945430419706853107748910188327238974727213126613549557944517929734371309975183808005906573839397016564690030932237179590220518591236958047484012278693383724635611382164759340179985972972189698288610982157345378024306980530609476780832518216429891861900569485996812453503067913184905776951473217122989534082421284167156899780907200095861438192481127601853228649278340565502047552363522405874585821607884215181300028851500812471397013231433290098280453745943679329029385997763971606987196174621690317679853400487644775590681912205244429940611205482258190510345124763617833309830334176716081759052694108205828285553949659885311587751813201949060884885706684339548035494862023566501607545756963539810208164055494444333273920242661438558312186110924364374406377989253971585204824397575175156861880081539497209894476758110432046796690319688369481734468333256380659298411543998856619818456921945219188203507312025345663377093007946661038215619071904340480352487306559770012952696100580684003765926177008649845911847111146644404861430767681421993558457395430007149156743800184552141675910188052657568820269642842884353501794622536033337033173801918852775936383788954634180922050854381437203316995896117516881148258559613802648284584438071213659560517139383707554544808960211035492580971673219397170251114147766041238492125132669432945896285415150249038801646922358279000352259603413847403887859410198980143828299374565262558891278602895646975885796856272632873977207033894583693807727080266340579968330156261905231726150119962797187222402184532966084023982959747091247093091693363556660536784704200777836547960614740894368395242322613911981548384148055881223052511054497033638040364918193465452143604630493251649017957967251479686752252379907004072544054178520867823144906515039283416978217621826550447774793644758672589521074531614246911013196733347491724578436812788886955193812106030446340722719655685958572062844144899640918359498654763323894870894845644085278414577461148071351844383048507089405000592287732602588867227638454056596762514410247463979214995328243959550958266371807864214036742348221137915706307165303171754595867028198876735680859576507701590246325590386222214064352212127016375813177942122161536597221725017285568770431612558102365319502834300216011098172098246389974953893951408762509652898694955420051088915403731259793552389503082034648523562196698688263011125474027703820237521041484109090917751664629351301850660828832478668068479670017227676923389662262661904599994998980907435812630199160998481388738094038277004656220231182595517179404641758587516231008695905172579860466945695178225734170491744426940089630906990138323964091233693897030259246439419781438132993326242043687757432299511357451981045495270062657523728922772746893443384111592846281108346238955267383229640037596190612084710355081891670309786005506139413103464349231081531759642602555584075654170036387335307956104371108816283470295321365526009323951408757533399525672520696586635178954287009008992781714465504467597576402223519767525622086314207629693664649648723051382053209766484337981007807117345301348243945801877777463773138974529741023118293933615752504437580645201381612591137661367063424442556855311661557988720424550868634976905915591054357193813477205173567135990236817199640428791136166439115661564782461847967266980204005549691267092352644371048877420422644574244946495782614792909400690010126513041993963076216239439351046600483921768918849082506159166611690546325625544199795741243636314088092155876813458552114567922141985835244873974597038997999975120393993954150929740252487194944577173500203307192489113066351083230327343792525726065579203207996219158333817203983862898146174800887396868281258759866112798414249158288023708392243016812320378219059636975504817628949831153272512161041932686622770945315003078706410056934689002009088855571902660370528710522185941178568489774537020594274526031873129336959991957907862048320200144260863803749802410882037293651928506649350871986835185954696849400183097842489177577856940290641716650520095315020341401515912642850125730787269484918030058793055947635464163447543271061763168885958520590681739054239231580362882766452443069638471277797319943037061352615348310288495676256786328699891072412935919602421444514090194197071252124211778491166918737516320555877089109355943418805776047866546346479056160569961171358460970769672252427488040368557154372680735973875053142343258603433418180463431417350481816743857936923708189694150348465452046668088645996044994209459304654276193652146351902585767602259848474400543565137619240772151131031679019679171682517635257046434728947177571449850399047856742981766967821277611174654107610537339663652092190962261400998101441202872258187968864483340448485444462629267995336867623545724790847378895740012493515571737847062925400918263288425220118419685929044234420150973604234677623397709802159391128367058037486420228878453558983366647131933126877279365459372462872855705842786227246311964949824172856316825339735312400043277935689282708394950910616873485033873482084216389696955635400319575493864439115759331848395394425730690351649097401066632399717759440326020698057936991882442417291994184926142876510856432283498990731180789391885649009554841981949377337988298007551660560074315292117123315295347724774513503747572831645227524524496402120916264043961083763729772656020645014332364582966779490699380664315418634448961238597915133711767342189273326057298230602399840146182422271293762323071523064467159962324722361562450106647737818863587985954765193185640494708847825537393642688548544456478826841931503914171180731276333873990420657485536181910696174932915400375173067664049123043229016059116446411217525713924825276676807332610666600792336534404663238166929472990020705450872337704952392643718262013575915493960665382048500790412214220815587681892542681288463233195617139240419306222961353655945647634518071276134934933591415566105748141528170998369114391937516052964260681594468395053143386996294571235461218303174236424977504012962893033557832417594741416123869533390163752847955210233506472407681229558593058502153484553252891817378708599907452845196739960760056171938550813753272605122475068525017251652392246918357270925042961686230954857058032284260960765521136715720068830813667362385283152190072263982298583375940225070831455809444662588465591245598138319235192591134582991362629230692172641030240988831450768679153260908932625230931217266197363576984639113220671747050476029854585602726728316294208926999211905580966790579529156838197057802873594910679810785960145378139308028476632743541368059521348819480010384831802013320821140938056473894222519545398529245557147069557799689225453315235354788466176203345186227169345500107441693822077494176494579870226435440880716754501459757025077154476346752854976968966810044618602773033636446979339686724668502326867096532497839176228942863782632620603589994381309747579436069233730791291687279491494578974084614880125859664519528806183624494632537937565478334902756291905562653758143435782835749551304170146644621344086172087801485747116519857728566513840855681037621708952378274346383013333193807720762850402544019381383604992623256079981270953284116061570561984824831526451110028784082123464898216359785858247493977248073790796439245647792532568171054961006273392100627750241745385205980460445314775194910519169290363352665666938087366166409802637173313405507339337438840940466303040930247604190748919651036509708965397759673392286593144703795248933073069325805149250202219836484001817893924682646582558699046573660322787969617701556590520024849469109424493275180977088152416784934206026797018772381543815299000002064102372036103848411444609614896171528477741070506855434311924865470813217638298786851247168638493940665260861141439919471141485270851159283696979741711627187033273902453223835258112396734159801362432992662992003089271964897579272688207648893068815130764664237091059314939641106979353103671541501053906395224732111760779534091250414744814844199165775576988398027792851811245508582155508136373429782396244812245923376126038789076841469251738518702345130196960706740831539049553554603885615223637823054368659089586303404157167200114578452812496998989507987765893287170318681241235250841975286545217876693561024265876623316872745564493678710349084877779082512111427983354696640216647070104418431049626169890958977302050668535272697458699967309460086923789524947459506070701352308308539257620848735713028150571429549321402396701458906519344444580625166819596148033848033202078191396386276258267471620863138923619355279898005475252306608396188093892275214099521695404836463800930668270281796466677010212926070169708583511404181291666953629310162336193793267781882054550570114522240212428631288979530726203065485220582726197299787563824051994432327098592619502484082046199151222138621816370364824919949100702874921177921078802688403766159709219240397316751733434611224752692914065109021376751674524724172674375834654346670468537761851319241095163138762322370998681517766658860825975185483795657317586817546841880449599955985682749699405291689991819285825293762299593036442155925738980374182317352504977681667204909079852848676253402663842210336547905847541799122463321727016372460926373777646225874631213785774358868830656936610968286480034558248926210076078189649604139916567019978983761133700068008255501489260844711296336752450529165804044820065037950475836402682494746793278438656721264285633019374603673109679015875562541247285331345620280030651050888554533187101471232995751511837522482520600021032028829194059212311955941470838851541672184779276666609540418514558206686602802745801481043996979465138962841316276068950121744613991582175821034540854932335385737387212710023893467710235148416786848197967337914768406352759738084114765435274412922460248757321011874926289378819144738883885417623499716992680080107796162042245684915868827793079384326975810186874383113151715224558489417582993327490935532863358706966369126892155639539190885545593740803878985171177191295685135505900905168241870757092929104243018762411321346574666446866176289416839696911003524376626381139329757116601999692044239917463516457313079505687408182859883621709743711396271894151503241447730958387519567252165610933833870443536968741206813309897455615823175426398611063813789581215628680735395165953731852947870906585205813176577113682277570980547260820541681859950242022809454789880296568723879852070480989473865159151740744304989220095208570316024216510259011201503847883536299743730169055781737975214572727883157917272459737001853619915633414405325373821158479410969131891882192936089418242154780586088568796088545234825501062993263322227899974691384968362537862494995770293526321868168673351969103024021412867992348265097111100405287917790574730750832169234455908733238410048132128985504786395296284916514651125594647114216722109987968354116036203125506436892558019002249628257525136538129678628850376644608324448860049957740979371952396245536762634559583683558495635343271736440861165983028641132777657601514424837157218219833840378343568357695642946123604990026460592726584624154057832988311644387283772045346011915130383610665703955368161713911953814871272846698994296324308602177318566658895567666554462886445344764743110757662441458285490301167649419408033137350860582635733021384700422341560101958291952680902516264332249372351895568200415468368843800478120299192538125316606330184186382160065689517282861152667130687356301083708589469949582409064990703832460262455042523368458560302574887621191474646337710288108685326870623900500707270712562218452083693690566644125745481408688964014471896247961211353041312004681606431081570610631247767988353204340662692878940799530725346565089949354295881343197478640362176798067040606632299824371798813109338485923332596014387025578280344532394623744539575876439270753139068991605690411670957552241879813765548075085151463668076711896140694381162556997041774842731264271734912227183185365162468543927386237222697192682114015190381100717015331063242366901128544593293277659828788142193327341926360739353463464276126933945730160182301575467489151842407345346356665959288962007552787965335861109505342693111341296604024837702432003187167167190113941938999750200291473083143401169317164659143141706237784751667256323638094325920498935315674518598600341594862946495548640920682358351960230234759966099376932177975691599371799575861563062516756087603823218619922851493811411027917430420718971773220523653662527602223046233847435077153461309605890087465416448426116972660515510469373168317287041782444110537102037439904498686809665663612202125202631691996200571114306083641804906700322623907175305277671736199226835821875906462085587164442034139919259520875718797476268656870304677047106210070084927334274127953705883899335064459005390029724762998224245187677903821841265126639896787112069254971627927651085960617922455650653545705773836505997238994862754558651679696141972372041287713477988690141985094928706046104599763111055776859263090351810399243968988516890301249503262534450935552474970386493854009402405402781715607434520866190165248456488984998429272167564233746588574666018678259855353258671483051674843531840443324250235275157474486764487270079992735305623450492253351542319046403810589659860895483473110568925534966034420435885380671849226108391254724089368797181531609780078780184670656688604589986539361739030139389331637722942839416224233492119488234592671631128122128122438227466915342433474757827196176660086659701056692703344314382025153297472648321844299592296125329615204380610614367982718657937199176168688801360696969730812456145051217863955694630457813441534768674708059668032084065650264301107778789040431189033181882450118069513363320054836958746278615630902825544547022535371377066226073483504524493667363969710086107013710887566485611221565317844852852294604815551684368400497880481608504348748274704544254760687763065721417840656588007742848481182449451179112767295482085175715880197379618160744437875549724019616726532580056610007359126041129624437444331071224731851255348794871668812494995277077253314761709135002393587271897482938586833910871077632295670017185970279230918773877495405327254887311290106212725225768331712012107759704190446306699816908168257564348225588924764775241761710109020603408496937756241341751622276820950166043960646112416983875042146645836216846006612231776977054110798923114057707614259277905375125515102039562982512719218198746189987757818714467762326641209994571180228051718826853829261898991741936953559266988845628990739227592924972824964481505605916117179282375585871666295894461745055289728035149521082853646553629329336976038457284535543170745039149664445696928377728225607830789505232749699217586455490355641127305522702722323458725634830733021295693565841086109121433865027135537877203814961126457745330684491386564033384940355687960772699760474577742848413563693695165949906717477978840471758368970360577892689075725929048277080148642367514369227002448790185872340570060930121937755332142487123532227659025723779761555860678514335593250833191110640889501173097448245480658802919026601694825945880000006126767289102613741077526126823231712741124798503430025939840792693852134313256453473055080348054355952966365052281226508605959702647893176724478087953060307468658537308585576505747716021539370894218494152440453305122318617873944734724471874377628537001132349382763831359997555392634588618222313563764835640255234362579390167786317038976273171141975228042297691353867600672572789782551099048782837446045567519567638152644353309436233535439354246583625118993714554525710643944614905342670007881642529923578855823474847089432600346377691618927270451779646068673070838234777398440659682776621430786842347837476185557419283053788926837306220798163379029156876610682658973685050141230969002814128838994246806233249170694569450831418984006730436475466270299389992295312941678819120843853518966878794300413882396522445089932570122655574665947454395069358458510616502556961150070842887054983830939809111624290957985144668831969993093714921896861834299325780433600770850767029057563728408118062961837505989280800648562640860521675819623049912113104557398696587224875759804842239348033790309280641563516425342994495499475399155133613985939815883064690044390489486776254394416072683066408756344575804148666176226025956371866870990260229449562173737670406643927552432378382746279439622355887281397661900629261702420457638890935276064455382666798486131552664957055904394313902185080021372012863398511386211319922341317722705206250301441993733612242246267874937379543058571296358505831672845127885712495105598939644044958929731172623186955369588144465718691290726697399949289265734024435576357273790788397715751561802972107552175018949473759728308266836248312780741860989557186739917588134833427896051629006640795955248512306399455366424961518393946259395263095766450889828809878074197618112124732057075286789906703165271757772078979246022957766767461772558264316298450914763190165812803189411893926640745794155419686570713513940060279365701169044470191401874772580931112386761620538219845874098134740536698982343375322471676572440001893216068864994354419444010977651243801239337733959838225018690838178219145799653630784375981242086639827966560642350223433476548948830338014736327057270942500817420673614290288106203813545231496089017209191608210436688526855341180893067604498764369315159762352749695871912773003413519355980487719239947406453537729459745371449974492430283233341713837194804103142326875347964079346915701593310365544399509109962391905498680119826272763313217975382878863559964421866393109990397942340409540368277824653130485800422837002081109422735156744925598605782083452276185674396179415137753743002484944203322442814451871338450492253226500773040497002108996335983075920550265100318839808412499059022920077553934238034285356867261828208211818211818539736271068571859365066776264871185976415514206548567310248846260076426800946796520002424082707745220413301188661116986228708549039595481453512302502702417364705837663595837671369029965108457449365432468010884293765023712042248677794856708417030231615221404113287728648976494658513476062195206208490052373041410262575907832964089098121414027779034839323991875172493600214000898065747171899249562690901557111999163702930246712551013470386795753930735686473046486550668081211799698294564420099767008555292875412912056576812348466914687667165061632266853912484752164358959553559064108446164017867614259737648725855717858536504958315579603593025823106311900523804535428258246391906279155802700953927388738387736912196280047327618475084165547593139124195522164136509423471021884576332911823014838914436961583988252499311420338894520696252632979320165414905856222427695850451120248929316265274337201799278836124222042573682428244526216644409428840151401424293761335216031862890891628700362183788003764795379609872001307913692998024589887832141956276699081921187548353901471411700424958333301373596071223539340431116287953831539988473427418955463144247198997374096364012941927186205394303261136082992532340301005342484445112399154893392740063131867212089042931358417174087827338528225337487097637268390484536287397753401396972379661838168825607887599819266759764279503516855226331197942230760778141921466049236498641179482054557572156782149039944817027101431120599036807580457498481287363866053902829766443790689778710602780572163862934755276857544316518671712673622326060138418639248249633411899069119540465031990636559571348105611182964691834512575409795486288248728452186030635981121930962923463456507292668152827984993683248554413828102095741215310949725744651395894265111152349251236533490378726300282237296695936794067043699994050219845180498760181727773354757050890119178376393223021861297897559620476519201428717706418385593430444728281660826095820065451031546681766403466797567776631108429644747201963107340181561025304046991483540245444038911750128769528909897633149796206140248187490512576459573487733217295207336800737117059812683232506971220160842132689407144564147297944626286540149296926322983744743153601614603472839904541468463677494493609732585789084298521964916701867976472894738846317948893010491645501336542922024150917426480120171539992821139284762520743539106064281135965498239543365735266857753410876118224547181997433824692082626289021660807447370684131215696182571152834752296900789218379315260624983681954455974328650377216816805673080746926238676630168658708095620553765438473211917205231435399126342967461187310512024160482502525538218132470734458165229249192206083869508553354998848229363555990369875633980856569912674828164658864876775441703481017972429118339939943358290514466658255897947384476576580531688578771436891633592962839979238691119767052146165767196951054673106201124778043675726178386331150582028591938603032949213662336157971404406958288718760272123425304223607272086763903617922795954371333106651413340874873704075582627821120532844503384928684967722001673112581993918030348059435708703406405529578273401744124768565859548023885686584107862865477491326024449802415053046770410676299092325015305594576407540888249365493809860301716077777912876488811412959581282211675320036369871061292337521338888025910916000221202827696915077526793373613284729615329304944452387723827731569293527873811698199515356547484431821480033893056074825718518634721662449678948389636622978209506299128248426038448869823840185369772002880508614533246556387333857498239877320716223675286242559771822468088459875714611038807914233769187217276558813230706823600308828247861232444940493153738227764765213919576079655167927960195160938775369738526437352297211394194512670846862054841549629911812189991162653657848251252673116246226358473209223256787600421629160771976428680004332934665713041951903337005191733792251036521441800539535169568214268320437366099139352417190272183609716871066444485392301638391866341589215688875477810935838422948152800982417291355280267716576328212463412932486571367523424018723673625918885157863587958590663218437314876598732632058470072450171669489746212322381108682810680300451367512817453162722324649539344309024157580554359872175771259793738882040836234288650333541095820062100675554986966647496138371412778968214325647572174651421599292995114664247417697791094097956808836892752443041257244369487868054612030981903667113934827633032434848074888175542356636018239206604539666371192239313820877056593888311944628706767898111942309317191480773500826570209558065644352345668918133290352823624697962307682873642748703170367863214311697684317788613142804086287854147884365363906821248060783961739642662541465314039542782345394475275036824474773570937929295832914630155108699609943884329271801535725637755921292488135062316583788970183165786935952929449536013626016626279443547804453232475316083247796864221248239305508379750323726609261111063830367703952119042293726821185080422212235031837307292866788345533416041926566224281673105233736847494225284909551198067641893845993157585544903533623695121562365357378922533769290675523182415067888716289374053516479842165621465938998656256769000690388976091958866375502175103343207895800012349613644360498439883767086726799561811141911562936060795380827117701817067247871920006204097591726175651788963051937824603150495809927022339596733493168558219680649818447248447218263296558292078704887229328422725455161163618347728045062997172907111318018649373524445601670528430241363902827684165624767774389493376513095664825509965252514250870306448320009859822642295391368944606395670477812124008352500338724024727128773082423532989974032282158900885422714642179612468586195711805725405532695115208267487627628626994827536838641281238419006634837447708135445949366252899310262415060320971496297726284418330126824142273087066257155734725196308299170723438445913046438396482152205617422464672631227476018616753551290512300185191118741657848045588501683775117490826087757143811206363024381266869798945774610201019004328606360624440445811678828732500931719982622778723789968393212986517546448196016170349016531486046561381233104361586922823006616788661047113903984485139388801244947011488693704530090167301490711076404432203723719220279542792494235101746909247829597730876400078419772959764476425595704231208078901966622806976609582170252833223907021818641491437505620209039417422027027346557939093667596652911651417661377596542837206470088253721031536103061885423690099469221558378684437642998915610718191511796686467499680236423024756795888353531312291985217874989741089470186272756809416612418729103211998264537046869195068154047024887145346674020513320595654070854402421582512139917378685787014432325045970977367198632575808777969155135100517410789353370988026992774100894998845098143365619467200568558690139165892652489501257191330927470545295828321567529487207808513550187764458330168564462503715559930552392244894908410627251921546485666246509770371638987671223940269541642242989186389360781220864025289677201015059951742540450287864422883346214469138037986016215866406208302885561026079763366803361699286664142706092551321139060541083584896176713331215334866128629842502147541517789900984843932983094294110983420283111459468981909450630068488528754877222570358593706660302220716093125998803333622870910171335665000615730929077017302052071796072717471300389650764391818853582822714820172756954597498843309402364587832268317695387948454601311063037063427589783522786537176857379934694395227681136198862840945210953028198562405390728712352015300811011740654696494268440050529153696845983539955746817592558022179637144288282980968222722133240300297570133680352945929901586282693273065713046365811773417765591077713726453599757972289103548130338735373873072625853567238542974676152872995068041919906047508953436474524951258611710125279376416058291042728896572374638352626533358157569000636016950099167901667566042695910255366054975746412675014791798297160969595742568239674550219327370329891204066250740082976725936809653143332916738924685860857278742998612544570764374034005678337762746720521939674474213683975447955897972742454756567811042152945018822913367279543044394353037604263459627416286462505312097713574417127584960911145683350454527771541478726543947815993420516456086819399862816101440915455371081371671240887350147056643354778226139012150042791004394784939486090544944185178227010677151557039333976690054208828110073387495774096422432060916078684854285405581924286155714830244645401233981050597288360786424113194968219051858095826223362023973554774652765846681452146064811077998039525315538408109725054810694685363464536606020307510635851431573845309189926374608187260744123343943306641033663905804987947388632557231164622198726285559198384054274706658091508808030936470405958740998260504050717341564889977758670021345655781452321422714739227648485976318226274281671804959127388564282503290311341735689649706256671495280798944518276522111390457864272378844807137959967822353048234247343477912588703853401885949156441964039720083442400249318446010384907188188181660285376622328775376440340545138279651833924992292133562253031621586132016490522599185733392275390067481863181625927514511187851982592813526052461650149039899049666852957023004338440728259950599627653111791434832665908836309256176125448494141495990206295362483046403446401240008235454309932938699058995165316853421030241288245780869920374408834377663048896981925104355306298714986158290975412848718817304943999946770306891384969667769652305494568863332535136767616419993539017885946387932338002343034282840860326835395369694679340610874386362733930271415930151646478936347088221782734363768901981191332220311861644974606445085285341947851275714552911724009078207563398229660877174219949227024558776397694216089357963014789701182296986769101657150346193797558759988592738857250160535458165907599900642389428622447916170794848187029173063738381632085239537367969271460566505019329078633868461075434476459402433570393748633171406257227940419221611079601473363128334863487871747011868929707581333740397538219142315922276631995485566968033043769117134258706390885688791524117068285381354467468784655259347881231686850075100306795050206835135449172738257776167179047547314949256050108909165345094286362014199285766440019080350784487327527438752486991324535434613351756244434377550607105055885734589867323912077586950855127375752551694673261175535829219128780819147660108260334040621844075471625462895015690921277342642459597946121232900547746917086684407464343157726386176306006877844489021011568392170235967262694663279615948676577103033526718452795871223548376374725131415851152828783296013937796247510233565888557916935533615525623717161698139327069465681205776246107154316105467570394573504746034086186578814393624930382958021580588105494767745303599173962566863192377072705059917932567361548149096717812668254270559464671490054443976483227498786206603534382629087687212144065372878486868397685502728471178281911614299800757098645858370642842306719025310593761255987513786892940060532817982118904887172266834765091519300598950529743342257672252923437516591297231335759427668569815593051732838013405582469759760560121027463250950591867138506680626233732840434277918247248844929689644243718682308963347956125298601928233395786050920642814692610220439584602886065566106287875611565255333402397487078371470044355980804210238930881183952642634631573505936689704888072183290246519532468449464171635006242926209671175558744389729474771011538624613252308202642228663138066401126214530590773258844581137470270099613964450762857474494942037019247894983478070990407836596220932465390950713499742255558306833016065898220415936557928005152693315288501351342876631421551292753465630507989472640077334012846397725738908606405803438992753803484354315364874988895541209299323644146118543742086494588287647842195045161657901470737276601980542136022407550431236178862500515358467064069483416604311533532299009558118799684597376630069285027414154123951864479905340016043833047041100832775959206725325335914586696019333734862598248665321989669437609034285007455863598916773074214519057268442586852559594825174452501416165968917182955438146287669486618842450008439683853946408725535661050680940289723787211963609875425996647972545053546370373522230621066330994697293295316544034338407334040329019301638420822595905716218857541095760627882500453904516799377202939054290842231517677440628729398410331035361224877414713847119713751694338029619973092256698571128867421432907127585715233333207078473198172291190616913003601254790112571173081207580349037794577842628007070039380417474456347432951920372051465228584491631074661763547252777046708990900391629892092579958401903983346017577243271993621299556059476105204963922889972270313091916190797320165321691246679575710926738972485299620360259391554452425350553963159809447554005228396740994724683029622652933040410149691853609270519708223911391870119288133203933977879847846296017206600869778883463255011809954270262848122222650083614624506135123226126901070222334724534640956867411857459528144195578520584584677768800530212123096825477205320686444690977388555061099441503271455813991001222159716738299115788998396819524869442939260788347540341381456810147321741813149616115110456281070239054994334865751909993884469941410044932921282766733157080043923607877427879625476044597011718071969834539656638225613490981657049453603470717278961531671562093375946377453432872557452905711235772246599611713798924866896180122266241834503678777694511669642931208358486051954750362638192605189542358624183551071592550139322284827101642429541757951020694199390421111906244738564767141647191084861613787798603469572917638397560684010905565572020175128202488129958888841408332701923600220403074879251721768173183420314969013780039164576338152001759965703044396568411030630510333456194476822114755052201645165715140393689969063911576744121291142340020569067737142032473888200721272985912491949425698762681574060513629596472066137338941177363674555733974208889120221042704706919538910766950188291116072173235492087996857715737570720240799593603085525460007508247526293846413189304991098774268460985564161785306552375977781959010974519530038585775948588284905886099177821488281470959327858104042767919172297457654625890542726733143497530314277045340373676497471947806414076835492468844733964657533430279051450425002052971498090935936594696599660105442718167251047431161873797301060768455851920061102215546474578542899745375078205637655389237547637765194679929095349730453986743262310256349988589712572478995684324155581542606249252100744914484933906346566087059273078337308799352711178240595161256409354156767508053046256012062707144371044638491109853853941658689602307668026687727311170959422027941968284165348175768244718842682385156177554766064881326221119901055001623372004885410100926728335750025329839461086396489130021924651106934589384195053101278398229317388825915779506178741747783228708700682449174425447354871126664132393401139939873806329468548193267207087706419905662448016430353308510748628628503326418908859337811038733065055332561986252389843720657816799533912441423485291998972765314997612580803640304516940925154523090276508756190427022677954167804879847859342085393617061660536347437236045033778652561278649140406012655667832325400856736230591799722251634109309173979172769583756036741359327553684323405632714498536256135322505440780493187866625864396388238699411280463690878114760184899047534024027447223443876555799708788855400571301576917705625746138736775538891901069632678140944592979026825221791157722175610778875366780322135584011273028796682604275695650153294796128469720333983525985544422679051136468632950196511370309704326055643636509903020792214372216839171420043175515201237251180038273306448908278639381230304060346048655526393018503729840707850329634649235944421244564482271946403218847334664922970563318374817099821798045988897689677787388000409281813714180690722226784052531867951572387630701447606610058795471557459384407759705547221547091915247084224923727826298729325716844018948788974593204488252695197464502757156450840816418563970620131312880983401080062703448787819489438205438313830001037153120038885039736681992510521126836645631314734585239967267342984557692084883642488613235936162571044240726747812118915570383966077250515927650774729009062804686059769769632992470157764001603419238244530218921769724860559861307959027813800165315645634452594572376748186775576710852594853270855502571864447088317474047610161916054185428816044725825442698637143470505743976816853904983490978728877187197576877787843355980960014682504274728802524942852900866975491615201238192096588827262900057246874211647763235204510064751901567699479180910116350615422134821051801848067502273569611428779477054881281309087564757081330809207015304376734095554499250871512641191958393558049644321340953298508934101436550406965080375929508335170099787192386790078727108920232359568052735671935481084996183205627717249435256821730189994781778693171336673609502576263381038746261413837084223485852482037430814499280873851296865526596490531643162231006860359665895929281398266563343007826036207873904212719725657913540699279918837749026993547780915709560966171408799596892280472236815175466285347623876310540814454133216546911745340633382858579455430654359416453945144673056633230384664175857736878907130682656904761958500417783761826771259244451731384402518767754670704273174136013516530043875852253087444735392195828820973342458255366413806603645167083612883001568853449407419853718796283898826844389124713753285096425756862632545529480603103893199184289556237327192713190564367074116324649477274917075700071334531686235546209921582087528390551289576048632589869195525322405396698402360806561960224191331266141228828090755408950601451444728505078880021354544239223688469734090867048895062590708499815837047524332553370421533772215090308644111094372110165175433273482164058126447842187546926995637475002841695006658977529977306281929791398327249071241699480065393287008903233117898194409702483504864695227462030905560788611563549405008747171106997369800694822593304682052667761930628415667144249277566487261906072247579140592421976029413611474707127364453785767961570540224130943903612187666677236620175518847099934416180403073806596634797363212162648869890576964278082924494147896006603979253105919259365445855017131957434648447256692438158915134294975551673944175174239068821743129309072805853865959962535292493048056596148997337169032465832198299382284003376473782532392237998493909443295396520148984127119345734613631861811480090161954383935261378747804874303352039650806572487568798269399615679129849157656078151245558796646113729923016726151614186774208065194967573125485849173157077848297047934606676044471974286158913124109125024245753854139229233359644745782623581633219974457033333933329826250981307534704133533083458154015058730237988731028130834830576424019595595193289985362700445955859233834255812093981810066885480921942043333836158289900685341046658237423492931880700332328854837733685262035630195236830218131725187669346807844211691862150826261268265066512226728146349586128353534274067555671914623950304424839361264286684724539976087624570729993131898596423967328916296265523533826562862982121901725365887137867719594344462733575615451006412433102251243836445365630509112976684885524965866097678756654084346848266158879880879565494507740623645910176783634216835129797186805489728529922571694732450149486758067009470820673002564695089799046846001675187983875465170033007078185480272818777987057457871788858702482842256981134390661495498608064733829631359438802104040656299668128989930401859456263706692088710338873664798570282824230981631347173192888501425232377876583265804750845797271538706295164052482021293647986457115737696730715808975232034580765134657500404379740346048150794366916847349681349303289854004502072826530101798191960846171570421154007800072574845141191116037419102515533034727638456951157574734828986086300307404200909198375025407296064424713887699362211860561503918565154070720416787649257056145466461706043000184446015016476481510797257494914365114503783042105175273641509489671280327601892424858079968145889365284068086335066384144549714778477432241190116302991189644874017970734887959204934300325594995832435032728757946867819673648032159367122254688069681908100483180477774890493928442070318682420037043258885753593564879942965434388464111492699505335511573421600272274810863324284702475710011171570522768705264494651353422373368712614646204089031500770595600328437183873801030288454951738975279369411487371152458667950060334108261909811316028558285948513770384272056784042962457078829130992196615859065343646527815024696277398893538394134745585256454084775146298099010897900159966306233099520165227988585988498996718538887465114120444172189866396787278012556161818367306678693263091358071738185673720875785455527930565821885832159543824245810090505642706352025050535545146496233378477126343105393594661057271020348524037276681421473155086285881514360378161853668721197763456639395998432887359391977075489792925219505400353792231470831895026692105086066131430658100312500977557559490062510571513797756584961664896068676395886693711667937347954861669925857024644770542072170585417474490401431819058298380118560970997046843524206884008666600151186979727000810821468246313689485708186905838450557308995704987969548270674763793026956917067517457265019414611198826555137598142909424663198696932638235702307399769603872460104969615318235667210389200487538281021586255960582286892829946679844892360370195769701626401109457971904836351658432250339740660122660145847458074176098794611194605360498889198250829121224547945185755656819189584718721324827293755513368162830180384061003684223095712406599859892835559492082001186285767486986470392372381533642954748853652071669679727889885491252837268174872072454824311201303589538413178807566354826932271482208209011161673947112838814044738480067560463287574926727689199371124796307375412669028972221485014832473142785629784014952523325822565813940209709363732872756390634313059533584483222614740353989225888836972802753835654839409166714635254693967926183722955046690904273204791575864173059417734918125656378019381017672769859202496276029742917529052332327928257801298343992515245124893491202329223961632632208359065339114539794032619606336393802539754437294972528991168529796873246257991852494680776142344155574894856066545055305880129307088587612575450349245911042197854623207947990758912036181919972269531106597348069335399867758174367340235763467390680379402607472492349454640790294142504074316246537596023300480767143376765984846153570776687156421341315051121713401462578238611613472175558103815617286884823495022969699953627756585461665200067397382910999965078431603608825453265705704133515141112571894425202250965190140039529938336545520579144587866883061592943294888734100288247158805745981345766342261778338066628763624173958145100763267601918186155918211134413790945436906004397351038593484245481574688837411688058523695736891195581369303545210641307812002364399045614791407367099759004143616667015342358599612808288300610789794274456151138353509573653247568986631073311159068990605139317380512685151217840674387111863097627489821445722964480853067436008727922045339866751045181575483659114049340147509134849433253691473836869812414655688964829154039598921430658019396907078662976422350800373306538966942667465024146501742985971486172747746875300187158354627299160695237518281310173928802577713336672060898258933936416367464994124144878860313416186660093682821333007438151770688677131299558489272758920192277019170356724077885134268400636731442852017771267144663725062294977718898421079004542726597640154899185693732215440909107613007923730149048143930833890380596718583053705310415511924978665731744474182116326879103565673420058998291128132414057130117267969416898814834950604926705313723441222960368143366233340725200273894960812883886945796024439888770276417052501721424614306849080306874676412148904476125358389138308023313957323906835222861188293510575480223527185034810825613035449413501148821344785310723706628945723437076175748166739342395466406675217228380373818039979214337422159155848372749310689545587393494123501824303407162929196418189813430747263842266179121076361974189517235902987266057358587763001111861174986260074584854160881164619794529583229973251314174527186600558642231694171941201801838639096203001818135542249808981923246176719311056055186766005547255338980878558569014228703929197163918799389206946303486849001270524263442470594326909229810010417294917426632593259371487064406773854279087336711361684157677508562118938111072398081842550771968000621386044625396154480740424076562992646867761912419821636773821211933966453868777680685963296524362535116395728599208553893814414979858331949202170225143563030009278833986620668672576932798579422007870536648153224743785058391313103819243051206490789419500982899367231475413807288308965541880823405458208482257317400325227456979465699735582945222754068299688038712123546158731544445255523716855786765831569597690051543367297498627591689643412256260947327263786037555094449630293366362853910830126776780836315405856480327911239824339308128255468807774834025556055923209443104807644845198174852215523783562615283896718007721955730139317314245285460998546753144720821003613937977041234866329025029269146371540206364159747315537151177070290155056778693055075241237967571420119708487565873811674729754161090451610497415298358357367318476713403393510581346073222794547843229601691173740877947473996121316959450704265930331817554377705709131790757198262633796158354322743146198800835653124111121494935045220256758807811960814309787778957433862833890240185485007551894539032767643570123062704341591778190838906187787436838066517504988536042724226255644280466376388961269225774849890388499325494828962035317867332559367191761751253997085313135589194535063721835708346330541816510918649963715221527778064894418196944523075390788941781960721805080138193486332951202239010120507499831276649491804528772579327074038020652883601668536955456087648720507287584921404567184888664127432590391369588602808328431935826966834424226982480519606112926639327288042965985147530412888754974550579732399263036110627168755488763346338988118316564972489584109198842301211066669522604815305735907903461969968439642645135472408300534617644870257120062258308569363533767906753659752629965553262577361648170147879043293220081440222416979195958378280429068541467417493616436359087967944752016549775574896300713558739830479204436928388048467802198832539838396929855772541350633146829033657536713212808987456746581790916098379534461034501368588124976482676209399310467618389620557313080738397757757673999045779113094520484626127337802719178314076191145341145379999371729026452304307536232943885673196337403970989668584083525944312476649628504330443561172902315882145666544232993995243625762001707858971294893364108903408897342526469423918449894075498897721914498086353553129746531112879609538759861231673177501761654476269005599719642598443165249152543837477613317347108019625896273123021683719110137423350973998812779102579703936182750817900673287861902195561131252883315102805911719178397542534690935916240100047559670497630382726219537272592395243037620178452070486859953207799664632025244137784602063440318805150770863237746210453324756450605116024986888261638016251997702010112476474816976593988322696638141529097588920791304036311069892241700650858702907775335148279963844104932912494964367953368075283925309791375355920136810059812965255196511011711581494014421352610421780820474446853663224163425078775781474685268864238717986254699392879573948114334079320810381291858833086578313187917728325644566042788476211839200603186712514478256252452811776943707451493996078168418421646699234475843936069946043483562415599154585037749498907937769446346936538809551882481994452865603007295728431700153340708923765133544593574303363736871804228429565358237180398357382252779285984345515598750816168354828689311088361373448764433950474167431767883231465998906089294328771214406186630940726226917650127071037783536178186791157185799494410192821284687819303898300045080534341618766178862551055254552596568707735618377373451544196741618574735566966184688344775615351971832014175724523403419039608645829437584317398706477143954854978694698859862853662979129031964151311123816424819676785816545701145154249780998081581100426085360930322522937480128084032395736319805905849327405122289295169414438252158278046116580128367201023214713287316152009819557399031892959791669717135352187962087348001534209564120279101443294390713914761775093720075351454850080189281013396963072638666198467105298652184287535574758959104430881882312449561639877003449555031382109689797677030925746667303014533360842286546601711933678262305425698853028373650517764700183248110779858774414015811617311008594699232932202864822034338253230122382116331705643523394958287910928397480970257110238160281095881444645885085068567674300200093434752416752581924323784476680297174104727909049934508599581377714455778947163877374890891548753325418567835178134199376052499283837432614788016835147601130382016195482417304525608060207900252619772469550782896895515223649652403379073105132469100593882642864273677839259581776389060779724384312102270772296561794681964669569802159615952143481842603696912754139684666583956245921393772101260741717948828026068751844132489078255408540847440368199057886421393879077695426603882285845044807204362824855153483200903143611012318720416976187387672360957500186242062448795545951046556617483535873368860315989305104281427253363491351692854866628774488453008384559513031862663668680027731252855603039816991072386715217738209992694068082536557744327647473902092175490148570778774584210068032165835431441350423516218166953313594928836164145210569861033820826871254203416802871924270612845922174945788849068896447140614501738189964556621463437656069032597067225784822512089824725064106179139125287314569233239717497854869037916866081098170258546672396837465771946892643173979928656015102407721850761769537239607087563187799135003896669389299321626440704884511711999549224215052391023705310746211257109935533075188503941109416344197503158413845990113792364026680446306481298303868717291449274217915024297356638122838579821925844019333999313184132866979890153482322205577783193073044070491581967245293650108930037773462194141350181272364301436125187370136644929458028195296034970511596390673232391382339338672553600661182034100927957805289157894987265821342496783468374646592855550826881135112835976987390366016048101009708651769461707074496752621010098595639992688218423841246765711248149672400511361661414045557556673233550202535546134837356091194362806462960129825908664442504578548500970503305898740940258363939441041703307634352130636774200778844687391771613849701148172943816137415030090271852705449939763583116654584618882823025506258766146269386549997175313571794968099804384103817484991499536182184677984683190287478931111588645379625045896158577525652342262394303798972778630052857990672600231070401114385048447900953862392880055288509117336420542616570956872054381774031523159053846352686737246812271254421151714634083452236812618782140604312829716460086486256745881044227098007401437895023857175361658817636355781415721614206693315163234113839083735558347976680038041195626221339665123492337905938348131297386386845377633963599128632140273768022269204499298504939744331160680167909776785370339368855752579028213703682302902099353283284768853266763001390044830154498930483271666713107765961119521619800820600538740980583766134356395210462148457433838100724169677315260374752636500874937318387462988202986028000205115164079755357908489546621930616281509783927369572599568115946186972513451660137334628798371503131982336349062938033205077323553279934223980791061745409345133048706960954922555700164118964087764096856621708002030174291240718262789326858450712757309824034421858685093381791118400569914213665043786229654645454791683075453409141968472122575077640169337902692274458930090744294026951253383493792748648387646262059553854129748767621614627750632484343355884467581970747118466637586250154738513152069856157313806113592081819936859772697729255663162546078414274267141337070688982130370556671080585938595173523540378489835939259985776231573721142716144944426507334360092429778119397282901756986135293289686451362240964345194209120374413488985849653088801080738120182718685511305548355287101682313691403125330236291106767615513147907385872441929139410025060403289799083839394288723174419571719345609142094833343899748460196090594495036414076052587112263120852477667760823827421462773528605533842096930097616521894288210356599660690171893306358596885925193007056290698968346436639943355547181663616052677827232837127670838369580838850442763184635198063433046569758626308829343038973318978482290529108811039103093434075787039699161393132919460935186026845227274361335180315481704166183082367390921486564078014298812015724202382986375765449466492759725330115022863297745827868698059863694838418371709015810048238084163774551479181888293780250180063638737143696887402771200884263909123241247745465596179855004791165250290456583195870407552040893031449783392607707916526804078912397847520936149631421706128136954368018542847870818650250188273086829887682426814110745816088779269272032948719109516997094663284309048513209442473973078189903883456033131997743939327926202566936402524374582671250878911255270769095068586725104177202564564540284341174552335023095295060679387527032482377957821775562301501193344003134819184017093459247037312211936441352114270964432193586265159491172395656582653508060221580596667672980824656859801780420261540649317140878423386830060741171732080823006162258086495769563100147674980735164429696013158329299376772598152346799621313153346019266006080520403640791125141551448933954584751700455634384133718439595615855944176759062369393403188054379098141507303095545407702461217256942598472499774779600725635911792287490340535806565057592255784388715529790080674179498735158185402243232521858855563293530806585185862731297207966849167352619796648054734899805524470884422572970168286939944522989499822623558826068023916016060490694545586913241431301507561973415950615305036500966962131183270044845439016344461865416028876070327240628926917847650536874820412542232587555494070787390389608876921226688177648899022006542072303304717836374022374947857021338709559309827953218817697459350808677538202905463831483330778414143418713556618227522805401769358919459185310735130689758113835906002169214587866177209583537328632467430897142112990343706566412683874384000932988266415212934757357482662778167274990719796523906360213797188913681291104360132977671204140872080286196211324038495173062367451138971009620726582385142305398635747518426417085013767928120999952681600662331551790539170387320783571276371236810123283264917385609621252147215370122772267537349749441459469603814252482341080019519204476485294201954428719349387972376243585302055525100718860676607934042380423166352553144760442960134563881290220579324902180260447797887711972918829469261091009118616532820384680333455337241653536256750503489114424453793671540642284689354621582383627347795571477599289007521483797900296376931870094932444282731185008303935309770268911848595643062562737843486295168451631405306244599376483796549055280622852514190718203158393971268048086018151153624867454235690820593411569177145144004344240496550925954480395171884203459859838387477626045609226495868316019131199156185532825533303206261141964884899054902850285447840873556251729813089861448355517058925192643550454139381055499683526953952341210038434193072247315222863471821735077155889956572830262677404416064381874420676838792803650358363364624129416436257886777245713003967151271961874992864721486927435832639934695266408463454549769222628091947531360961547242127163804238487620449626351979142137539310444247413297078035493443890870834604616198764317197021712460432861071332971779808310566594001955100029551334648710328515613807476101725394604560489456343412436309789434045989893198711624291150296976849029007612594143913331646645611183991341174658349338268191347311273558428374404375446613622523793590387075268322572669204119510527059908960956596323847270715293899672927680059518089952163518449043821389939738109310483351635110294573035259992193258286816842089886764501311010488471480218262588384184757797909110541593615337617950470083709340358010895008674615522342476529991504616696821171416394962866658948042887979816562224196508732847297605840312435504633017742677345349035396394555789527949193021025776289349624799058312666596364995694788643153752554600829309012571509845156324493409633205011032159791328917366075706420232489481023899768411552534371973512182419566698233367007631399526335025445920145090185008359052288206925017250673525408257069853299845377712250244339388456286996891150191541287000819546242940235550926012757188587538420721830935371997566406221485939841809217448600416218826160570924777650217131055067971179799894358939013320624942677668355279042129700392421205969262654869585695161307960876257277450562596897010758007339988825631670339514337995224438183235807964210881506399717215382369989429045815558447209667379227323530308708265040539801246899050054250088042824393333766699731072557214506792122613822365661555586183294628799236262875979611983068756985576211421630918045402055948107682303287386580445280726947800862920649901149440511113971735400498575602335597558423060847632981832997231501448479891430526263938771715006843609215398006279536257438687978385876719987046163903209684794382641843473108942270948159805941955232191741417124063080858738933151319501357101106037845923988997947925688235946421459010564968829380333093039043535959771184544501156540495835426757917433928723630554811248254801261062211285234499277812985877088544134097935011701145767937061725397253078964622315052095132822618201072077540196877964817748367706836424632559446260269205646401205681204751356345157157124818040636862877476674604886852385816108577276887169366857967217886898051281076987311932606692303816092842913134257363833125238989077445265016960718922226868846649812205553674418394589988428712273022835414944007750142554666417268435538534859759542552700681484611481659024177260796088736185892211523941635076133353122495846154178212942772358833934666103120694675206094609880242527703803334722836590065265445063551535055907764383193079011540760892493348989172832512113056522270115840447232336814316481787012235544577440100270257795287140817431564019260196463060914678398891786355289296275510995711783743515388567765035041490731798933033336238317123360304790924050347981754814649362908362281135731035193166048592436963254552516134322304919055363460653950560068780569624100439159470409954869754376008710397918437678221556814199471903448713248324533528402416411590343140483193575394867594254319065364485868145313437517562764643435021952972198372175501625269374782689581360809504831161836578235756113939270502559009803310791321532627111189556791498835021764356597599640353427893364395671879241076179704538900454332036177782211648457613699593195804047231059361727582791772251908265363693545127490443620057327822387378170008611948300702933966952183741112582954330499126233063108474793721410060238121235232126530399996370796739653293573897674348070481716208550951529861915509971056666565678880860724104065467389473966995724285003724681739247983884968560826037293948696367588634844776039913248284979805250645784961139861635490602415317783028145578639331935291412889342285766509307649247152590827445277339283608650208279195957472100453971270172488923933804603831033106418941098628532356314975220597489910018338712591642530162065760744208045721849291785313457880614727765777957641700729510684774774709962374546406327568381771310553633594018332319342735653417062479447686635187245353266369497677606971360561872694519512380332582772351722086996677933193428958627136366952901988991263853132391157921566734273137472210289230746296896290682066902614891600082734050762973489626822849654970680513881842627917725790778747829415061653620997825939673006202768277198666230332361746302662150941874724448632559358222363539708218755250929508584441497117203584736296885093596933312708722571261084400579099008551368323579468686064122919434974909178060431443113452478783589443665038137930696257778880091522564441035571425227977390485135207680678669034201808249566057437675576749167230286398681557431756544917219500064226135816988352604805073184722389285326144892278048628196042003300833303158521929591175932579398091955184208586884787019648620036776711063866830890460595133753422004541364520506536205027971775875100445567826851327723445870685172141139674633751670017665625846549879652200113969457680030198360120089269668324674368293814764929539347709639090365643802629133413598701191232873737895005521579643228456798504231641788172141275564688234696771477708964832971112504851936724557729365483054360502513175131107784365957352572891439322274494679507041422826404165183186778705925592930793414047356076355518174262971108783959401823788550002388501924771626480700177876020674117688822896627789309019285124720790645219040384356057436192047341513739302366474900991570397711972957284602264548520641470794598658001592512342902215322500682735898996485117586552755771968518709455058532286256195705691041229880071037454730840562522397939769059753683127661979258214651969260071291562804080711558425641400465186752947672548956307580323893806304705357341862227579564498454399039129340402120748052680239519255660036294415137755895793656353933373555628584955913265140413540475469759824654858781096846137184575214334453342366582856494891068233269924948070364050325062617679601920405913816298554526862596531391770856016794591851282743211302336110947241623863665909148192827592236622761524924212417474793540400212202275541462508342767023942098554572673538881928224259654907133389555685894429270212338505243940846747668473564863756610232381828515375514198503112870153232321152203391072856181341915416434928884225953425058122215149880345713205727605829411704774033498493832196092228560624678600236722837450227753010928310899977762311506211987075844502698861857303481726021287192412642584635491025829291759940013737029928716991208028577761034617357675864479924887496382944632349071893598297107290672545768146756271211059926708154546700666286900935621115998887244341718295164688997772530030402624331774297153910522117361932806540581311438839775543316945582198052398077681127196046032734651537821522054511835663837502773302923071562773583531185173729312849928212697045895950596366838052172944896444622838714892049739636951746631708209994874344964446147082197575816640133112370492713833612095819037862681423659461860562514017175436164116975390381446867478492647706604536826734642459184796375364759144807253908003141044469590269977309247188585417499758668207257816176299399115598074995508173090427245111412241818140202172405487850034553264621605805199254041488989815039082157073884217131183874060502831339533394644696524716327193539542024350551144935595922492736695409174620602039224079208217252081728304338860036938707715220116559178925775956576788959622901921572657879141198474658574428367050707222673713796029921376916533118187398854069273082684885180328798129416053704776095264559436709897443909061818911490795914143435997136632409853155234503457327453853221394500318403932759549743446148944393591212935017749989977072738502133573639905783857598251777186779402603899297562308575273185268185346091738704311215676269173628639489925233846988423316913384739176517571545796749325127176428807642514663933882793301751393765895080234024087771934231383681235193070551163535158197453561371791369266705477047732261944665922142191049727887689891613965242236297858144306725201744708769785114908261043860090374756942692616443307089496389883004478098177536913431945841487435655162235488721640334963661999036911651985343663379186893974483723680858590939395735477384957147352493420133623285716658533302838566992755224391231411968654342075717946898222425329298013781852951807435686344160289347418978796134083730279099765724026537701377711799978358759840590417491153611101409487528301504034850129892270910743073222264958298048663781858204285797946776164797079740123237604621878429522571486607840096421201918336578380006955275909326018099680862073684319304468819929277553924349655344594893671694504764651409683189219276116950456141494342008758029622196127529370405276842315836641620857018540407506129946183867035631931712413886920095621282804842831334124070769215906530466776956769638487136561958101730433915872629738350370735385353919561695206426508814387040737109275647553193946155963625879443697087033088834740160151126941969897723118636048639509520455844608005169959985894376714886479375070250036994750044596040661675633192168877662479455107562924842707364304696684748202704104309174328133497842040632927797354119785251015403941586651806727815847853082014798072441454813057277975739534830117199742933543893329765311289574603771881236732429443837938990808133581596381903077587920178016645822781733732632357439316223366424706569159683750077628961813116744009526490731888663905029415417876189469389037169475234150250272975833727866949239525882177032650426273620977620141071643261942801618549451693557968870843242993484422645129706494587009475465194634192689913726842427213203502903545388871577416535069810954191265415605035136207942966541510696037663385446855629642351802240756354216929824684627421016626093309237255270971296816898817473474260246720670913011831349449657291365437910727447079563020242678922526271974029357695233126337894837223309725017489299092332929684493016884083454610488367317215766058590208058915719343334226040244576239549350260589892712978336089025679904571049436406829573713013258169124063860945850297878322214004958540306194515722475048597390534167647598053427269421523980685587628249389942207227252392885993840443730039308683458018604007900591385820216362793396300053863868545261268052005333606475756149433565556387415092519544725208465673769270801515310362128227037003320676882364793653612910422512967421210971555813039599706304193448446435003828591672809177951701062972337327140180494414280558124930447313845177598256656749979839500681442440333969849704320762723871336412439684643987644650625548637164967983237509807329652490237290397034887612937088429926785442422462889635256591218362822869593226618558780143877984255867302661538585028128557407037687928193821502312073198348566973912935135382869791661086516379167138061586861294716764440581697098224979364732118570885739703322941174432779254366500875234111623360130304946240900611947241434586306719283474241773089062298571842331059016498450727621339689302385446438568066769534970009140956560896059070383727281318151565057234477309280615754633314740420981296108043143789577191137019820331880269549996469684187224807510566261309843250291702540575882197289760329983357722423298497172112962760491936175696728111620533459262450463851916626931954309272448970615899234605353696861229602682550839988735433801499900106735886483719275709214331318388177865174472860796259396495949974230667507161066344936225861399342986446739305529850900858799264407553523700544530192509514858850864935439933309324663767125995121163807911476322191739058139778447348941757531564432780257558358876620583483419982017552142015643108423428919771757225071354731675230538349988033043492956788421139399449112102831532049036895043170741922180146299937761310468093315761510899034799150404725671949467964574350807656419157625776136249787612757900162086998751385442563704752954456439441205213727259008545202119886881496809081570278388216433210034591177601822781757680300190049565386211515443021599590092784249313455766478538700368891644869265912368290460834763957876333494223752436807223426862174256032932986441746673424795644583383702265334595102465463151905992016615700479886430796091383076816587054643161709824796421399933312345897628696778038781388799255964492477439464355205409724850805008370999515514113832218158892304923089805367271300139178517646637081094562267471348842392805279482320802487133596055784328529897894703007037340987928956281142162698519212603245842522312315301322150174975277229024666528291163851607931846982560090755770073843574698652245149317082982008478441191865532591421907387997561688297068041074028185076665974269868478204052389288384582391052743990875071070261807808067869949002716181530772139681397631461694462282058726592957408857651624315352502831198418000090375329961852020555885672071660653288953645960968824846358300788273960078903319638931980257400277496129357064237379271065327681102227921018335673730532291410943560121313677792777239515135188605443985892275021430581123832388325797045552292036962681733230524276168209256305175064660203013072096592163772671950545885686357317795762622001061110605809553672267046996871888271688963576362206906495026793007299052699166288198069492293030156295275135541518758540424908796911710806521998941799685417405131005499867852678480577063536620102785375147753050067850421450993641142358868984595724890207007618167250938221904504774747906079099838677927886360041803259194800871382503748211309572533669753435882763178425921701851668758976351752291141254605073741643121043880167812691742873809125250783023887523251825789971506955451907231861624036983703927815720375307637260632735293088942539713168760935852601215905044118058546615438561325139416524313183950009783776688321318049288532698792574576337023057903254436021886170068230016231421706145799649975155159764532411553360163605017822299745608084183373452844907348515396514163078886808380183217555495419518785481913145131153385053274279557684899321066394148103188849357541639011432770300790879407388025545527776379166632091028839770938296720899570710689279978268040683296447995415101470009739610650113745924477711519759269722919494020203686439272239618555157535825413023732683848482263357787943960011728077682452919585632511578854500512187802551294837817702368438494152967772698852837294068749958157030796920744566887591684808844002816429547785277791058798563834247189456454157226391699542564197365712679274057814373173543643570549592066089470936340991776667453361087718196882768364682422490440976962859592799691915950364624206620605280826750024565567693373212291693167585009258492581855547699430961620168758071497859894060580189133185450169915715455439537387768586401820098390591457916837448829825203453168183507698282521718955906564897026241599985063210120130642373018695163945863898856786972800227678088004248723654176495219261619643022186631625218389776559157436482134863706995554644956560413201931524718193762028358965751026314052628378841759785605604741670929655377373826070993164954069149452524467758100585186849604826334812198624612980763822299405990670090174498742221129935687911649925713124239710780197286179442370886344624776382526734726982844527904826646442564499321645386140022334118012897433340546988719536812632123957020568369198865591431241093947038175877893544358003761610799073962724048986154817603574876174088169236857270718032519445291391410806162288319227665036541109473546713883915944627789755569309829198913944413258314676365385389978864195323855888550669401105589772445615087525234416660051538451860615998871602419596746057716566378095714881404669671677469692858862703308525468474441643938426473262604166498884644524493033779289847822406621702184306495872644953811475292038587521347311812179337066232601848263763139752836308576526152885083575133994156990668398905181404915083915286580454472249074483823083506506058358497149873522509691361801514983389482890757556770675981552980174772252418294966119147062304697638655128520395743388673943559916894932119705857352013797135642847389948139259093032263984797839093602750413502281753860948116509630905170674443329933986502995889915932017053723871358092104625425732363795401009563353424133298853489535141937007907468670363211785919143702313146458379009681078703236865504175618702733540238948006362674656332222793077660336501614762672182045395601709198316846251761965952584293135421451471510313376316819853042531494318712398165755358254930044023040048641425312786309140383064320791227673211598660294349103166895902242371701139114890717390181414370616260716412542398826896337596580969831270218158910618815612720741033066599924865508212029904627163549363305974733807242571677992396678978235214253404527093079262981661050867790714487492402913468208759359245356391509809221290432892764132390796366538074097108732678672602378118123521898781624753050962705526684394976338615325911734014747198331730281545005915045694013975040740025575902011341576043228687185010439039855197534819457667138058213956998610814803363590765662255590092313561199241945611327849020233759833106865440254516095318546183206180926069356436838364618036599106692713140933680603585484137993716988804601772109683017746103268429361017277378216733554914988314539659217643391580690156426721797396450216129752718111403511109147727765678136361653397409997637172712947557873138521136721328478943605355810999174391126700499357557724416904299963914819691130157618803897925860441870743999104503173140958506324402460029990808227048759488995627453822417779568852195321713606010072682517874831463582323405256043436298901745763241055069093654038771348660745427761442358745651255596576364608136576262017877503603805735627640407473040440899602397046355449251479363353452352166228242565754302224182740428322774313372906037045232252893934638096537339317864362291587672591098780072632883161991299104335924651584122479169163489977125879520141809644259598537057135748983887460245325856487519066037996128869231205474493741913276330200696908021240935887723824021064144083843448501689235927355900371783215776958429102811886467595060909394175537294783802641046753207408650616646386037144554880001834829920547538866170299107668563536687306870132541504390289091257867585553944986055700425457550476784523829462195575854969914987605347473752105072466763018327313628598434283921759096249474022863082031278352724072280516930418782447480249035848861652783434056325066138562473815550007229530334814344973304308110127381514419310813972172223853020781001054308064636123800093888428922255041869650934369930734616870493469416905154121849897760582703966254981963684387319569557357219564710665476704110775337466279063321059452263362265584810233403283588958446663304199511872973420210709885926623275527560745136047482350251468733110293102860486378850666931453088647619233366692194932905510674522818056493964524925329899926578074910358760883136103640140092340676550398004961393138929014740333132405461770272868205089402959055091446191631830874569454565476063284676010839642072002360217052616597120264585486317511944242994245739328027273246077230557330963478547297347519429504331247103419058341582209151653142577743930315281896643339349107591521744873571778378365457220292346827334331737319037568986737097216033056285701834285592991336409981140881058421606324348356891253781327334549350080918366390908401300996731442170103808543784313674742525581183995859086240383674027703717827737007588787655689275159806087431302970641512192519992937848985792872606728032952107411623561304210926880368272926963231339571415150117195542820818647341221245135859185676872780309278094186434135374014917339544015263838464437472129655105876485579907587527516323773762166346125595773883811925268018334417136703950323319587882710340244016130969560115321058361106096815457818451516395538337490199862193882950469632838357232507491689421827711738764804447519466628484523103054272332311494255629921632602368761846035814090270306464651749428494151315380831013389195090160383699372966074663085310263974146448613053786251449817488002130989016084409197617976250697818622854263886503328320876134757539628993279045622281573772012735716573122271770437143630121157026703068838027181876330397031890990603329034590110115442438683254096895616320323928632117345615656382968207747265350592392462308078858657970765981025422281506465067206072210758343823520929355990997163225801575751916614108121579278885903910217219428795675908997612489264447866997376830787227161317192357024368655860756362692944159248876264037923220467043484388044410849729171456446291141543487864256678229803049623207102577105708495402099726837877976318929026335383649496457361517666257123301836168856147711693453936571415521168700897695277199907066629781136174429801852335129920816922038039508794356690010177061155397730980775832633922579144628378771390215226378197260705995193071283248290608721092290621370162907571767646423644492367381050488849147416650059779992875771019408154647351509394868119043188706198099444262503906053803284352932712187995981202768047968024078139503902067144576920197960011675667741892066403892642092039749630677771046012570074459081030388868871200854337022486172550840510744632787778643840605885436064482674334767187936100949399206407814612302378367351923652364932739736246140813866497616640611465431776551305595873527152271798214833881535414878459398079473616372542702392153611794102683932532012354201827058446258283096695892054485375927781540743942546943818514221036072560047760523646547903203596122189991154068990158125640578496705766427178833795357501522959383343876631256208631405256451229547925090774876174938228598762131571685619265491836397598986701578385655952272802467924032863261506708304168429855340330141127226331652898853738942479198613869468693929891378459427526715843330817053797553802453037613388697071360777175985337413334453175964275900251558075961088662452645635833131413825078185110341388023106927384131153812078856240742817643596543468034474812933479591294805561220756447011129554178485390146277762586247111088010127435857136315176960757137184867449224813425448849729283082106703653389591496847694292097479729410022706281993420083611905289769748023845174197059526480544290304543526808979683209078391464426746861733210550038735959062289727988302648231592966091994526032474051260483357632437376897986421811750173546662931788192413279316808464524070609162226055323012847055920446606525581436922006822634873739834480558526978512504133733747899817933644665587470213123592546725926419848755490587334861587113498133582321525895437407467680594643027275964938855537512366475610924342222614532468045219479582154314519529420326462547033552450523387513638184262966260815293402636423746135660615674790457311150182480417256490704276753954593914106262099350029731434934337567138622007562106708032260031548166492703603807532818309554681601033207643973083073790351939408773466907780535531264835849095946901731286188750515890612599318980972593524146054594296165391962896295319574341105347986648654267440768095421425183334092851744108039768325607082702211555484168720600633271804691171775335489457855046923856594605859802536213788787361761490894338884698610442132034065329479121473101386726723604976378824686157856891772526356753981091959959645854583204257951889395680783427825488007743380380436270250967330272190901071138930625315560848920968230615309009856765843163863593939352436743440097600929928144141309132682600409243683877790569086921233410967409443328063677819417481547237442882515675593647326071666546231084059135437562985592123901186570037707993338421445015198487738094067888982417097408737230772723332743754612274403579996237289994716003465624426176938422157241078938225685921616442323777914970614068331553174786028739818300800076961373744409043743047543230835234079524680863126061944839165711778901223458328992311204999199349913967423030229635875185887083910560111757712299709642098547265178613534465660919255946560577881765882285819962871700152903833091397037352237418019139964616453769866726874549078988316450199553652489608885301263454417688470615871579589737561924657240748503552669167237396989252068909873193284624693282517356564467544257907963967330682357538143259299668508082200689206771116193947950821891147103520301990366018909518507897520541762833290794005892195531324313250631948616201033461458948593905515135336555812017498884493200386428850834158543060017014287807140550664977347550966720851564706691528857175394172897106627140481645020152507630326917232946794437657013870958082949862112677810316499901371302707352362128977066872575968655740011317278360088880805228255596218846917720111173881484744620682778162237035104178655662107510786974867163436682916830801815738444070797592704569471822162892262924338998298788326763959885329026623325670019654145814917648638466846280817400164304479707900824390625907382805303801920182048398365111249552078135266212902857792870815291955681603982685332744905920729528063996651030633658729603651688691185108219615253699555949889041755210866490487254684312605899962009225363417347060364871368139811522762536640628618041505121943513098433664807949615300649165818225852846240280216559916375292936525245641884999187001216164341819945423640361746083967541309798224332994427784218249179442020716041649113045796972558982319059440127948734655915875318980688560055194430912030308905630992926146253273237924114883543864347079179695138065493654640933831264347670773514240619008116611300130150471073793598317042720579034970725516029390055159426425412416453685000041718759921987891947296219030346131337147484218985885827991927754355565616433170021591525279753107164212429667575644384166830102108144315945902033596348013179898783105964111572424014882191835981642321304029460260400618954370916938648001019933510328089937072915462795525144979779833161969122426786029330841577537851317209025418424538877174026728986351177546825847041140748407851472922738484327550743983963559759408862026937676592071979610086014379718609791210092951132064356017101679452824109046393449593739985579922169131814673720635347285032019800656417199344054357077335143992025375906348692520927947925793275845807679980806581036358889496290647001449361270253251084026752850343523519998434247197864960769757557499782764529730774182509193517432864548914826088510520964196693513977401836933839197903205085572250155482524589172014386063182639372756027157588307673734629477323312815199030410471138474097625934082758377506865573093139014846127995213298850714596222657765058449045375780740578663207670238604251715157779857804079285374218792899559576693696961854592005796180323270778040521524450382504915173284381791159170302727386666333523242823712272921058971847766153965979108168743370002873615944181653596195155668589343232403927142938516418010767298396702180750222457812430839929303677853785271512753799389539610213904306839443170462334393948326930706160035615480823708578993276402886014022301319828400622662225098092086469989168727202946930553553143840453028949061556385908719761388234002988272470208885340480345104736496524292062371737038730109365325985081429890946435108078611636382606899720562201418977478667441033363531082380853743197677670846038624037927975384345924066773390670905304188464994260550667474307178602227324711114630938442245921788373224269183423837648741821175713237481020431228279521473212294708362925911720990547511933662184470053877387713319799620499680832501052748233119269014468773419337975282434451484491713278353491537716578971174632861572430955131980133925248529916280631853450529764575306324754139727168869079330826072697649924374317413201531566508878567826959481982373469223211069231788933885124805124628302418461759773369301426093877796537460885857982234893309630212413292939504491674407934405989519756493546656567588577233922004990639961147937536495779522447656924141093314119621325773686302367175250307770636536494565798718191438448976917354402607457188584001758162688399988505983192738574057674154436691564330097877586144354474150325108437628466144761076392996628578887028235979890604423708671631773144246032651144120066480310963335459740883876171765570877524942439091323194958774963442820142693959639971582018295365025359699673099704500004272101796594983456986004939243129352829335792493464694615349383155425357561075249902373446849921878990058089509692008433036108834726496861108893904122266805755928134262120850140970834928537865627173708520533103155547530150583865641500198236029730505605872548241862288677395209067416046046534377506875785127739472007662464798642394897740687682758991066809741094460758511712515486919989748305847265009199069034303853845200379739290364603071521699435531366685473696234220756553472127350532658862426047683277443692537449301872351175418920348260792147829580847356236450809920202946603994378294911157750720471186292763161688728558643701354097037553696103850881534345757869728776711674256255041727331080578018444453849105507767710232892285471833863212899024474942841770986232809641107330448481974133287092541538502844960220569080843810764422574974671991417325838300389588588913185924398509981922545999468550875913660816860929929777823036410016946504590987572427282405335888471890448060842608636614780672838339624336033580593271036514735271414615610991204509073035799089198237388338816792058073455104823781749167930730384472791739865289605966604218015212090014498860491184443968969890170435554942694569828029150156054776695150697611766554295551276705647014209952468811425564747741672792664322016068424356933860120879040625325856952442902300076091543647976856614161744781758140126985680666505975163735300403756226662202099042039526334167390619413331033010594984245255844144389200462788381255477160062759179625204527591084426874456258922729498729017053217401779124098394239435288876219514160383822589766594579082593001842688248803374080500512805713510593450840744037059302928839665028195812341779623201179610538162712056562442803963252698281332263780935781630989820791095595957096917113853652918643187944130412699289051775417626364196837786722676101336978649895655500853395731984687454859615080440913300900665302732712870522350476167828458035514622740414047336370084686268473041380915893352503606971976593839424772865693866115438654886310915110031042507960294255302693852694282616338979506199774793079369576452289220316102765601585900223820094379678969568451592134413486290497218030740727189409367255177797484824780304645660103261889353958975526001163868152161587163070573619845239549225141174903081306690810102312829500100546812809720134300004337768784307651017764957439610168534221992408382066479604955916982395758071607391649526457522882933931700675928546377231877401305872424276468863288265295045373947891647448280700798606485077949657620345732235139142410040783404098991698400863514357786007563884162106744082120228975761466469452930581081385563885079135496550792967665987334789222784912687797707795348804819522700873614965462699882510789915506978836101139364999142307999043305970482555631677490430566773529068489420721952762950994263816082946343003366935757340617380650902494629794476867460653854760068634208085758507329412255771837364375330942596489693477582209339163800965617374501860908761625297132599865435456710705824812426629027693972668386261429153441491374831781526658639594984651703426207740571751340551558946625145339487509785742884868496401647122242168702179485723501380730503359287612504408558147443873382644936444615933816716233823123048848474817910828062756984243578822299454582921946355876926663837099324255305561913585609865816831746856047181026068019502399035115579437142401192750176578391517533028596289170614781046973506896277918957078890434566204170460434511865653327957356445420933381478786823952081226131997086932418960230518559235303405408130013130134097279749148112775874189771861121339066731847520960228925266744497566121338337055267143958137801472372218284841011145864814294719889627478444085129781096314135882141233788725019564828687384923769385208310312684481587730166921555523439199984316299355732648748393243819497281289191959390480587664499311412238655012302005571725850512524316944948186476707255111540382292932345959032783225532897840744108719604016452006166698627468237271667578694077620491420268300421065949460340106645863029274876817819107087564685748381371100584188771682297394204630862802237340849535415330574378716553946544331004645133542197049272339181828477260542833366671575257714703824381117713452395677215181479498328884078340210985718286236373534539623612891437043037427700384155109351881175940948856227735178658198451208809838132610268957338920416698522369902501756175141282056416854390153508994168555858914357638879132062344443109983812176655985754154729448177848078312005059504430192549472299187943599231074050120119122579413690282970130795616427945048790141270010118634888877078875284270013298189921775460503161034293537082989814889027124620711777361315715856232845611986506805282396905282631705254891985127617043019102005996386800141429850252415887249781066841963329830024721049468040168933768565045257333781400806110873690033536933633250639055112118355674037083206856888570449566429621165034149878629366748382258866917707490451513690387995842165633576311270901046208663058863985313627769718358035961218231575222537270501079112172554361092946690316804422993968051579481107958129163009818198408142884824943528002743747062224493540200308457809462270193790235521426577249261622307980545162858234342689272638590667278136497540427416133130951816216629355856112367789688644524535060229316841873695413570004699372369269429011206733637111166164248810930223461982987111434370369540616274817955087848148202269423488431042872485591934549522351988165562073933936462951569534774375154064570008876106395341774472843093798046447346492332390098713217787227243653064055312490750050752802077816171206947516568306204351734651908077494581081382037331664859634159549552992793806157372732676139872227259078167266110077466622571329160132528609063578690238272015452161488153694420932394320190270667033837011064592196726471801559638750719544981739906116917883915694228961311921593312698350307997698274158495138262112593089844434837891638419956210575811978244154422085917857067901662019425680454490384349023039825974513827245980735723878531844949828186491150291202136200704781058850935064774971915210665049570522379842675371436476129277548697110946068667793761337836913929482883231531026699429226109278726636738235260535521678433087892788629793624146578617864361929776502649960984955813826747094656137450145231103768511451727621881001430184097911713756267567843469008284630217142286857960215126168669334723667511271941862045827656769970030443821627883499948775761000708691351376628762511542229787630094993845323635862988104232947868771796001725215824896916488399344514647752548652093742493723937219685542612774152565345737790690718867620387346503552226605911053525730928152388992102666388262044850918339211813413212643563586705703657922144555049371552201329619614446810628847727991264484935562717548348328617369283101302056502369060450726367108126646112742844566361284987485694701654928034875645181392240902290804654060414911865516590224635506291747451971694129570488251361028956259014399582820859156316489330411113037276215782005039200577511911302133377013325403828829813964343470298007618736291117352487188891052408826287968606193561120804222934476917147991245681203894780963155262891095872965561928327416602838934238884209097856134923517128950122689486074194489108455437848185646818360413304748445574765969879640823493605622333943430491081843988368188935372787201563766867783993650611947728572575873499223200061613928273236479355497926412116158119861604275937354192602910345528492578971979979016635945661193944284046632289239427092114035038969102634462324975951832323319196931286610309973974264834487623292138842504167525801999092853012207442407674658296678803353040803947007477057116706577757273104461750639978003287551818469010640272199129209413930733037222681771401255426177552291633573431013761131544724781044800880268053745254999496408664975687177924861084435911019408470885490243633465767120612166479750347352397846627088520291653855655210336331430703370506306360770383696995000770830574430124274332383656630593536659198211788305540631516556791872572270757805911137303302448638783142008091574974016327888476123957824065723640600949470714502917908412167846034699287882594645880794532761166036933880248875347834779872574166559225760927213512712427260196995048964738924753376107392060117150925282540477665447000789398802194503817409745729321000212057938520363424543034792376337669684414078852982908080744076340713015265203730598956210958585797034625436147673090731244006263991301528592118893768657784915995882922279821684478789593503952242776951449072894344923467262299788976765550562438751565639442216859737607420557154308663757029325110547982158997868910311484484575127075154802929324187556645227877710133073228312312478612412965669024755504516046461951354176508539449468005499562630229610117746639590145874463064438152634248119067969730409535763142764273763910570786674007901714387271347037617903128518320706989557091783923841553438678735128582409398768694589878112443775257943716880144827866680781295684986299622546143143825795917929144182261726385326890972751869819656721936725438002286005530988243321249881124133081301936616771866189030388782460633811068731641706322991450534702550730146049628759676217408724046299119464934898784543326987033650703766005846147844625837588644114886444771124751930666887498735155692143544251332882329874674654767220402820204732931275138182694934761604167844958392448524467192461312103959862522100386940878740826012943236477022044481215676201615767950638647178811743319172981962390799233316218067681115712115622283104448980319669553563404498751686744633780203613892564649532555031965054264340861417902890087444751404758561815935995325253707551919546476818077458637411851897298847035872110161957944660052573128147432568716599182439007984800146708379085724954984006741441003491186175733693401989873596896872086356496961487860448146732620137962839659909549156218870783642815364564056167132357266544464109162444312256527606097623385500594951084706011462010309467641252460292273489405384603154759025382840063330426131855537808059526857566795793506310662487805054207645753530753857311204349632137110555589636127464768373673678573747143981028646474833315351586725332921439467502977768468408688577071525109718638900485623403578233339792825283781011322254819452365969784746484380323284384275063613635186003741096754365816675877825252939481743435677890040532122661796207722609676884316102629399514822803726898156293405764385467797124839344617095506060026287056415200034626275180942785470231559010819663640755936994629034721867069859033840361751414409875906114258446584758541124717374264823284302634454984606148997558181722304015926485650593284217490674520834193173374181195584523490777239216941170702405261844073959090676292448644635879294771865864664227386426335794964137235625581339186505298421147704394737358179593676923328017954302001004825461584558852966893879933469514837723971168935692370723799984956379809756137760691033592220357602266297313101121864204769509769673510097733590418806762717311355646628884706452869881529213615594692007843337837125915557459036009665899529740363322232775723220400215749676494230411645919737568691023800000616813171713059236855789724459431762681916706177607187825376118459617318482269241366953517505599977140908273615125585339928550569395513227780236158571022223837347030983092655684742349882159849954151958990242752483565869288277981052983621589623903350398140315196800700418228346836193710057207953361594337084956885130744999115215770805716048455599762371673122995206736100399359785144354396672064146244030253816955589049798619853370517458337129103274006933289293062665394315617627636511705852751891251408054803604556398856381058131633319700125543784852315003548912556734899101121421647623432529974977741611853517662477671403979630742258225935085145107235240323291074822977860293597338191474378563461120329599052521013580303235141270748624435843070336162316255849129035171179725705952102434609361824007928532312913749574898744804928728575261399039196469552926341833656128217321395477109185817448160395800892416327186022966118799125967007684376592627010025168656803025182888669288690267104339508251753723108903399673989732113056110478381900460124855296391441859548877392260775502027694622446604813350731240406849815023404421471970262984771627451971648525806165493023550163480202632065526557185801900696788204060575610713388675579120640281186380682332321966413715018180180181227480827344542309597614895797089964988439194090892925755843190864141223799024319446389782361835371253736229231699940990171290680220433290123965239461651859979416188262861732992272132057100633858917840903048525580209517945319813812189197669745387806674815020225072919447250640102816015291567784981497758893119234844350244159100320384051321198989387483799743396851363056327392521428711315748374788194814228852680982907394860105494499026795687628732085830898359225943215988016604092655309355858995656521794341423904018581800968513436022674804327810258736388694540700048188845734460778428326038116486236353513503098249833285102325069793124507258868966680916980283879403729631704065294780802999593943811982040771729437151033047091675456904608777366197886650129364263167866258195027636422649094068754225873872445748600884751637213678101565224496012902994063264132442974854911952097321616744221074338897878103637174238024231831910841902866336391608360252161484663487977497798862805868961790676150414028118910840229783132613543111186834559313252790165134415208968028911742075233865017313768635839565686232296881192199212537162402757062250489461322286850804874877707977341991291507642550875964661080544534476667832834673453858444148936515266873889021548505336425867868344042175875310025676645746514877534379208351573621721078677061271071524741373891677329426741853207143068885320677648845795563913892995961198402921441319623290809866637457982639283735107958314845465824895394250299398371724800105766295003393839207858117770157968618530607428870391732334093989524186303909404396396674094702975108133633221538340378482739752738946199067800536515489791254799003665825348938226545693096516029336363612069513714348465686837724375185474105908569737206153338505640951897921266213476858750822972052361102413386476663319109832400816950118487311214059050224909141281243551965351875285789748242350505114053006465094352205805844082912905642760548796767210061904205775871299218210589788919335391411164855790001227489841703690792013389986854427673488619667942780615477860023048843151169815839127867089103150727173382260528520990927900915479209618301370215873802024176231835639173409113182591611143267718483440289029066978900454403333636832538990706192697138733348745101783029199766353740231421838187488060452740704587878922970232490386418876031997626427177336004528495886194574315941001632078518099377634008927435428042161037140099412844037579671782394597303388074421122568041376586897875728299263012688271399334862428069949462766534065212432482775499354135032425134958036230294072438281921258106944912945393631921139332279789811373440710630789743349464841339472056062507784237350150633151660467954084445600502265302332059060040590412031598620054731735827716803702891773462390679769797608470448057330972779786056701575088702719605498734074899825962566631047654557722426583038980007612096584819573747760810255793222725258819052553975673861694477832572564902091552074088181553260054484034552681001467103599312466925020560024739973945074868157505950428810767799585233244635888676543407780189143688329010599086945058426587184434878465329863455040608042587755044990176574399652348470504969413997904016595190076168585865912430563795492017585430924431056890266407609055620328960388993520737451737515798999444748127699471327169118020298535812879515702397304860352429276563445392760174065633655686739600949934661559994313138771787102957301481347174549316998341831325723657893699443900094660333815455106632545816605623795273899822780577039352725789765089579858329116519025186477030754120354528449927134165602084232378961684443632441901622174094641161067539069318595256444670387417050355132049729076168212932817507153078675868844277411825826773506566644157763169824411998039354686435791964282084370378058247298725283210227664346722510821055678333718114612082248403448180861688513098978272449485589471176183739633867837215713144147367407979130986930876431359551165360112000477508245899844692119487129955962020101157667226197533276942724336291395732785747592856992773469624780624686745935820579261740489041181489424083277622893954927567927972206720217440257152804423412724240070823982173022792121907691687312458399304329070608759363807937843617005828872616236379609831426569255082584741094298239725390701669118385934833485466777391760368210679863054750027576294074348058753754393868509616841355231780661045308612186386490447176481384542216624980999869305937982094557906427561327264953726669423463960072699974329906594948847084305647019020611101369853716297015675561786720859968471237363005015068164602358551137454039047710519363477961656075084636244219266999474908819185766602040161291740697924628781088968233139266937838530301982977342698780650963815893019830036081178990981671272453263065233693579951472116359279056132027910063004960492818771568310196475974845200294979292082219261686020564925594413205258799059710573730080098912822538890817638944843185010367147229086910099204781691123897206434800251170061310412274662553899161383762608025579872435352701127528946182780896129670320347044106149587672771589971921242204046313535797312337556408113291976657676300081177734492525341141931353678865098674109142965367744586239747195910042454263389783176664488779087015300330668559696714964336104276156664408198265685807864224026155389140204785766612377266249682614896015453566299198231711182694070364063878249943852140069819682489952896490529256469055152644069059626489616638116727593834849308430763006384545458345004141835274712082425377404382269735084356979907337897076407169349674210879821849004833449902501867985475794620616512134266248970120688744439481618910137587311478764075237593209441726332390461919035343203911382842012370752964446323037246939894902693735457226422428056257411122543233849389761338120197847164328871317953071134116334190366103508237200707223027837278150824280476478410113832368459629326359557258828047539019398869875104550561183655120383357029745407553231236686475396922397510629013772882298407838115751551239401857879968819479361031729175584839528948525553975406499705702167960508289103639375793360206044410490472415547302956104881809003796881679720093396064375323911805486589644158334183260499868358659162557766266983046997628668077658743580559781490379345384113392177881481263661792655079737959155948024068613030418498869971053332806035461437398224428349210401158370354983414849368289061481466608748972768511616203096438800117324676537726515680887971334942415880363153371594807485984794925208667093243973147339025425116757934314809777375415013033414948994161849430471314690946559601474200685047421437548942517476886831451074546178091264967930658517633637246691600261493320063039509563226228716342827617241828740266925574532576214736247955486472441602177035536244735658326283122787695394973278658108984907668529644529367764935686805259065168317099866345923315367592544041957568428071201224749002641486702722822537791522039790677071157734409986257580426282381179925208769668892767360890045836872725536898210658721845349889562823247443776929761274450677182701885335004630616947805372949858417484676713461850179196455062894248871460794924177357008060152766669915559029714761986891868662646943029898835659410936600663406932352535556600227840042540007780838506405828821779047560161797607176462434322351652265332395156183575425206961031622832448497189508984434232955875377351042136044898643580347637204059018802785733304978261867828613548184416319401754879294606220592036391584115632232313342414769841744650716706422143430612700898955179696790750721077361992172456386969823977613503660383756871936320671727018592716512891212756491534609584161741459177850590041496888890145430675597372634467660132321037884198221043786980442710261015041441179960373908464607177419155784855003717889657076294652470157440033516688944055058972849667414760189393235761911819159285017583936752081919280256718271901600263263834598117734520119098807218520426939371893596560658784863792116336136994172324842301637901317949172210639499181041024202746010717812433188446562419320425340448252168025969966498407673070134595253619827346788065170665154718264548498827768317075389563445407409323268286539855316125672237557737818027702787757410243461629584539598061465283918278522293981763206908329466643423368303283315903130251364912526491954905543107856454622661175584673853430704322752983882500451466432686403236281298968952360365214532742841167744926222444957863633388357855283818038762049482643433469865756792648144255889528828387900143473110817733203069274857689151200410237313951007481515992874364617515798835003912915726571399623655262077071642218468144869868291455953232308422570760598822330789900268841753293029939012563139344683053636271151171740463430666301290701466313701920255756960070476672188211305053775477374349501788782101671019174850674228714894589730786998210000160206722987430988657662211310276178162352927527896503860490142723409619616236196011217431076411521663425215590009331750192839876875945137895333815807594595291446196548170286636825214322047144599758291650597738480381886787912315766022229253766741907717871076142700221385986752176238692213067074670843946789585687899242018394127639255233428669236143346731172424113351074732606392153393807328632390216439655927500986338854396849044451392535171246334195164724166326414648254842597429769658230655396299482733796486398569115660350256619321452236745057146876635843507286383879971101334409623681599557064147828060939975166577810240095491012681606775512552320113925696506708984844508008599054515194562663608142854393486048505806025190532364812986731724123645249627540246278664505353977838945677364838884830760823215031562954538406011926182081237619278969412051733519435415553614813865615116649793997483645754187822213277284938839556694474092655394365442998715268492408167805872575959841070272857837078252102410442089306927704678663491329431360809372636272531469524001287530907677751397504901087082071850530323608268812880278318537360322184599931737206381580899120336709905568211673420487012531702525268012399009695996744237667194146856606121308122163802990348760550151645092910978354059081220486131590831413861421685440874032244947465097119313594873640190001494692994526783201632731038366040748471601549591551132623189431513948758181670364633930350861595303027388940395053103725070185830429500993909350733136397735809735348558986442322195183363600825708517821846341026880384666070806300305554935824046455863224272029096522616320356581482787751174771040379672947840452706214708787479805058594963737736065832559821704244400215220812217090071535410802667339120118504286432223880120908092877135592147004887342961103219206857193372647433977489857684837211558890776249613827071572530836382520669582233194668153213594906121488465682700828638273098384267498508988341923478730693882955102428782042775811990369353569926861905119650411983626432585482657111587930083735322122303012913870387394470936778940319326610716385508182149737228593945597032191107278894388653793352426897915760935534584684017774656241903209033927993715492050570919750572825655062808401524579572599722169074535961920742861633204276458394937664788465521923313413748277610619908769666944495677384394250751483405453898695443969669719778963331095296978936184305270070130535903679465844956792535671037721847668884125090344319261192773263446192731798167713368444154862916926324660791773777969700274835674832050131633269114041084993033696268844984787093020283767815852777472653790029672907720656677472844512020072250944264070199213913167642971268793277154335983738788733605951174974057007125813894765593862760536289227786162832746361683705973227294230452879998097459225180527540229582411149929554936201534025787959061788448644800149708226618181924460435238413157927231193536807346768648104448043632496616535401993693213486393197376183556592134082265617760762859947219296123109981022215987440390513369704051125894490427116022754372344279998689398073979691565614560446082564508452783217321327705567329012054621988450631407419913327095389105693128980443871868084336080261393798761864251550186500804550827980272851897397284020626798062408959435234555752863882178453940501576480934564351011156561453281300016296276031399813005275298275886007223088508571980043063143879670358317085929292208292785618009323969522412405120349809183134337283100845989528790819671183020340055739927034309472481012146911467213284907823596275311005474598652867800602581266769692893388510024588970072387641207835848749797719053949231733407650756817037058105702815564092545926195378140178342632908848046434239413681555979796178090138860976350986399197502358171436411670951435994930883743533817227310914302836596989158762291456968968228799551515148778848057670865477335917898657111849414157628068316580052829870535639501630366070132808135748738346218221926348773081840514820897392795708723757633498115688732033361739837608227764333233088670724079797444735738584381180813497024128339904516727324226234383055486582145645719583811797365070488051132025956859711988269277281501534806674889615449383670615783663446236054655445612845507579502982074817803242600603779982664388003481916145371019230300131410929929939609191483628489348848063979660158049124049925675258399562450456646448204105834480074849006418049997461770458910438322164656884066148791665749734391502159925810210518880541272091648386986492288938609959364965225758235820243941933629454621611865997487480410035358256004326778290491213110190794435548586729113548323245246825397594025239379082889042409452411533176934797618940513062172503661540703857846908752721365607808155318444251857661444192830702906175732030599619588165030298441547974115474598487872664345307703852246507271919419582355764847466110949411898401745428227173345797421611415461105231783335306118156220144665474940259736515354125465520187097721578361524239488264863046422799854488376815215568546742668137094335429942930041400184872485688220086591439393785487332906774333990798545979200655569930492387644064184959754394746606329266236924071289973867514588398978112377809438510312580762231357731853656940284634257701360456116225438593261436815544003394176525415706832410583792218925802329933708769857714148569678306523027649389406457667428298404445745123576709627895615804247978687346088199719567097575171211465319320136308509277703572904042582805957102663235453648767913393737669447825216056114474321200594138293143093797050046901490734554532980700956602451625326777033092590073399590582527780045930805640094939011915324021623597786790596565591829769435828961046896755177634649249204299916461637060060461486162076348380858279817241590002780188999174582217191052904451432028632630084706345147112379734064969895767788246239727857472496710849083305338514916979655765006451362483755622579411080692026798180305163885766630828762066282367741958708755051920330391256472243034912850917576136576179235006308037282118299237207993024512937505403431940986092125051513757000735984391025841771860894114223497787827784051765651889248266980702324835154253135128808289221879224967767850409352522555475991875423825551896661565874606106059365192519367362912379680446946716489861968428028574405914419363502614425188745230695594442121784811266614164688763220531833095968435046904924053748322354648565857835504621937401334242945603849913290051423266381978757327569549989220590789176419739638667202007691871054228265679606087616648720229615954348498016637588223395400389314124815332123736242696836963088486877161313849876153622379968009584635123292644035147021569197568577489975794784170110481678094015606679560073421843686679888291040285065637141142496689289489728829475497755620261165183352103967599041869139750258975252649520342393434964709354996905072924836839685623082989808000188188775284836334385052288423069905161837605092031631147377304565930976266951621958157172249830586072070243660024377850354557125192336098890575125447013354234754686427964746704148846933159781166949935000065618563787968404238097250812141328476092330336661621541985830076134158200066062265990410729309961994933589664616389701982547563913448286759271684316401178827562892741967702434103376777565813115374433677921655118297147953539622040625024073045426567501456182137385996934821923580973987871755987759550039718911619195610592304153801507289737768025044572986567211832826081084237737055329725257742850556975345286279062667678214018546950660663280613639655327253358299905916773161620984450760937024926104838612176069105669000200723195021117830452757768897896254180224137724713241834733870682320275179325708274668322868539005534310739282852325588215012588346575783171073881269440167356918549802434303625739857268678466543069001652177517846932113004205225259197411090285232125568453963171283069633564747708886021776624217146702020612262791881724775620693706871089346967608198076869138104851069451861397720933712479635860200729661837927403684222376852579782991631757964946313432753446308467504037271865419322299629851810192300894138622519870748840950167679349711464320119305712307798958421548541466220005882875640501324358935897974793084361761638534365799606674957309177506169414821811724719366712312241205159592531281647799198344494197224217788570591467361311929395088079129074134822853988336576108045523134852565658974170278982239604939137650928512144018731654447943260465831879331015627300759686461712313067322486134429534014114945080689562280773845436649693728731308520425118407568746288223497064395457445487550007347536133053568913386340489678769152130354576156293778878951060713246153290060286584654032532147352573769267367149506501314741174566004690258796829918854762594942715426754971678817887821943315767956656995706281425900049368215351167045541875443384769727334849345597726447808724890944083247278864911995497706075280258063117074126789104932487265056767600908122599171964301096223855575638998989656787598757946874995092229135068643196151047620851862970991772033000655935201018194415268330694397145338390914456465229795809231114494290869574391234558325631042119847195838182133046783421375587904124868182183277635552496346751003863792647803269697771630473121970584592024706577012920123484220325795807888758154215048318924758743030686242280376853066121362415648545793733379309348663540975414009547160988521120229115564900628436384165558440341670083301042964091989629434982561689626290884231373151783932726571203896531934906527135947090472672220948419181624344321730627285612565173594896339971914006321415483696587601452246062536191109663463593375419572975476520647501763210910533051387317727159973388530515235896815991717613789816928638507305178643417249677804484586878412517571607757304076241182890993314072687399068026194497533847649769904992455936563376027313420854754272327390462609848068095978963556049228446680451906827004585723728949541675677109841671985136851935770446288940691200312833648329426689116197004629674059017584000652204191294055915863580760793067436058210920227086168077616100480180992767327850816832232461454638007843743578561622978040921875973031387651875200506103174698654265971457032168670885120750641545123373345005149531142196812366303404748808381124488289600188602141903806283917192253561269042296214561879785692114403647253100563124895873410971432795509343491746821428032194569090425013741215882799633031695814817391946311217768236861310915634157074993336236995210397993732932227096191369060963134480391553896587036450566263914912738037052799764019682709747261892404048567164992031839775701539238162012784918641145557595473511646484846068840177786339079255351308752831633909222180874214233239821422483596579928645055225387911950017867063936699075630344140412947119068045450655079973157938758657556426860813063064577730361808158402941278539925287294774019841464799155277630189923094374704119379578983881982564054202950926376267833267187281988838645500860805959892766224315565534632242667117230552611910373208050559907213033972542075752732422778708473142385883165787782317706686757488209563704903188110368514156744995318068380801399125951553427656960120702946032410979949982651431877481730463288281725055901528496790026705523123451470421824182651141092502643698951892666850124812512211550975289668380800025350325243688001838127720120600034018548933612923823121056429232433224321654348569491181021981387635650569769425686452930059999272327937122565601734194767721788826409367341210750697807024277134132206295114165823931005238554669578100108084306277276588851644870296708358332618202898597189173051509826687412013970524542956444689770514627301660018272619895997053665305627200976254300049844446883193997627790476423704157444139223672204947034127359455535976483489986323374575256034467543959084827050851439529539649167714388662339406461498171474180611725936034941146460534213960847337260031577263242716798170987124513198164176772973404106173211411618026097090951915503757602702716551360714634205812094926943969499735249494976656375365064235872624319367163297285028496030275630842799884688819733429420299754000221812660829420885897061731522815163613505093811287542371400964150934286328182191569567577621860951722365895350515403777513553481604830555527462570233239433209649540526807761240131585285492110542466312535218050018466606539910956725623241458799061624204402727476034725442963574042766860195918933360296470409836690231366564874920041071091894814556436716255602062757111096528353308898596040242124119787259539742469507427497095027795063580101465239979199964063614007069554397406749250328846071737529085904376906887358240563407749741758030310227264704485999684082246821411402587183206946462647185102763656035385225606673477041070978115615946875913254869594171498224624966457697324677936770385912747951786264799503119327113894390166476572670801239391048002500849921999094816469168607365122414865244747560269943290921251999812609670234090620525402464916262447988342635205593094545909638910456057076095914870642985261422495592124074913556829514516971570970806045929954015442549293922862475299138141912287833007532171955006967020999780243583528809269645875982184460865594388312648753091381254018422995521612362602298131880674871157409738293170995493489232003573982762550439729777477654951978845097212798830489436808004893997194944900646339349033491043094626600255427698759515994886846937215750517275101879632993845856352944213430766652770732066019213452924152789280179823399838162705788696926284742632671105832741745632951934184640245843860531273849558682026136777059783181055193552304695527278465316367884205255715789885345028046114379659651330754111022835150150774909447661075933888882053147792997921040154116394271680676965859384106983506272399987395290081030976517072733846012743723976581835389398917714235054786538715406767412216373653652271055678483109507965525841074111792655334224172755330248113824370767364464934975920260278259780838144605390200774111847721273710645607776273699474689718750793757856735236937083670046793312926793177938212543963824713296093939775508186338772811585488127601629569406737549543763435661868087950434364833888608780681944955340809658721379179527618614769197879716763182525112004670991048068994814172350241599857411267897980188479079615781935551830936467615869483394878766933375679968188553511800727502399583963772341259315144745885662433721831661094951152025906532731635083703475490292322384951143871862318231700183854550508054231847773730926619042245106484035697579933117038025614248107503683245041183789765397144209345465401383834475859037517753958291197984557501419637144477092658303574760491768126340828399312907339588809443905639708662679003255682803494272106682736376667651840105530423068534251980193875516450295639083079184099797654618683195963987999011586467494076765695800473942326863227008243454180596541588062416708338122627950405159825860669346875315922289421716950183436896041832035033563158923524284675128023020743561457698121189833972386958561891666907950208777309026301033828878736436490907855704105458844038848305429648729381450498659592333331321676202966835258931092683764733844671950054600206709515082065844838831866037395642107910629611544844282437949103254462940765580832481066094592691965288106601398500144887139175313530153301330297570546611456575190374228931894114435980052637834672639822209236919426604234299414199451707019145885181262554636526847205877813362536349737023963140518369609494601958855193585878938460785380346033234916337617523805241524481586649404350757876105417158065941711804545713329457256369729679578841645452250125675991243930244683668295756638588959737654544281621656905549711487631800737653010070087454747154680511403580154245567279211199102067360992014026517583206438786351902869578835092529112399986412092524764629707532906454238065125766009867965388441411045406821642299123849300191050896164840141535913803537288089251179875410608376128385304112403382351010026799309668791577222258294264784260518236491779133006372510856662331709370568983432344481018306340315015649651764918805001969799985650486584420297321314707311888829855289984045461721673881708023736179939099604029202103622222478875618135235237031635252573220211713413414749494303278656135620144622071069604479493047080141306459989509508646816080250245445136178855052843979751104835050666435204776481343790152841458401657742954927322796185429974155338395564302689364819338202867382937094116709303540487161846938200399595774383200013313140388829814229725958412753398231038708939338955745120114119832591058655078854205643557298199803520316533716931751461284214207698212437458414122316024907810502064682482012563655043236315881733114028438944745131174576132307186639433537546447829804243384683149393181844018800918681463006123984058212324774155575360563517714905884945735029607901770253329851813877867494203763828055113181409375284001809536079897093980223534569730165684884493604419794370280780594122504063413224534758165410778591016594581329915045550914240758800674902785604490765929874932913081462716790293414799789022820472437765534859076083132760810953303438358719239357914245746385028212679404556830721106665329917194929813922123764056559714908132651842812997422792553781041465668247013877310151270281735784976213393139917980502209235405457749306895990582441102725151375838800735032597601659887306980175445394229083750412497485801202939129588832884971205303136193820381427116781386115198171217732767825032980779130931878861094393931438599177529787528920794333339245220564525199718757654098955820511382954725451171092208134163175270469453326261267310266149078021913724066490671417734830630711453379668425653158813350562394197465630255796502225863905279179781277240278796280137320213039042340937656116406265071161779468601259565056626681774358213963208523235750194520215020809334224251345085388876574483011604449140791738957805337607122329830215838092013785589532416161625391889070890416134753706607159454652620760760311563386730264443828699890923601698728363233707109564369675893593282942439010417248980056336596272883948029972675588181200443052939180922025172570211031982296243111141749843426543762976872850125355979237837995772651067212051711081596630258605267981803643316879951464320288720912700151494105635019573660373661514266705222649731762264589467785412874526821347565878414152445294045367551999289050236564752948907315688883449832204285556821246984700023011648213917368711416933288001150106402741869361149692175115096689565077213676573822485476921470061325073892190855177764383723437750331377048003626811700152637462546180159269562653503707838200542714533588609512108223984115844397238644073743278314206896329780160435037794228525997579399327567231069300646413924318112992706749072051024311913746923176663354719554224316029732274298541990295410531670363888786630769499423052325004490364480431416487342452360418617596313966940118781128812637202350101272561208688942750380165026859929817807656084615790541848370041397397999456986780196831761691923822063798219414860270115568312048000222339573964288426428722984135543321941544644983980070001369572507968805980007419783420878120949245101310640143532433029544436932222162784495272937663172894983918737797678435808913422109237242496737298994646226295654101308570528717323182308275651401736941002624477925394260746146637940100919148262500732749099071676556422950982286271779953107511243380059166424281052040803544269840424834205510108769851170232044717628296425198577848549956551198161278404167232506496156046395924360590002996245140897451525116911799689581098319401684464732475074758745419440406545471872061509126313748058365554475829017899288491249680224439894429938693820752895136420467543203067866439843885401250443664863300167086806093923441155160104201183795726633159873291742860451383659018810962065028072564708532394436492676531963200242210094673503576214331147578166661568269585167040382122102877318905202832729208667119680021503468658022927275134168063146582075051294718399608808260486581600288035316612470190964273721096197965503521708753339942712355472035083424018909586799939522417381082874149360621513458037833509021106253922453254685859475184747189321739708645711443784218420459032271584903864713151105108475142452637572598589937337738763768209312875062926882147355164845987308036168290061752368693235834029608309013923987440248441993085633285240606281527940880732259584958916623191205998730899376066599997591843021041955626196898147263683818233779197142560738247121912768063347374201129737650848792918642365587463775234510468508595481678299639625863968086657593073337933809156984405637062275945242096388054715500178413459579791462225499049362136293752491819169452009660125998916070286364142834983263077743075562152053187688797991699341019725207749976217931586075692380260101776188871109807038530154526894997367039712970718143772364144741175167947896689376773772625936040420678652802742342836699837236576287000395168682001267574251163426267164958649885091864022634102391769138267854811207126296741008107655558251843490753379275041017050767074107393505432670072398936736551034391387805148400277430090034865235912565554542453354041167375576673764869009163927106073977177566271603078812069094931820208494571997598599280925282871788994135956522469072717856933910550992495807075450021401128127434914184040516150207529420350091437645213618147353710264523867209227916584268540546996436331018778265452401538054751134742978035456216736764637023472254314104000468784125081085492349040491123910340642180270543071521802364183628161875756182501231454226871190271848467393150917260808381662968690445871885749891389080194857473410855630382821289960804636693628376097967976978968018280072430856433923861963611315975678530756225038824294631757161225106703360806147522348485294911854037739673221705383553760833117615518192390916340741026148795884837018511413106301311345509051001621822698692052118145233922840304652670565500794133831724117509099977295146111814213774911560063798282909020438629582255398910789096427445459080179396654771267388253956716177307121356159598028590211020370851311101814105446695498503396640518147057925558225197950701360231000927794466271129425444722073738734358474551174442065544144315777313653921259371419709489888288203754565318401884138540640736770938460150309609479912559686383972399487113663293640801971155376652739121321167560926692641596232993221816529981276718233588076349728299337312520391039816863653096579398823788809699772501662637499310308205911584389987532063543674295695149119611128795564960627431202215272631018948046108031273290583215243149717638478537953500923670128943771080992290316619832696727172762614753148637158579867532893394929101636316578062689366526614015181964447140250926397606587733645756489133950677913903038437059044859981194926854454619413239648615206833422075282861251979306725760336495779224198378342675343961394187494230577474499651142500436052791079791714535748796726327754827635761474411493490694761853509204031535535073270840270932247344465424183214989882196970568767945651811117984299531199205787219967689235880217952726383772392805958247728860130060950434601055820082855717456388769181933627752132718240834240735806721551839390913692488522789509073357222306636980199043871417639565125871103113417163531418611661087926264195656321874271587631161407399010790902055709409945964640951056067038072594503196891975413228602338924232222268100442837414377093635008843821812795406136270266974063421904691117066624541600669184275193036243604444217632598025851209874453506726080688192804331928295505253106168754455721160016447657887357701160714124570680995960806171640143584904778761204842895830741013113405011696442443983810321811933059016648664213002100358170284827667513824699148669902761728075993417907577690606022816376013202037941923122256168743217604715866122147745406597057507274551012567621626558182996294147147934688066284189352101236597455695313416489493005557811321761391288594024333526054174067591453360470040470095722649488151004375064947221144998816986241263813933218761061084100000245406330747072947020336769161733136466874811761536975071335973074579176603577340364758123304366921938361339008822824963921026977539861563898394851965362246340641371344101580951561202956156319291904207663372359771817727667862650445944197570799138840623878382529760918742029401448496581310384315872208352214627384322644455747009568574421693369378359234525169888061150458772484644887402992747632047166113748160693566761203178449550227695854383832391916024297824767568331650403943128700936665905566308195396840677431117789745576244875622916961661117135554454659734837445573032263401914982165922812076421581634965557617216282888297826916552412988504879060716646436315642495792722314007058657579977274060411209747749382379037294035528384971781121010762397916676333657363665553611971827442300857510949668084638231218542125818645677765528120066249588870879646270446048756948592576107118238939665607516276678113918839458407914299507890006716408604907457310264828376975469226383472008842515976983333400758477316192083570977231960069904079826021850101809244705461192344875952339097469475450750245432132812892341351044423233313236890160382481884763863475217846386813258145094692557822757848030152740072465849465226883333452224973115125903488252003138247115606344596018991654976554187007656562082549677316011744665528931940979082743524924569149244045362937758070467694279168977890887801008380922327033950253873948935636731983427196802352072326039665668764977640670169875515730945212071199751684003929101798746630974554073732649570953649255719445319967959670192523907430836701704233677340346620581971463388229818169273603548918725498901099110033909748892316324578610481175241996238977684470295169213617177307064699068266484002192799912694794579097602811288168502622200873143049530950156094115464402117211593711052475334384503954998829040323305455815598907962583544533310622021559113356281584650393824114866153804000834136938159488525254915940952735762174065290269094873551393372099367230112661503741491020312457990132396514423577894618116234126879046206559033065603256282438298727246949451405761915019981090954122457560419954474332365485299486758976617204979986328923536843080035360658905606224012445613728184613957223779687626612148015550753154934444152013703243010505250269372905967570494001981268181427683364093815072615922946271687071970522728096285156333259540495329203475430287661807200185343049050253578685444142914865781414756313410272387275781038924686596767045240792000716579060537195839206484783978634722336744417147175484583871499114645740982511685607149305352746420998989445843095979028091592094717812051862916899855567554064081102573863358258388834216533377723971392811904382844782018409343230660043918635656691271354501638379534701147134036520819230591491098024271864544992628675681695679592540343492792492402185451640473964099387296942816845541188487009543996778422270620166936807978067109494326026386048680512295302876849774436008493855400628700640145138023314922509392102868878888405347938429937114150177051180452039953735148484410116195573502348836272387816609103540130571549456665698107529399404836441732795360251829136612046919417375462398699518190380050776914530926536502877782284669249182047407206499007831927558578898662298923750373205785159054195269032909627051759635325242790715022007334660076638119393082418773938846437470782873435579940941963550373565922480106004482380972084625464090330525633755081392961320986763746146138637184028064622666914223894101993374601169473721273404536158096970532920309405203511413543878273320559716032535140003734431900055080046924334607463129130841997574663624064914624564158360720002108614069865119045387142771632663685850110333229788254134624099659481118944962407324658413202042866440330459771428237206444839368099973919986858655708841595682800058117943733443866933160245127059525679346841648206776660790357530298873113827266480645850256496798041837923837180780537172202407875351437663831126551228468669321323479222635674712293534498373266598665884059012342274778244383262564539645516776570407528585203304406576978744061127992750626810636285409424693416517308773547598615928747737368201104323494266169267303380611849258814581775252899472671170294184632794629378523503524458172719986240577888548274701473323207987621594808195461283978560117951141900270315459743625203010105538754648937011069534068396211381407206971139432719456778232333910476688789582069965418090883064280299643617868934598425408235682681150297887458314519590192993183975971263658017717909544988639116026916255964488409843774164197351721654805307537160083197045648823408773089422602467598956365763035567510460008280961925785524099019391124869987183520125529388669630161751261935944045909053605382953404793968301943502838407591116671226220022253730583072620287047239687472688615607467413532884722130041031611025126072970557995048969456631673164326329805245294982461507242237087582987070499760100201963160636036906085399231350243288786486564373613225511703145917820367592900374344449066011884040906589036400942164293867162901853895433333149957272914472418347288930849884687615380479127771292092095457847827132095516245512666539321986488175535347419660092911894554241197670313159162062092539015163361904190732659855735621907091842004239192206183848955789067108820992779680108460919638803830551124398176768420233518403348980724685899477398430913482015154946204491414129208876269462737713860151503527238972970667479875823846933319932896653503724105839318421638245444785852332789997869740497932014172049317055847062985196786008316860178469332347203913724884563592971886097867995090566777720814048666410294509499591092446642392222485250401607979031117605063752788134978702921215160262733304294703360924455580314427178106946689483445721662495064221983378606738128028380427655618905791513930631562735511042921718544299195518653425073026316469308729432333445016726006741969159124370244903340307955110164289489763092798945025051635900423161374316565492187505551231078776519167950081675828248115187100595516717321811505567046775598076913925133437957122192039440765290345841449019506465069585074802219830023138497312628912755154553627894735210638567430326183026687610722054321327843471275973552287097860933027891615327442169122336049812516668055244939428695369981712385338932288587722642071387799990825880726564979863882340344938562328948761017085648255348260002362473346327531663745384459770882512410123415702170174666218907013183979169635058089303621342725511636453432768532307866614355403391392173661264845238721980863235877674621691328139614716732098620201777268986647803847925421172933490554151991840148885179350067444416790855435952498947998155241531140478854866207415851232029774887619642804893072956566305836344178896267364887219305180572773905430813249696440270909045457703295022660744647511267437777499190669502291471430627526982643865068161708310628420631866403371538427695359751769681426520168502807823084232790544792253030209440470283357415426211288895533208386844598877232071886529797987800747632909247495266392847603058813789143359036454553564941860850121393763083201594586919985531185913480930074036072237107186699760314820227866852344826156444449642181721376363378817233289696162702533253896080014190694548108561406569384545269319188161415085296043546611454165395139707526188433515534897071134836322554232672977551573398012132078637047886413666445840608056185104540905537025498801516713968696025036527176293997461150216229693899239237461777760311419785871987804333102525026162495164376542351605636110830264403109378239300960609435503844984958105615328787935372959594721663177199959404845188264063460185271600178605458351362076376495705120454184785056114283619846513612204192114190241540677832379915621284381114760006284533067838012436212727695417230231437693640318744431166817833196120598995733700691639322116870749357074057256961935672095248257527899134700144725940213629105688286236856024036781111600386118342475568967715001584192892765814140710525919854830587878426802134168041241065905470083626202894290242426547146169641519690358929323929724637849453547482236365812826370366200615297937570443107801736675558104898119443364735150499053715586666407683793606978009986605059776293860861738764701459571819256112821128785101152682800626159739178780772846408131958905159359339200017838360534574621797611807264942125571274840786520221004094520330818883704851417205779456607446673337627275391168183349010482771213303408345785908797728963057512165150046360118211230742784985867538765748450152987585437006686896787654028859626540442523232916859740865252998710606883473635391906277864780222074416756433204802493688965504352565462567920919730825705095502263474024605211039012643627016266893162490100112986602450346506001667778973282149978367759630819519140575295417184975513109797532708260641679851884454067531966369996686261851808192338544594130242453132234271652496270956263305690413255993873313640180582483805892124799510020158962634851845627678666083724439943205419615854586601347263898839300693735175354042155207635047053615352303199406002750102169728903323030735978631217563250691865581293512107796414662566329842594002667299887966699933860456440795160621054201035291910084902667348388157884957453156805821974336589562574420189390130370202227800813797284133881112093564776252005000507451423735631514075180215197539876310498973949416205452203985155742775758300614572208819147234299811424999487280697496336969679228791671246270145124822928555441882620064233152321049698809358986014320910746118595722381486493488661174768307442589136380387618939825318552526177273983279092439075014163939944587671366349733270437989077420213322986910491043820533123185086812614751628474750029473367178329511107204837738167243583931348906616527918304635183204157553588219492447636290686739979167304850059980107403596621108876817565092003150499582169670793506541369901494611598222720215301828450940501169784369684868893917357809728687875774320914805340906772559449123293786685469313627570984900990760769023289102609346045905171025910080858961489606678080545198044774299320705889085315504196876910701686286953561587293995644222706015386803412105779511291832549138614907071946845212634815074181816750787976075733895886249762309076058244461775536527163763637163356931440201447399897022950639245976030718287450623821608449656701468495530570052273089156683856819500015803369133513074230515171873999219025437975863452230897501411602608793089283439007536165398511224500122668853943833036122320219382143811622180797269563516732598895585078936631768388411745549982490008400605405380677157759696942087758268708596615271403010832386385470422190805325194289630331366570174146138199307353577985071557017871080633563871161749597825900537200559639829795837036602876611020814016415966979039578850676012770423151168927353172757456257021267157428577824011671616393401247919465154335719416916379602326760619166368394460464523284448631572819410241482299264491197053803431491192036685485548136778509022561524689091972421671161903326815296886322878708687539427120097837415149401617665228422452626529225080148417667201690798378923586064601190878625179864616037308181413744232311642642087012721882346952229153299478945589662024413387996504132425820285586270798454145464236712192247060914605962302920117174032407433930453435870833167964077790247652225916653366340218212182969990053568886318022660283881152997923104822886154568507467067065096817737760070318754195505640546975532698993112890614475759805718132787086495490243246740281997761051308947122323093881853529085638052892546873213347192270851584791963015804242113860260312142841141985900214768452616791467823090599724826497219299954174485854889961748034630009076325713486614775991134032033922986207357472261323798076505032783914190416920986768812018155332841551371629206049155427344966750339625761065007878269744823361674040561581806922387741665501210385756413493335727614039980748096499630004482021950884074888593850931588964800774232332680647791957831814269086070246001578760731406782134692876876782051021494095102993498280108436548661935072290482844753849717877408140956234531867283018736370677777772470062358206802777343519362089501973211844074764617725214133487908046580041083450947851156465698356656647516991846233254916130105553139267153696272055760262484894600583158692686331020895968239168096655738413203630067249767397670148523310462777564240020604114179193954921912629705472232363793457064834606440549471978799649178021711542417754354732543102891257277519318240504421628841046233403990577375913436146611741347123028893494413075854957851768020537454847928448501928736389821311059853652942844624302889812574912059878440183752782584285180736535360089359533947157759171659699768711694739423781984108169524486519037281250983961475622620109659828424565610966431441766527279071722891196203377017406965045946677034294714659944477003226163881198034479811945133640069993023219889448557531231607502153971834999157185035465128705326554824262360570833160464319875892820255387702906186433990992525875396632055785309833202342966792797603595870422489556069240112335345590630463123626676524316819871199736665567997675126151543122301396333792948750426159709736274247171616587871756828925250850020848613025972095612806050706768881802015910973131967142786215879876890505356111354189989005600474015563268746371333306451060289309321434609832532760088074093820692633226928957072581127300489146784365985205540777167045889849469219760740443430348302307691807205104574192990035469516055722056165011278644825962975216674928460369499406727311011402960914566312481344995448693484887943851111794812505834932681470367253230032114315602369833523887197448615238809127212697301466985192355175612396694724034631115432162377279171285090188017005006951209105013234154375667317676816031006686676804217343769021132961520722194945203335337840865983940984244211355133367358502029633520892973755661347141542804691843703511272143987859008147790802766924835952963577850870933313741107575289325587443702004609587998927499639295356912840800894727111596702651837921864131226881773913637912227377038691261409313245104251753054420223145998891891912342878971180756818094122847458680213925422236484229680149488498360338639142441117524194680370051403539551274988538893032376655619068690303305753191163310921140422371925507434966180612090738585490192141957131796722915886595638422172198239288466353538350149253228245328431663746641839257742289014769945562687507916697445173465557029395157463149998475211959156806422910914531390032911759765589638977472922873842652923558714189120765504566649440010928455959540587458741131127223342512692038509073555873419403811667254986422927440225501138345181261464257899818073204896201892027077250950981807970120410113786138649716153083928516673947804218395546176103541043691461662893827427026440677487563012188341001613330368865063244131166626406178321795875166102077803053268331052138188758810704592161573055312104896323564651950077808260491520333594576922395246243057817961147423786542155463097253997183016669587959760101686300960480188985756379786528532074294478271942456201199456618884487884408462770221729511723361280933279747657547345773530458225017202219190646638525214099345902169632555286857412121195749834908556575137313569181552160360493992367502188671265702982073701874689017223436408719243466945029589487394939956606340085742436314261424473460414777875840918074605269505874053840222842997553280921527833282488026471097798734091787748958568658435076496305915228771838782669361878639748120072932125321969088882371133886581894375882406813947362381111744696473532001141545448020733189615533900169150209087653185197052078289227810696052044994583309422560392630047083516731028041005354990580710782411724017185566907897831899542519577157604344265861584773701325298395459966946340484970966331966426324334127867080488239801756992379850385211912554055139456916379510524383584499043386366314592793132478987651955266064302971666654686525699602158802407462192141609448567929507199315708389662222102290161326431191066058923088719625030521835059971003656150877604533822684887799678449282292940252647544663445294890910017022279226790177384914674032882039730575220463330676852401237925854355743121492915703046205693720168496249755312170085129027176370815928521475402362126811106604743842347932096537037369887968112938175961813973219552261925556117860592427685171654706639078669811356011498116129387365803698390813435653291969751226950511813304371831548210565972056913171792971210321196240381805581102541783924486107486079014615258736702472278470423050760096245189319931842553729274922793099527635199637285986831303299945992739068764900574614410786480230256635715809519800200145998035352521877154167656690443603497324859253414722610116843028832305714569439699606625022322585946938852249981821516042307736250282081813652480944348403173523041526598064960595216078633223725446404958636002717823187665493382823130300904973474367101005607353946053484631971699262768698150813597599353429564182068252148917863389964996996104390150578658314941353934794512984572731854911415471482397823324709314996573388842252406145222061001514476136406169038430343891854245575767302356277245930101319323340660973301998173450740629771659905021342781731323156772047076797555404027610351045361929925233435475439575693818452733603664655788066789123248129936442264527585608921405685402899592307363075855151367455008195293920183483392363478180505402311719049186267134467933771544684265045913098976880379449551341691781685473780023729761346885673045405841381522833046244183228740982826553166971959994551274187159202338355047814044382851923226267674352139171832186095541821475417102124170154007124266300741777552683453871391416215031524214404462824323119224506342250370261359622286249356912827172025296678915313425862369489308035058639480470593963272045580750201158246050861270983540265161481209045739665128829946628474476490225804806678521950995620008629036207573738486090909868791169914648659902571429509462954218156131239743762361118542310693320264830656233840904833597031274844929256928799292687695262919407076749519566692207036900809225207767667911294590527384791337950993663601235752338328530303299171149774562518054608668675934371177218415494799664740411337309810437468873195230150434476682058364169856888648768989199763599810281581709921244075251199125290906109277366830423512413905076779846542867287329336626237294544048119533934726019125417056585695407283767935792614832246505709260186450383088824466219706157377735578761484490395920697648799187030281553363646310132332583834319289802314658799236094928259497601822817951116865172510507527768942413856167229880383241834954387475220954660062133103953991101605222818759569622285884226407226748206576829896434270252222519556288634058012751957399015774379010890588782350184459265886299829681048882790228310044977171799366279722738135814193729545956458058178789082239636213360825185218815474575982075839536995171602872445692951225069640509838034792110098005482964484696371117542696140255961561357887747441768259200080239930386264274705952564877075845583425350459943469080991508138750561783121810615766328485630655872796253521824424118426173979917612972423334004743017035494235903500776240649332152094900607109819218310328447193023089846931599616680187939510901540157153864875512187611430018247995644378787546001694393268102068708201533834625536345035233640788233123453846917853601231574004465206869236361702661193133425011474427705884613415226855519299650031391287745387395947779373675412863129014292783837560278032409431080056190233564716505620053938014847695126273712660850335179324650127119401772115111256392802963636676756497268207606463996306620594509577261090994845704410853835666798490759291995669798820599633981264866214062463556504980117481856061773481181208206427239362786378468777957155628419615912426088292112876803158391939693240638401591699278018991289805649545253044265341796966921522133553587802736346671701436124761161427665057905867916084266745709522163836177540258191872634203279715791473946036469258744851655477222636511626006380538503561282669060724506441732749475486791192145284992945460426670880640600363739326652526577704924984469003793246292471723471030537734651765335968962141768951259278076157153582467738474385452186278838587709835930428098892141391991629749515212359133950136731459604698171163577361810007639761369392306281671679792671047602605375645914560249430924301969816548453206359200943318320892683918636535597738558633919436882906694716992322859674709101360678361405014770719431946395300986514850723780012835513535940154679199480845375753164520886756275008450940243635264244174676266072918169976123870036391662475031964718681914851732562547669575401845871949388138247400193575969873894948387848271731295737656210382412851872929572447963296512644606592973970237740881818514913656548109075516233904210232521603670370877344893256228589065197975137615194176477512442544706348946670553563928047556556014301104819679482328533752846537875572431741624909276252523651835236802520961204345118575086219930269017997921785132631415234761522615606798395217521173665004215592528307967535811796640965045090330866300287463470999740354984675929242204264310442466787356988006100161855649467395358099338679626584274935543414594012735195147261020398678592871397723805420934060623799030890893331671623205423797519438005887667922666778901458309508567474194572093743076757626572407546480225274408661514106439822231364921908624267994576347638425835457577346867590238571915078201285036098141786687580025213487878344559843515795227360870188896722484366784175275694310373176442332553496156541674854624837519343564120924186982626744638802648996748584515243899890713136766881091899527234543529317012913643192246127451909934035828741957314057161721100607649754835533544865443206348007406450690233518934635016124122637831427498151827723538016498768947650119938144188147502913666017667099123823181937012817222154475313055352256513868623287852781800351227457966779552329621615348818609281012147732180565495111144217506750339983345245616488814449529306558528300861769667023041984061850090897318265429287831096009587453153247540535927612402933623612590294862245883665609337752403999668128313617766248398842014269931935172768750507421172043840981184841116182867394244555914735311461182432648914995502062031484959968563280895644546305924673714196804979797732255597773853386760649250931115159918095293479572206210699616867632830018460695066940208242851070495593961144828030941607099752171711984677511942462695753057803770539395091912129257215705526192484308947263833569278827653705490441011381551034727522984092556757627963203726409921321887900168830196239432175546273848908961070989031581498978250108791359209050640240582875256468369582424556187445938983823008025602537253191653024574227917363750993902861649365023937751987099926250932688018995194557366357578105815383049585615749347077120038497329898924544136306864038361142011267273435424547208852950265656085632021047048198069511878409780265889337844277154644294830818513473744000365685903685269231508453224617696193903698190235359001667910804744166799080122420232214493134233928019435067094504540754521152863041320748194061075092872100228282266551629362036512207475316486696845589662582555047455643184165274820197129413745659900060011324763160662035578678140540716637396030127082563646936532587573432916935870448675481836429239215237979355015368314463310811563083507894207420033469123390008326637685974401079425783814507887493850107692205577324425716298781690112272778403417252024018843609775566499925657892252130923601548380240460391980218864950671840156991887308996356283316897204382336861803962299552695647594245754955548205036692241717020196698838686077039943121145449292634099694778804243344492617286263702642580129197729209881962944467327799743427958193984341840251109879307154313987897555144643229557984082193469116610012871598521617755871651070126746372639898841838514434888860207824137248651123398650836357280335265916552731965988523422733443945262489927333970953246834304787946673039337115435899479152657493819874897706862409119561143897479570025070064939392494762600486685192736902184032485650988464193135706760308688322809044120214226049708542713046108902759713920626366635794400859159678498043430011117101439262920126288627517082784238251213825186810603189109681613162426888049504992531571704165314522372719445280507638045171476357730882156930018495580008114897816240824622786389729297944868421819104939638642331868683489699502129376880979174664628903513001098994845987630500000805327112409727472722508873388368358426711514886186593654992246225566597905814922397484519087844880183427634668331851081302537966053997087042501404944353093631965987040888067305325429627903806128740982710010485431323267056225837330492513778403522388490731942123830060012363814852179464697529552371968172690853728630715807727575527760697061882523991691658016471398356540137947986732647388487324347737415022559716242388257942038653519866221055726235364887342452763663365506815048839886097945591040056688609410264917147436037484419331304827355795364332959550019191464590861761641497802751769093479166744082140425706943287170321016128252641225361779267647736786041553627513308681887939199846522822214599176134266773376579138938248650870948770152109458409047693790641687732771722633296114750600888071629934990934998129034806782806140083493339444539565750491506109993360510028699348229365497394946488345978430628982046038941997929302650785530134627635645686465411400232261227290172513046468419699573872839206979525045456862394151345407516349367262197646656366160458811149798017009031885402244801005987744310774850062871475727256633118687832385577161139926225036456067914735009220084235665723027689522479679411266181657870069505460183503582091403523232912144813622863065258594674342520772791174010874544492129380676339931606795354586437491856763216937921034329996850429295848265137938864131403711630427216530758372862523591298227622455298642380240057085086081314302786051070332780649544896494605500103919928125633022451465206726218156091071769527143080576986995732554487657112294071729342964395785070498651043582079090768035400237843939177281120017994804925582152629632219371169779711782983099411311033612623495459820169169128134781195505259138167428605883547836156395585458021885512954181067932749661440364549717564149337971632272644697481323121899231820872782881749592354305554581285695028231197018967141200357620039854962463048183941653793536147152939041793726565416513491438879208477347698746517171692927328418566446018585906253828643180365999745015756827735073405713215658832751360881894759225593060181700062339956403047302462732562136126319643559497036061390663083072506129120677908527163325701599841695499985036201587462156708938366591530087093391606605115144670529955931374232670243259022998243689951935107350261540226833302885516544231511165399528433921612657995711204751054004866278386102370293579271648923817168832713019730416371229026356036217253805846546006797910059960892673575247062721940931044404879614230911980416859974832651082719700369137288548755438381818377392009435303230425581380701632456617689925988928153782619000971976320168728948885210810567434649036825226053141902185629032651598237001512434816192275017283293965054175943371182605680599761754893518811816102186065652840358947183844213921718838122033787749218890874855240813348986992098231912409179525670147988213988904809199883268500768065133204719456624754186993377951464198495565110084851963995023921559645113208932548615096032848612505415355335959005154500340884322001840578762063890253013250638404362887233747733675742584446849210411184622845066358893934813270881932501615289782257829094256951267551098316773510127500923387268061712162783827693920363516624667653483600810154831840967832137579194480106211462624513707430639685017685101227411038672621472675250666113638678222198338238814121015254647099578824257063499887175555459195934857774949766906165988278424097117217041680714663930090578394057437925584887524954331046336804197607854026663513819740622192413867002706948128106348152342034857010177864728905311004581989266008706617482633740749301270027703253616097281574771470263375195709126940465477987862230461753233809464007906544867738371185004201703093547857343827981588872004260874399986107532395979019717429865256445364748822239597037177074088146952954061018110018691439607072359258913155155158918355977724958187615440063435836244154122381255142669980683678012554373167653514992177004037447171206494624205490938623258174666127033954471567234448780137199081385047581563604059865775548595699734190999125786429306387412137132837755972179384024396513790733758970363988074808905583939704701686488111784802862489455357705909016473975202487323787351005511517431659185624159550590471362070060889097978654651962355725702689014068594501333256015889695654264534917674456718067460322847240680665248470744746069630363065789657473767937502208048862335789803862001388863215479674205729258407568533547254445315133396980935988556313927644498501506120644938438343295012432651367420259296499694754213670949707760915821588078787185944112298431582879894142674644477040931121876025374492137843303771866724790135109732926942932058119178052429770239528571990180556278581945770698542668224958779604807841197311452597816887425106294507216872927080927586976917260987575384856406207507864726764856220076384786936925416512819675682921574135489185331816290539361578109431469375824913213967483985149740231793158605776236030946181010280536996258917396646045452579018678164851430121089576519589507187653590873773206958251042723958312242714402140096429125485934763190515728713890107269171722325362167543484480316518910658957259724655553057944126776205680142611635933244978710291430561485637576926524089248017576922135460051412148543376631504418054159504376392704931958995161063450114045951208390535974360619995126266616025421451056715547839607630980488445917389923198997394818959318574319543728052092797611850517896973439512510362659526099910770813297214632078671408009069660029111904026363045710963164836725323437128461077001548122648877692447634198484516610543460453166478900577581074853347581308807508747245237742363772669940303672657557996227449533199344583732973106246711497942501496814690349306972551692566458498540783142999884429596852102966188225109219194286829630810061954144893296388778782026799510926685439285323397383730058326025819610633437172985852295166458693328078705719937150229717870905145054249609173215791641553839073102600343408922530464335564529852941980541744524911705679342433428479695767383341297563149671883040224918139307286725143012351352873618430005747119776724848320231082263219612074333402898263218038274734268332969184394432550463522552505463274387108568343598733290500149451531613052020891063036575606658922898147908443747112927800118952733284500550544395709244567462070586235593295432739808199788893930566508766614087281200007398417404509578322836272804519581153789049266781985707014396200811115359177322026021191650337773924674197314007074223946589181361609129322726055971105103878418894240245221071374749872741094305213600389531071419719403475881271112848496380508309732564683283043082706879366395143214195003838637941720437296831418122336943266057495587101880880412797495682373690187316780697959386785571258019767084687179914144355344711600070039782184820428391713782459658647319111653933319185705401392554393493634327921115439246910376732557511751430553536938344192326249239636753207566529790204806066352354188905188190264422340628627390803530427273815166085220134778553064731703752376962043304380683458348633364630384689469560145415017996929579922860320507285216539541512023912633161216396664075916312572002410441104347828128071056547090538549654832913071220721027535002782131308079297143244518417430080266492808972950869896077030286889806010035355371700648256710230676292941077262691846225396159702539915675477973240103334730956255680448695304510475508252693582855271688809088270171394539256091977770302127472807496009355960710780141393422883905739992952805191161392565750478647812197897630932343875148396877632652754701978438200414916684945218579847995174267785751223197630484417802875567405661969717611967069358005681018085603066202875499793140812148261831831737656261313862980426896386900092349144474689508757201163550802681398442805535663686528703413580969717193530952364494440491508025927193680783908771552986386840376591039621021148786113531086182719313252008840715347254575754407120842618395404744135047596774578324373058845838880989447168448390014254007925208105192898863453009969636727562383832144433145573625091923061755868272176511130438327000187389509203193675257224250374593911481296410131384773330336436467882371802232141788579595204067192285247976662294621201853492867644230435179123752994555772446838797331690112840962012483349397544360894171803919124222824632282598714126541260879347427471849246469304957972205449564831769432577884822195556285522002319428302968238294678555805704861659846099403545579329514942098549327314860760674648612523007309576398807178283032149687812181005029348076565049455517483020644360689056917165257935448961531835040530615330542182791085541184739115470714237666554104180383079472988528207038306528755372639602600101700484864500488114203732708315754437039529227354523416746239346862639963336584856447448098635456455320464228991981821970541883846801773602526086603656066388382500807742580097205145090859147271314518468822183195657262242355325222443398278013395536405710077211162321711204365631920253966999559889511607115409000083363225062234445513010538187625403871837216672274770798895072863789542531953267329877894080635040651965228192632854050666444398946813212515817955385777614770729312111324165729741226458244191792010255727893589281310079463204064000717432536016489540194934950091639843002239507629408197483288446974010928130637199891587438469678414141796103590451163845734222870928052386951884607354822812892353643448155399899560247746888277070921480052875491878072770263479862753096014716732310522885032372206138337268471584013536582233432243987066510506039642511370907382580570305019357787320411675554510031200763752322810521413624009294455366869660614418203564498576641938845442175243264422754309173312705339406213959713584536924307280910692097259732348926240505879715762425454554328823375612700657278835382517143406584982439908963841905816105094361515937028034126417183813139801531789890077971913684776262341846208042530836051996272550466232096273040944216207167815114197427892698572699836190758746443839181686336196575288071135310568435110966577588697532608378899653923340082870317157385124162953514798097001694576331666978641951742680817379268997952216110903845882289872013911215001115801931432172725379438250065299589098124123824449910643850455025806567762299661792369169055253875174438579012797427780037754841800217709851009902039598898871805882524217720248594218782473492412517894662888200420355411263543117394994939290767141304534548955181824268203968294810974240401248549664140045673053613228839712393348728673269941510814087693986153740393874244691306531945569237324258570097892209346018238371567741636887488324249492591132839620685219393512078792686644327224451588308723529469467546170487461543267340893869095709388665938770095587544583592429183927098625696367139787708251276019177788023541656888019347461714298423533489821272022581677079215445765874795470141031446933539184209291724004704662059594328869952580155985185429838307233074824691890633003381052600850032039416083093111638972717242709444011515169708858950447668901977165863309020408173386358426704093345988343530504147659821314063968269803275677953951990647545750178421536864859724031025056965934983175044563208445961274769465567387111515979809668954238152012699245355591977217955576609013067172630790522769993481482591084796293592245689772411057236154435016534987800345898412787307548614622664950096922827963077833448420466472202566311446648569841218587563740524193207453152777890815167077301253023892570197237360357711521872794855892235037186022975942310883380119385340992858999614555087208219539972537399723061846186937649033613837914555905614816663591004107655784632757520479862421754865361735713275729446833686118067013721777668116214976813464163878362548180491889591801444675480586825353927706995606697972005128356412585834137951016958998939392898757334930825986544289266007460690872082580829812486270942040495961066853415176113240765440801551579759202307636420289379403117315539837037134143779079369183033348441567336244425741251280448470751426163155033759578072746072933425683286604438464195255593121773141017641481756740641429756066761931976279795200444777833613941839666152681963335504386723642259870702455424884135616766890189057883976207341763496238157676920649995470511472697802517383834374176531323263177757620294310789268625028919647427890558214099219645573290780522933612063853188237830425055612430671265089343776362477204185995869693579740143433901428563853038621892648561111303306001267182014915960601957553141417732245612236861025149516906125971163085347929349851384475080699856745190317527631340678935413248002525148834350350459090632954393000924427859432215924873307013564939423579913490826641900847868437803575104633621493937948266433050484794349120730551414469747809177737940872661295532162406067272716986317627028492345166667561663986959706713512094874978743516828290356605584841473199863482034052182942258970049862060868822822032463498312164290639299867657407574793272941243299510859564417751137164131889420380067365813195679007808194883928809719987556328728102088603135737582003374928832456978263365353029713209347419726370492125944301337368083322879359155166341115027188808331039691979220779456667102489131596425920613852885080377680840511786445181202546430071327578504127594518674729377297045156196655924230303279288074304306419243746315602765308446839645139463939022336096782453830135296251749454027646856055293049460051227313654234886067609160323710004834018195379732885952020997594479051565815518645640999380321716542399929367646520811403232496813712960299211471624074072368979752579987914315917350320702833264689129821461035532305390675312802988964764012406028976765075815339935897222184083430506117802977046836183261148909562353655627849673920416804346941399156522267281260645780328969432257144354306229224268940220020213193487857311976827445460093976985943263671680480593429505341736185976264330432414768499298784584210140000514353038816928217844000258551601314007390510590504640850839246826927359644088260854283735492269944589743301613085272293458729634186404839921303459975649403559556313256043139012655538306010264200987847781582684722547726876788901403175896532356826900007255779295990226548774872548117972620394254330231768090651271305692528747155257477853561727486876984089035249276517972418995374950110843769027261574057372802327812527417169659825251180116633763313937404833115900326923086608216854837481841838475634620913987476979963704011944353672452613272540189550020208582519520219268994338254726963440178083258277431207177736527712834498441369999084798531585988589179486304369463551502035390200426307554708132811081341060019961973080688330093116318639351822603582741277309777200929129132272728884564937020717080068667873036034121699107461043461861347394703201849702202015670580743147527991571642218420782573803234285018462293382967974269083470739823464617087737750247969588505245427730831998531741210567373168415322945409417949696306490201741835998530528117993484444407550439443241533579049819779513638660424832107921595691528475406803252260398932324182951844071726755030020447265092010964570922226081607135701451168932378137514907176358042197460519551922360090088053054879444529663145439270748595898194448642876453375120715448801649676383425331940269054930437386884856168086649342419831881385700974860248604133470738357964069987048695544704617918466602429104416489410018789441394150398225573506543971800127817597325383640493887692801836660446929551688636152531209123759450342163758181766699217339849704586206736286252169077499476147836919856313701459913333778116726831054134133619776929357536826443569809779505580057144019201285677302702853076338745228491891019181922131950144654202424976449401254040997388762887939314712485032830301649843755391853275154878665295958979666586206187832297157308353196882326212562459697502440946528787780976487977214322970473135036094488828034881393881368496683474933525750884266476279380238860543676552355002048472239072294601978391006330324687594918141666179761017340566769858922057129301078274437442777393994595297241893609877595540959021602078001910395402750725109092503397676852346764118738410292309791144167170621750845185469695714255384209526814484644387333956428344857524845512434426435314950619774776643089911914581101916631069627212377437511073222026419679368273349916362899875583766145777157822507673127539940527518336066651768609716533408480851369519381647499293445942853564132944845638097581073517166826889045589544122355595187308515859283202314437431973950399731815886462165719107434639418032914381989241103988245811387780282022946526989863243757719378296832226152487971401850493930521412232740601730524611169450603284095862460929834499059181280089943873342053913431338634301561484002162091992595864477635285486794131514417841625096356364885958394089314684971165358948313621361580499190028532052941069563593419204510577537548703408177959128014629469363712535788684139220913497226148769413666268065874451362585304994136871968232489745856473906338584502053221282814703277879085732492894441615832888599541754094686040841847184617750908672781388687891759152624694461133976487258508001638433744793290357731730638981768708666122066049816842633060434644144707394151136197074830812501792721536718210163342963768574818935051668529692725256168859004430757424241235229178173333096845220856694479182076107251356886093146199068896530202175502442553550678009216504797451155852817328006473258663959607552364391229369680981855846181462343504642926832064212185881363412756952152469088026704067748269314435191011766886094196742467980029725778935776836336971853815064331603006279775331177774069899759777797469293957589998739733285220216973419691380427314420711275892857842222411067411204610940650770265935075748031969279672509230243568452311927891040932310750179953027449044559374304117538672307524572059078596521581958297408714544556390278979902965992838274331574903626687784320434942442095338770602184341769895042308394302543083576422723596365685494624999374804800777833909682671989941526368727125587290198802489152799987891686324697404573436325964918824492456083060962438620903670577024460253365759053127985465203442981503254040072498247530305673163432273818249385740133538127392287484763530128705117477342519869791298915493010558553599767219912217249791220165835749848441525664202311646682831408872189702453658824778312786854035524210830062506628651206228166350285376056279373722584595762460204469244805217077869578201210164763023897052851115537062586085393497979450956393132294582577065045786969830982153660523256556946297092719500255682268951779340789366884642277962206442196585487056447979346339665796243937798395431288349548458215601337075181992546849782677241851416416012765948225152382607144201570357712320224147111377681176982687201251337675147405650651990134702583739760748649354433864751927315619192678978133309918847843837412450222156742417717637730956493470976576035510614599022448358796855070136362198355735162329311211463852346590273987213736118590083283195444514217780284175562780906709031202084581542636451106683008743082870521853058619382824078464397858654796019829653232902434140847684865653950006330627114487073216082486111519782261534814893424970617424494298560343012043938305302136073875131276564984497175539873339267004334984580071099710691938238531051067040147952075335775983568437385188778187107072338432300311131441655197285064987102835849219758775558347974853621614737732497971209861874760683238753654237361409510354219429554948837153839321935241548729574747411752014769925262683667781967312131367662636860031426522611943686125314217229129157417397220088864023067015370000927816142498072743604479478852809358522631092200488714517415886380355878454080697791809974970509597144440691967839599488731752880135949185460263832055318280452060527736918925083646338895850127756394083937063115908561623687196862026731789543266279199681927876520864765427345183272316935496669074328425374645533469819888111160083147967688751211467896894868068948107905075470102319465592907548529356741248543760837308971404497364692506504255206364477464247023541893749139624305314766967856419213871268842842004120478724578389289961528414224804005911165387140640732292423872506669183439858247603942382031516296353473478856919375528528970146975104873152822288089522554327748251438236327129101474480361242519153486801394005458105794950197756092049753275321307189231603880027316609996208900164295317251300140644783316902095449814409892033187099468762110999322792437066902250090335078199774524059285877392212201059459858555097746260998083535628525417476370497965024326287283998988056124108650536469191089422970311324799720037893123947898774184798565080940877162749560305303001821541656182550009114750440127663771679217181965400707811498004656121826842840919106835094716675125562230698234622055856348105783130038829688329031316815267374055585840857237354683365724841099224561360581999091084629282641973891652322733829411635808148355448162672649429237452459690771058288205447728635620582598711909189515261946116041784777711084625869336661689875561187490286888155959548830421340031947483777375030532021833346581340808061069742549899061215866433966907712103775186023785401449455335270721896809553793772285681785605663904480029675155053658039188187386616148371876011108500985278541603887185305469014911514535040517184300779349222677704596504061836818788695808219082833371837276346207496287977868764290121005219280319017255043470938333221952453667116544698395585920446227312815964879099360690287414916619299734484439735144453458068746057342045269174132290810812513945743775067617846121596843104524390922604969624699542117650426304536762830476044140518388463602489854305502026786306004447946938889570180495499013314039775817167662226962402790309285174834443317897787913192212564120867102754944621666676072646036768568160458786607332868350678921487180246754571970837859187129844561840710057516460414044262953095055461584856594042172849565786144509103458265676881534143735586394940618243663964962632074463503427750239478143275438184116145176362466474077758175718949984092657688948451435714577494435685488143919550526837764289978432697393329030739988897641440285175712950457443639647334454829376629819311134775420932715457154733871587898000786445117944068041164612420584590651315148939319783341357902236185470988444203636143106270121380506182958006658021006328694059861378003222674316414313971352589646528496285905462997884455695877248857074879249834394664562145835462201644865766423663615052537280352185325980890444341910065988472804637880421603513828681643144341154092315386230927862044785134057415614500755706057170699407439343455334513251639759424227977734383665424358262043430199284036258810923030147540687766550016286941568602580333432829586226783780299796317997176654276881164078983548038956761938508827585406192894921488991855712899883212955156180351819862253699163049133029206568640542016105246136389789970655199657971702180025511939989765366088067536944128940826028881323036797759907324869328878576865965222665901788169143301881788506581517275938932678780280824522783157720889004272682843967462430428819067943407284202332115834254725176319823337050075932787700779252943570467783528615860981880649916846139695045089353013921341286146459173338101845813066010637980076826989661065465325527615007952013646717941099438397987397899319717982128090462630443666749273376480653240615607463367882077267889477928590650969903013899450392630751427353441359473366478117884487468418574120470202572076134025541651689015544778785383171726871533826053281012621994017267001612940887843628993982013541706039649404909861050885749502741918954865363297012708042217026030007190295134168273796118163232091793550050646269139294006542438538506864355991915821818253219465186423903353515924137312621256511649055629890748776069465880290095963016789189819993019312462102538119914359744915067162148969017453699475119707145288609435250357409475608808560519535844449942666668964269157233842311328343189256748940129100931301672425353125835133953231006553670496264610454322840787651625904996988768408215637749904830218448424404894728666941219700065878201820913181842488192443683418922269498296213885212361431230108899593734843801016747052729004154929529842413481685182745972212168601520659136203401294826337404004080739077146486737441374304181253158823595129746170849747959563384000194502128413212401119198027417164263612695533599835714855203036548571389642183436468195227460268043580850386649869419817232274161782348719984754700658151380732117178738673101649106778483667456540282210073729897580805831181350774670198328814687934891732443003431434546613660183556904647908546521209679434584140649293366536494788938844299289999906641466068247613597313243630508151747215209596554479171664148150497833240020334479080630994975560290256192920557205764228974738784134140208537077702153533477115247637184828137073865168811622757843380728097297660717538779228639133365054403433053562726543206194478555711023254354057630585952019415991117807628839932000961287206647415063471243534234792751396500135480206354650255089683007088442093715270761253336938862577341679892575357929789810617371903565888699967248852111589765580128410112786646591752177093901619184188413459742651977410871292853617631430016424454732148512909529052602750455497382857973121591327316540982728099521998386580359974909030278317220626513961482984376470117046753082162127722009083692123266945648538183344168736134520198763125403668143743582991413643772895791955828487169246729341869584356263227161253935536009877416919038918383319005392701279841299547517470111347198005729154056928526477752913606766525321490315795373661125328671567736340213649929087274016935725131201652073799307467048673651154626257690069260862537450398334088505403711537400141559702004548705728431934521011311441575291855235911471235257752896546357927172482039080041414654435232877100240765424232441751242310564268938251592895680777873188509943701258368980551277822123098323147098109254185133364221592569895932316134237318887775502553562322403681185002707849925615042292981772489225121423467243045027494067544128429058197228022979553153523716220573571044279547309881328709333527816914340591651075496905295278139720295701377127219804350040942231106689755435024493304118106248503577966077792455014847012877855445463752145041079874383352583252140168725198119457157455058434204179102349833845591342838934369590142872464562714858655655418776094827706314506519468939552178233307733698890896966302684149230512836047418882948309752907421665912573711996481364963424865740534378740127926391034491894674943720105104492088425592077988720577957837972914006238764035828727796905908984557111400674155036679558821019307466153311803624580488894022070207835427491723437987058094375691025132211453471297029589714548119312382155446854875847414314159654874789268956814078463953390023775681557352725019859434179654531486241897157999963279546510282550794867296315414162176734096205647196691691712783298354793375836879383499407656521758076151411049724369748594816165597042257822268478562308203257988455543917112986212998385719482676047450144148562584737113612562341363510504937458697064474211524892633447833075803376920124581620843919794776860645506175052348506861610421561311916944952060731585434727976951501995063830253387672896343750202777104132003816642292653990454277195435925184026221321263959576331310742262718322227285736579238214032845691307557569712645579916038464672576559792711611227912499826923825352277790585372483165162862903973715846143511729369467271970511997488307254962563687852586628750530859946110521647880184901022766898930328245875060919030191635648481039440666710705838196330015982832901323734061175923692662780678953829693849209730067547150488219704035324253493724620101273186715402189169320456684833229381802230828790353808634810155708895947150941892691215498124399582148653188373059378716763682528873371968924721354763145551282708065930728692954171001730782570917273996617608567373675673136001189158603144770823403437432827584356548586477617435417275918536757327975615221874717123505562801100834641993841256991351282717484272612853558106260046658279389949193381753664623547962866179353498981233993654939880334314175985829060369237666108643691627999524388634853450378201904218169506337948082314120952984528854692352609772491935641948471644919783886318177703804657001368440253292496277038983845930091503950341879265064685968072913167890185764819191166603061906912388150047908958577197610111482526340436211043732691513126676382889538051934560765823280674717357135338392530803193869686546825473711497631320656574068908076268176077681159151885654478641180306165445146034646255502244681144837827281030372041567256023839484726246146940622092932531831260104639434717187373366843957258035817125659795289686014261318641829809840410235954256957926230814441924242093261759895809232487206711846890583066926947956229693252048030620385466014153475770688222456411248089079200319600118541475831782550272837723744789593703062812011139883158782114817740215356271176390738371470268567775639130171293405389611322443177712106416010720233602469408969075660174043046594916991960670084418204596422437352067029158191578268019612172559523739083210430644546365327955641255464157006948719680594707624309200778345347910977297444077879265518949614993189552456131105321428456687915708631247155701684298845272170823714271024693227570415575586202325589666656796360302722158958949323822150810487499924884282074159225327164290567894511594054259259611112181656953819742038474384107085731612756430927337975513048621764265383252705840247422733116567117293922074639646612516141913034805129093987712880916245550089351336664368880403420514609983197464335125699836462723650957985641189847423958715732731662241219227073402289870433645677517073395505349152640358621976545076563421114571040778487608374477433376458143242729989011639934583879354551443840843593644001146054908184855588061848291236193941551261472908226532399171112297007639669614626938750316336529167189380480745429312775151435351102383371361430361483496532706958728950152835944281649898010761358990931303862133399015195757659038721425668991132796115893421633705717564916904751624448259923275882094952098239352121715981983693411203428340826984070633764014068994508578163263198641976502337468559796568174444072274538395967090855536975285884619978688804985457598731056997110883722286842660518727600791162428328206146550806395762074147246142954260993773140223092643137633878670292721719807897423994142395827115962680126076930502824598065666978853339123102565819615711051464673189640102650739966388421932742242340499135257308363718302156322515089048240424143598902417169000499417529589885224467743299979764099924058020925857564850134764661447181800963739569699226391138006365698296467424395675425334466437307374206608655563679544598543594543350418215145455519412131520207028856453959089839386660714433415012568755672360830738556952050039119081947217419198575748789884351818811326897150033794045428848974906737647960808117018534207265984951588604485026702540818571303091952609858324933766293649239862622459388436308176964710319713409973158631407770848984408741403201804425497911567262589964249056742293918271636851310058935812946371823953205081705028663589446723747307977994678622809550407508031050474751308901815311427534985835820736361571951775848531539680209522802650153719069466871482165958359221856884822247069999989253638055599522197504228034382286941073299919807536857954501568867103910240553166074216022869450927310983673209845985906730942904451787851761811407219029039312560739064920490655149651897521614673046185962160380601835859593011640060179237192342790580746926034246564249116242424194171107276619689731571190788019382091094140481622589267443669990010575525851066831172836670219972917557464056360002372750509374540002897257206508284337120842859589876514918491051515111073737558189611188271319202955259034247177778303601774700179665583921274118546768560231824853119699693501056840989968034764131886112951382306218178071037465564505155487037801854453426653627408425275123126343848324861968317115126576289893483669870061426736264629736763018463131709104561606872818773266315712809855787831782882419274753954175423651531133850667413751155970428099357698754739266083725143792262206409699175134629329405947805627870967405710831491709328913200273726052444044283433968867778192233115965926687859785034502588265979450666162434755929286611675752863164326675409858836403099374486793237773040289440689828705652977403618953583111902855666143056064034723296201019193412975028481394938658041013441285151089783797384412525318150972168822521768870978074912985748082926981654911090609533364238070040960901366558416109996951780616541889992343161923204045972643979810256503827324089690548866018147666015302903536144004571207157495061307884273885699455076027963592351961156094204568843203837608027725896168365497993417709910518310575434329185635785524217558567277601463987113421580494059065156741065507519657397218086585642119056169427186850733061114392709413417896996232638261906631527661715524101160040342714920267225346307408372035060709546153871964425550105622037492187815981608560906166177108863121731308511191631509146771381974949343459334165137445260920227421671451553498441440109750500578462981802101771036499353676569856677805976641246981025701199299602308374666427334115887929867061479944113691927031516441676196257109209808832979781611519589045481885391785174764450185207621545452707108442487196587705913732952620157987386401238382870578198769399879874909952819625745868159817519156184996144483903980629272084595685645367232274050123143816797820233591395543229726416157688285626618409685137834785003420692534954680805843596325564669423794755324358556479569587913138539360895173496808013413363839555100845153918742317828273987362628416466004801450981772570027675689822512988156590795543312137447541555471908922283465171538878873728291712867480411165930519112577127442286034216408656036419730751090055838468264012201348838251262840598342012864640901524182106754020158593749747048396516890015226057733907311026550751466996505988997837903277368029189562477338020132801118346568568594821507147059646914822518427258533928984818424000662674043095427013701199722597569434275578715625190069307359056476847097944836557368157427159791159499092706193258849434764123979022635248338690438356886028905362342236044468695030783000730476816365648646528590428282103789477630115112188291382162344944166654795381734194994095288343077090506199728935298845505381668542732026458392368725040130417726109890502912831293046048235761287598629061836557301946440670510471687785784388326236237041999089835530985950513904000141033403815615019656437121849300362836606143507130222237730636204396240827671314821097859041616254364486445336531765249251772526905156873141584668702707743280973038994725713581874047948428053365074664864457187880305838639322199458502715680463227635634712371023932992449118917143501384865246997715311690210661401741192226071370804932635481817453735485788558957837135627915242253153244483457468668063942078946422302577390616934653702411593093997439230735802173071841136967454446373859371641208553110029082488181752508003357436346706346900842780945442489795106850609532126899850365714544529540686657410740167548087237050214786409978423587044806265993893368106301650944177315713154445129289036373197693611898110576276271095142187988129790273672550415741912361558915465586069131362395402582694449001579460838330570792865557568729380263371868115129349507282932952066572001354913053125019852546598900474744398397831086764882376907847728028922597687813144027816283578108906689121097155480642344017859160392798814047366193139818209828027108475113283993535524940469914566863134366472528806386740284234476012645175842704777515335103763856554856361324455739863869258458510779224101321727971459563873876371346805393209804401218432865500730535324510510417142338688130593392691944143352967757815826995298998954027380756448644403518835931128668032882526499966915963736684167658891902693999399827663519237301970655529471026295289419812982184160768026706303671430851952151148748573508682552129802511662505441685013940268100850874538678039756647556277995565016732105807452070160959608463837358660648232682309358164140716022507280095351458585915926831919045586672517219767737198413270874786024863428726036495424230686318323817084592276688540188794020092863452850335696884856958318846463561289920582349341697291937977875860818364226720887500453930085463838263329350438001794115812274170842587316740181123868609737515591767926114483537825156789044044463341620632190778333851289128698187951685311938036540646043783409192370236335343316692430070654432887324582905076673139274363768732071928431401753523667702180149401586313420388066310565972034286325894544927946956618646626846216220275494740712715247713857561965940206512508521233054148250398424298541976723575258837042753424389561044017236605560500695874918750115815270252488534723539993072318624025087414092738965786907523054922388043561185705623048430120751407886347196954582424429252251171451063872581064350039050753903035661203322839161010340887924159668670387717774283656234280359865629368491799598961981390412785715747837372678850129838136777796098404867804950448538659430449492480955168460373977763125727970761989156809299574787703379862602404569485583797892488796796547280035996887241440389092740708786661332457656854278537799613250761790522075236277674602268268568451775620026729775963869318719553452036004093990427585963913290849507180907138666185722660745136288983367723639440805685088771575983703035192486780202270846128767117768562855043118554578192915755178591795053783925628886644725593926474183097719481965371529411390339104358434542187644577372695189717343636365280568875430725036261646910528699076826453894334636921311031104891534077191703646752653407847347077104966417827172194327735817630679593590159951042744113712754280254357492504596317905552447302361421357621038650570101940820648950332904541658845154164321101924131442479923584402075350175463955016197635842033259627734289983447755330359128471443696049946676712759019548882421436425834049278018978190850677149504893175303283210899335271670343988127605817529404633658753301291646007483358694252542467357992676647368913190279118721133078946277543772821085533409046176570381436732171580583608639765316043438469398287037167540476493884024009523250520502023584383096413734533457233513056181417037545784560576229495641223800824421769778565438693739216765240805122207923135616494233473431834745935847743643941964402991732089234719305460077442822814037115875563807903710692556012452983824536926114912613275730877237108939262016811173945282444803596292050624461033683243084329735807027996548664211349528066710173726384782669792085732213482703717736480894943489588304366995324377773436760911100671761854501840661632587718649925428465111421912468505121512664685047317582534105915988472103402173992526966958460803161184771346913007764611909291888340872618934920552751967841337071279824647190974397910149534654186883830103270108597077758902695450988378972459083396282930173801174965080506642932022633116870090998317213253000137735342580833894790438186719785925003365996251919333102902000755451031364320227432748418342205336431376089489045489894375835396842712746528520249179322313941998754810471795318894784851642191979743806320289695289345072974430463940238817942129890097821924071693718651797345612362125329821850267429052445490373146411814416457849221688839396965380687144584361485702599790322791546465750507253907718100776379878444766130241504382349169335770863508992406255726838859536753193586269293789652959421955986613066280669177323475282729848082972889238649605238054803685995209796995537521912335493237493593603938978570715856038625195681679766095321365707737639614012503829938456051260207214718086393931143811244205239678163872485574070718045374737558917656828595617907318646875642740259496493728321014039605204158378476721671662357935050145818549906160324998420651262402477270953120498584864608798448511961113107869440480065464470747029424759341950705388329298825973313374570038752990806049534687631514271920409149275383979131137627158066001719475953067170408063540406289510145851896127350819423594574534095056932979870646206421544922761572716449269320599779140873095660911522423294154231324731309121721944034471027525092326754562522731468237571241945858641659207474848409807304521378114070841347604408136975979543047839535910662565695867782507437653370792488397815162839476197839409475083662081210855359045021348834716305597599152914075652774626620609925709879876230325249555237875721322735807563238157507736437889145484512090117870034238265719646056048769693596932180603898982879018249335135478130549370216745408019311318620203286945103852750935323053652610708169731344940718874038731829256636659291556549521099096873175912867842079333178267747856404496681188173859682062008095781917153155117648306127284147704621308927279767263011307398471190520204171189405104738555196895829004023998076470486771684619435634462590589877959085996191399803489192710589272396733919183414206415834757939231016620238859797007219984986833230663234824812920930945469271246046656963297364860391460534395619805056196175870873501578044478122635027039712173758657570837159463316217466727930240789096422007405587234558974472278213240087976522585612420779683561827996491468382680573391892006199614770092244840222306100062058739447916984026783669575806305019124050475504951850393273604494170935212633410040339432133911823512444374954418923203103613373044082052163078862167486873717641902907400520630729115892140249077281720223409529666408547293881979998169611077887092087627540202618224086319464768021497207268441154950199527992259029247113217693334137719728270286482918098909797158509712275688963839686577484327421781270753479396095448097037783464811229862140596468066518864220747283133103480825325840321181823244233880418518298510501002592075427999339262474612473131827957983713176642150451227625377426981236390216796153203034759675588462659544278969956823683103825502561568150291322547996512658768054359615845732040258936680707901015461109429731564204242456330103208931644384952687688367014436456250550710092944282444286180053913356795062424343135989574039538234885219980481002653433237108128773061047548978732765515456809292446974831919408341445208567643200186733175492942087814607486033259962035814990659601302961558659230962883757211021970480054418937645491300218647620921101024631633298799346515672967749482084388330063354795424714232371809547818458048590534341977846657650922626235288267106090755844506111661642019885003327709448490753131805875855483209636766523437256021888665344200650517382279245943376223569407467528361975739342976031824224778834080672699050448082601875817952909095712738367553115647964914009974004559640139083518668827557996506109487514785080759459624992322212860321038124255933161104324665646957040807453428452418622041696371221010808022058810940179784045918191854857896166987236073533906251842126813096253020420106815639516741212929736058716107461464897128582644975891721170877460645800780477744758309619575843290897887993815982188991279825060984330365318942903829062809247886999188801760608417975559788347163148099537565620206922749217806286173393495112233078157943869688472843501341945852802478760895788326369333000235849907285266346277707038080465911851974985404932526689697183392381987141248693983072080895883322165304879363719689836969321741339044285958236192412965695583806763289113949933864518790672251430997621640897349328792202417341254266221393897850944450868263636155239065072656750581976281323714458088766654419090580890764799111266821646047554737220606670915912407552185071055650507908490631920358131498897069476168723154044995005987047577705153160737220906719962017886699304726493753981858201877888250012416455451920015165089700671872063300635230163080944651975745974706073523735758838925124452047689405592466941911777804591959909877758173488500743472771224815053776655298715163016768942729478783930440215249131032159052003496954819774324247731898964814407699198088332853054493931816848752143678116284022036974209447824481040326932382046630024478418845654967665380487912437285116320939046493376257009233181825389882880265261024729048650062651061668446312697146651311827779591157053024763300486545458494967682979806203439077768729537365408042596755116671124500942098186616493988784683701075104233816392251353445156533555431703603454950377711041331504591449799943041017830272528788293767449998979120751421859287720946928305788494256372427278053280321254237437234186950839842056496753035638125698137730912112609391088651160748847861699694227693997683528517683869299289311638899062733760139984008916216627996594064576498526357366087433128492778435662722344814875151721270263852260845793933513883354342913147958718148227066949078651372575034111226137316157819133690342458777458219156520169461381382993310593368433152774792624763826333511943715185071723812480638175257535023061818481182262713004447910137125933764581059508816638840780120671803198144436271837787465842135140242920236021923790906285192555838246725300939335149672067015515638640044450397380937027577219419489839104235671948581159714539674073066925365456470796899506614550069037622183385261202140342326847569038756611878062042348927355124722827815112630666792502627243216504571267404707440012428287000814182865463571144740177593668929910604377176942778294214218843843504866351779723599503122510541838158313989741088714220333170241777293563120972309708919055743122070800503723213140680586766558616380457804844303692600098138206580557936526695295308077546831459722075782509605653999756067140296634774646273160125985458003907533341830766898675664389406351831684288347832239289219286424110737004251916851871014438937878775005651845225030272930237720639468983926438220411384662196219373338268778153990415222258416670904009654764810503334652482977092554420367211752763026121506084446159714229789617472501178368541209408056780980907839711128686683761353251081259039753038582411606193904600399229870556217780308578987942442182893363196403710336032032870559913331299555742760782229216256644855582872757142517755559398324551353931584587331086206885865820032268919161621439573599100762456537147873036372243093961612092625042730790500490569611136325500830036307806569318380610714584251669376474099566657955681310624255282736584197490502902043443273609726662551660398326988621854746402255403789718740909769366628955078726428684112211584579659104677953076681731312973528637779881803209428343585697624334730905917031025747997771177198864566685187148064130194865819237765173366267869218317177003821724211886184967988320050075733086191337962071699457807200947064495981070845206766374125975532603763135959234447169632243663628322966014442126982881709472387957345020900631675859027831525717866694715140304424957934102487688088654945951578456826873235889377241287032648957507500916941719889354771976889859612386059874162775084867403750725831127016128479109340806859587385000224821484812541483009054388061029768949760827911905202710705189360332753633709461586667314337282958017423101916783528062638261452892307611731031686913117567051367735906668738085541649959978711153659689596348121177985590254578995774022974700392060823314689528789567124509153494236322177931970336473251397677397319271936340329674909170465603170553465633242506782512701894150261142130900139479059632033233843090171199364281366405449819917321034386801628875791171246527001892174402155861493846882371502628564688890211510451698439546451428279391627109844294652911566760573659378878065486380851422848363722856776243924733626520640348839128413880699163043451140824795259820085407380952745799152945622430144517246158113529253818879387168471459640339585119661866189986196808630979949479048249684963559904037349055939145672837021765826442955162597630937119632225504987054536075695403050966949322622939119915019063093445738320777239428121130479727303973347883967223107775069111304190971077392098624764950426184715439114637151815112369168899165339197657437410008095218428260082626966685456495202957190233663483818948143338361711770275121519228478220700287852009106505393602788596521758158588490387039086638483898500372226459541858867972119470834304466811807284841491617309584036329180646098159733613459614175409318106244572046532026227433427504228680440558070969740706596806988327963179861810327627113605215593568711962842418794332274683690147267483040458228800564848313664816270205285100419938030819510400505781321495179717175029227078372445981107141997108680247671341579161958854296442772338560238793990780251979113219634761115513556578191711336954848253840621862079376272845659503459517315653162145872903631472771974997232597709122637203911731961253494431489777376099492386450069347062139046015333330158593891121742806088200562411173043397203024864304811342513354615942421110669786497487008966453406092150243386052301310851819206335618987555152054534675931982057921720604581028997840322752386536271475544864348458171537092754467079552992088995322786648840133553754179313062041428569585400752166960830814066114141168577345094143931582078663143132986333402383456975064391789376010488286588013572316009211744322225590375435265343734833647866474586572826599586688292737520328722809757125869562510759084344668035406111449632977051192215464614832303113778852463385854259253438034609503468637348094037100736638681929438165186831307408375834565569629520426734224078850848517432503348049135942508127382633645426254373955839474082358715603514269910932860670704479919335602073165725658717165768642998674763466563168348862304308213366393569966913761948193972410461369937976444593219846869748335643792133309507265800861760033000715253619821848884717659774142211032352672417343159912115130637290619261499702714208571617838777397342841386157685626879245591062201934376606342475222793190476937884653361888192181088125462916210706475181937565586708506505108072811388377471701781193627018068439660807320549392715416155571143499627260858414425697579957359370384790138363456621994323145177490946311852089713103070425584171754998109216743941186670356112182764013392160806140759310765585235758914356390462958824195155063298975681835785558600706448344782405650671426402775581331551336948343856796903207393252969124037238147014914548596087231012469467098262492642603151429011608444682893316978701651633048032120014419771106040878752557287456950163797002017430147742705336152103301275477221557697044975999529810482396197665630208250197905851863538652447906989194291362313901114582211799587246894229990523081925106647095209956687044339024129974823448985014079022793801251451315330892587960639916930604862871412393357671998803288420279137922558017325320928752920402800947044403085933450210038402921000026773021940309109339283902672815720145932415564634352760528808243672854147285040685617979501624807982441141694121937665464186628286921244156411364188716551183001471674456396578655566382709388374366469565353306441878208639419253706861945745533272398093396306338226383680152088167964581164109918434706764075260480604481878958936891139951972663520042769376414188660978334195859880883592328424435452429502466832260436200141331753038331332504513179440878659295523905503450872631493000750349347408021974447248135688056626314951152666540669677349115349255310049199739883442960159964973256489773928928951847078390886371698622121055534196049708294957288796593936604554747673443820574993635398446816170772017546659625010779017384848445964348604709485331304861265081950966372398969681814400724466559917386405417971402554859870896101003125353577403640412398625678867006368972610965777815861357360882212716980628730490744548700486392961364655326679051482915954191094044574176016344331424000325184089313683648833179034544161097571122453549335349625132836265279212386078184504158589101005840384459769373019848670411426970289866837944815681790146827346439998807570636343093232576733168521545212493274925430571311904567950692856057211545392603784389229561020885731341214366097886527709638118185604013354657952650791155392475108119169748164901397486090745232597197304867443466888816254051514611733061632020905410334854593551932135827342267030951107934325686985193696433714349812141691630408098469461115649510499874654611788641458308908016797428068112702893306793672156914538205462649194776209348397596463533602682042575694039987763629546100429563109865226461358675817290609188691069775801512256697242463116199663487488251236827935809533308768041273581893494858435104168240686059636901731522891492973017203842020512501868441444762863207265532782853609646825234854816429072473834834260727155567503089064370209920727143619928013653165983579851640468998054167941155468503754371295620347814530528209845766780880466901011392907420686990738485579329204036448716265289061829524003543835126745779893106926753795236503941874605448951918396642065904609146646331472796211645411219307540104007429236340458659364736814615002912957744375737818851574682180804889543746374453741581608143194640470521380344650874186961618271706203200901614605299794249212240538397336370037262084141920982223223781298439974755151852467743962760436054482803143951450971916756754956446520330972179021854038611920459138601287299580380103198264220361108676900251089162822279190317343840574282139514498350186261623282250530744195439428827200799567373366269779166870462646131789219620573253327740009854330433551515498169021245144226717544404621640937168560309081963351138604589995506775684639469318006864702686656580498361831637376869762903799484368687829447610263860650117905685982396432745217187540407946687274051203260980223800316193071983574188560013555618962900020655256993333534202556110328186372180055871707002860606325132964533271740791143116963284773673504549628596830153069947749232163748233948891849409606657204414067351883005810098363833458158473843076418784713456837977337602202581558576294416425996980691394056667814460180795688296213072370619768068011696664002530306137775763197240361141994538592115508598898243354809420167806716109278941240221488539805525949346059484545685014349128829683595223560974479676923971188381424844634770072611015072342263248588311151504126243181030596168820257002134331415984233070106005608844926912881156968375379085196107780347750848707051712611528135612408052698474968568195396013548330781568616803307220953670416853586464814227153121545109361480807999614859239977399991287394063697889457612427566334673487537873590541478869931073012154022788228361306216626091593794576362357499600147439282099695004872693248991563071578316674523310293972505972410016400869685863896486275039422065081221798936208459511789389845074024608108940360258109021025870237881835189508875139981611404668455656146495726216066018131847141206775840048479057360018432215267535574157835394010613810285057904198044339970024286764037396738114936519945340808195163056968004268416662218193674243723176918595167564746845783359585015096256198988409824224106343623701071433821652321861739281679835762872854320107943583317203682720340864470797701632545206575868963204000465156381429876232148687506648470316671205345566101546811173853037471650815059516365579906080101918579404357986695666964966371044156102090409181696237953682703285041405772220069594830402944170593449054062010256933189805723897072899152101897364992023326316710273440927239375345279269189598359645802739090757397123676159745691770769139681858907100757158104031348081597746138463192616005521064699105023736487460998901115544620186803805358808705274952822903788412858049023924920702427887635803713761981302038361158914185740133922024035756756030539316870714351244906795064299456366338200372272402277504913787386452941443052956476816277778710104296302258796223114744369444770921273612766621647920597541274827919175411911226762750113832340076158174657854216184697988552533104441484649996601681216854240914420057872478057747200791609104626073525305109241072667407597237206736437342929495621814764707467185137888892628126939988140832922247450981926340778944842934038364965987372567346182279611923996761876187408371536775981145060211552443497905769173152631929041628428043306975633748447790227803259991146812157340648452853021852931673970602369665258641633340286601867472706500248918972352352185987790940412639398452401438936258719951307508123827992471889639813418433858464547208363622288859776954822237711638236282117016134152913659054668274085441264797422091536886167593672741878285204525986505763990300137638859012592778824750400206248486822255032019100753619095492815040978683752022298348933820264426770395679591401438427675888202530734183942860082271221512221111168581672849491672375994673552821411237683425401166336976736118145628308129769159686142254950448988138979764755429042369344799924154883247574428701785531190950763514283285809168816159451449708181205412750117763036959347048485176681097431462062612658979392894913104625935556134231576729519411909024547926144083183055037133137597097307436902277471056949407153097399828066523996681260553871633299452285189408958076778581512011865294959867474230522037904169362742076852306740416645397099596353148804379754336108813034937020837652486755654999872864724524320939921137124913256781578495766654278347292080236125434947030622906723164633188384480517134101183667204478628347471413525006847162361972981268779049515205947060601194846224301987141844279462061620454555179714558788610970080527387360385408495818647152471834500595118140084985184828663057256013331260514201359339512080716317029000419750922101600012708519004615141214204837047617424601046424018007422285988354665332711185107772249316617029680890874908406524878963527113663200717484874364574210476220396025312060938670454228624535507735005388986266651506431751230619760374280197201679332954728588457343495366808435852686067538517170448300392581500149922145827792175205019749208267616451445072812447442858667894801234245280369352910296541976956587988246129146933334144657833765762261160645212767672099321453213772661893893051826244515201365185571114754491441009120842198175643698764019603194598200325410650086174333422077296832412931114573697440092140007745900127827345038935915064907281128207507504020467583920627054046797495866496922222798263371482658217409880385489541904880845085761512054364624138776561700811799925905453043378192871109317168139485275818041705814190809320363599150568168021586865308098808241432590963395175895367280775113558873635794716469372613159685920127554804812254611183508719689867662145244242514541756831007015682908749857294902170643195359909714550746757552701579720775249481915529072242105980929511653403439817500421625590895781968695624965470759447175138430030496165462052574750311406265415905091715191768990234785345957094517837261418029067535383164665513803277023166096657697459321852200119802210517667636464100565028074437190545882362656495679811487094564442906263625605299423775248740901482322658438760040329686415609939813623104948310776226415319245947789765934772628362045161682863460177814383985658192560266996722867061703220321455875233169630782483450897686046868083683889176085154836338988536355510494166021888976431488165852672888957939349433736590494600126536978808438669831641293172746009511005566876436386552182121941850424432818994567022970518680614660329814238141066559819260658470697023890559918955110844754652960385755847692530915373447752632477019044310960706945447911916374096844556304756200665759675023241322527199227025269734229527626480109667255435924191730550530811444015342474401903951115073647379071129148395569963905088760414195691089701060737212149707279957963350548516855529060759183730243397334419615216725964345834960375883098015552035913020993099336268025163437029108308714049998713016443875358217081037484316734861150299411123305485687228627133112321530872814341447532472132795044491867820132354493178976497050358685406092099947500786740181836206695766356465149461758768263153262575389147467324798432997642732489630876067044098474926977855527151958977949221810754192299803481959811963933412415345448178697496713385890554488497356177940041988104669398834718232250196773118088106018520440085731819588840996801438476992246117932697561537172272380447421413741875149903439779072318191444701848601350662725647438937416956649951918616716260596563998872310380439747950028643354580088125703189396211932001655402177307774364348854053292919311385067713622005009163800743528130833906085193481058557308196608782940354150462509166339099220918995949441326827847266781894897306313985497870597934698277511515878537568129247966068482404385944725709907820160943496236760890987037643845217683741137355816083325869273124137433178763897687657344510903554769829180485538434198911867739105580656434152472292744925638769637289694723220707475409762783413842235982651940236935611095658487982079492559744919798723533767428317313274620066528962385904647629476972269933597480803704977535317366698105397889104881775470029094371034707646451942827638217185439859446528399146377751142690343880923085290662797255060934779866013785090207122582122302335028034150727839970587871593203598649950948531640550636926404428572059104092002880636465194442013692338493020222153528804451947472269737165165918256659658434431480797408535089284629105451838433350365380156134557923588038573071368210693338855126716081613015157109037512715634338539042029321569931139524314644184649068801548639975255122203374061105266744008500945001497978145741826658007493935999177310919746210560263132915507267253418785567667406050913172350459194431636267672886267700043090611168259764837533223848688260700826843544409541970021994469547574172223388557071500160483677411806147715894012119792668000332212326366379261551160173165830542104271288952720658092661351470776592352379369168929236696081773627563199797323868871153583254034201764108748639697437232696362748900483516479550235950607618183883416347193064280692532602561671942571045527200363158600930012615037537872077010777947703004574453517990383651669809131454325314996104466624256787767909633921841442490250863681510819990118217969133654840087224927550351125193934136006970872807282097373982946169173339953962348545090042907392017457260775171281972976075501346034187557516402869774609082287305423900603434017607836404047154262091784330133131675803871838004640240205698063704338450776484542094706412384253047002657767733535439302732709456515911028360390013335335468359087504907317949622697099048136410627309700407472076780423589262690781762952815541086617088131304900216091711664119966650736179790930213703687739162226477026661772116713948780920428279741062656903805135356011518746202086809194486153642779113446513755590613291294737216077151452779680745388772056808604142246718965500551791154977189280415116521854994731760908930498865508430001381819314507491785118078642249181061434683965501137965213578472652688060909491141320645760354510241968496744998739063875319334833646701091707668210518333773809040636171856851407962107809430015574078419814942447029202188603941034444626382509187637062298404578791053352974860917983904940402101653651523149570753529606191296916248476141030335830937669462052031857410211009154394597960639440882651267688841878109800195753202134286093896454255200222117652847351034474579413111248880880463088071375631455542484824822450143621775163697485761342604408992150227611317363945908466727558509898534296524841857910179359244069696807014910467520825797712671055516148430391147436930022621403993440421039185889813520731341280309828354716077561074537843725184330249018618305496061137787662068683687361154338598146014859377172484081005057048631977847783183078414176080740481390292834525090757942369197032322587545838204756316300211168878238226000012678284697138730123151339272849409857840912841487965740260159600120176408834205807349664486065677989733949887856069360968237906037863001726007713931139004354184498542315613630878856776117675109671942330097522102690311738744348949842183156805051095355168812983426524779369735259734323480630636740462063207825891769930497020728117587750196870466688590197442074323634843549147176075133918941165698559139438525038096218223568650222690722209344196170406272848003960637433626935630218138725257802182081348227725884486293799331118401668294776512533062425308744298934839305613779213295629934390233761135050719928283169175894763213254144130602307213459215420487548414493733569476381787481701917066531543973309630642378494097187188702482981044986100300029821734311028816455692751496376271954893831292971732511474793960612146921202458489286358330708390197931205047705332777361391591007810087981802591890603004644230311837257752378030856651784757963240899689445666322936211058270068185488281594547561220321687297961610878733018081092951068468748253115705475279855136759951900838658597201492553086534729193743448875613260418336056648387860129423791291572735958806643809827686910391630597619354568857863905997138831268913258242427557767088778082263398220842757246766319423634332227883218548136805488504358491826608685484395179495663559547321826146038054262571925403783484496781031168679757987953310966886157932578987042634382206468708724960486511872070673471663523787137755126125306322860166219433320225701336802869686204994347528434824009410863001023984017025800866381044871539278661669826608720389857437142133387980518724757482857981543689966009159403458671612754424122067480907365355050894972588193750517540655839262211082916728854677536518765775183088288272431634439363945389009491577368487071000388612778182417905006703846052236363650289050870332342893205757340350788772681335292082605466449094452690504704411537972932578392631971549574167074727986817051521933111136361164899714878805139670398648114503885877401848422803565064128720519706028436149555218636553921676283131752014061571973184502844978825299460472709382474951975916771412994213324074875221182658219707332218671132339598547311088782468106033836123662934038640982468623024061518370380124059393732849286918546977424903132171617456480527653020648696181149358701826975824068917126099224357122193407643718664894527817726253266502962198988103804671335188711851811632356798643388561477493567411853649056454411524480912375569865799103061624371854794792666023781197337908748622237285562291293036578404541612430910336821645381626927483114508975801215913711147492426509885263265117210825831062087677898704222248939671057634268749134776649761550898905783561927821155272649735989507855827323370910431277997347539447261946365820527383281543170670679029785169367765328702859064607223585317650255515586920600768990451685858490778451203757292476702112731212660836548811598514128178995469741030241579999073914830311051024879796757837993813190780650716850097585872008402675148873216602987583071830747234782799929802378373496884568924398096899463939328899447149615308110616465044636420632591355389418794641111208477120639376290401196697059429289372607350172839558951707968291288154531392356148764977068568711970065582131750606062621796681800509660945443073410319346359108477384759460323077560814643072569252904003154401210773624728458603205881995890619829552228481377445557601768522277514804128023995362653434340517170941424719134195366224520097443459055736421475956374273074394913830750741777933929994691594568899897390229840961799322312712818222690637148188747010523829483033328413165325491985263999994179392321625188704152459424873832674339290377464362781281998894930318006502911423179572701631019250166285648173058892336090148370770427747118967464330012937575491234813003885276412637228773540223761585725581308283167373338652315782096621544608619122472477307772030549516031776035139563081805019958151458723245996947915654100664320970142709387184066802537096495933226624662953173633067340163102066792683882903692055171792724570230869970019944273607413668967555321793380033460636281441309537699333831429909747105260111742937155249497730388006782329928741980851779937526604336449641614160731791019342112852081465222329360692845314513444870212248019733313561368769096780229089027497021694748336615229291099996334206744749734204450959736920960477890087768155309632965639974118220328007353685801543548945999003725738218046774225570587681270498011540059273501137860153796854464759783152639245958512008817776545695074781260884756851842039386524836546455465916232712718731930376196224717882327208822075401718154082450011945094275809488523202375983896664957443745599920560443298251531175819685464920830008429582582263705953433023710777139697236254851881901852879456848551800159666360923719782526642331305453052635200717804292066339095370962984025912018088694640783393266952306199370669107306480202539420557710148755692761127925234509888178126651965157219706925023952045001913186536242019719802598208341394016758764226197262057400015299079386626437236165246425801492001118465791928180480352669274535372708894126873059658434816515994109568254155253101132983119297855834213848486896511344978710658808596139722459803620533585103415485049780620168265628768512646879221333843267565697442319735280358628340681241414717572735880611654798817618669644868966220480318596751212560570370219416360269608869265423162806610401815896086255112111884566120312604926086533197160082289564286391785274328200424433907336887880852117794806688099843624047160858171494710844098159658083704447859112234124434026047235004755199236287054986052129293004740448112461811343607357459832107455802185171807285475554344795700135461902294717861579316484188467262501287310610328697766465244648884154148852559039176156636978796686077696558792886389694736887642789830636360311427067035551061861603310813311862670555376503849048836703937730430409544865551636966604630005398094240653514206196520577684626963498132871625397005332842672328607956250588562929610452766393755812054578087940256638115882201106993241362243506667410509940000319676680546827719159164314710782034980082012324710848755588099040357687545761833073189089117016454333006348168914926068638690370868290120327619295875346734380617176514998342763542556395302392661666224409402467962520622975402274452441840280170526551092810792882088293634141751431562450546615416464773603450577050894777436930349741316112605300962228034218964122856817369917569052892027037516421041907807489394314170087648371459597256271764925912119267241730928569018325834385709704852825388784523983481648273533379942080420838239134298048133797874964116189297618399849417384085634237984513970519019141102218041177802904596107046162037057252098170540888546169531393012827091515901163543452521193685890860863841828598668816204825735739646143988181205729250245978418286079842664598971144691502428208802230696261491430962903705349496242834944221880115554804267971161861497388029255341545124374594933702807689767668670931979220736759081724472810014466374701435986872264493460216395724136589157569068098286789751146906306120463393023301261919194182172016250601618523087074437732182339902406943365644583854453884001599796122518123868652457279399434845423995027557352374875809643876119025696639219834274622079838945411089220801914653153244965141810827601820708218593554422502367368513450532569855039434697379999787257587098174880595791757668953731106259642471894063779137649533808348200924981401730329271608471735984129548173803827673381659743359378708170730107435018488362002280022791051202863058452910187835666188563583723263765695537728146333597133140958989891757345956296865020890745290025469730834952304272754933846333722122670109119720386309666197096458750202448155624051435573404527696610686054592744128510466286468663511667762353461951797816490700998836460915465500445043778197715250810950220809712711903334453552492046175331659238808251398037009288590064790352693665406838180569451852466710239808766923963329562119752459957393399341778377624092198553272192427711998663033379460647764553871559046924216734107956995691831023917230740826140873877746077136120588440243745157477840928308563683652188801214375860176579260444058316563192870154373354355459469600760028904364944511946237218243521845942766697174031371387462460831207849281764134921734564570036025668440901931136291375675748631507983750775534760818402577159931155852560168002937610736192403496154792724588908575919852467336785211711739039962260257467214045115499406342045174640841838314921296021021108437417973404462985060225740057524356130382620598418615865071620914426843936394271319820553869671522926256398672175248533359134961729988154010833660155688731731208750608871086476752184898196416648198734111139062164430308536609705647324138709628939019091345812662312011807982165114247979692449212516743180915848294222916187346778015868797617084859427339453096737110546172970179465909480614151502497752384330370112311702105294680953403640476548010293249354164209693763602327200229854208950254812935069370026794782038778345458353353974327632829856115242600797520885577869542233343161924501240412003107252751048693539144627286241600540521889850046551260178078911236207194059737726134099607842953733087659079243822924220691243437159005527017548549770796793555521105772869585277601540795611964964419552753413688959333266099710403395032854719792886398354671772462562397972876908795256040770549864174433080013470419391687888533248649345579435630640607799387223733524438817650829220555833731111776139656563204860604818984112966204159413073874732002693484748341672815078130500191247959473728321996239844677466939436631336490034380538415028108359797783734413767348702827505674075040376127176287910870311185906766496672424236333893081323837748677859654668549568345413793232890473843422594487946924506315935180657649103643119142545671094988468981632829664341627233402897451145140461570307149448124886671766290530108554981246205067862809590080285644640793825215519392659065974240352859415755508582532782980634209382967400170416527377795944573083114662688337711857118717672031061355958085544818030876538907205626072299807970743054238531844405460814358637235605819857315973612403870093210001643187473553551541893563324012335260135964340647973271054724286666820765907277152670928915929686602509585699231102418724199267316857298330530493208264734691253386265921803652066537808593735758041258793403070315561122388879002858200750210089198100209574499819757828787022681774925688158465380828636248717788985373985634325641773076539972698989186346068203164309456999135331666894036220110272316987785249732118034475146228523866336020264845286085926030114230317571539289634474231346671867116790399090390503107854018551030716604959393196198228954795401570586682761060688636323346093672112897325233590060435273949445794493727871047487539622431388031311075978529197982794745639755987666408070616455303790578691920611131237454016665242694120732400114335374905157253060227273896637715771473044947345634717518087928567484752669824124453775776460981738843474696125458533923560890642055835466388355848653210979181021740140885303156802050224751970779231671073799692277548567975978962903846757452316306975866150697960763608628591015095462580674705626558807562199698663596894075473726976089083792280528769707323837932612298390374049735897213290409388843775001640232320312015609621655707525821159798515604273333389586134270952446598835997078441081945877985512950163824340185381063200939343900050944352581530365892563394284161586866891819894126088648386327427394144661056584409525814033182966533853269777630284194960289346857171740994699210955357727758681933568351337211993652060435194923267773454223000515329893036772589813830376976545761397522510729172563925192934547414749221614979282733884970779101594358564567860747865468407399106003663675869723137769002462021968842292552552582781065438650437828321406900575626409456968264863388329588967327505627978800246574490768518663061283129228287819719463836463110985875079979639750675644854347625614565435397743650294351306960331610663931049070785089363978606337334948318754435529995351499337055616523955801428882314790223561456248124076078731331879102968994030740261601864053492746960633597323938880718430547894625734919567336337967569881705953836441070714639338930172912663916746874376591673888547853133666104810022223098560110611076013718109815642789559215614427059329399304119494835746954856607739361664195027770212947824208584925380703924067967768925023078729619191384018441568031838507861328798714219276786912699609947421676683058822618817330223365672110645233377482911957670177049815031160462529835016415288158420015046797775554230394050118666693900648644142870507767763882206888736225117166365813564273961614432938292659496768623546469202131516717899854520088946909219535512259989294427322772416266343630916867742124849269566473634989226083162626319299766450186467622368315830749671069824713515649285848367163404028187670273764499948033115300712808200061625085001228762463500945176783055732622829875545284647261088149972214508319093853827564925815929028860379272705822139545638531861870530945767011956703294184622344569036319680162093446917328137123321236350775483298108108794726646900160847034988829744268149922138258440133017438031072240880879354755232361045629304057635524848075590916201287382877753455589210714763536127915116609334026985760638333635289959330916765647650081693393796487723169550029958006787611445336683962408616795299371777888190852365769371519954479725437253601007201052018955663536966154926348296719738874866269662321765018799503500733185997406502288406951385045433317689777664130285980137813156944644376006614376586326087656361710184105732967245553708223918506446274343631323938711054434128934965658772596213120310126673231158333395644624172617809330614901045017648142140770941844083951739389558189055557961053146062256697474095012985251186388611956515927981559128191430339200189763878591817303967437871212574220511323295328872039482828554684115065881005074303233916024682829085154772888879057896216139747990661591289233099358494777522623307816422674516459766572819750559013690955898976512275393481752467125495980574738769536442558353212324802825960971030202341942114150701076446414292582542602993362415565755132358996790759772385128261282117934565442058297269631953314464154684324863876511010681348909625385938937336779257466664010358780271425099396244176097711243419515714817266780645123306123180311396315230301146431884267279459897169484126294850815952934978884031878854449738191149863431510744999511195295963888310153941850091845299163491543126099414877265345932816703179214689438492083232684709613241911813935638059206609858784814729271175875744237759778411850309702470668783300730572142390331749602788956780929897396444445305352733024284744346214844477121151500171373553740348971817065832514251642385235273371163068907688541420650111034538570694528874020690955406910938040928130439114059392684299687425957134870726498944144077051674802340593603750623576643643008152035026718395566068717128436291031763242895009975013835855225251564679161572983656570622641004311194104718333128176830187267019651083158850954558370425810830099429575758404808760920477565740663041103130279843922826008396960026324841935797874522390975097582403933306991332339037946126814590175853821636088125294455761545957778884066577722091301031955341177878933969993264339338236137934719761231639819167719681777817867835654753657413514563938380646209239347242561333431261019229396297044222647248721428210077962447322833286542615200008157036646597927166429432484131675949148362856182649569238563696094702462514790124984111578171650022374527750610915416092032708274301637739119716909016197836024318492570708254283758224369682248907385209182031183756766952022170324999127289889570374940250202661627366828305561867943615405751490118562100039300431399325959877007752414968348388226056215798227359973665658463318420687695624611429381813837948436434662119020729726154620714590735574170802226973658855075642604603561187643165845966342254593232421068659380862400948137686193023486959257304003572320590457147167884139356767208093098377103614997897700476798447908499304294163571332280858442244544786888183826086534504712604366071394974720388018730438202286932685241152511298629285011176032239694956585761200442628114407786317500941914471405447896841777541161698324639437267800088448421740531478572975076122425934022016272485272302334963900323270468820102892690622534527197482708899677054053081430501004144826390021913009894144586794426094422742601722139666188129254938858470443124239692908432855340936188519477528399698904948756806351144795874553099376315274559281936371453217960830655730771156028122558828291767708636701522772749572555055970559308456222288934969863150164344985853360687576824198154877848057716380720585696923923307800981630190247794388723781725155234344124714594864405044786942288424200861682427887288911599200929913919683800153578979107930978226340133790840976795189408323153793358616015056039736795846581770125204869391092867678954980715836956720955490602256823816524873253005239401792032667865400078398530456924968587310690473272435658244892091625088087142124545022099836289951784677365302376757833733526573969624111520650632799450401060289248686861538863160425507258601739370218068659304524033074855711743263287795708119965829917021587983084552408700310226037962019398424227802357889830580439542536152189928951146806726632075312928203249732277486580435312770336299044779005238704904536918781374163226152833790718888892813186976134743827797042444515192754274141876957741627920408738485869861854642506107674613218274188972429283901848123980595584583491287219297601147210751060832360065608413409223895207252904739925034078153390941032850618075563868184673694497044851261580129393488730759243825626440323000960798524921608166235485109386624673052203030093310243786018598616269069093587598127982593008871445425124155717200126334308637681981058324861768180821202166745228997633381728669989987572512321736703653462978570213815411191044691525414023124610739072713089800272501493513196022577730707034677442776752372655500046581430471482678908338334311451559988172652011006967426559159077411369929731341160825289962838550481663679440240098874782706026355844729325025767216716015203015729254099751977815947806785770330618944250197569261913172816097329592746156560024129161122821200087454862193765450113980919536091313722506252637531258596215614251159278990451358250633450219975785803808715383983391521673776615213909990675682972664960938664128261834755470076913545056123064722839196015746207887614933143399043803742206752370411640477827535637227519195164238906691324540644317227804673507505580450149489228808543176602399336750634386401881683040562335113921373739111979653526561457298603564675542734933855363624710483153607461303972475620440049740937636923663977710888107776078866137531050959887684897717841107751448644398481859174504970982260534866312951723594322814576840420933611364813207134198832015281457347771246087916061413371314331831095583241729382468601195365755416530690272414893889174794516063277114884161678519494933775929100108035563181942295347193365474260435107687267717893893402958860554581206436354153905006243172230800229747078069259941976562718989921642789728181101410973900233259897255129833729181901456393751261958687138150050529864120320948204706639373726343189597781839279822517348700929856477678959058121565345063369368045188615145405285581687950298282968133658579999326648909463768306379488423219375788715610998239207885502789354159279605225104307536379091077548970524491945628099481075452912259452141465457808404949175156538552168311322654213575937560349160226427289777075708405416797668484899815410209534617580835377885292465329939091447350109047990840976149354907346666559541496369099556588983117242907402594646680767813737859469174862569090404159141564033647124454608204915749352466529668837548604688023272395044790621657302575148122508200520275573847755035332920204813436193843573112352604791526078403861560246580955062091067365776349601072121505872059475113737471297367492856895128900686480797157814568351624638002382655664060761193536604211427485540444738225227287597219123594114849560592470432399476856383316056979929097804472342415544807146211324068174400799482517149486689683210363489572700015570712155654044521060370289001214821745419025976118362374058813410460108206459252678486098385649715637982685137828748440098849515116349661709687797615318328352940336858688432244526602202224747009604934891211201554965506136155591238491938678726986752206352885115034315699820106740348288839518113215940208488719844658171228741184766796382589785027435115468046728660017655257245901316165442902371096833584513542221809563632816169508422061139782092727180357338691305830670681091828710377193217795481661232221912874581093699386886528190690676711494502305220171282003582879407400038367130895550640951637566452646637744658023463675345110460390250547964696723504871030273623072651714711783677870936706775342906599386541331945188904430663933408629019972333654509935494371714228465713426181947150461752714479249442205352768543062809597238124036574911926833463175090115918558081868107160699033037345307399396681341024183661438161375978267723017916865464691345263463851247071149660754125645714173308170573066943228178235510017572784236797291268470451510002079326917326600463336293622747759386159889484995328229023193249551686257444833699200154311987728089673359263512880936102672994258422985656457435422091095214122984843463472844867209623914218088235339641078385688276032154290045728295848909545084855189184651696437650571315672681216185320829685259361503332428920462653246488010870621506110902696550258665580797486651765391240073356203885410071967904013907424366249096238611746515166459925422081802039832850131430022887843778677169021549928840144873847021316124193335368321941964234604212205682538016498096087600209625571238953070830435746482001002271398701107672024540705301535065932119598602417126054166609169185542486090377807001599194477055318556247582018026854424796023150278362390310785558184310234368478162146560955891012994797503338063438500192302933553871999082550712838543404108687801299487753598480744718687935063914683892353488815437636160740289319371026383805256462503040603209442629836446346273931330065587083664942496927586419153773561129715170894168282152720501978793844006219121314427163980989876940640291676500318124486694745283448217568750190242121273227686238711573767941105614979638416477296087907368421705861940271457247387654179621071261090373276657605917735617962888677716663886297349262434953560916625570375346742069163507522106507819174188713933509499615934810545487910550820118568972810494190524153951609702255060126197531494485001881914248770540252531490282640507463126579973411197175828395010992354699628942743315667986518898953265014494809577123151465190944103245422165772614722615930531057293109524094055762894385869027491410579078879990978188094445550104290931557321344279327708087197805708782249147318251959766445078453988835109522284728769332943470991479367001741178324229646416439358351504205543093595231255963688586425669728265978466475018579292133892360987614236393360028260040552834313519920581246105538962996612010497170748336729988123479835119963851744180978795162309285601881805350321991866952177361850247822385937306385330090141153700615006307152744684752601235764872073457155950309367226253149623008124877101254921825985481907387916334420113404544908454560948217321751318439285142740588137325378374015595601994462292582788901233884233532870062178482540513260161296877986466246763783271503093649971601329994350144253783547916435577077819373352116380041239201238978068902615741434222178433388818528273614011209763502826719783036149045351192612451021570935475231362722553127906412109255674050431518031493013442581147849647313857896301192205766369958895943158487857999762770435138159091662779327614861135735874934618397561166968590276784625700738812872175174046472434147861694343545503818571219572282370592457437505188123719966231360841142459235811885236767984184170686978716029778374894935163415327005395440897454877003128561036541647271251490575305943108977929382661362909458575591037724795471666095600530517178341274272992693606459167671771823216398653073111308520587779870798641633894266197022717417314050385077292808947595617110336728723619975236351514865050446647049743441071776816282855272096890621197178408090799695597985231893533783535604158354674903950551824922713796817765256504385750201516330269783622370365182028251761058640045260935164180337416645594076511400870620632335386644638424033669188656465951666557808644726000842188644634394136763043150109662723685402533214827287426422446761243929319685282080001543079480231943134919206731859022950287698825333741921940367805995470208173459642874479711982936012938087791305019539239289201768440799625547815021085998645369386179647215752422899599464565612191500912572736077435656390184315874275984273213427569880632125414931782298526648880109512373173416407873520174022064359084722351379944176343683756279933581705100471153807256181119081411839615751641433737149021230809748761720125625711946431329022659830550630340677539352154622628998831583002886704544044590985231546270382181936123721192982350294265386226908194603819817265080767658358870777927912283061062534168787177836696887096982816334748319451459865665821230659738234207651268732625170447734936390622841897766619292015938109096733603859321553914348563606728516664627143408855574572348468803853855320177474598145573755396050273478519861292244864910506516739974992061256317786994682193087057870124836237281048279453207550959742259324517471579779747382727779470540439493869499524793940162294516032755103512924833567695009047944934865012484173964206592709280890557420930482374150430115822842770745781314575890813801429852647730758902464519373617785049262190616975870209858168872717844317517785118616174337331554696762101953216094771499256312104482836167330097681263938754075708540374195123912975743270226911198223449202123943298219124543048529581025698326130194351478996248965545596095596930779746384732611848255247317210560059770353816763487001670004445415721117193405536346860035127357464980469758587656203313302326393630591033640019299368686038412672149175949479077551263653843031908211690867064634776947497995562422999289488094034984215403165230179990210963818065749254074461115470220250340327537278743970274042373602236048491110884451604756001029952536784601033166554917348532551096646564029017708162191274942745138169232465704902664317462352889790219279658798695004797447317511428232837127180751506844658409506084080988206164711494011337027846636413331679289063914822281102993972035402465677491808566502339575667214885295826563809587824368493767558156586794562154274577510109750802544029121395440733231653136228634843970224703926139263223361467502725312235951603122569959949070850976244931994128381083171464145482077471839020108995346829949075340229738797913414689205337927407815614522208486339266476471010114855294171758745279774679084856532307867657570503916951776707344869701610585295897442720616204395339245090508965593727024295433370377030885847327157990582330641008576115959946580795512531179369741304776719300629446816862705288236233344375065768065385725960610153624587615478879637756339175995200371995358140362041875547255526367359384125418945022791218348634978943412713341184225556663694741454721956712985491851917331857018724475056713376184229821806881537598351947112983074713608743717127480311720971180728043327279322928877380781285071125414285254872343667806696272042617405018532590685874329420073306721572475633790145655021575615600706925232070789751813911907991931821735469892301036352080299611953694711687581945048885833561844861541857331999446370926229343078836784889372503790688635752015581968012069337049066475880726370753386371178022925668052686930870607307635932130172471159241941534495381700522929217573962822196060745222384248783258837088102662477050459430581979447499602608408073966762969112793632523255189945414135126000066904557196486341444256008277199195654676077611779717671820158989998480030992357022407100692312078343078365019104566827777365315603978519536355200871107543328987016438443409157235172968501942889744740405600780994347463177510015264130222474190168053523562077270491093651889322645732617766559327173212604304959027497550444456701163278215832499260156305037505897597376681827050031361177667996145937886912075950619603301733304056287242164865868929944921718600433969776832662721585941824901262164042565620133528956258522321752300217280447673665958377890504208662096422755107306837558122321241374953432196288251795343716007748392955377718088842612540298801364855961864763182786505494080222676775351738536277862380053397172892235272256622981112601529378386672911982323435799790496534325936354496030795425945897823141658271070180471357573167178540275362745521139173411756834776197626266390767023917361744584390818458839396968594526462075193706767842122242223178892180500208902454753046115719544786536559725720724848084581067344612509833482224816072871830537147263937178930269947827723182075981632440336328504682745816494142658924616032432932198727302288041543268884418795435144242558089347950507580994194643427845442844844507809741957012214259431835737372431205698502305015925909582951362168550327739558083864400937290143072016204761431822254091132822297561373112934363874060313115771957746529233222477931379487395949056046434895570449682038437692723511979422428941292967483185000025159385629523536417447488992103927612886405943349704513902455602813603760869254566527854706124499873958375442591921172986320569359790949390334687882409816052141113173791017909393236326254099365832107492752516568412393529724414794338886405644716398834494553049483618119839302125081144423545905668267889702508384251212992700066709760310428406823680797552760714865817871118342847750298549267708804353058153927381631458380022852110879169638610568449496335782676341996044363955331624968834548667563867896733065502021141100318533900687002058663093801962799689386517108707384194165202881585076172680755432986323542451623091295614465449326544227967430957977772936016766653549322406412382896593652638949794566200463249528575156989533696389183985638290312975576065798023257628610455598605714729758649644158334978611686604636959338649882799060542155315808857948213146515434778205291505035940163521475793986367866681034544079801164586542367758229215793842177366645116347923846826887876075334903204354308410070944817481407262930481237991316121537366849744001815400038243854607644702502802432421126416607625037007019137555583330054951569487785716912521492606394261309156807840159776687107365857752612677346152627063192440597526289594388974143092746861138222013259086771317336381157973615616631176611687921514976666659587367825908015199601207578491216617328013386482502698114683638965784977229467036266023228483393070265798797116193392322133464264030158879684138223114765723363865258643499202698283206847823392377155469367830865250113914023609897002367188980279234327421586219408624274366984213704204302185151749502403594985488639156261761584922714400666800765205287896184559448729955584451723589460666022157946714106337729925622877362796061947068359609573896490681818953827670719656491670849716903887904346363132292717869326536248695082165405440560431034539576582371551625415148720421431816361897371271300047998441727033701194002601110642576484551688630808327408049753166329905406658882705454579358618494388108301076364021092499331970186382103233640163717534070940364275629903521280077857892775997908353467037195624192813742617141779394476362071534246963204278026361537792766618186113499760972334788421031661601578006293350199219473451753075535772049032305024163169119620002437957638291874845847981118505473817525280570665654352230223899753280385447928979361361723836011324343536064390397055056493144244408064072741842257511631231364272380986446869823298862833249390394417595401457579795375994781025791061261745020433845264427948589990962916039207408672119621749666444004366685041674338353327807073845356848390222584749416891371899901261871151551463127665377017374122987260882947461226422796563438791043147741638281923040279581037197349909228933264983703601804035610744831369186575561966613587392512342926247858865150527744340076711793993059499322769673681289565209099788171265439041249081383305325021333453145623467094390705719973768682359809256649733631809442844653271141384744673370237661837634316376519883447903134219386735427918020663074740083505300287828172926634312113022921337674622689668047319036676487982299334972403534992039481432461833260882884338880951807868139738978553097509144587957161961795803047970694989578070915316038425021711143850063570034878400793117866872661808461963577948542795432029821085892614044569703922195932989861900271793255945700515941766719997746938898447316907779297907319860449654936924241260042670225072520084045766739663745611010579930343146526045013656367548781658155503468730184421252288554037346959133355785310652064190383737188944349607873666169786631183795499348578718428698985259636314162657511350006336297409213768226553011684643048274959991788410218011041883280973605592493147317926253350392381186566350651503068862411151087720276443785095566162498647796061442656044556277153369854598133549711953607979176868513553518045626352323877652288361123480501244166647739357906863071822156945278126379948278279701755810768763698031584253223789063378148054416543435280947968759274093852264842129038416067004472739738777217850469615359241116130732037559862665667117872433950122833083837892631659515834115944687334530246333039572131492498234340397691686901390622411169692664312150999908981512810738576224020484375088008280874276201328704659486303051541288818477100504588628324606230147514484224081694040036159944750534386712679816075494557743326822229035453597949507543783265410732511274942918099260651234468131138430164451777489049781201685362707809816940728892158003293564440162682814692546703931519158192012681311540565237124088835161609227246907866271210252696162517000188693099454909934714341739103845713976106000068116992456148404127393789756599943717138670298744057784692423815311504513177577478189697359868062087437336716793134331969044542136679879916166648353564129846437561279330102325333975581462919893318032153595963961233999901747387690035655109247819388556228216306611228807820757138369278560491845307064979084806737136975950848530099826116890807834183002043398878301855714401564800868171921905067059509342304683979959066969586424173768432742950716247096502903408191349995199744255234428265646287304303675348257133044502351503578706170782520618392252394701779686483513121220258406320363318618589853734750169798979992243375132780380296798680420019286899141474864329408108653715739658857074702483187574144537915572959138536587189380690935663511484418148864082703301935061909036694254783125056322396385697882708633026486611875073728770544491612512050451989752528230980988064471635215583683550235784455393492238169338453005265610342351441941963113853057879249090556464195628424169380674956006337850308431715410655276129765237815120375134297310299139062448706067054553407852330700780599837394592201710898505273841552379489273220761719978634646409697103668596859694733914473919397461411068285280313539280753954905411845778000078426199988483430177240060658666858265596677802463798968476801858957237812224585128706354817655002877066322712010068048469037514034874281724115799439004989240197468848285998663433186331297275059604097456975146382333154362558015953226134442648440301282905898020381419179847157238263107380504675981612042434495311773082977791615864560983703313797720792756169274633933974337933358103382841361174927740352904195145666349626136308963561945304199722238648536459999606279517220574733300856862630717602223653516833643990620923447302795975357299067060388251493245275694415622649926071355248485744142946084836405769098609959873457933766361337225135693456388276793261177436061058240126683965516445739664952093127091424149125364157532401545205932828808623985305270546142843605171067412042839303668926245736858806688237626918611945414631513290414803910627883945450362404649629869758865226566454863809015533627630326056101341474521201289087524034565613940266910365065709485565848530491470572828773032808541503277905136401436654057874573350178768471845284997899467412515160260236339230475324424878522322826399497867008307514393127192479620624297801871043501785578830768410453260658904211449962864445975686114974333244873238229878234725416008955362047601853153100316007801019695106356967475058931340025192365544166325717217798714396085692004298009724119962476100867370365530876292283046493461136868762199654037875182524245718009447926444104071335538387527045241172741010092396319138852697333419423919617209452797714552489982045394030104310704377347736397265341967744476508972140816154378487305598448077511590417757548801051189977705869249355161135144623256339585327996187327008316734762059357628534273246959469163962451233758931822577787043582264490269546630261075288366077081211098535217073360821637648316494955186219555399613149488107035088873120097366291788632736250206767140412136599115440002732287203241589377727983240961900396842578831285314801129625224370075005063788029045978976117917076885526235434445254630193846977507391925100289830499147375241871213187351321003529923336529928779416443790051944248804156202382981108820304705657472835085987814620868718543318026301615101891349865460018855238222462690578515795918124678355664731991487477626704372752808123317398366734839257794820351807026272322904832307173273560881058710988293646023807068734733493114148771682408016249950675975208905931804806202865410038051083081458254320456249423643323216591077594860975261531702244882926393479740285571677632800215677975138960154409109660973718308866540855914053373915996442392674894315060747923922739185300814128068651814475597622643553972224002320871042363311887542535679810282075191431324470211142159962730615071799231861447711999696440525918248873387528053241509725681350392875037245840635702196262894285140675175867827168620162506030652988561462480374196600110487768789353289631908407141622144789567822457514676711402918225007337749395619749749903560463879162593833654601897245948190565167970193340258090184667291003667924356133820650740901639508454226755968619848950525025807946792653099617567779847513400573140555017793257959318875909490803131085768324563506852505719428178749994755273354336768190241223489509553947751305677184417302206194252108148012283870814046727203125694914109654748782174583346509030434723316031684593991105224424268865932649862020365317100303717364791509013783301792857622176991521053993043982044946669218451864861843595195237129613346980989410968746373337412435293365887131718148580854512012084786305104444162036480936008815606342583510185732029681232296636345403007585440755424072212993003198399092238170677127651111114231581515525427262056012995116601164361878606993823217377662016086741275144727934458904778121418192094837658536950041062517426447445742281838702994519524812717849391373455871646038851877587982893124266215566576079579911800822921550915022482614254629196043113841266345756513354302275004092793994634336853709182566309803496343569625597734774472683369274358713206443733678946689098643198378656743089727599347338171066809582522731147803551931020429978734937316189383714757813213318550308833566520504321355468946566780987797380994597517766274728932572865191171096228721594963063965520544460008683380092520662432343831425096685302275738132123302874256757784349548429590415359544739294980914736668183849007009145462426272147657239501349887983764354092288721233862064848385202895339561502913489598193881554285452247864715985283703373001614519693677624196723145390162572790462587896091766420422220485595216588122449481621277358470400534454956325370734395778258723926424289400650194570298152480889890157014386400116744612420388649738562589749523408343185079860960788289154551729418632389183140246235735266478757697608865561338899317216621430170784288344460493787098146566408568458641117188952949665573900024662651619734142429714130888590036564230924023535554601244703051505021378340955266396910335127865761522354442716492887959149689802585425132753600533912865838341483615932017639933054750242992232792942730207423511822046777543037657633843213626751006048200599975319095465093186488110167134696993633235872889506419473414447663092886943965071005797718037996939490524652386373484633705900185654109239870661561175098845586233360959759393440694998299177813029814765191548906757326014106571622111774024357570488702687801841865613687556308910002124207158218062344156459340779765305903665037911641558222028853449296784433061762234824511199166018197357102775537194998975045522150692479451644775796729218145029889479460568852122980061806203106908523128501292550877906096815147845398441443150669851151755640197433112080103434741461607219092045151523079723531066785664818412041591703762999381138080235301689909883971589280015590229264963678294045044226904130001234954880484446268260844936209140056558018465973984807502597671797239757706841891012891703754622056681917562342066295495080855769566634076006931327899620080127891138193013919237127363716884322053028890785626383757163112169706466659824566480795718713460714948655292698832027001953182758977238610863658803165904987303448265973113376934521951746679005857699920444643081567952289917165428804744664504044624962130128108906051185786322596486198925863202480965880050328720074632327837441526763641779095826416912945569276710151408546449846045240372725142323420244432306863929367390566639457420935241425438286518704560521489064935205004895398440065338160523357285598905365338657425364152516468968693376314865576665142302465900914227514000924555157225574363882774234523984781283018601157111742442451321634078607371807655041313723934589388337021070144353729357478518983625725283526595379849062582827222963243405548398964048133863060469637573653201648345008151124708129921301851679620224257695370492609370707345607907627790870562243125346180412505645273804018424807285561364663568646861851691359310524711048587317505980294992476800952044430083457904371755945874903374451837430875192859354758901163663430610676956468790878953231577979561524468514518247674956845550184830714324831868037888684960381831012222502973913340546628081597187630538383700501332885408507708436832714778662645392829714656809537431614905442027673283549675772258296506683691051956372592503611415657574136437288605752776499647859810675686036519726862580132394383830237165581528829224671359436581081084184776867365048896271911286894917321227729014642626216456819983090322359228448265475916026860961200685265229519525260857891031632978880895263626692882596642193563606754966372375207363516380099569041171540972193018864361805825355158550500524288904261095047998369835597003044298780197437489703284179417113830070865948955210021819286619470997134072946598648143400506318162650482735445090360936772350678232805324449914305989151785166162316964261923660924701525770044229747728982555235067698390643186058895061891425304524746863640586629478589104477837633293354314952169507252162688302544939014327963075894345300449363971219167288944895773740069372300394874010397902444033810485750672328625018227337482502156753063799326609184321100797251959510463868209975320607696067443992114109392445445965357570908269266465791567814799874158714966835002208875239318932051859618047908556796807147093573825497037431398963158841695700544728382520004492830120469274405941107627204401302812213432139970062156385309261517547087973964429791671173470997845547662000181599808543058141253700272941871396308112648593642184393498590972507849277124084380516902634794973448875972564575314295320503164286826207426638375865677688288073398593942748367722671670996502292199892235709866657952876573079725315213286762205117444667316084073682785820645813347684068295207059757576355495094015748909755596300305238686122919665846738549203968096427414232659583223302933924911623890799523577164942373909718452990871417500621019908378927655488281401771097252324082283592394081096446647175781660949864828091818095746203063380542681079098984874095796199693009293644782790746222829753938309128427447478567868562353920891200516775306320858283687816907931697690578987745468846922342596172035790618593886085868042529321675148713830681812330482418811141163915960714115015090115098053951034677889243965472983329414388479531676121981119446821477208020362297169852944239859180338668705584196381884769602729312448205195482397466430856021298609438593147843136965878806112225314758105008738721871165998892639486138066477989356310929097900282471842181867004594354725669536686793371342487617315472259691743346860563647701869878761980506945228221084921033343289544999970301583549289549474872588669137519560861879183836544873278783567361814437504787755128500673565629859810463355863666163087658663195837791845500295174728239910561767698741751901021979776538117573528471682774177852352235985652525941354218978605728950291491708061822840113769410728078614494039990348202546312730580174274816696911111741483115848508080546334893678658115061105682260727265769473762810511315192110707846454053514512166344523588987278593893305150467253399080338030262377986429078737897159014949290739599008389915683339653450353176528530938826164030009518564809031830145059646129997617850269497262774819839787830676691640694814106498075413181609310080363275225788947248731700390024931102014707541847442695464666644703287531437269820304309318842500998979447620054870947681172957708679693543359013238298212052444694954256369131318641430221416779617624668962482059169961197636464644862555095167294258189149221502748377306189408209351142079001571705677200127354707258201992126097111329809032698918390172450849110593078434465157192740539323268916289969772204790237696104547140746198172432965759344752231081393158471018665367621678004238193986402291534637733282047621061118515008592698049423963984625611259003320345308562470182152419162202572989061621528208129114779603944548648337350426687504046520103512342600046076075392700626516469008512081479570787076336884557579989534330692955947863640368043765256751492187455460644204197289577339655548832141262077412601650053159908550550094234524664853269721215759388986196238698217105982988606758525210526161561123353954813611328578792311101093031767385430223629297823306236648524988297987478742708603818214978064126663710346547258368498137928902726548942150403735740250615260144893987649605589297135043502436716501490400251422320020087853896256618345603184003523189073835491259207756567868775738423213900919646773237736522884204604231259834800081007416830769791943608583808907053233511136062329936675409587073110405793500479967198293623172214897324063209009359943641833126983624100114773803428042690075538565917292115797148335730643479485657925814449916107610274993322672900695159456848856880216649512240447336387588339867818445441117888196173760079169060804321964247747569740747755696006099691316577258498779024444711370244717326002631815895062569474771513612254375962135125039006903205828058535588608694939455569325340344811739334094463763552241778962054428865576432372926046257819192750139828004015887607219172911812951558803341715668692719668519105981452435312165465111747560413677750573053508129123173373068142656826649742150637130814233300638633412927948927904231613038052832474915502630170611532284147832000223910460943843153481388269060268387295117719585271906914753083480450185831335705563783507949809449968858763867809976853540810441519332757827834150557538087411174113198985248984179289364280773407328451157551903981820849769887894038809804009842663139525764521445755180470512078591415160586283736791023562209783284673414529236259719953511538928437952835157446186871959929192087465391813293632071150776626740064768341489322194407011366333810656864817987183050606773853835423986055624164739203092618746630686754755963063956292037231379305461919388660649449133053798583483080335945415636315130609595711931262293569345911679908359170000049393478183434940960860489397475500416790613630186376478240836079998427464078649920093196515530945639814518108091856097407440276719347730036688744082871858740818675623370548135019976474525770095549437914154258288446653208902755421417232330377355306495126139812330613619675694810719921446085034228377444347695733361005070620909634663961564571057356878377435164940682683250124829451092852239461243851705036772563391709186195521670231240311297057936421623639006378446315674855893356162346405941477557514040091017473429229095721165706024150967187313608527737347469255242340744252182679020361175993947339472800131789167110347541803715127319831127590185300302583987432123092574719101705386548699320117272999887167362239795577788450194714851728621751454950620008896330297651779551377216532461759774548033207371632962507637568770835115551784669383200930987866237259166720255992449672075851418117670137560260291324355219043822351302654360535563914749625429230606846332277855403371901583098610094884190181601634277425252644954265903462041091005122626968604966292912818613042015547817199531544436369241038059850435342625830093007970232740267229264343737629060783109247789016823261845439990052412297891711660317318563452843678773198875478730023838214880759046594480573034027587123674381362183003631360231767254260479308191287230860104872913387763443863836516971227057213405501718786360795064000069253475741130088038548175903103354653700032326066864239123564490793182529969767481373807257226080831196060172910182598361645503012994956183946965378982888361991694343235791461381340151479216112187395692060536054990524405242752647010550453410542303380024931377314843891498764455349164447872860514203656733300650023081399303083801699236049402332074564007773579270988401315586087817357033749194114150454416193805429612164843431298936742404816148138160804244322411739737030362702060567384740403053516018493317030759492535985552974237472143345039195281343132978783077175189578984144233426637990837515271417738182952144477231044216820146420229827636376762906614511666402796576563852279099660456759937696086869777997747648235696694535828153979378034009887833999912361837166942677368590759153760929250964968395410314170521905660054922884207747411943299686849384678709042845700427431759964071341021352965262302051514706414755808828114312750881955189936446903759250745247965487512178156567344914205814449861518405042537440709003882977662919363550537280716339790137100069375542610369379875314644958061052988535661136191784300565094793924535451083386888292205291034024995481114309813138121529823568840690038302312043950751337862768883048257752276855796824970145521533709774375928962325658586283734690220599624123490459035485037855837432344661128211920069592017185122045135301761272740918757052985881280174937094502811478932023652625585546471049032346398587203773930092977967112214433026029562068730733279581650912210025001323978507343344308820019803786778023577245222268927475792356183179051223857632835834024756677518847688627622393906458430495052806758112924342786967505816498658420456596610078913700016862724986489125524285285720400379428277161494883994842107498972687455418418349361456955128558033914945903248779378272752008070095688350100366688212750479933128723253027178450756230038269577950264210193010132270807832270103038456505102860532042022070934055785728528813703940859643885740873453309969376097142014398810870374024973954187063763485500156295597717568047368864993235055249960953260440193306758175824249052313261572147866014858223609905865517106034069706274337920238678920743422220454366808715480810446464106640925977546987101504593291187234739702618813889788772895923347164090724913915229611287362965723871885441867313341081812874350704033832890779407212844386517465368235617907739479485385145102817745847838543610141906717261979381442617381355937510968288338085389926686036295137128712016313421731524563460419873457627661254929228697498663893253088807149125117917474509444238377940563409763362113532306057898006762340306094969013977214921278755644508793631284273990245810338656918520369255058952649916168652497641929283144915038885700956892201729564945041209013592154113215749593010071518832195336139534121235400360904358611872698709962845352177627818252697221022510440542798129685668800707817865582573908002273710854903019219954678780066503772608505970247319770551691013472954097670360960514787857481512091177647485402586730473766768094909154577938279163645810703833353315113429969221025728501326157612508368941393719692590325378652174157123277034424150854564443983832606032162544339407280726061191379369253649259684276211119107560209927087703653564691387371309520811476008946006856236297444151331408344845096874542359150198818294757664668955510092041400852046068015403955669129075301883822821744206528304950231242900994238389772184678949620944400679599435420541598030395165939048148126832678856950531973604252511669734697663821678172606202700890470690269931295755745148973280530787792285915142430831538049096662361285115718108996853939301578114001318364381610776939416938355500476262036053806563845481752758452182993686225150884438923293458531165536648644040158021758957557478349107391535470298453095014537498842638629122359775505908121547895572690840324908384805947830330459154503384171559629941663765249922846105621812938682929480839403398210264375512696907317483290158125536275585569266238019807316220750310314393683538119401468320182470601003040087360996416566756699652110767727593726153231377042690262082958706983079621855677196859088879315531304123103001363841157024381578979566235834046752539743515053897935662978449581134180195089092383843992165780871312947785914316309748195629600790300832403477476083755467540235585383355898284286503580699188411043787426740059221218237079250529422624194571767842097731764952370651477043669860523459173363337827579717664654501139771407911091640993612274971036407894431666642818333218005660219658145802675592792432132362925696551297473203454969263546100899429388301305331557306187785569160308119856030561794732772971209590913842290771167788611010552966953549277756330173924749053703329461111760983614077957792551704567846755891175871174089029363252264609982401867541584610356625412467155878655899521014621611249659558599926586958787994625660658841432415326544072108837281387426464212701372178555308594129917119696552244605856020511547834920426872221892827518951305056449786882455990170752021478164760117480976145983338432288990089408674672341403679353728709613707489389472858048309786161516592794996337187733503496967936393746197037467521114884730640114421681449842946485023463878856565657493285843474309757250433765823376831698571984961697929742839359896806841216619021547803553070332906884128603916281162046912097873074240945047014975713802849798532194719612743468507235903664322775779384969162916646236055253222398939912341282438617490120604020614968848329486668416898749371280896489924552319283139821443385204259919046379083593287299979565794766707319699702340841817322471422470899140216622214831671201352399824773141631539561867997058112819269911640389292603697826975119404210307757483744685324115132154137745007332806016295141937329969832167268734222657140056510502773402354863122791836758679920422268490371639793764409786769676853456908387683412705781094134942372819280384564843356060370620929647776370897995282721567910359563880613206591086001700869812151590868708401392588956258957550961158241999570653459332979203706399692874915493314791978611561429984916376134029402446819407527818258479847259107465376604785723167884846959502553260772747168582043339224301868804953085392261033466606452907571612277705121192518775864368352328305554593788716861210953017805253349287809291013166088674152471385894045743317535889594222204097222226709900410722265449523894653498520811932076798990003321085366767657144110885518565498707332569724377857741246801896859504885826270082997668304712732113761310537286468901099107413016067244739593878010334361563152973899573156074529469026652571275202192753515833464650381325855549362738383478457392937676472652733769261049082508554494123199659790483310835020287943353205669016835305437914943882598312707025657484021200758776806746808302391268168403643221520171276121996510151518434348059330649782672683489088607431156073090210998312353878520194666053608447449437037503598735401491630729032545015950856305977199760424112105220736141053575501846778633926957314753129426566649959034880069933489312763712609250970397287456421542776169632967037629190458953817284894153952654083550097778813376203219953848354453430297974677459970424769572901605163278797238858153960761154763118294454165507211806501131159313749571289625362787520973721164869366372560104449351489167290533631950593502768014027079168804128595322038685215837516118413116106248973857819452501458201881647310540833136638977710248213489788446061174322086493913001673781185066396784265671322119932255529709452911318111499156407014865333760560404281591659469913660829713591089769145339048619206678889000970540841032901197488299961107012385868287191871559087705442541856746133337691731610213478930236398254599261642120987261334227822199749001635111197552529376960233943721985333507207338863996345043419531338149952194616879129677056371562839724493574921906038926816805960914141102402228076960521330157996742147262772278045495908975864966008490219157941880700451085531907569880292776721337676066775054191292452121382791138503315321346163445462758350864721547092914197527587915714401787361144739960141555596369279987271658520709963211454686769615610271533422011708769550106203664876410599487589180776565648781610504463640912178464873771105046734668918837010779788600922107379437271110464383067295691682958264954180226576435544208376073635323786236060775271240827131328831009678594497596921173927761864862649937858897622427809148757899668218941617422252452813670807260311239569446519632423241259300238794998799199034889427047976063085186525493177747878064489050800651590051329785846330128293564132139571723580751731701051423467823037415066895700081028895840126583400288741455122925376841356985012058671466477528376669717097185157397006177897607244111656267264249296260090558333729473658524947048040900121233778722049567108170678397839574961037692501809534981421669811641878529382752989072419265581408312567422680627430940653057164797477169643968939386888279932676033414317595577498578952707536183462657560888586902381171245443416931746815017032936500826230230380262706244838669043473326919529954483244369923106364903139353512936913427949168262584100671978621833190355627529607863622114023814840930286352861355784264993066622709924517969664460153685011987304011365265740438087407978505262808618071437354066372516351030285583033938630027641171709233600509139089621659416279006409640096276912977277179328435225633119276745308171136614996275205763057037239132040929677456545938191777964457153643018920442740679012920555251963755921428781928566523871345608812301293720659708152020573643718631336079681297316336633906071972485901266433772502042109134923979602507875809729572514930441030480245411703690880046308217420533691703475448046974183303841651429166240096599246010794694777387729092388127091502139664069452633787414596861591912312622704077391616601178789300320328099329270177883982858768931115609015221598004688044881612828786289161212324739063672532313929129122879270839289837460910997358546594560151221105372106386255368423872534073085422864687739311245018818262007268207242427976575629840255388103603985892709172316571278997617883252949535031507231456166079513524354833058508433504629881980451857078798176848617081458290393421681630060407881709744306648037222254984269712659326675263273356723610692862477944294997211463679992151800604862129173847341468219989421107266286632686421690874344218738431523858036784619924830913606741993447159430790222105460145188460742806046643666162928308083110626356461786370741774008725869490644489220812404359008784506659773066302703072496236800328843670607493715503388479294114090480308451209551989588458004236026351983156431351991294857635243060434895975193782882384925280228570947034644169942716899828082925183984546910846525531088844371657726899971142349135969383321455485049398386999710579769574695483564499214374886202029452035384649731440944557938086302191168229407498314910005246394336532411681736426492284224596735415571593146223872043903545538779726142209902769721290466548369254012751399742116188259801467452039079044937568837204152199130754911672931024846586174299869762869381730778762118230775753114460585654535245497137237828639732802579223093580348098215288710210870639872253249286841231432433074321042818203951986593494684610379921579550108043567450089890060181657846766390092994585761224745406193382299214215827538237273504875122358933659188325909518100816650467110461503031779675034288436227034719421721802176176654121835276356074268199854794288210046680775816475047099987462207638166520153883157617403246071359675295579755787635659257683860771808246110479630670653665716692408569575832886059940758245502111331670472341337442119589573090612854064524438175617914226218986935448290530217624936711112167611171090794361890025036594815125798994746568004926590326462386046898630410759110374697261228939679959388358637615503322378899191140123873203082230622239590264215020324579756654457787032837240447499570313199909224449327537321995958642710385518824173639673531566542814143407791016930498489798847682685551754901695679490925042960722815199746955296693077918877761508822522544208725229730441783813928188736700153687797508485016765680149110431572519494355944216552750497471087286331202121237689511569323299108534565511514352399027630692555232678338883575559125813520847396637194051465756763035254471633850290999019015630769905345947036966075810769546191088652969131662012972378919904293138694003977067339250539321645467569864371907661278633579700773037315518152129290075503507379945038802863041981209910398101746394247652849287214546939602968165529530758243144083405648017068664571509515821324990031625315911014992550874122097884383136474401394595540682753078693295381962545143204524517012700078076049083339983059896545112992526036851452134389217601584927621360793374597209357898104472491456655260097629573254690325192689926804543051224789042624592776862777372703077726266012672252597010891603495723126585218288778040342453391617720149307693459079433288791040529177752920084642349674829624766301631173141469900732990418858465258930166708758258370668126536126118532703960798011819636790047052205779868536693773351077206368904989518335618077468915929521254997029463898062520684327967382599270011306632236438144875277467056980811768994700517178152617156161512705375026598811302724054965044627372049597697817321756114761430304103621366319961823594249163644798128811230177021765982442571814218413126440542502744475105415321759323934603975110925282510609619346692810499075704844064381755581135434251746719175664862062016354703016692479425504760482036745530570158367778204184145128617115084857618937201860534304854440394506378589145156467280429398080787319151071054599372164879944226143484515466939101590509711762888651433600654379208453961423035184923903633946773725635265133039120128839572011093081639424224964246891581212808260995604899316713581984922717687090734858343397207833644552261032902459215423783457104666580872276148619656455381080177903598439613569673569531011056829625052458396677402406519321847558907379590984301400418690560358778993142433006411603168117745362607534098505261523877589812847643294274987022326330991491848635541945131855638611634656087035920951418791415497261658971788383236729761755205605030390408746111250020283684016903999862635837640800065249108611549690960705452157521810777323608889818438016579225917101342933103242647666589436924371238509646588888300526116184399344350093771374170130234410822994800602566562604404881321448407271184739830542027803736748029592160715348743661755614920178285378629878536704500004377364637926190798718073116119498713982782612620356957609696903198317923522714727670945934767849132029417457246243233409480036645541358696439344694973635829070201107796622453283551625994471067786021221856358507570359728458982687205541127357387021058072797826772232529257794620663269930884397467566218305890550861614101852736618711610675385335960366866975970900169022800556028963166784978253552487696345047595547689995991014562263113808830964859893154556179462664425498904472674451395455340662334834636815275859567361205274425024588806046552744170444153926136339956438369217879106400305577397312067519661770982976171666209534366774162512838429669694741551395530841533760649112435739065553414308390853580195902900505530456724604242889100631260189820165767319651717150944318763076822446490379476582153805545874563801353861382526067258945709762233455510033767745727318005041553610578393991895680328995462588860528265511760671979960617932156821816781804863276462138208618815501119336164680756283016342757255642694359380923878222137158734460429032050654920216714750209462722456134780068245864579895441161049210274462045775631152837743337328803116042208634727118599746300142435528130917682753394673396165487215487302031686438767293806075466971591834510091654510504684923248198882033865991693258442262996365678937483003037505464947506262970435656191623430721912323250793709361102890253621717475487885471956460676667960874596622044682655736046484221731967375626399750130321618082249196394830980527771268131939179013889131455158702223512699977537390720800272977801884643898303497272927394550445704390648823706096143303150097455755424803488256161882908548929560704725376234946825604972763486228124000318036572741466042419388355726896724521760797352698282368475061939877518998907051975161264589195188260774060953433548181889298646100578468736653001273876927933596864928543247245666056500787056735582942176996941851825931499852712388572189911452182651855158638682797603642777348297686951815228005341291218400213288025914903604198314835831392242036461442452901357399977258022332736558050057553260469394116272986406476290049216209564821214322592053489475752118841199408719791327029049199293043315358594487494195433504514153779077270634746765578675627508411396936112373484321504169433676471825337410361649236163868839708596804000002570434164168836353883568680075585857279890984104818025521947448419028652801761028238190160223192953881373270945067444605731813996285226112108627490146056297422758984149380550269222460626584051632317783136996963706053664039711179493400621863721479031748459020753713093068016536858105445077942855315493614634368560828652128077178692217002886826684818663421807469145890275343146971883568772112877356606394798753420105754788002354494149292044418653724850920647231543271188801723544183081688375737743847987481518920320211982538994176781278044042503678247951788254475798442686234825899186720645238192152933459999866370427407359826212866156976454288839015917725559557771600395369519150339854534544596374234813730354734472289727068831174490942308258292483292840206144129912690082703791537081649520273592764086382041670775673190748660605298101982763166103268446970662677526177720091358696347559394061050125542199175484099632151782939476345727210648442538786161264214965611323174932213651929409855527836731379415546909465713985043966045453098055296158844381842964078658412147721277151182565403205290374635083285358294616468483952768552052095579179734420492938221648672240844206062818817831519259529973683974703791996045784501959738433600463528364130880578809713944255364012184488979994407054812610250082260843110450837220294224859890633066432401033498196061323564668999198871402685391793688706251168444931977424311239738997686847770552266187202430956476237943463134902767787265540952263525806664985387504998804664156847184334951081524141386399737264134884336502325397909486606766458766305320759415283879952028724329575792299491289805536466444619507355471392630904653737136074201011134719288582619970809932597953048331767286827210788146578427095102432844858132466401721190989527895944572779402232143296352458515240789957874339552506776159179975932399265575060110857648154605880255205791476286362679942152655309418332501966586019803905418282429704235552364785378818932598359454165294015343233513246078088861822369096953420510209520636696392517121357846330960465899100019162335890592376067746587118427467212608470075106960287470499830521956288547138347589415827368112403690922960818517086903941508181101138684851134991237939951324009988414983886554755633888591840528327853039009905838685922572580782996277795893644508666396569589180751940088558188791062665209105773991700998986735936381784453065365709690926364699480581757140227686477385268586427976019206792769025418548603943083339574047119681253230749006703872356877662093265642475068088560504194014803932747870498654188159765815396323509752995308965351550963529982485378266816423849689152112710761840217931603063436323394553852303543582709671910052342422414383912930940348429166940813526412885960177018628461412361083542906119588137694653982929928149252046309097666180621878615884570688553251656703087501919530900020365897217714278664356002968492568722596175224972463598627084208562028115070372918949625303591810151782901145564336339597387167291191862161492894095562837661772106346045477624515492700107549124016550647491504498474530904221858458543381128360261311559045872983371144661625408163967723763922099726293612644719489886838864450213171045418704963838253207217727346226131249880129650595657050413045634540981579899749705159353981725780747416823559059281667911180256188107001046783422480481704899849781594699990542730335914986236246373971024771941979639296210373992188985871604437041372846371523084538743582654801434424597807155323131479403190299856446778780298173486048792342501801949780507615611282990443063066002271497812362240943386129718969646378826286441561816184499103358367098797738713418632748965600646445430251069701386806839506927134647269244082772827900467370995755591112114642342467765437901944087999738578708941101295840221923055525650399841227503712961027889759148471125829278495914866497290487268118496909278020662025697089534842115874059521370680434931575269772271917860533953050580522859047670334456738800972394176018432755327399527766793390285462316892745734227354093837702527779723130378166222850598901132315247413025836151214102932189668657586519205942568897576728487593719695958873552246774365699754744371934152839239380657976102984228024443657092976638851348995389140456194807567171833172285632908348859439474777386369819301513704903853826389740643718054852655112439686299881548955966446722705792308990468179075589088844320099851358123377924008116333718841373230015487470498529634453289744977745060542242259418372366000690223927052032752485407723858761066492043695881205435160375895410690461936128360783080388733994400256723132309277254007582342493950425741350528129540091862456747592087713630795703833057750859071667803621331206227126423244115219543086451851189534410455921880903363497914080866246967483694738588141105229358487158274447103548087730556647249220086920694743283298430902839541123841672997908446300337320745086230650844682050459432317831163202832744826719297485764394861243038514220851408152739766896566638894968562248719569122276043092285319023313345163040057333551357357512670585814717460185872927345138367532365636706596869010251120584477096234675011481200089310049292847419684599833652137802320204195324717744361803977651969509510539991651542708064669716842161077193283361282102888788416103012916071931569088048001896386060230962342357450239614015903425683474038772033825260036590702480184558447979256450410962990762059508649304493001891876530402590955195056267057609370253494841650487356321864402253519401971830702883751556883579834231470761956577678019225558522602788190015031182793635688049773302150573129389750521745850816102372379048399953580873121824524573681053706688267878014336317590377660721302307134242655781255926753707450718920649728329931257128585769443704586250974428428819031251496820426689459765923196392182806267792269911037211943234213746013768745926241049925401589559976222501117031019594845368512592070141409334828028349516484944806209871324300929088685472106168107086923733159872776624197106066906210376772230679831904290107234206792155545889577010179755847998168777141335492530650590429221817847962975328191966619447923580943044143098073870451706337033971494318493906786508765332491507696520532670384053980320904912831427656650073043659241485584070947644557273914409946600850885111689117710324076666711991247676670897134366661367324115658492496867005212303037732162277431281609111362168502695779346000346294615328685255076556140646779883249650132350026882848090590852908269564304607821618695227126823754446791434808741621160668177563858242628616516230662848660999181561337970487517866100037083336360859957710194469831513548418882295825675947991280881409285800467365736246204000545716547689286358238447422801864620434070068471654254170835888688909482838943143006483536838978481466903489188622224079728686598654180309728665593417653885351424387120922038845065200850958771698525361756579858164531997321720478478873254808797931819051044193512621526690242705458190461740940074298271793530417207405632290834627018420792380132502934489104270481532423547536056923808087893959343367592121997082215437058611442532913303905198172432069542106069043407753067750674069233195547597043804439557867424349370461524402876305935260233625605871148858541950514936686829736993165159079381572353092273201781243596332485909626665292854477248986883548481523485630329847998619140307624630725201105279466560409911778462541520990422243051231714206242351804124867777068533539071376114514856368026800684500479999513219127600299354327475379843868345809206399734355242336017891223396962539251891963800277268937498050946016355215597713107944152629602878672018980622726879420567943604883079505271400658304589754212509375615999281374694137117939808123051110445025381938010591044497518916082883442376151752864124793868997600914759277234937186833696493930538288831486854793656213670976234973093086180528923370448897249320500128971855041863716324274694616140970430270709243599691564682654137412182465124872112756820420477013007427418007993243945463791213404635481744843562435578993760085091277879571326605073542637367684390959297545617916863352704491605476201878427282768749817102251720130500722653998425300972262983426040587845907152845604853899221667919054887236095603633847975293262282989778687880842975508788795541294598872288083925837795259209552418731893181306991957403002305198493248251242049609949750952784795750631237164805805810819864740579587300859857508386983549025241388947289682245634235643170288595238647550788463328630579129229907522648217109559648111218936655563293127029386528429612496351162343253752504516400228940940106247381635331438034622639896553078478073892749361405584319017786682873200069196791868726519150771071036020434289727563189643944238594100760788836652257907986874602084250879774677855024129451598636497092870156130873361809345959818880479907697722784754296453508558667109559796883968649468937707824920942914759482904480007402886940252482398874080150779407092854403038615290877721835177209069356755696241060914316590610328170372346823410611572043997286255263963126647279056837509612427555362365953549998808799515213389555483044911119167187826899518250856038295365232875523441349188503749174657675405110449050527544055486329490099488514508896810857612353173874872259170795387381596111024373688016833204990839592030140178270796041655415020838471378271582395616825948127023085127289253121394459117587777555536726030371078407054069734022688539664148076248901808441811844327645868526589015013295214777001142368962317150393403407419834039254435652359948798716540706170453181695273197896529342665558534382449226286499123011319868829107554148441623331364868931504823911959300087444942872313850637564326519095817875239226422508436929943636567413708421289813397227754222950177304224438678276785753923709878522184387309739585149614745458800282100218797158274006993431574622449111845754244272509018712007433084509549687624431595804932005112018436455966115153905739685111733055744049822088343291619018303716566196918227561266903133601223691479281836276912701680260698798976717533370097658189652389832731401658759775773694279586764817087202226820943676784431806656873826606513049978704289469266678550314218037206239384600123138599385859169724560480327325485114933884957363345635459623972201475449423726256824936164655194234398978512233646846295371660472205687055536667940371504660748189080475930731134618794059784094203560523453799716690964624821272757167493920960788938566508026816784101599175781510921278259023547567719179812665286244417572486374731835989205586433789148949247898977009233438733632201068183991150673396391764646738038838570066503545980490440506090784801565082237333749045994619983879991527580641703244267779572185641093484884153608264690623430485366359384995084622429218736394770403944641882870907275876841447210236545418402867125519672513362088785931192902826223625352121204343280076881125390531856948978339773632921316158491246009327371429313351411827350811452270165397350557727828516059760246896696378311506416170086121601211665204099968295033766924052514296151664935708386934508701725746785457591259855630768878331197066545661220257755413490796716734066871589777283107355723658471330148774573323677502939753949383461100628082576948213489010653391775258693155369562033654173883576587432244177529624628627035623462645597178578575721301945485564275267908963959045368197682800196404685343280101004686047388699636587464862093173822737312138055843569409312573953128724403106321394451183118142919126877315413781985545737396875434542587868716002469211709107660467870073018005460769647557842586215999755549098063902120603663092845263567027401578138317062269397402819359218953412437715767983950738748015430958011578772213771868905344725592325208536275993011512593232342830714472133526856830994088856283717882662554018951837673749229921049619104645195456117410027474008216600465378457466216431715990878325057789508300585342672960862116619902631432150236905499468791350680160062089921929426066800271736802860230747192326738578684147608946173951704363661179063726721595835878345835884190125062021026274486206233870372032021373094811539440005227396976023917501048170592359798304483752810782137197161554446643205189836661134785436144187199880941284950692609614991170815862807535113640718548222178814497114320897215854038920956239693048204272765431018373613101486927301098357235575753987406364697681865783566160181262176701558124762015714903949560129413107185624037375416267476524768373187021337263585225897526416592237982213930167591401752403010800791459131112938414634817521296858332101227746040957889365816283218793788281787813702825458621913598198903073169967899068423362776873313092905857351456565765964616658748292548289914279553995556801092987565326606152698233174968696553695227859175692836121513839174206894615433283379956849301279339767684829791931316713064501239580959047258297503866746277829686838957574058594808594197857385814238032640942702246560654674637995841758890732313756963355093815153063401937933146513076433793618244117897043799890865318722844616008677224680139208294819441739317178825774831976114884811586142851869153286390390161053474036486130331028676962196928478922405957002079673324525329246133307468548159195439974639105003728059727905438138928750918341351428031476798183769902156362575839410112589331523945653822463866271258559998546985368776306630075761779381320270031389401173706835872894961389061313355485347508430037120224029892375502411872331235164590060873774656789185496633099928139015559575558615782827986977898451864452075827064579101670422471768283350722455509892947509447305309064698634926137551285850042486143124089326373340056116110419425491715971234609391689015716622481806554746428142646866021815416603553005923354743844843637053980506694542470232357804555382441646897466743396598551091305589393616693407424066797440355544919251600691032100040468451828108933361875455345559867044795567511105215829685939950216641506293046351008840826791381933670313139860352638621225271158039914902912470795856388406656100937010365932598039979447446929878311456639806834405019033972131414982083117327693749003148220892393854603443614568274762998999469959760720216583139845993277335953568002823034138201003933682639534612924798286470315733301586370878683062364461335079710917472473233905160619720109928889413666815200166075933208335208846681484352318826606250862176902772322227920923298739736542896900410772556918808474503648697482740607450557880584135677389761951939937065944613458398098897883929163861237905673102269232618821096898580675676315422637577758299662917965659535412695712407865878684889654494116413601571610828284324302611260773384468232010569245033841366905910884449979669391211873283548156074116577524103650806595528234673641060965711402557140823259184117135648041217088606040745587396981130774433312620855650775192072084124926392684625376988368334117760198753939325736070964336608608402014940603980131590252272071722521082747969672219137339185528498987748478608863043115783899301987583817391257723922174809253778736389017157311427740098726434432200066936473623900966967978782948650207049188759795510529671949706570840011597926892666322268723132419979400219578181428341858020818801119011457673724146198092437244044456257657816839305236975827983702458026101439936980583315454503510713308964946307804668487831498475984417612819941379226355537602737974708734752714394149501902185374917549572311049764029100715904352738403414460821590839012297703286443853332371689684937687649659875958811632714017546918530159459812222635352834855894000459018812903795147140834953007797589800767634794597682828006338144604263760747834639871691982730229720910169999590654434030512195738855444427367460517637561170025969773652462464074294531896315138884942385366772919480642771673818220007513464470103407798471806650555723540907385592938195860793047643551917346648555416530656784662455439966879251120806701789943914458865538731002959001978889885956701830154063268356775804696808798099857663197031840819648298342273040825436104126255495308986837811784161809079518042733512383569975350340736842156744828263909522587139209727342489605516774289979220229958621992536609101313858070198239529203261497291122375972918558434699243762724991791120210447984581624365759006996136142214504275916775835507174362920550569334275184058257549134601440682148838017194272226033978064925437196029530471860680997626189113944147830961297130648942765030718311986118005523159024212325133054447772665201150192104641893015883802501955074069124884744773925295645748346914625424228969382514359653552528592771619743130485733992966595587485572486419081505159723907254365958426663334216830922424184293482743405368574497084914944159290212439565297869244843550549783838341597915569674627127379475815607823327680153353465667601671455628961194848490769365741781580225464959208176972949740859742615617214952818950460436956396191736977050991474869483066681399665965532152812444549604217012815415496284405772609527798377706063953043842803951143106913504545866248173196857799627761106271323112520952996152380161332553624232524688967963781348105565453725054100334117598596295629099398695964132336748647222468854513523001773394639967186120980192353515297121031020279711735906076405138839792976998700567606692443742526673492237385732164560180945968160955895898764453015329162155673503658701815766659505789010533344673502343155657051712284846510866494044633109068142983235559510970892221670013813668337152338510859705994508251417212531855562272382509460875203737198672272329075145654287968159149401745413497079904844290126838120321144268853124307681293796854929102085333479288702330488374023792357726591609952492819625062010289060695111847549528756778032971312821409673265977343771976515662777214643151983628756614091558586898493286026905280234647890875106582581759775775973763056775611442658075828547919553670428610353729288535093693110152111055756045305058415629949180425538302385410630035379342839863256908472302240449531758928633260701694340131559672288981142926352607758969390472206075992689093060300719026209897294482584584176957171059522274753699230319055442407698904053477089853358170953326658297285918335696576953237509742208084554584835156303024734924849780514388339480429962366205211037316188865249893524119391003317383752476982750316715371868187175588107474193095903743242122479875462561444976095479316321934762751718401999713265568064543251078569796414158416630509869500871534465059706362823446026377575278694934076571332769723514520269642605557821535469787099641025910107941067731007723632080756469931068447450732274581602482935250562432005756677251656024775467265548973738404058697083204510109248250464450116686302188626000335832307924706796913555965455902449150848001566718950109355275154491533391063477200292980405616508048950257064006268113885300327882619864552382562666213771543715433546974908122982733852929539382756812781546437079636314727551865795260387361913136184869402781835965358520213214330835572123826654570617658740323025958333265217148961236010988538891326653169702672577595237727936560728792002503697865504765755086677839334186667028184623513522404243522510056206912114874129186708057506762714872396651931395845100941245974048188355794565778955339352854756275223523283607637531477093334169122781566812277617112443125454500040838596428618230052399846409149103358269830456581383060127572301277326545268104727516786486793919760151914567970454241989968184250548908975221735152114962918451142871903125570589848163730403952115563643155393832375269955643593566761920482394593317687059553137234943910640974136901080298929459259053277774859996316635772354693548157384762212783626627989673213381830652926495173808181756573907292831539666394681265392905051431621629455426450141747379810959207283709868422978722554128751570486515696951892684672987500697105212191567303707293766605302854667673146879270007418920765023451308852014445000348698643876022979702026191731850214300351525982804918959630540098387937822691661871008364362840441063731401967155915511495531528109789468929724831520156305107036860719168748702234339523629477038154811510259104221511984199832814244534044938481581256539281005516512255916769891763211932133980690092543324717925201975001581431461534537854776379946846267784136542503985314644108786946970571875584936122106222711231610140910728525480315164379617845736238823163188700445318628908634020655703045808990483591222535019485965584521729196448050060228786779784410374242875807457774852290537836018472056686175203161911100599843901596038693657115011441170299446901403591459401882181635038007900173407092097189473614101014652753901782687093928631563232693064445891008326589557545708080236405157850709648777125548874572311331497939256416506854469062694287406704037000454842705563655703211044964144835048725918949605486024647913957848297843770237106341564238691666972944940432934336463807412064049619975851319087148590719610925802475367682687663028659257622013794349060257080962300829306551038209238422215252849071939557416055334635212832536881531838582449702371035139882556164790101382536436232025941587177403099042966437570731187574841868307168477839536130951673825046537837183612297637991807554835818211914467808161838323060454553295683109644883459487861096728111122019621554319088990690495572882263592600200457108335131928035806768858901846018904874735393140781245443732172971254029574312920060151637986204915369422245380857964510138020249912873364581925942877154897830126867214573269836666162182071590782271094994762124316844573981638192360177826838624097406852959726343099393624194895867873502419795143692656587785694323512907156343591595236879954006710025538417767569448811047770080103468618078311808189564718066237937850446957009246218090898597276003799847896768429619236629841122565723607663902164237960877974179962202365369918938090564309825546390430041774871234634554166688425936571009554123346424005483889861419001541354212066895338880766073711779688583866505318937991379153262825469510816215244689092764162341099821582365714910798105604966869997731588967442886117177576973309683404881989104738450925434270932360957087547710634022412819127227035547733625259241022933834013106235154767857456053268115071453390910637633200325122967584602241877269474029692664342564167906121621306092076110056290013976132758037622474484120822778512019730589818720007245972282686242330422419737361004789465792715036856014099592953096292689648978618214940847475915682387158304349585511482373234307542296871738183844841778428732964123403947710965459486915287416336882686215112050566891772072286367724443790899640120879001307718351944344472533999678414992568547428720159337859940600202611125994317791338745451719667383678019164355281342895346727200869194178911710897552353901718187794083980179030184419649367785772096025251561312602003605006724336832231637078412743684899808016399966864625302959166216817895885444398691646433012986174053629403978777874952606603538141181328377252260213230279229177853852830353440045637212214237092791512708703107026933677201608731112312998540139293237707136685237098306499162933691635159566723882742325726393084966175974036502467888955632701298612665989905174336195870688035237010510087990970522617108440291191129153106005234389986209631588580120327762929125820847028220403310925765975214949721319270268138907387421257049283293755784620182762289287330429633266584779623543051394379483719026572400884133326017475627507895305599322863940802606561327019276573147653963651638801322870580380004171528920880382683872082593629279302652147602710543487292298950372227478840154223820075790468804979792407550616294707037920899759910806785038211797616497051761691677772557982575289836740752033985193010310681305770099009188428799863043535965835997987031495981055764168222204200043672928348816233463916332077633736175936617474587031622772349601496034342772578125121874603147169924048602180381856650992055856488860450028572113055633237257615371337776227434952083382488902169714766061685429478753712094298724866925239075447776120662034405017176657165553954252022222147908503613263687942521901501390586199993921373450417276717831312246989068753388052427302506798950544734699863322057803307476203877789432679789256244384426003172791962517592916992189018845122442175889231863205950632325386493060430835864576728222279478583678326077681539474380371894349391653947475805259448730314900589277257234566559745717172905105439765080915437880493547036384493186067117049235004752385178386623513088174703535064786180341442742556231846573735544087407711181208220229605108645805543988230034220443413062372791531445679310440458704055897003031973018308746343954927087689724732611347675346256663530857797832452957791099240581432333635296938042890472666658936715950401405117312869183382523471403321541691627394492442757183837756311222022459005280902462835142713794172720491425034818268556842866645393298781253450215438941699668846485177164998274245656964039692258775287411892228617295327077343563441652850574700326651751587341143070714685814557593201421127142006303773957722208420827714510528767467161874796456271852572642892010646627613325127601387276420663211235125224877841224564259038217479127549393939392285805665229233598101918934246598759856904497661394598882825011702565915495750476716107792564747614983531282863441458682015339126323695037042088710967296227587124890759951592130111403913166154747178666026191746513017853676243095182264553462792129005937109294232802861564736475060137159109817087184363800603069695768537482999817620930434376063096903072308843683390038631841307465923821325242273192070250481097769372797561564710509887597190351138188040081503798023379217183978555086481761745833358939982915423385562414615751526033605958515294424686379983395673886498002147842689212485269084221387945577764831130385263445306536481931569972700253047863367047313896439757837012620805211709493778468016634726191846575509271408800971235606668004878367851299118301702587908486863125808188054189508541157223496433948742958574102662198545162632504560045799755922883502969034536661851128247068467982822276629036107410299158793903139550395420969906313378846896725241281253838499655911482911290773713453043474549695607135541166091246573815820140750287792278682055152959743458112863515059134972363161023262534335991880805750414510191701537862136380599232455034255220290434355703917450768070866636215958727201242835573242370767916159855691892893039876654369390129778213106472441942699593882488608006496924063156600704921556980774576824459124013028901982504794113714328413415800238576668066261022062640099317629945213871320202140523426139072314439813171492043066104982531332060722126351418804715785991422840821085176014974210383368796769615768595287512797654296630858357539263690711858749707354455569007213030992745259105499176329993147594538798460927436243149939309172142439218388000370306881596098935606762678073534467117110683067956056423639296922270157153523932478768737820269982252997383147362040281994708360160725035824858546487129126117582425579799500245767236233097241106987986115146860536315946706480359775406570855445116798389636761578850764218492817026664964062160907719095416710410047881827506900798822229660580415109320924488451621609261530424604012880056427345464633811735749018858185050719720577232159976759552495360149077290208242005365947527570448872274961972017562127377501341357396303442461708913870359826987574210071238577598428919180946448907909985884667301136545503180371261099205127137914404118051673335053687563059406227798880441598025317653367184633871314175861081106731949871661760367861281643770521999258061462706070767035702325133913915342548455316233034808968392554285129267883283081767080138625913782016536698802082907044742755270576293730011288857965956766979592790391447125384713327124753656760429688866028507921058035641894925161602016689995676289050662662075820191272893613917602310132844294462718814530989114265827062368108690899109904262961123520230719383068720010962338163639043092351348251658347107500301707926763484169782620752838122854405744288619564198002041753794117266537527579873509558705415355073610282841681848638834372597712965067671864842329829128519629695854418964161177674026394286977801117843132484038986077081415341750765509345397015873316524456705591081746106604814179192882908061392230772863114677323555360660868640402743437449530142341630169760954175933004083066141419121002354253349992605335200978576758802135671001023812939344971036429210462741677997840003929768000156636521326681157463823958584802589721073495121039199014180505578158493331744168055668575594466652787348158707632360965348403504682384577223103211346487933862149024199989119577399388658690131140034860020709929341233076487276277119284129358162766906531469216216645335764262488701359188915812647121489977864310901727989228498663592492113544628578508689746401929465258918180541837234801888526300030270602784916280775525869972695986849656908478837012409309337309480770487897173419621558639792138275459436088129932903228235108536751756278117668357843459935653328284549603657857186761728598940897141502262986488282403344317887557266879000171950479329894380798304073326825146489212014086429574370838446149826720323557309453842867750913454424865675471798792823577052960923887589633671635625650276006101471039703358883808935028043507342947196370419388916284156100912325183643332294565048377380752919114375596619612452239213665422895070451028757929194224458232952621291795276775735556628658617021879408960133550148628049919003754036943976014963964281527528605830234153723565069662443532810296357178713643996751583778683308592297195540830614889138123723670607135604440163547873870334836797531318674102627234581245014182806317605506604762644868612934251922417704695031283670802403646519298409236834622329933130641803979395679023349815563749228444967611885515971597149980810544592638153674014974739298486699813179118800612402664877785711141205129600231628461244964730045947794192848543514188395982889494039249046712505744014985660365907362792381389344244917968355847196579634774923029343342766211748796137875254644998268967241762585300553025993378614874514037388728174788116207902167266591047422637835714112671565287426742618438360485127903441775468165856425765497970883452128487654670314605728443700583967099955392627023047707325741224357181979069552379043432952626337338368311749079305975343876621095028473163956730522329412764398478144680962878685530125904895366161680617183267334778585445359989440224875727910778903651615985163938199523531189983751433193491531791956324903950015894172289126809044085509219360245825785872800666154943749756859214731331063957314619934207552339304180349170523433659359973073994487644884688718872705577140288369795303726320721102054022935609428687692327687687890437267703112523305741303814769733591424222434654286620022091991394501256840974506864041086668891247996629604198733038495184968543054788016374035216575900907059097661063169137747303828185715203346106657814091860857764391653154615992771738763190240320002767892710389225924625967468340391002985480123024032572878485779504613639185748186623107994894383984722620061649129580561964064144905687901831212560414976365031702265767082559929651466795350593247933182285004279109409245278794687627072323697153219394028595781818918846308593381062286968633643628863152911578565693249820355571062243460642935078728916701975949133010307417646591984724148198384453705600760242027725826006738398452468044523256293438971001443685955483736516476778147846735486518278697267524091156647336507372633095618678726128261869955060810690055669702878583143079849325163432407122788124753431003916770504750617010628785451278359769732188264049122582459849387521325869327179397962420253226758792922627476309833841240859354116380881340683242820943509859866891021450742730458104211216263705287854974609266732325858835958546831519464552456718390913166471757280400207674458828586906489312431403282608807636264954645100910027221614195844460350833564727823249107466820826760170314979969734266834251550108772421153805073928659428900577726184360895661433804712348101422742640902578479464818171397098772407261680337701255178702490279096378159878692098162767268073658656589917695888331989909443560169552406292117974098401622185866515280620294981928866251794411789263859259547495278815290946051540057062237878422521411352981912494376837864049665909764076748195877871630939025525566408784856668191474958685327839711236685837950203169183397653876603939321508749350687382680306843743703593712979448495030020369744419726354716205781408642354235587025476907162777547023222117898386305115614588058744781465987840935289597575315122327110337135517938057371345376133033161579611323231841923752031781581290579202328753586631777747473439084940956016955008598951383108966316060199759143422074877982824919257031410238602591826247538667619831602800243911622673301146757692514153155630643373524550015962753555607000878399883774921247059224544276747922068372305770015538536265904097118928106867911185100985995222082991451559235283786575635560232993138850001892292496213826981566454103631409123865209054009215667435509189788155171298996763789464485832610861587653910993462478481680163765708483318019577840533547766883422753826138497666758783486801360150979223894632967016357616759871060499554638729723651224355726216253056447475789595375769304813019072143680587012481434578526433297752173342141003240078328424727372479327359851966604487224733554727116510782687304816964138260735810264554715249479246987799827256206509902000926414894586998199592934786183600217444514933567088572164183836851795953972764901736116272318013598437992561866908676140600257898623314602260251133831762101358947003667728580738738767553747417968445146036322366337890676125315783526834805215460658895746260143982356219213844243881019680604714821598679793253356786638140000563302222196795714909589604442546176262126110402545073196135709570828862446364309268980405419386703844158192712754809897744916312494524904233643393506333695983037889531758887438711740246967878861870341038917715205274164294809725965247876440068612946327455369047863661128726429479430669722072111050739159335412311911290350360353230284275098863262210734381228914436648330126129236894662947582648255642209700768239079555142606923438422616578200704657488397009533865419910511731707450478436680901368122125049520406352896822541000539992110047813131827457774214714982369793523962516763158689841634259138485939334437871988579489670192924087733841248716337484433623071840926718344910172835254384429610362109474324913552009923623942809324017448733240187632718367851730861296395441959797073581409601731622419111516975543191393785906498014676462251075871671181486348714464461307763936492498694167105083873514441281044666584748025671561872516172894107690061577509376293512862709639248879435213724982906076306712877888985003429922786738501631942789775232104653949377564578485141031690869480979339671245096408235752176827745136277571828630373598919023009414750079843518271144770194334069859412374055706271129720973171497041377078595013107857389144862327602314085327875570186420901116280235614299125506238770010860726133823997747838265686357502175772418436085348012571292409591437844540488088424481501552817447340234240693102825141193938815756590083419276839222028694045546643082963125322100643908519316592657806974171176038763437769682090063660145104579956143726508909682620736448302741797034864641982315338627618215165691684881861723519918192507386783046546758300625616638489832339873906855256034063862960964767442836918081518869780153896442886350324501764683822402935072821691631319922878103661285692097249601262734315024575420425648059783148381838080139044596131529504572946599595711268861640120935200003489427414854182720223609306817162490741484742363227275563220335562104527042839032103904530617318191676989232235163453652920148559301413904711794290661057852429019173989799844317968821876325540185104074088579512776874834136918276751011063420950163641478978046732021023678436778836840439461743415066384426759910241908807969774185898784545651115714516028086264231185999095584800085433725923733872291219024221343383963364292243941788595892508464165242412937623203313662682198903008103534432990245507158586079584621920722571334774895277790743496771317432156317894839414030864064715236490627398134721260100280666621171522230652699840987815835739849121750253137976653394773734644810769661325833152335736022648026772095152168148476020670735566890289847249957362646681182593494443244580450012327281772416391935348108438633027232021818614036627063898633053328913605390716729495272409360400587565965430759457180728094168369076561605193661166794073255516538551655346951753550129127011268779136268975367258872556392434844254903796471832417456932346204001672752484251778717579347425204093525108319776936590031943359971709519235345313170153788118047110475186387700439615561235863242879017649850046484049622004599484402327880770587461130432846760618662021937342380902693533510165793318021995642787094428881207591381049472638693031194446422316761022395872198707951718837756249622833689329301762943206719345620389148478067666665862160074425656129258197132870805091360939247508551859566271543054961933224799040510469842768760398201804969017950727508480924386569315988017547382792029987656132158518676792002312212277876434485260389407335392347603842575530246539914822926161149796966420038662901502808901694934266723956211068889120279887876280362864735183406774153454245044021839738216163151895200905833093457762569688858228927385065373836774096067491203080900676284119077642884463131967297646726188764115834944239777958539992556214305283288268803516371912779083821964960267641740077353658312536134289459204347541158964534933812234730811428489858852805543101554663469627458736015795307732708173490599862116113408702069452414210010904361343288590828284614104363576065085671183623359941514177723107635565892693702194744251412279708983363099309318829200370386557589021116114823369159921771506712501394236034578920200655274641106006300062975389196606897872441158986432995295979367598792264781843559282545037928172923097647921980192365731159134918431000948695724567074211344810525897500739767472734165168943931630157957989010470194501840077692445541053752636569746156814183962388936892163193158229375359610204485987161479098250433178730781331976923220786102054864809847888641884330701118048251921802724488138785757538048526048347032613659033261875709132626975130647265288650790277998296829729041140457803781002247250279517139449334253548593982209248524294937271771337066178790366821063401216951771883048925386972966652549789723663561801678548193854716165900218281068986186243439777384883843293177329425016497103940712714946575229407143601606841532475123160676813749099850747197186472113876877532331782596106240029476836291729618927590133823171923038293634526612458116256154449460593658295851197874143290818317425301399841375227590464754173779682481614488005874987015736144683183482372619175488865985734024095946622806881772842515951858004538469319416214989353295167684212544706004210527849085776226548213457960658822194650287282426211012607730242535413496856226184853085676537112754729873172931422704520238519338578943744355001667534602614324688295924140421812164265783812777615995488952579661036422576180846035867451458350934099638769960293374830973853740535790053019144066870125905312063946433608943797648212414614994185956027353954162178665514339893046661878319804214414088637277713629130801908253656300557969741915735079569879691469931005185107187373251126729865787408543025114712171631704023125816785321721776324881519534970390434324222860094082065337538320021665156831949038849329497316105756150384079967875583480672781924263675086677940485825352572802978326047400119847559502132437687744280906767764026598848613595585153575345220026086362597558002757951300215007083204544129158978711099824066603427175716508224014187468699889265713836406764532778992334906422831026666731968279396577931006860945053029415706925159597930132662904774854967074480733407213023146241241611938721472126282812422445616243002133504281125957185432828826585058933219140264696260595122427550262846155411965844020509034276383934198891462998399840938752667637286636005072372110823780799811804705420655711461674467809970824775645036222432994967570090611210254667417488696061948059206311361082390947160165020761073569265161533031257555181000515351303577346830667073767246414116859698502139893553723587012494289077105900509898582452479790327826311130383883067301477137723881062599969098050156788384186627545718217190991702616654169216954795398337408161760871136717431841215755696890514927183466401465449202024356758215897031942197022568862988590151192271313116558770157155148697382477430147698420540718713925399858529311624208307313107152695506965072473004290593972274619009632517347279947256106829963788194284121575902168732253522824195956602874285376982265916451719333474333441561428932370293761892606216824903460750485401194497812665646983196945355173040269246440569810613336020686324906605596667448112501098482651162018540458615999427974208648550826480324904057851903058316699278233347794253752271676447091871389849632114290805708261369908244935032946159019447019644630433083785616584120673806509756552527982466792950052280332870193195699040197947993841963871512072544332487136351605243082055263030065219558512815966627848627523069338595864190118766395633475590081720476786240665159887539118296134483605960170734843857886329369675814843556018439889379023357825581842964291956199722444618411291720385768322524612640303688255530095801999353509297429208651819576469512248814273075580865984442209075067188164362003318883457263213628320634321226721273588058418109476914935585095526408599828760826598211021540600623591791086702903675673055338263451600770766035322053453422825356889371087985873973832483815527567442079378922306309250600792883036708868639182460566976531569112382161265650345381249630561578478520074566078564461392799200074439295332538936356274352855367484029608697536257433903023259318782932101486800240267823914744316089928791769948915969281097068067190552762130958356578105390373215052491575304117207638032368851698693279055932576304773067462943252963307053559787637533711913092791395710444936093754059328336494011612239200067667583223763781974801611691090533412960035868814066121864387592959784906391165100570592202625518146991127685171511694583079927604377180053384866417697837896553577805540930236485427409924049148488963524338318239710756322539294952915442612622285702977126347071447056314515770409576525985820000811535498361936509217006777107700923862105580444560346314551845658994732060052950636974813572342433416915273520187371431850575063782671789468849010829878580044326106107522622034908664528697092218746440388792915866745901759869090372026917381451815438066106161543533986407083259955676930556190366255537525023707468456184250371580457533451497345095057516950455094474637321495029651496291899108082744586209959322216149684798391725178175391435039533198369629893797786759371494500950064115278210797101299495283590688805397285072717483205983642648976696116610780004059089699125609425278038897868829769130480899215570550037983703414272711821910700451999844788466494970209152933194533047171432418667405160078250555290937251884937190588634796599946056497196218591292257805202112239205108896030168137145685824318778062115608302282892614037501607896234303370686113539276093469181998845069882933648720883737777672417385494896192015194849252349634458180232667584927333488008310139553394851576722799241081871267579773167493933880198102311368094710763401203555357341914064463598327032367457029052052011434597684064309341681080757687945680401407730005679934569548130206448725609819265925138081637848919103740399254630724249329764068967175296554689997690086519236577195967500432074045065207262937055768755477429316588255699281283991384831274763119337375785103709898020341821267666289910443288570592923944774438774087689830742816635631446615668706799492850519066972985860119803336972111710339505584271947802893761988040057767553593937927464956055056463301917260530479198432776119581360772554256939128634611230955648835083755904487148732542558575736409875298120273285270701666586256961209917053968061713467153948265037567134403295757629336831778103633665942610093502370962839264222634394020220329602417895764797037659781639441248951296786138943760278784109396746058809569901614595091910062342708614779038338159653161355430042861450024581000780349422073585884768941604674516219571832399739401199346229438815729928978580745216890214606824670351345546156774705123181094855880736077413143325592481284572143596771034711500439929413794817304003926369786519235875835108934853357217333918513497037725093514230098532517815852767259171535202330392696775758458279255568362974174590665072793138047575747929514784345846318283489575682083229333537879229577996637708488343104192138696777079827447783476499508162059823688428811960283981354950995883242399315332336850549344673114617825925575036307258864860670051714026706807998209481041818262010424541463713596740181814275879871322935623728874199569170317645505085961685020301244299325914301397403198745614120600366909935985632773287945645879588071131677803018514123735893659763110564785318273099844850098478880250462352043394570306402917179172617758297660238844976681457952698732427108067763287766578783534792324652709997367253683223878534112220317986730654580157802101432086532162462148084915114112605206990038241166539526157093308077718041692351459294220411726616400904552051660494578106764200338054428792393606428940676132569952967636260809139658279819322441436683283267931015148571461221501256889447775694089094293252598779227433595832260665735617647062701774176325377599622081259962840062246303247669721686025977594396680492838952760803180435988477438615148235691798127393274982575572285498057820809733292526333083173427066710141449164920282245259549494501720069882898510327909481548429537620743613496776396102285630884460181802964151429322441725975609325509681613618671405189650456265498731114835337161868901405086603117959841882509950563285389413322298914744709146508602005297053133985888317401864609789306975560062817885402886926847038454542199522339390019554779383075353182813135799069900963102610650003518628069988244625021959997473626980046658316515628477773457389320374068544291396569782559741611376882759155176874272627961268221997261585856261470609822830602280248237224879923580157264910888520484491572440075925920308692898886324232339660562087307017656299990485189515748156629022112922053812085824380762115112853968211811136494065821099240139288741413941450615457844909742925645758534694337934486878580946710273430250141843691108260004830277722899139403941935935235984060693341615060524968884584338049453782156041309002243395952745740444021652434932432218435052308155959315298795611678718779770929055291058728818518015947225431225955687455305231476132108640672156128939832092409619936583000552385022486718540237980816414910323471616539763590207334447011153799596598767102125845963224345642411377921409832737049660323000687392286067429227393064415221861878951681329834998275297247079069828212885782560245209665610130194371443669915635700946869490704477340107003958259785519915637167706266869544005119964777501836631808652953734268883259110004697862948366699555909613251822594943306625412300609065831816406824673136795294596042165396844434373988751401154258238832711966808713415464096837984865798615600415724957939852042347070477657057506282042278775387581252272968878951577789431691462824335519428807083967300397650322868369062748558091495695598363259290037848259223091432719680813044176124499190464794467066844511304325065324919056441170561418980785290723947296183687793376249557220457707622015618462351229553196839767685936545024072622845595731231108219691145140721818053009653968095161243941351797576294174581368051431779112867595590315025428862328858681872058558592045606538808470515928457200213145156274061744302668076253281191136002298838247903004527707906742112865893896565274252210920202076121858843398374939866484767108572268050851208254907189875805844813704917250313633992652410174653520445587672312059232823804749861071544908388667378464956423877186678704249716581248736395280082704807692636183884726258051547663374472063869628194118768652045968347104897216527244734062417680703856724043208131196860549969114655036805291376841081824646324094428862884444364374764308404994554143695766907634770542439736513732812488181672216456022618868646574838896487642131738696626877220159643821411616800596615093299914843718705342263329249968359161135340438549486949975230793843644639401435692376070371168593218906559006842879223905336321323861869315592357615297578686799732691937995410862749237491868735936152638394136451638430900899042327117526864146136931488888874386926824451660484469290595222788487142199614004293000165183407109640212879510683492499484484467259595440722303587627203496742531801779891758196180262426749392823652482626644670856889714246382740595530287023659505422835726336578679773736208693743576102736003855582621249436593618986541851881327508036902769591082296815157064833494341365769602899823778469660304537011188246626630090348283172052829662758419179998742771197974642183925123971311620812202878739762090734435757387348121508917835165367666603782677533325465021834096699604235695382286740282144397889391202669632281350929011595475032426007188578359042945730061716342764900329592549767449143726512686719144192544208572422892969839668595627734510467480085690145040175971645261563656429647017405235850854606340312121126087054582459808490412065707582245316832755298527762212563319627147329629037843809172640475423835512258451872663139725965759507373867692598556335022830454710958057387286717215042434032386087177860384470273251584597673027874309944761546693323971965746410257073404250017054541659584431761689723829594199154128967732222495649726748832288627706829495162658606835705629809473188543020577316090680671482212142847481012117935568534792980103156157841634706142783080599531299651872545368701527655441171436259834382541437945499038423229769220419669247934004137008912789580836977114848271783026965292322018454100158192765916789010688694373131624037177943023372960589173669688011948001901861055171206786047520724331100478930950170325091160276323456776569712942230854984196012410642153444135783379029955995934492581523952600283792337629998835650138392277883748799833868439042949630677997065084652888570190031308092644973945173458521768298976353942942652978299211986642192571768013670051799449855064725673315735099511758406684957792340261467109358724070870185758752370712628683157980213850867413807614415708776686605548972142294917462647197505979405063218508026687053306570233327389351463351432728067067513228416032093712924623353091553450719241206270698624556844015421339609362255151122590049177912109849363850956155455646287057632333269459553342311782488620156722936817801357354674312402030543592708362341136392672408845306640807014375717302801783551320285360822291835888387916788707951933139658314770896744326094025861489263749599100864969246753850698914057351595230301227823470250687857118311451194090712200627579943175742908403763550108774815159724520118731576166730425641864006980836525517159520039813977419422398870408608410701234200751565525665374386452296792641548592203544934636556945550896022716894581685710340955187639445841339583872501669675770226559834436257645473638496023696405325659315086627273901221493263884822705250675462745195828324595589701556451384050226390074065571626912052577575394772664794016151407906771359339510837202498665557402788888837891048317365324592986528014710337629659856557573852712345388040924929526084009248778286454741248098936481124479660512199771980503271838319911153515183870184673938455321138377155645439165264279198287608932650193087673278917705443452934925755821029957069080380339802686277600202033983602744574972134492841283162967039927015276368597480233377522602196792980248941796273736486651851546411853012965636283702112938092443329925522688408769100410733117232893846709181922434822817143407129728460560427666730454805354199844588117324958288936465549799797375835183963914005063129811018264508438799920422906063547067813406046123653931759520617034306467012555725023808864743036387347962378819427085738753784787871980487426449735563416515778407813963158798581780106520570828496967384303651757380980121805766463302777437751264469173777797397784999729235470182159600948139112164026764991048220075961972819597852531807695026750278421130505949438136068212180514922602952451241738748210888951985318646439971737690996816147959184264725359798416500154267073419448443131995867685601788941939294131948113674947215812049535407306256004757828097111561945155825788614287580795957280301995655916195689748146530003043452299179286434307707736324998572548908593036198439978225182005109209894483810860956891063741588949356183526053541081863410955909600300204010068845649836673602500776503051813712349734899577214554510554509280016153606577194321101927853242094394476937038679216774496638688343803950114998805573346233103149868497018796295057591145627207435798935486557757285593594163200990752412770016826811620840508460576371544211651374225908797136517671876028417403738417563811043583906239058910166841228741091258185069224768168637461182312468139892971177145518134433072825567316289619348458007225358041173837531835442685697529838359056682629629906291630905986420201590294866139700566084394350216853279688322387951844325977967778763411050956817082232431978839259858318748046421981022241285825427887638013131354627442581813623295133495728213336723702546477892433256843074862306296323876708928199396293041412073786456740067592233332490649307403112813085203869691240748325525747338379128613996469851577072078518452052137364815172658295829734970417862728113296477350020881986275125961000904264655316997390598483638338161499246411920984920700273273318660683217687559125332515489949439933710276222787015517700476568882002336109342309617136921471110465879794411531455801586106711056130381632491116748754952889311156451199978990930543276460862764079284843826591131708024188048559920472388849352263429847352247839330468829991756722732458287290293250883811677863480785030771284607140380962953549848221351223013736328170983442708952824287365029083973953071061460769497945458866692641274348473087357470383537952772761278322179630681699568904437435440274569213661472776675247793355581232302343302939449511548996928529634636275021507662323821488754942167843415534716290641116408105450448396494542045334703237031138624512362828668175383749059973761345954671455854580412667689870091241004003062215042876484856067126863097286115847264968116836565041282126649406004316822148005127099703868413622805052543190055511785090945000263629450211410734120875894085379886673775377719498810956182677053444843398192590146248095198276253112885262849879536365154741439392542986230292474772400290597142017523042341350345074779912643840060378301576757182471221016520176651982854163719472529075289475014719641820108445902661294085997505504386749851386808100857145118566899949255000031856701534432688066275352393121418793178319174228567092548252673063900372635335873440698014444631228891762601664311862857526180083896702270121987617085640271644960516223105182332463836309935395661901134183130226363690136355682364525843317694336722532377589053534488738916816529679727500663279231785483588583248101332129575085734148249264740404016578276322385435260550068037610561715206613981053220828897201105076396803995584193752961720974337511634123102720262877095876079963077971599781116004593873232473277445545994560211297725505209820587924489968639435211757346331225659785867083584122994969561838236791391264039148571165625435176195237474619057850319107492322341062059567533299070543180774495333442561226245226247164629588146944400278215966076370784130266687505518909770863260859404645286292083862332594125435874085204242937090349237574287433668815173156703817224920423305981956821556706753370934376298768699134816845645930356072524922732169077050816020168138986973334403482998534076252890318133204831913251247274518768027216745143949011016332981002219687838842893589403544374983215134339161741565635930765632310578572692771742519954867309473265471189652210308022369685065298750916935529604490058254545447703769243860986813012170846011423572399846104128720210246649975959203227259323017034505168736565949436232232843617685573565667697358379210111783434594791765126415153528260870794667550481705225834460278531971369466463447488477535981392181446405504302173388260103519815936692425725500795112500298483732963824168250745209567124055263524205585791914448258607696203614934558933141572252012068160583089809089352466195001423218351533131524802447205493279317526179455036344674805253203951326137759376747117658345765145360004662112096844768841784529339274243758434159802299962035329711581738153177867691344548378646947676644784989621410617564789657539667066866174570397604946401790951957934399217460944689436459697102740720321709892083926653323419805054588760331322562820415046739809440810288713189115965727058751243311483393029924414798065126177002616989326771221291905051578357187663802588778758949400128313648940491867278272906293160088242641303627911679169821284441673222408353520905019254468039120245593012885084436034626320433891853439703062432321721932645706153719468077223312829656909387121716117989333516057952299305298897829890406728421780240952059925896105469936502968568061791488885608495825367421609789625882633277689842704875281583141905951096204733262369118857748071301014259393827920133514092656856310700291617788713155713661527962154514471896663471055659104415767422077951889059052424452288936137668990085114125438861310987742080539880746671577370144287585229023020339123682606076994311827095279161144508719017224309055758433239881989859530371283875042701812193425746984885127823504042306720781163055648136191514679182516658767703893617436656006627928982489422418104765778103215417682995890307365069975449365409142020828652897914988591273375436193214636920824424870312705261365237732965032336280597787432748500899336562275896498316085582982257597876834603049748210159964385419765841919469406545428167262740194055684346141721493980916564198834080190102885625855278122612164010916227352163592641053455339465631894238609972605564293329519566555059145601559367108191352893021039708950062742504914359337222663921651834396272912629899038180648127848078560914490052342087371232602772113654567844990115488912796405230163771874803403914882233205728181450495128215196797155002994452344307670610268416442079667294845132401212108883252271867993673065174151798344030672728184288785477955490298721319598583922341255908336068724569940526287723138495400763687032698778653872741205052467299173576607275416708634442059633696635716736108673459585069098722441077607636990756916872677959665328090433602554651638547895183585546210775158228616440601081033549979534757196190274284074367399990909057320848998308031764784350517781484986178831107193409850655599304641125189582448140489460676736259337119954673400759836724536000519954564381304816605622239036640518072582945394700677446637791084276057546334869494196965585206300148499770396348235532409289688581206249122039137412318613094012404140519013794149188226400882796468203832121553861318045322477531646044606290281266682182915634457663653842849559728821764394367309374715651375811608804513238511611719248594716323095121343681337441549749980062987911762674772146458351343158238176197421909393166898798915109942450498413728778385884853972466762460630841963954529303190834196332418480294703514821896902106675887280783960184287237764028986531913076521256379973130108930488124419062365776363868348184532465604761155993388183823167590739040010669664339991810800971274549548921570384247599790102650739987663331345139868586053104892685095540884236684378494682046175358902129093330573861426900023406425155144377361250962916358120488854835431238568323757597546436014028070136015845886390576896691495386975955869937830744868397833221725333721750239353193109641771201425080739221095763263097997367525802348014321566861423945159777824842267217295410487787084661988601586780415250562252557747869860574362090835863766179919598518980501690818553594833503098245057966034700944015454749164784461925306819581998041514898921259318528310233040229591928815120017279616569448977075919689696641779022914992374642375420599565658530783791518314671472917279831995843809079229665085126586166456857745440563358669300094912404420085050779423223611416453973016919252170873088661253800107235202206525229076859840160721953998800175081147639505878109144383787257715694435555945200600516767010834026781434768663481562104083469447178668787108866081132127694641424221813243469655427572961100996552779513875327265210516327356893180433308273707344180679333679170769568644812128944185604696902809173517002737330876733584761074842731378153023856098481949054766398438631401217566759620604074811540610963462478750807344347701680833526884278734174545713270749861461908542965594018370713901298860989662229349615333024799146966588330235739477121253349705650077224128759308004248026717509043698839265336639017309022956576979610758181329039159274402124437058046067672215984676196242912678453344349032403723269713058424076828071097799775099704214928283337693384097705618323401852314433427064337040732636562267670761349734202898811996959293674339238662322628568820425088648876097703914287638447823421775514580048295318412061256491841875767439431897178980157693655656417586076652868178116235596315852062875797011945886644145336444205530051021326600789465036799845834664161304253528241385813148719964062874444922405269511067390733866642078291050995317782806635601524481285221616080405707486454715373719828480913670178405565039055705884186142607361800910268748444549360438432723051965321691581911219685728321193560005566582986538582478180705418658352377550750407425585053851484785128156255350416304894351071293752266220703012574068218228122820685007740547062100882453622412555887535585382317636246085895692641640028127996529730144860381054026841627912428113090649432971940298647561377381483346080036976194636805254940932963433202616759041908255807079674505270102159930320769476887711493189402452923382759620670263154693380679745180227102052675611432505720423367680009371014276091159071153313138701575925698239797556274519268241507564351890105982110390114486297492735484067192363563964065683076602256662916460758450521697207891426044788329199664886489335534521906571040138400794274200408199912613398304689759151788583273736778219696103212307779725413240544513186907768054738317794069921534145946475219504681797266757503013677746477774484179616096773967021428403108796341397263283465472527531335177723676655610039568283983620209147056905667187633542552110891743127782097180878350782183800298895332385804647339896534026458974381736426764535302175676616637750386578619939824157106513461447106440952504028272340011864341369507410150293086998221673967872695382312517265282538307463352625919311430447308975373376277416747301568199405910903271790417941164878956777274570841321697004579484582363309144308794827313263995788308640536913169413708517446344879945780235618444992781780789655006742263529095062377350236125260247142126241582304078723649169579760723731119869639107051882978741265626660821382344825055299301067314328296471449989987020152731927077493187826957598638484888470513390747219796487094449815310735157397294377672727094310694188744559935254942870338704941743729638935539637181580128837024876645065433329689629221008635299395043037138024152572450414905333774739777826444947446550603592139958695731625885765787634469663653019088954031414393029150639967565774865735274345182384591788802768956348611658635861739609213293879973200551234647000122263242002505439818785244381613247111608600236769757897235289196889572912228663918549336491609872925800684940681559645013366223007426896511974949739975434443538144735150160680589648405715273620630452701955604325435217592246339731829668308187138738631417172519451550654630068883080499876170784928988522826776693346683928900587815557933230196810923627105469815378141898259603227270045805863755775851897440930640658724502298693956456071149278636310658395071620015257680531598179375031491682639012997820268704232743660759475386793275688793866996162803742883552782565731154252234380830421933517101332550824623653215899275948351011205894665138654691783287463280327398105325838666889774085089204229808281248592237361774874205031124883583946127355684227588225481059728003126235626154120063954716650743144918209088046228960592796518679256642630039582660637790566203688683807445217597973166000275429046487306153989366518280387022711879079678536754524393056044258084530315996044722861546526853663660255499265943169178051208298533629916308087710242796376273513701717105281716093228021003170001392533524025716676714867487240336354175492448766377861070386455023502582715787901424332148215410565008942325527689002774593387275183392964761978133525566337013886608918928012965929525158307301906044257693465488571108805065548074745218069102684090907916740444199391897588991976783007151569654827305230658228161712540316510206957276457671338263367160311963340951026714107527012291789901218762094766018421939487745164628465765768145674637175811412363625092164060043275888668873569883618266907185862788575229183979631816316155653314474338762688990496898163302651521282913110360752868640987132607633837933045789803111032709853428798504963240717076457567792287900106964447767509619104942850522196593120181617939477064414676655425311415185370373416460523346877631642382379669444168662898212417455764054133116121221088579803954904242265790404185824376084081463515149202032458902305623167749593292292858458449432539416679839855516810307773668030501669128166646635082279200632381039434442859057700912947272007729294264046501665840716682582885382795951946722754223102542092270541097921365702016894936639753705110867502689802542814996725175824955105667881357530472144788277628943595570804556866855773471553192061085190447487504792922209726693957050692712131912428869449084333592459926192716024318991119565023219727339607069737110321723640690606783343362468822671685488770195544847634569326429645490786404114034031639771072213597438101363036027214378008189765410412712419200480242467666989444865730428024236612522731206777977220770906134020254196151603424488346339906797007089435848824499382853969475969644201895978847644972124312598366159380521552471713794866605503815014316522127744672145705839196614169631041676820804418064896505945596911814039556914813686441119489582560953845079232153690249085957736694812749977103039320670650890906339759591711436824916443957759680580679810927573884127220834909619786248998546313759906540571208351998660606387595009973072131072475967079669715946498313429586875913346051699052512353597698629840368201267789147380326957786814152377998999570907627274434834841902619270822207158207644705230747146535226864814750492314441597265784424543070410464361626421463598839942508933997198353071215986654079543180477466404412427812417310168006699155291477058757080627704273736365845959572286077744166046583376865922752803139610474751259511049811973946084514132468418168803452696462708347538661008350965513470724497681890223637227216735776126003698056713537919175488821702187286279255666802445775376355681009323459487101400369662987205071976338794870763372103511277895946054196594472378235162866172887600862615477159777669178618680942382467988445478365508394760989644457352229212056128382323029571433622357508874014576237416318190120356333568197000900334343333487324331130480413521196666504339534379978703659535957147553411751446189216190866153504634986156642251287900868492050493548701080315240731506281786591472901253614013758266959676603314072487152725370391219094741732531264662344040534546111659099741401001420567944815641920217915356853319341609938380536240865714337906842167594916929715842213242169250914232847884397572699905243339665106495307078302094259046454313209438133552866285586608913566243147052949643121797795790905656919215552538673513461494790744945537868239794576183568668386820166111458546102889052622202813083599316741644862052942477198015627300197935655160518885514263654023090745399485167545091678639643480660710965932857007428982145343344541978936623533475692346896021672537430538169893073575877108742457164768551858396228266137444436990968681449951689340856694665506039295487034265871176004809985691679281794274743802692317477914888340314775726485160849127896338770804311787474885775093691871831796424405219109298012717204513824750101746486387077836357131419521398553498782574304266950504620000904673413578711316193913749621295010354695002620341759965123744621020110039012823308119048439052846388830194409767263997599540868081469811082944860234060572883952684923120599548689944187809602643400567140514584221590168424108786904284443469752375104763248098357603636103548320717719539923771098405353820467905567512680771002505259130445859799244956164775377103413397234092082434049249539369110474694814622610250234664441990321843071741965180172299551577232179708088917629715561959901480866922191704693092423089757260399343569230919354133046004857412120621919164264929705442631301400269272488336289918316384557663660109542913762619886982555761387022462097245581183368458137220808751301955416871119316444775861964149504598554945144782474343838590262330970524107793637562707299022967476886047857861419869884686282554169285180924588713543172412499832615220478910369345455159363276999046024888593319336072935554459144724784159682441925450533227558564546521475374366849954383592240012744575765899078824899552994356289529189230138215794361944592880263179406389687923193517494077035127675126880476627629977063312257906792808202227197771771542565608484146200201243039648259270692870630183042769259566563944581796060986930926743180860833468311249874548854093326653789283607303799125548702070080536647320975059628930101447595030221289437345802335427679148499548925492504471387425335841882810095347824158417619836080376639436494166143335726094700309850708097465192768610580505797799615196354069747532180482235202139221223085355687780687665925762134971837585261418450204628867864368955448101470132813801005847531652283926273712986948971148852427585181420674476100154028547983515693709682942183375685379943150195015842634204307481226840924866433002974127619465550527542776446223571532731768602287910201387880151584451471363356574566005168100361291577947474684697017826041424842704325663934572635489248489633660030103512956912600915011300598174546764101741333991781190659121697204467230036426948934482544926399460695396343018643554298478530858425466168078446712488656478343130972192714196778124016471085518483427273876439655086589173007650304235487082988855546521449037392407268394124315165594500168166678027425143159379814012629472335168824193926629461969438181530193228605025417000826909254022901838481284032061482713568808003590176137140932966617876144259294816763434837591894472880136266366357244279168763066997970093753266205477936549960364800685325142665511540556722655719227131408904923998204313699465517041617273238068686044123825964805553132759805714511705916225279841902483967789360809122381253191737115761388034509305956997920454837562139266023949589044242191644342254879523216100643901303844084372774091685071153019652881361723945216012945689597202218181118651854382436846713054301483960814955478137081324673649764976784447258668232740337310989915865479176688654857333638165515458279878792448375723853816205013144186750943191129395227157139311988048175689985313313316619847103790182271825940723330494932592979615324287436775630321541824852116250640669803686269236013991656018944038529592595048439114336890697341195709155025405820352273368815333849521762068908172278079171259784067980497403195355066851706158867320066133963878336563852077320846209043448758395703101992669373612543139452067513925139393578902657165274422165017888555448021972433714860719227908012484218457119328376593373899829716708531860461403391343413725263032152838247088161285787240835994404825984515143502303485454986773302494831588023490294060139519692221758896472197582196115693471478636051844113092281080592540054608992955691170459902041846355276250187643051211384644559943257754014263020126585092651817452270437218839513583997294693132322308316935324175816809294759516143577223366874122406070389883404835267312448015920812660519145741799577144522763861873420742832528640005414925052659557231162279026326585505095073584768621930479034314295815344845920420985083042811024005938647280078818348120397727811001762639360649103890677812762769388079319853905510457217561979925224280887228047797857960847028154779026790739012728630381658355825868346022299339335592302609093668330476433261033215366256883161416926819954387323494601870666816688974155361597571820869571978777131332124578802651120848385197078832828560603831743407368125153321327478407650165523210457783650406563484335266477650659205574619148628453244851521710539931971368819800622539420875904418954172784751002194506456925539567262876772205335731207493523956436289215115490586686267330587913551421459111360034627514431299264818737075814592816628392842701182899870615451320056575043691704126937058181372558777731756621978023540320709054191305314361685832231268815973103742268670249506909810738293652287036709849855635626042437596247575320635815907231568313522867155698406075957737210598281686277202841402167073304656518916291541819456066909074411073467401305813366702669642328799237251654963550339079983120864800474503264152237087631701154673520712308197191310182959845945060023261514679403003587646353235875668982009629483571758064493016499429826190204613675450591262993176871511268892215299288111243968770239545830184827511570140661721711705734892829038319267551352362949774295011466500623855878572878742316040769881307459509830808598251037082652124516634421573707134949665994678387010306425141168043686851040087775605172437303409567937074724627400347330850346814103303136850402570507087499886074084094022699996797249992800562539732361606917664754737699968275587577986609327971500527064507885280393674943661591274620286683926953288446950119969281270939352874583105807263464559627120330663697459379479102677711159250818103795512025699516488939228081050304377300075012801477559815880802366243821605791447314848211336822091959614790461427889990300655464393601403156712067694240924539968084169869119740904443876433055449736105543571681879237235626256819886545250263531055097614283048004268085290251021737868658284657236003229687029160801162223564174000132616346057337266116221214296345197878842868854221929834940453835142599558362103699908723040799415828154679216690087420402955500987966910704241630618408027322590224500504643399689452241106476814083614334009566060225548348041836222926253471836750439812473319464540524697485408150398637226817629367608775313817300742874445370082613375780749424862057463342453162937021120657861247336218091841387116490581216604671134146585112999649254947333593410167589675513026198770109347448999053731592672087193048379826247937113793901582941181218618391456770475319028026596986167001227848983106930620451772832952090222567375909889522861494315240028582144995731003436671687409244522727683731663597262002038094592353356372546795636088319300466672303728416198548203354363325492845100100675639052976464993572570008360495158435122658082192512589610405122594554846564785935463466959800726109620641444131871648327623934536051423148791656377598780761621199966446332702024536910706578309207549831529381096395582797698329774290561816750071357551200819308674214234740124260061375569497761760100751207489449134733629494781053364512742672438998468814531118552085139503224541891059978299882572766178100577214055619464939561470468677989132563980012649326829973312889908893529846022722777431121192926870967633499079901705178085336239643282600255306173394439227895090041148940110931179562370846259015189980342162258689345113274793947387838205901805366142700505226423894688644972295758100716327151923315364341508113311830388126617868181384557010192905075530744444055888331718195853662144111141334116652834125294267499571750657598225306083957474450264671516014987844906343180253901486103837381552980808843738615005317726672929035713508977277594259022175555688417888819720436022846473244424985783131559618063977868714242360668950145914919174161255361919782747750037846190426100080168157104860236193376309711865333095512256578000390667041398174320133271222306258350955048183891700718991374163089053979748928015482897116170168222275977852425956088771713929609119126251471761446962908183534806641623889177336864347850844819567092401697291967935030182098654886449113771734829725792432616923509289275177168081090885108813178279761111961844686150659646053937294995894368236820987077289222445799584784512576012239049119441859453287228494973553808820288599801926680683902316443968751439795478723703612346798274081243739517074030792789628970495008924692733472056620666723310821172704830406780909780835707805357797157389582452515683278809107205655376858808665874613054406508339803085361820983853183944859634330498187041021542475530667182384923822057141355613044473779628922882346312205460363646692431817031295151741052906998832860817803157839758951358203630565035016851806581968719173205197524635590391085783982985844446048365758016901022671582187232630370807123342647995124929934185095125258213864631453009783211318152047428100209250029871072633260514298213869005016002866495675834007011876308592628030563046804827229570989617868468058564724716224295688557132064423587251363970692754192198973087159048596557614037349126766534827736716529596615113330313618107316503628659533139842083024703927687973058049592939557843454038274894434013636720734905697325693367583792517163634414934286478395876952897766404152235004548878419316711289020522874873329401092009432238112057244667945164357087678045909799788981600931858557786938261230879592729709630338497162343039261141040819053662416902614802990881071056566025917721422323784264066525903702711159278650652178001815527792163964163395590225771042082990536345026141836867207568010788479577232340053526536975005302907200014889517550126262138401791250497231275225739117084444674288728512942041844989883657898646669799442386069910650106102688884297115868397907509213299918018503460852748466749522745211245163830838805196095047225916649989074535196304116450106200493628751609883075941718381753055271295594363187358949374304415966294163297873547782021316980262297491732240957731521074348905463291425598993898086345291493631018011932878488916727226053357382248695406031101314946178042272479632111002295620182868626403924653566243008298360104314353086048370672234321612132304738483887584067771223786967962419469685701712710058325643223027915547689746777015621749313129512718199520678131168724738187992566848175919765655722468057320970768377955160611517471292611129002347381736871329288208948556487825302077296296574310909140314027324048444956524141446973380786883686963520819446490126604569370320180613893998805316315984978471766551273080044713852365224205376740407149129231785101695845918307629121630806198978691649815642370855806585548036312814803768464198479917243454006141913943170877722366650716050292715511427121605089456802154311901153614013254495128812148379019350214572130524096247461614685663923455353121549985738852698960331482682752478308187866822029728943878116235333215531038340620559972572233245367517251317003498212438428041913072030725531088799821726974636378931588852525437922861660263961468685146722807377613198781493374621550238294338274720321848688754298963496356806503370529661593251812027149723148105772071268871203005091330491662977191403450811126924702512484412943763789726480231275337563642672033873465626569791229053351443307522127607565355306430088713963871959360637217587159802723628213002642917009527913860133576260076027838550490109969373672808937650903652141443782665956503177208921885213901475202565200159333615013600975170639157047492947445051840260750352678811184201625797028948063900852708588950886582653457552901647560207685276371964995273696200102559803018979920722002123825968070852405353501114209611110542732549106828461155873759159039198594841642042042724002214675957665271793143187971857661962172554741464656266592567918219879807521023777311446664136060924109350011432760937449645443620910872841316382258427164889086515323889848732856140166130213245098791766722708082763587231132254662614198858088066794386139229547140354496691601711850266820820726978166274775233382928971811899545834314260790917852657968536293608218784271396172046930361251635400329040994302781969892086007710288679867346848023071207737329179518270965983647956136391347299013060843374940445508204604372374366889966762586808835924930745287677080948744858435066569371312988232349267013399862943527133603751809041777001370739518307098470033032078265601484916395912654044285429426399215375415739161781734302144332365706535957192163276556924958057610113901029578333801353270189654738371499894657109058596761800157525967884579697986171288208610452871052140291653257655839627436617984584089267126965976743184727079075419535921954227434276580611470893356654814069364435493693208824797784149326890787302086116459300536206469185557952228233765282822709151226574374050333889588535751593803811978319448140572526508211084890013268734121304484209499821984791023916178613694496796594056875875781182852475634788796034790487345349172232940333353939615180092784065001308784838722670815465684199168374008435259944791747907268146199255098529676217861434925577125310846358968759822823717566247640443170319154713980650621691921747801625305394723820046634826240934157358883170157282646393574874244447543266212411591698551738475413245059615260045259387783983262840180542509668974680895798434561098964764885839833239975057951983283650010256686125451997843567402178999783156162249422379358768931933975573389079030955834883051212932120588126652626635735478054599180198240958260128453132206199466033437234259058329249123205456249763507690518675941609343121192904859520181702536578667175783703100418893655583453368272579109581594150516868617835484222477466212545535238182772602689945755620462079432071844484983267018404147747637464798225169805747530847338065424642661846735262767490187757545238277420602737635970280082812768680225681084420821131090957907892814146394396950263693682639250991406006483453759051893360092981710194487510872205430535271184610466497501624541770071709121151771514407467699628513294060715018315739337237398795668696749932153676504079927741964558955090563637737558028020875354039909647827164666695227515649796113126527469914066219214218527941524351491930368545231492712653801471369709344231245912127879456524285074255199308263318399249201637252995551665836130345202395832641145053610454867070251049305729282647106856552114178911425461756945581605575425994674060294200666743095170808186976740894472732388180513026770364452472333570804685997813315490924909010410276650964005782621532372549567116668472003531194309818872445706427334003505181829080685027216071574929625206026610326077351150664105549988472999903336425306938683121108316395544671534888747551781293627132500481293056740440360309881172014315867476907470418577558950019221605059892121318824179034559904055656408431562043398742073610097658690858618646035684235248707587568484903902321823335203518616535625881703868098949703327236024933153968222018349280281414313189074117998537453565227821876726817032544699182634111219788628404585725403620168424799739345693603049426328470465410062917484127200542492369996331098057719360625706573633552055427265745610034728674791981177071397004482533382404854998293993822591607159185988625526292862689537998645307798148599251324626917555403526267889701871040678947412486691736963117185200481653154096516257689155380454192603314061864205336085680161709803333838758295905154197242324231036113160212556648077604483439919290103445418698775585612688116443323588194466243291086107696368169754551019347374987782556919153257514183613012481113171631473091784386908181483160061552351451738406790309294617203262114743936203432403207734141069997468567658939149858948795881821572813723703052041292666077647152368374254350930087866740538268414613423403176228223360416133263885215143737437334121999848120813766009125666604305319284069893904609338204159604530016311108177534546026077974862733828165126931365923600472031151532070859774374200549172355521179543763144872607465093573043460492703542267918850499911678163694420507128181878872244403401456233223632649611404295533795600087599097617336896754422382062339282124889964987251824302389255623222701713138007529154051517144643860475576178377619562614857137648740691642491933220536939843456502247358010468119452852077400442759290089443685355623301554094176881792368062075186790034810451831450221743394959772713863465298860308955467070626715808760142112486442175410689374018094915010622873386916364998163504981291771219989147041201159226013087265462543283646485693882961900925307448025242598692067148209176704794060568811783390609452588912355335187940311136558789834447620120708487157797516177246501543310005763640671025669261861750401864467932983007728052860436348444228466710845948478041990262341007866885079588769588753362814950169407516315154925840506984503782540929736960870747685994390420944437289942915067104759899789827747762917478593759717732898697905802103303116701707491690749754352684914634749585438300560680597504595170277972596412114337125663144830630623953737661105607942903845242989142552981279665108207707877738108507592550688920650461928737385590597791151267004991890575800236798343578887110020067520618957497691081300250668039167419261317943870256814216821068693087457071255698589009464465485802627426601538358162393307011988772691130651427874930749844232802620566917530995300338443013067452560619671233889197304779978349593190934358020075183425436842265629096405783600469535772131198325411392615923680482248347340532578735012839265622219529858874340383295512099102340985194189593915402850104555807754066164079131868732525689042301967124700072734307162048986769642159165574974575304304611747090918414910938697626365423181345176745533029018907749961923271624074424764904327597368550314792149960215093539183794112880144663954078727221058934033586951714850076486488469075141291026319897049742206537936343094204168095803336560274617221392616703003256469554478365946052747068306414421345721549056847761060293688984105977604759652657670031833038417197744216642707885981486890910752553672115375511759654405064240102299632272439244333565159379529378173537467691309972299973897329654741972856803060771889374037493053306505964084047036620755301364372779824885103446475092755367818387438747347037475667380194431662316074323708449559569087670571222093570251354614104849307161884406568176689294611856462164215079542849285698247205486089740526826321151031389728060483045031542158189736099475879275958778183356827675917475494313862232231848724583029691924465143786303092583300933956693318294682551275397112031944521655501986541141534665578522412067603463040302850316522486479766368707138206579592612262190806285104266296206968104049351641457135268304768837954318444928504217279143701317247704707691668530004020072131315727250114076199904030470928309317577350034972305709019456633306555275030700581166739855432362997603211022693724831668432903632357499204906225290518219480359134397368395684458969430448991859480795860347793981792599264917732803368471323825412669429963545652205441928034186796794243574648870737312310886370477469367144165453595127120301362606536310026240180420843008405947578382034370434049268104567837383239703249598888543903689398196917189916044958939416362545397993707047930008862229048385105585770448992325444576189514818754060446709975900174891584135786943657654514373436112154211593308373550647003600734592330139689735649265897654927972947177391964799345630772556676435108180073001997871164121069503713470959364261873382938326315813517061796872859891062930232688737225353718290929859698543922355905804888973468465336439657770408549888158382306113947277401639564136973219361172338480672371256299775280664631202391315283850040101101381076964062968315674015609599830180583676465087476517696017146858362141369427019530325583533784778040084681220393930853266540474019619198947805474190373537080772290167854723761291742141963215312464092400185202231570621931300816010486040100960152804110900613129648474388955940509722274947896768015657424711317735282020909839557126869239300163629317805070723886041696634284018608469586460073365544736305771708109127724670293566165086558937021237267908569647135278221503950545349337995367368052709556226233753470842198032822582525808100014750674656720708880179431663822516251732854666617800056013623538573301635319261491738014247776437155156983853606376313609276273712497814388125716460396469638541057348285557198087240878141940998554135309281397241259993954909877585331691366013136928130490311860992538881533275910893197118099828809481726623619781885378779264506009997404209892896126716083803891536718623587227065736789173014722232293763325019255038883813420222043735366785236613954007884012404850645777307030107396680023119045397023472292179925494570953408286816935882297339464220071868877355390347973444043297488781943716059649442643858812586026662795903096007220799765742226268352957394432437179587233697664251268210750303066444234132328480451542122361937965628801400335953057133650647233500438929935503456949205119307932259122239817294655909339277765633064413777592338293157362690727139967616761730844850113408693984608595746342400275621840808280306412667413752526016000235073376401877140832520196973874951583758870671113646415546749795110090258612813888207628434951070335956546525311264773586002187895182976195286573458463366851064847900981072898419591322062303046865182902612949335544675037344955563474017198037172006050224914947053325630665089531873579455242048601770354378928856815706562115981153184662825571346464077691958833461187720855182849375058095129291112797454736699967154770103227130670954612555831857488164743341831365575759391991311348603243314599566774054834668746241574737735194915308559388993315153788422091651880257055359676192804587540735724012252015314895964453461710330859634674724910283335377440205608510388125125440974200728552146460054205895053982023152000632444740387136692280898931368085630695083470336401155413774254692332962007628022697782851758381969212786341724057881046818204052263434567287532632265590227952212167514183518853098511300700377492596831139533422845690605865110260093144317393008927051024411032725653705129153018634382479172079855682213247608920060390218948973719985884960356927164444198380630039743356848657399245357603023345754098917512261627632209304305546744513188023442648799443485729008476202567824288308762657152309239725915326433908799788657363315208077658366487068020854181691182636509362734022181375133536530206476328566003974777746959521195153164758163209264138346780575439183397130104657044013133692501392987369623221467255581074433268942780530649965073828325328252567428865049544539753741080518566740996466955405466950453099233612775874032958622758528231705406773584079486578683157839915973183775436463330846526878330190203608540511128282798579302332812572656339461544854512364933514784122411732215900532103492796717301416923360758359869628675703012553394796574669497811983926906450816823252531120951444216439667469267883187279460766570193813594122974679795224394813126620708355270305478952851538859784988084820758540763055383183600866931779364959328001509878609427116962217272663938168104722496247514714062848660375062252725820739705882904496254349017293626359689325006217594858356060622397006427509964282667535682902975627690910438831745611469648018347339116196762483266591759758411075324228869501757043865941919879905632984611368425604258779402600017683585675938301389057886968279460145772231121648897837904018471688687610505125731292659408508863356931593907169839111969023441044069745227051697507836795830461958219935604248732216356926041626554908307473586624535332189421664460948386624692247330450527723651617507063817947355580041944556152734079268785823817874325888238106325608207452023161855525466055865508123589153914973717303375035235167882453493222285851915803975251388941176002768339516740084433105688293915582805091612095834684652580399496066546755010791769037463784737666015657909372182265670487824698691372365258171412823732205910953659295388489408695883579276750744252319787526168256101846980395323266837910392543210357421949879988527837963030420526717891787978589057397017761778162974587402043878336365127531467043816196196277125396357198533275881045126360049100399978034594841062747421506699047531623875213006880121078484912604351951443102771879326985327150065665950470739529223401057127869657745601601402883515554906391568037156086440068362459676666357272315966109458074664074622828107169117770164636464617019173374793568225400807740454762374632760188732646282509822787609876209001417455976143591864770684502968422669527372787321916268794842637402841177096985896859438441924158433708499944704585231692979313691369770613339852078017674024950173709884434274708017773349209495379858750424968579298611172519374036295290929075911275885065375429213930585563634102605665239717860135159619148036680813237900010117932477857956780386342181690057173193406244964846282534226340309039204945957019362161405384748455726702574726183574725345452437157728357232263590976765416078673602894720051892328620350891094898418120373873037346388852480737057932851615969626515538444933084760296285384581654662441781198404238007715644753809164723239866900871719593335538662119717773067957244723034524565284444907245436684625173430851153803270803351594528911991832012185232522563876955003567293699658115786709160684621693374236110605153496565083175211837229349057543517422942395973465737397647418159976015471921246776766219419795999123137303023109280449138840398045792332713630466661633605368711860777903009291520450453116544338044137931482033620953372210014393254835998975366355053078176739097413885243114372317524104969147295791858087004409602004676813312075048769682518710139852696489033935539264682012290986905794009892812438953365572547922223462253672489096833841710438307684586902856771703811931030968929725127307161073160471811186605399006738106102524533210988591209655148818325242845162898291200110653095415261045010216190532841281664974904752505398492804442050479555704576987767103564647418309873516021923291428155298103777224585029828535485799735507436207748046104146381523940396527333941229564857488303631471529347784383930891060056923985242671637312274136973895187903568936732847071220881270691084921425937042463385101980456232036535452148570431829748354329807293780961235384866861821115203904779165239071099295709346891320970958041911336944664764933901586066633020986996697545225059938916509112878151712471937208995857931198341134224175864731742263280315629321595440454595035192259568070989045011334977918081445683895257310836376360527148912659592554325769889250534960306741261887471034696635709224830535224402757339614632334220588994857515958252469800605832711831409407384106150382213196861934253866455425343043544181265136423324650093328287041162086498183991340826288291538315664910966127143892989398574181936443055185809368206007834517099091300142136556466263012055284906665154888251207842127791595134101902188725165473180659036512694134469225821568393662742266697456557138550803822139216809053645973694915625027103403639251771587716016248235437601592438768501762034801330346071442110492353420218201392708499494316477885412872238065238419413536357000248752411571665255810066042972406330142833404758669512527719487928279329922947091567611009966607642312669567329342276790503809920709070047995789648736555348175912249922448606938922003342041067500989467103559859075660085241131758472582356461828476948594562723845943659980991641146346035607087256525927843819582967815978556125930707692009265606421451516216774623482800914303883247603736550970663441551077294797501022420205932111406937589970424237905936215215879342284430886575710706019074443320255219818390124543708112945949425783422534857159425991721537362149697750893228209811192772081195405591692687057178508509990458486368969456847788304625930545144989702619207568849498576963889855875040439422684224891606913568704524244906934019776574286362628749859505553380001389931889799093403975887485126891555643618777551043707180979108402658864276395495854334730020174711723531654250256304669840575505371717337964492784565220747441358389982211295979594788595214601344753064551083961823174521495869845924010485939096794810025043997954673385154603373216376311790335387927330208840885056408612079781507010030326156915360323518287190784118968673322247547062901959110149063207415690167916739243734783297822178925920308083295654198623897459225690942098903482904835251809531931505334420232212587366699250699406062056368293251435719743419879239697638259708237679810325466437330631817211362387410114167261084415338099777247847270584841785100551077625307226962941403730082306703035457441929065538521610445699858894977103382366197728412245079320224182407825932220188368427352514328711342596860758325651334927693075364555145841664233197803348819767734487194590960761713992041747220817037598042117913751981017542796683610196278599869604419590697065141593556023883575953001649328876382601803577159815058810132245321250018184068559820776919829264953424258110051133826568972614723692996962419728601689400771234244948070856501738072839959089391179038894245413028300365748837496018803307494148198185129771898554492010878854094829015589877464742746081509446327359353375052240879860799246382907307401596851121568950811570551164541174305453360447265291989605138754886315718322363623338605225124324084109679814904195141551167952771842292413122762594756636795750938698346519737981110942658607203958144764172538636828933384547835911404110895096603974562908121364582085893213108032531931334388044104170927543551367545661867848524263226760180722272442554920240352970315443511552145060221713132180578744793595572349157509461309943796815391815540658600362281093241545328494675041436830940138133984269240355933899978511552108880430795268457329516133957021961917906653861384147870551661228284334616873878036407377001145204434642201620873584222818359614114603593881322986500353381110446793730220748048614376458549874680522869052412024127738654893204807043321868144337309888736967029527914870224001567868023802590292922923868235221128276693285570622289793844440474988146412841589151514909328679228707633105009812565907517181727052497950166677500244467013487925531888297699918980840585106618314527742750638876610501544361900946991589875856583387924476932282753238932286648831430543929332769422667768895029139619529881676298733871143305776665908313439239999730342089267888890330159093360341459484549411576257298191940916767047067280468309040569391337243701618543888198525158119937700556689153242845456446497768466284164916216828556723771820925527856074097450730026947935868408099891596259100312845181207560915580972687174653297983541406019607187701879402411066662247585435450978899637171531153514983530827472601466369256088269896848783740410953360127826580971523206731280295859544035018700328380055938110088366076967466167186321595231815753998936272944373917776052888329551942860429376975992783114913009657239855027755951659458081008566664136666244624302167108045074225937618558919645434052153686721478889987520422663676451652292316435611802604856324362693785842528966634824368240291073777152758891652157846239964558145236381089517287445033526640776781928044784363105878552318407549688391579986039572114122063687397193774764793256780686212047240655670704438877636176081484296330365325778631236441798716015358507059812778814611920138636196558119076522288919089739261179408764304327142644078183078906549900911438137703780751107025623061921678393128166726271826900708205983837011060669111788645680522067140209697455109446170867873095408768090330413532622055114782092781113486671920996869327045646852330220914220294452453488759714607518170370612810757300665764379474621435200093985435254572568888930899335073030851053948083481559316720524394566957428816377008729819253671798687887906032058644942168186601898676881786924024731061851764022324429157896058303877765921757422038297990210255385412267108768585977048717684894080650995650498496158730781068177920096815673089444604006398856084809679110978863305557339886861509174024948234242389620828480144432485791644474255500436668389896954139961946522337789179478379850374292243591047730392505797622241307749098418758576206962931159181653578050208504670725969903526908413921535133818376966810442590931942088448894661996798114325445783074147023629162357001069677138296412175645983604796329213816202673990379011003264770296145763936063831327523098014138733996974291757440135450053618989424078907809485683276829193819377977867595234090593505458903680108736325104493068993638497012856230925711844550005173572715312016944022480462932337083765762764974724922117970255625971423762181685892085869103677877453385711560968409412171828005860695867960691464846390472696799183801301542495886515121259465551318032125336744619343943747221673228738327639039840550064855557084026375680527359574768876973536462334422945375894277999544215099391509374629515371531230961775871086870194842500516717577848631667904590457454592656136766307719142747288054272641132457596941131016989522706275136558067175358026277828992401949361105560133157438220775857268665830898013256681384304079214944649665233312725499029697611650052866094738866742549868185833882423882974674271497912309786748913396471803753660732669516011996689154845402613734057952644240404530079029472642197628572106506392054937103799649270078743815474604993011808629895012201409449779371966180142774412066157106947007526650060310555907413132185414141834814139123395580013759491034255134906173054102002014008101197452691563238007816775475621304571300580011093348366024880111813634759980780694647061349305793949672441224796580012002539316686881408018445707861760309815858383012112482560290207532437169568612117828074397011280954173898405624946829092441140089809124602123410145602238264345704434061786161796548400934568344506992759568764896615392729766846988189018854733716837525426547577176084095348036686127556243651769737037859142296861408035661128823493127177354072952876640684865200742437180266150333056731778348921826312828820383267344029546461374424788131436482039776257582760332448454843282526649218248122661687677510218029769040236731064918032442843511206826908961554985080004348015359540505999503076527308524636337084548407265840912894711604510133956016368775790569448540641057404955365175652342802557190859123986514684872045796997476825398144282456081764807214986431602069394398340703079795367508398497989690431626832454356542139344408168795309082795107387164990408709639811945964506399906413957088169725315297975940872324816402843644371095618245706845553773918526816388685739588740277221962178406126173269286501454655908184171350727170313090572242543546806016777764269973823296839983707424807141272498037621143857245397835495522400540021821354318117461100930048274971248409505129496888764901013296676440081981017661129167596942722487278044675520995965474284524979315631311487356862098211373910984567920601581730752559613895184755740775762950681188455430054723538628857273439561927832148658994155044205200822317540025834390684177825858105376326220423338376518477258325038014578113486249162160377699861211145978781678672073142728556803822301461146745272533099019503732839465525649623866554176203879794789854817458663997942793394990781233513610860403218784881414074709777241242265865368281297997419105507611033738270332235883195897069442707171771231971194607787101394791180031667642540894881695452088131130237668597546947695932011082525950930962029800251374352986541631984311547138167851208831678022754616946380660145160042708996278120426674113671162744783033153433567128803454789153451713577672547179927877765336153346238008253153018703659540180912965194950882878054951490256109524672444255246261551674858309777578412467464028382851939314159883944187448338281781963891599939416675578857309565077646943176440789845059188209092675239665343706368421788149411984459925206771410911351893482024604644446177855182992962071433904525490631357383833390491055328795978591328174351505652909719103190093017771174239707901238821263037988310910819587184772674709131208940270334347061032059043940414547219526822191642783747696038825709977608075288301757067117419214112880373195967619087693717254993299115566783359993756304311341948779566174317307293625695460419978420247501920943622643411361134820145965849261025969807959842697725139964964948371924615465007833070463445797467582557805783807990478723313767650661283654372792517280220540191883353692551683088131670903833449735750454660054678642895499410368085241037749731767903199102322359891632068853724191826788856981478169506985152412892393195656962535228575490581631352422503688602305401747907035785820919848132371780218496540031248087736801855060639410303592529976425001652986550784454227336390083519723713684688354500762338693925634807259656302609881216475981272099469157594298021515395406061476011514181350035858577836807676312985085228290689878470579513181153182712705994822841125399297651413903711703073401650712787518820073005027934062709707325092562917009267514764249481058739517787088356705508590249215357890576083719791859152939962207068570696316889523806396335623226391132854842569685012756887039022428129839168048458530540700458244390536685956065192903328832108212760880181532097965051212586685936489983535408200336489452478251668506071949323530219948982164759524429275368408419807427866254195118417928247427848858742640909088710094779368869156128711363381459675212725393422930976301580997344540206566321618366422853746625394572222820924776843781731398309183210697199997514455831902732673986739674642397834506911005448079347584003243266238717161849607398277495758966104458739986698050843396358945215936458884701336128852916392228040800812232168053231502789467964287120434937789156196043120767282711759927515278476367177866160207627946968747350117491745504269453536420552279899362295626792925874715140784596257976689425855085700442342023446561923460555587863571516159355983878534948128942512729493602869984261569605424022722321879549372896196567830497531439842457598494492953157643180459815841386752606463224605849061957849764648128122277456347390327047190772856968686408618692774810006638870015030870010148224475481526728414182449426811424970821645643567901689348532182059261079167146749675063176878657679537242755901999470763955259985588152885634538419885188532048483702548202758394009882883836511561394862388416496218724219740507134053914823255563131140256193190088012699466434421531114834245254309765248556262525616599587743239778080151447912320602496045106888064637820069702061701726570486069566505640675444106531328059653793600141470447147889164496464045789581123028124956692197565613792394818271593165263320034917769411246163154594925335549929230609200618996208818282059731670512204980818726729963386856777286734511483665415348080138136316383428553444874827490927373767877084218404161060507379223910663167442251474245855544356252536902232436432149309734536180271867408256827373035092989814861991622602683296880285025696310819845845774781068431073665163039562892040589246780554498764806104343716104993029080993629797222122542699762187417283674429229698974635712757721332703700059697510813274200210396201516459456168751150838624844340877998539800476350717694203962395759372623376299854339315236044171121239557541329927258431832877967672621318587701131124570806920751213285060112450380754255570541302076019283050509857361240781042193164938829799598031631412201185733321541776961256589639526286814609457887595604125299032707760806543696247217199109326002308006241522749153006696111617868707041383017511215539792351490360989657577818884628008400381315189838962683467440097396127524857292349095051661623501033657749508055158683605622288476519361750648769832060374802176348672829030938494456153963588864423318900703447241343917518155427687062420315038983045282956750958197795753130280673409385913006998890191658003858962415836086070630506395659593324590206571369391936683176554699208301391612853195058534289919742758362887027922018568376645448935776466331323985638771151576159138531429011195361068152675397300249867084622913713179352620449202666415660993843357700947334095664067992946251470548856241138552045747995313968379666492295397088009026691069360372413949412586482720687683670539594592219345843277928420244638567577053071149000964059074333637049559628336261341440780140701267545052035303076285605102661934094737643766946427730998362049229622828212600486992864482019037605139408606134213611235515092426699172839437286712206365179689321935308585345512550321109014260675124013441288879128573529116255395325649998743191471827995321670173372979955660977328316086456578219851114872530406311025302848482604025124834384357991368812544965837846045343113263860695058793277491064781535677874596811534660489136917959013341866369333898786244271546485936302979566971967653595916239166744544773635240446882502480279644419310669017158134738076225622525292560139734142707235875294259025820416329468932005207440455893286971069715029100211212811175359665082246730803924141648725821936979604534938067486763592199602062429704373695033772088979323898204587022120248691057215685937630726243805427713139792823295238260482035115026689945286645061847688023238078107539214937683151787399566950354006765354098082101725341804573049913498800629549306284095990826875535250032044927677702349424229792361529540594730120628351970977109353692795760996670156013528423650195195213206968609030260917544662635994524616617622149659493541546406676690164275589370007642926346136359356542960164449963745755120509767713959630900765854405688230544359301606302020099479726924785367444743019439193907927834475097352560463299693340409429099132080933470091872687449500869661884439441070144530715077628121581188741325642381151570685853427665749644427818668984075313244755020391756280386579207554138760950255475306223594488573608599099547066396650970109299662883914339443672509831732869009613651510012181355807746409877644783810217271437179775033564284613430897405779814602898925367596395351982335939001869229605589051016687711413915484800802036574327923902350175786108102950154928784231492010144184007990497294588948547813776460372210972031328936052389526564979258447735764965599400372856909906232154670902306984568390317142112031206611512862780641494298643837860824459759587548030995184837175622198959667049772127106768637820515278861396956694586736089407453996907808004062062153832244869172108055456154399193953527145516866743969189291545452560953057810016120007392722204832157304552784064847202261401550265851923304118760835707167222640215100745543282037548238333693972585480753716468643640479615618147923796734790241274180848664830650454268472719527633411155263984195580891359145079640801898394725552083537021973107644771655826077494016443187485643265758871047301864506627432892759923715407486559935676921663250643801596234459166426253364081837699846179819296655049597660147935055536618855328680145906868316794393843823277483023279318515597630726745056842750455903387607724864880856698978610248612028948541816843747472027883595797664530410045561362853845687914805199767901475422436324136657815716991882030801800749502910134987837458481502008644018221193807878417079423529864803747373209150942063218241364824675739188061712589215967195011628757738273040480497752072941710884151916425336572677008579944245526766720267136660877168511220789163122153861507320033436098058193977703217048230808392096914770304448124240523480362946518526812444952196661843786543926550614081859685225058367818728818887027135295319306018204299018018727519610861968570854084956387554795148839130767565754991561861302643649923179892323444759102650411537270101552021548332607844527589242333054610829354918275048533765628598949980484812431263999056155691536334229587230998434647625721543747676331925294990208766927837484588606656143271268182960737431879632073882019910720436999436300775966407102045805912034759966587233426769816115696445277898498731553002827482282352307929573919818245745993853031429780789836857192757285550911321933519230834484737233501219515160253669423779099183225529515305128957296585019397545092719409063605929877123950531565586820712758286952779834853026084680285016512804933865112778284948992231658289005733824846618000763913962647549949876345545366273403389758390855290588490107802205395553036339399143419358608830462163679031474322891782234459895534023942697948715767155092099374650937400460651966165367412259427893826048379829575187325763945435725479464611494133664526557308969749975885910887575466241134978417423124047194903812383282860228802491924072107626714164480847882687268306006031444621383610437646410087076274924860786765095290559503693317865618458822491541273689038004891126926642163072340041388943565237313400698528731466623873917092348065441276202612714931136778687004050317005721738725137797689385145798177999974746756015097392678874585866182375044198483119884365427842095939955410267228368965689152696454887864664177682957167769275005566538957871140229867311344909887953207830300577582416942397776953208565508527349451633007853626146923123343041945865931425499852649202742443143816146692931792114930968565009984046668915428339237401302512049725218527885132190873899410118756226098071740568544630361107385574607986395550196619792237707559477702133891787488422083870477444622127116699766333115905973923775898310519317968434446389497718833149103264179153783430783190142519406587421776886214136325465179102345915406843233515648732321056374699892450595647808979455558849826567637721862669317825164318159217327841288261401274880985111630116382604214166429436217656795378868422882791702372469794915326061035330259157060370255168942855020435458682003080437725914519664794332130560184230224827078768680349348807080559972033764603407900796430931092811190036524209715412307255034313425257377423013071701738237908062096498620432749838448679939088299191923324370792675698992351318933796748769631530822154098227718924290877371559771198069379920223282033950153449409997977320666067190754748026976862501696846703819508430458428269951043744263901564205467022589695202168207627522771757879856079860882128870367687738516733294430959164132471812186647814228837740963629404590541077308704630693530988718573768115343696440571583802304900202033938476009630136781898428632196826169254684954524596622662835356134720161477569584201521554089063587030622192996089105556477588722347877551939704026465105492580204290736911045712581098740096632898973495078432424968341376812924486213484436058294090684849726481766058236811893608111663380357353555554426004340679034874435404770044230828468086643405239483824230823270927626322830333203492784385635317435903435405359810769598070675771143183983325511804111693691810827925637329662581237081041170079837922502665546107713796107908373705681546304782137730326325079809479635191871234532098446827691980906151191119537185456873399259432621820730931051642257228004475551318807421537041518777290585356184658204598280616170614955312891225910837489469122423248746643045174903287781352519308999549566129647077603095739150833100990878996784217594149093595940529793339095822111710679215856684619036805918932285688467514543638735975699539661443269476452388668012191954175380912139080958900210189239071823364312591726005408507367718323035033963164620240510884733014877404323765212960499366288673215836381309824016982084894267958296645113417751156698803240238057938339817235779303433286267256554218454982148579578997241282105163432718751333696138445057915250087654275810046219152297617263947011288745880367512017524823006810320787613383365303971767353936741741736881263822014787367564822997456495550274321861541981841097377417283685139818383979783960521057175502967019273720010447386189545740287972630124574013785541233759350332360383695739175197410451686517721953806623992232090562747707615232981159806606109667078815175213500991688225531213035275310519144577382800486598924057795050837692221815829104480264514778053342921244998727714269674156845661415877540423682893887604360163571570090674503403205800636997642302411327637941508911643603199036570591498745500598938553258795485873547037113874001556681455521369887320008280051035700087434482259982412950388996553437906515218743447673992572508125781608528729738118271785230346472428293139729314103986477646219477216460103602141804154472427404217822987081626768566016875996502458547261041308770402660727571299706948134348590932429123889377890091170817091668768931894602071343851962836401073347225358861455851380399055273536387932272722818347591036487318431399976971538827411175966697198051122171382863067579775284437021450568428027091791495063212686713492484926137179801639840450811073080559278015190391218751120219248899065330180390223626066112038840614172282684492244706203588724198657143100608382628607822017581520001503902123469011133314637861939151863540943867049722626220549435159806836728145731632910942823942440719006523880603609136766023020116154101919475163699380346635341603394104981643228180584437614922268610280973622335867770509755170948068968008050286035625545117974590999941405104726025691849982557614995003426057893781281888853610741578210677157104610077659746840100609606366269302782840881555873159307668768019948601914778756724741167699994528709501860879153216889792653323232741241416724174351044572450737669368070992887658909761974832733044874336608527679717377615151637434330379784245487529294943348376019998830964451808722987884869402768510143058196848583656553397117433459005390555121072902653177626856636617322847382855169121278252163656355114050945459020974122258911525044334270639330827658552316254930970754306298791965512723819443720883060639751198674678731720170254328601377724544312114759339794258281990610992286909684012639650190097302921754099210109835082928296202213000902078070264893039039718051859417032299936773230007555892776258381250381357097398887208806172282075084189534894154008503683581924715428616072872463939633119074005016085208996760326713092173859466296820711360179505818563294503272254687759499894835073434399826134156815598002265147012409977042467963967268201309935277675434544527328908271447091547384037581457551140723272065699605035549530614511635303590921962850422423601460061718687010463550193152160015388300981299057434924633122926114298956430306114527673670639062865045938766534063615676926266518889599114135243493151057839089868823506514652135885447232172365943082234479741704046986031097773589630516569649715004345401860404430174744423335898798420557851948704581870971021681236692344302339626608460960035190747207569651992445744997785242701251065519635624695720007278637138518152222723056959893726382425440012702326154331232450161115903303723634369746590957688429721409554199748648116408302092400317606555264232088668446515437515571342704076187813574566014493559949503807032465011623454369011341953394702676488051772197064918774426749651779497078754969507670594978600362630946626117387813395334463976742405966845853359548536246139862565111845228791346197462308115336773583430034722387727669525765940977758216037567218808348991564613384504665558837679911074521824665432433928819574300136113273361784684073821857363678006994198184130542744688215330240339044738585193125125696050977896847014469489226696738567925759658886728183634567017880230965743603818786828866839655936699026048427549959022330520313396543180854563649903788431801889428504200242245145052482187550843121529874883890161101386633345880831368839402630312656951431209039063315949226589877772245426003003257484467824951131297111459884210636932487112358867578960842558800672137318994621545015387193708562793742412628439236843343330789876126505615459985809158858173683916810574940874463170774914657666316353781098732967467409149290423393931584249729583477862952617069709268777543107424883569604173667380341610212895701355792218169443871122915627199298847210168124756175122655896275535319536756048361479921353189404588982533045667467822839200458345423679006826121514010618713713655315330395261728301734421550764944258785446090573077833362813729579377883165912410162991819118886690779651398875623351447278013661230644192371041292898873881943221141548988885927957803752865643637235685467330465564746461861412678031756467445579218693204689014073759400537280220140264548385803707428087111200084903007640567138612693098168284578315602309420438129282255179087461781541732489895001832397764726256597725345103152975747087128194722145569839498837004274774490832735003306304667088078446609378541382243831466886599700882147256012623274518036694834526918106335280874334104772930199891636814916165960786310309034980482644707092123874197072968390989357693606475115975112895821592737716344470042739007978216068781881375571350679012323559324172590685204588357861820584848421498352534534832704532857017143129033647921656618951818478500357922180070303125170962268067754024367759948173380501170391748713017163160280952709195095019400982778289800753543888602697517218451346705172594952340608766169404807020319476664709983330717012246068335643787304420896638489106778827230667959178020889718792225892674050275048979756515548159831623409935242811404992454635194198599935089931233627726319452759359424032542696295691518149792043407849565818207236105198296447528598889236000956479520389629090662499762165127576056659457549298170736272973156240746125766783536126569551854233851051556141654063117868956083085028853589242279195359318439269596786598933882261310951334943823196834556896085562556173973859279516271393229446301871147158954502106725339333680256536779254566126675508801194843568535326156405490014243559844331603740727558177766121673618337958300860868707985377284721937974998763954469897905574316021475519152794247090822883800683593407147919345473282740498330945156890507516909711708794312499206580089578077279730516890931667694383240746345590271849953191941300586293164582665529496228817530170703193301410671097257060283529915149809563580226293808946596433440076288605652355457092996381921586370643856065406068338645869201358478158371828460210793405903346159598384642157481501113208143759900124980691884021583845047832932439686230843992558326273667425485859094970384585269334510206176210465862476183674514742542936861710931339737917649537997995328706760775258441702228838260257764375810122945491312244975143175617079295053796513542205664320919113881992929695184072802428581680496053287161964039398641653830372186792690351695484482444044906918870459100133405189853239410457182396949699623614583481330156877552922041240648476937574916889650687629458042639957799939460472617509205955849560361129820301543486768051022268391665612415590381173948375287542238753582675762423215509994141645202329706065754187314184530793106169598513493658889775629226006942677503639986581384394697341196340802640401675561270200416967005971464543019649995753430718453772589562328541448556888371403477642903347722303605780530220638838200055248230618461707011522146457049814764490617053322002586310759518351476824222624733323867892629506654549598941278051160896242355022939505718272876757373507592887025429868548127630299088195737461914864551807323931989629361894071611262211047253146284881413870335247135539492985927722137316612544309197327892771501510764159195636426497742824535102683588624181541283729208919351027993281468858154792531174464387693753504049029482162383818131003505084150455538239462287427105663989476735552340853153462434427230629560791075552696527143134989382266763397431458290161445497601808171605727631074263770028542834752526687445095307656262938629961180364932291569594848328180983248593573548640364385887220368031276489816290581138860636238609895982061769868459119950932204988597605243600014381317794851498457427868146838636518482754775282293537862601653009766299570309598554685175712030159473074907362042380715605017789481717416473945557072808898793412564089710180490884838233410622415386618276783652375563046853869586630017222886198666100801508904126198484702840071805294471793743014556455590199879460274580882375800360793025096907897459483476065808601983185057251318494752091902176092398212339003931711257070608971740805444207745557755451257890514598640585484644970845224917959998667305679027190666263703480372526866147583931887494277614725007154835233194621213073750627170514890009998572892085016696769746800631061404183245194717120936409814193522225576136890733789398154565341353340513545019781962109714490172189876504755013493418418003217619775638159504540387555428536613678867554671882646594472398141855208674237927325991409670290871801872148260186893172843260849474194113621360642618873681001624828952091363688239366976168146831971626519097879078262687481646527944842135994300702465737266306283640439609180164661971435563326651418035199054366760699514985432468387978339216838403050788613715767873503996157772900278373661215173329789770462019805074352693674217912591402105096896642346067219172997871279390554541561207149464784156359249415640161051144321601376956561163037264387143795820053354439701639871211270867075023009387435859303621066396640966596464133397414133475549164098288179948807309594501779687318763592712560460203450165522267954362744073114253559865731121219776151401343073583925498059876787421604799392560366805151324855158150654041731776822857655070205356907089727684147006944697445770352542067127978865157480910911882575765467161322376424796374406211912627288647441058360679430464681593081680955502356060359698869226977010710097748561586206407650877882415375750281597930944053616731812344178699437184230617385101382530317241149879088519446445013081661463750536385268055092294613240064096430967287765674255490430197500095140310643434175179991358874011944778331978045547388272194465462534897259698213745365548265744579171150826476804396689697454217376976687328154538697211761473083026760134315812687045510601577435532523454874063292139545221224931582165902996121682605534317631796339655902861779694217525380557614707466075468514415880828967412507018475578592887283319961670342485071353622092575626961981137249208356322241152351220485189352735648688718887521316835477051655515472478132182018914834687596639832419863506688090393586546774071074985470813368679405914835999229649595690917844128321549777168959839315400879455067913958912603628000455877075465668693150950365693136533813372186499322987641125049080253338960502774910607441572924625670731071873471860353227772330393861986599559666090864696962425651844809628273639990125810965959480223700067301809021577386818976484392428010150918476932369833735024478463543776718052584393620326589050941099769988979271397707734941585623577792873404796090396032911082286275790215920121546715308668999586404312295202141727378439310362379250768685969683404512194130601876541186859409868897238739345000118557476398282877737091435914745295212769308023089659676788032819159345036958537848043963853656069612410681071940580069874507953673454573716633717451102789215023465915156616604867038325649731310924853922740208777373456118965365550799204554437139162311186731259277281771422755208995266250214009258356483027571704483807122770301352578783496518867212001470978086513898279204532980092617983072983874414869386529023640011514503196903378425776064985685960633256645723956518365968544232837501278458853112965617191363646167876549803752095652778484028991188369141910091031726853323998600100831964466416618695198996135267410508558463741994540438131374174584963909704195261085642363429179658958682193897450314279920678179727194864871140601743328106289548178733182930861292817260827229377394755151514417704340648240681012259360570799380558145340331885130242994236261708484598035836149117209849629570742407171226745551338117382850488732240806454366565549713350495908205014030887172539462282628672328322549899646529276157624931802285058890941839787869275733805124054939286872612036878866848669978192347929072874003505315052480406969471868822071925897447676449051163483752954700825283782519033565252760150264456135786431503249298675132784044324061461125472325919425395010132571325371173484592799338853724738025212283907511924176849776897646566479574228988611495797415502815440986403767031718234979696340248028491316149780209954472971094707609407243406703471909070885009445092883545275705170587112717784594208145728632190260234865867115457276252333064011160726462483582106132498297346641234873940917727604467990747116881097804258727676204838299142268330161299776389299067401366420283896619030739631903117712687433363064764015375078331569906917776950667578447473523159514271380873723109929096738578502257523207563498090422175921934992507949025403307243232350722317438895143942434321828830351268048737726020821367723417782396763905946632367982495740163049958267047630112044917152205684871869979425750026377581429893593356919117589321479021698694971636100689941183902787783603802574613826656577278050704182410947501967245307045784657148532190449825900306476810771484838758136280046050014864219986847627842944127948169611255299330829903952423659847404561224489615169382615440952548548831751855784410050430149290572621126800417619462581894469015208302852773248181176863045791987594558374774030480777772675863972623862835203471914061586860186470146136449967638560161832728249602350549771223068581948431337833684206483829919678939163920749483071036110705234370663329082801806129552805375030500239969736391455963498587841147074344642593506185334561644691947648659734050248563880509518220016005292071603681455689295464515549855494570985023865719908913718603742562929230497405985045950579970703095037846384079270874940743672022109836085393303714111488646442635613568103728959334488528426082057314365684006706754132731208282412914131123821796135900920756880864632225935850198117594647948256875767166661837152527030990727758036554474119635700752672198486643893178787504769349300459682810802412834055310501344178816989788202956954426683467290752288066332927077342371358368080829519489680485037891579157881855161882646562614484283903253935210694573629345755897152859885936178877165666238710416556890426450099395598166437550783499480201599183071967034587691024166622849815292551001685788802902548419271837626878500780526508290143717167590443520405349177029088624022048072292147275310944942375530300807901652941990434565146781436889833320750043974245053378942415236781955378046007327419434234194716320142439962727503757066034736414156333635148757928952408119025215061227401038018562924197433951975977677416826624067324864949573758926592664162951213860613423018597463339873082905720893710117366560017914958660391885829356732067903074183433010617864925814334296296221634149440286752658094241448292990468417455900254409141854983536955413346996468816247890721085416915228202894062413399770011035315777253387117901728481366463280186387046070766255949370355231428918791297545384409091685629980112159436875924619207358707677470078300400455535087368493320931670148665168098058459754997201882310681764196496953343836622851513235164287872348265223373604915937511412744255609671404617490882868740668864225501878254673423789655314179362445176189675688707306752806508871252768955284116542656479687217543280847778957998234292128394646928077531498443808970880578371396673090406584148309921336467136706843087346083449686690724228673099315605868065697014007784374353409496611850892102369752595647205598968049895568300518745158840440841830438715768904389576272694312096539690021888768716573739776568945167210958817224120314367791507750177101523113105687049470091038590615242497713069752699296550832118005781009260515828295325090242111679688535475568368942009709131589430201811051067402803346329452034399621915075070186724870394138683186714720732006731292503507997257911873717365484225416954764716908388825363295199206731001938446144081360913324469698304496704194328521262296713905592498935138292392508587049403194189707065991405189475849206881802259515347606138466304146819763408660615333561019807551310395484162955454489846365389432497086439047951962367686036942553743539970902347867025357546418954596995674266829045304083446139632233578474271680509866842059834367521253227931561841714450054144250796013485784112752967534529169733575406046840921674081305411638982386451058717938379632879139850751771244533406108213619452204950389209018094921347068911919900961274789441099204066144210079746337676036642946413919604960058287850425384707482206062618469809698473561324438355182693769057383274360074986148384184589245241026698121929235301546268686536915092351013810172024541662533936393647251246773363029858193941265652416238218623969928480927902128461818614026564669937332472503615663753876537514417906242649150464128574074622864531816209916636278537083198502869240018155045116314011277711331412090003790819407655214823053645463458178439207396026662533023738815329607215375959155092006697960772627596579866670557999015973694039246136263517243509514342443229249767213562566515260352637585019554499594431312631443553902888572281817260351599604941127803399631172651657072906771609092968361546533566959282377828746151707142771401788406719425578190384949159253265018843675949063293939098841296001892489203779284227613679080883571068075290881958751200637336783832481917896106498605201251253813482972237685889817076697824487405213048020954161222432110379342149006302500723046874568044117095000185097805472474282530737255297268034024396318387513519169204134746388663682522308795472255363882706270963274885143965818951224602517814269631013864069083485539234635810542755958666243335503864885536320160243388379251334172432851425174979389346726029305817473095104183481414500372199341469161062519471671158891616310646871488844095644945131100771472498401290993662069135792268926161462272065819682131378770963882125487653769765530058778623345959705379225664999823236893801579192112802130259651811016119559581738355493847378313510342241514688860016209950300903165742408954056397284010224127789957326390447930284317354283431499416117621291048987868549748246919519537841833217184949294386297561040036920229609358420385508751611859760501554101633593702243902556767083294676284219827051995864805006105978908839748848837244655166605768722505496988279860236546491681234623992808238022339474280681943384119662853563364458587101299976034490706643816788844373997630188564746584028324049045793212410009399660577606698314977572020276832929396352947811697723438824778089612518280340474482279953574666838583916365249777064858622107367662018619832912446686596967087099413396949928761328435711978461524185334764690063333451006051782452837075315591899868619045048719117420000594368525987647084116971492143782815360558624389607944469537106161371436185764360781984136253378951615985777249348496834548748776630127973417827338640251008389445879396710081085912036252731367883697090940100217677110267424439699306200159221889155918913282794589063603284234747317462026266917632931770435366473617961889294837172263519120956286111241220153680765680580830886609089444614867380472379369113700281370321282749077227250813870355092118743341656675692597935014335224325475174828686927282314878071771092059560472375027288236430180251249527311247901753870543966352722528178932865353871526904779695430840436766022216799405975176043976393304328758553606044869117309230283985240747487543112548923770607517323744942612246341924849799736497835223543528564522292546071475985404800192189090122353926254282637838240450571206613578249667562743959670399494147934003303033717699062380979936702909988228241117137086944554828552454926541130764060117939580165003609466870818841978255085806009949428625970010093903377924571687326813000434736191738911275361317430021663401197021202141858309186768805976610100085947575743532894556531115257121617774554661583877715912276294399526888224884385232284771856060125896580292786110898556425700575799056705094835363646672766009876665965447678927903960227205962243592463740213177579579181635837527837217082272421053335697893282594895357402600675663070221627971641841394333270523545842227312051363564740793944718985199052375763836638800765764080749803600623866762114659144800576533123157293237687845590406642290752992934484555713426947198078242778692613574620565304420115751883459284753401222835490788402907284937290099757699532219044634450128535601701713162798820395721031279569624555381434210201160135058953044065968480656746842063739730521907549224450613745414611039556139909992494620072752956363382226450060989280621856923630741254623529995881342594113068688792000120734714969103130176167625979579058644233751433150908087073066197371748718846187900664572022589746201033432082363422123349183110869123962095095528970240717187316415982264748868610545410757843753699480160490538489098719058212743044280048485161283153182942342648555109878434863548974420524688066168056493192748843969373543274637751845909181003261395148086042647571141954584550747536850451105816086741452291857029968800971751219456476706229941670797714082826609467898793204823463063547454278252065781677365649556155819905625434737991591551300480295070778434030857061290076080130812651213614330531094887694969635542450571179409967610252963091480987512145844986474724394165603416916771243244227909000401379168263564375809202801066866572867825038780201219343326147221948441880205996033207012641716684628157332642353516554439484300735548944690750815983653887484389908913814208329829852273551085480534261346866451580606898829495196259063388922001866537366754740650154637004176210332949697659229252499336114897837678395351977115247131805042105482419989915692631996039089177943230800008213166250837294149477903446773052271395638640734735779026984076991264917966117864438030389461866688224068265580439729207143496005050023145977556724966113065639540063318968433623366846553634335061907666246187940848495281623663850544071541974316931919083460039394797182488487195433106205210200833451939630764269744858422404303471618898597362899670460087387188125654777447367138970693420862242038969246905520435123048145032112627542767699152965438621631601806743464918632053843354625510104063304623074212137183181091174452061840011651204776633388210214878001363101004368815421412386685123587901667884512993387961007881305312975246295489228463868780687155749850722274675479453085803889584654654239796876722981771348206490864436674514377592090076903848397661641758082190609801311981245019835713167762949500431850996770987065749724427661798018788905631686009091504678369135864977759738034028137173625448375345800338965147602011586073692478453983963746158429383416982099373047526305547582738196428937239301296841029691875495344505726788611857329854480071383899021352681700142582628971684869883569551452046407781771418257607990699569576961833159901477512511397329365767967821084556196633197563209706147026683598148773972319062782171898561981072338151852328373985147001174245616296917562211040960614022791434410235107008670452962365070322605304430188956466069774601216837810473839340463587083893084960842760352252768093011435458203738671234603829657692750918307245300097829178252435487331672833545745355887958238000078797112116756765249543029049535030853875486359173386053899047058663277737943591604798053181726271477683551893739574544286375770931632166022006758174602323275904215753629037315507028483977302007555501227057805769178391852642927919955769160652062476683658278257270114218553966278626570269020782867541063406952086532089277451734942974587927537619771936290318649990461495344966790807578267939332708772440881836453951968172262908095213087512163560196045360559943433815259668203757352721453888414448716943888453672567080363370295706051091815866435773626574410661879856138091772783576608278944797457220024467592204031186996019724426704868217993180999056896215791057798648355212512445328877188875679277860237168280635557930685107408285515150025012057478413584678274355356703827799625111362592714626710127595134384178388403003677490264821346962908084384157297948156372693459409072288899550996691319806079420840177737035663987006656756759323370443196831848022106895903638590750055853278225647189732591210392554748748320604939248903951518644833997341451872165856580807770066102749080234330959443575278062306037928716160541288111997401202335231636192532445215163730739173964573904034461186304921070824380119647221444457765065349565930735520785035301377999982882854426806928146142481341097933197688789147232599099819221969111153635620463341086349388851802388455043243405963307537934761038603323040452689522524111228914962587853441134765837384419946326235851705058925465870438606338984496540843207261097181570880141435890932095677484261607197096565020445254594863999517257644050404825933394372373027164814379037081980487934335746182512888097009549865458192932420030131889249260105291209239071957668295278707666746701406045576727125931991883643222408314869295015198305854652877690049327689028108690611536790758966317845755139975783380830907651975894768678477798754499774493813346234707458068885745341875399988818795120700992327057838132652185059883691525355197815978118149986686979695560558507432397496342716293664339213894554292939177853425984612154354149134956493814884541829512684095790304819432129479233120085308892723326179728590829509291140886545319685723393081350561583130671130879922941642734124332266673226615991415302764512670776197152121725883638806412783710378773122442816598458959437454966808423784541819135587768043186549119494601826312457765980414066346227948561515082342589427624872716508923479106323679492956403960653244914749143051440130702922022776390672161430182876646649129291280938331177026791892752277519985366382378321068563166460819155879872923447725962299515146397526458651201950699229215187562825233951690408367110459699000683416085741708302959798545059047724626625154733673921622618037009241437803182067282327305353405916426574890518924768462172100129919592334670377010443169628344091041145187532774109904077276259657717490197603188800969552665735157144123545011011351640881735136814631830793036417395284502295162678637018837313526600978419117502754682305572802349634009049590982247952905806915805170023449175122552537494614795562830992694685923677085259172632109390503833589526660436632885320491050284917539530347054444496888879366172547843853478506159763941450181811655139078028856419294378733715701958815547237663526350639859852721222580347456612001784950026752812272104542012673660249026543173099447580997379016903129245852060729014985961872395097973349119393050933348743795066373796122101670063056776364010897635703495103613760701721517094344616736864952616032686847842545992566991725366995502998688099375867559612628276884547973873179741983656455270863097065330564159420526475149657510286985558199167781029470825489343775186547226868718781959784632705411144408107782652761307835927858494649406345925919130704395365631993611273677014943177865925921252070234317301704461004195123568163593756674641984545890003167984009315113036963814137309477533525134928385848812904399945292943990823673425521755733431567823457337805288322320149342749110185791898794720789738373146175579249155988237522054314753852630832666939373837756296309125394646289383306217127582691399260997844550950015418170214312048353787728324536110504741212701820344868883357224954525731555022634359275433610449389167160411542721267802115241396366042220206792902570078068944135165867222478284605308635489445405238180555624814095436520161962612695708858795808773506970653883243756259161666969580066124910084405206396600663040721994477817244861347843425165657896007403301467267753717989203280852726904299277100575501575736716658143588760944026176794683939456676901800711053912723255716774337386858668056809041026308603296032261236399940139250314032047418975253781023858624053089299872835096179569835450808527616264083629342249963902266717766433675976904140948833968544570797927398070717495865047205791607030381618814558381984284877308982620094133170833275117567875996508569272798599360193417907669466562725137755442996535022509344482262896347822055271711694524222209235196319804003284517155982361660867901211880750064907313991287797073588086647328411923739388111146689616209261077966330452316416957243346368959549787583255325868283102746992969494204677605119924384744038051811673343778632130583937391095369125444413869717311054378620640508323451257761038384362830122676576460147365664526306191150158032950156294621893489504530219618689066520504139972454935536076976301017150509800341236052143876482323586333096920685812747142641036723041474270107458899564357560949313310846583907069142679129270826149908334490603360954501122561720340900704228393444854084807956370089074722417865154620551840269098631480711992216986809162723496957676482993013458960187349330815628764023550541266922219453754740588572654845676833027238573564460447746337545071437852886697298145256274226545610494207903242628835940892259775263787132553022513676972978560394002275398986633617635265926050790239712194445891855303247534891147046306839499148797791633715072638961621297496059208121113036065944696872788649611083292982292690909588051762359119993731776317541539881068786211232722071612267158263536317216401124688326105044322659344700081588335211708536962314617460494100548067260512870155956476786817662022224783173360205428297933214048149369654476885274590424307201356912743423407845059292631549568337740522691357795351406943188089641864810109990080980748179190693658728296114615064444136511660502458967309954646493242033349515818376449921939807004035606666222407969465287241603777111794257412083155781931048397590620821178845591151172139951253499483537926429999548864917943529397260963758675999953286438523363990236059874243001378809879252496798802052590810883307122585824993019962619887390292432244390309754846334685434272923852627780448968869876197722236717159624775574273404825429146598272348076493993255475471448123554909502293512983311076604202165730316473982818483684067756841742018649731037610151743459242657960131929350078961615049753190844781216037637159676680101304001299866739111943439998107353775240314752683906307756761353471144691706468388459955140437886333353587410708408170800877224984994778873885140905442978938826708041651369665924022613619667826856539825098973032161391952799326623920672357079333073843685151286749875081093501160128576797646101296306217701716007546208901669508663959293234020007901253242106517716754046703350944018942593855981740105743243632185086477283051872769434347854955852797211544079400020382260070816583983684269534268906785176153055598824352498439526532226370953519560880510502756453897144339974415376308853413775842751220195339306823384884694147204974009301730357573718072619283556599722227417549684670841304517343950615764350906664644726039966658548448869212119124897896443679829327047082315766133850022596306181094766968115115626031005006687850323314333863197958449351231803762981596818653298528948821027011621220530735084125394558169222998044816617375229281464115519316588063441397501097110933213573840313165604316270683356530480855926694904013782068952735072595832074788461739667250581890833127111181673667578145891979321746298618268490294479702549582843052016871128828339336094353806176941767270036344599947200845918009813774942611209143343252394467443348965525530046137460485537978068117964233712379632094934297134232181230955627653236310955771396805742966029774753980385768396999993027502436346596971503979025279277928953933307668453794723396257527222581589899929188013906072551335807291026317908220746659115337776243304368036475182279174526016336334647618963449424600300193981976147294707439922084469609110926240674358458455488021358915231589961507009170865241980267388338977127056755380852721672453397923594756564171644228519106788263059909910532883777623412519194643827817489306237100848111374083725543383097314566616577489751865993844527044470208746899311625909457706160761032317367593134535561945406927734141227023219999043496907526951520801665260160268313540691041360412411155982190570366979310603128919565686065884818416379009259492005466517185283353664913098865699553793743399738983981953029332320327596770739714949697649286068206706785728243974866477620501701660957631995209396840445977642225087320315755021957352985792471796033287940179005885693469524124653136564758090428276173682060602737214656707188715881853898147306961362203677500158480619010484068407793572986380289773474103022915722786920801611643259510055427827988520793004923103128652804197640833805538061379355704189661802284320425275654539564627205448345593252257469711971672036811902792296299555021334957060870673393601683773631844473468380850863827778383064521966214251123023768041188704413821578169245559659384353409797877890897254573183487723321849771063491858907784643447091685373297241222306534373775196456384677183770446251526925657407894631070273580514715937187358100242917802978529114931308057410811211496315784193175539729823636228379743356999546151070672442148729228791773837576770776495453886582126671547572309044244417066134686579220305373063444499497775791858612855830172663025565985767859477506368185760507207194486508030461762693706869499808831313591014799986828967488825665284752558741117503223210186478284463560414957577639094264692095462570255797191033866517391399149182992472769354547487540289910139699011461740717276869181898030470210578366435336783209952703565914046559733865451727801378253299941177445585280224311662036170086404676434815001422522156771443204187948422495462603754637555090402862863294593730516502825155170550594046141605693926813064682530126293396180229678315897004425051562072648655302359068680944258407817755015534093871422859764715194265809927852799346188646585889174436219566339152131616627890304854347584750974075132145971525692918873771252200224173582068234745316440202883464215708554491482876910645992950781806863976249721606541535275789727430223259229862707518154174896641851277760923477147090989087482017724503073628526421817429347215012099412003718086545326576592664849283550590030903137323556948627521623458289788419285978492085800882853768866582309173429476274915918904453284167756596220157943907603339076243676882417984778860325516462564961804115385321590183242613099502363182568898788463400553230912325444325024846740947362044872161828275611089092356472698599283668100614555248862722509756441836796311268446462653031493090660416797061649545895003858367843835561711788159322454053897653793933072210080720871797837069766477214661631982698373465693754292495458647725327901158107697947965713776184256078180898955669651856035734814415594154778475455511786075052964082761952829162622936600179265763746101525599615767448074954662772234208585948620389880468788004710981744751547432540800034658416957407933292431788121620610854922834185102620984726331900333997118522559188835221167747333984091449472165930061584626731905861372267168008334061072232343563735126613473628778457438259206597179479642442609952238442215229712063943886890986776758903123619540457271193466456779575856344724783953858649718119253729083633298792546054039846021894381179346669885292328240758638152423059798780321107486868962094457917692932066434776431879450646759992224529866620489761514291749610403883856750155113554902874479142649357732496609125258842000893370932796618956673625273508577624642770882053345459000850455892785672697205268184366026223655818264686669950161454635306341762936795001113491113793976034299627681077518788785730532652924221839805019071561703313981935607760887603481421589907871169352387468164870335272379749845839883896748528366645309362145078576528382322710536092356377434839708640195910851504879774426726105759570491497141370420481528944170580893341007596958278970575308475552580426688572346751819153859373329986804610401484987705778356873570567598740775880413914935043034080568150902389812611954469703966959346469633006083067145273091786858994816836895448702758980011844456067157270094573299252935881644262901683896540049289211688616204838543787639816112211251123250809496352014038783907256546700715617710858321709288882111974372903496772399991502050516729210759065190789615374023404587084563900175240933951095194618236095737993851870416373068908705471418867042865473681289667300142566285673438254033565380790499217702664118887329074360463534153659280243594928200828309080651014438169574415137536238051902379985481605396178778514921295224615550662533703913946852042013450098986022943380838539792055614896207594406115802744479139438355891770987021742748155076741189681635257805844822425147622467127128113487416861759213495598033566139763584590553675760621958931276790466818339713494143554186288645533270510978813736842872154042972573378420396664535077727849771784962274544643216937367622770803634935711443712380684364960283654378519565763379406786246248910991541298864158756117126103540580527268716639240940118191461220419207013923767808237643439957315608740164127957633112068046103107780060940001327483858745304223542153252607927967820836569864087618117033948452188904339475765070322920580294981634497874167441461953312943752779781408199943683407253297713555576802678616363933405480331421366637133936320199545944167213021767506015369758461416665456274617626284960062497277070903681682840680211798981874775805783625375133439025097773031485239925981443611192768442460105722114920216617070377130406694857065734850796075833641644567991911301984946220251376820810895165523402177193269707539265573717401797882099309866500372770289658403412303361994220692737248270662580019873895441700512763614377084401751082618397670300427777051444034881791632366287084337649164996764650969215829903872206943576380958522323107186620161393186588808461712995637251276682073658983743372850566656957835512549987835203668057393562676626778142612428373630672569767096133067923761086393746657825186758611703415535711328254060221783921089957854737888695257222880646400295189135541371678071093702114710499459827378883861878675607559469429913635101152524185953374783608293638166477933070923434556935035019333025980449083490488470536358823245439497113980148657981047411677151596079740931598759534586962983545257296217870259019776853825649474415597132259794689807522386053011147824714006119558354785322313271860279302224826887388109547495861593833707043923119920494004119304341475681655461839460079203856887533133954107527142506391732671401392304212877278701886952975276727751788278994897374108155247039641718419028647653850217820184788615977902557318311612432311703116287115338688289507224132251349934546968436619648094543330193622698817650386572066077578636070078609028284929997374835618966574951565179089328342194645996438445844251633136353778720194186940135878239543720191651342123865958374930197728141981992605578495711936943019274771685625981993804897489301085202714303746116125117768583123835765438486602980926686546805067800548962355470691482382363939578116189367233864908175711630971303832875634059882673091238423367098542699856443556535957773616248518833129432165712706719308758739640632754325273587768155505035521634107043754194366762753790629779266011721211264416089724916477320899277808787594592578906281762423262385426677746400533682068150417027973745860629037272622368999943493399009366070395770529462628828216907702150655399957342064367587129753097757817156686838060954888429668788126364989106295241529416977554711756597598493749948301767190489944162028666357661739194591368146642003018746678244221273331426239546714023931571621439426442183243155867222200478411817418910145547959594228253211466980546691455637877376277760742120099319676484541666457872730421357559985925801476063818397643464842183806910521152213090911771504997664915340257524964561747110105028452804134364129014607090315454185787132946042412891161077309642087675852885660513033984681729786236252404602114903369082894044488292284216612240889179102071142218166456917506139131464275397124186222872761381795353934581333047027007568188394605445400818219073979247615644238232706073944799546438230850098092218528611424006328747581903178413283191730992191233408131464021912962551686595288947822042560879284028762080040923168895970798554626871627407490172887488156570892313648490160243485701348460688357697069631792242033061454178134991848469139056794299278325859059217357143028012203062600635927655105399222234280801647572200171343940895161956188327293618734043260890893407317740221191356428525986339472785945087847152611828581896405598497721038398902007116193697725380588415711919484060553456742730631992092064132849300292468327529724627381546113133225597342344717165687611212147906642828517088251610871097292966096719894526455697276584017478406081284588304442790308746919914199591515101935311002945241536508207091722088218420553791461466807834883608958024955192114505252501522019194497744896931202194272718069363397378820857263545885805936520127689133362818316498983173653751154762243193316390591823320458637276883970803260898783749579427732617428167042016267566950621072820444506859431250687397033151390640049509740744228094456035437775273197599392368482258994976145403221557247630630840160835652776729152313238073381619313544081792406380359108312969457089249490783255163296492394496221028624291447180355308148997361454132467613910577003795240818580729558688340073879527341387478552222837042403520783997919656169090828023445043335231001347511166847110089175465428918015916606184624396707284782820236671849388030019692576177138765500665467360030387930766599136154634791736080809049923569839481967044987325781276388133713769225001718308052219509969385643620779397448323353294634691414320206809920299452057533129318997847400726829357420067123452792540910123753095820304696951191797875663302603969678973360341394329050455497335292518857583873281023476087993716955849509568323879746621988192706902322020316640638883837553559724183898266759704285504575968067661482008691574703639225417773499185367252247520159901853262013459087400752731317103017643303311502759668296583864252229479767536557507046835364128023269199271068520604747579297476762632815710714597473697442088501614076454340446492511352388460333905089099726136116925830952087831625712228842339211859325178281448066575163681332195947015319357044395606334624688934809936192323825208848523153712928553019237225485249949685962646959116763438038440356137488685144394885448605382006749562878970861065344910124517409079250424466993006333947048618532508961790300514176303825709928856889976921952183153860372433206634744234685876975481936102268899578634998798185898175453318038743541777111102318827492947041470640338605203130014035665296512739154059936685140066693560875153691112403347201132791767376320190099511115417530516093698877165838884394103257164327356165096995034378808292724578741914990022188891408344948279719809164350678266997837593049291271459496646837951327367381543211372423191579163322075852537715602892297149287953185028235224910214875164401102503523220862542252683408346304209489408157413920555430057319076882617109706323951239061157205943873520881366581242040351703951859327075129402640672295923727165222437751055819326429042124850177037111379837997155659229108826006955896701619130250990220238157128111856823872194027641630716189168161626603009066710473872948666296388682778233880131642664465708474444495675598264470970643255674146247605068928014541072145600597767654055933922598498237615130548582026989326928407704885856748470490520465149748796462233762679332146796762029673073091189738650467077048291421403835067703340490606336900746399441444636337855340801902966532911004712208916969134463588589767327484144377142772135527329670788169317676882748031720087633042966494612839069554992643755001404008658683069380085185936482262697769728549972660363319605548182914175687179315892981262434884091890562983882755144602926511674735087122494766470933082802098971437007828390248160819874760280421044478269335178723351612502537013243645153415788991983984712620537579956608876209050981574630997282912062465172403468772639313858073083162631823468405632049024153986765141092112590777588047618938315936941895557225506941136187615747079408595131954233005492507797368434771874907141061379778707336315236963109113191111476337506009343180359820402440168254643958000926783585184089198035090807827194703823829655529318739887416195903833779417381090867857702175105265382948743015305440086413372072786671900911671778932958964022341501186411366647931298005516474308226598013342013090525278343741960813628495137504795743749305118971779375550814549082630036179238563853819394571381055388591309731032514892598084248247208112767729719678297223885156011183038135476074815719975523498478614482776430993442563868434483332802767980878085873513566838327690620242004432615300756275719644966790563137322938515813805731518841565675437973505386394375432660135097112610987217346785604332019108376300404488157765975225662145285894942427371287705565124315790398938957955054650345651757372948736191388460276999244247124081744449158304559418971347083400228467655539747224179197186187469059850804537110570305919675114774591576456512702917589274261193379422009817450138559327094815249020003742520779365448603321084758386896116524636106599752005927884240600170057659864033151830691672328345799579458758574859844360262785098677316931169267365978792292161574347821820398728773501099699865839837204270031054227515869175616153685104434420542388276027596234947249307661131910190357085021728993362815446705838122669317052918967718678784936267789989522769976474912002452511559688322332116725886200603447233317639255269425556101000927392243448156543690642664105105689742657694416341223059541214337205575331921647593542771536611937512051172647002639762372623252747269233208586930387814182908588487967351236887528399174543237328854648035547406499451692090010266894006994965274715363688273793820792969477159444780917387706905954390956459834439956385900986933481360355108050037585043365047680648126437948906430758226568407463353133006976013024995491900776449412663649493181844803858420732011203156252834287186983542365938117802103984999365813485543525036586684169722213984860806656090486426121409508118310992587643256763747346309392480268740419780365253538582485983760545206976030922769797228658140094264508116015798241840214600242335939547231419770343653343482171806203109137728635561442966774732419645639538209127374488654577779653341645845985301077085079142697844162286714944624301849336727352609649635860287608851486076531820712762233838060121014577786101055520250830131182649302039758114673083220963204890490786421551595959008006869187601254124451952619727966071450191753198168703192900031283609223903750119272199191826598249988098711520419988274403988111399615471067994436068155454428655027023370354963714489068915974018807315069107945899002241203463468360476670171506331100567114661906940437985302915078267928455219103673272594671166134207256992206194601121250602768865748941224431774883381949633196588608222117779163826411178859652495600872403182200149730540147728778993256648218207817495991077745715564978469526673933423111033496664992858365814673277096512374579765382211323953146218988070533859131423226547668440973707111065887666237133795869798432048508706767140607814973309131056959467512190476175713701260707248215990779250140827138209124421447208535885623412442999903957889672325111203994381178658361382748304826647269295066740179207789220472293150580879814088231121923623127601393115917680875938118285190940228608536516159194051664108790263058711075582630051006344621588358764083441503934758765360713814785581311331727590483078054643755437396579359120922128862667686985276950750599058349808756925600567781331052438216284580858271634883155845728113078180801699957089586094371779454151479077223989527540156111027180150947766792439042202496855904032025630539189259570607757842954164848075637884223272813371944073170836812323966547303230728041457439980300211687313738782055314086224196348403670177358090796375610106065415096353474578137787267900665245298054525628027144427863939484253774288717605261128804899478670764173518068196397517709911610092172544877284306978533345769729097522747597482454947479535521357133160220668519748382284595507849365880350006813073018114018752285284064656536473672127538958397238714329536024069451042308024864036194486712087353301370058469817164902228237152858440802884480820937010461495270314627362782824766215858674585359228424115843169839562791302658760719529965550451148018835053232419119533918497407934774324237931112355672987843546537789424745901462346288060615599994186923355568026329452947340455784508719446449405237603505744575202108944110866311430770731613406426353038607339257977220730875098164668867891569668053710467341310842478997856370674644913614114059318678394688462824519118524676776337893813682208699053124190094685293995684440346499994129941193843493206403576773159156523322467519940525950941681752418877368168285566558109041835876127446366373351874652260925102113261771181837086747942267524819052936074143337747124941468757579654766557563623247985210787895463793064644465842804535034436088973946803984169129591661993116964748208927853166056729689056082423843792101456856701940767040852831799423858963444301140804995922398916304445484280935426965548219469181090175364966485227101508004595947398528858841978018356037693673281513848519091774931722580465823608124845604268423533825349551569096325770730812502045400343996695052763048263656941897929717819335969958656035161137327956541543053675404196279077270592566967224261483759132126896872903958126117750408506494645215639448661140381646831217932371086250676039069803706910112377119361301285919214743252523085472538777476552143122311264821372675659211272110760865198173860773303569557080528248407140998682987624039775758687100705055163266969178543700732438593691154840088313743604609416728314465940083225101835110622465209021062807241521983954432577459230420171887054815136152449508614191291470570598689918152298718263269799507539813435185865365343971826997044329282356569638363745513353041632632931172994433270372027661198531656620486799255386195710892767917579118987425619169191903934755648350618375494810158896479927442576914989485458907993318487149984992122295223066437750164378845376849488788768978203428925723713967091670874530711394861752949056328917790153432383042412383532264136211054893111267821377744135048250088226920350706506412902478526414823036493920603191052327297917623894075734319374131392256205985118448424671444958919562214910164718981207125194538775565364700046987369771734783838503642927673742405454441849692444445533464303969822437850189133375732317901964878742004937552767184691435878317182061606062105225300907112748621122183292011025447812745438868850249918536079003333865590330930527790711309100115953984471844556661786354179908669781448530006500416479071388947773991178371893017642226045454284647345625880491894248996858206064440368044190077907355181627012776560207076155111917649670534431820980842729802412018552582714789858558394536435098716623157598073609015649355503233885451539152528565285357524289484717691865331281612506460415839780853473676884964293316749522542112154982790964909430467855365427714515093961997612321529814373662143239918527599892963701434542438798658940681104204762774339979021722179016312508979695781579828329751173811511609254328199943616199081464429088070125937710134587711531732746846160830568894292724534788062332070335481595571678792724321190850345055290169124633871200744758920561646637474236675639074297670630591028900483454958619380115358739742520054238359948995302283763417543449974162010242904917167350237243694134594159021903296480816213064500641134156565847309118124979710210035091607313929291791702232724953256218613276430357690251244398110490274825587404198948436507070140485208915856115757441681932173652010736371307648745853023885405916666869991718776748195361729548637398728553402191380775189462400091303394547445247073631116670010549281338367510873597083206331804941020815836128841458964388117553629554149750009848811236472800198113356422690762959677583952059718078891785873008377725775684562127700412082355652999715872940960287313721830669375477794357272408099024274467892968838311336839640079329675608892336565184443064634712997275263818050912282618436974904053231404847361847292038390732710193812327013106696437365942456760016883493417257922503959426820708261665666678687066051186886043838758317690274892917198374435723886300815527699111396964519643898491052764821264017147430433594088900500919281480903250876641498265495454925060768638563133451720676540848836338585871633603477974639286171867617601942799849978748369111252953864115599777593043786355755492004436832373272635725085724253445573938460006217802754680924374407002588051502639241782888998590075646384919244387565869449272526989708184857807475301202048688735920432530329456234991918617332326144214957288299795404903752677193549810058446687584573954032863387899185419537231170678635181898440721611674711438705494623187043595456521186003879602162666193718252611006165302562151529393126637822036462743439761754095435251172737612062732976269936424980054637510114020840851563209305541234051323775352748730163664794708170030638154221889843976921830266905898913446166674819007980465068953442865915091357353000842972839800684102111001156190673172134785247261767203153094477555759916797476624497276109302715896911209448442305337756643490892961726897812100584491430412678210797741036250071597980724015614151138082792089325178267458737687517748863133885097147581171068888480803349292624834460563972351027161211283392083615688720940786489319992044371607981027533788115335536654017769389242237408473769530398941325864296097247003447678661680833046627218904104347610133143787084500698234649991014462302836375372042944408593519353843818520760473110716559014909219520759299249123641111418950925110820293914577712327736544759988225475895244767045692226695895401054027713993949360960524248143626867112562590286199228388256119727506058374155854455018101915426209220724935956880045400971732521371679507325483628935582193091453778508204650681170971683977702469974215885827604808164690556284749177833679257481673472335738827210509980975521486979390563136220202493730082649981258782897713685209851047675943441416745491484278839614355265782692372528156556153940155732455764870593986780072584674625233878182136422279161403445508272012776102085131273473607143448429278139713895425004336685664003315730957658637459893908924060190947571551430379594058808625835822714509533735094025685964240936739658393996125868326736847299396616725684457297541421457878553466430321337896048170947893801526205727533075934876314377652966194038298127561985402922090423626569989919482669004602415813551215434767383210201912218374724830695558467967516076793519870642395077232084401192005154256564077450586842487500268640552786680838298737294760881116032119942806763000948636134139959767188775788504479540264129184780426352240565296026555288787558459345327132510158700169392953289790444375931580028607477487736017775954985659062415974659198883637449321193722419799193448112255903864212157586419034137151342464623630717603186863195933969360325492907190296692085817963261824401124406937342263981276460847789039305284125569699591989000449269024339868682778146367391370385625441647952982343518737330525051759168050764218295933069990679434590950479016868310968517141010030717433377248285805820475745466573255386615733924944241375696340897987023987932597143277148448864016211319120340011688586767579433617200236621950019454046708564724987031556120866042973125646799884058328055738685466826003581823391586959680469175316443989913330316837307815120188944846959898507175135376311871699041163045206040126827493657701035941202353622162710594987894039546456065723447982605950087124715398004353651237482341245405202152778732752621567924374422257149023482774913307424518406429635253754007430292806417342702904246143741402832692328163815309922908634859044536796034460025768771353463831735874667255797700105287345716315965317492630071904047148088228287786308357372210470055989191064585517814432389924567558149388444612871068092147033674471030949759247409889872667559434046927497168260575190473509328683444034436581306967556667796676866789968712318274120204070559254647194976874805586648843627650644296445841645318063311827981017149295671945360169362771866154852472675816052639628305430413654210123884356236247687033706161348759946690776751806982971507306242074052967647738143084381482960123014131136458019772979743503501298028324346978623571976330047695228391698773150030698053584338468120598330253317768769854495389376148806283135168438049034837200674481016574614666658865575724410758598682181089264900848341019476183668381976646750009166868122409954901934891573959515325877520595167018418721840672017209153487892180363992067178680284608586472210107823520274876852777745897976877663756300773337753220200771305272771285588173943254235905092382709281394170361867926189903595960831520711763437451533687218737211562948771804590526958127802216481643562095077774292333172102537971465209615365965695925149510346150171992025885018315955474890475980685295758410609723318974599395418375960429971965287828033983123521423764145649589173690478464700606959143393379470817719701192274837139229007028511788547758509273769548694200225285871653415941330441542562870485623611409762561555714974360466586415576933682583298824560282643198676331645315392492423336310897499891126075877006355589713046804067468974542842865988893360957321738604075222215425898774332971752292764731141540146270589030782472117900655531550600114379464736073851764343027648657826641636123540194027072465426154038054112635300493595775796285226961360204691225029163634930978315063847678304555842044717854465745236030472932828172732718384269235041493245928145517083093562390840717195929454822119983657860755532778937799655944669571903166438181982361452116871971361682631437171505019683058719781617473321581106843848315658776425717653793033415972311493744769343271802072548141901220773795913854290172287191269199939793210470916201378354338410275761291950468850092702197169924915195786762679864360039231276375260323339707232030764246229364163994231825470241372027226838565726579033181498655995268304110627624317661975673663653251443666849950871741377115715023402088646029137834031415998754615675124140921660207016732118054726224398515114481664095906895440723780529101860977951984443837208800839482493020049912466820984655473941420205646451528154674393638977586260059595993807832251688670002175337506142632472149870834318852223179739483653769867162467312573142517745716590160405394019463562241538686990932327241670693037902002295337043758314877582598139286200149994686568348906084289380242719571557548285304578293514967319508567571091724815652352600621006946624994773313773896439982059806892655978178027459360198115491024331335082140625312730737122346875113899105706977161817790468299276087129388523643788719758601561294914514357842178932514410082443577001326528287563454707970189290016117794375977734136864489904939098513813521396821423464693534316256069471461629119859182419072379680402990470235205953054136939745478562408383871995631318828787684564668858431034411285522026001579885645461078626953864629035243243719376038640259632713752361885013692658662466122832247898373904208586827957489430818543307013056051961313786279535600791092266996537939285184963195631532740594331101003237880203097409529182118562786029486613506818978132618104198952432096352395591502085367394787765008856632397022046227113555997340926155794566532899735077848802483423516888932330429260778927589513146374061106977141657289796671756689332995866594366600952673092893872172658165283316046356921612183543445889866076693616034297278194499969374857373724485791084887379186031158664646226058934503566206643681159316941221164638756323682079033628534721663847338894881236922378933819109265304053930534636636186241358600567678232870585569985829889224947549763749353728159968845592739624622844067682339770131721341265555828494648840219529071281308004993706280623389065185191079997458018534721478331286158400228848869447941941495948876115725838103417073424774876753526328341402371097367629455440959532012313980870332142451051725505222623220337006658872744646853609053709304833500908811359150587269112971504029665272812182603808336882310503422352822872485220738464536267715774388809874505575551330151987676105153885339242687107988527656822444440977427736818099057581040971907233977333351189058552608996748250854035379400586376300882055362338284260762979729803340637905614025497904724824242270468782634588046647034001322880580742741550119288864864395716193664400974264622633308128174252231248020400868543984529856630023348425209902408338495524411664106296600434640433023670171629709004835496610153725503752008623804893168451031803981397610310249215144441017497438261091386061004306981677728341810364459830268945901441278704489866829407930722647701957824653869866720066719416742170855207258496698202886576925367639993329035420648333023842639605133767143258366425018460012106609570223764487312699465825672837863875705951571862175424213854445013450905248081379307764472773588916449219222993097937262921859226707027244897660460288326956851980470865462230446057547995102129651215953859129062624987725934591655890037530112214402627903911743951367305467937289555390611866017765060071427248193184754350685509093536137296372496099915846627351898680027165608770906350797452686666997941995571878204782576707814486857067500160523706449359166597423827805031587759526051830049513102819513478805528751785694428859584669825036824413411317913277300885355147116228896309825463059720298982381335598101375985510027474256706661958980833152569501072852747223834350738394100276732170724123594378415204101440361950510449082777849417246593424739209875252985319384932170115498479944967476401610583634927697730242415137558657886128833930646460753299025968058358277669179961434715342766531408241172349220045226219461725761196619017131456546431609345349350663552086014007625365214585111739387698526542928671596990408974721348576904510978203818000704533512333962056970793818494110785597605620299884815779850936485374806050945059980464450779472610145289400190457578502954092012154521780104031245983522280566856978887854605873911556360358686998912284427788030750553867030139159458995403045057835365499898852558355424517174919152419530631526018718168981028448162327572475263184389554010623352693128962739902219491282210404633818893217817002504805802947658146441919295722757290027651288306489114712347566173503172088413389187200338091860624299981292623151904984194609443964594900992967453848109487778671035480133432526451575787496121652064244554348008059906796106984899748465112498844073506824710794840233907582678412715827662266423664663631732090571216971630315595056118756157696672449806579910966597789972395363773700878871788349357728281034794323994977674577889557811332110411498908411784147229355194646519385567280117730676060570673101153457198440119151812669079672845121668309979299249463264507197763553143361052546571289411282883976218517305090896657926004168203992973840638302687693815360338227394297591652430625445557631377790072967594251483703925340570538565003607812036704333217690141761233788420092361714328803342945359147714325177055271907032569207129705647881730117932187553200005831898462201153545209768220481857920442333958832310179048540429224067238886776521535611633353892720779229711858852315743305868555872091598200963426979900242907960200967866439957395343325260977794266342011450749025241083304931454517385766143240474892827381707296317725492546778567193594057781665077475936296564291106102526766733496267069190835723350858494869397610995573562416361428454594615961564457994828363305221126289466013221703410146935744208675224361768851616181645034088521755993577319236443194599316130633472402240544716338525066413102673967375861977959007755719561149098968807266417586542465134661793866809216723926847567312369899656319791786291410603781148754042152750882507198864987939042633389171834532893388569495626543748254335259884788395444913811807761793701953178950423780887507286941353664416033204132199421814333170378383841808086855223070757977130501896367186393333907886882325916054038187809549659058365654112049371764901858053182194540218553693143963593979690223235735737538174213152585210146411470886372861642307019416788973246343549116576285477150675072550757086209385190460425348636754810155271992873261195138252748801475533382413842267763123742843119393905501047638641681152256293532803045267901103726669631712955021759328248868889864459728018301389603302810888744052491666100972635436997335897478300856729469662824634350435452085594994571453408319097430503816148750292773403060292559277400012184018437595930052005217750793518501849506307424879203927578649440045284150650091478450686319035364598482497135636751961298398974498600945458159243389171044057300251407084984416392606531934242730440981094974358438635730270007544232226100641595661338287142388512195173074356831376169035180386822409573802739887217932937123639145706891549440155623788377320385710509224262506359006275294828528199487637414427332540190705271788558983202493973654782035585533836590293935625496000373258799987121719454147320116534376999694298469011712219283681462983267830866709987378092210474523498464513958859262397554390966725785919787645286115841043015783373954616485418859867328307078336063657119165099012073169518676464827939893369468446893177929039279192738183994809563663471248858503328443521867177187936837114070544337446083265378653517143600097023343282551328553603720167817574443347059302671634628200794801335614511085968617243150425395583809903115232343016719382435845993463088948034441936109041563012078649748452289391431083693109988081309126794259135403470348411711578192879704985651549195566804359498582043781595039213382635042821582669162104757421564226036075328709100046303025668032030890937339442099351030402523931951250677238995952308769164065134183991282448907163352868822779756715850674413586529239573437493706916819757517526198714843937343465081420809635996371392900114075045432791529638888299604515873313636464581960533241487520677705082403700045320380065777542133734051104838809758800764809038920642581748386967363577010841506594409231373215837428928370428595562841975745557417209121225220323105868959393510948975882594201405652076423632530939502411949473544096000238853690162205143242711392795046650090404649273069873634589458393245556955080642043844353890084213172359145982730124502882961815307630791939976136104802792311638028609283584314443559440296333553074008832520204081648954809431504439474674040444751908368119006218916646061692158532881524262240291236473314808039780178354319167908479724640246167478789391676270590780841418706374400109883124679517433035874963967255383448721717948237270830122243162372923968104597618728372849918951174719612683191403668777648590134641429629068080225049303608600250835820536341763084962265758488028454527112799349038035674694296753728469242747937013868059403087649165799812395591398888309544756213295427039115524887977339057400825472094426945968939858959737011472249685131511189152935457249358383208413263674958152960031511008097114408911238644742252346822617643543736979699518401402932870822212743648729576250012382209717750101235050266425909713537340405425659257768384532377631554927342859417380023434700978478987253066564663384868270775297066709793331668167105387881640946350142347181398362320249044825576589383369383211704153395344363114972824220468056119721367333735662249873265051017380160223307300091169801271221761922152261398010052466356094358295331015935902228384523291172811326672527331217306903921575479018748323052698621885563557798931873138367540942000263731908622542450199367700236371577186894801811636454025436723132725364300335626818019165707325266513275188860161974426251875895685411321184103431263893378927623406672746447959733858831909650819347640825115403546073241779669800275131136145856285456037544109543526749658638981229572432445947039641284286173193370359339801408316611469084507647041161515054004640442700655008603707488265510826457378244545833770823975820544834255918956517326488394522096382868553601073422322701964271207275349597779097237144843020404686470970940526557165024575649070271692822638209608262597321865345723195271096325293575606144930852498608430883664057698164883787402430919364378169442086429865291741264212338765050780741727673332072636879761033682882292594116313013474260411941889019200403258242992880696928844402914072552478575302124276781652053884585824384540665498284172420337267935719227948706999148661019804185016180178648697960942222320376749300429257262698081325944281363449574757573380171978613773901367790423332319689927443191871152065879679240002857278320902756855335077913952010960559894216651524957438037145091883444095654631098512991827759369845466974220697037558869093275753158306954210275693299540331801127603660732041246192231586889947512297583123173246251392431888931543623432827720477953865102349823354764469445537559390687363865242937473873093133543215271840638523603243308529116004209298246248464455670963537090187718577158684827725979267180735649930746411187106572039203710695712165717054077395431320210949192406873486792393594691108367316857187163181216807738947106140097374663674360311963681961947862796354198876159127854885370666686230405863835161378609523014145184951993240370854675260623129464487895785212937071566537293192460977120801249737294810552208566645032740179308777434359545907564206258205375106312631909276981944025896489685551736856834825306601664096326788989152288483067779214939783043397643266005397698407893211311417581184410151211171667284758060405284301642944896135361455801146410088130328196996076441252407103604101659013967149053659922594967405021148353559671122499851903716605708814152145841374361431673679830809575316888144150124583503424052907147664781298442360346895890828166232247864160618305390085027628632335778294177650073358315527891280817932785588113662308889609790206072726536906733583796687743272538712515974347082117882745735617517560395957551919062965890555574267912620840471720845858531473547497521343707603563942768824542414810967804264943715986641782051135987230892709695328143969858972586846692053747426508752234381177740861274774510475465341856393325192707699905258994072387718132730949645268987185319624044976238944843382743923478360810828483439380927269752626177935623571087435035306413567637082568970883170227247727113210512959763034153018043537941635978481359386113278800987217817510450354032523217761152887379302955892437185333253720729438406205365373541661757771629043693116435742817478562333039194065439894302155658900792317875166534664615794115151876766206059883918379213134408817281866598882328942675616090282199475506738601674241244896438162064182057940596444720660528800354717804374939285093539847875319578513571592125376445793911575833415322640944156508707422935957069375837348648921901890271136790741470446602832532666561659426277352196600589727253907295085839433281078788521002946031329015012710202238394455762067944127334459473114668090918424228256710319738617829076882491294340784497289665583661071484090199256818934873854186334114865610381494983746232127220420212612391342939586117828116688545275478804256720705368733831033986651243969226457736394874709564834084194649613653689906021018460690917043520053110930676686477071984726769892239701227850713853091121954368300474029551776068887830526999137979575194212431606126925796259835224245894279679308446377909688099977999919084706099606206485057098396936996332799353994999726266786613341925187828479864899654507464843651710755011880020321418480205917312512364952517347679040906215898635039852858598782821390975589347593847469179688891511700305774447246354229687840454456044326972618072666729300303237244722913077694480686129351379799996449108840130762429810502259375625756640342740012197307075290238715583583234148056925609294460635373992905073007553719131627039846366258512501418839959643832265206681945021643058647882549590860732934231864937473692845968142022774573428566197341566923788089235672651100889891736501549947695996981381851149178849898388455298960815395794567686295803935705767799566387906182942307151111966056945906851221074060794024741624899920778053878309388758078061594451970896226159427505826727209874960455984061904051829966359170497062416640301701107742575986186916497958368957098968155794688672420574313989492556010636414447982234229914115164353915644137751791996358152484056698869393097259884078104253630190201035363446858769952826950285306603055470756844674425629292112569612322397611900070652900272057980902007564227022781750453358490269125618457162273697038195430865415112006159903368828161530715657410092211838481784106649579856919382266807554187436412397617678218125492392069706044751291843210878681209932145828876682329951499063510566818419931339135892204572222965719835671328048508387752703331280877066917085614217199097537716155193625676302811040213780868974550891068242846505398294161457042438325557379357509193913028300065691780093527022847472558735285994880405753433396798181642080796770778730727310804523445129803184205014049082061759812819985513212032604689326052129597655955092142298360465117805757643054704405551171021544076500933781026487836591341276339885932349080793242399342421811872980105159918168075036076556381770104560519232437955866909685302049967066755501133929088834922374468665096305618507097088153980937332719135213452308517023514608047417475623471130114763839460751951592206605484556811282176678283965331301703531747964696872776506355488159555003074072509901085021154463881710533286676930332724700819446440545470916152376631618413259013870885532392023349285968224358134629899052918855009394778791249934665520697170882261760196014584920910234153684547580190953154027673307571075602949470988447484894269346721537338267230794749399936052070752026747426273031894142119538934258237009579566322728125714294234396962380022742611935316480574221949449983894735209684042685565567582607413603538448109214844418032939814722737139275758531933314552262077506225997240489104938745488224133322122949424236979629094969899256799503902114014326767840701587534269530262216894297291890356445155937929650351216472667602929880738746864243909548135171919497523659461120421309312565827658336116723418168902645355797502025258121095018563907575302446857223628317059585600599489327962977915951487285194584428443085758988838163871468643999480555403356625514913382786992440150473852382353743536655235710939880030447536413441280403660855253975771809575936618281219139236002800589115591561153572460822063525055633682033513958993379116347919978655340319615404180110008146360184547585750038945219544976936618501597219459144135161873691007959984683528749869078066182110232978885237432240845489194714005373113713160960287082034745757677217061572190295932218223172964751182923786128130105895956689048836757602740815537403933181480991640023383329731354836159455549594060128072273800210812652238518795330931406818088410702217925978946759578680507711095248191348325383343706542053862654807943442726392038550843288763541318092661418312692360683323665374827387544938728137263172701079967778962460142161197112761504161052994453496882534956565002373350303073724592861909958955926905150173167006406965417035070366361920789338662173723029702171264182472603517760859708632274107109036929825043157146790630246803149719562419910550791680809061789190681104523088137294032429780872966414093184149214063603156318341958123914983452486179840485152038199633554021864358903824788004158536957137928468175221979829469062257121345684160592105206567958524232383804247342403762562312270748445736519798637501945228012841088409085503527902759332385758149350074823007016958674007750095475512207940580798141799031343636519469662913627199981692419621226459611896745106738717743689950355356325312772639323461924747085965305442035231499706971195931899109625193941076496957545662695935710631525271172652014850109217243805853121076970834904141958807326022039609493913412146248494270477065025465162049767188282053056955701391510437745106648977035775979630712110982372907716121051472015664985741840135455493076479778955551068919980235397619492602901340719744250947158585217962493561769406496139371976330254859976525775827155721415241474819760582327970346655366189183527059204393939656666503779638669295591935803700787845345060838459366286180894901226259158899084638328197922327500277574012568613014947260215041968622184708592547862416743083433086082241496673354357579765274897664310766605771009449813177182466619339705883747511740041929687632772955291630667844291332053994509043285693394278094456943269576200579432687497244742923720810119059640963341726055295530502078555433012892063388701780118485327701431202956495766033035075136598466374201407331617235738037799735578751688054161490215044064764385125744186182083270867634971093199569272514298647512543259628917523395415833141293602411535147766942693265061439432045188267438329817197197764384906389778750076779076391179942599578953172513291519812849050157362744261002892760861199975670349786511115657955591992663041717337934208337977666092661707291235228336381640558280102584910437611214230659930352365697745566396751242768887555631547911650382038369140725134748806375988153740013373962068597692707480327055628496863378953237526780360528541469316824777469491376380703775746984904139566228397340958630891097623311895751315553847250468943069677150312278930206029817118444004545722800294444165349001295571848276049908353391906620428273292019662581980444230997943238623487815231215234573807753996850146626664028640133695616118760602540489602641127875382457175521227448290211689120200348040228596704243188424767905083441937268084515650405352273625100563404062132838293034840086009849247158222069340394699130005445068703553752326028335717818446176612851354901806857267783140124779208924947928372273069006577304439124486822856112392174607291269540371222464560421912948290171574728872940041880295995956783048928324936321511743895095478665634121800760125582968907886387885999759072518024717353617500712050459011450988099648633691192367919548648750758482120110071414653919424564585665670816604379611545956784806970983392187116242888681017184128680020129892585880356249158562653796417665249994964251177753074051697839361849135908684078761808878499544889266595619722952221829034126376020485387856121078114524448302216843614046278716191396940968058410847060029146983209430527097012420510514127806628638243527487744673214573680609806025002936114200594132576157158799483971700547396503002783284064087582059940742186086586139609758354341324501224481826099334326594236604449510664571209561664970122528810137559650789962328048455632943863902318169569338584082054863530808718899539428961751448401339651319715307025741854037783074363114775150494266412437695599826963240555377776182392615104315536192540402632171190490660583958408374174485102778976577228822993046107318104358239554639213516276124679021025347113132243473380523316828925777596849471290434186795108810235107918879195748589113848269025920551428993483388479583105195434148590447489577397791245765192650339454608851305678925258670374383094148383368514936428323678210827674150682277125059697900903563575764984677708968486181131588335151140589178652251087777072846007348794916166748999966431243386836913078483077547341504744545489612128565480399422749887594903141104929298228600807555201249019919842640831401907067066837647481496682812569693802568558672149522112092016548291389793177798599770083455202669395109508828513982174567377176726861093729244841859381135093451021529791923172750701108694785082474669405664055536608965645007055974057484505035897267518604800526216097639527798681573935208830100842959621315785039838566242504235033845941178160854259759104053012362890565371550759672585005610808869270413345098137272310418336002245008032507677886753651104753891667491460466264525751411786082918257737279715431093481500464305390816020322161384631362536440652432599654122450059884888656847414159567293906643878764928569302100908173812332772668997658578113815169491127308501995084044113309687542506166791732923329858356088152632995368754095598130160595098962295446329377082980144001599525383270745737907523208784386598087219405580350438519809592979520850727392804353882929271475446939922128153249150073207216622524684201088147022151022894230837358746980284282102350369749381851128384157488880996682766286558795936320663479266125608036515367575757826868100970815097257566018661535831535991553823316852671704952382644387822996088096625552867542259796660847891051045526618845990545022134668509942796222687166777095358251536832308045850747099197536425419023119773062977484369763231897499853450298674714166250377517335019521766379025306238845268758734009613081536480710251253593041127273273796813003838744143563334870166391841770283818438366042666323470454456832729107093220796740081348502134538684434088980993186813651106020089657074822056000995446279435103898549625499033588912706094016945848461862603421664620564147830458598120478470954735576221536709066210541068613192511561360139175650640946481169644396933044940067429238343456899067126859607145724248450711972130123524225568871390924107050893998359253442858883477767860826814668283252520489311194607660945767612896812194765656239912918154655301152851559413154145753397265302704968388878750938421046930240378019906751928309205386417575386708960502088834238286472634260624746301040089058210452409215144831110912201218403713402342601560824547624374313193754664372092192319810249100753794196101009070441394981259868324223362428900077855956583805339405668791196201696571993519452740520942000958009647452585277040812674595683206067012576268181309175816797366421152742131304675918891538950366591844485912920376536059403375110826458027733094710592285729820323697456026403020120709109781588214838106516881381494336889245583688995868989607290644615089177578031846294425169640542322632811707748255120771811233420616158137006153938532778360301864404855639466779018458302916133028716467793272540006968157198920417670277995306829505826426951469633561067044487124679426986970671819107624984285670517121460640557128903538980897315929282166966939945019692367734778824586049580405624204830390305090090991463824587274597280390186019704420198826179172940276189209145897806082565467853933086328921823845368235834421360951967937599531037298516624072837737628364663596058644476111732508648038148601172870780523094706208486456376405523485105829906626742224299659174865225751505490435764548226947371108263451348277840777810363642558133826352022749449285172217996210101134307171607293142639921210227812414726299646676266905107950734193400407394722876983579160974234471522001827758534921748496700577145815003697602394777447933277372132694778063981647281581781697601183100831893645641707179435715232156675069424120656105120221596135556715007774807171174859732254511054112590271697979880384441624335689088703422145300258726088615759069845929729123645808158190856364011384889301449617086656423600427716168261924819493705915843460718631667056089013840211155347984366665090165947052994587228947191270240247581666206777417680875131770715050748612417435846187008237732798102450006693342144386724481770126864140166788185542026775031503945733244242365346005592996402822004156008247185947689535823731529118063378397441997059436331576129581875602177736990892695446423220502310097099217390701040439214469727535029612315161625045427515589825069846170803880511425119947959388520894154178702488045788427022471033623851564154730484043004632688273294725176770413454203565732028974659001969723672327200082945959451503640342987848315153141637375916199420663648911363963892708054168043816085988278773984326611552365787049166063026095710550469453717198543913380953467926071777500482072618316322364601343358922233838330770309433809001387268019182545018624722755359060667639031956518137132734760597528491826087613344110024912929709219717441766291207619418745593718982961366639427356346511536420007964395768596934239776463396714647545719370747322329764716737981458386887465126325150764439682037649174211773337567347872152043643622777884701926862276383564521898148652735280478930051824859668584148159269956900855628924110498028130017738947953955487202982829388572498220143376883059581090045581687520067201917346082987225135424331792893610934018927091372787244286098968490201674244597105267779831864329163135622806638500222017538329120385193853974366822224109047973178609129041562383135722685215366544337669476104518107476733764150657174590147216928988851615818147651635755776560091285093647800225600097650374327903337606856848219219734832047818410135241273772873697308308323011421276343069482431603580030325799968762034342465609607284720792750523910475966640089658051862525744256061863253080287727053196704670355878029861276300858143877755203198390827725473428358826036925230438950505902358075121286992181075606115251357100084951204952844420735750064857481177777058383596726700362721142033423867376499644085554215184219635989589035121243836145897275735796290519965494011093910576939993694389065553083529729493372744657155607039808850920699072580563872738949676478158683623288306032474223044354372304737636412190387844420673872021852819034499736724125750169875845782807536476856532589031882104006020150292832973909300883869555976523016588352946298250936473211416036899871816549514771569937788453839542177350593966454696533340919244682518006306786710798112849973406690643680377745924789558804594065458783625056897295039826009610886374466675240902470433881270597771489128031351092028209991249528699564964999522272185307514900779656748098996534355917607852382395880848742703035586156514210954213788020911062647893410527182558830088762755713247871655844377905837720830526217377875763477611623220419531159632221545509600791393566311759288165756785892594923922577928415679401286261177833637637927646800623388167462364373693393189269879098343006422543902573019030806716594381757042231451283124894152898658078913077575628788226626713208140895705296575562177838091367833511555794939275319279453600004784572352599335622627751618500948590912657412969912191796025300146014784255122753682849311096924071920189314058394705407481881794778219589903348241560187606792663961336001642888326074570885180898199339555490490236389406916067573194523822981968306219184070991643521045152567274556171514555154557869263331972403421847488216257328063078150015346672355084300470822932624287877569193000256565633162912220047505810570866118029379410878820953549747988506955821338006053783692502492863243123336487288274920360138642663362221388551293583864818522193891915466090664868537888550994384682693185208656629327378146454416782741382125424564104940848079463633415419408678011781792041923988921374008151315967704475080762479619845425725388794873908055162920698242149461267139054309337184082324047506519000292018005393038529692779199954229259997852549425949002189170628207715007364725881456103801826602188257058664186967748181144345294192907538974198737361216510040152486388241395253784177683348566308985885997724992452113298338328289783025511630855215160150611121701568342517718286754679027311106144304479309923127175031758806259625549320448072911135102379673399208146110700561920714248903827770031845424606371680986212344394413425873216861291023370486373361781503755814146679090503124273906570253473789068016773304414349575169517746902946714942287509683068422108864909086953950027972445522121098088782095835625262273370859381615474450889850912063424488213266066445828843778548965544492690255322760940935142710138549849670792078223722623006610442083866285083950630806791923744708038105719105943470959637223653323013178187420402108512884346532692279241772098615026433240289097841427093693043778289261665725935956362122426036152478928798062514311658471008795656743772800031531434287755509125829305821773061062613703922722029028984806894094549920458820883575044532860780251734700733380972264248284763591007821930876589678262761547389370033585917385857131038851470253139427459224116584747044952353743159836430785428367762254863178817619916399667837513361483989651843829557804824625376621532122257856681668795122537488829572427324861156526920705989332082882499527312124706026438046602722131801562403700874917218674961616411155961264056603735647261748778315988867053892273120440098877832976552782220446916143658671957516666988443851362326942154982974085588537118963292330005105902182871450384290362447108724761368775682924272932868508348304711934957970232822881096723709533279907498925201205200253398266175087043821000001643882894816877886742597313814975793049815841037599457893538741793681766992789309797236818481440626864336620919324637248879912211891677608207676091228087477234709727496566972529887840732270945496141217973897985939446476273220313002591537702448304972131269369203704823138335727616049291591760088688252156473072465005813716769807338648336051785481006984689411988034890782996546635897935112112611238357122131628519779634546877891945138862071870055233345243507232355097755294939492887266415306916110267714887254543859747463843683718973606531672251655547096111552786417101217592473755905962082058411677681485718120252511641978448156814075688381215997036293715186506848464300077382978465394882306627519315080245811602408096016020079701937580222849978144658830377959676881620649288389713164624131158320509300771040385998946825300799050727190035339588761885405071314845931073536600771439995694540242820615398363003892490021446557863026972051955954669250264133236987152927612417297101010433247334357760286163991134320466719875895556114977822818808857273062110835610581905022930280323431546423905573536105038841332590559782955831917121118657163958861668949594102172547641158611532714291549941330429379488473805352243941211054607862503009574995681654557022533026679537838660976398508970576644801125598441395857046811846512694845881450295625187175888674438799647139024334050612604382214859411300754240893678168262682453789126594567247732445357565789626525569172304820167830416301710260769491712746876272448692652793166581319632330367801871112063861985705983385230859187897121385807316131912642064164423154134524526641106629018357436653756434774991147645293907272739625899636265760243159592974364741562491519214567696909534979630987300067371727642337283773813142940772925581194573453850863524514487892676736458471869704493631506227189455992826048526235581397760898000676975135153556269798399231905005630409279624174099559715997146836630496736319794001008600533198193104133509679932230484983906117647182010459853529082291164546196182322084779801777548989406950749731484556598652830629460546813936005925435082325485695952830344144946747763839821515115516228720492005419676643040440329295032408887123148978727231411072107221254395695818807151309275002736321918544518266182190443873749399598570853388461239707000860234395146536765905588377463679862174028033783340780390556428563118457912980530850273982981730203066897602698481022635013789823212426659369735191507219657887655236525114918956714388267192712775154268701987331193500938583952828887907917515163507426545913232940922074876779599648329247719389733725470886455813817220257283128791167027798537080215220947325600084446929247166766866013693108979422211983173375808961082756539177414126508335066694179786627326708334538636029494575788189862535595679267593205079078446036077305684630601916276246972963723289994225799026892364232652034364057608554217816880456611272831141984365967760332139425803753467532723625861996874545657111793450689810730451031443477562779947164781243955323308923004637357477951634939660414488693317118433133842071459068784496291486624755840004648989204567001164783249751028173607723689090961550825020476730435434237179852570018168066240052517324900999975717943884349183935378088327129190231765471951336249857007844491678976910864027414457448401543960526423537405909703712453193185361525258898941487340983343726383101423675810073721971748634998054251981639550635234366465305606340858304554515403144996943335772532315006571169814255686882736913814687131559266682224272657587702166514862063367030068060086155780670779066704187028117712199284810077464407615231466545603061940771046874966354212252998201506958753607243716374610868309057836262227806513996638227187274340926337973905041887369917724056458483287543322958776474638776597172146122330795711223425039859604555947687990211182752451586110948838876325818704740130664276924357195904747048338112787203997500856677937107921032880958109932102544282441620087998755138111961444212060473794592895432298116630574259668678261692076816247812500056664519570666848636637099360262497721502152607175468652087088382969940480480386034494884482644241227376587220350187000334914097407078234782053568423177342858717991509066103431433183803948035203074668111838644911834286893657988105530013384740413385472817460626825052576235803542043927617472669507715769220631659062070663663549855881015414170164952678820386704931099352398427494528936739827470647088565967860581475745515076869976184048753585355961300663242947103888303963241025487574791254297773831130435523907864474889034283901307625180693556792722753525514303733271815211755929204006760963655914895767637204723841446284085211565825454531403787444785776937280746271063478477489661085531693185332758947686339705810249835916964829961916429560814081960008766315531534785884319149315317475150260882818839388285789372622672741992832931492009289952357536674444156138042760247692823652951551035896863703448282022036288811472164845627047394025916432380263548883390449313299931330629039921549482729326573046468403302121006709404783435327674347052977799267420189807490427179755605963343909151880441390251992434151267124646228114174745525587867739016930680315621975568747741474677464978989173281644145722549485077913265350783405098539594666400527015325105862294448828768987631291644095006051205556207030047479608227520935277383749421714211399352589716243728322030183052545320747607066405919625208195013651674191520440279537380911278084789809069603080353586115861665347843422361726676621786593070031075011659113531457557178616339237221461413223658156127986344983490873211473736718767780659073603681291517214162301061844550137492168413737910462475346318290620449793214651889902056579243001865697553255158489749336379508496056845032028916105143281336465954919879265597065904917753572144077912031609972962628033065889330442511468801333956788723366831478373879671085669635119199014567170309199812581938145290088409092185708476192627165979791698676255794120816091469360188612794803326266566494156583854587477281351676480036463152357865576215160557434633829619743260215954428362581150731307462982842517328967831430625818758362318206186905806119609743624891427050104329550125874327812302517916661540124091029445576906436633978709786451918034745163045708383259327739148567206086326398706828228105892070952857778320611178453767335417452974235878190796161211444936427589985857580007698438117197091174143016430448645673613864795292772212385273528257843322800973111995633804948423075426222268378749365303299459428772082397901551817686242909940736034177414184367629849842633536930479030110322765498292032605955777699491067713656615432984583675264990827322809230635087278784455813495951307962894667613587057198986529773576802857637787363435037342932227418482007759858921914698856021744658771983096526184344862446855000417464867400864983600731058191109829998199964927391676484667742480117255125102817895966961127851971091206487883056861634804906250463492941880665027814732674977776443363331369465010089860539242141423494705614442324207475945998664764379097189248896856949687323600485378555139159544952340839500356151591653061176066890507396335255626017858806358654556295935412805765724595535033483693611032761926496296707617137369729776267811661105750982788580621318779403312758948648604679814098319493816717664445168491996398398020683616217381016342668398376482491863693040895838701011606248543970654662564881716009295133926221796612973518507784214786423121937696147213996455630593319144255743982813454333708631446115228479385354639130839124006335130932682343129448811958697243506636985457099319932303391478455660242606978147055887021401755351975409706114854571041184617208240998698532889711695771950732428022666269557274706478606538913601552946441683736358059941418925596783614202472166675053366827148114834830589347526729064330288461436517449803182040863174875504449416400740307727679315534108746132426003825800180962673082348958502091075722315065696612637390209765005301818722286573467048409857451734651520241193306747611578229893613720347939383537482228970677394091086045122874231201075801390094328045872931712189850064998805051750556784554069300183334277779757236879407249963800079688264565763818337803947441997015078335761463339097886857301979355162574535820993706437312746845886294950441170803520861461565128904345420245120494654046713034252666923294410448143699399726634052405335415576891734161946335523222554095258317323894076880284218553988457172632534472578346878489219112415885362033329733352332231885959522309160826746042130382395752821599251024688444311711891416228155217680755524753820877025820863507046813968554810401531010763077674927305270205494133130264196112637564044077784814942412181263175979911910928505393881996716107821694438934965570570243112959071494688873443651645799808504361218724996839118780112646907269845101595565008791334812239972072650095059660671296607321884560107372772037913130441429499892408525678500989203356809823962258423175888483905695370731033177146891856919688182839888880966835678682362187170272652100600800716074935086133533560227844993594826715269366610079359876673509922648911389456403315478037659257643133616925130146748164319012201770625273910592573624411493724395643337024532426673688574806482042829676684383532933852534133108708100987727697852587800515254451982797055406122842487157210274190448169180607055115533541891695815616147536701036642578827302256952956833463876485547938527430205915153367082796036955569244519596301633769524092695644394811211700262812826045636167494562237872616319140703527878964353216971397877629124196298679231753582091605994623236146606171138907417041736039473786956467618601820738514045650559836504520992889272095771462739706586692636792805285675091540186076708094410643549077136023659669210039553020692743703434273533412737626694167300648492863267490256342660046832411183542387620937464647732978371807919453309862712580816580378646949310835265914913165897635043507071250864239904154774588818500499145167590916779723856505737231402963733739458004995925748476656732157626652515465162294294940551854446382718029367079879226130960512384742949188937481222634476727537183616972254923261138712429033875142061451899865349542978314085323150212170168204734029489528399630217432346199241140669385818901922244575556065079400302331829463578323709024828708979452019824019159366099424090165713636399194276374285354124879095365617090113521436636502683636592692083003947015458652907634448533460274534266174050530145087716925593081571032368380938301640138432350598471867383603982732217358391383465268579020891199320852257128052550419340989287946755613490169915273456518121755174010525665714138252833973119383727930734583199002952503606391996960142089008345615992918222077877270511482379554717993453120137819135600361510928985889621729498884832374359565812430865272461729313137435652425997140283151032136579222966640290283968581193548138696662227840540180393483639831246316938078447670460080314481372336166595310235144639206964719417109864443030114603788389127334781291822546916149436009719560713360361763975505315064990037641903973830286658961976124872384666068829891311097595248528310109159840324096543129894343872869730793864499068572396529448264564029264291383020073673137270417303736054911140564958617495606849119347688625539731365798686324643374210186162244046589597069587351989348687573674872659365339636862664444703119076897041018047968804411888467916064385925468192035598036370189558678479365813135777112364980301762261611603278963442719435874576736637831162576858256052971038709868160237689317411333346723535996125238447650788764181171059539806088098318679859546134637810904188644735126645919024696589702785073072299888309561958952462466449836136281601844935580638667309923379654525533121837988152803424776760480825778991457324705145821669915836280936137880495267681950506274998338826005901086462941893525126746107737225230772653975425518133656041109703163498607225387053836953277609783323299346375155810293879161326502375603279863725426890172313102587336447167214185379306908035918448416634983784005166301586221373473155536514141008288380394444781691492025499440100216690481211570048621365323188888843238912960269186973256811177731372303622242542744139864549546119706127067052080583194361664306669013479312321806744912597344289670987206406606427057276233668822869139637009745585549228037567682915241322175066676534905713317067881096760362422412902293416097655841261626338778003172176458868622342787841492228264528064700532855613998898676082953734462862288589129340864997912608294898112925432324786249377759315671554058152146562749306241724208834495756914752949071535097633340290948859297250656028946919819874545965230776976999547907077516737761104244251372823249551240047702082674193478230852740889068640439495942227631469028391378044350463828388593982851296449421487806983589979425594078610980073620339196367449598631668249917172975710575002177947770065802002677191541694836643508271112675292545561874825555140736046717284335317483548748492946781598260550431450430207106820826765978166211825260647097739836253915414114463231259369132211468211757037802053984540832525271458756007764319014447346423664772563427731608438836254378349610681672536868465051193325187036242500194788294356667824237512532853220616621104914476714523356399417386749220499859874946362759824511149489582244987558013020789072229978703846826746242271012752100232058002780628160630857602420912567525382641989284645746586248896233146034019490574936357056963302632147639329143287666089625294304551353139380824436464004387913675091864295213682601191958985971530955049245718478326413477917781336907507771220971189262595509301501812718080553560149447487709269610634238339454731928176535573256503374388153218272451060174086148120024441672666728845712999023476610072952768795528613593577411429441081064864030028644758684145886995692866064880050655709659749536988585960925917082008460673274500946962947091041570352721740516200657660305642078042778991440927680653829681316138563106097205750838796598450969136224555616958141035807950460864334887013823039900756211229816667771684280900109915920948237803545817484689733573859727072838937703028430629208442482570687583576338983965527732491029828920052100866005498181713484435221419977641478608452980778135829885897659652909141057944100648868763834205473677885668164137243645516782811040858866121456697282816260919669759724375736583059503878482378472645579810265409116931018880571382549343672329673110392885578537718305220484210685110742090866509575123188948056747548412019127000285367773848149808272972804370661075252927547159309757974330001607826169825848055827667495386623182169455548075248710609223736906452552709626238517907441052761248705501583237781870697025630726946812815505483214637771074585141295681564774226567534817718317099054802936292221622621932005193663642908280229348193762534259332894594415998912000686499257205595629661250796207376479380168137209100810220837347753348536563936802857528684133443843911102357379009951230749990156775224341208379869356944340874465957576486160777313457581849843016866929519442249361839113472134472132950913176571959592627694727328224118014846680008104208006671888104598723965426641729535913554608549202685452501965315859430936936056323446162986277453576586626958122327353124219012170910273032921779242772534170085674717766824481861303154371400101462047426916389268731690373122544972639569562463227428744437310424037479467192830853623160962168146224254468640380822045508427543078390304793845916781228015731409355450202773927785489709257193569671711312484790016244659256791107617687756468921137512792466239537778568811044034136885618996434770242326769225832420471874635104651441680938386425852708244504933835974257313208575383602921923099375814640267753066788696826468825451067279845163432887989246055481479997940521788035063841247900821569673627322574588068165094541893276437374187412949990665767791371766345322781824618653323925462836601092439252599948677169508639005256226926355873955348348875350620112917827675729020805051805741042480564973705861734958053672470006225249377219516897579940500855262627521922338287874111181823158911916080743895579464050845107132040615538630939943494007875403776490893183742172829572950402234149092409724748540331394119854809092358514991904238712264749740737723605108579531295637329311373244885393930517656144281802749167697642279908756553120247475394625094653311596740518426631696963855243828580358926368959577681216540504373980693305599947427985348757065020954215119433400042358870783271854092341048779546961651253904368934827927233819430620982625365684689787575220423374641005941789306577976090252918187547471025886634833011295194559132898864808236793958435906992485671930403019738536676998303109881905397086562237054673917176292313054951302789387574478770676323689932778760454170751240369260422933568077764065497319840154603379915880084637535062631160891414762312717853798664121370356077435845734920325637508904448230601487839841380687547917299530455257406434213086755532524873568863138284718407747358272483807115798904355335484608202062727437870614184744008546337872040685908117698611129498682722538820933973153700461633023295217142029043378519236843125173633208014387968058743009663865449425368543907234096920711942992510616385462978420369324994690459112488390833682419470716532302955610688706974276406599836340763381006583979127153678712444654751319750440128937856208131669739213577354381686400479419253853644776575337985403932433128670442600266412636382523110826642894609832968245541908989359179766345269048655197119850500334059028237960139801902910117962896518243952434772884922688815377649331046258296694588821551636939986659529429029024778124201981608651941240657626983919490219487233353971588749993294196029165155115705927880476682091315807228578809509431739378778210095447941306279603196932702541075438787153664223614141290610982416013278445483760564779039019179100840101865010143275386230057595110660694369943584064928438551022207077818889159203522568997993357919081540489946912339571337036025508255769603137158674009697908828678515627277993001282464440949162544184357224591295055108607120775065009435140409089383795826124739861764928816191863450860238318219869490980483880496745135740350446486881729899842583980304908704910913808314685341694061301882448437452967879331223993137883396985066750352719541267396206424117481694894156920016451866208744425921935246834042195753605657042387477510020833111955622592766774991855996050241485616337576024070539560862860345123661589389755795892511490714982827489005859541782797388446417127966309371085604755189624905379199854572789817564621580858672396123432985446895380656312507652417754586205392136809808074813240538595058403579034507489986131733903439873273471394211424712823870276747941805931988930131130672716665812159018930627705854429316949651444727311397380930112369026569170206608720244633499691907291579142572233994114691195869212357889571159152604350546707989081291435630853911929096245928872704712035091407205669256962464727513376827885428482413421211935231287791699865780748028676164002129905012660277925837493855163465009633787536188498050686793055042119228946378159114294686886736104438244513180171507641614951462010932845672195573537596113519903932956217089272234126581503814991315939405816986884123117380004326028040192725076068531638838328291264642518830742455946950518866935937259720553736286065662344590258983244638321741290926916543775533367484905717024993201936704304778954536267070460925553188787346715841559087055110176182841145652562417080507906786384608467582541694869830310970469110575521902520390837757114760590651959599919211181132803265111633230303223741815834922414643712884645793831034603493645769472360919925028492696814799127417537460936975145798886516116425020641874299155932552426508452041989086960264902715036874512370480133656893599452216911537471984108077981734148712280684608597133150750125365485489609215478630117047596513479896507941676163086896425428438789892213433470370279329689034520411987642242684496580729475747027081606727634623510483801926616515026638456654799082130656317426208677273144915589710167030324207470807737576511374177305913749044867838722408731272364589078141589470778180059895510784318127115752540302172077985185927872192615477558210794781655083005315545482642554690884652882359226379069480740220126588485549114373483197216058333836819618012645341040516424658485641486725232681762397240635662145879443130112660590658894570742325083648648338603642154829344989151645710685979850206525735175241183535372291879363189218819369720248312645054550735727357125491373835695841820404883680436257055464513563271546020367970960551794718485861221891467584899554911920056530005874606970318674853605054492278477657622578422512191624475050948496982568328476521605401541165415064692228257242975165089072575698831284781751114796978646868650340590019392714614033613165327152925736216761002104147204581863760558261639956138547378658034253860031959501951516705806374803480217208690049413220905679985355999406980650392339719091762665427824084815634582138805227293885871130638198597427320846358231142609727702597087054658872839995893856564066652946150424516892225092553568713159815902259777886261923365033567899878816871266255617466094826894497611332795552915482561932228260888561110390010814087710992597131070663595507721103782389078398984584062221278301868846538150755589767296132222096977998801396471886857159167008165018382144360937410305236896693655691117484889574039742218267450565851619190114644442505863683255859619322828122654661851413496049821630665602946720325539735423666386321302335442412165330140046591412283487760735976973639685831760621943553834522793795122983936825919589030195150024800674702853835429919690085394009075519046448216347762173377710094486263144255307566983961817972943266088498930915029644419464601390659168656464351923566172075525952079228142847719125903605493296440581105958959509691021274682123019003036805371555477815533194069487843134831999849439224846749170251008687411873455206484857684126037708809313247571727113917856408585817742648366558665191975713371138453938766268290739251298828352826250353955512676868318497505215354497167176467970809308866106307360710745719565431495377810181436919935736936783001698044098119692314207758690666786537402677785706730001333587909077185505273209906114746887680317753854492409368802706660570667793155144951049998534373022053536055986396830849111735603224781634888245699883963188578234445425528561463790475756641371199140002033890543943149616902751438131726592333305881435222180482038199627513788526839205672537929512583362824154961581130390591513856357922511036896996646919170032628537600694828413388939338322806673513344372959452739843560967018943438838139307732262328440652379711420606081200947794706723976515868986610415521321999355245357218029635504559527531989432486459543922530464754491823682719554635029714630043380261269440064643942387089550651195467813177464111370512872987588754876193477134234216786029520011734165698667961610322951157293521167251011078658944273791619004675231140232144515861681207759787228616913721505559410869418454634967525151007955214669825554167022979782450970412490705497578075801700730069346361138594975248506537214428969242998233530784079800945521250227910332153540310667657495860939064479884005678080813701286693882554245385867810276063558059499199441384723066892802690408848566892294229305801826019615669192194961380555546833099591483054389557090715625612017548194527261863421824028336923697689677446450830260026761048493135028638767582697009562751169012610943542675977620843189580206712459212187882138713031684910205404571057121204938060748627188448979278459713083227430701015481773788879989314245029048210884741729928665159036679165509490898188574933333406540251727774509352493556499161568393378155820442397600832832661912918070233347868752624310528357420932030394054267692941147138374227725698563677023156530440997591096383178721311541200265549145192195650842028859451859940736467656632581375412052077710858065038620996809055141376754720709630607470613098659925391610980940471482420449297313779280569915755048672002722687782008320387806307352965156696928280645055385612079492258514554324543190536906685794754835150016922612311957941661580743415962284598160183365482425914695713708759395798323181612814951212539606505519948400302539505384420284552009666097102093238069586363487895631613194144499592875974307171140523722087547493740225992873652405596932879740521373183576691997770795517204604415359889008813172123177540132510721997194019435347316807638611189319961238345056748523630848373280427389800949633065119550888497945329028151174617926642541985419546177787981049588791256027343142441960444862676342208442445154580233954124364994137514931379833948393833455978930879377308185672310823041722257711325141404226459300786959928851269981915121776164320882157370289972874504489990273086631673640767637792173546252782207621043545722569730070192067300266578445056376341280403786863140851200929020289575104428203677311523456601829993685607979368165748584045073080041540302125701456932379120690254936943768455047042924541372136112737586274339825103774131011108268853346239242912189954901186095393542020122008256358235661683814015727344121619104201361725389416937374561156530794526762093662373182392897102747638337698519536705651704828259725816320026934240451964425664788497022620928732070100827210703590630573447715479597078007400809527363769316673272224926623793101776153152590251512382252977844652851589763902838037872469068373796227184622508258609326290644525485800496457745530284973911289961677150016630281914089579186790117605658492810900508216440951917699632710938346731128067590151351958681041974873483504736985638874651946824627935064910244419320409361942111696220971282566268505228193961431510965996385130360197920199384167564738109763582264544528900980071092083563418232572949204443545835869744829145045859997067705007044617084166281664491548504785561889637255061140847236727915138150692520784237843958444019105711982031028249317623993025970848474980266430783707832711621204899409421737571921044151736967373169143055489415714968524768451056073737370020824097868485400336287200940966079302893342641446544063465334085361303469553059151642496487551557703361249115463978964440558983528256513795176793077059871037796434700501870950864154441885067448221941894900191007040265238461840318544655566559406004772797750298421195107483395064973959298397021891829008166623258083607230956911103718257210970185424106732877571017723842764444592004972603143938147332909325916888876672259717803175322008804090893580014109339870276228083429539210632083187349998575676585724327237848653965366886373185080640855269993852486484551599334714964965627320317943647507625706713144703423773248201903673623350208685587807194982104492113390822185067137834497134131681828295300975834218016082733085961660678943049664215494517671352954093320501156993158900119298940451718342955346443954879337573159811347923607793611010190191133491767580896960009266538424235001952846648605008388623982755810285743805025263239024424670605338108438746107972432593100113016164214887274101277884579454862518207420479487463075261000529065725639177879937421712130122620589500089132252990685624129761081344185903579488508363471425767211734859064472508533836275514542242489305071709060901146578107416198212086808782384361579462308549306402665839438160533612825902739074330191238428955444093082651670450019959432290224117783473113852293368714025197154713639508591102779186605538000147394811077638947670668262227047585736785982074595840134597130729931961731929579806333023034497881737476174780230147335899092121004487210111968253318506948423551556935207075365065117826831989855899887992036424204758694606084194861293024116187672475763535331892368262410645086996936473743618507917262232877964176982703378531938617204062090702247465006820408977568046865159691197665818421700348332678647169998619909936070423188582272154523303105584201035630026646453653145803312611289163029823490627131616252398004856748690015002421626266195035816408622920020474132403783251306861530826340377291061035892226107755082730160296364795360651112364668983274953846347838851939139882905128830453591915257984303005401880876644997471610505237551649870938487137611959284941675028020409034456517587484415969916875328783376136380832475009446519703254701295713620142493854893973977111252179475602340553646308265698771406058397823562463536732515422853236713426915749708236017445289108014443980854771500653020900547860466696970268952259623356493029151164502158839522296808259321670451547408682097373481546945582549900271267653021290536330250635893606792250826483583486211689704940173803708018867608852425792995036064748142592149503787259153101096846932518107199373479664682286900356417257711447342447204592191206772789303639640622378363042426049745033464103743391236184774151657096822227817381263221274532500186431663856470336654229508412303269584995598446038776272448614236439139972104888723289400483612786929280850928785733378572534966407574815267540804938768882080456019764737488220079679915152488679589956574105139293557649235708862618183144413709219728420613489008102135195851044153746898763246652936278721249625075893624885408328152415379690301450717260046254984646688600598788158616694543909294900954030600290042121321552902960197451715825418774836541986234983181538197228740852741352295456961617827130645648364143636963065529552314756989816432972567338012414495038981982620290032203165991357008046864971114691492137798271250242627935228344252522824370868452480663981907602581190895551435687970355514938910451588013571292573037538465521014566395982705120320731015742096484010508832431253846569566455750133900764675698075673519769977896591073968499785485969238588726745845975588027426300379382146434849586433684859390924401152056737769979029434250188876791791393440856066100443683375245554395890975768835833920444222657121395425802225543789949519756104977086367959068302083713712715591185227116889683331907753824975847347217965135837455114718511741633144335573502613733818441467124276154920497013535780273492954440391556989944639967530113338972006834718612445250806862944504721299461050053220013321990449773740675739663755984331991425009844551883042737552376931151072841302988404771753172596957853591816694431029137987208089979266994031773377782756418583409036860862891195984311503544387863872754247903705444091072662500098901234355211856696802115094760342795609666624537626397710426784071139156941059043260587125502005341202212665786465158304248314975281976019267895343483728262133114697059490690827566705754294690504611309690396874333088363578522367622691125620589663993957538986603220038354449577813208476361490191804413773120390382677523603433886323681507276021552126074808769672531886542046700221026470859140371360912604239750285873151604998450707476325685700498752519217664091928478943192685175386577479022365920310062247781019515264094734221602001115013894567868769837620173214583146027901360951260196877627562878831669676848996416276393699033659333556514690439455034984135995693544579282772046162811241392758910560510284396652113834440032423048548213219987814905900115497430562683005665617665632233828375440094342436935851164627860688640360028059140495669824744917738025873280615952744974459375147027709135928714428247795999406704435541655843766245821186866185707115391076583478690483657711002939799957204532662649981985533500128691593497451539955879523163101367789418617876001610594140286298110485235144092313299039497548282523587179153635738157226725845257648700716268629756675319449889993604456031160187417640063381200932902768381976305497569576880053003816963856502694676697333399572879663247032610727019599299197737178142986214320088088843046051200533067829685048227600267498116928783079489630734315863087343992094437733634589092375887904523420836588573807725045933170918756529843486079239712951200645970831990356627088696300357665680984390884855934170768658728877421709775176500980102647747226897917607190985717568652000986746844334351668655630748015372405522767926617857922495317890632439532359233178019737888030811833037168563712370977347590647485206674632468751950074097473408864191538616703890888304980373590896610463471904639958547772983680922224391407991457015700985715533230759384867610485091552619207359076740100552267473640693770102875727154652687064150585534582523267049246918885775911481638788314727961852316000042879897813246164825948516721871525169816554667760255826847261252264473369251763700507554065199347008664630461467691255647523184822012371249319118681658446060726922921492194277935483989668269795591280478939471252180212316355215784306886972596797909771270009771335438641578812539796631122835350801300309435984853013690087664428520145793695564945232920437754418622463683254828489714305418964733132357731287394904159060621243449335941056172330622446045891052507656701226799593522305935492804774827661982709495056818769157756577325407690289840489221409097301190063864529917599150331162719474295901167619538379934588567492231591811669433148506781004006179698411342889986583714459652906661923637246516922569780983202710482607387113928204022650874417246187769145549838360148677235086546550974679185785579570220840388559633615340087481478063925519857338910020069353642033705967555432022349265875898964691230207818878505810731392531179745589734726021554492397033470400660164654084665648572879520487184807648326935368793280687509151855931256698692711709712697585545982379191035969052978476995823742144664739183813571460511537860055730440287743643499268338932458095103437993553600093309842960367016695173445192276232636854456010273426692467717851019518359135886857615810540043845015179470262585455691882832433585990404951212195991260290403410481887413253293846840517333619587616990805113387625939426688232632554018501155107165219093004568350768922672017824376790163109934414592406681121950044004622498173455679762643762796479188851849411362843369790985409447403381469493818110900344598833624856962170215319874052145711575368014844237239419167851629081944446955647647599582173498032530717158831101662729305067160484252851947599434993409069755620287616107947663744730641290176292786224025302751319681650538175561098389230531469161134369117977762232135971053851552148841824292012404243832154347930632514691823100567131272498382690246874965974094653637146748256885382779321605978598698538198045156424022356544809747350217409831098772120714897643944726432170967646867054109859974196720088224072458031442750877862222655803584678833143213863940748864905922345832329124353044900870370196650693302151530617901410286904553887310995253002643195070960520187561452703084820935200424487046846040651348149660730007513921531228148546658669491341256084842697119320025591075170680890016140928480101828134880646160657903839439320672116872104307878556004085862341518385846548018080849021615085943193057392805457711981344620137229996357532831167779630830286055294729412560042048079920127791471237184274815150397439367499442260052997736784069119007965004527493600651858953066220115469054218960246566323233414803573758019993420226216300699776356934294865419715536788007693365981533580244480873957101384972425466424109228997561769343291813828288494572005184157311443576167882565759874509215641430111832829615529432636584252712759383192097890792096489575793735350705526905984720117948408250289449187475039216664403265384804524668257675321813600593239597955962623326289357589955489881733373573414387766053727039905691818402105181439094027027258519834487631583708636385410639777111008185681830367844580418434093578252701402277838709829360562560217873958983255859101858606326529141982149794622395714597152932240011659848362075751981403946671601217342794936433663861405666897018769449117831564739837601504889652307483186072981864271879440012499235516966045897181636174594313990589169364281626317058731518419015360305082003397075359115201533865131656180877161633116295563024399068012088745440272773322592755241393886668430038232481997360018715257829487893187500869180658627967661319165531754831895456862310321162758408024221130518710558904866280111172632807387168455934668695210153022642699519033767435182003393841080172006490515577525203495643618268098710386552915396720827725099894758560121154969187472275168849724941045684704335415253515575881378020538836905315433133271194448176097404925860709609296977370596250868949101968522486670722452134059374546158562199118449736114993378545790774824433158511950605607566029597798122868031690481273534058348225135990519459989908357078428393336207512705722883280257391729211734106283575916648179250481969055300472889474256762529147171447117566972293605543486482902342817607840161086846951134590428100096053848064639144342285637521852876171678995694385877609186885641553719769986130266034300997324606285289913534361595573483572978004917073083380945870577031303022861188362923702830174397672082724710274765063972596906582836805375345206993092606014277550104064953519606011456604431601899053783915675184417748084643154888783922207918343600345092066264618402733570236967345047553908807952882266766588941768150402546875437714309185460554168481204794561477025340491109217785789225048707724521788473381800276922854190285511739127530939175990863413881640496828077130289573588950456682236253306081410649716779106197767308642310675944026449093287672966307207812363141489418448412217003194679256336743149175017821334961329999937532305556302256654901474358518522327859764440434414806988634691254886068382336047575278885101523123898557990669876743233717592124739093459543187175930839126117310220011524822447153926861404148182960268664447160372579330769323439441508463717409164261735360581816470205924476864044464516958818344911496036476888510811287409320075740055715033343264527180580441809913172744545871410302042323338030815112308276537655640435680653257888249778707134910799530920433653913778148300858054472020983938474875932492006737283855653822271330194688608842508923929881412615058632411448478353144635397385547884802157296254859590475528754025831011133853707218844287414530835041175590897402470619981336917148151706663423918487037734909874651411508966337681467872951652289629256863113592721833917718291487214090584155507338623741951055058151406298194914185384100677882550938854052776806257038620520937305965475527036716773336007132951012131554491982427961198265734311555218785961016284389450464614151312584202290928820614508788167074340421204213125039418936619015319999084331086334121207778924378586789198510996818895451946792823114644811765136100941922056555895644434205115655141220913671869593308391451403341912154297379149606420390174935511186727641496431054040111178806318301420979384225827787237606724526982399063692840811179329018805190962797699942220042247367973295626732550825884381650288747237606944856269497042009665020080916052589865354636239708240237726173817714681933081097712785763735213462064828424599828752702590942759387670467449413980395735090854021274823909976811388408985091171135562527945932836067246884459434764098766573234258565385031548988863857902396887109672706030859382915820067951449760493422505275390073634744004730667317369403284090010253496275263588927845258122433619367873182243039612086881356378239928680461637572889905362656840700998049562239355343006084154659891177680437313412602576327412987038906172501887672884565625311839911138061986303908444532687547045982064985399614704058581936363946059851342965974410089860195652864979486324790646685528527398713104871474487590045862971265313261125933526763654809095679729523000286283544016717584449852668427148937812217609368270294844964671964679375951085175516260574311016936860033062034925543326239606238911837712725458239791501401208765370624948467481113983369008873852447363112560199819526440546553568846798141734496132165298713217447193365122293004159670487768771309698923572674251260024045088629163150817223638803393711660658111575028120769094664797181917932818306571120233248059964723854851603843382685422643028509625169669124932354040306899644929512014056547048953382497169336788876128573745598082080357989891484640647033181779168401291260543004162530993034855416160683990635906357470916258476984295251806089306308862208403314421081511812904766155931023628331320483153177109860264702050341517483588581344045587457199633909309923246592865033869453703709523207667664576353290143170410566993012072050730402033385520322903528543524902129929701731778038268742763495402535566006920872610048881681816398736361595171499706978270228874716347737521333790042972747002592123017320665712208538319251310236249859368087342567584627275785778472948127185311162067036390720582796761030825207410756345405766361445353670766012154609390709029887988524704949364487452690670613491321638044595814345435047358081698233467783330789379265121755440596749128157682712539043811822640593878207940692125573846030278418709075588947051794776672211293079143557377080720821902418999883506592466857270355034452157672456023011140009971125619462187369632058318080237522687181406853395522153889767032540641503282962093378090591558616824391155823856648133385015552970491629948596061119115571152561832809112725447831235372760038135519258755595649337469651815527879788920738425468758447523979287988622266892038957962076715136255574574428051064309661541697977537325156459114626673183062822149751087826653527467960931708653945891994735020664611606757830241115189998748672310675242516645477884645666080288163650251475465374377587390296700805663446396836047228999326466475444138996761994600816568985216594261977606095084159516874141768779625910043308484121076032877256053730567256429714092922063470122794604504610860705619566093915664558301835846644012387059153787228219287292215721061694380358484791779657973812946317117859218366674811438523419300913623461144183552194384671470279054505311872600058138779228699512688450408487332165102313379835457566895522766699941164214640515924946680384030991013077488516256051910849521732392458238908025928566880197334932757987909793641351084857547225823090011000519140520198117745152449784998263611638076484931168781158262990793106676800526384079851413945118944126662243578560732868290611350732358930652319344809946189173357666521681502077836149160908414762454149583756390307601958932925882685843578902273338433818263236565524064144354984223609244108630500828067744901785516582191482943772789498006038163845359131464237153819179598557319688792626641870210726676765820977794162873171649107966585154992922944593722886676216345079590874214827005106471711653986653235675759013437728519766874587319688532719674662707761441611554132608452221930258358109352407564179009144840691964008453653756156706344253991400243166807827658020675717768935052620296857243344966535703820924792484082189838957776304899804690938905612433594760259882415070881744502471274607515994668319141946235711498841043506333556221159122436191916712677071851062861601297083855529877343412656184342074775947831158691597822266750448532350090022177066074432310145438836003281945367339577425482113361188022735540061094503808888417476875976688578029375204343372054310605979027384712558876449460403946493160032332315383552038877728698855106072895075343571013131818478787469195003398830669490990883966045819791276778020440030767795983264714907292403236818664238781180761335999192424456617035031770423807257754342885502948747253194963924059813560552225262137569088821804893932626630906475488461232025529432904570237865366108122920320476329269771912374464126781343861354760885047024077414991718879982964841393218240891052294138892705515484720637811181379432334797012697803717933494122813895429174058295563492370490840282761752024551168822338292792968494985977792326157881804067186825957842506463879673566122742005314179772659500592342040502703483702091275358894737140435997172513463193539446379742878011364997641376756448109787175432155052244088729346471638304919565211626242284128870467336459667383918791879554347718105532657998675401705295078607136002064262036168793283379027206414486208132442798169273738216782600780916103767262306989944277068498662109800252080817397800996556650160275583481512265960311993234227101112257810865032661601296589285448948558394118939943512497655437160685834331277102904993025509831421757162599869906844005469309511503010087037572041770557626012152782007320315872257402875650424997644530496934947372033094995610508977441496311299929319531912781943046637144530755813599169705027839083851735105118946309735751971419007246306066825191936592039217545180730431327365507095498781579423764057600136543844597891037252184181528548475492631518930694356517140096386728677725256876582408683463754036884954966375398468914449406925324299502086904353232534130772008933548599767509796307001444252360150256077303831059347848550184619604886412882486337814127270194520766115467708081415583667555016052988825500846827855778812253126763714812509589386748298844915378040553360828446126573739324355752100110441251767974629362330823040265307697545958187468814985169524236946718646873583434860752561595669770631938070264347677691584123984522086201860799430453484164267972474642246291748599486460081944827028755258521990048708025088307233266215735953341649793743090247236072403761194228398063413918569731084969919025506067810459965100146909717438907606732747251443967524317674324029882680498943970758569167148928822459176723906303413260979851726426126783517033838969179525869845339871153291885682441307595366722477253042620981342441992108880709741083946254331469483794787248363113833737838889983463197370320118127505735729052912212710913458299462034090477027982557049816649576129476879765442128479891229227670509492692758399602695655238141032790521674843242023452619572590456415464316716158344482345406280466268485709046274168949017452671072090274174736208738984302922135924098633399979985307507061701223100427477508506334363891674900705383073242275294203439601352139578377241833833300394944530452885923213989315245650387025756559780724721061232945920496401523629370155031777404286176785487316609742278203147840499204683230000996821731757991727324327300801939808907922735503709909198783113113850539006119191778142667020284468618103177770317539534072227038095190796606650233456311817718169758018261390351386811558743463480416477482784960710506220289226397994817743529141032843668412183375272682132280572836180251502378673185022058164921283966943875619495709571020074737405572066878755496404398122314196972097038135190662337794920877861178234013294801015326391204796291610274879208218781120092469925772014525415835271351413955494113997574005316714012087700004315867210345603977010419285584946233663915960809425771143536643725686456301578548935652211620743594088880680671046842580298763029159374141975507177823133691382748734404187978532740602896118757981765412464281463026222556438401204633783659033084364043761664305070627068438509711406013951364076226425888734852695176071956682423685214041327917124679994150083609912878627786749083638835439805539378514475569858792411959294112888694098426345262212373161340824524571747196097671158012950083242475705429781952327223644047506808664658532929893956710645969062334464974286429285773296316109268880411313562000968351942623643756091288797764195194255851987981473744857282163924882040883761324453085488148103327899261036148070192762769525208246245011531150991293058737890677983353427077045152305943016454323402593151563708381742861942837364072023748597366420413734265055055997073332601062371359947279361754293196900203098411586712882284613517421454984307981847733503014100282458773275469108199225991166053455138830594994107094334445567258373662403100822271102787117082546617570685766099855891104260434448987247081477566208595850560645144225257494943005643768385789543545757854759793200612558822924455143194886267426362436269334578468990952515395229855361078760456093830950880488057406361924229614969775184268169870421312511119020350647040983438377656046587707016262868068523881688598429388480394287350100605144005059378421535459576505071264661002935621218102780528479569199910048762904246845811939341222328333013199971595021529999273224077001926206803724589671014009368989175101194259944776783964995169483523750828668056807755940313496399463943356023729335958922628585663166392641075954248903256842316980781714040538176903400805207864903545659521059939992407807364709996898256647443680949561828547982434010792593994920453283965457830075836291666223914516919617899965050731832346284555196290515089891829205115607102115495487177220363766909534471978416930250067651819350172276552549009204755123326622840263177733178013863511156276471022806221743466172561161801631669456884730578858113284204507363839484816790787419427489037926839372686708716475006111214761741493651025171381619100621121634805593159080504313547054409258757796735597549932754429038702539627760640338125830913795177024302340702856097694841958207799451399001355570293665688590672513991395733466678824039055986005212234849237878868921698044690844180694676173568431296828155425376223958073592138341984731536235262207516665726198204680121911341050052447963630471815581439001511734575561245885061074010190070138100379421530044146130646768955693843847204329401846483834514183170019085178034687098089102063087370570227060034499674006518025256286507351306263313740570145537793247689501511725352227288135296623722210149821190671911001604954859546904135119200584625099718063629310545354343369550261879190015216816895760816581091383181881837711584470836886324937540393010588220110250999508275224639165934348939991405755700583065200298534322507521552955710226188523302128796208976061209791783112030875351657541328786172629986383320204962385201530145064524848260293509985763920043984158397950040939259123740763824441616074345472997716118697891242713428550166075194282505469452748548266714989555831176307565560462702271112617410191866705105992207086519706359674469623579972619095500663207591513334056763732019042625457953902989061706102813273061864025026093637756429891741540908878173538389699448321954499262852924434672449820934237094393405286478760901078162630052880286794390198210805983932795304175380787789939056938481639867174122870524806962301945929728064088594807901106953235170203972055488065002994384042143330484782974713609334158907473128904385726029553161423353998811125904282082822199872065544239971186551296588928890273933014923031887033670028440242117383720301353498917672473407957397419566100870457185040145123803938378649986577780370578477319744057226286754806011108018541843899129892046752410401894830920865195935595222995472410602491384187117383129745476807798868672561167964829260795036575284604342847813333518809477792670402017095790460007398170674883154213209154552251545215985656586501342726728869279640330968765636708938872950500212847242430633189530430411817141639666625250398261007150599330366381710153078316794226455159639114476495137160393851702872433400160809428086706247627110705003907462827639285707174734528382205939977375904287743840336972864768620730065222529946239722538694522469664900808402859093768949037134250321624017405242140854591883771782400024277627150662621975791458725272936126568138333984938143145209716676067105212061301181724147220232179314311292783514693897547677605902949377856941868904102579687871828744121110451188015912171125975349857537926596360055619457869433688139070858802433635316374360467826534821606108830566298742849535352985729364204252861172987414113332209991398845204305655915626116836217191789588762277518515433694827528610187094698874492499036105588033237723373011716005593655191205625092480260584255921071254326988950407066405309599735009907581536184904034596173039484644428063828091944078566772637785409997869886643871105924147148441712497735232611068903992332212038866664886589225769764435149836648353114853793799191007198999817011015879107917924565435592378135995216228405515643561247834436254569852509625663691065602979606933954725490797870738655245992220024526562502255062956963122130183228855727165797573704466571272449848834474041955666118062033277262449072406659747206753970600466830723438535543364778726228143900314241093746868248079222838834090069657972481152454644463541481148012532744511343556304769702934476997062329095501965660661284814859095579035812428462717651794991622266878112961415338141902112960240495869006257159654207007045392998113977390386757224870999422068793351986947429614942403098176120411646710881146376327555684809540477182268237481010883867995467229722753097274777893210620785459219974432291560465499805664097691824958575108068017448411767656875974534670945463927918164386405990933823554383710261487059569110710466596481222172855774201134708412955816374946618033651678017093580250154609152103515334164325502191800809314195946334895719555976485482917479920408229374228683650559739427856051105647132044194682887811720063031052668460882909609930283658199053451420743020247375516328459593657181780851338058582926562487271305414059057500067910749081051848619567051317136944376109156411350185405267607859616479198648728580395141726603573482339820934550302776495926684959210641416853055341790773172020063906971372839083551664778269811733608406321333243169696381327396716079332129581237813914181256686933390756207074322608321632599389359448924596014685282448030271180504980533123432950495622163188103543113308057072102541919612225173938321167628932565808977442563048791729834701921068682095061200847337767339195936721954351260869736215770444219676719195359323318410444336715753989194907962531885725050186966010968602061714493191754474035101485204336445920566044153889208391855236528088153201985022852792333457482884756391258544048009137492202284667180442624262536792453831788343075791946976328414984031537106763593236377854113333401504915687640293678809414885408330213663663212926979936236825097898357824439245442987716757610570698314311538089371982105399202725773827019239152836119562451216531600905949317961302333815448215367043596833683655940252937539872469495557614657620296496084860731909233781438987772481813384696410401945517981217511180953366151187652361156327578905583745025794072097119409730598404601322718551493485464835182796424979619588455415256656628901597559285797951348143791780612278446522423255727507535085223714019031913791308155712232180539854916667038173021101371785557712687503658316064925740269694282037052428440930170456401612124438918175976669350338391338189867380368918930831782986379030761986313363826076687802680884907815149186773579771005847979669532089049533809345270786900915027203647507422676052918417302652372483125448569983773980353237754785636499562397206832484918182817645879561910986965904745912121184205358032242424766180253008486729739811761012628281380260500346091501525955683752405691460325476766648652049685987627162007007519872513669918218239411197276671984313697855457747008313503299754580164163051345330545004832565288622902632153051745701717093073112509924934284854962239098018214441139337720132721666865897162622050944001397985944105558212989799278754110439838902037947147431984916113370814873056859973997167382710056677744400808494216175082287744202892717333467401414593628535024104697666785226754742490750856314501335352934187118783811216565139642803928830429505076882983026459037370411096495652245859424605573402876736738447718681187276608277051624432626330488927661137683478853222152679041111921422010002551678183544477168501155822523232135278610083736210062250085823131390972182639967601932128027513259837353495966070340994634698158994622493433720738953855073241575689771293762415709795446505213702419219790383557268408179498643948058099656938561966769085679344624510160213949417048631876588294080663208004277335840918407845120940992777700455591730324435657335621768809440043152851526504322495553920582045759391062159155328524044476718258420018306633754422770675423038271369789303575510764256684512603965514229546975162175025768333459814211267879800102284353796559200943454303251641268017444212961437528373698721555170643743318496616204843204885992578271919420329174974815535213991720488405020553177736834338478633080251872107335895906947412897693051212244867167757895500369393368671318862394244328341931213151600363659482834123848506273223108121337206573627360884470522829885268487551207913837574976899155779145929206471473101779133504316696848906539484934348448232468149168833660929222541960842192745644274247621994792709392583614701095268559127879244926293251858200838829236427136875612749798066462415641147573735630739273461657523220267148378258364936738619837847871898501327797473849315155077546619538684303433354314813814144040871982426138557242942298507660542115866402277555565416735050006589171046507777152580529736019125797499099167870293702570330913800706528515605871929445257465022746179709796448086739820905419006165446134532354309991535938058404755658026340618228719058917363860374559517588385848291308622906103911742763822275249163117742282740665602858141778047265706484700902766130957848937979014187818440159831816637287736833514736491137552645369332384461694629312140488873443597824322202859469905782891582570614067358894462486930581652715554731310511586251841661324214592703633340056375010402292088225465790693421783400504353239955872249748781577844255351909006408483332614717624860444000155215464340734064349443231357645056273948592903644688666987348036063877036230814628863011942714395615979709243708042208200573829931345872492703515133420312037304852990402852908051233064263508125859972296410411094099213751201693758224147958869994762560557273261521765384584148108804228684015633173516912741412744371481137647534305068096617348141706851980375037517767796303589828517753484032953364393413420329947251818935261300240741441921179681794680907438040221084907965201646891965064839126590469250163625515827767623429330964640099775167813877885892552334053567163000158100088781772978871728739797335420107193482186394760278222597238040606278426501021960651025124532430023785883478678893206963658448594866878988841469884696737610130230041513037712923553531528847482483232725752758214983726628724643466115557587177639198857235698822064789346640057474214432862928756759601066530043677549603622421139565904031139747620637507538447883150085319018470051811092648335468101176449807273641805557753957979934457505398815524756438993562509523663123024570629949952827000742930817372876005242400863470100200651337320405061364110650087107430334106138694047078625513493178161123321764352992319981399777758149272912215397270731216377852622397543309588520687388735940387145288626645011674590172102107524904254635092077311169356144350970715639793564236917973440031218529767734410157451456336749620898793077080775574469589787879952101396087465435183452029366029017488989683201993567488835440415965888215630986085773835940089067792930610923344163524376484169968846611482848776468594925383565656332857788527843996194650806370343080275009648237100072599456558314801069621198129880942351605278387570046585878969846691106758315640730726919442328880053997243212794384890504551011519572134806645986808175378499734888071025351846971208194897833734947594422297727960389166571360253652933239846678764207597703526656247365836745356899310091233174347278339166484358173221440959139417410967849401119997137748463376219754322575863745156568894908231932461536661648675502264781407927261363127898761526581580391412023462359686387632869111358307981214533251291887985662029782065585171480024374340719188295530987053190409850907881093018552622640474419010090694130479621223418798120116019221738357790861722927047749787673414832786326700674896813811084961126130765514979170882602978213886172984858259841199030783542537833669771451783061917871198641022262618533264143422172556373678874827946327027673718629208499912631950629420326757892843122429916872349639007390435106342911540022974128706027330456454264472494349615834051398272444279357673326575381532167347585944674982857152140710731562799009645721437955621361093425635314685185349258576745213883609295152423666650574966465718142214173305831684258081271356830543063828121940471520928540029722597964425826274484018870827297188710756708489390281742254345479123746378863839100706987437709174818171370246932929994001218058411493425073296436025752497172623636968802764372264888696162238965538976581867912911945847308193801391633459021180088118336174292097339845674584764484565909653450366935989510723360698516507823923408853319055741842807992600238014505008894481876972953905653157874001945897243008199636081770525693911631279153600449512822488312770378687831767270925874470593953221428762664925167237395729870680735104001099415256629218118333502842849522915137246080185203868627659390319184746418034412006165096712235307676782426633233584403215725799892606169390226013094349318872055939091792554616730598199006331912310170388944117919464404413534813819197780788914529656874899025994060625801339386897420707969856262326684990525895536476657887292199926537634781708312328460960754843345053862441820830918071638275516894368811437739654555727031429426783342920504436743043324774101300913591557437060744650447999352347811277262337894971582969230433779362808680031890636407491188135475481889282009189536349495572126205504277296756755537681353507762847222088393235209970018908760722868934921988057752888609347339427945095598010511232059365088256492711550044193519292426136332378121445695676095689624300903029278821897055025625010340308567384835081781297641717730060551377898452707101312905947159655557168202720501270478742970471927837852988628385208940397673762875198818473952290239241943899419291820793498594563750808773663554483249665217812470495726557156899034752628920581968712939893778090320784745557099242763140525416874669592484004350184104120679553347928094519334614802835261803037547117217665051570485665553637803713667430657550918882008653473762502169612052618500449899405568881855526801934410732465220173611726117269478703361321201821375576734413612727436028504735542204270404593356008749116724224964590038787259376578449212580385749715688233336979697963058275978965468895295288583557540601676240810598249427272007647877254186960612933376151892382235197066473209429065662732345819685141640895600284414411239222608409702565793966956658987032804024647228556871616569848730527411800189234738162178928119115905871012312990035422764222225961230831366980199890608302668515337847195937618528887968749380579021152088074392111529731786175316260353319474533931804731501535145655361796596420212209908064268003029055299556275222639722509417701664537846225819229016787731387582321898307915663330053139143665914353643173005884070352077324147684274422072648356862095987263903397964308227659638684593616721606494788782902533141311318012052479550550459036441283319683555300215605570143674493652900933332710775186032135646428871877532072277471004401753579417233927124849953128161981043995193312620752114121259070502697116797287461320751312026283045837211849678311821048445585094571981821702572991070195559169781073262795204132002654750128394486385684015958507259219786873040004966799801383007435629320219722942386901247400359405079582768297068798173213173426140211883800224151677322769218758696419935879507376084071535136910964390442707578957666703736505232277845183739876982871528691955105637478711156625914051399781059028274102939680396221127273146717701469817670804150184605608847861217517119530818658534082031329230302443051436962495017971641949880840774677974299656779543892688730222274107520396610147048509933822379529374009729042036348089620244001404539372811385751982607621967151702928859179025926959339328437384248158453334223500477771558308221698885714979287925879687434536056153854213051845235299621180537879379250826324538892159972051356659157115829870535872424988627743403908206939581782054075991244631125161527487102418723343220100734856786371237532466969993002963544968048838920534393779906404416104064989009787004372472139576450050556676240817803564510318222006845982798204472457264456073267406499750977494127788540651782709576273121084472726736578201346263745682140269029332273192267449445709106804897118424369570466038211902462704279067392483867453311427461319873893422780193014048090688765667179272025134318607147471327351822174434584946411372080441787401369330796640321593960962965490406216050172251526723391419561673433166215148465194914938618740376146788381793942083976871669022391987935615498286887006783130345682274186953977426548301069636779188170561325771406287635132519193109088550378672254171280269520202308552716246734474970847919608951505330007066138856552230466362679993609193308316994203552038768495625675674320202473931796383337632216720257206431944569113118722344766108157131998512052170574026553690712169743513772043219465887831256888615089893718099619451266818690227342248780088677956513240781966936686203431008787962164107468081826912371082404359339011531244018694824722663415342030599995248747948764077825241825762645297384220329140606986061194502057186888943888370201396806077570023001767800444356163335878922854277943379857912732131701641716009864643028267516254209072634471387982376220633680049394072348596326065118414726314727713096535239038029575207227031932957862624144335580277382745931309305570611849971554227892892301180311632103560334143388620197152169252907435631863447045392193298984540494188102957716653223647361554937582338890655696208902358155659910599433936030596258775507418565376966043683837700148543904749981772275761751826883222183895867998606050563650964095396474163537260823808925133690330777757183389552344579217885686657230686339629036090679285232093017785809435758413747131090092471431844396791166682543210870224822805055992107025708915408375806140950148836843743344046432402914441135884868304992010721728179133200618589664044117345298687193736263242942565502328865356256588055659872277780203748938208653817370637011448921654629318126831459453831804189471006596127061955324743502035994738257782033142829616693741248737734395598861590838098009619601654404193175965586932247725147524183364876480575024056058272777544444708275809314227674255586739879551130391996916723523578559188497910101550651046717986774869425871667295893402266492285226312130114476697772974245991947052154240943335230710160526984791072149358290711312229912297671079843857431346882864604582240460991092566395772801483540601652724125231151553201544708900464262928237510207271460569298878365399928908052923027334219912815895229270410093980782828440897522490008007339333150736475824470522979945059984519363239806851438459981727546833342221023439768398600531902831718131397319747782441186604179754597362836403456692291066572518942808989848366796900697993752058736889668661856258957845082383904553198892525764142052677546462076061092625171621404299026153084152838323370391582276357595379505021597197171055488286165558332179247359636379423502191973031199620084702508345396765677134395075199409256157393397544869976053686319424868931134213546587325618529836313752571896064700970772772109139106252764802826496825973212423686861272685654126397266532423749510356471208936920054450451741859357516778924478373880586673541200675992765336356138939629824570637231781859528194636096405389503775879186245665497719067918409685656773080601896844279255017672503783040469109048300712259005344118706967680818167120094165364332035470776318648748901948344921264298859985821470864379704627178736760361114306547546930218523549891525212240642106557671022568185898033198900962345851676094768478148413481723409847305545416499927893554371672593821881711003009733645261234356830009765882415410864576406229878585906934323694719184868395247033220054791310703228700892118282884162224473646868567216928279389638784105484996254422511028425553847336764185544222722191336602898551824063340078147546772142423364993199389770000709053024536325856129105837802321082053090424402145260115320792605132173121082710662900864888549780428757597091168999400916946250751982425221726874152512354522714805566417325964621496857399539371115781948944741579213240212814238832217751279555867446638267892750749021502935388743450686011559894513780617797375266714118021222398690817882519486528085870620104852338098209874332132011166782561707675350373011992883794996132033017594666390186735278491582834976561244183498350280080011969268813909391151796551184388322724799881742154181342324883335658658466778278950181443054225554718362932376062362797454127502295054400262869464966603161236616871838043934134007836179100275897054840374841070672014074985952682782528259192241044150560129721777961387137019559281295439622762377139643344384158056070594221012560130448489488083068104930428544517829519292944848403963147776001996734901924763731402835500483415240428413356822647521503119956106697234458894168423016675904747882298175277789315404287321729160131309527893226670689957256194197303202656952165477960838739373553868734440837962054272196925055481082460394116918236600322374161141868926610550265711052621968931653554241116829366697364711300210836135713727190141318852154911162041865478731365674065069109099694929910409544967973511373164862469704890881055931105702546745267648805968327568897696613201694966106388101090298234960071408192436890219408120014348732839135884878265726747404219999093554728936472878267983939775876661907912676889539355939107959477815500534894505682974080640440046700780197535273434306339512004852150967866180635225201975192964141800538174572752425450623570747340577488534489005603686300851827854138018041129997570805769670112405982917515331697806435633532581231949970727871986723337664358986434845590983364125837624550361467581910671670146359146212931713607778248021632187556919568752022733687610611203027242701547210772084461871656329158814405583154014549285186852970359706597496646462207922035099615133525250032598984618752433651220325059153903979164865078002231570710216852502122347119041610779286248417028124842323199976447784022401595381307616924549717018637116188273779120602023222445370725902392610653158596222431459530914804325965966655143979586513809077183610575503446218093214032430325959595977543238930188231487707335586021050151197831710925977520798742811445460365765331547124900768295592888025376148991638988189632412779036951596655726028104573337344520880676945205001631133219752066101639971551752232194934476229321632502476064958260197820572202959023926508613652764944397076557377761886012926756052362974893308597638548987476622259831114216367719201659628144805594427843365125126063166419896536957656658528971110080193203178944489134308920986345257374542737472823947532249070196714783694618605032346764966233420147475226731554687893334696152466147044166303376299780596000636419186316227637916824841483111576545549001258958869377842718336963186591448562920362828440872685255904530978683312858976479495534194572656261954874158221346690848947371335557131973932235983954587810018857581614015267588154042202232950872980072215618094803225227515165927013340222245731813288958014362934717184758518305156257424469966467832488797341888266418469389269647211566150974257909398488630971657361140792009701050546831148031749404265082318263599055016966319654020410627523823626052009720874098058426585180558226746578724059326939900610718918556018259216130009783292482582341164750067090186171292163260701181549779804466853229962071405341337445368695687732729290566500557337251071462939669125072840333778127725382221545773409418006695940061766197650013803125883392768671168328851262883327835149100223270796145665364838260058463312320766873102973177645154845581686759181535495547861027380270209788145769539353300679755185703524804393929971270825183979474183371214426966757547806271674701281052779470501311316466896534446846235285169606150103093081571464175559887326019538194165717356126457995233588014225589310245028302452934642334233101609205863670764040066090172571878447101899191344508335953995411793310003885891007055120357569978216944151745894873470180437258977510014109346323109859699653641224662086156715435119271599381281677222906115146918641419356354199309757546326743397145363354690333407953148567719582660730819364220593755962730201960177549905585408314086031979028842407482205899817879494127205024100365010427786385092244160017994056300381785556930778725389040139179897947318049449287111568539663102726159700125588828113139268102706254002923898162305983199764408366079758043179714188814806320025857270014781275945866102379409281162042624538435051429587479274996369379392763996547693549502524920093858471183641743771434434096330368056281035218015131035346738927475384152905048933622840308043802965142294835955247524586206930938646475853934243840163807879618568558238925054900634949786244262759192129045523499569465097401402516602788958758942985698259582089498575314327787153064486308448836378565709275324652670866643527355296286660437507865902679757352937988556857081605777078509956400326982621493019159597056066446881203976951099241969859130707332309158560036703326995428784642503461163259089675699015627743449430165667299556310838978103224438945679831650433118761005074012548468512614735937864013534040965844410727068670458104906864380427584145125126475081780707789588181240000505900840336239999233357271498377070789895044453639051659348848464866415356043817031448868494900356297109016988081697263799632945161387366455878139750704092896032808083097486957264662979645335670689962118691838629630252913451709995029952388032327215697047458539666012227302427349296956467670842635985783964825073955802501475773682319920404913140668563112766319748094627709681411777727622985988625043971388871007110303379400356632249403531488430863262363192630135603038410777167813018666734765121064186206972062695915951525099347054173293221287567674253390079011637364231974166607926920241619002330884567144737530228931708816780478446614050884494629718278803551702063054727408115798471054846569265621006999282247136435116841364776426200298914969018106587107612443275868330361624770821038640825087875212625995774147607213260141357551687625341144196180747756333084938620053156745233486597759572409812863602239256353359539974205459252209992444434679656322314121070738414058476286149697564745289819768512597100583239182398602308577391050206320442927973342586857588538474484210510068860794231266322280143229678733910719462060138738404376851369636785592210542371701891981170104873515094052826844043195456266529448036414514012325768425387532625656282826250197159127101049948835235454408042781361731658947482530230115169749501368006159081831091649060975874181515277916300709193044121138751854252365444211678408456286840150382359920160561820358101310412931162102364358379220948984232003099081369372661292923600821865720606013005838762239104190384612677848067374166649058672474191036763879839701458135327434119481564004058680245421875912753429447171671879640507273155188521479660244512302933263051437130588096700376606163186719632403227073312288032691938944846085896562391229153761127798017607073292550298241937268362370561852433524190539684374248919720075483628214884150067746388561408473539085231220412343925929079457059116223381326093030286540369464952343249080216133205518919997861657603031696852640112344099348515082434375767603890292401373945424220795240062491064714896256492764326637816926837205815779053272417053817206755403199196722166961085312025287448052242752204673518127457415320031683966572950143263452921382962891888537987350349167141718472388431455768113933617995290620914252349354023328303565987406494084285242761686737603295953247720955228331027396360764605612260210809016515399754585224171850659517068248187938709433671358602409003109757304729754210694419872187387214975457420890525131751677972244845856171269331235991526258650111184586095776781076648363855665883587156073444436402505120124913870881318851120717668886110904780041883259024983780928116490319777125946397985165653900989842186195131029825839799196047876639713607143262474167385679800676839943900734995540990188589787314845202983455857258395829793415414425337495867061624093850553939135479462352141592742759363798980261831337853993830081800341791143053686286795678152666695774170743101059053181827571720013842421138094196312344855947620115253671608917674540691422065476181434413166907530775500440586230348788138778007920192611273809472838263005906172953352980033490268089376614049354411681544680144190640980663899951954274546743018107983008720385710225795239659413932156205717374930017222005824548128173512118326145289606225020921451696756862261342240953763769461816327881749423296021231700439523421695342703329272586805874584160443342566422566677663820270621238769942835421929102331565554411937647912672955356218518306060405463229343679221857323039603541729423447691002360873819423532827015066251387404399079461851586740392561416402064084318504909340382978139532168335128305548603766461150721757518962931022197894112675279740522517821322529236866306249125759306791908921059346336734777581605359277934366664068817930597685688034600971029846119384847536849078488629756489744423718693107751393942105647414809142524478871776782920205410839682360120433980863250423615703848007108440926749702996234469097346676327754827962124544328596758610110736963031430502441960082691338839130822496507563036023283657256313600999009452453241475626682134607912601342634690760010825919722105695486778334285791748054731776427593087276155923049830820518488380009919345822157195051096671559459657764148691617137553087425973665503116641998201327216471347639988214320736292655903259959977585653791587013845014793014603323776610217430467039978281891372385849867842360527339750361415540961818821976873019772026932267669693401046646510078617846277096507412755818037379732828318235940784582433730245032227838750844932366195081084087319025091903875410429409454487111321492115505795090666714523534068823925986514250700126483512999317456214127062001342613868638217664212167968872429517730416029350878651471431655600435464485471351994799756333093121636009129852830269573377568425128846104940971729259616983189295692458398363612649944301614688034901880980022780170476434780918011406826146484144332521144176063110261381555252066961990331203506713795787472769889552475964202553684348245901727633745483880930333925122509140915989969952026090476802231362171199143401569005537601971650925054010362583201155747657973435426629794334318895773332250636567999996488145045415121786097664686529457403026033703771307561235898222982604959428238431537967415890301959237877144716084374393446260974444713968711250500404905158715678435965939419337633914052264393530954118878182229793202415591263956358549302999194911852496060211168407349230806106173055352894646346621532542434082119685143599738542417909029412665968390352873486386285813640099814239489380738056284482405807141688920401654515731179927511280241332091207722431236910003046852534588669223166128653172011408711063462859030180790757718748228598690113826175130019701062485465815085999832544403049156348468280013456951264143249995862017397600404757767803442762137900620032014908512454576821380396928225287217508830395759857089914085165551551448903827687462012294920146093697211227180237998594665670156564733407602856046904217258167046473450596637378834794684321734029796884451953203071323640421061576857845106381062119247374161791708967742179598138310717189361487114372079113000162340299651005572784722866757127901613771420187075399829899534602676656920637142169373294539344995344303274076503255149994461106271205266584182942681118675380851744157897085552346042655665121195029227424699747569016213033708722934898477859351728047129519706064553848529824100161990583753265131951358945762345891782387844145080367601133092800598296717920016258508153100430015168924289630065349217552462617524853303581865796633917875969228617819303790866300944798639409799651309078572819344203607326567395655497555360757772000167789348895689812345405638734712522574163641254909253237488481155223935412447251087742398491162611507901878654648587606331093543918053264233503586990590276314232234464687730443404615532846052988589222125240515069561150971338820021957536778196759308871109317670525778237334230276146871486626243373374252956376964205007466703022811368049964931150093728394033050568362898410998505637259830966436229003264219893260965392701570228502580952342307602383970438431807933626137214266956262936307081552422941637958613087998781978766276178406251477925400559458370241545514909879528020381630949169353599624249227263172046093151883450495094198528440690236762024878212700283762093593860743810273165006215937097265570250616206001130897485919939659530229283817417223604086254531140707994563713742599197298155906493170612036394207031885346464357283077857966647878447013640415409121559467588930636325233452482574041462668770135267569878931754461924883153346354006620385708841055501666998042042878943179344794720183984164649705219707351743062158503148147537333884654754422252991650850019257442338988955305084400811547798338253713424500551562483940743929071389321052425778364944071023645494670991831012284625889124437721695435510319034073470346901457379900577057766538316387158557070944912399831304924508718835546085168484675620052312562179469375236335668700574616102888335769429172702374389154103463503192876007549063764938198450976317194947135017678045070137837660427080411570995347700737482524377611852715598035571212156626056702780135962428323439072463293104864482194585661270310620503047421133980868125305067726972946610818696554506059442565930013260617730308994962316531675796160596938384345957070115777002819391713962080966814156409009415084477543760928003766577488998396378817397396347367435878483246922475313914609454422682364838872105384877511522018166231930264658258919291493401043903118631266426400746864604757664583078145828952942300134477705886227915190308912832295977758761983900402427816532580075108245818245539031339687668312578544410346608611954512273864271883835242068785140669212360212971247990138587341873408364746975400863038857225135369606259569939322803605538422399062529243686399729862258273583748225157500874388902035723958070517524991484635352510654201986925754623426539396329219575081600270557742336653125716548081786051817693603414752456563978526903093722797678826486915572970951558949037834689738528800070063964041630631129578068933819089770979324134090548372369431784394000341708349678183840288500540745745328814150479381673035726031898111601365268367016830212680412054851415211045515818126659436993957934977251738627409973287205573323409813805560460658872761572660268630191695433086994791649866136170279616856240048245872551529806650679697735436045638271901554232422989109416485052392891767720852708859332170742232995481413613288439773371859245610820613053435985824204552475862684622553472328811943916529912301623254962318296550027331470990781703603606738382191874374142316433087121550785257988660371156677128380747813834879170302040888636957608839268379320295295109515985430023646738653368014556427306913716100207042991761169782622269514786165725615428264542979511779593586797993354193475935877921229796718112063545544704556762490838190227246770870259930696014537985364796900329077193475181327915496985196936560756934717326646859818114282595858511630989387559207236749533538144872843271368568821813893871287433129339676704129737834074377689012870497650664700320923272316410661482920537973259016997166508338292008115428039439319115190405580727201724641369537104743890441163633095181366010111340992646792401900968520762663763289852653006707786205582811988165123391954547054122387493371495654706231459663619125667480728302547599139086288466529900995717573619663854370668017606487814794303727015581502258838073171579265444697717723559450706449694125365955933021324696801698790335680683681157953842521430085149288111591627173587616866137156201360433843697893464240841281557442540992907587865702976253104732550663220474961856423615214778258788504204483508944167540120688356441307047305254713791769581206563315482088375323640678325842742886746264628772577352373139046211987353147407574722405816848803811276069338521551609934639466079327031711427504673717131694373440167283783336005050720151824082099755671761049103322162748110378278681801683640371047770022872567468709143265968260056295881102422673072615386792915869305287149104896586864623120486130873057594853734997550667572548883274744346404365316050894732934070640866879100731753367474001263237531307618375202931968640375214509782919236398450950955302887681623193452399251713263679282411332879210728639039400390022761300009801293159964550924181513988071164231520611329501541978191914269803474863218001260669144207691004438979142904478765164154129668871638042578648493321791201938848794087085749921602417921445926056427266983007478980062316214697631752439349113244208815686975381483053785223469433968963448923129510156643169477167387728696114029827529585455811413044822110465368304000341720609919772526803031943346421479767917183472209169234394532418625420093859132444953098073555559423977441308840275052210682354178561059390894368215648067483976212343181984358392114704419062116823600556481488692639914367713792355214976043641666264633262091649461201154078013846475519705316753074194460185680402988955098400522751199685539844467271637047131241563784517039637554344814074790561806676290300132038955656326563056467190447997955445237681430507307159384109929143372675126427470985123190183865012530533180407074814450135786064271576186231873411541262637417673959010126640889995726279950464812828248798576910155743579482024820579702798661282156208990700559109429988835109057506832409300227309552974624459011186619738090090573401912677283888454712750817776942153177817662035903189922032936907481326263773090910708096252213898899626735234357261853574814166978935454058843178377268496926947526891842801526362253468482791326836674050521516146836945764794656394645522315178472280243626806510861932911247290379938172525288542341315387943012389366564455151890104479419752001513485087338466258710803427103411554003239434369185404832921330814065753955863331662473930460818383802749025157684128494496277893360995284690203411380289707944487156166355445485975582547528725576299089544168980904585451091100476520188708860877784204662493745154991086744142103249162973703115940552339543036221665583675082586245350447911922871317610213645963052697109807412619043864405244919143150004557345085686355575782335874139635716520594977618694918789015116070200255903588432861955230090979502802161085727846224161656402914775298652652642635926948246638670718412383713660466073942746154852016487049261193422446006721460774205444648443622733153551413461248793042761096718916076398797716104537325837061175971129810388478685662244674234444659049252889326193979567742567361009336143247514543584233246504344683502385527457767315199810123669632727898772285761064292099591061419709569521816641176297938784962133050993276021167629363869015493423346084755073679033911362286109029989305074826519534263345301907770777659973252228757001273745139669167952685375240464206394025840745801386593719229683469563307240466089650493674642362996471633310667676001999274324176248711705086899401042820249975533616580173968549663803532239654112968787566195152539967523422931032642876659649382781325587749661464852890670939641116354445770534978158391437304854261879627148437851172975078254803357151386875636236212148582983204557898877264676037803744346611477973854083614586785107458668646815585151954296900366643695775429451237179459305667730369190909448921448331055990761705937205685500949062797465233943831381363718953953228422846540993346810324889875345271980069783020886366788283848582015686584458049161984401196271235293170222548344701080906130359059210679579598726812240563421388162041236979249189160472002441112376694447149729684153605102294232526527154506042694856841985912001105762334597858695688686288231020857766600634638436422123444388033194472540385683781406494347631165752421699665726464506043740836908215346232225901458402445648776246503622588680596980501361184327558791652883202071393244241096370454928147647216807064528437624015606743772955476259145169763072545269711778289483408900516339694775347457343701714421121186812470876686485732979153134002177023040447111150559478039224001490400649003384743303334879541825808621629949668454749905118601442476788850217786452230600947767542401627619354849756704987986983696217398550465055338161743527402989107256093095419159538572046995668049820860196813976442217739288283994066754546763319894517816237122829948875847430522449967346991966513606344678598784594067904849442187822821584686132281299896511333441726899614788945839774701999645207400769824660230753414378634997924552460102004958152083949835990865417946568480832185230325460378889198397515290187636454912751215619789841372776683440049391640311501685547528450691206227830502006612558344499908232112966307192119518963333316978984901667100366222592204076807834847587402924049576571421506562591654172292431062686776850205778774638723617709552090813199015716359083164140968689634171376431834571764438181510378904670825020907976843028418238114272790092433631975882317331607976055106242373865649277647260427604983963287415000458614941761692279497627643741517190842385356868820989460335841686854763739702602104512610274248029088573788751797339470625601589743758207218330180765824308953357477135787718586822063769473381528317120036165028744962521110127609385556695387853248445793374042278737830597580793829633055114060787297128460456081879360067550816069433980115917239009827351531347807390045645826129964328247365696160048270824091106877155544865408799394661273280731216173962529750234703712672289570293473814897652573580686339880700618808752347822008964431113237419798110340835443862011285578463006028805262324472931349528987404935908103881153535331253142406636542759514373014750713996983950406811023585990637996670584526266219532152214244197528485603739376480300644673775378102801273972490315945702919416881837390008434186137753247851560519086878000496577736282600853806096757150398893701090578979747162199475083686302308592749053074612681069936435643326904718296183371684782979202992235113524015126655790078630134133685530638090335431059024597220084359664184808212070220610007602330231760385603648382290948329711799036861285709482089947898260153683814147488161842564344422893042610600280216855666472111927132365378601365972188777665194938964816352875665573361599933045792213308582021844036981314413948619970697425382024463136817852133708831916923970298945380785775086519219793266558115399292571013376819370983673167612882521255264929497394524647059489102438638576607595534112364885326578735753263479904798660929839535791341162849667231416639481584571408045369461273318680712095394252242000111562446006402273559932468372118292919665136829347199116085055155734112506012304774181521128592765555410641657605050584493054690984358743564440951379878710891540085691752669391910820681753702105971101074039916413316745429590288988467243672373529023975491446622521076005576021773723633385907212126323472734666430604298668679336978945191892391175311853190163855132245938234905741849402325682224489291091068565476197997919904543512729895936207188356652441604510014775015410585401320427636757485297717528260670427785330967812970448934563460256678673084668615356104200449480519310220622812461069076508905613460331749386489750058786637090899683139679685496126559556873560501986654430917451076040717451438299028881579623110879666496863699473270776539438002235015766299989649211247069693690843616046055035921685932405720509294730715450080747252203009508248107777487824902849960618517833042241192121334684481067522593309798337208946873245761287351347344718055138169018284564361576823050212141354851939388999780493844411179379265761291967965941165114638940296570740992818531513968081919408173455047214041593204272342363232883558191786977373765954265552752700550892997438398000657826411474746147751445155503870531816396969925976690810763918445472985023145427456172518068966599378621979027216054279483186778969625831557682697664499853149820369992551190252638748992067194807621993327687356778927719143554042771409513240154161438695982952403862686808583910854862675345680465723036797012487788724842924914616819672407593723353293996500615283437222849137543549107856604218270294476360524033919584272173928727886676386937064625422383792833112883359132869670995849771119834813821686611947101255977095433615767184252654801305470381890454942286715592978112651086717198871674488253763512634912876584152256917094819987169299137115390082769584537003564125010218208840127793043814671121831656032860418234132835615309483792886096405226224329893556108682701292946772469849509988068178645270058327548979840113017525992789977660758223437350192184245631851892035523187251626675008624690277421403035438741577938925066732007564223986053108673645724249926188389488719209097091726177797656654927217430902123242761620882234637466133956379136841266080355435305924430231297061567316893932454015755254961122509567460381187833610531652926077287899355114635832607902717903013143700587276740827284117600736451583350920675763659759101105367933478340580160424009966807671774707118100429719489553322155011375761709497146757932674271778917403491704313721145101710767073642907988518892780567955770449011171574709573348253507544590034970898045395537046696644712357253072191706013334678436657088560889681647467673039664028932643073230442547643943947996673735599689542767404934617945665131708052471354311504779706723527642731478865405132137629447532482155064979994935755191323274237116759623636936924417506770927769053858092780558690281041764154272184906297799917003185478517545126239192573816847275622367793128618468195896369535176648662556442882264444948668401244875321211925824743447672907547006706255949933393788664066215959828795022688328164434761701861139594330818696734231727240547754403714125314907734941217671407988436633046509320186163386479404849383684321838572287071003237531780505721637426430699520563761676235248035677770867442678689034158145575256820328206018550670113410616263906470439629947936529516713712076949986558725918115446544660043834566912000681075752044851072951604721036749212134405979571226052452636303772668980604052511973260453506507990291572030722396813770103851035924687158403402522393027362238638915889534374050711144352662221683251684605630478965755000361891580574740578808001664463255718863546962569148612507455409593401702452399188157515544587112812027595369665080018113661439814095638117867967260014406883638245250798207402579242290481861501261704999453313339949643294285522951802481714055728658474157879667178649267207283375743814133683972184175230256611217989451498330775400984727649504779541344663998971539819975955948839651646118165753501534359555154341322972761427530606962591284246009489075778294901862176675755798216954386159772722966206578504403315713319045114082882525959895295898629479865615352821554348816271272653154740880571211986779507070534316891850303236717327899032954965887970837283847976241719916998849832384857826505421913928457503983788797134607400974121109962750730666756842847020212953602754925645246448728096927443248136156220539923133996712383476502643235100501011546353063812653373817136469989297807013503765313919112719924398784959566135071261093927108777207142740287432898752384170530755890735208727308138398269085882323914829824197872039424891036014923973761645652132085303554907504216818764834219026829957419098874937831823145231426761160647763544209869118977850448815500581853146268692817557263819335685479126267666700833601051957993849730996272696786909598741230091153840484722651845940431739421464698780392895273369918052728409472433977230683456468430294250183165785843195491199847466809372824216064881413720813259576125192001314299136258315564000836413479055608024568490177764076140696386822070571809041347881516951770823541345289138495000098514410351664757843382415397021619194632542943033809036460705053554982711850766476734075783022931895066893951819818752197000406660707385869522457855841519824544193888511104064528577903024176362961667295158216709390692687413977949937744886727942728742886198841384620966163136734178287904880253161954469012941103513998961825604098262389812939378396291475883576898822540501180666973954404697437150422937857033077228031558115969589509313713745562581583116714079589347577863953631305263400752153642608572064875515193319618532616355287427089888759112827607723593176734720601118961458632761318688866673397071656190847459400227252543675736455646100712338393559576823504209930724278454477873822491911850475071023086608702517291325000571235630982797853694033435584893634402773466691280595753402991946941618374032961248188887077082890732123194324293414913098877155494498292454178745264389823247595992512139161902140989173016856932206011845482591645382063349451771335007900817838988319590469983041145943583320562984919841161853922564442829609945962427777480299743891990397786946155927330738771317835869351287019762521607006458054811679769526502267394510278228156085025985713672658437969575935141748212449538987071617781717564446429387107333137869168876617059791094643517121067780501187524700912479986297192265890721097413854234544582089795451797983804086081990580453247292653485145987781101234174962534431231947580212500409890633819286957392979293989532633733160070331206579353862045994165301751974949167446046271442440366154456988851272447277187493666055401089932173350395332408852977550307890767742206390945393827820544797716286359635336400005199864936874803509017137767734991723109272585462594200355369611167590333541847300566391189735941959730868164009809376600132038193548111246330089430262813296940898682045764867333338053654974929770906082734570471874839521390457005507500413230701751754061092037453781257459417636602877649685593746408830919890720426678198722686966029764952261007902445017564982307445069290192420831000282269051741338599342479548913616224103580770425061602529157993870646362460678329083960843304433048051816770519607860390896859349814616515751215982450845618335458164987988435947678697308373646003038373974484264080299381035073989395984950080570712985675449103656778369474095538628956246824617985521814529438097010248348278485726652387599863132513694715694104467472946379450779332799217487752395770215530309064187268448653082549364209317018520358147469322824904437496073478996728334275642015694124088621301127207296836496790687839883252233319830812599861646472947621651572873225152424156364380483923575881464428634605302626344114805248638881193061296428135282070166002596661214725710462964179535337752608069889767407753110670307961557132893788023361727770604367750765464264638403201463001597585749145488839095937796799832932940422976780846535875016009930913424812774049094390143688609976210586693154400336783562113484087676942000205997939714679166642390545706959170988709989456404256760863906052095150025431910856812277788790214799809011052178303597234797734900788705406963131581081224166653874672798155680053378336787677956926280756730709395971031671109025523399234030186729790799450073508381857412025200230370407999261509230645569913533798322919285834742329868837748625349646917556689456105025267708270510916258729957466166084016782800790539680135246512229551613943409493482731195132683203164771766203024410115140627392751831262123523223744124256030457301379439502672793257696552359067596612458904834324454051635348827367973750372202601962871949954075073597711116603664443072211709145956683741419740584176244536474986984414665302080355337031564156455343866193132310392155769375682543848662454955217937030731386030146572285763357023624142386221145081065533608724116354434000100551101332491402438751047521412554388402379897723633065413074736818157345047201821106486177905879999639953876659838129962031115844529853644269862450271876395472026310525406210694231627695197443319234501836738275119702080692185882165867313938072686721846748643939748776518257777596308916601265732198073522187878753821620438957123005699660279881698528044203868773969845499392998357690222297286845975346243113926650339654615810319378313647589361039501046407628885643626286077389103020290580117014802778975521083024978933630724089952564911108881257405620453414414393033061238783366129756645610164334898654383058863374424010408744283122575391629559313876419759390977175985460688534426744816771682018226266479097251518557044505448661787222006664611118293202342293087532612595030748811636074020565803836972668520261743373564645537892700999899003473628939928544374518444219636955463312067747486483310100600040352270592939001508918896956467007689019762484560853572993921589354297757168152361892804077957554518121252017721731837812117871152335857679475241217914733356932764295972077933673499154156333543191779806030201124861340232928493176919034766809000327841562321190379070151524088653777998605082270928397579415777542022592906563386229331178524936435433710349815197644945806618740131483140050270060973568211200789991716612280881956237359321494177086948137879168465245919512919220451277856106353282376973607908168744970314450927739140639329080407078189914307227753690506311888244651573241845327664580521734307642725867201585012961411668371875096787401298316700419797883582514448474551705354023981300321829036328533721133558729193226993037653877408186646172132481828794925701199082693069696258225556976994856757059999080090371316571585286020157512717529890457309046920309338036953184592651272179581767722104027140284146128635011480495596317131100342881696963011385890698301668141145520999139868229803958308285424936154080070653411943070286550252049946335989031938765729305078431357620973876272921478706139541651727411677118578899724644137692884012618368958448398434282277488171973998317264806291155862795894178410147983702331313124604232047110575793038227019253224988607645749031783164661794589465129471195704693472453098735815172949986821614626666208142905615513907459895018379776105184715411140650764480494852119268397802954386016430508172720813504924019401144015370436430184495431032521598897639663282271236433395829612108877888533488963070561829237448572526589172976592727735106149304333548758431414482688794883384262294446433602122601706596254810621323799830398723275896778024591206236829440800874100579385489283817351532031475242939568483401618950259748990205813497402712971114854238169648020719471135966715304841257892492653367823338928031151007723713942300776346958157167921817069083449451145628467074849901111676029105839348730000955155269643647210227674171003002746663546967543593750551912868104991449702418732345159998454692396231565256278882403806724165593094313294680979114301728487112694910891426601632780012647458053204580556592277046535870593854896625274030371839093696949322863679563931255704908441489727589348693139014903953829572610966580447318865639495171443385237973486377155403416670589622420433657914959248101545746229858068715486061124931958265072182110584551601036945056642702899987450164952407713228935463399560618706414212417183881959615497811243816594175668098926930263489745581536506339712619700478631252923118005834760539762905443675090013515425492931754018321013353522244298073196190565319275445489424799621061954690684651502188000264198588574852367232237917534897491180627877405189517666927765948084275012423755316923631779919175954189234896603326003971506016505277852327745202008674336743663603425613296546399374828030012887185465459013251955316381689385115826426789848202314608632483036434482592424883346760171479599866790416849478809100005334610372129348819645273739013961033001435957924666535756878949505542381399862455289246921258443517690093575979043930590553183101266227907119644806776386916000997824326562582454827375451822679979953448120902137359601400451627337806573988198643885967438302590745472398096651262324340454752757525442813919116557810813393298611249351963128598459420079122662669517220593122651645470865075126916381195442606397757013819819182261157542827271609738083182798448043019081082946256516452339177945835684521016050235238420599035820298390288464438346858367315602013164522569145734438986449376228313107684675598036206954799481513265369045722185682995020418003332320580361959842471233790199557642144645462732932165743095680205035243554136995708911163545142744791102691327316741673431100036644487202083979896272494116270650748306750376997485064822551200240835539450779606101728794053092112668277371121891947075016258652941357863911689854352839313278559413621224883249394756106524493327547725259034503012094439915332296214999890807892332166447297590729144702055264525294081103117939103176247706038115030412350549865782716312421927147287910476994499427055823160339665545844465634334740839079974207315519025478852071668192520215814221245134061204385276424647438379659513525219802701759097721572492326765443474023309049798004182409131733571593332725774027312007668372549061663879156703415595934939447329136053009805784121542961266648038125483639549462833709978214750692747856159589675771192433197082550501984354259391665322257166897322002818262110679314923855760272289243408055614156333190191614889147237397099266177495281171696839047805424334418299064340681623266176020347269901654147256066145050904863724354511184070315671976660342144075913350432081761954277932984695613364619875225810620772546683132517124146234915062259773557519122680049906974567946169470214182595189556602795157181749907809997508968232722999803435281694888618564809733040013847711152557973528687614175608800804205427351886881946745569012656545354525727791582609744260324355521877820354614053927824989717711553241345147953199443675938436073514084367288377488814719655770428885295599156580175748997398441839288161395472796763939669370255390711513494511405835834454715740611806048485383226015291281872383112824489361122844217991264925488554877047025823242881460256133302478910110305008681502580189606861939046594153454616443172630030585409357203270393012221070604349955084695431059052903784135611323255709894816874836783368891679860669396558402215858972006653125153845540299849585571376797206596064736765613623280362530539013422085286276707659235589603808459670238205441233994342450617347852542611381537489217747106061065089635083887805946817172811772993407979336094731485730236224742049861610811214680096523343609159549673880775782790827457666331895561731667407877601064891075667860862538130037208448605597671520725572940428630256214279648201706783123652924629471207475824239481882095008259476289881103685820983612539646408817339380151793797609500161959361135256691421551222168312438643546176697047177431679252686683680775586840689803473691496359689087901742553981440204523564566651164840783882850777742262168616778639322007342026889461072010258794847921172304072082578882572368508292059488077763194206124191650346138914837106641822368113912319324355300051899838490245381978951212729273127018578571252679519038684957725237549757138397509497993575097846191768339610813716791159398257356555453935115958463867597152947968207449153565312961627535392553988356258391102363235114853813497708203389050150753755925052325493477947414036815377395275931897905507020406193703165061031757619548849318466822679506612481538191581167058248510623180035709753076500687164171410231087623234828909058811600340682339987321288910933827573298970467258772209852195172200633196944528107678925471364074213306138799668362799686781900934253524855252449100200885418066139863265481914203999888846139882828006870835272126118874665913887554908570524260732262270084070011481700596314811207274525061623309908569314617403088360029532141924369540520969559872136995001827761350750413727756923737204255893578936055505881122574912257931983827965826511803710642745182187728092213714606321287927625830977465160077279230477149297327114049929678533225814847980356733825205313176482041280175795843337382223339816851211250492271793598111394675073758020821333353074989903279509575744837427189654105456201333683803258393101805288709758826704858818767715933150616673138841453641919030328173614498949472723201200955524674345351503280016019915964714670444248102580296729847442492978813029912528378142767628780766378077419177894590562188118539357756737853199547758537614799536393984633741842001732211110334934548498866165205517297285119065678074611194307585137388654790711888698604952960307872582231323321712629768509289761943621018105621728671587732683965088991431165159583022973183608068974224264919632859051427430201101054315246245910201133374428655258233629593610639935676023075263998338290516188469742729464462130100693664666538386731051392950414395286043117616909466939517508087823030567614633017825898786520738056588778233179931813321744608074965222489008934639200628014920316054108032935136666544912065835384895802444221742615319704629494034758798845828199693686479200022089601921452341463057912945102245510022494503871448979439433852814294736435899260223951809775416241364963972732493937940521824493675640814988101728822182182157829604044280146604486626792260508945552765333752999076105916747606099264105981913408612457618730786876574293701221590723733778032705303631607048964252646842275081183561857152977191063922736805441734546554032282838655926844280910031746839635927701074442972248757372134664795061258921958924410553264128297317827599393484034070921238386017405120249450990626551551220710141400954864710461363182120406627906910207816822871273890864792580931092238480959791424331040218150673819498826270817708321774092775423571952178661285674353092703133259014992444996628956031268468354946993806871350891198693858529045045627588142866264028200149056775877347297318418774080125136647556211429194982605625426166870969510811131667782995362003453325185645366817254614867784389957646598411762518440720781137056506401061736566412397313155362883940399666325073657728844614757346991356564208082429136425380357730261946819462103041611747941468006253707721625483754212806117082975488484015138142001171192745970669215863696782841565533835537565643454753966553458273139995369384584268810207299009917546313624668023137383231819534137914987026427022648031349475784553258069633921620925571432102456952351919345578237899739450591900778012581030970301746101923537400105418801300366777471691572856282129154311773761863627638233581428272556755816133693724991310725053806282303619515836777179692434980014840204687756576732806764435278708273090662987125858902732196241593008666118438836507020166900312752729800174540350244260932176723069954569896833294257409151969911695796847330939974191979227039153437796369120662998924206641539268059773594376792752314268840210969969345066649116975310635218806427367647088365129457346035102486772248366401172348199663102569987899532658602695394626330684843005018760175705883106703012885072763361995097097462271041824573611197721812960782026704156483387829102225217923748973538367606447426404761090468743517847870719131859933167787277216152646992003407427846294517889716141245355816053747620540751147061082656892493616350203178793789260706084983263287535771764440784470573492218890893653840442265142132081170536772248080326646393486320516596714929733945164718278771446192150638509626071409926394732401362256538606573307964922787163019734460540949254545618004225486554811897456179150310876172181670668935736531396219338111544046723643111174896663494633019749585704189154084464193332864899657265687018383534616847940522859682222431653813517885129473242471691942202833956022505777919661346573698808948058965008868896566376093666541515878335243814242756636814754046612679724386119428063467191427910794439486237514449948478706738822598453600387316639839952175825122657777280671215850613265976198265996381479680790392312939959386640868647885115309092168300011789962930862500895280290202626687357715762797857352658915833849056909182226686188666274931180213052305963339942752466634368546168944084868119625129546381882130861795278186081426238230222508537297385798444011434064396438771549066644620166542250561749680161584477603056144146881508986503657193436320054527727304040500825191975046438546149686413646687564786392674744582867428762925177349910128958347064835794172560272303714734917295486739355272797947506721178008370818936107229033111354081514926876998855497841150375382889409769416024329390934951691204095413804889016972946307644284802408695376643140096477958036435479829334448235813893540328096765073759121216569321209207881390458854536722308033826878325919511482049609641440597525411076581798920364223416637270033117732574803442478046026062105747077652262407102746368770751230975692459660373812647372069909139419198625987953288353742170149384011145893433975626424086598551460768563006854185620941347019251298729162836156586643373450371536117146658937549234565909167892584021820365936246028649487611501489883585714530312596981017802203930654849822830508585333377745724083148453310274406549383934661440315454403028853621404870568850220424901929442033693477025771484916286465870235378845373893841544701936304501820493493426599167274240607211379490647779196081140913200301700701268599227012673138913697628344129749667190382326005157915528678369861950470543735413509501002214155259572894661043485411742072953157463814289559709635127205485568847561457431166616545407821688896632104739680041766703257751344405266432876611996432806673655090055954768395267474029189626445264068815423526867072681291871220662384226326936759094514564367934272567009100020222694805628867387830417470909705569765561174321325131336957703388965829427431356208177519288659555194247678751322958799101112756351589027423293937943203857982475639473826563008321681037083034573749646073985603095124284273940145391291223439569470241548807439703596620311895183698279213952058809698999424621038717186004189041086198550509153711700919384334496297623765356460285275660395653300695352258787597857589470770144289700720554283222237766155271941570658492997514900304809293455028145455585567668049688996868086138751884814846620948355321329671432410293385735255945761741486316979145518145888448183398125424520022405314385016480156282923954108829392443906989490913168518615934313996982769953619583747706407245071262866717468730742334476149732009523462305225585575026363990828309373839620083549470553945821492367376855995282718014213957541285368745345219704000514170125798865771265544926581619326426563264138061235533741230988340647325199639066779090342399574986099295975525286912333307663777665177990047419653829482089297998487686836512838603844585664409375367658410463312214793238965445081895386306607281748901219377761414125558173748672046566286939306967221410365788221206651499773740515440848233964603855289240402650927394529454929350722612396057000373581271229262475676174397648272451509502163603699417441991618996115617454457170670756823075660202346201384323572069277198532215772864800832583699540268296687755931260409424914964922279610396602579566915017176799664542223175952529091875496400115241882890663229474139365536816388616096246607163789941150453119460360800791849894939140112373899816714441864413113243402804995782005519803149648516805815590563670600732693206014447982777383420555525470956245512003901023151403479741297259743442001771201747706224224907200421454074861616978038221976917259730376414537122881881238940287252426503549662054307792003740770717157896425786665967859754164959960824092906928569877999773368943482128542857009321304285567040190849637114667611011481880790612454334237157320845849469547229159124781833271310747980931770142516712902180319817661842468839289720617288144854106294720435334274690319219839003769066807033354815253959613808728213615362181983210601134709785440673406347045511228800244182005660067844988980081828898020189811376631585183721077666812396863579407498757034433628774374595434963715030080085867948431857156282839508897255495930221500775750892466211888050566639379198790436464483661944216097452395493974324030750462040651508426884834132793850489185180999315264695449224465721147707710898500437409724864485871613950864755248478409267421244879285178532488091151813514453047978081348495590642778454280129020607172147767672677056313611028237577195653790332185325050623802803837623086736002722301524559841685894489590049114370213258528483103540496230047785402035337055778742308488630662024524671629191621810271274222112419613019407563496245830022879466684271050002678642278269114729590407658094474471740802499774905018042424572847863817263662072775275349319341678462867845240606196078337068403308659735058717909491607468421082856870552452931383375695088868434979703347769218248157976920107121461853979077795939550612076767558469198751840375639170869266688061958723699755987762102300605045116208507351955499544791322407879827890192928091913341968666257109842990735779328701021338947237470314785512169118610173659558708673744626982868379499867186963680119527910951803335715534042818048316421689755370787266525002305645830046596360105146831509302977921089687156075213795640119661342280634736721198418570202637892407215836926188174921553936254992095472216939669859423830571470127685380381831257285563582147391974194396031889077344638996202959386042766787824351566375182809268215965382627273530167301884293955281452428439529272249433118728049306018350296220271800605182189193854055972417402780451996827743792394779062504749032606913739393576680671402635604755871967193053809899823330801312123468173396444843896302241527456273176546782696625423097218208503927170626521000013032092171904812622578525708231013988283092538491883770456820972436985622395158587379269360620930796956721045725230272943646909528141369037745343410723067732411649673007774798051484809137617797157783103064236743412132390645297860825795649486268992644668557065832287070409153951554035084245370963282854879842374726221535704532190038151749243552811536743354702542049450472561348952814565175008402982157300626454391929979145151538177057318521539974424947748719475006979695042637078024090145155188643053345843666591411748306902543335223827722894862922217798218731911796185066884570105905979629733679863019901524331357958635732604679472138184253738256833243342443451858898696857618186649865859255027876744726518784292575026308584061621503399893172480834602338309862183749294412577375918058621801973875127186839942396955411993680872161708925006456757638216853913198037433333875282163286699560836537665651203490090443303431739879411753220302747391038888018582202149413612742952615315425746803933500857482210052936108032574564247626359591232535049502425389699548510888401589945167159935631071590955465812453546119234354564624602672575067510801679430838166466880269586908831890413052122239813970577647764480426241977048617312621995341731705790986331964909980582557144045827926506520119657995934621251224843237679775214381579539198087304880163163900986048904077670590329276869552901758472182851267778696073971832505530785265001582353111110697563651814658748635965309266480737287115852931124660466876359313415182555927481417376019293343710548160895532308796833212489649579506664112512229675138168900417427460238148290267018597245468149045489889948184411002984565162377336628984606866070625079693479834487574955601674471925218098938115118653420572277306599323559629021722793060848691635933514935223443716273966750009480756324964719596112454671605482973469094259250882119452937309202553959161894992638190163932138642560567186682641634931928784744975320832125399271521248182674973311935285973232940362223889644182245540147312647910665459483602125506384820052020479718882353906953666778005844627218111707165198471484148408399504397147422797714957557287152973343040502577322545191399539269715641214235655830962875622028756359240000487721530750827640043541540376285747453243310484197150843155890025357164233814905955123116360788896206391358530106529334961473265947642686242179473404590553136021701719099889752576042431829081821677561803901023577565622574208650644015546043856952857409529898561240109126763206020722150699619051186633312755300909931593728893807865621400803315800713652341110962603415463471942542115475485629371154808105731253151388902690946335477467652820233122985089017462256082330808849878611037765397255123958789664745478151373063925449237878485528194335381538135995139595494758170711914617122761844642392211634585509235190432408340574744477313145183731166933744461796266059040868813179620868405749622392363891600826565854982775874607226104615771780000545141473751453320418612708753811067049434518181861976006487820567093963196243171172758430396363091415233039600307735321865447017240473709082567477783059148153324566960069086789412680504144608374379540996311737479362014541767515201405666067803232038624157245622240314390053674369398302338682483122124480094110494975489776096612765455296256624161381711169904128124927765629330447221608027753523375260178898123730164857665999077400797409848638220247727868043404880811432493002856242153973049924608958974344133974613619470940105177869338108664913750020184198778007406305239663275376095360262929068385364498434741135000404190934658689546372266705846215489723735815485194965472796212912420019248250487701805873581748810343740762772022016894350784172299991579923049953782191347077745254297902388743593039900259109732220697518398409984853545480915212814952310851241686400417747611000357984887662289370901520728788397364979867848491914358487175721856340333536083281773396605762154816933805352128304511812913705090456319605302867647829179153854692709875265444201495441298951529991238814809870722428015680864788113156701594136647776872880699673309140475152459306803014968019385158124282151088039168082537238592664570701067040944738853490608784968253698825348380602590862613637559394850688911912580568080604399726620733948160664525799696034374661587704227819653775550315014862092072467233392846696238910828926035198396072789191962796807876460889031636319344201329833785370329305291260749802310150301411851064646606343772330673057508756869161198984416281307683501285465272850258957228572727645064747055266566267706872783236041920754046264890510113235296246712886939890537764545516473689415122284183379809282411682716594215561714318036419201372801525467170372973394380661865023564518198026319435786639654078661388753008924173040633292454562254178073467078421032014799802914299574191025873200129954918779135998192392753086882431228292059490620065892582011114931014349707582317535690076662556552678694722252557107255975673201335734262587516181597716261151756926030238031341956665711853959588968022230172716281720422856873389457468325609522676893863548259442888562409789620844868712277265225999703890652055369618750067186163453603816498610362827726798634709721776516984450863556316141489060153142966656428675827137790490411365508877414777035404017475191614259941707079923910535455855842289041576448242030183207545205223891768435261316678001721598357953380087234419396202294470721318649246715672485019859370253342436485787614678418739669555400102370605133708241998409360872040201372955663307666181275881827242836704982448414866170021701879498804390781923701009722047050880256335855003405993765190466987063901054380511995311235705164946158294346143586781091523560617665429635906599520038530591541793821651574448098491547235527391749504301412225007759740313752403805923286537142336306114861094827998150036081950596681053230272863149914376979829294634272555426608481087567749259527274006292117337192912572722482214672665702114993862938815027881117968750964586302467681107555446019987303895859279592948574047085530147211333482465723108124243725769324024763089338733454488942641911667680361414146238012308424711408242487740450237618517468182756213449783361459449052016650193057089420294745115717846217265122635336649397054587723415097660755540708027359850578411025676837602427024436962342255706808454284817841870996872313061492046236320427092206567109804704126450018539718555360116517045291139468261573864782178367954730013221082063162602175910416233906473406821053281801909393082443388581001178941105103342879745490700828704561289755976635447242941507696027634201608781396626996663498564534967777156988794025766350095898015908631753347572127863927721701723901715633697187096104112968055222607818375785223791485855823451029336680862749330872407172567677576402982082682212957220168473718513385612783000079579658176211775586718267363135132192283892553222522564394830709710893391851817300750731243174411105079456474923401224294647310029766524672316913181712688559744140638644562775304423965666678107715028189037078051667637091097190334411808829107742051687923224289774197685518341738207546473052445294915365838710087101149676440579973408678065995767605082872955433357605760045874803635185904623651043154273493817699598863343283513953537517054475279926371585103280457206419709921305494860211979591526332578076889202236060354995357608010486146464261284765963937283203284461617058778375964594932397052904889651121303840271646347213900098686759510484395176962536298156853574491303853061678086557560925631409555914272510215361527110960050358212917624572738975907605038871117740353938513693265647951319258190055885014906519536478938676583310578181319537530254240390092051715565158106546298445099866777575954006796133797525460758777005748009918703039472957641159962398224292817350396705452460568706946962509790684561330345928329165872880654220452950198883918372050224113433567003450721790524070503906784492679927809989856098381148335424555800743862108773104667578599321742223748761292344491668511804748550748289414127315869550711529852933332291841715985455611092257319721049931663408829722946298016747228477846771965029804261333686756245159743704843457774444124291513469866987173430286776239989739492990097797094728544255803128811591932451078833893745681675174537591382381015109915441267478058339446226431220657549046734057201579726661943495255143415620448644026216140712445803269842123451461218820375162536253900429324963090651570271938121289368204741280203440304248257178953213195046112117421336480019654869118831287724184819026740250679963811590943552243490162753377564019158923953180082406092625481526474215451312171229759740264876234811305537971245155815307546959390574000142717261331837570989747876721448106133785098673496462308781575935504022788905506411279357112735579635874853161843888983233771563481610053288050919736174743378153418357726491866183211449421948757067226531607778001713708350040785568052967085933801519821147406990106767987281603657028342503965183725430887256222065160037345331431186186636010871215074770870362847510518844385638651437516557669366237918123571303380941341693709393823711589906176303529420930576572914098259053014025567821130739097882897366773450241593563425470015959462067526629388748473147417699625195900741474114383261432039766160881621633919637530145680654687837184621029544394434310745755887453675429188595391836295166628727704814022902671274237883369965187880271704857154649015902377736119057236563268642450783714991165001131821259763900444066115998690624753133854174341794896389497492674977790922289097514204680446169387733648884009381945648484611545004889032694531539740993821388672581549805973322858254538342370620957714182845703291556597405938188348252547244766571370241014812785472859880762003413897009204692962652663422622043454372256335422877417548700276637202648632021712074573359401610297911426154328232895879234552826890874509249485261600039624957333386161380930738809780381912782792005064342699759210352040885661298142468973849839053995797635784981354008396934805382988614371799070991317402894252535196079567907260484679303310904956675254425108136477627609907690748704917235795987986593185915107350345158682964458280095790843563365444672295265282583292731099407388852521547831081750881106773969259707999462657836641898577140944076534991866122071052900618935311830851656558216171544540994686874508345294061425644019851479288456777993291026512694647622523921844829069004631030891894005286366849648758801693386601535363673866138597493435969038203035978657180691273989796451183000085893118038191086859680766522079145264914264701211473512316122814864695244164762980229916782521875659921545163108682226255702211969794013872398417303870947747812455936598626005957299744134066348004485255017041796942481168517908456290211654488558232453851063232980912850008542721449110229028791101621187523380656082947039096257164452862229600984432052791132432539084006832461517502856574399254773501697978468381575675574794801195561994554569037502201357802467895202849995270734323402154697844617736364916977101497699828731088016900487950170518662731617079578342373958668058052286401489309867225443674108047935488336774381009419662541470849837423197742174279456177371307095428455261257291128180553807372767845460503606470670728164091811738075442579532992159140381518618528861766293598443168090608334486338465191355810440760151627655216806453166453869750801542863269659254634223298501969300315253049985706522895744028079864485466106645415514793938964353287290589970005794761013410721387412240180774549301312129698991113638337308432315639667474905572178578044185709539508406958402134875779966819092216339896425507203719235535893441972882689021638811104654763631465161129165928908588817480354396530265611594052816127429687211407965004698371581153342745111334066044609088089210768600079132385113409195723729509720795747274501681298905300605870161944983084607814910614107573538881241596358528460470264942732845104361953407447941635902647267196556566968500964495993653524017470971792730574973235041775909512355917980487537275156817437482277865219106015347730172617248209519536717666687510789168715668031848913261958746082843619772614596903110148256421360060397136564168150878438189015103870286591186487100733870838471255007322536557296158480201878171412931616796817789317565519785056002756484896334326706626303456948190734764641576546852344692688685226435459098458350903942193569539439238342665020097008642246699403534804659533293408441277652743077995044900159610195678027120805046552881456691198552064366849156211409148053859943837280937307789209951422207296444256839174314837588266027194216399569653715129844555182496255898145441793113282273728495812300726007392358003775709278178008438858034997115140114500816470764103906825725506203525490620427309445784996730444734577928779726291648951010715496971481610265285850804697302541443914577042477099379066291079324836513759591181568225198293484620069896232451915963746882353012571599080978715721921261439945031644536838695365013332742296925031121300867940793942984116761450524406210468739241835574334594401989846256432571539704405598114591217129447796986676237796376845305485407591479894923840256247856413422500695739748214742131757129666139386897366246357215395530536135855654435831544726580669562946957439605081127737292825061611988296682036297653382487926168670095857819713019443261177759155847290210858117067382695900008790662183733768298343016996330349278721989610668081429920894805843975743192784300024204976818968541972206629856294364857220947098241367780691431684003889650915395174058237495627913763823050112270878168396904442899042522094274305803335712022456097122921593505776762908898606011956160825577081424527235584041179633797953807227872465271150106356192405799595705116888298129008335508691001041560594452345627342815184750186427540900835377181859683185788839142057445006158508732898765141234804835066580803591490640287106496915296822720756697158220283747382823977636460999178380595442144884401677374117178524305082540868055047279974115075134075351112256331514576379670437859801421366499288954110747468520584578374315438657991081399961831602686374355736018266185045324851143375478841430292092725073212922662188523846869881943066150862613387064278092926026327177618078858412787833161259013197418974376524376669364064252296273228150417623617924115205004478092700111179378625694642986817232143116931107995308482120734808664840016807374853298191987820562116802464227086076639961823975336979327722151157728299781225036103076594082118626082427301700351576809782586374781528157911851101708819151875492624212698286062052367473722157225941791205246429017873008896555245772354480267584597748277322167950594655506574316333203703924377290457945842367491284386611617292769997745845022072927450991953366825351455140537131129102023301545326694073446349626173314070007326072968512542382941590228523816478219113876775243152180260006188628505137817318891505915332433246805464218127591668453691530504327964508103255066957015765538689702218065209080596163648900998006087270742594367845073837556028317936848748821509768524794997899399070628982510825343055047880846564928218709023383704873694804340958985076448585742236485782367507847774443614901499743903193415186432277503238788909772571484887601941927241702460746320724392541578458602185174383810242306970765691875005642013903748079856962986660850707651930210725552113272142503396530461224326233101201768484570135203401391438822286034869986955801712476125429199726640918562947724277813284643914459768050939777469974044285232001268651121715211123007446669894330119888210333335291879385484337667967133099395496381781587902066955891283490567973715104312453761069092416647713807554581637549179826201053119823580697513411381435436274442861463197990050490199771203582851982700194311435480258882113279440287379278966742846246470637292431325634967863146138987018782181214283909510066273772750540934056274025920252016004819844602620232256782727019423389410146961663992652273887922789385297506777206080976388275598532624027380990225603609566531703557661532812049508285963428390853859148078884537030690747287152633077076182278684109386560659289262878323572898121515173024096058705869071401601347051349513689117166853991274815548061776699888869374614879299796014269075858801823928321626063082660035120894850921359888113552328299424063682444371602457730077004126477312519599216871996159210813673142844714257489190570200725030431846803221324970774862790430658650143626166692617901822895725474293720237072979040725915065061273831617302403287380858129657193774282316807973363763734906864545649534984765376020174325158140986479905543719692268498541349270599008384209314553149725731460126414459072452936087957653858287458693157365477831463618347390727149243878113601276167751341486286755795916117545364989030828870468807143770111604205309647311751091108957923497102553471082355133497701077234090153206256500192288979469575730245752390897777351748559399984456685257537714701795702554417556863958609900535517466568469570607926723679279827700274667439229535106133932481829014408832206012148268440830574767973112520712891369488675462024438169948580256505561611924341200715189014179213337783853748607436056515099366293747035864879919129959259397281751513201812792061437920033252473667179336749321451133440239946435884674063468320147797190380982270435542156773217844733290244809922087883356025779020009249352002839104887593291922736575796012242726014867883277716590816176756597867858976866372329052011943216201717362057694528293389664353229930071441083921515455505921845327127608617321204951686140981067015444214232034664102923096284403783829644280820005027641169020175643237333734264340405140411958779948545189687897702841578036644889091232985072721547836782539698548976043249743635211400154722997652220146566151437462365151023124977028213512459638243862144379347347317248294277345555199708546097144100139309174689423646194442310174612136276654516459848567250022289967241826387555902536203809069264117468572763120741207749168192127385892372207885965368611522284775275769808810633164323317759800056785259627338591100987532839767068207888697398800971850862873801658067551978831914952917790583649988440341485301162366719315216642334811136238436434175926597443630564712970830243983275780307357844968639504609949429462490463058038874238289562960409722549353508771029362156465544899495436292755455394614736279844125783061575570995959446376168735571327939445185481641030821629123680348074825369990806999638900327182748570272499738118596302819964628507800039645441050720108023722563890505177344897565555819298837426443976120987511082927747644846378821779479227859911953715150143428786547562257177152418961943527203550147511781392571597588143678579153054759147019844198470695639314162006173722081801535161014133711938125752446455341933846038107927954164402785768055023589528360031866942591994795620509248759079687560842040463732837826020689962723647823057889188503514326886819736061401257069041955702380201186421373737246198310219420028742616558337113830433986575562461602515018409894916807393404978141716306551313512278374795491860336212525101951873143639977178806679746878045415793436430536381267354690543596079662155930284543803814686393441743514300966182977129602991217748473698902784828397676421632318479478773753806128080586564490722083054342900192824188029518507332109960632455177137135682120439751339818610560213285871629307501280707851181133924833622718288877272842030630014864888047905112994701127316682903031441449454907100853138626014244714975378652990677836264775235619390298114633457596771747426823622809658127919269553969819627188666546043852338197495081824976202348072020536849422204042195691933017582603474673806503137635312557749319708041926664525729370679885548186634261759611890142379475733795615776681456711615843156706334708123226377061254585318050399508152694922170124466906839903572004005710777071224920362764432314184017733582093228723028761898468806160715509463775527052387115014490966770641645289007798898638256896817135459117618401363019274831480612214125571239689670894815958169045095764256145159343065345491920298804353044831353796125109089081500767253938257828797312236105006866957866833909967921206093195367767894635571774315850313693139018764387031525012841275020810960270619128218596977673768256269477041977849699296734459125566745223675437347150387830515150712210652294942646190668333664801200060453007025681960150994244944863684850981314533963449678380284529567534666874079487934308709254082154492758996055370164833013769347208716697698058252550206278961070225539523190704042306367391859464479003949456166926106779611344191566673934712343851105949286056702112398870996782962240301631026012602230000308836255768504077335205490276960678959247829281823261892707643119648477758436137678120962589773391062695535963227474500055537759468057392313479164315298213319742613202531687163045147456680593163850208862362548566725949610316428966415462108933257254373092320889232973906264004972951346496677083192789551926271716512537551485478924125084778171157479930838200356493420901525548684565668214694090191855136394485547279325952011310063225372683288865481837485942652187979916382588336943024625107178574072582606311750448939534583097974754113853494518390694039661518511559063095916673226452242188312210895402654038797895499746536567080713014189666988064895850483100246813996104326042312281175232010848410886928956168320744174623060641103909465010232639864758428056737923922965538886138740433163196636603440571931041089465173284043947075886990322677340522445782884916098704722585596462575701495056921944868231261657398581895920703430693612382742242946539802616751888734364780994965407030396135189486929293587736579179309890943029123077813281137458172670111567604956572380091272550614848818676856997068947669281635768537563917438609627889108690173866909456530104886208395627451938931639156042932565693035325792478156622388801195857802769456022681182203434604062372531346689767074266203955850862869075527093871714014242971868607585910094704931359708717789781397070382063585299628395302499171663289544926744921304486444169847524725635498479638297645828007481815575069850781455407133720143458731289865987394802623183427377875493434487280189817391921153720398150441147778503688096264500586825107868241290547716378900629573948709917122169435776575552267128770303477772352570007174055392293896513741227692955756778175071582310281483586707334157013091028944608682439531358095083225306273094060735484295076246095203519500985021446598939411998981513335991086776935783725388137068855351682486123815516681163358520228563934872733921965934656117975518122485808771322381276213634795972985519057457235827297310379966040786847992015154398917848287886951860645193645924853285551971976880616650535668866891328026448252673611033028650681686749787938081671257094639240207249846043887302730852749743121368533959323491897942310726512384169079657636020240243258178285901267905739401625141023355249924203876082510667963124128424343723861402273983798063650726185573638624402623031953533329568980688624624186093573663631670493791906515607311339190559492050370336136806897305567493035211315896210333052954550063826859441961850088501631607670812156878764600413030832010150031333005578622323624489461267457168729579773154741593663135589384285361620597198134106892324888461226084203211339144544470854325187976398413814501881290250034445031677180881103564531428936646280292712861695672386989904286130598842643183986515760609175458344450433924055722726012344922311738886635677410216596118099266386225032366518228738038690142170747447518017943910201281176883994084990304999631154386855067726260208305401598182036084354426844817186357613238109987654170253673639927441961206373574317602364361161982112619882767617806018374517128213196106033702168553608282972053965777127031824716892178341324283070383147833376206500514166311045709200179738425513319281378820068975856609328383401599420422450510311628876270417824695037594105442518665130894635456973554189109369214579872356887598522461923722465790394066703145178710140390646888731529899742787994581451754224466735314631361523164754121200473458209764585492726671561172202669829679376773385480670863368049941518365322725121565958992014228876396158324268268637444319390381558977868886789128361274446811395376888219537019480356373621217374187287720346270640947188400425556471209686525034786442545533725810275366396431914661240289738917683605514779653434898155440752711476291561470224230684644041168054933084082592570254281782760737372756026780988090195691413846334857299580892170295913088724525572531882300917255381515278574836707840697889462820820876545964821667815617354518242979587989509879783941917994513561279345175429397149789345825564296051888356619945917197917572061137251870430510705349820090538171009674042925475638930782826261266211652260169292893778210794054698241587718569305587206020217368979495366107300066006463852461224876173180784733744817463447173985167559185030520899919406486168469131545190803434311956865243963067475875578515133961202957097072709695080911261546328255382580831119128118123616744804745712131283382764366642448915211669148099857452455119418728814662959876499398356551303313751173714741889919663593905256100975515479132533080568745502214768875645404808275722302801718995531871328423983881891176412521657329556532475439582709830144770519666272171489888667967287656514701502745197757154986349228263125778002945369238591721556230211705241006856463267931072106154569368948129375756968597433480844046470322759892230511340829189355555331792529815941471340652082102533855145017963214354618243101830366715811512945747003342088741842871929188509332929564771404991551123118248674643567158661911476861850063246381325243632234408087645416501586238486225824621821710441144860595562225388036807404089297230121753997089984746080761541156916716050130639629822022391144993772977584373283970550419964253605138813841137093638765352707429340095317262314929033842219470172626556636869093613345151556459015496793953966070490905167536266241394978493013174001816935593211179270154632251570369015663581107373553656774759478283637827876799570414186610093696742673433306647944255271979319338603373969203271350672602517170311724007783875332438981953025993071242046140964062250601328529624186588652623861538544791434110860384246652197387667342303036452348775779277651211006605215048295044461149559815311652171271373792361130575012758134649512642227868427160883847279411406384176272125760922333190068454761684133489900465049073533516382838837921743724499648094081140536075074282421705247010594429263269147507594986921237164348341596546287838921988284564548033813947170812251298832710459616493926906780291668971540431585572299335999757941761969748096915777857620674586049067236544587156998569831715795490638128612107519814017752406428318875178658117799970128821650295461012956848953535979806789928682384229699524232053235350680392299247220345523451060366122290104173050867938732176338977366822794373374954711214073191612456161021912058880581967854160474881638516412227926164284610100955913498526766441611321743905504352838212784245587530903514589097524084955304081250510042402167566193231172848632357885414051201912048214335332259819090478725352794393320120650595710379960387026685991959967187732433359812639575223058932941293913862827005368256700023498328828657883650732700109116347872043697022925222608711798000216543820209046647380033195176708954913830531770506594879101363644744140134394528375624828768346577555206172327130569213081718587345250595584460078848375734555574069549432230072740188032119528532815119766213131197399898411956652533679314161360043279396987849401669286267116067626993762058475029778110142641926472738521679442210976990175526879207616185173268839650151251424878057258709523410186143955770405801029320819489012917387025321622632879091809911965888685413335675090067313608371924102115466979251511498181959426669741001047457305689158244927069933070456523598696819094752281763605571764031725972298203036981546779307276925512137357955244090622963250332306605378271046143963008810296094473237627176106902462608631660230337519562129427414407524129739615972588699876741143657293537984880104230622655392243007304794889692943667497944356005823122912060298807865850135699932591859544239523278960198497962660234798130004602664813997680069611138316795487830772172255051176926739160729468451837565350865767902909357234024142401061064103442288771875372868049165514450487783306154772164811496824274500332154433983341120892877043314982050445676914901498687679931171004912689758874857415012670894714161947537026319465034572592029924596654144184899219422850719370319306862202994856715813032591493547768755383165413055287459501600938365762811167010208435041443800368944334080376000373987526025785806758391997030427352937992868440345229402259977034096708045538511475022459931406004976308253922608155414774851595246216245857064159309928693605586241704379894685133776813616133213453266876878623083376184180155666207025236127892399626753311348469052629978550367948088961310455658254206300772405159281266284729291707918092366471362915634828607757697615133372402640891680677349694213762538133942096887847163056465824179680683658021020129135970880765158201957882977326841687138535934686229944028073391807060237865996084618304465199435341311613935345880102512483334020858340866465661555479653921931532446269383229423645887009527762490880545752532311378106497775492523045152827601857220119513572660440011913906528182765256099171774732616843227178027058415864225109102119673339493930201434484189636642673036225176570486733514656928428802169272791649401581305626654020080870743438573346799437952012273435615626370856503445774736398366112437185960700681379847603586025672496631438153630671734754958630729909342222511673026824312718115420582930558704185667008869038147175992502986711913021313459084748512314877272814287870724282515512633458924214389007484479272991257361906900993353448643862957534896541422055565571809700831487406757885882516104306696837542905263433531047145618928890747314357401117247876495464145704082685088770672521551778285743297840095037246450495502617753290125235100630217356319477277855242581367762851861130561066860095821952029473365653520106778153362748677995819687515521284754347912718620621935627660117707838448991286650066939680208715178701970299739891178489533970725482604392569069956602447618273987010740429295289457786314317609014263614258261319729179619445360871678228890812744000516480379949217616236246493317552374028928072578983031428402609785780687672866548306673136105627373671421370215615533895627939993076643720135575255808091034739317667637545069869433429430783327658104533168320345177823064997759900824179172919825873904406465157653183907722064347935442171193572491153211052539488104545495874208432970088857943477872076583417695401350717886341111061690899429206554862476735240129929693566329294551048744364969957326952312969663180257423141955721216354114946366588866176884039727317349612055697111718812172043857603725976156826178465802958804699467314497933836488236327206217140002796165520374998666430467581779964086977976017698515060422151228527952253011115719757168313419066669805351975694583993191065140602793716349550138264970851216268380798395921736691899373597479832138129396035623816740262486985155965554151250967977123898491157264329612021755891879308995503102637136553999378854660398227831519507962265534615868187406957849821895946955696126852633805131730842185951121364304744920633886955634402610929995678889917654740471311280706118898251468021197741178482515602791173469171992995489075570357936466507683945453261404715895991429847683161510762423563494105846826196966623873873186859960592462956791797011658078437556586322500213561836953660504771185882230449161753576895331125485187834990227314451374921720282415189029630820595301555174545688297084305695364125231616924815893317761884959695833191505029818774178525732917131422379027250604011901001958205580764014138067544591349168029242361636548164974377561356571292032047368466009707920356092182203118882693560920234526886510656026364275386805528560521442969707068648838375501449095210183691948900240083100133132521908722544456680265790137826790648350840166096478354312053721182418841083490966796261432083585250578313349854538350777387805119548833608105318106484572983056596169871043455701792652076144380706528049406171666872325365969238120060714093549668385424010936541284770434234835678177366390031736789779063558465040782807640076786639771291459304044962125265850470542331999100674070212826894691657250387235305008932275294614263103868846475582607788124438904273270585394258691574239491737194979381657669736846968080683808170297745830703849215273353029629015674449112009946341978339658994808828949702697639225678170730536043423908207557799180315354019968464370485600260775039000968097984340632574976131178711994792616448988535860247811374534591695534308466450566138023664781922337305519933787679421227249916322124493871702891173648327027674431266444481588356528716145817193185582441867302221263056238724563400948973490591432403063003165528682520577142716522104493753038240099685465575418839080447792993365614357232119000488560525792757948410895070250150263370850839463542889965559817949199834458296364850858484568298134610929790837601449357577065628691763903870730423219536445199251297270930115393657220863115406161166498540454477579706474824134523473979045362684091875769706179379616512929798408961038789243782780142306405183649054363805066280246268826247475926457280441381219294286135374986613519934328052748191340021642197029180654168691875831130293185865750537789495103707124982935940168100934429113362086260956533140793450496846225749049627509859966054656118481876730715019828965205927743267068654563683831269609508182480086378188371954895862813332928016866934986933864965889963740117847199201064447814367880428472064156665336331452033048203104114846437978235176596521615262047842183531034918475581921232839002338569350617950106334011551609628450046261396783824256233444810737470935012039533391608596566608062207937796888164343469864816351280390758893864116826749404049645195143992115643197816704815124371554578312481185181537391070778788798326631434243648365505390002880000123063327486310273078048635578199557120824687135336681951060369128510869997529064409519746859044127762377377161549313229074183094050322648548290120537556751504082981972849257056241308676563594494656295742208317685390749632335991979505968299482478499885445258143509701055068741863515686042580660308645614535649963084030976779545319066607162629004614778868073713076114140343486187355434637146660195803182432120170341600741635074639591598054321310537916222235584261400912726587198042311011480583031252872401163252471486576165027237100187054716340720421098229966225723767555245774255752060817802065208723898888889979611272483128661328073351494988529748320379152769320560553204611717339030570642440618663960079964154592901229478581994798177568349765791337409566221399985303578664803360801762738541899215698706866238901030928930411440241293974000193875423758842119553242543001062111388803349098071499837726276186082848682977410303174000274882310516049156889637241688091410245054374054546428038411378180876342110657919129913200481785672953494445721454876187801257749054393818314301150585196778370793856409833570682094732325748884047770081622644729618330886713199998931425851431702541334451724287082743696388515900194719891950178887863460815208991777358654929473292637335386096080184137448609619877538322463838830874873979503704766740559623247009343067744305964283913155775710357723644164263043185120174519796142220020341912037684751496332563430528933246512537471397142597993515597591815724786435087059216460045490719426845996401492936067710692886394638203202744802016202072354887038727453043724550705399839904777655990013540120588919353842835673153543319239698814298564271371900325476912215984867996517112783476505211117741596798613370945241249491601908113912095952479866797515139410738254903510535702393773706321497551367296812961911739229256978804100870093035577796580793476065357671970160858166105940879501772320886316185188124732196168206537075539169663585816686591552454910602424119074158986075095742092233736370253314175403433838988614788814213145160178991664188904367127006896483804158427825718842706672510029750116570093491176173113563106904161826205300398435597898025170265024426487531980917257674190880106431108980662963726737026616005504992547245193246296090152618940266811373469803398881901094091684433463264702472608332953591957667456750874593166431124933985024688789241048254726956660712564132231845584609339408415718371995223809006429955922328796912748864184437117507247752488061091518848173568927427788335957351839614389979941714557055778890095710929778018166948045644879937740775786637814343392040419501808123086233343843361982104326541972955859831522962680421326700755779458601669765940036382887325135453685225547455768320623853642100888647052575201054994644939786306691647985957384503795720369850426941382126938660273506707148753765616520897180392552922753594030593789963357117898193643397219324912397705780487562858997068097676894961824274362729157844110354943851201998091102054587504760517098659811400619962624891789914697987640058770341008448111604416928247501842345830169276319165801463354105721982542221484288816321789749753520056572037448827431581543318334398468337940022750490855373674730707753316829258108921917585186177797758786522151070811107367558872522156220463395595332670332878470132107766752335557091192766688564000102465457372254010087563948792196992614186590284624250183108693237222949202803553139610231182918722282769486301795007219758410809637936364481913044193903085984403799626622853442709311136727631037413371179407600188761285611462922044749237059851644806945421254419707979083117548298590351362205252976611665389108425207083121264546931970746945026992412642096007784453637439536276318121084331327339905924836619781095798293040857269744143049630501809618739208886655683176672527894387319110552871169082617220010061030540473759615804925248807080503824239795718216683248771507640322539601508184426444930384526697648912893328477743775109270173979254913901314683659573707432778171028074552235923734589363055967169692605278032073266285013625745191422960566114747473002647073210149526536029902906693640928185815552483888731563967867164433391538691732565679190099438482496834698397220552938654100996767564312537075464316404711249144311068488374333991968379884355198175156885701469189265076841170706444656072743735201055912607387173498625481412120010090468335768985210661132393198588511419504696508272525425259798150958266494668015017865227321178885836525805356558519158048862168437053149492788966602947442760631789859149988824148447940719785580204696239963345698960679146079126109152297479074992726502161999634916970481789854989769360618074906640731215887907929202562267172598685060572854691294437726127375342529020024971246995809975774017202047329630823724343076108737042520493843050178066330468155293850603251330468374229002142264992064376034893773256921248362190589150798463143684269375983075266278982092985987390927594120669382792014438511617382535428859933818543902077477240585026927746105701375462088366673389855135264172587161699533861464198758127902436077962537126301286042239148108891250592504294171084765176518244627707858639688703512275517598976313024890208803063168467797076383160028723170240523894778143693526624347173570402800063184689100585626142605561778951946973427658819286827394465979531337539914873378707646296328336332957585107916153624602340182805063731276236541541154866641279973652324590890562323445737304942291810115417519948634317939746579326374637716736209059069012128310294493019049441625212524082395173957575695862282457483377842199340817820217448222969644548533441543115845383162940859766282636981381448935539066673544671823255497755355151431967864112677609945372684009540394584728442175165280951451069845285796338845314294640555698577467134570078732248761328239214600841888188365093577098695641333839711050481010887001002633566934263699532190368822620178909416495331951376258425614375450718204551003156924663607347669653297396463219464264943799254724947196172742677400337597595214084189077161314335845037171616303519257584196418427826006627143473041325143696276593170278290134242839346837195401457506996265437772452410316137420970533901644312090989034731870184394586144549455486939871552077497993586907219536342350072997215332431646935521066653692004404806011812868318218992189269771128408168198604373174324380495065846920498314674083598357733592460893669476026452495886791259057638535335160159572932726986685541759835681012599189583146661062431126074298155751290064175408998800049256874745801720902962887930589744403328081478708300738128118013299812870499306291767058008754049393271676362202492781505580238966795471358009519922110259514821809145613653277387859273344795040607708837631669525530555205732806856831792018104598827157096218803815013909631921706780537230078543084105958547611575551875825994609887004575485848501269289647498164851899587005961685681423897874870270705286589669778294717224283294983409767326382065641472143658617346113446193555668607247311055077878578059063107973916389771800083788972523822365485391155887195861981639731465875682266933858975639405630015245054848970495735332286503056352272203392758374407856648480258616422141847096963545272041516412190511344125190074553940886522532556967877521370587508013018184765718103859934070004989394572168157116571808913509890427870460796890503004410084926715703480117947325985400145151076092506545374646997494396657556622387505022128292771923836775758030164912415353717675958927446119485647525272093245401803159933361028841737238368348440247181491910340946111909987309525089935197200429561389074371931483813799884768212882614872614311289970793813601252698192842098507262205522705787620519648092636017677703644855990175879613847254533265227758556227387473755419323615529284974293008741901014106647710629214410916362053932260802548972225418406141239852264906955219736415774658248060887453415174327138971216535045874921158924640174194076337571525441664581332502646101308397658964607924349126903471518961495646216155255796139065208917658037842359217580698385957292108952813069916166459706316379123940719353560621502880372967099765998307860847845603652133452104760274749375012534657758887537517643057787751425077156695823120209634529172391944550745733256757562450438335613853031879971033594292630187263076543271837996432289514556380839473837947151707659309108057515817644197949019403415059616134682578331264852924668807645439323371014515217199065182579021970795120683018744670900056959083976626030908907591554528173035483103224839423982439322647381015846383339734927882636630973817538674916949631363571778252109674942669339378048924548791383422869595669243328121202592188756879112883886769283364516658120001302646073790254530011503810414798283538961073681181844917071303877656282643012501592750399633383383326162783491584007145852255440226224178524312792537199314266723593744510535410861832991365625003299635899245330132579574851162502635287430004003860097318933150475386950855469687604962471862829372272372040121586629095587903819646009696335370189821981192060464541553231397995359912890625714957230002326237087586806312408408225055700351174675079917921868682448714315795771175036410700865468022068037036744551120320080848464619043480779978366866123921861987126264577626602878181508753358207460826663497266416677102098233057635434590167105769520341076672083241140607990877602134023032748376530508847073364154910308476068023215459399932399143776648105924383700829011018615852106679931530608383162207032883371739693929299349447237932589230561034749011810322915419581085588502440256081682137240651587197439467607986817961962593356386885681558907052498111666327620979526580219616977037506012012549320906064660245755741535855863166847756213941271363694038675336635866417873073670501216786071627386920034716796301596849061288845588153079176668120907361458744283805955447430535415943757137477791852005786929645151114984108851548812872248787413003135162893021850925332182525413547266495898130485537622573514018428818713461704723440373254838685125712667593220856921726368887046137255604428820590221255974351548078754432661300690301585801411904992303316095047466860224704366820897420371651821341646504011617562286025128486187845638567701987981236116770427912661330666645676176002429628003346204109575516457182839624670405532183707278799824296679982203088040813064170908427539017264893136957941019136355017960344711400960141671373646061600931643035391075583779978584697466374747363676674090242889271503088849432354949947860265527827149782544043271200559877112435072080994801912684991494012332261211798899929162092113784268293998921948943084954016396619731014662737556823287813003813386113261461977040743958247989245883234895521536524684517149820360304011253204997322525563887560121863907892416400012209338195731995639997093790143203286788724323770993337168219032941190234693607377877960940919200936819565526890195527084014417068512596970278019603714354338311801243620463054076108481260418840266084907350732971630391610829737984586047178360672453558071213634841958727942319514054323065641664852378880858491094411672251976308039502898368589331183099708738357670368893794875610950320412993792484586503556327807984896041439272076252693010940965814400814553010056070295579670500058139639151444201910642306552243807407216798617289665816528947432556510383926639144324724190387791928579003270552740190029396463891939997431397896163918464171022978767025340959891085315361107516584337794005187809777942348212454867208746405259136905872863254633444294541168012416945905091347054365715453144435786037577344749381398484533740873185086288121091825930561912751123390979661724282771193007081681352590444874734553909024281576676895186900033468185859400175907401099340949179539372422358159048314673959254820538194427455624652783255498614300562666839669706768108671636672726313916915367861185043725820511364448869071157423761344214127670685673998380544022037892434852657292815039114891157247874739874545288308381051693980026889718861523760618617203017387274184615329865427030722490789204565078658811438187294676485775314136638849097418711318849988903460745084632260768024030365696053583427543735799261013407122571121616224333822086065324460600676771564304339122813674639385680621326360498198502368000901412929109199792687860378307458631879287458544311768520423206293741292245449875131949473143081387515947974138317567076283221633375767771601860142851810348559039317638141495791333368799225428310140751223180134488175033287997839191731939490028771774776665084005047547650899695187384104893895525800379277100287124932510477071406513096349717328876136986495388853421861901110668814714310536433502178080745370779341532499449032869816459688884968619993394351670647767009700676607686892391428666724697208052207046429036973106914918944257500239875090731277243255398762235670489922398843679480243478075920053767482545945846809976189886110777414277248181509844435353031624461525931795148999423654149456565408403363057745220058587089902262178466607949898541162986453125661161136264005539056430276338669926901658004011364381846175580210806298922058030596045829296344452171713754060200432049585749071050876143060651752503693810005810611555706290816092934955491897299571061420867360650658620412082296826860728569740328576000162784733096646135258482506466521383629339346240374662463912735317915995160733193404606484786078486053720280182616490789968297389251104960683257423327993039311057147000396187117413774178226366672251558811703979715909917910120933072663167485964224972150933900431138858362482498412660730449267856339189753571154616495215531360248591431507374231976841782697341903390825655121941547211376086400191734170965776588733973322621264949073095233338369068157219301385320994616649652831416901217150750097187677407364240421222293706650908867480700655273554295808029891309204536347469209841474591468343263462826441758054951767663312919283644493537519345649717770508615170242972312607788038707784202292488917653243904981873465765592597294591628398570348999093878496800250392113381165227061996136471531477734522608812156804681686811518775514261384415264428018942041769046549632018621688798823683742635366600866611538504709166603105639381646776070433028406362019339212630579039701163180084043374782316218019265176089888371397440433674039452949422135029397978206126979927188356101164718193289298094930271322854233328091008919281693074313283525903514372304305691158626443058686078648599001972197158744037835383367627867080994096888232132263257942732744672897809850739444958001196956626122885497331722255668860799907912745541436124462949504830417184437298381475824919033907327223599678034012801770549102093453669442694020659855664341940206889628846426095274253714803429526528717810594108116890547790191724051736782104243796632328127653793332609791284787756289919307079635977332029744487106229185832431893164923728937220292614976826473720156076462179232199453741403726503063115685546519030777090974057500727972606752357099940459511079043697933541317195918253434553689301924816821052168417420421823860516426776168883233726985263969439485016077472552701763931269946409023352624898125389035634285661213218163552532018894337326113893607080198083595099443038098646018922012088920706203333650132481873065351332876263867168456607518343765312488721740172622937483688154174034963901266295265173988022783141369171277587173014132848928793101179361247338949540150519598585469808057685063029488291474584656437956153216375595074984931389166202027495690539320607788872700855847766044102632811188625905527712909130042547517734049195351155508386119022322702065423300621083676868383161511614490623047734931560561130392067734878508940218578625647059352242636958643063658370586013405800225530031948127910677536781525853139685891437619684875064679510173461752440301180414945145619606971152072391110132424339887021389484904859398611585410177550274349901512370811384844065255530007770967757270675479401685052745271111112793125369920620559995700209483916215205561992328304813787270787859031047229628487751809892420027595563573088981843104034176349389949700958943034890338291929988980955900025993419078317654801110888892591095047020267305129710427144079495376688820670456194025135964067092879074115742691617173754644078597532442923954617022974505647442465281497745243196559224933417110144107731840623744980407435837265507248875556062368323060835196813728960803762746434592533222532459755205045074574085059342499317365486329827775865513240852586191938872440015229482661877664978575157304676620731969076799416291611693267508251368091884304212860134609860326304217865448675643208281017626423481684129948761544563986458258987143129476754385001759798125980793202156097483167557119581673922106755032132764566169858112206367137088190430988316680464848673692707695784359169637393537650867468271766685051714257954227618875644748453053513626642583309503290312223390831168101799910897159744559860328936522371240035737422328106324340589141548893544171304664106416954481457987813084234672131785573685382473323949045006476772434972253686962043937437947653229932961681792439809673149222326941584982912182091239488194508979737727614731695047359889872103974709900807804238146158261978482547873247522674022537841998600045076288307704455461857229137020712646650450361181388555763683644227768635811799524265287949808525182450210751291263903517802868774703365394577387849742871549447572964143516583142012684443825307008324055117300840253254511869314983553318123437933673488489639524036195951223351919021387471150982866608939826664265857762526413167357473447215676065111190002141950176708887541068474597055529701436916496387253777703977637586875054144450497425572999369478797973899853513705017064818434439676887825427483134289126496005261237224051384838714715687967659856818459948285567655201337326091817124056781292490518542204975420446598526250616854521097821396179562216098546920770260687191038772928969108248421722193991874475228528766655548037153950410693339366516755630726573564450097068510232651951643565357604641414706388708224726724473358294601751364092886449252613456706680706014783427924264033728516811936218135762338485148215834711489797309573033501067674268878802587306029723304359662931070587956712657172287642013342232285849542098245856893526132709228061414550275634619898319136850376292057624737652092358402470310675389775817678724901464122495978684977181161388417829736522696822896449871838683435855299208544906523291083215896874062826049029838742858468426729362895278690693235001895654070598947247421106633183883307774358479995836388442849591870142036423627112434107466257959563568360778929392112549852459130738550779526282122907749453664101642900281710129428946469712027708155455618271313731994758089156205718128900388228475665165991740757105636064862819637578807198351489219465599624763896385931508798318792115116311794310188469525958324785329897671594257310062721011530298520601478153183687919941701591333449219117455520255243833356914812666470093537499356027281212936218811495696537236124271738410920101669497073202860103286350681636017921848739333561706997352675840908611484703337641856932555456039806184542277898676697793487379969104359002646566033603368698418949994440110545519266883382639230266341923667537651752051569629564386299785242968495546956740144096012427647103499259798315792646608685507032699342467235436615651132331433669106209885534229236302378607712079558596941601295247877602195928752906201755011208579323000170244544448723938850502457955039528163511007128948423088334952214311410898492674134311062433208950014577121879683209373992740231097178697904058133728144617498754777557876907655224446174208362120356963671987171513841099009898141879017981350089405495896450250800041224532753625167256909921979311307663065789268774117190111437902128318263333469884558999968417688679441702721845868227032213092839131018217507299026785278110235825262666226044153215906279324892401596935672819568328619167384640762518177176817280796976406107231170332803605985516094032586556593270240171876960525045227759689502251227782550993151684758645382535507831443792199579682975429093077705081044786034077758205826993699679000374546580250054235497955871540426235397833554610104700699058575802076003878149655087100967160918305837323795109823604852838069320732826140944641056414505681360664109191769741113731557327325170239899409408779158127459529618551845833208074173877796234616211603499504196680643293095475855912025586691497214874872130250447262989909215410222770763687790125968423998249720705483633014949702794983716215456345801966344994263848809218796794985011031697499244967754925091876904704662402615459357207556705017559487632946389596286685226934598572101640710900943705459058784551138562617367085862933129348126100870269790460373535687051263224233810915208711584675993260945342231331047484660489583261633707188271934087449555123158931391993272749747826060350043955993714872684594736398238551455398253187176155527732729770833145289346533758879949154008110798377217928448482617561314584838416563432790885745641548731032420611326507254950170930056729873710519264320914583389597515241656140155311857248358549747911738309151766957560448118610129960290542867330573584311175411049667285060497145367422739502478749245880488676489680250861540261140189642639024678657472028249931369112197225499345547478388113743789834494338497261471054346495092510093130146888647908329745946839239567400190818533645904535712926616418548538913916957617749123590063592305125886192494647703576537681193947616074346660932813729345236110658437056598608021534942589147735955472749637382397676815476426051349109622279674497815672064514524707743911607416602027916760991659943166996349554756856397164639146549039438677902199973251188594357040243022526003999544435857376332179615419087088094240779227948335753476622817437224574020734538540362250837359786250337090315684951652781697187734889322722984345091758418705240456557246329624989674606801105609253168530436335315710201033241752850088816132975500888701549380328289773665714873156665288483526876170369439975646733131722832956690746037987805397259961576208569242424068564738407037679206670167025618278413401888874868613931733392083608575814537691628137619798416459050676309106129070290672144848346008829672739679982250395985749463499112240855393726225739865801133913770382624734610660221002626985226566941187901123308061230496837871061425475301798373961823331013677884939602031819643118459704857565391037261756306029376032593001577194409489148948915227421233968412769310742957807979711438764169412710202575336817159119838203766996683946445008793879232905687508907903410079811788073994694775081798613484897930358850904053458752694101196860042990865652724567040557672771038544280690073302584660720931672610376091871695265742090170749340218067758252750592459179194921392958328667212531375559444696070202980584251541902563949756466099248477092755770963684044959579019777856591159198937699828723116842216223872484607601380804730935188754756860011330812590826795717056644319986160467430190155674004272140621749731732420487850438927655227619343635373145961673682395128878483332894834756492006331497053197812730858678939997028213459949632645703559409054581443169774188568395028062524327902800469041343902389901767990304813522614773416564822874618501776443620719426866318248507625927084449231650740028475520863161721509063625869961099441016604949304010611553042243744414460564600982276684198958137950245123763871813001385086519497817834980120002668346703903050848836526332584610570661371967546228961898974998061594229324054736873728413853988924833681474310343134308180432947169355060490044198486671919931165483784136672380837894833787675189471939812744412358569630404182190839057264261668077393048555779088509726422264853647417686825115960152884302826055288621528969326901950403831029688344534631221893350201782016780586016607832222510152320030985414502142922142736736353063037538911284632131458628424207048478115407509961641667119608037557460866450259147806349161460839378253079359967101542471538375914150621300058090945836013553243389304408497124109130249407364124713857717006741825973091695661349311588825345463255965943120173762018620140725766612078414476108030354921858115085001790782564352736101388604820134046978617661735174315978377326513335350555094473775555845358984602925787829061452800090247433265191809616353409889685289345282856351642587112268856621215570446098812461615479528605319263607570568623972078535753254246467631874351277062624714340239653126669587085800829386984430043844295520210569996245635881538644965945266484288704175513152838998769883988077504853363654687365316581097404666418754386367059057701710704259664221865655357603200108370233484784190468115679070314894842029365959103720113719172541391730874376064071490394029290927113192545730958541374078983430214731193880060556203156556451717282539943137949025020657693070777475119289758649614595377367725135681471549977153885239240138553017900671196214632073569682865270730674282731172370515382746021446267473600528596001702123592945422230791548532608074048258807695450997424358909340795090418336556215139537201442616459236891299844729931749344508440306654509563675464081544842315434073504215831883272517734021875012488094567104273443854634024556457948536040130925623654538120108650924128001879927856345321935343336603188078560032452631751059839833557988213677685580820711640599547073450782092020153851627661585685952738458167327625299140637514088740630283270158277957077115639531794974569599951652031381909019265922169517660121256987738044255524085989191069950077460887472942604907432736534538838771168924240212291943398944537835730716798691069378388248747744811086187980414751886658617943303252924785798676315969002822015071901626823379320222201135745993815572257387918503171769423489392617083139444395650652575443366841143670188817123624206300916922485117276675050106262920613758246808489541935978417657064123135197717271376708866276531169226331988915807813364877620859479564075816805231845694324297618400926558657263584131915084903617646401218117356729130772327663366084739465125323884837117390237091552118089953848508403828886996255856084038282005393578976650396771708769335781058502034509324209821059813181468634092535201695854984923160486234276315622485097606976003344659479843272751056315711108878084835900439013514487908718752654290781430958042064582722320751167532400310566914300750852109895038525334929019479611250488701737804103244421761850964669038298373732323127806595918006495088334963395482512279727944611362012167635699993277746349112138152156153153268056994928063590754154722966870591103210149946782710538551352878193634790016311230878706978715423226991089291901410325362109720647025525157852639350975483122060966145173498999108759585101243456893126193999620350666851337490473037803545149656685600566913839532175377110025574712896195544881771126371375885486283858457695263899781130037148367683845697954843775671415985939910104500125016330864833166759540217369391353598442576623806304777778177053469695018320919568086568839773970034234853589474867931149043965999884566336796666854805075246360716926071297913913553929250497624952677983381081565135692173146487346642993184003278875204765256794165336229874143183150791796540022261142754853728619252179369452905676841454676314213015940408012738882478472523622095647178469383972717794615544778807992209855346877221859574080222550369604580347454436759009969987607446733955192824095042823401869449139498144865649461145975677167031858075666964263201950559191819997925329052750792194381345157376445863519917067995164025570600996985333079962899810973580425254382964972387173055595031584806325077881865701190393821107784550156071389316826392158436697952165867580652272137678250728120305524717974777136244530459549961850993675753003374693469617169092266775893298259607732376328066595282613892393495506945629645159669969539897850781922692481646344028484402900817199558189347398546254559357636517753186964486719811023564917027385226288573221200306575194932400205275230458235391540590385499552260555335669873997049611096064158437937289004914303414111682890112943339310305488846454618834834069407824195903179907015821434181267974161313198919473575947295804322770874617970327136393688827231094590637286988607083035347446546886641697902716302859773907693795900217521982721477805705255704141895701353061391637929074289731781870218554332907708849259665695052501018392542845826424736174324338200530671830331804530200043524540880722418031983424853017733703496515962420284915183488087103455819849675994986014367603249612038160878022325370840006184062336860314609312939008190102707082608391598177968125266432944077757981831117827821962846640688505339700715138385497769239827904985151603801596077684978787095180473572168014011616073950876050539527855853934335838095783771827933002092814376535494488228965945160954572127251906863298400051268828065967461650418285437667253612379706013126483970319094375088884180538598603620961295432052128052986126022209098802637658680039507303549386977950827094595481319264529982656641061171519168587107549220659791586864331777121030733754681677921474979224324893877937968053618006681504479644194029792297445187858431945107274033571219994793707818216291585457220886090542545375851692784722837642957822468289167327879731014200024882354457779927356621588802009199127901331427645728098642295137599826575807753733273366091043476238759302643394205204796712333013881770409668525978544832420214360234548427098107161179666884108361878452967722717935233612603436795691545066751064194164154263395523768002632878869057232641989227126835303658449556726072723892350768417426933351396172537876141019412444830216268557315077061503042152019363953937264334571308904133252294199494778436905857744052210724088599581638323491282692067960693974455397997563678492178371816580291342741410862705436915803504179355058700458006208781596635760674700263012977138077625612576172787927381533543946447620713676818937390043977995918588476255957055886024439453286528135916390145233240423236270432339212183364132869895796897605751585824894328375696751240645177131928145523877817164703051697029666812507173635530256117500931430222422386196805209947915241286305664609315777740846956416535441232914484536853614530768550484495650308538292778819763247950117018184526867795574961821655342756532160287586826793699829660431897392478948393461530304120456884628655581566178884354587281003411868982274951773499779311876975065298735834745340346472631715949951656312127301384239210322464164268528292281328474379531502584327708899654027042321211913021340322352753839644323891130865925416385955795018244503419170172533323317882277606190301507470608794495965032108772654234755367662138189007687735084482116370325065366236456846029239709743398901009825194075853660539959798799757805038562602659265522460547828399042229855109927167537570882246619464661094040940233733381410960137395736355641737146014018596887899620143477755989854791649253703607007668942768847054328378934963449671287894223600722782431974967125179172634880771774165187244217815892823482383010520259584297010450377486744559496027146315379371927712481236482816045510469233909159900839414209808923200809984377000594571795276500167030701775171619149390658239028043911791349333833040569280820489673324913201096290286691984381080999711208451002472694222862778536225869046736952857201381238373620984489072697252387861186764583222181455156814141661697827409279093858545559699784835296047528189851828933392178978934233115089692935521277383185750070141376098640659785147853387668583938990653153364284039555311276456280753167250609102536361572290905150247309173504880376918386080478902022974613890690519357906610096663226726573424493116348553541376115844957559053946165244599390591067390015703330632155846821149699393339188633706037280048851980894678390707464158135694212321597495078361300305120130565808287668166522690905958496635895434298037043674682155209236748877088805417646920713534167220613415798921553458899982781755689610666266564936612224663842544547713011194818999296988016998216831012813529471513007432345472590161965514956139090834030601300208582180098885666099263430684864410135408919843211582084855675230947388360738754542515199598151772235467030747710499780794839580615006305554385675151001481863426917042632363038102557336923744621890578241716185498872022656285825774894162109861613119321661866097759018947000732931474403832720517994684321972933636560565789959330291465914043881308579422390839511818519749635367026763998616419261485840193906589451473575820427024819157461917855904088132109305785136415302572992321084915703146603675291960774751247486179888099713931749196106147602500643194021516591730812243806076235484369815336186159359235119171358578036882477518669976418828661385416453073815638694077835374886768472662419339027066017051021781388627541204539839212049223550356148786392675450040469993644794016041022620631613896431418578602602467170984478551498948668439866906252388734918279330658354047587713739218998435056081522475085911677829253470456087172758899576426343996270952467316893490450735673356012025068749597683499281674576480261234629378561374154584602204827140952314542302804867581299534698213921780969113734082298742297856089014097917530095121246908848884628765463802348471312774026776526422288950666524323424626541452998499559359093416176073576783530697837217027215392576898081889444902248648336221829085139035927971761677263554071641637186557013699262767999715882084256486982326724737311506331490239891038951930769354541362825233337155539282817306728138634824045105640788268039473507265623758254236244236056219530364114523634087211051912786970309458935938618020321070850806021945051503910892589242543231226983578377207318187416668495071511706775702906600786557651372911482677602867725191953280947439349411398366906635686545468001278024067145392624951850185076644679868674061901913509322002239504364047735657186072243372755403053541928464924321333097782909570913128055959943580438357416372456294851729053108317176533510947010025870500923781074149939114071001541041266939118546918470549345345320529434853608095944950705979456973733262962693985412726520957756231676007585103099897149241496755020184697622045801388627700494662105077931167410045326825282209628604527582632596814792856319186316229497456271359573310270219523510442376501256447729579504040645244772060461974004098089211621266388194506410161820822931629817523129772072997104615574461211432768810314418008631142580603099988189383271495073608441887943298868599218958092207614812465593490322343115937125345734714232794364905463076500952545334665710293959204222194535527268016925453319839190595267308629679790248567787648381686574277112692953256223425417801500710576268492880476043749683272686930569786755091235367830616978595662458818430844633699949757938452817447829464778408593266582223498382162478518437523195507141583736307423167220377443876022894214950581280765131518431673532800812092237211447517350370065646847137114818556806060223597475878653620331297136309761036212813698503389120291945274583318677705102423657123545979913760724403190810288444345404252594263165921561894517348500541831235997179351887562129170616569251519808621309626018058180378815206600500449328878410370202006237259572758036711946126567928320267514370533500765020157037688859724469326232072313882945216426706041130943984373188515277806773188302830077693395779595273126250000805198288994072960541160276461121379318913718952865893500425071032706265373281973066258848559180811327956981197623324043130984206228524723179053416960637499836109493837817521481179093207076396772105851351945877802796149145752121790707536204157127092513679414513271609572885594752319542128559162145222002098562833486638836829402210764644519928250817387303689863127180072820780274820570118997898055348206394766232163857381891872592448076324568645857533656254930110335671273003940414368034897669556041979136548623308990269058649984571185308340179229060440193549524692205712083489119903461621769071211765914133555994261109530790968086746478333395527968867201870668026580917313741733185158592295321200577361349398738964156930401267484791492848925414077503635715393211595343563632241154493715784294632143493911831829036880633871745091730992069743681802664842612666022567921035245383352170321058319986311268949475094624555048767956226792959429168781226509643340305709034551887716444693644097860060034752078252319754676281801244486681036274344614619874910709468202203742080570125361263533238675879067817005612984150757262207395647945374667461831293558014939069160061528617414864267659814149913284702411865677394096828325307940489390901612706659600260755303732265256237221899453861037537962745950525298749651036777148648445032197915024492049739508131812811242700954752124579490629005663431292563067385626539895214922841631989438819642788250155112286708012097857366488590240701265852490049058025522893479544078380241479147010050929260872811685654238309617746035808080486408403433309477593718132457800915508693088730705241034668946644288077309258734762604089537352092462546139641670747394501702868423264423510514013952112385525339257410058594108379583630492446634166480427280145172988770420373995827174518170792135048811030527555020863630797873846319750525372581476668466577299885716178229140151559043075219274869015429372735733139605012244550753581683252272034527807524383750489852557740645844830351255849798685760137414881963692894477984663684594829889180598571480674069394101307773593221334724219724029308999326942891923130860111150983856899898407043734237851318580973760871001698206521423526589469788669801748539096989529184849983521875681950798386231975533119125538529019120629856064586178092646204103388015302379177205506659237490509832870651291353073988826721857115550373041027504118334532038429776121732877871911828315797183852186324345336619313445871946535479308213207658398633755399531756146906880913902166708530927809998375881830125383787242435057893470116356340702338284223607048515245091591453678793399707772527168576402992394998287891210251144734041212656423477779015350273897934764131421960290336189096895945496380930706553325706067201958429940505060187641716660499743244109548861011961237089530449750541583289442187393651528481049120184506147368614791516270827372482531870137025254685146486726884615315794093714408315681051423019972219429076733369681362469212787237039193547857958749143609523247014686097760228056433932563706815100475538675055067284957522320146045145442654419559362431246490526157547559914539551023979936787561985754920472402167949588215620040745246437906572790666698461409384801086957545821416185858324074499512379254909277975546990933061903581792602793036021124405557912595490555719507537114572663344832886091604521528157548331575372186085549504486481234344103399987849339923082876263765812466198391775710837900179046939597479808747729788140140948709048423423463717399206767107318014441728161819640870116543419526556415056988141220869186173585833948878687438638203911949220794023571604754313740652604694118804832194526430604123296640352940891386528805461129094914960855173699228945278952096821874357237261676825645331314401865744927437107655503216077203723580624710476913245042579083521297015351399523693316996315893356175265706376872098465214616483706243968418624265601270302859668078756840148358250156621660610200789650694083673471095633521846004068842073810701489276722118761856432352567865647990193730902739187128271396742349631542495906696347685622732501375933005587984169075271228549516961870045620071980917666740109486049813414528079651194440561889432489791725164490056812156949953498915337622056956144804029457815742316108228966242525537118407724613269060059879197809125707902589604805348409011872310617641399174504089079381399123307299062558632452612525279016323971894385375406731876149817527888108085599404999520293577523253963757149596867710051112186004422799609982885625554851519236299211966811900980056492951917867479402853336825370548148897262589307120958116475207261161109345427145455401582877086508065930212062989121083274667296456163215803035462004998820535615704122046535618135542389527007435705289593329781419859081965792907361536253470809851260680479965318808094955724643424763421245628156185675679764519960504604636952709805620205970417363693802852148816975686483509711697834452943079912464354216612187496028176244823567454396155712234303152674649425533405016881178222081227560114142011385355572688274665883345219980786330725368089057015533495004722519411406522040978963491420312556989409459636023649393792341060562244270261775706078369174564152645752863431110893841354637803773954141782191995228861719165526729286542349171310057633888139012916530526550348855072921022314366135895214331327569086437060685837454618478344745805081218388969113055767216444218356378947155296248787281063496466381934988622357696196056931551058632698608731650466100215264075650863326605483934051772055296238500197184882906505635955302367855823409034374487152858383211554565085506207432368858637653655869858019614237374412908796933262376648544513362996039699165322342851628731954554187756075464147120755030706690360097548523551698152063562523762355448050161944851200175937547043259094977038337381818988065043306577529145923254726248882327064182708000382758930724774527791343836259867248934385547393341051544796041976137678418596243916914636415638862323559928037372858028866642178465289245930602649383428075658926450959792568199788495294622163614677472759708944494542823311607095440620302097333269577124744997910812110764625265682857790934627891994834511070581267705807419966935139537209159552456106018167572289015053440993241926162571968628843074177319980437135003474969053889132261677929193016927261196513136764767105904042257937720400750201359056185896105868059760079932998455359309420123573573392507616077580178561411049883237948172710220415937530188764527953375183346290045608198679808930119889584555663391999405973000069008485966573911400024919083374368095287166767049031005033725529013595128107540726527741999324532906229067199786793234159538839796492242475794525768295252437486892198002899533927048202799814941810314350989526811981809006499103142505353450930909027908325185717276282943398203597994786144699661891462245258952327059009519461360476367181758789571046447146950972109603257872307669046836771302280326146212975740373101881987793270831626163631829203095433328577080661384286826904671341598170760363277545479483666459779990459994532015618162442577818802835317475704258161013343382988866853675916008718464201005593190716239847733440627711867738814746031166829213629326258978214019160084172444644515556916759621683858018161592541875779897431111241493734015642851367903431347425457714553036017206919969176936736355877338764779820759740984160185855474841790237635069279140151921204134671385081930734205638247669434753188492298347235986092605212109466795823812580968018749125394793705632754879089926202822678822983341963637555105022053851636364772162576143103135931375645129621346145593646243959747673615399069643916692798862077960167329994448149027249652921407538881659691712697137718540896160202485831386564644645080762504880034585325084927232357317877378167690219432869915570191393994503194079252373354862991011373317666400489941508278798893476315451389950698110696072846210171916702208717514909699856336334543190812364892802361926926795434990624328378321688645418193089688942558970351476541927101128802256398622431027917797913005147001201816118275981665779858408270044915503524458159718811024972586727085697022401902358817031697485713385033604674953937381069842072681689073990267328098711584416932556919558634062281262055933111633641734027206905659976694236179893600289269842643575145384356404632569929143148164902021526375947065057408350277057332197484124883468262851729285750980891599819516762639099365846562868188573563085406381145212154921740133482299467622482427620182079461138506670695145658119789927559490210033762033656688153691373783513431461678622202900755728934467646836591197637855214804614800784273888055115240251769721009577611675598499844078467184285745201363221921729964218993414015242217409988605364640521934001681544293943680398564111579552071972748285523119905320525556500089097639682322586943082763651044017744388501582359230111751498252176419797601630261746264215111224263532429674024274900700211691543569829494310025655651772639470634818895155452677839045639233965769768073234790404990694040157055780327211829750877945440894758123325247598065111486718491549954739267152723104467493942084894891028695152264207448897687830888187090445096599286574025583021694023136661169754671271242086782296830499728541578124414526638608568165553437529896372274948421998278336065796397421012302907597304130373795495195716010353653108118451575972726834726164207513188903404826815145910197888246738170456555842285416294423389014876028051764865722177716659612738301568870826184149344648934893469917136352716468740977432003990980086295011886036384726622073974098157504960933194675612689436632619603842440272882573450282222634715429380186826497686422312040739965174611699687791135562087396143581406997026407554742525128355225591896905440955491066535888271250621032755687633038130588996626302790992539856787156441397085186740949647488595871708673471159051472713768257166653053545057305616605211425615795607678005251925904802048922855747562226043371945170708180806065670403069375333719783230108427771253677726737662936221511228965979011309857139948290551212714980810573919884324517844191478057686432257915859527565656335081436104777669325182570768972168579997216225774197192026482950453463055525474481094921242635890821299851339848707595680409475920187395305420414836938222416616048978176238456265410600116031032405772761999173816775667000699956177965661600993575200880521146325028182989992344488856609554077471821837900717185694777386100529285254889693027403261348841943692220708814013584403187267767621212488266613368393368778568578004856236544944882594798340135606892115438195232691453931759744754298959633415171079340711973826334326090146339580317611615385419533932884046746576295952056172751143694403078444293935837189529514857364904507694884080966846216078336782096574846302192238439155567835295187600851119240277820245144432286904835092921347076482589385587616554242472852955936420762707565563399187613550350943143443272748911546209831515227501033844704204730770455512751021271790622195207460505388919075503598814116670826648645166202963449074139168412390969704306248234824336734119515154652176097676074201413139123264990682498715772697480092936556634789790445424163989139803089539397854923729486311159024799747859421620065755324890268816632517310148021815683687103163682208442866062358165194095758041263377361805357933838003805306865878021162087249253461599155764214061680312062655952498692450269710504009764610867261881307614431416982930496085401918475292117782646590027199405210564177620066180142961595643049133835750089919389448193559531060835966908884562342587292494050705155238732370657095863309812371788100788829842019377357791288187090617004154527857153840517218907339676742024381419221161934108197089246164387743877111142402740019719293650456474361786550271429294694075101920201681987348620287599823943935659741419506807743610361674099984967919995601692750943705861361208791564660740096917811081326961296442304816146997706668365449756994776169564252621511892656952026083436250316635810791656618147134723227473587598138227633310327539507246673000726492721291234731403938453467449178493806951395781043398548998958652045641830621780538552789042634947282654626453637101604921021539582758267908841008688973764678328204768802908662241947989250659196020721103221167705374516480268036426800032382949933562782541018224409613143205199748471228296496357620021208008319022911105180416086343250328670770134219452940144546707527806068173236878945994243841951233392970206319586797308086251717166095763717103596078455830628029950331697778063780895621253542487603877037577722927766541389756006654135787180759735309788209473301969091063537984026288298315496250290562587497369270054016328378470541351603108893791043566568441966915122647138416308307420626118531790937884807468509900401886278044237997814393154688410218803438190923180433240337074961032633771193096822656098888943251486631084470100988090480050506204922972458793009977016935338955158428169139067784155200116696844562472193065263771708860177406970558882187992579888332175333256288900529042564306967687034886558144076650818318361291871484404569669167727173479642177828527018221384485910034588189151109951718493292424716418981581450947278694084294169431097489346221639974620253564015999326190728829351091855887341018726897339454801626653861240049466620219154176022368074080329099339908553635990012288282488884363508299741761632889725826707156586832644177634693307591713720787485485128461035722203163936291982503810860801407679000701843095775403683504041396059353307056346738598156958820073978179260369082972761676285133962888883611116717522902521407364895848720674093960517117224530900914021432680782079856547710084458528918731344679257327931054669324607856027704328331550914217067016516020203863940560343151161610845399848139986425965687465444952983245631630906528363509434187080964691381382504559952320309671214425997062961866715426606632300719456684315261171325256415822198113362331398261807948465171556187125752872242953639740871101767522661178934380530809538661873195089458050419917340075710657961931474772141218766143399649588269759904362455832881942361185309553046165732104359366282784280717178339703385628587275319274942650303883932025020849299442182023038529223827054990238022525001946946190582982253247147033136268020262257594045426743269466225307921288038458329321488805922883016576352935350379670249129361857320898953084582193991825918191289257219491328450583917614834417937021924854977021956298644374291345118901973471022117416514164982025900750880689332926212092040719181098222150098547052118708236841862542222502686682245110863887163290601589923837108919342136920438052867041444814902889286196090388400892489036838886167074438376954816521836291046958185594502937490649607219648863041481508814145636505923059732510240644793904815063236203822119742086015104202267738061013323921791578417256503450954716498820971229815685724227361655825188218472232640953191393472639710353908846297219489869241215788521037782129819528352696644948010523426258912721868496504642000185682800387701589768583837250366642171358846673683451315039034680954235742922946348846270314986454535891522221297784218389596759520809481608584388684718867581703865863838799777315074380997138527299678205998614064127857987303183925545169638286304048510663311992756819083402195234074844419697593992587507916831064776248115348383741881637851155211263128487230431456523938508371832431048126226907635336396443557103351895618762551606522721824326121533954839471851295934922622678934778342503603442812695058853986283544274763595657986136228116841926894955105495983275372745711696313235393592708811254741263386900161827523077893117998597013107179784617074045397799333612274666904771517185719216861369993728599787687800264545351659800164335000572920536454605099649822530718560490650293989312708492516867833338813214149216860936769468451499887063765508793543252380362007001358218471917018061164159949012426575463740823193740198063442933378531229787280877421063695658549668321698905900392662120519580925804164901655876174607705567621736943422881990987365748184451382997471068853152999316374419608158156880100164458313503283198121500613488828471046605585108472166787789977513735543402532517418276092562118464370082686702472868789176816894351673017398208441502177115160196374921932711969325106468952571967613091004716232066735986814857568391306696676799833531920298278226298538632105750536708316519013087733809789335091675970143389284683073008726207528243463092950154652810383653072739125232527913455251429119752985027626055765195966646969366459575194140449467136602667829260582774636187942566160636704020755538175750546074646593883439272893482099331687363409566510948762014930755583314194501375754196072604539881850450321352430251557836309146506674429686876661406389485933323438033681045776961644384125237460321308629787143093894646895073069237025338560050011295930954601994961201262342314101378967116146042202124941178504959437823832945073473119423514663709631917611479238091972959025768008941010984088676274451296562564553755852419684274896281591567461392850751089385083333807353683858635944161321732609502860006576745123226738008011834662356852232305303437040171728274969934392813765744000573594423846180097157382516859716759043930157427956707202591957806136230583417728173270231194841651359390525206024167533958001429620744522173237716706735136798064274105908624430000278424946306852582395434815245383500090489406147908258873119920357270687217499249884558497347712712312937240698750727437356457999190349981944845020606902433332483330420919782164484281612692186107904042353536584104580851356553218809221260622161001170888103480371065895871362576611714838711822657986671668562458300226892805022976073307012012426814960583826933651563853876312962272052152987001640455408702734633350460449874469780818179320807483965162509499574424240055792123996051217827691002679917374642034279980474702883408020182061887921563575961507333404169045419073609991239085273447842790878400069838482398525736929859510905286392416929656731604339904245225521971281577858311100322011739078750713795144067186962653650364617093154509915674998777676037442814851681679669919470775388114428618390177091739170563627078872136954157688705229625776313605009352561974661549859468396405518211404079047261612968042812533996190327968675199252303714716985065638383017955896096532116165285663342715486632334940899744167528463058031602309800969544005853548777036542660708962753376762392797068339782974018769422863014788249880617932757960343264279863359506693532176184407123524641626165078720327889117912491508852619451101600269989170088561411161646437727420362469865685483643817486522258127713033119877129979797631412738103334592933355251107285555167592343298633919187835497787659047743380312238771399337661390329138130325391751860427156551237951717362420354315259058939363908270697046159429493199611819771445165699799707354272805999789263895626150738955499491044332760827872035198735071204907041255508909793008858359923819028786238987007036193000952151817905849135717865358783351569099735920145241283647324652228704675147783103807324073475405441618927943422024036672085784937852318831908136257302918549986851762691506239059292183477063534985015836006874261125909632973114015217228942666542538724609956500096150299202867743024300200796518939066995843399942089689372096746718708538084886152417205842450407797887489141621535248332072382280855977799288472649965767181281245275507834288532879461217397776820641377727791832961903543635045931637451285406664320176971251317237228945575587371871699072018446358179993079625662168989519189288295168527700513214102402835881294208858313412911535462648828120215885034815952602800117191581277040710784688587148320431542445911022301005121300086203559258706250277994147413216701314956778296275197291706523409775760660873213173423847735626192055004463853088559645496114253411552317133401205095192508034613254479881479750888843670080770074495398196261092228965153077572365331713309311823750289722680159327580809115996688125362407984284892821004330423186810880919119687477442186338773450602097949996737949648775071600137474828593683932755222597323550332316397951434531623203508751672965885888647832765488108104612928927587239242774511482793765708511910861131625319860051879291447978112048960942877823854672606922629921632871905427955815253479230235178850733149917502915655928119621532982399668735734596471344327133906592521678215072351216049679956257672633103251475543722031354570176827702433679429648536318299953151025464712621475555499387120264736716215568135515752484669784764851069257720829563072750053750093290219082286814340460973047319361578338896716408661232590797021644395757201560989540737106306926436014104214520100882347201835941234978287535123466659393464267994732153163349414579301692351665925358614808717747992092629225856189584563443107751937538137265178006160233254361179463849615719423668553316913853540616225135508464871503467451054177716616569143435810469639972822072311684162952791499784317512941014367721917084061513128287613338439931873669512103749856151003875608090336956227171164585557029530099099286212209990329098624343093504641413860513198199031224055651995045800113321803627811793128013758587048563182442187488485979695017283603136801161730693593184362522111121704865652759390702259493292796312198275766670577785851885767347993389691618461839657346392623047010282650334707690762150742738527595935521834009947879942046728614957470543795112686373416274854003374054549404411747166232827254514973453049249163056681437829425252187116068892709453006918711113377977778237519047476731870376005454425655392412883429970741259565294870763678710986628904745115410996184132902399236491259345666733491261791898658641447336431374532769825060758863595202400032774566738247171457513833902653604012384962068825358150860201926621254865694782834741262105132039151257740392970417790388960652712465716507574688831732440211986104458836811514980437929368915548032250610357914300481904941654961841115050584643837572178202082629236474491588224869844207166306766167497824708734377417976939208150506303340561005177212158443292720815543741286576932670030368248613045509527363905722540980259845129109653815595938840245102775142654724785752627907701318053624026753354862095191249005416919327265434287926325240966353026569587807319686851724123399426619476617138473853278396261425838303266619803551113184980180889131111626959889703612231925495153865150683469772067516457079522897739696133182981995219979671510381918884691037676990545174899837584766016866728066277639629964536445342654643930795149302487175918050423036319669037667662657464364177076068621551058200046255098804157366541413525060180005002326702120652800555884121257596226995594918257091008443094244366345682415946848070337120387618712675919721426990442356193474880936204012346545758749080576495727409475513271866230359754390602269742297054671135047648950714113666091953377288581071917515955689306562724628752273434728881802680483561951491546104655505576540045987775918578997230898351161083253110657617984009433768686887672088907659330318749589013877282470202118620862063914556344462149309547506803576474261776597063837667205736738227109468333690370288337254246187492616527859846297829985392711803086780536671051125985821401085785206735826062534376481702167386464567032325444332514290697615551228398443613258139816101485612732747028091390254984200896410586990350175747727735618792155846936030670185659476260367459769764288009989842451335134054003943536146727476035461869108886019412218291770803745224888626307836748336536002418673294647900084750837117958711511445141798995677055332725760671035372929557084565055259584788619747306748142053149756511264809558491168616844491202429922672712672591674801118021215632405024190356962249494407206215216666153667403656016205405664277185140202761620185684721003045972661715008679398123899986278818115160079729275005536788798023076108649777573271840107656191166756992380796240577285638199067739339810756920128190077299561896354486982731044400798697615956054229678121741251078308246772089333466247188077796986714954937280310747880057824707769964860566679909628530426582309232554843138206455920713487289587413416945714542472587077625674245243745796156382614412682917841938407008357567344801962788538637974060129976775570990268849869544585590791899564381789884925544445801488820376654769865949653731682898629307493332101253618162759558304809383097191142953330849928295469006421994825040563926943891087515481090413909263053800836021390221305826872387104727804478292043967984021054755915587932683966885100676615593466895331691300089892602070754522179354192349436335636803907641085768141743412847610966494221783981660712828849033305893737683159759975393289696461094750809208319094072610158706251018236173169909401347535816440832282780283181646461844738817262564572010613502874962214836817366326348867840687388782596131855563715326962305486046492790851169163127564451361150512344186142909163972863072958566985604807754537124811694142368264825972522594872133398664742885814457798474577735408737551585004272170105468646012445839017858847893882602954174732514240334788480524744811516327009587149659303170998518142796004868840956178910167476132303588440268026056771817049080369566525238983781108401430122028996309828235022106535813013541348405557374925340719048577412126323498459534081597776304318244884356644912082951846623446508535151499884781016863578957225928146280664057344394211530471858284059597331514266951557014725640790911427062100606006702478018871011788056807110984709122509428181434037747033796938395075785904872823338692287892075269341126039454364320373939399302744796357988735259074378466622427892072052592652206625423625454100049127960420642119472125968308731789592302595849499001709581624545581050324458202340042719398174088950687843019427362858412698558745721776502148731408250609640404275656683827199512630824756325083028534643089812664073368364572464471704679678391052700296052660896716000458458313094402538475499631330721955462277577831024690700929723301947272867543368468820132233143123510285435638116382207317335072364186214156236614473430111098814701448065730294136871031595801737110280547310131170924245913738792503296569339881728596178848242623687941561353614033343392428036975494981135977136227585228203910679742337315087141334808837884283936811727021313501631607272884904943607841562544654106810093591754840395795473922750425868375042172687151663025963245021882350287103085057171966363181443935029273372010987789119967366080482781572527373307477445308811221246448477038895807577046687460147024496274279888555062117888471943649225566973643887528733563885247690745636128799045996599686002297361403574248844389756578991310648027681624876643392267428101436756419875348032348185316464546099995849064678261479229813061292161105248731702389452981608204483245106831829505045923381851310829646470640811707294948980857743533450579685841072287048639230528387912555117575485054433400220632803846574545696030720363347452164216950494930785465616198677961172731056401587856873817308360204405992509919238000140086877513450245536420935581496717897888430075393523063036190664986016068633662140801525757842747655818467412282127959771324017643627970012168508899296049065710476821930337732590384002827827028302262926212296111026820859975952252988306412438323040105097628837978892529079535766967566929360188328944568969814158641173004834960513714707240971749392729859065951499308742261886335886297044560943767660367009036699094142128870516225950098863474785793490289938266195285815612613817602148571731520179551763603631420945130115480571347691223989307208304781262892385082654453843474667868663134901031522549224678233615235160988485271272202967762082783865046062360823060604627500239563884206942149643255252483263992954614361244037535305315041414483877146398714497831245901661483716351704908428962564808398529430990187442616260191320899511130757665933607511441094651964210536494620442479062375510993550099069706078187071369639188291162029367904995788916059348737381353738512483853423751906482644338919535100709985185490992013369489924008608288594726565947861498174272342349846370772131509568118057129688848232067289656168757740055252544145190220760250164130709380368752491728489708536409455237391860294368630690885505789689120205699384059008546202577995160416645694912436791985188202855544974062825598454918316519051426013677122244022746968940981890037773954324977991835584023222416066314471515795647935812925400577416364871496163353040796211325850146509157151488069336644569404170041495887775701589462535696744142821043709155678626675421551940138466837807385078940571710584862839443071128891367765136945015347985451078702421826493903990597639496932486737583074108369900109917502196367242359216629029533996225195245699568493585080968161837544985152125134644303376226242052372568846848596621398092974600664556105689231869747060526656935789701430356071882765304197072003909860065436594215305938236892285677680273118487700247249690260615290849164831670681732566075888358486773414928802659812773928981033526885899671907694014514544614984401728907519203656219102410759018059426402243034653653228122474366900663478592142883201686871564070255748215566773308899794132557945123068609830263582517996943067844885661114645394173464094218391714393893559806637743854914609037697203341495287060220394370621319825528459389845950695293884827029635057985394812810787455626435113276405696479179498045465455685555507647155964974529903939727820671075502075947036698795313226258992129344794945349858677655094743697539071642923610257531090349488258141566696757272994140691204425028692936936648795139819822773157453803780086125147634948407121472678939930333243333623190634849400925303221286120085952529050555457127526321481169394544436876425635391939989636826131144369728975587523480024714580188370396795619937787246667919586622822877386397747938193269024125214018328983779538071761285121143289121648537427437534260681583526237593611713775276834527688660000607522790124353440053213243461385673829190784260875683936738508278761305516374092672399847343405792873674355759447521340678487813271118472022161646963620692975436532214137343962611369926337082876451430774443970748657913490597343886720998517344182691174675768368426162459727096645423001276152512207184918357518791461348563205615866500899824911994369319997462814021767161844508775038951500663121176618890623269879832485356414621329615963757945164153009331786231450000142561578420924929299373461848954424531607356572707048135134483377907925455025959822356313716577836763612117246084369906442653833671561613107524739548519709282902419239598547296263697287859186574052672404013573576246359336533661043444482335993178152353594030788020407403345684485239985745928571984987695628490295076394365882528818624221701102995530558085832677834506325842083648047304614957122361936506567044002308835065027537233322696551949063677970441074499441879496027638840517860971192755995401495406115153837134656863948329590378691567767671460720878782932594185557444702527094385042884985732137369204721075073378550299569675537004327660830650161413808972137802683415932657019016221183767886965899705261578250455712178260305936848962284924114203065795840544697329462162867925012316351787607353607031249843305176192767483767037751653687039351839420934193145823347305352218233745315361446848285494168291810156673689558968192459167263543349253288383004189889960537857684963209029726271795314591304311227048988587190641102882810345830642850285510244986367051634023195107665263904890312851743108679439027734532186386045341878671049453393376477904809557935219843556275998086541319354859183425308847037912246570579161819807914253884679070194464062359264038037236237371390095497008668552485262885613110611015749804885333548052745962090914223733830453155841816622441390412288992204615012246244161494340134665980310751509632796061273527470062097515106878359719372053906694435420511736535697149495458722766651762594908763841628920451538007963153032366634047090011347130615433939330988206640193153434841730670110206545322851497952937592101393972255884914024180335180031209175030791343415286918146250578555960000272826278679200607411712712406146297536413618412732284014595545446933062940094475723893955075357426398190580777636162639340523162549988734973105494798482664932705528303488240605646985413848758676455394610430420855457061996523277012413041319589149111154810105587466121375559531928884951775406199968664340750414794576312415036541898813695955517612930535168869672197878479981503345167390957330660886806413466000387060093362709243521339270600249186558354331033124419168334805656789220126293437021737276123899337115260721132275532380256050309353632555897854268895093416723225862702897434184824281334059187824212794839920898487901920982680403738545813974420562166454717825501639381833038104960176101597411001598494249435460946273587978458868411412810028355399594563507994074482711731945823481573501961516596252359897584406114834355720252786969505073893811669248993336218155576027266990644477337452808935180996795754911972101239497194936415122479389115430304830859693267126215103236279510309608958237362068768609000471986140110201492156005776127805771599359405626312905610535566549075625511630655716530886373880887366648530525161393263081510432742914918643744438817610193106638964833132928375719009593882936780935648782270655610960583785699418514285926744090460068169098255826125564285944234820115583184537460699473833140634761167185553666596598658664662049978650411399563244832305055218667533990041120209401368535116317969783332607658009217463188618942996284887721790043067518406291947023980301093055035172573758065966408812016987207569197023906030944903620114672280886722033420225486230981016159898707745566029494236802361066834122802057509018293977613376756445322152677193392792010997374577536264679346511737007637398318618030880909522084275632624765938727033889007649677080771751183313316935227061750298335041150260179395913399949224938862266654817271979050930252688074607548061077111228887157334111193385898534964619427948865591711870023282401108511823181724487533727801173316677419878195806541027566501819900143222120745852873612437392023834642695403592653420530292172711108072896937985161820826746181118455880360704445395512846077058336453875885561127621227420459929435478413869703677639980905533374081966523799831721771207383148535779266948159205160901297124279507788634838036149707583699456796836471180102048542158365887169922643190201138190437079556974493540940404567156709274712436674960324334573473223996504488336632302048415152003764954177044203812104847437953660875574756470981902263968655973184510504932767839390025968720686197166596760315730763497573222229635804732145452722082621044899506993107751314116875226171177190368106678944071960804180519234806673689327995860172388287453595401457089017254371191007580723991385869707114281037131024821268941889633714785926319110411102827642173380796913192996768449828964105008955315616704671610199835836026736548704421659972569367608649061193526822702574464325553102923651342331870183100658977455279727661637739450804318659133628973787497665217476978673167551229647614376981545785821757561930627925193135843358582811579381844272526092035967850467657936355462289953212233190305682984493704585801933215786435020675797430554746243525815721536355927635705100645188900235569654717288975369037630568918995848676722717958860530849103579083122755460754793364928362094928677417470011006227255524822213338516173293157923951007177252067490025642866592771748480555092190297662008692259312150189717214741326464531317062745709111751106381428301075846663021578177887228899359702075216224552126862755714540180822240952437561888756000171415728114959433916365734589651204861866020228529144766474487453801890494254563416262698962477974480964615966497802515509995649953817363194906775228973906277861830272401787329769479492970954872072994364025663014524658753409721209153560763637215161197010029523984172279397186336989067044820576009257476954338272299268324392077572130765665858276230938755928671559545843517315148188935178168602673560107982736952492349558668936016598795106042487222570877304345322214835509772765147657512369555931092666335020618874770218006330351397508670431128420039751821723041636226337949527604632220210929896590783541110685487358012904253139281233104736126638451484976423529427856530964814967640015211424673575104871272451195709042709608931187275629868739346127295877398667871922078200386457540808978208052386146013483269360317013785358744817420117496861402202624759575848743397731174321286383034010123658387421454843375798313092660266197425959474533707016743771025281603754427951706476953795641083908327079602956454681745242920633170918036770341988884187663419862431651284997748271743030819213637889462529928521716947346216559249651570457501429518915984218741095328561016094122588646508249443955907673982089035097921861886292357469067380911156198693718563884770279216093983871915188014926327612596532075847314741042721637175568203106107978621741540105964309003308416629326119451157825986828180246898312444705202812286645710342091991996703825438191176811168767569011877221795762780233062247454577184808230609822465931930530068862911968708275290334307521358871857555842506937555906105964385629368920242414728587000799223151224247275033430621990990996511026457501944067201423434625013647869051543743949047161964599299547614079273869438103217144321975425014067589300050951921293256790672520525906985718216574605841776317399645604354190386619788385462965580045920429595304213038099608323818716180814844344571370741088463721931136124890881325160634186913477736579807259438561325201661676215670751330239214080588390454926681477916796141002207372573224868771987995990131169283037559793382993646803022891261414323735321004203153622743663979120495624798010971096200626504826168834558787653091756078500426126829308945176869436440659758337152791005467687605518078720766548847283407263122083281000320894588480507458332398810235514100242376267958747030546694324909315450840683723732898753237797941147384672316607434470909046348939154580470404584895876215027118692960946479721940420681769275838119422673381563830064353155082827004586223255217751977363398993813721024029164542218213670586545452640707784174884619136735933610083200220208998085067339294193375105429991553371664885932687055839743859791131809331530874934022902439642459912255489002338776987171511968967734743058021681871736295667848414013112444082572410609223048503485255693454362908762316596729767903758504530963700670388306876639413356885069495640252033616478694499622521555980306561580025986355921873626596194473936856806581279828421921309529316812338118075070888399533067098165282673208803278650600993798231890731723788863620005621539700282632635931142088997607153111001049165451989556784663399615935371822304585441472496263453499306475676033419823644042541737624959197776663654900312256489042045611900938241815420579544676753940553135711394076685223767042427029362571991335221616863883709927631457264942932701354791901222096521112672306975094600883075597827801441544581256857201187130734899570894766950002974277615186887736808479561991389142884130380358706861561793890835737208024609587919182822503619862923236974010295076266502104356760580482853177504034384810187664555029294276525085644423442923927854690914892481965665004107496954862733555003625822605652627235636487865801959184531795835512942932613422582524209222562857090119507029668370115775936751556524385153772720474695683552730294069327130634240136152316519374392762009597186405762944167397641254227096620513797073808083976810643132869824294699543167341150701974421696575186419729550266050605308835600957529279345138128674435683313344739127412787691781303015427485425414266726825854412272795833578739653895739663350748172258124718828691442209860376932067232231574516645789347953171969933538772156311045407871326120030477604973560359112363062461871456456385321750180037661479512604806996659228559435997121149436386322585798469009645926148874185961364754006222223441893581397868242803060676627809162644516548391827996210732254406615741959326806446759371941938731557409989121788892040119652820794901901803938927304347021519994099434794212196336561611423235555754668222188541011722219223972698377430992528067850499648293721930197895977475360124704924100898964725190004468347982372246006236128893581167612895671836285648443160678944741366479040802214526782225501953924099547816301332971027628595857672664536559871682461965716839927380662672766116818363333081357347429129219468750479223582416519997351852456534061638054019882980472266538407812354886459268716162328345812141856207238705705794360718166834977017641783086394900204548671919779773077910057280362034538302674313702667233152416962754575089178316164115112258243219468535483020616493207433797282384911449823190088652957388403569444050806385714238273332185314306738219194386098550109760413817698103964027682818408562945969077219055923635767020086403558776007099423418059503989799405756015548915436980728213363977754725813293733933159516997618676840509495562954942805505715482983041893864659439871614957972013893279748301175777476398968598721830244469766743872873239266010882189405758808190504475671293299233359583811477873759349563296470017051302305250807685539796469653045739617049573923886526096172576551808644346593311642017331116659877140759546571962201856987590802173173737853465077269949379002456274387177917291810642688137079859646575686292944836802936594110977280971815873473677556205541063559314111760633031642415144507079278917642540542612295089209614539008434343098754747742524631016434601200112874013498288628873510831825467099616727470672697612763729714073502893788796103741191976273949978683621606195443054013722861946954783534874341036767937082178340149160166934060795320983656398297279495859086989174101533456014393274547444677055956275042432796013982225641579414790824082374627342786051192838559804538313370296985422424681267073774909391616133257735474282999882354840945246310618981977136983600529660664342988563111214364060186898659553822176232749616321194024491027776179565015851159307819791465402310644566236722077166800987681770944793653460314560375844309460798106836998595366210328559081892818935896982415766121227954543187180719707312131415876663733981297203589688489022998316401204278910920506434007625887259704148255149269907772204162486084565771006763258279561714736936965164692328191382318631670347851532939545204982261360138687338559336686876690678635691299224338229153446719060891833977266573355510972922980198336064735772359071297620950994133336798710246248069675107442934551770890433301946599581699911380070859283014192782209606458318904004275743624867224602803871585547276336890740392959770972225146996373542283989261255441990488991899421608199118780320588637448489539537667677570653322494267898343697636134919470727199761309606371635849516432081057492365131135170241569059100779347731587611056152954391544851966652836563759704081233712650182781433893216267192723685121326225041123724456741562385163987918793604578283084146139560802775180738509265327734773165619631293824121597340948572155513535861125217130647485004552734312677177069185394891686902399555197163770900985343804983313938006955117081346563779859891769985645040198887091680169224887335485092040219502299977841732242134451849214411397909052460536697525230731445411409523866160782712820556396365685437854392453651593767709719322810418801437569639484710749524295629016706728870650218528038849174526239211770213535199462313014082675741453641239310158594669415268333883245325036332207822914781278550529337595329596633719449854796477289655995786596409855560165710446829055185423436676201273563677630954462127323820798797390209214840510588053378536497331892720800522848868898250269493521394622720034635284577950687058159870991122395984041255590976304453346979844745179148710504352693478089625266564809080099896011117694640247639454683763596307824721310019766945920412136910687029239114751052343204255838193819161110840301068700940417043199715319448584676321240393775074870205621858829418575945337431591382909322049108701833773721273783397475635082447297453323340297189829665530031986686809294587655548357983145311705953248730671190830882870233580766094589294214602343373707715261053834753026901642406111242921649785071021479411755425717101820549831305277249392370995825885464164897853325560517019120371880640231348173105895677681342724568709512806164806074680273860021494905460949158526193036169032736785070834228843339212662887631950189970592538116164341418531672460874861065121812177575077600790250777250711748184011209637121017617337598748493832868481528788300536565599452946982545909038293122677045738936564686409878479309701498835570233058463083677069013401989689446186656813095640916117529071112046315806766210108317900126918515904329750889892326694460526229832584071186231212700122646346357681927341987719110211542391233765878644818352529917203060237989054651275871447536122538041390206448244018947832026236675844157702606005385176833569922531671515405666575153103908571713545312917820373398100831326874363238689974414835731031996426288510418214514922033058171509190933469912227878488428414443727259791991730715461650777397063787337111294218443533132430157864434607682427085751794492554774819937087883945427171612990216130551375040041580957264429117854316633889654985785472684415972896102423491277564725089988701354560983317877032498117320233338655601867416205571756124934512556756987750643968628433831555443694969850960705719137025661337925311715735212125371179612852494128998130122470127289462218084695097622506567638067265648965296087642436604524782504076526718657514858160877821762291065494907967120362500297766216803717128036993993199420828614925725663435097753848462858369001294534724355584137218867832342096271412105469015514898710822933500869685962316624192491827995470309423307138827674268503879517530295373857057743393158425316860506263129626246709485831331426616055665384536715689174610975884207973559719917006852653530393510336956594707269015174746221134966976007846839988931105681065661149812038387747094652411581822127506945497526126704636176832623098732205238956707200814354514567933808735026057215385734901418126928011585138955487610159265649198389668634808133768155924356014044810335101906815266091908417959444097031636265808956354893166326426750185075178120850403280548433272024733761789021633381129758091824398731584648049579734217680095622198332477501955172918758577104899779265027129400328142490264285180473223384554660432677608097260516614906665230438819000267742762270991900761568607970318608490583644468714981271966581199927536423183719434346073455297975568469708822275612364640960082448674674695139727014071659281583713390917385360107807227419291227244289629529419088927323161278986767120946428610683961920699540599882719482364093704857981115744041307994693662597501438994964787500585261385487004374263904799215505662053350716613905221160645890362976557094387992830291789785398465276740194792109054150324743830333187656720224398793792082984804204625078315075890484129651453811827307652616281857500338328390451356828191938323031042318118475354247010560287076775416957361850047535655192031664121920112621091745200662730740963676760125651608500247692184982100561620742693546754295473903009266883902674911453354711838452100485042284711993588007600747758199283729629552683611183821457137433175907447804224498079693311067514213916316563985364809145904858272482535250998565271017534345600098155112638152703071646133317667875986027276342763745360480255038437348552977262521498363960436966152227315205469920938293786259147685183274566375751591438455502393691496611097924109962167446441488784052243313630829787452894487843037709636857558071897862301480180714464816161448185598404225407811457957556945252124696571140266823949568331737434557917332226376206776984499592422554644566686251405278954368417076894703391162829415467518302189756629466143941613226250792594902435025715395881136207258119658593983505801423052391173474114344528035215449556094156121695030294184483687470397337340139843852761084644838094236584987889889023003415516791537740245452279766741480100916558397134837866498316875073579242904020575272501142287780308803073871265775458105519856923552088823337908420058415694494235211909968739340354505151500963179004499703713655353686541385289550961516954468915361125312709719488504482653176375275030739509949355745543473136409851549874000704581617718055009434463746988026159286024987029182067107972771733667601311609929192280453858593610809761589336188843134372069165918305953824546527840146643869090648558693274607017656253864595655832151195525737625034538248024128190896338429138626969965485656654277494313639675836680703442923629698569246283035112600776233027886126776246109023717743046419425850664590765259616922755725366971581372834825508739486659401929883728788523788897536968618563021435955833462894530686456082676036475242604927422401635115994515122592164350720174636882768939037566568943969523137404430293903786496176149322085936695702688782616263228952277573367977366208293875973686740130866365078755905819674479970587700394300415634264852223973425972354226048836543728741494572936515130261168435908216196319158483332923848144344091872273095364355876619628839864106487714293500596230013217380262583164755343274339217096237487946458777794840075590028438357784467779910926013930222323578720001838191307359196570504051012767987986943774127109275719746960350375344515905609832886120534677055361001150543888526607993815537201079807740142385686031754876921299325852369359761882842617619317230434112136319877899224609137744131788341001132158296839965729726273869523600298992877619002853142157850026475606914389555265536027328691969124570842302016427807265084096374545682404541466913375989979560938368792564303218039143009179104405013102061166335644402104493521868488865784782962162878159773533294400050466685328673177820033403157132911700231845765894435962867846794918394158101938204275154598015380541093293436459937885489081173453714500908400551348586399147425432370328309678174276443477982912694109497595125908237957321654821945419115857930214227208193371850168229362933526974373012343486222071290800330162780735261090606190875655896953357664816609262173531257034962653910753779843641372799317336666634318775457932473174947122046090519070867552604683973014319888463334091777632238017028863478011181672133631380988019116246217188564562874428069200893559998867803447087431061489683240390507952617056933603846083330219568026152882801904660650004038312979930476144881850208073711760191846369136117340649817558433995803303515915034604562299846167145888937997474366953800874621759686959006583724182272865740782315002451774734958406652177829923056620221619678742760834274461801760466528016910226747322274708472586810223206989310599136550519194882927832969878640208716207872916222397288454333091237181767334193693868662883865000044119535311930590678610836874837916189475132593918990759906955047259755694091106623151970029320657789902090285873249386628700263796209237576106977130482697532095255870633733786398482683453487871549165542195244065351725239427643045750600745439668410873337604644490733960192954172845345772839460070027567483344595164682161131569174542834620229781516248449062024129322689822928126404531654017792340369286024321882763098862358500365624210854799313222779008876255794227364629195442451070354859893848265613513123402295641248166906793931022467919869530707060244177675499446333813553737921772803362551817050233077574225817183162401771295301714030586784156368968182193196933898249656891737498001181368115648931135286137774099173850860681806543213544903373452198567434327378464807271659329474738050995887421408534844425783294227445273549448451529738010270252911938672186969261018846480081317246917522074592369077886226482142698556131203910059202976850878660417530308399700523424017353194409782093012423336473111051024594742719856270246523789998520763303859673015442219153207537395590462016391251707148598691169579892146295225422820017025936256414233371920204561868186901231949813745393323577183880915390084433166320050497265927450156852420192833321813908402814344421305703707415626576362396897264374156169712551833450627729483752738675570754290498219593271880065851250708200316577989389667468289061206161566451070268182045712703699846472098676918496262236874983795849021529984141406855183892575654559000455921413874403634895639819074877275310239372999659776365094978423887722044679057459463466170041175354363932623391321208813018615138469759971629100203906509017960784881124762372095000775568736347532299461661354078098441930122302369650756400804460672248555888731690318346818128322038945069417399420700964289528154614284300522949229973369264504331128552024394763229286405136207604487638747056591503922886721480654210452798577784473661791080912053267197674069468547011646087035165698697532628087689857173405384863507124978133284638172059422449425335031602407606880978188806416087918653121373789193626221323687413538926141500683960507309563165288911157829218592930767867681726514805622272112235302226489743837818888515580295638789837885530604552715649476182308225350814978493321455788797022274992750961228667247358914155368797080875927832988107591778880220133214633004095959990658463052208759091183989478644002887327994289816365215721946160450336419212792708344534416396954212584750449260355358339700501166195499406636779889001305994401328643527585522724842307756512463535657479009455215763685429013655082473157618276078913121127294520088322160199990122649940856599462205494153629233751458977326111512559936124547749804806313031767561648648688409259549567576858961417113879324389154362534229936743856361405889896586849348896225401169530334347506671155830395988550847922408668413760722764073518194099454813327513632397443189356961309336195010879988706591587463692008992996961827906654658855624890901706207190232355559398977101451291778454188514453691490555918463585273978295983071487530047967080555049979427993524465467154164681843456496584099073609677591506397439789665101840391394143050310022338631647787874578740905932691106519714361519540668189461418648553330077759042103029571760740593543980993559182222771652921254905867067611148220900203923655607180482515304748924600974054598000847860852686404358155973317453574114823415376077755789623632244692936255818965590276214062474790144432177866280923736008108718037552215271551719210718944084216685975636250252616148168319627216599177882847256153965368564943600610955995588556033900342645153003843936189693959925638916300126514015722596080507709285418526539074167647075165984518536794808376953083208970682193157697541673476198872434907905756384325331386518212423260672081584542030097851657103099644505749286205091389167715451231078065735526557528228850667063050342456010339611914470778191414734245685753878898556788658832341765307221107692760593156939545843591162974697751798500693827815961647130521583060271892852723345608386524115528028198770809795488878282593021388854305116929124453470363396486555461644572837640481089967406719779203359793893475996304796400392447485667348252970863252956244655201720732805766914548553915545372474711407666473315615784096295319194236608004867553333396269000247803179531132299306864687720595148682636781941673910827712092251714020147858108253351116523281457198032469168982710489771576815157797485992318429675144298930485075791345676033385692840707611764263505961970634477102099443285153209010383867342614785358593366242953093970294574377278148019507906776814396708125088518102055115716804573667255182668121143542932390450331137210981927398876832702146695756483677412437844039816970634618253964686365458197646853855056887326680016871784261628080898617699652888465229463325349927938991468285791413628831510855607563178604929462487665405372715267940472957311231807117635822123829576358070071138989706812526232325102252778573633557134978008225044024010809586822632787924642976460363743614522065180046590810875384386173291265771409094256469922012966211798750861295609323216634602736536691116819787983308972311669103442597665711851122502620649689400338007894345736935363739928150809187926120238126062554450376195304333300507065841695986407476390166194074764503152557287777652431060014963648086309497987286853981341796952927253929867259319107507271987396938677982553942630533140703212234751536402422992660561126850269527377537290477942499502514049179852939475446723035120039549765570297063232949003093129427590408585777328728998748284709976782275142318125012137682009602659170031708106099769047753504719343787400129854120709141350358933348062332874943289764965221371555451395907590819083314390207794105374545179232613958612652860212728268487546600301413242901645934240429807980440231757723966201389248055264604562005030119788199570646040148223437790740811101108067610984769875112842573779140573743098747370068853516546750580218628403290257571110409892264890901236470584158641307317132027591565102894647307390437223850655146317882862832406447187219370359740803231719293476185507688220003472388199328724153546966319980181941748610935012342998500990824568054737450577914701020107989901554290638589549921760403931741602039674205217652355338472451293601036054870144031133572180669365908772611935108012467876039048376204926019243506637006805763889987278347626361232939792659285238990010747907976642981352929114224429885669311993393403336724021714964675957069073276826714092588307262659663480338542816593391622480430640852365636747881662838891008420145921144180528174948112138256934274294661081871629257849991299930760541220237349515563604370678693448414357245523339136123187358440282925861115005294879760854008443867066462609955372425900195217048466041071445289032803594790961601406840369741520611309456055773278712434259620650339531126551376541100738120348195767809172242805914781381536032726184945481367522953864526893649799074051800617788819496108483775443069216616099294066036591201389929773558234125917889503618180306008840043842733064751389529860677051019266971160813156611489498440874653646575585176593052550182513503756404534085419800238415634417500003539754587938345347351358909985019919847062203775747345610438669221765542298212915955704205933147744053628080308619150844087656753497333980510549807931516456071178261857161848247423961688748776822698900264240425164367851243980144774771616967747407573160049822553470278485015721006340949470468538851548808668430779401919881955220073116998759469028704756294209843074415406058838666138721613872630185290245998431129814286943157994478110279889382664734048975600595585509787270925302769981163470120840518735573311152451860034384689532904351086415133291848355200887507775229042321836389766726257879654453306562261896667620863764228248160672606312806595559983685704861474565862640894577787515874965251604661062418880972300689842951267461682200541060647807309773758533288110241095738233024044503448088724251950339332526784269665979742444186721785953290866165623295534024245404133153419078174269926281625695969981754112055172644040912039235173694599201319791666461940669216483444715118975439782577600420899450029621901296287742385411198566074167954550252145761958400962173144759166690158666849171927947431008930604727071759367996284399041571273818370192195868277796754356443473147468134915821644655280758204844672157204485452834960285297837771606199867728046014090896055298440324164820366071211830362505188677947620644670229856902807883125775808203438578183957549397493188037980644368469793488608259616498252022214411426741533039668334567997486414779466061787385714207871622137352320203241397834480133766953952211213889086348481598668336414927592849252130144200046669936409369741227428572619658255005852592491111242889037355386288424377444487153939980493814025701167255128939571349203455969859259817444971394903909564554872327333199730903181814053560581020958601759299297774237698813421676146539803498456467082310530057136581092989321460856706517344863169066123303461189138575131088649455897027264343215847272156690417388049092239754544404573346585081651844642933280632966138737823687248829555033408948433483825630052601593479527333682223097003904068668333012476177667312987097910221940567492400510252094467122783995458609424556402807418507312934067910027673237927869586569806746747568089694255518655198670296504076700370083385244969934248741927105332953595183422555812798566982414242149127326501278309461264682411972995368238678988961571593539585256039458941155168928435201012261784752919865006497162217686472785679642015080034087523648562822957628543484668108481030682219113217935489294086582444978387619956734014289725791593632268960372963319979072102502687498146867487506629900538641568830578587165166387140022317772290535033094596068719930857518658846821315358079388305149415300313011816420937993198299730593834401761978047325759957400839666758763098924836489763100320303498443259276163691342694732089060120237037951590900298245885504875499403496833569663750344723368684101329605959963631053631885539155288340759366703479742474428865461217349344306045366039957403039167475086643698402115988891967261304487386650252662545981897296345219351398627187747623424696965547589782572338321502882754782199827220921444005741833080638527330680072737448508842384565761273417252916043487379654942001393561052891907839072249037680756866586710155002126439677114723214730801761221557060349520542565304988241696126890415302232103927598660999323474191270938514203733779046928453421327829480031114156752146484664197595162283468658288291871864188531025609690436027916586257986917646138090237066752467545115023430032726646223705764417300406613471064535092173215049535189000722330016182365173021834479951925773800333998159183271090074770534134416779503338579031163603572080884872593170171925869429903120980608951523063191645175207773147345831603961264002928478788816995038681609339961746360429269933191599093970427034448915091956699667216009074942919576667601234502188183662862844857927700489862572737823405163679970625987611999763092385406978375033382492018587251236828698990866818046186175978954341333450998004183960477815306179173746313303186783977212317762082974582360654127016469921639101394956941508780571164855319955302149782423915615557873817432403130984775224387319139221650458138668126681126253318970278329669417400085460139720315859002044923462359272549802951123619561224082325229162501944790480975296773440032633051244614573463171660878222224215314545986720663297779859271315365329056787989568038311907761766147852316374526473307687965065563469904659095576582369299791927821096765138669281423459587667665712748133746593713747857442139322891834493915139564976833030007405370790295180450852395420720192146152782221640958725931961199616193042175897254640273609042656542357108784432493847127081138242207042113973512955581653657141306600732155279478551614804582000687654984283624677009953888546184990334620156554463870021486682589823584359199192354376962689911625126838907567274743585645885390860372543691959862024547553422107310441538607596535859594895678732020155539971716973711475930675003894090995061888547018971871163034832097135281140719185847063053394129869650345606179326141945085754782361179915431712897635616278236090473700014926554916511626062163260590038482623901227641176792164538328508248843955522359863220440067831145684048145433763386698639202229124260823543520624932489334206126889913004364151576254767708150334915143397064572775254140017328400173812873889539725006919710058011662511315213730383570541791892118897744639451969774239378695460673016494003975809155975825646153235882304456887873324344519873000015179078067609696605105344336110258457473621362278866667278090850944164953447008957517694199339931479301388291667460268261906052141403983789559121455932084880154116995643344756332052127062265359787806277405775782337091173187612574374787215292260832723393879713427116422076048273919935168990681216842708101754435597258886709754427660884283962198736189210916096132400325744327704086128801086051166923454078432009083682224014030559975770261142208034546121034363525289370286148187575036645201395532512285257098577911385416619280147866444374672450373814756482746894022097109420116096421407301386734377139029342780344482726081140857983325107034967263037613180864600795734298938918632058784835622451108014208471833124198890112716302089042788176405991952568878262743180625416886472763987747938454396945835407531892961251791651208682734761716105311602090497977716537345598841902201223007288795582831576870655695200657162369834142500658122597894543144741147066236694744298483269273242081194802439540858773499663466747604530491796128660417850443039408483543982535599334654535562676289778079479841584836254623399871652818300213860303530415567601358984689797993185162550919247418427617485549393976553840803296790494878283286557336659797181668387299060148666373011690688454543162555251327826649533044399254227621143607563825253880396716927104518011008189184243934277331631043133953928779133906246540690641955397959527948523412336070016369882967491633584313148423040252163444933191096972682424565661617795031514160559858374752913552223284996278727952060912605501287110762080259199112130021959858691165966056817108671145530906574960184342392549545316540704037366431004401934059189243221799767713504824981778624132308361007208493559657180658613852030019597657756632109082153802777760600408355390568307726559723904615723825356050116640543682478719256543822517049686954681783970075287116841825281189368172127463332378699338342997502672062654678791926783912775248749004685986923309591709022357664317221418934948554686469775936166274631166629904612134337563699555590225535871354358285713363977274287490596578876464684571193059851447757667809431489333437069897774891947509418339834078867067838668012639355203291163931891419356578632473716348944735796862414170255648741860650964037951101382069686198635142672350349914309667175838644437813229832234085863317916814036826587328535524361354529492415784644863469891626708412777656938221509160564090128037103422662567405525604121218140022946747113540411675194716567225720950988689907182714022632184976038470732449171128439241420642927023483311505073339199647297912243738383043719985216683132876752370374557199582554465486972284890107122787481702016038680445240693615932912542751234551995829155117664196924810452905557965001286613980681293778959728024664733560866091870154546221400909716164916151369831128549443719016235487801686157297951838145681867301522401715235476328239028833976845122200232312963555564657664217688845104724811471153822803911658865271925290228851548528631904079015549946027831557854484194560457995192871023104338135649415466965807553437522408049634840595309762610003144536222788387541550478786003068858084893241342788947532239608858520618919972859180221424628530779419014735206283372251103315738969576242559875470012498429517222891513092871868731246907794659292451654023395183805086868026139432320295335357886170204048252576892765599705396284896180959561174318484945474945405493676079428566849104236708870212089570443860924826631352405427638019415242661620582817698565440985848491118602266856552616512077778596119854340672221389527830731868612985609513249640693864501762018244917838599951583914326350914794539635486517427951294511114045719007989140329308627502441853691929298017737823432430645879653531051274297321014959968631003475033235454272782709617330970055116669283053202345094398325264813376784338505066522335373301749829409432408796591332659071651289936515220838425600703248032154504793046549217280389122013450817580144215071015326811237863664658168377884453792687035287597882670705553611948932954531292907709764642159379298981167864023283881867758919588686351504397669726405263596109465869489803542227389956746369013967795266510477773168435081869354439599575643258600814242614764756531332869298211426410924901499664137571054738741526391124046801765002352347686332970313950859361519976695332565220494925534982996347005710859507762048445786255568098213164760809147814771905124648356392107818937916166306465376079386361089214274407318141901978250572958678415019684031017824918714663700752453016032169848244535645518309317094621778933961499359110874213676364510168502547254684414458803311148999460731408882385541575639403147600650232259373853932981701419879490104407279384413276214288872258587610129024511897815461291801837910227223466350832214822184855010776779289984870216645299839832875418241465669257541031946693321525783926530985131518028986218077094957085356265431598830116294558108242665267006537170424901208022823961194506995738421669702169868623956107565030506838655975953191641820749415991386912352591816280178242691413323666908005543170024891701965463873781844191217294097118362861757396969748168568638362157727034074513851866469845414040146574898657436575277779826704973119972142738598540346907512310382021120551624749223307493028493459232882489830560140256270673009226190665203739103748894725811579994933600932554371403340253047843674462856252670649610865870793149889122290508955181091112710373928274098563424152090485885003235470888303544288047518168351418392635385230747233754368980771055329546361307636503218777308006283848989412125723234945953975052423756181352049797580496586299951628147245986622537342398284202091695324603533288382168029438611865299586437999486828644228953157238070538827202045761793120416380190016289089975385215434933637193807400279791836564719094326073855608484186515001469829423511090244950012956079281143709519254992411051623368262510220761415802186535488637696191533835817092356051195290113010333347207624383852313688508611864503852075011053591970631145520917842140716226820231148806139182905423335631543458141066800528410948377910292477291157815022648355207752642744943519714078618960210502109409880592930632561347302482839250258886142587911996076748571137528216430834239494067466086800068448562068871138945294344181452700252607906034155660864227677537217736637005936934615752474011492356263774615629225051049636060507570201251719582348816642221823636373777142674206784538086683959668055946532842564560079034515988982763306436990106703441337223428810183486277095613179821670068357431914018005037880459873699741886375142042383954029459195072067664278747806036329707374618461796872705169733214602518812749352037283777399248143151672183667427505185615228631105673085363348806427460272343494108474224222297659535170975920782665786486132270426658077254307597600725655922765923389647167339940796824831635687214993387059634442077171718192030802338060636390444196284829321988202592318829000000675759222421389618500677273295351362919052140387130968302303885203422664202455121478843953167630042394763292916594742288888863600635947481386994499581397989869990128725786821903094468588033393459692767762281527328301086551438335058957770429612085901410567678620382369529428465776335823413225318468670169167348642194810189137744221976139929933937991731765240869071702782126008701910732554057113951760105961470989783570890664769984935334137467289025339641223850868676659290374258928504377030125836182140927936949707839585696883770376225774375415537363982928203373263335595496852697990723605051145951531044720421853637854113539783787027179831560760559263857649085314341831342700533955661586730757788187933465669338233322931652395853021199148060715854513647727701161193789530958599844003169883804298819182504958994415483387405539891802051051320957683290319525284445017250336454406223685426437877350254458283203030493115362037418199023561161274094832693962120972687420739475630267924167692381040328443127621653899728322671766044610361515052089492677077478524806423539657988701570957038013740609544304796682468080643188948807424853320006147371748468162205952918292466455524659674924557875879062749551956573042454601404639032586676234618403247817175596440217476693681860468860073457818438573361482587739557966791759520807953697641631363929426067367468463706869469672104509101700498268959984535346528258473596058183619531537923813226658922831317203835213369154252221905023538541849036923873602735728041455630299048910531680477011595531682955574973332272863339090590063840782007374826216660565475745544288345918228962889784862026166872273631541732859590497836549055472298863344841474502995695008211593329515785201586620527684696321655889217033865851001735841821764746213815565381665118503566487505198990321810083803605191841264413930629049206528218750179351136018617443115510651476880947936073897389050597397804998304959731270234866636463001257673256177635412354459507020503433415598212396091096271989131038703210762902936397701491191717512523197407757277047819716693687354612494390284413050783048024724480708139501534602856216691937559161513893286224525994683812023469294234284331260501966432520346729274643570806199560167916536426011561563984718085733808130041874436108015252237225573466883089176136486255801314270669665954716852288110251359476638793176469876871448816588010780168136293199201620838165706279022682109690864327829379867894994938581295980583917560485529209258028517960169453676004438095132681589173984516004550355651157846547628019779920943941808367299136990766282308949310349915993154216075693241486031602066455051638311514737664063415796579221564063204627004963438572305070275275384822907111965815047395478585178478112540474789878401798486271557511744951476921835764538308731053456498185960306059594665096430944447471235321816733191665950620068259579741965309271622689922642000506812474621401651709289670134099738269436581339011234103468477723006542667138928051454276976002774502407780533237831682892583343387378332423725371510576443667902933811670520430168145650147312349754814653751737263173138295250829176528005085320416641944141285943261043953458308230739761518218259066516241275649869718055296531818499894518272646902276348236207552302148175778413977313054516800579106676096495238005616270321551825679803418757774047325653280526939399921629486240990005480706324463566506773862804442120112891043179982371795851846639455049476815036304429558486187618236832308281671915469889875653856607047256311064930690845107376575901411285936328827726883595798681374234447835669184380011859980265948824581373925785036173590378251145576594494840195342523274018362248141824410228336041483117910867212292787862188010283805140313135071080329488793779023043927058927058978406354987140012924106126657709657112030538464377191637014144144892075041690929783413344793498871182726880631878242648061032597374892106380764270503116344557370865154960045812226562672232793460367806823196887163169145634358216633336413780693348046983348064843707186185961466983893445830830452885853817055755126582007178787047765988208282084463632958433708015427409148911732131650570788819025924522197667411726281179606229916804722380075902083559907258276447440638858231521576103940227417186064221811278825509526819065102283150828016681855677307585594324422722284651766977576019097453183564978528379857407853605270291226085954342767801947145424743003234947501316110992845483377687905853477000260323153902868136246179490784589808192950051275375839322287292347799889293803379298575561092500742100762527012029512521424746903213335256003262338605286181484628640514508965835333812714927416714486318113050605880140636484098444528497257615595886415931870333904547905334893084440545555408695562819438150707303801883179021668897737556657012053913645575318729527046624247484079438435447002018973721099955361995513552836589997279143388283842973823245385180492690058477354732267981391387695228240370807434000282946820073857541827246690319026812151076968638942094230277874679386317467492238932444373243526656880368677312251315817976954821335487972259957304474941577518568850319593256760309561811617687861314281412057270305078673863252293816208858186355421666551609027114531186924470401731658384205999841136472408111156089346570973630058157739831420025904969431231871249649836803638569036434373191257659939804178809642832944377308975344473344943609513042129480248571561398087665012867754845173279030807076751974234144963490321051544124647235531744564238478941188593485179928624517795883355244230868878845800487088033932929051206663124811799307721934523894632667836295532709195930910122747177258229334487356185675784669843365107207791075432389851506052650325671685956878772029519420265669115147708361361980563311948650088629155852117235031936943727181724724944372681518502035945122302169671414127950555096371671607945659256479160215518761910726273879776369165492809631585785280810930995834958133715120107685535609381466989853227642752723738648784972415759146469681643622724444148726440406422411491933110477872731424405155495435315541260685721854863139295553753724505730226504709116674340276133309680583331210350166060580490468135810766805867137329937163943495375754103449110827644865657284708731917477746473084892630458541225581167989514273924053603190419132912572030459789558880800583315499935698134236838059204015571233790602504988679624529907387648321220858744913241097110190850746121853020516058039758758280890102101756386115907786984454596342336867130613782546758453550632750641707709898569547345549978723579199666017308997321741640631580672434022027969567856368331060091492718205767243919518325357133070884541392125572949933717451440343528870815159326607126296711658459222925234430482037618878154911365482980706685498940823493400648108996813246094715467095952728432868982582734258032382411604187078562160943753097368169136131596809705179155550545314158133731377552504124237332845716818519728072075788196657518518519072366214454416972609664742214699797459670523513940618846140613345381002231458580313260002030292169545987062503317829162863060882161811319108759856457402048347881091660992199225073611232516052226039831021822894698395846894297811990909326679806707190969029718537686370399812983547233543297265687423984900351502110527142836478619667325326853640537088007254345223993723464404947861290565688648278231988978419201398318506781834008704524947116687433963446075514301141694022363829558865793323825197893360198089610484008878450056656411085413679683087721974901715013284392700886878406660039629311542084678009471247763574273878613301916964819691086826879438386493377364638727310927842847214747363197404854328744179049660816593690171829599141300628617525766766404718661970047834989112003517927431681743091937577140120216287485233378377915951313242009416651264345469024541803691555482930629701693463575411939403130120320969417289294818261984703459873155573805033157871930971283277559991510027951905954795027760068028829872229594662533214642958789386629404596583883879493446837052065873303622820869065770230119236355737163704303285123776749619068495583614586324276293980355109975423068864665713092785611170677017679034797049915546514833086033545473864625843899908855336526236371048425194050457729643615327909039223181531123782573862703076770308646399776132899550851619541345430148176381660449585599419973218400072617595178622732580486098529087732484434298890470396942156809173163733425770863042905824181963962845923755088749047932241161129420572941785274466601398183423669108467496702156402270366496877394768986346016630115618649913172380269395395190976591958474424249483752822023576270410861996094619344004597031105219998036006562227929000393175149321161238383377410918981529078914516846719876362459203931529288947813496429611392393420854633287438137870189308432066077608650074199846689061317286250229024315398639853123614876020257698756452443017395812797202412184150677514169106269426960849279904077140176945664490699933192284833473541726514136693304337719894792111999196313721425314001899712612175779950311193895058041438016648608022334841751639148517180101421500691889551102843727598591581219571547183954493252656002542625425983367881775485698968923622081848156180454262524044069599328025556754849970757192588906833830296614893238660542564113671914545797201711540574157061724498423512738391478273043300108191699730037204764383836551203404887036824475688733868910998627912310623307550252550349231033960398254269244060502285389102567045313195916134239699787964334819182666113311725259673916706169382302041939184537232070187202303490846831508531974142828186609431707220335347806071645975907520725251656313992084630144809080592593898662118357381283605198142298322662661509745820664626815403457519285812019243727729770327280395723586579421134646637173989455026065513430345730704914092226033380391201397999572886603232622632138837594277367215776009033015519463790724195496793402480613793665602651281722267448177739085821264589208827714566793442923971035865912504478123749422711944699130034769086753224800208413818980181087560922370955165047548865022530503931072348688708845625820369171369163463312150259093691984108329826980312446004764057192294108270517460952799253010732863094309605500967508576548562597283969346001053336968786393122314059750537379814541511215931937896288291871414571491571379023031616106877231990695157273477335380149408944137800794654790145914176903168143628276169816720612650085844331874799931423788485023291932958985871440781538534212638886056832743590077411612498761099466153328794359603695161116278565844083614329081380870296273023199058481832787369292774974154385812749816863749047797411663297397517175493303751705766762599689538247769789060335312596162543188888127802226147390057100590849348988055826023605966968402120816690499843630990940354959762744075554212790754150285539288426667526523116800428497485503500785316915293607874234359638007504457561387802611471391691743236939468659865026250779207718422285001564636885238867305409801133852493813251626462863796311439621855809975362724420165435569135343650483102821334229670138700917510445768841846278068335039671846797262651537669512998116535889624702658685753975079411866237253217769599949712380269599244951546506330687236742497592870069191587649670681390585843408904571015973160413675926582827432170041108125658259195756798184162209067968483394142373504886721947960204568569540699317926389249421142775103315333171806050226941381242030884496645324466477257207000725032586074392013465967208437739066161927522902825351637581492288528357125485790223299404794777865519429501868331703046324247623147654802129489451389601857168269054359541147754919940620236019900707557389931056683098558686608583488464661698410027238526170338300435202436763975850786551189426856491548182442097551853120439074983385572860502137272270423725740594618570927249217893889120543681161884881075358146771212932723929373912314869826160185377623048576948059155312427399973314206420636482022680618105978010483291750728586759712594498959748406400550425256215241001070649435036510521317337694389921314689911337029434241573951393229274059823382204641970363913931358293055472297253301004415900739453962614871374142929427241149303833712477155154749909135544628518234986295430551732569322343844177688013201240408188081709651417264539968177564214350851254579048846494926395811835584010639049864993011298843162836128609509973499223199909187668466228661784246175045458491698881962019829448975848501707134662727106565248119624390042142693517926409746849881471485915405985016095348374055155884699877115406632964086606499094039509204853399125831058236704673949919255627807090108182054880164996885483595101512929854224993827928772315980241160896944152288205316213927698171873095251322652481787401624154431557366595032993986901322731448452654642578432581877990442963146628810200064541321506546137676536525030065124631107277504766240809096566135732780607134623491783452626495308829892920326210010827940373408862199984247349712068692765268756501621179164691849643295519376116063218747300193343048928839490157841301676592768829709515912819690311095749730423423961605819512191490472086358127815335667314385846045676568974697116152020075641653722615883911129456459295505557844337736652022425504702154914603057434154876240763568479676947629276591674476800059293722106701971874222267306447498039444505251030674319443872214558568225863471839966497454215289994022825032073098995512314543635415574089445882186388893881377462800704904905060081093759554476599637563823458035743791964798187903538328895742679422495072709457661175214662400575058688925521101989954994175622412164792848975071885465627994571733639449472677450977539994607659211702750607822936368050010853635787994330903794934960682444074110603267563129976109889128919586437405259757678321936188162492096913221777895301264124510014915227635019734293877979971739861336027289364504508085387556695335124612076546118445597673133166687107300252413840025550415796409212051144683076470190171743606671136632416623342074412309680533532737704754484396217357018334206222695328651390216973816625720721941103338106731904624862190473844081997305497124956845927461307743987773629917028993024524179921345101095737551413349709827578418055176892096535244975774100442087985495864547234765822127283525628464860278460530190258022638846789956567240070372747757211436111367212722415549277755691134541738952062636668388883812057199840649508208785767511864936990269077699471953368075006017604612772948175893121521551073604566694318133298738551099007923142825126995342909998200926429385867106237843313727731585956408834053881420197969762392317694551859740604881845785487476617282353842273340863617381981114347356676874096300198538225424582663401055582337630707445742236768960059106475468542282976152741265800198820582228597569873331192967412701704070967676964415309330092271355979983905260481068019346810296329149716890659513738380411151473730246826528297641608069591387822125839808647746103574910994651485720414586501206334099700712953069350360792479052638816724003758963184713749734354558996670476620887884082834928611537289715594856867687319836928821221554364445824499830052156168663872805823246146532421575917144538679473940827914414791577907086835218592112440376884770608864253527335641419921412415006803947988541734919870975863425185091236918536555155676891003453932592299701673068891254031852064884753365738071201297563856012308699394743369759724753952858353158483727897958403378826565343804698440330219310378380113303185585384144693010810069632545277149872412034245197826535039179949502471337219003178228410391450509332352213902895181832622911967644005883706437614070254052332763390744618573071333122310037538244904823768918338535093230689946643991173709750068573440256998609522650372918129759296246800686841257400268359583290987114871942259510326530137298592113159829044274259177557361777708206127403061061767168430338156138505078762800418518303070049312591599881171661731593714991541564185638780542953312430733601368771436088755486161194456978981491726212269644173159074223192249073896008941139839668762297523922790281589381707571688788052497866316239015140235540383314357475636991552607655464506385700871491611964078146674614861817758372577842369547028748384946587347611699530307888479159366548551070276278459770066348939925824452141237114015039975796133082007206762822426260133359520321054818090057589822095914654079769936164576892739505128271009446945198848019732057061232589613173896517016101501884607748506714775424455496342195554348179717828133607043030190515672156875155483988623859522762797886235028210156859073671729826126141999059030616227054560606356071908841385519614882937286887423089216969041041026498013143421247000436250169250413343818125794323438193264051016719693799840534596076915791293203311142581814273569856762905465954747163767814651445130602919832525686996013076943795138148237890784121933911430624164999397554181607959664740391484840220531910262409598218048711742967813836493232941550026601041526575526729680373131331655805403012322340143912141604383758482367349201789822280544632104568629665191129586650116144656191936342579099629945117829073107521302664760073107455056642483554361945138230995913458957100708738303309841288741804301772384704967041578326963163166022694090519173920491582886075813453176553024013287293158302192477601002941188281473711488439331627067931149773325418304096482769811001083528238829118497870064550455862509678846504247500942084966952678003145971860078584636436624097539999471242683753682180521870080696530327721527154602233661741857868602111684178571006981322170433556289522379837074299938221421495762901229829095186786011296953666247611173480580404388519709597336006891082850631799647853032201534965079964817681108970491290677747081690407406107775452671951607017430191898554980077993912944275260102832142418615428694374157673013553586676973338605614865995428031093943137931224637660439196646808476154615949814633414774314910089862540166595084425305857053660151048955419864060431303663242012408020359266639624580982565561354158905072631370348061158496982928319805252977305126793692443836687875730302662150891256094118444426994162571148721514377307873320977610172737221883883423427395408176254819557633194192963955206813304960192899711509497524973363295278874880631792158136348728673845220568739826590294109902397994363741451025908200461530661862592832431831670277232978570444550238064767567833564721692640443961845330108100946490295014611267064396530982130421936746520447486087763372159066732078664918836826483709625471283854929131711610883234920157064784021929640843877783950234690171773134453770185111323217943435428760964244554999409380631587098708971325240151957187437328444717889692213528548101320383174315305103918076319678439217822047594726861549501330137743960442319767197518607771915132816141696711670982868591646934407275170778428701068021841114883823311191109222577989792124160753498480838957186077972369341329806752270336357906773824033916510540234926121360487209308024895100359151903858983992943432760765479418729858270935967940798695457042534872715371282890760615799934678174240967644310871917506738792459293346251341781748399226970466008018995561897985255336946041317914530174320563747015190951062406975436957647590629908145106191863748776816408620758593991000966957659486415982601182966594120073134527482015361476828063815858439980481317951247592473533893610591578452445831875287338327261956740099145335356428480767251566639782571886744846574337760567381319293225142683854111994263381080181540534250538876753259698971861856379783274357913575385808054421085677568500870915599833804816513860542233509569503643863486227432774524047109803901687038391936328609680432857006888190242940289660939749597434610687903251303906325338787990995321650248770735276682452173684934274300472047680872500875154783370847190397240849692342212724691003652165864577925210737236311538568243996412080127713994581012373308916067075134777324153460813807905349046197178612699053199023071011093878143678836898205743560284681532556908202436108340437927663595321310238732456358210525051361251945575948501333884766421985193585603786601328915028090050004048613423408206843079287670861788553339045432018496563420004020432208723701589068255601401334514411956385614600115459267160239764672701241052557867718102797147261487014401093010735561298061221582820095599574557038938425075034244174160961681263590156898789561219508485520371139131023882599585001162136778703169770852558988070794252105132323660973648598595847974631453683693619162845777515714281882250912626705636906818930198942211285328510266908922569676988143819872678202293559242038505502134853796078807610924389575927824617799115278408958739508000926126312643717299576370616289583431116151749450320834438187662198429263823589282732459290025548420743825587791201837383069782977981507580302276359913161787748978479153576745997910796933084334217958820256241200815730144456690463104510925241422681872563855054269024933223406213984941319820739373186580554053720247056066226293617716967194971277201669395110208446431733404604937799909525776615864032795471611283893183943773384630203021915979907491518485798824504720112112186646366341694457659585510972775097237960871887475315068513852546635442477696289949314752697929612995345585905073788887314557863867352326348283512999647239277657747783046135765438218971770047827237814725647064390420214117144536330312229911130334472434045378083420700175101886819191021876942803423798830155706795282806860262658023522178942311075811100827075197189074289035652812354802839436185751085252670251699999003169241930089501620726799461234919071932851187801297211859845145675135568736828100159846234250903783410783012623814345022585319334384687229254670736383335711560467376851652507660792259032376364807949979758262656162230533136681463856601961084085136045145280949971099833868617235281919067767786809504398213116630402650350743101966608660598087034512040082563610199124320974920638207618322541366992766708766115859083038596188841007557426956656060886460172672327295548966536272854481432610977670471258102499795243753764573195054335583894323497680450926163188405081200557358556944117984845724164320051451341871934621179063207074315858073109570777058072654536045112638571996691050897699036640886778977174226502948355570851227251629633280644553870012664989438502681989969808527478081945918055489183588844869654663954029546796724726441836036662001561821751073754220177309375215331313142766804440307137083527063259653504275522760423160469774359928647371513409663497061031440020486312073168000059064823115569774793847199565104102857834825955061076186976359261131725141279383994765540558953202685882910247899847508322347513541623709773364407722919654781429633710265889579670986485102685100328248745653785553256056198115360783527222180274646071462063623384158119629152412376994738306774745434309184832215530921568211538814149501067279751125455789464584122346838331509741673830720761998814514578038930692262221393953043284848820202277033384868441625345673692374600479047425986852397018153607667803932877858275850201072956066478848898457551983708499469739551286794513732494606336908015298642328186419663759141626642271805700078923896928855518725288861694431718266991457950882479952987855262461793325699274808593208459243647161567505259674133808076659469835296698616618643927063928019963976648299205390191154637228770851834442656220735213819789414644810243684694140235815109673734259245951023590783436416270206464987563152156239173590510462363378717586896116887402833856469463400355694416417307623122833809129435168676325576997097130284708274257261702626003190685363902000638638117985321216285772468900428545301812936310339985185506624773345888518824911409181790355521290041261481633327611413109898608564452202820013330649581157037143635392912141831773994071207252153884260992072348432672527065049873870681742370234502408791587115345516927654682861291865760093423733070106671619727569584068285618078023589310391005951801114257029516574856041468522841805731806027306531914230923797244431979965128460764788957249773424430122069224049759746921013334058490074528019280537670030568519677205627684287791452989060472058790650275943477750145174361489880396558185685668841922804057204522634095003069988825517817056358265284325644711968443124143142228785660164929200575920994302671148972829412518804394096077077042336458848225984264805631960378343911329755272736901731105459947452550044624357698384221543569925644068158385571626683275727037227706186074453660971907463874834031269621085841535511455998331680122326334156263376424613748315854756368912985142109165826076535283894825837527757537610482081017080470257400321704409132005416532169286546484970665036833962237202319683662093107899862254000797092796844221616597930809567249819729816072411256916638135726795336025947661030272375951005419630531543261735387495102200347933070969760052312249789815537374380016324396566640245287964837867759071877183301338686765749412480411619460351001594265996375679479270875312905106092671245194942716735433361337046267180877428051065842035757401011109774193355838937010558308263905331199399015723709622827561513244779382816573182052034072804998585011336797393706651946636428014049445836931264929014305765450937809671339193376673778006236138684159393195293999234414616167246004163895553544099208414902578669840187149445312388595033163371406805714190298132279868919002276162125264088356244008392043827447395981469595878433215715023407886606191471662074409102571437049121916362484342071460669953631548597841951294053805690992553290802633541192360343056931939152016282727994502382731024511769075328486039890952590433475558107451688906802334469538435472787151569221263240481788661885502834175503472602041658521627132176610897747289362293511876644169451385785103834797271074809968321564323061851112234959349449342068086515083551368173124088815592127525671121010546172804249609552006017217013300863060264837271078461115109912987146695684759070237689992905985352085187648893294778803923162634432798694545107311300371993183469531772703543750933017366007600197324609755204938637164069900516130147501932132127990978923565027185243135945681640598155693257455878904108786065933412320033783860453428164933255691976810608612634589191502993325393970724162557109395181870453664771585028855972870072837460685648088867648910931374363590438897522843337784207618712145439507443301257263906922701985970737896620062123897784942066967951693680083099188694632753560179120272113096049271272393212785927410358768437366519296243434055137814592829839102675059260479209702369711606405558192807425832312551234555614318393008665445352831473925992814792381462091526401264262785002655377828977085509938929267289051172502796973642311572246535037646145379093719068457517610238289232127024749702732217353525252371501819661459360630380869790432162499731938569655180905622628509017497453918405057254038280913876246446246702990657909471532048024216365650171431909437563017124178781796450963202796661947085670576479950783694724120365817500780142793140906452250190459982094684753952696022373794053816938497242576651642013355132234744058407545699692271762094823161261875911940284290589445073658274684089724082287839927513253818659573667870442959609364525788072382497689764157381486942513002235067872061523752883376369513916211835256892910891209605588034343222909958579054096530275160165966679541425643564079748127939488901912747299888482734083877901098193232045997469614328065191150863669350931004136332005878849031900470340250759809026283502187347772362831872924078250116154537370785465764791775637480450371860986113562210293842212120742633807398715622033267416163303697009057774344306885829944791644367353699120915588454888353469499590132624653773908718036555887575738756698932809322088011805693013380568882729388096185751000976811903798720833493842711077244593547773255192157458808970509885223582732539515477191436944562611079831274912966346804689100410136452025403769601907433675425837416529925021567070052074058257853663671608451943870001534659131622919044334469251365032519039738891142308850776909462860074021684359350272836334428244475667868304563006072789875197253608434290027595258287877295822328050680146865999946126448497530764964192079228878556062911555946002810817462962730549443197857461884237740926624244719758245801557364768957876259276513511892443131527161300321282027626945764183654687391966468179632322774891629759912504872468402709843665182459723882009321661384411144614897111074419401757145604051239294668143450916708971217621008873318737472997304181637071136856672303002091399474495834598821591616065363351284747404864697103665366117989525459765179719864854970360372160224546704680196146569884263329730811774173854465494488795386500030017317208087537300253170124674707580106672176520631383239526394697327114335740777841130344655678300268705943936302966507405026462398453026555734198462784493581119465636328403293486420147252392261941919154514070283859573702437314408649475851400104340612676887706390260743083113507030478145172820618549054559398589148840268980650035427455883854643596763962682896962967844767290523467184575975714675661891085579998513055946838383465022426036023764409075153789117799106887407410571086892453169426155695801240313942588024479419446452277659256023089989258446361194440017870077109704244783959902497885319745912619513910099857666742684341127982711550726672065740377534119130969112550822880372622144707958631094734325149599099341182610004827988138551139626985653373116658400367585913954775505855783894037702531261923054789341215821452510429145848175630508954456521581137232464207305366007435248202738239340275041921268501509066897616385232182703283613107043271684185081938457735577528434214655722927598738701671470571845940878032146066821410675465925898244886636986109823634959217947194371661549640145375348225573569618942613584253372621418694718599530869864277824581491516017820177012022605426121128664624212806285033614803843808228524330459875403733988014895214184642812732438795530467757014390250122898660197285186700686589083748673314956470597529615622477034590629136248970390968110742376800695892342712791446630806048631972709238311433416017209513864033615555078044619469871613628084382266204285336246347778396056968364538618147451918325484062582325665386062200157786555669121570829662869700895232923419540436609445686926525710072625338722696637822188085365976195526459814424481746620627604224225653077667980540118882946641762349720349962626287592947532720967557306973736208547362213390862251175299904200386616711915192683456196318394937082701559753956019828907310978320498204482780215048767898229507652375166436763089265153906491801843179466502917307673299959393287193092904731280688971804081525903527813645675751210295882333259449092880515576924461590144828352421008675868156329706070773011242270124617689306269652621258972384844002172307779026109045164146853646117567653832804479412660558147553831479681519303357359074713309905341841500922554651263283768154298194328635102815199886170546624544935079272748825758228869023078202346365253444166743918817278671511484609016380833486332680786925568286654174173986134970458270646808889010832433264147254263006316027938510413488201901338474645420643731182451715249166290323838715423477594470023646480925890111140369871066934818912963686554643915905314408832173496601003274660987564928617349947855003923638338126444006105803585808986349120377996646303541981892743220492570926185500283481944816719676590344410425136250078369843782317910376836365465157964532314413384143529892641267545079544834227639607327456081079567183573285062810371049096375845824112702717878531759260248291902911003587297083413441340786029851833157841986204428535945997996553023716083988464866116526330499951378880069420894837593309876694992973728684177936274895131029257197806339673387798918572014019289383694232220640516729407238173806511452580102687942616896524741522089408655652109254961079940392049866673680461122110767317612675292481841246390847645397304911442429583218243003623572370178506702509557336465640851519586175909217759352866326314094515533403671335098266202630228156954729170558415225813953197422940024084520707339212211830031934310284370153060857112195018375435686742299624643454760450304313321354661489588261965040035478470352365060414924371037359618174432918390493217845334981807905345854887043235736647087167533288298959592873433361694251315624242733253333303072117423905683521473383652043790013496583060392132020959437270370466251377876870471400418374146990260339989625096554403376794380608715478296705117665759031527460479804202028343815259448084776174546765896108095545347694022003076183915774929326976226914419890690473781057679863974079391564635882411281944316286636029477147261139503839491329644476337274676135926520500822389756211608280603196364988150374660306209498888366012156186611909232817685281043087382715095757131860803047821050066637866971900950952047143888984111546880285214768711540618019636764859789484360957568509490478842974502256762360710648798992186988414979883588881445637627059686030873555855634896884060165648366510758388141880862760518675364148215206340457969996245366481805812272804286981809846403374374501125595905245004435231899507870212522467469837703027994700501106121333806412277956237775870831661819676296831456274468614256725951388162701072430304999293854976344861123436545754415515741005530894875672738567299768864651590919208184290380369326110502338227716112034923881777325976304477610745837657170227647121391012630328724348836380252762378745489570570969533361506825996663901875927250712487404908252584502575012578715203358940515241412553553386035611914975760338797676091967767601518109405119604664797856696916101634351857282221524104538162643744594162841266937325960737467053075117732559650875987804721090097707907505202879992033088496572498025744424341655853275666257983830118922033640301168498376820375140930968086942480601402506448540265536000822788719750720486316193446844868594407307859569761553770811175950915836099101943205940428036847601888767809613106665063867205560513084902402817539199040902234443179429278674792932270342058748559704639938908852786274130405917313933505836145437786674754462096292643400201462535442129056393950567985760543727513452759410126116949650702139514475291854670720426426445966685233685556557509753578298606818826238755799287503685533272077610161198072635868753895557837618050250726809511581601472106683823564020872878920527863210393473600478534558242651516988322991854919532472576852850137534882403146979841853922100915878864557166341796617802114673592919916141326742044227705770223729182207767954993175725553999496728981470926937985826347840870779682466511800973400465865890476513449372295288093786041936365812336189778388870150821295433291616478982530589871299469520049587908753015899731778831151616982879328209700710370223974411337883317418065111393687453913600777099777708516845006390242923666762263893202597633457948898809897825250755092130759812990305903718945424466918167351758528165129942199659580302978502023566355212065775302811925757569134976364212551159718773694258282783308632649367533892620062380542920007339464697736608111562745566747090435035549780145170885751571586877365957973973201054830050343394721220426502921677954482846968743499918149082240470374647651785796126233567367452141609968835214337625951846172547406040551398331364093609509825829477235004399512665452660132395428840278043559606190423771400876808496984300691245614627973751735515700662817905993694430891255013260568069753925933173112469886541563187370100882357521768161911759259713544091838634207515561459931820837228602678919487987825677038823160281788436459815656489699488411074489807939963624705365463713554767863149904270256086099836501622722269680359257958748475869253703792132710362944448175358586475796165576666978143693344602817445616645711685027698908203190436865068536873960168985330131984263904829273993219768620569701630621669068370843255331818701755888900121091792573526953823877127537997231349492665442443797857430579460550830314918619546188407494435215654923769760192185079548799737372695391729889344692838183994725427189686882487532352625741067158150662946467747499398242712181063009863437513117565404463284128239529033048225307775758074430533248144547730124653312529259326825224698961365666254906528946306910801691501246596196570655014841206449331089179246866654907405697172736188747525469691155457647899793207084552424695812614516970133814355823372911341537451339965743439747299114007298319982845512264421795772382101353148338020591225936066154050900260272325135332834802197321548547167400409327663189964776903644337893362330948892588292347972309385446567147918185872652822166480529543943817273751746424212904836319097516942204034137455753683952755256811857324405187124305196186034942301443138220852887027196622555902757488964661154061451107456803022767813895312676927178852232079439675871690349486351480350082601676571123228368810584999621060476825155526292667889348613824365204790803639403080707373521647375286595357325386001223139023379225034743595481989341023897156338543627527190808136115398132797816513784187628689100306529284659177941646014683454811711206660419432058730554221703041598826359721444317253510860911239831576569995549345950355968080161764435867374513813376345655309071289086558278298930087235857794323844133139275493907856009692390145408739313614240208936360520480911885432123377390759674146872035445827088427847221366579248267447620803575455436985867257217177299492446256531387691471421931773199113640224590765758527528814618065006439769620979039980789259718712208562282705395570229208536480548336559652764547965051880732562984007374232828332583450717439210631637289043686875905558485627432437244393659928475986497600495499000478897668247732327659977997171592677096466066881211007578716712349950755091749485267477102515919137060988161659255232529479898151535181795069717560936206294580849917698946941113785132071017278274607562978836313596270474714466279960787282930395020955315124024680468169303738915694231351754231988843119884475238015199902090797149831568595598580031788083087116927294837147138691042474854727298516224358732960485462371307504559783424895163380115586682575621939878292081638169746656292704477534470618792988577283349129202039499963720039969473788110054226477339903013227542966306648197337976943937134801056969193517641436270137720039696292425190489559131538755552187600296771305874150433299668932698279812595030702664227915293391919975750769390674011681380689753657431063545487464120175440551032281069194607986953981992902987427817678847408173399231812056416717805102658055822961308059056780145404628587199934179127655023574490801720158736261705757317429258509505563848291318421583121373023881139621565647115119471534779118733473354764263986820291136914584746933718905310440555536149653371049036494398132688020387004221305278594493335325540071030057473151443600887879040129189232267387097117832020467517272060103415345509563314480435751004262170089644491405836718576822427575640948765025770661090597142204618057239636587276277241185913986122320331821608328151981993219427181000565299726508116800554407930355818081405354400281039972939396659351031150659023480474924856631018024204656591428421479185110710025981348057101846854683025825446127065027114514401615044164796834164934389272963429898101909817992936495862569104348616623053821885044981913421599535980640796666785848922315738387914989648789680939187880181964364237442716611991063592750903337548610997525664223851878103976583502576725976159469965984585293443025798918451037523693647328688843469084113634627845084000734667504867786124412790554624096754367064622742224870779122179365412969842852176443410586353205978358593101505157763949385833705429535295369018014500484539102959287680647521384360062835995296736554662436521783613451750838680142139412602652872213690959443924123799368083508032057223411220862690463321399305251066712876922366265632202452235817744133460200300929168100974905562280191752364650583864193357469639595251237050807893105298158138031938366318909452766477850925266341263692652532314999519615092171826386267665076672889067131088745721608187668461836652417199214481664219256138304796981759012094639237292099672352155216257827407370184460959926246325160956975141826275785397421398905436869320664876205844876471932685697743514971586299285863428779993833709244760146454028221673536647072260829932457587905072664063785185734256160189822601916134329615215391006191384234301591992678577350990779554453810632686154076404055174596189314569437181147922847220339721266070453908808760154628295642624029107191577222160637679890119411977120344410150424266793200030144820166646716905178698302566860474153691291819016087926490011018169278275200537518169131754632003128401899680225221807695828422659202347624144740642889944467833328589736005751961615165155530393716754979776045026328145157344898639928875091437196705476845729597662911187381847962178340694363471099432220578249898283069329691485390264425559353105182910233744156853789030792965943614946079733108964411080935522335542525265363689548620751565824726598968694536735664400624572142510829311816343967658520224820652474608020278099075193151619708427491957442912367382768774737326208545787687549499466962624424244039533425659951651282287196479823722218888648887137019232716936511951399526237241520774172841384787179342069504065273375072210064115798889660902570399311765480381704434901249081443884767176495088201120005418705870312289137636726689686833236670621781485684531217290431865083574336252620690548616045830187773677142536264879450329738748007598667466861648267866683202039817901190159032182149494622254810100852709487952661669055229070072713428859675658919877664765847611906145044819926359394765991500979028378243545559493580515422660679612356704752744037332766845110495405608564459477111981909737377294141217749738647615102320711207535463131802034516596439794538352631716021122871343039926369688905610451331619523436230136327431538333272786971961740608599968096021938562922362653975165974342109680903292039350487356046068847822477018793150760897197529605499583836586332061783567773644061162642872923537147792994071035029898360611011457437010883194593985688572209044686210417515828762151097110108790861838265273984868531236215014531432368506128220380884367076394757523198092624868547288787702819856211101084617903439671976743553915774872888347735324497828047814483003386567875981933666372338036838086661989043070073357409790922999609400918671668231688779746773962727594944077977842469520185445902310858756101349016280317428859483058550864859680455008863748648983715281044457561811194593538969774378402221537001919513503313682866280495151986793722588743541274893076358443721739577703341841803309911897338378013724131849428565854280018720213464037071763937656615554686079376011614897679345343047599635506662246669693791134528149409128249297004493775335296227699580737804462092862643165220034007575783041331523206149955964219657974314143065521405598809441612767890573746752095317901278430774974966004059321903088182431475362312765976570654889509174666324474452816285469158678523393645092369065325154558872682538405144675111044049832495318870252324562990921266886600835901330479748910717008590269623373555606715359581688386075692227498979010645169981680514551296667984636541711316470903941173635496379294608744783222707660679573250798938572668136772089118890837986388035064496538983070672503567363202926437118391860820449884780471078594658378499869542108061896029211664495734383339558995297482759534287077232239368022533697362221671864452173707258220788703325293972623338742749555786650188205764511082067512788757911196262203601781425100592702621825614658472352445791298889953783961215927103029701706782647643857262365486256938678378211536181983689163999115682571616205627070727397932628632511204130847524984254947488552858682627724868614264468306702065846671628827478094251718560868195320575240002820407613563218493782070964630646149590550805642651665438644551823094238185054950433176775264427289354657523162506896528119896304155810500464786680999096123883971869158918633196913234441706463566165273556106151519830271343150370107275841079652932792494765430818477471490815131159278025826664574906042720856575037965408245321606528961754780299121267736856941658465946241245195520624829189957395578827321947210477498278574495149141007862277354172381562084201168178998889409158060809731281698005797019432169970911569749088309579037624777262144727973446660198836390163425169081429994495718705304340357544727647095536628962513804568948888338739204677836190595849897386712388814691332227201171472500309300360964951523187747471579084837205083348517016043239003039810690335724676872833551040415044185181981238842418510491450464449992286418423945922415476772754191998981727009496284262751029278286999563703485486027455478359305756574922419473523204496077850609911342626494694913145543897428525646701242926187954312113759074270232844505807144277024250685648517023590691665384132742162860882955458440232215016168904777053891225464214229594628903303226245194759568414283152239227009505054066245869788744165879892462897720080742496442961344196151335860358047217231810676871168821688447300967478625429071851744451061554316629742204589016146419911331750073539616685057021790902244608083988086068758666898214868537385490009313316184294097825590740309418634216007757941931343636088571946851789320205902275682573447697823746564700768191416056345114386129298673240413804449546059212470491880983645304973869676070833341151969602788403210319302479518016577377708305556625694304098672537911149072094794667376649576104174948788905686978134945190066060357148057754409760643445755402202263709059987285835175661163898033035283591893684781847295947212658447341165379363282601005280798956945997893046087488879052789702345207316157666029576214061941743494602897798926157051006215042707298799568541182232469456899505323122155655219673132137151850122691447803058605357789409344315282185474663122488352402671929972336431482577869048500531927158776275595918580172060205024001956472707262704876494128750331565646074222913610378523738787494294031055981760295529567891867780505639436692944630236345501816570484412477677812258643502323013059651425521723875899395972584709282860073573075321758446309750657939505978167321954530909008472571260970159077577364041594679507946627068624571769742033926827464836712250340505199935887243178020379748355579926429995896369743064276374114333220260636753852743320473774883300869311107196372664911135081087483744589157637389789059428991857214684885797818351778375601927729222986562360876191035533218397874105999124997963452562964942784822172761255850790954253117637337271419138600279606042345603337004352188495622349045412848589908388892069977166647283326858502992215253543844601453482481050733648949670904861934213235167341129860239803818584428802949352027906180725631994008140042184645746065393024087995784797436593931098036526507932118635404092752775800950037836376070644571706952416630871364392464365374281597865800242328474718766826592664555977022259001904210607042600442946168249326343498290437880359879552151476864698152885076168142267960895023439265404095230877471633748003238582028970070174457147349149953558087615529001103774371283869411456252826893178587207122535539728896957117891837408850662738409139994286168340983699334237363960384708852019042308205434501023867069023918882010366351758105521452867955788156775830800634468474943801360993772312539118047220351499353795890891789232081593986232525301600922940294225481232951069142510472780962902229557738259546455349137561505077571074739331166480494374090496451836378984627795510977239454071385809717549380903044085451847212027396795162898555775414704597961250358004090361812041682239288260247441545308855916510039785569755114431400676927745281559273548134622892016726804378525644264255655190949344199938955097335548718712912437786744850787385168019737303375928473369536216354692171461728823044673678368815334287100066263194326773959660348880058318390354508950105778008841697343575570937180190344364778483153380303464663897933252959819238886000888781504410832530037279964020729512604282742045216668088000687455768334534425882136042727232809419141069717850081784336942682191810015209984670867016232750137565057852931575212570263757236755274693485630609858861056902604641471664721613940641867723361872510302095403940852576258346198508123178328839375213477962707557210800425665421797544895946684233496893636791795896287336726057707315896113304421866912285329898914627345164505416363509322736040187654659979626660595505221082361107019035305766320964326149334959461658483668606797936736822394437646077019939349637755784211451956832033115034710677383653806876608554880017853911559173215185835352324520465075689348836504143185005546688978325774837296722184119257207550244248109024562442497923098677126730147661339270009079690583473573890914192672753246821186235609468485801102332443229416224378970957222114614731156324600354995752396542224774736743156647194434514708306990918746834333319589805261190426441740381503221304777032965587947478453743474029682079123528376440788693266694284385793257416986817671995194064441015262594231500480981467445833887787934486595896849933174715219704010139379671310945518930079151960207781050540785348337774605023195308751534959269660292142602664697608917851344412271963019915151019142607100334671186301629077011635856036915114455955242383895386935120890924837665411508700342277647978090519816554445548607253355815954828235655928851335153394647566585125031892429886766873079349869377809799396908261952750588371579355375309865860054748183443872299167512899934565145518371682847243802972520108358664344013336426584940045275246651384509287704088696375614488200874129027384140432295978220957833292563731595433489222488700648424475538366129549711212185291850958137156285640261269789820900264518206457513406112206575285230852631991986111789396380931733227862606930184786852576911711663863595660658166992492793301495555098509468903100303179439256985877783592794424839426800214313546175842312474352285683309852141398705871884648027176759334932963459483204626572066067015080740144890658985148873333179859433589155046032474428352915074667406847121823452570639337644846876841956848406438061747002530299533525965509254613645475448785158704929086946368462526940018504382496238316535988371755692881043738229347588335194589787728163859204009608448200301192982822372810671320417755153789278991100802845320156935674887044489646306452592276732094845972910959823045112173477489837985491392600329209654165943521790413979818175019414455449669778465917251336675433431349905063103403043774815113040993360320425381830978779699342387167723608954410442436291240790498138664466082005658160660040844217888737773304993911458797846633119997968452453216737284060408967575774071513650551297901326974395200582722698193100467663039925790655168364930346668644653799261478878539965392958663632219245081419082859188477157938148142857462714141883025955103353153162119279534139700232178949149651100770166610681722570495491524916388520291168056102661835127153123347774277628537343971189166066660182057661133127862614418352738909498040731523487067049901990525831955598993630223920898209531417698585224020785148688817920675447380551002497277277454419953453476965870768763736912665694023956085028687717502034080479509580398703954835314252912764174247664101559986851162305711914636027566261729783404595403403462980058164040030430330175033368808569339168514642242010648273533720192748824192699303490605171050494097063825769759433964735436435495066787388945460906259057322000344437346951453290226893125321179937240851301637634793318005940272933877357415144461344970825339477699053855668804460195884023798371735448440599875675001257218511575788781637730926032970157669797859187464395547512409120832580967599693949919548731901403851083736791138935078265299990554782379189491057267079976109993664629891815067480562458195858453875700097753514337564402292967213257686177240044751373237107111277608675187361943610465080926492166800948280916229194360802935827503763305573268389703073258449725358702067980908699660254575113093024128934524830515007587640543939268871318738021275702135397088606755516472064493580148115933897473188171555859537399505604215665749513978260226502159891650189365138841027181835933440433079238443869008573733089672139483262149994650866700569164676885759136098261033862603815120492930164715293606028888006459711943082676528176781554340297033736132957107338830713098833223624865221114826354233263492790871508411314090604156365804508826100227047241113045943639003069941632961719592643214435183529804085105496857047326154170263823491673131263149044770551779878176153296862516948175368698415329343636875391816117108203214395079983528266458397730731655484513038652271557779222185998370876742880173141825104075827291446727841518438050897499568281561505840227815225312478592193860555616037330884797756542726596309576806077292997806011428116313234367344423764566069447479359652320031487380738319580889777257464789083954459045120738570265399067528937503876424247833123668720686211958492485937241895174954353024949638102695179197504137793382139421893347257125206337532286910542833357623735556426272620702479077779580252637301116764883236630891822867721094926651672623890170319420031248556400278854884337036033080597374473712218476638715705112703832906898882378177432468799762571115077618579242321564887247885853418788624562306579770371311320621129544852694048997099656587900515200069411154642635967474681956180143147875959953222936406566381744666647065675437301985364346436385751717419906576913782732522384911237749352721969985653809949893133207703866379774153890175117109552226083678279885649878133465078028668123835591351988938978467617671025610334192728092314194084802822529212299152566001544024797640214626314832128572294332097984651092276772633914172121232665026369163831752914811532669495738501995433391379303641977284187437721386222709912258118682675222102130176619520433702074891817925179009737024820063333739976644470102182437302481443205871336234681795431751773963909839642384212273589302631746624116013220161737193712119246742359888006201232385635158475501710492499673773662244127648233361336188451207180231612231067759571623493038913001104977098291408843322727266980262605736634233519876719402472048689442727944769222507342885067947432310519954553554086410215588287406663069380855942757236844977571143979482478789573292500226045747846572451372335167788203969346370964686202296904066726827221796383143965489764434605078151466729793841396183207301843309781384383529094832100864115134836572218246107110645093599212832091090201661048709460449271747642022147648974597136887052331905971240720992599066180865498938836376060732883822069534096934444311903691152360846336228834540267181632435785184904830640959240458826369747049662645279806232015044141822721408934884895570945376563584629252361649889485092891961931352993434074245267060009110024246800184550816500949191564741861164283093506173810803477388305359773357769247507071771684243974534293800958479386312513731522056672394262796554112672027817278495247933918819408880692444253647508136850371995583990694618023363031934300745953689353081110718753025206823105417198428938791957044695825283436951039783723736796219151425626449242460391764954200490940570728534197185169527402947996960159289156804135486134962201300374320630376398746596997835893739308625575224455340112068979796700514344149475186095718879080668209039007874085776821419961433230239385562184116297035894482564064098882791247281395518382358919939068540218713911063404937667419198416551003062020878693323559560861587268699598724325839838453127764582889531687265314835251806454909836302148411727750808600958915357757619868138404278358568245607568626713876259183058462563673738081005216053183384119209930704790933015588180712082837459431522675654391099308306019448938434184253188077545854758546630513968791028241069495757634258418403461971527375108291097071641751580159212313686730478914128367650578134792642629462030076015044993571251837446089744258706852921193101887275469326827732940826391107537289195240307617728244136134741533764049511126006820899712077871500832499982576522811414243640739009949151900193974702537111924982968704712682040634959523316061485035954440394724403140932337107464903869474984502654192230765919125688589390073573054034718746182856489054318106111342588580694197146920533032087977570144758258375186252266353050454007141967281030701985389190502170020181730456845164808694118205019703969774637905949173217369999619229915602558490559230208666977736642388551913727174952781310500006588737813029812767110628581420924106430116690853453694869455953469551794623735365771142097451713562121691008188477162259280763292832906383653916466933333094077995897093355433537006073420896951029376118804856766769894231419556189705629318509407791004358758946300148006273684751647081482607402575737262581566358077013942262162327214269261856855272696215758822809183490133636576892941563186804600496138644069671893628907454919141750498810667625079975309065099477844877230806395762044277027481121437288739477589360154265524845545197912766678047782488984358619170464650559319639489804238740998419511275635309220085796097377110495549194195047570413377922533326727452273568577925804207175569468861025558082363399782948440784342366878944292384863020517388680890841490461657784527999651910860438365192654745076630068119072854764575163153283000515250633815384492328018453859517288075291391597817755247946899509208276731614053045257734562089000964461776844735649710091092857266717038832218527361843718493094519407299780994423034545021878380259791071154083927655847599572007154955032058295604303539636059741562598977400444353850500385337960049767056952874269833799769982431262725643346960380205592399728219596168920337524630052545282032219640213647086207044473803834353704606229586272853188009497868755601060195807942297505272107580699285816989394573736646834849107306653013678318697367435993601521784872553231683859726459405209356626086555435265012364536716824567332196731951937416621377699076762946810654646192332870030493596405060495802925139923760888200282258379589419745015352708751930875819863814310095436605974303642271044549914261056231615073478074428954834923226356064367887897415803778009448934392139804774168423634420237602938258749051783657925905432742975248685091508349895046647251378862400269718318238021363695950713508560231553360980966200784481464040811768538944415360524105087165902014809720111149942963309445443971577073385393192330244290208360962620654062625598317593620458204218760988000829027111229197959317597213376181022189696250937344852415176381010336484957484730259271311338195350568716376165854702067202753432098608706814213239448497842118078480124365462386071201183773964848811367472003975377610500183834754464486518827796188192832797692075697052165213277629381350503533506447978333043363909530489945088248730694060363212937248369165467166360403111501221469499344511516900821214573285698362455247593750523331307095452862369614199116930203082645422038302319456661926215089325470970720174278734905693631077497000998692843734932651211346287404310663836747441456390349168120180787518609379617088318139696932018749843711681350257355535905133131783305520166783103663220171881272107368797919206337021003217257442267918659000635794682575908429017924271847894950011363837220563163858086095491991068673148959497626669283385476634867292054189123316898508161720098966870295302520477140830783896942561655452799432117109060239186689244987590869131261779547207043354979797615407815488124454001621548621829770458147199682222542146880009010517394638263611362520907396531904898574774488697333524701493606109108430213364520224253757301296641789109801688347535303399669724477920896577783734322666159412656259683605241260889225196105551276210714473559902905520774450076536870004062316747571606083372406795109012499521634645616766321830476537179108089691262547624699396265506362887707783374758150527686115227522934845797527119362610058997453511109215175490460390538855122591807469176356087937656687328948752699101465910414377098613948646220603296266304092942206727200796168195216871754125282563363812530063737954761777180897931757376868115294073619647291603676931334178883249688729296852071392058645381446289612179881045738411036901446965406601844912299276607635590458083253700054644153901836175559674773410585287001881269700890891526329427685171038649617177746564303065618139716508567285679363970624331132766180271963655678990988179760422943676241906120357255873735771024066108110156253737330857763106766339611265589107380354395859730431327427966640166773101854876740486736303440269343809755756825433133003532062081154351210277792531906681907589890420958179188461730774113378787594130475142765820044393728560006144993231852646637562879466590775537662542431099870623511653930533420684162832107657269778916212784141346793886002812747873075067432931494083227704280628851836704905548936314867156809596918558810394200044774263958046694221464553628184247348398545659374761176378961201829853705182616007953584475389685664440436721148160984678116050866734477806105127925003876629295775240854430913348157076397412441116385065946606175047494325906311352054285474041009411197198193022469803584569752576313709713888593732667224997188031665331343872624333872120597636012269519972251330948534715043772099783216256051957257074278914267882676653796907507024758546661227878710257734799142543230428054927589686595737747715958730519720544181999650513176328959550859804261561189941592010474687404461482886125122676482347675147138778293501371945781278680319124262031128018226487577090675460022209293350412761917518144707738381990632412730841827562098286392567932374301213031071502615773379909424783470952306071400280380941796167813780774443199824585213226141934630923705849131154890210873953304400102152700827571665766937300868847920383182917927817640521724138935974695341142965821340690163254773731889359295293304758477389560111594791637258989749583713261917489005951818037156787580331703219071505361289178350289075513482906308809773483317903784828934542572460800883710002339521658555550964930755484392012455193121748957078680709594667079317413534397597940357152773593696648287868816380567284557773487990380081387556186107504112599373825410994461273593004855277849239104981819726117181271800805848895553995968569698972040463200695272949504083899658468369750092862093703373837978469877113447297621542399357843885232584244812178633033767585646008568771750872162581485509974120579757431179633035747264263669403174040409724205853130384721311697251493069072314532153325792134913114179669982514951614372729046941924506532977015737619982303705088159019311075443278637863373048393360777483838011740687291987319794481576611036749745954826203178617597382852241092317199340672225430278075368820338008355204575041923026678420894144932701795257270093889881302064342424057036958095925914329533462140291313835809748120617440401363734974235912438028091063409437381061260409963052012281767957137487427074204757686554663028546943748650730630294524806898444151148250989176626797972998763460926874137790480314714031267247057892503470558812531700499119354706116737671363973974670085065962863609074248323334155741536443493427786362979858202367445660875815420603796198421618862660571209595293105940632735702395062510739277901422962038072578153273589756253324069874238563508104018413272615948043806746215946031163733026356173052682202060877597498582232114837590247424699361691349323391458374035999964527588311459063390565804408408122530582859037928715492257755615149389035099863564352099716551977683699280808865261923002431845103165117041772183313752898688053826134913529514790142354369254477691041561651967779903818300057550156978786207710052074776361921724326675433876973927648270624353598927848103261295520808870916827888186125388046913024647922093274690468402519006314357527533895790079995155521279542585883639746305362468973053100766533897536253589446952246673367729713448736129693902825900103327247651956990370214305930674155287354709748453388265855974367034847112917100217101340780499887712405106478789681360166214683334972457110115817652493481700245887691236293590361040082097640529240921358616874582675158415970331990803973832737272442376435996438894686563012619645490377149581543401814504243758113861410629494081867306088076205437219971782891287891599557021423414967105627356070134878531294743025805062036975442119627753254568857648969659926858312503124956956769872600619575754100211088108074809306629104411057998351884115442374069799737321238045945201976232749641652350083879668695143127063048173572650472066565834964188147407334916263538922249102252480344855388674548300906647584696570208026488977944292624339595414910928304611093559063406764122772757388801647988388102126843966758920410894995855649207311348648772415546161338596031883302089757088580797614687430126665535775847564145338916234906815397614142370914720051038397148688885144649306044027999058332291602446472289660322125943592643062694068625083183005674927698895476338487413225820106605639048035661248896412366785585907848367822634054171275513736277387136280878812654807654843172214632046963163954800799119391459468463737753191811244567273221201758060825344511354523642517439571976009737609288585239459902805430480849791158310675766844886963679243282419519225326471825129643999088288525370254214053066951461503735550833075007809484081926035045607711453965636582733913866502591767874694861854475426708282699602426613975636839728646887369568311352948105170094979687147322813168251918538579856432727898732095197129767213828418382561565277366773281486710145257679512102317450683023920836997178302574196814288547822061223017082526200942683489822973149664004031779420378710560655499574582221154308727198415686020119016096177637927711123009184801671276080657071826108034241577045350851990812857986701797327030503975596389301184167971395167208431520211496342539797647722785812595574701183774704300322357122746884876985484013081456435205508548182941862277936859624120768041208418413106887581819927261985970487642715889212204408533008216837032918295395498882148690318328970991174941594077877752455214942719495103600298601545474039388703645503438123143449668959900198722851995061301205315718710741855259311426772841995471841305022521764817833339171340879723992356650359792205043177798902908883119614578240764718646598011770077280794349148029470189755313437731376414185484534018526897044553509967253941624858703228316212017297024837570111939511782653291262536768196590886729052313681713993535651739950605577834457676984245278042599317797071075729835333776607743524568241219538987270981403906737629582526248420306657924858639892983587566911435872301999766038323157036737530452862516201917208226353630413832417348193475413282316118729271769935737184723312993102782566845744634465942051881920553349351735602183001258024693821088790459979731990136721526876054618689670424417466709391195925043704248078207264166742994705398962310248355405787061918839532851835183167508284598437431730146676193706267626352960344682866091079824649455931761792299421805119990982934471177311808292947742142887151503328472798708181721673279136423255908969838488924411990753377835992678954563737038260984330101247044277597110931589883255614563571732744143476258335986301628645103499724564375186074673744019447972363314306725737032244492088419060273226454205903217157035939851411884016134101834394906383389632790200463893926067521782992391250551566279572992820906181588574065097089108920768868262012271026838099401092782148088514715674984674437501424716561036403700561933842868099292949518018062618835166613117947098487707410253440401523327256709463308118886728463687962012528317461575378894195952206614552543610238282538413174451022289194163838544373100320124463795160425832225517164583120343160700311977149376419890372909765732555708436440005778262616010060940519353282876917148989669414816004899471487259684572633688800473148940193257195980596797219850859954539127606678000428597537509955556000359379522390202873498553917994001667403574292813950054809761152667759917564299902125013626576688394464716570228894684703265150994567090567420248503726219881214183506983420319415824875250359346833637427857631744515755019220245368147465511318293998983493246010440090415436050885496492952732573201840252399277565869182822292986093008870494649795991889193237259338403773400751199388871737946103433371032128513559934601314091144048161759209587189524044729858281040761930252792996027045579024205957133492551833942807504359853363437883324062343036448468299336835933857008518497031065881344374807034280407572139906494536671278292576977243428389155891825628979016345182843656825099794761488732099982512993907490814914084764408550374755726183028114769619762474633872779450604537653113610778123072954111443995000624440880739558500362615515141166103489349180434718750706235758957174162057298912724081119738161074192557183800060075684643745598965109532121483615570101561947807654507322326653847286871573253726287007750106238714026140388789136313150399494448874786249921886617980063528107524838460168132797032038893563727209607431776358980277537184263461616211250869667190374143822127707450685437348136411129235205500036343180362132010361863200954979796439735727210733298829552462621592135641990244437767362834665356719101887406103640998611721997120480393604957692206944069057542167594299048590580770397279449713368948503595638649044758409367601279175113291185681036881449021628285197732970793032387324190400925531735314198407359283243629551371305402145642711263656226127764488016124767808818211943062472104114424496478982665075582200813794704154090519138109242379034947988827227934168618261983088193293248571496251164970138174215345810193618968558499817108065366921792430377811965294142369832664157408342326477776141477152106276333663242191759285964463118103139584040448367874948974044788506493526336640609023852707826926669207503048099998912131329233267395601733133609204916220777614402478993136598270517587571630783162939031277951702273573185179333236284302517578381334927319314031749009185438345720592360615577707505010416604568986446163798118216461026863905633245761314892784389580777880611352579668432356475347853739268273787007008074546446283621978982130719625727134602110168458565337224510848575368342927724544101242337335968074324963656722515434620651487392426296894460608168216283019964872936850333932565656001430495128561372461571942815431877713576775877832955942604039933182713371624009477164987914984332709419533101179273304363991801427045865653797363485658146379386889675993489269239704231556006164367789452250200044100372414237488361668917656662699420686328095024781602181646445706833130067114336137935361448525049291389223017741171208854153373852587173148294384081062293111424955481134235415393130032648442297022417029175906993592006134317604564586323483153986472436870772930648363457046019123203321266368056811290561723628287744277749141646180138106598723357139996930850870998540831196164856552425514776849273343557591188555321818469258176513901690564513490339424592703842712737309619787196079222622671064642799641802152404973684570652755752606638450371639388108919682977969352204202517559635732020407089541300473991761318183304982691718539326683214336735531234081917596612913082706582080465789180451061658186933790836916997544422233935255976632550153896627838921124891623217295592860404034254040489581422481757833013600559325739559935517055151010332221303002898271462779144913405312167098918491779810587199287392173057457260531009689848493569404199731967809454251503296319882701218147398972985711252452167429037500643428785614687383576527851094657558144161701794048271002449171507731341132404293935788379896040757299529867034438528319885960840269969824541907823087993539432452068774876578438464120251211647915008940332471530193125101466698348330312065758607656516959457151798941459933729530995555218044254347705181283474494603852330423119982519692791318700661191182026275618039331338298238936254229742893504587784198673217375981243503935870037241342302223060215332794228086880613751031379830623084137283362550950786327928175138775837125840577191753893691439166659413622977646910646213034997783911022978106380497916059867555628684070415929462151383710051257801858617059305641465775817748423605288938378396895367246205164727404009898224864123591680714873409683183414639443858906964508955346254801017374591655909363572440065941873895633700470018868595865655107869405211835855463428766713346141556081272387840038501875058213121097172688895755846762355050626212632423617581256432230085051163329318011258339405326140254877505311771621558311627781459391267328411787534970540829033476952697317586004397032858573704489925640203622528405761750816152545530453246759828155301752215870578449957986769303182918991640725082453223652931266259834751467519517208945126871244245061068305810646265277323039937408302980527628676466386766896963034816004400643929935863308176193719967886634826642631991886559016291696175095945788056464542935777001931480222914923175985574067388852915348412393315498285734564858918756937410368732621569183797634074690243539723729111299659230784926629235336544776771094761057730548172625954767380464731341710179468799548541421609258199203200425543048906165161349790322364184037778885939062152047892895705364753189239504336807700207664199924681337034497988719090886889359962712632383632226725910606330141058101163316621690176800419776741457278224357662075182961431681648460776899678428883456377266280529390098236783225864297658084808789344743279055272149724123062462436964747695090210050080287524909293899577156971340627190982585179551623146339948315319918739524573522715459793720202170275364794313538766476973784838503331641912626400280624902974846263698138478990771958990544779449676457890684032390919789770861243023532317586724122313531736015205463324500856831789004691779164120673770405864153335968819513408512317873087543614514294991610829742009293289337104148232183328477710009170233693369980623581715918367131180641377695813061298643737504964544361356764499022033348594527161337990464643286352983434235271004914228886181815087093652700607883164257708884711122778999554357597943588325530287625081409489287746074925623880164299974053255793371592011400108366076729848999469038660826879193289026105995464680701257108309434336239987694867835582700300659121878304636076551127021686742478146391511395474489669819954562034195463105919822954748389328258286119102646667919655466443756352284062505922481998295738025460003090302235374321542592774553527514176833472088109662565484226738641871590494397024124012808056642570071870538379016474038694706434203901815419088262111591517514561189745934867855396343985263316664564575650706820933616147240417401017418054573701274482106813044151307511678940923697717475704578160695025275258877414969391538313197067070009511616829708481589014303647376740620685171827291821144902438798310427191953762881850484894700324541939677971994942302346249682067007811422596279186089865079744508419790981543391533594679350396955332776016075672242675805383984220276971391278574946298773025832740159214849187885406059043434753412554477954685028651964363936309132964308934053252229520604693859979131824735458602663906962671681709441547377453364513150531267453560797019310073978372889460416422589678584658062434678705393727160815385145505362118314652911794866084253389429851580722492208066913728699654702716782007416606688543696648713036714098678439130755565694966433571876769894903013405216076415235125814833834784206755159459665383964855186016530958204337418018922711940638592204786898932608891159741759196118335807347867567554677334912895485775451710235691159486082228344967687138355174048969232447177526455729144157236001042122784212934539254690854741993123822668634167440240854719384267346477240154342766318380090199594640560431364020865138463732147223915018849220560089269121276898552822446285170691110106186348408466078779143699684008070207032284294440483898495837065702130925209476882498438033533277774916172123381703757388360794141274149732339689544561805278549014000065280265677228872133758575094850286161278072556781093122827582846340380940181321096569435192226193333421497845313435092536988651448163414483129745528409942895481138904085100784710026089773683037157134223066339191394123286583449892516978878671269935270966190762013432185409087111168826736856383241466536265080711911918142107337724384709408595804100521026624190662904581852840828892376433793937370016367520623383367893603583080395597508643207713026163795338717358910559808938506148780089508834981009515674958398108506858168273298279112244359240080599739149697133652912168872602361097171923167396781373054697038933339026308467422869115948216283365048588218269970357137367101451123551958564289552037943666285576957697654938173900530354180770978727168463834007677018889572081371483096554003052627388741802514874304762686504056124964854483415689431231226670158065251522345290187180522869040980091463760318427634838769865984847297897405473657113221582154756826193088458309475548408547746100216869421617175126563472452940595421655608815311039705020399510362144135055433696955895877108726006689859391693124992979527818396034741274349845443231371559814333843387689391137698226589786631031359755582806000472721608286811151063139755313992373215114391681397371878076416452923080280096518396151917969348795630938001452722786083223958928071802154228298767301345505293456508057577185465334047878846154285068041772334938038241332068880976008456123148077274556500268718953230460672983343174328591943694074724808997172410488768792424053274952443417777396504978612225960604274873805949078670176624303357777542651161864940084101970015850428706883157769119322623460317365224100464361150868640990860398095617661785314168325702458035739820174317813890911005526781558481544725003640138340116470543407667325071288345057036481688549152919073513872792572286682944064865518671348114004600074792503029058740943302183418337840756187630719505832823328520086066564802969061046425466511010424798074983244293291576815736729228461288397357119284045088943601175272703741464534555923797484977968659041926675842732209625166759198209852025576313827970575442023785805898477185632138174531715616998161793246403435332418870921812694460610967374376326997763710997094983595953753306588177254064035833930681010448204287867735209799710030756724973673592330704201028153390802552399877385492013566806803112223790198863171784927870588924999795107641883372533743093798025002526594692458477013843214243777564494810853493572391290190763762399481154103436446338415197125607837298043666184552310551334365813707957095471538513365313718468117318620667890806474991446925905594660082188498730681027363633888032446754345089920695685344531347782047510332719481297328819735164287844794511543309592246962992957855111216271774481727753415396579205996072437974788578505431637073830616376256598042943401226667687860462796291236262647199918305620122036403590016196263987700450409900482694031887714044833833068605342201489681349927628004575008107519509833916023731383627150776705655525588846254318220326660866324460893874234507618150995277558869796711229279508777691298415186026268169346334193712836946433964590947543598168874565472827672731582136509855393623839496870332428443818447341065847592598623835763717281894940523786333808320744231872790582164075035287390246054729209631089959568950795020357194322313282155436930237937276392992873852876586533511452755399035054815933824502772758101334285495650558431050057551579706995588246589538057882244066307086383490118989473724909041724814246198964527683812716352224297537465072213542182822214980125592342977687500627298208906338290431377844777144943821103480057102882412574092939550458019523911135059500981274722488353168849087955073195100833781182908685156585054964960877712748994080340142234352914716072147879525675346561608458882737626048273322466770643682071716255675815154433769728527270095789810475708497130768223379899729962736389295688601707285154433721516248998763326058084342237056546008151935246795809386583177089266489485724645382386190123016884723397519316415323053941320777527631922852050213806455406626198284573490487110554537906293133842740711405548662110578313638190562985702419633867212318091617756208879431387916029874358122981426794841836760934968660643134778806754670832388806065316224475705349598728544914050807785689281041635704917605474427556637638858398679533961546011384838363433588625139673665862619707914623606717197606337115764076058596458245510694272288034094049482510158376555867656307827055967305353497076783387379129124174348051919417741502929620719586947308351304567439701926037644161654464774238159049416271120326546764008455539988838555844285822397631721462763395755284768712270282923328629242390784565338033775709962008230141241073626053554478002703180943764057936959024498131250431968795685459365633864031360074845321690008886182223727381460846153427935347834591866354086234693737073408854658728869274583377691525765497366093945262258967012592455222086382650726375758577851846237569296628373734846441369387021192253390336055985837277565916861186767531571026193807462902404402300520554572794879906095559288362000411233320935614534322624760496002686533460029759168375319997499106786624585167064651294028020002715440885847490197371285917291581643151117199567847851034569789357324446178346688718000158888582909330685170406800013650746135205141061227447888783401553501907598316887772413123927135589716977366759828478165053966032791124707538958555808221539011061884134373778994799952962733607674387739768160502385575260738732848660016287331123901940141147039541500392066595647366125593910597018184335659224123179775693978690666978723046859238660440368517440541981234821395862187435104993797200100905912260756789759368929199641592006105127752169559893114221679743511113154819113317911769316845034066995368322851321964411108798279396885243604259162424632068809259370266072943406499996595543378170632330534999925508896502934190557637024927269787124482646335239411338278544410217613155150496470990771547350890972391886615938684882736201637739483230944130303200285925863500351356694216116884170239747764207942143366876089540849105117865397988187520060911263325967119380506532212566262787284295321840265258175967891564267779044068188901916668241586832158351673554515368886646809439786716970421566873916292790941000352382818407157514896795567016838672673331708052731003848852829597466124724683198908278878158499345362546896034562878149935344116665346704220451110816552067650452481708285552581242141108437225331054027716655938806843371913102473370027683543858287388020680973204220238829587936565954288725968898188293597143344750162571865213605173685001930855961695561912418388189719999570126137747262471578483979906396340025687227810277194128585359952977166721459792140393774994021589148415514396562628562113497916175449202327504904572774862794487629747961383919163190507345246895687866998738458983562837587343407785324703925501659274205956811930511345793296047647207134733397488817012809302100802764812693279985113393314047713374082343176758987288016083296149494738290736985053268204102121014744047866344088994883662408225994613368537930304475184951157761297654997566460498339973536978040451498050495225241512041709701297768797492230261382057465377648546468651116444759387867891275766104097951299982673056613379358621587666908967274271708041700521654519539250831777059544374023381931091111716354031728499099577899837125783512618414881331806776118438395725429820034707171180388387704118651191517554310055365203911689272211249749333935231920911394815093939461260457804439235154420181781751547999562897625177354096960233962464677634681082261833237393156467185408147544979622051598439563548186060123438822581075504658342200462729764455063636608941980615379170060279702973192855529536835549457588780609564364638634325903054148567274689264637219327009251361652101317051890792994177369690215375766073359189091612637963256844447583699867165121484968370795915237546080649053635728576166905969044234917916460235878321273491949219925558501027721740905171603090689642949934043159481159332648599836987754576409048328289671436941122551510625051175906528205357226289118533450322330005742683216067210962760246363227352939346527116422543584863031827391045643381609727688285145075338202020031974787331640971453213018383326544915193115231381106370559814976651604852472060664189931360483363284948096728683768997606453945695854625821956071955266813327075159203838658647656939148993269674845522379688638637866242018283354168785115809158065254711955872268922844774390258074291781270081986557056366452721110970718479605054571571989430380889480654623486675035356573018612313369570535795989562557393170261710820138949661040258958113116955072499787676914705304562127418081874607748822165628559786236794653254814188674786774433598080591134475710183414317389424733633171751322360484929461900056489888294319741341575834761301197106759589789396443973367249719987134390199302680063701376041855840553908813770290515012148230043378419849247598360288065655935919993037557442779907549661534160689725187868577623474884812208473846920142235173930502872702453297588156778410566033669370470904237266338652349735867015707665375604361146684826336076287926235889049752714694047416448021938496710364838339098142432540018567379276688671675915502447839095308536672055528760764744393515495787143812606442183423445310207547611593260885884958512000776294511357639562654911969275818527964581737236352952319010742938114551191875064636881335333249635010539784606054803970455901388692530277407402105202360711335042339584245217065148622655123897353298475334976615657307358502164512681083222308735526685631133819636478261226328729813172991437386388739528648084656152985431832785786431202057948530023086635712863253897588348923127207272645617312682663411238728892047839037059161286984902461279337910292572837454895916317719031963248921201394064824593164186208529474350546731772434173006119873922024667417302308525564704602156640576173244670208740452691062208543196896505306146719090406905618884098240263465770427410567308053469630711469507494924956896572311957907824627345444821860773330640008214142755878712501727522464410575944584061187987526937351915734519050837850387015274469601142152366409359932385367270294100614160860354336651433793758281277199200827120705280456107722645707188740642347140915512871256158840060869620077279936010051116208770121861072483837763747640870429023654257594924446655571991446139005934272822926543313934937076117780013908208551636735444997991304983000688918171303727550262322345910467604802950326691118287890418916641413561961224974264177151990549887181060827398212983159046528668627844291570411610045111930430261728249170271505523050572277740890623679337040460698465426256149407158099940439664201406185381567546371078830291659626597902151651348059699632786054786066717324869089876281187224697537902828859703405903327065209967242111535812506833130161108321352049732748490720499446536142021460970053611622200338910865955917360451011723227139490741053575819056817318960631087501728382122521256966100254473813470962255208467046974130102526646579715246405884230421817992112936558149937746919185562936863202924306391550168237515218057863782970135965113611224965778897583068976883626752618075236284316392265130340626759383556832898874001549017368627794817682940493969840084231216428608348315154073579932564271885197046631674842208829189170480128249544169413888079279150784896113736005031362349310616863324654047331373929428819956065429978133601082804060017359590228585266594545517412576113250823021909311621472549219010793331411613833670704834256322864635223156068047773954444561978496740347937946041376843827867818936636344533694983008649020666287605467540638456951424006105656828889160439640885724293179851777871156797508072833252459781342480091561073796170353531506653110738373034197890830403598818529106570768421513121586443007115811792957779669931118611515210547919494367110880441277103541872247964980451323734951114376099082089740563236397019005674728997342202254149931446687324802618290381314444993487773595225771626647329586222134614249198633493806523455786788982921970639522753960632581727610733508971246660763158343712328502842627074365914042019866968815742192733410146701724650009568409884678227038915529182585912168057530528407899351662934400421066251830353290832406994793058775944661867427469735211711269204909826717992489493781448213318507146319698041210788192842780003841482541914918149250740230448788047445153426605971962143380116826002090157022077983811460473673244824479632327636821849386565069830760236324443507384470747428488071310067170209009522607175744113343484765669973996748633933863914542925842976480835434990914782631058508030314317413349189500996141750338184025612420132095382184651034956318376461198241576812867078553966209791175433119898228664145088766525515959248604371261181299406101914626506500868315614158318726786018250644845306370637581776761690514566971724147814339443287263821748992481377993440712375326721829038842094321172928794199159698072037300637715081705548108138232150674642156932795660455895746532754645265385429957258090454179946561789848240976108594191370672432943961062491817726556589805229160314824096606918931031504548527507766869728479536041059466262802358660816167792131995092237101984311648754205433132137081179316388701228188374037386519478620138081920518437754383667231661367292199859183531558958914272289823433749600373745405027183237308451611382541111139329167730645645214214017071408361436684461275256709148278355936103961821992794616190572443508497681238385304997302929615985940294668405267670236914764772557492345319294523961898264275158027012642345035002830664636275781239830921196698392525139661438177224722355252559280584465090456162505803416539366546817377052490918840209185464026249424495559496003470974811868571376315469111193261768224567841293597422536321826097060057690200786650182226124353348291444361519390191976559974523318746158590911795689365434131421784621931187488844213480250466034948139565509292976423124244163281423591854838744705184071565176471377382382148074257837893297454978155728538266160461077645806438269720984562384931818655888522994070321204678315226384582332487983814969383190400821456050918015154784218189678288875270505968120679676356027744378913424541190576072054677698601385115113462529825173172647784866801006490632039762797869843677728087196502031492820254676761967526167671597413471068352638157056552201611890567010965803378190704747113856037084860505638372925179009039845608601222112522766987968985195200250013284286261766245558835435463206068790537174347505337254171779234911707184381861387141475027264735471681108409299290438987601033527058266478005182651380080360567321091994944580049499532063706493197378660014730499980100160758069562299240752611117110459849902709192644283683474264638088247914848756104937540310301496631863269978319523336794703194948239078017724408794627671799895610507283309994756684459348518075591805894268267935737860200041247045335147367316010367356091248186824898142609035747721701179578539567968978478779323475452275609028586872166125868623181097398295434575012487052920920666462660899240329713233850011190544470421080787931515881649049412704484922763808840591940862449294413530020054703468647442833554261715764958143254201091922984228659223341665913895075999721685323263698477781737153410742459112692813353818834965324657432261011712314418366194529313901613344367905629931958814223420472861688370400357256303740215283386785164818342507547660196512968433675253724558989603072043599842543696678261068390353140561463730423589498395699454934561164351882692023975062011744913747723650839761646040748682651067486429132147607912306056136837470571409149582550590772506847858379390928825588287135847923126917859460564864509366490765236357978291007941857934403529565175879506077773346410116925378787159351867029419050429287617205296631331984053506944207387873785584186068855522360517111821969895774950737516752411023214903490268281870808711957812150818105526904137912745259685756932153007678535392973029552122671632880777024929890080978590922084825962502354621312801271893135158660283403397334454578475807820682850902863242523024646094046382452550832063090094534430238580645344098283218784639695290081102258786045735575140028840359766133292364945267422741345833760184586677603683662067803663482596554249317454661397734712322702182971018131072100286518204806837262793378784102775644641417124883262658840240756496509343294128933929468095899755140365390619597975760085381416967990871564795246367327050375072195954559569346795845791566795043894353544763565747160439853421537722699959392706962083069500794014780920300565572962048838287118462680308709624355738531220488902214680682531693887278744821282799109875248892018147412170720732799567324119390959946447059818750062236775985036813627307482399730931555313082973113175619185415821236848406002318006747212548451950510845469344100582112404018536053307857997394859820243116918109991294093418993954730940721031505179733454844395642115677642099289514142013401000792793794705420032055945722844645578590901476253199333034206837052664746238130974582646054915189163511985208210308674279075011511173340574984428343629196889088039334104040552878856466922559912624554558367508740138614770572939622940852237700001131304140004723237231648978589450445135087476011446576902682932532545690933266513481712847297630576404030869168288571575940015801810776920713183263046931490415682551246182020620551982600108508493687845199934872663809570782465497376153150707489569097390837652907180289471472091986948283582150706591074992580447430190626562665647912280707823765344291752009609366620970279224495611156335841100620387712201244355068579095354987483607152227325946433403959320131574039765694116246875631750218374229582905184950096052518392556469182129332448235063074239496786660672527741941280090401900958368339869526146716748922464801013745806982073195706744858887061029332524218970137132134087021196277824995094869623103937169070536647716240672789706811636852019760902303267429942177261132749090393935272512096768282635448913185519885693231278641420672952727423335965015307036314596123051145875159773654214739586685349683513990637526481603058774036244555530544055254405274313796677731744761646401181659481625562513428028345384898658874897112728759728461713839878811041192520049593182589618552299040481389222683491580687532454711348220946486705034462982617505078660218954550820118186856424697734711877808243409203224872019552515753314526538953957989749733347648575038434829530508116655139871803841325666243889662922018089638997303297878680691601270666927201506734249843735466315202975005547119203521167937462097083462098922302832565042655377491879804252043721287967411138325019572414000927125658414843163697562271917312735403734321765759095274364897367761833022344997546317888200847926611520749055670911093973122204040090919100021599774467248739829057663149945275598935718013940875572093254375127784864028529087424468179510086507077153263712150148964653927127215447393022232580534265290611910611266582305633776861398857391707689432711301065952338328464337376631123717045662189524012235601407518604621763493987407272039951852592948445672603069773204170929448238083755770691972411573474195073498583547534493768887773393747497429096902584432357467088249854151416884434206212906290650656569171542579426652011271790176706181943629512004418433988917157279301075374209122400953843155463594578707627553658857578955821468570445313040546000991983055209941720304327408604676444141747575719709136041961093277335046588246411662137253016953168231294268194572670913068746087467557658955962209284032143084750045211817052211449961547235022143904352564590413293858978265964887763668258779324872967147203580404985053713939877021087918655505422170908629426956412574582847582449210268077129404034944904962305188076281531297177058717459781251612570382440938250187055911404774080284308311207279404262513181632150860049165087272511182679376477978776658162047208769156585208319527352746049515269936218049007533755920896284154888001527905793589735370601567540208348964856937728482003252046877851679422101567372098031381483641664863833138482096677166857372828552481632313848082711341813318963280760300070198338631075859333693816487702895473423135365195541375542382374107111790053643145830569009850714642522842425661290494978444295786801053740974137338754719939882984139885539052376278373302815916605770545173184345770541758527072254663716765204500586070616001905304993373662858678119216400590778155628965033347036377540387890062187151763810755907058749698150225587520309355268620038248540515161009173191441534014292476926019922565519312339922741101451929269710843172692911905422485245392458519864368600310659434537667486682888802117410516583742407244012018733623972155398896512800376468917274335105371138673788950528404521998653821492947270801828482688584150299332063082806069647395109062471452185948466124903195817662602677032024060510363508490484295729524115528716743941597709831722767429764195242523128429355962644649904729453184023785522880763681373105014004190815875459507056992161917863724983094350435553126987978817106131470728052972755153644019721029534938183970736485589984444442692719705969255493701474019700284571864538892808738085948375198190355775708754153743366283033215738861499104838969429929289382243949442012063432199737699152846997750747175458747138217129939570456816824377095138389240747501114038560034849423028975638101593600250943964500186949754650073645377824364231890401122513856425442065992400632652632908976787738179401731256623964278086095365898700170741328577572194104050547216938411840006776057494262620692495301317002065567834240360774538604113337813931991299597102328667743235724217717360087277114135859135407754612120635307813772165367366599488694427022173263543897987876896153497724658312818544263659891942067559056924678039108097172069057637194363041178299621345401653340582578515454384803073567891567823341959662314399391552336183613168013617446442990678692929771221325527881382804063096649856181284357094901748645543249872383913310179752714504400128257718778497114785225325705289733505143812596336916439509917513732366813160979794671327562351409568904870785193123870389900597514862170621663874923712166620937231308951676508393509160905070674006839168935340334315804994117048698922298402862536381813105268320195569306363228212051373292108304156199083922338210911329639836708193870406391946040842534550116278906306234641276679187445333355345443474199484890470511969809923966944441512807130719708631892450933682510504268315659142506742638257683437867057999647265398637221800039222733559762997175873828818542435084325893991695406727975140100144023147522013942695792974795380090106324721687991108739508257038017640425377447017220759076171250536800429210754103038748961959814854687774257621213094444858562143845052716738655237010978212233540981803243787513923284744328172626766927495971857277602114474640162175693949718847363427979849597710406549092851919251073452051513814845498466254597562740094825325122210918183231807606633052349414522221915823793420965636082883756574105487352833453684030562177280188762169203747265633478735789764235948284071827718602596957148748208850596731642349203670237830350687376607552622258151846990767699511790469500313318657414368204708537198819379424418389610193496398396316786791721541615878971521585159148641371304272205380628088739454867163587745224331598533010945130952784620116735013461633818993316054245924346308689114101355543178251907825928677927761682425770140689813168934036400471889479225389105403319216130569026422586355240266377131975938159304924337123985885427766788316416852334961377161461755366552516558957276368695960947594177438527384039885835192179673296486772507248006240421256720517006506372328892206400995096618728279295889840846111380921152720501237024039985667976546181349516144071633038733108915877232592177646306999779247819558473590710949526826667229933952850444186217574363528573490124986643056595507116481416408559754538032189642482268431353786542637453486085517004010750885562478142260925893960584836295088078294767574291794784743895007332181022363402629273178748882680485428179807664870409658809967070217504649923230506395392028122112956072208412468126869348199450549459162757327289021654911326001689243357146722030251660110940330393447416593198618217413393048208745555924258067485274807955889949601701849558382683066448727420682189532609111263421473865503256183498959522477797017963791165892121386721251537332956930265771971513789571487057020269007744063808437019283144085012537943900486873918284363019124463928031179119891231407062453706711935229290496189087350083224339185457998510124272334308567433331095573557390337975266747608225959567829445182423794972617137042516114108658387503636214839499377733909435544483092451788138517478955243981844513076804730439299010156273625320424686046267371650208763224402002053556908240608964323354312861262426925033976101244123931110199086533632317485768661142797087395266143523836669027382356305347125818661042719823906140533249132629055740804245525925779978285153308222868773050022647856504397055300064503469963133618935016437948677275665472901901288488074576209942323511513220613376294922181714054277588857614766181004942473102755413695125959484426646073720549094970378502644779557184494512416961890321871069727839169279661215395972712265315259397516411043860396198924764559578428877731767731128101595688455680869648340621832411714703559750214890180976911416468057425243769951360556208919672906909714594198350970702372125753029548856228836161745567423468791400117540975008582331045357658705525341855437351535517199662744544188481059689035160085403601548195605532060034199203133850763580242174984197740947162439063452764195866191937670459082041690315600079249970448031347595917375230111295597401307647939216078341674354677628649720646276919822199665017592574475090962213951892188455345873306774550239825227483788528414528314026370043278269009206712529478692249784641546663135294346912602148073605732346010053195939351090171807268348126182199437315092549585945757466498193344347682526894811114557142219940288256788487572982818789705417602041113502408599847677170206058034975012146363374441345067768883091898882379535817163050599284453556677893677506367082174003904553300250506852670387552057619500125048233847351056752402980820117767746338851351292515969433510943504309440934784659514711257368819840074576352764131195217251125870134645500618798468457447167828776558543828673408415591899244689861308182684088084399685073928323891796262254644282486793797111447698206831230849563782315056682184209129212919705484828697961222460964092579581506824427325662959823096552263429972543341799546315354149146958758504123092440039378883690526546410538973371715421686550496688431953198947662278606206920434959649490388495029413522285517842310265683194184127778795032775227034044559140277321600801380244134362506785371753364058268446681482732105259079635177476187388530996795192221130147566268687998559594745835780553012587056956772633368347018582804042450489577704425262086185107331323754505276561658341404623634185370248327859311057674259332960852322063352822364185548260872502672331808255696274508746545751232836876470957875205626307200691099171639188828731873791077724461937127093804451560956744437122171420058039228718075713583290942896526976694483207226463758864029422482658407862057502475162675701423878069199809318285569712468802274073730317147593256385954190726297015500008057639355481684245168277837019543464054017116828726245099728224915512900821529749873506912833892186305147662590933772421549183929393696903487438011820642539429440336460821610078315615316458971909888777578079977956303387159019871830457232361949030728307297183203876413865396181883705310036146861488232639321957191467742318002122378069620421634654812126959442904281492204116692069605010598163086520090807604093401025965002704548557824318809847369584971934612838254995566492152168975261330864155515834199553469160976975397337942283531459126104689121203998804060597816927983095458209175619795292060179045423975064878680758416169842212889039748564186497018828150380891397991223921097657425329348392794779365496634977080332644773591930134326329696530559094816660556778781814641373198890685009786229960432476945375186875999797292503231882020010539176427830157736284746448658272206507870073913391806666640266384582060770924731008992204944426198971127389657365838037520249192488616126238085833965129938059925321215724902546969049314844057342340984700089498778209443038258817422541599239714602816442169885098322571126394988632148217386689393272466062174550335161186761618280833762402509191019909395200866736990168957994010257867674813423540637249970213233359935139265765020088180467106171933121629909450354091944992977141802786718608407739994937097589659719059845781447565164528954817661736132417505220706412516122144448924580915610432064043618454873478513939253621030479946005017690129400787313501872193521549680294975555673779569463890457435360713617064966831059741401352613062459359387949588651913587806812813158791932590638620887171825685249510790280583876225226120937911227384285023981514621830025853480978710969991642226082930426466669342961855315592624323442068888718027322058803845742508805426941782872882232953970242673486994087205249358347773068711353416691111671736058146840849489699177633412861929924317502433071750463072448568042958345936600388779842480523982523185058613544730669319442532626790028500656684879236723766681125524290084273280359950755704947360520142242392248394376274203492085715434529123360829614421052658898931132340972957134222907769841082190136798038558644665443169624607195404202018016507390023267876483748260469920179121328681492564438929121543293025049671738929740775740565246183863380259353939488185549645282499329338139965571226686074716437188002347167323894618074582859087044381511699457625758029180576690855274765010315020856058053688836777275081151708147678119120487058274547899556053904939242358522664540847539773818840347118545494319677756273617050072086001694822015515884149895793270495457425689762233606292006062703890630793563912512031927887871300390535930111367704620922880480854011181181371498931487558015912431476595984301046270337642416096094537076522383288078004479780657300926350004681149681538110407205117440730252620783729071575125645107308435177847347268804303131082256050987623615111006233120684289331840648069602753232787996485431582498705017797667653680274827407786081835590278847076190437489604285911152003119673798465827795990761380055460312233475150427973153997944322568663887811231036605593755564122472885749226102384426637850536654800996124581906609132538889715898600436270055311639152668947539608776711232264841751249948481475387308743770669918472322204431767134103789493264242749933715984895078057870111738223872988250637310355995887500321746221417585446702666343689933948374685159156520090279754574807467663017629066978495620839423176558317569820721911554666150984006061341371419276390509041265804790349884263744167074606611809219704203336140666868696671553635006981095496284365429636092650314906992406839320960886574088752227590097707824873596948376910547430068026862969093253101380720524745114942004926292806480855350031740182959437763550002859729030291048957001581005011428240681004334732475935970367294611396351299473761548686725771211949124607938128576790406779216387837609980993955241620816454605570898850835019144155462198748589929529199615161920809940770415430119749195422724572643575956897506698466520896558329752585245226157668322792511633295473408861227830557923516281822756537122033349541053771193605265915967458744456582600050950490093379661562931828310161735612830781251565740753365061371163843874878393313814337072847255491722359006843204692324293367236583427990340632962935379567880887322622033184033202521619792288057275617478436044295512730930810210520853545754551713235385477574949495512244681881330798480588038148008260473361271921394679329275279746892308107267327985543558714994185418693320112300619959342852105886245878538655691795255581747598874837819430836297292647277636692872447458240305897804884761198638757794602498591284073258276080152449573329205317633212100553268450162263347457241532016700818370593373264851437190137724996721234597180533962022151241378991539250921471220445278961367452594449084377468599398898546310682748877183540284332450112843552275279172375761834264907718961843319412467894982375935254616330037085316160019197006992126528146089815584125640396086101766069973541950977766661934300468212727689083290465733456722525343412296082523789874057794901178629315769856756844121099431080673003348935457541216484839838082755748116953533366440661346336689790243133991568314291874224565681607783593506215624420904917144520588295154418052267395962162660686050083839013594182513014625374943041633786657239806700761888319911196854439747205548161243314769690344711496627380820558944234322377424256873847856949829922518294750857250152795043062233189461981200826537345659031633927389050069651042677606525769435049281340344284489002389446020152237764068768529891743047519508688248215378947426315884392763975131350264387242913846692970336604812997267618671497397155500995648647729357871690530738782686876809225152359116030129302285847714722737112037064143356655134385335907377214781242818875937779313113050154391139912895245899813360514910235191190199751025366256049510850243938101344191832228662346590562258349261841679497984979070269940135834297989670710692916484529813764275302594812332456956689899137376363576681488875958356272423174422246421052963365991252482037599892215093136931087669885498970539997011016463186340096026234242578966467741023996457602736377783075381146102119938407811971363986448151000462094904704865723251172419960530919513203171293996105094699400411096059238417996412712153559249782320684311363795068144164064916859023496467902524440936947712666278123913454337737607237346739841096565843378710604596157263194044996574753449792148046554021714607582261843303321162750776439124733385030500365559514225811173799059172185218800587011355565593805575921590465503650328789545938586164382862073658135017908911919063862102533645642928057209678341335071810840907148272327713317664568413658154003811401369050188479401852986239510597685702321345670180451014482683565001159565509835418692967381638434892707381290123344447031157513173725833643453636750747035819047704947335326825226788197525900699673799141238297779599896177400976234756999315770786407076132594983286665476583261013749897330087557932036503885842741295809172999829977836719737972621810132052768220436404123355226100310876033329389370663690252407704562099211087118799210437732174910807491407220465186322958246768255353516633982376440439441652753879876322987390649662042584564119842385200271835548001293651496780217869627076170581948839553755309246457541879414421689109707238022995787244198185005485698113960303656057903934141111334145447236196548896708089709100321948978949849595970804234432574066961405776742409772674959827953230370542161993881978445107675587086227859631738138091815289040913327478856933731988306374860515142986005627989496319603175067400831810546646809160713505324153154460861724039464585324384285508297886762482412486696410524624455500960599936140641388541587845857702357103527036157912415350066546969673396350182450466191944736427186256745570114318523616223604149060280843820016529047879627203030653444759548173377992162865632709925509297599469573843219039693385764868300166747001067494534150085302932808808372234563940079795232099357637906002590892467532767497595318036554483617454199152967186661557178194919856635236887792570796312626255174410671708109180632912925056117515752220324283025514728623891735193327791758534174230921388635283578306818667437618333510456864043408430984938947204050230314808482091760040808073604930882318084276188096842162942410116399530130259854876533745110687296454584969179050205129493219971334457397399910787530596865153036209336300225089538470050125020442662389245942642025032636804448904679146288066094353917823297854764254422236824201473824097300700086104412350180080865732069319584436512587733321373970846610498674643970092032059641566658732218813457497425881861132648659227451012349054772332601194552470798241070630569516360378969294754685495873206590968110212436999276236788908215990848798276100620021447214983191246059887556549726539069869061317418571489566226800708002342897184881753770555275426635325519675595140511024994848136595436667885555675781319737056927265165769745910952644873568154160809644433450037337064690788211948567608474362676699727028305534444064397432727482154687122187049860204065003624135723422680511475209136031116637978287150095879089328126750406514697976092767183728218295459311089623747250310093659777957738512757457692707295306556439678606475730128425726288819609303311163353383247186288631561615136558249499852490154245172841413666161031831076199525267891333255517562669789042869133147220250257582011898459049665430210017805322834320768264433087625883600945103482285429129972810942359359367401089496471284101407821841486800603690773073654269233214890898013612970060411946149022061903565325838562700354106129740905534619445575327988886427168297549247214570439565376065836254124248291581211317657552135661653643584931512159773976453862951683542653502998553410743021132592603201773403753217567263701564342461507750821330000048079067557531108964564306880580151313401007846197870109730098428156328329181030971175469114672813538388760764847259806226481312477100424904192317356815845223148753874542671064200154240846440736627663905885231396825797063020191386352886878058785752038026435301424498121472100468015681969865191799168829464235146386418844775720908443929647623637297777567324848863700988480765251136733379646270208950251353603762262308909078315178397014998399584057813906366144321812668703620222453635368759502814384477829362793736440012257858731409769990762339628688651068544368783248760844472456272857040343921599102828270206669614372289240581351464419208635263406928638146668934635244521398778004219116329831162903389933334834683253824447361113273772594390578819527824366953088908527749557526273636924721893903125106121631437085224354909957091236188938817161197983201076680595423745873530166575846266670048891315466085071875090257319627982731597932611123939955495093760224185120438540560615384672374189882583870583884917310764667159495832790829016668563104360050495407384179274222211666244362175732142785656361471913193390898751525348640072333724434977660002119240044239084575438392413164551218440934002223181192155691526312328179276384226108606937721176681810970229103113503285530456113648450350837820718576075623239192154933010194108324346750152702408377802983763424990264358483400065927714611875059970705596124875072057228727567870001124734681933807631252469744551419528909956831106958343730585552646683142706447004559564350639584529428452159767523750836331160722828504724623714816885493701710159804378192857559373172027333370657346082604165644369762235880811740733979555215468642482906936431773658652121755598223444297219642080705598011149602278118302959362334170005976870600511707046297143089928339962343113000661459437366613518784781222894848163074883550557349222830823250369309217345568130450317737859466429721383856823021788371424313568080541646506501570198988413429260599764312419245307860308109719970080191055484882025417568469457907975874502832253502690725349212959427653111026332865884157097685457092556205771904117284099253390456220620066090362270752855144261320797647274478977224134280502869074003669189610828100007249484904136863324391543297136314901954469435622485690623099495584006805845614483480058105247169525210943752556436789648190234917135359525532436416005631632570908465303319742535598050615502786016369026503601391893926379709683753322384740449971924270073838783057858086322277879822597728685284518300583941712108546956978461002371905836784436725071784296456449270085486973220528755364905715611008151111513817636494785259318470137153375135949243608320243143391726645333081835634616004990455849714595686405507570386851426082719951635428852885941660553063524354000161262386634027751139144440438361459735128769730860922775032290092255916516857398578889490037289209500568667639146382664548360820612436738432483808913230284399280965126130770659667299371258524001830440270695313528751908075694601735734461125925671571049992821318033132511489052203807516292698237910009474631973216834118560281913840170722880758545096123700087697152994393568073912982730357230825251210702704298103431262051820205153461913475161247253157694046301797579567768104389675326145699476982007527014703340887343555715353711223802836496222153143124029581123128816290031915645649445288428228738932855660772668014324748343285280931088440708208550384432994923226714980077731226612926952198818914017895150677785743359249571387444134245908235388972282103200852601695537819538251584001623445128268718421011524848478049667353963260624845838120822557579495686246190758104864726663463611282349656288401507568791644503989229759376519248985511616741138972460440502130343944825398615506162887237859275163277098858672936042561431194150178953576433408341950373625358120520649023084268063274607998760173339664320702735082230463897099680522261082559887676847361023754792273936114444706351343449208693890937951798348142130019233415698660615266155157427281135982465265555406010005771532991599248757275112247638991205375550285024014239203741438625879177832398301302517400801995360845890479871627403189123201598061365657603966660156224750820278778302375133586631856394275680945735188902294446660004518321374771863305865912665464681534344815538060728954455203203671016394481553443909514249836643472356764924083358081708765383148814554980870168186571249602442593599560750118484459738417462227947610478418926335271975966220947047198700686936039795515535290534728744345474198578114080763654737766842307971894615940083216351104437924519658674151144269178218002999810944316377919058126110838107137536405382384897767929554622783342824308157978327026656300038868079447824460372962573478705370788273551726709289585007583999478776220267512718991668113595657593342147679991061918249101398234232217050053787683681906648276813003107053333810192348294701615015739616481973907851585012945707385392428432574033125932173402374392260870867568073719327525571658208617398416405861660426671684882402586000285968505615396847773893322379383799988560599442314607616716313338716193766822759854763933695724383007469383555932171832126227142050186916205274961439247255717753665488871352627079127369604998163552050746836727580710209397272059648701062942200505117681867486195922057226749387905667902395692390993752850281673632928310256541599192886229046970656581490334818795234533682565136948035953372953486131094722998481532298199992966482680843980545815902318452640912122332375229910204895673141804229183517623922845108215836444288488473502520980238421547940196875628319523218897688187418515544429872796292752223202450071911127227648634863633534679200029470772188734821543676424687542134071329164409512380230851824223946988991333874618090930822257340253344758194622160658515659718878414340638090774347019827940121505097022810395646813061375192927685718361994795927359302574772696852840434142246005509038667600026204048691871219062731440422332988967795569142760192795488618296521604147303644828142594350894734568978163402310789861614446142795920557936476442973669318579812496961003412294897044521401263355406771455350883646676504351744190698016922794838748379390542271824999207344333076652498408723430111557215867126830421965380959773280521689727249367342639065112546869851088753318141018020953109970232979746359297371327292953022793138830671655603474652462455659295566349895456561553971158321698124211996967670409679614759460664215313943668730678540698517232276222152556955803367513994221966365437944969502185184824983069679367530739558323839018355978106671212248228155383168494761298545009318662734703630677441684725186601396457618484252413002334700662889162411678513659285527220010903885344908613117482263336290634320665469780045991682891218630975407692170781143886140509929936697905280370562698392175554426627183029806862672910389431525309729632399639844354865426190084219133577329603943562648049872347910058092189773296059178235531672138554798778047466740534390224681057168638265996777471231316269048071760204748755573456620437856012088803214906590807656566831867956450594687679979620614557706120654576433586884896909471318946909420744869745948737158862507724995882633724815753883948258934744103341408759335545596460985561123357183953910489430117054604643818036546594368876459613801676622704626939081677377829734494485386300486279263778369267559509358726438969438645601679369637512579975292309008969451586909891427272599626125271850558289017497870203344149042240326423515918807302615989942908519776695743159924867382872641250753467236558041299220365598624456845747531287473494095929976478253342221193250904799053496090102600931771262449827427920389268086325999925491352231873481358652346529849324960696821268095972040334908382697683663445343236191696107486780680130844832627851901798162334937853887412042958565610013053063325759983884458172014640365656845205361576149995438308230640162672301823740711675235666689739570288351180070103132242327175343020852729569024133766816170968076362394037455590751197184229559367577199706455845501408201451004137330196189408345351694923980192546789223158547685009022941487744357494637373801836342524099803817799048615348015985759520946527373426304935483758788869943303452318579989237036486238684936498802192777863780908244788040741843138718894112539305986056392624445239167234224593727865307335370774896159541030380475849542973321403652301655498932531563976136841088381944783425309811675515953951105870498180443697116341415248845429687890697610317227980120739976080469918349910257858241410386246171706327884020018450108295200010352970975397301718670283666370644617600909246809371995899181800125180769070486753737581282812663111795540453786686617343491564086592773449995178507738979483338193148098919285372872277749781932759279108905724893182434432820019984816597233966810886824708094898052702168863810841793551206641019422377041454737113828981086734002868928320034411125804924913746848686280117126176080168177925777844441109126689195320417049358314717732969530625516458759489291067251928531813978275297345258180715406857544429475109551512684696971251925907620236409258234897707860473388258149525010634289804632129084406146987304037460551043803268386325445724736974208621171896814927450089120860964433368463461646695119537484540520083997963882727636323698657486883466346709264026012111753002197954111644689751138812449009374300846749847800540617620255198201009367374874156352452834647622732583662829769945971775694348163015825990266946682409393337952603298668310834752833695501248334351083589170716261224830340707499007894825377700583069601843172722824307366666189946597304230258754726118008766398407825887383002666278639470292832798071198541756174117260073944577557805525756071319118364912525265082967075669220746715371407963106382767114012805407816060294807472487448684741259407230240987302898083290555445471148029690989102512863088205664258073929007356166777092065836620926318244375757098824210130935465237902091491123376025327228059221548421890972114979210687264673171493587319104803154810283827695674702234064273701094911265317285469118193351527530687162428040489477387622363107788277476295262706981259273227053403105721257657589681644420787879564847675079123198085794009343793446146815238096587659057227557939370079653207325609436234029557327089756053599423807321383541599020587681041467545388202458009922985786664480981473408634539431847503582512987751714573716867764819025251759444245419039978464502804057607441379377159425779462286769975409313503719125081528097047408992262007736086988326033918549654816760799580201552865949306996843994279183061537856920234919848098232235382426743326391613604845791958244839806811280098246539447479826670424477211586781840476106082184870164626198134844788608997917700766068318918618904613461994869261058780401156978531261075996556897607725498378473810825927258883690917859237973449129231823635149806807069230414264958434945801126076425089056781572363008555846521650462042419343416832779167095157502264900401180008997439313679813560479270394558733353982595330678179503192875115412897144117353385146987470071678701875861365898983314207173169395917162790558166870865863487706022560553789367324918006404543923387434258789362715772233779325226814992574601105286650252412841794663771326750723386492923782716473269731652720795660121460881143971274594925225608076185422352499053013488803297359903943828889115793101753333913395908472127585726374995029498502414881591166535037519538588973386193165549649061709485908736105912801689898916367437483484554955264195097258545922072783517447531147555463386893268947993422907949340641817629427779212060447397684256017960883427860246745533207777232494706805737077502760160474837124777398233373989142277070686188467567313941435793040630683297512338458557595890695898675343300238263488623368103171900444736384704253357337722900873638359769320093108398319930519555604738038611025009755305124756654037056363951196861146542635245232484176755393821505810798718910440482967542071552717241971947636083446145218505408445237176004219884012137453317178136615892223486687228302403303083675435125125996985234437017591233963483949773983234908313711365704390151348436208849263715710076657887945553071369972867372970178139327644670662092878855561095270122196980569427414586157824930245957006895757419730994513417094681558490183129453417228162336405522951791358126909002590002362192063663575341913075079325829492343988222062749473431342545664658901562818186475912315946188814046118369895944441251729213129134527728038197930556573536888672968940114856884955713120524053870137122045348634160250533819481386906616042086417836221890606007587547301730776459623433266454829824607267154037685113530407619072519463212171803649072023458705600018621078764223925835859284090961757690752333910364964011742726624857101135816442876597840773237183998267580355971941330390136799696054168205688549012659448350828329359731691135349160744484450110697443542824299855087260005696898961659561587097748944216722820226812025406742616856292345353282924351656863106843965491607754628946654041576281477537196699691817668052640362062127008574775632403971033559627564744967510433910844560051933892368033062998394789812357737101485369494895554066219494456048789223672539173430499824877593237617949883137877486345301795899878982167837540865013090532144384122949936620365256428292822601175476784012857531637218019215191399497568852733478022452888134837710512400630434160463730007975415276108755134633904681471793485492368745250300920842598882087122522550037767394229037275177442374458333272254063626615441541009788319503614676028631087384144305816049891584099975849305754336399216751247759306008294630868289163362774895239393080020509964065296581073150252281521675776802412917894310913147783344077912465365881556109312687526162580487562301281059452102313796934741010747195523876080841988800778436162263171513607244336440783206730546624994227493140252636763075680717558165202843983220596190250581752621762509949313479736049040722894042933148060735447660398930934140319450702008229846138851879273478968090074038810690151226338199262369771772573106849887311842711478926847414837411382026612464484333221787625273961369523645876055635846527246989985153636482563766003119881276037814079688459966827542405528179832194785712594484280195944835183637864630065157709272973581949405861835830805205902751675700753970654957842479947805652955250835719906822032187407334454709267952246269780820182113460481065447172802103597558974696847001059252557719223811747595446882785597222777645068912265563673858422239170544261689418785089735029502617075696384596633206164607869925858555555570967138402215764711042819512291625754901508136565844078263128846573856631596894624660598584610862630094128740269568575379642489835653179653237617893382829608183570508144349479113460648327589381021262536133700220682080326280900885475091761875062212349426524224575986801890750155966766079472901142503447592038405626889651484968763025026944192031700022591996942582042974535402941711423219114184137024345809230624432492046407777825110435988823149714817075659659970008417306947076795418269357052843548961346129143529020440441284472618879551800815087500459447878581166441071969513035036323882881363249689977935497080011502702745733951156178797892171698341079658754646841206111125945944526812851084251492546883778416083618730270133318852026075388689567549159400246354914563099463704989989456627487662453750995311744978835448553123321691282744043507125032849490009878664398645790703027210515936538481514621006020393126091770996667355292923443374619776708407374606649402161256258212197431026223107689764284436704103569391270348080949766218646788264053845923446937611228302476954782680449956702267146296035872400863553069878648861132797961075771853372452424770222581357501926483199363769507628774528473959561796323009910777120333393640404863263164460076530155538994190195380642000474362039952567012619611766088058710007755169631531007601647271174343874113349601143915809313315913135353728550857764289815593145460337785957669607507488803651271580632306383040850853262755553828087096207980883634132884449500437070488995521241705492007076303725023848937328119681476750997251713964847807520972023434832048826213519155602867414861203390753200919990768412085758370758034650219027805019043779567928167076734830654600511487579685858612099011789937440794578189279813379170492916031002050782863134869095614257632066945697430239166783857069296986689972851420545770756417507649828146006613783852616247607880076267049661278561258459252681976869690084459025527119345773909973474447938488802758591462068540400906424816949644438270034348573571828443861724709891125745748765546494640737308941557542834829398920716344792460372938908549148178887627189374804346121120809648813334081418450324230129051767727843819618804744032932747005959115956088822101181021943052464536732990523096289377842799244329135254728755550717210773559938333213937264562054050156207436894690000993321181688592433969948156189331859169338931410448376809012763815185007669419283161143476455874162162945919194793795010704765057561432484784777799508361383003286964804153116914200154248073139306518050889061275112806396646826452255283190774928855360634393217566783290092680834989092829260602674091312924985469486708865679317560755059784176656264425860819981156058985079012679321157054657415549929208238734238858325899475491142792148201941222287004543388833096947036089555169360477721113924443762198970390624742474471528671201941346445171701022902986425035730215578111530048480557948643502889085816984504875026831555253345960847937191104662060246256031418032559589875703442305850404679889251653546372280704278524950437568377814688787826172319522456926425447302160289327897088485117256009727333792518266724924082925843271083845869396047594408478489422289021884760087419598136070271019126617777836744227092517542441641193343485081457354462442747727121099892492939046689962142020941322444290160269610268153230058753017475236529084984688885043580630835636756475912267382645771578800929125632623474142075194542269031540237390863909175251924456795133553938119772647291890824072153069716354861494948956560808487165414022381385299108461178047014639624328294595467277813987301561954619935930392543658837749112275864076787191467000410056351841919389240991091490315921931043102024524659363678990194727555393841804482846170293743897837835537656531988862141693711461031751565878343239690646920953222044825500729403482202696261239930081809417110011695626129008505371943573861985139008970123020400963241324809132858924158338691256685867957027184252373840666882571221355690615317215389893838996192760923276383867305444033129011109696699181029250298568727501757087873405004212989556515911593416438311344868826622486395347076204311088538662949574110523401960911869658847263824444332859612134328618895237310435446031805230521215418950340145496659531739040819596265026866230325738353054560974527089967309840505428429731714274226484276441619923755870108547138658059207447358150388958095907560604721857832201806897515204189730873047658154864591192740458685844360172397981013036077826537924524264155352079618033152376320294310753543266617395519792526217133881841461017034648740559924890820556124764033641545662179542857114197514122551576324694796260551685096696799746986331621164011826284472249820413480193249336854993067872773423098872319089753088619124029473303603776213845881487073194041668780544421886532884685917796168761808957904831500864627322126020671953486262682581051464637158431333882658651713263607715640521907611244617485003803007311655204619635799352633162898651814571849917024805508912483408166143529782496226960737335747204212852179698452827581069137169377844639174246262620245304673306544448989277635943081426939822304735022137553269936512606353768922844023516823763200584432623948293686467004834285557025463949949241973739849193671260869065236652395432312290048286710823018821447326648758268703802472655651418544587393073110197716352694890224411983619448366975141772633880595347293426552910558014612115071371718271884362500068948216239995664868556191500458742621939050303800899092238892578972867759634963253333813628907502357425200615225476733663249219046281623981765069723027438523703344171193939567002948700178130778731952892305766569684024087933933165396418249396118033054747619634603099663161443109344962646917002082187872115069747214763517462571681866411195469255781010622264152664786152496366231052119096690319818081072299282630600512139881588011871340561821941554288890202332336843944322599928340692361041027380788717812229932733691107577909337928051750500907553807526969216686326086891888032620721330384294228685723020446512929898198830851979192049688408748542113020702796224659450888446564846411695221159691701745077992272795524642567688537703652985697401844458631282735820176398753539858767682635906738964306055535166567235878870892937145054177525062814886584097605866511751708457008148769585668662472801490891064987565891718933517253720903400710454273912879687376403417291455466524790172102686608580433553323783202119837938188578149022517782982443198888133692321129950113185639136414638176343798960391118085095813671441748260659733578727645710687945869322999684039800192933663076891888921604553569191418558217230869251066509783448083886591736941538466831009756889271302092729917319528732598769081990202595762786578031187886387530190051001612957495080603526704877975065892024842935520236718768943766766187162985050769496455814316197745048590722822471929433772664392934918689057724231417370542209807352857809547596702446809000425915764406807316708792260055260877737498515357045371176047463193640767787733966601101639684535622710884673883056859064521517196242631147820759559646498924808133998610568919057909165472296560442396942048260807002743982285884237870709950564564701825231314667604448461034379089751042944614149288583961976554154766146537627247374537490073301113622120503926085177588761137399390652580481665864378157801127383663774456753679263244157630578699718705174390409732692272470066155003682802741336071802161861349496323036558916704248900536956817144120422262361856029094838461093006208329199656892282717864724363151883579322400750758898311594115962516445106860828896927383229066372855555420665885871213256132611148606502819127826873083749195974350013596323405618022669288139096634217685505851624934453481241810541375214058392883018626749146972372077613511926532768204942019557465175571233089816796730054064763645580500786265275513950342470509603147274911933517490199418050312183180299291629136862293786839781886129764428773607224584472443564655579611602191675688641925427055335168661330756116822948948833649357470852953309705280844610316013857980754030036435401602267292058700339261348802483336367800122032777163688862908489618059353023422609643539647314325942893213994546198876825993262006502705091451340894836229361320883944279067129466834957180814879383959399116768004361378985144602192937587148993135663919590368686660529841534043716383609578422174450905038079470508766439874787032250827821050114788160157715373924726833932562063278561462247679523565566304970163494468647518655764705246848877367803253195695353051562177037937807894210046312618978840446207035851257846223372987996202974824158135694059345075137299871834930912240169660599122522328427820984292785775408280356785153918180605767579548859789390310972371833868883635045586286219145569886875333538406749947652154662796796206319476002734138965959555602432404559271391993713661378837897573689648083142386067794676432845471470566110249291309260695243601832541364047884423503226493207472537492457595107911291786926226312073501545659722706432195784484333851993389761083584895673630691781230168827360648045828207902514033680817686464870092475839285661135336456643171612997762429443165534843649892653421007203108200449379509084985514857428539566957906526378475542440264821625295344118340922217971727356267971404711050672114335566185104586036658156720235841894613643806368346836465121274737794489984855143173114417738508793669879229125532654462201339493935699517268330308181405535676913698501164437286147401189996401267503432778244974232408615938328378847139498946284926290964015577969500222021358624244915982850081908611459214761477455574450407312628299304267016266037793866111902108639314231560824939291008231999034144799882304483147635948973929111292112132311331027585110008748368945897392606889210909579392996639785371591411425482761290470968077373348213835139214317254790305851397265934199324769438842395368165509953660297646074652178843788918792288348013355720869497551460493525713176692167409314046332181225627731882160139639366827660882780230401285001875790433911028688764513870954160516422077382044590865925959932783251982029828325520241598729904030828113911879723908507752155201867383973988460381880924049684763100886909423905457562100917917515857743546927017317935971256468326620669545995926930182775124688356511008194146858360906220553304802898711984690978564060170446030102767884155131505968123877453138700591817077071825033511270365379366054075801049332333176336610008224233592330334551339316228541153375090703849148612727173274227146000657570651795774678587736824750777558206669331413043247929378176666241460461270293389773293533610073458058091111456821792161685628655260656457889953154287595421421664842698167574066171550097114159861877875171374173926400307072577663388579978644551134541592109565319092610454121374364108417437130020397418961481323184482165275232086777108425674376699531870744309728588612394818251623577680191563478397656203881724049636087293265043519075185532289058437246295501125399543808367024220590301745645862440528482456977012438125409492878536184406129268627531002742553071844837858381968331632181617397059212581538747834378083734218983783921934234235159383325148457963361143189817928483618634372703499281090129273075882214278921416696803310975451617738277198503500599194288706670771469559326876120645342074918139578605294063484223993333439496824046529258823940194355980842064794987444725381846360909713194882692308769387070359964287728849188110485030332012240102170719111458406704695084383264105178423177642731054676353011977077622324354919669098345617645345839858356845200378260775905986610899832556591766913568564844090275579380816893415285731959930663962739009369290100904652019741069142534375450725825066582690036666966822348289769554863515058015135398653278592251257379798060985843424260997365815929300776695335371104754517765067849940273964064607909240394657815276400176140023335502901747690998892147332091777441899842646409005017107302434242350183397248444680701248781748769060117563023844065869967037632370203040176238322044069918560635944294100486602841278316328467787471042971079451837546360123005423350395682982654708917043673071410006177863069470114683839160735336133811332709490212930218669908108249953511455886695967390738368755636483784630194436271452116136506492039310999044853320147513100593096794808267606306202875382594077872438201962221091048375830235588288797143537594537163335610341524054967372490435227188742887297821316803634880450332936166255134384325465082869205138835161701937631170285354682161242707345897020149884051413433223668531675502107309544424293822833243165397893465385292904502380126334030654099248815309384932806221377818451570418082120272901302893241003587251538142286058929984763269116948160595739341169621452713298616959396763470317386164254445471337523215819686330916898421821380128410402404047666612469867236874958317515241059900101231121986784161553875366724483435711741513263865251256888371018549795599325890184611778491576579927388441326469640188913712737526653847248944424659524575906468843579110796313388003725791630847349125036902796554401087039624487490329031889343053198254109783312316231643370274169227525304154080736165193699530827768807300625391054878669277410406717100788885021907389116410722115059904449812060150150576753552619246673540003616595303997781293498587919840516989620742875338555603789056067960568150356792845461815238889110926361971533356873394016507780982503244201526384164546899375938145596429258003271157957758215151020811149788247757264371046659937934352037752871829625546959344370800726899886980253495237189598192548285359318683558016587433417461416258256551532045176597099942093044539138982920923415967812856382685380753025661150899997579862480115771606120599792302382020518190982897581618951186692493620523399662398050286414875549471492031701559175696770672677000707331096047025459914712799300004659155822406657040743589985336716622897165409376235230817900508915587665977469621108950117694724148417096413607193044782829632997195730940385339197773332267315289751993959548247541163999177131744072638097881774023007979002478416952266326891487934830648135175452252628683090776391717088607539093035379682604383526987190431272699671875187709650560538696493529481458826399367780320874159042522319034429740711360335919149678129485675623713205664265066984099069020407060517709221048415314581604921505288728239573926681658253647900586082269017807899925135120245359656370393985091032606968591096207190051772605502372518720259939056052546022240651822951078813067185258323263093403793470179260624800309442848661694226978906007135826854141931163283029491117109879683388404932377573671817500969403785174681406425662746871648952209730872099137875131376416411703550702472369795908056205082940143287592578013717995842061679514450566041451327155093812659037505432776247193598931559139337839624240330597876398789796084661289888090992469726255633633820670584484194697449622889427820390362810437493243396283882726219065347511939558910228063273805830534689172565909612192031649763529488745655025901136982497986681977165758908599158924351468261012039946047183127036609621978005458407229289542600142943554414811547504617394886424966130748209310273371667095909012241448908399724643989630478449338032813883954836467446897792525365660221133435969515219657925070911669899428641965710609463122210761378875457633079962512460104392116796641975900180855050831572219332862054235157683345842414046740011356123033345334177424018440220707171631097355721232082154944636174524505988662854931031636826339003473753800140470495032250332657967200685542308874756923708357520680928545959397923106901815023839336040797021849523181044910562403897180827319954930274848474067091819199506992963114997961618589207240983811743881227642901943056315059038782209276732039768330258275578865668662073992683901790320913181824686623287752829842661684949029632793622995762373144966381699355787246636378804699091527717950456640425163425521732248178851357607862454813074600473544240027014345613227061232927940183653566180898133786955190221706175076743785916162020596357742925482692865301663196802639454897885072868016039015924232473537353293399072984919798129029226887106950550679205890040930897760826886635641360247933146473383513826595525935281462620924843733105907419100706294509366471480468189431475409753676858574506728428389283633806963402087639036840087247335011877123969960066499070378684331205065256538533584520247706472313731629415016458333852340743848000583510945925388191858726644459311655774379531038502962323751976709688670433118829588329006612685151114201301706547894853265108802178471493112956440385766695947354385603571816155990771959459172348641003463686465224372880928491873610183330373409873185025585002831870144745512011381638570574270318301179708098792406237166053054954286613240416539034373383799311511549043684688550849905909661946829633348561494942711183153981647211456769788999756876085095831365285554479980817888711794628353194646472882357056461013510471819470912425224506380250588854895279562098068441589510457742387658934702768075609303114445859158737792701003327618723507864731426857247781262546699552602526600340297690274978517033015968530724040342873736958391307286563807739429588908669446039774263486074157238669765798085501384201645177928841727208605694759724710098342496035997597520032485211260981071155739401895192899901386532365804093556280893415475073240138724704197515185355890986378442639345494372099676691484652285863466146826283641680905484890785425028518962592505396707456210684674449036407579161886202839743300050867705471025530733406475035420993223047098534758066180004125604081365261047034897302456352584146444633052477984507059544211885346605220634017113737769857989739568363909368779594391544738712391533208256214320579011451039523883729123967316830783058425745037514867337236587976325364966996704311832764097229187726053268755712839442598204692195336689005294294037151113886319973326544498221413297097189369480289748998883585698183673208641728406140925230068240455918410751386375122238171013234888587412433617595397324312469453957930804163770397243266013591948961922025429170658340058415124349017406636284776485267374203471329195034727450461518942700674900701200284308573706582783073521326892416502023742078215864907542338323210473387124115859078120591110019436664329958263294795912589694352342032011717491256826562395919244273104073464278317900598862717614541335891115508591656862944383421369151362104965377959357476434430500216256661162526148809059048733801597599322274581684349052405451844031012586355124169553903630512257198628474465827186128596228345579828340692460568821102768714815398651974073908427414012411771922052571189566525392456828133901424993859910190220624818947013870784516186323070475626511592346095119239910110439400269170317075546472895969816807678678844417201516924973409877725424985059964779439370936326416591414577183896550556644865693992842366819814894009836825989440381269849371890414119057236869643616778041361831208364295681715321474949146162342174448743837346909578218948756789951065503097336638124168501073118271968822318521708666131258615788527639891536137035164388646856443952975647809655523971142586829703337265584144364926197154752801732874340982220605163504684255382336175316486805859168040350497550860188098581746557690200108199117783250178632216010205078453317944516135570433745817274796856800986942959233443924259407805991032312589665321982040221791409265639053417868272385883813928715701114234686772081698938451687632047887392450136759435504330519515467059676185433624068428220614678112654823819904073573229409791229664220702034262785287487193007173494629857178749082252577942425656765096497127034734260460283292317513484415419808938515607983840073442250906986712720792737206621349203470739106223242430459902833763199452682617623578849167075294568911327088697725583506500895309933413526250748379214351361102799829815737042904798835213022473669997987417219569944205729844176708627007586882815762946342713115891212155042696485652069099649245782402679473345767381460094392350858451930394812585848948437102166031358713493933031241924153716804054044675052203433827156032021415061297743400577068723656798669273826509737777141694847061139859469004756010000684225186000757514849267618669723401706119439398815957555415872947099345136198923084906560817937747251043254737789066739085092077909295989758175166042253028948186122180101588603678914978681771733997552419569938118142486742260360842904639074839178379247917069934402000495405965495003135923397020571767137555653029032537124337478341211445227178581016691240737569118114478101343521812150461543218647982578224405850672271236752720244637583240231191697959705204162709543163040425692328138970000443187413549839112007993521593195976858942727521711468587824981949140360588041649696801242171811486845195528012241187282193839234926416523840650326606356444123210826232032471909920468749576305054922076738066924194225010417211145667420999222873997085362567437910194127479017835314301293498454371754805992575472708341289533408889924331047877961865008017973930665696446998942225578333738379884034042290339955901366621854726096982519512777457542080869499925018663881579169635374731305160351624953958167768256752219774452441945505142350629441025108963763378154650167392243472910348598436534973779429088761913104096243552410046579556795754099454473534648569932672093403903232087899578322536376316706608407125056018448086020606542832859237709138816329852368795407152878734724217461015717493600938995786650642075002905285985278989210599987694790899828506216851782506483242493279109794580194397009851428903366827085488676120193231131327791265457466465278686074961210464501099744457011108066410337955483378976896185149557156830813281356052206528777084673657240000269303778419798134468352675730834009632326315098514587724455415627424800866010037887841273011539188369106749232914946797706347211420842580797416753980335450922723845693016317256454830853037722872614048845556561420491257852305441885521505771349662160988866932522031400997093754323557934540298841570382401891779234238319948859053345105969351332609675287948928521639481448002394074683329843351966473086478964033040753938051684237572492593081904848982748134921295632282091402589321199429950873344227992652966572517804036299258665985141641584683607584865211780110932003177706129270164684619023772456572498002483183723913661374016770585277186573152426778206623663063878097077475609425199897626765977338587623617283453143588454064018861328640499761889417526022189967231752189338767850764774599311030750639988700131904966325705125986364054658702024048934902055188334209771597101395684485968429266003686080204670131920209840319670003359596103361486403002089115890173317511379095465957360754964027533270066892691931648373521524290574834885181489656187401066371566001340395857282742915678848595213195378063093525837262209549427077067365260095362564648630770870437624576365782540545951033732391556307029103113973474000871039180038930312386875837800284090089716936629221856291977242142981868725221972485408977103995223907989461466226748607767600277781612285681494875477442953892652611995639022132467502059136658524943655958989878692197789506831516496629641128143384119768201616735092019634826061281342751417861401112646626370367213920622970713586052834074576501598542467384729454101493830453294692646031690077986090739358673202866858451291196421449286110469384718338077257222015121996033678771536736127448589091393940724466744415466094585528709864620706635980133661863949528859098080702185318029916771303612710579211020327046880417246678725958867422558244645361902428004054527947056377321963304392763613143926125207474789302314822519105074983741686980353622122970565058187243617428648329198963192990451545762402590475105580549163050513457213304902274946708836154785190172297078139472641557650322249137411390504954265049535860835689600533750125581723300039967422471257896004520299603351978985281352193293879689083219760880422120852849227922585663945277241135318644645943927604253293324170425611620583466190774927875496401572083617269473674934655476743828973122675670963869831195530374534342180517771669106661760941364991746186969267181337233291291749462691561589285265328220695107457031878194979064765296847566627121095891080974188814765640212392941988735870281586795568198150647676678683169594056894569260989508908905514066061885688454348003737700633391726142629781167902258220548380698309589366295824685082252930477825937886001011070962587421106499689809635326985405382870812394984370021198712562213480555593514830464004046448085669403498256721757689523177197256805826954543779878486413365373201993642386035346638487293787959078855707408443053792800378487070737117961034970713214108087010932847970549358691767351633933373735656957803194076753784494384722994770747501609122551393249193446199041498218462312100714941318678369413581477816303655726904419501994448823321279813067124485979893720607610911387743905479635590738416153019734850083098922886460726840840155146573636233004736960470078220177958572800164815843484500338891220327172822990343928761685189947539541124515870916602649269310124248961131068710539461814853144083256293256442022702077364241372697848615055605497470581209780330278533411940307081216050218188017422705799862668405131820214276815576080501470322207232945287167093472876576733973664433131848347081618457403424823145619391969544095412177824807633057179651259999238674950321665413074646525398452340047015120125410451703352763962692563967333131593782703600340304850002046067433128021884630119593535155446077285486104631910867355495122475473586700123587424310472267742038934965383939331902384055443655925864815709696056022982905043873268640181444712266841343298290044570223156611060750961532972056162173117321911384708381301116103559403831645428305723342307455578668780510286824933408655426137295009782801419018876761747858137454554217220035623947976885021040058788909365903065635972028965427505854361997354663333387805508724357038358998377324527897041796565740880936742035681845383811345787064857789739948428727109768292167601710766243222671255941103821377413076189588407543329236902778804312517167699947885209333505293170816070764749296619413374310282327548369855851720638903411732608001624447003862211952435718762308257420406444342772373542354095936762544457585083140061516296593703817938839256587803398513459764750424884645634721603273758486614787807935542436686028060050818113136100182747564619738855513439972429821649366043799671336225908894394070735242381187617766605459240587222037343022241052097291903385453774052192337088569176679216969528626399087407049245848031476289200547258917424105382965662030376060768255814867380873921130135321429973890514368058311539552354691195392164110251301530643090181142528074913575234195055486686559542702955249851380350689834255729605004916328071854854862790079915544112774954394756783386219357783856862625108094774311877256754084618574331871600154949089429816643148488839626595497707089080846160273623916948316329608881574590920705917710795591680511784273048291581855986843411587241701100611053331363957909279218683063757399176065291639311298340075860403641829592134471793081760737970076358918254301248155632791532734495922053313106316315240297918198157481147812492622543538240799754161381444640614132861896908964908769536677650559279469684970769498065025619525371573089826013815165333063710763295058187259236253979306318497743934221113587950586937939517319363346215037228997060416590175558504436659180544580649112686468441995150193305446024198004721267111217680156625170115460318714290488149748574614171392851163842580804210770282916492758826194685917287466379139073852461626727516240042704301078696422336808044733126916176572737608859048677716316001636141833010720048972676824419314174335431945143660366397995676452925791735602296998129463691933883702256527642598954956963580056264841035559462344765620499365889861200020062353833337867546875565959060213356820543370453839546940420468829926712515863240180147347774013584052295657665344224344938137292311236673231086909404521115575001002190730317304549688703777120336236456983888589016815922983209234311804123655277193283180098740240294338268877856012037511892202203362092132417727794052425619418087957412823013095232546067106283090754100958707734199207885112769017867501066190257470227724032060001823606001717329309444170378704011022811312206512302267181373252617909551681539197573607285729361640379394108773292210834725271212446408490793759715788666519520438560503575017698766014310026592485582419405243240135187269420711044144735233044076609389396716164809775892531209698791725158331898563888167495772603416459205548398142415893258562306804438979638672954806250672251464656087565399172180020359864365395884426589473370360126560232610653744394043972098545015867979893023126680124632478960590898644601629322339088451508737284054055536211724732428919226752892658072631531499499274928895208844659862966518368536347435571715333464107873120211964316545550506288297317479650785341654464741195655387476909102860342694904889377934922581327698273684094400515265991595253259992419094924199655597720428161337201366117874787133325950191448969672761899245968825213370723573364166383968480131270741005507398519249929991185820396069483382601478545475397785419026667913314388322604992131672484189299271122198849370393306090471599435591519349424331742065517808335922755678023508977146408590931391449013549166110350331173615459847584349604190858286790377621557401883809408032783129132585374243673800730604116810563071468263107975129515416801211551927737698202285185835332787548229155198973000606465275686830181629822469292490335751991385488107161556617873800232800629033233881777691583796187446460339899239810950717146359817722774926399095335623363913269154633072457554803669875913879401298941928198189159220829699980899688120645483283611153380817495566234031336349330009627576251929169159007632357218983098186970551322029771746156629644291638586035297479922893086260091942111012328888344898460157755461935075077680524714339462069046538460550727927893094369931820631732243335640152213838962539560717091054173635387016391155894684606761416888547353641197301254353939348392958393957270372922466884955056635248667536499382079597745608621822218432811239676929990648414848364120261590106022929553264545259636309584205365459785390827910627620214806359475728433763707753816148314908661242853281552145041868186119554516566285200262083813500308384030641922739676195829168930836681190168951712268811679578503422629793051580269939966758614616781535503434673475152019103963527821649743748995504639810742562659375925322061975672502270388622609053426898492592076855721855546438819832596866099248733591285605771737530725540132155335453178441174061453454179286898135532109681028962815567673522028496261283388242658164210914795860090578236075312806054913632170958211676531448616093679655731683526462132217909183587262348038708966254941639221650960880088204839770192441738644635236008205873316339173960365922941029162105991144120363729130279739427530803491427597196768485259146922860024228978843794509667983091172407173820882807369261966570072861537297694149779624475249824840653669248799914920633066666285407701957656186619525731011107723066461893626709275461082174652698311178112392526905003019395186941554374357472125655688306004790537524133583368176910522417067930322866940994475061805468646562819633138456977451760411348889294623593633338202937819150708307635082900576009076882192252159734673484202021576927299525414813452587029063744676340573667083842935642211186545551730256876088908030754880387374669606500039783515700488377165366441764262857879198658900101037184329488254493696279295921571530351164254573481257104313548636124386199077464805772561709990881216154247848538041674283894477204346963693717891389692239489710532675031378751756517571538796275482279701898413896798866408692986473178328502950356974238809062057201139955419936836775014505439059542879665242312902725412770378160982619795283048179441657963329392499067899288159681883262201323680253909396420289182306321298640217537488677598599612631662504799613978088026935565971696479063991028686475482588891810320782851239549657912411468664629000570132318800200322893031287225414425043335361856894132414154455933129456035779698576666461417865860725713882063273500131585957652105204488461233852441224849657610073232197830253913444478127684038333855006009832579996585399371106938015046704446912166534217088236109977348020524319638471285691300560525036873193621706255889200667407456563815041224288304627198989411894937487073377372392816601631050856140050758407972238615101415102699472865602593702552485298990253372082871234615102541889395632642531986780494150111143871251927850518575075538462417308864984726540280112914752684513505706557726625988484211708341081873635466219808016914826005375216907197071293884829469946077060356679013064685340744952360669796388823920079592251278220122748841890658366127608750395310472918080292041009616623561701792347430865434476791886230526236961556395752915183115372659776280618193614375572286089353718637311421502851288271313960869615655533432335495085802225850661486847277063936164184272717989779700776837653455097467194387841502564016450285484912427754836543316743672219190216390868878978019672537531755640732229714960590410563511900858851003482618899643113472520526707692379651157047970842166202101566629333145187381198558088466040666319278868385935386186883949215423536331696770060462730300866905036356598569810732261746595441247142519206478894985480261424290787965638368854200961030901491950025222634183811875082477447000486759894901179198976084732078858998884076428568828689638433659135348238717010477102794442851457315118755550887015843518821040779192833631508491766208239453506602019429787345638519126187838489367161190301141026130383460641802553006289335411486819188906367627752666837202132446036599338209174732974846319805665195538683882329115078312656194188564576605482861024821513136697565144999280301416207263834814399409700238013666429314603916503622396307409363052983831997072029329376460563072265178235407075707350620293145316077668397421867321544322278794185166422165938789381041877663942380229303075134463614487926248905943932706074027421666673474783794324057104675313860614220578518933265835163606260496339580462851351581339230804558586747141855784954838705514257131636324979326729044426914830624614124804323991494316925195200663043346363261094109301403610584676147192141229939895654401025695960696964239863949105161853824381420875738898487657312752400701566498041207225349215359279545242774041895011653075308194276571070212264968264607603066332919064266892091149998039332384632254643636397714667462204915751949432184216474788120000538190359524597899593576967020014009223732807762254505722688284965917892823327627020906470745499922709419971876565699114655848738989922856798378150896101573615161076914024439404361210842525419819982772090754275669550126955727347751102777192877134150062876855167542667440278231789075252802352807438024808072805833443746077318196263749515598957053595030157938383882827140947662207512618053693610242340648716253752143603870873531757198837142244834261766796668579967692028026577218230878761979805123222253357232403613174253126160416262870716145497658080075025999983021021007813362255124417830965345762033660051846457105505883929781063117440997477281657912889795278753464873785999409710085620292307193257674350515665814168418490148298907882320547607005350036242738561826755066963619218849548562809075647317024888050541002948988541739408928949596418204034425045270397271269053660500340694295861588505451087902249889714770882330797182562097231614423150384800968086693043314736373673829797146467299061015014111511732922736386164451578431488607458726540870998135597467560362370100745713879803183444856488763000453726976777836902782704804320995839685695311203606600786600610161692572985545317840372606875600627734116618022200660461929680413953555510022404663127976641016430001880700322494042030632861704352753828965707709529826355629127273529491739582087032474649793021651873535120930868921340042344670828679042865739522489270328972320596612078760729404571168436110405868085996614936245179742231444609790741808751399444391849446665205744181919757343658721196650321125068685184051315471896657846580845324154802427983069659043553287384569834997917321743817863171730437237601272906697041469994634839706261451597673391448423740922972055173388349016642154846345378599132851564607035978623659222731317244208524366902199783086386258711533513363176279595430251075563683723160924118029533347554915617411922578587801278590119565890663419529289327839332336317970470000447273757261437590619753317935238937478611108960296297740439412175925969078172050597821354980011394226188998537995661939057793951924656480516505629495615244582916452850926204632699832058575856232555133016200299021553916560140471629123356410759153961621314212620751229648411209894972609838246255542109361341338236090318535185558034169214826988876125549553152227903425146165505247237712476151531192523162264727011599495946236009528823238321273809456261775702868790463819653686749977142763712515308828028061728146631943336419639110864213837492415737450385526949595031327360863040170310322402649834211506737858451107096496701998819244100618760985507067738448106938771204365386828594034956961958544273967607998103672376830806485658173945191586446914874837343219842433013889154929591878669321982540402933287259921199275760568188708355175468702064719084095772501520290951280971593184537603876580287961880958232841911829463630105256977690124000915299153648152119315777275602766948595645740416946702767963833437695142283003251617747196232816901500272513270153069101389120452794069104103119349776545454154134807666509942613941531071063268276285283486475356166765747993535714535869962392564270156211384938245673567124079878778312172067085917473078783450945914940657434236924473858026660073328746582709088537225490024593074791134795370217564247415265239735673270824791264599865347326175619658939902604311165070457614447316364970219393669330545203161010344708439081313818711953713372208442493426416683177812058740812879045879681062055611228374597137578470514576053466413989116282956584953342957777310638658457177016816862394580890667465377699993017264485414721808592574713493654298693350932025703721845801690439179114426840534192580253634824318371107821394988397684335564507802543502912884582511104845816199569041339546625268081323366870126717323196911310737662335783659486351474474876254926974013725105250760187550981060221310781803291084702924422130875662859308346523665689087145881630956863175864119496049359977157833661355777302786572510680504885663160124410213340796294140782048648440355312691415222476037489720135327572449715900678079721424695059598509222661647285622528463407541397804806114580809401657309972266655000982526497254211916300889832788634679817248002042167585411062727923215861366012774070818525095337968324425311506285161644973144827836436849536846308047784922790377750364476907268240732134141401323003828805548636452005918810507902916519889563450391549348405735503720561816262588779704773209844458452405911398890845599389929998401931590247193796455974294989945374265895012523032169593765242005453653490744491026782202363039498753635454780310295164496048170864375008489092267839920420130593863796006118226235418708454531016695286932202275120169872538673456692819715925979407034064846159154337138917087564497981789283426011941893650515481493452765180811479772987065437232729524493360213391921301509362903691867897724550651286699105798738941262038702517863332315343686045162492113699390418060365347725460138356662730426590161811533960301301930170250977409839036253421139365410003662488514700855302954171123897227198030174607972188830386484303917358270914693656291882393034641841385380031200132964748087416343325607066125788741523536307348097075434672043954166935336867851829855308601321444806960161950689942529035759796747725030463554589653014110831505071872314846048301383198833549240388549083443929678986205000423305861182634199492196033199945638916696023930228118612779575954412315434368215933749943112565795512681710573304869457834353799722381610559869541644268313896717642590576220088394792124997093646376711044690208093773239927492623745799423864856942306097292046546183464140865215752039637096761106285690517559350283005293651011208236585898564654286411978126458261236514998912102082392158576365194518945993772177968727115503109211542207250827534147278120173770095951091109550768817528564198680980812632449953406997591115385861239529703065020828730922106126878474276925331218945729235790743881011485590306674373925143978836375597336026211817134931645701038387215893619747837565666319440626183973479038156228069863464383610651758966870301029343718531941072447939322087376892620562618927946447306588362912238319557368598627507709386560057068310161042360587045522113843325221019843396700518363222070692410899685036661908620010390297735601118167258956626865183603347891950617440853295306748440851694983464824817691937669527624164307462407300378677783157274069334785243390449675534667676538944391977681631413176005498125350359152742378554757144185538215240664024509544710405266728734468149571903656728283526378784192992034596038237479351185759900347027386977296179909517214128627158093635106430289717375239029593255830579977134117207576540555721091447582888638736442017938794176273862883661816071449888733396320033670061299601772526690326574271072869997310061312528968294207489721765901224654710711101018976765696198431208509888547536566694400002581855635328709558847084744803177224776625687761513730507748666505049175450537595313461617712756851199840580788951850720710233451500372492449910286621406144619923858806099017704315269020202958826111256795045584415653825318132664018443132769952586994329643160272653022898517489068961643393098656603118991934937482093860540253951906848106716342508782245548027186512732285495952010334357427669448352627139600628368923177991926709339536680563742296887028923728898425961133913363782919901054092144234610201760768796398245395545809092605061600266663199131908855283823209807989184879732188815726342424435744290318186467780443701346104746382557108706233277403463724781807686567144869316856661184391392086345478321334339963395556401606483452355144476250044019668637006364951190511606604605850376888587726629615267153283407834613478672973036166323760385588183489639072908408911954169522898247120157237948737197019034753882930170046860196867838881460041813706145993173539475822035940151946472181171080865577189402662532469801884727559651302937303357180202402112528547911066060055744585058130414816884599295524400519549047397538652613028464857800200224990289118321688866015901265831237966389096904467113611944241056063444421616565130457907673229743562189542292065261112393489456301508271453070219434785342500574584651889105678516408931771840685638963028033387141332639842522064547486463020784931533849122812822839538522785365704894158957356325399713874388949723747227016115098268922538912487718210891700061998002783252192184223081756949532203649885184702585789566530798455745445833385530917239460399868517679697091442889989627847165918176967640304435403797181845887317794788800169165903500642371214860056709616273977396886902242464416870110613474245817917157068247652679331404045435286177745231997090630790436226692143361859061221697822089258097917391181597540795308103952606530590291841965306790508714023213987825628375874497783125949810056199784062352326884468368095763700268196793591611896779693862529862806338249102992879988182543745667144586291856117122473092782185775898513972960445872649811051381016530864828571770746398440218811210477733743346350650386416472452739195481337179935564509866766855560164020528538063281594011013966901649526805050925578738044533803959910784329774050920568169622383362619157136895317702340601246674822985545627099842278888139996343101663087024890014444905677462982402185764788699753578360902981079797618663685126128928181245659688240807122291130401222295904756677314947948439586778062752142538711925583487332915608924939192419455424725109541079933667993288218953544209889707959735370015515921907573351076682637138217675494381991731914957322397796151603048050148431598350401662818241355996930947625824732479764544261253999257424103073471618319623721738491752120682047360182060436809601383366200952546628797157449528204566915139352055503597887201721173337969288738380928128412224009578128661894547228719238564674011783523012417533601491900589935740482441065669020059073456585515052921266499641511362128914655457081970832580933287215457270452283978026829685889970501411145115043192779280698719946490712470324161889533528429819918203369186556592852385814344196022003903630336173399887488858368862462707886766631576018181510674815200771482250046961282026504896366105554340373133903285346101682287156352475753485939824187557229296810833408012803016071475163800097157206351173199491775645661521156179207372864370990560009296713963075610657179265480590514632388851405240358498257668094713342383312604287566276515854036207528561278746069616220596724861493025180425238147567439100328793148836885252704188949705309682893547542828928202433092757468127567604750813486394052421562347396604785933589454754298695504593843717220831550866933573077337791699005582457568941569527742078248239892580557711645547880130824950036395051813316791626035224961337657511901065883038538203967605130116890355119388245013393829663501318615487497341855575207153092562718990777763401245619872517661958671005781748662600071145171610859615855589101913929577456071175895114348645387711503973384750966825334186069108093179285340410679665704448241717442122272726173529884109453351168621341467143645423287233691331905989617067796436260921085767789985769025720627730551929464615803460758171094559507260466145670456663333368148025819608799298530354297717185796185201525083279976040109804151114560567339784118675709023478744621389341420865263612432245961021456090845307045839001372254261681333417598291880798471285902839751945679180196917917179277889198462680590326737867138269247296457978618595139599348616143778508392313924109903891529229171674961361422312657459831164771688513076638317672320164844479219825497532697515474910715044595650191559408375523734568230905762643957775403680383370911498458495528843539376175268990357213026078319404084277689524797577966491298828828308199425501953646985384084675135801897432418137751206361106347769372051670235628535318559412717705109011425591603135675021414703036270774109803378724472501151705559476952760770284190385479092876032164905070580220481158092447504974016567932195534550242988981950157459330556725648917458244384516890937959570595362913348630086654099871048890062951094075257564253576190544296215564639891928620666172583191100678692190949924379242521545304395976780311802077580289439173654307394374428020119878086590068650288632985515333084013905050774889643356793742111381581766466024421969194972334662006989348995933622780160479235429881499619697223134271657464697494468116012341254585668363254153295052434396915033335161288278725418908927241608234121997344435632633357443147029697751491769425590889843200410317414136403498182202766397406353167281734560558934338557492364274492347088458356333434045973864459871942690997492421008378169078493332537597403562240848468391019105159073157807457973300969645065740568379580674992462317450347924257623943056986975744438593336107734174951911718443813999379025278207941333902801638951230968478128910036064868707093416787744332543157061230487216441865348832260262010926803897252021208604367338497677208578662040269953680269722033422821455819762040581563290063343903810100704202707315153700233374666892810524161821112528699319459357646690463199535277634826020719679923875607570318240052837572910513314719817918334873721234988300671220396079846608542985313741069040605141328368959399814182444468985165579038017873654173269791892783101484538952166609999633408656994253139104216990032657969289726317786011187685169552957937453172843511678052829927444230756244374400609948136903484267118142113661550822648985976840178051054073989311703699879700507030908874543148187173705424545619005531007953562928956744420166671340286182741382941499397285237199677749872814962067279984777840034084194240566551064290264706834076978528808551335036817366023063943633998171753161121090457264447532950904055528613845176470020769036997885897926681805250742148256470685128912035503336679367064640439294252595241373544588377871876008139922744557108353434666661311725680795895468631720819700060097927566509640780154965917144857313030471883303355896793222459847021146088135810017285988112698123974491425408488019560813171982268898726174917757147657994578068464237946828611179564413397238997737910504413897973582200953990360073039952971107041991226135992703920739477988015952292030842496994610244656945228500418140051636682087127290510895128360534872763391804618502143372021696051013437868987215643533287534548204015153624025189620425105847553829581852553488454506936488488856735606619650051970245452918926519418368423661206520910184100799364957775425736668322496158774867958513560561507210740350810920584891194740071195904610791697994956170271406190201893820586183517213683180372759579874463281129758529461404053702095384474863854424082738468875591898144961468844126553263524500655949400354871733002360097474719568112002936733095869996971217345454346436154187485365357405409514842028135078298474123824154711204877027958754768913856533896023121434758406130152229573981728943430467344329030505329827625829775436876299637013937646069591851200493391583746083945434896109378525895424881442901948270306706388530335991392494281306534080563619486084370442438519572980735537998971806014335852755833514898244403766867948505819904910808918797103273068690635569425370175290998401846475641332081910927810655674069216424500326038910904992069397710264220227033237700007665811358342797237335993158206547132548656553401059415837094420493830132953946261286272527785774052235111871396503818426612946159979962789470304789100576703884790687395859507406870713088104936030770429074718145033114384939332542228925199372351478141704187670077834181954948656579604100924880844481143497946458469212622059853920811781777932808570642816647867377494881487785847298266018099454105221880510327322310259811869686206364838122645585810480717414362713458456514859474702233044303995478392008563895590858004243065263627310952780894072673484019870158386930532927957396434327918776102841232888013848798936747832736382111360595507774521672472172136274868163121816374034689130997160940748599741709451645028599246641728052431054263334498368913090839104949200413294997228092336270911580372724340656939673503842206932942126001405315311270837109195444108180509875426923819485938180373576852392709610132236986497996881402537307298133116660529761854515730313440187984513362526254313530259040697860202218357196084531767034928705910109004974838081809841824706331836755666576392429703008645130114284178898378247549062571962901107580254944262114277225021434949692739788296850610830659462695832357392899801801699577860568349154911175417441636544858377154807646387110673315215327044745080011139180799835959918729391692330462412479232061835876215660944915289788094175546880648104763077828603350483531381097353702247244867747106595042326928185554307088764909834500746388440635526651992492771337682981002468295421436845322312576334878275265734716427060148171912622199898422271852740583971813082883192565680592206092779588062834807715777745310223621384592316974247192834861709788156617175663266822770798262879292164086100411944698497731759164024203131776164533360516861430619448814768126338543690912417202057368373461599702534358227633507186346725661049143173014527468478332891187617707205377059551377928588228056566822225219764730838708170030708255897032820745497161090502336495877063130870480803658122019443685938587295743745156993580271969359611296579767777231427852687841145781027543074173343004893510638845682840108836884619071207849339250817668266092157415677463360216055509731121425785954065436051646814441178249549232310647884164666671475803711294495356419878535971142019704671452567793286631234499223386702170071201605280891944667505329939930801265023883870937460293591390886756910444188899278917465244221295687782522050008718711761428605396784128096663581921490345576877403226488944231713644024823031416919217011769980553066160805194629199048780460771780405781033783705236783736573694454133356947278528118457211367381250336504358647163888609204443016431593676614895001520012008692817858948252254014621577551377264925218865635312714223214327093602517325151553531753215428832658478620401261891279100127061414977582483251389959553030051405204237633725705307327130481243923236039937911366917127933052972462292241250176238573457811342392097204570112008192901543036829241639775973674220398695389403519274375376167893204283508910307110347478634337390259499874632427303664652102516638120306885278490499624821247834996429607251404351779934445757551891165173588845407178333097920424795058468783717773315910997117933759133753569780562313030193759626092993645111566316324117674297926622501126980420916182645373465348165951307144574574749105377864901422661146485872052384920740580121691327732434509911517954887072360392305667498787422210058403058237454166280706296903151046610767120317253180503988629750300880450670609485440670365402740031804953138873909838963434627021553982266893315898065290358854235792427820583128829140110561939143469579228746339572881760112534188887225502790519189614450892390155708592018571873333681327124244670848901144029022658875083717251961348157396084420657254937625302730808825410630938324006922749853709582596665587037304346026929794511596641932548867289621856859717151560355209825413770216082993769037866128462223713429505590676160576870361861845452695198555158308496909572488957173102563509282761714678179624498127783652354631493058155575232224438704008028248531020901105320904208720263521460994319209540756172074157019633329100127573511015356532351828306319113872709102011248341671405020501122904249171944496053117448862977003095740911744310712999903653930494829464954959481413146891593548958302311960066603474161443852051262389954843102926674893920292840384912227262287826678174579426322385820397352215948800890044075877328505566394492812517748123846403285058492570408131326345499021059838808514838642788830797465070425769858676210140122982724371668312814004303461840574265179021036572336404963520158082095730891515002303507011090709627636117374562705003320308472206348972308051236533226236596766622453016417914852312229857661365227529402345298105295098688722055435677224953042720507830618509309109413220886972006909487690940902424346649931861510769625862203670065508229712338172867172502952633482906760933471422880572212470698220267897235557718963356015846005590636441400059190050980884857528604354413443061755120657148500522995157315899955469558893984431770501711346166933846322110755827540546535750615143618323657486675685142471748443165160157081585740077377670267388661937708625640825787298964921289433713526920809596980223418460140409427518453253147670802338973430398991670619686674589536108109956790214110093108652455023052657687267399724894053907716399615520385903808680066815949246926563803352084832735321910258389643249135660912514486947435246851857538920601098926301627986722214207273188364195963838793836471425314853351334834552786943713361723618899645918263392673024462671703068428993412213223103649963386314595463452470198612458068591234709519400815723122228640113057296170006461574734921351364379657680742531166914304559364069952896965156194248567987207251773802998187270938784742524626859438983113702660085874828057235159284608533662099145132763633810123556054792684685872803996986481540336114727970621412126873231791288466835472808138114023813141177519126174982674325323699763989461422632959899646127033022270729930978490278755992970402678925158650338180157846660567285644361299769541880135619696835802777050843263070665170733307872133691268150049144325967866559839209749936513330699920675776070609003613318151579389060374470086243043858285195096960398188343002366446235557443414123488306113244647836976386003920363264294765118129779552104561955482268503903114150902425263288957149142717457423845777589245338157767508524346035883585893108531177033658396473724027576946477456855617276305572240837602771748255880463993859026284850321102404201983657547902654070165758540628722174365929681076405770429195732549708848838188229075690601820773439663912976264564804983183858834520213705442848848779828163420616945685598426653021168672836658276914868853515756355655272995840713137051018356643161604269178006180311180659503723149942658365795094079595099356512290646028891902915882187289499982190516789616014722813906706100500017802722803084757182465524196893422931559555578982816767956881411877857154369796411151053446914258486292897987040600269547423815399500775290509909957426247836146172664046041165499028121191140794510599124127543956293940382556320757803651893788503477103707429469435859772900821192512814398651030970420767920686502311827033491739801006967995511839078962164190435298079887328564698278949381981290059568816235080991196471274555037779597311072499562396986405408891383975883848022403244001961621517445794254940482422569176126337682739114142193053691037383892474947338346741046598068941481736693152256873543191161308314218012991926222215848141774526859435794453356422687582508684616969339970955592880303508019152592106441484216441700096462938797376779386162988986500646670785132571000739125700308503200648253629826801340912350057162680902723327504792377717744974894693974491971335051920947920926222717243706246313517721323870719126473756677267266851056736159557637019263410591292258004379997299407170053537527995639649700681661615719750535588390056068648851591337137314559755303225663750780837092454725808620658533167504981858036805559330894851357494279922854443289927846210121350998678543700583983510449662764920618053699567899523772138652396602014385880407574305885185235881455106584263274163546774560717647702807734152644189126031101722636864944663257513512629109222632674263752651428982624608141300415351732421931591552007339104516896593413556044231646872200616743233589361905246300498655799428906152409166810382226485231930584677599764367970575761736894922549543883514591197899013851943615534238812671438523590593582495153466270852850538194095326455067585361252040805756434176459740528036630893376319164647872489201162459617623799090955293063451704645282624520230794893106706331782322139940555325682552381733324580557717987761119319849372534344526835631177833673978024686405100679741890383556370581064242139476154148161254867102271001008090077717960166570814635631443677804773954786804535227192795265997995314732254518622929086751540927446291413988240344103565777649944676581698347497685886945656519024684487210015440163610510733812227528234484032847574630064172148039715436857283443790000454334397357499415265505583332508883993479512965458266640774120259783458740004694565692620823053698078199976248107625888002535550244961265640024598023731704445918309841813647223028285399242939575888963627748602205610821530427274562245155263753396433667070512106505232865026955823654139268616457332829636302103091272666739702789205926729794330582115719782585138195235949523306351214846837924149667455431126225933469888181633101373267522015378183346256625194746774926673049753689871405641363940360508513279709243285098922206958617639942006689155044598182347363255872816773780131729118543526466023332642908644822929454636133538333651985566679690067348900824848760015952874500520675386101678606520316252353696620077113734641191725068264483547794693851491764235942442563339795669115238048497270729379495877291363353951635734260667968503298228994992421232065450384389041225487305537152847122620300313010050565047568290762527569921714227313689865778122850718036276978634826331592615369539101221144980977357763165083043296547452192217235211548347094593060536755864133045869836572695248435349620443516069682260913965275117851156764652918520164652379070836471172221983784657382426705834869116738243491519001388514742759414296010111579123612782696395068044261167933315174183139189477700537434919436745478805823741241796725141558446079678394501921249970726403274835038966808393429820215040458299924692093382039783866329882336811623501987072519530354194775479949822961333277599624200267241605114841451715346611850951103769459220995237915013021795054718621490000290392854650616357036789115631718920295427338369467630127918803449077704741353375142828483072668078576650654793647840878437287814539009191015018152270657539773674119667894957636591197822287232945815761943193110472082471858294383041719280030887509312451696942644413554591948371967808080077424323816622977569056921762824578982859272311962621352710681601937321139275356864947540696393275280061662739310147637228639164712836213268636945280485492876760855144123274200687860154154874656374753148857292417177674944808875467516026521856432642373369064387115366867796569376905993646103697609105671323324679381250485311384830657921148287223822350068934314162615420582152417837770743397845376421696097052306111075439060424875979375770459646792391680883679476957559094481414543643394839494516113035413348785903475457856798382745415910364777189969368742253153307947726449562706324669205910439595740225712279227513673933528651208662302771940367904405034195818512202511247546451747017378171464076143772955591609686138854479812485970979828389209148071191081414347109488823097556105209453184263068821628819119529130024667989892683511560182468738912311057669048956436485174134143791390722048919057217545852116831453567182593134348223923791574037570122929752423857238026052606375186423876979350874270789590586210877216546493128207718690322975505540660765609538815052282021780257035890364715689254640156856496417846913963756667240798134411471976129138857270083247377563132144002003603366750249872566381120613544272871009504667299085606906620648880403968238024078932474185251303738544750375708973731253403072976741125521730111413605753498333484015019719415687463740607904330349768225460421258118914682109100069484082641708956260890388321968754093696097693066842511725832302796009115961122637543070341568683460031476027430547724876549351007228864785858207272572382288215729575184274382768860214902651415905042401214855169598105751739254908259562952222261916549134109695240903358560396099300124809839661927144110833971616166085624430691349988497407912018351485595212130364235595306623241618044490740957459313140809833699884865336101764727666635578104201301973397126836350503711061474821148977880766613821627586559746480758622321405366709832305878045914319653991874287118674934826631600599225906907999173197510229899210939675394906117364297552907441365079022257729629331691766662053081581610883154993732532801384663884781226400204819332230903977269495011783930082874092205237382460177542627331935569943905538568729988764974207474018574414983122789619179619120630409188079279034940777170984709110069568800727767695602852755573352022642079876537809424673389761125194585102963539266314844849813943497645708463791237929786545604698285152478765934598922295753918908053029609026236661608014155461917385428420074355188296356936400084759043873024812350796808425995628369757732203349108459155624070171577104782359576044757141003948032181838095406108351812958287092621968364173844859639808148717850672288939274832334360159370929891017927080955868362552934600703626451265593364484909328612529968953550175455111572413257231678895959270395898662262517270286799619298996887538977711437737518979677763271488519439749054073835008771259851595871330463466968465485198081068721670318212074332251237039590625337154929180959328753562389032559880709066777754632178592576615792721753386561828542192023290533457501823265586594765817950046950620036782211056466445122969456775459225965755465962816824152147597080981541612230738663368145430633167782492996034509364643013905575364758260591982693758401574459247450031455617103437075138445287422298198707298387278186821566257341661719096472549904634669166335203694416915475973453841322437420984785093051339868172132615727020870903206413519670575103830190628582481893003032916725216164733261699067592660130404818198895134691791035848580557498487520229416373203284484657646801227677569511126648347913397132483159238060123619682719630325355942431302398096787429911551103386134456559525515470065368052235636731915369164841066621928026515488776301187122506469374605630997219372315029157322054033640852889996737762042154897979818025103482876488586697565980274081386810033206902485002769277385834406371326795467839591990319884509413951999452988745322277319155650229026278947776111014674277693960770071783684695994065612316710279715832846546435078007596169536292818313993522776980787342936828397094937710378890602384583241325068518655194663515676340769675297949936539481815939069609846398014428361504858993032639837840080849469877631994760729183534251179093301679970529615253469016310294283422558330978998283453918497396654174106749015702886197860926097860062434672776264639883882568325730745991665280163029779909908122573964519746833608216508579772389875358116202537876188309030596569646371730040679298736442659693443562419604708064858225462849633443785791233751571647637512119781496189603419006379098834712491950784652006048183129986530653132052849692148694171603769028204663386516345575882065027486537907231285781754918829805356240458280372175998508782299687039718913439255865473741434855929065243699931628000728417027919599250836223467154817486479435374261322912793660309014815996732653273807866712689893463228666307705901872090365784392135342060343584671018480368948268836421051915248260885257145736532695018459909537255343521387710834279571876141373494875946574943817595924404925005080306723779591721726053947459497656879582101799250140373406063843305045216390679958715412191844923886653838531237761958981176291443810531540518488686696677560237279903356165384157627257507595013284795623409652307637737057990767053532390769473449764389683515878661018424881340817911420643332274381408806717751134229579921612673760783042729530165401494937588752125487029594694894093229945618508808814756502645437709936338552300582643524090521342946419118376437906402444533982718945732958701549886970172599467397716946968406038521907258582558226238534973117962011491746503377311208500683674564777755196837646056124388129475796895223971242227373722618077934611795191142449340615487456048408829741916541630925935168448501934861949866510934369073805987120595382553494896788244930242215609088285810325797412106373951326367136474824363525250660916761059382897360010106184028071373506173251509401878260241000948508641652698951079215341867209946384314491410355600205029747934215933380592119410188376763483006486117089459893724377526703537441107495793544510465382049515529059244645263295926450714275041427422053110718095785120988509245804470461472265104901167606928505896554734591535372946244467330467577966534953658844518624239706734266103974678213630530403003126850188039017281921332074627700041310967639581630439180692392148055010768896466070644824613666739113774980541629124728131391837015338956987538358427402484506237212798362512194993926182775239850047975071288903615384687151014917867154391227630427912682389936319478065317499013621862581118271892756968733598304949125610035221720170256070896951212387025923422105309721536125993935513700262065808744066974880178561328290177087514354306238527814845855774415259600030588974817502629274690888967497884458403280427403192140019298466513179545964924097606843156821953345378155101860066921515538349334642784581606715103843533036015193632749436428515878168850958292833568160545692330545120726578600985875600868819225997596257394203186886409118543246361262343678667282922980486659113154512860236934967630446315788396022427280165566112544549840520370029938139953722939317123770716003800114798291052351313937011718215385061361445048062492614865072366935135103669517314918349713176048621198961509477834359769434683185262382000094263428140833543465329160173601768026679266458119885102434915366756023934522588157698363767826842135593965544005045719048142337685791240021080129561675459016458502025004619686619473772481440172073034785724307293513061097232984382742703317366620316194126244068872404907478380792813782554780729562647508784666220900283509445976456789399018524147748363844328215512159397733698735391139198583505373032713303704186472157006948112809164733359211484505089341721422338572563431515089824352922429629443677372943953561556970939350082751471710446737360939572506201042866659339724004050210511672418414789924686310715614254278925767462123105583598140119985927357856718063557390277829843000980120977305803853188838140158041644887318761304224730129819832929181466784073401599061894257188300080278313663729437130317807558663873557029676948318385877147041493913816024311452846350028887292348956276122983539890059239780879304667690463559547114241272382669031160320576166758351026215152486986337076286667665414603468354809042320117719503882086270808531497382330618383237957198282241930609231762209795401087522948411770604979552064505500358518668618227414052607283967404886485419469583005187340288808231490622549641416533576041464883040958973141236844310143216741558720058408825411030508307371492997968604451521213715490151628755238545303445863075427234394327536599474042024310258751810202653772789168302037787090376003414565103685272575840994910423363267903384382846104899194503414626974951882148814977932334499864081090193929644479405135148701486375027647452411349603765165233041660004313038164934021018157201326564792190121301443203213316093774788899076311826096670658447507552382586015341505712662566743391287512523815356337949620699446655199943583432299805547433620178486851215219015044367730419699711239056743694849208162019456444372019149076494897515119618895452917015897257889751366362053637204100704480047999263200203254765123366205885928518630485044829830820229587858553813823546105491722332712426119262165148443937162138159329728910815744054990519527044265491602249066593858106066632465888106785284994926280948922202392312066988682315506434575948341068346658394689262607501934179346064187586218017445983292004209345647905613013892418947022285569273021708006957270026286946704240858089487933084118304888127203893472602204353129992283867963230319286673312302513495150697719849273451033948106097316532611116264340832201663656184589839932293911280759648166560447814837660629662733140471597247560139440934782633083467526105383072790780421382985186532797417858791997692158384270554659228650243782441337561800332914231409793183913794756438816688936321257877342340937267123221727278265307186940819932977419682267136350415201510478426439062384016106366866030966561522645471564997101236313165220601576301748069725490694054684378108638430040093288955168773184806887731299768033443822345618158362356833172925410588081691822038389683208772861612912735661815442140253920195083633976948363304922927204892895140880377721016294577043223977178842971216201910520844102883316383085728004552166486323934667885881981145039852302322957082444536202319517518042288922794825450784970481943715355717970460503629348921640877726485837968428065659141821814849713421092275152503068409881125426002815151248065093763100567354043955285858462420245711701181365852977833456420319860794175864033786426496752160201638551601174774120090586828272027205749110557060151030299480551201928964359657405531816060644935048812022419267683421243560541137910522106374766926470374957945165757697512160126948651322722356534037302093506770430439607149676468708964733831972985590333819494416283436895164146747725205151353924143331669026722843892056603161056407117369632591815252586011707806826535928293094135865699673167704125476542643101046650142632306480205040502622332990520839710505826820477094479076010026635657091554479111690392037736613164586244603496145676492200980981084074873972802511850742083134389836572863304548838598472815532305008644835499547110287864879634079436003404208297446999708122301674372200612741980943409968246305528172674083477801681932240279738975890846645598999134497535427628625311321216314457819233181037820874833646401021527367517705966013774942729600883201073751329275598036434454530604042826060831685021667781990863240473878265584745691860430109133504036912413248099404485301549632105061305977053411248221579233581860223797195678641833915464195157406114572455664694775560995269779060626720424045025999571709898479204980097393421327349098704319813261016454409153885970241984326481364781419175493495325496876166971342094794195384016214727364360873938993573921477364261441115874830005761509443025724995735620682416241454988579980722755912403779982937539179960338757784879113235793330260534771294887655852903338996679575760425473135822962049645322280050390249240231980804698912771659862134367677334116070788993346315610991074312670878372950886672063144957942181381166344564757618472607194355634673906825774344360464319007215729586324103186933547926654919538669096583348908440281015894650694185848286728879667590938130616656755929794420345999035377311467728565361188338899042961825647487624632477578136124310592023932263086459438593154515991449879453837108338501886665233279189425783425242235984596175521602179596693351270857317473127871689246088109452043483538703778744560110865382242003515579347151960305893708202951978451811703251580403675378548864427610641258017650141773833873559424137048019788571438544886730334956734133475097536284410969988556711142874945392015620765797677198057497377521504861137258249171450017677638672986231178899767584635521434246776453804713519021888095441678396851021682623500564748548641018605817888860838214431241996763735394687509065972817266045796554162268786085953510540956962416528695586046311740581790893410992709317431728356815204647697229968646329924539859636751948382225744415936938837171032893422143446388453966174657330608774207859185002709537150595746492642736952549624773676291870218194122981673664173614321478774298848053922490709026816286132593009148626232830718869334785415605734110126861559896566799411804189670951946486292791175810604148365982199248661901200893196346144811061799267470438507403950706445985208707134601543695610836729320591715592353574317925207570882182428523451074010287053714024609775486724971657304737189088270700474900365076864442481821027563009298239982453406915643959778477056293213422741013200281002091156588852007212596362623280710039235340497899104994620656793000438043217655761008151218623588237598792534700908262346033939639874988801057338512841247481470611479671695435607386869892459625870982181178414420699876645528825306377078033166567587944913028610301198928258839302463392938120133762588390637634826502883386086782797623266306281964620432735094665037326488916434494371296444119138415395429416433943119621084262922437719008992179159082262251141280158953456861202468692466165825492039394726197335378712287378474224367954396979798838066447077009577058098444530505906526846972185725532473429538734672937938192318684923661455261386171026326539837246121104829771654395645903151576748707971855262121818781235715547531209793041977758040901967652690182086110270908377924216449860709617156859853608098714020724354313143021193886520030882841717779874089599541806016276317712400794932591993295961738612740173899501198946243369857895433126905130024783396954795302898163925790936500577409880236338416114783265924744510273256754906904459163152546994550898653076750818568122783155903021438305573460116899368587670871142049484921066803124326244822941308874564949936537462390900021066183517586295495136246283332263795934818789178263642754658857366506398007923359462859331695330912699986157247437626432979888086855272787720217867262218028400275097875372384240696332855858085587188553055238254181560411408139546622350099843158955085293938758444134584559032861219360900851597033079968903473980672643432276474756076322445682086225985037276319621086082282978576373803652832112388244593568478281748551564878385656692682162916244598709846255030733380256887871095175334662551124080539492885817686998205082689105986546131487875274633431614271895376990622874381786565220435724900044771031992350819414533490198749370831200194895545090737601619848684255661041143350039448404220081675966456388633523408204498505184820886307736037944007109700754199427198105438022957199776551233507123631768544432215253548679801613599754593168201246692948468419629059475689457440123073266884093446409412355102408485197927512036359342920442045105119532691424650810866793077550272405537706795397828027257322217088382332706715076563357983667787808548265807734478983980519121289565847627010183021769730447155072539406217814105127937538793805671400307134643429517298828869512093167996574755351179688889224524124356545916168403543646377157535132946838268868820186670656006337349022663608710371113914585838663040989613463934398728422381348997137623801166275917783595880381526556287225919792422691212032243244293275054149838408121272915863925911699920944537262696988162144915580654845898189540509943081398116730125780056877117894084446649818612272615481697416195239590249096703378243899087026923062745197251116483897790318939414531086132353137416354303062103154368906770953939840924005054531094043956660718108915647102168187038705853957288530005782872182171508749216491340812672248379896951707912244920630733850877477068687156494421021890190390378310173450830830655395561652032033108273935078911587552008139993351074839080815694590660018545629371790882923820416232528211177576900008447607095327862900100193872693072853570171273887395984515930469180547313614427160767908128592683368376938835283004393772473864606744603222569190355024982508650975460354544549122153981866398956366620553399436110129719756706816826221835073132971424083662016862905403018919919656911551607507877240295374825168809371655891080414308282113498785625114860206099853228867993211965108740255309483984223667353276686293582865863273823867607130820470856724341575620655832429003256190799357053648388825376495094330553122948968130021907712977512023796289332419009777002666758152072257513915603662916723543735529823575923131985361576085955569093338352782311569539973629164331286514606846158451053277066172923155844900867349512378157107469032858523523637412566618372274196370481723694527333331734635824648180179574853968457114238503916861280562302964492051149803445830604202772520003003517022903817307195440208138677464022219166831279689993990917649210197051627674788553698859891899830705388305537090048249378322464340396478067682403597926739273216316956771426557961325964280696537654957749519690209694418662209541469561952465759489858705931858785826312273253913990268131026148405118248494878625184638705328056074156049924518602037438324153709799120196103124164321310844447003870593287443239832717459234226697241160965756202503813020587415906681165312394533943789511138232952280131125556220739225495448750115410934959632627924807232633811697530983344177635937639872552617480568670453479859220067472224404688305908662032693853802350866287419167749209054766737099906197367445330026873890767683151204496501378357539188053282278843169597679222258913402682910424576571772171394737128349347898652366209945565749842715309347099633615733994109632440560527826498166649952503760326327849678311796876022781245943673803813960664902631276746426118406297407103946070752614231508757428999611190216857332923557881492213903427310354045089902271311298367803877272976165823432825832098255968245167812522420267243972579789391524884053883117850150063078858773841131710243128700008954808056292930954313726204109637168638777940233752723997948628171179653638459392878838688162618741235955717389573901603371515665840704813059019357157870296528999575491641942442896404132890071355223108410355045090852043552484030379616603158412979884865539704396732701455744847560496589023380067253111910618659947180681044420214534475465582614219385135928141131925890013026505309584138041353764402372838260671074750799665913438035541073328541232841664837493373955864207990418762477927265729787412541788011152096607000396411256641578028852059570218394485384959981400230357298336857426734982787784931338087722823451943737017136295071964968039554739505549020231492327003951038091797128431053007550378454732082141282638068075031416149854634427094623162527909407346505866318304953989250675420579472626504745901093980410381901621619988944106737615466376163574977500912824182633323236589793764782193685534049915888217825717110683715356730974667466635858256769069083182442906268316028015498761757350408538444023703180621119460310422576604363649915505402896750108059812779383029307199249079241539300218012985424359822693548398667711967876821715844135715784851841076364383416849835138500564729043800094688791764413355858339425840928382141234250055926876722856457416597951498479394242015221408005306561387880463929626967515045037229649636707293386775480041012065664437574310979706533268313443368749566869339615056970889783395417200016647573593439228037303087994954689508065110548831589970345529880685174041574917792792580456112057279451967869126117612089494141748283652093346884263747694723530407323417104349693710031487497907043356203140483224934798071956651565047242361700892814327443553423052306751362561587039488655645578238505375115540111535775247041097185860244242672033486575195742481293102792872008838868461123638745033120293267237290149591841353756409135859074875568369705845518612607274147887867948896166846955156451178816296148046151976275287595634714112544898179181814720788746725618920097292217436226898968474088586446054093242600459896717084965678343870744713639134085855470842499124104635441515888519048785116024922808398288224995255940952281706788840143628322874700261038401545305363451982023855138427901240560875700258640154744561127776965489929950579873567936550430776716728738756954192951768811804714630761236395993302759545540467306183671091872438499775447072784543647760567386885023887913617796967688566101066374615660048150741068235695375191010908833716314421800214464278883108552420132485875581599345128039949726117738371234921431592128670065841679336418258228904319116561229132329912103538460011377156564722890978701714951029429288191054939315606039450500339383516171448676750546546091608665765218451791079916166524682902929065482763821860387915040809600631898102237478092210014899393873528408850875709088524921365281890648351412399496279132491937920729288823916024961593017624532775049930417598335156725610367775750648068504342359341786508229375072858993993289884801712714001866430050151664759039783963906712864114587107614149430092045669912772391519402037853355062559310287108171091487422029466416700857500526553928011220445089279068992468262263006371862696473305105690467024976395295863158142779439293249691204087110396474081852387324124082135951530754076403754409989672833162876545112353264284985030390647127474712302026133868253210154527731486434002436457803951356011970167394054675600030779264581780752657188457297335323281636289581854257192005274042858355675310896199869104393701041331716109784040284269379189887534950745561299918311571676981517686648045499172142710124084622281049316031226145739096419479673692392300010822138569447760983825345499299617993516085297432218454003754444061950860309077498084574038389714990556008540771439155323025009790040133965358795755009227158144773728979194132704026069397985896870107365660782528703076466449977477222015824523987402227410289462468208553358626945700070189159448677795229900896140579363897504196725002782352941611377630623696854107107998485306495351605980757669310603454593490014762436096344609715791911426685446177221300036392460204043262918012458660152116817677901470717112253737418274757193415192195500085741043542352845390026300299599606573975203890959220324934102833229135464259969687211628174955605305373256089089178695333914294940703716171469510013295617179699451588866133354671722142126876720729469320331353676073583128293770697855963861370098265099251836566628523679539100232042743213120351577110346631264017880256292202885543051899589269250867471857977066377262289460278525164167947204096596546643319921039719031392735926582592681736512014328770071082742261678715212005169491646402067985567544342504660747112610165188848481633964566019475220588373878990889912255983066240946035879561205272025284361818954930670783927555110403484746819096786097189670367387272888736738040821121168142802409254605136053853953120402351548658069438742866820810916290713245130226501821338646602125328627208735784414390638794678967338561695539926520207161210267193966161841909211313121008534117349336324421000794380357451187874578082526723713136593002998604632896143708624048599045080876415997039468307985444337378160018570274216284037122744286859404017626386041825255952096365329977538922330657087156805348209251860481058677392972684987534851099397910935598264327202409394330187851462589091603987249811577362396886337698053993434340400737937277730081589944355076298571927985393247410172539346919430497072051139918798971068135971334500736189069959504353198587112848898787334576586366968553712860679718757883789948617040893204355550961031847581499580904957580092302067363719162082616251927012277106426541405217432179386153577655850574061651715714724344639516956332010335321343832725737076780067425996765755867195037369347813857747384260629291633190866972697235179913855012260231787627746005968240691574317054048541666864920267206903265338041860739683628650857016959624631583502357372343412019411319523760776370874782858435861110643080261161887498827104999412514485814960694049636288779556169722595233164269004836762955277827355633764859176058842508707738798044133326671834365493107215416331389313210270863162520817235752458937232018395093157371725377558263807021647952716230951230201347875329377315537615634540954903077462530658697002431777197252188748654532748470561497238741239789071242988104303909532049429507063127159611897284662508311652407587466695018647514765953158568124677602847870348409016563561424958769286074681910578207190364026593309393608636322671519389579041933491876495021365921871869138661141600903192616824214256934845119219984316055510597838875525816939527364952786907527828158122922076862342452133685350469818835553233317317402011024228603683773848244807732692974337551840969976169554013934084814254603948401850727109503930270686066364262461751020005988534564364295450147950632159949690925627873719074611973439591853605813369713123654102250016784155668952236708509502417394114231815115834600591446789131384241340441326377895772261176389228560631573354727847007598626141175081235223641545427843542672329416737843235716106721614596252475407055485122214688567986735856263208414829067530762090239944591231419255332438188372295079359963954654009162035983742824677286377526347444794226153957860089614094856338855726629466611363711600149359737343686346084338180190422820561078521262378981083423893179645855955588197213390456508642646790823075025943631774884902600881294904104058142922500000187463395721509481547298016694114494605427293257180099633456622693557680855747564947906728020443119530297009656087155106793185059369197370115209544070758734908084761420117366718150737303540942250133629513734716479105108533443182466363329738552029281951733862087410415758659078557093006117898321924490027099238270561529232754904543514091818163411913811199765462087174282349526339570007340404730929214065923699381650202813742103074680129703247122410433218584077762712900437479968392543695597325593492469060595477175703392497059458754111705284922153996516596711530377109855729198113845455501067305480138045465797339343850164610504880038691546503415391882810853213517171083906820298027561502378436843269617504920647189167650261120014665246352987030106385648382144864073114609543686738212947416742646996670932877267171698875322800105030328435735697841127972331701457464823497910337951198293278578942511200029707580723383584780600902297651212871930117478385210810526106180073773434583673641752697265294116697770991388830708980714948029382948120004375366572589020562648865336013052765578838208921232588364587987276235210096390152105289630707470944101777449049063319273014859815193431818626103971656566392494085105775439891861248848978522916221716965404214623504205618645890141147299374523433536957745769205984173850424278279499742456875249095586631675367984601095411120858993243711663851558182427725051472822971803900375651729259750534884010467170032045232390525143014922409686796211803802820875470322702969481535095444322777199843316762968562543639448404248220441623926415776447588548607080531484366027746243580450940071541694479632297592275762905722835442779453612852430792291063410076378638446218435243852472939169026050984531980071490142797208473574387730548206353017894526600738423039202042746839823666043046170994803434855470588889370064473742252952575587983875760625623116186084070271140101960474254605496194948793117437977437949274180796045909788040017890452162964543397961074641137493756042981593061301428145419116903552592898755590524668475527249149557971218640208358294207063015971949373843151812229298899785001299969206363098161338520802503182701458400703768847491722693572979846973052737940388090409653973847759601871617448550074763136428707494258219871936881511202024149419622976745231223685866522423770104415242291566904679783625383772088146774357576914765894178269206996165441687692847794830309583368800434079054041847160328678985768467525880343330414792632479338993136092437622727876612776967504688385042898976606159282067521543308906415765084971572730544519714365577816165251812530953259096561221558228845742363850654675447959091044699819504629602209958672092614548889235310144874352609504326350472302684670182800108751450306098091368023466226198439046082248676834664531474752178342543357742960823066040943057985395888551584728205466095620233783878677395741736168423692873619242936429889518523702626109390073482297632933337237597194246822141326264562698137635855772423720086137698050740461314008379123595216570648147356977712816787792522203933436674877316002694533808541902604865634463490339609692574952607315313035293184971838642960320169219215143844310576027533595958389955239709854350668483789050327677058994880303684407102605938905311070547877054193248349657109589961267770190527761577659232128905811031649348166873993806549060890970987126400214456878471196274626395142040903923524836633593306501995070016057020767727319719784991671582702444983772651734248927520072884656294515508331364873552461586393310570681534949315464467071980902868023566695130974597122204138427337085122703967682978491370987450338160510369005666889619034255966724099197529688234006428699504520742748242203212056620795530622308606423982821952545580936712328426219423637153406732854995845405806220506847056997547882607625599893564287408509798641284849238992165029399729803030761114425738788359067287039547569330518257998649326865560344837505155618141617050650267057421844111593047852647681862738376772863012418459115487728726189386261969687424613173564361358853352729559079225953104133085962128202098058429323849327875764172615018998857916721116526588127150879304768129843002840935986276969992356991490539046551522971310329378182407619631173166132206284589834713247970619226697953936827156294769499483153312069100151597249132539213145203703822073305966530614611135362988835355210790699803229220963284918181834274923624229126880824921249759745135036716334097084424560266445956133628329919182471878596989984527757133738437775717624303090417310963848787883749641500121952831054047666242760737465390755295270439227012483143176763269843066964953857007374302678843768749450852388072538072105533280994466559130452890641261010794118372801872951071609869868524934800437912076942290148008306844182824065555782160112581480245302606537313763959096722051506391668570489540832807526858980131772454765772487115818246450757283900132610545363833639382408120492461644060042822358461479584992859138234088324281452655125469490646139792615877453594351035142756652887742836036699135746235923099288469475676077343201155860968381437727898819757058987323587890595485609023796290131364796146351286267076420068301951870097650721450570590429998576436643287347164720035759102031151325158580710868681935081569904104131516534801515825950186473681608097210336334411886933752427090146751837584460533155862611512669879379357655472832261353287035932837609141567637649299286018012989791985777054658864638479610916244814931880145301091269658457720563937391978357577895455884490690372240732552569567873372953383209849410110422099032965688422438250700280026979237857411870913404045092970390894890060423146493389829844493421042256921718762652420288135407506189731719176458502240500562662123079581066044270065689525135338445571030411611010325436480159929192316061301707870318735586067142268921302056579976301233116668046624343650743124192287291665338566198379206333068229537443871808444703886736163512211319652410869054795531567294828485300116454741976298175239003959949691494774639950054706121283499104984941965884257178376301281464204692359718096345550916419376788882601896970298832924681187416182649725314135850536716104059291427134467650276457072195981011472821371089771368069575013707655852196842033397192386255342084799150503694706248519569377166242766731085006263970269617493220403441876976847713229975670713445111521914902897526640040520112001320348933113593347730391540826940153488630077359013184115056265824368670831523523259087197664883474750400852916794952223487140752666527366792118148595790087338944073165048289388812928282623652354244139336040453964724269510145278924117081417214325603161728089675820982195935216375316407941694206752636449483192962353838678866468308016317897950490809637824307644404200653523981813133760398764717006388011117077881429977483523782302956812626283183324522002960650282281836008633446390053662851096408306028205400190225038351351471444397676827711566555401769438041520452851234309968773284223645019191005330396918687790836916482747149883474311467557016573363222504864102009346082069876747469944329940567917789186383607804256234150688873383400007914298177328343550844059035608916437502517601906252938367098581491278253251997431932733870138934684922952746906805179600561876313311384296402560377459637661409688073102274234262589094491370712103448576155201156299037298303097071095846914488937869764387575331347956686256091017857023096998517525598645631243548273992200497459372973522764708238086617559599978804617401445232495354197291920752965665804730453015355898789613547858568113253274286648491880930261516809759866374389875670566505171763638094207492388645701083050587339323510673798119089518078969628735652564877722808345243788859913760169502688219638302947717396817289184316441293746288748960471918076970235610178764952209341522530474146343514600478082722086204502570147555491208356029336575443743724359535572556590676967687632949915723438914179758063582751869643400752661329513510641704850015285250778860949423945883452481725071473345754417353058219645483752920690404777302220321025309081603196766219464208198563804132795057549065164417449807629421015055382031084140862226927842209895420500545705098051505203048568977686330965004118193748195273645296226758355816360007576625266881834185773964562710021527420878166694860233266972591036832644029973306678107992754953038624455452558972718154238692381255885904321277502943726024813263849346804590884059954542427407283162272353009268245674128660996011285988584679197402302384383771268954953431260258285189132875291267909296616207357208984840760226618744605713634007439989485041788047149172317383300898204205908326828613782836452193426578497508596840533159349627174920311256838236684662179153486497000452285882555101864138486840296720179364656319833773232665791260301335346349162802376230667306225897029793880610076559437149010155328045750665107523453727170488517226087237798153931625811437195600637001316873271091417564758571331728554048410472405832744257848249343990920227654322940950312334189852403530609012223454685222253389320939608819913227117908536418971182122981874150849837555854704309672387375216353814598569876156885810064410663743698085090268142336617121396546288051375310600432722300154592298538692754335766775422309623702370620194512256968514669683893276400556106452341935610223744755972970878308691190577475443246850305339631455309923301785822094653931222710443792420955128478632596706305551986975654489971898230193355321123252121548844028766557498173514660816285042651345475602832826279069668992938003741193048471583498827309035947850899651720325973472490919746782258184782162877846262155488057218099230559955174290605191732293440547199122068590395362091469150863071363427785903671024626381198042382218421541412746528948132047012928279927768108232392876030232713042498456124774151535447097734085676951200097782651435604119378208113803284632431767388877716443258562712078569463576841678048978711936777860183849986381368166238123800008977700647705569160500402942068164863734880846427341215366614488496535079532493083973672204950357581421702637653401052360972199267960674822040701030044252864608036240836389853831693475695386237409177646647858744539721303651289158997664362431436224509861198849303793915350595912663293066102859818136138700013157468489281227975684813195771064694598578623815398667579437235115283365842458574964136471819005011420738017864670410563341236421390104508007144297883826492932806640221387952225458292605825076533428881304935990203823058747712805433104255546341219172899037432501800982070919743491353396780477654401908426797633729173176801113367660696957869037495176978281508226142118452072007711501852453910688193259503827720408617263056343582163929304059569459234321343554729605699355184384412290002219175561994778042168121333091362593915790020358392875359655144424843124538529817141108714287030650684284478361619402738170218505951927509033582363632702265641186978300197010739764015437987870454018888900171763408333556183034808419307732136252645194497598921199353253391400539886335398718944291286747139062705437361094308631544757558844252828436318940193084945725027956352262288382924462685532175448900192066720215115050658110575616077331515762530070440174566831654647656247368536549606580031544092807350911356163470332795889788147026724128914953170589370716419600577405391428410431351868050116465624821115077444519375725078999001758817587971280336484529082066235784898321782413482981586425845345862403557164415378785711104915453308743796473654688205038377116625047920640643482576414360708116127288971181667019717681517871947390669538198673610273926864623227736331185752534206708608976279711508205296569186480322400175304882351331116331758189903021820542108231353139968039121655975481866652873613028573259876396623868889963051463212631041035067411484974185374743895997665270244528903940038206339829262525252723949723476279225725038926835151643991546136048226339768444878470537881819911143370401524161748403437574580304290226627041929434260916179376741122886035069106591086558365186273580520354780879551957749308818506223245531603610249575580788717814308017046319635333127553866474524324422787775179660151043463154252029326743011444398683180105674324192516625709614593877293267985385680054109317838122235655606990073333731000014347445083802971722641129311513886570321124038604901071158965957918948299788615949154698324429283690703789886442761307216913058819126955058093597620346548818166938443307584767021295179848631963493720535598693424469531165562925608318864023305662947700809419067506615076667790499234176031781175525976072544019074854458146386526297666119685743504016633955613943477653424285668005680992261237044080804789145273692145898308612818988872633944246658785285758111450160607011447876490620954405483525622954398869812868090695963327878668600221160693058504373938532838491042839748908606186045910015127970939441587389248583338220318825164117346473233319234808877475650695070848782987083315226631445216274604375781865071032530154331966491409816726013199534335548660542571280322762035876734790996630973024390936461121652423592636176555374937520958534252855942892354141391361747891211548070127227808594214201458195186552008630410641140928950927864314369591127540002952689973310256870957748528458143036544795937797570523480072159282594536553545204728732973907112470619552882231679144199147351260226269602195460440345595828833823082019012894440238995557933110601096097373416744488430490570429423126115287464327865633011671797037230612419586206700648680196498048510848764776246176768850425775695011172538643733225386397599436939156856351976857763540808255939395388072593788471848022297652381610800598883705289697851013319718715978915744746547177552946934587279590226482498132548756448108591491912272487791906119024029670203725314967042528538931474797658737402928684250706069807746959991010964635967261430350337893353104635968378919704124627793783901686664298833128329067614032950496475126822558309121597033236707643410901410503112044779340567912412671674037995364067783413554906089833378984508402108566771863622596665256176125037797903102388089223324086403601800051198974951106049784146454290733034179602631324565231332931112663095438449119275069151919742565159626840286161367467610464622297326117595928870801245782493568995841336084988661495185541443822437130065950536597722084912104731948086537965908794406010015954036729492451773520627525082101497334345063245713666956370890830704695470074997580107064817213022997641843518903513118216491140300185183074843597703399441977439711490077813269067714315658296231352194572367735912371143936239902075175155885876489743169623285894147524676253766973354282139232598342041242114907625359136438288976207567538240332875260870450057833768896416083101567612508947734675185045173534272953813109588328968771200120667175967391288464068308034230954598973959559418377018801102001626719318388064565525089410044408714268212304309748594859420365350751559292712085133462099874810715320243460014044862709316940732871157933745686742956587216445983338056146012872335664508598371133403779656879345760578716354174485644337144288928774964690137064104615352214607811922555492519453836380093865077136807928828798516673729337363956332642680690563441742183744311842323856443151588695007739945481193654410940174219428529363949892427433873094104342199297209822010443710614029944213103410794846128342299518945652183074613175361630541641897801445099408822396059868703037014715688437575394271156736777533126661119655066754300591033411577955613786265980962225209792669728884430418730329383385392858211228705655902382181431963841180868809354126528175630200803975489414165929419467541675616355874770194765462198359128377811427273642927579188699110095250265328877827114214598961229275872667044759137405744258624163472553824978069238830963118530744194754003264279460489810801221471974751154032922510268473239106975211651293540956146486927486186707898941581752968352608479070585892719488382505557060129084657499248212812490773767004911594782087306904228578853968577345239025504821323636980500941964299965238590761527625390075189911522836383501232617199460218963373470430282046316672190107709664684220793834913823716243428552491043659806550479769814898605077033736172796180459982472291319337710102917817419326623728049107508358287241323653486261041705085063963067266991433198476793821158704400778522010751461599786313396125372050314259612766192818117703570181501957858755648245562623813989706913348350535104798953314918069091628613375488410322162610738525270857248234654324507809242617342490932524716728450071426455969058501089438893630168477336820726056268861712448980879525804562115298782554533328985785924382214522837393423219564446136974266854267127405217914921086859639053936884354374822291904944215297715834661849880639954333794234838511312201067689892101880310733525792495995806537043643417156103890749043964005854461642040551236976604068918986288957911742792919599254922621340316809960236404034336345384063655409315628103044055124499402083300595976852000487111693302947877372968418401720140218215712074169424009794737323657284952596198820208602773921036945001996175412496902110001020012244494159867289877718642427522668564766637133518030144091727512459455769375001941554349373165538656080600431300650872907899996475835285276010459388586835824707224720724008173393428343980788883480459738135562403673560796747746158790239557555498510069714361971920790684951676200505478682001077593299647000895840475578089980160627778686098058732348654293530728572578628526740017662745895514814902534976361584258419620616948410458312739567824628262044105816107596778963718907175002036668704157101264421770342312587607974053657325921082105294517606306341763923805754730008933826588868783505861030669055059790895839741357545218291833460362374232667184068683945394324913922044101691193201572832921110133798609949295291292403730844090232628474984894054681776288508230760313794551507540497252778479977893067278180134109663410297542593097597234138677621353021546699872876028858708668307290575574923029435348671186297003965093327340429865930103564440274952150417374358782971566756383453431450515981010400460776592375422552493968853086418696243399682600245919272889451835620719631478550993279497065712850823835108592220453650120530425990840347517943691299463896127716707257390388861219899973771753145257144432212645171669123016895833728547823756091647031646794419208394071088158468092819839095868081805172310245279388534174308309893162877618013808225240335617056112071888673427118293730776807524479674728354286547357222538975609640798069961696415226862775592497943270282139836777951777685829964695990504349668108692581337631696293675831524508563441574043476371790827691234044106327730211622387905621089755915088827022162743784678054368323259529327075458368787410306352394451625105731523577851709552278298976095808992082914516283179912203156462187180243851374354724551047625012353948024980791698670182941549117318249790055253601640278072674291096076455141898651243829182357673078528438645283683799155879936175785217110920497090308754215620932580826366066815708952273457220108146674196344651850543528144992408249509796527103884502628388478961150172913530467251951359215518597036333325176983495469610814808951463032317973792585969933569995955756633566127439298664615899934187987046861313638668150657929685039087930632140777434059296229282744374577894928898713626314571451300327470620814733807121473338698017654871790106337991525871954259911108460230849361390576065304164964048631920943417782828261757125574292337487108850165006290870590633201043655535782869130556800005061161123160480354754563755088916059078277124337958251717066185079800272457599635084016357571195615751091275801961705173985415236792007656000349937156680721798229911216681787844477186397846177930241328300600353034973398616799810163810538554409855990845624381906594588154988870178061085127443186050152801160585054419939172973123383034558744201934553880591839411570259220188930934229925929652666051106926898436352585627577695345078584046437499410752607390296062441343810242008926874338668721883879311434818975810492944680525885109932166427257603458287214824238690619728799070153423435017376981235133964713050736773194692449836176363184387359228445675077813918959216164830034726506753747415398746715156576599213578724907229403655815110452177254666239663133225647841574295535708687956796905096359981738172239735986913794992889349763153272234738377456851539268168000659619822377545335349304727333078975116433126950010897021294491436413806940948982732656461052973849217928213956547927677020478946189686709810911869242780015677152889433327902429176898291880146632909003024987998960022132842706202520013556258416418939799230639194197052720723430559808788238046702848168575112068587460439214020195398217061629606304384813615615336867717484565775446403065505971959192523070571673957045245591362826149743728623443712522135065673297747263288276869405690747718285154817793902116969195282009499736936070881927393902789431781260353000109941410264125057342417771397195780984122101497077877353199068158444751904266727082603149735496165096638115766507078727508769308608247973600313180796650972161595177997518331647783103894814126337263672192065394792010623793428469523834293437083584706507999977895451689531714901535916870742182190363854535709878230395219537863713859320182778753501345693928664151345095991949556828043065741014602059775501085769982557624758409286395617611840890944595422641279031995451045895555155123978817164093531601620947177444970766140602693578501192659942738484146499368704908914447598252109286606326770954941418427113586321090317695542509404741386474428513671442012464182285549552459643179633144574890873288920862757887637636754667119861445916995131502609611651822635820846954838089448146965434240672901381281038841651913441122895867848778705203658169378871223237602190777744874791147316931426663358616815845544116349932578701245396523538248573709640861914815489391734510809640004970286806998646698931757108819063643970190978505946753628302214370539777086202143117923451339604112156911847527221945118075456423805614196572810481017277632965196369587543240407277814560228615552815245979018386233312773243957765285308706338729878159364446715169970632894784058558588861160822360158603468628109861329475847264269396101485265412529879530496451298502057676087934398985015766800714661170366453584720025345858161134593694748760749357727584926957091540375581787966817534999775649110000394373912180001237533944014126074665452327267638460238815246864859734247730258563056659498187859633253678540859877746877067047486762271542276628997894921280806761544222357035263286469003009032717015505236395779603389719627142384711293743543121883708115635700717593506736152529598383726633515444769153856458738018176225480659057600819856522621526121857031115444062074072614625959571245515484901619017003768289612120512448134181104210737305898547876898219167549913023719755445607817878790200887005383294590354568748298775331861596471466447812816698132035953420297054080001139137998077992192864506072351006922987539323230587980725159750229994244103778412596089222203098859960017809630832694271214037380408158948366269966976615796477433225333074002388414404258518649491879504251087381573500220372878279297224940812611020279825538960171782033141980847677796391406587931503526589371699072638159753917511564272864178967902068930428227606493677460471909127011325627129015626698258534781438118431055559015887980040692762026772096127612509905786401570592504159808021177491775004020253951702089079142704636619249171268037742522698550753218624403807471578482342089951980160634943136910457240900730423784581946705302922168716922458357509525815311490119909811611976351279366637137664254152947689557431007997780996508836353430274843822735526930128991764670552394981151233441573043446783909234951614187646562575672630911369830608811249423051992314365124806374681791495113602824902035944564400751856514326725653482068770304138800097366621586429552920773264856825075244358462947222839980451869103600294030137763537974354011082850725296501543039318400758373616274771988125632808444651655554251095118681628465608483414460462779429426295164366828645462210416023367607070818790474495372464975704320803017198469124686463904010694176417042396355205637130119205863948574204886947198223163924047876307139114868632134585563984908975032244740071066996536497293974228221905536965041853528618574224213012738953574287816994902063620549512140778597730308289921902750143955833535408343388020113831830649287311679338149603807386777705892584486675091657923139428106115391906193697996747446926705207670684428098151000310898584755386841751125642854860262194670687183450937104028903674304289409626249422568635052962209688141921673479115587226702229786982450474810626618987520539670900203543746684428305795335709174629079349749219260983683433390178666339978858975415038219177930601153817209779765683351901669506122458918689501206346704076832971985754436305475215181038686662527688186265007347761525849222069084923974167326023079750997276491326470391454554563272839000513670596805833092753011288365332045079264101788276824863923460534644137574077625846603313751237267628862200595309599856088827795853761106554696838351067609426536178885700428364553936306210196491578873354074994542190027270731183426302219944231868250983524836327171461514147729536262919530566684978144766141835765563027466999082972631294082406424050449281654867159775816381673757332135117532229716233759400959317505363030086300910664993656317732938064504976864096051808976007719634165252658275120668706156664040827910208207427602772687927658459134980743158548782043760583179730429793709097516682474783642798636450078793465391475584508117761979124601584559103736992481186189953592028608780702625190187993736612011031405082302185947735885152643164858300636818510962119844552437135054618797968623426383751052330174266052858598023268214961396777189651680696858384536872404963337723199107183338620666380682185788532648542465473470997647743745288843031426537553401950091508791112323085315297128832919188051018721258316827194158553839674500349407324030807509672633307829351461253558758518034117305072725524026970251267599810466214915104458812442744531907578134697973373503284204210868048295149458402490665000778159130687411191128159344313369928869519011200206069025333489354063724235383790385383376541495001428864221537623975528305885690009101476117729974885681680820864730824416820969301781094280025667474995081717226205823093265666768806094850437420301095987767721192062643004626522424148250602139563258454704045029340852837533192087478130794772565231579228096444505684657116057182842379503028012431099231579097698756583232647355426011201343772383522585737676562684328514566505473462322047835839282871687227548107692928958594302595282585158602460876818719998356556466577460869964841918475374108740365614773004968580851204539838637018436924442065596910231385443277634926950907281620930447353602520914151320308619091363524091200872186453720599777405388960710308437036669563313758225444095351010057609340481755774401599685555213385790929394568205873354994953254176898428926758984150217604009348526031168404001301440730069137254534906859569766151132041475617381946530423595103936955714283264921265754069869988278993426709191204036924980536526732611608363559573217070291152328717319919238200391804453503879024436509065809489891395713635578954692391174420389317114164670057982429167100756327988309336825756123845087110641019459297254822769745639734805713798221481106466395099619119071596651774014633700073736801107518249873077535518445063876952031930401469486513036134802441526286193258495027112690606554869120402060534453923463084215756896141081295571186389224945048238214414780239330079579545779242274678276662807997402392948702230869412720879168842576287569285126219185730361895794624439595719859485622876909119674186402696093779097205625087876577621121462854933072550455238394185777430914067866000013949266918155657645588259874389674073684634661009775780030732482500975834158518955004318811949297590905429863384161204000813762302293200691412620912125954958753860730981417119321746817645153485198363561419544378440798962627136884214230876962200284006124996907592393589818896870505023413310649900184491568839216600966717378531835630962757284678848879638302683599703552754519301795379261897540167216121257955861482370735507335879042428683871768581095854488654009624371051800998912601215901823425784855133031162337179093602976838417440362027779930987943703384113403715168794405626767657413562831465795440746505087425850997537023185612771530950228246800519004336816846337975583200243204392115652797646661343284480412213072814463794498900336762930154094988442913826984390120396863931398749840567457936355192377576742042662433199377686327142228741250618890473664464511467499495916738528439008331097129449196347323739809393972247800185493304935897835319189375557340141701312859507602949516902566704548659139298069752303992459781991268984676091227809604453741938493162646237174329253121116853248546889945512660900187271277471142723848172208668447404998989700414481244172506280566489750656564157834410310590497171540980058646189864528879766601891642742768694476769883528849843494079904961321421164244572918474977615566218433538249699979002869706593257973122670943092079602561379770089442421013009979696557521422983096137522236929090792526873999867375770491420810216394888286407914519272100414532697868632860148365140515294579480885357108828789364619299380303624073681948828826187708537410762662050093478001688908978751854868136103119801276305663992155666270612151696532251023230757838599493350288488466904391182308169220691772427095403036386712205110334720698560465512702896518399164550071264638787887039370072033121358194313068864588194561881941565692290386461219112191939660274192991225042500793395444589597669129789739062756520473144374580351857090845203906296193218321195240256179332432682409283693320789806855462841081534160517829987742840321627614323926774018040394248635846727088096516086664558607936462828522179189085503698544768101063950825101590532335417824513285816750405713883649711965126423639986528187997641278251953396103823315828274549786945779938319767709792467672114364033905049538760179457453629893929402745622528090219230337189038548020544866691009419957315667431594346901444123383961609665168139602071482655497840645234362433999775071521363964857644744114068441503180433728428689770142044149686700663549658663201231981630897322816787669420940258695886711383394192717894530023281928969523766162301806998360907121023255505142411682528019633702261300949170817297149916027420850754298925041647421100483600756484520320725581010217734859833856784612653380009145708173993407224714916510525111946106718733702072973709692250902951378992897613161922673149997978078610355206056272867041976831891232674188136335846706135878291604958311739128660769428658284794010817416985294652731050396641498515164487881176287934073727090744703563337499715881395498990681490491871127776487458019136766490786340323603403091090051612822455190117577483949938352536489259929325451975401926953081985447980090568196877851851312080018931090050809902748042355564384706141204891632651493381180159609640470136136801518223826673374622965124081970209933402251229058913539094779985496517817792580491704117901041483302254478676316427844640120830233483326300256518484055021692172473521139006916549855207289512718550895715182758025487290829681247239167013278830239124747317035923517332369603029893782700631322348085029649387009287017120393710784427362941541885224268173005156613519950769787388305313784398259405677298561278911090367426833021609919911511182950478670168495754613435859063207787277378360204841496314351465516201725512172801412995197571027508365697800606310922465635226762086508773946845377335656774801869215813468468035905797595909700505179118511101934312417080485453546573822737017684726423370103563679086742902959232385203921751659341580964405085962758477583057622466440053144997500005124356957059133665115467527810759309356327927542164897190181258276599613171148728303032446481104027226232923836332047476254860488581483354485075390328434376239767638458096192770214926542065262330121188936042450729645279302352806872129304108843969815879930767930740873192613530192699894556832812205524652024810507015746912626693402574659410310332217433354303279598599136434984091001305298150651229124643734112832323539943396808481302079253328148873022801690644963667225541958135112387004596997447327195269601990602792663795684870446400482101341859604495964291057679092604633463948822500923515020234338166644268346858721793409773391730424082794341030774731726626248625482334863951390281361770540457625443495954266490331619412727818387435149259553543019039405182511182161753623583380057488365879218116251964503932897093920896668419767815235320785640405282805698682644470994117608056730519016634679518354600444126862908564346237261495880268621941800262997110075282091990530821413425344331927091363724368134283572470001651140875439281829888793394327114090905828502558703615119552477192904499843859879112430730005024227328446351148379003229895490943034765775036600188533911532739395911252007043654160411058589926090693566315530922708479424748551966976446519721891866303988443862007254039462022663238337999763103831350482377025997641959827773397521636688011166393775528218154291933204225954163296442844474366643628610076600847659188486142866941903554174721006217303151945711524636979256748204997723354254243547057321391467450178108232106662791518844113833279084671296897660770112107438072254869014634390947519956105166621146405729130367326630395964404333677566438333332038234734000143037762367661362875613391520925521611381417254164798204034818333961830879645836739055003584040017432211393709294998490818971164283238484240591731932485793219508512147219539134285939345646455027744129804238759480848237974130140304360345445515418737355554801381898579110852929503155248895228666938741779360520814881232532435769808436725574322452867420828250776069630389534666172643274844947115827869889363663987155635385385608871931978611890586895873202427813659716424639092433447848180259531473459541667251362617845502643827016757336742058986851316537307663565348401548108749326656511988841823026580645432403651829608186747841636964619936299114745658449452809972568195940976516990097347906395640652265824443469612982125992888916563641597988287257310726243166058553010224211385293849797876384828482265656065400884571501650701713928503723282235230148363475010100760347872144093897253482976499157309084868752575707846549943256950089521352093309507388624068896901073906145000925929116881413771118666739737588641456544371581133104883667873334130592783103179852741094688155585253885677567142761265642563976876065024266253372916128721227397352577742401445014643690154899346752209390878846911130622784219103336655829289058837023073740384260171444326033826898311043246656645641893212705298049888690203129221254900906366688917428720441323974860559285538926560413367031872568026997219603708259646659410908058480849859921353701475953329312049823295999527415271028655559368074035202690566681853264500930362704550165606661354835036694295084667135677852597406225869102135449691346992289672892337578814805058455063803256437479954441680176044055185517915139798759631445157081413326220967306595741969116564432595185944431213369277567998555734215251083002970448625123778936305618990514880552890051324916950147046944797807575611031503522934431378429529888503238982185707071685511865908466544054366396778711286396407703483324973522029375333590822439161133979804159795412950485615615190493796719323655574856275103003111831469576422314439396444033890178728490105934279832844317138074801966403039674044852674974477455285907573056411407017081183760830526163432708401653207202875687163076676129111393224269737521051507465668947890229640464234267415643012548899685919490878182681158839125060636822360501428405330771997999120739567246890436775045492226307280319612062951678244150384069330116395687183973398343377300413994051739617408923226374856981446251248143658748715753390955958416612312653394634095550076878823161412215671735622305085431846336627995832492983144147825681423343483725287100652897559742468932509227048481276252293440526197379740404069631981609422638742157000155702452820187827093564583598569938055786102242998279334450881125113291340095269132322935091627788613337991883880822833253539675637206876653036101276273381319229565495704463199805168006552715187558383164974720418773774886572407757404217852113371514353333920273809721936306570135489867296630556953560261730662044059761469845162656917240497920696070364530681687782330029235082011942765842680234518645868615714606511498663601018207390674693566967830622296665345210170546918819820930005496377468579332176349323933768363612780423765148331271812307045487761688110143820418161030305604381199297579068587179197407198075915776655116707001368645461124197708583660820779607584458022894938967510886275423564027305644421721610163221985155579079411222199016958049638068620898276844487705882701280080192614399468835566615959160407754688181335002920150998504608544955766954485996149648097193005986838046481990766323247789547723958326968136392972128648575680209784728980260316499473362094400367207977807113452653093847581883462864041138588261179339140160323398323078170456817700618267459951266920415660154099477521970947166936729873162873699924719169989432282614239294486343519517778832532551798256846533157614169761577247519010716013847436728236338339142787300009454798988853071651495318783838568408497166551006061879375216638324180412555508172260748102776786357597550039213152261536268143049774840866040693127677422697223689546061886621410817254123916643387163811011656875147733164160695052728995527149725832968125300361743853285319625321989538764340991122678945128355640554292364793876896960596191996071327315592542201815118315834505726080692773367536335572521185818623128913511481929583500218865167436855292824505573546687041949523650472633717601386111198305520816781755910947362478057634361704174251887884547668679250991888127057123330605040870097634494274000842513646189985474073590306952036576018406751885470107527557919346321185141639595161400812924208529492445169162962298994462700115373378893654690772955296866208757787889932100479179571695692191872338623350278266129125207656531480546032022035434697188816782023678279296559614617518262168468329796010378152273928297759658911100023995934150650922728175857324684538617861331425213490128078889300453336402436532282585339739980800055325926525867427471841009788281305196961966777491945942723826259932266599536185619804511008100187509218298052760899078011104466362313996168730947715522432711139720196755917445028379691800755310704174308001787304061276050866460703493444686716518642282836474544834070004147530656402003267489043852940976393155256487103496944652096231187850637438160475013664887701034328973489643656881816895223049182645245460316199823184335261976191855378104210548057620275131039220747225481136505421942579359354458373872551723766890669594982307686575648076026307240138645504030792619949307869935156943367379748739516198016459402523875090244712123597386944295807092962885700207642457511229767518625663333041071731973862216461989400766130242666222179537778221668908293183017467350954189670039435715184615976482894916732921817173236729882762527221975032751260317058155054507044053697312710323586498964981098209541093973987087360414137921716920487522525872026232363330079335637429197921187040634796681854239911668631214849860113713089972728815588906582788258287427710386982850942655998905222040721391888878799026748053345652712059198526723056232282553021329055411033843163824508838900383025012554773482127859692477298844492183681941272795981951975501326307635569912966478786588465418728462505262961705735875442577882688774197856785518421089321030934053338902221854933679066919092412897871279742191338601363345799479609982519746611349229961883298089495103167600134716617109362952720301927418631036174898704361815728002657444294242538304720829476001288650767763062421914585020474816666981892532357932700732283660281266870055301679848415085392799069987427093333809465383443468524416568898672972264039244701885365950353989964590128401682935002294513808337357515506436220953600893981027978593165508025831803507150873712005343523404185277639400481288086540136181871877387768604074680596274687298573178207637325862540387467245303055115268473366300532477482149096249454220066245055687530325454709255298108523348534246979434013114759753514236206900810918807772618496035161755376719411357890570565767444922859129519062857654315467280873850555709884253686638346270333417787763790952168472535915647193587968294992454175140582288222833280104227473792432163774457545032772295011406658871729640561657232622422390059302698706907518177804173144730914019589815758217495029191234982726692870870647087403793594296437739612836796514606934935941356326999664364216377374136354536254057447365296392229944007217129124339739230986597680143731776286875175612968577530170020242940357503841714422387187240465626885726725669819448919142752699398352588800179609278010197805481580505369312607512236374889102266068669012439143947594272166125798295795054887981251962079992029682725968381039848915224292343369155707774587928360343356566959415742657784677039928685509030404301172635620385767270768060544879943171422139223952049590589385200645760422897165663197402112442825833009215613261357012704127119690688701558539632431037290798339563005938425745077218515381969735369663246756344519709372234482077213877872124378965219548825284961512463769170301204375460231183257450852160692309778870681620730995490022248740556321251506452958871738743022578441813735225572023436614580733916781784523409797788144762612621077205107344444088468028263374245637661077989565083717425381552773119369536800008909097870961758094273830440277989559756884528726265224826707218879486813198906428978256680556678143156498218204287392271365659495928505708272200701662530253189812010223435281983443655267374001840832206367220529544773703096753183654380382768270938090488670143249000425912885028463159803964112869902459761505205820075861094833793771857297653535262852139664876975282006970440469687559795959954567602003557902330635611053358037561305370385280767801869076197410143032502974106695205640941210443947777665159464548251518484429340496542979720101272376013062249827106704614599090029746204730460782997738968234492378407628374482274034303194050139141310064634700143367240483037416033415090998304880995660578179945819853567464251102125885316545194369574096091923513389425322109469483894316302765137438086592450870016177441501734224620569065777996539337925331305674848785476041234702136698862582054072847562766395995279452684393608132563613960160855277624809838384429179576438752405244390189358549479934474704672577564451861891600535401757268557739744325222881032606269929237998071336483767219857031052807602946236175197569026147635993996186578314015738742584875925129464273835652024183501005029873139163508506201049920246305543496158762475815915755454277539413740790092149601161210337966700952077244291577009993359552818703803345076433209729614583129018776098452848192218957656023249024300310724163408538155301974831077551207497800717764769859477897425462980602487783763604765572805349601361935682253548320723777117492691962876357063825160692572100221254481672004418607132696024609233946780273844356234891533846689288662323630427059000406800762687279389668401434206294112531084392607765110350515532153583305707153249841144761980718892416996278114461801392200298362052849510242970087637557617481098051181190197052092459457718586644417709152407281271237311274862922364498980309357730076993471112798849984639086464503539162048915174381365626832977222427085064032308876952966824257105949266892006080400259498612373806509731346640156217200734442685104305298686050471902055048542530890464050773140242287631430599911273498619399162143046135452342795866714364959049496898352361841413821142266582091228792308458638863624344768978927057443453181532150461818453461640644571462388880600492023220235971846498085183960554862601281498691311300048022537237067812936154129190315007954423595682392719503716549573007126151457035033726074614081161819969987660471263753334479763501178980845470695665826615757996717807602088552907321404928537822565648857017700700691117071507007366865577854811258424856533157204063960057749963735500859201876343764014942066486377746037841897537925824869542233243953678669384706698525897842125992898137039254155490035651206972679881321952593861261134159234343157063920150690571329282771816749200346499489709252104428699756100896320893078113070469525611568232308545470857806848394508193686880950838122194598213855918955007127863127060029505139475129523286870893965543735958438756120704726525946509101294081528745482314023503051300656485046557229779457566553582276595557346941924667063519834805430954317007484314016543383458245674838184497124966463883880253783787707069726976764092094064269703627244904417282630017774191802956053079143636562457741352472761106425840776970203426383957061287513069214536765881193776600903605311728709566578547749681451403287887581080430387384008147045352899190648644679594909786371124221698774771299498713481602398356682052792936902844386552770322353831423227274046564665470183902626935007272208109047141506728801633134966910711528046568703550340350419698714245929183442616070432596692435971256185591800026860227484175771873085293691311985837483203488637575779684413624334053815417606276330253970451766607105191571700385148450017906040623230942190793943275947546782641453426056161872324703964088553497964083144458542534881280361446410583233658148500556822623873422393751243006081731347166124811125581867784698669224966015407871540160749314619305514106673575567083255260283109893468216474422104786327404743625551974617755778068105503849082700285034455904972251318479775544812942385133183569888731909449878351582763902236279200166915706056307150533328397500538384764684130871791579618554762233535678648347527132096032288961004833123665364927243419990026394662442051276777286625356654186096892831882172395702736786178421450771373499518602362385696681574670877983198340803490629498317197402477119679127230156477256246130539834220577941161839540639441926686594343851403311291902201997634938045712226491605374158607197135216922225852705657452162281522516673754230520358985408305706967814173343784948961640182530069492140940297518780886090004446940353236408004049353367262461185965909985110597438518157194970182935732783729929308033967904121701515699205276332365672313959263033863227094721476236401979069138575532709230486749322887706463442064203980877524649900112908841108810071029335328973284365788812161625776897693362256712624019887133308509896082499184020861889063235427350343315036333351515876390618908675251668015742209250148236718279520945163458384199484102583184156130318083354485230493849154945222143082780399220212076562763443671901791800642907660080981355194801725208296104203535546420361438132848456123476408989142378420021386830908598664847261296496815769825027042238801855606415630490053729876262412832557998729384569317934980284416247965448744823517013173517043839438653309299234838716828537301274680478490109392627547933015132753673687532167768161186271647395741755072748142253628789423575056593765789642699238135519251411314581465520551385478215986910231140051798409221718776058863509957290775857299087551609034869608706423617020670211332512847235676423681192398549203081349205490079301227319203946067869465753302914850788642892922620104364558118114819272224516597074537211876368250523643020781997836425184519017727753679016025566990356312142461587174044697903504513587279082713811709784578217239259331707968410726620907526065601169660956537543573720268557003723152618469227034909373399532724627548636549217983381087390310762251181624755489781166284781061461469480979318872744585407225594079118662034178454672098358900290319346152491924236282787520267371108499157307391840967163201280505294532605723644040780944480678858423208397908968333971519968263691833062832221830349306950674800770313283777784093253479133713095641322544523251812964470084256199548343117455772184193782011165468485936574990670835554740165671829034742629984632137150043135300962704019731013773045977601295793144353244274283835020176576312147395490273811961280086464421722688542685890665586032656604981788780887928755679891002049598734855534045387650079102308578884919484794868069330585382469364249185753809830650711513906272500994200145893184674509548841546152235049967351423217244164999818287245070116508973615784864245791991485604774479187777329909788974792468488813261565461075822715775510690722607251915423317232288846725644856064537634103796723439500302497603271418934943763191504101860163183131090424878019352165787855097838795171472998780592269427939873243270937680140787224116952402608882918412032571098059970852938187835389684935649071824485270005944748205243337469813753022401872956451761826300432874189376434157473048801001984387949183000175748284166056517983743134665343960767079010016611429788191566697727609544449892443093144296987912650193809997985953461353531080784049168213151486805095107902227032494146263501899480244153273415136497709422335425081861500519430757360473714003083123069926162567946091337006238237007924497680058481807159965636429544303200545330200491728378042856028156243516100758881101782477924133169084754208907722546823718946790377720291259662114000589451140823713666859947222675478521068421098173878626362672077949864961142889962262332429453766739880657745088513524682765823456780308829581962558116316815364770824081415155063107079664126837191664437205783140113954480139652350321325513497658832151100548826929153122178632939171399901715485838895875470974314614157427225755357521823780643717385629548091843159634866462800687998362534453213680501718684233299204388874968831341410061737943540452398220085514949143831994747514682702192440581410032866231133726732135467559615475843214228887001748869286290925503046055967645280821594011392419399402849109893305905815312841462407421148018376856987502146726667572020679435730749322286937443088209797233627165795627996486649364711226885228036049046795587341555642430538505616580802402514022674974664403584882924063466560063502795445577150184596915233037365902184064706148861311139156163198714785445948696161879195124665693138814460126701230994069815536701864633689292117895752628574462664423426073733579098472322696072844880388701496784249868781763991139511104282700167237718130006442913435550451753652060170996798593333321164053674166488663408286867741577863174097493112423116906416575715732466824884370803315916247542561189960477166051185219032410811513188172961807135268064985807342996098245484246938219727722899295513027743383252534140696814543754499659082026275062705654897753613338989498675077735651752880489593020405827083167589137082195491083282853886931900692337731977823447622640069069740490181878741999164865943385116793478617423352374400233465382381927479058969588298385775805561032156132132868864785636718656289225996867739590166019046995040320073757901198948017677023768323235623647724148911775435026682465416759276923194322046822402243270973260145650764533163911395757716776811516461964969033327811075905300519181756105525597313407885841594108271694125983602964398217352479120196032508169505466083519956678036387553787080055944328133924905615287957776188122350911791723176271894806447502384283804080743310655047923291855635719955637774991395412942469160633221624893419387099599026687411132612697170834536690453827632799155868010147143633565997799663244379821447486813419139917196354766896025609965188745255450673457349440361485928011276986663094721380483162529398716770594067673827745929482617493495254079331546193423291492694219285242356646070140781410330809595524317021634732208636573065088737937447467597478085591065566658824833295432889804413421935129831710379524351287183171632223169211462650523573458854625299155450664767319126581130647591964011392226605232724143759547858620945775831289688006792410511748191351593363436670683996477876322276396790313733030556168511937402921819790982968670051065086251147669739109728984645498854430069949806995047166691941184397478817511511045535274810204221880817958151047650020155209473722407362536844364437930088428747074339655866931260624982922268998395432052562331877934874836132348942230762111538462814506893589679390556886755416880799143041709053185382737017431296162706632279477686925885159580676453751404896394008117566428885545006000711633950687107844030520975883954553397784699077414823146072804089312867612883892344105309681679040792114343201155218046734737770773478771829655636584070671744135945542700351088657297701998661955220167679511615908880442557370878932742230546135764127306988096802252457001669054213961962245101370017211658002778684775245326262924809678213867830356778012432395027952169731189061319558739182588893630633283833500434522431630803245357860081392712477444449769289196076777667629292202818027611135192930105066507919257927134763859298106083491220853008525778657633290080614123739762863292193879012417866497190136945861935758991558670944820841050313415279278216223911927603584035393646003650394556223482726490386851512198941702327459097909196747361461369730176591748853437267503526528438533692853390728075296432030953457872498497365776057059766771255656390196965095579926589929141274467700813832004815971443581375848757511155377188837465388153592860948370867516925993219533529583498146929955816613957120793752604073034855833733148043814860559914918177717121454519047939940809858776771609741503107098263700765453124532993232668509792286978859824244374531570982960519852857594099332842192679324823337329798060226342334752515780878551239187129872592435832494225490637570571394784434108548179422726753090497126207454601313713580159159805103927736712379556580349339679383533168776778136862037927194941998232678790609986017375320807550127812746834641006972492595948372496042400792063583329991679089615273152974519287947312943649540821798465781044685756607221256574724214098051769181969558534825652806663694063521329899444814840646557485812753336535204546782895780317538568569578640535291114201604778554228035834282383142953473968480107815419664306739112259962675396223324902437889950987632470035122822857643707305948822268426566858716112306053626461103788157970632086794719298147894862910383520131195667593440339643279396120244336574661192949444619131132053678530554380451742636659662286173531169170937471713332335943265126249651875077129950807369655348612967467132642676194577799361344131046200943783675885374420733838849814992816614283933729661734812126925531358347105337074502750427978861450093229492438141203730495277818451196692566004887934475486727938132230339283440754750164832363690103792627590846867926579562238659130174646555970831087678412826531493976462214980550905792734394131144555008132408811749566002419037216305076491276011868609793501237110078194973135317612294874427617774377986214627093057980142711741140775481048728711960771719026475438534057183209481618323132837753696009127269617722815313267950257092331401868591103644708013096179188345069999260420167306844713037732336657771182675266880937611721380960850582562013768353330521116525676891538768196394619251526424389465836554028485482506032238346404936357822547225449410903000844417303544336863745165002238652003397323687400946943328055488881239063309624697939458517188993443425944848940801256606440919101843168327642801777064164113118593691862630602466095951830746403499328783122040443730814157099543762916868925057322595027644251883170434099550830311448467981069481925857243916822215951635371230105494898058244970486423516369779219415510139667081865591791230252988145238292902883684782202760261991613157338514242330162204189988088881280572485833002948534601695003465609449390295645121602234539709925148232297042469969465113383152276755017695705854964700671903315806024876452492263321652982318614034794038967122712395601058070038368157904429446260836770108204638555154641974515792424712596281035202099841600472890263299092427468264918706307975221160076299757256869203607870189199556127283022054194032582114554347738406303230974144459710217489067531836760711753756067005611629977273237118368263484388497938825969663346972862863489593104980556063875378468368912112372151614199552987951437589894816446218452511731270608511303197573553364729902666806050148170821921744447639071985495258140518291468908932182352438395017685595757326199166008864563453808605947996574985236466251391121178618178613574652928239106967955604776759670304756213223316135716733919983072084430883866219571537345538544554872307463525750271544294256911003791254711980912054560027766625956651953146344863463578560412762449441219714270465622073159036747276252757404317910547958232553943878755782125002084247583681772418306725767658766844787809301525794139061790349142675240007370923004478573916940609261871913502905317578833260880633253296222942184043429976640089850226419784523554955879623139583757578251489060922792863932741306821058631254599490289419429155122959445839758993250921384892623572673081507106360177527538893346286565432459086511486580797671450948752725791598782789380225171872666314733042664562784856544693345334568727107326529047873706358045742260369469542209714770468494391676103225627300999889191193810214182428947399548841699600023252515333247336236282615916650369616539642826825186573369241870927878080748029633158676548400895508011884299700220105887992509473128014988174127626494799286784824692232566039082082702650235023809303009934749604684581568371811400653959969741750514186306982062597345477643130016819564259062086146957704469900573937190489551622650266178667096248207476041709204150449515858065958900627747265931410267994914984402218832303824691912533881109138702904560959113905999690436574414688266507860622926808673979289298339368731197636724553447556400611516004411098424130578637938606115254593023529862136631143252800053947515532030045055441948147746082030192367373764559763674966927063441705641155779733452908596037317914196072758687695089106520032182872020592220890738826217182675039185273421555610851082335838103603610623777604692437299241841657368809076777872504363485373812742278186793037859104706436602019319490997031785283064908456315619560536281712521502231685915855781806956244695506158838444030437421879256835108078110042674621337722577474908330201731919185274862819379802997194530488888372894001172908515037622846557242295465877672170014548528808254900407013310953630399415578850624584783492230707968794506654829098653420966480853726966395670550641549069544974388856365000729436382575548295833456307947982256952087369562907702209502680795513880375622301683292238551260248527103760992869163373987776090774359740371799613856986865911691880783665754876414180921455420809156838426282853262631561680626808474404274855971903850076966697874585927073620505649417910019947956898546907251707739351438720236873037106141474472799488428602143687868977045296346331933420642181399141235602242147253657129005058384676092502752435954693705984545637983968619402998926221969083168734934223004693681686774956885604277100930002632910911575237620828620908391718680323581767049179559539823710890479724665978288606459701471846946891659347112110996809624202232510894243290985325366430756215215159464013221370735883040247269166219574088764520392008863979881410417288412919136404097254015792856628780450779957953575093562267340863930358806892012945174467839250894853339837470271174364954193003423552974539852182062815395509351933784091203715228121810768021273098375871147748537267622407531933220481965118824973423607564916782145775336430983428281230913786354757537289015511882240087437815767357902242004026892655369080352543614436955159586999507029274304235197869047637445978521762748973467706936571497978157412504462226271911970155654135720100587932040263366866464903787025759109803156644040325892891801781982351586605316631223008873847728008908397649089567105504479115414837289745517657123803942318636792638150927440974389153774602608739073328106446551897930207611948535940303002733402182369909272087163252186143005492431240450566167194442069558364585063459295911769134782008931606018984199449262590520615360900097697829222415094894793398696151802243789659838445981167216992178227163327931058706908776171328549089430390599673608834936202878321726253285221820512045893889111692789189203230957079348644844605711972959226361752036466672642083073471372326130476711591212704192946192586148791520565837332757420254919887133571675043478997858550174972693926071899458297665000729821894126996882874663692182454570384110270217015784978755910715458138911876353753512754355223910425098545495505686287017765632437701544458297881935974575719611181270002828706318368329761748532795232359317176414813845575625939395317991905357526251405066838209378597436562771002096761863839247429572553569401198204935181060658240232719839562370374638471536428703234461074511601200950921165712071972064732924192419964008227025165777406654418951388566873901580587394091522873478819776597830941672306618904168105771889346131674903118618477888733999419065300412725160802029027399590604134356640244168415714075819679671673097674015687159426220825095733955854244539186790689919225690070914216813386354846907704818310151735144776726198655646122004566640013313819065848438722565400621685223716432065061578051991273585784080503206359626691678558570761813187521506958219733567102472878164640682719820075262084583179525596246811787724225229035028673530784646510602815867581585039196062479719642597526480413528430110616811860313524313342989069712799626630925930641775623788228455934924475074577019873026938689792360170696066422399276874410244654394258138599797098537700063104345820521253586971221854603176262668033062768542855635347940133173201213178066538448347871728231903236383937298649692928009289487132246027376694821071830161701608498134546469417809408311887609031334016946575796075264643042048543118878216021324303205511791725102058130301768999802992815731983589229831873219145489102966238328792794481053710063073232333875634829124547154220335332174097045023643230695990307655711346574168375007258474001544148166287164133425091627017613663959732773594206685353714844548635753710504438737738421785627595355854481503714715036847031249356496910857489372467420406151354718433731312796047284457429424315410273453193682543620087666484446640634699633755445245285351151544238192430261941868542916114788676344804103057372315154124971987778890160460733142745187070468927314018190181652541953074187398133361278539307661238823489283181658524254694208689813178758240659417095443194690294105986830240416717905749339497570388038340723640926372636041025803622683747374118789059525101133660491039824123196685962783297425902313499502749324391055112329215446344669214493456184136806515529173584957149549239853042531801094279292691028804132394472971441975405453086185374919188933634527358219582986239960498565695012272057303992040312380607595565930480064261582156410345959316495890160364710796193375577996588842062748677183882798856504034449812410176946147484203354801785151951722504817765401228667184778356632037300603392199995965812644041546181734526683953808109104052417868835965265795887052396918190710200658369567694917799151642165968202556547720593803370927980376827389775884066013973154861401131710230919287203691090201425395051216466302608462603941863675854300136226314998238868672450781641998463777870570875536095807602475062473432679017236782957990413352201528861817554766603238626681712021550438468535230385436951830005457939595669054660096997984459410154092514334794959875779336527268977010620596795744696152350151209453128379296578575711857477537960019228352267593882358384545423422014702908416800440100054145345689716001450259853965118013278852920306477920915335710684695374861559250043839662171432774957591860045369699614747845363867022700553093121579383567088492599205922609078312622127780169882564272603125699987930300630818287440075444176473128060650064490258969102317596218970918425686709478622676813275675823622863006732733395359245214800711619664329224163238956870220337899281967544492368204207180046565802482863674953767232674286640449872147613502317529928006372053265447495057143466412917027349939215144268203161715623213631792395465210144671988755233813466630641693176112926110251426971765016916484511306882185416603206807698282029132757911594318079489325908178940194773196453740099260609777219596024555628798078384211312944281990676569757799322772583379837921625224958001680175147488745520426286324891083906392612365942009549553717458370302117349874382547290083744176502382832276532253059968218049325225689465550726223302951637370176113783881151028696995821497234966145657223132253358292684141438458950044905371308753201365413082747492775571698301253679657287322790088584825871988046845444616830634044694429414891810291458235767720655351429178433169213287155415174929965093740961345614567573882986873768983264321164154515774390587244573181421614886543115031971281481222361201271256925088089004221196670637050561943013008124116682917701627566277530079562835610399175826917828391476979733060031153573459262345293354096709860112120233263245913690833936851704880814418958338102890877349739227954033273188491940364781468291823625074644591998795477755181644539621143964807800207298837078540302687591957236282993632239491616335578411650070759015554126345991635708658645866294853452473606230216215179523038700001810190651089133419251943165780445061105268977277258737869292326946179821406935702847743258770066277363640366911827176991675773174859482113366429366321630991755308402947428252456020054849526314771944754730581236912555531886991508897594514991968399967403633269811632309412876167402321481448555836796467357645965353734136602840382197490836132976326900445120605932060124575232153154318373343492074473483763574630988533716707574610141161772800980223684537628576960772173082081250428756589897958774318674795623274427518968585812199010299960786766755933542234952199746031531718479898356836280177486934406434020397218862208970115648124873195528120409733524528456700979816758144429497702576064464059596380934046361849760814526984358565186566938259885173645035226040152424011519245577546485345556317216760563763996686505422894474341986031488554738140639853534567255613040168359886836089454931875666901993810438142158132101613886373175079002415930166661086648460350279968500093640881452759836243307238928009590702195984811413332986801412172651121967026371487566200710968404834258216606951865866462847898258709008292534422359642893089549244522143089769159327248221499156802900465083647285937062476689771979600749396815633626652730117845983464040435145889428004589683331092973679743334288015007413124259159977624798214610268015652696073185062735301787832201434535221492654523570325017727887113742615077208142659618050341155398792299576645034067896924823454621902550959315265866770835815441892415081806115147776355145634966527490793180358000652049324341812659470450706068888983168433741484313996537968838740562293703896269066612227261877307114785546054768292910959960299777228919163822275399958884616119109757502794551597668247181968492294238277900388629914367134784679972049207896373692837849313126638540108082204707270420543564262470481584349145988471073296456847785719685305910801214494482698728433915577797855126772242797698056335095171106500034951466587773432910842210387058295147105091318926146540826872871108030505968505769853430043128723697940634696589974341938264756904797887209244371409348251159142421952655852278188220224422034789921292511812395814605306584881250138038263171248530335389619203085235818070223462870736257990452251854666169191130492580501746260530636350341486183937101892336238747058014260607700358750845889376536061335793199534180185849292238527823768364563762256818160684499021009161454882117172320486019693419328871468931175638688890645833422891247540620496215136271928654202606445439980852107698657969681155725875357034960885519621282406311631602264970322281242093918147215585991516397360550687515826836995559429436233811261236819821431160197718484324184261921874769786508398306562012617591395631869940916831783620496777421708147929202982282047505372715726574626857059278667018999193300680171787676374331130517285796092567969068223608715927115716517681433128020867036666730983109590382116100186948707241535539427823570463066706125730632877151584186861923035405418700769806258790084504186522675598485593106905340594741731549827821958308882511393965919133018479922469473766742278740962862912760514413384104242178528751883648266346404675595412261715065152122266498590309626226333713337296482661463676023314836855323271727238386237295306099532500354511086626050700761204609312736891628265080886409899327329027905351121463987958437588465723799825626759110921198359515810690628385051562051804382921138536116033654317643051427384780799315650192049717470180780519476416234564697330114268217349613611474422064717839621522474609761354342910292287416649797549340111482066223337007184039105745912428776665994355632558881697963859946938768405628695820815597074848455420721835266759244264889076709931616143683237677877532956686946895575548780889253181747659343910661561302986525316087684805969069495075131026845624535317421215651175387967043370970921494934393147870416897054816353479483710019809847025990498384763411068149370431560652848772840505712745602737473141949564295227673690748258142464826463020314030580765112781985536087177101718585775267078809931907459545127445124479618282042383700455485036838032166480727410589528403854284919406610195501193705736340006401892472736488349189442675371449671370810564537670063679712516389549887022325864262505545101544435662868089094383142757257966894422642910006333516721404697221171384568097150833964539946655736535940298675135520978041681444161950188810203802876277541881996666615331065624845121449886888050563145238972648886364377440549571776893410513119651446817555406459801743091665753809860254168678235066484081862407206754583355136429659211270913974891914531564313589221931579115591535740285977064413914009519418053193081876596404093148186158111321745023641667795526309557777276706428811075211922158569449730988411527274873609598996208522290642072512402445310158402463196520848654491672828810355616225160961094088156747407368285426696225697202736198718517977551687174925657941640524764599401976768326563312375914667771157249508284599727307959743347658504619245881734930813754957922638961697000785978615417757335710056821047621390872837439837104643673487390403496767457449819565624479680300039528786453896898078922916333303422631260653216124310838713601778549426414275424234305401380179211121617648757781017752540860488829367786158304328049943214812067579584001403258828786978784785461051922248150834664250142105779485339429680315510925976269310169998225975980237790455469910178588457508483494575872931973254026344114826354821648493794173024612988813800942255137232810275647242325166990387684156690822897894430118399880371758994253491862395909823064204363171683600028387105846533777225919290983978100563411152314026976085118394627712557370086945263268597073431306827733835910512643848768367070453725917848219331270176031546755478069265178093367227469600833674211246661924749244283814305097705348681048220375959293209263308211066454728975946707592839102343809638240472028892840141656347321223573786151282067315236227058688725452856995848891969286911369974329850933954059825734143592559123773405385941063470841938988408394019285588344792151277646471011260242192052537055146207358935737836329966449642947002260919453657480277156098027043760057791898570761430225680788869869364729808001396891656553123666645171340725533604657561847730072125776251376512980806800853148168785690265462905487190120032817286037642171467319055826594649855576838253931157068207174308836505992357490766935259820174013542045284576533046509349186568402835337163408121648107824941783773953424493707639575421180749518004576972288071588647942127259316981377613457154113520799012192307352079505936557930036487423895353557555957488727164762299845902455481347426215061832513461431347583307661910371185364579125791018444030367228020709171099253357211692136528672666400366893121245080986836811311878973874978158849708468638892546162071745509347455188236304514024007046664111574175044353272636696535686014819957037840314693384435122449969034970139923330909809530977756311621577909694024141913657747358065016263296129343394843664234553630113553933173867135493674940649983119615728938491617103459282600234551463799575786542237096771088151792108821164481009277082704712581285401348960907045214610714994570074132223615530918911442822921387979799582984305372898127254106939321525489509657570836804318986299251616300533779729062293186893850217693186573154292371645273716177685171389926684417199593420403948370671074705224973919013608860469169120386651205826837863637125088573304302215839162142305337284625514700651676115048378055117186247595417264462260476015673185618987565271752151416501852776978376819745649162163687548237042822250847106564380652320512669539539445315516894743847785901853874420533948591856527171671540418702685842900906113123921149358162317397785508895970793267347418407157677584421086658772097309923657175672496715784067241253230387707662930945807139179892832628110849238855970362626783995150588749748391069586070344859222024942982779509107978766862019167478565139502089521638028962264353768408339037382395964551769159739098831958656007948052283605934417475246078607504611533885406251323226390620003767750624616534228366182582026318011148524429612805077244615777352696430632033689398843716526774287957235215333930344242469066100773771652753275888016069043029770133322003499736445314327554137700947878065062786201076334100098043257188267255951307070196982183324002087150518004459685693214533278753405342834696189642146916614992084940350541460660860181665040720117280611662060228958818645041907254809789574563294569161883989518832943445732283429767986722714144314603269711601741275933609775815982990789396648452338341659846154036557931602504367709923736447222853211840142826968174739086882355029379902307469798611038157159227572911479937516152330545105175459468244111659126007591963132552257055481278944750251277749726882818727176760737961080735164432013802558019406842398158275288330593850512380565134122990208277590401935506008453075807878900633713484577156952703269861251344408525810856562368986555727368891754797496507709023462611483168218753248473626058189261619424797942985899502160439241725513883941362155749104564922796075732310599876454572579317042502583518389957197679885943513349533844053040494761943641154284219975064101556518378627424267783523143146122908619345272310064086513587431748592301949559045479534538724178035627444998576360349938898603250376327417697588491301779248627630536028200493332089131985988055392622135247186154121687682147127068186226252885634219144825945472719358625607547192485444532841513822313020443091529194301598182071731835815542891020593274664253327771411073097177786754391153287389625900379641356740299548026079144873915151928535389675058988248180051623332201710867088191048343754892063222947169321350144655886374311844878664448832941556458253819892581148410277809941070022055922627502419038575303539469701471957552313148017541559661784384473877284524972535052167545356043962352650028100885047055244101060553978144482518905876979149384117241412293767956341704908877854138060190838567110661086048582259973741841061738589942973888216842905666803346109594454588421655636760711111112674093651584756631407511051719431189281102794442327919002077614190228630028513578399139057130723672988871959474731955006724270058390895994985162617339583652327349703702844529025618041503867068244206811910132028881559426275266731009401485179010494620397225627806135506920035034344945474099895283759967301481092199243759524983660233071611136862691953023122122279165852329215089534264105624046944258560786598438726232801392651562200314729513276153391733007719658059384135902372518876325033042731070809907375913692696340554084910751444443165881085271261143958053221628651956692155825712283648452916567528317520285722008653228502966097268409979782003774656669904699216860779728991485754457143815299194212756719849061590268438245834867837955733427987994684091641952598738136405579427841638817605822197833458664331069102888080589830389851170721068382361404246800626432541293402845558709985904080662278163399366911860483116361077027073387122472311030017651218726436364689263942823218179093702101783252905142699968939212111852770168463005332508698748772654380084538870763570411633681568716550429420964192426274701048937064479238997369720922721742852381176737199175475062800471723656310679345424565975610081909305753037242809800576451333217042464486537294260589090741412831720286088961961017759307885296160348075600651437124415326328362837071445737366361201129179953281150356197978355247646997687356935664402964128306916699685807185631071449434277872659114910206030052926964171267325895212030975857709519738739896752117503592715075040552120565518433691867096925237011710732669332092855240593847373831326187607682682876663654781098623100987157843768965163051474881316521998483777505667986437723777816751877414759145355500079888087584433714141888457150713696474619301762334593299297145841271862084958100101117788658351457275568931306453936419462375970344922772960895722172733769899886168475529472853846699868376051176225162902292706538924079488231681223112813480280024367527194245409112636411165154710791013839686790408100956169405392419295933544329347803686487626805112266706602845738251208999455800868398919615428166792824844231624308136761007674400316744221551591162212179445103680631950746753256126379313884336996421562898576133446683263787235070371720077192161569994788794123447311588125034804852229205499268999068916545659501592621568609286616737002977721845642767769780436258009911936756887443276283407320502018198332560111268943526082664727996732447784333606688421318169008556119916919952047333426525941676469526790607120614616271710193910708570513771564007724093386739710715985629602741049937715026177378619765363741946036016601063329249320239197370325868089271049568527733722537428185756016145131254263396952039492091367768598828892448567905083985686694745421286664572517440826738538032694691137440768382213054241724336703088662116658264170366872892302387900575505307880357318708905277346234580302047831619037163214896479128293384889658648782207691104935847862623451989299794309474942274451124820843097673437515334585939779689633111747665552045725620289135643086741739920491304264911638608440754675677014652504890919367579230238213592560798858176246177553118061239369825687685851546276899086056430856929781218892246084633010375554796970175499091659830064614234830199165272157465113168829586401294856216333250724504373954571669788448890962247067507753112988620169762710691496149125872303681411374755679578730985747556332592223051354429393626638043294113933690758018520419239515154936638823156275149181496354947239125839187663698139135977147847723430230982176129006794912417775917622998407524549308755578780074555407133187678525609936459003342157064398360009935884017792559043151761918081775652211211683336593645553339317671214664928197904301075314236692564291097633403424595473797397877371041660181723383893758452389680660274485164871976860079080604656152530952555816729280989694172384659915683157656502105153332516697155771579933761251183839068958783144984057525766630285584969126185033451760045424901435576779429588005077199362527388542705158220893921315640858586429128783872282474073288852185156009286060576236702289500184563854726301590758047797979815473271668679176702571871437447709098966939776482599256380106678955859567423268320357543323345358564103135348273233461763888194440824839246714129792300922908304409696144994434672321443789095439295579205734874177504497462173892871016406501297002599540184017995998208792324863846028297424574376292236296951362576800177669557398112896642255947580675768883604965751904985349659723186669045497657239373394197426299439106178665427913086880515242922184993891678382090400961593939198584300672778673928137749054812297054786397845027563871659825279769503018649132443982710398431403855755930749659876698683236241386598858844422197799273432784368421870135414141910944461628197459165732236101869448600758253153834010315941390332821253890230484763120791116069447363250382212062591269838158308964524984024481720340028736756918324598969186217096465716204846619616757086848995403121996298762787061435578228432784423548145090832114036214470197469215145437750491236189544222110620162686600617659479488931761115569402844305988327317683667698949899223796558203599755455045053476479857794311675084777437983100363306328521969099075628567267785778593676543753610779427376444127929111310995315786095498342282844910461943693604117094529342738025684580239562380447378215312322249178123508839420030372022250058977186055721574951551605603604440882254128551333739137740654793416819809755475479253819964969039237147508631646696593384534940054388475390644139725753593793996003913480956596701059622466370949439976263438002221715387738854586762024227192272277694661497898859055146136912741444044575125391573055748941980840118336352235413034529169875117019588738067507536218894269933478690171237619744212051829001376150128869191254683125968740832430012329707864556443265686580619250955932605739980478750686563889103521316627986778893722546430010459682642439841653617562171146072480539004844605211146086159236514127769970486086719620168880413684956517015702766157551090275388737189687241897948567660167223258402374207352645468980361819799855401086489299771125580381500800216530213887399914300147436579606544162568764069303173754041154440918679495268397412281430702328386549292073080943226211507544720897182459112732508043119303361899199830617874922294291605834890376109681651608033441024582798172772918307030141102476902370600615965988811201116554975828202182803011004099825754887255227978753826880890114187971346673966247477576635881771824051043605094444735133515694863223365543818766498026379836166801656027081460506639472447586365647048278668956836282410971927754523291204063584276518841477490848886652998118825903521805510758916829440162954485996712293952772380738653466707415741273624911175947798029085534939879413359107370177694683086827638672550082854781163676605796397931212482845267000501099344591889337615055821335141256588131962465936218791373681097816151126120182509434319304840487115860436354173221453634992373101248010219243712225996072830852194412275238170813462101658955110697983743782386752988329457206646122162057026216795028883412018353212601567916451805221854682307813123277532950505100183882951266070066726173754424894992285041474167624147088993888774953121404923853259268446981082640182607020293842334748402524812920693204372272112726407641883997315017021935411034430816553105199677285975668472391748150572065825110114320911158553327145491283420696975989480825134278766068615615489476858110991243749444470766522732976183095681911948164038182111139201593342036614465793063227561133105992549098624796031218720550234481259251753553223506423700777599030472794765296388232841939209174601040925873306742119017545979796521030096594897283106128724476285869449011025621082447636007586223324765319184628226168295668934346545339057059084801658638499887992936755066925517732986786154942245565667705761824217741331284445390761689767681167330292799790303431234609499774611823669898702995818182668228280495975264652928109200745920078784914621883236819583342335097073822928871987695053518129328776564009546404371118577742627498611124858990746773524837220276306121504481727390991476635951081575503336434429910297035526587974261866632011185055067904816781682623866387329525821913130717777573124755677980224690369717639718198662655055399622506501698728697217831132568802195749849016735018698330441882135697397633768666112200488217728661518675107917920158366582165620147693259281940304684153371867542648901736894929910859153792739217463343999960397934570388935448289889488693528783106389751705532266433748215973955929125802389939906965027717953214764791817675366392377935895507310389838983096570563966634795988026176376271717811816345984281194845451973088834493351886591377998837370199165227023011170079199807254932185224475068589659040468060467253659327648271530003213702388215771220046515971689708482833591792058006764640545546179688233017576458177135643704598387735478078444383747252147609817352776543870334233938154300717767174486933343610195712065352105537854393499740729548169191200932272726427818635103192766621738288754314482489425206393739837558821050932841627366370342930600946316215715535260398321973708923218751642847305613278728907733322081058527274217684506838657549470943942900028889551054590971029683563203527617066828161929090679168833675813189047715678181948541552288656212232069856675301868295142945065668866920177332692581659785412546192299333061356294260001469190597754670935370474332822035336490700981359254986273689863464487225169665306695491999497740296467134468753252600731177362164867914732614063313359835517855260441648446129627924926918233985199976396389034432741990654157798941242951669436421098252714214579402977930442553632068943956600571611911704008335228785183698827149318834614969131920590063906189592004562018064757291613765465010473701354335225385494944572963063378364025975298829660603906638988266720544307752606200805960030166577754384668752925551904383257137943605171220825255875823324206923914215734607157353170547985340293902878062799088355809451098854447050283260247527531654395617809892862699976939105917006832013155610212371866329120115541105162640611135795166006422756689820806107953331806437900646337626233684547941361573797254940991058710658663413051697418524368281618884858501783808892434049959617499723292008895530715152997376107953686944811470973002954257111456704878627464522195935405783989780921757537186175787851218388850662448679104514392703497505515016782579611850913248113304420004826815509100089743964725289139354230287209624304616801695979199702347346288871951258704510234008972473974799356186347694644935939955392895302098975215191314312109062164187420604661246972727280243392093108501071168364190531186441917653493814423369178560416328694690503549925490268682478882572330333312276028575950022098237601941837973884026184391834730127232424110061935680137328601448289454526857879055950136525168059864807811166983352058294400569887841089733034692383202058677839277326141955817671231175399283301271415305666256020478872243711004472498697953575558837788181182441062381583355171062947247553823300649048578566759600761395146367617916597043078134749986720898464012844420330921579582668616413804335282529492378641751049132893507151996170746625150644897498458688977730468906042917374969042865782960984756302435574723740254813837509366868170753018684378294616108960566343931635682149108729682767523825393281270411037274776406421010906048793725941668646501465806752807920434737718184395282473606462849935342004017960399310418262131815561452543598538148611247199940099563873351107430290554612324779723156068229347406287981332127155975989187598245764264388488851217978683477835999166259004134321132217234012945487497190249003862169443757050804042428815530343811060743061247129217089109370583655307450127740944727427334642973770013121487905101575688015630890899883330670828117881918968293477971272468319426102795031056062432756809697570525147140431825069887542214744430423910730916538727287534594102212431830666420610203719072633289537605393284030007238225785067881120804630506534663490191064939052114181739269415390037536173290462759338379156638945346982655976729028283949540407096566501568251576915726010629119381394774441980260311117933867942618803209947992673866929347787376085382163433566620358285827897658537294800880049018094884823146079361987343532252850767656028051513508763511515763970363718310628341575402329177346580772279812949879355767146303155950140976332960831308872473118297471375265784274685099113891564101874988945413725234067313817215290862487924354209971249602846571167484647482026987877902466663407557351822544120210729058489141848883185430043044954773381474198966610818630211471505208632126747548336292334904133237738159115658587544658063109391798576503923361138145123018326381355183181588864816475476680451633755575377066082054888629153384261622187273964868034037680600861181045262922392903258305118255754751003098978257998071923941018515331247951678576273760186743262846679745299498540117769883099115605987902066476793286805485939405543438579643096462102731612294434551311060640041494627958644191102373003769870976163511298767633790225648348414217148943819398988556083693793608885218710182799329325389989602544261994977452742550536472302793758221025616855001277453512305418549952924231934129503140220139029191733495680650918366501853962439491460427807162989649805337084093347208232194638800244529733657685172759092003196014684287208948885747670112770687112417089640731098325493729307860143202349180988415328053697085126503700209219480705439743536301339719862300174704612650632175992379865834325556565182018223739804810395096404963836858060144233306538595637201246389678628675400849113380290140483174966231436193773734346996224427534982221763003763551374173954686566072149364579035363596560404589099651193150575202941205050771981342243647555165279150805763533862384413439676042376698854069435475376865901384413963860056889331124541818014971509682525367805226411488475645826519425550488920249871599646265680000355416144893443569752157321012760709656897543286316437956624768925839894927127594218265278593578251106195014288686476018931423349508524194791012185226485306691275020676181603781820732505703105175232550045378943811811120942245493721178107270775886613644664592207120173031452297011600603383810549587162922563060858104195152835964016029532958285839261044342539657689643612153081915912409273274253650751933554675169877827005233079707906322599375650129472455550746285104734292850124193241302101523367142133685986745436837568661795678906240245996082119301596146416983483857663833808741564697733655980388140808646978539015829787680143594808542007321740373765065497820429854394517129165425141381215120426970049967082768557871549987655482079537222705258298095694579113076320936796659806604860599491923918333191961681557884027408772485883870366221685193745466650559456976156329441688652416806791511957578454166976008093910899757657435248816974290138163375422250686365242844582625823884070863496404901931982497100451458690236437485433324086759105544691024743902470065971519401644814379200397572893877683365144344944970829715988459354136065744770535406282971846361624536538487970202823418212797772043910139089699698938215058645120453004438573534404884875707663585539878113344009234639266174385746573871668415252001493780941347060312893399721810365090638866452183256582040472676046427789236828504370567789266120262170356963206432864248088229330521645529312204815769391954590341040154997008352803345390739472433986894055936912589344801233865930574559116130476961619138287627866296188300641238988783675887808465254028235051663479403460722623878855866522438558445319425575200595799831033246998972825266784646740374589963612706613079029875603908630236176102054440019688500655504534701606999272078547644442316288042864838156018620569843213847911177008821158870912542551169071125900375464478677187734327005792532100227472747833864939273567972142380864468489472488246998507282635171193461552781626686658172075915404865009877215107849932436266810738073842387295210234024802389785463881233670089407422553780056930634698963779069915814997991791915624230376971680586551733225880696583380790273145539624006047420536007552639354134921694449578780980605767193883337191912299306566576253899855954651804320184467853539352370265915886638873166737617801864132089520318018994663082533472334147728882693478006118281883852076175840850742095956206859561780575269577989264970718123453848811825072409036682059631375157890766785808152898163626231702231208327238598755800169312288848321276148507798294186552764680802140088488930514539383862606674379825772315187236470688984153810017873491035976712794770667693542255035302068353078454507526946081888019557975263714755141739099815805666931921622294455872694550726130327018980121146395008731939420157740015778985711658234853742460580603683446166085470808413357002761249679655912537462190983808402249342413416502197955234527871656407738532124503774348543781709186994036883145948252729413365846175590967042376460580603606286203057762158084181313684848346876289583884164502214752389844817956170359366736839961213908113360717000523762080943884193969219650790310514325943134183279419191705062722561363055717012486027029965121814628663975132816862416906379159527138200833355246896903486418463893784993952436694843841238467239952385910312215968960457667805276580091966469528745722015899791162630823992074204507477474594943987820487564497173899852652072003856019825619994802750236019878031355355139923467138334716061519294226392330143333191970634851205513813267800006100981959379596056645369136593760026980823532175040962185162370748141833248475988670454504465485310755906104826170091095188038898297604670523136130592552174409781617849711097860753196067915085464936448132716926239260546711347096488401879607438231097744278074358628543454750423958628907510228464351039248659486101968539536511274380223968718787642275678120936552522567869692364999999567612590120788320509742647816694160609185803665971755853817509443582411348589360796009546571297016791283161089455359268017512548175613070319952932227337909301554718850294274350892840012663668973909131422665628410233584213797359602907953946342494806045738202143655278312803479835487772097681699006780706971233809253681508722650916661859251362956760901193119137946523891117904336328319648287129745360199195498871303122281205415446161948265207479238381383595000500667586064789678902897807460261028303245010918234585162511118549549637684389331381160260883416275641863624524611233058031068844510943850871589742021447437804785529982957512617450528180974013670240971007023816141919532881458826487755987488089926266971486582838209752700820238698892991386848988737695678423810077853415092590936528158916041158752925584151503081675791352317639958323626949548593317431847668992009171323520696022207538079217991515850040117697546790506730428062693251311049175917939595793285385432311566265078158589075043054393301001814968498989375825673302872824262880227214766143353713057259013705117894545339332200924746387460582155092600209787743968881464272907395527670133830212736818578736447990926735145074985681620847512824202246876005728166385216894758761703787017088199878825184003326259531100700477123488660538868282082549032465616033874499504549060209987458052738208943941873320910370981515165206629997778405505069845591320915699956560336001442181843050240573865948124643755640635558817697926720472583713372310332773747354243108838401788599372315421553279827438791647031181878205283123436553837432171470036826846875763059303122204787588065958380240645986412976299037976449006607474797589927547770336653520840402915216072222970532654010861863013733658565198149477587527687790410180177562933159666161818075126015733852100282511559752146562359859601628986554361306312368911279200434557015907989813138545067434956279421025288028384474132749169130710152289283777160443869827808745398001236392501772492085316473989753196763422714774917875655191950132537304819080407239693980298863828997562399511638332376891933227534423001655820071987578391999825891725098609627715705003383313126671778676081820005678594055261623669410737912381594604847360380085812788112184873983839741387382519037094097843327106596145325766470467478366210649961426943852659541850857303742737792323528725224704005439182835222888324426529711196990809134834949486268768945398914241864927509917025688955714433947098983152694206801557347773236075764279954937099418732268274825713178415234660933769942706336871892194976466613606832571185808285770701490409073490003906966544084563658488050142927389482376599788663773774613664972192106926534037743222507973248343033749385783946861200460974017933194235866095345398586393377016480488773061494676745507492795514212711761832406027686299317683980198354158540847201008658779219099788467679506999134997755236326851294353851144854656339785657583143341694829992149147052671058773437399735145276087581033968780770233973811654862524525756904840294032798106598133312956952839771375736371281498397932357016812024493688796469574932557871115006230283747463616457905566733058429364642552986786120473417006893456472446479883815995407764870196649291290750060280585909835685230507192886214491777457944080489385900429077125432123456196692162087263101666962567074924589494791898108767325032823110597407484220192700778379232014625078633483101192458468913434450398119328851654613842551007054229066670637448366362693750410035049819256836961418981581629591469517701987371839101902456810245227709604849848632893153186177636470030805139072047973924271868199524960423208333710061191843161421305864808295634445506309922411917068965178583730701924490447794650856012138347573955409420378568273872270819385135609537721744461386219954005661467432681444520674483413307513262801442253269777013461438420509502037590228965843531321910639111861545096301979275412013336441643817677814292856920184987591593563085595765436710655847687019797696403333300231094278742040196535935278517117552405024759252759649734046572616034507059300665884715535368709241887333735054627687881385528954551926203971690401906116141387923490626791416233853146076846013469830183986892835764336603481145317940828727449834645635787145261602189191570916339536882564305906177363158347697067768228317465340969834368588568732311525089642943225023283119826071269331389577388426815446169676745540480429258741182691682994921834751635302361258813294141781457843741439649763182853603803256250799553496375171392534667342888717504143529856294044632328963315853133405449013485606289183878168684212454956477315249334950584949226150477110013169836964430586797114647573426934553160771043716876636074846981186725044231445933104553672293660859643087462677729582828395165952881240861607635541992949863544028856272284242962907116218781836876052226086249432906963964340197575246748116165507992953697023456780016401768368766901060555072610010285971635616072800431542708001992024326485058827725894815491720346070947816393921876474121911722641296981445513557399573746354575084138989657147884776333445781251977137314311047766407281341984087677253339786092463204588877539911243045215863532960720079403168323610937610124364381403515311859904378850418561823802188587251526080018649922562861478998342518781862144480046430941200972646485725975360335395003911439632394643868660358739734428656177595942435412517614828459517432410039568874183308125495478831850860730475680543164333116374523549242721311606294836632851141269110538368440559127933364405933543894624865419300076731709311795544798422808374576207149317442419260623638218117249577272726799689344429100636962552668360192297381931815453262400474185639667705607422046283294694592939522734495961220225444559200942232471218489233846045864418173646239628439429415306308948213915329524032838924086242044592944539331603513351381840045349135206142245524228596353892908424929542796176852039742697671576486901217917323604503699568694336211320131480125942819261640101255286417649107942794531797030836538686007910464871206746475633328812901171422914648934883686122632823021420619820839296257136432434712825001790176634578206471500874149061454413021630649009592430057153459475047526895519180962852197447143143578236813241422657960156442094068709587834769794505619168734699467323094798795321002581510410750934984327525759917129236085803371505419815272733687392479703803705096113439054781171655174440338140925709256390162105378506377131945833017885993224673077599222092746086440762715322360490251164910043538631694808256282913404617535493922223956486941642677664560408277888476209784164417376283259123191173029372703063014127493449344781257576739710373739118127660376950875840186486395104470348904546710138010742925651825760443316665227626486314927598372688415810666911480996535256283229887453651157544831924036408748297046480311250259929864980356807390801125934582343104242739873539016846189828036167442862857197674858114693592331640760676269428507901274418341898809142207596287628412592466271120240681468067611496931041198342115950611472356831766570997844552468141286873996880004450103849954738152047060414325126453806803256679914143636266490762138969841240310972803415476716495587488916573430645381540173614675281337290102738334791494562830036001869526415097944953128072337178751520350527839287659369949159820079538593421733997781103997959258642842080805208335901370603148751962242637030569683409602354494036912408071924301183270867166517877850713350791517641722088487610666940581577365851939644058962276268905922264993316315744980338573526476492724560603037603606171737731806051992681832836161130076572894686386527512617860362206790526722166154325432467744200249975798787763722281743459908712696037352100729586677010040657447761432779509915590615001651517379266150241013969588049241882353764014592679711931914135301031009111808401171946982376602079356488925010861077867810592826897958830803535733191496428775464100612846629158979888869484963337576477089306752191763123535636525135062972447570996531744324377317293628320257074291074273489914788332939211619747353574433057437169729434449640506986959686279795639588754222298372766385089642472470399608576712846773620046991304777539987225310252464570678787606924389219635054140006373728826094801433980275423298953987220565351636929864090178373712793479038206327896430939946705357967663430171246974273382925321170289210193091559337868420361159633132958105410095204557716863866306755766783109598001318841342342134314252432801101955093334286840612906118318624248047694960008108530970620445935977008716086308759941708741525366477712190253178261712629047014009013818012216470081950293708373738129726649986275067063225010150041882099778089629185915077931062053818991658059481483698782490271523452375223350144024842690583484093545573116597803299558239558014245675178261327887863981693439847161070141557720518734044520278698801948343672312436663509286883359966733034336915898626839390127509345472924222435900112696416432706287615601802988770477602039246427129163875346443192568302011736134492433962024715383986192821391712531760494535271884525558385116357301622252641245074015176063453395709615582276211913184701741006794704260610143287256231693580055687990398766212440276149924122444134515950968964382280244672570628347174543793776960103458405300298986367048085759804105825657223112012606112420370737652491682568631207744716967469064776954826127325293829349847216690341625074771177783930013833045594636498449481363532705619105259533812176916586763838096191243335181145133771349845678922441011670778013505321529210354327203415885152175641415019400837896670087256733251672692162497324085090893105045487345798100361308700374839550663305267301666549060949444713875197932917781254619562708793624747734337067826773362486270716132693903205791431389426711640055354321904712534987661895880791913674781354135923688091341924873437238834858748952814680313153767813193347182387755422890993431882075642352703935143116499037644493445531784047175532142548460690883696404122740214154199927044213357293869396445167822627796440101919812251318591658529079957941796494081836060796982332117891610118041955978723128381880181139045951213376526414212034408223913297110238109699295773289660978852552809657777199379926834154439469540495401488789203160234158030915175506668671750140770571094212384701519119722166801558410169147893081572208961360192195867144660168662054765991120721063202091873653083506289308889237019970781023677226886897277212776856775620052255044513642650729699376462937112513651615782746156905650137837539207761361843254267626611350122208747292344542909514898329556545233835884241983271661011245481709212033048649807622082557928669124874940030002836488340076289982780048932956525155403866255988971557442064665123459746509426680827700171497297409384384534754811668475474811699314525114724036320777057296283882397576504053013786183473747282835870881312625334127812324115979199695974383512174203094821577845582887571614794691342912373936065277607287893180378835941401301590206223773846127220889002444157603698749477581473025196723034074350381312740204453757911804022233536416041959099350981767495268585929891117336113387629332656719039861114443829592065328973944452303567565676558438233115999172558355625053248480315118321573699483122435193184268176265703449050335396387833590074560908631060678881883611866955439030108058315097383446849656082808616786759815788816499055824978362669413418386798415600651372750527883094985972369180518198134262024850524097685117012100978884523738615806129517839572094446206701268509420906011599346524726272849399892182534390924406938038864138211656369201426631515133893504432096529300573548731579202742508557598704041030207272764452862093142090460262161856535102803595820330958739293369010836186679495143502879021859718152287241305064985202990542288742273410306814886528739371194707740613479427014097725252351574785033347303406434551736306759130718001117636064270235841326791258679174629325154655909996131519747103098455147405437105668153446198764487478659302754358682193816018767648797811056877072644575706352058709386906047456840828332368929539395099364919629496973048082443285600543909731814407367795073785099874576777844251972048385679465045977335402597160180744336288953913960294928516667980252621020365064888526177574515264026889386149176796078294888316006962822685117633201994450671435999708812785946524442445689324307785338505954177201287736049982707966128535199351952734323749489020456333846555081816683714438974566772714333561706905607115120224019917182090703396041492889850539473113450676294970523930386934858609685085808151001594174731637852990874551373693666902582177679638900240832956256959418367076436222166636347442632571291607276775555506267250660544065314032984458415351635061386300613459607184063939550663015166162628378139737817597306734495727640816965654429489760625666466944617031245429609634642425990345639694638000548501881277275764878566880963710540018237771618302111571622692024816609879423262279920413996800275489481208717893008462217062967914924058460741499504886497712932098053328602147361311160154431900035040734767232993657501718942235245266931394200146513803839545429481360725732627131631086257481401445998656858558345811194119332184455458818995217306875347643187724249178953429431385801602958298842145692610528895078178789937768622955692956837826049034893510756046729385412339720510402370869833101655634425897342743506890525820707511449602963598266619330134610007389411468521971295685276153346231369504579692045328593519980737357962828017908087474700405563748031931437373276987202051898035951114660253504283137041027847750618886681566190858331225789180893344391857843175523999467866235682471971600201537268930911014366674750225593972317106825209598611925422439610197003552368758017644799455413056908772697203395151538188269221994616543713066122064895616530651488236590980437442876874270967147868685931302006625796273120895877628085688444362293036590151949682273585692288786727264399357443059011421560530673096901547358112000979152654534287840843291399615011712275981093620226522456800436588874109971587584608711728488098033618831069171783421821018065174909827951350137367707574401864607841924179290633735973825427930638432787583466082117464533367995712033255854646917248181316142362751638620532461506667020346097951486520299336659144702812805817622532364179727004086708188770780857257679027886622182477236267552407134158983717139409573689835138187236573837820157891774991473997788795153990199290453465822683829432454690746192289580610291790975426251601512521708823744378458671700869597670783131911129618838935229182543896058354462358082998605970039766537918433315190903917923659516252047375101757366613748747169767646209437711208247840776976899975835988709676072295144422689846373175000999418240060497827221087937105207447891644600425903311523253081111872318701338077126089774589769801381611230728794547641906367374502401599626232005945211714075454528325878265079021325057987307256970642384075256628788543215233440065395241781336279112070262247406773693970785818865806585310718429348078243979954783372007680923913991494756695715274473528387225824930031623218848012440761446292315359851843744782085306826328394954755677941243846895740395176777661690199544380223797192109711296690517244293490057343123694675794716242168226046978634329999984321470873568070539746419872154203795444603392760045564421265540252122357251140427430861544797138699819096957957035566439615744325567247495971082648794842425249131048788216932684141272506393660787000490182118903793233197104553464463373512687223060380923631631881427461522035622380441981351939111225216857129208180687925051560542398060649070961491347937103636681012656319822277861121265585233549009443530556479634266357045988782003073225318382186528232426058847690565433482468797935395484136296304364447121294409591469747006481904124292333463654105394906176179287024419073585963501588500519028216787091768977777718717998981598951105494219107819086529288231204341530622969942276261657412196992859250961637085183506242007097892834465551239385200928950693000543868310667585866477735705746072948053433607702299073178805065349547352328338170564975976155205077905882178885247260942000272772258989487754189739735759675001678898931732920852705877201337248976436399345090165288313788915648539597446699737590304531910884813574826761852720741330943149420479118592415839526740827918440525333341194334854864234003598164335339143931339654161963880390894538520048598773429139195080020606779859278611800047794400259776393542516763794415383470178106111635801893391037917676774989709673218121514511531358447419346027038281520073965682032997410560306901232088794283044665222811474725871898198512794458677409840394940540938397395651266159266261046552394145980832479538809703018433745381530684672959549079268842264959074036940097409604568616529894660464536256937387444203611206298629452549294422580025474178470856027010839639499039515837220340579894574526769483036491079423635278560898312159981558090252614364387891647742772101032998642645163884446329810742809043131955974583759491950894896327639284514639401013360629551309928190287424416792532681538471434915596066013200538982867759251601854357042064660534991199420586816489773635234148180515460036457869787876996037832957172422685801528615459155544127042013904178571633131102273290417680273388717301138683852187177092770242309104495619392579633916795823461529728369806634195160214989638059547228691997516021627862609138217109885031109634176207224712183229271282628894782034230527895795950950607057267839390737803212413635816601737987197266791467209107584729355570714171647293395766532309598136187014416508962335933342380784153225736549655223099577721321003356204868662168022706564415365383406678902383085784057325233748632877800545422208679386343875862693427751800214495149668537644591935079640019256785729816507414875791318016165010689113048813235991562309156940785747678005644977143156774087213456983758871047437857658266988253448226980152164914718609837406297727197698217961769893976905087902443118364885674607192173885153978974132647646883493716222198938700280042866279416449074550751737631250505905360127370938168402038624642962310830646652171382544239406575328939050496428317189000300335164970722388397034513734555402860956739166070123995168201937384551876835246322660468015569496461385637124622179424157396766220133492653243776594661872073433778087812837342587827874761766126435117625206155144099669290835528220056297129869703328458508232879582149442080372227517483872625361533144792340766131394483705514350483886338044732904847538677159417050586016841875075598136670908019454753052060131801888935500845450673546940173032916557394882208936916286058560594651169613362553004104584312315133440446014164725663440622958563202772418915451123714000603141464312078807551503254111839723620413321592807306933247552881605927167781915896159935653660480340053291997119972475646565113690072492801764397164462401222328099352334280075696420519119585493302594643711560701126856566314511715983567738744923386488149872899368646120325053868135784423049010136118037703068969582175864641565573648047618678877484736370737762308969391449670274746040429461457638269208673848643409335933610691669453124288485201598751321205741541281383154939473679473861490696613280728579074074120504646163943364110545672877682736222788513240574085221966328860209040956168299824546247317168201080365652133910063971501811038510974288004064545889522967443876933546398964230029676216609801953815367525129438879761137261623495436039894272465051888976358297026802889749404207806173938530416330981137797714580888216258612293500379775045926481764591473031057595275733255578168240418499022646999421217290056618736393670386346360848914539936291562500845648998742558853279907734588413427291443629024593759508079042635442514604348842761168317743496745457935803031451755645886959127270922890051234534389830683864958915331857835086297264174829653903126342887200960759837670649502047620338035391571410673022319432447824942753259779630029419221173959091003149312366246772956839829668020085087067807716225704132108593991963895618988608968074441473054194751913602558997241417062161010265713223884708246454956255211916941462673615367800766033114172510202586389926283256555766703048232630149363165312833317293512490569630535142659420986801673413091057611385232314850334059797982554222453157789396172657516248742091340467193196816581003210431657395933360349569002992359369254756715043229008929011918931052008104819095878998510558545468456190627956241548551543819523328123014121308472575802021713178672088878184219175692981730606619574495684538948904639487848486832830581854324159308284756687283038529080575186684298240145145272217451763295004012530360485135069474091230303124168366809928246483427821378608541909119954058097454320339057132936781967267503178417094059130438289660315077808550731972793837201197315598768836767151636660541596646274554755073312586475053198944535159674932422973094163788301834832257503856759434535244246786241846046179799248569324464271705379665358155864990259490578673831658381196263428809201516457238255795273039991180223107417994187846483941076156778753488913208432665396982593757431057297123615004626440612760211713884663366968826962627334460545836241157783543612565637944060278739628967531243628700304606461065804321765203808566308184380361678707014852604706545438682917088053626912408410919956723610127553808656911842789718358483368286097347417596904459549088541848563661486907164677545127270328692302512080723552449781146371200174507728803474786306404878577129957922222164398400921046017272866691545179376361386359206969518500901278304728724185393118071077716922326636573847117065356644678022438471301059502761585359297864728813442277131124426132792686535022998490242484193476979970327012848862795687943905959818974809304424086731039892379915733817199965911266752218412900054106285078509845910006117999228307452286251353057440769633769482027895219848569134159388100181549638499520969162594337801126462130344595422415503035419249209076486880907914114338511884597915712119914799213720300253775185688236154452478740335185244231861101703877646738561907604838520095343985692680044229310641811586730396073004102165403581803580917489289038891897335377822814261778523717184283391278154754187767786263491375484000050989445363337877151645685003229341537883265187445355865857567443609979841939858112089252143675712205739028917741625139876448075153957278571308767951385123974067645196717161256968842114631318501036557574680264380296251636173744771544835138538386683959755635086662522942467132039573460282604178877242802945070163328209671984212224442713248921241820331633815648373255875111314912913787346292970225936188118139064876156097008848888072339851602043238693648369797839891609794545522470410777390195314027625099052829800275640346083689763479876539581748184552536202844388956180639166721474265825517156376072125827680334927289529864215283892121974322438868913920640595480685440674221586702911048564705809714897036573510644534016953745166415231576189572556719545957925434247299684693501762242192442677852438826287637265083354138219087547650985110050342597527745766770523792682633133245227013709538599616136980687507198813935948972979598197960049603447841217481669991111418171748003530115951962511037674300033195825805031573879480420294701058371348652927669566805143086367340491610860880523909720347953791660249324017153726182419783943219580843805007736097324371557600483841044178627353917918508071758948798481522889308273433442551307917604847564861707238355731846220595766705412341060491766731386126291996234189113146832639172443918471291530217575531559192135486074826563003694413272388747281963464824080059628252787795147647562708739852834285698151192482153294697327549059864537251336123383023345990443522298479909904659137707271269526898325430266380789918645507807591048294918421359869138323726147345033893585714232484504076106289328902900217398457630608120864685281708106705228142145938381488505752892820815160730593644604315901399785163339195455878667410149483739495235690771609140274345316398772401351588345514628922096811965275514883944716285186927277787442439956456664680747056758245842229473185640078828848944773445911928175748248469963798761119585819192568553962027594664419818032479698807388612115376277076668592506084778903194007141380460942706683297733659564656866331111289444271198692759972627939028821588389957477877657051449065025398496149944273035252231806223650008945762503794735377204569241187355818776398074399807893296007145091768905971349022955645300481175371426368306804318210041098888133960706243606798544903237219004809299432237400415117080109151814714947313290326047121112380622175336342678312575157992485401213508016417516913795972089285240036245982855630825605431605589202627159009339319375088169015825189417743827610225253398739790191009877149614084647579809911823735651985964073921919109237109033809788378234699317745565969364994398537243665325963781436043537686757818589415328197922451488511214799394666058471114074747988311963808104013756494038141669810876842170240108361807225383139563564311560124409152788001741979668276807028155597336639222551519713635405241270811086403104647270528434506576355073192367606406324635131420201040079678356352715570874821664162159190479367968034972475549690761780115165749424754384475581834007356463305090756559777712693299410772408643328372681788609801337607901800764398827432214013957960129596156533539813283614061232751315998889994686212018237112575353886935542759212396300005371244814892685697514650588822504782852538015643168605910582559100217879992831994020408491753226992946068797596792000335690585171931514766162993826974732013259544250492655951847474664473219178655894390964217473164865105089045603635350689326908640159901023784800032942875903779202198758131483781813960412270383631176299259201674811647970970397124309786388772165774469428049913235180153833222290541068285589564098171933948119360658705235320617996646934937088943089161349242037208293171452198905221848456970312360148453457460272306515005323954913822742925530168326693475871753967699110272559717190017111739700357845800911776828616628619577605468812937178038789836513118505466244909441016456522635563548567464696444000650537675597615200384838423107571479145848709729342001196001004959074547289972849223549567972470765026842572494999904829442778080085232000907937546224114286147768420632118719197063720239907858303939382803575315954978936634645519564196433931681291128383833059562134802444787116713436743732405947526627801767713932819576459529289756573236456056852734405204135886726764113073590856804104578320329449817285595865321914989708336316666339300660086858767723316577528513704406817906607336180712020584670849449859240568159144534579906812721415546779911175876860609705608627235966271306494341308635251799071130622699275182157610163707554780307373764846208093755879061162660046388101083903580132566940293757411725581394800957137250719862226746266091689652644543513091954122286687900920285120879993445149332530221175402165329695339934476823597309758288330873737376207527122406839028442460896576737989102890173537893579365211518447913669783740763008384894117490312712238527454305723546658513478814145274164766261503075403254448576114868259783650728630655593642633186386701524980182134038219064830118716991023033815377029466604784106275539128280570781533805987041016728389327163672451917128093904069814248475635198059041141289059795444000256727139373927540084198250327104421851558427581097879904475970331206431712738036286907240849057667820618688393424722330805987742984466984540088354309123493476680086179263788804853354790419826661620468160363670675023674761241407295757310928046764451092577265922275475242566934832457214101495205040038208427606871116986701624309479253775296158786216886096170170354800185436340477855083459276357380506835650058369470402463270822684591753976289565693735028688840604418227632136303399745028817557590952048470033325387185188448435842375171290223788468920537224435701421670284761863001851533914338912732889804305731624535033229632778090411143101329858095432815401569961208348187386263846253867404097439397417839840452094591994216220413069855047584512083534528832088266032165259694034771263653669400470722313323415481290811154721616444641390319251240269862091865770560483297467529897694398382023182266731580782995279484159579661907029788801210944333656497233840395371890357755460833478827561458392884636400744120750719955450682325861262507153889176849909916425179335584515818893467153981842312897465879159840665394581188145676032434613786606524281455234548405601930693341355274155070634538913842900794473891111527945074919115249507067787376317064668629353110221785053570824130801936391942796178008081563996782521721458773337344222930539141109097781276385944778320535945814852868362447385683488482153039614096880723048806818077995781334117020344674267248393970203969664155051231208463819043926601588709277461907824383317990945733093045598337364244505297763690722328692317677056875887395229135223550200946086988887047816268664546600155296673814642457901186871395433728486063380570263073324051142269887734001683702215158040934484166706369119567589630611667719372245363955359015568280575443555672137825114789816558880250619102857613627654389716352255433060168317167632075212112849762744198828984375043828316400194767315650854067616186587471273415482428600811340944470117525994518305956738072012156756477048999773224039063532613688594401363273562423167426168735390992490933051465920436433381543871885139266835406267483045494871596280150288130006986354508339584615601548448604916895851736795967795828860077028463670058464737581911652948958430159037816715886799631491325035447509913229454245599135533432344054154335955219972829643319502999419603181014387743640759228111105724658460307536557870405990265003607916487796698831086497807858492946775775104499470071487015386555246254871335064519214408401187801006488942262473877614085724111134661401951127743099918033169512818969049356092435167069636585040228647739752413403236461842623718185958341023164846316007595690231260732644975688295933441335478842124411059086768634088691719369384767350711727866273370130784594884320621334059006878498458138307619882454020511868234956282626881025230944171247995808178803966916072475933171388435830952508374192655640425195363263094445937255130460679746247676338041426438931244858879936625145061663573204815185376082273749089494946719930774738624980417233453782238452484044169988762584689390487519983482251326875267273381677822878767658725628016141944285080951862127492378825894704881659125795600574445029005441941425104412732214810486193090618066645917303075632153473465396368569059856002579888786594896148710520830741216047281877029670413533140178346314779042181642247384433593824509317400013392277291000334729590227810621717999966694809453098289077454767869100969243286488664641628746328151888860705754528085677988864869765773812128239626105885454032286451501925963597159637065744560883363361747715457765704597917112260222483583823047888498257265566281137818280357715822868223141515972572325663286333394566472396264667013462241219574669708100888545964267095077515000833916860797207307711003708103841347816691908872912742246111691895545390033155697951348964508296251454566025187724404288809619811416784414079674638662110660755217928914784169645008222284000907374439485379427014479605357471418727728342180412115347167887517060406651089674011050267773039500105615664888281432813206933734288589466268360945789764870299582903413824297318649079967787909801338081893655936980525537337783451669721456472028283741950900145475612152195212323460832225889565458821678795173294287285693904404501797186164479125162729911268304148406973469117793636092767349507163812670892836217817973836023188377957284756647684939636759506418768613930371744163406466243208968406190883855659250773063665495735576411617267434600519645362169676490662555661484047758726791400944182519896335603898274336868412563109849404354610638252363860685170858400022748089824229519680758843114630025586156912469365322391971698981656780630065308474786336905415997465020126765453673409073097098127520449748489188023767185740810764264516001794899696073154684113912048433404125447835407644159261904373042003198689440168440266338961714308866841377863287434054395323252593444501135407801022130794951564655156585378264171259175766672199723345523619385105601645689445869392374002828680200104854578828485587372596023756922658880613139338834202431625765964906919033960477188240912926254638641895328198948760935646574069818858730595142728236629523492036761642057751421158460197478358132682756265495927933305104030501930582134761308418996791965192032263441022907984677115637068960915204364369342126992435020282570713829287051807199574592764206551778011581915952102417113765525164825579263909589914877944030350695179678731477016367812215366749880119290284573940197892380759034674901184284225043321631838877587246558750102086000076392659429458120759959798082922567954841600690821757970394011147759299239114384046727176675555059944508727388548510139516469221996110919003094410556214380309075753515024760615494338729876102694593176496712724638732400141064759564481971376711650272011744155436579869995994835022263138138250751609830551500075507514477723565661358680023191820960435711998653751900124337202898433962447977578721876052058903131021771423885199386144921070881421090765699291287053591781788517008177039448580525594268373680991559439002635968094946667617614642515159977747245098157663832642585820551001621101075893827896049918209244871613153089173977106722121829136897538889532500150204364141991789676009696541859732933895034922280349000861290892187948689834693317362073777240208158608658476301496914114622144733168442928791075341485968937649865678319315238595321716943267874353792897211649873302543932179059913366763140873723365133202809165142049821240355840023385312188574966174218292851695693318365078560624074531792001253940259300562385802285963598508754648744073082146028128164579476323890716248493687719813887386363016573413138801431241858664340180512871965477498380573113432334753107382852933048247999536221107820265324169049007906822382885975612804472364962229020339882748879898893339930690389285511314828152423173842422380349660815136739366596511338976632818466888159757108840973425348440739902870036298904582213601166419943939439365293017208798091557618287801537034282245833328025614645378998543040793434343520912372330455777944677894970548822471546911769088427687648551571999071964835533801335062031155158434840573134837108949345887226409917059037396328001701461524965882039422475866664005192348877196992015082111111361801472757957812696329792530688302140981036387953408954659117133080790618381942318430148006699445635860081857927760536034283450414284335504628563142501433761096986715973933065085442332030880873936067305255863891905714108839632488068668241623127191812041510167837885400666060770413967782045945234739651246039469811772267332359232780224978968797269092146069174050664586817013071820113841437980970046858421624071548409741818637872739981394595226680644186934487349571591560567536914241297636601918807373157815867271863361028779713519000695372741354049676740006547986046066672078042532788688014158538015798471439869238187966013758585010861700413003165484793730985016002463708535698408694883168477714796919084375327908502645431937927926597306168861790203772362020557144452188506075969688587256054185219531660067773710157628400936008408896298724394250788500672842008168715227354027882138967297958354747114378810391728607142644069032747739848938473540213548306639807807680302471447423355378966845822457548457783089625888045554464607527988781216218901409107185045773278592345879073483390345062379106330478491262835257344693677953269909338879676457763596581285490992999661951254655465264342375633866909697743184437342099639627337534345059532708390756979118330169571818759472068766728517251038101881422121458961636636203691738240967555113099187027697729842134833598706321045116296689921516255340365918493570904631038389468235019296814036507685449681777564891848607024173623216301257139544303741208335919344406971373893304658809471864817328967427836287829702143893277675731744254467901389458392159712330459974942349434935101387579843599272513550064646454572446959304837234339316279844214074052399071697483280205724102114032728739042570559371519747060115469679781009102547695606205260262959048758037011494106360294099077070552318461146565253986011391266740391071270867172859150291732110592021867376394157731097575586007972298474162559551147421759582553005038973471553042646957400334109261628529086490420055098170016726775081113073158314302665000905023400861142674826353621002414405848605589975253707887617084791739343899221547455811885887327597723068912270636101671211336787742894446383127718988531317081263176270270473472234149102106128025112594642230360081071663347653285942826851220054297208844830546832147555706361949851938445924564052175561653186528196117533567105115252968077159772081738863328889255124972487722729651444491120216909300156571906625058411704184408108752102166193802337684768810419967027000025938342681541552472679709418768640526930813681754223443927434838487223521078254867320315381650599795281075281702707030021744419256966907478941768785614970586532718137280885991078210480109985062289281815445050564549766914373206704572730547370873540994009410373924210491056001529913379762826621900104583676584269771664282231439698139205154458104741098700095730125408888948053517546547430413320993952212735084080513505045123698116525011544778062536721202353597856999481636505203338039388412596811730989638431013593519094218663529538612641585724308968508709839494545945766385751578935686745998857665818265851867138256986906310069691492739079015577802643825934165570531908613069686734862292998054058259928684947673121406441503822793738654832977470975389181050208038418890983750724270191880962122195456233767683416667474464883857498734969414957115311525724921174542926459636239807512443002450909172377765955811716653179084044522157401959427356259233401923883210669257436144747917560544284156308791911067792212820584124574110759097870365810659102374613439965657465569840058381562166163370996230784865566423031429585563804031988432621852318828757533436003480587165719114548835027354307710507352605595367315131705103675918924324367159438974159712612977453570642730781032578676677211963945671481898399343275634828523898168249520966995906732662047394070521005462285615994636166539520857049924851105298413792476517111073468760305211877709458807373849722198432194473391041842481488702642192852837206091633593158418098942524180072601558080043549616342688887180209755884450857094856410110275778379574569616425015853010147236177161931833044930697014226862718526342096429942889917845480372745342197285326570180871272740536421995439826312304199594552831646379200383262994817676214346708246563140686112785755084776234905509155921060256723371912144035205714745188612807258220950696587633427417196185315540171446954249653266568110443398555585834143058518393207573872789684232136957343961640027184503478508814892328583089610245021364186877960465984343174435610884607660755167861551087961226011671891103601901825395391970602117020940587643635051883849058675703401358547710545084572905548961948558742879067634637483868682699294423866966502811442582852268925522999971576900781447009226278878215617940099492901591902428625309453931114228595178239133677387699570650973010384168949140169299807180907931938896089362701475040454236914086364402572328079817832804187744191380156096867552884815639939917117780262964019244201121037982880654783622495218922474105065322064445119165975242122002934610782313254474861603708391243205154214967687958902662858606926763340735741827459316268260477626365178289420168907811445691936480156161103806274538770193423527155400692986180776117012382544851146485292496133915788974105933763049208244938292369433881966351205578048817476564316414010048292916152032957253544769243335074204674422149122148389643191518827104435704768645414692213342457027501504431541154118113102630846465707795705581134024255192015887047812545380570805188189190596625335455599956144366996739905880918623019270738346769083482185146391528187147040961302469532262253970485311562223579326541771314959864729498873297119177930798466508587454375834501918473626567534468944915582558511554727594023940167005873974842412669268293427012790425108087256966996890486572942490048373196031757802664118555588994484072517586159024639755847028288448673178931433218413813373415124646616583016155096440746859079360517301983607470341566284979192799650909157059789519130053583380114998009422373750876968436083246532243565552299860721637985811034636086114773779479891189739688603822429087471407596539264041711484674410099661437610253227772166153986285858345131544057475723792947951088123654189193139178869561096103576235119458400707077469021623890450850524523248958856437911202522537988270973494267771142542099852557642211075710439047048917714828071702485699510486266473674180489354622793718103785055231920980698902345091550046708957596811842619532327266110340789157888209994480864923560785997771277412610226940058724742173634182387089666427224195329502861405723086087910763415460376477138127764298352763668581785988124288976798865394511154560259480344761417369407028223415694402606866490849291746930081227826838550054272200907426528128324125984520771967919242151765251693198661567839298927275004861212856711695201501482395794682558341848356771309851902217915587559193143273041232396341949084338041682720453627545809169790525312101471954196936823446999297537433414416096552806994465667444770350532881806465856756808298556867611459316096698199969956691902156688409616770833843818651868022495275801131869744230396036194867921048964341244452463647329744908821385855723202308229788313728521302767666281745374066267829760483964439880505394385791269595293438155489494089505963135599702449344627542831698855821864523618419880500679919280473459008631720822210782762842234295678224626158024215708495307882825298209520744243779771070880073292238136771882785394680937884103101366763643916146116112806341850353052585911924912724708633517646395668520480670187126303455705364037441050499716763615790902283899407123633429571244671653950874839410419134162515002188995262749690771229555102041852450471879597693478384678741727712140189690118322873286748926934334263252330376738647921961159387430125946680034921244197652761474553704559395221700218194168888521988259983811924981461635521711901103332555447501536855171275652074953654071576016361824582907994760862209847977589768966098382616550118738303674428551209790090481847608022912074477850732012849024794292273582179168764576710299852402585827731657757671296463263405510413442747467144228743416687989438740380556409462246805880521323033780118494694419693611243508605799636723754694500225217175115239180612951873571711323080896914459119158924151835510782621291070138916452839342977116555733289681486166936536777738512578128352902867307501749554157270987063109809238169120812027650141433318547001343969154912201117625357705325002552153042132095325455326714030887788181200899077985081587695651412019476200847385115063014757292317457853462594162576294301718823413251412361975136402123979524981436713279550174188723961382103862782913760823683598648823562866800671126440581020499297834993111604150565428046788632529563745467139554731128232800570198291268463908344947049561589867200495641245982383984916786911817166814401542008502044605611441909615638722957555124124822374580626615670562683660866218464570351321228584179061278070149220598539210522632738841088127734380117613677214913056317356733880442911354799254919288751431296916487132306969674014209086457513815293348314326485107698313144729206865930603859265957303623824388979660212214104437949482125244540470206590928530477223399342060571115371876616570024859749159684101571811643008537142933227607673297807133635177633540232926897769050398252997525035095041844869355517163095881600765140391227715740927627715434656422495776745662145039189865254102534231476301058286212998112476455445982597211000182737223409774878705572231407421114879266111119443676244125711462122077935880652288472971373219506866157941696559338423357939808378377405236523771364360525023686232099889723489605985624275051439839913960244569207638764706784188884921642259156579817971243339420638623953840541152301337533039624579535059078184906158839900101341657077607887739453739106265783921186369057830715717102407942125697199082084562167218181704411867190595042364141549171661404389042032711724406333545523193535908576956980946630404779721214065039872592230865929909025001809851100663015952526762308981197618729752873581688821372794254239722999855355462173902296970205636211487978792913186901486462921032367207773766208939858777017914690001005333275268293151877983311498746129383228820180398725850777976434150382931767733871224397519144948400530520029421879407414885063228555042636417484565860286328770573914259354782003197018376475343991316836837183313242263779707947353683942407047026573365326751368673122572531145185483762689213233944515000415768044831762805700227346413636063057877761271124993970489114040653407892901924675428252215560126154537727370324456420006833463288155014086269031816902548991024665322363278527845163627477388690219205876432141713340214189268167639385699948154014948569722018532314632130462927854541674552569701548544595629748298160180633000400542617246370856080320894214322999617461560886634417560149919831780608100058282832705223987030358202852486779364912234884959157346286095520155480546748977970696327307919798609749608505956782291788410937818994435688890559301773390942685116011525369209562382782308707555607291272888525282135765714038958694550410676074126363794769805669931817820988199412583643842392601283927931792528193017680699630281441655169821849713373359822158097867467757867766766493381755870150259159218172804049351345720174485102569782187821215617410294185445204432639682087941793787391200795614242120951974171116822449513069578275609786179753668118646432100380989395739936514907745929510703621771463758338832144485452641166907169468567458566832854006892956392942844957443119641974627429338348804055968474843464235730674370765521015015418294495134706685730083948671186410758987339983619329241601703572253406011577491697772444545757943145713432699672998859673582902134440094139723784646076850912047136821443229200304054470573803213276803625346403217364829810615853583812664436456794141375046118316142036097991325750154747028269156374457298849381354175301144466445522886900398300002343119860963925270136517118078132556033383375182757326190675904365328703289001979568944261312944082109136668359166193082238722427432409497764615476044550283544051405019978803386355424000075597014478630075419014179932613558553797617957892541960234630973647965693807333870647813542212510000789670509464885493464853147621376452486129015097841394340555487093880970702478034413028049940536773553162917568210552759476895162663316331288495382313303137229291665392275515830197434285577034123286524767916315465307261274294779380676754507625714284810895069947309592635372326477058652587756097220969076716835526102103167737330671176769540912178888087028333733926120655068086346596182446609101988286201961920732593034461146853894589234981531128277206791479119465774995374580677847615878563470374037783234800975300388985202668206722222949567904134277579282769514388426368860996272459074181375652059507634176028903836381165181211514859907288643710760571003937345786944568074011526669193314314483287623250212486227773739128659226588994914427599388567513555535288683675131601739719272374779803871584473592185859868451525552160589018389222205679300234620496179358307635498549637427330371963281001764489136722910344578953775589083757966300394139986788745768816669653956000846978501393508439312011470504924169047302110778631250548351202290745592703573345771003364042786970150238040142419658118648559132129876264353048222602680909136790636459485664040756219738402251909709696514125170132594863922909095784239186951746023909699310115371321026086390163895316323427771429527148172235426146951006616825416418140184637938494100687540659150441993112126597484587064502561881635172407868929967967605747295468537595212475548162307504433236260318780772590552626812194702960366632438969393788594801654962495445139479602585683791531625988970979297629376899428951600052773608692386681595160468270587574151929033877309060521638086047487870976801761277482843697522129814566705727807191324463352907380014998630019679576783509154463457993738106734558969038731901077309304604352705474534851475853636496163045641335751084848005055393731306190790109522175337050042390754773272225971343496649876736210646104431909904700335733764670519719309948022254594338971830425255755256942463286565416356758558903740447673228026893610487747281230072940314224231932950452806003162774052247580696542769872385315105968072548502445151794523380692412902699424674661996081152524671544181476521672940826320490036985501012604471516047752915297388820458966794208756520283185456696895847991841054470402032825605919385672347265857913078628674464242824536567239582436387939848888057402518441840910095072479856804801438783925461381833762756958581257940042499988543040849876990408294500041041703131576089496726214151745350042051573515958509383112459529227032036269181660991114628656745148370015491311927079952574556608989095227373805757357299216566530957322594462468465728372244960410661695665540203926000781997050064073905287592526783652152868564339721970465580031662724490606577490535662733638910155334747934581030470411188781149006958929633646361834755843048074922665192101720106599507493042355407115421188540397455857938920386028188177830761093810138970396041591828613635025718472184822196750288914753753954416959065868778367733031176793898570641379457714637216487403390128138267268118897294816236730454262187079987600210823203322252497894407377960684689351062792014363690245187528955965373678078412938643513259402206147368614257311568127007295462621033195192125417963552924258313150825082734635250344593411158869793200431594825558418510985498645222187032168137161984891059167894891398612300722467891452522505235867132683909291321101756221411515805072397095625962482975835462282389834906974196937902169973865441753144179309717243321488157371658873401555818586340400418371120577971286587842077442882752248456551477732633364011874199809931157714032569814417650519116681791536212782632201928446299291342723178225070209697308792771599904789189054828604790908696457324477450588285725881334282923671735025270588639070281396923145240496361507611241173159817105920554332236535024630141386717416115480374659387297083561998167668188247523962987452106327345255899783848338474588057927513517770500551918705705405841907533296286742651209479734874174009733421944083870434371681077778398047521820977313663687908317595005503980054722638033653058103375433067987615705445528255900765040348365285216927843138068829517761370385638756599057200291874449019600895787802153436568789342269993604997418952591286349061213184360953718310079214698382761065203543473063012448286809655937354886639919133625501477741694941823326722448657922903325366766993352594442437308135009580575483081318917942032099703621364203052677196597575472698774941718886322954110491418320766061583446821705755296010608502157783120268474172352567873984480618883470022199441888183004579114628590367835159498656020759555409825084704982555114012200266536705346555235945428171950808283505952607911922256973738786041786128532828627312062965792854675999598071803262871956435363647626179679948782789582563960975256493094710337722216831568817066449031634020068971043373811883033407400053238073807606555592345764944425796256226719619061645469307895743882713208429778991754685527462600365663011788513678901963523705563247757874916891163330830759099397916562927534296306525255545426173534973733266059228891300119184921689492696998029316144095859316146885855847577055806328843405733980079514664476437586885921065295611598719128762357990731619274548431729018988446281054111248620112902487595712300399476891977527621740741686902667518914051130776273234437398698652295568543301833742021598886540319734573294784720229256676653135451942014375478294180122432343350079072881103813228112877998786093883465588303877891414248593854321993211799997179472470298432075152029856678287587754060886046209996208935932843477064843327144057403820625442931424595771850828240017678891677327630206097345517456788914860027117569590544297635104278323004573443609313522099782199724029780343625131521826940380934014039256702741407178255295395576110609678580848154711457066716273779614530278850211287617930718701299842560336387022094361970682890468696715030479184300143716000042717568496213030706888562972849142722808498432638274631331814439309534725792727772277638657580358426432902359535557065352086335586224798641731158131666177882442221398994048236445677132539880617210705027340168696253404648276145140988625310099952692539254473049826926323835014264796805844291414743818830233402747028493451326878793555595721452130387574017897851325633101925280922290218175334622280548202140260979714316716630499849209799557900025057347186470769517316618789523700345257728975583326911526399250844813480078516303603468253139817211799195827574516505204952365207917528724609176737053856415539619688293772773129744785622759844277631401389571369711755899409628205498033484169059422756191596534976439347494710492307757017990838800177525106394191488153661520252508162885603873910736744469356164532694465430286950245378416880515446506204494149071056887104910580683658758971767643028745272003634239099144795599477032773129754251188908811998467042397087716681577954001090390299837934418620081654477377188538892390121575640060640847566104875752645497051451732609090656112162832662150642837082232402406015147693604123291636678432019993119738844737064633557523928701181974263086195199627554717016211280499929601469014827206380211580141374746810238566029873421792220441826137224414137163913003959951489222497086046791143057479957392923462869566215592314006552970897492944322966561299610201966264906252336237415348860912635053521029061659339172957632514744771271813956555583851331030245946955067404854878896056675031499215294978778864908836358958806915076065975123514208068079521299500167547556551295751741049207930493832533395878809702713376625592410625814466976163053259806753115326571527574700236181073532581789622233642067405917725806680443773669892911319329960011474795969224086151986627084053690157300865351627832271023583836290600596985115848440567403921932619029685215353508304344681937001361926094678995525250656207297527336966805421018157270210496678403630406479072712968324296367459155517452280310128869281714957584446915018443012766704492264161385020829984208154631286443657587718045202991438988815227769036275119650437220265131754489560740741013621601007727118300785961134728164448289146106634634224907659292337978341825937035791958647842413448663353825666571810521526420436059225628223109543156068582655740016197182511629530882934444595365711925604031546482129898038489448839780154351758630939166821786128972781970281732161053337401314252837683051854847587902425907946065081432020223741856296471134362389417800471571327684456228509736753786809600989180509941362428296114997430382315241383014204041127886750394115606676045570336538908209846498758622422155501048200975882112016328871850182112365184594739355950204279768391195212978401481942949561238131666924959938793281647890151683204593113183949504887514222518803478829690407154538102525004806858670478194055217863471337143340697681917945881634323742820021573681721893722366385245677525708468637084068712993770477669697097667971761698665108712885752469173300534396733151365155205698749315373733591101301560241179370681688833741671049011424415814849706801757729999212192912577610464566395791591677894788427968638294848891996597999065342489336653717039895993117281833934934318409029409628669864073572410014667362370440016767139536530952788479152159354996939515523973879094922692442726762794600630603040310392985901221095011225955672363393874893454308690030548904860944507051019993116422626118849438903239164972463017088637539953962240705238765632556317488458737521376243544541403625457792020392979655235224098943806440469679463090086941879036121118985430688105522902578260503215155961360857029523186138616702993478297304645994741069801458229509246095851415003286040212532102497215518748624492425698182647109723835111779227940154191334943770651242768648772864322178716217524801551935629319885679431766256448083676963575311697037471307584160867794140706461452272992896850937810642802420718650471290553402331871299805449161593371812652757005747864147879711891300390735954078310271151769912502707180043813112966380449276518186175074799779043929064849590563290053012325880394527859852151811874118261066035434719756150127175763133059031144283631122955449959796287556574541462597804897127865469005708702068552381831236964952302048456928419302726587924064608003675777784925231402455227803468276995549692550184489457835005453271004391860680150451443149846845432047671678875143271212690260665672270473139547581905251083432405258132497771987081742979201055466553143413570188852414216293110706527616877314513888891628392037019827250438582685790192803954567149008517560637990562003802161010217740014818818060853734004482480095748806256622899831467033648768095579311904299780496800440508191155357714113752532974388060354140974985816585380133837051702533475883903504368426292253611791184611284744723454919455638388263897792006077025942542768380713054522452132551749088299479167457734741767067093288199716689704848651149411458816895502761756756521756149295538101500382479260694143888312826208097268560751588878578466337060848039584044102173067784474890964620077467018016406225356875309918946764039901473494747904853801367957741804135434187505104942969879961480067036067700758158975645715020199756319121889080340500088735084076768388873228183488537504073300461593933387648589498782657518177728468063377408396985384832258437393093179600033863660391152403007647148274895574414332406359055191411865207634405402397355811214010637915804235048258642319948789962373516771880809459063112840296253401975802095410293468425213615661013127594502858508791926422764511724167060813631312812720227104858549261125147458701519731520473714721167641173461634757737208751290630337731836646999544659872996710038679112838661144867326036085851086997795401708383950348420384423057370529131561609409209231076628239183748263545464799560282676415783131785407507494653083282881060238875572590984343581558079880638438393917650462554232522184833249966154712856488997625723020794575581547824588019461940090499028066156740385627552305845932688897566868750979678554815968694054880195818774668981398642628749252932978741945806909730261235611388187957186765131118394208494640892367940452218678866746898295555926686493872135412446121857984072292589166922205770110989553177119955000639555172485874016663706900091654429914451241973698581014869596788549863161101856667817642147502889195959849769612931109690568453183845731512476542274286610927354026766011118293087974890204296181135301782046088390919293071137395597363897828934630267844791061300066341997187115736999897636048558750053403926632214146719068213688176905857739337788638216178843434987786837623967864775467156682730115164530228464459855679149154954167351999679238896041894763534896488063463681755444606167653274845316328736734724689330719944538194185588078662370622983420730504870337022888846617773669052028839125896772929205704373869347804323991795508956185364567775257978042694599764835774797392670155394692569952871843941234854504602444601295547552091618192440377648009070074766905948080540456009998482181690631227411878272909569487695768127021743161041364223697459600922271001794341483404268601649287580716027443008508496647809070934266407896069075514212653126841089184930952689518890272372767430186593323564936520967173984400996332287031924945896013248248527243067512225850539060547679718871729450712638908033303153858580440476064641183690544682380880448613026576003336701889145189930132891467462429021060493387501450957103633914461761018381745928269115069853985620361332156462334157793685308430385642022282612858662041154599868481767552072198210631617297922068932398030242190009173543314180145197182513338592368776531574892464013804485814191677529698495813442553835267539326531010634701242977291233553204785316075171526936731273096233930427047715918647043767846506219485495052489639938108716115909448515786056528816340425216585246192732223441717572401247329697503924748495818561046660769859468620250465737604633674057040037342497300784727834014085976004478980905877661400729297520129449119983084674577854371278846954683991467854958773983354908010417102147925717192840628319342096781146362875472830218431957908595278906361062726085344681760969080951093042218594302637996172508727488454399602447579630472351715196356464960498320294124725271144519660665440055813169934875186269931238273774231389871835293697669252966945897932844837260997782509256542555935392095396487956767885559434291058863496695778173103449016897112435504326635643917874079399036578774912096554663125073012175667864905850305697441634493759117232347016225701445765603448534886590047422953151116036837201820162471604168316976560094242933612725919662766056156682154160718497765136188524480577882027072418256482499010390956596539670272698341580243506178692746840169471733726003393404010200325553709628922326290336655137997732250642302704826870260543821201738168939550858479687399209085715421311985619942763314965683630202108744504950885566731038792420025830241534276887531474897576642058539890330625433500203366195890801204135550948535630962862836774038133552059571570362989290349760300949942798863757707210392290605401305457258237505132180840941047563621128525726736908954650882651575042981929132578843206483432962270346091407193101433254287846340065084781147392409800168274713882844975112025997646179566454722499287293345938383091539089094494977636511430807628744855550615323296685903389099753133612663915092203977466720085845906644191808224141601961109455309009748815975719304542601209533061808696985786909940751799891305114576930085877518274112370457686257846725203573946528660114963552063575952330576778737435823367408350480354533663175554347855868420748758485902846875800185935230774090470907338821238678467218829247446132225616105732505484236313916150677375088545739291527659493268834445773267720738795929091759243640306328783502738401333672909278101151604125355303860634930943068655261420009963757826185826547877581810641629290996899354794759477220319863592023472066441573107035558882530113294933976381047374343252824206414822215042051282117365277977048412962090576654916155511136923890770902427602672787712288957834762688139900704538915210192212147107804390714728965047166080239593032394974539693289142880446447969158282104542626032335583060047598425207646801626030861344256508135113654336295368313806070959295395183415458734645336238487638555281180241774861528542104740532933258293219511032600954172890462922196000621611982855339003961519123542112697997371425657695418880560918421556829629736715757365727394029867656105020118353173909020301528050964289917925215570197507548684174539436783805072582614834984403553095232490126769336287535759502491256246456851273213289091273110957703249656062556973414753639688950287528850550483544740526531338441902198219837082603014321364635430990542171203590589293384344635752144972634421532226671946436018590568842453294139652002691856432205149730059245165028334989780779563279168597974357798732131316499878450861278740876537767737454858392000733196277777243320401187892370264688604870237861646288491240634292437686068386362619161062220327593908306173518699892253302636258284609373987170190394584248243815359280436106223344063024957716579045477963836356975857275344673133810918170640954583657663130965801225897307912038648321252222924152348504729541229215567471215967655373217431345049719768292940401851440702136950765106405832370284905942232475982334813113669698831023818734629135510494171612356983175113571579505738156513567697419562841668059607237877914767600823039901538027002628501682514820950307731939686271042832862273887015945179359382081474364816507133740915879934019971356240209926528415028228225789087953190515802320715631957524520342316221674295523415431583920465659640351555876552323100600400647389013637181575053513263731088874309030916862667832891223891055258890675010733731249976642377229620822683915852416643205566497851944608712489153484482869988692845126308359577749587104447096974463904756772297154685621059586173907473128336973963551044992702606746941215407347138374446317544886491424688881365414570990372138486053645294371953736067881752963105157651653346037652129249206190611484943311153052732881081482532502759938883609609231430370265056446281153847744551776752697612284730593630154614000411449886261296392927875373262977821685075614274262589513557134670192750973822488200928741589832988707339093601237998844762273271125793130591601780595323378238914779027178123744679761319603877712666580166728133122325855318819182959798564372307271268862763706501257497529551883050959455891084022382227316686771507665560411175132644530629392448673920805349644990915510583598977830113006334246035681409174396090649605537742898575641407732988206888450893409208775944362900054874990290352831494050243062516082512723571227545567034593944650896871787914672402965545847883329020567684657001128748594436473390128226218750414420175975840764467653894475117599325331190847031161154105892128671210943321094521197997505670780783830189190643332172159809757696823539968097018685812100556030986610388777151787354340819903142790915285483280466926215351737174364169783840973830936621389040544636146746905757182017086751091030553381368734887764864881111527858486397202927147323859576726751943082793709110018902093662719255622079018647768111648705705106282495589745277161653862187051796611260013118493196488925504327813838280992930567618637985449935267343120876117311773520941315740780094761591854358897376166456323535448564032244423130277874463253343283861354177387175483048338737022661882146081376919976553982744352381451006384048261802971739199804767433089550213454976789776982913389537351968590089848956171687965095005882946891351532209637712850785647562764439784848055296457548422624587441751009048310365623286923158151674277916767545918170871380346336358809845885226502952561948738859311692644123867924528786461875576449966452153621660048209755116282568296316613221093826014294856059730411652638584956490728361005153235163847456846723795858279194805411194613563393727239715497353547517324215659347435187167507152376116649682057099031251219198225866049655819249885946013572655925800049430547395012696822959590388068812061931777408300327861246876145884672492907433782093081159799574215411545457033586722767757092277260625838498043725454575547657534830122563573584735657001149872030161838605486749587286014762802113157262133238658203068338129572628624512112529759182343200500404882314460898714439316747758486565597949023791092767075847237729813592067332134235182094423346194433603760166151215761592257160846212660370080040129022515344737774709562171288015869858098594123720589453936730148056003126354801437165728498259173090247083978945503038821456487843551940363590091728167018850626676481483970528949312586604770130895404846502897777772834295980427129724026090249805984892031838336151426119613217920232291569548384214203198668245649881287195824570865847653975019937850680634901018415237006837926282955450594739013468150306915920548440228730389880581987588029016900394964424369635884692004889172467345051195519310469168206263380867502545159534501141704488809994786064068710405346162896880778515876434343809356419198267749620332836400484072647060684581415143274551199353143153969329351553691652312575196654007041034514492968640672350258357403478506528326074361485156189407256887466637722332223322941332018944531372366982947471283506898655639111948949548212970643509753398687480452037003832841951664434982596395346586733207646909038491214212573032492293033032775340100233087659104803374061974905738147047337775311506715933936237535620533308437872184064666776194673233093244898208447960823143026716021029881661373417752857456567275741649330730428554606798185497943576664748568348069135533405073744544807115098067496260293967710083532009363588692226141182709354934258316292834125929485861820287121659089440899344083307960472297225693538241270626700835933041631392498979360357213642994817593577853996789955333144155376457162550361020093590805098163528628491652624639603017095980289543741351105062730262404785142448952295278681670857875039700721315580242181558441067852104117583814391040588704561968887426424924130689951100970817943280156741743514632097882054398277858750116483379502105096173524906914245482678801318719798836346227411719625351616871935513682137181303238003535268075706165819707667065695043067391534147294620285847560990307451373029204226636517174458355698517329299981988483197044766215273594372532815626181306258238716904458545093327058201771501925196040458167545044126119743813498399977437904551378277422474776667615946640509657804771580457720611332794564061631629916222110177682139433885414457378883504980412718883405033427297776244488057184296253629835354489221053728592004119072920285857340426061257900870420510524726454152499152067670398948338022621181870365873567935863180954239847731902093327043666518198705693816678464557996353750534785437972056576865652545427484138084628462396171691859268835084982644176164607693813061890567535335500190926450857194631925038754487492791249740189606223575358160846844328970349111416017508171754341585529776282138283667043293317438932522743067748447928596897039749651926421792376132805540473373224302931499353007427106921435064358973256861440014772772738880841213424185087268388599675046368210910806553395373060411427855636729312720378530840508290213096055776988291372134992061179147394654127223595612671602836245755246968349375857828425874132509104350389465891614694370242090318872952353388118272299844281935694563767047870206488373989367038547424170102477195650111086503343118683301797038678605761910097005344747511727796907780502035645679990289993272964316462866524271441627984406572467590375359109336814225321000551281820380447296595280461709900889817790094251985381311911098759582181505909455274011049842698591668859940017318501692554372391159910863320712491214214653807889464158504887638899613093101604781104848694113208105069810345726587636170520962641985637591120738058328965068724129306250394991379833762547413576394362881013949194598063769771002336485559526363473204837258797513072640379380766955237124848517786417291115434699040656690606504059563113776381849539764723335978698849656169037519916404300008531973822445651958440030014387481360490240968879984474708069685314232634140547974320682190702501417995570782954853204909516840516937165123671801620180711584320880087053321491864434187720576141235790008824744532146450002583781618768966699991344055771470117673964102796017391713048242654233279668376858239676499635092594937305630647735529603195531051602382662355968232734224535733887018031536415360796729616858228610070925073100202281574739169579415821419337654913632496128408405032444290202881108380504409146858784487717907031775106014729540144265505399463193973614969957774363865465588951875169156050373194362164084350846020845095307223636627712564529128437487649009923571873919371558835030319488451748420469565525179496924981478107692756609587580790711318978409204966420138154873919074863230287981627052436787813929018139614470683674522479393340683596120475687782931200771797613282076622700510501235811854954746525446490532337154677215948162738517636753530464016499139493650684131067094857274951000293998523252852848083804029885695080772173371460035462672916210186071308617591249315623222461685427899788704530747252377491437692547969332405875093744072105665720464686334462664719665664483963423903549974702444679901156201141911602335958039837600960760933493863464483258296316174688147452298815789670044635700734560810817093081458032099144305269298065978076492027246496289369197378271467882241003825583458977493856109960960957503316260090583104935249333717623453957867369332852329403292112724193866587057517077435665252039946565074122791404500671823215427593706960871492936403741011468616143049323580018937971048438771003085886498288696151010858829768121260078222508516125060742318601067798750080255870642625874883781500666622081128369519450875944515902946564569516115979319207492484301512226040114770326335442116213755193418256879917393078743133744919001795233008886550340567841832092532211633659121715590832345755119782646315360635144426785751436181916672866320651793916095200526101531363001698727705923409150483116392314565147349772586805561604706708033783638927742454795294744494556549931126991784532487933670209527448926838631200829090223403402662944550858766561181640582438331673582704421988505611844543630886761869597640160491848216583817443803125446087785308826750380101144420387679361425159209693039122822308946712458776421945815972733882605636952067745081834370477659910719958368919438158571767167989620079296300022465957485227044411656465713029867353066460322534576318442237384576895296737956247331116257412219251818489814297951259560910583997669919641446313587092044358786557996668773812906624494452222641437682780348347272903874909958698693479443085811452991990373520352918979901206186801812710442232581740055619733696167515662643446976489431721110483064255767590779651509446273922469967406984523156292843587104204959315633922715688152947109728067665460230897160515312677298225837584328566510406650259369137663764434517553919556905097461346925281462815679038244959892804908515347772612428237289912026587845599787840827341085885839225384223882231642338613768811776118028635214341591128104070121659038861074132486099847460151146998257606840308885006030433229863613035307429496303346386635930915165292301256818259504165979587128348754772756718035633466927943705756385027215388051217782823174561525690151911826759265489841104999189464046813346866023587724073586811459830331718815617389005608748536758296607937141159752392244925508643621290675031418219327841284277696700567306884491588907133047476278467298185833681088401876948785892612535804959010386597121859153419930239285469184072170315313457464701732388775237714223506264107653175662212969624151406436086608108341270939403783321411549520001518181593849854199936066995487364378027689641166500745100613960107212151872985761688847782406379106179636479887983824560928625056324566280424305455811886563591373612309094937671670712411036313617395802524874330834423225134074747536908383263183489546763849110675727599760275395816870810978960120087625838704330006201501508952684372203408973326516381244703016620825648509631121132946592145299767603506829652191301671377777557437974910175694074111543723882602364621597117848522498650185346114578814116858144668535078845597482319069803146862516561935208791562635239431075574126601786633074694822473196972931339203695238923454643836649971124603013334188353562372925156734039444979144962248599853502600139159096791615073785276977753451745166779159428469232647584171777961967556129521294526929486139506664765993088637712654947620206871411090893094436489652152449871406997152477068809679491753670568218156035525634340532681362501084700116263179467658064956382053366321510660518009069497563337451539146442971872577796025761853231170275067409272986172169163781930942120361682811147108259076367533874019913385146119859411476328861409911738894777040165792205103273708169674967308074118002209229528809288207077526171155113037650423052455072113838415570064171504599123449741878547046622317846757660599297893119048877142714764310410896696895759318654620206513754738910935975341017752525835479256684158209424898959921271134643508886682523216382371469349463912777032561224769201261125731154621571470920835304405811253558308730903507776076761479542156987456395201271627765062977874250584134191756533347595983759543452793348421166067865082916560727577329483960305059230547410729262117396362998683470708906855598626272642586290972046178477064771754096269079417735414764883653254601247875340245187993238165060409861641381495009221706340589501377215485864198019694874090584164946813597237575019035379203714130258649146975573313970278911629854522469866785177491545800178476858066281742653563944438875200648280084794640253066682711870531261488319015254182386649699973267568747836200171249195068642923422558610095518509464511570187156832232487596247437647555141607296552283908556097689661363775944356218293715219901094720982820717451605044844145601082906155702717854889305636507728113899815090935702779142628533974795789850155020764059102409445706568645613084975915418679665568900297498120875374101858634062017539731440141364154811490354421032436209730374248478878776872030176651979291580024216570335776259411592967197270782788983742072194210686605385297245331720220689776040469779033354804296220488995429763792274501161036670022851013694032222359247261009806224819843912561769057992799646326269033325459044995062639706803854177942487792959849368364635964759635803146589283954148238306774859884174793769419944297226441495976860202148195995959491560741157797385477311642729038761611362774751196638954703878051644932745180014655836476558171559015600099161223501222463063590302046036121807113119550928404628700869025140275810811586763624704453900774178698952951609402684949585660777010043275900486078826806774214149219539369420148369065515349247228590571457790526336082480027328161365544724595515867289918454165711774331506690873896730579739162826762405627386594573318564269663890012657478432705334883718913084984900002608273451763910251579005960324085058636739546294107340334208723619178454708313357494286400148630039486220196032625222035777709024044134594042869645441635190255517253582208075778164026405717394363664667847697189697415679982608313497633487032390391013562155679081868205274946926743250516162121689703703902679068539950014529235449796204332109141381240434569803458977254283133796000015784182928887692921763874286377482933597674380156577251457241210790094311714713092950301743380867224373991043225686119666809465469924839774448960027839990830126340539674211308519331051601695997555373680953636647810688462491502581092590774894221216592451539355585811954896621473772425472998969279764080935524932907791774659907602184814450413800450090922057958133395340130399680281543054974699893899298346178260961646418263195769124291428689567924100145396531236908038987681722993709503338014650851890050477240226924073442364841761379109474224262667917395510725709711956579952630249966800086876335403771373890415951452455066153611869389612913156407720061526677048830255090171237233814684168129220132472615272562453290298044567687341780682720245538107877750141754932973906780161649488023057749097481046912704378780440161641910104841738749104442442831725443348135533922561391428497744136641397762919775914067400084055028519002656921699716534905892833719099993542164045412410806847013425529614325284685344583848725763374371125833012559027112127438079165614620509478229058379344212653410937806977451876872073946973187343773257063895198722762759961333470911893008561891447980634684024257446550965233673937521460466662064914491500436973292196612210095870154173326371467346105964301667792702153050124978989330434078531143712814274271042271419396874363098155134484652506119752377638296726480186286248213100528023062246272802044669449302474798977986936188971830626173727672089660763963951939395496323770710449750390201618994706058049619200158875130482337060129058348716035091726283552862893541701046032004106186222937318885445011890125862338579080352612030245824516580926239388820744735676639491653676449382186382737636268333027820743409657056537643571909049638839774204473360335874669270103635153531827646893988854410469149862861305796842958652156985531124399906965832013057734521822786915666757796935065298207832210932448993900334678928825803506523143617457592353815819989073689631963979714663432668627458688312812896350807389406428592464730381440784562656389796248623707497349387842509115487027598564167831280290217335824954614933270513091250041704738800158106825849489725945257204339860456775667916581060310619033556658096645063975798962078244806120174584479811971356405081821381550730497562149972790921779911214594792877707581994521660668186212433538414857900933935395583014369503266541688792175402847938216814490458866433733599847710364319984252447374623817234226414658322285548698182060047750387465280849391779900108737915336331073784153193868020462255666784246959524143403244669284227075678372776547644088481336800825647006277094407193266093536256175661173671167238317594458289338345450203670711560152264578244122104783727657274607005733432289131803380095349594286445446855977595144346799928016917154502760208673508445217696153799084790301887415316122974825930645034073866101406087961909649832843765634167519384605714543622942977435107659203882242267635956224024130628868320114444457331026682246958986662815031812037400525300598875140023778141574112092102107629666402700813986821884784618642528145698490026556622936156584563560564982750081159825748963236901733432543532187469406222481924138324757431177698936715454824032432233290257064430982366065115681464745225303388327834529012581678107736125271719883845642447712679291753503882613665879452602170468033423114900315460986115511780762061147553154631805830421517050326144064010231157833858018182975241947238379562679421755022607578730617122326193389366274883096870048978411089143941145873582532424919148382846021459631890643692027329980401216979856120604742146392531763431958006812790408604923939885576512154282158592628976840685286890944018824730639466628503123858612873735187433105656039755400988329009327693620847943744110797298536517679797175473535184274273440568046072282072854696932686735443780441002250693961440262479812329469115181828851573291288025754123278227202695744413990274992047018056056908230447938739692860919637950607484422515200430623319677690638553607479253233664460678423055783024573023697369888242591102167871627925754842947347454578603923555429000820036258328004177952180515872013544430378678265454994709526258507963585376526917907659984811261852444556603265817410173129604324257355975232389814999421113274152526173129815831238501890762779162103916969403356431623943488686615512306252360708898591625094450513458698927440394940522519027711583262198149850051558241409873019432385974812510712975355515711747395064088548770904956536167327829776401575212203432405416458729640987483108310171145226456060373637704090900619720784637158450809803197646807957185819505745085051789745420101270267210385710020415052673140099575674430420662756024510757785264210553900383667757095479974593285156216905247134784304230974748674433025234794372593331137202815526976843733230174718378390622229025748374756071498222851889386138831382909122219909046632866525155971707429866590103974708733652168805372086151666859598768705016997390659645706751350282588987205406042835744490086777102713103308101813067220885897539708933891927064523625074789040083562556415164199332656875001326477425404843256023409948514072390811505017350724457179050695265221222352395980785256120465993197499775345476788593141622894242784890152433598099052670636206313044805040721598368425631112545863598289093002878371070255994520672015279177013614679825075845254372074513238334019364741330685453629579977855867626097301758419081824486007502765612764327896398407312028712932338313619875342814392595859572313618371486302384828375551086926450121054121525474417047448598457998929227329258422802890125078777517363762890595685600213728874237339136836367952469004331174519640690312698228967764876394285031084715573455280563973351934725452706508508207552332034179098864119890184607696592043421802993184602421674494792607557834012159293635268975813496935903179599956479661348423542521257208365134380368751250805152612473931032254479156308354955796836297486280211217308199670346414912704298579369996971527625280469586215507416893453737776428655070060972385847264806855273131178325664576224379606236328971937974338193791580756221869483129785584727221031304635614931708498752825590378368490538869543096848048699432960938886184574215597744703304718016335039575015964694624333280433441838519788719390269745579304090433871461607569587652484274715050103800449750173207705360030423587625244223100969012344857450690119915292806158764923307500580019656222766941013773621285723730770792340289977266792194038779089863287801558832771757213511325871787340952787438087499999340881618079528292956770676382820137337410476701660926805889635461878697324855472699269346167746099894161493847032631169570762211520731462660491540247633303640878919678426875057333051810695811403175439123706971542012175700306138311715878836028729779634789932884673870244011377449367746071719242174192111993996987673169955082923048450387908829795222978383601826397023188508611585257163002788156966099974112004976284158523999665151705249734995913088693315448478296014371225626652578993176552529770111029771720592638506219345186887522851532338168088412739873890320769403752001068363693948491385891630361714438512390388203715692753213287516501563343471661967084637076807558182394035705999575609731819163816854929285791220129992572722786651243240837746604715459749440386611867837137900519232450851042931529981591179723381941742551123856631227696648816644618841150536951258119360117006444589708376988775622187597010327808271787872071992170624203411520083983255888596479958698466744902810781788632772116859730158816748533348921692651610482848324248788550733118673154173537861193899500005929307173343631189641873770608139325631142358216082769682624500582023141774753901511676979196535536717883567303475306210296750579031948523905277753507933309293766695808562229588552853577245525815468701636248404328997068740885734420370742655505675172793956742505291025078176396924473697737500826650519536703971134878462308994743937461747720632653660907711987922852029654369776831687715153504437993566591943927500462662961864233507389411950808317993595943417357980658194793093324447310368921721316387430955444437561559036624216920488639842644883976679700713465600208344971255398560849976750073828624782274475288048606246530808238578041884370598554488563508944091206243724381784562019973911890975736164075417227933814169956251791180452009995485839946669201951046390822886092585779876491943328540537894921168509644297979205999216300787098220311894654845251463875778487545494284611541538879218568448736129064117030742387902836878412338716857929019995089882838055174571331223450184981056075702543071693861196383341427876384064025851578899805568926435436514397009273933983484833621790385041993541932451684119631293246562412988796080555491321361099121402772574712391750682961581301062770631645201038418208523652811040869793082958418184929545685866971632063840892745608140168982985253590619258438644030123609107034603710581629435096802236750399166677374952792235452732715549793371455605357302965678071441537357907584114674805695026673759737371228745946026164372021422400379439741641365595030310911875950033648494045166179560644598247039556983519508992502398006118314975151993885325102425025199643412679808325984385294414841122150545580130509270407644248961360919754056595886823369426117535990655047177840577934472687668779318584489154800874153035411177376815103346469761764578561293074799181263778059332366708253178696119243011580518570884692714922121331049942473912549907475364446354707046087919675105222650887255421842074182023435173517211909120448098502620869638405895447664921549813766109491658816709080698963389437252380052584431515124829429547170867581947603306055469298761336986326795879261436164771535565772344479911249640830780816181536649121271985666113827007641311114372337442902173130019537132742571752040568230826684684206195894691539537871137575408740475955709593558073327287161521262624017220985784310908903179867968604354695672645607192443524329992923874042291082053117166217554457690021655096147616421102830959387547155846857719626203258536162006463191947784983947766608445738064050567043843323577355020092085611892862782251415445507290592630997924476674631190160740640443568022906255602283866123789179275301469352201958162137370870948370302340129892728446810736058501282947214887367495073662214554062737723168011623613848818364733267348850881331728555419347504784698973314404727172056355015831791978214216222499178728137793488075882510860211246385288394094055987014641658029387247356530066836229346415797965589985136225160734956116459689003125953488476449708054104898669669637057067969868516792946347647536143049122296562459896983910105601272032720670405843367460626533997748083235628258209954937503214772385186736863058775632483709182638127297912706871305205068842346319633951884924519124241749698050792567776611628071892316118305154448269899683496781341393578592905594626996671184744056706298891286238606291114693983895411135996295060498074840712823049686815670644713139443932458750124025607634295817199950437582459279600652351143926901613133800028850765188325738727853027679613902768543159927241424196886391635219023348782626935535004013961288218273632733344047036347636635796045611300368560423696459135885000251162096364971613927286459701955258776338431290626952845131377652709098849297662524998811046245304362573721722319635237742408515639406576519111697812444332973992198008750327190357382980708808478838420059646419291520241310150697380340933693488360178632339818806255209288866962217980778533562255894008147012105827488142685657887601487782336936966331429934022322474875341030002789828611515124934276030292940654654601289821067063632687304969843583013634538876977888534066364537149215754020439400237282914989329657943574226792984565222753199007779244306664640715259457976745840784372332796442066110733151783993597110383975786909722782032235716956871849883426964745610153611549523790976976082248015363656638441609350863291989321409391529500048775028926718899135242189640030878014481098380329873266155886081190143317903806924846389194340577669476222709280677840400831055553339359850884834594730543141273807129619623386020049293666566879483666004495875132250273912571188153656738465465154627934725190706131477532365161203710315487552503657408547606709991452791186689101509112186164209857354895634601021712116176439706289013642465570148972165920365733449630947563821152613102962302820944435020270669583680009292081137973967212211041034045033970086103876476535501495352840292999593670450615205364358144750130893848383590158220222404448122517603239432230503178829115884963271288619403570366612715566281598012816451060686236860989648501468934747792720791764193553531482441539546373167131109696758798419724768138930298617570552959367649882326117368957669346852701820789604295870884162762319943809250415880797410976805675088549481477457790712956402972882220081311022926348778944169139030915039604557598921560951498973772069286912801766585338548307515709061692191205371834510216716219276436928179103749695321774497419050191772840950988930051150194674525517046016606054040223985336288807617256587097406544362242272306479236420665724271979694501215910283164385695133440698599023793383060006117515058221006542250331815053937153085918036117009832084387902058867192690845527139958666056602326508218590067771452311141956005013354396459340676029199143020033530555216359242051824162320272346794391595039063174304835618866528856307441379204155640045664471507466148772027573249174727300422610578322555636780035835198009605396989313522192231429711769761119511691667887893663170655219977024816656832407556487945293453825458963010232813767420934072734857548434548081575017665752232871579849925894471164139583004493616233157451996087307097918242585226784570251134460517236416286111258272712910407716226999941289217051479190184507317215494190972432681829682018305448980355360042242252006637630389198472748638012376645492097657905333421410547993449980180237977591010055944997972664517255693686834475537452006277528423001851470315406873653959969986974339234803925593103565574737795682809589151607230952204459354347552316999898115937007975914276421647684794024675204692772878297543373022889046290734275479001751158158940511546585701764430440404701515848450908075338663049416032691245191372630777578670005976374300089461151188483334012636925042350393125584499339916870351158759249277175097653597587164891627274307122262813548829591815959995334846798052404594184090361185643683426281078800966445699360966355937854085807168642442809766106025056144131419105563552492524166876733235724417802278359678934694832563864885282092574862554121539054920853009804059128824570970815104284196726573920663178552629126362116480825658552955584685663311973219290372014536983396406043812698904937505200316093913946189045684821590230293625120895940738864411467705258481112320005416566646988247292026283909647597672797245765546401978881578979645053642933723094821961700018073624792307320727841364367686729660731956089377224889077552386398209181148502463473435360038369908453658751607489199940935958883331110121476891862607815336746691841388820596821534661484058869418552772785451514606944435391174379081832754588222792452427923911806968864862835213710832007196822686985245489644121837619451732747395020907334496871364683094370382460849811753199164855121443650529809104128048721550122306225339356020459006105505641552358205933602836373244436908435317092436548572920438209819436227500316241092047913292697875041805702533584446694165524510245870834683398349838153669662666773047518708795695445421921761347614506751505386627632194366261730241415556148915800436332369105122290074736150952899944763537516800725647290166452617782759745712020020356208790086490786859048832214909262968822859518202973366928194657222261144512344833222095006368326731847905000321466485401714570776357073608469415027133211588221469604063820362630554147398142589960498242830873511496898406407478222846635143413731315629292759772431990499061671410986312473678382109630604841362569682125990729707641047390884491831678934024337374938617701302715091632076767815828069130434198314782118241263379994825764816942092446487869150313537585720794414706685407608980438389475104786030796808907587513786936553925910501268267824169055165217621585359344559513899403097445246270031738558163033795595388085641777538985705379025751628162417953768579566880458500994741790945048074905580337608958098470585720111527311584267814880992255906784871651104910728671861433560396974020835897791543159335937728652711055014256519649693156898874463558039839346804724379597580868165274315166151504756548515954483979800067543486526768269403276590738826528157973941481919554873611789511400787062783015749601656903929136472386560153314813313179356157750731620862409640667828884984677549823288842891324524796069815867109996076724306632883622384697902313282093944487345805549411016346523910815920515148222731956887747982835006016603754631263108091535727861586546117159050550474081751660075492479986033939252071087515875779098870099796290788886523957969179504291299167837634477838834687512085631100409543158421012064821758092126746679801804612492267465669389616959290460959907257120228947473568091815281868361195505178485624458006105601100515608511288291147644931828547607126700671701398065970306662587671876073900613526284940764252638427392996796377754850606587612288583880133130588749724705511734521124129382835258730711369523253797859703112431598938493801268292324700022903513700791817517311939704266907699674129254905491313997277861182355869429125682927237951582008138635296720594121072170102261946687671511848652109369179022864390467616462742786641447988318035822956019411977035009760102478847019792337259073468198894892439837899119036110430282026787475081207653770918245195986697649983128997868463253455638225153091435672863409505598315371177042095462033955481674207085519693761397179711949937787924025372384719259627804756500302266896049734693679389978923334520831810181130511557313512204469483388296865644791106550515196840591961642280156325960661992329809549040053394515317543166636774635177014603277807610288609911657978539696283822148598204664209602566086812707249283677841547333278883035824708722452107285273376392544997215381979968660837348729141902715909487363112069113719475415863329050086688313331840340415145610756285520312731848426006049600158306554900397715332665216134648032830695113061672515048245073687601352323253047960411345818316803728579407111271007272930248073873549293369136179906476320583369407031624788418095319334676947247233930761974933748955105637585590728617808517455042177834219760436879935946940933572649118907845282942603176685135110473843364521705397909208974546411467738137400234887629254564830009174108886517079991261369898805265862061197791101197390755635616241244651484785855474169787096889543684898340677875794959109112944866886508862401782570734509339472313934491196927691297375911187552723798205836789240938789391545893136729832375435677972451446313025454622588848666710629137740918673663235482457933260137069939754375718448916002794547617097498942645598846989780328824485493852715759595234785619614234950619638381407717833949253466109492252106900908110138409161497759568737587419747454607676308257233009180973208511544478682092186632616520394629946497344439923910224012016722563228144228031656196215672914876233176624990723882087301432672284307438227857823422695205802073312016013401309067324352461508078384817844285707670042632774110018287867236727722798429199033599005805250769174415935680266271837032897336951491693551308830043996727059853618747135690000717921380014272486217081121644089147711333799770107770522040677491670158043024582876121060168929783030272908977139240964253417830617990490838703609926470180018256915993692299137140082767276541205836716370139362018855317823748655243137217379770019950540037627863731936334429519301824250096821571733731458542206911083999131161515821691284828679151673280465133641112555038384555193629674607340526993463120715760304740238738852486980258397304753940216227435396227849568759327298259543621587735092089957789546714462006711477269699393685460490913215273006653206470600326172847722032200046901220138738939762913390822382641326489626796843219259493231227421645858516676157430358438632125345681054071478581908790266713326677281242496411879017421657984363422415796264399481095118935997711507928467098874000147075557907900965964065054116388956938416284699523158006297322199428220611275764826212667704078062876653248444711980548125813649368124094546289591105001639592894647994239801612568486581771673312095034505587318315181236308699665652603089304162468660597584569476260213260170978454327676436845835142921907957772303014394536898187589309036425606865854584359446075834763594443696407277454227920005995720442284568557493638785676242915629702060467236679111358872635814000947849025029794647727188507761488831401065801925325354794791573138331121607152993432186345108416909422645898232326609143255337647190518580714126884418986554460901982769160643008591227414716434871133010568960453160046285063852729113354901294345183665982946433187388842928300882591682447832505042265333196873122520900558751630513160264719800165033313776515151076016996946601028503162280927731008494722712946753553739128749630421389139409989895654279825597024662990159625510452475234633296030606275558084123245910186492680305868265306642955559289013655703957547474927025430351168194480013277165525643135232291070452202235007328148259732482885298867734684204502521879807278291394201662246857714916949138752639146921113324408493758971497657227266618104815064102795624909388074084154989594443923690197654372268471326117615808235134940592403985086602642233897774437312092619070960388781953459408650614320056399866589722469090315003678586671343700250554627997911826548416228446734699858582507229996981545169489633150972882662228490692824812144906505667071589272600561775220827583618156955303652006707747312304487804683448378149817126604327543506142931283034086854421977136905374137544122366263810649960773674198059363198199032394380753413326288680759942059511247223620012040565910324483148681823971248828672131090963391011568143354133514819688898794916270454332398117682084485680259665712696907330378808187195442399311463236749163587872337239307742911728791046326213613725265668605257504784374157894982082408309479680732433868380755321376362447399227493628922492847288614643411954108488171263628364359854716230177957546068257803454369355584724519003049298429895531944512927869235333655897939778368213164045570691419441780682051011963221330050655606814782468565701209726552935835085586900321746893741482515388652624035609815600069029323275760080755761567312193215697032215641031081138995138120374019250292695960945845353842640050904665262348751583018501062201499628804331825043480165893699931793683240262964235642843320442597549457500996780503132593690863388701975847628818431051540672320048030830525972504855337999452576273756403486009791180444675082020810605368380478134765098538397114970923600245631287199915068614576599687812657895102486373789949679795876819654069136575273285890508072698889775201473631722951672363699062849180731517260219067323773210150631934924729235045772774685530715318260585947659532090093306590538714667554952872071616892443785179736098101517966224687073837841748151445479008646449324924470284353473709514063384983461244823340456023726565883812306795586388404701677441462626757184322581622491267218591833947078066536761015979614471972490302818533139978241285032296503123116740763094473837339145960273554278069355317121748750350772802567818556842838728621652883008593990630043674315583500359875047229621602890206065044033609528160564061295999257491615899587030032944633826053011795691972390053401643086735953305824631623465269701047217902539493912837775077539277718187990440377469937540004618885848077383898550302704495404048772736626978843573103958057461787368618813477371390997819907387483836367148858911584857264649421405431290971068283681279854764308770642005005807259171029280895978867522601188171503386552714438091081746236368671322710264694962683815693528329675177743589168866837738858644206696914486023393654402599203397423970951368630870034549059768905062451040736214095671862060239982156856532378027822973050223943706623672130084459034602847132017712012761226182808108722867584816148167902350655534528055306981060718800089800340080925729321619969428631871058023199962387062438833122073327076348785699854352267882831208530037151224166629797502007291518235139788456262227437769032178706592408188937911296966104126170861966314957566214631955600111265652011541136391109267499775142984535289522831237506972870851107228193843074668051853628638327103856816412856022184274976201726383941693438293955209802077697047315819710295760016097045532426373148944103017635599818603757978264222011470067939401449176844825046565806503663791307310195092688834705594913347226729979787786254359221994331105989815090286169095139604072006708666162862651634710781428536850012916590949222267364000849178762501875494921212457562954014628280646615468184253092166784989233761400646799448035007154304821122840791769359071981024996933894442939074259584628640058325794243519599762314367369933354680705677517859153942116312142849872012246733939659294261876136913350693381200007405423148441632678719620607322278422252083899550324538404129328169370375271586262939667131891783122628333998134057882830308774052868577376967023107197662921706773079080758526868481014300448781179416842224576883703633988436660203174125065804505376139132451062684019143750003924742558351050764897132415503004554526576580784476580440477439920057638047917551288055567191237781654832527873831215576014120762015959938404429701536919932511872459907269760431135476655837632958920991239503868451913221642724757478456724087813372317467653201923269976927517733609739963131128600673249337190121749230541330303145551740219806132106673458033996519394000327686643579201793578329247267406796644629639933662437736058833170905079589326860382860669713693170898070546634051130461061794342444273622308260554830082546739493060142746053560074760699294942769482261310201394273650062271168392059637282803173426780222807292928561111219338092773510397785178839252525453359667126054840900205145887364554791518555482406096118966038205480489965091761387366170706805691236944917303732442127824586396348099728471521735078660233763159518921707459656996333480944840789762279316778330705161998514717237622008721725510898195707344518072472083136039808491736715764306868785083475533896277738248401889500117678115629216964213757972107525190239490924575219965400524462953251391847333103003841738086361622235711537892977650966324867304738595022761388330717061556825481677327130775136794077978449964709903721438099416506780354640248821327790088026072934531921326389106365769210290608173785852816039404398047650237454616164190947718683775554705283177628823741282316846360900427213514138160166102199509522207237855601364859590858556079927346020279921842910353459830043033487513956184593267634975423132429766168367939493662319734856775808742039468391670574013398097028899577523575456136292399538344295324804343535947779186936821679918951400271686589698458186281198714212326349231903582513628596264085231292100685490160671505467210296826751627705698941368200943707635877213764095887078832721013592253540874169995774444739837559072918272722171619678486230784907742248350898387600218580542847442947570976544575733204272305636316690647230873179250823195168925411604264090982992392315137429340593065954945648934985590750686573053506849888156575702948821239498045575203976385113061612372622845274916794150480286327368906539877416054271860601526588486814417660303111941155889446921403503149048755402872921315158052995431749694086112744151496065703812143584149667713564806506190358903768971106250444235452547627489332365240770477769411738905643186201260415575211507892361668034635748137662333342331958882318410906410230426945159596082428700924657961120216981075364912748206639837992568908764668396432644516329421445023313917430387319347844578270412040562258983538415674958393556299778693147256207171482489245031285255373078327769967256623760408150089358858894929148593126363741206254489835816526705065755878094230345407368873956276789575882842592840716886437356632765306740669134764723555768515602267804081139926369571301258832436651323637941629435155997475352059235061934276330091788011817701778674111086961318855921675110260572172951119500546269595961663691909119224525554074191864969371734688553803192366145275321361220205161810626644589776407698474833660084694642400808135636193312727784892797469291282874282433694761046692563031747440825213253454629927365033831295358005635666680072337027300402097035950718347134644809560845700977288812714832384622007034352736834394055304136504626288665628817657873690266642680133157981402455276172353979478789056338809715630776090818976858826740241935819640452516166725051125249840972340540468277988949342977182037050173099190376797523137156917708323241224579018597763174912326435125141451012847535778590604841743712029527852601989025372738433232967506276026416793101546876883274439276659218896498789113206285443004287070041165507113284728730185019554013752113400519475737260202950722011120884730685424499125146650259814254313073240308377451489067397457126205132195176491629820330104858391251927653313700708411730538178938961840078066958513922536538457103214205664448052658068368727283102950898339834041799621053376700569997111279278945728211882145674031713666699714974216271689541176528751727082323937825626840709346337708688098938579354667682236111257290518969749358756458782553656388031431684551305962565140077107495945474671804268467433513448864514385176666531209729889636542634217190595369539042726242829501249475949141529858122837299132229653631935183313999525132227912933596765485719119181692824210651319736264245425416494633525648124811547719253151772336687199420419647907949834561217055015301845297671894246145928709571432442372583010557918033768012611384869134523536852513986714232737820099712529069162209254393964406712143074728119079102212761291232038767214304134392970462789879205939639048075629747170572227980030968750264874780507985038305977652752684356133814519453940071859832328259645693589845435853124108074360791225378649284600129509053138528888011137657488437317636182738587193220682429553049945201897306167068259468432407504701744088353849864137597535145961545508495112973844602644062860913877934631974477716458326310527782425321236209055227253683705941491170299177581334504195628412921176673033462189326747876927025578670563330028242606479408876202844444102553711743195047583892006467663083848987691655403882134188066918536724862946104335099061213457786614947514983894504023142673176936792828453004313490843705140852868659171242899734924733029532125630079316316418522646023060785108129182342137708644467608266713800314483985459700501566565064391733792078567496306726499020410156485733106694161787183980664657196284399140621626329720012641590159850969242639835630271955290660566148611490110453977796058127877181568398145911058796943189678745215414958423636582222361720915681503387236532618873402654291179608942587823266350894709630002186870272419863343685853975713599316563991193758317714362487288281858135491965090090215737988258424940698648212638723784873132290507238794224298906696534640298064253425309851277700714040489891309973035158401359764045080202928643538069431273414611297755817043043741265002449917358632028619035012426709218053373670000208244612719277960791012094198340818369384439760186192912137951801753523533981364759781855530108182202841229454131521321729954545018584346657676582022517255376221133694073572423936498307856763002296458033939292542700837186419850362757916859533175006054508241848527110035575296026350171231184275583492681473271666106086199890003445080221164733832136826865575872041544569075407453526855175796328350746387002421906665193688883574376027029040121422834673789203010348135870578005880730158109157888545406328482892880923115353833369033230953705689050275841789646746533896471716162540325208704861525377917256702016619267964758772204719770223244193062389244679131577731019735320843997763419109880078405685401665625272674500381675682271546537168601229406681471661847109987328057415280432775509030091867547319772060557629716234033546656730749039226117461974466572155482502901489953401056344720733083645892170100688948196033863430016856896405940494004220238906700503507372013223314079255411491264332150179873162848821956517161838974821002937269246785451271287580113695291409206273092116779132086393665531532186937953637103493840894525492028770632783101299446341247639902325830788470190122602062120628224222575667729662163663488684320274219231220567226085888689420484485201781923673649672621574760312853879919757252432425631964875100877211570206885327500266694799660542455603878717140319244495753671011899931117714955787113892846011148129610213239132359003761883431620290406367856333058033296411044039773760943001895307738364878878828391737516348694197588598085100350019686003487750426939834750383365655816494081660035802576870875837006543273929079020367398354469612880475018513706890697926949105152358861494381219072156214451046904565099214451561132985806575305850984393602469174388379449171515612253332325349560266889566661023399780282424395723610564990066850002401696858019126184557516905206855676398724734913512248058906711210591226583206780945862346973852258446131221642559849903544179126580483973534182374732551924501321874409536007911528051220912707707888367542682074726786509437231131643792928842308663415071748036373460930088733427792594621027413916322318940517005123920676955649900010259827131436721053660105766550033187055730876888245402691399765571857586747288392388470918555726266170097141554558070524634742561940265636960445516028498253490510626490505187406744904818203621634218436387461968054529600990131656622269355489896515862114379768937888368359157102034119035018246400557735512716874788929698071086076829028095129064241694218053126044041169220165912810578829618580925355273244473246233278650536209682970933477419971927015580977949595449012043921586333244797096499774377337698644108558278310909311065828842607028920059049430693344236316231898497437128027563471646670268055088288426689310131152247753761497026580100494267262057019272221002865860853619537734675345914269686639278783920941333978897739099233637279376412163318339259331762504170271337573395712266027749272436706467616539426536753415006009621172610979713552325208615593098155626205947730502176485117812991968151408202288322033395630563370299644535849801144126744944395675111448760655856984621926761395844999307136417774883075066274078450002781594254420142027148599131652924638318193465312011010848260826805579132730208197612467063767668196753529733608630927122202484181773225755387293289322254160286998538718298700966403624565459824358088616955648143446290996095962358029250398421989543317611191437032715740598471805380189285411072665260279032490478490171898502207548191871588650757781966245601789742650258340301288751366753912346189315899866621630839739438350434602009797282675848875016148811008036644215925817919698183529728220902945616325730767337454840315485514286735181590910465401941242701864741241086426478995920020057235483729568265247614782730671265343708453166371635496681956408987235722665395827271048735980013732809476405217126119776897129287802626533211968779147107764711107584162493318295826638625062389259246734755658467553304449223164420204626093061969046932018005002696735334579518705025998808427695104818424240965268269576769993575485337256870970625435393547747856487009316103948027277908320113734029760143203458505496754672814665741648605649465563414289628288193147261809572195877274820659979487374007760465997627485824638665179296439133058907983080437375673998811665650769355267815096024271089273971417159655045711369212211824044701176433256080098411764921623409123043471322092313165176473063966697961748844522520330003606025502111494687244011005134451894610609561053198700806448827993580907256764948388800187290887240247658025142549639001137768797378426254295380915685355053982671881352831386609149358816537969787421849417998013584072540253113155816446492003730275711401806557705215253233607747822988388368934801630763407413173903779892982953500458437315358851477626246738873103271814297414020844070018538432983901891589490243407329149445966190531839328265308265699867583410819437637425306203727226099673617970755694157981263853247069576480634668008432213362110321220668408288156600544736295796942237974838829557318022829847229225593215874877088963947162353613977753469649924208335471042875669721375973487710008937403416652938302508375277561401250404371664853376549502269146314233964391059457828576807264186879161383721067497149047458730864444917922023591653028416415868954544216793030757399756387646169553249098375909444262309287267557068504826600712004379510197737313014576709169942108737210828930317283971031365608004869134441325884643125777050687080063332512912152470996483727264498923328673493673535477675945665926941608056676199965075477192521791165388680431976944299213176131711635192775885822075714930261292233488620170550181746481156374485102919213790940978025839847434344126688759793957999047495103817806895724352380660633812236937715777011112463465409460054971785052393248608723572766949922561607798077944178243408193514391036851261807252479360628904273902469957121620596005339902252885260083006649719977204113147711114903356417683848447573607798664072650052788072420749693132542661210784631077502133907713494246218371238099910519862820885530487252990791638540542220131658327357918436227033711450789619685627614356488408052154770451356293151077552757726638814350829040599157669005391546643152622396834733644980165420149437629445793881425780885992859479555493040616266011684518189374593069409725868938709424740221360361431699153056005543732496999613521709624555954018090509620037779089827665147609159890115180774088097922741405978625006981744020130925483076255305944314365503753867068300251660599059608624458678973071606247138924110458384143856517453099072528249077330165397039814347927340382741923916415572904895279030901768871575689527494602502018270624936176744846904912155109679043733330290674291181105386027681480963620376997613660735268884539301972225043441611071461954095550782515188827198094672972664998095199284633092517695152120033991551487817732788702435914834992421692555567543422994510786210253517583939413913959840813241632310703834279016640654530946622675903053981240211439119231789472051501258813984404568065107309724030609106590771286436341725850845558109090816515795794299336464608233038650537682033537318017975077727295052448280762466911307351000098685356004618994518916817083259554868429629663953844245963375392777178097899243499460160811730163311880201143806195683211926960584084100471675259782457435937636950425958209569133535794374526696314740211851276948484682577876847730823202150881092069263651737063101644749303934713086939574769620279055609417363073702477667323407990397417223424476010834272734122479008904051600536131308304191602233334180106378119832365700694746045028032953929677524968398981443047380392476488804554739626189762430378835032925659197291988091579413156778658163303853827367198839738563741530084643085115575798670794350702054621559294372896342568409489885332535321781814805515128469568815790053823752062077266140904704292789346064711725862225729128397280354686551484332932017327520413365555810674177626164223086266181462313591072078462853238991917652849851137958154933062067223044906276714015468109843138602875542562090452028013236711015936859395611776198032663677493068411873286645196074674667560486745240395155911877590947229713804555681552582554102032201465744523695177473898011882207715602967209273917197938736256126186986546317117792889128318383594892859064639567180407984326241266972216085630349762447151267100217337140840465695157173322788747611249328891726829741661316759641331185511825718049220524255269151929598575567544595441682681562336756717535428480536104601814269664193426653299725120084482830832418737357322638632073743028206247911330841676284634111600798275121616657405770487350544514345352451163081163193290786328692205954495520316477734966565339016409575478153239320433709049962841494594918402452616871057464337275890560174466145590672330167605398262962132042557568830174438246205026468295394932011349025829672753564438486898098349588095088530304619739123125300406911099283834957449300170353203733288916538489469632190166860561954304990082645856247704673191817241167150871635685758019429721968577008676287236584350044939348626567314440044147185079857504964966446924943506229418778512246322554771193652058095095379419922109880106999651872365655121588334498785375938236187510292106946220475399426437897290392013190849277879537338639223280850673320123172302345019397741728905855152274716131752526398709689554606181905990514383491901081807850133494994572863480985584690039539651250353064369705500180429625937940444037999533557586330769415677641735054096619349277158749185612761415801277018647922470600095621289273570319816335664998450522331841219216689599053999585294872280675475278879727106738874849476089979727931177128249723737711904134565544881152231412057186144340991418017290602921406512753378255135078448873904363374962319834113275909284989617004130052345865815315005652339150161846341161370352857584521715548225385593529545711654658295902071553240885403326698084383090182439565941655529966517261042998478770641394273858636332442917313599063478712894167349851539741297278718400252130447968267253799696501015250701275620381128841220523029488495756130094370696619158542510793722259018071274049292493299093821680424119101695857925749537143378045301153779356376160786318433813097446575000972804470571041682113844094063592541969646326107999596075277502358940748362358980155299411432588267109471578003291440429990095927128738022428797370363946140938197391375031909266650553907887527012317976020499836170279489949087477974119160703223643949341086513450024974254366280255190842461335191953618191948443328610617519010477369824808522830683392389692856231026716473596717540569130694629785915567752362205674987557712485159500808224783537202113767942213650360030269306181166150203544346974791919900567542694677633505257603497813692999739239556467185698007742444611603597094001972266611104363061232530896511832381477485812811615800997477983549064282031270892904494082611527969361026509885580586058554620429482564365089998187922805676025123417708699225466907364610996883662560948681897849659770104162617003699615049031675991972226119853086150504063367482894681787643721637726398593245595377215947798472663078913928995905240952495089041607980418546340344830847520676861506223944439074635914283045857302568033551957235465515206131043271415678681708842733610585088741730417198615700121660113743478853563232915376545040620383480182311794233169845769323912868459635834810229340615597126668304615071937304012495976379548907307297085334462892865963950057216114560181654146754901836246059949456606908780053102190796974892678568636371072515820146626370533438083179120743684465427853860924337008766272725834994838866721851953928700954382679547088608504195656860134822471708192699540594351221829319534104289975554232121239609968607057475347152383102848039110534752720564030556741929729223401024387111814732752943235543542124561178957096724679582722584117062311710186614617083801470255756734407159851111945251406597827921901703458796203908203873324678132182234499824867526907390879958575936000910606064388081920641484388248883055309711973731448769350011870946652914728085043861902342112385641625548004553840307987217039882630330991393664972091991431837973015896077177021101364628212474858463429010285443324892827474646685910266759024840555053331835805330494903647113216105896727734117268260455010346463159804013103472238261805669179019820139193201890844625045281063243379376991560060993696892296226235650102117619595126905970272717188170544397530347608603696420964662389358822588447668500057769872442966962696633716289395679914284854753488828631640367959241553764691916562897105897213982378291141512404052503471882412309124526556179491470284922878053712931497659413439944232828547043807727584097540311208920971502939232015689722753643345316382013184476536158769758755827530111301638683143239549210634344643478958745113823948581798492379189000008563138332921846309271209889836169725773311635076617873705904939570277466304172079373352361331671538633157901843261681396963197038266343456401131292673005847156176702516401024872683795935875597101036192704834295779082644857261486955256684459161024551033444996290791712712682925891291464208477264784562818556220809929306466204551742634370547963563744782276897594383391758513641039909867074212459510676198951733416183135895891908174086340631379707979371588572061766243590896265146266573735316859462768998205554079586069971854450075309985823374447991903163882996222204579113403990143544473356668120783639385764655756554067874421620670896666720513719247246227712741155722201324661353075124667874337692885083374851012968776442919980412326160103914954049928668292393560927418373076288072279302650361930849967148660998974154704312722753254171920145948837263030099929844142517729425471502093648921587695741416460058088586001601825871421140620411160092773943455680306978373295867328909749475169919997827235255356799481385685949981859437722837553834941111929624915370766167187274909465104782088363017485594106645521030846144290546090748725322613217219119800672593769686172962023382761991729717479770289129368701610495662199574653581125937533395967583636210536896141622203870781766625587622304024085054296857961163055981705374848850301986678992255271861672913533613026312290078516664859829361335530996831813431027080414866781177186766249413125424274647288568892955853064148824213915508799846332518959408708091276749562090000107984434929084347210753308330317362071459770112700564102815208584384283306403113869141341339917380153110955726529463278139856537109114325904820900527757322322145166183591382603751420547029325737978513693321665490802323102966908551374957974951779815578422992518671067894012462686066744149244334340154063823347468791833361491941336136317212177259336502686451314091738902665631479298450347588199278141046530633049519392768473501560695323190242000287202862303562434087120744223929089973924201600420658378178776164763888618828560993650456304986842880703733108058131393329370581393676071018425975139458861546722012299392599809444965259004551713194344936970923061619545496391206688495671401331701512653082086770819405843922674411168922632683445138016193264590903219058379365207202611760295639145242308139174962063151157631215529766619698831598530291493350366372453309933293536549723647423560880561778113428734958028618546115463156715115781288093117228563111159723007894432064082595082070087834417523524565672566719100450649364385696495108372812710809290232137020863929007038541858607722957531552667595991955101821504872910775041514931873269426694027604838213543812892307797678449483490027959105526085782763708230418708138919747177594508862484851578342649480927526671614576205535669591246326739361101758749389034732320576174954515555091942067076495064303609482583221347804770297762220483070558933403896385774318614026511682846180169300183352767888607193856773665380670968954483978497366451046973019346262142291165868041670550555618495914700457602806429240652808173904178485824002414240110502709500109826968271519003205930306490210162169074215256236622255079817722527390473142575569726579351952878118906313491366966334483040469535314128975580887127766181010453740680112008337618654585053958433340230700626287097310205126837877840694875398261784661152040341635023772879888549182110853375346366693274814172891508028354572465136276348315135284606403364895807629751949459528583327556406423091484765898630728231208233561286180831934598114097127717307743123035457994439703479940420456410816586603783570619203657842239051083429362920433595676167102182494043142892659352946494078800306782986746672283335880605487115302095389379554345793097014739742286258695818232930452504673006230177894394250225393596869852840971171135830150658946648137875331543691440957236511907876938125746113772196945624197484201709310369314975348398940708152600075477249016202223297166423702108697346587139751288250812414320566293663878042265642745257762495066466749042114571704116557754336269285294641139349568663299578669255844298100820035609299767152531552767019499468595385179209979081958869397582966738724194912840897653305217027771189621032513299363373266907984135870101924488242987562125291414426776030552838749602080017201141592774831323195835912015525060330114707767129863495680737031710054826349239942350798944826401748382048420115608761581400403371355268472140622711764975025433702768302543674126665605093979087739432515397048086252654188237826871841656596247660892367185042757108859181128323535710230249302239468319254272787864709046981034047475153874908684016341944116161483738821489434988529493726195081002987350254715195640195372757977339719970150799273255750774012002390774179246272012804949411218075329420624344121327137416645082068006812702111235300359057091627498465717340747561641093511993719317575930620252356175050501061393592266420566798649125319602857938372296798187199245872168138759897324196487987044275027994175097863956929195519648746036102141068830205275384998799316922358153350883671147037006773035270553380627646327233596578473423658150266644167636612655756892498716256054719052746854684826586131140427071323345297308615346192067163717656756625760458709450492944145584655474866811607729334631283744704822954476269296388250667177297653673692792455983700673581661080224533355174902107070185413987616853483358036889490610702135552414675012096630148384776303215905381577288396540013209577690044335178992891752894302030850308557557826149007066632961586658205754839951640581704907383570846749388588237462900951803844838193812916527353531455716830272794635001325415232541107821967757529388334361390885788736949883468707764163434559152051490617863387869283463655491191920745717084535903633223789668080991851452938604439043921531197103484296960745314538284933083025125023492178175371905088241303935228593629265914789507655335430100436249235980688804979048420113708506205473034522962248225917448035058008531002565816253321993001504752367834255580778034339138122614773295113657781687003320320179740676932811532579817362860473947031366947215406752955210621444639672423682433194843836768269451365096807665529292371405004487817883741230118146229855870877604882847582232148667348615235238060922923844454160877939418011970813598032889001852542557854624659016378950713705961923165723034218856009086409321269351723725681913985176001739552525158931808286853817954038960889238171772828078617146921425277578418698431159964075473639767152588021860707430956883771525525997367568568429847447529514695671046175988100598078462744463701632660314618814098280759805152287083521790509570275751537947944715892576644694458220463392239299549782915893116509830498539923002500239589134186060622065334697629816874713063592591253475349405631708245675473843744522665637698159580805846205858747848697317177958091723969421891839211093811677338965255865621121732795985824129162331475752915212456428811475821626486021866395226643681159118108095366533664539535773259135243799974328694730138286816459091374933764485192695257350436155627664065443839594255281640414143343202467593004457048655302508903811930520789841834408221618590253320954828177835854874604832085403791305842024116966073667722460627977252975322797963300573648245747261867090134467213769720178568155649929860121139750998765680303760027704446567018990539148631447233116078074360323635164438782884523741654008149716897986869274824415815068757335624411777284506974797855651138067204848262126349475650726826020759490673000776781548102609472664434548951381597124928620823240966449179527806412644589761583801044666658283209367920241440834472998265508852791762156792871427390619685353769737592545229061184940267557934597960135952120991833625301205500206886362238664680267513911834092921687171838243181425988530273656553586501654177037738095808767279539334364556742785795383985630065520733709736061497178930130529396877204793674800127863306120335524960259053471492170057598936035358659486392032416847516355857456051413542063044742433749793886213283747334912043139130885728349325540954716000357577708258513385353359239727140655139158632360036216914196161937596529325720339846435529474209333526448593394453935680027027163951157984320077078450352348187440392003308421256694358509352412715048545541134355463076561492543481763345929252615277254370680789523943812567144090073226612147598836588131001504832497230642079370600923705284813344778359693538753209235027061392321890876496090013007237305906815933261533508253489922661515908764344224330489977965365428859497158202681867148203137793465758771619051768668803882664715484876910547544537704063043389163442300438917595861903262305940443474789650118404835018102947771781496110012965097372401676822329129695430643517261877986771009698276020968881030030587322221862544890763115021706747324381643562321242360578942056168807179968007682985405863982619307686915728218709285204088913214306481519827390255682891167886346390635330215270981523744646303826049958251991819605391159921533771604882827001555822480681005977649108463792118322194552567064432695553106000709162915925565768987866774057061463215686611107995772505041915636553449227867432481640262798268557145820190455002062820333266788748051577637676351520374890118012817883635701568971770444691438677515984717434940442493991256610626409916309534779693196435503961345132538531520820520442822335845295433143230089302851676569982024073940995273272541783047360327520906807305532603035758079051195123957513204974100942395683881438601562791619803978109583783994026729772123539831355426488783713324487607816928911857174958788906046595936166796267891060108855619996038407872225922491694392543143482208146830805825420622091084503080213268278626492170930679636533824351676380558136643824478345352918971921723071193065080225021147076450214247896298342877816158415006332467619162702742353923722257305043997338837033514672626394814359166421477714772779664501803410498513556089286271864929637657918361753080776259694602717156560681120879149583683128264619740595664606405202040251313784833906687066240051613536308795876151923824357462353781138222597012158518807490334385713295432936737376558840255637441000845149694398071701883896059900137424687808497023047971831284591226300997696486507218875406082389614312234833457337666543214771674982923773310170393413660371472975531001738449053021826483066231614395233908358745782524156200009119432570469832015798659437595155477931704152805046254024824845365787025920605857500169210876364052151826590994108028962825146228095279147946555185817833703841090825640171092240050741795821603713561394927228186616742874823665722229174181582974995545337829517354269098920973872820802169619829911753410924820133034344176252123421558841995436786861509265368714502470212512307795268151605217455932762575954394965891577744388338901881018314198228228960554749467416219813686822329475640963890239831834271490533579542078259918111675650877500284538003349692571048761047831113724646440524385418481345596473415655464495451419851693452721280672409794549747222814210008330848900738575718819551068304581783731378655994023837487924844466022642267230337690428230286611163666435945444993671112881662873129978576378638669583936836376390934921070795349654862604913266037153541879291273197239434300320307265977158943968996195768468906660050635455781917044111121347421290656501263263762312273244525702523307434997265062494200311603177347701692817643952058774176268293672495111873621128176444510854679427378070652242836403226332918668730164316564238124481666560665234063836554867741891559347140820742652121408244370009812736324418115210773190446028989318437729268057358991997957761891258891825564007898947253719645403759389673416296398879299294037725536657953118386594873685288835715304321608031813126421432648111173838611104570270588194204413723438592383741612905153941236594075581240556968311605943642045668269813340536211608048058008909793799771696626228919087266891734597337122257893177935760706816293228253473691001127137450275077779973974691741367466821196114289072479286976815339301810277846033064477384756487000338899151929737765539134775647529963697396822009896276255863202013641437597252993783076196979187675071325299731593122276311313462799515284050975387332987965490174173778650268475824619328504115610619300307114469165279318316620125186962588807041773330499724716694020962772870751511237060051560485752675726957784938031595219224415337162228301934982104295893381113056207147367854253694024987805116151779638400316012420434015919709244925274334717509405009035927559226738800594309276037993972744638715609961869075925900639423555507313693731195720982033571054142092018450750550440496015334829501288850342771155662182458144787900233329301431845115174738946593039377754704980791464328831387954163341572722382732865871873048085444392424557583739233413970015350392605824613764515808190677368216630804791792913303830984704139904151979113220821403751715896958115682644796568679744175183103294519996114427720944686503511719834814418950194786637473534100318960593354298660090576997942816984514937602008122298090892241139716800111729439846843626731755018992856485684998142151270637541598475760660168520056902957811007223214885937375125093164122602137445487420002665885281450832734487480756515759372900421763583915137394608442241642626674329904062408366880718820548292328945253795340918086496007830027215341282364039747853384686964598280421657779999341655057301214543159510914927886861246945623307898579895434177596422926423717398681354308834462366036869292070670943644173900711420942624017848621655736030138573146838535640334660976611611769039937867863379228032374818137776646899907141517525119735019588372286167326924418862772908305730293813096617751705817313617146278947754256137133355616075095228713932399047950106476725903695842240610949800269916280201397457021525141555915760833699439040254980853013502019958534583818527780918462816217371130422399495144747177108000589483242418232635050485194481470983314397220323085581477772824785609859152331020353626547949591800462298920672254276412042619657697867221557777019647220219737260947818875735705048474129396671481594653240912352690355563305023819952811871258850025878840679308975585946133484712634598372204902671269695985358479498681121612593932503009200886156399490943543531094977195241602471410074560479800428092942255894449253644304961421885031790098398268654526079164918596624179734583250252363652133561052631070455499858399490382410054309760463564613349579055030632180462811130558805244069756448731780058596686670312693411066034493850722985289048021490719984895995491173770686543929634504207056213289137981772359658002269287087257526924009387770424263067845368354379918687552577373668220476230670431214768294617163567070086670618339420690880036472964793640927944207403611782392708617344983264173407303542052343156310529551666911490070352790594923659511710677585389389125770083321330236629429353777222446116613328109260117475318497991372473490451371921175676638485791052901386476125047428843820094272915705330574721349056734265074832601545824488941062039015989041327592427478380482480152062702062185776119227282941601236967504805889148828605115539515066032181386867771748371881705914097840133807207040817766709185277662399254976460810863633509235612542688350341414775468195134320810823768559125490156815331511749099710058914186278833624585206963739108972186234733671496402275889292570660914537268894145662216283027005983739962795177021757466389697272372259526262196063855697339926320072732135540352311907962697209700716953528006126389686965722063837370258595070083238943818653191481113084484372000748625309426206599059593860903504113002403332260448597011665319621999838142352923313906588926090035857124659183337528514610739925859712103443582739702566498071840862268067797791559130106382343314563175326281789859703087191963296073866033567682341691067514517870496822663573509357965458500434710052462921182279343823369565508250503726479760742228263364550020239616426480673865039315242608484850812701517261272152333608719586661407025353780448001299359639318012752774548380346425890812137185987327623792370046109799750619705455208526321660374043985260841764989643251975672319497455106440991450101980344469384469265869553797689834435727250423263199144916055837563267091410706014675227629255284886876580035917273900389658365588442398249642266062943494223826799050301509935516248866369972395207341159926631022351234951439237188568584632442621485392391951557014369023247494857347123853610172413757829366369345015953132384075079007785528311976285881523076296513124649699356739988182124300038855359154255331498923382580185295007301984075788307948793394726900826095860049630864660877812075280534609720666723656967174640906680411359821122351149559944878841616125034095471465614743657349207108122665384234500674444848790747816097840143557801082386481500197467953700204836651581640152765957741931653853019126616799867258465496323444272406401005362582478763702832165650524557348226192523674381410453276106016231956871411532994955884334861417618879647931677345760293040443648802761186017374186582430190261380589865454833855632856676290879881793406225860668361587908860229668923912876543989805355218244551517616482067384438211773739116156053738218277702031514301179275429442202182437760460878173837459144511983111208423118838691517855546796974762451314561275063544032871115927314388795406356690951355992241420134335726554148713291637952586790307019144403931228803858829136795120609703462869260249887991557880124524298683257629871331461902514138238144647166458790881016864905365034793047469736446614503966780020916696827248132619663112805647271122932200659371612147242705807797141064636224468883187061936906699393195492811093285853515382867395815695627733619033897654778750326674271511293809194347588183173292800437653913456539535380729389273355193837625030687261981622461225251081485656107447574996547343568279469047435367858496459622442313578369710121674311173535428017790197857230041987494940647558195275121903490867086659125129442796850966901006932867874943070353351192071025632473160434271964564545507591956769649541121959588019552042183849819184556942596255092511299843889749850584530571954842540100287097542883396009513346053348275741458986446603590901825373661992011982874789511577980584731336058942484657624475517105173541926869982576845363715393406229267667304520601513158254165660561536286397069984661720552540419237811689099104771464087143723178307757844544455039547344138865775665289343857552128347076983359410466625031046780183203594061881117475216928143483811021622911574181517236596290485674593963644998826104632167989736643661117078231264259320823067756863471839578617183729124543502645294021674255983688978265582030866252912846036672940249328286271107203064373476333801946935128368940774959154131903701994532015137214609465663551336107168816043343730900352150567249909108146838745654594454106345579081880522509044601986185537259141754281430342680952691801655315171350667410593783414111320803971386485855144920385883591090914283160536499755946446556237371337992330491759881215537610802340775810771824492449406494517046116618142828886398727613372261505047687040826344436781337067569202829598112048091934060330002663786794598675731157224778194252471013084215950390798199430701858966034600272763433367340651920516327687373640939363635615229219944655959141306675078979923468450730137756021946325103083327596983809548588031881870909368749148045940384346617638427581113290651155013694907410396922872833049643950880936657654846701684796065266315618251152714820468511165209013446866303862310784348497880809563115640885180267403685933059960581652093633767285716862939795443085593649386995485273285649175054517604925393956212865976761152972777877476739175706022284452602041661240245545122492819111375392612144564077994217834680105896959439479375254760023671991131455163273385125866107284165067934238575974865441301356040612628884433818288905840163451448892730856543093779760043266328652290329905156814930570197675614127930062385836976280971941492160955009364196155789614736103811654449905537045220412381204337198394859580131732464769122819169490926305741311660327720438199785160646935202310010179053856695803194810139873739347307207087507017237266371588200517337457799559998571367216829516735137147467222086443750908535796376168653278564081010782833948946380419395563330049127089621858868178073505491212324189474394010026124402082992851454382659083683640213570149770131739138676446998227894051342490545941491640977153997894318188616639900456579209770016987080810735547509685117721018759017543830557172823067664849989439462588101758195803426732226950254066033865152385722811376340030338448917205746396978900044348854926731450778024001496247106048614650635678937532801615278412383596610035835275160418424922957120298206147315900994066317089405835120071090128956915765670392344614741383266904472397682828948297058897499003427440287807872586974743570974611317110108607259407287719971094293123318786335753421114424190199669735381434865742949957753290026596356748506646430914980473267124107862116009322003484825992856070138305143029020676946637093240973245490228040932374363128037458363969393467939716901473421442088018430652907930526368029691029828403626089683594271273501813707595369354116621106573529136978728161758528313921583033426039543487311426086783439890874536917301961362236076744195782066093369012573916863700513262218130083850359895726500340182363673928264578013780536220823491076244904927107763262582906352901424139571885488464951140647683132568571006105487989673661292481629422685339382315687865862570581348945985747046686832881026196230854595237622930346382412805663199320107989161635138205543865021816029175991278584744859588036422880350764524574993483590243373607088479439103848508122240800958286868327230806272974967500481850022749484158953892986395256356509036415179378913564188078673359062681808228512054532343867387886744027043976564407261209348365062326127302168495560488334320277469974258872402717947312448195580831484446978341901243207081975761410086793217505922285790459697263197937463100600848792349512605682916441329235679978093884749247887622848893116765628661389551527955402431394236233173512544523011166604342677847657236178098679222806370366370614773748268132347892022272345174260657197604924154347931300636764596471137822843655010569470252934442983537944505932866667166263810507161785239365081577839001689755925432453638844380147951113533593102547471853539127468438838992372809132778840517534805971226023322615768586748935555406526483187803535992961950367080637201256514992271273529211879963884034060270289807808850440249128301451523916293839231030602910286492564361940153641153751457158336657685763452526107105817794468471436583315807874907723687189491711992979099636730165980756112665044376610841089440036936344962179395988549728598722469969457228604806272209036551804240626665862538914118175645298183291454785874030321689596790741327442932940813886843576285419508081031683103196438363026956267131390350944064150997141347853794384315707897616689481327616937975445390304414636157520485927107469220322596996707815575487810656101100914998235642145698382577600045108487712254147353899471429082712695738118059363283338894226013856820377987149973415406896682934019518721661408586261200874486846756779406991511832595820968651293826256720908188814330425265690857525959099140438548058173899594569494811845415563642847917177407294320261196088983814009106810894087833717409632869122666829243246297133933132432286797108274720403825317810427200756445482960679713057662383866457412001707460946865041641737742133409950625108386737401876829555521355871718955135324200828017135930332203390521587162956710872721253807391302091767828888113562753384348284728887931641835332375175144723329505505001184567356808043758809919791247215553971836072774455194227383441102607041243697277909963143319469767438803995431994921350624210911331606794741714523201911090297671457109009906023805094529183855825937374025257168981322332955716298353657469437208379776777027424651250929961541269743874710541230534963702682213128728813059515845181570107957758927298090316372089682508455935892180150810899540525209880539733834284706710767698686539767938127734475642280050686685731300215480875286976154293368088057131735785108947204080170044237279142059857503885728200401974752418578068268302420361449685303394572670370378624352180532002873098649032289397261893628089327473939541633698233452664692489506424572451768312386049854304796213776691409145815224020671093922903257416167282068458062607924238666909580449597811685801849029483687937181182466660455987949832329818505738202257401891430217911244425016463171629494245531042278068999257936844098460853270290473916862835818205027091367701150151702392231210819128295192944177363061840106064760386476774971883663737729680214829447073596475331768741055851225093353570514829379392736198392388341215556328815672542805420805121063755961086228808127150717055289849707992264582438163592653418386134793590922518274393406609928764042902672846635123738604148020185460590390423515044844805005970093330599050278389618202883738285450698629898993006714046989467840221244934754444257577603423390440002122627319552238052981855298638878307404300972206819986084918740334784011719511124728086418144709579606688367568959229878365133517256847645038508093531543343818574646325749753653993034322703193157018326987673236894640047821865223496170309525910836063050086086091727929879144025120866236855014745333406249693312678415084178253468618194169381398056876043295107903076660399005634435557057133602774386957182204195939087701515428105386989368537148814820886159042127352120240595990590556384160634046051547588013615297230839297281430824063160258571912214711598379963183797448056231616331648268291117042999506914178440182453706148555621005573045021990161870602145248404240942433425069172273295653613797610333594748676958138277344212188910375844172887791248947017523581309877538068734317368440234542906157335122223023001319033303995085487181441560821613562876019939157551450962633694852979803712614976236357190341199365382636681320106761647132848033116507780585973314708587242971895278352364314897537246524991774660976226210630428715673834018179274991162984675088112968162760554147406741596602498633462612699212768162313505190963249509101329625598669186804563907058050235128858779117114570545663813160958216492853486341451984215009028545117083952838159406404783746102131650093240832643541960942768293346573068366757902660230528935771791524260240731235931535226551731549097010974389731006449091592365282532548413889150570778008401116496615404682093173077715740180869672374956911079646659250119652956946290573357304567790488701981397778429453817091847777584655562481519898219836566374809507424553698396584038748530182609642399689252888087168085239506981486276465575582415056006097603299795500928845951452056558388390479972693930732554288776821085982606409261977099600149000060352118905782899607865620950512669048435418406928964003405099551132986421748841148183577042596698731770996534819207964189266284235070623626522728631739048113245305405147380904301615674010061738923521833094824027506669565186229957368735710866023519360295998444482061481606128997504375420050359852748070019688616454079035323153864849880490904544596677436287435262112662890380995306333056527454050171232387217461234210270618017212273479397426816727776120848310792295203618439995240235741848290283331972290844196663965337932300556846579222984646008497135788593611048248286065488641971264378198385005085729267176997548160389983514309858514619312992388377775873408886556239871785624723920683516167559336716415330411567444174436628705387901802379533270392298440519572543145384055656062865195639954988142989542697544882132802257203343873254701280454033421897468369338258808409635632817430308488596863827564985148323896105711084877867235594654115973091244826163371794988004012852888116960751559315528459091529410545650184040215129943403888564534745503122623305129107378264783780710983692515830835684810911905798866372230674788542681182435294652916312890825622960268891946309373152617146806666229648337463434623453895610126842360515731919831943949061549531706785502173711066043979444907241504193207479697174474617077044642090602038396424656536817093752040981512393258220233005577580292692849935303806523448753672219594969239019497777954522874661523391178626774833321794645949573339296452063565783583750625286730579897730163502678201149656109939581309870312675327485412152950192876644498560012909273006879890230286143687844754378521160534600663590683738987398981729661334513497017188483920440231131568628129170951938448238176055975565028097411842028510040759046590750284245848530457590494092418932918634328254111607551498911482221309365443540105411283632030937049702666763589711052530986012429803150544377162259538843135428011704838667552220365296473420216470239731569696541288125160106676670639700485940473539293044526005573720382506789235587367966782821375268642037190078358608006997892096027824405493890531352155116793593966073037875987353323925485569546028056883333310998464047674271599034938233309591850457154376358002036822029513891231275967611325277283062978138314548581724918973696191905930022537409081232998520184222645114823364029709798977569558199607896579411105337793535563003070432835759506760251316244071674529017114422857612029101127830357812284524368341086777410508503107495919034289311264416566696696680506204623863797991308931904154044833432987433641113777064202344149244693113214780255645285298129776483081880111768568586118014491763739890878239293900670769271294039792444136571348077868845329641177474513708575516272696616450386852977284898344832001785128580714808789062509602784193038686445741453123688941462892453429302374952811928643629053980191446135653655329307264521787927396322485474711028332474070160627725966536322116881568385786948564861274950940703186781492370690020447969603529401425203422435874101257094331758920809315759405626308351576171671238744655085507363913319137032021661584534892946467677655101096547545572330574469302381454874092147178461008726893405688514592034666673979141184283092123042606838013408722585350097156663006122485959274996654386004771955298715460450912662354991131328627930462231468179368484939337087149527217560274198043277615467839094303559945806587940118539070313612488300747657244265600257878600503084040363743520035054401947537547322544201423201926729300546179657814120929335404524302839185632310723073938026606371080607219104114994858384246854142837812203613518678568444706376963687937106830341296483912614922486123913400962013699384602532207652826858946130015309903873149253090716494365440693187852826833290037377081307730273381143821100951220169605630754693673265533512294797368021749140075767193810604660552632467598431649303586434240776042660510999112749602191666148559349299217957199369188399188053437508233781485510164300631457443082819967608338357558830908540341507052313794005503956105315989985014258147637233279929189086792106759966311803883581431857314599673493456886887621156825511652654766467640767894400040997008844550562757426669563700592098533395397059838810282124877321365731464065866315749758465263174493321036937482688215267569040028827824062280945854877558382750217872803877304751362234784257509869942111663658001363102228017337921491333633263537244855853020836794382009439931760077371879888342597332299493681302068637525347320599802507483068561450530098250580374704316673857865446136469683414979111669442467090915718902751013153601765737404152958672647928471208492175519857221018171156179827783228421840644835294438874715623834274723879069598837878163830980558377989412724312425845658632029591431209368367966390704867912670323962954587669070523584679576448924808454329803309741847881774016139714980967991141468448850828783235796277075831539098021050177275129072267403653533890464150632750044434596966469755280537476338998690433499113124949002597005720227434083056101166480845568174374486054004843700597984852911141682304565249057036562929485762077163773501446263764453026997468984401463149259636968940638511618894525954385370204851495420142793750329215286896846156682622275529967407626050022288481232849317795094707841931928326951690380537442746310994177007687704831171081187364880189143836796451270188227859799070895765954367224974601809425691190721675099205278025061102113028185145259952380867145897364709945346848803089394774442360063832621282680079532393422435834396444443471635923317262341003636041401516209918266028112961441546557169067966143834836265890724815903841262936961280534402070113806692835586042184370559410928016965887380643259837917320284815913450015573957435911549578212371830000468744468826065623990836837479320897673504852769382276626275560543600162651445985109119458908190029018329301306783832119574957228158122692313980592850258571972022844815530166448795528699152047229101916756849831439262515762683360976263604361808384745958299586613404101748570121657210209371265573156238772476343350664065315837930301138454291616291639600958295250462661907107568484001515219219357022463050480558511715315893249396565697108115623774652276445922655098647028682799598380245399836878577988698875716712029267458109119710448902386055729522728872838494725492229457482673453340795524028037806271282443634994369566427887594902742037856428065402745952637637447008393828194317248398327441003049111960291179158564695842727545657191521017638586033138349106826441877852440794836334174338299760740439335347059531235676213384328899694655534548736022926903586823050402147666757133208506258836964519339023708138684655402975321682937387701186799357055405525740685851184949081714626367732096365280997847525559154424342664686179622501457489210583335535881826897094369740195227076230274879717304657451011740205220134139890168182590601622741229620769139493214049223262091299870483698717007240136029926157949105832686149343441608194723447723577317879081194404868809140169550201796516896350397049240922145962428793501545918131081514732725717901190267486382889162089595493808064366746045029666354267272904349541580291411381221795897339143868555974268977863086116107473605337489115218098068123523062429872179287605079919972946106239188256986514400314649665761526036300893125875705127059399241064526851432369014692295011843841102309448130277837673879086416151071981394244960941741412484711234410378439374316316510589145150417829631517156191797037611510903939598520614794606784894370667819474972834497644605174921960360496724646181197286731722167672364780077161089969266511700116505109224514238698525630075289037628266560079803941149503695400137939173023368322044820930929234821508603538317655199760756340766660289404632826343165303035091699486684682082623566965657871540919182200895368563336739957686515507818177132279676119844044753776652320865931865547495505263230288885426629192065253094161274797048511661968893804073526563228390109352404475882695646600175785371615711440832147520207543531205144897423819413725930597527935508331961350649268988870838920062223291120446525563243347391320292378716554157814216217820949662877609349455321100748816436250701816066088359135469265567109636901909152310436148327529634200816182754482378283640545264335800085349117367416262634169229871139105338933926262956550014501242080387528081551980447046772958018133653837158645710312182753260489087508818545042817508888289057434096961824686846593537550001100160651027323271027620944785578854096960334119649874302816544902437645444404868822611036470546993350219125076185488806914999840105100782390179688791891866076995636469252184821849678646179068309520546365473641402359380619584601108500329640282469366293604607421076711908635820125412299528950297145137879389634138124421793276808033603043682204966924332344615893510514127837634593577797202733389999973530524173439629692148727588954484965331875505470413304570148322573035913416887057479807822218155030946023820583251812076960566509822945673112642227910304186002188556594163306162849165849864035446767656793460799443680809436850413586869282857816567712953645822728791536141093198108841205567895583168497223060952574758276399650335758782228622919402058301097593230515080803824564843393520173519947144919168881468276734296071028698027518099681558304229112701330051890452180691593786746759469229386211145593124485631277348430842828456522576106433655820595999242452223160653681707789106624351677829394230434755357146966299303016785653072437129140115163961759690518252117390474781916465702488481335024345534231677520944763999680561976843225500680748371687200508114458370069974058749526229636840405680107393437727960826166271109643387482290495914298923335224285990898259390366384231065797732083261023951486066003764607033995676167762723481955187909088785038320710523299174324712913827203550091343984843184139890984731834879343141796006578560260220326215732011779611744718627874798033556509584510740908411453579588868164200228235198888085911931037052612578699093366588162042123340472686169891816609025780465857409741515625422610772888743502456834418435811430002779966725585380765413247377418691800257344590550848072212468338676274299272547561387066797980872360678308304606070765461067612230999601801466656493130142576148187340275051785607324138661772060443880563348470815482752522183421330841342644868532945704039855418654861445899764183930781560147318521868995764121004759296426371375655160273412073312875855838290312775295331970606985324638577035719745860135336331529411613431733981862445737976762253960771935347861315675992657998279296661387436401705536918751190070319257889763891765610777234272680001605380563817865782977262240675324710419405760802389943584150453394940600944754886505585775957905261922804587462658180801244107105996149004445368846149989599150016129577013967552942170319096216696995299402915031622140853435412054266945699808556431601906562295447572134442273189735276160717967776744196445912376234766081580927884716910531998887152265488667617006233284267465560072709517967655023266538721667736175921732899747915963701812123145108912300472155153272192391827344982296256416875125382800491689743639607543080714374213169604233023042852572913411145709976810078387190868719685373433723573005764079838812782240128171963293520667620257796787522048457366373106617863497451188457925147418554532336165962158670132475963184552525105519848631147961366234954823642510952123052333852262197268326842747808755133761299814489161270443616768547676030693645453542728876898540023252672465751954227464464448921683556807403592261545486587049636414777572665433920514977190081084063221838486094037219836415201395333434044623519243329988333072737656015851784673693581509282110600730934545415370560732779180690719172156956912744999465056461932338307180611585274804264421234444897296868434271511683095154642694433397041228829667228782747688150843294389228406211316822929008178179317499996443622723614509587001621905931473542591777863598253188001241381826778040599502654600976341523740860446385028192074056387151860568981137570424323152213051397543015882560374860415315422845231522178733148173818720608278641151619070610881008778253836546899474355300057504442833338742974587552925529077687682011711735628746580816510153572523168072082410724384179531715745968138619121698804231996638616033042054126399104931583230956794432361022752948937727381751480894179579414032651725446093548273462691910228545075498780949950694377196111205718354303299330981369866542989440891532364315098174889742991649906176267245771248660553206498004462310315543584438663188801273298613931336242208772004240172212647845619279576597521516740228539555117434165636731936367010973169330473577660484227891118414932073025527121990831854267062900510492778077045290134019705500684504116898608209678594822269240579310167370144419581954936245562587683404425538509113097153692961062582028599704361215119774897497532400825452146361786965609484617797872045487095442271069240205211951663321653961875333935604839869237849120188577851790389932833813357147228044034942685171271991355366322360469220464926136938084562183979792777533482386047730069825056213534992266394919804893798126869950824940233555411138259681574435504759247853976230210880498075182528249580420059555849023947329360659858246908863908625418170878654260541034651112611828296796283301782895994942354498557041768271227482646182188057924278775408497542008496087850507542991983280441507265532610602403131548854454683504521660419171867274090798032919999925560941625300016858398089970760317192937575669419859337480283266747938309286619655204936142905090829840910218275667356868151991110225457268716796272616487689814851914402198328324959507322943153417705181718994880795420614424547822589172452307661860003988748791402974447070900225396929067995093080210727931112006092405556144853380498985811992567506257143413057360742961291199963517950472243749595256788131517209234109382982729348037574415573781466283864943635615676321733710500007999120460204586502334044314492582726468616740940005426425059893796920506210564714973449244189972593545266330419815316145691550645073648295083291205872818911160145391933308988656241539461886398095485480454884308392984383150063417011118971991466059815865670385952836486587706714787127233427965036259683183292119834044060160154402417669430945800505527009008265140085924907976179806866711638489313583900566311683288428222212484594840523028403614232627799440271543336740022380900626126763307411285310685004646878115101915548816674736981517663351248999611914255552038223385193438075130670427059175291942362862147357813647710895671132951065761563204017969601190622143542802814196722390784429965169050229919394725724109997602387229599120148832591320908622820797854100960814342257848161889029261874437957076763324194072448891566158088516421534487487168743944005004189029713846670209081346733977066974480983558484995010144748915262327333997598347642020354271287528918000299578201244873744852154518050441109332684260992401080743514572952335502699431954694391084019346330127990255508233268285831971287183920462719766911777876807118582033902918850936196337982323639657496640384002645928715926530153460296214263063943155776764797074489468103357172553831961056634680668686911797563369031900465443553081885159960458924401322450441191218657988153309794002160324303036531036987881989005542182000157958621504050322123795391752369844735989185728862668847055677202488711519192460142567453782797851236963903394494685168852699328570719179543585693333707313963384562145874170172859622173269458034623956059205582087050062077049928608230651027365815070762312577579637316567162627809748602717403295285223631908350328824852035842678725962624247999321359822704014556802087980805289161280182346673012947290669862868579134144980267573951132888504604698808180248560429336415868278923009868114203079429666893625478579478811870571120473361042258663001843571553858083809625275664314061390446736275727271171296030816587083957269730840491496615086183324298495780046691808126694993090584194655738810786691676549900310019083532274498340619883649307882977045251900263466580780075596347093626566222596922889010466454895593174216030593818617055507779532152312130218446843334366052612502927804058596914749659073793917257125418048297303700229289649918820433135088034007623218689773496473438661226654770197206648384969986402104352213505244310905728100974642906296662628735273523209572183294371846074877165959838433307853659414975578193929390787749879711240429826267741434672462079766513635849631499441423835471345631410128726608504793153699332579565715597614034114635677963900049177864604642313572743994465036474650380578566902432304712482855945861234827303788600456163497110720185922719181291679135738433490997518829401568463867947724054648119179690547295133877525489540301389180294255096709509731310532681194104364236759000781753260615346546095919716728815144785325740737431917906615999224289100080431819408793989283819554737761666349085327417247624148546768419993851596475934908956236134893651846238663454070885992186769971947086023028795758141013489008437786701993685824843823487844393393223755349722364403271979539977681028924583408104802550186246669527282326908539213869039283618497512662571687458924623577337874627892254726694976048415988899541325919655959171227566676218379282764550430124977961923592677828359214365053627060234866388901171329296753802907358241687961231745890073098170406217870587560224624652410523322507339852852162731092882784305534838211977470608676662170595403584623045146751054065035818526543069450498365411853966218582381318127312387898333123882662838918892906134627088932983859644040173257029405900606051915780227682119257803575778581179107628697495433521087352447739326001938739239997983552308871584655157045414582647274411944331383034796722335626654379722442217038324226118232713860085405743543149105377926385131874305606804537163351073389032748609311284448125975855745425545281781039105666722266579485543258711140236562737609786215217440952681186989214281804771160048566859236690944545021204842854324877252612066510242095495978291184066862118955244482146539167848664371899047179782199136578315904748523596116974969593132459703009778557134948526813792258623876308601081727163584828150698898536686149613723461617913256166045009833822336243944618597196201121579000580347401765431554503958423758196709578141321265469356646076668942657396468615565521244256975679606379438429189029660362343891700748834995945177788477653386012958821868019972796981585253910436434048291249798863382538831186638823873211701954206058067027509834980084462776788905921002349185901124726645373604824469941591794327690573166181386813258772659188455615118371081993547919423219320109068278195026654313894643854267878567936495648363998248766861093258421603844143467418263905956488569198757104143094948993788281125599374176752147524330357428934232035950027194927196210454476322380937789159915446436436359619083174582843054009384747974825922405976815338804984072281580149075518797719036883979725256842834124842428166967746159469817369805429446633764980236270464280654665331099008647997468538014921860211188112892784880075262187889893245052040573736907965895151312386894910875054981002520731650006332538502743914548823034023688827328214226583494240316102259676138850242979678648305582515585168123187112652082751699566552772911707930290513965992224195832947800912149320953506050412965432337320156985513540600091965370464561812408697171144722794120076956653734236850328554139374923394951920667525366244362975206103891131512862424264865619136288230584913603839050428405954271442643615727603821615454934993638963691305031169527631283576295713650160783151073843140443528758252991324393708872877993044212096625482018083771315261014382807922207354794026757890490385518324757322544615107709930269685546482198943519590684428916014422898587052618789094069543375240436503949944353922329206058892163218694862776564132709574827908820807453763083005257988286044471832120983167666114295693172857382830249352959447150126439943207450013362744883044861245989788357459240760213390436361446553953924738590997937305952319917003062771724145826419816202248646345119644895444441005968970016696440128806579222375914750252598918383267081774661206186511428152566460638909357470780797535901447804716130096312284057135510043097345992729962690014670271245210198875994737650257528262433215199486563007327306021940998259206183399368038487169616559566074040297901698443307117445020533789207829277788120619905410877061157794231961076148486437203475055057418137928294734137167353554073923677879494112839624552921542172083240096110028735536568878465811393145129485130434556922267129217487034516387925471294024593466165369518927412807643053986700933603583250360760316371929541489593909656275485969321068943221284298055163635909627447847819942399872566771935471752661050174196675634769932661067494582872207960051111056183316365653198263752014304094483951593188652540515855739906061984633518680471877474835831637929857790427325644847778018729724689303887622686074952688294831503776163088925362270560852040017729620446945726321842851772933114914151601208602188212979691759190713631461777986301276601218656147897293515630275009135597042463124180523505224109604962675220373036671465545004342655849200861529844775938971178375387108753298501977363036638250143609254479834736107871791460089575585479767092693846920352046012749620520890858206858491530868329283061530979330819312509359372153565384291919625559780192828760349173193023701299386030426278782526690831348222755930972837654472796667726308630622291558429486672827397151229523914590962257177965198451114188755830178704275970981033061625009636189796294692606361676266641278856125172695219099906514469266280946786433437265061101400626091611972982826155069980511851025855806277705509252760144864662723419088112831710818933191982420442953448818286495743456835691947581840577910292716398254637393842645526469932263900043302693367699672190049166653262573762601064159671409890563778687768735166372843804462119464551288688344881483161935289666894720127492490738057352722983523307052503651214317263731350908991774862206494389296040080952116404672594350468790697656821128706646503847565146722646689878822724851825041198452564048278429735797002415509553478711088000331435953462945737204855921963204380005951823352252228076614406700066151172586869876340462660430678933493392558390786272154895958068459444560410165625489058774162775101891607246203301013145009520662763337051507085859302859147549754147367907419247240044883775604689297963385399688960690620613467394434523438423230413440223701367751251179489368738298325233837191449632876234456904972834054503809226064333725751971889357026637183351934338767021200601447423772875904246905657020083709802770007150650349200077868406455394252861553057570515472565822946485811198292932316481234316341498156231311097879990599094047988509635066335243783692314060678742786118156362868565060083310443316279975564750065730876468142098233969121101004511118331319735589598005680290342221729445006585587644902820863862822537727100110838384713799497459239263359596059344082227427380016870669345935262803698688946440966493027583101444634053949718862237907299931346064985117727609919703264850214264507421223854520315066437281791724136462613623580620664636196193691031299225485253682494352903853046282247218289770087275135354472871825127079752993851279850652663224486584183549749220817695625422747518908882937151736735663933222405683500624340822045043830815694617962881245932025317675407120856375016631753751705248481718385752836682447145925469127761854948168633273316613873556247052066208967747044558704326044368837965047950921381107798420925759921531081502972878584717922203863452224524933038183749095538515973801499489363512590799474825700268814076753676216036499634986704818147037359259682517957832107114554990417759949709021596483018329416258750203567378639774191793294840176005230905464892013568174978222305223670569030964216989604201038595415877075193491380753273045517164398430533460186601147623930571525414568827036834143369723889032501152897790891830699920076288523892796088914759987033461283270067461220174127958240630764915677210400611265126474017092679543880998841915498627374020697272544838101170764877100605886851158481045097197079526415347736228565120506824303889264759043094739031423969101883926228899628213573180562943239774077891445179121174510678440338589034338502793044860744970093462896449483482069735544312828064684268508862994999292483446475406892059318043389156640847770484308962307864512605023786331489974392386883276628058911844707616634736930651502608671639374776506444097533549756631095635777410555459490797430812677882049081842174322369902966738233107290926402080529912879468628069817122667823324903954222753338390331591155995918553627722308286406453168342672660496894257241318932449050482638733348188152338875869423438803303310074779487405785158950424570070585043919287148382335500619586681882606100336823400230358277723743364338814580065709776232062635278497340099296553479798376675196025842641909282074434982575360886222414124611262906230427023744838937774478187727264957445629652596800657966993726696010546029592555970965702221648448646046419720846685131368369674846342732896269588446875610978124146192503035608749300788460444110437832423249489398893379605538250403625356731762740749733341914087803817095297990188114701903911547788799377231137781005499739107499629296087949282031943255191978206824185787657116147470076767799528054339793056942536283050342543203942584068583552524690399237083704236818646021648574869283772381730927328743386238463960314372215813581037300224171216918310084594275428134699223989238756101536897716574195200818427634818816946302193667546264288050221878868741674869446722911306340176561625111797450568376396743312391697163555999699723697629770590630427712496811434566656751516448816055681293807388274679053637177138758826758286340395828398705302266315484971806978211511722033601418592335607260457001043327625973825051699740106512702096542504127599848983637450348910022807658434924875684996807300145307109181735017670434777503348813863568843568540983036507820839743915803056561665802019000484975401213932594962145878200222118418559943942726612644382871216018847624098951424995968612245860858669033566735452875456650843265967904909309310058916432556521079593421779921425452131724572173717343042933535478196213716608004921039722089704890535056776520228286265654813395037882407513084250078486013567409964948282295559324797192640024657558415889696936634495675338539510376824984030634859872521112801254397354726380042778239138578270546129528156214924504474450792210021105779401988673122479316029143298334086185826136000326471731100463308421438012505896956485028358193280611975134777235561851899570604925415585101992387781067359249838683300747680923951870576794624049968207878916638950633252720460574920402221156255389513213175737014531609612912076632416471934041836602762273960122036173732763090052534893150357925338864762373931074202127868291446485566784135546441779516991652485392669933294119829708953162652447658598245561085203890910085099274333222199958619110543481227527007216908103697481503315030170152152733655683787880713672974547546919412229570269569706405431307143695654550851493686545036225916971404271312623718124835057078817132723116514612714584583068688908468034321115374712520808871402490097626424553563103525899293645332758085700457464951743931217741997495732659579963882674076604493582632697461852716287341156981116988441927026146230672877295527835223958996608692580258010597260282914528970515973799459854704292266355702312245700768623532795499205933059904871104624820795291668069238517148641696943149788603062868937577856357893145066760495313947366652357437940926357285886298254712494266243227847523045329036536468343452838571419458777734875129586857370804801549924686736333494645971844345014310426634561258998135504346032509733373489078764725114989392742400304242497711905626283243472542480083061281902251615568614388798502536454933941177723329878652695513208927440931280758221019233008626034217282417927129728787007551794277886565544674113930381508579246335036957683359188497946016504726408168859901660892276986653655467736646077138274173829973527714191535303084395940448796815764253650393160544383266869665282459676510745443689243258945859457279386395963939409315970275203479059805950077228377025258212881018852622354422419214220777718161513187560234362892675994131015575927074108782305402269922880686593169285644733863943979535420546906611465958297055623594045849403293994175110723588885779120650283948004564031581986513820691701701995951048699251539662956569757307207464469029982879082898204898926442190003001066855120103524974089736991377979617864220348541376336659277877168484861203772851096003099798662736235114202874267012865899583578184625027160803873380985953888634200800526354245829213387439597304136642122369996956324368118265648297935253476379854460118459638341198495121284464342355272541297729895619843915368736769866708519796878620725297414655924274110536638458319073329559063484401935041173988722743169105334415951202062184951551993001556148790963867997207069884379497932531834476046497139580513967627802897279714203329243512413231445007945730053025849110467780571220078235027533554242285293797151969302348692758329619609819890590838790464447316129828864039599398156613253549879039129304666166876023332319503533771852717071894767427603218365768976277226585085741694241803652782276734818192844552749949682911399946856664253548397467447437306688155824634869941966113770801613805207064781256082456376276268129197707100990818954186014997325371224484897296684753852691784130395072583505801587581203053794216478436234429497619906592470178188312852889157136017984531877883761640527879221975035333041638311039511811095529735219303241932730249597429476237087565319140388135403138850199763761356253631294918539698662129143958727843903366215499497742061676827554057859662171338746822011561280327719941312649279943478817527720571972594485896546038705730097650730877887042516878796252607801043615770672997990609339660828360108693144965242034640282887077559421035624183644100740967028730827068310233287334374061775708619581850804216138614223184380440290862957343007811820355924858718297342274610143585668423537733474863607772459532802655752380312621992920181453569414215847792262621945106829634598011158466506984559083377415548502804205700043189045719373325277907376738859227874146508176724395123710735872697759360775354738977829713479012831388572624750533984459236575292583524819954867115256120413252121306736429286837888748746034076101959735246825210466781402050408981480556816806618757341520365535067613602095411621556643816872770095287465876409255425304515911366682682009613811488575033432128473740190380938599436916539277534812003312141673549014287521913718088272073488942017429727547318966353846139922041216237389255425488951640846428514342751912192948027295982755022270650119393945122619807941400666725750505885846069954560865045509821833389983068074361478448727834586590617284948646523187309373641246031297253322081409504096995002171580446806623298069940652175360621572643218623107772819109056694041627352893476519574091350683460446524214288812001602391092081687591343668974733112325759166793687786013724746760243105307847185149269616873856547900492877719936724353330711799573408083783530894774489020489034871686342452737930536602703908466093796732055734761904334293041866783715412198739259412215003695868256152826123436089703506769214830357398041965625081642815851505437537305749159736361854507636300097641576942078735026922622405142707272136049341392208302705635395500756118569801665567484447739919167253932467244189861857902254866578290075787438423949241835084028027133863354935736155739154780491734653679525131880078246830599515260258963770157606103815789550364004277704965347294914144714661132765806638514051255713810369472406737791986427671614958091055280463430857331558591914331603027448075227395195672225615907142963528094134267936619029335692791039776896496366353363224983673160131094426405254856390814165564132949002164217777615004805998809057688112471012532146589316729929952856427897609551114769655356746366310789224740714638209490070705603363234878647682703058693832668962769605059893978077421238351366280987289954804558851863896100095581961086227733369450778109878170080009695601652549648418553340079770950710712679393140009263476684538823946514521639628771035179695976606234317487028942232543179678589542480751139982401080954320046853354735343294896039737018611185451190814085291662783597694878284141210591608986957271222522257257896007988244743143104280524240438423538300001092526288796811337710610476983406758271821054035366303026443345012239910606836714545012955800281319732315712357703316127989293243091591950032763393011832119678994684149312732006199609851050325601797842120278437323776163004368978986502094539988640921640762144049282504576919507625804198569694851540022698175659272086827556393237847574881015898987770192699149814441253869499403706083741305850281580451086510830859172802935750680064802412090267564539126651967444632122622720672288583935869601546921409798188695203886482323121924352579986671980339322789130506948976935091921849336170586054898115632917891587726442924537319735010937801733041819547074860331476504022986193957037401102804871734437078350356468348597107037653606814343226320452994722787427588590477139972425039610366314853330920625111363889948347802859156802586924550705481420854055741971151545079786226732450210952248262503134371187116899238791517795129587440322109526817721608171433242792031318992924877986219839910442361920486478583772337819279623547918243538135097739927206180466929851874593272255348994685499737937719385021420881339379045596205485364606267581141504714452385565409262066037941978747482194461908624195943538945239355480817517260947133164467095097461086963154851265954382229591145765672129546939994311442354438541949129772539159951667893771234794391901754563641200616935584491877510490256049807809088390305354170338884288596711961323299015912513521210853089399069257520478911646781904822893964712513652453090320126705114302193642264170341353760507150540362077624281583173007718220448772856786630025089436140005945045213667822437009681209200294726784588241284398331513564168401113455766495490336417480883235748565231308097365955853389847857219391330307391561301042179898104447657093949979050846529068700065995687926725471594651971582284952794925132982182941634594546391614797762709567448039546575693324508117746677777982890326519559496912532684930920039052729946805048685395238248093949505741873524742141774647369344923514355571534251828608731357609947457490642719700330017162960801340999178338015626010383958608785033789206487971590906947133079225423068348884476408315444889003554321288313928315539203038990902086982240918957712201116280519190756932006581156927185661054878985097054151181054489989327835506432607918564223173940048282610046984948593436540720571701326586559848515071087834414068456372001871863806620324947566887187343939265771210147921303845589641482577824039273407118884471408862142075327684435736465735050579571228362056696033086195500197624619510222162153260886903232293130320767073886263445473703289588229145211516446073671552287798369125404914625631905318820757404663681606168684762202744706845727782155014049088099777782737742522067929100423075587357359354761506884904554710378266758107346346440063589928889722761854522193180351838613544043373111418978313156784462759043063698555065815260901761915731433465086412229993218771219124415940269658745543463779487030181317547001734524784931286652702999763401330403250597064643365271293378836769966560661436912324081286441187493600931927499287593938222226734128737187397746828714007400117642617156927730405654558307371413902589047460028406943269105105801341238998141398624156225690660270246195955861912189469148973981312507142414317694062614816860483065321532862664613485777255071460020522582506597511977195234623691558482314622465907928206945696178616018792146015888627414180485571368748242977729842371923874390909065947569944779849852013944641156301546050262161890414061672235828311042577368418051922832772823492164882946380579234849408619355074900332942054788350077992448816670876568588722893040181318761894849832719435971324100180830443813579900620565394932986180246288055487278598686429409383163249695301055370372027832127127445079435802644804891317859361396658279574852187904769247086587442161273190894082089908483394918127264638716267235094913571744818159824248672505167097563854986548805059783092918733471332566897474219151757437687617110484751396839391859808034128194503416747679870013863926045477053427557563519568300338050348040105290883722983700377331678957951512872494182198560797278382315565323326367160790301434118870434875217963080229582467612348356451656760081260642303057372906452013789435258935561841275376534768219496884983862863665522678981372882038716168312305520161209376653337414162444634446334824688087482074969345654927226769664214468093190172968778287071181599561455442547924892122546039637464003380454991323492433846533602881393981359478443258036394590460941405272147667230741037716320345116538318841737892653528236872066420680063802124160453305297169615405546013306104560506518631990499930129285719674401597087693409279351266761870456656378603963238328119406240704336588229992669785375284126076075971152731185272343917719336628887874024724542293821070790758400990987614963714577021747207298773541265186573852520932040626302368036651461488559803025987237892536159631282591831840239235417178238257258956026355399471844425647027615145823831597164222285611045092250973187634646071187787551049490193193543959416197392897257546444475372700137288371413264669045060516106874928543624759006330460402949380845267100869380697909506140163269660139746665407799150387554999682723265216516529455263851384100816796578952804245459921824430823980567632445219477840459157857923590735420403039352272833331237147144541445694963585505956575766015351213446977882180439910453257843133538369097330766344512614474792860868244199093100835822549243089629099747919540835890812279777510432629038552226582031169895494577948421708435514862833052839678538178943479026503322249548763497877462524128576396787351866391045216009940343283810426257225102494670907739953755817749746946770467649301386899680386844671135998340666164073224003047985032144089644943882877200477443229887861870569514794412135524044266674887655234650795438531149044568966208150998800558706339371030159357669654079635747464483946797286300158971607604572423620823556231570305994574926766802948109372998747422943298865922275245691244799281457595810592355395847712937331690065596841811333161509566738827209433623981637136490500879400271065615136006815669852880075256366785542737228589334483516969004169754511161802942435200353067669947039950475355375399439098407551615838058897823867588104449270825044763227150805353264922453145858457249919244418765590801492918778412999502780793707174657445652547031127639954600065764498140909882992526683581286009029597671331324907347192104593530382254218815561304733459877674024362591774783164209390887922821887637398395265761004269445578558624840865798692715138404498630853189465020216044657981836084991163991298717223595797021876467057264658072793951342267679968005238378721033356259252350583844428218008204278310529758354424824852667870181784689931756829608763462229060988235675023784372910820863476463487456414706947915475068854887353451324014104692407600670492427076730580262376855409229436981412674966456419730525244382875893039329059912393997559132990183604170085568828068325007927782327540743935475462104437822693459097402975055088067397927389577337509112468853274023125468905812109271217219544359380618602609591323368663172072066479706485994203112677641788648310750994329803447085889828674619896778394525575730688907875864939332979344540246830626620423043289348646842408672699405551840766593436442939694964743913072955801639317206997789977487628824756548150552472753760964012330936181154110517472211297303775685325672910827642105724649312356447604732636096037915934759176308344306411231684759394374994234203358827397450298874058354286088587235706189345994254039884076199837316216773009253243386726135102456406059985892324418952514601296083462798523578379845071023798972218756781299412174406102928893606126770204331754509326236315786757519782769134170641319998831549190330581012593909119585620664720076766141255235848473556615069556902262120875352065490802587449280292704616261664000044415893113477190520206822155045842082446385733556007255584847527097425485833444387414492951260793463155569461225656879896587585689204117058679954873061708453729693045733740008210269809957490938781704781172631700797456601636473777887946955748043748214460841609211247773478924851790810765197891798958475690098544307349893538468258425840894296780768148442160901573572920331867328240880918228020779764030039809297771246521682008790068126358219423659777317340014522682348943670311631722682421766890251917134172621316335215869979495497317709297213209296108071420544175363323710217698757589503530933873093633317741419503396609944917554135449656701956213627837805140919113637872084420154618644219423720817608711337639446016430295620656643288638527086003070310961868047512647657741179645560089606105041623349169295150689256274935217997950854789318316140025649508830968967012224142841358240771584467438467780397158212569137778169431098215222605740069779174534964051645102294545352861585043908167534227517933925374185573544706195840346275602365332543167467293012702831652161589842513501169587963027026989661624348872173589551968765805566937443300243452535694314221093888457740989406303017258307572251562174452451910896539095382445665097682013841717310917963299366581389367815593491167698374886570063469760997452681772588464622381557686708294458971196107777873606823631978267685628159833207250821242273113019962509862546531307836625006003534790309263328196345439365077571685685270027586647048177560653874851909640574512541231443643643714171297924154075867440250859947870083818366351114700360401170077981420425958140064192493158867175088956150034100206610688788651122597078131480402499829411783081777746685267826316961257019962061867271268776371787130788135764781877224065594981223034861614602814986694707265772514144415303476240779512748397420497930294035148074294103784092939146895806254725665988179235020039163349543074394363654928062163022861183794571316232152792271437264235203587937663346803543798210109641942326280123667624954063592059681188662070383433966531361804844218943897186161849189933110940842095684263931860271033419098212775668170134309590482154696744805173575952144227701473545706476779873602499793847911909391476061377523160273870290436692875731957874353538000646626562498913312788429777080246900525260254873109848258923895644557563166849535770647918331606428224852087123049099767598248639120922509575192013921156729817207308158362696175530160470968946255675736677149924165388620884384832935031507417622002062938869775177135056025158601125186337099179739000702457376617990055930447713023985444482272300586626907038286304944853233509069297497224635698590045848557103417822496123510467087194432171081756187433029436436402033575994444387203694381341828206895408495043735242093131026308572372837658486771924049480545140829297700183535953816268976918714952186564099590198638014982216562125881115362583633618232168188321186310725035246181161069988810313334990414394265629240758683615534613595317780928914912550871212782934604127352240865429925103492474804417081729567684222818237699816242383866237636388390083622398514713113700663068865113481480940091000537220403145566773361630531896361963690106567477069864011466736704367676831819793623999801328676426710061841507599322184206926596165037805766015316916032051751653626061835081431266257692288727492856372196665719614817876417875971862058667207719621888266612781656625133408384655049009408771513480006089322329122393510171727766597941602367365110019431465209137361904541558625449588224603021567381771676216598590154089465472191681067913793517536364943163501867487875590747110879702932557057063390618031360193784505611621311645271733680533406909711955423002344294434785947130939467640609384184457312543573776672755458127845839114517647704055170332759527611204903460833191421712290024029111301834108562813965470247756651955570690701185588642488763265128577306609068119798438397015417303448780780021429223513034049689168406863754876148343990149125780201821525703769348310613801347356120237369075819940626575533645892936928468526575283228566156044250370276714577261292967317538048057569746408071906499609642076156521759406609952419203213466329305880926086854045171033506950153945165148271701290754956467355324531314949451318649648582595188495980137977586817602326297785303041535746133312016878724155928702480514690512562844671255798482323508524803879917384384876976726286530605037936842519727119680651385636438748147929572267934222738821472821671641876944059400875646189918828516471082396224704828179772987910383621084354834987677321347080895601081673760453700221154369935714374102433683748442430562358408088952522959444156380886022762445298070280587811357170499495064754172162286235855456812313434938789660651807855723754881294460252710031382040510833827784143695668113919930193102910930091340265615214351666101317816655845609901227105329283247533629777998672333582308440261497609961253754590469884600318790241216196479001166874667262736843663799698367084931189244212391184579124780409613870229373959650440756605196415890923588397081020200658073784873418983817338513930480054483611746572315187575822825986962635538476593670301974050242592987360228159798294713389300266012872806716248622067511537489972351776692794460474316372868443681448994295424163640511659441975490171067612242717661865544830836391703913111313337605851542064368262549959713475925419667218233809698700220143266964603504256666277917003885130234635751047506369146153055358272404991433362134970588421252222224943452771891099007460584481938931866786481406092061291169633608190418488509014650934420548722477431522744699859087492174888302667761886773820995545118686773758076349277363331200725775986756049020927601126935824397860442655084658248938619336992830183815208109329731333201693301594613928025857550772324902476882553287589993772476440365541828289433652926902876534372830967401606993094464177833975777036550741997557703543940172029778196227613929833985387287429118856553238764025796837128791553463435448340142195922732676859601199658181885882517709087280528524421268149611820844254886924345148419790688986024527213339437522758333121785853998777097910099156700384913945043556205120284853694815701843165215709701696251066047777863280711932395736527282934752428277024935549454989284617982793144783055422063034456894446703476308111170913052602415737563913019661954128079913640061932499281806011990672996961917072223691296283060528580976523719158205250501436252526172486636627764124085713808420834484430889204978159706184347159038583709204422315156088256802331453179245412217887929928352367206104866788731553673638783541986158531514917347988025172579409318868506135047300035288322144720883888781238791791469552614164411324688067410541895770545370234291090562645486990553784147086857272485194196690030285367804799388814173665068979946107668631351995709102357497418294868105535454552041457524909604203183477190445648310006391137011913324686981973860679028114829317094787348487470560791688969296561737446616667424210466951276427196498830260359416720276503824997791795159817698045675067005203045158821432248321111983897926017890751766026094588138170665998294325564205068194976970147028882999224181719968357077016242328311255477643238332686892943546957493402004308104261116940186682386911786533587466120983414756477797510271789304657871621810154785869593403700395879958337200830265897889513280425200883405230246552615584277626770642790755423021579191366798268610955188312396145375792827896756739579850437778201721106707855935866909181145844164059175212680144512073071427872079485061389728085966163479252322999306230005250682394036489604645862750900548234938320770300118654199558912082783301737994639575201864174395757081776269543100631817641542737633068296839003436417336359634488822078431560874344008424208882633570016049729901715848793331917498792664150592867986918985325631251237632581485485562516423745451210547185740877774476978517105432758003235709984400288059857076466848158566727970862468503398243704400940796698285372259458878094799695637848459121846058050562528844903330613396213267191068331600259009264919562197390301463091972338830579591456505313179357669975937652777142439289903609760690597105724990975136180529858634122735118120726143226293252549131021716566652369095479046541093305286955828559899916300356218426245775694545059968519747008941683031689876420143316670639369463554644653176986843566597521763458343908837174951941767667204611669171236903922592884089073852871384099519123001800581556713535185161635361436927531800814681200585299328075858401875945988983710908176211083920509041730381499530640118530455100492567534717733396103420288253077511562538158337413666665695266958894387454101823687716012855841310189467180742004012091439605970822323383855158214200174231886801833635482500403023090110535345000652345686820624051657068049820941723920139602606593531485671362850087662405187399002440571041658119039241687679618709937927669782045719258292012318588016565104053180060736266176363200960563844056359485374766602235652166259664263876238632410195651945806941533175492212888147585409573310377718820361628556945401952024433638372320521946407159872371772662513204256454673963596204536912285000106138743081578681856655813765618273855699718326027498274512132772021580736131628499343503581428358942839618724099404695543031557556667362284107539829912569401255078714211474049958912845463202154956830769387338265201798005446431857758657509972504389740600637798661577720732676088809624567091598041611982881084455642256579192319437288364342908645947636409142258869540391385469540774632981882402481084179795564078469082230637028153719808425975878120222436217768047510926063620109632254561658329531163457903450661800549176990575013055189297496999800224984614957494240227386788526662538358696828610510354920673044336969849298586754628925870375552094944641779363614758402472992601034913504199083948123774417855311542724536829685956372611644052912467834408045809323442703151301560110091246184979653992688685993124295335206027303882278621652348543275958365305138060163507690991480015423720261681784404065873857584639598169551928355426678605274041247886900252425312799758647530722705751684989775427739220825048585987432323440273850762675131241777632277618015556433846285030001732178303886585894594982168820872999821218525805572935186575573217398308940411993051208530818409098642147165678645082923810326743929445980325101783623385165226229230295128991641752891245715111894230536171024758348835720773792158356588905263562227759857024747165601718157493626084480773969795818413830277400371181852470758058361878161308181277011112071154595186545701792596024886900397142319544863593778312768959691903507126282472370772258059167694948602861084092854429531344249311526015003278462648220275471849505315067021323901166342564279910796312685252705791064428293319232214105897196678564997513549859668307265941143114924398601426627962549950567482325600270226364304977735885215546122970610766770808714060704012001525681151777701175785274976632496251254626364333802227187694828872655552004145196415581179548684747311578456288024825518787026091157174858332509939454593068867089661465765220669772457962902751789348533860517533909721176033163022566794806607503572323826379368585108602043343181831918223419204141650343786587619506750677025597207203361004105487694092292794655385654585573162212094775654992109366993741478691767036191502252523674731561539790509827755155611145699441647921113043918422044346682847900514559576467928086240046584086703248182108173885399780679106501228723898686032574781245800604621251989806312190652349636760477927709632692991904954645725895092158748164874159167379074500119156022138451291258640443163695498643759467583955238123005793474048258970562672552329145948962157233848531181694703477007368719882056019350483749347081808646708679326046924771293542299820427709935450897841680931533840781478497787678924333572481120740972465671115912101046781818203299658149459750470912339227912665791533971630522725023843273910334875634549503132982573260741005054964242520962949832193883284787622275382817323634562280721764081014384646938431084366689148177846299416013230887666730676678805706092102109791298610241174435211929826847598684068577452588135945160975389174093773182138287923850347961832936707262177693730102149042182243004241164012610159725240842487115666642324994366224537346120303589669581939172277728235244256942281641669230661322342921261592748414975992810177923788926073470506900540266329306325909986127319848275764610027952258732101110114498121732523801134398156654804057115986853017103183875516917137498769846231960678301037526835784014875680759701222194252682431548551490035870604446838668313703944760459956726918170279612576118721746697213027152326295396570069838570671739827770446594221747704662236803633089455907699502394090490238862546284664761817334605602450265179779747998533787715271139176595527326330140062855009012985189075959995705944394594109525599684798567962239203540604880621713191146274910660422619041878491845862054525064578838859452866741785690407132444165140373250595135014141718582130018588673612654419833251604491926205616933971303329524456925341312414127562535427571099599107881016893700700441765696988185895682970272172718749957355078343123213120788467134162403995806710683087933184949524459698816959814885632448555660207952275697408415674726008605888216314790023529056623174229669108000695967617676947803338149885848661193689809477633212828190388258242195017408550893987581699160872658223971928514157987671815129174749067744165012633167307539429728619787704507621912350343321485774458773616254499566905772497927710990605429314637388190075869244178112570635699787227266971206962491026763180682754657638971675491732435423286438801756139779513035103838773462748741969647523319988196362530525522967142600829678985010482001913765151340077046489697909780495628647020750861279755001093243733492561198093532197942347680156293522090628862536407267413633733999026332952310983485682917455070807569724512983722320673350247695751383532277837844206127528227633068221124370683963237096841115368697011880065224672200258813541156321204201324559381228426214394315404868781060416438949230259680369902704042252998720596087246204837998981136561422158527922746637657503987185823541791794367329286280772727317700201382576795851799078180050901921710658712992281880793172704882742389525083237854658034388085514268587052797563247534685880337847262032621262300516380264882602107004541808492281578974829837579764603029096081812415393260881558695375987511354280472477806995668930072009051869021901806161649515060353965555475382215353985660178360171311488002149427349002985985647978842953385058770061710099317355859762095811903551057638675482834146259600006329919405651381129065576668351422119377163320853970770470768238366222289044394532160642911732774803162090673862313753182675730577042837238674587806644364536097548661495508808041629040342654490528997286697234288170452232561141187826470100932603836961654216277053283764020493599861842449267459486220271144138755214992926215044859801697089235954363924412436490203435293914393785450588556197482518498033792657113416948303759293119070202580859354035630381229720223219589709273469959003830222059872050806280594540180361243158417030607852174632230906511177677415360636857484649645692099277390472021468260347161811182301671673675825534856082237035695808115627552168369513732344572556178854993772293792918667379331097837581090185662308748894334198489627697307983660218245292408313360277836612255018297662750615719318767216583820744002439075586569054008223347999248584055902376883794741223808143739572940331133091524550427682634841834403355205894212104842907618435978226422263430171290422781685075090971583851666996033015562164376965057938941329112289911610307175352743340997399570001696144858602185150100835450173233695842950295132822297496676720867675729242029756309063352009701908701850870000085726519402223726241539459907314450839258688625314705369154552881714606417558715343651119217999584847318723048535146298886206303436403258100741730214079478343301843562035463745529244358686952496185935429346000688269235386430573497960385153405217649401491407545321259291488548469842594757141451279638290911556080351015042545976360298804455556298427703681975183684388292898644859374994785098669428765517407873231135667635439165439466211662195541300157026001387180174831847078740832261682377630459910840355915058580850887252467328223104190125281096958978112776698535722601003778258150036558097295485039479613720775976328222346813041149861014595906009756326536102877947649958078157168794641578634129944994895638765251364765985406008927999710951461765191923603250013991914724366194018810649256899513036384757364415933437181796837385024833267333648407112768437971906634208266050234724657821193516152553189640611017005741433670007625902359644430562708189025308752637770610051528917950408915518254921068566830936118081826121665360195207699041978883755602518005645058029437884406092820652468044007195136222901218884339270325981151562381789652941344281710761695213362100316338811393798444910638185070580085650841375046266143391234773973867062813364815281267317513555527511366584538727660178409254853443121214580714488574472017518027722453679509051127508531147268133747201379971189831887543023704276174910091081623891473375600960794859138814649447503023804776382022140762782611141505563816653160502470778197482090399492223286897206353282857601988100565104200835604001627712301712746519341670592576375557486591889023034463178651329743186489225872271002832459047870288774593461169441720143611449861769283202726955487726764666190529415886237046908753428544878788105195273631498353199378830149923084376875129630501950092955635359846040499591774248805332817990652240029770665760755708193283656782287660069174103039555786006464616710543189032746906465309902684879704469025846771997447056849997850217496162321031692125884450951196483846777791191996752154519048009681366346612620063937610868944650892849120690179142407600163963004100638589311559498270536255057559034939272155089879247755603322645035502229991585559118370984104220004260429906162875988991528575942347318744089710676342780875218206181314676219834622140721890561380297896165577887715600276552454222469156648575032382190092475887766218338017052793124335441383050177939884942431219171700139922901147917623440854107516281519644539717471483823265683636378270135367284673849444685517824651827706653605367884372840516895683780377891778975244807689679465388317979098311045084623122425986320895250733189641170678664550310765279734932103236065447283970616290647203477573937115657213231244802349337184179982250130998951373557540429179867858714429434150066230037593171227440601447051567724349155132493198199915980251799730788067533653380765603891012287983623322624250373569191246624886225319608120164208353510877867305450604359518234354582634939899506999553360249511949740824104725118605074523303385820169509958168269457276395135914388210863190073912756511595932482574123936905443569434028407756579335474701320006311899335244665268419373863320892930233940789895142517491672738479021355404887359035887652781026059189157761146060764249734109407008431677091632612984391125733568407476968782522260131022855194268069475604916285675528784414287221067043138316992037768143306981848375117920971156738377766100794238859652935772686285221595859744297896829712487613312083668727935112361764355210224360293866838223408117535801510125921295095828100776400380199288526533219241677498327091425321465667802449044139171357617419611390440321138714247308623799745903227433121138765478404901911476216132517398385353401644161190927477316633016066488720407942664718843500299213027081185388731693368849969976451523344578048224489811161545454851212124119446033726686944807541794286099456533548303279769404462271337069609796873027156462027264479757480700678768769651526922459014155883655149766672356047466616113376178347097055640424906572590902106678439125541773670346203628029428496689286597443843641710582484018406096459320239789161785454104511740526287287777427002477952005460245417056680864178806840762698285243524869547125611783520472886884915955429730847092138618530004069535556244811528931122154029314246878079058851118894055609715524594159101574947977880982212570643274275606070254482758636859252814346194620052684472021743318679682261800256831902059156596244015205844237043552271958615768392656893492737657641388881899315991259977688170397867792993559980860955668567288964981982853960549956619258502634554766282850111679358337394543206264519647954511106883251868901580379010717549261100653528485572663485381919665016511174978788135285994037486633826836627399870963331945201195576941006325564243417131585836298415040554548166962081288231880698784263008270344140048191300063948733751386860961218608342448909443406063134812507368372936015473789623317141220645985042630207785634813948402525837972470586995148761737305798755913806916494242596824540279412454753241933968579632548480489001416809423123972359277678397242561490270702137678839072509022358190767681582673789515634183573501480177208936787263726313636262286354049959602512357286081263316705767575835674875388361607493621006351429319847049181151882485586639980834915720750035900056568006105942460747195643326002655989563458595422761711304454221665931042148079615924543734987132961034076285307700611870433924532632406529574169648645325743915926347677378995335908297086084830504135602934349929129291174142903341437031510260073675728150383886647233617695001672340893829081477880047359251233312586048128564079343191988068135739907610809957529315481171934291567664479175344615813359435216652102914686694463487663822177035732805267167186068057847372152645672598301255139840092095484706018834352469353729548696073511759213078331662338212227122616950995396943561758582249884292059270399526816090994094731068446002145846388730059447047646044150785156444999591482834113581723700535979916468900056241463370965036706580161177971781682935176282574272462358244060660149794339853424535190652050235411867908159709963625601917930990667328159359566888047084738782229121670353929135192085513433052809441431814177010764150304747787940508831899210933299356253103140009507179589240425237628586764445538347493983014327015002630052366148454491897251047554591188434710755064104341158176094139013362168914419675047297925346650256738711557434414831334067857777660620264548633834945132602748307206348404757330264243018244713270353610538089312521304052176338032814665669442310353390213503713971549290235206759134869088524369275784156354098862847526047399917319196113765647473402131880985525649174214896760265165461858297021358520878119882471319314235762833566897594970812143595246063301824732596835421896547467172108388562626608688561362394509924086622062417796430381945971311904436275823560855309353856764774672590851424660172274485019519467149955171303534823549164897237576429952533641189478855478383597220105500507172863892292644626446924378336799666027995636474156289677251878189305103492322989374239365061460738327314824465761880219571166165236019016282938219621552693819106750507050766110968194188756008061689493337097334092556108044293773473903803964914799246553829208118532544327526291759840608540748119256912997765595329027217871973543815247474606170298164679668816681947098353141703828842416676944404370636287409666602125822552907843932189825289189511270116620510086391053311204279959464253095249617816312448627920862504150267657405105708107735385583029447426658671965421236407169104542240858887869513978083310574070966257971924943176179532243159951619948396635149344094957158180920701681486037135481912542383332847542903891514720132626678543948189553622983206362769589303198728214533298089438840891407951736049451489328435104874671611242198475956223515885319913435753586017056834499670408059613961540021149231798032818460221511278487734390840758581154629897529286666254641973258275431414536421848434392191246073497457038259278906961833720225680467707265372662678352619105137237420959356298646261902253830252287978162541175990958957810572983643495403252538748708887504776675625519454199173357216675279314046561948084416039921379088298897661406564091035344962414417212295126288361516730336385573938605765634566731934978300067955710155032379189369326303264795162609207103403111733007596529425003023787501064139297642596387434172371015318925801151216779436601655967682771824217611306056575295511853806528585885091383679149787433252705174267744753760201724310615766710675631544151465035128482200158209877414764675975357782277490246734150910515839437002970151565326419617800918000239397361345439241192138172833510799042515527885467671410901226102664561590403255163113387541497138382433812322365618028074078438273276017200492931338890274798037697324483132298518829040368463619079430765557141592006412731319136187094332247118483964675889599272033383092952137230909503727233525308378309919940673126948775254652754009515223408426614753743152828445292450417878525714121074787750324872497671812502419432541792892764712005501933998818832950197501985527430688312476258943471631503507962497233109916726079533580659815532412201031571514267649802808332525041464021687032792640323924229391272349918659352925487139995882804247809467260539135204080676505818632793438718329305133050914707206680071098199753621478461241380880206308690144497777848133053804747805014297444114502009143430153508782074953283266480145401495600751377102012959209343660144710042197234118466076729800263243438512558981649874379814775900212294770509597381075757661671567848133426630294792781383866905002268558621638872528437622189372413406148201559786189257079929486432408268924872849393194138978797906294516587110661161825314778675211685923515276411854482877967267829336763535382042832427554530545684872475137673545516598313054034786740729266249426053027108421744485864246973953751054781233079581876326318168622207934659455906607571773226101192865334302583047760352657663006156923835325513010464035600814087117793469481420188439369474110305105175327978676493872670420066882389031402070082513690764118770640568488878588899208409861928744379092717184273674518424303361450943175605609193126834702759529281041467257141201438655164943658801996635419476152893490696311629296959034121570116613516438000265040968721220322367705527754698870266643898142128691303930059651693724392605186293214295970381761089528507558222445203730321547266644950912748655504735670356007640083593457629087471053494959077678750493599500205764352040620206944299244700100187306162070425812559298479634015744984018701901069910912156207881148269785576572137539565561687924127507614461666130716526376581839556981116514736969350121058487240859442577306268826734815309509446295673375758580474245377273772479509947461320084747758660027291269586765452372354158633809037646855562823300468482823217831223125759633038065560316000760476426259859373745593113420637197046860362618902856858720802657009522980614300263923795983601808591265983649050966243333377856432997121832935393815475166262354071518472451140334203192131750539966560964404027837784380988791501939758779200362301475211378797451569756522692866514149933166181514358611267229831189666312420881635447087542582595781813176216950688708854067461438695424882854832673295553484361011234970106985561651781614899846049603451273356882652859780727418754779950206135876908557257726752762557002108595561642433244333686274577158649352583507677462566993955112706555859631994633623171738356953096493890040653670151997954692048059931688363308417951015770897806806881156992744097968264114143921064247222383600916727458931845027898322620012786012948675198632533447008589709462230482351337948837588563907600390328734296954754022575508489335363366842722766495489652706634687781338129761358061955500375764059560098792897870220999735237263097923136127039320484975856579938838280955668109899570128239396692492256411029805315050818719430488416362601224953071790470971812961379026870455492296276659461084453658228654212000516871210536435100654767150174644871972631304876475295971198655663821299421456975296273953669989084365419925426493032908163529486956948391838478046532066405166213934182117983167443172306452937843156655454336138950910712885233681780306845441654919316905065089189421703651675261214570966159278456552997264754642154332948016064900717838487111837534020086166959698797610327028361719699771299988171366703353253714271775910549040613781299961061178183602529780285430163546089314312593799592350395909837134867707725964912888476263093569625876445855388055618591031615236810977793790623762596301509160471311376307727871844365620098846750487258159575519861780812462877719354026706567723123715679064428087487604558616595668235734152596082761131828975621983347798436011153816036594729030504026725328863783905680461367846550774856229410201741540058025802106816069104276646559909296442890040605433847809510697215621939665742362394171134975777047484151424364725332600939473089555885337097280191534093027415515392694229643169221385686816073665495585053166673721948732015383783475580691901042962045529905570801521234242148944351632410357749547188914928103530215451706097708452189861658344173713506429051546256653024373387616518993971259907532583608876333443467976037191548700736669388042493633051040813648795776365377547224255344759934725814583167972427375168136835695265441726070330745049779942231844697648715300783857536658067009406759510630061793323492525639850926318989052801174811333805924355823816754905275403991715323316649853807606055528928830296914850888534475324814583365523278760424218402547241755840967593659789456384382438887696175741666849381009072515654568037929748867928603677528991134944873748037094430266000896110952223138514493779093644434753931979114503503748250636922413946031087464742576659536713910884812503031505643929576830275150805105460758931195722715576900705028481818594429116950683506260153242442188625341212521052469292024829948649953243721215867885259967100314671542255434666716255061331826625785058587913918816314993599852317606458813390151389875929013658240687804282595332660241762320750006915296032060682447675778883147434681736760394488859145904548180027716142686895807538203145193006262377692346901502916106934227438451092551798807420983757717740609635671233031263977746216727390282141278867667944053008933168857808523760560470861138393064129801055008381127739740664478765285599609515841435062665415285801040244802440208505659373949634647477010974762987413758065767126398408722678543943655771619352514560077833672007916203336177643950262205602104747902118433031085734861436542692324004109487307887114258851626625190649610104439552362710354001435317462263901905625794605139922008243294797890303887923957245647945878537152732869233962841362224770456030790397376086665504331771158987998911787559170547281715917912885724667696343297833399962520891768608534804185531494960075801953588060997904754440652799319599643166069691710379623817274073266728705709682948279973471857551324515911334713421678354360734718135107187527978000820148689423588161102552374999706651429436589560597772409174396996394720082073548904642919953523638145402801593012155155113638953470387460367946091197548050830935474926261724058544588348528163880841199162118161353929057575657376914332668494140285242248408396404073577301696916043029275700901993399700042538459892945196790083550816461233085712773335907368655878616841943899011983600206113398370733528984320128970989374823638196748709126583280942458531314716302072538034428668788135874864017682885068874462278984183178053458853948336052139998725985772720620428659298501688739843877327427707676926594956950944123198377081750252132821953113412419278427769995129240475464307258516324475431264440366958850693207845542410624149465378386662609700394479292119792432851263297125695891949919947439008386092695153650659816543582418722300556012622604419856664143777740043040436093982347656043769523436068427061830444787364498386486160778098540633912955682863105928966979240107301377646672499447616810432465110014790308449362116980176159651771399268421330099095331110340378508381226940203050554942545184255653830006177936185685976753276974280347767591686888566876098824752939257070820399639198661696307473235283937453819185107007628939699028124726224530036044766853673899774007864159999107908160176812630835032757250110478680527539255398979057137508148119719547849844400252846746945184194408682951642251762657159289608878476817596276803066427814733437029309565242013968638647390378279577008479940243129430737520723001344128659382911411890171812178778362792251155299740931032784981599948240832624131076109877463191362797985524393622457083094835737550864189130178734292309197052969059368677617967091393000251915924046066845261111020210690957445919952778284255922477345053297345814939733870606692603053503339857186063626953952177694851650249359873002888514736990175274076362802507780510590914285209295114772072915408458312684268534386700378712555987750130608269145931580985743565586360863999256047879564465646595640820590181177435883316651136055570029058316267315041415473213972484433399331658669957981844401200122170672485564003759435956921113547331819966295596892370390001836064911923087766434091819910291654596701906772777469749438970117219794735699391432192155760735572598296714516207601649412992383265321178423711369434941057469766151477018066313170283557211132333873661012822102347933199468874096850794984018343360650686957279909246555701125384037566380607298383578116402894894516446660355059720211666405476566995392618521744912634760902159635674005090594631077722655593516151289454677059066674486879144291052932676464714293576963542933774414142760692278096055570557991116106935828910382476080764364015034080866932160879693883144782684784128191802866122794635492092770591499519884139592774888543300697353527916218754318634625855389801299096069206781614572115078591653306932287343648197088878540205861503848885315175721158038652810649866579895425155240167388607828922511351957592477846839577981239220551913414669523196242475381807154873105560232698771842526936840841935361252584118928728147445821081222708373931997409717008350777745384331535468086200597844981271770950681026277583913023495132727828120234051678973978297293404177258324829640651340111876409639409873957707199126495861022309332512922283947908336321574302651857209067684801927494946142732041534432749535781846016636297138816974276385846891285593416503126930648465667728984958689646734454658280829315989162419446903735916163814992734832683165947179912803702322594526950035005490404443692493106435815034402119191452513879580397893431246216204552487534635663843919866577360352315337098068908732073564837322519704544230449585402893574646677183017797783634084409747007856308194359275595810229418954683974473367750663748874095184991366025798160477867922308537627624197333888090424262019625743554153363972762428614313926987081027998137697261267306137285931933080842278768664009053370098505877854528639285123529492831801506116914421372975399294578624958334009541842457975264758958663246823638091433573781054121581079264901596896173690813945713908503705283626635078398467811316018029221301303572021630683005291361994495371712887474574293116808404694604482554174580987404101102771764650119602784495015039149795517160744387697949611177522098587073059485585979012122036947337265940787898833767782377043267055527708146279344490748183590876011262452909941503507313536700783623573174245852727310478788628570870496072383214519117263152020912726099529249680197575166812321689342246700318659590501569115280408559902101247804855465593162336765696464257242747620062937980194381268980172648596430606613781444654960912998627555335758026881582868989604158791011914344852680207945476446589141577503065250092470620587429378598986551484543541995993999279814406378761125638937984621124032434250133424825604082916800937593358795957360517172277177350897168681681277411019152407111754355328819852866835904701975983384634457407623378095250518062225243079334804943327018650601825739971400916893441540203786132780359808814145015278383996242356758259305285397994090014723664687276212852247944474286535872723626843417940667963126860744853105404463146232991976298166999109020632006440302873703428496822234715311006178860862619292775016493690315981836529100273573806453439241055553459360532831487602341143587995966515095228105480081093040483007108258410735260094606422261249120712932751654733440911337300263872381975890697610972205834912009211791965249347741038801239533542360399110725829604975978477230236791806702691932727555040476939432126865296194119787257180575039204414354757394262797989149622705250990515308588877018066954389393783611183084491526743472331521803492362777604080730828459522313766588229374573284198243356960405653615327777382443642189662055325140190080518526268101077057093036281722728106951141454472471045752968039556389697785873351579385145469250358262501314648020156493192990886855743269648282185688543252332674129270998240095600632999096888833075698974769796400624074642716926381326648165494991269092231211977760309536501880567097730597849544542464192685172708755448464634153907937274150113566837989171155562908078360605570972554391427999003451534385181295722955142258107732084046858696852662787831609044846067778137955148353533897289334743804484914417561841652425308384208668510008849721905506399241328167669841984212332711518972522900302752218458170475788680890116017735324490904740019309579857721309511877155249798192920799120898260987152647281731285251781975038995299399422901254978525277934341653162607356999027841699884572356480281135333514092521262763156315674559416568193463722836980093574225474503540611962702199268341660789295268862582755681100259470114114456923853022208668955641906478982314404229147714317149966439496395586997734840164453108508040600237558181694887125518563136573976953504970352920759688033671713795417645396407727369159412802049420581078104824059659037222334311940294501708525044737941469442906733126937893401366897672517553363731092472728981247362886735849198964290157251121597153086669214582900555530647426380217875127544881717213075814209873677626337850714038028713516275209052450571813505878804073662834158970376945101784085430994609128369023812021941197941300617158079508758582228054683516284640613220933839851947721204075423140086132660405434631978858526252902908863184418775120234353607418583706821175216364021106271253812739293108853409031298347858380113601354633245211500790479335324274367760814200808244259930865381226183423578479944329225806718026956112317932366607473523425360044473408432387489263246433540261097264822229300695979960804770485190138783282733991397922169884038177406289017266022431660634828119941780262925900765475180139433241849867795615935883842209884231070798190439913690567127008967350939303037704884064320383735700330608324464963288309115739980827963482676777061689072120188725154022376058020344828081515375783469697852541432954882172638670118685616820210448446999488514726091884059773369869411126211572560952379832894889004561405598145353624041482099011091759960401154872723883234870362263351272920612023998221576778945544181754803262243397397932355668587817241995468157738729670022980638771684298813760983020830270134360027397993178649451834456523974602974988420682026660581552180588895035896784986013047708241595287270819284673104652127308203966774067397248950631486334509492717108316895122062150828815003282600866046307926212799785105789423754171965490639167617600744967614790354019876979137251570612368550501671587757489989728913212876807384373358679446884916864310088395938411548558640579070282906041322315429027411590400825473280088591398014759764000736267875418592579505156260659458418014769039734229335955149154794188197220347024354854030630328482567184410222696143917698675648576515684329854797639100875397745923932533683471275003734974818514232268370844267382925884932040787151235789798750762253464250887394330404259774792622182817467423525972248319704576987433175735472990287415686653337767787139057887191412539756989722803870821407470568247912238557766423737302212118545730771943069042909024869186634063422743082044831433036717345392779331297536919987403745784386954574103134642078475038934865636938053010285606446756630107567271245303994922711747986807026047981604478864974811652054755878179817875161362629527430425929533076323899332318149422121557924814053794769596279895963432725676780037278068464794927734030941495737009417359265639905740835910556145193425180242387362067708877150972881732419203657947751182662137801956410310616283228063683880069027440976559190115843659483542978610881764675652715787125652788473029595808433836235713915898713629197530055968839506813239123625108244719969859441114424365837734911263456546591564897407237947837655087029155091827931860521224929292778090516127698344115905799103613952619908083642447112675973814102325903317215847737876840307763067464931009528665921489528907033235700322961587607142652685798144883017280896591220431448236456444439538641056681514997638459533576513503698190037537518642188471345890428495588863075335032652223181701740157426981283028969860634119697737109331607788022064894916108571730336632792592827109631432317379522041267632572294901598953822259315428620733113380172972565772599393169054242636136719239606552534624190847074281823083412286073672289709643596698005222354632141292313184256670766341904981220535799915140123554426061588357890075959287821616141871564346210728978715806413918468345324519798515211420031607629616048661780819140066411999103060056350867918568976183189675205079222231058627536052938506573533035239664377136327534787978385037037158586324388785455155592794480163807991985718698082084903255505801514840773079762939471155870241213166483299777269670987184682473833908023585872141586238022525904756079489161897276130216352398782940224208025375650178257662495814744675765076982541971089113255696679776254890627839043927599958538251036663073523401034848125231864683363537434557790423840926152230511610914568312003013567949841986048622061709506593680108532742978110964056933780959104373159991947965297110036034041744244709063858387782409030666324474328921407957102054398940615486130003081069517902207196893062121623171066738671223089839094636985680970937742522846517869795257669031694628112736798142557852835399146137067086783945494318715838276444215879788643293255421894266213970190316624691907669953895892492865045447381497948996212567594127410645025462280859832990136184214246432581603024296930617858095355276987704522764210731197341633903733323669508049078052446436079840758648612130216263603369868367390513394717378058188955845476117459115488295109928966041388545363732084895805431623515695005407369963944802202982070061820902227989312350270780248336967103018201619460912486466327205781051785014073250546002919611162537291532401017587128120067098042080666715113089627964651851811577568628383268623543145137762808722844291637126040832330690451600291650491402446301150331730737228984526857345530535006993108535949360124449104449249798459291875469562473190623354654535145955425896472793539848369605683668250121877065794886610735103626213714574079259448034987714842540279145867405878141853682024401160317919792474832984628949580484232134495926379840747875276091592166467146803813160916588258663546069811098471111103688399177260605245032960640193645321500381453505731920682199375763671490569303660615741528990962908045062060512515729654065004144763791954637093028374249933621332443819882770297357209972526895383862029759773250549669954820711648592773912402944869600363890561201441459850180286332538207151762907114546678225019226436143403632323191982686071685705874428970032252249314834063865035892182961815717903852686848311284269590749259866146435905792620750713642981518982471450090511527826538752192011297563377784328341706662648562720522869415000913279997371186224268310808796441981903470861936377598714976039399435833440440471387303594574736767554962813527554963386511340025205157053512802549659065225406812831264512681934530077437594756657320838319193031325302785421011333577661326573928883250804441605914294545316964872881872264956190146239770375863728449605603802320135794493625899126472248318968058452402324415124226343739274120347762116959529416802276539673383975003998103891980692246213784848158933030338596357753050345251490073517127987764888147717888459221738526619773789455604769479774691754369966638365739587930116345977677955032784520306609633066613486554032260376609255643312142206294914066802782740537176253395073948897043157536895637631263195924243387332582483287400304122752401974845568942348671511747444167774350020888250542473874960396463353072858991806007512546997403735119683081010952701297739053135023782837577823442546517189126411648388358910701662405074536581350526845630732485957359271399402387261575539793167089311859610043097523224430016188452128954401645905313826772665385439328079018778197876141969848124674291225756793142531112709933898278437380921146572557146457751731036081563538773102956422226971741846881687730960460079847212083624286039703279259074477007949044421435019850143178482583715526890983472609179841807773222340753321855656609567971791085781756200806424100442777159128239838315629018091229775448677292115191223301521732263203535326450102150570709700423659092018178676600906148296700873949497401984468485822010673383816773583858472811929953891234630243398752533522785401794000478040557622937404888222372850422925785782236184521418201468308649148242401765381466656133168129729847951011879284268613952048420734786007886968061496846214120995856656730706884842899414593538599845992675469316028413918583366425874969772473753600808445248898833327771172821350103342701109973913305207438201181289148195118371031914171974181023741156767377571014691812589443616117144903578413389327571743529519664488173111725916350068449735498103689306331649194849972097970888044371858368790721254700526514990937841620562163960412426332920969472598734726333992955414794943439022353336436496108142020267161322181213045296461602328030920701787153401600204349072024976998609523901814259087058438936809454700688314229774842395467637404966657681204222798494455445910002912320347574079405632829767253963778308652685117907548732894845352724432602483577686629088766186429453428008936713603947057218623129378665529405708647098003740779010924426721582556256114022012311694895401952212837209762750685774862606637882706856072777771433466309429191086673878240411367198177268148204385140506569429506592340089834638448869550262453447415691299430077373755123702103471308389658414335545140199849384095314613948830774754285161565771317718428634031323433726908583828595222554384264049454230265062131579366509433568415041845036373447955546243835295242828129342330227779144291965920568380625371283607343593404834469090321133411028147826025394627382632119867211830237962243837941782710601148221046479538693605786555387106054200793409709995635355097548573395161336159690551264257437982425959224241063853717190661547629058838521542468159030887186449906404713184978982250553213221873867324223852059436175910773948946059692803126802718121220120033737917834851067447541489208781447287149600800140842786899819272816837851127004963255489268663566871816438382735872697305527739041627924500649727602076384479742845278861491163934532430546701366928600795159072372585565089697513046592999037958911400921987116807651517499329434412379944277344163239818545135380949755557578726445472146858311991623132021515357025914392486917484556918913178907182608232685900201813900284165765097925915899853074121280443637179819349844540670905038149589582276880209258938020235208826512031501581624844520566501532964049530156888503008494107656488765209744953698757296703958877424721299399877534283646853461353246688795148707549644511186571215185278252662172071330124903355438867599810374761900680571541947271135347438228078282909999508483873930559585805797147481449299253185272854606036837510287734271480515454429594415009818881499186124617202587508797098983613300195094465977515968684911236404968260335125978701672390154522347878699946031567390255108091645533621932480223823457471961882643588883780435843165457504306770570895753180458967884830803493114949074523161380183624065938463286860808939225961294335271899022682791214709648499782329074352167982511047118579348078867705958123580365033053069431893104440637715134203763841563098490548869219486002416917486582121566224347567527430682421333585327426625377539227271380690615443211306190591113471557748873555467443328036015995779273962850158818553395901908534580287778306742808372236165893626202515833445841628441626834928505029097686651654795589201837645476416184637064053106125460000447719360864058959200770936780923099076541825225373407900155863699544864951727965317683130119991731475772244253454871791647655236993553875742548303568535584934166744641390933803826817657447279232918056329144469826908466043821228835669608585897863361279452761611395353512216543048374113848499300056565831863416216506207170698421129755855509727817454028302796718527256963892406899593486681958606526995789261769566528329749732661714325620567196055691285533718183890700970420009711948210799137457541327093072587353100872871669871144283058235979010300688430625269267616413686901800338036707723656789204883938866171064933180328982237997209165631749793833458838513052936087920328181091165949769065473207068527561246501156796293073989619456549306650790696393528941126895556778898499193237052380667669702381403288956489803841332155175915948989173269460656626904320624970336992141171684208732814163600837979428292642211468906391097266583345151106425094308488628645523210721127265067523314956418439282467302803070464306627344775511944968021778637517166255351957064533153818043732165741465455848890936552104574155751672402819022852602297553673938309793663138292536163898955700542123452386700427453901748801532137071316809512777573439128473039308181268034415607263528811039083033802694027448704085887661795008664632855055309963776654055557438046700841614709599321356365166287275270022855436417670739376374715556077765012942878787975429850238999512941008680999250615926757456658372256941906568642530452179909630434100242389929671187087120819183354664468281472942675330232935927948922092267505624409263558450068808367388403322281520233336657225279008086041225696186314221715523011358585040372712463074342932608375306053320612149436523019211417865610167034267834735901628971406558330665720616285308471153229547612798698140794759072006281819859531541932987056983522253933113625117157534822749617911246380158117489110869982725151757903737639273601851054916116454653601282126987919925191098421867307791231727685310129804172826058072585394563415874062959950503866785957271478667691340909008610100821322887225541786633739622585208423770178888929703437686680947128757166255534528737153778321727945459623510124730270305339775227139762431578700929589229060882341848351031778885054933295220725117776732452182723088646207825431672564542080837129366829479059129219001330200225472458236153338486624947203492331228811901929866666241690865333074344879328242517717406774485251273915378516297532030483696560554896464737557321771629230441186731218050460756062868469043270857892287461566327995689564838438546592909893015376710715631289887218335736464134157782998859692706881924397373081350598394330854964140778128222903874021884611574593969523528666409533210268451066152170669488723835986483577570038379839953717682689957811404130016626973470228066087935767559120501381252418588765890713472008531981487025883744015829510792488365559768178888367689391622997752949596477822142033107802623958497014643308873626209950172662693785947890433789277404767058411678369030396658322170548054412502137976371545047078364119035921190475170601107349901207968344394095255601665943442567796502454265310069430274898804537245129666552372065287845063470200985178031833919561282490383685083067996952221377903356516926844674279739807079135834138922358767663506023915529306644223279938422272981532688066993495180749459277264958450426135154238242881222490253342682508573534045785351133119970522913934293923965958003441733137089868779716411505182416558148625356262142510927861445671231846604217812142679061661647636103352368188822544577530431754475780481577903743059765830463853732036230183511811790117681542481707056523164570065436574009608941287017857210044273481530188360395940198428437625536292944711666405058685785069818733379543971361493750929122279040710541439767766938060883463551242254329493046538027337707249686899853875943010296659100190613123181111622338599785284028774093929557471711414550128729729711131464004395173702737611844449485029529753521008939568394206315691940270072073648480256688370511295055676738148768332208437446828050331976102710648957127753828255506262454572460776097980087870986654517567716604118817843904327781933500391162566729151105800385778089251608714149043209022445971024837718086930940347335968428787833926003080939727479037196258039714370920250769011451107786741158911215889580785431128337798386287622061905798120380536986461343653320405709386259917914201082802003387035316275815231807956157247595036791029861995606730760755553199772674923813316257165208825887229707982643970488829443133135096306947602701271111956339731643725294553068038017395205127463780841571249148957309205513342017596905978081091942538583415316855353484409988584508209125977407757612985088246244447624039109243788202423525059130305494767262242174355498608509819208700368983040543814267714129946200813910044624634774724413431564574839935171132730187229180377455647996969232416461618175113327135579009933095664239322234778324680968976635102653106073194839600513223443699810713011592173377029616287497571970545081110762178314650035944248973223946051207661796756553006736232972941385324520984024538749012114134717839691699769398001298234431573826994644579307956646104179624453726123738720082695175020222447249530666012065820508146471925087038932802817277340050910179078388406408473872632985342635173377432638449148941270135176017526392126285052876762133879316381223010333692904273257589715340222513677428423407416838400099098755536575264685358580190362322849530080557886837052082184667031203529253495646682990028036085475166028421224622106987699424038423912429276985390796244753196452628064449972299813486227928460090369724456431799089245634054868435962444770553176083834236432134773692373310405149351688260212038069213185516668224468359903698655032114266436604690308098755543980062473627510244227129144771840185907193620283912045045626293944077471996850048230414910878328257270236394335623575478435857085253458071036526911430614950827067887567387387002013323594650509228489451730326904029898208087944439314244694003584325178702770622647493877951956299819504696405000505084743920490719152392490541531193574869509184808229215852639158432773220480158780221621283371390854572981939560148403329968692496623847280242662989259475291015414141148577819119498075036653048096186097095662285433586231478545094497785634966057602793774180620998334350228974509745534030742680813785435704969639054470198322979035253670738614726397340794692872468501411231705444693033999927582973005622777044953672657309174447519447236540185694393579965799678022147068857989482545802446744109749776131961235588980377235601609405465693398417840495479378538084175168470093109521873677173204350161155896274602538051058155224549367790532642803823179012973809723208821242217883283717421528310469726890334324916743191808650108756854166586699336858454018406270606892884944485945311995277542060265905407027421355730255232215941489070540257800208482325158055841525481826653890576684666024695299132349783170440875452829307720262332163423441558113775615099947442409704343404017694058550595428126860598071369965121597960212801134601716593601769892097840139610893951199820218613552298392809411073468852191349600742378921163018023174899429015044393865732963735150831301930789633525646981923939826648682907794464072529304190446243984107811032617871498381447825444121870235294536632651875028622525951902898339028535314143883939529289890275900995064231508481905801928975149264809434744228608354939975318516711979855895171750237429523477062632828156405071847448858369438641697554061866861279696739762318705898792708829797135795843607003674722612794912967696633761554556636499655780861227627883359928995044696594166272447891342092731681992389386746145987444584416385205743865066226844041720991720203384861453064284757558704938140637846445419216713817843503922478405509244816527873615388862098404214201853665638289734827240637740421628149591585119674012788342210835361046458991385138044279416206764807777868124247519558595787888540509083546344741195077652076242723135937706041010161328939437368906311669376392056776151708441633302819227436714943579185590547303211064806764994678820233776338006265430515288076381951558569988087656446207567417283920730256532593567159262237548187998859111562007150820442100883813128564376856673798170746997977082428355500859586489365483174739031921740604989264470793368890050225356424463609686618454535368333879549801517277630512614293078691810877892136273666352938231468899557946560463613540351039435863573056021317039351200295873106364610437910955842034991138860982958076027035292353888035674094348423495804979789324404791940442607633886952099035453417748403785383755453585683722531693717510392184785030417932981631251714480023568860911698833998692739475410473869165026650687592642245023829257698782267677852010533927985730107591128924212172636812429775353950465012068497785436294532771568370004002697345781083687530142745550186339984621731087171756469826737949742439750637099967957644156303065261821466418498230309051596236872530785384440934550619134398442104634289554704774097309511260847803227927205353592752037208261489117406407996704626027051594250893785996324029785429408197980463301771873902273308619412347609846766147162716075871257881132363826157604166011367072928597099944349370692163868888140699469260718487771206111586865499139206232669905453432268667101699956534935819290745427465772255750766813645600348277148266430394921393444918548007185295037945239225319722614617284579191572141710690947006322868861926760893018341400386048880459000875385067279122640725833575989352433783941981690576964397398150079759806402999044381886174057233024599146723503993756818389909653658130683114982230830604634370470020758607419176429537415816670933592975973729416089481861821992929550243357988802607759504621440424872063539322475053680183061567849316789920218497430825104085125180040991088890910438257848181962344116210750149780439220111301065328820920300742534057059643113432924968060709892532110978623397446267004224480706048106786815261090676893907365107724620619915080392999345822737248087271900316846696058357260810951606966908541819364827590631677468214158535999687333202703088994931239299802602503491086628477364750748631138869634981307475885251407158306242976420408611835581398297429169574472460914714275006639208564966454701564763794422799158911961412418823618470087085824927285258902961938321754682646906620803147214713659624600902347885669561861835339745591964111636390981194465558064295651825647710562080294507298418725068487679153557331488304803352730518142216178338843750562390436746117147114269058922808006850063912499531827750312466072941911330265619875366800631638154812491883524704890483967542145322625873503470865513068095789587947933963849063579826266522075038687393306549161086389867873179271492350780059646256925888403445265899900365303504595193830072887472950707016491287371228814740083160369631253453260950518955524406791575394332434091375328085261624018492625521875726327397276931800376423308436626625413037162798836211677537477628460000300042366614551854371206061670373527191886919188735637314840696339045059040639037471551381344464634108410187869712944632702102664471203043205065918183729208235262442312779845227685744433035414374698103667127035781438480833302030711981081467042548766807088856401801499984258205142423063502431161596671307330013345309001739601679978678384775531184606261601865899154277234430645835338955899492431817205493541272805867017357389371192122256406632250515462295675637665131775777748180750314763385019575832644905550529212092900581022337441624431106529172639885151088659043113695302322858228080181865825671594328059162001239823682201235321376236628722895163226012654412054593705462591075429797946073472192893372925571456329163235781201205946563157903406165651233381279360141879870900149085746876364944214169382173132659022639580550642961551334840184824490650483573338125554719693060984469879431174272055915760003403209183091540923941382952902279441818538504943236511781985613987772173117666761598311319543792057566298193248180443677510197043508008944619264170216306898502590806174192497549649008947446834500174968915717932417641033259577711563583792102288678218147516994200939093170383626778268146079851643950468593966022189302194659434138211555167737956684696888309934021670215243070475769705066029416199974959463181089983075703561180804590485722926446500874055385785616862299509228017509424109324287934485483633545135881521972479513064706862978092249834347185711683440699242144735322195987554953799299684613137229561212639050609637616001339999930614777460227131504165601228206569817437514807634964913835893284538681444294243085180676456969669646885141171735800852037153923865002963157276857606314474226503438187837518206812608485442906762041911609504005272966112805567761519615217164279166390486909667698578447510061779056452086419907479653086742389924758399017703305528293987201196621803319399094832361408312031125794271844179783953298392599695807959839765760552419977215341709824817211981120540162548410214799017083290434371298605957171056321790029789873445503723601659033422893466790294115983359688277761549471753224025389112360806264632783377436289745668063596278234349781702253828511958825022911260439611847992836755916629448336973000733722719503234807359395326014909347026247475896772925488666825280253266628354689264636488572098781441126920990089862820749031228781219175435756565286862041844215080972241806228746197372755279051812843000707530951769353402864409837337883662046547450536182909482000043181509263287323073203985002309930401141666050097969620280572557173861882760788022941196870481045929384252422750198901223182537291043355577757727822856842151590672358502898313938311552454170997755150793378522382942751680545935096321016594026372891714202123997413961693957040907937491668004158043853849879210278553919363749006503219963154154978453600579409802925874004754847308651498670497711495124760464225325996685315118631207429684246410772763725195499754493015840407417573462295744774264220470909668820829192505505342720869957910365735137741773950274364810024858870637328344472738445623950786334320766518487608773406331670983690981614577663258101477872618984808571638207865778928322841234880414117579661376382355998889200779397630669551073028137256800645541808361249423924112187871686596614942292255954218766566410306407719027286736472891534945482774389694909340073263012737319751043878323214869919306231528125032370477564654747960014290928963375545283477192725959864321770194484967339044708932826609664679523469940245544223862311111584840126587404119758924664874043557091761131712571566601639766356637634379228463378729610332871458689218779404404026803485250626860591498434811672004161502616541011857712961356961153708846065802750688868065227339846132376780338279037072908728507836242116538571162307790890275283787913116933135623944954116245564091188655674546735837640972350039776937657352467779509169356982926149766068341370685115618382082575617840969295581551407275238219407104664390316722640477262201419386211370238054068575414963640610529371422053577256536495380375385671307048598151174974756355493727717091338337311196625907467268165832202726037208235254050270141048987400641659917319760602269994164079620613920619821339816288689731436905964066382963996521527934470850353978415932605276690003509752162971938817161564355207271344124649049922191036985893447302721530919028056506256369355484087496854053833430660334257155467715894117447234231539683076916298522950513203504288228654739053410379201595361842272973120904397731293215973934954316770262222249156257636592271567714148111529343788237176250395032454313726454718799722295209985620361058897142410956777034992721768728222783341703750609371684112575951956085124759640239625595220710291404493564396161675945272371905679994409023659898453879283839239995757732509056971108440604712322188282823276518572692781238743295790975659376758217460452188201588701973534738518090437054436102959929054892239345696306394584144194582843053325924110701281721202124061829071298559666503985803570168434149177107892278958930224646199769133172843143938119669042432811552347528065048742161448568662128622028186311966387451254947347222999579737985160223523745537399252509722158320477548625289181439752641297595174684176398269326549187304181769040976273537120646327577242650682249040874016146325529217222056824525032346733293138690480474223930055195736531085790437190037631738542687609052567209905991559735000964393612752299581147933183706002936708356516277269435162168028297964730353453107300922823893507650351034594306339543866384819974605235776167617445011715706675195139753965007970798098500142838708198873347801965368608383724728994209661951512717490407121800715124232350483179519938101133320286304961576776455586465500687514328573642641262398743964346680786819673634021829465175306477471739712555652904845818674090019040936493952648359974365743650887850416611426667504877158851646715659638767139596152787014554949496000406774411293908606215008025394185449704299521949418609558098919034333285517004353748869163093922023800589731696993099516649394512599139277287712618881772955561979567508825661817337496835644682791115228124192530234092378018853505871050324496907310656081745781356947318279339295994054431873156532060059468071164790368255647371833502749554287201916518132085852109483534428705220619963059257803732071692325276916143426039056532951041387040065353687314578942406594428842418668518239842460753907109476255307596179424013805167652102056215422994548127348129130525951948157874179809007576113296778997670859940048595174870386647194555475357923360589783416053602584220441154742601893082414891183833368478213972074781522590230017417665694139625709543208205849619706554274463171579226585136481088386454933861997796540376301634662425089349337246399070133988253592646333246544464867792148851851847830587460374355160846209898602530550479560750320533703033162660588995563846347798153736653954971528499089081092097697909333529762939280973890865844967095429086078738160895567283631676068291228934658119711164470117789013930571319481666832783893700651072660556441933392217731918114566697849469811390084301747903544059938870391420005375355550196633871258080110690466192446264653872663117565587555005102888493837174325478037885342251136392097771465336126450766866536744605207724839132042810416716925229743906569924898549420652761277422159650463112304969414148144586669295883678396226115202239201210092882498875187023970802361756265588484157693553058419842375554578912469228152228490063620887670579530081969343254226066615143804158993460938072965786383610295675776683863670659897349215475874088465350643058417249199352519059638510110728543721306047324180490928361777676747083769214106445936044606979085021363813235466547406364848197912824774188287761142677733541380582380320579977305531949587773478567778066590705494064852784973868145082084429692670032089133898261589148949294260355225396927962003844564198879607583932478562101585368803265667434006994197522522232313071179589193132081050261555399034919982055104370345156223969337073221459635199764637570294534142302084377488921409352868356897333283257326935656821001481231752950434396488740263466879889730345625839741918448320825510513157819876155083641125869764532728987691290448879280713260108754253260767524983629086867106243124110935226257186869675816824040065212404694530519824004393222374628868918588139972974842038437391296086237747888526113517608115416616156358635661420090785064795514600341491304915400094902233721027009394509435784941229888680732404768180432428548274056309195224213892189061527503144853514195120105378446209622675716249690043192421738522969540136103413236507834660140199256678059653925469051906299811693153688264244311506495318437246892959801173085007215134045165253250023153441257666531348253269309873327331669596482450574710352048127367933926187234632281650534220827243019703619286924861164436898036750169541904538159870520265563935106406549919504027042126923955233417987318305065999030814645446954250961826971086584353837124894276060497731925230633636677887471012623802711394528075997544412292262792183737755123272835798868284049524886399349907858771005805091181348812911255354097797504043509331035250126973298562428714903350850765344335278485592740217499841936463679244585317379506899008962668119958468518626726435860737216855345847232284870287882412069402310186707288263616631749591377063099343248020280780727727751256390472653564704199052378258159001955153653077239759569370208487037299213681685270479805587954075655913367406250988052909917771498527449806855913791211323504581632066056937583698467574914625694155771975410301043185433349449427796543298466184874211486581850818125589559752930778045231792319354525494928779133518962846670986564664417123178333605007476190926388010069675558879517608136725728501567256434642893166724710806381116879237831861172357603809147711088734256453895303439769783019857208384571477964172570907021767924185127500358717016357546062875556337157276339206470022524247387308312169069670790393663176483154015188459458286595279018949498966503065763530102754019538774632106012794843701821051197269985326950888679571344359377326027170764564329192514255691402403576583168070019192121918984910508168549104876525761492580565396467110188271485444312171965630216822307457228465708063990047988078627073358791697816015980168977287434224139463505504301804815731166542842491751466907192386066318681217235860437167420968145788558112824179524627974839138159454750257042715896046852473273763567675412663605066238360750596998095553995635168837465616871098503613587246389897988884028489018008921040501416454764776597874731753436032789338528656005139525332965789574445453640239764377427982151742728577454949882977787876040746937732781505003981920498089314874156750476106160902778289163874992821174481614793570308095481307684751369649524152097516428768924609836223477200965546458349353158079118945735125451409920914462776528303268434272943575128058645572193370694967443733437397830045945745901581334137253090503972090115828439835478721080360380168496495264006405707262647216303804147361549784063220458793477572439264220445811657333007275365637790536750789690899216860713091538546906368785870226785512242390049328113520491231631893928915505840030716414571810983472245523135155839960031991596792237618982980003931443450220173382400128238985312645661760312419547003403364968549361264062644267065480482265802145292780107841343387472248116133190278893238093793793156858478723725672872943197706964621820452530946349473878916111440613976159664381793217151803959062837973333840926578567897330332134450931498099937968347031116102979578560208733832114321366009391238187352825670705195002273125234792914717828081524188262520449405713383469809252182568211711934252151336380537425334086425450833454070018339706079934293104044205164959276160610798464839222304704775285071023173121680031136558296749042519380902201101478465516543003021487465386188212904390907370970099280353955891699458986538508379346409746311610795370564327105826971145030208443277457634414081970872509024052818603458120563718517348943857914495643139937528120734348403977216504772713487191751603907074864831826960785749374058930629341597630090042953864710845634531565018371690579902360990033163599662489088386182592234688727694784115348312670127778203522836305401983446945787898309195369747692642611680408389035086329422077914666180666807792559608622439078036769541394222419005010006593826293875449245423052536308939820287341233957960665607552995315175184062309607157977634171716694303083077856455690954147570657889658916300454837186009504946524844840195596905344280185033707580598096433309609805505088272914649394688779431731085283454697533764646138043493703325932007554786408497445850256051368691930619221146133608369978560317913949650880551609542766416256903839429338367490037092328535766704242622606536882431267536685283612624810803018201557176666524530837737321605080973181584758179278639450968383808961110260364833532547134413884616229927420884598633434022166706069996607074222650105192097228212298794472273633801117886404273854749054079366374599526745895699380578920986184039129048443953194628320812696151513786301242706151060680241331137901123160689716823650587846260505999869202437292628226507094895651747088326800393140178894263197880718477285144961709057767335831242520648778834716372265247128045836517696079560474183621216784880815911830406686978253963883685853029873024663671336724267765577197954405248391715663472165913204723604910746096080591658868577598097871284705447109740104152119887467948684948790463714006029044975790143639899862860269681446831712828251820978452821661316749671877408518237181423781479738033060923480765882454319246650695755773357061328856962669542277841439562781335102364658887108375032063713837354574202080509553250444096871322624306181521086432937053968125618453119846835679292429242514668044610068517527037604821006624543447956441762150517347911626997205705910492982604549571314239711190844871286872730657039960641208027767688065251269166969089270778882881922791890539970523530277169988010226476664616109661051864922674297032931640736301412536948283621185010079605744088327079801521161088587027441969531371596325716576880944226509418783191497990599801986544733200323616842631878472314349931029158601881187540458946276208145638252711249130457693068843103836526093859059506678831183439534787223019819656802757744008164917156889480637825132182410839994814993257134910418569925208449783435570213524439569045593838521220971170776887109230938611474799485775983675000755504975986489058504188022274799100188760338237407583275116347099660283351849076928380289787368454254368007082423390984779138378774869900585307076356628298665463352097517624680056737827591611619781768885378311964118651278469994074639473846839632871280206104555467637395239642014021624457273132785555641218926611628129179418016246928166488964752659013859288630195082878477432101695087855564731716270125619012095443755384750790642815841994381975388067332650589675877503055201282127197339174236014895232648379661074314851291448924460198034825828405643299907325295604318788262796375798015105419294005965057481377404573403126531001135226922865872682945412293391465099075675070643049844890399291931927519343814512680423521210563322444221837499359874643979633236228642076592787964212722396044914172337838646138532195873457471763333845322735000777607337841568644212398783669124502078917312949720643962662107314941809892943621853138820400241612151590156050203682886513553974905602060075037418580283434654048675620843960977523419047228063799937841559692580235622479757918724011225463209306136801702977703088045971712708075121000101713856054364069988973530065750664178120442607326698420809782131765209882463310081291792732657821726316900149995632174812176905311177844416631207255701591105561425361381021461128612321699399898164486786695358491958342788626136814757407196462861047006481415163042866177749290624944384442171965358076358170241344893181421764710405525545334081310810512725541633002155130055027607842038910067771209981956619290759846821753120965112214727129170399301609833221573477588200713356910390862930655453378550547326164245674501791147799747830195067058732550976360575640260457602527011341079984672520272327581481812290368895411484762584261857846047755106830131918620590693369953113858493004764912909021915292334016807371118844957199260307882810141699827867386390944482704243164989645110154275160448814675152446786828407746320410706360105728850214290333547878346782761074601784430113373232535742923547703651796360482952789516723704803375932614216440560050563513252838324887781723285822513943731726094495615142778802009849286390375607193033522743061110743616205234912873550931406551488448879131520327021203043121745274992798089723198338477540639726471375601609912935929454075474061605330943171375279396087885755901581965659200073049941332594301464292729730192523130765125306022312867754844606130430027110001406896947655245877336494482985778165142117327886412335548369314074617727814695985325494381247498135827855234762006016958113967696264702263685406027122357273384303360087995874362139451067367743665323193400288348285903503586917827893455817235265061169524570100746448835986351124499349148949371337042773442887450224725358124193475497893815861647919880151507760995926019779331155342965519148999604504766883811228748114998713813755252632242797648662610538795903165579461170704733309075515050320921046400723509877299426941370271792113962652968538741813287969833030103803361482981029396604104401939786827860571439038237611199917015412778447790028584815552038503785679375361454309028993660625994498242290003569680699749130241094299188414345835145893881791417974170156162802416565505498517139963552774385904762666149976337233938020286791658350486116572377614271428457505442126926863991284243637341504630062244618533442839105473652405915584300669147520994172405225441474582491266826249847051007443843818833733884567934116302574773046426715283132298428796118772130612207781248143898018253456410647062468485726092627155823163530813375175834995748745840513953114189186802022990096985141518814713652577503125737399189031090238436305488084556680206524720280282021035822065014666575969930271917141341918147369736348348984064617130138015843342324443588203299621086984920096677308938769465651522445734892507743080969216716670329267329532969022432881846243248289731454300232540995519202523635251334157714116129089495271012000386421193264284134064423070576475643682044206253777715153828618860249828350232113885624091106752656453613197814807539437305216689401498688278494955024076074999927047406302231841983768441896237653692556314166735494126185527942607960274872572820992163573429287171711904128153975871447292318447226126090247851419850336399499325910531193597441111473591163395016295757091805556951135427759872058110460812643155486419040794296424950671443900317699210238322215102144395604496638657954142610168403508797831729592013684083308609572100293766234153623533148098532231239308669323520425712275923334433743855897045347843963241549921679294551499779487119789991585448476232289109759435739261386049321159545644909653253403723524783176328231533185732791119201286400023140662564509817608611221980016831764284323732535221513213292259280553138000252185816080148385420941921371520387295069385175181092733496980233185459335321945698592409506657546175815872319425154089408527125601219563160936400990984221477375361917819354633792401716721309824974357343738254118602068620432866664518650484774765609440369228923848334509417701458716716361352499026585649509145483089343961748783881341021087189659470281656578294798332805909533189657799996701883397144014599063257562537710364536255487272802084353375265389539820358567146155298148111641226617181282413361389043823464810467218236303853343754213712316710460328662296942337309824910592766897200580269155427691820309302907395210742783395267365461916655697295712790361256990566967619266010268021634977915982616227514336745531659408275969465403787573299516949548392778569335248389626089091394160519155774777299366334847135400256351663109548575550397262699727122223929617551266178131901955876828458452018405822284693737676058714759525119009461766667220174816634049188359844961167853806459778925814930141306037296632456367263263945703890838970693740603347441040790795265229585926964894229518070562834742274832429827322049386588637078808711842099600683216147558846287320381230174540816901818011693085433137337662340846539084420111242301399572043306136491669745866021074977372876785982075749182196563490824297235827206977497181032915100650354566599068869331341218208911878950002983340196794322090484205926598592258544521857681588418921832627081340591356735447499092467830994325733000955270786160682600753380772617611891330348420870242358507231542086817131581162420152110904848400951855744355439176496769619872250449658199112847718021594064640281146333600023142045225731243001391734836408293910139461414088163242482963230618564766768800139032958512671122805436294275362428197121432464947014649607759078886968945715392295501869887308489508936685158673685368644365233621727526126979065761178924936561240830287901778082394137406655590151234314427947059929664930964023271929759207481718225412407894364383629602524394859914458313057745529035993904998279744339435259490119616293361771645555522993549198032053890424934036716393691696907733545353876928549965814772168929594297366799982018365576342342849545986593014136938197365601115588059793284423000833159713731143427533729678701879598755931362484540019628550116414064442230997644465453457964694176647328160277003961354869471999085801571431921857202509406284541044254105797795604179972460975085198216575002662075855605863339189922952687106116367910825112736782225281629916382611403594223690684389301109322408617337149708615967520744040193504271330190854486311496209722486661627557087030233353957185843072609381497261585603567360234991773304336475926959064733726022154459818239196200495686153041145944157621871629059594708135716442198316133410503110812143726181167687456491604109831434353784815051747706547663320270100156260455348864098817104245996402119337182205236689024665017924589306030097405575186004579151380550783154199888939909119601515226901442856271365606925391566359452058901979030284936728230563511023813054823952105555864428341022828238642532489242818874382725067723414361250840131389653046405905726693744771227865951835724556975622588570862450249223258512912642046824492350350945267811119573306234704861464579354862936539761454103636085497993068020688485371189857817062576023170072904341762084720418847269663328692327618458082362860433231105075210097047819961867329828179670821496408470931071971791794919466752654324665805976535929735689357197072808248127976275603244658387251434165981114508457783645923829133413210863780097524366641014648988982951122197325642821084023613464445398392098502574714074808232159907493338848730991227986965504740098258822957589499711994650210383702969357439141931866403991439854596979832069878874719855193813166377774995120749532286430889737392293470196629643473846040753015281191589489556798472952637971422754117496992112538201293047500489213120011944389718833376284068573776107747441508204238630915932127477990195164128820282797529175888877297301669514349085095403381825812313327551527791104640436818319657665619852655584166603913741306753860049638046101735179179057473348365607231403071876438718911930248861781177143126310937784745163037995758737380630144998221799858923318495467429659265021709751274572651292704405132701820922236231430319398049197455784875985537926053543443378736166877425435289327951187875038055714306060093785532535244578983540580120648557152549068881828803051024396818406511181598057642959549196010746581171182176656462102943327119369971237468140517212826151561435202705370868220359682752213605274199734926511117418941934923237427958340877013929977266067436519270381389760222624744069670051487917882420674881893310884765769450207408749704586638400182436303053072340836655129627352865389006670163472265347101953956927412480635647919524915568465780003444893986910431034867738709657429107215652284326172553581097326767383241888476522658817686552301711065368525292533359213348379990364840387431810853924897145204529588969011891082937143304039204357712868955284195177523309491421037398620539868461164295503259024451094087475158985842323575888015617184780702497823702178895559468199977815018792565169874087658270552940608905037867933760194028859014903147143813710034018755173266428272629944465601437800915984538817613861946460683888418531513139417035926716511500083718347529636731488191615852091288330812254277841233315454779249703129050605498627683526882522195009357655570709988549142126863761193860208269929550557009065706170590768230794600155389974636539782475565999516967913330889106983497224459627329712602123045983937246168293080730324265387503205532043915262392370089552665890329604066218660720204427084520215975712983299462344559103377103972315876188148732870780692325771083646495411377375935563147195570129609397989947879130177754858379524004750276780228977594976185512176667444264045026148262730430934976265060052835431169255728884479520315803366081191594472368997592029286902645173750068357241308774591886455191507777768169793744597202104664643733643611079488272135741221059585396418506802386885956952731885466889123210232488558966980329258299353785320749891658481076229956387615039546270897637026560192842446079366787190886680211529788291017590576390222967866882741321996835640113309869715755017685201076087858627726736474887740183333441855982580986178342412724283859513866523330142434267363470252477183726865185552291658651992667434749402164830572666414240505067581572818907075325833719697932098996403163094095640688629867467831385604682866044316574756827024213169973270788318531390930999707076237833015189579649186236602786435668314986245277038493774314542264476070533074100047072647982975097988470758782864441841713616985380724014928911606462744334760449668982824967613735866504998532455756310579017957509222724365188648269252928819901256385321764300894202923574667893337697911427198124762506400485963219567923166288429930426069169379973267023435525934906868733219993552041465238357990984225532983306364826309938342447553114976801392800800251216405700342168055743524515022190509939542044982212801167136297752628447577875357813800254197030234941668717624974775335665499605875703381554384455160745867571489249657005151781107088654354780320106064911011353125000026736748920593301263007528903154146961857316397183196287782130484742616750060731929798892590008019046189270735713936532553999751192788898158574744955831272843428660715403599425697167210934789300336152087548110072356934148667622854311086852923480920977859374013143247705550579048444660110329957247682795244501893709027470888495383379726415978504751205274278682227964886081855520480308856741410063623687940711390972532185500573190290133507004596405205658788709457291780356365123422669458880433225165105338298117556921307531368074977597895833031897851776414254901665365963224692164401200252538003899385564229065346485926382859522532800694996376491317820044662008356482711424198214148140788800653620617284232816361190688547262009257284768530522597796083797427427856121188603143549528150249336238836597463372851602967130222056025847646370497465793364703568678526753840778211708529976725792228522230369966846142931958922280449794833180334779649033848527723561556564719311119429255977771643941801510465888052835790301250260204539324294449121719120704075906924311067178979327085768291754856117838235188773161930964057493925019943457582965653154499458631380814507049029052085427331515186701966040429617945272651094179827857697142081945281771412163001634230554803664830454384110739272576109036124842476395728172485099086079818523269219043121489753705380642657262505436777160582969725792894880565146078983287637945494979738926931848289308071019736514312275294548948751967009676105809216947720777649962019926591220740749606142356747545658036350557523195038751983336204440373730682289258083743541582787151204429991355648642531006161579543785228389967695027297959667253743971676273417200347819634284796462240644195853627676584154727162434898258093319283874000227378372498922726009126069076222615572113554464287280744320890449314010527968748861245998183011784482276141237044177450907870955182159048737343871050098215367311352291693841442951853970709727495809554013516558871718063979531464522926340785568349528829084462261557361969907103294437005791491065307603077780152564166768131614070911994275476179656276930275395324491903679946128880185277256658837214544598156240256431595913384113095214147116301971127593584275799134669461556696298427567045458844817534773637461338660132303057379293518555226341006876973023251229629328940832860429446492905179709064112100125894457253601147037995782836576351728689366678121793349939235337329758207083594637873964234697046032678437876381799985477267594782197688155061112102536652406739573295367054144446914444725965745532319211205740668439923135816309043925626559094522600748720406904147540852259939560986372108119486901968317642508724116000826425348636577603566099615718586188732611238338064978504016132838754071122054755557484321201091866215008770619264454208150408210458286786526863443294230085443301560365147635981561022438326580741732732423324738948815231805029091718080141494818618977946542568380393922157918426121601451639421392954835075546898675513797996348398850182219846649580648591788159343110876639782721338329096432930443755447841194464859292167057017715224406332651188806584860505670296093138938322610995359511151554906846867517727695751092512397581083597938350997665081309208448248264376838837251498913839795025548443556570893988876697532817446651571170173413038974348105227994674154846055552250078137718181672164890335782857370566892514524728464205168280260577212237033775353556160360342127726214005417505636063440930653556332825526679581831066349712185192456740119463060381207441053955342356836893929751508315582398669278684867529431762514691352564036815455636451385059922205202450570898066846309979117504754541858626764735168640138573239717095792850667512565062860685997942889114934319882227014025934988006853759442242554843443301377978825904957750736576483280520339886864952270126185079840867463179159076113403786953909805014480964109279951466326502755248812305979324881727991591506185725952493387096402409138971882186382749886718523595418477970736345825180168757974625480632258462759446624290034680646645646532797268964453652882176393304193632282922844102945267666855929115832915685468589631064401037223902692961810956682627196486392224048085329241396018143771049674725428281857811586924148209842859371906305791289566302331789115502864215313504156561978716850843862316577519230765713479358753643571925569709153763560651902542583387235064167617233609825975859756185570847702773168790093526916752707043915161331007856562025497636880605977418530612141595190262499459821710302144676434126151132128444160307945812774359963806709979562826939810093549622855682213854225344532222938566956954079021561185398019791585735264857809346006443009587573214169274715817524570841432851295579509596888479696743577194101478675300633604691137601181026005656236843512254510545975090434339666339671715810231015860487345976963800257012507138789573977591942784638522185583308192707760483806172804283292503601507927861145181210347821123864101192079029608330068354851665043562439992740587766632499372450834907284011544732137458441954841668314338498226350572714264426431278824602044862769570712884033085682908349918312361215685866237902524661816645163236222542936057669927092027292841298803737648407659350382146039519630019417150194120905453102328185388438816181189744621752663262812210426571318139006439157201525869992445588459142560868284916284086381558178471035417996254718434346875405319868302514123394588448841227924116900045174636904701812625849711696665587351709352280937971607684208949685563136218282904244786488089178411057575564166145248999365562732468879348569737204277586734684437495496714168041023283209886266169270857876252926201813448399510229701009285127202569829228155053290647115835960074341088648323573332939437627180234787912933763146645717702868641562758119062947907615496274931900225473194135783450187709227686020595421370497397057280977067576040506201674053265895058183851629691698556328429009729971028406739558059513926804273590127653437413066136099981361103372724784282534596972331802272167734635528467195346357722416901139812058653751907392782805504882260993705010742307499809880115828980600765301432026550998512715997399805168559847441518773929131050374817413751674743386787798984191452506614968237930627937371544429908658438820733290513230382255263640771408329668712656149490572731883464689397434602793882947066900826943663626292067021465054524576343247214335010994474949851033080656454573668464261796050652660562757933475997811722860864935713667595347100901260347692601410789670269111504212749404776899675779758739276744425171060939061169878591157196386530388996515907667399065450428680709438006609998575174653629373913951668215810683142121802404386794501509363831368302914964489999835742601178606339190729148806897901734465915887856287011294057537651249630540159941929194050266774797230888326496850485321032634858378650842952746174308700059915967188583601240971450148496646287448168588161638071786223406776634130254107349531469258382817590303054744204144079246529871957986255122145586835089127318696071141312745752884081877552908483733272859268350495856209647703146220036553129962751900363348247896881751512860560639202121429635423519561531533008044906911262713289061325780798640153153075613013061796762121214589227506486603191266649213645339745078147752299317374074245986775768695422986494057193425789763253335159678570522584106250665494707141803531025609137977205621126092776725752432644107977992901610659649482807614236444161702573202783728177828854330491814115169186722733698090057909822302522638719456396308515365783792876884483588340236143216033776782719059832323139768381444991068789414596259753439561243140312133084638288064837254379421909929419498932230164414645114807837585675380511003674141909342107626525634737472626606561955514827757183003025550118294856668937790341384935381119129533982693361230715995896959694542965583012908682596377174569875540643945523712926958631565802455212399370313050718206018201053120967948071847629078311119773481225234525146678830636518999648084858046756827239585492157565554667964051212945982236964916508904708175134763919971761355667204462956114917662083769175858671643876398631035311039753694823867935368946443669008880152225790889367016895711207519743994870297075983012770982908305522522818067023278357369488962584962615501283029767205889267497878872350629981006687425863770079764098802717013882878664328631519648094758044616161859852738113271340344425127071507947359801187168374068605980590013534433382136547262011445384578782458910973601601877862326625175799744855896251122705040367488041238765185491485391605334992246012634776994015807762727576753152307953084717878446079970797529414905741702467597266114286552660336873647600573550154091158811524012303099817046941659496513052218222974789234651039348769136309760842334090984252249800253205222986749388369867756441784058146452331453984173556082467968550436091449573202815006640778365810769947290994690285575224882039129136498381556196394519627678353494803666149625922968188277701714998411174379008072792663900514408156662318786821189212379275178664433569922398147342445219569111947182715810406391215326986283454233443652686961219381148102748988170136842133503579126501488716730710208102171695666646533099061778286652815604226992157198145743718920591616646480207966354627981517220805819397993217536971108183126623197143750626491227390574329757746005741173586786623017252355754050354034650975773162594377059478014979140397170055029447710755362633326676243740988754805794433062162331064918321683946334885305263700459294956201465159096911870684530256160231708402322503017050913673126946233868293448491916613896411958370978662344203204511597697895507152230064332198489557984931092150482720899942374630956912834205618065148136059960695454305554825479984988566183271152604035914328345321935467126652024748465964463596663181427742709779473982232799958589448239722395532243836509147550537714853548904536312856770951285997010524564383007897064702842348512949659680439837220361353930030159006576541022149328550013467722239838957583579669146774269951463286595580114551794428188520751762659408561540254494071972901672614713042537691175904104084423755133651220456581447808551296999948019267271084065364168642308757206797564377672733438082374106168404384123666785224937650286317374941094410112869511209335528858721732941327664356147034142887537394742552258627898630859801829106332854766136793047784441005468065353646599362103848167879432044866953486495787870594959853143460890718537315307595794603558567663780621468628219843563132379222076811885065249719960732296280600322953887687267009546462861125341132093039741650102137750731766185106879447125085769931265081731818995191943120084956213063146821036321468595309137317260612156614821704096760503067636756101707122875025308264006963053349370449522829444398399479163777772990002398365026459684033484459758949935669764788303862012317418607630952683276284153630164391897391721126906833912110722123631272352778274523235324609080249638711854021537709939526155751254362091773128326989679982497556275784950763078923563938133200893430280857526726863619373322347694256266267507921775771636827405811852075037980891428489190031218678748616014110157784766959893056749039579675655169333880038416914638931451885736950799623189147546094577726814878947142159499173366984390168647579512747858140088853319800204999702514711113547161082250176800057360164699846820846749344388080443884359731355969393468168633697319903979263388150056071180379792762414255570853489000024510403535439499661733370116271077983328649506074867358310169423730460230026020419295089331895907974481080778644958582373169062003339189858999491358622705684694488327038197828394226081474954094865001488485377942764022415806243432898730984756032785623577020488647528653092133077359989307990535532139461669735665980398849055248188169982573064985145730314600276230692353446126006624142208978826305923984869008872781383594752495435941212731734193577051364055230523721346939310512316899114867625586616277404638482314339443964218898533492308141465419412493077446892261329479140068737543449318385575843070142179990020326248868965922927643233245239333688902535790816035069698798463382282017319174899768613002424952080770364448991016053392148168937181626128094847831219171583057145212854075375972799432680027214387716749879829025740785985337162150638432517811447690027733011381579009718689958023588701336583665845480808173496762300154127868326930996272867109488978118205657975095204381066618210092736318944899017565936844732736556189038405189240876022052113454639635504958697789804099992236581977943094788348129181027634993325010277327675510751385648751388384839537755819814718183938739382499922727162719815389809724497537181055439077846951481846907200369994843490311225951297143111699773947357878383759600896032922094645107501731281826574001556557859034497820974191658838040868947812989171538389299635556916812723093362275688999742253316078974702997818243680249989417233325335587674597813098394254116490342235757970699666144449617252487779066972915297169019133236559870669147059955240619732651776507732541595048680795101051647454840073591108622178574400017375651042123022754424279431145363582474863349567703635759102574902788735028835804053781202117264076027993175991736081945288539655979082072854430063091354547623647739859900068259387716723765000276645524758082203127887884085935566089545349676923544354482858978285280842810924629349107765086675978511365238238736272196320408787599150840104878649728445484879827287224390059469557645343749338352424894679864187514003027804609360986728619531498430901520915657757431736732692656868452600472634408600846559746970589477072387536680542006309488025039472252513639669019372099843412221377123398777149215745877803514677190866338308243479566597286855740592973591868156337993184148295259048370001856764826959259335977157864471878438894977240965433675287942702677697900533064817901191542504221384029128343592881531996468542390135957109320864680324928061853048247929675602672353709487740283789333107351784662901071363985622964380347105087703014264739195022700838073443418908676094166119725313109187927831931000195586008581312563952624441888714418406944757488811700029868315355166930716071830051196101530167630695271752253736770849263861550542095800948405193648914028769430780748272288301674578096791995694484125525555637379352942217044621953743922960036929238102535262329849540792986873548140608996991763987970879756784323670628510162924473379186575643346820342135979996308964689756247030401218616565442238000918627828425785760374745087874819046600735153124927995776126149604087124696466496361103474659434458570042413513102094810772283205205204202447873173833832430562396209820597160085756070272952280859229967964977081020724722809286306067665760804243935300045837486371622879135667625891935668701724577719053234791388999000398386204473440253135855739332714265997918719545553135026405447824192160104915717211596619051541813649521082742129437303437831080742074680822932007711978872221019747453145329267010663928082774780172410844261802253826242307521970149948469166338013845285065177571264491837686716880243091728320106355969631510803992016151037748606147683236131724504381307737907479954857846599481128782312360490604406915984335349691720106417416643866995237659859464856376217390595659781715312053070036088746796262872713503542140098716486438637738723116979387427743289719726805689205739944678518577589169207345446656791250677311751745732629659614419742971808297236597993912678248404461337919891090311017407873166444931340890645637410987673649173809461879747183678575706838341292297572241817991126804819885521986375563461554334564251150611009604350290823914912147316516566683296361819140402213157347254323632600558370115780761933150333006399365248794307152916679790480539411205964627245865787316651785505316748787167438754361965147632147469881374773201221607935843817265259869770188450582833523694560549056264135927646372183398735055000542925097289178883789488869771499117752529935665277989528886590014347953897673951457552048290417948205388619195219732726865276610592449173742454065586722944789653215327761974823201207019929758764774417250583768401820420109899501913249439424350915838742569969443291405348139066089158301707521180294028871411449627635822330929920486310637438626756370091909843334039259627205951042515812430890992079702756749828405458761721827760448048248221867697205418960393237239000242309483258324640225136216891543602132619997936295865269093306220318388300718747684053935059919294358409627655757184276357297154164062107026694372437027182189875536076272943058482063900961788027754856513044586867146721133744854711640858827653677372379182587721699293003282705184112327287122457627627395047356566564737419453352240360794553230772573426093953663501006296389696719008417961581830534085257249975788066230520736738512719417223014330103026750163764089231536941802213346035534483507607961196264767359026076055449065113060120099387086227938588513013949750848826054624872270641865077814945425903611648455731039000149605571370190490101162899137568274054768645750234402799520272952998186590920242563602524753184331542476479763881906949140081429343297317960783909051322048012281543107516773487124199216797328346247371572279952269276388981376366492224989900368382142382002143367255885804312897058130026198981872198978154574264079059269027773973025520411946742478987675956536223357237510295097830888244730280952635597043629512036140040350599304730735776797612490567962643823277217069175112757900985882422040143917736823363650299283457673508787571632627695760326732477836676731878129612966486180738959849506261540228263004241710005973274332129336187504067261215230363164024063349527290192378612893126746424754311839215168840839987840129878240530374299190145544172079404300822626810926695360171460073503713189543878780286377964164865185645224805043909368135657937547604822018380327225414169723408079868599881374388866704386019620239484572738061038720977313537801869329195204650916241975649387374186955723661933649396665636656025000628118176826947348833625011204653713055906691645320999074910645895623885739911700144443683485066853709082823825950581460892574311444271129498401138624395362352171364859408792775355447385284029541463872798842362081004337693572339000294201115241207980746228392240240083778281008915771726277931595954901591336849909841919847434574154017224441129828930738039950146963087298260187651593883179769081773716778860272779381067635564905909589291543420164109560446709674348462812987393186360266470377385987786390429084785338106612838475371429386981205966414548373048399813017976458470470162324823603944435976585337590311388197262516850570419602090156152317846497114818840549988365744615718895138659483461999317170659560874990208079313134137025306471570953922015901928924671706149215841556228124489855057249463094029698019465571962117615679612378677491956084781862491728240668151245460804443092654902586105548494721591528672592188441950735425869274487004517631708339925218058436683831587276370622971414864494820397237604354715000743109395418936815016000458936596381605337348749853155516148815512187182426667470790105315016912098660185172046080666029821719186075926817642428460917317563016997905316835177935016819677773486356296439820712196672027359965075694982962456866527982726827642634855102121195817512753759498006966666375580028771282958151342192958067181597197096452042439146860267372867394069568217465399346372979366229385759221030355115660088978455991723896858465101159463013646476800671654560755091447201665627599712582308124228767025662567673080256417763127310080627446204392108572323140526629545956546820730971268203942125094320866810329391656317581290048130971696608512668277230245520857693882347019056515560417713962103526513183944977843114336824015684918597723672566062857551906899086196861563542817531489339270591197502386080529764880066268758756840969868189461965508266883743566733153500272595328055994983719177389323590817323695485652127690302098638625869819213832448562912608920170716794942100327589947025698015250922814467382810085077155142892630534868618982139458265351648853886657806925628409365487527509378111685531948142892672785697155670328963442147557145477084741890767626549258177179523593408201179893474008507156583240095678907915505336865934218945685177992743721572333347139649460461720642870242972341991992893362480987071341429425489654177456796682592046826699672136845322848906881791441716453359330065672922131380532780440130399675520427581834562866054158987322808214058077736644311393344304439055846263563666331397539455996237155773312606561627295277651084214457402174453307850314485045200205773135895627335996239335997220698741562185530091742681354805585346687824460361211826515584701926789496403604419001358154218670384730277286581332128953844788363210221786949080835237521811164580747035359459075419281403172011200296381227187642688943548284570769467023140510214159351919954483132849525209807482131413322910782712832087898157388752706384927814087602428170743187132597085953570602290608286820415856226901906244784421896345837206466782500443949623303859704163544172076736438458634585029105825451853328764407820966443055108485377975675051186311249725906907139677548783451453886166219710918193320077508997682032721718932606044427571341614475259014088352183965615585066481028819596931572268746333300354461746078009561733743074088716646765037119961315211405293674318299437414957714249738246710323425421199206109461409567387874020287853522209668337563967794463165379841680358344721398646782246968659343191832348253319586995926319527667548285410940503888656589685848865001802344759801061646230167781495795079600159967439976727210842291139661214005822977716579115818322627018629388483965213140904809136848719799637054384372335131048099065408632138750660259982633364481733472664103771544947057512753984919033703997154815438097028080488600203544358095429478774791220642488138582136287863480437099938531255417836937052342751532832900411772417963619693446240854189048399310589510042341854334310162911718525044423280117139500446731160407375693122443675068647356997647199273709978481047215213651115462267112368661581788597836545981677152033752256522431732164853211093267686341499347089954214717161828114178590166449854302665018514573763406711858445196678306589753004825146080571505823168518175978322772413965685734288200499441528901704183737899017904549166001689915375662034778641601616381825681181485353678917817438819015722826543312982003406301001976417820859343590633398224686835338905542383062840241107680406692501384039548166104055585885314745385167130631741189569148311053684887009253273102115110161329793387603175726682445069365920622622676565779906352808595294997756535771236177296518171777576802526912397002631095598441279946715618481731963160845714383984971649712858932543030999676977783970902002673032646507772247603093466238579460876391799601862737723933901984242203564209144616522876634200549857524238645454375546008380120367543723050962596696982323112358800737477346905353589790056965461596822540194756449225134625039795189687955168253945137181084047435796872785774755183695673339303768509525144274755411663607234923440799119025129156116978752672550585785052884930419643290544701981305760279064242508954851401265437197658504318786790301618955542713881390285612969888403460549826255228346195685515541944766246591106050817923589984891245102102112496515551677952720294881778036451403407858677616492281549277804212304284865907865669675344362110502076346684089190699444202333292826574918631462369885971631661131923774918230975047860488955282816055778998692328914943462152436968639096633048154300509772540422810541010208133363541440241800822148992607888597213654596890658514010860445654589531652081826833539011843518812050959349997060214056975886197572459768936246519101962210921104090589899180087293712796934087262930111466566789468813822316180902690241462775469363214594117576769361527375194409872803449475345806118733709553005601965987891124273996257279257527678630820023697711596192080090416168982754962937140371067776220419793253102426294809749091844783679441629645283956010114615684497522602105315680973037288037705853334398220041918701574947828082739628119519264120600550340507435031502102136759960093958361671422952502238992425194574688427206113905513310138906461258928129178266507486026207417090294982966840378512710605308298074445129445338723708033161233341787131298342752556069983478961699491102002235391295955783555460479231829648444015137174545126706719317842718457801767035061232889431200605771890410311446969431490196974653197777072778533747336351944544369150902638988524900315522998411022771117578803775058546899245257231618061931322037842025400112529692064629014485544769336876326772078287166675539044448884545191282143576341275789167974163722087128662537488601455070262433973189792901738227899868273848929044402514635798765215395271190383603388655781892715356646978787869815430879544673835506461451716447467759552160764576892595150289890084082491901971977810742924623478478590779589158584948010936475759677848820813060052237984044163446703501388373439071444529135183714713800641640724073677878490897959138002534891972052979346108282588178213490066974315202600865308795791998842994206083269947379089996263218902799963887009548196229044354974726052596678194655493785935671103175996031206861423195611665821949735716179855952495027643113998477001936452479644279707521538660035773192579066994585700503345149204957586442194719682284217278614549949713311917808099376918605748683637179952020116331682141242923854860934714876850465137912419400150656057835654606643891148277317687494385804154764196149795918982621243429467379465028997330306096595939639169751902727316570711225750560320659260566315983186956631850949998041102860241827573376973318339368301777476083338207306406711797105385759983916490978685394368330020576669178656455749922881721879436722665348044649716665918975818271564810640918800491283642368199648123263382316032237141306968335237630625741881375356431822431706022695787415472358487047753930630399569945348395166774570190516542304846894939080504139826194276914102452495299029679854107550014202679921853502961085311987293635452214521482655596858116210630954370132009541479728887028305181358326175036206873460441044873503442546301303265995648907383871554464332286216140184643093089824761240913298548494112844567754909058674978677965555549529565505457808915790374164749085947852636375922247317154862712927277196103766938423339216089420523048009187353920277777643212695120221550599436530525657705118703135059044886064290030447512289223105087126962418154995393366809521159964520887517047055414348089597305701511197167940339172574443295220073250011868471170738349296556249851308240945422157222368179904895392953642717422117170748480710781146367135609356449324066707257048666848445274993574191664701943699649678225651970138845593806068193570637887483063678594550548512526143804977061163923533696360251475403449303337877239850981845976907524478416849340528057136458290290510488323919336811158313822492672967246231553504474260802955595351132192286997389523229521763165881687767315126640862375032027764313814950445308099212282352828347283228676438795247998139113973193437104753880878383861324720334210147306447897066618640134738444089588003725576961981193817331768644310393134442963379876372552785072176202281695777686082308700251120919168656763526883840517727010834642854335344290231955637966502273416401415451488801563693180968776182484875098043682164370455214892079879095537249102430744222226623694688758184475041779961974755156263138501165021499825733305547489282942810204181303785424577388774821842135583967911114953217342382570196337477455108450103915298731167601834336380376440386747505151864814429814083706216608316925313788485024816810023333021778630342317560681738230884362644757346112129286888410688407032122048175943482431026843690461194295749953278425710035069981930248790189881274234979412169808217462885243665242752700281362176117483909736986187444259226333955569445026191330322457183928568931466602297184188060563734999981174081345448249120766809822464235089996037330598761567747392497022600663648327228587010487113993231894152593741077173199634142557988064786514658540515774175329040804432924762785969134842362030573308747790282262379915143211527445923099648190009465142230206304586458565660447464851259424953725648142275042214217336942570955452788430587124822894940132516068599255706058990419499827208365720505583609550437274086352212524701139514243790926388263796940467019956277400323677196841964241971871011715047938406785092137484183329110229930663039830509006589823583065736133237506993204230641658626592358664657752947325990892267135422353721308224593176935415024505398644207647117951437160620411493422358873070845922160699157269692657100129630289959280853834559646585469190924868068593910697718039379811130810560104043948098127864521949784487412331075122751886471449892357559549085927239705217000005176241684486587914138526363455049426005623297312068284722544672501170867225938648968418452335905343259067852047024529165777447626061661061312294552757291839003949916027971228983277596033681857881278926789428258492759477060977425113299567607285171692139329294969114704653993335669086296327198801455796338813187134162179263431432540478994228301623147866618044651244213485075998443772563245915271519643772085826433730023753767198087144959872569944621747973719392763478150224140171850694477021627289493926218101180041297995980073321553488326961087635251120853824555297779513298023834271817859408156379999483231162517058262812586656864072298098871840024044237094150567264933635638551418639391234221037180101803206841369421762332452402287722422147946103252734079024971640914998757899293534508992583233180413483808532827261624929654425668044765929818204122260494135722009885835851629937617683107314813166972258908316597538116628382305649820501893688066981422580816768947658680405257386541812431433425214929799674365554383280532768165504922374532381524505379174309627568328573543192677730733660423548673894133622810423664583832421917126320862315125338082042479386037260429361963974093718920618040298779774518757803152925424348197422206863819438231869136114642889178068424209082693803739386275179757813251539735131124695274632847892195778156385944516008257860205404873207452704751936286366235612285375283937234470101938814234176732699573276654578419074800660473832004035134317028774664702909156511775798371655472055092775622855410609485295644347169982453963013858566646247509332535016883251606465194677888653346837898826205994407934306653666005050299483933784672146576706868029193517096439975221496228846360370595465094962495682889378750760505042651017222423831107602704571134233950863589945254133435572196320490314487387622580977190360106100391118645150060724378477103123242046396501167887072618035002243842026058728620586320026431182234069979501501200997731449670052781665719614928431790078754862460159634109981668608194538163155459219295947337092105461721417582944479307462318197588121478732935696637056125381122510642337279888359663952770502061450543485013898891618164289291651183027610119596746813482901943305913963934196125724331276197032088942209108585881780216947622515618865166345731840415016583069627218573834234369659302629104863090815896679017131570944918768139970212118142452666817408012519706400738024535458536631003604798531901966668016543474850788533742885301365598299750024104098613558575447978134052712196950979401741576408507441030630583110452094870964386561372178131105586746840613036493117922089855414669095763373492716487678113737462142344306196846724423448005162703522455058913521416556127738982504263806500582612518151129798956352552974513124730082094418694610834064710912830475474105962619075082070187823885266090150657431625218428969352359356372031993915100250965737544034037290050458846734869004246145822881194631364971622978337469158796386856243360947250603385149024070534971284768970596753238358095988787990803997954960730625739543507416232773298256852318806673599022235652933689857335967034189823171303873979369133254531591626996227912153672783664802520444961502551327515189726266856324547042584541611619861612309363810600225309500998557735249977142279262132766051108439549876272666309712962873974733999426293134604899830655769147123206760453647139737705331336182527511244482030173022700685760158954868364957609723415187781872181087489245537800544983067685703362916353930812994571199819835685625990244427208435156772840727464984539918383407176330122383711510727395766232996557715959985325050456994191002537055414501506569343374473467332252701327096978904194949469224473466669277493612711609417091007469611601768760973834637027326254047406997912996490491822478160268418817285388697462133484243718063699378406344019647761711295076019150343255990191604825096120174811721166999647476937489886881260930466274332738242947590502512626733167301720564397654448480877691005716072636976119029561791754530367894681191350008948608974083134263461794681160761888019786682065097539641458403578577178522293863377036840362924699093899518068774678857937223790519524205922951333067415333956208199351935660368027729326181570450080465212578939304378185321458916549577834950717113654362593892776077118800629909528510181596702993482684839629662879202862959209949322745152561172221617825746555415565389586979298547035420309809128152170993047380493120364865097083967521409534399768113838300600354395079455168097995858540438965143959764667957157016940360494733548041408774295788992795704469182282394282714993882856924101055096419036809314850708427480085536080504436502320309079933482816136375496473193177264843366227249660043329067362691200102520628000492907385809878802475556292926994734406832660254332594444217652428668266941862225590994463000276066941504798999399835563862977604350334513818614436220769483087141960485782260467694884966722314924615528287292600184061115266927295846039035958883489687900410654263144368735051245455890725571941848761099646700030364606189960834321662237284078104510294098035584558115482629593826336766256025497916287697352822912177104104135934759518493962615975618228079926697852811902505291970750232615602601949550685539265820268185926433083910614798353754448890367789919361765556525688084619308230613203747036599179487321039824360808846285497417581597675619997976768146867602822914588945047336191839435178740653298494163886503083520796072512001790290882442705402735241971606695904907901356258751222924284807661069665554670066949803353527911874486219336802016137191819719778845590580768696762115182582032818858956438452460278976553159777068722716886496145859123823744593112341956277721811245996089221267972634263489876661389381479249505450790329463903338493897872938265658185591382112113447955247357714547566533437339345528088328305769095790129556438516239342295696259083078534363502627119818816665531283559326291199914238695867257664590790322631050632635891801276858712426952556367064437054872581490954327527779099573693150838061311303425430043245281003746104783697388976822973483167334346078011659846919466868655617050581172649923689227533883641163354460100573423163178502974876132334910350862321751833789854520429031868162062033315389236138099358871896309371116333903687371257363336489292336937397009387471452270828454984616331216487736780330294289948485637410832107156856280794918165195271505158324393124931472176820977391533386548473047013078550855913260864045491851017514439480766972502535945666533353836650790602599468025202171750518008236288630736427011288327526489663988620584337725992937797351880490984819767085525129248956540833727777676821226323568434247687250117808550834797167601679849302605359661086238831367683761970472498514760462906191987552820277144918075085786699667709463134071546536033992158520041272727299308728685251998112844665515649045667856360572081908604455817007901089918177663817114961423544077113444061889427675159302351263825095951454937720319908301340997164689616868008299783922021435528351609280415850707043742615276431568145428374000947050470331103261938498042588449128929776358854311428606114431679844022339095259977272701237661759824988945460512467265496999654276139300013653587900170061707814084353092078097839224599967065176663900442813894678489642653532127775042451934883796707337423003219212722667131580667813554334624279917019774194959900350519915866234203298551243776194019785766573578665135246282851132082797077361834727407882487156846297240306846787414475096273043735937151197090778250912671025079790873171648844392133132428171601489477578356679599636133305642984381731332654927898603881266902124486064411519002462812590873042737753587128117040668996178485193432575574962645788397149592203383093548641506081360962282812451872528336693081012681489597956413259670019029673924658778402095825212811313480866045149908772688162025788433952923498219298895951014725800915334575201320818271050416720347541010576495851078783530285431292026032307477834778554436114207085851174693952512239051920886779239542017995000131828893830742106251608225206967363838538237309959584580755556987138467900310595037753548539196367679933431696672040352520605840042902176448913106627244938676591434159875976678891050693249151043475905777571572437778215595498541196354648145578373975232365680375270140710906158812299841385209457973712811669708667968404674378893620028392100461804410425518246256587442950925137905365671383717681794175986924054713655461029883386430548796166252839071497114799175746922634658271289588852818764879681602339466471232099759140426369817465069986023321550650893611692109493519239599418799358951026005988537654811636201785981156651636120637880837045939967830576118057431237730306231321971366019235126793043199385894454588456778845093592156740321741455589908975959144869566732286126977005350750464475847609277139168103040224429866243641707988781371821872541333730502773824104001060469839379357035355133457966841349112959355255253995943134565866022740416168592973399425073852480350109374811748217702007190984306394600658013970658865508295842358957820799921705733996527990075343614324980872657302832654732990606570126151660596908754218163380002146273940151781659435995203852279819924753868870286747956131487629991268139089823024252943867208175594921387762199644295182256303530412808074418297763004919643513880751176022507580387626946586565351548526268812436681954612005845970148624369305045069685562378006456570224606169406592488315503030868077274482258698818326439712542011703693093325390387392842018093920167758663161197062555298146923118158424786737574235332519508191278777899152228116305646302294961773459819420190991846340589689501006454166779051455656322462056356338660232747085125322531224543898336998271883902611045417664453241408629109837874463124765184478044487047470962381587275554068985547506571302140735849711716000451186400585460856975588906354682732863296807923214982375689310150296821365107316987674046783440319895492887551537008015235942939220075804105560479322738726912667445758706369294302556980199981631925108387695281700161918329653332669867053260204629236099319414767902639905478587868456789618585908091974675204430708164497904421704403947692034117175540638048421206832773283155989248402525774642443943976679027989846051824569348558196988448531514280561913865595116938087575035657727792336122582194449844372492748536600156045370843151800453814625994967699045459679970272904194975752666571050729047788887647748223684660979199935959896102614325871910556961872942825819252448736869102311742029227612549232189196668775011191747983950529868675970437925479975569949535067738008821362974984671655252162799598888817361396312904374563810946602786948537767083255519777908089360607278533151930707649598543430620389775824494458390141549968697684841769296318424840140688866225403065863087928519120931431539526854666982833699636923983571217967512434214558310212726336719151909485783120093595796063186286494253556211418407792278562388153008565383684491934063459042242593104464219093814762670011640352015700010658165164256319531184363921570064540607582641758879029628257401653981963946146518557457813307641721222271590326945096227123696633051304374658618703961383203156804973697080596872022575650532936776181991763278722506742484129871649839501847584081230586460811718185997050909233383064965078603260920508189261037004597148684129885893674587355447148735032704186209127024385528629219458848600225396249020994136669623822853440499611555563664041595045505853259305163683539313950617723554807812914283322590536165114631156028727302381703839704359709790965175996857711863169542952499966523750781573608862944847543503452745988598374280052692805417573305959567281988295971322047900484952332344041819413619450037733466433936952612216094253320584880488159386158636869971979243031362581686643471597577309639938898669708793432948970363093538393327460754017753076703268531278403175515244624560797547775102548697970452055768572659574952682401892607158344735861230616073061582737264631046062655842023121062658088578303953427081605941552516845329232200277525367091308062557203647264081203773538385314296884838009008127493087679301821123604713862577000256804933686376322000977130166539106599746247233662607904317615168335076974296439673062802160989613468885736994014402361330515187729148804983138260811936938883965914791516846234820394173966950881993148234541097015339340383693290651504316876852145254212874422217136288899973795547535797306288722122151159793872412739372275689507379494154697167439053815081420389688681970924099471376049599826967758221829516368816361437551687118890574865368292062740214800998698916192192212629501986582136380511115366533506115390773262115211561403192510599409846624487439061764094275418405594464015723727043138379338844497946743234331341395542572315182710987930356087189841774279064854744586601838101840661043354853018840907574429289620266519849790523955568083431966088616997361516220437237466956854297611615277669751288117103506389081659160159083210762757321873387917612108149199704269631419787729404442719607174083113967901273236748903475969949616938718759475960168213799468968196461464092421977232644842434430058973679715016200909902620982986859432502839662925883084254923574231122559124864057215162988595936509680833399573005348152542745015630599334134953943382085409686336585652108354160217133387842888999022962314246978342010694351112454712086977574842013126757974772068420773418934981924750230039023030317947865702511083043641243970469171897512343296568290703745441481526015913230103007534869394448503354926544985011082938689112301319721399152751388652504184111655328775408305138004811615420149091419559805839451456316634848704341594532167291292668439413777428157036402974803215730959462095680309057948256862487233134273159757830165892310473320594390944775325396246517630058289193368198012765644001179968385097504795262607483620373153998949172612420016657700735957565561263988512242221852273238131422839200456997382640209353123116246549414400530443028828987585575978694148118301962642910434991214889126459016649078169780848730261668316449247369566012093510528773709937920426250063354147758792489981046138844289685481563930026019148547309823697871867878808233606548201762223054669488683425028422320263665546036394010471089730488131139632985139217555457605543114214300668831324594998553088993066682077372220139866032147511467236891364973628166123249762534569357942450904676900730663970443846329645070736046837367882460729456661655562870108173361239277016124570036591954927572303359431388905737342277759587982412678869619820228391183578713978015550565489941505148865195484912111129379635050454190262418086081141772092831011165933157772371480222161126826848194934394661355896212207858096225749739429929818674687745287208168448067299114286827719120264590616144087817590932258382905093475716397438669226786988332704207763997951545687297930221756695701639866468027760320016849741710654699318476595200657728689119222461692335469097912062819657214787042451674277304011701746705779511657569010938411584921864810164932783787359861915407005229200721773957605961091481861337469338277482161222282948434398147783406548845591549478934337235094701417466372926396695853650616177740911970202118615386543013341965045976148476631622458326533779833183819168276489557134075262542627773904699667154125704809419767718884933304290767882012098922939007952109360312576924569607995286293709490199260106697422430587856013094808969577652228974833042165845122055680752962011181957856873456340638230341940653446269218252034553732450012615376813718014288696706634537455463891711578799618398281465163497222913224719524354122662379426140757488965637651009570895845315402020767035115522926018063029863286941102124480555394412668175240722542886232958852039062358581338662595872511451450845413128178431018659801478373211192482865681644922153120099979620846573447159718520731005501774194958944673219308769982536475893642594656428354387901113360730717809396122160427131729811766894237169242481764010276221780395399987681093289770309510317617751940193120606312251461172608310641763814315938318007976830469145895195862111515102358605347751724109658051452220188573828182753292436416343772122986721841274692507382317688713024575964856456374458384859224035919418907097132648415078723086004425209253038978468827879249561796754277432694151701411379024817527114877224701378529241057185714378831034495274345481458986430319728342919354009282353119602370178202622074328273093434811770893481980541249580709024473087828466342956084078835552363965330743889663326455658422509327281420040300758432364446408072466841531549289051115011123959620227714057829284885459881945908911100355161827163599141929261263422097281315768716619998783480982924077283319981339546722648489199135412934677049798421918945833706222412402700451006449982622345292972388074971116483066699891358396985764106312451019874839942954555334133724575168477115289718398756693875189162135406978829626105141574193509604778639226809477874252746803159223089229918383216481818393721921433473324798829156200523111497744910273921688804433144018714837430918729581650236874339208571377250112824699287980397601453811345626074425321538517966546706983104268020277268837720903336276874370775380081852322992988163431740728886950838525567445452550319045431699594757852195156256697722117706163405353796567253735269570499406621039913142083110306167276406661842313301300009138145777466007696172065556983786696691436456944398411923304183936768171049513441486885446113623840024705464331115638615468320390010803368480373299032719922773602885530175461566158303190432163912115820867194515509257518154246168126947471916079367188534728198541781184930354566608296791284164138564730297042848276506049597232037113553540149632410959831424958244055800536532691562844113740558820793111458726980832254089782541122214825023567505860188277466578024940692304547160631455563080195832206314989453318585276953016053448073071168650672646897511875449405553626190869173427291035387418704328916917411356404788865461478258303668726776611432470400404685681189852669395793876496848451200880111996545601965468728430213949602569030577719259607393096357720466813501970350417559927253684545356880435920010291854996021452353857624318380307816874402235208783781438430605980677364478679000407938670906000883661717635458613280166722871442660164590522500064915139886798025889467098625068899145336034145672889962735786566439200706690662898821707388688795587202075341639697027358639113770422863398008405266132323265252887162009571361732918138860877898223551780673284884206035434897882467409408942778295293674808631019288650957448809026269539686855782905771793558747863810180329256801415661138125064148513067996900157593426431066487276287689063733683251299602742222148081569646943582500779952629278740683089225310863993628295266294006764738002289064255310141445163296627171111578273805209180991159633727434645378253053770443241050226363308905425835744636879062697753194222966573192358817810216363717732269343915265763589600488918340875509517849194263079743937991050997793246293663122062841812795984626731717913063706982180158241563270867075555170012916733336754392051573815258720537757782961391518564305211412088485168804608510362546915036170184549487753034522439833221347643736941404370200358219651829343233704634609937307330904664223032376635309542130153673333606985569081406187977478585203606868405940961222158081307314950521711252485650241945622660210669596515292501005981623778995278548737376832713210625079953922571299676645078482998615967768751803873960632770183070984959109809747185425022452775041151493310975430016837632398028558348939812959162872805141341627557264713662637396521243200974177363796601683637768357204802177825897782187252692797103307490831312976481404988699591906795930578659010256517570472684195360273637054085818522114350559348057518197597426193076028671753979912213028905994018477668479845615514988899048941574422347848308962830392557938243753467084644473108353739579105456489296406317009616819524756694479560263389990044475774781416287336540259198590171498458676484713206127764009549671203497493394076613744081562154035050717387884261621511627064546986732022038521701891826041707672950476571548167622857642900930299741852313869735966301784246658164909235426851673880108244935932543703748206589348697342377952885881021132466913709057254592830399825640980819410817862829218571650942605210693584275223700069240469572645482222934410645724848846115546447752304112746411745694479318477720548627723241714601435930881795821364814420881295479220870484435626850864083883629998398669558641892524452234797542596448884909967538404879997577676547573755992259239101190780754922538611215147020264796172408742656351666184462246741998762212425527318491423047293854636276964402644492903277702392889045954744100463301136325286140320853609733804717356440165082235110671296429820869225755072097374584925243072037248205801458147605312182949190892871655009044308080358514255763103289419656017854177679902165683227506243064118632044952127866566422872015633038329730181813381211346965767035854537058272323634341953631189750622443360821126141072506533774983484105746512682320581296901983936964196933442011342818897489147344281460711805387418240429239644112203313750840382015422770334329926532354334052534271153543190025252171637514821576996897791064239937278959893714388848338821152211661367963844959437973743327691735421328273077881887407126246691260986439672594312953302718373101872624345127889928505776245368657369133364167282345364320379593080439403063015425792546698250102158749270208985379559926372276275420228373897286686959634996705224752398135904778825119625666082531918307275264799584791414379888126273606905246920377920007331127217306914735343728479301238525752564707811399519940912745231312519963524406590758828915713434076286469437999889867258500625828849581384717187127847306142824443016889549281548150139599855154651072596760839217998718423844588467020611963181572235551313573983535862291835518004910001911201105526192298284896698350451455313413236166687406181086547754150678008244131517035982007444554650608654373174241620998391417136573110306222392640146427469027922147080073317272393900286603636048518676773923487955140889061430161583874249591790196345693304737698929330914113966730590311631891369908789528418727359950528261423197840264583866257666898787331256755710280113395755909488387503196663611809475592112540099494899286280899639435767330666666153599621232192079909937845860137150708168674451889616542960091190157236960333406753924347669842267915774275616362060321171067063114636582980747325628563697281751705598434353311282756510488517672289865031668877970889226735036389125539084558066557738063911005266365410156788435907766530920856029141885155528986369198128392306819393437378592223493843809435919558356583557097844485439427450836454838120185087146779868995276858415214433821414453714324623811891758475685157778812193852379366910791297635619290754751557297778741732435407048476146687796822680908645161965163940763734768971106309588141234479821418003803924052938674660427943230777321258730762425175902803823517375567801920082658040159826859168314253597029124922497774827073096283063862762927684932250266733865489981304857680090527745287994818736807569323121840647392545213751512768030309436427124377921769774143903946791038285217319475429680972561426710622310040890336336722131875180383398633767165742192010384690549324233397532060309363480294383758143395209069464964497866888419098561847097367607614101518507973636329501406249227640975669531978773285455488775480881669599577422867443011483604715551886351269023765132747180665917738908562059936691828334718504436159233415611286551583874933521923439711740990574649990562177586847810113629356843866161633655202762834594601126795353182602031913180825032965062375730684545919833185562782555427764076236795996049579246855011860100496658470241235726362175367733086295315208088591994623487933703551040642860700412286284025389420848528685881384926519372392412273559843486544428637582976362116644134585115560232145160796017416802357821927076117359641829620471299387567501677302526381124373939279811675627231711266135801802700019007294728190974394839733952543700705555698692958330598795634210091071285033585296645365673514091612709809503826036188189368638343355809722005444013727940731886513539290538288140195674552978203599615919309101872921143501838103369201926651881115434756176843577586248343778579983285348768030819231990292967854349298110675653630059574008755827021730990470700003402335458460498574811616384769919828080445494036631386057615290541238688914084953539573161479992439374672137277720698814036095192709438374083476680417140187008237811295799157781275608009364960152386789546002386217344826011734182055203864326472446997343517566708075828647797931913912784237568518189613144514948898177025087652222754393287221925194794397285092448222239599606166330703052163140649623252455937903192013041241455277562874752314984816244235390050499412679748293718250502354652207387447302549486679837303174720051700678557947187434554775540618736232902996702130087988406905844772625539782908521526738827445461569512692829409932182330252970795417956617391953245221055515394623070485791260876844429593146508223242334182899072629757486877081913528977175217915783843999140603314495508875541906114291577592250878195739340136106177262334386792265212665707025277661154559070501665348908889909541444536083132378650358480670580734988702291774680345082805813158112784727916758231931360922974016469727616387302937497526421067182220206557894190839271727636302900904790537168954676850021857371584520815889301311082901827523639750524373899770016271413402790253922283966613181533340995563869595963342553434086423014466265485336660638585874160963563786544360802128105766813609897424065131059828705949036564897724189710581758806489526313115009094192510251072707392369564736918452986298634704415739839480771473281561757692630866449301830476760778071341514953450913005070549006241223909307938519822086806668893128508171036897479798895274955890981088301798017765293384399688761663386830451988216483563886555831797365557479179706473965737685697964016132043490757959911090685645377737772839558761283751508105214318806049724992644694031263855831489883123853983101332079037379704497198976217295931975856601426192814694507525632871958214024485437536544662532432610369694233963416426363952406538418462330531288935915950554969693997791558939191339185541358320795615007200121654104802254942461445123146560658811137759546753914978396432588870123825165624868072338507671392355114477194142182145159337389169118314790467608849121852344381618392414675835646607569759267120580672867085608905863723760505850444926804505202514519465499568126857985458242145327704437159007993372354393905365449059774410182811081907704860063530399773798872438933602511303023220956127141560421005603340543239872188900308251544537405851610546546183704060813315887133615285771176772726254806649671913769222451469506260876943368896678568278885627426502993052711173910573292741624043834312852324423972416867247135379701486726385042226214126838389683500103232065459403447022890640263091613739647575285090629149875070740016827237631171631413503241274987135882178581755631358479088142554518817974580485451897216458486314959470973724061886217891282444512310445616859197498969578282453941261512945103642261612151005678798258558868277626752780901419986043053744796848531173591284342038751322609408791678623393995235334692560611441708702569795708796652402744618562365740528826083658127902342321058205122658469825081372049118123517487933437594974338341890762630768652534946895333060639938293370051357042858081499651650582225813960995152409014464194777004928623125388570649064316740443742412710312248770525117777593960145714245043036442879164437361112469321391708987440199191061172164092077354837013886745426548762781952402717068847179346507842463211408086306239100477717278018548692652648664339630557366365958365716145439212989877214809837936675936405424334652994621142837477048466726778614102965589676172648619269109385472903363151198079465497379414932010900739385535397984134076395462609902411218362710301031233409247930161092872622266095028729358248618324179034288436688462882893238901970679046657390607998442743852689262017688929076434778908700318815940000889101028799170071559428070904347644940379398597275601259800487840237862973675696206209072251644226620072255884459572167287735324655065171962609390756281979173546908093409306774107847526964581465397726094069256790962422356902131359171229600824950431547416565521590878821403205758184564749201793819325011033803103455925348250248831077236435038995976234473857358863762084680960739218041893970165760501299555903669030944019278689737648031501866213151179645454274625102006675488265579472162127635600962685203252014594414678576333045003019623476809349974424826960352558914004476671471923391529709963680812270899900001597017697790071081384058331456248850982195409319461403787767338871767994896610013981306841540413032510771299823165900374134157234595043839058800629749669349449555768975246385629735397485969830950689258052849889723750465935790153174856447579925320593743714353049690335863589256316859190761254974246032233093505758512070118560899906117156630142899203191634375542996112543567582844057972845763107174565731890708460241092637389998926260234721911068908972791217429685137153683928144221074103846263069379712027177502343758129158115697417444961141905491630806562684866732727485880442619597420485288386135302515053271903922138855887802310522884477220953365187742116284033411080624733449075661860842548452529373340158186404620756387434167414829184389920771439936055143859622971915734679774089113321090667866326760339758560240091047040364711073644915876315722179288172916622673172721070986038332314683998446451600197679908634827620161352693337177393272637401306549291296690374046803962082540532377334105111032848358372070813236378182677506293484880682106612773017383053331557879129414367373038939347340597972999047984589273726112021485521407918723773643506545110293242026950092952825100471832795414165148091404563523399695239790974901787359274901830423868314881733031655510872187418418191630178506898811569806427931384980499002685500976513258470728544433140898765734215703989854400401395973203589140643955491033382160452322943513555844622409845867245306761089404999872167006099719103919537069477581696428183370188187847476095538498637248317870294562303296683453895047604061672537538270977526287670585781058633408316496810725809081507895981596294115720844592150363562801705608332260572342578888547036781186155446881260688133235079727538878251841532236052624629453366803040237544884070267912462153599414593803126429133648919718857850764736374849461853118717744593265935165584430148841544422942382853539287926996157057437483749187335380848623196633422993734462751569629774278131962082861957240018330277229575834338395487501246725424444032346860907712288136297268636820934800529005748515138646013681486833082075143773110202387914173527773408245561201942091992196031284768216399218413706129985646424135044592359785225302570630913011979757878752867337534647770988508893275137407324774060522052418108890227071396325042840250208995130297211729423374735416268170535790829166622680232634090437367056585965643342231747265334179213861845603786794577464312005241331277660693455939704112704533978692167229332147416292582028779361187804101409868742514081608662373297693706502762124712166910500225796066958384777900919315042478272234893331813264547601576177812310855442449988001513137498113289350245862712201730325122964321065561502873590659496588476858045537413205991770062908431253247256626383126688177284572826867171581295697693805168749138724609875238411906619231372178106893805778942184364811498137774729576559299860818069931957080833245024653215467855552061436855707034363375557785056129464029680245389718676874640390052456757055412110236889600560583340824864649571971729430333136653102376589036987251344319601767345344343961613701866875629559730604802680178440361052492051632379003270758273163002956348062605644336479896699513563179161946553742335490494100468160815015726245721372060154537908809701490907106308141692495093721833494399558920170533844435715631376871369770002138144310366080504991257855966601817923409946960096623838839754544371602128877386521766621276597863527296998931764730670509225951564255942375658331656278199154649194838896583570755081954962055023127109905096580342901997625601974855625593914514141487247836477168942017044851993756844065990927682208494554774493801046109950485984495943446654731643594837052219353090647448082376053236795184067098787321283162695514760576737259015568035618446934898970444978617518627764049885513574203095292307938261996132936829829492238255173403525441140839271126082782413913010373438124223956215005206291570252171850074850361099061396174404116357672949710923282507246390499171304387201438917780315615476808949335334992702153433323328580837329591580895904446040846790800839213479748536899880256655482746854833321780160574500408312717979101445152010697237156459647951598748413894529168816296281319482300065032177641156253036480856158770335724192732774731007953896813124836956992814743203300790187619369235997696162982411456148666042117402390312674574967614964989186034832979612809152795649104196367000270754180768380328716028325445803143638366254071943178414154083988669267568455803123762754249757397279615371126490285948901581197206452705158239954854740663634030627485754110265417426428777143620629891070510030256938589428238428601480975035588635097905349108031295924887247515235539260581801335025958855906638818628090693642499021477033874618940533454933712480488192131550326398227705676238376559358582259259474539473577558940860182389651722613066639662449418895905666134734617835418079657773102003161240820651892884020727107262440543841287925703160187775246220645078321785769341867061809393367306213644889071189578722514928424949526888918737656635176331398639818707015313336136089644242640621603829145332528685226375134711541885910254045921752661806731965639233502659977344204009636338836046560507373557629512106846436546238096908691643692627255923629334305385097651683413348534613452019036209911272799630323163261672662362302436612796812638276935084409981552032718490911216365233405936407655214774244640985708440486795340323971687623120681973486369522936884389936438855612707311218249808838847861622229039449563310062530392620971079154510797372864638209894063380730086426970191613341483636515965383114371679044111197413690648786992657957241052539551365388597764022074041965017843931685636395631665381384332395566877872810397576101053924353665504144398542990352549564746294602470008343810288501170913125417179170264149577453560988366103005784680640722365795777151261945692679368311555225045386187936608382089160390967037466597205651266827044611120547148783169018469831970505418541928497709202075300854119126985407660438400922394467444278176017906653024195849908895164650829516568932648119599645240296760625872779190291500165784979419481287656700063105809167144962699341941475787550790994783941673740232538598035240284139699256850515212720977547093191916912974729091100206952215132685234307050566158035147031588834116101446277662457579463556329667078264469576135788717429864232637125426389536999821976455309052549324092889944393902151421727069184064353848175413293259371962806794532737808017823061042462874570262663634951482103964247798935134949204458503412385225099189566674498938330459652397095634369220526585339299732833111872419345269289720894845543278600636057353808942146855247582101999403462074187191765254638241335456374143876308362331611399490637570549258796945617747414901445220673256678321181970074669042036511373168548616221034386505767046755486559266930381043919843814815058569792358262495124352828931819453102735738771370607011102632498476841355831227792459023445607619895794736610955717661667550315672627763929255958757719504572550691804749248304042669454636487666919059119478860622161405546614945961428205865802188854841955719457952477476582300573237335074655593125107956255538315546213584182051420100433483280154596519769317888183529053141349340007910301285571626897515114872366700443653448828112801125362096943094853452253103087940638357335334658535457713078922802893786067107333174072587029378576956124533080425797697008152838011413734495657989252937160214222416565172180037038944323789315272004716396551329339162880173101864662467274539887862160556490765815603056905121663085967102390880886451333297666870550457020573002640218821877304236240517259359086491527721626195267942299870732639176179931625816351321230941312292490729630853146775808456196332569661040613327879950526526612736227046756862991529753692541055801369433458378075819033018937901611863197802230031265735133491795247163165651208747690626864682775040712052966798287273470866169381918739297938779120390519726004236574228617440507872400650999983333998472876661841209250244385482049508582483284613524867614867251953205695775376540518471025148845286152848055786263507272709777436599106176637318127870112131141150463535031522504990119934161574275942448940433713263112448601983362574194543271192035158795512769555489700856796317786493860690750272116188262474609041919006725397692155201856909108349821548738008809829967602404635980157673593998495396361374895546397456265450980750040020495667496087079544740525265178788679321942740197643856080492470850827419982116390724786769209900973042935442932884543102205690239299426417176291847806017548800025121605111761575820037198493043283035661333193178732373834569241758542346385998836802417667219008759694144970948552053559403535764329713510261024487135857703949525450837717614754815354437883089194105104599521155017704534520379711245606363507132355287162084477033923873640578929326131532184297983008498643207569158689742975167678663845301338106096347164977179132087433287626281653984285898457871405218077846576838463282280638410034474595007575461573622610642008077031190761343887908400559192762504082235276524692002340240673719875920390018896907767107339008154663371921637582656207117882050345769586527192180330451763191720110193432578001875504176589682861772069904499790185702321942719905619998103420688941358687474640245970242638771512428204564767105399472282791133718335124688307636534372004055877905790114616820694682721912633823260957683983232224968462410761821162150492947019931734210997265909731403335839220954934334406661055080407363480453410459269107984635479776195672312938773823408387639037534792486788744462254617470037951289784348384432094240795071551554128880843332069038863656662836130224026259757861475466621441521121443886380759715247390770524094807534239238809994651787034498455887109284285275132751234971458490429430931104444527454770611404494855819902080498062145116545536924297965118648447964245251887219476391757307579922051009927523556748855366452530637620385007108890380149786720658339399459503345043259268816195711682978190991390251216890797827725429906492681610133357018986944990136279595914416089649093044335308022099625410453205780301674611779627965767267155489276901429529318845952321334704682038143245510164133757532148582584868706430703361275584127281323492463468885747303497737289191706595954661877821961067224525913996052631211346929514886527794034585045397612384098183247965881118663958609114927737687684428615219226807628763737321217957156015828954962157808301090860269918855429417752571282587279723532150467071634391819988090345393835762775509773561778070622243666913367266235315050743780354250522327131119388837092474581663407110765758338108302089821544500822233526863898779211802300945414002676671924052743185036558835672777367164348279769554786152978375949473623626370894524814945037280409292298172335128709527556721294085445140222962135286183265297177207980316815355721220692835670190949104744798731612123519083526972350982883815207943246569778653340119309175002677852300211201712966320669416184852029353502819975391118825999550752752517638785053868472413813825864624070145930471779933974547238887036897289558774846055718548374709594854357288979133986070812266884775819314196299391778316127948265630697512135299932008462686213449683025702128421687007780857005542821019590451666225805795501244866504084599284038872222726449799541101014280238413719724243024834505729427228953855982549314813915517892409043435028731064703143774885731729202977803556905977386751341824884720127975920186626146578770909884019553510945094120319246863684900473260677096409095120492641916464146543003700383592276630579477516197217375082716619093691582363888032267799593691327242526156614011539838441520749493488065308666025037928620217391034160558163635163994438004498618218347631614884358423170036189623792671501524610364021029801285379281381273718199662440122856046474551108213900088633997554535285884342075137122255283636570773739770248787165734891212442900547429582824677849230554699761037829311020911910389761214528019991805955438452329013666633520076685225027279027701452348623023590200000914035952387580583236412970543688595325301299132470192849788161869159859122216373623782291962288917280848551549622430633486114924693539696333662871388781425785245982213111204335344397835976337521450524993534591474299102693468972418500961855972939082040359322153585459780641485392914081212956349809815758647868612120821057075001568575113458545536249571199681020158961819948346692794782375220802144240907504830378436462325012595994176667838812620170667056494839762519203558665037161596693171911039392912882613803803726330337160894523675185937258261665339338385522022672802092495163088574237731671141018161342696226708796208933775362471773888562970438040804734923626166221720954256055770319953518988390872133033972556857141328985491733591800855223628983379325229047307988451624296275208095316838124907929735079592601651959312955089304408425286569944120005439510139325042603781669021063732209767164113919545730826435232767626917857071409749426475981614314430323339801313562457308665350037094126546938800851606635271830028957526598916775624782905239190076453402807109341202209912308618593914752289443514223248829235855633354770027956668528541824227379583607268814075061802545505575038434444912129034983104558275449522193568428401231553877252711334916525213961613239422617475506310296073597878327606846873737306821580224141195331716277480707064450377292109660199743494947414206270881999865585481106948645155973251523397173025648684183963629090285376562936735382391180281388987191287128966199780819740278138748276462667416909375264198202392605198526694133900637080223555944217805477674443689850968267638484862101850300810238130283408541054935337444576762581052706924870940843400863449469627296069122202259042995445491005751111531127001746880118355468934426876078432731842856244915007319302289300289139457210429797497086888190951159933861632860265087213083607891602910305222706986795124504437216329134511512876121491785101968449226676723277685626860663556830263551407211045141692249594114633161897498734620502825288059487190213352195332459783448569844804452031558063423405182686904918154748387776256040504058708088235133361751491416216481806498521221692725208971309121019020513648296758087881840807144854462580800516101731054136418343609137287796810153160214667901577694091944551668624189370047355841045973075148439432297893437518411429077116744480089771410265597572475918626651565577010618280151346818514300270667482957956347645436344922531796161962465641520628257243392558680282483381905322478317664238324282128372746241205350953920039747498462905982393060287110186580006481236925969566697970158324846103905407201293924471574845708121699814304746736373745769316850501701572976270980197502254414994463083888658945621875554457943101576287501760684403282427329923800856904352017074798884839344665530036849137015428306075577111369008746827421190574982888311492115302743780678816511954318837684082350578950277550362556039725653974216030972103206407427264303406307156681390828761838037344368357607547299783069814967178813497487963650187742555904827443384863650037051672975273875916754431380370745192130696142382680972125778612411717395487237929809498254378961201440876849033740065031728284459106428952645153384091072461128394215839716812346278440735694807492543852784223358225622164412157043941767032786924973481985576285768795956243352368544992890718159558751907226197986257199770689899743528550221857403603377130270490998134458409399291053478772744539856968643420286684307624448023401045661617500507416425304720344301126772128260088596357987712261149470986673391371326985411462897307145168874238292867316626902868150810717272504371447739498429731439165391000738258793303544421442057624619739262808951987803759825674354891886139211491246168123243144799537473190434967578709167435887527717992113035982933030765989071248302994152748133675754258299664814516832840248630589317016130352763628996432788861170788799181753374918252493894430671544475596627205256723138213004265484118129787198085592225360982472607330692411714164835090562777425636205647078687230267319424035939419846469308239418762161917105174746787203996624818143933793751151887103828778711928212019976871514521645829892527611172421742736573373489752463610811551287719040799748938153282232584799780148566059914352084637786683721059789970547399022747293125911555501417245443639364353635534782448726502688411023580641188131857971065004313616792201395804134510823003038280291105375238602773361564790794319317926862531316432436516220680862905157848015210379365599636021195148816385564213335273864688797285597389342876148567305920654330733724535348790480500881878570059860924304875956268953196531204260139024333585285253476121018370643490783675419222880147610781236015740355103306498069074778274845302193870166737243010408448862254397330938113442664949165664491406936919902816706358051164466903308146172806108525813611517611328848460269609403438929441321600055122561239443450177408590547122733067433420180398219782845867810127082563220072346995584464235801924191883569412884251006703766591412731362036569058042897875803936853907363306795540775909662380825932489866525653745884760540125495557037936300083165766181132129687543112599397983469140832009330655256316934641067059834211240839928958922245228652708792953280780565903171683173335910832161620730230396185069146573849730642375409340557046395482321564847877123816286831780354093003869966224499546151062837304981234115375066527619082709662938911856098808035049943323288018260382176890035136436679457728299890992088777190685954989752075203989712927356362309476568169132323152884817233569684186523414126577232856686979154670726237455788630500345666827333717566380547983989253272349456858450119428827958301799361743492893475721529270718909087307082956321145112345046742908056535949753091999369804281052896751809275077882114013389065598010034175025178073299446047951332964808575916116005397651129156011257634891361727140738792472620607671592501000872771657686395325900807825652143534794007375459883758463912376930240988069667107529282973568501035908674941829917967945073807815496382431508657897791099990792741751996536643908726647587970147072106055757418942374788438099452659221974518115112689423251098246356518115411390081979580297133996084012402634002433737525114378206568682335962140592456210047435401020052213785793068404932322226049104756977586896004351448392038647010723432756044971390944677699388289881488241485862676853430437022082447625252164303113102442165465745758903456281342373323307703115031574118781580895655836842766448694893752042104640893963219390507751174320087942389958642116579637532395100398521512753949633255783560248559973750554561508495019045533934636582538123457606094149342165983583413896444957177841971928751972397465780207291069993690850332166211294505761140815891115917011298538513292617876021783114636488683291587445046579262078089376363423167476398054476096418589381246434452087399521307165624264975737272368042306284696336236695204880765074907390322631698124034656756909340848822643556697972163238848902358039057927225053372828088336614522886720124556307589819099615250068555398080321482086780629807049866031177157366521761273586041708485058846479450348971688381829578579520159059403507779759777697472352229144753950250126713277385104602616231862950206890495227679879650556604729171722851826622230183070907549444203522993243594903129880621479377040446446011403559827414817924010949119502384772024777554766324079552394197945424920107451955140470339092199552786749990867769710903933384009802316132787759669158225184399247260473340073855272143272714402000053288522795068392968177938778954786476907535273715930224769706106699872749548906918518309729837025544819763578541786570185467673209472150869401995053121925351250476587951559862836068130725764013388685685664519887186806546322225303234718249021341363919514494019542381776064870591192650851724291364628639207858843905543364624605316543568423779913983400560396896720343337962645734109893036606347024551907677341684984577863327908014357450031302153646373633270358533577539089332765115872731884982009828313786940620059353598259985004254856088329130444937723357943956772023966174434884434828940088243883726741231528007563824191307795286433545532162860834319440696276489645918838298627180329857801997951625696917720142097984065749931878737681173018622880892774621251904102856405920226843693242278706635389401088030467264371233988754945796332711136542969402988834490197100270435279720381117240425878453504636432294714737651679622140749562660622157945580621708164024708035148703010108914311838492357734207981903673155942435002438599481922830020919760413868376374010879928623916181326044276088195320731245168474190324524501764842397345062006081137395282089650904319186338343380162561981649060030192739548166634444066373950175357958301432604510443999275184333260071384726164831025170757274887204785922774529014417691411909718987631484867484384397997625203945763871011374365995223853985066024630927928651412573106905748165363267779688252179400766625569365682565241496998750731027868731746701866325043937074884693121017378309910504141962765924044441802972631840598233713547719280966258175270574496317662887721510478417742598204756433743358094050386152217937379544258039435640726788647827115124574054919642785524971466712055183227481303873416102102255539326917770858200950720982699884030461892703932258793481793262901858496383818147118225422845031574864406089329344740950528244974632483292495659080418660758760429065071154875920402130522591499425384011705860428323158696138391386678179639444427675401775444618393285823377737636148039961177488397136198252471192486259364073494193648634415003281623055794975873314024226708784236358899575187178433534338719954256440940868270048387555110786410800677529472231791229386361012318041263629170204412617843725347451117468117301837069604181893714611751138942805998592441169867971281950092369743952133034972780518088211552249478979422240708945150942559792828280919037566346810210509835672575705552586691210724639598575738296452689427216254237319544018004745166963143598464045675879997749661854763007904086319449831728261062926634708727818655843713983049366560608145536607874933869483860206781732914736636177541511697225383735063284389780806748659331653057779437542430687891499175616203294904465674108290208231868352531368608492404480888993603398668050787745341665024673288128347135572866248578192142213760398271091221722203919693273105909560169395588232411137442070241606979249309932350340014138645544010140024482481251962748474927550460169739265038475921279046578011867628522666388670906033962469900671545645221128884943061402454193865197808773480041144134494225164926495277813815442151591148332933217107379343374356623155546652348978486139248011572663789117629700744205333535142896672977203794813647990110779949615143144990904674096158775432607787871472314373128153303100846651749644462660304234783633971499591137069872237231848933006761510330252105156040885542579266144654756335679817973039923144176265493808628898216039852158440682802070791828669141533831821706606078757277975347693023702010401213910913397406497196337651713288859567013344016353703318657185329313396907500314761691514111980389703635196910272214243309959946425408065130322509715200604543371386597014172290457661417937312750357341695469437442817687827993245132295076377637272464279994439630229922827870041974502752185085854212217735552983554991392558635348212095611107329205916569281124790972080649499091672623312768292771731033323511329295391152025879554278351569970938382591818065004729858044107754261238588078637276764255133553086608373679495775830729863400462942918555279350377590315653658690630984282468147757402492312434657666418130689660794999556937806191561339595585081407398202917622115257833420433136911660323559834740385204021645647481890873370964583896424085186795726035593808690314158424597683607457182495434099789699914305104653485189615813031736984177163155316446687957552155749338778902785439286307183153260863533883245169898364460064590172036178965012258906130118290278651904401806391571018606640002509635973585161125965365388400162241123195642499558800003440735200400740630075458659567000510386364157886707433187348174096787110973872115145111738905874485861706899179927922050633865538361189659238487452242368881528396095039461111380484696550129448606651618906770550644279521711981370136784971523326729392374981505815189888797255345714514705840492595460278674885503779155659922724852071602053572125056940862761550386276552536251497750178588542270193538274717123460347538594099783221810590127424276351616291618462497472964041477040935283610318625271348541268565765712812645818656308621217220748605408875552661107479564049051860268583348660926888731828216420920426616784794578959245511937268570803867626548165214742143137400334616795044213022022381868410028830233290817607352355782435411768910070742600621298707313490807766044697073887404012417883432918021579274458762113586403637999674408182036024660294899636682029580128695328277011513807292707277187709102747064370095475321683814858063540260950013545895658661870393122509439998388591416106110974945076344779689784413066601151679818891095821598411058862264275270905976780236433200691926920575483472489813266934775964872907067510576734347558331988140652839723894103440325306181568647214459220131997303317094057482836714672439101840979780510509855121104906105800990770699733562240503710307575826670004990799060079797867423869707523974775737884293274764412622232803876598442725258751503051429821764230358681742134831487424767866496406567596993414019462779118389535376795427270435161395338364220005491746899620586753576365690939855947655930884149434709807621494442389689252918856699657968722485903363747296565270363157765997834616482507345730721426109404861343111720578365814784247086150228548259721821152149547598291254934244525011783090580649244714551574405161733919309408796397933120276891311228538006956321090935167608577329514453758362542276226271859672301968717126031315688938155707241230946848352877655069293296896763581839352319795454628873176464622281178074428325160301656291995642322647718796973749113514774652949747205454571528370326805576768938943518608592527992220270152337779780019190192877144109327008427733326131402401153272119775725134011560608523882259587920399425441970766602250239755007421937149467975062849575562304924679220983801799665271061945625817535389714649231668283636006937380346279859751401662628019299052489117349060369438114629332879179896763430828381080177006619324118609923530442311105639843242041989220268459746254473550575361842011596827045827511679839708920157296953725518797274380655240334773576418565191084016912392265016062224992893766236257110808266446969665267762285737111340990695238367427325505252592248384078471624030425065091761210612133552943254909290753282966834070518124464753243258398548814896923263735750684978110387688725836949611516954724453695144603791157035570822333522471800853686894638130443833440450620851872020298863115076820550593565558305796344326056684159884171254563025176624945275338006853592635079377874348978056592878827797958644637496023927169711958308979242695911873808999173088444475353951691103839947105673052184259599670427284551121116574139903665868519154946106920018292088259295135114059421482947782563682835117810932913786369857470818924059638520301743150767045834150616849283061470570267226295488628596870067115369711767819472069059610899668937966280409031633916182612818916366571037665891504358099987885558415555533961608148432125343548081080887269248209326387906052555046498305711463229258966317104825112266819104210470286378842569484423959826797993183389900528967939183448452559715426213844705854729950423122320014998633857936048878567801492857272426219009097629355347531951846417439543552393731885887217531500641135663420241754619504927956060872172676242157215811420337136155150936616537709500042440595554906344247832031838384802370048398370825473563681702458646988299189331690046432510246315089524177508452322404202941300760134256537612421660214772545247234744820150796766428678018652238255772430190073359252448326245218544662568947929437169871596119607599677889252298799764330430398134137585547604326760579144923784676677798910204985710342258170840261587382111415958259096798506354434068329400707456756979957958339749789757425376396516081637612758535190147116217292248451831331778755870973327369125777685715967661175240268949137858508402399426907369086581740622376103337708247666658708802705737229490132676725292609586948546132247326315324679570570450166972634796338483431542319627626618603294463145151315454334131420165612664695405296150532482983391089490078507398315997452231642853851400157405240452417112853740865500497225333074390766506767065931945253270768916298189577378177841909084332516713525788838451161588365463430262024989506271323645327783315031754502453473458366925590741565861332331699781382331087063379578043372314365062629057566965950251221771212698573287799995944833514652156197302770415274324015484055006417566122217106883023657039202630327502470656536358548445525513244598045597044696667047063021864597676476838226308567896590542705383137120270245937504363918846409533812945903244085831035641189070821455077663706047657827364703717801926069511627968562509999345791746516776036279387018328278259216517856861109028719769490126951440168764897704343347668953352439040973252851589677449067361746533288344925554109378997466149638556046509224809494135917711256209895248077491038586208828415842274125130669141801962830676515775302983810090556566225538506399749957440707532531523025996519514246257528437144672500866456354266832130277728415091684638231330805016911768935207270447695124197743071420717012454788851166566061954770569673925334580249690465829570377836855432897470530087033838626740755048517946674935183889491051655491910244565592039457871181280214715856827079942627964085839659280153011537514144005468524153362065897929510397589251882159981378964042509050100000721727146338328931506076164926108854293824914745166465277075662525443352180722034252403971245362541069883145951173748696110190538852430053466219455037373625771024245440970338810407461825320575951217508602235553380717468877599531955539182410017123169137356081746069439086760984186833711324579475175012741203074514224542738807698350696648750218424732788014689119113358922223837183521823231265645868534442074205422583222259059283192854036972587625074082424736726024722644702505265484792971229810240991008346808955314917369941807949952803120441228201826630165348097980493413197934635929882792790250756906650630701344508518778645010107915264114210925622030200209632577968707378660210754877473949896775744509765435482200298741758661752801390881192181164449997532242988864247115748561844286211342162669595663774216111207008686871210379592707275891879786393056758449717559486101803313768698777523499673648007101917031112797167363329119495616555384152861255232514290353487696026871934863515942283986453760586486350883959413279650973896358918458836760081543963771956123666890489265375421781413097078552037696475235074361429754297965237741755315597067272861734999946051859628907705611369127209585759111316644517032033193748811849819337447765867685452197311724137589406209536567686644119477311279703621496007088127608722302396610301084481442671458196801842311749450571110403097824465913130078735151429840627412416202398509804426750100350818603030937517743503534130703185573253451396388267523362247095921740570910020975080305969831475715210554570728509614838495379268076823504926866709510968257137241035684019708249920355805800390351155935122548482752172121532682723869930432806896119310523357454672483534344907985686649757327231384252332312141452928513495467481085783906317612738354001202130559952516576524722823809005245684774505121451365208692481416472803354186365870853772613887486475656335680843424665940923630261002777801770252514741037034118659169190491674593118516036996462438537310888786797085498180488098839916011699134164473075910209298411348535956670650250420220543951409517588873158622559785031787464061326992421649302740975890837384232704067384565963408275629952852305995005257146410926895162618284944141019519740502815419962166889176288436051967565041721807606058613857213142135194426115926845143765187123163470006004142637075158977793917653409992662940963684257699689203142611588656847313695430826634611655786266050263436706890142847615377695307505314087376010802095003944905620580473113004210984262448607735807434236590984888607117167351038984430650506427194569359801523840484955084811833870420024363553324303567005971321412683689403805451511357058528060864403545728918616816191243605639040818456177895663474246124058505317136568865750037456095685727249343373880866287694847920317440723392937816234740583043755913170192656299359371486447613026943417742804287957712060611455180651304865833890719440870201205745123145061572605794090500916234795965300478606789657530605129785622295590724626369982556428269269816562591563887576803579427071475952489347223260097489395549025706251554583116199919025090651036112563161268814020969902464978095875071701237185803997022547385912115238364058486774943318229492042253098288709577965387948081226087874802833564052825698164242231130251531777199395782092263836301063358674130661191986786900133371364508909118858700075490911357451990186324536103440500457592288119738691071130395272606559520399958684618399649979803208748135545998832133972255088193934937317035605079602674365573677994758006555214294263810912563334565605862062446595160389792934389761324967037174382266880645199371036254352794053602834167433541542585263064776293530453388855683734577353799109394231146311094395662341163007135488879081165795147991493188353380699932438223638359470467797597247728362313293557631552166482486942000239202576700243882757561696580827697886646953365753454582240066342044996741391853291616050619482358477866324766116457047348613976486735770139249150660932746685256025019051242817413531914001015798514413623241140811887767839512100286313250276481856992262258891721005120059217687575696909762497112193312793504474911513102731443235405590405484077409102339716575113593858181213390291142035254974003727206989635441159646997615611966787571690720165965769112223319103078478618079044159165560183784901573158122821810728624660644021265022666575676328223390626701058716945262993990950329725885454707683277393908217062450472406467972379524035800215222974227332257084848252311915544525102718262957128950267255096003916534763298048846383823215536398173050537073269485217932204198195884243501906379184084842043299702518363528297664386723806089687478169103231937618291547317528402469293988812735582701986844854754006716802167349384927111922900659047813081734972821456011532828634466574044409547734254948159799237317273191735599178504517120335690003447614077265521534699821036932544610478519289453712320895457641556291418833921460021173442583222177523340485164847917992610912469054786238195466768166532391566617492696405839162690506389491588343610237401550581683005776344569712187085160167780411790905136661261489890918627090103249343592770715909663444037465221018862187196573559274666422752805652949907306562561009056354868619334938203204022402675234925665992789415758679160562878200443691252761792519374273601661316802623287813603096589377355081337891356494254060383848601943068059353798480632160048777117713135308476470031022015755939739130024803451666639944161988330242734693600294812456881216365677811241952473428873554363898710055628988551212451175302954895430814259885723219440535686955326985401681634495256571556891919933858754137892831167043860070443550104412666238672789456669964420549202500292917847422221515981086205037421366585301263137950178607004564228208813578306011866992135413586683084051130210463332693447494001050329992583571026657277248174328524365855471471737948082749840799499130439170152209789162679983577264556219358916788026587966490239042617687151829323078990689111146642908559924262616431599473959400988929488812605003782088642156286433246637181686437373376436061501710438020931007650586709091032655858209687259647595920808162684475782074432027255501633344514470869123950989123977813946546268418482010816869890163034819719857384488524359718332043902756291442257880038321457214808513730832618099859327467329420995576726936718577078613672320303850876868430219859065449228556734480911929313754178852143005067060949983106655768724889332448443935227708379333464833856527253219357868944503590631265029941854894429102344415097739079079329031508658103853840263980015826530119343869538792521062958024088620515621029222582515234983316953267192415210924287292474692358821537834178747137108413596036692786040199300609703140979810964814657609296979112668673522207539986165994068538741005979656390221794484042374710482165200805117813587248045321104468082749436565333554841168013548235198441321006160999208652918792310083727153261380589776566312619213208266734074080447605753426923042805224502365133267139660175665196850997402952274339120279083213521336370932704705260721578399017655644905925760020578160420335848065047623234610770938419371545041718960933927409745062899858622988530539089603615051485807905818197840315898482481093434921847259036278082584011140145407928496959618970052217337253056114498519715877099910653114274617574541352433711641689237632978096389993885907697128244548620336432667492458717238203463464055455120845707678429897190214721009856972825352459892984230447875744963926206336563093998821019200018364177044202767469510565303012331779667048665215187448178979700649022104732061016306566586944840135801963967124861706816672808496971681717363387979486014182001138492815987825536180831276913674036597336467558329120600077139528659615408682682311035627669030684289508616920176077934584802332472846949349435264841268063787663745089770096146704476694454474047599783227460681627382170382809605080365167558134748993409112457251489244420866922003898902308758198459972545421069151573799626051469068299006705088722935932828144977584758895735036368240789954032552185393285072570091043229295675674716027078077417380692683052127847365641110581482011857799698811245717165013331305874986878971558299621336439012742513253357154391346298323510208106427803093984919679683875021649026597920662788547696838710058809773244546567981960588971919382058683535534484137007665724039724344613765444775581516486049169942117704882719794201163529044905885325400526491593390422122966357808554104190441840996151077830325483729876540997553177694137976507125829117431545480812112870690833510679941190096502366255594886664758782134923457753117877462018389721981754748396090991572239144079624581237769017286366587157078855994828525822311684564108808472367573486933131522813266036672161519710266994516451577454601908736440226708715213804431200503202284441605140388060295830081122652591575891684981278870144929660139626976002648379452965810158510499265575210605064723498251338115960226107999300304568500022052543578817206308803100198270979999500919891801752365608606551517809037863069983461579416176277143743149311970916697002314635697675272842223759569029423130820924943375931849331052805956180601600005520013234604254662249071611783589978222751061298603054005877575609672811065156836100650756273138298231789340339111134478724669596414583340998669017248513606246568750333381279106116558095618066589902132045529710628240157864829985937837214372912327577138396507855676222761448412817169445099469274708852847126813396985276782429069925794301778538889892180295033202077973611622798063630714434369891061997962572901788468908851779240166142382609780514586225656578228981918348388245180998191032787250768784855898746324989693651279277016257370095193619357505206401066166014682577251989863823458956552414323261999382258478130307614892955611990864685530901266640228944278732764197691025931479994983120649715974292419253282154471948342684664179483118980358289141483354660686563925309345597832382508312330647230691160199130965668585392045861538269927930712727677450430703739192466616860929157416895701279278451915733141730188832815943879200529613240565383515389502033787012709563173224485071322276269202613678276586317371720678678802760538335348949080283867455995665214278724923529472806440135148020047018999038162316639857687898121821235166680837177670219800003066703908384573636686708213127112943696689180974283406053162118700434020917394884967200025728652645808856283041369441289332980288711712767263902701348981899369922276044897304923582506407959143527837658566708234957870623254584738541374383054967915503182355672374575694654619364263226199433567775243701997650712843446823089985476503035593026456207476660392755124388487515134003557728916037308507666615487038891413860601613400810180086185645244593249599111809323849118204607097798606989030210798246162395632135639483711431233786089807749308758773537730339539817257314287307250649418732896503312547537475063645219050976359010517832456739661664513595841929445077811007392169531249592118386202941116219760026655158660255969448091262604035281648494078550409673127990997709451318296944053318353623883531847414615347903475114673462733431006507179266883892971899090208419022267132365716348045987152943549286779631305821393881414314065947871992681051520046864395890806529770961462313970593730484128931585416313638608450738948394250057469908496236198298348865639303301358928996103287399779621298616688800784529836343198611601805143085822624804900005284299577284846070121616692578417571883268752634082202700927604401586854612943491557140250362927651295016561667931418977496302261131310732825345623068711005451204006496094304626404594423759268461962794155803184041286689573741642586300034052905232338766970871615105081459066828061976828468595599139437178170194910435118401100595553422234782590264316903782790315919976560579664118369745156350975072836324568023690687668812921139696472478127592941213192257791859006271147139806375584820364629816993588935694280329525431698504676250223124788697708715647233831887990197633947962992128135917084154516695736826368378895154463284447396728297272393399125199934266138480993237174055906324175060496700221925952349192669778556513976429960082136636448819758742635735053584992408104121600014856838569962774359663940463687230916679293581384056786016272764661600961848769966512850793504867918656188890033090756007316491708055132516642855805916899771041800676258980869867628144106937039771206823961971573751231425130337510650774124266283240618419959803107516318288492183608082514217330115802297492666783027115568322226972793776717031903987098014517822822005006335231687568628718682777094368030164000414273128013535666804775447100390329708663196726468724437524630192891103270016580810889600588502369830927816301197300982833725160744362331691368783723083579964007869264008264870427776722926814705522350717755116410376332514503757877830497611990131233824820461317957223238263085753880328202462995547386967229562112480388858177472839223457855841607164974045432732557836506332721129282219581856825498131090535970411586104440742321868076747672693070638692881873669556588070987156940996538308190583184154038875305404495476754109983771073096667789383096356778918254493709333048421765880676048546672315329046606210807846427216011007723605648528221615843167386433368178077779884298580110451770527282739062030749412866283646710316423823470593254035838483560363414611916222487769665645621212018539637162144895013949468059974305644815963006236458110642972653451985207859432085992662770353363754249649015406679255393837318413609125626438331184924023310520752224216996526421436967410425402883505176459821614192934543605105991486195426967589117208736797002266902867922981984361068263447970389262765865173137661726606540103047619215908003655461259008042000547170659357643191113419974614415913378490634286083963501324581841788444051464801161528893463755362248072663767166597815694963011147556246883271646357134636382916420789040536789057247277834913485613635542319681576094571941722302364402099240579065428966077785722539511392440060812875804500001948700616694274845740747126428185886954908452861879848944555598418192815433818909003691901277767311540869547519018920863783315321244609783193505732851080711324600832994639250512040612467704881614939442845584997617303724535001896558275099306773093106891273701238354784517959585455684391588118794528043841706776736291879124055057321392553242079640404213176615712318329802195112330338421605782043929807075950997668258091465992636182716394844318230864832484539652282177455646899075686990364980911524222358717628733345383301049641379810042829112336824961216558759291261555685313681375499750817806527899840057913326043251435839022798081938417347273974666319203589147386128479431657037158876102668152833066612071297345896672342247413878490084632812620469443045921796034978640723030432666787363519778503632250346331491335737521874671605565575504232426440172107623708016444005718181811996373349583558715638672399052765638656213916137874987488803655664872973508260814959864738895795798472972575955240947273961380761310254068303645244752143225178282671366292824716497549728872394905940092392002512164539747089449034166677664213460239415529098143944420198947650841269839386797774382479986622722263536252712623463979094438279368195215083140803682410208107011912089373254188912229119213981035634004580563776798978614728119257950088684323036636905553086848589168569952910373621036529592628296836156276346427470253289221359781501741070662227723399388981747213420945313336937554939888118714950714831236745219453251620488649268526239966083760948570444521225450273763715330535956887406431636516889223811266535977923470531955369018507656014535673592128346997654332778245322899614767289892512695029013151407025032873946855291684667924381909673227202774265954226791131545673823718240802199402972393673275643344837603314177284385016059330200230472041549365326921591484339983795866953840708915662325797021916190637141619511080856133967873783333848735200514007320012611036123353196091970373865624665444636182150083543270136881811516496029193054169049378020296173130361298498698013481937036696220098601788576391195901163440356749784155807928819803650442007013480602487011509408099571186111367441557391955111247414166272085911517370722626033160136568838186383921742311251067893072744377802430854025894842639662784523241898488845305949602006380377796546262452531258618237791070834617027158938842348005800537927503085995233397343179135239442897304277891562395914629699271241792979146604002774575131683723007392400999117324952099663070269606935876919201583890541483157337588993954170725111610876888449335549276620233645651431007022469948444173468558245154765051979623677446251874734004471675957685052077213348797775099527774051920359478344228515081324423772433437084166848391784838957975527285206176347564587017105429206453713353501324149063892564689745587832701930841947984221547105131676558393207657422437100026467373610359132038168629706487327158878888616213312496532589262116587429457971024500608254175943017706203149076760207046450445029136190840136162311454615710158753817086969672232802442378526265075657414366176287171216355472817159079985349609182380548245638732296846428050741605706514796918372380696552327624197447860544162184876565681208876860395396281310446741813219757677098206954268186591872377421284771345777248215684741975379272034727174257463363446426170624815922834796041777568781473780607944491363624137958615482438004899833801961388362372256717222891195031074372977268638514988692793318119426139963268334593936563425252925597091199042527686834431736691376132695370496560261137974033528903793109298961226652282497697564972728949722519194654822390327780194367957960032122817079732570260497452679679630123405478004620349374815998679677353176652075929684434155575232632044904586194970385531476828517269892996103274411128691137686309461755900532099669438914891079244024245466188336546936592304745230833820411998960461150195472421877568088447319342701465603195379793713874264156789266641541853870358827818413513845921430405045746176777399720344313406694846138109738635259624080320009246002701507803129691171844434148215257035097172757737446119802241994250177094411119809597284284474738804555396447734767965125537944628855817313909320482174690879334096521221488718138015097899366531348035112455016421355886979616938764117298909886108279057631078983591081646644740739676450682040072942554550338532537535622217018022744060919845333454664207605626750048386797780588217902718041313297069080067267687793286407366271591935780331349005494803176452535279953963817726985587414981231778828660643597914710164602068517982514102394292315645896912157951891815062974374394945780332765836447893042317261930570058719921296799789453226423556965104723125114641653667929886012509682786881266040790308227632816822056604397884914311164402750197602917863015480366116208671610013554074660704008747285958073054738124734306055333400687764589156808864650272759306288281557629244143521727914244103625089397075136490164097860662624488902320705204152199751506194678517126573964551830387279396600073719998087959811427635466868271483316156908065472062459300351678558377004358629108248507858302288920082317858480107533677481535608491334327481695641781031441661366826837280042188779747435824912876320411242720183160460271983431392466384735514927589430745253223947406606856358483574582205138871926545945820214986536542139915060346545678322405669878331076773169424699638334734351484130045543030801216269342631879182922545918091343403323384253439014248769100086216363560424334126273228882891381324626505015787986799717036510484249934453395734445849861519472248835984973702015502928855685319439778101419087023412763721451769119114886842139020764075804331342995333625987491554225276272195596502203832073941871866684846201101657066251001767910741829905304016154272131391378307683417821106460865068322892812117702023302740027340454409575154270421523705618778162539558916787480736269826992216804061115096640287044354143282945235530502815256056845213342310798429485112533665754133131340288403324166241267466285996012360340719756668899581715815937235795143642144419674459523142729883724666282745061193248155624350520922313456511564640715837888004458259513794045720994791737915407321776791348179947833461747875052365090888357130779539193187529434441067662762432707772639661271189555890549503784218159461051554467257264099211406951572552122572495107781309932867431032692098970353315009775386040841335916489472403870996407666603531647218737910171407478617086436732183173755276472527396003422717859403265531088317229312727992943883715443542480071289132460360037128839761758496280444197797654846580783848950288123781038211797175429597779921739530511674360671559715124102552648808527978402372132320729250785068481572268096042527627291544749417657828924500563431894953408638520545925999532940631632760464509861986925507278844349207299630873055659251489616828251897565681338670208638225660115281090709450041057233725465264790607484017148474949780440069745509989684057056699125613158450107754397809488419389793447160882538457023741338777876159961348485402320004618239929904479393090272325573438350915318831929898252078915112727548551102868285245113413951783355322423614366257502597601285696232808619563446385464211137041337504130578300248041470828085184750712007942684907059752578592146617332187726511155157817019944818522289928635771704018321018284815436383005305918897095838450171074750612926941879396604395973177341398419746302892284815991141402967980660243875195671719626623913415546332296986476931940853023741459949223411290342356202439723631367097960207005557679072640771252494214355024023590189891362089492698439513543007360436340268258035993978950641866650413542835823554563430171380931613399316591971284639775796458028633222957399636777191894649258896321441823993750570253486076275828400699961132929794411254422697105018399618469665456060920190746367994820484078561999059055134908303798456103871244588747286215724732367161611456034637336138145936853764491862335982660526465056523903947486394333126344828627459717886573558224904905879187277602508321453694787247330734526554763718715882611007942482729350732618751112327298654286288787615900532664980860240092770444336972019642209757172578592294783062138350865323381010163982537332803812867977100555789405652566204634696459217627234454612059990345161212431791951384031711970189205812039869488170669906112441957100770946343240370327858847000554093585710914267136512912058027374351880137180969158770150704624501763027842412354133409582221583265156432993563141098775565686529748947914752803847448022987077023137624825389219168966513539431814421370411004523365885120766956672041647374162917687295920850548391803852390862975620974568913806432965181580437520878913372609801174924938981043298828931373676193215740206155996667629720065516917841356829172317025035271096152049354561259327952593522572527354437179947646966011629582676808517352886484567799522969893837503650488947719871691005694466700096172650309117244468295421137024317096853245722730779934012427871430773569314219452578877061462636313826683241000239633233487935957606005200840819773505189741856526186335215876305440792152055006099779042103638430699056222265894928175207573839955703720230105612565492866655243306780092876202395336169693777856877442361188585905554384569025054288143546169810199620838592981327408569178095347994040496385928112451073238960696903897957639106174277626416912481642299423853227232164230540929172370457672458267237706981926905222165213386795773656339382320215004651850527801099803904664067296440562110250460977574594000993515059035555369517111581361448681151481877396128080004036313156091471574118134763810896555573362352018121017732184586816864451578589116803485795307313998991571822451688570074120428356843519768852254201171392079685147331580045423185058480416217119411076440722400597727510313828981312309793428530172071818775509748620342566449641723504495750471928494910408078150345603736586286553617976829977427482950196815832912435134334238697207218037889650474500861915720914962882156912368535938919849550215385057962837609339831948406419638203289252669549787183781921469556032964750245372897512181274094538243537512184828611487499263159408856243662157837764997409539477183030811833530444229273130833822899525502637326018636690610931286469113952603810851173530018129344741419374848858125249494237292866966464865503512142838334442571658084769991841953525933592189740352176587136591985370076977236562221673554478637408370110235222100069146566197592597315525571085579829707620181382334602549179403294878019974475675952193156991345928111034420688635860781565296622554268911068412796340001048932785215797636752926520436900044189935846277609031211142942830243469979856878925938911204928984573086145014182965594961232547997559649755218564732401655715877941182256672170946954385560588452953435975768435187478069266403066892178162545996538323642022081230320959293993175150257985947617699188240964894975927844367889154005878253541759308727262768364212383011398173675743146920690004920724402364918091851549831358540247476265143155960400961619653251386608748184909768134448710758491320355611533647738819526686802763245476895114889573905698445545120638367125763988698659487553690933338836064734278861362430361449706402205420291226293944231993930150719655046812252470303207831349053830881085087453006760250616985696421998434293233235121299648462191695509252098060880757160328262242574060749973000261670963376836346534763233312818789825166356964536825150554453190875954608312103655637902544388139808636834575953605982837974464504512864428159311730644185212495480113360618477817216916081177087264361926194397743158549352201452541111006445305289168911972209415025559497269454767967102765308449079616635430115218425690417208408355782753103564463654295665127590939140133994700840241668473287178996812120989009070316954401635879531545159265508941312055158788548390274437340112701168892033240213101388604856712259265405988177177941117533276402912073503814561538355838215875556939381803700818836880196508332166198800835851603433121114270855403833152348425811538311744924005911343964647406162836430026823195868904568541348531553975933691990100393390588554979725375222230598880065292669152573888780927645661159318438737792290676662829707611929485566961457814362954196000169854765933758419691288451866793788170470674160990515715549272911159394199993786841853506470116327876147842181135588233113210412041707265134722553049843947914216014258937377766813719762743603534967654895956095392004162374705647890226722224535515757742343004763288102605985835669401487841499286636935975682698507436298206748597095768237873174624895622076600023243065342558571535030824469107860294829529379014199731957109120580040565250610506955253010643902714853825720801728877518093326914270775702110974172782220044984103262746247040809353573354931654877925153692612750008655508455694226251894739517681109000762886191464844438261260736258808316338534926572356932268883408393774982460212481818680352391955695893681208715557254159906540834968826821899992813932912407692646419690600485459320322440566830031084053038591293930785725901037645751575793053352601371404896952622366713438892777228620874436118572959274507841344238726414024953302331696080592095354723833169537158575614228563628170229842775911451840398656466846739507485495993265143014732970459617659779823851283538396847129214693948395081218160380276006556732394049095452970016718824931522410091401504117767064419270722802443057695713026066650693823872707233736417642708703008965992427391288377552975929350712705600357024022465534654839694136108489429361359970821867222132871425264915605622929000522324049332308489673669514490158435496185307974046640631307640484373472200089817885692436551215977625730021898262702568137400765513495252412141426865800199460247204628507079281019637387336868905023898291836196409716937457298513560905480734494522950167196597513865712866327088481684844924669600719242668063880496606053513740235687222984189101313532292040661009472328755858106753133092511150157952746680734403450428858304065020246904836465449395274273635267343201633916446864806150626724012651756513527514820461320928648889523736831453183830401510272449593477525806283308040618664661577194684515652917560254484366292566002126911529001892511094728012096156721454350399113281629588829526200957437023961839378315127077446834921383220726986066330802601465330677422636334777544449998441865921054963031349297046657761112825033110592279697549139302408885384534193251712846664709704099655440596659546785135549295712620773760515798457861002143063146249988122138749801309625268924442061208296913646292601632114684585997720559661264429780965903472961003624909069046893825089547710049499215822453431058894353784615244967101438282943401207886112718424856729551852729268470085400749653918833894654792310744534231806936320948580684835327378601960420682483980609475124488067593453349744618436681474336990081799073333464894088522347726857054098113807421301315926311966684694492827879138535734387788569401438899488189775418802055810835989895453117436611642893199305256059348423378573603977086839057291593521146597577563380349117173644750033020490708038166071077960284241114492492029027068021339641645021553694865214255733548892013891953969666246826372126635360028737192557398408172988233030895708478048034283652529341858157559935506953020952317377485881518093813534047256407901371989573465138895853630182947759262110465736595099549821489100373807552712480221158875305987648636352016533385064139090472352319189872794332125095140569232108848977404979790222079418765890076067062600117424846716667630595220959125630765162059756944059326388038936679827878794137465862956525740876850637732968464538830229168846547317164562261671599241073130084961637546380235508404633248199245867392801158773921055375062981352523004698071843620665912123963872176957659338743829750773972892580215813810313743756441806011245283408370891739473031880363784618213036085072617110821829761884571192325543460082936294699721926709758506405989151748905726409396720804794680699794129454127234341295777570039099439050898446462665382221867561598821912799944010328758838017518998982199195008286168668052979523190244445465534142514357360890882087000792672106233315059979624700969059140456193181454256387356919927871870741456471683899681798403790572784670565474544563720926729755554375302432433797630031301541458675259982568259905823336181932436222079114205459188603644529034171071827303739673132988180361198377086642996576956411611640452866047156226412850090370212094988405510443287188231949177892690648878767182700762793256351216214286467245294708010222193226868003566747796192189901094132978233749824283365557250326891221582626993116503941114147343210089564378892302396523603348864978718979696710843428272837456919719377916348610059869627847785806557975321559547503835837840946255156766957335628424322269059310539475881716338000327654099687209111641194406323998757761885936592950410297018909337347658792051022395562854216603687750911379498640598809409760624765907319241700453999429937038272920056952089887971960773963393858982891095495736671762326472730977465967933743486420851492370143360321083913224583738845722806433266388179545925262897383443545180008770484021246310607583712843192357640547810908514809766975564380805930419226199038826126955003492873958281249111514921465778737622779103106237730927200900252322132053343451494681613440498413323158085929281697705737132327618334017816295242228789304352238504730812152597957082187429685007105874503372127055671044383408802697041200102460780427086588420308921257079555412715049024626437476561200669576552100664663942858706822068253196356503224903012349258127973846570727657780651747119113300774834415140580990178515636480511137892817416288010442726149334141092425275108390233950605582376110242921657819867632958704358654978947093781793835645497817022434528357431609552242835942965454793783834201957204321152675631461029512878396371676232590656642865168974883350351940768547873558749779800288226043666001163790114331247419443282469933421482319778564916043253603802170227994020846666697008739345687087626656504568574896365394382406274197391258287168050707402212426637030726732787258598068933963525424717938838479774886536021969261918328298921861573585002109512000349856440696065712717004772066263134827257007633244682944623302213542105784459142559775661144015573301914376367924609975855076742162783244383266930079110079789381141114044049323977529283078878239771213311288164460234031287162437100549491549493916889908583351234922565223498727429089573119779926302146365475111492108715030439365841909049234253045844875342587778882412449118539335641048272367979199929237799283196277474922066844082910175665380556990840022989172720921953762275052816384576185669163861890374739508192345258931466510669685482128741816753943745774176490512904678133763518122853456857564067516613564017171170911580430722715864670000246876215796395020960863717964276223573934357150867444879723086413371396986345515643494609878429294507366360956035733840183499255960665165116638676174354069264419780867258859544480333403940486944734404179817994449048958371426191053027847265379014696877951478288060901710575166799445966655981516469980436978027294247943764407653554293824339712727419779541775342311290586580056756754536275399483221334845246550253477337049322035643428787494776530558744639889577729319109250354726532004614401238894851111724509452934458615849206821936273193283872934217228824834273254800972601361281997813636060581515357719595355289007443888285856581532595493608577132671354192488026291360520747283533251211822559790489838029259297646703292852880333774351780708779746592420114045708412177245269697636210130911826322591704912701235517118312470483160773313275770469125177085647491540451434747063983655841678011229739751618359610604171444579188390244088719605501970415907775441283340745922487863623755187873943692038341370005413618741360283526147204687322434876858084684638944375320772642442007287099997291682050560429394022925770733321390856381211773401435984254747572711268394968669309359160932885634507237772904175116637657075455729571468691293077554340882086063532877405648897918347681895346656644615935078804539313369373410814317689192504708577121822837960744588604631755537750183914379923393618211969874867067639913522748745273069300656500523921246230918166672498089291945426304762166590306072122372322571280165890173619674342901123090072640881086997756440257100115062616392228236777496766182890938238130533389984046244087049526406989229484282350432055519397242064298841588629221457083349765411984218204801718858047575195556853316184615573936437178116950686348214627171063350014899236129166255566422567214674381502793706941215400986708272145768785835840472130844589333752830863641035881033443963158782437321555529451150404647549202368046077941078187333177406385786645577619048667030239068658981118214527694828372956684236657145586213158674791976592770287010893649680729291765938824766124287472362282070372740860192923331642114431839664518157435022288128031404247712583811486966080973106507928746210345381276511752683722700087058526362139068414252081054404249900791544245979492317352929835805944918387200860402831746748412509157051548857838262955094516566491427448830249669407546672564149998488046658402577222842807956769306252608753573193408474456403464594126725341478199130338953155321252233609697402754978523379592780795076378660984012093836232593059971449520109818053334928232722889528455568827924663896055370408854103851625900402861402856858187905826862688760002370528689050600508140331079374600458311523723371798913658977736408514913283245061957151121108113463071632956677815130190109745051611183860078626196575358503002281793381413516336025331565176638394056169641519957900614493683141435966533155401570150267732560026680488852831986908090061661941751680131065388458712844405269533074656051460309732050130786905211389556658822039330476165748744783771745576076757656919053225901869760342498861092951857733484126528388311300290238991700030285936732157101438522155788920590235365151375881442473173021293851995621937631225221774008216753607747030718259061706357657388851362174728265773108745800271306021829379886174874876334013915326686541772865982653375499741291092344834146463235852505193205229713408452690534522723888191524715650686143189954183652620698707704882673156322461980560787412843891454135868035543345254913294653320219247985323406838328638636726885977187664186287006983029516853851245205824283998710634096656015316241930110288099406433137639443714948517195529380079131319604820864466527872910479691733839864221151667773602180228635109533541088564759071789174386028292754289970011020161604715362017049115963566405402333547110386555527172614808767062558763242938133863905655877718401326101401953968694888633222516796536375955132180593787136839803448775147003165925067828478512971641014653591164815848365183871920666735144526506983067885264550187692107026479465830721692333686933427894976471552600035918428723255445894230920235723023424812393474875956464310254216960588708812445445269356632226752757756475915972710756240696166456061435638572690514822133508197971279669855074659073131259380901473541548759217551147132766074231348537776367855521979928090394584964864806497883075842106057586124371313527336729844280659649092873277438416852154535714108274305114962061740449570206624066724597948114821232074555105036041846134559010462529648134553586565795463048831474649392329320548270796350222758970217918395129335104811942551528339038030547608375898049583690906307635610160757758644576709289176993577643981882429403177709040087699527123754136399398726152502186110680825485050740065300541309945343105228689635048631744405891600568224385580774310314985110613436631707698133942947550077381502210957129686348252595132789012436031789192592974170953864116945499023864024830951976244474655250802512985931706844513310057615206252001153624274612419509097093428681506671287856985776284690232868636598380627235823458620757631153840428092407527443936816448898046806033303460455463514643263503829811869658979542022292226144634723298454001946592393497848513902175001011904031192568897221589776802869350015776226506791273565967418602974645837227640810281356634455822549741487297239346491517979696802388174907206566067173259048057040209939674584242029411728984272679061710712723654386253818406389287983646556151467292571957905872011853696719023112874947691153870567239692557039884386168428586450249431104063281489803105686056703829827531555740477489065040771649918785584805396797235481160528137281216830520746230436521679174076308210742418325089144027722259687490587355241324298996183414300429180501076431167815256933506727152346803399866529133932109038129600697092143302997153835355523495689961891341351658581175012520639671289017537670448735891528861349190367597676445453738920821939547710161298444654196023927952269356605067296178637239172375572047869305085721595037981308923838105162540880164740507216455857487693504949008793358757604256785545997754540564242215637491451405039448939818413792781641434731270044151154996242621302811153642360262446624806251150246764642368980656994746683449315538666535093600695247319854001661994265335029175581679215405824027536849712679798745830964879643818748288619152574485523310955031719563600045472979957464935078588278646930616405904685624664687174978221476586584952949980211456510191541082016242577437062007968771564278510210533801606020015065285214486913686008331834961415277742020258913516287792231841639263296035612642973395122951854123975123486270842459399499816097340040395509641034170015253913137869470316518040016722579056675647442435921289497504150661952182893825793965363007726894044910954006731229335051408387180015795957957845883343487214262179102996246226586445755108318138295922122293591051184774985793186927081656065320866627697770166684402659665413607954387399576612842982943362241104211268151059651604093078969434677494329309469205154483094336766007736728153811733923605339639531972327399384339404522684728783553420209578031253086466673466227202271225112520578997418266396760211044031789081916097304486961410305549712669836840725739762660908669368454348126201669792825835898055808224078118144605012956822833222880647650208869100404371315190371814780685598311355626989813988910752273076389471015192653563437100458640773774788164645893895540728967364989499404504943010447780388611851962227805413223952827978888944952254523995811492250963016366027484706738574849813305576077711907289439992672979267379851512523686335543529559306899303321988538534328173932799275996859020005666886044848101275133429559890370235370557703860838235254372880544188456396342728003244443423340831734768046645330114313210941581886576514902783715215306130647396204022456239951275470388048277487517103716977499778110729593727895905722623397178857548870568238647342725751452822693134540432677725357254840410021404999929971077971181757126383076797344380405886892013809177265678400544554904349906317322880051468444890787786523047390781738156985051313939167680441861105774104600960990234036647403373948480280549682347168314976928188751570817078342297634016223243356274418706661486069110567580533764849026988236179509774689415059374400753516578629588912217004755749057671952268992812603097271446437325048715568629676220004284766927837777599843816127612489390351857844137058970393104061664370501504326415944385740351764899659719270961689901903476959029098927687778026326547952546913858410952690982650349196147891459290200603926006523055111150974293686495676273042319409622804636835317472052582745202602121205419272836216387071767513620073351137485464678214160998367174640771363852943417655136208666004440512958912397685364334570879735671234932254113884764832012030679674671180839200519974717069821579208635793051308866400323333403891184178179056494600866443533817874720137041097462200195219068427229580520404737348683056924167917347884656091337129587589197076311574703268621805086625048717848820466597698415567626167338739986234437146938806619501257716514089569304114789450412785125806497760116831208548801796835646882704827159055186674145611242145957888027085370654647639539754592368750811573730613343739283238239099247042533768452055233626358219036877662153437307527616453355494001987242070122794833957917533376514652843920050699578913910393511004092277881145241897250762746498111323861961370262575307675499324454465773091695962919338888639012038151081823830949742615268473749333782199348732221249378056422264401569522486837129175055160743043101669798652697407902291421233277933608466624784802572921344620128984404804883517294915789405453908520622710989763464485377673427254866708100782918984221131265411020574628421541397530352510565780913872182289827635175070039583391650990519627443636934603204708257286463500001098848470061987115432141839049530295231885951762194616506286649351350508767052827464072265221782675191573195421234388479850170867427190540588089889978008939589487348419887175181289421211131281801622970872704637305048084772335940652126535591957019385828807376475260438230594143842356229800566606190121190424174788051291765551656915331162161103207681258587689318304945728014368747756835332056917954309423890229812293710413096262766662583759893846845848832556374894802073031421799648962124925635197344586222992752322235219556958621860732418660464311471975011127104763844239050375395727171084659202952848794244834375774760326625760091034560335546012549272432060322604148367959206367393911813035939172389284052678511936017947512051538857340156243488094879590291938253744141366394059984716376932147218506124644303272068725259984793032466665078404082753327542220699520011250634857097014003567620866742502526502712373193980717362098057436471574028398840659308716901302588951591567536585910869054418907861109335088899304597736862108923617282278371654389872838161626272377441902014755051828384463199740516102384435225473101873296550657966763887259941987718104217186519968810594031328729833681606867598280489562562530222795831005015363975338632108362777284201252223902456408700204814101436150755452686330340131776904464006531357471050351207788653816260607785065310855521428927613362987857045702514848091446500149147998551608682813719969729440245119898295033551515002735243870258635459548136830507751466136685925637213973664289013179338249339313335872882111051878096499268206178166616733619568852457470084440912610556996348828354544128794198437906695176964806082667924075651909889588528108664731616264634114007701785784660388305252110677383771330367784780351796148070147727048688690797617885600528298645692283590234792177036697397695272697718212940095101312664932971949184212067496215804920654815463411486081504517567644078845634914796788292034822232797996661705595853381181491245010617483752175230246952866581797731364506648251720173762353479807079944546815798292878946570028457229305351301597390447777212268421336614469835136293674834673243246208698249266480223527495653586103941539716647110891483077309355207749218166439232843004341628444127627716193706703185514593644337473232226490439128666565633800799207052745437321636435405601783362334720414913156772251565847840348793736394884502570308437554874185925808665661300778339686952017258303931298595520960785007816938765667066693417735304764696451448551231008957345833343522998775568883029353380007709252622720120579338845254647795903882662869860963912643453724095274037618079523992754868026965993192908518561815416689415435767422848019630833880290820048005956863441076096459742001199818502870068938607490075684365145846853315200485712386961473690468137337074543264797641956873034265424897640408052424961681824845394458892855770663733198792566647852410249064853545524272057050479586569151612737964657779108752598519959011877214495685990629832316719027016653418318796219080983701449183639092988316181109537009596941471328304263254915893435077564534845312568611354594335453818650559302543734691641808499820978958855067941425357201385822401583247650095940076280711773513682251932929766819995337281497554302595192997091345158739828899084936562585419196175098149165656095914612551334543989506673260261722882529698912478672976082916611654725607772573777772545597729342179509846060094962344893450698699327057428937811281221513200117291963640898650295834220078892736437095645947191051341698717328567372555800343234938139147109689647921694377015457901740954026014828644023283865225596793352609241231084356900206633055063677341837888027303546433499443694557620420974847779860633157059294550763628655264587362816461197652609065062527216247246938709040020530151986753822511731658870729913009751206069318712496852283514210208931346377913027538553380052518160905391241939590194474987934803989455877432214897156586225785664064979037348923555851396625539421403427321088963280285471700451875394509727452551899768213306191348436670604598428892846012483724339078623262688287436153942832196953105980456750865831975191001976585630164626813015289673307010142816185153242076211537149546505324760270582939200028024507871302879107038846920770904170788791796862422758839953054513041110462425940018564638989508040265721534286024447536631469296100480839298707754768820188205250229490618620988415487327849513256143861874253444407661962425343589774879594353300876332494669479276508470868027229340379795274993823068284199632672456620601971682837689304936012700114684790887161037325922712243593946316511378905065214653113310577872076276585721217987990806317426410810635108567128567555178324578648838666212973273148172149535872249522626432295340909900396860610354284030932528342970792710194780199735150599316282682583881215908276150796689250379207727371017229182382997387964112780910904518951656030990908824625861925987125833997934294011021298855195344494510986380906324262401734923667445319350572973083720040879885919675950379476205803205715986694205411875686889626440202732877732984680926287557028731587390137723484940144212984725718989999419065871399876583803608211193471239037138362995031705230671105684925316715514380375391305489866985068675820571258121562264829267737316460455673746460882530487510113892987294148781992190560106580645973257479739443218708399833143207510237518210496945895449014107018342505850979548896577719967779380603104665098795525933198027099363499828528960151636858337542282682082960128673811615405275771131336876150125122142189414443670322226400406403994152388267169378587478713984687646674769182985954014781880652321353808208182538785500057562426194359224845162599718094851133578595683275756297077910317186128661736136314063896431818612578863572372605412991525000776427650368019712699406272972715797558866998798954517594620062922870669100671296740238935756307958711761724714395836312451095517137148711247750204795163478156849782950516311341982497255727669392450967078658697150890659757655280691993442614980669397888726783958250235575154448665193385299683343940325863754276137513222212630631078300103198938155809571425240067495659154954115257247492353922181922458601902193483980264477409383986077322003725055468897435525855458937047004398226413420926040744433952714939693638893337262192983629172506262792908336586341644542159943535154166481225019227451027429986783491258536235906141119853137245030744230586576106625962715189082559069308201092554157908952792418205665414903027012782514591190062222383272221700319496395870059316884730950501002476282940530460749008092285138353222639588478236089122913043659979950475326751109160525494956452175563919706317428285455856251943122598995294213201482272329907480364870044105173147568634083700558687742397517768588634656293326266259279809647312606177726200127505376492152984363173381883417490562794655800014367779650762782027847887441973484956025094518680758600531657944544206292435309912691994428252886017853344650707478090473234586839588268763571974644057662825909941363851897851579230603450856671923433662872094199833669744150082662426982478867556758365046181282398654459350330863503309498711085892122825230168941734008373139917834809872990228218283105081085758956109041093109995168554577688906392620300817187873964139115879841978051951624473169360065836696755807503877303758990748987799990449974369380114263115771919773153825525468366395821379158012778368805964487342227939088991316556824569966540837121096250586332951047375510398611148260416989893923933455253807053532386315117998781651127636294973270937042814884322905339000470437523685258329673934108513467114147723113063058257903874330040601171438814661336761199521349717605108072646687157893980721064920060057900113497284127408361316183144388393504225235739370908866379537033885130497723947261169600620603846827683387560539388824569068471281307201788530888154243904788191703323504952694083847986292914275950463810342999478981022076842309706280720410806295296197976619104769042655837397068887294083018325686293679246698869688043798512984110506577068176634760432554681781120067949628407260783962760242033296483159229503448172541509622018313430551537859166459011741000511008759563652470140171982945576890071162289727013539444432506664870351061935139254323079919043524550661496242914549628692689374959699003971087838525709069486216995146940497138995212677853575181413095417306674335561979253074094980543753574597090760051634412356812162829189208994277597401156081116271941515155850232223483104370676470593489157722128013840715895099071570459450810347898356166048566030261459811906768912351064564223137658727403624766573595784072163568915612169455148375331328357959903110909813469075294845428121356837617422576752751508638220973673845833336227526771782269057622398735692955892224943472470912134769488264098198653624282586189762483763638500782718676820284666988327364018281556403238328156339196548002140905113375032116367737085795873713799774378147876469865273423404120559704760136372986944520118167602813902977996788804906736169215203725302998138835842129367832602083286596086203229598936090147395566488311543951658441801823180565980779817976819543682728714919171872807593017434722260615561347148872594916347558616518946500553285884571700028123000717488408050708545055999135181927698923995365587091205962397428712592518170987383887984919782775800294541777342128275001563732482931703040051861418454436684944131086258897886340649122169781911374832018142995944459073535809890784663778233386719524323139835673840143894063985458927735405286770512135675022846647686509990309093447155039544390239107749602179868929208277280044864566569473604505116790494874832375928382408740997718770396355777739282499436437842463462783562063133621500830368970717517807215515160978653265773368681921449732898614335795010333561460272637151412021299923722593353724754095273676227971475760560924072615646719009441015788956543395057222894458231176848125553919868443849763189865953726533977154969058662248704326331738350017204267672243542179471640894975739339189172476052121195222314863640943136923925054802002951068391556106149578051527111854393555174998344684065230817699072915164804099489801593705523818825507526274703819278748930677200911042879562818460105659607271320810922676217330606329336206603145964502093397635216530184590423717356496124488264958318060090512082660105311871719100108860245269154927767213487348264284048178791022595418545519859249773814938074799108408584372024135710096093045285761875447859142166766110973605997233981951216092915486072512459931489674694189880265832619175211942033698231576632135879018660680065656790025875326026750485642709849791238960142604972543167568747766994221297769557806853269771498230772074205945852954880229030013118752657136268944234405572014366831903231746936051034018412448367723143725344826954715727048639522724889157337079380220410600377398947273327529125093522855837871657280752603293272198827060140145775734786062396869121111303303368134082197603604249127585268981507016789651961384939032868670709759102304466668525016877615360642613856279745203462582960824824865330163238457672981804098560633381297661168640659145754537535572897878968815045140482609725797861386709753703511774494351226620784348592308816378147748738811894170628329466899800402113278392192019858822353980104245432074558579860487714416874549691161086682108096434671698735742504238845341808011796989906273191924249839798579788170180971074336444852873161433277774178257235114657440195327214535778919382514576390604805471415777588742379008745655785687277847879262951196152412131381860720518131893819935822711124085313680033676345082486514183630993587064682312249967184466787971364264411455466995096738734809474511889961814952804539698790618254743807549476121523313340441713353188542059067192826385579577939544921201178244685661569947909092410476611698352953933865091462587856426405338520554539721509346239198534179891275830125286279697933977548959543189894873152882201109652230958699319713199576478980545581729649746893818481502903814918098685723350767246939259904224058484565268269292976283975432687233990789179343363038585888280876153951503585454769544255051084545321761964146185635877916017866502641648579204950426653453971444561328587721727419882772433903005127760640150021179156198187853915221849511157782659290791966775148849628707088162814272680217482753099531873888495103830199694835698794648593209388876404275745519122376301186586777677149076220566339970576540632087818192600673192967037824165655292299801455884333137821528414612543953692404477255694803373841067623328918588979834288858669468101633840742928523423488145730072191154864050295326066338728083198746594531544030447252345811083204801866050720785301228492966208155116937861713385259766748864424507392261009259196090178354686120092965375704447750755864564184361825782490061300341807319393268360295877991056053238771526452541833767326158445878623567250929500046253965211785432420847201205402321294709022512226940898758781928538921850776815764267470644486889107424317124455066317606866156066845756739602190831076410017224841785568864516844809237142392090026085778956888323320482748849257307762849317884245304203705208580165571242444713093137903638255715921812807244581291495283976941500727850766118608789081205384960328600819802657976305880420940502763584100367769757620896672551255015795631635237215287413571419625763127118458450562029115364902739187499804300000884475723715268254110180796144020077338542929667262151060695809117697837566107731181544898675339354868482116014355685307031095003671508403753375739843356566045620306714507422887088146475103822054648436378095638426069817048975863158649088880242888444039782528164532269400247547290449954232884761037597786028622235991638800550888417065440956026456000929903588989051808706968298089772877294437839662095846916119477703635415418452242133180022755276584321626866811850908229649784787589577039393249376723305627110210038333679051760498592097261930402326601663762224499088794226542012463289452514073084509474846929263493417604467268189229141191281667542642316721225157741786177830089122529589157916643341181311410268501597833546849327891703887906596880028551399943538864007296728139486648497174265883412592672024415400886161955785375292690448519704945400897503149217163284927752567761495966275547273428325126362844996310854118834695313493035663268935407836658572696156719178830866497465130965954742155476007649717530522162064887891228111471779352123217868642531417479408714076057431773715329125843816067499040102645815331687735008539894923712197572034366221217292990081322054889196580017818114709039501975161847925941663205269556646180490814021965592240275845173904325706401406482124879289752357169601777061464441624200183565095921441190572813947480790316285686029856173515465184121578782336713386675605609467260203188336674822254504782006819892040667693142335109460437820349762589710183207553533546954532132331876107276679013873929323952146544529863588390276220917470043932469800178300346924818365014551240645031754604841283790755631576040729328445548133189616975815355638243665434984486983547151659646848670340167278941606799778049923774133459384515123282260351118903505987425863587774774863819169635792700602882767918893829876672905353115692321356152572361563136657283315064314135195522374759887123502163509032466422983350332419563397027756923329819261571589611594210882800496059325396066209378113926816906736025240881307007904240606253959061380711824978170471193298144931165015204714635382499487162737543588647599537004635540425545230078156053091891898062716285670674918510570841388503209134446980024248538088246296536077445924052184151479805293076261195914646867836160128583409951497555045387697427441181332259930814172232564695583780311685102106626624678381554424057700670214972645506536771642795821332483369141947592106385662164027501224304118068444874885959597860604668287558911583714419471178954672607714517486524607929561452380075819988503469496460695761086999467048892577360610517191859784814863944919805240056235246043846923224604453162755888488305051063051501380766266914703623468006754735946421253467408955300571572796492210339079248392939296226538145512406143780775870682183685025553336881847540891728365851393557169363236868086844688327484393073928483213620991642139496207886265464229791133808105252313877026533608047505342897420867479404650882875079386780111592550013942608551611080331310053808753731825006867239997521284273420906002572815703630950259220908340936689828576728452348054989627119219587383058211006202509555780618365618600270348092390587120022494092298070826391823819489529135121118543177339816041225019576443231392418116483343788330753080817771842064932982338407049103526365491072052356744844118637843719223380564411587226115638687915329503407958489902461276447541509683618188901814267377968548694425833743957393706284535248961732445754957328761038110675762509437396537402010660677697036703614264819224086201199922695427100648335726298380723863435858085755017693788590942631950968524476510247725763498655715234574011345529544311066429842803919973175620681709471070593771034600102385975742463965514493572500273959628804697101656040547760045063703144754018222304998973851771812474939668244529697306326961689576987747826451382213899232342353435324013270655779736181850440590198793587743006928461134337577828959379607266063632148829249788123414529472306885843636141178340977406834661511090857636694626684782185049533234804716893261955115859767383099391709157984136600592112230283713723550819795642601717400404616548743624470948688744654305612432384153527759725287552881648389870626820984260122538192697803206471588066563161989213401863373260947298566523444708676054043796695051728181216378114214475997418014465256078248729502777454669794681608520442888914858848564859871648952512461938464893175023775245040270456235526755997402651988008299778628391192056940476980141049852007755688489408807364939589935728674159228950686508991529517943171919272950576751915314608273081793649615876577358975618699932385187956802376508552281912919243968141864459027560470318606569134594559322780735093417601477173470406019412595714727377523123792871122377243162436313836184681927758885814161531705313439275610680119537698777356342843114034114372469762909894793295945934756580586479918568409117076816345986463386821135136757264775033384007170848261848705925149259573102369180273007446614135534779837556276047372569379371889152094641176265371583507290435586103870930860861470117287932907106366829384606184110294790887880787348801345017093789570544750238531137455408849277523817563113535809778365776314127105996913305788500244356068982842716317569238536872620835070479545671344879933777247072484766399733148831575258192489949789362025991596748425255057054478947115116247490251949856694529578615368939565777915660238866834255686719481186976220569561372188563532168381129166460306047735807680515922980421871075473459995436815753698221186496833166890763676190656015091420358974946128020494436065595695059807243848728784304609522921700040927775484805783959859086059671461344584077567324268791398688322171201042328190578952049686043520439246647947847273112106265824288406692976598437367348732166699226170160265143063566275559979150624836692547984523234133391515973930304187481558071675863151673317190806258419474474576331094838552490612888423389216925423354732858425682391111134904138405716686731201978002216786685156647593666005779947503904368717042066292838031428668207907998535577710118050573145480036723427494116460556544342538285862441271337117910574646118843302675971947373848253054525353701423602118386746509111324588931968822148477901973740157155572255924042540071776167618059371150789675226860142566850894278942428302376938691384591819042180250130539884873653194078947986297290103442924376874461465628698214453463095437362481030644892558160020154121746493804911656397309284987026613937937413779300373899784234356705586683731540472204418004431701286611969624383043387981963502437545121577633005917654420408712162989359893189326567824856341142029353977673869055030077159563203716420929167935931956038790131315346229370973904365411903602926638724327247696161234376797774189629949000843849435465997796979018453530255606176835176374612901303297047440017057056228873037482048383437299425785429188514847684209681405025829456138378445769125124000852171145585343321222890528049874882224621626696667355830787051352320265131287215764811496033597422147575001463265588586717162280503738649310430776905688243490774934255193945359532871947489706822887956168099742425199439765897814925836865920679102810102505252571496953973798293514327280511586373601223600620162991355471228137963438659936976079884394914125373375503851721042073686965465118267340369537924852026097004979077637996282177870398692790785851898271275806375784546408219596470508401766716713795720603302786715335873067796681419626407015690402003437033864107848009746665949255441256772887740201712859626686792882599087490480550063218620401260723191716257259094286645554786713011199017576131586807566918021694574597931226823815144289639175963120123429171425319446898566785489639939046137778516277629640896658258425276870529594658107294208039101318912861245209033387464878758502182970060029534769277310989267500101663665855941454012737128799343445744245372696893136154471984285572702380826988675064845076733907633857058628357718439090078878535712623734197615537361524370996662612848765048356729484750214051693948247147015844466331522300277789133643534002034129688256244861453100983767680573467311905084536128903208220183344407259614824334629308444925242834551979237184472496572155675681762764601473149495729011821419466199820341774519257898399007106009580692941947164872861251819811040475807421536097963718277015855700531995646120632758990926389916282119577816643567027786555966484751232354788862348157379865678097902804296966876414262733090843796002320937134963271998811115626812165294203360236631050047883056010398582459966355985743219163308262750762813860433766804437774231354222296216976582445864042136697920340285618023469123835643686005021413301617647433566715230997585906874536909346656146594615068683133799217565767633412855694323660960239402386820883373720053508109698024707931696795254883527437839789036499151791561948570168346630854580930321708787084118815426677979456501913217090147534443839293422516814121968014062401427686656373879168712893614521494452746185834374152823215421696938258433101116223772352100561970623633963805147050964404410103442327129186242004111742551582905906967010538720879003993202781436405739588730039921686792414336401190042406735425284814793403321642053816533685742954336123211655484616657112431745960725384646681507687295023460324819589008662431294853462882900803870329866381654738735518370736936152138256465607621023224936495895245275207648738063879498718186712408546662564243201490404435264545918028973780399437012928009112080111809619772144752988307382694890984719649881981150586556706224118005294917395954441468095892474481473542139304707774897549652795609355683726669002400076141270740469327988749803286768624622468198493951928645919308720211422628308305433125879689618963887022952039213573503809290096033843834273809608684540237443328384535413853360012940858868879068234783234639278162234862936557762488356201738309655514249993479136241394767789196326474181208338420688669760542203960553906100051368319350971773334224641536652875898051570021354474067573825823487921820394136018853599376863608728128260520817577821815985889694551533593651368824881569280241042715804456241206032793677607097538884827846762088018293786524731452691091856307950680551702666683426969531010982755665071479654530652240069662747379545469267712440966566699641767840085084350328180524175189580931598343863410269355455482681835627375062617755326734970752426481921348183044406589829915597678820300486129760327615265097139028213760754211897670133696328253452263799104915488600363470811161642150952374096649456370131230675883767343883018112961030297446799672252004616021228880045254851999841428352478686499834174405369171193415956405789668952971055919941946522556433955822400184719378091991045958050476772742916164942016984420618277131657843061543722277183518395914439102724049852318046821627039480363120676509507194987019494335360730519404825742160513905497509737512301912397302330037731895912768915341945085656599769134248571970534469438593846145334146544337186165810377021395342238859365487841802819936752082154436107833440829673699473726775881694747634933596684920524103081531253533417774691328982580864263186069013672492306609396815524669233282366052394886333639293272265846999487237400702902393518491627197539982855397138146988799355217038687321964604331410795659869352674753050627740499819334926834711194420210655313047881345462163244948593114544901932419029955835231736617388008499263518685932610888938102447537968664545826862673588905612135866058467517041708080786463845540494414648013363634820121611034035819923688370408822381386270130910958588836226832206021526503268979407903486909029773366504538325042296446908912383400209833019242516160669482286417772143931262446185890861444473175528332896819266809799598107208605555823024650818576355123161920701442652031071127782124764122128404034591841281632945703182498968612618394147081542663849097183795023437038692237226238191133920818389683178020442113741480496619267143742531343014223656049717483758510716598226057114048902496934789987125431901548676087139186775843205687532948191904355953447950383617932832777233618624057398957863323549062953102861518699759357196873031007631815517804191334432360317235873686494607349344949697361519233736589362678035340035170701278813589767973009770218784913558724598332197254056715994541128899264348039595121680526881550051173853444750254660575578511747886329203093120297890951155876615453789755038135639482611209623326686555998861217786421026990718121093924408827075324959046592120975855791872769412501528230024707063330337224084833671342177224246835851371084676192247779282071841387002918062282387081295499632352984700192871778661123001168462207649788569668060652680388392758642204911170222010220875540663680028155526125816532180533975516692481783366750057482751491280413030175041327264049747088878847767474890893900895404050853259879402924978741557964352859301808413994236147204769209970023613429836372411014803061528498345972995955893568734722111886308087088043414506231430575807931346416313303240076485199295895011267430356604706120548503889500006929614302673947090376201351511158968124102727085155570282003849342074979730260103843429773078161490521914648916915949809956740304691213534481670366124905766100217170394953136318284773822835515456083201954296703877326374768039739647376297468373768362704713752988365041338298432274492855022446100821620520845331333818085034482962137772347509188209842196319496026432162714847357485942018478357462316826335884583263826203899196309063128594362266727090616805014830270827403859932809684316479494723003533068859500398933382792334985891665896160684169627701759476966882747006128375352063063218597054776035541463649711571754830204810779429389665221844846491034474881849999364276158105386440736176819743549631031814693307169686836941513776386626487517004160874932324723300174269836910663817966545592574522055829958688791406096877297254190523381997648833837732164183157586278659204689096484163138929613308674858901101120275729440382067256310302088836936158262519924235750073557329499857745653603118620184683930406818673403830773204360517328992817781488792063569880148448516284158333941782960362616696257258596268032398008084758753309740157353142999240667343031398848528826284183461307706724528530781080838044156953124808082390958416596857817598079890931168650049020815137338026468323109408552574129398243066349008545204718266025203328594821597719901330776917151465252055392734804800022156846804591717186708157524264388384808697124995563758713249652111596991066868444120493514424298182880443856685750435044148363079100840454372227939879199111236531594092445428058560923994285885855720361180987998415055549075799168276971082805942958456782252561527982169762353500556180036433623465237334610311674802111939285553644741846146875507671178106617563526334109723531432414898175150814302663332940432747209916754920006024202289337632709185362404724115167148526857210074569331275563860456356444567060317756750248780622712627404703197883946383633755802611558097555657439264969487600753972779303187271942566032166612966494661065934615407225964467356738448295380080607186236924387908340909478149228937665368355080451678693103975725959286136987208907679740358854766306339106988075908322053966996906381564262187043247247524185949659619002063686601492251420249771356097678844703511396834679525250512074559884304535467881412514435243229716411899846234637937541364370249146647176406128568104688321002264634316535913328568542794057621310923341787602518614001328237011732319557688786648589946350340953964987506249415155514379686997409537118812636303408897671161923110064289143223127843425377413825148138615873174226173583471295258639430267797177088356724123215973606729956528942948383721974027873688392867612928245507581173484609668445519392884314080734243318612173148046780911810212007702625720330456195833148492108342359364120875074436872657603160260921631522543688227503566165087894289223855790194417061524319983752353800163600737477031458589464296556264950506383495751319387054571864747553675076766422583543751426709703414965405599969899918840229151066401033439698731082012331344835568538891641323597448888696104388360725439270376997536099799449438501202115912037440934847899241632922767868390470818421445141559981970608644790293075392988928015995649206512811505421293179807658161325757822876741559355760345235308437117597902156013230041788361007589277481729614842164383874173998644888075538270799292281408879499512161601703977593029594274091454002670807700286064959394838334103544654791530759466973082951430530276647006562749237827518877477185350904930258501822479649054639496470485787745151162176400372237607963430336702674785946584668653972361012057228286906614671666002082830580102664364987208318876092216314045815413457512559867413113574127780925897869980138747520924140295972301464091096276894273730984482978523278777364114141495196803763921723388766725506913789696243885423085751075091892557217946935395601237613711107769902376072776899412439083204686830684897609281120007442739971647456199759153972478273174221895950300800247756009766514759828136571038942449177670281103853151441849821972184464072744913763907855344868392774931671861734945787239568122634140835592761923187821165009685438117669585501873897103793690561892538196945616655816197305001640771364229803784267824459492275498498469913864615229262116413520017713957251040225137960203490373964522581736955330626560400611920242383509687466284670020534509163691914113860427530309237800019383650673143539693829791986945576565382017480161179296990089461467081761613131801944915166909359892946875712406735064351538062151777269248842913113198474872567552656300077601955273225168620670996697036982080277158869908760475945948638854427954184143248670684355363260796937058174753700398420210332954701478690874567896982926585046129181788005071416522004180219019553425399989425113090706010979801256760385157890761908782141676773040372713174964349490014834565882698565492886470711848658781554925672103358958173608028859239132540342250413793037904712945876011260735561503126278715532900146199371798809484499928950243570033466146353592010599713118496460239830891883625252629492580242283930301443347859755627394872108651428516831228692668028017965757945420548367199766783465827288274713212388084829198812914408737853768886433569977130054756183185155491748321058195490948892276805734527724259363133837477334143767106429776511710141663261249565539523499193547591057585896122175238504470064887273874391854352502761909164948684102548011722098572694976352453903105339128443193426203597967670050083321709569661802359499027390644355700322130044619973381503192560874883178575223913218205168024944570100379666082059453597179170989513175638150998022494600833281413307488509876724614829849425067622526465655899877777348316561754908537666538195835370257239421032148311584475915019993735601852540995235100721996489493627353608946166485205125741852847639238745591830630190487821956522497767296455415291399625041057083774202497388012756808977714470285785701542684529414600946038060227241253350352738531496675228109425977545448078411969746291806536865332700318992089500989060032242231578358712633765477484865655147389811708207728541707592847511396254401760162316860659615727142437703097533329584619511426033530844744277330035057242064573526983533393473016937784770066512723463150264807534148706307973331988683913177072756336389939282568485688531753773757327367593116944429953910395607162513528162428957169153389663457498306977355514986126492667256242731558728893349128167706063200451174989238804870066018346613730695280351383243479243692014544444037071996577028551715266007195185653993644184024784245342305924773885554681210518014708297757929627335694640294826513562082226978012703136075590285923874116289681091107206132589185734681427489309856084122328207882646461361919237745525086769228853551429241675482918573960583525860142306653440903698370853019317961188713719772211856712658494657428359612259743900801610919332888640223915399663292731766224020995559863408377636036453760837925402807078378588455324514130399391513286702204765631717482891865216381159420167306341663006042052916133967167087689733538749899358896197249496145605600653322319846059882810339462786901859607664896749608205324495625470159226955140776249575482999915898369660223948522651594592711453185292991763595233141569779666790844103019123248739481674837448704826435223808256907467342045469965436650701014143543451381667353914888035323925038249175574434448335610843687085361024085914849745829956466184098905478921790861103602266593849065962292041087449473073406757237568978686275408394925588027762094760430444325014846777164230851220044843378823761461708141625872881785132236011537360089013591256632255427566793357200939933742681087526278937691332375531288292948800898749757010199020227097909033899457495897471321356149297263568645970267943349518235889094323987615640756643621137691526304723753729908744571882453289644980112742520117585410544032028901653269556929750921132987898091190820391760193932582420575551371174377189556476029746914291736932005174385855345993768870837062757054701312013178933892968452921547213819471402668498391062800826455918415845404968820803517119458957434589862374232261127516407890385813030652277384628775910248426535310216897883413418678820560653495353693577391209777624398887659743131964013587216077707244544873254944605867406733802337579490147584176057089258806786233389771294344082267332341343588370935438824327931475619717561807375640123941379001466978870789435874799808069907413982593113356791489748239196661288282034565672108086815419031678293230038401841911502169232136409180965615658535041208925908964966911982614779300185017800004727398792711639414259012408091602552168992441922017103235031480917576524281944172079107651681470907062522963289838447445675416549357104283080360348363151406084763748011863911880875134222540470310917138386560027484636740716274959578862400823309592392193280117683966443317408162436436949130658790446866463099468578230048975267753304979184968566773388569901762435125498293124397537920350261855137667466836658060216183026675618260095473801353256857415129370486024407960226110192120038067299546395871602826168546999084596630234340011605704251926905383345865187345988500753038547276877500001168624450784863695549334698861340975920410571299774114609196746765237042544512481046591477798994885307942552504471313558407527841674887395136379761202279319145884721647911640804029617363063945657873373886595421197542424809967446301205663762775967921620486023039347593957162421444811952247266138427207379241857316543235345495166348930010452732721358051923724935577202743200852627636930111041762009598933452000022889217475011123761692289669706519161054393337090252186089074805149226859167428817442265872752728853666728358398963437786326703911769191889956930337348067140212790887240217477755367120483345458114952472399254002874386011628057812471548588736028573539309555832348339889199349659589171596241986414197346585476703487405247524324978586982227863852738657371199798966009312753178191410156241504520671353210194421099937433670829166989296467423188662622987889163520848130360182699704909507354705198146607982053524540362335426165026645294964785028418838646865506608274928012863631088440404322839161945317382619693781898954109364582512072041736402820570958077769193192933533991407915842126135843773213888927503683579823841616906892170656605333651591523059827546436470626177197035094450444358037376436364910308020548139404977277532639367633774062605833401289218075873799058299308073060446667474533805923043703489597615496784958303955532298951133984352814537885097800428421558749773991878831831998687351590689347267220433088187990883077430867966916759512771816986883518068905991592385920335870941720589630445849372269210649925651773608133480025537339152855214118723141665936114246435864116266227350427659293184471798088143364457541899878377563534840885392631535072163426690127317747911817452404921326292201040532019940416930641776760069529627342681883623201288487811808157706784817401758414113516477046734726316666504580260449313532393639848517656793664897180959156928954604517879937213949376998768661754140388598410775968615341961704080747510059597613886022786527842744058732115810753968974727832122476277712745398457285414770177216801738713551381770722970259371043247238387649399017692811493614668600339886431679132890123714357833953388346682252117048258636428528728363718603833505937648224902479003820513998314351418387558351531677486277488619758152956734680487907789992977979706174562613674862053055648404117883655705395488577030663170278934777381004656663994034613568247456775033500804293658219103356128124117023701839278723492450146275665205304946909505595737490553786416936549838431083224153794960806870042641329232525555996100148834766737091675073288278263156459408268373693100487200727771325774844441127038925022879518068655788801753068993508588074133137667547805487140060561725290853458897489608136928724437843191742732845321001706409383425188170435998123510546365673140818916109721501087812276572202460600425226052805827351606123059056230758585816288953515644200152988334733573329056509462094492205688484584780698284314500202407076356795057422296022275653005656779849087816038175588793630575076992844469379636799855371659551202830108737378225889730348567470919587637181506071792734166242855713529121333666911829544324509474685644203013187308399379995332804085742732268305443562990988299106823080486835825228980056037633703781401434731356617977082058595457916132680480537487094804337841306668844281776353880136839091710001689041718572892450100711295748397410557282089652033550943416494167197195825006136840227392722723402576398665118213306994087087169961005905512612784192309510980930435705803514720745777214162075218838181977316569856889502636073369735832156762844111385290500718594747359100981239737367597537536067461696829122470575593122410375291580288514135167133298667017859023537269049913139802118435243447300283081652433814448684845994220773746527372842452411319135399665412863944580186567318841175994195060606896809837039585316017051170288773975998696006177052745825274103857083975110329224375665634210695026157203160276130487022013555738574857508409072174247633010662895225090652808893232542367019960415808500765212999681407916641567498508333608850690788367745058729178515239193669429003928346581638825353106644009904700866890830750286470863884228507131473883915846470653565910268814411692839915236064943365026913947030275366666951351274223566436263149515344095350315642543219654398391797498630843923325843492029372344643072380673578560627463059082262907663305505723760190636571344030921563119603779019372084215739171974495249386781627916517854853149569000899206145054585914120603531663935640883014632790666767292916539965704078983847010876032266610264260477600147911148674906247682975468066228732138649230126792717262695670205793453781554448835288880966191202366786453804225343665738900030124693901399781145763242163348585535138941556350726286196313077520387619168836743527878964256108501918233697390384804272369608509183203934934273065125623383857418081667596450363910862788190893546505962570444986443845381917833503817727707796785555484395417906733978502567951429298986891830784364246815307208565379319961868206016694961109070212922928066974799933777121769349137896877801384525392177153002159329693142605472581401617610269368116895503987087030414440384282502842499812200684069602426133532891787208692241827828254050998276544889788311307877508733712743439426630308623671049996689794408162330689780358048677571084712218632896026206899116860336712569980306264966021141386233992077132676615424863651240684159127348895778668365751192034049887976787299505059354608618201982694613721043837182423567203051408823985878762120668995392014216807189850753137396543882029015524323026666460494785690993158298641865553323028836213106655096740134717812293705199431632203972290108676345457538770756243607460932742008235372722639816615367922145446352177752781603926447457730051927257179670645193530975933887454880939755976191630392337311640695287148042536659702544802274962476523821084493098436970758659373208243536540839527259071306731366885207170016119850763651020953064284309844419383130527225758525708494639281546220093433713144441511480038840479354302506841550455757089396529915609312350088038299960978510329858484919406546302501766489313625875489615753983044742875118450236331535885811412634547122333048781488120958726185889490074988751638164989205575603427745870187993066881926112171432747580269448184869655671818175252339158838254092965199808517129990849999863506938299757465023116236204054724339413470296819340394941094999757417068357363471857995253256841832430969401491058389905942716914623721747478980387209532845815904416407855296566401387317157827854857312655376820085599155543665564601245865486418269608240373526692841848178729605024316349527074035662356221249318456942052876160474751597551810882504748223477586858735811758432739188316500908567125801487527937833888300507854604756043859594510384978981284868842103080934169714887925775772453660886664608229586246961726908711164632109875678009154723783198125443538031930911536167813091769149814084076586289050613471220661569798207155715340948738133343404998918686000600353337524809873878767389564921415772945718073310211611488585860280511825828782895737740344199805062877131262172366235752272988685849291710739448689266699754088152532641632036538600240349774647677454341827361865193413599374039476681774483662634325810869120381702832281893336825092471063928575714469771498767879787947054192827308377898146387974900129984638343664430451808153238112502360566857538977602689164094317273200914425397435578136489066718235605136622947742698404825183040684925104753123724097148904056766978523592779627653176444761238256681104265939268444914177970266032361969559665840222718654630240488603995958382345008829921234869898367425840531980960278754939848592525054939003282058812854093378972314797969809315184687183115210675135970964293837707774410618828320754367234114817700198805892590748368561003953188206039808404212179995913029177313347037096919761036226947186570839476929383749155932511703402051836755601263634439441639388165130462602468644066800602724251379685491882638321760206004133613263931660952483422966957242374920643626394121143557514131617304538716743218647594998899447532610602639084808593317793664325034786630397573931843801328136395115122227615022622946400445274331794984670679765005746614283160464619042858811551724166954289840358519778428576668563701757733683171671517005696590998195751717244498349252941671956709920204941945615167760159486016432262673566243421595798737480874244484097681934608584726052444979229951002501889498143744994046237899958234846995837164360697174009498311626380846532916491601187403620161573639965474332774864637142190008907344166713402160960729432145728717882439155997998120292325660797666361001523652892044886429541871607226057931669953468034081601579348999296848493127186049060327129834409126515630383705665648789532765376552352669521246473179260221766959795144931574568249201574167851291322062248876726977094029907965777822954326776330579363320693623308377982633653387344735810457547321239670421160232110067515654259278214940025531044299086111353794709414481443984221450594729766862526362691616257238896892094224118114791043194529991580851397868311302737886273012989650619627828998922214215246662425902312095291318897589687122727140349604473207497993402186483491077369841533270026407328136650610284891398684710806358383566687996150224619212727649120056666787223554638904880336884936252019324049284756337292523025771815215927830949431540188454207985030713872256163371018690373116901958624827009469878697204881691204161217120518791723644253825791735595210703405672875755030542584172627719617388107241571218826835378866755654835427809087103816504126805994440266431569017540956378739372525707678443906500325221876108821367835932570496410910811903035609411128272349072733334203925993643402010285762550186886170531237362623087174113990531514050350338926450598220085694694464935057411135981039534012418327775778668303983497952531188266685234302604027043450735426046050040263737886194460939230609643867833064084503762136888827000579865795375876450310657880140865266620961391885904330321890341271137315754569019787067023784397977237606088376721636779122429568334806359210413061588121319534712677425166177168606545027261774586857242099391690169229337222745398397448134511977347772669054716772572901442447884377022865104201979938012010190488242514945112135320154794279920911970663986556992049511572141703608700966894382247743379231783946587303497519729120108606711369633357291537991146290502825333021922807608696487122803730405332584112350623355979471684396845199802222693650972249810316942665733460246607789466503303723830859980802762409438950868420181873721079453005079738524158915987989476398479877234142886231260524123392784685733735308283710395063490143553483514154435588743882487622399556772621835145478301757322538925925907191097525686101499964408569649101835975344088918449213795774333115901537303034007902228970174795211009192397614550301366631011539419536816233682382758791108268112645503321021837353706857754366826306223476463273048138790343579873235890562259014220550922952424153015613572270521477160664204525850994439183669866208268970974181808595927001988122934885075902333599890702848170620150821048740000477221628901264674346245679325604863355397264449116935932491232600081753150334848473447500999951641034203391049085972150974863655971222355384607141193541214028354633544675855597999220853256679846772634109971368763251785591852399847603644136919303194356804268328826804032682789835669686466721196762460722520634026934819690833636164785395661236819740544146551892200887265035780750609404817846112932568007142584035174570504028356924031092814079049363814296597972247612995286384524053142549853322299796077443945972735518216075041205552465172645094861439063796201131502134525831296627492334314785607163418803903964536402082667369246858685544923228019122796436336519462168696201822811963896826115554297336386954163461423447801570209380887634476632685448816946018415188890957002900329321087858763924959694389794652484624243776155991758023777178272806877703889551124208956916349860369654657246326916426292373178777620662555581827525524458373714416675439874190854399674188859647564559924634149556515877968141549967668366980670863365083901843019827144569686711981552041256011107841533713559614552814158629318596089876172378350207417491880107930459590284056509465673953928900506835644091773426090579845991919040987634857851449462028996426782181485999858955177819608639535253728585357763269550789848389498406274501814660140511239744283227302425647347453488057034901009877602946015131581196185620186345078972393147442964277708404162571946063682405770897671223477008090739852585455158337295919283768913092751642386782678937104651095675191022005572126155358217601967893550684831733789191889949252249425830434889402413905656752839863665077924152317276113398677223236010367137370446463836925182641670967604103058534217924784548968272770055102073464446939085236610731037279316304940555132992408141205468472694528824989956966474393264714133124760910534954508393782760936755620643258435237331188418392662445487766734594540417843642948942666031112856401300072623103662358173117648607321832077991697109389412083797698429767055693085826041394601146771970106996323708533879227477472624869242695331404954163515006481382001114739608572966917683965002718161374020494624104337362143450041112585097837761212549390368392645726564065194681913582541933539480836683498807140009014564742353119925092580242159718954418168039025816181869964217932477486315925713752078019422586495124483289425613583234103016835215999982748466464686395447331944670953181395652428668909007884581679303524020036108765095002374913551803202961227699501565241489056970862248334571953021026962301384002806405005136093290722590837106928572157069894251960729599681016320817986339270721981082695083415017722908505309650431342790557347088041286841022995832424302704244581144993580297561763929791869453954012986473805404031260025555348656444057319268562586295419366217199598863943442124967287995408584605593172440055077520306739271174543576235318733541131001123517788642400702209992755431281975814384762902902740072023834269650125742185385036851829439213635228300642423280820269043656124617436477726015057926114301134876589671224064157156632946539792255726866454474226996477840661287660399392558480235359347870659133085911955035466773297193402595369811065811131964659780631901113247200409015215530766002466396402665945982709313725080098556865616978964749814518297201254816601750605326268721965364171532836347552873808616485861305644762528535458636610726190098189737644645863299465729286774656264538667583339348658774165573228975070037242247588888850857475024389513315549429799038350894985084116935293282208360387785444302301793890907078924971869976658651383979725386210629992092185408194945861499398846584750841165498273179802121211296045505025936446366007521080849800913109239979063885512220171969949293838952917294608204680462126270164951107126314473595685945150116423912860354363815302390913639899946538302005299720605689119106030996175342788549057770902269321034145832428621162767883585647329431443348637131130124540409779776513375005882065453786814471472383778284333394982099196439199440992905659516399454469796748475744168477385101279701001475858388003390294904543346466271639929976387490210804550134360068759349253091841296289519720119883076646697247373366965110054777440908978720184188593555511500443288243197691192624657839854044946572230616773898192588352555683057352071120737438646478940238034162506029665213210211990519620682574611664573763503854217279577512276527598227904550205898256068152845422703991493178258812802134127774826594661072676023585030659780874258823294981688282107517043048011352373301556629309019813935349537459708406490397595397453029906116262064692124882149529883815058859631886319647226504660099817695825910754850437818198051650934917901259138266009326403597577548054282615372154305491159419412522866782050149543776239076403946630643356918524370920632067170307827715922744904078604104511353507341319297139793322428203221433705940376991412117178817563770422340549390897713106617240111944405204982100496776869196321121474734181512388080034305191625385284341065354143831991899851384144763026852726829447521122790356709143147719242086798048088885625258176601705684814668075599483938557625462718921678922755521709033451964934631086267951572537939352456938907591847829158786783850928825242470656944958779232336505439953051692972148306243153431612094537727859215436583908764705290244436661991222384879546774983829674302258142452735826954231187281820698235270247064391325061492307535555557988692624403767792145207175728210283457832584112431443416346034807501157759626770862430194216208985728847664559287762549340908627886055023940795601869114246582620692748582491786384495619536072277906276803108059203880711388175839249857994217462258377193681890858596902485535301208438228839151979771123220672369622091414251859460023432615448675228654114058389085256166968835310180755338759501803137430470204225862390681091467959016582998438019471260213034135657391705397854737275082126593547475453128304860765999964586823906895307280667856304357417596466471338188401867791511512092149116485068291583737500496794284927895933260210130070161814158355885731954032492363826229366672121002780446408725087876090786149554941714559174520792913900179861020107052945635761297502845606003120581665354080244319165618547170878892573718093758733237676414423051075011274120913039451694326871778461922761808349573874427352879203286355876366131416882304005705288238366001750075240247116149024118574874526724326917887752187320500372604105668071173814740014328426083877953305721010198843183121085118618508823320109523707699925716699006881064625726094217840175801044833482603212034213017848867013916765400536962767547456802668064636638388997854884619370727937924819555983768567370058790516014611675625804489728349920552772959028482481135805506420548703710090324952906062608048976517326035053365866511993983547609796459102384324750689787797732112834778027437910372466354983956942394457953520085229036033259656220315203369198815248438870296223229026648052448595503439353188709692573096366806154282906491299655346711297827068784845172330556925140244186913299821961045749020160522589728207693996237089090080597044070330513859332636496213956052543288375686145458937981166650150509697197311578990184962031790290380406877892575247039021755334235198025146943319656798404789682468591900158546317513816927015658476203323476489931339005233489869976137218720370748404191578245262198434993215147400395518854252509292023111813960900868272863009633044454557901516128059343607935528092619455149572684708813727270507718851717616156820816348042422936934187042172440853781392183893018354052962941338219322289619766120805699421919246691020417743418089746931429687889408609256657502684383035378852344786496142693503598902471468066839816248214768377640447884463539517967915579986357092268476226717769558275025153056371076690210075104053462141642261491247971089039666139084587095860246390625114437155416152229394827033358174402353577418505524899319153191290978037329504245239676656425788578634320867344966225127094218775840668272021777251659956709097497731743669402404099074824834025195533311160499802055625272452242763537005733863945312088032617907140549692273259653718176879739561973181858484533436596051337304502348953370713178322408138677699391511471497890612252478948896312639848735857783500765726809421998426672742935934428565944451514215700252483568794233773615564046024916309187498508190468809492237681172986791742855757056912823312762189106921778151620434522940431952540024824173813002909971305928134076926361701324280748805118467009765519612439598559921370742102875837839510672370496121491177544646781969119535875794402421339924266579640921528150527478396682369403944335163827961018240571416997931596908152449536295441263694360852361089785609016666818890536109978874486725009754157957773838201519558843718682521719730459998516532128461271363618338387861903753038289408118439224198866891708416630326581419148772069292507805310190652673283521413974195813500033535165011610974067390193747425800931481336129320738258112906512386101270642904987271825759313611570621627332737533397788597821512441411896283828931862575911479256653371031292513696194335887857742046475290862910528608001070165920809880353821187081768704392028309887751341868928500812467732726413120875014720525709544589183670041763492957354540664145103181360352570763999393024511853417065904649625804266646584905539696007117731021020553893269457782839757544159703815577376320182310613600008932621872624429470598964039207369173748085012599745920336143722400294740932694075988484504800127073178661405207494867249079550567262020359138855066920760109042593705169856923580127464793759579847870411900500310643435533538194054007136272255362225441118832349415072879475992473824177209946432030766634958817446005787897469336110838987022643954040398338263591761223697456752320808202646000425887262428548248906326826996501001931245268345807876849639645884117926379130190112170985224879797152841351300787847154525396520889381509552215473771766515593475558319383808286859285729625357611299277110837338894050412694906903378123729128831325326539614123353051515878185031691114329608120494930018229562759180433489905164817386113391004122702324340590920548780585129455751554480284101110188469354227458537340336369534130463515764674852285762906094525241681604464580290069686081137155409566329743553102505456721790481614528877733303225556308381271926146972487257839171545394506614425200071142381611718297610401231352543922581325835757419147884186769106245269565088359095821452441554751735579017344599064839711422277291603649510776235229140922999668297427141275151088306710324414939710738693747214290860121244203993487939163470306700931176987226873286757218492207642462865729000908952985145012090083540154618121183465312239933149796762710387665711747628774799110828144147892313042594281021785644500179833610101378189256671087687557490749733835267112435511297787654964814262598204439813709400288043647441175538309088176367469942115260671001920006707386866612451142807477526050690169734406067408073891624493212853905057230137769947728978996100240762891703508544740108988271834098888433785686791648586792730000982731649160650945379885350511537135081291086410876595409166690652416714164054549359684163243229172219089646823019409481306214907494207748269267295165703821005319424624508329371238190462793899154317442535940581333763340884800133715416582898321061476931645774515835152294600366204950838438012532399660357753900412891755630524357678393170802683909044452768607445525039277883615904242523376694246648822733353377324614901798899433072215529844550699458854786329226523602173358662935918084084050408496481514949455169051995879467952772284517110577829135543749843561452159872154456279547950751171727850057549676703140290610475248038692259206770056897427268517323284791539222237520547246025287832373015170657824966281972152608564983525970056593612087322556476353020113830368590299493935457817148560208950377879004312240786176285059672352319713143664259355664451906122869808021392722112103262741052239914593432611524038764777201583949126734965300491617808317645121102703022734598592219630440408710621998659035061415484936545110845494767819620681411747902720694215190779499599423052779847565655888191443807880135645932248020907291498309774501891470675901982870307470134234847601932422925203143784888780905072039582214550727381089642537773989783070554814448989828745565603734491507154787381677356078659107875376073181438620820396916540226750011867373523157425709574543547168845184848263380846986978132419426618384781017762886985666650228564731122499441866412086810478039009593369892714368440071198190937672052060141316652417505216699775100525930762480992170014766734011624622135233236729215936803387878293391621599708109210191208727832249037009673322424627071898329926708942146624089538835105913221862927510932997046759851373219675573049433732232484270774928711769942352178658949149557697633979900024705732555747325146760091642891359452697893213666035216018756552027887163531501782118758040028425599987615814884954371595353355666566244437985790983850756192452294142963161488706392794476547582744175820953359437109122863511100978053728525152038923374799985584433584014193912036379233731517353260803002481883417306752692942150958478854027703351910211395752404589655580548562580942285159871476203472924776939341007738899060749524666854441292005887023289841912937808727543350203957536641539755699870550057941960432863302403698325573786417765799458727938118625389220513606414140253493436846543445188588493128238301349667081290861325604437602742751863627968717517517119088502907498802797729000874279445536083572911860125074759138322428174066680805380629241039960911803536126229451243541929536964362397607523820011473007131611135917106399635005315014901206078742254812178723671127795201035391550981960304870592088063404198262614318651100485734513313756737894880576345118864509251820961737211403474039565631917648055688373697801749168391413730280994504202629293318143395076657644247295271806355858239925425817065883278410420938501977941392577738964463428540109587424741486676895700798542822657230530505416343907839371063066643704685184028536872715110674559963313247636996241607673653931812223819387755353706515182971164109492913162072493573056253896609099071442793958201827880211709655157516711683170641473224310838209315723386591515628898188047116260553794074597841480278809452636490797581194950367249835120096937901108210539277022126223551245388344533030411147087483800213415043277732023113313434098994200616176597767689361207094819087459283876269035922200738822526079866074812003449758304794896700579258458451106221015111671958902118748176413942772033571591845495046750842840377492612182164120745337437318266302449619713528939291011451241350759380066112951678273048072263108066836417571207409596259514591111854039678678977470505408296737951047389388207730015746023425742205059070801255108760904983128003694637034904563135270328849044615259154638538877189186766532230526568019684501439326464295019786523858153875843200059951830210214509586299816214341198121513950361715070007286372283517476246816304779487259858393171031583017104079036653537641412148660650150862860085477008599615697074752910351557822331856284724789882847613605757308655491678809000271080380092036024651408092626635953329515257581155787017614673317802318388582263613764903762641424177598018077868512673565734378685734216890628732667279228622942364877291555557860846281412536926277297772841071334472716222952547858965086915046048566064268749446146534965067932803881757530246678974646157483949398510571417936908739634637976433672643499155474724122153637563975873272769522771814560598456261066650398655832273153029390455095897657583590650109707237991549515264608617850090885038294744896050694132658312586887540968006082205980727550923468014641368752532791023353163096848160576920937413579489773798725150041358098468881354771490822715648355597161848056739274325317086158437291923799302598696250298788778432108320094097097716916970702245576031470748322550037935816772764107692200129544630959966357015627449974339513473693877243256749402352678954058186004572913353356433818634342401128241205644306871891490593611290810644918007954912967714781431745167416177272977173243402137485224030917970487706101591240252379308675481427300698220669915061923790310114173262919330298215448024237394628441554100847325153104605334695410004632303108452202239901246667094454413456607251506633232492778770961331507883950216194610983859293343413465381015584218177613005038146193230719280396837490187082145611774140355460957114556442554336748948527229433372988492257718644469435395749663226283935103670982812925292721339865080820777085875652238754725591879706362884050400219594686424047053076595015033645905295665973644535443032297126879367325709713378870793690521066127171642175856785019418671832975007413639828560519041913630394653100472230377109507727952605655942727931751686627662920408816657473489014027576654215867808040714840846483629092033257481821490427162911729810358036386753826040302652864888456385297766840284884172335467809174365051205579908487228291246026182947643307605223855249137487467739011979589506116628647258907710916996466747946608667528921247053484558868885541121297754867042079512228385564971165007057542208574851904073937056842972045034268605616845930825574140043496650001602023137751910822879894732564573244314754613833852518508795514281099959843299934797939923623367450858445844420821898284913652463057892558260633710516394576544736487212561966548753808640198292483783592364435381414051341356252514657328558650229438526439587085573337663235309621409957032461229199177227429681992584019779438227462486839676793943928893719065841774901920729578743140473269333002556194785841381601333262230408825010307769043962434556291468955564111507421369316319805457273126950098976127891931941118188005373175762082421648535569177010732141572973981920884034702026515563925291741516771597207297719308990803720582977017685745069391098719896597426163189768019138590532168975436044523147698523773934350191304304030215772001627567549204245529659195941067183401191114838057974392385394566693800954996990885948067510742860750995851221143541932247257639269293071399276542110297733656663240858512448278706792684860202126615806165713987557691972050386260198317119337737275513131056388264380906802889529951074022565968824692802407289298180161992636748913128617613508066867511265767375766652663401288049031905456881202617844276909961227253826201542465161000770244766744403932505487187028156998567369134323253347964436842397273816813787603223947493724719718461208006360958280050511505609336425462920631638830530069462706561238618711971551436398799320666124271898667355761996850684988849845505057745415951999129406383208947344258331497008068245359291552943355517405737399360184955006398021349556080091180639137197331322069150912760888399316891702338842896428654427134016067543162773074743360400740055648477360283356953979254305670410173941433436808462113284889300185975893063002127070615726831223608046668901722640783700906913876873194576398183068435902268588737938935802541693069594666168697806719975135965528793202343985749624887221840094470531832137876036379041830634444544066896351653816070331007839460095244460600989406381780088776950757969708614981532796149595968347403550356493417657696593405711615012512333003373921392693484060076452832994787619285955425764380445470578344524620039139243384053714604616106183558134036877448898664247875627274939598515914926829880217412851891487145461802861783113959262257234499150692415216034619601425181591593772992579899693713073516348733151858062058135704499637782128626048048318617039115494149793068075543354239445986409890403359232219793217659206375762091092306703896568053439360561976910638111098844834043751662330302882360575605529395576772253921618568020654587049790875951027070389442190211105177786100286554049891999314430040548811482318501813728423903302962182541646378602936210517236229482101196680433433191585619649520187123288711817023909274156942097355375450165903718781934078095594084208933093556627909171498377056278875467683134115866849353040953483608379657399724045006609084002505302372506320745353854433551168063165225952729110904711400644444694179080957110032729854243322028240504215452311067680416539677478962574409279822949135517093967231607527010500681581295678717622910054214858957547761660158305708268353069884735869172895011313309697724385843475920132018728934130934311268690680589610614375800982788269595461859133913351933807617604901912841673808675699775383184321306148188264283281196680690954913476148830424347212028426159160564226816306945989605527497052630103049197641904207658021648858494832243564657835745149781921735767794933044349199205535213514854019484983238280080713582943155513733267610591491573204519274223413913640898787540020952070597986128643792591144664947326651443980849242685887137732922708159372204569302551828412027200392292263755723086323309517163202052987796176440499381636385431947440622373451969792923194184560238706507155660803939439115775823586341279772426746939411443473163697286716254847399357660402420869065136767497484446503041005204725616272808564512613103177778951603010684524678710771487956500967240435799819925510776742605792335497377683499840821326568244668967651773226855231237224066203967215359527524409299400505672519670039335644382269456623172199506764375014613838577549056958646164904663446854887599991950718392315229691815297227267016050673446661006699393633459541931847118403315949901736113581604759871959220483206240675958823381845180072708074922824403670248350509678189025083979513685206148998561949207997090977649379865270110428707100300143258363131145880138878058740482603774322464521255997095740597864695137713653864759793158713905816385499960158854600742238010612169035652168134955803379177313532292175191745157436602949544984020797484882315014037609300661519356198021739561823371627645673787108548000059458821476808235597731481836281002100182830494977023001132083407284053708742934682586221041852902796791105539759836866133108495258253989557421013229173830954131598898563687062306862217335387547011878195286258847639520357048012178683221174647396651486270659350363433174335100256481143539379733679381097647157736707653345498037112935454979588388708731837155625142238565688469802361352688525971221327810404305250209567271913040324731536625024661461317432599283161614062281968207027383547841486684329205384405079439629179131037755071730355127436661815674402307778399201830478534403681827047868805990280402358255895393791201754638741749681249814243243133719343741724479135585754460625977758243353269444957254201345436331134051371179652910957278621268964170845932697837998169616103134953432019024056142558376036016598459267512877682465507698064902507418887020780151850456605885258152679811223269116958397181376117008968566683006574066465764809358610575996329734425248477230746545775131545072464328720274654179044029433109989434269119124083984930572213365113531589183474884583524303628380725992776061358065002586602875008972774358327989913320340744654760636684607447341096034185179514106494865291022418340068962220978407926765888870030323841746453361995465468366868968579108243120191765160287836397112606913800976465020315524558700006837125195666708532085255088831016253999392064412923691470749007349998212938907503175719842036740210924244792062827251364474872679872498220227434984075193147169010825870164186149724564467433866420287439500217805177877748422895309451427145049463673046962394387703448553607314321193478229008022676466306496359329560768767825333453947639390649050744889219688005096496275522725495282763564232482729583236979788694202854488850325636466632044492778331812598210883304977757768024770146200667118203729863446227444452595194800051428831873511599866477641279435239477390785962346620514208089983702923348211341343532673238685254600941685877976363435652836398347681217465793709368531115738346304497617676367001263990806918720014910815945827949631270957089137301758492082503854921616663969777498379776702539711613611982333150103288883305459746361935538731683335683178019074154309597617821351823061620173424237662729194417067176340919112129116697536813224788106125450707431186439889662555123456974062578642543175846601481496574731830836625382255528963088775378323315867295599188686567679810856113313951022726963408906850984416854472477364312302271934528665355732212138119533178173794585059560223748188443361129663284531352622070563635763227667451409792631877984792866824103790117575520828214792816181903345040864174541983573607358323597504174817170412544444482513122144052833051998745789725886075384220961298824682357449213751179601017654220111460438916096189145012438042062450167343311784548682892613309208500339301129496267293630088187539710562991626519726569175085837927077887101484085620277758253180710106917615903593812024658361417790940495444790449155903439920768579059001728921405283233831299659564360746784515295917444441097338969027014210376893046487888203811498816413086787634833877270590404431963945259288450061583285757110037538986041595613923927449143986814524120870563435044517783828556359629592869785905248221024723172905430363547055080702941784401507893708186315370993412217254073244456104671926639666448660206376265576773840033130763509137059669734129602902032245179657429926711871822085980719716542696569338115882862431181677101794462118593456753375389239858921122748901761656566835816646959031784189634133804303875527468480280635319427264986752392163545759749071074396032649393603669263461140044027450108726417615845335160759846763048519950609902188700617304018440824765337144262272665835891404639436527393411698876698375858933779331469012728793551327496664396561096571250825112130575333516681405451112108997512946599981964878320177436702351220163700727961423112194248253337575767627974064726105945816261784065270656135694907631260324542820129712631052501633338367485346702985502405100932448537092323477401659115542292933098540916904042289308928389084390180458728464886681347968869023522727374334220606536432674948665496286060451866421022503577002103652773100932455589826784622311602307860066147248580438573067985596108028329140748027519695705998282469812964828576431495862849504612414294130013449513058209785466894330598656746221848324678214682104202784843424597817158494910900479283276316924667871759221959047821678809580635970268757585137771590096782147925879558845297193100987718867352433549317423940601762752120101120366375123063655196690323077315811026559642309297120346112630008489302677039160309022828994859622956102335636858626493053116851627011595905638922762547030983333268260406499538656728163233330185139472859968317481809552294607670092138492000929228976879626005553630208756347212638167198997698954621963925167845528958906365079227632514063784465600858676913357585722423241128330413188744478496909902293998503785955226889411723569726322805467876225005175880023774028677508258831070111514257257980996290819569830285322989284819889228591960083462259582278884648293098097798159185063316175815852758333139283950962566721880894230255326207993351501763414385625372388132914371086097098621205219805698264083841525992833709961356748995594008372287416482878945539985703342893521282388346975831831568489429929502374202155061406490919512603715102849316125840816070213262206662445401826934920226874798894542199093932609730424691608805315804082820800982009186379614189031190078322511814237661168085316222374717184766601954169854399418865061037295337472416471021349927502439688910878800085628717128146595451356885962083235050285341718378465680448347979664682824783971675138265041252830365270431078389493605278580953680973528371706191711058967904560670804459915761802037835790500811096016689252707399883338216272344033580133160641073828827960919613784849393129042692226816058142540053702925387930726787676616221009107492316974503812596698478269713996871272508374686666358525339876673446869698084939807304052388226375678970888470581565888457570013354950254973795871749636035069002167601895180081965678260799748544369933378376756499086454607783388791063340138943487983235561464417481564222072449435830655648483132748984824917611384445312404945261822926288954716454917614506858376161054871672386332411283580306317252787645392557851324461877207069993347075801453404809551583902043679787556247221247989211432199864368179024029052949064933582022836095037151975075711953883017666418119119439652679094434680905760083576176867278524481596391915901447032391836273595978172040676061190903335288881854272659116768692500856565418349956107265623289671971797004588475497141782310162423480076080169511220151677492579403687231576170428345676593169302896732344167040023078306859294830268824512611155475435779465966973269746371327108124630985954391322621266691145496545851608855825343918932790789645577827265010418977291810719532061220969679236242966492485726969111560526029889167435565444198106195460428664153297441907790052904083172688031276888270860499971378338162076312869649214557412025715753024885526160514911333325770839592436461557702172026945778373369983175354823155514679042050568123659325074927558769743048717592820925939220541578851617199104496701180620504563427270318605261400656495119357353579734782842068194583200116606162694527941485814678188405819921874597732664959827955411264448222620155023544854746288901085076052035231468062416301134841746921284742401456065414807323096846057235901873328228921536554995631464081266531799259100897891115488795220305777456264455320957061311488249123301491998255597720456720849241442774800548207197667742322291752584553455146576837342981441258107903408326155419767752691406911810996620543490623863578907991936844839501972613959358700382326491617659270250517905920945540743257909167412292052061770084744268817721303248681331125593775795996617056393937982302991511290749208690033410330347256987351577610378964811514923257401243524271917993645995209016410859284126684611958652819753330400532356088240708752425810757140598336004670390445874006303453451464203690113336661067793944077980269762352021570436494138684710480351280285505798514711411371926180868450507960296841443991185761572346246655578893254251196197408357188096518908101649357968594412436980522951224852691336187930455736662179409618314555768697313707625796592835775801388952587924143663979809776569568157889168420645507901556646523887502605718638642330551898060575768142278288977947165540610514560200128570451156685235107826833155959946836500931009796496221803716047278495967891316670819259562194487733166298861358873035878134981552925713077021917249287513324923531546553892622563531887638611365976871632017985224466071994766981531305884478363310016491362251347567894759774812444544581615627549170632001641161188123436488721739909652718835462711307710157631404097343978230117009324365069257993366445986860981736311389598986701052573583276291198258938963184269907447921709600715937983030712598427517325268845066839123313868996784454623940047291610797953833722085507448954627330929102781406197740735841688054421637292166950047917285210472914514576984913708364083433654311048082139850519091936364166858147311844590566188153689414014096345402978131029406369262905849317321120647238929149549178820345354513020200277662968960425474760411875631143079039193099000022423740481637310975948909785950000569775531333130921614112869212131582793026459466678295768086622672823389774490374265869467269438638532720458375174186195598892179537267986115598102194868007397206546045396884125074867091038014795761827108058506162235179641692600788012181122132811795389534348979391425183429350109129946278896784792634448459499067837297529042015790676804555839476993316473995321549218868411450357926275068351195596143239064061902405887903633984723887725856142850644198497912520399636179846772682328265290654703208397685802845061675589559590395901436146089392721505696525516125208324987380079842546789338832731184061873694913653577734110355122393026126392130847154082565284915581127956121021088772606556742452263411508380381498356525721099270109657778588826123794154651157040577349266780967768650013894185501938297549960775128985091545187519898677873579122164216279653182623180071055942518552134241676499124604349705028945783226063516152960162026069910649503177167003028049070341471780932212451782740706537403908522448744537666512418962490603277346150812099624509132982305032815880617354475884923000846988286643141923783792231278489381997199962805696664432705651216926229298911849456940047205495603419391087537179863764488771364730856465905448702543925863931919908637039663311796413151630636231933594304321275734591205384935255076927175155879567411946058010544500913375932208864165547889070149430887810743463040414107668104838556263710634681362066206463644715574196941845002122864762499113160726780553631931703568803453196189084662088090940372314582914509489164918601921263219811386103313467265759939484241468614404115492331486834674538770669314574378990513576556008485580599858088175973972280155966142919318090317770152455334363548659749456105624103307045873376159290936938110654053441043836199950364189618867847647769716510286092060267282666869460844709126137219681222433381169556335225947965490736307222657446115629530400173663886533844112025452149661118852818530554189748862945544706678360416059669492356379133680573201803539434391978924332415257454218377262848953002077870244033600440036435939814218277560097933230951555321490510197795096510535416033522466362426547138468596510957037021144054459890445774726295707823592575112762920451883505018044546532652068277520654000888491021347175524029503766225831710017709425948855545903317360605786238894606197377146920700367324581488101254237119247389035918985003357357879885745543926893117461783717825023601600207123328543587473132517966901910709315147606393143013879082532884066234261807927251209483560099096695694824612554808787079695695381002326279126733420987272142187193099335382986659097615099090474448607180049078596063957793769518331135126808966793205966279541696941948422263807069543038741849531249461291923593743074432642615488580478450884114422804502611647807763787214637596626638627154677665525960335647558394945929567370070061414080944665760708081391489002366371484510394768678104872188272083422935690519981272140202188964939530063890809175429369116368361044696076467975370234876442390409610679301161429324754258111117209193826772371331222464578984497254344583237635336187654457342827933271448367216224421213661241116608103516188875898009021102781376571750707152514564078877436878611989465111204167838709093664446573516215039480641513054433334379673017037585649284489018250978515448326857425067398203686570063720764381771186724864985296889316278078463092717513451769861831508096404610126571664890584865801214028761350605504395079034404630564037871074859023424833513358804260948321354076095145709384174620959055305991032858420610065542855590632448918070451029998025197375706661395131113757697230258940965840556102624708589109505509899984728898237777830038115494310573542422879444349453471650418880193152127565396461509562323289826764656421409996288303788132946553578971548750517136042299427602686547502453591729574127030887497308077849197056832775100513020235354560308113513626971280146094395203799078233081339408058381559100353144853288397207744513725460704313737224307378509489195421619772042101869445084286515033416691376497155439851443849896772883694091343883356127175390363831441273169093779568604885546987606379493491505987439793413726176906674466542117862505537232704826370187088092128874317602184398721069124309622276098125530128499924828064774164529364371042253408987477051632662214212915527531472572689528793874419926727930531618326162746693074869632195084455657554099732435002451848193682324019249934815104226750351667697513783387623950377393634568836527237979083348272838685772764223846616412011102763558120242483265848008989382459513827472444137934160551134091221635562099553316011971493402273180923786600148210978748994800297991193852264340339110625794652969120642006608130771390143566696851420333692828847427321728562975345501560092708234055720760676493315202546345190566749483367448097233244048496622581154849470345672128342435338755656479000036898670930214049328256004752008203403516840965795564539638549786905116880558252987844320384872480726198970535464673059482878952561975105164887960800167149257091075802627022607832966859033182231463187958083033449233307334302521605482046095989441711104908094078113596552760037812199245498688052643045819403212867697245373881550925738337181683326319527941791281166025054953609644341683020025136026232641833419778971279706305733809054486775282568208470137614629494264688925304791488850308651752743492600623975772831525998709818660189162249196341043068754559629277648239901956778787540247715632169783547713695043993559836185532959457557884770757572512192010414885562470339608479720691821702814630080682925035298330121164055290839810420978932207544057926327931735229618249166691932287550913183321092143235328072158246888175231924656742565634230506056699208724698328861984818973968843766418426343098726681935167736859506872657743378338344335916136670184371058402471206355744573152918336616356714359433583085951116483892075375595948341504244652732310636052878048617793789410945236171881407674654766724001020616728211404041610896181715398950322429417568611953858553835754748012593191209167759522198543391505344201207341403590742074265322645918514405954523682871439653341739213042266103919194389013682952288937404008362361982053157607540965062794509533000598700814517669783202339897925675586313625535056883517083113021930620875815110634673073373660051052987898008706629889431728099394896423272633295531229273294343522205319577207531060981592271318985652471667808727141690019633025731197273970003548408257904396643374575734289605583417049017219952643666389145152676978798359034023830251953866583707983171285000118641179523758932992820569062481272604935871823247961151099741823384916110572718538068320956840429967725448662142456736878452072967924515626944501018588629311263497480927540356718161281409223534596894930014423248173112964811076729975438659639425243953845805245321753024658308103649755388925347885274834883311312644683611560668783827345490676803498489894956956052015941242261118790955557946631926356620789209478566256693693467211158878849166936986391484149637736776398477232909482998280230717026147005097695369222512583617318225259852069037027127679380662347866924394152202591763521849562662487426328665529853470532371682187703115032591451869318936233223178414448798943746079416937912017340557133973699788182018017673566485276655600517527025563080343351933278189075683427215257214296331625742905695565512195473214495703283083048610768652325829494692198031463652863945659825742768768417753557290062088262889032077330182785078430074386330541544469524009551482452526324781646540308119785106008990448234127975624005836264871602195009324100159968257684653969693702324205825775026899100233276002983888075354355761491226926031240369973127056346965495461287199645655985172728941565022646245955998209469953526941695834371618936897461811617829406701019522765470652556557013555212583021441043013759326983715679216169137254680385114489715620390468166132083162642953579745655707460153318411162344326697507970876239477539263473396607810902802301830736642176272302716315057966655952917200920936887003626462948296742344757391324811969125702432056147588028246026511464962105773333401387078085189733942268187624184087003646067706030757529618867200340393070823179621932084344447942109735496525952211768504726605252156956556543951009231477013785636160198928050854014144356776930312926303176758985834489533504057735844006370546072250801010794947441524356511390016565635984196304248875628686215330019741277501749978781883816215299726968412436257250769160505844619393770825867786521116763302283135823949233885446028137948037143643221454489546705687356662477650757478999008635342097657609801247381693962391895295684205414500600645710478950073543299067849908993901315901192829838455814324060291143008218170011021822989542146023268337891733196646799112217116466884868878768535297741089181013846687036750402282948338034240060459606374197092469596595180170286986199163109035189948841339427145577337472640267134250703241958041953205424752390164239465299810391590527515578530794982363215792244270663727794980003173966766945047857517255695629677721629411566206007729120333374455625995309437764595364226723160538021270185785689293233432638422748938292525810517022754657609478716899083381785309497211607584583244256917909341587015914950001060342120299835606561317456755843206314904220240821258216305330331118596153617241650504016909388023792347274129627140103549287934214924838715880059904690863162402322201512039895711383442312906294229375769150879778061435378136689249196509241446840322167880571088857127040668393284424498755658258618501677512992731079266994315149588463284093118727547717305445496451339731772223316050431463446134678977184380113351248042682665294575746029116141306300210957680761440010302141524251804258687285274915745878455425115458300451437378007102867493238781551276143909437078706272306757211872137033138187999715170283426261897372147635916381021817449318779408406615142259377773489312642392093276201301637788448876074288423850203138325830420281666155989730399010366730088509023852996369723407435142815731774502437656391047173516829901063742695075403585484905259276679812310481894449981083474272282396026837191990569985031372229903395235269131928938507445736618320813288945101476093468026191216263662242802551235623331593501026406994069217494906165552757050692200249010290541167232283073335764514514907433110956694467886903824924527277816085051866270308601659595614866875180703808157207979059498809391714626457655887658839260721123588830613116639653513364772357265362317241148895977791932111367880784497626370051076451412702686957811097662155499000270197150781503256057464877964658638874731824640808776904609852283409831638860459727404856739386837570288625556745816760715178365629848548720598180710048279940624784530538391050028756814835396195953464181802474991361289059890397736462114333037000171475719569071898684094225737768199427070148722480506693711309480078357964168750732506007124174755403507406688513355436674887456586042495771744362076517848382650266178489519850585740284134880854053050203439355094874887154546613762889989048257697579015826465472437862616318841104171018945942881893474225499928555193380911808597134007811682599332439108817101391959662421392568046578100923417742126901463352832337367451645455742002463749046733225929070993233720689630034953740097955451972415767106228633558808361019231030924274714298592105298336006451451658392608305581372334601051758296835010854788178518726455066950682241021280534471382852479601138628843298611046277274745587357141284629298517372410479674760487397657929964685609196953967290182452232691658648960332489126198510293881527044607872908429276836480015899002147544409621058269293174575659309536123407783046256749388691874045220040824775193373480156540984251418827461870825343852775614773346199041944459529208969695399120182738529497431379398240464996274100292744881253320587027913541182996746239570358828320993883998533686364447523999084302661070586286015690041050062441394408308888988054844703547380860312256150792613489840916903494520457602268890048810938767952712153262404352207595761094843842041092129416158312983390114702312028793094105960706664120984601863585894631770422996476160754019691813265593890007000374883163264759093177141765838745353758803531221216383839306540604072642239283574688711778895704160545484495521484284842723384231565028364534133275890316353819658894847920047121762610509246544398835932229774282205013084036698071794638556217720790250067248730912187650924896462967380954213817087746826902572989288792285713233113651411455856618729566127812483921881002554461772842332924960443331255000964475376229946564352659548581954915395897254637293217464243374323006345836056698494156668340325024541558600103212924357298702567268239937777598925843286568815656543575915910985891523820568380993621501119792913233690485355277245735258358913564185536758610328063579395091413093057978986162784569688489650739608164113966674129501971513985182620006329421949046563583708793648334424851189415591376605359059430470571659571372522684276335431248007866227914540398076531342145272848389052714935912468209626595540472299343160553671180291559644515900740467984240105157623302913980015468921763267342894292164781382570745458311438680790940407633058223349202510482102456975303147726483089349078147770303709495717066670562221013625162064077931963126670114155486313724403885695664594089589910576058744877488943541519302555555506403719676423609866984794066719224872426640900362974441655186428019076882410104618280887655447968160441098581678928549707722442326667758233416819981134434445027960206391785373153785545495639704665256266565941838454873383710655078643706173042887833145794571761733707262734014763093436972446012066087066331703400253127121274359507341058454742271889859280385898721607300603310334424298860871062908570054289314594640255513620013172493196128677586483544723195245379284683475936036015383844783774488485549206050582140056173406096599875567636169812519958014943958203528407829342811233262519197415902036062689850140384828075451855157669142893687392634546408280250459671410705499401077600631871647552300495808122210413440527638887428457802228803407889477050983365290203276994077358066293126256231536189726060462044755603739194586792269058582850367984587204316244956329515224929576233453650980185955426606530672769575019116726148006752172584653420316510555357926122248929715124608011008935847866398260035496029991212204434719092157284074882130815246911686429459487536958970317066195598889663879295431481543281918273262358030695957521965753399283843785583669789209305768212985120452707373660779829970995931078937927616751195343579412538612044593937147981123701942272052636117111638340870486358193365530853060969593031443835147579942479488981574469281609281181215750973765360129717454384193010332056650306670613470130607022380365683268944872269074073232029248504255950327487214149738365462964417161078833875017284020439921884278289265923210737016294862730822097908313407725037990129659063095021813987082242106684946984286411117590151173810029760134654204507054399217775874412734337998468699495490258980061343728572113929691622506846024524690346849112926846017140523312382214693248899066093997027863001598283516524856078985185454178975109261828785540769538367595942822223436706547144110610840777482914670385473279881621981771354985363450365594035462750661545615572039060598519658626106292353173038283846243094367530261970243974885724325637807229372681591217756851320720110283409758609283331570326637316085566725416346716861954660627093684995058442637295845242299855593980323420947706361404023393560270056637939214454908684478942004681876394930101274368518749345081036893342974715412937640173994634552591378838641081486667942610660820544026755586270657311048397427630453320767920330273463956131892227104685660991918517572314259824572513894756276286540197677117483287837431862319517794161318599637369141455583970447914992878525422228750911378100559334056660410656829569842951481531853022598293955657270265998569607505228699914059899841593988294055393128022850076039943750404896688701971373277149101705417324621580913580671779544012860997845271970574737378077515142678619076527383056818604149685500288821070846320692691043340165773573262724596523220959821549738839714985171276204813408327497390400410817436290513762573827253255207048105299990170306780067656349778482784454316623349161201897488492158174201897868388617955213981817024886707400157724045056216961147999711788422492350980968697094005872792912776049695753589252109799425096075619390659832068666846604313005906309778079060171693244511502697638667178033840489210365273060528032876096674464364346670464363708089092811968607815979615025949270449262383024244462619356470869204122579261853378429806743096646091809218095890499941243000268699317990287550824155167147868791423917442010070003171474273025292448473326507697587658297321761326618805301502532445328334251215827733083185934234114850935048965143788060404908434817771882979393624332655686764952054723067282168230501457391537449080287790204021615277438022634454671524016464565153353369424256364082248577419252909225344388680849010207593031386486072381201523903553380199327094564580236554880919477723597770437023872324777943459103948273482763830908226734352502246336042621430031498219087314104762815509822487265359432240554563450295375697427191928301585713240864655746312492347816680555119005870744449364840590291163742525020710993053387135748613526154560895764438136088258092946430695570237845252170669402079607032745891990385802561191927763112299476968536856980148272706533923870397571456450365414365079491956176223423347429351715288744519388512129377587074235091877848127793962397207019789840415925958819089027499593557932085821449130273682009829884702838299536394286623986554455625129508817370043625807487355037308087185480211312461161898561407243965190268397354762971926209763994488414184228768421558477615552032124872793707060986114071274167452547165919529461380528810621988064195133075900982889721740564950892566182161724117775992320223753000314258258315377947836820946633604448669362940408803651960589498408365000659610764816136062404269877253402327190426896683716207892723142126537212857266503418490684723268113960058248141503477349901608738371620715194302323285649956528441961998988656785485696279131501812445285503587125959414381530551721538284361659474205543630995467539895035831971103166628915143912123130880067121468585877317596916998931251825132764605739021176491949469445866235635773849249273447104060191913939836863762821946662174755072367471314327146463629103289415467217858053161803420381731708865677319574314416914404036278807981903779103696384206178260762897066916567416173108005869778772237801809459722860046676273842966196123051692418122129343176099953570530296642929594955557938623578305091063573839887460708299934384522260726977672624164594782723485049379060806630684186102809309840319346452388148658134255253081981652605783377517069002005526313906615355861501925405179888798556250466545949716200414619821389308978159154748301734232918840614365671303243338121590101839085764774193992009136622725535713178152773009987969624950368626137199370147234881290639987326125912807856787191568855654108511111590170911609757148546408876159139615779149780334428510496375108804872686663197637000751589194809440338522006362534321219807914261348266960478874921151341600933471085549544185655170965208213660724240342591072716915087855411664433979255341241687681449485346542957388311362387198649887356961356379221550943876215455740429393258362403775769957816614098082399573120759460315642355087221133123055279302977399330013428923934430019946726059548833613119532982107956309605389243398034176838114272668780596215457721107585512540496611766187925908595558888846046711525164004120016645922437951732081720314725428329222969949744859245061245506937144058992997974090520545499272802736835624465108556399866245848945080440734606481245936846090072586160599031003917017189857227066229636494635774444040041917836364037813643217777242379406981190625481596823467567680255111414756039677854500690630711565885719705191042051641927750354510012305906941677962703771511788099760816875934825105704805987813613828603320888302367484128766682768832905282936824741894129729108645328903573675577025144567568283696054678794237123327379227328152416814605490523071043844752102381160065089464314222580798921890812072116996476436044212718698680087402646401654666518082226581686525323170692016653463002457643244659585018547069237901854190613181851138723131942176667047128518699303985528190789427812834092523169676306084672487661688832022370845063845595162307466797155181033053865950788522342740880322479596868139547039145658944270961537267128014816683356972197568304809963861258646791848968500469260488720380035400434862654615746900261872258617575465826833729460266995701122128727383698166087660559719815041651786283162122978443134378763344741134298329013192268806099966891184815503166609231632878942631242200361582149855357416517007221381024054502013882501258860639037453761828746910942501740851404522637841036692077044435292507989719887495366516992717804733265320911634050693570292787116646303356885048657880278000515693463286544094013671610039951566719428617287715401822365872214261543354613035497440023510012080851543279780802336023885975039155009376820504769012755733491333416351586753935098487087223864857159201696845352808581063284014594510601478401559317242626674720786770933745060105783948635028158937041759072579529040583782095181943871362919303286680548435136247746072712540833112767146738287933452931007902606512695615139377659371451666960044746028208958069849445052675498703178817375525665763390758873452755624795120699265606691708108012714140018976806590014896613859841022011354407044610182985611293715311650815476408444976502366628536434120503009318719617961119634568003020047681852720732010261909365692899453917286318893978285041318401740631288575582607902243097933825000235536001990939009894338750821662874048645075977242656553526898672703842779506529850507375134264928717172237497829197408035460885981919027916457673263981160214001201566308197559384155427838685176641723925942515215062544234636969262728196129823758672935951878958463992148804420067260668963847823538045825950572400541528715564329564877133404996304378805386256090173429334089972537088795146187954954029925114930398195466549184254995626979555957583590575723754051412396390124507563557729304481069362989497301428379400177168344831021996285216782971519164187463421351327375456441247328020539083167158783673806840218713756376672760402192865660143288965481163054417045286599844793900565940853838113276545171166218798283766056749337550752129014311628997956618897435303769503969673569822087912200750628374949362137801166929084226318812498104092960412456481011667538203702028027764798729309287126488215839512119237185267468443645252643629694685843919455035168363107650989912259564964255794602076096268883190486245061761160328434145266041011672241150067240944986483884004402560704912425301180711591291416037380083300108973201570942881059270836178773025336980378236055311669393247334052469764813457423018503935999910572611816105669290176138151351365169822574917335183887900546100035691327009955267090651643827976651897615991318439685593096163517353847046811541411553082767976229451598951884334305277863036777876396360775227595881160509491211793199557682125262868704773011660082993138719078187078299056407748486199340957106313944986691646453100134478891860299216390396204076406295392304746074174281627648192470027382758600918886318902040011386098460038839200565084560858203682073814001849255653815902003333309912393198578305857316222227611559650897785214700521084300452194918709846857729879369141400781117109512862362063125485015974685821655901798555207314029517765241202349224266471151368735971656676833990891167801891946702280053561450311516519178449397847374268569021780052843251698261799475147909487482469988778340810316228353965125589269140510378616971385389266474925206699654065755903084466381276566058418735263010245501466504179621471549235554857473276278657741891317067013799580593876984629569083097002351089134159519233634598492786036607651073935429853931225432104814553651452686224494958655643901994470539168581957353889810762536504558723249830284155269389681842157166786925172177828839981442890832703529086273425524461202639594780381035284736661758081749082394841850609987431223372543022933317071983312519975361300210792901458521231510629546989091772409114281131160306555098345825578689588739593065184609267158906074871642855133516749045103272295925634342212729389835198585984600145424836169096649965965077843095889716066258053428349352526292271159823276702778261463907597543641844085334176278369550958834613374279221353617549952981175581612003864369355479059713303958164951579079286626732359896090903167647344936824816300503911221115962319202736922082957041872908315850639871225737436528273683029198844201974635763744572636357727969395020745690261815725630937293646227056332153175796328712025393518038429147009845787262404006567167122893013516342421658705075436670781025062468155526448223400354828275066681752895125536660436695460904857760328762999527712547750837510032895024605708438015196775432051710324363404881018220814253749798361175788388307787496381266037033740231522267702169845903455455001454858143319849009718762176509935536744560631133755718869640074491866804299060034262553912690606727546439770682946809276220061738228227620274146127586173717124464865366995359669001864015143195450752263619978269949237909403303963133674080278957943893948269238775716363495367124535809391961185017264401427188976273913952835801204818553113435342772479330817802609480653939804691793564600317755497489263897505458406854633384528747285891704304562950363921145883756159198769867449010284865270098624947263819944121815418415359641193293039428336614935464288514488220188756003959147638866212022975739217607580254387445092434622978890596035565753217118306977483885927023367584259985085419989875385961617662146747402140917271477338623314185976249848963915484546039326308825136371639137631918277284063299784745714274729548492448159156016473740562046586218203249311537939338909004130424910125075250228692831975519486674814286395402498897027037477093505266987139600436541222790780819839111294628083795611672649915082369989508949079592088324565988950556270625960211113694209143821313959972595972055947149023752283638816710704232496759346690662204292623872493676316116676071859166172269357552186061181461514746710522549403882004377359316591000887862812626496831766884907852649019869319039612781642743091851791141370296815904893760018351529280216599026379966544279944771739389228027841994337699597694595628258920560431911388701041008803429898082767236928537337834160966484590296928430265480453774290825340037838371696838388513183865228815481598158565259245566141482982786428989673997663337499095608065285144721099704726079533043918166781485485572032103747609239153535546115400195886032280074513948638980893582355729501285054792518653318296420205079193973821523437739849747209515703105036920565882535023084730810425516700838215541691600574764803890872355961189852366270454062369835834474347364704738231360495191473625046857855679577374777078668199478293039643572978930338968801000370039249580450930523020908687715946169914504637250760586274809883514858658882514337340080282465722611656583820417675238277201099600126471377438366784216911715405478027775586091269784996316517381738338879626094451073228536364246228478168388783576705220139489513963679903953123960058890366227383080168358060882369765228285655550742274631277416334292948772360357955657400011736048120080809641579756835959730162344366100526564182762401081673379158092474837172609531408386602529425371940748510307335162805014449338336057256242281545927417230185938345834032657784672228380484913710036835755114275986825586967958732386059983482479552862789563559472157357245309103514534415578880295329493492765328383491714550925173415782324663209617889341565442959690404263827285517297830747953523450413244840313678414011437825704791495601067768554993166794900001897049226952583477343095497160672043642455272562859109457201371091331733343197008097046552204456490735929475682984134319555739226240425665979514768090686031390490410906553714185815142118699417916440792315782721477708151000304157811803660124143779526759123492119181569668694112901791128622739193055909703953612427967120766954670358183756719203725401143965563522754409219827563400602750733005895618720349645926018011604732627292371929941698102809558229985907157953175871289691673370693820917093558891387934335870384640184641474161330304012702579894395638439124483984671030972097911370573962647454682472034877993883602798087341840787376309007340524459450395343901542455191042883551268279127333113575651957613798286324773844080511113582520962261258267084082615697130439183664701359472108291582893170337268739041074764258553621310544125059736643750706212891697190545547009685655622425805856671346949025387684247790629819939710949244235118582669376714908611254400036982514437859781838017021048134920812012647524194430950140742945080031036633757609130096952841318285469383123735470536534610771899317290451868859369667702566374744422513541035601251958479199879104704153157418688275740287539018804905607155808322595639012123772644965200095334855891854812380001507489923579691963282925102816111897098756325481212925562770550512902460671887774945901603053786343913040292508590999704681062504523664647649235958450520196008128458754946073696123750246779861542744440320110019231410898651911155617475811562917523297722592752569487337700265765523225169033636791031493683631088740244015347479238971962020583463977430585912032016274794146692878355084546263083571796043367381071703837656775229242462971159625546262082934523828689045987776361086268424365465953040463591881687458530037903900775822704328290898957947123475274663238561635307179408902399747780522888855373499188440541058410066175997801622559927714395331160811666710331620975104277818286262569104956950557488358384792292009969932250920781616746366795968484348031366952936082795477633735697893011017476397110290750675920024276444183269938473101308801142052474085817277210826900474790639033947253005208569849972643484611380674588370572760250833771929459755492237279926948549329128738129533715489655683843061947162017417876624914917707963116758770413139787089105728628911685957955737305161664712798470997619060601749889709957411197873463660637924353057667848397092243189463916913320776852216400124223247916506428984753121049673020832480967900854424157686322919497914617826456296169286839897209282790344718224780787204301405582745635179981238358722742222779650645893233918820784180683703022308629459616131801944692473288431527818401208590700537144124729712103460925338965448861619597528611854117642112485052250271311952854827436911357359109936500105303442002555689427761995408343346770829285582873772017252669107976886057219369599193301139808495749117233658068792351768027497155651798979422215477252765002371184991433013226790124012614523852001282087533470300210669142119050888253786263816242681120651839974733775397954021122819800426850882872878365336390116872813868198646086329088491201429035937106663004552176413041886076511154207422516996321528487431124176512328261001477525184384005324147623463406226684813213097650125278401400513913793372858573451004766060494985122562749340291456605335793091383251228993182307740596759296393384673018028532098779688467854355387847754105123207221411068736813384809396113778475399299340067363652945417402567773859491754222613238386837634792544935888708425482335251726765255285833869222855632635416912422634977186243236567463424800092154518601903351333399700727391171966880831626387995328603548981985287936485089060214970883195228212627111249612111704023747788053926424837072350093316694649819895453368577070692613085193171732662688589272457845215955313312946048474274601369690096773509054885911577256394326490433906166859391255236531680054174007441889467755204735743976761361402693088462680907886031900526168052824307754093694427702153915848145750169454862170853412214555859695783149935221120410743761828041739307692723350654487821001550898712581165980411644165356324184099824406130832323594554970215043371995318665803244951022044549175906248723842561462117396734782491649788064345528570236281268442676225349178402435886243324416788606468951492518481716978024066325190884905868390172842270738502069165514886535124317874401574475189304632000618301152384745730660918390277228915822606051784213470414137320680140514065385091059839243642556272470973658776940742043782648079666048989566656043859875477607744382262147892503000095098375926152089795355970680476328857007885881229678386986633036631511973566375355702154160671886251696651298359228201274840275759020823951949813702733235484125341486519526961861070690367068458257823295677767273540426949125427810214411348434521725353002044431604377791686513255101098256388490281348184554570029717500011046085754502638480147307842707031700535752117091300042163534551471477932128115261595568160287711036998761880713563947501607621057112955513035393896622208207452892949263822008234398777809115808660492455862580593993817620974794478989566445447334347548395678751777762438750309859873566669441982362280741270524717109755068854576095935560908715788822314921968170399862721173137279411045479673158802176730359796161620496085367937050357984937408378674719059040683800183897999176835807459336605699843124579531525468972782563130840145977805540965130731232624680208186212802058762548373078217147771137439842726445992622448134283474254449632446825358568372904981557142321924175875136792780216670759783332701963993434896585642055516891749598454512928156946657611536749977443753173305194876481858440420758527326834894472059405017261356822687272909945361626911055872071576401735519188733150074537459719436333352771477142871173382747974974944233455926105919809800819645820738546519515926069803706854841248925105508994990143269405922350643261133779894358375014282562191986753216810284837859828990265404419830103524480451044649090336205194408470081414661629836843863849732608936302639656558123027013924064922076539195262825664992560342448117932372051903238191689089949081523798808810197088847952986368545695281888265876396237868207592517128644455036254373936231021098941591356122205233342310680458019475527763383496342157134124367014585901178826761104969345879790123826560918196493426660783226204659079424408345005010286460419669566365095969741275749083725941144205771888319745614359544528695526120254603230793601199395810502784744921544885552464829866229609029478580805784248851015253281133053932477637620869149107214066874581007751840207099686125518123187976745347656020692133877686466096602429008007488455803741882307279978210226321979156122407956251549243702337823506712875294074711203437625792788905944078459285589985291915145366859526697624022527502741088474603608214411152705104537690600135453752368561405561020930273518279638287200062419232973267442642121564881593383950192580312146885786074700136550735773514694657985058883007091147237893769713705952562328166518783280697368994176337123324583042435301916254788588466642125921827049840640663532066561837297090372582210975417134762252289337033105767477327861865923846700952894913372278182056998671944957341606051950530709119497900220328558884809858244016378898890558893064503009709721925931673606736265858548361218652302801834019231716236000745709940036420527953457797795576825922489258759290244941058767436569877652229634773489773079600737858346764093208061040658549910390559984838044843931548390549885080125916637118347219459801829387999164476926102198955900243888953531088495225083474205655128058622114437712296085707407968107269751838352564525988699907416932000437842101802873022032953153993597662698261914992101323779161491042760274293552358879645333785375986327641047783759293169381721297983964816681694473879303208637662369969153511458944975956988919339687078941673343592957320641409325262992799246872216366177414690752532215680385285580788644854416914621561110471524156234076352664978024954153641349772740074442550126621224182084242042865130410241377018558111426818767944487760833690016360223643541020347377973982509035112494253431463716980854413428033389629420044569130878930662097167660397519536797251843872856604133951685214951897398211287016415666808762409473849857054363861031085460758448219438124840747474998567331014246887776086298819301742386065309333627595493747109778105251527344055307255614611162866786386062454225073367823789018546997477700108512691960895183299480323207205041183367425445424532505498622223160532436101597413997461275051129505630369563750132799320374249834418187304314119400696132442831682142041955973026489212962417258446725580287194321591693250080547814414300963989117583737355906624599485235409846799298695642423612917929516852274673519891197058968160451354331131982670758545213797942342167450564245545114451228877084124079442719904346910715238056011142333770013260346170973786066444785583713309207022736965398317362085038127337885502551568279653943795320166804675022850937838162894109840187097419569297056289215292408203567062965430482686425877477343843945804474315676772677605979466309028007724764743289144252591978398783243072442678681783681791126575898860145553452446506562461180414092077900060660545911498186471046891909209474365160799818240896716598818382432786584688722763751348554808157264787594044298864610597943887639030198733574749199549399406578095918848440490469916796508436087542965397706737404269653450863036575044918812582064122777498023500558201396732443829100494263878219651051693630310821376496483660058478346269954400057335869860069019519289818352137293658332589010172344030369112792693150689202357020186879494329442224080812361024240185557246548921807060211975618342555783554273570472037221709641396916293440601926170442101656083637618464366057205128386905956938752467326679083661652874660784706626041044739551272618137633851736835679124498175191093967701656331462307739252423624651212693191130617220840196154558272726606209451372400973350467638536833415743279867951087735238100543482013336180369510558528756195183865221267320654771297587427432784758897172959530573883489456810995564680397276606271610840349564495884672049405897052240286562882585113315364491073801774968539045865573487439194350677180904218274079480806260527226799606267819855745994447545904874450231506480512652939695739171756358166340922265360709666309800689109898621010005607257635588057650240428387449799672088038281323550910352514487739036735081338078330852483046625971577163179623630127522565887396607521150133840576132792582172963991598458694734269298503874616117585020310563793023284880488443351877058562336416105250440452888552717986517802728267907193414903920203708652645212473093960434553392556510012325751295962177205067088241393794217404426497441903182721049805673339637647268433807668315539704484924764185064164921327145463970100755336913002146148817110739419603048103550795705918609684400722513966243891279461264138488284225768331136446501241764245498794171569396617127946319184070719972143570394029172386107586529861283909705422773252545808547110633631966622676190012439371938314755406790667498719396602957363929779643463996393552681319902911675174686255291563930952995647490565511267755144652802141229829521388277284053623677452332724175112547073164864132871142869655036903517363563559513048767610750110471016579638109426527094088131540170806087867924003167874353196323341798806774227852224147562601234201181041876187271711477424193117386151669668020891112061184827549315323002284579254486889708859774149167368989339911536913906821236569170803934277338096255247612776366850880321376534344642447397780199326494625661660493275950520221242094847983446766411956761859941088581157871733161967953957622892307929071786589961333786279259575852474359512957607153721984872580139938432665044389719895991113345750701485060521787136577888014875189817623324055606349304930669492595435544798991783739923142479546827086292605566576757914921454163142115813988714055474497564763540857870095455940681536452763109773784055480734068870156406167658417512535314965490341453890683504075557445082578326672143719852635289138399390422833334205313761683788033325836318966093798133410329225782015284835166817705189042492746378574544924062090392334874353159720883966629125267031106284813202420240361663473036074901564101695611937365049122732692257603745680109142960275983306105050951850926264020307304916423142663393340574054957848864302743333624622786054713095430359216093503640198400642612302756023143332715505120701218790938594835428320226647088939264443188574916569799974318955121907372990332206555404764894967123646390700424143883191495003890535435733674698028135582679235231454236139599330343921214665140402194500288333912526259954607512649057474909810386191550295949722777713469750502115091929949784497795336142526434197394607850446358052067353773600784697396674248619149839306384314662930875280994482413774088249325661396891277429560881871662665536794511096596729025410887479153394941755744925042903725419140489604638100853057052409543919407784857048540334253013740453644277154374551412080825579493114606310597133001796559461601826161739225420815590153283575285100883734265378940568842806033810260649127283065306202697419581290911884108575075173682711391408667910637929389843416286411187788402056837210862228743989531817419742223088319633782821965141811447133466293949051979182759069322454456257376190634998551730629785977274825826756028808015293103074980880523597608497112934784545187541846450720871626449315398800238416233975555822023970460943433914854572528481706275538954516719543926380891497593854190505202695048570667220494643970443144606902452229360741599149122478971124510442913004029574129536487323530999718258319359934229570995498758886909499106955345980387776209270947178687029106420587319354588669327007707788162290220941702646243007438054199951092128043860624011295238154863959137110893169008772796494105669064352592586199107070375159160605055331054729473096783839306318831545492219937232858760575796840480082753727333163319845544175979962563347424148549354336593062364042149170481312471614814243543212025612691676372568847932851019410770662083568163275425537229314600691901396181131366166817562883912676322127282102054058434344421572015226316892632479358159690171061277873963860589518055896114993728814981958007334485352036481580866281258011499330810589177367215147646335790926183243014565643417956759973315747370459270165245776442182862475254723828417974305928776588615117492773478884506468777893870340101090734070424020174102706722913178193769929176754394658994711850958634827356850688216711724936304574705197871542510184694726752176518354604743618636745105086720527734673455753161365836686068036728577125908753316917161709874149602510085988999988292272684776010298476357610244286098078567901754713781226638055072902170978037598060386111248438542257440421481172616448861354541194096564391670910415874645053072675483597481401967324295716499180721834275352734850507317186094604233156862415613274827564190124369606061664177441323704673369260635902515730944386567809493392781811250343844331675500075393384865546036243382718795732330892228794198314863571700102812909259679874875427292855961195917647811718685878218030697207812802173034400099931313202649269087836515140175208372701030272429785547717115718162658404706457449144024055561284391170496847405180680022853354301760937818368284714947928374643501061767879163274931484883603584728205900459344973895638730297006285115253863880014019815500388091685247972206052435457196308167809529936525514238130238539155118770390192972873968086576339563474967265045299094752929151356143952398250815359192209617479738339642293120585546116003726916272292437328489646815557255995588014304436448252006503120051388428436889043108948974463062547156494610021172748899529794400260464709447561201495605989523432135340464632792620633400340769677265384092245907624685960959915011846892815424080810318677614403683793779286664326778507547010136836564689325994393847082290045632430215824962105246185329242163059153115659731978275111315189702018967086813779301391533543271406710683853127626964030368530105728051675585982044607217832619440602433202248514138145869858754458440106733841819607103783185851867271196527780405367648118542379302537063275936491693785776531088534079047545579164986186054469183222161759340986662484560694611504266840498963769870806781619547018263182432599161092156522730826425069162046144756894131144355178206412949831313807213544817984664501224550465477878346366042424879549087407947576173659442982994636473192679073631325357054542703517988796033380666315324449257059416274057454627292640353712518302306171584396655459114012200404333713539300300647735878792636169010040663435931718417108636715797832104181412713796333851965691791048838513129560236472516995740133487588283141122491307405499598962788528277165919202427101223799406588343397784886736664328227408267121998628960597358859279839166165021001226112232312256389776834761543544504972612902676347722529673746305215671246797578183572101878147877647739501825000944369243208174575570467617479986320122242344490197758024737707538933018442100697563491803604224049794804432588306309885104509137273208608370647973840842259614171722813920401095758538371051701605338181785815198210314154246348492380672951559032181644216097735631111307368501804281742998666305931978206181623974764921449079625933088860901019187234351440633379653306709202619382389095862055999549985542951529718344234368661640596605750936129619921796211742949389414046496352341947930985706304112927286924795525611133827431234066812871309916009462783839470620334671053149855160486458423904256153387864861305969699929065854273160493503526803768039899305751741572357001134913297550923358357891301227456354618981112472902263078046550861594829892535724323578427990275352334152624930158216774294128489025413858278750467920114436363208381623297069345939413289632411148241557007232461275818009902672785314376880402664677414880498286390840808217701535758222987936531429423796447888719122573725563412898452173220698593941377734387146579740942901986734022985636951284366073231721766444048666306828868970841618128099250111192616279048896341836640079457844307544150456486591959345303052722333118164810966946063060963774757194422204336698801609064375555198312751479295395789769467944174678917492369541604708104418048023795429825825172287313125237913606367469005224110492159307893472924031930304330163937820628558846912832291230816806627730475305920637578882119687177431630983394878543636203103553664099378881574144371064977083483886754859159727216544055224246281154641246511122586782659844266661615494359968234792720427684916338760092989258558368110904172937391655915470713560197324693488172302600797446635520859041123170037454396540224123562951963760091527726354785449923617875515110695955221585558997858371471235745750880476688677137656721209260211505562907965851781497428658147738759033350562360290303441414641224417478725477719894129123685391160456785540782617569183179879184758374615247644007539331727999555049400113368134676914526375628431882179590836192746008122858306927911346644211109410849294153277103298758555884334630800062762060993040483293946419164206804389977091804243144596159321769210885583663940891642875213962719551688292853104330787071028030688769696313864627331425755907285345406178452988656100852358152320448217819182429291604301226062174648789028637875261743583592335452634364782020618550307355411762058244392575900796042505735196578837523970194940727760049181169715814895308549899849851769746736202131863510668282792314092787936713233037802421910796559721914475036277966398956324627125573569540616102577905820637584173102786986327016167926382459037395685629002392186416486342551395457994262845321398156779991634453765939333385239352822367757164971397322450794094524836348345856340089496256157292586164040389743152085186614285435366244281851302421996276906267776110175067060579689044016943877172900955041497644320241791467131032074498516340709552844932169399954950138209474730322891109314976387219938789011475172270471274494413489005311671158826638125134659194974956027168410149163165946352981342369689673715520505257819949981532997030986356533925250354377070783397283061408510263208180014221581572716031681938200698144169617847122532335005514662237054603762094954618865556871445825193617004586840653598647444478392046499258980939142512637042209197307200020288708739063872040358532432950048377065062519154973867288795738620938027314120019858923979586248631383440472945655582986742533297013682916543907123292965681727037248452698798249369257202472207923144972015893818201246666068926377860566906493301524261811559169373944240527895070721042499268938841259088586056558655976803373943178512105694981581363191777219614001307534684051481948106504192593514839843505741379234929635941386675447156084979020963550967409368178936447135846080975816029360072921145366021449301336977525419150633270896648819512031174229174868459962819995324197683047514153870879246407136663593433296951846889808387274254545643173032697720083489170689098859516785866197541401368693928680899699173494164323913795744717825193751917292952316921407494677069199503620465760711893006272214169952292099068499500481513365283512481946676323689790323849775359689352777715656382896260434190163842834394451834566826666610150479813500504651469820678582900565048093137332457919843645679144707512779675052204656417975965013926824349598756812161968711232558111805754865481592128025908387235814024491699694554414309355962788641400736765280642871089578405158965134703548634226230928078667333686220955926541302918289898540446203289795616390962128595374635059038072642641709964209381008248599136819218945261810774599201995424541015911040749233300593344061970042021634578252756989371928298750157547822984915524722858793419333079696159431298591442511442448720972704734972350092937184667080716248583370291839666353364444354520787653105259066992153305517995231947204501321096335177859606033400312480938786664934663778660858014952162939606627932727706505116135311368870197803929086429339957591841102726744827432984965634482244689301778610237841853925184165290689521230266761767662376626327425994720075745073138287020103420394654656476326324352253705747114800915762282053111861654355905452677035250420220432540892538154732765932076280460192948104529629142937087266500836710911872770343625611126932188019184166755979503437360846043178824146894741500675653105589458942902727653656884140604311533556230933151435857524948127717209141441075680922612909633504766062894572349200681284266715711473108940529028732445056450921679140840323983774561893653788712661837088626634219180587683552214605225514632096537965374215661933751822838634841627614785736370736944076432266182103704927496849688292605250340207660404407761570898296394511758914626608269492339225974464862122727859650919339794162353373904215840821084414961929559205791654625774389181611088304995081207755272588551563038232998438035357217844249975195830642820313711627933743686272319429394140681153915766005255211477866053997894610519406603879653108814334920604563673346549202821884018617064587839803691161909006392441348836110950562607530864383953204448922002086592414613410506768940348314513123642842900719297321947049749645728349127716425336640426454489435755812095125261893991022447873934309026464813920040832779917845582440366368072844554608645286006847265565759170379471162576545727200255888493705515763798638089307276664921127624692723086145555029320513744241131818922503761747841860326674236357958994442519315694840133533515713594512458889427406742132167204244625249028137004646924357173739141788599000806225691619127278669559318596329452080725360753072027573882579640493258448964887168141958815844452984652662107363160941151657403108133854108102268698912633911633835604063899547036797136045063589740605461354438704692535239869911416559741929277089912030923742795454377397557415388076922711092890329456560807395545755585033324308188304985551439700798621880820971389918406932325222284831225859108822493849351321466810043114350878588624567292156949794439296540538680086841268306571476451419506807413287047397018772204769236699386279611986820825960505077187476770438396414140574820660352271946414863133172197122259927951879153858048646210202212897606235891575622684485030422810475128482383851687019810727648101055135361297983032812283545185410594042603919176366728333910191541243530361680204979881870929782923493466491623296807695602069974296989359421788985236415221282627239764979286453704573709864188190228294685159747836910064918646051450420084761989163762369905375599493186194059710368567868298237849500671511336100627035536382840537520725932172311412755184976502933850029207537803140080976349040474760842412639036106809950243990230872020833730243889491374648889213579013974478852106026707704409117693717408853730258212079625845730054472567795650707246347496968537269666031164160269597393599923258945720671562911599057252599500151587632158636953662953886356438988360967461364648922633079278422832760453237679458554714444563731327487501492591469366481783887273067832192418749568015700456907491824455539416587187809014710794852085431825037715869734331153218164201994878286265814039262342605621412342193360300549687423018808421712813076152866934467052851650888435858433859925347288769555358695280356875054518333691490703396466350408558422643782864105756777596685715006465997153060835532601182767645710501047659265846547694473204745611403532161971153163504210890434002464357286245064814371768772597554087297541835239470758692255007128400006628569425694209250067516661751437915550658197980046574661020746130509010833143600479518087320214828968868780315181524093978603542822425227618774538096788387371621468400369985418468437322834805841523877409059088468453395397702492782274509871625194643318522515004018324622647451793492536864067391103547090631682783887958265043591719370095397606800813179220468781921201883403737472464460711445747751893651794617432785840169520345032230630285166095071745392511631401738439474308889087901251993131597601179539049459948308558782368883459210251269646436487930235429970573590771668899767689377978557772791315714381343608774266950061065745237034236961033282081602338707430680257535667565927233788910188856680597850501902008157431972584017297516948135197525334532356718293323888076204165105899271237473325527692331254204602530432408883302169874202495745207002152234429746894200834607255778861300647923475788486346245596928212742697245592177582089434383631890269252750816473385522414262200625516360028059043714743730479887983080670935310089103851988038840928668075382660130642703412051817850471191543351490497940101643989103063035587655717262965470277471673532499668604766488656486753600959210282528389972807551683282121632258657258952087730569804485361497610346139442545868074935051748259439683159883453167016924078240077423567455735963795704212885668026617171358537497064108442325848446332738345132518386610330181059540013177818677318771930264558903724158137802860442900676685150918058230430045393436096821716667031612281426467684404177479777868410949521609602832743871109027742806819545871297776876748782918205231276632519486802946722759792271219149522775571670628665540420126002724920419428854432438677365093207761317262180135139931765523860194508780877726416774060530206821306240332881964059899988628197012926829672780291752627500429744092770913492138268037553801242653419719162447724656375414260506616174331577706879612302543794318692580914077244942772345617261225487515922384001737406648270894220688073812334693175802417257361817286050566211424530186321864339606106281816110806877170986096189749803778263804450875808060312737772739685922477104525926895629137530574473574766830903850616413272403490364716117260486403043457286290948110238666943535786169441780900988966858257129467877777316770571885046409528012510803012021802319140867839904830924338102822605488617728807385383667751592238038660855076382651579928364831417537867965859348600026710905934545619493771545041826196508295135167067755422891077631492740624719337500501282893839693389482540987119945505281745777659570397978589778946279955076742973229403551383479733313678378089757632903169323689696965608590608159986233958394100845110261783122656093486358362834101574650994370802603990238478407288124518195627554533595614643933186449300750844444065896909415039741225704746958792000036658757037277803496241235129975786610768720758023178930589085092120727767563230348066130534458510139837412240070189531064029391162646321314249852086431025863672171359904137405082632721064806347868527919012366275054272596412644718349192938704527981225158542702826011165424728644629503315837721087781046876151424213557079572390045242962779847253378740327812559206473339250442352809954604386677655741544926640936708332806082219518483578995315667503880609217744574374208683541211926259486193680491034443354848211260640628761953982799030479796575455770277473057129077551289579708578126376605832206516631000955977016640433512124177464323861689443523995806287607436623340301388734350620790362557749665769746747570609545673654636324966201087126054464557239712230682271495854210667580272944544978665690441830030235103421880355001357874093904898624390927336805391276660610084061140264056760505247877708622351820278222969722072277407490821661838310622075857428021536023613316640858507673995331431438879494831972747824439047630711369621748758953019151048362772885506758959007653203241373698942164835589097261349712652273436679091453756912406979574922405132600683538298377552602675462183430699504261445414659590635087218446864629416395050834815762665419767597386550586464952857213574279846819116103598952796313402849729610065923638690660148797378100012064973298999020507622324609807971458367430142213675291480352005725977999324473005293083951254471297656087066663614513927461297796372244142111713898262168517443409589751885869007398072754814308961568666834231640296291939213070484554532984685893992815321379100973684889970322492186218425574095361900628955485602955177161173446263326084268077803150595349560552662433088556257119806524965243930601327320570301204947872538238361108334416705860342470903531124383964248381411637296820997945941292017050976675128461484222801716257924052010192989459446890091952733302319280323196336712910310137816475109359334978111404229132185847541449675221630022053671001668110890689798504568300067969485482696694990101981090934380808452401632338988255737235882619357854821583358835125530235836517532012163167480328423094001005900184935399466456595522090734456866496357464091145745285312695444691841112011965479578087840073576109563654260867172639133716991290644621657387702057834678294089068421795572993103747139214310261869171184330325120139830957062810682647171876911937980678728006898661784356837952385139527791281536813816733478449375288230032899299686283136397167901090431218325187978730375301542355997435152030087667997499946087274515464101779351853102108502733162294974621400068609062305156006234387385328434577343027403705264278766321776584737970104198450703715773290623869416478828743106235198304481722440428017048847220421967459182971633422231418156557554951288185248810406734509425953318954601992510679904836912051767598799905034570369677775503321670297405993917021400321728053306179565251992585281304147244982171782341688119138959666477929513525774535815617906076219082159507453049825280897123311712231656783976965677872535597821984935275546044949782556764866316040106903457979422336202131848800151641361304939242727597811937263259192314100493570316758284119321832295709648807346466946953037085683745913663071668808698411720273808335629287716187151271637648876353959052287547862981495615526031162225942956975881770039361123871889476460574821534282768064151411939865872997363507129709434856054472257438501184886106988931478802171835512960425988554038456853053345845014078883498572270481265652725566097633275833727818879657920009053716431103677402441343531126245582131111208497315170372508801612472343279259467442020699826112866556723456348879885700024301079116844734686890762194403113555472394020214131731746929853597034761480169322125022320356535155814594048126973225230357102753421358276429140137522442283981087163115328533982434503777831575904118252140757740271640766547185850240019219847865251228559214710144548276169498040173459472281231317748634094757435251284173775634279676342912077847889260641147007526803712826958824588741646210160859369735487459344749965035328179335461286908143902766118314923868286025135816395666693275063657912397843274654066960583431300572092020064996105945346619149626581713253824590472419455946880128939002370848635061967687424547032135932615906204089443924691667202214440111598115416312289383483573166262818623858993452319499927418079040631258649142671753305580045906646786425807169320699480172611385917486626787016996068578974923639732637887831521536581326207489089854106394508890018250972178331818869617963629156016303590242218110843659130965834684560232315927968913814251507852720469784933680606123107679625052761946948927901905189146087855462156253286198530746538820504375473279791562598993467683729599571829471816207214388578612900798208266426077948593380167282129720418483830523506009622492684401643604883549076200715030588791128564460379461615341666908221334100068834490645987972735468321577210136606776265454255210065896092017701381786549303784025852666076560577696717435643637065299973339579872953383805649895910989868080422750921936402693675221029677899858420762999001660302984973128027668376799274243384593260944200732608537814209261921754635850180268008890342623890266609821254967978849215510967590216056760124807177902653055191933624747133560905738925418630977368905372144535915347719886498924678681989985678299014227850908756237423508576243163882423809435291177423144955275690283549961697640506894223628782964318696630212037021498185473351050748058019877626063863430690514221886950034809382789424368903865654006285715106579110826181195251054377673452511008674669180348398898713674241718998522923391486776711201108609010589731058389201728212153191275018955643684717762895983382889932018802501697485118215272692596813235332149139312005364933447863048207564780973300287168368012992656588076464224388751768756639535604425677523124012609654837566368949259536545917319628210895209128050105077010037094065200677870025000272806662397973083452638495294470166655014959947655197233484146089617929252471604677003169345421403514352088706564050246699360628819703366900995182892666282013283364242399332588015527754909153332120131387570969111130249727729148829217791458173582027198643487037937224605881472954149487749163198454937128424528135674064927105892938556849062182491907974336737809358289916048590154884257292709515008113423099203537262818811349831252633282224393160442364241946631885351243223431991419574340560595118584892357269518094914980986492855397551376654684503018436329529018797714664973520837566716653716599447542751466231894271361863121987024671169480228510050964916873070615052303756408607863325391356093797585966797570079921893930629795774243204954941202094109806273568224533818981362414819483659557286794749051998869156857176454156255043522366015267988331256415950420184975824469856615289128257498738009673624248848149878594552870990441950494406186813850212841693164291772987085839968187344963612804450705189198976904859630983890197362506653161734088359602823777861158037550266918196397200138402849163176763016322678267573957296079137612845303192415470406547482081723347575991311499658249099338651642401777509018501764171790537709920877766906132451009048193455715985180649321725455459875932872313905402065930630191613159796306750631864440666568971106478477068383432925819138120729836320043021740315619954270244179400091563407839953852660555843311960307769880291486275582005810929139613182224684547820220969561553344940851379577012136194786423013139049483210138502715167110144390399974806782008282094429193399501763762165331186037573386967718226169907530592153982433993243725841257930577984439838115596277017292917324297488893988874273355892981450720891717731864369508189098048808101386775757019479562597022597516913642552058632505768961254761166483310749072221375831653452777596737709404085259298286730877453498820789717325976729506127526011874177652916076491859470675383567658468153459551905729674002100488278487617401080963097610221904713487652392121151051351818473214553663995207304692568005757673849405947165196912497637783330361531468365925004929291791212721958463841060338144409404101405579167678126015581810716817141096037215253538032139937917648287406503507906122844178960478804282911019530717186406387681142659433211737084527543152566393455799138737910315130556210986383780934608952406692489382653714374335957719809604505565854198986509472045325791454564517002271530637797694870134759356261542464331805412867917921949070230312103425644516038757799339100119008297140058077948915446481917565230405822832453289138190643643941415950575782604853219001379301838415094992324099299296434748485573109912914787455612376718898865021385048697732370062525234116195547065163821895828307194001487929058964033751821436903849805590380573715233592537735392337643695178295727024176690832834418930393240512361065675320737770385610252578569425548095907531466489762464632057202304073360479901437578833654944062297659021360332272807373675713765947430582263003818939609253778873980197317044884776999315419675507031063716919643744135560044247253707761548676689283432765036252938618676097067991531081293054607777332650850890618251443898603165038296208664700480891951337196842036247845889968919112335026659080824412787269958335535226181652332844632889820153551299350383682509833977597830803971767132217462936435164944807238499537566549667376913229769509002488033181564594773345881130738742941225787761424907963921248875302054820908762705523150702924886823729327882668128595091027016734802971035514621564294420186131612806833059390398535389294149469754292952547627016464695938791049469080489183372783809258638113507280293470483683782508452021322259494234017222071529444492364728479227330530500971045435755309438129395158805415948533386158589734501065218784396337220184069262547393726960844534550887948199727186485811733894064592984315295772352459381081515056589302076149043790036774823669338328181406410915836117020575687236888853373063194982539475227527622291998774237077380912739768556683237688174999256072510817648552059916152365107393321049206326777077287534615716876861476955724064343312157132003008186737594263719571747722131301934741385502232920878194041438398292887420623777745787847333761178630062391233562933605931189386506477120748433135560776639826256537896760239338520119022252462868226411830375572628536099530282642576156300162051616102491992100674301356384938593844468071206569443657860988790478151684522542687773407351185007959088829958027623774215058960271444077643568302879262849491100540379929638930096213127797322289343349381660894608735333804740647712880328397842896403794495769293471539860043678535075551318376455496060262306088965272000802395103388841419898755237164196081578689160128990728633893159206452851158325070809850574095770636433924941224140912364428882981878557755773178232805713725644055791568107869351817224679044000056657073737726983027879397707039730344086847584043778353977006137096515513711802056000900832631853367570801975584680045842179359880736322198059861737831752412564416636288430992130396437062903521230800148846989814956605951648275469066571913895154438413848215243762422961775769992184870326725468336626043900168392223580912047103269761857615033531738038995467337894313604501842715634363452271649298061105618139651328026485930029112352486190550271548858230213915214487191684327576967287936991252713409364376557698092926547571302487630883370927896785344167178209364859924466925627293075983480034943539079909021281846130647566902192663153424302414237819588620577459801528536547763275900469895948215581032785541296307780993701267344667183481084916397355754306463940350181265488195544260176821687881050197239951446598490142752462964041301205170115521231105361488723827757496986011395719760278255577717738077074624417441258588374521716107374975724292029132421900954661811952679416189642851273697237577114214047652309433892426696236875361925521283302868958928364060599185879405214478195522586637791054039593601922171620906675370151843289784115969146173093507958799573114817361511678937657506954902649325252578080312068571302359503450701614836506232755972402447229785641379634001103313480248669791472225436306507487371105700508099541488684196315435655125833548224664094418849531214868035594968049685515903095500796175551091440624283476632462670298595348056978663376879206666511225873431254620144498899308344588816573091822686811367038428720933375003137705769456842529333278937008839166145695599188365782179417377570744650513566355436903065601955287514327484254607331948160122744951820168745310116853366509165839265656827770656190605428605167532169687961638287095754388367302120550792019751069875493822626655402978382005001023406688481754594113448944022469989668293475213361137895178421235842829144954825197151754836167947899396510226356610312255400927686136337361427064367329562340202738393694224070258639108335537845999710153505831606867558674451280358156283495002660893635303490768839789801963674446185007392199563954633600357588004846432621258449357502397613963173199426809889677558205115929661331172392853082079216097121497074463795186874055591411616434682035701782972225641191500132525722921592135752970740919813984337439306950762017725997853279243853834771556437138463908779426115357065521458185792515545800060988596769024742155956858829608634702485780457743593603049555197533382933145404175014344083036641580572131430995257614406820341896242575228094959408784992597464979143308550441379767929741748006316200362849504959529731662495705675483851825958119642840633012255904096048594904233072223704347352892472168690867523367521209998780531444057799461500236869605843068515825372739074339202881469872668397858288054081014564282291891578733606523844333300077018380681206171392474337063925735110152303628737925553553122636279600973015732310969027572987089104856320353381373643272438823073832746080000583553828117824878635320776409459211116569164200819286771354945534210692530038211781628576552812887007016231963027589888284534490694556594850429879040891128299406578700979972187482071931687685588049163960052940313519150091044234047960597157148487207024580885249772043149676114552821206063944238741339384998493446161093206730355447909770799111037375277121765406131950104899226868577651168087468256948058770454155524171277456195959955875959306472914612630268994418577875355226838597846636080717011912914983401884434758517899489471335913822983474520695929296678018517482608796959296322039596706516761666758984412813687016387364972921272695307942432903485249231866323832351343124694706251462015130212234107514670550279891704257928027738294075541225315669595184774687688592668882423807511696489578186962245818939988217683747818703227952546957348303615786867258850378764676993809508313659954854623943956714879833675492267885165008030032465294825447592350066179580546979349384987212712847275923817496255434968856338888693325117206832375922318202500270127260651843809861037960501682693666805379143883789646788615643811989752050054980736336279758279294712162271805200856160184090362971935470830759491519319830930239859625112246138706301011431671887582588195770236146690589386567819639542426662663218026277988817201609318061250792624261361573852219309867722398672801696518713360371512515991689866448755543142317716589817751870513805199774498448622290351509299834444620648007260352634249165129855034489418591010590203415565226710778552795274014791118795594043167769708741872914042981414543061877328025067851440427418310598498885472453956265257223067976735258306906604221716768255610253874627313515150780828938346424559699904898379480792616299613302256499504672880699257171565664716025200746223836971978985673579388178472899441673028419758401703290412347381870968038011788753454722881732354160200123299648096031984952989204133601349436933616398651657685910643866395197651185043670168138167179755973106051771210713744720426244460301611851125506750353662668016566956394613656001706119095730707761536419893723751811650582476396339966930552843521039637007955444490853741843870339945455155365781138037172774694831265365603585634646276310900394854600488441278327354334712380887043473305872792076530179230491012990767830931011307351135463909855255722041112291425285912347357979238480483776860192774079046420878509740487269580421759656005143047668931057997992054824628956486115539280408565254046102639928031227485281076807397902248363469934197772141163141192125749785708204485191745778105027934985003489865103253833172761068940007321855234889781277098982824123864434967458283207216488057919054064410592629688751825734888558499576296303731437301215329359954200358154396784886839810670263430324170980328594898010558515239115160084188862101917464975290729066735633171451408795692900874942751921159833325840432801070194041841247941607422963680284137430827959429768877024973804099958419404540994522908408126007793198651935825728818623966466735061700398164589781317397659866405667450441823906084007341668460805700808302314193253551542565074641914531638139444831639404921998602905675791717608840957699759244482837047856582845435670786200735818996870887857890820041780301110307851154435859601246629113570897499387154305942771504158663036231516923968864678433593517393173245431614656833620458656028325752233553369910038635328228267251137508129427839240416202562706405806697914661105737920261244045756774393328385064269270544327617323876275246171702829833701520312292424877553853166820147335973973214330873193807397542788389734007250390292706067631767812254599073914372843451279958431146621352599046057308735577851583708906385457680698196711975910462001977722963625663845647803536029233083249720134395335827663143485201388658243256694410406887594039064234925156760858716580726028900770920806123473623731163301245179252110644928587693580052684655394498381192276313037652850175660757462434026465098816652497754513376579348372727571147266113130163852932719014280688655230028059089742346896495358395226737758526201375427076121407274156582378499449552703130435078049694132791761561089983216126682957622260677807390794407212532684249198438023906682315445844787220381500386788348691541314926528430797950485296079065993880244431991808088890695610589032854086432415753730994443184459548977673069921851537579220307323314589797437126898620452152475385685745503775448250310297943823325371854834675106717927916902017649451386106661983209629339238594663395187136337768639150301501289652940772641756069518885705878235213586709304324031040540326027263430825295149737888187503208743354515593694057210326052255550879547828829322423734986056028902938725416579843766989025054792677492078219651400368734511581106980690166701604695491099572938370425276509621179604054872672857659725737510946693279900412576497570395982461462536955540847694628937842733512801610250231827341273014334790944822113993805153510055872224750304204124942490015928794253818618751679439223101784474909336234117723417622008485250713154037518776429508330658063487708890759851570359374801644289962414586135977742794303887457303539953926219771375515886852886039119067525639727846482331058439296658597828009793158361991478127412490021931385866720859304414050060067740034578775192136626751913433677948613174987660068126073523057536105139921801915433000366567875738214116172069189428139311405140185775373786884093991916702977514736793132062807683381638603854806458893209319786311180577483058001793044677983746468204657396021898204687749243865387237013684396903729501772746877035591604240927813617871586489169129443291962159650991158218018521064132969409323470364191742216519534945939416894082067437657229348409068753793037555011659048848072148199360086803876759600250325834931111906041469246133988075343199333376765369841828610060244050023216076565410361145501349832109722299530760967843890340116234602787624545752845276552831576281664210363545142632501048069339397410565066588762545739338826072513037918615660579419512429870938331461829921243905330546091090193031892542095573172821710918664313855514384889670749504235828948858236500827645554111689298040993701751772087110279575388491310898793211070636970102216633444471227928073909327587669214191711321174047280718970757813702160963449909549724939553182811982277542205827746154520026981279678319724524147866141342807206009553680771492141846556830440065657772661906668603883310340387286156662410924591570557837430550970523331409262759675823692245859587127221550177237105488441580406714730941882300204199635630700185413191449198373513379898257988480166335534628270334413103655976390163697157157807955947490681351758241677659420860064937578311364427742751245305856244369361165725799888417003268677276497644403910648380466632886171163349498145040143766003354300970257752882223427663847208773170970014814943933278595939559309312856040231328507623952763594196891722022143952452521587480709097834483238547117200269644935768248958944383244740692188837406934032440622806029116664971284252270873233865945783757895308580604464518718578423330464226976227055380506239070604430139099420253382428103239787551272253025428954201751838069826099018047382284308433815688968743517798644320718375269186376661999006902130491316527364214602139540798183661689062033042876321250057817225234201695541745823249948809142962982068235558384776049793974906641879496955029281936978811656224441306473051150050666412477548490335435942801042450729288711267014226919256694185457106023143809033446772974137910219309085495118176804478530698799298272673569661178409760003627051596744104555804779001968913814585596789741528661749440293208477675049053958601480882673400425981776783863721670142734942719730596926188738629589133347865465882165005712184093008602165314314099912468741198176046296098763117718968536859400900006450104184377362310902578667045523358718437470203537380623908543062627648827325782262613820146105825088247086574874599976166714802162009452001982526050808459290821391969282759459460245226720990322830425214809036243461945420802896314417586021767272347355141811698265515843907320935608950363408058703523871038939328852659194143862069359301604876795842286095752722810817474614080911255506511477430763915640185210617118955066085449036769178222837223085995688646638285312019983275380576384003087786893263617980917049338265083039531723296547501267861707956179234523441649253597441761915007750724281307468446588658178422677290669313046634565382964831202581883733782117274935003509661307199082701259958188817843025949035212013270039515780126311610599550251920062639257439579386760958618178549041211120386607625609052245003682708500748698366099524675195213475017764188855263779826323987693094040702676135368538690752565102337149242598579869696996181379137550200799819328823012111028145380228821237525998203915046530042729539684670287288049842983389315127871661493974331727669646538711602580504259203991222453291004588933887855622166452193252159135018976200145455635126702309278358646644393736154940095589622847607544721926331408084683359300513147265122935506865793529822384372764711951472442472147813014576726741991137929600075413579315713446048058683633678816550976896604786394152019508011706692167668799157491682782858606066663807417485455313661985729835866154690268176206124996721186369868086403714014103121615657700600316133997957886861893228025281319397552477642773724019199895555539589428356993131936611128985675491055251756237764352085015901843639386393607777932217856861512751471480447562909076463585692368451104296883866632297405297541258222924425684203347025109272994799667475365013923978222509154011774259970213046145214610965874774240609434450503153132285246324249734982206662362797367364357915969771237873144233872472663014468465336413935072329849845657359388210668939574505871678012623065107011463836284868932992540264103644161453169145051072269901867886152354548257169654481849297992228774656797538027162193434733596938278048208287276959103838051157106129439912720287853106150663953435985394621106053149800672253707642987148576439145547957673756376749422240460360370148531229850283925921647119666386989410641163964573948240945354491323962089505824346394001237168344713260591529357428236857002042518662918614064709459695920792305145912433996813499953179605065893019984607700459988388991760398256687138025171031726247195875625312074771235606074211222148396299781228778783687051612443377855574029911963197640730032674570345980346624218911230344841510481175875654247388016722388192919350611386051099987662424347534178110866754720145949060322103458093318286832099885860149668487230722895670786826933957933990190907542518430699425536662716337174508437590694189099051096806464805214946826723958196330249680076487401255772314815200118205851003265365526097211112287019143317540515747955402226524101968369522554428431594771655120618465377570958878612310790212336177006061569672394083802709788275647457125820841424126874875517923007850717619535143526117557196906846395772001168982303139809442237222162539188577920773997627534790805957056945675651414226351199365757210590864559544154814603477498289454088458565298174892475603519638647449582181030371144692575593371803578483313337673090280004564305447969325719958830377167484357845452615949161885885887145463108534852412262218422618273605211201357806868555231522534843870875721604705584113717209446860658928484120924414352756354324179663214721676844036991425502176097947033610334010034269862674038289631171945188480728877063089263050292510154547321272709353419650085848644798941915349703443632272283240079885666001011389487898260570338401831363764856397965408833771344478100542837631532888896442321419088750490312916547946913788796897920602250632812182063910941955902946810659621171560896439102547508996413451132891357414692292327995701739045459852827847621623264663762799931640425285146208552811275586470637341119852082664159564276014385097119166095800165866494259380933072852800395257389594288385778500777374166866579461440436439333018432608381479665559593745030913173310644730016216899942353545493136730987616603062215482328801368850736639502670508070052359838697999654096753558661141749612414164396185379217258142227164509135364569781656039908133310175881979481679319229310659380465977439724023213110400459358757860403702569863577099886511677231345813778314985962480540390999466512814584656197101472028886231077839486795487647718694386117975431787715213053322860708432353039576298183701429051092828264475719417776996131635644087808706823986162553944364884513104287153473068657786711479513130854194209679202825888569472618654850758254377564383172250915478751903944826814030939391899705507735865078500421717397981819586634145219842870598539011986275562428468722895121172212858050008049259679388993092124915189132924766982901306083506143618079702888586098331169425188085159924347037062683225623596609933111459987023209181932555822739100264466389709880608286310749233982853167828661372558170426242116418034833576617900388237775891218748589824401633925982785191635319507160904720759702989803265529968673221807947288984384434225025079668944010236685770701918125600844535629059986476816377120651794320622360332937169207111459215451571529508310891345649035294498746630731514535741162325330411174421645812570660459246647154115881970949046983983797947765277300484020227114786266061552177562819510356292641797074210826572300677759754251043603071575309978785563344219567999756650101362272158647780100298597053666239581636171942564903406807153805777403405602164457003066162445120659596160955896087958391903268837438818302336416043826332557917683326800749971721609340260025301227858472564544084476414196207350508770364811125921146135843902116150341726787107040253868755485104264634583856680517738495311980236886793242494107866934657875888247136396647007574551195751909629738325002927823710865911003723363641600050305270016549462635291067381810078668445044357151283210833330741692616350155768022005800135555193061982767453412200468897687971441035561923325839731991102929759078019109312300713208601600811634771389530763775009442275697698390711463430041518056027664587190980735422410624342270217400286521614477122421270154487325652297138524781755038819589319579787606151787911908210577598648639690150790204781885549937382325547828781543962857792787197440948787293273788015233262853247019488293779472470271934918066091509732989245160694004272573847069661580768957007935593387917630709564576110112964756883673657404385853440879922416517413087608699299069110533818899385661831457935472543369103731738528790773807661550541813593864615949019908178451622599951510678866572966125981616484646255221836093769297317214397279620496640891551396365958189396659592714056443512350414405170420663692680858367840169494146515509544823750049945886770598870345779465258038525507938338805532017737747248677174632583448571350069425819476268708541180588940698995433362087287203319740331720318249381805334066129038178745408765610096305689452070072704304093116066318956540471665057106467823337022523704283615111650898684376372972422057250276494570473851523760848758620880824252303068758234117021762637888710872996205727435956971259634642841584189200944564180920381481720088950615033021223373051768554745843522836645160825140200155403798987929357952494694309743508042087880943040034708210573593030510354357555966285880676774797440566323904760210527226776489703303982952481606114556251909693138458106198460467868870966001908618728986239079291100098432655403109476027918974469538778144720917927095772623960130277926957868164723792864603197699295194161474472042714935425745962317662929231267770333244185174309083786677003451188941008932194759796009119760516837245974664584996575001614091533155054662916635409083087184142655054097845056120288237904655547155588182256426315397370713870843313683701715337399473820660545721914011327007802628333246086768398964877188623496861149828064020216235819408024180196813307465797696292525667853003518190871294587170181532704640570287909006225359348623823518326915359660442310581989394417922732386255685603884597838008655204102748965951793656097533308376984868740693696001829418557565550389845919851867528529918806255613190671289015682164999495501642144342191510205754250263648219936697016545446436275035006394839128508148170041199027424430645881267260579875167784380504298198762851101278662218354470262172784421487220972830432401746086365096603457062026411184901665878716213609771623960812650306620613815517531746608877962977075370108584157558485682257381537181507779940757328088973374650223631724711179395152287466656276720171998472988831555976066359638284366166366516346895232821316513378745186983057035988427398517878136187546496378523658604658810514475846367560528016671926574309851181157802181638305349678859137702011284564052513839176856892969194286759316489111476874042390160857343985274516319290534977157684200720684653614005393059189316187840218542857896635901996885216571693926244877822915492102461616369338215312005129443081557999016969860662859202558677190451166113663840276596869914898434396793721739033403479121728062726470360538233831954858191014586927822157543805685721193987894606316158009063375410415652256523271789139203741494930210343657811108009858125628332228616427636123952988099717992445995345097846530549005191654613217307918315717151343905974864185392570665000394012391981123846094449732137336549408037265685164112001315940444373014763680747437425901146530405186115011692041011009306070461581934362375598121768872810461482234528234058490193286080136201216786714991544930728877547552962237686741269708593307947306096735602398427516080527776923592825905824771517921564323304584969548490908742523351255780967482405111587115506056807606092154179616153270888156580034313972184964151195816023160055048945564907892610720057637195293143943642074896343146237546820443403890300011902690429194870446338074913146387471006254072641796650467155089026858034734635729558962958627850944300963275638895066926296739640707427526836718289935538466851244079642671230704872267184501763165374685891207610045527488370022865541306863069734408273851029227789646426611559043033620088828604087021409970051478147993942592721793894140416668930153873560918780141184398083204888516262528142362388587073796471213248892441661967364571192815921897211689475359978759476272948683360046293598722101946479536878516492834511781659214823137387546438486148648114619667936251269454295140813246698231190035170407095772784941572085129319644383943912449484112044276733597799623060214851249634950083972118642408475190255336623509451430343530995156471103050360702407483439471848444684530292614544982192907304351462815799428883197795779596430120436258906497875830329178297522725123741629658142296196834798472175001433393801068774833649803638695332473839749494098742292274720047349120817933003196447120145682299913078985231316222632151828580320628728045636533384169168484535450678670892980434107897232927232537867457074397494333215537016235862393839973015178376013043520501891724669392603315785890767290966461147118530303036595677829252024455166169474653299408593825734424655386844514848128371613701329998629313589090686842135100134649051476839737052382093592158729139344781416334668486149311859608284879498765927503296021431054092009358187653435818733669881522587097331916232826542976319076794410791215979136019059410915219238343676858310171799088811583663816356943156132073437945981304109797035622041683266288202214893232782797654535918812292579816370067191934433620776702845674004646144564799667541961354577759680223297957687670826999595881141372916240746925667041465074603417085079449933590363694260096972151504864223604815698909495082187835970891230656846745451528862612227133088084536310048775877177726324182656963780387744201895676752408966964483939608713151411785275703464532121727421149573524142099841869836139295922239351521015417508768552700838693686269218154855604802428830698392051737101158517757238243230434547917469299852465289157116997605579964479602778416608027193656561647178625951951461713959947923927193680313477424285255904193077402787519150335646199812677574338958521639533890687081935744063409551003965207771770120934845983433069757536020382650752600856632797024407811759261204236744936298170370421255355098010862996619058410634344818364482385282905579325617824860337377565233876172513801564678645435947525157865451776399942686463246948917684087652151429221359500751947963421883452426154831547967271706753998430918671324829433963441346823650756741540990810973906534984995833918716305471114259879458250459714092442022373640782284473872025080928113347981770674451178375586457404214474064110706703690439827285191087147080686561864545902427087690516499001206853203719581836883207086102076675682450322228261714197778126849634091596538892628791208320077085246348344290911709566581050726350509969107961584785077886042662800987931582331428942867057176705563333795255601414271236131729556429679454243991075359381878091226795782833054202643669795659392139465367942918369247196851788154895541745063614112072708909829917675567197113295322453306097378275185564656819241876488784739175878779826820218653613473333474021198415516646221122815345387365198112817046806084806836282838514491660520430579657594748533476269397210157095407431694101312024241006804472077163575328575148490559512836021144266796634702551663431882273580197117486781696671527868010334976474179119188164045168804303784238581643039528758607988472343122596007456726228423852551485424455904753335858407414639440463446449143915132647526059625021406958196433814739909577907658924004151484609820787358028572153298058842623886509811456549326843608902825348109681706338801923282325169146702117453577635777448262633801926619220482274736152483900131024427064571151222811460877055319709983536089675753142703908347145519103626822931166223414638248281055692256313133208074818965999338488465775848493977856049970068906476095098357260887739306922219574385487754305689573502958819863533902891165920018436742048614335054190328190298954290053126309891116155735106188164801155755171049768817253378666494724797071649947727140413856894140784995124821437411892521041259206297274242841572598890742207063881171490587816835369739032112186995782944569573024581706825324655628464874861696630768415902965001684150019089928794915217983846655616238272561401762955392275213903459804479059974011233901144052307895809366915694153017591710085319663913103169268231374755395857028038788703333702702708849576944073204354223844890885209635074598599957736110493676411759375943213745134282870742154631081212980132826208523223568545543598017540420348034992232100885017401663784474795201682186481844467833267398758176067486237167494148123461599246886743319544918796549429481596558131903150416724311534483512825742803081430079972200471449115862485324393173256598547634392344221785964006300000558144648051649743203725393911112970786084313531984202569399184104385014067248307462069773609878661676575770639256898192953321204048199357782866161471694955605522298998167684767534202005605774223562109973534568830411501872497089930949763409616696115237050933902734502909996359400526394290550988942429446733048160987478526758828328205750801239071520125576019969658227807620246915828843771879550105710284179815876231442386622213526648256098719985718825754427278439104350987611805859333376907657565294235138869317415548761810521450510271537386411946117662908923209802380512579351140323537986142880620318986274764564300771660385291517221545362102794854358904489428857703826804620804425762500037831953028132796712603264775777394420389497332967885040812576643347403219321051112769585319216796415922954904699489378127102387106000409261208286664828490995672965378737281875788416919883215812135892752053364426472433499949283791425504178711542639624147272063858653149075488529954481199046447089394700112922727460880763242840331761960856460512488045256472119079956959903060167940957225441953170379614107681606078651132931352736325646299895143758968449521662481660940320536912946008384439096737216556182043817983729235648513358997726551762584810338619104587341706801199603880310374651546464625669971496689014373371909896054642704495150974430219660509754652710104041299116149500590181720021454652013307992786055940566865842383047911802682347189096583532806391756534145976423029978860524772846817399448417083092935159834135875158502559219369885832338375085857701648245474263152500121032154677826136717812377095847812101621210625004625148827288909940489774098238866608067617510057831389188000685241836125132565120430460342001932359499791245432508204811797685625935148409180897794939980690754904365170407962537962509982594516767176261485288061182714953737636148362651950772619739915079743649521460427598539694606910151653207015915045985945399222491845070623592792125278939201860587713225095867597461748740512296924072999507432225213265917501557307201934664757070997347064646777820712509795330954076044426074327887575049600046392042564426322914487361520678586183746696825562572691561839263944546440438611608987696421448198352903916127117584146390738822237112095428278781511706645699225612744569422217424053543608475410697071750342227837375258987782083877233700930807280776531001330094124219998253116891419666449424832857459804060167182607985173777483421891664526444910176179428404421411847064192386766501869252656650177512218673786302433634052344643562099959458809721894403190711846531412554399874027136193237461698263124419627351270785358839995726774820071127508331489156298314556672165636403030380387807202645315464643941376602259253086995085420049430611250533989878445526992737191663845042249458856140517371819273939075746077592506648803456015707428394944416815822906515989065180374884893187471345460450900835778297422335616517324126686146255868504389536730795735574138719487865904459145330116630419800943355627873576501689532819724060481464825311395256230027584553941215440559684988756738187302257569777263705584166800580433737154058409434265902223169847715205965636280775485755030396891094497658860867956271094443804136449018033272124352137765501574006852649165614325632370776799722332876679756689374404583155404754727062456743553861566842949047281417454678762956068144709500487513074112820080975434096513742157555170731282226571877888580567647619557854849855363514543214924968985532043030587753554951545850314203149732158730615696685811829874493828326462075759934667213577621899974920692617230311756617390191401272625892647560892655557832944060381929360101775418611570717164480159263483941010996663837764747860736858948959917160592573298760658605392071378944863047397077008053923887677795061778440555133067861448303122493142481112712113213293656630560890700855514758280072531730952349064461628841690692522189748302521630338723583012616621693267872991720781814848801832592025534325996305945065374303929766033036130865845011668538863485424793309832458524374011664977144097178495089897334190840126900620718311272016105590881571888054664035218009619584718527744955810989881756617020761477899632304557295813269571141303815037097358039488619532057048188441552269734677427641891474312370318847340702060889553772849234122668964330332847079261552193392846547233556475260058385505945916693921328713514981641713468890830410619945944087222576626927492946128957079342481543256556094257230773417310921369118940430176675997859916885354841385647508486646737885916254568585277798158630272067730956990833480760660116428954707990903566203860265942108619093989159910041777703002592151549455840893197516891549121828918663073386348398247688938319137215236940812864342906924006340237036799318187349986200866200479805563003585509003886815833295968933801351059491097210319579900081407392246570516071854967148978420917192572137029119071865222396640133739777643788810842844238663250619228195939382829738234851331417067871394673363227950398207394736803365948537318122110251932061521597796445635087302917573049607252407518059068009151986958155504667457468447295958809127373305610063623006426954350033256662062458727239023685399945289384201962420804540086819618288148470595940740383590144301915470124916945558792445395460455575418143017053352752620865147179439872398148914122715699541706159723129939180492968665755490663572428743100340160166522228996606848550153444342508021249789560360969528357344874193342703279187330590043873060398260477096457726130600409376269344384227443577177643063031397891687214172361160217962365260360068015783174152591595051296097800415560280940277007811572085958457416196401136342258113216968174802115120151909249447185703331089257294415265280406489625338220032035358028756995286538805152376104568429167589126798292982234066391504467893606701084236557253108502411934788937175372465998811198365678936277234051788741590009372725518266868238605102560042454733431790347613077357657358008072772122211018900066218114772936652466408109114074986215917289319634764578939459105869366802027647278740599085253414600133548889489296092036873804207848827915667239594270043064580105942997364837665455572125716722173632029829370680322813094691310557358047704454591549357857949015653231639883418533404751309932551049237210229821215259767619005920089719595595123744787479441494560218842476873564066174719819772980560948013180404180567138750239966977229347819430904261953509831321879018421877691143673693397643061013761789654570625623816512860465715426841909845948351460637025016555960136034004353277415786434175864318640327170217457683092221690531789282681856919482863899551966637346182966187944690827025879503442053113355713648243210915083402431689945204581150766732891211247901613939811713922352105359483755572658225397712015214490232117687559170724288585629949793126105143092758614923060508943170852846652783166290006038391120647215114057948282345183009394683724741300978247666660403096555752175934134510944709716601321592556073591059057406332453606795962108600328291359288730788738027256892979014513668200268111090397884223597995888509698427364588716917688743112020345909748673611257403642005483550775431053585614270246923127299374892924149644541278921554804596434431723314158129823936337512475034139454135687543305982585054351904323992716561061136085884899430213602318371413142540580128986872536553046822051586213530497660935269179805124045162568161885424963489490879194820280600666396491687690046039716836485698031947597729814470223791259393916579920252563449296689400549860978114203921771921564563372333345153180089825867362003448136531110388343999082272930179711129748513735759484204035113476235051686117416786080191647320886347074219311877098842201155485924446354090773130916112022432073302803214807739442484565159818942387858048573819055145654804953871532071846837752366553408387464472074594454773735309350711255160274962743197035450398550999755864264996065605352030466083733226304105688713145024203997819213320745874114270225755162715676981824954425285581150212517694633184356535150823190163928148601930102827259711577585957930611036146748492356208594026528173149927498991333696274576692253806256816503046918985352548638302064363999372285750642639099169248889037882733678670357024345614542983772993194134905983022487209681113001560167485321609701574894688980516860462863812943885390775036815039669434426947333980507328648042948263799073358715893578738419112758152065404210368698018720917915863634178586944317077735506590335987857735622763425671635378985340483026137864960060297187708342823010948103731159004742543123742859563744935122513045927529151151000507288954745095036220139634970190629197725415400552045188640304118835228754695300493583923364039413981123778817368670802615732442541838346181986159975085711961298940699051722698618421922552519043619366847428223953357369969890072866202630073133823535138368209757859610896584672112452857670407015559868473839946107275045281592823137924540877981242108292154692747269707816112444592938258910714819018386059774150682338571134734060640438798141940011298295810442538643854592137379884020584615510415355128291191497028971298342683591172773719189652539390859205615436908463600741906768113148355765003298260803089621496106145324588920442940384265049165630401981590657887131128053043848307572093869580485880422587303351552198071883613182231036031491847997892297853674400898260678082457543527213106355254991501690168532211439411393143192986638279253008761138508614365745043263240474407853776713808873209768855697625568817557416648049885891313609600948401870631045334332548500031216036312874632901830735442634211101668258097962741092680827642761117120413265189565540447200647004654998626426551454271424645467150274605279058327318615231388735201722043447965657072935609030176832621359538648415390931173110742805145993455761948577241327397877724001391972800619728162881143997762628295996389248786645250602594817821311833756544233930442240423570142190214698317101582297714890259448598908907073367951557481437436035798078858882090171491958692818339327580271464701797012605049419306730538922555525542171493721398600318234419261081289150659157008001351526490935715407455629172776809606501228897903869764781128164434389734774584461690792226926150462174444123104049214337525182145788827304681346427593464118073354555417880912219974880490560182993313518943188744127545632608095984577006312207036343837932340509944835058243394043054968218437755590914741599200462251243030999559957435402963421138537284636821389085729778383031906677184023211314949750270626320448796697852890701187674272375390640439922757718143148137628378015707559052325103432954789629409122881451986720492841271972806106014013786517536712175182394664714749843494557207688723069265190482176558312785435003138534850983024487469657153166383045476403925800802594786524061083983335470748015837146819979131281852878662029324780733349812020523804239363169692404863024320779982628582808090685324997671493719034709317054845203956665265668326849592213839664242783402009901090736428031923035260287001926114158466775767659047627351836895385501077702832081546327396436227910497703056928687146227812059431818047347000399951071986686807464907450806478068465277836284497074154122408421387709041801754985714340836398531297356478762460803305605128143443941648226996135873035000715229972089687924950773743821271692361513529801289942131717965240754708148604151745232024337232096673282838086566454205885793237422060579642413512277412620530935999822387653929257648235937599536211547386111958037074538488971478036933238113106534895155090174396802504906216684728772306205117805825794287303964166305971268826100200008744231126877829456315493820033465657742064830659204567048138386504654524517152177791380717650058551903144078659421022402414753390666586065283791735700780726787027118755348126824456063906148553065031785965376631499830036462063588932300087463197191307592990695741023816078223739025006251104235341870089149404101424996895603374156503742290015241984804362878922373820500281793705917443516287261592894685794030070651287391699496982631884514266513826984930500634903637983936273543893896414263984830145048869938299395909914319833825371330073950544504139039932584502592871364434371055841973640462037803044123217653898447287188337509487217891248612478789015900347477221998041396069148115450485169345192817957613191031572179130819812770544928005141606562177790561050535201478701771429828518888378407278361475545579458350613357690049388391316618548324730854626652251547025837183029616370040392115730540888565091089104319729707215149187287693294784261814464396509609291526732582394028266971981238179698808058017727569637608477417509037729670533940401843028716362927604668557988519443725244173904656113211657863883276857826244274136351738805636899826917754894016028162859385271092256052953986425445287446287681107454557306361604913019110639167214536221610304623676060982105999141800716761246734206045276601502566091830222084676337008285589574473095613566207847888982942289784156409231622813642052477658327383173064576136270571013457059954506881441654181714744573714874520040071371654747694010435456830961953458980346715640301447626474097523525482206143832128982987598420285122533761489086305072554168216580955598533792931272341011848884075468942806664934183711519487135255443889854002414596719395992152306833645770702432060247133341210375773151516221838321412522009838955460202594403187515701662271726491883942962270783518615819030878306928673318277650667618071738673572217442388093377183594862362910834762254948428173768246546873064431187720170119098433925433543534090155342402138811434991137626620238192169593314846173028583852121658770361336685393879596050991963331248295794515216364608062965468306024428890033491727326004171860763989510852213539716979234802108029646028699524396550401730209574199211341224291009226166574529492037744090909596044582632589860738629386099256609244544272082249770633910261178003746311840985338700250356300382880095623820666341115535206117287435165658155322587869807540535864770099364092740809184709964256995056257835038761360264798114200808292457265660328268653342538822330293422981378328802658571765591047096780365978686157037547524236459739391453127401464740921769365284825574095986628126477208795810968182772608579539824892263576033188907803867572876928964034905306775647170032778660067804859949847931963213082497825960297117601987295281437295973100166163743990931952178903155662665552329272732852313198554345276089822947345001807984596524344112954095647258213758060768883185614743710688807856150269710769428396390096312704635809899006093717813555991416841515136879141422668731394092697417921761579563572533911406819167681065216462270959081045305035947910850507456871499528683174209989994198836489825563217344811629378097748768979040059932062470368081455817723600745973861232126017925941591507111507932923370408109176026180794915617970481290798150696776807158829504878480777530738433836689077001851365867940726348345943403635923091003437607807620379670650278183633117039362236326223249881033248053861217652898899621774759969710302515330517021573641127157000807180559689255553555473662780673635720505421559965466270451470744486190628677565468122055392134624354309014250789750004806537154800184259645669659946038706164715294876742704063720195061113775891110607888477083274261939485525673649872599893556043961768092416292184731250544795448035474354045217464584016324023226206081318542196158534351208859505096454360645652333090805430701165493207534391035298893120324968272517187562108358660380775921129111730545408521623240992696129387496734915360428082948473382762492499641509655153432478520659571025021759012403218578167295219685843613540953752682260634519532166152088098184874665129629833368271005497128400768904079870580974345087240425541658485968433240891622422034206602796929320308835100775455603930167749480346602243944944973437773599062530887503019306175302295640698293786465461903989245759779209904497571909640292269457480815222928382189998676887102971225354791495266439676766178222349897624553149486726231262399556862853425452371252600489582394235980793491778087145589983527586374544451741120054936680946345822061959897352179782103482305500321428773827017809441937501278718544977582313958605639089529950090564573876306073448310614271906575554136578857383013234677754948897588435425218250810983441321288831565088002881185904436090502395421926242934203380353899795033513436969169424121240607249256680466230011412122288833808652822948271977905086591631051739353186354048662765990828198538928434729985942726766596286880681110350573690077049206758302039401406130546922163379122584693364278979905296771461239198517570788278608148700972191711507861425443395893081557955974131009897845653306707120185360212098316221971389914115989516888908836374732277905433115117801268178282036993377494354836481636841420164840279200753225442489875170879710311099029899909375272523576956371146822054482559581472318160471274966475997583126942675885659909733204225424051918884418358449158372557525158946271972830506923586666536634059780393471277989866104582471999631922100404905866139585809017510732604867285034048282035341891965550084088253498151916033994332701629321442248579510575171636823607251090747284942709119027808883115631087147241883696256533962616986328837943340822747204700335521615189788885311505204085596831897619534809410222794230876780492312583520575142952555779517123536173906752108037471631663409133920765389543345630085630836037529629110488517807746121652152819874953262820170674891433677969535176871297425124444245584242542402188553262964380586792716752784813565672136576308684191757553582119298078480660512325498467726659010420264020390804761055335535915473514606361456351810804718742621015266632436566145903849950804229196483917932340478226104895043188970691800367433396657733118251485192344715680206379283857577406619258005452824410850350077940814719416620467249822376167604448311988176483619275768881683694661987292065569855098787579339756105982741698924610316157505140412361075594023236659090055401092561689390728060492415216789050783337552690774413622826839222222176265067788206902754730117883775366678797780107103918377165227074831842663856458166577297747918425969832612436960500461696053781903420981019071090279188923592367409310345710104124904730095564219749921047024110783805615197356825940564508102398469029307585753656534026813842742710891952760368688861670308424456673050823208791400590321701608055409964925518188860039989665028810439978537064227190936337184936028394870724383927582529476987991032657108079611958549740155370361486697278676655714877092140931170442464471249603237431146824429020484515673069951661832519158817812693682638676817505982327027155209905449079453668695240138348366640946801739686138995463049759827408052740670552617480780783366960459144527391093970475650369741845297907947398574385265927861127680092060547356114026074224206905426760582910201486357283542488425832665339007690603864800135781373661063923864406726019902152233568862083524455784843101808951360027842998024466165434833090199029445415236890909953642022259107387194660169290701191797515412331386535095465483811183383993223956755992544623919757727700168212237921419500522616970489897493101552264244505483238962171212365153075826291510769183345321482148327992485568520839530375919327636375087245226028550747639831926811812370678062716642524744020337541419424471643033302259914903450434181092300588962614948451568207459542842751440122965934907094859468108786513756653735108086163038214332590224247615778589164808637533952211898834073225882293088190945034870105250063755908456045458544257551240692390566434264960078625705938080739285746291700548302891206060779937507922786535467454126105686139809206302738761263819538717033864343764025186691482847666191659534199545094319519356919306143175555051270848666155926884334696352522994818029597189343268910498105000314518280626858283990708485733037613764049797393979884581156887017324459740056429587637679916612460433314094139791514018875369344573609877621037640412606449302232415422677807099174058360353386506611755611509050812428347960312011490096584676740632669787336348569986830613600755813188460916664285708305621881733719917185824504034293012260972684014111244030333119347964340049476943849550798588011560795684065642290112102921661247862500992207948536098394339249995177043995820687824555571851270639785986107660041817721199005487612122483159223656695182108625397269300433219944258619244957882059108618989000708542772315890868411994386569049806610627048963132307990721766086254056063208101618828171441153563522835142741886612563423628050461763161578110300343698847298383376306657186550147294153025013910556375969464221843572059737226894064902917447448622315072401738341235346464342045210569243438075893060609391789572246397944473546750640098776501304238313799284450160345433057592314497447741955761761294305256104377915462762376309694782918392842847264125258607260428341999334218029948665682451993051047103932631340776901285759493612975678837870907467403030845975087384396340010310959045011360572326314562099887961411417095122648920095599131232236424422695510783713263674059522354530243495690957878940948475671949229519573750973010691127295651364547878525131939784025041790967598399366302794006453612281117199324076144673486620409732627133464425788833442158997758964536827984257047001618282097086400915090052756638323138003281867365295002810736690704139718782800319467584549051539719791445824629365578865253112273300974461422300903957912272846635090329370570245406199376657891134871844555936170177125854593566548660692419379633273387050549108279779022897910400259818605939445463736748300428062153333281344740462971126760349683540094733796337316144197778273729925789004215659378473725646421138400250895362226355039159022177432855797430446206115553758374572276828573307736902157416920505524215274004749402863561059645783209884760878050560983051912145355323791610830119828786217620248968511322859455884485466471695873566661082719909207023950380325569632666691159393928352586726445784863811154225781504062578621136457881073006197979739893096790850142272856231597045304099673979751825007987942790938038876876495286741661495384953054708967900192647609547187156782098526761558018230082102275301490654509456116974624155996934577062711956842753495794958699054907370683716297227438211847265542807708319946516060005412459350954965153792323996133020581515611209735816785634655432617612428591243230059467298709624405913317310645469565857315021501336056234678545771292976433055680576628417820542717432251645427048443695384804628251767341329792872089146348538432365379796252854497317362687258691237478754260740725952959121121660445797093892624052292619786216609831753230197061110052457072649111379213316643378941170641732169408750213642823708406075934881987007352752092838204255574968516587103841253949676900097355331429796547014493011425743312826102373440089310953812175502550153856605497132029615234218160867689384047118965868466383522260370920555128968831275769081438299997710435365912584733003757711775237209057825156764394761992149850710931902822735430397661139366464990461473934246153240098550764709322907293565293418546847229420143929549616721013598833377984176701978760621118825486034066162549269661186323884147756671294342612798867336751940869228148986738704744689736129535330627534859962627700096804923521430272148152493027075367903531212448828340980039028980677858111435188662383672394270091812821890843459447846968126559399711945758993538231993742997721937001106202473828218984238010833823231718823617088956770990956406251620890251106488136576152061264061972600984149379445604837499858197788127301013364225895684597701158225914387346423196126801844014796159807234378784988674230602140189504012725871619238618110085880502895929232781043386682867314401273620667825028128567773104067430684734244054579588071086922874938614186460299691552144307443586770546160754139479110853679927086222076427438063653985496048698124837607835223915510306037101614147828028911202630420244398399208444872782259832507622472202190652576759257120919842809109451799488798759945676762303293400682499556738784464707517489103325095167609815201823867392170116629176140466240069063537893799107305948373337949015733002799054660871943981397643300976887664140010234941491140818741034571639601830955776277050075361153189479300260526997662601968751055106240023052198324897108043332902987983379592812105456932266940899987762732384766969675458101954702388728706173021123486706703462920067428640277938769753345266031581730668643478615285501124720215581738797999367067410608657380432996177615042718869167414521731448716380024299078409801506307805069831060080989604886041623443748971437352264964108867234918368256919567534829983015780319740789031167849730542083893090909524094570918094829488274830703947722032195845396189896285846910206948015205213372046709632159958166674020802016018427429223247316375376973869798482149055278072280781823429840728751371133682899446209636717690099233786583574377304649529403724364475673418783071170381682661178040797722860938081015865515436125089374350247535831429002062798347668833231343106324010896199242150319783409341046560765983775472745937911867012522040327952994532641438156356215164276969978684260312470329952447668453952160148243432654087733400375906720200106928864028243015051536366552136736055085142253523139814550092955308779367087566246928580746761451733998884318542898056846928336134007978715838376653093415506656810724409953977419369060011757433621378254645661158635288032340409449580508773841048018609684475535971187253106641718751927817836419703463966919640961804278801179252060178684409409698835981407101529812054659483876475493811960394647396292561215012812843404626274391715291042662629630631085372187848450522212557650944775638398262769344965721738596420059947318839642653195364632640992424070740642322076735184153354061746926700876578319442172144408799427899940054928840208253883430146001960365661209366274357632291641032780975152891143514432123347096591515940295219097066163803551684351019956246177956953837957752197597504610804033099068380902395540013886414739252304605545383843426374658309350351526821108817860149081597150277991725968995359135109461190143428048784926896435785153175711266389463221478963519505774986143384089145882280951700312548622841006802995469254606866244277080185131091865404301288899883384278291417953084860447885309209869054765650679790792369630085179345124594801537681217289178410354946596507524307615205545781272451980015286032985740759893863212462681204115170624702304068427798518885086553501091204438252196410565040164889545593987499649566528179691628799700068753151662016843226647775461629072482952319142760697387202649511646192313211869476161763820446210678299898173086678905597613139028120072596038868183583627218436707897265536511712482132310149948323054264712809318044544062515973036811962686062082329783915608132444754490784452256091133213373606338163651950132894615378835312033111545027535776950785876377329334815809655107865624764042295787101612630397695055128532339404203248571214314631790025413139991366941733213042405953250258926835512510857343167686372778734880774952326995416773240879053837934022920558178165525764519088861650407445737481846670455653288177484779429580194916697212080446281901032376261150749647788649648848701440600047946545616123325937116235839221870614398105534449775604151248807128356262793382736832951983166187245252520202577976986316997553039916102964926402461114226787398335353069021992167424876109066046632334492856074150312256222237060086340516240427182968605015900485652483666883967257545443359160768815011832538810560512124981830256207130236985081197502027958149143744515716204268892708621046173114930665820611148404544721249988781377633052372480904159491641665342506993090136161717591720671795262438937010889501542225468237741940174136940700258784433018136910275421745391940034561238320233537505497710363982749284542617890945057160112430166829879092749402720014565202401949262189914691825404184837803731203815320276808725025169206267948818814805994633809633659645092451730709709328935177974783191068828536560586831059553324067607392904413116853353781075544388016886184655766820445316206507375446790953896767681884184806596536426174552680121837044620787358090371098835124945968206281871734157095934695192936206762995291383265805775117859260139241506500034732674597130036597960903175220028065026545532209209003298105739182772770780720137250740005006497088011103806884409657079311243152277670974905970478493616873524531563782129844283444637553482936614529904429777439562584863087637686907511854187143508389826398122399141613875943082913712107180315686113008776061401401616933785774369315422581419209823017266556556120661703103385313975033821200321983038597464664920501042870598791424298992200780601317108348589418267856897882893735885120056603766750242924117591285767615483133258867306531174499307424909774875836895147825803543101250597360585902110160400249047376168105244567421346071218485481484473433529221654300912201263406432018719461599340898520364968559864731471093144012897562036417744090431541423576387018374450413881126014721509056168410927869739260843863589452447902265789545495526389320413686593273906275164833089205393167422616301916745775407248886503888527783824458978455576229653754034792264262583346664854670108640987802929767689304952373847757291997862605957943462775721494575374519990150176120569179907905368009912918282191536887326185688003243174619324571152826233035301440702834899931424702435093704640495974299195292956402940500280741629283295074602029937233125772416741875313339757416065655077314327517378328535746284762937520543915756125436724272577784514491343952092807106747521788638377792414913314646614485957286494485950173429907454496515490850765892148253823809575766956524233086902539956655060223236462624862783015248890809989944577578256525165841389684873528349135923560141308705720268020461727355508369025299985815629494027221538407208562482674529761017955632985307187639200030626998438114205922321248018255395714126027151967542777895749933252348955674306330069344143923047581355908840818404042103371643857781636504217980020344329600733203607762587276101547470777487876320448569624883229263789364447574831191862107077101583302824079802887103253138104398653016140675826116450277741733451577406577934624752940863983334163084179492805784213725925327674705384654089522571021675526211481228577715165901657187567191188215475528921219847439167531740902565436134430455849707661664087408040508794317802333797014334494098579929227194426093642589137696552451489692524955562788273276763773605969339231086165389378016274457771770261911471721999214493022600319445664908092705866785787701951186769859244280643339795844094299528277415013386468938782732156745291297915552416212528371918250385342209699226391946458054956153700297120436543661565902538431335096616926891065590752987136129646631824710752105919473129511899084546479198852304384026010723673634520213803954892943642194202309334527647782450558706993510495677730666796953371974129495301475148581686036959397120086134019268353127111436774857864583767631878837591495148198119934283455860171691176712047699551902576947518716811757882735055485857157946817036039622081529032312480497749932057428416376922883999119569601535747214598382929540540427376415956890727694540574519572965942555421453449287119959258134939618239722384587676218458298410437494276893996082431554349358824524385399710735642205177789089797958998561539430872621029763039089152109656618688892464642520880480073748006791836030620528490308173796744934416437580393599905266868195978855769779947766925412401953723203864198550456696969813456352686456895293439721322769878137232840936867793256079605451489445172859880399453277585273618470823634121852385653679559431968929216960681597424129012541014399422260085827505502357953600806789291035711620625432067219880955683511645390786842217789132598963999077731861475905101812280167401351542216398371724122141256341726640313879419662354625001229506544947322985609268907659694919392829877696633539994189034614552713661428061742360777860539656067996546004506139253237994598207394972370207289851885957846188258763710214793728190891128956006657929330748293824566458447119826876103276465795902799575833923416829338162535533588076726124154744457674635835211193678769030077970394444491866430478458364063463955478225799073754409804985653012033436481523772068799215046103001401419175359959373552381797130779056050394765538250891911242063195150137184815184434598095305999951842426843285672337820997382854752680756133036467697995687847883560965096623995303535562710466210840928447882373568333195191268646906893641223905959797261451445627004458405632502375619632043961524001063946820595404953723794863700969770708193096894622427679479459842479432597706753102920027557033355409451639347328817598990292737088557220012136626604145838930593068345476572612658033984480746917526083870112076306066897215587253272444844085818621759193757259569260710797784856041271081216571985461445722945782448819659158136308321086079626631104460863389033716899868198086019796660607443025288970604093194923460968850597919834309402946072081898767911436640612519637535007660367804564188762077313082425157963331887328581541363669275329504057650048327132311559062586357670598487001855504838310165354660834014897392298877788228375945010626038532054418602892892647473325581020458201705898130237990632566845127833454173533616960350966304468280697356430113615155768986971016837988330150800279830769859127041184918737691012495580776023385557249073940207316304379332485200242019350535955571603896156025225435743680034750963431834172664529298858480522345384809324838641665535911909538989044835118862258082106743619078632205397460065808896495636288041328303213775075634040327947998102555854727473235377487835257412242911149448750095762354126757697641003733858662536485274543063556621911482461378438196891353956182350669969731736236830989690076813771622420392725398519580053622834433632183191045254193250390546449185667591552588422923902547583703744591068705009932738126376285666023022714374182440050554336340789277415513563848111252627866928661858194007370154073812943166786769924136995539610073951582208051243236189092373792712078799068457504933476109932514200418847871517168211015449692420995506317307075493863676434352881704807827882246602602066965811966249852400308707648806301453519148252824115700384580346332348138224324915299703009039491936548592788783164125371256342778803691446768721991940217471082012916751480048844787722401452643439633679249621370328593470653035306162622970917565253021529252983183641671636912077080991422044793701354586524640702615067126767603647529776669305057086982711129196895730269073003965292250129045820537182129032868323381121623426085901826771343044522316194739018320256791909264311803804502699066848751857985523558183349033955352290997763901537594225334574450453237741043227961148832213032480057162525582951020217378729616492163479433289178133302233435234266085872543714826997717102291187259364295447408073143613034616330952120407836170127091238689413333712254875433492453014517044971829467718299687843677741294051277999645964883862271217594497131745465659774178865841395264365062928442288120506861844243885750134326267403196338530988853478919662393778618541009322473491173916446090605030625516006833162820649802572541410186392304996230229789405565344367406585631201348054873860622475855578318524252226839563866983217873771539008240780744451145220954225427020387064281807057857480153642889087447588031985482372447642391774253231322263239820800735639021831116837458250599999103222564627836841952801123760656681204103271774626211179499169643964112710670810232706452217260752798994776229631149194700422097605098865859240381384063386591982696018397877285830406317515562559188068153029756336111421747808587256093836980335577202078714443726739603921874937405062241076676594889515665709459044992561169574104979494886994999259799754400218780358251596843652234481220454246275123018636962916572930248382910096843675112800636564100697199081152581586609714618250609341364131390279281938329517800524344673741404886295916412856147972341881080347221661297939011766885346136895246627350313502305847249924608819666360701698047632056534593003594950083965034953447416577565990483476007328034313473853919553597231102336096997494961016568332391623307987082867362558551278259553088413975797825592325167797459494816698448438563068902491389904413508373464288895404771279456057210853074746762220639027117074876237892734975212878178476289082660430879093286226704635796423778223578767233636476952948999218273922386858757925144575212499856075572851346099221788655587785492010209306755008178928799059071743760720388109077704687848284261848862993004158229452399102680779323465595237178936688739404213330518490795924808177377053219568782356597257023932017689682828252269721325708182013118070043723337054157319686646505935059924177657645007272490678928414251466706095786007274206879024355721032625873180979399020412637230953954322904386621176827980610197562006258824963286271317677976635645599264876640096343131831791020701725272653826803464795851699307635181383544689097243437306302772953942085664329853146269354754393114528219043986700123882782835352642028549575721049337601638644180428713308351198562901330167084235802132700803137017094001999475574461514245183718682625512997973949220734283783125667401882690646048088446255398053412662227364658240241838906025826696587321969873171374095541066621022684474684103440554546682125033472120314817902787675294377582935335521187805531860637723749752892049458528882735867722570516156258066419739126137877376215647210956129648013734169910031735365759549668468037026631314728306061417077601905950907546273201587883549185378772696627859177176548210683190775267686960537139388061898593523420494696990132780497340737826273330843132176954596334490883646768892234977344348044371657334132835556423796675558272961729938045580854671996390234270249953787840834625750185657411807051435035504063526083286371806078090834594205979378733238327459750237380319674011525314598413289815902998907144623905070034427283808360121427048039551734101823062861736463741913662026000407447812862541138203887315009740684411634449369162726378219756584190849778552380108215392548325686831259350070910461042655698131905024175231856331283753646031378103008746708549181972080563595560580293874002797496226390464541416219907070526456688692118340584204171397891968101533111800309794268220308552695694543479935570031054715148495620104107396775258696091777443946765918728410231327982424027185228693056441203082781182110088600770370390357812563074739993869139391269224323385710712715324124749458648863560829499715007974729226127622606478370545064992045605436001717718193142125794405496546914649892875046767545617461499678902753781238615685578829584508783263983897010394287392329614531257050624142363863732363545699652169268345879427679155726024303925083549594746500530362538888342142491890394921115953898148213895752694668252447432338610894283215598982953807348403738224382163154410749713719329644539306079955120131999971574489947640357934023527932222189150861862705299059906935847452702493328151150335078427011050998618648540336920080329299276366373108153370781301113313786458997123730014091077899934875969380609125923216704005726311147860430840957330511682303400311289701828693248730105022985898378852894975266086712753630120057568167746463158151957745082245581323622215597409477538675576670815895665213821081112981517345840908641125627425741459464894129815855204281681101591833172664394207149269699484525871751818139931992345491108131634969389303872240815464787650502907676030124712967803030502250556791603193232439052007982270893943447894265303726777722098799554151767653782451083380806212437569537786332301483219409221543264455664000559728860138885173687430899641742202740489393320369035963224000510163719058340080239211864218160140656135138430076247774419495000736612991887308524077615681210417268170343321584969353856772808171335075705789366382182932460009744783047988573213468316539478199036883148108779270630339582223077614971573791431221830046654416723992195206208309731175669826427447937403103313241391730580255575292920946230826910951566681139805031562922708989413115907332579726028581592773534627872118104477545379777606086054372059263141837476901350694568226325514428392871924313614607957451030240779444237138616922661880996559563338399240238841054984995149324845322107508350369126831834035866392588780532517091012645352633455793469181182455676919803179050265546136516272091687462205560513580440861368038967708948890275030749686078131438771908500492928425672564607119107990601696927259335945802621833259777048743572295466756556411033275483189689017522819720326985926153512362878666151226464158205768854370898048695752967381568627052390354569171979623064555301857897983785007204581349029343511080345761575084361001446343743726842583456814786605309163709029500635750848998064200199400068665958486499589810911147192877163438364804211771320054901323876282305220370545966363701290138532858593810712963971997536649039233131920584196457763701900693227568590265261686986390205365156934818096600661263807006609895858732876896694298727621007064639861718369605548001830964449760342349363873248290485717271722264170229798020621921513278550450635994643687304237171457463114194748583366373333257848585561595353631851072579618965714144772734308057494262765021576586766854442762832085641509167802868084308405442787904011312598629311400103469282245000360066020564916623566741833492339765926753940230238566792919436766266287743084580220442059730863501018171897565216788357438027458850432215131041278784155767564762230895429910987118987516680504896530581126485573519546341945137438671140849405429496334107681752160440833224070537709435561818827206683769552581557120569230728016075876429937796769822115397594487874203462881233690520893469266825482761059956988294029075957816233390469695412482516102926684989766618555194418770755775207630958405672006585758703799495446640278502135865712790971423200589303081470216323222160545262488080010904045920058444499808951693728848239941195777769356633780500290201408225901440400778885027288607059955298720159665849864767686845115141582606023605139352102135201312892928302070962174900734660067289673046431053309225557364466577008329070513002379397364226709554186278359117925083072705649560924824614029892466823557684089322149333198946086345498050354120886151348817664311253897025894815596122543613397182214567805950413779753568886495021555630525998985066108234713335166390617048805935288768984697350574326778170623872416021600881609592373020838960767112685414431412738635925656129267671689574959310291042781507284537233648555478967870548318254951837523382238387446158735156501110816341323472681298373210162254266103848040927498139903236954085269795681420168544836699494222897749608896866635426914232295814595442046776844278467592188572653077577047465727589917258558357378633798225536188871757122643388551531829325210399029047729304761875083435974354688929537215527771339633882320806469841144648801637030747032795009045914868835073078790584307888010257383206222081676083561520078906980286572350730362596259373098213521526734262844994220023137574595246603093441755105710239494253837776179167574422596858300634366704680133793425914394695747889862820790325692147245250404510524215981716489482797407231661400523183693825227646838145474893059384353213022812887290015720188020652822918150650848769538636391545845072759502363812034609063807099927324298545423119307153264725001220131069166738389376649561699297216067653333227273863633736513724162390231894272827118842374546006364553935854597998350317598811240490732530747896817332127052521034375299557596940060336941348237208587113747215171707576311854076043563690887250313581724385937354889373852273311166778641767527361206997278185173843005956653320699146593884603041784679890678578065670310695566171688519519138283325686193019262157996978415316908334235231768939923741485859884749817197512421875016788893459491424582379654564057946041637426406210218805963202024212940902725926888349025016238262957076332393691164895157768086626504232773543664934984389096115612843727239313834832383089494676924415632029123084822357981732301622887804993314266440603753280574597860583327074568205468291683472605883838185385903258172558856311572436085829749596112642775029631308948857123555660145112395575256187863343577426290687892598022125955582178170982954876964671476786600317766857115372046213918429860967213314185547202088123651162791959556364274195899173785240685196709749128281259914581990329136766082967598184425139112797612677502318705999376354237566469256938680916345165200853355128128794481269351909654616898786632564985042059994506494425136436659242399516127980199181709996373593891625097496179316659480876576944597131343949424582117398801623255049332646207017725990010754987872188404674701308173299001797205984191770311251286351385385385381438577503385095894506829400595183932395059066058920288856532148400623048617223007162946152356197080007694839741275139346639452268248904090875949441362884971706058490582863464200262836050260228672195260003395832621885039879983431393897760740021085704958544531814024948507547720786337727747242078448397474690384899008441090160105035145253914954702466264521596710140088603132798680252652658438853463102006676462583787267923878900906775044438785438027117412842013289669107474906484416198932461821007093246362080371907637503654551683532463567707028130191866799372039914233466144811405279760019857284302264938079687755424759804086273046830864618520655439129254600668932818204621512572449796264082846568751163526127176341547715830240801071336321930381176098820852712996726500403809766772939036987485363149600571076719765995493777262907219359599969356859575929493792843112237325431721178387387654026201814835776997848563979025981019827545602533721050832870347122114716973242091905387526367583173193509772946912433777952665030888983267808171642536649803507538689600003998604284356403855213825301852091196604082089206075552288715244846033002581400183427655822051536418422019193561979356953581868515786383024931504545041424389286615828933222693120360951318397222145767275342767726792857924982105524526982823004132333454578527252574657389910530947358835808281745606295027152097473551201788447700090995699589246818947272349071463226202530514298611642832523687672065463319278711234274823351177699288270844070374161846031967685592697884576349943157606893859761103289851891302048957047186548966228190477236220555920659463180486306705559431511442062119070801381676190716881571317405915548619503788697175038576734688307238468079598564647307770208189990698750405657115352964872966275800966431353388732788307157149777797471370436185579943068597061306659524934950288819362587138174870111064036089386398901737051231196821523673922277602698477751623873527643388971889189080994057309221741912685014585996407006641612269680217286973211409979251984648804079581262356445051977470055122873103515573478300649671832122606057871440195339171609755224039646630460598922369355943746075767284911819074161634973743016515328399828837897850055039014631501643739503020356039995718693818445757236534656232559768904122606482055191096097382665503006088810761599397188972780828579500053449755831733318908582453225899819679742169017433813543080202020472790515743336885950566283096112016748277576918406580099155377118831839490206486341388945929351191670183721857832976454801529966923588793795055995892158978600024654117472352970287116806127249949424581853316765386117333507422365313429589329570280528570806374555883658768914492363604086836162753600477522922458168020138400132237644533982714330107535576524423555917090303569483231195389314482709629974965766361884800040654801383571787880549391734650658826018879211376354713484799813964073949610590914047682545059049356195485712651913027509661625581497746369795403352548058243834511519914252161669942263361357692542604811567831773351594967669285301017158657121244837793312530512803010247762425674811257387740227165631805550512325826606973506981196411964836061843706379195858707466107059232264891760612051252312171138859314023787000876253317272096394637238501962933459623656094844491364423529333134167982027408417290355457552054588687999732943973015162852464640202563663456019319915418291412540826931782107838603335014512249779352472520308024777499538903671116847477152096038662206736626509349199922191016030222845971976821800774859555515443148224825510975141687019009272363357008540428556329575106334684678577928319639390589016147562869667952259833779849861875494122715248186786788486614229746767671662264381339878309794720328206159265368649454867230034981621185992900019303561901879384215541598211948201145137222178675828949860023700705403669903147556960538225418900146269804980013307846341510014889501301589864665483489904385361831422216892861351048009701944644700480337468904093137079789931040544615700435450019141877215065003686987047604649399716223693219832676215894868779312618038678725773276930485077445643703346785810753100345759389791462963952097345633435024305340728523233636198237078752449348247120651240642929993021326231265574574064796546623187537766235505872003120553002058299312817203990003144181278852054775449245856953231251981786934950973189979032436781880059199411055194339425973181979931293307249225223113381947790030934433659344964857451170277369945804258900133583980678829907792516407748743441478278025881292656306673349855886228195863513557943167041435159761175303911030576144741283203136461580697956899967981209557629390353889016607726918458870304190423640614764624770582940792071299096460215469326071706271495935241403654807815552289150257596927195688585338741628247617548361815001234404742044421097271339430455066900681840560688268696981409358547141468002146718328017014081835745165526789210486822347559701717933450675686666601128911193288134731265287896084248958114109878098509893636056199034582150819858046326421687510391052806010541059013340838254546341479953941477419342113084737029047945565804352021603945261410948293271284654489178852772600411282388583997502716371679550093239728510766410461896141379118024831526802605250411758407901501757394477510856725678561892043300338148927225555517770380503576849104097228064246850093158412287122080217409483795864541071974546793383364763290024036187680461126533901012853777361487220057493604101380721743892968184019644218750376232328239029008559338018469826616680310749654831398956363872691848101508670864294431829209501620959031346590939947554781107856891726390417079538353251074344089011283270844629604925078595769998996156843100712342713828020861123562776747118683622435668415424960749327991872636792511003497924780670411984917382869696580920051703936674579086539624755517628141399121000572540406653573611862634430815782206143628813541139775233174152679534583262513681716503968535394945324804691935322361291607221048233988187308576191409705973140798450809439905581890726074246569371860126803732807053633453370477899603691188273468266832014047974537973792939747049476387154181779468541132975676744486000500551022568262287202171824298729697345444103450038931548813913593642951308659468792798108252303922764077302787835569803896554784683625434489777747790692488096049830929175110230188922009250619881953632047523287082879004183880244789459092846165701304851888642638290379179851851700691703265494279667224894589976933392239198317198524818262910690824275474301137643247230123641326553239578816457384341720256204939285207587378346082427676963072569954596741588530473814399849079161321644946971839522584865265094428913898327077166049526328134651555213338398380581637288417755249371208309400389983456480093226304567397250660123183359510904825114896614901660566993257059825222151920220512216369903072552742810707416338056856104947249553355459974164193309475819365278663041707706530787406369172685135206720376828497943227530596180090902511905938998997972706973247769441686167952014747926654574407136590403238904944638051641082313010438631808542899053339496361704185611799444881129038216129704659469495854179845368316752501868900357925241432092015811841005586481859207099262209727010251789693768807995774033130236407520070200704389330961473181954222288933435807943791920533924741748222098780867261394158905347019387416443586282163794255551034391681385852824970635207255272481301074038659543635200068444620646800591027063075962061047974658484137918466845852039695432984989196463769269841455391995497356623899368740682004929456889029900349657057466719594665394891020624863191232974394410574499165179565933949599995818930775922990911854258655128918294811633541973727453357626531367576369608918427314375509861842410035993123777105170472932099011902907428022725733513988266208440648578050625562608251496006350227258575231489310543144405843752835401350222534064307433397796428875191618251463567126882781909673247207031537177312961221238999683647389709671666537075435692264604590017645842407435104514622103088575974085333626327776226906685420876846833444386369865964035910566791570488908003101910285158843644526234912406056643532166179985785039086141278630994863913911704119743159973897251289947113581049622412477635538213309738923129968598936360661333451605146036883955350965449036928233356216367504549475148351189851685092577775728713183419669631349977473303819516527310276118269880225701194125829637116636100177380766505748967186319257850325233996355974030623999293841588817889128937560624332469830237420046215816917347437084910092497153235797301038750029707917755292031672201037680037816331190532098735400569899866429029000977070148867549091975985902496712310812050090712148531104705660551360963608175861943389817191041151546306299771856921047731877959396854377426702064973887789310238109732661273590439343662832565953981800911609352748283341704496973419516375145604546932822118944386755056573806402406294954437585021032557766992844141192466152539752574304856361869182644700788809257586388453393490938221190625669885882846155304566003328159556867477345510484089849017593699174621829315851486581881080889885843134284053231238068228272342013498288481426440000992668668644600139324915201666880414798826454170982501633865843062457845857144632261940640223461469948412528078281762102164802691877127532760086359009729345868506678396144551911902575477120513337834912458354260611125075291720370414973447555357464427325556644246809554913277592560431268716945810196787897563019015480900059920140969824428108206399883862297077728559116729096576340011461481385857263567705045737990657086577708691938631377251172485017664576283902925594802656647458790812186623203418619504336698283224544455769415960155462359508386046624735886557533632672825555106608196334420102622776155984364913207898062693700591429108556669900564087355909546118860176201449589045727758459231277087684719065096132465423980556836334169709569135313013643372957035488292011765212787090667603846518510209095208623128733594722680716682235970180998688343802985883726892945552458940226391076904305299809089152007172366862010824916446989018708094497318005372969734397940978474026130965655082099981159149486274636393916110406507674588625496562076277135063981997635777342722039955344891066329930262564171170756337859211205563915490392216388879765307663164052821688729488155559201220361842138486078166117777051857270844589167448450717101634370749951083726614370952765482417108255098600969239707917098869259329594274128257393642307166073934247857214857774774760466323462806954824726067518041219982378260167742435493666980711391648923853028000934434764724179680622630244740673685968590560280574592737421543050238425476661860418137530861595921440163769292174126160271354926917875488320025430323450908912598012476113704108598430747479657965163270222234911645618565628709147186774510526140788285305750129724427576726318548757418433613906502031647281956822786134005235897304506781307510670793501868988108574791582200087264007634388331064231434679714054838129337324283872987906432282011203174255545719570804037180968401289115781709164042920743676019542163742121486457884407143520740557058973719637583325881600797684231601931342913854578376285072023516049213158162400239869271696313205572439365931889024219483125827264007872323224537052232418079843828039507733942529839950672669291712035104017787292213540839050204372493722713363058403671204119382685979007777239367681656512435510055210633772422472782369997135280509070121734993099827921377093711760746263061947184668989572890242746583046584407615574941756496316311392221958943016242093115113057960192653783079375202519010190544547301774723108670135835850546415995767190055701757057571266177246272432484420733135041662741922864754207483176403345044870758672417625076238188028335769016080485417874537552998058490513463806096297703477676783614300556706718441453935653615189915309322501929659185222056039215567196457407144791314201828968292834803085978410905307539565093186593874991478057994625584905211217094562320713150731937248129617379670714078097028320369704212522425052216388492161064007246403663153679021712385184447825656252674787064284384543904288657913595009317467376871093604267437643390292436932681123629160443813865750223491098760076723247406955470642119281514447863727514302650431324001613597650743127555353939527104378570140280694832211198891552659308022748574450639662892871349804900121652520634851613319604908522692371711595763881678543222006320170997668552982370364911603449410215235127856000880426324155915797749455704426031206493760945163348020001761713235155353415467445270055637898096897899963261365748779561835199938422527106529457894323623241678694357040317878711277171171977818195760423250341616127161250649074491195257756783187112032522994340217622710826462019922527858947205026423435205154851864618962499615083582910290935274625575451860487980665258238705861852456392597208146246131263831778657344096092832755268327794094563409864630649415328396578601245177906170175352081097634517462679599493014831252653577105798401240529402451678760108506291297701348108518635793950402076808076630352544832955860998319785246610760974176452043447334627605564170695031443271274510636432028406635321512188209837540386587582720511285491161162326875686879127405141284722186115232088708531175373591656344577072179116439222530968682313253931712442672518101716998332093241631099488589620322248924015974350902697078433787380170274884925268723328527074302419887898982731367741672407020487359902734961195977390472948681268765934444057247529014381206895607224647107079980956044885461080808856786496107424184251417811614200028293242374747069286808313824491176473452634841583555052641731473935599850029031726193326010425337673780157049283763307226436319093495396991429326938371162152040296194512815581357205972932036515114579774405657512876345519078642082593885226311047129736936538971849515578778787992763081710218787389420611182372716404025352348353176865525420202622475693428425480190239922103038841747275657603680116114907395658552687523134438556946721260716839988650955307610480133473638703713419823295505721449956444677663987151681356833554142603142546925062061286732042996306344997856212180912205536006146542163869492292615273993512719823090697848140456932143131106850547272234350220773662619135105118845578622728446096243574602574051579833969935116437828634436852300818619650386740529718086557026525815002233433212312628165009256143997975323356128707042029335788670112814590156497862799457601292387845372890813569618603573155102470805948206329611044164106667350762171677952894765188046932393559917380418322618548415654126307227442544455117694568688879466620323611438754747086859078841633729724330085104024411351476929039237030480899515163067743330388235129050867712917390770751721346701740914287284993535624373172113810864359211797608399266134687900843945936990330961972141085667545839074273374248735946894797556337500338442736058280858279032010864857870969599170040089364775513421167174425774257448679552880779962375944226518532495182578546487714962897371995902845781987191129089757972590335744135871138179976980555144390453898913341852159255148040507197864892371010977103037324812337921130788020814799101698818579542275333209364254793840802374378476181652927512490176660306956600522583505906496240662005679944402700580278789305513730357179385195863390272559844038262511251008325553154243341733250986330300443392427173032447730540510191615555586620422108939749868527456052884955443579524439171702320106102427368471266955374833382979702637608517354764890789066942161612432733782040268213196776259609683243948657623307222831707369259967767427179848148034542753032095334110533207747736902147402351711441867631372633394788473859578443412484247401495095353286741383710602799932570138585426968591260560287597402577600504594361727952687635564189039983902687834872034381611651016124158072389710024225127667223759738034795675013011787183640571121823387772820050979774663636200059936919875585266270730265229394270262826341633984410749383679184015698684890641292585286107725960998910273895905940177724730025343843998525838677247716958966282746192928221286308017046438600194314094443299476877426855907283526288895875876238053297505649094749958307111445003688328771587607879878502299262749230970684997015143227994419981530187104218277152139072214694340048556182990397401816582508381980431587685052871143579905430523277984147271809065480624481466509286188588588707091124057864954730051056727166017904352109767765698680661540837350578086074330548996935953106396228661192453677804255989034074575037242483782668185635863107350759067365894444064636245270042802336596978753988351511030215583410191197935481390701326092723868979437613252057436343925814928754561306712683462708312144277242972703069114307597834545267707692038809902136333825529067817307195826369687195563013347327590154018292526176444006435983177386276102260758708502714245115442564430162622970698626805921556121261984029521486030580593248170601598152146708068534345415298192316781023478004352881134866500631743042937698434027749155958769384928000741412297945272305129811876932655184711879190216817164577296149327823552660756408486171903827809900770072893201104903638143269097692992393844139222661450378005252493671161278053405754823888841044375363843313968692894205149797272533171482242898168503345059363425991826725386871755612193935532511675128339775133543686410957315175341842509588477872842813763602611570079620234709111635755050354562781271878888309014360679224595371638072570609103349233655083307034022971727643504074151497582415095218001771411509895784445569231205383412583677860840119013128647264200321784160581069227547572643054031808213251878598538232837213188408336848284109839081980955939632723061493562023412008117531235446633578727054160973404280605941108091288619006468557739024988772778704782448749319444142025268357999293402528728395395800160390078673303844755937178221430926220763906435048413231278325163288105538188736533907893991077183037314837297303557059517108177080925338607617429482823284551547803035300337313924712806814710016019780198157886387015602197027046429250878002104433061253922043191116317341652140600564427870658639311316084176201596188228492023868069094279569706515461023163153732314362146862812351929047979153578387273446412122314182039816684800002869604225425832298668613658064535710366983227894788524162596911422432661203205756227248827405030167762986022794571786938875801709323075576775610387637634026343523549697632293113724622136547963751216327928384983100380769455571084338616037883073064292282967921363565675285776669710827757684044815155484498014481680954481645671236046386524312806957859693242694828243846872717376625654582073651550255623847074853040078549265961649994468764667441433602940157565157277190274011261885624693647234039444750031648573009860929000676472679660533884219593679757921352951651740671042624208982206378639160443944603926442651216132632285626814603229785862062990556922277580267085604896238491759288884173967349607143896294780834115013158562237679653224650092177310960824296739047179425041896288003978953979460146909581170615333652337868369935900846041638255041383612883216105950974335452945047474361614681131792712647803273479253881656730389279393881681632208549267068265005983863586492150030980589966915631853901946023397746995676008361351643232197932043825645508986854258011941629459974483158836848367392429501455077404938556465590865790712899557017428742032470485422783038477719339144803194127155117196268599296960484696243261707987987574098513486324433412486408514850800418052905040139525621655442410910440698125800840854330742244955418215147360752216215140398655142015814785996316975531296418394282257092657789035880109322567441240007616682166895877844453369394222220500071831875819399991538159723495486309401021613445866588380028516611582864882852581975089026511178735443948278251638058914602136677286549867824716785842939963108972747589971548324784944427179925524040348646517669158301609166618191348162027876383911548643007417663360406718612804397428970858901016710560647495230014150421283232555158782860813642233110414080985235385273609263483235852522700781902384544652878683996183854645722926740896287781902378026669713747955377992315745873735476697211538905900526966103240124793567150144128066424367919771940195809197676946962288572896022886911383881566487083990947053993952965686195799547305817905278381899378939842339320635540392402848589330340514340742508414292829812918485594793910876826771263605231939053736650854173720783476159085996284882423340656725264477575449294445679569540866625424705408533785384517604209626645378250567790807202585583993291050754650120906224169163039962847626795503045220627617695123935279432454581574975787982492708294176994954854523850666196217875212697172115938017055778026912440172392263559818476089329201285672250818499094314364478912869359376506086342564607864632820357644687840187197919653935413806691225412930012149688595688556439824515053724787967495976322654225031407099430286131004526796425311191372377675371138254024809942646393547998514979747184400589412892326606170163925180237201350651209997585075181858633431823413039168075268507355292148649396477401518045499027328593532767112261022726700851879122305801303296088545838802169130324851892747353647137460228377000637272272848708139607422919460836985362917793506313106487559361982597898004071827448013529804536744533872819403405700425116323424112036883687298803171923193210277777316486575533659523174712376382626775053251790800777871969617066301664716291640608850291154403379993861760598227426338861783548447405950586048452224118922862432470945560007903379813349145128302141967328347635942594615199207596514805394473816630299045494803773761598920261170345087348932091336503866660908187883674610238287830375711517553991590492072836661893909087822124975270598443347363976192936045241482363362660546515582409091803546656737503786703909484262306603548380631784376470532318852797766979039908235849492125811945165797070364329916351508381292290905384587797268922789695303066563668262156498932122631407913892309493182736359914601998786498671279792811164122951257452589102941426743217007268284717305638675745462684768793519527973955017926658642520779457392489589534296410767585753218523750123207237315421733311776411665648491618235627505242001578589587754967382095629037353586069132396550710447325992685688854282434694353695836743562989036419950530111786403258875601813059207973935157546480628073059088699472929037411393996987272334588781124712170620299395950293427153642709058039248389818261620078938050215506742308852440766001288796089013339421759626848952511727192212361887405522232343152434116362471010445752661995475478513828818436193914353080813454093073352274959505267221773959023735270671369272177721175582551043382788115819798595805866066882632455839911128753092183824427616882715704680330722271380189198604234611501588660504197956059204318177919281644023021966558313390166233239565078449198980078303105460735363668272733665907882986093574844432377331623356247366324642284347078808914260079779113147594442598560215266857859778554612334854185649676081554359466975181303385418990857277400507986948626318321411023100322172371827407369139908718353768607356568601744519386213307750221871942372452109013748797548399682170446583591211503387614840443026678948776118317988278878982512035309001418738637174500163384529758679493807458851687002767935059211650714991985677994406790955639962172832580953626221659946083135112193756422100124837678191849600999306033529880586193718740776066244521407710002012184734082053658524843258586432353168427619462011355514087560242221415903693875973885940264252100781334176892723039288558793105590725837641624249466079540668543700115999728137397843640046451092959859806824228068575610153169947447830035576476965065068378173688746128237243516545312086339240853237092932719476609359275039257336175975890340453610901772763778267457522213258985692547786561912202448846702533856551863582784958396532289265533365335189840791833791635499528412178621966755467196530626209188605211295744134365951856071740309585790698654495496015696746903473277904055082882482898831391908437597741370449990387158249638081882532035876861915078884177216428282692192855696890507613746524877217417772871648943321357088037216435923253453271918267785827599964345562698551673481759935638836573124484643515586013965797179546214273228835776802442240919863114532331849497812651603786025795843776568049670705230308695361436090283751107220042940420209145321423063867199573313652076260021275342613547317046721525284007377381981777334314630214749950690462757200681275311995450398804494375081250774481463355896990959847228633020165468787710203435290010374476943368486509765924051391216927752529408032657944482722200507814706881284016685124694699377699612349928587337135000053827116146901081850334284217552353592694865945497122131601479012557908657965122961532416109940610169079924553626552999840408455287468369042517578450878216418539337007691294554835528828956356302311117252156638068970015646981579760302801127046618997574012294093334602943027740314686080241437797229934028404377138458415293455836001910013163883145283252784098476822204584843743738489797463703966218538136441826242723501860456501895501393013143216784346635968652816579640021667381214542068923100801970592297178703381986167353331013341793713685924178108642860062645181636005897772954731315826892848426374718693610527574600377683245026149397950260836591097952274916252133429881195351895818453993276922837582037128465903296698071676929072768247510121725798636409992733010188475999449630742653676857916217347258384464642648844262228962572194050006663192458517965809186039868464671169694904911183046461806194417588402566096615748886382374834192563245089433707294496301224911201193020025108900635291575037088634508430402296885102689869969442998682531453046384925684251396313665493368126015105627168257789134214536483968408263894147466122159440545085365833046346325125832558244221419186612083685118368291928849774981424914966065361837414964018785961692888709403813454906937148970545984326712255343368095863232672749121842948862190946695658913367161909186717805683112606669054988169104729384971207084525517774188106060290907146948591805564094756155147809587136099602782529133257925744063343969820699916089370398752774363910160341565673488217523034450401581951654457592985641203454048280459505654062435055636387458554150316205917711659986281083861738050780025397955783507573742789413174251119698597543270420376742993072460283176335994357743408246450566938124167083364684855039633934624797896612617903650874119100359201670826438023464916728991421615506526177926648409924047722396557171294213981095355167290964434291990261445741717590812375738437864395907148986947297501502419712749663050498848167072453164002332400131151362725046083973181315915868961693505680040025614041673234392758780386345507551338136631796736091436283349982055419074186993250972654634954212569913772995819689327378034930480103974538069686512809965316441593000954472571025320820584539124909183713111221170259516734224421311092431725192746307196357887353857594738110106629743718287832925860976051466077207340425326165027508944410552226944508258844184477261613683417658657884438185854011510891078322407052046914041553428224012025049037863314005551067926533245428698903425908573439872535832104025524522928104511373957482464313635915431794933455004735513110184201676551438351188868554480470747986931735066113838556895968944808822206082334546160101744955319245780535499420441073933474055490909908060483240043949977121785648825523513787835413758293859428241996032925046577225622589370184943708546998016240405548739836688380513014567187312918330705340331652778465254441890349193707848440856319680344861235812352234316890439207964002362878782235703254326534382372107816257920259031805541032376008301195262889288553382556917917896579372754187768337546174544765342352789889671137999588822785114480364252371296506259444302646936768654597906809476828162157933481793086083172550397761848395810852911087724364073944047869135191846841838568662239677956080838942884034272373165373488836871513517019266256630595411279007017018088386392323411860213193216166143243678744575965498372467876998744411054545249224161698378285376828764574817707947098004355373250243297165256839638911769598672516775177810504310879152598447502313915200447016770570331587255368680438974116967164148243780600809988112646885441272330874511405239345633738693814575798814381860039161897408637933072919756438138161280404709435223053172056739473711767890808396141540547387746691717965279271503231844256185532342401879618367072834058291020754720640744135119194106959604534013676289025955087416691674443507904712933634640361933847253913002278916394689954160380896309843188479885076545717354904491994666668703954364418700612095063556826590594374366999331320823464406590386104207938387495450958952513082492508608001099693655798026711502566741122108475958347370977366048495883632377205185654858544292013083845610488753867312992259044879497582293436598995257038188940884610173701183098876238125734454029462772252600526136592550218034436934530170435667753913216535767424743503103399871092663247828585944573114647984558783258487765600885082291066565297645975267153414166577923282564413205123937689873715755604491823337570316363988558527468723137905540205317908776437080574602771375699015381190934069992694381212490345993775287989444959769046197254896545382962754281640099926004540168799986124026657552684588237937206712201147233001985706459409661533851679877337721105755411536673370613418317404615404379922816846375863574469555089135609059817877894961003662068220446623247811900354278271745600958138474102779408402248945086227307651606582961341868867659898990743393756333754986566667180858728368247471756265858827147295531122152889991273572166400702608588144948272017116486385836626902725805009778174913379013530587692036668557372280671484499056360928354680772382543569326012744378106037503733060979373160115436369939655557187284825828603523769737970533552382431504072452736521561224362642584883418882061530746367713796656153678014737073842009879761073864245551104638532568168189174357705028785212874678882339527880223865370256725586530310320196517936447363701409983320465513098970981274569524823960903405213107336491602273230976406089145066477967431921149728636683963655984153539363265495264309584510962461363742764554487570827994906467619134619869145602452962013185165990301370815171443368316937643645809837628681037672497001132871127760488969486914044751293768022463417907313460965735064592677408042758308414983696100771830304303426455149251039535341444432119971615294069050314571635352858430274927501145537798826245203308512952128094138059981068433968788738189874334458659527513183023172938696737942423103305070341264783567244002646836574487364051554641422263863024554968977103216603196484399944378392558088014003005627283999537536018233399716098352033484408731683802577496530340554606140060865225688323653378616769555248228963526629871455064252650823123043890138991698381898935923921851555213633711591741365192061016996534611607017942565139295433261743425594088887237741901904593342418902304745185863155157386603599375444821921402178663685539308975793947928153049827855421943510149859009722642268955948459897133129359568683285056713413039284784945327894321947000657796586588491499769986388905153461797684379717813242723476683212390860736152443389608473043993164363687554698906252075719434170043683582378449038313496116206206253636718969044556659525254203822218403816803972241085193755787651035733480341196931096271410790115324146411606453458180196804312376814682319671480164389588217621384093658282041293837950885179960434225916248850468501788390024377510446553337280790452383985322480698207978510325836667120494743032979871316512571991277003754124933492208594529642091639326260423198531838267679953765894396250261265559413770042399533556025863144551024173686611591945717640679158529958636155693356351499891345502689295624092213597613565541901924817370990044726679472866110678759198367727900268720167596548848336173326139361854919448752732766650746266112276009708590239144382521638219709261134432943410447187855484581302658542976678021435498288442181505154584132478429037874722914390981778781824333389629141785141756742623736026154154036870385748376496435159944797422777651276148696379019444833201625256281915366331534823567712315057570532827149415628532255403112355626750780198075444672743782863744580459300940145293162649355359817279094449702777938259140489931306657616677687756379965217766579202952942022402010933614097600566618989127240035481891568180474471645309813814925904337711530794907577068986404408958290283512139423739822135271359475307573394839787887522695674399371471656096992752753195776119365154837694749777817441227830031802559591381397889245363752938209925001651282689166687815635390453502635730076401751175837737842227170445257124275710612511862505714075334161203825505432892715268770129261924368368795223456998748329168613885091888296707809315453911196679902593980448661541622233329530483939100166964389213951439130644647909891849369203954198957216349219375651200558599173371368425964645846124187882951550876215184681583813684222513296452993805238193311597944966635376676718813174203751215042600769342216020339876490694379415222331179751162744901299975038740218980183904387261213565434756474599583174788665793717518407174550277288534434703277310932017576332004515968803021409704211828132859304856085081073341743065335187146426605656340317630265146307086988888440614070030497670365938953264316563294214992990741778105963316134500888695157721124431638824816381843897993229993542770245290372118324311185207202181829839089606689578096468040859082297408236379694147400736688526353798828455534763213525016326798864476181309503368584385182552519208888042821541065784640243535435847597553547360771694346979712849358909521005525376761570490603248427036118322515683236485858426417022108302271473723933358881446556131679480266312255116703786862250433011632913729261248831178070740375496873794213149469562893823779206554684346074992669170339869919949164979938500200739955870352950688407302894832152373891468610088196135256086678437104430832108723159678332905888455867149981294249598028978519456514374654262858521509962524039747709457585761332048168577760722246032704017546683394004659168184331803902182816052215859920199486361158833348939543304595294113972939229749294920494464600562682343599151683398506144840891053311601983547682616158167820183589158806894492520003314701813377566353462092038969868240945584591874646111162296464236685580264175439108412316852821491961100270737352241919516670716740580582027496760466866835388990982258356641762139806754790093568550813743144760072367085732267452327086742744644738807787779032024519751143151431356641988740311943688715992440823667886387874253451005237054934222176691497958553404250455189292713113559431412509357292932624544668359873647149132869275543050367725676310532300881649319550320185894402733218700138458172654945494307462745572424617197227701095214732996824797416388229842248567520203134421888641590475845265272802601637117292773935243857176038659369943610864843619680215149871296091723793613579005517563738579748741713327138674059177016437633107460583838849790879799576535834932808210530373204772966514211365465459815536421069110277972484448968894160062655736872406114087906040175139194522901139477294392411020334333405104411082212321136569867383787041558152014103013466522998763954405318525538123983763290908599971022237937769299140834198935762462994658870559055494611805297308422361854270941935949087502878942934219288615247988972937851840985421734760521823428415839752429253888916756709560285372493718770764141730838550511183144434348770258594837812325422119749846368563942133315691590718852634945961629789491918625354708991889794018915306600674192728452178321247899313150577810706564922859648397377955970410457547420226560836048062891613704431698375656024455119300314092971205113938343629131916426261773550493570343523995158665595632043903303059474219454579924536341673626812406315066961826537642928705102985396882097779319677892986542416108801557532053411688667743027612200018569511890444704247521580123025852780024335968475744603502017918759140789369214493083626702275098562968640750425136926064313692757381964012642478085881738792627118672029068749064913581301171066506304811367169045707910089535369539876237247906146427814185826209326296626871529289719216673948493894321260255090266189041841918605389834937110611968003195049560006510411702531910895042204155016139401506268756305620802291365828444127174963761617844492236483613869143848979395384914037347361929169939400463616321979815217310395623516892892389517843291471869522466426374848474929504902610030112457906478542860163715988591335451686479464399691240968631047554488110188239942906482816476630783067676011943233091495285137853264135347775202716805701549712514881565018707881132896219759875254809406125395681067406779418115555569370253063951217378918813898890412664265304704654743402447671643343627888961315370325875389104434182321587370045580503198556948053307997468840185778407326658046421712781847715239465454495055145933407777017465287949029916127387139133145359992914662195652345235359902794279566854787346134612922151265025442417400192591551745967295395564363488445895229872495452606191704720280902887055897921522517935881528604409640728225310286463083303961853145529987858674133244971030584817720208183447835283844884650985503082230810485015996596804467273504460133162527285442765532619889302071211567187721902652969256687864441163466776871248175637844873142599968257009585531652611207046318108817727483241319777098942508758405866604528209354203898777290147690382017739555011437509202151495418162705505246745555703037950265984312357905033258147509575681443239822793912274970800957166148291913917916623243697330337837426695596698232440028551281625870148599602263938519801252423245776775307049188760635587608752234813647456660542489302328737577462988124559369339514313185010821743115567512014105830926732139684876194298403169527108369251875333922535320502778261812811167944719763816071767554659696166676811407936929939971205282432486056238858690194132183958378424019365475040686928476159615819841948900190691186149579273059178502721673280421173188157803879677936375588552060928561237769489266640663862864271727172810128785324155447382380433458196416773450661059592445738714334170639361880748929683002711291887761545342579208799036304392130106491139838726274685568339518151849560750329252671960807252992505248103287517454694927537080582729162690614293774294096552074124151509755342468267438754477352617802845312869114272502822431381967645107699149967584956008165713873087498609521659187748089564016015368972398069495614537242908148925334201155792295341640356306639961170293791948806181994330067195941610791569074757038189932564272722034858650959334178525800493408333992160689595868434898469205761404800684943327705597580915866477176260632419841303548106112085856321794826961828082609991556656514817675329588667374060253889661811491914075498640404402987624552762130841644963958957184318409504197401222987293721868056935127596569511864157705789536016455195187746973176786896296270962235134578717378004768223040662987316743884329489436950043799318146534482611078783268509312514663507027268337599880233044763111989788053305291897691864328850895614384723993194412104735093227776629257746237327371334813184070096684085077692905509511799697120461297567125275843084758461949174585338321145599104044698657327869440553109316921661860161264035689288132213636728489069917353643442034269375524359887598875745482325698111611612963299012214110413281701389520609010810382557220460449413037830539361493936937408209416682798957624962280879210390115812671524595596358354772796445464989537487346147668951419945826709326715013878316262837579914397344207911366653150754249237064259634144149743633951308212674115250584139651610537067570975178233674567726722963769610130124367374027591863475940638174721252728966099256918139848479528191097259832289912097698725414290487164572886520537414097820281496884537953021780121023877708230628262491232298343012490551014199662391109727231797017568648950824722794513134743269054703057800046913468193271485900989384707894730039703452874777355390873914538009981140581002162695378570517580746327718203410537192653549861468168846129579363277789707952148175263182533919603011592513018979446193743987231683035217800244412770831796896225381093586508289732504160568896647522324554729247147971805739925815416628442281635429466889493305999151690154270822783755097169597319498783926568617040126251647941132797053087215673508804249115531709698732596353555659049325167016781486881224213230115445785018055348160434845952688650108449217718109253210186646745897051033612246678995204924981653030437800428475096301013539142593638944030356278591434895265757284568504858185126451647256660987856428241568462519962468867606209587578060901589174972420488620107467385762580497484574207366815354561318469402283332639371115884654083469212058337876838991527196291752893358997590928670675185734980898611558305760971437757050495452668044038683246955350560575892514407817720597350135744408904794264860842052758967765434971775969945798722250357810920446373610469602269214151092144777431773419557740824906589656675471940655186071639530817340647703293566874586929477150650047601236862607207836190452370693281519859917139885063138474594616725825702244206099292678483455921309571453766762714206767617007776726739488312688871247540877553415515213971183758627162424760259660431248259314395983838758548450721263625593804050568038719123447726125028122213043043232182031334337225656636562451834845554120020583769341253660150437891976920896952361989842811414666949649653827139733828522207670601514754143992545406223015727978221877546247689823428420606509953350218364386685158320721466825631027532887486714611746726178745340357581337140594439303933612541489634081548739316098162246304546668413104225765598560021481221706463927570441403716921216012496210982640233027537734823105858804380381835342221118994611445087387654858408456592623869260207583362547333118322893420270895189086756049056908542241344769784782943517165518631507037769544490497857045659288254044210047706181298095385694599655521742280873946288383598214420702368325022849526384862630815133805326120650050327420522207084259265941467717634405986295058729542056878537848247094334135887081099112367725864013325694159717038038809075793691738747790082343622252489976831375356825998954634461636088999599996486303563039860347111700477842121160302646806362480703305612300388463180233939217151711100422794813592331084094740440888239310226965375100246212984745183944929018670588303371231648008489746501576524965326005928282956064964331299158392742291230034016557027019927952764315371479973209647804201073694347419783868844785154942771739078056577617494124458319146467482669664255830239189716135478627581842180310865855415193069566252627946514437347761225409301911567062835981519845239986437485042461029220639886887147338793207098130094791910135240030451359746234506001414510742226282363734185380541533115454632538187620581464905893323618886891620992704594034384768448476998334482030588393064599365183654863482276484432011260221310946796963932874789378861520067434359222218201396639218146009044766602393209775917895272541601146857038800966063193045484609408160325012257384971504100337537780753207612115607271201270565960410007603381927360716052873993969261885323897235590448709598064057594101020273586680391376501272365959973954232740716267609042769605546180931527236408078598289067446803743324036895098319334901425316161158363324187463191819375540422173172999679701108588835353077580561871738147758992233539639211948389470953045362403691474680324213687115892468183664097346452739334054268693910915340690955073092133119195399733676028356437343546592585665998833749695687993423331141686560080485976310392356916732752306158573624318591897729247363063872297603799623182392760324520587683558766035004002989475224198823824529036590173018757392427083432063720292415272820975041393307940447327177164667930659038632995253115247041116148133373179187239486554419279725581556282758961753930055308304287258123745790090282116397333374265399606268174763799434518376983573507664258386047455279504113236709535169430103012034160464992539243964556416670018633348251926983391988420845779807034661130388871384370271140649499805165461582074379264527630544151302909493439518690302712933325849977096464847958305481769252800741518635857668156377362725547140212180379604210299812920257704948560023508148967830578599133889401932375315381705044249019941270361628106898373904879203354401853839204892744976222769146470148718807255562259571301726994851526903267489797326929062831030910362731401241900655328491654818116522239829261703209394011903453120712813369190630181846795862457984177679360365643414862478528338232668018377669827663243048189593992628015089584285104088530736068661268647981694848557948492888975493541771783616621467854517024286639511594544947805093252708369900737452575634345526913298591677134981855096511016536218323422159088475379255952732864939571604662585906770400656815529617684647618593982071907799768715175828950053035561652932030656996226262512014083091556535109164982111685705779500788661269433939771436550415852424716436112393598179816451374858738870524904073121972800702088068280466129676221879185397126901274060266060186867443796095512318795870859713960663581113216023707229967917342370914803258428848205210174188713219440788639473765792295597648316730125672411987654435297930595463282953765670419173591373676630775089929307449786618210701519523668738112296338898942037816351721707145293368649993761414719108194678775865606462254505076958045140511904203678211165481909541824211689187349290635835987786449845731384079387026479318757591932508900578981415603049010917220824867585243306689954736329758804733106558061144355403729617864861418201122281157572025393269029917123732621400356652876679943489078401735999374683150221671814281771259407169944157641500005242613515683363140164220669492398229434465414148482701771401940797606608079467930157232713457659578322466645622304609538817841736817075710841452246234524633773374418203075267829564465762445796071275403455689551273034752047995938663918455635537513705728092585049136230305284903051001321234862577704354195621817766178003156095892146905158127350262894471469279731797177175425799269217147363390334153719289374864922093010546608181836913257366670296507413571515253075819764847648583054681821685769183577666397193930142016128349256890449348776720552381139692871721444979153633876211611497234099280564858863346415116297307192799522049550293108589340382970995481534568760384355093005403236945167088101685021157436323376745951522138541962045302519459479905089268448686874574843674866966574101365891259465795663312448579874304102707170302537613247547512048557929004309512233361824044257054956721681263376999607151429998123616577348873895844258853817798523451624735620296118290131035746790157068962880912683436744103102777734757729733997429892859085931673316659157586012594820804157199656740019003203770938937589504115385663887120327782141372838150935407374976746222480475156265904421436174200109685107098034945887895178065990586615294723880080596021497441682264921044173131691340066713493374208763930991698730553731421320387796097835358520375901205051762520113462593977701458192388435065843403989703160864856082798134019483804270887476416345904555070642716748252757047628048905315588535912784574224312714463582806139224592088102107711883392604511934740565376665768134385585077194325269437471853557761552039322428243907849270090164617632886475243454603435997563128406283161884680519948930029373219347055996534556030030276520824498952499449978034453207697589588671605317867896475250474172824519121456603060452733772766798786432537098560926782162644040101483537342905799734745375881091356852722969094291650573543113100581649753317388176525157502928962400770442516528107163266944778207141440972172959155568113151148721726178709647715060580109772948073453496121310444093145231061037742556209336916784751165686121755793505815644637231330217807510993867590288501942951291518715116374251454187348161188598007982862960827935168041328240937642295316046672577106888476174205457232574959345777619869838675182546737549418634416725644683779470320418253135117093472176651188126086879908110575419298262425635917514563181247642492515840385277776061606316082704042035900697704878048304898276148578154701689419293868528583802209363493661798968406804220111413635880603911453273414023010610453050177905408095963250618520456426826602326137425492866809949485477367369029906141260550416856376087757324965694241819565574661122634149448916145208323823659077294783618533124442248893215309846415953289475791836279382010331854648731651215232558587755843226200519214985530355835946340796103766044917912540097743573091931703240274065440296996152235140094152376832018964525908225324277742810193895020778233856274139778172893800224617524944642676874266694594947412121154466272311144669945396304264571359021323121910841954555333132534047925268944651359137107519488844476971063492024216989347654267624930523390693175986265843545605175155486770066947138345354765866727826083544048506462610516813943329894978987983933147972458697970269846256727625501461387435929378673901853706322699940188426045585111158604549150058720480028083416237698800723210490174913178552474816648026236728226597391656230922441768251312299622654051060849583205802255577897356438310015933546750866483823366029726335954000181331693697767888086776481861344807582014954231377228325600593181681032938008223158151553302876562749700731420172410389012246842652364126185314869460743966923081420603518873754388024210218983790381303420947858777610646536781796625082197490202614894076767373616374474244345221620996789163129570160652915389725265953275573843621168403542896883940567577611711429835382617132423320520494777736647647818439596667015543762435092224360207478875443943934791689429391161302891415582574682667588504136349194920566709015351040913590495023430973661791702724380379617834805203333593493957385580706671627087213699656326104220500367967703020803271365942772684594029834413660653323882941885134535056335963320218726736028108806011350921383792137339789606396622683566439657289759704546748145563242674535442325381968512772855785077090458794117817332453511007581497009198147940565277486450518560345365056041314779935290903649779333045062292870612087082758927673616347450348921352523862630884286517560873838592286447919432404016733925384218120570659920148465017140935714339609208040955042405921889184116418274870775555838544304601261277241621656800388205805653661015472976384070305477400509411501810405769619619510757672287736310906388712073388057271702395728274521252136669591194740599084518675693310500232643860406010126533450835890137797965747555580728721003215376809968988793633967168482459646695826941443340656025281746698716364123975542123316548963153717961611310481019492457165496951943618003824157151085305297005311660286419385117585962851019947581462675853276296109628445267692668885859772057997234916207364367811194751033059360392855998212723923730907907914189685086106524488918037560970088492719524215431638132659577193880757458189335539039774469930356866624082439273073478695268150338046210143476307483366676011937214334027584157030226402600325981735437223954175398346838333902986176072317855912475216299243906749145367586735097772948140237644612953832022507526744235790857500765994729192006063490549480498383352884320136798310338362365881214882100145212100809592756127713642171222155290687254569225846615401480176340527198266752051406690784579223968212075127136072664979279993107188103135031501512463460482331738060071384104771517138168445526294681822608545926195899091293235349320067929193529856292208957635417477326168082908284911516231154738091058635617827683796778640074960313827512052140523795850564802744522905339188059945604002797564317362610047184251171690049880884867939752279107052737687745753786962930074517895448612040385921422504323681081624925539366560515304400828577648893995844767106435786882934683221598869807441449686519690995509337063721992752789968828520495531851751946819782280976809580509275565204262588830185603739231873464082115447277876364820712092082119786763609627616243680994791360664017084103176110103178056316774881464340956113085853205445498194141978869672069163065132944940865062858873594562535349876124023648895379390967979327445379971292582810347824364656947579736978897931578860535026352287051130010286522791460836302542917480303664895707073871795031682837559897294038552508313353194329469685083503444793992161313901892602876377341665771713403971929370505319021643685096374892964356334286913196476018799400997743738390649984944842319194998670591904860644076185625301573153833350499637941712408215536502595639133029452924646310038670243856271471411193002525787427185838814793155158089251180569207107347588224537721027132242363980877163756612301693391543704918788281272531010370998172137587992580083057821763325166825234834756326467647375410166718918399526781042217371797554857506627063007622774472315084681340017314239502994561836675943072235102703557073581662084136599354001331405183029437731372510497546284164432137455503383279898870763812589943745205785047352181067922448824780800177791677441957205491883652156334639519252720242959089498447614829922829381157262638634738057888421511861270689417179429427073183355737441493553411996802073409953896706486765537263731880186477271803288055115150090737061322973797304179815354594079546896593185381964931017226245510578513280196413396044342329354088187699748238429261033427348837848292221169126788367002301949253914972633131528676607541002263900463208210111230437751685415405672844352046138128917810956869084996837736480540486162300828384558754131233044348098677653419370580705136391022301696538095504516582770654809213902349006269896692592677766421155189407029839612528209118688256488007129213215181713897317575082354998481382326021577890294543497301295834929480166265597379738775993958435709536249266515655896865734161065085248507753405862273078807637801910803464540135721275588666599659653450731676210872328171016280048174577290437330899435482225218042285308032324877032810575618140385798538201857651730668550220378544376416081557243816910109935020081255099770441699317685037846887651164308183704302254050324509341875136410734446429227649343992716464997996318541675492439441865226695059441891583864133285755782722146165457019957455691783636540741244241107413916600535569528495518858364969249747062038546696569777419261884154259817244618384007025097841037861047567238684206189752538751044415988739825162423054100635434139617707234440083400562522876443218775419237950101079005371985086614198077009280750185839674512747477453635803713674727452662403265493795275660162680178869924917102330259513583004628657645757720850322998251057942167398905887226001852367096573183261995807027772780991501628388667742224810599546159239041871690732689072246377725695475486361006189167205206953159612509110702504959404250076720719366036335359414923540663342349403363233113026564972053546600135328366919871702490541802155219334039050212858166931070090522509388449023347922138774171189298395706092908376648723847424306885702536714727880488200558527505901265774747079802724528371614198460357384294898738597968839291593892681005552994476922844277609651075769268514387328983078546938586838714474415239844367801288897716449070157138320923785262747513419970104141895000966570323764457800055774983390856116790156496692433979869473668972691526563312780039463354952184688297966732561904387557468300745931752176110154898207700648027333619381611934480524505349660831891095814921156164136656516817954457219699529734203941707575966416208763819061495267674927560408602995251197471383513072688663587338796588363428308232920940248264886011598706848566331254546681483408579229701735720217165247845860843735680891086122238442079525754563252904584567777295510081383591664609405495913223026806011014478620514675342504133214499017073883225908483528827503326312504173069276812941398775528372059374946698881084690072801480385784536996811921899753749421686754466078066111378586579071543063358406952057529308976071628446988683248986016946859404995264727705681758933541333770719961825988567310523787378562635600990624303265914286813225321472378253380955512570761083355443358245706824202122250829098383543390725759453620941747585917083908527385993375744510810848580726635232441748129471138272397345056048882939752281317915465525872962624668072937402107204484534847366256998713814721116190854719239881072654485867499213942980103705019582991304352184530653599821713653408391352181650883321047734621763080639027246580973289892021802263505174278536180062189458852383474177340013722578285570431786557923070945061176176396643852112072529134125929049400828827138773685878340563398120991745480229540984464454584827587281965681807797241917322782778335761816408328131640972285522069200036842436964035562935157347564077879375845090440056552826042768283859368918783529078941268713278335246380426612697038838766220940537312792697678242208545501782361778418901194205680841546012595304348584700690408392364472483254729603277125818142608926549769487185970966349972803808616709347379500371085754655747322925433409016504548880193472931660247816727143050471446085647231695408378315172003775921830287046368413881460547038993262453851045676444814413883760169958125394246499196677845234842630194488655949232869568600544437318396091407653994249660271513628390033622165589448955025249058352584740303502578651456943006300785204750453588359395610608970531129692618378154443216059105499542991625041607186799607480238475957197327743426495759098422620984183047895615228510879316992075069489323301734893130128573032738192252754791440377662443931921425474073229089430522115529596488687778873399499136458120671398801589948570654658574775367817522658762632465747295639305571392673388964462829251544741394955113716065225465385644379096539946824625704306503475600290512761475263393007313703668698998556207651515078204149617619922637263808270470725162984818775968492404091347804206748375661711586709910009534276882713175959449239326731276825260053572389652305451369568883159366562257992043900270725734903909102655292407480795738069345683038381849648118603422542310078978791169002245398568252202339934699128560047709178376726895395818226112675953150346684179299029446898814065808208600962165350850584790951773382463652595065570065738141956107716470274446082638995978868626697087156831812107942608797875445061454835571403583243307237788947966475640201653541018871947619711257118444816549385741003726895760328692261465627537102746880954322141131450891977113819426934964888633641660595192463702726619212499508006517314844154944836415130415349638374268356955303281506355009806635731664710037735410104857457352366337215961878923992726394107850779412387599729693889568225383098246052466315156101035892889760803166323609027966538070235328987262676337271635095013399440393764322126613103486413619078560522086766384483151515915893475761948884657576718271352668411017993685118547062892127636598041186091130725721500833404604764432408116571291779697613583680252904593463019028528669386671667731002126676396912393730846571657314520555927924742084907642021456115121481547786715157619569507472419082216000762189740280357418356590154457620516933679598699590266142221330098571091630479079269475499222146890927798042969668730927389506971107924290830492159255349288879933445266964395618511615627964743107923951972771146302901974115165788088923997745594339710575189500427365068055653883099391099486096361398389771653294721786146240878688187935836630417848244609944663227558892742532048764732158188721509827140824551125406549019980185190170757013535342841272900630452170819600485771438968176368838557166457567029462825753274590920213810862168278085677470801163414532564596786216250960403014396083959881323105837216364217735177360467798480007556005369800626428814903576028839868950442662332793132593224844588498449342618721469013799887151567325336311915981967545416576393402811849114818392379075012571224582109906796805315632249908890947838612690906728617743352703581075996938060606715598047711732617899185519599414108733300207737049673238381794113128951950140766792945250037156193828066085340236062032586279825702837735761714530987348996243479859662356591354603922576641209914562694107504569258746577068174381562949549685788151091271448313659423551050992714650398657970225169731117976869418587900040472701755745958799343573944145234829496256875476352834556645164539810249066458452535083889209456873872503917789506883849854883774126944406995644302951505369298790917167898194360343907327070453343401498182452139402468465953095598703077937007865095356542584682749738950323669623559756569038585727362552709352255560668369402331564182798183613773601737455860826417301064046418998247966686121879864245390316171061163370709627536146255552552428559153774951228921565342390562317359000521865130411034449322508516579099010260477410587790291639431194247481370162583518401191007074285881516935282400039267968386757970929872140270638681905145723516288754675521354375169467837516424804171234892056491560188745201906856025456513824862488143552197179647679377461385049515888263465930500973507622637016910225560333207581403837644015476631093826426891110951089631904489151857895108107015292498447185770223531599164083547298259776567701161418947015637960516288303371418910085942737257183599360416274236866554781161361701655063761200124339768891699912330827795527450927414477964377818367138381420055543673237410991349430929923854302969683351458067822925278611630652807510871273705020753652271000520772724310105045459711812103979627665799982615060535823484399531069207392778147059047422934101326964185533358270706835240543251819392261846291716538410666394958426768399216332124016173630013397704979385817510279499306695549526275165176169775899314190009668350838949445084881550306969126241439203522024973638558010324518689954231764628467917473992234383150201422552130058938889676469690754486663823475827978761077116483425656392549218613411045488251802275407815093768217746183897560544041540509634945109226843846797950701751839372366444026074472058092674083574035068982454962909504475974990137027457670303535574475011509867311173141354696675153612929777589991417492251040824920048779811187923500461336539356276079478582866701995891308793112193437494554604084045941467451932123196714147867969694213891216315699745241993044754444911280261490278340533717400370801364439036040733506645987109796334157014645897137751748317910212406598419885469243474177639940783201724480512122226460425554374059121474445077771225375748067228146820940685916710487474251378795812259916599476130346765756460425276567724573328962989224389397211115558519753821886815151683104700565834241771639817339082757903582418052301817239070943058219368120992884790786146551914651507152710087108648751004234826291320643014409169417568038338212242066635717500358874421777547945593294762865207948227314947745463047393268092691786879567026523479721901216855525582223129734680003150027602526767254457030940629001878972120038933626390536995995959837335653644571356972214056873335334525683614696161092318251132094108908969337932000015999170481388043997084617278125802848294422140958326528610504775810264607133084374736163337703005298310823456732190706909520035373123188322286610797232717802441353739616915569454399449380024288816321791010256341687553908084836417425662101770929830351354995833520153237711062545062843277968398370546352417873203289380666498682348364188937030141429560602268128933334665067635408438576132095217176973472162673248686774454322421418314982112386262242262561200092792219537590876078061204626403694433263209777252738592138478354043349792206524609145710318871850131011050741986945029246571397507656688602199951728051134224279821842147070476812169086694314055121984725542462150007536832391838608762914817600898219348706933310921646131779139374050402366037227370287807317283716873204290166257889922114117919978054793935411265741159207694852815327016505615668986323034553402269651711652030661049597569481558156784982742522348948553359607979376055151648437886979036519708773080656009566941801132493262234317985174008151676347386901046724447771424662063276584014953131836868310322536607803447546031388127894489124808836043318619258837792691773762290193312296739566111141642834002418547366166775742690450436233694076775483516834040049408958233873249189317030706194351398621021040134672374174879124068094998389714753588135761779853602250024747412659687448823376864503065086090885106349847296933934103166849172832037921743554276709849606963098487453525361193884857137159315157979382778358477385310403614194965817915072068534958705532745696145429359158538907452730979922045876235202586958719956043402423964500268594636238557410049155945593966111596012946113784139301318985475877512191841010453707010211237083787529271969087254029209602838315901997736611410701818709202702161159175650629552100359303732612716247123805807246040052425330343704559440893984260828017995746178792486191971772518780438908293026489829494367013810241430188776369108610608955550389196396448391970517069824036633351369719136400004119792229543396940499038593708272530846050243042786559328210233228250530251385535213599766088831235967119675879215457141113284232617759061846062448867599901031613617395517990865917110950999996008444393900732705287254566332797206287407597280108367873895058089016273402533703983626254762217731893307674490893984309742172491053274820333639036347711593724198389843740250881245696944765107366456478308351019375628212344700159574218778314932515873350789766700020650588522112528351276255698199537624205580485975088706737046039903137393253942275531918113477243874235897563882426598060237232771682043168350304326406455422381406854618470624798412401589015344730949377174290081664404257712418344029892697959430389582067578536520604910608270424269947483486281847953971926179646318968851652467344539873897537416416147852738938841426776211330309639245163036678838612152860585307287144313157372314049109947674292917082572520259261961634786623326345417552847108699423149857209861752785290963776361198540769684192970675479623106310456985377746637939900179461097807123249230172449060213569517877490757891838966243119664634812614304848239898662392093435420692477345327098484376605435714427185061953317167343767439009889541503691670358747659542837604735477423942694454224412763957100898170451831977276761655137244796304655563805431315043953917737080285952798350203831395657537925750737676448109824638999718859668411395831308755701315973217486592444765900443306276441773457931867901416986662339313770332685700884478242997090601904847456030752769561793324093097338551210009730332949252785175742528613557730951736964758094076499979802378861314034338381052356206468114653424204433674186579998354956792703136426909915927861074029687323756674485427178059227365474701964122411315153122018321764935284792039147706600878789734620410910642350355756823983337339149271141918446480103263081467542063423777649793475115658701025241302313119809408964353184003671467447341904379539360141713797827195416727341364027766036709823510239802712892927616977919011869086771261767693018238728442112100933246907244578432284141680576416911734890462956822004072563323546657088340433436671309243284404711396768551838713795432214709209667089035430714105682958351738095776748669314935915343467500403381317402270910844701249701953311324488126436113076816264280804575645096445995619544259846927138018361415360368385407252469228942819382413364880643111643917382089158604653244548901567014122255248803298987057086991034296029391465031502789769770855973565067003277455384630395882866233303213360093006942227083849157103589294849811580101942954677586764352607084534352776535843319332525509431639554281523831788393920452413486682830611761079493114733502461846201833376597994668111624115486924878004406282611632997523364990131824179859476157626820053211507922834396762034081256687837569708094552088133398193696636922489348784088768408381032509541842153507972219162716532284621957317097410259256157084215177467897753987329403385154561221604979593889924066344472289516424848585393464910194593199884818675602736034042346102015237006004874506311141244106651852049918002506981079568650795408772899201713742182635051573998806395368879144062526073979955855536225928879858856120404656981668086899532787562312390723550285059773545788180920967215611301367754696707458617038422648282562111049455384600475421970820932918094609583080265722979352122846197267816203137296037092300779985441648460698464036341308598718416420870620078824848411584088240758495647908142341218011899750713426960516763393051143228261658209065951562600185234770757514811765884559219096992112590789265209345762801965179445292660852481922457105706025138802751738968977368212429227000846196533760882990927469036256863670992814766048039506037203258051267025393855069448859680684624623705635087546977551262993486149487516457819489123485554935544921080535270654161857281547935841580712527348763054051248533187973010344056986259333314050503404612063271815560178604325736080782481357199742946136260039285693123661678863704424958354345373035943875455009999872228490114867018414055477374575356576507065225713634197386092385609039406586167487617596861913713871713875579130983067875788939022309079372308495268062894173451049489657968307916968037616142149845720671407703877585320872124107887981644746894537539954020102700594575623252175457526755853010369614676950084298494981133320149301848118228129377361286627462630752334566175584942284219666006833759076214569001196729048580322776903972786126446718427655359383497697016096339425537132987437650677334897236632633890323573558133150198455189330137792618420339869066543429241660367269697469434450338420706853210455967764301557095936753930814290361129909293719177947728108594027024583500488647621982016579620498410633264771308257405339470612956348539313463070518001566244677457688106385799879456254771662406223295969876177837499787282365707210066101161744000585003029056793228771711172161246030328136162330104680413190192998568695097323120465845390179646397353514288750725116813555058336732841259166803071978544357296132357787707536635016714582038404042371309809992723180142328363438773824248593708294297019357370221846267831394907306349141151463893004075973710777866480994464575947551877751284969657774461806476274493422835727306207639621752783153685636059731061134447030038298328733384147759001905166960592006062927202923210925628725868788629127112306183483233847481617707292902478578174119586446410786449493324850415459160772462642986971705293235299555078843143863695546288822415357471311842824772446488472039252737360470193490681005267847062876537643444035879230118373288292263086679443022913256667926677732544151663598826875305745526424775609078384155781882165945378343215266426295985287520766492557521728108503446048880848397351579923738145718850110449908866088753621956478709420797971523831217236768720308364452806561208297837713724257703186570602210687142741787390328994807459381205155100469009094820127210200483599411271048385354676329383164079761968324445568314408034821890623791689435449500789308249041502762708516885565631766741672757432105096144735664508032136399060262744688003769473273465068189084020278582240585735827004100352744577555917123640715948160326254399007469100559871536967498692359054667429153755014472123768508607562436378538216491421020022752912468030038974920428272542012057150955506998633521577641983444573293725664833071032454782840796287182602234300355680769247273519919754398648094515350658200029626083145184163157351714875371128794600435035697711827393865866636903889647217986302283092854013381014467991915730156258351309135363231793841791799522986063274522174821351650178197658044185551343142386362424570595884916656784249237051620156726519200205060304714879478882392641815989486045505436442553636280644100531460887258456002454772413778260846016886526710813060085487791266615923000001115231098442452853600345975749439615998720115204727181565670386547310419869509085050051678196060822784811493382414404632753324321959271393513953678723870115326108038282523699960861768998046217191653535319647980646626015918935503975529704849649129477458812202333434771486654139806787971146687235144275975335629266941524575748562870132672939149211157040951592736765872326832035328343288963054816532750690288850389633372452453229717520678720047278995951568518172399861217046905791064403362310781416757053255204316002703170002010113362334178885796305432160374805322652708816735489748516631134884931060688048464564654179490374797684110230041207492154928895575735537335488624855248903875014333220272619988406275742566758991694193189755040398433738356645916852239084835219332446258429946012608749441353967644598132213911041111772850004396147349224481952847226752681491634772921242398562290475813144601037178300484390903929467192890935403256379500546959642374764978023288134563336629429451269358380265305354845919213148344270629452742177977170649186969355326848445503681134191339734197037586258962656377132511197901624939127257726028255485315080431268687994538604489188221198307262297054555518612149193704990771993152757579531279787344448668014319993197935443183007905317648451272599623504137360128789030464055557224861194847845205126158833841618985002634265785550230310434539459695397622043345625161127996012875866766993512897713471374779174123760666877029283621521201680951227061766448556409549965835585066395106577630860903167356220354033444382386520740408815016440047678011346108874042731094982872728296418325816989096730614086512590302983103057887873228311077753337862522074925243238733310899908225943939887073910627389815983069833435393250508708317488775637153998319296698787754882651070868736931941588837370846041692417671834529581291927117185694897734566870805441440367771620177824262883389876171723857698562094016108208855707854566862461000712748241099977281441887454270039902601329416044131247016278523982353493665805596569844494492438100806952606640620996559924474728294833316132359714910156874314792873330108702456176687535818041119850418232038340672884370480916122351951220290389361621924387576228686005792350681035331160444434806914973835217185636794933197420610368506143800602343355778567479204867744135077135344732874284463345777763982218918917609108281629040100886401074779695259945444031926509653054116028948874841666913581451543521087709236408843061500769985213343426983180189493814482077327299158356416161883999701227816914600656154096555320947804256940786756922500386738803937021334725044123821436833245163209178315229677339503919236235977587846859802431432862066895319703898167506251979143634986513113736549275975335425774157409958210529792172129896047891279175542827352877872327391692339003409634878739234993835800947502657626333419697961412311472249508021662692948960805933844163899948810451209164797781296379691699821184269741816423877009157381059581359873459918694643180119879762592663897017684724313466869789182265321273863287685162403276809759701457487800603713276252972340216753178420420488252583869746477663798063091017474918237908335012754712338656872154845946809440368946045770502281912155345685768612081887465075891632971171164548430337471780062466963893244350401311325014873214142894857975009010275971877039044034231964120563618654630922540572443214726233599704133414884494114964596433267214932933825395208372911298856074976669989374319212031908619637154000211176231377895464845594776731989539149129416132686825898335738611089602046668504918886112554123974690667160105213548080457033852990277288846437950006434003210827505047714274992875179215974086886901343858424885450334286336395597252660712975923598017882594453712345860712678763458523938239199074127267917532336195666580380702016580005348079598142016296398071659987126026196747272999379285021565695099517853020435987822436919460155070731819408213288093649384444307659739018462095395643322391200849195467644193887385325301493649737488121018462432387953173034045771811746887709886463071440613839590184090773658380321583342710181491947022066042507263325656565111177765339205740282562477751808828047942077177847457355079751101218981062496143661848818193158180942962262864997269383454259537104742646355586983168234755058262097707695901021617460998653094335363367661339985390630019563608934594437412327784255085606467786781881830440446015121554025605611735098848932373726436809890379551744503948306534533831662380927190646592257058192774787482567110730526917679762423119582536947840423433659741804243630995223291182070277565493249438148497455501290221541360815546936179924406685902879998141758958641973435492376516307788967075656829528834687378548060640707351256257267757075751552837928660847591886993551578622293079144199940805967035521049010958556197627653685204197900385609278228648700745065347453888602774932422633546240097475251776002083553942575758295623263471099804557460504871016125417968154625550430405881677748555520010776490620736047707427354972603883904936155358151830062311609447755373303037993898703381697397970287869810366726303764726788539638096885069006711280860319133653622726888790281803646801673302024561407098217506252156907469744394162080517617507600640041679325671804499739122590739759170251390227608760863696801399895300879308749762874755066505866683512143084306090257269078207389158443619766772629303973001256511263499404187356350766688542298921754500665211528625517928760956575352647454826730415445319480792893368530014518220983700608717414309939173052318593390721890695556405791007348154348191406832217211882782316849099898372570848010213076588566472993058896838278989175823795451034342149657715908948459272571546216329714034686037303783233343195680067168263137618555432217541148299499969804025827290821880841324385243364999331571707953670630841687028137622512079040984386077576701429340994501710325454397525858844576792233045036760376795477497237854353976727127742392187611583314425755019310591479004063329313895954680442837759627687738767867103989653367764988381894598026659079825103299716479013789578812873497822929249316940101882964132407685580185198117662225733687994712777411569564377499418084035763677527857679636932863434980609035603501299384230920575112162776088375750554362408382014021837720293548587930588588244359114631096719023144863351763373234670071981532977835010845149158301098455300536733781231831641419747002458351463381565748861708209582115573943282037011282009573357257269446350964795808021044148456404129487640304331088639231911737829989998440409781976597326522777089195455881609037893422487541498053638456832789388738531719246335677839120676587298820520126984590128379049749429018110117968896566418120600249668135629218772582513289311650282188323170638189130181897427126406239765759766249316055849035816069296437725510952314036627960602494685941107848194005847880536328084093139424497725158112031165139563228693166256743334189123433498569618462259116655337119288411089112093472434307523123884795288881588230896478558735602449337530637328540140640570907989975970094430521898657225488689209985696605515924124365782660173890081268416993861621871441564619566009099884531258606042293326411841825129132682352255612799317111695883969379367347413852790002101381553698818373901664801757268020122228308038349821745224403622394118611729146722836705573358261466347826785637165453193539013254683603232353786226796645076085802813951305969341938902335285078981033327888141878042461518240026517794152067015780739355288479543350450061775899842001618767646792419223162009660836784193945947997522943370610906804155750817638389143595196952655502222345760043889632779103674179655322139110175660240017357849160096034986494693350537634397929247879888169620238281774092184972927464118120015468270942547997303694680100437550329607460971201091617981972403614956386275949419155713075338372754723522316765950144177481791949221933850605270878197489387779444596531517859050159006276148104869059864195683667762168256567173055552676730482566630632992370964827471383385176061936771753558325337738267482780023153954807124829707845310526590440834617368624962536930785889161699482155252080266391738240355459969603383795973599231230743830355661704805887658959838142873349021311327761646428123859682458228100367629533600051419239183371194528541811508658128657668723118614397646730948139190267014988229426923595298322311189264945938314080696830967436848829334333329989049348521515942820633865671364564009489611722678081882280413340027117970325481909519866393648605603669494878654543421280367335878513645734045069609123018560069735594843367512590570441234328255150285996879055273127372725980533726001488171359505243357094718652602747593986359192396489195816742210094238493811095588295591256939332748823000381378600824927261516759457664611021608774232221050920218579505960537801867342236427139140062243002131829897589474247484199366894412009218351349022416904491966201488703274850362062022283406736543749906285494406895217931884503213078012890182728668424565728576802158887536381909912104240289161367163144941686075567694191943806319196589980345835650215113546822567081171773576185336247280501355234675714102150775742004314094184969832959103809523246982042385004331840319160341809794808910678289516872767194017808060703828339065252667559182172092365323883560913432758967085274760895296596519947130366936589338705172152984584170303805609641901104959117530216168966399801743939605997448909396630690937777450109689504046073013911028692435843912888001914924276905127093770949434610739137085819301114547077658600201533714408569972082597916890937493715857441952734295785179173046777185513757492156557918452473302815030479406169913802633939705725797847999741373932903337123499862403010685863095917301794501406074374739268657067559694485896081150309528648104996170191329503304431116677084391937999261696550358355765601033360414539525516771625242375974599270120704564576805401688116296160403648857365130593524679674501234573609993806867473482140240221633879763762748699070657441870364304526572971433920950475720168112393139525527660363225304455234151344780096010202039825132071577638923764933143542468765865943172415917708214047877259015233692035939674954292692234877740756545339603866149428996584090685431559135916000726183778572663613470164709976129088583404794384751487050432257084415845742307389833891665179992363986934699967713278841223200208372292351466074112505935416648322123671049568171276307428016261840619500052764456760160268405396487022604323063734831271212899430967052848296496431053638327269049138481988135900633691822379380889839806564950914485006987253970234761407523865273242805340473321485046000576238480961767569006322235979098677351761939635694151781604792088497714128590735537008332568402423439779611674470594308243781917078682685450171354930123986918227669150710523803880355493681947495923875792406842351655868232328417530917698081742789266961917809361940546769947488818931183882522545636676606368363139429330414020467063450854448291828466420292825789682230358327794642470641300221746894751017928308877167877700398778015747665922253773786999579516597616103772055468996642447507627702206386251338373181397696501367342539367844303105272044329818158611753247321876566277749209021428983834448368680024097654699827295760108716310037008254765809058687417908559153372272423489966978572012578775619677353872277821016460971711666046576543149786864160482294064942767396593268252860147623062123550386948758986505301982587062145367553168744573820139006420251072592230209594462034427680282708069726034021702871538335358157258612830542051666820287626372695053715184860201235340307742443808247117998140639672052178723566882283751822135266906349748561444868881803499150000273443592767680623222879572590190979761211708456897559161753115976706031099476171249091150853913657671447855483615412496955418058764947153731284107235772635353828351998486173569143288772088118492999555558017872804949904269650136121824866619497110025899958210482318449944399878687594952299974658491505970382444819050995107989581928450318656524645046803568443571549703353233210010348196137343962583380228398501833576026811426981543689465889900644987797167641400284477619588059970583492161033616584805329147695580873148525141509770037417649303228502343580987306519712666929037749441721808393133999060899376808802731654371201878101513434175456598413170898247834893718250060752020524142507637494801500062608215172506733772765953378056578759981492193682200142533257036597256144460425367367407725404484901627853766242235412573653307429597479569526692827470701696484380782473822714865920306875553407603705721462345393179034163185024968231395197393775125485485677746058620727539822733399930236968786042608792979717082726264246150392836639055238655643624243320188633576829405234271358183735625076202184405774858749916900057618096163528266344778959517604794629745254938821459467991503335983625271097733103087076107432307521369193280912250832773744067372797768458793855534065105214843271665457620727021543111170629002511273692534191564098795492695414883435520740464767133797651950782142820871840632988000714967454586336725567310581553810142796470906322503478943906081938181745913133738383913201126311409822442109541491645205992522456609443568705203482936644292260159545806079263608870441915299183898286030494087074725379789629068277179544702345158904078223549072754355160262318681151492062445099511877401462464856411650527831387504609873935553491405091462667484872995183967882654966342818167542265492784867387514801915490551115770020357602652343107699094800481808674661115199016584279008797937621505172878057916784392314390925543026446710036076905621425543264433680667195883036642627663571382273209908263907151844831726587819910855830078691691497796698315416974534093586954724311430786193012263930192377236226366880969326405974073141284206538635779669738743528352929547670713912788113759779396387196766638725371709861708380526301875528934189896537961103607139693827017611080473883984812486541416512418343138829933519050744764049527779173642417012421825993416296278374382626933815865730495196152287663859284061445017767644355912648541755364933388134742777431663768905703129738958187887499702121219582218535599685113656379168167108085739472677071267481745658801650063208975230383722548302386495759811604208781355413748863960781964038926537490629569439790808089251145693775905842929281046118415871785154498198093614531960526848440855199606628758377207361862820206472170050374065761728868242485797498606519605070522991124821554942303768998703777291819019813439782780385538553477910879404617913204336372265787684638647902221341916017573481669228686242173213851056285041672917832148011082074539533368125419148488523881780322580836367301432215213212281375731221260948922013942473483509303358778190406297388999528278415362219003846614442438057760437141646103993641274515829446888695402440223966396459693335682851205224261660907911674365693719299682325367811066609064906739138612328965803244791172292043459993646777496477658887246854978767995940045436401236263761093894922176996398220310482622847174234124327914002647708488593388562994926292133968556011530396141419133081532543039127955857749009065607425237063183410678037778543578387174838838860776422934128543012671205161040551516393301983446567554931917647912925055227520105144704033031452567335312767805630537488952645215403187827203786793999238340351121383811380955087193645766093817374705672727509605773669923209201545884863476736878453744017622906730013497620898843623608488114765430033340355556656196645497138732665825258128994769378634434820570937324464537579305522127257685273089124249510882001956900434391317650313747262052888489394060512009145455836494605944412017910826148277331403950310839325954374316910905493974098321751109348100338328733873276269212714571745802760868545592130075843594985552461502345497705364829558830859810185081196428696268383910440694304351008999554525784434258663869741630579577065595986942725686614344990587277798581300979634523741344614135894588935430250450898716438644041310252300851895029016375457203504543430959054267934666413582121558032510644909903695727367882358340079411067769837539639770283784644969533677347285712837704674985119073555536333646007392230095845429744628231804855036331781937636639198824093864538167043122242150745551010410948208402601281810708169073334869923628621402262980808810403635505363237922506985996480366284692911989154546052514835052715526904681478325042477865352201489388897342415436137208753729420367677983973842443245871025829511995085426126074900525914694418175413302670709111223896268176232473778962605322321210430138508529435372656877702108551571551939121890615043504069857487429733035397927387555103565582888777470697387058134296952487068490838702534138032931026153418139736655716661854640993823808950079440803644321213915017399003785845285367922729547539359967473314439865247087932270720341010754028124885481231016246983002380387824918995151386790912717492308098101810652160086244912642551118778288786157939565592533096529213278481067188566657121211205942039844407350229705261366481725554110027142597279226302772549139512277027640143034572229179704305913974120577102765251795268605378590511849641946442859152490944694717701112835360278111087214229033093074260582459731040485388139527693184786647278087069704089147608159069547729911638420784132733896879544303900392229715870135822503963650327745024237041385724125865504255562744133955053720846728098798360997678457379966960433852677499824607944456715410442616645214433214143012509938900563963381794011397071997254743999980449365909311264502669325835470537705465269959436173560510668883566223600460140317563739504416088425398275620408626751887030071122760785768968037137359130665439124855773023700062244385333756527226065914328158521399461982676641588248892329159286833750875682924654468185986626650450857902201261224751440963893241916389129096305683209735991405960325365026319376719780029659005462964911863087749514792303129283148561574284409131663749599524258201671013425711385203261667755347356094827876253574283358725905290269973182676498073377376802256315061318793698552098885345392953209327142904827273017843494375003977565988534902711316504646283019391413040368320207898338440995627282732187215614073494866303124761466755456049514672612215920983555852452913990113595211768917928790591232976148916016509015502731864098848706509741738583758910933800719115435066641386608020365644057111626094795991235918522163991874345732950702299958917210811226514718080706739658318735703128269450430695639669366324474040529111801363557930050021815450535685639579098540738837335434218855785227573777502541751031355244082191796251806559624651644702519154198206753796195004490417272775516242948055544820490934264877081803373160690806576289624961169876286874681454671217685076647786155925158749018615541061044083196948510276342508658226389332251258171253820100259121438083841109183188239483933744416872511201964138044047697103954848014544706233318211462261354876255182604902430915140763792608486831412425264131870447992237408725568900070381605178463794815280171674792510572770634593367027439241787589015073825787584558183832764471881129996410357061956030947192391654685365043358606731390081534179678301838288083621869375950334866649236010000377699339537675646100669415353475316788447834971556110304904532193884639119610754590848706351721641955148795396713925528427646962988363270934978883651827009113346427115613087550826074870897654094767716732628956917662735753497287657795682344041069176707563247635124550157409339225978820669764700201537647542834699451311308579153089263730297191117697775813133564839415559903338466911564049260759127992852010300303275683258178527772388011933086912681058970239698026690955177477302441566268635400440626969415081340245288389987879361648832883972662018563757547126038912568383764366995206402353684994257263295366204601205920084302408532059638526477930413929225208551326871603535025476100273133184143767823053813706481275282683916424758753333718842394903057404242890506750497063245961293498533864162581869137192244849241203819572376468089576607929654839504153062549613248160215694949743058175926628470288435269702462819108767981753944827650851813869077961195249150376062055158700433435364781456440711583418344497341954837830505284097135396287050815230511381865489067551402358851173657677611198663010979466057725980320162572357280610933268667512450863754094587961317527998447780637696093450759275451287824073007471168964791985993922618014419496771744225279371194204232469959516901533257252349597377503891461230516622185232007332110689771400289370364513405951658881807840033707792086461308214115344790598226471191042508805925939414700193650616014457236906006630047440512112418851984899070130008394503272523499313157202639197051364496941153813134740758067770343804729095020010078328218729310366798115428150543563857487021383897540758761563361684615770589548676853227495896638026765647844116884824606099896358710565804904247938322327881147053011629167849284472540207087898384645714890274947679840407099724835214966085059073016390309339099069392931067470051504138173944882462686274841454291077050108461471864105188146899002329673841486158207134360015143552257991807095697714912437633330618382532475090156183702216715853665113293659298350352225153565318532956294379461525314297256177677565918653890442905363138155696807027072771355420131150789619276638680963151513723374056455619195825426668310200442097852489426467932997399303434564245942182599653348541249471232557681284913856912926864451294523876618447351681316462994638331027791179653320005574884560862481465320330616707786638938383985519001437913804552299944121187621506356125998806136341190572331138785626960707437347306259143945039671984094373492090941095959716119547906150334664934977009173772686771901309801351302545818597432417253642457943963867118972800932457383986179167033618497612638191473123787065510162538309226530784563806390089947914459655204345342851518347323477711746864079468371433732889668054221124951745616585587704208014737265421699489372027727772869125357747732082824531349507137632312749940081691344618282943056037778909689008718110423522160790732928501092497057557369229750663895730576904152458571828115149258404616740645949415097067280640720036321620029572759802754656550931001060392376535311564732724335577454067496183042803612944979319233889835657821419000540778478381782185064816847865940107189932035071646425957176297507701998935189263125647110927743334050891055082931616390003237911147099427769686671739792289045436654260485073009295363678295553498322282058390545666852627537206008360487858285718920699835205087151779201761148376939988306266500138734364619569873768190682520620856764643859013849882500426257295572999729221268913504556216296633449513905799507810524935311981744300189459644379570493725241351407601519905473291797235879013152977348584778581112275480558714158454013041679035045927921037305880371779388306364484393609085794017954453530428771802746857293095462588564002917999145633326567924409270962532005946394185993812874895547841108002604138375793239770006691802221454995132535213095346625665869578299716115113714946796975742775574033161674150319863843765538931937331347615041563345048970083689235451646443542691988222873228366241488727784679728224961051123111879794481493313180041700909259982332276265892827650061359302418882081900917118506858423523520505761005804711158159727420455731839149071067498512555234688552465620068279798884978460927686252454255982766123748202076922428092698128163882521076720371903414636673944938411250316003449587431861703606624557011974453050275434592275252159139977290014028155859082228419046751640067129106339315896672372368521635775224769426655824119751214969148356204524345531430333836755513273114419728878088017409760172424725416439279976548826487946980889929734708621440811494800591069411603087209404785462810783708948039228305774063526096596976462553060825062608024954369609335649011091429761006629596811381628010261057003416196172280044825091140870334369954464280629949909961991059501708030693008948486669040787580347343596790660011025985467760119406725166540594362708345890061881873723013074755918428763126450266425598472880814015810444967844797129643730524154366092387293623657130973522768201850863429200442476279726477895566225493786132108394881063213405447981882872364250124759258577975859466328577984783860605681021356353528678937316786413034281723723146113127498127270231019650296469773313041325056792170752797523154870498470521463416208407958111666608643349013761669962121081982475845334988738145786233440606107835043855697218358655180851333478617028349229290725573509369268338721384077598004097882950535261815076263936757301649281601758531776417379779928474410577620157166895246363431074460096700832633241651183263630239442204213810708009851202803041204610486163032690671207604851648995142530893340475741992725324778845955424379650711339023585655629650530558892817490126727786345504930249199793029420741569235495195029875170201157383926269578348677857445717474149537996440421926723939955810411751138101098729067917712712388319638333481562788580278123892678597600773605229183580681922411663657457574494346706383270647148372531881674951623712060860054836528353258646207944661067957732055332222777656209698732657878078594917384588744393212837612159982164754852576266313962562751695716891443827038424630572547354536071749596150472116562110955120671314439921632373196252222012357651964093408889296753301059371464637731819726985963008928169655403134767759838003073373916853062254370429078543241430188258119691837986360963908541551200047233479897005385098039242334838782718379569270565994105442343882649108834774383956955708819350156746932622957883502885509808948464257566993571842678544801849194333982988231710735308028871481625169490704596026755667291464838182220183719569648420848950370834497991181365411172160620540106060386829253433099716808693279260067050126539434254702094603889336559483927126343034517097371114194885633534725984369828982311416015549019959299717351351109073963936933985490905765990022237361892530086298083001665705687488878765526384987776612900677300516675605134238605321442587893660449042625497453950117078321786951806100637461440637829822348339649972702693879729958262094635879461698032017151357361570767883218432779644020516037904272939838050337323210443338582095467670814174099462879837483532205980292734507537162405742624687183036584308034995330919257193275072917647115308009140303406517137666687791903697701849198829160777190601929453199564041417038170580751599402417252619984553306164108677541678248135145130127767322714132255316789664582615139267338276222931463295960267882456772756887471779904201654816593550428567505923287716701201074554629237337098763672407351070382349604324942691390692623001909365953982834626530206788297768354144035488842616221428586005553237569420325071370041129564658364583725289220854182753924951452481343301974522979731161265432589614686160368715699595947901145607827577512711939780300769282965177394118399080261165494186297410599622706003867368046732277797170192961667966793597911726675556767901644789631900063555383715132311822387691428170816200768050769803815576996553370814685868868991297307734040428434813006702977896608678561982192477869557757010863837098186189067072575425326245376347050631164792452278087392462179199431709478182617513339364324577267169729809265823356320358763195353102899698197454282550380411060029157090134969677803548222481024671035067112230371414508835373047895736550559897518475713809834945903515200533355819692728962719411090888582117131320774854355392934636857531794221125091972391137414617378004910184327384011632793918939570232476634124351788554659374714793235683850025917609812002035858059824664042341487417596929345256576289382180383783496818698319702619769744055509585024775033963486563256393986239946869191821364212628184945358539402372125720702483110432612826988912251511698434408038504358685593044936384380721657032753895336223495850551309268358663393325955132203086825773229196720650724591122437871955976727435709647789499909470348585579342909516428848315235059104953509757662757130800628699634849453451698160852777352106978709157316093847109503121400229150780065582440072849943485990905128051596708823536650925720300372528650836225115490907606430727247937134110590806208168460297680723600936109124851879008372776878629463060406125456054845730326097340655378524070786446615953220637436557754383402244100539217769449124692901259078860985005617602703444308112919327785747893315864156185090376732912451669930938687972599256217395967611156714363262878414254803867823299985106552186724951285337744768972517393774013634479520433410845567343223708436327078526104954630897993457900304563774374998144359944377168133856973874647140669288179699950784939736202568273603299589657751410561653822703568587582237842101950818415783003783386994071594492971224867575207183789365858953353507448030374867377255734373863867381133228390107219112104743613741307077347702480619509336447909927514053197399466604209345481633523082835031620737487472604544212872894285691129787164955118701009772729232232466678787740592145884785190782344855421436159226325698918455372180879633861061238245304586215984968106162027707753602030830900787990027964801971126598194190890282023917877994080812994576001048134907914788662692070156146050628277896497741778331253174983058816121610184432470360773554927330726628882627903847040828936386398869826364916933306104885188401515183338226274427258035487671541681190548176163974297474056135857773777288725239235341510320836363039221718630989113967231713329016416909580282494658313714005384982982148007984224440315021978779749454759668412131823367525633237062970028042584238372633710723902016389266588059825254105757015232952010772833868387969040536450474378666020752006886891860872322803637210059564180781407458488138221906294726802586136408541257980911747854260129291539184010588049246011133080585661148240808068588740462354214990538385449095053345146010480757451591149459094481437662342065774859105258364412292044688650196913470248286562138865697302672500324975435771875358094236454661854615071786005500759028998311345909383036975139665232507017606727921152055166471229511786499417629433170266167181007564938629885378948729006092542285032145670983988848186781467126878926058911484805144914541925897704011404583208767912099591242524401119567819821569093270651883632727554828041005383643427677909756691209245724342161678334175245154820429300798774514975418757073951110597453612130968692861511980438810486945304081474437890753362165618398043429858007071601926577247765597589083280693253775239379723493140945299861770887712657772860609657264980708360002661645880524164620166685702564552387847114801450902525886128470308190482338332860344323632683172168499664365813626998488060647179712256174365273394331668579329859215706215942548043777153139718344275580924549754365233157797541963468408312354352099494238625046687990453874689977414733816016801202520248812513404105033414599045168147905286119546724485090644498284022238651271322404943046380591424888899313750182737308088721165280317422183540630071844794360552414844687001992170332337116496204246035697371029679336168549838841229149645667922491597340039095766695485354551366252353364869664625616786142156903441472108818901384849911251248481271048029432397040181622026283335993868446374969213016307521935837662382487146020767933233487653686187988243958670931026844456092702378660943319670806801470370042752482573844848735544353448851024814573951564013510368469852364752460953247613676467118193030511532553503392135675318618653406631886496492386979221509761255543116504928807748540976604993179328986034457404896413905869888000084137561138810554014956867127746547307597121617022751426519954079273973433947952302228445025594692008211428993193931930697083854641253367491314161587041435316910107538199482014339220463748702671791500468301471300641547884131292960660318889310136488230823140086660542690400992644355689605284797378992777781965021385708372315108875637535211152029330216843244471966050310847789019033910267995275888189650638636193593147302855052153254625157452090780493616795904894745383118587637658708894162166359298907601107265689387157108719198493114356253152547923227778564101228070107735943151079951764421585897315698876880472731806881853352254889424902021441113519605019913074665426678783124489867092956380932142756747224416577254851598571902402846870885706413804311697855392106937197036189499234183595102269879750214760925913579815918529199569501330443300515410151352709457406304806162310072606240333012211474480176025569408497574656652736183097283436464142114627658959961991159615141945886795707338719517643352063823813510215346203578993825602247593322413110023904513507955843791531453242256323393391423649793483405995731400985976041138357161219605041284649632523037863304095274658631703667506439669003064368053927020378142533370061870469256160290491688568399691879121880254158686758297609831318942266612843895024880273421287160730770911011693831429156210454060332473460804160659073950295714940855085105086031690850458389225430563922824362861912331781280492623079383950010158343620107604438016445474822079670224580445759511555141691130974372343261279402651851743998897242431308646239693243373002655785569868513178649913841684936700388838891504401466354939016832193088804310967903677246762452728174936699379851582373111496838206763998020371578546574866433922806079690555032441833506474068665561017166060821045275023767980101877854765673356030112047864939381830539498807262289489922218334911665262746556311312674408804995605310029695561930452972815621397024516548279548269197239440308980801716974027960502256028951737754734488635340538933779191616648793552349185727832198639534818434483139557938546395039742614170222758211038561951076871128858002320010365431045328062839060836072981231384188069696392453507507638180690172866467733900100129411330028519833697226722983237326962385812426741870361616168490605066332752855751339917763256251529847786997553705883314061630075966167403079665014491470185971621803160301030418820694024865244107807417235399849919822990546454806578542084393749403148533376518099139383987187934710214596520266007458965978959283743863114740117390524629491140104644086019190851495029505869513217050138176587934871289312797790022529730410139804219077809443304862306531865982368641421121652273065069705490220793516126125009797282771461586901910897924826552378994200203696358298168434649241580083140195040763141722419142109289056862650837648854725295153566420627631896425084781577797656048213436079934538195370612059183367840125064566396897900686827167797502866599263925993665840075773052502819081369688475388744217693806221798684791836689222012095352943856863251067024378374383053809346864339317823214302078467763793035015781091037704946647560872471370090553815687896930759026985989093249711436677140164005842847263021012884583112932320425488120000870163343860431195049903909237201165044695167034862269012645844738202113351019976064494107563244847530491200330522609034282186690542338650784557331765650652889788632704831759323370135852495007523741070657271640425453354831612451197535167036780858427513667021895386252483519783845981904653091398697190892375001538171711937086825639597047113069216680241430000736781242580168912895135562634661857291979214435257337363246271940030215805750144386814772450987391856844791980665781020241028393987267314460890208535949488303638535543131613094797346904149660217032160545587366954367353527832982399787277720339770623501285281906136336303058603961952544099057516201528721935777486452512965964836443673336265944347701685849863522348408806431207285606612931037877513137571460470471942574172558273871900670727356236041840617890257177658573100929085172161590102785718242093717096682959003705960121461587864912416576185279091232338924761160450500783164349112283529666401703859334775429828952244077740525051804698580650062949217750254246068852834382264333090660633546671531276361259136604672584849268330874650879659327583238931131403427763297864151230122896292631716075964413364393084023531277703572344777656030877100905100416731366998839816821026845377876142349165845184933937162481676789106118917128869194267923293168555078753311031889496819466963655234031463185820130108481850274983809703155472898474387313867566230420800360065137413044996713644298738213742650551677169038029362014456480390728791149097846811155370662226348428023887997816465366979324697105574016229208002542117000991863357347033308797893682750544502168917498250503836379503973640426491367667255926018507912803320338821610591954060180380013391974334831776847047598151473932260714974448358309133040893326095908241573379394551140577711708051096170907305859702752526818096217829021850283784448142313597870006650524916563696140700329087295310643632137406153408818242944470451625971296951105661583456424974985593427124291893687331727689416113108618411423492567051654275978522162910719858713569621356053031611713914914893685613290635319161636021723329177534126708273116284511172203143807791642760577058966198602480339044466847608301403766710987716199361792713628985013210399608793200974920428891801140977374593102695237054972878515469553078753296643848125225091875759144263821737267258665143519437488934260769298497453369163104203000065558273963083160817903069674974056767819749635553413153934776307900846399309050419589336380503198559019626936238188417835299074868411156615287057867311901970742718059572705537811850080240784155458044244846396080907043697933914627431161054783883425226181522146103303913059480069227332321175947134402667322304205199610600926098033967627917487082203620922003539448195481623685157590807190483513827408270050155926596020973913987546566248887133170788245715964272538261681537221236458985210679892539065317118495126163614995859512258134296141100431763168754500203024087181933176829591994742918729041927171249189153456012763041974301616780047227754974578280837721052873889574144668308317953927005372427852059378669385397388699226092592817874771560409688972158371005884843745819691090553747236647225992180224260779101933015771760787836456628844227675416938318324394425413658110452281329746889587418931406521116672796617179966425965437639181398447346006185666022608036204470772016073645996941066551619357390777793370140138212583334110382526813103382075722444718553315534317076426874040025642465069869163588338035665550150992098693571544266916251913909217945272651414754961715601002337149762392627663460180450226907169755499823828974723377618375033374423441178717181688125052432671237123194001383218314769787231086563943583240344839755801422755124073540971671644192022095382412662451800447670857914286254588396708677036180149161174557416356290652174829755820136731897881276790538956454810653439228366743917705891588879135842170169616333978862294435922891339097985832092040326133562326804374368141208658364170997521410228140037287551179597745848182984602954542005925705391827164252222953472956729739589681990213452376753817557634355006223118165854032363794776981238870427535859724460520693019640011056001757057471872389589752235193729741024558834497668107745788212874021320061520281385783759392664493616632330327839945799842136920653182417457812339305593737776635485680762746239285022740487555879386808324823365755916721610472674960426439028794404334019360795293028251026655944744587561692178511544642992882128180424234196880401535523083292360702895288476027926026669497094348197955849751887357947163510813485646457562291379465579118773288524492700992154307876847148955671826713493302964980266642851420006270199756813305979627685651719264768119160293003552681736027911016337693062202932658075468599134926395902922316828438692167943675409751981203001546091176377806106909372192538283940335000647249557910364761304427211983843062437094335980351313727853021178341183270917028161529183421603947481004250161063014267443375749565165076824103891849129245786649405627037273544499012131745522270985439736478811767042119532231400960752938084952101491061541090111086453123238393090579341421381769850809237593480556394385210656289842445836020194268234436044084878067901131631822837021349299503122427537040259070787773702089109770895973845237128151325358337687655286883694298948556302614917731914624139472193997571179713143943606847622159459549274751247902175770697448058179208991405925784567011753641753369704457726275149798330644020506402143023453378718071914996831808496825770479236223612270844093527899870887030362183281981613563349844568743270397982754481806793425421517067347833360238496817014137246911487322278426659562317222561290937519109517442119313000440712389163455549517151960800613711562915638650691171303987564326971603894669135653056390270874461170890915223503291377790587918539499096257217120609038169969131933637767334824033703081109138039446764498837345740101290402184791188125358806164931040132122190347484010950200931729166315664578812511469720459595705232043237727499050035082173999044375403080024665380287953078662343301155920753416436821173372800882271599472970184536570869079421488650353046081568357639996506878965488899402559654022138549293647811198230623772539050194278465037861502145367502621471544554699720609656752000590336290390882203150670525829995414657135837293130655305668462504862698732763215471960010562913713641722762809695316668354063902885689033136544368917577571727282752798924403423402671276106502889978343761655870133355988429040123894189329993383664799212896097471752818936138216721790286567677232028454369649456393283053965066387241471581232508927120113933646142326999836097316389069786913264173655400240996174220028326975602845861103216565474229481823647176431514790204320766524191160985856490951529222182863405475394013824682352403685412437274396470000197657940576863737099453106760393463557144785789212512748001994311929549357920554165992955967600906014884313430982232975650716579805015121087403040797715710648352028458855090633079799046498557957141777914446172390899934979616137130401781880282647129639136838978310913476776463460407885768712927146217523851139154604108827821707260048922823351220877312654705754104059701136723460173651416446633538461665155821295490202158171817899622041978004923985285107407727674087972223716898674627319895185655466441931610374687027776828029281014950035916198861077064693173643311501970657116178206371220856521318215981527739717186320921313684007257756736714851908554099855148142050578904159200852484379390378444921351023168271466349960952064160692702833508573320821898820961899825881305705070168541534184722327642679168688835907088227399482537549517367258694109549955940434212759144331618012895103609073354460359459585935166568316290798588969838916127881457471044755045856041240491743211835976892547022734153974077813272814437531360273083218962717407211030977297202190100991201060020535303910470051344695860078963413302768476404696651449539362730582335830808304999901541321552877363167858932886092707705903219674570100966077376116045435426053958166535617179768413453611898283948891998929387407174989888296706041889961560654958913151750431451354456268298932894542855125219583814478127620848412941763757408348831296701968348982975882946618045149036133974325756148207960013375700528627749758673826558975355592748546512661526670606904253234663286466500380974673138738006965591905818222828496774318725511127988407034023599219260428889046379228340449402448572746523594229834585231549183590783545050855619106108706110459667991486816288943280531236343533442900363393289830420020239193409536441641535437026701596722281114269343889176411832087681308312078229108302245388901956901076700830984425285347421324479979513637941779899124158996203125504606311971404437398244671068031963519790195440135957673346244885940708376179258371128192406516454015314888789384574990134827067707420081387220203446494398287290274553604584714742959301531192012998593784441286940823881079809900618703550366786022190829256812333772898141558338292595578268257997521000126639486804468538731648625571269619500143559851857463347807394704262192583139591092788750779251102485072473104810673663847644481498748948410090763845437805153968114182788709711362020514585318409150998553551899925048989973489206455639443040531041650682787162371671768704193682739665432374133069890336423431276971849620198825038357911191890495370001601837902388895723732648660240743452312102595584864877777971992026538999250419793081283450710051168251103137066516753175149486361613932077595587896493139041193846018836711610449575552916219459840645277363776082767326153445209955287935006355852213515548021478685651569155601566161962444217259070714469554553260420830860627397039481567743056094726702738152771280612874877702329922412931058543099812642629552717620049588639287577118928350277337975062784548555340678224353337857391679214326062719318437598830772225590136777081605682361107927329769082115297202584815458384251605664207146043860322804818160515216609008305234416690210316222935804372905705428348486937873797296851645975895567050316602965632557222766575955943971384247532734981816999091681981269559703896908657168319983663931952695488933097035829465824844519869319980574148791199920793545309185128822436963469341461407665648212649919451925695110180154846460383313324321955002598028495513821061812304548828907009090566457173093696368285859067538657081794658935906015943904356202393182366757723040195407957052968453250222184634689224159889371015534851635200706145648220685497093904251455995526097779638994723868898455968602003829727184512707191659328916082189152234677272596192210816062997418157443994965054081240897278110844353072531181223188012744401214921297555993559146629647787194007866581897105076559262814416484454966947182149923015502407748197623745096373516129994159891929807730641316341499967462751184112341807061397103073433055079802150245166606990262101551107461240913714778597752585097599977131490017986872524700021396273192413122438311796782501833053754543047122765453022794240027215268015382970411656230277062361904922725866758736764041286057125433851447894000751424049122551006752314096216871039274938719712935433245522644644017553217561972605735901446159084870113027122069961314524420529613895464079095743555968213191398662258148945198210949584418093722436057998835993283453175016267962613238726731828872274788610829408607325313748955534680508613946428653639725089742690279622855192873290839777158129606953654298884665907314141443824995238101092428851248957508065869206759237881767014300768067761577463797419369047749574484375720198438985280538744244012920035447036951987081768082777399054757550185880847455656640248156996198827087029315123207374723558682203981649612583364715209518713938430782530708494316933086852040315456247012964965351029829750019163827385486807823134026590558998876721036642217432442840109595905393053375378645777551827479501993697306152750283348692145026854485433229122101613869336427489903214661355391916375792116118722878923511293544861677114293725518385075825148758926376400063139655739784458193287048865956574145808097904247856137531179283890748054103382932691468616471594363586685014460571851818810904621971285343901278133605907517683524197658293057562592336837126693084864500993678291322006211736271065801311268456637272479644367831805801941429589090026406789970515843398929431533455152746303874192365898926719095884513176999871456118521828608993142408962941293749001144491955994240515811550372011239640373953366237917216790333185950657478580338431483858864266467374517794743891626211380518135092408606997038038390611150060824332230396792520138503429845267681330814890139377630522257122712542249479027884097205185197757373440766913329494164319303721689576121895682873243385288809063697871846762725520660671086701283929809052465544536007511442082163224264377033969037621777661588479262329863201449950897483307519354240805124235170418096925452985363705492148964994531074677055819580132258230413958784901540101344117648102555912989312266111688808221678746234740508770011453290740961881363199766318736762244669415390415575643844653768088517793230539184260603643227882866483931495009128131995286816510818366623626106487224580107266764991097291065049391096705825399287171403600048993667365920665130029018474659466476178040983769100231757480292368102928048299007550662574531876068673218930068152987356451682212180176577573607369296467252480608790207349609888454165155690949048511467082917926788432220254245545051266836889418082468905126631159411607693123801774887039189182368923589660064669083874862383800771217585432320550396001344570481184046744078681726380157528371364038099257487254286295473799673339206829150239950601466850257355744036618023071784343898923083542577610165261685835538726392309357151863880984462374696062109869019635511637205320080673516932253294172450537287562742597987857164419262227888624880853819492894164644271255108051592806021216623903059521197709295151243526799594232132650828626783929096995344520105569723825739998018894369163621598531429064145384534246659171396460890007626612751439810024531465652536370557990876661074994872200375242744680761161833039678504406197525932226986620647318042222330731909654651270022555881767237346129725225985521945146911421617843309607805239274417407692271150980674502909327927505818312697557407003961637293257779962012181329369578848139150843496089412786008926045570575715676896342309254633378204764311549116079165017953965754989415656323351030933776715230194929475167213528018215419298117618082013347162460658491782927179154816875958241095063899296009166796706905196172465505267989782281008473499307642443356668620636309890499264581753689521898412326820303125799219659695577475936840915871364507300725078835487277462102768713547180404236139063130669537146402951845961136165323337879164887371852382236754462407857372250966875289145474423728081584980065974228577413324769590818607675099566356584999971609911067706963068226052486678910034807514304608698982226145814375278968035298257424935672543250184496624999321646510374436575868594234922184185001358735670598815354156707914315581903709398855552341716351889935079688687065697442579121485483618756511482940962494627591861394137532196142540566107001473944819782720049087634175635625920570756447315247165455893370954364164164770779639211876395778010866941413209438142834760161527627312825285438910456228136155417403416764361389036494081169217175867827087378716409401546953139818354002736082958391018392157052801974086947670569514011224245665229413955928374427266229186161618965861590835851330660376042561607042945930755373941133385970170836087262078704511277136165773698676686892822037495008485041177671895765764509461063580219122086394216854687229420511662315264910098275248564217064209732603124152023001613163357457932214808850617323200921342176870787809708332508362213499727130293878345540724360818164085568209494726336773278059157144062403290450250030334636400634760440865640050971488652791349722179160955156450764186893105367560509458101677290853534128149825791284523601848644580495058360546746974044557242333732898904634586609118205837019765707975313526687685080723037409184681890437961332121578768007725556837096498538425036169292629583023826818630997642946719356568387826436784237995674570901599251638395526529562566695621216740555642105159575890622855101832887153930627801758078221330232403129111280542339211180423419210141803105927441229723168027089454303054566782639232876103066404436217325254356298789677221364189885090915166098262046755233948872160994714195920969074550248433980145381592518890615995206697917431223815888939558369815747002063374515896235082093558968556855962803112332702142586617025275911133619018119448842448438014916239698231995905817880891817254465424772520363230567855199178679885230944077899204261811732976430066018243099306093831606571250661699892756170113876408437676560270767789476218179885492104432349258639104723851373948352085339541702712664411449246078200509525759558562896534226505408391013749437427066012781245852284482204294032307703480195622590515219564579731959108553339962874153250211432678550726408683510136062469382387125162070379195492578659821541055510486985217981729607122821955631595892502180533921289977174150896463913117578424846879489464143193655163079417916467944108610323615234007233085573760909743259102868978788943347333411008660790916645395251230799057861405080859883249929973273277033753133383277822791484100106449943428438130129424998941602427695309195293849475689006212592858663867806304581086770617329446139343598285251320949941641217201525422067401612927302667972943685280623181112230639833001232070965662869145316624433333671777251720093976776449765410182571540820322877795977041109058683089566311541347057341761678950275030584741048641804982334194883599274040151242451419322106692165463643552668266324780767920465925508023938422658108965524599617218073163878150457044846916005312280143688659369652285381910275434827880511402485702600134187281545745142642879882722134316141600675177389857040400239466185157216766532526227144685958790756853849205490108029180777114959380192055890066180485689045285127075229330215646086989655903619147079878746980475275756538254434191341942716993061659039537461580759294317818031452468703546606349890815436847284247894466255407420451120125195923951225678009911505387816797516842138712536979683050784598728157263361638080828945838206132864460897196285878258643252398918408363367241152428019865397138431905685551417073410720755351759641700829870827965545064523109650119722925225634257061917206209093196361724962282987494301291258748067838460651114102410050461135762499767332127892579462523035998551545526477199877617917549628194073400486232357907861723130757639863590694845902578208451972565601910025940911170355037623269780481492049147242836102825394004371460783478389452771284996089200942817539600510796561750947985364330806445975274015735275958963356368400468688822608571438983494390021194606406941116725243784784468915006048565874323660694083021482743884025793370931924746141701334798804072051517686165542676218443418420378817183147787743824002270247568582434644518288134460827785380214652325034150541525996129515526349645242850381959677680054720185209338428114210045586677328931595394210435284521406606509896526613518381230793840776818688565441573987171504800030988729672367023244025388764380396005410685323681685210936482605234796886758389520213320362517736322693608678163735283611574805293088349035109255644327880361688631598540829250467827592969467788275907517976820676983762405357974552427173119410741853821246773924969368727391234240265878983935671381128978592838853236590119096704274228225358302496278095578046869261439281949732577825123455183614008197270061047461357878695499782551940297779001025157557276886538414226701002883310125617911756836468042480974766603967698538915804522850193278732240946079795989187215708114517427578628416460959005524144522493968826329989135733022393550242339294026275659887955520435646510301045107377678009864095588284159981061598967781646557259425351603859261728560387948449068834696717350427482617284253894972061019878909882703621892907860404019534326351500253600733784840707969662810642451346755818646301842039486384097036335532995783121876190490598181250967370321089820541720274613657439246058225689775317543458643266001164547873546741724203287404584948647237305750741935792142188163925659367147678863556728574370833365104689496852890023892203132146833732474974498571008602415320479158488738720229377566696068020303856594689506539235609532696114970346317363140988839127259101561001333963869958982876680309494128024113905126964910085588377947222084515065786443839611832111022432717510260703547854757926107956116369988588329062027296588127845597860280715110652846355512747057734073936436991566846080377199799026915883729028589930826927634299340513317278487436088608329338866191477464388950501676320577221938223210640886121252226280873925229434508073728680649734232396441045665076692394977938865340639311696632786170169550310417021086053880348201434303605007053522915998062101517756840200970226075474981241052334967938190792077015009425526935550159545804733413828400538991552285417664012709263371859249592686928726291984127058303429523772845802564548957636130278013840887518773331789268379657192519764329385898480605726750629707332655432072193640719037435904381253334205262292699633336238526862342401620321705925341312217335279571852820901077476812891079141534343384783352300665100455224642845863960701888538205706692148715230191781549782921233202912186167158457015905675550203886473922815784925745471804634036328337067866555933137960020230071487684512349775481678067142463304247557010748574262819290789484071735282560528802027728246204030615484164942748884804806659296934049340029881302796470287626712416935694400517796245143639963369614210857010669354995323547584787790689985285585326727462306705874943604719795445883321480091724572229348886151886764577045449905667864195469916918911484522391052092950189302732527069774079436809590731842197094119226732553941340109837478692616069177226331802384280626525826095304111574432660904565526453690397896114479465308890559385472753780151702235632977237775979465939910147120894643674129092916458928665111050854024413491258432088334193792516908469444160963504173538726253329851564260538691281956372138204182294257118551147188605157714249259195883949384877382225981837927148735023353830892627048424752276407324627786372730446120004747614469836856192368743484235376093720925693944439253643242965219428570489204221322720891400823506341851613826055303867893010605342858555509223086715443255005321127597030150110032717409851501898369213388049801529893879445947377361273128200534455623975405124236793583837360259009980090362354981897076941993433951099646813273189269673805506072660687931133197737347560004933117575873058733000315188172414136915840319409052727623886848297743304233234466854556884245065025594270226958368010747233854274877054790142284706581223549620668726994808826225473508715196206974257152621714912430446218511245661345985148658647286131027396222328869098833014920299369106588896234902099083423026809524085879966402320655572965928060549087677789797121708643946918311428958873870675711918705781115608217167579792998436374248195260316266689409492793556887366769586688845865783957895582350769309396442801747734285138828453025638915905560728081145093294450330839159534042780975725641908048460989778356978798752360098060623223571285282843027142363805531770509283654102290457516278519043608088191066705626039395940643601226724082139857843600505808105760655045613230821858704929634624314273752199431131340957995895018207193677091540997754830739903115357752712227907810305386219814968908466529060542458819056008801675416117862437492773725602600537763935926730693491361873683339214932379401840782085038669556364000935489025365647387178309673773536094360908555096779159671004290727206199852932515530372708850120539264815411244784030779959853955069770701055401322397855102639542048332341717275614600510090757118637153590290286335362754343968439999612778744674920463772696710856261358082421137360852434650926426607068491131716876388025744840173368562171727771129126073699345205884264456351873082089184380946788192990657852123290758522511488649158947122988672316442953032065966527389063130407872741964669353605256981257632845944502346986895551593986119948558552855139150576222692894777598018616162673555557459342450536068641816349026037047835530537996775785787995474620472998845278539397847490332741736370323294692957585866611693187426443696052629656609272557202909857572441504422406776867615204416890037482847396451833958700044218143603610365472831182404364085019112868214695868809959329173344646839133332232659096173615129013155454935614925828840732581326558921462260074362490642527125470274587825133709217169861180403625526692201519314994990065228883344099714125099826226549701302523514886356478560340823363538585365508440977211711936762487774287891172868646177285830429367928867495952402298083352325094301781349304273574808765820339811693693625868972902087122609634929989189107349581540178412045328188818562897944632092135472216697158038379803017419107575918814450152402154840890466405966133501773766019824632578894630460026432208218638598281921698675070300244106913609479000005934822396549028578893592362599182683897666271659844278017644526985410550795428435475160955591944056088219091557592554743493189012101739660115015775591656269076708736158424813667636817418564135945118606096275605244750945588873978702474677614510656172393903128693891527996740174212545742805533413361163785962978123179541269742532360579164518439821901687809585146864373108395870194467434161074221521699544693895112965388518876339590747432368172238779118089932137390299241171723425487110193632492681400465839988398186628483642037282105752726037894187356646154093509158498395299640238349294622696440924833521291583198005196555159008115921222275370982223807331022241893962180588615196719637236783839892824080011972772916674324084484065591216050424921721775293562098166903509523874793172104311522468373673834782795793824008569262005286335381640787721221904581291512487682537996850853886756588329867993868072152053355732715640749817351073458979535147263119546144847364604854978400358419224098136147186489351536442008538131217964030791468611899868023772314622499649881454936215173585598193541925437333888706355811987253909763462532847195921245002406600429799166646842471554329394572868156543686723714755151294847753451141418397850237500495846626677049668359389904858374227870491662571011637189185630298200220118024841776546011055136634182864640661156013407001375034306127629434597407394644961781665489432707647971111062323129264840545399127127384576553908492156275803784516039755578867409831713452528864795533372283196159074199234874190798177462420878830355873626956467586153088465897403396875762652283006692354304880661622074004104444202394969019373155129141790823115509971472670900013599298224612403691141108894745005687513379753346244052845428672003604872926264043906638414191762495449544087811266613248441659044739273279107588773512178450303084790679165659103527415874787632029906243412312361867349381968892710646382208114348077939303405058916267650303729797983854881107169560619789246340735068408329485173819176188343358307813886973627073598547180344780733732930197265620811678353758696462938401518239278102189976178524319645360393639742520911815192166235427089531872657519331284470582901627599283284419810827797422467288083322201975923796057628219010320191764343146075618123618764639475410173178696305616372148119259016689170984479044503233973977407064830552791501738091919115220617927451032676729696931290283540586100367576372626462321673053502876377405153772372186335964533007635477471047770537028088878779694689262431027153236843313770319696026781297374002315510344491924533349528350113896456856038160635642846678120627947775432518879152392912809886689577363579870867487869073565156434661011773832835350583943987111380816760802198468620484250704756067824269240876853358645894096922225353654178077796547188990192123881011483223394738588160795487729416427234956838106602802708050658616707373233670615682110238027484802574535721843811395309066211600016836542735004934055944669720214213147550691856646757056513733390069613843219449269393639434787357992063536166671959763844604587955992892357804916754672373096171530515753390916448352919441412724531263757412723869783494028870078895011008456661760909452263291497656928071392949961451057860723148939453752112986605482489890312414067475838943314794960350951649300778410016317350109262077391242186969102015931184050659412842973033056469142170990560106904854096100426527646848858824902564859142888654677707713290691043043789942614587087026922816797622276065424012799742384113943315527671020694823594806982709331820328903913602497285271876372741284307412259635129772979958023810159752137550328654398050036601690110433960869429047261283909983204913507379614796122558329429598619673167399481466049964626712883888188756175862835624473704734348033939925726827618158382906163951814757290438746413428186294326037307866803939864628011758590710676414072605431935431067050345239772980237140386066585222670297471000145711630725471348554870135078740120055524243257741030924134342743308279724477444032370859372422328230835054308372045085560592227033433487497013098130845590725200317130859889689969462970200198672140695077486380622483922519291797873904279006933058561612509901973336086906079990428627831800758773103902845161359950532165542704458996760716060056245036858976268429442677895254138896451664014029052629579177038261092109423353737764375409301029650469623786277485516778929861837573181149653559785954899238291917390391859746021760078141824195227187288784312772290624808783145299644903940394042588055832481743828227727065582315681488512891731020060000454660249665741754818841467912774995246137929732195716011722680474300405531024638927528251162806761563583972275313028481165729511728736679031231724592566464973221648928368576875205419645680224522602488227240436592360158665578170748790444845384608179399636131417907442014834075234591951163245752503933177401504386627320168675985094480522539252784457228597654987818316920136573588858932967067315337463984331096783037906583291870526381210112949309734328481236547395770246106091652798627358641744452894605116771275654508174432923991907548305834524038914243126550780916753747288934780148108444507023433972436520916982951581227826651138194395762940370494969336946543376387597598137708511114860554521799628237053377938534744992319108693020222476105973916738848264626840662196433932459428691822706973670532855108129118865854403873463415807604602081099217511855135412509045760760787206280711514583311669153260931433077969372185812667628567900554138501253085731856831111824342391912938509240211896940100590636764447035544550925853623585001024279934874818205086515770643536260914112561573478431716474601962940479309471807119511816291361741758616938129472232380048981433527372921926155664548486440847075993112451034911991322540812624726167000904052640453030177112043999595935352931524711433775389888608090419064432091885214087213660817559500972223875855329713702471574228915699847887278793181982581999039513308078145864717146836548761372029056383611702568741177830153510552249596192533758530535945566760331862433245758509145309419291041496371834562742400684122263298105697888314493181242657401366031974702360043642792553686864289219572859459359613230962234128769471472960269276625508175243958266013742852148421589570125014391630651505688505998053876147428519659090839330020512694798721399512976878642285072491670686828856246230094222677162895692725727873152544811177707140584587453209930517074880759432087155129356499259488646572481261230493015371105672530027464933416427670681907447444149881881082320052138811116331820631386211289714608621773587713729651867150909864571416711401422661820401098309880612665461057590119555469230932678430709322595499565753333290671263842261058571314971283415967054187076729310401371668245647139249346414761928787883496020640947015460560245062218517356940188350323923383527947710122289703390866922347114695830396090535215978694467957986560063264061700674517977675254054640885467246274718091323769350634757570898875259495667861132084606096010695222237693182434619112511849332553274602508743072628364668000289188098930003768348485798899714574653740793782669584693569012875587446124290168299815801941461834383607058171032056870463538970801225864801173861120595799870560550666020459674678730095903948782676213711433319869493873580913812684525569414087121992359353577101756537731621308157079052465242002660803384748426912060178095855943201771090438344650871795340672826221011096289001726325678903171215109714800340349826338452111181609382475614634348376978821858341892957001996754493132162064626666729965178854818983545821792144076658541028883410533811126116120669005296867904491731774994618699128736021529918218706781123682952538632977627516665661891816923672262230701923466731166046024419262118882280171944215891969096160504523863716154956441050914382303117785263665774495940593430617649916149428344855395645630818596265056183887929590497092830458885371331942677991052503539456214544319997298359092620719266978851805757585591002743046169756961794472804659146695804856602687376940551087841358320079798526575952022701601610287874275332270126666731752522430326639019818093924522688505892462982195549249725667660786138317572281165980886412678057998044574355546100986038538494508299054071528869582279112315076996149523795744048294225351967059105191537307455944678812708406392461686958307659802248204038354668567673193478051717784560029054810392913322281513852377953589567352258485133494757980736809342383946439890641266264990877665323807815816611476781729942882854712600757224730075630829960939817658586444278278744032215600041828408569010570094713761952957460401319744460015545512811901999423242813250489907052581249217983894978064138427894820514602151725576526625505074400822648046020226052766906097767162265067883053320399172680473890601523341756282865194733495227230003382078455049109088275834035078483828746514853679675439774645644521723915792248178394672598505753839829072333068278611194178929622450084617635287906026181608580722652583526577099688135311798295104197070343288002823946646741659595012294215230126163137094261239521163176938526141256234392495014446659385233348025836924414602810541555105843605883090832794395688005846626058346022441018109447110051954850758209865009014685263139324017549072331626862757966539362766110670047479551109286194286807381426081331757589656254441535705204109838378771688885636688767964167963043574022569712078696910189259787692216633122345453431925908692281194716301563529916599726861108733849031290197537010738469747491047694936185909865919285277130208921330065378927045019654442349028356009489695324681372269089317283487740281849709927993709084287865058927059237043340050500282497957224305249230807511572384247779546345394830475817690275829259455424969707687398145314545154750182747909057110320240873539238559002379787657792271103338238797595538980274690727935546074241233595656191086074363961753092190400449946459549375411386004498274543796645911104257561296899502780485907460267923119645690903017358639368189582231422850522798575662939232830947295688049588224688879223826133770106812857403529352707659252255701273186313206965096692345408017080005285175871239704245858849600325134597291886667548001159690458284749592968709966412698496866901783056184125686055467370729487258790145516288429440509437011878715766844810584639668690548919988182602828743427224915252537730840908149256392965209878657869879929795104644754894541309302255977839922250402287067155134967395099720412989316792281721076902577663196536945851717950119092043052116389863564307368639124120343962101650629753285686813102437216654477552318195278201339770586273352290137406865299385972203678244948804647829341631756033226985787670481972106957242946280832824932162060767242582067290904386209847103063064835031554919071684548414006698025606452640098632298663046663701903148134727150843009915427687397986527518692668571844437105792497072828786903367929124075574697182953830330728210731823054205576475031893476188198875031194345433832100117279403831253454486328508495417585485432920241448139749596158214387665165998646684459346332105188437640054459630094533959287971269116351912532465440050214584410964848386576216722709032160273231088711574086322716058083569384369899199011304528850298648623012449396100476534040866329297914583349774056694635886053952653498288844275405745471416687895864981752028818254152023727152516433591515233075745803468377247026510296526033869334847338140270700863573316564822765852087479264302228577599990178160047021916330847561774949509266952546186179866394781418088708110789448630357182769969954283742731977002481746256125154768023485383484030119179553068333836198885448995825439729188655812430074714890906135874810509194510642802976218272159131603721858384208133174802552602905602537556523755211288138299588744458977983695886566338737653319852393016508531084655003975357814704718508285425335277562963679061805185463709292918805447793863297648291755183109361163771783267538625347136395546360860064148485063037777481184399629516348966483948539193922496838286191032541933923930246617576339042817802951497235002483959747922213056318909156362859575668630673533754931127596066790022341090784427144265010700084824291283508034449107105469933747421184262583821948700815659198002649155372890073724959679808868321971829729218128551907667861796242506116691669866325415709301055551643267736662250426861712222057419703949410998165291926413690696730895026833782813125645340416642062347764688556329378858718055017039377680231068428608433033692825085749708629739339927682127517412625561808738887455631808331188981957168646304735798876985526233055290164347248200662619912522248678815061486256799211694781291631947948680623446476029481091442009333761066625287506153357525701552196555146295107575031077869217316467056785955583628398961321277853312280464220206578625532253603886696123136016603718673040960448994329425969077145674747873906779224027232987980833398836940234060900350225397747917367470540430176692367639210694031040726690982384628605902390558542209944171407015228657325331749986616964588977714418193498493175897103067511853795332428201773546880959423821571992446045280720618507929392280355618217937920401050031629392704605454643448198512259051538790929916351777048932140099880323571612969044739631066656822734245030778694043860543881400159489097928120346727969817380988481097843542987232267475981634239692625266927431547728870129822826812502817691108515528081622255757768767784204519187929933828354474383818802899861831395038110751835698687824316133626144345858624682805037728198271482671330263567017511424418951434300186359148218456494058953249045462124462645719626661222407995325082380993883251730054425430329073923775847624941747333927471996329111832031323679672183452522379108884625960567781270549471980115438763469325092461631514510151925062834486439733922914451691843516257212997084024959611129802474559670199813038398486971199205657422362098922489309121388606441818997857921360899039548441741350523267388801392836671039606002002928139387228628519815855584392643308775108300962722612670288019722070952736061354657515241767559896353688999413765910857387910950249431068621211703779866147270903475021118600175441806543014956267992950132614257304781589442485366467858006732857531144346094346246634027106002600247757214628609164192746736886639157345413453688906817022708716838558932562863049613596770974284973732766309535100888150684557605502916226589294061200826228416154964350699599217154012788455301719729865404525121142767918292514875435618650356335705808595088309217855227995324839290455965809149198399162342875328869174614624899708075807971572736508180040804606844890030824944157891185266275559838864646265166708130650021638191031027712565666602807851188283853972320949967472185652167226937924197593129901745029381119645871243732278987086703426918436841462047805925793681223915939290257154167105329545960628605685040355052741331162252175903241708661893783056915333116541919481105921970613799500996384342302096280325414553459973726108875397445285321280796696151334902919697240251199746284345641940733488158157233213675939092729683772666770730772248681584021227716289802981089404982567047395973989421318024306377433394873662301600351614600180580479678431530152324614997095778491281884761589583587021939850904373777574876109189713617400080898843782191788424865115663845746499975237939945381236904652709534957410121848110163544796827743995248314023114890040183099906372428485877912250389057040511456617324746793543774055335427026583695053978406295441536038739407080032923850671860102083013872314529026553121961706555591796033526142899988236855137560905762770643184656329137423536643429358323155557032950012208133554973719690529276962740447329133506241159617729701396351195606189581559553041871208612101824402746252199962825842671226518047019922589160938113721013131119513783431611120103322848195851167882095327290278880927860940503446911766381957170059033553612029714867852826499342070695238284655999406180691750556211879971168697275063002069011567764130052958210953330575679001163121080022179870864503637761485231186004023547355720258427187114576072037176559487621802992102131575572754536414147001481431134293032057574329529041328080688195227404314588160939050677657267477065859737573882959871533738196195107999188696325539355350790226709504625903991253236505385790212615329500425731647977404930206873339878996893749926944834831771216673120023727787962476674570074807754273100050136379523855307519061535339863451504526527916242002973650404911825382594993302141912493246508330365694673671207008966987452369313961220999514954526954531061701760925856846825859600859851386044740325482501929596632313117017190204731412903294099340303311659032303302162684258617347361938078119761520008206458583396620340779759346378166254452426911572101562160189728180614256025360553856924858630647847014892567501314738617184520456891438588594865494288103631772183247388614307318911122579372484158400413421419364782617774798689528754601897239920017337731013082450449508160958925387241715437616859559842606841058426573618406290493484449576111164341087310129816085931141127832167106946991741148437634539145774839533819980641507140684709371973676908755171682348146229137664596517317479861295180804332510331416596333651912707690163277759293999762140391441372567600040891384570595620539228942826852526826378546324093049788201994618799198649110809598919061892520289592150019087650731191786957966077151925778918630362792046222293056918146081645162427003265274646172991713267033858226594860563955697686877997504886944743480370967734887714708906672217993765515710308921539046880302530217564975506835363473153162312670571372517164475691632113263188414513043026524242417943246079529740192198061282129637633335290697232508818800137329286300222698525490332737209432211076286039820942939382969399661499318811967121412484085756042771471258216724644702941241461301322711626300198208134950754234699977891035490878161282466670727169598715124945210167143012178889136820063624529213756827395224375377365422841217650762270234021279060077611896552860015687386762659197954286283109639389007138699403987469148893749566110525105936043722537935261608201844416601322743119431422675079099325644425282959690994694974276343764081233982822449596902936522161592458449612349766637512289004536010595313240366808137457162108709856152527407263460017824794541755974989711016252899435112511743403766541219288436454529299310348910267201480330125750392848135694192509306786251720562674015420524810572728792073911402288072212662873088290589968241032034055583133034144846981534970409372306408822771005422247751424981826395139478588949859795924444855760321895873099669054940925079749854602601486245897949583355191524709951301447029192912460600569203550199520271443671609544744312908105270138668536762512603261755165227064542126255735764854300428602646086524295614196062872763541480760517967076657304699728346881587782128198556083407595617754160198108818034570366148054240790575580004521288287208109345977103101030928917856295517437202401004625238977955534200084628768793522089224253349510938827261243454601457394669193721998079122362791749269810000180779104788422385600148822574178690156232020450939429811392225671269716455872325669648894700612255642845392830083510346488739837226938146467754015965281109014842129326681508379816338319156305187733268006143959778472574782760693423329910509279374985166070278914176432324681296046712122185610926827088021968042990886708702795083727664473167629835366815355404261334148258339726944719683075796937505019913559295444927905887461622823703328737284193348589278887395230562260006345663415583693812826789126334384755950064143457539166978329120890651490538970732163226631875605938474678767637612681099426211567185643298755136499176641150126076432149059959010830406325610543256817155524604014286653008569491636274068145419151014172109026821528956567780156990027263379033194760086272049982804559301233300553574615550168768628911624582229928988491220810934827881647426501644451517980691866203634943947266035518940411965090484456481353516769786857896371464200370025489497188276036690760985791456985372602490189232710501573210092991830614917982001754055219139055732480194488312842426504067575340399903020355126368429897178103863359265814322541133737240400490485218656595256624221677165157828811925589556734533342158472327513471758383623471282804429174098676431687871070833647153698440035917273633253553151858355089001665972046010454191739822209334858190056941282936286480420258101416035850990881992682473186135854018725805625789046206577374310073805067016217625849193128376925562866603482198048372904164216948247383130325287610139916624609716102391743091999757913765981832636616593409778654025752083574336292519782167319251696081465013849208746254227981403961785290341815357883944154448939116777770377641675992324961175888337208015621934902535669718220878207681495479149455282382880740557247562920406438173389488522922477457611209839872189729823718851225887976970193814287450722899569053282615441679745796144943998151508696562251853324025612776487025981539300538891847176265456100891954136794664244155224983890928287555440545856474859096459867640936112506393184065969343483853147492944163592255349123401151848127970678789703440350102931548305536838003981838020642316118017762925793870727868460708875025662073021837108310952464085964455821951518873375567664513228585307623446211142468268880577655008527600614318863884494623165946006200839792148164575284805626566958510059333316261513039821678432144046988210558143486744666208585721989877983993919837296800788162211964215668098651307189377523272570962013970524248124857456469154278131415458235818539638780802256791796743231932262675782989085375815945481214290977099885036162299118579714847874948525265322827317154971401548244402773751522622049846308089449234540345595612147211688071399554811734156615859863340244228869069280468559610376494628277839348241342884805496123434576442696641462444632159730925571715379955205006790284836648339545438925760590858845778655035003221840320319011641966016123405729631813506484511988293312768283738842778108419641501439395861094617473215332432029367467005890091897949195555818640587813055777241476351498722583994046630802946490468904818987894657340645528133264651173023739828931638530513034602631893119928995130279752565504976758336235342490401805220383623437133045865258314844674915301341227483583581301478281824869049322806902144998504317797403811753211913139264155074421396966228813434002197423140415976836061512439284871520451698500845772630178901461995541476413787913672623740557146143605175281013561358331212257403643140409435537595911845297511952021853124187893964367115428336252139853105625324888650406263102356913787237951729450187967290760263225536550967882799726562880981126747828833453484795959246798462487290651405743686554008091985609365523671128711200662446469075852873451371123611761840917017080253429002874625060529760607944886832306149564390451598786033029248652615263470154096857251085121813547888112627974932100288054572304163628759570110442248533265416443918248008622339764774467155417733028993553536201373030510151231812318576323346427515213232513515803184070986948531856464269369804867228887029684783355957497854432723341991782835715634551686044900989638722533435312443039772167592598463923212585054225538361213145513122509664193448534148417762759714528099011572728467727707218815535481588782465399056317537464982543489556984156299759688693957190716204429993767784953824567247693048380903096361865153080450290274833251159750963492315133723970867562187719865929142234076860239316328908862058736749530204383693414350960352884361824860937303331689544391025384714951189313405025672339134367325845899165386636878434052321215657421709409454744243248361501856233622995994583969644895725741209380390340384981172321070257890984866769312808276346148653115494781807892515282098027793837343758434495866016999302328458042217051560147135295279626981208563420097000343160420266644902830834480829054945157988023554242435636986867572242514367841563640179463104170131136837545436111007109562204378116219010904742284223188320864051784904604030453703815758087631517214744729653876852543438670496702118647923623664854697462030526613093643031102883410969463485796461696062260233665516156075993596378342127700369233205407605016989102873772727537124296832402217766631983048293565380956787000694175872667611139072150846543744522364931118003074783362529849149958325155273417959730847830914495221563917567738468839168200459932171138717049119058627335576764167245281311853676733355815753420187146658751847987179601739822111859525012330551145107431415927930771746733474117032446482556666650058868370398400765859034679018461970137373171242465871218503789498644258976845075218170419758398806571806977367946693029440935331282046819282991129180676406022224587485270845091097583971132088392543981364217606550970911329273584209314924199975453085316703433994607421822352920426092009166536635428400186066072956506629089640049190668757712812255720550556147292281095225028763446860825247690576205044271980689974786417015601374598169014923978586376574598907763925356483662610190212716619084729216391342285699485769837694154927790901719195654829832478239874716419421944092707939467986039882391389882420357989488738995377745782917484045323113510371169438391558965446634549017246837433015953952092962258718139847494580714406952803364793737438063627160295539299129504893434189264560863784032134488699266525633438898184309765142101295166974634554770839583225061215178563984242448710470791413971249780419812391962580536941460885689463488974388871206142447419021120336346536079165548058409751227729957839380447524363304979793742063729590152617914423767600973787481257558430864216096829690765615048389789961023799637383650983321025601299398593993033523728944728618119798231800450380798654584022644741990838246946495177757299305032996660722089172825007729462927541904081040512115361825799683516225663675919894106543394357717501035550569106605013154002726386795655420481531080148777916975529564542925036752824987498391543052385136457288972506232482085469820800595306388679512104322019937378435717643371440947449349788110859314410293234445729594585736882101833081821623103187909207479013939395676308794195560260938678788809579758111870756620408265759925634670276956773560294973612758069759148945590358966105071706271956877570379128725761324900587688179620494140881117336068646657573170888487715905439000138243745516039516965770731200284597534307913388017790397885538203727084570034945428594369008295797244235820283895234905299494356418295423118373741439549940517638295757199248121920155355584526750275070647792438890146676006567646147227650304183395011278197604949323661971770513224228341447509078869109247222958028785180016884432131302878918728983724286187520565881962691172117525202942706264933854601654559398667831028822027380700997836236876195244769128155317309437529129785802156793394712866860879700345908768917698021810690531790668988618298602057250329594058521211209534688302165919027285636911352944342823662819165220172843222420748786261492467794301041850673751472494778664765886882859888209809458753824874786822588403285128344853632120174340228395808810160186700754548161761353112764615734220308471678863934774427862231611847882820389003621916278717666983832238382307738060244454996702907991705867059082901164665676128434680517327939666545156734271722607416282025823349539226052335192450626192722391360585402959135680793612431424990222617227022949957844719377494539025762786873058755718329325515671093271209856712100313432401925489159781203832493801914988824290438431825670710317853190816264794694606611301897860676726304250464979638824153047979998882961832537342564772620374769092995128142196648581556372504517004325330318679899459201744951530534686343508298940778572420516365919428473829940958918361386497878610069057876537016027191319334357020405023837031742579342411436685643603996351446463257379852045866661835995747085140258089325906282762946776523252379099429696293019012238876754970970862951714947451712628826543252996508710074837291711991164237565949412830355222176277374485576613849419483734803945516663284613239722402734158593555920651965691442239636643338647514324283344362839850320647884101443087693709933628590447568987835292678440324142903368513874781919698937303625825943346217837768122477599508672233729610481389492249346127395579922303133616693613414884639611458603468571077289110402497727941315996801079104591942709068193515261721353535715939504973488732980530032839790179537373353661581243246322310738025051068514768948168596323353176653763198141134662224320277282349799987486405110071483765062919270167202987079797101036543785094032913531352491297506953587195807628623259521139042209910326849244185177892572340749074741265130677167314591910063240414750953033988836815463086232279588158458825620772888193535422998804781685687520508502320911110425375401241999990399120416926512404175071928638529395039330670231420401559740500544174936017624036464473930216794184655147902852146776684992304877888586859339735209783767647168440272468605492902866652130252720100608505920053010068035518361656957487502126540206326620940576711286138404229423302473550140327706046741553353643224789364940909088561235325399685550033766045026857395957250545908329574224653426354068779641832295749365935366844987980526470385999739616086295476252519992940478574109505162860402907876079364387314756947388084265597374628387065251645082827260356484585734242149162093918775996701717343146096623989446544233811309861991575185537507218695327328908903534317435418555655049531024167617350770917930204510168682029474240548655228733209187447029842558119561486647715407754435197877091682073452602089748021940751038949279529329506000776613784898095035771555226251658452776166276544999864715976655141279115348314515330898893651174664972446956807368021659351711524474470331547069655785837507949763897933214838986490242847129540228910501359646387471193821458880535458261494680291348124188502388926010401454818916834373173447643375169851479449251094764546004885045583147306908563178445915079372871810013441113659231238718694037364146674823620603285169397732623734664207728267086217049509956388764503144738816252980876943730820377191053011141783643158894574639203818353726460780634139937452040908641398293332489890278888123541131147862251739985306418752917775884847204358724555790869885003251275004898939273187647197872096698814024378141420937273105809610461326773115670159940990412929854253992119817209326941013369277865852911021657623413988525810328241716363787899778214244403297888560438064284457776923627076491251624723563647761683192017539784419275631935453941001497539425470192112220781048393836756461883323838712132094430326201366599835859874053747992435151184367301262166246484367834598405701375337363343197304314977824950117615054050375245320485751013095924306695933702509551919584122016515705915084075705026127106871541578417120653355738351926312422908832865584977583816529335736693195272265139319839589845151267832875902821672596622476228860589675927870607949492029934009980221253095076783610724573701525320441283107730237214428148741811434149005806131937930626338722797083576335780432417038504960682121503566230674440134060996749139497080223890718081687425337702466248916990848740147029614534359438538993679711967656351281742254515047169608567428775058218781327620776808653307237008053614191662695449412924294941644158314238305471781653720087266114184739625563151394237680796770101694529696805613737325021328578116398341201262826611334023614670301033048665898668023190694322461633036413632107073021170812305725061734042275817338549908914329368529880188085308574712973765187160470985850249221425030033078505220333168409627410598436105470580338951344523326665428384330527711599641107865855989550843493531022602573383946671393298655989997256615074749350703099127350308208021116228018323023879996297078778254617360335041224672005735043371616408190444223218536267002983957042540805875411452046475118657015653787058446478441909667881735260413292578609522078202597044530945083329989868434007931918847226477504001527455804648728258582064044940427642811646293315755880311948033520389663342581756679402495914852213542650307082362633559354498826001398699784028262740333142363734593336482011239149063168500617799357912031342771468694950690172360862037323347920559079920811904734711758456001395669058487558628531683592821604378220409172816635591975349815468008944402053954580946780947890393201101234321502429678100755797209428563140267803666528473253098035792197828867662918911469377348513969017538596073328761922693488555924878965136500445795308380287109014988576339146376481349322754049319736697765697276000739340282495081645260453283306314007594699435338342649906165414504558143923580290712229897146446022570949916143582863773529681850385688790255252947375666806249740039950673369838866541963419375127766616401193474463700669732677289437961966755473432206666984491035329601718739538319630992210135064188850487243887671954039146429819601882284636794285033685587826424272176594398485976108512884319814610549138534708257749356166407793663774127029790563133263750824879565502987463740775014483310734459149447314974625596816929207803562439359660814067756785189780606893797757580249862965355150116419676880556694818484176920702481378576316249241631861314263475618768784391389871595137613497363627601795529813957094374464727508278610162804643373268648185019429033573922124491754973352081874239379642762320644091179588827831368203056538787398433873536741938036232901147954791494346284929579488967462322480697990378391761161659590952491152361250871824768894946881703792372234756643954830717112262332549617407346688547643242964576305803575304544911504509656812340957461452950496449562934073776344805081375309600310964280798242838961418457430075366133350891517583129150845732649112020745712842789513902347746155022024277569321035584645559175365186214857111401300329661767667406486434409330599603148220287432066844937125987966900163549429853578347564478581147121144421312390466480119191878214394245350322432404672839659813441294351899584886415618960248985444699996071300698245017963027091473615477701858930745169152005756255389346364811469914041715576274429370596899061198662434867682763555903033590459021993397777127597347221618168064624491830121549151128632331864280281077234015767630825104750082284212494080403848629751823212582451683599785812827233337292276884263945728731300995216512044778725531566160688801352531942832271681539337274799506018955487688100478148048002980265022463202079655453887444707147788975531821257155627125997598004976112573310321747757817932046608460037901890499275765238568455856457709094314475199583290376938998400063748934467994542004968249355079562324967202112787171122673263728464329485379593761424834096531491161134584113335089354329284557268069119477784605170018576070685566850453290802305866121596729814910526281798660234075485079848732111523921170793142712266605086953435305127025539028673685649299227889362742282491974487172776869776928308053488371497996106521527334414556102377392781625034927624627914801828863618725505030657474584294206158279423196975769700195871696639914118223493724129342917273081198795277892168712759263355936964238156278187148140710370895002620320127724281175421213990276564453779390875418971900618886933889591231334805768520116764625230282812938168046671204352924871750169070540254320858069016854618096850026419042224306249420994835047012412462143569700503336985787118205173243028751914827473532231506992858086225631721543856260480297980646232265682962269923810614341676410690972585281897646723321048854335443788061501824887656917724778516063166016893291358159024495776277713848635986294763846841077592523818124482199493945785346355706985274269771494935007226714002057167976032022541565466550650739884658324159510939011208752111158281610717634629497518309067640687449511418160016257578002622574701077736630551980080681241954187336633783903972197054103221795635547759972829794643591189401502734408427441511489907938576805320575000074295659874679141235408610947363409098645034037271802705181290842197396319920448165082184565372156261719584538617257133730758408984140103292951444638973120444276650134428661377235359931286315813204583858381218053162401940953998165355585688349731579902519516483214994778736146772209696261922112181133395682197042338851739463139359034437858760095907906973994504968674086102350590182969458645407779075905379048126510476465794152955478945111630824268042192466114710684813654745502006717312262925294250072651266520051997558929847591133821443903827181257342738345000190394195841308839985969233097124765608090271364217640076455771422841618442750000468552778517872700553770628019485393836243528300017604561813446542641916377857994756078365752585015841716547479878159966665898883610171421665317778297367369040243070104577943409320544467880133254794855854703999268388596808888343846615088318963414133008277792471163257452304652228525816847306581584089957260925821358710640463342185580390737625074108873148183758652410688095625520819099039338207822659677860920157100166368556447004119091441310929038113030330034997099731889954540989726988124587479171826499588670329704400759983153069638577357353565608311199328248049631598738697747373042612436270501610044641900235729186060651909925843937425339862926712302204476931920634798223596395478305424589998919586888854243930808804242107991721732119306143099994668179775572216499403512149398767005724513104269067017582859914804778434578282555067416118605687366713802087925063006151952615599537852922863304867127613294693012014614884073128407262628292729682821890938271373927250577411107630186066708951327556582272152461563296766952310239814572634348731441713897157256303469956895077509470917463786990260203957897578026058344206190366170383513566901803867927948886585171794896136987054722720249832842105562052756827335613647389308308792832432022689745279087180561100682751194983881033358950348175867292641804984634194252494025520650685270525656199009918901059653061050558196969053273349359422562792592424080679732946295144185876353368856616822498249008366713571095613582715164862440584933968003790890964410983825230405610380991878423752476569578468697971385749085035989689990189924462059177206275189152611986250409077076251789680543505897771639748383563396785580697559171267537844650155854090268786351278969684179328979752486836336898677407812001145235225023780624814872149290861693838037351444749999988586289962996600143342215036481356752761349569379042010447539343522587519003773942238894228962558439801667362936941940741075010203849472269054865795954437684552258734774134874305997568273090893954367879264512505742352494730346880392991308819387886437413139033200126664345928250410509526840831974100484127426094431893519413349772589899385919235952605603921568227851915038615910972793617673026342437668910894357567652146703139648798906410812264156068786821840462387668200082132496236026657686474326555571647260728367189913094032055566933964491917680530599387467528102059855575021858008913025188008394075611790781436470740348733964358985585033603621518168561064000262261764008290433315313640382708865575033483518735242622557064660515805156986104546798329580878866375225433059917641331884810217278020857500834141965488602763596591558666416512394295650249281894291564684273082583661417549285516480568223735860141365408868672917017069552773637308182959356313315090542869629207024309072801867315292991175978413623531711080617728222752052240584984027855542710433281213690375071936092129426080774419120362324032327523576244613815081022631292288432090188104541924309289112548595019856588914292047228502308960491923598430170439041075699274090704236087234967258590945779448575678326249457054667268098109956828781143081853823546240967395322611263576121218762974077232878286420783424869650729698540601041228956572247165203273208920397467566388205546051542310768117209501101814808002337063156283513676888767776627685777182510090540846562749932783923350205802585811107628017547001196567367139816174303388092774053432123887462302622978187828908611795764440638098853674482710724246039861126547350226333814489982427725860713427375538567336048951685643504776629091308816800368105646280214854341440516062246733758332353668488721782642273036150604773465746473782568959032113026209067653544171766298102877451704305642570190037788703481292053494307650384889669564219721959656869396912974314095994518161432223270407993300481126673206457727828449055617548366998303539452254119173582721558409611186598976354988110494091823977702495769834907339685179320744009187423611991119961013139512140892295831266478869882672091579716356802714283738899109238511967773540965228006695778771855370549527368190026881607119701262650729568183316380144323385404655574255813264001423650417660361171929343783850656323835242627606893048729928242532462961777439322948153897808743488183330651684882765200028557261571955555461238259540388771594004559410182589886560269985163037575889211521325346148850923921905315858518405132160642458072072835927473567610452296513105383432171940553447182740193489049046852774865967298036493100778922311010470293344186448417550065787865933524390765023933784500796387522399176359659113953878323787865893767561366180539525401531416047891891426134088378952717068914182141076052404299605982967693287429485390746714221936489240657240996276653482328564589733579016486442532576882796882325975324317635934055727914510333744210286972856614307586979147682020264851702409740114092665437343549615792484043466713919253638039318140221852250130180515290976057078656781094042233174541118575101359053636990795873401732814932917008038525235188035130978128089313239137989516355358658941379164773445225506143701173953102293759267320557911876393509879167351487000378407364331333216529702301697928217740218759130231022309313860855649619608755901109497282464776123651860515171824573027583583988469706466514097364971201836177754103129304021782435878561472733818902503181804233917210186798401780675379549784051970485211673887604148919371872189843181743549881815946217243204188481665462050094273290868794413081332960281535380276637109342925765564730137777930815167231725429164849426179164405005081805208093430974005228531317445095307912332411705263706800448840949748050076388870339732691540176692073116737939331922432517383647218134201547724831647281297017190910615826306828593981955451910533529460803559087091710642664200717481790599303383190210143395899600663840868500381820917583675484884640629350133378293821904558200771387942661720904308725283853982169574497688828735288917371162182450679826946584181859010572143566961490909586919098368339828175114652731002926018187572451367281921844675382794644583189287918986295454896117626640779697792948223720515036174126763515553425389758454898869853308977523079901228138348516109175882981032656365056290100555850696789193208090338214992699554321148145884995088332610111380857440531915120870724269229618044613791406430966901849869124728985574105556812447812513650244875747399131511137794162671613293660016736692803650007397083644397924287176106326832592979269408500966339820878345561154799625425348535183487625858649400001081119152480329145713532159934581154312035539159509021730493242526533878029758902201913440633161818830950070694785291176819928107871779768242412481652721167622876012977079891371119837066296642310191164829710749265458458939931443294803166769121953029456926719745986508745171906698299302389231411039126195383698269891722950136782627236031700622494100065346004547232639168862117846371763437991526676571491754902375785699890717639113228228119859563096183119771024184103561542292039086569754622521063291512909289577588226154957942663234000759666287091744277455269288611592704144770668885748605218441432576774853251376873789132248731634330146159653989688809923035662572556668089594772346036119394089719730009886913033806330457916619471995285333340194111074951101309004055710419674297446078940576151666882081762336987386190394171083333835946363154000864645748980332774705543040321124386223729969447010536011397679248744333149931119740492763194990863135209551639392153005664438740387726918619823595956932976403323084395908765276156473991056400367577380523897187113577129448641920137958573526944836867588863777185257297786843112296658399213553543178114536277690929788550826409127824885462207137766256593114517879045548897474514543575920807771150351003297204163169269804328765040862676555122298967992490920800676965580888842521405680876148542465923855037982916659352980278827596285722771955962716036927481415416235252659615269931703631816179804101476188060603714741425911530978485851326397412629745227564696668680544927302916107969888878361028899589474407135023752390786045869595534329463494788263104710262009392370096342692458305730365599480641060077252799810410383957938907610460508671613028048994112929862150557899704333383498289072362178936247145380764384147719004117319425970917720758073907298222683241042159064286468906838179658734994165959412798001556524859705147479292616645427741161882904963432940462428027216365014615363799567842891620732161287502335924678734366175784639530973034684723679500922848250727455872428301499869543360673774729790966701629059571264404596969756055109296018579069463589124600071087850859126471507456788886051440088795838206953507379238432518376404843404519241854145016475783870108464597588083478885127025953943293245202973175145927197932958608473691157525534219619156467652584964238655650390671222055978219444115082526123729255762688595849754493059786879644764665823708416667788742477041804446887201389765919793135337975660144757994914820464088971468898513390279436049788061865357211780279838388689729394645438487614840997884536569341242869846397758632317961869645591707448440303812737454515422239251909017491122816265617957221758048037940164224950128408244526624244665161061262155456069207221653778390967099016604014570796190027165142134156792675894018739446695557437927609593084335494629214725121734938689986314421704493019616064032286035219926549213603046591274940730123059711981623116072070358866914572868684393983902559778531705347528183578612249158078847510768995368517606624510180954679902502295754967059032955566247053036284200474621884559722762945525605767851090968354405096637183809045971277443040826897476393899614336721666198808585742065164969610429191246794708964254047992918211757504934218466209478362027338845039453445419367213175153067808718410287723126667085406816914290785741881211642761241021779592454249323284852114505690853821849909276748171156789085861008114350667326352671396601390519523058503967359688338661951378177450271333404965871323502782804439628736647862074016982308168065072255537504037671509080981146214459018815369402868677055755006921595338862033452029483762883818590246987634593619544235106358510972654508213825552786611056693110090485217121007465384359192554694890216000366407109715999516943304854397633827181764981474336670916758316788099491413786467970799568910386859889610868250737105685127018750116712325194044156885789082806411503033189698802619942455448680445959835845086956255207947583545872298023182569637823556593421331609676459887431656579327282171746121208574212466154891629252192726465919195947456511640873242970204274887879320103764718261514485529433781699758452074884903572019685334040901559513667343097058464604143901398194597478108247404989438378476821139800859496029361788741856019337091480388704843239943527610049687815908833320889336323641826831025153481806547275063964462439666436449805009761002136179760126036368123193517033571955746085098635478933814815627247463673984148692625551825764183396928066357093427737769598615727026135437906444539590883929867417850858415384647392416469754158212018632541498153328470886364500290101394061622606994183551104119369469770485796100011446491471742631799154063278475272915099647809039278381542767579721150508503382890386859020033495197280503749637458249512361635879285788463605495945583307766504774014527824199715003860631445134124733339351756130064448608931647402027743111223085989904055061523619775088072345104974427141020032878312727934022123915935467941957452232672925448720137411154164564719988154726703491224177773200608808017630658655874479130033704898857815201662665945878347336022955338571119661995974480691260395477669768002014237964074592947572279482419739712354017999351722704412011971349088538102929431468319723798831930273148667758908198020714831884681214618374772924416827982410339076896287939540907670277005058055923728883427108810106819140319719405384006504125592305508835315307627955112376916246252042405584507058865634527446012365099319849114064532439269654722722113183276073894425102807517581482073075458515554343431377637193214963130550127627325605137940152070721163903594344899375907995704370876670187930486857934397614288391373667112510810015975270604981401319052108602842463120922427096953085988921020902769029711180077047927029624254845554349522696641833149468986576123490894636327221024618422841368549811701181403811701115133320283233464368249146560585050786191913265026988234970520551754159182261967398833813478568278353385957339466306843529240015727745984015433594474028553199142530395827070583055053688511555644087795810466925407704810803735743281618625329919442439403153751861439064494058082807460095342591081986263255964141752342322983806141840447806090569300952879170926266729998652923072227121309801800252824960417551673714585697976318100887193649250955857639694793450403575957738715689405066912326015942517134577350595374036054459446199070276695657810177780109519282901340247500173106383446223508503274766828250355417918719873684394894048394049635609105960835244671116861926515897107512283516541134504065945293154098544421086773306846262911967931834331998823586912453644771020932245718098745132568851196777235956800777447014170909590317987382861858599477099570343604468909650106076268504333697536098192265296123254232493326793058039256023942342267831862956112928890666575437423590790281612811720424816599652364494589072600387920898227680695028396553563522821243785306969069520490026418097590379460754262732730243078512873838342762541316134084119901215376882129631627244812006489565616870879925191720391757473961391466270387278605171374719391602139175490907552598384841983108724577503437253623477405057994093833900133008065261934191027997059686405644599097958192904212255003553521335376358283679314125576477689527898555029942293156279552612967310670959570679296244938769805419996099452140870299887260800135359501655100923136512700851156035127693326048555187078925820155949828825712737409666578630380096438669583224315205890698735354086387558407147198101097541085335865813171448146847886559484687181081098543802482069233009369989031765603768589724466203951472247088866382770982602182956007413126437773521290121549039704210743984574695152989583255459591814498951163948613764353837147869372859436176777653559560275664185959692710170178818736515318708059952309903218698701590633283006053991790076467402082226402928075685420816508180360572070930960547683263568766222360086364252598286824396835785796660727399384139772696572763891567995040040434004643916219246366047451918432967923769029512377271378306019546194122330947356258062625861149188596633594900615379923827987274887545834972367759097014798379057882967988836525733860809588273936196311596373980626138467984771009029006448413287072609479740639145749451457626240906981547627378498606092917302559515020668595331706394844369004416773479384385133406376637744015624617962103962617696804421761288779661974484094205164696673150920421807611920044767347449582432496263425839368846009581606964098685465638774691858248249009999607289648217842970533962112862460503656771704440644956743851480279624999343865134466573671891219455195661293956255273666132329383326181504250268717224169030813448403470904959111195416265640924236700333456841362853644908472823960173613229233854690351082648348702646002531911694799841902791157231495533939914798316387266218775151584035274186509328436459625530784236026911239175487184888281527834927095448512981371792323820323933911544145023777507381599258137600444789568366980585813856787329783787975033892609123785479323535787377484903459821401111817941463190321347194083418472121812313573604833132898144987739299656869166250362912104123203222489095866757341296241554885984641725809431553181707662291286318141864426833531143721590997333392141581493697407903231943215703287650816699954548355134607629110940683360163949958002839909978326142840896478255584658214991437341188327737706444420194716977345383162283966560097752833638930037192671087815767308758166819647845304932620997887985555003199216817485577533738026133020894381356942612422029266817790669019520722011428401102805037888706027207040118686524741201743260462655763073030025491981669344540745890042623480216581878017688019557155218099522392948668043394470440591971014566111911152747689712509056653962638473045268561541857527684838273094425107429951524985286960987087588149259058076231014625449686918355462243450380353781775117842840955800389000933778030002985488977007069170273031872540498000133538007687395295588379788538923079943891562101263892870021287354292247705140966112685707167552272018642351355228384363205723421208520188774146174015115280520898638422753348527068477782714730162689144875245446264687125526009690169444908569389531800462901637190441538553177598050909168746308066209442385112567158786231410938236666018746100598570258641051403252671900558498121245867576469221964464263437465400503861384658353097818283190443700220433366006864521635730136776373589099070745453496467342123293263110115729268689469486516851674731330197040641596495823737423269646848599685345044794449759281608700596537471620053602132947443843875422026436338291008198692325530216338742502942949828040867931303515553192607761098019411612270553166397568188985402773736837033594021689583689067443025883936055689611633549543564237704951452280912765905351721581028121087891350680266952754738287631150795905542333893511987456441168223685696607349240887989068818316652597294534052056898739061774322557552915873170920512762390991208302980107169030252163353057467217404276908572970258981918524290115051570028686017198357576604693393230400431886392918112093650040146945447788610569862550518086323766833284465669831374116459711195219348824207632219396283306164025012064347112431207201877855641514558463009711325367417719687823508877448066243186856106475743618898570129052002257782090838922709375828615654547889487053870178074606699397530061858115629155355703631204546895221889916777044541147139895266029135978270875405349032086959604865419037076256911230718488488943156367820852186476576910752152835201755088296221367314012373188253968913044207323272000451838834827880087169467727845784677214373277163169907286748851417262001349690751719224845775688830123622113165622888764039374008188832704571236637381126305308750501189582121058674795687515651540745126769174264675196480922007287087717437779585247503205688982158184783724746799180432247263139410076755385752767115331612351239556912526668025392583902951581270631942291139781186712234872732417381109228276192615980763866016916994124884895253553703382616678133268222837133989458608950846054515715929060247241444488360497978195502316727616066385041317805184966815531811519120453741256904928580307878519315148780361223754259592943807639321103338765337405186155353184568784079476040165535883062776714303566191383974599853833656240504684965655077935225416923289127317742863239147131004545457214566264425899215533696396315689006347240809918980400936484384756895882560368092175350960559851107752217360528184088076300460785861229877467008754320081969290589972157421317228140962461295857972824084885086389262954321451507373262341501164734184663562613436305244188817119437384188409915872977514867400156532955426764908452775851912917180563823073546843305256920998023194809061169652761157264005374598513550979521485338254987036646119314201980568386858495761079283789522387935184258723622338340574407500144496480475682587612447169362686445529428027546161367898949840469751635325607142037115676686291342738922881980739775467422430140474314047793524816729516829229862176556953839687238907016836786472688817360128110070804218297697791458293519041006999583699353577764792061394170133247886390749193029489101765574242618691144747238663821665821683195706870391585790460309139216525085115917000718849977019307123202158208382245706962597932953362154363058518104631032731795141744250130582244326628426360334337922310244584676778148934639919408020714748393593350299727099332578797359080493502617323007767145000654114351405508962315752832100684951267881860272493553593739239901569468663446688516804193946398871473929611900610217963499816568511895452123070039210873594278695529834109460199713447323498449693097129244637039044762429371606936557324825238962342069573270365419779849035524486670793790734078958658900304981266060473911179808412080982299275355938263677442677669113895447164345247454788656450274479370236995422944072197147340405456002360331494105927983804014075320155607858284053188506609265783293643546182828354650019834738532736146651415424823731398689106059371269036056248445688718405453376642559856741956443914192866819140830838751193768592519513242903591711250127052377819708411438125388614305748854407995593957409901190794940819910569885518388826941184815099876253314416234862368224441326013074044073425296102571423886022367006976194962310851802928952129999111572087622050540444535816919834808584676612954425692798256435917914317178052597160679370157291775696054044474803473325872132496854206244364331084438933371448368186398163421661075520119257616232966130073054581939978982094578314681176051665853352133258708978894612975690024509181349307515223676481634721596850094706781672490147960387247892470106472382908182736753594754413656068360751026194322108146691538799797653483720544469404895599574319402935230134026143721903485550997405716920555147161674639032901441440497668218105582372311766700018957616628716000679435017489989302102847026021826296530652692345561033110881724600151430884421389595279244681664822886564086284798633867933326993054740300301498688406127256788776663177818446078349631770087705574867156263562602643140315677240063091259910130684203732292812039493094919054415915494903558441673424746448571092791779735645136391462363461652699563852114399921050447541853570518484645535839861548834290712143982307211500779729158293822128862420583042235537651338401193346325179072976835535519342446411133548150742560002388056531642481563567922659667366628568901598912440060506220655743893517048088653334189294537786135569755071540367448037218977992128085272077576899681986794714994086843245943147561921820234336408601726964284444608595210199127471269966102794970771869426311824491618714744956564284884573075856651677726061382266964359324639114905148930051670515158326051454110458988695845921771433447660668821106955852833434643711780298388249962827348406054587313476756360476417345511733785231871898012511221452974775693771750400841145542541819110704284392307437856624015633999703372679483476488995159663087058650687626073928698553596427005882670009068399930527682009426393049792489687485408459218140864877912024842742996344144739737228975503611847725725502712801881717306232072462949793569549304356127288828925298756998104222306703824827415927343402514566534828832378781277839849147057942404262421155254550470307241865916153218474944832861870620804352091423469806645669268242502181175551058943190879309327586882740882484221872167770720836573127115484626686220948994090796669133188627809077187285883944647671371111101659993159319091143654798681205650024838223415303930404723523072059092667898755570773274222523635597780996782253600886651310125107951006637478864584110456241198315173080474109849178697111132992254982067195964126854375225502914567088112399514646903939114827642859855453832867609159341337225142785913454559941449194334649091577425732128245169538290869871623309389130526275150612047194115463932643791015972570050862700765006113568799320108465703667687071437736866440976199202663046723713916845831333548743885975584605021052241158768824455151681187526690460020643143991392048324060023872432091824828186772257076314356542330764746103921637235906556948598163652153476138725542260241129074663572825614811887298731745273971792778942901171551136420523632543553640256674637441681815098273653056286738587127793652885240693234476259429343921738714910906034623518893434476174971332431580179105811753300935509526342750578318790233417794100713311637406851523157804561374608974220871073182012580527609855932662328896759905549779328488857597576957294086341982060033793045140042795774668653784964045145045168991477704655106229226607744143498539187913773759522779720779932491519460358206759103259952340912811334946161793863494292182750742815631315120820700258566971844424663509685142253691347756968372521852919685427761575585360439224628850405407908218909485999875311558397177591457919909697295033861513039923180198898711633076375403304609953124382008139658165602884496364940568176771627323251486728597009016326386154865401442619216489605301628173392609368823500462182724726473825147106191773257258995509534020315296139154085542805416259759886037942567807105997725678177079326588190365925193190937530809133433916016422567685719753761984239646005001612919078772021438618209942148129465542021625055758661692703841244546201252571607619560326372198062357922238994649955425925165752304718852619065432666117878934472215166658154358358758525181170801500983982100412726603360012900259804157499139788613544254165484368727460402856380786147039875813460183957510484414646536380630690510858421493872326506953061817881005177907371463725344592961566588239845010592094183227141514381019773235724110402620377040161106676018151940444905909983084144621565827404047410850757042587304512733156681923288208560418850641961989300782975903332092390204290735898096620144336308332795432972917525143533971099413906610378221985552164408983725070645188265636023521215786713695877900118317365777850734682749491254803161685446624409501776480648961634035049274313856705396946557401566745904996735594417513944466855476116106878974783147082553386404856181956326583334739488671143810698886881617571429003734701302638830519299550601786701490223081650537582299478847986896217224401557937949116339815160974185407313637938431693911120099489834539665566653803736696675165842344969174985872456022943443301551044506584333889231425482751159817593381332177105504392892061959316302257563012511075193969235819992498892340953945766756956308671399556147700008762605138702091555972106585103520841893791432368076751356399095991558047292056649195494392959199263260082208846890232615848532961876645841909156070653152799030103669531638968552806105323737308546900498305034545212648859648453386203025135991838623887227647404202273138986475289484233671903239669504784133856171759750736002104375387759742935901308592601972795430118319788418606173680232546001419949230721611852385983317876988080535191139177435641943537805110817339537354887760163601082852938447503155643039912265800998836103227952584460739005712256295905059093562661312825964965273186604825930320945748973857260788307351148292200144150567228854964199769995759731853503281312500488683762366718222587012868403020448733993959448105302756334101931636290681876781753129338202563454257288447054442591213680826352550020597414065782981408378404964414321326428721838048054055880666823646902332773031479539195686562663378111717261636358347947140224587878059447410156953023058381592044417138552293074247582894823075688038474259610029047687018553381438591774100285164329847420652059902633763495179808574076571335175500057741073868637518267567123426900811975426984138304981734722497177935644199672080235556991434835868156929658969534063008304848134451845252385098520269947675716032563063675873319836933624961453518487917825072726823125368297170852369910081674283381095237649456955959459679841830422386979826706937751467301486170914851121010096212775465988921782538506064351567729235766417569946708349865069837467147947466295644511648887891707002836720101415253831759012674324559310598497394705202985840071126198327765535002313117769820659818391572470489202093289317458462171340246709685368836518710420530209708329662323402383562120035325451619475604620417733143426742256354467929725572562516382613453983748389335878964435715449165132713899572907674459775887995136384088013467471048204969772020321591934994855928590130928929924631340982007205145882703299105114658868048666916381202316267980301130265417480654604039013791081462286158465164425298607367249740876951325595465205418605525087844978979380223984024758327933971644541070478824615131997511611894426407545717342130496184034843941339178888725536374039117764536602193940774624461570856937335760053813916353037133595177421939778483662376910251980954238825932027893137722154686762413684744355036668419652046699032887874151620044660517205546206005460419193460430074906970685148301567579930657347126716488899983204089153831603440849491303035885058104946894913627212960298791391866783720198418653345651852029596216011974920998882504051715330069635639965918906476997022433268059590227155959373780616068229893685740079869440808059425237434335692372388221779134463104054093526406176570779563094515680461744570969435906489940769207360851698212186853123027190197975078814752596191046154876521836420611640597734245779478825714708514484696516519169640407840445907799163147055880064042882989038272759041792929625871068966794142821102939226137650392434196732850690307494941780726176470753867950942569407046826216238271069032597577882691792193792597003986081905482444668028374135517760442045706333200616446846577902231979783902185086773806474019443161262163434598035962965115436337931549666554982891283190458986555428303204625367259821184468994301672588461840404791750968849172231406708180332169093714768655418738020807462326032733409896389336851229505113763643236608662298986481190794165111123302082315749846557356611718238307126536536637335520593210373477355028165576473587878896818688194154879510469773024207085017612180525252845732603748123487317904990462133548218167467109244601134431012233194241512130748617862760539733013293006880746851430784773075132355850000484315583002112614966104964849323811617619742611425590551476994043311903318291659485373204632001771976454897916255738877923893812531015572014578558853879723356227065161019773903876170803807677469227973939864934916243127409305520806425276694341270532464688250818420859962887530376365107419171898484417751893180979139441126177478409890093876200900033562349816540404951547829883242453772156007885109422047639771969952594132411532877532109644435842778954222748469537994948675273533798142985818609498706218834196523893598672337304817113449713522457366417738182377802472688713005610919680859996831669795954130107817481081150190616833106860521769565566831112480035974366661699378993473192848540179505635684543611982843902591643216272738378145478813078502782502832538398579613186531529666221734893819701151535124898265720064478961218395928279540010732626250470367099637426065960256330238803126737606850210899691364996479474999111159311796349355194483279358184572180957787461792364016846086899673518607290063022431235285841676954344463256892510048368857254038331646254995521717341040950359936046542120065124535820723527005385419429931962451459645143363113579348238694997467696565780924147902992998222869456370947998433675426674463521195201893697036565217659249798703388397081647765275829903100870308035999679822849182371253960196752995905653373611305022602195101789699833191244938974300486021244007391514869669285658332621792202020785344018722068686601051492912682007377378949373099818892236884547928433169148097487585888708528477686140790436507733790259200787509700295810556518325867450741156250490396132317832834733898426156845697587838095066094600439896800343463858375164443389298409560441278027859968516347147170164104146818719245282541623936280179157175691747034805904367671295835329490527865618559099917893247322667184481080709976432887397200158550030576197897866215211351560848841464703700719870291769942729712053542878044742413965369568233493365808313663662377151190982239237335795924185117365082721071816640227752684357708479773845463112394755899934433174951196620590298200785902899976489184967888676506174102372353916021248961947182872370441977283249925879508348709296706788834577194927504860821270870880345150901637122356189912184923221400787234902469474442351407239327235881043994237942412258082195438040529144292911210545220600555867419181941914621047661739074035241395901177034378695762514127786802987453375975351372312513393557788805223770858686447895204319025365730371679732812603130735152469098170711590244287224833843620529174173575451295124892745187328802875374292895360197071553711336384108764460476285901086699435687447888615002316677059038259277441570238651062224665418837386933666344979107721543525257653971082603221997614611127796982122523462540234951170430027047794752300034566989321949487160431344588729735867268787069127518000934149250828148717203165372652364388151763034304604473453195918866137054701888293530061306189156985387347087154083352738123125098582360622022407863557373260048187556286169368762511221277134610870066731640633346588948887403656808698925593565121696404986455682939560456111301313792507878676796474540954638296890612180961240847682470982898265541728560172286572475871475252586037335717023366897858470174469519571731808100378711141026714411465756563799640799233245683001562835616237904992170905487215655825740672252724065212743683997328313837172380601334638321076352079186575326133023573198471824256174497620912132213049879222508050749542099954418596478246816138358217326815534812732824030951117911399663236173374821885521297283778789488613636191505770004493300793007056990440636593619179122799761250816606779807042440748390752155016256699311669478607509166745027018214887587484932871284089824086567698154624705988586847262174231276192504684453596867261606972130133536860888655942747937488971291681074611635558450942669659169808061990075018484968385212245748808770542377510652559664092343427126875834330178377537077583375360978538757378442146021168209628662522002162167418430386195454980884460922575356255712204039134216262767123823200038070318029710337215558399703158845620532311622844103779838078759112161952316294549920317514721228298324287824648725798549473669816881103960163324901676682898835060250285544485144199856096267803203713204134012381828662408621927531088515881754603499229260702708974832212598580662922919535917348099405108126681599352152286325561149391944537530963186752179707429658353059212453356495316896373218576429428425428597954265938282004905292770004747858313120874421632224092956476340651824599746133492504397078480107014391546849795286506388054496366490412458370947403706674302690547392290915044019958741521466989495139885194058025679899815923012626163635568243093362960963129441586720490066475733494380321741881626855258072032243519444925079529606281186933774398017603329998757805486586353800580149818440868800225843618296446837036744817207104230678495965284687998177007772401963963718934179007969004974703492752862037220242851000660863374627472528548749653453366097300844402868301042162196733005612867471865991342437066832851662731288083739709839140615807781589920247917874249588043290078456562894844513083990154947299124475491174484758606379671818543615489666012361136632829150981151057452190089960877508690572129552592559974854167848157207271980262998525284794454829105243112980198442592170489201394179047243881016572800574449556386430793572032259596803684897215283084742276947252964651912755251001397405027325294378598742461271313406840015850144539590640712600134910900389604784458021458684373668552574096048175762124535261749398395355453997841508990076610249527271341451637752306201445660985310404379189706110804782747766543831667117730283622105752541993241942078261913742068496378259831998652829753651271214323438985680807574348607558304162943157260108910338041998743039135767246487189009583978461653191682680392712462768567729070026363965283427345616507862063798752564842795883473692907785544514629812232742956652439470790144998868041761176477552478227330330750266511173593030029808146279984537774321292966156730599695304123987048678630371601380806097487266899503505709460579353888887794977846134153771509051764506854137708313057851120682266843463948722155894332388792101775390839154832934063969473856782760729166793925840894416538247538954193111566891651631571397098947335531125465307516466526628771362010778803317462625787520894269972015137946627811096667669554407751773178855470288465280463058048367004398938926609211755915421194240480906157464778945003280609300354443407042030705287976193647366983021903520530581341907938402765353542158030776567970180206047109561609147479787694196504010206724480603889906558463816049748589006778533839936808242707996556019629672951112952197717516195544530186029866566741736896991552246037559329596640029112422024069007466758275482322867562391964954553014243426725278801581500248997943344290761084189429282807325121659880204373750964367891182727194202357688461815563029660459163959862968568226239455074077489949504617514302629821805663704717523575877892249958724082944193108297792338175972683968314058426328429124669210162790729919023464606139719278593113966595019478197355832473538022719608358669654140236893469155933356267402617487158904063213110797998027545473539475682127810145965945387760214174654767152575475973903145013560084867769606091008140533545500408289530043496097591230041816450695035869570504322663531936512663129488825568638655691659764839560784131728965896332997098318904282711876470718893256409682588174191254568540416760633194669804095858126504810568876733362863301718304491460388863109705483182315423786498754712685160138843088598712485264099137188378585152817483576889421092176031830051677780599899212475732719377915086850458267644008884638563120581790529300350943766766744504482393196987074758772295357343014893989416742619732784917153501718202685930362351828834853737905594630321747081880795128435273227554824055708099967922096960471192084884740609033414912609273946536329647315079406328494818181849714344469370344351925087935277866886485450651303632905016575822157089823411276891948943221445416606840092480974875229369835966177269960394988125288020468603981190946438886692052951800806944101190020149013897549656758482803918044884465887272976080694587861182447042719526755998113072179666061045077530558320657780692988671800157318002623254133273777577519819633869731284811031701929867059100573426238303282198372921217798102065918373588891090621251072780976636802078310836741411130910322767910213084004632328387268505866065520590846098740776713087552552030020985156393330500041212209912302272085395371137177004728182430575474532276647827239124175922938981816075243086270915886077001099616175208073322789644205955186322119905583749345839672819832450294095777127686982835567338149584337087084834812117543848495139103980221809364014734328306841789826967611284283572252949834573106996839087614585058704879206271680115124310154639661098313813611766758236299504259820013617960217915607643149516577988760245319053704593193942450209684312238811202066567461941991814135704732546603423311270702352254102026796804149204161393217921434319869381545529321593594680345626088792913126598239905363862200255044519774676748396325882899024226749942793870815578809300264380999757653925947260192860228047428956255795977049045483291751876431091636598910025962312403251791341910745752061762354294693032787093046763870489231361030737550669195320215302031101442976102665372622253837172014297798173565061049510369235331767358222798113192828314870008935126395643290000511629387544075380255134377268012472775041879749400807891852094112119840273529520727504364608109383317233769578439224248679471184301494506974396824920670124249158905601944569115237116546855707647159452919707984424874698822632127476002073145666352477095367053613185919432377974138673232021426266998325474631561522471303815764191827317366595849778266887480349624088182180806100036434879080537586211802502638384745177811496494162490386830524776457420961889255155881994737295605842517188869176438836643849526470826386627898877590314340798017528087278141941387977249828089912158458388278003496219375948254144332502987638360837520228334328349067523523590865653925120095305273977720183991068080361284131364266656915634985603654415280677387076473361914835147677355625194268111592561208715146700343266442548127691066272178630212549883772716736406901116990145664511647916150922911977475128383181074070131107852776922436409345017304225686364974976422214387177695531193688615961997119753683161144592986535995675895701618914180018586279437048259248134131939326847472603597532145686946900264515773352194267774225571877989768723353968389044289759162588621035540252597497108657978308064644679814588001332233743225617690128219212966666591799263799074246933262039941320585662034356390063652672977627957745462142829723850515225034136234782394397835300905080147460326872147441909750014334198557104149027902001408177997770297690790338352223068681009859088680548203321671925206078479605661193703045714357191178430581115259628202363094919897011211709237751387062707579896450740275316935764768310376347948227532597644263893855892496183374180841603538292981619075080723359324939055177070593211934479269424602992726570957269755333488755552524900013336956912616302014362443560801841849540040462514918888889923734593773141579745200593105660127384812905168609726150411637733308928002133579245777107435945295835545460257262932818660451373505816634107838809194871511801041360336582045179652031149827634848835593093282132050536285767476036455656644071313982168702450737207202308756847844372250710504582506555291370816720292360522166618635582865796756981621339460277654632006499793083814691907993125508788145137983745867576535118272061442683886932981452954488505035091563146567471000332412020776431863529632312957757382108525694579666761497196048137780918636809011087365512477489270723861253147697535302203052614081302233020558774464668581161958317206593862862230539212527778140357105365729023435983281978291915236911859736449733711888498644429573536138917188796741992322328743846652963471146102358462889367252303862956297259856017459828968922837311569051508640099215786990027261161119113962401568256409355025691844245681881863885062108950581010388626889940958498921819545249386570915411128371494996017386047278036904178555902212914030158640279458369747665121184022611985544051164625155877118503080142301793403068127679395365621544414737266795573621870366071458885727214142330224122277817554812362871811766219055312823881768788287935759945263739433704729288612921891208640184931648469606560639900946442660976552486807170768755186586510595809786819904359032382995637030795814675411098381816411702307350909222838822916489201808998948195627845648008872443032617389157454444014999090864486075046137533100095761334722303284607742276259417056269869226116048985724149041378878826337234388174296167288434983408786322434801785489900672554439957006416353396553129387399781187219272085484768115619626787130136737235452339149667750230170720409907437634872942663214510984434112179048192028588544199955139650279178800533212038557185178912477499251627427883597194241228375981361727815475825292011433332363491731725467414895163294188337957215655464149238982252830127077773614490270144391822524223382979254855718687667230043177966979947492690893714322109431595071449851679343902722818137886842927116298483723505099531765034844572186132457163618135062229163653202840753072023244251891665775893480708895162841918133500523013006990642321432007517439125114390727468550914430613258671852231593471295250877395910879224551312450740040644408693555256844441374436380134689419115475663973345122456688426043171354188134841872601194039490773065483296730518427716165203605719588223833754348654808783387317050317692948066711102650221930790622151909845948096019917294396706580352819711614818668348642778772617859073562896722181572500270611570505185184350520960634608369138939561572280082898581835993618825052790310281148584925575634974339624843375055951994829720095232193492926228935465079913970593945832365477404434196736014371110212792710173556535765167451905602364833635244729672836967565816050328750548477147837052383548709905588139571848207855477785702440623431167237157212211131605754398572091468189449124711133256288073447063045613688194218835665919834932106763969363048019247773259255166116537975635871519530025063397608020403156645294084514369413341575735636027396642124808486082615842435437415026425495707867840491991383289334797484074757780766795100236191837339920775513608340715196881134049189297354791679772355974833410103035729606550103355415148565367470005132126529068430368274833091756306873679468020862136561419688396066345169607055046540682671428158823246983711980644233811004096493297743082103285200847669571746885923743393897410862186250044903637133728105039926133670308397468917590250724741123819722753733307114019566145625566492322340074271718740754175605384152386829366042713396476207641305673823817983711092666677432655441496317934909182272563755148320857459141780451653602266091096229564725289826340605459637620884520262712094493514243243723910314951815691964815781496305497444072278733724699771955318175994281676486124531765926488384043329781021770906568131830653318643213730115736811760774928619713008026292562404510903442891245607289503308437941862164994117782432484291330148618388459057850005538665654959886374298577712727964928137522707177078714553901826719025565431408668427994670767397418781298653189836853839518108881793903203609515738797261164148897098615129866451014858612758379042971871185123562195945387697183063763387930084732685450835898482096576633514059278468654008263199807594903415367814819486721142365404006304678798953420311695340091164025045204067134775966991253114374923199874668285282520245121478523764155909785911352939031666894651611089656125304938125179109943405205563823988470905712158853095368773541259317108579611906358531048637522122763523538173930879679830364866198144229237284786093367590031458787902681572547309056067795197844955167930529620340954616103274395216508703962418355904510531943253775121472406827477580021805350644536475753460063600352901332907700972359221639976837797459243526453738627016156338769487882293058847282148304980361971515672029486288536264747486604006300215491779525119692883731057647263590568740754454032170712900484367468086483085288905811819179051961536065146692963648935171029587820811694333366321947936846683759739500721747178969379022544557143976599144451235959107192297162440834684843821996772994011091464343989662767629840613186641742748455924937532584690546588845428961989713832470344652927331407560759016224343625302152647421459256321931744540046204096809017428297793712789615065876133243601320210556572955576236642356878296254403771311648901823064084967982076814069374359172288647062953191602434619817209828162254501510574171455188424242961932432531769890475051337421808813173805879065303644286896566271221569838740162017573749660016940197960013878357628227015374975211746649842997946487286505968968023861594287766832911620957881556194668980709936532030287355569050702528994442751406332640117485461035911937263900924931723738903722914132850330660228618130846580631846535058308551954537830988300236294726773049266218937139553038148107975282764464703761508029965087895943662458307146341682778586918660657886480175663514965794500642647209989377120154249659870169904921242279833366365669751384085883408086105828063545222808381638267621727704463017972108698343909636145940750771944236079884253652331540155380745884536131330543166131569361233790676263579486506290005022722612204396946131869720934148898502293341542619123017573365780199336883623419670336951802358760381629645008673264415251556182748886406251045800850720843902526228057294321338714964991656038335769063013073044589252665963262315720014723971426499938813830797538412539300733040547371001723157659503921519940660591773746477744182405537213598332427098543741971968680813683240963359587343906604432151096957154919204803624798142855892242546344073989333531391783735180113986448616974690534704741082310514714805038469306599489475112955774607370696857485104986225827684007402846306302862768047195372710707768579778741307934141897791376632989008182650361450696934720916889426455509927804238464954319133939059951939562164109656050632237449792087533298520038947558847019793703102657331571230048457241472780460582368115034370709262930900490107115887656698147458033231433439890385967041670735570466112324004401847139238000582057803922925320823956746185665146226546486558022657280432371603717058355054625861404421880693742173390605746842234130856544184708748011010977951097787072002420599941618943849102613047738588756289511384251940640196008005039759863815859228917493378632884537616809842375564623732650981458756196652142396297140060250728393743223957016121008210393106633706186829399880119025566738027993088890788873839067395665630822574807129835423787021440252202947188038491376697858870550866105936481193223811308199884032051613186529453786873856317990420582454765482673362931884583887419170994988461696578609875905532348167065653760555756836290780606271382926490385104695701547708276439059737346304339103987797764937158071123981162345523458123676001121792372895222300138718154282484871309323588897421431948500816846391333269373925197532848582365707787832999135210339971954458402090590523033053070219590164122139867656842040639437568053080423098865185330908382719030890397738205464349834685713851112935716077253237604870700410253017193174855419116585268503734528168216330823259241595226744485068137666340075001529709736375393534115068392394255810369113854075516707472579272623313332961882732118701638290910658285718868551748355747735668641258606011575255999396766967942184978823999190805036543559986338053210186221623314708505006660601313231268565743549253961778165580144397203569632107240155776546727409150233921984585292640420274406851255579317832096623888591582762507525107601170864050593250716237770732542219879749377200638336800141659869396268417596025188173177999883288999479594623468740439048201148254436049611167147537873353484216652560433197182510128872381473225165218301307567532795031845736043288395411980890917708676116560545356218130947092075610291418188120708224923955443056565034896944261845136595003453174327575301985820416858506982203627624982058777677444328327545735691721861042331241200781922104320902119128662605872782159978914999406143586843840588670012778043901091108346620219419594256163037611773752537110589666871830232077554797365572859823834113680821082896984006341582129542421678144928529074524176348699765712751936322574016760640607274754236233475003602393708517873452416570251171003184292513663470109850555581282468233576082580060949750706594447973893048667362572476955667182232604210547478250569788864348431024152373684488317018563503490531658729710646209332346422958936730503460060752159569137775732256480213969017267513277890137091957053574520670621021096046857036482243576698726660737114006340660885638501504783438343520617556546261577162182242840031316412657344148306026827065435394256267944456762624344857803095775711268574679157671131037764029835255148192863561050726444330124469916681451044438001934126599135493247881785304960495793200190752209046309666049633013729254630778054105991433901809802500899602378214626142594153190770573934881181095423868011300464560016205314610468814027435387095379006603841184579263536081858793323231195556587632990087496787179524120625265105246576898943523795103770404198268803377623958072936507775000128053152526587338442612123112742620854612308210274050960805177915556802119298404806353606584727844517956252047070316051646922512062635246029966090527585124339100260721770007529866667594149046137079050489859449625895935819299846597311392234819141629988001469336841505233666633953427047283305472471770323816912486248816527159020700655019758878688243092708096882280439710058431672092717366029753718543102560569384978342654033666412980494397235975956222893780948504483196177828472588960971513742516187043612302325515204612677204895582402780637697737540502721874549209487786333866392410368872690345836103436333328819722572114498225927085921844392688897053502394546974821286449999204373843832511414022277347783296592442443838425745167396870107833316370985882783943388475403389757075640661899332302509497988794377863673724882371183243964469725274182433150149037860482650999571694776095455243884497454206864987049036522529764345581728140907691780420417472240567056865907482604763054499796716111894046866853775552494393886063450637343177557768785523771097302355564223560162581415531963660890907010034320645816513340874119916863016221310518123554210593270269374579124571964890335880710758303272327787594419576118512793515139409680392068013223373100353502247544424391060568118183517740757217534246123267354009539227586547761167155992165874608186923715458343628433916618399238829620924250190038935325726487908934570485963013202270129992226734397699199868203941454566170999079745883559707177427249016884395879923694269613731241162574995265136498641437379177254448039375202720180196389128371256193236905591933587600159745906958889124363467334096038647188258156336301599441406721800007144804846896885840831679344361274310200241804087240364280117374575149930415657250037677451294511262105870831832209909121675626917607147525100465436160424222943551689635842333383170118575030083100805015864809394191437111210903080030729992690663280304350529571280230973505955744378436568136716722428255648157676831348482718656576022804415771318873930012065871701209545965721637690076755966894320034060634727041299351831924426193519897885552234839652665354331900323722105362593203502411960226127833938490481239778477533572392261140867060456202815873804320882719436646107660870652633145284244987127325879654013352809992632874545516080641956405167057726033745748262795647591275460601588584497015792164303451253053826638899590798472198678811391637029535672753805318540337977198482311170995180509590548107085514994407747379940320663636060706018049231858890586066441319088992723997434265693164953616375212667063458238544018955604185907878380096661635470641077097098215302501555992883714932477189097526533462372844697351361917770569149258176312066850608227341670507201196866371873182126317698840680792737122929083299824978990682234773269827421417943947809578359708459492229832727492401793327762765260530911805573078082383805111117588651550195344817125172998495358976497062949148675736772942110759710865766468806114466603156410006123470030627806882468547305128814969528976389070075758070484490549839167236161303927423766887814795247549674634637082809130905322943289326001823363122485454637232762506808732361130995766803501499429069417233656917050065355510710118798500606999058734563519489101157480236437112922229583049168985804258210185682953838146593484797717642059628381779836514050775374912905508657549759421124369236805219964243975887257180160112509871032211631173485467439322376380468980093110207859751528727545255882109083135630270480125523875457260523763777815954209768401739661193430187202916036185218941828491396932061281559305962030142057435453474411362400211927667012313606548319149390736125838513426167204945965397049559693910521496015391093327601121841857524801463544254999082091705372770250588733023301289220519194110392508366389865573117865071439951506798887454831263843575485136724819409839804295957562538845365708821216541539881991073759491235435148378328958072273776755256397920377719194023268571804859682496790447949221842786562451558150701740940677076900615431171171533171034489968079106156804607284524031295806105332920778868759075805437635772321961544331328121354872950957457440688068031718168172357577889612122140905133884874300693841907998602576348408318407238252852041495103766831262169379394452474453670792022792359810165773378851650413223287592436165519267314333878579710359824594995039594218959734885758384579465862976224404538165259195078068965411716664560145097064448897924051296624957492563335804841591682253108784186377876385439540592792225443577128427100300328580237568397568920346978128188055588732049971433734326687702480282476643298305788246940331313990539736086141800911425550433069542530195658767370337600635760787307454074746207227323121759619427110646054900538454481361575317238729845476470985204516703726574347462142540935856397581317285154724311243762801960569972461230106118407335797781595429538430684959565429298995230791344457319570421958852389559263652459349183022454310596328498920888511838941126428142596426404855758302530518201728828789271073940448735156799700677896123287993922195658626349723475980500450477872859228205813675257412099625190387123578852772376912710125866881092427954191325137629980729690210942981122370747548533832803928321107606177300532814117056771966831268546927704642986974945257536221903345365114006487655810404077320131517848058306590131858968969949354116890485415832395771798378485461419886665630346274015883918900868530639918666041242982868331340940640507821708884084438254482686336070904105659975187746106427144052085927870629372287959347201090535301333553075205436832165399562332762276802039218868048724492717239755829695660970437457340432890710741937446896508098901144782310238279432227384970391211823362829888218127843066682854917239882952402012508286857327338104363219776329138348613175250480089150954844346223435430498718764869720999284663317040213350872738119834120139027531278311815190840187891359801008906422381931312927066769660576205816737663546559886240162419115133981703420873954984840006341985179891466304759123030464605062991346925325073076256634307205185776376694520261613938789561928382329963197909247136499487834373211588728641096623259670067116357906444701799126807550248882385358500518774960505705587616078187184023074484198935237350088872023578934038526753328440591425240186323606185929011859870379574869470030222557143395386499423344844686023206949994321947867163873190223450048303338119730866122188532815201446267078509530548452209749136264861224588592749528999984666601269980146769276931670233598933289896015613207721322411943058788138768623501998561702749222447636111997379150383351808445785198122536057941451319605187902005122365376783809034151154967949847423591718876288884695666027969546122486141854197547642289573377093424061862730746259754151996064772027519522356262153182026354087830220999927284278873094757050725179504302140457447787726297781987380866336166096171036441614247878423569364610288416991354300258998865902259988286230490632471899319029418231055324047352137475770857075304389296502454423671687319829017977161140837591779114150017991285467611830307907524166336322588683529352609443033841395510696423643001725983477008402994388778237907178016795529147672199545058088259833939206112137307934852263173125161483242689404833977873018792369140127752719675070730012795779133449752121026514453440238548378419907121271941832730356938365469309079004006713331648291132766046537006702409513781463756483749036494216282886983323280624669619501742207722023970955168238041127097541317086507195282904844035471873519013073872206505560319091089488284380001911649057058919193308428063684499582997040908567637139182348382936832446574937444133118599748941139729741771025189548712006497343021505851629726092646944392579986698623123065707830952993586336634202372918125918458407700754921139617069551947697284328691338723498974346430384934600691294371389862771694313118856106896545892742918511759348380187651995995568230844231113184873786579057936693326194614496190949618951338246060078843898123486529124579641985651801424155392863971139856471229246511572624566057581262489613188614227525781033832626817399191946030780592313567037111806792674432448481745576472292684636120970366424428253399901062378219664615840213182753790677064359543665732706534630205692678789017774954671239868677391907628179811550229511970124284396564097609077753956354577607233946942713720185122285223496939682964889811461118471176714881945902667611007437959114774560140983430165380931435144726951088354085965486369551380877206894595627984004072172399518938983873447027319209856124843079682538642556937476050557731154108786139449556323572136711707672153158828839425028561424555174083056056876930390491271013077361100749817055827238997516692186766981151937991391528547456319523078105942828043020211695998288410959609053789232604866015854111530526561995703345003782259841546921001219999725284744362285149317956042516069360657153276974607604677975314577452468841447505409059659500338887002735397012397321455759304147859855932003141972122004361024869543121342330862927312861971624249960514702699637288592631693619745533432119168832595804137929399660132290194904410522605374788762122393795134465917232292626796203592507827583775697367218028547072538931281830647407288196437982033514787582071901736769682743335136511373596096195466409433493819416134371478660421836057790704541880117442063308700422878650479457370754185234948122658278977141505892128238816209209067210578165369865226263516001114619196749279942135377382190951870017281065160349634276180970064129903909927161726558790072284890964916573270803713894175054256955471894419028885656426553184381183000614913314806924631236734400756224864705334039454796037254236368101504756412959907959542075380266736408624214959833488345055950676599896307755098209324456952397620521888688627529628979987747761017687794505933236710031717591563535839230061879698573835267886615450747097598930167527363233716292123155175510215022533325344858272097784150008279790777595807225215796132356207867043728218786585786930346091765804136581009436029952616619832049888124551411668950928021383836842549895318312516043617148727845354900510835726293343607799149730205545755591743829395044197188061954334231386008142664856441910992056935480436246907657751951384132072664806814856094727874407897120614569812160922506538810474096048738932586094668292828262293477173153392074822843610399634599325841972850071299567219705322708114673718072221084786406982394735118290713800176678996542316218798508455617414024888651591178858227760499421603056855966226234094023986645463741018735094134663991994096086084627021642400695886901690107380467908072805717401294550270712829789843752402442108912225506389226887353807205648956989493681466172589323614738508183858982626077959151589435328410905776401676868182601236663390287941175771511093045241375787292851656904841979134550136805128087938313111393003592794589031720037783731287600747929414438330916602898987721355365093348071294933370608572624811737344798358993329345792377085647201839381276715726700693645471193019217555919819980293832938415086657523110266206243129808212049149158889181778623108064223721888273781784136808515229027396104226233564975840856825818744002854943587875869115989712289815692366747866336932673316963784312276705708206488653877626311312388888248274001712102337166840260308145209271908940589549990119113835345828965796721215908054414794090873383501764386479454630988430550201455207159746079700325691581414759033578882373067995610071257390028401110901676977608525697468569784538808466043466500154356138129791469904178577301062779281906301036548148951158785703190199728975224803241380443451508744079327194332012161993504474192989817592822021356524665711337336058760175122606729830608194587817275066842626080972614763637912349217209516076293619597700708247801188447172296817953591771686448691767280137821306632553153083564182553656465394898415226593593923587428800952269164445904879778515106135428177653208726468003431049449391654340439724622588531517446589895310695601781026721057812515698818346727114757722064573806639506092183827779283951139353875740469175944945165547550920628298679419236158690418994849712687910410559697584453175395951945479321899249553614805027103323265340584371766604914467015461237152464223624323904987068299642966975352097885209183352654014113502605203259181479707193567897799135160069732961941753329387059346250448356339804494464657604593212063344897062947551641293341530851184774856448068037084267681216469450257804360693309469986032595606322890076608985891903930522478082566271554949283224849818383372219636222151969952251654122800933992529322138403682690970090549716007107137915072731982373052703783408685821768924039625811258675999962393671297894567734977067797075092564084096454178596840095651647196059967842142021094969257961002769327507929691429544909430354742098451315351774189111245497601223208627845535451396091571019158105167648386548921745811972514085117801260221269478312387074736754681662707564121436054052128939716101670620088507123199923421510804202259047715881789502290898700562225044653402798238283201065653473979924976775084328293992325536934042257737941004730358995498498112182563663322670959710238821109630017930722878438255552983854912250683529945874437235712245915895522764712999385726925493676418389004084053478627821943959524901957954947638047934210150047792723018986927028948445449423353481886315017130409217397161839696241167624665694881852085429255547297878700388988793539546481365680461690110726664038084296295108277082215723149243560001749689178979173804689454068172228320709236638128021315192014807136515633168469135482805354359750987394032509715099961167012689639777642980429738935028020525622666814055693989086321226503404899767714023760374725398001308652599566252405553098984798691692798733738451597404215529267500031841727037075665659843452249877999805079317105857286167956067976997922532793422114726396725518827528969804025396860890155156587401499337768898312145800777574855604531086113890629069720202764149765662612747716384012893995330075964358966708093485634842808899969129514706744869434579474873022669272283373336268493726577410298214284064229974199253972503629869914919803603193546765244392024028409047679631615226958476933833270067342347684264339531280682557877218033914757008150805033619026813238925524976293412499129017340715927538342659465700417084150443075285925136467082412523451390949026943328505188552722418485621728028400126314049094590690431259139587968876971793888194993932548380996149477177517639956012645629494749184533539384327703186039942764461089594932785805344643433951947563925383258801163278190753771703657693533205180596388508706395871109429142993582527972704552592116268064108212972692186698734831657815058804892891476898012740153840962063383536553607442911434498584036783157954228293097759950429540883675894068686975448041657581108490430795721009698294993893172472709631554560356544898368100633445736057999645507527929645444741299382283715050972044686550754046169140408877042511210768212685434391012573927651281262105812328167745043735293099910997803325530219825931591355638916833631362606446263636769542961200248588425494574909098312234003614927578580791643010820323477296266526089374014352579229860336697923827100753465795656677387695293327850435522547168352207283432745353788827392814316906195496453210902119039211344234320466007492519623224142055649173230193893510132705610506746980822898798012813717709112377216473687706356535703769615178070907804440447471225131592050531267610805622969956031845816020782279905413119379690313090876100973402642736156384235051149583475020483056879558889530346960849246072339250140271749188452052648038099665075248225886766104610309977367339233215932184602385917585469194073167926456300860411814005359902777922948749608014451382315176930986545689201333971213138728654440866481805589170673631073196016095208922583419330368558518819234896063380959163662727270693409175602982656895268093107118345945171652522777812167518286073073096033531919654001480245998667155979555810610817713337008150697641092993437568133865322058249393520340819142447324273740461657087250880063516515263542786598606231947931498435470219685677020639653998507137789913698809745492757239908340201124682396966049833554867881313675506809660718667747853938640282331363240853967661226443977195419279417781420932440955663245305824817775397614663025859599045554587790325881592840051941982575396350458913274371025434828534246544338059453803264642134407111799294203958121649557434231041739707908506217111096224667789873865640510171105419178690661376130139976790210261383758568104360017796575874520182454836706473332726213266148731347986868811329876882258883918012962725055935196097323806172792158662253008095368182510187210797126833052239679467994620552306819966655270868547409327350716143082286075602877877958948725951928782911576659407615291234964434666261141023133462350606374375156642347428308922939218619133136792157058090815153264531089619607283322253130170726072950880920356290277620748587731755146684133413918388701732759840354715522949682973635574841794194648948918281071014358439937466825828841596644647317405549272744536636236465318449747412166215275826229392438038280898913847515742809189882620658341381806162504766218266376476152942463150815928139425496728597489308734911349445098707691994940867723736814027754005771504689690092181694192121850247445884681449661522771134672560006420507995548092726828235627127546154597731793674722612905454539130631041905547775135652563989271243983330828373666843203792521856315624739909378591611925819268266567657351971657396218677275091014483336429209821139359444632430605707925539751542028891215061230812870791295345109119506842609454093628298317025075507361595581270144924100935684503364699850508228864394861433173152012584891242553196988140318761112248433043618334703270218184958235168185309994522120706953841549615381169739362293814712208584526432178156529971314351352778691301734128927627592092918510630112145795919226047225497203080870325381737057328716463136663144524508043202412308509705965756405959434066115215015471885321417157165668136350110833160013907776617581420581001748650668984393036511171741294458476233214437382926216942138416403325822947988488243300246057945315510225157370560525756380612902013063050702569598622608417713219367250918630352297767326396255604569713081597789750692707802909322984801013006603258172576466297139197854304242724383191774909276235811177015658501926076866946662911942822351104133811291056391795199076448670812799393152077359684333716683148698209963805453388502651112291743631211516084765572923189520748033848292255363117219805936295755300505154654749961489377908644788743577038945651502149156418579017613897082812423083350464488682520335640106713240115902530102098226236370318057873580852758196067374806691514313364953845226706513550896333595672679551000827663371153142107611537598936137655719714355876484158457851721457909808983319326708425313768802615253765941943395207641826856070240356176768022598652881050322026620532727262174959214926589087219401089115318603754560970956851744039828228426098991230956988986820783858981929735160872843781905700720599708391646080678567619380566959349642191069380325464040507477488027445803645482653227287165957883637142032917048694109138342061755716050248969554207202550591791789491569484278194680776958047193100227852019028300598398871521584087875918632428395172566749752122953245239150022069103603923297329097807681154217937935354739480834543694831919746036265066913110989077352524200919496124432394516056454404930849077488321297466777673934100758811204787972899701255464398956545714316111890816107029309063390001973509409482482514531362565236272055659743697061198587508786514149931801355265443007591588010919575130970460834276550575905038211546396479094487536691622196278231047378519459386934461977445269751430661871243810682077076574152908066347876780140022228819740913024154540391728431460152051650100868735882245916476200639938116412911813085118936144218024286771658792525780121369886874014889668920922508855845724194569344692871549591204781580417285374259844583958859064299086336446966213303128164266407938005406693413398759282351782980754386008327785731045715183094741220075212023652132545561873689240734836472102111649586555777470993363335337183449462940241255826681741537720208755127693957149716787620237836705316283053135043807762562210615559278366100116348212781288566997487608079828424497399548689250297697113072097350872846238525953852011631015754875200563076668621645621776411625804313506209421183092785853716565193835563372820929336409296362701255040095848678397594041371184892037364904671588730353889994815560999698226704204933733232167467125451671205668824926809526400306895115196714773061911049058571071504810370813692971277580838726478312768459665529539029766323149925625068566366408500649622575128758721852858345111888358745735704164568760632724176247318779132826046589757570796599535712153094732251414126608124453375487409475527873025710724183068620289328451216121355088696041609907950118489404463792947386223978829428087526428002472966944270916596451248239532209596416661008836723711588582196988620538896600286299622511072393358062314094425255236637328418746299216011278009696372409565646192104054939019348879452923804555543426305698376560921725436540602713816026663878000811197793902163991123346465686196987952156680449106815578896657087888153889522808755424599310165985573740702982203945025633039553928093514541358331386735053787248476012212959767854836557921870352899105979516276721475390045683063895532440327329407783406040345837940517019299364450239246838541193837045933718615973516630761028389843942929053093676631935180075582568265242179014958362183111420609049320599982966394838699672237120497371647874086684817759300168004158015258474262423286928631668938839835705942681947572593219470558307017772276063635681071738499816289247778022470636968987656572057803595489408206323133920736220778860398737301955003132261934660419014703035509729577378276447723357445896706209711878930009950924883284267325965632110933753699847258562268555137308214501946645315590326154974924561088699207065968703985202159831596412386532035555679673996045605631674146725437734624100304158185553891046006787653237426826644357294916382187671533187502184817590248880562030035855367478805302638091489689426820701526011031908000542081573049892309035979297794914399969634286493392300896131508734937468839869312059724345051127917238266164699728274722676900557781185726417638843647690955294010920852295168774259537972562458449947678110996394366150707751940365343254595488495020802251294752159828770406536760533749486308237510858208736037487841287389482266442127285754126292146508500137991203295757035213854094599567505087643346968338959121141255989193417190995456419874548715372196435890506870935609004903863585813799515564354955906825779505710656891670865334784648116818069799091774838542247083843300575610214990600146781631414710390088547163227298468086107869147869480628682690038439604626728559476492546776763314221004553043622693858722935291173190908670266385199606889826062100033836224932003464371561030288870789666142031483779050015167877919027578051027308106551617276225102638229537865072212530611280890914533600027486200742996464121413509453498734533402364066473949920153239987498764243631647805284970061543507921022893943084790763321459243388652386748126802449151336345705997888292898799846438722694440656102363665110219879582003083579395925348973543144277393561182982274137031814583191168366681311262075447364843987236228255476651664305865589614504748046951442550031739546507151697621167421718948116364802852139103226441880101275601700892137045688878751535317143741811177558337210759585752585829326820516048002162171410575152881086883712100891427018042744452353239214035202774189443772636237615808455564068988698546189668393040888019779072479071445192598489238967192708203239696854183915665768307899753709729975779162430649931356927432239145654586732779705871880230543413243392329576352893678421484760942011504199266457819993402767768540384247841761267578247413650220258684287737989321914946150959172778869880440987082503254661637013302643035211907433346431453470495374954473738825792630170205975000974900708346480688546935239776041361220228159577337771871474489268042043749210985878108062786844586656702174071772662353623763580992162065143253944252033376194907448363628168875751427210828515443573187477288926409497015999114502263360461408026209174355400120563723821152501770561933834568814795988642048379077281666813608401256913757513455661648179869477085979813766990132959161740516008970929888544935413305916375677528627876886187047288541590769803701322706781410918162477385916187120919736975895132168006394583138425318689958468149794203691590648711377286733725743384791703630757687679138017407588295095164332458842421779014034452442798788407466566054996294426743655067737077891455455692916908470410179526668090491436933121359849366414068506962038772041127846163870968528017901637954452152132937520132115161530891371743602848145575605002372098295061583882943032756477649356551096444275880461494030904223088374634019499960227569360430504716392836721416028579313755911445500664056484054865013479701641023527393287699108610721749887058811776205801353208757988842009864216548002063597309766733111076301504921947793284827209428294515912711775472055665676899191261027550139320734672442320714586768018142759228489800742311286731985621477357368349349098531368131773414497473349329828886411493874163005656596580157821592452198817470069958394309392885905779663242305703186684660956038351037716820004507712292481785535696208409060043469540247619091190114418753755202579015237113127417816065723461284834762423755251482035906636359983486689421338828836232259662617532751087727547153260667181963534429497391341777056602067241189254236712434262857257386698873882212364341920428796424448778062575629354851468706150865323519132130169083299990940167158823834158050271874223947638122455468231998848687832569648631568090324856807966070577317383905088985131322982217207748289867907120490664319504426518615066426207250414170201576159797339653082628844868970535010327182860666749436545530061662267084687977907256029566597719318883283312377419873570386096089635171164314961275531439650683138004176107070632898643023649793563337088634887039501841363827233078858772611126860451173047878888664196145591298968508997744037683258725002973790881900369047766586253407097819859959206688440932733411582609778972491117721323570270582116768737673605964282567345561689815451807129282202520643082173031611680806696928211307740262989637591678170334486613740939952481422985649342774952989954374545779256288365016999070162000802859565341304140623363007184498616633674730137667698842449014640589741221699215003424894366605109497513985780803608494357616129867099004289930294304745184544895881740834290132825029176783008100495665199359544122339896165113862173157741307578136959282764092830531109084153969725780300877830002090579836658363755910032483749377457164667493889196338533759905850149721779348988635607303494619388442182556427842350676747473287187600977392328193353127509153031848005404609103822779671504186222692037511657261957302045667640992174408282115931633068142523345476059477676750683709580531102171913748464935212558533507956486497216055123560170492745857412814633341576991297303372749340640181804578142026680625499600773724348899015563663819789925556671282494630939383860341902356089814482727660072623644280768124688616429719346860804492855813861898282244563118185143835474551569453225549672728751572920305239828194306327162642109151265151410838810163534916083823305538697111514395534344510882835971033163004959244145985482313704396074396034747976024950007043834835052079542872560854598403865643159980183602787955038623170004066819508405321135664054836131708655780860605775157875297615842368256889144194857325967021086433619645606499513867087263605533716790313791423824216145385068503531099085504805773583499448620604708129094858259966907870690240445694154426573755423492831875630143143015199428577307057828958172650512614601358580752025067267029974395371571344801393090506640264303951265999898316561595421651780856238687969061266063228487563580591459784063766006663229206546527691016117142602010066505394578690186788265986984360511509112488488403394245503115828723162895812398850564323817828652543278739580534156434324716051526044949216892179524025488701848924059430401513342064879764173943088408906536676908543799700134356235651660209604589417114597080710294784760454297010660017225319563857313827568242022605589065469269480344441459228834319564074728986824451427998988121541238219345103056248766828334070064675158105835368039293006445484825506114324142636175430783789208077348483548540346953868036062464228204416180155573334120288169527558799645928196382428230513999169403156015666860443637800843386293237968102765162986927531936873265255045107354893964876869620967892818771885754718500774658344656731348835265010357696885073986041165027719630328850439151726524945300287002531234449875463652651522134795154061377063378043373694762152367008755047452333514978895814290936571932325371277461020262342793245211270034621514777290653211046142010935046569117229371051982275979565286017138935524046569590830898673657092848754113490224074767348739401851727668323246895200234661755741333343225370569962561755683473672025688408090806981038480825235865435374585620929475704836890332157259892726939806635623900442299267730596052378081671809713286393451379415569243017979858222704439320624009175607587635407054600990964919179321046810974158748720466334845986089325274220716264497576125395253693473399110362308423754989512838291318108988415513428582053405708734679277294790275282778827855752856726959622385914391712455770510357889690168755875801372441810608456749866480272064970281363584048203040788354827142120042813072958583971834661637070114129933109928813903455793954642375922020597096634432592114569577124553530603638085822653125176283447542006484553126072354371854945246621220664680104693503238779989838873055002482386404685837581048019663089928492804766505776480930035389260817689000373860975967922472178965745012372734414206716986565359809066003215310524682353374506230762289746658970944078928358620436763460337491159787664518800159487035075261167587431732634619740039131142461156024152189811008273031473689226951727696367389241541829856488821868451882342833812471512588021948991564490279133722440402410280128148672922274217069370393980038936554354982455594249376925574238868540121002345722627293795011689638665345486209488504372167354870844736371907524617159644858537323619993937906776236558757267105685616712277102491002172332587306289316424017322165183660080087033829370528934165616384996224837293574565714331033225999557973034857608461155376283886186192136468596024622295894975441711424703145792336451784387785372568481609392172149323369873738643761742689422933769880311320621366029414396205190538407668928718821552930361816480341563419575467121757835393462728389912081354132647303307576653339872446680532926003256871934014167178784874182506935200782158880687974207358405814666862617504531045238593393024420023132859157550493019177247412906504306057056910139323213400851979339306644552873961165829394643522960636010611121027965257390862433289657305318383189781898755336682684591277310709320210499454100538578031172545640525198159368435382338155021078616430361067695184174273135318616819843166233733731246511960478405402244271171696479800316982314486500907669393898349648699191008797290535258567225474964088942524603272794950119775302967655482268027792827353501863809898204241107414255901000544993080197524661709331405189245813108212629537307402292898745634835920025530093248303400800262491620426725145389187723619764693880269739101354263806412123310483282672145002577041018575436831179520831311714191089644059396560421019361509263898334543637655764932731949193762747120628545328770596707567574592003028355927719643349834603013687477106588474228743950893321686223727626661849080143574795395870050653366546655803896818292354458881054495315246006953338352878921528396779744674554275734914434368821917304611057748240416975801622608003105142432794431791486966453364582188936038446123408517997546180413927991650622328709713759734695747901625205874226884004906677045526042054865515619252511710205218460660045802147277377452795923619583792352597670801077703885251106695631416107089735363390558473711692167869601983252331905021170585781495700530311223108599786117866070387666805834309093650647396110435255314731472279512190888365376970055094972434705414787092684532194105903655104755922374995762211786448857887291517400418613066984259716875377769666775396030737860757569325556607841455978760726348367393759813420079311007576800248161318254831322675461077071420198963435275292555292891618566373884853531832898867546426843552223509329646299811219813538799893653826558965734558921551615516220325434392939405564940563227336046330971025124240794445481792463751059544576940453031820484775127860953026565482286226355184750934684707784028354029209855008748216778239139827586656339476680508456361426275699335532743642763845516857015516140990475768675072185795481215375935998856177239669404039037664673759463898511373092699884101351168404868389546626993073297703822099407515591540989433589215358523990122562594647673783464917168465745954012669119362788539008932228945482204041101156132386120182971656411783888080823624286103898197010651241839129242884797642724216253150612917342432813231527567042863364972127617887647012301134265364917834302467731958728534841537606653198010038835150136022095041790153901800632121722766200415797065011412975310495796295389206773451710771247685949579520332238085028873095830755653657445834278594083335671186235594975871969256154667263105398572380360969623633344359686944703106726387781127028560788785266894402288205456444262824437105773268316846042319344640329473950390662550117308774376711437665626446389204412452223688066839267336670859851514432999983236088671702804434644472981043388011464785312274347275010748190324067360571428521298025700926530620334612544884596400500662213369387717470930289962450906465775238839633526830188626082069128594002142723366404164333825206348812378021421091152786336590427976420872721492710252616712692018039411391629916014345799165239925911626316358817573566642291576066900004318599792603849889840348416592642156914767079731045538806773139248583789091144187250545389349853278888599337885162968349386815541299423333019134764028308596898167100613468787221648612106584914779741513233161632620184169002720766126446746234074570007936792744323110941978197224772916393628745539756151456536018345311398660088324316575225780431690185043254541276274049854391190268763673516385254005093314787110229043828421182356919478015408981549173014151897166921312121366483330233236886551240440280736399263330371027408733856917051607544878301632298523650666873603421335238255141932964153090316024458590921801801527084116058508436018591843852950661937672022722972375283071744864192659795420323225441558347249199824176495969171387085087075643243549599167520279536621983935312374372673577233285478276045695081632580697577333828166401669866066271898179584213581323983508289574527458648165836895817500711787283995635889788371296643765139367098557257766463815858974625998099920412459454501847533663902420431117033328875135781544596686158854711820847768529974904476731222944650214394864838925151202980969281077230576186945031007049609095831993210539341789461566397075596415225756088709501501290644517701675641991490105462365858992032245673574780077342056253676275102417641489173902026980655584319499922286446246699276283393091792067774934676516867810612651641755345334826091281235339754046609528402333807059596561573709668270420880427870620793492281619005462767995893497419590243313733564923215314572778502323889218728462444246291124884329721924166912620656538977363956486491203081641384355389627543816712385503344040535564072441522138988235943323116208669597079399807172832188270602048434967451841791363249266376470537974041825136013959594971219168492729385701516709083675145783497113617729608972966323867292265129432577049912095141973071003710670199003925131318607717380900673702206178153633977173004039327304692128111040446619828380751280654699811987791203133193983515592189714757074164720682786194917891362573943944761442428730284889610888087843040552289406904708426567593586893128390941332205715908148887125425331367027199529995322046785895189596142845328554342116135732336525077592237029255210571596420266040926115756969687418339921439384650750592228354127165221170722000149484959593592929405759472471710137564233992396544879116901215801006330494525280678577856671037120098276116261006262726726787057887912645486746063197112376260103096018789785862356606525986908437994084053902731047623387259418780559903612950092755264791941973987795698238808420518040976842972855208471460924897042641173818555598086594648521454104865539506672006604153043469157144075688424188773297637675485619971867563478750081659225035018265887331871699443880478619137503643033397707439199835444915803595749728477927253474582857884378424136294000420287689458128180873447335140300277254265734652680491111277652014420620122669107902254003256170305657547089646679077305430755460082054749240356605639441460767096988661627971037518157575845595426468400500341690425553105292339810749649333775132344457923281354028939150464604126692293294468435274213158698194134743482714593050260072220790262378871477530898139232895558977279695945706056739595749678973048173675366993223862782049081034499968920439049590185404092897166767479059375674520824867281946905488229259830960033235027114213002684918184386202016510034225389759890642970225144202734118556027736105620860381814436355818742596919416682372876099197512230489253665422933453855254252823155466971404792728973529202033350281858995522171583373045214319035959227596362383479578492493400099850394715949399616809563888196687136421121622232945910006102754590844632964013214179575256557688113123327063713789208632964260164510129772068381647983282045079893478482053963379449967182363879926859917839138795029619090164422011676576938505197324862351130682088692671587570290456863901705819964433729079619272868745669561270024577616544734076488190963174276290938168746719395685121606505657733679116036166085122365931046234615199389678441059877010133877501817393268071790529982837274854258971534322949022404761932824984744378196903729305114989108800948830595011668554372088909365196051997779221554603839528609764065152384125087074173534903478607247555080130132305624448023149368901321534370837368377685776008973693115476946196140932148445398945605195383618482297255936903134628183718942848032134988324625004591133718729626127440885924137420951167580477445346261508766587115039264075901823805938956019897628869144943235707361964868394290456140769498332600558241347295143612920380134874815312234294924047224122895155413827421891424942976032136333925431292395520820654385982536432347598739556851483248055054850460582576634359965250127292960917721402237030315014177917019945377917940301934636202893471371051442774902380666089185387862823324377482747224126592322362275810714417997457681900885565826946166859774385183070967627021728526714782512628368926132760806174320549074070281428769892307151995826488269033702373427048153392812344858284846716690851470547972568362737992796421203913680100131609402428164259092412356762481570951136565237102083838243792826180758722512446216585326542623030531200223290880698299708250010212505431711257653976630600560231458288820415019609175226538684048012729710224455141061055467513732021676946490949628566506994758604796142036476789707173322194854900813065772063153632413072136046914965962245724599043761532749737867373923990573252350187226655489477576346362220861235441833562183140180168650682058716998367420887706834498548367235868428684036512534047076426309655165476583480592057479599301900404965567968604662227441952374015321682353870071867675402186221986884175602160574813446202229531315453207700488778665806001227628649579518803494307610951934266840136918968262756283706815234782079689262943020666629143785443158982217992255621497762444743458396550038569708078302022776085348887245604222399270094939251614818652027751314475419661098462435141091752679043766639997660778100994412042565127993357089469861449797837841260183028704422383494474598761928443467596153175832451419271534981968559394358258813657416409461995178561842749262746545051201222773585263638861684383554224580936915239154105937374167609266611407525003104669412290754815562197652118046651107278777789355738610429552968960318986697903673616754495151726028254225065267121950050089971094233956836672660548377581207021765653698548090598100320105870197262769028838721038571968924403512989066219487128046709299759183975964045281961163362953700313648161112319470311578514179328862207288210418552081743146688700523438571640348960582744442784523715690190212649530671825667680213255331285695786379000373964740016244592671697562416303189230039517436676225048364647007481458533991554268612248369740973658292533048043940105877955560186139818442464885524846291196553989181116489936339879043638749018008929185199746190221280792988049674671077881428545826919811693656434315635775490507548869256935071240092153196781673644885747198614359083098124273947264781238124701951979226636221276197106162226195811243338733071386263061433066599883964874935823597629573561172447623327746739401996281101153762456178603768585136391153239379029684765235459347031391831817274356844474272697018759067232793070657803511957383824642166091775511922085997640628014461582583129099053073342630977679045151879051057850907001758977765290439400946294425352432389503846864512948998295614348578701457254600849792064266301270630999138113268880458897866578883870467412741936896127590568001237898113634008049767639482484160009303001000974733395726762327570613364889692490536043920221328622238992992446992259657167939434445868818458276043044476631673763821628111147113669370594971029300523121539876309267762001879836436611486786252964439025191142945497086980407365865445819033643481430871351182440510867002878185039385632933129152440764109012723814882079003153020583059816780587532587214170668899200337401491647783462672649716898483792997429330755185621560144975489128832806217987693541533205032444781701223173010315850916892598005952677873627349769560324641907197916475819338445868393392409309246261402909497460540906864441694827980809976841490885691458535044771881687897372443351370052601941563150406475744688530276263558380695651847184202684755182497552159308706327871031521909738563891986708542515799283367973704556827191984643754423855371440488872771276721965251399822761303157991142653784554266237889345294885330770670816430612206056744032523735090338101348261355879608376216559192001776563231031187853111866937444121837571237037525544402934361980774953384541258897996570400903883497818288669710707167636732277832029005532497520015450963784984155417355425040563219062837536832986893611477534476794619833045187667153350431466302946284940525203466306511217364223359411480526322687387473753567850121166036230859008070498124768404222387004590191867404869823020142221673393646391105047034540200047817733900926620342008234947258878850384132201906891715460792699890718567904828664963987854175467327367595779689135711290266725323512672291587016770844651501744859425348523890096906442098143587428070485522789793815608135576546627200437071370275597620852481908273286577639487321308385901068724346769642428882015773653467389671899619946445653220546398974875832985393608399905562330609499458402304567447956338242732319996730534806003045317478775845187263326397291130487874044264998273171945267124600421319232819622053399853971900737801404950400967291590383137838315020614480722853232507003570514146684146293324652534573896263307095229780896456859733716832239842155340366640442945485720670357969038086734930644109814516073220598636783975459470466733931554077736434744389602129631537656111534820586755133788531234152472320968791885653770148336304157312035471930875856002284179093413564028820267694904577230868529348711673300552105489079725530075497549267457402504295001935170588486406063560528132236989627077556426370691905143626301148621354466019175462110041753815986300662356048444439359568869969323825356050559105819084647846395023017500387358338961563829588991216156303191720159012844165622345214751062240142637926558383296053706056766616509105700427947832947489357229720830896452087889935424115062017915300597085502282828588205427482626769678262709546894178939972929287858281853414381042178064733141046205229080579752619911866180911937507373662407080826031882926803484671344529410790252454319708441378402772732263407018828278063670622296002361983032832570354438004934915834239912476854552227189862769181240236821420732086499699328233744757768028554395212430283921040703569326402305220453865789278456342190644569181722235250866745587339454044120343138963228509832634685854725453045774751314801335706312864550036334549538577078319716777164266876880894442551181016319332282114647359545082744710764563502025433150665273713631554881728528773856890421046464393886381455019302469638631414511510169978882848556838964707997073889524823110808934042198681996433079304199950488419763009880222169863004095190180395546428563453823790711588123349535240288024440705495150935657858904837750795247577818975268923462248811366320608053375441624765753377560179483821750504576932444765964245331967002223585067899359373456292299170764595947589337802422057249970436666952526070866751500339117489144090104290569186831006856261682860354960293034530581205046453911965146374931816609909298538631166220635849122919560754213531143305404569241837024823563035826226192880189058773601446380762345810660643775458574988275838244001666558560174479005777084831205585672423764838619453357443779790703860488631528727978480884082641665981373280768919799702943373863664844711778122334142486009645503839742836802370362981060062933066909585282973216782249325558860550371993357542881825208775904396632378720714914946011467883107485710935518845549164879346352140087949080242555918900479142102997446972078426942219982566502425042003138015499904613022917399143725872998652038242895406772440333385520351833685412945789588519308627493088128331371724602699631651954394321007445537859523750025453040118272737350198688211810185814949246816346081884166607598425102519747988245736776887008674857590744455870127916487889361679063507031913704765545916551575793205958048234696586461569211026289479748191086829184836294262417079207816657954771090665883087362883529373585421993292107111941484226944826038749212678536024583303838647229257045959993040912115076916088479904665949039673416638471159655563976992270211459586031374282699077429368142744450859276146882979834933805488254694405436637229336350308325917654865246062817950864977437514177023581859589753380017956133468494073615800745520451020709607794976026345227230488842627848248886247751420986573398805984126467597199807303083013409550490731619927316089716805769901167407068987282801595249070976816518853026201302163375255783950434988622119494899718241919773228997544935193520750790875269379081441213351089757253930219696854086295491018874902070230557167212890907185848230788530844106019210188699398416325851135395981803717684927064854999433247337609078203446250961349675540000160493261385691464253017289357901840810906572657422101492321845516276742976078258906973255002640927013901232472467849539499612458010136516839594574295054975969740521868378669981623396604467629006918552229120481540689588672937674813157338408554539733445632904559417969341324392384260067867817460373885631351909304063171735030736474196997212679666453956007308738319547854184831076864626373644245210101183997302093337971535450179148346234774386630006697506479988726162734330842771778518991295227716339546403945125232799578154358579977122368170711121209336385749493515532283823367468531443396427376574173321899675920904181015094180835678537144559477382522229998056423406818831661872440104460062678193424461035102148185942948571793908132010772262623210185412628978967138283611785221727463800866672827569455558509070927948506794591124877399168139702678209612822005643464711419388938121685935128018772999171642580641385071197999052577213743470863228020364945463460371010775895011615306306645650691807755899149816673290417268257204223947994523183462759358355802172404673049737720535882358745298933360766575364528519427674972870805153004938392568374930712400574723813108178554256221534619785859590488304570858404315024982813062306743200885120141992464228856206239137520683744099404178377532902126469434689211174428253254670074192665766284464902127908498428291008209476857020939919130327249048935016635239506547734193423423749035682995992307237293225589577795744441185420580099085533476799849086980331798162042165489983961826273929848627935900055843484579449864428424196418330615052372651887151443451511954579088050934247243060253996402635906112290765978736056335328866958280537567128696715765023207301965990921430449784167766964862638639008054295967211069258701752886108179400009200388596687566773054713723581300098148606952198507461979365328939661284065096736439608693661251697099351482267774689622923689095613640874293328984413482414536885498528968070767738647384806358162929253711128422054305349865268150635082206131462395476177734136200606910741955216163239684851506439943814530819614992650647689122909164754843691932617643421026352128395850785380660129296324553771264380550856506820888655363773518732394703030434312885188242158258972501581001837744261613561659982281991406509902795472978943969455294118466697599091555161633959913270497354006505718971923865249397377979382317552625224233720694537733434564926353282145754882827805575930097737499977805995165966732335128648603119280787339874433065859485624759444016146228865105924157443273504090262644682005510089545069591473153650985256927523947690584157858568530327131239159214210471798812380232887990987698036097981253678814139011803427063927342362854974251505645186756363774490642641165966402258847164881027016820338914529764177841884775221077162377585000933708363894645300906105380268859334593644716249096836583074408962031766403981474884676307302553203087428210657529794913327693848840063749017926393224877039662301381973375488319284318392023812175297067320304564641037058410607777469173135655197202217510172663766101309757150070898871817249797329355849378180778439777601851157160746756908164626376945617760242519199501033550254647080530562909290740146761419628477857636868375488256213457985144427093628878073597025695145432300456224664865207256940846645240125114150601244753171153758509687436052246579874513121062567408643021812447854167992929893929053073209028055467549087979793469158639987096209724124382429488628128940225994107198267068624272664566236123390810023719648104168018040947908302825218533804670878986239867917322737334156819727796143193258087326748395807165310379235567221410023854930513949583076375268368140746013598154953577549693927509824798541018312499687973904196493128823118647339736353908837254461868965798789269078968647983123966951597621667584410863475593317792351444968756134164051106988235545565230270593479492414754667210397011072324865840460268406191282929548879278214879733929806911633328814704511927319137781555955794133495361090480234119154449434044480047315517578505128953722829246955050411519378783399911589112628257697722483783028870955977216905139799852246190120629963848901940248268865176411288583369669693539623718983308510363937158681391460464925936695077466763941686436211679992251238929294865920814529817304202611037294041960233245247528794714446749248578064900228222985015904748266497931196732306731455968797104592143165491927327337560268635851904674179196742297452619705474923880348078650195725246967189634569209830895257520040783670775692737035201105485090214785749704564359323213099783651841693164639382887904409792892920564715727482594830032030204023294576012596491493675581062925937920683942812588736729428172019859792143538136643293046482309533676357774545393521970965940903157837168716851054671247394911835477104161123160421967814261643854634899904817776164855257098273213207006438838082419357166788835082246022901443102669906320183177605330644661735121862998363412314464630644201166788252488447016994328166271210616024356882950856265039179953154903387833046509591677302623588192214216462592746444334568510642880457265781395987456086703487957298179242646049075205857947060100777244760615591595135501242336207368717186241332385503490142148659946969044713216226102747445233577968307713178267848524405590128528744896215028461855316655997088018462720127456917011389750880743032586555497599349808788814095613106395766114786557978107758551889477096283825806341559954738944386429853683478813618585258780224375576668324676274478933188569388303393916011438259269097671378944489133065201890297405775208754332398126943651915071736582700068742211621947972405842978605757013080488015543569596841130902237568108659432443085571497402202926065252149614600341899127953335263024365742847453177595721519456832778236156788936409159118185106893817174365825042253174637534170556729761616790009651022245169065477075531783428337926474088786264909681670194834051058858009271545815604897598043285949950048847898976652287699083591119766793456556180510243034818350797105448164542185140593792056077480561362929568259036464439935891615353237607083554987290918879001055849312505731439353813757112375298727879729570538690531106944466024871311104499606717153076128724031151394206840524459347641319113915474013984052031342749668188915268812397261792159424086385801026913505730402022940860478885974773806994123446069757206945296227510433135524202639262000374238927748243585921608526994784320821495337845942856501781412296301606200963555328375678241253729802878258825883176118503954286309036343784541739487479843706474372705156975567486334858901166182206884718620863024741830633280066120609783682628210374135388598602865892410377651057878141707901694171719103431027226191666461113953927275481835586079091692450227274409458766067117929919503170331286648210594250205364419931398581071706410108958071122160173451481249283966789487487591740936263791031325694803868664566353295619186653616152035992393060492727773431753149320019194953763568357602133636741620944473642735120875224929795904007580172772049802134883416112805510320292984652228850283924212301219791481477317295915272826335372775009272171203293359576509021337763773634182584642574785467386180143675305190573938670080060828280796484019261518438251815191337075563773218320313342959283550399031318590247671865938281945809384255242680442475142660374734827085289982219306758824083760240424345974971429346341143633352480422189902564812195113722092513296571016472170278974409420511608902846241830135374505866996758819349593813337562791859848204081344205558520903306927676219159563856847289408779220247547876929418909560991127474202550217430821397823736434095454437644257575384721243857557846170447343999611167046736184518760750720695895476980652833903847413533954133579466121963418867506787373725420734168341938995433140084831730571936908523451410188283809605820917763275496446437609746654580994215905438406938716916137048975074187380822618506600515554126883359599281657849146200340502525145524053036659130093846780059378561339433912465692074879344140882628706003823016755303332565229292728962951725879367388595520207293768675244328697200277715030440281651428766798942245290803291260097158067288192929100278218017326176633123690694807326164874291778927673926647095190308055880513938521505025269471850186722841808137389080790419300863850559507055773086181559302094003129746017806772094493124531712313091302350373029460734039640183113102609270243034459145401269972182153651964260120806009439923624835657072089728237753371315239514405635202728984202392245320432396713860143474554542294808231241954126193108507630944897167583139398247732309917422319894359720912053557788830145748799461831812566778312585851837361456151417968888967828485336370245024002699333261526955027174219265840725089706598545086238667744808045252089244211707981000096795406524475893936727822122301826618494109499482829568800952869764848282648832618070922797096164462170122876487491012419941350477927354778678828421794958872658592056714461556341811673121366622727335194889776594951707089231814479939709688476721203645344809065902828282372528620860781762583857025872200331106419036596884114816059662349616506155502252810808497729525128110843346792052107084282370160154784035337204628209248287493431055053345756481687598914890070323955202868446298872768598145952541074046676393470351816054143252966346100830298060961259609518860108142255801648635391538524972187119684336551332988163532415711972683074324966781862529622714140895060331382046886502473995657520449354811153808524998974272200615313129314304139871082358703933213045396818594515963112368408954688294193787663012127940043827609960786565735869278648362769272199603909700127622503894467053703740247769653391787264867024962214237118061019359301332664055569429329855559341536964695615975085075851839698444883312121864458744892482869508568447700292741402517229343494713412767827475026109111064080582317064006123872030466750696185764508913369169769632868990693197273744351698990944881059392920018220750797256665746755860429146895150224117610370263152246008429120703584733472629031771670064444198117657048552367101606799354046518275836368505988991634142602363765921430670177400092814773420489154646235222833110652571674707798744177443066403254810885274614916452210036414467897326585232306154429991537720891166097717469840627994649017737838743228275836534664447042019365848794059343533001864569228462949002149251428257741277979853105446334956668415213863320690711796039002108607883979288956829190058151558987248844723101738940350468384707004083128067815643044290112334306997293833911913785922895108769055192763326496478434320761691348541593767936997611777315276020486898124058203146237184803950770348093143125725591954871157076652335429214677774549264384221652170666454971508972524000205461305048350819917016196112012655354989987209890908555817050256713209542625760109472737213367240412730676526493809154119947833403512604884946369049107173277401632833856155764914585002383648010293091300125298408948790432156060821791687432921248634793202906975458083720104924494425370426438201543166266307982447291430663516483549698776537627524948975573877360129975328827591772148328688088819201497272352050977210551424045070939176062078457069031155049961970853561849095585141832514567477275447555226629629332818755324917166583489243159204670456055013282034453516763673134224670902190617220516738572869667417967971029898589055688893424214103455734717098838915621774623304413272312730889626032232076653629569868850088204473687310163795491389465578421853818012170686737596666358826475294665778657843511861754955615226872556993863445229857782392522701738802544624833184412092227596591750933395997675078801164608085436521371829513779620802278027093135203950884327644570033271962591683100792738730083689494043408628667322364822804154804925064267966521915437653721349576334001734576114220531323187785198038484255157655155439238903875073650952227093654933853862917826104409573079812777549536493016856894928141925045200170548686086475583618236034003410387687710671960953485880470913354270803857924861474447902706735783638955309198793112412118961570293055566924707107191597962893274847944383924056528702469986836668110007099072239996074361491683434109113863247684657202425129605128564183570394199293909120260800298161747562436684470892906184288039882712596431398923441573026356897662648443175246564341960361915519252999472896350853706880322197139243144624924417317993271623892775111422514352564538357903822827301851841465739004283571571881918654819422495623213356619864021176365853662867473254250503394922115328290545944472713935565976597758503917923907045943327837749399973495645848813500916230727064029531586343435704423085568270952823822216151145521198469568928790128311563432256713104849049078363249993152280135279836562133966707809052209654776729642556121071234174626948336207648950249333943288389980149076813599817130581776096438410811336809234837386854253322124172750525415261098413379109157786664156010577907346164115205708284025453332602218539553145648685383480801854710676121624152466059161614231081120476843333205762009221195828364617098748352356357656858729034756222783246866837536493657328967722924459412686427617003107002033770550463235911678385051901982931501018043842872921684098356284922596327975701969062832087317694222733137824494475972195389312477473871190612246692620008373900489123961436608720682865246587826352607752560681370126535925804718858699347577533856991179386591234142831922385233297161975599644361743579038790171741076013203669483980164491521371736831490968004259835069133115365876028413931329121473909949890720371123481058039265056393898348284048513649977784946104942431261447691507522194458677410277012052249669374330239317506857419821162140434022236580864246247567664545781319679374729083187691383615472233097860328192612286016173715730876799529580812792689167829492144558195129251295263380344179879479871793786062444871737745532333632292514175677070976374538877116160096096990719147494676475229720458177013165319503966947660185231477692584561256368429681355440191827655765760864443938466724929077131715063158104164139543726201171250014170526931804855215094428780929344178429058092290186133536981295335351713533953253794951221083809686611741288578473098208487109208249658190525582262330973596739927340798917625956420840848836448674352864335544711170285027599615441534772464820451443610430141408452598220743197417374413578499455303588937305173815925370147246297150230641479337547038692464345527542393684228444439730947347064741005545199089617662936331231256094390253408355086864296648069843532757844861092041138204156484732410358271325740286528310179064138977211474966223339405726554843737618072817988597354813690473744857090495947810572777946624535358385226985840439733764537471562248066377910246448798401780058893477448984663993968929029519864521751954045456127836062848945695623183966207748839308188039715241595216260901311692103682842222135717325305628888112385797896593651251726922329183638307520072891452408797808265838520723056403830981780879358961290423854936438732440776168272077078333823963205820442179319175657614053432925966789814840883688370695335236524614065845478268418061356590165943358339617165892899648894903293940477554753334314861930824778545930075859478686426607252588701999009343296466024378061866879592847446240315163250752261054186656774037255789201928735118407013534078891025598899227320977284853566613058957643487982286631189874777114096095942239551027314737848255767089016238450570347827567546276141180046101371487938064903202370680139572796903219557984383439841373116988684795421444666483592250481763700911356958983471535884585476231335965276308120560475112898681230821212694989734866084533492175635696467111970349819947791324798343434624069692582062630391104452951418793867600467155906661155470652834372518401784870481463449725673665113520477007640963520810211999558244859081757745419054076397702034438017468551032628175134765752578127815201593265591951651664752790717835553920491087823848415014076657402366818559300678330978573798541529514792152437355774972715917747104726484889981142799728656185521456259448202235523116738504562465222613967196290656851063178493988389651419141771414297734504206830855115309457466362941640778558286986385543843269030300207979654207412572959289723154778333214952539858972745706468974102532581644162003963559352232458003837089513550248049543796769362394445869576939228505601298465494575360110011670058473380115807752178409518424692374090419099327187022033131602024075686480425385926378332114613373860103841791930849826741251313876392907111160633998141914864687026976617755995695989823796137843099392339401868120515897560709270345571339983725882261798012435573080438702910353157879810239612263997548915155896345653641289747761877751391372684642479519110703534760358693692349293644197581043163063327628735469628176752378217611236898924138104440813010357346904424357456623463506273740433749724803444045375995994774881058642721890343184591594902726297345314020977786109806930594861283043131151254660967292193187350647973429480482536542557246497159687780590627120797703866335743335808025259938207387971516758865411263411695705160432033700752179072847865706720519391675385912186026656316450927610076247834246830727137429474895695159781235739399530845536786743213535682410274924944984425818857217838829643200328723504228054248649493349231466120020305715245440127083750026675348761855398233492939614086678975891290690840861502541057279842800011151621612026819528924068780228780894506763787186582501796879423827468094844071297003451897535198197088024702048831808995225470495707659821361769269140100444473863038598196818449424911390697584525050280977573203581969597091049516078043073962491877163668036994155419063207263368404912149159748214204029802910727023445888140024018614762858385376582959773538753926142919815651655885539906391242426599549621496471450870317192336652107252315595477910256114366328469784778803708496925131298340607476954399704434029090988235345666909714281497265108968485653206233626923456968324640057056901275162462618851744291395171413032488325216501309916933818611763928457263659833093178999038815734129429534342919880122725848955287530583079108754737065577157483432497431253264779618501340584519880167071182955816574709249499520925360547668058696932857438832611455416379118166270534106908792043583545946733978875732558560826917559905330967027668816956589650741486528710958842218563150757512830253473269759808850961527164821580806937814663463501957095178554727731287093479446395818741858853946831057210993833193944408656914475487015415621186249145087283303569607641247057402441167083578861525039135985471238643050147836996025832008425309731045349344163882579127207796908555143792047545996809867562356019126253668401030209690825262595469038933058671565482220336902772894074766991477608048018164012355313057790719848435498198116878776753769856059837722634593064245177534881528042782819619518322486404465314192236178783228322569193771118274943836868510432905561965939325730846661222714999383082435270380491696418891801152204225481807732553425821395578301390044920010268780706603379486678326160708956778520860688244773355642009112130936740631460522167996024135050542282101208192585312618242190556389607390413934645858769249517908262247849401881872455058522770052023207376982599121354940935353403490154104846444768970721661432681392618052453226408791661862997535764780462230348116273857154974946841542647375106493959055241050512860519452904929459289806107532653352511361501384553426593426850839714250669047766756329649071240446817104345193785001748494573217053436642334975317089012930586213037278967550298685177091322674421537328035307799773141065716671019391450637917497744826818285065184669504854391512705611058790409689931821761742480779047392108393906463247409466223997955308194291182412330860339244833952679758033030466085683971383335113186007560839875941976614429452792317149663168116194869353470519084292037309265351365350164303116226550783462433031506646741398769509409934470531922678040664096461104076186647127133042519579837608468132007582801050043190437139464123114729740624253647700188635615867147586874728398034453861431484263366226314409058440370294638466558738114322190455946663176701689487216344942484963761569057725193211050865543640207341433790695337951787850898215737887400613578644292065551000304135840233296079853283419655562075899973921829062527918774272499083810925604142557861483935196086958919036154692180625643322547964443806888369076489210503742665941701125755962420092996246290401635997719397834292371740995414503633547144056093791020291605979993327438018655255285165830411516048179549870258932878654766981481753918825767936670255614815724749836091942026744709851492465789239524863091881348868311921523700514482804162656576619588841228876735596218228380049591730450283124211389040218774787084202524281185285149671880876700600949182552432616861297595801905508435335469843937369726990308922741852290434441514314229351405527566886387897492807565488267477309686532325129697835708679821845654771337938038495923780007459835682439283657270437671360364754472831803659310841020466659581153231947228081352630938428544889742507893379668748779226917456482573355090946289034812045201166683797153338043398108869722754660789991579939003563191260204716337393726272926924991141807985480356572518108349928100015398669325776792542171217566758833980767008967108581742742280439497953766614274126303495867844577276708211461225525780412388544416425956600738515301233047077812829840188885412481157433852059940768372770088224718813463483819044956922372321435328515386759402329591550295466868956564065212836221297214221826269900515248004772190063777965411023905050454142596461075399842137399168688137730624461032866310727748570292127014386341479335113374622489747634398935038567035794889332564916743868338687407174214384940550353575769634511454619271530838431664234896373117869566810655071452773618538561385257102572667538389216064360875632845739010802262616252827956305380728216217476569319166051031024044721931619939606305388741490287881636737988483077025969473093910732026995817239865641882171148109769689961539312488340625377353248827466180298718429449979555610808679717352468618533616062410054646318965094818935176235002815501866371084013563062213034371000827152511029314612745820863734114679258135764353479190329191401603349876174771967803894672934062984504848851359632500827859069220170673265546875558869952276767347073119515504210671277329526493291504103534718585292030405278941833966321906291431433909180934504891135266208481067639338037248965479845570834346744255331810833731901489146440943318631468508197090285203366902375831342104997185268647095153069903551378704642865410783154937476004848247431924211172716030121688331544792991160548247583416350366886524964745114219169981102191516517607093219635126288046493454609928983319601098882515729162685414901463768091556552058112483870164929738591293645347194997574936941781633008987763374618205382702067845704882890480737801197630379530885381836960383304851083809394480321337629126358675378778832496761111366160844791856534186368533512479254916456338048186835710999783765353159557012779556516479958888378546474241219166453076368460259448556783380012123452888597949260962848489530266236945083219269491997428985514559430845782952670146121522390755910715633119320827515090318597099437773876775291925083628428733479317303938389103591855274957984352041109661501781195476550182224304616693057884214861285239269600708018718489008868381632543309889998652056300378226869411785338576798623493010379511278006943169735757923230090316617940405226921525128151818738713542387514965925851513934864543184054228069329688604452804809432934264063348600591169668725787148920479614953406979005415439090564597398470268543846112832337319445977873389996182690772450574207376172734934308388741582362102095363695105526282797864486365688351481107920997011692508870134016692648680641343753825752403606684637816848129541967683955533132742444258462524430090511170096147051017485985858713739459368543311894261611464741914260634335515406951611149219945802856048169508241094467566114786509860801405204446010227690891704810796459830028446055414992417409430587838867094757321130381414148917708891145353022129740753627779270928973453358319267843670765569867515729795694516480572347499836859455039793006089251078394298025591236597063288939587237090532159882613959454077583098366150430836919300776980627106731676746040634483679040979282151437028937659170699690902961097520149667655430027725400998651839899048898875108432850463676194063142490741322904853833864906982799755640715911395511416363145193839749061358634203509687073457210228517975459295225375112162100686102388667235395397608820730145107552861975481510153210102165701242822887023001103432427514965916924676743123092993506688280077647724595040880323386750669893237522675504033598692206406748567294822996419709513769427287712509753807460731669992054728725689811455343256277140507620538365576227683961945188525662211558374010741912946443412588848500494718348009058814729423802575148886481036494767800635096787080915192337184810297437253124736794106505062787690865171098074796659748471777822409442322585090328159548543589632178487718229017263468409776229220316702941465531616809324867684030543856331092028956795191197519727540972273133792247993226705455478852337442614699655464330737484140816745200321632040780836582845014566497267323236430196374051017738274110038844689192128233629106870466900447427386365201555713603244703197469855204391460468561069455199714685800998413116282854205889722178641124861012872112233231303263539972302233610467228784834680397810742482003048894762396090609268872009939253748144245195664108028095287543438162252000331870936660634877581560098031912582219351673823677154871692472874749495479486245590273554812108301474491071721134825308617981467573328254682148981484671331756112499238928108544985758708053493251187364198367370145337357630035455147856866710221022716092347980151675464136742023095012028673513526767008735192839793893637292308067244717076155356253514231381860082542710114557344845878509689019789474673642288895984222931296530229976232878310786121548307617283875951924164836751447440933550739506489320151237731617081889962390294896971882479884253150584749696902655169500824659773816761982714998158931968102811626615448390984023901486821790578161960284535843360484811751804272796156471068476960997296643368102799729430976263796659861362968170169016362350868789104398632421566835450866753178657011337389203660187523500608134244627863907364087388174130333895642950228362990513963596007161390723340327294521033116037616783271103992568209452463616974175326274984681052853168339083952717882110599821311505635343766182533582150595085810895561523217726784272222099196413585518045519231987794698112093696407612428133282534991539753134458695817769607532528482569008062901981369640537410269757071514323544977257770372503485625923917886245287266918844240019875302375995935927149021156747733129726501591804523755827063788891632685563883122968283427503970298405784803949723043780747550320403312287594450152179087116804198461042796529559987008504753371239014727244485310582905751680674973576329326234803650325660965164295135038267056911712301542447123900964347627540073653768299057151451620600207536579709798156334739048907321857922834092175389514474973769669134949998966682321027820713760072275080712204528931769938890997957658359118795915056793498178137660893636167561237237061221559733957984162488213090095752409222655588985133671978071548400854319258014471262926088286479898278969930393960054029014509337621446634448654588887353688298665283956452474117228333458718505560112905968803278281383647884158890248970403680516780700991362891993111320549564940713968626126133059684203521621391109692708086695343881326275603184165790388931192475525729757127064745596903789181184184062020786969557448738982071095160878196302020270436786733067872428270560619250624282974802574982235143897767333104289486456079564689865415329261949876626057516678800039745637965556793426653041289802383110859350430171071543808870161622581533062504495023215875520570412303563966433193377075182080962860437309901939031472834737393583423209007664975557331321280382070044527465021954256783419896269140849092771276072780564081638053257975841679680775986656829077687495284903173883718296997215649366949236374325117407498133664756284187431739914474364578386373673485169380609643937756362443066408994597436937825009824080148843765924480156402686259886466885006615925901363155469724679689778371718595404766338924180737153414957627284711659732944078756514785753503154134333010670710324573516594638171766997779858118246567597812741412649964120715304105364346952846917816829937218087215490307668233220593078179355122236049363567109631127303402254848394708823712117936639413998884074801925328577454058893369943897706755999828145147506564422184951867545834132792368967996822083976252439483663226200529582416941716072620636676501986590549993715529107237290443453342392948716895144270755116068249136752200124866230294050875350862687878063525076207811149060284718405987413878062335436937979323369133720972006653507843475193707259764798368176667375688294584682274292110903393683567191280888290815542854161646732581070265494595248925390341754484112900641075597442988832573842186480130248418440658012300037687584890125619193699286339028334832123698372697434686589555353880602702954822073691261294665393703135429755490416231111123096396342332596868834116902638615016986426299037149743684198922902845243124564942453539036421913673584252022037079817046955369451165828829873377443518140624201100576396465235591929020400970805800751660740181470247931846527491517163670681768672568649577178835799696457208444893981760486859333154037407971083563712046961450518026878204964250261418198545131550479919435439616537171294651466667103658013535445876343685285445961988090300338995435311072557582078504976783656059065974978762074393670884873818770594220622521442677260588164423771881925741670736177296220993536195550802155240909704071342408740178438332148478774474029901639996115572126681085812511837991484930314238782180092556907090464600671891879807121665724715163466922224313425498923013396248718712919077060275780357352673894963198686585031981107946353121190313390160674240658020394707841466985529011004462099813193508323589627005690510306774813482159581327721123866004514874207557527251389355714197233238830653520069565146974868731084489683366874423593717797460776400887730835907496762754407658282903357397539721181312783651265801502748782192624032382362236032417283996669025395952052023955586788060356424821030736699446664068337239193130506664111587979592127739109740727645068803280114946873174866400718707237795005745019910242848944699153575129373413891077278781935513026707797737182858147516250053817488305679453406924635357866635385957135422298149621182104189754629398459730350236992718567726759226606923521951515104153872726017630194474219229802663365354113032897466001270291478461726761790193298782309409497942322215781579809938481981720020777233445639403983329429066279831225821566159994627269916045428309248982934440252516480869310835680617782432296736793499149741132057709616938091830959730650516251269294829762199578312992112159814463667892861560875909287368122497719767464432978541746697921415106398053206458268603908833267060633438778991717655550079274396437623525206576240188823624480669010029270174015146316300572681816600062909804351125290595087224347980727371769107280648932864536559861561388254071746834667832883237871774579419215706411441708384658512172907701584110519887536219384415128373557257682464981237932655163170227030149682180480860676662791730560641991506595164252394988199519516160279500637503858381254813298222711374922730479812377071100252076692843204912594999614962420235434029634207869491603903317828072868815839372056490215990863664052251755882133916905433761592718586353703093536158331447286859352918075490143658542845590908266785490899725334491559077662148219978917807581844818273442204110560332931087495829893038116122388082814358358611616082687878105612688918422068678732923888946360249160095596291863267336912930213869681485056549969443419553977136323382427753211810653961664519042555874837763633756744121842034583244710539430128114388003778342105899566107399165373238960633205693399013882366505811885902946314918681108959334895264706996286818418696220794950451630679214591439877570586028873163104814976860477352127622983250596053467353503565824002258195354505821051443724103626014490567641922798492567795420987238622349195437165769646981015944244487430281610847180751839375299770107356509120000580637349180174814845417879448709225225313770062943069714208700024064086288224719803389279643755566971564715221807963994091168620910697813826548315082267087637341374323285922323529583747770684818472136997561067989952337385738518558447842551360919726445625459188823495914824859603521776537454100306244053124518215202715968068055806745521130537967397924051625219338156589728817269473493722785221089971483578134797473949822880770985508957361595791985631461253571943353856397604758436046086531207496377403522499209683843113157136979117911751150924954797035464830910564781689902521916954457757862146633442849177580759596575594857766307541739700075291757912629537234747173142816819621318352648049281884936235579627434234797519693142509815757205446799539133640746624352295454166163659677093384881854318629793177390849530346069278146239765778243594337705258440962375624151496545791431570428909819800733349221708704397576413267197561782262137839594817182168122431292058572225611443903528886157986984063138781013251284185023064015629408937757462976610659121569899860735992929681234083839600432386547536323461723121324846218287356905359381652160313517220333042735066546631784827896249261481251356172821213870901093043704350844018778584872728951798179230975991498493598837623934470644565007074400597260501626219390748773164872847814061424047790953893671635832638262823691054684830848234730048487622123994506069863902975916947955417705840896220121758403781977606149747647208836868996381195740954651464495764503413017068400602542578200974509503042082909685565165756232889052113724748180285012281161137533697565747857225691151229410069773088828046960391951739304135951325239649356463982005171082353732220710409899291548298383337019575960668619427843963808375013462137833451609789005219886869985309413412741920919929188519117204909524633616485869711741616546784178522271395669361603756768313089138024682766336984737312141963613906275985222767954522543313057011969591872814635125178219315029087323129356291307327955617553235288419985761970407643339305210845362320513834144787350153574374183245643511078961454611829909079155058366395004629851397025959925436678169266042601997630261077625956839749657632752479885724210112220287916988138909164834928880825484266427993170200549488558507893567435842777741255585233473842633883887110473671124443863473714964742307808384118357345071576355106922369527890116737013930883696403279609928845649404718821616559429502405121433016432124863734102140877941673506415954303590665577016985134471649087958262316042325238751424139432345858805132748410425008889721264124926801846049225512398449676864239667405614942564660564972690867804603199611526992880807982604891633081977635837830518762114154450255338020870652567952081675917430005574401708805258955173873003973862232382609382068172355181215379794809602333575276798013533128619231336542048625567414480232239907353208038783583828845240463698407006903276688031324916179468474942332995881344748549116788150429801545354986887986303258214853965604713932125363523853509387590518431148860257683372665690593628042505907163970376352580408264510954116280367932495176200306121377351276857948501359681762336989683784190621171013398746863619075265018650340455852183041330006198841961818196658002928460574240379952712014649287646035625885510185917587498756311588541132652159190196316148566737201033153784425300890504403054188158325734645850813824627661049502947983600663890594372125159200184876964465912187283080236557019099135019344482356195718223692010345074067814893963832474684807161486692115985690804753310786911323912117241736659618313778528834055710935931636502774259479975127949325956918734567052778149183353915098518119152689594349536070902767831915007762106712613509997761315702860623565669879960789805741142654470310389202552845678662283246690830626568079391253886669966677662636219448408025535604921625521255352644179033730818598795795820906814166192373582209559698457643110200917643708577436968410205000895464078231090413794627308185869672904548954805359119046703260924974520326284106079679057078792196378100535587607024902978135934863771730054995409115396064362266579929613798293828430715260191892775965687060181864969119290886764011301558114740850530785930880611545400353933615600656696185611017326941821858853832354152339601360990513486863668103731400298689347239919222603397447549075881422472059100049084181496619636721405024978440969835697611662891362123219593529340181925505609596898841596075116267571716594064642195197196118782391833841357080837988783715900621709088485508899539247983253056755476122548459716875650285960827124022787941113550561002164040834201103218542601661286933894940791759327711245628574070605832735318832736840828191747405357971209996672999747035221115373544691795167551421748424380320972438295723743683004955344786431199405682763700394440577708397617632010150110957922310571111252514342044203567049843271352677324599831141507316535627537233853816789913239403923323678229544282667924618603948173502284141615109954561006695647830816291599641735617128924823189459750713324960304061923066721935760478049407243253975951179978374015365789029049321539689386405230546004205970736565857737265199290435390780984998549838105191966908550924801733932038859501917394191824923914111837422790354740359506031636228431141044361105920936846921389422699841119369773012151614039834932904249830567223932904889496481539270418040941539968213635494034664332273981869260685702325073652608178691045522778684161490925215330876743396271988945669752167963786569284509360315548476247509824259816993474071320853531730217464710844025567749611352853061635308878248817991445055907939066292044081829121642940081699287950014147051422099645685613787383176588267314789544870653517241170033094330681733170669972048117003384534103249390918052447462403332664055953035161430847017201223603655462329563904893830815519341161722107946915023015748063869541359042141602931930743030506220358267284083769148786814581367523274233670880378088666443407481368080437256989060992010328959747554337264932159899471587715972240854196631903749751137010337366527171034614750375689153620695795643677133511311709938991267196946739801685383598694505903307822830206768533648673172035449107258239888989436032246500667397222137738178378301192309675263745596503969588543820254651611811822279231141993615416540075797305864112026490646983437792076187630379584080268048504618743278681279258758717415075510413923964665812391250685764258823241854163894977778233977473165123564002354182702376418956772545900526953743826631074497927102137922661176948766922800812253120624121628144503971682535636691486529610056016626794471076978468200400262578887493688530728611113270957980625274059090498609628361575478019008525735869879802171258309824838317020303433540247547797291003378875545342969234877499202927581991241891097090135986050919912912199801991385189386910535051379547394763385306022579889352155795810053841616872280989112029882665691304232505275258771052948048514069413731068002359776823195053894140460777677553549892709860563128417722321481082010800048996110594721936599862674014601326998122426685400131332377901322982051422678171812615536702064237246051091922811675786409866852481102119254184113264789940202760112997497562380881678478212135485098984736519688566174047266080495289270897517751275961434210044500544371763794783628019389394743273593027937992105109978977271284496860248117399991826338824885372371818025387021746782551610739096723736053127813025184054874451838202405892904933899343720029929110007262420276867295144516991238932499204395044539165644818237111532264866213043924586590079054895881250993069018783663668778789502672362295504501310994219924111096454228054519685127711719091857311285871725766583674015075183702125932976495867134751329941409718307085620902741522328256567463483186837288250697319756734141586039212018294031252377950377591503093279218625274835310586309384460204753238127462938744909269628807655183366671396737140122850382174490021361256331057594591132453818953212815809643786665253914920571729047677653788924451493159232407268385484816570368280202276792665878519905829970465372076138745993709446905519814594530395513204837491246053130285109162737966225732204871313396906353845309860499035721227641673038145470020842654873793876536336999130713718448041484103738828444568310237597041697564835590636827384012314246661307367206376426651218082844448444739602410150219450706364071401146873004859419971462571292543177542128254356711232031402406653598928500885361661271035347763904526084572774514547046743420030503771140964781292502216094365730888655391391629912531420464862701918504664511634348848062718650406397432868891421162232079471648135223746254988928426444194388129364801598208459057108519306925710602540394760853372270741451225052649189822126287896472031603743714435495145290302781778263815210316187871685368672911731989431522610817415751777498941554782186661679639842801458764550177177514146044369702043586942374126048917161577141203429775909321621325296324007080689129498437978678708467020640648420275688341435172022090966491641082887435379178935485587302179368174277306591208499965460943459935197894926193834344374347295124318777445538341031611302489638599030727627717240461346237524720407275583040101599181901451414463644659480191758648086874580480297278372949070903659513227003551077523810002211320095789235109098631260983665551494986561468205203130454627911498861668484764417839444910017418735978509120938337352258782146784116362502630869599103670170115446896644428389259901214014209415114024618519285058231732251425763528201550428124109581602877483823662949614948876358442819805973317583776141184216366467121292074349058689369377196584999000871239236014560465063223067562593841348181867369433483496933940890157065075726876736201490358824457056407234303685958457045823450987433342207736777594365581319514446066444558264663622824964907864882137736493135607379830619909562763218871005098557702311376768196082540437095602925783257293126325923348769543132118436576876083168011040107523598103783489520312489324469231565578624032291155615192989750816430620857067675828101003643737561615320328946448534344760985528635777297573606691720136348057529513459011994588571478959995461417999010585932895748952515281693462993713350794302530008594285968753519378741907001020252412777775807718848736239988049790695551686370434813507720920952680327078396292543985475643619939014720695092425943182112207870233500609317880590712281744935193099181883673166283793478520566893240307282352123939607098420959723878144773681633629359842386017159857438616058746111324534895155025757717716137095214691311529930248962482168772790793075937086662653229262641600525616388301015112269264546221126146873684758124555261233987931997090749582962374655271981539525964988745292040411437081814223097508184521423803663831808457839915666495221628125140693761947539081225071596995055774921202895304157855273246393685909162469448673840087378207445068620988740256870793505536016017621696219890001724587468022264625539927625586594415892346518124058856400593928262546476272512225925702058089136488901237211159563446200100822342638232844819850714879868364801663917730435424430194852153872440721121367121648335316289255415086634943393453366491261748474140809530439255449285513972099348484289357230645101584107696105021350411171624987312045058207419142658918321078171516334632913648313761955118480032954290334243464940219626613071078603526041831255205988057616307383563025418179558644582381264678248213738215803389439618864355763329405628384753788752081462423938497188486255492721853266669316017645321492504527496261083471448183463928265951891712444399863730582047805207665969172523286072752280253962424321904254829876323546178112944873586458056159321511703225023492945690439565269913440225838589265936207943896937367843564196321823452213949905475308421886789569246170837387843661777406084090306969419658450192536930134792810322630678625972838135950863661152994448802584144706299791434882215894716541366978669180735825132664009046137353767113975679266801756519260062234959279217027426479567162643363592206164905275550962754920939859636679658144617812783002110355703007749665211555333444858909022894076997284327329213290272115561825603976779255281077782047599171078093537102904258767924247746239296449042222749010297221607201049979960506216724970939921831358886231857631363932124098812578019292940821660239856164586176126598391862380502318500514875952636184720614196671619749356133305419849795827186818637741489486255132530731956810808583071271038513536095032405215498462464190255558565719298585441209639523844715638801028773240792356137855057459974585291029807881596110955747969180212360983861424547710136568022136758259720880764505832421292271703125726229012411866357820079612376748076492863515434753499468884991601529218104968148646641749956327729095696480240846227058940452507897896359088578931994064470720414870157007985183882010411785626761101520777742358173024250600019983704695749949597386908932100099802964785407921215327561493930627828056935740996407255314152116936915847824874516868333084283645434701286983401848143238864482012069187789522172081772172857504886778452179610570551433496134264872184297698317419707769294754273872897293904733170668245105990112137227414479048331691811940369197142727987246355276397054029987143360948986657273644326487115960053751634121714991508901167724609081656260424901196867839279263834682029008108807716498598754824856117629172918211926285818607418460545120534287225113332814008109561223380242088350185147291964551014283637514899584697684382581250050575141134194468157270432145415013272157632986453054463132572791014487905220146532960598333506467578653465922962248728470603692092891797560846628913227047924801704124805237241385483264777512060401362319964007198659783883846273327894796697616441661151798663957953155553667139963601919722320570404096838847725685352736352994485163905238580456175300427809678332931578612570649966688385272635327677247994807972106178443031182573237050812141180264991639067614831146389664453793688388735256086978471432234829351967413504188911668713447640294588303637929862106791637479981749677875618352644614564375937005100864650688698586195906320999012687684162037806138967227323794293632119258647810408770915653371253821363614772485895242044059215351428971535995012973051965016229844291637533087765709188105996011310754854839608390058132020325830871002508999643121547729101620028357608661570268345065122332179640936578258805446495776583838758336869961840139236733324282705916214549503152270668939324051083708984374695685901430612819907035343776417463078538875707832313103644278113412489963939003334627432870582686899536251256510557172721615114844614645317236617975179390751515852353931406852158092838557275160825052975672569882560223437548399614704165591632321463326613513786352052400184238795007480864875146308837592395633286755432569545474138288922305835369452800402260547017722861765753219309175312415016949525717652730498848677161291974408193438157368892106378487901906639357114989833240146855354277445994811467458946531944884025330212113773405432998513354952426892543131001759863955638562945031481794000028395094116995950638071327308250956083950966171387998137526387593064556291432304779685740372570421511026535959512786313498696679450457098148696608298663951704817616170827721636868368947394610349552349534764474730550322708360600673339190116255345570497372116970683129535173387992490118780334603916910810594120298579843282719235914574682559684184382903220595015488739443928727780967591206749310283020127376472039873548807026355129017805147457119935731439425790001788274886874124195470624105863386349908350134065460198170474031794241514936172441294307375865009682721988820361996013503612663960870117996486095088756785774178420888838811074005855314820570518061800708375463367755905065575993259212016710466177801459562241661817803033628010484225041968322278515375628231274780955890390203931908456946110639516689774747646291334371762772575143321753501762513620499801273165207913788225643227517083626402958303205638922013522468128726165798725434364246530623329386280914192601253763042459630506225806602370718889484079412972429520023703103966787318638646867930269258605112683074050294754516411108970599361797555455765951450035062071028116966823267460862753994601956331181196003710379593449959908724164286205752666747613312931121351747150765083355646829784896525403067450612621606104781170243383210505993335228432941739412837431628279478372067505223051581565718115045400128789206127357268511004407027870849362483415138446562018463742250042195755016479948744077072329503662983744184677666481798638635110032613141225433909748953199108818506272598695274055363529905202336415168612798001627552872519849276244205871735181967052399554998533194819662280738615245184213504501312489787015410818133981495078536891961262601708311642025428300127527999720304846146753962970570149718304724524743562708928227897266110449528450727262593593516112311614755775091634437260552062862642134059119975907138575148049144951929976692088083540337522499610070112417944937934572974796345611248137209416554712404002427271468109216779727111563842161070642132292002178933781637827240532741522349117052851459771352784246651024446494838670488618086883210390028010878469201050843531475644859036934545305655869245620543761220558044393618119922752846773044611198035983826890236091975427483208157246443760389982446662063491865816458432853492973047730994257945328619909840580749056491185153743955083055644711060274359222282318305803269356131250930442107378069822272532524534233548909325671837863926737807611052295404219696919180370352785105521779628903286956743381778987228899791617301783393292819255002644245934910415000611071846960256431508951686508941990247871019641980636512065817292758646985294231344022350914246461926703712372914206148505157681986743848741364721630904116073693933328027073625816469361653980958028504650488094642401106417762469487524006079094982539638607505220601638686034600273896272494216449064557471727784219441579252334813128344801530606740850488349138388052915915942026909895305947804042566128018587541153946542288137618790867279498215278247333125008598883190767905065695890341225924336942545973761383278504354692067349384246446018893232041260729824528184467956344413890306353623139262207528710272665253294128666605706963777863933667896533300669510319127699708394906167005972696810585530714204141337692270909741916145164174177642633971534375657403007388006891841482679732894669376277789760831898059402043194491872476431959000641512016327032486266245837899454931692239375550946063686692511706723585325586002222594222491639542678661523059065036150572458918821235166275903535956868020619838433561119416274314995388993545793400077916570862901765039826933645713811243884707103121131229647686899742634933153206419137098028251353410454516804001422602530362765979535101585060205460281496128162841096839467992391977148769972525675337291942553027462872734844592665643915763249981213734660038168476926280173536106120478874933986237356293393086977668243441861990669772241959250110389169911993651117140414396983955611574195141903034314157792714034371581057948714025168347397728263784865421715596718835324173186986522916476902458490694244563453527030233023304711066081831577780645399440349239313364441032373078272677177529845915188763644026543437218125938441633845631970979429735939732071471136607684165736838401185221986200354100718423425995837186570628556660725523097475645636901773230203454381840437098764384164852960579180154541068433302185704928720218634545181988006018426914078658423033599792556968484349157581422401375263204411922680983087005838683306982794577266858611128072797297153735104848653628111413308268367722363689601147736386437656694331257320080002663896015359788541422644181043269768813587557781237771735666549792856798325005635812375355258744067035962406339598526115192198874642050374911075913089883484665480989279940119466854961146583800295812877126084954996918384412865256502791865467497293755221831452880704338442712225615094802585599349814206559499461953428847189911155973733370147227279835415545740647609279186105539167412454392390726386776464755644270287907727253427789429349041822845300485098405966912228383537856539881032358285352971730474985466259314632793003050589137074447562751933579668961141195276205336087330670424473988664074168151759769045199587455147074777324662371108166586015542592413341528602417224771603306038581575585287732398360859722744792477242080334422741466905919121253829327507816239095767750603207013021615164992827876569550941038307901556480409399994048219083800797005974645824267036326754268734259235843016758846687897308549702319031303896509189521501811239206851438320696276694905367597200810343180321508051815473260782613083337642547631415208051754325144389159761622400272226440524494476895499797647023979940371935899085971173121901312762834463404078244013396436845809915477210838724761040102457426386061707186452818593724500461474923768451635635101396205372470500916237387965928600540301584131635258577483141861733404291345890177558139205900430125979546642866163620925518603093539450923352842816087141923346390645953178569416199275428553777701132017410843570209771882927166463175180122703665694540431651917233854288074301442031857788022564127730286743802071818413426517895414675369501158538382077306360367273095726900062156837908314886344357762343641424444085357505461663459354211635170328918998326566762701328132890205128904352360184674280967655209251742164391946859063197128279776382314628890825995997289434075232437470380214347809737458965096331126836314012493398799730178967355385740015483474411902992527764977576178655845242967784751441880882774939990028140546068979919327328223451359843793751180662901275252732866674487486973917104402020213193603546670872843403338636279350198173018683770610621679280468960343945284970097684130517519105480733736051584880487869243137436637829972305290834001831532158862396637530119097442136764729154609756038538585124988932245004379144835882182519661122084484182959262057815087946943382576445315246791831435878046073200007434359906053681518080351490999666025835237151673006825434268842950762283362596211314269230465798687050734265626824765031089064625897417907463809788405031821518985272740741114295795508990253898503833172893726817807373721680025034206159428927677398343511187398412402208372779191740598820211004949510759872691596331552959916367433474465771816447655318734978871043358161555814212018055537445961530822707448328007952964258578424302547267890084594867227604606826571547422892115867578252115584797871136089685090911922453518450909352591109152807485834074763671397991009598399247767832253923298935408366818179805032279642169901973813475919745202919057118152607206204258104390133608952834164625063032350219705539800985590568169386631368382994575294005757220474325520808210243871568515706470126041624679573931207057305123043718774784511783638280900575797317501096584692485020940885576240942771104151334993259505993395879463699209428216465602180270617616898908867083680262340292031091693522014003289851511323154296101144762908716001719623064556775992643425347557924195333444183095325934485326531072504380777616134530941417122016916460893147178432229323405705890224587644734671230969593430697514054703538411778186830228177322814669408199967624947298753172022905445352442836612156196091707464054401671363382080135158953239238086519514574659736394637799223254620225932938554317572251024002432155870665805152108836518559441109037299880222938127909532704342866016745426300154219351163817266958023840775074645622494337072998364544673214687878013372915488593021029088218037571530485693336669017643731475084781529616520586804462569222092519539395524375557567280732245845022620531840458350240492062534716674542940889074174436337784865301186970244584865833791817229571774060664042676804509499284857341366011914167731348507048074712985009283106862216035441489388136693547785106434816238869922635596173425836159753758598599526822389364950838989507406936765633551425777951824526405304604438154282181049412476425373570830420445368601711029770762223634275876636020512634496487298634076521038046561130475770194645287052346162089713480428413960155465851330937078979574182385560640946334695224348293628055493526220416635816054908469699799044495979968029546143858517333321296361110319477455155886428764754273591589479475615424548779948621601977617916082408395624204666043993996526450094088366358947963558922299702038631544079614207654988550192725815659199378361600119451948424704470715031373029379238129101950010494444445600409410212654062331249564166581459360061250295989303652157103622093383998614660677311058312179073449553730470303534728656735512013923281153375363895118486095217915945135559064800320948896489791667626872727958797181263941375017623011453772324695670341184081861084194647651477674502235772388038984856409653250556641457359713857121950072135343915401743246071033181446357412952069329713478049613336664505697488155955675759591367195084019252525162867210714674523146338944575818068550481433535662779076416182867067796199297256684210999461841151478152438287720212458995666830788467168299857143038656457100873828345744550977295636282251957540269056669050575293547050480805314684428351934862884463698781841870479757662931953741412874737817153201790577673010036253554462226363149306023102439421524880236600678600724073237974726069298116670309759989257422306751887098504052209213005811364406745444995017671032522561463200106634190412689908829447615500844189720075319988840595775638746774626669191286841596220049558260100726445464029491028535724538341933400545808489395780594764829180438785404159473053848847516841569324509310043524118639862677298691463741026221984262822297593606576346372723906150426496762647350996264788846921327780111381020607277469126112991347454415976318695525239650458397923349187017894733966845236103507208753469097885061917869189973401578682376910764457085672483700765793202455320367770974440039400623405337654406047307230948363138013702625886325529948505734365893331915809969511005703310486022965684481424338994873363346930261645743560352575090103742036335251477698479267488653303842780321334421232505523097261705023957029223839761919330380380467449648146385528911115283210892843229020220012357744086243129401538959361219233868410213058765043438163579506921422734413768019218698842923224939699644545978151102473610936139401663754773903580591988557554268523644435945055798516929267598538942678963720341164427171229435623288848081135414747810638582926244261501549061531035398917352622812595903615297409008472785064710783876820297469773014493223665936662977370887590312815620775848509524608415605437111069362720148472492640679503804656700903111020565585172910531697651313741642669290728220148300787884660066924333081958856034359153652227557597089723935793477989235435303798732229970316816345850917069848073589499344059326814365239719254882032819278895943072800732014676917000852112078425666264844862806533202295372701532281440716965223799500287871274169917980696677536684472884051286865770842626727682429310223371949045744250248884622220196508514638593492703846867199025311041846026425425205274055838555631985261263795836585725972790478297603931010584631755610346423782346985210508202054924351850849471104997748804954482709730333790345450237723516271691822526620578696205282540274015429727236629628157460810545416205677333931915992302493440217904368422143610984406877611548977715110748043346201632870581395376107814990334629619546114678655939950614238699373195722308274725786240928715413080020050240253777886543501858854887352693451814627164750033375651898951324151760163298119080034462347061784036182815263569667084493425180977164541823195300162085264394250645346013513061935193984257753941647013778146736234628231128617800833856373615386210017654479848815388881546733924300004488793122301126284770542375577865894140711284559840470786737081186349566566925542972915019449737969846584531143660918723673356782527085042260538428336912127263555272018848187016700134770469443996353022961675517401077237911273643062886090198824328732157694983510751208794916912572613360043060347190705071561554653837392320740441732949874167327559878902113519124577635684311802402285818918824991140456523405241063365609272167086354199720997192182211850081496453253682332844290152101702488073888270085258776544933284982559158867247920639848839736049558691021665232142039890983377455487287112392477335390836773889493533391896085928852526811522473101303336094688516297633469504454519054013879373282120532222967893143999999799308087203838096409045677991284060926026980059527098668581966319500540755914063950698583023419807180511984614766240063904083943817239720384342919706344727283105171531989747700450134387399017643666302494467955547357177985121466514788460267838810730990042384353391216217911343638300139760945689860046783937535217225452581648390732856150145449064190902540021493946329020055229932389657184588913347522347624344090029300673779909405198758113250059046427112435180161967011378898130069378825968946411900879418113285150576420801130926845990961260181076944392954168396176626998917017991620752762995032067109461180121152017662045899642864046232189016123760330741032574992379369235707035214558003829792463805548057562610539684397366863333279547797110016594870355061594912390821917356405649924614304344900118305425851620555404759020653788250722891730352472560385057469940291380510096561566002603493280432830936730840754206283713769891970185555841796494860327230699947764105598498802863471967943905107847547240615465905316501382581553727328858695704706834268958837566808419076595075348447697067558296017812001324639746939955415505872066760410484685632890375930626444949987703258675397744536278906945093809701139834617564125314791545122104951275225775008628720083327939969098398321834282042219459704838169061023957145670167059070863969537659413322755690660680681954259302976756180944429329992039336508433245525003309462318300056143201502771404321946175021721968945642133104848571610355915590218139931888622493988928325806980661971706923859460936614768109267502197465339315904013354436241644518790022979386839244211487505940292116487277295835093635181765738809839707902870462338072305929962068189277741275851825352763509824935317031694552477282435634743074657620812467452511000711575374835702164937283607441673745780719106758226991553708295663554878500762564598479079926169719521430768147468958272540699096095963115647976277627602406675095689598334205533630888811334514739362441333372808778732208526721537641534041983844225036661284948121586263716948658654855594908711335238896330363288549501604560116750675146204835584309801939332879421108810261449365650310761627221379688076830601839791129166655370295987820573309598089942450970087515587413616524852720753337912350272616600794344862753551159707327848058622286377707451076104213848465606256381944288021779719273368376276138717838651462114134552067236344194576127085341167888131521936895143724219178461561342232601031844491061551540252307159608222245237712574535855502511351444545087096001835778219940751436234992699160683465916218572592573298126598702331864526723622564511258715331483884749021368596779037600138687085202107025874515136502859267593600090675522492269536212620495020940385806156275648569364497170130462309110986982430161329969494385621026692465561066953513396881642315321080654302277705206822678262311114940647872475581439849511467520535315349723679114268939669583075706369310308083667459266522271178511104479949485688203272076710408502593471813943083231329077107679385563867742076793137804850440965880030854951881441000610034911340617083489286307009082737796984760494158580524483719580636017926386371262043732161802991682595082626864133934676702074318398145124239720816799033498131876213627602143247001498252190169699463283979121191158808374840729206512038362435220336721910496618835036688096527803070971176006390413831544885209207019600167652962567000490790387797420223278362223533558003185804416162724788665979945126261007983975039362373877557419027975848937309042023175996524268437068381332042834642472482085144535978681223375846196822647925971314677823642369484167249329500967432203770770674254039427502388109854329472925587092612276358936922104038159491752517258609645880542504045011246820770863138278526006541026786228719176048753993086308370636946615159498066326555868145536422316114579190973156286769520518700395280585995462771792298708973712009990023188125229545982333581638392411490739733274659448994759809374288792479100064232738819369911124450982125139136953629187544802665946299414433104440304514678186234851085012997171730096701016209010161188513510748027849267393533990325132913953367862385254797499509830540476911352629373118723917333786707548452813790543001516751705924324675544233538947636373053547346362744409773390700015432365277034014069237228311236552864772736455682357366961523647270364408261784892939345409697136689934608051698417929375505770958436430716435967608755404605450600789708949914655525306709579044969153337809549966806966889860193551618737562557017858056207047422256468059080092969845183094971600737268100204594289429759285152367828895219699768028331568840923836847300667301399828067865058222398687712334421211682004124014335839746427964242625640301429832348436985450772708545035065014539709231520812017780733946504602700981930276422788350458577252004820296474283138571549300626265355061216020097264734139769708585432815361186013008803830360092112975019815173456259683510898006051684859192460221861932958508965739563852470054722971853050961118824842628970575797551552647368512171686301916605201865860362195687822217168450618404953034735395424521858185700352917974364930826516523634850468884729967612574448330393616613109014076090276312361448043883758416277702145712228240918489172830941689023506655516575573544321799293068126616933807038181454743029828251039640831631948560043563385258896655170814658151196520000227702912059093708600263823515869412943977728688339049420678893228749663935123208145218882394471803558009869069156575881902640134737079496057821817040643061324562385197073336294409611942787918723353270177313134036583402450355362422458772444718559056543775301226426717129839548161906473045055939988960742025434890565325484351420118016145269731209586213651895756002898556751673533122277213537816256798018455181113998897725889577446833378843667756709948600561297124928514411439135071731758921843732473347606750064266132603389767226900156992868390670566208857502514675577960948409640317598690879493378160014170799860349521909702468588690128437109591858931098895177467275163981788453039253126935784741985608161897320076836010590096279093871209033733980912890084123243242018743186303681813190510817482745224338298531236289333294028425790707342219310916068545398356073537864738718867438838543490950777346214659235542809321019956630661338784930038976061063365651811433471343049909975640917025617001077373941579410416892540906827607919654290115738058214327822805014049951069707423255094703902737905613016305453112039931102075371010101783242624508056251439028340245602098804898154984971289492260273015241501339355049630733024852884270427640480269260659506669856757408775747704170681044898642205068006122473017186769310490703906080830073494275050597949848438661187032030031765328327426545795783450827630786861720263928099657166224227348185912846073670746657401997535992755059637658209196293104848026290413750363669505645137387260993299949124643805017805599626512422024880238348602243072246829315526532485697293964997288536729230670661742778937631493389546566562856760052656203599354235377854681979992207354132606974856316786440461818311526745390030003422333806921868011338707926347743864998397227006077671844393769657701826321734451582356347418780661121623178558799423396232353376284989466594380349698466890393657372743559536719346024805973284030502212611656359326582456001225287567236401657228497684348870999785332500006475908161742378110889450467910982785959293600193088178115047773899349028031450242919885558680369502601898649420332613269452779668456534167361917081899874087021166127128480877903813283784365207750568821885373278418111485978127271842509241433676502293168075619794145874940077878177890638857541298164287617285953950362375008682169338594706512334501022414013669787136364843513963207845766479436790776454330264513626931598808869248426601091889186344633999431758770870743116830265300039612094599581525287235270068823873814197318948017628998887596673423299847415903997476143877462640132178011869208105946107478265906061842450177547361443940126432928889477104565127992180588577703718159070324205032776574180565921281145898500523055774115630970282848860164521907686336539030231972992387425031382952666392120690468139250531370741886298976707304906473993063154642496148301588663146858456448225072101666953874437722749901451903200772795439102232421023770398183917157032750046195911443038153234525792670587452360772051491661470288801545418108812976463819345385727912165043622040152493644834166915265862905838477219846298568922432043199676371054448698073492471115328800181230566362385335387569078019629767704507920174984257038384191074652527420452732863645575133069251689832731917711585087095163838870145818608208915439230560562554535083964718760609084883281670562073624289067253027028915880569826173881289566713766887500650164275423554248593366203677576832674814282254634464160122566779159724555268993451415201520181464445325211300529444511273127915115731237563310846610558338937230557418044878742872572023701561179707580640401227668586684263364127402295816652912642102971401737561686203218325464449429916423021497699043956271913295903929519807028998072718197525971614445108470896412391002478150228316031338270016882876490583862452507665079561293948231046845585156566014180117694191225510197787301437863079348846969341087833662713106887225349167128066973896994582296888031237160378471750647689211881454479738251494626557976917757515200715411738348486155364201158440477560617177839112682201215327839632003796858169640687878697837542718950388804226841136172388275150444919300607798218265424550633966322005795867781564948794281015687347804037240428909330079203895013667567218415032236419156243046264540911415860459823624473828355182735444784106636470952816415906193597736356773537070576487261312176672936248807812716139664616357643570361992018775902075130143177737488616915383119110805494846920768170578783557401684593823866788927234237636753779920830675347662357613086265749526111377744891929159114033214789892926356585922506683129446798885832045197709228513105977967142757606169486360545843142629774170827090513005729354861933783090642097235734050680037848946806327978166154190811948086051558451269561207159033413173833123951826471227264127040195681017629914645876908375193018459193927338341049485411672418226018677658765491350317928151955158788324741607680097057293317276116405566680496222713777805789142385302507395705344488967170642771896739109041038569075774201276791667529401839528530676862596605829767037473058906730447427119229125385959986041285411229773900635281143465890292664134751373179857414227193316365325528633343522054902657968763758071602307762292686831092562359921880657976521776017309884530932206553103730129941204199149143859875819364333560199193623320586043899246775484354892210732532287862642209604260338776747642500082206733603440926297285048629603046856465298269942337120927374651942086055877764454387912974401662051003805062406478309841313663869699614873348098295015120605129571619541831641008410182851099950305549399397681219318406604693221938669114315619457757064619163138423640728537844400327538708051559484774081771271253890126196356437472915930301324542588101310160533711412613139618037095667335479098212237897838548969731106019166215538466784340453658512498371060230675520998787845337015936975937682916164004681405668776815505160287810767570481228897943175677139826323332092553504762600099212630606373731846825481438155513803103345526644669497609946428019670623013983065614951525821445732590474991682929379197960522265822337887890028758935917542671957311893761380601040107844082970468547906132735525596333320778425379380738905925224024286895415046756908388822830258620697912471484701765584550104641542283822824782063168668379729740289272803268643616991809478189391205999261959443496115740121943423090922154660028079072095224012501802420836310896085552550512623597785059470453152973400082705639856929377875870570494179599506219501530259065463983050075555828718389034580534895202212631620098851534617805703241291803208093509097000393201943584965775282387995978368832290552288269900813808880520852427430074503710369150114447046391609534770515083135297692484400138529418856826933479858934366182850867607602405926099481050602778318286636800608011264918418769146398210535820358218828390638809643290236833526001356885625206876987984272388871773588389904144777496675326694914646786894639655748584676058852233451249416547647404490909481803266849863162591051491155402305225600827298304272537924606898944442119262792453612248106761769837431125344046206065926662895565140892811100695232293705653830133348287325038460586346689261843939937621390988639201935748588971727483307337663186297890689924600149149535453066451252035987759869676013467240251039159602657748756904145843601093566583538497346764102943456289051381335152768821949574057105197558940109351447619004682093151937548220641870899370803882793179310501509375316165056238797342031597406035401889217593026180453555356378842811100352678195852910064731688849906407356626330264937960837713343169510318474330111567500837465607472106196537462377448171149761017594700710670876842904641496550575187489257998155483991921940751113615430679109492198290136576487917359000407532309324186053497936312608645186922709408090469511887819452143016147237913644542112241560304753072490134281784188364554041748255486159045505052017878306397421479139424521442658249561165988935717743455000728579871978983131268944163373561465909998089471888151198856970916935704463662789220493220385637612744084320260887442304152388968821783029809627274673827705105790705451687286775363712201433411405320809439865256316844388156680018760915874098147409801272523946198884262629650681184815574848732735746234850127965702078127857605959331796408289085115189353267329873349818392609170793373033417681180024466553158547763414357290363665743228069158889692309567869864804925009731743521757220956280423013657043532393536929412674019845591872499453954296320593318477937882296238853035364935706228308205333420181087475573589601933954574557447092714301824008386604171407462106089515689134370577402309678617634961426435096048482708581054649179347696671820989826784539580600618934645336526383778761436277749982245469832557248475620688333677609011551786978246607917391755491855822248802050563513492435345047271019519545765845451640500389929683112484339306570775655568068223493234109673990121689705507208607678195734759406385719734955119487584810032162870874253058949507691787235401027348703060074938666672160759648619918053122722450015197519026617046263603876449687329161132667530640999528303065503396151583392946384733476572476923302489767214606379222787294382356238140185917801020184943718165647981677409989803688123022311952142102793365825951416521947127496023115099723487330061982153420346484984816810084774383218662925152527257260794273661579047046127345355659269232143414744372558431964535170866969993378643820088087085783068246822750121517717191223233014991356861209572480313860817708578826301391429890084913335019461800418218850839752177709895321530339399372410511159730560949179982460604073021401854171149561783328032109645487931565978233606500350754036478556287177809873248790864304134417903000119778280352740190950473893543242057957240097025295472089383177147897000554339235022929861481037423999894322532226070890611328627167936837829485420408878762811583392889954056025630462257276841903731219825127663552088389880458194895908959062088387492608730827565769881190138804213541052695512172384403306048804232031597619696088717424492421413014028749461714037279702883849370201456466079371968232748483989361981416422184325825843281565731514217669835420005503870998381486366660157215476686501093738731277487772142102214441641433476237392639976918136385261221992942239006153325284262168437507836312222697778783887698939326734911722142083062015564944292968653615907655291175772326351301377630854928150271309592491801255604521340886113445012001918045784264731537528386225699527855864424341186852528901020121618840748071103275693042211320918940596628084490766245587473357992403093174897854882883838866692813281164467422783354254868948161226843420696132954547366088194929972933287050016364389869254096898135146524366460906156224480878691208267452646034652702792367296284038399963636770970181379630355133133813226680962531963352562501610598660312576332309716319688750044963346370329250184855328559299547025645737486196185411254640185103562523461402964652149123452060460633983994365283051819795946257944690478881211708084202060183873727527105146871703612310422089352565030687834779819831338003926517586098344881458890019272494340387213062398966971641356636176458865510992312646760703713111056169433393434554663452228588553441280565321554168149318409235115411598128707512397507152902126093546273545767123943069613979188130752865216296117695280361195094438230118000112508013186317127736619533831387123038936191743145702813471972894788211737712008831655603496624396196341186034033951573453712220731941077906923884545500749027632132852566893303945895946644693102633573325142665348076978783910152426201356129630197321776876872934025969734448930268388490487465113645950365457141484208986392772835696731301967460495283047436217863233223766294379956750630107714631040563776808199098321462519013118329443641842785088224633287883429432558157105671338554351142623268245595589375550384580408534346698912519136179609787192453782824697020301168944722459789135985298174731864909008559066826052603609227749267930770261319331204191708834300968120317638629811336408614375736944186647086839449201294352038100866957328697125200720493570181625378357948594569609704704716854347765912825662170250427153227236111242387304414770745004880197647414271089883982837428253710419682803937207837188321783662215503475979732598992086937184723386620954024411687737625990447117577102333557210942489929866958174678395440696575651233728312677124403239424554409703472630328575281802752358845105261599376761727381849513427623323059447268023025866978521876980715606806303996873887957144212570952108262233258494757470206480988594146730576315120376171684801949703909641835462976061133686849801283848222943066736637168514498964212997665676729140831136760461230621367105886411335168246823875691839617495676058640660505483354541354868582094248881960902578471552329917823892498286779594568585942971875321673964055158492826034793750702285603589517204819159942531815605698883814818152190801902641997306328115633114408935680640084023940512401618817088773346258840034002271984639824468700706762276425638230202049662081168798279553052707226574647862507885247356210579022721020699861259854555408965170335255227761315689938570319035464964162122694817962157275115069513238936195752318651567263130739374646305651193772669645060522825330086601732486875620178533123489592819010448191794998777751668149033580788848816882097080233205645163025639648696477757075393589410035498840592270410581129398557943562780760376677256736794444534728378982162133920751046464463566442410999444612461247043238412549665028253964629724374925879449525949051144415194415125037953950002247068829660577892556754412028528667625913362675823236925341668968019463377068391324608133685808161975817263958761441654547258703669080840363715241285081034976055107902360097300394807088505020683990496145954147914833858325237177251689861108191342950655007896231845310854481009162257178616427959421712184736598922598330725969098769093890677516701977746942897498801091346009388026961233448164342481144903498356829577973101672617817740877228010214734011387639671182277073283423659836260565818411104585227573409696452831429059588380086740138051999743855208913000092117844655776462212893249408863600706492900373820631682309510195526740937533102269124078119926162655819003346337636695889290166091665787266183024578844449149208845428563277415365374475457429672813724798664323635750674716251066614063269073489260372465909792437281283767069822727408379644832429476504234683375033459525576514047994663062690185846751429483923385153529809818084336365738421049052264860799530610707794377744383961378638189531019307889409965750435682231091908571677911234896984984448321758689601355763102791177097199305240463234249443142436503738668008054777856924469961410172405778818256930405552575471386531041419561974383411535059959320172901970621990770680267313182859446389908006687832058788715392254930029175635899855558372822395143320717576248423182245594353292042232463915483178233141360843759998617521429750714113080417182153256250630922009575455494007183128164152186494817091951216389047674379687308476789590836595756251272718593135622385490417018530395773530957433895831561529055613394452421565168492544861922568745670666363392077046161827417553122435798142740210423783990194368994925170537646247011953685763872426597419486493822955984162526033620182725641486660977183353641366045902700994189322157564896754690052014808612134165578404504682715555817655881537047193153815655292951228344862659443920469712744153838273324773893027171384087242163181245140237277616233994792592074296432650418611645002031146301537673795500280583889547402022691401602670261820809486531313685875030233811385275221954544052758777404597403658400930598100025530090845493886437198639721455955768400545814310983446870535103793414268130345188544789462912006324478083692713318655529484424963078893208701969824830075922315550343410122333219518013497470397677970710792443424959839826471630589744815079777846163046512171185022576414667954804302570799565227985740965512791230436131397328721906667800443232476343620713332608087672105393709277463763406921841744741389874181269090593811763439634345294855693104139813941875458043871916272239129861616628881878304310167828275694493246416950552466213569848802725298170273224045975216393577616352922931914727485337705022498506228169936167086115047108063611741995971448083200163054064300763091546933261755807704204262650637417017911796991922186746913637972470890110468368726973645465671779167638734556728563043524212565196440068686614768421013565451595273848730982441193463751942859034084272991608021074747763640491808273550728456545530420628053276923278294423997762156647777985503864721858352520521265424652802040515430305100375549368404192238646381288067256688788047268499793172556763765090954815091723814663058448372447886288148326600473701614195205337335501175081737304156561272507545951226901731675276541401739070175948591301841794295894422098709751691818183445442437619499030351635959091257682085432623187052979855914029683695296904150825917423641198415347944943387031924308208293416814882353461630020787682237021625571863936400920841958149926438106460187001237637879201389508611054353913296957921265059693850745891617715816798796878289618070830643923375825665508516128277747612517283766071020678006354804383697090127878835163546665165829905105681399034804503275532206809834176435828026747324971239632704720551076654960237413947159912533524038871474789300668659065688631691806590636507549843287617716233362992997008015720503142372244054037261565989844193149696493884265665026962813662032307600439029447715195168699304984860429200844865835962494510750350210968981623627125747514452026551730276927412516910843589092106621968864498131956618106912507708795645195382172664548719138520296956298078975732502324093931362759432467398509883398713414691278141063942333762668344898580172603475867896542479857496257834539631828415388026377936269226890623772295218277139140702816132538051122276173226198808771330055772750436656241466851387845649006702883421370863577324061512579214418344402440906335056910520218738807989443912331969604693303229152034572819758702150542480840363649279614214053518226073570541109801232301109066517275587905479088682558523038699341746842820081714040331072423006551878202065751919859849871844660998687984510849151729771894463458795443262857308041174812697260286026786879257837114028684077122985234335129814589780529050836313883815847363479784270533713046043808459785159345257841536047248587567729955134159898085578209313500832981244846714240429901425010696900497775400560783235724258081990495502636585472687078921019643433312779866228901437327622090078922320139691252957413257550326621567066178462924336644360358848918314758246727207386523321704293484723329961009005649345432593461994415230889290109629524337284949213275547909474168836545242936012628161646095401932622197661177925119465725518033145406305090594289701905572838704099385967044608316343135223821934650407728194844685561654275930161373509528699062558308897681556143948480430488105412554170286609278130856644152716543283210597456985718413793562033799778484445674494605198190539507198138260722678374511005092778590715962106762674021692752375558730386399095814066849211819601035287972756427271314795988969506317099702633684689762735543295650924983371247952455665093687152946042497619986980760989315426510953544893928996656416535273464074249572380037840785932502850383815131300220175070094999509560737912017688800567655564180679270934264041768596654358477788084870051657877900819672488831686512289456066717891643735723828981362659144092395557845427203568865490661732136854101863465948811156956669221484544267522654570020492107337989182550475838038073360266627208606489028640627464108476754005929504114235548622022185877216376091744753144128865750655352636319004114680913212457890558414050072174330997080340902275423172121261221767719776745609713725948786317813396560048088250368017859442804654879344070228001250575118462155075176273019770130168694215152492227843655356857907827734446161688926362166712795095930651993086912364566207952672159948662602139485082280982462755683436420899372111162914742938492709195869388440758613604035646513224767513114006376341980333064393294510950603067261673521149486701276422899819726361746752112083808521281729904409418147131416705803374408339128426407655766597149852772439686423502367129464281054413864450016599107969607975126434361565297532748875977118619563473871547538067942489131811054296822204686442999518621983516344487132060951447611147643278023756229928859370714093579519495784851302649142025740641055271984599497361989062718978217123830666526404118306245840312828368137104573224153108620737141058969053148726672991712708184364766378518544703722152402441764285046144143613545303750146471484873850913650080637487705872758400348023038121896837155431917637356965271208128742803057857871685696036452681340270987059967666537435920676387170832341187634389585389133885518354283527633345816702926131063695672952472760534037384185899005727888097294807629766174532700404125188791673020403657648120354352317778151846068880490973382885888317449486734664764368939599468114707656351912674077435009020750083327829710119340064632703184596284917667951681781382104392277727269693918230300097328946873141662377973558415468243395964876572527324109806659070212853620942644647957058202722258986048389488196025507854454185241955320041738272698072496194724028415681787925221088864387268348106993570784803648955311193686129659411436828926328944904239860031340457418187935185259330604211503170169153289918836659051074455905070779701718710191791115034978691465707243945964883267609500224981652490226051561312284408808510073737781159282023776649973174221314684069592636835101201729634853685590894692328839566738028073435931495950559032528793062231323657412695930314045302124922198026462557551863876161178351909942585243634569743949279326162440135829050137620232077553359954660810789917305795446506323946123745003097310591850558777399887513967121347428130825818036603167441273730801921513163967195768205354370176366349192141780395863247957479675624949685131098535956738701490426582765216186384691696594324286830292086108967498602699391119659077741620742799890280967653328969990669102029774687190734280423312911001618894142742465234701874505705694817708343041100604537552418443479846529264996264954665858630745320793600194463878614474263574701576120177175507861861784684601845152946234905814646900590450379152316670991904250298556008687640246248180479228269924622835890447736349346230439282056356306770704857106457502585777012408755260911259734985817402162712941990461523403630085309849177456537150021348632420491515435279319478139586038699091531975129456755206624556337834619762103971966656680144208457075345448033329942956601676941874141146181063118042972118612120876303135168038276432470508769415716230940097576926968529408397051541971291705883122137293360673059971007108290627926598168793773455948639103235308379647637259320030460567920541995917633676401833003374811332426710864654973601017613605823066103816563234533290270746086128575524958271607295432732566198928362980740042098520877798331531799529046395809301846937099465358660605005191957709475269609346787870784342887822626040160647214404119630844536450738276511760222331558833485103038672477648747719168708692354696001711041447033364267462026365979360415649804443992575272419100896177021647131657198979020582271028451118299584471912969791644258031373012324138604873635727092179185443264843008266830388121797156688489799642034651097064578429087563426569961604073106337172768832552780840556019434500766784527831415327139687538249989078839406023752661583198329712691844351536254922155432941964812850082859372001378328782961036506294480367870077561591239327983901886001783226372787048956842712473965020089012898271545827363673422634040007075808426359891853862739212062955696983093486197831097395493836728743195233204884227300546534976330466982254923280538372596339886822915412788489811268484115879675451692830485485685685656299950411198145902594289154980838689303207516689682574729070781266972065078302858406979568346814883256347230083867481385170064601420981558092574885483478401515119964714455545760597163562970644246557071391502495915885965564985112513516791167393416382118423482273596006369658344335691423693656580054700073245112246033533313265985455840151576479759611558093768243188399329573690783286080768800014711420068673010215234398875983389490709592163985129464219113827964639971844188606597595043791280748074856542613025315860455700934203799690280172686278089162762270998505327418794544749590464354707239571540891568597692309810700974219413141529566003934335817992017264085960390043664537823808591701470594610329768587607077942711126715413146367221916355724666983228643117830214885553954689065114602794534112421606099045068167120447333701921893669464023170568335767381598813966556107499858767054435729787371805049082292525530598073940297578101978306852992194074179429826715572965038885782462009667209803764611185774380339823972206538056580513254583371963619843554241174335416158310283255010600682589991000535044663392454582227598321398958628921336290994695486694948276208228300280361192899897931915125694726863282697447207736484950660281843266911151647013651749008987788295363864465265648710020560385617388630888147363021379740430703583711547333585843184857574299042652424373698107188899785252692968094216327261745201042301151868577138275928530164433800670413540434583303801550437530906286951615818165005986416764606582608402996090338948974410481128705238058192771101578864498309234560024609336603860596594269460220410131795202936355766327639675604410342961832533882750783721891403054005628693539241094301859326524470473124290242118013501212469747542341843721229299920822107572252114280160489916590551300327365162838256106924942943348110149409186123603182638843511200403530579458244300172216741578424396495363950707383669164168668163076605647639141079083855540405451641052482345826520524584339522487102671868606408039421200681816893175710030918367644478286798301181201824231383275916019044405841413735283470846109638348642653041262394667043647669974404379870078829687552240173295644544528814697779436910381573288336102633760270286760363264201608688985792032334210355501121999940733269117678486756981584318171911517635493282301028034705006484494084916448495246073626936450011072820340019919914321088505499408318101716331906038734965580512949913125538738280018078310392638416658883853303569351185809413751747530792852464434522477847682271881608510904836038958720953597351784998785109889884761804142448855858633116164962269115747311919604299992847983800970616761831196861557044181383527796822075554360484710941750317903843739123678326880318921457125925785166301355148594423962607864712293076733485941447213228567094519032728248134205730787484410409797035291482360614275020509641135819895189468384224304163290495689155716251154883854723261052553635777269590515139078943765076244496592664583381292500860925219933625033472456570900317297952521963129415205623788186806756708735503025210774930331606794852862329304938839027334326867346610727516733676664153372178583171122303127618321706114482491505545877909480466000236433756119990340693745788698414422280897492096471569177234783548420830205310156723506495417944107412812959361148552861275497695497144705450873340195209726095773638108931365268599375259220826367920421506506319454115640449920274137289165438451966654498234485204964160007345871645709314708112169770339165572834811055747323063919089351282026011767676861360300714256649104252761705219903638229843754109345960171461548410317833409245352064560651076045583166588411722592926859316863672227428498236777222207261274751377233527489410898319473271896253762999001866537684675250737672068844497849353714707914414104789680180345855802261328275218231842217027661286756668930379099247569084880938648904538575403352218143920265551597445899166647473765924120748007739197502966530295755451594256752999876116910529538775506065121463400803611462988863129607951555282839343043732072975921453864818798707756651632393419478193323075068652505817284424597948529789083850451416353732707294947509967858212701781131174300540247141654322943147085642899870559211171129376468507190556663537026007423059497289100873943754664975900983873142868827063577718128661724446600916291679155034800102976524425512828824837994325270849900439183770296803549975498132111072666206856148067665099108310486231640865987587143492897181644563199251937472302587327446321610036971105953256427709190102073664724798045651541386954699500675939871736328780777532389854390636688467853520115489090102145049312081495772110542449933749200429022817615892256287956724982255679741214245705596141335088895137130339714311165609132446785184003881814580192278957495993216127014520044378751683039391533721774588665140591408199015179270167479447225909791498102535672352607693698591919252693801154888399388547673229808532011701771471036400797410058711788961669371853516431221285739352868730535807845332799615584306183147470636906915736873985551657276097586384633641444138375523728731861854935032436478008525722418851878691969097509630366884028193682446364512386898972466651409458267437739270477658147517626025322750122520614640045031943283046196050153891774396164929717067260796125283809139896654674773598230627420597203726470692890423657243776669004624676218194759416771135873854385454462256623315773132127891646721822326767764013850151156310900924850992059923430080477386468231882195796350870130863239557716627658854683072574148019773000144339660172589704324571087747034882616615771852511833449772146368275075041149840159236503919120707043429321699268639649401924134802532110304072585076782610130234393385150238799903257552833580130548155918848725375324101209038531621070743360395863502792139831452171116695786516574622384088730476077405148424868660365897703028866474681430645388739647669806408616614986210251831018379235814352674194702048280582331267463506777057311532092085574298432369457244047231311185499758253683713643988384523205116805493190488913927476982353612964084844032207423234076306163817822234606162320537430306181362720760644975944589191858812027458206466395228765449878061495687113531684917422214947425497659791415197630611784725278956193994785195855250592791431245437840606710834173167062926741808651873095234177145310690321011234466517391063348676866263868636943682239484386778474381449813419989692285655977643705691616151496769370910826192133747296683199492739019254411951889059962788981760597213148053298654110855264834894293459823687512823829570512062263227961608014697382041364796150356424829940886906295850998522993312497538905872738266843135378030045329380783602188026093046191153925185762349489887725730920384299314835256810844630955737166534904690261198192197523941157068571817587472043530945506756351248458477314017497840928570550108981175455700957625061019484117669558671715228031135587803456312755283186247743579308114450663317993125321187773919706774560761660113750430621882059710560069848637000894702829204338233912796991280514372999798344150333094362698834702452564006596790586350665725449171110794239305904807775098185604888890469897272389872603641258854463520103414834437105787824435006033943234996983129192997659526227408480630202386380493296992287380992995347957666981818363814699456272365382263631365300504278909838719966910592761717805514431862671297992681540759778678933713027633584258788758013271216166546255575707621432955114124550948723360622490399974313007174716003012877217629336198654470067137553300949053025518498509288136211019127989707566258970844461828176783292307279446160558655966381654702343309227251593253456751879043225040547202852582476727107426677702287334070637579073488207273103409602894781796996104675931277422598224072217725855792779462311953732338634821889895962964988832492953746044549627200259855060350666811307777625988007652595280090049242271352579266530984468247742177501314524292619507470735938860056206169587788604543179528147435775877778287255114349911869787101142026452673291150777096461368528948305299555392727483555994249632011704217468119969557512342944150789006696476060534356523661177575780342323234525229625298905379386312008193266673121538953057470898166184861972978346610264159415585050470853400397486613070506108402124126099591956147790351268722047266081301104386588583141693208255884150233012694999507363918046788467130415390444476523247267259618417074968561780959058194184984871426625459296832370401388399582207495924227834425274574035357538256924991930957892510930077569349389236161552868373175542176871493864210248236340278384922322722247806798563935218603800109343494721145794798525409400273905207250442741986221525650948364553462081354078481749008095642483283881913137085048358435007961408697939140594632585941471776598475703133039618027094098093428191012045492647432657758350448190436239652208036654903066376191225476071679785069100926708884241332474069213533497014333876582260805387292179302014655015698792747799243639107059913022358342981262033684889784496859232884914827170215522357952463496587804774154777964997248089238256427055771435412344426284900676997929325630123108530381027838245121269219172751430098783376547851378950545755407503004504916068249441680440855666832042235447782389687835165126367793901765485650182115716049390690426579900465400489341205509160510954600565609791176803367210224511755938592315215660040333602532154159661379249258680508151604470145934675546975328161438724367678438621228488479368094574263707221549538894090184934124965317333106028195496837048377730431340343343860416774757206815705393628449292130461833990448880221963351967461309512250397098423680654913795271820670167806708471361319204723021909695153815718254701150876690960160309324322769139683018750565306103397007507476225191188518884236773127310939454380520688598279650395884765257688875874825939898279293618568067018259449787743978624741989123634553619592987518451004407410340479852096382824224236135827645704555528266156842166798808499285130538142496058297155106804032873014540700779129262947800540626891862891282552564222152917063735863262545896369287567754919772523314819739353664007567969555409118284108126378235797672531703550334260125858918073102997599473217448241647620584823121925046837394938592067932401162617269355574498647122388329752809470862126157597951602233691905044800885174411717601193584214744194189473978678875466136487885653014367478007535722496886896388990092162605961764364578981425517617253927916630628766244465287977226429542265276968260140890006115181180452977226766589278022663614141385560403996517906668067760934452903502029810099393392120142023374429887384629980822431315966196160431132587396530255765093343094902694182957283458002115671082452298544666048479757891295064285651221057881622216624366929144159456403979556128057673168451612205389518809575237323353971776999883017093760140448438837944492308213288415776654613785927145044831420129459962849700897229669126606458509138164937343519454901695220313731915483746376944142949679573030055905408859744187483161646993398734905603234482568897333168207848222100126050964943379439559856356816392014607293096162780111464398201808967687155458328105573907529559765078572215226792241201030444850490129880756615553119145713008563820357733544194267175602348222506160653806558745731314869757378581229161671670814729172411214889987478034582924746461273756448180436924305758977568364809823226709650815822816889132977163587917437837012140210403635200641022785253367802442250938641270687571908785946173040002970343492435560778142559537218609292593851744050717679088852241181450778776586412627263623763084713418811811462337971943069931517043252383181131854909349104874349093813052647743945757067018580303688881301645665868642099808769874636623396011463234441271844548405093625134472816322634462181708076171195385474356604357979088325445508758218784818976397395438408036295911883116791581355067669546027501351009126010342408782416219567400192668527049271337089527789465142967133525294977890154182589740254718743459556034075090852927597302231949251042575815609399561986114059270556176958428006985951048027215270427083960564644315336090267739652991589609905620037938145885598959888496113052273305110863718703425239488333342234489004164147772297603668394752495600735241102833380361752026921556239630625294038953029441498662389281375108171798663968012543756648236662571304053205221178467435876809986760355377730900737183185687563798613403779138469111534447119643527731551631933358443644994533985025050190835165023513426884238402586326331217383029002196934073051931564732398320666293088133372132948425677891448617839592625587919049270047802012374365432009825687833708296244077217004501406467278368391448279578137532598840503052400227373774508145201806091805801516949739248123650342454256440363903560469581389033725646148294492751615955196304024905074232370041027003307386448908611854680275719965733923958608797065818123781184552293960090364757132790876698452039900426052553366344968277315682055609245519498958328864237884017059596628456784203295223389252823563626383570420348102668398340006590155510460546656614711900149319720788386393198776707779075234673446523016491089491347771429025752108825459918666445151793367899812897158946928972968811173963634801367904609359906984313640708882411379702223143433698422587705240955914032846106332481515515658750120719532641120444876872666256107322320175247972162969706729145057487858028505607251536450982923156202060892421559246028354890436418585881045815919680612384686903794573946122400557842427613431022453369421192432386092014962826004908144096997501474405250362187124450247943111554635117800370457881520090280987728447568106399777115105673728536483200701835960663248617628831168009813976453804455000868460204706967194723825344724430530475553863571901363461666379036967297049424089751633726374054107187660774345647722790015139863358328228163954870497182439002481873926122880152104368390306432443546670476354005167764599742651909108566584039411516640255070833299839641910420720379176987261414205756611981750196861169541695510809122626780344324260689531947666637122768224123974729855791844944711063570453163326610294550544877396161887389055870541464955297336143329747108911227089660631734572733307314376585012271505460052499085625809553575402816537795233136510825060017096144417781923428619472268750144306533458598114739848442943646639963443228308824066122212410819867308049631728317733729456553132225107154026500598428784236762506825840215656511687438446397602204343590644378604871927126337795948545213014698305419158413493196444060999776429460874247865234180747457820120974577356741777542001072025547510008480541823970181548407419298218635685066437956222062433641482179940251441130818913289206586265892376489491934208703800236792241507072049233151816118353899864789587013063223212449382392599340872238643273968754432968221525800643589674237083899542616345976789709751587568485103038025311702544408257427001967622674841583169527582377106955792873597968915834474473351648520179172742912006590628098195195476099785930874280113624050763217506132558225814345485327122555680001279860368536746337362881519699208704914846932549295172955542551717801287967756978512957427589616575381819281971996020960615548722800361623594684007256598812951928525497575137769272782844049215852073180195845171962288392223374133587004929647702827794481369520006422877161583406668204528802234156488959404384447503046588613956822484871123783776480181083881778950402300357286656701132962880056047636849312960184682999990925014860309404818138655244600296882143798750190815266063641263684129061373324074499746144132664328648008910478467296368900561852175218533362813198034570787643964952905134060496686520183478771731126389127229344395563312520382439459021567742151488076102913037491831613448576300846751635531679317225044755040156462570477067242931826875690406932506226758932988246821057806591495249928093930914921828335673288223269234835400054268910779877972327620308560478284314382039606228537151616439706968696788205557048870664289417064177407714115700775745087538695164975407966294393704157051491715628981078816273424063875071975067472968965117966724534512938086393044588091767044822695580603764605931899979268837854301690624914946628914124837262624217971703594484370255696807164678866714177197013269508624763153588675078902703965089066768062657079693149982116517875136696534371214914963244596069433516658595455108199910616662161218087354190821023625635973845905471023504230240880774010946086412031347962192292553829339156491180604289101248536991236414397127721332374293136074141936002929678211402971811867125531318200134674860707047986975992062053800604143436817039208253369504872654950733008216844430512223848939134377615644744555989352603008858051738189352669419338877606441190622573875331377577287889465891313033229267143442439786214435575972354554680271636989647853999010740252484011947626608219974576037160259514988365217418433106717552877992970895655716285868042452422589933144848959879282193735931237497746216725344690061557332400181165184961489456235892238541505316426794689005073811084570742329067786509995639019210932243326164807945009055127661601015481766064157684946823502435703018053427579574362022901762308906198978301143968195289179220920991594285866094836550300494466012458007067747557267533982851616904793384982779466795161933478885367049907847289666547280211369180520629810171537240562069780041901532458927464385166418413533735188283363206089046909753727827779555052746979912141145472512065956699271102482557697831152786715446391476181781649022571813361035145490005197580729889281898090220860717011332888258650972408820478257530595418402917731575725954111133252169368486530888112704368729579519171374379259846999310916467705865420779336256381004630681363520640128190645969801214055957297475727528415648612999225622421741672813531246817919255503044012391008316946693610512469135118990281114616595096178705141332324332097864629388420220717264407611210128665971478393375490342400266269861213594569261487323984809074355992260853262951109935317624648424461884318575434876936446884631148321013390082009948956986931537572089899569798003119062460917174423582607318730123832777465970919232279252013130704496628419122138476335957147862913458714000542240133946336642290084345134716648494932309668242265088113276227215387494639635716883222734215700077175846000082432457545787900349837900040073838439771418975774368691797577339067929355884493905490849139305980497313753124410451329815803607584530968909043260983979365168930620242302584500492617688281864257069178589780484825545048181397641585114550537827599588807543092561919091034069699544185145887999681489490050955273591134330430807074173709694621679335698145227298999887105933318964881760572314382688652037164652372118235254086314873941344939351834789905576796916627670351515269447433281306634035705855661002670824264705296241634900080942614371218055819907764578359028673514838722673662627485256138027970235259963821915686392802253306097028370091109191274268406350453147974534890097776057614609158853792742639979049100687404144864260255607834403755852857954532520355054997940864044546066500416605271604506189675449425583437772181188130133833282771097298057204471043327641985050243499533565769476304607521978344105017734531895572630738844217967807840721735151525264941817353386721805799101332734060271814981699774370904209978134515482052924736562545803463025448354493032964440952526212118452012978989329081118055895539498486373812162039987790018038352967973479441889135714858323483472764587717643199056374557712839182602029409654288213287976185207099328414500420349913483109435568121051916990819281575946294763283879262633010542964085523097979432571141017679511071794091972861241800636365097879027753927028014103579855079076003955452288664392589846676427944826600786375057637281374198020065528658491757903330055813109700118535769472186601775670124697822265888621890200271571657338901810400839699821184958911803170296660358333674881541556253451467048808524239414246888527785575688860693325445462139672954286556528697909243607115422802939376867975910185169735956599350426674591430252849755315146652995326995273233334377143529786399531402553116912821152430383265193440947854440167995686407188048850653456843406015520578575411853560666708658234984209373238248908977878288332429397675108325399510810285309204719037577237130131064792813182124138832134182759815470649673414078815563878037675000521777192619070536160487059033705195368567686329527937366722012256478757785100849262557073326020859035992664484685068779009645184409950844499044777080593822046027516518699875271758630529172605254133899169910152910543508337243202801803517465064807389616267435764597769350739689636100656114262909128017977625939387993951757753905349221801722247577368572858854550451430135716824074102494322980437493033586486170780764087506600849959555442810423014274021706653912730717152412610488623611615650202654488975559949740927771721042626618343277643176857810782175758048267544762171252955675987232718211346434067907100566459542529223231941335694409092640500123239425635111116749771254236061518862142155166601512010515797356979624335816214748590203000498044585643952500133795134861917339755581916553920146277569505764324405864363646251749183105039981778153446537026518227880119543900795314864356723930135218677053693313397258414844241561496674691803824618006318921001102472318497835535044849961413206880811706065225904812156080387062583826152401056750787776201086292285568222710101393415480531764240204061256094447737635660274121074230502932773278667340097759230889381874627656592904545684425507405421432834229419056773500745284032022746121148558417123659463855543940635018954374258120059559218797935145908321438205206677425559153976618469644416448057101821644561632696117561581871324135237146623434154140439885866099535755037724085379452958906406943733277134049760858219022821374363193108335481315854662211958766449410664850661564352529211065558533975011745490511036757607813345418242095137753447451295321122830970960537000517514147832097742679302585686138443494423630587829564267395277857324581063566795938881775304353299143233529502070833926281328348271015341554175602778072551821242874755800397539541705182932233645290297195548417392142940018715543668369332914286116074198598867130031690268851708638240619307823101170885476146870527818551180084176348207308299198748131058267048754825555946761103608661361284373641999726015962590179419121461016594518232360663788093670886881745900627575623357270369707893145302214545578267537525412989172281227744005644057895522476393953387942613818221266487062806115669392250417035276709553944941786394991446103073805178169113704689083469936743939220861815055078996522319865173367598203277113119221004059328872634148139847333495086738210268842706045140962369967772065186674059595714869676309673774954515467359483116213817039125102178526891427000897582457131131278738830086920534442117969230040370434428676930559652567153671169073815959829466277558380275475813043773404836856978619971285890576006085702863256879538806397449616810073611894900473956252863533233685804798183782659707517821540077979686485575843978779208882727161894041463690040490379043275959345662441996416997414264854078851167545441404834129918036350944291426638272350335813738401031390162333387623619934718965565247983847220687848899402998775763013558614794054915929076457658077335161697106452221064772507315132877142834587660869390299815012643280791216597343612521302310056950812745002936862838665002228551299461766046277520637823451800959758443049780639246626247835649376717204080678897901535205044946821941092016147143687766795080917803195097196445215676978385326897092331925530631052067399563701094947717174186613559526846201258763556869349889311115218724842753623399983797728829626327521775974291212224684699994829396317657304425033531575911501331881677305628956782004719572398057172014542241574796565079690918176584145527935297799625918416303044824682403413302692609401904837584508571426383913331579017795783798408525940146721802130043481854963339928651670244583401126619366905122737934562910092192158704600532194177576641809724934761407352210579641137472332841605106003266481007136995915994855695183421216205357408429744171831391039858983368465326407796883435334867006174329147903845302232872233644845030599197261079066090726770008768298445136517862219269891642059260832968027156129213473441674152351723136375815433465212335738949205648730314721850011726056434604399669587709692068356852407955795966245854582688030365790952173219604191269040090354260465419337851971221106210510218867332889968608557759323545024171126951923580200618304488212041909020400935247311691116940696546113059515485739905649465249626930304765086437088780711777130405153336261897996895772471133253373105499866328762810855609652232941268325399513348306278514944867454388781189679765131400563805480906764371562190467770494551438561323368654224045705475722657250486672953179398990252549143539671118846879013029846408853598839771918013429916876631686841045946320993010447430990963667130024911544217639444417049971916297187823194217095764983223224601983236724904703020870846705992032226993777690340251613547466389077045532944146996491508112626394440574232625431812369840840372186846480871646928605839029436880172345313450744431435689600918599431270509147246500353106873976260026274120208539639977717301335084964440272969366560499924597776144294198866951579928129842094799061430435572371469163438060099007402123565525548519279984515634737300034571139433131881599736299282485781626709475942698953381318909571908129267638223448549141659742947746097355426372859656657625832568357737510389479906176553870212713844322715029693641098145053420446132318779247586555008680921263673866832338049456798881508616513681059110771940242536640355077595356191500118108608843230588599580572005645586659258565145241690324670558828832237091973582588572993994594557985889936356812921518797244938840859512281258664238706609764621054545464125580608497260664006384741631037475803362481299113636289245324799214797418437635488652090754382718319494164580811493749937792118039992863099341384754546464279605199415511978952379623634366216803810743065323489185661377014268123514700027977936106952127751126252400502811451824458485616945100458977222222307548744508644663795207312219091693456464174856227838294944355940967321481930028650902443585399922856218712049892258734913165895614444865851963067980525790229385299755558986787434381774195943399092644290341086721514955017598945583421030386191501520925523781547697945788273174256072021999794200285413987229891568716693332612309441081030000008945265675591830840670924489904814631804133474181096146591457109765145408292072360459793593243704920307090800269559690283998218319716245465024119829736697037785376451774806255092566084485363575939978307269589686952506078612911029773066661773632904329118070016496899791618694013842707126179715225635909151594571192309299255714557106312402479237477622466055347708699541414189517723410495553023277162964585492542694486971631286299663466688540869967939805802763659279071158576221484731507358615009691624064552635851549997304290731306371395481005225855652524111179133225735510802566488613068153074016383165371339763604498365720256517756502178681416106013758110835670036367555499490386543511678956292026701104553338745563792994992823282027764809147992895378297715982751775962561107220936548820916041808634704961263846810198453290202164135845659521419901345793672430270643785329464160174083474646963174055717045121133483957213654173382242747060336554156005074614238635504316844397928768753670463812525899067200811484956688536883669941375085142276693628384596342640478433622923590065267478997966078189056769389965083717887380296943309400801674235712671600267863575836756520921324488480525064209107137702571453758244320138503473932974154652856679890228102998350850598984686898701113924171553394746831643118740704231831399247195450284504272074679406751154426315225115753083184837665200330292215877729367494229045903871673877991608131516120665707751251638600237828540990002950783553244893379081235051261913982364834252591537833151460662574256773940450265551718563377906340260020290069428364266824892336272580682764224447799137008061258194462869616786637875176199819164814428399131233772624207613625169008163372898438871872284218748257197287062454870382578080018236047011027084741054369030108200718361447430517247132024210612323418220378423506232558911081662886846969507190715442715910178218980820505647455312660997421100596147456146471807900192767849129521767565179238745555831792075984540246396697239641854466181756730479932798927082723707837534996910010230419815182528140437813831315039013406127538510509034852280468475148554419130401991474895847133257218585113805123635627252974687623603720334306152121609241793253315883975284083420699815430581056850680125992971544970764177818775137001534590417198825551655079199503194861925347538591887268141614183775136996533460668661404721387906354731248796019072990349686996294720982595627075145115693407445958533388780370511486520202393565121325005827560264065741671437287259546915544914618985342579308485669378408470483226434223444467383517461614101751751536128708429988102627032632980983569162488440215910965663934066529253541241948836870920266142196451560851776306240253926026712303136500149519730046422557603350454104504958588023049796962381611716458638976892463439746765539201157096827523987104961371231421310643048073906074619648791933493360877629266424576672411686605009174036170076136383506072697730481542515814088130142183121567052516135184890400894482763037407363105351227679699436339480133603874114100268739145903964211176643184185872369476608563581274539756393963576351343048982070867689434193771112923742012710176738446600661201542944241585845654473741463975334182099460871329738469121609446882967413424796216743148158893510748373670118802965461422403267300591010412077970025147136432511822408617422404151773865104049754004316968029965800143154986612507644526099245991791161253565215231985909887211426405330518967085807183167949133310757234596552603234764807804946610194075179157382658935337007793936426329217410955376160770691150778076182701351542902369890764030709492506632354006676055411730036322031777008053962811580711548813915656468238694946528501581037510171038743577937154726524947096403275777449200528390597092257269226156139337047006124001428942417509386194036024954740276766075945849898355517151579137789389482049875812320950883929451177669942744149605593298410978573155353025063933785957045154832242471424097046593692870366728456126450682665960013074098703638393989500180756224716449208407918351477122356050067968179133848585246990279582131382590130075015473592332906967900071881599616183321997634038891438399358516640819454885765025133741627084191738361924947162220774129566328858384907646563281021603111162663011709169302446160541440056952963542398870443668014358163073195298242545546284872446317869918126462844916447231864591492070421420425827747977617653179430159989546127744837752084274777370785505434950093619964984316654220395469192939218446189018976832318576438978377746949081138957626213418114052722207956939165957886875554785498482066229498939908347890917026534379182526113368514388127582023462424379639165406431959340084015633199564679206294396880432205746418515586201512052600759820628709103245405104348324671164124918184889245264296660253328776057033154052964141947999575260165141548207114161406089113008872467046033144688936860156545765539705559374476115699251871040713592198801394189546153439392143976030835703274642647891861120020475198336680493641011160711417330863888020070143825608977365858755814816127541012380939520696391176008101656658503236745843966003050657488753041167119262792422671952705648485590098423425465287438040997161257325192200609830035790429385330410403028000748300992979432586076819627368040376542139720465491401479255299676441316932308447354124798876768863880925426204898275650429867196098381758249395581568676144877104111392716528408835452870711865810848034256846078539111622451042968513570689968526150706775074417319191221634375580053324152232951114634003516778834598348016049215958814595667187826609239124556553485046222574973163026727300174508484268500429526097087650760472377991988034976179424101834615993144457553024793002671419908665626082269186624360514904150499046198770110112568055032822110258947206736798500130837082669736169599586690903495376356387867119013701434587315254332190464968132077912443499205612308574853694423540874555710053187673820490606072947076416272424001209014393834440308528491101952678785682307195565578954457817108982865177887157833619768378635815905082839459199290918697014784978195920358511262375485007325585050906488977915893062961637160542580850785959072687265073292767546230260138595950398659648169177870165574109967469552691403925458316380918549259001615079675562525139650327666720927990393814864987795014916521843642985093263779384517709343715393344474940209037448610608767636696884665055509748680446060900011820566452616238793846366919436875005701131026961217918926443225355787982173368536785742134650318583545127226430050015114923555039598538531603514504721980570158146589310365644558558846769090772925890903122721461456190029156405569354310974502462505487162511042323331936370737618736619684032855424200930328446413424718924080795012765278379995349413927611142674415958565762546136824642666965949208020668371628500348004732445367537087025551093331702226051062855894136095648196819279151269162979389320416733957575056654990328640398923919953299113071802292803010066242539519299091410695975113172187760954894143396932140082997691492826119082188444736704765746270472382899399903587638351453696749357216884101669060805381456868667583792279771751931869635102580411368615196150967870338420790291156331840096165301635070783645623607496151690565345012186135548914886173666343981497861422595594687468135909667309649667101465369878168690819005459754249771981743470353202185802326095631853859771421033638622332291413408851624605620060001605943569903106078042171828255807200813959379651482469530515134600447634983001077978626109926851271419023995140274830013686237341414773527714767133816515276646018716809885967526480608444609474581911335907076272317332902253323648982302399950500767276071469384227428054343205810899648284261574123510285956141196556933617969532373229361704481419381876453115180035135972232723757021601170970226092554160346316445076410052335624237957753048754774921746067502544943441081836492987774938521004869949621622663858890055176046832561924525943893126630192991676426262592264387097048902781130635019318383646894819119626359497257418398985738443206486269227646332018670849962209228824220207272837082080553832892239399368314762920667498776432284064277257582971734111775443009195972936545183662724215639361307175692068406376287296103595936225680519799779402636562844303522412648117992415669735131866059465441452558054300033445176802260038052505635624509732723805159038615376207747667092171785696976691434543285520011714725459074399890483607433080018344116977909042368944244210605138402307338658162365866071064526479426756456434800851740475043598184551059295845845013960988540087968819300751486387614528632077848188459846732570974959267271133578274749758329062890635448628498041021278687658019662081309888015535217025964681342410834717234475560598613642800616359780667074836547653116026120859520682304767390979168414540980264391046564602792138599698090384465169245756437679437091816686745630877002664009352440204056187261521083598143394640761177851675513059644280194941905440300205850582096586885049867615485442647636032691995606321135511156167271473069132445381278910698479178590505800841659846824832329659242020980510926074965218427692314368647566940056699604780975625281343583180057397193084583538408303832693669545421714358857264600760373346936720093509737048966385234806318934980838673672625666613911920120546862304231445170852908948860116141429770979781431318626474670240327301459249819068111041639460904860261194703674405825731225356326754165168194088768198215296163669578336277000466657496578927162818351040467337406137019236460269398050042802932584814206970958655410145195947998184488273626271188774181933732788689319403471711105145035626688654506820232025872816592861645461547852249827707255466180282044274964044447799700430210863336324177407851453291607542685162938311034688600141718019783313963774035675875217485924729651480707810902603094381596415091270670316533917718396631509155195083371453697376887926475020669960160293747394384136393605885426178716729871063418690500706725663860473298701054146242051229597931643846466383716688945997851996936892902937981598431624206754714014902081304802334504760965193519146058667278217949819379390434994113225525520059425698819177253371170597813205899132611328134646773986260610264371200535783506191266738024970511645026780713305397499083450728500958701155430863308539241348842544592235774099646473961351865373054883952746830981887341722828505276805771173135265635318235667142785617335560274690526123221143012951928846373238233680859287038141039634016834843292122062891649936492796779059979956815008935503612504596903393787142572929782811168244742250695485172435820493871685143611312410467889377576025234628457744112108923181089539076211918796098780157490884714440709699868955405137078696746542866225994910257525829554269176413488406165801707224967878344687563149903110209426339267624039090687223438509259181352413140619091290028858313802374039224652067452081341624895909107953649789987420368480092023958648951910853445614373359457790216045837573544764534822514201025807891101640342954805649870366923959638254347601580039152561297313129301845951688879979188353862268486673935740264003023568122189063099988416136194168783796211370564182353871000900672780720184904911342096936436560889872834626181202846359082578884188550550227900967267921981933370609578972443568409871488973211203395118575592729210061619047711430522107686517714320799257873858791550827378136011335672913522862653676137898875597769172433733286929519280753952647089914470572188114436000543578814749256046704885280628208385990876831569171826070738384484963775904877432585485531473748787788374970273885160861720486672558108852961867517048555833973770189610217484538260776196528413501050759716265002129734149291065380169908620016424769617417456925773243290443617878454239416403092060587467199406269800642995658096074683463885376872340831581037368321580891520995843084327625555906020240458059804649940635329613112305019469827291096927920610855920367955609489376979530140463567293726005119577454700314058083938948444846046611093528170244650406877895422873003182722733869473404075008393116228515553161194779817197589470403168874873697068169856145170585723312370528583338646383795200669710902342422510863231922213691079848499968189254373612532461449238776940041033048624293502960596935847976819005195740776553688742011391364070607816489325819470341827421072590534686734940328236868128085083372059537272008174601575581278598166761304567527453901959674885928735181901783025790713095423773160134857531353852999218816289606879982236912142288365300836446350213918509764317057188690449086101377413700968323279543981914143539671499480004021688392645214904146746402224868751294794248487483199063663886291516156566384220435624341867021085222435632486783531856789677913581840191502345727013197469604360973195067487250766910139341002068998922527559866256605885249471452598861871141481717341099201692879566487134858837315896200848867413379251798025957449889330883501244440584327750973054997295823736807205711637959305891145327959351939367937835657801467032549952328492670150707301150327903833707654849865652319736224508942013149334061791372140883277125685464277570107016888170651377001377644678962468812579585794146094494445132097272517899470815559841546558865456627144498690375968384745389228173896431527289498194363063705965579663811004414834832175279157096823500114464791539540580441248352020975122923924915677427388420477449508206845197633705421655310912873861844612971538702290528482817109876272059204768898948841997705994869261210883102972454116212292646206380120602435889184122060411049875545774129408010142280299205622086193960803017622225714470304052195301955700406523708831091006152844151231741349448535632864585745566470366585438992693342138940757200586383831270467335614472022742021458760921877670481041099307939732491777693490988531623884482336698606920201212378028206176534257757361633852546762896833083545800779198415568450015068787603698729302651488136977689053444108456335031181170926658556127009368807011812768689911712467224301887810004008331093196683272960422890213376306327004744106754835056260782573707637702098562962503042191403090135308021331107967547242295500003588677182448610623319131863240120135838034486260037491942982762671591677130961644229247467593946250401446600972987148250422108986739261293689673525542557221779977368815107596286843714455544448267507913077978328984628611557443664086209222515965797660633252440995572750333035623854983396576573544196023101707987001510569818545976067908361895241445956637429798382528291902611199202594726641614936379543567948722812911134970669051192087378182199611533337747572777319805534010748105370027084302022629800220331286528298030340574578764270815528885003328284478548648285721066873936582791585097581072689048561967191760929830890787755354801617059225464794466828519375416120359897741789531520934657126430920207095753156763914275386866057866027213061413320564843098892305854971625224471938646916173810719698214443337601115099343617865319529630131932499978285593374307835211062311124195927286213918922469808466795520694289258939024698487258476712557179701854916052916213363422134709251043300437091229365981834226396182957315473348675552871463024039326776553056921052825303375823059546298597138885196796184410166552425530326120367416067389663895576798487349072871914069689510095170125457118042765091123492355932897330222972021799445262500027668483839998593178220692660961418046320990606004520783769391418642057722699652843174555664518040985508914065342721911253411985322905131866375795215217014122286869023443327219498209490744619677221451285908608976650110299053800321606351073917759663625017841765569779332610281566910918538522702141591988023311338482721945039225990109209477727280087915339539511725198266411876304277876871167804880351083213197818797967440256153583116643355112730966381850222565332831489194327679001306389087183937511948507959993278092617010111000898743604534782200272330608764428110274592084560202898768090905309840277106794741456097991616127757807981754563845230904380561873741276953140869946637073996827917462069310152358800158914047243546192398203300292809234943168339974446830345380898111395749759739735043809438891873503309205094300225191661429935992614114938342834572275243988114661823761800718314635685993335514928160206464010873329879257576617304814370115757258753896812698305428060018167752447896247690954119235380445786838579159768231160317696019171784483259717057737234576539734333771207975299876513357910478774173271180929564147149017372104943179322635233091038912105713524364946787579367312081923520462610335673601194284958770080794067780916869035999726553594088813284829604221695108899131624642935268770372905424534068486588293274572474501188988550897509796200968516022931015407197768660326142365115857119645395957365945880539407818193388237380526222387135218395033328977067335624300915226189308534363707544396854100768435393229905234322294191722440755728962675456853450708895694901055406818965106445900632760770202129098985148076303173544458158171983743486387479934378638118153792972325493623527276349792755592671250495074738044505598185276907953164890340451060379449453067024927148064346574685570777354184996226553932266817949200576365053927306831417803333087219817636515431560851112558176312153915114813903466708009898537116263077624745756753888119988208853904343313454924196888271133567812837239505862950026271563214495307576936303920107556142422631501494448362471612129619810687067419707515790722166329636763431612843182382082412977799921789530693023625897696006658949336702588790211497475979896635199951557973765709113800920514460964446786508577316147062501190290331901917305840208809056425935127031805631444370081368322922878287628313563493764034919592496210160238792710194823324855603439298516135698705901410849353582230106269100573792033071361201372988188503768076904736527032834194426322251135525609699728157154842929714527888435695524497442760976396442877542108963555632898308944781499377436701192483992376576328704076754036895823624646159083055406799252835699467335140238990737091028358119566820734208885896518762437926370946529119356070818625448042322642730475273092614380379330915387107537490977135153812329986850860393344647012288947130160930448686068785263055369086972753705135219667819000261576918988088691452780628069755608713022131503458176734476893203149118450820258640241588571345502494432210684624811924147913967350572463734513886020588423196240347623256432372400492560056082493476897910319779069184130179536843994936803136779590557972463796176688426063887231546568503867552590694154336947634735528275123440807477967071269333593464698663177186989790103317317967767086613923810061504488193269727998077408131716951578609194389503915758135890154610691991328512637940338088539800724977274633764872526187065068430399129363229644336796220632754611627870133475513394948136342492739968875080125004231197417993020454650809468149714961644177250738338816949892400149070749423962444043836113672666443120206948338862757771788436169849887002611585668026963171505630536860222387310515239129892211252237603975056264822785329531353555427227444853080785921615686180766605341219871292955131483349471658198754233881860030912812081745043719345276455827412703304137792613073267127807017393251879704585481676341698213108799387565883907231199839749185971505387440688556553829213522635188316269683472558660909748153855005522100725540041019754970885629563326228774288026835876460579846932889004001288476057215291148985263428023574492318516367523904669178378036421935827552813682556500506330484004392046395739799136386077565101458435893478867781442062271378392264383582892851022467007588010082969771647867482795365733415511469312399038609688779654028252324274076211422904379599883593435548343743769202653189670442587706848178014198392838780863438797559699607864718421783839509172812000603438735084100614579789097739881490487602582574927800007922610615785166869735820340872854147266087046004964331512423148661683163505897448611114444093964874141299558740213409266569158223820130597352677354298875559070495140381644124209135854297444762561289227970618523051176454725444995601730735220407823279750650404509695706001885976309612506715378437820982377386938614565609553073987812066358074781519209524768503911978713439552081782389687676752239179525812533642995824717828030575521175040144141328920819017280562643423044172975990444886670080638002432139225178339385524215422722039507352683631375847888197825681264248537239177026621712569877794296500823924599095503756636666788516402436318610974347666967375266953811798507807586476862044986248341823687044224537592773819430074645019938467427156644472466109444984648903252568144125873184994596218321852482349041460162644502898719599176990070686265822410708764931719135092152156092279751010926106345125132828627879434684274073826266184010841775502842271844508769365398145136711489689301314982280506279454090293429775746347204470940038102993664167327016893952070531784255216116228491294291164301163263152105491393253283286730772976842748738252494213490681794592873394912224259267022019426781202486727001131318662395980622420258954589442743974164261676744842745192626901159619899770129479609329638502670592624883470091240739466321332697762700448807108050503174597723755295194135665097686253498847514875861967941221175892472152529665316048594634089149779159982671787466525811310742695804850113089158069452420239452771134566269722105376530722717974182726752717343294138310613327644533279944290345666163831558042313250095446609028841230541159690006937491895227743524471837162086708551253836029243930047234061298305255295538059787832021031930455420158346467441563215946314417468151051564654093043171562302218053737538403552922099643556452618560160297796575443503452826380773222044579169355377871133107580213891103309263897660923246221585357296371208802677474056936308210368514425690775966280413496492993240935448801695761668215674863788124566814144207678296956081290395788086209224171837572458566659193464914196770161591785493319436662011865867635891514564732881969162931438954240284588673580595856116734334448427485585727227324908135398635363539898381970802753058316000231556694791096177948883278235589849837838133392166550916944069964165948879953117258766502010916710259336634115234910049058306097493252823660958338793134961054528817759130907996735800840029328832987740583052670594123206199459499058991089094058419108632327996326639746914508432650390850486335031976939760293075940772824842212901922856563653360421104572602433614264739767007013446926420420656865340494822593777687173736779567364215393172572069690880777956796498330670547138308052881420182896386850622384689907386636571875137184734122554481607041516175346486817310712325383741768558649192929664567417216510115178783867523605301234864731693747020787304577940749337226849892003984710464038007160402100343318536829041985312314351435178477727160015618321666577474209773736595623573122948725649815025855062463489752626360751016187612058031332865784829728805467462395667547269706944944272318070749393642735327825198927280473714181106154545536171902525682975686126739977979037900364704102889688965187010316486714465771810443413190395548318356901829159561977164148486822704217654831688410454334997421683843425067353220262744636493738973945909413986651506781407760413722580119387647261166993857310185536092540189874355255535959237528865796796367699270751586305653721405386749145885983721219516217047187909207693235529894848941003113560349422038883728379076462354067427351732520523285523478008939822423817340656966269065887253221819959827224213936060079674076366337729021425443565098358892221370939789240753166286488638972651776689831967213731933380914934494814568177750261276839658219249300435122007748326003803123710392586172874550402596040632847921247216537714765686402624440109908947843967745292366571146782116260842975966117234369075473925798075110021660412247906664363178035178597899937852150159312681263093066618581375199581973017195143342334492694111383556192946549747790289783952409354371693720252498596881244114295251400987122046601232405621454759617408834689167349749152378937252849280142375680265107844763348585204885066830077245963190093381202505954345235280792153639199026919248321696073811195920683261805770683033851499624707988860854186307273031118417126238619704672598284419912710977559082796943563397048455565835614370219381343615994599390750717207940264567196131661108442467719907298183634194939259129994893449078664458146717884067782848420811584053687070315424920484667680851760838782820196950257239290645425995319286483222781703199662392419005765517101326469775776092280704400392335728104599396889036708937272060080193271402381750752411594228259922966676481350939859673960736032812016590818255426119630922391453379018598054959510074051358102554303623965546211059341877427853820175943286793353607377102777850884573072490579017931457749254613614833873976334446401681782156547763477909138498144727951357692580894346202488261080999680389367692694145433926729804704344915736085036984619602871765931711161674525398619811189859708172373963970224458029947733327288564776318600119104633828088857699313981063400407805150635761451445148212711771139550836804718624906836862812526081038738252087047348549451876520401567803995978711237674581370831646674264966307450484216539908188816356624811485719253483911822355132016109062672916687760467502580693277939546037871221793686494356523535675870964495359233796313905686644108003607966362049554163280595690832002133862116722270753172018012266659589371197408952467627257562059587204666649118105703280397665207990285559908251603103114688152722627527172505072229846021393268087585117578653666416138040427738547858702208954582806682873125489761945101816773360552844929724243441894569027299607503285504735723100351846927316927762042287430326801485159821767967009759026987074166385634850654289584529561688886492611439133711870190462671812191190033287722783346386257767232922910795006337995720078405126469972593606830680627006919102377920550562241321211045444035044421067098954278633152401641880200484018917750994682003638306222238810138401591139474150736053254096302843727160597267121941763597148818417056476286041009848691330744356561356714526257165898228327725609869563820873979189739241891420675318157998279090334799670018229667961901127559061425918584209140944317761264073143804355134432579467858819682965760940564783702207652685226300136009306628309193945872381555017293762723492486550937467679942247298033138493100759360866945776283647569271424953825354302542734827549161372963798713449548599088121789005665897278721956504296911929706969658407896658953705181090198015523489164200207158478956513464650160517727488089830842962768589722229462030298998948185023359074613107114378988502299713155679866028127840700619549759092319865168561819297832767360413417562693061954193157268310449626457751390349123207939682335695001187350004065947548753193358063010092783013226184713713958173321134874090570415141840326327376071056804127760295219687629591658603277963751478218666135839050267564413344374571224752834015748197661724337861343133904769792971622987269502728731785223309835365416598984193996170876185472262226792626604868472187865477511578044944478570289680397859364194903056595357727619947227588717926139378980846255164327699320514556632863846786795131921608719955010976438626189985999901089509490674490666090191699772860762788550768728436580673100319361843429340114006548614214614083606262105358546320196939621181105127689649161590741474310043842833593585925910064448368967118567129462321364862406691440417667388487533923139794485510760650855173885400533744861700005799073280588877029907274359422908047381222162507503604031629039711139780882897008525003439885477848937074747679634622964906827777937213203207706206025405520044860314821162722656938601790067931156481300758833267051641498215907295256599300484358078751373775583066189015852293319457713257132720042221582618290171708980147148746130606573621024394104718275123483273496702432739533249873188894768887893312403759382305008455553156440583044987723233459037878892461630628094762315317652465705729302131787896133400292633227746747582653445573078054202233996516065199830073260599169654833921769612980450639851375874193445014738335862506204666627420227444801107259040116022752968307829120107808371724386182391622074489177376600707687239432190427531566169280043209664526132907495401653811869813656771004128181369174836886995917287969021936059452238145183399750393818858823558200555117436587938931349811852906417093027511050503389313162375691817037390687542393084173553955857327253303048544568909021430269677551103716993176566877591522526099426458613763527178294766542761081763394375150159038168129920443579791460676576715050160722143925681826369467604106751499646695982117722495901335677058223937717656250832848081098086680986922284724450150725976127116623250623558830312192179316184840033773228713326791742024253858172826098006574109536642797154680060057512337327706350220088212396268826430258345221051505198870089984628205290633802502263112407038134730592125602823791279275647302726034008475009667869484737975276093107740622120112964816996241150012679544338367463847234818810692431856282474178023799738231233469083898696175110427683386111690180754149696141491916099123383060442130769492827359660769820775451563124923937323275123193800005618061450981561567568131591530846913837396849511421465183638490656745464890884167430969834880926527693929087330610699865871997212473197539181971123257334602240514882264903191251966241224645177034965291417715689680854915225529581027046127406128011731765560073948883370745683123574022042597054426764920437494633709658611147548396930557070535155781265589942630741795307223586637719893784091857718310953933962331681914924893588924463183582313096348830857426913777586979544842959932879310627340539582786564733139245207953801783574062626857564573649988071459237136653634835208470634533207223946082520127581296491784448375941341608071479776173538638663276200074761662750593327521676808418115031850504378971774583445367475935961377642563660449491888590110920852445714409280155058946378547334259618818311954242174468396908871537202715639812869975278401272257916875287408163189539347845239009670387413420273468065366927073093275749959196958671484388985057139449305369440854783311935557407715033754777927776925856856307137856408284643486796124327844527720411082408058323107136928955902484707204411414522834270729947684390594588301696811235111446188298927852710175685678293184158220771638503077693064910370972586581806440570584630702334527284004241127908976278092773468468680458990288049246945420983991376573080952423100067785580062273176014277517574551011139750404807667700076342292170446105286015142843496130965099431209133063642318572015757077935479284582827311319416329627265502067553886969526528341920338631650955347915562135375610447746824548899943585582811295126541998723761464979355871582177006264171863619048164222145817105799654522678775965781169547576634888808910964972609153393654364773769288907085365888815926153209743138524611210228502515543376896457240099825032037903308034996808043360953161630807081892386776453289760616047139888020376682775641547998050250814521367874035572236644141908071789842843872894410042656551443390330349808660984986864835755030543375079752802991801999015065612426023393630138634194299906032537257487524782030638506077799284678463984020760645691177399241292088372588992209304576178854882599790724981533752965976334529173126867242737733570004908646724386380185519925877895489835210322016416650019682700703664392338199549573096350303193717989597403607058739180693297076073042003870036513735270855847080336991915024334266826089425650971895141482379326074227629079223290004124223570369520007720497442281490499615363567833001098592104487853485486608411462226494498063266521273018497400069764038097836224713625696589549975334887296876161063090835113447871860664994571927545543877078293356140145169970626669121245822878698294928074118084495499011686238430852682949715122020250169514888434914410607536742976998066184990827762228887206747174006113904004136500358611169794517268865960640141966812972013371154075655811207055850474912856548222297203694527779470329182423326856901118161853719724629050783166099431971264266772787318707743710042512601521353687585068898955509890539058099887041276074107958311160278673893530856613059931560831193577652417934611967906646338190613627027094403505593791792091599567032864087557794452808453932353228166579993416072161392936779530064093644248496919844438710724471288919861259837463665137250307245030088367470498383795878021043742908151721020063228046591305438875999819197086484746921803409719228079071555753118042451773375373227528762889945788515718000245115053710169093580014631113342841142586411694699331834656713172251279247399910123760692383901240709425478880661536374715570517980346710502203582462783783582347404264810580883845451763072634166339456252449024891378667365774368814085897527431661186443760584780779004300243059401438476819576671162991282928175160729378502804360890569605777806992144355614576140978387188451614422478174522514567744363339532633398036362814512635173942250683311469538103902036234610778266934232203393596874606652771574789666472511923802519941594455232394098249909176699806452945477340668704112025450097394192315057375077739065938061130465618433134388560053874766145039420296748826830571618795630082297797686468961857174390987948641701449720107517335557584638455690859540821165011965562443740767251051890105425011692607076690506274853371846258350527920159365987770944449544572937272237183734118777594152331618865095355124461298029613304298019692638483867059485819371335639379761209131072015890810236203000342084628061316917117916623743447706831974022048311117051269823025430285523881282986685528740982890544502072533139176430149099853470673610215223305595217571970420252675325671670012055234989719060365806047321726232823450351188498877401210387980152025866179407515756761775400072437114014651114215796310625815605291911083404110514223681142784280278927488955491800658457945559616532183927402582670723730213660595820220324435894127255663738233896560265403946958102971786536307472523073607520628908658857476743194830132626527669974520478179332035501196115340695939858979903735061888009281513850550498777936141508425251476535080815877531088793417449435594928964408173860426982392617174130565573460909637712394221054303663885951808094219261354306434237308096080432775679279703087000537434383275660357493901608014807880069345372219805857076733463784890369463283878122029433557096221572893949801271227636644429201935963663161737490957043016475492513730031963526975445965955717023790245453836308165392631150961869905894392350201193102035846612031984887862714860812717577399418134052000092530232866884852093517455947343079283349818398770553260003374587736576357617754553280779788604343503870083265151825907444478377758182360094739163401099171612448375964987423016809157203754042919198730393258272561241964823120184314361022058525980487754631418300035650259249800703857246180651206641954938020026745202812560232793560399783572195197457883683073301724636649967682563619605558237620144637597526334709946966624245583341469834749984953026023613537726052208048756977124734801633710507439904967652904988098039117139555668569182141477531046030043689496609444028368759997780942599743951882883339346857070040949869602457464226873842300394361747111992076577013308383416119219833397383402940250563743555987553736159745865901646626034164226697651743342613398857092404299405239899481331859646908750825186317599387266314842404267050196334072579073447844757925959676508109575408620756387023186507094216200592078246614554800763630621990303904184614866418372995532362233891154945779184980395159282078086067291154839830787591698987528104063827227813205395710396773230374123574062813231102102226046301500842665146179656044768980251606892802269296844186264846712602980241549120464406262923952702583861026403762394222226822257618351839403687959164548864574646182225282611151753724170384683646157634515335928756481418365437701275603142738520485714143520553873469267025561372229182687007416491107066106688763128542208956727517692793346132383980368584517584346392630572392468873500197124075021957636335838419508170859284843648451290709425598960984804928307912189599018743690588480633362815663398565295907204413918771197286338890850247561694765725981362806200833144374318998994352782876046195927727782999944292481010118389394096970551319367524275469220203551501581904427568316867073402206376449302173026569343495793722801911145797571354244088660999367040620443427688440032860178641686142379644876483065449717586702913417158981413897197761604916072791768509613280219851382468154354098528749312302737982127756362820944313060516046453023733327347120285479319837672204186863862212674932597148000204589272432709921479217696640353623300615356151664801047998657119745377005550636366465320611680481125954288688777869599739319846552011993734640665612312671278665043394821003789739359053792829541668176217620152848819524816795177522580408817188743162624072556084863906395350924028305120638269768473673902494030316335377290954235948694483923571534738276221251470405610473393356208937466534591923367024062309008642964405539481298594435585035348905600325011240550612062181970027165628065630480327759539062122963738491885309710260145226829237712092344635793238770425702240427232478304073657998092694995728063507502389227877051396950746299837790721577159582801624388836479682594236033366774206433648945234541308790843234494795586342631857546254920187672959494891607294020251001755051301415564422368724043165938250598012091623411526370054233645632322598885153847267321473124810299769577152166057429044398281076207105297181129445759688478885062938205734783215569612939995787929603755577574520122093420632103655452329306815090474220810963872037577588326392476163743588241678754347874430855129625926839201467433014651900317643402931506809425648059013774852929976162931058794718229457606693401268273230051856424843195589391964694150950587217597515176732679164288831761089217625455213807304455912247640473473992006193544402636724520370205066073879820782625638204378179958146762554659396926008538225770384856618799454510574779466671554292288920583543827080462914113823377287463766187547527469677332959537778048495219599821934892580557164543178778897009520040153315925289963718258314997512678359321675595540751607688101827251367058150860497002611482187054717678946185129252126139972113804141185329047376266297401669760977491015091218695208211442526083263765384971068626228513301837917288774260218323221789455746724859083960924675452702018661267247287698485920890034408211594762996364763625298071189407198659156968710481679331749175967445390339653467492683430361290008260103768760050625345917968971289913743058195403448930121655228573387982810789905381056640975923615743672993166804477500153738134752331996072024795434080009657168928420026999808868917616477095331299613474554433038458953776124808842633535177691995506144956478926987115993936471171598721002815540571475124030308632333290854144071697293765038733902370329732691468750319618852090533306683657415989450437571146357436535805845233543900856192408760031544908119801303189055309795307132826051318982086881404373014095639268088988563698128228177016583213681157720369804525152474721015194818269425735953513533931177449388699860857011493811460489240437995911139815689318549606085189288956510545110837282524894237877373283816310966911498192448184418860568734225937391757121629690688658453185269725736193252769584081286493949585782086619256938268721018844221955038551133481902088497399930118420757282172313177433365813606548790428060219088527230723544551809433535179492753228106343840090112955734671607397559540332857150124394311120236869013190544584909583405654489598208406720403550726731800296999195160153024538134377050625338300745858084790014270051307322593975246511285100967020282428115952469519213428749441632909951674489801009297359801740733400187965925484780498686563931865541213373205305808107029259832789244828903265270125808177808310978553755878762701079710341065335325417018773770967793600393879642682865561080588300178931403790641511076860508437556354183412973436025127052880652277828444154703241429541339156750415637269601835135612615789855691692867380372842581950594113330313687569521482504725929199776339573306794673160630221575697331923768901649760309521814968218689732885088133574470413813104346377143914929252420330505778810733363849363932472644632071864188640483429980992670586470814586289635442888582635898640813282090510432660491373839938340667971465820191155748168211801091795547194746735412208343210050573694594353648353257447284227050223523028061774878427201817612578581412545072082297771113696732239448897138905543773625486486557027024022172438320550399806586797114144606847807660016456231028466038096452577955947302974958628648943157052125928968802909023278936638973315833710249713203394475683616191874249663852042821304263317163079055308157636188721483877704339680775876565107318320628395752859306468560160297405591546335256988582867771231997049237468024157428181998133812819398020658280461805300403699120312822520143479837130838379339790620193150731786617572535082879414721790795587780670866529664272569747375585715896291714434984221894853458888478639675516161928342888672031939708016942952752843651128279508350051377944955455489995644990953761855378377649149723321141533281731268628681171227568554686031057031323039409569371156982708691289452212871236123449438940029202649438399357225924649113926700516028368510500222724821777986324867799780012242085351034144769431730108478728937916188609100598949492696736573883963725870766581916537013414025011414169757095385505023409545447523636543849466674100022271940997789653657401525228174944046336420172410053498053785748273838730395546779714996397022783746959788797311053467719292821872726336886549811124597440503485742804020178167316930202152616829608968087575138182080225564947482909388091404825391189216846828937183399559814725478537004892099550462637508954832617330843885003008013013242545812182924982959165222280259348468603034597206147956122718471933559770192146612612834590157813713537549038184636618227859844598431843391688509596411724619123786257228475377716058455452363243173056773792830597849978491308978015748127263751742913680625665679116613572762598642128032223733370589398179673819435030442528490990978689112194483984367434604765504515998497798655425913114945538026935426255262711569437053458071421456786511963282181702871462506687414504858192212820155964941204337902265231383113138016311979127286066768728673790516576422256555526383930174177465334303191358852918991969768926931018354418123169038429878350000378923828630997177525059024587692059176412669989789173967670634909537120225636969423428774299885298887803946187616756833600744006033544452306887452273976475157402292112681198181199361842301700877793914006264428649597377033668458171516564321188858094218383534836862380387520093223839106506895213996949342444827348895662666725268811206696676323176052444965623192212804455059629978880618701176855032353727795696401108746447986469272709731378331342441625059795659899917602234066491852892843302690210229666909245787647405908113646529671351923402467366744626990856323720515660866952708848210187428795340117994528127657363490247565390800871288771352543170984233366178355106613607243864524524292961342724718983569883274023837597125936511771276324661695439859450077560773211883686595411494542788538491254216260839690547940554264290567045711723187674839217668568757359108334679632963188256736455850122339272317188297706142941506702962008546443271020888581138728178176244088807324588554429336794693611796494982778268593572543547576179485202004166892307335473384062174547726333090530266837145874523081005664811200795940072159882102383064816628509787562542569827298876602862040266423196379837724625321900972830022533338833281706659865393736417166283727543241701411825279338338792789757995200243931614262136507731865604502060258545579828382912835150724074220963811170279785615581046656322889870881779507078846209389143605096927540029742990725520238782164222427035156681516865884554527016359346522095760050731430637861844801109402688916304275579945872820098964271118456955001430377709278368449023792863347201802634771300082764274849571227457107867341193177095341616223613904009146985087522618728033565892930016257646054166768591872704995098842952699211414051092429105966702429145050703690718087584924319754511443151509351154462469931197023940373056938196044760558495336008104827821205005503125092707784802998510256014355901644889691105459685101782905419158505681723962773314151717857766675802968962222758523632181809980923937259671424273491455412192832117017449965243217679695424388069520188676353093836713384310053526816033868073827584061144290140580555782566126652960958922860468477978732891001304305673351783581657167603693982037263021773090099865945615892652758557187202601552180841151082394089879045885287485330799502487971033337803555138210802400361170965536205496626916118072202555255569049735087144725829287089674552616770966791067450269973585781103760790286683129814809057497950246889127879998870703642839929680356655000093830513254228935806789602879155803921398913983509100430624357146169046258803426115842602064852005690475099720889772770599008759092408160101354901631459809071849155012275434465929223742466582556727970315182130476204048261265418794126374595396496893090298484978229889318405625409071531955243368673193250500321893524797131388933418223012067348044817821007068779546633039139098217847338504056874524484412314880350705733556366534353482999315828888905372936925418192722993902516190159426235153685825966456937261862682103793478771372668947518641129690356241470579343218573696458923400519673033972586425698951579386217586333996070395279698456241488367797546799255800736550158351196732556530453314650030936085348050623643315186352226479317914326246879687738367368814773924545588602894102021654043616862331274841597881313340460093275068378985498810930235992807144193777316087653181499215151448140400702603619829386851350083557293263103394745764956175907862374917301118562234654959109630448740760675138563284399792866099260516926711964567509297911511637382833987905412622775120861810167502910088676612811459638338096606410572012327738238290441302967563373247935852156390669467087514221659827017145621050588987063232763434467422343561183338553272826794883966695304847143141775396938089670609708475073028760745930222961874516644146672514138941574634026200602167160373021743183164591748702088903337214413505534188423627438736219858337460021275966815333889700827120562908994124288311579488878996829502998790494601853486212706748119052685974506558852274827955774505087392155755181370016276781379990695058127790828316757148124540073572841312666273912616366270761075686075319164126023703331524250036180326408903825262382471804537742977457409541308365120392495679147626308013430635844935983983611388021198586982736206205401370267598033029736456962260063942116802753198541954889145347594615012431322235032926363290278975529246021236670333710748753183790213766075298732201782748217328543304997141576551862993041654089774388134191509994859716022890687692789997945612085876676513840588915062577550231907258861897063554485862674753933133887452521321202950332680183718386314532331000354228613752917895541244860852871833024647313335169641639295968750024991968974730828510248668847295170437433384528388395553360693669925510640685294844103513843080216261800876939566864944418181911172502599629397004139763604326330577614424474921045647661312428898347990545011435492922065230182198206213100819069861993929971834560916717515957102372570270316635266552860057613716368422931961098277290161736204541823039289301848290833422225589598363432419562602779963934244716437880591774846477277352430171129445873978341901206782805376852887958484802326646495457038811688678721599729898186012576914759617003284045709482448444522402973070359601677971286434758461818645780782318587775395127191310981869111696732291672882741466420665597291664814039027068886031837996331427518661144127416828528050285971738260213642452890988323663219832735381202074569572536203870867552617436504739549945527154085231160032458887930128868789605828146944084284810203969175805730685337635377909653949316821087636059948701661578577579553765451115387589580384310051414173025345959333137500799474837798163307319031559384793076161276740672013298330623232157234144508840152664847522668560341304347431062394836027039720792141907785170850546195585131103323954841632543130969071190693414446923487598740241678346996844499092789089180190775775797565602967256360873731428029076869586679633326859622593573125427166084956661916252419788066147764297222615844153801107334001015191744482046905016241363249545409541916559112919529475210091478314790153720527574577916215570573398911077017585763124114684729673036518423541681884983296697613017276775128742165839864792765348822166447952813849457908118378177660118466314046718608309885563347913697983082496512528451647207947115562798032992540323277931404051986576346397870165280430906561774790966914549177272001138067640379311052215105164347096687571558690608747861607757693367990791811147156664413800073756273394003330231635654108215146662066059520229150034985788530254808956731879336634017332273337854038830391439943992824800976082190536434738455280814802736063197336713602730380497899077532960815419111175185675824029451835513731987117921852996784637177907425009236000850446336045994425144993235933145749300557751785278072305963806900976525388121616979221366570308570746396925810340294843856470927277268041020160225441374461434684241055538670363879741767986399275969593801747256170674872931346714593659210757801172165809019297135831309862235643432623329842315626726912672656094824843475077458077951451505704936182310655764768140501488674429680772250895523583222331322502074043172388272150144034850843158880311776222719636955701583587148594428987865440338368627748810748536746897553078065577371170048658227157072007290301611191369056307705723699103820328095393307730267357999181225412661338447747187793988523244471266918707795747766943039637267182297065046109749486470266613700301733502480953170998629889234964977355315736180024318025937758294818648391732496822123596259619875992876218284184327180686889661596104017078636748931280989452373419565694388476338792819759779832502142910640186968664727544717374236909217821287546086972997160009024962458257171239630812550126725389592123363251970880354048870886064436600842316381271379895634090775932719795084724993918912342950562278182404819402799589798993908789016427390646206278927203740027429105815844772762880830260676656540950530210959251567294528080804773723822282281097340209524205141130074253017740204495860659672745504216024548069756723267683003887751965296411118593813311584415440232950785619876557744989937497726245646789288535679937703650045829306875322147196404722490596037374327511334313844278476172829746434355810730420666072030133519676000607678482439030959730213164006077317190261045986238590151796320618409234253126215211690588162314905682451517264782167301698097756033530617465783242975762361342840785352489656333105181300625629735977680838566143759751910876686750465374740931616213440585697934832061481240826227548650957311382791906027375048473189427490488122903950922795116361443869728892604000412551318063410840009288253636278002537354746276611495989077374191826322406944091752271045133665056129444000595615751377986671644549100104188791729919213798388313436608266891312812447508364617308472267088908421100498536687540958084160097152348548106321745377126716780796475749772417399083672200955070031971120980235627963170040802503837820342234514206911185672590615429283585667226173841884588031970264722271006427796626569398116474535573617166630579961119287552294144510887129060989548984418701683273238252743637357836305217048913793655747255693599743895506239471680096113992362299290174336755980529597382330836483594030925386321748008534465142392613796678187753516935878203332454764606792251379711075111003471533552727879868299893446094725043073450904723887462703916658831618291461621123772821679582624019182737634019966601737624318856058898986307737051633917054937750138137826442146476706728639328911446051658941416915783065771853652932940007470465476857158892358148301152424709337054294610843033950250922241926595855793505755634501070942744089682093702723880274860299854703503159715832715330803289670105896432012165540347141808393087879575604681791199991818740707343713268205816010023901506924696436473281569886680993153587614164761249998626849859459355352975419392436819255515136687928842850453514891557676631190742761576686337742427962200595989106390913181750116833163809481077783135130584389630323664581350543995740049048774547171380124873235919824730452556824735158332089404868556383978443712698102101861212332318926094485094759569534075953507231610987165320542009976770780165475282706544896486341021374444248516530088985754869295703893893224326571813280266299226710896580027815591035701587615356512060392347832784771218204099953613012078305468775025193183759788747689135785838526207222830152071976895556857282578324821932198524206419952051871931605857522290080351996166870038696650769351826361861082861122341763063458583235916333911236743720282329832498219607408763697451771831487204646398613725837857309900835522731125280494242775242367650423766918305829700846854641361164416479566891893439293357600104591728071467656315450673665199255925922724255023431424800175121815962499711643806386192155284321583353143132761320847510164399563042514466280454744037250494046609139464285400393630446812069975900595304453045842071890294527526186345892334913366924425247798210993814240997636364962561993417053039596567714386126816311240067283371635047893952874124399666928221940065900164680882868627148036966283117500174179879451396610142434537689214613267858184847992434850903748019581960842741298813704384359314831766181978017134761372638987669138614536427803535223401377608366675275470594005089419371760706772350109622528381551124943563930299350056703350521791246508380061171679783865866350392817581273138771647328901760227714641119654191200158243329210462275598370700167963821279447869682718434310882100147996263585006221313040979658999958033048899951691683703095537802133732034449700994655107027850116589631040530531815249257559795386874016629835370564539489559884718514753592693625258938689090413279624842032153105367687096699472202123400725643780994663755368012890209720247895101778144447316058018957182614270840283159585729676250887018419906108231484577391948549992670338666900761270114331259916211553723651992883950700092481001883981628445180179918850008456595883259671343977783827464986637303476806285745723892830855177551608734103401215323788431645655053421227002634845033266146613992257632282057898022279264378575344228309176936620628917808213303490422919928547762376354663494321692126690114490553783540163316722229274077719248230928715803008122780997977510730533280156044816833277664331727365709625551340941240044411614494905681777946785472787068170338175149134356589259064086135649196257912033661520822238698527573993868047349664566238259102323756384061133391901328563119079117403297119718228362542341903153590457682954806040206151664883102586840408016510872426222944487884453628394000038121233363499935578413320556696501490246205310142542752053642160657661119485890141735825876032619452185101017773398498852860555122505495594019580939457479442470728151880143751247544163598988315443110635369655310106831522223263144546979900181425512764417356719552250079041630804526906976463254599001373195837609247535241000330297160643478561090547314031469324850461472681215442687462257420226329425759683797404830634933773271204503528207472813185302357118062355996188699886367814079632579781923652916541013180113869186638377431930307937091660990511921750666811628934484802706117831110468485739833842490501734762264398782265053429320500476397198969438701951608781777353807849989380811144850367092509179184192206381109215562665253087643060052108512178003411082328260736729027225515862323841326703144853694980559064773169159590472867823694509579346856851407530610116187015767578836025244848376367368557955597868083744658597668996254632202694330151732888113979767018730708188956635608382016383099546258416223370890074808292708759942989720658356171171482884775613312577937306019034902818435843759166042222332739962185148220717844752931642200896593626266159718296891602227579387442341370260554901924826502816780771685341521905425076801347780447896544562843432335159852980581220980795824355890905385072325986389652833071752787010279703356744594927756576883253112521544287046988272301995648103098629350988672122210477356987003188930304400025803934425982855342980962123869207095859603781446350037969145650056455735065883646250950075875395956038744214239933026525738136211077632150730219001689896552027610323620610673653243970887145053603540239507938927011467517496734362648423186211515763390188337559595356533489692067469139016305726429831179151252394154764103191469632624112387483095238791277460504275289343198529106283603662913327448202881387452990639261779022593439043902403332492780346097124128632164180344019138506743353281887964340059299678884978258052334841503191725038116908059507543162337753968753837880974447881698758202932049685563381267288499493961403394080139262733306709054767479878095050656763868413390388462765649477347280768753303103598141276337714411102081296433719802676469817874243104246758718074889512350766592900682093761272103745891416648035986823814866400538958038517955821912821978088969231432849619588761458633481551852451595021741588420214066153119030644354858132954462787943371477775645512720086283831065244790113545473238058296312180778160846556679904637189396045007979428353904505428550538071168562306966277103677991256272854383200841397717849905635768078212633567496961921863122242118013753875906450968646926884171962765659026511934215841920735244763516670153975196320928806308868662905601753712689315802732685188674174131486921781442233866343915629020202345275907354596656508134103921957002367488929901440037083107020402339445157395532734295943069653194606736566986528827588563471175987770349788844611277295676511385679045101592373452666948977784764452968651921604136416135641004754855264932710419420394003212875639354725953052024036291277542130174278785350349879804267227146601949514030973009409534600738753896171800924961069285592185358594175479654006545448919055642871150195793105965310895096450571488331544897241124662243880282787143936557972374755977395212127371182548900292669574768797774504396698241181662749781705409643691479910577274652298351666465326663713126482454788748698411713157911519755870985767779838117965993434716266348215623285189418111668721728940678465943097725070567499826702497340028744432844349390532878658403641471830152390431383679546994894617498019685517293304478624205448399927516590196390906943079544032776027086443447152012970855239156298076741068025318186897571859633422157208854721933876868714895015472289289649461140622597312524551182163984389185187808323257515866602854287347137733526177123953850561567153135740305541000699403190557576740308204520278087892680234917202135439465442487794074321904533631948467469915677214565026363100694987218423316661297719631960927445253250469367434148218637839299263596652227814263879431927821416665690410531939314171499566416054026626128087791089261295504445901618806187510715076918333064049391557353100561677983041550434342561574771062402278477597234515220921458097588417375651576674479611884234493469578922338245588369259135759080987481673892831491194695886090437706694194402974470253289711308120904158566871073851531818334946104492361558913889444859076820266471468299310104366669711275403306360309134184706812147629048471783991865432436476025193298172747804880361203668369221515366403151177998096313156816962638379510943254689545496422077251463071829129740367771888577007064344813547964330615072176666624140089313758955015101007694826850552134907542237865890183377160649173721082827749207949987901469498003376129812925015127212000662791648522105455269816282031362896997376687037210911264026043728530719833483513035539637383840125608028796469626024021530818000275987708585413367210435762280907993221382865481202074115003131315093321218749061490269445554014606976322981530792465948092244038622266882746513336889036660132472733943944278831043850036541952290098122898682791482270106820085832848367025994548158104183801904997464257295649852093603151356528360475016497882233422322065680341751991056993155260675227162915979162482687195800033803433610553760650912551806325376300258190253152418915723651660528343584717948191307705018443051539098582918192463048526806555168974230922704614094723697536551190978883977530628939991724683860531128670227817763756359353309950759824104870827359726837784153636128854719325020479924457860943021344957845942996911754978764938754673726377026093706729539383879399873547939626560147191484817263106645327401946190114100751621324597573108276771147689161877240785398457177566269900768652131906867416795755927260646315066566114133837623846834857913494490732593138053498995191992322870674018144184927155069364138457519632993262641016318555207580970764754259452391177113112439055541297364226846281246696224887662572618336846284190427549917487206875337808847695535730280196763409721393832867234092241259256580390438225097114647081121688815754960262832453926347200415331653909281820220549921380396370558991894384618626321438316796198073399826554005452573311617654006793600492074544671682585019646580700624841043047869734485715737543959220196633170914270788801884737696002558882456178000085708416298888091496811515468699547850425987393277147696784112331672927909203978508459752965896309104553045022657174698526134847679045577015475000093233036855736670540663779658541079911385301996679077861828221207138631261223512646047231720689120512897213701303185863351870868447446102652004888639637644631747706143311320547330707337066664424150370898909756647048949055515298707786302013274065197434190853760873333049285989168011157504960926763812561824992439949822025718431500965695064626040446308422839143734725421624388424881018574897106818888399659961150775232950092832772300992613710167281832428371712829712572384819958978686616620555200802686253243528232447947794210894308258500901101347845061214550792042627772955156588209314785436119247333395691540336725408426742079806747883884739351271047629615705615660293730724245366081902463824931316085168325196672273140913388541088155491479804006401007452762259962701317105798939433187300971459479262414029924856564155052142332501061938877154082224183420189806925264293014917742304288183857644047577266694434404784808983409169057831818569225358912778774719743210606185872850291466436341156874249729699797168141540170409322370787500740760511651043822176788265356367618077148738915383770109301210760603020233960604347265573158455514049060282804660707688618156708292941843970490416124556470464797423532156009936165994321705288409602578174649688874202980563393838402862759866117912012129439459420945952548949857483149111956021052240173360871915557574267994644618892583645085958785564652116264485697191646666766067827773818642170125388090913772033838095572749604274415001359200879395038883325379400310011298019261531802797956916594669726574995627650425711545266904706203414691013745686610637201681396216741746968935494954126585183302660691169680920559415073901614750679688365590326982030651326571196960934026121024372544961504584133629802957591936242449459151884404993446605718427332644037689093478417604641374646730105671100653335794922209916847333367508919436134267830575716052114054208890166708588029687875203340964022581040288986171190206753893372617308633615031001664255246586163828275410954990861435801526762980901615589001306872835403523395077888790624127699272026352153476066622423380778033028146257101743246051250887217116256454941723437018661419880344466378344935442602048835724722397830311463069162789430291818933185567094428819874828748550679768119069498824086159133979067099054776546495556770922596365672778621214537367902161832103260514530868314210781621948844115273042291031336772185741777879167075581953686185000725505081545543738054831585209248143997897704070245853927777090790802781590969671689917424085706859866428577584748653077957750562808726734442337813153044485922150104039957207367393937162238470464225530859241468699917051459117127964588247112768653228965117757639044315069335973875219460138052702155509876213054883489258233944593017587738348152955292976283161878138636252842314512821664350858295254237760941517679401427042558503040929404767999978944486284968194968223129139812130406411392668519775735787046208578348496941890430818652964306819147783716518596285450507947246512993535102837627050048845510381620844612918086049067910483110979919229978282652996966876275101806793977701905078761583268573589484192781620097606616783660639317641677632129137695943503958126697655998627568292116306905167437494332240142926023585438054676271669907164845289945223346413653952663495420853546846714504025972395568084706631312750038388487102577998248375662125088170389260388077720515605569532967240095442637538628536774269676021251544101121464249148349217382819523440764202774023223822609062182440635985437748669732001009178940605684176014256573886442985185472791255417731775299056067273488156820919391948832048267066115277162825862905553514695229901372486973241144757211487477555944838001483442188295928198820689752760610655746038804259419157360774808006784605083813566281890786119974585624517370576050001084931158651713134396570280430614614832044601493169618357672933803539169265772743299691294808216114770527558898363918315132655080159722973068858300059789356669884286987056271676106857096612700826814763656334745138541460185721587272812547093885148994229163023265689484179548607137299220236279068342908908156656198959918422597592946417700381914717146099840056376139462781220186488715759537507956019803070608433882886601432386046036689530933329077002659201413501634606859442342637855839460925494416078273261242581922072611402351858026513915084665848307987445736380178139398620349382255481847957186762824660509747645907844986670252725846328116684041859422675618979553846281182425924645670125154013844458053013326878116185732887757132647914826839112069494277636339341518010820521753120169256841447483162129973549217637553977665554107577297134039716235432517863930040025276241805547777216878195990481347392675704182545613024163853436699779335546034703940857726406100238591075259596278164048970088917092210787507742187598245392049775897905761062157059179804561458188836589265378308778990464953788187851819241988726099515635880060888234528264868313464789799764255574662997870626332868698066190157304285295566843415686525674541744388596166867898620819890194140851247805644151867073283078769051855860837110296449200726170442606443634027495974234099678931724797302922726780720816592457191464726115354222050353491865297132277560485586234731605069648584051322785867346398999361776318701259183220428448730102406419052622436150324728135238384639951410013255353548015088626231112769390299207661166034776493586151514445302115095144316993600204059382699145813303014669529501096632724386867552649619101509065184743074823354371188513638438576302588067414850206097148138751235680022132425276532102775531032650696650782737911069212097218792296860952579564077816566133496991236741040249210442247834158512366291398199518585034562366912004733384270161390382921341211733011215552750307762229340502520272359378440412779631006111830467701830371064573709263473073639652519492717612214142977068353795930825221192580044481308456804018164913641126697956775862183009924264852818992196388901458175631161848415051155198986492962231728691576234469101261882049442007703029616712629329669763657358248623557867533978152296963913234514622327063948426963866400475799074080661705988857266733425361261198163379552634907003190442123705245714068354101895256891094624219165828461119968078938155400890598545576899492873590526564006630458616317757621392066504823098356624519380432354577646639800772215387688044165392336120473690773159557977210399488902013448708592222080544455934655220170012352028438337181877353870771256026587792285490055307747700660783006605694246151521861484519880550416834696641394127141697038387161523656576537641590955089474426027798669621950616991967614828999122455355894728415912729848408069826211523319442318171185735484714210565986832782812799699878161727853199232470544976182164076577563164431868910461589346429797755971067870669570660403616471752512739455273597710514216474306886479215879767124707865197892293473432754105304501825162872684498099442315539742415641801692424607939110322672913154814751061100887022031573139515308167443930044397343105196971837705909098623671582292406664665382609817475334167409148991798259480538994326171379942226042577516293634848827437375959588678780750281024423069445628579864885045722213858355532084376600178545522563099543437625863371462893521069656701063397975186726724097772303564758987222899782189422051774981737955595599157295989946477355128872984481405170051713939987705808298915077723758391699382097001581868379144193753359824996135103849507971416723992554654501846182750234470641782431692899750418421818379071870137786753933590576991716797133363105876083675766814755931990507044843090780003938432476296938901978875156003698989379914573398582338256467770939137708367522188518425370318544344147375509090205373886669084163323024997770090399984205156638747192149544172214063647113429221312494904495580449417276874033902097916899994962206088407222597161173327880356200564201305014571603641268763733599180142275608991139051867164360300736820427123448330992391776972950970523374774029272341142003629387247845996621466315831995071083065431718104925186495650850385635741798836287000815076044996600293680481785622853535034855256502031749120671166357126259490210939928183044067061043059565648793977787781247085385622961228409766492335496245473437273994309242439510742959394671653168686117001818147823565569690504399928849940791660350917966152334556105393260942801898466889911964848197866719794128856979199997801239603777968230036129300959579282813945091693935292928614823353435363919216880256392540232852112230582050374062314520786955266837840794943964246004756476100121984724470635639637448877619410948680133771647742235844459012273783480256435498951203377535115162666727031136726165120555581574978807634195293221274357482964802391593334736691238367923912148273859546449784151205914321766728787930645891135565201534535655226934728783748452593443762463444656007075136200700614119738193588559434902814827749673530862879147546299588982124173392116527721513258297679874336652510532731247620247101571241484389512667293254062849631924059307541921874215247146118339571556239189904194768730930501495691218589151123180709382406505721017884846346887147512344051385953640296579273877508434705615974372163526680599193181147619245865199495849965615157470003463318594204810490700063650302776024092137565954549801359644961750510175655631140978023893655060370812574386263360040736994859513983607168391374658008315404877596450326536742137453848804875182070357906302026959056577086857201356860622124190476910484602291591555431497709598887555442953436118999189211838342890605628402984922065863921307195561865485308903068618175096338838008881966635238294425143787267822804464639845282801349166359039887885333105986835130955534473358394344517044655750295998345877690959202046301078983885020360638152658807382893959833695862868290340467244843498955761955401508134602411836883583441242705652738443521359352501242801367569831132927250772032100720188801576162182206584088200465268183806784538432272296889852434720488767768221707544774102412415100419747181259983564022158404316778835901505650636110101397006300678284660583127531760208991159769478547119729524496448894156105266100564398027634815840565076221814478861803551325047204168111950782834168250567662147518001261241246718878827788709703914343228358676487171920854766776486349939412826587556691694240684018591971908708463957233549852914370451981442521706811743048663614200152627616341593945512930370974355019935992998740949768448399113387188632659223194908341623512099144817682097663274952679323843037120297159536171910129330339704303778162447153227859490043041769166369705222887752995040128731616708410439375764997006209933399622395333188012006849216567914275721434139003886500640883313935827602849285590205035159279504516062294716059381991227032164652228700419838744843437006896857407181875094203356992114433800640152550167034792212988402176024200334915658239714056288801734422161447191796921694250611520789928592477616110723003591109171317536021245975495594993774716033308234522582080325563504772721579396328933893771735297537706643185817780637725324284542505831443389176036226531495206463505372382000151378400412505962601505962087314834994951679811531557789864387153827040923309401996698401689421884695518893231625767828693998019596114637872508742549043690734517313002505908590294371286140784639829308245291460238807840633770020291595195342188541538065082813112731297001617116574969286457266055315608820760798379765331132235236744484924633423702346836527234878317065291191483601041298297286579694710448883862041178108469363572104782176680643192860387977234741103207111827389584512512329524138191180786654740555144757264123319145200709412797991716232037498675046116921291167022078639947609761882660688110536222624728290229338626282553193926248816882468426758114828569745532956979397932814265419047857006729421048314023501926686970573222300791505522344133899898997679661655070638411422514574795953976071107399754159961854301189485216515578670087835659256620608499986555609577983123853718304378090065543537655430340213736025753687436386362973917198833489686599068374421659821258114306133325261975823236138514022595703921195817442622701547406684439899685369575883950524141176457759671067371650876256509148222824996516893406674136122449354855355118193645829671341749979086905500277839570242746566067625962205076386715224559998050939432557001213971693620490592250262024447418206715029431657167286492186453050634890196039861008299322711889701798950119305124845591758213362073177674243734798544136660300679288061862552231399239233495282727758225738107068147304062472564036293658969940490677083870706422720839761331310734903297170352159773476645655370832082816022802211669441316387499681506078116626159494554148083854722236731610530474307115667199122099116650391431050406116975360533552860750209296653672638943297842041399043367442084008751856166273177733601157287614152099822381291442890057810299336057041346605590792945499401947303101524680007484778007820259991944615085254269903525548534599961530868773786671943381238702896990608043389014013241441907658289713661767554856648670413935871530743461822704454152766140183959816794216501267028493482410958785942306659435858784018545196359863374753156966566231831447973593074061930108496137901946446308927613969020095254328078189311617297231303842273141124531834721012833697775951682782493373691618265889312960683222367944933370555234650443525460891344286285134437785178601736800882659779923474406175613574884378178901975991339417060203779569893182484714430222516693569400870586583483379658623039593316201199916102288636055766773258038739370820654718600958552707671228604473706464360519604250826320359429167187795066668050243903637266217857122782889295306101336864493588076229375739867281449447324754339126948909784693395690292472107772802807852061404256251382526102792689089586833551172421784252327253989108509913050860351306684349639757405416474446845586310782576968374962166358438869560174202173136346910800639174045735817349790767199161423515976516457089965772626492446039577277932615994311482825602309640059247867646371423172313864796282097237107062708007259984893067686246602327154093497969136851097309500409838797721668537276751539450419189516736314567210756919361148738484661364153461350623065296074419991675103840366017631710450072514523634842668876074929028536099181845524235224357879089191033951688280741789927127614638630044467931407602807089631539773687502885384324288743435322618457501994781164881072796807044508891424375518357883421037762637978122890984434410350854347224850454242000589749708830913105867025261372261311024522865525956100185754078284603539978574063688775005932326559203424658950659179449721544130345506284733570733707371252692107245671117789789595375583131617164218450828697906404232082684659381215106277122226435316234308656647679624325927149118648848195942152091516706529899007529008052772355925023575614781361537111209915815223326009567875852475864882078904236008739847813194143170472558766697004508458049478409536289431466560767408336040942744168326501038654761665812926825535189132795819931641425997788885661310570384698840723799240041618308488145577685517396020764687521546894920858726346957164772255663821421732907670873498375274435715789784967786194409694799505474508244589376258240125660873379247729508934517919493646053387716469134839149242534945269939046506545488915123440349599543866448112272941704344171177169595259420637515281690407515924901328187433365604645695770012822746739751099255528547360010482203040790197335629555208165968908225517957143187865287876286882614740646916456480943306704650093437980887884934150945237808982418367852827021101233406642153159500659044395386264592949472147875393814146362758825002688572886987165565889191237278066600711617191170405201059745496142736068999373321807645945456347733945625018221731281173142276595468327596842730992407444350429120423522675367841625450719335010914831055409442884694424659437635929991576334275439434597037244798195888328404218924434473486319808810591226603937986390229067301876682514466265141404915864105811526566911050781109698114879963368076968657262286259310849991735789360204639367404096511106472438393268156901335038868519391620866435319981599780188232958309270603872595249426750537447549280874081343814521019504284782230012888162781362435053813708078298265161420663748169669682193355770732868012772470198879915944406709099875006783622897775823144573395648319711756013030505197667227890486056072703733692987772261062130207193442195137755816512664240368939025321287104428234142237398576472261649637548444407972425965501297961699333620342264761974335131870062568840406634131632186793167690842638193691420647577217057462111180304429533797956218663752171684998328172239769552248208420765475311527404222657934873724316580706491295436968430210905675573311095839618571075273162826547444516112620806051207632461143590537739819408180447719058690660271939291538891742668773722038336526989005390019111992932966284840500890839123422024591277900153992050623005291644478432465530005992518525089636846918174581778383961018792054854564104299040647915118049388446334145904336140619397466254593563261846427812360092691683791330435755410726485687290564021859094754128592549780645494937465860228322071648427116053855228896624446437424967776403130123432310636684031877213775604772917181362585718850418662028559716495041491108859075592814762828078960591407897947603596886737942628897582655485311076083255220577865483093204274812082096076463649659001717422957752738754611038964471887286069466371249325560774451848059223637829867498271301568094357035163737267112519834683602502491379831014949735129809944773466140978212395971202807667074853194955961472938480541422833814403017543337040285456893144956685062185773703694118879442294130009261663608282046244631937502063302767300641401110856655084248859689633768432160465835419634313427275399667170453587002368940174764105838168240033571944055082532278175895247166305225676428944146483346079594500072222994181974637988539975012444274775044292520946134078689811147394994622525219607123355122502158067148384104744859774605509237663537168771538955640428812462136008345782722019338733388041694819755784681941631939543716125522830168330168789698834994810212292750285432943792164008306974848807771869188498926923121912531228917263126409793513333623005692800645162901446834474889863135735832489366870116410599008011170562856899678323437032489010542469945049664766043855569002933302701397779231899782325548625158834057287523009033827835793690446147461841939763650765758251454579508625811650968464332658894941888618127797157767872399524639155373376641406085812376972706362774152937347575647224510135546965661944477300349720774530712415718676796862263534717277898878764037563579204158932360703131338706470024750419555907795860308073293215654571490132568081390734048671072652871037764550091357322467024992771214985369511080551275804740408396743806974206998344271644808361595666549733381123067978612399943999320285469803764604071903187887335609393645917284998616599225581614838119913218924245246913738754619910715438584231968407622682724015667135018812250789770710654984210484276264202286311053245044561424478690562724282967298078098478763946609346113740913075621601148306978844281200433321778336383598683869450209857391202900233155119859264410494736309588579092004867415076902324530446355391398360897670290412157117429249581060453985646204382555208955719732665981523421283037397745241269594696470427720762573667583027981398420365716949677778717533883902303638660634364509835997197361396786124737962192036647999551469373593930470635246738092360362451620674081027670352845668914794338375205765736629617096813824164044008280043393841954321468071471230575917603469650795265182965653609260116074651273727027085527816043421031263403715539850334094670248224102133320281548027860438560692870924758499538130145292139922551845736498940984233458436531755222865507609149501719774125660215695012627341092277541389979351551957758488631215002513075203887054063862527797771292235706329523536460077909765096915819846271897019285637209919408525982559018093025640082853169674614068679180934304582880953672331263660720458501846553884847394754475370713881385000768830799033550066070588964366901224077739829263008647207668526185791501914321091051460231108491995364599907098826975787039353767071324097475603111210389298417066723731904094018584076691164952707680867500737494422472703672295090988462514632655202500288484528995096703734437423685705979170628689948912183346289182285535236704007008455093716745377213183538651610217110868990909544282724931367709603425333788844649364340925431535625536684315145401488369130902697054285417230994063156027039041762671431529973698068540560644122240395979735692788823192307276211499731324090464740578249040676103279719647507669363661049217630638678856583407421089631793299147056060635106385453920802907769883546569158790569382568762491250265625183627165925963708054930248690891945215988761076187940831637422673016163211113651664458524748978666485427241655969201339888513060011145614239749708693738465135181353299465638765850278578967901903674894845358256259072766248554396576059872117317374142138312119899307098917462244887916761395271030388322381713031544131798712126644850210177703948831735088418561460050302208350726850285993423888760707994792032159822376880178149781721644718050913452020313817284354713889662025071592852053265404853963873874835200952288318823367932304898332521634875972835280623970413195368059069362847533092163707089597233962528855270997239996713186952583503053794231504585041816554360588941805553531422291773681736501995849689055280816417958187056940812573096520591104135641052951071498347688732200840594888830259936172671215140816557175663530917902462616278522749861858532177890615690406200408994933763513334582652011838022625734398809364308579504946212600201162187122012888087780086604637639348551368174919820431087219160981312299481054493661163789025423720664699404102669104682619259982439367086728731442477520950186388541236866207847663603608272627788169741918221950080936539118393237049807253470776779761159806492557921398778395727020848751548394980362405703958469245512568886372918518409812314612416785362879164639416505367265527468961691712347162053459949297216665787173391612911997208039664944903900030454047002224197504214389463459944855687131704856443097448663086082771230217151138691634899708123468980962656354896164303849058187216605695048900160234163670192207787565462105091040395250826246975835434363738581251072429835464746585981689029631224026574083474111555365295843663985474389088606500150066478984582647210517996992352346476193315415013872558319647220929568714897845622434078839883089253565214536193572099699077430776771391937736902444098225496239988653366967937579502287679374032770786399122566852653870739569520793818363095961159025080239383592090668141875773687415651018288961340138845548916025463706793680808026664222777971670485185049854419450868796237216891849762456385287635274747401488089079849743826750941272637025968174672583770691739776134212638828954303504453521308624665675382699511439353963809231699993072605191467818445236154027107146885881495096338414510132546357752986210021509991722566298136736475955591499433282188963173247596734729261187755265822070897815837155996921279549586337739741540538192299117468430028070192917385672146548157837471527199777655019394321971414629558873504061360007812791332520306272122756375985720566655983364160921104773341884427712057192388603068528568510320597249274679701487735883885807984291397976709734927487182220363405712840840602990775926589110021636890821533963705084535132995223958770980610099185652080285993259100010620078045793478039021687702783080134692451518091444883543755041731722362938668801307680644626393625089322684212642127230039562042884750820442123013721960139297449277085864245238804261401554968123756263723488610799738812835455373359396220707427438502562035001099228467869317836357513992380219999842909909151193267606525266478502348985457847025832377796638565927620235774393582796076133171382684220149608035075906595418887707055434666194636044817706221870950177051334894525695648815472038264542581087654030491013484703288579725041263530372424452539737990306302367020499090892737629374783084283801015362190448586521654194316954633876964013585608979806049492631956965721479451996508523863559611071831124632643801232518943517718691190995762148581265435485959985877050807027284781621841011100814268763823449623972193692569742914649030557580909046835614692040453284776231884729762272185797482042723363352242906801357355922593009239182519119328470779604077434568657573592168750698783794494596269453987870223106596523719657009646267757332752408407466334352604619977970465008694903824324345853827318967082840219900516450324341982789736713806853123818878929058880633436472347461291326055642766050039897539987024582189349478225436346493249001321530949350520886481520440739400708126135265001948663666403282635088718734014436122629798221370972721461030703786927188293895100930292480892832131980419517808444354295317414648919646917597032512408419644139519521435732535630208345044730049462757667570135497858256405709578220527665466980613682905125160569037004095613800772046685032037988205637657893890884300092051802679826645394489804621281961932708849374755528299814561157841871202836350155962251730726603586995157370956293402053040698156311819547976976098746929974781092133981562680441170102900015223069029794704535010965198107343846624411403564652597474552089480665754551630881626805796386975392300717674192674212415331056436305793259606248469445032965506021498179932094035205000992175666633587506970396205076361998544698479778514209069833753325702571024646590933657171220746121198395082479174243413724830117980345336902089386127794372710371216413218058186561788091908932959222637698199668012020174475914121959604087092081068084715112932672635981362852420709862911987916663130953976570317861005090714810511269364464825654713015582955084960563068899874530255849833926000631073987243322423360746849450863498218836700328781372587189167017735489420590813857665976580387751115841898094855479422540749240179501698128472984250181312193596079500900307213394519050561719024431832051403877095166623101872636042587205733066116886959212092373273436493111953251684616564337025921337313730583168193675501085574791359083077712121643796366890712405619827930653775983233053078110044124298583647777996463203433315113454294301094548926236612178209028522560707112377060241304781831161141225334226017038907083130846307903620302472888685012868047705148956159234062587363729184704630530754053364974485353292881547322302260749295056940436394118516820470362942872030093464972416359609383972123892721157246941553712412515429585434672971842564170407851917312154457298008361994379028117038763263305318772740773030351092112318723618085902256348037879494044094614372406344017418379027152851046509240834174155316710143654287104945369522114640781322779885828942614488316213434562467753515212833543068694612454467697596912317442438173262426669698445014650393122059067500532374896350030306898634460904306976380982289342993807111217044252610308805615475267901518193285632291875014340893351854189399874393988183310059252697520546883767621632487873705092302596334969258001260750220862952269299669267999739552752683029022882957975053131467795243232714878187860222396474476784424636480245758310559265000062057033470477381556541956780976009594209814504818555860760889362041762370041515645141106406990557691915694262392753365218841140061252128585199355678637264397378835308418124167228526211644197801596569141326209314104509087827891908741980772196344954494654695283057495675018742055287676161352527424914128416741158295107058243211543168646049210043892675864690452725218416582809910332006316243652371382940505196940798222179571131930555105427929771935876710510792477942563182592153377592913175966371709724154918696741157309396616984552366328991292758248376391649491048620677271474684655109548624518375946787272228868941348136091689461837423505960245702661418819178684431650052423584213413154275952256647166968355387940687613086070774643698412287910329356812393778276047081281148071382455264502568804314620413769693406882202571262704247184042466782833447314362181774016197359596336579502041238802489954839440644263109008370310576374806476115957631257873479608291248559161203841127899526436962275370289892145615432137022468153871937613721731213817107098159992103588175432674934357855939269267919509376144326558751297582255933674883755896556275470258435713966815318992791221084976340428195037519841861162127923672501750058716314075122216285570057306009327557829368792037908612442899574396908754467831643497319755027443791593209210477216663373897441112984199735082405926741631540795379967958575725290081099934315596255070355599955311774428842185508234019510303900885613348949472954823657281489140016871847897930553299185023305718311744209443626374804247016733142428814401888827588779614233861206670646839336915351144774953921171883766545633268439199110073748938973820418684016072904562838193025958094668808887331093703260804668629012162925477466615903716818656256963380402279995079585919241588508584220874837875946559155227647377293270310413754925863167382952172407986980915195593580401895227299071001046333970255404112283681907984184523876648396471540261983259022724972458313318486891239863847886864505438132645459988817190054071313553152968359481944047717432549756343073899633077309004347114121915911377865906722677466892365653589698162671860144152100910615053978570657539490168367083944633987478521758829733562364384216567257469356277909911937565953810177385150050273956816343354035735597395204449160015991420785091005373770529115219450854912018809570865129081756783241369180959145393550407227325183292819860914385619509482309336146598051356945102327786213669692341167937102952970109855782968356908547411183676239207585288671960028654267854758124142181829498406931093716924861457416707588416462528881136077341812133030862082404418170353072948300675788884185857326792475077744211024591333050709304270973487714314647657644465675580589701497386004643927752259729270526410712966786818383294752715738326541522786972525407362690708128541920871356711709796014953528907077935335925591419756879916817061860034679653134287611458154280865612074762379440431291543029699887449754644106697321820435679785986477821864563685036387672205411755004012907607773685980451539243431210241824213043508043759264141001790631851844877346285774017624161576791082438619857533873603832855172052422634726070785616351524093482446542610504596922503382635371300688592023672604581528963937052327420120498610037838617333649741638478413788593515703711246672951740666006888946816705911020068396472000736655143510498968232227221616195796985451090792807060111145619034030537629414151186489124313201956699228510167937999757175795300468052867811766740185229456490924655393953800833060958492865246124995140536009258858213121310237229896515218023840546851245562221083510827173663915106106810412281203019291608004634773219830565246748816328042923709075884410161124186481523247039112958676353990014330266358641776353760346553247911272376703781050710835401573073634419690798516255815656067727324451596819309142262394650775766744341555990326742666596936056624762430345513351936148140965193574119641024673107974831894836587445498213103301439625667926200104418344818108582697140480036718638975496762126996704924597823660371985889618409762784078055017882145852239528343883732471307903194756874155684095264112218367719762502463409657467852158437070263230938998404494033803142100203865040042263237545788912311892460145179948063180698966239617810204689692836444448449623468519331819371516036284299231889989199183400489932814797418879084713227702858342882709425257370338251864286889166171957313857275305661510820451087505569052357110440577856719331579783199998692172262881326051920098893081904118770992749347886756674266445784192322879823444649127953836751644415232760984702618211846981394061706416737758652457851021102587937226784995354115645977000862344766415001601738140431353183063771729583965536108201065297295641113630796973026135358996251940486447470750051366961417595457623608293737318372817169241334138319460217088933658857281504261649494300005687285518089995228984089874064039164431764693128357913618813542101307665476693239283966211171047440797551849932300937218917004441844561679163293397390781744076750825536421966597930560691998443086163838080759380428834993794538254884872933481650535590880730788677321645311925618979756086176973024454890924234573678292008334468905597271798481202132894766761171361791195202510170555186026580179453639052133980992266188855822707840130422787228252020258464184162480512388412490958407099470469368484146725368963674874650347741786892808037008642077344761938908284005831221452646617638160354589063480613461452472953367628403843932909819269916295038429559009249148001576705718911965989549548397382310020631495864690392305393635291344607067238730041226411183096849948830758770873099518627002808287860448252240150390328451143995919233441497106303989692499110645363524916185989461410501631046964992555007183672479785763382337721689416782255257048123878811171202357999486282530450087646909359934677638233480469130558638319312975160186117834330213364320831692643709759882000604619900083106567821716059256197227921389085262979345582644442926949819305524313232525161944170009521981000978011124262573496188556721339653581761981496679448480863890099681269520264193243859046386951869827861566995437599852769698886346935087784942185928804857485551336634133500498329599860558568072182283132553226800544158930106491809841987788976433954850152977019481590910633756333651197077266520969869387756246442570846093860337879319622275864363150094866825777642272247194723943484114658845839958527653715550622994635579455021232761323455177097815212963551657854420139361840588723710161277719529773505384262810729451283680180052035824601161015247539199412722220508945124424210968441722541731232254785580339720873034207379131070599093639932866165381023789915155265503647059576292077057327465916595080775038865671212311332198550874090846673082803508028263052516346480022093078672399973893392355514196152032155753401728593961947539140292173666766636737205558152249350663939623763790560959238819263257322231687338852852853525930476762569988753276297737227754199861970850878584050619615766411839019609791214013098106824287995849517553088319545834932635805037490235245194576193962941124451142679760241042404022433000447997420835158917701880826529615965310201084455362151399069442406795939495204583440891416755931355229832455992519736121832684694225289038901159179689347255156479625975370193064358232579748735062779744832183866526202384357912957317344138431789641211426406299660193724755148674207145206140241865537692521245184496846615666040647088474747673847788878411988515317980526496374357975383280952294515320455967345066268375861701164563595884289126169698114310019203282118385705755685798886358065368413112146464161910534819996271928368736862453736363365874150287001723594398241171389524726099587851308000845578618437946257642335813449121947945406124875216502301565280241512005649072802126674175338918854113940834006980277604836619401620121812679836637108873663048234329975965989656883917718846588134112040630620126017035697627205173620639418811630594802679053443745711656010167450662233688502341823095629917814736020676516177822062479291965161812899475499011689232661355841386756074781782301708278057903715417432282087269687397544299950537128625219750882667197498050081720323184719643429878191868437393512973458432700574594261635787639289484595712913210921576624040999260159263456438433609357063348203612114159218244766140297052714886821892029607472536947529158415211754253789117318726124240359927042336415010826822668327885636767034922099452784449926425515402838210951448741061071743073877770383179214499695495229690650338430382608559089175025541997290129548660429209107084325273799669988446628627226951407834865137259960729881555254311492794895257422031888976346465547738243089054877657996317650217052499254859147772266752463092819408701936819719590312336285646278925189391162348079722067333191767286245261392044107607527017312913989760601610273977266578421431783822725896929637290836582722160737600738849217220770156860587549025500356183055682971527087503944726910470808822136091240513350762033414645394382744742490246022114517149199466810340449609328815302565566377449159449246913804579400989819702149137471174038546994222181518117772839251590089743398920992784450470840603947153293912887591284664034841644910306143168260232334673785443215841458147586754333652285002907235086996171495091170236149197188426854921113657087834275759323625657681003577551194602867834361891856318645727821408994912198934958801460955876912740486030548124418830441918154588571180958142299191130797092505503239537633658027355891682350799250703988266239464584549614257812629248728750672833138647282756289234387964979026398301057543382733852299441627327116652553428682898057177534200659464232818521184462783497969236978603748961491752252054403680715670103855939113657233287006779391602910483669701537993510273165698186134466521074571221191752991951071749234287685187920109945663708751884525002468120282096594281880209668304250178748911674186765433250081538876567560700874572924802781016517536123786664072758177987264382501241547264908796118057652200455180127746429985446174905486232967743756374633300317182829702911721713437181314440956308467240898577350303895294983613836990260363339146829863211477487766226040790273672507450530471698511541419249349862391121065009841164127781280290012325409637212330963524944514427751683259327473001433871707919810968045895105917074480023783161254408059863792467228465107701062810447016831240922404903529780663154567753556442664812995061257321742209434372750762488180144671989969201149647151988217605903147953278463901043353870548883552424728775517415169446090136777504689734782911152578637548721701782140085513698245670312825753190914810744347617369902027781328168734224348487774901551603704613085763645912696588891295109779249400328780297914465631755272629152079940100577684004399306284759652414632326360940530216253225950977691361883462584721208564726644126820217073060913863446364473350601328203195445974398606200796576459481276343509800870782553442985902451599267280697581678919915192920718307696226418265923520112742605552348670102737323720512433682435396930175189612950046179076003958632391223744873238949966214356914853076289890855355827262763666196570383594361826815708926927353418844993226315580426746427922424568065800418853226824688526175762027874134183615654460016576085173041920040420864301164289140518376758359234421749380782563555614470876564015192424599740498151828275764406209625367456890387517761701273239446291778529322793231701807700346123515925134380486592718936972686132220789661829533088434162653990817720238942372474240749352183883642708823525389000100217801977618588871551251063215575588218647290128958702851691624011710791889599991958209503169919043756270511062808648628517870290281514782294878538704901595080923761432433176925050791529797062526724855636862155504148329234825479720795355881459041754068174195511940424175989501500601784218108590574043024715721230804274292144398225090759597140965863325315357764890558137865806081304785913715928946925185691044472856739529379754549273366421201107826583313718356654936603604495458469132268338751780051854324697436512928958290049453844035457830353930204889227216544304098806414636643665888978344287527054336072522934756463928247672791625164006966782233936261486122611569767049933925890834404276869267339114541632157122096788654964534716168274273937232697468790493284852166530613957514997317973572857181457685262809304012674474196031276361068986343447547374951978992773287717225101123827252470135754572616264735447694432977388199679697562432118065804728490786362864872806105115042905693749758094419650716231174963599427673442659106097808824329987907490443334185963650954527810682751461749633104648936443730621690557363235016653934952075388651818554085379148423024987448709420608466045892234642883590675683294049761091577814621700255337742866922314980138316938886897433411031110719761725735661273060449594323353272417840882409767119741078420279738743429051852955313165214221219982709790542362387976464253586355458544306715517862130867118414543130979258118832888623657815134540103272873081897380699184674551734479428450788754914294220973792765145076519855313823408190284739668438602749801061178172334112577939345714355216073062614249316981875016681266430276186426051557303495043595645380959110699275131060137692730322924769499154161765130990783543422101697927383637664285666280800226832779241584342290324699325675995547895165932666927027258903923849373682934519670583849865727577931899143732487886298582020372309745041612851843573180444555165884975782126100087882502930710158176023160486999414729195296794651410512061872384049634621073535714096728347284571988176000611619066371597830486056674508595035745252450899126843803227365426274450148770742355570413979979252655990669998596265602616359199969090417312456866518375450847363592511976990918117676545046998096247839307006199686716517243633986159019532366209188851589777369575726204379904088939335939519116026007689180235320297221565130445401583910208468430917509753189951601847369889616401888066826438324679854296058264721734423702116221879518318899397559660094953179208130259845233571882106449518801899359485627036740318347310849864991662917518959011330024246648189871365100011214467432442000972042458129260764234417866170235131053070844749374305260955630452679322537125125746352274170717859562174299438931506123164215388399045369673731723621132823863294223520013069747250194105846089486063404674744626904638468574239639256441040230758749595247088521094420512463854078957572141502440684559481806685936258984096112682553553480027656715037807945894889517132718666207414165648311533686410657228057374303081624934109168233411976760132908278602756621282253740006224529713110442787357567695414456006219973803016936229518544898792946028773564843461494016557342372847077888769923044490804270332858187680382182377968872868629281721897121044161049432456721758881737942779700197386342100751137612728352353345110446624590420156714853833128477985801267705267990836579441612201546349684149949957667250119849443793326543862494393705727193748345131788644371279804782131550311826740422699325033687716949823447840903410321082892063963385464405122735291748598628113540063680502246383160482277433569977962473789105655486027169441995797816305482720394309303820952129997565869240278686597899130057470719265690000006217898979757862459098254558302345812002409032200089485535282316114490198733130072176975412646043831673129281632450970348320063060327261987910020196583142504748024375885348336598627838985249348822263673150418421270045669366726381475837405016411268517115704666438938522440941629546787984637443328999703850083928476827964819220027529043299604625659923321259775573243799802947651845028225863628942580220681228732194568323002697638401087552357424240136902577715306935392689854601337907975802303731417574105557716357301647503756553409395662163240654246690684813752303517661118624195370615134736910922683623429391247937352361256770444505107116131613192002611062666731601819566767183467711757575591485860770025278160339509387166378687328902395093960221331465845853462795188651154481176875623780497415881441948947745958614420881867196490379598439207732968501596131215454771935630616186245426921772095320938890703977386091655049083904288998606936468790167268093890223076755070688586457681518037321975300432454352118199591670592541069916966971540081000955048650715532770372523786830954204728789649724277649105562040692753275507428170100646040380570749730088515445511101028281974583425577198980828223402609169419883953585814237953339362105721130139823472233797978143792514350492870974971583043247471123211194770628394127371445939770815416294726819597925930524493540577344653365360320859231332035651016772324262834724252894003285383813114691045231969416303321206174285135786165091948719138168101320600136708169915415799689536415485454955936324778618002647231174943617087471396178873443876298559804873436607901629176666622773509107670411967255863626699621130267159314729760892396232068651247690127466455393528629634882128865869426643169294659198470643033267169702008026285319516964153402682134508038891628795872038064752997386907578251384812539806689666111187534726299203106489954199383648469795132160061962829348819078210571560797315630696743528750620581968725756089704162779023205211006357373532808782426816915387010623202298126306171460311503580858831360930641293434718212849186936837047127402864413508592280633946906366565422635966281024874308366698684497226071098895438029215702229013273260341693921671240804238910034262422426908096581460033677567445438898854783766832283520307987017004267588747064127293825905020191824920323904340164141973178974229439838847121912935425620376024023772181270018031430946177306249858934280411949347228804820255023274181288116180094907619560644888300222824857280611248679511831975191089801010593657943778223528169513773733030033929155603822946536025624755087001843052834323992096232440533093417250146396948366224361109641710306611625028532121712059594500752244274010349099468822634106312141467123737681031928457760065528746506479603948756255456635948826792027857321660038687131478036070170484842911874509298601855689632737126888802998433986674106650557126949096773139447073725987080920061727847297118989234153091764414045804696543862217827032989437128901613375695895790878714371488401533786764076891271371427163619348802976557288761019392661264217698142983751997335254246302392538614361801685359516128320792786629222660767919785920708952870280510640339073905704211021057717431673076193718467208520636485805999876481252234830807136519109019202436831403560238117631679013980478939278383749205666511759245451410152276857143263398457097996855561910282776128378449658706427283346048182169534465807370510492485159493771382500660200924778950635895603287124228454522629726792400270978408134689782999196555662522927789761128322616919381248333791735322763813051753565898565997992624078596068070878137541317114325833572614780349373555364446783958093280466028782303161620318712004026581752086563255072321020169064964055894839062111220737462727244784181844355604553471733894409780593090541949652041073511093692170130731226706526976646906019848873849290664388697422533024957178854071182540736621793225111571486057645179758154975899469826407149093066970898847736964936177245857887674902202115945419303950244329441073919974047095653892233016639872260104838758207608944711576758764580852485311220005707380651644661268860939297104771904969186276383325263211929988909396248233547653983805912006406364793981834919357734070757478332836788838710729639160285899588536577397018280475359837057317277359712651822631411807282274325917521518404658877939346250497006144984834802529434550891567510870829533161658102958680559850822616449922109796745845777148823230839701208747825051412978215429018703291006180830101568619939925359710169920266407984884884487716061883273984504294805519046104658179965398983323160781110773338845424959200126325124772758195238762237339778513640827982969875766367602892417999949799600969639467007124476000915050858953402723139576839588223745077828281035559234827111207161849576958957984788510370140527165377623564319293292489060726447516313054687508190418517262353950211535565996894463966465031961090615005986750186040310060407653452115392123998994835690172680036855825015449646252324594629437771880292138310650696037122982243974323255403437092002085280377514489438705272628056043823312997429691486688803649182502503351438094929515181088059071447958284859499216229386325792337903024252461033006009200346970298398999374273390833151935703380374438628762997204574251337933430247753047607545128434721194033444075075654639664717137374882591081899598397174180423045792405533778894316694331447489527500756649802997169326568277304690987824577801818841945103213860135136648843124868930215977127522587370467974951911940835221163427549692330754896318629830099546740948629949020465940122943413692492028238006256775916709388765238491693384988571901568571835946869022159377298262735436455473401677319698813164902474257556428678891732902092038651839168388205912343699979811860076877343940109193887894092530238733126320621779919576242703678315019286068267729222302192819456673671469616540928709958856953185203302250691392633631549210779787464207375862998920210024962639979106135054604103538605263458118968682565759011229727238589469769976971179252973535033394533900428319423877385162957369935374711793731017349709825209592662977687623293383544897400098886426859459387019936061167126673623531129881413122058950655502919886581689515849162835669925467484691303924625591779832681602727312395728358055097771742389928043879790060901353871798313397431942927590377152965305715157129198197760712477772467028584762099355072896043119124859996125358212089825845188638096693313628651603381025939401520048052223932121124573482805380341918049224923326051817376621926983750482441613197905990741221182705370050813624267809019294266314417778463992611760332637162225393599699130781445424471871550257859415505208243912958371013978268539097690475559929887436062571438345531136821933907900131701255557966567973873371856274672038474135358448970060336554581905740933879245847950458047895099077666631457689521791743752322239024733126870908235675684091077393923845816434767012185695619546588050737051500743955930100475115659777591234981428069825178359118648358263354322276674768643822530616539510741073979847526534350926034653338971561072414865680200599091082020675548185701530126627683298768841771341287688059625000493523072618820005735219531349640381717240669629732153429750627011113799534273994543770182500225439263301125597388305212593877948368265127153420268310239551225196071951327617976157244535499160834001944878207226915804072649973200470374488740443112592673569163572690653532671400484901034669273609182151154355293988323260695932340962886138599018370333517283258838627472266374790030554449475662931590358654903501794985095586229566025327470591599230471472307950524404044747282828155253997367120256988769829801866518678125723186529305421988445933824542807571047878505224547110550483712280190024050577351876973733284488465904567154387542526354128402979616845526241527403799273165981153998270948874557459782547769467048036068138888823001257062732074568793213713834117873961538467870407611053210421198147033293321298201127967861698338588379078463485532046236411483330891063546648780001105255361147200090031420463393680357621247114658170219956572212197936773495573642362204459541111477011981467190815152237634925741466365736561834680862084772125435035146026019928736731510380784335788652778315156596345607950763190751486577727830761818412504655700625623713901628193410288551177456604787872438691641307442265325577483967102696460557249336379842294934736169015153206738918128858777191799432957101405040118218165243816807641188273958320214171890218637431320154573396101014108283586141111085022950228710606189652847283812794169743670028920051110311352284572654113189358006216264713516887260410352411104225986695685847901017754658954180979784496375740741316944292410614048986286796848032046397089629592891578235989996113616146018528707370220080793432743480228452852463044605882029818694456435581701980355170631342030634200505362287188544041771498622834850246688460964128786118058991431150313915902466833171578843001415522593535595275964614029364330326645101312296543402351796522436089822428074147678815991957031401973841828374896924325558758183297460325181471398896175950066604362722149880581891808474712123147223000466871196984070507504316083468338511043388778991958289152282603120336374460765253304968071983015530995628413861252889273681291698073925742911099198794929901530864355459930473667063700621053618505175886280062434967358778049958054763694756762050547327702493696865145557700965349687530475355716916379411114487455906264212072792029369137035934105419217703534747806349802464211261266680738157387639567461976493484224535464640886180020369634056255144206218997594091412125844712055893458844493111101791025727371114990585119191169546479305918448598273595005741831884517748735915424458358932159183911628800280407865678335966765302441341436971423744772972259829028443457350376560961083689753817441618619562780812072498059589295709937349763755966190474426346849848262619125474383658127797836501061340817770428898975006251928514262354810092987879397373682993543685388162815270482077382322747346591166302664110556922993416905845826734708271509717207431639308988076726745110462618415727670108729547225094526747461314268515880582133747273346072059312085865032738506437358137284809535322117708246033316577283811581278152959289753950644933292183401099208960914178361537083289986263522130277213404689333891817240207191562536230897659975941979242092002399303339101678229312805915260354831310403773462003137683452738665888505721132560468943373502466853145752329007620003281282588734553489907171258318898229107305416538979210657658475592839137311592312091807631772807693349060290479318448733003510319697549590717721957918481350580910589658993094853010007341818547303288710652442510707085323753562387350952772333475876920995425017644951964890369908800431763496387634930586063036893053924528911152648160494108959813016734992902490687080652421165872242928615054572817228912825017243044907194589384410492142056109346707894164185562764885865675923114295350393360539528698316084180600889161267360956846768746884114216442256868134593571154710040275976139987437218368891607225075714604452018447897104287923681877221079785031219014387154003364342836890035252815127913930618224316598605075453319450356273595915801250031835219741607606065697397263337851616354790856305753698365138640411057743037801794430414658801491815820527748409121957293651020114304598428521744297582836416079167597253678259580868080501561185792198595599197576857606138562266665215612361939930774980239977855772789680155520948191215699152148491123472502794741039164276586576059290866238940594363080081452488862124919782528775207169373432775351563000753632757652933704156998318120566787919398357796626152587754573248958005147661585531335028948115772944941361544353344196645815255113672714518925543755031404132373852078425042059059612371739592633408525699917732225821590431002876317962710759315514420136229628714022596209682429399369534994833225525294275591116867053805677335592311118062302113092746646081886787132548177142175731086588433975859864060231606753585460540283449414116704294067371980617391882874491934541880102659508509573631544063685565218389979646926965757278502921847664719361288389548132216674078192359904442574232538911565902738941663227213849775134206716235461103175550419836279638974300541687883307423079293552465322854028817963891455640473208972038857219660278145207233673373833454348040475053666373771351764008591846956388244481153041004425478057559308106784207575165339304717734736300834879973948427699805352256865105651329406934550525251962422982480339168775438319126175778312273961538825080880454595885163120813199199332560739895930975429972827642522537795891835032796510263596604276079416722282046005549763316909785924874293221914326736137696817682414466674225855604586022148405185484114285065671221092447086636154897520559941296548312266246242740805923131930272146793683838506792687424780445413014116683975859345602165950550720715275381637366107886184529065075873919596472218881993805054137455943379054425782959205655304764387129363498504648844179930689924973968884928704168447634471609060960194732943367556982164628406527422697483014261227753571297818216049235295525787082429934586514992614178189250695711073328407768601370317319415466378896430260835838774610251048756871412578442246759388043153252999935314770370010938198125800338147622903926750573745146685010541985364624347108955562904175212409220953514851603444992117205370088119597501015335805216376817274643773406134498758000918941782859211438885967814834041105516190962075288414456907476282174980967111826132045440606067345912680601163664801225903185960985184322652032117541475810355202589016136194116694170993214347214603797430667700181879543091177027138588643777564103554338865269024043874811502679752702654578892828460582901529383758886809749210261015403655475991396385254185827633256953025780398527504250975911739744569148262768595357428153927314708422792464961944720287261723116363907755313145868778327363929397621792855275310179265620423026143422879823086335335277813833123628669231804326167784521948466077452562821892553632986219243473709511218845094302987515822834712528609657188454825897899312543772224601870596287327907804716137710682704490956085642337501059924780345619947264395700245089059056070539334795558760876152541259802352949315673238319744932282570282905501699918305466548999635669799835395359714577992743887598513624919449463117586201871983936027000823301252543528284184311943415189228737873158091160909751189292165066546360078299406756475111838429828908174223522640154252464216715013915497706060462040194804733919087803854828182383232995382190731697218171656745339647475745635574627578416630672915571879953125020871599035961136903185687818098802405105854646104786445008775071587501303256802236123743261305350903681438872262474224779207326341256183282439629606131765906371412946291377955773061357863674978641962412772731251359571703787722588465411501744882706978806368952586165579843684097018177880008726222401628654500105352813649432629737835975089418270867825802204870614356247835512784413428467100621089919568729915223869616030120150635668434937475867599525177953759403136420389447813726206575331954024568598848522631624582643159341793709635739858493179517480263490906620328418962628977943074165115368631967611836972045629957175776777910231509054290770366319950747358411277845709436862507998408904575866246394905699219588130275486746385678294941532775906626851932027977118549717001221302921092785558288511620929970631146156388501412415687797927142287053249736012922240651261434109861402826805225313769521870209967840998207070773819410306687786431206124600242652511329340964516266869865488033329220205506460129752506948529577918873334078757448130210899917380988581005250810350028961389302244769892101909987368557770129642328045448911700191891934493318798983326596909198314343412973739287433189530211126005867695110540435865290515780864342051839251535713547441831486557605613289076776821880201542501584332199618560593177520165882619595702813126812683209748015275668500516123280837348020672170782041040177892367144784317844519359542414895965047992089648491395068435126966194773406641290484131690271678016178868123533996015642818732059374476026255584882172602345686729834518863586358107527054682510371076858146287695461725011079870990532050848834341234740839712680057494154201662337201192864435097056827693311584936256025818601951439193762167494158575713506249343112103851664428848888616940352301250812528438629911222457182847995915377054923071857740208992378628367536572294323561662770187963240302399420562902611050200978934483083653273599668515678503342641476598071505024765440879058464413143048963132338163902374086161177003631603194319806936988856628863929049869954812982453230339888252308781963283585309717535033636584452477923995879204524748485162177037095877918481551906740681361883760082532856704124340724357981977325604208121974079668221310683496455185606945060664867129754793386497601224032943169452676191320713571790226933773678412113542032201451015100222051456698522193794304314838163811015474891545848696251936589967245330403831123793182853070213948377008183796821736075743173893387589955788467519619054894733817202428903799437433374763435713363787504921146299085676435055981344446525527085530302959806299344563912886337887540683456823315762523776646445716793636931853685907266107769878825206616853424458906880973067977741620423119487265286627817567059850278000626240315057791751153547719587771425587016473595393015190142104066963907915768615907175080087117346747414225758102773353422773497912658774121210968907676378713472231758865695069116932466115222706268814443002016397029900395087951485837413407911472972493665941801679020202537663541882698738966504483179911995180918301161734834639310281437971463256414692881029715566228909705316789057031434917798505021607025427361864740685610564685605181916258740093920589270654103109948805712539310535857010340496870191447236263674100980347987353884398650508820465373977177784008725329339133381091473067863037298096186766378718516458353081826049595997547372046412564848415865405769091669087848065235261889308979518105976458543505467653266230600444373454740115363163333854422785976186418927162495428689564756067037326936886890054366037600018010276959004589364687554733837977687887618313644804364155206933219753756230407881351528076278190131106529510219515135916297238014153692581599837247455655907002474211596229755609164468902514522147696528707642901568920608766413435100111722558839920408008689492423145762820856075248309729501192474730618088160801671431431625314533483049573620162222344515613293223613757074496951723252496808192414453423996857266046386003646735159570621577067584009298788593781191096057049053160146387577270869825135198857172064483655464281462014895933587103510600787576685851417414375497353636614205423974214263236764007081355451265194442780166127194885014988261586552387360242170756832728553442895271409590773283306014453291377066147059221717761866166761011165209110081148091778161351635953273826768554989813710168522505424748849473031593500748829736712722165089140047479418807123432815789117599602054870510348254488627201281972942816116958332499809028447273592274990065955203709706802024866113453617488102798977521927424977677968748799494344417375025366407059774165774909098583941202842141082111768500848972020308957796928811247477665777177833247052648775722644866248317195577403078224309205253699332880534254248946327933884752811031262435977024594052047036384718800289911356788426502725541534408326803281435166527343202577743889685886725833373527722772461744504385924704623202006255742381487460902988356097705560578799018010138902271019475858848977154279410408316026478342998237037654729603683684039021045831728542559818396507285084036720072304552597453595239375658939994470676874793043783935219205054663542710018248305243350337786401061693473874371005545129083445809159399553856456231831231653272834669657906827321634177126280435289157378485222472262326275869874865882926741183705716486634748905045820651788881744586912886622102955489207665309030528109543244458497655923628409769371566335426125462797267870467172340097318786138637844969571076373379550492892623184860085702282177852772155323942861181564510574182004071610832510722694669785546646524654082913162947040085396155161704256545285699822403065101346156540917850202242390624863251716190463553874404808470853218992337792238061863303910762473796051375322253673230651432712069396752310019530131759912350877515174364307503003489924455857482366818103835887695864739325090978240869989005990173479858971827479253390139677580163288120636287415135114351961968946392988045528214316706526337858146980994111535421702091685608075089139767471436485597291830970929976313249721831718433529662842683401414415642766699011980170311898264783946086374760227310146242788309043153049438196503582399313551752658556828645147582416840420904703208737700162698058592687934101758472725854753474728140054711828644614871076903327880860357360056305481228156189444414124802142115243185274433229013264146771345652934708950465605487368773128287564057761104188650065266448575606515372579622350218271476236783936942474824809691140316233618357400503615255284087026269785460223603634258061270850312774774905863699742002669816932373816138699356002575203550349764967736311072250691529597891994056212862764583924335908528314788439300511435459439505458401202528917697172738000628774344146067560658557140315332341619061620833601640508422317326068887332333242881550819813187917056376607601428716767314453413292036163342314614374566266213570465330032075359137747489880389779979570743921079548161901312444393843010027821930683126997920301414540588517805122451813854143839377207417638256173262397080353642118922416171697051619803843772829952404447373759848519346557740772878731070800630837257611844956416274152898202551311585175504407965682177996616627516197448747366388503725721004675684830254927437469003988136907102431544233828664610841475298156576095649080738578671195476228955668305641019135103651762903667419494773789127369810335356292407622383215441485487773391798683245626825316444370075383996496583753684067582737612840639802292741623499042984576100634837125450562672296632116169653749219663091109737590190392273183966900222098871323076863651595920525804360981274799624302997308563813054575923257790620090965262307256973652552065197067245810012550841048882501956616790003025190777709660505720681782269248550055949102145449250535512647602048318821129052673666619411654656883906656497239540847720931924227238060627440771351717810513498778683251248252851468012617311399920382624427501077411569165177549357707330866498833299536898050717093213712616722604564557266235903158601040087423899699405636388381450635754387517532978199754697788111596106847722101535578515201963653333215350500978501833143148892109528482419230380300788295490272451448793622727840892935776762152263380730836098556695327180896034040895409303800242797487700601106528874015107684113519522322149261032052277166463854303945107721723192856903194272122489261059437170275911580652727523846911090843679924350693799425712763406064576377807885125049593959793098019194644935501999210582912028613187390556492453777049209145500698805582896386720733313644340307092649212546167921727288910580752082045727774374033824558625806881567025166821939766402678463538546739522063422034630193522781353519578624116678095530861641968891743499006792092707235777052829162402398111317584284616175375317023369423662459258294223757374635472842847879634318306622156985625784190633497590298217749136032928238667932700843076495153795656125778256089066822509934449632691981348772531939355513448505426910991957584199568321235483730935566272301659118196959609854433184467899750205157864551329174627610057608146046080540986697592307344716336157562363843040189995599403676660769601513229925665130224868970982281950963691012590726991783568554815786088507190196333754462235570917960847775707871406347717174653035243697713561626535638168146546818507158775272614038423976647730443878066156254943227091071979597427155715853125057345700408832674142456538881869654290832362522532064119049590102413892404379064315547162477510185218626338399845057897453947730156990448127774845159055130007317819182819087989469436894681984448557149834174638403455832579227897211610059537233947535292480233260604852515510655279700453729687523235776503447609877866787967785021493941819118824008878756624778550597396418674110737173767448436791929029620513492781854782299212214416888032114058887850595661218475381352944458069173751624256034477455369562484132176154960999517034767167236263149381358374508412645732546075246667695987900477242726921698274037764753727280846465828601207509448009060898294967167418450940431932244498534841811022796844551828579023871030202967682897441383637366737032986778615563238708789393653464396398849859340720118295856434845329635036390203571815481941253474649059561593528101823476385800905850420307958963860870978546911297401009363402716072548981350805009861462138477658563554848182970711518229312836967112532073748499436819081391388573926201805016636047359018545046962506822379716810132399631537182240300339350042239431218859507058633117168793690954681721831312338838232160422233616007495132436197209534158002500850312556792727469090892639610217195954683990666866396496277718449611929884916899202703575401737964829375509144773146065262460628289283727682083078833132749440916167046952447030694033820679222555668204465953487283165249177379292306120877784758344476783675298968442360370684432312647206513946050438112914258527161546937497387255615907666017603655391457510571295280144061974452223146917645674034984652227297887401005398221875968220728638214735428501092493787899167622285806225998564992954401571656819746921950049387858973284873466450461195793005188791826553696174962896698413728062453159136505359081115392192149093187659521626469050778094570535960664252774100153145110442586649574627856444919014591487951793689804438127364804448334493475992589437414592981888555632584038600157143313785624925477811449875923816100877154075201850795332652547368524882236215309884458670893603112167392740189440314395923009347451587629822357670434449280734624160341267230668777280893202263015985774058161407976066386950540037654378586183886356681764195885557048687189464505415857167325014912589096993858906705251772744046271809353832397626728443266637211209079804851431559031016167267342691360411168680679702633033796588566071484807524711598883525651185081812218270475460555736507523830557454888640652700430896193162777205830196995556219677905527462824838506586858176323609427251828204112184610215204777786649082475375223572087275066697312047850242915115601563376781438384487874656105159002584726528029772275011530127750599791696581644751252590849629365909629867687118511221049211622167933301046582970557625910892960184162113959199100509415975807440064565818847086190112149840234473041252018836181166393254341905022642954985503381743116282146325407045218760293932712515014091478127652303956335675209401769924405933427107950776011335925414323354297114513652423664548911129088209897595670232265648936595942378545675913556529367675790364370391909458908456550336121250990294482456094160657582045715332711630533727986724615811234315091775844615573852706927968576102319351128238611885309720672357636293370888893475884835961123835840139225212000641555012680381079190120012582370962876434922856500189484390840198374049858962823303142732666712255079681826415566095820248347249321414249416351064079027948442950768943143036721489694640677147929918086081502169202131749152112999690793688929107782143298851795616225833979919638663041051243003660604586207960026200678122059292676163119285347189154287990210312212333625541362533493168108463317816321478798788321231772485215527589000550205920817353521359428439706851779864922325915055134475578176779136828214994229129062033126711305074509478772247405249596618323815775033005439808463598868571437118296461733119592798544434553719164462954655074861219391203641307963568131096406676089862679366219126201524359730449796794494463448279821971683063002893866614757335438166341551373713935948551709709249790478255928667740835137527168332518166089207388338465856343316004967255869116866389563116300941343326270198477922823791884272143258981287742986513635503063665736059230667498403452105448577938467855933910518491509979470675806538911317411280677253788769328367710243568696549525512791432994254578528571241945608320769545007394856131561213353496507629046507410276027498389367405101358073089962661139004727269628905027073412929454226033413166793058086907021391159481570345021003022565697637595056528328308023781700471589193047344985239283189960731927400937319720752619250176813760997479197498384959180550725093231946238286741178430622967818844199585079568606171631853752617527852365447932427521457011488467145216892936989714409886069115130230092801810494484559670886526346224275192006672943052997773211081340793461575032217144183702193718926933517537901331512305783514487071023720324219800788036924013952694976101721613849243792792395846948674744920099925927696763360397587028397862760992323070407490574020118921509463821132038512111759785765593962386513661278237776516024335313615572790546393357977435795816677129279502763007927288496721694001779002061263052139091833638560850029498411413975479046782040256252879840382800371593916570570301213714660114905499175124587051401469203979475208345232445823969445911671705908772686643222072325756325648875036691501892446015690265353938965099545527441435469133357961158680908927821575679271926517127366157466599159693027285323300516234547204850484954276206250366678912971343501435410773727966554214967711118877485816861862719848219070864020106215157759933854016989437575890231494652325154872224883636957487737863348192233574374291808017873424729041264944916439390019096522896453040169488041011774090676492469257074482522678036591962039315400768262765164397651840578762422446905143896362020843433973742068696942574280814377033141783900953714205621537449298845795062886991386201399282299674192698589287543149231213394403885597516970629255769316629800704947271400470330086340726621491789199671076735956993454110388261764570722369603651590052193961190932480342987459431903622821433706437524164435580942095194192735666500923646076531002063787915513461997496603071690644253294553502045455204093631928431601358624362833840230066700409018222579920253157087397063651110207352837858749092879494748453630187737343825522885981722241035136277957983090479632917280835316874641942058204186083621904980504788623651187080078115953960093866817945438653960846133867232919584717230908163335691549083845386033027220613469033187039787592024349336096955710254886674616434867496871629149950638153871714220980918642988524488454685834636881809771233019812351952649837193558015769612386523500868209041516876355114485769623899366276990644953284488382322987157971820957900504661416124059512932793733867067218409341239186773852376265002510547509258042556727431380497635671563403675063515681686593217073073442708680919308855209856653513496446033900344306434225499816470555566223759674902388457148975412393751907662436198943675631946593359903062957391885616206823480813839878287645880644098433431078944627192737214138921840913413203528594191483092869326858204986442877093690898382695885442812854940094628446242252199611588706521639676149057475930568930938012602943121616318034321060319172686731977460346440525375672293123401433645855298496345721684884726367338334776953998932227182125943883259511807853816859789154245432868044427552151896135384030062134978183519566557087335860771794132030421462515095361528801742006055064743345342466929670067350701674330735795754286050474080646926936418615793345960054362736553824576925597824693046159545313331345540534104064990389836039597574052999807712269407580930707906171157801309525367122454316001516831678546628870802492645779638405764072318709069064548907467469503333932779055709625681076211307420728661231482431799335697955273595005152078913234141225414371264859532943825125481717580130520813154992038494763912018586783864725743048950472035488860764254689409740074165169932351577955803232921913152272355890372489558721708829169664081920202538820797222535904991779926007563363811012350905134410404663161353061906808913621182133299849016454119102921526848383485510891120080225644142191882564636791140046378521240278251562712637467103142926847876025595512434708277791589628346057197068779329304163227036620054081967907188997506851883640477461421600770147924730239870701298701275459530508184471884682849117043835762301548939582153241483722394437184037744358422558146412934655154616592713112961499985229762561667971929880510752117743365963150934479989229323208632963206508578946738128946972462562985133706127685342863157098618414766524325380615048389600686513381743313586479399692095376836943491743244951328739437589024007848818018815010750869757552851532250884311630662351406577742054773346456100175169608885396247687508332414003767726245204810571414371181532724143976289884741361284040981359349590966861410262302294753929144559015977455750781384165022835580212675951368832947133507600007634003769125120339230502412795799414364983583849807171206760468382213757281852946572801804255702253370871139279166882205231665820757442332758893599363532364747352618337877157725249229711463172862192846236621269318016567895981296679058967369700863112228679455811967183289841419287436087398748712099923396337525421037519911164112424462058144332166803837168040306089765135304752260359058629685153510944314581719725543757527058299163988961749357112218080815044688851853880193263405613171800809094066864662641595022761626724178017892273296515985530410424653451902909030594849442482859579082861167476832296319815163631383449242834001868066679881913018807374934069570527101769299764579867917598501809756871288396294553361460502233733699036197360120546647730133201178674083260391983336109556593605938844126612574403983437773973725362536049069979327835376246718676462476869578347413855714709196660707603851118231837513589047124349891953054047129400499544127298848825440383359180988050218354639447333377326963056861089860571809244137043685455920873682794615735715895710439855069907606380700668346569351370033028323901842974594599663693551305229462576344556028680088281893149609755304205104307018961560271647493679789466182300146284208934697423947148929272258815511892006743673464139601938057132806502054768153264480760847989398084387717716089214427723664751366132916436677421977135086298762757373682543962466749728487840638884020639150941732374692221415850937563745376439195514997626674984230404990970059748700348371469879873444396240619298432880775325537624511504906136550478560101099669707358208501334599743348105960090559892607059009556708266415553655035043057875732148738332402778304756788655834738173999291841311776965987165066209181531301998431057433664138299341487350604485360089582044881961858863800351073186895545276587313599748079861309341681934303205795113733350898209105452926479346214126332982886876464038620261512866639615389038598049670561388071000568835383829294251003306437771373690487992193008806559387383797710142498234434233016167270067411572771419143926977507749869515414612944118364375608499419302665228673350473351714636152289460498506645544297463173874688586444294113052553799310057840297533334762739033034476549586693802535855033998276722646769958051292234895898050122375745091744766342297145595008581132707911261238749559749703808047028873806123475088792305849905599924427754900066476140470315456610545097001073143158536956027703553245464182286368077281184117564879923158191328088385185774457586998463437826608651176064939024508901726844315428674930403364154055179518949648748899231540138079721895721504342642198762445786471411085370222798697008641082422233495909834141890212659367884257537265991166268598919408595173993757601300939019735226925861049025224926414302333708029027650181949694571008028287364353082712289071331570833870042261595116489250455230302949272146031859358239198512089018249965808023987335744896042671550991423366191532301841684815472213547999666496912901110970950793600741930965780004499599880699838255571581712998770671392001858716746798387059189539113071865275134383775495184942374817755017435791011698485345802521559597919568518188062793877819846886374834731529893328134494334616900330210134573322964580287738138384698148919036769737142217758043417993770829496372993780465185559913307308357605892349778445342253525906564730475149740895109775115498424752059347939635856458485862565558735927026680055969023868040084188454914103679593958307643560064027040158250027987333599724335830997624696016428041934592135396397516130471945176416673931874714200988388208731113548290566976272138130678856233038039151436387297818003322961231204353513438316342699464956596211318641911953979935137781302430106516021973912113953247072696424019091150922312298026975235030812933138036525365125751430404898297955304250535227191676249629512249347216902215988008855309265481734232408142880336083053918609511416760964779191268672010005285013950903483148959908593780574475130577850836048785253844865272869151639405652520762887969521628326870368611541288513859872989798836611533741640784880859307837532227290031981721849719014507740257057728438234760925589472939562338605382472078702660589548387577669744482620416171551890776480423828689942674195082832323518766780271514670011364143572908459632009283013277406453521609685646981217571963321284417615263518114777375790416358000762921585149872720962359734805960902746632215531978635523332972939769587575225161813138286550907781825116007616934294601869477655784633149068255055589489767640533251141922385272342652820020716570151792004471945021406775684096234896119376446765059499602850477081146256608384790040114900071192287769414709377668468644571208857544970977523442454079764294611028847515449774360170761628796912459463824338984581176280776845632784941450281683983445370163399333135367393792970549466565193087647716319300991205838687071617007744827275277923245011815054190980530457592553819028506853713443219605422916172017751094609068684160103499676976949503672060419359698076476088472885796854797048819760223652294766202908515748944738979038833057702627751345263867890342288976602496676050162566831066021948460149214757641206603885068932319004087881329422299177770818167455428180324223645100275349974390493663024781241981400155353345731619322258658490284085472733667979583104332759243904485241606490905708968429502926226042254920286704196610303378260781952268636562318217694542931524318350505095756142530397268745250588655681033635168244633353883929834130639950008086479616081886572194162661829330618798002678833993260932657797446659843194317747960062365836404385785530529133637161559215720540841030819054305005857566369973946388704379909541910126359345719007158214206099785303029903653838602747574844260029944586919022730379818779042262580350793932587780592903291003840198785132896346748725429392066539270317760409877559978042035026018754430061974264407355621696828103932418288488460030914770058858540221466235787551131884574893546817917092946133644535541146993534152652029556886427882385410038191188781983180007069473175897480576545347477500946223842616048428398750805074552629787288961600447469578801215085863293953075417498502959995973587955093243597596135473210163285117959519690746781083901033246041000931464723032696783750258938082452050161278912675533306285074772082190005019519756014486591343766917962292857644421261385119263907777617655209271108479202871218507432263649522346674706204718182764295960630904907378121759146484055113022041649570697767260586420807741018159099179480111733795238937323818689491059024737187067266765793448690899851701429944360321277284788451958420155341395955109105011968655940090943373910797657701207574019349260649170581728583417760149340956669974750622287293213092107956686414836123108685042871723128484875272179924586859189521374275756728249965055509709587543751004419087464373719737017922437461201976859963148415307655852214006281230281006295009050789019119839256748670787773083592338234016474528768707115558995521886937113181877655285306723862939362047521193169037211347216333265430072577281571312299740726867304740203392039345464296351262475749435366966276451340052761113636488238187834451236053291256213756284540017012144904315092430163438264408633792976873621392975637546576107056780538170455170748695379708829889218571587671778200405861928403212409261725661004111455896422422621587604641901630137542746000389509394498180604614341951034744438726922831570631505707461277013127550329412867685293527957825005525355491008049649142693200556248075114104676811917010649012524914255341974837875473916330175505442584187793105903493991444059764812691721649377217240209224902441647017619910984883321839519143222462893427171861309557184121024532826662846057410219414849822854855642933845459369300779380506647035698171933162700090198213404123941737780547891909222063057084679002563674374463396786136833883621489637281096194927548907649112031190589941877751776320049769412398376420208212875860720243457949627465564159390291509668316997024084193915903388454130429980602560698104967313334751431274763774247743373800506647745868207072728906960015060513157240271573319319455047163309369250528224601018896487203169132459085809462536154096222485943299241562734580208773846527905365350558837908972260099301355699934971318679977595076254567130710966937671819077315824444855890459130022076032695556555425619665021924760010094103016890047889663430168952974435084735827338700344604456194793100903916369125320523701505367526146379498243280442061567265778980588992117441942953293303561770660631250315095255526127164451581333508812460153979511408597541685263960452107694998467850183224360719591972797824869515577492009745266698323244583976534591768511778985449675454704453945569435186787529610188004594578230544227325723774689812872904364359929953653771673815819840527217985334485618419302425215025476478077034731668499044884345598974612286481850642166512146595282131768810200063740941162696873503095265967750322424985822001058743079114515412118038071025971498072639518436959865475334043068905903600799420596962990745008832670350268082791266515242747653662026237946402028723073376450306760059006165034657181229390391223846543029717848244109796779496374564774702642238203405863192614816203809658972299362812760271234278662913786552817809570057299357117546875904240780716322688907318138149976298433892182370795788513820408341102755060345775838801817513950382949444812533806774666547399182567813954662575663971043787099184245775176613194205368755785927734107233219874753189913140403544629444773616534800067164486206943855250172110781036301545935798085697312257402107043605950827569763629066276204143354529008271306059950042133943695942215385360755804978672723326128981945256912206948835645423536002983729622507976542075986431500582311724667094321116196884061506084017447147302017153007300881048068792745430734013923215056399719619509032440366905367895524358041118555823888664999928005702883923472555488952432254630927943767761310999957766207634744703608719398297101657503171587438655720623808776496519429721266777967890064293173695921418294175196940434413074967656610329329527415646255881903948310100532038588243010920005137704124310230285710240033891860312420974121830282208796237234553540627951179402039775990683799223596762663168318170571198472168178185294121228472985481631957396090535163452125882006643918458319459390588472887395501931980142668645843869245545417387857991507115152325191117945160138847427939994670305750308890968025338401546294079871282712246018968820724150422099552981375273527086194498325612832522575131122257910899022381228058809267446434082330548938746911454361956678501639966089019476684326111486220286521437990452367801961463573787434472584532134104919420260033589717853495001219531415052838792004427870070220358913696555773246573161355271256573476190294861771350576515209919434893345797273469761638991288141331444215268999916936466086854218926430531656402333075067166422788560694726097535796449859293607256446013214071130438376752717779584807116493076871710431075949224948868030576369172447866029712635007804066977820978635053386360633592909878382039305632243234478406286477507838723129713465447578712842905931862530729298339860104338014758673212895267123545741441177653541287457572852623801347457956182041226525599902731804544319108177835996482606675832737954744366660760219903874548945317558238841649273458115570032185888923550381180256259176637636538947344732758024198832530207219770533291231514953605592876457126906381381485682492437650805253830371591394530908345765049240329920528932549575545242198309530959871346831212124021819766397785146078901221772764843314088480216798684963160412269707630586267710555421484134356443200622985225666615300303669212565474583701377971852486967704741153254305153172006986476808109522172698137653800159514069618359387313802818299291210734396220107418918514546704569253021571126067479150364268061335643450084195698382250929170061093949978307424531946474388459891195327803005055791568583506188263220190020606603371668439931929589269272078375438773437249885057696215366786868016638595927883442558348375757329556813441007731437594517020896892317751964650172231596172751730713360216443731366804473571554318196231221229926729988934848863343574332408820443370124699597407219311603521687099176384435036055575727879513271486677329681295858226800893035320128647774559047225650184903353054102221131112893422250055022414811925791896954426527078099867885766745824528517700617162867684909640630013358628918377110193335577517260519582779914781787670840745184663088277607678738188886686195108601014942730498134312638046378361132365285291317108268457322602851004004203722805423134825854464699617011618762352444962004675388836921477334855917637713379476190669606482445334496528038983436617217640730106210591133553904353121859429856180741570831505527687379650202211535371595065358731676374382377534956231744052951302557875353065384907436276338240482977550041159461498829264692691231724025778087553584517607513363975756541995977764100683660465321872427079130963904157564520216947520239907367604637628809938596203323405644949079092796175370896253023058097543301937707181447282726340382634911395452186118776858007934555548918491669745553634514028488093572947181502635416523600900753905555360793964457079008564943614024815319314368809310559155469550780938312695573365509848452160396361343899636882625646654864996257137104170312928321556232119552587454765485426205980489954241209120712837401074380980388308218708661955073634714957184975966301579816153396792388827927434878447736349894623111297432626420676851442003732812863508355212475243483269453177086685761788378274312520250816972353674304190737044632560093698924613153179436413781708851729629678248595116645119043309153711370549344291953992838253085452627274150486241555886740937140734882283386059998430301168394897869562282494144509458623826655819014911936118673921428822655135750990574074570793976775613047833529136191921111133679072559327668276776968481069179673171329394789714792950959493405003974180281099097947320951442689209693553729645603036661443419902615615095379189922721278367708986332420131930034601089336164467304466322581899626896878149611364874841679471241347868095101812943086860826868978759929142895469390353576215856321117929285551266133849026455439151157506998570327283404437115271893139246285464073578011069938052490613957041047953580504850190805862368932021107446822165281444790929754842624717428652710667271059560235244815365681681833496844237068398171144712455834094412426691398115181103093655180834981368606424847004427123603495729150126830261224345184069458210239249686505411359066127876673997175944727014804632782533044651948308355517690502182831678735931427162484571064621180021279197890325930048108793937337094207682044642660180976132274744488051717690583757375279350853361058076002421652227582188336207689618560640622903680291164106912740337323188271663757267052881224357720553733601815268553953476878087949241478946571535655423242433850720587873580431116573028901552100137875231702827651965865433364040595069979269142680875550821848832122169135466781318463709500001638998500512365454725553921963894987694772789893482997769117731702412670392962349875811692650967795127900084752408122898086714716297411952886355074774553154403408308362906893719429869148137199817472769350851159726723043951819587579644542261785941119458984307310559911746497830539140682842073383546083737036086938248612697269214661491851016559585958698369039907871675423803439067272020180768765147502199631533455716128373632311040704426265674357230920745257887894991992923014132238215301734305651411792676686262400291605008850305795726383162558523898222553932346912662649489528105799210392550789857655431172649500776466058185181918329288097225368745431277269547117315722831682666910402943261892449798890546170321067835666948827211179544777975995040886530464529018886505611882327595309514012702507110181600961009759350009567464042976305290933623577061799645818783599013182868551334425929855929328848999533857481464115744016540268408103606303996257137031297025035909829012176843792412497695442359370581649085110547688395881266752586197126249723341590194028140339539812371651942474102918060211048220012591144057680124621815878245887052196787837192223332008949378637860736643219719906222295030753425855755078823866037094783613799006605400559766889938052029650215891952817054873212074356072802683174620610753073847124717408794681570724712357238769273577908747676818170019328739783985790094593302325079255196228567612421376321514187527158843521977710379695983377268909740604760893201591575542469652310034751428145669167677047954748809455254462297457366419129674127962069967831479297501274934810376430906258177897189991484170001820031414799581044878744413754813863131165980308334581534826142694949898869495094843320761816469880577227236925812073005926698467433976433888765369506485208959549104392909847538367971986371712672338596831353182957232955956670155560650131971209492401928942161120160233616923398482374555527661123791543671310008662142283909625889549170433898097072152330154666405454602903546578595793422759010303725241351286995919681855341344762915721588817251142197099834838482649447930525159862530764844454995640080521704715184302859058403329826597542896504838447447754554924939673484348444489206185510461136450255341532254899155539025967609117536556429141712879144478813882345423555906291442343265693475024073970801217603973058060340563675723418051414049881747221769969543120066791320488887968285396895796644019855220705178016917643249316898353875897539542385627677398945511867697190882351902284653441415833831864429766070554021990629800102624705211024044537035634623408412062492264838280818684158906607402108987845949128107517223952588360346297705743691997773483525802387996062544040082647135706341968749797763372853596659991565583645597065233547172301864430046826304399718088720054042791537030628388115573916328061907324838712024400210699335713824554285445308761508414268181900563012379931314874465520798335613243664510702205507644010672962494883884802210933904222443579978917251256392273692887155731799314450116218414338809013669927236256545292872681764389672810073236103362423711438305683372216506512842072834171786744831060264874636135128989949875875956912410110857845746514317500659028814755905518401871374833435032792436377840042409462746245801812177507739022059338922181339423666093238421906280226682462374673528268919278944563705023127870875564121544952898568352344913874475324103219037298939165227045356720674233147390416563760310736455669969769260784219261283823881873141820329657119593498673826779154294976630354964921614168007787933488031183875769699606836015399861821936336578028553625563136083695405750183826271282138618423890812656263129576049769795535999239265407742871192924720661768897483013893240203414278508175234179195744832406621899086646311185418781124977827637341909915122545081324781433366323438295362236074452394857293974174354079892311219265606611623846924039236444621374764663278660360684405432006375574112552019604466009661520943089450593402391023324662493136873038083408356350315571306661632091929731696968770946061158614810443422801275493502082973405426572762970731052569345220891316888186106481117583970066023747172103980291066829947688911771455957018551228439678575301254824820950024343768056407799369929603089469074298693010816503030026177883922473767450746510727931426746133357625072771246107993034833994756898875129975405747658922571335979176634605956615104772496722502279558632699611354098021487705253677926238995577894161096536466193950770156555274337488939972917599236940589227792973143698650523126937049140489578130812907003053724864480189854823582255510068209335168871913586707797519307503121548287688807195116019502016930740694482883966240361078106543024947972591305910103482036998970598595875616041206064614955963639834317634330709101902637338831654198820764180011320800077418540742580735315532521634533417309567225587643270594987690374508162017000508769468642603705099262372792064928174142080355774419981041388109465536836044817796688900008184572844703773299202557181707664561779252593571345497443787413428102178027701022184155175716120638048947355626342129181741481355260432879334712947622943257652230310458110271911352135076832756021892216334401716402922530695249505438786651016551623067759311007293652219226247977700022451164405525436259711052257101485156821467574584923078492591511648805473372160272938800420874973202610934657906251553972230507724858732050162527460382410937470149799986351031297327132433376561889327100765141925137909204663087456196924068502852034362361468406522791870975492935224216308042342049445034699788689252323252474996743450188630476842593760008740638951792015461979062951547317735262123259243528549159009299293010918337286178110607705535754823601811484056941705168473529655582089899758274995591405025334435491155352608504665177730527833875837389797358151594768417297384260944061655751560818446404651069495324162396647711650590770921535847644826278197129341970752594677653710280713546717605280950818846047621475549270808511455525955593886459993739181360150247243951978308016304254062366088336328468422544029198897562826941398415269466622113752717907177153112573832496771783717071570366826935698852616710795364222485353426756347898257822992423259990622656292782841653285550759378933724759478328479465491472830810483440974102439423283601444664697345549598781357803707734140530944583930049795547806655166275914682511722363769787167236071536169201910702776890631430240550914655944995648335399104452430952021519527057740106570622712070867404260630800332248689474251254517732135892540287515802322920501401977674336268836850297452511600596488027093444547450112880576221735760045660883091766211083839492363795644432171665356521490543508905857033893338229406636711976176658839925842079296067282501878671950777720609907401650197509249098182033915730274653907336945620629387314334228680812914287259990600173363218968175408852519088948536086222022607827570102573413217298945988572539363149085018706108275807477489534315685375885098108422460747037178381294713917258374433045376272694793334648716766148797447617869581934091986618324846461735294741812137172259836541092081701922115573851930199538601941649460483756288019125917436372821560105029306986818646989848952076388710968389908978617983887565295629350232860276901169309427854555533781279488496535995176340634301951499864616400295322464610879061050640915482745800495288803039379065243270748703600632317117322105901610999888993154805674196297525557760366880465182387504001367772019304657148402295076772317048546195923231429462151952687483344885276994974863388368693985332503435652756793518518878217895189411383440666624096461955708896064786061330648366586694946665648849598363874117388647860827518010357453505059369390486199317941975486366964556434230725125522985036613593932388177176125560103982598187500837155396999945503697886617052809965644472057892870192575453451311924460193437871242278431607031152214054190074802134659853173980570234463993344642401176379692711438157627409248461628237342963216161585287200672136372875333679472782046122675536328866463012884416579244902964689341980189173763384011186704226956866001632937219300097392059106733757474530543099528572277330537528054048181782066228546958192924897289225446446970391863089508682209797589771575264556746023027971302580328638825139024919596066038928844629244725478990419367199168000939071510293903854914469422813408190143465526287872633057083484132935747667353990900308492982084389384851315166895651301672473944299202408384154390173438057495687008364023498340879114122140864195291090097773332673416637795601589974811717210332350305666470471391852093644348570379931138935556714239943720207241314132518846873676085690921696463669940904119148363601845322728036814062351973399276482105481169677398079486378249823205923807133582258825963922031036681358420277017849506442530568608331329434769265544834300059236169445096437452628671586680045398484311136321232602493045160744054767908331866261409545947590095424524037425050511279618903208713673768678466229404549594160000836196753161564666087247039543717807053343798849346715544410347803594005178901738269933021427586533001198080043889161101738982368000115358106732517143635185205505950629932625682876928996910855762015417696813568774970906543158577518784175338814253102152958126150347608412241304785083553101717309649950507859804144618692405094960863240271414288627601654746191024482443308771266818516622476061271410874251069541508902218142269905730095516557071880388775472501899939813959633422318949672231551719371485906431113949338578113525434230468477800328448826580076964420066506621114778681165787219883119358290423897762615267053407747278260284265556786459301429817250591279157477290231319338837950169530630007001566725308842737603069653944486926218807061682930331392047906483789195846855615222051363590012388920967582216204229125046521487626277778188940158159670443697466251826439178442309839324462467757444903638937261910625538471724249748444877760940156646431669989647942113037088532936999562523543106929798252993848454220988625546125213212398169546347805259765272750148460094846083689181494745918136382461449812067963036090309531601759860706132780681409164374007533800546160762011267693573634683257241078783320778684197951140856430812488182098476341173320333585604924373745511150841713654337195058829216407813818453924094689313623945170582380668451454595381459589149374664271330779165713922358378427317181107367387371811890166627384908567198963895394875218302769274286041262025955407985067046745441136604958415684946370498544718047128699282645763506149677925982639284226830958159063836689890468642193959535361437055553795060615275049329545883815022602597885044529681927472505840827642510965242901787909175765255994423913093773724956086246268941713188197854926940874380747607986848854261917224395120255523895504186694085270142534349011064067915609923522570252095316047936020412698380025477775911224334019011635801303943803174139540427334211214213467862221284655845969711043575145188554299428696761032082321273032071953761643833111319955666739651943620640127904120952407200819846372529497352993388170913458134131714616175449084550568138277154772854521197311917426883162628063369350579235178086890848212968312774339569606217054243297578421432156868274688389809065646715710528479642671165861659308410135549009040596082297610393010314157782342280213168496544297788373456768072684351229887776315392203502661820183844716923301940449142751810909052480182661484953677964753631239315696721452078836333799494211015795031368390857039632128780633282151829036785303512294973060696493265165506207395563993030441448190903948237533942584588770228821573605282188219205238766455038233996021423156984715459094645756927630408629696069291189236428108413787029783448099869613044322211903507066196558323486825311852958408022899846988731780008594865174901348681744418988138211806493905438218451584254985338482672655410631232586382998002674107699591637482926981784903670612639462959899149765358860782336781271625986280379964605696493847647267932270098272340057606949222994301519121579387995666511727809213935380146203792579338987734954413015346222761099425907299966200212716570184094060466297342113488920541886995434937546311324674689577511201566219972315258281260389716666982124889737466739532090806235704218086536251312120922379906983633004028338977101641626961806394058428900976565589179219719074388894928371981265213661725523484799470150254739217858041450602497837660141221253424610993832074064268270286139041650468045723063858968357104016544095240427152072520677590938213809651723325728989157098687436653373101401680079516788053777633751713151130755056317725514152231224840358524454742373658968900363848941729084491049181410392892551150351537390160507287657622047133278828429504525417296948604448725096366561345979639093681052178116408437404740480330373135122089036830605309550459372556482228006751738168191179028393486499086284328399359601102766005227603984285780920543509183575307824275803290557031556847009695446262730422682266110429061155486590059531124050712378021874685350400341557795384122683688032960320300809280683978185845805073760206907904837765176284941147755617809040703457652363752147969071079255109098855424935593041065194823064018988593930183219924851035310949295444430606587494884671281361811396772439995777894118997822631701882235951527519449332905570284689031705977316496386397371376825976461427613456288327871618148972868495795712626087869645442333577762920895746892225485978040643808781453140343729047151275852414783502875314905573265739034696571384900712991532155086718339882888760739531334401581759982256347046950852163249736746084556815070583656423586910996164736701000854603828326211102487717726909994114789901459362642937439119179628022740801951490491921212357381474095102304283115111029646133019730895033392251258423352191671346903496794871156856628922192006753144303462688593424243959249755191977408665262765015695758874716645775339207151239561930258065735248155632827674508733266235107832210855771868094098919512323782958748879004305228161896700082269873024131023504823216187309323929022265126923596346670342283621610426575161129521341222260205335348739670914216019957162066316876337925535254262262914307198840284221967920486833181636532079961353146839976779712142302045968176833515578570145760942604054820071880627028502162152941504779548272334727729584103530141027162064755416965268931142697233976320074593983019449901480481825989254197658619066122658001050218390926872039717050314604552497477432915374850477839772781098465417146996688557459023955423158201303642025474490303216209718699126655033200308311962999564106977824063966632126361885955594602852767012685679120246810358548249177753854000089694468564539564400447139725507788239556419817142493133118891580076284950738803560312265617264974326643278181022082410369860202747586021291303529836723239216604897223171377716734290473836264007946233762957536301934625000262085044610740652787866048132124015762052705798459397518809877835043481351783065745891507764262469089230519809820202613878219924136507920298906686979933860151773309697727842010725525406410273597715412443517266043777496583112520528771406545747098747482613642601319582224499988394304048487506641874395525106076986935300967572359970303494361606104873316511445964961328552831314579777066217753908560562136598376970877937453297526002883609778835519363436058322044874743445119948044104438901176951584951573566756821644781313847302077676730486495266311731483120524701440675304317403386371434768522194037533961070562882551544378919792991708297726495867974264889110310815291160094414919600536405097115173020672229084530681953912147442214246654044906475950619701731486608658468786271570401664631782675720277800461958355251210943056552385230319353565989010510843603474705646241584211215568660455300144039859787379007884070416803534650558132375673565625009854637544226152961339355248737660645935750002234446844846181185125315065160807544952932672070551286695098681310553932737448238472662394583438933760088737754719626668096878931118397073108639300010655103833451754594251054155774994326805527886888625870490170899440676306832378159897071534176155750118325404138571477526955134034530896990423161299850594719574635434437014814632492966152818369940249028443387785468170784124622057427735067139466006788198790463376277973331064295148490369509284023633498762122039984694737793991621202476528562547127051092572657374767203758194906666718135932458868509739815316268379376557467686112552675859010466000055701143492418464714895311831933155674562512546475096280012326875706478417465815595183343590407089306777928216927063933297964001129146726748877058730195681993055243003370679397452469274076245854809712979842149991252452241715625352026598502514690511224708914850489051434993373647478987329598856782203925536179363478324199554401619559499972815739946381456060363721502829106235641539819569011529304927869675608329739864557432158627031912704828833070044250768403439007266687559247751393117510148324601516642218002331550389781223605377329536949684284470204500625230153345785019604048419530073532100795210805984557772954329889664972585384114537941074223921931570020271509261259105591492038001698269495903420658929158250299404836653324877398962220353407200787476389228156656499490937873976621155687331240250635636271436021385608207641569577581376452704684870786441998364829720988358419094841765867014739909283858695156961644923035046881478434022280381193000347619959775701770498628978048510062540038168649468334905041689940287006043223877021942031685389724918426218587121181412564807128055785529536489102488181741691064262175243167622951411695666816823013920565586170547458800405462311787966067729598158039229615495177865696568771818810461334929229553604757168319435451613154651908882694197403669320765647408446262634132084566408914556528899546342056608586053423168447069434011008896408208733366838828396657635757960710934619483479692896091286105680555425963006469421411438183501346052412741526753655092601367697183563455788017652014733206967122743652109349891358882323109528244953928438373128769444193488359164457710536089962841737129802845138941228784500354313938189553359249365199391892189053890684517510675729595340667955638177841621682695038259330871699092923106688210046042907874131053013932613843492780670394638156336521755551481207956779608342087064680917802791028531234117907830828929385521172084633263383292525173373944850244259883070822899859614337183488220564152833269419349298454780961208410655068297614330402940241461134879629503591237539181225187577315928894311841609005344077133822303048534738123391613227189394369414816327473865235465740498386841020228100457562293752884191254638883819431616244450787102294028204344232248703919440984198365444421208017507812009387467682309886204789194274696012664552205304790449699289255378495255708186735501179692619001208793825170584471277344760505992583623525169425610729645339163950614650564910876862815542055329223668415560756911654578583567726498585973647291447866286108462218052001439806794709712315871034313531648518938855434423778983024452647234002746705446747661532725849502603457824956705355554826758316257792895645433188148276107844827180800163442512182591821954352793908003717218282638683546059626618733484923083141376692878031050316242924353919694232823769699272360316421790244216426545035170220987688866107569133680536550853282851936743326403956329938138250292483504734788447921005614620710652113396830738665929941525204177317357938023314326119521520078534541202077754312011009833561227486081194818636663681111460927229771798760016219580070584688051430309535120956242273404074737133828308755492168193382580090517410981289210210016527344335488288436205602876392144309791979707692081395054574452813807859632150407019314402883686553734470688548822663568633266150770340544122647674685939138460043934080227971812192875206961218188727491690881621282759661918963664032574477992007153901351736825336374129297779222256555862593314959749860745416211770950282515387207608094761221225295777828152671052882182322351793737601307881213190833583013314966331205732272121797306799490187121340180219839000148789255658601071946368054074949974324999609962882790888851286349382402373911906792451986960332035244701342087638258309969507272082884310513806794860586211102497611153536681105932238514284401128400191620259180533862744775225935431656347080837881281962567418964048470933808216258665370686668193671643276488311428308537621679733174762735272766435145688061865581660057665461566375790402842697056627759499533467284054865310262362683536985392027644627443996563522247103878391521426068148303598371345867408701697489956455471281078589191658707397554356970457958825378093551235836926922670533896113321254168346788691999374105385357670662662739810230267835879304176996369700647337621309715822486797288747698020180229845030981132941099728596059769789031460402329463183289691636515797123870089741748251066408282360857118587450811685282334398500973275445456607335631713485800591132255416117791641931299892219131463733963428797955681741514910824511498325968297512167106212013784455451798919853554302142403302637465016808896174401238855131894482614211511770822446365578131524854539119277435636399315821362552578181467875753248075311000718784743631811497783801702914134608126531506880236524676722445127579811762316396296820438348612740959708809177060943239467631149083075507151233217351902999199673605562916105844550199607423789237177733945905094491607049856614027290192515815455939121329177385787559757910782014505003744730443579143436179093974958484898611324854142012682146569696408511637726759108048633862818419657229752662119719416616825317890225771916116772608364823138150996640849837014252137468037611524384878734278940950251145845641642471888987573624906736860354464018609018981995622948130662106553310246245102822158796271990220364321166509055711984185819050934019331948114358895584907622071543888872517776833869636689090569931950416466741847582921344560570458577807162052448475724684764074281693194122802132590324480539283289736741451481345291035939883368964317659755954561613384476312507759436563228677540873827127987279385882653983405464258487730590651523748005916238221908129030174157190070253219412160479057187278363964857653557031675018540341698573349597606093020142114095098282460169089053564732390129058026219774489321853317643361385274109072124432747680930721465430941659242130584372985598975105626400771238986732340197512673399878667098364788463097452979178668364886767935520549723818086355818961471776217646174139434955150854793120327909775405676927005029648675863715893290658791526627600602247723559808965233492402080498915834583675427747545794558562572265293543571245959341968392138824376421045940103809644163845225286969800381456014003071993016411727149153500243551052942498170349212957969124233695308390907236482550938229792201109024604325885391608830298818128073754817410245187097571449122019501836626275968051273577102329994225995839743353839531728813776820575283549279029606707330223700627135489425784639799533719925208249452051003805801118046849802801258385158744261982013199374186718700921760504493206502058556055844439994660727988971155522120410681727061118154465139264995149305919329373374955617268231428228728510388994027876115264456964127030607949848366981552828668909556024677246240391555505527490954452839167152949360320320612499768670899930010971771058170222208334417600931341495954056880178193601247484852771716712257376622308780955830681216546695659144049103506464258741229380938579838570995040457388637450975982882586990088906955860117571014101108901164649571346284296746519697453297356026112871470017259431216648257832920277849004982722940463688657307233490814958353169746027818818599010655203526628096327750228509815913297779166933908805064857934465242872335839052943212215596940483329998727343153309868711854371381237497052434316483228100219509517573907525055084194345010953915696562361116698458017947173983633595919795763438004607188566925988554507486188172553791819101870296879414329988406989698767395645208980838415636354297190816545046919735576819875125162620897066516415628554622107606860997600886646070638625330772692495048092298018033506353637777906232632972553322575284156085493279152961434714595315934500554967486507284145006435244307601500330428949980125346957364274346733252836675514350601782309467224339717418911238819147717195294318296731534773445272771605178069930338950994223683603288453244666509071326380905987207110056196439861343057828065336283193668942282665903349476347374295376049010047206990828385017943609340683089797276043383419392671041335873611517045537655145951138996064713359010302033340531942710196230897268336190995071483524177953129971425228897905959084795791259583300255642479546015289172483368443209269809358083616313237531292955718231183816078045890941302758679920474693745495789017052943746804766719636747152460820049646716034670165495785331130482007893063339633328799256219288815118508375767433706524220052993196893045550445830609992320213843628712323009909976234755075536630315037992832719120738396187371305329281097861164807301261195311983306577453094610149186291247117034581596302361228652034976995732170779036790720397226548710859880180454999588803320059699071707755855398298133877414641430728460494435981754035490252239505050904492727490371049311446020700491463041879347160202673707655163729441915191155537830881512286475626222133011490253205144801930364261021655794184354515803034992271020387216568552656830602230467051322906854946302855077541862587700399830124751636949714763425187200533288067745018250475013391648870950309945890196876881482454840564582442293082762037047083859188121064040678462738527996347646977940953692534085153759294631668402387673733290780139647900591276055081172038564615283098232165875076683928007633568934527957487268644501038821144935527991520035970046308733669625803315590214795436105928736681501980516696907927836420792899096209857578646059183948685535622100968570342423962128116173630378476980629981814428069752418910608905301193378469436337201212649070353772762622768062874591825888355029386750929399185040072220864205843877875351709047764042736220169532178835332337004617139144048801848361799828064784476241972052472088599277416854144263057165079033753456903782449756070015614176662207783218603276604248776310515793494640569789179426731693888711821797748020656731501562196447481443081159865597561235802594805646073159012177682894814531496035050983181853822385388443517640544054456996440300523468070438580685013396749960057138090354533504153283996857692213459104734133997054891332763420887708056646585155816305847828603345302739630183114772341507986780270317523952678437817213456384767102176373945315540336532059012792444129230175295106743562842079521748049860424216020824259886917938030302335169235814567565333845110230807289320693468043056273445731597094176794460019741113496802712023709568656175048869572072399480650592510266973522078876677642168374434137700859794167136367822971365036189323658565908233812034906680861050202943775710562086368961679345979875586935001663711153362196733313443917541799860869928016352533186306644296293913873726496393880180586363331421507048637729900787610645024946216053557401333594097462581120753637867854612580345555009459890469994589990721747364730535221771548757357828817255882263354889816315935922326877477608082094492897248521250819771994819962639844439519617881597627951832383211035621202594321494426949039226745834180166690012301396457309956454369629035160906485815972434245274430520083076191405322167076492487415440858472997311964022820805498740066795261766422177916079419710774070912731968090669431086703249074435166996861565738971709099413461695054505526683607204622158152415476125175199169686526988912533465500837047113951369126567867233268067477140815515519160530924198685702857790410799123157764165169431627549506527866117314503920506191491633823294932853589195595857497538503812596602099825714889071809967037472652723885716323387640056997935198753596306246635322316648515676470219564093308366999138155214240308400949345364128621364704554664653458516836773446426329615756324370025151794810077454939477098854794729445217663032904949680930698051305403863987962367506162147427862302281336338792175288376446669727511281267249158177719715954193390183651690014791380525029299759326375106163418431602466864545131305031126374770918899628211694317437657054113320514261392070515549842267675654167272084934205266183032638029431525434829099180342245770777362600437389584858726092897366450301244755818432575288547170054870737555913210441159016942159436530688519333825819824226340522698452288177453915812076507246197767109713854260220326547833998690316492847015475531634988701840614308273998378422645876609621308003314661604120349058526176797065473335946026394947867549173221155415686471599266418331156730718887385136141868775897335263064493614423262117907583746848060546020142486725346841063752448484985944731414244519591863103338671450083185040309384932705863577899470032042361419577515358710027715678287219781904542838586012980668367044989928549021352840104500069846147866307773209817403370639014879418945470375680172910641312918072787968920690644748661182429430665251794072573404996980055371472608929050041545554787017659135271546427949601524659484547432835329932979293357559950049013396927385464460145506790710750598099755900662073990764968912118686785234299294134558112759235447866995678851282110060149779436622950678389973317161761219853483991497188298517984836815558686091192205924114847095718377650696409367489304457628835621350828634417349976140414441433255229079899934437663084140041439874260151786409517273872379399871286954782675072835515462216165810367536950472495835399389962895794566038652354281516198833189635747744243533942805598435773812589061741760878790512756874450782033954536524489961691847942616437806524874803118549402171299429331194975682988127910795634661520297594909784082754404813582185470268937549271592063767525153179331533164742422897365366791908819999184506116945269408071853200336100190252607760916181158536836096941959178724286628014275476664265615700110530614971086857164634186732881749135756256032419051961272302182314255688156765388866160887550649125594745315615860718731478340778857497669554839201772620584398280874726720947858700466874477295465853254963835824025453334121284038447911733120330440732308497299721003578602062996822252915769908759956932920967952350904251773722346294033754955224132335846468088102761297450812559537560943155654961243932222554243095112553592275104571713572892979678395558434571368208228030325424533966950989222963768961309827305912367034525016747841638969703147508072462509066655981661673129454348725262863107919883147210280764426582926673368277508953152884952692693046637196458347121406787205922624800378035462215353922955379292285376802727117829554259834268081708689794911303041685337398362806130668708797403517600300965369002788033905260994892614037851272219252203043329297413203308285577484912570398872754010569194308449920751603498542059588915485709654833780400988006961615825920844825977722697873251185904853453230049119405094922092124055640203794524286206312807900708419191728690509509680813516241729681269026499380429725770677526423446305026517213106328744498820938460634063765531117262188763594183369878701066614203664436113217792039372333789969588579549821139538385311995524492203317693818547349645087425698421746090125522932201538684471961244121727677173569486519274012271500956279600037455761180272129634815539631067801085438368875789165148549235095499813962365520567931934172525711710933537685313976361953642177600014408856995429440064852548483393380865532157362544206653483105310955234503772680233705764733196971462503566168973052384704217786450810184835219727945226590187211881632057940539564941816046114837280885494771438252596315021847328938018198170999470297991456566448055267918245715544603695981666080033962754858283191222914412427014396755093922366051999440178300113139978042891295639556397831552586553077522391853798097530838169948556679450608339635605060029486964418170278701137323878859329598143384136941026024882952700933342779258971564256763347514285717592227463087189366113591116650744193042943535660036619953660305801184920975230658631516965451915262635002883003240511050954429042556427359250325970306511658843338216557432970068069404111939755950812648989998301511794277800436477325111102565602743436558569197314621704393990829186127249301127667518279233513277942718268166525412978958131831763472990775165388532723588601587739606100018509798368313953556883546470680235663815709343661622419867951463352855137434474373787082229009001931278863200012714636589743403306249603836732020398142914667987814820914754868585144666521852522650294639429224918527822155705150460680133949115309898570231099612743349887631067665960966110060817584707483953146358862983855920364971161014111340598411372471658853242996926782057883970714966730343226570785141853018804608245449030064577960740624692179030548963637897274379737134059393800942486861696820430113172387415817004138354878692816816492932256709191558126086177762996727144732757844706193616155770607843091941378298356961313858295563737398879668260181683946823250183284367752337143054336558912810502404186898031792348598609318581851777763275859739681692568296651245150294986533996860621753791504824651661088560599162976028785178802708601995135522739730505136028675517747575670292456768198114769647600033667970846748668827997651838241235652449037963286639196749626527249504512131980151195490866370087052817205064644066323768430521236640957685620204477530698643522923821764560424237193128996748472800768832039921600094468867388758117434479338113881789527733889959989413409021566179744561714499121146213805229628089245603288765100927938803930111147319244468376950055431643200059812266739655683920043116935830925852019753741148517535371592448955135057084220954026231034549710925551850542433673646201464631774442088524114057331690465848106148824539519046584749312899935194733311094838393878685485119128358652279647943336466467491846851885514791251332290838193764639132566020317651549134517091067714944985853367024282662106626655128391270470818857724545146163934966354591128232731119082775986932974832394958574225128300747112542575404920799883694943552682127666417093732514912174481519692140087551531111578449790809839490558267703200191800601284590745307693058297573036376829085550831174811387089070159146180193434569393237385061482307746906527093177693129762324019179757784023015748094478138716642209233631485245975936288367001076792258835369641749146452910130080598762508108429167288110896340864419783689937045236928797718336375855483166280490551684583789589168592629028076090788882026705317459212762664746194811950702359896868911183569091477781339308706066591670034369306369889679510922136356270937483894796179053603347716776250093221879710045930274931488629887477496598648475883622270606646954372285781752225029400364701021950014976447301199673426704526234040483679272285118404346983306804857527845428749129820221855865757674978127417644875969278046244791957420122335679894128289447952544346395459108775286626679617453506459766275074839650075096760984752425818973614161699769478238625821103476506740632885008980441924590349090435653020487606657437296254680267531283091455253987305952149934992826985669903615349209089900222312619102636674842464653331357671967134817929520306248981555237744774097729316530973362567658821891741022495963815071338633147374996661217300445891690223746661361729555387626435240986016270598961137687692564557420023839926537778627893970129405969015033973149735381632047650902984196085101131275623306677535499638902782299686950045895566857372087680499343037314587985158461120541546409400740116709475654620083074585956814050943895068488506044102058940438861204358468831105619439425967051153666901033006190321332058646152953618600054225573262260843826336724506645056876792257134865934997784438517096806844827300547178803633697877049988995035277435514592078135121732338336100228738554569492111381222950036787753126397416651023256390971474413430149024122165838438146700942724164272507419280252456223177532852534392308621975600479594113897254513912163916457491418390507925991063603176604029974222022039971269593044768922888702590743922796938981741322999859317200381739036030575153950854649652657121693027509396411569778253297741900572355571103844465878899033744060358606995673816579705787206923135458669956545236784043957198365940684129372000479948265472456573249546382725968808089490485985174127465170843592530164880270308670412927799510468017245278752065002054311462572010619777227009434533417054266583001148298084464865383384441872613649848672509483186083828202663223262266242750468175663885123266243158200028927464208151482017660142317573056420407946276238898472833179625036509280747814335117902036078204822813697050973893927877633394986270926403757832530460904934498390754701548248443229383200471898458145563191536934941492582708829580823031131660053780252682948669041354189806751105526688250355280013283190143595338332703463794283740765237196206117023083764954516710329952299239221540896469251438856307587878415310366362521541354630657869441409152384203531795871137158571743954404558520437462453939753036337018486791852863560993802424432457121753173484606800333272667516796093509680207698641580494946494394326778505117471484523050549729110522359913989351803121158351861792746907841675925540620574012796091315551492735473969427059873378157618008731794419619051978424762007081125470858507164488097337180266353472670280792912785657912727487676280357956922375494423669946735240180397917829499740334374081347238183293081774586127617815249724799309467873692732358218546570693922894279953268117978005247642637402639999148395944241462484222623966854597454453164196205871368036919843597296460354396426361889992304888017889360871324419969440884624687816924890271183437347577733480971429901359678485995523670028429363099383049152951480791135024124263932691779392357362402762801749792138331414022373618351158483468706009674716200133929522296116183536606702239468590106421242790909022533923655856305493883076335266811325462714283127036084811923733229999766446253617155152105287477849438357221401500541201812200278079850949996593226975000356563641264870203577619504396381381414527928166823662337504149832702850472435104820567567643346028280475001052345031197514659073941116138606810441078926921375731364669056418786111035824322378086251531731157745893779675674804187444827194887721885525732469589162808799177337228047378660496740887120105994700387726526997049995778057454139969150698257659859044891561875190265642374870182622367936305978116223401497407697689101158204632828627900686950303940150265769571408884314395630697089663549464144516256757981583261069650228530978926778781497264171580711144855040954479682291750172484576790057813470013020337107821618623300834918611519880627223107877559903891943969986480798611112996478695401327773855126377888327899675660139993828094187852482502398606907788071044050203144999685109234292349809649155654022399230903875726839222395376713754499064564313793032994290974520860189698030745044988833957557350532260894562120460299597770125386229620155319254858831164670829028176373944654070765303676368942648316776344986140980164860310160453798111089849930854564971171781973349422158477178068905916533923978421374298494024303709236691382577266223760014613313593462960814161257392121932110234999487114643614054435757968615783190781138768063665898509506952117902463493192340083037979406947994841290792217254550623694521318449084981689747921653303516878922204445665859433810385168876653190392223755749866951794781093304974378253004619925270650544177779406479403545176781929351174731936875364623950425632592309538487558779745056452575020571465786839049260188670828011013811197292691698807256029316860691929501964010655846119519047419858006243295478248180833326953971952956066883484558694286903728565992385271791380117530039574951636471973915148712530180875884279641671882241997219128030258681799563215016201192318880497723176924412677979603368301149857470837097422698910300249040879110849375356161742317691904998008217307422061987180865988733409331219277157427303769663968543480089812728052519841279429268197846474831958263858155813527193283075833938034418944406225380574383510485758691911368189182303739726262342175413900512923369417364657104099454545415766730953844478046979916870249615317618338218682047861932278999521882092366671702447179905548020415384042986336601757119604588921719887780663964697175028641909841500975573064077859193316491465104266566471712855975112783859062787925297213662302241985841834919346764945948910283961072579538072603767502004818462433049110484594647059593966664611568458795960406971092714616475655742525203167175533880155022806559848534885718183438074387364154554820854932956612413931437606400139065641284595221595672214949983595117836318518496865809831189590339174976769254552590010031571832404266941080047790420756298086626956665559059046273810771535285121546899651143644958617808879619639040242021652818607858106608735070424325025815887497624187965181038556012185785219958033870059702971381348722073384476073535394519284165405844808666349390161017553237843632285120933601331301813916471831635062122411315763735927304798154432876210346123414159108548309452354199334450342508282815618457115063494561022445270317011046934960416450490935390881072597440840756282268159887998576383683988292297634567029326702720724420622294568526309593424365163001820209146323087718678904657458741904164718734619787469171906894666705451498208692090594351931138647318242446222287334884484639187274913277615025957539526920041316148513397860721671242355370550751393033423237618868736906663982608140099479849203031101303103610316454708250246871988182488369766604536533209429261896656307568315435168057734473809449733170772898240076854624387266723253647947913647917022490582281130275639375106368215392768441030004334089969764719318854860721601252754486555588989368005277123001861319699728115866106541414377626008457806389026157364831711233114244075517297570986026976680001725530912928254430612774647523164741220192625280976443534132385539973274791510736670594645860358347540404508008267634757256280727969575853874301952930678548150430509739727710617412329134384806017324368436819069057080899381668089373420518838045591599244742363616531418346097117078334648813952272870390682361969795960889819756496825280483225808026948223451485613467009915210681654181536004959977849709306057808110065149745289583874617495726305175329865193885786924567048915174343714173428743132682358574692226224206962196079208181749711589222262695364738164891815839401004962458031460859249175026521889992477931065873491579774817560480882175221704543986530635494329831128045041708495618948410707517365902280878158750787782314141806114664805166606386800716933264857690592667692725373153200279621293601798805827378835389461084508555810032253480298563597528419109221969136595908156163284255671637387408590106085000302880403550654546766115945922722613432909803701994742575815740006493532897961467525817552640519728047214438821177915298451428280763537851048869087906073237355182577392035813769943904568273414319678489239835399203236190787877414754057258501261640823143362714731608898081610911014769550398392499509445164845915872295555717284590493904615814512741289211773074508991867080796504344167567979681989025060177517327179636352037264592851674487534541665472654219293606307194404933466576995398953196414189245402683269122502571973061268238912223253675702189020444532806506863750784858781501580509347542181971429788426917570452857346342573661113562550148506065760314067198479869548788107618800118538833211075911008624953985780973389655232312541065536428238545350880976005695129610231868612110545597308462592967930532165733467976088862277618943899870775841190706075295671130277319899927568812802992181288721412349936127763634542443781014543599851290433769806852265660182618463398761135298409691473713875147663892628984219654551492463056322666014162482570792883467040222026122559872708045270624489130775967345908105392506640212520227025320840209476355709740477132798962875510660303325219431595713353676832905901950262896528669425508470258859799074334461689012673017472108631791882154587555979563404071589634681057479044048399350324770834584796962130180134487541935326622634787603738571319112950272074260065339110613488228719294281569634999309297499959735890266324086823097688879294026791181485016697504964929277316548220456501503253587200587122091132579431621119804960213987172471716184664473943542244155318153658196309325198954587072135543887437945455458129292704972456749529973432707012195836043395484951713670603124319377685299964297363963220502749034042332624030066777789732929759929374341141148307623381512217155306417764700833288660248155747003049911133644734952752658959468093263885366154345863337279278197995078312761348750538175864186420347237378871481305450170387450655022954159558170137865150591526332389235986289676096990514763288223375961683573217396057200243151572217885764234269882420885870862886818601045190360012485248486577281298277602564014811825822156768873166190721681526397884751024202546008676281030558826742748762570334895614723163111327824734344730336134144158956182209612390232576881164061610760387882200922552893812459728243928484219268917776581287849576964288839502031873873514900760662927228430774660213484745539899432996281934912584445384388439060529108907468243729247007034200440170790099676779942128088125577745667108048453022973922567128280937077316416591917664196714624273084804517871473279022596604268254829999525993970840484182670900798126959197304412057991661690594260910594404014909840101611310367311539157639350757205057777223435840679849175879448229559806844747571130857744699970733850834196202382462478009065412443548863582542134688229572317683130059729841458084015530023704120153958603950492362787495872898841350672082204009191015406475484227622248859597384763992700978557661416094670032022546447427829144714666418812478460975224040799199871415213609844643151885055864225478770560952249341318871026730062097532341073393223232803538103058533155506730524303660770847615974023330234566096140926138867799917696476262210965715862314951789640020317175986688591472425493398331536342057311571080266545350022040244825628698072128228125396750636805056739786165549352813623631698515148926851085014101812579187945292437753996730044150039515735183206089183110997912597376383906313179983506999531297542247739133705522840393815904912409288475805668923468397565735934542076461675012018095614091449766632133040915474087309308748586139528984437598075074738819385094312536841287948537904450141247723750531263778431459872860043224444743359442149742114172577677407713883340052269440608920043869632232367109976982204989020272814514853995121013293820409516935812946368942646011381882216823528287447183557655438194575614020134184105670424854000646735498038064478688176556730050172519853750166882102452984853911244319508766822684576934954346870059630678270351364693256699547282396224042415318251959975471173985013058749194621819355448207419830196541689221082314062898332605847029523333401420064257321823593641902748301547025525721513745134247776614517752282557974669259439024366737628500947924769962997330233794216889813904484773532711076991967007752326664497681631330279114260367123315664694005240092668959034650151808080735658109923292982513111425428106820926239609016379914429037565072550846901879866794543674200867431883061483366720948566031305959283984746801098779502839566043153896060792254879601713781695812677878044088473104901524167267928924860965242566060693401509902687941035504735403263740258591331944833661054477308913957877078608145550493498588334667888745312972618103979339358182816639048764408438317884798088899528548999037289658151119755988128115745554900759831595270305197815742322831478333688823806301601167554371809055208228819943958274157491023706267209242391711088090740182063301899152696458374097969029041790264280626776323832710025002263778490715789062285019197399487293665565957918140406351264559501809551088728090284171287960837544493490372274137703744122970336125854376886342117848203978986943907393586083068185783940008760547384712047143421371261141827062253485937468862924049309863945218752614568217585210212510946929388002098638439749747194872919582541634509914787422514426759932119526708745749971045214126759159844784018187673341830485630750144142068903884634480270268441882112289797558342237486304548374009313176944211931355234724026001914311652607146790969115100330517498055453721431219833278882796218474789305459513024849997419964050829047995238919419023504577108609707604129301969469863851026874580275598272693907924612676439179797689718562676837402755657993867088935123291601361389438981896869625670395634608088205901180597369762336046622628804804908772739471545985765730307654866273990054369006194933873993494225002480121912083659031220719139745955887454489830861541720486019354013350439023529550209010650454117463608673572021807298960528591282592803568661920976828151962346055938470202579064904205279107827515562482713762367447285076933340458091482943675680285547156932469313727735277386858155466261798260774351793137818245542922035287210403718846727080050945335254206182482397480490137770366031807480315935506158679795972463951660574053242367852290682589664570968920049962782042294790427312791703485964122425274086482886185853571199677288842142923125950995023195343531455197856879996991914118574838724917039556042097972796462975133582871128772651967119359507380225877663236949519423391738005660946302239228820713698024922143639460729435055936530541310837023493802556380559327046284113961724376270388959628307109106554259459495286189676126749322874086511258526067498381016831442085089108640018219393799024477123700432959654388496333084321658059303320649043222826166330245280009913861546342077763249093806401987079122136437344459833377230751873874779667267878076601188507658499978949586910593195292900047572084532146676064824007295649842972176545215276262545628643702900197824068339639251563097721911748940881804587925574569511568799125630674941958361839202059664110301470890344167569579490495169581682268819623249327836565965160279106114725486994009272106566233435151854750452960425881376179932187492468730987870630592172118998581098255332824418226050828894995137369362460130300246149389818152347134419119222286796671063770225239795607485546423268273443936422326989048282086213042233245217319000675823716587038080904892076285125646323618006035349727416718724081407212822094600036067048961183987745102165033608970457110991694059055102063541424205837974673112578962606008009181636209159719184975468554883090097907674200594155777910809078994455878148272963669364263699870192960749997238160614497658592631064452592323639180195700489391980561434255388542809701630075575668462895643411486968402846077290563355085601856393706908834472799555905657766138447711331647777245279594143727946349593685514623793343027508402528981190346633327091573113932247206807736378640132111920513954947196979442800868092091265810237145325771556886547939549575733479139805641819548410173070227783438892440062516454718566106753021504474542570383812317359957564515391775499942660760598149392676078126947380037921908671583832530605005049690443879955073282319595627438747378564257913700818092377062071806365218853090158449042971919365935669783064236206387262148545664431326177440545264771367960402907225397559699186480275980834181145040663684344344067752720723230286564513350938725753940936210453236323341256108903539669129882024772269212476329792258668711226772139363367309379963899973209973697841468637362684532879299216285549490681930642338511690779261782369082173766493940778348976879666021197605588677621316255338007283223479634852977984030145043686004937137419828183127689651794968736212678694829064981463609785108164836255577468475407287925312265133674997316566486892396378912551517151712489391169752915024692265490828706739561917699315334624311893707890073804439030768349478697791261754729473265256282621298938091431734592836985841070121344581698164439199986415222353239827157776615386772778521361435581081971735424419203887318680034870814893371778935789811448103969649288299893691570243602578169616332736913748857054646750191683174199474710346630370969623937444403977563026494831398358283818915897006445439831809718084659574025585564206676685622277428741010554887666140773214170877065931889169233022045139111033388622349783958464231831121571094454575051460093344352909771570000158892313118197025612318510315442069301564667050940010721349390659730646016012614914090456257987165793550591107161182359977737485662803720980682454183096960779045042890691565864829885284170233053395214763118369770061706638162157133987095752780684993606539954923298655087603255797498821535608028714186753096305447732629971071899978854844640754412555214084163565547431846090857086887448494128675241229083842917509452391974389708428804798713451059883584955151958977592513853078006356614905503893905581273155679661676430934648797446296935764990616483827708629644234829126380744753725803543707532864992468874037498716318670235996919770796359700571871503327978085807535717255646047070103400341898061315623501008667796569416835898808771915171846347426849041374143650017741229344105237713422485317019976465360244838274567974486776034365756669513245229848556694955750471620439150355882186210394531362038284717928728024464607257744240385982125983750908338236803726186625555764833082350222653731759905500972468343674573345794368240085943477108423019785571061076107552598876322915003213399218246126020515489302446167887643161137075702894795102406951535937445648075519688553982793177072612478732190985956175840799017694696207389870484111519337443515446096519651931378792170592766880010807905950440708331132827069546503059049769652149556528008772869381650968677471326473589884022523147043098612158669646125837175059032664746251431193794870221517418854364345777854842926817594119736264705816058332009343319914429435477522101091994221759165391741021826871908114483392060708546664197079619025296813247665647527822884902650206580732311729773921914530223317875565440962572012415662537553861513480527308753174513018667012302957042854357564218148776993507603603260981698913173365202670526297671093913921837698271648966023771257222321895822207847702150133249376193996028977038519183885944171626243347986432539348126874808848793469015405921506343364447597308836522857844925241697628414457773253054587786384712045295405394483359783779010916140906034367859393677974533150026850088077299975837297000994561061555219544826744360493220073448195740499756183999062830536763603001919988169598180250830249365754070629029126735665433515203195407834047786005604363898473253724038993200341861516295360049501380295341129641472108991680115200457850509326481625733376830526321063867122613153078417925933671680998246630791987307102191279881717778371806380027060216520076933142976837713227337445772379827324139381813120829530237447986887440401248235825000543692654303644833029635393233172617989015289878485694095166010368824755056673100827714135938247407460027407747847321837723649925889219363852000171648704782828377058776287787014449491049483710548252307026619539479368547761440261425258659993231365304240734035646411792168856813960720145020730866801649975918283277464741200861993879313255197912657189965547168384754680332283458977239667354111157998362723560814237894722476755334442131310531565862966738094787770812408387219297389045490531925142391516649369756461779362061653277005344276025249958172681697591222011437124484100365640834178422482254231294991514847527134095535489598051752026006695407535035317092111844933610341030479333695919442943291551122400778682282630170005115397137174009595785879235109325627303827381983004000990632851307066325550926217405160427622220404266000315203125786989814424496484353185310572011707315751803994342922166551772092317933413750355922138283036174681230646999710489997903171801593727522750511344110626849671324717131727368183310733501688565550505142656737438002874682850553676028635838328043158527659091627159447807407531949763577925508810466859459010067895980053764514853022401250570937545847526290160071391670877156270504084660545397334350966260586808816959837246181238645941953828629402594994920068077811004213733992956985155515782035171058323901006755699604848289226803107456958814418244594560806835324834381148928221462856494816187817459570805207221617244563575739403274281826065741015248459923630785975786121916739852071224526004178353809727821042921159577077205430337665586725442248682665275609552706370746987614129882496529360275049443646434949274160323964172503497085780092525834541472324002090739981917198922526158413701627572737636127817820781383805252812070924027701893125476511306771625870733036646239228993257841877446871546477177020556679651240479214936095380267890012821509435230386561213662828559751359031079469832710930246302593877514722151180292548695943082676685092683204591837684862921435718197252192205204229058218873442846033293771942860842002036452266671518358038793885053206979885385952247923974614186121531629978391347310911918533196991650716653047941968453255974314143964791223499833379095306040386003460806730296260516766410328391766574450046626187278325271019931817975037979226205762159672014542077500167213671120377491633264945825415013176341396131607378252993854156834645649318461222326464033802854902822350403643442829958960339970916052917280368278048571800292746837072337980564282422472505535618204711028159707463404300084673070814498728332376336495228924107908620404184553588063964107500574035944656379211538062100117921509739123571756714362997051291986944550764071587697932906042339734038842641123067365227747940054000874734285271276522313985710671189092978690525543800388420611499203972269819642755877108851039327834843921813866680715669092195193669749376173006852135350069574926187953907382981776276265286079629462353066682629184900280215507461801486694879913856998784201474912326636288377519043888746043886168555646344395641326225592982528043746168068297225991579470331692652694043086595420653796879630885101242314210637734171268805922317014937475947970565105090241666538104278219002783671779152809694536894362076053943674577077633153036909952955744727550785208153962085684669089809890898382189730840335790336809838280242884223366539848167547258745285956633254954798279439929071617896409959881979935493317498366684596828970700696673153866129414751471700184556074354007172831752296602875332653910178210108600561788398026275947024176312946631472628258747309935624224870908472793807508919944326702654839652113198508813129194291579731801228975717513497495610081614848671929688265913853646100261655817506500507299368600092117822459388238668189888208512184021228891982569352470939611788948881599721719744494371886468130708130195949218831042810014803992855762506343062020394062490232441261194958695497103648174785760950590331124204919035855752824035928647156837299551039837483596911153199582702314240178349530830131719807135847724544590394313663641198331428521354533686071347063426974646861486724377022948170730329781721602560942846350125849236513595188708082330936335543859952731964720638204063559565592120009567790276256176216452435047272413563297479590484398458904488581525061789244893746183735024469112771077481500812204388931940837575129783772928111624440732788685305469936424059019513641116876951844123141014122688198311085505580927766133547211333452635736879777162136627160568704828788583362220799448201345664178497097476394125751266884557706779423334928075491175230952439113068899801713251524784798293707733474678078286453839999979301329299659583754425641990832043059958255189761118940305469536078247092061092831972683343146398164002415363769285496964391655987480004809461505010859225953404622489370480065182527093595181952207159875998854643043784093181136252828322472882578153070112248580812082835579465270163220284508991675917435754782487663966067371246900138945929150799800877151694532944708246084746911910750953652944992615951596246243132499473461672212356880311084081772285791786349195526005556410921457010496740157140878989387037548380187998643557632428243179375569005811195612642874121233495954723212022607595756618385268286806224518801443333576373271031005035972165716014555901877879754402210801738626477931632105723312024267152736640106398274004947683651350617981357032101970291483934889418806940696788360495709106444355758102342462442875361701021183859532571431754610217046328284439657568104692786395258575350844226368329802040014814949859478134776610916038980512222416846671174599865495032064262295448468146851263223725411699761474870796249202270047451869079652388663454523133841094576098719967974439189059436228680491848089378128454160905922434201734013680329305756807714519555437348411507518643290703432767084087593150656110939181055686105854784581671139335767615815162424244973156951592715723754580436003295954388265178321739317942482195710494583808353793142384285990395813774989707049438403768972851896886776942942676946021763083836050541840200115180718033719357428596396576134741154339814206389988065851635662578489118878365834654086741593820186451065085040599988574261011107272848368745903853429755750952412048516352366776454894617093576090921027253262923625691813570368605473041397953966854401582649734618987272001631712666875648078579068434505922187605998027138991398811349892549859087713727044123582822957621915817119444347661601471839969736080500241188027165122041245953536355062773494609820974880470729182903795852260694242187842153577018853516319375976271597958851765455733356248940229267359913193367129222014061886162054855957875990496602347211973669186822076233805105071850518977685285918525381269463849363295090776070042396901502291124132972047278199954823168496881107561672499847571699632375391207987028454922029960903472562559634683815680826546354761429464003313083832190636325051430159222705106316983671014245252646949442486594028688933845236827531605767169645242386839579391074918001620442282013572941148601635092142919258735488371476029696613626056790124888004514517870177649049814724235889144995995217334644056594471613577633221070516076449355973957290068567974454691584705835228055555988225112704174099054551424530800632789972086837668683111748089240234975766863872851155351792229862726461426491694804820622699145250699562385854542267937266834981575030696895609176051847167382510688025493615950663355139104089481093639116354076722008437514057219701972987598445581871959761313196726098829337114274222348701425175509494396407799713897825325372512780954494236994915979816626738481308379322736176330193375045669220153779055943574893313652092804849625256930959411708951699895140087330077239174892848783175015748318221533309167456635042972245093824130096622953663258734070837949666313318457908943926547572277673028931048270477919845815848950622855770667257792020917021594999132556839830365261801520482616800158108007877548946380355198102346984239575459777320386468231696001892372892442396121317890550112068479791758464371183922186218250190008998164295099755440924123738705182377120213481441254991573579613383551727849046418237037998013208168301003743258547450662034492742186230588853508346505679046159488556076220138876097047626974255173582002565384062380699296186332571204413929957053493521132613016109055085366343205785013954955643168850435152186159247874191064864918801238681169879736572919160360329242151160011681975752989268688207452552693622275814610115726083493112283582509200986785392386670443792279992685812078707686741946348099813612671969437646662511040706170908761111730345572782901766989394451070091361740429759256670566294158350392062936768296787493910730483070024097533357048862322505197027014623434192098692822128599190802460866275644965504743469171716534670281710093854127298947297917697400504992413571391932000133684770668408072452932968081554762936414535827664075933680314252244333910533261589588865150773211089143799567335378289590932025946804902699953409062513690981589757099506768228007016442736176935478004036708013264723169182899022637478328345893234756277784108177430841670132242828093149199245062054533810537111318072909884715857073535400542801616257945146070842543752190908347423475069180122750211743019615496578543095932212908738884454436469640210872140333321924738867974967150269962586753869290153481022094444436887014520659905417207411246993506599267803339270584117702877487443947574400932189816323472085211038583605301039243561347485082687962650714390128329451016147552794094392463816087003194638097944262963525178530403839064984799939861309972521781378011087441146401558064124682803156486973629311750566864433348740184976294342050523670709706979568177769799292667576107493118810785473337811270002363391601332314134780034213144340215720986798177190320970305536821255203237996948817238869498509867459161566768660895340038499576126589122435103253712871264550357829526637468432679953555510938659933595131929949835330419805518612894063520195380727879715588997080558088949748640634303801525307867874179856469588787640404508661161650196830777396849422031865619158692678278650692512379635792946270618512300429489576812542746951834460720067752399488279307628967255772596994825846294052579748586697356228342981658174607595688574232347412082812477333249450622466802336554830286129072910108233357818773316749868518545760381765724860724823582034101393870227292045703119073837647359866702351891126784403830062468922323113879120422981220507609618043601065209989673246874642835354607951630650367795655645277517468322041951435464391679514123623320174568899999606730283100686966861249460042862359048143141817052450649686640077538935151105413900658228800361314227127156081655644273693835681439437545809448795097252390074580408381232322301592135564188399032439746446471130901418125368982563888627442096729892858130507080757741478432608628783605771440631177845064532705150463547384365915435809124904422742660548383079838026053718483384468974818806128250641324382322560633985403194559798062519695394286348640416878477734204711428233049390021999855839607243891434966624269476117841416876033177888885880775505548179355513715527337504566328433737384328711520969397300817286426855083443874567502720502901640472518680804064989671902503546828249017240627801291199511460186197415679638380602975826021661826204303655696537130219990541294808677688572668404507814727661229292997432481285589620417284369323395773259283186445100830017750701642138092145295731438800734778862889764199485805158066593995572135458356006522757990125352158004245512913379247516732758972581171137179288890399140358729282721692700299329335380416960230073910148872552552956969843415184467237734044856664129305637812677243147824063981803845214182352268883575665580663246017951182507168541039315748948543181478014351960219014970582065507233793646119806545719112231144699804776521757634100994036494145210845656419888724015861084822154370937807745838428995830864827090197533826436383243288536158605032533374927941503692867258231775161590626028894042200851421958578176522279256497454090515311351978382788250573298223450663777565145449808276904093734070189887812787276287431374016388006910771567476551449353751980506483099563804660171894481447391705237841860711817286668235494677224163957614947298086993844054459312259225998098198295800561578697419194625060067552033741387603414387158759038270669012239803451039208749330074935132449251265588421002102917405823100686048109703495669420064731588709699525912476224122871296437304648510859496327482054854642007341170052430521052836495577107528258013009132277643647970958528841486619855425544797605532848604467184398637969394080553989570941299797666112331637022082354698192068737803462741588517711462445426901653766663521152264393701388848290768104668026398815902023285783444013909899961546466555954401319613817700357509281257513314417584757269355908059729818179491279791734175326269372184663372265660781277461413990945454697173418410375414053311770079338030518006031116309967786693086850251005223446322511732149247733944560785051747626165279489430670166432604570253879247745151716499968197615939138929886998987051379803061035238151654675828683885083803622322293602695620286789981230623248298514373257106858354530051963008922432136079553405588449136017009277314346113349306637744338350507701645464358621519178670427893489577415208413392204081179434470887644047814292632440496935711515839788703195746542898776371892728660790984586390958352569039747828270355054367392491320496159532170247227828841670355525330048251262111565556183133937457635780275573675687969815807922370103520153299901395675934749633073465906537520170480829542356428083274985671721738789745890049065044280191330628459218997678667297124390238629158798312559918513162639926367096443304216257378782774609410100134537042394919744825918142082997237505026611573081671625839014846673720164298458450595445675469285601080526255447280308771150563783195263259203787566746544935472050877824287337848353308535362553340529996473732936119867412125132521061335857172643982995851876287736204478812528383288219282773400253407216244951386708507430696089354117883451566032254207792286549970711181350149618432119176877931641958627730363343566628180994197853509336258832917290635357282366606325131125437867007449393391979605971257238017770492169736176043027127899051521250908534153039244702717188581722387719224348699598063773222895564154204453938110341386421500892634149597066555842397959767542916938444434058337952881205905606325203834556261545480089995533832388780329435686591951165433077751870025804151360372957395089051693331356591090155267365757913292538070865560024370730686058478755001002223603940212672955725543444492195766883884032665974822191453908479100610334291929422782983756839453842753104555687319010008390265168179364591478920465214085007965474761614971775480904885747297191870257462964856713410102753958780968124214344806115117520799490227940328425642773963744242649081770944470075516580518327660222499022431480955101707258415011167529499305604691594272961997430374483265288079363035160970944765918378188616728866743501407581598814842498692089572161137367488059735522780732461848040264213911086899949632889588121845208150212015055413328432804827568012318674233234431654820134977882955277689130395455959485038668815590049271168808582596148706813485712704969357393920204760772828315280503271905002690634489511310578659530982833549681623364459990189657076374551129381918034121430748543330795727685689524379125749288285214958338133010398084880745317137015247467191416301586222971862942692298895411091398905090730081468455948701667499403272995203806778916443352868255830363558615605478870023588678158811715711808883819787201156234577608568101323525365988706421611103519888494129581048241009582253858221000454746295425587297380295148428040544763873892722640632569715240644090769604033342531649169586273201002463293247396327762706226744918373088777026434747548957560193427190563246018760621954907455633093489979071507129975852750837790585221900942181639017383414161648734874429644223374672708164270435139583377991287892943521481055386524081605411628202303681257858778206939740548873040118724619293392795394367013923166775250279691042881533324716128019204822971157069759055132139680095746798963368742566999466333535065796252991250945875016875750862978052616043536450179014351534565498165248266568437442939451504081086232430589722752112980821918771109975187604893026767849894697753281719109445742628464881748266072321153209189879501727659372525479486644116194639238738528230523787357980690721179923597076724418305099857857839572695232459175024239262820558830352885669302419020438658021898833732437904288449233044639450445420585456670883179454056649688223402630620248648857274891057677624508727308120115027026057616203755089900095131957876125241140596126182906268147628781670030465920750904434916524982326322109200612335537950822732510551649782662518443267019815254962756111800314982887434179497019161947658061976426289347496626254122057976190263041879563917614196308678893264127378720040162048543783392863563553871555333993340557572073801219501518164252126571511768896354148936185343202902062659723023169625951344822657248556866781903930293152754276558128333309194202478337769862888946129758472958308855836773124396020217256482567457395559248185381096331250293522654758115755499468507070792738419078082048489438574210821820894330088240344620431474754492670614344104601317067637914147074215045099753710248351461321879191615194473190351773512992791362620425587962566590097107086141137099121860474935495493858464556687542926246153874709872127518607063033597812843017151447948433069368081035377503680997159482437352435579099888750788232035701549289240170553846748982543958303025646257164201279714176804695125691031982381869228387544465494794731057630524176761594002558615620410576616464212089883205164080722850796774329906729733363545708639978172199542798079190420615046504717227182824328213401746336424264377715091908732515091323289357053530420874258576673701669725455488188864249367867492706280606694924585288935473718641177785603095192007003969064928948721276286421876859598266318143191971713974309770477044546048730477253879311870851069693284134152224009552045343403321521257461373541143055999627392462690568065719209490582901876853671213632685723091618172261282960852991932635843270277691087993674324848730575351618163330859204750538841952853442329602144342229971586164946972874225509455745430864805459740945428675508879491233970465666518745697401639053688896501200825748986629513712934649944782001875119635811799194760778899951180456609241671445722999875163284583683439479839004516135831076391152147938748580106062982919385642031551126290959980995157061179594384675526758438454498022010390361675619120221825021804849517648892217055349279911997565379630795148191554165817184635697242812731495501452460307033931931707238752772940175633264090339099157134874452877003265179476700420899315057616184753275588273757212534204854498621112157628438286495012445924617624633199328164293360053184234956507635139770888513115167678015648087049388771943672750770713872993527270572635857154964876296955619800494581293653579130260273527857361145751250128464683682223969362676032373057947501871163680747167114088700785285362039158141543285504625049538858995586466766047452359886109559328277839362568443790269341410844120771441444592167634065215936357581683563588377307972225176973499402214389234095170185503318882269791350219888399832396609456456671176933704097552067191333789151277821515191069980060800340765249992756203408618911343760945622609122587844322575780754494407242737410512608735040373938871104238552389330678810253190676055709887177760801626720260559793973813182220189044201940286543237403690001360870597679457006228372540049721643412538001289882705191981725081449209676001964877878414140139594176399263837560120723253127878131250380195594641070405096198330402408657145424401904072230737136116058238589368160063078380332646044219397750134875071421284986595414731216800852307169787524018248587598566432568495930094100367914754925050550734976028342103959479933814693683008208743031120736268043036872627462460756143889098710548458175616426932672391927101692240647686680579999169896903635642778548469023379726085701304382849511497990047732665167462552015572230925674981342820039273926299511650634917124736650652736080692804114960479915192140323976941186757350807946828186110167939998737724755571019179759516047976637395844879831446268487504945557339275800716085507049378277829284110099481689242931398574336840903349379676074843719033284925017187031056038151569311442962162585676461488767791998153735333545141258310673129819944884059809921082618975991805547459659936981811630205850703513557734888610920334022665658009783323387234988211693732049229215276419894403370411966747870448024971801996740385507631115450341766888511962616377721090145878966161566218774959172799234697309017068195412668527650047102865031115616060813898530534562389293236347922579672102163168668793859303311936364863311157643472095548165953625333764895096572312467935101370673841272555305141342275388157209118927897985154060020965016132807472198682194128230201709477164367267411840047857155416197430708747138052394479997073644156983226920450615607792561486584317008964495302128099825697204173994076243337177028631746518841151116493602833715637010392268365444313234002920029265917833313214732235063439549875070191059973449039446855308476656349786515851920698022054093799363078863106014663158128360469418469533842608691319635449402254588579567237253083118884055405605776841992522823181153756847627851635529401755464591297747417669667610851298384173968219280621378986478608123829320680452914801784264456967940993876670025592693771020292408636806545570805216353136087415357628054006529120437102238082877502298679023708424680956894889035056518969120182705020448700120704920339105611781816711539940468283190837936121423810294747379820262158875878362095725994273531810338983854753542157821285946693893202592789645673904232787344833423772929271947543951689698418237065988526036735502095855768420392270535356841418998819754989218053711759618960783649485447776599787088308454650998508392312846841097596647824825757555478936260484719646286473604669560962848557689515930234019605547552502218417813398070522374139541029947901655869964922683785580511932918423404687369848530035022099673009663119769459411781572863483283838149337090515251857290526051735910217300623417948933412905903023109500975093696911760888898292966361697012673758434839011061660547225668343928703409380310144001972210372467699659798373945349685391983934095970770479310676115587355366820295885799336309708733722504356029948458445773153338473784443699204039110263315726131665499593251528053738670834795195552825853940171644747752025776057874119066391368470719386806921312407280196020793686060580432549040484776582137672143166537874834361361614572746401165464005119260904485069448409543758422347831421692819731584965918657856083949468529009779868445002261567698617831500040538226344017264903384547336495018186207092078930390533967366694442705604547670619296142555851178488564644694755703115767373414457912274623496074113645877925160243953506596204146504384165794953087222893168313750544917749199360424088005132565110561117986326928247744071145168050523474488882551142220478596788840889110816252968643110493893460429123403485350515574929618257121011665458588346843279203409749387684569032132938238858433853438248600299141220236981117235474522177563266270810145918730814811536658993124181736351755709823400568492045624214622737731205856469343100317528990287262953232610651548990271904399380700013183339452444759249263202611433214980596301077728385003278104796745032031100117039932700342205696753507865963835839156723222870007725165027718141280167245727620820863059227915835523411246091406860090205544337856790207033755854317988186032035935370294527820230124553645991881643016700105283989403838952282094078027270958930601159484760978044111460946168546449597556484215808112088738431182785645761332097767845201023217688547742088688762230030246426388875700179736183404079268217279385510203101159889903975587999671373370725530037951181391099849838996747238292632240427271926597376043450029741712500127972145388685171943164890310652146350389422879830443327311189618855123602365375957699553051128815191748531420294226491272574781941481667180680332349732305239138509488328420610523937242141085985178874554367305694577798764057655130956867587749410341600590958447854066957905022681497191195964812306573597206243200218283875724183013291439182378623295497351764016203188156667963078001509184787160230178020539223643221514380584497755900589374658746425377615184410149898129601908760685725535702491196804260572194411070754559512486274702520169823182208514494940041954990602947902893847310527021134612797109339888432777991625850909850593823371053052960807547274012822598382404863357991420417537465268525316589018271972999736236108526604975766421637192116303112050732960403959322350271119744144332010531713542088042548912004247437768036304749156473780319899613853467308436408263645596755361366199036157021800464129600710810995160494340229837181518554119364403428069780592765555147560575727600486205787277148426837253538274921736425876131770635314169205896589226932101594109434867281936156649486782849765234931832477977388543115379712114404799462785016793926416086450496679236523004228152401567104872172880586477774271906375972219240437843906425445043497312826692371169335004727244125989187838635028631503463701764039848601855160523034201452668063617361270268356291209237899291719640310397116195861208485571559443969402670627831571774742074990103025840747841093555004077756334026468952732598230413379181021901770497396296399487243963238715450544595887148953828218382582877041243670058027050283306368945204344897280997122557725854426220526335139269214209753754297210994094837232634604793980470118447759135551785283583106354037507629247515486049743429635568210269871529975375502358296129041624499280098990886737753355972082969060536455821020576814408726664997911086457525716022491481593574176770960747234770188986789356529763282614560088627531699387967699662749264862634790594307412811020438705735455506559215794120085812948215880269023078564300256922454634598507028969877731896579830469825824789834339744088658932293242244662403798388936998273227541186006624317082759291477386942673441003260789285664918215924254430669110601356208949887420957453030643214741518172266401350054048104927006390902629652087026179107183908041131902951102632162835485353971443398072551449001164962682812844430530941159570863612170127658428050773315842676477942055776914273441744928594873198816428027050317045227632257791727625656009324427933768353098466929160463105777853251525602287170690655553948020027177325743728034730382187349329304966180168417705227639564330062184919269302519074637726451689021031683369305876798684440248856609198393979383330938053703347020858433346424635370455557410660395905116542587377387839305373413980818978634057995774171227987175422815426985466116364806878367991035885030660774383795290755796192181826776850383273841769686428413135041969414859507909413884984257379352573159681380416562236723765102486351266043940442974837043281926921350561706452018107335105633087010565207408740403246968027597466320442191098084611146397982686172963329843833055314996090165173359332388466823522395538901045613134287617434305700911485032432886995716167172188296214365312669894843058386220259395801944237569973223480089338820799866342756552164832990096870624118005733880716515789156339407096454503495011883892149195926490637213676416596217967402929806437311291198632482524771272396463291389215903107837491609659780347946291584923143967347778372168677471274579018380270795967704986628644746229996549689293809198764190091767621855583685273459124555119971897182564685779156195065701924392543826891058630932419104087847729159449510286220476510177766864735302387182189221541322096472451146468697885452958045658609959061748995017124051577832512000438358259353549009938056012700881825569774929569369184173693643168450290837540979966448076978047598581400834489054937621816800745549380746248428030346098876554469583017810879421537498648918466852660533001565268003770614554295398425249885898200729837420697369082648711168540915195200393146445506027983621751218253096787466681661171529872602112625430785197079947320936883835418100839936144316920042093119697217937641546570680018390815292302589957941949966112134235907321386855711777986883852320364226727138776617654692660914379570844589858059742119408088586453112929890195949591444013959553228396681909888700662615486995437796374976857030031673898395069430658827124532434369181727149232460115513334985234364797218438648238949967835386296373998660734076794175348378749060647144001867225840138798949974373601324569488050039117398108582772136270447206918620885951734322536234533124311471220025674211252363245532336326410042767650645314208751916092426361466734228030774947878459668661499541206954300570551596225222916200855317585408526606636758702380590913293423716928978773079413773108352839423106499629520368360127222986658885711534029265687209812921932187220105403639926193395527733748322801034543681590042356077775418920853485342717640236336059430958050198878554804979831508772567716192762001936350918588987230999873071804081422934237687780631381469629504268464217476775265104555795167273981159556407846612094377685685263810582923491279493224563995175990279709154363971763325054998365362303080104359332111421203892775252774394315115929005368640912714658377948027188775700848797264728461089269134583421264595258899403602537118356194387863052105429226241321805632803740965655974263635090595019320885637034093843691731159221298863753596797588099291082768783730632474343667819071344136544484449359322431003977978576369118192435446349376566157926237670677266774355105744059678885878525294696603560335350338752355330137754252607465337497499960771955322595285931804425506546102651876600428119264348692013460250658272989680444601188528909914049924384366942386468725294138882219458395680058981457271479445111526778534414864137538211526275646025406764675423376348082478203155653040621923670124138749341910008535115077452334672556032557960713874195555680210564872864353728427476910911539245519033226425105122004611805356996084906101335630016854703417919244620651827533357660904100534787975827323943244043110440113025674767655751311307690971702216506151273372645685861785085190482013718223980492470268288197926097231468788918972906850139638616668425137575736290461087968705043053684889967328201785478489285063147016052722006163274033139321754948863439567254152969878571027867000980630169446867722571206771119013684320673891287264372234908702925874417519998700154067308553678940888257153128378322414118842374955533101338969526498539147099101380800345779739853192975046975629139714801005887863386354665773241225535084480413195810430591938719395493414901576659260834386830374440081180514518927658921624387880057250674740467893863472910770235244771618324071594816696407201823370866656082749154535063543058716096563354856479369910515137510564202991551238923480653303393229045581246064629577904382515927644377942998679897353543982645649054634637143075310600716942415534226373411286048670652975536167750813449850366285376668393045412172655101575153679064015490053379209024987274121186276982002286417615378622404021116829522975408366411955142467953612599127426901511339913042957024859086174083225667547873229611526809012147914296602313811700923635306074233806132483305087527177644376131160150648301378822732543377732355379593234374878184553657004900526767658817879265157662812273403586694332871105001639569554736275681986586872713354437698776920319683517026021475068783680334695644162813889144759537573693684960075570164713855067214546639627635465397182535431468380494837853146270329075387206311485763725202776857385700757127549762231362327629228155940996653642335289612933685387561884137907972884758370189331129063733268948574788554512767048219460819461820027329442658947524490306344281697820418240733527004284807096239535342053000852218197040234268737399409011682482633299477532711371705339361585626420914263424968958097638336945336955819929879325457485674458508492543872846001950663510453928111540578207794915132240673880382130473770540362714860796468918228866173481244744216213822862482194040542893774116579133545257446833232572509761471993764983617720211125173086356191078503989136504186189709251969166968769060778247174561969727526477146469317158469717768830098428821435123759855739795111454279235769234473753477641835792738203998797473642676488037439556449419078433788933278385744396288345330002975202781172316503711712002817006238400428206271351703566809468282773765241163204066801343944159800388181444543482702328757754897349082083989315259412230145589288877802354100862609825954271813822712540489154151060046161913640013731931902842538850068496129932822666856114650196439274157065299154188778900174595766335810185709689591370874991680530087168027348454543697222810887321656442174890132208385330672872963754637206276713293290089294383641222757083039526512917072246194159267540888618068679099153217439808155890868413003229753419324823479291976647217703702628832883257055998206152074668416478649542787666593145078809621818794148311173673563798207703572240545479852621087475967162961417198301003779658879432951079237394457416612308191208154376875817889967258797898926584932911567916509601279243668793235183297973194333338593274170176259929744682220790177539451974905253746785149306465928809173237043605541175680403699413798738825453789051392111177085450179106111410512722748003546141079911247145836959579636209336527830412830745921478893586890507854185575474465301553033188448199399282078517214000548744816307539259846028783196724535441263724081664937428486640177182351649516088951696264626168430748894425253298805681416143893479013303234616507614516858895305119505086853361675163261887052370396920278582570567793217942829985698540890858011486649020354192272894989072119875579629480920302490146659335835450814556195361354058351403532909180457661028062163309398098450759076458410422247412067000457875959146537419436599970989408969833731491506213686074137139134265573496029781610807657449516821039335283239948398542655713260093844325996684110769292757317929414938287180774927218278995256987447335867120456961375965199204598030554653695664480702924370096573798330549178100291375771368267520052650773824619081486336805941827780688028042674161119118681557089066121309483620621877420746105186457798423279894850386496642029129751816735394863985561816730268303397014276248222331153850747371209549235801022063216656483396391406239907005612349476946432181495619730624476862581171597652932324033116841478046474276427753790271113012380410856417139606617465053266966353971667083640002433566709130401634162080448354410314885325324025688809410690511758460432092977744575069457759986668741420453992314213549779682264359709912341132124251173828982459420996735362779698631397296921040602469506764471755537838472501167449586242122539159833824089798159093137072828087631431616490113837447960302723827929736893053520140077670640293756768368253456746800730871099215199000172271857904802301856037820093854536161788154814072870069230291053675859322932492604764809272487833456873669208408900657902871028375313175553686829758395737472664503944814844844292858850392407480859748416978516353463981346273073481444146205082885215131287202892419699221636725014452939075022679002615976556281302315645087644109713718707820598908380432041764728183246789198962454185489688149142093011929127818656944970294878852973327832338609456446311507291313552027739783279498684898297173241786179012892464425966792116902993734497379789733965973502000581836527548100628405962139447751998577355683148705872705797343342467860402964730158523771025874821399981081767776424434797764223281990129782435400527021237825733723801856420030293216341162482060653611105451120557693001118177401001808066838694896890539884901506799413525821619358834695468160149178005617189958976007018908997675004806562699465947219035502606373481244328819458502493472431801971620671219712913117720239683062456803691094694777525965862143983607280301307535232223928769292412784152812144370522375313216589607638673922383057053505192693311245899768677843433409710954550574575827684401775471375910100762661079350802656593963070647658564419250603655535227836315114567937370239295584608812078472085979586656005243566782966721509338763520723793625260977215776314575822617219295138791276077440647417837587285580832589977708140014373503442467767288221878875309013551322529330208973447218607550839254637200468193454079612362930791040246672490585587077543912842521270773607620951625902893452046253831541593490470695522755745961005182154220700370626453543969116659870912163141326460457625656000909265004904133655272628974575833153643766891424984810478141244302050177879831765914538181464650324071187006471996644345385451149987463562772161177343764041098723189891778812330167499967110773302202071717907906185587917599053584132076654891099904069937743243754400970444696968865362752587136248313180290151567438769816132784846853573307375896911457761869246851266021855722315421034208788783246098775394140238098758555356302515718242785215454938438621794021961619215679586184525996226955713882255014846497380392012990158124751233017674234597680905769314063148317885080999501601628983435523782153125358938459916798787253808090162601986384903510023958310621727074723950438347534376217335228317109833893944284853270878160468650085255235309255485563225700877166397656988259746572524713182985261406591888316561626273447688547429393297599625005442046625271055939887463960668457457765823213746633763918047632242033103318719384130476585666043094643969550930503263727456770537959346278672012187291011173843385313934258407000343833883830644302235908350999707291707028397406257297589744696271678998152832807287050106677086887661695202772506007211199047756647819483848171484471585852734933681582905668311093392688032870989457105620027465524990501037167658870246000680039775922869642589644442091386760731306933141910813708892495064095291335407940146410115764174651728365745517476578021507866735345657021502125544080530611287889776963738151188040326224693979211915852886846643735694502793775749432393922880220851973485193384636883678224244540594298087177703810641627348470075498945059859994437716952689550477805550353242377684851297991436076356157073485225995710040192677461668693879474055978073998343275963512317067534547587449415183051862228081916286394440334338878632060842337453328183723549806755822513041374744090587552715335165606050849352558338132141588796878884628367333805879591968947078697484326687118768573159295437138851740880264823284854941223780637294206756371193225643320109521659141008809314847842074118917474787738943205017715098114930578253500448744483192352007790629133168362753196402281938384469484005326710973498102636036171497241980408562188297887765613377323268554317857402519499795062643523988987324363483190638006106383521235581540131668905546230234297673368139518020666236504159087816595682579287180707200803596208528895852763444876166564477235590619956310254675016793442708280409373659059474693032055407377014934724044591132264316431335799193509872487348356825695900193225179377506853739822254258395276253231749146401037826400108259212261875148448742986970560496942627411988551144887640742135863231182313311835915883258504602385909496176159945514746587103056744537751901191740604851561510897915818864317061406431772175088039340362828411655580845190714700387437747463887294095929281399796855864484231127226710991499997960198115961069150076656757223830307613075569068886551053081169881247266430188870193410758542831572656046990508147163671722791610487189466425096722051284999437894985646862243990872767040205250024075153788776331340552089082149213332128559407407078013165510465426559858951136006448402477036125174410501406634567896241049655262215863374715196619807657340671978412389357814782710704922704678300358331101897660719296435529826751741340042367097181980717280802112576284897948267629990088512727007701157757834275550750620610788406664719913911239248777738245552694214368104248967434711048569374098991881573725780255519020562519900587443889436536707829976340103046194661824236025593914187625899834379729686070695232392885066613742789013596919158904890401258099205218385164059496076195128125060226338780303000055732345186003012955923712260806330155092494711545169959569342846182192780596929564636712364383186902033294074488935957253379450797852232750341085644451901632706393330082235306727436425464424041545134253328802114743549160630654983702113313418204467635208032258815951787014317083900807035972290182151618146693298888378472799720393297529801000046100657606522545184951841630294644761439772621994217458338368879364467427676774865099820038261208652256883313890001325648623853980509120918463327304361559181744566204690773964207554529403658420850763970416043337226219764224025125856481476804333556614177438887077715398697762118487596013389507953655364480259857294840582006834732377300027767592721972436389132317256344867634816889845615310484654675991095392763448058708501073497910805836844666678478574739884867570168915186842972176848492455242687518628033659272595030558496190729389348571102390025030093690190694286334743702713478639442305369615061798762131276987493523297347103691952409234675799036627425872199373631408658721019940627294284397979148326896523829292931199531000067122444325822810157246650152715335957972550798257067239744367957786115950846242749986403122792868679667337222543451488259312276817339632500581660364356938797443037254463712091143614690779081395608580735569636213591747926404041991241138941622322662999569860610929066249887844830261626905800822603422436344703515480862418325838584331546236239271795237050124065876420576107700169728100777617959095908543568267875934379790590262362131575056086506803601128553177428545306050391702704113514652389229632717793483076193881878146648897248668660301821101642032936627588412361945190160618938087233480371110339098365401595665861157671544409454406138619283732837952358121613981932680097099010304841586856130005389997496384380633815772606000102096846323865330569532831093271776675193055073645119808889357309148929795831303731454161992765976104910433827486744160847983721103314212189603676285163330474098693306943882679759858706522107448864651150957977170015774654957273510086573091629012612779788162117277411790272332990520040560544041401751979734660543381441792201633470228489582746281548487956619074338489608885973710783453341112805887648011861388201511875800070261807760884552191701388602063231518593764042993155179597674456709681295215574188449399918609043857952191932232171230938002554778933657111000673176267641538078090531041809430327645341501132044263172966005022023066793487381899636234261332678213784150964787987327262487374451645120685702689433086248711126783603274060139618609373301200427509654739528146598736255728423791498647346166358098417900335661750715353468157837169944620409563459009013184138970246176225535075350088548096353206618217686219240556537148360272507663366573465231550069384800694809723377244647559939030332240334921594051681839368966092694187399511292527345035331556405264781664421237986988592371884829505930839265749710579038474649325653795022044232362090741859554431680069393410577854260303221676601417559489269727855974120756954678121148738004946064930623843373327964112105419431218726124369098446441313665882657023906107421721213735521116973712929889860290629552012169900519019278267754677503503926810002061640699790318748857945841121933574343969576853956720554564246377833670795436130015553677621799807573658352035115474499694398497118894393630869093509980649347368305534112390151409346078724503428846087866662178870571818546586732648219917361578623575791999374587877081443281887471433389013893784691741944081140866857819796749450675352332840607030805931313798865824801924568991476297220257480615421652483520585206635286044295651095969402780696350233881188904014008487487132903056709987834087993472559766732211324551338428922744730521551455021172670233157164119157503805619582824261227110791980362711167114844681831439617737830350039447063233514365883002541986364934073847108648291761162937800049057689761716898167290740614664804163849904009592374936855970850729900681371419720881969785479187755735557634019500710387415811916512373888274805125750492027160794248479722621153695074657370613537639362992716151776627902671712374030970686413923445321529191285761242742656948128823947773922055603558706042145630625934173287207957925611559277219503020767808259613316106957864281391115509747967449793119570948962243280735617998972584876941143857011753671071308479505186044760117307531848239929494244853657810212557110493967045233509073054860520421573686266872080914029460059720174780397811265249183007170203155465122099413768226676704240651067102146852415086436045407160532706653347019616559562121756081179842013190639363846340801441035163711774690144685845984702935402686311799251345074156403973394942086483985111578961587314854892249880709442070821660549332400723878121539703583157855950955106396491121836325428989343210667421418093151883703931092070608288591484636353905705431379561024337185165392363750182130226363371502142893703122153800079248994061765397101725161764025785932563255723682837528863770195306073029592614853591399038833697182915074329593344340449865342329111734822358451522668692633332371989867896223579981621080539412667295610725234240933436017130949245542175272215724934501704536693642354110041608185308069902419036977688854652277280657155764506842371630658078185767303307228788722952048331039916392690451005785009794038153590258885455576880001429548713646868293327824668482207462482984090335363913227041078650559820696928231835547588912852339123527085516774880109131404208972700981667431013371049109657275536915701729130417333634222465894757128695521727741271164062237528438432172411203222326984743610418770775942318191719612132809510405176610116576137982411233824396722557111580642058366337999439742738577823223787976649293276854725350784722246576542194342725470445827755313317484994268185234955814403129401165095757298625623848048673163160699105833448256109275636473833008538910536873749346452871031999611975768603662946285714483206468201129924079232985278805352113194862307966144659523042827414960352479406299153098724642157126433308171238127382811944363375183506591083428150110349534161993290989393767300570032314401687786600085408613951079717820301003700559286691634475312238851372343460007815629608431527325924578170668867771798844640113341126657652721863574463522039555436898902873576229069466587115866507935227182149593091115560793690668717755943036425929774699330034639668541032704507503690627742730307863842367134652813478878710265041510520383629464649691422142356672436442152572489313896386515323746225488170648885241852733529784873938413317839425408095162882007844912145094693090743960851574033321862978740603543630574137415367065783880493599502911180712141380067084478999779399668204956579545730130614616515988726485841256303038657050693628145280695325527269634629312704921151013757313863443649267473367803618217753331008216498117956061677385462737715595345510339720415062438837465848209883038779527162361198133702843356702840315515159802661200700443355225702285739514107696453234725959158513385192020681555472870986979399204426019894220596610974900277934958740456307354924449334899074185321712292441069307045803314371864807794127976781180731934392844449921271510156792183694304368517335529725614477547585967807488808575751021872274686866873252263013763756628193479575515451166571202075114778415653229177592659904463453213181987479326741828864765069905563307047230377244157220595897752363362920330122497877449134175930098254086016150146903246874500792569734403139138908631338846824618391450362285347657867962115409823199033946243322514148994169270050539983659966515373619137207724310876318399219870982570698290041969897439123415122631526255733669817330280918609969938215158610990320225790935296461022130604435547248346092490027637044603742295030361339459414020348392467326096896379954881777534750889640667371851105748858623515827030830629230939744947700501199845253385027213877002778599050941156600045149021527006096768363781741757478066379963054658398833072243167608194236853518083138247068415096879940622390346507392395015086364564110539499820650423940311154372875982738071521821850908325997504413911877555585257803189289689784445068798309411234462226920838536860113094834061608203226827588774325559332595466185715090041054546301569750461892162897875663726692572646299823643174706681304549343575864077959302370795939502263803241854770804347660974766516341622694841833854937173477534785706102957925123511668420295374945355712700562780405934850600576907368370458376541294865377544489511911944269077465619174640933662606896985426376782766829871118660293032443324859617508572700994356603046124326290200775020749366305456903462528042251724297864016923199033570896258487594441991398742621063567735305237813396567232394025059095821892352808038663071595139003131154280724075898898099377368245439517588002263131868638020900254006462960638445582435299032012940521407627103519548308325250763786142277913853038522532686692816364436126716166915909838672519787280039553037566569457704920070579218198601153484540437692103451827796200301815800889728177785245142788586834368597399448660906994742246311766127659624254153875605320958133807076752222616293465117895523147128336331029575945259091776974150751306925944765615568313905078869753437767225749536021265446659649677373905352367566078758065925160492452733322439397472376134037526033880183882507275838908394819931764251614555953558207332227315787530960853040975130196745130097615193699374692624761173707908893036134244295029260578635673932632493986577118818042867449878337330157372501554808145627014584917697177547258219417790486713658781333515461946538597033043362383368920761995052622567223773872054614153735191258988817201679503525101890870899526929353059810337066271711266351783369757684229748270429392242574621859182955600357765127710406190981101131256156799838128939011033785695841538487103074203854853981550237214760468304056663511215381011337388604685153602826536897358169455341549084435385360929959424339918412698139368041520206960813881725844548832461357200614544024592180199548005254381870678177279321617666332430821941152334425373550750599101108507663767830014093901072837645647309838048556831201925363647740504429455203780354305514685820502869747078648320165196276215485832225157230472541658619057815292270301419319703454774377536638564164256306421825094386628972367415140905908356197949112156087705475531738679406590277563041826566156022681456775448391184577148193211511141378538999679541253955880159669833891224282772112586203116663562432171652628911064253464745190119050640076441712947727515682090182883577946500284081595568298869720239404432931718930493690386792112778709137460555184834730094126467633108578676700097577603379843826659437897758342844250805454880113990505032611338032207965693025170250419127807482420123086688045540062168482896527241302581376167882302221644519212651067293480589968317313886532422802641447762178218637716305556304837409542671380460467694701409938070035230185761079650686656284484464562870230162751603565581711150212384083023451011668886577192142574704752749048573418333301520359767886813428343120255403131982721244750863874197848857567319447611013904033796937228632764744658323540002963405073060876697285553325814651340588057073926400757502989815815351017502149653317821992479815309468184057084444346531302370950028643899486677256968375210909869673257211616976597462562005628896534555022988686722097785410554516107693621493786857365537263863187861822520751696222729516872117988686112824240193235269531430666592406304537869308901742632230503467806915472085062820938109086482643950613158409517233311158659449667974576308758511291223185271263753332832747014677294696254332509038969582142034264531957901760507634528444395896158353633163681775408580004076811136405434299562356151853769786960330682266127860613632555885512387973837876157580163660242620193006539520008067101216532122168422602452301978957711032200423757914346382803998681110766868189095967790530691448881319138421412942809067377708768633414265172712006659834367761217639580716999119352668746472377434886656426290749432404474021239742589406956275221986037436119874371080372081798334244414297965849455636466889476543291982352010947371145971214131406274116588740628457968693573983345562927722521696593025354351131664325374298490890125141764420953133744079084335394378331423576867130182018219651603588280407742837063264524328494706404169790985980584578525260694408629443790656771581577381565002234321701798795292237842193816954841839777801264355729757280726321927963526104387283700814456013904094293061749164743992516110240224003804079177208687711475282947598740225956405206213926729258164035835427062662530224985140200557311396415467623188687300714867823387239072893214218300982543507496595239325723384757932853794340396927276883052760415247720502936323787206041743082251177498486885738814825833496378367679224099925900722895930802503507625973279222615356629415932462663124465021947751456412086964012974560222845423021856990916337382471284143354413155365299171530760814568314417976796790475226956404791528707724609628703010809299118389303043825202926557439847491572496627635963302462237372356528566491436539481050755062875621367669347376742676024586822024192052387766224493702853022893383907563077821639735748640115931526513734072034299867797219511957614190261289264544698369851416573742644351295641739337475034580643233316476296472056551725199036347124218354815432260564988688624355666102188526200640106232073862730206951637871763538969799955401661105941450097490659792609966925808726362238623583284932672256885637746917723913056497869896506479825092949841819264701966844023909832351714509901028987460616792679193592423924234028531590994474872859806454496308210263191118030292530249154178245708499866222145986399649452922243543505260361517165941699340430501463785078731759154810549515859246604785025722107137181456070855273472141780735321743229488808316330389898496151680605870297634551792757068948779491579395085426521642548472691247388610101057059132372617825250122405834205537401432997833869827244284646978781706741892200259649566376840853363182916622470889594512001609267020642128816324672575178844824647055282254989002863629587273703098690406550091718176838616394716527731086330008458928120815340859825935423247257105017260830625046944781700799161953522805881366269290082822049232550311555168878093794155980128376761545017861566642149012851364462800020319811876235365558692336103519119912153911332757881872877019386989044089719820760741427492802727501603660933683938887686055390953115461366983204868537414537422326335495106448058297684731698318375693623340421070103598219445620279240969306525924196644356978614329021463460029177508921732006166463621162395340329893347240589580569506527961567941708954590683882882921005800890374396138494765681869106846261653060469092160235279915151451478249107289415867711981973967562259548963511209485372885051638020146832618808705284856119199084561488410126623125374291989764497642618990496899136766446978919196958248659166002177180554145342973816540003658615761927145040906882353224527436221820774781120407874358487174103966242406125285305250777855450979453083216328733784998356702679838308668148279785707495783351739024591685837458225375775265280892453908328997810430564510154787883383418946628913554051689187441037430172867632836829206155198139241029252684487749789306935283048876612379570570476863048011396166095348251376815065074098009186685368262160132202386064944102328193381887843317234705963049826089435832589068742605931009904315333362281042032672465017109479793884604028900994471502244128814331314939018032048953355256810220095247595858438890293873945688659418467212792435674083621150412778525548212103838717027106897939766814171367212941742176892153912295194952956488836453059157828945664262227607996602253117615756168220623122128246111099143714902353655594964039575813071607121790175386612932782106521947577192475165615205181767791314038006519647174499877965162208045762018005362175079931733533868972573662181646419296927270519907948908753563275900665161700132561343087297866153396375795820661235174793844305084009782450192889080027560915492918748058663754413064794184478978610027587314421050843125531220717063892508121139019863889720036752198671065300277716974042093175850778415719985284381458406509203271539207606281042389232850004939928723164336966877725700247232121696606109082442499278821702803631168649042430599954315552185737236848188497088709017632543158129412472394497385060641645500814995234901815638021051735249195058266030858914401302057046878973005540328696874444802463189281228843337116292179519948367668027751282320484728136303832560569593113335075284194747584398491736438927666246243840661614409946846746643353613472092658897911492236370150381964135236499798030263506561449207988907539738816986953920012876862013202931465134182198537280266504705506978286540271309724933909755267238723088573351935196486905109964699184787576608814451320565126043528747697495016013008348145622124135396374779584792570554661157397183112539046266746376519595177445086655903692155969123369260498874682317774770152311724450966153055885435330792092894653168947003243389084564367175444035260674068186842499239929034230334379008266596332466585162092076255855536115981892015786167011329558593222466605912227916961701919015783511086884694710749953220374147675537809649461994589344886380957332069076424713573008155841101764801718440964256055676690711410564672947892191456004357516826058450083850542052686792441884570906097755020849317309084456929616888416644952895281735624145906748804283773713537565709983564614816465491310612123484020899182965630231851917378942286884076527511628960694471554573130876061823135609159695846346394648577336834464886149956328505923798029605024327702724976335649697915356418116649823188343580712478697727781607245478605599423848091049557214215643030281504531658705826764134804073950444128186239017931987912773127494563489983241111283457189519224697686624639603039999267722740465227987117499376757256710325617241165412229012287312755786173322094623542300677462418367990945582383687382307530617050589740403993366453071661014952170268644162716259801269148380988065287680987254227635100441899365893285857971671727115084767509357314040687198250723472130925032068730464173569488077271094773966627087414687768335071075990487004274128574219467369655665078599565109468162780510671996659992103269039378343325188065489048676741400687729257713821903236935834814857529128436154105908069388642420788129882815149614794979056368573661979231818068370592351189143643698635702092247783284747238505301322658875012569577650306193096241648214334101018104815192807142807413603088948362371352501783451511168437232466940309534146210904120046450882930154834786906960027852294033472927090314584210727596299369668539948680717511703048421456906322768060151606528783679201242028502458793021635274197047739480910263991609876762091875099400323553993398523065537837429400351621191455610605594161031511022963821604473771682901157694456461046848400119746813500858285156248346991948632307874162881892439013095742156677322783984794607580516676007296413479948653447142561714329120060151211316606053866213487409624000382466281994808949093975399643731788753814060925285040895701490143354270007031816812900657144383775586098508745411243313862370308576484342554782175086052285645631302336429036859991292806313055109903905821603009806899917155054665676402939320269961538807334149358278422547148155872144458894134556467220892861494288811333978972314171898149697278530841074963922989621633646655782992075822860034914177229270984852015665021153541684295491872141328711114906858753293809557764823264384144231434295121311998910536904245353102713158184974191925846116342249049713698728762896284690797837763481230856216253886907150554233566643075453197413852933543108760659043625148036315668669138453976386765533518535915663797599622400379294019102560954462026661171310784594971494113015888937875830450059953885776538945468265305225845218826631211142363077633311705225324397900880395690314383955419665635968650347685656995891639521468865813016818143134297433873706347128847603247963187548450356917476050756262260587471701486929172851329841059288228895364420865783472112007948821388891019156462272760852172655224735311453811577048490219835090041686276234188334813877518782813121378842996033957475596717995466770552323103800373507976864173700925936873057159137618230108134087771360522191558015165858700708460262968444507398782073802005596408244023265288212418705022617788740107167034682793194594408784659261392052735319928405767736558676571081376258549679519389989808544726027585946778901940948056828373555952759814438015653491706020150069232799473882025224266085467649829601792069242896302169006766689928850561253942236599505950599096020040227716999536733435960392620319807311402625112397950364527805962288785998691974731633806368950890636966949982244263384732384217650293662483814565730688298907139066469402496940667076384910100517378092714544625538018815738787284493885733625243470315736881036735346849524873468315477007105354898132648820243405203452131694229796965324517287004862619498281379287352052344975300063908719853482640148645711299146872097099253285020271754735914126660564298275775953671925991460448661414256184470368949488606918599346290480567533730498345614281119048997200372339523428704031656717832924776545375531815927704665152231726319507163998354591736632162266025489936676564119460036376965271351768438881817765734618775798816579003097403467196760906552640611767403030675862452620458758711249894737724556566037027495056763633452193720807443544519408277761453156281374472225382222074896291152287863343243093871069407755896793499810565408595406565519001040169122088703224705889640936496778730178557045185311409088918087253292162760076156716677306376258673525438645787240250176732444796140475979813227994374210956542644782863902627600873607056969816006989200907898633741251217305835634906728524194143523439792398941890355736170551321190871806174209725176005539083194839948583742603843868560803847061299617342261538955537241584091531794989623506457660649792352027705687972033131704128964923274404651959121649870780757042499473414246481019323847783887743766504333124771094424667833527444908658393891361301249256710022879256162442137773098989972136726027328834008677181744425258208271244886287006571443703043111963323650109638014543454956212958079198855540033126774190953403027805865017145264376387116699575076108750082146252030103019106533788003086301323860939270099862347628374377292990602492807028398374360439358219217767676472526248674190290907041545586295612140646400457323339857171940843102343331326930798547907887148269595452037618492588321165604458493897711469373495014590246387878500238613160714033189756206269546508279074243560742732273121872887936680299984608045717168303490614481154476043025153283178409741468919712742438312671121973003086144359349771460471084644839814688456662061778666758212661833010932215319448367888990294831437256296647501219895046650134843940321781978608697362575562984701368224692814932772909227521777289709385336809723947862812587242429921842433815027736403167902390995560710952881789872307619412353686508137540186018995597296774823365208886758999592052770108658267466316534770355906512358069171462871996475331786207638134509733415560530151214708123658469352752533163069982006459694009128909472673553751656154059200690679923067533965035471971579554940628452632832688211191288496417520274801754098569653046544029282109590839769659769158647900139694661010437857513231019107540294544463362170968949862145211593592315413203210085345756998045819827303384690646600372746591982685022388794457564254866389371776085530143648976026101285742311872244369128456231454227454543998293898547620293027878258908401687596908391960621318285131788789691918581752032062318030185176610307361657514394499273326316869724824399416152050854410469080102749967509275781488257374025733921439061369830475053514084603881412168992234008611113972865527877930183828286506759997251747630068552923429349567643442933325648101310859655832010697022982794027870045040391186121611871667310404713933604844812720437612110960366205109546712901733744195036390860616858953614764502448062048209431444254185843556186954063500195801620278547827097408662065028534048454083276749622442711685191268675748196137649142898032466983224967360273062084188333277266469005583474696805168981422045206783941691348809672577186041257939059609393085537055647877903483716284832645829787076699016871826274570427734881152862735104547289623227057370514769032961544539004886584344642016309014701554715602196725242769853283755897953315286293542074839349891156343013273763800627780664351765821261056859373421342552923642130054537236976000074260895471582166028125241127114661610140650671420167661350875693682578245535280090989391374294811331774700152977295598586342752910018097934892662928709119449948066684054746231869338510226564707882684320794993071917105004573392639032967433129795775003209597086719093297103052242136605989058012899718164349040451939309008930682191964995951992398219532495090929892571302858610695124735255321964450964787223288736568632240890466420533301530961332339563724110119519613775190214994406466155687093435623245717960095893349347373990229764085697090565622470887670055143092262837608697381609502509782866724105160464576330385530631629341517538636696763524048893589455180151751102525856080623781579048754129166159085321398577949549617352408678743757314700837359132799800638165841230256473732974505438352634697719972392363897008303066567828557432154450262176566160921699477739508789345878308345489615411063344975897488512700815323492403284312481833712966552031170853504484076675836939613585413254888774106803372615542991637300353055988729171516974411133983507811506315300994051648446834578725085600084571191630271254223447166660851854857227063938806759357815077760660141456180070095782995581574840895727579044259044269788500228702315305840637593281344052005015520116145827384235645776823065702212223881520374844000429827399884223954955756645765676592604734571684484967756673181081139137785539301695619619035648552077448486619592964865611952707151127107192460427377567541015706335560118782691198592133768574324078953727713329460484813054619111193875484385402899222483009281376679378985920297749373406044401876919434473572017736898496851274285692797277242713027804572537098515201408994609950444741171656452604654008596502312358286225400606804113583196170344533730727801576182710998025251287087807172831710758870200688398301365870098680120282245469622771119023731377564832757878052546306901283090438464616498321655452523087901006353522956677214534988714928335634862201478093612927422125578843953732696309993815840940839381039570065758699743657272025691211250592116997614879512184896554040909602013093310116442559114306731943883150088545973708628082404272108510734708932285231205044233449110681671183079513326108397182813737130107417762050288236913701085215319979504934666572706492340032721569687378175841200023868293669584236188816735938508407737624475856109743757800839488333014369429206887933745370485516959129356069797499855981139751612362230521238658335717812637725728496538717872547193728631233695635519402069825454669602448191357247973057472009944635482951696336324141328283333509524417271765923224079047763690056912198394641313117808171263146367096174324775811310558794060913811069251144433395208655560941720617888486767457992347270325295771989461048889146219211590763376199419930534363277839831355095807952620153430576407184400813078932263221042781890663353887284574789777353090790653249547595920970823970839325710938446085860478717551134428275825136980623270236555820303504198632772947636465410061814665381977959726254115025323050380673626931967487920263431595706487329764856223508738894234588547629691258731594602434130946665176989063045694991520549446974682531069551330804369724409312102537315620126397290850809717844236910698138652509548613287807468921904807281833731763046822107193547378954844650937638477942514719017949721306155522923493517768826835667663541046713596434425453971591119243165563565965389485720823159347138361821443898046401257572278240420247816506659386251944712144360024582197107531165342468484895671645172734655757362793755274746040439684030330090952965512234745973071545281341658992323087314882615560209239123095983592084610406963693532660941334438834438704238991499499824683805734238089264452103632525367514667502458131353559159132348076645575664530808360747341123104627736369753004539078114750517494581377700848363738995532628752413914898540311545119184688754196567508110182251435181011841820215452009028264454004040860563981418895732614769479711856572677763677968451928654009136018319128142781379157220079078134716431112706886340170837227538487418044615044159967530821179144519926749400868159636216245230934686064914854874888955853700326790091812328066157497356960999209305553190949586336302544336760053159786084965735660794243578834841098585799565342620465900992125623837794440060039174701701956575985124961724561984101223480330250563159666441665024911793528152187518185055411801009214457450149679639118621766497851194480683244377524725412240614624238749209883985835142896887782481243265424662403447842162808268971712432126470967760097600381782945165422654870773763854344994007940140862978887630802311399966462768024129035572929653014924554015976208437483612783198847446337604715775404270475011900951955720260583049153177142588197908041459434218798977184265498801144025781997554252040572605577484072545926709153545317366096753528700077948395930200202950748367215852109251579357864030466626192576854505698579954442655970314955969476341058927108399143051569032408681819867370524309153712092779160929072084026586128176084928926241413509577116945433225632038029616123755487862488655663930064330876707099197145606622583268775112087272544881294463746788373688697665207649918708359566551451495230184052019967255267328843759639808237764951610793105893890783852176744806481920602656305043366250186575781186635187763627191776494574361778386764917827608235568357131126358743364513500081114872959330076904402078533426149484106571559988064047030536842522160137208079436903044484968351075000331071454365282124589873411961879380771560468617794662153824668396827776093769403559221328848622620987528138367902769660809803184735204087533624918816112127432941965468998067862699347601236332576197392897389374024090584588410151672962138820464439448297834395805089545231301572106971526562353869779780672138693669297170964273935874375373176503867606412866390503524666355612647875810534340519655571297749065503366928210319106530789931353188712063692925906053816558149392803505765092762024816925993685993542209251517866670683615670039026544145348562551162550229031036635235222149384303202983697971287787866368328610217583827952188132353709688027354884349322959911426032140878806963783628591552535305661476344702161408594573091587387040475540082720224417155735095483691292357598893893290053285741446409395785369926914443552033859935884929239413719260170951613363072868332092623354872536088377266708333309434458024288051944948210381024541486656845161680282432040502240392537128154993236646566105048878520753761745201678255370681367038145852918388139698505037152637413635855549311402496547225506142749958638213066838491907361172946712423540458487031417424395035220057486590697403135001111004420391045229363744344868119588924112473192957512954075241485862680266907559036827804712460335740008785533453838542795195679772811102121261507422843286819940652180184625559731838917631865594227736904599684447672693798357586091794754614596030819021389436365308641901035628947360372315839127749872063360172839114231883932284310956916147663055833669806381910794640714742081403177569026495864696676446873673477377116730682588137742631610115194691430460618140714156840912527253697613300155788175916729142206231860734926584774879025567421236167825666927086108694459172158224423783832759091259627566180279355852730280726626725186728250569836053538590374877940775657706047450755394097484177996195977564095742607728081611090241209944344671029017478783927073836643533619749576126396299995828808753980358694678857166700932801707166848935316480597457995875560201769707086798229533792375119172718596702832454265465976259916529340182261829394299727650924425922310114118631736851574981522436182265952488957537758858465109289408644156566445990111223613216888642393372860163682407870879691501928876893546762658408683962251801027952010914971908981643966432691773122846382962769397760682016119660282511694530708216409944886811842886049993273055246612173654746240671215341862960414943581231431505596249965887819249740027450465105781983377484519163857280034027693814793205058801011191585594304490083182555705777441791709098082612781023328693004771662421558856788156324172080596134332526894149745399330003583494836160792544103445046894707627988412330505235205341891964650537037774391853646148333092481816708561086353697266620112379644248395363174767810132340025563348954709766541205136036085352431817434049239105497738018945890272362621524446271599260528149578661949595136991623120969293393428803234062263662297990511665718176732502847041451774975948074762741619003998977078486259693126007726869067057002730622121101874612737050316773874654996430265133089348024766065384035894460507970409715324900169354154175423627915530737615525413423829296278281826455724213682362122543009953042459043971545587066081227620162628314886702570485202886585060265783187057265158970532440961267597051665056733609305042008187101595341750065725715084394854297940791437919516763046597904380968843177554924855215756251430286110866305041121455185292052544625127524555253724949941110855050023791828712618731626152155576526782634241533817156094466288646424043506884989381760770722273495150084386186685577792371774756932236133068021387453904515178530390124442881607059819193639817494528857175873919494427220982127346017877487732212483386737262936235015135212970414791601995558396362469807452747346830260778065422735535726439397184760350140138663013601320902298846711320020422038494059436208249089820571227131943216656510890034124380649201561977409298767795087364549619547350765207920675227025591495842323645335497086783420001947296639596316430370213895400108085323807829320507711043748040848261739029836156982707852664413998038361425823119252407510130863337182211875758934703859708938877317941565943538810522615388444082608976834537239070799383021112884647864062953174358461813564251246699389384972229293504148183022996516431379243264068757914624718666318037789329900136582381210138421595438419210583483148614557172240691397446722351030848359495846680305840143576899109189052566619166527490429811307159468557982309861406113971844568777551020348242103725425424684156989788386673069147710957685339754057485473920164276191452351185780292206613380281605521529179002862296467639718596494520672772833112649650253200380881635919098316364821701618917760096535768989416431732611206447460786017206141817469293492621852616750198053678882325603177376826246029049405001416545708327584650546419531777479991157961698988297159948553152018958179032323728580601194468201512425347617489570130497167228167323847095468251879142765407808206519514112802140298823752521313430867902806757598564568156822119261540376981387501390774885538553211980859237519219241662289847121490757347250722802963456596803669480375374389452703633283953923011296179346115093112948552902436641901716148165214952862220968226591337260742947358633549724610965586069567528668336124888943194879126187276525590103513070106547708995760114294547744543258789183005465813047317241510909272560737318781643374865494367600402634051463713106240910193512623423081720548627374143264717514221289033070807900044257101863848345173917951488355586629296933513409448600090443248214927415948220427049649771030454440781467207802001610768550922057403365362983701463402374928562402121615292199796064732389346630526675228994455577810156518389275818566158717908859704790188785194396813838616301006448022047405335130240318242495278622242625453973826955359606542227915291166013100027704683669383096186083529872510841895924136877667962213453347395581602351358883809559723617487562591949693822095754817049665101081793975546572443487467347984293043695435806472254662864158422323266765476169950324071210306972194279416274603175279485882301024350493475510901485057084888122729925172794888334049443372771920070643896761540122108784724866014908209816223002112581773293302737287305546431458748308856397947587205901332281566836711993965660488933619330489860192734009870735964966384641825655312665962619708502024863502181906999770941208457280141907502447731285588970262729323542186924290706375668577455790965444825088399905155008342177615911770785252818043561194569157913933826442159346598429907326046629843144608722381645013619969993941091118377259262705932292069315688630821643369907310223412614039432462350259039127788646937699287983083014547352287971786638309083557573067643560772329348063347235882570500794669256735866093295813596577697209301255678576107121874443925067498327636862812988924306989178870164881566461897673555916742744463197248571388745086098427157380317308057582424283849226541646129732996600288014031227301323021788224650956878556264483721714104122317861581222263016459179904370036246186210089472075961308700645740490471345585866387106742939455022204701932099416566866032240120960671806996089252640899332512442051620238764979854400267870639924306384598110254343599970827891002018115259578659198532243265037689965724312337897891771570871270921078798783052429957765495930316619002915250183670262700296438459476266510944931464660685615419728513136999750916187025376428662922786006540683140814724846909368549094893958527618156903285863268633865355437610437808742523433067371366799189502046399001110872557843677142266079974967728477100746173703728731980654108678570008322894777615811584873243647068419872165324484529838071836977388791158950650571633184656436530063899269332000657142632054000718885839045053712054440482990689888525484456728904130922466914780446965072236580169287104784633727444868520811010835313442486982869207481045948644742324971622632167612574605471352902381966510578637755250098537503777824366555951618384823891514689093821772155607524192902992513065547789361024785362776103966484767292961586197233258590789923275823968353975379396287134234563968302407843561920095052988623424208032714615573804578767207928756235629812204252091357475901477142359296828090578823185692293411363632630993943604086257594622887836943325817108220864068006917933594913556373261332411603921678635496626752501367112761065791866867640438897946062249818296093956532249827706377060438669070651463449963600123441113603766781961554338330789624531256849495027530566581561687655379516880334565611873107669757215691545619920775298074033305575698440463629453040906672969509740084587459497045951111506517088858450381687378789553979437531776285442185946412670839395964788970601832245023173501952727302126308719348609017392624261786232619229600603972632460525459015115477573180838517714244342544464444708225841651465172891026884313422274220125625483721136242734126896732950540812732088278972176342317334223926972599004823791598075595375795389105792094574207026375857169733990133596075734920190695789241472962376691790669395258936289832496989880666202601506399380626902052520146162188536722409592825026279348204770380564905455578927202209857808263903582123100121863096198246294924150094201401942926484063722648172493215895809753366368390747734098046891795569881146162477507213487333573838845357741071441895797495858893340826401781100010571409227048441246202718103478267266884089816719030989858723944867177052297880926029840521027197168999320223769178055114726102459468328335495467933995276494650679113353121258086339791133541203220740079762029086230568646969514965714311851785377263001998655747039691460040034294079344793023652847648638877650055165053508632424274816924400040261648242929069247273535652164919750413090050451933741682468197868312126436673380055025610909560819806225844648321085714336861983680273978884800010658738377294174901240081474075996572591934692618664362711086651483170839289740597635894877110043852494111596518698786532122570925335856657022066944686767133369942849102169980932234801617873209999849063697479984582673888059656034343278505581073424829588114408985901466287823754789651945961561360035819001069744033932502836637913207870554721451309320131795898927977842440710170314594705798760765727935180460899999401183684213454865604863487113794616781566876411441005608015810040273425023018718055173435298032140517501512507482115748311355579674900890409170212201491587111916994764413377002475778893988691063112599719577694316840783146891664859203609784752561108521658203894505952266937764373759362061299154560079210614517033186612356502870959700000080031954507008413995105407481623408868011689165456781491268758616987971513286599463001395996131541375993821899581442835271471342709374164471721153414709248917916653476600377956496877909883717805229855659218471347760072368374404650626711846696839529283550271877589624938885609382007501852987707347327308775512431886377123317823631280532422256899627361407930022741897758979762612067461237233510454293169683370448295236978472379350770847932847369954116627567133716366077271652107383111953936030733717307191391165724339374542792174103015703858544453278057962380904141968619509288483336612533361129901136340805933243370108136849298572673412732943027712664674234766979621389370915278681107799890412528077483803621451803049105499120464469459787813637136285870680801665758958040880406130550450128532492269013265256655866542043806993968250212947626660579003847086988961540866847765159908887761077327990118876722120745675913987607722902036161620896213411925495522999393752620890362839349655973536911540433952225802858580673096454705186897793873072573870988197030893368538803106140234731170570278241865989843546409519373443680304925069644976800683539214488473753958705570635041058821576862770503317191771270156821784563557060351614344228870802458012622716063284873919257097436130620462333306070143447805950390784500449689227371101803951364147936740373054614343137685834303108535932458882707836293715746474346952180848747968825607862187425224138489572805779259169691986671082670575323120764201264000657173751340735984797295921739605835955670154868191622221012968022936447778327990929401114216918493951241150694119911469657055197396715915280207594756998299251686129032322652857301563256146116196832878113813887381590380832256912675011538890406438990967803240176609489043916025792020621860320299388345439645878791303228558977261168103011295245765921483372962868790687469017981312814629602507294233647715443144525460253876131582340107743187165898678787495400393217059599670662338844041608663774019683969704012257437420675059222278006912186083833596612354975684049076926038845513666319332119937328065280265970270285451988848847338910296872482170496758466121206007575594315008675576985273019931128961861139637880629470846886806060012150826950178386440267386118551386207382913672510746865856532138417310785567713065048451401677523984940149366942935854759095344605785287274949905632691251326571915743350812065529880044017178056802285427680534145091980379831157286397913276746321578538258582811996173639691497338503833326193799344025549512334670123492695861365550878434605011055482389865214053368153038656801801110745011333903893365165825620379763734185223887244600681058071412769290105637975750844669901505956709057205312527727596829869790658460244527800099133621908461856729774389880435230624194191198987324985814240146917535335967451495888073438670907964328404194125478442132927224594950439475496660746356872235962564816501863058074296070163991965274249896496049085866408112205346353982458139018902152308899113872936936438754126240700290484667320876649518307069890929651188515382494587649119425049609912327144071818789989672039291329588241197650910117855212425679244663628722684843969366055360394137677046521769051937688762725185878832063051900122695746466338066746564583848337991418514096825573870070043576649111521402011009580720519515228046041617193201142482714548220146309890590274058657959355810564777992237583673516161551020894560762842333438962637155326714013858885571085836288019998528398755502306798667168931105049003132226144017491180977984923860025359930535478594870095437089033265288550330764476868759257004531394177851935258597318898836973281395325909594788405853198538966893432446344562925781384411558923435959491332104261885431416173787028616937402964301656321604854875469782669690130449263525906467616403570997106108379401043302231587451679665013633475099653122097434135769626152243141174600119548150887560611100841318583041769596483478809158592292559342377956403212736129162015650605730932543651095992825291290984875872739096607556090962962952805362993216093922197606463354568887844218171764691490618067058189188768841355744502831159024711742503492951335115915328445088391881622126732956817974368901078028769818156200903460408660837967431641521532369617407331779168900251135234986564461862326810783185283649136911804070085376404782683279714603504532641391766178368064158335497350102614841225973040186795558144710297498014253919995450768321969941806896642375196554569767213399018365950798457546767430520105462035596827178479899803759680501862855870116968495656991958319623798199206256483400233600307886586413780252172731254334384706593833681704329383029143419024061800255994772003854029152531294590720881582763643404615641271174201096375515456288818505794675049614596270280622040229243318955132015652633797691688264983632717795141934702169562036640751501415652048637185166855146803965830432823211649471064720953659433144645385576279074300854830201769791517009518788517318002142479451218535343676785186207818022420515573015669950385913764448547457984807889397272568973827872496019159756736653088236606966853965585502319999750735469395478941646652766611492095468369181031346899664909815065954922607218170854595222660185652196243999730185725528906248090235159696966348015426180132330893317103560641210780698322746544168572613690822411906946499989413325958060283628516649784724083181163320151579075370666186409166449845328488474555380234824732448706332346786899367616694912004491035209828154317774231163765796480964610047387934703525750226512324201866051141521081351548509119449053951901632497525507973790337338267808324518736642743946231641275914627742601374197753974327538475023221553783404456125176581572686167355186565813403931881280707698495023113323894687410764995542774180136461632438367131260044642059150341589826906451310081789686284331498989926754849587065046485815164372789376379745701375373268438217009745632561154426744522797076018840221156808381806018008071779958562093425250560607128452867874083208965941147383601273955231948818613507626055935626970076332053911543926814107066541232733997413487625758319319590996062938071637936505174244685035516126376265222429974404175271495849719334948462087506693795336183159646177844050414069945435611660807610829506605496014462596557802086447460695514127717906709990518444378971087085918793478266928192026590200686234437222645131463978180679586608689783589952946699059418976145298827304566252837100848919050607774493706921148245216069737943219377574349144481496167016601246345806356867260581122674131403486559799172552088027927022780649338597811306662937542021592282670277250671751905350430315037458120533050350128699717585870095350900614735190675269659039361220806872709772511864816407346019870766376987098179829860233575103273250125759489751330141751356948440646543745966704385556862856277456462280943179953875584043848513097876949394111229526958484958554847301869263739944275634940178525676697456834227217353797213719047874846925740339246981892825621382350999676197251335108156028214673595888352658263257044975128179785785350271117562445462785466488335119591972821665662116969421601161794851137156690323269465072569759522710681654326418048152563984638059220721378186483644752917439956500026591461032150771655288296160935242103070107042864592567553131816893613641556925575676428429510781683927493239717823195174852360965145755754204962182919400221958643741010899045321921777856393032675572861471424827699888298299515829276415804456579085991746854762247917331298231026310235279389452117133216703357564964747698983219302106911197937038287674251986949799061013987403914960001893947226502873664989352136472786230965530846057341456846861568361887710869549539500180422188376552912293819699867209267996545978463947713216077210228742616869660314726205086071183637606272863662596728366972479410157577906118543273406299658034455041363786381741024052916035626021455039169313277922003765184301165192756771853381297885212981538583348878734618821643564515879537569756229052524979056692852766426636687537932293846560813932149699429916409799244494165768129590429850410307988322385145064353385428955236029184038018428818430498400956359193003783756370519428322101339555180339193274386590564035883026769403779874916715983060657274286212498668881695665297728116515741474415603371630331489479976085784525246523177020290728308819949098796783962732199595070638408110656846528688176957248948562413477831855214490038399739991770336527966265080356190831216850522416279987278813953245834527405769997183956283006057072384249956664444185161419576752044991395491658362074713761394132249587295236686559946427190844890465172133551921791292449490741789422544475520393880398184666599306782202639955684160487937324895700304241723476374353258137045314053529736941230635573449188892007203024270402279999201471189199138975570448953977125771553773476032239086831464234922417796884973132954507080764083759515965528698359507808291571755688132811562168112990315724046196242688374591592089063114606538554586130070034179993282960588684786380956596665593687089118790936253623311266312433499877409747687724311679800212794881639428161352338702320726974385230842247324920720307925143927954010779104326609207540869885520560668824084873194651069645554618484033902073317901549264200252446137444822773042858454652382383757855402360975136778809964568228492406608195234581934952126108890998823185837009323929229961242209048606235036858002841754754061329298942466520796338672126522265571087752774359647781204276148513587917629689601074815364050505909120946965428804591488955509006837813153898269372415145287350662839127163425868768053297752131522580723128097226706968559781431131351850034738120025119297203658694889573959398119671516139753544662295717208908138939207436195429616662159590264222437201665815175927489606984580951562666476585024623648364332052143656225543245908923913877398935656314829165233073758327171386488725141686977629736550329937365602166005351664650898499056431817466815364219241958318104853901819600815697365443499884178123217283030876310176105923129921749039771784392786865605719196140663365101546001752388429918525144749626137588154569357466518341803359409694375219568819146577452253600114227221972250779355411936881239403392995357034884179910061154794317222776961033626436620976634752240420666232469186385857705933843097248183231973223135859485993532764743710710807295692871079995915343950530455176400558624939612141716203480207957267976042633331102855622558464761436780998885435489104615874793405594912735871957460230253459204406249921193727940226704662905544925450181543833827562720880728445812028249238489073956893569032146225224551294606390157842060055029391401710816526105697028724287771941330006132430067439979032774446071496315755192991025468514806307175983779582433192542456315573876763197924078354440088634469426736638604083910677608686341915439851433123237970979089195799253038866037920972351307945819040327701821894278977369964409643416615216353279924888398244185738666355745134815853471936182653768687638499325028377635274179346830635947371284255065854321557658729175682813822403953030168868066286281791841327479903260452534696099108505525788676371194167591879367024281198714737753040035823919866343369653027100673373096070356682508669238467235260893647183541777577687799212423302796301787194600140190148544164245671751171823875926010717450943157369812666464288010107166567352950020459611243817718571877030530975788111874048928418217437656563340674248701115356085447382276740577259021628873656441194051916997930309190229835012305225068825711268612526482395411154978946450065528542134038884630772420471696133448219181795295834232680927036587492367747586832709123244241700455860288920950301390880967934621644100865276073869779336115011547953873745408006718160147006994193578408739727004601436020873242631837548338969870530051454024630288843451001788019844238360703373462404729969371378005644041367003675451376423982717188192815471969376307604797851906419525809607893582495511301266206902829664024794199855395316241673105996011820858514997200432578486067834987700972027439131112910850357420986936245505747207472937117662387559256831586999903900564429007506194727237620165382476085127303791994326375394379513844513162409619747155280581579582677695328726175016107107787991531690965560701391626497808511222412319300436146967730696515804985962501810068618043051784897731942219974920799765892385626681754771269406367644515367139829782274209819347312530590593731974883306302367847705538158727834705148221679568001924690374096185521642542694157092918035238574526523854788731607174648691712091534793957060176835995579176856851758000981002413494980366765626218835429104437148405807896456188507547256596350436016150831954734606632131555917900613296952534206758936076721396447528821772413413237625022252408908924236441859378803739742481747691194577653678673403112988097601341551977256029520774959821010797926553183674992752574019633554465769664676428211592014313318052929495816150128862499837186061933638004592845540654182951633983336341649230348816955119004459349564052158127258484298462444956090314438383744631771026928153391364872995819968797608863804004846932426874455538499812456210412096122841600990508302112814015760452871987785273010975764785069046671514290253057003764422131987135758352465021651698031456331626043794888081204287993933052533975181404915895295054212650738626166124700477392434597060308729031742829663861002368982445591303309230304921905603274513665704898344836151294595927608970551603100745123548266504711475678336245295263336557912145526279576453890773064401999979035565421006183460386851148742313928095339516485864062438892188986652921192027026606288097899437269697783394196847231717110236202007987972970576906751353902431950267435885915724798547470565923433759599631918402233150908430772063621808756572869384672790605525614610721022760992124606753205425565917659871317998715679416125693255248207065335519116058008619774701937698301693341010411618498820555915183333362494723848653894174189682419355329117670123858767430752508924411413138652033450099633916486927718642736555127370242857129834985781225636169443654229567328906644451353771172450284779053788831547183296812739354558901350123391746510691869823876985538594012012573054104814155546424689607333960392709034624980010568290373412909400361735992936611611050501602502949400162025390321290665342281277268348798841491565239895623780511215848089494428747603979334036614738164888272611281393535096805662899552743441412883204955839557466428021165255505988931068962753976918845371375810324867501888498475302254683236876759974751985757611097394177217268485736651362038210387116643223539563010481569376888736337243416215248936407434132609530750914672416620740106711159857425440049069436948090364912355091798593822628586954355452598109610431003191031790136717920698246312846493281329942755622077632610885652877341563890696953822117821531133583408752633332742209730409140077454212503229406309796143032340840951171296123527279311143710821023893329502735953382861651750584011993450220441277829811277607672876364604374098606486091257323747329005336257653234383561897449964589032315584910525011424906801929929352553241388999941212251001648820202518956782783478166920858301665197724257493516773742464476097182618195006930569937315314923712814307631789844087213074332831393556797297922648220320724413738139393287895339814450120704992039517052230548646806218757605934380275276977139808505809452882278062482329657504222731143238417716197083402063234549050100999414841079425512104301061627586055263867434137254979227565873597596227620753907620871528680471413780331932131861118132780851835139453969385797935800582146308507899737480502795226694363513569056703503466418600516506654463349205656561669121909062657862135982411233771324709731189156831527113904056440792192093061676595443075915346136608503082400692873599492135718616168450123658574084241344641856223748597042893190140835549670771231834436976729430463633547547032362450399023918691891296412367876227049664178480942408262625324255477673913527434473425060459716594641087371700629875655717010498934559852568869088428360804233677593078977627730300680637255042623189990613332047440212794153620194338943273484166703763285956707754747107682122042154080421144943373383297907285045735325309939163105780447925527666297949848283463120524736255012978302092948510274416999008386163041708592004909305075000731192542989674410513310425151108277242690599675547420772385262783328673936832675930976458361077565847973989221518606386142532615824034559149716576597951387293663776923501443252817741728611751020786094419415126459092196847195191325162936944126806734045620681210213257913792591851918886329932814326646144825108115066732289568893454109879241432929066728633792688756249605080300579341994878601453282446538307799668504409701391131132958395019037195582395726493715929361485919233055341605836059523193517454209299858534895331803745643219093942976642528465493090896915528662485513187499456326810933569726569918977314820572407677484346127182301384652277099381894587192553512493459860586612385862425726053907303608162583915915567958378033530275199789045985467022980983896083963120397722769948050806527193456633553248136291742285048377796343262125911452218699160325185472185316972538233605901004184570291782810217515879502127157257575972075449880788978305472159747300247403685803596998908507584160559739958548158704478072314501279699319266716501311693749059127979792631724097051423797151257416055914615176261406178315825373266732302153764384846954591545653724099825509019458501697683418939693762776380809428994555402267047321917641126364721635242468746246248749078379393629272378615521682045549187743493798845183817216123897320830030951540297324765284848780904388495974171420665511836397488125183491605650885929880218072289393178090294431731266310500771895482045691523405781123840825867638033236779505313235963316020549100024647830650210082638817017769164581829165459126970272107111262923778541793966417357595348427264706469560316300239969964731158612707485644063426765749680765630434053402252984733875429885872298861216761228374642300292096929564728265003767835635713633280549232497698578184799398731571700948758814458482442428818846751752107975681804021101419914801160478492376423070265151036885688889028702933683319752676548481527853181947507060736802496870849688866345229923726212106766731553799950953527736427924923101559741202297522508408451476240412129820308790089985380583979887592183200498329504038390514511379004908011659561992692639720252135828945083385729127443829788849060186090483841508423190818328390424514773649592971045080354932217161692173129277184110703463594702569291555274492822655517621018001376146188603930467954446539603568489223605047550646733309393127918875486405282362517359080403607441698665481402778686546801463343413693620998058925926766683442263392661977200796558608915705864574164086073295547306769707842721185566529265523791566587754853140750211413491570066369326480781078476494697971492458581893886554660813092289566718877375425033049264343482305044241359896913114891333045903226899282497598945009022053003359482539103596929081123988753461646444412399929223895918699421500488545225138638910567404870816653663124686552329962118054537150750391068958941421837638373837720776161141084653709286439294503282718759221208286667503108998719982295814761605799191081767379620086114040454919922747378433896027960256895198293932369091519430378560357854116589874927606940424472196158590232852697850768570638541314293547630074011325424226511161682385610907614125248464276339967635328546822279222204364440525920313931421277144498165100330535897838091435200622387529388284807832004152656836672061138371540662296506755086364515602283959519843624269561322519162500429467143743322668098864230999245998949410051398861153454444330245001537918088142896679012678507192904495619032328489215469084725988001635312842765544703670431905815705775899023178155477251661371983819492859365811838457325885677386884850317564235269998981190703325373746460272636063170234253356563438867829389441101639527586196550618220127652285075584060699317610653559633342089487973793798440212250495881500082428430833430281520104528646265252397455801182551101649387841628018403210077341974413001641294668173413455414688917340907212094972213341483231795766659791813099044999131017370950643451797870536057188467116333564302671934955618782088204689336589354888007142398499210328489959121805248542399626100981224453709971658741526796694046655387052915988278220522752126570789965222113723660866526426781454776472371209924889916535360806186357001470432972109363469941969000414601608531592894070502735948522994572109296889211958734838911185894255628369554117096207056558831901469911122247761668103411914154491435669748025595509619842175616058878883645625724994959897958426183125282475397735452502385122365281655158601928137563366070919229741772150643548212160708469423174335005592948694876123859636861671243193269706428902605295798798063813106172054852082650290221127944876355378277010743751403479030929446828077014721993021504783482424121124932835209824623082009257447383236385737702986855105411680713013281121936688663091728760720085731253043473130908861717426894903423290066250227504679061410130402876186929252527668280658114337074226232786775866274637120244358767693051390544732234773496722136587186601703023846171576252256526501326777197006609092197058663777523584057075790839554486106917178367614493789923715659979300607758204504099360024869724401752694840185439127534603136282339589408178878547418251049933165022731143410479442690012171289881085412138687425215773691536402800182155335917440718376656457005100879282687594945561710651963284180218856377587515620352663061091233213041395494106707338488874868424565603583066265287179331255800070476134775553201250534820202978941240007036584005501273672812663924090086815414468941057002860767348107914934988048649466489019147023113279474747924369081783812058527099519707231312106974184838224611929121468546025972756175911453246119154026169943328555943830613974763770123620978060047454793006809584945742698654037713183700422936685780254427755918319126534708311381082436435018353961746570272841009049610076235345288153824666298552593956793446581185021692588370314472437143051081186954401330797701890373737816974607236422470457006915374530961634625399555330399918701614706183930093777307465692297945429606069209862634103917377855943779439172705662416650822233351267366110776306309830041102214072960253815884747494244502897657776855759547566503145229866004897880511373494929535555838282003239427910526793339256033836826344296037948566482799865430646912359079820872070124642574563680964659415077044574337504609611273197290050224035858864838870012982963866722620557153885651562283471003884516791698494681355970783460095327219410551932770869997762624682172174486930860197752838429773409456220613879498981426322785839004123962495098640061305151464445220779317860193661273472862431280484222569706161360007546085338182494918182249307180419790558866566708302285337413666350802773501929344413734671527224639951938018215716277059655509915865841830569896845632574414179439842840502995350670020453618202574859513884859436373969927570673683684209764427839555381648371362365688600652058495162674673722087136536190592808082343852838706675844661922845014891963169484347629624387419698982459055306714556588846781761062375564775704307290747690728227493348042116845740359558423159562420615205453607902062478153870420403708983323261292622589426171255475370897361841275618386488099175088534737236106239009815409294507139199190718556187064330774515293331995768203350497696334448945458697549961615725599469670045722095709163935065503464918496632872077956532378269084241070359471875478555366115583316525245983699244338037802180371042306854945463715886744378958044177610682943103634600367656612348984071221713140428266728721315028219651806732019288322259336506754940884779878193640953810446716550573236737854118093654295800707758244168047818286524833577331069430627972759702002072423436845643276933353172833323494240126229720211412449888115457668005427787791986046922125608076029423303543384991610698561078141560066271981577510680687454157593728543048437611454868603530883765596294664836433182773004917082495752826700307645889586670132304349268840101729925107563179843254517624074218859408334091518542529387569628602786011511832207689580299379505615846690375454210665703539455302474046305482682408842385197154265022721602338313318555714488690051469619638159374675206026024652570210507756480940072851187654888549546678894143171573323266086344246081695672599894997587577646048600806691273524354660076592141259991154335762014841286553119267127664869882415594884391691013111902167547856286657669790000997107816826137117507304048750832452191246807902740009644434594806166834049193823489691230134866474755978798113075301296960325934076170420069264336502012511511629580764057754188583162146800478993456422239413004661391409592076841209815202115527599438337438699270198831293005610548783381940325821393383332672612827867345089934534306555457308237805590648276157036381255248861013616797284860150361728591112079214730317052259418509124508635099234837077214443896263017423316252936890197681627962701617619165208977785411133321036113400942903451955520376243087491259575933362332077932617549928890356968627912695734754377168297838604618967499849426310081019746101124983799425430004178109228632741764559912028446888913007768083677884290817592399440769550803580341423159277886203659434196768911843550957478343995223261797297071281755223328904173334643644106252421357658447444668714647751905731341678125168236523298762294897233476416129321344506519463818200365481400353683460357031952716212082309224644296094535834286524613809720168172827281995245031868417475071962713395697046673925290596524938522332810631143592231807347118333787427577444577413615933276516441693327305205373774380817137866861064554367542466178986095848585701788491957334518559148628507067470175636686177065109276142699205116882908966253826328236447840605444038004666332333105014780644697864618936493002913030897229480687151367585218324498812358715545532752529678395256711209207118979114234666008602116569909060515801395238991421439753923920415120173952121958099807178611817871140590487363549635345977930534506976458982655408483335047231429127284426453574393624601593392833406039642328830756462766988709458986628224277122699443490335927941518717528718188461754509515235204783814437439787663633802321265011610320313728597310520180121037980670379857649785376586094326774325930903465551021759118301619473602930313125161711833749207752653773543487438674721160786627048481972117271600490826660251014796997136683222098312826788309598945444393069671938652628624617455534791864248372909118285489071682449687293458862097567044876665976841756220700616559702703296393234478143373284410131962707620530417248613056556042250191203885897622399364425182283412352391404120375300433663132144441811525921671651890211182622215484606824951531021373842958465043694020859213733532130785909721547322660396730000380010042478180862147570322543368562082091309130449574472330336352409745024083942732044058274140179912663200177693199196641272574044394308307636480569944785406263386108151294475269177538679031266005248432966652090918393574853822261976371448013522470982185834873734102295389010220802522188774487590548034868197397261399639551878201712592544022278899279672486672687735905312219256888325073541055867098235401656520409080291369166777290919332170860964974457150412281749396601493947285689948886747546352393315845187408988029712301303552200365476434784235037861233727419782921312433985888101931998361360536492302586700903436957455237876540408168867100397714959719418062094475830576344692858483058335193218505773981434378940622791927617476317989826752228809697762548547061023777341237956128979736439011829768832064548612915897663677059241277806701188274273844710366083730910601968158187431896048809792505154168035841081316390947224200599585531494698737892198139109337480105967203430639303062175585498228510559306141393568332374825369898833986102640218279879201537880563756896598781469122412346753386922174886017728723604391746923082340868511441384354472084131240655704969050302833624535469377003699144404077925548935401077854979159682414034121058229284770866072343689247590084628973324229529181319555839729709718016112476400761479892271743349510842107865348806178635079431990323217617892784712799419070882518727679207677604077327504045290131666676140395409627137621888637211405138903683502121425389949268943347840755568970682957408748296120040949799627951562959295603385351032248964364119231075993092148309552664569961346647308817575652063340018669192374515175214348248010484979624868424117484694166042625203315395361474762544284027719585009423335934452728177310302935718471156961140156509369726942809686500531135361219980016865369769724965179954622977293774957374565503939702589059395948781191506215253795701882731558728789498724869882768921642093994936955460891653596525728011084532763022568676713802019535421177548769450726459701228497445610164296468522682253780330538082735261963158334924879101399840032359256365023779395680321547123935749731148834026296005411981157050559696351639025041083036362088763560925931638881336126289812019793225816343161201402412256594707043823792110791110844459364486263962025355088809416963157980367580798061546614679249425843271339743586988567861671071723952086879510429635508658138078412243259002757120811737486309761665851270927056973443588150335774106081202885832401978222526639183386695103663262186181142811651812278382532863839356491208119546539109445541932832813691061115520453043327363238683500957273600679841714587261451298628312501685854809908794344601660683468543252328945768621069985794298521864877731340699326033761786892601053308877951168376648312056020720402202001285378862201972843548972267499223838983580161721112411998534311182435339973600991054003040683260376749715932313339901081541165959972235180692077609033833056652698195716835755516620515128586703683057901412807473881046275371350787612233790716455965116869161902554379717962963896764017665313395912295365539700069947533924619049628379100348778751387367276775040647241662496454073210558755132356440862189933227592867978953896684366277845431953163552763590813412049774158494750707294167979599343206730321756436447022432499116000712183761793914703214957382790600464832070431652118529727789611559787647563186694988301452529812129975338022215117608837961987298725491058613037813633940608925585846587973582171101630920158244191286178451463327794988324010765934960838990667404727801341391738964025444082305557215863570181433573563493980205289247105656505450851426857845586702892359426109587024272962355124095040082869896083326988915470894393577802698885960721209825512042431189554618803794760563532358554177861678238177953351995079635816005682793581708780132196271573282519959926912415283460052777890602090529335491270627415509595681644066592011076310657833249945006167357254558660881460585255966738954171009414811731916196944552007032706948874530579540947852521648965013858096700780436617888746554149416459321898245281989535394306821001443371853093175513080525202321803604653365682424637259575581066148746636392327782136643196418091458033158770697676897209717027769340730632472591804567840486679733404990969731718069227310346413100268006069268008068143604147104754130728856852089181802048039025913380662975532165516687139740705386055561437054716672110667574943624398844292462160785276498902190231332256765963318493460144264520955593252015120950868154514263143352091158207441572115409506787692634982960503379052630905201469529167215471455907577979793425595591743190839086901258989650741213756965875809795077587483977556810332258919674590768874029393249919862684983886693629888380005992894298053081259382137173928861979506687216951441462352684098930964434823822307048237167350524643071814801946561624705206737306761870332171890280737821014071977976837287738968026664148708393673668116928244804135502369168672048921350673109031734985419688212333053115888400696209387257392189354684725203686780039198353235047603940088305009426636831968960748647835125996949758599252236606198532631990332392785440545710077249920280483300393032088643029096214407715441670183003073720347765425171839110524591562300861142962662338084872973702607324573055794731341926685933707205667334727975052720032533790057682300285560868947351172021145044333647236338418989115478231095647817459303471891043649716060806628815487065939010619350707424119018348848596118025092438732505133875012881253965961636779178797536594810289582282367037216930594321907121033989338644985168032304594961992586925100564082993518855816926599695679277297492248851850401912960406604142830005883890316090904940741578077060067475023578818829145514115422975500022367716573674474653085038334656621014475344440656745657252357417080489627928950464436906057417547096961233840257546242096441136613498585274286947189835474678684328982644773659913417017495458772463556756102872691649199958354601857996201050911533276916844590400612299710519252607923710446794022132198147091311496640790977789412503794682207817307697693145205939358121646079473555465864007013407816686323764925466972694346369579376539017841185613724424576419971335692342230005920476129606540693431036150549175261530159085507930225257220329405226858490174848767053256038272239532395323884568054410649252026097278746778511600798237039058921644701840545300519192735945909877485883428936503075359628886721445389943809803840711952438425026887382615330425459659650769394429443834538902302337614559748983480413304515253607936393877225106247950546694135001757132169264102332878038412046488989082577027491511614395232858132603645643121930026846486526491674818213593193499752486330892964718774773237268330062066584022002182548802244287711052164639609305418902742400041047880836325459358907306589167334643144265621467204847369711362663123480451813702269571948676909359483927703898799383560410057912816410935673668747744294977130348013708023834997201489259657125333869803672472201816308893611389371316282611220165379195268572194411069175920565223665323595478190988415788170441239944254631754517693967027233384950689291884125715330857445728296441224005676109356823841917182819545850247876104487556896875297587024778552665964936390818878232716061692625000374993262631896648789382538633767831667629932532483792811659316571286886155690775812549569665313085283141351773667529072844485112068757254007082026781960520842078958421966370345123329340830819623031617312802903048946690093361171003135995153950933397428207865862823789529396378638314737000082028493305232753437778046423169361322769985818925814435228342104827392968487131025435619003448592006839476574507194205676985816175282943312342049328390187901533548935331964388873393045334980319785117302248692268717763157935535164507350356530807811954359781484484804406344322114666746526483288868488154505095556321098141970196511872655476491533028855955534327767559020506409787152158529347374069442954038791935993738486598937332639225135876556855639097088710241768622187702873935215658545043887438910753188274270872052566737433649300771720758302237186548026019471561580405098877273954063037210112731268346385958456369601452860106812182694949934679686871618445453036815887881879453130576956501438192977646936426130374371519547419671869392869128298173829479489999846152604896748789729043668588483060745755929469136415304385136126093835440565358943421191973994875450206418106456258086677113210714759918886135561384401286141816639131350909437653694302880548410075185459578629240295078908405057559732517012768292433257165616457237426284163564814166959527281418805036346049830892374101382936833676256544314805143461021213127761948512005262187622699265779215475743563925045592736528041148744146223502003904874611335834683643768346130366608703604120334305628712096930862088332162317735250134982497977625917062848961875874449007982151096679219765528396534583424017460511465918013387976841319586919199595952803775322342666694647302069494515719640181085389889036160119883348346460058682129882941655061010543907376193796639181362733331200099547715607257697963268656323105846345531563712100420807958417932737097284308272436528643268336792147214077394591864594249711603742684567027159719036838724584363641479147387536332029261554806677616539858210561429409505668002035125301813095275036100630378984226666557267820098996112584111076239966897694843096757880432495007053294869844900037256156304228072205622706049247727416748346372990082058765243679705265171809223078512723572095431898129056152368933420931254245622808708410863830658208879970290797312615648151592513318538378735181555668294991367882435374911585265960687304280600448230141086350310664739921091072547525903859814039388897398071035575305298931043323825949276386864179951382569942538754115638761166731843366436062939116306697137699586015728997642470260926900672192555355435662278579605093758498385775535469525682701761133086047445717905434800270796174261067399744428526043317286427874246654751679288856855188149776590176553125330285138093475394755036697009674491645594761965907463719806899125561306757417600016545503982480381879585854529712762044150164391441697879114130169004067592050504844740154278062756581446362867554824737067925650261105471530169305240138645434270745055577765293400031299415042707907490230993332805835600348752498538148047520948584271126647574216301507821508701879917637060904857931237067534637843665382597767460501053211903430294651260606781763599411612087195361269766756869449874390238133207289434826273270265149002354514746603244598847789574760352004179322912773001998508200256030006269634541151065724457435376030359035106276742597356263215220662600617903456341777314755356451433055152374161246940237596324322815583415739853679473752236266236134369951544290783634812385962070752276418982940805971001046308527384743869496213622292697125676797079118711080075982409099577820528878334725272655671696491872785916107355200460363398610729744278351431769395758818651851951249619071676191389525390296119987170497211334174535700106804483804466496622617454135356952192751727779862757473137249520800533885709894234997792834411442243702584259399241394634832490568115286222620228784372897591592064987097819116183864754135680428520880529865754359696577700451025777516551633573470821357602822230494756209098560019947649511677153694759325002001207025326129740324919477276295503650204068329657901589612327238101270138460181555651536959335027771090943474925046359714576693179396400031937824571204345494528050973146475035955056120543854483996636888145352124295601908791130027635894320064211258508261807175671422425599266038005456605995505289279475461437687455442539454947155978861698998009647406615668534811906607837199961373763511863256286645704840207063760557923044662384482647947490342905729366053191575515886516471937907014652418958361168829142390631070811278694748786228019436436431974339720806169672367282929914526517492813791326415749792395899631882811775479569750117752973403093582165892171535178128086315926320531225049874042845466107326688387671845067004841194352326982327906183468573823675203934649646718632868774282819061005382220746328931091996014299846721984741166641805261074023225805312777639594863231086290780747647197171769103209325060546154222150267860937079398289060188077102829618628961770844356891191180965349521897943389255102220428454480994580566204579865982365695557591340065532292310941404269140318685901393537974965690674715434779343283278391176625446892766338811308209055767040141827219093269485529110563898369898476604483162141368702047863796192870455085866253465814910514381080407534680579909061681135873076864464172415237773954912620308921709867452814986478695449473639313782716031202445979142606153942234109429704910809416477424832821734957117913850631157472926662969363823603732132808801442212995988292309780798841655379115094137846929931663554280971097553274288715585604150875162816860866827531279934835554477016925626457868419199145062838065221937289907054689428238788127622909679463446832851546119618567624528184227189330800037432945355706674663117860747051275048701315041254839748779533847048321533999152160718531299804037069687612184449617703161926216287028005980970230253285223502602823273455887767054998246462225848631864743437672168466270629376509474379737262989028027076216546656664342589384134050140607503795511300791284028052187527071316079291569945926127400707253898222860892368724568221995774127915504527104576042279852045668484118954138819793676936583228643339296572135441599205835002580168320293293907870564536190166707766106542000087801619905845505148701170377121111178002552676563195950279136404117959981961330423095827300825722554343882077639507279161174750227419062925829913179316898231216688873362270713531249442757391765489428711578923699799986843314661333325061535642684521453757030577712509451385011389795877381629718744104263983422378920530167293498859996684054954000820855591407844196661496054048255168250299122592223357970447611626110466347791036430971522734256831939003774599633007827440500377314229014166081384786716013933944742476471379260645964249249154382254354648702357495160974524366385214855209750556995226289917149823174714500606767847735518153230818092100542447594424998611381598109187730185249284231288804200368293363867125421381860434765193838097220151661730459719728686168439783678092978975146649058559864312642941636106812976024818089256463325693046989986336340811212966206684456491767647815255036027750564956941887460959966510807625835515627482970974317153914381469533312788986743264990813055454492070061562136046611248954938127744917356513280218044497720763068666386176737556158287001400066052948376358690826643666559551680154505000717430959010591825766241963329742520251104873065511214629821743618430856942509030998074888208636871205852043929274914576423719853740761982845469345096108393706700195028441771925516485242709470340222290189079037323870467786121240904734387507432511787960476439182796124811019632082108992620313519488473057951626630527942273190790384723660121797377982045740128509110331037401583099023287788708417407466006647259749025767255196750002135330680354770428394722889645222442212419880829615264301577216971954660157945025899600080386449454759433091520193929707922067659086011097051496940767067506238177768063710674170928702689511190934611171810195547158111465588138115888394270390775794607674781889883404190407505976140821152749953350925535463098054140110685359169030462014453531370407588121631915037270506121405587309432273388160551839149247791654919745931358633414752859064318084932189851966087010450558167713235299682799091564857756396986146257044639678217083489278615756539124129156600670624921306202624222129972323064865830595452621552783306307275411123268052637510096180649596772457358041825845200319448336089881281731078964600005247108469363593920171142151626558302560637457850160005344536757206721294921886094275318997143447855780300552933886360159849618579139858749400340209788481918517480822665531608132036309277169033057134248305707966911589567543765914581751256285017079211750726338132927794163579565471373819607369680516485863909587576006229707374271881759950745360462123707843139194713906969469474459069673603970391052542903815263969609773528325760564648283788000208794404754788818036663449514611928247217371902795722313461297879056327228709350827426631753697666899683806568037665718014249899645691902104811080451567074920911390586948883922901037079577818137191815269966743650944450441286511634355576107704504093591422280894249723807776689425208802495125104381304260723543809402524776243598050352550354807520963796865957198822798434523524878221194186850054581850837596368452871509654168952514587967800320346343893232335627767784701585683081350006783578021231769135661142609799736231805868360932764397522704750438339494909621700990360790036001294003355108860556140490208778293777579586449464698215527798345896954826026486717423513600834629978304877912321214854645577993075742618251617919237985360634529091449977613768998664026177159860704369901284504809844409543832444480308603770530002206088781674374958926466705072794240774911818793843647850767457238693816008517440695322168796088274910271201230272495031219462095561872454166716384890722092309021671519953239683138912886508231546013813983036374408618939601157832093315833994004994545217212119799415929374165886714303131098400210819184964649532920994504509762183346847092433454759882024300068947132654635277323518022949035558546020466693211214038346713103789588697601901496951969608371196029814547759242173433273039002733699430687600263079446844045129365853703388896688918329180951562720354363614470541841080762264784118296680115104080874462530234586759229334977000637129563195677283826758943968583560344912588489829558732040730604637678499018944709862962058226918505945129505476944496421886236077129651122083316443231225897195774449835591242922882085916458100380569214105875569256884980544912932730538638845599113202532251448917546368911818252475072080533198114707453325466699946252927706326810995075637322126902725499678016494621341943807668292685487390774846081333761311187830843361021648234044772388493201298392796532085164669058691647579809188550581810182598330449441595987858146083711313969440166911913650183989889346744601135334549630013634173175296207274012112885355656057055149500849518467112781427037780439342089253985582679424484325667794482532178345983522517197855334201284481203078574268611014040298350389188749006015195977281055823493412995158262291677975109725109575279007296654872427626396999235806792082577763300859421753260626180769781936042923334958272393371078438947384336187468846316806532335151035731411800569245335686217657065421473066141962694184510675556338441868297606847857670709646043172091224428764284739401944199379623020786851957795016287566736225946410017350627539932106597860252937080560048087509963471328368103981322658815974087633277064190786203253680449571817847904360012771664596460178221609973750286496050541024908762417693017487885066619251848956145794217135127520365671854442301585716163546667717907451826945123377437252374415537551513593478884593312435422158920913449323461960385594990800273382590742468910770007815561927623745780227992996344153387512843322173706905634742501895963159105410524113846731416228644551606388652529331800533179402780996711772179040043919507008861797152950607650389850361708598294324282140779581284947836867673375373051838862610342513268624164549571235506898158432338687894255911198674995041481683164139426845819558799379854397975609871209968137487763740974748720332848151931725611226415122296540747554256919712962366718038082568563542246178654818793111652638022121407933414412771168729431589236733285811040383200294773407175890987385080097225905113055340259387552628717991718841553053520617593068684694971989137880405848149719147503207987305361859745443337388861367199516195824117479095548410884289719615100543532346113293311324521765367897319156863729046226858783068722520258079477794725975687495111542167474938236968336592411460429380259904961780232981438879988668914438951227835980816755107849521581673077657702179609594740148647781696329302570183668224041347395241416380679219190731057982311935525570639754853982830508869287026970563658527039701162592928220445261039630656509275151985666144627242635162097557680335910163025477842640296778026306751958279158116846650492470822636858083223552361873566154211799900651249052920717034658423424228355769874290256572656487868547503973445491400804297251189592869544531804276472247167990843432015871862007450057916876060467752367990813552129492574043478862141263247127559230024344343855158844979903883528189988269845748716219925418619231546963287556474049378264407821407316162996516639088447812966929244964258068858393013019187453318061694885723730579512442190664104874818125383910738873991016426345385608586868378771060478496378516207272588229471101695514275907890409845785159947101453622002008254398668529929234994868940407900202535168299433596954797434919876916350609782435976574995863817168730552526670509284645070792235761961354316336426442377205776192544832119268932756555877389403727282686537253619969595272013321766119888578084164170570544032579204400742224315791957414693203364302190128068457060791996828375038063005174478994416569686178863560352932781160419847703729901634556572379632975341895788305744702204230975889825939252799126776450269699552301451564636765164202803119728002468047106072368882794333757939654672928980524281074406841785472120608942848677269873654738966200348028070564345341162539940350970554758136854313429963623556059502314376007407105969625624969756737900215007124434168468353135495602604550373389955090166852112403584087026398365314774097049658132598608578267772111161201919186583850963267293431334378679057700561209690511275236235072197674007219881037260879805470312410991136558488949294144096141180254428273229127447069377783043790391780621113751657847886140560420819704333555759460014580055177695993507677527753733328731453917156218664914565010258364277101811717798100350186217615452562053552019623434127595986004784413426356727141635663887927297043753700121054688722224728972354274890820359067739807755961814583656812840094589445130270283557961410828926122339117402216715936052341842242507298730209647228367583966473545307740202843544862968023276125434461729847361209491943844166973852542851323757553871719319096585455466670161071339175606483845427972833266005055721378327132360447285626528292372500192319509132334158218055954731562007518288427678613012902402162622815077337969837648730128127327642368161904968186367134308511466071322443536372219702052942971958232896642608336560814116654944144042653791510554391262917789169936628195285157823762178867327072585843009276955710138878752419019644914165974199069002832736917063440779116665929270546891482009912650848095578031120854007734317530010882799302083830407675217452624975300622689174720685364815897402343211597182380638528956667117117528187603803062694777616147294222105238901114569756012375340676289740395863755515678761206331767527659027840528428552815733721343195358897145397672348959581213270996326721883549055646069913903566913535348983310835681955494088978042838584570735985361530240405087627735725908055323595335415873265135621421042289631163060173523095142354664142530616141020148459811762116252054148549074326994134124523355375686119336304053523226468956978832887218760156026709453073089801859380065215080118509545765467141115509288566969359757452077213351203035799304055267716177952422708875371075730103573562266467640211435712221291721710941444765991816181113700958337912957667318956505162149322070922693998239729091922658757678479627686064661547835465904126386340074556496351245854159369761496927926755854764442005185489920049501753445228200272939603570279035861402402037752212835041313265680707439041472457820037504165722697940642328076334638514859737734499368816336389648077483420330634409148557927831639915117437573613681014495617521297773509757994674947922467284285074574865915189564072325819032421613987705703377664611287891692485811966950781144108539242587263757456483089500360612071023379414429032002224176762581650368194982620304599401394089547348952939688049969821541566773972772259995641303381713234959962896106405275670058550837053767536897946835729231269497892615214350474845095737368533028360141243430887475259548960900657177645635202386818654337388161102536369446685785818816729152477029195593613344862339135994545968192569425727747409713343076182924067067377917032191888795169188667594063150090540595711494216944397852056565800514461461697031531311444001373383400794998049329365726039309966915134142508038467307069931468701784013350987220713712439246355416449113668356640041120539310725283961603640687960024470923213557016375686498041191899287605081518090519083338436759215051258670526692917057491250329494390499127700096824414401837431650698219637622636960233841867669392656442906182255722125871729258538943456140359187423509979690670172249667556743381214656920917304634156013264486204499921913442359917778054428474835536117807875462089164302953117774130237459623554547969497130363422127712760163997169281730486223683881158010504637344982285240839699973459822496702413860585089698510950519434746155389797832976512154406267320386515145887629409675580093309675063234543074211075284802010162995157992772085064522768902774688938973648067414152438023082123216586508043326613673343257938364974707353127913591363853905018955121987829427514648685224495148888367662863369136344044151411560572696248100848738785956386702303135763721507862005144481850382752847027677835360930067083238313325689902342779037674683362184465259481470233091213349801929779163624517083363563934576953258916733513318836589237760397480470085449377880374464247196577765285261253856433380333349540242884572999046711077885642670321563537430800232396412102216970854065657087356833942986544540820405853014892187814005603669672284795951288038727539301849183437991585547118437162907233768631415598436031755572315744574219409119808658387945830779043556011041969236703803047718789340009138847988420011812743270140096194693512914869388194499662374161198950228001533753816074995924391080422200368976026986499780260739148146884742065852115491404607138690072575182674394628610545564216237922065089517168598754577620702979783771890533615014867767654457194067736147903354714747016226120377487521692007067863620323574170386777995012864374187141659005236626012340972755468733774267137110315172022347859750940697637572122580790332316246220546229789129893071581194375470806201034985930349153644625710807226666146322451766645108234585107304888089103575894145035265458408370555872644377597963783340975868325275674538436616930951872347037712157691006615438824553779117278178402661530778087153544014563382101060822838955592576153282955576494817328386302651570754747721277399179493614163933123984916767304744927773103014748614542226002433291893666174429931766249758693358449677579636187430163919516189317428563969002859495092141259750862375198133076853437900755854998019595820303509534450778012686194617801895725896440265385128770039689151356839137652601549507139785624304741298443023347010685360615376341264661807881873891733383529889618763183973865970306362625151359537492295356349653886281570406009767046198015354142605437983316665667840789058115283176286344767730271107846104863942412117160486548803635698094502363599468688299956126259920540480924396552321072912416862764247533002870567158724529286075330854723982197496435862115338724475837916895200386276677733561207939624548520617634179699514661133823671736622795198674080140139989869698063628615046574994217007678748555987261842923565378823407302935874942973610042816737426495942347436015257992479895001263128954503300900099170208448161226602818118846961066936248076146879400350690962070335567334839131027653565067142144117940213754115872489622293132000722724689969959800041076607731812500605468991476384855343512497510339329735650154008812433856023613785924198884399063126974774107021963632895475272704064983544430839641746191156323881004331668346183754035195621704449136902211091017176779204289158955344664639339902317518482434178070146633179732272846899108443425656718104450663707242359212712091264501016851052951291616037062070488201505323994800135650687367937106079873097032641273710111287999886185982261205527652100667886667232112909177892834511266144597557321941801417851733608457033362780166030248950731723182310148433105223306187509221234354485383690708595974289552789427989981613658996782227329284139190968459248610239423485009320623623237011717555920389433342435487489455041154852228857352200977607122683429521523560152552823455863038372986749081559327006492063519297229633625299212735230001564400018355462084092961596538206771355567983096947164670948445074106693156548230714831790470490706156087133185180619105131812727478501096248921249930353549051693371164123055083717959295404795833131905169440154911989949444787195311195863062226943326274199858680327558949970485475244676239840570363417680572099054584186423836085524895609312934045509561003512938014556226150019670097370459737405931860467601018912914797843153306253678290747938915467349468865444840970335933670230505451203512553680823821146460273415191977906526114059318221089166539883779792775407866863472033602206316612692705525376442884862391057791317814062107373210568135041133314171698613880613740561175432972975908995923528804039921697536775586847045405743786924504220201673303656520906360899672127089379113208639707517499444495583157474522303092103809340672145657818899162367660692701542818183739257097931385578124342518575534763583826853879210459837531724560372509801251830935656607978063243319916139007413822682544461861634805437255871203758106299845338081288990145357073836507392332891094337938954593227686719930073135551130226673870058403723556621092348998700067460347253397689082276851157926864574600634959428888956437965111085389312045937030509771640043080394867817857916588709200083709419000991431578972599036689775068245561024560925644007451500680082542507228525644102802804360814003006268416257239053866838264955788369904524246139013918916226115428594890251856921936109062564478900724674706214605781280717634912787818222473632650844305207964632156536132164850481910560474650158725266746459890127642097906616907668325977836075678196430290946366408647114669840287041774389333377540777501326418322629119255509893844376155152539109751537336507756445403310513170799484201895879023991519907047247707824249388023735986831154247268909020770934973454799485374385035827974161020061640539899900961362827032840922120997414183514082851951582716006503937686712652934393635462999535936344867404742974157408588606083161022016245386205292545326940531003883207476579737432223132309693444032566260141456010106032599798118910072984570450466104709408381000172845160884861935447983751123337956499897353920626219810707903320019484672224313485594069121801296954208341011606794174760439244896886502021064356674564001148413341215571575903668094599831829969913887591393630439564352863215419254391707342113759196591155139581805155702592752436673363856414277445287786006639385006658284512880527488647666933272438012502646337898215172057697361021889728429179849810531138952747784262773955574992912207817643084830386142427540850171813734778885027961421165039621342648103280095371385989366598558479739218744765945279162435119417251879682337644455126554422750473394527708754741313882716951743857385250559787027721906241892613787526832018532546369923144032614680304182213180599536990688868283081765523561389841910460673523397578805533184219862106330207475460310903050485209544822308067469511582954030784872103641053697049969169930226699987478864241628478904635936486818743397472850962501000420222193358383018177661131415526119263673622740886513623343509920245436100735350966300132011428030253375581539808847513423831121407890019742214891943954107790933254114181158807092502476849024370093471523982162309524245663252074851971912084643010183164962034783788642897724179567573399749516757498063524974992372604869312561764177938610281734795682317895701509980319035546428203930217787614003720521649539688935685719354442473179296136716383868874331722377925716821792652700530322747206171659819304998799768273159652354065198705393845934969412529084279768328268578821244138461541403957108840459568132198095613757039851588819250492705665790386165262567175231198955578404344138499342237299304971468566457478312477787826781867670792817300620423941123770450029495123479803926727804616678091413656462700078100173673593041718790746831655456098262525159802293229546995512922360071058285952783457335636635909380977713883434626789340172834914011200098631875863589738714871464933795406860148905222451107551833154807134032468187019954462344832151662436871677724191610853426504715888249132245553252661098480570874264593923310407304451352265138997021201682712868282015857269886488845506617061693194225329573111579432668815252156619160675305352470586569605981517547652277846612511208809046367453203597220249052316970539944478690463426024668128899052590877416712568877293125066407795185439001458017184669901163193400424721842461754550037222254395740873708748404269566085270505676797234602998006587948922704682375774117288471078622812656179537318278966701806000979512663569941280017300260617522616183028649715275388114868816049590054996269695150922450352683120179429967393116186666015388809076403391444207416028702816781163319554293846927117748683143800629642935247603306025821929567660636157482320389404757188118700475899896818094087987503788789574827812958807605990240249959217724149986653070687709797680203527834957918024880878850444542574295834479534509745246953334000732338516854459706954309053341225251361451136623364315755069504838975849769254215187155931525107635102237670427417680150536297481367804319375605205736841577357271848305805716950411823031960744146572609308998606503375319258370510731557734601710984916378467348286526430350582984530724862723427171609722149788124046039377222504491929940282021138135072144007245814557077565365684495907435070171905031171308127177854609253118337313217135833336069303020046813913563140794963315949794293172123205063184462062080602049578379833809044235914795907299679834577875816652839996707140213007366575065129140682887171446071062604879251493356329238425243335755921999512219933276678121891318479288262986972470240988107664957990693837248855398214988365994660041605895076843376555448183960292988685973484651822117102140004181108886762815233218014009906195606931137986422613481281937565849077916139368578388482798520898087993126891821854550238550010004126031064833382003023064412804137572772808715935742397692660744609235348684372386045131755569809532224429297583521461769571925477942693064525670620499255251283865007672226501299020148627411712939315718628042822080268814288400060558094611001151117073043322622612128620400319837486719336605175137596282379989845558745282126554155031572802432110343828350345146175842565339975871314712644072122810873847242588644370747359773920867009338798319434942658127493656786803958824904771827698935741339857824229823077047661725131141868910972126690031000642895696931000234437299842873151835220518650074726148262744556428791616883374899237033739544629760245319824240727499896043132940892813298905237870583304176839410922663093744442747650097136842598574982797656689369065331393707940111707006783467789685984341468105401495341041558107760448386663731876955580184322934543965428397119294747293728155488347801791514401053270943888753304772805097632877790569410955342224119345856739337836905276273730373076921987815060545296497617693279950210776454471923236477285789278643967218082691806258436608447829629596235488609078970952921730996418318189040075866962093900469903752167901074699679139280581918543234967976392760130112906178905226901260104079115390348518044809219318100083861600153731610009245284572962435406868880784815440872196586358295988019962167787302567672331625544160191296460480309537607123718123694039030208345981157316276344597734654055218257870450908273371013274006882612902142630643159463783133886921077224205021235530293205805710540408353905860405868279815634612140263414652997622549980100236664935698329245226606134464360349003870324593516635725026188890341942990719771959163482326593819751650741320226055363297169719139487373114986875379773065157048649703985659655361245888211667418626652666596258804875248374647649890692766597552002390813736957452746171482540497140263627656083364849401526863322006798098523799558909241475569470021898395230424377651196419389921349037908081664095085466846427899332091734405838608372649959012751865072341211019554042608185045830099353761875555009437713732207210755646794887752021143597520416081619977478056202217946263668926715743549518202306109945656182495902136782964081618528302012782675797118010542495066864143871587572998633749591988136264085946263406190447166311920622369318347515316241900072915482195065668666423882233725157060093431850973430283327423868165740001823868408582691620796274063107810034730123820485582796980938444232211618477393885217082949936319755975283939330356499941803051412855386529497646687862475967642684093353624610420820969440328469471455566159355811763291415532215157140671830845369456407430741241931339551577692661491508037536186825642337539780723040087706947847723262821758890168495700818361016205233214291261958207501657106025711667552518065409109720727015837512127523030821533933020493619324140950837195894170977385177909801803765993271150711334864439601258997141176901011515575329812847866342933460614625867999903788669821027415302261076159795966690672494922776421293507411093455483566586841069905365696530946357522229119367431845969449474940776211416409487820391975369538244477890168669863699448858004473119541036573788017820317127909713578368900700591041326007506220961746902569669300263360422299423515416478534571092825030354622932529227980956360501087761744036394677175247065909732832962449417262626737150217401935539209678519979594992543459521108775308163613577676486704380996415988999712311458100746457456237148905282199608387340275194086552604496566040463391266486828501368944922218481386457657290610318938170389690624686082743696810074037270311606420511666854089683662653671661744274327107462993612724231848963166648783766752352431208728731109331257870863667739986769914451215008101289846643830761796360188635592041229808800442143289608292746626204332429242092904441632623285047594497214203788045650621178272705040302091033071556737156683293859204618330499149029560858241156283674182049855543509350647716707232280635940348267293754745420624440908224869680906179891724545590564840452719203000167862874456504648361901093340394191274180407672314535160847541841851748211457976047169883297044481727025351657554972228523852150456378661639995485796612386972718933968491922676671798037852559714141710699356296207276436725484200746714403283306595353049566744538723319819085456784515127804217533185186937159386660743150908450095954998616072951897122849210948616270256364322132121534178856113315050987761359333797442787323521889997298353672330647449833900771119490094399545516664067560229241446295638073446397818302407906552288478371964528605808930180801971645213232987654935901841003706469289865573540462642392185353568555471509164183891743392854251574676394245637635435121620260127076725059998846461485304743266197085996420699098603831952986905331819070247324539149677439829815802403772190630260220925088919473854745652792880041350935215788672796145633636689724420365363859751163005455934138954985082207382008216343383846516565144445831592064831299587256089261957205380757280878212367770893847441193336339447925056806613690076367249296573370720927848280317338534241839536579442993488121302290741176351303940484008491704720472436139890215192062874005471620687952944778769006155707694398621262045852139095963298334268926948650569600484193762608153364575525387511037412908826387101951918289577768882046816388622130137781854612715131963371644959921032118219473423192643432783326908339459285903321160215068209197654950744218676347525898685464922873674540884003490270759549423513671939868950364901892446722415441400140871010670636620817412133253522989963115831991091896150422019703633769777861247931467925906443211961926348917859986215578559477448485512946672409651904359969415905884592780082772615372111176412963849394875093506309419105095634099802668159386779266563092409053158183783312848396278188886040787585101070171645958380594082778676814015125353276057851740587785377479589783997242657814085898942706562639027283514557874099021105236957318350872732822676922808520620543769491806010352913035752630094365286448268977712866021254832591755182270814215291643896002683152110327712380170632653327443293584717329588261530428309127048567066372269974977886572362694151869493420571781782826303946140642041753805938551888306380436884108059338060988406115672832612819576685602954532704571105500405317042323320626009772223356884536664018482261784546357863165724709949733426644964086832165776444322568957053939831544010868500309500972563919395643634737925068073195375720810800969372574332664894810242300150379949442302913060486916558048760782792696361453128302563444026451612224733284122348789608098461216760685878639361434064306331757661274141725717201700401511447084363562983683056241164596723889443549687756129438226806062247586243392086659172866907677785405022179864911438956335945717162771884118745467759913495562997529911470617823338351511308289796459151848108074535406870150944918167147545387906279857926859904553092969520682090944958545650172663468916879453402704089417797634774167976760215097326984439535344285463302267671340472238600356390219862920168363486893817666408041583392924251398068621791687853583879216618393169307361343875872123445812675317778546940848054812380843820247418312945467998731543890818139430157691624734243456538792063236080529740683462918993957364251399414936895238326810197657758370873990482007408358503127409569493468495019908606380396915937944311915837515534744011477798560319122474181956003375172814112679316578049868548209341769966802090779713063187171590484576225072145500976680744103948499547730913629437790609353172986818962001711533779322471802206185625369847515804908912550059948023825622240118589816308181405120624177569523413974948722203517201884819278921317900449131635331762843654434417982526445115483481991761416000557480361932051944670699714010284175205210944181193026756125865576198453728788603489926497922213750334774436669436314391045488001682870899495748505463626137499258196120862357183809837298875460602359221410920610315519863662988415067747610564137849876595804368750985013539688448473044658830725866081920459666604736738835722611931859510534438422127355989612263560402478944958256747863266149571696097668923886382360256546739835963507431328564227355744617169931901402976221216110595965709859708626043824002769744411174417647701850452454168587870308598933798211165575561624085429097366608834103643528729374857124690218877535227969084362841348993757718136953033871649121019196862071292206908158594143329510699251046751281836920350703460573983968313781182290681826369703292620475817025344006535322044875096899433324412584849290140538327801748684424061828668323697195873099422189285433701967994482889693014779145830600520042281468011511752760081429658306585115605733466256512641286025633264354159158969242233597552104336952299282993249063872904806427391851764623021840907596701852327328805178358740528448619035254233638596237150847830652908734674588227745828967268004435610751754612659647966719783953904770179101676502258811190674672466798863965309602772745446369437771681613968748366549180046935732120320646432470260636988347842368626538281859441215650206589950027858287902561162823718781607337099382638438679208189524878479265132759153194724014165039723247830569780979597143931856214815634065017618922817221351403835207109108576534831534615133633022553523082414690939627405298022741538586855151713438487871062896444859182433937391745098960809215265318789065428695375757741328695124225977521197678318899574103735586554093434420820980136213103286140260886516742911586696414854172281921154574352636600772293434311977241850077607606744068937026272229713666674013191551583057196764093189634554568954669688070004632940156617485856782339668542763151769023722629413770251949977819815091237386671790097699784035982372544607750270236039663230651051305457517507440491797803124291124743067600705073484637775068614712315550048183758544584791319361058846489755609084042593246699273168706268593601634461102178498186298382920380324154973658755731600662432966826707954564407369587473909410258828256772422432836291631512518490516076909905182496282069098850317665559546586190706499418870807586953733414084071963111188535213256118723583754215140927124627022365689331693501467136004856740295684752107849216064872191534346818048153075845342524374622493217365526882715068361209141250108951362026775902021295781696900929187359440925937157625269261420619966890572606939821522567594120850208293020037756413916856689405880147480761036320780175217444854031471465735725033570717977877350409151543294907751382122994356249240734087376697229742462424577613812660109421991569117109196848121004822694249050146800403335956027152814892944524562504105506148239210794590421502810368055714139647507366823511015762137874497547152058941641461480374512670284189791242012728472063317560392415927750947928077846764472326325785709486079243323224701481008793456776579024370208982086531569588951199435405339854115907391787520368347430011515058700372796295077558620550797779413677248243469567748907793709931433576829271773486628217486948945237895989079536087980973911462743512572444067229662279419341234341305691454272650236017576594461609227241916240754206290183045295002766741534413044360225717910744094662411042504407292471414006054843757048583041170654017500222226649886326227420765926591342737065313545441720941425560428442353281642196818604184763775141903568580214879426541007061742430385620300223951860398905220100446994731739078453321752179205861038038852374480905609501599812466429100867106544463900238859313508842876334939519633591599865458173490125460879427469241034471772169245998656566327337633843219123971269450297047178776662294421500809889785704916598428764208375372383970409104432404007090073194118019539216565302123801444361706602105580071231078777138417719526879714969002679348848110660016605757550843915257260263321275589580823956476602092802015779825472349702044614659043315211074077156509865122391042557120407252948811460028760971084809189463127358908562957251305684766304935555971852671026845341192321425746839192072125814987570867161921840975944753875665984308929833010721522177274435092974194501526847024258862898675798146155185911137468021878970894225923227456586081355436653061276025488238119635061681795502420964358950966973046878352345210966965936166193941900597780958324285420184857846884446264175349012057141932797422527514436627786854955322464592826898110622530806456501814173424113584095026660582531653407137581703469085134035257465715138332756694999298174887365062451117428025548114912229305058562347799104622575972164520291559884134040585196061631460316928467745830940147821229334024242079420655930828411880655857616240320174632918241618182963877458168282978226123299139865826020869384332230302883314555147978241096985516632078624436620945186349186093474515481395939889329192203086531891693656000475946297558137745095938784987539874681189016295939133874366504242287720859066170442799215854424476076399424107256406615681368506590768445480161989384271181425648094403793651944290421459013797732192034052410065932229191982620690577802686775064336453854681399384493874113810066228271386384756090531411164193986660910784467949210251116294313762811750428346604161786810659455948880220425647230189545900294224996733593679199911096567150429097481629724889989672509720166875014649418728830246163987099850503192737798901312363799431210615294096385504220237393615722921853968847198923065692890373602896530323422272868901095111191209259848866944568027807773928902377317594239253085363638787634793649206990027023220579576446300185304806365604482640481362428953066897507636199636686854564632429418971917989657695988576199963697873518420811728961078823520032125940281988758568138963008668136693887688430484910099472260199153042540822601635396356438017574821983890326178125620391128688419236312978191309724932571555097692559892306166718447718295560354909344705380452141370150572470532483512248482569152828427852020482703586978309090981437893045735327746544919576581446158784930392849523611547068568598669438903115844624016607108714317293059873678917415294942524244170484911617809235354152726573237795203544103971926907305713118029895210328022504998149073332073483022214623644195260737378489327461602349030331226925162348550864764783632522433806960930238070979191585791020560903856638353686848270934410529073473426854422279677826578205343907360876795690249571889466003517677812726459981167255394207386060244230214257381602172961161159723617532000228607118671828868329677620892141961577885413875780348255900741946106435011849694110460490503638007076957945534868957929825896220653548796755221367134008030856484784018348570364591019296564320570045237958719715919888061312492060262928861088443450915617331255223438792644503660068935943933032981515641339620239331405320051231872575806059728729449575920960944179505840999172539891579476760830167621463893339563663757329743887141018057300942763743809427890385425507013702881375179106133424453041476172986998571311983815223497932646334014811208923946952175176224333567298236682805182038791639396303322318894796597849862707793986659496979260452667873968464516034302695678858557105902206314600242970862544818816334718868700737200460112439263611154369517601536160116077152896118152585593853253241476086056334809823595398545627128106210171930733643402219313116350047266852390459648664907410523480658536865727804707997366870143922162401394009983630059093950213565774466391575115258870361477648671118647191244195534254055892692918178879589371294642337178348564394649431359366451512719057470488149363622985615823952478701390692580379097081216951816772197222006603172088235431119382127158651948181291428567312928111297545625135999744429099666815002031865616167823146882891131400454649230856988713925171547800884317132225792242003410957994855066912485656397086161283087108654673834317406412659565582065658363168766346073740141288979192221426395590495360274018961918583540954291293565709402992669662826293885928653611176338079299096414134594486922684468802980615610236486148941367376907485382321068356677394967745542139870400868979495691339480022127592321767826741875662322979558909529747682260607767348848298835365363564837985414881692725184728996676042418682746363575001502241994671323384181555010491781361484666972335865893453612198173473448914670723936224410117413919296318797665130713372157912359508926710062708422928435258424070272083434868387373770030106439652533308509656116629497900318550344586862533288717750761279023394555140145112016971760277506727729725845514700527913163478118387115170331602753431299513307908854990549443512615577956898437064823864926706766319157779225157127059196449598157943454148620057323892268947602917270874386354422844248750226414233396329517728440244548442189042598977997169478484057528810223866522669625217961040653655992380532396116871682993410146382843330182205435131395012713622124633072462721389638131670920608671822428440181309727931151920172226240852452957841890227536200995120202232582903316199675170273849926829238994411438601262631178515625020458924019148862634856108215861115993320142198608378099652517493488735697297604597898793899875808342691062408392283028635344762226665300537250714386017344003554718792630782291980944056927243096285532656351864777895826090673516562010036155388829190843302725039955278830089670575994317794593421494233246710353866939823962538757912329858387475969191163953189864660634711259180998210014308824813949644676160456676869998676923839760855045144293959883269229407224278616404421185952892443728954334097834854044450523088426169610503018131850052666484543025605909654720613220570437705714939554128410495059499906548594539595226201588188446004577284286700638159118310262601650814600314101961770781720342036290985432345879204049023291467002858053142532183467684689509832107448751559847678272168703224501986277357582662133597337237991124439815523117339086798861021850003835180671706031328366980914822386532983545007067312868390036420093329081436447486880361193451840469378201915704066503994320412473286383758528733777192765933915315743943029022092007564900672461627031798247207651306894796934189867881188223428242290675512464563502468437016428377184108446348631758986395039513710534899021898126507148497989511903546382804273643834815705229871184348425286410326461204947612771392432231660587893247107109501326211737902644868131565813545993024826516902538959668277479537708274988033228184972653026623188728841518799799356594387364724621933142422881692443016418234166109637416242483682307432818839447838559998106401009142335556022815572483217178359982867216643673270771988001695391166039871872236330089272492585086773095901744017370284189178106176449169223267681813384211291680919635335179883108114068432214025172438073101595047876258968858208967455738534441752099209944613385978358254681361893268664316587749679569602149886860098876414725896206657494967821959113885043430937401447248917715693211487835947808050200273688112717086951851409161395563083358473498100874333018581601544711305067479795869849117521101879273946972885975368516306309506834007214008415658882915771169038441188391725598915045824017246172801267437853170593264449367938284332121272607960394665830027997895067963620798475324611035162076452691109870906958780726104486107092509458491403938959796273851631606457344655662456826575264280309138341682230452220226583132059498263156119978256373677762188984488117574022761112604614983524764285528478335708415612069297941976423140297576366845532586204753068046106034666328760354247087832861658229033494956762844317726810320326419128987438133271051453763766614835582062602276446280117443730195351096462774208907864917319281534528333311469960641516123043652610323175536979125746767471294771892969959512437366399549105202584591776673540658304605562635857901284578683177634217031134411530466825391335128337338398481188905979597109097924516347854542170609502561514098332613850505413280065866752824099541984070129896787343228955526676305823798227581690038062687196248879923808660054287824878619526594871363930575771629688932275675413021838708210443890206131269856454995558849962870973972596958756276249070055617434605207603640214306953989364951417705542750910870111533161847583257885457421829454870779642487414004399565707426541210823895314041338712405123445553365298757601682953566496973229791509340233053271018451712834230285464261264700944881422503354769702608546006048025604764232477667507771845011407144937637302264480081805426831279633492307082030404517270075672424870797416592605241039028141886767687160576462140202525536766710698742421712733475322285530985875949572361794177037371805552067532385599530622089065961555030764760732403163043003456779373610167254380705750225761566704372909122396010857649307586036741494122898016851637376880462012825181132758529916045966294693071837255864794032855999964726167713519034045962277058775506900437386014498091478093935952953301981776315453174480665954592975671023047572325232116879041097528395676303495860056741503399823183603236082089332300538546385959416456505965175092674647643426909164964565765674189780147246525266226621633280994109472340682990989883384913788526286218327477941683929436909705993667457494046582527286656809794919001691087480332142737892030687209046727183044196925998430127475258465670791247378825604265022886673298878385280265728848186810480059004745038603917782362005222933429306243661325881787142893841145634961541319694282422785616296809671434971128032613851089932682230531281422214345870990891250525863331288486030086662917411826456260022806398516409659309712233808885418441105317472783075011374151563206845348942619232537567034084905864969928567170943780841969956368194409747884084708397626556145889967250309946600026387250430304668494671068291147981813389653626455358538320082822666492978374701435944528538041810455368402961673826772852966043610616167684542246296360093288495094659279765122895197486195839033944505275884044814429601944639766056190062834147855643503966465301330160964345119033772637293069503301079624085475119777642265104429161533986128180359417555172087233501104108502347810344706570466313917969876464759506458641350350195828834297759606309261927681618859665917723132548784383147860906506585511814584253816753444146768236062867610396413049793634543880126010041508717131899901713466980526354232583534072425721538735047207618681659507712924475265739275107136905328854840268071587552593076858105100505666216794865002761152968867630738824008826458244708659443839731334648866710339300849611414941116803457882189374428997034906251017847432587503313131972023855138353426298656257420866520477593481675930514508608568866905413423002202927727869398543230419815343104581761263656214859678119126627204033012154513902508383682634927315760546291055031978570740845185245093087018005407679414849487051971231503633858615288445341907012673521881961989664147642581306877668497957276750083014640184738304717265855049084077847518286197515218827706646831506859848297543942618786758727587078116485638055524293966729254114374257519517949416092330047173191834129563063859605106050001706166290344897299391647325616787456645228117803520032885260639785986414092532413752613571966948613899570111396930553168272724890483391503224968337376174397842761526231038280293692460656356101469761940187982115497193121247244139410663553433191988197271641889559715077485277191226793510082178261073410334424610096894426380354049032288116899598036749750459776902671624104182376857807545999443215960635810875141220506973009148764753795097667009359079679373746605120939203344767755196720536225762326720218085580861906753653826373223851585837285774291866012765463672505974310707174704274825941109742736005865832321903325516703048628227920394752712182436013692526526809874770169750864330144927607998561190424242966772190426255577983101031523013629444409045560583734243527294720028567059300125284359823636632777201452045848004268495144160976975106293516630128538084901386312853147423733634560208209462184638904707427909774041070700201058973660604290710285803033152600926253559260664344090415108649032184859992135723497568078987297188319083497454715348386779165641681660227973501967470496603036718455290099142177750619595320593991182105883611313998850727651729241911360947969135077877617778083860983536315971134474742627853884530586418937945192927416748680817219953485520402735705537915551459925309170002827004141962234115593559349050749429631995684562350873773521818077982077845719573130199836981249371776373963783893416247777089284477363108745474479106789585163291202722943779587351578739673418171204647301593921238690872536788997452810218474182444206626861759513071334562160689604862646926521954907619548916175604220409856089144828075852362004050114958690206176102468894569940217105632982236625185148065835402126380120125835296576551831857742248041351703536738518401322513239304683580789090963262889778648566367144499605104836392827339981290505798901506486192948073143916613638406069387123961770652073760948646632151119566171922063211888582719399383080394174298082082269479086852345047699272850877026837027578823020727555680992168746621413470615579526283993687987966674604421236987539179657040131234361896581000809825419326166540589786756822029561868520213141161036877950249681863461265270366933141529454688780843133208761281015056135776316874879669651837802376237958267988214477436452005288090703050982213962256432164849620486425147696881238363565993111141208858376932045040556876088229526234625541692073047913838856800356348901455773414389272364819955688213394342040389561452745500528426402623961659436765309800396348384710878074514539368147291642168315261196839951771321285969904440820338456855039069512876936732745248209421309734127290128145972256379241274078930255698248755841287433569379665896275561726178544476858865390172404843360685888046147660738317286458786899279505470715483858997525319851153798471041754012465626595485300688916483248545953493907659832756431760076382464767130903322893005338394569804127217651950081747130628280485467618225773118062155374239612054253227897131073006577668240066842106399563774737332116245187558528576631457348162412500792323706323823465896931845504189995908144250276905893075426235112723519209103708155963325550574535944371442730716060530913512704695623018693143760080802152327218611875576990550006911742611190686777822647730005321203447234681910744175049599969249193987354250483865891235677700556943628047524742687533217516685801840340937748226698981218411818282627836516919485082569977687729830384043602431321872284552712506679418750503191798291391515128241235573547753657504688269499339512199518518780685680343117781932919831204648491906473204174148234568505510767142744238182683285578629185398086580616347762178894672907820535418214210305698127874134523577822113796299397797650538346802466407541328367054309551775367619002851514923145001564481286232323415208727459300928861385167441545040582697134446187134903312613971002282716162351968157511384591738375229136083476793672907116874831272735178200132313519986613985576924648562923867293004796289334714688744075474559711761021338763445958169442705238972003239058542428699040630187121151107545863047628548415350137296364596610707108101610703910423108435354774987401274197917360401673445242255273730521528393899508700913809269614004834446650556877887844374881524671344111368028680376992540422078388765566607588681662428291298033188782220805712007507536870043480768660489520419806589846388252667095250319983406242283403497027178765596294416162525614472464843868234350341747494332831822574759764533603649705429685577021333642204611617019419353797587064397892397142339154003117459598962246049799071263299817716596647556904643840811065259536418820153965723183555999876785005584139586215955531704551205440988735125464018898762336080253515766362679157706618797618049286872406097941859927503335419697796307113186639000346145643943974520311707894190069955084125306152670419939107746364489367923098852894596528193408424059966455931324625267254184802842035276672843630650067172983174951040392124690890953346271740751255973140945707608889643270737016175941239852923992264860230710549414838867124286044961223055242736029345693122948050423349827762596835051478700139579711597171123284571929383318004042905785872201704532764342089423407892322294492942182537818816514110400744680384709264736532812662817362324538348284694573065803479180820457019432269002879838388336705923763063335585813150007754670511532064357742579959355676750242174060457396647440433191572900041062154537863365261041678453900668648318144128178250760300795441324901601521006036835731482198243933508555033403992555857284503583413287060037494348660050278164264900412112108914830872357505814208432299347868716485575391294906788312464419896369162420547377367676369210908764624651185145742320300683972901812782724911379619967871501381297268728881176031743285135676804688333382485934687270768575552418613437297584658691143287315360602377911324885360174609985827074923125465255966062643708615680033353094504001498467631579942603146414429361558703423123570836023875898479262020104285483017427067714502325588064088910442136783847737384755790527461477438172874632114350878108956841046345301219871833540680684731361309633211415298309874554771666199442091516823765850845304673372900178645262864607307085844253748990888295007627439499221300089883319866401913291831376138822511595979236196404624838868082311301584221238716004561711881769955453606129018753434493055822247624896941589985277316590851123204987743867104799239246438212383116915371453951745919666378682106120626020144987606147202071828542044066799462653815518000737284385864407868481845272341265599439514205259736817771315570973820058335302862711144969540462852799188664326023105958436578438428795942193843528169488759744344178873610133728417483851086871162680348582026135277393157155813840873282802881259446543586727725777472638013347205048190396806048984948385409079495659456416862007202353267638475569180444539679686339506772458203460616828528076826090996677704377874245973641988729256091859348834903876707843181803076433698613304112344088861684803375622443784589023446779107485736985170665312605967621962883981784706194262049466161058290606328865896867663914516090106192306610573652165640905439297090514783175103582806761135641140070730624129855840737765868786990324639079423475997121384858890298789117317590880397818004823341598326605555509029755145554771964654469476561763765198165042817550087166381760126544518899450245336936942079880569913829526279046212035843747401626261865365347743553253470281477903371977695214413049037167242631595668410452960538942191519004656268297166579903696592174559338266351288607469394142687611105572514083642819587283281512928321539792967046274111450898802896984154556158895538678167237180694422180291235800048878465856593912334572042504807500965281742138845578622726542775860937387407345233281001638477759249713235576202993961187746925302923496832199111505088718522659962256518262494522356089276441038206540500818627154320356289004783870766868428693493326910818754385280500887612967188823511781013611092980055550318727629220396145638596970209184449354277518929468973242634836142766508151922923993867189016364086723792022637919802074825056949448155742484975364708473467401656161214758856126960610753807432631971735191718296414955834449651079340890188925765449603286888299557897939122659750776782006333914168706679603570755346533141450364456438992891736867868157466498769380676960137830320152655597456970850272518111837931682132931756233342587211748896666130516874652744274448953075313004788055287982757916522906636589871566794450747335591075512272586375621363777065015760064606898211665728235495962565294816978189281879680385819810401702012112096514928253147298034286995518996523038602696127562095529539028652953964346728087262991742800095633390237066679100056838983131956835991606266135605729499894680244327711669372784511492294676122592950629111392334392936095880434749383661054338146197328254057052185465315097159540858878256412587925435203997753672712966457635798182678472130243197582933255947873526484546835196260820589885057385908574343607885574089463286451271515398779443727824091747442403601890688122190773356857489256359502493272985637873372716578743789629710730294347008036098380864628655890361543831907834262264229859078031160897498185944594774975536960520601854039204781079455531744539642625530946357776092364886821800188008725161477261614294868963183733686659023393201027271866632224320194207284042565913258686105924762998222114415484810991146833727252294297884366785242988731422676782303041459329461758936206701295919363836089201275514848010427885775863529355953077662746867115987523907032863554118064796129670222681821106198231216914446587985698224814912999296052806749975314243069160392119556778691428026974524107114525441231709437167688739871789048419796458597412766955488067102806580521058742808895371682335546158782057918193913146681505228155525207587286903388512585320494518975870679669944995811297311613574044801164614361572711539534974433793241465069682350435830175011655924332627609781583783025799776052046242807857839472060437340369779859782794209038373744518219620749041058215232395162367272024850571078010594489179659403629530736162669584046914565248985921218705348618530244109263925777579808925486482616002524465675361645853577305302451130690532604519539055108157527820948557863494414022196521351241170952830623315002448330149593104035732232128654154393016538726294429731781650469345004302585131411866982875080573792677933383044879703815039794074408995591303030303165081335656489334464482333062755627742804963827407666196958089096864996730100430813689468352070898792204200410950614696143590515943239580283101603666724153652892089607513174875070143097314391194979037515104301147006045958549386621560467685787768440196852724746876500848499027568595870457191601023400430455987042799216791571813997831866976621484700722535605562251059843503904101052722037441583272280790731411592743397427063193377909640143061148307823490132402468245506153003475001171216320016017583302888237642739680445149377894696362419228489110749642803504885422713536387987424583175495919208276257729542226142077264499187631738075855798773856061380766714651678273253381718990130938092928606648543517790622545384125895290621163443198902492087123223982591495187030395414533416038446412038622220606460877256992661393820509148300259112501562080591478377571766509532403253027584515425769698378028568634553312943751672683618963598304087065000161681491331535674794858074419401763985637862258795845339477121369118770312443747194780204056050486408772804192455587523423992938571447119475227030806790347028716467880773927068106533059694965843771343109784114510561591627840276995783864545526111121893774588946117280599632281152145916120788920738962546468285748387236821422867742772900758166180710462030652607312938934866816410215582099617842543661978784965126314017196205041247229568054626287770441750237019227764953299477671430517097189432201912698554557586838373498378051508168105174690399669741499882615807120062848299668708125120251746233912506002942361452381948071520958388096109718319305065646832679726885742689087953024273559745297864207894982252987707206331402855634040390037474382942004570186113057693583870121927458433906113124531103447460286887701802160248043621889978072278863310443219617687635684780042293793705093481284366155831489637613867925612503485434474742080671849317414131344893741794278646553560460162477707296121132286730028470772857131210378736390160728645128951421266599055571864699837283291054465938968334217947729500595020841196811809371521575423201773462582915243023732541397101554175088680591274439397444665910282423252163916101189401504148439064992788435933848882425207532844615209844107421699550914261729148033518395124289536514900782384283532825491377297186904801625495155978246663854921915132744355934255089823209663366707574248702918495659858952637789092571943623794190528136034879199431562280467169370170313568421711760283302775906335994523755870077876617844558884515379550688499279935603653399968591708241876833436401244003707523313395913938342638549608018095430174682660116495759330614087924449250655942713147517378174823676341824903815478952870277476796183781231594035639052346536694505103546194908815127123388726263432096030966608788785486426781719212203349877593178593774319752635356977288801208319152845198322550468476451103349407685085593293946010136845903470865857097625090800685617364573020424994968212154044562571941540453690361632133138335799484783230108321514603846474232614204970745400424759178228504959219850214494226473780483749166176789569404477673167541382254079032570921321731968095430531773010186756891929772894671885633589420554820296064700161816361135435984537078147685267924701356072823850272987223131981911123272938310874236630126929515112966890543693747989150776656315117437818810577465015494065747425430053751376542800131030985990281854968527836369153223350752220812345737843250275742676308994268880546128134384514058024920586670889315158920944177091217075175653358699779508550141705099260469906670911663910926512913403637784561097286032770083879016072847959114422455943338571393358691530560145066247939916828839561173143137747716568495112907024214974799974735770422612316293289472251228210844003639235632735741230624172437262487701399378522154980422944714967656194733399125119062052827125405449449717410849148813909136159523516508004772053237832941517449690580211694886433861789760022863127551037158095966676735042570497503207292325169987382698641638112151637478202498574705369209644350707548682519305527947151994943939412949785170859327140356234271669118245418365307586244454788618647787654677770475454175480926570908842533643502779643740203299071162313552326353988875898862957823957165915633097313446044521006430518195432240167289433466680566813727708758100872678383939100640089766404120719901680165042324033101655178816039861707638652600801527538803098098137805966016766896606014535029056530574272334707487592684600093352404671882881894341492682873841698395985813522837047899704489650199590395994253213378842421127337766658245993123909965668886668333846291759802421435223086202528492775276599292764544364147692689560291786246044366293065659137334354046473688739931337388556359296729632103859654920291780281415516125448426051187541823831702765320643574131195824685244937630700358115303477245042390796025136813507218000452904561033547995632547990840190810772922522257687811245522615028467201707242826798566168949584285202166856222692734852227806413457474923812675866217374859845522214804895643781682533750539831579189992118027012937449919416795674376977958388498273677553316080252358073400018927896127203681738467248651279480617799273553133407656282769278074425699459679526179244448668636223950831540392768658948052876195411510971259920625654296893669279522304534090817389334352773013441202139720276049417550271831697018309234772470623176439474615155702839096747305763414094365601720792301316604938899694500246056744936875795922060663767809073470205021973120369711129558027681275129572796563519531549903447476344354283008564821359264331457396060321041512243826020321760479072612466054039304061623712931618433057636074693485833739774394780373370029634660659461175479979818300637275183342626942341157264421883130256788156973654473025963281194117587799753382344602071552829451410337372409793189573639852215323515931380140497248255892061149424480956362869117506735583841864774587210023410626166444012027486431171297638881013883401618345837065689860979057006590824050211389988332319149141540514209647952189882125967972843470811764438176557001979514981724663043683798941281080942220279844840082786306165880014543538443108159077111960952126605473282837139371393895460939174310070058133774957151008893217231222416263853790806460421990143758291630490154795918323821685916024204092512022632265336536331030111450207855175029622511507438212362284146477075263127644188891901139657258981032876674561690850282878449238655692578736206850677554309948451784009732747451652319890502358992735657044001004951276337890670088932630557749027682954043619773056441342324776430545919558197304386254388918243193375089232732989140790113242129224637057988585063024964008936145381668906281902965426146865858655782213324320347968485362255340876500834843488313565678679068692875994173714203866361013703239198817688820224051690038499019339291587145026256192795068389027504060599691597005032175269100494954070359570234366601701437820088204362467307337029393483265456533335865454849307059526878639084153976128992041860136270455245665111892271241919427896581841448538929609255608807064863837260612341055971887810723134320798162996240531200445531429473611359952629996148858654177547163767314295094814652711318837971697550353330866011463577168454429017179912077313238558656235804232998746042951201599129867838354724661598582032696115886765472188385056785949426924893641376934085403190086073504024040596170968547696369349840157177944064001455915680649135154386102570875933385094574648136192907441517760272463537342150199011193950342383510251783045345990185063710405709232619926589521391217663316129536250982020918905924195962749698099180621243920641661796239520055602302433967672801746842336672012675776467865162696202493236857753404506961072341903178166511246045613384823905615167702295269883369931774604727777548766253053882918746006879027952382500001987917790274873270566505650060469852336484165922000259985353058203624109286678151797453694141314762548714062782578323456361185627717419697512183366227264591899757569367704946900182116597754043081152761947682759931396339305726705455391553573309318658708459145561707145354379637437020809379196188793962721080996466813941342955707323134414654092079828718850032646070501260580465485005704406605285206871586096657294409226198683254299529128975299324625233696822022798478373984502892230516272909422815742556011494126254508276871982633341737715496697928565482912119890525514577304311935828971769119008685668074554048218083943280507034673738324100315518351614575603261595555996682946926392953210427374613237615226100628689875822481106536699712347095064495288661776874779871062451127194089823729196445772729382847525069386619879253865516934134152716546917468540802431285324466066846726262084099525906172947661490761146195414354604253292733313861859980585503639275738283758830702001854746386237103007244766012766015396122086019248791080095814968648755375463392796294811158082392918002031891655801143399682551192915052932832823215113445010044981115045360625513019678544620491405590589092487177708530093326722614670145357505177114006769192094823424873746120738099616191049729005426517947720583552456056536737391102794279130979194592695575010633881751399789203937262769119161249031611551913476422856038429441463381425200492981606252331761323624116141976778198313830778991626494054485579298384433547996009610297873423961604458390953440308908761255365317400809277298063793519118550696345255497922656769155606982745447025563279250842280015376151039755646063605518190425363544816292027599883483921375015282713906291528599142129683412431056103578220469894372336253267610255433417838468108192116312464760238533480842890433448369660924937336593340968032816188859568735890981544191427279560385269807272255547711731506838869236063093345164216503958485510502623783214569047888515515338111322480777821764874607856252931413835969802063631395381573797248467760233811713472179759371787469015440397706226725807446225917271888843919708024876165419224761446378783543961642751920195724351804520215010076570645776957079434709940785645510111325638229880096742006620518552273474318606816422263642311743089862529739016248490612333050780715976294250347527916225583960190806915347068751370525504053957971031187675430418757115376337879180522356568666084992695816066461619319016757425902216921503735787693950078164146373906340041334234373938092625178340647141518928525201084081709355274019063614529144386357692863503071313998009220097153548938532266541820844999122287304269805371273732532030788744824827506015940856199264509685640891309129183624801591064649090482384505448119178948360889528017307908191645328977295757494696687265511557088653021219474048985618826355852698109569468538602336438500394962636038734597952748830908304796343025767962095218145959941772115004652072714893479521496323788614057103792089132476563849486634223419268055122923328545973699987210973074806069863229996065124229709238128356328871513886196229645875506583252518523907870673517373324479081952047118496281065035137582839256471101709272806429316140030328611460963648797250018530714098246217168392150530849516132216062311955327908572749093440154710855902937388959146324520906970312960295449489073663246805929021809102770097823701635591400492470768051183066617754270953082006386698159647972879320926394586117220126686874101483325672864645774133157704285236031610773403160104638756624894823024443680863167061029163420357714680625407788298258789249693544771885503720871452820208540019177110046633880990902937907806393416302894116424914307941237560152266808270662816112240325212792122970225214086985367503523833699223501388970186727540690844159961733556196633233424425120472022002434831342757306103465545905353975920375136549207970511636348556563902009085260579841608006315974540646473415495722843679364385980250933611961144914835823429634679283479144792553117376172099295498253573931517459871989490917710755273905907662030381222830221563585245155388316179494802244074993596826436310250215963192024185041875013992842670400805366547909722811397306214731802370188822548122456050113998507959127546223903351308850026329777652093939188706557656504957504343019982844592008276551559263261461418612115259909214253388910788855571173484212871736967977932935929047478680506273667533785589391430232408356642663817706652554216917891885319553666324810976012004580039835300440313963506467951631624758188960552013029917152895265222920960896983697118491103762528150551017817829747582954350315127933089196390725741805750011940357490170039765079634484179605322264718684879141980695868420006728554703673550019436453460996943594273460580362601313899309780772790549651581465797264988167275959304691630589848076404622391611391278296394033636684420490866188411587631893054354853415420682988720220020240891148265883877911244418729012038328451530865050856861355834966847881387577503395005166386242922265512380466311918174001819587503029483414952512342325591186332049853930108272086362486558618412258394193216736147754156877740205852926347871517444239496016633753565479805252461266060551323527959511745965935190855007330866108536567405571189104117604217349020660082157646722507099470775607812675644137134221582859023656201109525089168856886092632768562345644937505378326111369265016143958930106226564822857876939953388148569361255768509252659286052855953967864846290774319568884356020619187038952179147992770534631685383973818294692734294583260321567605493182450219491569155259373001074701236311946719311545443483271223004704755553631088754152296602870814388495271641568744834304498574403928111632170382792334904395693615069847416598566412159743719236569606496188794310366384908043359462574909035186765520458083747367928652084369326676667697109919851958596302929968994242601546915374260403320214384146848761606378001440937966952223980356472523925966122212930124713421389734482854717993149148069355681786198322807641625387828649629951727510309782566809527564569295346517485618705183943834897109280273833055611073049109252487383622268640560174356272219124322624947845048696773197943158412096788862815798202119704633261907750052107277601365979162107686861913128728152609227658908897372494720765496486154360999445760694076502401893658843933198375788742151981648607390088847580670098713561874019622101006163712747798767437264433143600552445559558327224880043886372618318906302531373182187291817900879432759102890997169559508721752529323066291576389419316740039761200454956271224875735667144661522263842033276592419393342649521857138465940731791517177108296663093769285006444826984104534488624807271416164564091016656199749711503182552991053336050150598265590377286709007425278806143880047588403989381274090586705172280871114034278773953462214032354070191291054769108859746700794171274153931916640812992491848933800091398800814816427320105145788829702570866501551407166516566750619768432815088126815651302809295167735062673138831563097386826142957297875396636284138299624541777957681521639032129994825878838512338820148740071067622482242043080569706960296572002061743995219972491118427858604768539416011470427327396119487896468836860728221391183316252837905503359046209042315512463728239216181207358337620831556204050072606137559210404695224909312726344836895032799424419671469250035261434864534635257048130181262319858947703485066447241587230482453381141681150662421519178009969404935032727599050994509547814842457908730938046535681994871994671637307313542705541076241252396455249395828528843566999509485430049374928102042985161210768806148869810203500914416780695523088029946826610332905741135323780475801137454420408017618816434101509927989838241650635852480115955570788276564960979536605490574618748376759520140045992114875228151679837819755524082751064415977675263339937941975923998592434384867780126618323042089163994848478907544856641210234402024164327260902020483077732954077560746519410305716294226609216577932192298170974329553577474785552641514471090126833993874776299417562645619137905397032939664613511133596302712007941280641923510728894887922628105660838093274463131001265213221254383564089676711658500569962944026637121118144210425631712376675280153975607572144540828834117360931557651477921183365503685495154962993718511389290311417737339516059117141050559466336261396779681918452706720272754075840999142710877652897482954507846927076862912787040278885594306452681237605734983685024669210553076791699410523099167238890162768305846449837619249294884980686856378201596584938616976760553475751983914794271616810606099705985921991026066257473109394961887491982130115445454398637514515339355993781020273353217503301096794508566317084134567691137360814820280031248242415087503162720175560413516900066776528862485298696473746387512117205315996096134384505032297709996520033662841801977303245940774449086283593760800402738274612765419073555380961602506909198508188709972952351044852468183109467776796317582638400688762502713379875624925008047388467503707632860925207593195027229237873461397782467292753786281159908114193108646563146597636512067470205652324806752944271206530330357414165068913613873818389035452416965784111471677832052717496687262287411496701879142155965434898636086432916354717511141803099787443807282957538513888096230580707260590359444655335671406526522140167700091859076228485026029348634700256311449487639604002913056321031312323329169110755695269577032971825702804765797307686751685045323325289581189062094923593504005305507922915791858833553911627287771184611692277228546217990784784567468065435707392594946633184690610200300406167635610039167813883576132888910888539568331330825307431048376994679265028178218844152873764004921788036513736957718572902150254203306149948824259827877113214537111656635613699271759049881108347734587686321800582998205751098989343785119711456806728125960617884178515772679482984756799529629108663736182991189419686761962328344968244385378574991966674524206687798571351216024376897440674183326637925588009800400123425635071228959271467347961620015272691827414492351069876188996778690008283000780785346771410072998373873992153449610476968799358823298950779872436861357514951012944910354715831734743924325945500002765390525587539556258194780878130183599903021165607834707645946643687338540409348730999302522822880440413455071830757557153560759642345239062074450853392114563550926303876143474186122617420346049030916679187928775345878697769823815701577972585895509506408992233354408307836431491979449542913841435155701258467412038828448457570640173506963719788889091496081132290899613413894489446920336497803065567560516413874176353490779447507488675740779324157356469799370733549682476338779353487328974337485913022694663869789041834508882775209701737892369079070059508908116450235312579595584560831377390262980900008144803183692915086221401496641303625306972885534473085510964056833627151172235469776115844438748546478276674669982891454616156962989093470562263589001837320909450757459237637546265969123783995538118603701675943194942009084798874751742138506505395264392076733270529147283538384278365905899579568998762622909583365042944830911516019094315019672244959070035474399196310205130539379177857649513288130974614474280718826396477565615258957399476538382369297712797783631736488793065430873055511343707013175911647931931420379536018686625026500316001315819640545321765135335764567248192231694312227477831074756748634162359272568655065334977290368721801567866762839033452914638178947197357287789422449178269939036519295743840231117503369588748166598320143614939284458938512059241665329619450044272192215954961725658309305903467375346762751467110846101230554864183637595085643029217424668430391270784268164368981356652695911800741510926050950293293579824435949828628293044191212117004290838237645436164396988634524176472531411148072619081582685032507991807143968048161691892161056190267128098622602848593363878989703659401637861485849163904584515782502166722930660328054898367972323875622418209308408223165697057634920674170690182472488182132649054102240425822484971481900351384291079453140252549399451028355319695161952091676913347929372134136863977587944118823939746294294665236596682914700906492718078031394194383765890363630051703931065782349524457018140003580259091042091359332492017418624572936013856140227849952947335402533220407620141775189200376333133452440076971355844692431533431959036576553852452148903590533771613171221844917451095602212967047062037473850245312607033628079853405203235122059321962494195192235055935837890205467383343754512036148971741421215218360794859956535821596879388605859852821640191891513680133595966672091146832734793080066623212987799647636629181383099348039556509495895470951985795252931291090901659180590977715093054182077062468694495420131281901758901134636469090624182320141561574837217179005815468085099464317193408203725242865157990080852984899106849007602306125030426868637782587338878464358635444280595393923191343162253620400483045304302464011051691395256751750410561196982405263532474863980278534942334403472855122238135159177921866015768351225142026802999572069288729122359674938127293759198091419931116924474787339055385911533412859024730843729237082710424267465213136454958098752535283738884546429587187633488309715647044678933338345398475637041242326635209005111531842944831446406037754380180025633172375658162858815847231784639708015842571746780760886963267849969578605154604498995368179891342969746690336308887344246775480801540218741280896303744840627009230058836229468875050063853887862779240944668304803872976313630067954011469973182077111181839606656317177305507261434161888189849753922686814880014461303767180773073791630107936807926514219531933059938295629023893091406565631416691530117999944452466578080634499411941088960037089263022385895033040902468877386069650473959041350020503817569066002848158490540076060682605624029644520453548929822823255701729429163406974419337295824799348892942191357036023749412431020348743457292258752105227444591685777026072511626023601344597821021889824759876689083978036799738497307675370954811437331151779324029831394002766267551253527077272387180372674707201421304643029112335776429013426293108336190520351545923873216082967125140516237733733275907779816702949681785412925656138169254884877295529954339054123528613832735301032775808619890374973237310537402122901076096896539372069330787018069242892017847171765155429827235440357155153974337975196078057905281722394163498990765540626743625881347829741615894412713054627387431900986743786943195360561192219567425225436449788674026196893531047293863396847099437071332984597112586145904318202620842854287896003971600241873615511719348607909933642056070884680457806670755184604241181419334807029357112237706142202778801126261136963515346359363599552167030288157743009499228312927149627715428250318750098922050932088047520020831671872512048426843833676286395396542129449687001068140048260901739813756047051393153987696229313745758995582904296315147786771635697199682456700576334173424378104907059110900222595088901236078377948336392116050281786385309088355248439176458668059543605433528196311679049912848779862783210135962087319558405629426746834308828788354088701550297430565901426231849849101935648935979421515223150378600134499689082388886177846734919900340553379883459048225898257449572201890279382340064718542293479349890629093120937809912036863727260391292257227800125621972611821037771378459120342976983539366913733341204226646775135020678844709502064580427895869432084563797433341031327501919337673883119439427028911636455692068629460653722874678043694860359366799584119462475543622229027591254819153912109533562594674137123195312462713133747193137378697918086367381343252796124809135092363936781457170619823064098060495879111085836289234955806254360838934992238182309868504246114440824745018348296061919574516148692786281884184651170764413971686105593335824563484416587675140667864097002421415628684619334897775950086701943694235384987195830839076898618956173766296054014173353835945169626384281087203267614056096109366164375164844601587004321184752634312862780511011118534892725931797613193953254863851557171230136423669188444204096320067056737262169814021319401818572347149498732226624358602357349036626207242947454271817087488681862881940608117597914252322683041821053042515192454582295641987784202657202581953728130716158734595122368695412848113518016708066048593474396010541089542181397476210798243431018588274292129508642637822973852854614403381752978178127358113331562215476688653334031003855435051344922838885207337624151263697846001706964739262852037020806933791739865762402217256426319532599782523732369590598885192401748416916714612203227170879888625603604058297654679197905035688525302437772312992043786903406060596266183286963433329818836526933023824801892726853350740512428033991553121328049080820688483205916126194396955442592200252202877479907865006858948037688934944327297629095665735809037026218319221181346073336360554500900323772921686191683388311672996641237470315426047559151008137689881992471203228574083747240828122475150831864353787934307846038958660814288250747943381969197136621279924290000862660708335970358283554693874872147020600283566169276498029709659791877473289543796313471866366448264401424517339553230481417884492109945356285184029146029872203903229625635719570973410206146458845654321897708267552005739362839930523659318432647608189818467902724775154610702797034685711213251688817743256404007475768351142720963335311332110068625009384026676823679940529744395411195953338460419541685251365874842833098675806644946822253008987630263206068913448115481528298948560546737557379208488001826274767781926983091790669693120049840208735660706702248884493458588329864319880917938051730014848097449982131223041876341443316375164652734842999768183115494428687682827095197528581949832018609722428422728097452635973860472286195340591354873709016248619990186162418486821649986206208010248355904158381727544131093632674549748804836890329475462978479482914082987820577607124820900336432350622086431593195093740823741622553711081220699827239107737939048840790618431271115249992976394634259419552572015766396068187047871005176447944860401342127442792676278003112464535443892947083395301762912308225739397179570081708539427076401649558255720334006650167936734554792240071455335753711014375770229175836879601208313291013790467874441534302185731211253876951643090548585271805928720578676065558224144246025601224794535640076910714956491030348465108456353488395646677185339545280527341805817239390439390450630535014787296216934622998796957138530415041111335357358057129462862052904651449201714857731547309007918948443734115688401343210638769065939806335436970040346684239958263981444315416731298495946194918458901059508670152829876311215854032705821181644578980758378791072696793010136591891410639079488184075197167810989170383295133330586195359096094725882837624622411951878249252593132475715698823810007761264339469528736994054116586636778215534289725690075337787322055045720205975066724914243955822336285139987391604485059930274481562950688725984142608242541894797204306248232952755798024628368327572226226265021480668926365449911448625841556928203943608645734995984158234376846636052462563360689869495401644170950462478699041674177401368171604877694286068753335190850006510489690332810023053660599036910766903433773015634435635335049216794975922666424009310424382030624782962586994087149132171415197585519699972561655011538043140266411518657251505193448596357862371934152045683695722410571731485837828558790580381317313438766168861140423374619008524340236125516632859732851081324127061495985239890426479077042884808656901333177462708095270906822319396401203297863199832678747630625956880703481920490812755255459881508110130911304664099712320268122056917919748164741422850786976778240592829714039621761140196535981145710210495903260419626624343238015067375239263643404764714304151814999854219582813467290104481764443636337936114958877006250749023803190238496644757313925709605289645646833917567041938618918850204282686628422754856795238616408015809983182368013779223682527675452615264172042848902902207269433601245661695553975796766300721592593858122727794073861822798502601954552393755624193147876075232550975235171109296319146063635003689929700544237457423707304194848073715133208500496876156050779379308162643311258601539919149195926243241357893669809243757204779831057959302245616473639430420041351973063452462252392314218685978958604489220339500275348075798348490058534348528249829011420546081664717732362107161102984031922062159447692389427558036378751014611785155203898454956238011996516906118901445682115864301026437105159250017685723125740793863556766992462142868339469766946585086433358195862067021645821786530218823962942971027988246769408422539606721581286943982695590283988050888778130162930238137696240260332472231549155777570079216386513734472300838204250230119960178794641822918952907633713774844568528903905029474873645957722721122903922792415774519791650427256771255812153634776902513272758772540253742931887889115923535150300644781381396713392407471131439972753441816475946337851096042664409807836109672167203633140766358117794029852900895852365910243246803233498713879476460367131503478738656804860273861666031593232992508328813113748007270427667179055882053032590844727554411147879871274972107181451915519623218225333420902113889730502435809335403142541540905706197666443898224911040048162256219642971523719727846685316725505826817536137530023156377943660729618882905337272668833321343761171477163316799068098100674775024764000741473554997415201463122692040038551912274324866281142295638654923262312133729034542261266042167943621529521459480535676823536002545823072529862212804130450258455015493855106921807885719250589414613353739449110956271831243498102138612257927170926658578884943081046057101666975196599013873811553267459809760893761335800185662415115168464028152897950066144498647559865668075689085742391234236917968499512528771840570491368783068957721129396753639637386742071682249663063062451058822489309424897493215400120878778421516016235708715334283638962099547030368186884283234253458316522864702551068526698547290938342156070519365826474746722391062218774867528818436334161050557092260315712231343813282266228599778363635481212321875141777640946990717703231807740885270398018847361478062024222709208743601193072819540505500441035868378437620729336430261717230159396049597328140481392085850325182461292492780121809300463449008780230915713947091012588403786677122292982216317353919494239300469553513391877189834069063971948086302499922002310060792213753617680859591912095373296081426485151836513544368026570115536798873825800481547958632148057037099559185898925040829749248073967089456110649540676245452950225145548023523981969849841949546688062808807512898453777376449494029847205789162976322341125675617707704850471801536606593533083697735746927880645605626845175940714365396987526472458778628359982998619241845673717752804019466159637469527501961289847593620530887769048684619595624104139176261254504729580298431467796853568115545096980238145224605051511009149995572088350962416194427555735931153827729006707048424377843894523503232809047841822035095576221889110816956781453759751465134277611543960424932340653593150791138524693282139820416380785247176895526792147933525700069933266811952074867896599042647835987356653002598590146802160776622014723365176217512030596436076479854148638649314025541882261773654562628237678584404455001794269286427515200704578149755785228164174599674721260159356788491694732149314652126696467048543911633892199324096635347077330795401786417940006393841085288084379179840361026124170816434821721492743612976497121069704878163448470423890824577956434392394686853238663834279534782398365921208932884609044750586153641773430549695890279829085754119193673099589541587549279654456961405405783903211463950996662896820753633217649999416250183380827095073621492278803086373002220089274438649015651476029823857611946911407764003674062025693200511125963308114214819691617640936814829991609234266201635608612856189079011553077005005837589838054366228948263556881907283872569430620187218830507063542332607928318101062165308655943617208177380061486115925960241918816613007373184605387817594823018839690977012042591955300556848265901987099393441279279848174981396858436450371776018605327424009199217947393226790189644310144286291524773839347352480287428111945210747815155700778755212240609952049817234750420148953830831595143822850328014786673271142037135656023470636635449032378282226015407668741582264234792620895875850047067548067092314090213894519819647470313796041414740228219238194085757687817809004015461161204376909296461586008125399193654762064049754241390776555819253051877716737544326443499718198993587639550291501992557543532860201434045060361484174086519554677605255894337265353095917027535988069781676896193376400207084486251267161601466390152118514139999738419658222993864477721579547258654559081805237955566642664105509091674220192801725455665297955309968715605746206244152858696451032140236299061057427246334877676619159200983157774650769839776926710512680721777788920509373005824059569551712381166276000731065705392808852625045784773848555358984414657289606074101374348133548816404770091565341514198653461241438387331087900294830678300534817155968385538346676408706938134410767321924009538131183258108789896518453847679600968587857460692405332528502059441069618974016105784046272748246873234531195413224037964447181839136053594493399821733571887734952294699038077019633254802090857341674774172112895065391765809536834417088125690637283848179923382248044640998411377255108577176483780535233605073549429859236652554945205953826829069958530809684568191581834694528492889801910285727890489481800239438954159190504313088375556367749063868096152411647509967702242865375914214275729834117260925623234557759059623409580885406275190596961181493430552746211484189854918287588411693047052766287936746264144503579420348225602948361770689901808815321933529326783062605290156520768478684114290566243795476089754030620958167529186220549618435611184934838291301492987664430868882851402636321471275784071220048286565105164569227538923890532548127542707082068468425380451618254658346016202780240153819657962007018155626335630238913469729546581655780754671348178844442262890291197903661584484365598871689716327133920534842597362047152594599661757342563111360666294328214683452971299353908903273841873684478844643916887131083482604291290369083747529463315074908414903592210911379950863738962966354575572618929934272937463429742304737667606256726221048173811197553650787190636267893807177979259139508991891206032164861594668522364817308583882793858752549120989799663042717274870156288493215699873296881724416363823092843846940785252715144909308994180931119149513609208737864251860823178893926318829652303771958709534940141923349990981425108380088453726079143262559941242024187619615990868341914083708837091395119883847265911305145907902144956874502219654558943665139574877188289478764807475550831944077869809225933198771596427866281676784626333029758191959185421149392697200539712958296065635372849739566829666040741189321648005823056019299713935043254270293933767404778799841672534071370421899806264558829677952685796058248227539889588595139882863567151761860723038809370964472827144405175529912719260088666299505125094150229655135876452878025364038567570358111433462619014215242264156835373705707712901496831812268306041532326356100854812939061184775482200908286377455410065396044097448444901293367728966921006084442425556157841543484884780715133299456596784897115731650205576641436519042942383345758534346426189070467489356972523041001455522856775657194544824337361744063653385790864005832494467658726547778800945675720141876781529332808514727752156561964390841073386777944575797352639737772657839804681532125553689529084769255692810750708330136287242114972591666279562993853782078110998688739362871452179327356976532678759144859160527586850557126426378342230280666100996705890463929872075540988548611974828280187202116665231894548950898570831757710133943791916655653172416320739224047307307304809655741543230550329494280230624915599729230067023188243764577969271896487033738007599233049945955476629899080215862332383375864384649720185215393889035812231771357150414947238065657560794151691484627651936973223771877361768766420622195938243192181281147553875374142672565143865007228704104045923395616328991430480908236161218803096008738006133327765074496235214529944680016274997767851720712062312806885519684684773951749873030580370201077752229012969945231841811038423921137240597925989947255555392313240808659891371577912231128454466103201729808892963355657110958545440392482798290225880237860842449534546501791698660643155519502738545760907907976597137285642547531516468720274512949424203122114493262326070925022275132792490835587166414109414333324801613176070430790939473879881998755167663209064259431901211050801679762826509053964610797642954760524543428488996618845187463551378766640446988006064184094722541815810652102298850040779884054273166217505985709468913015422709780682633356614534297018605982132663390732863897413918159119534218140084515997414465236702318199398778606141960677887286094717231833245502086098755667600336974451722768727336926659152633560380347338533043073076759287391497993629281111163698776701990822526988558116173975040252368700064792345862872837011131958361562965542702270849076315181200139394473729144052391688209635410343904039797886563594057133744307952547054682795030111647984109132843784471341411200001249841147283681488566148853456384253205133797713347750634078919222145244805357873191703591414905847365879133371358876881317343494543381295898218345505911328317978655426037735782391345105955768673509675500746757238986531524015434789438362722438988774717570933205689246990217158391635119231089943325529138766840188295848778364410022142982931695867291704217019958789833898779034009189187871317422268184466941920613875234226257082958281478938890706590552625401028291149440944683109562417598572896137350952136060368985818427092774866563670451045288771788072621225784387757719093149678566496967652630842781450473700529194579264560139243423278833305872387258156202187544489736603759082105010020599508312659755933027786987209544040450686364032043240520369808086875342529617828386704013107240990675526168874513298006722519705906332366340944710427944280727780751292835318325243382592086061262451290463430497387202141640212499968966738977133962354373461433119868578366723394464965072658771061297995898440693933183520733651567029745133046259854451140878325340449424444413461600846881527817567651366385204251794991574228230991101526185737015038294389921693673686151098843203626259691538783076172116756943259581529032291548497079810063796354505479224533248001209966143062270584473497273519133699362586971936884004985597185051739673464820810543691295562309205855216971017207264525373423486814270179178782178798696932956429089724232806733969419011692446437227276409801024032712976084688738893266468522219242244023329025350639008734158042005333039127502134514554348273915805818144031223035818060325793544353393064692098180506538505160170648414126557688561673887256110848372050454386143564406520393443551437187725559723613998850181521024187916064837806942491923416936850367530401967997230660820822866397275919744955335161651768799076850218181141457215488694945621848517116502137636995388522827009479634670140514175599741760321735001236166596014579314081880666412765131510053226439163425371172645555961226722171459309531092842957220176611702700249447383053131531943375108620432976463783666907861496009260655864319421712137941285175230264974975742710343399909565674706507745292342554796633962913056988391007464252749229800378446198534843633115702331496059243786769159600827868747938944265482447441131861834585780413665558208403912125528217602938206265551889903846002141173850971909642471486546513162456874771661997835447053346723771438356746710651733546125070527204459242773306557739217333955701717434433679183151956723867361549532759718733859419759547465755144645994966051742525892211824520387741385273951025857745338756012121468584055548243364808207854152955984543563004704343049143415933560079206812239806210395567429453864964492724726957792765684579724292876982035375096329523339113213598570941445002050804469072623231683994321082219654351396990132266568393326654535464816846761507301194703675730540489694207740872392063152328382905987348341294437053234461420241262231553953807168958955570206533424235003423944387537795534493507799383888449333274623176366665339797093633635744996880871693943741188656855517957518119828489193655238387706595458418033839508875133209323614511621884603608492476375420192928364398553064588002219962604146769947558121045775331700597423420987510445696403781749867669021730424397711144326171638257638308719545561291095384649828519793438912527163068784575091934724413110932610285620289548373349517700849956809749380790533850648201619368624959915384247017513126377469867488385191158775516751492821189947987453646696110253388364775953889737259396420381862523324946658228769766203776169348427688177567534509025649574650710639726616318284190899322796046326303795986486771685043961376638732816222131001114552057515840194515370826772617847939480774238291021101845078653433936939411934300322817904475584452225014704080941261949624709388042442678933596981127330660738382083167081735598602933941057276560386880129423316690327758639383743744378610289883702913400851916346301687974663221587230154432493871945827825211313152804392664857948621398147480484165456172227091685032388570625686017621773185325610364043559988904675033701456200573915032760934236621904815061908679186201955591685281618561919413812032400802305175567549914624896759366972916613311549864939667169836328526408388869535283212308999356699001130871339111903631450363081571655474786755855801473780094632919124293143070085492337153097308820058139040108455086926620702121238429305111981824693898558162139504819853668317561196093008064623752287224732276661551030117478059329910518295471964955960210429135062540606622605654676247072113969789219213660902398567365358961769900690655687054952080378608741965752691899869413534552215360215646623262812309864292690702110257801832376593325805416355413966392112968108139619786597814045704647965927129744264559348073930368739040817472753985454208140664788734867887296289396892465061544807645155847222554915318957078170019910948113015675618687978158857958709799086814143548381694438262582999051272791319702811029682024741183178473229723188914051945501940654034663645321382554364748012291433860927367517328846695254219058433223736372283128866213833211380800710931991758340220136664497213693045012528432402915127097949942663495344136826702430569340330306212140105429794282623336775178971146489373674255514966891508781456310506344065944190288017797751306277533058252146820581993335575851895395354369293589076823330777536078245055521733053539403574265118003832708515148294521219230741363775091988293740339521276160700530263430799655509989098349407668062694949543956551555245654261253044694265442024725730953829388302027779815366046980062977040061987889644594511686674939942626427948115549248933058711977994577312431017889882715349124265136314002191140566686888389794352848707563426805552935005106552068578395891045435304221292530033396136943477531696332043030337461144952928247532694299003995929091466563050445958978153593243261860305420725279602855862926226034214157502389555688892054661699650030779602474164430572744256060802314724283469539789480948305971070636430041625234714453066621329929406571438052757151408881723080600284516400310131247704221849204706598074215994427978599140376928063126540272963287950692925460832282107158357304978290988917612825235655949699669509855236719821516478543613504869664106824148176831388626043628174924478223219546219115808884992155307768647326859757107295304850213931342526089443733398306479845864680695266327961121665507070241436526867949883280102855107483320335717646429321452853651868071850964084850243385487432396629429292335310859195006659682401300098530663726412031864643652240520086158136894810077077585984118481450990025521804333104757537601534583364968210664319396619033502904999412431017674249736536218043108404335930167768888671152618704715285214700314831954093545870709781944131694247697321553998647945771784456340279032185042611689519950702463994721659983983864093354591619398350134159039026203222046696402625060831063985597442280078499505067773354724575653339414666869874278436982528339935801737127979367557691892335559212400157379996307676705145788447470647052422097706464486379771058499769290800952961344628023861579826536720328627813114654357593290210350790333171132864996696391888451491060392298017281122520298895374371218755889995301560158930328466749848043037231461447310893001976203386503585576481027311128648717726262980747182060807489474472291526202887252402742989459708045524315551127020282166179762122296661160978696909796070871249081178742309299111511347702086152340871461232331074222689225082900533906525423711184644050392255414296501624903913287759168090887132461765735396685908846138778122648894512409346187755300305478605272528220209732197861430863375371262221073159525170975998820017991934473035419126084081200719868085835285176463921007282110208427352175924151288541672859038097758713378406345174177766266934586519394702318063794385744579780435841693673849530361106187473435035684212009187204694125256436042176358260340078271117619514135067832407737798013948141410168814282254084280446753357527295365874603854633997916834857792663787058732483970890578518800832412757806404285864759584713646163202500409581386408144340088317208088026445864964053339262029172350433304306111854026360346727425957548730436813422485515370152805706708419876923636897335215603811043100490668878608389229474276674918584109848726907378844067406893713607271074346252584665871569177956503557039471708844689138308761278353882968250214510708361094467083891199158362528042571431798123125718116636857554824510977969711311497496205074160256022641535832641147073588103493087593140276375888272422107108664749418502858436547803446378802084583486444820951004357921979184122768833261906914502253840021943314805981622591613262648433818754048930105157331153717317015540280667035221931096071624770787747721999194473354256976850423050250484135166619424014680751938853987102876303859495865165732065519613387860502477065607592856455573722002889253758114231892494787837608629417904580690237156953110497224045377806290363445179721501635850319331754504835046127031622275257636634557193854358297848205626029827575528486280488617461082358256233748201211235796127592185902941564909611065028232158536722716404643457237676864236183483850194253049211489565473670931469696340466437452682270674877456008332232492843295467106879623851294395115358326026721233477164272846702514689522956077802249868752498375656628963413469273426556428877907187155590985325215683660914933269161060518966044876475242006079458303654285265792288579576011238464225426910277666835078162543887779580344341645371558292623469884539100862194419541950955964907128494056104386727144050171880488133393358183999153958294920044301081010396117396182101672461961330182551600459694320103727289850755696340561886561081094584508172349596253557025589426712831775354892080723656366446132521717285225701423628475110776458489706379370398167646337926653677426933453994532549536145024239410074560217815304545794861323780027618155123685905494718295868608886073790424889543661844008373243220142883134831494086061282661277894743959082919380027464275966806906852321311594660359419031752846551738922412125990984473186127335709761237491625500436671904479906136803937287700882937170592684716492307876340972011082088048693822439248180182832757818898663389960343454159063866944677942857753259967593000194283806024883232452268537731175680735354279919764275083449100745015786690395123824028479531797302729785736909988786541886001706490068366288720177665340579486243696301088426654269610629575251574665341442145305905806595912228814843815257149626284686604327292356270681383583360084909892328515992223190719813668907013420812021719617918064533351312949583894413009019649831224963925487051921281678772129520913604206977957226893635877929965658407679944691953489771234947115583554106689552105993486770334860935760604181372297203762479330497481761942752462030013739486431234916662070180048936472572579452859309006836298803876557102472309472635836320141538924826471384009784963759118562710149270895806570429786392266200155672259336299508943811919878053460615429185381355594324210207131975835273496856598413950022126145873409346123032773505158492223447992838537603671917333589086202276417963748269322694798386099593835762219772676185161709930251997237364882883603147210559423287724784142041786187110335535275203844500471287088682258550640692224351432731814373575446940072498450994669471107320589767569599121849682423737557483129326016114848240635453502996609263905933877706729057036078296126431955294927136329164112209025365167260658620222600728760322070148311298199464279992960723447632443705267907629920129713343796396630952802896615533599218699805462917164058246450371583918522965074370500341578583241983407487781147777319268525946659286298889142307968052422355072310725880327399332378461617901249084150094782171583150179944725544170154022500722700966371270087107254309170789065426716088703145639153825418341602191782913052867949768531761467879504069568286752393233994741944918524439709029414550029503630970166857251947982360239861578245083113580411764331725568746024023997922924145796888789061059143634065613532232743068725873999569496374931296567416362456322339086708420325785921378583140654686891284632465816447439006244391419678712818043378684422411916455765193770791398577995207197447749589231212581883731367182881888760611829445253673260884890201274144323053904991068525886551387905463431659274245987845751588572765410071857951009979029717394737511945792847333610945667660616169703776109606045009415019129637183949638015974547196895240688875406737963502849583920371157751777210276818156010726233833268087693989369760944423612587694994773783373155787751810227271191522734927653730309898677561263766088538446926824895568028811264130809439212447359080681359327115397355166989108678529796094534848341051744590029910542843781153313783246806719040762547986386817775627500413314045530701563077886992600867961798474466614073491930498588809966537624164369072664147761260055041723787436956539558646940199224776477248617745890010609606587251974022504163895835385296299045524679189153024423535942546822129062048537489621782251204022640851872085401826621931152664378349144650453957808344844315788147915614331605694210258932570487818461519830817636708325842252230095185557181838736530175809382506705468321487407937655933327059896635530160569512933775514552369223478327369435176520295443379245670729470990439640933647629093613061456364935451271374114240247191510258126454191098566009731388552189865365276182634582571084438832027255190644475726051207997934769614264408366279121070382298836716277334921820678270522643020639099784585551995693120562757293974762923668480773711048589233572701679947768244481344461063346569020328417824944398883372677993248927323522368338414186099819389768039045980976224602207864416134332193847293317186600189669855021446678244313062648542496380170975770785338914616332637622273919626303017172362590066939182263421578088586496932757459692407309202054981178154261549722494447526108423607511590618871524550154221096940238795674948654303873702345346543860593888977236054790611178159738572123249442874378667001658304588650261474634617980887251469733025416546496572438201506213611811751585348198516952695897968741124958860881625257890673507561000092753132445981797832870650850129341885260582233772416514976672652758787394237552458355141712731767683977738901004735665913257340182417762143334653401971485306513445032904970090073664469861949809668875440677143605428894012505800783837201339573409855765578584430485477687084542452531859294232402144466208051779732445339451556103618918236588247331469444003374924889014896396263677327073306481577176415145503141154111189035387798506866043745446329037464258820746528758474171978003203615897631958782815220199806569004396004493303291726222332188542365202299490566789812740954567631066379049560408182605025827061986308787259222658914582236219216266596784846048169499944513406868641066403483134233560824969236166916215297760869757547151493631029001000859344708443750700221810214942978770074955925306485157520618385529206096058038702425798707240748868434799663109400946311767058936148632510032891455082294740671600684963860311929268122471640322834989994302044478180242108395986442563533598219952973824079603459915770358050855141320814725293924557028705801860016120322758921902560850017677535589956188960510720694568310621953694358428259642211257880895758712086082613151488044599104419085071074567192027402618774083159757899965899094315187293907920664327287622277386372312418307580885900086443202455841501315512977701209170748858712945539489589131799024529252099111754700720053024788233813806584299255716984500152470033400419299374009040186762228738048265495226180345712957731605260860051185808453079544527441618832482029423320344573312857707031025066057985539875323308398764718321474465192551966302315030285643770358433737333342121361096582903527037836916199755233852593198894200958280408706848305412019233387935802233223164948629642831846182990224962614190039193101625998957258752851961411164412716077234500900441168630165118932261706746574417215475447403810796328441566774256779273842134815135569160533501243466332979530129637476911995702624225117094385306554369355355217034018357713366427312679884489068945792099604071136214886660413551041338480777224643972434005517050892437547816899891169440146260942972732046346083174755630529456279014209084679986199564133012538754787306111619269566600991344565663786837282428284670356471979593109211563140217131002554779447654611138065144961974492505366461000658658284108891488956229524522827075739158030907421514102766753585042438549319904889466639110261909443217202582323410108851233760913184458855297708708696303226150280495100290002832100569910100845861693944105958959228335240421834749807171228669611580600389724331268235020746873326470341180111691049686246823294938941516477415567650698975680514410582243995461419063808314209585436487081188000580953537542858210978530963624793821280221873280550564876695170954805718694749013225796983361542526681764187628747532691916471153708379055571236343843270109904465640429100258221418626602500736141828794358559389359965020577714494974552696199510279082871229501396702532694948791659842466970416183224375548409320680467939402912432069830090586662735755805692011081555156698656670747931337586355819171183233023007838949762308642485329308679449519984252858897301975375236033555219433929539959570601885660935676582396754054565066166937013430589132803966936169942579489104236631785202638204670016160521883207887517736520567051910781246374706685162284755311349630781192302719402967329077812070934035834847840898060617076225239461745140592425574780023498663765823670821324826928419520447887965360584453910932653735977121356787750693546416775587168231911302470858080574212383930088908765156733891651186210616175244599818779483129677881298219476782480440890719559887875407459992503451214131808306160238579617922883745450279866703213654989568539805590045470399064665791378458570155525192784122199190640324202921229512105266703846201368769380730233208747916058293465494476880975238576571926015585694080955499388302006972319877414446781833924162304017103277262034676508109316104942494173318780614402070222010818681891469809815200038239789449720118333717179519437348926728156130627764519507250744787259532003611373551893386142980016120636896479499585905217332367177536520875003008500102556440402670095023590582329130715964307075868843496198786733939010737661568805885098664997922869970980425855731914863415503622857313618060450664123384519958619491481345114847238019180119726723830223304323548791599383063520565574858528492790104740852648564927274813297783793432835077557021560164350139982182554546181120100891393679724559893792330970052400839553403363906196440347139132200472875354834160009030602410448426180998135134472871850275785436311038246071751777820115952849534749747087547005710433543123067947346250434592760950854588720166514676706760851090428732868918386695645199842170680378174586981247610690685863136498413109960411417656242969628963882631136602485458719309762357961403786450159679397967758417021766240219060563600457961488324706837322782741602133433465383111172086732315094524718729168179442580935524111304022647367801675831337867241032684433682632174906564430754149510749656083915938708025209329354126738938014660442680892307108273483939548709519196937948206149953977863820943256037613832894552999109953979439412454971128299388916111563453868902458598021897430948453251941441883275193819599197150409617559470458524473034223876105009069433045336769989144072582266781279561214217426326214436966460949690859301523453802383809423725735394792137188249747302411536188581363889308483668233601305833066188373833727949237891299165457503291943828937866843820448939159555967959485542079734788127533734816494760047887451489933821159015854255937882194189568481993437768638135684157675762456096362456998580901701425976956943232730882622464656459525955091873735097909690796812072475840810712002549240372512048355620330063545234378229166655043854927008735366673519410179349298680545514382513570410807916388909097200953125290972600147794123939042380593825060691697846041204811173244321488221607433495549304831269171143134321530265872984305877253385968734216445613327835051242976651267258524820344805991474057598124607898403194304311954544273562632540608501181162522983594731805374699507141193386603218305748480398392469090402892331723724378481179598316363522588675800518156768664660419239270110239800030303242827820886691089543013102039722919767913701635539045302423173178096205637610631115139726606642231837073246747860427382697061477984445787359547463003791748395906676306308407477067232122723667101097705045201498682472464303922671338607555325399571216674020283183104636542731742236382995416183858125671315895251583556494641584579978540042559868959228950295522916737079678858483076185853151476374259580507099619256170468855103988719623571449018213379624827581098733659989648207412629599165996902451730447782328408106409046060504854060215525821939799208335222354257055041487648653631667666025150686299094728932611989146119731936553169903981446824379061582282327474339319148862646768088226487318778214378119585904659361573394014678502207131635699461246532782385819423278378970815370651829585441632177541819729514869779050716498449889450535650087931888211914058104787993103295644542421382912712072389470412738757053790340378206073650087427348022605344509521201464691688544553709006939033952248056274842243061004531348588342497694566333238962079068135695187898525755289320539842326055280160683061456462788250180634355643602312811730280066485980612216861591846928571513715642572724707058762073492280953525318253481958340297531754657452186383443769381661574579862580540452179928590726245381020300513612238866395963044455542382121199190559458475506787417435905648707954642484480138591370451710806118756640008496768017183551295537129805648917810264537012287693846668170077485803647671354540752576696962720647186019892785528116078747925465485985280458645688277241190800311427686472187622386829827390869809142852002079950863368972426949800067746768844058759520128501659526192963083432541930631730253263851597512924552864240031890023179967896427871501084134712366955963914891409169986379608717930907698682395441683570049058924638072541084119862908029983360612387121235651428474449927389808636638611196589396498403380465771526916605398662020125487499158041696452843903982182454905039057084164924982463633684443868240543014390927925236510675113007006546212594859832829886276481303152125863257241754298785264793385791043529434230974896686003472597371870341773797815057697185046085549838649532991136789245735960179147129436176403477649176578725268438168949278066228967777302091012306654088188723958650107613792652136747405081624590879635517568718374476854037786909592320345954227798321631757907710147693972214970230720282196975656616445173702493659021181055562507934809136564107708683243836727154432226267737463880926604643234558819884499917057517859879286801415065002302866596854543080339206448840376753864202774340032826687345105118124206825609945463493558755368719623357971092560260917697350780274386147790863370190809644471412250795061625485161010651360092601656079031835485506029438533973604447336084839294209100256468024351293082528653066421264127092422378997095791887108565177140336370507598141760246525981065148436952766556074774317870763121943376391185953925199447637511417297377069971877016375765795911686222021844879152214028714779409457485161073965571107370292407374593042309313170958326006511438191500809842429754741255270200309833249274906971200057626342581504273364465736755696372904243361904197628272605097284008680626329979362262943325881413370146078379307837263119335815100148517307032564566437070761646756702045604471274660563249278985551060429258647011241652403106594548567607488826666116965565287276285568176428244569099402612483238551896592422538391179869973856050750484722406311513332478839978709522731030426384394468477885847473909800598643923268579796919803453729306074148685001587617937635165423305038966760657999845249977220485019717439450457292989868053673363924563995087387438733065504915417539682914384211127711946738416223930694371263309498217701674757428747672819594363516447049353693014736866954894795582770805780208013998027359784160736869101524095385138682383819231374991046027321591794852321895737765133176420312619104905984478239747468704459205303320453429873469380286813973757060809063503482853388137800104064253744661896010080702130525563455026636846445467177289608168717275685787593721958446110881180787486049128380384831753536757601220308339320718261806517236490725672586679571134891963105740592747784565650286770898128893921009918656965980263205060465715528161752932857211881730789785630535250562343139222192873239717254726045971701419435754675996551384439887972696902727704019419480731141178570997384872670395083955783108882192740790378173654671574223475287607102116402989985232168636603608859245515468740888385509544934105202944292328872292077814536240493391904310077363557483086748505434053287105722604884058572104587465788972736658499289862678013804706586323415871976798647379861160446152273789245804746427892808482214384266278078291424686507670971234329433480322585887939476657063823302721728232882431832150447581349562809478748905846101273673622829607578695641311606366407369829128733544056456978459830464570276208676244073226348356030691542440485999243574272304733904329484989616963790503035854232177977010249530043695863091949635022328443075809138706236123631203457393709419542286048031892656895107317927789135569856142784464100418732368912644351110253293820138367696991563026222827561610253554951374261788458481772241584871198093447855571890736018551800787178601800403358555576471040946969066069041541393144056992716629534636266853724926755417211387882899299557326542631243636223318897380925044811126813344240162793191684796984531053322355810531727804221759393399616384165607974427737520677101232681174438262184997485755394057618765531649659347326602037976007641087948411199613924728521487945815042845710304184436461398638617338413754728475617678651398978849240805872493516780069321399002433238360490450676089925041937878426361945438420534660641363499110782848015214078640644045611921131611871173061285848140922378044588255567572120364592503627653650571768786618879936930245888067071031414183915266555900006244589093103979661148437867565793711591499203760857660795623968539186060542965839279887113483182835225000599908658258854672613741777991270583907506892476975739783610660283253698128013628422312671170615754758469257720108552282715472736415942080299879496601490381976181019156671530393656871075948211788334522182825935810977552819860779612883449816834351363743394551393267462643899255825429338554218171344424188606001026483247549221034668166393083585286819694832590284661164458832742547090470420113616865026977716180774282689945755217503356490261221222319592572039819382661809131098421730837781178659189157839263698070745176644917747150376165575143119910557760812097507379554748191438499206344336606694626791912499420316566095806187463414306011827971349276347022446981149884712445363016372087592515561891321820749050719034191574084703926198725636741000465773496014789323335472266432916835784750926009915199369149843977489889807767824364662086135757686291342716037136546966025350845216798639406415313663431658614667501111834746571461030809677205235947683201264649580679440500165154602878832925725889786611111299846028749672951398777829547525155888980714185839265425531482974607144440819861169559818914252667998554801054834807136482818530516262614936008742921796242223128961907060334034630512466972002800273463132666113907016714254780758099680149632572232440290902773092508546802516748376331184074270283676551447050278726582747041782897095407292246018078452829190849439945996576996195273626961187445973877579146567458567566477657021427536348007914260347530972906460657330694636257794497946173367309215327537505461854499111302132728772427686297697851481066689043015449623802981571157381285843309261015798648907528435920663725676064693105079011138428416904076886503905059666022098816526282830551296362396412219549112944260949218877604158247086286096353033392360213202187607655672593129290625461286568648909969453289413038708515796569236278750753274499900287485307889323645791494240878943997675900229629045800088968551851323820292486064266980780789372683355941694709420192033942629211621858358563694119443819689851278053701512454237251674127380210309648990854797109733806847525670423988998070269120020235084050451375272219853152793313952042405870243653647935417630307837531845868865568819717106229013706118647354116180516540885484971517345736607612575430862822139660385460466506431908299740892259661138680755036857093096569174244004362963272429633530081696834112118079049042651658198544207998687391583869316338461486170425901008997355220833538781954577268028532414208070151702094328763180128179638551544604338209833105505800742800083689091102813517775589524561240499205053269243497135274134190064218318883048197043068730489706506673882234542511865632276207506536677754676788677387898819887355778500077843102299516216276984137546921951777847559158763711650782614560157704238067175720610716508459635429437411169411216262858790993687837805508637821483608631333374443382041051152007516876104254919684893879420133807225397619364313263479180776386725256006232395242822334603999353390098273902246855323702189776195768799286284739626645988322979327488791352587849800546509481412891355693090674749816889765606042478171706348881517699400718239594389889256005379039876755819540497036471187940401695406194702276023989647818077243533964305660933112252260619236192689981503225709835349346925410977045813833617657314733134060760208769868588519550096234946123264813145232664712250145634239459163546924727388426984933180461442373143243770089489068907187575170379058039263289013324230821607238323205260841122113605610050335528077154755833713688249212819797267067443530608488328678014279405421467406647930383616455735975452116508365407342247922688928379476545141379854087039178572424788480271238965307956662378535631026624165695897740716006230753512901528556728315867340955330358506204747466896912076577767616001790384149191160780099379622931309193338439434392409702607054035588451485158616114676731449970777653662211852668302644464489674380977118108653439296784927583004500432321784080557364351957594679801239686364692023211436701529738018848416179065436708015158273581919960807306854209636294402266487168592414330171430494459264323559937312496915505052595002685954607658066194212783315456917250169123254711570305219100888891139696970818980853905228995988337077463045636160914936872478665093982865307868310605340162566615488220140097249506807184411740977150710026413608446489630110098002272016264305785184547501591070222108030043574946024486887078019767939625286905110937419736139247040694666229888371798618537230715674326422607737975292970877461528914124305734078765541983223052006746138894906062492683550244445617414385161714629777279008364371648906811504922863352765884448410899258997995091809894122938895420175316601113974547993356276407313546860600083704758669051124903157172768319413085563380073341910366171674646485785942764773984691848125515681895784977585155676195049629345023783317260840394793805576286476533448831849760511209193074076678254802316827062086981684999012580754046584044578021667809311440426607928871919002233482795033538085037236670929747717026963537286877334386019904225249420949116543172476600731482127222474909705247116508756618046475020971617013391324345728918642600487546988326568032667373651606133178348637367338957277268180126351247725145824532176757643137893973831933820349302042921374754601485968444426756561955374999042506707012484341982760920490854021138476120056101061080086991503888811682280557182964849659998741622647112830833167890167529278468435599326346758691691979374840417318291285538682859418566446751117840370794741790011522746301525970953479799962798305630240429559925259060494808135018976924771041132505078934799138594057297763360856442567474532903979866018240128101112916101721720845549836241205846481062309118215964172724375751871786067608009098249890751478915077700132126705850367144946838192856298982217522212870535941359647656308251984768774867746375902451910632935577016886215592643580685806958814409482285357955438787351964206926803078448492173097509306769809832508172334298284055824657331278069534178155408857190379219372857117165624992179178252819770792742125720865261830427076557321777464759639082209712595990342698024583009034630382889777400012368937268691446532703687816086587328515767242984175089607493258835277294066640141418680845988035350798750975197530122140767472414453785249116134619522566144939177593705923140467212472200578763347207212052137023230316198325932768849985067617000347438917060492172384444853805886394840774566966928971827425671586853165632132672537311723042753748196157678501481381527476786811456486080685464236049477299651949662533230088118497086353281121571887267385356071716042684855965290559910594458081502097938842078240346787605395320176753424101683376743866340170345332728805880549782123438456327330236133621527986949456371258845428723797617220808002522963778936609383869468167665952752162660250977748228189752252032817417447767131026769982344677986913507334965383420906406997499843531312701684658373780151095878466630618439193722929850781217863900591816921934306127058501755334650411456104709936469716681173228291913456649791253896429927760134417548021255396089355145515456950125639752837173872580064408656128126402636927597734734156827125654078069982854862265210308821393960428016072779094558158978493161841108620712853522937084895048461676977656024629376683186113791771278483736932757013647586163346098498557175627716518040092870319073274371041973937723312036054148538975768053314224642807852718905144980270762036969786264656329003158043267873855277060199296390530046122193520414834543850644553661186455479319712135764905690026132251807499797461872341148119125276805193431455977511851980743420187149325481568099401409626828710398649053593626231776911401404116524161839042177563310692561700995477517916865906735098964740344324498323503048291419419968084390745510772224250113558706260433264628813859964773059392703360215893675032545616707576198594569994872558739075668696197439389460446213150111566729055093211745693864055873699653041633512136661869298365909866343024655391180955851948368173275710975528507074809559670110365595353897503521656019789773672771215198493373514770014913618009113100109763652984950006618087205293392254308314986150849962668903327912159176069477495667305076974923576176597357595826373361825473166964533642774613800800368717861325429224059590190495299941613313142920795444406816170672021260116052468894164357275950516170539047281832275446273411350152620891453726132274236789202617093819708066425715222823806921281254337422511356920544925158987345081981699545479792311650166021757714638580227541296936131101203191362613559059146467571475988226817533632446689812871445763198495431769776931197875347392995025473632588923408569799428189655457233946358075585319565830252060831077995153089712442202270085766199088424536183303856129455554562041290304031791996081127610709614398789990815402869533424687186962204177816425806068326749979024865206680283893586855491443216412780466288215763258876639843952640226197265679414114925124072295834946418624108875193195910821924992518433957074636146394141362896353392471748048666700528197266843726443128994752796964330907802735037779665607625830050093465879286119637941170819073097210339235778674332461509452974332935966628743299837573649163493428461060623407144381459651787776491433981545743216855923651551099904862993949453890207018758314012322009309692750813277119539934883311340748857690152907703485066785164614967995794337244185890827988628510788895192029713386203631702189331671047964518528453337633815768499030232008587987975017842571202634398052561910295590672842441007776523714598002960041192106755104978622226904963971482245586293378132589659906740400832622555514354139152887820039646900131279217669582682313499680113242095157192609284140036559909532003803351400745040360323540206681726276063232107840064062254405949879946268080295980276040906196242331637082212864534408704331688178918060309272099281598390581032807480395757266710975381121485399541631961162187628424646543399412270957309341122162250592239779969600734984621907122303566297817036998830411312435098875827455574583977810383795178878165137638137067289737314695984602305791936210882404962938034577088049103881876492377147306388266373471543451903957349695962460196851535019506222033504317936681399295380632557002257020396997393806078456992005879532099323846325542693091142695197629113551326019761237216369154783117547157755873699965835816266384571566323165088558011825127645289896058337475498393180084367219518489924245288740563704115797030583786772664711437876266281006516500412851923520851558785517345409744501375012418351477684411157379590457621185352649858138455233646359787707985012699747909602760670314165793026908456228977486508648676162292558030252369626507442284800388774458891121188362965262356188944678359179248051552035214751052242578797505647006683013939566168168066327600878893111156382412718670107391891427172786933972256151471147381419046458128264058022355653571869231959749351718734101985842270204028090983809397066671959699680092245884704138407137635608529991084908845758508158278293370477292146304508382694269031658879700963803146815404042489682915803802889893447641914862236203179018528009348505015471208322671110901913408003909476982580918508380179152485667348136482937430423890926624181014272353020319491261494579254079425522086721421847663037824056474666813213668323636284980353468417815699053090436192068488205638296857959506176988491857162425406588382729681399978698026301540679718119940379644999492897504919153240975008236304056600099998166411583146087900161084220905555837059892817086521170777125237666773492955010189832232017333177500435158515672494974882642763962253240235765856777857833346258961402605634741607655783073939699183203960955194079822472076619342747569333253969098187663790716822781688746032739247378321758664056588269450236555256715341699992577118590194386434434374003757789117767093537468509105422736548047763711890929523663399814702949200691982476610976564037801037972666786520777778417684111735308108172073243778564202609702341150800659555950601713816034575807107107412798800081221501684719016369219865951274761408226398585126673791582652855622167539624170668352288615250145197532084078421733912252077478395115002823947603997102978876383473097976657075931464875322989646840221761145838238891621191731284312315311122511296719929501884925932149058536575972093180718053139613550482227939813834311864471613469816717374984055335515221661727759132200385303816488095285865357084873743336198425510971024295877223120889853812604991526568454562047382915683918151870624697712695305649284980476473279835525516759919085012314861089741819864514607586055808411590161565628477353056719335824251291385571432360950225814727318636658477273664209392886932103856449398786241616493668900263802408546300296425444333632084710772114202612379316932348317163403023936556100290559512499818172406697280436422259875802879640582030433838263535609240493190006315362736659533445963627746263535777502190061003407283656532186963996939599562009311848143194663557984648446547126281281431402844579391217839754762296033711957753548360798223328966706247553094373642392085870652203860856203503450339377202353967391347879943560291946891677062983201507807728685093016406062255646309242110982296479696347552148261272652492726029491984326196503934079767025218745237397133683762408767031336303263433321317700292426121989150510017004679675347320385184391411748061703963899426910533908460126957639064335546420692056992802163002610334663487112133106827893451500712213096070305668799273442407592053431604878085751957972997121678022012538290678726769070560111893364617723041187782869155791046226032385560775779213039529113408205381328251881345166632705181546076408153732417964351752595252005298441374390516717255161758573381158911045055964901073452473769185787366505317067808044441955308651382298662043288249082233626771883723648274721698191607590498971176618667441768776313332943094754560545587801539555930381764332846426194065087266731768884633969779557888426524211292550573625352525939452307943001066522903258059022895963457401050832709064124924489066803866244102804228267545010647149276973890999253935349045558134273739599351101843139171360576889496002801400840068105143366934692697130776461055220052121392668130652418367232790426376762105197597648602118884398036268770390146345866590573630980685741088631515655020335566625191439135034206214054803212691862296948472077263287498825015165067889632803865487381654058626764343446753080780030102548317357526598645305411319541705726391156690078834144454040085147576356479948564967171758104430504500669837950739042274780479763478850387756946276757781862504707057431574960199134374976251428932802507492729073762765684527311784671349800602290402556719611583729115837852415096972667753115517491455675129653837061931167100541144590033517198997538360965203835725425701216387239484348839163392687112458736735470928282613802805988762952032082806048348218395824124885698823342859071796964616358357882826206111003739396686108533026938308303721727722204322627495106177829855452392894280389486076370391580340514958397679499509335111974705374940305146494783246289757119439219810901807808734707723345765861074266535754012436794022343445979062553524757356270118745654970751472592919240988135853465747641882935672487441948973728001364622259234689894441994062537692431654925231457904781303732477709551219920018237300829076045178565431610665540504513977379161537030524610301921753167534900004339756166615271722082473031802736477309556888303249662243208328607248388000531767661644946088160385505296271039277724470922296877787937307089449757835088355815776825618513374188294392746551502801572560663575797347878008057684372419889049076080283718438763192059166345859194013137183335977878058538181465611069758823067720596818909944331416582892698859659498986103559624420043475312976260018677368181439528576366752991548273656673965895367584585951012780809218169116457404260241153950283945821069212004574730985026816670917093074551655151218781628282808122855172200372203727577670101167166829036410876071669245415532018550847985261000395520615815037981951271249929441581939921568440195078718188124756891488367900934722102273910172076991665508374074302829678448123521358205446223631168502005921481450623301231542650896674058762240033597964507793024618616305474812884444792288680325686157432827038787234966145123887856266567425504259594080554054172585402616215416805285532139630533939146929661168316617414974645552919798373819982014115247697014027295252061333829605211207546023890182388213350629879905407903706368656278134659533543042099572811670594339927876188181367641165698422364333331556686596487865064514206217733641240794134850144409412277537705118484208456430422952691658731249896148179332436781923833434029564406859047093367362572294615786936047307490867560012615213662926826613038424362695392752784880919302239191876484970937672875586979856118499086363223089784626279320655413518130421085799704699267742466910757528673822276738822177696253940938060772002069768818109090228754980840668447457073971870882699062806630904584031760479708869238626584859147373651543507546519014809136607206738608350518210145360320001417778640478954796420288514428991901368163738029836974117530684070715750045009736687122787423747850465513590979251638706886607133538416619564235821907688232514393633878665461416349016987552647743052036111736239520922188421683459924560683994055830113843398900264097688928553149701798829857791195302303158990938336345108453846204065496579824969225553765760572240991237335053998825843908520116021531578938709214137474775344721346968780426440093593003327773462430772450390220829432288611260740984236981747982496287438030923212582952236426854352003845122399520948943543636300124687607216939234997459749093085015890477936150898373518011848512800610025331853459543015166744063549782565804583936340273504991701657633619304930460681601240458133836044794828999666942957509396424632310710393231814826996478787765144190935612400905515489140418780583189284229013469391056839519136923141050114694327796116289929349071391256689057627537340061354022650429289158747379567292085253570590174707113147113744822144519144352191387335646536634358148142077371218354338908625515330285718268939740375574929458269018492448122546726874213118127050019900674069177032465281567710533378520094270949604588591317925874687684413785268732882681506801035584669547294327390012294616338915598406884029241620918789003425739440435957615189904921850890663768810067750328031452268679604150630134583463718208648275863333556080435680211555062518965740404059112357232385454112836320493194942320289727085175467875891597034206614858024286328585929267775028018937647259381172102269928976724716968974030659686214865313180123524963978205562548540113589950323624816473207661144861387810914311054530445759347341157033741771488119776069575543924288358541385311072608810302498590064199642640884951998573219640589690363672758976634830591081859450497362055274766993444033442939528494879500295270578148472691851579175961052741414292564107066267004893963492443821186844157601062371973310802105457205477926395709306867940931316654626986641843315241283641605508315195656155157986537276644614658086437102348889900974575711001285475181181100648952789668709609045003172299500748611531752986531857781307418296244548983799819548530010028572294670243957544400174981367705066501943610986741836342393577726625712900045672083434445959991115294008903492308321409368470253804394726956602426479979318256791301082889163363606596293342551891889134082095991724686081506176675826334697554523836718801506569753411596585021548337785240621150411012535964764036113853590534231237659184431226449791829209090934240265183099190463502038219601891141141608282792269457863812202313647221492621443751183007639425862345669811603131568849469798755460376206652837212563936873663539058849064300755611499627865921456786029171780663694093216792861848520304599565947452584641423742125875285627718919419931652180203834293459565581110074365285336103986990800642043291502738318846026404227252949943390258729874091829086228470346653411452280588856490804680421370515666712620517097638114908234678078937926349782096804127054589801166908815691287711300751763748134383331655946453909199544791523121360538752971756656267499452509734833050065586235706702834977626308295249926139302372332427970491300375010225085940610338650412261857529758274170444891323349329900658004819194967993203857719427579827645146443204602990925519651726323620990838609729240196225955305396824335396882409776773375597915581899466854678031514759666795624769388148544949259265492149041939108531413237466061342053751934903165908511782232787535425752972956709193791201902754253123605141114306783897276138359118097687542470250838831182556203455848651396340248393775204703250946039951129568324350564726770333673593029203746609830386769633921231086285040884125446303950873230239946203486045587956093907403322597407537726045478075382374018865320790829386241571669367506628196943914155912851593900911943689710718372425822273989602096616689279163286375087036902360489537488266218344668542685274760317861310577596043835941358536089678962834834542905263342638408207916709938366521066974319006898829989080616108910611379467169368091141366347442035098073585221413632535794952531751288332699538576673489649447148817204531588730927283582392970302254320007478130694822809588408926655046022815190034311731027886232567521943358646582942982002962941540080314821833980409818937058263879459317353866230049334345281565071278794783337017230258995099117831807178902605819705674408621897370031348200414830500987355904790214596320406527260984884428202128306984002937179865522307717674715288670385218972371291819392519282200475978785316031357619823137161508024491368294390133872632125309589885365480378093397026631639672099726708235473002929454436906696387317794699540772551252616712423060120606179931640858356092117341033732990987118143713759994266457578104214744918374624415525591668722925077545164887612095212221935893152537940909619759451290455075319245208224973637610391403627182983982202436571192417418691840966391342398772830685702741260035740695146511555786497275312895840832845017390949601910415264134092865897604258778742451587684722008595160980377879673260570355645914575912109094967692099751175929244371429379899023460362290855348600513474408588088336443921083544567032069957605897692329499691492800268681615012488497537084629271159406333134556193550230648349557180714702607018359279063158642176217372837269186932526291294635207432603717285768557715661574853325874068322467234615686279456818978069254005495462634080234328778966920738357194069027103886317106650080225212479150901742797594078962021833783464294906508603709945466969144986228906876182660076334928151508154762374568434721072409409355228282966350325333079639997596380902199391343148848729330176966832846692318426695911897121968630244486811309529264973055192952661629133816086324465562577005148496602500246636031968939878777621543035624982640576021785607156423859309038531198556334829010220930438453887000884458115760034141438224073912547880313824923756597292097990587854096140510098110850731033713214916737322230238372975541767069082469362188917922435892886722526060542608468996836018878206789549282187431388917797705000600608438838325527510868993822188508466154022357066821528164897040253527212470706284682457311801399706854909184366918329893664070440982347050998220934675636205857199139319403757840144625020943793717793072721084959257466574306620061099059809548575195843263065864825449876711736103306866241120413074061321453308682279127740105993189394246915867307962670880817760448433399505762438356778377505039255736993904518984518530043791933202618477223018144036927330346018300936004488714962736295306950415815251206778130827630788313543755785269501082387964736378137469978140232018960425467283581690405667936430404167424297233628571002858576402322526141161679129591580788660589887308248912173342071148008383215420455529380612906744952281663056610356445482352517251329176377712731405388666103116917277658448650643453474665940391674921169544529320292502406526993658729404539722119118186896556477378929783701276418039799967255315324192195205023459606117345644855717528868974185652311303428630885303935151440929417275260105541519224206947958147173224073435310002399362267456705893849986345709599704932655440061990533994576744580314625249872882031316203086254793005216327375467080749978855112450158669424405094623030544191951716392551467170271570640324751222171300649958738273408791413299125585079414436791150709378653153039837392929192748957469354164681191978130807385073645385203976521662727169917163980949583358234616236507818851211085208395245529039757152116685342538397642308129093754102396128823218122788865200648848113761703296716936063494951755852104887766120403545027557416842355041118264300739457215444678112850063630406448655474426029402054184303895408108753647116014358224653979083137601909148091236599029590003677552100106486009583036513286351149923391522864475860796389560216257167267524863517078853548049060997898147040104426347714768669700791512433714146199398388604606529505043621192864733315259691552996061125533817642232384915612233402800287124636099205973123409052609874987776915057539969809759248182550256462942514757032222507106665659604529555162975323790115782651545504202456809150066657498552889142133582117266371200474671371072577149636815144517241273311881223479785968438981774948309298403434765377745532916606068483913979136481151881724465042700793664107329420783604660321408598275781258597917203029200185759644659879480221684565511699145500136184002124085924432609558915133049769480747620913510098277124139503565449986410820048162516092098481953982525914212627574640646995074291837922589459345480795689102875796510438249281802188505474609304587740664796520703080925797127825835245690967777246657138931542580580656259667603137258048875133192006103468222440671994449340279174028171597136618562659392588379971019090098944907386445557428375642997037601904516914546488678699898332833641729065755300838578709533481013868381178141159601078912980659872544595700818433049002772998103810639592317888490456359802991898464122411909008916663844245341129873408294465172367872280915912043653597615637569107966816057616588227574873970681430611498852025773418598496149181055302250633211714522477069723576301743065025081432282401172983775316604432010501950013393255696425337572639000684506734716274398424702387196085498263944266842643874227631521182112890338907779007844585754895362655456423838286439532771478864476226517158419382155275218999768299944211117106370038009664262923326640116360731069316445303097280967835824729068719316805146253111930531548686519951284183433178402289272787686390206304690698815598405020476042052101709706507307507326047030492617622568190221002025819565107067282513562593717529351647678986858225868570525094540069374657988193383572074589219169954785991635425048290522468986878791256080348040181546403011048149579803303119700692759833124988116267605934764745400890005797063959281917927898645159287203549028947899297327913117745304252482132875655997016961478385966564154423065004938525171372541149409178218488535481607683813460226578906737546242108799147757250763735631629781348936249990551322541206341371768471206793144376906445884035277632738354001696611530273058719277665186663886516341959429639813347678847446405528935153918053016308456314959362952810008852096619458750029656748746599419953078427697568633081928316131099282379286907112719184811773770328562702147237415304291563832085535338768458000288225896442044723737792675628437978918881278374566319227416043713160100919004608865610295112569659299305034141944364532707367921529525118033456102951900036884259650283387366504698834904548362008044926641742036275208644673867515855377755847802281150680319373615720504691939680719227414254163820381073657264424678409428992008412107860866766844875306144332266041397791627395457210934718146735481220674718083274743909712981651258508909693553253788151136733112218323382649168225227241762594637374970707740663896116900057332250402266151072281213138965824742431267962227700776351708676836850689088379215611634684650427069074974503199253742290890654011151438327805532015938907508758430861805582472981585825606881553464582021915117353724281358771456177212990545525702734331654301811919869803468719387258534656846001712395868415978441460347908928339669018309084581442249352332267009224299466473598482057211303613110460169028560354697556684679911509478535742736333057815618646810537227166684254896353381069631213984900132986638714945992407010633529924763987685441573109898073870581318836954280007499621370239873678695946862033818246722608605489359595195455917679262000828206689486109939542880050083338941830073670902924580116625799772462623574109577728559902649512242841143511663843924389344707590621884441843105711193113314757117310227419369671043369940721807252713775392971150985565675660312285421131936772193010428917574668906965782186310013914667001805345619432749726472087595245753911886665111002721008194484044377539337688952073416366429711301980534697040272717907193050957839251953246456665594290382859351779470237227682652285995833326820149673516177956561511086294021262471811668585606377350057696519101607314218928466511739600289871872699910696140687903578520461379162306557594491006383309507435466689570772082669223568982274876624260563710997355361522158723952873243320979450620261867342106272237668776007986970463172571506272991967245203975259948518918300443306774320638605362205299201000319091726811939342495346575314417832212873318868160689837419686732668980371097467572377919362373128944675135843707252341215835525350046031913384321093049283820730700852188272262205486198500007688026381094975952927156061943490993166719571756572282787679084406061493066405592875134590683511600997040518840587333232217702693390936159896470196504128536800233852063690245209543329564411237461040719124337016375349868350980678517093221627376819989858652116040990449577025207170527788350655305762777052124357616927300885871725997320222770633895557354753916558446221027091117219795144161825031160340704561705480274457917644940454371856079935917419930894929873091241671185046448643305418561241694870064076258294050378348159352220327696437214956883089063245397746340819538425181035390444007294866740209949046633254612691923108732330264062181746597163629444186915787894822868007714899649628375913624195090613614820426238218616849525211197810448720670114471039448690090960850003408011868408454317761078277981144813461755809733673659230485280244564478257555398177247702900477853365976568770165474187836809769293601247704862987167820109690584202345114437899603472606828659187563855829238194861943987119431026006534166026115782064404665132541030061966124778928870381466187045557311554792119192908977103496539625048735803367229899473906059165509764328785191843750887753316333885872283607722180145162718881066181667839979837462709581112566403256154234734751869459213845805488249082591538906225218207603828238921092610412910935537051547609620052952203074909059116930020593019232050977243704968768247805784701205579417639841005266553091091205371264101607512877384395422184111009144693310639936571009373911273738167186672413473975663851365885284514281464470688604585056067121523202811596014797199312314942150486887466317952886048179350922831075296597608819813682337236018637051099743470851966004996198198378179506866870459724350667334804809270902518989679256205921995435803349186974593211986973303819031430832969922702480478526454099826078167807634416228781150227348581789358418927560958323064559843146497717649435357379530152490241466366028379641309393251335322888796012629268905170702950929251545830683710881140831572530317434602420087877961476210630718281516428070118435956602094035478383561500227045553786571423205205142383927620622891621085209265838539922872261393527898113922020186397800076788568725919991790043727398681337934080604406281235610219021221419119666643281437787128250112936055647347333363578616213271240157004251427339241687909092238018961078161544598195811096118401477035109261040598681341461735406803030748764883395532007575344020144916324505504134044500017508618032803129029833326704463386586223193808226399493066983402341841167585835249787291853604369007001592748386758723660324524281666514622371032764779986441517023158596289858846352506211402945543737648968098978415784586629468637119982255867856688557280578400064580063802257229353628586448999121994483641154266010958095715731282513311319904263155154160727540459996957421261905856521404334406526148736669277025270531796013243243065660608598052518353987935912431988840139812957364028082400536941245049686760450242178153787040839505472134575519211305004832517927648006297135519116487239939014917925270211298367957712929394396841225121412770010271180714241243166859519744778189235675806358142835851673630259103523700780820698059876715170389405937345419654678861956167235754122200754062298708092196699777852479876958545933503947803792005521345513918943684990675065455775947430369895556944769716343896302973537122746166821623069016671273761513668362395482481598908071810589298763975920044363877113695376589926009252721142596140559836741499521742948718033160629900887375567831726580910755302914486727473132463468832125376649479273601256069467601491393618957951122723834055552746416088654092515623010814116117761820561916580776885385078510300334107077267915283239007672618578900614148660314895850889013428852232380521730073196296608570401438589454919275105106942378527207067594092623260250324953527043646122005192545203233907800426892830945155734267631640329107582021853498400391348149411428584625320511991972036887417861744010133947504796233347725976086585781019297167239960832551219884016004552180543849017511312370711048921529746043642120999862147501544644152338231777023661854562103839816134526185773365386400979857971088525176824586603529741785527148444769329723190932755598973325023817354194601967563609104071380893473179707471404662276006942017381663383501249403922716630847313158994071525184273352349893211222233821528364322562537187169891845080620075863114850930547246970604935712275143526290568058552496554509950425157884874972146864255603492651999256695428984194796702708146242811501535950175439881145791546668199465121088798253834030234869842808700894825262647623880819073567591467242738133736347308941526529782422120119491469554134885446811923603235630476085266965586439293147661620920297562036070517400907029980301768673723028456838671324992024914760078860936762064960054009936076239563494095797577368163741402875459942251851693022387653731410165764865640690059106167266139499085119064236302968786744903652378630315924641917645573326902617724247763426041766039495488933249266891244195370441309389740289048672989935429335614975396183608990374114126755387925770459596568794471301956664890287739285938416506063909792085942445559751995561945217438600739136829335858092930419888526867908201882434545292156431501044685243995316421774568801219496918245337190063249330490495052463606530559056386107706570637811288834336621939517020372512215571176659550202150590263407183252241498775041829139909723354959342430264890954983281893375547799613198750284537125473147791474270418254464064983469248463295683204135865393931169831574751507453901082508465874434233942632858875821665960412663409649264574390190052933569916844093264466159529476065959314544988650633413395602636486264470394421248301667904730509670287020658788926162267832110353224988506621246762775935653658529574818716268929002098361730785800953031323578916264648440838353848249877332857548204010736338102372136994670188097719237718358576301716695282379309558663069335166226697530140854252877512397974570429676419473558816777838074859531574475692069825174576986591109117276876650571789183824534244296154289814800185967190566131323078722539962863515985092060459409945332514596900643852287851241749256460343239711617209889587747783273101196334143206507498900494383410703516973315683420775515444927443012927952755012542965874926305325514022471464334241535875397289877063588229440557164520080417360258670202666288713140072838560211279864337816046376362088163421104022226236059661361471111383776026128204910925037321178289989024923634127203046028435586974319978688120324301458907259243527983367537460049027200408458134050991116635600392192430096486350375353256022364578176881892661753968807451514287813466064460855223157039872520821253556571202445325018914282620041370157580728900570794734230887358294193431200719445184353231301273177943060929593306242201127660509776044995608613843364598119139379272898922173922523940226318906770627982389536124579344478860594528189672785670120253370732124504432517043408605743378009477584279257277212651139376073876786134053489506792911978730016377368805342291256695047253272913733599503369333026852699184732650764395323972441278673907030157177399338475552365552033931958626565109073012269417953086860739396946485255987565437456136699486947510008896081608381987489334680469612124805638315532450247080708307572286902790638370147562482902622230796135511258535794319028834679883737627038468131600048672963249812981200247648371187067456619219138508755998082553892915601881331107647100564806183090965182376921060016582482801893412521015061622646025107337524741331959218431076816222751157153995351829756334132683741699389014061862099944195484835463403074763415644057593119598340539820771961183891723330338536406249355613705566194139135511648878584667012256243194832318215156172209744808220008015504186037102632187777439848636324050446049794058422586642497291273209407423779995001984767680374314861906889020984361729356648032528852093144156967875999304312237831303690221424825313918765648883659749748067202215856305684188292464491070516395371890844374912690248393121280166297637056085140624975878081527127125580703393695273626904778386535609950343919096170484531015146315100242239784807384033733859907604621730444437014245382099270277018096201230639079054285597848301326338470781333083020586063466187166977227976737385055453163157846285657695025755096240138112382326525085141143167027252204934560534633210471644634904877535862295312213851689179529859715672490365006336652313560485898891299586044052219482165740574763038381968643168686622409862181716227778677929139521744650530891666564923092640894131921972530249150083758591739374865884005738807157877111586459535846025002848354039431266496368907506316825256687699889876340689424747599330488503360210686812505056585983899421950387483358413477560913408522238149106242149397885937160965485683693658547332948537382994098226960872193472837200935453433259282589469297526315942241230029246620079561372338212563171861482421735262159061025704888734545371207732831589995739472742109967503638409761798737683765755733931530028098873703454170744531482053525372163595008213461470407976476745344484357334238937534348567470263404790577150981555598033467668819717483035935200748081128543157409900451484842623338347048760792028686781898998533967431363956171674697045301620099337967695193814285712228394215805627019839623933273214331489141464811101140372857050427964738066428329780761207955271119156101157778371189923390829085630404517239776256420406255194394814369603926557208067530418782387805020255555483532497916923664278431403686808322024672598031682483753358586825809741849254246253031399760456132183307178330299871073674907811244401433818522101591670288929669837312238713077946738201634827877939231738979287744182946265922023489417272195900139781166009282027497888516294688224696930769144118169796573440182248310063599751814731502497526592919814268309974756699228547931242119172781222599795730758838103669178800911845630805152294664193861907829026920257813138622746840124269771936617081931604576187614127513641818279322926474910039650902245487113628647261785329401241821199274981676320258012340771466704730740898803543581911555389286278515498423607434997861707913864774049277677277910014523920153062981739616801789449202906868863179943698956564120745196665705831738668529810266567012966211923762626223297268401503904514971683337955279251687692520867309140490859506072135767690580456277635512221096711168644364101383940919370351411533905105554330570773196998305659886176541243698673108268479845300420431620226640031733848796260358100925476917175888865893922768029969651029449225971012530403872956610969854839188636497334312699272017898699391966433723477243946882284485292142294963539037822324219145045755086174794376663708836041411591697408479229088197506261314961570818456413113511262663499588307190413964003553963651146346852919285984251580505341388311213918888798228892695526683784032120558957154554963846005671309553907092517777479419324030422186069813231911623276635090905695705284699104768594969547160354084646408570995802566477740820474820336839044083148881840823811071347631545787269742872302383479371684574929311177428004986356941873490325408235683198019368529341433259996797624773093997476336317005802791099565429690197973991203560101690243342342342537276694169587980009846145968818050359066232811179213523529073041734464143435087905060888551369792516683877817619468546415109281637113836127507546536626607717359266354395832460243199330889329068356755994491762332852664018651049601400959164447399754941466479165912379801246821662914581762877872260799375188872281888749184166967682239148647054248195108671115017702275931795586093472388212264520781023176443497765676820514142091792638282563673079720482223723059942481752883473250591266811634259124786108137127434538030859143821940563926703896495886921495217126574329631434439188658192328621923028901016081331191870875178791411836755847503970153252103115231571107680248335470598493727824638534510093226775546165036850357614605499483092747292544531973989380379916213832749091100186698993943677129110089756402716194720639151147105594122384811213667484119324875545830946810268041437014544052552062453188501542699973032734525288535074603913751474745574205127442137742382906479179804626749785940161906732420100949067207753632506530957197045349973441645425655904561486407008712711494073092014921788492887240904669285729442991052608697945202535205009843311194177969519499495289213000893065347398327760237124864805998939264822290496905935234030078584746352153166375321240531176905718944847556999516728949490512642249090279698454377023113757040633480775547230948852556577753975850392149746447000624036439303288441870506120371730371236264894730443685975653995351843522938972756351290325795598537936975947496083779621805046990941870192685890907630706775392680493252693663313206050009465209510283098403561264355789258526559249483128086853022185002291076438536735130704112039225986636509757146333370530970766276204702002534050265929007065199125038767794931847930259415590505940430608880217094620583090617525226807902539077559114056298715585191234811256766209165251998691469533147734925824279109181905777823125922069628267771685342381320763412818494184461659022437173966759807315301911813783824458189751957392518049513632203522006426643365030290155179480515722485100899332547104434021296683429271555682614039081004911010379372466945496043873706254246823889118393752554068255757222674388171972491890689666631798336377656356817819233545533228741770796890748364702945577507459243623765096078821144646191071700983296774221339397518447765741596234100011826009507874808441695031351840633094939872211295095851177046600313639280786368772955270695756334666189908142256622282720229374317294290155265096699851279313378857803476355867544737385620564444739602305561651619057079650082064564516377030883116458731722610942376911429770415420160109984347829001603284934039986649472112747285295579446005633486122793562288457874160052324927593510385527195220750791303609579708715097554948421484128253483688476046454885939444436960031757081193803791458807668440752114625437871863549820771567357272313509224123333244893571170916124991559851137165093780277172155853384453676672663555864569406315000305908059238848085076790234159710147994503892407855788067938689840631311425075089377931068624379150403890343312307373351932279655057430023613918714924697889470139699076498468632628298436241251697662261864320168708023012313783071207274958634513862212815124500576891410553167139599059578587489812442780764517727403900535188538129030602329068631292190958731540426705266479036344973181936627411091856637316516287235638235290315096459059859397791954315466413553095217364207682401106434159597992531091282458809131858584252048556018006169215782625952638632131578438959529112748924281480534516665142806488115452717968990713895962027038207276549989862193497629087394597450415485234546769513133024747181069857413226536254849512305108418212163062365741941458367198675936086076875630670370042174215170597490757538725289662951521208501635209730904965692986757728625258597733765844322684439899134170290517794134383782903038227552835117585739237034976329838352848297913879104372632895880502352947632272057199154121714139405855584773953009415007909889370852909302774911878931545092462084238653517530809152290095901792797236276246756686090078274517272518301849563800767238676389371401211738392232738283947347232475888132206492771881463068015510538117329060948131971326873096638638638755297435268132232644912341430203772811781935798404249280785097620949798525782396829838575795075480216959835973210081352568985749431982574036039547143243390388794919877420759162735563057880970765849400446337206803808190405787756654650776995128539126107162959238202685677652931761676637981030884397574520011565003807040344593669110291787780976534044135530286348823717305206039163230327878437718927745593733680771820994673880229901847265834287771637241977988414260551785278386098792569012932112348481357246000711740540849061073134283236932212140869493457853813713643469691665329944990226273831307398127848525125642753717737437787541520527889825371567365252152827314281395681580633827641799132294185796109352579040639036608982413471048529171984433559877783527617508288736682184642674932068433355946044285436582649679594090772491378367557509030031882917355712868288375049013357247678441752612607887995293851788243122432308740900343123674557576386457770225573368267324538021644460942123002525545225374679459296496680075993457192747920719105372419288417292171464406016080653576589764288637469811724528001839661217688082676345914977994050106141655500179855363792645691292247137084800069458983783856092094363224591345507306173658342239802525979330896810440460256390829861758128850767089895522596780780675009183905883546679293362091810139121181848306504965654831709559548266203654610335033239485384710267791420483702774724318441509252010413100253404219932360026066601625783620990943658277505271397475416296490247977443476821586796794067986897570532008019445887745637290293488092798709020078039948843504400542015443094718105714635491796361299065517078705623488108276658459400801895621651234646711485424060949756212883081847989152929800210725576156763185160253571296073426709903001238543849592104325643559314506000112213025470386093700713826183373779559287406694054651919866910572675251564693822376785180478984280217100231033171038004163158828669954746956898255204099259909107675705036786481148841208601632440198316285021916974851540285023961974470471950883136381221239967827703114697915103904584945048087926773162344521228593951030177112669691525238343619465150505542727950457120930279876184824527414671792766091755574452372573699862939770077486450906136244697361556708421779439648758146191764926573707015997101005753707089833733304396487506046116127414768163990253724351389245430893901617819957623153005328182514164477485524370243320308877785506629010088281557232397216919185787111432048458467799148799529454704397252272355912241210624112730676641663661816524909571626633226997936018885224525574928375284919924472269030522958857227730460869464396674360910056722394947296884771933036655227045407354523579918662590539371610433044908055914127917084238227452268690087125340864256587864414951020895153267740990990413383193700602403982982984797986878801453185045501587895929710648309340645100268318540671227368642144731341848673946512488985889180594158101075380109679992679800720486269446094361545118883626321845907668761034787411804711386373150631124314343593330363315813446662498777651459330944988506038875804815244781082194435534868639088441109851208170870286943313031311297161524140877868536272577783526786112992831488836780689513624244121661352978419801110991972054135008408947747571008611315858323759613844603077828719092281926745509000261456788607648848886432243151361642861896059353954683712802641037414878047389827905380831449420429195953817649878838381611721716095859555415752963829398847240040625043969358351112607760164912565723246754489422415655510873840561818074798362096659070912790465790427166827814258647785538095589300513668382140718913865601928900100490726001726593517799152515685944699508110811473788281953071008708946530265627780161215044538767969686862970281046887423876398845812893905509917172267967400056246293227222217747652466754901157352201481781833984705513662697975418563889895674076657100000974364492200650618435201057869638676885078172089779275032602399014365924323487851954028586335451345876979771734160505644633794195171991038079611023945578876049348156317042674216525024957286521951935263265142782664264802538333545877612962441669447756009264012094329610654387943331004904255294792331866660260230693337064468071266956403261922607127444888367820498940995606582795933798238133016212417521814000873783213495416187217320937119326164307069207709115869314211674538324107532498463485732818270967140002061639526008114172611015413515050334218433272005796600515629582774929993041719861594955543141096361265409520672340342120506964954582091247033159506970780310075647786827697960245924528342618280721039717966070614229467733744352924513799288139265369955664768817902689602901690792102961681834022426046885440768306323886889744787627057339525198681929036383634556970931593831030999669065703685826645853575226337310070573188671910373083915883037087722687233501167767754532460830422467796101976103067969295270037681390064661120575993729936595261387421034780614438974767855145103728284171759007201947898971333270288532559632467797230436746727813180516019518785279854802707136609587088245450519870567053594252759352797634623331700333418730107097093523400231013726506908419351196761714941031806975159624636211643795228946459602024010401721098280761143615733404485399710786363754894192319496623981984867320253624669503350493134498301173969192883793454386991021551374267815957859426426905898545088956844249599644715387359580043376621669344503338632144024115516734413211819546259955211870445090688313637964042938836201909598299253479909682597945647109172430370131088184292319386998745268798311342526204049340722611423347950401910597428677838573248824554857643109363744364883552042760925414467705216278333887910470876116445377457208182596266896819877308811503606174388495275117597783557938571098996388251461620631321547202039975930160417993619570400040993406506634490195510461403755246451022967248021699928037862225536547155216883590023833047324020689892768775629430109540720389017661207402865682667922118976678421146645492167059189387530731393979755195801567599487033740624190695853145589643541910846719423945164100566870224809513688180865177940575408472498965984295603197042032583564485615038208629395248442872443415810549561691169821483769624052879011586325161805020995317485269757519251706094563124807824565235454796261089823698796145249900749355769607753338276518879791623240470161632743865078963134750708216032090184542615330190492365144564513641691807593623835655893931515791040117247516217057641861294348043513432440662300356514916576473528495507416371155533612737988375396636366122291302694188326822613792474483216951690119212785874241598314836412707900759573877843482237180734844277334918585764535264066373499144609710495458661916511844724738723817550879823039899589907489288071627678679703889904176526859410662966603176239281098140662162482807201618841416937883346690103667953494458195307087860056362414062351071512925718409906767327558375629946618980672755120546049621127756926978013030360054958189879349625077975507523358991684396642283324581387736087685825735922504236478602535975624998573109899455053112331100085637606839068882070344308002221160962118967506128164466503058438676516952456740574957893034175272823407690252904011911737124155744826561070723774885952216250276993444674792983403978654240513899627479593264588485679593592712416942098312354711519687961140506718809248274737243445139693531272171335904100613587018467593102704543068456492855602065398197753851815750576185352586107259259092557618576437402929211805642169267055431511842619727963048060196005823610305591569039097668779744767358409351203170258088438072291062207001731468424445412149222028018194083867191778239636821186727235498055531266288985851424749028612002083323010910770782672025144435321370205280440976712064527468215894460048567213227810488254790971831515926134414836175077663454609743854746527103478112620105548503446939569019732275713995603170104648571085852345013436184138904723872800961830208824604849265258015539353858429356211681144715001594194052017104944873448058296562993540121317708485999958149998716825824522801543557835656586264215749003655425057864123891207630804724331284824683923583488469742407153367168134268569488646215457530672004557370211541466100810827740320040336052913461672537018083039518372642875483688677592269297761612284748017120542457719576320606013933385147929134656442326197569907192537396998509747417699307988430924189210291634437117744810773826180001257806655311910793758518213474189380310374108583536050223516557987437269751230222741239603686131314694662742160882627551943130079133952550332734661470836307488789410626018490229078419918346313362982189465426560893287294566340601892748028043604522219374238166451697578673545440281871682661107716536395840938672707453697205112465716737786556608467228160616575278514932322798599037999931176605628870179034597155864157758438002838277848379739821143434637556939438007014060755747244181644630758218954752155740346905249480407153705237908405339249611704223441310778393665338497463167827099746286151381067084888408589507718607009994890562418228619925473212041975974862619947731238102636827764541778676645211142221961336016615273860922329980888098649261995561734890969670533774658017569808627552551058514858848280222936619089794830250424454255653097423534599907501323543523313119468282265531067829856916188189738106494653839068302849342184681389544492029369621778253705280645087512253692122240518304503764956064023562234193077947320170004119751305535315733414589465146925945248143937965178957131061688380685611811031712303965662169633447530685153316868756521598716204887766526873608530019440946790699809217534507057927526259937643736771079257890104552578759438166896979504586333838648938092601056075909007158411827925573291073222986174952523888663603792319744221337968139019285482969207402490866267060686820276103101958308849669826394493465526787036978876083538115547555342944113409069571226597412543847833015565806975315656835386602575026914211618085533323664583859275010451534651231804169140881614119068750116719981313862897240399277588378580196871632648403911850477455426969124673871378858634270667431386450802344229445642124712309590916773230448238596643766301020240241694120785136231966532821630610503392958020518825042243748609780329143476233171963601935618424301506438531915368634579137909738480708118533999524717246276703840025214002821333864282303047975563860136374022913402448934168819132937824572839559061249885386247880612509307040299606515655228152546454116005681427106664979832751831317003922404723730191062877401571117732782221376745321977081865923304310679372759656981850751868008502296188021537314967213050096932085750044261105800524531371240367782859978502908183749304475438384801209573830471595905524278693270097844738904093354227980769927201563257947116724149223534995020058716053907952219731752764897533168841646949347822223472560898400332571517003085414824131670742213712384405842232938586692151491076572158023603750153134988826377375929898536315830650977932437764833216965706306306107543869180382399745045174175586679142303685915304648312153958990036189112677180718362227891782944579597018077813993018198888967646967221682651210965680590047605086968677777158789200526618482478451191668308425358141414819819018919999916102931430160074700703302584690347818667984425177684623741454362074579082224710856865861233420686784210987385526235446418846791311411409679472446589217948069185343510388375150902477496949960120139095223573012774746289136511920447390649795153850548208184568131051933952029115499409005698415741570606910071727958329096771962717431104965659007078800736700401690423215441458138061736252196565295781542132960419591406299778729647280166301440352985602468999020904452960015293922139988425119415230701360051907559747842625530773849452023024220707045480712203218187978386011669357280002309750906863302108194812528748893210840051710752949490366982120878451785967954297887465555873854778609061536554194313843325466263200770818121164734922155623565260633832607914376469005456823786284936690081908529335821100445464085020694577788052618754791524716063015383493610653021366338619651856195378817596605069460069073620936467080727386104846103188626780809832088946227924504466391888343315442245060212992688334136453797614763260669684316912126365383154273273993940598553275818458524037581093161762968983156162510435791318831770277945035464848064667493863202092873691325311928474970424812062835014373101805646917023066869205911344236408638419682332584741902554674996373622302480789239163754127773940683044883050628389046644231706189513436817769722587821546125315852885457354482954966993338436746343654734015680040605146855315621464764292680532664091650503403793447563798274114386343762106097674037144797793197813358307280903254768007486719287167010309828715610769482643562713938504209963951048377672075368916107263136232659893011715573683326220344094863802770071490419373746008577551114739900538447473573634825018127599651326462483244087325661309132174316532579846823056177314906485441111139158755403891775145732286236000578642518808936207291281922267830590920491362239422285757652080622197219499854786411892796452899898220026975107253622050343982155162127106414741524199476200570192814056131882678208447340706801443876870743392563885379013379907116655694972678831325003651114560385190807859718913923114734526448865105547467584072077849668593654025125118618088743230368782735480759040400874649099625014119404171074889255672245315686136254283384396376009728407479352937534129053142318257341537852788976504287663034535666895402788952244271474193552484347255947199333180402451075344644508302671002360285554027575533379806598949526589258932699486853369793112355676365753958220018530523845593116372286546358218178920105375998264302769364917602368572346574797682335408652624746451052730686508583610618557645198482757054752648893728154612246991049984059209838385347692883851041955600000815018018566136777002302768924880028541046142612175739716000040295173429094774878580315018987922210758283291943980143488791323452611360277656338371455202134083631891389610733649702605034958526513289822220624404476201464126684881648055960277033025710193751239705257528770138833722550528517846937418761267472415989272603963594190809816184382181928357399630920505501425587227153598673662376743417317198073975844287561584147749530791343093368716466067783055429509556284097573689629974466136826310736629401460301949878286891566213471470716530630314437893189652873594377783772291171033267514684064236042259829325448660737729813224023391006127743719606959898117622961790006154462893110933838426757624138289105843410481301058657708128547713293306972578510085488197311048061300603027927680756312917756969377620585210375000683134218684566319612052059614305814552191696050408985166258278995156130035411571117497567303895780309340014207992628957375462868544420808568713708488239973877074640092570196188442910015004112184880127725305547437958203054549568131290852158598741332863433647994369619803703085555234815639411109573622387445484509003978459994765903610760805796007319174666371639095535843654488079528910451806297207503740343125686191086403596374686123064205855918920932012397054845648901668873198131282066817135619994496375770897411783723416980338969551318290763910542545967317117874740887566475450551098414561862956473803333203279645786832943939107486607157479968047678717391234191614470252323191094171098644952664890628158167463988193492315051297049902707838269464611517621391864852252531728955020668880530872828233073572153000227462317357126066348498229024354829080278067574990788856916452370312624011737169759915351140448220091513419446305913267585257942843839472039641808028973536779369136082518769482528471417637405380420127918691338148409935624946440999588347054886335879588237840497367141196207752018750537415864732349564012965324256877882540053279319984540331939774645168165043219407259344881367106768143316206806486962929240326189062313834675294265717186754771559840130893290523621919668989932036206697692293101056855466465442373723972512714845505161096787165743869058686629947405386731065628996547624397130540386280866351061503097274221437633405247177349356698062089889012370799084075642960382670058143980737733579922862076863786727802121716856388683424357939053273506717962259662749539697149163347781709855629958805790041001097258280111650254872591651313295577767733103898234607796223186699442008875822930826890089266517010728153478288183300203993875146779831412913319984074474816449874674032672847597131989124246063180614319715332752717950242995637077487205532187480039213315472902788821573260380314068720208503399480855549298313825067391826077213421202458653671140749972397838846877370886564113842015797536007439185012476602944906503054931723663451644406164601946118101284501334558710829021945262986772300652124008068155153472487545457468174382287919496927990984262916239598303761128805799978155132662312405904097933040823768029031355920104532254829089031377991722118393265312149216706026596267676822617495390742044511262233922277492625269761981436786452160174855680574817116511366438055500332177132507260037018485657917996849036479360451470117476201485068127292881837742173544203410311283293442147032620123916317253047520831858846607921845067209243875502313592304189790400748295037285036562270330198545271987544603707439279923705206966512865967382804517383229519832106015756517947054460961996639421421731714638493012834006189133165086467024045077728395843332387920409985099910767315170454578519810791479900940151490512958871940950162090288022793578990130740809766489067267774787226386252041611395652238098566739206028785963881107531303590603314492392590466883241774460577139408549832424902000935151568747793270159164189758884374806559761129657442526511479396710003992593238205604341766160970709164621616908818805575333458853381526291790112265597927996393551524010140899501325718022640288866653330470402767189391162473024834505194394510149101398883850089861292501710096893463776644146473875080268854243396237178434589145868823476063119942970726778843980320499000204876942669456652119479773291565903636514760102538692346659214424259955681707226856161449993119715352427509594160803920690916813018935543278792331043723632402466399042152516201593917155274996288506140611630097352321453597028594521463765605042839663196056739314923935132716030449374825830680420734422854032772000182604775282729346500358467915966246780454300900949202366285989510784725250609796814669390774634239854581261710883897397575359832421489776251768751980783953937751298978407804384176548830862303664602421204023929130165936212515084602011553520715958459829203583532272059029017041151522627509744067415904398019111891773794012656922036180633368468758900402202191526820936212918614950847927715199415383360206002109585614574251644269081417431116766106378893736818631472806652001074183846347566957677142853345931289439491129629182175051219005945270411290546012039468839833081083847862414972831831162341736749135384704993592521609473452304699708499261698720587695208719992326014942678155794598955037177496333089930921373439493466076416444982814658116188661613577640090082053603111298231434195885739535638956074896660081198205346980346659693584232842960604927466633001694785067411641872384620361545227828817084662289346197302799142713915976390001527308113963239800170172176923592641970178030953827739779936909494571297867399635701512540715933265796008484298584833852855434450593158882016241297846235363825340587437048877759990353950404825764826889909904789525545790669219912404218187834600685384783587975223285606385082908063805068735866532643123914630241697873489090646025896040229120863120609180337954789854960335840478860465881924888087383556147099812702840780016720766543623898903296956873332965435534797454237812733321699518924872422578340154087026946584380460532199115347148065421185778615504308127300896428546690129779816295917784481218358739135983360632152505173089979405044413963593362067277141868113718998264538066929981350454555000261439674661018989318507874465503501426682204753815595196432871242337277714958802763722247088619761226558329725569733268325037673643096376889607496819493424438578727959803618018558054663898351230947648515379887084125773276735692204183137477650200318695813973667171334639019759528717831052197941926561538663824410723329965363001900316436446536482759293636006627543924095905717366280559319798126083416035652317525158523082401242870514330231165696803966276937601787300407450264590007964040066558103517691712130495547122090995092873427733937770480115664677057471924582053787220400409977476022511814308911145884839425735237483219235444787732842697652896780357711352546457299408818094350723079702067277529113943675281240844028443924959561659124673788463479270852808239857506636465077388093137186256672756770194860704153979033985284829447633112021035993505839073910564318907886250054489376926560023978283211447440638501570941179937691942354630987508034165748020301542142223211053855750570498643500201821083410717704474513062319404508274701299589000895710373993499916403197616758797470186492996690048103172400000813102594430561489010165160979651587307936851071789219651437364568080234241620358530893389037885973807437279671998062866238581340360812267862797276728061054209122177640538019110004151677931164567882958127675972915499313798563261265609707708098667513462634509788351724849444900661459421725760444099164564098578651483313057384485111991313672528825915878419692357190635388635707598523932925239944200458167642832623462194409773620362883211593996217539842553841431133394540334464729568071671490391077338680555765057580611617918223803161754093511532582986337827305387856806427655578936352894054707543233513528391303511376951253662552716500017809075860951776027499254402698935356475346089484043042158398499622446540660781977924538156382533256341101492136198125238262149388848670920388492000715914064222727336004407365114933990733950308204803704837821291230462359828146630640090175891800694823590441382655954490495743703143744496195074788551359179472477423524745918507028288205991308246213130983726434271090318244714048875770740381119141712549528155450801823429558341155229591021744681964821691635651740716964721458013346542690935751978428438115310593641275808736873630132566009444685322258316760333192801977879504688228746648041631929694292460394218014808135179700075707975824689768535530056551357741670801544647963825124539812221591489660492504471044615401873498186374141336462401229186250973587296967167676600797499605894149813152362607794027872165931794771290990038838079985588131925730937857247536090038402710398326637614050716986276422061195271511833699670207861556768800534031144702141622119259877507941418267532732951259849819554960662144452476669270667401167710813163673522114664031880713678226680806331170054754576756436605366865387219218467038830095877375970169339744784707637913782768466120786607254572152294906387306445403539775024958853018993455492095114501981374948499458931502662212040208809351589502922108504101185722120327458482643127942599172248265895634669399358229521314035319052015841057643566351577377317784477199881859552187324596387425289976417803677927071092965671635732821369726714633193276904465468007440905442617158069004494134142091811909403781674419680007715097740021960970314782526173441089723862093188324268339525619258120420928714586240255846388394137242332609967461685721219943881854992096973687234160136740488186972125771959830392871075655185278753961055701294570657065087691205511697639285538838977514340596574324043510602508816165441585167572859837501073187351171699408606707416401810469237041234947409340959577172231813687043660696883955099500191368935921743930054188222284240962786200095384165414211603762488228071093591966604034417057409180710651552225687380826937722929363453839253164997281459204118406777345765032395720147179197057455335218672340484405060417762630514442725767046780291066585904677622636976852896268669331286844491242743031754450919227213039165128759291626507246937625894852426957885094750988613379565350375621676832716744516679776227288637499762965981520786478137320106883897405665720456260880622140734115225607015918822631663550345250365844814620114738131581572592818240136478273312922246056129021392332878199393971004995147436101094564685884364811853230944388082066645525773754203920129257195397510762942871525218054091530476466920594399770444097649048674028038841695537045550380939108806563620526865613029362989649080783742212025714272969729733590316147885679791514406378643939980810848620333125100369378669481889929241118656930462667873240955075544356807768902014259146476972318623132698083744118690922131608403999991914795305535960391186118799828232185383678931570725700923648457692386306987899187586689788161327448716423287452761956282391970684549716824590197653828304505078363871594639439468452739850634965623868371786698237014731024438690694528676421004999890691228132416601670660637603506733235341023810844150083066961285633650425794171186086443091019820628457999770452158500012023934747025476878390125969134689188469877492562526146961563247072258569680733986819637416632953843228306935058828710155126371573348602984725157336003474812001887650741468669358497930362011420349087438385592552596185959587548032564363741940777563366545820815625037352355966962190407059977816189846393574140510137657942980206894926805577205930493568674096641987352058902356840739244036027131036572610936557097441200683477185155615883562868126322355462549878510910934000837855118043852493604381091638428728617268398275608994856406256325175746855083592367177454807284751156612888832382843121534592671560839367347339006838443611627978610183619404651621392571619296997981361062561316834359843777936769186552004244153836575903763493694577915533295514254934802113516329025159346946780448743703358566690225661443919286280886935862840736926899866049938107127405541832263266328943895492745956415481097780995120233808959238577448164314478774021598694593604749316413710147111153430896247929925974385105171271933814962310344981803332144569785209616410138208634831525850273960228649274321831590981163305686336294662109152520768504302724810185372835949631718412485271774722115671154271225906210823174404724371989542176258752159614530927079930452136088392674536077676626690175392738229621371696920327521622079129073012344977665290360055787153336741444193676494233271167557805821258047934886661444525832439490654662222981786468092577529444706159085216342281898114617647007389116510658819376191538169067279835170486845880995272131337110310341010157647668793125950925959992378340412951066743687036586301478966111945101418803590843297387912810435232389789095203734910002148120246879399178802236912129358399977763394353087844590710514813937554857414552447233128133732768321365181675455281849090779466261164864903857839764582027459347545109524273697366069001673377786987962638755354345327355732250019631740182108504722709527305342721658657452388243052401896924679287987777490395076451754165842290512254748647626247847167974224847192772857123066581835929811306319288863851320463967809775187454373755618969381172710896882325642459693147378161841696196876535756118909723056698347311412317491861695673291653166322669809873736195319128543242967458532264263451013240584678136707250567368390448948853643671457033454438641544295411473322504522773978564444199612769169520958657961254481835860457427045297423348928032079240694658892685834355429970757284974376743023004410216955546127338204968928384767351960994459354709989996227959427825200704293734167430957152692747545786142781257933172016014383716022137024557508081376886586438253935247513270205633882979890074295902422769452392962353363742355215321553314664109982918976758412307633012889952950720161255332944512148664701262833674787042212079073000956260377785480000290383992628648368666209240912947086194801910480529851050872461695083341256179804983893167478085409193440254164013829323924254591047636547618222271835499688231338735739315799469513316370343653552632106201695050442281240605610746234686921892916304439452043670179737046484305386740120731194172956746374127906735344454456074072455535056604987439284578113816739567476610057666983358437363365036861843724975513332718003934062455743581749001284909203023437418406349397842100191155090255055752750881249106746899378012395761632112362298037125046439829054228463085333922206162288467431442267927285729674558971766144884148604445021413359505884736386321650020848861380690367868072563749485669376014982051757699135426678064690858661418247610111943702138971754813274567261241432826852190612386973358496944378483080503266289754612434251669548483377601686163118055436719958879819195525268077572045662957203056370513858600526802721564024353735084413373933298571608097230587460496775438354149527283913060921385062888257813687569220831917006015627114175546270722674772481524814319796902607579822551660420352549561879062187656790434405343819737550976487756575697803228845757982269597041983046748386331044502590707616239522761184870176391701619403294006079768639096886413199616827763076932690159711017334046697370883482772031714999673738188287258538104013672631740267451277739563005280978669208714146086376360296205305413518959955235643102092074144427972823582638523969244916088061577910062813772736645271775825027251654766418142243819873852336553966026402971708931844520116133409120831359497233302731571300449425412622240831376877309684972339725242612103956588379736569633250208230055439607764598284953750271781397568477151662093137153511384775065908628254400181288070554941100747282592556702140761859495811384084923762434128530407821130975861512706196551802980025207461710244182618963805729591034643519779606161276864738217969788051161576692843857688860566055827669962934769616615500899433602170463294979118438943343950727626555270875761247095754273356813858236516813100975408043226125077933536405925207311191633594566057946857496441263445624220952290766329735653102232650396953822183809181337467887461291191277683650475261802907585081314062763310932165601087787156600003885054465967441777674035353917612254399654330218865153064984093471606501775168303672945060616270881702753237080320754999838073088938701676617779173643302426041202616315825390899669040047538110241073538561150411953450707582969588183202440466623062591752156529187197658411977343390703970352266186570043091836199452516900285857456337564318241018735294178192693160599400466994316750998831707619878982087257352263946052736243927297024585710698776609796602162000700195328949528636412886393097504357219845044176445731539676444190953285339831254387713091367709595596508019018275986185007774232378557778797417686845392448494306521488719638831934455218533653123205282936806760555108357533177379121632220285960561620822737078668241475596268978320546343349038215513052111684365500522672364334790155644547098228443814154902257668602635803817801175930355745972470307263740415826809141861743286013244737532841432409456762184840994872438603729033440129189438695161763163357089230036129780617684577295054504024068180325398294293626367076801168595747104792344575013814114526117068801105894160998658914149226235503420433085962462874098617732951810544050232300889023579794074818848384001972345111636053887269271380645731531993147030769549935687909185835522880442676923795326662954401684677179751760737356097092233659650236817361392087862232867007708064138289165501582180382667560895608479056897293774117117524831405564605890111817938200079166192858153246667015891969836614897744240714684650660072415175743268117213710193500699529853982404273939208882884871642323544031067062627840979836752637712057196861293747395590032853078102625864366238387312589608445719689915464589753257545065190508689795656332687915149543002663139996410929883965214835008522258251621027882256162671541935186126637272173974494133218909922342574987411226870945414862179307648376273808158677531257188958227020975379503711773892165708648407447695684494708222682684381323891547274534296336777288344117058466487677176334547668449892878825483578348645553442271508792710971084629015998118425087247997462075608216913795883889779968102969236458639902098562041382892956878107305366040603482517201213828740675247631922457080073861046183652850102887178683250516727372022322462165183509277885279408640178714678448853438487425639029777092044286272716195445168571653571359811301661616455282014263390624209370157707734836387291093941694152782865336528771716438448546242712659832497151348190080853420756866172594928403071636515252691820886261786418945378424951958946459582733869473747983741777647460715736258634831433997597467357064652255769710480212410508642487111948554159328100364027860402119893268218454523169815216346309861214386018181066530473339377511654882724360085148396164640943759027849281213919683253537797192209873843264280558320162800614496894397698528945047964644182114607296938449311590884815862564005998354371857834245138585980878338980937652230728859090353537549796928796457746121355062513750307648268015582674020458088635897800775249983228013612703438375245805496530910621889063428317466438182477252016759819833148130836415964843886084898333196878977382936763200398108912519671227059553899484141828877884940197298060959848403941999772374539814163753653451639629033689019765868102516234832809407637286745470917228634109055262417968457695285038175841871765339764110996807132896932522133957518576097915413708913618041788741860334950015956590485744304064201002290067159358973710006044474448379958165175183327358377926942097530174441011396985251350154883988543151165838780921422048374957854124482012951467818615880725688575483875798427750436786687539908464110164621959695062837598861102893455818401384450402454615969806460094238143349372711171767903126425412995220275680053168008768064438591726067848921226165566897677626568173385529821708155438686485228143197447702679700166947123828040433393495804725234691098162247398220595933101549526005081313391801846330892059725238163811108885401605798961037812970178200557974549142934474520887101519750417237757023983259478833051196695389246250575040079611129024596866470824093511136378376598462460361450963749409331439339359680139401112328871435253571944204978589969820831921238337716616579449881926418583829206908840711030719715213925729083033891017373840848391277063551395858074380658883750927732396210446659507145305803542790720466193179704143563032603406585511946694855091512867903284598326713388696731333085259380780604483342478941586597565229778277617696420203348856852742848465191066806149127394766894323791562948749655490618557307893015385540763910070500506771077329053973135815523689357991614116056468672401666642895806108411153462476586734686874351514158708928063630350772686673175210996174026647398399103696489198704671817078572088237700094538910492341816540911766573446295668095749019889989549573568539457233259619365538117022874547703499874852249910924699696280092214710501310100659297453035773903674191931232856041760860047105180218116272425653762535490102259157576568715066020142932065359975487701120786075013746902170068099600462641062628667889131313523766016729514806252672080404113422941548092440070830851309028326327626476201802873721626504052979121113431807095011054183541869876836348178435451679996915944949577716985991340088956648936774563034347864092517575113844796439481344825507970023422738640290029966335684409089030185529894249726635567308474165072628495502520036477093733913597371593960690591828349299958134751828410758218648777061404431912127933991113520420433245049193628727425470187199575540974106942108695285042330633328786055853308605115420410283405682997056154923774473584620250542259801003026644194563705235188387442806805235950307361518276085310796995209403893202723841384967435404101589054012420389044318980848627427613737266036417359446707277405029696744391186509153717139237293423860033690236719427372747664967887309263093547593002810514946218141791212556369296044638718707899468020367324419621192115289264294636206062054932702256504388214598839426582210684079540835478655997691415548905227560804183236912856062396403757839887178118051759635876188076692598184788010747265803701310504267601065318895213598523458410919948630093404381722794741096839173303129257662500105837803953577460258913960409899002437962812929017174229945606229953999202013039982127412594597331307513072580373833883376634134302151217621637757715647585018231784212589386963540811952145011808785229833277175320845383283427040050245583187553302952845684506597405314901396986444003112486833540235666707462128583442866396252412652478060754675405016777187705678902855151514360093326070097531778848031763346329597893585930784304576841545931693329863607097377109158575886543010054635338829252046530903322471965596482023836714240344117273478819922138315484081788916453803489270357976867507510774298530706378076319780512126610442751981630999863794667096517516506479030732242437220051106970312530863066752704360971920179771320326655924105238042022714033942798107277426693183768083739586726310407833801317483512375833053792806741596210100860767562636789014356879756823517380832163190309874630756312336221148848850073371257756878447131021354018160147454800426637172518634267228964412130245204807481589006828664615222382608165955734475168953587878825342851291391098479043818962755050725111151923801235349570963630977539900643643650750007523200051044212265203921694066006927750744601544947697714184526410361979355218125025460548302309847867069055031155559262306880615383895332545885166805524671425043508062992511736041323117154860288492251607464211443763874770461001555635550623336883561737653966038966311129577873183853785831367307209322013619376449424576318195642072355826267704668539424468591751263828170068207929688358973322283159305838835461998273656339456936071466652430018723868615894015461694188313293413172954290289282196050602589919732387886153981407815868120304100233071923123437567624767140650147873245149600863985965944493189318926660140883938309192895375908496516727567623648574189088574731992180451278532873240547990865598309867436916656871020970945406368422870617929351292075928844974390259693068862238932542406890751408322201565187379845610200058034196728865682903811169597717425678231769625986961147763203434533660767919145445277609531937331023882516556683998571528389252836645981245746777926566071912124930449631821361744477182645966063015581179555673975191970350148648739500426174507235462230593117089137183142698399299391362413786105822153964487183881734227317178633322056419323722727877724268271786125960165269438011958881607644818820955757157793043861417427032609078952337207606628130983694489953034370065177340391667899132725215843807155609128071233730030409019215000506921207181549718432912621034809405944653891071785019565695816051808146989633247772117486412462925384057918545907061320810281431255609663926711833426414943238777892259450577404852368526654288876492248193058016194766977869724946307485616421895481441536258659587611270242179649874672751894565522067192858811747067369484832876828730777801204439946835438260958614275785120612724028271341507361158735696184159671338963465878230548405703611012305850599680319112531752918255682613611049874019851525659285129273821197915841685713847409192609830127052108280578505203810414721504881373395314692987185314643249900903056663550047648348245687409357290518585094134194014527563595472975879768563399181407714680039914691369671285277438795172578120020107799734782036078500165252876945952357762543127650871536847749084685021634494968163241103036490848820083836913634394501420882263382720979960045895014832776709497133691675933558355722402382962840275335712642965380202376787254579187904737154270715207686846468282379141642673294549460943093180693143764100955000987218571847903412870654341895618542676831773540915003853423007178393178255548953236163847057029811787196614736282459961048690538611352499175330426514658635699332308999721790013213927596652987888509821335318794194685825582405446415389867535504619036935071161263392344373485037728847074716788104844809186893085593745770715443346444183808851272572301233251481750875033384999275129878249511115174552151396525467885148335012378159505040390023253787207868649537156897357285946985494052594444012202926858353804064007012528655416888310327847824844624336492897932671725847719572918846495954035928707334198787561316429846909636506483942608532246105594462616040240774134137152002744693792726056216939216989255972026046923320159211609860547835336215024258831535275963141867235672952497471210294398840115570675068356337710439395114556240251347614626337813729101882461292783400482576982674299950209923756435969458482811059424155444241112539361103437885985091777866669400201713483896979442300069902656420122319365009106909741041587289283922390728228582626287862888858850125847069717742296134639735531283480538723893132476520223331978278724425909888791977275785657459036875886999329464894175845170595851429811033259150135473125174519728428448671190426402455789666241148204408612909116786321567410138527395233167832137068760740752602856659760890425014055808834046408991618208352437522003886035587238796479473255284546881553267265915031852940637194130455408910863198603798186464348558661177011484842989023824182355652550736450246383389931027197161140249719632071116597461523124115621810854039579948929301750871832486846578449451100094606559283301090052251563516155157750969974789348624153104151401114590429111363590793359452069272611940295813838056571733381515761703735855604463040276101841603265307353674646514618482595499262687117341197165406975454049112185334515612769857757882047975019025879866868026891430417686585138150253066709243749559937145440005317877046691741344094566594104647057647214647441325078885083158815316136749318015327518218995749331537755511164010411291475773369663853306500895613423054054229702362849101687511698586101119775628989330588086213387281787274424484086596132244578755279799182346779094164323694379582961661494155722234292946008868859816504478392696636729295351601177135776928410040770353449228537887713506112306534830459124680896349941980898355114789836827217680944272335365793568470636924928872575556622316959904654227147202247900116778377540871310197540355452260102871965140457269478311780956321173015535376878764061906611132093374904672621041917954463447271766427855853799202729558599705773458053375173581313368377864949335010954737549291986692463102531423697551021892020262521403397543639547465658729552337255172249755193940808040479567237359490057466602135519559432120047297156263059177146456117558619088093161318422286077680866346632424315549807785220283173561611506951043250024002848329160234558145618887685725589730674881846989367641395322368803627635735170780756506189886915482073007691323816260487247032322908453396972424037016099952519314111582132151602036446841845084370117077399652721230949344780341673632928628568500577303705199465340598984814157994702498319767458568230206006017299958603467968097213177832156125507301774291514003743143907017121324444775869918568295350813561925599411889272655065187928544157028731867692403751107431774559283028431108255966262642373049949639680404543123917326353861391131541873092402459191553626240768649770462253351110059270227274489105119332294926462473303003926664202390690406994225054564168513395570187936673331372038588038365224309304866758956407741052018629628073658050544683013634475555210605904581242333513561309973274780810752327948251554595722330711121871623287737708367147812580715954685451917645648540097376796012541228288889010822021518904609335183909927355573227476901693789336444866987922582920258606333577079846508778180169394945490201694784992454667977322530135144411962409197783994388504465213841754397013269687984726495265247009980477184486500387296010968597082161629396515493760662705463945133688476725151991279710981422078831108048125015934354159037662517620450294643912764452260808184747982060331569803099519034489799013309399473172957444648908132953155706586065786396685772398507556461042222596665789752334072204104395145098099621972400925702033950615076785166604943012554992347551974782940225912974448252921220922573366045243062411768398308232503327249538090312980893761106630585108207821581878270600467500753127794651625110412288994748277749162706833538730498160969072092855478511859758546675917764884860312626902949214501200345309643382779684156010546125882530376172225509192224503568523137214554405196021145982766437262579631651776965031258328830344674247865702047354833316181079248094767419673067514981362732815315476260271742434266659762939779610866590512334371890224781140737303561770545535235378904516781954277376514554001202801711083314492762968428434858017199804024955453007552459146515878003932678610029445978126920240553064076917005775180649790457399750553835467693650739758471387019814472603882010094512506647341866329243524608896544291114897570329764345855277031274781908392574923720609792559108653848792270192861658589399411080623850162433219896582347968335544871615686156722880497005749021071820154432206149909844865101003971347609785888099536785893019582669787621208559036445203085602461552402256591548046763740760626313276080519307660218193205050130886904224856182092619885815081877554048731776752058028908531299985265739723456711384557774676261004607507205431445808844314499271866018053643615366604186756688711577048374738359986115587780348445291512906317847350194521135131852459962229967518775350329935685487145821966959597130838230105149514197364055108113830434261443009973343034653195835503317343944730010870063429871352274940472288083298267911958492533212117481731581654532280732066254160009085818447764802455930257249452086174695234313420032843569507492614896931554796418765566613111044822556898270687856207307265166382933229270772035361992672668593722042643995829581268709807044503256685254289361728798985855618334605992785170843699298931048661677202967827890682169066059753508651740037593787163080755076514797466430525740715586500959796007088220919984775339060079344266782350541462486058116080596709588658499137145952072505947432582337326043902747150704121149349120099146191034958743753720454038240603564088015579475596353993890416986392010610885621656272419122397128335545055808420182233524674488804889880861413669723533650595573291830727497348922253263687795245261948350624512486027353801896875649255472828755030493545124751134770418251949997110479022552223299974115251408300246791126812834595378558105048593666409569184282912717903974231192214527915446902414069484409945733595795422466081681205684951300857295180393146078625438457913962417065676892919022146540611597550908788196541048366146490664080243967227598530280811572365705177006430420705272149846720849639918147803277081288741150393522032795789957041311951297300948577674673513383443221708399465600474909517674009286915562566418579574475491059770607761118726132611815952678218533628472638748206260581562140760949313495757484612494234655036601737100313132478020264524925245974748690207245848690303599647148688566934050943640782185356938622951142230544821977835736334961388279430617874214335559313695817290837844974675943588512932704654574080407610371232135011478190609165264486526957966519319496261673895649874346092006266652733520580021868331460102886802816280947047289292124228205909143133172189824116073806758996589385900715785810727816812231730592329320406691736517643746309782479414493627996172361565753492741193194079888190683482129839533864502438804289597358852654052904970593889626036149350127996851153342596336676409648494530774216738709843282800165807670491166867387948995041489254131327112093402847663955235837119714595751457277320485463337818735449202049554990425089531496735799764268908424878796399603829998388549053113798587722603198953338059276602208348851387180850379152114284279186075309720375344991955748427619466371628513311365179425306390414358241883985631066011722854770676226777253343066360489508956263851313900494210117786903504773695147730535619883679447859242361792026836518604953053319517560279366804685033232065869841525588571458377054935164983795074073810144654878099374588158233813031658261607681372723017453565616207281474393248280235036074106087937615623108673460101483956351862833464096354276437019822707486181432603819880225907642691439349575028177891320685184725540932182871047597423129271512302569577624557022364858569892604166842491934174236139422748319138268204632159137330137533783220214653218714007029536333026232630137204071895373509916580107854608629975764123944388605827436954154052454353192529432045084121207957635884444420270106215559062697875677306652955125976648563792783042832105685828235102654221397600476647808717373469263711414030102696572451976039183840424250108048690563423486044993376320001460709231913931209919169453986030336326351273628880594456806499392633408756282329094721326940372111777749744421465638405465763216631024041810169799858283319054709440025315285755620205228199604421475191375064285484845369655938996415457870830608847313304101463188860491632145124308545503846218135829479128957956963533733133565793399097140543557310040657880048684094588220691222347226535159793291779688450683687383212113336484635499443685276145340258550980626691048965372924708314114758847498406690589289653016165835876290065488025457064410043187801464365323642327162558197435243477470984507707018917182275451440482452764488561801357084534324574146966639231650435847476698316083150067349297922815286300871436174333476441637101170072534716036849356344982902799683559854624423636822607602079731515016177839126852794394599307225314239571574013697474612850858370916289668443246001046149236290049862264322936868071379660787919934381925382700986315170277066655441338361650098703256165855325813968249956923317130119532556912206080847356287065998626966409978520072433937210032283945107498509962886161510630627736521508634243545137145312098222782265147962345530839550362998799115733315696071437708523739206297384895247988617578796449132436801260910459226555114741086855702918091633475509579041444308819025293715611246058510581900778279570746779206830026397217356162691572778687521961319397434298794505911859597207743957366676167351572319240857845589734230323683370971108790079881492502309714080039692774635187610477750690740771734022717942288662484345474224167525889004479514423824821927003641697060405698900066190273884056496778278893924726135957881674138146281638898904623630981656255706216465324393949543317671971491177242127196750303601799274186034980404635021164007730773316807737344168606931546860713754022960612922500165376964696620746695414572662269256228358685218386003061295548934434964137988014695473137667159220339937679300124731077974123113879530472398961265977456622955965241501170593875049999821764389705565108860662474291949068882087457072903153904105967252817308174708295135520585377773166614969454181203131921656829644172551212912474584399572065311078489740345490993661147040443522172268374489203750269294206742768940934100596692860184166098290958959458337553294567889215815089774480241911845678251543960498702704178525370075130205686183042551037844500190931443444656986588588245677851715241890500343034837703236555171801688795858338727346276700921674680230437247506435998449860596094167221989289232550597333117644581218575836890128069530023714584156607962842279054055888869814979611790599639158958064279302026869216755929046965773172902477345289882813934532371647068749931302207500388456568351855230298310301410442112103137589326480948125707313168824515935933167297718554978780013034947799637958433639148083637238985673676141509772826518550108745669022996636430535590821001069771068846477873451912213304470894207116370529356738776425119513170261503364145133795943123683978674952931135492089312130066955244513627630145231234314515544897471227421095656570227983334228090869065863725140891423964186900798978385746405264022305452840239327320567077361196479341880432269712715512502927597929349415985190757487288038100475092784565068557367248547101364148195728241512384871410337131423471727885834883102596132166914591712482753489511760338662415730605497154292005849181228074551392246196641177010978683446233147292015710327282870336952901628345551357289092687744778709977609496374158726424642890271964926747779300683101481769555582039792190138132873719392644624204353786238398158011382126187619967940495627523601898055413777248802782923243529809625443809855233963768196367816680989143255846963952288078401978374292986350455581418042174297091687637628349013433265500383698034559400426498677571976334684286471373928707122206176800302821598458381770930244532623249909614627057548172648485842684850249470282033173951768079695241815664766723271507049954415539907640122908842188448216899717608046397935355614372043381368119009130616825816846890095814502432522624532386194637608464099325871704098923317066266724801864983311877167431303548954304684586393455363455909457333606767853809150493895630410491842984080527285329192174901882482288516368780952203045794900433084791735691888066111279342345791740181058462841666754618995168407706774835082088577582289715623507353904077795289385748366380149919815881607286838589816788627630822930331867802322969413656546971279614351236072639729176760894140183081957279896917389136484829182478966309960609566542401786864062743743081242111242229134063394094624329797769368037590936796279858657669015870204097881646568648437182753564792029048291476649716801179906811288505521515563389714929926568190801274315822354774530326312802777448362068104853616884536832940823173212054941998777506786135740567882592383964786398635312549713995087114800230654133452236851366076009023610703943700947660569065358072213010513889140251786530771680598451037738133332851834160409003034784072740685191719471260698412200224938890489256827329807873592064150308969397425140394563578889143787316563569061419537213684759829640759970839887212292211220077405849415956117623703608519357897826912755694676074532761787060648166822933128584541822817323329886590968668213295887574257066736849377042480550699756866617802023441895655337951666980918063656749863182417794202144520923708808537939719715255869834760512968418132221755484458003172681317061989485807469418325152005237717278997826985014761621111955440922477217975049380475145707963808151964751186855162454952530912893686535447104698913127813330380469628369968562370832356573290461894455826487121475924360164724670258368496393763691212203702283275386037202584071150540632157231212098603990861411305161641964053303127019318067147073259485150070062909798216149249650514399432638046101591726413946926840488148599409189561073120804737891073789200804542055541889605767015371830149542613371431205462598992282421618600192862150965648167221222764195305642081735525739289379489360776557656820761053781272050239280065388446271845590341464654448480237139080269258791742264103367100361002733813286223435850791308149844201408496189004547804417233131307813846671603985751430537497224438458768451242399280753518684559811724094036449011791463142303968620542058399100919085503310044718247863076659305610352613971020122881833246335598453716279119623757841486201405771034879128000265985582095825700911730518263143048698728849787338400989852215869829653520013930235791239894634579920625204828641885255821730035544009183259122401274636612046861797429588897136109813794356820669713858168384020305952757702404804161296683750247613970860865214972695614537813242035329931649634263117266850630506828104969770213371886588063258309225489970603558962163026719499041789985136962568186173201367193421363757537196663853371645379690734260442903617801789162752383078968560690785965671475552621391576277306934451259403183578738782869743491576361821539874457687275712743616459225833599977164595283287159873729385911527683128277608050468508946440001534725838061536222524763276703414835453464377388392630155610769392063365245339919749297058540660134318583888731534165038584860583503479730429998438133775538386997205326232108111107680493420528134275399120647405554992116155079326516395253236731412285385505202767589752207844601131822322430962982841380464157054529018869087432880558117174088920819265802118588393048735395492031186714490911918582685967280532928124845486194182501434159907838526493681900254445267905552586323527985694858137129002151155349156111837013184498443465284527515342614628143910502454529336819907351384508149067225455195284715025875271904635118570553734704198131324590202131686853663745521141497979333728435841963931274808684497193930938624780540120255561137154700308654717335387793014884977539039046195347243418404379055549052889756731335125097709454458847185800301720310729482948361630586217333598772480531328542993938065414377486439316911966829746496572943659729493740579184289524578488668477499252189874668730360579859503771440311560379261400070986286951987026722114248319362619184561520924749856030801819874993975847533198845297866761013637819493291480536123341774419790386964843536759694934432139001146597169623695720185450901495227250945902208018151169213199599744357909678662306045785563037174695933855232758615719340031431668194354271154238680251593476302522627213097126549428904549083903535339295910041080851862019568019344057354579133622892322425355227813668370313719500529764314815373184995833813790019609148352064233779409737299352156234231772268053042676705661723269740399909870812813287420261219103612155736648441266643693607837067392317411016255344001880617269983866849095289923142847668859043848653850602771331416428362315115649971667808245978982921913700166203482430726218642828675739913580650127675369170699914660442964290272780791799760681993233995440248017751198609178375687508756953418026327156626747057456013820321439843308419020996319435402050117466510024946384845298219220631655527972955207608782823096411163621075219241735745180404596311242852036670861117593370586992416357895868242210035579739306494250092233874880992113117751279854175553750739009958951753087801781991793416936181248702118039524508280445874666139970980116156618025646126283470741476284568183004003700694967689636759392826573226195147326306183217197588188534631764052526496978253330254892263200626931916893023366805362427319400684638630919758187350816766323466842351513432656823700337013043790642575952537589986842152715854008954235808627265602764898740040553125183380435884821592146053129996312865283398739451902269107104043038795606255305031711388205715530265959213702038070918159906210863176836459748626577546165639918282138957980007565406505473526150790180588774202240341910858892139688530149431118665344182755391948459124563952554492823099505045365479458714114447703494803588841585418391398766894269672549288741396244844913347832179967712744733251962999711436140232404042756160629004370959145084249433621319698562462427509121504960624157192812746775785949914442507549862400254766179661069645591493810608750452270991550739898645632614628670885891270053996619573194945601909566192279002562688979302862237386997409672017868953795776300470087730031713613480149049205135954906794242663652028191259815547387241024411924064742030766159968342619048561274307033566720185750708218185104535395839225344371476214075815980095106487639728271699553269147414463456839774027636891726746075153351053151526194796594400642419862010169909638243808069714151853768489541957053759885488783108956407046291810621698515736415462467852209759286909333935947192796868090153861233249169370903527436504445741610955788316406379096995234871581358797156092882654853698048690150924368917961324211683294517511746796589030067526853185636456661259881042270290824709073509639258185922368739908613011160376393032476782924785287723384684663383924149912149957095200437622180666070205418343736367766888439496586926925021200544672931491506610621256445358807019548792550104150664569086329530496087707364457942445160996204317306697501245972857086071650324431972071378142749737889392222372149913033659896426792197492090149899726356568261397540744611044794296618373032334987734727829364382380332331868318842986769872426385476750471818622284285707536763613937312151296079314421100392969079213311178093704664007685230309612731474013404257568941086084531211371670531393451220729629310258860212283523026786006274132490989851487765248671849823870868526346183431370802653831276174421297935077318955096642640019085609248340500314414414587168366255120336651096476931404795071202080920620370170760821232976979016150779969022667778506398998741072942827653156452816004242138581930748652802869796539195538273403177321099545585357846761533556468278284328617646766736243328011787841389259637997478526543006211668891072673208933628511369071442277195421152698620581753623991140882034384297970347807130992764369739204355808816851112299234814481388493538790482706609535335102069134732254562843478121932402169118124798520840032490458400840669417690819569778601672703169266487307563670170425561360183970401864347897355074202860261354990654728176458593671321457697273911526138958341300101916793661036835892092743791040796122632305900072543165105314681924657699455603108854039380808178864650637121212005434939345803561068962283281247355406546340277385486333475758177597455623389676444939733965808571045295116339761776558035160019539780689664979875249831378477011122529241644519771941500977281564261251493972528795059375026809961205120611976958850142629794821392882528160976367967802721694471112158692539345341214157293964973880219172727057501837534473908560049014766307817175359817020923501627177459235988273844811722817572326996040406286500573497252963563620992802691827854491814156763930767326336336721118808666771040112802298855595259040637136560923354068377752829728466927535854083454937133680840640072875846751134272789182691397040302925101694881489178064394903960470709912392683450527721404039443960188186698799913118295339243349838500365436291261749163360441573527939274409451677014463893899203878283841357700664706887720507857126143036573791144511354683746571315365908429635443178120026473044598192773554835109786576212722818802576116572382014041428160531085021184149632143194952559193485322034550581309567949851953545138276249197727416906390177986298254445101432671180065334757170243508335055023004506221675832530242469608124857342059550081619101216234750265693735693795095999637250943757944483352852762962164459431511848958970882899817263142561869749526210921971541074093529361658039387165508784405739031406638387255332476277748147094421530249575687292267739031296245181706405583934058209541268597490402907999447914276905646873923824936128507180936869321219818567833942667097408408448934598930393875524565950481387364788929212036095303132515318514096906359966724595473689771086945470730399723330956226166637886397577678211230937454979229223795226518387939639715574760900623535456142320613361933390895610579568202941526619640551966499955365762479370796965377900671568366583783654011940511052879085262000034998655348053197156877528376576692680912311712745981289081575982150024597926201071565463312206728582371509705809188592095752784907454215108630622962610896317285478229235058003492918964764667191307234219290260602718036677273111071497931875718178051165463910433890461641127172995007203982341520051005545924958190108042830003136639064870558510911169278680538750206306525767296225216332358595404454957085452339454540369194871310628571486457050850363143184970499081285572744614168845636415320576669623533395394086782854266746283624734068184880129870205465141334722564589577045608126318099493040371930577286449313087123594715804495104149518701020803925622861203371234033286379099907936004138071104531975244994743771529185161968273401314330537596263026929337230365241793765121593525212454056943400157414350161779080476375446801538175764042934312857492480594931280703452865073753427803367236229734152367465596454154376976946287347563682942573444809829798017069904884350807336382670815028323403865583493563918227305912786572955585988215960233181588481203994147923190549196945143802921117941196188948987273150358317245292778324530212537580339646523958152865056816881582801776551811169114615193778677212732232331885622879331088801224552300582515385096261092884887588821089116143119010139510026690131922881410822859294523240430533680145996801356662155170021358423159270610018972632189064324290558185841268993584203245052112967992630468129513381477547098296645206900331897425673544526139396208078991154469779978938504384649298429692400175578322642691850862095413918942639051548592452147021775579107276591896560582481152479788497385518629982616132217624300287236355312549508162378310131364839812923907503921048060287235783618470725621476636538084543836191677374407933691785179260922184282633952170008558853729670504655906662476098989681589250846835831234093061628840590810811729569407349126099535023358857174033908054355341476396129707655578964699334743132696190337487558318027015999117234022914440362302469693536339213325774203370613264423938726369552315580127593303477783328956349753677413735716351367552461162375634043080313378033047237725742970218920472777811652277907520446339249703091790482734467038096683352825301297481572231888064549959861201450827672721506380288700156031532940069676082235512190972461258860750752256255237009093529567240002062702493820708945333804814245464795097252529150323847871699967698083439743449794558419013118281150064292229690584776734622074320644300950655857458002001692967456194026876803556494438580616827552218904907350672858316946266213703420757792852602965423282943317122474855777820857258971304434825815236892774558526529234261398597606588913430897550105357176500886791224861310680846689483355141112872371929357915407616024323613547226378621124928176253877638053357564607351220179891555387229052223942049867141623860407790338216882711964850451424611994143407071378959251088043852466011612779179253873899336507136375292495539089177447878642401187707278214563746610016887749683636159627363599375410655249668394971626233998695960242464990500618007993922597779056873132584823298260380816486993794495694909670444481132729427417932795169323591782226957099010546534586319063140288256013981669079565043118183424192013094148345145727299531726803647571314899625211491347225839143710093353617707962636358884038245643891469196049896599626280672083148876339226660523457557268295314229391296837758167697094921063377153236666778000293987118017172873420897603667753174397676207749601789483630965311306248156658780732869030365046806866709914937197684628352551406534151065516448727018693304426478430592922139699951291140604131761044273475129803311433326201748700882609411432998568411413952401872485640361725230930455660458728813285310018330370662652051512680228476961031703890867945957268814422933837317602890475028380155162792348225985022046170396604887378950060163837746062148657576913106678617388930732009545599698927090585372469248543084697324861579209635296507964275192178906650436918458652367966366776760041169767381953892223511001149185678673210990966751362230723200527131718636484520367930450051927717513668168701340128503679871657703365830338485465197381092589248707690604813946867070560647409822485000102864609110632778218468762628357659644482256555864603566866075381607254903864768168470831870748512747648348689863185833404325161568084162929987778938178079843397117384090947582412217221752076288648007405624758208938214984455100305886350611428247162593267123534710827276029055039785298621017231155851952167588958020776892252381177237766040541862588194682511561571639656100981819725079881499658089118271943200034737727201747091287527640244243713567230985171544208132152365501049069097631438867219042058464162557311218690057354001612126267744840446353897236642818827528276775604697353252265440804702712361178079633935648939181242104601193957338635813920662650609420461871206020318373281357170883842695068953648232820775990731741129977674444175550065929221104728139949176589587549893199368661117998847074119471108162784855289735229433796858385714682762894833218754218216423400960699137365595673602027539607063688883834277441512454942444518462613532861977910124594298302270927750164428831711720168943174545754896867531944521820961132856718489631952922486379654570825389779873984810624430625671135945376079468358981109013237519009313276500869810767227775192930393100207360843620051857173219448965229640738832683686762521600199121921341813711787186497202135844070987207468011676210607352833980436613783519844553357409995907752615944189560918871435392116431540644700179124382963454170893123605945162541029440729088138066971101412841008728564861785683270420545816178149795474966300872377219213777122361318194635538465921813641700713595417768591071149084336133937824960163764352590566069547141022748860150640033896147790874477973061064151431096025517676687784951351389557766400978051360875461348862686093041845194171852423184584645584904099966729448592861179973775107747195265615528311744002544169721300850589526780408251284962404711864077702638761309830529166535951002754054441330798598616001661150518281563095451045562358137658334264027081465621487947648339660222494155485917292369320058823483591691705891215512761037820964034220110549270080048738109776782025357117018886185310125178614015156768471053177600134428529819171209578063005339942428496362021402930684584062525012916328428139373863058080104454107001927304942548902146249671022708460369306849346595262250432297448937383055825390430906783079821435052270516444655790622219582535203085007241433598264974349571188982424670684712379821719060388627464745040316111620955024898097500448886396480953973320854436460132229382302701896414892929205719899305468865014559518178429377807652275417753514808578866539757717509687161566873964992051582412127142083061894193751206880028362991599753833064796105462868939300396176724366917012214217031043178554393697752417488893881911137135423102102189768590941904521811908487625416269931416252244628434014256625340977344617376608564013026377001642880301360452296251301205124152695247818749308755520119266932829725948157437216353551740458351084219241097814270545596305036160022286783507711240228478073716399996435289979813634132017835097958659493418972870990369633264070725650236214198467543560557323879304393909463262642086080923790570181357340836446463328946553531715110955647471529330506165599299144155355876718291784276371971464063660575790279306664598097274122614583740588491796823813127645062074822842040107220553175998415565906689421338836888671106383922178102592541524403649778246511926004661972793790419773883656348841936060678161395645063411081325888314264470442660877328232509476097430753697801859314925418331385640304265465182531692726160698129710957621675011431072181160685509753200990839294190640959593768974924743118007881181132040360471905643503979615866679682123304113328511461371412923225392558453774152156678562024380078821517733123884848746856690530044865182745861694516083625620548239811122131170072105151164966124930393248353265283180583765632338251467903040067460110416538508024215979168406265196586913919090584338139244155497543393250024832904562471682951140069561490997761552529189316903288575137030668434503890694673555308739490407215999767821781270060510243241743235966521173725536917517974139646673630137605584240969414397742388495416408486701199806928885372887499455034413334711629586737351266880066802978995458847958364909182767907991046853809025362741373794111894060508446698468000080842867259965756086080093318004196057552581516798836745184079937010076469012569845443924630390582074706191414138460712394446483074831444036661364797334025121345510030407988624093944872462123897851455022087598361383717681320656280140504705182351641017684869281539804407002641034512167947942830203146968764088041386962949997376485815796014429163764493238500453723269713571426898657133880045639533097344068278976741197562073515227536965788903146989657631580667271712861240955029006872622368965474897601090968489411578094326546478777899556857920008206648744087234829430394782654235550668163545213006609740760822331433807178405056006950654352866081898753621112777107108014701805354446395603547720809300636023233266261437692446517967148837084858065748418767931078016196962852827028538880690630875378789214307556999883407048730397967913616058091085010541988101116308272881614475742814135987968325529091665919108397907035642904888430542052709329976519471109607433249285729397977665952765016726873187485426427394051586349837657181896036358372301593399910537791248932447149463359422415767756409720502041741908230645175046779189618015429562002030574156581610445893509282385279071421526202656612954988595411915843854072231033391961624422299129184057051974284131942804495532273532770225954587578686132315750119510295377434731492400246310850879903108646914452207967312517437454090857354120511431560939478508903175264442870705873149731580717261828913238879183712581508827814430712246384731642416847610762672985794199891078655977344157532315038307148431537421511504772587597676918394608284355302095619753329691810085114979192145364617590847214570425132461016760411137918726933044187357998195415763251760077075818376820182192546738204376402492546415627298100257599936044725247922117187904498972318488619958107986785399047563271871096461273164952066642963960158127568749010954461899068375229807450811079456527091096342205009004177115133536505859469526095880212332569654866658791422784384431334411442647210415105515966552816722049045565139981160125568253802909614326913800895288328901827030854611286212445376560912457111201641346195718884664242140784469402054045617317093111586285591497479380434549775704041026189099729554259653014080276439913791485168929939025637276171098245898015536562381919023523565774475199917835411555964782355269905259539956358667099596924120685505290846441210124892141174678050146266148486605290557693898052445655387305257698875880626355522339481699173658679531287095430072693485877959204177207016473841396188391930902254422069946525853735612363145877622540146870697499622553893983874844930528771571747773111709048001612138356479244302467797508327752334303202623636333064733155134396324250005087143489859422108202245989631681416119598387063399038150015530842727070066969742261477844663367540621324914345491906488780499840854759665699179764898066808969619111039967473593843247112390364564274927712508959629971263803489838334511621288150448609599863185377848502888599626029781361496021413182903959863797891416478964884730296197388901919960296836240536977689049439423278532755242196988891236920095866670836438704977237503128280356801686615391647855028310530993785934419442344504284504013258203405326430343813621205208720735827883065557597535070935970820768740671001638126083120688863893158309989772003526273200190501476104526914899853725523348185897479079515407676552192066554164275043666593574197771336021011315160091047114651851770649267931157503797530372325374954349095459454028549245876211568787239218384595757961215955087061900492597580761248780571238573321879684298138025320508201724871052312079645920979666323918228151757285286320457277574320475547522953177820371644385646009389496936674168868597877840648727077027797620809524447686268061826927536899801793559751478234003462786725773921733082660134746817808680674629804021862580784909002365780198850860803692311397001070926993045391655744885310997896980110926149688242398200585376488009806689441743665855222728731023375902110882672359394750704723354933910997642281703827563786239842553747388891674214043526817863537738695966306641015183530546506196642194625366720781378830860788671610856930675404600893723015497163312497010532571353859715681931450322705144245630644752196764766394400887899316238176790618254464906049732671258152150558104894203780716201018606526634951714911919215819887349995344754976477564947552676149613270202189681365536671776123222654789088361363277727453728050496934346855778597641408385415947141634522318880295531117489234005518213950798064976384041286206051544407711411116105658684530323144309656527772148092460134370796571825504946755341663261285192648490833869504593703140053377281421218162230667144364428971807125019044168538281031499444746609714484499721499550612878548073350867961867297138239358623905481930159199659339568162988019781734019065227003939958116967105370998037824761312862875232378938452599310125161613960454445053470531692742073097646565596434261757692924855319726222074705213092419310486220119225055247967912148445685621017153853629416505609599402578024112626496064298694548481612183344994295612679514006899499284416954947499916486323619610273648822910429720909843906903002385749199666814194039775771047787173186972265132649199754242686168129430480610821353293421917458324818911365056996220510769606980778289325112572944197629850293843972159185402966929686021928120162160565660148605441777546380788706565069758853363241187873695942922812240084822494560217514829560989067627572641304628036281147558919193457264112141551824665738256869020036181204811990428436779818511851482979165214398745997155175603002797272456352422192892306364114435549510988722682923644010383484353410132245613290070924986182547640582798114523299295150763149475464564515471880300489046455531882305043537485567206849893173772940847703965903960742435315916874574243595941838890645328686205608973267258386064297918386355856527028514758317499880372127005188241324964601133693222832918479866518336963883718838407459871659194991309068722086682415286010710078624865923156569909348026382197991377613124218010017801071683933603979026266492694151831626612998860078770141963599188984392044418435584821101719477504138820251857072291697237421409079277909038283568576631375297613515633602432824090843935691825647314981990032493600673015495136365902917009418210904886349989359173915898892583065104139929047124505845196743938937129539147599798680923102690325867985944060478654910454401770751557761215439391746089426591934340034818500852852949529531070114286595458155115442192260427173257481584089605775180771849321078012299483067935933844795143563163529270519212287907942831531597612214086250580437472594751580437533287993413831741144423830356734446635667700386424662826797642614440246513158159486400548483345112137359126922844754046824130254680790022527639066726537044343282329694183867044131544571880728853997278000028158786608671987451709251685023198502473953937319257292500637291114303908734026384619009817353916536014643615367450577462128330172260255768573436106359955752657177611958525707952386259914445267151183979122109317629254645953773417999669036043560598569633296842553951854564211675127451052836064767533346705720079793486232126979145627550556670745207927012802655712729625571205674037704360661686709758196001327861516151459266433191914348104963225551375828265288634885201808471688794247974531944992831852588939077594185882677398929614679390337352808067510218742285150594730738111958682547598081894057076489456449633594601164728233213522932686886324437343572342043572463731550435837164709764758632309530334147031090264287205343672233513976574240871554860829054234671456265908169047135651244425480689901074330496810311571868049408674546158088366825406438968598567344393595967805331806171892287631994649120073031008316795666392738098312475991747264046068524295346347372847263669597444845470026642810896693787398801505517343721617666255955477690162520724844720957292819962114246058105568694493205821749050037148574806943955574538343160308981188976869101693096079967171878181862246246734328928391442748793481082787817191612379101706569599913680750961541420607412148741969275096811428261803747023580662952764397262822077137025088804636651034194358798828518019517775571736131261523753475375719261963362296375594097855321554913126590836216101023579881987013083606611854231244850169321022351337849641837352835924487168687724438384746941257135427600269104694954944874430575486747218810018519024160596483318728194552778295510452437599734121091683240475919220918529694713083794635162143691530311341440243721509684431517112698242331544252730511677745569803317775025705623157677950869331337335693617755830752664800890798209572366023094086176528964483404004866613836170795764406034367744471353373512336120830692936222370246485902133294045761439506903158217884380284835602776200203170149889953611697623516218206911655854582692186776306394709685982224270691725164179855808854188738120064688675185518182422174629096090513472391392694737738098825603733882547974904778319699926916796514664238494595908797879479558614415322813475591737257357219532752290036591651331411626388513374677222729199492711921385776489562790222438672388926937774500191031558579964708988244363550553847202600419709982820246471555559806577048535411185064917672797934406547296998446751033884785590234184694526057107054334500300981115721816807219260480110813891045215570664083834842254789241511519089947350263287212201683222055265958773132552316893029866625747797729789924612745141670365523831921564102460245791870237174974463508328617285907796203326037939978320495726755251921129645697874031926811674856437759848542308211099948847804362852793696709601770230231483129063230709112943454017855185281060517824829918680604990482246424528586548874731363619443341143667716264664123904472896679463456116158757451608034251994446169945502690610534278267865719806559358538058206385159206424152091483851773846413152097271814314458319507558972877702123451251834399779229730612071172294906778645813008394722748842939163530567979037229546052836764301903608590528930312387321725336975691748668900820569340649091189343108166444834046302198751624458617599529125420650046940959528884378077940172414255848456146624087553122367325358835997033279288435775062953663691330007229676265299486057674069970312475781340324763905090808353347687203629396784212511378939041454422428503697122667425646354568829226858296829014588293207306212338130832794402162626564574142664120207456067031721862367611262433701036087378235752041799440191127830598000184143806678026930330639119630186589730176611949968908542060447357797162797945532827387934503276464877680303098242870716553435186659908714596479821921058202823287346504256413822545762847941019950487134475885735988639007285008299479082278732969984998671521586522450610704989398270166409681500629868794872191516089713283617687166412467311423320157875056939456256452433670987363326713484042157558867996515049527221690064150198441423356316976998149171183652252131505402932363396428134023588456602954759343793789174527307209349898176169815278816871762458475560254262554140290439482755967477840903597006248532710186184443588429067098882415721342261913316829963889591136179402324736989279182863007458050300998411713060079010772562041742829570070700123289681043262888133765284998393764052311609444005490543882725398605543421474762504811885255562776355349546515132914509686610036247287607906661641054647025561120910369562029831318166113270813925148129540703503220926044108598816726432943779097527088831174633709494098093684832505874015820546862809968393978120489614881497577435215585086195829631067893108703194653165210126211232178464371741553271172773220591112809843564364993524177440767730503303998318665768973653635100035123741348050882007017387394041187742691112303224374702068502533787346654778961671081677793057205068163910140481485622056769203012526722210311787738807758128929471641224107352579222956408629521702436117572814388301204098851141735773926173441542716272632752423094458096826457070697367079857296352270052066483578130480171392711164217178096653522280487637129725892135234494318862531687760187964023163971753673463188547136986323649508401826962467864938959053092433613603874635916406764010415562515659197986369643318539019287264067615793416885443727755231115590619200707779943691541538506416372509092386373700683181531527980403415017270522871541699434256775258247178866782104253791771015748559610604055349451653736825423959102831896031445451132549991508669497734235320775902190399548919962180474962190900333489076796857209315415759141402152052463896503293353538786860757101666480118464272976806596944386756359790309663840661482037145176305616977774036629786127366064793838420213275408102845568291368200006820817596125073637534507664018469609672938568690187886879870211460821705733877774728932389047121438206067694980232615935891712096567501571003261682189237658750874792554683878051733686853782329983764876503259426238485218577148620665659256732749688147170638142601375698556505460295929115946627004673478329157126461501576349762608185922681089376921973871268350139825853907048961674843322679501497811829775422360240819803943169078251442332799078716098845604790456084803536768218644232561807190521578978417709407956221418004500402304147384303466456084779892178526702425265951214571563921169411004222228227752772296273910068222911414648738351512847659696624926676135143384645410495779310406279929496040969483649247400878474224434836922649850087849142952531559453625293780715756872967953757647220831785910898850404282662128619783330916105813995640521035649089468868796426923302709083900430000027078342337513115762145664644069468203935448358732268400200790296654822244335713969820569608138990225880910652715085805381023262462364981401090820109901057046423476638377666335275754918212862384195972815137520706475589129730980915240888338711020344883026069744884047591952941518857420933796862995573583567735768119045093156290840965196712063448108626740470087920497352847320989952840874996115506368244895586143520847043353634230970228143171751269375277428038507346946988495127704745354610892002593597879596486246776729518302071429539460824654996176722228361618315644131558189610803132523051575538549979252753798681825835915963335033066806126298531213120375519944094041929112228896629066859525508822741211057485054266329130240888537986467181968780505507757741786092819750010898591367330496023340987261466077612281887386472709218146004118668255118010457063835640016272115894459284666939836879593057445627872366924816922659875294771518918961967520762264227935815651439308369648335128694325752559062078475719992944913906370620937406393243008553209678647506626808881680769816335885989319629283545421665866633428710200479037549411535550641414880071483487396521755751785069785096778638445143282091100550126610352868380393244058337903348237311422600157553382218518642782536165730050728284661470401664395345396548134527553883690849634698992690083454189295326821157365571533954587432211886991220963221021497995016250863229206722030955901790841234886301465409912676753618554173537646430313759599966255240491135945686027624549529434360896596377194835895989368422972668101005337687482367370046624079855834569686526335207873104546288416472362764311093776626198315164063441364947877785757764221687501160493289092872088368605107275106864335526291172775948921068385979985694119845573311573205662015384081580742495623423954226225402336367424850094583346889862253237346449338803605700545069459579379999899754142800484553814276265089998639455125041448431733971191362735405253374710626760715320544140704805543394593211031106029620345596192627364660400362450632410337564697502367990445446607542253400250361167732432306587120447062545619761006483801871169587245908515200346847912087781790575460192459472195904567560320645556637261772008461468986804320950638542786461482177246297457314111813759835492594851973551782807793824612601182967484435115795788461170188775412697437061097285520574274011327497182770950106542307624877923429862019086324443131395218323977038061906637530439459674479534729947136322539866764970052128473523044097805621220723139322188177710582729906949257492973450702625713872747394646011343832156519108683304592310367362212469745837965350234171697077693278995019303555699649097972212832673625357723236321908909822435573194003666898066813340884610408631471587820042072679530896671526476397175994253412672435555525024467498304051868840557054228334935684878725890701405762313041956940457139208992915527764059843113266483850921855021873000898914598409840832311211197074966898807956038689995038813336342612773186309069123874715039086332010744669609840634159386882813728033062883646537447904368370027099917723595188172324667428928908147301841758015081188893451668074969879335392304806036548668794766258790476172865424622319222004141054109788422593501053757680300667055075645059832536840278633320411091877258118263366495671269324597379570859413399791613497256981478465196794268951864686326270266453499350574443866341775262649768647475100243157088800645366885686569168911735654831394308357672030264709449019385437416265536477791683258978100579906971892964963062808833755860783790605152450162523749479053142095457856527563822585240046479153193595800707271352399314742179334830356473378472979551421192799954511595411466450297046436404815130717290735045248050334149845071692570340723315860577951584507758116596027520339281012763593221709246346620532629329545247187181104291373181654145940374373184005598073431293036243682627362482988416545345563207194778107589839467480641941527701914404035792168004169801031780860078951802516410981732702966245748739944767806989645850227219742041227642614965329415958485621715534405956166715390531203166213232950074426946788738608038850909203327937068231577366034783142916602781636687892547012207359299255613012536577176394641565364647801005310433759081761036349881603963794909665289566268375701341760666518336493157920049398827768028036048348072589559118422926199801321783841558596931164953015182415063110037053556525850177207962551576595513292770916664014180662532840843235618360155257984935497014344726304025991765384255780644844163439845095880301067106529341861282746396570200130602473642271304897724229205480864463857200103153118425334498082710305210302332471528377586946354868115151905880601981835828292706561738456756178068556585209317658961528188005490624621589809469482275289109692573926865870762084495197490428674077433451122789486271403675091523093421248837105142973920383027093696753291573516742485456519814005228778151050980795805978165820369419059469635758144368081107322395052902354998271114133988869799853249792567516044223590358622729537750940493482871689982062076287791831335066632665091561853377406480648256568342825244981344337122752384418109528684692037064962928955704643600232811024165375312080051164441113262640897580624711867794639709328135365307412165172517286941032450214071570752289646734688771824030097692628757527574591822257167720820660765188992235333601595854997484059330128075269731955360431933914170249454922501311388459780490811287500511337235130277906717455738438299763598103404571261372842868752253491148091638542790617513647834705813536037723573408776799946104873528078093459206922862792468488740311764719336039560827443244482771181991619562646435828157879519368112825899918191459320244369023153508576005373119541180892689193684395742885467845115706625660797850092574285008463856066728019012735032141003663450222172582681001415578492436830299844316826433258415509647793045884674458505628759229854805548404350821158256141675815383861218480505218374634004611464193789698735362234300501520066196198285763559731251035963350803036722668184682157875601368546218451692413505321572526947467268176436937134542294911375990781724241336949406728928823040698464550935945934349480905352649118540330916418355875615848503167483197835684966459389223535075754061997955202635612900287694763468421406763335625976054555781330064475106869471642641688847653121577250583525154095956007621370296044481330776405222731763875459197553256314427874192599023734321428745641917080702845946306342561788434440156483784001975836435767962105417892254894864404765320663421707944121992414474529241569196467610623960165099771491577460871537682835630453101955764263327258360368311750530036102876450701560107812847483678124744303274729779043479783171951791648762169507333070785870512803372587438075131169018174021310630075972272837709408745180054506845606164748636168380200290180204158825119302189073190196328669815622236226006752193941209900764631035030894077526060350942480870354991874349143873094594722482187225106242789682839020055008286869733101375208286154024951449188715079897241741232771752554280951945430376707232737061264374478678776481774983644042022875568808641282455313459599175204772977957636675648603911148973416389749572847862961360452744595401012239424197638436155810057515684133307832438633345539644933688674476690424910795893390748225115470261193275003796229692350617856727226525039385730857794626278187228213206023733718169896026303295008663664598807758239471832001044136310470130175474732534776623733623995884609046105355920127181486713842856726947743098794205478752853324859202441527053494291386403225740329653217753279957470475687457900804296912842214942225152158147347653139756695220617195354906576701024668054544270676487868611992377421643438198604024202737972814195475070377154708686866577803525156136109379295411733627294849488988263062572537126542282955926808969261518141345997138435695480969208822582128390285982695764180023152180359323648367720995703270067954850792138089606082809158041806007424536037536651199166921957839592464955026312306028551874329806358461322334315335441649081422351678061039103454154199362828188228067156074659381207670382291126206146189241329899957734663858289669982056295577288130374198439280916280013226712824647172107872981775877704186674940032667192355900156882656831457693995559340287363577207158808162974542607768119566972881331707154189521451419699888228160010803120319147443754894632980163324930924274166057267079540793644658700603339505586775056178015573203530762847929786313864324460589543919230805495172894268545548937722467628226270347115538958811277330331817017059455996206664742369188909229210533324413237366568247427376767786500992414697330431898008691238740156213479951663661469446625706272405715071800801779749479111596294021605285069190737143149249560989642204844876915611668424473178057065881166281167865662929969221034636761502125139819915303176932184401954746109994089429535103262226839278314832321448541802371831905385175739920251891785664104612062415572795642740808089417782571478735088786095065332233553219337253841310770784638607744086033634717145189441634524330997508721195724762724609332181466806527915994500177753748928199049964780065360368057505594341837698670707333596215520502613242108446125029341984977172911652444519402606914344822621240407348837340598304545841004446943077182094396910742065612345330043697367345093418984324701319633769492864369434024774572951477767781588548562712431647023074108112198275048371000069502673550409031372919764367971441937248862363028197458355439948999415665814640576093611320197395382206972940372610027689160481647378771675643859335410270196375222775329475754218340170344039764537973187033508895808543157807326805192192562086128334225229637105944847783289333784109784231996130582274039120066417751246671590472349690299825554421831258655524389161479369690092697736746262415123059456667542533960395227702323487625364459599486307871692548475523044635588214096866473383689517306086027021175926633623676742785654991172031878050408273424604572402577135666516343951757031998029587029263939260323466374433049144179584244325871027945035239241476508219119579428170029476935948239298341217812110418370621941734154607516323251583971634375752282823623010944978789321649382620860223065492255223846083468540066770066047361864943912592643119037008392240938069639767480277853523113782856626696614714233199583043554439558043361196243598067697349069521291359159030038090124231545148260950847616405404846583985176827034468933488034026654362285983347735980734956707784017518591291302627207716213937131764191305006115990504467125235162921941168126149309476370899606962576930477685553266268372619538536003823130400971351106372638897600584864959361549346133997325299875416106780171194872573428777006745219369392978825221056921904350928625566702261075390990286628179129681811510121747603012879272202852853649419412740867753675692630807717380577541851348308080056718599794141530241796495909997690434358340860973692274400177157584227725284086760398634508488301374087650131023655185745351322589994837485556954825642150703725410779621744365234975926518611375054569023784361108303358972761176291791664449686147143810169985084421837961946369652420903279604543504611580486343685491118285414629211680808503569174127654034710393474880551289101623565370225281063682195034771704373351408723813421191949272412833360954225844867791566727497319133407363504145215240625261266062057280730001030573880664303269350367649343606411357805876278969259484393621619166967980736799771836213459592977932031923343858394973368923129717570197300999769010800967250641004042495829351670786781951653036441563013906140368738490608204249676277559674186359052095100543651992139543075860114715631460752482875764545507639655458996832001820648524091388354256912739404723382334309862186524595619205778899529184073902947565998008187477799568873250052415432606668065830077988949880010758467944423600835848504627454004582720149289497821066700171799106682576769485383385160512104287786413288514859054034922244102633289630739198855131830341177096764518704782908409435463424178803021071860860866297323513013226426519839270518267109803922497351470584038409440784997007832449349227589870058995217330629252247286227202226689571143997094233196409793707776411283389544728080640156178821672117780085878532679699211866990671810271053326530572470505808720915967453897092545037265496474633149097782675053968984568507937160107075149849624042212738300186670952049603870563920956527628415066750570059725414816425915463803871304814145924727170016895789768838171656680942202565759831497864213637185355372163040305062805136945758592391086623688109443836693710155285886385102026863958092413594368773736007915417222243571547350313458154478040526939979335023439738024728134098243905292104386900870928070109613629405221352735700873008353285074181378295683553172557118867902352029409598524396329598222854776950601945620850923493020233054673672357758317518895620736565381450762498796240592467626809257491685770978394225850339392017795328236361833396092419185558722006052137814381697054968640362238370243457058898904035518301016197329293123809205209381583593236001194207096461750801763339461819309432859279715225205199022528317576904915699158966054293440389911320092991825221637609055613903481998180847986208032968493928467627829424439676939729855477809411047996673466568112853051511688198182108821438482315419056419498583841334281258918911253386792777700755317011989851596932597216647221738183030982986003921253165128630861061952894807827650808467890286625966885465470221988080289298494764802641464197078303246634230467118074142781578321806224459815886541935106382683825706867628041046159605152071779860402457408495700860365364675269161212642260424291453314903558665340892604575889640154818074479527808444981633634953199577025868211865019088662276739266440467575507000421050864690583389464829270364900363851910445491589294872776756918349148967879284726751625670330000350051719315648247190644266560307296791087942492269927636774044926002679873810129829044859115242022343995978072849233890349911169403267228097048179645662552031924555572632162965548778129123192585785929377176829511939048107411803289964358193186072217956048170653873977760536255442145958786428851093945199322879832743563057713504688319984585762221648689668883415053928882026531080363512024167954922839147726683900857781039934449772770246308227372894868211197381207934704563711257718912660988592266956219930482033980542812075787497076253135585809116455425177230309151148751428560508752260684045246202584439888636848124643992614971478450693312856040852261667167202610145108052358581632994400246802557974116406942685854552503270462375645632640149913895943712130527424004623563773350816610856501092765889814179029850149363184927426857431329260964815214821670318752797507580816297331911611397551024739636355489240566009536951399138450261757576941526841713141619159059335842303483694042570281322581797631083451120904992525913424469988527390780590949039356821580626454059824218063967472060365805657280369231146251376984901313684097920062787804714576577514908023456496862911138557284429241468312376361386131675802600463706311512159523328178642702626377746608710068717290572020894266099547502384063298980043104823722969520408204627589197378827538900001047888521857916253470822563954611616000155657182515055411780912554107153218807370293696491226032048225282648300848178352095646712292135183901808528127871165931797170520537130980443224564576173876853178416477089585389640983972590756507438509878523574169653922822199970861895171583805282331799779169050820671322233826213467057197729698661147110306677132340403581876840055495650030451365930018154039084888318447315025220741047733277921010919423097596114603956763886217464777965978104809104541198562223225421239855222001231404763728940483255481079283860132348493627702459239630057052066475936111961145044184984162929570729005609571079104172986051072692451998211589953286690951471653015340742342849280595544673793528178923216625566185262836594314659774272532621114682801372854417502378483677895083324091045632644031466638507211322011795933253960293286225237585205742556361703830818101582264898949751693439893707743044290117421212417347752915461437019242849819974338110640599969264567708267916487410645145444721112457541545975870871888026608950028659270502774192479508614934288388201312054235246192195951171170791401721099685075752535492699805076807480652978223107639903839190996399431439263674709604720864566134943861190862735709296753389520707495234152920020327869644957359595413335626008949113911999558543015529337109843603513956743091300417379723024817735500200393615770171654990581925556102169701183010303748131713730299343033186151483379805079719868214040619706793204581728497218213755171950014636257664547727150810714629679398528812487950111965834669487944156671137463380675869243996657592864169735116040469701602086448153109946878825567738176213031885645260083395137964084855230375879009040085090681512341494153284095700525794193734530458727498668579213321236807460197629244074745798442479422569971115953333896163538429470717984503020040814663695825251005869871758435518527406444211379822834113345224557129872851063974551123579864407220320734866810583672152903263690137620389946919347262250689493628492065026391620008286701180269608188868856432008439968812077676384942512056259440452139732803110858621375861424671144146261443794626637181505311564877950502062811946961974945579140928593039324129952234684013788889799090545276356837861333249994275321749027386766333064239972838759893086008376965113900517952793523832096342087802332752876487948161660490301617311917102394261991005094167780438768758472967428588218542908784667728926246001079553051562112576232000448393049693385617026734939204796448394525958008427079135201229971241626340587176650938300201119985028197326652736931783932584580902814935646753884466878258644896563888522740902226558286705871297879028791783974568418934282074120021458337343246625912916732207076882758478784251138346389016878492819387727819518253041271577606727432681771147186478250849647961918464724713581357688617633252429478983939670631945353680325950557573001806806159835792028906654953943869109268387630716486233177907018385942506543248650698819793765943397014901414710680969950713006195174548484715061973059727151600196314727401785922578038314977565832857651118282218011722409494491182578878813765380780418267121257186669693209823172644505774687822148139585040141806940710028444783386155760012442470424305304752834629904627374932382819740408083472263746409041347254514779576837197002078256064824734386141517096345094559644963035103496580900029218604803564492986574958383468371738558249659412583649217693616143084576782775979634556149453031961683629754520251140450659674860461801399007472315503932272329555916514136286722953277830268761881727080632982034196247228207847312483375608829181320357388058066558170700290293208550175747048775907828110802809747909845537292423386406691694790219652680930572862224113285427432505931496967681067096671816242441194643620075043034910014813379956438822238868668824117526830775542890452280112037741193237365467277378223794413375526771464708875047193773226034878469638974015047845061073166019054226299860099405563961609941190239516754320552374772490559192223669060213783954875429070073681328316568943823844040337230626758315266598844295642450300020158134424792383899446531548196152985097490270741671157619872039825776756712036308824255901054427561916625933134977464846435122696766616123257543108194678123067628776656789606816320416118509115231663798023803993178870472647971327187631684444861385652563070490756342710864118917510045236805854364237789858898194255089897798130463998146993848947248516781706341751043089513229266979316647580241692405617466053237353928640119838844190731481505695996399822949190680467451607319353680749926986079455000916632763315390475776701281214929014011998971488656699851115329812260240887563851913213714407880938554207731483606377665084349782992624480774660286779205351548418971127290708019290999798378898591291131192799341199668238056986957076158318143176268527899588811282230399125201059046266509849122593479156858896370582910724024464577198874342847955580775403592601513389880673997029435551073305208096146544429233260918560025580275093931124308666008221063426573168405823923929154701818424328902309702068850610503584212271401488453995302317076535660817826392764386316339675060149362012814574550796541844967087419222046437721095731970261732607337440462063082366892578897399307546504586920095231082817486940484396832702130076845820421714284931225344350789490588270990326967358009953277113937465899190696461546887135200832824358829189235742129069909290717828912170488216161716892682977239490674401660796468752856212304075947364961421082629645687378343964051667326778555947564420483194822671426883303910792923368396605092442204261745531704286118454211768951391764204643932849637608298168748609434452456354822598524698248272728081435184218282829910608552428218180881566405736448196119519482609640835754263972086084159069337680341075372903912471528460412941405931211322439856979519749825068374096820449760100880556092975069075203513195440294429347259287962378036615939489424432056025291073046303229467181167464037805207954386728328777233866546420555673222330136132435390530924257846830284935198932788237760329762414847336402308983383741552364997898177654242931821503208549400241909518480332495606933222895546796976418220923494487332812133812914602684612034347834663365989169472965603849158143224550438548830671395644355890955074199115777942067280639169588386622972983210822887582352475153943593277108852043757760191637519607455070961450311130014557851476033354853966336479564710821662247848069734912147634718713189480518931462657932779064595999068204534402806865694599067647914909797557256349757788098839258624639854382539772012793709563403529218259486404967411130642461328486418737004178681942759390273171221051131012032645696495431451116243465077419794068235096532843876001141750156102342910790167177887068319993211056299727144420637066376161933671779580842190909778444592375157767542671929824913091252354393159471391607477844941896919436333290191846585292377309729765029922322768750432634236006132844011867259605780386252686616988275093009925158535123797804361481999646515634689224865868913031377385011827557274994413989854976042392331482055467360786497995034555305592825078088900949625582488763715672193711109395246053580511179246466953238328192961315407878422460860046267257936554918825819569734904674927744154620157188966746826983713838092644316407815175010057742864249828940919311460292992650472286278901059998383073890436791238883150141902834879301121796257512597743250908447598183747350889874969371018118576212368981004657735737780149458123587818054946207301185602100975698884469192425640239248487964215421467838257663620918816732474112999305308764371892362313531973914121873650298604380066695451617833994028888196070490515008538878639777651400798792969074479676515984021759536372178509536597041594686015211773927419376849813494840616435967827040928038400946396737099050832319120646674622051778711578708648765437461340988063222113955774472133574548244168707201754068462462466485056894186269783882251143385784387988456535751537360234267063898643461931537128260832468005897493619430269737143142529436335466484382695729656066192096189174968426831369935640326086236581856657623313118089443502316233333888447944819624825900016596918082108371359658859665520661429087182216253294363091943832593620014930397279292381704733452385350761188012584909363641539530777554071660865647644239542165719915351022690316962536329099850380924345201234455017216177198746540617639164184600143170019129828530291666012608757795758967117011906848489708529820578485173090104636644512309110599607906774252265933635686963356397177805096427384482914244701454694493823029806042326959922579416445235771324936973740525255275408033378282996023245877072235562837064892870928907778963895465128332440556434507727757347580182811953130248297284338055683051944201880438517451405825160532905574337332201742933850920700236806641151993849577563408449092363452570272815587758420510038407190583926943606920757534316642727590884521411772411879934293483174587967913401243267002744143343708778674233507094537121524667697483644440209707283003622518422207505809519042775515587735383687836595342355112837493106133699485392680303632719523379022731936071479991640657931483204014726068235020787525354225455698153520029892221128420527424179489359673460461862874416368277722739068348529522369275687875895329180282748920087408954592884594343870983399074630125166515272606380113714843718113210775257422529923217732513403047020452069487952811979659659103866759969913686912986095363022478719570452785769984522999675443264245074733233925999433739650770953917230629805781622058193115766028397447082916167109406498382112097788215984243348645607483881608924763038740387201457611912926634316893822859756677482585145233545953087858272691273991015069812959675418107328255178780547198371305218729379548226101212518576532408351488345023931706177531721920020683166627804931036315294935472886195974053105062042906574700111718186687115360414167327424441384768470800366039018574256854219081698096858536850818526907830003015583452642954087079018163671289629921974646853807232659380162529155219673243200102064750347401944457019212581480807816358817777155750399427408245063919474921985582304718261152029870133487754537269181522536495903960769877507088204669185135373136406842428403236909226408027181409426934492899930794238030197940631347617325292513118493393673465620521189028103187782674159864121756579926562536812004328738837395226666000236740319883329725752117546020467744361574472825270771038502331323276690271343188709049960344545913519262291051381295834998266221230285974153998085917776373179130982974531340595744956183004512735981169764922983137629342383528259842229596900612763153328415251553526008819168329134275988678103431207644510702903668184694080340814467446941404957887292733029553271581473410869559430552718907828525456514325287064313267415979939399314961934801330064906186580939706158149132271067223206560145258677103130536163017823004214012392950238980071170376291988647651506232910219193529749769470171470880129755892547302962400369421974282170515069944364842097236717714553987987385744970864735038947686181884130559006963920431193831517966074490713180271174294619629235874195380157319584273871315195568162848671695691131079444297324016451066393394200563656693934669478237018903105704570529102783115487627409856941408660054953927934048596759260673872067725177116201953346711847781462826434638795234213095761754681121855265083088641750472647081816626974881757337961466048402077641421823339748342949640532099069525671586239494644658724482945406064304080045961150181411450782369535480294623043421654274400163606905037069351322782584132444605872527713137016106690528623276464434738281952534134130604074082338388772809389714588722434100436104102563418527112118695997726183067942514627166676708771646210249987060569656225641565442071829934228875573664128046765048553704929255846446146617968559854320915500940020689990714207888686780371396360145905003605006819755025178992247698525321609805121318024544192902181089716964866994536787711347102696148470234265342822810910420180771055104631862282975262642047267758237856749540772322730176980083686047375148627483726445718969225378041584220672610705990403568931871434377015885867543535060771730509398535339806260672011914721193929182994670453328153538460065715649031504035758149657788243127702122983739353002690210825857690169553766853804724248099844035834593874433626796814551946425898841636913270813258777205527800750563426504649165633023007401043843772752209017003653327380285646863807377326526006648960890498677531542868121112803976367861023729303604825278526769503335606942480823502791002321152451807179444293938198984626809902548754805576843387930200161192099781530948897450889286103971691716661355461026636240140032617293019501080908210300505057402288239468829253847639691539479663180222474829790075533472735283391669772533493017188487959514734734487359329781118448299868167977124777487753894071989474984988117658574135652377286168900589760586010236826570566216808357875501943648743441066978993763899742389914250653507780395853296269027641067575362679891437404402907590274839006237460177872449708863949229627528666914523665919307512965442483958246405625300757273391862698696667562780956924041346594723105835825939100752013357468753315214781856128283193852688300533624166378228059860293788423145131320450095919188191392876578632976284552429087429265015377643108215087331906611988974870287885515985578822524385469948017188868400733670491278383580304190922463928184038003845391093041745153128705049902616149827105593294845183485765777827292607418995084360893048403439409154232438115784246950341716126047839752031516137956163941611062182025270301840999270253762184595460173430387934476675162515342724151874602715519997189549198922122711887436408732875367992569627349956632890442086876763109904671028106683586309178192858702286082072456361363411797859564104493084086557010183682187991722095921754291922556720944223676687517029174863022783325705017028977853155118095710113561942457845271385390078219280991343135455860257647230366485825621652300483852033938282325138876002577876131712311077548048413726600332695053820509273933754575909295998287580026547603093211066933668443545710225658950843230437830487554163911756698476899200430400780491310635262212729579566706056921935387801448233625683961838051999638952520613249886045269499119018811105306211845588683909544405629676611560583125685437617333321355084470018472028378113657303915462975537951197985951022863646234240050381340277629526492628464334297017785883667032851015216241730615495133133614130193353450357340184970448881482687044200693133248991795945512336935234272494846493208996149108957054521486321213393269096630793885622361669487071650064827723150669589153167192999539916114752753144264699514647199115510990120937576214117107717201317858429093277711732914617863669572409030015412666553451374364539666823149264541605381200829572472687896502747086697333885918223177910236736090918500873574325175829455085836622738191188633578154034710091317645189462641505377036056339268654115174822243986796354731542408298768467234064604248307728263648154194368050583263194909915539207167150258575195596086929764687125528887093090718663949998941582613050589079953734849587850263031165190325310041114414990414074205204696832270774916723706922972589698686004621038113725923273643337212974977330270817564866573759650397671870158194762969764392972073918960090809673529718126781353938724578689453954468990304012243695569381519399143601691433056255175836571764977844904458697672010050091932169911754722317772296314061019074594679629577735812177492801888157303519017758644472054553007828155675085367239396376279184420841116175918770898460622359722661606830754400653041135266126381684377545654373122825579404807101292716001639430287565382533713926140243860563326919484093093626922213147527948717552143872993810968314497365881990416173925188947740724325092025264358428550256045050422719112262416357543439383403221422659235764961068054849976139803644308325292156154017266223134187260959606976556979395382315611413395307738943211936237000611736510570224796038587779089074426735587636731580299436919230724111374061787760074512370102242977058244204793904171097914010744453744047705574899485888752297491609354306487510214410359457726377217151870514543893058853051012676882712405449118871705128699563107752461115350269352206513631126102893482664327791073797458455048298775563767010117619521070034279163802099381527717375852593652864833227166597842867685044575939208556552711626428335521469112176956729272000688162903400452547650175107118962713033843071462792324638344477134020650399794176044938483257763222076420232331782308528243484193344094080969915335385257281269294119700789731205061761936176903712228596254934573998471619787365950485598527483776027112427464122021226971317342595901213529174975038952713166434172364253348386260184225397338042229035444258194879930827266860457294278979140804638884918192169523611535616395870012086394147206344130038073860614540526682928749219037406163235661193989023891088814145371675188105371517973240232923185216680614686940757713491196886255799655260136365112015954608845439677259698101222549787221120321777508366498966908610397298355133903711394732888591299447275036570977574568239882738764100180589026231912184285785453983624945218047013552100387810771563119212323885074139959180855240521147932730672612240415980953443116353957854013012465579890038070027385845329191342516189933128242527951658476828090074695452555214616774394427733388332949324029276467639894684781672128046095088243451964524441884899315530308809932922919494987722417510620186000331273674249162768141880866168836640864984311876931178683587187508375894586016000053486965835226057545808276535064671841609363258683412682873910806481274657970481512202308352608111727242583490434586783225662147600340896273044522241632653631488717487686465825809277564548678428432581472514757406165284319126980871567088485427486107670895567915205578968454254334700081448953312221191275737455776497611665480530253106040920025185881654635045219426143454259054775915967654098940194521461071821259439669684452617819529026327261780505789678542683639258376129122594717058606415149690952989645963232375137281844578565367522822803697392216034318530487123067588408523185576722780125650457278605339852276424033826622739291229656455744704754358930878523601860090064190331927436816183602936561351355918081840520290515409215967727117178562813942959841296716023418735285376898788468023676835972294992120322351638004242713309024782503394639530726912532849057231988752133899407935807654266874503096966668847602414950509865773912798717419393816746114342479788086415094547002709343561563674051183694509824480219330296792914680978537169420374979386927211064332397272717840090619364048478484763386168219276574685152433872651281251097886074977795480774012757585975552772582281074787307160520545391161594019810734292738754650811321351543910290533618792889154092836229675604734888416603386680834453657059916060892468662083277448265055400595035590165937084658856895805248306266894959316135565869323003484095045220806111561983592816566426795563312668414701639496835757515594819742655627518032934409222372212569458980003662232690911851053837615182858195187213007162648091392805361903358667290359513141891690855369066442104783508705188599223289629439108719659134831443521877649459378294052932682592664705154621581291318844964409429781098380623335897701399124393849523065380081452611824358063700343621190910174798814208692110972596472173758753493608142341752552845518253835035056567637764583402084318928754813542516115867604372791683561400642185712535282743803461310135438593849863094862713813111246457726759396094088301828915134612423488167708190938595322512295958089978804399070888677851271171542998207241059068143713133378072221851512985952900781027567529018663476846712978741554828469228710022253787058908482446340821556549636708701528678201472089660716644131693290788551782614765548491784554215541517199586063824625025907746782751618261590481099909542978945121082638720727512643088531491763033805944631522172065660211648660564434476015859432306286528318722560697593521426736284644315453998808743817237971873902902388287322069664047569126864079518320634631174033224965965202564891063163490881862100706394533541327227187827787000000433918202164285250972907693617312526252515763179712020047658098535854553426462116395500489114034406796331969126176176673882884976104042691351536933308304709190606145454467392123009939941529189361802386915451646591475248815224787899035375068134857157709602805047429669597502992168194932416807445482341887932373641623429819473300258573565911492974415990817818046870884479394743544462039824784369259791761886323732426538440316101048566478179174933499466496224225495464442437583909150917282708153671011153847271339689758013886766678286688869528245267545895046082121309117390866649281412494668813550126121654980578182707838954858360936966836530947481269099777091112380314917042077058468447723271299906877467040958642719141190985530204723953714429671701434685529716593489210958277887755376426077389867138444052653833445436589600673111186835219331327017998803012004879861006221968365480002927781437303071711914919733243337037620908403109407801296218894719132668214136588845663741710875211397131431482446996430135181499002845031726107218641725423849756713997062178669934369100766824324975701544830207328288826411355236835574706312288214477084471548712119952386128292382051480067809799508005150504524104405684823322711083564684117656941608069004136501735214743023507173552633230156267468478361351749366009967448254691859739517560901257582493971053381469847659102324919294628729207494871189619841935239247501264715353639188353310533877085074150139020354875808689288270872354985587268061958211787110003667401580660799081227538109973326323761007386688223912690304249348259885050264282154671464708065665627912960889855450090097101876483529072581055270867309140625801328679150802653597985297232683277522933281683134927261200684034438415298308668083617617779297830382451057781964947668142754659413262632728499697000793572036034112065635148248275816548731405095813229609768076689997478445486453007944087883728693860625586399127568687619749537770954875845702693767863272162956626880479345172132449510194967948620138876802976754235844059727480469677290156465433282291129784362470231058281857650205454056557657273825630526313429528846120183501247056262219367233217583933510165437958847810885828223515696084585787241056467602808223886376395077575553301458222552932468672044265481851073873377234175450754355729961164335229493312889225188943617648144670635220465201328833350608908797677826366958028337297079479453177753418866807416505818381416893580638906258531295078139193684619908627295409509177357880443230138623203266246683766713160138649913628392304557259145050271012405110460443331624946468074597070382354822606341771733653023001981706224639246465991718243473693653486977527683291231999902150697856137242101944112812143684891167765457829186539586018542808055702095437297186950436619943880193457021498039000239292128304971086293982453124366989759824341343139815110763373569314109019854825486752069440239239411307842303130177900503227846462395761355135783868269818759645969355681221809585171409910277749837849289000545071812711668896992405014650662904535947465524787225033941166511811179168696899726868949481854837986363017457217074006516867367936751608022376576698254930736089699061403001315947129853726820106092323413121640354383313988389173749244081743297647004740848773679626992880238902604071340260661052879614713314805436119729891171177328313710318667084652336481456758126938719589324248572814035020831633644535620661666551189264206366327449522301682822704625642144096327967639993059032730895271965187796413246518744191770737430048546682069877995743597112077443178393571506449775430116696445212463606720764486242729410488438639451677561670702294492407922397821880928127593732506681259109018172947395260167192358554546006039265076075789326540175482703167319611497878855210251527466170626834532731469836784948097061699302763801495811740926386895589951469069894198339214396048437188836672623757667696164993766291730019774557355716528168950766390261178251658354606865359345171055248416944104435035620050582469766268002039923504764283936245624181618282725481590620497277727572654984090095357589690251601897143198978081820532314459800809939720383204065520373706176171837762607466117826105011541614152533019054113248875869278422020826756546472076394610761035668535439122210473612633748386247931172379399178707847879675048177802234703015835031485486147780922442265008207516199956246455432236700179302255432559637700452931535899147857883668974001149922298693525969267898884656728969585746419820359468372566977974057068046835806707108351098182397011724956116870163478643798733243445030840928938321639071738262034364984358448238818595651534874155687099607818041350230189489999998237519541540826058349304049763399500056189589289470801288629772835155811899872619452550270729538860801742956179434372736610872682749770017006179635158168359117832989680577987250839296582391337194859487008822603978634211763611528573524736250192699598833370494365108320666465757026892133265836847990998401125348382165334040754893725843380515142611083674014240676512215701795899305281992905776803677136234633212113619971770582679067978112971373828445850551492933448746242291591047160411136828975754902794226723870830312509817195707758749972515023013834973914192669467618582557347826958714069852840644832770962190748289272846368551595627325832753598684996272019015352102170877274828936223314228136597648919162160956585274794935479386417901374933746208568299916986470493362433917417224081178607574626360670497313634408283496050491637967110612770242910248438264097727216031622752919405048936229960516416621878262139619873916604647420048391382416374684284196174244573160102885259373809857202349241468571915779801384512623885573586255039456660436440935558256497537123829887018600730219067809690249318037337532102201235975871768700444290015233311865595625307457158581333896175742723379490276921737563273217547414519495741851835915615343493816453402118863377318413600508729978018464593132323713381257839471465731117847102109817222901498467991054297319273211836992864978955185855148556522020523438097927077311512195033304298079508912741855994947708960959639798299226162830140869159852156864516609156131312485955926206895028993364272786656668283584731828846604241962357237255889756035482769070857632928632546435987440939986095691560392842365239259563128865232224746700685439269013903025063486024754660348918851139528492925431693002728357890789593939670281181736692594399743525563789304919195090029779507185650404069088197523602464470048379653424923423474226262939278275829345594591080685349584630714386477531233990629167391712281136982031336174573989792176660310394521926142715358102844471920058342552113958302457442155094205828079970603202567124068824004040353870234113303647086968892802140854812845965267935026825255861350328342506985020668979261970548740808292181150597176851653095308116766121280755284177722791558541414819993617158856698938474880129309146915069187738253887064396408215744161769431024982654213665714410646747236185114786950282718985619083303911602026870842342183803143855042960154808703668916876393918405517154822181245111399349198031957914577605606768515209353797718331261043984425740926639662621317679843875005058852054209461100175525245090959817817536346943006232702039924244273607514251903705923516770081357779704149261578830195884456521222387609724407855644640926929530641977035148134010751500768689298043844564489772106857627631892324921601684925414433334859786308046490832750400794472151688645908876414318377059463799888812371212017986196654212554809222055763751794841421069416406880025145704801467444062791714627954109676562726615869069859425218907528007911978995159074639782026861637223564860566339681318522894751228675025777892505352478157217750698639712865297671161709498576548646791737723428445114673841211595738708592331152597668480357097265310305193334303281770380156946898318697409853374169714388064547873738853547137490948844743830716977606153640426361549979755693609654161408816838436537429648407352572946091187834410702639624381154192052973126296691134363979381893710586642786761061562919870304884829157638836691850815207640530251892306316331699743414289637032488910933722255320651028693069087952158114722593940581237368092130748198966876510230755574590553393430564108855873399022697425587453797271295931201640300841200407939009591356137455690753656082868194219800132464692769540769053599105002166711784531200185503707711841469703341098894458560079801241901738799089910383850659040671474471538474835800389862692036320148625326502775304915102007652279596910444916504409392628461022681468479748879891802473074463185947652514315065119154125804512214765678467860113699720767461011316351926264260710983967793038203031246655440117487283689864689243865554368472092823229324795940362868285273226958528087022575742300380196859338172728439903142858416676798124163995115826560799041021761193293795246052147840933341103775889733227025547838456969025257133722642211357844291628914504505057358744383498754015392988347218450908530430279259530987882124454202977695737975372778975527498047473979806758908404656472505872878397714458223897794306636674426708763341324610469528079825178641639969499257262804869796495247665615869544106567111826017199241048337651213975361832193362858321205893525821167045149850888498385204228984660316083480672376902090466629579889509918280585231940245693243440309035627622520805846101224046774081241381149137553219491828160217901921964133665220530317458095867308071459497831942381694267478443966155074289990736341213978740528952071162162496411374853931089985383456086819364783410744150139268475695680743747036380342646495633788303310458751741009622172916437385003954723775844300799656166306874050301761619063353156461122400239539019975416110827661598824754732084649351713293594738487797269667604637362270726029463347404866162226219550766938139834575259462837745524090416222727243524225633444368477590734103843556846519269186055331336351356918283674758198600773877231339204008330800859059386944416843349081809882428768460391444423523814781957109159161983136727838256488042764688663714313376331160318740811265620050747000351333028242636699669872537046039396245858916260811755975457882194886849701492833769967675695071429856714735885991920722604659827030003335896540926751496920629162185912509223990220128391536599193547676067187319446510566235923707269063261146195657123292372649751824006073040695302336092034319117633732874580428215994283036499970770738657041080013028373460039528230614239962507535725736958184163500573075621397805382182127597932874088463475559558972283039651919830904607595599710889520910289446383571621654241783513611088643010721817067818516926921806250864589481099590419066696122841784952194535223357191597060714780230188673033057916469148423761657473654460443807214374309016731606678262990197452064989284512121612253066493730687454054445424996508080983927490712983928205332005329737431830657019698499417465217929764027160500518781476859553974552903226654920241043342604820499640382209357805639939971292061077542505653888800776657656441164117264357543003681632379844371130876326548245667232225043799867413902728466731752168156135970560923838186022889025643406540372053083659569000459656472958351518195612174682138886943849018571094113211883321253145778646651024565904696595673068257414833892392264300869950832731307261618235788003539892300301468231177886259714093109010237036226048878304702395326984060663832692933209541592428479440559318355496823778617794143531139117566413673563535692172967828676441224350795167388548212042162188832791408139730258287181623913816815320316965830766630980013064705462264403242859337736387495201664622332232045330497334317868606255726226885665765592200565972606555499226165927175495401814688217395766928849728942338936190206967519187012540336508806734583511355652516776763734295358152396439185921468458916069473112260954330373091142163693861841695416675516036834408891248877671373201139344038111141902098397512448014170836942316519294906468389713962356370292418566383543501660232281093772310681828069354655922573356047200356080945938594228769315721042088655188923803198308534257389580743924345846071078815649436535598172893868908133382052517210502655304573305211272654325118467956252058541480913510443502704844188929383961902679504125734101066997874286402364524564574325058445556594035317099278934289734541312092798361505156672540047905461251324887975603113746896651247490497275417822393751163264057766603780842226028753867787648671765593779760154024488721646547147890698110835185485402409727725946398541755153053012026782683294370083128178208854462237013912486201031420694228116764004080171629343036127595555289161928341511135713915958030906453859360000992265195903316051323755094487144065833202426401023080236397456198543102839635512570448141093200249286322360051337139936996290916365758685808077770961012397218198331422290790951877616930453874140795139683254828139897970421080373412803921675345321544962122327618271318590167211787220437078983593706740382279274141194188748370444379235027183816859240625415420122797510908610992824983920168701647086543863455757484944539516868803615606017020656042668077930978788539608781484293307922278781897568492240407392193909114871271769846267945590537864129565459423612617926704468084348411314292665284581193842293926626389903963058498909459133789084097062064861619110161317167558587365608720359990129199881344998164173565360471612540231706253199110145356426051760173247650167489532198911562796693298035295447182329667956377488714804455725822908507863355485846083621268252281002053736785937873248616391031155438763197102443225969994835680553452703154514382728730434992381583184729761325591223232677415909757020309420415980151666626687258336478462311293324054306144331620568263945820861754587575185495649604231927989745265526905133824193604878545569938880244151990740393516011840209140321695176271061057804296533888051486656741905437121538718187752795727853946624599945317378946587897704613936713994574815063513797389895023010135251060749586272965913795553171248429962391562764026483533961899633094802921217880003992371086596384993685489698953630879118816837341648587539818260652829743783180858385673027956312674506645595594418468280128693704586200052185882354799502566086674216263260799068091432720504426766406400229310397085373618741726818787691281341399715022543014508737395630012897780863181734668731738020407243338724182642306427293106401631124137062302445210146361082539699062703298574543791021250232959879912882938276089306017513125455178875997881585224473676483121422375387689497679384675768785147327559715440078081236754353098589886837650492646489527324526478967546779211302561569964785928336661967529719919390205414947770632475856542982405961948003142470358051606852711322645333079387575710556124580224862414184553198162317947135432192120655798705462894763794645684160819697260503909148299930864482075429435481143656845941702736620521802082914751725115708901202685621377223007739490385935857302117018245385701754279348958859103570889148435408273624784530726808277076435524729548351268625441596174290533378218854081384825769994650004670844807068558003286849543234475375411619202382924279500373487578618832855359411716412947223925134390651265809891621117397397390721135931029412530629255631273907779339906243516082232657385260505921396510126721204955326921035351014409799252181406667497658510064410511190633816245087648931357660746087033864701289478317780160145868306629683988082293282336170461265369815516847034950118146979475170587656955952181421714896226231653607859975809610117139087933256171559697898842353357029187454784249087765440751127415231760675102766002653995431855692042310364095767865084461656994214877813577050950998836111038581037415252652637245881900736193426524511149066282322275723673288708256249158161840481096867888835726397466073753473667499250312914472666895154203997375265321237699829204526152983138712199511583014526188449690450740782722709273924789374733035089995106000211769464284207387113084845974058488394356254113801497879609620827422530183755784317226960106580907698984962173332657749442247104536773645244692175867879801287720657168256889700023096335991973770794675277874545590647658527108185710996023227114097843863498249130354442933792237448358301017939948815109098976537933542951514401625750341375684458972444276271777138128518711807161358365634152558206799606067749655408893350499388506481930361436054243327428243580584648679409442356961725790491505510104111135763683800297904556132347203729445042859717218999210670500493503942130553704722508959121522880271322166758828751066233327104103239508669810022816669500317541936867291952698924871779902194495457238765315067815198144206269736334504447638479309094989186412342309010235784209505410766362741448165644213435215983471972460383013601927523207607136421423067276473097769468059758565395971715860993352559254279097155784150932285127319907911320839348965785879017723802706195100086278603288773404453910761454751959541581536741428579934122800472659415474761730154946615538232908972819895362823999170953334042955021593654604009962221530232377873856431195152652648314711731017511579144180938924863043063877706115140068500425361730819302365635870566479678763970822787512338504834875377840880050166389586111711246888444243550827664187692181657761154808798079766152967554737928490207684466592985666307210862859310692314482658121236483292340868836896090234103703017587360146549356967756513487192767992745159122131524883733166454887439381495583415509344646553557953092452662763142316888829398827299141828805661782280484916408852471126170955814397910152093081840762263684939405743695731454458524393938269685574237022937234632446014950181302708585512540757841131708382651805163864466910357634120106390128389237688432390684977663769340884401516354592125314339066660089498290593240963865214931754418924792795646623000692933176980159581419212694663625221983848973300110947262981660469735248889429920747888190377162623344592932686211424661875046415936433000741066999322903744901508571028037436844495916003905700507418095382495776167942016677619814415920961063733731718045144424363688256117126130764943227432241290321894261510575126437707910930439192690664344436468838367001313203455742247890900443214850661009683665811819395335376110274338973727998224432234121910237504484996610940828926194288114743071637390246262563904560534100938529564509596687959530014423764679171679294432571857132276204191529870531063695407680487561993480174168278692182332226256189921863858900712955898820151395881906414024473316256911474136089726492843875285785783840927246711085560372695447206306669797639460414590706985673015434291254065150955550103127572049854554901554973500284470608754027214995193406864975649488552780918774280492663239933967744795681711156964263975702543786464839338295381381882600139209642984877886991746507012763249924121254880691216003856932372319563261252489212979884642312133078425646502285119005320342278417830366309179096421156306212262282344034830508546955916571723209428572602389520410842680319046753545293132479528596000609234609797098190768570259077029983676408357184421208831028073573847535927902441312781740108996235614007293194562095625656463879694306715624706500319532050768542739569389439993644195077091547706896308976683121430729801894653888028782698751216057208900369087231063684005188310402128448926133223866459518794787920279487862859307223308855624033632644759484305464471859506890821849436272375348326375185685057925875710175712941045064008314217120917378488280073433858345105458926399113305579835056985038957486590752494083142810278696544157527056768778547468098841257319482602443720846966342229988846900337589910267296071298502182316212461807388206764743726427777852968815742228701867636726189749481683951658316690168552324113801530859186544743332182794136968323328857810533767761836834896459159630919453745731077466576039229724710387972975409704161955474638070603571776873726054666329716476036249713642579893803756076543193117991627333772363591789584870476034740608315982398026774525111088970295840884408654809137037248296437014535846497844522634534586989130800559804684031701842955455252260318632706997231382119047913386603226718150179059684445647574925276595616842816824213484285440635859161620126368098043562007281454379964157334976119448536861577076944746781201778605080472929775280510364414284934402825269520339826448806029890520205703359844695714542587249541274505675597637105231149849357560919029552682708657810990260140927591617873000815437734629233352188488524375422842500086224231126181592305426380248606673009186968203463110792804764656269128577801696677361325791488191854174481948248518903397449806887300842279215465337502420073027880563583640696876876505582779111162690901734627500250287161231454571448658414813101370117933269886057377357949688486744373057397401964735221542296734486428104562520754476619664523943690970108798050116373629164816878980669356751779748938048163794018347818217262715995509390226544404155334310936519483286358172173690719960575086541423590995947625361039215578280497671521494977516233000255454959703860537667871018579156084845169170030667712031507898957082264609717593619131029914608878458106424662311379837952485348034481056486094930625738763712624054490031749809123336860183627601298659652669695500590797210762942792333441878077650244383683022716342939767972368725200984072241542267520644004168748291325955958740425649203843036046499290663919354823992025460961382125024936588733273081612174967680446439334331584813409821987187701051314783638308894385193872250757825373352771159057591325751908837139064551688341501996025083420464683445034523761591550719115774928259518559507266034515092173091656253479418070407928045333481299752150918505799126239801250177452711286664923508241094940896023469499762516401239578642516174983012727701134123399373762053759321713111932373514327225646838451722256537944722576495076341108253353564696034621801053159518511715293275678576846040335509470402621217402510163655970020619226489332869747954610861173080464747415793209852047140687979788655254805809784545667789960099914680606628877017491504822481111557581035215573850029428048204802721848250699544853964695089761872812239440649074949578378514083064046811203236566833361263518653322188302945205176444415101100326141702307617986690758561632071094276266733839899700765153853207982702625272658786836927137267324900402271040414726862258067505163892246232811013245919680921663738861933275488716244143556224871598625477570502277425159175809042543305973834921838650860607637341519958968666153631591976989443765288012325546467100407125290811643690360637366699567391306329888970754400067633600233054742755151508326207088548015994176667411874387677108426858755234560217125580204816786101375284025172151169679097302609364594477423624190291397090573173195371523668194722881728486868665952421306130413237235196378680952727432998305380202715180254154070600582345994229579148102633580509878991408762346519510514441443967654879613562321247302857631850567740272841942974377947857676283372187834532316734020524827497259629593202982124198346189613337344420199244587132764205631355305041429044535886596093790250048445092876392982053215936160407107323726832206917861605031505845330205762513165604255526427185512025879750420013809500332173851517630198242253886313833052634388967611255007482870720727803714120943014974602922799884860276163708131189272656994552397140714777201065368579086967493240901195607645521773943463412570468301655653352110543168979563325239824424102314962104613354860980051533073807440092896672976907982564510453942847919595864776103974141866933305069110894091357717207861404614870649469032545234425085328655811868006321596482322709407046948874338391335295340152962558932605109801129716289911165546688405107694462988392244935654891894703768160725117460925735501831322254436481963812734843872429283956663785298156314370882518274019997878605290151698062370439255948951239089787431718886079989680534714453270435531822000161831063070625462665859072330179662228149978114970199533284294637605609557230070383675133176674936041598657141591137291957056860208991462144560031849362989953856212475432576940189687417303473081081959861220699156265155342291198170902082420095330190590852343413820213400652062686703516350054131949322010204729661223300082268672493612032966771716853376056812873150238456567840321035132081225817690261515056432262282340500618730498588128232535464538770522282765676481070194071004961722301304405129459107315133778068952428937905391865370999701267985335884282543432720764271178454299071900537093076990592440115070595849211561940470865171754519471555432458144988029259131242768254209036832353088324217117585031256662059457194589431543267035361659894688452522873687739886864735628212511688846193031440751858170625055413955358203973702380946601029263259729097428039281311139831506129139296119327160712597886400879112113110154946686580129928390883003575626079079926684997514634400755857233000586012638785328408851355554434532275925843320727493542934521284855621116523494135139573796989457348799279649836471361881526154765274723320820994041875329024812733504932798154496896859021086180538970624582935210900200980510597425363054498471362677252486097248534519883652710989879161102882640978838198696073219203232227539083942596875468268733258389304980507938344294631342168348608963110668271265509160997036761047491149831418886764756861801626157125307932062178533015151902937043838882217841894781472323263414621946358314975413008043838387105293239329887202178105024445563460426653223531236344927153828096895819121604896460032419906630332082235034636545230258850539148434638001431064266626893809795118268711519025510006494975206882106748928266292245871382296470933420345728676392675960191855220807538731021061544393923014851075816491885161228292621395887323181793658562348514544862504123354785040929791212561494752152412908389188821733404065630167882016425675314294228807965488317233563621821122187406920206363552826227332613348179302431433894498164562247000552701135615903124506382583676023035752580065204016046679384591137949241333452144148615766463855525639604141308059840945295777956930770002218943399078456850090416685624181154081700507591404409461273475935265464240198112688086196163921952993175574382104633996546442217382273843066350201110423572780547963975149491507711165034721122100349885821886597338969048517461595252376247766458312549365978210592702479740070134348709277768367623178905317087362408419833342099114725527669878361617342198217958264050260920271319853866879849010630508003954572355759474481950625730465044534749426434028490217733305062849944752562727305663428745046239069238355566128801331815933775354931075792351982840824230250126518898520471895311768145654391317366673409601241661168793587028246547763335715951694538371878926754204243606879888492084399418951139241695511178029090282697965706857615411359085425980860552297551388051816359513877928189691857187599933405705002576468732259080423884230854706566508272202227477868729457860786561519740859101367653749587551340236938830588650900155610057934378313825418922796127489740281904948178185798637854391090706573940525069970012519972949403943536945623559350938194986626081432936921829675896741827701877560276349083655352343107813082502430726484132174461993467922357859151898454525247639320073698404652344750060898253283084438164028442929079249997332787425403193255408135627534513193152286209511871872228776297807377222425150711644399865943853649970837465101385702020605335256867841064442147189450612428517927473329204109030730084519290805382355425591444187619332582308503440945148374166210786025800495602315898720285193901079620828462355545844669670436837371821606124941419828606083648466877388348497928694582307090284827572012814606974744556106091721143314641045161973404238106040016738366674634596383359321442248358131795955646493263446477041588834331307187535429201021882621462126475013848872207487713470439861399906489204950242619592787298512461196575037613890465168755410362520131467392007760996077773041750125474504136158363051338943807767574623151861742776908966339648195117734033308031172428700342283735718123834643542867416450453739218086637635626995386733020251017642747543591052108325578869853074753303561751645490769812592730820600040775459036152807516549979700090388431638755906597508487382145575356378191487863247490668791800171893451490906218653529238360634364749249872058332447814512385824419958515668976864235333125564517124300285242200718899990526143812077218800318399236726992881583885312034621204172534190031320669799567632628794601603640319498572968325863403847186572896234690485380409971132452613452957055219725870983130648337119857873438649203706183708411517307256141293833925658914464546712042579980698317585290197062529659782356145530818051674343399237020843780706604191935752125873452945094654864931799311939925324830202282358902026182621404395692249619569929203794510947499354577679903335163286395932771816155917433524799479952277478461000803670360025789217219735141210148809854123823040382099201002097843432656970231156165482743658295592906927482989576485552005587733645342771267818111664842171498571280513886419429515678971767980302064292979452142173733384571683562799453293918136182548178996207576259477513010328737724706709085083495213280322134532672103382158029171556854628596080699685574893642503870211869709793204405124073845556216369307397768427357422212904120376779171784821263701951606855935216676358161383099619064737791082605775018285820520741753799138140600034024695779094638499810225543341831454342480527768298577927142603546773263887115726461524646644402521969048153918948623949208998264903372224560462262877049594845751176284891876814539137184329889314638316222752935822932642173417790932303648774180468163304702387500560505374183775910262349038297544167668436248252822026019188845997219645902689537249688828803629326923385462098127810629875452726007993065879650863379465303586806527643172913772435468189898922865991626949471703755994877155112817939518256096012266127293753104770509013519443809283555590431891898831798648562937914816980005599618652683406943392758803591689156971969739279144615316780004612737337704597432478320297686031214503246171617868031181125870558878762568956926935735597875859032696335434765618588182126497342053182364057915853670660689242867054978145718847045518299516290618611072556671393471820154020125999598022716874886884922043692777896084359334389094475533233660946125682159511294319774071673787062139355992900543197622747369055585571741999574868112843567717229740336010215715150621460977334295554275525602724732786346634254684391895427807057104149369975261221945560349149044967314631535197149233705420513722407424913230482424735030429275183271342850424156325833625997962491450008295100033926689687466339956143415872248775251659058646322009679027768847717142325568301871105913890235099337246775500079932277166355539660295055954651835523606633028304177073031483694509646059078144168732420782888782236067644129212235428415991076527302823610354048369791906929177086586024042132596584241632506848122969539646611691258642813293200291232654268277540093086043342310942039164112994383634334695065269325786123090430943848500806404510059347081203250407337938520982808782045893102012973931693371117347367236050806989840722179755924104127567109144227882623264138293969585028982325588159526297859857707906475775291065123624599992468715153308907317166145639557641766612503914038965445215862253557760681756773055623184778630880139692462308803883345968115736250563206995278542900892430630025560560325528018092393659128779645174194448469146674073175498433077352241791289120935211684587526363245391897036862154340879341569944308339136423332669610392479194685133803772222839878784204188253505451675735251690089974064722702596153319317265994237111666804285205890689290291862332793501337379729662093588333687876134773865019366915243484130607520984518932598219353933944861725190085323678812139508702805349975841957052434487900072277283965234823215751222869228964671377202893411355736221454793091670700020764062643558785233560894803915582114510628244029955262312073313654131952991639443811151320228195050484603060478744057244763935735717722403260926562381438683236139267448843349557700127486633877606173091164365428730982338044618852538630564582817008930490905521990520613613960994829119430513764597485649302696805753119997601929402973137091165648099463916487283778284919268731695673027497587274827466983248397036530137728507619336965324792094866054192099091042891077322924051443391020124056447552207010594673151363122868339103290581273362135942075845372421271296926515788764338687755087885534464299870137847341706430809985975208089876356535426599184165453318299489424753690350145646879241478620592121338482497891991065485737882922100394340558478200454828878520849398345904493433674647208403783550395836250876043924682166854729413468553080649738144909043883343399845726685361516395174715767337428933126508545622157154958423025687853988077350516594500213020686213892791780463145881664382630844889173759985618478256328218648541787452612705777106063102739677852641224758140351674752999044957960927296199407266773311399817618180184168021558488458166016806375215399081960669301485739431736694102509926203646736482030084573407110143477458168401849160277118508682462055266805676846304055965999199175167534210716460629715071098499090957951464159271561137204196671042251761426787610340488820463523707318009414938124041836198457675758949531160994466209382425623201550898450076094937494210490346305243634675927062685296892379556358706392319270541357215703462390003236210533600847222662830589441790633442666545071905655139903165709351255246723565909887857006558368461784625578446592134777512433848843548084669545289232425881312563832463696725916508577257771381298924512703694429439092894149111529672280593155970321011871157460849667097949493341707371593339895400885064531691403177829494138613573051000879641785595764184100294481056468438319224964744676572732287312832332008718255344480785760552144131814001749380845885751800590263342050989029376793674922378468537982605119482692105298991080254627988729998148593593139679463637285642284544389928333926989959510422724503910334228071688889770948181758416796109845129847745189968561145635432304920585942565455129932947802240139906463775061678747378460179845254216030003672931144701616823627928029287964625865339986263683021273041401927297598968720737189619214575689548105725949027325735699452801107188984982742887402778156263242441903139256762367293774474207242567815462344675590433120348398320410827083125145464107800017062387666447935360961091723984811061198747350161607223315314753493335075272326207292080846654152260756990577719709600573020334843343273560794809173388989809973618608709571041982229575573644147672429514231312446679623343427065382518636075592181482074675121232366730151044261534929046437322038906888831396544617346033645633750364041711220402780804353133766687909831216325015600873525951289806736821966739569724610244833767787094627583773625373692750473237747556961909723621863675870235228310506238967706075326767278970151419147228911672021928455106133116233445026132682542487093257779099840383892124197093117195163818787721912428581879400142565595183392502986717493119259930436289758456144998573572393051736285321093709507963471604123795894533465435734422857604581511087906751088238551806259271723463734825875613677814487685486093675650422410163436877969016643709378779262190138548556881401860148264636838272648906107637594586369655257730177986075620315954428734337225920647969114114359835338277598418156402276381262831666981986890049559381916147486857939852131992545635572463111640019633851369296410513783136234008707592069034074943555331236703170782475762888190166187741996354075481221290944434707461157577860035009946748860649741757726430261897553473278942922092018031099305361041735417651668251949143864232061090575879535357189130870048813391974991384531405448202879583661614755981962383286737658034136075020480772199858134042395301972906761704075915590842858424812520922603231535799325483672593759438277322590317459829762960369198570138605849694431477222653982408153223772543810922269987560484559219291607606747815921364002247462598479871953803299285172526550014329297282711879477158945222594979634747388522513980299901912765402452075647326262592137973176874640387330996853374572520521271104103541498571425465256355055059837070242587401398265886462997376814473019025695749621943373332371440369661886725222934331627896863851364842562765177956198082115293601104563697492123570021547861883023389030357530189247635669006266561510320359208458146930127420495302015552979343913326640627337848605200903646219442543004855918580184609457491077202563931481276702777552841537244829767101151350285538646452938695140554688459290234832291963743071271787814296338833863026496527394426405268369848353753422138406156730794669816699781960015899794770052072948935404614062035067875924082106879325389121222952840314610437597908974627506866562507668136982985907427585965385127852879315196613166658832890468136268837655557317336474828308970944052565212016074359262860377869485361183970331049828280306757999926895019318781708184911188591611590485361529511938188724296026981752441199235790002284249741677334519356439972585697587630753122081392295035162753943852456635477405593016362962186232694798907632280501081109852343487745729267457396783466236808798134936351079370768077667176712195261719021162147436570784453684860832228756639163388097311122173391241978924961736555233587672141831353918148857503170024832639715789465698514622171317401547214600232259503990491485940520017648989573522244552439730316196976948873038968200133993487617260915986642768358824902253560580932358116084935307609080557835275657888448422032239411025877106761192790317565827106088912284228773950395453734642843513614084730056884048868356565767997141475184910406678597805957633828964492657976419206750444264788720519950546234983826003701701995179253208447102145559512286446890581470776023332343738603774979024352995351439874219343052275882912471518448309836300860502654851894098790540150693800503422370593194974784536186812032415428667441970287616551676212726857830744426169529946942241668405023869018905549400118873786568476584444840576595749826134408724614481033493463033203021992081498142613696312066464802709178040336895042453830912053207767491988268239198580509924444346219693941090830746649759083207510187391822782164947604692341063942308640928353305796659096157767081403065438621913889512140344344433792730760315050368905288014668759261547977551466494992274372245537706077039701767151820085356485378205822463884747530874676014717830966921448431370349275697777330779153349726003178148013575126474848942306622734789943393706026797569231162641794838060164854933413774514540624092156298957887825944845009923741894101026018247771470500286644595665478694011062725285546624116735204863688780890945828408816489537950669582053876282571084699788294635036626876977257668581357325562204209465383473095381650297226830100904450821056903150446682424292739260948830540299735408458187772133883809478269603907896669371855446717513106196284314384010876350705296617167878664152876280152120597055934761674920170615190497258357141121858015047653700999651555231031617386446755891179334942481645720073071692905781522891410937092742771352262262173499968831328274875533886893612839712271790773743360719792723494409218082710589229961399707424885818148878964312877284627636713973485893131794184960769009419275796225063558343722885726645921126580967331683595700085393719725747131661121033388022315403834707173508967553295201441885937828827924203742336278237235289133035958354816395068876732031085151034022207938282684192535489420695015920098031086991455837228089377260360672299677804607474996006549600176328321447873627366607712237855313174661105431659022875357674867628413664008180970959287022419714691862724161359469944570774969961880985843424248714244732768764201354575515245882920562339484416312014757172494482225237994730609092188443541617350469586110001313340742426198832245816581307635138214673876340406439737878580141786978360054501980459195900034601270186669845240776795938682991511614702786634159195651308635921589184450365024379190306591992361424003759024033648559557143862411690513685526119355786713892575108181261231686773345511242041283921512137157799402291381625300286503650595145503047759989787942653347353919282890123530376432814413204454019858199812628490236091440589717347877784978019405149913684194942878905556767865068447817390537786306380538176929438331968753017318034590468255602496999255654646389487985750777914423233474165078922762137026012107567086020143946362257439187901928919904225212123655325258800724743866114066687131630135081938747285564756392352001677805240050510349545417190791972458477661462005780084964269585658549615488849499061191338726155611263982914109542814643984777216009629314065989503257902522549340600197693249646703111179618193765009216027678266300510440675223439253750048920633939180763512078202216827214690974843222091121313907574378213694943375830849890048080946915163947495005539548661183711785492426870110021134173534186789382536775403804283300148375188658191254109770926418645355454217544973880873736100490958583227093815908429054964809033411411147914144546129536130886120171746689734500328724008928819870616198768347863647379970153781822939923789474197330615250290656050257356963366549840691084390738653978845037986632622810764100417276897667789070679993669245420368444223585339670957694521653554504125040413134324160941610449543624318944609184956378242674996782093750596988445841025506714884871692508363029999518052317913637426915518070504130885312166436100858362364837545819695154405199452831009888004198728461896383919798531763942402822529484064404594487384665467830231544230702828954182709197720115703629592645377689036699807300411815358916255792518351620193531024979929415044924865427419384266102010665979819696703279857057530530378194970521339740126479020465587201115186288603786825959444142478790118689158705653299644106561500888982866241436594763791359447851349289225174834160105851906382250554966433676895943907657747346691725457082226274774736906051831955612132732914708431636032951111502813638119111019127253677003659259338037804870381565143201338412469653922163354158474295108845066732202888255424570289322897455787122546219882756276567784635858240762133505231472692064059115881433973425215792528220094393513640725158817732375404472672564729020348291244620122301002916125412948274016502917844827493170355076260439972852315427738374428900877587165899459783278463649923551802691296910801074107093842470358159437703832678002367802788910120753571707506065752619528179294766770614653800405408403241781664866490347649075222102217470034698625998672362181706099579796657241182281021335392113828429467162630927605574837942513534985793129454230736148962781198591731859679667038103304261937741467481903310099322756361266666690574359566327572178220118209554932303612005705320255725574938931236613628934788648344232945295457780568913589133821985899709190688831142240887186479407644250348741606638227503926564004819694645082091259378951632100638585807026120875885097033650266901290422865644432335107833061580401864648566417035948779789704096582949967517083335424908513413150564632089615583185012559785516424440806291223812933627270680342902230941576810889406651225679026467859548871602611343254909819850790838747791387861430940393768568544731824494456823599755121216259142910187989247193791399616749192388370559689387799441842345841657412034138372248889360904282162462517653006671178028492908663064130863402415548262064469595576503185065897811957439527143348242129142645735177426464235972299699900002927422237697944044790228351189038221476317237379161720427351506176105394001731969142905639047028181735723021445910294369907263239943566369553347630375562525781803932829607299210597196725098068741858600253757733180831185831328296002081609841417205987354504477088110115237621674658288606877500991385373271366424016305740091054217809307292376467445512892827593277122613088614687228997915662974262378416167879911328189133829470300546474517025341702526140991371390776204622004112525223632150326916521368212857988725075525395276756102337412150725130628743992117036713043925466363308678223070960658707979514976470035255875792475971244573983560059896077707569280677842926824484859438417836600964736255317394781676852726931195011772256283806070131128879636401993548771899133464732272085289199248777488895782965565465583183240369757041417097258174061479178666614126185826354852096224685117807248111981543819857113336385675032883913034621849545752017373013069404149983202066452687423828729844780576827736266488026231361201872850061508157284193461026885639660876461406915600767297891266467877932990261941216098368480529732969795025417302667921552616054915445765119065098794645046629909633491102900689443056854505970662932053372284685783300066613720134912225826104130518756254056218077693666314453362281467028784297034058661193077800851723208619252546849820799872742014670642411289385000318967246366138500168582629558275681462191379182319225103719360889051926626455689998284037116837107391696103005783935071232915529250694712900888686203385657190460079652481399987169757929852607748492847566661802084117256024087591363439025674035891577826490865003888021158098142858202911352312470679671515179174529547315565052472358933343653455607478257010766293829875042039288820879488668725551791576060982965317031382528400457057855410195088023236250558018458946956026670497544199347916624540319211582900390357960736359294010823814967961569426651030529594020703103110393333134249572939140397770697635165516553997104770394180347980620665811091337269950514398881935784500123692318151242267224656015310029635795776749300833553991768203503180160844456104043927064056058546857190845012671404887545543674560596509632904997916026295973582383044686423436313839928189322217633232946816603841022189333021791265680642073601333825545821642983418616941027611433835885676303058409064437277214758847181048341091754951094707496910533931516051392273104829867463001837477162798744253291405657439775011281580266228732859348043822852887124868601846973220855533641746091595460669322804316813114982832754019126867063104375918794077194973371038146855387417224727760494178083666284941590381897645579238599514921557680669723825047746543076412409121023509412839429893709123854803694502701998707319392666961131382136468423424876308303909983701351684701930227734231256635951550983888321769202615173687603305350221685410680385969838894653790325329125550518563941796005118156938663573271321792918655199854710711765873280945181742936140466064458344655447490132386335869363724934822651237962682978166085716695836308444865648133832850122927664792102706805331104300492889893807427742733030760949495065094995235854245843988126753632672341344841441574140437771405072279222167937725277969307455636468399027562596889527466077481667640093887869978569002615453842919265414910268669375070723235143812510238099943544707602930006785254778359803765884930020468773520275355195134055835478196733274205611002752726570945857339973852735017782837404114185457222884177066096414796075774807758802161075139877576589884198468026657396853445548680516078759014270524602020708040205809887760149583547277451764186455014875081643169265391786621888634745864459619273931573139107396006659353185690875959294190133025824055544304016319451386318174039617190540965770854792804543640758283153052668186862263878322451117555131319970302178560134279528568703650477914568966946105124955444552762934142139203595552564095951147538679773072006391971177576183811015455735659440747004699243280118523721100914528911303634468271273092573862182724983974672126315728196515297971065586336273444531332729253359667700513340061254452101552099351655061899897747196819809373926589842337706005360294378296844921446975347792941289842835194068240364982063493563966998747713217563034343598527984363106701194299459259242314609449600259558233057267741360718267079216861660124038114738954434562642769156070567066367990619034732463110093148074079718117433079862636781298855300529881934260783347147333000038804270465634741953944613296625402917183156025093843846170413233569652021031203415292387510543757489090789803185997882086425905793027872607709769837814368148427093047903983300467125308714847312408247926334754944198105762057359810762535798792557313520019931638931890306745688532367438081638379859891462415618974847273087507882880636975311643021289321233793672739935381979519805967582907402373131249048352252518669085234816912883138510701346251797342208305825169076838754302828128181118156650825436037838346993067872449722734205482775826215249108257598064405725699440368421226668601493529319860732831947153582817911409804596433269239823640069231227711460673900390659037286251244088000022622956523108043833404741696305936978529674919507451103402386642576145930166186467830224813378579149095232040021101650676507005677511579015636927694433137849131484630034415205443675652794820546445162176209950150005729435132412225795049337924969770119596925581248038514652203631244620260458703391077201020707247615516081949087460372164318111903737464736553219739793416369374699695814479702263721461177371192993773279533874927544652311812319472342916647976677204468598558469562510490260016989358976403952587652520271791658039868098300906650263647828610825141879552545992570897256109700651051364186944734592971625336054073553536000239108514515651138755375449391675148712445377264588112263551647986253882779303702381786674372497053666007812955548219547717344182843576153997968339106864810980797098297879302880165525910638384041905605978329340535251693583178205900291742236777978982770532907684736333036935997725616315795224200099178064261841955838961816396808635274743263795883258534980824777407765911339752610436214223599828215609727850472656970425718588509761758302075030411759531912477258641239618554340434537071900063023486870804223441093970384241026744830583656785179601611602501043407673518616225210215085422422116529685775503524904177282533445001782731975652923258908013239523079317190298342173106077678905654123655276279059233514177688455184720637952346024389660213724511492221956957867556695781921131626606644331130254172155245344281331977972623904697911880204201897402515589775979164418606717797393803577413719995972225507911687237138101403173802809508387743306140818595157186282209973390836852385535250980754281701754135418646242234184569454350377356652776036199330611507725745208115698330801990894157598130709308259910939440704802780985970814793068328328432957270251862528232619089978467259330787029761127122357716736376431388425169226008336733780303272836413264026358798078682419573485736116621115143334471890792907951839919696573647580124324781745078564522353206905140840261493827327697222910001436674536680364920958646773828774757737119679904361203860970384973872026716659671794742423031367860456288144554131518969664688395254266325195545732224079888941828379101767304767890203709429796626121587608135070365521426977899961269945010193285233948712706012598097408998247703710063074107167678805134203658711534968929750729344503431198404004137026961931432502016184485012834246101176336230401176716454766515535144528650095791293268060215004516096897479852136213109235844513928543639022556585322092898108342714993277695965488282257075031430213707305195242185213157263899383654933071690515673888955842744946616663223108056178359193023320150289619603107127776986975404352887561221405083530618858564303641560324135631053469355380451367712989902892015000154781507278435349498260503193962390640672781356206273180027237177879499569269372016926733595899915497090412038709281620836996725475122559866292081715405732676658216096666199161724129874431686311952416022303602045294404305436650818336728022990922528675298063175002775358158244154927351476598666273096846524537830700739789249921032088023359109165881794674902781798467868414819810877952204447664223672956382328940470023901607966171172137308797194075816425905148619942539293061209440791865283457170290715233898628998439274623386482846011296457542928672919753371668794143801444736083393131853920336327765003484408478675921006510972385332204013995217647897306581029141110358994524675741663609872073078372645958512832856207103799418813648624191589530212417868648141562553632940343650722837997127291845015965942236914885375612036095369580587450766483660537137701556040003454811271614042240408673755504948105965398218037209865155187387603088633712440309230610468562474688898469256861014072044802294015522178480286881345562172856387320056210349419852881456364142521242948900104671488697174436607752480975615163024459520710749588643906645242206364631604521795940658252993237894966211884307622403411188512560243163655384384929421702606279941336771587452194593660555815744770997910912548152472107563159497958413098410529438004261711367395242424725668445453581602548947943635425045954308342962781327280305836671316508864580195205052506454616429893231244509438282268800510016334106664120839689849500954352640829817799390824612336329141120301370574753485589074440236543659675125395970041726075704125076348985358773916013910127474915125453287995976802717486142443761227330544238051125381523713752149229994700072604198930635082133479773321206953042948071877820724043046709141273057462968341576841407685293042353449130485545483897778351404070189466485688001024003908110961723036533901068123618813256831202286354251968618479076960173127491679731403063430867884250400634352748150937026277329753123176265679419751936528135659486182061260005481682202067850980772240271886206576015947994451478423538624130260757731925037743699743647501075408969240341488580230132806168893939067462868313893028818950147132662252519073967227614504037207849288063949659923390869392514442016660429572583912942189075929813931840017261789848182874065255718395882804223834619341975028740801671242892089111691367459420798506402035109841135502385991410333665829001231255897578785282799616580672643358159061996722960815213045223672794695492484725381788473015722087231745027523281569554734447104551992361608884229330678440344524970864673332886791793116042830731177574860121434079258465048892151923966205469995361131147523180431049799472413157048386302390394818592181035947930861058380998010419082886121796278648626228805832775072018301422409178596694747610134226929121940902327198869488892288878752157876468600600094748143624288538180420387818545390497411256752104308618585248613840940052236693095078038643386186154053869605589177107076405852509693173150839051802077099535734153670101040682597849006952331174173957534449109075315930507003406627177849520733899176487096561744880873244666470763693255296407926463804714618801287525115337395746500180413110200231078828229798616483158550999392982355782930401485207325257670136166330908236897349532687833721619301982527456667171039562344704884647506275787429245079141024793534485021463435170321249899634552761635553741427736267890621500217409400148802100114828102321348777121387833197506916183780916395538843737094327586857867560587298663119298573489290511546823635945599644011671688639614017479020825057782067995671430071973867577003078930764471328119969359234726552928870202809201840787373118907606045413442685522148374381816531716031197755161561582653073739569336038553581625199283458539178828448941564485896442264169417526684309601592398064551690712847716105409587167337443006691142718125122503634215815460873779436386829524915331414466013250895428931972867404355762126741050608235545270361830976821506514160444240273605794952394585822464107107482492825200984536931300545731271726656377834248128962710475844029353465809718300465480185937321500475502620150016775251911747804490476474047914896160649843622935033372401258301411094631024003133577161213497545988582781440649003316692935529970767872516137365380958180093154918864595406662065232900469179935802592641377282660530680634616597303350646559222762380599558688015070953104508914107734710869807472383955715450069986126454290776454384560978698974844160672064421403764089150014363975937536658590267761105979234467752916384282620379912636278437430861746008623761949075246196573811454012172628507557005124376439414494586893138059768379122969584358332899767065145969229746240428396004333587650970677387225844957686257423888105669342082711638517074610368411019765915276910556589601534988970318158254757672135153431568134391659232545057903312489699830060930080682252536734379806174435830445702633821987432092399146847848638357917877039453498252402088008680022190918480273551975051939783381596858354120458046337330211447584172421938686732217272575578637211048460149881664918477880921368055943695915947367992618500968567685213208959972375379883044578819020282623794583088866232690466980881095599037098389003749265731559296536525511886328974896627051582600073160552835615562845629717642422334417851352133569425677119580395574351955758146986535169487786860790438418068444190892494725972094454017740473393261584093327340674397550430249309021330365153222380165941652725565861938389240275637037780189156665838081750130385955737470163075843637587128038612627425624169278600303995912770665847265438009412066271837921860905578055509252751392557051757966782251326925552873997027152595663199776015564272095397731871901579875738887053437512510496177182623663584142259988693606124951741741113009661812943344050895336645378403683610070511475707576787283759092013990571390544371619814654779737774075422434751884190013636142007003141807712363212351688561261934831310095264087130336730848214132183647279569754058650072143030858190372238085662267978265797158408544554900163377095426974621240140368514502324398171603601008858544264220485609698011313937152782003469813647937822960508433587347546391832758489693797613374837915666374636652199795983497045763886693763882420403722279541909293778477766506145304496615500079539674795757977117831001118002114269813055544220705585534342122662241777857804523755302563642909460966317965804631656156776965711542263832133872182610211596723112114000884361523340352732319374936039386620676262632241109696725787729682258369106975295462535406743551393746726639286886908899142833752586909719028902980478552851668165957377129065808676692054169197496699807191974643523206980804307276803929605983413980293067649135434310184298893461159335474089060784715865044924570529095584041496660680905944212020780252830856969073312883179975638457244822781967879424283505757435765320821582214208187256440273358231065330333131033633869737024730400832686694043141607276622834056383675696312838976098205647250772968690588641273954191685958965660711022238905422941881442689928944452078326311781081269944176502799949799445452692463874336423898699455781662776857266111436821720757760427778246956569104103422337052977549563306010543799921225415982967692327575947466671859413447898653533275940653728642817438488332977774191497772430157987580265731314820506346389311424787745313259367316309037351049254502152379545147272927037761808362093219855296383704551421926910047331445886667178988864541703792170487092303502415284284693499539511209799469702360876730565407916063451720150240666002429601416473770349405730537947618705266546014216474314112230725085363194308781784489636597387057253408219192371539190508232257673056364552058510754893180567486003273741471479732611722302034426725289165941188324354091028424286368607227077691238299944602683393643391404300523564139612792210412288279181524736869188944642307095320033218687963545157695348794454361928371644651603838420281181429791820186615580142637389100810243198422633552116258882741195877330530224101972976666725302799590719689375253073842934054136623399761776109384547377974946590674322850683674989618393033659462582903360950149660697131776042919028687177308148860079232659017881252731840166454124859747988651113521083641854926869604137378364896881946767972910929313091931997114931718964167321448924879960248558894294521130918175417979999357474043960685098552451914473422651181298824868599910810420953351527623729831627225451356651213335838284702225861546701376387595124705960957318204359943593177289478316665675158363496233593775181528941038876832618841617959948727103090495620599635758634315736322397605184218369485363118212887549341640546386322725133692059136319673712375013594636336983517463444252635665155508170651209618579945864182111557758385374021167937465629450257474241913981262920412452838023696505105398330163025111390435932535851812388992412578976392333253657452869402446026375831874289745942208596761425986811340368727699031536785711148859468843759999957967108410157001321855415851950942488419204918474451568928214640838797904712878970335027281558944566808786915075706117906166886891299708339149142048155124547961495033114425398761492965119497301716283382719865290616777184233286885431769522139938008710118756940162841496777235505995267986464842683884851842211894870969763992919198794334456477132707121976999710879014682049901163452847134491838685873127284368216850952137760700005276575755588691537061933699504414426733850005114671760275883422957883983842999415699420594149902379322112307998617079318122436551522282727050444992213875286440813894793429622543614860186841042138620292762029606424452326144138837025302365815725086114328384773324798587197718448920219868098831455059092113412904598845892221192230218430132320442901345361812168394193259127598346294347740092196814908138886976971016220157213984048422534779720337153094093991171492532182933875920640625571498381436521635770342217167098500521549739871219689159169604678917501232750053055812921295684462964254777655458005087723892349105850076729082654321781582761225911884400035330513793140816451557824935900918049625652579189542171144827103467204060618780979572804950184308581944963014131912759102688236899930539781784543813692166582981608888940839200024664504178331607987538908974965915587534035200987822116395648626532074184243438855459006648283640646857290546602526227579740432898854314573021845021507548224051308985447585080275519794943350201420487286877350235407392053521098517904305569258419166923735498837740397657994971797256080502433547479847562071081879424822125069826524874312250106531665830153124356989872092281313256435007222262732181707189994563143566139281098798735236898245576265033844227393172316610089862612105412522204701779335033706231679998611714397351467268607785316772623032948757052285858279379229384575772650645971660544921707847761016562796902460641653366489013376878579317814217420882863040156078285530571060174207546379495907827224143118189685023721005783932679970570380859610715876796947145201356148399406015961889527731305885872920823511510487719640864714863185532432797151782368498986961529831843765640507700328873942171321070296391058361806043119172503198115849905827899243117818530641123303241620965574803925724857854464742513201634733787907554335268553495231237542561835336008774497851640123538082668465420812051437758931286332911316320832100024977125751918218110966918560440260044404370467197355685119280291722361560178401793610219688432241982032210843707621296808476545329737853737237058431245338212466973627367051758828749565103947478903944719047550433761481762273206666564399815821060440620728285699869773356244316410703614387831911789144500815230766940914475598347251251801747176670697521365280190431212889206213883367871262140278266040281944047339756381801018497356625004652126879590039444525959119062764079578976397987075527828418221110772086642669355695010256240442688751612590290206902867992535472130349596635205036967169395848063165880945360897284774646600667129766671626805842133774886251214657905151359884521758709078802779597733415776427535729637084969853501766329965375965006597728926704697337440791564894884326351918383898663718852122653113771392009571936061475834903817895827675227906629609929481388289523790161022666836957825078682788826326122086805355929092521362370537613306407757470386427012990795476389420749192903144218118451838785348848337573698825587312659651866619040372353450023402845517070099199378945191670232614272246202028482689005340928569081580161320394519653086226440603459626990056614914590161897574916250398031608726991194838715466972649344656943507953573746212721638857564894292786387790882691201919816246153206907125009322350094333613913951158594262133901295787742927758916928337911094248038519352993672680145088917572080029798498176021543362855120427240779244005094361922221519976380402272010286257418979605125905314359917632273607153625233005435610619040466671540531751249455319182026640754167396706246916659731632422063728707347666237530574895254878400127943532062940791100501477095445214265631072931325507170898141478359810606136674405577349564541322450644553299807857117313337229640544158906463351257228787679651596267687522378266944492832420076568405005528898555342313269502810106554067050377006714435016786170157172316197980147612737957303608929409520448559112355673241698322753748727854366329561283964339278526087818242793031734049566171607582309901862664625802779809493674804611994948682197777351079191757304648844155662367426080143421150817213584554664000826055285386697410206041750343122076278912935251814981717240462410008190384267932052245706849039201312468499264055406141870827556136384857631751887087525838404764761807335149941325662435218908439518723885134246938391879713337698785708962149685810416022843908720478042527680192714339989078296115338445112193557082853270737726010060032101541194035449477954220049831636549006357619981950435683762734452644126528081344971120365095205043077946753857834888423123001591585905451848898605142673118128966301560816706047522976960634981093572418389297588848607234633675934331389653859326375462189806598895762330215470092145629131626695494184216441144480661865397477886156476244759810785238857169325170948092371470803278785814106623554024254095623689278050008567626266196423039401266575210580381588681195256338300465998216335678772073655270225484385791454040357813239641368181035029385393083517657118435523429368231135925003622244870046923039847167262823665825264501423461381604838586465575940414294173334644859756068721211703025890800230853592907933522923589720047475330550018435938892918398896141148265275492944236918776209057345547479415850963707263462093606200125528890687074188600049852922519952011303484467977326198054979042186838569418971818404478746810097459315940559761203936642097891719037714248045904559248665799143619639608043420458467450188589578717122964642334259745834365522160506390248273428382518858790146021805522483923921275205247645705225958502094661991720453918919685883505167626919216747582904629737847284940146280514038286530117065916602564906000146703044717693971268441095700595632703237677587682793387381419170878085348502067767850257733001824815961797487062302985146023128261977594413747226081454984807453217504481902497120602457986537822205022872844129323756740948112272622302702866421932274299781564683269404765635281775376012100250736105090836794080703103419743203678524307205932834156162322304887973723205781906666297662558480500767751159359669176232127241524109903298181185521174137682069531043607080617277028201629386604263724664747375076222612678321157191152791180529684912772862876685258966052654971373059419717909277710928886207855025793594777912341359708590211051499533436522638181140691596724874250198309785595629541497555372226093542522677415182938883914280997472994133589491476882684872394238554077752627702527259904318661166828795793728952477868491346571083408367742420673351202735335313376515758010712912577553601640913470550182528257645821754016380941132044416458245644098298307558205556003722566362732339431690015768285720835581857125826943050479530494884152142796335850349342283261477685608921392670687172937087603984259662227173783384286531217516780935709374576571225577821350090174051012420421274848135955284722097475727047465202645839456269921495792375523572966361784376735562431317426367130309860388137634558916834952504761548016786793411348297316169982167752080362691040432694051539939878451339446487220518083130121809855484174155419366291784609188644717008882603702333590742485372770694529081886687883380186113168277099509815273131149725053390437400544662385713707600393422322644994630421722960274202346435296878000055266663139123709637672323175258581578632486220103139563347797649297381987695933908160073898911218006537301936691123831497184806443253646533781667385909437552479180699531430116979605874864374467569812491185337100306549654340104950497350595807090902628634284543644865457725782885042134363282854149364153582887026069076055356559242982864178425352747478056075850937553261362689410270162803071115861646991918517191322177056134332637481334848490937503294812048037650573063978595589145473927303602459465155564702590107756275664671765749914972089219904831192024989591022746262307200444276201754038533339375483141943631281675110130120891307947409194067480477752976549874745567966595818657221327481144944082008840791017599661186658857605601566811260132822431497567023210950390161399002198783291792102646611936577905297128260356820807244753007237847284902286550851229569348751343615364724278680087342481943578047397838167293450438147856955523356607665641350001246524045430142579727334073278142889832052546578231071671039486965847071463648638207163845876738155493293954517061251283616345486992296127007378333620369632516868852853178374847463605691869000355802825179594596060303204855329321179258485092810753811076229152171727001120529296784210995019673483334149255509414407228473219264004622168389458177980865083484408166911172233287548056118079062079559876635504183003484841758377129948033518835363062333228131263229781711809587857223699228992811510378586504644543528914180703075513076059779110734967808295764931726448519307291731113417860174897284449049618081558826270958081068436726151307938865807502151113892900164329262669529412537909663892651965585239905293467690122104227024680283679044575564232021964486278715151507309605498672519328736087811171672566459165053889891537144688600044437439293578883390940054235481320482943342529806937366201709555680032462693548117980385645819630670334914893318915133026802419877418599665645315391355884240533112501905546837992548821557670678614173250982251642933283520617234953775906918509474239173135532567800736405969944018722127469786549487581620903147248710692712427481854875853543695066369444156695249402502710713902278500732053970675745075337163784332242383740922928824576625985189794189041266726023708547657107317181300918364178738015270730620873053374076539627283051066489269598194861793061058180066236470661852928023252315377640833923696130076908028038074546094365268961804430061088524927621096274285570122532061774711965122536057197453461003762843412478709696120738622402835854540860516576065024984828900480535426047780436984422216614251032488118603017230461552047334926832238601233103105590031005058388332615017005770565799995847259293908675698400455249631712861180196176084907132812451395150575759291325486216048217072753267988228732960217151196543173806866374104274427326109462037382507268612832453550707061172110073823812569411199782041014660466966327609531298572854816196550670224564503641182529689318457249058923933119735058105877420150441472793297663753765491556454346638300931457628177911503269552001046390208862211490743071063956547031678307707671391933414648670505562641791899290645481936747071787443554628946274087242021559952294281643184642585286132556755815487099165975926522584099460195898143935880321674936228297776175508074045049054689994883260703092849227814611956946823232607829812590957319059759829807064646735432765348456300833694391236664542320723808473525748149797246539068132430846798045474585551314535566167178805749172340918954071203547130830116094318918178046614270102135375000766971673474979111766471467948231349768069644428672021678941237169930390747712864801382039160632840311759231913322990375608569215466379843873826371931102824004216486966422078837214554160377179897341784829806127370668539818953708042316900852850174135606555117815647609859028031424692260257520923419359905836218861547186971516442201246158328544624038833369350648005287024821875168713537322772512060087929889130648239737485609151018388149431595186666299949784834053619670309503208026091870941976950448408578158850980672418629802749400871346929921979875608586519942822152778058051556198158859836876471871526305389186771793528380020891300689689186069933579906152879578439206610089759930267567159857394545351049991862933934217007639052213635237533354691263026945617618808723439880114602610179768280778608107936596423675976750095183445216950924414167817527423215040715026275651657323888458576655483713741584077301665595339599772035787667233679345421431602017071311920706381393005926790385574814465492243482964557048043891422945769287980152493036123405349807897329490247305473155944137946603662825468073878703603230875421982448532919733088433918137601763772047265629030368059707792036955139004106034408474372161403800846848344214515510210981624993843957012662067411003050835879520718835212925454039793924782793192494568445264799221474223336248633669725898774279613991635359808938858387589727310239751906158186755364057497852339681405156179930797888419945162297710092051577116164212039661426422936972333064237812362748091182067431229676511089475180698652850972211934052170887560900944423929046770922983697227290231350399256286726150134013114199943187762472522729343464623365024053832852850049456957240421192551219524164134617581270367136058774552608855701880292020841299042682256471379542457963425878036261843688307110142813109095889426188025012882526608263703365056226626530073256735524408514310452988971607933960304321150108125507973038342933732731774731342579073330378445611805667698996396194573802521598692724120582743414511753832602140485443656921861911737300597539885457019723544995341361262911437894592017543717155832800019860764987869818697854990301350417671846592445890907412049873293329205437163211215059484812133628016941410425874079128676838515278951243179920699952339156173747500880365152175726050879556151026723333757082101072948650118828878430591496640521089292567282084371483072645577570409315436965023954843785670217124710312644959436453680746576587688795365458448303956750446801217456926598765805620023719899233454473570435013862544872449299524720485695961342066238087356237787525095965068808315294909088664671851795188241956261752372947522303171398431756762451846625859566370745517646341807828454743740190352120512674987740588531119264956500658672850928627988781734928033428901112128705892409983685309208395427078701509384615615607366628752469518905876537051626038606252516299028615225168295874902154896431120158475778121938487883980898800274436008343207194326655344771727760460171079150228041909412702914484159846159191846188648675093516610175711342585979588997650334422147645177994139983939346962528594550226575414512134988126026780646227047030831739533159326092171626984987817044621255340926171079111721719530091807883644852305069265678562902569208045414516964923406516403250205805544196761108014276075908919993890187255420185966733848972786395446592641075002346806669700336769493213990503702357777374227847448434120151905635087713552880781979512818906476524563488952011460115673818861578834956512740988637708665352239280577561622807666779700960087107357163372879919075947234354938103102438537110950223066138173828570695531911564333137523775123639701567887916533605443156704294531711213643028148574128360180351887969997440195907214935245697581779778375725843498052529666070783331384740563302113701953796827716793369807087251740037044940695072434145329842409863175595561142103523690908280478754791611298778555323325969962652625848260461620472563169350709567973213003612289588592890765838576166177638748079375860700815714764642370660743079249940374891904114718093649698205565838156440751148616985007184227293141005061977588662289444899587161067302326286782843653309659096484033967867594968549622874523540084556934587915869067216936374890534334417599798559570371517417693675705593286790958135851859834291652971725927896744146747819308798950049770724661168053489293222921070358504660654150405076327447178774788275209015333795890895155673834193040223632790244767310297958218947517778170602991081909275194882983075176234135814283795413190386331480508514993293706744811830678740181203108346104623754907622693313149654915496029805963512353336763599415581309796248885507884566233219824678952664609081687140700530235066307149945882936009097737537279054179103809075674849101103269941903414139338153716355610787869774733662796047533728598573634781981995632385086630000801399835130785043689040677134914750015539300258884983842845360671433543979642787247117883320337903101317076732824982375933736375231357493140461748595533450124688792395422118519566343004868134419481333887959156551683111039290622119127828882262844488058329391905592203284411963714102156533251819171642622687025878835831636175983047473054203009549279457246563404961713337659009837336465789888701650617846010256696055055274902237872863544919137361903838061840111320435707840683985139446115377700574517230666926419605770463392586085169722444207935703477812609517765829277669244019058527474436465805748870724117178224680722382949392627649185032680183147412626210743583685014694251908311165444342433793852438647910976480888439835955389021436675432767292797410807079967718048408887025765074921816664310530321206457540953427458300566493632930669005690105181008548841104672997345010178374748574769090285511350560029183400915939679895053324307417757784928637760768645201904219589069327978381299476520108216459200468520014788706069638115632773386436735173621766154450984598478217618170220599407132688970065877476610194392696330113185536863246441827129466877189776246072161364186062810537351642873483331700340995732099200506671658327667145423792605688088427483710388369085912088302777810195917057026839562453154853218245292626833434175207067141101035230752492886080951233835063452320537673621856746888779395397923543494244306135697350226641064455794589372287822619422530627565382420185897066833147005651735675103818502106571881724144046128801593564655624488683065392139458851304119344611232490626399008999017913298546423438323933989198409991088017833654699025636964980312950890960834800658971304241480683900041368967384195141881967367394668680911097628039306664355167052377296545661578933567643246016624899891006774386597750358982167611544345744118829895090081757750609926326804457944504075098111470892403688309365305690712796584998693357111524891829860027162768865602437131160298566827964442478816108935540597499155429995346804016238995764219569152888410729074380056049499121013375641824696158289216754662706522304408719568435630549339299284260924964165914347019721795942579096498223866643513782922942882944655325580403047561960124792225351048635076744559610361303607790611516275141483611479171201636395396163780034823151951258386667239276477737399118550067959352695602967216087424389239988278908111854268163196886655091169537779675612686591552723042629566305816387438912055906272716922999345356621510996916972324003798531996227812324623925304436134700767088789469643891967282816428475970578377943466108424757979798052749799318346622149182763098381232845504110708346297813575193827342574075057373762801751161386999317965698902343145705954405330171110767196061327823223432528466228028938475451203112986733133198194975082051109717212326723673956788970958832590352326385140405712210078619544625379237388182743435184680645463744722291296039699666558208249589548578625586330027567320397769359168430317909162990468809825510394218283090361456086230331984817132818866690334037711024384526100007724843773562621581684508280776953881064442241174226256771829978229447737884436954726241180501434419945710152511336071349276761171887295142219970954759390141471445753642676705625411001866382964722915986715953024330658782457868533279193269048164366727104751848826691541093339572918198549378357177582695558738916337658353230173147669733674837648983118727396757766546123720787639143774521165846854960080517527495301717644832283141815523848498248329239417025279319012111726297589030797906993090330894919729093953128722112681162255549543110600746145738908828578616126340151465413351669732787912418156910934474405863097713921436818347147489120004351385279037419536780489461687885112850949244725081448059222366765584335796208210722594660137705355934830080572126290140607010080468373620971995993535121215236661863045444897336263674075220176080126492081654700974048104871348479563606748362406698790803825055470986660852097096353651717668508000627232560826089040953226647246825621328380790316831946071482944347358310638842480329617364312335349634337252609224171798584749574925123883406194258911035489799307948939958036899093959250968966719190389233601317116893695549840621626063592553248041931053078246949079016510491451315508521034456712828700246781743470328857736554490143351589314440409901411059352026250279064157266121641838166285237170845111127993002911535322155206480158940621447804993627188099277052554679258287456451193480715395116801845465451595521510199857575569467556203029300994251646692406094032993713652612181952811673368566073250657081163689633694821900476037979945184147680875342314168425622621925982856435235191279908474578756056974286418304264382635415138113876365906337829157003274639352944280604778291191568321069545907323479117010270793982855965461025351971705847281414817941645405544185752827428772008938481175058392478706010544758870835379157689883618706952522948483372981968183646796930530260004641575723588703154462170964814665263705516312542504850436478729901459275280760351206083025474443906915960612261792572458668008927558833866718270282765583575209314703957779722965068332481691576268197944100378837804788231939986661684679701605897151192952119436519095556031782436536907796028718706858906453976931677735654670168602431036657739286209532615211672797887950575737635070752384014337821219884286081230758785360838658951226788891021620110064015724721303524071259871123654121602946039420119030816276778658380445507304962135565909560289514584521567019108113281026244361550214433063405166823199148475060976499967300247032142210454530228074299664894836184691427082850288005381430907533823962159389782119010563389851831240513878424580813140779698783507323944800596100528588942926079015310351000970555700447330458114140602006902083872587495492113286897536708749185369582623542750518335965002598734196171123228185326014706036095957074596612579629515122939474550849829761624780606852414088143429074173858788208124812160415606654574220856144790126931524251929339034110675866383782942210805385203778018792791637119854629606939448589424344633378779646918320204353920862623684838931147424640289574285539524690646437159645459394808105467093923193917679194994219450173971082430804527993039900557112775993962149106263272278634162045879016312385274980003760826249293894880522202484170684643586543671554512637542692736300921656449400226644938625569033790836467286834291598092930565838617380760750308317200518790512409824887887905076427593339307696745947394372729135680524125783137856505470508157269887507271552108376372664225772309820455626224113120896896420162886911954772400249896532148174755928434879910805513198301927964041770320016524001670237107418140564100726642563085813400288662489057493910967058326126259665139932486132563480522335506210572545389911119451190778502202667850847150056666126722125465103191126764785977245975767745891978120222678392593615139546908659446409438387427880719415312721741456570597928167901695699232150079551696032037829713375130627820418989057846733132625055131509322363689744650941128537814423320953804670490292741210004358855405259009070496385777476547362478925293077608970702068368149211559665346570961846321128681682600935153808975238004926940792146092796375171838319119158284037602962586730733105632830990760044372455975283457371883718662715964961431127065758452738113487321550828389679619269092717355528401453325136668706240557859442927231468123642311778771153431182113609566146253026300477060608146284504621691475232402024122511450826282726512498124727860418728688832521735422139600473034202332722647349101121128669949549803310457674162322002179378857599413856193680181210392634699042261048995802323097961238115921180639086221264714416275155295315739071715532178379284966723158492093314478705202834231206157542361970635118900556396268527853217854942702589439136597202671855533796239021519053870711532470076066725945965305978239776506342872464513165009848629242420806516293088825752343454436864296242311785070253421996735643103850992705180315794081141158435836932902385835443068482175676585630915289761909064590479455116983132199901794097498528545136860686054512261883012196223219694864199865271661863559734606477764999163943256637028927754349004911819960488637070050898596470175047939540846076362992538360513461213243868364577484611873747075548213420447817127221390869132610544312458290251666782333976098376337412053684694387383791867465500996005863798308887545670564882962951609228382817391538499751718216877409082912052130602097832633102450848427737416858165375316186969069815475980395155371486805695755326760338472172194623388479907919299074663699217819023357922359594920526157140538587188952848523123194990966633733185668134905654112598598762720512623433466341565883073920122433467385861888534549923988294871973859148396058510909713563487030419556070950494687325086003872542866602168815721166754381906106939500700690007297184750815943232599395594025897298480250563904205032792449768122677022180591076580648090344411682959321321398655640343089108646917276680626380154851283819956456861992018098579094854520802622075839374140807407964181346844074418733370855192059623935707685885939788655051306347861639090711201826211520799958968287368070432308914473996481573752512761756813934102078770953409465944348377478611147934790040132568381993177462492354229477512751265991985444747820268953768657775039827872800411820800689560635870044785901416159490427479636335146290284911933324323354082051883957871597308852952756345846620385486852893869731533940856811966072772058427418032177916556912307620327730707503706827907192150901039944328077470406874423908385607547523641650946667540165989950405773527082939265151974761487154743023059136601155525390265947468712405422272122228787589102792294678668168256821579157405705642635291735578263477237817504535140454134574690223214677900751511752400883609292269720353546179226338358535877562395619003393956058458863331611772246773295669155827116578579937379253252329913174991240429384516084594114074626795080456561773181361647175713435810537187141215281848958490983067340824312712903172321399523276220302142002167289086753189356869008853638677374938896710918493741175528808267773551754432452705020348322590357489026807747577264639773762830846831467376964418980221507048712589171677329910315768164327819798960309781291279038019627739312132756870057777623830220234937394254383621888308366237244082289704394391645393811274875728255436178315774271486648833521337449386448633574090919298421721714286736821119262834312018878911361317366256111432991096367996400520098093893428796564760602073872298358912662546596102165820624504054118622936540939745374224575361081534750577484669061929513514397318260961014277285394132169962508091542111559935998491459054968540046243923322568209548041918307892636920224185297265876275580893702560099307103149660431944916025378113230969883392059318247509348156261592199582181493255010475894212040665475039145986793587851534889207924226045521527814931452782720836202454550013154254608885880078355439894537431637074566246643393980326369746316129780250253347122416316429450625700800872384283441502465423143353919169063961515114248199515423520909927737080073263279694896180732220346408056491567443550793587503567392182727146517117986437006105445671204234389218365531180973579130869546624788343791244373115191454950111760840207569940453414684783348112998412178066237934443414476544814137387438227197416523463153758823282742252425939909260937369375631536680637273544604946926577836745605674263896820239340606444004976995627479133389173827498002511969461156817641312414316714530930742511311828017051577474210961084420855492697064585384565860237241254640183420040153556358291244098133199569873748895347550560591087981465994311821332536844161403142634315312563819216512172917545858427165657833328481329431861901864547797058292112662714967387257438484581480634740843464145961840332434005363138561575725517343065055917861200212329170410169345379010321829003663833421430377372466796036196488039076068578218149553699999018553985052246207151445470080909713969925230791950222226716978099516143669077579081448916288485189675368447787583095817181331575256948495172912601513355921602024667132885101558489837246638377631308467030279488248770870901966206311832475155640688705095836221740152416565657128421573978885610924693647955656558941456017739901069871094369510885648304012534975725255410157908497946657628697444677006153593374129462382447479158709485685925080589157771385037027622965698908183919991104917284620444119578082433289165865273419829236048760691939188718862552526074597818110522179675593854244210021603058615638795701455260887511021831934869981529888549636287049409089111790684227219944166188697462608675951110909608654122101359569339219449996948326234750544926150045799124561559090321167166536733477830060790891960017821727046881531046446457585530892564789647903278235521071118953560296399360133983557424921414434705440341083775041968972164845103959481368294650598827355356359808075398077992717029837205234921411120564196057129904842874268531293586729613248182861123959278887260869711319443104269808372239608029092504336585162693081896296626644187730799228868546462647515936317339151324479937067859015305687449665291569473141737247969782380704927170585833321332405479016793185643472624328881548262180009721831442496574176248291473523716465907217965483341850800625800270262854850332051790437591908399098607446249740028567935294391355468887839978940634110505278551577804680414572475907204596879646375506387207451118492024629041855413941894390940221266851399431404892647919523715858764940636943903351640093829115470838704025761239390798143095365637000469268508805718976293069393858880395771131340045122456215095859298936978767297868248233582725790423557274713724860777139349566283810899548160364545478401529077257625007496944711613671964366506003923473798467397850090851524048061444866452520560738834614281743166772694671423713261949272775699721944873000156628309631269134530047479639651595578815720412355589735622162730710132652989290511264910497112759756820839996305320110523190720183472634883188230878301135413253764631197513975898192720574542254487726873748902213140999718421451242784838403103445547944235298096031255751917650973638609042335533939973624870733725414603513311773313744485061876666847236734424034337873456017038033452560080781804675549773056841011210910672895744862654015305672281602787568238296206002771930743101960696403372141496161492275038735093665628245558975665216122013713501091150189605300410497213872065097080728307667439238028034175685145268879163516597015519135752709025339600845109951921243518034089342111471999537097212053394614924337041104141679252493996963407688103900401496207784663350433528501686751467678235924144012787115000182491094710638491352301299741833431259201699937862731971457899201421453411858668254708972962779884596635187156120095434681473398729568957716524249166186354008927639535377160544740299952720018585901750411054147383669218302593829568447578193742946496772761440063933513107595449312657973747923160784309894926467259977103411711918307456703535996931680677988651395007000201507290979936497559993292173333296899103142926100407441756367144521447352981438855332722779156446869178417048865091655437340439281089700159666936602451415851273977341152526059602010666624499758142095605795643700573617934423344028804688640443926222485787107279212173408739251763870088135373868468555612473454868474519831693694797572518468472921357671456293517676849902219400907045298518706743806548840482572629558512124202576838401697760048425279941452627072044403732602779907927884760200192822813564928314896005975436027820102181929413459005702792133583520406302302306062289389977742207879803127867271615901950073905665373504378651993902272795826939627708213500203387236940078651137753299553858363816442674110294206470889612086254760579500240738802640067184755985237494279275991428691678365004758448658803499409658557529380352307672321160802134353829372587008638447157287980492574568006044247705527231769385232358384384241004097852963457105123025869585534083288496621248129104167144271174190044100710980246976798703191826973027091291084709250825533049988460493684402403026215610898445308449768969558869455074918961488623314675903124219853399263663247515631210731730324680140392756726890529922423555236784466810194609492226941400735194186315424777518839948527648379254348720234429815277406798187513826852841241558384268907650563362955363128791475180855733935230222475558280473790300848841138751239734720977009265856933894427860723756198098230882473663364546416570908809268163444867423411762694254878625101391586310972995859656447907163706109251453098270946469599625642510512161921407305225087214241960846075487501216514797275980422690169939672807485823774252074601721117460088328471480571294554798962103600495191358839077763938177673455626652035428054173485361722302440476150510580726521602502462914015133985295415433158755185900166594746265729536568417972659669473801210006406510324553726198551651641474432412826583148062528004742327262545995871701385745230381991644634421076886631411970480775769198085020795461978587882129407721161051861561666883718625089435015712424287960442279201985931532755072241972233971565965959373545093937231535577293873306293981046451468926990163401866092573790496146667459302665589571335221553719718010585848494066624560939388712674108024597010057915427426199181855018905428230011809752757656814781568475096012968477707301842443029911137071384756636883509995198525876187146789983460499498511712985048559516779568720254319370976336272861584390481650930551710126162420525068743543524806485443670284453536812473058872089136885276798047432171377407611787189342905332750414001956688579004886836742874124564770107675087992779481542693613367380212357115649011613881072169647196250262214690434955367867954885483557168399974110491799221997596953266324540749757319721134741973266176095610296214770611670812435484366743865677362040716028282501811728564558291079361201519355190307334284703437932957163512294006091018252888965082975483634354288972365644047703875731122178974808325338147545312641132174906587045490678281823587901611934606836575322374462251139538637629442324097490050126072175042158676408131006270667332745873425373379156883286818409964623883943270688918610698637686472438938870640826237243864993278679229700297791541848232600185153504311283907575775215331420165407015535616459408513945665026876873449476564132715845716366724132437971238338465911054220870188455830809175714362431563491683752352158365561213614806139927396607965311529345119685230227129597118032128337294429418846434756313861493046968927978578810809390920332918094577165941818121586938420912797886124351654432913513573809482166671636190095416163941388750316843952841319801674077992354185580782655891628376911462147724628532680678819040610759439057882952037919933808407751461442465671738055868072529994918794656105072589828931304220057458220814289323276749048567575383797567199142273791461111692688539787840903242454698770502936038905895525386343772470853356878487419834740311397358405245286981977152639109629397461373858512945740964925872894518675241956316209766341642236428657027598072854204344451718284698067189165901494979389441825312561783980915119504785344534097830495133695316269607767955343889197024048985997812716959189891065637930618908007026768290066970652419530439854862577805285445753098682068212547281201444318755094755892960126659530037420566580082012043438268501041219173241408990801282186700559958283531176008994916525193709035290851021836776211253750680285153127884149270852716439338665449813232367978700279647636494151121788037119960794128660284761727913865335029690791615739065238573201316530848141779210968366564156241367099677691210164463319256109407423214161517958774857473656402764114708646215324317649714457894467167811819246726844882777478992086659212786829329029182132175349864200171333278292092278501191617368419367874543179910424847918833239886217134160020744850215469673077864030689640846690746126295396614719119457689879530932121026162938599341238214033157618431168613777917106560156895866246372337761573118322966671856774837756270032056552347798278590956441562474836034134909840080517860878968669052370272928503263945136853327030435426845262055229510412256198801035385383948015065395187674322753435685315970723720511093013790294568343358897265509961834031345374468110499959761361959649058966001497964306401698639338844767724197591520772186669406446176060573082422778362528172408849270226720750693698183033665124883590827552256972622423631554884003700009764709489533697411141501618100995922109623150838968340441125452030597113599663246700660272697532260404394143664407604920317844160119010952375923373597525885255467952255032334713378836014335087724430367814473227685525939406006474207551791796076085656752914182108139937806167457830282868393374346261030833226055368757782023957138770939686194535305252302003023076216161137765107520684143625445210401852166222038639149684582881290256673722405917896686552834985524426320543211544907196214882518247406059454093974766006310850799110921256033652271820884924879081855750531309492849414528750570482540061558927537972718269445664823556518800268611868663940790908581098081229406049599897504786160828362095755209342055806952990613570072813133260521818590169383856625620673091681640542183430175149926301299642784219177051214755473373363722702488087990379637035049980740138083814948425763672306326544352247518692065148072409948866933018718690102268372459044323945792914569032904394754715836658052990719736457629796108117825957628376350653873561318298882096658102470120549086838283046244512699832541720106209059784833985742392444438265291476028704356968400313872518268112092126504539489818402523500839168011421192982013443337833565928010125599482952428140661321513365139320476665084853635672573349071943145841868056964632490570692727374946516242227765357562423994128218341146226942488845131442339925693885931236841477675626739373996530177784119790747633016914554070237326337606763829926287252663299019532127184366792034037865434020405865331306750640344724346920022658258102037245769746573899234687917006033511323795029413657223973717696042633517520304672855704703035722020263326138026897241948608299573645187473697520695369821260370432919615769627404542877493350672103847112153449681696741470919295153273930993531194248342387306199874370177781569846089733041650049645623991328493758147509931764386130236385718220697217359798705332348569800838671318570265589957096597805886296343834538117799380659450394612304623088996019025842215283331227093345923440817466965196139967845447041084555968275456507364986267096128209361150992752593240175731530071778159944862770507875303934999340283448240421271644832240788172673830080012180174191163019195919478837805753487100670011574356471178076622950001461962503182058316051021168892512165891687670893325597935433283418616149458346516262316334002261191524531635572274502440755335460526807610940782172667865989045607346366519927575929430465096287740260237002622881527023667038653751035259906666178356833177919787303139159276476952017645265708038948466674356115107160430549299751840841692699938253123993016034356048573593108718942296454432337137524786817620815291915983501548149280356887700441323887557201140804903209551238515779743407590177304826449997030317380967730847038151991897340371283635153619825432520918108336522392143950691812171612904705771233810539462943192292766856839413235713643393729563901898893449915719892732065757831427569290640865680128356800281557706438994736728052833672372401100834402880992384402164569048861228405970145657731958917008382650647900370479163942038511939367601293572522209644009676259156267233513858318920972221798326358524104855178022646054558281483310031204997521680100973782405270222989011572814087005866546011712356109762627686036911464615691698000816532283827971582261504844993283958748983578883222276781281048265976506962687938216388318404883252138368738484401937043741958861918456314730291513974140018151189134401532605838024033837827880544490202870400913211675747852059477176586226802465311065503898433352596260171554830791226122297975421590546122876355466205126629496054134065295116570955228520121446976479158197309582538897505258269011190739497899226769416751561429297465703434269606816781126533318496193959297034886549268663419641836876432948239920696076678949819005977162055747235678584356534980569664235781202362562437544329360720904443677291469892858171788035621952483715491432005514822500400366272098504568280182505890516602263040957847170573227946110014939871275192424042742828717271831106290665751188862910575585192288514573976713221718584406139266182411902217581982670723247346773222991705186305779330618529063647817805361953743659399822568762896068006194140528633143420358229507196077036856989708342196328861127857325971580785398263751011354866471828475295921755614162341046582072857146061740260053011313226220570945556336106262716782511108575611784882995274354293866677923754104276767508641982669245398189927200666334128333454200252906234804967301320106036570437941552750713841870127373112870698044451184440052611095658007332278860829326075470900280556107272748339262561875979110106031892884284685852731931955938755242148953476920224773484369954053989908055444930401049390879393575273770850808289753781783518611305442813812160398669862791893603833461299876860628746419500182986529147799122935031101696443026021909481736396840521392613599099351068342511222805875491255361441670191686509966042137174559822517557751792539879264636031686984528269518816204195832363923204092025066589141371516148586417453312147475993500821240810082654729653586351883713443771498043313263754605575584383956969435448725290489104494468546728801980288487860647651826487098277201027228752688703496406119866662821141942341317495648525737123275849871653530833517178099602656536214707551745416632884265074865868019712261715613755163595873774421820632412034381488061232615748058249001593000170891300938969152793336141902051591058452023873462514793359013779469941517377171619510433829553480867094853946146879877502717226589877104287060185155564635791529133954479327189122257199550013133781654402749691264840565587831530782190831884204499691843557459085506968519195925620016250187992059639195794706718164558457058265887368176273616725405201206392620813372908784067233021518114484020777853350669530923686833413770573417919737982362230166650283074487075443359909907264128183299099195195844002425162061302350712721612870027938998484766695581489547636316795278140817643595581473150001261059728393994329140929412940502782588477358962557237663745933840374850808873271259119974145007558295683997961912479035519148378996430776162175857436293827367205374338199025364004199594298937487831327799210420639735646210226261226830708220683399722615890156903552804567249373793360639403163935868468282469830554650075122266614127305026229723520306964597059330489187685491497160914804562618315118019593916697429577444228638878364641927947271727973712236755423034215230801863951401421034100566240042140681139717163148274607664003213024921578126270429245794226886775264848006436320770233620331067405864487999563642604034585909860547320347812456446327458045026971792486745504011668624734144765601055807370366027733667747965304576689028987621557743079130030852333739126086921425727544181791737458780630093136564681536686831886762481736269837307395292565357608544818435347297730356799602536596284034078999581425980616367675451774757731143600373443042510766364211893032497167655256328795744938025426301150759139991369043702570471926141840379033420291719446148950841455386254529549853609624926379683203503270123850557991904837260879203081025345684262715858162139222129786615353585015827209108643545213477254392278337863812945495116323655235356973417484655124234432755462042931855471292912120370619594121754150682731387681717428394959125425546364193897346484256293563937351357102353195592244341939268521578383190293602967957107587613238795968946495772564217993710610593081997958031677443319383745681269642972146008298082167445986601019630999554291933070556498945538173429189670808520502513689955403231948377955573266342380989459548632554401242995460702188982862331299048065117470376305503782570024258758758680548763944314181368806962428677945803483896641051718503317872674666905839704320137059573438379183071013727900187844871747740855084845883938563809880672390934256031073664876477944085801102607621021616539961237519069809722397965825967803528212682724179749415610960540286082608563913545368926472769825457705912918824780193509609238528194660156094109432148110412947834695380424011451979261924127608152257430902316964303925559442492363245923694214716125508134094744204086905830784880411147407032741969814983355949141542376141730203269095221655921537934647992078557896156108081130371864253504359343948648992927616352839222109109687563365053370670688790022445903433896061899464023783847443531637234901755975196614853947609663930089609013820867840267883323657988147771828654147903973155151597572173641989629914892260122689014316085709299500753098469855757937621552700075010857196520030033829695921505079446998183547473434244482291723542189657991014590525920460231170224614650894544766797955444952889464410376185601591929130938334964582925853625970642065742478384214393012380481809491549044112636244601594621124706217786527418719001555595839695567068589524948863663189986765194991886946097773969319996603592347011023406781330586262446883113498993610307575883035505703085796676163570489036996608761729612682559525107176939752770632693227675775519948588127110599300424375478406923409586258745376973095367479246848244952424766467603265933554022888463942228229628745634735484144247227610661703815575398515606841749352668030973520812187792875670856481263184007144823475413807561296212843136361143040057009128840307474435347261431839811947662977084370165602725890586067135355042746753992084756994261162672473403742116122638084460033030906848012981542841478419841220711171798863671022170214380414533817766053029721166113224630093721463381143805133552861256807401916245102178995811568086500934094792365622515199219040101646090002106593640970960142444541773500071708616375190093947478103054142043249336793542978206935379953558862901791688415910984982810785562576228026107432159569707131301420161363966172643161708829340293580155759727179165591861927653232868261736349270772195917444544587050759485909635344011691643588658103596937079579173223928135605147985416195019097562667495697017157601581633749161169916422786726142493047728985521162904279122573181185326305067721481255512569435408932731327334734772167293920147712708674541021390787659314208045562608462592334616256800101547668480424754425378808822173983683535994267598850956548539115171698348720549641581648747405969426873013440430247377041464044676204715204753087455386599969424259692496311648708652620820522235049449662185109829720873650597909290320677285687636735840638731774966795676251768549778022428585444664332340982967218845169145945289309988212147309668694406546445684687773123865918166650938259398432663954828702795625816962836607512709186839857670373471074542575698945269675673782141148938509332913166797644612967546327822105740028523809955418107556771332669014420225548070942909979285721698758754443212073006877811804532455550574094691686761459968627258764607990479854137975237598026534714763267762037285188983557365882717220639791756726915131449981066959865923836823856759994783532896225951011255595959435498020650316679903584677965087591630251410353602548684317251375532679401486828762997095273500004269748211793897153224848174679083331727749166220848272517999660471986525438803880211440247128195520571786395282024288993098694495904577895177523836637351824044289859902957940949856457574027481434160149322094792812613034276560791572100913095170202701585129100006399547875360635246899558630093508991862604822263034278519942538057897155687747765581892189226738018466990954226908203580875700654830502349170119795387125393304060986160252268721952047899809200197542841246295522945981954895255281959761391932987310676792688099754282118823942756210061157751388264329771392848764032065503387614855852645046981602058278347211929797828872827041562526094575710497855659343028149534408019685396045911821472728219503217109926982497556510561448463508067936466941942145605748451828855238230802522959043067542511333488043357041963206948318017921133111587385991816863315181690771151631898509000952347407999554896660924469876972161530688468085133411807973898859760961863429297050820225305496417016686816596623059156982867928346290880216486260116475922550303859859034140780834422562899426560205938318564714573635985116263968452818561645755409135572403871384421441998774225198601622980258007431758156499898068644095501818666577137245379354382283348500887024990121080973766661917318769071517411151942025994788449301847209339218735720748379007299632266826096254850596456144716882448306003657219941969334459105879595027315042218845391569727487644466180241464025537644310867265144252157183681173773997203977655579985129217315544631002247264202942949183888942145089832028513752443834040993850279506274060491162978862788042099692449156238855993278391924514742599578210125899896478352462240045972128232558920028716923069736628141831453041147027709326810134590516668606798362328980070266782134834193443761033768157816559582053674686935470046545330311099426553430754651695520678687698380437180860104908727342442894650465989226353437253271562199512050535969831158454843188141984301363245805697888173209627827914581824467298254498243105177829270225279825037078712423909214178430447976423480266104728039418868516872400845562892760993553873875660964402448382904673840682963564453217726881043412648845450386890825727794562973220512720050889054731085570232905299449046989858316344914752713673513175303786330200400066314906284254440495073180985804543262287893363992895068340276886668256977546013682336012994756732563351079802997239218348412746517515051367387637645373777122529019848100443852959893273552333939912317997352187128828519175355806049127604707452328528622940682453175306488981181669769059912495961453896606900377337523936915787091946501290114589492706416099047487837207291779230332671210220459795819981296231745123567783650504572591042807164084143431676395197508795499893144267871779501394240708136306335198886077217062340893070087746488901147735062329843069928114817910169077726895090099763148891904004297515012246152038572094434961880275670873535646221237116811141247869169249958944646450185134225116687497244273328656487032183614176395408014434598060292281002084674028479933562995553847765343861410319054461110485959845429743710563529847834056772890157618377595140000351447398188897037926210692136593200220854787211124480991861622221922153465417646497882729278879764019152643239567952685264860217438149173379563583307055946074391529688584478295705983629324867941003875703082225959374382313462388863646646690909399080213690342886579957345032361570120339822712528316120038015201008402537880050872553482969691188020994056972019832665052501694081767843973061017128258204582937082020854300977769134775547772566119104666730566111977033000795972151630833483405609669663702045731121439322150925569892160304008460069103282728549690130326248104346647998327922650781367647525487268152893423091812025330713418377548942455874415363121650866735849097849401978110213737362339611085859840242215238674600125585980294561430767662839666996207359248817424232308234447533797169779304729518292447554983869770951829621806561842936190486130247682950791228398999236530028209395099426970418073071385491645673478142723672490032200216589980129469244318941467755801798764683864768259288217078736781364575092040728168033111916027670303437987908215521951768075185488315053678690056605072120249580920165926549925807561025579938142909599599231208239895849763937158952193463752954510756931015980467504271955186046682028389463552804387094196606451110672999567377671432107140511328215729203640750316087539278010923381001347781487897228863949522648631196454821933199622130515443216968245799801166359316813892768042804508171092449704763005699010691349792825832727645014665733954944726706015786587856069167692719200138019546232455735698943278763027013663000124109505579351221526776541573606066486472015193215244673123436867523831104129334425253072530054529184683500987831311804574807506500241730293958881005748845772875697331479921903602040632904518699606321744759928107589085849193808439400483051567946189594889873054023438651065476433131360610172131898068138110666588644472441853463367894493512662181746983770844942893662190619698745757668233991188367478677486480040296595732595234078232852394346473878780804295166959245553746968923453785462532437820483190879715066917372471228259282123827747273868258776168260474660824455517846611404981304046962957458597972001993489154390233075212217800848156815808202618603759269757038390231412165217237504463097087090024885677312604173616559467113860817008348197019096485127172111842251392083980805959520620994284645379255258932775594453111459005751848181143029215783804631939339836201299221871710427442122609568443575628518857568530862322754433140931777143137926808078963045453960226250293913731782063158393225237962160266499529950926417881723610484785239996957906976168877459066363594206496742566309908754546618545034691519751096052257687317030020095779021109677633719604964187866208039529578944134502287267628062136222549610010180946056071575160774168524593869208063800430868109991472994256200817041229399631605611893113164441917050465306714619760257430022061672296436276460347093294054028946576090042719994385782826158112569051710142843506253144432609725884244351773324507454111944538108455258637285202641624301628196897787526394613925355645007531326269571890785634982796603576241082309403159378381196490477657192159174013009225059489730920710505310318443319322516162624886483230400329563420030763535745205205006960120227192251287806030096609721897876060683164273474624974020769862264536009732734732815284284634240152066042055956303719487428053536281435834062675919893922084449528035883604728916778285073299279398570332666800336163666020731417068851459050684252481547583761025599811293925089767513807442134724886764703690242017745110814481922682166513193953009219548994516251661073747325439646134466643154488996058023718041221716789008239677309396192595535087094255787580858103513824536569315963449176420056916117149821147842626391667832571285495868694679632095211324136007125149067391268554192553274946073176090027186192396039154411213450796955574369804450594694796155704928236742965159161261900788434558244156681080528134734798097667490929769322094146331559550535245914086016909638834900574454612101378825003893527595442474636120314073063562128327532841679236716583977175261305888737073771395293150872692595299363795563255535319789655951595448400275814770256296115518152900110642405199802220436514256629836764203254643601876144654046181338618152127019150372807333208121464315053300911841399366618810431045976573859072429117836374578040997700078780378511287110265762232879173982503972134207679292549074275229442571002673507960017501769130469307066281145691872529324334445165856603711456486245180910522181865622560231831659863944832886761456618697060943163850588886543187994140178669979234520941981124728888620962313409276779563781543188114150314230933885678444572439458902325990090967616568999876594472904508781451164021428804295934494842647675352590196398862972709700980254576591520194715279430890477950475634066048257549569972837246224841261063756665512644696321374328760011138082993145443135829467265320067395835566784483414418001554829038206362302468506160331408710008731465542135804908728043558374056548780866476059434043973807735712250325386672169713264521459787833415191031751861363501410087976645306891170674725597210135026720018982433062468689852917015855992956992561733561450230867277957934447321703035218749388295263212944729507306120896796091209555152926394004643569456947938006198286719627434660125598200772271590703538540377037528064575751430560309408639354528589158698051039990235567791610990891114378554342849701088010940071390727877736685692258440525394602021050843885879807063212678479547916529995398549625144230048979436180134541866669686182537107331350612695155544258690119150876723896351819207522825664321409761232935240331401359658666309455554238649987549740986800221245317595013516800416420667007809777814639701117789012476632159302411881834638933776726749652836082317309506530781540945902838986984635654202024077831755512737743604422245041907319364534256352482288349986074646642194796315564867777880743480141927183068665026045547346045399326113291427811278812841424963401047613769960111173575065387701674742053863294263259478681251235252291976998125911390555254760944143444096397751065707789937525701475510054578011335411818004582010638699453867612717865024308309198121279129839382038274149019803135749040979667087802202378250197381136897327006748921485500608765042085774630052845585820828950889490095395222861820574692065029679350819173930276849455016251562998437285708939008578787452995538135904602113096318779832971235397902272531518068475153791315986109113548778031482533238130431087510023481785373295613047476778942604678542652766332433720067112995469843627955901741660595913196939884358175911137558707023082281676369294382782189993985943806048925673441377907402300476753562098946279018805623931565857619306468837726396259466782813632072313832047662972871629494597138914694039585852210867442601663132767644466259842601208144762097552345265589817208199246046100649115320908955818378590231152359440585179462119405198363785969798731010497895768802058595177171224027808231328923994667052515578088489609578867769823259613373454865635114291455847794220026181262681134807807335001936850206769397236523308055790269928426605523932573289526367416884703861647927958582983956646411528526372448545788527922807304897876974680015350593996638383367038565592893360764261695043754112990690690972785654148505166850587698227470752920218592064035220449256947725718607901737839695739639725422348570210699169504793535153097903944252299000873175093476943978410020042996324887479825564496396385037979380049161351431985869562676834432527158674214297541691242227380474643633871921690903986272254588542184133390469354307324989680262563765904061345172634295677021674958924130585118199157951654000701736438797949384479518963208448004556792327408536546319380948744263161049657557037905272429280553297782968311560177045812101654473414205192811699702588697010742459365922698603422489355362791093161333424884376511940874750234977489235321173704770046364967561919563403419944550032402697732362834410294515641216405846933050396401421271983461353785888792225544908390762099534794787500346041482358303007920792581865802756368677886148105523181340472782714544886762017485243490462125168143569573198072509033474907519474554210339148299261739556688431787764626288837616522071784681766241884137197773593729922529995759707573437356878973356986027984732110660950765044740975498913240834531226928151478528045631347812579825611707136581239149094783420092483410318219136396434036125419580733285630577314693461234010268950427610640832077256256422901073159324460946099774616192934457052416925462441979917216973677796090392034803291789261745469955704543581019611068253693625261360048819416800566486064260221847428869058646148854657764800400343219592273610758261615653741087471951106657470534196072343320871117721622074990550096558589430621748211520955740065332122317420775247550769104878382725298154612092956019727675142701475313919833556269090333551490982287096412286766102599566397267048141549917448720530795162322633412233249245011761044327253457787876448633429130649673879215154565603082915024753307205700860105168689318720380489221922659742525615681394635747042533851728034185054608334410363173958637586966361568985900446960253014004534463506724979227605620176296406832681442770335842898494386484538645792016607647370613325957420010970260136956200700470047360015678052546088341126889677371159987321332179304839229112848059856338935243859942346256473869459811636898522153101437097934365461117690352855351558536239400689819827340193166580444713615320777907535053995150434085975547839399297267953245135139719153890269153752655467965193092793664638269662456088326535744631684799833715985559875766940614503864765858013588128291343197867169714647322230879478009333010090037587330963382013197415561686739916731364084092161319623017782325355063506575069720151935071864025175886500553363333484450455622617631837534531047749232535633859525524490906374045360888312892317720763083505134949702783790826319788463950437642595034966638476071764481165564787130077294855915205106316666807022867620908194367657056138685557146643107642051094451935448559885572702937011169991001988425606188259751102614204111613156598843229637326797700760705375186091576644724549127646749616886158395257137546485774051459606156495120839032493551901335180199108248360922414967643780484356325474379049789538316876443443473913879274223653552822751488840744243224184330091021459046685399697097066834491787697187369512639294695773050685253385628968467445079155857010071037866213027437570453228370464942609214360785705093561018442170230122100746451445376614000201333071060386595526284436363100683851468739324637502257735445998768131916287939848909492212068691725744394660001712998704033112328988365310998394324800793461706328316822161420352344787659804663145477430486623609459259566925195883125149321059532415750551243621066992858297713328417384558743166934610779699772929945689231645219947542814655735306987256883392684922188815921649333864770802571485665363682460756189518870449620834360080997451554226598238070867017628512540450037987437089697755886008874556207891481791209793207649053514028758634089661811732710115286385004756513972594458323457968900330612259622212849427823290720558919663727825991786057944024273925657316502421672239533106806816074757898167610782849141894914461702584230846866424375557508566834633661855439254818768517522153574206557932305859038781204849954640749759531014169178229579221238358672242219687803788978412869803110014212523398293720782505466411722859859922060075446652833003484616695569317357671794732857703863920624238031047152330420690252524199606039427085705026145159775881224652316887325670333285720263162934159363915582177381842676163270785254282114196347569359463654113834914879167250706829418544870846305293020960040373575447807983636664999156642922898545264461210940881952447688465374092859281978120948821195793598187437644352637467525276792877751473323488100380955228451739688420679778205485231163896871221810852722795048295813595676208747017774890858192371451780654143103882872003650324015879614777338428166665671753526610283862847206771812773229841133816771270962028668333285704047587928127922386074712317205900850720622764370525440911974056036946365702387973888124622853041007023368484488889179347170455397721263226383515627172444543432494801354014960582362263475381136767074789252127104751255838144305840690332801140750540751341824014303394178789698477951613873997263391170532434459751189938923239038884157034600716545065809899160787602122435745632331209502857644643011696900485643935158411032279588561175193448178705905334509097370882097249657829623350595203085082824074931283033326375265698476186338301322168981653321748180925783436129266226292950753873895047609063095903493274207071225045905471856433765913655886159991440750252071445037667552753398341617541162667572646993628217735760606033240506749945227672720419932675510645027920624093758628128284268195799433423390268557731004262122182064246432866852738601077573297992156017080501140927214093703734464640538657103481542534299604819761276470895247932580297835780511316304662516705674334839900811205911129740170027784630418763924532044067691623212377811583301413453393714595117769398429307728602873392203946201216620591174536217582172180704403682250526368367659856673102988551691422076001951819698309818712048768801001327165826199830906792940235037615210115213022417598230139463702425917203416977239429055793254034986271432186900135482530162716612327370535116027641799381849545980828470803720775649856294099092287265812278526678011678827379947615115701606993466444736400477608213927974273264909352371486927203674985769587056781436563645588648527151086031838244924924313155374697287744655092839318333046463931637394431192550455723953954260981112624437402206874112099516478806507693410198215403173272006123863412792172856966582006309745740391053433120964103476514491882892259600162263663378911505783523365400815718688683363463936286139157571547412725764833231829690026682135735955223373744270313314981004098743483944214374880010303469324039971699775328053037342254181692521528613044829632518796198264652464006673896310653011494479050966111121990971391272300173534862173271875723301658981452510300827788686183421465654224391845369728441270926769671013443588876521042082189545284609629977473104626573765429774984182009942546343227189964845588874250138682803482208137381123218309398522987512561493969303783319057188100942984198558401310936826964926283007292873586330938561436922416508947614168325518083671784381302747469707966552220945622988137069883038302258460092541925440129703606264604117325995710591297369548439788671239507097978683816543695056921176367855996027021227169472165757433731082622971557444682160923179997250069401185182710052887426524643443082767792492235909838063050078138317640744774256156342437324146227626694766389407805802237889456945696584265150676674852345880371974956747926912596635983802163753316443550175067780464323127106664479501137940853421372437992600521139781250324478485673223120882398758957789866742074694832299222298084149398405683951374144147936167323823268878782195025988340062377716167327292241334333073312603944830724329458094277881843383940646968250401044889171894398490866149248937707871923301911505658746090803690076500385295098592430774779409860852458604541480515225477941487625052788126457465860311203631796966561907303641668942114434333861056770322519101696251405306836631531059695700763175094024923702080278853007697059913438760345650394247445671406381532902792315419717953542985432924376224282834859751934595589446664253657634862040564750320949919455030967982715458423527743075918684712962284361749013137830281876223629375947340109380575162779360117236051187469599016298041087407568551108076549451102554177105646505685493028376497213327494515325901028115514747485369332086904268550587409635010286160332729192628864418603169368078272223694926911951317933143422657518622836233961781641424322898377817372523849284810095486073465322257961191205740147657679960270407873498098510962934433052586296468965464632611532794824551943687887502507581626953970147295442802359921129616745405658686789712922359886434156462829397061071436388685099232444965596762537226557819483443480900032567775500137789134692633136488429310551811207904850526843954401174586573550789920868581036645890056680371445265436541476524487724252284388173755283508249929010500589897696548369809316577382918636020830448043674041153874350999137068387911028822132493706985047690344992908695386276356131021286018361688794346166105449479689701770630734162395249648620863279716616979897312711414705491068475973171659711220811187098071963454546270852395156406523056038296842855908275730928688826681822961561305401967819383050970576944092533672272709095481335645362576154769613126266714441159942497079597742636068947498431957383976576790787243084033954017118737850964545252222629514791421458091805070357528386341101930281780925510509641453352905323385881374003113081743834131821344780407632848948893639716775258844501326925248195389350985151538471939162052904140375455985870434974087875883702070891921805501061364881915676363074542209946428779857066362593634143277187041082119895709899220706293224582327309833893887565978638481538970069713477197198670735700567146587184664744311459720702713408158640606339479173167299786671076523792366658769508305685901711764722208792279975360582566198897233874952517320333840473186768232080594610860182746676863900934840868857454929740109352251520692705901258944725967585103494890616247097085752769199167889463740118731351826012627590790771690299251851776901679256417242839366169990062385982777206172047233153185634614956789057654369446976155362016035871957116166557401539959855417689185333977700945340494612557770424185994568561757187351134552908797770003401517901572571213366093470355178867480027516243091336580872136339451475114550855710584237770569149255481226000851264905052767547752816442126335709984082416735265987134174268174771993531240173174622468509591699029440591151829734660376701750680158396573127454816784585159769213151304856880544298435783575321837251549931637942991523009321057745185279801354555782562238666910641618380339114535862118366763232265469133248786057560530965768324476438626076002116805599285242265046091985500252010277838195587368042440655916187714974686647548728783301542407541447406462191988447328799889696500130799003083345806504285779612987054713363354087550585297080183712331911382280255313827623132459645326331375505781318506704858251819091900788622623952399947218083406419924646069367424620656933074602676386491944305195976796760087510772644237762775987386640007336121783191474106452550411257116822699058029635101126655277898445570092615835658821647698309617308635736237642101375466625162941359901913515727292479778642049242196120847683915947405959206696853935532290972406798909659906034150168376039517535045840622928014489333649029105528305591327221317262773211165869311702024280630095154301075967519768760666344964650857545101527871274593074101114930460049162762421183222908889565565357370460972118288867585057840809240602658823165214765736271587056614011028284732368717272566103249793132438739455389921729932361370897256108105216109190692662637846054860279166789264836681833561049784924499077079061634031503615204436037194385981630151614792348162450981912579156714719899071748858562801415165056903843053425367318237645083071302690104988858841464067733960894086232355507110867167392559885521568271153812558576936908498261640655495267570371238986035217543241319831401083007068052308082683102920134327903902942214987621163920116989567117290521823302878269091072009038539932772751095743944244909459495532588628947168549626908939193048685327730242369008019211693917886308487349095252368993638312682080817030824610813551770893056355233920643416451382610208680566548326718271621484621502016496079330818251525608285475178929604962530004727497801272677106500138989798687709396046878086190928733022160073774345247760176125268112623418877921741251003617852587677694884501048642056564419811730610136827374429166573666790163478493038010132888647537420789312424230552683708344114632024379462620878043513264551318774558679509947655592542939013929529717414976245063922178030941446784054540270250126651826730242027034126334654293709223306271487088241598244528522782084463712973800808640200728612744740927821727842606961821073371656406393282528234305777848076300501388374938377329571712039545723263158309389248541113844070559181548551434017698974486903461522408707189352338760409726258190485481724214531252353306834517508234765264576213950202383042270266787921423906941399007926824497919669411145706348006427427929708280688130531438460622863207057915030129095138403076119543945503415690229061306448391954689540630269161275702122028321426318863647950549419506811038625031905882606032479129488717393751972751553738333844809714940190777583896450197350520556403167822971613539777456375307125430762227387370022423579727162592223291267951063008374428112523717228381077441806389773282880692081731064034011281056012274623621112077264367884300035963414729220524943321165640695959227204027020108724396155798189948274898244582768833866124263812342615233447881537905176973106864507131835738293307561198128938054268327912338256430053514703696578238277894087028222831776594609284914581202369529648389391438240668609536556288188220015297445142038337894418132205711150137329228520005389490472042209685166923100301987516965813015118949302359552547001167937158370809011692714412163711826319081549778451146559866988001635574022215999707543944563065765638065040492242557258481852554990104978194508198581408229230525868996220870441944571097170373190961867982755190400921860877140957091312158779425555825669753433253020561019106218094327762544542420362721250958545545100082028631673619482508539557424107967577573003092955374475755384875062419477316121110235842210326758131234056633699523624626409411938333089099120039586480130327240834940096248467738270424250686902415629692062059638649714310734195226584411940820396421854833697248797551963763089308455408983032575372077714953315506086447687386563519925529970835429338164998409891380373257185884561773180048916127192302880526314726925477373104772410693108057684351041918606921024356563147928928711130473792179006356417066314407089635399231611633488867459089419071449699764935065802501859108515947274801914591702758727992499277519918657274541112780632984931579615548160726882904039797240909285389509310407655632579000765546240129037961234520522886005048802223044976553559399712931706276856122157743593062873794300726304624043222904591698371747805844152167018451906387313740905770070950925793289166472553716467016844207090619897688295062745635407860869307335818159000443485981499566596802346265939352949242745344594563710360931602698315882699218057773950357399601489606758484222002140749195418528655460784714857514199215840355674881557324976550197217855350483033942775374200581526578471518242246315734543179472637911035126543146188013380258870576257415657230450845930358521346253375980394559356118007076745360934052104626434613732049142600960910098141223506896704180182469865357308331503699313610584127313709519290605671571368616287769644669283262480467339426737016587543378487096301727224611403074181523336573104319180400482032935790205610178830682582656018470500959698486240457864269984483550476149524506668776413222502939952200490917958910103440214668717917023219421853499882799005586119995812343419308145347086508366185640061647830246969931385043782048000421793097164873092670923016969026040307338957354818830998669095586636236631240382630041269168528248237706303720826219695186231101382604433863865639111325788083422727200019700293107096775741268172436117839459939442312302238856483434981658270464196762844779075833983299096667956670173266465750560320353185882463304770704062169982221529493444658322368834528589615707797622145734697317735300223538744880357265638846838054028034510331235821696197735579402336356717896591329812492185980148540740309151875431988264346049172304432736217562214143381211212772457130179224117297127258958277744853173489779588077988065384828446575966384895477519487232483265663970100372328751883331154662345349166847669304471064388584241115400672288466621898206962370226322184079251286994817150998518728150306594085982789835196168615177586099015728393802788082246329865684408319328301939998744696745212096502548427931486585780019227944627201634741065214279978053499310775583145505679641052947205167703535835812003565938238778353021326005841361539388771982002144001945162727815537849156394637554862188713605996525863486399397353316681174492000840046730018152140257811183765264620720507193888540045494293495954976727166379586124189333846702180961009021998129152530299920832870189742204739338047886616125262563533356329064880541252877340982134077491095592684417730732449332914150739643506663504130468155871944962301115855535061509301536274559794751977971350070558832800305033627272086107613642138595047754455798476380965249369548723215133967399352525863700593025305618575226916846264147585557526040636448489946238280429738575629728083610458466764657104613049483521688722539985122213240591410109584628819153915722060327331783572354741911260133548506020665671652559657995578520936062705834700000528071040392318539248129574906111017988537495209696616751898452326354445622670539323668884779605122702150532546214910999248676693293746700171835705539127142194888499868561302377816859423314878613924124072580928912750490474965219641733268607181320911444115396753522417560874874406999118424788425498041607460465525651708587578152123546365154306978372848147243479071782267107073861286243373899523124841872768213836278670151196082709062024491233946919724411548193484850808672122074951213017318048118774101980541695058210977321674020777070303698961429203749838166654375470278667889634022277044690296175725870649915985004387583244958807148550200227651984223811203661736128664081881964897177310902285300083733730095061956014745335343920095078202332015025832001959309799237451272374689658903382276886185155021778972474455136247563532881795767859917531108402697558646466840906560199570744262334726144821099820708437144131596476946968029393749863124888107414330985621462391553609817692412203176281313346663150881680603536836356655733674310742754202006433453531616204419386830061988288650025507349124948170987309090709155741362011044503067461300994092721616055881443831694122957468732128655764836338059882119340592696146281949571656813136212575624463899977610937052342976634922577870062319216760129072436720791830982369893822108510640700831323256970226284171755541013330907392516861589624522018251971687737155620055679269176370894182856751474604097856118805395813244655638177574621786035457606782311968223661879927560260807500706375372773804254718849006956246788104785488775059187727466971717965765849118663171903268316446979313763775590264885818311876864498832058845023144793687530139530856286917017073291519544490694573427094009210471654730521466838807403215395220286591228897059663690741055580336059759100494505212532043564987195280961853750631975810772609039882363065227256951372256165505509126213464903796733948439074703398429846942675437602996395134468052585622987190405802839920214749047288158133607597027521391475916157355525143076638261641909285249048183388846464456203424640898258484651637241143539073425980961469916221295462257423473333769549117346831807911334029387640458861317203078747456881160685247807893588368888785775390627085611259967968415261596139994647847327404462785136416537115633524320583732661356418581055150415052211966262469609175413405705130440992826319507971450429110822604562698782007042447347722964515336590210947489370480242275100496524667998171452519438983103857867845906538494083584031916004478591706136800504758966443091605236163976115575032438212581275290041379760586279516801293626281400733713924296202244290568295142371054135432312034620070039757842283310515291170609608218516553951923366268115031898540175185960876014908343744409194573240939434242161208281958746256654043448413917158943158732975238102958527760282665455986862615487822933442152996417210762972276144457882074906738176913180667998828545528502925586977085634930353984978972009318509999833561697931395920287807295104581685641158903251282788151421853008575599603779828833930240355591446681234970703829514019724549284212656075756263958491239689382925353763701210642487778332988862768589715409426392484852215727217295674581168505868607696872597033001544929007946431037639279585610273949564469657496529570582274215662103462714615746845836739216286405070889556848465793480653259273903144740312516558656998162322508544986249129269318385800201339513058858545483088890475265677789278048349179975132397251006406678352180294345803782264801570451930208789623013936490094383315471646099930132543223856412001493488298951578376759490993572698249447507220318403486994250361893714932345878389544126565147768911818097359730498747237514467157715140217743052970778475140680000026082890055651728613414007796821625496324667188892532247271483375594593356815063547624198152316100453105792087739572726980615478724832956041216615060797562854892951196427613167547315387082631511954943944829180775705728826242582963573005201477535915363350365751766051712134823797566334809359353213820449990329535417308814168684145721267545318701531550389223170565903940294087262046897964295993884393552785776817716990761795885896413890168303794567222484487256773740683367211831368543380941016157501440463122513397360286650499710010630820987031185898499018904317589133763142665839742910429753587363628915816602082705017876808448001925744399475072261223512881767252090123748307144788314521671407749960775579709888731444038922806433203456219854379578648030097683598019216650324694835620799017011474843078443802163979420399169457665828360138674593562180747053439358705351751442106934925141102457925309973252236162513499925558625968154793234983758192527370800940276947449014604551114504017669103257085545546160057630620100205434636069702809223832609314575261370618393157200401569166297663647053341243859716711903035170131470505550671976955705512464107254837608619418374774514796770135477704556738902569056995089558603807207714993855978464281336864979172475960131586870545487972168488068068809651993644360348556465636994332730379274693751690201988811708621304304115443947796536517260751950320810371546824068760037003137857154119953300429739028813934933926937380458040629286193541411370811022930431456241782156203098611462952909614352943505676764345162224552806762977992589626681721759230080250676946326540920797127273796173081297367284982087470733765184936884917407555023762856226058523148153571913291712981261499325215008853333089913065133146473546744518252997118905082268849310161098654536255982305297496867839104791300101296739485178062339490921677041361131923909644321091086116596039676737625033971386257665715826284355912058058924947049807075816271585340038091058581036785087537015985295319810297177487852924161040422806787935353192975308775966133796723398113931165256962695149403270950085392586439190377654715176644200061826242826485473596177176283862300834142802858114041205799468550981761553505166702976067098381061975005389617389188726393226576284690304079937875989415382784372392360162417189200523164164521835417699575250349497669903594303362647278364684788797383894667620149674705449780234024864596150953413037438048651014364883254138792114253094550564553945176855946077277723672550090938304908768383636382653131389870657000253058495128221935236201101624075737163947367134651377256407156453326171571568643116898311429912560063993844226400336496578792041308552756023251401985919929852968177154043473753741404919570827530905630411647256660682968797553944267017382777323042372486818691214356678172067736510773752053658533311716331041303661551141474123296601432222285327018552324152826829924210337350255073353753066745049618732376539216910574310801065317337128597255696423615058256972324484906353244126053654543184243699364379815299884802973106149575255065398823745527867748612188261897012047475568289553389648019534498938499395558949347590366978482835160331292893897635505763868175179388283299538936077004352456326675620265455826590589459255656815970286625274761609201057366695868651244492961123039458679816936349194341642521148065417894591453111916950243481211686998264669889445669396266265156818807457313007185058910325545644045675973224994899451211840712424840956437087469572686959774830878656251651086677567205617293306503400690055829923428928794978737126055107808587324860332457886719126171000159020834749566051826814877417733649388165710635363388172883014726908171359004666820000329325670349927828081668341182191563515538989349477923219920978204856566408081466817985212936601500627660004062100794911727970699136500593258065306719760228863875789355250331131531636525333801573458544678703214026286117098507267725956635191571448544992362233875033711240583236191325997396496707155261226954478419088607959279168384093967919616883676254688798652118220672228371867011209893683407707210723222520591068608172384933992299361592534168787090922820986673216934336684160936404816748523002079028247745018371038528964327361485852941581570294697166062452697717393308305501921527155946077747971053430004195422691719674348982882013876390337862171466760048321568435843584721425417873005436302449222785140308223365402451820324260399166501805238617436104863068894387129898384440085571622942177728089997916185332139950001045056468557842232553475477503674654991472848176312264019992153456257600039979445786046547113261818884536712664061258579982681119948416110367610351073435083604222596040628658873094360685104443173929120034073362895142265513121201078146602054560740754877578660174425052207817484313058203631264548897311924214960749898412169239544750762206948990115322147956780790666679240479966618954897767642852285366924674651769915932158851229476886180744196154278790586777059145353640989611561872737128007525649774588157655133301134463089940079924590669202596622186962238801406970364428447488318571725689825221682170400144095104500825919962062759380743407401327573366578074850533508769112444477725330642188426958464409803323873360580029145365946954426888976415919456652280796479563961392169783869171669263586724785013110612387818297508567109688611230132449659571695478474791980851096969012490507823131842895602872073208295311260444670932533262070036349137679771682770328379958798007695922196330657380102926240136759965122028759342040060633328815050380665537003346798048425891562582907376041096756580309516242422557921546047401936948029183123903086921284918700491438691798764350965584151864783241012977774723119559757938892765974690421595922335121538798780948569554706115168325411198877577186860823938036986765616824071634064954897129527722145041203554852246905822315554570745705407971303230495266411837595377189690149305878581525991161597446888498091139588245523092417789309996490292442207918847503255474642807635349479816621255391145402610280987572608217519092314734102364646757605147072924457440140634828469863633975128754406644658746642858674131626420595574339615375659368442202053309099475554282252969028503062783604278638257525310432870780383090720287981362954969330144867349253799207696256670815484646298507754162186373501160497142636291861370187075592913724320771327564388064915733583036964119282126672183859127231965945123939762184663713494955549504717201646014309160675289686427958304453189354984865988069284619911102770268553543754143607227358911391919979491780883638427916729934742083557222482013185430997082856399489987183305558754998509475240568656587617417725992290301083366115244183414175816403270535401470567895063921827988038890455501059837972228709754104004449276673146658664574909296645685891095914659516307935361235699830028574983062547478265483035906587114144819184284465959977769002507234528893512841092824644084008890988776419611378295203951800230043841528775473297653857518796126563557559158486793461777520982009960072080884932912031937439411878280598922964144797272792460391018487222780929872693343646520078619491254356002933401472125388043453194728677007735429088799615823850634111851576083256912711451680049200482389444010501301748560854347257346505663148241536110989006147050901995856231389911031603413126648804348595748516692535816108427761935243576801641402397027040618348121875255728708937478947548986191145402925344404665961756852538013318138864145201349001156370798543233233731936294542785900443905740839243130655005232901287277232532233458523632033229761153254661941750279362842689534292901898498434053292239161321024269904656220424197555425071211728967928061613783488992098322092262927742607735744906949791616239132388440968126300604187626011280846076963451844632148067478768356982203174805649949922164491179767815637266650829926037351657550197391323003511192471464490239051748196887285686002721802983714271404502044158582622563229085858624655146276712832896334347297856126151435993686684181616373109610905345862494650581432769845440179439600463946653226612801079981223183849638601963760856020426529838096659625801757591540085252563231251578814477536197103417456810002653406671268118386466203109789151116400443119297534967011325027942011023615262852347025639762817021657007519890347604265931827837372038016900105980059901555610637263332760352516324331098717252980424759512072318430043811789231519140768330854609838471738411315205027140655260346474539699571829754782149097073897418667195868190891936495053422841005784409719916649937547001794908813505472249867643678388500090737491972791090341869982449444163447447652748510483578756075599207327956201200908836005477327632153456163501258362945580254627054836031181935944574885707724283698194037104682801345372547733098309515606654590772876625134006146503578316847670035133779961986035883168829469424326575041951379260236763044121430513948238705874549372307430844252160439022181472027084430447204968621353883909681983293493100388411611706504432274543701477280978441203523133707529401434949935731332195271283769925354877314225721214219687849892438950791982749131881554188873062622788293346407843837944472551275198257724116418149616881799699835164358360281968803888131785327605642083900699529758867044195789664436831764115391616410391955893299892625290859285379593554068572406442421281168841313374629817765138166774865062362089959582701508022836990566446537081791735115261846631982979077566652782994644304800312202406233631178728307204387596350849103969729869794382905985371798083522587906139623719699751123338623019590057626427648179001380834376219595975659755873793678579177657997081093943690543717470395246771887718253040753276441361286716288894204791045453911684481568122116555661951163381654087027483947415525512702551018961433607194045182197962081698876757697128171334612091830416613430332741020971452346536186264419842363243729351646348027940149155869774164126228969491554932135186591404579776479216451980741030659177762166677102310499025902377878002025791166472373976207687076956336574322675279040682966328226916524965546815210142330409467876900465864556651323174981868147789228318841436998247579103967129563231979618293010080835739976264870255710273953103169137949872074949990003336716469231325876978709452424884716070853233130654050795364249021733431505487941452648426873870355706614287660219856232831073754895998915052812861807367156627906923451714161684589258093364875228353740496615811373817096891379859773067084024465333081818105845813067062665460924196143744563214564475836091624869154339708633884433948347195630097853642033978794864930708693060025642860792043022560380720054709785638997590405326953126878108679946427066040191719243118863283376446424011289966486177400200377094582904297750520453369073991939222277109658729382152576973607010157082304003639864361725520598438715249228201757203649883081398625806258942836307223730719316620729865821723176393570693083051552132772892412759760143794363889608761100232147225054234594695907434463612179020422422793736477993563443281740675327010857918145775970856275724327523529607377362986678692732066529145515348919907474855820651617181090549428468857266650249239505104377229698075126324022180843625524560970155026813038665322330051679500652412668830951424864070605854642546079532350413011093644107533070151226514379755211907508540742388458100800251254150705790169218703888170565830613587257856421085116065810813120519584339237537307691605836373557912656708897299350078035241104592460755355356378650481694691859697637703892476369694118045581774578530590138885974421453361637171386314158258580746932774369557250107230718190192568672089959978717787834074616403325385898134650431328421951407901820734437982598556882793111381262879167979169918402176810099170523016736258611207158687497243437117220663032117684638758326982913588253190813111689442916810620587229041755248855597935796942083502246659846781071042829603291503720963546022369082960192697977106911756503112864446295039412543981828629786120817122440664123916411596564716532728979001303903752165164998504522778744912200370362448890275355626053684392092229925476838763256175412772684060125329927900519479638785474882437114723515280791153659859151424220754500264792225403586712239990110746665266116347622091821892771790304072766256376100026995408722057283193493900604258621591651768351759126787009753165146530639746958691474074152094327453799758875111733746454516144516893674526585459506183804818669465405207410522762618419421069053542395041145049307565560427009694243010688985401194623190394906217389371787532150796397871533241746473629423229316407942245018034066453119943239550417520781885623431165462822771712750517630492509323926118108939549285407915983404175000504022875321519713709824307454597695399754376063925283143492698987202166776083724692260189150085343092795453228989266862547337657023470452455718300818834184156759456474819822328704702681145243586378288446401386972284674442777699482347576402822033864383445356727519015307276629893422258950286083725408037464653078184119570485659071754295119191200500237892868905285270839731074836602619337613003980331967395111917568185076472588623237748374059174215489241103538907536842639859960785218541062821380501048398899313323583437595930604566474879425275511617116417789389399020731341881866136533944687235966856027390774282098191183941163922100569566369357394709248910573327760720952392339597696223815431390783557956094387028209288229858034611256029229680976167008240340574880346434339328258096640921325850186928347458158218691436806351655004094609804143002613774626110460722715088790451025861425658877145657377286296890676355159566238075253192159897285241823680753442536342578366433681836770502615340885545600988862624630680627796190127392551961362872309923152278100080918368269185663973262946963477709681672993589112091869163971177982569947693731136606733049935336728662038040774062120912150639984483645577659863483260742105580006450459927851090935486594505097687606564582012481598209180786964691491351344777340952563157395470104565642724708069472706542292990959823145163557508514602285662424010010378939166864958032382193638930159299935354240146713550300784973856738569515103399233753706418666907364083838042297213633750053898513959470381367222129162363810700195277530519557061712186855269657663523338900977804027757088221449297348718807112215848887974982501397449289071668842570128929695096361994961374397896866888310236745938706637578424864366193688436782185868192908870851656443074145667573895517521009385722984503163663213869302061255061677538930376980972187221523488186291311434897879383795629271100574097940879834549833878441245145491621048246904213500119032066559760921512926694178456183066847296067562408271788346293520742760863338665745157458696836691320186214528641952274446390583682730720217652290242223673364479674170544865658106267783991722664287034226949094689860556725833737874231374392609112163329351791846881967923370180567801059893954819802950269124687091515742614652123938658897420372689628853659854518392959477390401514090906954809138352126519362606436208061090819067222586049475979405154107152009430123923788823179110904225751304705967170606002925391488122142454158664130192629003277252068158051101065084622954685848954894930516618348786125781346519301379512862046648867900127807569011007253071378950451975494269036312678013682540329649040126943370664102985564307284765827676742626439409161143712326801634326040513091473439935590983165611593180436396650743423260712923123648554134344004308017673719528924908145975425355104112395164986026085448223849393533055747643711811721152341753714372876998036902077014957919636506198256195659688494041721960918305215564073039887561486508946795818181077516920922108173157786862572123434257733778264698006128468782230040649874478807627382368516217691647370271598580185030370311953411596546526011475552251957515701090241978675076464053758295551781461871423446900393679289514420230936097190412402677737883082777085874722399897289990382690462388738462425635340755572516356877028723513755023603356809015213691928477674575150020069077780654884989223518431627191578548497831969072050027982899030312579519631289091850240649607813359453231036165231655518484141577370632838013318162830818367183786987501908265324049810619874105397786333080762654364377812775140811201856645569940130484727453855263114338632282720818607046332275603898891485871759074457447112612031544903868556132272778380784557779532627500461010331332616753391969940662661606764640462375966426837038493462577058949022750301542957413334055133571910694477102041504775576771161945820949386151972524735253733555966283618919498772401746564644121194372885300503176191011936951586328493359133857761692307821742793543638364002511750155270190736163829953186766837837102316865385426568007156988934225170205351230916585075098006427543757138824984285554984467925154224695567413446581881774510962822347411188403243476958195278359854097580712998901082834451738976427269653962347191125698842630279394455158323888787928640609485880067211098017834192402361260207762183610339536957151004065368217672370537395190418491153758098547250844934002289300886662541385809327587702479133151947402028452670976641716572866772476534623611889279223597926220807485960300869346326793072089397013538168093465061920424160138034243896060141317143436089496082941034074001095017674651400435943183595255588784489358338795447925519527058354328732289039240294758966997399064655890242358971773565519951265153405522404093948383087076209285421303919369462097121805770875455920403072430782696181581590469625997100138006549136675917881470286191378569901475771089787703068980787828004949925909315172305047477907487863177072724781501850230357313484181382384906192543983463121183112756361567158751816509436578747708557486758553602013352698499872314428343867581278387672169516655941400754259147240965606646119506661421694377717889648720325847983741713794382128734242699531760486134388747428874261879513560322445508337712491811683143854686489729542645748601476912545692621018716903170297760517893517989685862350480868977229920170664834111874418691141416370954036864336703230130248811836469105759351646358979925961620268354034341756856737326802487354241922524533251522855075482361207911894598806626666426284649793658705118709539911139149074000921709498976869634584596197554408825047526562454355049845977036639357121785420732288480024286750422486081735653730420846402525126192473471903909462573034094616239587661304268816919608028773866038162731682111686391895428372809575634225642419855277852919414209639966648586433439888478795420827455470139945725072800035289288714561892239036988633743479561825876349771241256685905234429602639828576033757979866863551846143443622715383458792013238176002987249963438596022354544814263554730959645933605788532437465654157087566630524642867682840330044597465706955434710571257719106814043684636065017916152734610375730547672069736741286660701002624781305568234097253557310140390610513635178965200492782579202496508870589064045046479804212189513024615416578846659704006670157628862936248061921381401266878821723335244679425006188808266419043764314180384315609580889838648140840203922615198752008205163044119590524368193842542554930947224753706161491005778018250516400851231506095844981593972092198985910731462355407832890924724662513366610193242808493442258209066540970356355513558734264515979792955651316530110954946172666684402169654215791287345204270201257473823156244623580297920224685596035676439806725206832834363153252972773447611963991428578121847424583068456916951865681820647953898143318994617777134233302381925984797609942994298775165093376475438823930673923991872420279399502241616177102481534523776994651151730030204658235296036068027200352798410069291164708014354826555308738835203116630996665646890628781611152213752482656274594743145518440370896086773125894394157956053472565391905828101740306135307773585818027192162736805966203938374631749327997930575088901336426395611058928934261375119996143061262408447277086656726011540586904474161557156555272031473001907103414118977155004780485090281688065249337528573691731988611254268369089962808093352914995463965233254072236047493695507705738175629649198420992957656121053166639037441573527500394842657784507735803023635166365171488185088033233358136280718769086756096762942874025039611503138713203810731289229944406858506226550987056065456583097337510827219299171988160028681653810064264701136247103672932927353358939259475147998685380461217272285341118211103904849763542838894808783576721218057481343720824281525211902929023644042937655916127881025890718463971081237493387209534300820535086811236582117713904262245153047462190475027519965800986731592048833592836457518913443263870826920697405322935832561902047074961579591054140909337356157580557937272985563640024882785055230299649810611296586581885591554191576723051525072779221395080126119907768355173523032502650650434525543163504957766469704870857039427221601822165641942716594125157097363478053675482925149098003535614267582260301051858167449410733810013017953830701322845586019693234158437305072320354999010061143229064036260014602623883543497675634927279429407566357209015772521578973102539554309381746474662405812768426752457101872296432951394725251336361469808270392942936835102850654352228166016883715039715584799957300670576328420263000822735399957176612182540852076322672390427212895473053222367131785356741689365215988238758809159914023413405368008903610373424842261708607389884516886371830130084593992733148755649982645104999188113635873120576237912448765381019790167928534448872583388412877907844925250129428593347755877841094045064711872257256781966254186929870263251936280081936304988830325519546611332918807999093909804130036595806451784337031602642593121830351362374948162707493960184717916386468801981815574459263349609762593408653357656611786989475968336488056618893201467279643616599042464921401889542778220325263623775873114407056199374033345514373400321190754274682444621366149888322837800730383048871104310752890818512379492213858586543161465916696745007446206914465962582693946378599200518919303430121067587129617254560246018041021176019264097619567544603026856984306022231162012924525194353110230378497276521197289830789856004664434650421887151194173896827068102390056257207874488562062638343050128523401691876427716151459378511749927320386299924706014224129791675002783858037600685881275383888099663545890494149499419200812565371238451625973139150656040182562130562825720995537206850269494986810431636882438909985359437744451736633946633534261339073638258318778833802951151397814839220827916064139265898907762082574145660816276033508381254876895625428852818156047743964919416654632169113779032002177971548539387823259505767106601708334539438206166290119156209901514623122367017608640897001127899571291888246547536999208625982837882231575141436727779961228676978876523311465433083996503411772206981547239532576502668617017545427980191645747707442373014613411984708992240930390031637478920511094470145580807321982971637425738098289386313991039406340814121320087962466813057492365834679477144248685204583272854461052398796142291506328994961393206644875302023977371887072281838588306214511152833098283023605012136001701248903669140465999820998937259702207903632378612994554109308730460482073798159392281084737803436692795239659558306157852928164950213933646818470969812667352735153992561284534822507662334695703185982315218164476323470597793537804920268244700598160366844085670783662424792597200373331102341623190807407823224197274484282721058069875560335888924303757802069201212720321303076648593644228901566671756504238396819115796794616685960938823323718758845329092661152508518734799665592704725934774519438789647906456652564995606085707901745541711838756196933581108467060309487863873165148849689240254751305364878215037943534819605424126271535422138533291102903020047488348153712865880981896020768146799716059290786824241233797924902537418203282116560368949546054471102142060523873277584698516113338185520272887636597667872358561315433243289337069709999549921457226424250920175375064684517462981621788765733688149655232782301252055373839078738463202672912154153560511634880810191637890719967858125956442883862842894659587079726315059633750442868093340505037337049629063483416180954814117086996257757264191488674674875443593406732049929653024826773123510624334095008846132373552104097745891955746368802126764850515392688028763146363314920430202805145518042434899912865448930679621351980572573372375430947142673630477149547018666607251040801098530538870084188553533004848743738923268735651277292534863316468757316236385725240474342999510580736257246861964004136138322717656888474161378606623308412551128453059094187689303896480102989511122636026667231699217863867955582831851650283643606054504445796020272113973369235653526029244869795678321453236050014896034847958908722283113784358323590172055304501232011231735891213806264039687766545974628865861691878470346065495156464101848995037368938439324953917527379734743380318142021735389663190084043561125101289033197639028650507917051325001585100026743920381403736176004947454937557968987994455395784351341666682006779238611081168977994678510836379032549969020058471320985004664698044565299978427771275107373973299101061178365664253647798369920218803334820879890418914992627260600670286056092541336376330400654009603711167422322194733766190481367024566577266439123426916983585943289184041606840359833309447094878519497271966777224867694855878317402361831638161224877391594803773641310968799861878780856886410083215695504214141698196720654763410022362728815054480421451249280895813880957337825229017738199511287383945970271719610010539896629121952917295068699569257909816162269644434399076672834291316672554880125117574479542176722780797628623361492452065658419868310392935972928771252297576141909021005078853666674032540051001167843625311719364316994819520356686507441704548294010643139957994126242542348832106646789710011782977012633645025527420895042353321468395714133452902556706457874445951691788684860512182275957680934884791829429437982363443024568715834572959503719259256744563185117787395043617457923795338844548534750540757296911240562355601115101692163992351609342318777646548067810505965055524725943221901703240351862801485850550837827242667774035305281814327942392162341360475690293839933688641586337357164332443436383436719170552433671689366018656298509049360242743661917228821533870848963918801530528002138316306419121419735173703629039208077738815005291094526566115486133999974152149305723671331233624936682533866219246850155624011946927970287290187980543826476912277532015366381686602485110232044747323061986100046153998364344103637109355418040217053060956348429783632586249583326735786783020804018852507123023997399982512765166069561788230150401319566353402441710387802350267777132475225485916523951931638672025674562906125841765851090437917794283956649856122215190688044892930481024866242951589383163246943411895899353120210840590044340757466554230511258962379535595871426295747164483770757330224729119673706818060462469760306904107751664441281430547047595171206812704536931064376046462254546507372774569931629046071468719643904897655449920824731352358940919025596567350089221022055409826788875453356763762232687441847407647805408945805422388434798262407609478400343657700594091165982803565031561799071971678488462973025862130782939230634112370569206219222478287294824072756175525381807678707533863542947720062021131338589709953909060625784632225209699481791831283142938128807456405154926850527422784488421213543995076156063216295676208556515400947780581724532870380175362028058538958965043468885249665666661486152067168002924020750867067333952300001968705541046552316524490521869002696190291879796507028703222879612382686265011015910268575333527326338914179978583850906482431917854401628469853870845964196694295312640233231834392289264440190906646002814436273082290821647494479881289473011079658998614995166462536554541435119243992479400642581583230978029012265570236286253089276746419973937111177330042777404210537805162780433085844602421525374266277523815432627232609997304004932878657614672105683292113534557964101474793421497262584691185655356506385031994471192592831057044019209469109924000181131956019609369561943555063457652995397228439496113099836026165832644426318625952771692006449107907702901934658515401973359917161135597906849111678402656305085090651313934797566869934566286812972897774008946451970947567916266760982213090681282613036402463326911325432554208353221128452307378915681115368174442822598948196093199589550552696952647166254352605494364989899498543175620190307775756991346171061985154991063817814481283308100352157544781205786550578955582174534047661299831228934516598916841833066741137344395348634579110675391506904772701150570485177266264145179781628152180052395264398231019521841089432134332995328147394596156320791357475070538862482231395252598285169438103314678398054126338115134761002152548112934418742110966762393244488407741989650046418115569844544723448421452067611656552687388980413479704712449536601456035677726566693810720421106753017604259714089258940238808603294195948194412036504929450511791833917478037529230897446490663196326097942350201044715270600373264765949310150879064323169010366140727949239133164651029804173196150839971208025732546381068285993663163491741127086542888697123939446163804332620939502229475717869546848153787936978135961261009410603313421089647799563883325213860161805030879349763622284869466641110919401522434829238147095386992245786492268927702785272468677635136855347606947144538836097873691667893730417707213459796237738653598315358759507926610115437690976915528448723822889373704321879171770808465157587362630131993447804937497973171329826909296193284722424051884622400999883567705441193933782964939267962366260349466666729244956245353967177724929047295498916379453694325686393637756681196957091466202156225653832117215132349362591756640859206544401855500942766375971728635316023153005384137055541787576871751442954509134301995270554176704148671644795426068058186777016282054643250908753888187951557986663793212621750247633386752014823812129779791653866313241379918685968708985363961855433561173564322848765113208218715702276026127965431305515555458736610647236526306540472247040957753473136799095521095071012573047115723814444306795857112973194482454826185196070735837416595329534178559118763383161908310989307019268579024817348257995056745248397427603463435716277623756364730044498445872180313164920009041845775345180520233270468196613463469273464218112085899067211594449421235758185657297509749972940331798063516172827704172090714598392466999975838713512717707629032275960454895082304778048000498848288060912039010364468949548830533287478389478182243654555416986158243231666350497126073642801036865949944510478236852830639178485827306638462676825542131551407599712298613157163046401074831867569101307491734259410738019002375576690107871846542622174114731913897086213109871753779311421164285418789429771088932881799117460961746301042089001998880767168020703372723520765351721150920997638446276467252994673456105025526150613367030670149980554379743841022583641830539346182874898293204842403426310327821735146279499839522370169438504390905841052766196856208725204730308571545506125132264892971856071919406756462293975795229594873065699175686729765145449193004089131585114315794026407739922024579017480868351147944868382236661463062015011551988152002788458838488638618745885942319827572934461790550076065875530422812740153854513744663077967926476082600584466813763744930957013766071510476003446078389919304894455359124148008058204758983117290566414712873401307678128437424348468011927464406834457830779564850180536716784223989024690507521737419738018672497381656449078329444605845763138379794181417571595901415150306541708132607236910955624196700249225359714669193350221912959451727666090007605679225124762845425220410607697305981895175196247910921744828501689311854246933307888314272612081098960439594502585058369663321848703840377859309328668937269054524852841459581850891149167129365547107742128832325432546749232644539709061267537973573345428957455511396969402785807608043099103514035490436753955640051024699644271871756901977370346147453804131392563548276537716167620371947943637011729878962699975161450605981502279559665476565200694332056412120478071095999445442411669535217969127580363986762760509784222272119713811419087708319298536765359996394074479370126303851104874647705829597942794777247298678974967446503391736893812482365074742000535851388864488688895351082228356248299767609622042096934857520468701055764768553526094080467585749608780438176613017609958018520568863009831955728087246731459076694935294665030392177810311825238042586908132095173983156697188225567869208320525870982084056522895200306968734183892863756845787556914025864389739792375638273235878572155279075360019483671525669693646887879750995713893023580469542397523775320521155515572880692094401514668546233170311819479415693032684882787500116763969506319346517379421156007611828900701017632051028625384192452828024655581055644160695908723035888366861695836603967411038363587072902078774487151360476897551754342262922303434119477384359279472577848597728133129633088813595839589485358731657730410102278148162682572017311711408167143730057460689452516226209517936748122439719560622845529482393483985116065311099275554442321324197353128021128182976075175040144644229071826814385249641665417826689304360766072168554381474355433259823095213734561891594311806109352060602183708182946375826330146394328918088999030367849356820978233384478134415966038266232799580479765727642858669183611097828576734378723508000897171089329452632561397589571943395689581881947073968251606252039676974827110995031497307021085279162167279022075801165278216807130842386629075377273151281781341931176339427143948917639070779404468857928260190811551894210218993843638796766099906888665830522135561199666344697546314909019239170858045223487730915541282349315657491959108538127689685947442556238332615881410553580330564961118186506528048215474707459228257406518489863211418794913778815826273257753209804689195579666437417560484540989338860778154350141774196887129021371666618192670161453618552620062831007221650701469648612774519718849630446593222994281233939404671133770232931000028186474852946970285875603488929190758037313114660360228897350676621314357405260439629500588729091356338810394930490997900976219119590181302406994000356654077865153523249892941673747835799221529777322292112017275591954456460155029338920578150247916611017294671080548395686972618572122599996854139723321818868898341455109920003639682652458530506309134792827547772571604056296102559551035499981192470199269706999338901176558526332242002150472531872012925539879912386831359435917119366836052097020383063926523730813498306163895436927078951453969267730492422874508954722553946200860770382487093170512681368667508457357315174877463741591875970567899141131313127041671105260892436057086022503067996544633804896985324737510819024228716205722585326591411849831598595586480209633163607899095058848672326262453097984665337299601240965767243984135501043555379862391315313244583243174162051842759359014071322406780837464490296118898587635689619768606751864994094552638283781279977715894225300555806874116141985366083524665228593792410683542521248379943173233534343035812223280431248747171343273113027970802664200101477961417030145007496643986030093892074912325738713398789116353803044069057908132593548623100621764736842581600672760171260476020503666948447576602926648762213962889532703826018025772964673923152601161543370945107924308060154881978090879783773137818325840789450126406037146780341539356170605605832109513819666902969412358066854648768222076560678761216452373633680020263065761213882264135460066514210428712130771323745161647919897937477406922372508035549905662413878692076623261032450116987734881069909722777457026203753717617278713728723606056717048440612393943345781841513991334482358881158926950858666190206866868213154334146133534762554899785500539389922891844843915947013349607989641881858005304095948874491843627002703520488661960239450340967429417263510954533151624600955649329599510234392818752523290806081285463565052814563499231082940407580272307053245446631708994354657689307197662073859681361711672873470327720489883563469146737490489120686273422143779412520997456959484682502076863394519931554940455158793768296572541767197949272332500546678748004238294756650887060018415880424931246443057982706862788759131943197943554193015060274948799281309093441868906190544261598944013470675765301385543385790907322502425445118526567855506796387651806003041504326963362008433433641432211968648632473733135621778797006297576195427894988758304970897639669119345284885036976115808995767632432774335297456333155333207209076740685225839279509305948429276887404138206123088863286592257706416602684051868625000638232708834579562008694205721097552538818569825089825412032307737646109788162105216315375779630976125189556648457773650761000031464691937692984870150547535304006091380243667428270046949589987148428324788970614363568309580794371860919634978181231866294470189604084321644605422356531610030812871770499788609423184090086114693563010660995494110066525524704736553316675916942948003021681550922093505753953908395249982424661577021068388123533257072016916883118276104019546428545897506298737061065768219649460183406357534431245779773501898447280597166526852467860016294125436128725924374408583460157320365318830132819061072474969960203531983930962838953803019693947325887127522431904004944639792873244462702004760217484537429026019783902983046235667704220244377329764804258376632121976413530512058308037519750455830608120570086340140237326985273371810946491105449388048309137274166273917601678849143173227096012194127711843428686166827217873287877414930445940396608795451239191763055930839274551469720814012254058630299992878560455930776556839389874764187142444777555287534775476742547774062219149952401849578041094087682764995919564086726581377813980314685731910645634093454757645890494026087700129948016160734686463375919073562437812578231177195696936114417400744089295887398273512413324209299410126757840625583981412304379281419722834117659299487013753031953641495806873663926038629367994416473791686935100895486495460862312831819630608774811172999442297627278712214002277170196169278021419068986016890559874262889054419847657778576345759285637100162334075723122131724992743930716364240058036085845920184874524942916755996903973626956317907780523971042173498636443018785988306789048252093575169714796440264645438336072627283023945261510613037728937171412624049380887346288629104904961893884186203131695139933590280474605734611761290985981441978906613154493156168182216342189751488788682361074848418806467448011977887995355787713261058477211211859329920863765499443683081478991205782269604933859763520910878528294960139394769090639513441238228298544192348803696674450499695443947662756438572135909661328421737452537732423185522515290774333157436034022930331091358381710197041944138015127766841517606769147324031810053193203232589063081894321542656452245922842579896557319600925736134638002848325525193330848805984087255705932018012919903207618583040762910754601765534236321804383630993728349009333648476713725099110241861241712490013499065180730917510700970139331277441959883934104147338448696513751162919643567321416179528341925230347898652366554541016389776745269435232541857130952367104963307467890685021645935835729657551544664357403614934241981853618190461114764494835940626292367162954511484659657292176223638144396148654098243540165208924988199076860035763369562979544665898574211782391949881075383478012307606468199237196400248139220199057558751331808467488929466870399488557190331980165299086300628417643619521390662314931980030085112659252953425818692564704196453514059393913307240223410354489558846526695515208297101609800634513303761081300881946517959442531840112597469951981159380078751901105258165053351722194710801036584632215969319596160189530751482893737853885218650606185238935357849806891416149143772754017510330251416023816751697622333064727418009106143412366450228541728549235905827148806043637247117851904574640352680501685844800362903615726331642782734410540767019154033985443311438989547648597324155816451651992227120418567623383627579633880683867997786678615444754777771902811467368148264314176382371315532370096293818453197887730269318545044572248720535384708875816143920023714675232002479606157728901318094537450340039741552612207237448961027240000858304273892180486556927358948507655610599348536707549530681114800737923078353217867766190776220015296739235013368544886463154252157507013028280031399727286471828949592603268311968912564083198439419825141503652576793219668231410991393930242952669980961018547083363780232609475486033498431213974501411371827031825578322577510135002539421759003557049150203129364184946308563838572210293798699254995389870743619821082383518400177960325955873601131242264321586966356221588432674586945730634371982159108547932836918530789007359996430334900403118851508695710668524768958421828374946878719291987463097135853992372698729958776582353419126894275487922763373470378894091899512603072001896852460248844349331311995507810774543352247594271977023126739202751621557795771761779515589289614304115224458736142633010893414648904096489503181780168442888860741942313507702415595304512660362541374533961911197813595316196070302582812767759535010599438599507127243156953453964249601660297388947584094830440373609247462583955070659927080778832484411895843009336332874082954719962337027905413202218912765966564654288784248288476672401363142149788897053561317201004654488698084157254426744149977306135107149285494528569441935791256355890156290685605161286296947990356115890342395402323897960447143636734844049468852008541477206795151087805934993067846300004815199112877148021138978606791178322739863342554569437937643011779930104795696804113179305403126360215278059502156643365016554671563153442963172425438167473901768596458963846997630278361662487985777346092033611309018149793780273314325102677853159853619186303326387088570915969350832804347600417588721467316960397606127740319215458145357866793238437984773223273223371281723946019675045356426301838013650319152166942668723537008376874698450742007213605727140868746166681616635785579427228620677116202261453214485240216966778251175086862971027351219443710955436853144105679491160958275568664399826551196275414139819830940086230733355221855683473387660097679358287072104982546471310747738368965436292048405931956940883065411870332509382818871271827931814407768349489792134971093873859437277978443584389963927056417585917927795491962481849871105323249024922321591728808673329273038975341445683250890295145697803622402303750127709622091066263702171916970181702673205119994637086475082044439185092320389972296464097762714356068180256077861095433996446706676231291231479359897908079242261456978135223501285047688806886613674016136054086988683458008821763306440903733468356032976769034986119765929445727089384069042461978761572535242285607261066660369646366685716713535976382667577112867298069429180292556388467559003288120305598669353838104117312874179700800595330645690368967068733948504509088606602581572694643303892529859034172333562449113244599479245815071372503235885020078035180648555198355256046599855181061352572617396737858482291718054247346447164442199871299737160640038430210455727466058609282976716165591539168222506600616480057231032616301559895374724333373732882354000938679435191502902382336794670653048922343467687214278837629148157925954977290258363606528676823822209576011400362653416492901967259087975438776304208237910310552252160034317135755330696136013762539867214511892813633408354679625722681136296929676506651663929122354573599792187275903025332711853186533252294856777692581824153277913488913338614030102537533824246011212512546450004015072477150063621493959348738697566354615475362022526317489698232358745041198517244084122965283716383180717795852535133811128795783492512603985105044910745674083720956057991850605090193528638961477361227194551699544741580294895934495274553213710942782640600405065695258091835864150796253312109095626134070775416219575237049178647200822626775590028715673204016863081783289457190523463078464859386494246062064486777770542775137554373442097199069115955099143441957925225488496057027199928310801439439769653886988700506892359378744443272115071203797914456936085528558788957127618406559755418538814387206008775706289401747104939122489223572132818104931244308256668174477119897570957208868250044517986195806937951589135879236836518204422172197788163338447021788328370041355589333488084473206176969379570344996826696732755334805076754412486901481039492742865209222149993986861756435354690664616429151703396087982583061683160287461144216134733872518142867572884108059307144782629024623382958524500879444730953812710811648790830851677843518806439049609069804424444724743794749174747481817312344366248919868330949360034551685426454696267659060125105505970713592189414659020149299204457500496373237798053142136551303615850038531312770086846620116924055648445691441593861494554380198646342075085760374363792273189073964878715304546581576369729562275443264876441441896026239402745205340262398818972536912866502964041240554293242579759420101874561971069985599809170535980039476166526350713913130768951687341532109538746119298974084195782250923345885100975889442698363830078629933979752982081446154452822311096243660260077857129172804268866057800963571728645179181327819958042591012079164412401388295105995651259426628396708236135377902356130220447059951538037695511218888855006189145204497585413011077960188566901976993730914965653184289109266707139397518453598638081426057146206562835098169483064123857022212698114895046565143025099647174684845187695084067851150770103549096487728457231111595430730158567131955216267517465024402919844036863328031392816458275685574031263865806590194722970363335363645455028873525694304249771499794314046923257398124332184090201533489716681121268716339799651909670870692693223917092861764259909243780723319562005714857913723555474296191664107299468800882015737149231195272329480914212412841228077395963572954313823453904631868615630715115498470482413122858908118372772031768412924417390799062037975449722106758037451527298404857718613765602505304185642370125672589323709767036609987582718572780893649818693135865221823540952619468828492930486535407428852684445044151875068832814795701553331329113250843302038549588406505530175615649331138554487567818605119432397219142023821653374764505995063722751053285190854380445087063290747940654590042321702121965893498373250219144776884249910143183480081557593744480493948581222757862280091113064264384367813599253668185377546921091740056328185841503359426593374384018496171234909915505205230290283303047621578878405482859806059084217218395131324673820634674576906759286615040738457338997607010820585047590215645723294396584571224442935792425950698931501647162503752821561687107521218238350287490847296900199207748252917281666625793874166660010866487481328293756595359451859775217380759108990995540021399230907574037178516759483733116473689332390730474954089079239505174612493027105979646636612911416919989301213400490115596044565656913123187741758929133076301407794088975818372851625971594475963472362249187432774290116355645663167060437638814529656357422645144847389755291995985294240896835497804728782867586922433486717279410878778803842102009022665978144296139576107393846599331543062004989940393339616904652702767181872471753113522689507060009455202092732978238939694761003930388645854311815325217810799466846535304333629391620413409147800635202491557791002329042937175933968911115521552872388117405000823300726595487321074884446648179516423255877462982269212794378644595838341840086149255879532692748005434382671006998684060375051381002542037492979018239622845734889287482263628121114849505511292036577602357837653370855816148623645536396641346050082729185168420008839792205972603271315685633183824829244201637407090820910860252242992443396179337608250785832615568813696014457689892750955452583992026384458804401992502802296656885939200966930313387201814284029606820798664904355247014729760380970371061424056685825827305819491501504487252733452274562717250980508846263956285872613923572068067972477346812979695684238988028875552193411688661458799352945042170135081814935387623151998304094945402493460614406084808004741297897014787251567462411136864619543702288342979037547122360808720591020311779586737460148982584829506084580785834678444056249065477471793909952205383072262284682020208734247054039579805184802516585449259926506270192185610378248886043022762699014006623672265325583374509661697767451169369342600570888450283506508058005701770107446401581866509595432622392028865052242901001620193960993198253072360549599288087973585305267701612852440898928175947146611392857268241524783894503163290885212403674988371751883108579868190976345405388275192589161163431515077283506192485032730173115872740432808074315535175245061582193463386948574337784727901050414864596891814119837223001247817709785600447389786900773568431705307311989817336644286940618080269579149338355803147633163000043501744701643548608164193300458382421890796096631706572055250125769015574580652189640465284727973335788699169650197435382407625465203207903485474175873205782795898735805198613820216858606639919326940416054186043365950797834304286782299149580623488102225319075592399729824165672157940871174889342779949246341302418424108630206983938158697861439783298600847830091944578430865312851655592366885885486682501942381848039460399586694180487732430970547845077504937578572609006490318629334703884336412032074932783960531964465429482470876355160873656346571753798993094414665408835411682672471790539380521105159849968797376144020508742997863482686597355989762666539833696221142556051570939220286771624196685566214422172211162850640149999996238358436171082456001516870140368190418976296205791129209506937125239526611566854065994309441185758305410077264480205076918252481780531104959404111652708094693738860585599539123875860631712397589953197577239456664590225069348856170832803863994850616067396059182857823215384221429093628458546723934213617096904915504730710710610193827356808114019026025466384447355001393768489702051635386315857049428611492546988413159655522113638694604183491120188827011173813677385389542488599705381203617826855730222841058406736479577272942738132672975793900123840306919191023498816982639997536388165259188416477032910304310923128819501298852729532023824473357381054303046025792449771354228972058113580905510807239607064042133473823900265013974186513137778582491700543896581409803585144313807297768468136727940169504863075283048974288585121681178293383244780302011267910580260046253965889841938683665245198134912743729550930490042761684591424921442216705902919874992835104374535731665233239746779428718397074022009514718172454491509309012337600243088865325912257558424074326422484108411726607400474982108446528027960664122171684219606760519419129668580245576815744943639697462576793476984792082343215243838242061449015639760503546299977831532523218380637986778367103618583155937170030138101935174739660984929398925832431387585380059280121347761249062047847391911304325822752728036378685018253052062452335703623368567508570310544738791116873802741532150761053782359389062647348089100839095227697895718587607139146611220790900577998940303339705674574676819407682272977183155369097971440089261307259553276240643391508223241888714858628456117560804087038732257149120208432324186221543701032974788946287352689592384199072951879112483765520506902795282138136585276722121371791553691375493393426019021798639433983418834546962765360551898496775449483447713628441298835558973230886820962066180406084827907984963693616368304870041397960621596455110990047937089626384092608800529056855004398578132181921103488052626661060892077373482483705770558734023529027199305295329849381347906824343931142156209799085948323267150824459953846996853222296459902001248062928613055031679566220574015858430907650194489935872739145912676450989006435781856227302690739185088907259323812173033029539399752088389007436896844107767980459454417463085990910248877938727389618921150254873359383206792961497416509925295815151746923241845282768286152234207783622679521143709645697744616464312130695520200242171162680867968302005837105001173171871093864962871582311519057621571087642006577978088005217834350291166711804292273121654242773704843767335126708573366740190216960103241228104276366036091573242119839018610935475778965910423698428715066843860278475979247842282940282558167983760663964591304994774335939733418215451116297928403491104533789462403998571746497597190962716529362675316233646837040948436190882286112968762442896135009921857759286805185772010739389710414513416004503978379383721898330281565178510481365932558002154984726402805798865638918414474862528629389922419875710059026144548021034747996806830649980266412074255669629731322433649934409470266885070332672781741716782696436830913949500177782167073894249329533920566594061283693884757843538338135771410951391346123447815760168599401081367538401484884628749225091941233439929186981846578592780890443411745617994301287448324216181446150159972453903060787830568423890540288177628125280624964535028798601674903882072537638518471014628434064964182993009516576764953490147731596926498479137698565898079449134176655795765482186153236704920066572327831247420097316393918172074626155427790032323760719232965873995941657064659788767138228554445826320130173888136497691776969230785007304487615107060636450704610974129961486377728272863409974251447821624055337655838645758461418503748255906577231685333120852660233048982303757431914499305073014300022763252070496091750792098685930305079778410659993263553392453072267769200315416740596416735752531997294983069507733394183209414338480215348368771469508308658177743266633511478141891148295857343006573281036268706589203717626204667477648621901586271852570938020315158417362656493490437209325484534642489659743551374529396496403071966117764593105675807573286669672109947402729374211734251379561869347208473804650712721981656443066957520533436017587788511967854531715949367471647754082320768577947678907953804537003797416268599218110395494237104065356654867251093295955214716471138116731237228512083952321436653836113341009224406531450360591379512845381696846299836627858774895380009155497868340519818027826309363024252565527349519257892209976330494257772607551310636257675701339418626378774928733316180948991056777032494440424684326298927800669461412153454848141357890888053967881929393539829793025013902119859247221596347734097463723937420788253480287781188026872409204178591023242623672610186374691289087387419683656701190225170873347346297576750863116063132580012733752817079564090196114005575081789270687024195703994921460720375887557745883350705280500810487036272529981251236366847386357960476122392736025266344323191187751853706079666107198084798937599017053298170656943314017465868833695893789582613032435748908461265980453218771303100854201356306559902931457587816510004034658800655051120399877576986079279972451868060785498275302806101102672075972418196261007788180518814679290771617371709543285289282370636365962746495617499772555321773119884097044881608513826324263896302990130596435105243036614378999041432942900749138855996667089134328067796918615001843139628632403362071345423984910160453848445760855194569027136242831023517050784288694606842240527608479103891494242666480975632007219329611029132015098935420297775330900963907169732812858769640292497789510528547393174446175951450040062731883705326919343536795235301533484211459430577932847378208496699547723410679879540582211894971627293945034963887449820534743709650517748112325121713662089909245086618213757226255727451851553601920044841217072382451206353300467905050723743180311817444656414154064698092881493234846470083034196944310373665068412830690698774010532207136418867678774420367901006262019929634136350697312634113649023804342338156892123095681556126338345735540413660971322165569257598896674422878784520196472752282906302304648150967138604408603077677393604688477212990562282812111489700926539292202268895759324879261977687229661788559969360250137043109572121364050547071943228756525693420338236707759588209592086962263081636474011405486924064802595289092418441509006106709069741604398402020707253796564282891583489876464361668019301016605348392025967439578517893765370523972433157350730039335846638988221222101940561057101256364448400659948948670485485965726369279987147151103591427654194650151729510773638933815558137061595889911411577982970184780617435592614112532435813275425337363028335650014528938459718034524886232034195262266833061013544542964223561594898806879292815965580056067979102357487549718368016622115631583162699455830885062459907305721806455734397231504320144049944910233552483460135309478667133928685457582511860213980944693965163176023927443314067696319225221129469245616048282142076537893761491839820422759938123511048994864062162660427717641868007429842975998302013352856010081638099300745429740376984380746732446590834218113895920621637466615913186669068433711144509330940294992659150589839895051903495748037198423562815981517483045681564379487710547381736815114247102298711153517301542284539637221944991159688458505360449291929641142255852013024432241945137166403151778442848377303103737500767050432119207466046529251571821838697313085854230795262450812823347787735745485726856215020289628839427697615569801276840692547660755067677843899343023760403352669404539882542005147476929230212242473614329593399590804944830461717774098534937067216753915474027584632298213535927365178420223374407936132018682490324668957904968079304836589384124013054579282529086781194963866687735656984713392979982878946776330458829049259147256916689902377880682083989228017269507597449958018446995892619151530454788179630889268470678058947444645444315425478268060869855225787877744197462698419932073120207727274839315538745151508302708961392172470203505477383510741858588155130687622388994080098689935076525092201188118930885081532949104169072457230155694216444065637876934734114340713680288667782122035204058820552217461892843825971339440105463451558405556521116892760274736870807645179898143970228617391441325425408702742029755527128148283599355155367462101242607347647946187511589898575371737126558661705924951079268676100319224027975912072260662473978859225663149578423291354155957122271360374349479324406636566001823414051638122586197420932860091624265063008873180875267125559066197693890788969292338878567815723670284172952867203186748051444414219434666016237252549165663192108433402527593368611823582821444267866535150649817192276625054683761606600309983500310537422523190539887456770279555757707516524763788334973628911620598865196172253933043310721963841901428047551723353570381881538896408590475007479209831994808642238064921338389580330888124558972519562143818717225302985106754418041547245189159713760459589826186059130051596126124756948065911561716424858091446362301812254717570091439831754066289450907240947599864179815606161744263361969321968307893426570904443543029796140695646278412015885438262145506789100652708385849938220223223718861228479673044685932511395747515048494975558464903376691976098047998108497367608125492988819537797254542796300465069167307386028644980191099117588510340603580058876869163938790110550237113164869919669184612963606110062014620842301747628238486610314993982524494127277457477492486323475848184529063365709694776256806336674485905400249967862302378794702375291597222203242816640476476201653269560758108818047926971533502040220207423762240922805719806465494618129959498914909097144021603066078796023749060973196651694025052929763671076225268630582092360149541551173290769539727069555259155414818080128655202992168674688625341809913879240216452810797576633820906073700252168914809895612127976983614905408303514740967440733801214924063035576903353547155297217159671385587116100992974342966765952579515005662802613332416541263708485928409438334884110398528977394814249589557406717331487707033902834839986969380340075330078174539614027886986525962092893325759830693080242512546902438356534111961169905589696352529849211236876508250159812810492296983332346588009442405625502214927261613510195170533900975584404283476216802286121807480789949443319952443499966007450183001151566792099853698852965901994349899525514435644354559408057106294836062250478851949973893256458422429624142132369144612830307999864839236677140164104873802165555771869900353526483928353264645609519919966739188406416997480656290048972491621493681577614301942875519727028079525603485221859291825872776884051607950050768637297597589385226093217469046263745534154923065603970723539724857962995876265861958422653192471561804498621229327558310377367873264375389585819282243573250108720025923209837519998353641419078607353802275591508510662285568890708709989332923911463025064773891712822773675701765583049272920897258404737503847355052413182528900246318963797022453937162774194837751665656995222614248697238581726617251036407610799856609984037124371918329428216243640615339335887926286556841131232056347083517449166307372825818552756096368354636256815711093995293951263231813735302827049599341115990480404815819021842155146781202113491348055875689104757762628219203672105461583240032743056836503699650355861023548786275401696217755744150830613351341364411127225429874385638897492604843790907820254772762771974638661313160679781436044523008273195857545121171293462537752463898088045739762811687216727858909148122227806946602524974815527872580625479653345034118911363710661009541593542244157578688439263635909611213326776931140532553772450407030193861543190820911911337172352391572769063683311721485966145617902089070256110535670583410386711996977486939532732058415861549466957705180689024840808275094157243926382415018976365492105115406780619303191494261044640120472038410536934587640885523192305856652960813315825395370368423404934159102953126536756341273383238516934260613054404266432075019029859966889527537116990298987660040446742300082444260469079171838067301169508334455470360554454150984270913433326231788010269098586739794097694094180607376708867949878180016595350273300202253594416780194425658565793722594218384934766442022155499071130781200765037812944603228165225825815085936596578578477669186027558591220508940764696351417059408033671084727727114490868640196656592773368474841433487135188221647714804867072665005769903826512680182367698180733865820313458384444436313793434456976942879092641514148185360050648310477368119488721020192560875145845906495862829403370903837157838449924594556407637213047499180772097440902082390029843282960190693896744808355029962488650785897771109823212190980094356945303086218263553273285774636037776288656085526913550474126906064739771178685417578413819916961692613121580784903219946838625109102000825060708373666737323786077155083563254315907871179856658369733619176447785082943166026169336574851011100629916485777039948986253867587253566093233153472386903633362346084302857434223376772796062626649464040587153770899248593466167053000116644236134260863447831331266650042080186915785595738830363967031702626942670682885678773650283325148631623235291450501439876548778566348496822711929225822894147781002566678332184128057242949222979579231914046807657768824405342827675471502997747912659027270790040096090673486366495529558558836773647506291316854295158167318455984111744960305840760198534293905794091347054262784531402889334036769033528080663444457254095647228429445002724585277454671673036178469004680232037040179567865763833634666479507107098053721717460771360623436974079580573862060386245050301821829782775409063019456431962133559082339170794327270885595492265868849769638111700216034606567817284803568419849202326447663675217484154710179419228567929756389411332873200894572969410554406134585852177165841513754055346452256153972153532529484637619567279791762691259079863737193361170894953738468561865727697817805850852671821538645764397290048776598066183787178822051606226815023961703614652499779886952033461318682978994833505254531218979500536619517320868350053647683302918879482293078149942870288823036876375170585697614630346117830645199550508670340036733762876349091157399386897322422905652730367140583141207336224790098125888616364528459566403080464917275913060541219531697714981728852569950083108341080874302063735781010906353114637696743134203978265362595562661541757546716202782686798619436412676102078457295222750452195407552832733987863225968790365284862293776868035949728395950054884733732136729532760820966041825768775972358890645312590218293216481833196384925601727208744764565839418891295507225336540967602156592809753411848528437922543805737663235980158606962110157675920696501012819829460396424987507511675317933040032195005750706435769123365679325192504525356236037209499197364283145286605922461082214072768808687700697589046196189471249592362816654685030591692645699160632175055925825170056676529077462352097995464617532621903664911681304844690064511679313635573411022904519523020671881781097333488761512590160559983434924360785645864615865210503881212171819656986454201171442121268949138816069740557078496280063099497608473665524416916312195651956227110102418010106306548013259268104261516716966571964253826188181911550738185879272722645416351330679496411232930414608784262212050409412920368886454589968318458616935555199801731511402127543683881978268648868312886706901405335456310166289197429655013572176014174912815133631716996193613773364774976463713696921941144334175983597043804294561438215513499701605348279999786109422844217755848751645901737909740315983891439506299277172475644997345803426279665439110346636277802866786458447991782750560016558222442484770747484587699481166327262346737119314539039591200878198079812514565642715343055683636526368062035359044317808915714244445534126081902137557035287032305564397237749136702511305233961402407233309252075451633123143486740229282111408177223126347654968417723030300822192900505821173685955063918779540947761227415019696282574202000741353052634853266580430263948423357876898028401060139382637943805559675403311050598066495855454977492866468838844000551575588924524939693235565415536224923819235423277864454607909658487463147297150594601797502273344811367167077992459906951431565007362302260506385064282758242022867852477993826250580118908926993014834447171773191153804490360518239932494995807822125898862542871181841464710709514826763882731933387909620814143779127822791773163054729246201275247409904408163174027831266153568525979474787210098877646079185069572884888344758236136979899691101797253116423087938638649079681529373951512133321897607489184024274863439643244233811752113510466651486654184074291570651622499898976286149152908733772468279969548430252586841960429963146102820942731246846873853106564116604834324201564801753473430993974702364411108587009237529998267317766059434188269559823818447085204460329111964013577635118441506094338904326904909558220141681460925692781830885463687601268296108810559484321858844428553770875259650352475792728591306263830244183065713412162435162293083219062382497351870980874524069910517529669109533629068518559318969246400009103186321167135083101137460949268621314448450881116681394861393692465652412395914777385542360815441879938648827379948444349596293184730729700811981605577547916688605962744316439604733476446818672716872155538105039047780240153485523962158476317545322218652048004287539075183477609090277262694319334345373342326020391727828612361341899495969253604779145047463886822914596563021609483734185623936085129786846486019355325953521986450075844323751895240966263079521129300389745975061125275966379182112924828985176603555850764166634027838666644370437356122388703585823848527771021316638126009541270313562338942044081788618425153733249898740582980787883884649637566806318300277081883906808617495121099650691296937563318872235696405433535049499188552317650942904366445488121200918979148631509029575019499243742834336350373539141850092423767144392272260693794897089912384848902074743698604613914158243970501853570980184822537216167361771021706593381319769025363244622768358580845921388302309568124257622572081177460205756355840592625462712564892997027235209354772530801028746066296618124646623930885894979314354555094719890252478906488893572307109609223047342525467469701255903156508922381950386066221490887557041604825332427483523808472258356993592168672653177298880298056963226759784901670585890154430336486544154751336606601942923411493787512546825690683589119251263141014817162864794264795266604174536382310470439371982378716434298297428667158284885610600769044052998337417865441063928338837958476836677089063814512544504089361077366694757816217004238351454280779000494468799696325366196083734450241309366556764483252645028619206521289787849949438718625415630092925113676989808744415426823502509052212398375234796959120361613580141898364309775326101192919447622644024242800595001169365741048648969102307327382484106435196160457360606350194485744815916511674441688127166040795344571122458983181464931000983129740983275030724330227252937376051369521846376234702710093552547558697376414845094760071966009319909617995546973105915948627272470859219301381929249265041765242489818999049257382290628848258845032996218856917052883325926002309709988162582373490808820872084234027151856146092567692782277064332580251438674710209480585001505869310674552362057170580189153784607076132277885102829145251396764293329269326302144484014908607147106243801852066270623644132385789419794399915457243809388845805505247248962823820856951504960705090664655703967065120610714355159818418905627418846894508909511449592466105459287701914779187246092165583144333023023502269390337961079584326538244211863052150880835819179280255538680723376480926051394059015965601922054452093516939632330233554922329107052328216655407168900623777870900105427309702482524308674666153789378439975273779700005047201363173705877500122621155456317801410627050250325352738804211289483087289996458603574109075988996149622353631441748991954461492290407842974662629445583654686218142814542604391054095113473599425191377758069785584399183458668727085891736827505667514374436092597182685630445021380876123735304263503852117077453418857922966255307849259639654255869284606305401057391778590562907301627887118645698906325420872310011889562842498318559622051763765883488806004594547909702638775954186862258946521672553798339375667539447785468440495382764882319666217970263945952494325368401354730288603409622634125663716743084657562754459341002154171930246460083195443288078983884923349373113100034750042197881410999329186874022810245991744658620594274059619671054776550919336509004411077211497905037096485731869615192713981375430915736756550365034900965319720111393868627720043287443124195133154425155522168099827331876892124206196549983305079911917397365492126094077596424873906849803497849842021709778609345656371068004494265372164541772150101019765281336541196803360135932234800284613205606167311491305840902063065054956082381497603946202283410395577067746338582353120431505220087073874681793817297939123144599272747759937660999722150836999291345658089035290502082301406989274955269633671706257687483451564136855610412132557149930948952452303849073229295727367025362513944812776195348758020596090539798327833151955661892627184538803861453585325192638455262255505016779236762441474522183787560727105092979124988905266085899932778449729764476823341608043398991879149050496172037028704802620715508251461046219849133603918207045041324850343819565101045069250541514753235635141349454179267653775952744304392341329132123572806362676843068925235882921903741647648996961346209357452792593761423154415472280947227118986960715231152385640422865467111373817709890635897429067080548062849971836785812393008167562230426165020325083093068027724472088751264502245259971723893049752691573820912355027373420415166741572671572955659604103523384096558122919758618636414171644309402803409428707812016925949702700095460199054964185866862340686000402462718820458263683216914679461761681399877477439756012789830940519012788755672120526498044319792184164491959433708404375965868343543995591137217509205450265861001990810684501207197627525962809110381356988661863157671479457853950202178748386782091714312991613405265262105362042777779382221676236795167562654338715930970056437183475157221354298512424377606589354313967851109681455579653321996826734362146765589054099348597403752315755405821337824403830943492293817301983002509092424570293843493648351480110791862720745896842325464680937635275994237857311190981579697880256167210948786747828869718464155917517195285332118015796312635707536315344898155558641841225247401388204636849752647964064197824884079210884623940368107335627106624143699268285275172485164189661201866102199451053935299566974264473303707987647486164387206998670163443443848835532414158581436357239353880659370382993573326355384184226829663589776164363044356973766996980380527167040664398483297643523542256408829324380440522029540845112165873856687509640182291060499095421033824622848982760464132220492777074068950065074768405601217864649078422421522239617532424941518706201492732435495755975777529630317723538707490878638548262309755031014689435787735768446464865845519424845173251523122055375898513005224387843837337167398115096709500446236384129847458583284202912958279383337954845529716686983956198508071947470770012991540271070122846144557804291857278088290801339561756836869224524733909674994746099500544558721305885922942672183858865299354838627309161394365907036951638333961750191519044943060170646234656618900336003575314132023511432219829583700621399175564032585164229384063267783096900994019413114656543649475717247405289862426079731147753712726374485861233801412522810865003317869157502211891113157601068205512065044385481776247037901773236196068623505757508199684127927599836502884165842592589929184924854863905246721282272327190042571159335045931427473314112545047280046171410241824134889401490784210011365288361411203104562070870879930453566612747020416133769867890317122227155747496293621524722823506122679523434402634780288558452462850166139022805741448570150006603983389762378086425813181774986373089246853774604000330745844253542845864964302857481061748755136379913104470773157288388525343936539447984131058843389585909397124175276308571760463065249937784395874155650826530429558254893704768002217653225086516499034803924520216862459417731844691772387491733978991557262579376197553725805305439138029878888380511283628172819208541400672250062650107614657108236469239159041684749869682308436952075214958308884099131006348708413802447128829619775684066420352146686960537460581489701168105119056163871244674700451031734189125563931607180360733098013569728891400163556081315902386401163682024004541016480434025575065168194353086503602378867907072251218166271055067639727789939793715241486305098444996853080690319437845076743002623193107067982514421531575888242954019632911322009608886261028748647196972208218104616360370859174586798836552147647778651524780197490999273313200598229993395176496248722597639381419983666154977044439206827257538272517528842597020379444664560734512638922001756802086542908227865291177920543319253663241809883203724738445354253828588042798273988840585236203415438210119141637537137627515874987614846616680064335598464684589748530401062984605767528695889048586261721349597817725484942666548687727375694162258373506201975564416220735235150333897085368439510518437070969869328700881140486519843793441144309663521927684700330600516207194088431910242690601661508317809169748284654156411457712976276429681935255540372188075523026211933426159309652286481139784430223620536292688862914978338554899938405959079566198330583827403223744490583882682775860395063353113037073272268147566792893786316253209440592208896117324442013473565667590257587600218399186911133008299903135492792275595551873533776324059882446890239252632019942351363654737567863936926696577252099835694846260770448257499243723267998370047077071266280834103323249062500470886941022153456782223140587850725107828494200962715482919662484029238202666686061406488230237001196038359837992619612305726318751660046937133484440811396247037335557831854463839936085989884567542236609690487602656561816070301399212903268903099615657760583168869874128416714687423205003291108022682404372261154116071162866366450089430925644682202923787929443853165577068464940224284554990263710577833512981352586441792670241999746040202100173831262560070192514529189082900498396474399823941428746731699422623122913451121644001322504359293638511944313418903293147727327554820833569421151721177774286403690408183748695440736648219424823891099778442472223684404118168837019942217892948412905727498508275533652722697778392057726388904220960015653535654086209939915621718598781967642931990047526886054240349094730945465556694357202038342016477470230189125155103884062936701845083017173789646800459520340114291432150771273968332890012591153850811567380459970419949688122850108626553947443587211513070383165471410472779028691491469204866626909594464554664364020201253395872592531192265675598492382609038881917630840989865569655512302223806493991909462479567890931041176797643247726662794500037107053323194015914850339054904097871483235831766347372153291291169675755499812088853999571940193004785592665128308212535939058394440030021278597249920328981049482255441833619562621920445210502372581775310464923979935959906732397362164475267509798167105542990019093642344563123909602374777555896297018143054167698837879104649266227268510811313644463087930865601809564989168260860066178952631815458696968500123684971074367631410636716091406308482641506271089167695303244667803263513769168288995747721616525901045433761629254823280246462255749110439091605537966588828533332178647161318940736355869938255727518449313403187764769336142660594142807361550113125353049048784262231014205560609631678948175748391970770215650186645300338597396943652732454104072778137831150156844850849581066390321608558624757248829544180737789336817877195787111936960125298564337921489558596416704639626532810540051537396857356672318427386253114759528629628923286824751330101966664030759952966251097415684021450003917467290721273017179262087256099669294118638353247441167725230829232986055760487102425641958071885703490004339534840832519528810194372937134120952794745153576496599487346451700803137668795892271749065626158953052344387224957942752923459075368251342408513142560256471608938392788300095988411848259846078970549003677692924330910154662896289835090229099939068913383738617799529832947829552483588701878447905828309485816528374660379225846730282535226643257086274067789981660196056548871152918168648618299063336826635987865101424757047323528480091815729015105502923862140303563084918851455263596451522482970031721149867121324188898735039097474016197189539515053670931895932548779336402220637870229127507225684989396601349836849408879689181751309701443806043334703153538490949850664042052354549188395708495636716547859133831501676915097272037913837426936654705231919342569323461122319824221627925352781801567064324848691845915592837147656062892117022036800817258542512132395405395122911567322606117238674919307607942817165815923672986961653175709952931788809867538341806027321466899623430779249218296985598894110040699494471016613353317496856844747134763006274620794708285644909218071517848635134276101324100169507404496099028494914828341332629676500674887717381291936162657291638760473072713251403997653436587014877121060648785978471806646202984127754644801188960939898028308786215574529221285457011335668507786054184975207156525744098417264689087311333100823838790166568871769561698025724758829197593103893197159097145701970656665107526968109540360978387169978498133095681533548900160828582302386079277657208163819733850401727388361693097222800539830990345863333978615236519654670350819163683592930612937357402396536658405857399517950927600959664529433114528206360445987259928921242633428388764116776939857750447632667236232692646644645232736678135173881389055814357582189908835386500301552217757659200124749880718598287149985419321479644415816042566166846530388256450038776322098115486616622097675646700165348251779388723961457555753361830930625039011449856484542572365068113188938364645988667795396505308487639555190257689542535996447874510790654936370458026281472820177345069287862609252026609352485889765931521952910597741420555072632189863643645556376156634536842906190635680535804837036379637037915922102098529877806357939879686203080047011074091300600004100153965004573309522790572181601619670940773949005399717511455151642632936534244368613313857684121522675123423786893687270425083242957573798034702732390493524636751905801282996377668166666872402420254917629078850592793457477764088449622299122897385622937844597834828937847322102163320163876425365427870798434637487148261618408220918520362564089294272842054978183270948483779827053732083006602562054650984734615661238541671613073870161971971348413809762078240486092068477385840205077598433782982661084234459546444152527276667734578616992427021430307638449676183914856867437827969738369219785095521839289507317191040873208227348305341948048582217308364486637257906690849658720282792679160135158814741204484547855857184380448245908298407105289441489750389520275066795789442483076627397862705877092552986977202701033158398901877034863069693054073102465945637768540439444471087908700330043940172982481100737224610023752063427120165270625156808232040067208252118870166364173078240169439527003549576240805787389435618616991962751938248218241504167106001944587054848272099377958917669753607829385776597173736469159406089553184602853190172178583935647321100639300587601082326569642287563965380521816251834635295163380287312096932360646571823146119636719335647745958595518540044299697310738064827034882857225129558102486845494988848604633034484450714163154261758759916084113872015860687094943612269075221176004630414813804406159655964173665302398857641686709877379915875926066222240208536466305317439263603361376956789019858698137814543784243533832784547505443542245434686926688163124598515061447328303547001010540222187587526573588498087336019043276889352503627873025603165894801365294801495811976801148720552396561747576739560647137940616044270762546969242767860501588613260484739096568893666165066396535592354203950332256178331518944178597969706955602855242360924982341701627704974123286866093052138410842935642458620185890056467548800965417483468617529078649720467862225528001201023101476168730573240027535532664909135123897312463395596959084378317758151501293323479854252958367609252351110245118597077038583866009328657574259829635781391392756175617744106431334342631476306327709470058928768003633393241060028858936861959131537248529357478317004636512396593810222438384709109380818687180018305673769948024699210364442425563769467116903929935822836425758934247924046773064481468386049474449712733653097282511997456950696789264356826180784822215051734780456543020026733945279292267052573191367452827118584423341348527950733709970574154598253449565094639767912148938296614543436052430904541591701800221484608826218581120527419726782202037232314980876408505185181243148373415501183731727109282793643813851446727370562160419655223900844659103224884222426549458906009353686492299909116592579797579528161138318086442284268478780158114317314606519231929063821972246912484821266750918156085152663165389614086888145008194621810300220978194282101450393223548108618201314936839502909545330391710197779649238181668058107663376047509220083099172308159997659737804471702399682845784678161752527653457888839696261628244920897544282651800935077018131932518481317416118761284852380996923456142961034187758694602533756137016294869687217672464617135140832719067573146918066179996749527102817724530211282027988042595904844301883807711157217947432948023335542515679103285866772304051888767242224943657108127917065630912026730206907287286020634313717761167396409007792794033925897696413672020647977056830408027289429954224584274744394438819407416649279674739221530090694732188490736164200863072159791002518197059810768769628857473801607873028034093328476886516902498468333732891093375854051697810978867650734137106837757333923083316177586611712172287239139837573924315722359715481675197174473444629441273489248304580041278561047826204852236407095915088281056503219638373848801701039237293374337095719713164874199689907825508093903516610649429354196675491856325831692345571835750541039017571342443018127951266781365549280270948121369960956159485683067227739003447766264883370559491328320455749521540523037816378428871382834464015369299249478313525321440485918664424956522112073772683557932877706243014375603861295907596158194587457788671360587645474405358694877877164718626278094796305023027174657984279921549481765612759371824862054907599828453945409641907388667846940974003646248465399830320773666135191505067977858052130500416336159872594424738412116238529860902777349322034118732802198767582228718476067762964059087129906467353317208669823113525347198392571467355837281531190894228499844481183448636422045039082075713079603637166409956018219072489535128034338647267924875299845110414564942050240323441112044700104430126894368543495946614859730390927705647344227419183411547863915612041525272636012806270863294916172231584325105528670364433766356774536949924322276463563505046752634669155550685702964409698575273760381732514980952055871211386662934768865112982705078113493423661131260851725130260220455937995825373035617217990360898489101661567256864818068285545411552627476916868836057761478307864370490973073687218579917640645809667811791908256421534372858789678082845698652461563763471624334404706642295306085638072442313857799106098761988831063606618058408555383405870937859690466485816124519883418434742310647223654234557867593527550169352158712356230339631330902248889559391612119196052986764436371452606807421418623304498888089794427288402205226608783516213351277562052756327786151262206454439957172561131938511117820849957629466445788591761397368564389111344035981586145586674292854263092565667702853511088000303194888826032291044599214040852323931386293717579339177204734180914558845841435285290341222710408949703111558946087987340521371790403090711898419728851581296339867626395701547720310362183301886740110872872883524479551261016433089298492773366886544479074507118304008954592148287702526031088027285269958963814119805315994498292337852814538280964704680058788544463476591360574269049783859031449750953360468707240925223236300490238469366868336559610859935235895581855625087350749448735901924870058129393502829560124312426281170920877899907246791661424061140627261588126059249361668152630373370188233801683401756226820118463948726646940466022102467007822830069606107284298944933742369997541159956013347580004008246696676545327617165492119037859561913033901332832793828054751057992355239890080111129897659134126021384566135449947780291894776548588094015504764367445964773960517354195201877899191273897247440699750842259207567265342112092529936453223095423659068796722759338074745678967629032969037219332692616364530845017576970487453593969844653516450605653850941739104817404615752454398892471566364432869724020120217388876202196221059398650193291609708345226254307796627638855274709224570730518334723448403445772827605368665593860374281074125953937154952410376819734364379927933978405959838498665340072029045260330740124351800608177951129729042127474084237715891489532628678616240564131004389962818374809225055258118344986646032288549319437722826581836564323036258543929536374224211000784560254480341263753675510538647831552860201918769855358626659295027077231822152347805118608736737115059326832215347896902140256019406863686877829940446131805920624812667853076317336132813234828527028627967394111214758947226205734999062331381458137829955592957530266285684860337032058507131714199812674963761398358391254360057294476214421864563207573287427249212103339876883340316998299068314321360769585459401524052485569610220381491328330346604611696875602930035339571734350626481001871662826864014116997355303502968511189480821271496293832855893890449056409999029639225312955960525099492228945322281545370328961971390017119457309234055549729846652983235553816733861739850788630517785159694340993458468260928974554392915675396621606658585782239990882573892992476339193571552302399811845902011803620839600803301817226891943687193498667843711293941836550871832573864422919030187096046057665245916260724969630757873037280123948454133124175226224436835962753528877876554504177164217175923881422527644679360504921349406388427582177006117005820448423569052600471662731875361288889097452605822217993298273930056018666495479237331772399607056435889787854110864798882590397094278845946052900571506406764488829837370408623609322312744917310893398673212381005401637125165193714370861646034358656136933955142967682566846952673515474686757589083025008704913473451062274512252577024996771277976127333827227458294035917464647214833791162792883718976782357992356809789991639108463752996670851013006160026438025979190097750890886325642544596288844775179643348535430165087406188751703977449093836832981903780304662134819419815941914753267810953174280187598399841205549979482240920881958875745948336369764205867451289620543309973727610852081683922281245331504015885692472328040143800960871192147993629446073402738072398038243756094272669106742713985345278316551988966841273059447078587241368363324979742490675209778991959017889872774008418439201389390241692451623033467977348998890708181622842116269328351145284127301727360463728902663737556364787919161981163358290316513399890026130201555866608326481233298024511254593921436749607755894830595083920483692387378312913755508277450430847188936839168837626471868273292979197748096247364345828831849346761164741882565082921675804159473674953092229532010100268341928694192542526033218910696580443491819315149180469244137174764451679952490929824658174222795893113845388975441200705045395055890283006077416827258551887967939159442407887950638120986123442349942707244659036411462510864256586361289425252080880467082702551336258893904359662135846525192367488220583628999809970910312629689599060584559994571534190165796321154136647493556284533560096609107284062747192726684729020506530297222175111560321684111806343959851792377691897388016567760169346978503675626694382623981397416855275917292249111647049640057411204909044746787147054226984787836882284366274354284335736181324108687316777550016551830364342833492648656691013098159660166892614901009222735386089851182005835847469187533779407094966042776892816375074387526989470943421688237118705692377180618003784002125441285005161425861933032842495998661483366914388647239275154930554157057266497424112508506274437419842493620140244303602913536840302576149661247200695882545115135461464144178359433132267524364188329713662954221177444581348286098930116361158781797890754785863291058333502261480011408313031411992205988845889699133718024574288029961831631593893216605566355001785162965484155296529067526830355907645791617922994730558510467196215744462789552019112225334781371979622622357112332100107361080501789805300592435707061462504118936646307327421528892896368909627301113416299537685217503851473075542766237087023537480207901702619197961642618713660805125661469145259791436975392290427273584446547985367532222706800819981072392525076500706840834873025403475815797755530466226557829863366021220061400587276253408388810236461984304199199579998105271017543588196837476954529289611750939165440862456813649616286328340063130864902033196283099215277559728477256880549836418672616423273546321557070325315713029987216578820172672990966268912090519446970593064833689385020886453780545950837450373642740014304312734741756031941267927010517619696572370404299746849373012512260558490216450196126670935738945392664584320086415967601599128686679446870808883100841480145494417847556675867890135640009124133628937054838923076981397448924053572340290098033125313918988216363928631334197978434667122091409424840806035093918518043931649167556104422912377443727604668090025713936775472500185392596776201462415899001069055109175294498426599275663926461393095567965348180961490958390093901553632879714855092643046444661691278211519132055895117465978572225923797826555589061726867723826528463217953218329706205349803675521834248158486545664013833787831382844779779953065189667272577814504773473533285521907401926332857726386084304561403805326371058058096046087696717892119614677509801214721970205333396050458975824374636773953618749929298081158768651185325988626137843458688806041168937525430406301478150213688054865667728873551356899814339536227472861295077240851389884431638785352148874295637263125151038350644981645509176286158558723210374401405619753775955186427263625066660682813570761898527796031939425351149423502509728513280403528398198616896995836527929357736436833826776140604125521408536889243487998566283693262949672114605117437865404755059890453341328438075698481405763776687951248155682552075962762432058203202539044636846813013784267508386172730538921794229771485659369028536181076255739425709556739984424170002978321243597375710589523575764930903912426218082836703864795206766243002678506706535704885442851113105006071971580143588265866598691932358810519902870229800029424891505231270593483247138840697512746487830669092345200412284930533090043863776892030215702122722725513565351234248632110187096945840498405161794575924959807885316001355861037288025837446913229170387435845363669733809783866487343540677770746654460135007690392408409142637866400945880002296311522859663817924529046000642622927314888440943321119610883772546490624497943655877003588693128971025488260027496811096370029165347722160391296954609384247904270819025016702094813030618319409253615854444529687381222108953342094193418045159264692841913885285527123901155087886669230002021609328507626578293923050063692509299523714161485082541256685221974715946871087485653357898534345221806895693455048039820161621496578272066498247763828953914060982220631416717261595423925477452507887244348185734942410283386841960378535052765887195024736943822692211446609085364317586979880541744306929707277233239192965014023438748836225020222158736801912992257290771660588329159259606019434453408866747603921907917195530384643299479055696780267120939527380561067445722612340165098945933409819254009931350758526335379096998951657805362930921338351334531718436455608448143248055196009987388597088962164612936428946340829118843388352605404507138066030766984247479436502768065015038861945566179605021335495986361687822446581570346848864496813897516086942677897669711030995233005291584754923587985952417592175459874870505291524715786099907424424184689438619012057467098092722384915080902281143234211115563393723805435902462768735629674430577214917781416807272240809707128363649380085592078057075423230849174716403572490680204837484478902843872389640651878840746416492969700776803767996003986732949950410060442630166504468809883944876459952379053401926399063137115864958567933764719590751841592255561824157337955804746616393471946889401061110354226188776151171192226860038845463794103902381133005629110476481368426395693076083556919003262168191204530712337737989564829661551706894693371762304852506923197071935834645339072802475087255552253234268573437035524371469068923131700494039042718261233480592633285737308534628717825666149889871795525414102430923484426519802074676629557405886390181831891448834902864970573347467992150891166574834079889130158269295162905107722412021130551937875582362346067474925194378816656592266979662757120570252909441965175709121180176865350173826582360649786075607085894375380563324049645669258563850732393118815784594776805428175988932335790937095315540148115269303672738685991781280493315151113234455190206713356697980083829120759866485958963728474491752019539286908753731233088913543936687474225465397300733915189663680667801552264077315575559052409070884656768230279356193688674058459204167723475902177257960080075417183059824681305464590556532762976842894767951943778996624356039608710248271333506291272065039370686425945091795010691504239485057733740101491730404287222228531849098103569810654285311411697715614624332696086066903053072031969488896109843399269864044040356295849157098517016091846133561637596642390880187915524232867388468701844904676068313141641691514046705683142042795953624675106642612375948063433985103873598436435392081497914377386057583929908970318836703330724647269095488409647987367677295473179671707603824405977940088541271753613309019211749094262854500228155274987473805613954157690405827250113471795032411792591918213062143295716266591480786516956367096297598624985877313462126724973405638318713768375282564589801695591277650859804453064905544884403475229241523348054603367464609998852417860501723819188608995217657562385243709475325247638241296502643215101953642273740146170301972126232299601090852237526624524185492566766984490968358292478417323468655069169099445024008171514614563213966031203532505336466629081599949226571893781397857959253700857261323071540222814481214639277200736348087883484378617864771463986358703097815542707616887753425379897701876815147352183503578230979934526516235943740768875834001678207796569479738806776792311180688176429448699017486226729107946346954479926817585679606084085576929521533357251370133736289596583492068120862023870678284135165945603795572542132404343050653165966085203368612298813983993046231865042006070839028430833573575332950411594391515160156274240416050440259312077421911825070795356216398021387035714474729800237869918457801841671877642976892959232767693740952120838337919377012761115396492004333797760912023748148738099737732643384314237685692837367333415722382382639585690996463350677359242196020314201461459127468867074069417284666704089379867226819602954543765365514082360690961774092499407914599852259240487726178306040105023337022405415161968825957344347483216695153347129626287903170709472604492253608367502294210956913126013640189040649717262461236421915757267527241068348698807903993668764059911542864137365756081306155813044831265235825223823550587044343136907176149658324311313157555764612980701802799077142609348999235139631624997583692990014775000750179841841335512858972723467639684367894338306874764213519148955177648696303694480405042173848642005720998112727989584212359399739553128896119712721621025032917194631531427138583071278416649939633851731762665356317641382321228976491099478384551832914237073345837795065994326240192980186257213043421179796948029511013617310781779354291493270548618947123291174644063276941823541559608405086058538781056425842973361902446034441476254174958319294018230818050811427869368164588822693469147295049538434613606619741870795038438768883703635941657309447040994587141401972420092907696983550869034746724077756842499269636887122284002409680380898251532085224118434505119571523346525719623198921148650994930314186667513857487182799046640617116037313188732569889045195090484840908822594439665602459747231856687838118704909324494190363540799617555390016897684953900387341185022018366614686494343663555416258987356151804987821963116403312466446309532074005697030038588407535540818036499227765584876903886733611458941029073807996015830947583743149902461174640553503936736383482197109512355512198540873821197503477834130220776100222794471414615696982530357314854598510943852447361005294615390847754518028909867233660283125528362926881146642163998725623437473428647879845867920683975322776544140247491070515080322442712686960351453252974447163864234002662962222866119674333894686340473572409116858654426386354306188778376235270920455358148265811129647873472884389865729445174427121406810938720834801315307594827510352742393626351189268218660527073824166497466414519466142325804110644824788704090870319901223702016491994514724093608545169855057651868762766092267464819453742060059880721682635014494287645823340830467032774947699313030961442794108303568833269589781149338213755537324111428413368570365580455715783472037412704340672992897462493984625561530007451221860650394710036833183229883948484471969710756231910890471679652224199295884484418154551013648247294062093020177132508331455352617985335923501691634876937752179646102190128929776750119381093364694315263970425758553822969076523790539324108814558053442609624032798813163175017749643710301055648162973528134473097782539006477808857542919418295465588868046766022684212237230282336662973065869083622355473319741646778215789620080534812381114814369210402393333865781432218184128609251112177245532967113270533496503907268736050697397814572008413726876928435684343692707515981938750877789377923909985955373258287701504206572323000108498953865587803778191889282317411912914554672807612797248007014476832789854029698265816919061322972883237690601590773428892876434831980707207774560926806343259746636407017987358915893717767256156939846703540176797738582227968508774781581016789918074384710108987541516638041048668052622421994921542242495211947025482664760687927981564823348451024353075585835990132903294879665983472119325632708687319615532306726052967958394274250543703773773212427440231842391981397768515386078549326391883173380676588685464216802824861306309100283776712606858272951255046590964116628105396593514269212119070826676088062846490574319724576315564817292673713700268060836634462131182962224990487555425945197915360575984989727853691334024209473376485656704049198128986920348352984540436592216209977254554181476898728012842495398178937613197464124181015749738009635282928750196702741532458194229427577768797586713287820736309845790069975595378348530869900132681910280534502540645147151338843218350182644928970639302083399970701509858939304330642591949900081223986799298936490243929373661273523478280278811067968827870033765205199977269636239245867229512761198807791191126022604318207928897994815304965156021501418169792618647157106761514111312057876541013924914722019252170007795406293209283147911117227550833108544405923384256731789907417437090707982259892607450955819827793957462207227805558367102811304210850355100459041157847290376155470045725023254460908947115651273943892204115393811177867211473809246979674420607437094729904107230483953470410192762963252470047386449455729996930824788814711387076526658222315202399165788230540969553222490870256618635321134941081387708563499161933561491364513181604039457996057278728143826962365508081033953507088590507321778807065235368398912906243612105772105494018475534627071197985267356283710090222439596598193335818075651979082238135923866203180183862788218596797833550685332425496036628850987060293513183733789278485730200722989117708808471901163920252837331047971600152319247541537681310187397308048273785102871150197123801842398619704550353137675503519490692640642865024817415742992937457559904291990548945434768470564654247929539618926841754207739546780899716003311574249887808721846960378031786187336550363422491607389125475967117893259113160629521682140259213178081657262675195093928891109373766917422477289938543280155347110810050339338978825220754995890858950797762222039535332760906063252364241815483684927129595071516346621194217810995875505362617518642186744585656027316079750315915670001851844925400771763362123354170896242779607607186738993184165252519809130027730392812576397189361885547016951576527041150920221906443373466062984086981614472592863537659154594267797513619190988440636087508424533668153527667932098364069985962639952884623149085066416204742529270656767065787471955155340399799373905640055648882988948613865202412667515013225222120831185455417752916888019292072959909999776835378279551819877710405252012573637284530929173814047597389069749421470296477879732968465436841024149316986268018332341800427682722552135823850734886889323081579018780277227364903886593207639741754028597023126622794175054915645152841138608790004847525336874264343697140115724686463439657599393842954289675939190516454835765309188138326047895598780275521442942590463528118855997699942179462692263133993591529563647800953884969404082440437741623508974293700470250981142177255644864796991590137135894413250834621760647412188495370459619824344313938535938652177291295018599234909909204736514768869993841690765197210949394436848884191562369834420045679866913015858556041250849582404949360665131421356619974962955199658722368135729944769056004635474864665194603573018371403105558179722733841575296261159143127983230182409106888476343074810253994642702412915394022119361602308745711845433739374736270288924850297467449111682598107162233139687575905684507435971302474803663304058151542568528522103427563665138324557793652079411091429213400562373213937245103765858235460136419266423690474994980500254437879067944029742048334733687578281385735341650655771747042406747874425735867531866464180683189088989427006006594000275953975299105529330975968575723305227907937881672758583007894770286740136998213145833844606635418784024632986808972644344143006299366964112624281534214023166828274004426758220104336450121069123025062005187666650811581128093807388168570983888703617745213918634313165506418228745739507096251926018651546186616942506346836655194874601556164651862167592796628365931181385323289228621072364079395862780631657262502796998243777808057449727489833401537442257407578727525630550267813217213400384595806220307641729024551518202199718308076259749503864614072992699546602532749855835580294376313735049777284777241899920695254896089392896631119847968004132753585686727140283828508908566967420359460476793576849156077769014600360363273105289951063609154555638594209902497259766367633886063383183496204549360104377489376160765918958103921572004990092248007370625989983177019541037689859100263159223244980403486810017222749928813829549726288395455405011427794884034877603829270782634511118376946924773743857750375940002953907137532394265976631807783882334220886001514580396323675420480809667963189646883613936997721094432947775945065813020054750091828064503561054654392389638571703524859461991260497732869412861857530742111934374285006221697975941216104105746283617119639864762788782998519979792702262271188321415889695943444019086668353286616606396071222374377544589671917836081656381361295825094376868753036298888289135721988690931952904871609636022679812325605770047233177538046540517091187041212302307107407775364792382369557803652167983614358656420198220464917990745844784581672876415948140081864241470823770871262402092037342389636234959529352423429896193203075586107232655638314360177996049426399732030157411071430551686418459354698721570435325490209692987518262105551364519839525814053486723090909533000782491866711188395923674278157315526046981056750651191352126629048934623196547022492555926283823421170501936218355686400586468434003786859564697008684230964243496981349958737696871649820066813899138263377892720110152436763028061089067487660291749052300347150243090432786208149201321274278809846146399683379526092549062757697469396458794608021355124440998993467321716764213385378301142084475387640617482810739282571287929242334848945630112010931129687495853999719491971072475233540549032756014425306721690946152020699303913008240242784243243251046608836881165924382763510056913538377377445337452427060948504641853283608364970292313976555525343680469767633412269173302208428280655941753401747887860024066315720261513877834341372756142130765916775323018908012473905101845583757168148929239735673823913225184772198727043249818717692677721064475149464997723209291766756842744285396475987033862696513170088300491209765086746482013660538974582956472349006017028451092770121107576895331567815644754598680711008921651677005452496321260388350896344311968098330447905588667469003513523972734474366886379054809320277196328445248862594919719133863245970051149105192553580582821379534563207299640077094818921404661557616983045182694089324862504763060503516710214305708680858640994057416660062052777626081733775537323042392799615197185690412214130531715679962268704206376541555911084511380336361931824098114244371231402997079919478003684994216212264787871510038084471385280114757656475841857135835018769768209514784307072180351962599782787279274079443268338308788968500581438938143009975509180235529676967174011319576119966680478463632143076982894142172308081902691468373079251744086795681708554567099272060620500459894082331974422480633040472018147343806424038383186456515192968014266276420496346139095542871494549136419886060579405960802428491649457955601714623952870057373909601771577636366786450431690785526196758615300070794212748171004477273168523346669757183753589947245019179691458629708885354112139583303039099203007481703378703270031382519694227918098425308173107243618738758932954646902030965915964333169582286232032689932572580961018759278671342509078405174760872723190531089769796636303303213660580324393639055254916946537298875914390849221328759698631071216146776889424280751264190338227316994135307114928899544364600375576148578849950756077516082604942131908113327493223081111318777685151429460290025618829211649594869652353692865137158627615482825449856243886158461716443228441644747914776959391451974987854204911759618213141029567167076320922513006782251385133436861960663603298250480006418653915316391127423050466025002457443404063249947535493291603596003554041384891905838854138649079104369423928824214869590419400368612045345717758752360317755855789239249299485663199813265317513743310203903168065771524647490080911642722538714572261499022325723337568184811694615252535103088217193713356573411145977559629143135439308592490855448175798010549354609054428820878818968750886924932040244898223495587576508278617026847948395587812888163966163321600693879027441830519213828938348789350769516109983201773738228515150830546695977805283259913314366308994690149301904744169983723403432316224132708356525470794673333375791572552818353260525302857631547850139234790271026105086144535389341579043374636899614672043427754326200521345222179691225876367082391724964003643467145898443403112328812271966597779199409445043948312958074698630294392958855008431783499011291891126183958276128286042109669455920162170123146225843543327331650272854124336258282870760000024803363637979012787531414340649795793457369928780089151042155255757472091569695000355546407969952899392291745963165863850420040336431147178217006440946825462705917966682087335846428582225973940118200717380388458390687538811307704080631662799241209042807990935895728004026190815034727652896521347881713295454926274340726387558354113823571611489802892610612022083313086229747630870071239646680990890231708570805385533332152852576210028424929797151413997497724213931973664238874259350976358377189826617200364791093007786014424315554750071356053279980882523079283640402307923742632812560831634095481542995699678566767137083811475651141434883676906176172302028975639130221118991154989051789008282105086024909546498903865904802539308058981609242521859452445540633298117919765111550277303392989591882402648270337245602783550946163131239772958269035163968837400946455619307418456105576578915804505739181413064111985660919384585310499790364175423992614762502057905735617168721339117172214307943589674813016996980852824474397559016348619980033896194353113733738691938103154526089202987114006625093775644826211444626536686271600208139306222502844859616815095481959623369647100193291987552670421560878132619556400867185478354873568689906645090643280058409432776082117451157275024888083268462013313503114718860263971806604019265946677111068428734201868198260098428495857460367996634909330766557138878027308965447480460446338529442802699650862695730261183350068117482214836774238834657287611550663095210835478178381023534445447530751064232384239635078782714053013782548733360372372044957316269912377887193048561030815002046838044168274205927202724522345297316523693248820431435126285724593359121355117320988668519633042073452192090274433959378446995859373271249321774278993020088370302133454575780607560207220561761795805409681692143082211843663674168678864095952449731831133053553199666982553728504893532500334647512648494665262166541733695579344350598098931706253909614055072505464267439505808019390579151423030152424304894460562213408720892502130153411316189548222761062828155752144285035503837052787220067796743791199475087316337387062734431023399174284781698951176720935325997551291656494574737505349763933124191062852531788406112983181365652527576771321653432815838862708370515060485572108232199473607400115289372205855236232924306698156905029150226574171900735742466552743424219772944742950583345961465900555251787648072280244274568591650031551844395032671837284967484363620349940187168453478786524913249227345275384613561292820153826426342766272044853186413009812811885280096521123092364582860511206665380008156309445154901398783154777024983532441408158073261585985488773209549870329680498105700322259034139713396815681858424388355828504113285718278585829334858777592431759694249715889096238097705525184561176549220782100863831443294185808290143878763706258987466278786286017813937770950266585783112013052259184857790219978644792862227677142426811001582460120690425859171427223291527498496033560986202565743629262299994957859515981191294075832210933955646681400655037051471069356958538743128719508834832590558837340360401945797335668155468108238667809479085128198175131029976533520577506444029310824137486489083536515358461710087352199549861280873300608857455008884186684893616514959474846231510382176717456855637679344008594853833678962747841247673782491431225325196582301546954721367854738795096821449749601712374432263274158192743271944059260544665548377043053626096421658810190979617005349603099319054436411670675001357066015440800584533071529589313740457373267307829763226471590378872664965561716423199879886962022790427038999781273041537302337392740887637178721924249931869857945610334682654133398186454750617149581518740417133140500540644924974467400950822265880791277207626483165765922439023438371973202481853380244466865309828041440157920362330679796695308155964712428290700823112360785217567099034900546665273806543406831835705331057939285025085377375726060425513495466757440449407350375761688839122342654986796817888260443634840739053266200823948801200942600829424453014191883097172750480599434633837199735775477890639445786219137121012672566638717322132494434771608748408078068471501912823826177437024833987008396073850812727478541286952392196368840880376934243067768917080813364955017696528617373989465551756378661550147916785041759274697472183400551328802127600475369264753158129240410664341286439639000252402406915020259632069920053609231136821881474807664836103733028427227227624751079372675869035071284937645203618467574051630153585336409452176841499910358202107305150570046341909463717427486619956095461642359765335189216645328261906940655555613979372062682109830365254862368521851704768818787485553646163284361112052314960422393527268873266563109899446950518089155961887781301355423040843465189481782440864955926454235994240850245101221796944612324271484071923379304694207621844051384631967327258713840781195513038668796792976694446170996112981674395620950485522202064070644379987806816191614787692215653267020949477045768899999442671880035719521409797360884139893289733217068752197477353466928424200553810676212156607509497215648114230524709873582279571840735841900240666718850895985054467678025990319372147279154239195378262244768078801094755312710718749281722776846387818978318712210156226219226920901560214855196143244822558182762597945827705242653971113432667648592673768966072393861254674868686195538182359256613896251478795297706321596449098604905581462810209203494136824358133043990085010963315054771217739876915380091332502335147057144735863297686405807491200022820364019935630863370979015327810454224877211709269469913153452718716772280634151938962931688294220587912771437894209049266827364019444516343612082650186069194706655396897315714327961011006150895858929117755600366772425876163949366598336197891185782190471240956418920706758305802125760092111926074578396932864021445527212138001054162374132064556178446099560118352173719335786580408171839286603122415797880515020684878333219855784629138778313266822023516220632620109561852755323502802034043490053752828103160701784378121500329787549628320873945974042522975346356753798809289365734203534078945730601829447243860098943895461734408137735063752392882427569173151430439922123924301292946761162200306790661111201132332116878018469034556515764146010835043920649816198282120475721008289853530179119128912792044694330446565731696799288768235471840290847221199317235164981909523002146276662600324050058022917908404102689489905539049864453006409754111207118405424037426329974061991656928514993027494422299107338100910595001671041704852284254539072979857851406471798794580325868334489293094887621671022827122082189800820226313210736447762562293458523585823669553895839403959990780428886585752241064272836349473352650847752917106929917610533524431800329711860870797666533082264897054134085574602834080851549310553015581779423940107973865346550318998120082008032959087857050850790442967334145800384228358555206079466448637872457712746136100048033983429746594189535786064972813441463954302978608073548832294027901521571145141410585997531499069445354556294840522152570607163810155528688601954587742119047281065236176609155839652394619324383664173999599548390432468559953076478155924825466536574134495671883344087662612011674182720465003259477275325606277318395596072312772410423534964255332214201452828865971867965207975887462076980482705309511904338210820296567652719413780157575049581179573310235668165645315791669967974774951834657592136804270409687499654290411980146388904465715012109028171607154774584295297478219824675662783206184093452049189276920321315889788479198925850832370335070240788588326987382939435565335684153720859716004785705105010790738914793358005482392783849588863437445622692836736008149398108107077792476349199333080964254558139877785175296713909551376457220614563297781519118667229776465570447972468976628852490943639759199318831299952255163647922998700540382720347708958794167473284831350058772026574225958401085101078008526964266891718317843838565604684391455831079751399196245437774313404457507448321882655886471131810628962084645750372878481273671403704174336697290082759644796045425900071725875637373729652632379780217409142951228750530470801111332035600723251236164247276128267229692315743700257282616671667698121293880915923752200095649887378451216129846688367517735537993984999724957319900419144964778432653056602142847305591063794100864698243678392138734745325042455646697245343631196729756569702974281335799650692174648399952056288327788794853362377710624374474886340258185858098183026268740491073809410663677606987786301661509877060689597040016740331775852662514142992007006976222520616944675748928043260334381528618070475783912403412304335017618165697106319568105296548074084103136816721309716004152178692765832005488184868868177475899529689639916834377618638319811614557797481433637139839128219238745791156092361139285130571523618122427349503908533971588354444278337892016939322954234712343535921630712797045535352570992520759457785089084506776382073276568032527468960469887015983423230276700397121485522226080366139735640059638649601055868274736207692303110934995274989539808994339473451065817082677047377454733776466848509229071171743914968986333623070495615236100855798969906520953384853296210489786057729362809991936225018538541824216720061131061879618468964055586960211286763874554711010869870318369383466247164399486221279486594796731989779159092809532738888911150642341200013100819037158168138556508705029303310782640575772844786678869083424151230348452037087421361381267600527960822152572070227233579357800381478409044180323804282679313870370414055374099547267552464798457305756179070952830722306814755741527098930626754958927983640469925108566957945799052211980967178846426268498230426220268719104593180406338589339038750825005556295492904378515230313737558319493492485059338340662680897560816214188537150657963199904274300274212849294247786364876620433144166786395435163827558729704436387351492844982891160978000342844104354270041368546072250805974480759856359935749294391565532018258272407996258300690112021173908307570657120228640200101917872385387364455043977068218318813270870742497370302192940260424119114745164702567530020532408634960426434290341612291276413872127743335047113009424153368467682635362207514720839792464926976181609830916214217173973470347704937737970027808273810585939920979696632488767209612913806151102796064764022178279398719410982068672518408024911153406385105749667803054233241619462114080128412530249150158893668846016202801019155115843736474697191370291420591591328795749273784306819119639979052368152160998001583126988545890447183265459434882460916321249283539559616773707596351713732192873460837392977838377263798707755201052375785283841466629381503200762043213912682182022299160688061626761608519492533747856051774792273023505553311489043248955364209980497423499098746042077640216997391202846765105397408280823771146609928425920459269947180393395031706571898697323160919787484635763740005863527033929359595552867741430991495578455532502407763458544993655194849496286366943212331054350673788815447214904404559367278432793731511200489485631963353478656705812480537576017455796486450789139748650299716382631418289924875938086620741193015961422021157515047938485465850051815988265179793060382806079056976901521179322362919690617440473733862184402227689216707956358299022327770992767985431334296406305732112028665202502454164007676673837061995327184226449225677963869568088089718439366483339827543530876558441269552425889900658926429965520484760388175749210209715627822162978602675440243956312074096711863240028820814364082670001510692503925438267412714709502766556123521991147354039957270035100838481862762900854292258352936819141000307706067667025928159404896610831770184453085003553239381637878244858244709726145097037151741777905799715253610796198584854391753166050875312233306601684533779717344425564012135977187771450249529193518901545467039433346182135874060730821077345534412450768799585890888566798384786036405255529578071219774381016813914844458843927157279074421199668663820384765618843971748739863773626170503206215303605023883566885339047271217707426525378348610031529005784405399061881002137839105121899816826094608868273989418755502563102656345658564887922839310460525290029780368957942005818769002420145464519924097187250267003667355397118486773382822161559807465199769599159554445753216813039318189205646471820173141905099999343995095740377316788971844517856778455227201368960965910920789725595426316744244178479479480871534111939764216799565530005920490615711441843022478531509640297458526114682375590952588315555585864342649804423835612412961879456055437643495197206281249454865911629612888268070790016505678833550838044018699761273215239046123550636052285274073956579454904112875435483972486371633809970058591478547667602888278494301592323588360255876404111004439545518327081267837960430994316249879901198014300884449025971051254641916556975915791674815747624654169709248570774106026034761538769080876864530342045515602125758922388553635854475515804786231895619206648100487764911034428203637152800114976779095257178331624416026996903024320944979141457003749291267381707255748986314937540794810380015008855815700030132072834095156686895302260910726998260459291960424749950551718490238216133058098199569796818276551602488964233798288306036276665662094854628710243042364373313184770068463949329992403397202700174854596810235433342232907289552252653000690713743864444401505929534785271056944839483893286372807548968472808383278868429281053813913562846778037459847848308788595700525926459622601592849333885232798443484828785310232707836860732575710733012229694245394731434993851064113299199422251365591967795202789440464686442918642942448102969146158638603334547643017960203495608687710124717273279573784292977825672142670235872333420051986655697455929887353286751570497779555369800215429556628266385011192412825317408672537299799412441686025795077460984928714527101669415756564920932864225114725269557473042349225373095291411596393331924436781220820877599305629563850923449675216763380880255643977962282952482215782921844176893268321144410975727385377585097541880190475429850378159458832833005070042172460449961524234935643073950035878928224466978783468873266975842255873580481418604700164674974497725505553768926856684813233443931202845628506996318762189149171351783069399256318761162104790419855348335808794556672780484778928813780899092570455980237270758524908844631586999507766168469739766515072488552367850791283382648670152328966353920399600435555705917451932322238189097761884324494966338478540676460519163664512937680606126402528003098025202642495333684894397322599146561457498571501177496234870926732325231578754811904137665555096545162959818196547848156429845787277102097466498414007679313474656424146285445227960655614939451932397353059968892260810682136882479437599077355216424289919648460101462167291842153088091534130725643659422612814608305681989940724801982571193985738822767145725041922616666997584238665905710071345639081480235366698354991136033917755813254042393451417375473175621739071716565284727409067660975706817714762309145887316322106457986574208522959300069325452722422491616542907920315406867049033106743481916410020717847891012334384038137915368287469785745629798516108815293648590726259643196279704315572248923232742672061227893331156764675470713811459674004449963759071953521185076909554743504062630165948576421510354531884360182081748436448322107315308164625715214532564533724410706850210247315069017243414560186347218262471670021885161902192607839769825806960206855842759809220824457054808314948442321892650236614114143086293513234151100127615827122515596047619006948266109363355968513651397648339311737184740474511383864908464166489681667677958062241227131537162816605202801049586534030538113989581995347562917330995916451659580927772471176830079300358978351792203464639925136775917568135837344539023092285389301236885780304257142208230183673309659697439899534496388552131065182919020517613561192622858348748966970218155030449195601579499183737198542642574407417676960412257923497082665740855880413121098699093788940153677318150510500144719312203329971386981321945745224293798932489872597478740763761288470493356204089476676003113655807818315694578046279138718843958647335152198457688453295118900382149865230150937014200042313909161945866316559469041875923119637638763438622365577472612297186696469841852701139850637235791075742243578609959089202786651372847690890308206950657861230463984009516877172298041893851355170506603905497816116418523865808984314441675104339992276861372138479652971475786408440877601541142495678352470810172641543196081487627904503270640779408541421394497129464126366569233018297532765840488169456345766453023637390285520845620427955258362182938002828788725948455359636273550361407038781448194034935697333943615392686332970692691026819121778723435013717789607127154125598858032297975129523255374216697268734651125540732513313356683149226741989880628184308474440392553170931991320365330881886471526846620943944708451325503848792318570504342242050077331688495820299940458651579368276512682448517765143366608676445995592412113460417630382806880613836594624811604730500538157037780986708811106790521147323762837197480768231651001788547497721771304636161786954353989414534318741973297288575283279456931781237270969877322853654195508471583398512859917932536856578194483548053415631962982418003616859841714305412881885302347890115979349255178278046373291139138538079025648512577536154546410400784938965023620422041912275760196994634650470397728676235227167878616150096984410807944977278049818687646007168609918906839172414812032075631486676489928246272119907522902941702194523071864163558296331016862598869376280856281745973405010499669114474442817075992571769644457328195459119546600386769441844823398215910520733037978346138047179857633960594556203229346858820667058865014845593440962988204219125659933777970791314569939709086268043101231571277963301950916923209981171069821410626265573302293530788883319962112392137139846363952561324050501228057636208706157774210176868571088966290691263626604849849801027497258419886777287077874382881609914441744836510199371147565541853533327962204586975447320911318083471549436617756808033578377403051875353154407437803823339947935066132576972212326472804159453104150744651192864019333698831379079140649692790906663649141548606956863360643473539093588604330510063435980975091761971096876260909395164439038757616908378788576048754662956387355048618150669463085627912498814471912993447170434839129341164153924369632107652111980343743708822021759424799609080157904698409748393671706539488496958056770923854743258928753354261574818875048160955040400778147342988583591738823818808025380900464559140213119967410881471924476495106439969898264295735666042706988921251093184803991397478676996681561570082353274488797435378095602148306017103144774362450480792498176154500119383241826159531795933930676169976665640447913468440093898047920973324057963324781819087322371634742526593715549328367248033435124029541957588381207379367307942926587241306200757256674995585547148434340443667156141107485087032229350283526268290266016879397048991233147186286217772793149885661804388359902471007457454414574988055209838649109377670321258439972047619265509094436630679079000744559127759403612508245946531884493857562329453200249467305124780818513816555877284597703331871183993286563503506389831680292693603880471405730705522039665157446878240101793280241301368441716099808039253312496568223176793718024159145904203316808001255033691861881340505203608626974351117110132107700134774568775106928467763594422814253454074813108128807757685558180903671995839413351212629968389526236115496752221161032424344182408647805328373457861279666729133092503314906386945535096830766471706094932809133487037368153139299413856558688677673564986293634617324530002133700775629121430228404486558575272210418383767394240980649331297737215963237400114331844333094002201990427769729339509053816786702212225774222732044387148249046565298052091279939734868660339055148055422344080265960466740660991854220150438880770713927893033987919151151677798449822611831622136930208709849186535909015899651988911511102999633449814546446937656152886581397707376741811752821031989161957357288255026661772973129136780953617184354015715569205989380580813941895482630562928241642582930245570485643247453882026198974044550264019192578804124852508239271497817932331986844896777295001867500908445578356751035201450612524741778599620158082134914555185083642322504594064348073857009081981840770149741115193085120276690398167595569426440352007140337855330479801635216477304195572988595325904504796511014640345964826887816242153751142208299992673401962692482326445326468372669002656426530949034992375382251579836523683479892312195286744772602156410625493239403274757716138555765248987077497206517894379832834672936905658458539562782703543443470892722880786751545771307961197386228730468254068266322904334674193039021306091696993757674562618477947084581013456758896047426319995899355713458584021996716320759751884752067762117679889449803395472675308996036150298124965658389663869959405673775201865263433403130835488013412002017364705499889307378194821535060523828667387131583124985519532682987683260893134005518424996944215575478235143089314636877506728076139711957266747425103075827712194120085896968580376172804153562698026284499371307109503338042850619192397810739676461486780974841486294092906210514713707715746904940027030876168475332083521856320698331954540463911462026973222430793713633064578011367322944560705073665450047017755259239950094599522538649229955062821910259664827243684133324539401380560756974502870835907030487892389896356765741815137086110189120953082768615601215968515480676900705857206173655157673531194251926309187066370543750732776265166171542208695846237194483478009300596152973503369337466914777596427716423216074399665133495675341264741282681661882762098630333492091831099189602261861339065933069880350210524585356724828723158903720861391097862752573789971676202126607785177487533527291152724420038674253003889177964355770833392476760890110795613036052013838277458622017387509829701735764073874213035333727388548528450567208692806647571081752964983107499014739602186244895663657970959303009622728819554411469304300329409499120187389251825549309813466086067257144070000607978043620373114138151853863949507797766209242998397356246129886665567868280069677081232154619431010363070029313494265396983297648528147543129560302308474823311337646664162323912810970932493594208147046990265055584718002367816533734775800146140212469669722835940170491333540565400189552575365156458532324843789747892779103872815517932831092622258239364612974872538217869887719881474602349335180134502187121173017683143548111229851361060912622889525174154007639734207209422709303778360783172438717403534933241515987724487495782650346699296337528538869623104892655520058917915245876894801593918194693965201411826497778032147606023080217784665375636139224061860113807165063964007843197059382346900726178893073602443935422780101959178239039473934692260585213406046360765320997047062808834749925875635123724387725526374455578927926082540709838024298415982998304665465637330837484361569295059045391655184406934161794155092244711718541954341650625189517331274726542205198950148163460737897162793972887840552489865076474310431271306705754653905138739579441508302149830205182101768622044266145266831293758793724453998684871222218789985265851950912691836267199369714348997416247585686545051934746555222325871657921049794411254979487593312515626120135879840095966530586649456649928222997552536348802538318945321715696241106255340540881140879909214151243153434897462264947720721063379873238125125412592641934579462236363932655931720111957000208884650269321658428626800860749259590209264964170569223376087359066852657328204573577798562119958636375260018225455768272570338839760339308677637332023591118542162208366779014792671327003405682963460711790816929738911133810575896275233878328809366070843642222235707166355581339534726968757497139839481736982777323589658366837426073769256964506130884259440886255160862216499831902017233723942025526816684207786856094694776520138963565714793019245135700883529523787800341876729043632088942049432746203336309334842146989423964463673552458680356118717765798337820920284700448662601285400756919085516141834759362982764012770820778030836364909841079091118365826336335476427638381727327620372312761268233760195294922329756254797937018289984859243855066454834226086859906687201562849663434445002283686098041438074348241738329760836628461681929267745306588084024581270430905293240071069388267510663666336422745074596255386727655574335984115616143275047700560349054015443226495661634426494906225030657282928387813484852005361941878200693039598424386752806401122124810799905611531428527875510313322436077377894125348046868403321920203734429446479688923698124001648817648999218413321607545580173200908046966985740899169038962129490171693942410684856826422302908871020340541970615772238110958384500750983845747356901216621670722239376880766609238319840789634089969175303321626445439780742819394533773082636586003009141732891494142423638404790971550424778335935845272821218897114100696338410840980587856754635382705318725723152398043326046357841377284061828951453729292838680145758886624583014668653642203088059006294523570152359044807476881556728371108014410559995489007069103986330810468947363115556326979863660314084693882089401258425429271380130285268075271612131798450846451269185296948544360943440360472679028126047990351272933947313270433235655484791481807414448670201148715822651171566305841727104756478713857663534193272759208484574569987479293364586685369135915741694984020833799856600792721960614311565479563523585519191743792355768486153097712069129571035994324284197339807558674455061399451578065224057107775245423744083726915156115977367849906358853606091909902351476832663547941830652533874678175827458271026153285206818065369258201816938151442620150531098282135621469392827394820688805901074532736212398580713289618184054715343329775098874948999822169500774675294854045626261655705534739740248118269936390672306935235894172872157058731536128709906300913456664057515977254183293595284659356309603380807097489134623779283246671206087565223847921122122560982433191501728607563095969915541785701240518475039676161007450143111506579753632318324393047822418246413955317096219416529410594877169551108639033664983133943626544457110531606858539051493337085436023812098560739911054471082479952691213664176586821542454899160000882668409248325851884635162483547979441329203122049233733585999487295397487741463501259663955654098000149632177865063904121919431550607525560283949768043097443722562553581633428631544994949672772414983246742220910827263044650632503367115713974685363524242518123612752828356668423441858813899605064498422191337452900484923345423206577542806437881836397563300072818324521602539891425947984136442234555479009781404058258122510099512145088701181520948278167170708384569535854071634087427920551213614098725389922744920166797893136508808841540516775505188053571265244560544272549281246326651784692574496665872136055110242611292624437958792574117187454307100452732367668826360476151028472188721463436074190425374791711468411536338961517407490121946341198296925216460617374328111837938765018385630059678291846798059139009314844522337982213643142002421020728524356405475695951827877128021990605152372738458238630884348766559567453993889772652188435886727140163981353765626181934094913283567996048205241744007287659553903078081496483164444622016633598404011912667959866179157553680274227542560684878270511669150223653388404511730413219555461363805942664035328563337339307798544679901918183205439912819153668297262208727563795194844048433485338723235503607386566328705843882376107662881999620592263844174281278919205904354277478290300268510592901116817961317971203379183381119627882429141868317884577683813407148550283800483414036320635485702283093719745225912901447125195853936830271862785884261229121327075949428248722565121273045370793395750814031144978320731708393616572975353271149497839293003331024763800039203473608799565258748521554487425323762446502344668551210604515347717122583398342164120832936364079243375383995859590694683835559281183209310182779224194976451501604952286831147219983156250437354493998038943902391563437114006626741258318302932214837613666433664747912421394510323424433443410386481608708564854928288743499448947259256422067983648396107837769472729778019217939590562563636884403293584849242972276938852922722868601862629528132091498601584921126883042407583282873523685040009117260436583055776341354969418625479046062636598950566008434538404030322192611753172894783449467139092368982304063192074875117140120579752562100202763953226715202908251136212482346125458320797168875847626570424233726536998425457867486372499843502666322473473172578749071220649022631250280653517292984254571218502707043674817936504602768862015115999822570016109873348855237765575074246119085865737446321410428554496471223308172626786204869628057067957583772503709312093413636153452940651535351765192499798281487646937644676964486561488665237122168105701271205110782534173299421790161524562881330812741937679440950359877956378968371631928461075304866224476250565824935832310036287615800835384044447311313234212601123103039973671611693252035777097111351069430693998330526914255314003561002880684973834193429846976714693128935726878517666486670907996658281805435465427958259224266157318774304981670710587187894714671620584315294972095960542256196752562127023364395120962548446785690055825415652265207918192372044480265238071977411208841551223102810680668629708098335504016640089716680810844391281995005959350519066163284309665547653343885911528905761370804052371210860287036104689582801546226801870516353061543628290750707215828095129375245922512956598432353445676706758811472171903334866838139481203192739072679509940835149731316531181945147602190121613833822796298338856919645175780074390631063212813167551338300640632442921185885960336233935055443994618866446979426452950924919069176192543625953328080551380978589865198248784890304973533770821685269124160828097232330426288517992344035637528760350084508947180184521690168912839600372575387189901117713200206747611739532473577705808757664912893466753206565651758783189540550640430449614304943989348201091228703361644510652718142109476566498892278110969955143417774333298155106423135998294857073458914232447736392676085147823015117275569846555646183666434090754993825219353066211461290611733428833669761171763673146686893880881310522989241084147878277533975866937890989937051532697221395958210899150803800962900952367078964582975708734621876540800564308088633659600859441068743578644800886714789439112686565978563090632960763431266371496472431577535149252646962350669881199408475047125893803505511773338217447492040380423377363241035339100476401883505477129284894669756188423109853155510720658700982058790984817404018867691932841414467737536607293464196610607705582427203982278087370641145900256081799535712109669302968209189106586755361873840895348477503197527770541299074152101928080967607636162721641814010233121229414576554784242373529997137796635889438535350748044794111612885157705192205598608107197445371420945128859969808881431358327187349431787137419162722742659357184575919495900365525160238693342454154070644231962986498529652130849517964753141765621024605699070381917577160807352464297973753385703631428453551891531186857215467433797885761842405955225649845852063015760290784887469207960215631783222577255580060665155058918916976263849680387580738322576735433258998582790716031629286766201328745120279969257252361993194593690373316959598245599561954974782465547589372945007289783666619561762591309887143527055197660789695604656057841740833264116677518678867090914699638351947866583049661784113237903388221278851905583700500586829811144760701620271472230451141315263549833517687979049083676255873178834642792230655231213141882778698711002753166170400080383986983410962892141228625249524491817069441843688471812522256526900337288550083907960320457547912463914516193346241349495536283601132431707768910519349105656266633195660449484016884484597229097709007357643420547672145666664734251788605419336837093592248042245174019557778391245144143599814406940928148065594376953043346861212644427827596910383613289036811411998155857556297280329657817345929233495736775445318642333719385544555084046101915436989881125071243121893510478686165240311966727309705043417487964076276324263856827027880129412622529208004081071792771411746923220096262235872037355604780110549679283480910598095518190116126781526316578094813778847659075944913925054365672398332920928816775005760791740988808111394149003621022024100405756535673168091656392661977641533465761532657049263433020789536978406382936470504937099172770481157183743289027778749110812683817547236361910998629842084524265347993455721616606030140640475641102174250208029755776216320738732110230688633889720341126491843914276415351458888412150440168109335801937724344403389809163336339037831632718772285441649978103280548382605442525947064539647207319441072182867172432690114272833591452205112582449175471282252440545671332854688195147239575494717782752302065217144546445328297729790647843669444538939691539544638010922796092853432115444333491336794981331920823364275803017935636466077153038920935028517862268735357148054272283270155153653782445289571610497795533907074902739014334979883286948572451349425494301882962621499336647840771459530588143523140814334258884335863995450912890984063069281726233697063716874281868384015565312006853234328758029167825974217624431341783787065245107065450981830831312211331432448117750076643432220395870955185106657714007196914621382235370760285842571950431092183039226291214181399393159949555795726528400052781449329383243520154856040531719982842988536951490536891367906284483812686853212183297555048404395676155848841294822461043329123416008333747031484154376295238339331999079376319381038016218225895212241786268741915554251229642847053735840665474294314152180800050071684534925482436656245708035412015698121085392692485964156138387329317862193929258354528800204385017548467240709303573194297731339121072551309624678921408808853641414611407341948788681370012304074997292763949613186661480554651570612588622582783606730497540120777441253739156416086786994018330231470608549515362053686503893114223745404796545114532227100315604433991285589740312027487782999462009331482512726665597637783968101847733587248183216114159610123229146372442484651915313060145823936324886473817135842625292389901342029867065084176282619571874506452193521070967095655450156864764506676360313830653091164555509092881943771402690874451578421459206590814446867142515837291578381668229282268276251658363306910847720951352269882318332724607715170359559780688773620948728376311495692228633816378477977036238768692176960479901582392529069597652399339400281254629222550750436927297134851628252216669759750566413129403563443328112408594478545583047897935236347536672011304974667730916333833398792754495356705657977096022952317743384702254008199959588128172442616789860311610110751897319955121132011326809453248362433092612024100867722248126426188491305798137216095677104896933942196082196910400569773758247556900407172506708781715950400556646506253499011570472231666897395430261881569501060834388803903139272404752446180969626487107256304651671311271689015545083905760186777964445828997364028616641557469325751382820273206705889796226397712832419563417647078082531520572344561303768390434410038223817014638198080901773238151344973445412919348611901515049400803667273322216048441937659282193681103842647577706868438920452834023666274212754905685992322367656183296635137737778947315903245793011169036288111845211892847406153270744591697148942977705418493816356493691231228879180262502241106482919095264092621856402118690581693400482817318484417576217906408367598397890739543028875017667265958672985416162479585522802233101145787596395707188503606270266039333942012220068436995691335218266004574797525781896378312384499818394113499652526126845628926384923779688302656666536192947382238714819524519931540644828691820219058949121893971978735029195000433527164868493790415342420886893720599089285152188901803232492961016370281361948432665137448195123353667501915149248558691845676931636146985517596419631971367990631250688867763623804292000213362406096184546119047184652200314990815246287233391786086546839317202884477034173320970690617370572304997916431968747182898168710063609603933485266400928738426577024939176342291159580236180971421235262148589562580228860939800500486430085405978963839929728746871131589260441171472284811961521057224442867043126354808623868985188951691959275237457328218813691960678906346218768402865227200071435486155204007458835858703558852100854867883771877508497304386612652501423156166864585532534122030927024070231459497907829375519839551213100798531815029897618536682755751713985746294850383441724663852974378056714039711874627974123397359203895527341382008847204120772309201576416209746367237815896710352947785506013464076684135644492319009308643245598213210076202656442471324406177201195770222722285524469263723923025756098997818905402981936099447514945691048497709138217790332314818918359049427873932690901199273834671807203281969133481940505953582035138429048145232006192236411080873597078115986252646873558744825327869984120671600554044633860469724480140266212994752828317459537467941551670025703311983736323358901584593486568052793796750909693519035504606172871871312484792497837681240868314764883297105749083094549160336100173374225790222226753918442316382726970951382407816667497820928732867129062768819443260830351071246938342320350750840025283918567657565881859588536365587150677690644150264166077323674496335141247227406412562111344798728146115949038842405801302058219283079762318879601027590945788807108432186627934537605555094893976331999917765168346164583496375311848062470248150151503234893987720255154980057728551896293721064463085605360108010468634170022525785861462424292841223330915505696841316433502728094855430726910004541573421491044902399925004663971143436377465963159458862948360346547289048010975291313012350805313671986222759588676258534828789359865491477158385921987565833721539838727013123355251397082016511834851075673989933426625066368811416933506161432811360208037725736590462724960598530424133832691551406471910551057824169761442254198531458370683155711833596651002734934730562168402536392837413398737656611695847410540614449611733165520411874084244324819520562212967724464691397147275270868689707608107367653478091242862288215010404344099621166387779360179575512764613862891276025286353870746614040371054902373090480908991443428528188894511670714600920001471847540024303484610160631648116672227886605849470656711433540072284498787776717221777224136582928734669802784469226012565207253105018538219339201659630960864064095993202831419334217428822108063386945611600766789478690658594238969108512776943814544520584701869864633223966743147750461028630311974575164183563359252663352971622534946299824060407026941800147704343099835458162261383242709227444130999901894730486038891910589007748651718939233522003787992515232469691039509079446397706310926669596965361235062811385626441186044679792196098382119050049974223558583884353640637750370776475693231300320956551611803227890626014824643617208811956632686878938358991979654978776656316528141638115437887791779281589144995748361836965454660307785409170131653569209526330178301870207403506792531192052405653383594425495113724500480932524326475648201227946035677554221105355933870955032851354372476067345504014780885859982897644644698596544837558085043903524062953924647054943093726512452936653370625266693439291408166092648317985390933079214583383362252682250891915001107718359857150079523820313544161805699052053119954171330983243322236329487520722039982305055445553634079276843473370527259395901437810525610651774131643258501880466961017370642538744405728449717192331321912033788932402269764737625011714787777177764104020349272786082260626253588029287172488897322143728376811812918980585365427475661564127638827843002385584016433959944471326926942050726081101650507431588713013100445129741570166315965789237297555728501862294063332821663238002077038500740756328997174146133872377130449985258399793005768228706013763411882327758939124109838625439473143273905901425051834508744623886676567756354019010647427142507510513475586388023860316882657265957108075053877457000969950649942999856849401100907694529583499782847702850587398917383651470639141586633449340530456911611894464233618789298506295701597475173199733857603782701271495907766216698396491998257137895910712186508258633335998418216371732952478327403467982981163756169446889413958071218143514152097250127813921467502708693597642899997713024048754670360711723301109833248347991158538331111549000078061830870940886850045664609252122830960911990810852866363758850850100030368571838660749879664213018076604710325769153404848945580688434838966953648307953052525032921576445344881023376990695616422626576268270759847722730311994897320959599952076440765451461014709363164664744641513232794784428990978034935438110761078858078911137390130501325026917199826272575832475921642695434303605727815642900439542263234602414632617497423746077845111357564250604363677643864912939334371839249598906957076409618714934119138317649292394344419696677149652327802471741930151823364791556634489872646966196852354736851723896098671535841923157949963878726909445739081905923243273503989519611202205171255864200896450517623951180193278704266938995233588500581286990411231728782218007546723776984429599804302012647960170270934413709162380676609372509577845808592325824627352513689218536725616773935810102275968160450485726632203114468082322051993577665360640065065562423120453863686598713849207768789072734488872526372625613890045917651508920949249310807945013017418977003903516946123256354473789003395884132626735901412941059978444053833710065766057611887409933915291089337181413052151043117124626822575620343597802721518977849539815727434212860690437578610757932397257367169070446115507769535826182242134042644416131808784457244978925533751810953822909477227312561120164878023043202629464113669789518894898380646478645447868089272108866527687861690217968911100648472253974546721468502128440350067179794670302821463784608823611601683699539214501074439143355364029307079728209993905600463522384698742426850913871075603293904939046080787158611630328242085861949255617421549118588673942271068457731976838521880495652891843431135501595288687874984251164747919509227769033196471728922916755656910142072207488845681910171854895637925154733043278377641178941494485300683744054059376398197538005539528175689192307249335232068004829825588807495663100015940154782479737381134910965829226277037824739466284519021696683424893148277055579617484120759113701230695766454940959752096982740241545825422351803850915187253009254602093031521768378976560540378140545138759367113324592277365974797655640292918946385370121795828820224665057796110834397053368585275278592248110961752840569201359174361454688979902205078551490957845773928566410959098149312677766683449882855415475358079608396849070655155037060676364253618995543229129537873699497153628466879882296375412543683288125020279228965963413870044736974732606273565352858429436732978165877532674714517475254112665830739938728347322214592039581640423140304956369566222972543612977762526237393028496169866975206370400363094950218892112572958879349842595714006551413069791848000861859245997713576728280430571971696759066239945511286550659953250387775528444510058482735449274281517866040480208969114513178858870575371799673612960681484599626974500382371953637146088325988045725440730219211326911634779135511555703718405329964941953213322016580607015050075085749657031446993399014471918566078660152334474050567207047052818143268179009818174756420769040582945990943637717718054735451004976407572320726661375477213278584562614646680125425980181349445059876988566431910134830140608682729136707516462432628009306999533521712653937623280792974018458618669517428548609413596861636360669335828626709407045723972979345186625493380736616957903409160933223856439176151644775046997946357852065397323516553859629850723362594569042574841231697396315441977740142415282014706127284280363526978297149787038306349153685492227149037802017079803932626805041729340776345822825925185257686297648127241304039564543067719980567247454682223463431608879517247198940245282549837357909392478217174936756999233497803263850238432568455825061260939400461320086494547201836270320447629628795479106537104073569536078398304534082221271104797152253488970618076639390224771087458403123619437258318279470256171258928716784299729726263052137837093934682590318743163195179677054372341169238758801091861127826450549783065437867678300920964359252023947272919743570591705871652297176410646980130894428785571596011572404138415035856921217320256914817031526259002128145687901845365867336601681919267843599879421218205338866449785829645382183483841582425440515417262542914305532422602690265158000566903013824550618296673740122993618636333447795496743629175037048949505610612423500435221151561145768147178272127041399532795611958855875188663493295440099951320678214005956908367361522143688585104293084307539820791404469540032888321200071260816707183046846254834249515502469817260124676067476799589522008332245835644132500244367745749049677650786232600909483511005248159151852354110639906675408968832575509793201417772815336073739898327632315722359127561243009398224553133327316785126258180783325557088140543227756260801379777685486251797489078795548281151737092353167105688525397030266003079434519125232447529415234396720386351240282000855501031516939482954120253092670205293655650316046142078518179268908357425020797221316840848523978460738420632055772012757994924660153161740585399531060088961490701441477333369529882271454169217436558410371168137921910682221088992030670918190242626132106907437359504449333022072013378628942642045262825305137958499014357713046906541426669050313616879452913564815580402855389108877076683416486078173011991255549304921571162079364776674841520038410825865694519760041776527236947735864583206447138636011364577694197049001395861050859660136763829009151005072158165237839837883490156849035357167831398942258087680454257555176430241115743629601571738028080562304528023561648520276746712473378427165944479433846497848765963397518141922080861668470924336557582118627026350310016411263995001247375263220132038699665862377849379870404598017826666404879550858467654108490237584411508720927698564618673803555552994120705065651416101835352499658581408726541177679040600511153403998413764868159146317920884628748104748550954899346019599645179570273472646042105856834124960810738412396973823328617261042383791254440063769691575775844106153478788036947485126802041617124796448872865999867870477360883678174184301849334390229643351921851117343820047909422555245225942216764357585644778300493246724537605283466330960227448918989271257176610737269451223611796132292128559684642616084303069354055935426296545739587152768576532934826207092308563288980477032437442579808785632843321028874753903789747572029443772717186083993707540208512617777501950270557116158561722560742618057175459259398540421710358004386142018984717336986617974740232559137988286145094900970047498253541044249154538220328366725990417724595650902387223543252961382188289533849334217993595097095206600014397319818175702678290803793715980091788194254461224975302650204492275225309587512941593507391239324167359439822186494415608664164710776122341803179809773963536508353281898987112454944053377419813576301101321841852507376639170486019250990719306912567358168424603503329401508068579687283711749263977827063295069509737937685731103603061435442292231361673393430692953099375819650494929088986098499093828162575395768838813543150396735295155556143878676336820213859966878380871670448500543850327839674664313341208464875028311476536635185118077182089696616465453624549334560513609477772033156544194325622298187983661460180535863180834291021170785868370793924535426805744747790966381855124188711714308788214879912468069017693382293098280969795292500820132046033048552857099415495805293088286513775753943306781238798022320919923380587848050752801845770653334715858376581289450968018052154292886768587997847328528236248529214546146384304920400690546434218455660867654618684082396958543794161776532887927717574541927606058233758049473686847892517603341572957071287706636630170919622950141021532548465172304037093082307180342771471352531914656313336167383413114175668905705085847196140612570792459907317533487611343721759400670802503560855879437173422339464376562796794531455618738903153865657839216116384493525582310665512719912983408952114272323611535115002978541978722153505337248903710707271891303832724400855809801603943331235559215886269183273193028847769123465432881583391958924854095769619963807105873094877962684721367290908541748411600936511820103835211391462318771794555637484164691506179423002653021403617108541787776420428139741711603576428644835984565673422043739261042522600900092800633674680241252866628136807198534947836219852826458900704261665414956969078196275306016372051633242809946909851015626031790546261539104161766677915704027765817984681825190134722054242984069666237159721172469649214828635767877971552471518523904047226207243072259478784328576929786596172496529968792024262284737663677221702314362487171699960640717406689899893788270965540095731221066886073025449096938629781373225737551129828822401875950281358823494449710334611540658766454201724567908452964157733208195525031518121880781632231032771733973180403727534070070020217225409872395882732782631447687507463893109732154298052783697842904721550464234875141975511389167286451717531822530329812234398339257594437090376988524499998336195355906966652927898068527518782805304009757908719514982800296842504711465893490540172422512893950036496039006854163835440392569725057907383391209319104544252370557495114553860675643026940923725948257611322132361420614704612930245980624553973809935901459815475749246415849857117453787583228226015299260465235926751145759830280487213642158615342819169444671019793491916903669488642699154336810906196550143495564640113296962684752460135251852483366821003525382825443784446044365812582357155209912130082428507577427045290330386518986357996399461003680073755369748290567680221823098737262355617376094188415872261507836042140825377010523172394071881982135644065298940766071218551994670740447846465816404038790409236455780911875924695385791601417350545955561297058040020372112139509066718725058045520259194180826393436706575156972205916657135308583934165027837926753995844879300931500409829268485599527795946601186596748688743065508870450402379562470170991233978011997178080961671118049346371942127737950258546281783151158455184696832541465685147071651456568257148057448517567724911545652639105401656620548056459480821442027804267994298953168714274519216638178159446256391080698628039652945431474116032901515928377771837585511753266972081702555182770512696776944797920998883895251937991443912317332478825698971920306184322535977831615106812904415278877830470956758682489099455605649349531610997283473262883693744894725927977941387541461903381206484157918120078412409637561609727789742505345587165080940622717744464433309087410463025770748085653412037258291357137535288674488691243030916805967926287366588402982353309459900944663876750860971854894222647519582428636005247544826638825249844763390657495659611952943852473098678392094980010554907168668269374433737863574301201028716688980007090744795350839445519790483893175740639278523331132266677659395972649237339855094682254698506391663102460353107094172710514943332893794895844386046427743259399549623817087249783590673144392009421733798951756021285648352625965019901766171647796552193617835438770091835978231461454589834630692334955384071340650030392547986912187455803322631472129192140550284786045759393727592961910811584589045523766764361598202510982254700906064938901854363184381213545110905390339806753423737535599337146452379618998940396543457532360387635442982880541403966966522067904135125192659956781821268728784124592185821324854801634943220198142023672247765887824932972477285479543550895491999441217486143091642361166818899815431126042401880788845437490886130133680256704650907441911191050839536592446677426199794338146415477732781487069299315157546916063247290921768250997904324414901918205001540476583790238236308529425385293416938243444133399887186877437021240205035085848279039898937378273445141253912391414054645139970282426270777423873020432881753948469287942804166520596569535563148277326322496422262021112553854331787702737585157622098091283615273219656252968812338923268379048826364174401728553922687095705096356770195459707611247306293570001560235157547015014626882052337798600299702100807592608340798468663343353258683543631458430249443925035589361888984396658730718684543364946402145596438073617081084659305954604369468362414962976298221487025952316228716750862316563837269112483779723551598184212380629388318277392109297268586094030225521541553929197075034652605234705870102556057173102216673379384234436886615992302343072738719053692526637454641076041633705647167911909504188311950457373170998337138845535538026272216855483792848686860074121586155538169565133751493451405723263865134839307387684133317108756819247540433261268814762593021267111758742981789743109285888279187353883455587441628130640816360176761074162670576032416624746688206389168554343804779819497908988415104300348927229869404260019876351318829430838979457148927358636379674891967085992055960154303424692578034951981452903780439500435011476528947800162232560701634572277911529789941488489218718159467338568601402253763467911838184263835848914137909455406309266563256199981641380781731123428643391536424288330255172994768643414463318411304158142225838053876928677010778409524168722333849864770325148855200972686733824359491470332201363663502197112901417431392821818919249651929060023886439584113511522453617573472442700936381246667879632683955246844834234926857068528590011420196438033645443990505856306067910135834964960009517022791863974424665699205358798523054684935470766861259016389722551171289983797624470586047356095816199483674796070252774449831519008768378354583652094159721642737433868948918395066199076659605134530072236331964469710004366642525117628775747234539135730399202086868166439892858759780169631363280194419349118816844373661779071133309500757285102979467179219842420892343031853530600207894138111854608398556903711720939142490135753767281730876691290759964815708144236824166040994293078082212296538971809587521913263393495296960242468997742596127910300681886799596202150910584138933384574365289428361812835282242483070247959108195460348351235402944224585322189794272426600433033749988503046569523324193902118555091705720040796291130094741543146937797789039581187771222090546959008728231916844343227778387294476624863622355052392193134399205557391881771377160242504846750587781163359526648221462012399669968377252097775721786975304566860449995191715315906389786097938852951694551596173267054903741663352407162498180609867917129870256202991228151761677672966764603337775064602393936344299818840949392505880783478994066965781531055379488200693934948628404404542897218031125501612585658712844976596910894115047999647647279865125086964775609875096424106916012861669068197580284998525092189264330589069966255601360745667624343199080636914769993906050866387421712779642802447120204302256209055166766335257790893387481606299119023038058115248467603102160922635405935514045197492727767698795342519674346966804004054662380427504282587345322119223634485001135592333837283619199502167430418952964086012744670361226650816553062151338295625490377372373990366054615458531981377182264336090621047113133638230458973363768748525424423247884238547679377960092503468901398219116047502950257104258542648130303086043254595335737667718880668870391977365486029181207469550777138293177386292597659284391489269128737820030028125328789303732918342342958246759472123185363856120843699130074903624643802546495229551826789166644807715327457347793330305669200556750812050187382758291879515207871167386345717226620457185894223668368739914860163651196522306157132654060674154484178842000421202437930112096900853272193399458991204144378217181084745298984519518093987405254426981917903342358127646472121560836773415143240085883463470502519622253972195059719312872640695110452821950999711216227206561019749917879966293611284211746105843316157887551904828757291614301690909868153666076194221924095119635660933637722245855176509389919009462308562375281773609227550894859901870475283240802597959947476249415402836930140200925337737231401749269606199381080403668850420931127986797938538395658935488340140018647623178101280675896667864723006742371006575776325196279488905127497888158480825681890764662551983497717384907260355340960163289800271959278145766049653942035513240501717715402995167981132655718730929941037404062379424106339072969719967473818996722964145946784122108015387223053779781124267584737572298162562401908127206296629145172058269305559176994374414339007714410408237999609219429985951628016354933206593323450477560838856695552735700745039792281382845553616904543426516086461584933732042634371883348613755294043621632574212403300779692355313954791586256823729976273506916066917693906457249847869423801834628778821083805783028635902537635492700004080180351468826741427708563818145932163730996584346548265011597875928871145449098504907297707986017539984411195741499475990240122680623730513837139919869656570224555312787918941741056629083613989010258666786318339661261843155418952185076974836607983083121311521421758366393899594789725771038571250146184920280257869005090046836396550476485264604556940553353278513337220661172234531254529778599899931764328788489499839792049228949511490069713029050058556069123711188119408271037998156694870748665192126391765621840141085479033051858181196297211124238948658349657118241414385136833757365329213926444768982277855662421355092131290121828151196096235873719687486707658419919362511344791012260804466922780473903069015885343302669552218863314398729565413716283037322246496755224733925642430308494477222741232627127612907588297040605195069432184858298366233801719606280867292941444210306552420080210849127136782115543743371860728624568268181299484040420754212842201123803994712317927997499109946680629821420436526999109314869541762660184577165990136635188326473017198020911344608583808506208193910107884004756631203546257668974638840736097298759455865899015757511495251778115542727527951416336823649605257245707697425488439451075196784028936990922466388790032302126738183961195220076734932699231754964951071142607309039856422105838944365190332298483544502963581743554151236025281636883273327917260318473684522319983666575738506444451020314928587887472871300201652932416305092137434765745006929815381003502973915242606886853190252838500814772508860354524671327581618015364292085591436356861852700118163828577188507877510939384285208042119418972047268227959240272814470972114639480647164060099806108026595902028996525767643648137346392669756210487837892970093317579493095332071612616668810329379267613433981289866118874787085155998863956584931501888063904918806412146038464102517158961141032179342411573591381021628436223078674909952563294857815383302825782598977136402824511281460443011356890112596849645322443190657477840901030134009832403899811411110610512407276941492059792057245070717968571697794407335682667882338455944296615347650553990870730891592149158310917594921540607458059587423539911056831100595337144704347719843234565094399181666014413772719501615656521711713881449560526767382197783772336345822286119815860834978665846621106182042137198307412724194125338747755491670373707514741071825785656397820581312601378186500522690420558314951158590247715597035162767232365904187918966316650993437371812134639767583823048165801521835972985294285464758786823975852022629682910101204123867603492834430635063077645133824304151782586522556025139306835154618195990236749845080559426910340002523772039998929214852465826798960198194062785207286124698590711334440456242134910435355640261960362723100335415273194515897917105670376654543448009247976608184687808030936596921288926979743523202028416110307483830753063479787347614151126301533200283172791134920405763990490742821698172891187530797218451614537741369498648356752931932497857820214744263481463658105692602427774357618243723010823229863192988345958443308588328891409248447425119281846357818036008670250896450426699888533868656302610848026598148243959720727965975079828302999989860245167549268511086000961525275367787247995203875608623869209945557466449797210865423470828715649605995028168140313091600134891474583106624584023938387864040783138657689085750443974245505973178726585308055927774460973909643372655211029997656659658363267695187886863561407268566664154644465369146036142693065868489855760825056554277652641311968327430376008263424186270185501515834512038955460855656565276586844184822309652607554583337038240899560894352465892094962991858974797634542282159381173743141425696717401281184669465614763162910144959735988475073166282396403475128542781165706764697483724561388953364407531303913927896046086567550863921732563388660293333133639184843137071631426967450767536660962353009365282428257112601179508232949694434336825079683454954564431256755437042213690434998995125421640548520159650413727714388706856380383065146400937484729693699399756015731959448353286760002133106061852265842057578924767238909657164674895153174313701810602604808584379162027069297053548499379935235038883786336209236566505604247961251701492134435448229860007230437807543196199711355787398973556977463223752489953911768999287619792977667295821746426608382234889023024598240616072456518059784201746803342774315619995449082936226565431438981955712723938607319699647604839198744191772886323932673547715266636589534037711092838758973214845213247609321194547423197238333589427573513465435287323077547185122139227430702345449304005910232460578947096484707238778033010481987204686680596457531751736717801334026048521723109902602609955503599430389053606672030661835624822855853658120290271225505604637853106551900945437920140636468042254963387112524761885961886318213129678779801263210521051340601453358669839218011075700864785895417830178247165753199968360518897023845362833190964643462055525858694949514857818433163331352371173770165206140028095129554919933152198219812794967832556882310227326020977827222227388508388581922681595735950538943663493236281064437730832353417477561878332164952569226510188021931663712966115198228013287328988203455542095396697386872891032503684139801250844112683556044804879316740662051120171446942020250957915961850223088508414069824022820084210499455330844338717862949214349926983967148140984849306002306101950467665696725328195669341096437778879768344997689551275295855010126441472408954607689033919113925889267396887493737207282139565534312477262765295816105822352997963796291907433182167378838789116756364089904472136916886834698848842752584597508830750379127890667477605153110124763419516473508880825037326879737584786989482452445322131244334648888533343064116229329223365386284554243201736854005958540077023231267466198993697431955627561608411810854130300006162206283844296601566782329154636719057900944379482640814948969726189202407957767112170581429148446751269054120674127795770186459296777670074010083044977160392414772958581490210701445217705151368983126497017384728553238334201425584646161983936491287449340254600341680881649457480190989431132932903402290853955147443973839353810360551404384294510137565071595026054929745876727030986477531239929594271304361301760122801286017033473040935197427849907741993039242715832195173562052305590765066859361662204597972872772482486783806019396542036099927325050648012759655096672889402700483104562742461227559407161405964777718569416906225725170121734334978899670993891402650427338025828205844917571784684866773494607142107197762555286673194496891996111653186639324471286505875208515395581126219777774625438228894414215667568699656639836601702100563670680818052892377529769914513807578881797754816364556318322486524733631577264551707374711873837465670461000304121110316421977435223273796474097980650819430759998876192707227955050624929691349959453488409177693895727028184688495058908837082547291614233560325090953888377051220081245370625597408266902464645488436199137434548950180591672705639191627353886766519203087252034638365636193158519662713308431678793825197914187389374901460714863510038164618498206259073826560466820869855836959777012809553095906836461785042342975963470695064728714195187462564466639695669540441823698619035218869408946268626500510821753889183048587791910066222791440072217733913608137174384583925971156657521620076323211386038290823212939679914392523512132985976898113082203677274209303746674160519407017310112817502532248596477479008465316169758707748194094999006736100334168416689041313477058303799987573663400708542080946054965264421434153538721313170006373881684757630568460256212849391919979535898964377788232806111585970331359318085983582139678838441566645671722582049767352048505785356421904551890558771115447131975524029602431452770383797182124429654050237766313347616747028883850964664640402398386988417655549327787189234086160617839261225697688165139287162022489818242289604560025883332000972425308835883559177951032364263820728699740541888297889266102606173196361251412977054550081952426758367978421907411752700429948368976611055220556414496549164883398028787097679399789579662859677000007926706894045009999342990163078677442803582997764928063458218982168567027365433468492511050272012372460545413671867086452376343706649426656121248497261066884335910375428060814139094195576461792103013865615933847699529280409824320510751849704504475254957386383229926515722632375179885415542263742498926837435708455998991415490493461770820381548416039345414926459934820823731365323311267837157083994677999774037046747249973272347431661600641538239374365528960281716411151501981718500453451040131367595214242812030981794132316749756458919524065331216662421366219609719386766984410864562030502226175648362216055546807529560608773936945025886648174565680176079289629570086235934768208678053811481323671008215503771250022038414316882804637586199601964300480707361113541692075366448315568394313262580617839886984904716943041223779064672768412344591663003997615993363372921386553559466185636373169859418055247580500423797669771194195279461971222102354079670592560627645317750967195950180716417233093672434704263696461504198379113426126209198570368117829012740720863528713696060057358053709819569804791379712835184485873016557966414138429427186011447624252610310616698747420934984586726875592458224693275960044244595128950639948677413792508021388515091445712335220612850269604608773827338008855015749943752230751829031464613895581540865418995703870816379785234888894928362117070832007668563847472452144680891671941705377099214465633974162964786002801549880625498497036343778844131247618096958316117750501549618444809407228568405150670763885999603931879209256181615751696060934980212404733030917154200450301342419788759140568227477877442403907184560581823392442561199429867084264937783717897396663046408082546674760868020124435862518247983783748071288097580277305004955172178974064501803166380514680905034775815604949467315544560769504998566168236989675209418047650305312352163046953512184242999439538660775626449958927818491738347284641229890582864719361685095554771137649827169202086995382402703001445740846890552900123780382372969889046800398363633313656576610308231794071152137977487534105739139343358159398501497377919010902778237705744734083201721916223396475334104160962032176179097278432975344954530799481704011168960129801649192152730532544548850530427076593727222708330230934842689639814457695309048485711066741037912224872448940163032062923678113084181602540306965206827288419078588680783197873822846910532724363891212743036367121928614272825669239736843206934560616359088489574538161275811041988926247117077359034133996842856820411643645718060309749475858276631691420207458274225291601455441842899786160413995355562649877053746123375449488856863331837591898652827061158903879455839777381647629187334631917007356080779517777786283753344325751906559554181821194654678921084611963922114715263685652960957785811029219891087847237047857456657301210133044167180293573569574582184630964459098862401488708698547535841652421607240898534073486827452475464821475929462221923839054164480958482165762876297863856317470614651069132105508127255180766977861750878395575373481197211532126874613707619600845378281742013612601577071434532723150732895871558936241945612670140557005208858314277381522483302366754308339787885316798511458564340259464353597888718852750901916596218594753166677356452882138109039850428193761927608381326240681839143776912526338105312223927816153707581355397897658147419591546426680688993895191187837539063799309301480682053678639615819483400246098749270357214705633553975245036292548878578439227993140696065379903205749595700230604363629700008872152634205248518768394474100529816374302788806970153785656192716918155768456591687165277073976677672371673773062815513085438863778177289296740067690074286506849348862810213673669875140253364495036130290490992286996777906884912722972174398805897142729094792178672619961229508989112410878987664502416639666930921845017192763087703190723226986556691702172508400351566845862076188742188759374876769368158609356107007268998908607086426660294306073803137784733769631131778084100210744064564346756493655542516097404624614935082281834527681543116634376398605037368274967072043871916584210963680886510645485539901416294391388962767912450866088389912020408557038967780656403492246088015218463370364039741484373284004581689960023591908611238546071913319588406481706369124520177750309917492250691460047039321570201139040696564690603418479822004477150316472873056781392644711626332666013729511346645239848123273230186877409576906457081245515200998651066214652070813450655176251144958919769672638833181418945529048674606008204151917942795464303064322133252797766515281245424286790993323855302108673502427775283253280461280060202910391206662132743159077993984201278411736328817666160596740991902757292682361334996200852998222819543831667104614576759572622478348368883685134811776802678650463323722181871879986729946683204310677165509634944089542936523256292547009296195881082084831959745465455171762551863457887615649451570267940581749490721267929495755708451624478451164993753891993770088091890749082205898989181985239025138333319538261337162112221983620962784556413068676372368852226459287873178211828494370186150844126235338593745674994782441157101419205235256957808666551215811347419257508968179666217402451605005225869679620722594636154230990483294833837816017045636490699235292687783009956186286202238399727760280928958125045858869553516299193054472696031753650276699091554043286061862505409688771879749848071096961569683662253764353185143626792788320940342185796980318218369670842578821663648285604039519716496970864796074433558132584794063772814739364558651328815356918485470183664736818557467269384379629371096889157491228350782287211717672562468632562420022428406243248404664839636839668297556761211557175788022279503496309531918541592328951504283292348367837697661959420042142704234602071633978686225481686434776472405936747898503360256294350233178358994868268177791880809079194747380454404406037845358449320649664378450405312005530756542777506414090880774550505433893539734292044377792749964878388847398308764162687645150038196703798280959111889552757094526661318160239266047594836582565433449280987880711588335593478880105286230350813861139977086565816689058463104391811940792550564093056501952064590939713454930640828565115397756091360199212588786101740492300304813381735341815372578440872976058363674572503740259070805718626580612968991475201185763900097252498193196042289345574491716117444296498795237695936401119688068691373159696963325707812019107918169678160158330008238497212964980597403347633370723979946365044731845680882771002411891962810713897273993996790207862323441693538485840355051016464548377643273241406236063985556353543184742290311715400417984135470892003744704964203927550605827397668115453910195034897292197105493316646582765755805839952117890560703514038655345366547401113157639798013426753456617078893553733206850292282022015523698459830870773714200743096469865686843300359747037041783366101697045816960321373787331036126627053359275816296971538388480448632874069320498420974108082129861765107242672064110412334795776786878543829353811732416166126009945958458510476033775485785442028135705563811853463118099897452474879512926969817741670253076899400523150594525306952392459519770649354662010314284648601741346026749057007452901770559967994396874837624060543807199402495554449809140857191731546921844009230896654270466549085366786968099908768320775133971674335098062673138036176017096523210053558721659023266702276677883435208694418315094726763546588771216339653999316250031643323991062218904647512397507800906781633205196805081542541308369827798069828939310519366323354771405773989910110726274155893618489918516089341453932236444111033581581041800844568512722986096115520122750949958523438259326849693119682190835492253088054696918610959010162143282573408742384828300795852627209919406027490704926026628536960388248238962792446061483837657518862014325406919179074112953554859038757698604623714254433712519006465162623696171209304281622041635735655261594254104457382413864593094718506070233921989634122707279394530490884828566436228578114453144737549876224869675719326390385746939349120808187882206279676920892520164673641799676336641306679715814549934996078352732173312052096350205906217308495211581363389579328178993529841904868890231568524223292500556586480535058842605542362162064755314955360917545406634238553859524666594705587058298728672937300410997278995852823221013417447913388946976325202096147700379510703804934885219094395171170913410385437211817743761431859503508760249559128031394935437167549487207644996581754504332312643609726322394187818551499951880572332504896128761657226428737287203246533045629763192899348814308665661755352332077679173492755048682371626993812183014206488533010768983637246311988669597878760330717864088670927054098417827284301590580093993421635234868877601505192653017098513486785568767979999697457747792182299198710987330783986610103578305625693233342662796794134995111666364623779513979906049489333993912467591512985291758544219659405853312214659984490086893737860401442026162497757239010787708980419843465804211433461326667284208194825071391224696261973818291398117768993550965626627205286736044427666548451746619011676607337764146104166121590902527272208087062452131159126509785070370065216115695789555686131145757063716654772850310321526196475172425961184642090222281521424199271119626316660953769472388221221293784520036786867459405935453350547385975623575403812527314500437875465574320466167350641057243037241639065922464683208563491540936951790082051890845864777257476402890866604561191734269338128994801609865663169256373892004848867806805203654977873613369364713992683362135546026814903448290515889695612821846909833658566526410692620941893171605622106765329355658572017497925605113180205586460051969484869548921809089492994110324662703175888514443883970338949350821339553373235666417258842100089839454091556696611911642175620346800833830823241076282993653792894123912032444041113224200651958871859064900415170100191903004652268073765057981593544073543154214822176278811338048231760091962201311264477994031777009925484323386846584741448803259856077959735717659223131283085189525639326096686994782452842104394110935602149732997725435243563455551333331190405237929451323527230557229118714087138357030084785031258546695544825060857037503822156644386007095043856633407265103067454018572906823772589374816203895617457437300951928603824875001449762934598903817753147359677119037214988993824110106315847343191193198786128332372839990666985477310995076678396902398311490587500085877747005810297328556440144274054547842847449297073598449310053242593992125955769993836285302536299711690882489771433612818169396911848025674585004505053240763493588076353288314880524236717061636587940699411732804527064538664362935212264050950038855664833677553162437130469394003552568394387055021159471752815789879352471241800138857386423966178256351319611032636551373772709422290838017360584996816452502158415904802342839431311049250793552523762692608148555493037873652938135152082578869055473960430910412511541521063065972457841094625125088478569892027573939152367585108229257623414650271164412804443945587801959913494437348020407327565345514124171069001286800081544835940690721679455231518510812967316993508385108451618278476107955629680519877890505910897451338765224088327522072952727064167253185540161981178544416867045394365438816847423695793700346760513679476946268600569630551975612648256358888291335499152255459082876087834983143612371773749398757694733564420974802918885853716089952101782540440831632698128499329126227285671461110080381664138277325896089927921176250911603908819962334649169642488155489250068694603114244993271061589943345563606699492734978417433193758732852244547187136409825813862763903839639151752040240435467304775734943819355454706988765079544230825240143541877910488426238914779733845978079679040968117030935875395932970950876869876191777291226445510740197718805951036447795993599525395458410580264340063711884690855491546127652166901900316076809870777398387386375972118990056076108929322839661967880463363343143858150891268523667705374638981650842648867629232956396353349672887489597458901721136524107712778118781935424248626142154113749062327046304680320283343757584633711431662157265957808520978652926969895749306983542660926179083571679341813751313660345762637501864776168206254402044889971795526851069703743598976501295014969448885204780317251229993273939443892161260328202693983995661606890224696791162281314330407702695990050414642753280480559008919646238579685973504976405275171770713168583795172440221152920601453939543957776606749801959244085372011650397718662340319794698431896017747440535424001851190207350721360391204329744422094958009446872581620716774085664168484144572113072364717888792434155974115575769988342990173482542006571026748957605602800190726744222390361818723280837643117222700944406876007395258575485883490591381093304660863637219664958848882724977545492240992419922937670200886398381284601558107995276129222842186954365908159921677827105275348318229640331884191473863255896926597943190939226232478140034482707320249065818311218590051386194047417984359948373986862371119805712983945468648749290784553236154683177422919904319099059007044542813197691265998034679513465231482459583244302664219208443015694904100490231476642266397742631376759659065150251292787838565012559950334236908266847797525401119738881153971513338805622519900382924789828931623808359137926442866851983149735714839368707109060866133641967132513667438573934463581805564542251732763495206146245342642536055089658157114358941904221425912919917572730923935364670250315131045867950785380500443767892258472853653903422248478549079068332923597483761480442284086705853665830516929924768704608114588246939138561580559123022989643821982651800598614316804245802529165243187262227163143423058532840695246436838350694624130670763009515458130075179158366735025623656495855430355629643620123049177167632490933312015681090457306989094391169806616721648921746388838557698519745057428011059509277104649451672355981003705564795597680146724113863822112339428634267961298865809759656262743771348545916517600847811559280176287458208900447121584890495562203111046521793904573560530919427214009506768462875015317795292356873198557420817696342226969451314161921795682946623772295933149934196495509603229573293211530720986935199898410967584954334237813998595009553150027617670019963477559869833793301484533319118346416727022377356807156206296674303786073522122023658195971650462316439458054436367215388722758908956215473581311640297872988425382270817654220668608318823448188131088436132962201958334933596022359078354440783214614913993843763101736635172403156180106211902970245778937879908738976803468953046088806501392537599015698343094382448550300542301738614383269543361584223382466304889267847247392434498914306228781589612755388025571538527732240357918373911448761709529383730713911302791359805929565234386753738517707379282455459049393545946435686742762378620643933320125662873768263761229771587087127674999952470686337741500306465926818516278833852373559648760566202019621413506288056617279243953895863288137378919795670997577396917134737814594133543222982154938198260715806689855263816748016430706932862777619879083820920472642266597764338447670360256070492702085292353256935051009064659353100880446188074367427539729885494211149097766203552414301688826915094577509479787541831556848738378054920095673823113355196172603772787751614708323165136880701910108211096640825730432298971885934002463669286240028058855199484841950977971734456840337543644331527674931121953157033915488664569116549143350232144270085379578209799770510562330712217719740678496810951070460199914134102985077948039860202477585846691953067530529804668669522261041091211468067902662838106571896275597972995514500209908444717323558061733781504328329420596672938528543847036966372725177103085527703699641728807605499318975652643455605550297019511177816513662910676033960456439884664038519077306182082214949552222898516677225871675438492380840397043271678835764547293469263180755455877781087384506465460303228798247551562560515620767091243019164768078890437211906617170135234208421170293331306476896371666954570679557259862813502139109522518447009650773569475158371987145190209585949514523307420293014022171988644545472735994772200872443387449338870619869085457984511298449041596933255334727448350542579245698567353875547961763569665429944268214766501680756540489503276182073310875564330286901719225920877828915260761813297898573503944083551203434179351765301546180661576735752425721481588882385694319398456204109858598399575953321570215929476255756802001626806204071398828390142716953612085889716077158704484821289634889448158706052149500348823965655454144354595568946973796265210249133900338827049381643096602598908421226626839400936706766782460469605417663762888199660366743495457412621275858644826182030237613059218490015948300279927893398714872095004817610839081107354466588649696546742890276891208951084542153676980611024872398999538201676790841711180694115626884166927396520091535649789173044048343974584954955747244444936547765134694832069678603115120829642041426470523592995556279454355118746996962019340081485428847102216805490470113192952363108063711560405983270077531700777277810798822878613583421690584623622049357438274457460741948510686469167809124780998566391619226511374205723096166825229419111804470858074953364679755505435923939462220803695122889059287687878952167742460989056075007090264779269780416295693526996751145384360571946247498068250044257790096897871373811278035671826065170600821066034744961352984008415960322334751536643355335554694960671040005066784951283535952198706488212117744810141251320642886966320416635550616755148704879429883606049837619754508664740485364003194064907913237278687380216385430697444035878381192263245936661928513918671860277013408563750157868888683854533819058895504942626617095737962600368325001084142623450839890944366345688451658514576436704738005719957954682133760682805499975064004468980683413000906340801264380686373247883384484786080221028471307577913013248909613179359006373417618294243830679862715078783924626693452025801700580140658020556142799053811549305621923886914911423237165714066929507690042843660631389746287731847908664395552726499428687409533070868139762690713776343742661794027763245164149458910042313754139147924901632000339610481789313876601350629989225759588921300623098096932847505073192348887508070989670830639607284076805329855842545078186046755689865592329970635086929103452811144869241359188990953314774586098822521675560070943551347320235275071333880020612620741177670931524223045828603048314872764911638147173775779093024214546884726581979266175066257381116527085293754350551862415466042934561912940530204846980434385368808309497215347292829299647496911925810702866822619247272439154108610006862794157992135685141357612563470762411737203896254075366566834488350782153112781956432142386548197783382727213445973979911873362074184599142705627238171717832740780348691757325793849934726642801547668746679865439224595239108217366877228622364064214424761906182458676252872839911082916817656980383388716400411312275675769454836448076477258727201120112542577727139045143403824425178237341949497474712145750403591361553316302144269880400084861680969957796866099143547731692652507914162358972237686466745645351506424845052582561818560340735898509925976149793151013954276475925570939351702958673144879451421611171220862634392119407802276105492157594681524592501542306550491985918853292936828374434606034887811388908213120601957548347441903108165428125448741855431223961548509313459380170095836840946366227934147965091689243122946570469886063393948634780065297763909426644498532116196650295106479622393616132599073257391158680144924830731757154429996366457640926027243908530703902659871453103329256326839056850653559524774085670819915004032426520253132670781501980236301188807708405938583117227421089940393634432531377125628176073920407781421011234290299527650983759633252533290375948153223547154969721545184465872599822759109759654240388283662196476622573000332911854924323522368769976341603966641904311901540761601717553999511042989488061316711908986429049034303272369901626135106443036895679560930852050736671389550758073360150677543537486150576726480164580072290088791090652940355933959072341035545913205317918464847334707057253252747176569495845527386834772242019642780618740005700302791372374014619847038725972159342398642051535065390550782935668482285316444516763833979170489519886487483908626408816115657314665640455907197498389903715284537868246327330436683555988010781961774558310590580900514431244435641410554964436531265030094808750166141401380761224886545251096897443788136810892227601331266510592102564371667758434830558036048320089879898642603442480182745581472471418666317943718918529480896684983527636278478667446805357944386957490911321001981826083926171675331239926908950156265784598020467181662483722714853281314981125303132562648764859016151105861637550542128495024005292428223276377030325116006565416443901427273871807985947888860480565176119024769257506777233524241808712673489596989256343750718829240918259898776357139719081848328578234394888760266440944746306323769728204319503493035223225016385782658417645927835769151051009478851504765125589120462328459596658243785819004018884832644116102731063579841011572032579416536226217868872306594351902229756387751353159570985413973686895240272644870412247253595068957357792535064445241183570199188823361326281718821663636168028494130958250379777857083672433308305398391133773902634173462190310820540460690333152232863673880592927971367560282032915531202088394806219466059905034479262094452209441905043389320285178617957380937416454188885063866842170023786271250281844029304009457849447088980298336135424550847665401448181630489716497499274842625697235711023053240765083366485235125408416936114864908301592671276776027711532860019311919169034484876656419914836010573964745454960845497741999002499659043543761208659863946435431639960106888735190108648421394014219376528552865789031655634056088426890471975265618010114728085666422837222790745441715332520244988545599223025298879032363013190213400218813565582040483534908719374365817301527672804895179496541915573235032130551789736770524235056066417571845278771007764920961979500412261866512325692224449958076390859733180742819675002549590808895769930617131464133635782356387842131974284072926590110499210098842827949344641021452294840066832758332026838713977339713194511562171849015337464664557788693476496029990218991231451151037061983716772738440437693305842370247496165241192270645895302566399123825550215376927755836134166065612791085840557213093230448940734900342088689612683700389766517030049179273939238933378924080429685803096525924769337953978150684752853874148253917299040168116559076434205244451652878489670045476356935667317005949253901272515138519298486513913180361050092130736621834897870281400447211225053023092554454335683782450219009559050195647510229858645072732498010235916198602852940102363815118109383795943023372176780565255930672967880256958956972705184811116143182100407402362155129925797687589041971752636622453564293681724798979989401311350480716438653832127629788184401080048508809312836299645788656734510384204643920011620410586735010282537015896718855415217167168021883276206887047434214489518318003144314037471745672888506510230409042690182744590180594477829447146606427519771679701464683229759869644266078522226229472920637418823613933911869191361766812144194300804984878312446865524559980614085252063261803192910337505251722282665306505091302179318019382168606493355572104700588138874793785764021273533889331866108976973408189837905810160341120412263306855421659239351689110991678981691156611406918962910835469980636405316784314530853514777301625606553369746120761934521665192183181450609168608825270957583360388769567659971261045147760656478935835180732576352087061035743759114587210605095811109332283763000910595085305879091784450484718185415693693837075382457701156498161924500050801797737808426779262668119943049182612889198379955088844488118110859232972446440454147630842857433755804393514212305262851333749601528147278863329392634471856314226889916109087838382608023744975925398531151499375763016230510365853401572234670729243710136556674886026372517011912814651878034178771147489572727042661269144573052141874885258848298351027035431649444576955806790006532721676822427375756868833816967250473091504528257685655919380348516111965969871991773210218358652033793716699444184389217161833902793442945415822832560486745823534136638221661793254788699465500397640203774474439171349708705435442218439368564290493323343534711043629566312686601007422630948056893417136063278615271142741928281110374007925002647434283759085994906507513150391102466523058926120567587384624236444646802096354291494534531899487040377737321329335533657612003189874269716158483959800624016493219355202297919104309735192463162866486583638659013590150376243115750048914258120041807316650616712548025831072620558307362788174222742851384099796418106872683492474392431530961550715633963267362079916192183539296314374316873845361963100565454649695872380143169175051157176623451065060961751955308574671089063361368100028174884957143835533756635769511976060080393675781398791718839501091934422413892787919237883637983689251366683852850334883068407904448294309270239740453371572256129162147250947753786547527443720171026073916893900593358095458026144341660548229263346231895694734266236934517831471001243951279510765404468881927802534384746305826840269993763161200357291023040414907680095656004867404012145890738764474308915186545579132551988529980277003829830101206112739663472361841424337304478964196764351061452484315047954648367037723908050357252779022204248641356312046362842908681828477641924377175049847629752961879903931296155331138102279647928472346555527428319679380814271721628086963519757005585240047781760349358724861334897287073962363682907018392783675561093706164518361505873192398755025381225082376001242800692726892525950326207483161413076858406778189102874200008505016753420268147090292874354208067654097801462869488115241356008458068926724648849877999158422069203628959217992562628107797013924347549888740578677833232266147725756760799390156190110521983057746931301844366816473804232592522583326322495318958726854566615142625200578973457061141651938269212882258363476440982871785137018403533226122372790933341055676806982282650444218161547430404380558514288642015667198550597923158781381627356910575289371692310561621856476390192523416317813937788288641368735815961656116291866314853563164831384210575236053374618089311298365683139928923530691508752278989963053260559358237713562600672753163018557186758686651419253545351076107613719827786490304090373319935093117453406027712747070384897793380371662818416984831745214870462113167584884071761322417982460977793909546087236616925623622001522708529534121507354533045772680420353629340529901608743632367195959944075633250337605361680021113035798971433752630926568777232384552322602106273574744909833434619639434963875669945291631943329908201374173829511116031524011705783479277155583861810934234923605552496332723733277849993034358982508290429586939849707344074354403024017200541328158237028032451850244770553607692215808449398409079018454101327815457492574732312242736783172321967628817356543833750531533574271938285681875908815740666611555285717863796245752190604460059862380881940161697006096708475965626211893242758683635716691529935704160672950784516159670332449316471885735720611971359674651683121345281034596773329890654083687526028053722735678354452284738098553271869913301323865242730925523112128285798438487214194252724719872379518429712662239812633489917232332431410039655564644826746041581115676507981915795724858527958054164869740892502283204378518808642262866245578838610286099879674772176603533875591417196691649658033486643242067168139403815451858372675099520933806753853892543525140317603956935207583623221371734325076494543164724309215325862466593759547689336838914935904181156821818965617373428139282676637246102382150921210697607713747187553790349335839039213082340039471584004435116949807056896312990920186268336256495368015638523853863113386191868305901779759003625394555927714693334818079936854912949729322155953683667734506242506239789628021129305886628469873495675812373200511833487883384481179117969471556292063069655802338775201824439014578166830247432133151971780146076525399731107143751429375797497444531717547509464880017219383340406580960568358379443362755159777971196901233057491239754969334586245010512532916705836866514383369916775521257442052332079119377337972877435513573154718924313560422168985569271288653649684441644962171292550353610315130945481577296381017840426337161014445755536938420759660804476910228716669061852418179668161845197048683652424293136040982173505101567688961181407442656827742013207741237430221879917929545728966982607535199395458449573890623277319784503688675655561808979719720469428192493783110544048182156546406639076602621202244672012282964128209180576814989186310420284162171604205305993044171064374961291930845507578372780785628122840786137989822492040082961660238105965972821181804031959443685989853835220654856265536766012490265651361978745327089936284359940711316177524096811660307489185634217365976689759526479142000153586138677210522838548481611322507881279138243818198256770877626235572984424582182444692584746984490235720677770993003734617347520252815731554753439090699061729185510165837863371874019659785232613706718355013681255285014394874986885931598612469486587138495844751290039019072275871702092508115249741187246311738688674955374209585702100685039047832299041273220614374596427852634471516826948173618000219793477749770934583823253825937920921606815528439035576868431489053578517681822094877422933209551405954398271722221073626339392749655218874732981954696303417255238076382618216723483017647140249901446564589799336829607279577269420972765405495297623419345579050171249278593993938231081587951338033928424043489792027547673786206166805064450775399507174752728407846724177823300017977363904540565008791945126571901449286727818775644618741852482776186430643438680988685831475251537509414975004091949089897852006405088346892573241652975268333895599288302602971149024726865159162567287905056794919639593500849368293460496248253252390794436032048405729273907689328083821156592531774736982790264082912890974719491443891349308706317039031773793886667709664845721945797094726448576572105637693064390634106153014944047674577559648932250819043438546669398841476988705825702578183942227874502202467062148657981126212597433898854157239938969836412266109856778430838395689340206051406256115278008994600404199153293191224645077664305926173500149530342897699585287631336952263285896724450755859568897687953982260946735261336342224779568086736815220528456666566063824941539148946587754968387054132178256186159596242639874525507189386226097720315540334644978606457132116518524786210339757989211064286449011226168141157472957353449933218924954188585114125047039046875908746479765046749425854874231564170333257593188864041030013040251673041893105438740309810477195600587832438575498424297642575524793501339113766290701601185512135722672421274771836031706458775005603754121438108158069093914551134699123651867360275758579272573646659216805371193928708352301892705017408798431058212366570271530603359764641997862627410793135351437067060654126509823076958212672620732353660938764592287143236124562973251315400819002003378117856414298833926033523879088911896261184529365465704796958547138509248484010485833430538125772078403561961372384679313866274206307428884418742198011034306089769168384142498822838861363215912979613857886183879829618108571806276260440180719499736008989994504411655795194751890248465416480101806183426821047192271077323484174702273711475057756680206869499493637998999154462236633236594478897791571938186836869945555691950880475558761851880990487585622767909189449060183772986628727476258543865871566904619175160536404535961640115056033177019325416493277527693210265013682491398033372185100926419692634127552653013730682747104056290568218748080685941900683845481030658034934977683767092635804075913481672159667870668461696407334385147572501562859672355144300075039760888849859623346634892038128861477574699469437529842336730966594046933003265364902145740391603228216282080404137165496521629639949465677690674137966655549969035373382621763534409284685720097902182432506522645409161811513954212332687540996034468065939275964526668463007838210584405061619761925540697949643595604582531956968142759090214569063704150764248070187478919764933268696880032862265072664571505313925974605865507817257966439941924827223267382160142266312123394132040744198148349683775952803678804182707151472613148824474078584974448183224143536357249311950936407476762388331991723740412974406661494845407634708758868041606081345361485692004370924595063422216726098192354332930811084025173929616168541506027647067133512119637587843433287609265820878193643331837731594733263087768310535972894653552566336959466769010743857849330127794147032690386494731043751875215514126069406492519932938045878107506520480803078763562279109334173289630681805550374127678500394085267216029111440596943518837902436486027462842330961826988616904852427912641268324070115777342427069132426508912637255228844920124293387496255047416086041134323776601367960609149349996860688379208319816114817202408815287462688424769100752603644955552331182788351112590810118522444826482666694344496867839777082201709869828796724004995679100523383132049606354153123090818251673718216440423495791840068905742778122879761283383162863398594006288603923433191459027857265486542017022252787476293872450895395665444747079133436515225328931296479487644494140583220898206033213869608464669374123723658871466116603381357329159680982517978275072739009168770502660441869674611055413211830963817678603370882831813079292056645545499023760456697698731482357977017948480249493312056124031116874976175586725415458948401989575222773469488512949596939542824553273433399259553410441350056231364646790256567078185241503566743556977844727227556326668909463416919567950391207340708751567496986073473872130077705059886961850782769448189348907981069306067276821682802860624197482300347162921885999746426521977980158377885036070482962703127143384197845180604126162306715694133734481467283385398941228517129115252596913972653491759477956021183140794128024537027160063050761494864035546482860795667868309578124817253661111280060058572733171204591221882731345528273004216610420712853468220436836725764077854703950175647213557745967819363262459340830076609729692234066876031991317663240639143409627811456594929758960404209025823143472999947277491044620351877787540816632195688056010892058442286453833416104613367526103443092167651382083154141916024231231791023180580280123375023143382432033033765173259939372610859314881908353144756107546856537133742601203889126561176902367525566626992191869793908601725712004740609810364582887053180871409436271033650590588258033591214913422905478527432853040100451615968708189015260212527544578188773590488138320793530083645691016668853403728474192923312908441691019975563842938301138116353066933536498522759906886679405924542829118936987353589184367675027700997628716710856236784409977110428241005054456594109154158500071790125755411105070901721987270198873700566181311521955803068372578356257024070132697499554079209700756991901317726335405055491813086637454195965801984515991007105578435255897128329786216061306311359508982421216833957729756842663140529161947054416515111613842331794825407569493461904852922878295367933142453641929044225974022627086752385718093746454597841536091917714774084343628670063497213737658520900404134507209399952883669115532726440226121313270366874755112829555318298226832906188350857650888057175282824214861701139308911088562844174090935976385211973618382731504486383619623862605643383509237308950444569233398724621343554279148418498061775615965872993131442386589580655758437691712755483482375148111595677338526632089130552622189012634258722511854247610839037973770075121264935721324437243133783772688557269733314536167954124869122033307044812214295644290568219106247285969579257464365633347586813565916126194935734718965618294830648798444422187928866240559509398594257327647194419287221205758966438249079206631768404905192079929463273843224435124305305476943116048348031263019780465423597691438110608628250845379853033400619869849482170303230201583990660515840536007733759863712429320724750527840113215042472570304149046497543396942823481781902945377314267330991696540088922722894056837705224259060382373256179688221895282012925032068939672191510980211754400668412915036193453714537263420010994616877601683234785189878473289027949709592043413872179491763495005746527419781983174124300813261816565739981502682119019231951696908243946562115473680720936810555852407035124612165095302216982994555148376487190844271979742005002310409844914846608714456417705401625650718745441098181001001717536466359815225120398846425195221962232308546858356385359904327928753925102179343151973115392203019831317340105139214257460400013154183828608607004250843819534598151454685508174459813373739148805328159521800344722861971469915082204665093763413742275407841835660239492631796885119591777037351951242398788327555384382442577206815644311931556144064749065331416195295150792904869430290043193263123476071855622744477752543614287831245162933035966165119795024946341546180721358849353201751565181246019929971923817205522192595922362379845657305871301245063729727723644097212794177740291566053372243663096742722220452841816890017503322318382290059153351837084234826643705065464463985108420198566132499124220139606182361156973258728588959597078490818775603444488559933227832784888165014756656340989697480944193279112172637688147364726149113753355478372807203074622849638333241636709071780855633553389005118725844061092432680694098120001282736283468966261294741867255292047724786467660171427501561066893699385115563236886732388853870158074531493495682928932457950912059274357923717046137856118321616946071867367103926657195687280431532784545863360057781202164242290543284001007769188423898726944507171994357897050772654700308712989660091897577575800051528681328496480336855759009759683729181215997317954828030081397714291577332849812143327658306520380870090162258580026174425329519467029872163620749263137017944404267765971767129760303548127046772544530586584100291199186446509706490716371651151728958984862864364946108068722634081463258558990126976272247320809278776693934439292842074654967590287392288644969376582296771776993057485288270706513526800291346202628719695422153812842993097956492434287965314804083129392382158983779085616205304093445759125678320990114786726784958125176820295014538767132894623141763625920256742463524181957204989664486902824749413690982197457840650344001861028762131417922815788604295322533879585689077193146903697663783202403708365298387472872162794519784956864778506908806250093233635537534283515638891421842634866346394105980941733646855878867239332863149194747891973719265722693490894105899201616114520939781134446564781276452755356083753306854299942837985658988702948614053658156974153099505220256587140883318644408351675633961164330601234517006012129006850567937942240882117376361221504846149164900436825494312942457542221529075055382215725062940216127523148684035170268343042930341076967778412078628136702785158679827665167652743832865274481423196736039904633151863107277544313446639948214817942132274621876888107590307172514716379099706000034267674656457162085494364014619399031834999290628975282344602363861009655328431169580567617334722890878228952052259000810306739234587228800016578485350457455162137608701655507533738013448811615854986517221085790184732708349632165978013302223436732293621151697850701239081929825881122352251715330817308806164586650675759059665332686616542319205570253663209293149765680702792517172201479684019358704363480024548176302928460308582457641723303653877802434319803541138930583898946297158822791115348342725119655245822781043187792086039329503326193581042730024517944553152084457496595567742731144491685105505383885237030431228077690764362318724418673835293513791270608608169228289543034691888798168483494651797985676964734043491536332075424453986527166010694092626533545794235518082592856017759230036952580187951785280468910268858558363738822030704559770745475971587407936689328909341635481418023829923353115678236589297010688716427805154059665526112214013416576964979292230412835612575040261271209593210130897043976450337128100524466841816702075238534748914010943654172149878688599633521073031388242265914924580246375653363593723759544474318875380724991687687143726818577214140710116954444408529763777403822381420942869150337968863573547799527733323611036291105364267380323825033741674851479338379491662065562475001973961190808430698624801634377332185895528284023537529990771575361240300714845380495267308733011844737133920997967378424238861421283816406803872229826987734243599575562211351669062785962274213188208569984542000714044194525904088220208451218514931725923425994942104811938036240644171316379006790411724827126747469403269782134749925170660877649493672479360991903630291173909375222000083513209272505028327870697636782607900034440274768910756369715273181451813895746092193065706457578803772105270222801797553522295545333628335556012135551474251796023323316811514007928319715642602905202411073056701376518490744694890106358413326516521976308546882626238811917684019386633969019221597522475978759115260584589645089640236521083179904274730665882923103826542319824660915098659809455798355485049893333777428792191138426784733500287827458845445201627319409749991981013614284902963625473674625155085910505840999475290825580400278037403249613944277182094565860704110032402826842435772195470263226260834355844907954573018695402055691466144282533965982050090499477186764636487732602346765650393220160146458824614218221727416666742076985155467439904037781864506131957225467776946224820751605632942560687143507718007273399205789451749211854491128951596907737039772635308664163192816451401113497464401041345499436087523652139006374911433584872460696120294009044906827317804956737926397240357410435819627209308711926756037744834784256474709426335165231684432379598212772072362921901061885646731323371429224373854116233355396751480006452210652873303490754590621793015803972424666167835692138622671770607264663811227710807047949913662469542980719423795185124088400746117876688029969445386061817922623504654600794329332958377676696640548519439613629806370198076075958678928568987844340747957819135535312407630637871702115688997545142106410554692859894502005805270648377394168631727198048713735210013838989985390780446685306314899039685283976998137527360300785409126081522852868095129328597141367041096595449480116283912178617844537135413273031148397797231947799638568102521823092537127222544722902023272674519842114844351203733630713941450707405391379600248135430758834229186391238508922894315617863264737714102245306633402999231539619764912387516778693404732545276432749062568635542657370115515485385389831730611198397250249647615359706285272305422088698123487954873427752735663656122620583380370962805496227486781449968986196452130033111643040155153289068854334774479312782935289239215813023221079173179994849797812595513471109694421308781134094690294534268277688093473428548129219767210534823078947568550126552568643070159463416847857982522506734178384694862427922957486668182291306472695833249603293086312098134519168034721356505732819227746431852037599245555314262547789575330267354659964963428483076383858628104892768403947972128521768092417945674004434004722127927336250405649544512704432279064188734286638894125698471435759138345871771608023540143282127524637141942930521858587056273587286691528137303698354350342751434319024336750982655727673938253238580874452089055423162994268019999374807336772802720616716237242603918963569302128068718775425919656773364582211976199625597428295794574552534421828470718498956609816063230675927529344291251480552226921226336134367403116791691376116438502000669483265023622038872020604383720721033941805167666921490543230698046950153045283280899146714721228879714243503319028576708393198995672561038218224200538653879942303878211102381902578534898318044162399474230643773931994171735545692130459959908863721793513764395442694507644992790604216421256367645902080041662173793470101127576681046627881310041700246493850464994970300497959197595395416629324523122149127562248913963778261877271548708471752329452751098443632145054993598129867268566034649895967449745152038040501186516573280337200847563462482968072929942370231801604101252720332611275759897148435962985101162168102138478850071127911221880675628770343198042587314646600869957778115361265494248814497608594971907591996846701008823872758406521934420788482388385549328435551347067260494649731788221126889969665932781148218434749688013788168727830801482038016663057412200586650226676877194219382348365018833973176676471105578242957714435032837487406617171227957735329207115051791356803559786145270040721775742531454759765137565440792289067723440873559849278807828087469930496377396415870913294518918377792113471178486539274887783739673155412267245852792064884623792900856524028508064636382594767360921682134474021502309117456111836332780513872988765568114937940617774813516422997637836271420615858008355264368800481526287861132917752325897281306214695595801329501852055202075334741427886657473539892559567489813747638963813420024868469900007187907429256062155709175805025791293502985610752590216113431762771606092636710273771882807710956784879214333127297589594734336687631807946544584785490241417427339318088598174286556585817117743400038819003150469217236117253427133302166206395511363989758945225007752162168552856650166638595335520648192025426509222234345855486721297913947147163602235000975055640890627930523363404968602965645241638278334145360455818057120256831225235469891761407630269838132430743845584901611166870220669679578110179039633159270453690850242349085505619947540658488577580173066175403927288161728929516302281314624109814316996981402717371409407570627239373691730877111881566123191996430661579959271115025522137478838526839523249991081832025732175765294947315616758933654706115407517136094817273641004854031049437552786812052284195461670260502156369513255443762006808192310620235208438639249214430448536507594341776506135639888839893219491102154382005442904967082791460227312419598433475743101080273883949708228415865934758676812711832250321750974364623113252239490509793499427045487111690804459649741298362345376323351160220295416216116188513963569698298288893984714152691075719125859757401088705469689151537358712888137370866398905587720744765404269138980474671705140796047832001124708426390608537631639145218748050512572825240460261091217560331571099226047691983722531895059509889531140937970565326927061722431007451601598969318624547080338167314648166045305574677754920823166826127591445642295402922739690051226560692460326298829354571458797291809120617290364516347276520863339780885337876485657711353210215288044134784773665049560890728152081474786182833643838672131769487201155981833708035209872892184506714370589529937061820844641251735049169536467032975030045950935903858507030004986656655574391704093290368916915911965790691467066175783476690673473969797052115306869476876391078949178343657195091328690402215981995362072533797700533276107468671256276142421348881520678732854450064256680065664146604954793131252666341542340488221606963986282110377871230282568436468587718179864757538986693600984175329744387266612888509399774080813155204465236316184848836168919028726014597058618749746888522624254523824680370512920458718351054232728921421183366128956224638335833437073703328229993038217398778108347423981612616191290296793841530026187703927896546628881497332525712900733044950163442728696244566613603377499743983277765537382968324010234862348172805759213521255513322663270057830280935515027756327450258596021210877241022551125666580544810333978359152038620072993078857012739697518414328985643756405020057170537934801195449779290097191759712615945670828696756770158611873121708363049026830576148810099166178511018161723295880673849409291923917816697291146396169316372247594171831987982710278258551940693765822995444035812283296044901783568508139196594780109570822666104373340718780569542255018264569918312982003140351418539918248708296547211366198289117309376478459464469282379209860873131428080641277288287341922464506071532280791745420595591922655982718657812866346268749070404448061419762039802545806183208316232256030684519783459018364433796501768711304875877078882179457089244673609727471490890157044849707060847461318177038823746969220673450527159951052992602286922558096792249160826719880355315010845986592342082970188597693515763683454425064257819665442158817607695336299165700444174589536595356195143686708044724212468388917179689142499942928853374911058472420344740996481775180118079154686660193895825596691472822021000938283227171073194278454107020738579486681544280605722117716302889504634098368107312143270341674453095728469435803206893658348736798864659464769803008215308326118688142143409413686802881791931660883715832247124313220203905766308738163076289162209500705757905260159300775687586526546549129412037660220315529274513040225913404183912463756971099994249961107085019674871877601352066575304742032880220422864591053227186545996380637976481093835167174609187737515220627005382915367114685472676935904676940544671412578489232712338581479492649768740347252325176614341222255186372125258497228476067028617061372540722631297808767988966968533328195253607504791803290122316025636353520130257840767109677515627071509919709410850319094719575295630398904575496283915520823088274965579896905485720243593090845574959685521693924947840555388655302917867079464208325445791368033515642496193865528163761866380947896512078862501656701414996599162212454157674391572217725504617236302466846998568036564138866613018883015009373510839916899479712840787672513288269372560390939409261422621563008787418656794830401912467454358280176360850808644550896501720630194860513554984656984861770786279198078437550701433403113690130586138190192342742721529719868863360449171091591129514009490381179258103323674159740690834389443127749267958155747070805511858212906400910165738229742620895906289804811401552151431939144582143471011615584027015615058546300717850588849200650563620408164314174774657708453625695194930550988889819199307736245510229563040804910789758391956734637783040379927801847246086812314122319975889203337767284053757105466049044361051341272382050944198412306337413503508624143657467571023929425376651712370076192034379166863502501033324374124063838097982403753334908821943837064279927654135983936985666113703887139473755442353974946386249460143396802674534535377894508486457676347542664494361060810284388994857735263816967906239170703634586103522141239867649116672101775275160448896456235243541484779659295486669339179064970304896250445597720405281584111392447855492320330664159640143457670873355486414473234646604417308173163024842923603235380331432535541942907706574040644348288742844314357592013993498793190021910898749256123351729608107705131964304647807570616393730407092997419116175473647010127887546176509274688345974318456261942456148220213032393002386249114254290604311736279260208874523983876608769850597220360296894793360328435719775830044223740921078810125495302619452303753877852115274889419059578292637764473127281305097839479380051191218919601367834097507678854873074214941385949190836833085534990925000596288130457220592663626864748372141269420145590850004182676028008517847825644235874476821157212813196687110101291511079681988924548118956018493973593519120139907262012764983884681888589097001851553552069970012378909328180042495758792597474441224728151708512809031306387106176956195106082397648510152582094093759774328732092882682648125047144229396604554501148778355503567158515739844021707570566729161226988247503832804251558549918545640356121212134594256985740518984823893344620301990734062205033567327289442370561253764570037483721719285797810342928458129646978179139983124473507296992212429273867905653561598580297099695895711638429383251622783715290219122303060790357482114162603230300756060855391781381803556524454794256240805641290398596886129855837131605580718185285563733927562279009709253376668503031126848487605319835846899826242526571450448089094964757573316600795741525117296237430175806186305886222406835714664297023018625255633688973356217472241754992419097550720149720191467184570480493681638256729000125657130244766547365376153008305443691057187103682678643653209137644245893243499356703014977329988479908938247909522825086616293735626478259536652503829886843988204198255338277305061760529593504449644688594911912742364410873576771414442396175679748180501078802525448914375219222954361125296566451345439199271311184844325417692319070374127358811291064098174470370022311291656970537418034589287203170421095744306942476733162338346672361166892333277566993983079786786220402216716512934150279913501680700930053041346974006967412265089408785248054103015306512157023563331282654685438797503177772319037748747288146658970629465771564135488338468301761296088979666905429056892408679205198718399941833986682604322526809447297168589310678961718362492171007337458066795676806583673073269650815010968170402875477583741682597749431492177492168761352200829189741368146807655281830648323260776089929325639276083291005427415999555124373524121098186656525367023071085753816728601540533062715375663577742840200355451807824106686165962605424274016967677186905204829686461644218598283776890621632704608676372133044114967575485320543059446980504421888005591680563893176191363417097127414394000391046175167040280997355512467915308346973374466790731379335018465536706306281201206202541249373946967259796436658464302769956889889969068944028104130930810910619801906742703198899992781696012197821895104248057484866348293683486922260160008315230741221427414854955237792091478278294103058249769766221021837501166837629663164938361286713225066507588922785705542769426309042617466830663002262230712551404255437888404793545151368939161679122313373297480612911725510956288843013340995530329932105379234247494247487929102182999776434126887971409846555325190465319306580136217516340457425346957049457860930292842474368900754336744332423445306596780421712893200746832544343426490643920103055487102195678986527567704126656543129204189732549148744331863679104661999066989724760455871884154140217197042288332293186762075161898047366037026106977314461249476422217531738164853690152989286635077296441323980670422051418401055886485498976826346547553342976058213953085678131720251670912518465609664936946228777714720978692022598022700183596737781976095228493325548251252299774999625555087665004327980927158069121287276579613828618420241297362991959063589353566000493551519925299480381310607588240117003849064212796866301973771327787683264492079331798307998158692670421407918142252104544054878430697195172053765573018174742215238540670171803421477704349522930465389643845365323408451255421512429040103647730407883684050576632479619743622702624699907831906300991171459227753138346747785639733182549819690700671644009280532916025633775398301288630702212533602451768368098253559472410377491622431947199870812392996862661792644447824836962191245443223158801626454087144320814658593411913122865953410945762334041517096875655701904279359068404422544295234261816796861209996199093120835421691094327054912534104903982462436308899583128459882557703756407748290670977618723873904806372020533635128316366422260507344450686537260866913274003807468693076881742902547942478991238869991525566799313796314472832990083773059474830421815304550035029910101533250862372897432722803704026943110793636780759500811687167446871301382169359057771458212613419106124618905376271605070887021098286842920406468685986748550666344929198637623426569263132786976838828629255626427686869608213591181029944715352984841706166423775714904441829691237345608997511715260439970243170316281142839750484436106752574048991551993543640387912390337533089019079840097771719114671509408164724993958528070049355806057409829577216476771219951546366396022232306668092406365404614412757016059383736457755583402191954693594737382153875945263156344600147284207340411808721391431787052735431305476668001015559550102374578739884157736456818601476863735965152622232446690887192681646530049221594077578803560462597487061610930952691037794926444210450702630608899428384693718500445505827043926815089912696205881328500169904510616572719294934716284505987708730161248296389004682649452030301448454529684026700190112618589813011254464824830867227946509962823259584125479318810777284820664704251539174694315726401725557643156106119984923747185300602195710078656864236182237332429326594096301416153647598289903679170497957213506291386916227651854220020030098994245010982431571244190983613817179756837902259208644783070267004163377490877848954008924932031471249169395259548858973704980648911891466030287535311469483808000791455209586959095274337761648371176902522941763687726400430055579142754375520714382181373654278127291893540392918371176960942837173391259362262620054504729788792277446071915141413540181165097002012007109624539374969545380745833609292902639309601333547594550382824785313381334408271293961705587767841817363122355819520407630567236459841325426563239692058762586201365002291031975678154008940523189377756619179120509177026910737239263086873951792535256863688006342939731094542049173405039225351190737532045743955619910437129579091551389950244626416516628417907308848114173341281143934601524758514786801590219165247383581340169287104564276216074987950868755342043215441940577543128863824590219589967003154039367961999549431046821276985217245634501859450334803886868396776826245518484773935646906365763896606172542002007475124571456691972800195403891273009403713360511147420406682338863073051742134823779942638946094961712475800453634253952724228530297095323337900496085134563208571872976556002043879137514447105828892080051978012190051160487151229882353779138599408483982868805832553672233478619294594404715856735906425705408108519422841943793638240906611846876448055349166410685203277637314605656329475317893968327197761030002569591089679662996446495456011761880868377329612882339663965551455275533462468127779772377282656081972632325867815339591024546487907931851742722304668733837233522927052067157711463412686184339540686746272437093325523556158930934411062484125320917272865648540658468307645727879270537430122467999586084380188429072564971483239117726771494412575789307463126432111102941377095293417029762492618610163016813764302086542178476153014087021771107088315477566108199157909060463012638092610447445396134271386879219268245440879596855005042290842232941801061368141573839419503394679339564546084483907471368465307301865872726217152557749747303753749283664709001166170591405015998500534151113149667537990145592298074170870543356030410148277179363273870990234161799894157286478702062032834889303472957400309814335092724672336333728963693445310201376189557305560071642444335363950001105374721646477685511120735098081461438265515283999740271717026886694471540353846253370170660833442068605620745215585439688064522770792298134478258727519790031264932179908151060292328918855328180250221862246513331441451816998632981154002806789390870035537939105238592595702099509328315179146836263121280374090260237714061771056771125151436884117045974420010283848834265202854664494890571385670500825987270726059768964493117214071188860497226506331314957537861006525641307865018580269106450007729457686843600182470434854615247659059226645594556743956268883209729286390876057649907944895467064162915257415061719347268087781344319751200834400730139087707228496953070993275897353396841499228930475776658806518705139207209190327751776856636457107973280888806080466148036531623101998950109989550003580814316292762932022727395446573611653883639472863372018280846513842397276720426513998990396242015520605056855387888891295845553049926820302257743682360940448688009289650966425428084702675877824948452557015525728496177198677997982287550126348481454421794255910924404870387789836539998605669248579141864168174880614272917561555423597426236863435016938508579572942917077190031662379700177885597984183860283590908059069433458299810965280524022702237502589683162581661272711368384054988331490271995907734042122565096504195954341872335139648402664030629574611376423860764521180765271140540935555922565656998478421261495491466952728318872879529877017240519727847491642425503456598896270645483516675221838928617388810333221063229703132194845972714781753108972259702955181293481471988110526202241656705090400363363785796756504932659694398988315912638597843497598392402850895469903991925635547480062455861083266833705731967805056090021434305536930507409578531439971415445538784077924027822627978900930843535099211164501557020307290853410844808080121817318775746795278612463876673700032091627439346460572891902716202761648160764901170838497534600273868553679484719153512228707262107530909851296437006938768342119590653122622933506900807980658469987344949013570085335503054272654448499855316729704459027514268788537030113690999042351739623036062142314203324720044362972011188965511253075435409431082080575417253355442893079626034138807126812290725674689970086653862754303529056458609734599726260128583427080657859033408997967519680787916777569464571331800627785342733826925819354605470771307087491171621842815201687286230785993157616573864048635536553033347025000191948823743096158828448397431241757563788472404258825485752748418716501053992310684071185967788546215094240921901762101136992135236196891200107448425967701475111510330065565033023351315795026854170178594134994558997348946201078981389620389788831122726630630800821588864381510954968728627860687864812222278063089379284051170605674736919762709629048902956573278669855839485928342037365669811089551768412029944981077442875472090028878043665982253549318326286120096497532487937646261917841624457440211598708097295027876190846093042166759622244605035689605426063596320003647817399146607521418738219436684124542681030671370086265960547628119201185948150446789255062553557498003185927587998619114457718283937077337861343511809011889100938928094621707156473311888664454957185862536319698462442228402777307970836278186264193461165768747126126894073031189161687331937212215221344376477873824032766127632644185556426998992050137512816015089867660085017312631680501884998415602807977096995323959303457440956732380138968904504923877490754808711671731360195400013590478793550979648361581043856112924888684929732410189253839993134089528874243579127382589190309942326602310740261113335469886445711178155765040986242153348603781566943132865985766859933318721928590768692788631679698966390989361214030321367752623584765722625611947469344739527594465892473003596452054846976120844741866846275332181045148225266858286070603837303427242411779199824734049981468522519474601472944588211604739153913986390120106786258129477759927126708909746610740209161647137528910072610166823511480133815713968991409105830972252092636682960517562595419471681956025680040002372788034489947253121467203493630848663466668765452971861103416678613550992429183352295587407369832025248748642917689476380586493821178393082350381220343428190382132089823683582451757888207905854122081784481763032828781489922972776581657986488825049323780851078688502677968438321700202883539760331349193294841113910529655147969833540195348945319690581008971607800456274404398110013744271952534846617714318907653545315213220596706802252601934101222407093111473108146412351116201665625754168653995489759588893223983841556306457230015715354151638958158285652189794554124275911428505143141716858122171530874597880708142565106409001653540642295331081760812680838481056705799681819684499230620708790623858287701688320430714487184382930514271224882990578145756211587119143720119706307064552095360159270861477095981132529442789848948207809482263497158312797362579892210069887400772985630013392465559841771159280667001646859582892397119311975965445333506450383831685748685744623742245376033028880922622686000860226892783875066920206707594617942008088289770716195539081528229512139572584162311076745191483049612818373481433689601395755273489096689086763570433321460335790852350317734972478965434478889096580149301678419189553163783414144676323091277755540576842030232371476187160129166180404545199348836178071532760230343913991468668088724343948853309879661406027132219851276124825608724956144089438411042225413340200543878963702875120700339746604575664446105300410322737405587945768840172204150964805670664256339894281565124922247515445435335800478713766728605611969973623893396669100161891085952201479592266075897132638915489329410600124021574812526141257469439705412358041781293338387454402418741732411797167127045625021801502248496696408406288436662569186686357914102152805041953762253148102948906010961112206234550374564826564177844443852316586286401067063268868623717033126546037304953055641967627799195716899927460885674324953498654981425673866299593721092075795454100639478292896264917335425114200070857004282091172674148692006069344723438851660147123863812938638241500964882167717229007950599293155178510489014858454975501701476027569725683966015658138642662946453667154249602613163255772817223288894278057477441539498693893946190873665591680903402642737990470152825841613524547888699201887301210787304468749794230245549964489625575080964718929482320978019552691870642359428881547588780727613584906050316426242815555568841287779386928408294575557400614230108605554999870755236417800844695287353438196649531007058821691030155004288477067384203930161332108678708318522494526663429826553895743653999885603907980550384695840494661875826941123847515908499210798714281624429292016424819390619566834620988763946459706952827030919357155660426186080802077173258004488727196053443174882927494835852145589104815962146655040503266921249765141968115200557405605194906472145763888375502730145920081858607449491613529409570390339629917686679897278395892136490976793860709137107014241915654725938675908405425462905713594324227480281954313500868547959102757433908215835418194059387589777077113883566164584267951943185107543620704059987433806078783879921969481177226696489206603972218499147109269805106464347013250244452436383901620293197654910315642952514584232614703876909797679153719013880295583309825378494251525345345292342804058961803810138086483683411008743145289945825512593996082572524357430465660342184348674936568392426331282101115654408591563822801029956368433982640890794474601964050506784902660620164204295787254521897660870767874886626708559792092910366594055397200976639908008169903827888648348011839949090721719038977541083704422508339845667890737562132738941374333639789115643249513789169508409538106876169656368682268144853819660423390707590448898970892471081593136207444143877829163911466054143098779333854469846740417657657975898933250863875775212105677215576523813444714642039163618009020301022169427813858459308820152902196779325557106851161002951077696508774190684268745557053966808583456481672128532387008979044779395635620457362766088101708880978404597319495579523867233845595880547590413745556366221647493022362794091238923346128454012509750346924202225401953633618873402107016142140790879013733966548703037386125338976466012114402809255495078056220961325066654076833509554982871939608765142605699983041016501481760047457835580619033284377431420309338087524153426032473672777335748094979215791700497143736571690892129751856549607432758454293222252398040657042756175142523765077009580690063236291349002217524120542675040402761663535168214372086689331787191303747051707596237351201840103997863185973528555197656506180411074585056591149141390858476125011258465485671460480976497660239416284783482949259568000632567430801996608891811148990951958188044705920197448872883754483355845587493020852728189089673636322561910798448710715446198487822485140228882199094765851725810034091492671782613194706967934129596507533265791627253188834491490264038326057325239733328779838036582001126238069289806515590364785039999180291067626442282686343916503301892438153267028821225696217793548619335736415074721940280576145631464325600810650533815773208679660107217906380605718412114660167012828144202212799439028021210534414858490620360309990425486009492117999674220149049432279231654135785151534440003306266534663362790510652707303428676409699156300331188588071043837712267007614943697510144023999004779051152923907998912844777821255576068524566599442258777366361904465063197937958332056815476682692011849936132730239500137263955305501608743350895688720624549145629961608369832246460869438379067570094906629139067598900896529729983798399539186357091461447421352722538893641100459487159705153902434433901640714669987241140340745798605532175954111352279208262689656217244627078815676532258460083520006383654159793584263813568221858960876050495332316465773356291003415782177010939585601501994831476200534703592663506106752140261184055195764257698443809054853049427766991594452583944034878186143932903085718574935319272993610157058640634098500875499574123579112872526925182470688047340128364409083801595185797054510141635635882277809519218016342914678219899999601857254973254416602420398113300849519472535187021087708425018635607523069761986022268608600420343188903493158473566971767436182412344359162189872370035879998635377146492433950386720515329957900455676845735865548366144844283238211693113325369728747734041300053428683628907728407923651269148928873626343957555990563509133732009729598423097869743798083971102665704449638590599355460267840890490259644150366298956087104521281382082226485899465728934993753394536517306114382592244693799561743748652411075933025636632171721938278553141718255574513095887290416901543829970209484712130211765996630545093255071798103634200012580518322888609204068244259822850056167690223308138424003566626586365191938778643115772284496408320753636944058330010790114392437352929764727962686997311319411672124749993694681682449777607694656485021488975013264587317534629258507419822907566003811383020208798409749940983323817186809570011449656402064094680659752522987659660107721668894503877948920325199143208772404100571711087287240897176134626590250017511173183274494842297101011886772714842177786980847440466841431414471405254812320143686416476220142679439809609147235367037878087088158883126749164269903432419325101599200790148870354333546958757300921894007765710486200366242420917116281605652797500859610033306099752588584077800996370125371785939496958993645466287844557333717138686679848323726691490023009647358806021223495660793301979506917700027163141358997572354519174904482175534277226360358533432449653637665461089491065850809812658075211395470047889093795718525566874291187394352305289910730452505547813645906200756996458126898958033459221352590430781397586148313759258357225593625254578497469035003730200619192917632213018683321735618451745198127042393702821258016559610985206147406008506414371966142846078113696683755159821082409156366501703713772652137590695863018197802975006213516770082374344630615085458790008671094097879221749950782244957208725973071948265511182348719410674402950817148635855934753845521123346729643178371201907308528833193021957604814375040670194449945933875739006781757258770750976449209893440740274019207236278923281946474905267167579709038230730139307391026536829848461305753815237123220230186632699245489047417318830635469910970161726675202567163167911107677579833815605528734248621777709828858013345520151231994320173166049092655600078872981867477886765154179216564644062272909955025822539313867387839372460659556480675590226206722161676610722025209187714347715324304853188889580894091573873692392015892097704618694747300916602443453620308403449777381840346274977289246411805927915762180212837198228039000597156798070088642488100293155575362068470988398602981438259427339017765711036432506187776543835666168478549711191942626891699446009534621747754893296560813401466243665023124088929624462377924053503021809689013694885171535153890408653076875985868136255335520617482052406580638507413405195488303424429135366598793850084070901336317676655108582911818656437999584926311434294276142814277589269274341736987538412767483326755613729505300012703969991671199093950112931915037289712947384909503818027510415485893038664923589904248115300606503068035910062728335676753918078796031876031191797857605769778369899222596324669127205209500862578508218169921771027316439991022107560560985134598865149459972598626453513874996918283363350201664451487490488430699749072237712593811029761128087197002238929253815259725623894162365343244363310143666442907057637618754303746830522783448456772413563935813609215386477012289571071045502225713163507510310089278690785987900824374209997645664862776675029999180855187181313858104425618667972471886100201161320184538634373217825982711919659447213705078011698359558331270388593727478523447217010533295489583033206677274381904270527973487031192377723297011467681241647650501654018554799807141276634070107335198208164060422535354532541661666510430296744174608913927584348746895288055743130812274884211795857194645776864941158598686684527324141158498478900234903550908904877129103388688665184746878944839614976136279535868137591949264151327173021048012942089377571915565818424714448469356812341347186893466434433571670085894246609166587907900795251508026135254911654300862994847746448199508814465931506199809407152002233098832542503614470003525613818371462101484266839983974092943907018284675939998478498132601472192901527978667461886251083418127266894334046685796998714017769370781563075546404241230978849671849256621986293112590250628706851074041954100713780396864916833026046502091976590117713108625858909514923733399158536239625654537542123479276913807750513446901090915431922898895643427701290802415240630942317809337055541594982180285218277294498553173485538441386551357556863687313279263830743258660338931016743491353547248949572466471694185391617419880335465463812786141962710998982802403395467005919516485190393375771767914206042730309966430121220354081892718952114611923226368950499998136983949657486412684761732925348977434724116990059893552753243648113731854010847807737647620214637717658102606178933235492923747667762567532519114683027950874413940340210972075265776099944719833198617410358661358136541316083930797369173910736282002642127490123729620500141097574573607428755500976760772940450427732766481882583444624593929024820096378493733270594110679896933517967128821796990391650055349942278535759573755561474188566953565583448466409465670709379834343800442985373773868877489271678269698283254996105340315164283213031266467037218168755490369262356828393229072252582831445723615531210338942430107809742913750700777307931662299428253693522181842829597251843389262859782237121851492056656496988775972292649606986309298691267148616672187299198239082582852134826740848900695437288425803547594204051391850821422117184020721471736107537887249991640281099246843688820949209518247918313867090957502085605276785893480331337014018755306738296764398041377511839157161635490790387617265555220596193906030033566363332622266039419801884495311132430372753417903319406910335822021288754831639761139212488084733931150802179915411073177476902582039684573326568394786559094094007769884131785867156525882970650746855403762571886775053333983435918283480509732038959588629618981491194872124621980298681301427675738852711238308074507996965842881909352704375402609049686102917337097674940727237413928559396571931458372406307473626866473851020425128504964186986976597473171401182420519535434263231920863970992329314072467550320884729920631921590387063052477646158573365126900453492187367533431742793276237762048495124526285756130953934488098907564653381228815079779350484677159089513716697795759514254643877768741448818237188464858075451401949995824458357444016301514414989352603721667790590704815056581086536592375810406535445380307188408588797794616994387626341025609235885034601015215045976544544504633594081685286600744505377172695675775892102967545845944707751441393155975407121791518722658843412653764077678246653172477430620987752188837042899992448879847682972192631328400384960924122029436574015218179813383292072934924773320608775332029330814192980191045389788773703282490688391619302076518786369038364501385067201817134362833508754501805510370949531897155094965205991862231217555456689406668436792935826651910537311492512821579215983644838075248999655825200463906848527595432396876945218826914983446780417859119412956264360637411411919873446365851893629424000017153206678967596949478543164086256996965931550751214804978988843458325834780904933228934262719861383149278966235794142847911617980305207473152172764160700858323877605126946765073487670938818579793714547802404563867220789054427744950232107644263186703354342511553242599545585543717981927473848291074090580981310500077498872472854603162945131200756030245603918184257555813294441639304524186956701503261227910699432726616490660382110633118548514873429847407871091028408418757291316149715779344557257001530988749880225961144532242603952143874429905945877553413668399713540919110506236302796159048809411712597920800689256630399540221525714784495739720516475684781193271055940364813391854363490168183366408524494723832640029909668520740103285978774893808690723676938370032868306026798020982139900214245639068058775144179066307872752685556673209697445506097506488334157145744578363641687719047600704501633796626465279680143548632912363457208774453708481080027436265509019134867013398071010431901919607579157369524778598325564994317922319649021887783547515656764194392551799049945701166891962177407581843707120025389038933951609284015083195322295374563751342624140124251268330503798610864205586412369255934835153909037915220062580948116847053102476736389011345607568687469283200657433451187428241611452307970145841738538552620266722723911622870412370826717504920727738276073343033721001147270756780211524537039674293315593021914234169950058751222231505219671260189302411202467301001666329047509728085662296371729270837900327645811187959019970552228665620150366004152998059988964064135115127152588136404365885891597138417639175190340268728427160118513298568051589522868325956834944343313484340153936514799293676993640315701543004951288379054115820557648042601764277811582045617667971034275791503210939138579196134772500976370726005409617175353959630153319209057677445324279719481304267452791925277967817042012763297393340674250391333584564541076916272591567239976465126404356834910879977759569441582350484246023023010388104866683411417105505744239116898747676949271716468471166015080745019154961289429830690779807467757823741168053765597105778977454584099362402093383001387520745688650848470679326146807288472701652893221511005181741459853264631150693174019605433431310971286360950914079587539812395094370536047740841354576405949501515304772068597821360288468528377529897655989555009573589098982588787490579666615196402122840744336561675764295540922635320065762780480569493165094218881414919468615646404206170727724815567472008284512187956837065804623689829227594473153104997049779444335505612486398295280617299271510463920778618055171562930323550123599540341447632888805066284135348256301549908711956463506391549875582105559235724277504378642237454338251368679778020741613746236508415955706324534485160290189463797019240356553171624053348314433210677323600139843466616085364259230726487200216142121552322667264777342507193571653449975056112567365743923537064402787567241453748514887527738511935816246682148404764253258414697899859732094377750313585300571994503101877906331865663633505423242927152938181322717569120003569535973606741349525957260089007225406967373340222942094108152701412772422960426478007857077348210637525231725774128266031622546504055320246207592998741290173432467703513686034092605516894493842792308915103004669737513438596725975244719956968554623352436974688788129845357066191023831077503367180630138208924016419696706580586701973741272040458064499135416637680658301179743439605390374504830099872412263511849860595288246187173322808831242127129330280890370998774581205610834298182675048634552772305038765540038111674731145557272893356291969861268536736391014451015633950322645856249787430125992633244866256044540298839163304673528904755907769691821331761203893412744768475015037528288783876186593039202845433185867256562700380628474806238226056816716655655420839874582656939824083603777261752835866903223047042410837489757480691314837223968351662355182029031541622256686425523819657145811933108006021805862909825667177177275853999804846896495914739504390715870709820129123877192693529829523590208195199409788632000616940574116152506143271045007811648022914094795159021999616936221858121901989721983176057591077475930944299453975269363430859035003742157891485303229734483851218231652222309261411026322394731951234772369864572506381046365173287175680811027495248143287593564028012252871781389869162182583181196818293723283017076210053397694734000716865460489803687335484047864692218802319203407791866552968821071406938081740724139410581677692262367352794616581110263561645049378142559927024148159814687256157114105728161772456335300474302461450169520898189531520769577013879810926919334823819920235104765529700148438065932480537852338913094167726612022857615607021002768497520030988524350387562958619288438412810679467974502801696512267654890543010982271304536919248969304468035746583035824530217730556239262314163627305450214917933998752461220046540794264314622768665168002482700951444625207724296839886616505846943174381862437049623735506040406859949129415885282604646868865575540230596843057115614858195005554898771263983252762950039758402191687600902939670516239939467821294441912936164740712799370730570507235814924718029034211547070107305029458455606720341636946941920581402581582404227661799188248371986263427174285275565220847374021268098602816021006009389495686866280685774195170289852801047657958546536399991189306446503638609221798743953089992791296545637576846281276919818771669572692185867141916095662290967467074922880142223720266634060694077118970475604036413380890337064067451318152554373884440269334211803139644511685351912513916556614792798855573678210924700625362072112248585552847010745445790217027738284811855347758542080821731706886996456622093332533738865555351365933804885873602326384648857879253566318320418610282710225684746451791307283411828360722625454317997367555052964066915057277645810976955683057892605620538147369367042487945930438414109368290347984078059153705149904326028744188425021669013755044869098097410596078857688722035937843125557608020028029144261749109197438413372617152780139013396437051456462985108337501980729598922201495789442652513271366979302143107659320103532847546485297720922542806955497186288057290188237646779262591762602846710392109396432153368204173537158512652275311332836788006555927043740239125708882292245317388349408550199079723398244843222022394817174770764356256488932298040723117424828785945682863413940182986382856758415856471245367126190293895401983906345863997021637067232442366905453780347164808864016062681765333491289510204096445101976139775914957905452477561767005121665143249444458354864001279110298807397027703601256834876193243773824038762853080853865148801855537733231110366317296528440727234314278591444097565979146014304120803577903435376197516972941793552777707424035231068065095965031093534797066670519387471457628186826692587301762848174523978415775655236474789901831395338618391308388347300942202883193933113655818919764046473219563965831211920439940122552710338648794151302379459209144571448349283227019491813566508581346912589161929275758462123500459273679566897489157451509635763118439550614071377067258585356937361684214481331810093658848306872214966539585618217994330702480774339801723461576985032065029904601247282444571007183088888412853546214688433514422392608942734939077614002663617093241460259039135928670002057916955623804480659925444136655259965742647671464705054613009825768165140929115048258657361730917530955138680299501086763906538519730949271529003422551054073463714839476119557312971502500292474953008586069836867442318886499414086243101165751801399205638464338981659640291403589787782338113372232017446118604780608704903369087670247215671680797578506496550890830261419103901741211642701723959756443211460940523037870807788081388424236061250721713963672040609584462621884883567266353521698293352099867206295977848568106889227684149284012854527515083092822747712201971384164652278378992545390675733371707002485023139698596649557361542539799639728020919166118161684123817498106793205047086848333897019688204650645753533823409949275886682626444597432224669293900882712800133425192490564667324046000487183603616302310706271640723718370520014624889598711791032506600139313771550412589669006061286477102878217684987623218699003661282611044254270611255485526801454726426860249988168306299936277528792147944445521589478636076776067779971853152269600623667863435160267325836745471247955368466071775615142287629921231129376112930558483911819422952379787186575619951273457638690001833601516337286725237798669992477824324186626621297005927694106190617549915918252044359903953742372659376503295097565079311061082161244736402708589833812404737780521468832052300066261851724834110658388625644703558474820545550491812168642078132711479807712761650001917876922237511865672921887365835531744594054689901085526917176853655509407202033412807503370271057154504267651662678498383741814970604494510082567605628626209502819070901170144135022058633946503383286519870936779091125817086631565678087378598980572592612369794066388325869648835044967068815399202128835976136187007224786719210827768503210494388985792597641291886697299137879682489517387315788523889359810123655679652202469093009812420506005037975493429488976833233301177980353759052057558048012320026714462351885564223465512003871743708470487307992399373062884674672273906325008477262879429643113637385523985800124076737462818263390516739148527851708306455254723387435410309359546839598446340313797195951983139684438879069010942452480706534012155499293936091660016598976188152677732344058487855536367064039465697657604462522998672774175215839456733854265670109223816580264448330370967492168353068089936370581291005239917359965047328117861992915740355129490710751583913902045833376592102828316416040775443422634697059654878225911484223325554907249103944912493111568463244993802008736254284155012670221744030125790849729662296087053724089312254037536121597802481887228900966530158023338222861120693810304011591530271345366493638663582324500638445069460560263729682223135284975735518525669823755412538130384904025766692888079848322872196271088272095086361152456548918370980620708071946983060123951915543940161273795807732016519624360619508152871994271670310782569539392948774236724841055598844175363099216756501398549209508439579247575188155486491196826934400434286955757113923440501366077755263789419923659974673011425245841458599735224813513927517095983799183214158666721480129150863444321854343886650730628427567278306231079267882271929225982590613680071565436277182435647568101025662594652859606414804462939063928888005230927215563496911308925331468918223737090625596466436749878311648632020410654318440119067537393905616348284816650501109880693726095676137684644747416142563132633859605418513475112180776884656397388106919807998431346745906156469017786649026530461345442452727578616095058369231556440400040957639171854035343588795844734428164347513790654870435817553118965265217851453059512110586951068850785578309758059998638295034186095586323473574846052939220251461750049468990504197422747024403029165267926223046934808222014658872611432548350848383066340104857080787841366297380238605251136471679335437546959837593853983406752192753863612572505849931307407740662767350325327518368416414299448532115256680364104354814440461499088876574900735662975371405626799586331688535675684485324752488778029211973170183484608617323973875590524162636622816842048514737534791243470478647394518771699932094375495042907039849134837484533251499049778935398584146010014183877351832097279305726289310041204310578433676018949894645561806174213973875661757238381784840784151784676757486270780039859249638249592774388219882022179673562391628891624458704272779242226726457968686059571403206847741334602227631978495182568307552435273292002047369249128730894512255188845751985696720418920762518401102186592808357556881969276439722737570685750200984607195622115931254998606618958297853351025407397585160006741873185786686593296858422127370855052091106694151017786955948293152881416742057786608903498011497351782721293431500253376267542086482471890397713927829629465883885710267285945707453459726993238752617126162322092329072551875279383942865854897226888367132082232592087965498479853265546217879956783422898266135823873036742616262046687409354512965874703145392697312581853439474635012420282262915520663981287672968163177764541972239115918380918420461245342860110905691601836959068182325357913649377186585270600659913736583280566756764390893438790279188413419838725040521856441790411329916595404731364491481247392153033777821148716501117875804566857358843993565586076209399459036003821885781625984957147588815667082534505888361903682018989076450033049462767033605446992422251988082654659869487256925357317152170820111748767204300687438767006754990240514108199987855072790535885687797292706739441808600067299375461854840817027907525096252972364660999949385240559398468977260024610057964415610542612059360129664270697440505064118205029932490044393512433969142423757391180356056343720901203576044264616185952884738626788235019905813096708358352547886740863950879606914469763290908647984103109519888513382410645836347799635270589910397890987973253381228359330444643719814324448206865452496732156440635113658177283528021373050461833211969311528467541394738119779091719852728921503273093526193430164359651916057791831171225027460939884365853026012375562221818430296597959542341390946046666270035657645498976884857549154423459334463042237673005432504055316051441187658208679290114460480541775105900429687845616965235436566639486840763925229177293938783979379519168706862843028106434341822936349928564084231167472484176275637855363594251007988585801557312406431433938220227678176077004410796503708115481101471244327074251883075603894248661306385938376901933293530948158366939279738096700388059896295215239501863967596612441714399885484718701469026596716876748058208121706695959745901330077002730754402770585157017851679921953759534874908846536986210445597843378405048817720707438416902100032395615916516503020090079614070324644856100860209161074548955594496099356308616450381046812083003704467655878614549483044590522309867671397456806115888656020826370515448195548560829409521655079071802564518128213710456789505060895627473818824731334561554275070915733701700297953345859582865584773804353591191785173959758906382644703119050811301020467647282125081431503151969825979848594300251363572802786786096144868274496058463105439252130856768019765169273369306868927210731658131678740724026743475348600241129697394596305703244425293255844860767028229019175393649311686734701362259923325336688245984364362822787439894622165898011736579898851419867500975124745253524321899262915459211113677015828641772959230108525840193531973558516719152270411445974653663588516896084674137994782140154508862965174733068896376822896910890056891631231234738093272432148636184674746769577512673681902363459950787392570618214207878169567108796014638205242685662692225141512756415598215903774235688258641531732028470660911795279214865776689139353124951756840627730410118553424063887875120377027761714583468716608830965260471286484267097346911260049300574003356840411542550305571283592612484047995673734357583517583901306987324031748764019323812506819992780903715131514384192168925382415455489850566447526683270361623033155813021300110148196918739716176433784133311834512821680944662330656573910151976091328558082929325055069503668510826792169154744645980896125394142906367991991084862579249583197471145757536699935935493405078386005441742496755111094532533368773177393421050343352023048768506704488220029624239128392899140002732792949528584477086799860101575387385578678679922924301892587532760935874658525627841310477423119802703266134136045640187095124997087921141023385845139216934452973856633086762211726651990620561987189942594016109625628212674133038626386309301063274846554692500765296134016713122457696326263278471237490616764431386724950883467519515498168719617104682572182822107334616360883989236058640519053422689300124791906299408248448025250809545102823403895025243745452303951203631398460491670791599877534148249150231640583458820633350958084399055730630295261870494388770047184606686048980711393333173910394936458942450565329132102837223620122316817644077840842253438094475574635018285217584671157547764667745339324566280794742284313716800021730163610638718517641574152083722144194155282701320975693713457202011372333031466067881613814886546491494133022776643527803873276761471058231805134469050616821676286997251136849930921283611010713537643381244661655489792087948246499783673275958132913213919209842201181622913790021634526802130805845748158828931444284912960038400677271950859686346103455295163269819395854871846366292307876369286875594525370170188852038408653316143459907240910577236160217335182461036850393660381128252775347142102933051696417591278130608901283393007218811256837464318753393279364031394561585875305294907336235789594692386617732090182223380660753543368070170574388911442135934894816140377226954311954319418376151957108342637489794076465868664441294627482734305503467443308818371875997257315483812094988521017709979292006816899218214257723031305044035414730709945586897682715441442200617692312976080846002750974397777595451755501951641575355373947403740568589501551568490180533089469180934513795221972750657750018568505815975872696897235544856857040946215466860085588747155886993852073184884584016187786954837127472629179572166018404915630256936239836121418580515898229077909975162994879733920767920751157782656638674006289273874460565214286483144011905526638005743371419180911076182591529683866587016925128767825855739176365406225581059040947146755939292605282606897581762492049952614176812470355494514621524262035479583887246685372949148305196347931499512420846217928315365254748176050181626431318663999453135459936978554031739804443964104960528358999913137475296071636992478509996367163576307665362663070304223458267900348622567363485858844419464590904123916878610669190146364038602922579316278050543504683336028981722272265081297319893814169345180696791622656216297245185938265670185362255022378613716299606762948156875902421174804254603752642327156548403498213005877547945175441199196784258109043246212689819217006569299231406510379108884368549246190681084843082574552407941728519676287773920038067548243121994388441593561303742683429659098591339918451113990538572930169263161854384853791657482329859489913987333113851864946728686365437404996916385451664055197494581535074051639919651640567351490489841908167506991480867239055748869775860064901111447486607676685150344168364847922876143910905498389085838601360321502048892068700047420697750354892643879194705981217103802998362688849293011612858570981479686320736251885529790240622689746074137539661375359226207212041308935732166071106611218181676379933456562417329885261750658889100661785889831261163625657886977481011820319346736623948835597686507918377410405175526152160970215847491940204804607930579944386923046273118887474019671437495284572822622377112177236213195890608205621036993904497833167537426049158319709497619894321845575966882046658531776733678729992120276431277259748731568079366677026056615527240187722630816212246261504153894325238421694450427207140026207325455884368043019344588551394504664230794211497770616673715689488760039609674837165819938758245382494635955122330377362125899300582745702134819632077260282983008987794645735191835411609865649361704789867872801611878044659171126550880087049386203551216186026819527274104977454539759895124728269669990110176598642766836328165202309102654925590563437895067115119548021649034857243742565730206262425146125789598161553626244518208768842774328597032123239950715101027479461100321706118229884911390479537203775849996416104174354096784302329554345978576577828302166307359079155185103570589556907367477769817475804292301415082189454120488547472278515707963610127910551518084360309466085800699319618962461394169970142155690846361685202599101233579578346714520376281303980671084452453529981122438267006907717862112759524502317968085443707875801868425515744375863481243481790083792168070077591667602378548199238968114390341792523296046592746283081971073432894225382908065229591541763804736654677066096712486260907302881645013648453354605896109475024619245868579449393189900923177013395827487491371132243412059819261019158443772013874042346007746907791788575718185216168505033665220275298006219896586221468048029062803517680036138705323820886367781648639192747388723358102514180970472863544758471703989398427274756229597197108475247686764691677824687085673932306233908604894396018360836635181132651942212644103339518703597007555613643172288594311612493338924505621200902584910523194327847472060020784223237675382124895802815374264772902587769825451494729798118992235156632993679146711509905528174952829572688038759263274809503487333467307078864434622633096520475432062972502332185776511195855328813028538844437616762165094245982333119558075673193785220633920613172184646700087198802231794064504215216626411263781040582526116298640440078568672156970571662418670475611200260604712720735927050247080441239254167492620225322804344795536426453367861219338744055781504732836662593779891437373718782543016508349520119141054551793284683876023545576733327527711230897746191007135512441439664068353424491624780266397952821444361797642875606343693454283801363539946630510902579414061744254015102639100936334876124681574587935910771398949885673224845399669703998763807501296963718917510224822318179268010432409919921074341304699501861174051350130170676809172381291625740162741662630888332169058325032607790189645095297518329805356288327830007573248565301475150978049698892524923619671698840061095243493014844051858855737974508260719654114371713200525267396100226890788703806898191418502802716518837940324046489142363304554948246029800516266782152753001697346891282108122768836273522380740675965902125424391302552628791519713095326800668214067137331731402402361505318187615825519809574509087708353170855450757516868334973600967178203849470151401386519110213676229079216954821008438287713430391200689191763560769224194553783563647663505794008712772094695599434705224297370292394803573407871153320777904962965612129096235939969880177642543753088733717585574297864623119425343559791171728933162136212661749136736574044587421243493715686380433480812241328635020843726938634369233814648762329298273499454793843437060519392617646856711251776195437121449881664519044665420939279016204916857078118267164081477569001287128353360040191859761819366000837456453335370296403165438013637085157089846049203417441213678860582410006379773891988317717750607589628091320122568863268996776844180809202955272367160546696796910734048922969422540203208033602936589711438682825604141995690450517063708221070631598084245969558762054248752786566133356639999981334008447351296923302677829750482833774216331734777508142424119136144622960628328656070030712217524007676469788016211707710129330006378702288002109188386792669081288251432001323597708168811758899248681374179132068753140573364116258560375822483030450454418121063787999802305448379831635358715031285409718124563059358143677282859091642053673165999034854822882495217608291191016303156272625233973332190527601398906713665385981251963589118936735550443021827852513980066701968013780758705310564031688656144279614303768920584752640766352642593223564100454256822899503636214353881742611630494275511141288636482629485385852459334117679700872930985840798395095359180142924563095924157579437449329740301129230441117297271918626378102647089067003326259026989238792851810591874206828330384816400474517851428785838187614032149408814641578389117695566250058403061405729963219321079217257662590728174274776505152470290981043987329993138238277157000827759840234727969578283428964225023018340608287413854761472183040016077113317082825249171164904984540044015632371418679078978417219941820452426302305739601321208214520832983413072179992836209168020111646779839477641706471438918192947262328327355473065014353327136645901817624304578028745844470878463358145271431944761449771276415625920241516716488294721586765954955717028153475088320613876803477546260638559754465695384693466272020595217690707427939723096708487689740337393633899491470738624256261307091266045012211709212144077018517563711164329759403729859435524291399759317771109719228727847334528080182934560690367720373686428961595114522626100206852768899778379186227445891642044191633923302034785651150924713626051822283522551707990607581865083211231001623596607366343518797810906083565088208382686937541839779787735545412205058592502392679517301317952482874809441922966816311371222287204590850270463658981466414972445252104213628760511114371985745121661564371842757686249499449623426295299713459611728973005257556925222796721770158216715793576802621449395128276164772003666912816645870402806608122394661633802224588698491180786433785329527015695028863096341500664182382084263365937299948527494062190617751912662886371034282158840604955583070597631915712509588081983080732165591014055512751458476268307924759423642444520905172793322645085862644753607415857295570968440927361227953332787081160056025119924659208588592460145495659690949342446005655992441028380108502092026411052113951874393720485529860477798915262187311469142767888178767643036830632031792259021051276253963747036803178561403035184261315079899221754575480828716547153803560025211404765793770900969006577417208119898001179619498247349094023691316425463009545529069856563230968706941971310524485976634832460872113565716097151115214645734031603914510551390893329087239455228273035777909200358408292130334610691278429073829495526415801194373278123110556503608253974376367417565248054896335839375977812998820820350876899862275077957901391230422232841001341153119273212675237169983774849655614228920490852524017443467282337048200308058048490391404785385042157585210972415729217271115417775432046062636637950546079879222478109794797603092866755971288494673255714034503251598117041424203892223459740696419693470436156862067477085893802073542163502066709797978662123365328491412223463142172385102321924512652520347586912859549585073672397426097703473908643996183925569469200303236114311398467623393940823427249206944054192576205484377122107178526370171443276475080907233897362407147454256456425354035206714007306849564242470910135906998112779309121107254847290062805100762957897688086423222458409224257357611929981289350584060960133317287401364289482803388568408928225203723293278767696579395696007196870249361870948478641163573420001402012943785255035109422789112079287937561971323835388552874741020967614126515741086394761907536697129248110382964370762041796056273876965010162553987280400001000166803213469379330356757242728168494121324185278141027931971539138599389326692946199684557366992418049647425326717914604377661315901708780455674681707895434780795243007022955458356338196629776444752365829394774528750361659552960406170589572900580145400226351743511101425731290891001293708102302309967078147371169741427007338344860341366104978210510323727242211105600252414693904950109726570033321707590635565857619671340973853255459195253917892974871372909253477520982060306801888532848410853470731880394811092395641359328642411911302654678836202233461167604685045939029555321072005768565894294722290224085037474351961069187734691043925031524488261318000316440922010973262340579314454803731453832384423890112866287214467429818381423580447751939938531864066370680108678096562385185141680965254337576196771796564767095965225596528778693534440282183305426988840016523880793125034141210962476218217143399191531407684283180819592885513756689435206321312535955527081447846756347658050355546373175706975862715424090304708497650233761313895302059672037134057138794030192778245545564145421813436796534121249641433271903116449320923091879523382669245180355065830298680823723486392626697945471604882226098099225227423136794748070428223588689575829906941537045158269026892348802270571788602858177933756082384153826757076686822445723982592590785921359886624126977328897509611267834751245436679065439191862661729941781719060680731912176240057634596690673234637721073200902600457383847567738060641452408346783518109112239312564075839644063825255633512411359835404527035184104260656562932209028845351119596423048122104894023864352500601199763372590313902995729600952638482191584088040021778085705747706887469164458464203712229345393466900995610290131693250344189025172988890029349369568378192312797440993467454232683847611875412140307023634129208263711118020691695428804382282571075832694333066475612472491247551487719396910021381077328919800812478405850718154514237573730723018213322305140912349892183326091993237143547817261256234776605671612398652280176621635159337491762774180452404248097980806961691598793768767934129157112269663582863145159029517381266408662018785378896576811442097655484083508101541805630971172645558072833373691859803473472185379551713783744543442944653964381466798448988358433302471879738627645814974750136952442342806154842340037326941541517601464627464598533634201549637987923576884944180839229066812033725012732257005163429887890510671872805657245686693911029583309758392897314264590692499926372411640674225780032917505458478727627391443832869806123801517936766925051349063185476594917918742553008159359357443010101487990626359507189607843079926378448199331706271369159503513478237003445142618184602272613011540920086334931759406535099028578925482590066122663019901054422534903627527055028008132706351121236631382718680115910537045486124910777018447034220187940855853778612407862987419635839201453132424000448476613938016850454895124650906584568506235149691831843266749504284730779168223122618321853142104172865008596058327061079829052555585935610267823799645279641836467792531467479791287650492452876459839484333945753282949893913300049033498800497976446126130064236883185323931144874500059285803310393498632433941180607837977614448604719636011515015840822547739228766399268363931278115864425274483235267811968082541879757307765335823105074760723446551781762207884776057279071356187796252785852468130142952536638913628583509565832311049048760991885927545100894409048604488888063166423894307668558491689421911866717288963186841168404191299910072032660286665975726581159324234547514461653445649434651618744121236550697886342834994640462476455600470150874979463806423326200675615498508992058835911244586398322710633794711215434830312601272102010388259338086030292829958594468440202035549445379362216541569364207607238754399897698451288916772604082274680984216960492836270600087300533392249650349138643997006717319244293436950929626939192654677412242110514094658980736973826337354866211722638884179694721083489393090483940054959641657795031527088273084223588816879762396255347363555146968827647688164666296873172527945237626163541359303620037739840523516272772570269774122598937952998295070667760738386239030097160078886707006078138977745852045156383403722292355622625614178280692512007638803384081536100819898021185165747056434629711441382969664344467263783927407540394663002680353979434656664823850763530870461368053340742535241723290167827579711677205124737248593820626342427462196237415389442161133849749544922273983348158634543595879972300135420261947813471319992150836029572171554443360657529841280708838552982477533053953220369977061968106839340131279457322884439701702740749899989236221269609025196715031260110364275957775464657194181098091918932513318733277006977066532496872247030662072156315955623504405535445540825024920895214246471429758538625859063473706291881410820132248136871428830224103173860073173620462470278253422369178807272980455126869842579541806933436845400901995837049273806955654067375441462175637179577712054917590146635371704753210405668971136705167112056126451302504599153182261028260274550778898296016064464893603123123213549315282369878489731150833054394149030723181273538701939440096342642122828367032436768387612902963277959445927318140938651348540506106355197464170431175999627634811299796061633468108087418746230036798501745833126869633957373471048266762021729643652930792356676036097966687242057625242795362710138418860947303399749301088770645384781262387258099879557253052047256209684705447384478500091734782190579062702847932512126368010460725684014982308630173759048670645464626940429996220981535133661862336983880530270204550160499630777229136315322683107696387929767779086070121214242000582867118445341532064240337686283338249061899260860768430206081184999274885434667655519575351746483532037391263776073819135711621532145080649788330742725697448877666380903157758945327681779083457462125188810998708788768147755763972354488704787935534995120438205917726008103336720380407778120956919087337098981160992265588272664889377056326638345005490214829156311107777066212677442397186594506008637207108078537958912869909813691651318630359785733039228739182383863161822642243446401534643644612394893913468222329200207599067539127748311386803744855366536082029837583452025064574829630541572177504712281831600390369015791883575619735407981330918696886864530566015198901823384728797956620728940379829809096414300222046058863435638551448128200226021917659045541836684001698207319911844644892081551186267845329402957825032277070981673066911272389647395877246853653562564729569596266358212325954233164481472330433997809355231403021535717146376698909653948168301550414028570910073758464238479103292425643521620239530642433196442100147612668648282004021674888795197637697890548850380586914217467299328234235393457907467279620889759963914280365784618640349084423487176492958183348753163143573387726405724669779629242339684883922955278460181378530398783045806156128963688223636793191601278209581994332384439579154108861080957399211196339681884717035787307116690071961945701324178783356716178644755972849715158237418877408655206144893120492029140161161276602426926100503287280564053283904603256248954751245573920274338268829443233120257492732259872024696417338381006652622563298361534080190585109803910416664911167306116716463831582465050159631832976470702561327373552091981124070033824130572192300234320947938896210081353844512347247533194484436068015679526978482818378875766416142015096117888603030414673721908087479338275457818168493544286187462180641429668481836645335662799808437862876787066537536953540832674030627428886011350938770112975865567960453871479185320072071036638723065559636250332185118782671573142382024176821053559831414783832140928480362543336062036266308193954957313144083705819235251059506287760227725536692060506474607542332669694420915958002859795142565597408241102030691614483096422811638373335070315899934369602874989353231360617280673632391318987742764276177073082396960416603868932826631548901846848956834664286792458251563726219510371723053469882443345691189724578797983552000377215761915909862825889549019928583356076944795997344084003459814957421510761680730278298176754825296389259812869151203687965459048811757294004318399151289981877343743010844146970551746648100549707992609897353297873144565058271530048454467604315097184147153558330936697837407755006841456135525934569550254433272799539516805525327673791833423570075453162911635523583479593668037812301071688882071838117079569724682147428344242226663081326424440435609902955728660546240236984340759714243165844790277221729535327748193870071759623585149392642997630762199686891526576366000559963000104883867211000715293306745343212421899419614374971679687538466996179578473473056594384084132054957498336961203686340909720766630246583449362019813504348040126538274186699328322156315855886718826231337295260227752299550654075275362996767333137446668834631967030222486149422110884029326613899371554340025390999059158544114568829415548084963058936112121457545900110623593971043936652822093294152793527090825426762705803645572905126103802874201983590164590874090285792767508107782533989610843091928833127831410120456668155685828917620108502615308707932777325133603767512925697449396980280717302179073685656727726671022451008149855992779222346055669905383603890785215328557883475030603949745964712664029228609087134134847125391947407708469178125556463232932990014269740006109871708691165821323383843059394891591668693166357442333133787746405326751095489971494216503403860968150293576690006808370927088177463231724890555449636695313173540283086027610464931739511263095616031036016642453057180358679925471398080684563843852045823653585765935048756444701704911818076103843348715012483627953534278427705459640498705656917844287415816498922402848411296845621682709116866637160154486851014573773453954384417779339722783624470444746693771027763886251835644193190380504386120210804856208159183258849418417667519745308940425049204877682103357904888025550961144567008545049543083537772035855942865182975449059623102604165387244809740156026738170436067567982075735792267600509473387405314605794812098324509793569242558129433576886401010246856639986589104781647439955849404218360093861118558010279441097169529682328809062035252289125565304920204069327937625185111407955713623066373402846667298251171526067166344025115585631097258570485079795580276187812390423511006747061991780370469118629676604543276455266128295602887959033223121281248373028309891352698526309604613928973660698545899644393616082194575363688027097304792747307815477356448020141690392938258987008550752674346438675270610296175365399648799937004773950161320949894283881889863998989456356040792303139344662322879025872845988888070872468147849747852077121681564991330707072535001376059412351351713480569293639300568074900100895446320532570369038324785784755865750462804001753569090723296459503198993311478324053031578966566380450924723984574964591124296677739813938995367002343566777754772014951698120427149303565217919194426755256753728796304277443986907549460308739381518693028433438243818254686349661658771019936702967136013984145090740474807616465751701965530904495067569189413567673570441481020737362104900967549688527738714633002897153289541047458816165438395067813154759680104788241105852184375557371744093172304056677041901988203847105490770955574209736858644530748703906812612295082064760588428978268217926822054718492323461759845919500927260412232264967056435695546845007041692009549485363160003860084577898785231441380131747177401425363800511488763847983729799923843513783194695863375618105910524743498517391280630825395722436334482767633395444162013410939263133318439580731663542215421759386779912266562760962387628872433406888631828893497487521345107364861252517041270514312097914397231970900537284657385856316414481167202696617748212977854364520140165404742954533455896971465191617818752736127969486767063053199819576923241836804390954252996837057894457250249820685589007041261647213733937587720499880248779680364784128300235629322698240782061494379806556158638347695814894572835962705494241684934249083700495874194600567442336911794538105723422321834573774028963034840831438675732561421379265058097034278939322386176335434742629209895648380431102253980523363101473140782237123604080825039023748115295938383509093149593785151444076912231930898251965085069439872968944238175363863616035214197608562871138105625380098148929667653007118002640029113586850904798075533262104980361527624998568352491614447053371509629013117747665916008744471322670296132841298879574252022523642692173302082600596198385966268948853812714966034438315639181087286687213966958322522899158424498110514323468056096070026288152691354981014516640331486665668798833376038452978444393274390014846998344721661021248913806256801957579302624336087104817903817845816598721523319091703181414196075763398601307825808378144579300730941799433206466413576036770456216620107716222463595105096013756794245627651779947547610364900576388320053440617921220749264226940700623963945003295880893730423727611301925445662325448328004498266112927021426219625818402605676438740857351645294325910632497925823133844336477766935496987110860828036939750169175927337161100389441309762254003876140721091365591553616414859288716240041959038579195904034955434475914450698928691741725641435880713357276253788984475283949093968733610136193294996540097778297141511892918298933890594128159548512129003785043475543856969337522830289047051943751416277460356076804083126549156913859981584845369424363645243425030253387156908239889744111357072323726577448574515843813847373926336462389898013429354781698934069963417451316003672044416707692802378558133457729570037543670865438996480527424830784729802287458434948771696517489858800122065954844196846315061622362704819699134646886740615069596719961844383654914222185685262733141846009981057843875955939850482932047259871036021571231455316874715223561789226034813780470768750317308942607427236926836748374151715479946831542044496279934045974543117499318038409892080059305833983309863231518485435653337695824679088193433086182616577774220706973470532183803124286740675832928701253538322978777156092650947864412720515899356370153631286842802685739903454199836161022331440390488596317735659528733980518616132715187708079889027340766643950815232236799059585325121930297024025811592930750933647202232649240068787782343075691785338492608319247851592606310396724195645467880551756796315738339334635511635982895632055240479729153762382987777160405195323378845361848214010800279334996099461429911698089212725807923519147490370094573537457667256466829631785058694668369716501159124546434262440734569811235927007787643277491003463172594561516023177745623686824180867950162429104455166191570786187416058380632766291123682017910542368080859546974278849897526965435288040785150757457033911348396909902225411650863714448071079519579601733924198082074962581878898167443282712493466555307795095559523591369230873545199455989932853420796882621918526658246124594993670664853140852841903929015428234660263935678629929310613265572522692236991902952671616426391904416324349236111304517137027923785605941983645909409516230382127158415708813993128924067453531565350539614640203262028054751735166484946792724362678334380726279519173061758160640442799929972290923231320037362776672074611040956799054735969584397610133562120349137551195326820353606199913789070007173942993912380062835748202455078514614268906952481891965276793560699026462538397857244339757755316630798980504554549419947998581400404442090421839984424031017249413426932162145195355921758676934027391531815781140364027158703014122605566731325156140397330867562666691748988494614253255760554527160979630968171686844216586544633134109840124157258550245298623270803136765499349701203473490998741812492174910333405416595978131331613483842870069412750891385614190264436168668695127527216581487592688215150397295291647151644032376319531254292914375815481140374445781985887865119129153622591103653928544588839839880908113051840992646811720217455009511712865769544139961715614149694141901902246600957739392117629658998165871833097696247535415030608565131609877521177438110408282650232070765143516332352988495569777774800235406563601101108077580632067043756855541157902971698122949924174394181587771932878165394288230188276348306149025149039857015427213465650187513464453127690020565079009453120598119777518517407942172630852104360140948498017358100854237377966793380111194700292773167259739831495542604817511384995972972497258270003939108092479921225962199528648427235656814140511893231976301798915255553227555575764604299849070308530907063109361829081418012310344250677237366607726828610167702212758957780975209965788571696789277422648370352011836270784268782869101286066003374898707518739390102561117934141986297707641194624333451829298702295040738795697197250551157490217818665320493172178340074609621623016281280192648279673793445771829756932054456609926799508583403480761758883268522374032320523653592282615289978953711880600589560814165947664471586278229798992518289949022162702651387313322259112306841111933452954145817905131210772069256356453507746927720264301685951303577524695382044395576215207367828317162310607070009459591964435874181552807392078405583260253860370182685492043851478146540714563774912588200130753604095236810007452892931620715373678767078289529727168506458544158522121248520422592606812082522991345616045566504153904698228411476086591450920782964805471462055066343443108110539850891330684372473222914208067817661051717787806144922707514029938925679721323309335623029850109579484505888474999186469437417599970428039926803631832370202457541413974350479191333449596396174504512188685374261947204022742355303475027659474415097569087365293553805497851632957459054042362625613316786233223054742445225958208475489859863510686344233160336796823473302551968754882843375601892336818611635343864744404279126782296912709279605322456727509453779552147892937408248683139198735642708291624447580315115250300458823423555966888389587738291335104530488219064944093922508013847185458611058954635050257784716752455788593483135964116135086979151568904301841988725991402336609650763546655450070502117421308506439507905150790820487282187327485371523320277251465743326868427907510694922853649383012775085877862623503731636070315085622743270437475989381358975817182734611968568846812078128141741299404394827184163476061857856657822008628954594524554705938631398347712495817711367799981142097705306908810232572888686178461282817260332691995377259869269686746042545735238833875953379060576891894951372466897306116768247528610079793312500141207645515038380307745901657682971161060809317385785051175365359204534807246728476133139522436740633433364410713774364316001913245258071953918929731785605920549293895524787592289098224133146140206580910099791222477635744178644047504842229428226622769994814340791790074533482932715058179664041984216994824457357828188701063579701469186945636209959071043820878193651055797642955509749339757749301165645583404699209969415755415937156414189256622252498740355257834113337084633301830108960803775175496748808897879321754186602861653709362672509004298568696606615238463141670382666101338147083487438700696615031747803255259419211585842845580718720618823985521788126320638903937352288352011573422400888061813320103316470836960735445438080719758453523561559883856180827897968187237308647254714084076099740450818662728549206467622161993066393802186404783481542112751892776420875701804863296031456874111401296205385943248753153113264625630575833931359314043882307997823819653011667547052241094405046682259184777497686444493429322088330322224817256138105842164368661816156773351462536460937769355203918587013014651739401283012050176846102122176951003394311535694865903066232724836740312357464360275973665659773250171610999004604243933522072226061315559736328774024727296626181436201026386698046426321625518835724503884133982518263110156437518678098394609618610224896926538328554306962234392387569096342022546641527521862890914033416585695986018709560710096931211091725605389673919480226934269036030406125344030940467749569850555395208223068426340759849031428005257829288017428840946781942553411522351181046342141056813415786576311848417400640203172573982135832787625156616765898737327513534054004815496027632757818442973196668504048288422395145623899276075643054167098274036178156230378309014263330489299477403638259444725355339323256321635624392757206781029224542880974150895636454423729604606624092641989942398908539603811253737473404896949231364152433399320341434461089763448881122960184604477130198689002921543085757355803993001791618072245877071037806953159485197105114789960713130835577783375934615024629759915734644652843660009420966710792807669264876834883834765878292700960138962002511110861669126754435146480147641526705095344751481592430777666843129173255272884509531482914359912729034483388908527108342888926233323446207430362348361435847130349089430032108158599448333872823007904558762614473873018243563439305571983925515852450859335933385920289846097037205875343249515956409886184107885395047979810855961561811304324882420608451008419509312256475340212893260937315503024851879131359410778486112831729949367560538987021897798555225188620513273192502476580156107754270970285638710020059879710037076680034059226601692612748781430383733271189952807500557976418131910142512423358304378585454665299493432030245551072962515382718219832899411692773258468757666913220017854406762135467186268247121543496539241420527443722756322382392419318946880965245586468908038253092246497256731430291634213521916302098869997960894768954924016863479843697468249948081173194535420685174542908193607906841787623978362573653205967221749169741577720416882347988093339260929954343292923170080910887120401311574670027006475821230961307105583429230339924953971994764888868321580512311647329411259538722041091098782335487593680392881509312129356427036619123648024010659100127269365011683025647284682746343704724264967636887396804456262401565337681486149148072003024354143764170960473309997537435749215495819579150597602269755525879445966891600680406489854221661045163024191327460814458142216303214994168649712456337284710864874182599728918623629455396311853135651895936362713863342505993830715621668996030287672442498710056907055620459291617970573656291786625072747343234001696952679018213244037092648723529534584706656429141592434879007931282112277103752013733341507334814685519340808817890237756637401970503040248090233738352448553927036748022641170121021021415487839585443524824050545859508884534571587234700844467490583818259010775955509305388594859296725755868002033277239920048411738761199870285531572019784475111725102390977739911333925950564434586225868662692949829944847405709799702594195189621660664005519345087904848678276374634395925791702434776883213871454477398104931430852420085266313283801940075845619194564775421618161532719811972228741122878852774587216314284397594652471598594214997439950021607839498902323802600969518285292312499472555401363337972797725191637597557790602007750766417688044122778640924353945434121623502248876741647016400173736874309764067426487477640796215020055084646564525373817138407054850845370142231834751212319422769232192231296333858809623202530933863913187696146451343401721780541013362099840422271678261835344956396165871904570774412968271749389004704893568982292186496990175146557375755589491637736974495657624768798327031523831523617497545458575056775280408481195115248236092027054722907693550681386462515911235642647827574732000813575601218453004510361891963660660119070788814382843813640188296549542677457683012667035085828410383393171547905249730005865635192689644940843497473283007103339976080705886734986044998936460943597709565451474981114077970928758680185853926230829557231100536396025594249832406740425983290394633001261365229343797584781642547575149466028340328069597858319541071978733834228952212842750980606176836794694512353575334074320746618105631676961472422451778376362864918365175708931806099272778047761530935287338225076069330820809025713767905196052075298420137325189044052324716133334539700236647701816911182966895720865994943146902220266018629393438564018411878859676644342189177893328893083176534647740766262057475716854889775812776620461810136383993731565040153203036118365247521031439412513231215730443043196128447632683311235928975631574868240706652739710428875571019352546018970111723887421977015307742440335464925921154865406979780359694441062187391701803404080597713136336841275221991824614746883083509470613993542143474118842005247740767358130778971553022400532669536793679251162199692635663839627620699384758484176370759739518255773148016016808415345374149222105655866978759266172014518442398709799774497173637895415678058797897631455096896169856807161081292153282126888305885651188370652548494201951177089765253562446097247328633005359091067946130641515437474653171667412517522976329147310925327361463957005900886497251594200056353235271478459395667065232546341398387073850031141472163846719383197696608596732348689019436184548222794503950576514187104187319746322626091078218415099859171252893365520410487012031926091545289873606033009759702122675361979626036183554439103484473018655664743989831943836117102332373299350750997724428115012886519225943070648701829731241611944764888070309239554037849476037524281003361520048141765237299800830448112194947877390233827463582171322170943753699918211984908567772800872119877382184435724548505765940547863225054767577809389938807801440780435880345153185045887579405550815898893143103435821180414388599686132965367109463322685382137640063703973862618212353233739334923866656211495789629434123767802216237367124728601259321557453403922871622539243887360901022278190959217247564057205103724610198920227827027057431067826674739912392692007848317331890500251256847683613922556982115771483932816748307458186145695644519183378240706394614004838734384229600359517788465782991124920969549112636649047045585071289850419035723901837415687185897103670163357138627685081215608200040535102829238089876926949234073315153111057543545392326514161751761501860328105421943434348161578774725204249875869541797337868694456535079299254989955390498588427991021997030945475406979229131220825328300695700762073140194156834153978507064114300605397497321119166921724163443230663003401398304217879248169523796632575306405242105296445817894205309531805582257625907755216877915922073221711192576161893980199202030924738982857381766931051349447444222347056703237175260474658407991808010240824934699038529831475956473182812026817491635056732410070671218109091593909357289779444224720535161817723383854832526109489961036116691735177166207811668767420677261511402168861906220638040547159182523263368466150825744406738390181059434667779442484861894378478153639942378997726714867925938795448674430058958371607305858488879076558816171314805548827372693365708736923721038393981701591890746561652613770947744943683003293952628661710539532096227512779354414505122414075531151081571890154670824110090442115659268191301661186122418061408779064208077023169149232330174092232931401296787142618628046533846562762435588816801886791897452223632690395205756464340392292731901931470361917157451746574194551686986887817800803588551208269588827419919777240672588661395623061274079195865309786851956582645740442019363116920266938646918960624742069748345963774115636458160065504628142116555956684457711686503715709779859036964333403346873074348630169618759722847815552212577419557053530674095304681920153888042023651581339253671435564304689084288156987867570122224155124296517197597452912464616711856744277368431062094150635586051975877787348879864056377666094968926104882040013027038735335083682630741137803927745294467195078182655025035563182658287340845659231026653025193348497364697110899936477704143657331980482628011523660761136243474498242163989385639701796857122415421696486884458081073548799554137244609064456683736190994628817875207156887192481300433487448570179335011420894322515796578846677097366901500707914173798843559033084322332536160346452467110156946314170210818880181489674358167629468357139847696794841739316024399091342169494178255924288907077590846912516043289629271597555754833892170244202569567746911485893286050355081207685756256451944865109836433708070627988764183660350524964793350485504782917345188188731145282164149131378979872335041357047104662168943309435648201577168555880789495215772981816799838363999425563639208936272769023941096304341505308948266991792954383423899432288939437110610157028092417519985793894387293033891395127811001147242266050694627414348277486006208836566956974610579963241996399438822949162090183516774812941424377036087564330755131149576881471179967998460916511126531822690268297727972073857723586924366114546119440271766659518194187802743442778749906551900020016080239475122801384410045567554597508799970254974908786763377309844821392206645080898585517641334139863747176931842341462290025417468653871070347908778151062055669626780589147491821330881000494345645845742126678726841261875476494072032215018075631986766197554850429378890631707592344657429946247467532528502635140350923578980391062349893478328484442510204017014285135277904225943727345032178622399776796573066311328270680845886737641183933996736448334377407552564101016827682685847446049762639104587339874111318151823953046302642409302658070093626026970627617794543055852970222462094286276363973653195240575723684997329991924630784130313118606767605988481007399470705893711820209748319059906268912586218692541968062344849505773577577976537378044868309729704088345418778825763971591781836838370783096630523650950043383019614335662494262213118939297993523953267354157086949374975112260128236368375605660483421144038677657690837269019431770942669532570772277054842255585325709824425225196278112114168746812022708471378641935498058736504163211735519279586568289799778700748137926633393510957727425521397421326151796447595533859809820279186221216308867226813837822562732249925271793410306998914126525076668196557450142863275493473783620742997378515824342281566648996193583634412212679185137464298296865954801865834833666534789055626667534016391940364685228312717618214829617573180498372011627897087191549062236495304421812736046022363679907112505780447808255696236312572890994117360972958943633791692785627638259237538787725194055215372425297397833701141078939860466506228269374253741588299674730340486281526658294474240016669546813423185275982446418712860799536482795642212811964212743992336370760005987069728010999695208740247685255945619022725289399438041785801960793803310810421031767051307511482802907434923680246751535083955470644066642412554556275879563111354685804497718529619536377248766335286563471309167146733388394575175404078879198727455955030987272534474577934759579869718696307120263268958570706991471635280353454840858383083037166608281940395735234369014935670951420232536686117450990792464275644454540038762829060925634945529094608765699635324055277692491528229487910777306702027118640703147847534502724981556906137649240737790297817674295782815010315702827640111182296625846166300972550102092353961698524369854772481382881320281884115191607745058160518817247208995192043858687889523413125302734744091008729376273278909962398226589737713620394369090803826523464549781259237466144945035212253482677779294970702076346741792018812227307109081768661531325540720156557177494942339109783882931627651573808908563027029127240819248689625566108688984477253859603631498379618255743621919143773645163979787577293397121681818220631084236711805236686879895587657426645612719945035982208135828411433104460984827549984143596399312459869504461818624509317252802772552113640765138949036523274458176600136434187794357389155529537706739771817050989950992493523857981068822906513475750752923198936648371626145719126804619556651652422841512156589506613170456980287024861641242423380442970667697739400288902330728355367602403557005736099473792353948910682424154646428935395618566212282897809321319169082926201592022143855498991442234039394125260431395082174846040036862471271324060654380865666621179935936671846037651203687922787679474054938648430916855673575693082400326795834842585956864970224732764014177110249577811465052274124622134050360574089919762634170618271645618475547415833728881778714492979525480426414146791597081805421606709438748860214505054778987571995536347647709113260704755748244755977804337913668354950379200296243107522224002044203792025987368625868832504617716383860783166195594028710246707466873079589509948324644417194147833751962071893004575424853895703129083779258110490722445736521267180982366022938071402131643854489054097658103904574752637322499751359973441510901763896945670204975422272494688583035316616202580662822188362771848487052895166681557858012762629935325235555445229955935753380958902040986765641784317018960830515959180589597868208699228914064659171807229760937238804488317119435709700707809040580195946556755471332899745788347840645417234154433805050386180204213531006487659766612179898655146849036691998457846009523053390242242565604533000012132548995020683917018235705554294819081629294458396007025805333136782978469550476516758769986463296683616037639106814587249219372116502511525492827609346220794387178456495532791261555585117106332948983479821016379220747803936788627894411356190382447603916584111656065660486626455404347463037641817312962740265632276440412582849914732191902491196570742691065845580010832173766580735906793933529273139645238550663465563793188243338696162516383755166358445697497914372944452724186759761345334673344585884064675744843686974597504330374466249167685576149875922435309395537834538130843004574356955010944837639108978408473391865629152622650498996630527369373081911263681232443234913862459277236242862350786013387666437923857533546941176418114867414722312599368268230232449263193030006017565553445545827358363354283651103915560455070687781708901427441306824953310709361663716371320426449374993854669732153875540885216660317667046983107111302045393381327652576276656723951397513670288516457020616775608470663942678200280460967048630744454951599187502099321189257464361960201171983120143146216088407562865785963649651635533801595263599105955795821359651590460306531751603757151552608333078342751881837201544706073529143928652801865792213394133572344717804970667926177989985173153178406505806106199459526908073615074588549424279630867978249864585200615296886089078777206348174550147508369620870707002168160494295568307931049537291240401410009336087702721030128126939206545080882867190667013388420985753503776672136837656325857227607777298366819388774744000304604193554061061098952792820006945777886771296749515145007625220358557992444664269006682523260969504331428006945139726610056493458564402320256373030090481445241978827547002993734956002969562099911029860780839793964084122807985022710279795416480940798760855979116461804839492684752027106560181203992408338696652615075840379779645135069115167766283417017357519110600751378170909291330469490623673924783353924433243920484688423395351281278640698478737661129850913041740817029506919311139735352522358738833159597333064671663771983811943904731553333498502890710817632310521632542513226435139454583535778186088897617313570636107441817760650823695301226051185227017097493155092471572352360822607040682768781386802297212919592423791717618144975125623239357310001771561263814030661191264890186200032345809282531588999679871819950024138513665956088044773195153673265789344436421269210699707323675058954064071919471405184756794391157942286134857578739562799413852587249816673420101179342907347621569023531008911898141330539448410995905940182336866797273898827334212622301525192772714589913029081445526138217154938703334823012869947267768336075748800907209911808064473308955171092350582661539912647880288651280072653708050051805117286296742889638519192915794005703023902221899829662890399198154496698677230050766222020611248293235138564322203664622010454558522191028555658968023199186635875730456187494172032225305029786076985472174462630517496672432496383053231576210679058228110699548233255666436525375144841226204921768385582840728968235620992071661984906510813143852885711270806404569187693325135346038905907349912576902456484471716996887343218170876655094110769440550719809984219094940898576120537092571019183314301822388257581396397074621906951586828350527114180173860521073204155367856734366599912759919799140312962124099188224169211404485669173118618178895016732697176398931795750712848612617572544189154787400268371618324784016836959436062554454056555255929270792832713623943322622805642471601687029141316605680635316607722561649181514977503792094985116669990545661009134367758161560807951169886918625023797361010973480351284162011323413931943758644929865186515457979530643245978866758789039718207325876322636432987909584816262742070685641959878326490610026146828038811546239801031230438336235865694943120132598056401262872251937868986822161195099170855661888435574829477330824993801969455182409076095104368799235138072267807380493438877209196238716113024217319852113145296966186856269399160416969573975347496307995761989142191129596937545451315634068740814582867287177564140069435900595044902981746736165362691175643484580009724109151172268170604950745307702800357594983080293003397316079608146184815885932330705351773257096871980298932322509245063279480977023590142581904674088330599823266932760031254016051077286569854280389993966119494232097888731732284527790296622550298500961802323990938129167166205611609136710121904747413546021013548940123591225202784682813045243562570115867777045993889554171517984915197507459980035440191709457099886007435649883653465627868476976084889525405857086283058726716903388491454116575827000091086802841262780008695960211232842563094666123324937122191752877298611888707365254346370563196545988897250792574412319236572009168209579863953286746994505872477649843903607272948538421905032378881137409431749053677235569074114526436501987972066907672225537211185681104311221530487699387570773962317749765841778001832117139288733823283112340236220542572120816482587983977322407792599897907225153125144133542182384287654185805985191915064295693372282438588543820641874307298972455846579793911991628914894729310228922941892737559571640692850933290207101354581608166315244569656512304681537115438223100413313933086618806739023114398889481142574219425438149618138063828608529080987070329512440499459279909963330788586610972774314068326565166541810764479612686857307146464840257829026866342152707473956473513416093412040111512947587434430527379199633625009016957660564910228430414951849796418415503258995395058559378567128314724836234568138193918551301154504868997506140017848330082424130670960225197723569409115429485773486925794659222065306794558825035894042375426955891836582597053405645989801109149261310426674429946873324722968172054943437960402259373758363169411934454941563976778759606915289676646714418743328820701529182534401054857060483909600653459145041272341234900778417273993623818013907971492997576730714974900374736801377261258936810351514890407611842063924238595592792486128852306710814186900346251931991650291970142275629855461021864736209620395268803071738706988309531170141833579728693261613683694747420179408783589810553772528698123040045954544229460615358636344215770019951944027657478772419981231875562819431012675978085471279261395766802790563246454573897507578611985180225741150426662190843205624336035294979473055563572476186175165366498664326760981158807160292881853229338000266567369436195270606265964746749554316276868171857366802984697360916759728558572952467733635281404420010628675969899720255176384791985951941568325522803431723863735922711492834368289293277306905098777849401474255461070216891955478966049526177159494337060609401744521177403872914028100467213431205681209991102228729345524924751051168157923070256480478024264039203356640756429839693338629642234923951954039362497929833232143428632467575229280158686033575820074023784018625041563203793255610090568763689620461667990261641505657346816838551018874480887806387044593972432398810960358663141871514585022467656211985141752414292139528558210476342224779732896110463608440568649862906301281276652962061860771738463225560043688010367901630722825673843029960340886902188724922362090159981380449280431307526888207827062279529881968952586013075579599447533729595632624729897909201612888620957496686145308998215537225737040777819705236920647628735616709528844759208901655390781629286461685443608930089298130912358975999213101793384492310734022347745541430791870838622901111037972692038877185084650713604085853513941161711477288790252531692155802880084900908527151040772276746446497882725545616059847411127946144664863675809616732895745904078009059920614032107587874957130818893678551641528940713453199273813963916040806576337865067783602134139611760529222100801691747856084004440179700879832363673637176766761230645997161622686526281300201087393661495101346168465700362428389587723766600039566337863325698759097720448213729474260242808773912960842679254429870708330359525877757152362800280739946386155689262015108364154522292234637341777716505391220899304427672222058409906591277832490789785218130839108297357653241342925169899963120351277273542850220046975638602085300193403627479800266775616697456345976609632863837205852172779100455461420041670562200089806872701827301531639832043290699324343818832893200098004921528574423322945778321894280863165821345343663844215799121148785406493686361164229955261750846071419611102044703483354729571812648773769520554586042870476226904794351929348058691614467196912541810990379563244675822482628401257437750011846913759235584171977926347775756290478546356045307760077283800737018284666405813476492433649428799704418788238956317629134599551136128019284892223169580006486145282159465096139588888809066165396557864206596473760246758885389919477272751321985526213558074242486702156560605075565389604866132797536000698804230906358040845916116096893958673312018000042957769290268918417296273774501694582842953956832355049234731506089141504929124559331017641299593951374983401231063990784015684005540081676966168852652263619533810379693927729068093028637683185660511639700824385770506949521988597006280243618896125676590198571440591883607600899380466448066933145766227206341377373421578096922091467305298542915364323787157501497471376883467399650903450894835923250943555147102411981318736339141692621245756386621547681653895196537240308985476988506751318518631166308334804356894280144353133101658053117021677967958295417837041602062864535506376393696048999276118501341683731978267816939344830202570345993251348894447062856145619237829171586359768994670134980791456901220258933145370861368134410873440128578868240267094819528176255948239358819249827413097536131822461747797334786594912895799579562971342932706320556054177469009275929989812642203308824310824920267565216819221999056108434708795676438787463706690649809639197953323596322260113400253629942767781705066920970385499490518194499549224471646482180954592152331889725259171043743965009181191260603316195031338479848517833365149278297075655498607987316442609521874556558881430689041672690955232934513802597899515253697407118087425720599649088562539896542750537262757177342935430155303364519910172808010385928247173008024659803247301666168352670611250177076127045708545357701463922543572329814815372027534642898680042682421031175934747607064436746033197604861278147233902095813067605469898403224875535808036007974449227155664621519805452364969076727180655765548869226194639138358039748295043272594763558779007539694041692313960624347671211376789761251973296117116132971114608386744237856335953730627923994226857971276055605040152154827144088436911658720765328279166068193114016717004278962974191450613356577502923872620939950494131688072936762135908254648425770141763384679126170680020713170938739614776521415720490159213866353591357609845448780665976121221601344785447881102144487775037343280547743663645671664185294794830309431543672695178197399078136189343705582399869765368551165337346304725149633876632113225656500454470720610385479031885167780945998583031231446893914101832839839962894203712546499402991621275622854589972677476132837932720122055975447392080865068402302847402700341586857839952121777839737728546557841124485504549242571572320915979472093976730392965076531330675980820364467141561127739624910994658279499416688979740788751294205375052526171890233649839469623181457658841276077173929933841733344851179880451332792385490439865394695419595932204715333828111830752008607871660402327219655772396784595897005764019012850870509794970225287070316418966353088847762052791899985342052396164191912709430964695938021006876914693239282423732886329816037389679357744407339012706173963877302746114812904759770937721156990254961298248172229452907921952609591275270746524701114587804741444907483707626262698863161655226158142913073849325145983730639070010119161248385452495951159479140585278962287346261551054530702826685784664161596579873959078388075831295274328003202001510596777599416590358773173965142399594366427971342607886012127275839726975937691441301888278809653410145666049917814757172759583836533405733600648419057163837844805645388195798538054122320559526106618748518749498814404604573467215116663667462163645821092768141486879685861847076429044924106564927357076398885987839210303733533309208107870919878347067278774902584873730734489135320064774659299721696856442199177645665541180614240499187224852008002172160932432837771418630136806845250657999494454147558365676315005790103358416087545914724998215595263596106140743149092019819190526318098034310673485921627955663770786880758085230772519589510017761980386068589613805886296802851958336516928954474672914916045930187313540601295428551437064076926630251315151557691561675201691946526474830501385826085410282041181686311871905256718499728786751338742035841210975162604084990808216746449166430579794126055601192228826703199369417360539535491463461522900619786069059644335280192752568704875192345026197710712543814389770531858502223943334721624888437432291748628067534923815680663161864946475760582691919452708216758492607748877891202770371360109046986522385951643418704780563722113559259604836102335603091584021753025867479632391669850152667922648039958275835257403036291956101346856221266170875608214238516389953357253726900676154271807897186968508804892622867808034297857768804880219927278578245738442787058686062875429115263840586462449957206054471638704618513957826828886507379718564288581703491757409596791160347709380651239871321685083616729894384814582982840593995518105276361619148605157241648035299884739421599204180020812921851519922013667714019006054895960611282622006476808926722561131895888616971504970286514963689180866802060241229465695850734019218182565547024403659698166635076029987003747924295700465871796567032050638051823211702505179845315258105853323386688005496470154230887376322189000766346998975511735583026809372324399635398124387208187247443643315313236026438479619664443995270451729274300215248299299515087217301200353705480729811064552000240633983762259635929070878503598117611252995278640739565588811583742384308739547533596875947551181523817200242120107999238591099990711651797944368447670865968625165521343015641791431033071320526442901446812759394260450613510509597997876945167372265138569394644672183469836254015246393293854145394780256098808434427112726317199777119900796601874541908610132474241680142012874412299814207051723960330245194755173360392391525730237704630573661065715310681579032803801320264673485057468522773945175409371852689499940310250660956768172848581351629512041859214868868817122102082752592251670830926798610534134818283502958485337308166310171001834315812739825426714118886082047050505926632906853544665124204771921906664665478887844101943632155250761650960117395196532021111823496955493247101161647748591120950832607931850493274902796307856020388848514770300584833020309792964691007421012048581085642476580080209053755994146316584169986210930967845756086479322790969457614681423613235141956534687299572808930003471639670387605353846365026294162884607946659287210764893786827273479924297264046117908909035375657124006329967158294231573989081738023816400420614700480598714766807224434566641927489995285560312384683410351487572481069263944372927807260251108655587470265594308518644801727307503687161064579961385904596486457780584593320590119885554774847854157280647260906937189905349033245364543172029090768744795743729703467644208442759930060767878359149028038990513983512936313275290536498631645121625850329673627685704778619416157820062436905058444124020386447193163098293625246730107284675186540718040014625288786858632877219678819922407519421363715142972051143294922651821401136274274076671429943029031737373612004707858068587582096129170558781898963367309948639022241459407890226388850516959730942644881521228043142418920253609218887803968141836650394205760240199261050508410676462829949188034338459029723613778215648552044850088621502269644822850349984453493223439574113781155052932459973373200697176436954886568789818124409713995387774317098439146605520210986325794268031841383133838536398712399115496609846526107251412996642020718453174307558309993170273579997332881378413079376678816756899056479625951258172457049246660046015671981073510488585973647557709081660271977280896235525229075566272338688391556013035052836335239301964133475538518104542403346013376169632258605789437121978694089420048150994968627700461246475927330646782085935292772413922434283819678199222882070656100171112855576331735998025784349726711135085292700109664807736365273728477810936257291108718930188958834043311121689533595812098086175310705953257151674439113683458702248035636379093071082019672937796306098344385665210505507938994756146065469579397011017822211804975581730001606165709486995606179245681322336579177239823594970766213172521392768145008648885833410671105468010978327982020501651165180117309579014478849506594417516873940740424641022968753971628917805926278208544417881320560148413880132861234727998183951322740633402559330236725370994161773572029128381106164143672560103622348519651752728958252230991789125167852336697748761322675832491120804642360333396091539684292424723004263528773710640944409536554842653990587625181502663720945918824311293461016481210653809879791690519870685407248832971407657889908418026636886982697751892734481100050591743409599307714174630593150247744347514398939096248465553407621269482844109965488311976860155251799255447623256458647158560193135461635870087612838247542553477193657531900468958569216226692224719577996263034389332409341846926048454799277384290371519834840036482486766402734588423635596892318550934453803816343199531229345966199420878665116740702124072338915024810936959613103868446122869053450924793241973065302959063674826653668647240792126094911836642123571824381194402447837246406623596421259356894075784898456674481678312132416387287313606239239664256284420036697739279620356168818361221672067518646726054598655708586552189068904758473777342037125686047350707732562459535115304488485324881037037359469699104716144504115373753480746678830591519532666585441074015547141427734388499230130875897898645403225821906320732213713921296501433712633384086411183334247820293234331274380749655649438933467420029709189816539309213167121967122710982156399165180806590003835356825673449891489739254043541892959530914748351058469847168756154262364887600073281915785201041182864939118647758748621703392300171861383651541186564844686254611865553598796680200452490709948272829139462317270196179407955277960569968529020669606407295027083756945823933007602431862246440800183903943809261198258244026502097869355675256885352556850837144944790283550881973662458732800557896662273974794674169047770024400613713624745561055435037044959474424123697035998844954392423849792124664233807837250081169557009821486805289586227550061961998368650739608654702252100719642805227339087181174034671919442379435103783689845420079615807505200875320409688326528311512153047781635553045571598053044658957232670124394908951742590045034007981413612738565613953823740957242507937735351485556441585622899234899348380768474092774264185897100578403809993036513031150111990520558198117228756513438497822168089804650285052116328765209248769329094979416409522688680930957660231811877610605787012769394098223440414079918866306321170462530153929275764133061422991779932043630836622181692645732485004087093006700184374329225314710197543773544151790071671433570807606730355837770014813024281108452810836160572182347976200638746853676097753922999070221522681840988552752802163818876266100786439355870901256019129366334605357865192457636686579902543979525414593580233650350796136827928632191461608166807518528394833283898184197932829348580605724726606878598017323306145792336185938890593515091876163773656031650466517740844161673902933056298892363926177103418936438139376555408524609746379292914453562865036333837431387101231375608269395376886261220919065247663735294656173474802507813707777516685884501187788865771812079051102039423964437145178236462948565083076927676891872833201323665831043823629174103172069272718016544934790017887096045362179715118755762792103281108682697172416555509868804834948105084126491945414148420402614390335856722116601557111689549347811219041831958661474932468689312888691193942029425950477202876026439291831836507853967665698266385238105072680561944181678696257351675817422661351362775851728585070220642360975865027387537955536691291826349395726743829231425099249250554446907541487434974404110376935764434854596917579480605425823992505606173239681153590233708371390858580573608436997457362441971163238717293242166494120108533748389126164661946707301435321407515244256484105789706865992677249337497885887847727049787607047495425860125795542475512878675709308168914914222661671632789047883303749415234872014397075746179613513255819203950169487461777778525715332397799604952283777669421145383393842071475376149428221064808643422367862370399597928613372224035097776264978681638064023405797792932527758436034974392009010585182417377113630635117118680340245725886743117765944576085450703003765353278142429677122491013174259873363905103659994273194530954075135642189720511366113282649373269325853477271601802961650451557696269265932774366184223662037457623492355652720389458643912245861735423773696892846613830658972005170103695166947894684054069415787344281339280758526069572160500896274625596471723610327928070696324911303265999231077201203504912004889369171209593343934161472609387608440534014122643749868001126676365266007568017509703614777760455629987049430240961971247488634436545724649331595553405990045102568081741072708635258090684331769327438680711820090958869879866902831958628446569102848937758717485633076262867013148213246449211185656416337559703607955910385462940089738762661286435582501620165202789383796500438281116133249067767948345944462944393998870507505359864015515567280752588420886146579123729061731606342043977797380503211187514472332367578358607172756263935490187477059412147677466905626870371533791894369390104003168903045377181137283509195524153368389726422518731078710464238437170645750197421153638767586583779692831510887954816692785327990243385425026563198554342860088812028587284010715534126275729928930697528508105722313899658640387768632855188458444624331555289884131079166123644016372629007104798408032263108355378436579703860961474361620847235715766228917250824495001742214027994264848341263370272849584934109294899941654241386088763781532727639332122470908981782636305008854781280171903053616682923472950084798663774363241201362276840758270720777014808019640767911304726514185086428893487842252935803401361477351665953079651808083503299303583959828336153165194887556850343374141141591791194743499769273544301118864246464576647827086475484284596122954588263281585677134422979611932513121021829406395421690633838397300929596766893535626649597905428688373788803078285406912090014583385983932369721846415635726058931457116736927845781359946060617525351492646213443195883657703768230323050743255037825985125975624373027986152610629278772630812742475371962326186381426152841570886620500886950146303317770666994767785638092999530148161085962638366872455677440540168587547140280478602493524748282587312811191018378827167470981375023974427054444504170961683087235116928400499484631218255395287212263034822129840262139040053227836752816236255583916332744029857406041184872814936735221661965015667106638959873233874276990606945191647094190087671335546146803102994854192816684679797827307099125378089774014212447239570908887469034240164608893561142687589079938345699702652831545903160844080894042610962283653255739164382434195601506718196147996025230657606512356778588935199163894565281601764973067780235480736763769405160535774737588188576810148049140517529158169206725094745861367409953432012082922469326017241958000480156372019955073916713266180691024373542392927334892262294373023569811247935991558453833198549565077434316896358960702618335090318685731263559859578280584035845901476532634845715616239230366648321562973025558437255622077897869098860206966571698324697005152937905935098409599907778558357021995928009019930232596106196573026397633843088804215378425272421993569618373461468960551190564242630300556424385218072861505444745513646803331079008116768822516151258489679320290425810827945949533599821209988826298574162709060965899946746527854001480164772692434462181676442996951848598506181350153737669505494844009086379268097132019645960565098612055871674583741784868648005049999832810994365161943141234809090637598166148646507408931288825900180970246408301259863912483730915757125129274217387197470465058141046082173348174328013676043991306271707905288172116208447220433854424793452165019851403302406191309166779149394954587631274202416202322984705705572512409954602889037233578292996357460900506531670794575998309039487209514028184019558185562208125570001386702394136997372881845826080209893089246570528742219877767121136780682000039889261777596353402012980679791713615205075487109344141145118379577729625871731468265651930274672752086692480199085624622585527492020572228647171875528337145122165317550879594565867039549101035913246184771358683079616740162323984074117289245288136924202532640956368565782090335286683490538422649684982341001003251629685278575239717092835789246987776060434981339104128907520039425575994307637246691292857394726849827938341249680262289284641842287796748831318634513191532299983289823121280205882687262926375099731488798861322682056183575186289187987588790863631975805830904307302926371661465831393797624128781804103446085263946052801167402490590089567821407401191517669897869934062844419384278860103677784142389781328548150554180555256648568613326202452305424862246637116499541262021090975308524140721063960941526748608378704935530564725859916451017724388490816040393075990617817055496080246890819022188357591016199941099397166304090126454117987017465419522890520732667361065841374426286125036109420512003199339226772724727353491349658219752957295414250026609874783664503610747866301961830347418947970692194888689146082621484780173121098273356713112103252952416860938403965296253697518795489403315194662129104534091227715244666788600908109751216822796394543619069367719586505270305264482938627537300524850387091241881161066863247597134338559217274575064885132497564565064642279256662292350931667244097171902780915598678981076845312890645847105532196721911727459505156258521171564697334390850751364830813758460053644282840413300066734252656149980858642080622310875872772900689587757871559763170009966634202337162882113015572705856902983903285811014917291172734579859523895798616630058237781918677864900401875694628674396073938691171993224951209164542726703803050813535556660905735033579018209243636962846475416876882911452264218212461726934263778351177191862589264438675481160071138063329160797263366241179273839034252962560874227553643802563786028243592535720558887896202114523018978299004447756533211371987671939853175269644544021841649244113346339364741356439154701835573033506997886777020442672712224647193759862449523190220930774665816921434714719920696752708170781286992540657000385230347586979573068115392940648722411637524502866926903717854988708744680826675270662839392708570042604560382855243857805505244084372577621916622954104321870157516960706463631371206974422306445251817595095497059268650945879550291777868505807905357005912928410549537976985078379764356803362434611595877923662995459190598958126462492468909790605568459669428892759315410147545644010539560464114269169417638377043520946480754299205529508408725816834689472611607213049307096186790389139353841053048555550390042323920389869614663928149911849356365583298245516232952728068324022652855346020793214455836370900876850713738530287188914818924449006048588580267537529642724026514677088897970907751847824411652934375994263567493334637317819046941639548690930287059000364722502001198432427146927394829694588006410316919155296374927282725849298179037175930228314575474444854142220152295014502068887936881896090217163536177963576597098583307584861883404885034174200635262984799360811102258653037939386905475355838105652466163289324498698391949491155750069552017633352139677028600092655766985309330278896863592507234695136965722663673165268698912168423309104803640610231450163605343557186166648241872322801602158025896199886336815832977244129430387925868320095706688520953903527154870127942088072252996045904710735846749233074442801626358723225843543344201777178709492973168261092123875725783724668783272153782479460095834799305365620482626409565346827096597011472852116558945295879704387911076734056621112403292077784760791782144435564982956507034133779784150162721096932381196278878610616443291413087080503066758897101292557600485908720815586045975420120149779696925699788831373872616851606199980966268826043944739983329627447639807933504052430768572445213908899564435451078671031225716594194025536104253024674268754275131861654802702326081782476609049790989655587411536337790665724768263470002265860156727406072217680767977191130103332044109614136476695619093396223917651589633591215045269297507341621505617493660103167506375928231859663775703068508965311971761039184026452884107145940198883039985552274221142130553521666193832235144851401681245780592815410974564377866041580142671998632481103455292744775805500660683680467857147233404852353594419374582831837467930126796370947737486062942362836355144569806278502455054779504207309625784263221732473981919661004116608242135997672299021025920876259297399887720743200521557459966017983281175763763391832197748262874967004731263881828485076684366755346074049546634199098726312480992220052097711664019466284628280158632170758252757700297121749513431563406432037462585558908921373145279052416049545468859748651866452214055858734377838582567284703078190203515781518539913414336372859588888458357892623561078933880198523849870682214307496419178058992602764595927538583642730787743629727964136792273981451324862405109637261544029647764329169305999421702476322153173428288735583142686659638415276122612451625663997003893079467479166774725146437041935771351565128443905979648972467407951925766279539802723388531912857928301231515318860815695980946452330449698782856482970147344238202690012323586362573012653973617169232603766232588341085590543833675269323516690629878240248053494690990477707908592289455347841800172744373450311778784623447885283855882001698142827270726807540573308917421382448529496616093740172694710158987886152235982479799156616721047293782606880625043894437552139498848931674589744985963219674362508020109408914031427885509890185738642224424302988540690249450752959119992342074920949486358083534652218300341163646168817634381035660864809676403324598409587963102616878220829009772510961687456748422177904651142286566383356757729602930040527969009157887856409114970412019617733866466816448158778802305104150176584216162184572357230114112775269808177466325283321275140120124908380930310711183659526918768520464032608474630251678646953996353124228875186174802300824379315527391123624225149811288230816301782301963420638773568193806383332726950214242732896373699497891383050627906718717738685982428211404908082823501268981281803777622215905805970775823704656508912977215807262067277883417081726541647605950880430274551138861878442294398050630754519738752448428436490129022719033497966344167380506634942996291871051998173196522697467835766894670888605202051341778089552850388863147866194280738905784238582712985121494486444386873646837234523374623721480292124666178399510118021106107975510564040269206008198899767629500401853112251792085376914122483084897076846884686316443914891272493674772036386601846962716514069652142217418409666835578001426780817421768955595089443725678970646087996245077120335928072067520912723370470430256129736046368193424829654172437066388357979084916164150530837690294072177446871706909059444663773932584547537179910108385195973219537156334793476647904008232676505751079736879470491146128538568228507545309336228022530133323474763281164273492021879178663568098244278169438556358338546284608270993173148873588904933361513952655957979058153407938422329941836191672178624210046926835797219307984913357661867512172948507535432941751734389711222974386147713299899269611026095336256504576411012140973323572604806723059276473438125036017333576080451890857121394541718450794412966571703360070282834131010399157542481364270705491555995678740526223583868747690123778741133009545678636764880098954602564843730729192978010692645498499822305710127509500609331431461415969871710794274884105753313732061753383306996667111705367119861382220243561944340513125191997532687169106530322525611606991181495946186142335053271000204750461873879072409354958733167349308720334392107847784423551541180624060061336417448848328943278816406268019422275285667410616155209044525569982046582532656329448962216982069125627570559765088067000169033333414565432325005990344240058842182473538572004069103654347908892345633787553665665660936478909416951930408348906383560557927004033448611819785272836509712813867729252790844414714576073154711186443318562119631844391153746518907637170614033489348214452299865355462436514506449627585801182453201962982165688489627914966495879405186019935592015554991927792995875987107986151108892911705663692820437021044693242779230943177415032768475288686443497826820118740581661710591444511853823887007516406610565459448627216409691638855212504415553554747707493334818997240931596379205755215621817839287583970350744893838879530834430335715910413737708346136093562976537181125148538747672623164282277243923844515874126484732602542018283236164112434175491867396088874730198797309014061139827532091126839389663582878673507737153019347781659866858621395057293060356379866828438660729198627674157845858014994926631580903319000308181779472144875271028754157710247111238521335109113690108495541977963336960906239275870065226229604060260934662053973155144022216054983322795744087920033478827637834229823208027226612613920773276584972981821895099240495204484457534455929378169429968588303103225802038045731535699245100847727806048410611556548326075574841328602063738255183323248300534827640676603457524301464538299606391484207842607917469587725936716642117697374021238768373435882005615828334351120564021190945710375829857443361056556572227955578244083612771150803299092573279398976457524100987007870969444756634570569365093536374214413930379841084801790530043576876029919517000020894410401554058934538332271306295741159782956246056224441601411831453491668421489662372291641977558540376304518544932376884224585522537407449810456477744023508615810377382807667111656425061011259094398156393937378268069888783778124040163447179486257570603992648252100839595964947324989878978924580031113230123484469237686132385893024061554572843081092468175155968611373153836187890549196406691753372462913741405465734897785297818297277400559358794623619109996699945694682872923139389839155169872721205818159579137569615155932554017671398422324988337119658452992846412657922862082213510481169546094671136461759251756371543600466778230766827582319187959644998161963571993783751114662306806437385304041427555217926849415630761906929402042148006583066657653717878129736125592839578820038251648338493272288490622071957910571533198010939253654758430858848554120640751408850516296828490578759517388128325191684857292192888311228821521466281615497218276543709224634637407994062218954902481666818237163075327563152009060300520895174116738968338379221955590701148846765275545817855547638526288364378889599532782408201991717776299689960017167406166215852100493213040870589293323379549855291217357951186104282530806865622313148043437626061186953090105113156006724436465294805932357155789832748155590590164939982181280621010411491822618511494436354723010147584691693702360679903558552480232232531599203073013667439179661401814946371164068444823334679726673043881453678914951157780603849949721393872561015692286969869361962490868729667193088146295630912177588894802391893247312393839919911204668489939349582100655176740376430283963683546851252751223390864293710063881649741009722851393036298716089239813701328563860102072430257446354975595456295657280093759917327677218514509944952308088848727322216306091315847844511114935173905522016119022292948251872518923006569370093362539535811465786130942789691988982155207658810855649449853774139504728749577504030582885468283247657803014497555383838444039407654093308437614719012839327592157340472869570413291745630935279047049696568934620117160289600887905378921882345060910257773058229267344277706889660432187719404216537069768046733157215858195365312153751370449029567745645226371999845827437177850937308899861517674408163881167326030201075858715093904240964778917714727527342032384200656177908783814306879890237765719176902648594911972966674035928676751676275731594504439695988053203886143652728944511304170884019706232174293891971106098869577008606603458389004791522886224073127157412021404552256698389852052593743309178818676341087667008302608484856033504260985331010699936856828717000422985739944743887012942843610546913875389820741441305128941198847212590423401076125011779993456549452347868238372497510104302620653605560287786824268176860661492963553945225432000018534287751519613956794693881554640201921406088203804983914737190743333458465509549688353025181736605875960790802197273250942298829859875108584617996930311914636418567030088771368358010075242708435993525548565022004135781601248082462508317897252612055538793548047217270580899860407436164706352889321681113127596560609609808032068444897539327174025808692301326510963114735924270237124371842704752983109263233230323685806963629078326579864259532912898395847135337183674444360970513944422984229135714025880672346513940495270590306506928239366375741412341696985735888921647067469656665315933807385628230527305400795226238689814547466859149268758001065438351254473589090708997934612486832023749602957370481169916801931998925543669457708809564607623742755234614664488863827554554828423947494281012358571959221562103387415591544321360766686914772685663886061447715959818445513835669977632468445841708014340379758894712173439698959278270055737707427424256058947627902342770075453069060606265759327386914165473066556213272610392682369421013949494270739778892464525781355312486485111945585242921257447565525829983063882820528066498645842209119603394180172313983441085908897469377347425828192206803014926477944574383526772301743838235625902200500141774020644739189003743296859570846607166121522603233707114042030138881327147197561544379404070112791731192819566183724590653224659084031070804458596640335404613955353233513736918597397007489638049128354855461432807272914396949900335846288843571323718875272248357217882608562517845381788760961850752764358563144139092779136764896311032047090866088280989600613323253681569067097023313266234936310963072704522671517139858607839973964846959857960602888779021102004545538128248522928194748920313100507077422634712618718782047540837672093358673856700232083418446837611627115831638635039427695714183376763175692195514853378637394079827700458835742932875323923231756802084451073264984414489025139320689076945988305027403377606142279631221724431760792073102257390654820507435568348934620587332519707910776514810268203621544383057734254401725222031673894393963722020153253837816872051403382391011730398899200013084898697910000785384553459982735437090467176272638320554636126994219949937352320895820544601013684355636763194590787533992953584587550684628112802547726469024638923336319073845627458000850847518792589057948321368428036928870807712700004385356286686789712473229427933872238713166855694195248919130998964395488536482704310195465548669642372507667636931308083377007600902803875855723137488374762823576859268260876796160551880184135830950497216230794281363600608544529952270843755100679843323128916736863331045345018791412032713049574360718069833776390856134763468914719121365057133137803092583459017237326438408474676204664218213088798750636202682336814894327868059105434726431791708403554872147973442309604366929792424597802174502275276857315251320580713787178863741139345110768003956545992545717153157909319536419709861438969179922954836120637110771366467263442485139863560805502910959802737374693404154242807729291014239533129367674081144159310883210695111886751872362362396025407862664388359313058978641081477260445925713799756635828966149147709267665284118045326772321530347221749858664277721316105453502223099150563190577597880430661675678221557371078875840413688308727717895243292232019009762815260229593750016956314474038047629646170542384502202040299175675263729665278679016263210721065302641474143562351747776678971982731885023242676306290247238942286419316832018007598442447634705898424142932124856608774914319415958992018445468226691964374344493318311527658256912118333405831047419048771636059293869371872342854846326498904576201322236568689998897211216504819165287339370572667616463691462586370700163248008976520735363108266759265258374534899012280889481112266055475559231459598093058308004526710647470779805849191416693240074532073621776974947175198168409919398482716770177324756224982367606208608431988396508380498533749192259259174560655294365848963333876660183139136223221891879462904979351340952280982700069003575629568889593352800875280295105305038505848369724268951851129323496108088613768040586043104476131543967097327956275282738008593052459035549507471521603536808341035650976181435704844046602848863805782505721343975795230402174224167414453680514530357942245690652773199233379544280265179101974184692476730727574489443673394413597221463442151078925100970061853081125321180867796753787138771311077491734827429310878454282563768628054208397567354878580049284658478855444282138563946803763288317696448585539319483987795970095135489565354319764556853697334332820793147059310111967467467793210580904820411414871502999734582942460097795695217032362747316451932556980022445735741874047192509444881630935486064700193085704101965875301960657454713790265497783800018535983439646884796527623127116899306528619888852776221532860225005654793707683865228543817232078655018073719389620171558492718324213537737620048185626028814475614543541862075843045543208715389196957057029106714278210617748050055957872897161355182159890953443845532756024540316785162974590911194583068946858953374081227810535979957179101739061647084703360556213421605122080256162219517242265773191911654467497355928789498709939716040216215031446810437242784153701355951487279833006324988154352258005884600031502866439000918925303886872325012859986594536340751216844587157128782116782408269092784919696512177014404719040080125671491041330702607402880160122056611618499162709010623471332384505602988646700989575254684537946317713475147449192474837767192412765425891713163128358294179282154101751513222946379061489411533626997832831273450500967786200492089926715634615058279683322153558576254141994729670776979043441906582931357812726843431195720005592034172685333333222697994074527076327539317181567655066515872669535473135717265455362333399269013451399903920510051498374789251580099335557992897270572108539659375503607557237863517961341486026518434721787297036687967045768603322861504331862092174355651107006247441804104897594110609390329747419854045955656766735265102969023113846313508495111641727120526362919019202676836317053987312751826893755140264175338558513851972820534895886644966449454969954232483168831950511106411089888965826144485047030962013793804214723542000158049110677955115743559362644052323897181973458857023437989993409223394536532887108668914237915431116205365493600901427879274783878599417793255723230472117267563086571226172708123325072448980928506786701804467480508372692208242592463304101398604524944308849732539647315668836691694768201728090346295300961813891754390945164222613518458863463417999250934573415143519682851946861260348273469671559196244810686698270504106192836715723331195177375356223647511838527103392799965019648923631154062146484709202777109617402655085117509808483606958217867074231252891762256678827966112305313503283778932192102645865148236781539462210305910433499532514656207486485781087250616394172462534881347548526831916494838181131514423908880781731084285094891893788601771873319161854144410069831952966775366946715526521731928445596700210061855549767684933189997310058214546504870965391683103365670308483463276936596955945195177167988947984406929126513435948047161737332692174722603583311806752305345089777653337772878108874585859824003147874999358269664561561974536066294468306618766029523016511189894942539553427784375747028006241692365024953208003779165248126574195319231529912963504484961944746071608567489174838007864155849829425690691405350922130770922462574874995642617051779893037634131556374799457483559135008813521151300589692387114008867105195917851509214075422899147629294529684781715103561850037268074560405297756810606170900876969065664707020365177672132692872855612405860045636923012122552436861786090097054976249088449862583920950419049998377613633255660374853302055977739454539723721008953044464112515669502303348272801059856909143379102621088448114917570474854866289050526912240692355609245488909604714689732726084300235223473824813703383733948845151803716180676116141845046933992475048774731356982869601989186372181359101152733190104044428772380778311862536012216419684719785276829109389576860393278064842442077709097316050739213501093027135469862817285498684627941394687504543893583246565276745571342617683985513827338406882425607592505604380402534175153094564859560870783361272665964523320870240799973345208365158186393328348894977051246080997350692066579381330979315729528019301171103965926611982414658476276128742734999973647272813164303250290357092572871395189340210922414372586480297740378407551860939133790221695605571063603116778578196090361134946765009734793584955879940034722172491875898025002594357765815011554521043933159493216815104364170270049193352794305537751268120593528433242050241307936637147382212129056166610647497425333365183061543790473739278886317646881523270737591277319373669594353862587782645765420652543078291596834680692744239361529045517863503618652469659536580061784192240977010889739275378353182574922395388899794990205673274922754338097590250980797251018005488704584416313259217126188617739894378274689214236980152559032197289795180295599954940767623562946845226225459518709334132473314663960373322783295761444923011624323643507731842787158388932142875543905370107650741806397582217830073881781686388469344702762082352245753246933927707686633718951967471724523630530053359406912871092174059683554401763395002446931816017716464902643745884911867449073818086316823053010576374541889583883359475799899257625937882071642122809399642853515537700412971958638653369537468131447744628830265455418315872102545762178668898367952343480772318503965814041030134796928943948421751315401492093798532767052375134149493930223370336295493672706923763112129821910561201128915067485643361902218458432133991926906656868800708696610893830394072186792264990909133778050143666956970394296702026399903197186888872919522806605886723922938186379166346976915245054080995624479761825240118760514461558295696272073360101234222421932700752297227628461743015248186123573416383581659216832722782607065081386727715621190162715218847141907743665769826264802981660259789384385580422929360850214766107121505108925539146236146013630524939986575178257596587206807151574245576933117089997051487530931966310849724219597848960833451604429623330635149175940518129552359139309674637098546888439036537056786325811250564531384171343356853197056080886851851709882546204757996373741147860082627294737205500988993339612761588740472061755814666660289551467776334331184194509081512444675636782088297589052465172614125960098076377586696612810533461479775703630614645794173455378938115888018218339743849968492400894261577666695379560535741130281508699099092272022002593325558072863860223518986157142982190260211008359656598988804089598844643810888802069110944606472362493725619190880126202703482426052913537300372654563598267695648689365838231686138137037689109167426264212727390186850998124633013145220710361116802543703845683017003360595217055640237437450421947327574874246266867798807489647250380932798539474130763575692038552689425217560016493058324366268768516966298222080827878262872030672363482859900285723296204452879632464069879075714197719178104693267889976711390917807262749341854848747932074629577265744278394152150965544625574902018132258789171514295924228223739378495671985837182561230920353146399997137666788295689331681386771444687905124658776554793056498004202202384233003459974093247924996480226299567572494550952877780311210570412217272471303725504942654662908476673203565794640783775369006789253817680057024321134376430521737907742209008851823512110372627609202100963738962102644814478695300016025453820039774579623577287595895926845728279292526792146540287006067246908508148446884379419156011787645019869880316926417111167098018691686345637457016373802006402875100231852679259396321351107492934257887107125111774225010801869245134390166579352436095869622163811351109034201795432778046561416148436432080325297644432774655609950002556539293890384260099257114402932383193405126549854323166355951576421540718961866219909807497043676933241133067314998721385917524961333507466777530420055563415025907066352511465640114248703103004447902012803919216298951913235203410006395721959861647378853112082266511799049706881165645834593906395535239093371430414139041564973308298538424382452092703848976963405354615516481038680907521117494859714360525549504960587711956203881901102248442746319998061554649951910192871667144036796919781522829412990443540036170477141503896868877680114858763144379407070510312784641297215639322160660447347784432376469071863690259789071081647477377467578787547640872804459403488839867482885569531146181053274680143463600830977568159292247180491396939663893593698671668199277911401214624375213700710593251499545378019385208138536023913290233057615398800469751839120120218698339723391107591912113122632413040213197170145682488758848142043290087996830436005724347431517981283199403890702439170100638466493506500965908523373546471546090128611141749302825939993268161142251357606552335699743021709699082413801730046639045530100724092886970292371247510296150494542098264640406823637847968349354865322750773532779483155888184804708016971231807616253335453211316411553822516621599530627391756097523094587302566700889087589712333383695921196188146171559136465985654281512310476236350602490364970408429685989782200046564364358989249405950049252371079722693927241546733411072132135784999260955786066089167895824327056949622339483849210840972922387430220789592890102891112754277487246499360139693896545037635583415903560841438599039516661888462881471871563036113608310323315812668690443974620973590332672933975245401455705846912827090524992955064188224115163895025753505890320876225728956821408108575438492569493840996777873091887480837221291405744452904408818953306046199953061939759559189007085649956372998653817040544382015794301269760042786088680076922815479403134417939098470527588482482234634748976987745654970797872867650024623961869743520084918931101290646549402971937233436994524417940517730615621735045421743359434659518097442121404490172972865862026329573396394102458217605898860103642505482356266913622559818565799183589350790059645223277610702839181816883878684856873795715048906849487093202628100979465262381136248618061677648627059022436870658848111015038718397869015188996940583477400200612782884505102017514414349835777497827804655148106285073169221383795032418481018592066495424475211801410420349705604617799299263033702919607489736384160433230671177976595739662742336073856507967616726711360429235022013489948541265416288163358055375511286722274996074813059996578126187912881079717518623811379623536583273899669714942955159657301406029396459579961634550681666782744126420888436907978672671278257627338596531685183476539324552941071771134182779929275881035172893627772439357113753977824372615485734302014318684749996510660195964155332529365800852193786976913188303787912084064695483283668087938307352260163725400811598056183373357605063477104433493275048561899317225299817167405008903513045258592996062064409154428822053175267371187255440656223277169945435419157865471917485532332225152967552453717389603133360120553541612941605822699696023757141439376450194686529818611492839798390015574507615165164006449747043766194831859278745597294483262837829121653328525226769804680806529630087381828318958782687485278604147419498140814463123091587452382752537195984061727975033643806003396772482220811093470809556032080693117680186425418036231387437149960196279901116001424631421151301870538834075747016086636756648993818519753660117093662468115752995075282663214040730221030844391490642521285155987253737471595680395888254416425484809370387931815802158307316256376138970023722853449438190257653772523692225796798296347158618262451625677869476521240746482593727959344764947444393592311792471390492731004078565240090612861786250149987556234640866977537623331171862296610776118044179294298654063911280227762703677671976790405803053276498306508597239004368114861824407161023385294565116507172693630791135965268818012064872204807978989038569425650998271109871240438104036399696904048114647864370853764611868782734231975303635870166346527836401078584533472936917883880568195883646796205580840342672688040974577008374323422115099274057705830375100056809888536937804923593190886988710336993163378774507958605725255117610117421787128316041686466981054647367894533766618881953444537032787294511342503376468445170766989189903041190806698002998862181926423459235227105522669623539131881955563714448274415809790462147886334307948499643578485709712115219153115440691936863585402374123346630032124689727782363700908935840780956828334558292715626577816315396204841196359701958516355273002797013662868332242597365734999195896764307714911881248212623132156079738242159663758512098412755569450585489937276589574685037364317788209120823786323280832099890316581985466596586445260046556523930367890201740270103269188875698459045031873405794336655345655861970604769067593464435193691022206574732729578866766843073535516963786200899955538824037249389139299076777443046902187981660009545045108247969842684939400227643865089957523011820620899541341762162910914410362917011381446066114450987150739723438624079687440630267976073346381930997765976481855271279103618821682043862006756877349905983342046458389635195892027282208382852858426269141246154334879660423722248896482974497145931738724189513858835549503672859458478961206824463631348554323458774174968977720994687595288985148961512673663389424187145412805669208243946489817763134180563478355700728611768384563838634368804802508025312233319234636467368389335674750979667554389618275580630171253432358667294866790889126183910931877617860247666227424778501317747934486561539219951901815871008818421314637474558234759591134521776631828407593076302060624316041757540824902459943138361542231334970970179830987062690732857271163454123496649949409300627991412825855854597524202620136238387514620385899343427643053428917788366365670766327919283452726209453113442709669552321008720990928672029001760883623444193399475891437071973001078019349126371159849641257272734351627007582100103475619992025935703347817707326502762081820111510882492906622745405787926119892534519426513321476306969966890039281514527089689355105612820736677153437208398058324724374249173899091449569088491886596629631582720631473068461665181542040211034736633492097203405124150444220866460035450975216077532732336802077026224932127121031386373053838380373485387970891490880738103763235369236093037173720565361361229587552703836687488956944918059599248222802144292985864726317112261717652305007696527360143335267819361356519500558555593676632048232574567878941039663273544564140315210809505365489396511912941239179088364285459081102177464452929510091480439095102399374743545346532548122952613131410443372574913604980207157301217893816629324635434332547218418126681557324489663318979006617783202951145319549328734602783523164833543660394619146322429851230565941036403426996004584501719972074103558584205988578725137558232847964651388396222502578570995102853670519603826137797079374329672273131591774938354364463487546560688598601392856932185652532726334017013612121411383604702729345337821138517118325346528853023729280466064021035778527142319227277753144141579337736620572714681071404843533870526290706390080785135290604424382283761211548623266162724414874480944688464936251161559980884059434889234983532820160359318201149842599603512281416676319463658762983464306832851591129314104616435083385104904884195571248514118976125902673794223813583554588510749787967581239748998971785434956431859723963318669080630423076299530441999195387139542315546645590164660075750919157946305643540706879031003726417413770873821252330336702128207858567048664656237329292562465372873128872198749267855122986029548190974310741498179734998353123880663141815261068432406055128166330242453721191362688162578436289497148812787587545229123864105112184879611688054530399514383451699654536148545073588266401203262095068984254715249056969005485565103550114309110653083930775750673249006923398723692140756303217323150897814500951760954242178698024757381002472043853092290473063461328258640672273776988308977079190897648313475092909658359512717947047828875778795919941181688126650103356898379315879936497360330560806280940026130884844791524045333099415875472699387404642704906233313319100500885053759954906458441824779270647400272449701656119649418395067721733172238815815008070137069478788603825429531853365743127710832555561364607088589837051902895066117779713015752039603258872575550400303769736648970240495512948304746276660494256372568813964502136803579916287686131530131930215194015144445462393788720301597285340350417805141000887343614442411701432634544557018083811962497637136058723137169974006625023283487573378138742261921194117968924530194969210284483032969551235493446812437985260216646325967063015449326761857189369849550195761973547814045835024763630147110927181531809454699183453856484611916524991996617369987195329257231414674041324479223044902223712929090372295946281565207506160265827762153891176214026696903298187545399187200051320952292680522227354340101023309402866381464845652132665883086729845773755874577025897025051302271323887330123816014547444300154992570913087310142443710516237191663926962219251907156630286678408933613337187872662895966171511327869047949617330444657590084284561192249948447196972053936904710475924730130528206701571052852722919863586226172455024551528483684593358541760293460138071238052087166480941772219497066154286368111348314195245957913525718106073395160443630265982812663730780495758422008480144626594697551481435347599209655411495859196753996371194731513666766371900124672024697118383437948391958633012553448692929033385813228193081808515758970678868010914832608858849741223827492988461122776956596606549332989547556535358245461735476637141847104510892618858544766265588490733851414822205341938034209679073141395941211842038942481533909129624897089087276884158679357466843224520347565011089770144894881751465323865845777444239014890378655333441155426961981880929814993106245160383133640506645318905415618453760284059565744632580530254979248573431694581887472281304348435857061492161374466578263270688430253165704602603531696216689378405247608439406734698937803856060014356776766245707585783384480132545108115568205053872523697004572873722109597825449492043634726629599730613526622604476441634832005554677724159875808413980858073238317844530035751564859499679543368782054660860689798089752442964047165253775608962525889991643113205953057879897216958234926977337513741199316559252131856685480665258245861975252346317984888541776609798923056629568631745960098043538385222256855285167376268965364883838226432362121778415728806639531024898786115086710895333545059383796355602552667159225657851850348816915002747994821850263733120395988000901940867762030589354174036859418825418928405523894548561641777485176606219201901639756060714525188403679953933757730724931554520350596232481267941371168152716565850261626676094951631633039060967309313983472386646517519852462416321905839887418008005900620363297093482543979571193481300199697615812343636168625817430994198428337941225794358691515474651083334444637346640703583551145619271394806477863952571498432331452990846663018030910817169748069881312401394360516407297365017939038532013325445478274017236852044058274778734251835334397540873049324479211017039032731487786827080744207845705735444423670117222987207567112127908620295846269255351658764187658811292466416279252439334588386626078403613469737836399324464592332321317570621207162659584189928817603814900137466397367730894251798046533078773902756395718278615380017721285338210667810377748166069000441214632125859323618177155518601763645910181448391340900882841858114351402631606791356966938311998506996991536665186209437729761600693807250063213553390709486562036621112160852645376346751565287398181216222848260062962232625433888178934819667319104539201737042929174670689530023595025553287673396337464758554718937587635790570076125819638044876107405787593203602315517017596875920825769553981578227967601850581321979086964625888402492779489432808565376217647298826860173148221298163017606733977385722836879536966982398104627878085949562682550438248730534083549190909746279564188920778617428151399403958847924391920381670553031522567506994988176699273179311194221075968845839112901819025321423266689250064104684767996149171570680834077131920402965455058370828645133636961541709439249678432399802559348306673167600724279597128979536545680500715504429707945870724437128222412740047569805270664373206239756479560441764520632442645165557120459314638478814126990975677537774248543562957952474320625771106340686370101959064246714032153111105062519274758370550533140544690419886299520467852245614009233621193521316372632322573419274943296633450217742008914160636444052539882171186915760042599406166710372607637811440705780228432406935044616151442582207604380832984904498779048501258097221637622838144034239250824462314068397443329548404981205645219217856617529267609721949402053505831869851794906907643827502325568153106507930210749991930332513585349495550452442024764424183849612756578825007186550590047956546667432036952558419155989831975249452714899222608701790363643228266502538990796773162187330494361312766011477544813486973982485156588150521099884422401935415878079440268975615128864682411415602804840593002694203545334045778224919936799854239817158002497309889436466355658017809001419716871137537952648666116043795100279635236695733618749089325808674181407371515687824004116209937133317627830440495172461680894743568545138919266726951541115686289627396791639503922035936429654895900236796832652279721482413896581761495076488321890648921541864771224499983120775954773640837636759137569330542035527683941705541535253000802824925329089078093710691095355083914133766291596791783512227902085430388807397435128526025969638979494514528721985192883616877610541041102741211566814283953860632332568877637197213648837852775520031508096725083322716965045266672195442910088781336859266143746349547876429501373722829666919429262188906745613538777107643338914216166521399800197672096141311938111796864652148522536554711003260004168267933038287687843208988926613702436505441421581296525838617543229898139205867736770878667951419770277501229767356009909863509680802065493948512572385096907070345970236739753834937745529396137077943143418617836584306837137936735951508447923905857058514787114075585770895461162676508278386437652580343596718171998295837876179739979425858979717890664666672231515313288363904611627971359959838764099726675329612353429512511577568356043732372686917174730515286151768896633643156940264393996477434159519890883893675316208140564313646001102829399106934595050570196945203912362640184542820619292817487480481699783479637812554807586043831511812940550043039000417320202722577952115318034385511686379409785060040087339086944252888017120503467651441835318407739918451527708018243928129450626418809324294641026784735950558717492436391948157926857388715333808388002419468188826665503256174158290444016329024087296747487640617900522152154918183886944641886245579266179718428078583864740644572727890820899084745782319415068153915488578821017623771549131259494756358306406509380602607687833483117818363016754354879705378783547395734465118729547219928929690095562963315674456471676422583696764083793486206508293908884105178519312265946076865148723971118744084510093314274251436206949252380392227394556885010381581077334712114868671890688337093285181388218682922907521248178512787969959486388706858065194233986452608057608212574731918233978556323858003736412511414387171048377419703065318565220479582916455385775382082407045717560468715620672766104118855665871652941567982369938402935518938712940122148278511471317618799672694906515905217250620537663064533912045886500653151391245312879779929675999631384382521431403201721746526153150067636523158071836165436962911380647587266355614078328011327609558817122088556866590773543994075207723571207295784064525378702250249867330782308926654683183767872824526303631579694195340510960708203512262615699366957205480471576078016836980273970318315447178423867045131789233571786917438885765652494867818926308195391367098954270680215979645008233335158643902606299383957730899062536590453733410106422403933475413773868100897576431792522474274827515920342345588681476540046623497180032430375547015384317027721516612970195215170654019906340051865928220865291530648359647994895816161286265869033519546401566490957570970731321370345932432586952359521269666369651125106819449357238637010515515554344870725002026574221760566919616983490658879002580099512790224991625016452257654849894729719770348999344833444718572000873739405674449153378068709966057071837782601402199230662088947563261679050173104568271084667686439272574626311314261024619218629966436866293610240409561738495247207030251681123948670732990013336644888857255966082206206502550785822384234055729391616403677803711665253930825885165203149753772389109825983334883181299787337921355915449891423967256666883407429240419191155692806799179913698952689295007740142150677608404875197983194624661991099858740662030855547329416664357619840447020365133870668514855809507209271347070570734297879717417256131776724832574562610848608767702950629945169318329018541978175955661876288034148277928452835880494266016093631274580916166554418772956528834815110307465764241821893182996055156472233883155521508374045751141437637110410265297875321289763653174172132021052270385903810209813724975006016685969436556923672344683586638279876316582814354162476246464088280064982485841455542891489082942097268842763732881347546852766431277878430020010023181348316193456924921976100949364810232288706805268227112969448288247002673018522286413014001795221153114045577143144932289725536030323212161774794581268859849907179609573634480197761794542147710573640652351082734161761074054811123786806250028887428552830146120491097441943556379876916556323215252733658928816235018522184239193309370418594014523259987796714923155708209946909369031486448247940403333908204028869821557453976285926417291396257716223888759437704708374275481381058486707438041234255833913165224512558972092184594278944133149065749692914869611871227753621159639234394434597023975688880130746638874357762648667261664801563622621259313311830395484943401389821199423911383420246396787905286730505240967144606876631684774322739556594418368113590547433030384421932662004163043531994780449771482875349081401340167126421677631711748779246548911544409264464419218585727591836307284299905280537473127378276953662077501830446925925317674518403568066575902117452268520085940406585703655735444193403619421973306404756747835309277743730235585289311903203115227457034478498828633799597319498828740589782104736300217037814858891196047104953212975284716722443016505707637574901772120700799970425313725066980743731019281027051686724383862783678827700184345450305575140086854998633617005290663779778976878890574312427787593101911143700097042387235742325533074867111303130135177121162508522094540050128689481615709896045611094543308242882487282562881794836493271988058437321629750785652513950412026420870654071505633508498525542529720941151354423974352153704072548703164287482341534955891266489143487671861330548889697342939896804602127556942472530112577788953132733991987074323379543062274745563665126508336176778504843238263901355469246538416675877225282912255645419103620695245719250186455505929083791032779950675761086090360999911163035783128654592833874094748065166263769167118230226851021858521038489923604789431599922097382611849321545858663784642189916053731776102148779387457166159135141010903726237449337359181103264406612568868112118588685588875454806324387309704302658570805316833813415542369961771406639064602588976988989352178643887710844550600891278609735041166714830598647541987015388956588260295469944112888424664117571991724803934887382097651129660154709332078281941598144048243091430331060232743724699777063617181965492808497329255110567762106308538256843378785192424205526470148317404249242046758506362671635110680563479362404569973117411524960196534378465118792351019463205744331411549758409965689249782421845339087025615119392910849584548104868428580622687377668168665073224986900473828700252320656161189873636929584697256981545243838500848248477745937800758842355895073705034989207483479919403829630773682366046607010911520916825257141813722840173318380459279468869888340557695234248274575127306866921927654435812311796311720170404095986020784360755908686809523551464958571405936374290802054272153710669573208668627675554562760893794761184552711954464572558041643298038767984829652658228879000464318654925752381570533185239955601219317805388973296272219793522903900306463895325772688229527020177181263967584129511880456392766251454382939708879164725745839402144424789392202775346247556282372678385919598401872741898704865796991762458978855122062505597802098141677875153125136239255905805714155545645593295282769227360218663408117632441754028600881213573441872186385743727642082852279519859236255047054888669657527022133395950110999503129244565415333531527555019731185699130252760506423480171143892042559900779405700332453348442325613049047816965234554920126093499176090760993210958390737585318560022012959015779252005879349295998846265445774281940368493042331481603613068114643613374557908649007162367738174151015474310745839314237054479828243921782453927936071588147594118213452469745709329818769033089999767390090197838481521725713599214004431909820017658139735047326338726657214731517285532462826400717825955246245737852636213055791030898426672484046965502465437843156208117135588173004572159933413884999515842912718829768934234259186694615361095385503118102047511082792816294031160631615943475748224338298348974825772822077903876428074888200099415896421454139178168994768451488042717350613615586238362189207739559301145677783918374456930632540551100444400208703815344898981690974675879498839066454949584783004295479663007782101616390076107578262877259938343893357823012229849377777579454118110731130041913633822106682240274778901110731859136337579257492654875145630503180524743100209382650353128400604744996933398383979789337679367050163131990448798779053788712046021133845620917176243461880140835647778653300410591143963883025133847691189027288935739842872624552558395488094970366913383588010231113390972372464317207447113462669811835450597872106470735297117581131492714536567786333648757678796674933064495488631528853123760838709878153209781062361150843113335734374894810478741572297975514482215661647193648090686363550111080102264471880011101314115863485094434912507389949856895493775483409733427084176494519399515940147726104573220929975190924028414375487899225964490953827671919212395744780992809817061559095652741465773812527782165117960449572845636459349773722813955107157390526915651543963127427331528057674252082073846611273277400640088596427534426888645448607702361584319903800918764227862670196362592487759766018132402974959830602931423388005869804234349071664254514759112685916018536008123733559116873145124917298781211031013563106716773303492645848543589663481465104358151153191462934469384581304032761213227768710771112188700408848480353197901895274773255031859030619128259166183712600258559052060546060462117225321129640916101109433685767225115061339655812931034340852225020436604907829945659613197102011081369537994293700009307323370324160422477070982619580444701201602656253368169852392471778243585633248917835749039868685887529500027878740768327225030283719503594737246181279534688119541841503790456833803154795991189340637833127829086225632666726863864982631146006338873500253519897785362831661181812011127462722162268066094049707147145105880296940784949644857840093797066505566204707706532598545802440682147727037164657750120299011403040524968590282229779167438876990015104037385093882950052875994478036161853225311534721825499726579231815623731611493826532740193534804395193187077529504339915963086866898343497079038983879248086526329384502396218565663029212699355589721361078083517305853609377343666829720703585575990523957032537133912961954995745612793769544266573449569740551477347341911099893120338792181389304941361988284343606638652133006718479940918054266976775139794628305058716674372594532004511480728035411887928339091520184393346608978260385807668076230988250706784908072149026491520095340545779897838072145614450909566654876354031233572238012867419275588194935648284074044788640271233665714152427187950252148220632375362087684505354809367614772639541562873304287920575507159033387501468093058706269713486467831593971195706060689494982488635967781721724686040691841476598206349018581142877840477890912473324248681504758931181628909814964863711013189176313792390628714315639092628106016953408110477179873356030834117247662288276273957885622732960441818282020204966206588528468386113458372739286573678253674206894173785575629237911038394750158601408504291831438754342795500813092055759279151333031848136534634778305454455398283038047861750410887456597387768130353871536453021069001800603970471445042323220249793742748673447982337718123537194683222222512018770409444695175075902215478472523936766866857199334465097418001211313589000901196563256518009014772674491790359960303812195457637161115329301078139571786274627818298873258104351161796385354745691855278749036833795734569660509747039884508510257878215543099977204610447210057686564154388518581429632799835918409706428649196773779280978624897202302154229638681510971385419458150737755197551674612313025890769622155211448614777854276410486073789661839915278270100552015670043303906613460195616019403992666702935529193388241602554198139602010832562082630343279962490871632635596685079718440544383917181189019727404260903835996991152351402197080171749060593264507164751121262001547944593886156003611686553120226217204368447388967606561146695341139412195647068795937021841280174591451904814944041554389706836113908946720268721768211801835573238431535602557338253948873119813015094802277212685431151814358575557248234454209753455289681523337487731067659795977012727419827811069103591781614060491312561500585704650366110406891329845095348680360742876170173363379568866171934654974584898070148255732912044495275369254113261208399038964816862684868441469436327888805510517009070235197990409922912475608036766075107612466114727563611349000355563771830818673639619448408131521142502294820233960678958597807435103852686769177266519609744877752470507189082907135469769837354378096233278325947905283566728439434743483779510802611644695667445547789856787166039391274833180704088978886865324203550885002429297941227188764163120370997312090071601984071109021866590357289476709035236799508612455788667370958891535090902630396931381165487410897410869935705396744957801238661821001499609266253935864787253295120000162266129012107686664738666234532838408766847760870199245892494304491934940229739043120966923678183629526742693946047949819083336385879073327509078356640505260782429295307512292309685357779767825308396351669859495670171224395344779642320542005690601787105949298883827778830041512728698070115639555117151982048567661879759820350559710277393993863307369463299446478950768864861027173722316944099303541557399853209258088376116129318129787493272258037647748151589870382819158731406748404503600540430945075991983948787166946808573551815887499653545778508493647645125169694512251336007753004841450468185469012868581969525535168773149018425386360750159736792389134458336060473738312033164800548140316752044621559554664374179339901130665781971472406543023280981811762021722009229451581354837964763694903806974370039774912980841132514249262044370791150955555389245610931216847413052159267568211325619369557164724185202050018417658921389746310320864296551368529791400339624047271757659571323858240554516459873433606605227853765219501358520949596098866303970512212530468508960760975025034673831138057186063984327173848027036490557964619419309503681705500684687272407925715875502991740338991393755809247853927296009983472950245132176314176748083347123516184432845331177259512625378609334340160522992566752961947204463272998189192012732012615807170160564464253054548755508911218672399757895003541657016233577162027403495407470707231764214999057222031425863427259837868107371306128267941943208289439144239429466293593280376319274289658115691874672553088534343280984779654037019161975817749955940997039908897172032811449491726670348096474696434609338725725392887691876748332445308231818042818726074226898487375692585950378322678193040129790031148449015906965947042399180997367517604406909522178118762430980912707339599108824480392344485389657819057184688782572568668786919963188005979244417785907609847586583836444182342461529768111868124401643415765069970798161703218569228961765077155917733279697307954412602437332063566566400391752533133214460434606802494825086772497689178195682654690440205843532248499895458307478455987711728265993711029561232780513442201897219885771690998488756790382402749800082715480459718197447315240987117958029945196011663802856972069629244657443132965436292695608525972158545189970148180530556998134837405959128206943929046259473553211448767061476459673408066425929379358300337393325369869917936274511479247408968760069115453257003665244977413465253877271472807542387150910582634995897618520587820716684805940000029116361883180351973428138311545128861308904590324009902973320576988418536278465128650719082476350010117571977051426281263301711448013326356720157006798048744961099729245380406744995446341038023462486572642405436636396173865857257368829674652840230860350789030444947481859560519718095553053768961363410533875153375989194280199917246722581890329245782727117856040033120405223881542680912065016582438315626188247816592754371411040165122316468284755800210031828120842595339598814585326986495144590930392501353796605216485423405275826882841840994255999459843416625918989816676462958087483922825637629124902910788257076527573857746429074393028715804293194274415947786102100135329056439855834276912104426766527600334262872807996178295713059601513605957360311361418299949397498072610545022701250314356418992235037738238386990336414727130022937624806496542848343776364081015258088247671742542621276610064819338028357611607052862150721606539207097093639345279790093918868605296553166394645097609842284875560801090532271944886883058787949046848856206203393844467212350986544515822298685245459386546548198913621726391654145380805415430389572526233879473642716326093105155761249703529953097615908438950356736270511974588069115775027945496794141337511718120015598109421871682380508625118826456523234745593357481943143463060466962362291033598678169409306730560346671190918918873971793217166317277601899583906495831783460522759138644644815466296956947418619287896323161241124516695474450503135004493424460676455021167993738778535463976872331610625015997137607177812741777300855868659986165061553983921976871557780333186702435751147660025953091351678627429805265457242253298527153282421786123994942226850800372703621580935058831686786860745083090651972771116535177920775243522697651891176430164435910497259803931800263003603879989332767975028407824529071640453502376464450780845815518385682863879429824893576747483896570198411587014101816752490901487046885427462611656832201231541710397548924538233051284534785713387767689601527894116191466575578391442859452627258183028068103184483603190438926058624236977235491465428181343299593346139386596128348156717158767115859530374959214401038765066493192088208848117057483760607105010832979220204280550879262031080839582676825463195106026978634964160795296743852166374681283442926518713037598902129640129361274080339223202292904415867187891115290284554072035038065901125772270495973417550214408845814212140373399139218737580282519644840858771971515969265100605455317110037431627340238991542607921389704602057997334073486064873723098377053493556115408299816207006507806528442344620379706715271114901433079387033875499387793570520306479946173441835513661942765782686695059720222683246962644588642076394452781694295807014658164449240680502315000970805164415176537940508905111136758820137356680834935299563524068397448240673779531205172862053491017040087567201837198121656636001415508924695104054678944104375732156062467101651489614077612599502617692822739122312505927511484402397906001790785084311564918497556968347881713823257959292768475220891092350633192588839310515028297539313494162522676556177752729061562902873754607568507186318868037342456719395156227465773347515356706060917059200789283257833934584266400204253201772815077515220316373049267960821010025869711826160290105357369502557950250322506626128809941036867499498844696740811173693132556372869824670966781935582577843738330651268006988084251269760130854217362104141609233861633526031314983841090186084960290733187444105600139744605234235407283706637074795068135004900793891273089662340984045365372943560866444981212626158297396912791786072742253542519628329581773205244693993962254191414989910896014587125213267997305551478688726199856406598304273052271464731498948700694889791635038501944139253342944228894589495624175833158873161647233866793558804016343644844951268715450204857653816955650751602918613366086231315596693452390033121798490080615467276062225949146449887010411729697677307185787343225184576257993317882484975888852987825836970674096229113325449397876166520510991652550115048198107027759954027996103002420864647675288471515054841344677903281535730190007895725388402813474496202277338920029784439903026072552010345456132467785268975332915529064631087028706373813607188182220850591297962295951577977334323608040430478707196662454440865229628999507699801723815956588290620670627257117042781964607814563585503173823004670634987740635663147255257786366182739532822210324967758327636153759911171110871899819839594768674330168857711329372341385647567547893692289111349530545140845645783080097681352813334792813625125178312492149866120791472589033917149263168033904429736771676062893139827278465417278619782284370252211044808182941491416845974709715038400517120384831074350850029432628272380442630771338969820230188616482225255507073303647548462060698506490137948416102133285772405010005547559468290334283551835538320818956376486220194416648355326136082278480200743408469974921376774209777817333382471413786135178792362081292671348489958940433481082130676880979223996497349017716332462976082457242997189292887095940895836907054275587468700900896541974014094339655608072913370165972355201989528435549445638181642344032397610534253343246125839841995834734352739902285138261435924212649071530747167406762242680517545593140673535963011880548764364609583188077382779296251066775310246878657642142594627539741749590608884173389132823555443043128741032777312497437362626721121310260772541091605450579487969568416498228752456487603541807807401166611789700434900325075839743843270408428028409127216371177200555674118785520539807565019014938834219132497175385607825205636703999057405831990539885705778008411389979288199728361143334987055463056928546645504017218828600083523994335296266630479723050628204334403004305236456040988983246648153256828029048034738439944155352362014062137357163848635239806406501509617213434383364277476370835359637707724887426197997482727635039310860868189265378244751433091763314371611461672871208034496206666119447210882587689412293920240441837137628228662347298993145553023522472600630853729111730873667491678293606584095350623649899556201685525739137127048789438512644004477261000187120432924362566895978486159224364383548073065243269306338185208697434796442545448451848693050048378391581927551200133539225526441381480561218643647180290954721831900539606184844662440655246443606140735355535943402258887362864823844802643888137286700681104065851576802807919504281517352524937890580115053988276920537742599671538901827545040326863365959815256459689402322517736518859152360934693244441420458971278066182190678754352501286327496773798933956574071128621145770307355699920785941004946150485950797660767922484007607134152063770441616473684075346032652220815079462186814341168837917835220300651617251723939924529621825769659166753908368497961091329422764848639859017330650673530164112317361725679636365914544800517260221853330473747006244899853521403498493183379648132918907255368688098478647355464829512338107842248156816984798576675943316854628238958885596217680558019355914889075760597899584687769811755915831094269508602840524263102948389622068803049122820173725967560690840589011796227825038754522254103558016258370188143423933759868691280554798644262361184578187714047476298207111812266358666978329373285732192541841619567134206474672884369507081729299070426110861839696945508754895872522754031604005058967199624404618802018073021534519587344352909626210354722769691546591832225219327673901985866549904681966479951635833459817685332619287435970119033555672599407174056896294889493248028777437596913467100215623263569124205499536749636577354201383041436312274970448776866613229471649811496023288182121869208553255182810031394477171945311195483413131428091852197924663846649078352524711079564630382745588291614155745359905158085724545615643106013771532687412823990628416278695850803682723978573495518497253365818746773122063141316383245667848720874997492200764969192456185581465379875416707441599657240255685235696594308876566437648668791339871105340777219288213937118705693122993032116525701877786910541823283455387334110810477306607593055211895713547097863428705943954582228377454717859294154661310030112029862347469426732678809837223105121621520566945730232228068025468290710280458194464455647566268267691634010144870870396352465109008345398390159575805872524034246651464074279613683903588655576926970746958539004857052099133360318942327379183108570343761085524712862102279142296304226105693215213813412001019169300144010183086758550212105608648382322843200205486470265111543434592133135577447295251461397557934730888177769192442269535207676625856800429032645553264853896490445652064079769583629303215733188398375000027413975195975633031108483499899118374144023938127761855108661019225782180021935575180807809039663171103217571431687090601081623831877872442334070277608884129034929282433302868214521257500745202431417159678481024699571541175019815943957108607340279705786215247200973669141462383575449065214692409855108009098026528194681562440590505465080784598859335018347408743723699547495705178686149978475698950410806590055067610149300583162175387465919900359600582741915190229750492655014627803577189069242142010034751327432042356616250402293517726658862718471501016775629129449108243841826384604182521893370506039944645588898086244476506089523725896136960349185370659660176399407317751503566996000761815272926946379594037861592685120341256527382442644051546974739598809475868117124399809422136046056929088190568119403312226571807042509842766840757530737552380089343021182381652969208434250420644207357939671753838180154772614514631526216978932500828153054246246810694890131202893038963206810428361031001927895238241717142724994931923167437454755997547732479550333194102255271369778185081597170296853485039798717459959029375594598676343054785913201238677929072886312761769560365497407623376780920850364360210289227887337949759501732483796922712332292307371361494805010094322998841814524838200104092908998618244867079572448860975942632455971678930736935544186812612048286831451240244469484122612831291197681624716583853894411390015646926276462443502144428753228255275965211961129609903329228678247125178597494743241482113046655343897630080648129678144059432216549364315966476241122292332719256851291244109453763889860447225539867575966376151319184473961635630180115240278915286068939856609677550806943349490113554121646697355689701589484492228835123906359944206348925645677509107824645787147576056257392786491354258918221230780922217008235436879776452768494889759039056511625071341850123337086694280312824732601142833918082990103548486374173205274119046101830623355973329695337463770375846877491739182920701960874770603485157444669931495747338237296466286057446303834207534238592588212574442233504046645149259431221523650211188072035667707274400183828791701453843930042260161360376634903947050333744316201317046394009588443664075883770877927763095490643860398401684197992823152754654316493121710834177531579065058804995292172037422318315987520475952512775821735479635784796662083864473298946720449127606295289619303739496115116557299901704793412078977784936071940745928287882502039514187894215196419450271927512528206286132260558299150791867888852903488352068716440426595545189006607174434905269704552692969527806270621560552387532788409409785687845974393749655259788199074005775435888779353997527991926083497100658093846332953680331640387421012273715772829146819126615265927407958382436136565372934181325412331396374344119023914824697985182592445677048637984241393360740582368238932073879785575091112785079091644425036586010062572573123157307827912212596342196096557896824281770227777494481962845041236490561739039790304375813069258340871160289183135602401959074964818122534781017534128181812560409771342182940701658228928319049134098649173664469633879883945776177113343867779149063192082210216434005471085941238736528774570795472502285104926869094431558064599362742090831791365618661761419710630346966380747210631820928363471222896272202831858458712628694559601263450834016199998003447216840924144711008943065582859771214004665530758748483282065758899844432456786809026623867862759041600256555650966752450575805393997157663935338779143784463519376456450076254099134415635225825767095214328498047288959916182229990127795371020999321079201616733702021707521017305867034547443682369204120676948853056468762014128742568394404925756538990524460840177798677619740546914092646461282111691971368050860625945272409774816340460570066433738122444733822105947308875098521097395226397193944341622194929155786085164399914247556734108553365590524071046679586379853194386721497159450383355568501533282499083987354126501867210904654879981457324646604624679616389392880734226397668023580549543710185239765654376993559007408508623171088432020612127479610568744798815895964849414696783861945584429513367794505164969054533220747819865636580515054283159829798371597283526778999016192206909686363886699021205291764266401953869269996700252581715463299819311325792142168219783108739627314303636881117931111081392025927670652858607736691669933119946858582604507074837303784652531114616064334529763108563524823040205231292200050576181568421730477198743269607608774165376966979456282502327227148149807606027792215193989147858739928372454570745492260900730173684461353198362987487280106291752954174204896794762452996649014361793705529212382030473219025175869879665990754310120809500627744812723249218319412497166578773976009672174579101387459094628779945840328031114371437640402427907836698338554353333458642559829806972724261240473969920419674205064249935977913832952815958420915339505705263716696209293605442531301055601953452656206407275077886467111210426692044459029736617779555374274714157502812392491786355582668130018592316736120041482659194046691756411789433109814768717136309281981924576211007724429292119563969376331839119361938622948330146268897078833596697594858930803932989733919924654093009550866598810492961604944586858327201769388066458343095323561457720842957948511187695533683567987604355595185259318736433238717503905987272563140517046856522081959697023044641807228433065697417415527671016296552735166317284705722397182537977993152688006534298268322073045394912777928643679628619839326545747062624439996548041777271473693888989384137242509952290761416893355302128947017986869789398717071421813898854961486854232671585385427361464768021947185014902480828004709798275669699893818111750788126583673126570013272963211123162075261793003398930361356716524966770524821712520612091276882259947644113198302397996962714126832265710938133259715587818370032340629013556274467573906742779664692143880407708799359826978373209552234103096786127034033929871250472440945614668207930647989558687525726003312607135523863049117709824994355937904504752706112867639038329731057655426960687447049287724772034107639584018274617518186938092732966675096900372032137714502822575498804261216248059787776809970393734379908949289218654821489609754462697619591690681610188057398179229905420575778764319975745221354974491835274290721570973698777593797540964746059020375033668168668798962795399552114216451852544557742839040041854092406620177939556382857556039003766959664505974722864280980930257595461508848008881112060770365803377492128068301327935436021225503852540112520356129766849404141875451500776639790855359771697924415288537637685590028368856624748673310191337591072804502911463566359082084135288432865461494398468719192273530049059488017360919382658878380475368133468198782920526329098302579002723664987344083319826977498810985302382840261023683407021407435132768318217397268265718734015369992763519023217320782144595028957887803006627283791223693753748436379023260986990142823087075367467708200774060324574945687051748230973193736916333602522631910216397300108793779560525969001899999801534976552412632351136574526104945163127838894589936086807644753209816198889531898461661782909672770161661888830856738423370320338658447714722231146769050623610026234689453587005085305124495382732355669620084135594157749638303112949701369759619335954787471743382094108318571342483624505022772713334077356420214171656829195536105041647534049666416290475526451554053988677080096373098025221237632311013558831183207426933496238494723434509375349746989360479272801806336256987381022164465730854510962874952761015201286052400819099855842210241367898745346503217697911944479087093130063552556137313917884859321276551379042587826408431752151800927608831899144507796847943746590690888474083238766262240929861313112621364331947696557353632552049139279878084429268574924790973930275132693239231666497071769670487077250222823950837476552790140479587738466400026023140174491942390024676076035596720073024007006333693081810424569413259787174878644711667957326286764694000960628324769749821373528346755253459276785795763017039030367833145449935513958699054858027572352850776330825779124171232460066535614894546941468055251041196638427027271386404391529404418444747743550079782514250579958910014685062221325240230984411565873679852523702333040087455252318913100618316544328725444302641181099381589559384024903616414253026796835802824790787423874444452082060131692857241122294291891683718012832465209359837250265365892942907327712681464728194245737709006548420166331374880009768672413444054597204442418182438225636905183656816827593179556521424881121771820627609433345986045839297797579284006858611222097824467203526450307248617170030908846127244607846386905174647329747713373656574134270000772726314359257036342130689222294366969987533490999157370077927893986415511352895443497775910088098442859030305218652116865724085640078660329317959978765312440771682929506027996702666776260834780159107386455582068747334524035529409036256610773713406652520514312108741925319762968045634195424244206300331143573501327444381515780735677669780663235937641564633864585213098188228283444799508960573730659842305962552107025643869967876573063118605949682530214147538382404968075907929047791813638138247916296740881016483345778183378845436768205155863520569783800226361698156728281882576071639003708484834493171503432145516407848188770860857621027473757987793695469892610881753879780838288745883829016598474793603302039570329090498967334253340058068100506170105646759283955481347690940654751507026310710808417594986814559834906041018553100891978718060049057592544430684833247115135476234041799194426926871087715764193546444654243422336615142902061550118671944654966946320578244533041554975391820985922964185360081775333397511045793095393379046690513982814628438641762222671032333477215030444314481011335512598716418377999072059719022364081327173480504411636341651913078882641991344034098644555845253808416376996284628508929168830800616753952709425203659041244578170665511178429696696644586879233183755480583009266053796424884649808711581182036537923789491285119776223676933090307652631273251156396451641656418745261901214519241948062745054883891724241707238115054984049171041094739834163698251947068417889257145762151232717533169583412714470381171717136633133663075386976882133455193242994758857362292012705906061361603591332553565851253480615267413686828202935004921734144022076080037497280993606631263821016188023998690557009968630656262265660843994748077494210287391334351886151561957808368649947546063881663938999538445756130274862819304599789016644669677633797177964719776139117848984001937605126372020166065175500246690266326541098077977217891896214906149493334462793930741980150944940723780053421473832758241451204659917225611847395886510144621447569820459760246145297756106531066576307468269894667550974637956076559819880105394106354708013122860297476511558046538977480482826344437534526409718870022156567512430179594669625481194818422606005381031077426192205848190502660630746954535769377808846824270138019371236503513424795385510562446301579524505682008159049523285987414558941210867069480397128555475237943542659123720002513135508433617087345392946814037496113177710115977032280294708131203435107783609238421730610988073344853282480240417800372614094881689901797457845187217092083078576418816013626929157083541106297302222936282472266323007351011327609349646336340304893671586919508846875975886737518698495294353951630538534998438794377709689691910982942333571077813121919895112511785436086304683834525545841875465127860254154300634303919219747168405437994113164338540344223202189179802066854841299980781081164206731980456008153916828563677826206278983174125158664538031868045056886695784328124247688372841028261768257030481094302173304715639755145814620369028112366425219768925061144871430522980621467221607196527936129075804544222311302359014711803117952000085563875090746869827921711489731112200123549347809962581679850052008215872980807676785904914822651532722202762091824940928619595129389149438027883029575451637519229193344789681248773268668429459512648740178153886462611671828654409437390466436265518338251859772030208702901060141746662890244518992228677982037827166547076527307514364073864060884346316885589709080131885311267151579255176600549747674268136432317572069675830206718098029693672178896669441966031699915225149296957432515058498615859172928320819212259334386457295078065609838055561229567302501750806494531316360553311996767085075092199355316946903404026692006444064992094153880852329327769572511568044677051654960394430662166668464571553316220547305634999932553172797736560705115194844204193563247800411217200575664281719709341615521793510575018465709376266027142995473817473779111758335438449997015579476165594163823485231721481197158578164468521505891197162250440528925716079791560942440246607336004669696046514793200559780606338143323665256270119228628483312690935991694599200148083511853306502145208328075256004620616797027360731196007148530595763575556299017884878908718843983913458649837876429733072085738855641168812798163896695323018070953099103031002772718924379838038017461360314128768739562386788982144461938270502788090387634108725314152719283254157745307112589007417600407543872978429649577362312665161742650922592843918828368243126528672354828697301995816911840493566812838086201934021639008323941466793505545171770325839988098708620956853531432260927837771911708856129022629971562297823454819583120885525564446314393867242853054690594185188052436007338052044219166374110987045524601048115556996691026018996691028385718082667175587933444347536537789364004573789074126608239256422278944631766700300469711370035221073190122458510696201020303946872930538280514622302777591689666790105340821747008117327913948838404456391484117011352520497174055755806855427615206275474559167163135760754524901614518987410549164739691125333563695212297206511323081190743991495875583438610740383782819147140619358350462307804993667939127527027462283194469399894828072863572313944314206503725682592036863862157401700660803186437486951694459509629518677179279532927160984795079681308022767588985463820820966655805196756171919182190229813644393071767371646456009575874038140848319950030357598751654294257669089523008126702664250992667334716344673777043837622135734941167805548901686265972136012937083877718579748159283725440987394073115206728812514448049281232424058814025836965380156253815449147459449860265022457726810883545023147004331065496385356807737480962747411408990185165493608842894232973232561753534123187866617194924382476297525396066810107626986062084408248363485053296245222347769238952784662034947755427997464397331305891796520345240551362008025607067115561268371681246973235660468360271156557668393260098793616062295410978426738320612144137337309936836070283932550218841038664857427359060955681880204225729122503308014847933929592753772699632818694632643233684186031610291051020194167968640155280353898439034602311744545076262979390887747187237872180127764083863739432182228779176640796126288276141531948004217993531016650737869220747139305818357388570944923801679942768365313084966529594757194739696331321646813667026720380646747832516135263632335718819312714794003535007164568767814614185021785228492357619224564865016376472356674784219490774168628009679647777247871327068473032216981304732483127547313768008011016016760169135605566952284133783819577440122317412732187003770302357423002381286511128573243601588670972803516740350406649532289049961048358354866399210632048334642362628255947899222148046174084476227311990854185923930730461083252692888664904450886426467088498598259393018519105894660538855840876729765815322279515201264966660005529661248076867226267167309719688468667036548331848606124291795516603782468261713044285775319833331696463422186558176040401241519297987000783813588862982963106235947305591100409096299286427108101151117059347895196610762688141939266675143591532700394917900926782510732633205051351783937368470265987939298359661714236541373152210076748704130749908159177207341884821940838483219975188980419464531277986651973221167599931550472916948281811086448639532675651111227813529218820555977797154595952456763854244288152429318655263761428153025831042661973933432167585492752256538213008665601278456191475520325053993774118007808550005449389370681962969414707488267355065477321920401042612342462413506098618006763243426872238969061491653233393753783993009786424835154547788826570861606687741445829593137334353468219331659391485617852598368179345160937962613736268836835446345411256631656199652638731559659279432200352894331640276086396414875892911263356973338814288553861498635565223779080215914198396011009806696418033744321005667122553085105676091075382607650294378610120116313429273506077315148548776402621646159155419100783934147619199253850195540806015350867048002465710458411961075525786235890163573709260390147869600837967964221736139880328399061608684934231042486243533443864367502607572186648508698152868816632836355349776138311636664322544331827543396452463838581644343194750855342124835032984382700952904777647443351690801217084999886452441796317476162344955545928198907606181665771394137237815616572178341034396267647353868651669320021557193536321628077353015681858442415527192588085133927124530872152964794374911220846669625972761056823242859608307354282465004562998217724093550926155222980450601917849222778404367943205784640029785473662676349296713096291523427685900396516698624420484841058124946335745809184370631882731328483456569994303224125245626132686300731043538071780161830849310784581596311225510200220788071072425822915826334317586143025079511334352217762847281525682970924343526459025375276349493938954487731763607863751379622487803599471639350347803985778646134111139163562322312520319701214133734256772055245156272463332239228789093548988587193200779639028916460275562530044890355315557271498510832105983761172726592198164094583276467317351933686593818592370392802080010963172124678980371042131010998867560982553125555681596183617758819704035998374521352070035141046161723320598811085139298378068268254370218919695121042498424278828757783948549587254043610153616935126550816864454342845518290348026636467320102699626133247903096942772608508319032583036747973080849061692384365208096200710685712690389275197681156708619402862162119884555540653541148726091934861011603188858327211913035080599507154920042331390013374875451466993580127426179867112523711139796373892946418410911503823847929983116661814582879386630011893836920600611055878530701539558187443829872704304744151045968783621839868506992183463413011651885893671701480158900245662881783136310041554599621520583321045215280670891323099929774813417831375551990878833145326036131909507667453370866476969428820049131266855911378486097817497086528267933471584642583696914776088315523725375071440262338986856897030888247765462316013955139918552482905597945793170535361912216300683131877241289155320801411110229853130773567774061411806105900801243411861855001277049149242854408581283359210195009416115408077218732726431549247172390141057017532135644551011136120103318969775360679106156187534902954793196141988939618801041107106385735335030115454009632079565648035852604754038538318934223197960805357727189164354982027520745978424653911673401192660022396543428345390955417163651884498343975942255658322567496676402966941285147730457695801648813173103956260080139996603964949339208180101082344221500959988303356979329056871116413449443907982522799059558255951551048912679233623503968798151985447174906133114699586946869175578292384327933383721512791666385906866292022285992178876061171256914053470270215907417133189893456965966164242545208283591478706459700942260977371507948061639204996110435262880154424398050217678132574611681853862767728289206286527950883417961871786188974815376646900033570041926856012011047423360110213876551906386178568019345086995801056219897851981752442548865351432145745774955746830514764516472600671187951791725879285465131511744563927517851566948524049780153380918543972956164750723507512465469826814533182616695783090271381753498511906846538601945734154914087014469121029225465682588059756775979596666634109294070204494323434629879918130804703585786012652589986826929699724984780683396439069703350789530376355819174469633558448185444824633388061267850361546479559185385741679085025083801414523484675693592188152842640450009016971089444097769337710215532770671310192174573041332568005822677836424851459099998981942717907255347644292047163471183288649966343009220890218142637596835159477654360038877368673406033511950978409241644766878490987298930713126902799889388343678401430204779522278199860870482180548218545085046347323709714005813905512045980333718975854831804512032874406438055541624652075446875527383712549251819075893876895170946479462323990622303578219286334274232281982643686714109187204045620980668053767435987205744673078831044332744541705274316513590100375703974217491019354438537120769982413170590676300415056993223312883675686835688164284440135554917207272354789458685482300890654614770610964832837247112947936951979174050604003317001678164555426814467053657279822627408439180267524409722177562748516667293345274473662015705004871357432241621104135519163850065904130231752524500742742046205689332217046337472760768565440060570857786656239736519188656204005824362790255747229588362953854831916245429658692880115998373638528555236276593101812155810707208637484831598298370721854515668739355709940696233834423400629026557786570563406865653090568374185824814081718516670897799428811272810280408817385119089747210096626683192292689783907034587201495453675267099317840569718253228930186242404305049454376879747112632361734064558839858902850277760592223574660044063410761248442250039711443388115125197535015008814693167438355266020255585083047105230745200527747502401196141638154132861950989622114205722839919636542635977118967663723824544325325478677701410565444002872198473851471585207573274816102051519607548212650325528623199075942535051651193717985032822901126335665998302381241903327596845868535089803726421131776041080295344889719284204344797522334744629598450045933767768520459645571055576707765036792933469810882135956615715199153353587265092658848456182141377772356757941325903296887567879725592046076403408405035564508043701500873121180491263734155739878559938710754026839720405133768129720368325293715937634945989669400567799461717242193246456892448866041520033916978370431795044307980167107653347407667321293130741715157469496283644113317393339973216607547407968149838034677312742565614828818499180367879454883589871850740442068690934542571159199437250959723064224035765135258000640542230736354595567435249953284507868709046044738001306067848554985949595399460948446664125258458570543425220069119430477085156287340277732199440828749721741222125004054839069389100874007580948365941641189908432989202150576095115304780145434080524357327700465697285927337137485676801357017363861811192622323849928231108685545406500801241192723980329373704325463844225398838185294844390950539184394882672410710892719265418762596450180461023297717089505142970323690879573169368061750362942146542682426841257361677590960414467667936482846129338363830066349365303020224221533084024702257822844599469587794994703618720752154942477199658408400129279859870080154934648916370666735803400854180888967104839214042001680639863783708877430030895807005151117762219715450341085071446775299365697554427678564438514870622005508112672667788819799139085679944748903080158957461851014473176883070224876607959252030048400842066361833840806337553506217233821349810968505678220561513459764922033776007800754751422224232469710539537890356140929565029359834505543537960674276560914977411273867029348823746326552157237936396154476722028238361825584440037502257786055168680737217968574563917454156082171766926787996074504555498535189037873966208183825419475197823407511706056970044737324367510137530888736048057655446627767873486463969657634242348421589859470680609824278274711265580593647795892504433378432741019012695946350814818363970289670495317692179996573675861874805746496046471201802398922405998987163235026226855013194159620970671377277961603429471175935701247103920875409014159779491472404547944596990669599121537963408211801847715560769784052678885991854829276061594969976458455617564868083609149702734522800153090708147922132928987017649305341864747653387306722296373172933199716024292311314209365869151923747890139267079787522837640637394601884987471456127958474642142704057941449187288715426744025911523415269501015978860414450895556255045228607304362584713889446076012794211050367740071760163064275728040404812047096407315871570471151329503090662129943138995020682659051925993866911073083755520852858914539220631840567759022921839194628433994669268373588119283888672818182231039550343342221700407251791788523393279388276701312861041003747600408193623154446176269962676156213336063554999369290703495117900279674277917772935343479544190218767365525282147413863879484609253280791643193370931126335992675430144529736636071125380256911658976638834403882280141246395578797685112757552719953960303274783707826822603296909792628675369254858325007850383603987192825828819170841788418174831095031741829840533108654189382441700609523382270780817249480558671688202541659347487215269482421946884345928862115313330765949711476739789962230057774159974724161294455309723015725700767924886328063356689134031319280809010616887372011668328955532314731852347299382852298909645024179416140543914601900483825760073739808791702339713870772341975069643659900382989429767477541148315332149880754573380344678385223051541412414149135429304175160229905266044329298679629969672944781555373559829545635064060795407344642598440932002304535279108719990400204587516560844370616583148804339546421744028037485600131946307313711584473792153941686501909617480530323078998058614610387868005058168357437911201318622152390487777909518644354893687020183387039158790476197085171144237122816089240886583041926347180788919833852082467407925272126714524631004390922958984051672630403663843937411639980389872960102482322811242860961177387447574616037005171376730031275890454483076807864207331091985636045374543225549923600944382310470079029864958559970682380134933402358720203694049261499483579927505251600488619263934724592351292583896471109344191017124039203321741229148553552127318821233540422488271198046726428490957352854940924098577270308290577379284230781581272035994827844264920860369808608343319841380165352961884119261456759623248668907017294091935921831041971411375097982973795999097040150130897622109163728134263514947129640767459213385641712959155041097457883541897779470546341020334548349552610355155136973359201727092251039492970304688810275485485561822012769312527434653045664581792623983898925999587616962933072002428505496861767013631665347358825807433576871519803697964595200086863825686462135598264304104461867550271940825043787559005740775676814677772722342503100797272650943240233598694148799898922029024940876903934244122453621350640754584652287916170006159402045173949955172288765685221983636548323647241851948995625971665237451992515690037329524981882983842687950002438160407104735926503720069301552937660298616063666321841864589741562173659462036159740589586809637556525268233161791961780588104772570717299948558204353962415397096692746013020078871724363955967749321522836428284594492477558352435807076003350439835997484118049530374893888644297911516175488720769877231543684213678315347968168452025322551494942354980082295387195618690276782656275618900926595246187067826576131272985006497561915229092269456022295433442049660830818487341812083976923027190724768414127588666264551373879579274787531203501686353878682302953501822658482757055224263039847175368378550256659509839395309417626684187969971942496137170212756259057218838626083696844510629507967059774211678056954295280594168024242997119263626303274555990336934534590120146838112216380754799007580974712321699649969602604230879597318249319506331301517516246820587700047029651609280088842201431360230899664861457116646924768861600736996045785373435617737805193416790538537594487393286630021010854236287795036307783017015246072889651337330933823347636450534573486326025643018767685998162778441497670684184282965591636132926301676089496178772474764542660459304587362214049961076425497373053505878154167608841217159072892993822912589759846540991013681988591030247593159375991969833684308993563805552153254222113564339811305509458927800590410497729344590914120411738174120334067122859817046126816271173028862785303692634666833294036824326306171068695112991023578751215123530772562221574404514441604134539066383433481598263921389877428173758078097937439293696728077610799648032206041526314071019798969566648466636697539445128010299957577999777405317205599804565590005407361748475044761613834630005587366788833195694979979593118327056728878857278501253737949291197608962653756425465938974330780270912482915045360640970286795464816651692744719912205232344576968054635056447907192706505327456851122045505838814332954878549419459224145113182253507633161189284036230662579215364385807111361619507285341661403408833788093453386777339127685217364061130538661192961962127332380734573365283425606592686516666275872071056141362906160251389075713894952071409983608694591164775688890328530558883715797634603652087681830597970198530063224980019940114928700601078625014659879389961171350260034254506371963666614718607255751945812034080645164215229769340654838429710886693969916876846888789687987464204627684425873962358250035938506475700116934559201602601752366619395482750463623481564778541105903760041416428048618244984001639087471808395348668169908204457064375387010737967396171401192535850211165383470238769125735655924015897495195738262677495437628628878355060000220881418136595822186745749644048218838463984507923114386758777343772764370485730857841446727697017644067990135473721679512704559683415446424269950680422786840657297980070980336879049793775618528359343451844512826840841794046725630676550452179350488867632144584515750728900061837184939931892307600089790833964548156784822523400299085820012231907765124022157046948434984573143953627434393952184312581358849272947832174991488129799482100268225635718115180843195815839612594041358412688382977379174613998781712286425403386716838963719818990748259670941673795867050265303103343141453577289695963082661766676000711195805964787483557990264221520753511448352590671308860629078180475268155331066209339145926092758805771178093458235322010007524087336770842381541361119610916698176066982157316812264181603775508318916233123876015016582655451837457842991619850011174756517462076454182014246948383537391326852039104492347652423680047435405164277751618980353186835256336875164486595917154950097460150406252835935868743181811778044432634538404133410479562805320027975824599188294336578947903927875739520921761810879440443930478326272358458066719667950117171508067450974342550642447388148040105742736375422078320518911797799379868507608384575814263983483091930520488616531044603640867977609901288592918320654340835125167381540929924915285556593833626008160223324673689282786662889822758672255174130872722099676388139747058718679722415013273386922991804139937501784027544571090711174129411549441159542356459744641394450237706782716819703560713343014085839974048887587785977324176589665863073498644527261920749405214572639444987751860847971814446669975471155934377949038166958581983614296534023088600013408177044964709439874633329374368809693184651944426519164168536375100013181988898036800442995503435499948901557414871501580391741544303625593300554216683842542061457962353885828427785247260816378100064767884925991287630887010215300759738066240672895677843593676335975653482403641015020137643033986050982257052893565146690527939431552348771759543748994749930269103285531485565204626458960797850481111027438100166513044057347246903996043326766457357988387780040420133654594437988782709469168683337252548886882988970650224539737992704565217378396235601721903636364050798337883496278989921642907729032811572453857957691724337468290672677367687359816518123918175202143341351891290292750407298488612237499357279194517118738737087299150260886393281749812454185003705442255374492132127931476069622394991982792746369092544774451211072902603986851972174309041794708005227760364503738364861122405328839538504090282994323173449133268106078288147012123051084154327396470184704282820039203835749559913747305229150932449272715000020811441509154948948280681610733428158528884855282407321458002304511591004390189695290646399392915928063920682486229504913889011836876662448355673057410579120595557884771629914298996234888892365742046318601502662543580258511532572467511726477044498918565218558488149700151189175251892704869706073400179483406467957109085586544406621623403243202289297672739006307438026409688629112906684565855622279905230353678812096295298115723840250835986042882589597990880671955376715482874024120525082631762001479539092205513376613329627097719015848740735435600862187065784150505992797207788815134641810120642390141201839189717775923292388993591109964149114181097413724576514819650487030776107484600347964173560443642087481115859256869979306270257205410490251880262063989942573607337228420632826568851304430131695596856039537467441350068740004724896878841365915062921899743362403779748457051594946590126679238759341346111594337661293750596081814450748333895827285567492219100580255949646030183793217855091104730686072359418783361248654405073585595127819655368353084259309628943971770465342870466783807725381742028043863683024766690324029117780954018633288414672122750509719665225742160018767165178566919097479332217346064610319232006795027298838121798732351502135547706999652234714587504268315744723196302476755028300330077839732002488603021707065718001254554007100581849832784783781956326570707138329695348730347290594801674254542738951361487543319751285103268498988993198066458856159454158631136375385302939520057885681307224381225521922818477861055015787073663574984817661964404948345140895630830249990578942556693638467474399730476739768651953591586866628377100751984532539857648042390225845081142046466159003887618246335109430982525390689807176492674161307490205146037341659489178380374904051708538140933765954054933801802818849791451804855336098460778491024797558709584981368423053278283401756223788362751228922225248856765034952453179690011118567505382288612800646431402387330302367508580163566897236049627663964076827124801838709362228597617595794636649365593009565771706244493207348627193480633128034950021583468136146793210332165755331635714888914800252372823556360106180853094800517943130778111990314972953619744348877158354285525643719656730755381957437700351766269655356559624850030500168796946023434810251162371820898760578084938922152021992429406051814426379530114797303684998705272272519115569825316540075133590878807699893534207737397437365726178766069881982179325441978802947832498022733534147948416377156137982843090742963245156732180760365886413178741399173095401812044494174415547619640359151216207685531765123282146194565578337801459373750223220072767620154642750080580383718051164624066540746392115462831296626445944868485384005929950696416580992261759605104744207495915454769797434163154099403762724712615185692092992532440236863830266405619068925546509018835690634434554831261086879599611213811471675343803337072545080681840265293588945427582055344110167636672404147618512288090020322108191368223189369671127544707176838833044449188748036364288638336208545587958234482303348937941627927939153686625906754476661988886407251185515498095721282507105701615829472838721997166790275559387713047399476112619715751105225648850827982821532762369359023144242618469756561504293112138470577281724342608190331786626071275110031397008587755830707875322365039921277260386262022630399108515810130573035482522620232228201078791912560137055985897854831197835289386497877737910217753107903355314048555336617895888079583201236703980036512329170286534624862127708833119172979702808438366738018034897892588799351541028061440084537037719585425867705263038163752976699562637395587023127276921852964377568021285092736472831597414865635755041374635774917664861242983390192368867158315786538955179971013406518101494347726521066353623868451304716283833946317068930623915362602344416000624409292358242642502542301333982821627206137752474481951723284207464824282331114520074216467437288102454466296221719769480135984093264530035761012956510302204336210018257662353779258744459402504971515612612238794074053993912275062037350639448354470460835973970960493142547768570090427843392827253723424764416881730474864997571051694093585275179772521514347913283550063314914291292326139408344878457514789386490714014710370201038829197814624191128933484056189773547898025996659734355409413442869480357806308768940778509697477529872803619550165647451567921053546139717362604474107369317025887999262692555130131967000692784224348951397327294603539881494950719720142872798449032903808541083935045432148884774056139508609008682730910514708264073802405427752949528467507046478622644176342720635607767889343985502912599181472772268058854225546137680348144378100927683993236325550627310587305845624192856432537184712859642189460734186642262517785270069826235873957938868368075752628774659959047935590149771163130822758153318333581148828949903931618892295822890394002517722137646615052203895140443180001474190868818813000460871030305265163272742466713866687396646403977210357316111698353555968394056668487825243825186322047186475986697955137019688830633473632892325757663219063590835354183097125474350183507448199729840865663773447300961209572039297366032789258967061696240812902688505695266153813702637757557987671939747700034930458614652695576564660622202477503147712040921003199979739036728397748089721528071193957299524089287733292613756538653764512685761115217248055334980728550944696798533999151766082841956529831012944441046739991551790100717665576629975626977222831780923265633173738783123671013046709617684429965038413533397833531235349407922945579104429371910136820250835056942420997192246442541826724044972338354460400062139795458196074027473769118752831765120127539439331672998808877265445992486142026411300596808134179589861376230927900247054740097152657908423061600356170393615301689559024523738025483886531749713831359846295466052198218177864862701986953131663739357258950349103657296954117716529040341822269340695415654134238573961471365492047198497068827137424866943209205793390624492104655921921372449122464496215311405703238544033963619888557631814336607290656969651358384010669782467952872516764373433231534780090481590804934657176756283440218883960006038492255198135571898550718441428397119728210986096710698530425185338048251778538065846857159621574792586568415433178111527255040729502667116393382848337801071759617568960863653870517141871277778617291400825500745645974134771258779973770972359996293853095452712040915192520112186042937039070139375937036504832434173389272984061705593123236917149183780194504428534963848048978738644829306746686054248337917964667242820459386042670156247434121042841850815033283214815727783865336254615359609143419318696496501501488049412480976989159809954154010420405317372985251789513438165930602622066186317471387698105442656725117919643358002837069717539965482090236493882777503196288413641577497750725902952678870788392949091071013931496253698233117310666957031972067017677048057357951335255226596670466231094682105837570423281337131851987431092655525296982648465202439356616880230278362133781277219969978530246188901500871101147309179086157394463303560079157738477488904615974303574191469843346835430180184781155334165201683190134900771967317760281507788633963333645279154552117655434706740120551638423029330894984871462904730326792509716256518512305343958370856536766731327473289822556923901847161801415473610074091467947261259277807671038454816643287801052292905202584471206112635216054674975174138954134975229645485188260707536051982156239363202901899173361073726017444241502441510377754638049162627438380556767292896566867558545006386985415814349908825321769959224057647709632302809815903824229168222884259113959389007569823269258857084548605746673280434725830575023878377365762583081873662725142364715039121840149736834310625072381824398459097067305908967652596491610018895287142696958753705141006114484613782127471830568513720113792330282071260131387277067398909432586240299452255973132746949061972987849286638386545422530320262896706308557522049736675643720686933062452710263733481009743361245619938034337862795549325752796030153959225649422188961502406596761883122028736605937869901888379101565750143706045545179878105666602030323023966202325886073855149280688974065318296321347430898338263982738846614303697985047539786506466953115722213517580150867677715281655633084319578028222452498922753782955483219837758030095537214323688338038276326581659637094267005558536768496458794017749609198042202837900783855427593421281562355140678719166346886928828833709261530014178715136481713825081363062667263357076063310033770962152207513952667538326691815295013406090038773643685769788701075692636381758243757126052379750528187839687768832087218348993439382022831405921783810215631446393336961673847293743183751077269423927872127593063023051222796275287019491506756435696471017504389545971273651597474899220664818863258295969066539236229066654615841886474762356513019984352892630060257452629172924127732535153369171728343995562824118300639019640283372276661461121689516620180092881448936803207513168838172276702595694046403696970724771734309778124890372342519521909344527637809040845202740851179490867743609863944914187000236449314262157011551122724584095890531099538011768260031988838926820424684618175252329276853482515161033831915955459448832957752751744057276321833844731824117665365168925661138699435469372048442939785063770917776778809100884965612122544103976809168246250466497014932848920567202367001836430492991982624891286359659656300366545128210026779689523460996315518015007476133986110326890809223299159000813613244597074242189263786125070980261914559214645110224060358423085447366849376873236238501881724621504434656760846699883392047165214132784430099398993857792429847961312642513535041999434706782853191040514292377404541614427712899756433267112730627150820167046393493370698777986488731679884118762862146245684538485299990950070772452076277530676320611159362462694696604812830327541182354062938096111095581180630347413446492208749586293762044438482333805080060530456777621753945860907676868380161841079552565093100802519121045297212144853448788068629617729010339289156070433224963681950569590804765828863080982000825867614052007680130988080392703472321438536161844631610454361239294383565161382854691064194406760418939010820150511148899279278048275731030731185413671564538943464041923414169355170335271300141376689859115160228768110137918749401482393949012305550945043942969624172695598442791873540147623026609041271446598287885884030619095609132302307750126836754330603002534994247643551005833051866020547960729803484872781161869842619906620714941499009185561510694820076318282044139131004076075735910803993349433119323322618789722753695210937472257086998355034249080482187634073408350572402961522955223982369888403871436143035135828112039286395448404451352064298560623771889905725885242901471897270570886103683562922325253787809305310069794982554760736524509436713939017762164296900722191929483877246727327462746034334273040888642420950606751595696905260673197479237804518739952799466440310912213302249723059283923850007710226137309909225770618327362129551883138276145639248448858298352221754222542586075091884390031882518289187331064037959812820614608009706964473593741563335757516589538204059141525056697407338494391390058337645107857237497253586720394387174221734557064599743110363869951878485730429331438105747878657112238802845155037651232205420892831167560744659603279431075186802262422403721069483941011460814694443155150883043111240490770875652345503180156643243301927711210590285340645827753526233594599425539573712924614289688443894385148306111410047897943539431611553030555610846089227174482772962122292061101384604541196591145934386377380725753948840294768093151492921464373806737907906303579624379746903053929526349718574590837323881283509388583182074195747444414112942369383586249947062216248633760110525557255217505961843036675971525534095269606888489466252642829296091865430084604630754993947375440899324736082809399683450107549333155963918537013371330395027708551628670049838491487985923527348202137480688172887919766353107652420638362079952237054813308584589764055926925409352930494445780928193713180583551726569084887244129874848753274608569612571799900323753541911929749749121509497373236935772855783445009326944790706788008489330248487334342058251426164177029977221625376552750421573760845250883371941668017079040273380355089386418314497530903776942037456431968583383362152165473453243472058389072059299627059636560789521666723740679810812653009373181588005950833585584146964916246547259388431294720228942140681007452705356913734574949167089894153039661393687965710430206991124315737177520146213795234021574978116325615746680023453097274830457693281991526682196822635617511037399110970478450501543902385157775725646592142128395775491457513186276462956156356842807286841984851685769048200751865213716099549276092597650987490730189697044511106045693582342369029577776015414452689958888544410121665398681782806668299871795960506546122242471338351217895797486570694110893405021065595414284231118302608014926464488525466810068862751310558838635333285736812939490478785582926925751223209661452141030728123984792800682350356116992094243284491337215618994140791082498840069320268595810987381198477501117826934880499710872624758261465559759079814160163763900567938956718436981123641743539230254775014151871065653609781673053508369414310974719685929525897017542801092297593984367446826040899472746259973893517586916234850915421281726464913297701201185813330303763176912447842827181324652175478303393122039969633337460273954896456354731578626323569454299984657417651236054176786408757341000378666785499256656813671919931154591676905688107800224302960113105716088570878194616855339652917604065275969379009250704261909830835325684023147232112454303458635725549194982776308939262225813343932162899049918633541131116752732344194135380303967419515641339194383703088667514786103315879912532808304753780392684067319578714428052382926121645468746087431701479655001284515812080448637633681403686413013524885464755039958668369575123372056150159354641381095427159969633634573678037969232432906189720207471826818745132807789216349463709836267634253335936697138829019935334396755365321069765762951982269944397530716884971225875537893663019258113475399141329359547710016461436896877005947850998510367525674504986980483016110084493435873935352033311472812552766108739075676291197355208297321569857428117588305687656903826670141654341523997981960673542431904473639752034723061843907254150481206623243051590939584102912754136087379041434660397220848492521339037633424581507924554585735372158640210063132950319411902151345211107643019850081886665615099620284436587384528746974778171457268348356031891720664191836651352700151829790695473031948985332721397575445165060802865508045736238165179688550239809903053397696026570505763986549866081777367022600145236068239061003325591250848066766081567911036175731710998853254478538237900594907113685738126131299020903378225120586021667518233714866411914754044842866875684905017381800485622797432125421538936561897270495103397223789171237518894255129801249691669480384003698479204420164242791075164192009701289518010415571915875253003484277540675523904692859476705403194724468391606403214591838119959725062821545118832649540468381712369774176556149621172303831491908330581709792739311436055858354381897295783403450672578141443096146022552206774577923784165339707766360673847499266656197772896493088174613378061969480149659393541510821727894337105180703090026612316722670996473723453078842514494980156686464942051311050250057752322016042169350461967873381221588946120950620765189126958689197504152865219409020646191968072478793953720019240319701762788049800360565464292466823360344147075251388145407492043896563197247346415940654214464585248077092619007755802750208211405542052868170809738743264593159963605006375962443789437469414757448336034451121380838988934434511271832472509505567280622428640850533201250474972070230594992020979749535476629229475287042593491753590002766745436522050240617059809114803208681322725786992923047715088171105461639748879468827244613580690257539885714288959848030800232944564361036909053669425459933958854614342969345932187173259867770897147048569912339303536480377261434419381479135255399096760379364127589756129061193579295775559821531790230674869780344194774638796993666046437800361131214491051108605070323609868817064979472025100806228587634411559529515120851533230171379459181963979325273490401092579556604647979817205160671536991398128156398652858427710191627295312328356401065766134821779870600139797640202118689497701326429833890030756749953302021476772173719013941624842234262673054039315704339695066732163668787186472886853172111997498798968002919212770100687718349097693957576478805472892478977085937479232161535493479600464996258013560540110823471944201277320850759319668061291849374974429485302242180190959449980522026363467926488451942170538509968621600844437493677386722773641228975127230537950035416161952791054224531926041655287631775819352017129630459621673101165152137922000200435919424563978207146768785702924708597148719700630168519159293148120003338857886160468243200181999595956707468043707506614439636018515844838839569537230279639303803610428552344999757285059414891001122495347644273941484430887629541526508301704423070600982691827939464839910568615518027681196679093197224175942716494016641235698880938253696726136069217779889974619986541735861101814696940331568584520943759250473726984061130996649632320645316421047190824164473393354974165001424037867586830461453032580243419036296824000392939011468722162387698283054643099078462620098108862418897359924846313263357157567034775307021494882576705300283097975777016417629420188090360125187953388169179646332521199830600784811303775392810668726588133240194490709765100873988091861848835214253777515972084766687726261889584530066402425143976497467663196693592339323990021589734470258378559904746249120513431435713918529594769497457943063676247405424049431364504733202567398592348674668980402478582464613144371506018783742239165496865937229974625567184646675881142145702473138143639211435876014821382546928211832257868465240809297976671738862023541801077416282346466988411649693078508249309076829614582690337760695328365587966734633241896531856642656386634837321608039800350974926876909342915878596407271372355570721686747242732240750969353880296555280931445103889086240659147581844504051866689818540855909317972967308218194312679190227018200382131847164432179815065158523036494748352708536322388836221958585659381801201566678762309033769894107846467202396840336501800487073861229057406675874614661857871374236160175411546819001424637796402184357033410969441140429977133308223966320252290364028552468998739323136739210499535632089694233490858894052043637318772573064570270887814126536053408214424913297654467580382589368196601621987319319411429208531610420164940236248423419488323756714605605760844552496719145804743232613161491764654889800744459346114289286171444293647405436814000066588366469718040133424513939532976869477228295195855879829692850039842493138115276039021833552798021027841943299576542249882400431293883152006048446358314341728527229233085360657270849130468557384914062738805201718726172675638164316551722693226045588402901133026110650027165547403449477865821167100320567893197407863957054342082843099345666033279786640279650503975386259812593795909304803412732821184828017925415618605037283521264513989975032530836469353435118021150176066456464639098745234292703816653953394001028371314197222376247625874455400360279457519283543885246123400269575370774524270183900618609754857409381032076686748261299243518093416006480231457982120376058895173550438547687975446719761624677185612129727299924123331703206331550543954399742841429000767180820311627746218588637347273306211772301588016405730254968403478137776708218816126641832476627795914162114339305200710836278801573873204135609653965281235659583644749116913798973777125433074535809679167595362215125890360808091223358136260125869439225723206695063552070512791113027283693399921468413880391646145674525438384854667169774502716340977238341505094012370110201458544035179838656036389428283019893394643985181716149093812955961818248404320528095550675848346188919881741184678641045257715056437518591384594818625249762686185097250123726220447377915650081020672191915656865288729246245645704688186560223339938897207161982102777165089518085368691826168013396810060406704932536083864350009863944378118879128693085083284229919249463931435455086093434982768205945634172477700951582389694401415788658092017212016528589366449759111969616985155511916188420901719985400230353177623417588641197985552591762496313218715153482702595609783686889320846428736518161897375131221922511804172375933653251136510096291223250746096071722455862875797012824262305760610911689743762367592482992364527956054745022839714744472504100889306176333886954357450371704030385055759935286157241257111906104138355733679537356675471668320957992134869144800288300334251601495304922804980434872610239197672812988141355519664834454061193045742211206943974428086748275733250190468103207745149395557666134298881191178524523984368146835638761101408563131242554566164819342013445781419969985336218436796618084365909431712420758670392082176688662904279533524301344911085604837497111934296924236353900456116186668663467497839042708369818669706150186153443588602087998561619216055088687329097868115654789549920261889748690797276957862089339857238947750621785241205895177980150196976795194272144919250943535141764812516383177943349690715112025430288272794959100280992017339778784582714801355954820594795374485887764440479093330586408807727447295791992841887133829910429692130255375031369107481747933241505088579412906276281661000355597600691893046069192543868095375437881017424031087585596179519152112163838364225946049431178664636973467681468508603670664496109496433921609156791683612213475850957273088139467541919229572978069644497629948814682366644779624175239677886401960471960878229418483495245769342132382325564662516852412016131478627327292311569762233034774031222969862140891512145696791019991005819023054678401408342704242647215588464021599824390847604924067471387700809442101215037314368328335377417030741231977048411186309936003727281933549978498719978481473819915756522526942280051998622522493905700803924243212569932366631144205092176314169805425718002058815870389132893272776773954391827706348047387631291539303034645399794696798775920066386721351417307124285281669291037931467584887156864305032884626447030923242807952110587833447757494589298627425011023849432355560780437242022558818801673228004968499116317083510052326615955007075900607110308915398675263406743915746854859011135391257485230528373934533316596178260285515234599275223071009310160107302759320813527529361443795574070152010087357277034723714030406241348097897251945041273115926850767458757048892664393076590266011287677395765049827285315693266138808039916386815874089272690671639265383836357557076664838646562292313251506629937632563183162152046668372417715761502150624964076360642244229323222397668446479694797829411568702190698482358875640030890481598344548169427806047592434581793532292594682225510062385090863000849446366892550036612140336605462961810233307849606142866388108125670605214092745558710171464885244378551639686991011160779716717262645579372517781053315476731306240114621363234276773243378494309004055340559616215599584176496791650927114574043801212753634767723990029316272485798291772178905194169277551650625089629359270676187346138815743913016235841716097168896110429752571728773857217024595417750461270736771584219433388244048445267599946160577192319723487134388707055043324824258483162427614258297581035478397089003206927359748843684608152043446389140824567896398886219636846303877579555314430835874769525068983221088318598018998348067185987491052032726278998014255634403475512408598444938295292747484240149951409615736647373628241464744268654957953646760342360648067749054112642229987318046473019519695751349961379770833445354967482455591718399921228980990848173896604726157760271130873412037748299964049302840558249424735198325658609662342571472771782644546916632474182041237441988042553586557771504483545623578816869664575646740598404062329318972848225618792876130895425999104017248799438837160525293337102409254707073422113512694028746835289896182441032531668879468021272203070168697822051985944740648638139486172102293284374517251253839519508293161629662287127628962797840549286906374793405005772354022616594028725022523999976020087204219505905478620224434178097492447202390116956991319014312834631055983866360987022443808462015162499082101772649923049002935988296372114508852194979691641491287616745426150612719527586346143103848410968173426904881968998457237048492163745475961258310541388249659938493571457600246038136029598546600022415138153877046008737654629550138294506225308662690530835569371521268869679901702245639443854524996343141800099026262027624350143605106803902982964264987314389975414890432644347934017991398220221491041786513232011377423153835807109230354898051846798557963720096267688549035122536571954772001413711293878098839086208692112616828577389221089123460398967850508790810176330768828705463136911012652274007414513911173527205254165417651701419100381687021624478178408922359394461783043377354694829167360099755959719412348318741425954538581463484942702156372000295017636609284648689213900280155184024213664902281594883618596641685228021874698836590722712869990160613891163380477245593962894452543145659593629723790198479413861073301824556580110446869616030465705001620443489954140550279461937785203128939276920684161708223926837465804926131033821489175411963782595507980257512780751815388915741706958415241250464710948592661198005092829472096808636392004713848123218478419407285269785881325342589241261040790380177893319662899798595880798855800295270663750822307852557252060714242366994590719294367152311134831350303487246938829330960360587873080950081107036268344214316250611516755466717625581235071110300103294840400882896601009907243128021915960666141435366370117139275654995007106544856253378804585458995632596907565702443235014259654896237408922823548490530680055092606340245989427202673416110590078202326498070618387199429743690338127326632006025661987420148555656051113017894907205922704322615662734471062953390129994719930273021183312934828177381853124926788234477392278643344841336479172260835224558879857290104420881412110882382907461504602916634951758785392090967576541304567664597928191978977999148650577597581942348041080359354204326041608337260278594332363881427824401774750191161288290680982341010709594385507236030194150610288087226891375677413308804225104629771429460509408175713458948198312383684477033395616704424411467885436610618410994144835288426027876119922274372758550942542084205229313908477724873314321480280662937227409637006214351513855429921477298182076002226729899921713409935729373746098249372653401819029173959506166786752039439808697103777031610349268723980943969101922662682083011057105966692195372164595477782874025276862903512519193742699649301774948862194783486060398419287938799852970994158507152028329423137560501041953717122834751636915769764116445944201441495847302557833114428763928006227998384247365542249587703600595259480736445461719784388148247196032403049935547734410997791203828527217258576661593357411395582384114894761373159496021593394306590959550468500501731194866405930635165555940384353878537759867659611630955401238646015593586195553482738964881630178817706104483655653428486583173314956124331236080836503295752063246577985957775513435643890990186478821813258621221433065264237152648295647793642575381209668557006735877466566244874234479505424831925219394657377765072675270757496773980790694084012427499292193820704131965916923696554358257565005633966015168923688029716591023128784333992393821628833447212849143013587128396643057092911036507821316776803574155805993798596765266716214627415374674502851861042218741520328012888254881702571681089753818793426672317818893254751925600556417034683610797244999269082017246757359132339780436279044698535674339338103007161508025847190499471362463786062180854772034296923052486929056624007545045744232834680906032976832527057762140445408800761255631949416275773959512994002971799176161493022317274591086024581972303391860644514458353447122591655941091918443070481906341264014140687319613006792255515938724770046415962209383088696217995582121125002225462425531339012161784011624207938869127451815090998911001025849987922496055369793325761661526341603093923692623144142195281565007644295152689034790836179927120296137652726951285480784720200352682999860555286179375152679545467996379176375346271266996295428102084839366381298530759721620460578609878315176607951752120458368461345903707493950684204132827942945148810711628620885726199407372570441311883297641785042486221083623394790903800258063336404537949857876046986784090225941918132178367940030993738122878386611662538689907268485891679938717022241673852798875152961484597300162644457958416426884772796609888815556188672285978479975836959244903775749529125954594900732397380787108181711828185013420273351861106013818323731393307407477914321606052095969890239400597221410372985595197579509448122003532101955668157215257598557698357779139814823570858931868511617535026803309857618358913824189791096319553428008714734315396620485846809677665103312085947019989564509471150105922307961265078694102835274021264608292287341556995554724348705668356573764128206873366374118751038052193581944273352492314271188654437160728744713095452984688637767134971837424684922511435466257244983336761653833149667588579478583446750947676037665738572688638176377231057292029549584025100444122775757103538062550728437816663834427910177025999751616015649184633277057349853079134763098132962168299830732039279174166358087770561669436168721362646780766642909284632710303142115056789330903964291314182183669462253746346243215800247968794580072906504406805046409386703518909407609236770764810857021235632260470559237240536830176222533027780349029960754237685047855595516965234437526225108360300123442176204711447907669953813868476291283176653245983678347621522238021295383602857671037765687312472918196227985735368847855996525195781112002918951732927857355849120742464862661775122541577239904154360609023223859642644088395624694996723615577702255918153043636457408764065282200583055200153616985189395069659254579625946057524795672121200414851601532804666443617734140565465035468646684293945088676155287453774371045656871024705753788292785839117489818669252768590744236534641712248366722360532787563810796984608756893369120261963671111811558247330366807162097657511351578024624706133831419395557027287247735266640812175094052350981892103869021053654980037164013654416251476056600074607107745252500029253926023013745496945355012622524820022958016689456242982463477393722033022372936505792201219362592881048224955848775358944524883273368292331919416114922766595695628867625740225856033473646534443648452545790162727434108514378274849016598995340735532564014748068575370881553338565230178306349577399009695069255134006243483517518697926954775803187794654725401256568772192340062741654491357549881265810457187930167159846209387210825691041744591756785228275631681691638271685730190323338590819033605733673089534116206221131838061539437134169154696995363084736028118152421587914213849325756844295960110743886525913346115471033333123912252529441509210350634989348661260601439491602031359665132291605313294122510003835652195791330417666353229689809803556036567665845837095141128449308747066620805595618109309459563484849007248091562035905240988626320567103079762179181524404202414579615295318550331231343212673149136976544921943054354659287498333414417766726125781118995671041712484674401112839555334943679590199278439320854152242907855505158524342942508825461834793781285018063269104863722924297302266831764358590331489151429860435897241236975111069992873424120260157302475675750655610787897440319151186214420235571127088828590729797682299439281876305619168328260734846559085991126574257591291915369531387221272113932776691730274896336531213378293758799566517271122318916891499183354028685937944909143885990199043964709036583395011605140861583576125768579304059111936857713410092343515892591753729686917738568148185356447234294629697333064479182097463000979147268990633760216476119170932118074601642408331088465579606398826626027663368792846102169857557622404631461089875479003417609060551723652093052691707838177042462638630193051817966226806632328114525189657308184702225814167499527935177861526755856559131670531517400069793646685798907506655753014490753715272419749978524377410945323018120125459259707412874278755589294585936748451280381224683929074524384565598313847966149540270499493313063054873656762587025438265388799030943776869681617233190634324650673958174640463762091997707521989690364202184198221635432227211090499960574026448340832370779755823992097042448168306341664792507020513967361629463619454309482139712997971477294926217007186581023725312279620701466552426635192887659371893214204521932717839333912326530009466170407814769765980848624545328717209389227679308913068068911329763128033908549776101736287802160332671046788111690337670009267105839358443387050805757212841901463035249998319590796043373376226899250941810766339330517600613663651395718231448253263572830854165903308563112498153674081875277553172207004219375990007967901363125832649406553901435585673165847506842994001724024988311191433781665324428839671454605916921984988064095513525123704654551570222348677028566939657990139378542134684667292654167900370551066417417124767431520595193326736254082015464863972414611901160912662894924302862053336248155548027453994724771689772163982956547256978095833195247336148138578529877071438905677635882628356832978940382680340183704745360262753710074671020105142623590234303590084421251796669138757780698632182514378336760611417482252668372933138691600048156634355396913898600052243832244036331013805018332061130088718361503611664491471929539080422599740498600845901129931657274310832756458557222758079912748913770706553365819604935567452529399198409767793990082054423484561174942051032505678284735167169519523638541329066161843152149113696107641479006584654927726211547909009077448865609213027781558390578423262594349440261056237901205831319265005110541006053331188398680370123267241504052314705912481223908766596860087846119205341125073925942797705387949336321464971680798874254525299223003000704420485584189420346361993384863210735952445843891646783882800173958192231861821141355025043545231161790550579103937241031599915875591885914906647881676292113446309967298896560750010318902479280763230659090606622926873294768381770998424863425162500234253639794417393423673175251797949232772317303667870635380475781084215615213208831903535504880836819591653028228782128281150035624328655103238675047822042819984612841508557025394674374635169221533301791429210106219964816214778731740254322872435705592598410209836944499774874759846933451925039299337082745446521706735827062971687851943748299824313795718679829364153480780844631992379474339259255718352652013868395259974862911456842813870060382656819563778461418247830049800792358498418251223999269882473716992007909195459212191801548782104091232211306096940152199153505210417492922267623624708410060607824212635008866312316961228906196740153434011183152213431381852391821132144014080755412461848842728791496167826146982971145257980362469088662881062172274393160531230214513086084163055802439272144633088108845585899414789742510992344266527075399723931157805466471351377486412059403321363264998953831233170741667602068644121070707029485376611406969885743314652475936543014031680633167495119225730338485692169429021503647771759588806264856257746011250584571862212253053422141286391189014731050200147826252135865658888542422025356661545441834960376307403547828002500200670795763201443611154777665741810521289972477303319307050952051034704851247253189566619055266315529495366820244806326366837911014158872465854643916504949074026732636257028751420911474171326788450747613581048766772712384217202495995442264885236247757833265823889284199480382709753790412258016448573774215504569741857991757388075690246118406990593705706240116237526491821982213482367058203501772057337323579100573165432155955333570339554704264490960934186710438332914542901163881840296270792949696966279891731168141007229265266850911875019586412117092101161746884871008302738885287533122443420497017665003452304332765401095348534489224607751926058635593942473533868691344819027268024837262346420440822763327674926808056433943194499467307802730979825530664173923711213199307107135003676058410214594098879824068033447756070163833887478012731605038674009760742558109562634737374252499577775501048222160668560576500233131243275449261631798062617042133479440463896332096781458122229526877215768762073007162428245335842021332007585794961325504104041368688692793178658801178308687706591196407871662743385357062874248849354715068964325354467212432054851448078270834971761406530319022058273256713205540438764291439388259074252893636306675346379736679660310989073458621433382517859720054264671332319846002241936492557935965387730958679058173441235321341681443427004010385628256898117504878008284173053356371888879232768855211330176724317625087018754580021543467587652693274539199105291420980910614108997807199459182037843164636711403526095696597352694793453443906616657912110645747177331782485260455320899344244750515154471242962667276410685755284069072573898079464342680028879730109054591934209038485929576492419802758538876678995632935730133707976854948821306491461259098293206549289098534028312751749437927724223031468491969579043741364020343384147911999167406823988161816494106977384044880748980256148430526927478366985269127920924921248971258939063895111052619075122377811542455617253612108221704951322146966746099023600701516758222070067248803549618566678749778723748557740906619799528239772768828336833482319100658035445664009735377134784104472172944420289973242804382057160274741650695391528352270095004290686219589101630491270945226734527567135582889806595107464774381720383077135436998085356706618198458217799083935407844000742476335387218494418768600357089020968318331831494506144750720164146752301316599848142775401643107498404787964562341564558145465360503226637146526792881662945834164433014251391017736604866674109305299415016882079874889002414309565305975164080227309657341440457121781650560127704732697044296402319332238261690175114550071137349118357081619538039808972070246184098984967469349765419493060933177852265462332488935409132871840319437489663146871847040260911944957167293066040110350722158201128761405712522897186906534468109423084394463199125777086013582365495048479519419198594448484300234337372346030042378446815586130378817505971255774266812390685066588866049072873664866297631620411828224666964788538825776180940756139221491645048845823711257905100106890801918679265558188025675166727445314085443723281252241273102864422693290198788622522226233533484430337597276740311005682685156568454550229805702291645931629281533996608834932811095837317484064854515747572556711007225467324905198435219461970501430616609469787381141574541340714406169515807584161312553007916753973292666407546436208449273203564167140125911132621271754003823050828854159080349827524876033259038464569729201994743952912243494677411393157952392084251206182592181707970369460956808179265269144600893009063534944704641572280577538244692756940123225360115131166256766797841868951490016877822455618423271864996155559501520402001208834253486985299600867001865846819406432189602043428239506264678576449194994066008226091323192698789782292420846328179691738011007651328463473287308313796080908283615889566643314192826463506185087025306822058484745778429072110954697360567505084381902382406773969164080862092442793158081245346082229214290356488266259162778657666060978501313172476879430658493813590811848494760364936547103769323451184856846233405011472703044835700451990310428625806739445870396827627997077333049012474743299231599823030246899478178204453697157205852047354294035103072600877998081042998652922090409856723805359276313788099539116683354221088355117327623680139110663748429972405887515474149112128287690439857517164763076072555252882909323375300289002284185855628258101928318732697506572460521928441583903488967768339057183575535274284984656747365907064455151101374810204271399620051554576614668295892356980493709378048775719552962199896615592949869450426532574478327860369037307193634785718727614860560592638790683701928065289947557868108718359355761621812158688523478573935427360629215258969021080122786761486422182301553384998290355414016963762923819794044919353182918594588664099152641499262345181366910159289631741101760567244990033661460381394769172412417883357381784555148995975837982691282870048341924427664329036816463708455783171353914126116687117256340342083350998640560897632145623187010701691016564945982068689887513526700429032364245574701057363113815712418858246417548417957985672253174992350381735992740722604877833628509482526583047300528639305302342197621799517592568712974176437062246270564470639925170192106840291869321472735557545741128975640146248171087560055259837343476992938237982338888623448083439105522371587780542898001020333653241113307942529089963265305850604887650049644097111184207388540455855167657560993819407513552325996535797260548094463546399945402719336606981410858486147726803475950397967446992197135351296212766199688370173845643037909612361898584747481796439924522162000792264378058955268744652500609572170379811845810264782255153655898454177080205765982422243951608797012612723693886263679511653539699306045214336654461448602544322361400907935635622108142972976044892929073018649508571487275536425462556975107102461175354540261294931934121153992649032686767210160904304167944003307474734742972102081609363661389574832660306733984818574077279223753525106480363656060945255038703652930142430312017423500795738438426128055434575382721633863246853966642994448647661159023679995863445444205689052691081368255273876684885327960853511043926204377601389095796859891548457746152638008863213494340995212650670007366208039631439098959585646404934109338073495596994335981863474457051796440920359584333553737104278180494390404078912386462933961339906487029654951867870714111627659841687086112961351437465674911301266754184005182525674841247157692510240619116141493553121341970479336966371315303895902895326097023881665346524946203403637171662728130198288994529822987398229016455982312008051633572037054215041778090775024587955553836427898240841553980709269546739510377955674532988166629130577930887230894136985363096735549963217538429520502682600028884584247592999714661907508606982557786000180909067449062897151767881940529601610191051103269928398546803820234242085813484289309198903947206010665521558551599337519124152341722243539198165318479778760915510897952270802557317995827373505531740683771038089571089192229301830114208054746331794029874019563611234768413848572954400019359514224757129145554881058097744130259327030120876095849047093514687856035450593070635698307682754901962633482077840803921086408416856669288042058980314823742528988479599190587295935574117809489805462198771704087809509748674668680217787201205338767391283780079715965364565651424864533009046861294158223973459108209147673854577318113545439845841269176447402156252050986455662761724438520052778342045255538627132173169593594769530302720682811151433967049674042338137673974528160830388070708446422304564368965170771355399828767004557070841916967522021141935070071141815990019854195914442179215752077151825745533990378787203223795286058995706420374404502134764200561635228327209208067617520105093422856381392194838483425114235192344840707924939327158748734764052470314279786985831213059944583270111213509642761294761009650943414553238224666552646907255169318877963492230952724915955491611648158441847605848246590631694529480963053210138963289854309365874597497217772848145986974247293443518366682008863623617715041411801861548655177167212371193275513162015726668101886307392679297076664465792537874235284853255234644953948450475358418117589388512281225736274505751012888145498335575500687744676361157746545645980188905620225156663729455827037953555931794950170475204325715633487456236385989776472153941795421952569918152739072396709463147131508419688813566377788925959573591670907567028600030146927594783569517108683404242753703638144016376656867767398694136920777724823850469538896229630619362816447543962313676863252305118850109458269647786482401572301987121008384700873411632484972846816400891014054416193924795630488849917486392527125991371052510094209876187340922028626448506071144404147313207900131148654986316298117116460896556258155401519401066561603213571369091689738816586566758457112851941292987309595987378054470977246036558916924991165371839391582012150157887483229385493631182177008745075622143020635867161956337708283967347703089753658485775868609528753762016523819851469734872362165161635066380877607600927363464273089421385877998552330077791664221046134933719755131917550775327353169077594438173058235274276418649109979631146096996413430924676725151255873905066994947522758654215009472016908523094100698262457428192882245506942485910970985107353493446156081941914371146632004301841848799897565022790472528857468960840654802890810211130577460485748509374313911790351538006710372121944590357379582484665211358531484133622193232701389543467357100846191170088779125839090953542504036308835844598992460098798675726522997626870355920975394496971357811438116384067446502715468266838369428124516681559156983419973514256642704926064165444071415167453838379231583731262330976332938032261604147237632786839480147038174688792481259939095780508319290006908556956918516310191229359567360844179365601401124826741370036026066322427214555944448764507812840099103587513942111982142884867708656441697697904442015411863163133824530687196624191796065401494586899575426664018242570397303704260373673681148133317729722955682148138872828262199285062255000234273916211741527189057785782165437207844821703941995486781796713852598426996939888888856479845588775086981371888042180681871590202892945349779605651367782375647232551027962997983745256091294380983424305436225159224372385991708037741387763555075228880537710881962854568926919478401188628953936299981135812688044613723433747282827104888580016176627021976840755747625982984796615982369121684043747320029141035431826509890109470896107294229249913764614482989428277181881982304577584936693709600129866066108350073001184566399505874171505813458619524170336981964282518448014525757246609813189533281044563484643742176101271994242541353138905777143930030410454753307269536604685142288566602247377877971099947789001987220926702158619881530229007093883313431467975921697163639768504176699364387737511395104227061835790674644881903235743275819778468591613040177332548444615428127207520126964427757210698253062997513508121204143724009305221358609238563091219731521799757753995093449283174668558077663066238411010370451846370607937382186039855936284447883758125201200376322399561587909949526975772729069403792734356008785619117726584041529546584312151550297121334442760286647109940065876616341584581854036852810644389538112421536354147698431729127859213210166734466416929502002759456276971178878965321090026674455969359833213434530012419509324887809370403441377135116413025220750922149108773087912678961133469081608270855537339952544268254906579480015480228529664871863172075504164274076039148070175306814821145613072594506331745238760124880122855679289269865877074862312768194816037080634036013548460051474636586179169109793672149704275572216456582601777327580770399499894169212794295094459472521176626976610066253743341743572810696548801993503995565465474898800882122430513558362801750026205015479618985455949795748186948990049927037763882670394751641907173358943748794637014252891068875751300715051487993204321210779810569219229047671629985713365680853446958351182409084552681258348349210864390631399777908164466670870748388983478503654092762386192001181838149393087418545352768222802326481613545341901323596196253861698793596548449445192589928645765005831347612581204244606809665584186069802821333029048267622652861851811732441283682183146681550558569171841935669716453441678482545368798176797832803674220402372899538466441306003279089210864974562730988887867843459976446038002321244075570950102322417126501941944958320250258844833318476889995285075966752616787649774610406811925677661388876208944540096787310917702178283431658013517895608736762647629548486814513683636774178381743095836053931193895040825183924435920627451998793710232598174617901547200967009254179429232283500075855931816721365285919364068884023071109289850722952663591871074963190661967478460341880653483244560889904406422539655875289846088043414787902075678398043911914998298440735162631171717479033309499288384216195338461065394160312694036958699911592796287874904479131566009669932169765750553576418960455528353270371450144624227825731321236191316708712906144887481234823791898223857585356537243907342685360874361142842686334805743019488175546501284263365779899583469425307435897962921620679806942540285235588470969480333840475469187512139676295773961478222407400739539609123568723583343070243151237487927428961453569242198861854503795230639023633067655006768335853577479696793314498980296764758178659285604480665926330842735253301219914620942502503219903744185963633689923960236082090112091758300744723390212306518092063900766780908801727000471053140786484814965213713147392978489860643509016298781619407647657665177517616914535450635854337833030722141279101436006485835268220326241918585872327507831175439652477441075489899189820080820378609198288277468501315141844696653821454088931953477219776115827261735893584137552935057057001161077962984521350847927005487168964858618754504555038607256467125985879754992625513393239208139861274851079566595344879231317781929021338694865560647982228192835151645117036483342424378762831308601992215715235003558617560364649136672150427093879513445355551603394973325108947631505046819723294767119987463656362461060502847025452960180973276948594241255318344802660890584826782986510809757634540427696811033625055676504946328695875205572518387906140715527956572824600415410988576146708647926972738975005885909797136636581458575923306166819092865406646333619396531620235947167919061487876583536095779480558625776192765859290750394288392623694119851970044638830667533035572074380391674033267170132984619226036270510880626748091290801492995390067502533068912189641759190914348117057438914154708398023010634316419605088629521839489864267778853379133317696198790559935296531511328575346108092820517078047526808995328120461305063350654315498112836326013709432830494228749901333537667334576256474529692350452057586947357754746507861959289345806814167784447743148334491178296669479721140894185154669200326832958986161770890648589888650499129592661195724970123986810844523259293148381650928956359464062352769444158401601747681082218882453104014407997460159926285353956361569622523243446327098698613040614514734342905151558214125729596833169332305550453283913070576962882685423773836716973934393694918453400046650799648304030134529511424786258381219527061585783156588182664922934774942882478728489113929639675591559920654505648474633161031242514368932785282636019285548725103155150462520694738829001102265633017599607967805488710684327230557508123697151367745131511685573525588859774934178071706087631773231095776268746905285797628003704916676052375906494871870644361415418742618590208462762199340904811285582114386438328262552838341165550262866115551041725024712130148610000753073621109017080112825987488768525675402687319990456903137821305771919411867148459327994595599729381832867155748489899403491348548653821187620887549656679955141895294991760658002846315033449073749703147993069932279411910585438606591720690772411110073826126497519737911480294553255724514680285946016439971249725153725462200554239385434231392239356135552136110080856584590772038844731829938471338250234793127683293450020797964776673425979421945912960672670013602433102650288780919128311089979446583683111367614301390323800791285009662617411727959982520116808906748233327763578644711455410181278223422785800552758805645924599516886788498915398700659851858268171267222823934544756706026651823093265823909845652860921185899232739519497388154966445614806663457007803284516086732458523345016163243984626794244562878178592861092998915800649875671876234217398796361683526208659119810189884508294035382706675852930111112935715919424728726067645214737256004788856816153060510529834768911155385951376070171000052365083105228845553127212002865829506980742188966301480066439229531480752713424587237992886696829255487510977020248004275911898281520194972141399521720255532672522506727113293330722053833415897004471392991856723759924880753733952480809337978705496200823259749883963114819330824548296327363837814115005447714329126066290529522669974685633823045437487089776252057998938916032539247753580383379981414655432057372168663700288179888326949225430409414887735271183222400944082564876605905265260292869155952388975366213286324920337591233198339617383897761160580964661253818324412166639725585361649880740786975816378643461514350989540483300785835135383181678830263632536475993386006883199499543252723586250627204819849411561072991946002848971632281292239273239345717877701485813428325882892861855434437247737934653473415826738998071885063039024342881426206045554852359861586798912157968087353338460248311423168068587989081469048173692536708416128848447476553109542096377718603777685260383577998143465824406431809360218540721916884670328867344491702825230012328585077711699714152335518491079552249277093940092120697586148417138465096021364027107950436611899573870926926377963893451560193031514767406810252495360741495090084085512623662017364904631019076662136656567090433161443600139450249650335178707570806859015881094610604110372488476555105091557509751082724393750543915241599725692665943268699167343388278315141359704163884520754910625569097318729263466994908314920969829422628604675301009995218715978863441580283076616032671252218057086883344011509477559087769430232847521561766102561550086423578204216558792430406521822942101881646327398028836381847971666092549652369414904238553093800963382114957260184176998812041222087346714377393447357813399238574260397014770924895845902757892525617370447666728230750961639570629802605718165703037346822087378349572767098817384377567617286806692743657954174446150263367574170365098643607332504666784047532353993599048940938113418262462747941598226506180308464222040876693444529436474568124337580375806686492783687252178764703880019377314672200833494616489152235540663784044133740661374350570473937341439499799285028386989041998821823906363383115692708242619616444587263229051253101696969979861875744374775352645128337777207024347743758215896803877980015969697904868862769974965227740900104978386567202688361461194052613243005514343270953675687168406556906220864001874777406965836262474537123640860144293171336764244172175577395833268205078093663484894741963965064003701907808387693398835111532288491573159112895179247234987826963496803140320497865382560314211121881657086222254569935290252172024546430254662842741762678887942935474076318458426297673081153343640584538798206341688516674846252079658465365862136071597240993299948244763574678745381926469685365736635575043977646276631437389301692292063010885087231280103832172750500229716066640418052683931011700708302449511230215552351190653204192395336250793840589164055401118343477697623301703531866664436219658477650201531433941631417725365572818209347529669789569368843371995066143278559056124164546062537598804277283116505602265872192212844845976635399044123112514937872074904699630302534254178682596479954554818698649858377534735125060815753714071884899323013052971425898612809401094589152845367364762657834633682830931931671524711119877064465612445492573836375714192771727736427061982779105616607294703779041549415590777361705734114944221902200236321139874607284978028668781735696370898032732902461104806406300788747355352215498848028123408442282353252034816677264529689340890350094471949431092719444361282859895321813264080863026611336909011165855052625122257256136839585281604220924286810250976448417116161409482708192752716329389730405674097680888963995747657161995170454554558927289519479933366497631248215822996315318230962713715860416629080272747345197889567823240112440008549618231200214897193985455387917600189328598041389668387099660503497444122649152026149519902168180678264325048485197529161155827210916864393621892967912818905650569039797180354099042975795063573097148301462146798287200055602864795658177852244591144648569323064949773229930303962723155441174975285305882372417675224744916152171208178276407495752800253051228936588128575864874390390138215976846084733502931991204155815009164739886505926655047536492691448456098497800517091376313138585807905375647037642557653417639237306950206871260528263334058734763984437261839622206741008307927184717965706360521534713906992269142373324591946585235006726563343327994820876137129701329664996637569179577988652768711994088456111427661723844849747778867658486152279841131873590445305641444130941725678892114040647962203483249894836851897774002918577869067290341922022834447949928522879547068833018654928379058637929599019054607590362660741861295706308784269059832372172241111517279888732138080968750513880534999972410062057830259942044373199674662725424220353858055232023188697698613423924512699195664387571457936020935863408429990447191547276120035328789419064483435691707863608980289805960633507654009332526107799247622239891175265814656203107126417715241904385789286588015230918422791019635135771342103497862354994515886062713401649842959356700730593425281134326945197888828240676303111357783392095107132980269957208182865935186094754551215995793885586943672863649624040884724977152117696019295108695330448221824824663600519492693875756955138881579197672143923346249946884201922296420162903881461104541987641538183239540831283478785349980743241144114462280110945187470807482923714711140921419176668703693966538542618273494621204995393635617232509557915045207964988607705895382860631223817888422303513308813831993358384152153071804739845338315679731991618302965148270083693145124020619783038511848974962112303485459511702178461428705055303366192668179380087014948228472990625112324769506391911738468527044158914734161535637031675514986889011826545094218644403584793756199506089254863058647403402889135906468819354140651634872548813603352003982045167457147671734805157332304592636442466136186786848904036639895988681710584270545868030142567955203886800437578220467246698817674329309885141216669442329076004435262011919348298145497948682042962074570694710249165154801091590186352603808020593184103816720367840006026112096443685778277228725750218373877330931022999846237164861034053881392851183094405092418129991400108458636233883713538622261457302122391913465154390883023471426386799608820002668658936735720761474469539536796161174427515932010280383746152433393152795074764451120585274131861485529664970602302791771759886901918694843250936834353119344822718004085049902559685938928290565594323912782212403994107014922983701148233497454066364758725302899569937347636611433103625967447535584171977229499667264910568409355014629517946938858614137707655076469235647912984393278846622067168994051594410924237846152782199863994000400565239026202316200922876690238044768572724613990568996234684249788758455540598089343464704835979106791576171643710608076051359039848088118840388363142245071502737059813317408578789650671072355540842835406409249504572707830132500995242787966564034252656028890275295399194127110815291449298815617375971474491460517078149233359116778223582717313315532288088348162010950627756669343810136551851220134485955007473058383738420799104449838443164746621582521947197105043580773569599249799224533230863002254347422491396447091462589069953779421582833196393063812601291143337558089622971203029510903805345990305427910127331243564965996262157926351499728875967498615034409193219977850907553933033449811115051348409645200176029371004643080382001371047850815965224869264978784619136717712255437557752865162651735830294834799733575509693705393344009285107596740497510471757340049830205415287660771670757928837423767704681190399240618229496813399060845306430202886226475383911818567364977178424003413066837576735334888003529012441929484030874713419095560411285733115783223330802237675323428149800907514351267401869322300786198410130373052267599946461030091428833726368866722952785556624332850965861764667192142401321714082354093922397159921117870029093827161867912565070544714528589736207590576094809281357310071248114500628051755314024308306824819744390509401495678011463772182853527983124828972290898253165162317233161221497709505234098866910538736795012211718272999507662537220319169891146378479197426877606562522260401818057802598599427586753977969668800225943023205708551809358702580422526467835433053406975362617070435968632486707444371592254976458369110271540580634996493144768058029126721274042009746551719904638542747426584266704471556386580218560652680093060553479347840645038340730461690580372309241043023371832262196166878920982100130875170666402822505540739857068181260874461026261584674173134405829658046096441864803002156679401842097222349580656900620928229365020589086435521985816486829906604896299283919872916764683105899534264925822441512523257055547806174832766190146224807055533968662078587085273684001850375413252882433874291456440071347281295616842937242556694477875579165871319843893707398495263429224032755861290572063454456735061685022172535876961156466856058050854163078768881926693420188441742106936116268250032774399043804124628594520735484438050815553206071802847233076481365804691703125950231026743278807797938643204554102312835360091752907165476243069998998298044338030241895155509833892256732133317312256761629800360898516051180102214856952051930191818647484686015551095543735806171235994978638102180600155454475137732956070025897323445616504761263940843736368177892996233661422248768699381993539570730296246340383929271015595965323499581589719953229213986367863222810107374160438047326705059114894744082298041022460961674687869191393304437557912293339352060187488533590670563126970036522292412880373520079336038534591825351709449461930333861489935660902235533863315579700514388901121652310897990712337103545454487347029952674692712611956962099710677488858382379732966613892219151157212059429748324604977305656779457557763111290708687813113646597056325327803228854117541630735470440849055512506144231434729503174567489491570727669150813817737435764325918122885713871071085128532182518186861980264455743042517363530637083221723403013830058193253912272204689677144893031430107844495998392610173139898034754985359998256483707236739491192967578066095529760511845729416151218342853419321754672397821694381880783590280856123264582487327740130982882774565669348995337843159249334309489816999210658100761112517706942098764181263597353665771365293643181426351345922279329806851802200662799531479510500433022323995582797753728181312627249671876533661388585668011436256170715525009532119577757939883919235172231607292659295227804259864404146891185628635963422551371160521341675558864674067551868902252929003038340232630594815475932925739214211305979950436824558980246812494114955282351501224183585760566479519415800091521333619813423341547639324728135373931438466188084158571134880760394232504662409799811167285332439533799982517713391692025214385890858748950477980027543459932063124063602660259145449107193686997982890682117302964465145221386916585220110985367482398287966778084820496697237120854098541864573898565924906283900722337006857718182933951304570111899289035291197222198484555057739852902247325698456377502459325622627115602261723434731375508908464240830237099850586999135717517322001681701386777051013057018484816575033667021318309682254663841587315448888504308858038649820422006908274269401795737945440265149660760717190119019484707617867398432718860635758294079052302211350051247536796076828910715388347248141996395942575737492147540137537503594501743877999018933057605917262568293520597675630756808213258405600154835473785668834642076446690154851214207653918151294894550944615939107833889540288778590210593994582126711606925357713204028951754568755760028879807257357477139732727969713451804807716480317456012735517879000095194114912966427432507109964311127973901161896578835126682880888952798772581943946427490383289556807927782899673114759782355536474042589099031017808768024825220323414706711215317375084572267412080555694738680841354438762529410356174288222714182670789567052044580252021956488800159307720123497266840857590945764380470644806217320815769907518295784284993442497287483061129833233750161442663341967018249373325749596869484578277283043660134305332824570483557834241032537924390268824346707826121268628034709170946815850639211532796116057516471436497934225500552461847827053521582086104550872982974757079663961061626394992327735441690442246695493540994498410279935518126543787781575513046879974529379290885872835535530037453603092331997785669940074695546933467357509021911965715567534736688843528589104732467666013952123702904669156157844534455553747156402392610238130776304385863646039754497649764565155794838379044540127405225864371113089717674687846303906057762751361187235033109260777393580122852831449153439858388911536147673059443142001993903913784449731981745088914063348072467574980538381543780968633891522317936145799200344805379231833975553648826281068990586014426634275499422811116788592764742147750826308608600269637489926103737179075983728834986542085974355856200340430582411178943389392737941228443655831744878779047116207918048741653380102492972089690236584026950197228924747411720993386353234964739425187216404395391659384925529159051155430502576305457251000672183128005283622607786604032312100064526844460580404698151100856353437701245690187842210478568389387566864127314071508530142564487676639365316963923671589173598783008369521608124308935187840807257352009989482562299199588516161660124396406563811380674062900089713131519717021984037058198604294274017386557724229454688641222382773395239183984417366888129496960052575226716398246142746863126187825017821505119378707347258938504566705273016621053525119427375768506327551227406234525346139929794913315363205681725294319660307075919031935325112425178532704137637325933362422640134878087646948271179108650618671655008271433205754352640560207216372630209710330982716468374086358476756664034823686063378528424507297433123311266047221992925246861750409358424643016816509937224740996173416721589979549545895821436954358234739506729456344085344381077405834260748583343804394665812090395812338949302378307383476473655641745702048046799803992242411772254650121040147800920977828205884873627204358062981827045924574354548926685262865665161620292373412334133617857090058550286421364168942072028865299591179848022377854954714342038344198164770129399652033887118107083353225607673314458622762487105322819197751326860282483137736555783388980856498665710767372443729293973569335420686376773640161871167543256409631986830183949575721133187026812166381694171765357962778289919596197808987801770602844464971927100962199722716905340975748228699354533083295680954988627355888673401797718370236452069041059105761095747453766187395150338693688929289535195726034690533709075644252062965570902982155576222975343306668052411675075328751351757009751975390931259658049614569073090666372757315898696556455998637210862292933124225428699132241933598255554733979203842350831836927091607798828766747965483590288782599114113861842925115643127054240298317694480622317161951774730602832236262197826504111930856596986857846090327035115539238325581536897419473729191931170883487791763614547484240212173602762664698663051390972539816065537631805974238033637471627939536207648535323138544593564849600855373919357134479346461331247465305757358325026252625467352155879201960797828464027498348320961125421961841119673572325351601873412647280066602835059758925541358438112360554630568242972732010314796723363133180534858335456146775031125429989996512716904252376485071673412165482805311090035253488043454050236743637487605246757181642341043967311312656839844088821405624605550674604695164276668620370280846138814316539308572313447195060552746553993394152079272489212969953727744363263963914867036395652957100122883004980770461618815899036563677302232546131073302009392163718191148692038735479780600429975305775487941964547208375281388321063376212095579182334414556338561418889868671722969007905042917555455738100793203975072094534680204265847743344390801002053633649897830869917000837416643890619450174454759247733695820245719485795091032864364759557715710312623198504328437024031793440000107970305279933214784125021936684528384014365235525183148776668205821201181825632244784157203666581263898630716449166707429869418944323734055769383055895384465141077773441608991535840391692126002717632850655965452333309328036861323320349645044973060905213309480213694124114323379731170119646776217152258327851830185843768604838179309836585535672475849513389693587760622118780192019094083762549434927349715160220130205297697578385946523417841414279724004438861090062566991528308082639107235354701116031957434411049257952040119325456878761697333902872035451349010830234852496063326787227190996499202258333794988944435143910858053169517270545541883090451033731974093128457444168520643296051347574728756756214263627059165956304335872532547559073659154082479162341397782897094227754711016732759606718305178588001010545338882502521603298378226847830783894146225956994380392738035310838458700676574870258944740156259195875073990594284905065404135971335901583795248208037704502057362382565557687113346012259071458056006795969743228473186741810967239954210735615788700666775166936124298151044659532891203892283491048131044818756413194803543329348035924971120351081213921951232942539688655234584742520205842625942781194517052098847535437480307247764097450829298758380227797570991017418046872268232193240712406057001448824361230855083462681721705762264201357138352648434138176062879481356609282555078502359534923935445728428962325449352162490667491034246168047587244178359439724842885059991600456986214962279137912095992423450967695428707143119394067423961819208512840415271790205688493092459103304457881331547921363328226075404712742328059452387274156740668026599285942571492376639426998829398703630778506157431140236938504509601311423242137317931176482622300777281598061102918041707764414148920924895436922056988331061846364628641123038041858724082276004293689003918794593060681889290074828555485084855412264574787939067435724063157412410872847152226662207240846363282310252823773878129110780104303105531103872322004944059143944812330777389852205049789939256932583310887901750102011200057569527556406929231410085940566386264255998751923847196605503737308164942310116988533827786753066529972759129526295180031595421859824940354203222884669673690312355368062343917176515271887236237422097801573312718124083913188771386112181654371282251327559595982276439651250775931129547430533476824955885707679877252072779662714005505017540580748635981543006392845567859350260631093644424570362378846156053455443712961427770613466659893651835735021515551388760161604050999337635767276699279661411311969948588782668533241321974538191300431787916286426268196187983040650900689640148715449229951776972977779381939822908126726507166220064696787883474557330308680934908199057134693405072907566049630600553046364023344820177121788169155371722555863795645740853815909879739800951023151418343530719071364546573831677396900233606518955981062249688337304825142144329968412948161402301273782332904295537820498853687514081033558367203742013093220407065458923317014094733630534488501598941153152335870153884677017385672674376893035045663356656914757042997812280298517560626029349445377326273978380073144278427018194022273059569338143422661554471648556281258154494440059382998533319654098940770021061298321065638307519390479729727122899231718493005908968495864166909206219050488154263484719688500777745074889000494094582766815526920576809613582558817343262957249781290251248165016339842037274148093027926911967787277301269833211944202578156135623166493049332050845341245940071028870930298083153296399476823794272540601700641402885317323635483276112054016129722330353595355464499910414017110274167992350366320061281482290875798946837353727426879031002668555852384523709134866989590369283127958324662945755348324993647374683302738625830454271990157231062094221752032191494897570071934338410406863589538384554291721352967692014847709904482365458526817097347508088328141707772268961483875403102058973581419247287113193393647456662821112171771082870556438700389765742526061975882636477117573675083467367037911356468423740372629362602990106190589818843747587649183361208868034678764520270931315458237239994645131702597666686113516527957929508653261419057409798477775356334894442745525106376060128074426614703640067367184696081754629144658490099713823025638968454592803117737992071932817962163995279276011078245088545918706476274552573602248693369037130942134820562050788006454181815453779235815781872840547909160944843580587735761841160115517145225546818362024643501559044124588340957180081936510000987445244728605632508038052399259415189509463485745819623751754223689246356382144404887233020814583561669182932643760163778057097527719296904536761612741463136574638571670414263354326597447304229111227222706698201354220015729200568186766711811928962245158776492761819537018277351708260182053163314123658674608100167883479398827810039066709501161462702964582695081845505149393084448482473096776314731542546611810572221913257481055846898764223511451071391028724072832145954186274063946056895832598693615456161155003036493277890208332223417314697251512714006022444610495757798449962091345708908564728956686786591495419536794867495313318562777773812201523620066374100445768210642586796658227063913888296769887635737350504989547175975726170489685700615932878644356155754237862903890133670866357476192895895204517377130990222215735622785769618316257052765236359275682510383660807259417805150098189761756565590949825351496355270406112629180548534860308353213399131616124256443919301794212394781593582416389063062049704431646752923551915966239505475932267205447121584694380173466979947953880523810643710044343079991730537941877424866022893763038576988526710337862875722648548516522602518601974119497581709229497568475793657693168812705410188164248418229832023330822142175105634162771742043369580938020610018112848854457971481571301906213085436074314243254166351293021605017776755226299607453486170837294193631160866387638705498411932988780443298449205871701340579463933439884352510611729373810119704033627533624177860416799878596078001497599097379498031587833836816748520170633309024636184244984299399058564798120628852514378472067948671611454422406009695825442162907984586796142146551314132005485554029371140305584994311284162182010095743937116368693853880954690737333433067819921216017967188066350343688099969966568537291252843354354207339787131660845898581528568037967513471411212481786656437604726662816045656147278966981361057364352161591153312994945747995610120180264497827828764695981683464769880167803811166892518479012593137846927992856397795078966763772608351283874806122157402089336431409950444549598253365995654018275421504766261559958052704018759652411912559206762174097534176707058476838459459337020008187224817250443902245292990230321047695759947215736999111691125100224554794737498603785288166415640161404313331044490318011105982930453345022894072715872325704091570806335075828634323392473939662686576954337301142071678923172542796451875536658860332239294715810182357409052313020554531756794664024927886186619657923113044397865992745830025157395109603751061463309813717358247339718346570175310975547632462281815629168474258708769068885823302945036221996988417458086307379213326913686834425635577066774976372009677553843809297624128045324071879123603107245882458588977606351513691944682049440389173973752671544412902828179155177972950973780623257713972573028748422242554937264911625639630808806889389150273245762961084332047988015958810546721812280886670764298227774029723843007684675496030585625057023183601614038850275361819164236034238690081381830580539617223545982932464353210692121269316081547192690182338429572301067009068394185304924751176981883981478340893216228028801735633720561536821220227227618167577717983503663275919175533202747465488912335186789071117965755513563921840901348486279987125514876537238483433953283926026493841325155299697148376298718440210880452009696955680485011679227956016701393737336768842831784875973479649029753658437269529000595571566643965814129242164342142387839076840193699254378490414690966389235058256497964103704204472899193219446013041117647808372701421269380060498758836679245471161677303493011509178002565714585588491769951340494971053744037343884706143843278383012889633010881669751762907457329842906183512812759822662896845710260751672796492984921454363308990339194118242027445169090548343778643146217068344882705937580309317461528112868415774097160563988803004374715488508760388567269675630328167414896944633984726588828558105762459426382269117547042171899683844906656962396735960149290976125469502605315047233819885096699983914340114269726315141976496998321068136990881210388876811123071238078677745847929726673323071103218747033173000827613205232433184044006542262399879352538166477964456170571200178889187314055043329386254308925379961426059105735643842652732865694575781575633979959857058588161335765430332522324863834535771525659029492874097692896705127476910028307680430174401691668178819272263053199679251076740808355974884624489304658548230072016682934021724896531920794974129074757444830549250642333759147565186152214246842006768883528202331463464032948653967835590348578365381751523057482684912196313965300005392604949805993320431402474353510453208972197271428219091754532456102611225402621723884084792346240930660235689392966359374710419152522331007148568918838032353694073780436554057237322022125397968766276965961857259917400277238557819009494478060332381220140038204085732955164618100841437313910788998957684444913472193031756369096997658250354958854085366260091270618745267598050818651723356832040682598592346948629007554678973704427822376408876191641524873521633077987799086380346502585492827812949729155412070215528759825823074863741349281156185724766890628462610243017858382102284296898006085611803795493337045113852808653398735040422791372493952665953589810911453476123600449440185972211958938467821780160799981402703050998639109289729701701620980785527786209524609440888608359699557267482293091744819324945669383670764298226002372894156702012870763972120154885320550873606086733879502768918657526316161673102955386514526975822168662348126367668581052542589933982624222488434644158911868482195810328453577033780657497735189875904952977661875378771949553372819494085255087644871052351507685032858579939483877457166633574550125489640633075554624944162584644813119638820810396444124428335902151300262995933089148744442611530752821000403777723414441440863831391613563079584573500998481833019773209177414126176374700994387047787355769659998457612691847762811338551960511674534038544141626393632329377788895959503294834161900216395423540913756907581989502103594390101054351320309216356395435614133252115476579839989125071391045133163149222230551612986011562256882590131977114251694107969778093949189698589872954271715443708339845376841603436317039196080835693581605067079859855034237631061809481939570903121907027503971565730829992016411298536954820403486028012433329887237311280760716840128385268432792016186752122409932853989428076543095797611165481407062337038160174828352300811308034305730260152125388876153596402582277255178251944900411719646622062117906257162627268949445700178953685752171546724810564647910104742456119693473857866015800414816787769456076779050301292694017705943919472673242682394836709223403439172082488083626641098673111068567843844223328419944438275495147535391141286850859952369180434665135630885872889975128704312471926935902028157974417033315243556410856786321283982723903409552218652316341555151371568356381100047297850648819197439217368499156574231048952394546381338888859048705179400318421018615323544212644408525420123692189743644040953730597933745142880720379273721737171718714254510028686561577644372304594155774695959333822129009594683472632147442026541850170036643238203901117388484857101098826739565402755924074505379386748959523347522951744632100915885654662493490230230194248392298212517662606484211409505704993342712773369940593654442203525686851090123004553730075765644650167610357232376736016821752069763557763347287652005096438895839224431380147139468211035785993373975760129146379467961288125687689000440364526146445652481453447187910109694769011277511416162857318133238117808912941180390319883341374510083998242867567285285668057646190878368275985971931393388298621837261016639152212817665169616263245479786553444243336852915432571013934582990959987835459823116628578735403273948369320283781448834287980320684718474031461231512688100431798019840307015201369523324623938671003722930091029207308770059651594138193840807279148695938146814435354993424820248084780379190719576202418220417518560990969047758760861648533816600772262302319917607091091250615571669251849637141292114610924779074225755366128374024432807413326624705233237706988880672012387952738229717008214057725407772813896056980371062342700245249514998541553026373408066843054658212107949000669675563942966693958305640843693087937303099823939804582721844508218616382662345835353975677765357690620621387658046386946484973792853243628240206712693977074766338278957667283562846666434006708558417000345708311119239415658997995444918341804535303040967778772325501507527994328536132036444407708733370304127103860430200384714034331828492782219609410163555072076602745177104156519027940393363588379337718213669347813008290606518535014785493134402632179443366145116802198403527589268155287652742551070969449008247967795522357550977079522205939963870976959754779337143594123829382782953732337721314353625221464742182830556619133522710983713083020723532232138861574493330876957901004746111559706483770701954276876998744878438761279798318979041339158269619271513513757690633855717029842692968782318847734864567221737455364819354335443989330608460852839427774468662550350710565982948809367898626550478924035412693081329757954952375619536941877123485392194874525807748528096927362542383484299510152606087696340140688655252258665389754785263665338747173246050503648409588233665161955712944659591647881196539351039085921283633417726054892362650033617911950342799788601635569571611293964544155909574311564143434920283673442009523694166835484578327777303061656128137797767758720642974270585918921905325410012290802659662522475382198170613977027342502645855932061951393312979901043924617123837967415193777947211035347131882745923432917634904719493508816644397941040821608660910824766627518151412646353491784501056943816852951712863108448364470415500725962603485563140199451953987816094947601977118399244112710125289070827145285196567302846917156295350679728787897269375811205579897660114236767388816758414255473028756843871068593909545105721138927609771157879988186797696197506359410191863464457739245292858536641072068456872423590808739385157715372898861258408458551336125326967374590383160315689684766541514283815962945363600739465290723576956344156500845098026533326557801022219264812492152728940337310889410041281321160231292963621901362488909942343355726334329095155364126630068035716141900335772483171851907118174937319634910191176017302304948975362457421979249450262320334102753784019776523513070523808328397090409310363546596511313562046026250282134789106582075791263244557931074398802226121335330689944751366403056899521162540572824453212953369658343109860310108589689576468780953529178086235369006638314430881994940725415698067048944197848530661125737045205690840117660701077079340184486920702780075560025765639560579448583495535611589057724437933802892541463859590949795052650457766235467702465935726859132441936478481603302922199057640037310005730148467385498468836230735107168121971783579434408307715025359009473122445672278682924569025209171966210794042022252732309325655037523355879536902186601072031044129985441802253239704784222936389630127473763799832898245591355873290675724845769534259886650337393206343260895969007153630040865166986768419242900579085413419368119431008697945086662057374124540807528207149518560136919454194253167404364051766563291123518554014899515003776241821186457956762727783034364928401495503199776850072713241766627936774463333853306213233708109387175393375696219079391293887328982727105959994875358061216853674879314697770947825162730177551064587109019498304748794678232717239664613047055076225676857799112571010799078688329736270182281714475357466158528384068152744720516851253360337786487019506781516115964528829874433849720538935663510064727174830408677768476229846825685110244585199275239713715234843032296306676668748241851593813952103927531288274713245581799073495829097899359734467743947875310903671255250729758932428977312236756791746102936788033417376638558213326159898184026213667956137151034501907189561583547292458030312956339474146426908128446728351901855163001214824345311923193058774898557914853805959476424531910966103062986028783849811016451378597689344075906392638662802077916540182518623660679258486560625750346016927947904080657852143278297353174027437375584645344500808457924402440708909774979682436234170955428281305593757512155452098150406261339863389930884168779802910354539449036366313915423191835728845712653826664623076028693621100737244503251541675677715679268818001337495547584916826368426229754814410928077861241583571336732935335316747462233115306885925365909991998274106055615658776505320676420670256754531689940365499252716606002066072424392241737668341286913678097720234258417848275479960985220827384317707478702986149582485724961506912106317090578587263068724894740214680606431957004245729643761934955582214672008351651736035531961366455925056289755048924909013583993490862124348529711103105515013991533736831916932060632361199719092159579953773724264318829687261634867000660213635171376520066875235945882950233134478684507148182511096973765740019020152498707397204356738687202469325453353232878628778947872571473161986296066125263913276234780943298481853615095738529849350851621603832412133200935303858062401821452550806556445924045316374638399690866515751603055388449856161375939911299979508788679066638397142599780518424049556621988794885875475337706240304196682983956843863796337725474435630069304934664796134480978872585693532798752611946938674406199521566982392672810190731392293322749106154234039046780053158296655958678354454976573100862815729492616196389719210375903923394311114912145146461231253192459650869545677357860678074788623673447647867185502668483933785484673782225258959840151307281920085323736203585713436808660439588243462040079591427566562739389084518567956462921968942106069061981688630192254337441173076226585151286076931022176974828161282211510268270008739607071877942919249829675164835875682872235858750791115364167499258431849705771737884755075479035837499952110146529154747673948074968086089011437814787149802675936331660460784198422511557324555320790406037735061207926091025966508780089839741123961604378660000302996982297535540599897822023843403020949630698790954882422575559867619475998310021760733041479372792732345288628289699906137780371237974887423850258407611911576955847474575777693164901621704657511298008882402721807989106783437174487592572794377770414203396115191693743885662822949593807720332993109461866046486991691612594900656413050807450742449163268574596278973993786910530279105311003517236860923858674912264264124734108175939647053747870075014756637826505103668876959019956979074989017114751924928152950251316786201460709281314762117677444449983752643829642639227912224282169163697196458465213723831118045974189516530946428051385933955614682274399313217481641098664741853751087138768934376027312236990662145841480610244538844568900766030480035222881958220180898208190260994213697041543795450422511974498647485300228172437047290301663167516269707029244665714213798189139797681059874058476282193029734279045499865012387858678682201372466452287418022431971645973736193700690038384349820937958333019895241098518881071221946727587864581155751061141623552719334244498249590316509347395745754674858902702333198115985699086874282499873392012694188163198663500772581640119321727551490111276360767488766262223192275747698854818952762352845797545723780666817504768652750708637648461245239302115776519793353537475113712652541082413714306628136369188528714413783057033435468526620876388232756065579420655196623814709372111001918862354509417028567367058050714954825018877671060554248343550639873771753500261753399331085870101553774887356816583721981841211411149286843854254388488426246708935729414493799314522083248697969709486842648480511722960551438526277478990937026491242858523560118783381170230603736937910294858680231254908091355131525038796715846025199252946077553093224347921048375988578835680595238158995457952819656222556616690160322186972804783319993184403983963354582302921687887758717406841432101272116523783987121901401773147302961187059811070103228796910067445335575064389497395824519345286280952466635120648862853419287802174085642569025132859486540733643848034857295921744020911312821537802934930689635575133191739262969414628688990199188666299784229478974796254884714408579115858988665982909958884864374263083214214487037429422938797252200971025251102649985273301956420556260242937289451149583236508176109154871276958038804911394367502383561347179335890355862122640778791825024246034768012542906725082210632465977647429307179310375653767936732921004310902646051443639243490487214349370960484637903617978555324242406642271230590791215343839259573293378061115081730522634078143566005178398796609025017051007680824455275047384458265067246695845951610504444678893404384342657010769146247333070049685966439256580618634613956120561143986989521427956323249600323355675015922697996156428482115476291818712103473418703834871220606297618534182565669263265419802195254031062833082464143491419015051240732965545472842744334656915276061077290838892447332214456971588197717834636531436172373958995567506704334685304636209322132694463702691066694147573836577194658030241611096765380769882902828424224443568630494269704246302398291976040905085258547795929257327883542974826421442181900718270972198010801178312673709280651521089941874458400335922483074938415370566614291279848686837337414594786926877567945713881746457132205103258212834863799397116860325489667143555896984198659430858903778128993696523555110849600346425208960767741526577433232432854240932909348315536739156913375820578783651171591326623663624049590011280056095713303466398283106687045700381236578842525450215357279525261312093992574135377432467465001255085469757819573839887931733862432988983803681743324379029382464962520810216476331790498692460604245057817349326947313114969988309176383384456065767953490749557176229928638418269791151588922945081377883092146400514697348811030152040444496406757082035966359925332789740228750274102230703372369632734704016804057649858556370393616160994137468777460215176623399313876540732166777368942326830764833987448721718667404637585473086061856305261722847042308423337594039668371480560560191319351530823602899021143924286559635597341620975194757531598039307163060586516729702058683143737194098397452389140044411908838539189074360372155926813695632463147470162741430544815795486570847918414948593452445053465755854532718543467950783905232455663006803655627281068077698583173665143503208650271272301896245838943960335787038277398331597382418944262531504299355070591615582062190246975395454762236764879866139637147793323359035619906994709321058520083367733784694334950464839918531062153321987010515223539976706425300639643746947991003909774979130951945125681744729612250036547232792111603207607230207480446306739770766345710140663744420340364489422555662013345181823596146087228696347236257415607193721766992512202369859092825353702254631825958309498287718587576920196892992189019013418249652462508368588610295835155405425950312817239029120193447352895606100594197415668833627215325201174540325078104815140192369297091467383137163365795056689517369646447899741351486675681919547668440606246477340840798752072641186718199153774416726489197719475979833447616114979031362079468426593431503318350453028936665536630674306456923362693796891352506589945828763871357207990592949821668398109143182934345364974928346694482008348767673026761140459037948196824697284840157009665675145541362000127053590246349000181690557914552199140559930557167393693157648177660502968833227479061631200482055429441114319066650213967580441360943107149191541962403218359274663024012119791237191590128748544702806833745692317071982160409494932771142022538331425901126028247421889769311840666478363668492101248241147260637345408268537617388958711394289821586551384122897649204285421801290200880125223240878146701829930512379300025938838473063234779418197503720777053988796589348669050840145474045898694015371308606721783266899646703665722445403747444402961615160730170686714754362860049533076066659441170027448345169291210429068694467012097008413455196847776526861972092752536627480052741153715594498184765978843768951058886741217241822642644219250675166579209924700600761701279661797207123797375055292565586444646915729950937121599033400196268371066185397483532315267545638978594392607681457042996403270206544860029888009238826795603796385351627426590773942042102523102298429470288559336434327497262005676164979665554276121265519595374243954373125722690932181225802463094485461348741100659898172856566909727944731437569345640369758919161966057071996827239438724890733606117957803071118635250171286923954869693480881847763990036810784414128754082843722487820642965935972426632044051311327402577599085387852489354697061521428557086610140074597905254957996006298253009107261043622135972809375479461628345552853109425987101247833711124154922644601015907061762371523782200338406629475958665899737334528663250897990373260518587037475648763458468278259453490886810947010031737961571543711059810903271384233909873305705471608306640540344780562025368976400932874285845504679125037032405576862085408279479410442660976979332654189863110460875432407461195727366220626004316399089129006029103228189709911789523357618012005861262409552398792277159797790213194909022629128197201654038205190605141999190744617422994124098235121052964857194861641118756366330401098886593649211151464788205084517414565684147390634591105609161812194013591180884071075211956357819535642099538195175146375622559618787611326380209608111699877820160507002714733827559403077445853111214905215727646575256475548176623540431962213862085290442276188165033648580700452478841137399826107276401262343085547630121645103008090963721107448070560959893052183296702437667208992286877587976763873473039052058220871628663604501216148764552223214903409009759708701075259116129113506234844540597583410708573546627323439508604781998822771399661947704848886299051160627081402625189380354233930806560594627069555039216230674607595441733066608480122835735008317174836240661457467340337133682889019843196645953683021229579750154672867558599117356413336942225970335153130591726838218755511087430742329970689364867826224193732710931097093283257256317816144468868468111742637097733310311639140738334420297336140889050405233543854937837736363128370754274603614050460606188408756344661069370211027125107758657202827232870076602656486372819138020303606842726787031057772212998375461391039809627834850547302394272372740086634980837313785507609186292738628105186200656847444058500279980322873930112837572302994935488802373804676958255598620028895932150893514464358654011391047733516184663358738749229230601900359279004006500960282578654960486557398930328142263843011118531007804466996779786656542684214361249671371260768465214026112136561901192800825310033208390785533907626049246307814904084477841290873406294333839592460350245729427904772244376862773133551638789881670190236320365897342823380876255397530665399847673843179161360151046209731382757290913060425528848397671036247884117899196077249965124510365802212230173634562777773040479899354229857522821211527884423926907640401669042109531455423502683486966042901976499957688626810175756673306068513037869273416591879763716120641847013036794779611298495725919925809009600818950953210707204467357973791183789142149612094217771240711644154213239221969573665128645847003496335238497438464199568395765265280765571342056026482035552129031688836230847744434310116488428970108858232275915683281974477760839349018372279192005110618879532131346813401758822880633697683459728900652398954396670135432063025900160916412288937313466178496311155438328813157029401381583389216695410197908011913488854410041965850086001303282418625044964979217063796505740134217761814124043629353582044091186760129504766870266076258017774059222791579800995962694085305378997574648305310114307492547760372605322999527318510657116167563468175921393110692973920883852409291794944867023980207986631545548134165740591631036097709703742624232755637345561149076727249527006028478669308929632244598021955775709131858139890147913398708073189567162660962006303723241900850763759781583351270204972082120798570847604510673384778144101212283397294338474445045309602106646181167429393743505201018370344292107566566297028052921996508820590858346961933750584268885469282544577075029515985656181202731464621346269433056804743965982130011763426285157870853011902818881874762781166622852729990748231708071268041266405892456561221721494151817269255864838230910503525926393691806678641683043156004794594511254783302890658347170604248117492287903067119774301900159046953546982551912108710228742542654420108865103322997677395845323509633364017826090263755851549655002235089758384724210080706800085663130162397596790095368878976944849990433904625462623763897786140122387014819009515553588255949274125326852642412140318532154411726817897154950167637773960071122962476870865565248482940043387384244922037449356346532775071657158811061824943827298548524099265012416119782763366856624339398199999687153418897134565456952509500413698193529881543305417040635501044911700510398773730100924426389071798131510177449133146510491961713094994175158375123632742343004072445409234075299919520634393720433548016205447369816259435339993291347784987950852592922450275206339405435783595514726850029491213382714284864948378055747747723350386726960429799584631199961141922285190005556209761163705545710674282923368789458730082520878778602460909481212340519971404391533894447072981896794485823821601174871258260085537204030337816873090690643925963405795628301040779396496862051316173786690630407039326881599664052515521693728597643738508885669425738218207449972511704011230911484412749124660232395142711127106237145894559840891468179151322326525040962382663128432366440113332813498752077887394491155432346659842528404557812909548978329772249813374990681551144968618441034905027538328368788510339663070235685929620159049398469504647201997801803353137793913047300620885999551926411027419591152225913109160099161132914999997870512191103000454952859533863771465780912637246638477487490404968291507855438863965000880791102790203021035239858173172086781891923431847104196787665591984777609228256475090162791258387703975378283613334222626255218235922257793589099174431287690476203871865704010523001734990865646303898844227869481287116354340047720288284212891594707728124822352412517265138847352122818331160997256952518024562804563919353032971976266379511836486520215919193593403109845199947753768134047316266400730804158693935673188492981228242766546805752726213817049716347080388645347474041602354962114665176186523953152262325999435185829659640900865245354147703900428166560856872688039434793641190919057581966420433342384304332708342619804016578271853696201645041643289513899823835676672815685875489490928228383633236773155734174240654030751856371268431139411854759091929056763118136912626119437693613625470155675042277739472018749402859770632314002693271120312241602075716312284927886837829882103417520234064438222939859882050291473472640051258996882236233233140769197281313051921180398849436155369887877573562154899021478290799975914011920789189912685393363989174758045197963951040774508848025236465393003508381662196894224937333970195966515334511107101962201594713043415186030009023170265367763943685024347541862948374706258126716604116739785913957362545636131916627384252586695973404956816758092256694707311035901771196749639956261940923276428806098854680083886452916275023264625665889584415876723964308551602920554871137668236221736143279041444356682564077973519577999116283581949994815247383653327047441831973513691519291880104645822419080227945317473762699007352012509236610219837804019366763612802987132860185308124584538318794873871988244335993701100044498760531961655113295250434658184001395799863892039700247483945012515763469800430717180705633099756097357791077963539770905969064036539801714503988868801516073430298735963194377863626517294186033632633065525335672085533616446582707199489956652240621641100946978118419574413548977646247853333719960225952925616696526322023530870997294322368431399080029346131471982819438410198365188178701885912159896587770532954302586469475969904755799557414464559894445440280044383454582520646307809161327688450536586118870596043239804109269980669755173052255486305894249046554102339067772679733769499946354788298246857886822484949192373180076433610653594818618848768112408583533311821626770642587291077883553245353753293980505239803554334238964042227821667606605283349758529410500436074165742481857957165021101532910875267259663097706389008325454123760985725149761604086711842693472959213805909957114050573785866290959751915173213741447666263056272817577906014888091948010056151236131211556146503631420353978755740289039950465290494931990198729299921446780435481447900540917378761647159500310156750419828520420325279892391109756177208855211598596022352189209784436998120146491795886128030947072113527312911581539737950902982405023853811029721478698879617405680840016425027721676935726924110346779133693310366728982607708945778295636984568560713724242948077523726372182011443328414278153041580264800976170922854128906293926133996254037668707807409631051351037039265984090807673266664040618123192522265411937635363482962641022161022206318536648605059328415687673203142189166990157120856526590814555981228625159773848848005806178504765083270286302439237303616048338645244376944012997525193052108808070967440189947978448950753985409369043879396910266054775970890403330137707193001052089521611579073751674260815741068816858086735328600584080860391152212398335008285716799508490661257291119617982748102458753003506954856944938721136384995673039049775485624519483045223134617628266561657204250159756633036926399476528142931009965699476753926368560589369821529164026503135223030847107815743815509599067933020630413107803084504601519320040654481401585083746883844009777250703729000166021677326291086842737427027537582398641914577715214671544706952662007283140779222009714845705281796909540379193707366162070809799160499793525363658048943204749399069434058959025069727898604401816420606814458632284248834697740378879757685304178830588835431380203082839498417438926665668953500798969105891569437930389331347139032271513893440160899923795371351601751879048843577336753748194511947954284473546401355008912110116126754081077457192883749697455234770393272876052096249275314790351987821279456253459784203701349793751914059347188752768392988271299495519412653740088410095976514190277571768143460771068322349130635401853509214283110630418524025783615451011882537914051174854328284605468317931248190331246443350970221538414053208766253780510426819071706024430139917335729774667330157180202231150825525222229203129898297745788245315082753801303920831229913889836477208940031891761335230796460458791661909996515711345340959533634651450664744252495970617954728374307216335979290155743897061678756219588360202614246345076785638252245290487559982728609174121951701878818026862123796798329440132752990137642595574950489646704789947470914127219277722652486705984669780358098336983942810269588927158424915540410518949342982947128416710316686264690578573656757375430194230393676970172488962253410404403828532224336898199963790392341638190929517600161963146446939071661087484834389385547444687671860080562160024081909634231704801733802030748418138032090079430536093421048704747603190806488536789789291609324006440333171678374317103554030702588521649899414955919864663452570494779711033530131961618992260074759900382773063846194187242454598366595102574998623839931911326214637047904067891598257312598887377192282523356671748919875905669041649562788423411225994557303902690384148677670262595705939644668490658710405823066055722574575959462707584421359049487376576254163674646091143809171013414978226161472440252354132478397412331937753642284460086448157822925816914935327026016856589554168998816058112936295123625522607793804407873399692745287111819678095730836991383314678303219601308167118093085726229210854321305474383356982500948655364035242698021956668563959665688463390169753389486118571050674067639728920749257114283056395764985552950369821161231413470539244694818039343195446151906734828256821067896823025324122267561196245785980613717621780804813513071334604145874638049476204052154285705565274188929569335605971875122826583011844244235800514992754396172782846284480962527086188431339935864130155365452366948631389412885181485077223376409664702875954119275358833765691845860415681713948051777614770510290919363180702963434744325622882797411083893394071522757271323768187778226760856810626073524562494714216789708631464637378102239283751422994370287056429472671049447984805699623178169586721919979684091019117047862973525205384784796577678441894325009160745012430449968551775227000406538180846667009774458519449575725370598058221813263783078755113768958715600139359158762254092849854009778465635446713254182546722646205513768343493400219130984432590820313955951208811264012120942968812959935508112628497049714682575980391583834281740566529708943838092806341229864922521626379296319980328872877322584495521030300151594225480812948913708200640254158952462782384379000316371210445738750488506436289927175788879934495030280457880466888228454260697540043211696974731275924202230346672400846725795528164967614214494052062890958544668152208373776811029316825509410287931986709507289554594081563651297783896191640418202201581870706743195045122639568016333054619077737547890244634662679898383735024952647563985013223621716317066499443890650769275607180151044958882894282753938229732554103143401522001382722545268707016548417799903017949789062129280927677960750268438385022000235568178417414223048327556068229912131061213819933012530611525081229948000393577489051772536169105290678717697385250292714100990081995165362776116104184418191262900096468364715536306318762173820467293326339751082225855164581861601741746174427109533025885754755480523057239506878712654230682180551788287538104668419804368925190709459045670680065876106414885087973386076366218596746819951507169129248462612922921294145862709413247254720282625058352798061003066747547084174282192403208841656824136365274667067883509710633677870198307888020514676798362067952203140845571460959544413371667430546533949886919136420442877311663918701514685674994589856015744503979835091159712222857607523966562384325848060133271127732154731841906709894442041372422527714403744232681442034355640088887387245663732497666584984850756337386104963435911766009466351764482030372423148101668920871465642320192721302705910557806550994280925782933776434200370636770024381217747289551131448960029407548686518235860834289323591477387194390701953701139842353442106183877294766947058911797875373150865140411130671743086839113761595838595372848997509807069025349412036337402352629953270007912584114813818614070076034237964907453010090713932209928517375536140989671978606296729878895327091339928217497154729332556500748830456877895780491736234041728806574333515866006097420749702887981702024495921065107949388144790452884579526440128694783606212696819521163683769212734941868481090949995467419108171015877763776798377643793076309634476519668189744639221121471723882227799992098719183771672928366307715990937461134167005356571699007037250669890761580998589875377218160271786109552339281962653511906782318271527789097075872171196666077153817241736787250020066006540903217570073022840751476517708880899164219582883738308268036021536261093711017376527687799278763164247891877907399212096041300787781868132412219882848377263646039864297871314254740322322491680140510641509558577535990987910667623458844795819835404869229365539405451642331021467773403294240566368600956063290048864325071686286180163996666123960529742950536700622241552831819023538527193428250803479562160760187453809795461662524315153927494671571752396240375445786229309381664515278614546756978840975471545154646179694530031837159634791647406605537149626925477374191211984181419236655771910906036808585956602823003416903452099700945957853672267057885981193495537976243259148837841082859125927637240501215314374404962867614743931939587635818951372922789803464017574336104327139019268831761673873059919449388129849625972194106145376074253568696124795785029484937470515651225681738540919386208086785925767301999317189019469635987470589754924515629278973838457816674098397573050939516393766655885538017300173926449214222233952429436561471676172605925161985589013297793813747209714651701056459951764652688146993911354511577157784566196574748008720752733338394484353750640751708754755587893079773973836471234648764414921305732597212728489142194081030222080786975131107597061278304187663574100167266063886536288971258262303213691910070911326593649347447323366437469619379166309594690668899189414713041888408698286060629622079575548912641389785876598641084846638469377832690435595855223745250112695864592970949387162574674014730231660729548103405403421816977332787366505248726377802328753009493342320798869187713705483932894654977225281956231076271297043370316738432454652555880849358663081566687551953692848098363999868328561938215977854728286990943197003876835282570204918234320552515929265428237422516205520746982510984872883313832572427437698033921002934862351744954113192181695877544613215080986003115660816811048450282470544778321946684630041491566233072856012504115973851094965146530666155728085567296782160006496703574814412963597411993524704872685269297458948056510505644796153641923766284570959908094256475647724653515921980714587467978847156750648262797585080429321739670103339406793987754816333085047049838701381522871451104354321607356357846756767407453216150892345692057697042276917842431128560666638857448913587689819941658507701071575717524409574160724894268957738515272920971429363727734929460340838292201356487598542290538444646929106076987818632992420550814938295857390962294780493292035062128992908405089883713328880801929840152018705738538363814532925160297232290416249370566924220695866779757539705987087832184096155886402509453281699929961818514632656343095678165811305843430622586769090747493043674651361084361978706195736775854619651406503138742350168278884552884539450154846868338431322997772461614509505988798019188255534079752670345281441074376006252723870588103255841322342818536920549355738525116500586412842360582681393478928873019777283781716499304312485064716209578601516420994836528491486232564050697439876573779717806935511810445752186120645763339916138025509959157177142479116695145633363740344689221313413751813356039168141386078030754347217349893022584430050146000552573861614802684152948815176668817740930124437700064438920771848562178314234651925333343498011287203193183781077808988298535184063373201456666926786741275346540100893933975436216236925622193573302517267360718233199642250944245703877246203350125446401635970580244011574868409764882128134503592216332352047172598211688599657610984444330514501856933794168820378675652448524015711226400158474636249058095362667705920127586412169271005609645564360246751915176914613810039596641020811474331665950861982723713220854330691713132997627647574375613956543226662519982972198762910203355190606591624905126436105429818840752575328313156016935524446930047184797015993721195319693575493599485140558038623467376382280893872464395535570462648827666656275867587172939560660917748802949569930964027782441466139959604695227368407029077695951603961950755689733628540488887123657778271812244315207184966221688411563915167646394254967592827268331938209386985589088273884802224040027042317955065583174232117146099977469330825475983140947995259020837874242439927734507403360035352516189003329729967594671630588419464531187269614103307742650692848993889618594724145399413222194718973347424434444009788275015592557836577872189815501893909746231350208322198867562484332469577323106909448208402926196134680536170682623357289568349727768240594010825561468937196580785618108585353895040735399197217088327166801097267083053878300514250202186818096649401262144961145192216492285697954711869874203162308149101011387895526407441599107867960279534119986852483740898842176196349076355941385023058864780025607087929730431777288410970474086802219428277613050127212235452866312023039292107304562891234571429034181521685822088903794313277002026310584515318526113319787356349280332099340751495781390371643899521483135465204336960143496183414116176831440862317837989639636448047066054094456745698333914213049744955223866157573741938611083028777332444500745050009335515259662340497382387250482573785543572629096212271176071371898856043420210600507052486270148839936921992264502077780207607986077664301552488267059017031223395060844419795505417335033130323853174337740660047935702990974716123048372547442068753134191762717183003954851389990306728554864417138650383929490680250847535166167938147240066031838137214202590318486963322264934901462541426375016177481561266465516567216691027816365468160301259374053964072718588846153641398477651120424073972042772704887460079873739075218251555607839243766092884367596061965222039748610505309805498225176520627071063690275226532313084520889836574711816983478247714826443946067405349220795791113380618705747776393690189059882178294752098595434936037619326119035659781553101302942392216286910775276479443919981063450572174153438374164857235035672173286277135605690645447945609702936075876682504189195304637668208470409671699778803883133247561041484334240457574751098348741433386841025301777413198987645366851776992271617073955655010820906805160236232205413498016037028094150311538704268904434596666956972057132099359708457979711922626972474402990809910356858143374859322614159290510893842403221970169388503941439613166745940055722801872820484843478878009541129435733381225022760702010883360843894763133892831798056540968757081153713988676962857013703107654705981339161654341501014942296735024401293768659610854351478313029527455407888168426413231653544698466695612762334616599379422520309742723113327533748848977576389273920160703558456917292035752956577975232874395975737062377656077212336654934476123141255245687233612714064164103107729496460663130835051497851087184308671200426035851129865019919608052594022115119921154230889720640529241687424378454230166077873607994773852611386240609113679386624779679098251467013176662976781888109833830834949571499306946074734592004688892830006844131283021993933527423716769637256392820498045230774146473147678627429214148479097195824863640201796957118452836806403637570854185142182544490216635359404413616074214997163338994131375862950087258117878151196203978219619816852298168456152192854170885509697716976428036731741232425543029440863857410085699802488141258381634398626309183377419446884423282871433237822439495867212764359227167975113119781301771604912269654819868958335614432175559936595525410715707013010845595718059881560703817351843840606583226575895805134225885076390486101420184034028664406324977261662532720720139589942133907644095528834126224078713038462655264561683561114816431966525738603335053010099107361595211213155471261206938481012223324651622366963022359460160614424231184755797277351214168033686594237433023317074219139254573844339856672358194172847987985736969004387886003951641184452085695636089245996225910360549709996178232766696828869227884728059750817628784199463333956738639753394301711298672759733458278827452442241354182419187212147885218842051142588936341715236857600308341628824272035257920712514765661147565494629857511310118532000161312569643875076517320811700806625290003604615191379451946297624843094112300190867219414922291453294983911233902039202359965050329155551825044512831649138738221469261061541210632761409923663513403299311871613049093687663174276712867242338197254245119415469241022392189914735145526502177034888549846905736006140980454656382201610577264663487657115987613134392384412641914426732536207155874482363678194525995060200939022280583761087901345656040314464220066187103791373298403771263466841573948519953552689254994878230502136824070893649804159034661624845746641727558396046318157551097626654492307337630559062722057276066988421621821513232759521932913547646100145045401242872334247643244358260781956614754362953373438340008155097034563599460742381289305122136724046303904296319812761670667871490555017081691254301151232467530203260684738678222866845421283151885085185505054320261470234933752475973174659366769328661062172827721998743004971418381078131361988753833143641807732123855598907697069454783139462196468232155483895030708081421368838595430069771555899177310837313553571799870929323601718843477867845297510324904322407026263081414926872876413676826862996623221672239620645857820351000812559728679618732856455673134319211010015391837887381241418535052813594620471569326648476810788767035352292030176183988633022390060624556518882291025122549648631499846387752304315080724712952287967306954920389669312608342394417167164927705187753889536138919377416904345619521688781821012197977931852029009047806747499973673270204577899339321767389449553524384149216782944749230687245073700118693888649840530113581534673706953218952532318682297190831558333960203864687695135519224987154615826862111076924958830211514715427905527191266944530695304097297594858490135244561734783496634069871884800783702830127085532890526413708398033279567023827094498302960096727965062739696531531582346536391857519510811873635315634308794451810225645835103371702039515753231518500827399117831413120344800669959593331291211128034526356807224998915281783316146199501674803316928964225636790796858193717666263473772435969283802126002462523490819519626578854043072471350521238150587040944190067072984612218493646865129400575146352782619395730287250504521009181808815706722601386615270475446577033156996718078967315065252322052965715737407221666752611298798586086190962149755596150117966338577973193120665667601981220861232532708332405950344788705291525791830686144144990779784044182583882783438787041304734436086605663701211092402946137517832642755180496888791168479175079567900028339501839917001052530200771350126232982526100400465346286651427359795471356360307554138487815359117770865321364137274859039491765865303690109257607874309254711249042865825716544234116505939728892260843836543285058096162398682336177717470802649430220300883967501645011339868201145192906760438112395988858241864769044939944865674870308526449844840087673962944704295800151767454906562508752954534308267143370367177423380855578442848529940734984226849571313046638630320200343480737055148726333752586994134159219515884141083849961898386166815519942458582280864810772668388469710587627556832153603178077382661040153758061013412070088688724046150692546053540389072339224339336189091843248714989180142333989219484759862175689607352813850752495846567383564685138984741314551681482731292142512128278670290707874969153876849478266179273938349371426178350209637834434682585635876134890094458785756809683066036969499676979313804179518524796652275519703672212590261143243051271935352821711455565922073067770594557228564564312096831889987969242671644899695682889921752618456412933391972498217112880013080791554032043521693555441069327973222982271170937757940877004397850592786241740883567564895887842487843045602327938836110579870206183417595787581996994055759057288779179047986662726580522663517530808277662741282137333271574339252501100747110313051817137209959264423402664534696155990768512039478462570142169981390567320434895597066218816864519338047281548379807896318065379944754177024500475852897116870264615085681054683949083552889787388861035019116317540706106233588688586587329742106917935759215311781284507583276738434816354625626337810743144663742074986698837006736832133244605612570249545108943155191917872127476924624943757320157075636096262850911102745632135227723129033668292235527965474024440274804105875354521176198995400353451304489560416822920683835356141066905481611220631871623017228616000340007789568572364925890337365268323518754658514948699791216686796909172267301236140417710041604540334286407587035666494814022880870491362572275847864184688062660867527452463830696428316078145257026596568300617455299171137299592614501802652267705736411365953448742772071851330631250943360993353747647236598301298709784212301460623909604006528057367041367540537741200595045616474787973851070733455206678095225959518728711776585049053558079886081394067393411445552444411893012891024013235301072976422195950612700324630034275546390247623138027902416843273192723313008517427057041651655524271651553294347020705446590348241499076155599767639695761458521824018423055708038702631774906738879136492003293606350788062403842279500055041428564657412429601146814534491678628971849481888349653123641985393908913293911517980993082260040051148595819691101328645105270374969240879906541312713478393534741406637884688061485584021961308844654213994378391357737559924338883794800960581399352510114101185502229663965653433121516281671720707539706197776571338357708305654190159395533681438109792121070796712113354327906905956806528451893504996186937794298286927761541602105755812641480657211358587866527178546363370404610693171976483495879880297347676298044720602775061544814541555228729627540797759133792692257587596699061339146552509146988948476855076707541126141612405702114467616721144737093531735069925008528914258162824806596022864427527168664922008042046902669256218967951712465460059794898798729883265975615165384175619105444061050912182370286015597002349942442893100635551038995318816083103959780388147959212301752090255209150674617482397914692731222741321207095857957872515081693992356809630796275415823854757062144886154305142213644151796191714433725867687895579405928747119769088366653419080742762047359547042901690783881940538736006222589769291817772445033239908008772569684495685474653185309974419266820753617288531532145724618706387127967303359616436227131143878360109891746811938645881687234718366619116729090033900380729605866852715115446256914594528111591873171530998537493700203569684856139460120495151554243421152001582418004526973726372931596403909665582355894643506074877559580820580065375461485399215406440678345415776438045439159601020767129752062386978524512837365402259109754720942481007507251262887170767392844204497841125486144895799553784777170921716472245301996911279996474385264468039082483636697433565989981655631633673819972681280332697743657060625305356197348653398180467986850837468891488422860241684182673920834083658882449776197099121998253786876165043859986733843462057856867327256111792679589298774700390417365239644554467525078537879238205736455200648377825538330071413270355943018662247916693402107409506949711884465756956686047336396233689871598588756461415129484311997383145211868804761318037579676481490429478701752357646671894249576145904623963470739876229723702179396500214395647733169222062606222929771327672113092309596634158431300169356233415711216276690342606301121517358031217221072494171377846648032532912908301705398150206200237577239656487825659137427959004992267791885351207996783210946309116508588351957013384041220968235281566934084619627772129681889788250924963930467504575197375280064212551000841777948822722018862274956315724530218871966197285565076437208956833915981400501418825990336131703912741394212982340000380935024405527531123887162535146639751185256638361129198696255442886694954039893543561849870615933154929539550983149652297931963178216454694836922235866356420316429560808108540870685255832431748863482252333960773100467980705470477199066536034102364624364542108427544558371710187090591687577237552875210041994769270502868159127791921725804524084290070400680923326476693084822448924099788673491088874035213375944097374770053052724857895906853882521410969426721024311518458865983162382565445658339664041838225596904138470257598616142825122873704524175589001435997049612008345415181851784023808856777760968711841889280956788788857503634601550284114553341275255792794402397012290175008407823040278806431214511122411060711230648024485324124543060607996874858460301510062797289169536423384330461701984917298375290970776521973738374739211419520153609257779696064824624435941135543062230766901572074527735628805731172055430500236893317880989990482680537291470589690264554365715989188151836981960518381868269694748074021837366780831564995293008980211550195782156702207403813705362775885665780208734269397102869776775355034407269509274323829606689275464007719036287776516153586547770943325268766975260296839186858030393548572889519198217454533288863496798232721840112366470144969573896954606932187416536218375940941619956048918892186290016693442397453895519057431116521463175104306481815459753652592915956036873879930466924786963214927547959845139652466959731539637682794239386342905399938501446862224211884551944608370237358543678911646478445881716796121328306767616701278855891825429461778720959041913230302170141081680787273101316955740233557420133285674390008613754119499388146139962901471791133269766775130033637880478602491355749145079366357676654362222512695232869895927387380456495612932766839018912867733474028026065263995955496063477431297826497463416294165629774778356372907704179852900569431996435745483575727854819160236514611241562297787921819713889871553579484075216121274848436510501779475771975195486815563356797643946490021993105848145821734814816642811886102537987954620886927254623239791163854515984473540052691292996226250565427585088786066192541280917764081197619522127972884895915099484690913991691568238195565539999776910864351015174526943019779036628705526683432605904637138530124978537903348351614150216529499278785575111735129877100944173244213987316938021030457707867514536231170620340569113695004450358155582720486229243192784435645910505887161947298915987253015026516206310969812301077843223348261337880963717108660720276781905086827755350241426185999489161174614551826684812564764371358758267890521024390054893302362120603723404111705405099848737982813192416649722127380439526909283297275707199833502370166630638584385333386129252034121476080085333010940557958967059164222360803364890678737920827907732759115927256126500279884543291157349229919438463733614309904382715363932010539866580305570454793153512974866661217623084245244865595350777440031066294269178117583666529028690634089064912078135542461275322088730864667457189412385552699197998009900450591087614415831014386705470420636702629795161853959510877840486359345598791188363825122461940228660769711576421789778090163617610469773338323831407209329343042057030599396079809936686040153252287291443667677957486801395916911906805594666910837276029130457310367595224811855097768152366325221607503974503669654642534964528738264222445236242259539242521128524769258837779732856037078832162950013839030482105652348829553716645166196622540118696385484490346361722965915804382781340441941641114336278534708857983410582941041753009343935669728650403342876738050016972266819233536939661521136641295588310412574854416701348257773555874958002897525999735140454301970170948311436311893942347523269177146378710647856233733586681928562857648947422630647063035850187189606846705366231960085503367345527606641457498722685344855381821682281106362267946594158335713246922212295379604038547402078465240676533407592211302677025442614199770976930629350647965598447699678120957657807745046346271949240293223402740551136491369323731706449000492610769283456621657080199488647274359941054046067540666045923795969222910024540596307139854607117742372565820059003992366300232124436285658911723087819217073397108121471014110764493112894305207133874873658331857662871641922132370520187169674049265994219743315289906516636750607402607315555208515847947126523825985351368823437646554358470463627857362423181495638077966797351816320941421914046398532113665212663001589603787010975426257457047932376503693826903528849066075022596178828266475250592544898964662515266617208335820976127590360049374000805720198182695229943038496711704827924022754066592505635425440028971453967455661237569846134884672704421133733498444247344531918364856107687394397941894552989114730112617443724239450192199500444775670045220886073550542198575174967996786710061056920345549438464774265530608920122394058846453233048454929172191300355973490855735994380523334550506381875120586009145520889990874174793195837366742815828801103967055322301484479114364706893361743078990467818968663301444184947745128394467604995330411233337574654002040033290669536260222629333030542668482742035112856805318174507941249849516919681336743259512129599221508046006866644434392071101871500957658783726105182477706745583650342374345483092678236846288580467857963023413564457084090979175192855610976191382025418716944311546212555368515512443200676594071721659850324979278118703619232837994682798358421478560250799075024375301839414390302660973542525405525402831664520872836062978688382353520779771469444055063336491954728540729048852226605900346647487719594448888337258518075327022953007702947308414604097203074569059798432392696051732832969870148545285407516291755156388824104436615936349340294945880842560117767914576397967488321397019892261609303431981271055057802057973333680695123295494644821653949084392979332936654764943420747479406822297494219875526885541258595821355236250553944513293863483038557209009849758739351881495003336338752076294685483655753045744445940811443166777534596679276497118412436750709085771533940514876618066867191098591905298604768306040857271619100840179450570996749568862199973723092104262757819833936351011468008640030951205600808113611276820837739324432331865046490760409211218462693373158879479086216309885867472976148030735363676254394586048036998543437061077213173873896932186750028705358578898289009460007559632411428985045918802228524912838448049463128022597617351127812183649330598037581375262836616585724099119663279094551722705032796239450343331141747680293905745370985724259584866204697082947869642053223291176315464476712231489121783434710236416473985958478845664833370424605388173239229382312189597407007517166415345414300939987738176686613817810424612932337276433743200856724421693960728243649658275647381010727639904134175658352383896800656718077246392006124534990486622569701578666579506171192732119777410086254417565299089150001874050545288899510273091529863026219953019581826144888817221745089085486254806256684255042659130903103797691778347614278699162253238211846280691210726798194355266105866242884812410076875022890941118541315377485713941556534716892599414310353793564545105653672433701770020481893036851078681388142413884090991489232638905950802542404637140474406800819257060378249459047636706060736988003669625103333917996896540656519964359273940519681525538442564673242412730702674634791678023016234844005908644819278932270408651672493930675203325547205193647951759789222806577206293097443785208681351878856229407644228799777178241252525705479584700317301658656837722396011277947648238514124935636348600936256182396326588383885333394631645683612724558602382185217670451659998481430366304846350314128039134495145235508755562061206593468819470119800278091256463462736779158096633758656619014069145672610999213682243509697165773704947202187140792168024824088686718370093437601436823129714208540067365967092846669932387741357552198991759514351972004762505584876285118088359741088813702099460036623249993088707905333540695956554379444864686296573513386694501069048791033844255465562033193405526571196845345307152264953030167304785239044930794038082765469437477220798995509924419412176580641314631213070367365729773545461080859126254534857210410384115613939973092376570067454781689488033519044370497485834076939594227083048746545979975113076794210357492801883618865625503273930549083068367874187562312756643910009209706947599837548863358868157039996059821734594611060595159621421426825404294682381346734867976458307319707688088151586057679090189161469162479935352060963793615492563228643867467734263071768435114596941894648505440311822075275109570612360621269852015478847869901643087803147066374394386183657376618055094001897807163442892053385819733798044554938856061040415708892900127889333912789008939504434861985876781975230662877744411130925271129645857310731459360654034040231214071741204773501476410311813592264694819448531756750508575053606501064906123354209951608437196550890256232442429547437668829877608058671208703267102162045673178033419389603808543367758860931085307607896631035218175273849341402919295711578086012631777371038980631888920317866086984164449593696970467695522583560848337577732391511832011749626299089883104099563410269315712257490103913398988865066053539070970183834443338640309506928267873189645980291670219323906365283664704886520643592884271482703028893056429589389251356812973857838602292847281754333056942512906622661335987523471167244780848025643271956735961396170958156683831381236511170716965213420399183498136602949868410338995802798723728765248992260058225968357141934227492625156174950295221707950080859107086755432660445899997132251936291650719367422050618662701990824543065955806577898890686099880250488964210728529257567693231253071825310112026019957297429889892686695316141814847483740349648303469126627874164072636428051335085393571719526402062907372162644006573765719748879609512843034046967104422034020047712833900620753507661389019444127092350705620818640579760807937724909351639335705923576133002419683157242376474841257732420838376571650547409057181017654131324178335744240474633199896282768731194804310771210037879898634076323468729144017112446397653158321790437657195441230046058159014843497151776635898613453857473456335007196875295777586608190746139219090419062140323842882332240507619576926014520486327832282687061322341028231980551103765396808831565848312995264628892416932429051050917726969797093447692047261617259649852346690849312254537151783316786988808935438053451116505724690062802191387826768274304166637130918372736532567697478000418138318037553856580847241118701899917151326836130810580218730759991991699868065705348663073849612952621730100313138608682810463792991613320323594930201431438216833131640312845514339423803697309142536207051552149645490556723795931408238396106656925058139164085833316958546947414412362153115589554177567940191212589257917387228674851486366400769895500669165812025400386289530565948127533888680437977744303789024807491240295868101960483501251341655239835354693906521479436582384036703323712424198540489608124297990110781531914589781233077099824460522463499598316581915348893950414019466366195373836488934761864485045359486785472895170762288352802468885267632780214896901844143065681011694233021151576397973241499165213879115059152507727818472724320386995486705453999766165385340437785215422808408177678727582268266937422586590893394291767853809890521934138955770051661911344634442748938522145589327527924480495123137759768070516081704936578884436856209776779776073492564900328681085961092695397528030100600756185893124952777859683250624406915117758200445842011274034555806547416248995748342256414049205842433506986621479468037903387800031637827489617103080423189202623442041060865031264901463047564425328636956501667401681434847514579157464519533314890145171196096677269540423027347245982762884778427971438738994917372351660582384408578790899242132827665867816230210613275022798706921426188279800687955251102567088782484592908160572338986264862792296499075346233455549935892134791487936609830996460930910885564078185931286687342393125690186085949567891557767569394428291553065323990336385563866601120522438481771364076821096276355677346966881735619842374301307412307852521137978670304058232645292544222134968158963249784609698318419656933297173558126742995181152327932983556638212527108016447449255561054741462687658264717774223384983434664852486201600433876372711264682842671296157176587194699384763007793365683725202814187515413769163636086503574108953735498232285036101439695323792634768297892889633950027158479810826916279957019989817811985816656696640734494096312162158702797447367049636951897577118713203724593502907553703500408954536745235734137210539950779662701597218252677214487125562190455658172402542715306884735055195541612342141534776120001557266062765949271358933319364872208546899067165368037277549680276845292992079765504993216579303474805954372911790791752718902814423348800076114312247238163073260888045352615498659569919797529540485869312865984789362902521183762789002641088083172789585227372306897603880858664161487249538105120065219279889174869816305919196658555618187133807279634194720806450715893594506849420186693093190518074077980444014409656179072665176192923735075148147273396444674036414681143599955158307540316688843836015946112235827832936338008969753949606409867561810034035795392430365708904900573138106794497698061656337176691433955696701073155927204046785345408715106758654168989672398971017775162893919832270194370625218587778127574244771126487730195501605805113164159970820952079854256898956941763754200605330508537238979165307648051265946267018215806996326877876881590603014765469237301122869465220367718344614488974683484029725163993333381401283105339045749896269037904377372970054014296359238972958508309670286646340536356312120903418385101053620389001344112902406185196949621665922404246654273425988185672756271344368156538716460826913497463266981189458181529688340308452770973165185579590547954160066360625630390812395376429407498083272132674608677271224468526445618664108559198332052326478839077575975431360080815709486682024226555346369103945106444635129399286737527251271248371993918958521059029435689123801590293365180181023598252810049967745062267391457591629075435359603952795412599546732373602258265213952820438910594904850594711918637023839338716483770964394023972264974273359843437461637225195427941292987183301275330421590452352226601419859131671946532707341005842608597616043152206785438661367483325489355007792169362768028061863855559928366886545602044959612284551969125674047025979281954219095584851495332114041269308236770228370199115003402329192456625199700227488170897164520744243398324060026332212247895611078909711374195098271428336993709665310305951741489917011500747454486251098133185804676760765902690209728580974296761787221169695312799700427093422732662134135032595995400176631606565888503633821586605864215095523570344698270364218522789325362828678757564269308543026138659895850190603279959279222546945081362629532850938684928609260722151077757987191887880018907427293194372497356887398495366051075188637130625459333061242095720079813049457956274477802647899166957066157175175812916506583690938040808661634771872469094507644585039158500314470292896783201933032928630926933421611557404829007160872534996654699481387483063981737741004100180335501486662734691777165438711207491070207954875780223712280463294138682643976281072677172711746661683810395067441248956203184800066774209226499130392018983538804967549252752025253288768335017670091594723137589559416431397562138929768390414034045104696365536117092523083748850752254558556812019112260039114181250799524764891597068122444170456270229334550468837644214110835316830191141083856767743351697345091824666048472290896168691903428609820606627377336953617546230479560786612213243204911437761176465884313798786093643509058223466843475289932341953352341063231928460661537958808961228326094195491540537940677357678574553499643996107183681515573450666508305899569330858670739086909818990625851623839391952728290774812712359509862116252286584171509607691137205264645959027446497777785876327591290837928925205754277229671850974816186607969002457616084719964183136394052680855700824797999165657561286293136316482284653343583681143559377861463488905101154058434901368477948521296023239241906775125291704106970020597691744758931989296117364277684613696634109356685830257878697935532313074094110584059764692101828580257491988766636779469736214806154557545966137735587397497452858705032472514637818332678053620695889915557945034937289680555366812169906941965788964742586673823900752561292964216186280497448131732779526816169665880352921189857236207886401172606349080501954875368520002427133173045945289269710048692980059603294656817363346331924454787971630638881464820535641745690433680847202297182991284071613399243502299444822277645668967322662303440877065905946393319041642161622096336890922320420496800413715270089563649072186549800551730632243897356790657768920982120407601241219331328609399435848235221356354593888677687646961272838605964146803589376946638238766994605364876987478894325386661304990230875393176446813917640808332850708734158945513716572424270228873408483325856636957259487719045887484587751761712950174707243136617067233927949564053795340124308449706945386413534695760788391207895405814670335064364727815761601111280660154580669046269678703427899753270852237620251893173336375177760991879751027280256676125431811806245422338538875292342578413016025598137938014503551492421620419952363389479812981105713153637680250594711099965168879133127165327018013249707984383994216733601765510884864315051157900905791415215538311623662155312414756782113477419394903889360014677670938332759091202253422250754894507782131655781766204029289042332561334228067095901740505586283461611148481093768325405705596357807268299697138224930629388777345337915944264060930081821804596328615656699879685592986035034749492828423850229203604220077370621575729961648960342890648976085856529030022636800312643892063703964439549316903306090927692334276647528581280139936731065725804443524782818801969923836810094654147527385834170646279189289910912655863200949968903832967246307642132620265215946218649742472507902426619988853076902691298698383851655667818858802518810898155703899301787743507488839500396542581764989191558770277436975646283157490779926533912337550723827353102267057740568972866118552440644707185819873611444328901187502816585925572902329645447626880895739222986111845173161248838753375863708778318118426058450133349482808131357171254245054800276171572390634302337401746437546063616620088394913244353933720261816015514235694101884905448654098834797097368076235597254156720863004913114057436154706845741437274010466200418294471589591628068474012340648357537905540374976883766882879832945715919032195776301672043982182578493193864753752972684048113502725097819900744389301985919935426078341229904637492045956681428300061674305267845979706354534511468793681471816416165581149270925074973219165862553434171086316990653476287463375764311844284036138425262354511209690231752272401701185512051439204536756933889673229355052003030042344852621177639541178764295985370446530732396117395710659751988559182051135427231571982068846582273439231167009427410473464123468161044633115310348018984459536562685653061997719385491270116815728077854464719112807752523495552031261416151823666391049906140579168004188787945381440092847202737783142047947238338651593312758034625586735494258523981546548303663528219690274171660001945979714517277602573264807058777535580926445192133790257565199508613457628950202220588713812535096219250923587473378973782940429532592754154477767163053343963179032549792713562500998710002755563019639174240625205663566606702645421690787844949980732389295202600616676062251727103985077038701750425252622847968549253611014963957022427581545889343425631120601337374801425493231740602553101882442642184413342783074719829958101713494767433554226343518434664016235124558280239069586665273075791228586269675315362751465839768619089463952853077953208111646505447270587492843169113766472467502147060918525192517096245153278325268620818849980523784564010495138644897600965667388477160071738830603767753092065168551617306348499783785466544032907679197981781717426041244264101713777240811320882988610656628522425822642391553204305810642575779222534091642087888995078233023003355662090706579000779062192914844651656134975460665760558678644408636648356471148650400458557065594804094304393910588078767197585038770520023758637358167946267701562608554833525241184927143529538583674341473851719799922713467469553834822395077623922755089223766622657824407813697245231857823945127408516354782304167792009468404939019556647092905918885311132916858416509701446214815504091639469536902024129953640566611282757632275301284659667840782652140310520105755870871046645352277878283535098293826054251809880284589214993622560040857449253549805328094022938423556210976174871543981191462150243426418669680074431068859731271417201315874960939934286310961778165083123491726368902998447602700443574875932776675830467692216756354077588645696406521705631118707687792496575482850710856525220925314716586164666498518608649187204922155344522609101528740360972605276068396668206875313822545024170309145729585919527669799803174988601542161365818887319457059011022893679226081143087769664740298346792851304393735610867628559947776117132692334347803827900036752409040881396926877080315923510135763337814073233463537516673346264304061029644489496509908531514309068686380394139940545428406108815540110969491462229648775454209726133268618834018990145042464080102406737933888141306870325298562268726116474081982117861545666098157828137704899687559623992753041075237114885334762501906083439643575616375580428775111972765458573848872840275810232451285747875896195669441893426182682141856960023875274928452638336046772509072841495060078584630690253311516768811983554017814585284486266184395828621920239470989087876969592130430748125113073674959407878228679082054143431501696741453297877329172773843952995245038216929952865864006255682765556392130969522294190961312761224287420326828783130934207320615668286332997140105723482413366191345912172894449016545344547346096985713542127805324753384063589026643750715856251234512289312477342247970759961090024728969387506740511602679101158945220465825221359412197176904644851549293774863574143218344156331726867066657390676578446213554676273201555610513809518640025867396067530361867945287472426364918936460153819253919315922341785428847090242342967983719070949729588439204807267535436945067667067290447161799600852414946270622482250686640557451484029612546173628086609312548155948482908527192457311498920579104125525539217985513901315829599272554154789337668921530202008070696212211747982830595412540168640690265640878271109062751184114259541973285683116424522427816656540336621542635977746772449544450904893601774478590457777744291704544199524708246731470166378282374605367076362833348321970832728429648930784296104256159902516437282466318071060794106092479480849093716105173357782112202131987470628041582713808543117525061033984849851318449690510904706668292152017469265089467888128343902830321489252433399407267897348884803193276577106372954291285459668880169597409762086326186819924119297171294446544048431033561883090300952831003720348441713347397514009029233505928611408247197540020210649537255928571009843053380790222679212212814912697118283243485760306444384665970915617443432494920315929879843798701781559355374370458946219764892989323546579559602849101014694643836402888810591930614672678557272760510296320632464525903654218810603698230378743446520346407302924923938416801667593742041266928491023655458753026616808321793079984982967656564267408031972195014258809624199935712614502393604249810241846567683037199081763858107970994093677862238373130432706189735055333119300796420640652216977786709686519468676561291130017241484345783369007242823521890547347591674164355895258286208449222928530737948151381154720157641737310845177522265859541354461036956492315391776549998601002676559042234327465557524402210831297087375864324080892336955073677060277136816417318480188457471581475987012084488439124733590146409252885587885805386429885969268764663301652607849803254703058941963781908580559229893256706679623308824975900089558918710218366770182021345528615099780102277688523420272528160491539045978036171348687991778854764203917178101924069737516955800776036509929964818302008425983130520710752350689567192719913137911227905494085717165920609435375498818227718210760617589607986229559193737159167404398685268167866750361743310211738705137725335870218912451696553475879818428560854148489752327765010938982079165988554713083762615109730852912679958208769009201072987824851987273564109728813939028920151859280363344163969090640744995661062017107868817429455025018823871369377240876921247835842665395591393184452575611628852833014535531728429399308893798606296100121320635835735575908995662806543215510428848262679660468588669525001698678650696867776689861112116340706932204009497558531237675717465544614165340645242982704835439486277333983773917173206173439092292712446732023924198485973620044209397874066726065609991189332108545410346603836154106039506149255498152536243253604650707575343028206213783867495119567135671279816321580714358564557582716800330154628601563694943374540969349376312737330261447253355832906030509894487096926810755158247004035738493969799672503546412050537626676685025611918533730833563406497711438965243208814461930543036506824932674001896338958484032837112815392091657404518138959766644551284326000934768887467692776362827658762553885433720328280221659582487510265886527117242100516182913846787751036518767885395378696198361110461785917096246051839107242586140507435017544641286260279395926331159355446937386342820273646931126496048205306634628822572003633214852581892543488007278966251383122704523354297498279309671437285277183250232220363253928288359445750630439671509455152136168354447477489964250892430923899749149301417586847312081928229519030308182070325115774050738420571531014818742283401761985545927040156924996014067621616593237398316700769035642303160992136755793215481805808529571684287577432013670016625918412051452573164048676669519726292887998555000990380796306629465807102533759533404768934941356360691887233662397660267872544317820098444936036859893586550275704781353951093443446871643565223563807658171410656617132623896036494406558944706807791930409013750183874641282740494013332043542072310633300476641521301974818396841997930845065858597479013668594107618357163358681238063969847702761296824275927762071120914725869145096695388810908353167742580944593967368235241714020374734860255804613707521098781502969756659998401362667112030227923252422704512823432373676859491701497964051371070053810831948912564715994825280785965368592142897249025028711683852262273685653880130981723035833100226862475967231035307000513672519560002433421728027924186586821346917795070711488133265121113653168567711545371604481917308456437372604666563606514915699978925024601909093337470519092034871301459045415502880923880341568891090452336497372470478730571316184969278979814421413031354416404650161380612816877473323136638740810821061572817640849905087880395805626801574363123533011393946503121513831110057129967142742405462425632906899962843473261407135252105082810275495897404669633106047961009960755033252600227876588554040131030134582364985613270545599900823270308822202761700770593621618666561606903337161856698491341769658102274459931834826119249656648263637000532746780613730521003913720357958931255255734610192892956908721081426853262355735351506291171904427788321294574424079385959690069079121558720857730320398572905811012326559347170862256486508248541273768842119842841546078214388092323044574479707729180439266773677131760085006533158690346131722285781705005551193769886371924552935636511807124186187727924026258536627357591662053812083679497553726907898848081813162346455684270391269536229161717988542907109566683000719515168239665441225186607749430938642808391290979928994964499915746767091466160126745648973025230258919331941121707611302371021054610256807518020101589888286551894544621875957298044377537846460711970604223769317462784663892553278404551044409104586834657176101468650642438029149623065108377872228502431837058521491160691298768011282749052173932561143313717785987307258713200234716295462489809795414591571438608546992975738105413766629596020854824544606856556332937891123160869427914340235217141804314658733116344441332515964197762328392857025690055625825527719445789333721405509936870029363717419250665586521077303793882097595323478777546555708620422344894219453757700524344757558372892119144445417433037271352929130265664484437496371919022155250974145309478219768696993033388569560971622093274963009214021613884431121379769488039836386835761934744075437289962070237279590205384421304857309699526794337447031053612296788751383728795941636322364342753586019990395361627619050440477323697539996680478404356819441025846090479040390603964823125343727389549218761183977236728108936782410578593530661831513058991084806937607710232752391371225295296497414727287738729767458169336213172837776979715789333089685101949423461822731455891163257674948211281647625158024812278894576003741391726804375133201168031741612850274831265359618536646371968825961750627185202515100665704332766710659424107393289595695439993857164832169662835945876854891556020511730314661103420656174090593421054203331542538819607714107889411086832002295068623851076199307210056568960680648581150445703393068101373446771090541272080535861870138844907291729392076052454928518791415370762591269956800974044015121440047516838549043030408913061138762478525219413223298615046932643120711274619753035894803991285345063286204804083008543455994663327257402063185376147178994720202711299931454814667883786054795329427429880844610052504929979065775264397569899174673078212634695302873867979712839308024378045910028756813292794776780352643124508707831964659749407917816842739894385640763107107901347957676893883543424210016613896578828254401117774997778161631144589158084166322758237271273019663869863550061971129920476193822541546173788093450718542374564741264342040341056064864593091386119867538002281753669610713369970657679443038427813475031005759510060607746094070740793255800455753928629708510360364348314796298394019288391074729794639821494066772183233664209865935493185601586491287624046354753192126374885078916798609391589256662194841443990717400386132159118861107923018034764011167552443817499096473699566908463219773158872117361361556375401324055787252873149145668133167045323844719418637805560826181761030971614723010687218409331107390455035259004730047809776852171142428810526401228982715781570391163552790783720522695527344022545835554549226197587974109925851557396515642540084875892500478610378017501555760145205778508089432213220779312018756261956437999675957704169813884598405795332543177900677087833110242289085174771526719330697979873225204828653987206561015249427703241602775779147906821448133857133345481164776455164816309569936482206497790786535557549992345121344553058823120821162961358842030531697320319807881979985807242071294744051863360764905877462179324471770387772547273436850035586312080209702585376335266120204563915346098619408907729358618059594281902996118245017834969158155933169140515478057975915462684181683411984944803977011083906764711892638034121753798930344218450224219204875224040485273066353664922526962343368157167322955620427129595281190762302371576700112295738913414023044915836962241652423706069170584440245905797972485237111742017150065295070972785509384938064481914370739363184820696215959876338480253962047126676975927397357698371664525320191857630428064063133757574345290136218397350810269546635622607809586824208135419121079012909877768006345197181733103147177427406334937036506735913549321364334014712885591668653552990666739179878527245946597712295005135138901216190827716333069107750568960302393565571493103056148574337466666959746926707466774582687806390947881431017587453617715000380623707194197012557563989627922717331822341502142105636789486792103909286236473525004620804996892429256335208836087413330142752968560822658422554303721887551932117515272122897637540662839584187302541020225583953713502382632193821272973079684672945411848274474222876385179368190936872623713236925240631666932011495304778524812607507988299414775645909188011943055799591198505128145640573919920242009733377339033899425890883196431326949123914923026994799469986681525488749443645071388085205543433697307216614030100508406549445685781420250721687344396212681745257072479619073125244206279282364220647020066415230278932742102446103763094791456945919352794203713102855577614998938337721698169681790902704013544745781582085830721082560993263911458791632187517480213030419327008792796604948483079261261133717068747422283019563836645342842489024854445906169823082111244759169942217812956827013556557470443944318434097731067102131528680626236208454625888083298405465460705640196184895731879917716783689639892318632542767904685415262423824430487875209861931860563460692352856124414967896764327882360694525414477809689185202190854366666912713269835254893804791827660654526323689485431773427164223666872938296530108928051828688760759273302113514669468228174950526542863042054687557705184116280079891077118190510689133633751901604940365102844022412595399398255870083388789086415579792503074736088808549680174377901971420403881555624628590667994209844313367010672373667952883369680489733566226048468521623081011457565894157727970564232988097849850230779902702641640268136901032972048803719967887261037065233082701746681944325363851745522358141397867530731089057921873517201434201321968636391913021905977086899915606207355185788518170068468072162399574970962491654027758413923608322194804899881354773917826581668681832658087087542292998805621329688690197023570529390740486362769402684124280283119591618207356482629855674428101854327965354945739409503929823768220355496712926872947711436256348716936998807469585320755398114285698809182308883444814282081976883955567188981775736073264079791355435271388482376110921143252600990057496854326947940615734256321732766662284852067168755688292962657685107089604895905674267629449753781311446387777902311935154070720767762069259275264814722484742061911596165441484048172583072971547704007302731960927960697730078695272895389434089363458658593758105066713472634721841510484538580148116722926193013736253046618408553964917260828698189623080508628728156385600238604329775334491452940152260456380350446277836095494250959354517036337432189048815581989585527484370348522146622952193940235961030829844625597420238032012671691159612349743482966370286258471699579041823564103331296168671657086442701683416523563479946592503222065303700721717902258784332527951765621600211365281880902441478060649241854871879488615022028540690227744966387872586291281989715593031579459707534868793987085793698778605474419429247731844843622497467321621248485915706615064441890771399553636435424487913033895296352101448134158122898481776937313939675329164069068664773275726724507142425736959996677122164904566344060965566116176067156630486821473488255079536133400566589586358293692364905484398073044375645234057200115688798670332382192489386049255718285179444059968796800941943435158200438190347364855598310733672037751813867095477942151832194697287141628840188190869030108050944812439112459811382609591857221301308664472834909516472904192751953946373443206601305305454268350775279913318069544701193862345284624914405593166139686104008661746166740888193641996608156926777680047759983623325461643224178584333827819972761588277386927521001895094092689881046638830435352133962797963340868108542627073069468998291576824961905592136271790759709370037904121574494336700614492910884995662368636803508449847190509779563329226287867428467296137888648211108432512876174398035119785306630673026474233109237459069971783950383603525391823515403784332662596231325754545204386735698073817388676823007288882866587451092737125761632601847973241007687931067790161603652530462396573200585574105590780770995466427549458347051599536865878737498439551270329693089067263189005670678259252464696969882923210057681012776682250100490483898565162121736695171659909136094505606101445066244117875313698991934210175193020296471131488042247942741245687376053934665924007523561248414205133678557630165724772787050461736766132163054272415415020266535975391898519094435188167660836603156625288858426787308477809601074258249222732810319980431201507091584046886677707176815432094478669590242216559370593267406471367612515832880946958008964738286118887495137987445175211101498045007504994965615331957582046808769158130330714339977597061824110598276217561181197176023551085598444304264810161365350572066768935929283166395563687839760393166975231958026857712176871607582564214268881608742872575098730683512110384432941272578346502375229843492031441344197587743586555107893581080263275351781750350884355661023819202180345264975647759014364568534026990197023237157894827921251822562134763927900268025377184927723854953234493231931602296585322959291970514344352783148720877727365010963374665311669404579716975740972115913562899490970281085466557416558208264179679125411704630875380016790047961851591180796576794042942065816470997581268382960520768139058965774778475614968620421658970562547042340796987143498755511237797424159336149564791459876129131998497583086460691842732051839761424228042241795860991044082264177047720635455612640088204593308263386718600905616101777742461162176598392862591984011328621422055388543082413107737850038651717983012739295923405918386921724995087275749498845871621840034935458011908038581671172550109858272167933317742353197934790819280995557068739267119655121654657705166662180847564403841342103051966710293347055117804846693336539621165587366767520778682538498711226136358783684901009120065653601615460254975615327285759915247700437563460677908747167789276199396906219339746458673085447332586148734311341376025263295351973484931231618055841207516982900486106905236040522000708758850165763139064595445957583368609592413536350650752926293765233541957797844330152791287982056957930024038690279864206729277771335453082254089631419616839555982748414051688700854823570337168975568302181378260460917824014131135513916883023631700533983079204320530727923987297033075972075489864194748734920057248647366116215815791714109227124434252688687875395051872843212386386280484990647794217287890009039106628222768857426254259963068850267071070362110457852413517716822377894717282032266004572182599192388857457187009236594256355386439057487790781767659751047881441554768305011246696385100375915641443891391152196970802093592278159156090613140838220054710859011917482066701621604653117904498104520796083053906208902215497963138512548214421683711804487994961985368234158747312091672614319278468820162210873077264083983637952308565614110394568896170703994190921749202529159341762082342895714166606667760326719563715817035366030923079788403517589488512530077736273614230063166389956585067772055691709531278322913625215945664483824545722999785980414915256447133186394985711186887050651520899475305817072779278772298795159658677704282910676420624306295636067960979390208692566653437323134737419983475252044668603565577272654588171496344613550594771805524670272886644533139529704488650387877157484430304349609135852487215783561687819656350939706448058751998645974472949675866502187137187794415429670780759138336500480778608985810538781037342801812698591735895328462547124549426215311846413923406073706647480204463900498640351558449930957088567794893525819976307382968330519315791775049199543746367978589605842882085797677270482391048674414856445309289136173273075654001499273921192352147625315464199479011486991678015449679447769803072449178566930290500675914653019532156060561875792501517693298182072611254665878970804158149593679973918882543964921730569682263517159908441502973092393750115678378609234727912071086690493139223601777574574342321912203736974823484268640973524457687244677958011949250384390957513089296811222912320847596644362916149472701599024328760960088428236090739760300044383954034489858713025094904115646139144441934693305631834655299446294822791593202686815602156508739542756637232921268773892219433188835477583815853763232019607479742520078459721733094692512198425130488330393140676120161077285015595622775373749196657852203360896854308119733609437681255922447398471589395408961595967683705120757803347857896916082866288168587808060481093881958351598095292873542476446722960701123201142517447208115679226648929589846899018492685147675591377381706926445736535834742307609839812759248334100180677264656695477034607650907366914011587610042462346912729908192774115909705930841816948012645886599618624876431484971696095852515782053181329251536806983177763672136246482194279733453072604391502197216303548707887694126230285742629930573133361624339133032499215087698649135648191324716226993058383022579972173968086542495128517401209664850538678361845246413562491869809242251207184644702536106133787035470557526643482450031291133798223676404112090918641700061650406036069572491847584206956910266239538893695218792964826719582621805559470772846905689388309927703356294818840302952620058862364642905908163550707695099571248457761952063475484192975921525685599563353537259781218532369534018057798931335741114769091579378060024096013666565419186276146718922875583429846955516068256236439512111561441838968413232663300838419730561564361660049515872716032694949072798980772858065790270412282464337093612162340840475924206117594704587063720947391708628195937463884288636154289122466693809972288397577447678214721781958344771333029615810927718316615017484680150849039642877757469330278465918245726385981512729703252144225377975173010742860912154608441690203049207738766108686024914200534362847616422617410794147404495527622519871088119039086174343576899329135587164330746623109677757623785194335693592907079814289590235789219540197319767688277940218892336712199867817086701408555699505617019009829700396890977028454522837697203623562747052316543865121177540322939769172426956150406289012221288165335447917369400434379452546802549829260269131837315222173389980220741682959975279565578617793772894093271213179773117358354848122049027354083341454033469108770819514404811907770023400417370398489929794482950312609593204627485756978981883814251831244049862543625564379422381567746031763324306119571604124246552011524840874237948911762564735014498484689668690316545469590251464890121544010121394667298856991397293755244807360917451991238369014906845484235235576264355722282683570894281455100389347537251566477798126668018518066603998605114201843189983015525593977076938010320706578788756302944918049407888119950534163531665653683612212505847655649364975348752192347679049242148790248587636727933874955716893082732813134297450963675627362268874534979783490258751588436102938519441725044406346368443970087056709957650757927999822433179787305666658114109775333164784596365264208548912586777778116100232932798786623218201254190442805166491390290173893471238607396099909623946121386827609237225109736021767567020341443766993799570707716521708659838829528176950426935910677565387284736688094382706575509008324419612267642951129449249612510889507355481678272492847862257654981635874483984034427237590033687151870792390025340007910115828896342588941072829269078889222823390834448053719773170882631600759777604177677668192332758295932472288551866461222075778331810109384017217878654889893929734760868061355818226476115448826341795220083402439542931913678570145460214812255170921043296508760045343369373760700802003112501254345468487723496603722004718235921689148836906963643083229279140568984920161012804863728699763905099774491114132938407871315507840870128281174223152018125616218151865529619229563546791451499397632011348516865278709860495541321883034367210128050072518886336939821023386673940078335384552463731915143874704918687285953118422360147178504180880012311756610568559679011980973396456944717538722528318121884370489724801694009656548308881271224200923064814078796427207555152582936244926417209992042517621877504299190949281180808202184584079920734057223570690532970433686668632701676423070517175312086730142143161210006033550952418303447535200557458637284878727321550153191079569970613953562961575035498703919706588654406004190202801604832301897359743176743020749859142739141693900984472553257874116031185482027830849179357130385932749715775316646715128769156258613339197894836823562347861930282717827455668517658631889066426237456643546834575385490540503546477162840650710154843464397904598122948493846034763156680603146043228101659520865490761131101700469244138268996908392333520150593917844794788137426396796950290337469127114345163011907256501831872917966679984165432923275510181964988802550950361694534795912313533778843966450637697838172239516966196833328039991184725072696682079934012747840351428408357396007632927103505149857538679115899664234141995562079976019494760919248897730382310252717047262224486964189346030263925335824062221562332227920471353949183661794815524236094648123954189762141159035878952301177062127674740134808147458077433864662518541115772839097950242243989781597676205412162825028424768303827863452378456072063928840228072666503484947867382161496714656425967075172651379228504093774220580861866426328077063763343753224335219541479301368182239404283886065387044253206073723400503068945314887305326203054170550640129012366662897032008612297307270147871116991250894676843578552964092971771626496342780319217621679450761221193124751343799373570816084063975327217742242161454442442782745896895436602692062858832720962285568528640220629951272332840567208685115264306150531527935268088420984807783131782279130412517762883290538521165413191061245966156471356284558714800544411656954029312548942506612252462533556368193349923290668153984022370833223841811757373438225970850134782129403358802658624293553975465819297939194279650969466508924251391009953737966569733238173062859202729675267885590294797628975133385531246129798784948724677833987079099018738734306905516227778223623296256932300661225590027597466604944656365136199555696902374361485120273270406033947780720218371093928119902887456884349460967030374026167368393619608752148680993207105474950641942565038443870932730206933860060388362170066798159588850449822208584501202497535367928267315847679950370466122407804926762651358206591007566805703697007041026392662139102084836975458944608472953074268070331342199824800844580888881056683358388289207943591401521628755104167394015215744047656147037470203255820704224888527774379343421851870085606028516704767004475868314044876698391971650217601003744711031769944119576828811924559835429037144648541192104476640090636737466522947322882759713946651284603366351638476081819462639168410943287764975467000152393762472380050182147998587562627406788648419760294804981959221740131599612253505013012244947101588723711806591220780673810298884741339147801155551363850670304667569385766406216284293408625361845198832206050728844797792488033527493328393919363528107895730583444972791482327378289417137325611377007285956005160595195923204339335070270190714050351864133907344406534944063417034042281299188029214315684907800486185883683963744421938616662602413276868572540683322884305601267093004339287833831788459740334568368518895892057202604262420710948861250731082701125502329972262089932427323534733599305109170602562518523052393486944407247703315839570349693076386742729423088654071734379919275959955039997181942282663819603140612796952006812161021030707816025205568161842550578906282043083661994498297584491731750516155404808439187795960923162626536108900403806160161248681376704084248809060417028563447581618998288399940743587529257857056209895336336039198854174230893226581329970881387807752430633914866199469503366880387423562810894627052450894284442723851936816198810537757408710855763444315302930359359399617288115013979625620700624856406596922519830071543189967809243240101627834527240641674032752119780654444448985446939970271298343610493081073370380485249735225302783359960557611168233513311192262803774931501800872689577314952263375955930951039586394968747095803368881965708278627674676268014556936413477261341081833100441864324468346816696669040952986281022066431613504240313200891607718411824389026814056420164058504395502168653459851888959148761935115699033730024769941508456178948768419120645422932800216258523271998564948524925681083835685691164891680000731957686334511973761500656120133698656424230545641514291446096387590392583231212748652193416605703814834073332545240896310272838346059760221709234885288105293340348646650250787958823561667874834735384484667818647214383623745882051595680588123387727011708265787348999757904125686070402984733843398130082893971484442349654118928321654534165473980255971723944707639364549728402568758485430516747672647726857407717450280372969941661200627377814573288413131092529603789965430338209356015074410358381061062771289432890101461890900157183573431104371547591256070606608680036893521356416429177424973687243862478650243419971623578359895444879018044084024325079482540650532394090421794281041163852400963282023300799923674210109564096100561727461327055275070134434713725728437696149639949393589752001846509496221913306131631292305643950984937669633588731707097214472575497973158302755619812191912430254269505127947787446693029686084852762591290887581150781537975842021777748564740687658602720398509292655150921398322181665715872680594755091965354491051742276883974872279298913198553279536885701504523942582074611231652916843711570960416183781058304338840862540398995203489627048140914871263253030533861511125312602800879960198161885638662594841373970996031483752903476404029610410513519581541425069289234255174792875702837590512262222138260189304902288947967799275868365884568335223489854772509995811388193616093954391629661915390356423820564524234607766658824788375518972172034769830256892127966105467879585430238544331648956355839945860606074909265164095827990685450488985922044630729785409329922421623699214918781061364091768520989803661439789556862526883925920413440037957263771539214072110407086457937723539428893334288056110091041318531691403766658066001615884562050666490304026393834718333303059592020059586188600778646781698557010107888382164617990962484955665988463153601407248518529632819423004125456063395462916973760673817830402768577423242625551569759465312890438240642159825877939915734472246025053224032432212144318294063873082636691155066456359959847518530918257802038596759313728352664468596469108835898746426396826179657386242227779897727877257236322653584200422579205209095328581914931406246578243080270458824990121398953565012038872902825335310997385628836399767667602754881135645167713433171532138738880429154853353097773942134341397573822068398457745049238574427385569974163508641278532235974513197847211535794637656387203735154892910320992098457725418454495317624584207785870231696721069782539982190969905033380286288839566055160125882260815842392399778882242358134504795094498668557673011052392462265720957988707934779981582884872575248334697847922976369340451061492519674827906622580386808829349378250221244620040000269375820246390959742608862310905314084456680220160493297253758939532598513863228450411531397814725285649666506708468391459230750067127078218863603511321233363010732800684081819902865005228056904320324249660078131811785247555290183600665071969369953142994884372298357418666299079851674583907723591660171301698699013963192913302319828893064118336808444013683440856509241828572509104889307278302057856658638459767254004523109717200587631674665391610758150301099588407630381183733544664926194611899064701018836476524873849540249672882833745481273112161455675578320104844158846443256277252271563989326127096761559412946578383778007294208612594962166207992060411388743894854613418158604519849029675727853822128172947518074293723529226280156542923662409629629373423172555952219715036716915378402546060560673143956020516525813758429540770575857297651039502255382451727596464097821769846385406049662396768340299367421234345767559197226514599880411310964619558475640078115601670296967125839173270516108306758281170378701021284255930304796212030608068892832394346426820197521934285663142676411008084899733024724427327603076836938375267573290297247200356104004662605785188774515810181700835006083586746862090369259901022121613215863594110216913459705340731161671503745422360385508206721623299639191899875042692118242726305172711529566792556021645799243272361937026003235898696376588837136369013438909533187802879404546214636153682361817071112631721889528161915683991789539179319990748073373264294558736404935197788595707748560595199340406989014903465019530120804349189208917458763375551770093678791639977130322902002067951218842930196911042977739689495947350164744597704682437319362977798713451982685408484772195512521584831522326988498556279955530554315448716874097840380935465769263516389935433099979647303645834327102372635919136544714996051066737742034646341774544431799409320754998509183376516585537059183748403942407298123296616787530877112488377255041144823965168882988564889053118349512582366087541771730236753970325759064780165299749079023702741037117606758122445056630193463147208759128080160736572389584698665974780062097706147009287361970228470111721034290605887844770468882177877368978134033707019285099083515570807041303501788777446334838700312375630560800912630381684385242698644948000355666692749621097310283950825119503029762449524465464088930021354260322464698833105737445344871124379810344023382051545904565085330546736180541331039622593000937531814775902756104379980555694885975729090365296503546910206434753834083802029934610034371575607119676833471944767040717133259735776158934296236990366733491280083780990657203976731541544512909754521159831357551218403410104209217907850237231798938827869882784543035245836041200076488083729761046468933019537217194303786083153363424954139515882396052273717870865380969264085294171284697990429577553665266217794357487048706570074633369471282153146005021768813510522033638284151774361029422834401811059869879265001302806211485553682884146789585602235757968159798229642455400778455866242346570947168744255198789587525763086705851172910954267723820137292610381778492375945493549502502265308540512607012139076770270941889791376754735999756671729675779485042051228478852735765965661494414942904373398136354610164560877830535600499145409100218979975986904790480878768950744451031647992301668354884472891181308651631220108953319850434884488393599520881380287034243788801326983773769788610738809574729338049780621818637139238037465950673209958598997104083605078852416063309991974828577686500326881362383522811599099696177210611925046260441749549150303786613217729448218366530879956938325940167710760503737801874420011688650694010399281678527294509515265607306296704034694052237813430048981824790607143321648006378710744805749776813848020179794965084507357075893012246084423369363528903893416330526466359071142412341872709366383330312351859361285109918262207151921594675666594500484668101210441840472972221765069150698533140922047285886907818585952733383037582161505336349570334730857715786584427598042017028253166978719195707100777743954644393539033554517430265638605195677433679680903446190096671689551116147903421490223453501059218106992769381418319236508582774047618279486288017795139257315765147434040204490728118033960896160592993555289847999939140623358657345041007280847287985643837864078474249794220272991606621741412879109649705568595602461953935179759447716500241983454307286291984620087093235494350915078893893660005222795113035714935751545885869487798505283186243625371680468195020904374724301785007778355235795382546639930536969017725921572943257857056239937967384141435502260643082056538286084256313031618109924730450253577679308053799233259231760347517462451615467149524332475770675500909146825486829837612396916538863204427638432446405108656063568787824252923613463811666639164734990442492285689392443394974307619195527305385681783294769484488520680653705829662813427382156027591855872770284035468660708390284253044694689111884982487505893769155764741098234483339625910273841518187057009264866185106995474677816049451091520704543856201453299985330944842889318447854624921612488160103538848266943490506916426502388906586197403513537584954385457896072713606960274073196818919444519656648327223400922911892280787064693620108826253102907234362981238175521643277343241240520367130472249516010145465966018806216379751227178582436757813240865145482108452871257018999207129864601513602333090677410244864864837040343511097331766520946315588688373326046112560819441397144185517034776239978411725143527933026436931161074625881371932127399787040449025383485651626392859548063118118422424579640136748792579108277489196622275595212811486845220894237375473768963840337477999583310161244888005999861542578648175423674368648680217448137396720830398209487718336241742512145141691349445815096543728114448039505544078031623377367090919283241158629933616751008319092950021366013496604103819017037310024822171304117492861700148426317284185923960048514228981455422807407005223860961453447214648569143039829059833808437791139321432654288641848667931414837778824650866766774360798930090475035794442318693604206175254080393420492057698112974618921581275675571924858843211783793735253198960389859281848448035019429405668072294354373155553176448982737838684767517111830110436894698528204690913887763162295834382357501115801823351858146207125373903433107471761622509660226946457832484141516626972605232283501079839132837742155266372995837114792681098121658432115796670968930963291972961124454501894170343182197335990239061069596681455658302162959954934879131121283351593551025388341263304989813868105465002443113628514814430026261320878854822553233868692530941931417081720958047362516878533933786464568612133181041669648769104416123616809908335613513716377291407946652804889538133340716712022194215871202423487184328217347862135744580085062560897567470583216914621167981271293478670431125278795059836506525096416558939301363041937514322612839659700965289633419212288532068346008511336757924868027686999980512834010635261351269233784292774154488209194984282125187402060347777952709682468689105758397741502701858287891238202390304558547995266090205419046102794862617622976952160911741945726580457434533866206342555603848845021441014065150298833911024641940076389613893380394145136603513841589972891657972905518843690145427350497809319228580600805864321310442822189930663645157457724227570707135788837783059708470920676367623892915272908358357003396218734440406608332575481449585576157509344319108780360500024307543385130810282690303676496966037523053711056970279763679926174347892973519854086785974463994191909006275948319650066752419934184835078234841809479855060130219659953894076830665504290590945392684917156811129806244874597231041586478534082048440680228564277316302274112750416565492481066968071566023122152874114882991208010202036906383029804402246971837096943212951527448379111672577692053622920365806402823510643681657826588860032617656181363264951518713640285476719589553286781707264942683588986453696201323900567183778677443066052885805981682649000739709346253995937410358896984717389371320573726643959836086301601061083291014173358132185622827924865809606321398151172140207199281373590371197875988510469849534305446811137763487264338496784208905214634932666735964335077653256415970769652301198113148913227794863039391694367446893179215792794044371635441382584471465443211532715713624814686187236193646082939097905223864023541817414605977045661882825482085600124837018682188828008760353327012532886255428190338775954385553094161369534034350398141934968218576408741917274964410686199755192615087848167588898572245167282830941610921263629210379138738997575939906296926206667988296146440788323067844083755328293136871395894623131021367562290127102090373003922002230290668160452173986794489777780059220956733545794559175244903644341894855281171334865758684803881580647998498229721050510024820295243753636556822438998657742501104335731737544315284938809646886359469212197203836895357466043067071256863397836719359006665624016090234203536424216632735130259701706612873140991376763796100555782958516754144997143341775585833675248739775762339588487833391307752399250672299171236482786686689088745559792292729949289085011282463071374991671588183830921851830046239823991868238304296438146076527126634836279776572375726889802304402071072254335826520763263611052335779620127537939445604258129098531539455989960037921205939770161386133347754130780357301136784983627131736136748998275782045045100647145979086324631336384008663650983124052610052772043469084588820258477168284781484953444317168375705187593161122238788022604588874491352434966139582962443181111000171782129669262549251821352771581144627352267954656000229770988032366003006796999517948164244615407335218463989198485892179653661433912839601573944386414565602870313066890090560902604737393708128984719438504923185322735198827565329290231434430621089493867506715981581136699087538328397045960798568038687353735084356722648539652675751281237323110661600006680036414977877673069245313192375063113856216516231691792684424581682979350274927744393056237752472517516620038072347118540558978477309960852677056086415102183605153531225919483880639351968132272709767086059949838683176888373920074216442612734462614224764375443833704173320469725738940532295933047083030933285827517870642987245480795863721108220881699158318414384544218918337364249358187898542808948217101738353410529602682765296910938808147300388941976491232654339309431349387979870146687856888090297939696391721794148122618164542151035137776638038007797324170360631432049471551162851227786418814420125060498785599803956189745163177245918598560346733728666806133882592886907665341574447642286656351293068323163895295447768885301465792813055798818584156647846804412600186042766942278721586782099699055472485347012899180623017703784145844888280956214857670785297482940100350075017160098889954621649213842503497841218141392085618456848423573077600868145886569693804647370546017437215215415822793967681112607747700375706021980031541157997486800689390083457875779336885844488970262135576613486387349461470067817084477302432547132857750377707133437791239306625191210507886993911430010222588881864358142889593341020816158371006367373335812177630637336671867629291162882013470849104308871869281519336424426685081743715995114089514655648824614961787258033631365978324595053095223738885367068954776704035861243845877477016869302977102500823949020357615402375673724881725569295988346343044915350746684131517555055863401043422644264731663827117047666272431808056031385995032888107111746680205237006496595097765639682084122136055875524717510572415292370051372076531302337828063608604341682411808604803238602200388406819762963548069168306761320573754481048116408801347916138922908684824127076457837214594005613389480193557542788628644443392488903315880891854393254859846056329578400020808159966767913924953261382305139388839741940525318227092537782686688888584024911004121452748612160091264160456162631489936064884599797714977913657890646654282350719212262980781642648719222112264567699224088937930663640145571536889641109683379397358336062655552879913156753528781307894541762565387896194771008856293291991798323792289881326085840519587558933102991481940119638426450904585739204313688834816570449024000271888670496277680414294518370075956381752341400108256391527479401198520404818486949633285918554626336247118698402189410928172967972864336796330340140906423520827645071599305582008096955051278185809177228531507785038609488574813841377673229890110935193690190768205526160503471813274372123004382146778244036373192013700124900205197976487901502227187787919004022050028202600174393546294664648196133759153258692613272661352322501275577736598475915690849121593986286157812994761583177463634966770593286378612447832062811169347376539772944780741478675645275339989112174691583439265271349085539075669001055187488862932847220735493719803111363723074853500168012754130060814325055015405557990856792392255315090108403084820617477869331328908787463111668961877635682173795150096073992033483869181263577090481099596471479187889409030880645255291305001326051050768676370925486920216378129520429884988982934551345271099213027680508339435379193869252631141143105857923302417865582438656389672960062303157880585822644578448338986079465130959860025424264768545824881096077456486257358635505571270832711112174425989466578411009020445336228966424798439202524829527011943663602979927594136209554704874022441695377516827802669507539109970996154142560965486561508670152430585959910781693661666278128075487900832290132634912890035676022159619699810917944642352849963764030305978909575494243563475542234445120471102215071876912537054395518500193002629128775877607732338009944086624842901496315205442100883756842240461743441202125353006604678672265418412027583595941104228551413263985154548766126643139514212431871379733244502428790155867867724574152172045842752942576643285800676504748124627284813412930433871502588816155760589945913315223110109872843920597871369936911004904453067703579453758243023442916294327264029419689935942833360303419717633301102769627119139418701796779939659896537017906534448706560959292140075867241791967381333370612180221869104557304806102316283758186886204086389001389074591564454248308561901268134019384496780698780021409693765846249417924190253464271373205226519804904687005896960563440849737873982535401104472349601257995747104904616762088687885179583971217911006627076325760429561492487301342567086515234590608713537045018551522817292357077657781567055980288797456975553851676871108907317268735956406716024097256397559636864790279845695547834027426356656889018958189780692186488205017198106802238776170867530628289036996163976172720015281245369660187544427134822633256878368985853371250920902258032548760345990557763921311929225910830888870394026291548502379436596306204774466947119178494540738722074818386345367885724090310534172418654638631486253046609196760633163730867441674915011119005254322136730599175236427873190882009452582477825972279692461389938046992639866617397144827099086779764835949720744683280349638689409135043376348497965202128736021891172783469841364689558517751662163032601259477066879785951762801974906329169575198113284873583308312057107959717953553390173417053620883501273312305009330106652379153818559324977038804193922583828726357943529327000464962197522209076707106211921612481058226082139105147011266392139547909926709289107312219678901213874163168214497199029616761483077054324003652307481008847335448427230810195153242405265164064916110937725350503454266571909030629097579975001762538926430694267958006844101119063310651026048836488052094025212459593192139630683813838851868796002336529405558901167714032518180236661591866664957501154919762107496982655343566579384765937881523713824337902088033820518254676557206829445644772316208748850427198456512615047024910746708689752157816864567150076991328782996640686699119072934783674535906404124659949665811372590549912005980807186931174301577976929680202911145921493432849027975325704819477291442166475030535169057990601359602796950225491824262771578288330021316327875612055668657763564890143597292710241970908638006010143623476337486484431420153205975207039578783116818779658026414798784841229764863692267570919119958400004516950750585496682658963170751604742417700157689425989701436334311026271162124635863187591351020837250832103553020131660198867477293315083745588404363633074701422436946017536141219123925695668397998976486227888930348483388631983442398588138885234275206645707933041314750654197274453065434308432499918420346703580962842263073411688279491714379898514634402473469601495760984268429541320708814981957756739697952350546165436329600489577391662073222357618049861081901101357130465058171388286783490523695486721920610247661203704444071507705262537772863290488739004359383442836254690557299738117571875259713147983304624061477583127138738115960459771630216231092273984568284903369203825397863599638033050142636972712328901809574599551543707081278334895129340673914026793339352447784218848302524278744019388045348085926706249418190223817396209859816584297724983809839162101088095583852202203329252894768792288045302833210592966452924931118771116793582282346692298554613346871362929542663357157607903667144689316454123224989296928530775550484372652909080672452523112470230619113094990490211149712001397166248735144120953493135794715819896764455836790976369266730902812513941866262512613959070982950863591645248919518086290819512868703213366642652569378695004959698244938313229416058559751760755501130356177303152936826991020958030604277215239709752855952003113191475729138747061699951494502204838416928111856043567017333162765622975054402702397996674742283285209684878336415125424683971685732054881339364421423087260092418678325241637868442193355077510515699925756328324121585296930067294674850999909567778004091330960690910585124990534664498546646057342405106889554994900230587132649838892214268446029654193036503487025055471401968125921191364177380092437082106821903883288915520906986540951394942657044037062829510754094560346083431662506463918486424972974450122163694969399276376110604156138848436698162113775927798619897878090347958879993635568085100177844200008827938467098282220047506528958828880112869083406356026503423716706744327547254134544129820811596448136532569971221809750643342428000917067909236768369274961354823066312320417180500284792670809607938523000079511649324339006682647001936800092137465945214989707018346547696434588361291672524931839448713491913597930550973062712720123632808167312969538908220130337223573641144438295005216102283717204158462371709907944053502744179132189221852771824968465315418195070640850554302825680913029643480977529027065954540193650119351870578823613993692047757278822726227511503882132937618159402131111602035595178569594809423426790217348614222108325678144740730754246325934459971054341497679978873926376199887075178224956603523446213393740031437992645076336295105806891261343998539684683860415878991863639690000819311775748337806166927788564009385328832874144308682681065997402477560356068379419676288212730142207324533892162531394639582097224162639215511855145414978034942928601299211057418693848857561091874091719374572930489924803028565311620027712735849535980265816699270369598288773082176650670351078774462168211639263596154117764572384383394473722535352144969134768288211709548126862553222665195948519984355121141158585761071575488895389182578316725445029248516787036677933152000953120552168056390772788761106435050319619476850517044727320636051441026720715097074597249325850184280909262863442914821942228042532448188450561092977166964450187262944971448667969578526682183185192578417385782504128652704138258017294299945559285034046380083863115224296882320920300557961200485644264947026766130598816677298370522070351663335008393220964236197816220052294743734488832820501226823590961658573682200485344946913280601616608626839380326829775165813052624902143514618232639127658513254485351558261283371183894252583993963400895365410617008983297914727731265246570399719007219843681917202722796864334776656795822767684705724300290280458872398582332383515533490150995136156855183097565418250497829400286978175234342749848754972804751759733836351453895507125698542898971345321733356506695968308326744936982816048246391593008774656429688941008322292768150024146501006208758217176167939686808292435746749096046322547451125093894091274968399094948387826527958173828391669051683632180357835302921838306521336844280028863507142219927978613093324427737601632434417338697768606736448132564062308993743399231343777966921266393578582967022209466350558349159666687867942143240142637712965490095480429645328198031018686535309994879957409125881191235917841534776081033201751397058417739035982730242908077248629498690298601525952903691710738276151779416117911103067296652544436779878711851067204850029776673010450288410167589417073168389686715029203981963269977195543062242928203314149369156463095650339361293932243812097152297167005568975033619992871021750023612923517684664629124133907712120413465730787849177365155318592799991157782397725678412844594187778008203281343573599477151237788564426752176701170593990097514280365926278449898866575497950551259303795180341447907396869603723001973726026422366072110970285461079666842105966771205727876530274378355392656021470100775590342539496540265047058865635049233492777434782738940026752637498568412743231714650683803875075708059007637366556542803736581476047291952970427682667552696061822179380498351160885662331699632173490367662694040008911228472339327531995039091570855582848174563609038438767230785700839657325758926309779682247094933552648689251996169270947160405827378300706505015542413531167545936474080116907493373648501010742257486779834596356187970245929027997010553887014649019299727292122410815776473686599831460922627771464565820254411388945401905333840510842220169430791325080040215990253309690420133012923664129308025524617239188951333819603029368046118490178543709246375699759220765169838009073866749177594859916626458648529288129266517204569014965313637675029358978532056404928545397843861438291559737540998252287091381384756737481616499401287863347989135126758928307013368072666534947378936870965346107225379753713680296297855940952618530165664398414566142044995864764991125904428087508292348205549895903029555114270284247057458757712909600349411163052629316012626342415167062350483176239684182379553861587296045523293926077725044571470688210965946321772976199512874182469361725187919541076117327472694395581439428850280042180134632468082895289660740817103390553096011463426989031890049465797206971659434207503856688172332965329086047877283384072529084302668234395258288071093642965060100036101256165573681269675680506006174574494311971514424053354550545670772301249843409039275736311027096480870514798052090202193511160186345722373871304112219779987079185170082787688364867218842198806625150255314654052053086752511129106636902918189115888589236659926052812900656505146964366069711180915710889906103486686488149799377205575328199140503201986734375233373929738848448489331281312769052696345218053148199057282867721313553453962003793914599794331128440602182804336399759302480115726853848288984293019035019179305279510853410127005800329141016288947393572699789220992087717865664130147859647637790738451827746398655996398457989923009801302246236186959012507838969074386247717314456922951949387093817493065837590588299451145181750577646515297313343699655178233780741202589663554920054786009662487763163782758559317269273091128084895190966581585082687495375083955806001438998077524731914445815611928283089349451499355267817465593160906122180096823719582995480978696134378636340577781742894275213424516344624705790798009651422882284030605211355882502955337050855863487782061833272633317969761410908435108233904097818322178596872256792429177850454338742812296655747099485860569476954286575434784583517043282961247781603599594736237658946368427966395426634748642812324819831249734352898176338368745788828266166699837493496898540347501480818677881584699526159737660858243657627805265450083769712212433904672765480432989726750172926182979884603970960010032210257462582820029859137191098639198598478023035729814261418111983105704396297654447501761703662448618454128155327951813016080794106830797417156757404409338636453419940420794228248892235009173950270890723568058923646701003817484130076158106104040969743324208165335380918426976612133822062790285465463920083794795300850034501345062471989716319848121517408141911290271457511559446305304128810154952910427149317470611300770845747018099829416546696142640779696543476377389874445241281471506668007189873291933323452143210249026912110280883843839463809447144018145275427968087385889646804637966973633638706231704072516115960342100399777223653030442453690757077667693688741498135860049737176095415411329774108706944399385500425712532540674893721547572979427861571462078465118322904648820344445869814230955022713855995094584569149448961414469191865071259586694470866769442851539789609473928918213936953817373706427500549117236539464663956250158228827934376084689564381988497520224298033432689907489805876104934141095851260203908022301945731145419249353628119228163586188456789715904992555093721219050476726600840378097225361703271247671124663437336668222008488222590835333237271044274013246498502628103214324896816237269831603175593560364333234334169101725807971832117743626511428225521318462595526456272180742377623643821922341392124189645519427259534148613771024536068723848832367347338024823638648142300920485093966874655912535971736514343917241731777917678361517159922040393448322110556178106160511832784566321702944260285006866708260606669970356335767742439245910940198933810935726983291627525393523711583842653460294356722717322286195793747037890128669273652930511375900329565433692767838125105322440805043931499639870298040704878304397034489799400253820415378839938575021358241153625791259922391304945341874783724940877858265274074694573869521085325862647196260922341947472271205818233036042735035016573007463071204162152488737540753512353604621964483216637734729126443713492936145302110862211539696954965377434118821513685708972519330672809808684172562488362790580013250561751633879984752572608762918892813313073687628567819039333917218830787279158708181505813315832532627727667572207842104761425835452044503724458243807119241452044411658409585826936021666995671158936740404282293535642854282062766010946464024608351635219331676556298196138856265802483851670883125141024131305910735388427714161758114612004947428998137786961409455663654112187881818279228472628042731264562909337936862778728261063967936364255027669952996023505774457856575979559707837822980312337985009448023789689724362324717184557933204914365007002139049549593492462453125826474379419607733881035995148863231139917006003304917882996116538304258033402062265256512156478532961567191765840879740690550744994312962441120033894077938572575859516883043996020787371502133431108843794776823260853399554957984548801535173629384646324631725677254962674699392610327756267261996254969694493104378320324903750516499758927456453426043214104097827665792361716207427807325875867540793967679439728196158697380043532584540005781903468919838175593565008249048660757838332191870537885070296670225372582786932993987914039841341124700204446429980240502857133829026994178465608285299458633832529892361951017895613277794984178279114896584981278487288913236682629274894652412876807616552711000142950191264233851622077905829026883646455747513816456810098879474004966322743282747068956513886002950836212425950161165261697515908557105492483607878657632999864092151789427775591337847414677183369748474320993865315068571512825094910061965825857765028145607151790357086513443105034283843693892105573327490718594314849854834149720041628929258553498337138509687708266931997329890256697032507838135161209491229690636104040083950554302194254875674170950082852723709512331206398030012929511995643524582781090821846676321519548216743656176391647488551181351163007970122242041302857530282472207928606468699377845529188908940061019579406856849769568918800793583339029753525836815347601306976615304530009064204075298313783734061606011578090642882459050821208187419191753151590300676977210146891619410569559463138425008838054439770651476510528841210718922388050186458332892854825569194759878272091978083492381333856721987436038419495603745575556553386676801618724123270261988987079149552428680401682226624985754629030316475687472668380634503657432325240772682440027836771823472026370787273834628228500030131548711132330205273681809434470696306892033852727227008508023352303117745660507456414551711603610802061745031268811033546920921115684406479317497669666930823399320029440367287862039965011423899316299912657826799737505985595132017630048028760506607605350933306709926796485532348701801098933427557431335393366952226584291182406506979066063860828590830666632771461450041877334066059995632712775204412041054284819208752697961498936977529545276120744545442981535804016840566040385139323310868799513995654951291432278351466479225073674628475443821226497743134011124478966483191138664571989594813062995099416426076747549195791668149301264209791011342874191455489598197086638578170305176525311426831571444304203817550129236579629942699918346077513651373626180319735437518978339685985690342058909383078835284863902110252429831761947511110085122801807838806083489873173196676772224431656038830017846082695618661965075241937215977410547971243392079257497046179953342317932639408193278336507070182573049880875466468118488394756504035395690923671108535282972632433865465758367798589261167424087007791730323018787756158200655950434221718434438073576625871624086426442147513204578957866202797929111426113546410990249365524751365927475465893922821377014823475057316059365877374946257246308401716823348530852016191192737106797462583260617497907785135960204721250228487421687689270834460822131019060869211752006402499724099941385279968039821064672150164496660575807800899501738436627034899541125094582723514423071791533823687528461963382694615031010816547862347678755212582838221680899166976425850215517958024933412771824071836082247687367357702706195054599025522198936440155214520635091034218150075167940105478770919343385655170733519233253993062780627485099136213186072510134178681913786889163107272013099102641995428884625617179782577162183399601054020267987568361140981075757155980042822480096478630313884448860259429978188592938483663341446144131469999752053684126454200548388058048539373697805582302491111096069771783445068305400108160339030396382314521256178523542175750032056971355492343532163655374941777722014446463858722204060528214440277269889053139713108166803491314560821791545571923619367137304353487790235944843663357257304339026541046634884983925837754249566597128341378699972541425623403294731322836827814238398930193976397203465449424626889995777792935988996644071144505645646952452040768608725514974067122180811426371047905871714646929991513071872534109058354708474767300165692899352772671822096622776976639736850486794955903180583558307270186542585213810379087358820883910910976424475339221938198761182717611491495575766704721442900888754151989899875951968897179587819380991024594382908693256658967480308220433642468685484272916718643135128975363940891369503183496143742439058183892707928604475115778664677443112066275866639243957910386308338883338951733881057098932466347647813519483443103034484142438165200082559329131853477136997358960747480967304127686037072440887759603564198049554086500468914189615883045556455830103944890670617465011937503768982988501056126551229141442483486041287730532514635393428935491469116465432022385232088604004604155190369874205332528624532181301211266594235524990270073274859999390709484708493162656562781791702872452666988876091550931281468809513162082125942261337629097469210243613095972178418320305954091450729363526334883103288969353704634093971016267472348459703560659938795403197694767160415237824165049882839875555570581440905040733958244977924547098641368522311205638450529914718065254470143612758872399582008859591011375212676435471837903033388096000611366689396408182620166596310984838129407734400904408822240113925620940524450845866595567537894180606030495102556336061564746783524012093214366471973318225084124309319010185564045595696830812310122110693301333654983039833572548654165391358856091205876994994319763978713898991968600947075139450460858498696114795872357170196823578303753345345990754441342020354544803103214966188798236480240636859645374704190640734582929346114347000616907974996065161052825063705278147614603987764284717228175322478691567070302431585149888725277250480150210196259153195009031244999759627915881580463037705534794395652045924610195820646229113713978727664561392357104641150597866320142656678407211740385893497327904672702947872214249631200867789801516107849164817550033175328118995321911191326618836057146888823134640617544520881594978108306606265487888586898641844369202537271650988144997388568355010829714220089575240217156827086218242075410596126069356583181834991005554799843936241895784258655798823384800589882524172896034686412372061388187923454973360266243808382769871646153115695516545176519486613786209695938155336499933284209163145133781666324665285434839760083621304705992264138910199549827568360636705591649013544384685278233346003229593057328496415532456697424486654765947774545770148444093100669513574579867827553127912518553885224074151388939795443224697783493990346362252225563455537083391777716932900241377247783370640498510420862856292918528408482742060691380732553348880856578921539754038787879578237356636877553655292160704630227706802704108080564551293051171804585611154774309887702449773859535377647711118568728014490299431356910448449982020951455966554698437892454504571766045361040023206355818126600122184248313333843177732132249352841116427555259905247350068884494650424957836061867151497447935245820454629702262938396203107061486177640627525866663689364226004669457404927662005729904639611203006754992575451233897133144663253299367124381060940513044247265847284600308401073892868424530499376291889226080196683285949445991054757825287792646335066509536233029760001493159796060109241025757017517743612393826324501502680165769731675323964831999186353670136951478102316931779400599975147390817490622958420644430613712922609035893131634767773911120517362444249603785412519342098441129321688933508298357110340920018523227692659279806035930906806104250982112337180309868983609434465062159851513070675369086025403749467890480997672134358770574915380985414082976969921494633539825171055319145578417257573282750696250637659226778095671418732225334346721549234411280672033516460986077853940422877916536439733818536177070834063673241955670743055923853755444070890073477949425374824647710978284173230701456674822964050937987347284653849035233773066482981180935016857460255393773305072333597536351621247810047628965288379606479520411686287284582802636232808413486259795753380570901872983837696307879934056308168135532710541277524404846078547878918720091424440389627762513794167595504662000395298663434278127174619059297628129676699074699488591563637667706389256428325809345948420934042231615924071814879518254892805052117136648931908493266645317245497976018514544131514376471589778174844298086110602850918155772656746911489786605008959958131476373618850784081312128182564115542966024908296266435535746435448153535095565717975554551526285365917000190547058546179110832585309554229861790094386567033571189536840007067505971154024740375087721484629400358576603488051125637107151167794879467375480008983753236422223691769145641819253469785943582632725235175743835072205897783479607987823397988254883838901905826989853606476033435987260559006795445472545804434491278389052560037366607987040092609228573199751720077959092155098092428064848233159868517837899249885770543478145384892978136794179590670121120559590031419845059718092925738882001873848990709085681386086392146379652026803780069565196557962690912979109308327330044673856825688951193851451862433072560160816950746676546069773575468184637051148893931629926721539137460940856049405865267381503411724772943644339260289980644899501135462573891802097645707117942389200441196687597225827605561157092590453684691945052759246341040632555337443086130178228723425858121714572944605714249359455593694138640739656704327537223425728678981152610017698610344990141484202880061722447697873296225572035189817585924988518703405919632250385775152309308921874079801097409543414690087540799930991199652605364888166349649061263115208036001499600435578139798352010726313255343384288877449983458800779124368437642913020002503788539631618903599783687523758767397043385788786932052833743704646661141947970292548441669757410928727508234717727064806417694693629526584646952621857708753029310973060164530439812615484034886832341934520618984292618864394128920508040749345809288370545092133316386365794810194714108793043618685171647252415113859891587657241678307222479467324749715176994194790734034806439265820055649350442872742753804895521966359019911617517557021156996549187351486258957634151889353710152317277424180895252749049166031757526636323200880916008839386176720381981995076770424894476927398340903613345847257704021804130843082524683410663841727448925833735221448923250294581204066883632450154569302522000907149386656489416856350249029226262859608859038197794685066513059513410980753508793803102126825247519162177108282223446592294069330574115209524828991720394662287663381830250307992792824423080502991456542147141741836122602468417131320769829931819037240169709478159773156569845907538860003708494769713550633221138542332194011648822838705827548813539493543678990917867520705193737609024096883784772137150694324262539355159631286827592696305504772079330107693584811717770021975402577421886032068073636871365058971947711254404634159260774930820134307492675586399923106438675801905912684907363846498454269374667131736450591879116905845347405178060572966800943972794224266728290896385105918900230194883079655278682922459669911819107031558183970931993001989016639009329879473212553669104581911535621824128176206066160549726620087621454304602321089114285199634739784385541311689303793407275475344887369135872442691763048149411869252567823106110771435173220184578950001594979510727113586198782796209607846452311343566363294587817044809428920372099720334806938234012534594001059434327526259435612596530055169150364409786192675550013170271767271729975746367768146734957754282078169871238869337480473484957003027701857021964565823254016780435239318425746447523670611722662831180249033184483523810590062174738497657964236874390753312917326749145670292811850472925913295738913549151267081073322042131780871713541266393482878193045813602456645224516757159123973187889624853158606352606708290410743333910143725790218257173256500587221245131152701493291210806451386034709215906398967798754357786766661075683082610590313447526025349375913945194364195006249656156696008043274289436011177323723341806887308327691126970350679657994479440205837397826784009394252882514605023534224966803705765482442592303623155866735244860116006931544177874727473450450926944273491292810236126999123169711909476289201988648534638283632622537245232039473646053284553604213903559207881641222223639665240685053372439227225449009672442924938863976213961694852728637818711036292626875303825990985967228193143003933264455564277507690797327264131797307595709163693561252007708512779970688206405455411696694140893308437244053906270306419673375165376458497694527049169715908179465627512690736174718843818711797408546213838348955631710316345440185281204133619754764840851408130292296203350400952427499564755173712182282124509057267514039897831652644162907583839575140643972623692831685506465230781572397728317077682796194636373889574062420857252712263327805495717548707086143839639906660911006084052552521525505165970596636906415402164742902183932252052216067787815243152661526529836073474168177123097726592411673218161004362889712972350096528016360287084787257982742792510977356605401303930137272984093038637423880624949707133927438728782501741925553085123787828807581222890931187469181290365540545902828843548416143757393096654882369916501361565703101132128531937383994036504557568464584665107553421026670908708810734928463887227591390648711463329944036916985324226293987742714225894111575967397621230392115821291669289059967550285810696824023888909452913098341945073640209796396838618800118248033779924105181994763512971710852673156884731166154894995472007858873559323511418853725866387195356752522439890392798376850961500776472754480464631738887059711751670581461730785786536193604533756732280968049689347083081971017707758652826006129292422647763188727032047238105242772383485336101637783654969287001868507047550012646514549748819038817942850252462444400287510615311466559060592067082908379074214959936172082711333050742739915556975063419612348011795468942253460774180001689994723681350313551997710118993437000813241381455518783554202338611459905234083842756544250815954378022728633577185825027387741546619839436061609457326462718984032406449877509752800428193874699688718603738273893490979079809186175809256370045318319665028141300648735314709771530976526739004098182485381481745732047156282667033195553001673368552960271124963299819660400351735494473514026618249219574440954086303217207213578021442080432105755128839980133897277718864823645166626982774478709583886961730771956832627774938030901004401364144130255691931825536258854355793797524980256235178442988296135162173123090214062860727374476317404059006450128730614243918583429139035954418285720484781946213383605221260678810515653064933334295808742593680010363408392158585882610541509150414101709636996860351450187516032076552139912439132123731497879834233257930523192983942937948994651554388752337113591994966962079501200853640944333640334466024261979417652855051490874553372667822583011411571045769866513886117014506029436045130269493536249979055619239153732822657835906322940856246167199893478392224261587551388016014674210388820250329216458027135253962243843928078823343029520571921999571124041952036772854675247034063323732177453062593884209011899550548291124993756965620077492568112295628862948586308276919494781973184113233746028244629703209547102938235180305420784800520590442095435162687089619562670220547953586463155787635836213991116008819758264831214498375643561351910881465363388217892371145910873003168829686180223244382777794247999799830944065843181435770238986164462053774079543156738879315971924318603699321250396892919687129198600179618881228453737183695116292868295029222853756500095883659505409964507674951181525367864282159807036856673174236702534105882281740835082487419743686841355021378750006108082906978364027279175924433369395433554330100631585263758004795703825511252457378825225176245030300805636187112627910578370003943396253317361477053334413296312743166199778035395400057565426710412398795410364367924662179380001768785670910837108921467236796989610313472240419923351900683388306944197382120259169404962699538269095919845570491287569599120523440638463122295294077449111579092643620827197026955575900303774106556335485955673416717258124136390210641946153613596076595102176557385954970508868866383834642104351565785722563474196930543862944461218653876368889486907793038820788907772485858015901680948103776068823908764894641387834284380940980616466194102109654874411034283158717471701824072355051381095124632704345010208851008028850387616274491068043662089427935157106117004538067885628889904647116341622317555925313816569457712774844337536027399491318983731269539416278981083571507786413575665214720906521954196662503967013965047322457369631066212405315989311198558174252694137600605020667600171827419001864639501953889029235329638203940396851256173214657038650562561677068071675731957056785585027592505126867583282899617966566899960137145282940659765552103421626099085318142753724092058705442359850891485033342057466721161478729945410787395631206192717703371265146440981147667337773185342290112807878239666831921452064672886039528023451065377982077218956493135521437545284418159612534115006267012929306112696403348060015713748511159987036590329644495247913239775320310855469761541071019025096787241160684879115253858806836140903678862372439585533178089596632502982617361058714561618981084467439605763166957677356757169656459551252175634053549933843215367497096592225409649832043032942217691878452490117081332057107146777209506352749596138457059868811761025119139714660399774867823288795965384237265766427772255330527636318834645149580443825912650076219693733411262512850628552208225983437087998985515574385319308970628745225391862755547017348939478852349050231750477159901344344256457459251868756441278967032787716273086325967049191933218699581165016282066148309313638349921354391549621751039470130940827665568791787793585699617970858419881730296290024824272886716657510146847725194786315814483491262401212438785807442271024790095251342647025829659785108356009487337961590364256824355519527238345564015302446846961180770899571601266359125636484085902552180976600173309397457980423788081747743263457613899681666592973946604232694768074561908106079583771269781641642815776009745861941294924468673397962922589965552675556749184360773476346253697531813843930455141371363119821344832676148083023175819127849486445448285458874849909025610937190098992647436783860144951028616316649514745255413826821621803696048802319196766088092025105648921307751216066917220663421478765084298575882638779025002433300306985503842130198281055927089025952041170350888756919134018819019271136321668793038888314550063691680807082375991557450240961395981544050214759222697280579320310329598651313879529903640075475783824918011460692835603178671115587481758826066440064415739862187201122627568890505483171667816926685351197184135967946661287211758927403821591673204172706872593615471682518995878956947122575722385483289685516713604476615895747613517875359333322880066718617415482672117906927918042302394047172012818511576335409590545150369419285004410825981020368361772146825281222097290552138674679279999308354897817004953384917153643249905070414286563331503123361713790689059080362465268951231332961258364352285248782768209091581629594904268742653517463972234142760129018253343182039566396309018392296266860687331664502108112099908728573161826356024921307379353334769488235508627932307156196743032610285703757860579646161779728612465553572956423907793944982900244090538427774386389753676165449919648925781734620655635763399246358415933699526353174133864681689665224573696021888749016922268157641510037089092130801721786866114982074146440300269191860116692289502370354518427922053418803712960132394093647908915199077679141665804379910232247849188371596553657768885493830426718282439147701043751151472788897882693894301348063564428836688892566724991715059512184868339213850927810104554193882735083306818938791471859688617375701671599175944963517196603361358134924230890142210800054123237783167697020004235386529410457246088203835149368604211058206591863992525853664658960705307981582608531356231699574213654385184473442963370986808865719813986847873648224493361778259766492195484406922606781127622817517284949520164953926141087692041265417298551240322895146471564418098382503188836221795986873700467720950455164331963234537562249186220574119559061608645478283132023039844365969927871417597547526188404235255986779046803887748114545063411667054718132083737295050624836500869578583952509391350931962149382035739237146151687149893801553540850222385818820183238869557465326473500511281590940765658754118846462030555569132656718366310222352618034068790607961338995143238846523613800226208957581591265285489954693883632490237504909568074997560634778222579829686184777850603247938786486734398851478586576457971380694939749593234240553636835902826509489046853669319889839203728488363667255792033879714854330245587877405148342717374089710872953469663121185430698671191736783620834895954690524345171188092583642022793947590308316475888482034817899372498765488255062969093642640286881277844349036005909606190776072378007466843019166713562761654655262308705484824504224976597944557987800538399289968660406225304336039455712920462454087302842271954880200748724203724440538243521053521560414847325205408992795037058818664768465979419662176326670277218121162100798742822958230309483378603522892269056888231650165514169677865245304413972493130390216516100944862242156794800869272562269154732752090226534436015606816788474489035945018794024242186482757931237771390893935097955939868668174282547435213785311057635297175632591290400108001418283014528400631802553527223614519945650004621094026905276205389033126718505024134659630928074786254334833304335066035815288744373476920769491655360423469618812413402278009046003530937152465612718157649169210586880748535318993888981975198860750461497599948167887680739088097616896311829425600780112788510997437813371637072735324398476858806204486587215184662824672481888815647882545123956433202679899111258723309326993582783270666368691854911409349125733077697062855490897294172979253097852345129265444213840471570227024005834059578797883554029711230843733090362121762513307664833794021956363901215422665958728932940929147856279304399370741231557065418163488776994698807879968865807953752775307968885103771554509491136712732025385286168579521448971385898971973961171906301787428008513754517545070221258993102218055269923832195813040056610756142806605640858801667384831026831433419944552740040678185758664685483211129325259212828551532157440594414865899534029213410098533454361202556424760575741006801998457282574687863689267785310460403611107912121769109918008277579889866754480892292958275971761883141285334866964494198887505027399132768357424239262301657685952171610027445536447680267967502925995339681191641314176123262795520316427361319766130480541910552704567920899480973793087168533965476671996760385042739395265657655960912734360336380525257425228075239745635553292320036772833937439811004453276473521907826469001928544340969305088517306036769995537136061598427674259211374634064927172584195597755892374514547455791569550910208209685766442937047323434028648889757651148775481228458095810641655903892288832642958371502455125692828383033939936180229726443031579331588491134798065255681184224115853362960375278039303952143403072577117493740461759131330467580853305385640217249587939860350477761354271421320170795093825791593327812982569091064984473978588868249272457203757545819307079161875093114057457273196223429065869654745053810530213221686736245876980232749498719162293397463461696614317536225801447328549287989177787316452926194122168558209075342614802967424283542401277373154775939957616624234117509824248059696958155981639819789489013692158610402404731761390803290764938086319802148603504028031427823667077714736542936095955687095032406722261175303263613230851879154872851266629120793749065626900035878234905969249093232312314437905954649587319217644129217283491781534168680072149880467859934383812825701243812354890297926610764669541042052630023175043861275162798895716355609168541438171725696213312358375874686836758373624186102000242599108884790223016860037219894585310873346991760375938262132106186725104804852441643118373865291397248254677178439690387211569705400210427616479283181428274378819190249515488809809551515447142913621652703089219555397278820183832833084166992953271250228595946669321519553335029147717920000248422157666834147157661913879480396357598746384210878517378602075374404117542273056604169166156537763630270726225397629036115747362072134215743981993309434980603226092942885173132023527289552003769259311183579487026814682348498994226922912100450791483063141969817099576504564097054929810524497558312255669577281094879109124701830868630506276266482375924723371684061113250711389786772612096774782981721644550313304845175103976078461148229319279498160585830605424086373130122681742975644593066243495826962793653966460691556874822081313446034349610258617791819665043294350060668603988763288547685559628619623076598777737575860806571304486116063814339137791066780679112381152483478199902877169462395588580108530008937049723036005514202285159916108604499445188629382588813247611624519064922819435813732829729891558051914080668862613574439584160613189313215539491548800201312922924149896561419462528964475051918503572000500630326270288372907714339170302254489956116857778898703915607040041136854777378344323789343974004489930284321911379660500207583520386278487845826919343460057840516975969144653386003612426528624465717113850845585329117550062765704263616073416558853198885950843638267657781509840191754314225823935708305686060045977135657711813662356779851623969339652811919561573647124700826556391400780238686322626345284880511890156452051510511826752793099195446524892967245063221489132251263230437845847801272481118988299774922982287059651665535272636670717066791323200107244694537069883841573958058862537569207574661654217697856760571138811076015976163325453228943672388065380694118811609066264174328566561830964786088269900648511993085341881547109163335459450121700396326857278830545315192871827237392079066491213808214819337166669593731381137598896066155568194435476928476771803062996946636160871300633708001609917824209408377889600734460261610017748099836368737520397317650221561653166186957062490792553411228794824665301410686057003362152588437438169661598310799859191834676995984766584824690509813047815448857631311310265363925784688165460877484821427537718238329690351361132001332846907739971134825568286729494363241454064890402870603962614422980344213662187690886074193563285241894453215313070643299246192012215719748147145848090391551349158805077044516330289044645115743718487420827094146983588746940834304824934531823115274460297879695069678389337989606836246222080579112339869012932006420585829043991210909135551025760426288583765371461066163959940969970481164170234042126556307331240940866139174598093348341931509644152588221810168186902407413598605193272403408357263495003157604369157310577521725439851374645074536877651181008671896404258664150227467518452841784638580882102096385381238658719349131160493349649447849598653491095059510715034114034120324356238177929133775762345803599719655160425251270013657450824572852824609509659245642084122257269076106508459129903180855077611226642465857234334785176906826287579213775807257565589996157423946982984260791019574766770257585170529264878785084755604286170020556855677912464442039002370418700800714707362943618015101465427327196568465883330252104696871666396815345603424150299503172611802119141994535407324750393192512658499704849424883410626738359461044155598945394831971480659594415956066986010866798766909011950199718519976263181352269090766258677822098750894375655930681172307456152837616952537927519707756445097704243751051502031724634239148274146214369140031858783910071813875594046462428158278098484689311929281817064318017114774977350450374615448940617286386095225920974760698515799028872704121070167074528364565994140637663246972042167896675773342664306472459695482024675998146433939276269938039443065653483236792072154275139405276177367422057680431410096362795311434027518613040420574761358431571274323949389118628895835232659374476509409762138136863998686399126454095576266139753470143233507728928779647234114910052431913449899969843185409339645491086874529252837609228067777508668146484013600914635072565285446164596699258955379812884712063053706228924945907415648233889850069969421895026335486890564051812628336883198420038197927167694682697148990493712104517226817774379310826182016469256741526335374365543539453819890748735860337567961945965688744085964582922685695066490364544353943386898992056971340172685702709603248355651380005215365947820596442521302951027590928620755007116181629139250982063052971791971562829706517075986598573718486124367984878563007675812107463926441734119300803839924815196810388482670559312898062841080287416359756573484286488815591399972497815742095222730709575520649716788120557066782484371316916644667039880080441580327489067759699611620111864783896507768199907242959626262007561109528190080065087907830325106130885995894502420218315663939967327763583965352900763895250482527567893576394393932065282476405802286956609323122334813426784296120893644298585248675482183592961161067358697335385131820670970669932138007282498618784954430555024895273679959606302153050787594500301978609567549321061111788885711680976779404788418728281644789407842103669196754206291344755310873654697410512319229118187183797188084465355624050268045311373241944875882237393078915815449997883591490843551501789889702473656711623159728963733903339478892826954548445350490437475799634111399355942939484361073698954832777264746060820557247682954866279319951359114767904126106650131774806586893645611131323487772664470991516340330877970129744819889942683353622981569147583774571133864998989135431569907571133181841202010858711419422946733253750909478595844401620420952680601156978212215570605503414707039609218398532420151250354996170062150698459135229723861611450137380107822784044024634955519067542204142580906023815782032883335541154143671037896079490241388548419719058672220480643399524238168723553290237575855193611655537484164476410897357532452032929629521663882341374768066501869778026909938285858292253171065863185926453690918702251543832605839818564116964145903154084502537141333226460635505647817027948932820498945674419565697491005893264247006243561280460371656689148803328041845573828617098257362027319650156689559388439085998381916622737472343525931234813324839046037680356530598240890267923453932496963611492051440012391537133273939014310263953118097590391344088488983113665034833749547468102717199145469314258791880620412709197998645036964271041083939557102743215430054641125009445470560170349083924228537519362711305157947703502860921206975047806659089840845018724445408784960015510149167194083329589112875570651936839649153208627077418656601435237322413319670733114563321993236014751149074212728557148691783428927366838685599864166250016683234729117169232351026917820575242991813565026004223410237170969240303374067155901048020183433254644951390119730827134255147347564542447622450140026647659481919681449035471803940906588467159931662197311055326097355301391296175295133700968202262894115970120241629899421275931242707001930174909746426978097586737068498221637363308824959223458478747318513691140294433030260903069840550840605518920007448984166330384983426668622718021087981027897544145890950952739683010940925205540546809247663837109824415714860112488848204814782619975766809112152867223219019838534303489102183786223759482699640575552614107949274850668994139161814741490623536878232665756637183181915549115368200787695259217778782148128365543228316420242925539512644152820264623294953875635483288388041809698863459933181275123815038235825710875553905962093859383365305499777494069725246679227709422346709927318764867540692976610277541871404074463685412235567205847797952627680505565321699924737844630534928055103913690299066104302111584743716373422273657422698509705395962763113480606881809989794169820870754757209666758406044139417771414333499218499275781687526074500298823177992591403100124868127773847576457310207800542319892497934840020757413805425831140547449158320431218933182965359008634632090848923482472863763395378037938828811190959763409107641694517530987843243873559896208712981648980052077825915757198430028238419888352972932261634775777612506490336010861876966056272932956130846866919991407039532669208456592320228568474242252782798290924581077865988760530367526999011382828258029539249269914496117252283445424057310929917753609658275576687048851915925236466387624610094709552739161243673936477746292170635943828161523254525924239550423526814623502224941229964725404185986960412547809804430244662748007036019668074207521405009529866885006090030683558251042918958726511282351200556534350406438086293828728916952980852854134260358335074287932625557705938518393993295481212171494780380749664544491856289402165669484169313146834082665285624226029541961101740147875277122132367560378554005849770372908942742232190210376681241724877858335855693900491785456254777398973813187007500870340140115870306142206663228837831069749509643682125646000671865007932954070892789268246729496311329037283108562695332886528023009649266998597323187770195394839946829555195495126968183070202596208836254602589958574849457267834715161849572121523007704725272897293210700520094338247914402054946930799689548948527188925663088361173956734571141190933507770404128249439216105885973859664309520989510720661735488027678160865315776624281220745394071618611035124562312999501300484541877973933025987837675173711151278616752655096809732677817361986462826217320865855700536259096826467337992678548260325450702040026331238547434305304786573193165586328696437008356231151868524315150747087938681395902670383507932313772400455760315274800651710135674401877614510566807313373682527933359296647026794828040480327780149019357302761622637537990067614871875867978628913109167038604920178425310766380502762605512211001625353400155462490535496868528835583035160644718698353602998378313729974822015420785378815689921093757142192059951237332573615382016159027208981852718710154063671627340940771901349457955703263560697713525503462535198693758067535390216660914925663263811214880070017197532873217139538131166935844325161231093648907419732559013388518357912049631460775414984594187157176314641241803042175644020981918017647035549920928508801303480392273265756165756477025161410740388227160174047538409571350595894258379080568286680609584517869833343456627899604940962687124554535237806944327845106537716405353024082001453389388918287318100711347140946940869813061470381595130004693256016534031262026028607403164747005540386730511281979960813476183942828877085009792611812678830959802258956876517232128403786200568846212792130074324127448200385107891325690533923470498039606027352565498254668729738298437342176075302810579107105718065735327542228377485198198112567125333675978592340452793403745007956346963245289090873509310466425215126842077442408630470275154771622505498515598586998008439257304034454165367409145764071237099932251274910484760640584311195051461977575449244729489409627587733349421649440528367923736041061286525781937971887363750465008398837655172654041458989227024435869902098902786289095913150937281153130406526634628886062125997207736308464781651627189567790772659472325543318909124917521753993521350016137557699984686324810744830486128463980503390862559849771417302941962764916144209648731530920176169537501050001935176131483694689252232619728191565009326424226412507133712418501717664640127656008723082528649950059690860458046713394523855403374665993810991991563032422013242106915556663646940894989355167225606831351676904299152900957878980552416103533220004922483804968937845465775682315650489296412123969891361371290833473694118490772617798525834911053347298290693161651846826258977818363404857742247389827724636496932425542662114433464187306250926301120446391353504004690629326211867646471211371961011255976363245563516009553559476445880191843324113865917345868345804639873292089821873237050837541160585915592506232595052702766960358404603824412638443305974140008134727599439863066193397059353802631503614436705079186902333766452171348695815325911211245362645284841151104926694365830912747742568749133391794545039997111597356944382649413178110598500684861853983769153295026916238035252870112063063836494680024966643247629637070825579161660992900041518852621017831987673076977491152830261342284773004836779109743909496212993439425875297330596861286351373491556574644430476666435726362532919202223069630111143864376578687674608091154671769597360739660842226943998590376730239781447019163203584243651230106703899894065622526047342499937625686100194721694412856364490651742827412497868711376196404742867313009728825124267847583201047781170394583176437250496526708447397707666859751692700184894691357890976653662967766034011877055285002961545046945682454133979504222368663721271222271632372170312586658339571818592156224073919025271405965115317496261939551348850275721174185835689850245843636091302989609869269638984650747523215321761955145982022593478050083481042774410625039275883538562308779088938876282064346685388180767031873893186023615849076226942857545456783872848497278896889681179935611988857456315215004726862730479072194986914334464578787142791852681896884427458209227288090036623480872971290531615551089085376594759588387716325103877569558601850416198329385218352301807263012751433100721008691984866857730292704408903323556143355323063652009358813139160398812410623131673471932894971558760717787009493321500534750297466040042443786331517756193322418574389274684251356576510963690569410791684222282431830545807527984851418544437217750659760712424500975122290725315767912486933186175272329395795317742848385514596868228985920336900016812881665242133520403268700717226370762094362212678522346120358064481253826528767776570768217865837546877477905303679701261811087169859960643960446124707390245028293488832783978411889325137353214452599595548826258730439100947118097436516777922368168866350293643352850252144383834358415093277216609267119758263439868523074664488803508396114313237542894538681100454612548264508872655188915380907014687600786145553308314117453668630338809198586232378607240193993889953027260165631494185912019717489745105508119697996742970148055958434587290956703116040907236012084896924623275163144921679106959006644223664129336339069136117597085058849866881533208132892429746166947557114646668971561881381527308880053059614693767093897985497287083713430735645965513897754973871361454925282163624149425862025839641411325080296292449522654391034457668033364887931330568252514806266060410482003850250126962049992495481780157065519028515571915431141152286389898588015623373091939568979800562944700930215502754424853775626512467712156429738405982205059078532412417879069126599073932979817621719007222693441042502786083695547020529604370949065412036534942923123639671147192230431024086865244917282361516343219761143517928449338753910734089150509968091440211322954178301286415426485181971335585866745619054859353733385262867818152977790579303946826265809678971575990060762500013952696976275042423043326719185792944120035716076140406183681811681812878275384866423644439404329152368524588013612784304885115958015701437455222703963612249223478973950297865462279082190838592152260222763311776368591569125364260841147983268605037344114905695404275659599879826307350640517006217846269516065702983862578558056638325453214151501123685439405013050466352511010001837028137432171805902640838891052004777622730495928388291460269325228378476071187217403123446980988686312063565191892541795452314604421078915809339032968608523627393491196644800892887429641087082516427344642928907589846107588920982975153001820038449444459304101443434221863565850405807445055790652100089904800277423318596638674214407302110194434364485713980018087349482704361476426597700502520550737975291152211619116128327008557227295205758272536474960806472239292872401645029221748055971435684983498969361402458551577826456251879698579515768815103844224815540389830692057354393902325742990247993644010058911086565595009500799976498921348716696754314742821192880166896179966147040291386675421637424851626476678674715811141947625869542041471738543043189036760308972959341049608409640491332317317983207099818986622603048799528582425275380875902799318072044818625360629781408201670418307045746536044349024171876399082401334200119554829172177423512187736122603211690273604930638302791827036973267514599205888240724301026579223326225159334725178754768796415653589817864231171000375582182206899248030237947666654026798654347665282791441679674310098234985668045831916946430970672901234395299252189047233102297681440240339909882260149941940719535290628507458592713057849653645985154040903588499600587024004302896796037005148158985073578540329120623527900628381965766260163755540906669407398235894877439326397294633306525901664475398632270299949788721884799626665441177058754312515060385624937105346418735041137010008037224182409127087853265008274011567766049437236782615517183611440308294042028885342346328647178034562364166476858592571116060061988333981110818910609332439520966494536017952840446481662564428819747452111601342762230077008858660920632595399077414840627113089312707341427566002752350823068947863983108347684145898795057096231024944614928806148885512334469938574867896763024755017803139464465984289877532237483050822507613366361962279730333220857566331373689435150421403763424278772750050441718532014940744974335674355020005886699127052510877308222050931828970646319253213966671307740263553685159288358213630739797133218983963029229236456673247941428361973512283456914946853231134150366218979131471871727480095437679418896112563334335180093987667945547704627061786004001976703141388697093845258940829566730127391252495583717494984639914878189661302750344512067412997660745394888927986354256980843471468866344266039120421235523686208783991483953308740952914908112736924681323979223584047307390458463037415260888482999201312310173307944213221437106738467269186191589564664511066604129106677802139984243668927479930860957670535861625584099481090517556738525175596354097472041347689091847601594388414116231384127069079840634544985639845875433966418000133067762821193989655338115820589368717832387920709862290921501995150390818202738203247276279627721422015570606114200457536884311323096896432091018880291569944225702102710823940316928458423285188242434011108513642019875810731064704086461072416209411775308235548060221803098576925807186074920839040715687964069647683907325695372599465326270611785211701638050071779064508745549643007359688400532898934321465871527871689869451791234090119847987724220712668863044032321142310870637201397990308775879497246627066194919495356484614800192841004514505072457862659133479754700734535176218269846381883564258400594589969343424148406033061155191850207581719239512881252665582965822777301512240164187611007358209339970238322333887908652436308044774888635433402614474784290828140038188794285930435439403175775473909803772976650875770637656879475987512679059266207638510991431252521409121794059812962799646889788964963069805250319024211466226344448833012846206695850923085285656130679973252706000729304375350870661704735256727367642130441511895956233613768753357930290679632771425802069131764299646310277827268595196076938142817420801509061833107398129738242868331797499721617161351795764033640825797733960292294653785684403361767339983535800719859499262645110350398834978392911721751357252748285030844768282217804834833083024733171677603580248515742807110502068690879841363533800374240396059724322783975713875336797762879394830420591745840434093385566309814161709322161284955340192419497633001421328784987148168867604803812538044566545515070611398212974789429164385024627480885785684740014181399574849985509357849818943186066004075946809044568740962458749362805783791189436466257494233686441969832538867393100769655753732881033524013876137545098202773945703353306437572183780149924289758597874370956690368623678953423065147394555110497247884185797205036769856120155089654569851960889004890756013283778699726569288319252396889898133997238529736223797651554233232232615284693173908409424024362597285376326194081140941199955266587284594059661644394043285536352028159090742220944423452300425707941061768928429952283822130052201646329710627227811170299341852662142301953305927309152867609002224172514196740420402437194395979688185628292550336170574337763175071036077633002675860362480623256112780926579131827602361189589563974119912974101316350942845839477976046341996015213011776458420829304618403726290172814325736656385832981631548686559850752681958545328145502097895660450201082954654800946854815788856458666156215400074817247519654887905745476643921991207353574906101647259628793166479862420492273573041484608274994241920800371369816381954598591394425710417048618055328444100501894087349449541939863848408875121196319825816277485217264614896782482491491522321567280174529356798492905340570907091678425635033435386397481186551321271541386423877799270278627638994403102292700313327697302823610845774677926829756852316447108261652541085190650034580893828772054665467444843264304765647170694734206250228891586547397738902991829302660698818958323750340572342383673846114117194736261735310601524860009246763507090706928509198865370667725205436268003638591478756586402976903216072972346879740591355558437933072342293351619646569624365663268158719753333713787422320683550011870497130702823270227099788433806962230852297642333071212120716935065909381324829748813799523818681091103143086449097151087014651121672212357483477497749385670145077963658714319406206472664976828947073033729962497126465174979559693041164967586894914064197360695242811060930368780523770032259573178967573353716664096596175596882435903268272544093885359656262170255977138512809549774897258624188918706149289106856869728688622072143734972507105284961786302461863710917567858982023258756154928166259019852814952289794275735205296533058309484077759444500067433342348860221001382875007555732475436391428639739591113909484044052196490832543222018985083407667066572635770271815486645576406710607399665975264249908134925252706134812100894042794435919746090475571715525556754445299604647621006614577619467643686190428503979516045394540074935301651420014806264151560190457237965890850356763137384668169852265683724092356097901821799176817202126069424185389960458208208676971089698587089952264203400484793768905319396475853219501016142671104587400432592989266678452855698727105311752195635424920899199108184795059509907695730007209774467467780257705403354456809309753478937460813960646085987437981033682429846777536496734636837492487651731281461051052518630045378942150702280113569217007801960298444048750743040165867708838868462838474956131574483945058772204269371213652739760985463070418016918363441702059310744768978899322600200570031638424904899288499416648048775987152737176236869238391822158997416870715661122383628218624584902214306237136008050694568440631121834482525943848282029545351095836035461779276020144165725238202921444822238769804804304053298679055260234813672024821496174460722451713274055140918261043243022231840950488382395672131828140386584737926566221376728983665208927840850394985731584605433072635082540198657916067959111993126196485300610032800429742268021719430759888864715788720632949237846862717424912561087338788820766570674295549273814329351199349483333020180004979911716751804451641610627812307767173235563127696555759919545525096888783617044346111733667635241668000029601958910961728558540387230769267906573412051678135026747304828027956170705173864697388180590507265695593357085810707482450764224649521053718006175288791272841976291330094977982078165992238941118932507274188478565808116510014520002116371743790057229969246698869223276629492708761532539452867503518548656496343029592333539300941841814329049130357138772643050590327656303536414479813076033535079836997209482732487284835862095012823715905597656326555573869965529736582544635813446774418262779423730373730705247229936766482320005069199654248971437351171476359178289249951098194115814036919990754273154650171709190854265153839906648557271373231609501442632377742733664589108533782707409740896689195024719355780345864540390209035263258445659520729074734922708978798069298819442390935010621693367316021246581509221304986287759811972273160359173804440075930611846016320062215082871847386599587473136145245581066209083134185315095754266101970361896811778842255146631318929352354437191017966696033371132293758011360907897744630121647178377825605942134880464251263351421778734454756168207419782391976564522443103345770659083330997090645382779235716937599526849164191277638124475606246942784887966885209193509845599044815806248494038087600923034001583453099390399933564052465091568207277085605951207834117059904049346561743109139451098029751492435007091770947526135769688001570252874041775586670341959345188156644408287352892717464783643768451386617530460054613476755996799815306291513293808531764066419924608944899113661111249998588943344864118246252927719688943236536513544030434944544581102585315504685095038010788282873498138888168453156776274442379454009199651701842459612039968401069474793475909191784650877135469489068973694786673836215315844559750873500928145491322960069111574301729296557706253649829959648645523193774071204716541543765953771812674022827177410424977460933385356238617792670722885477545843014635071951544064641587929540364513778235985733605321947924473490425215666787347895493096246133401656503457923204577879132460139304564164872396978224316170263110130560470627289047591169294463321220824275302428814225570696417728852732339297965883111653958934121591037546213033541042275554117630447941759703836870681513303134961949201045861613563297682436243559510390427021844107245939169068753923169692689648593330844134048362202681909840637246518932711493078706242864991674048757655161169205961117724990020739301352332838875918434282926003304758305219636319943914383542386117944315468653141058002012560567340972410249055499937258067840404822973271412719011545602167528326431707117656105444937040434635434559432639267034465311473845701774226194167498824929233530248340296571672341862120091114990624601347525634653588928864301848041995770934382562253645997393751126384920314144983603705402866023720879500866932043168920045730387150235739056681866560063761919334588688748762587212437674257730014577416410866211660038518509537610123471611752520700131695455277442140030284408447540978125020518009695265894004172040097138361731117377609817944382047500494210227285505704258359650948307337129337867752326658240442350136907623900053324744065156663396724399641651609755578917957922958504661717412428985939825718078063506723547550817657821716599070507118999114422154320873115876522083865700874795860391342291695238523369593930214797781143298386067818655074271848014433412225985321674584861012912251912997173424817479826393851468591148008415296271239911916421970433589549603904832227704624332246480116648111022768289970213143243454863575789908190998108967494638900906747976920102119068280588839729973103184111995970969811123816382074649903224158165219290595416417116014436343381452345567916534613513052416651701762388407989511559373723547489840011100167678943044985921742929704018981775493983908544937332322330414894026456375112011663437237472803641830056183623472894196562359038154097365755226971121413937814780564437799975981319313751789426727089941693012846161861307485123973970341625244321000683235261786495638670836869188566535431691608404970157080558408168693225837799826303633525123028540838007613015319594509423347088046009878849286654703153502255659912366180174748824166525728824569893562423368745139963319840835518912979648957589153917988766184205619256582107829707989698837305389398137111029850711838749720764918167415405378482258258256463851118876383882460669183503357390258653576595119025665546592131704915195412750753703290375177321710122717899620641939616141625213120850805884705317579898796880812608136932686580015774667809053208300279315283511322043170149168527259023015562831721455447406546391639882327030731641277889008550660953533535888509858743519262978489444264042773009994904704157978027103792597013609922128635270775900945754482394413281848921489270319498278944875524942332275227081692355945095969855876561263533605545013002183810390484186718358555936819343462350442862509342862850612409838200473440282211753243694206280081265005138024806199040919398069551803274418410917496197174775877255099484139401225723710449462012081912485865054352831187809788218975617113922428169257513487311848881159475149388694366099212434984814234756266451847285609557990830382203002196631827599455767349476057834130603326267531028933872862060578164846004099201415704085620738536728360304618801980936576014360163233988597144278440299804099534035273008770185356390686486002930174658919493528264606799910862335015611665534566698534301469218047560068722371680244761747597397374556101399246583830115696981745696387280436386990245642737481274707360698189449333757250089547477793688425518816217761553535883649950525429320083120953750528834910834558322470251906158851016471831634082218247396591022180941068429425383877432653399591914423251336716202641266241529200662481353340784201602296116197561308933809399160989269082664928958873985686827712584360572860862240276244095614496965168692056267769295736821260696339409802114869191319715591352848137344244217414707535652138489167853538358678940198527790507018616217912639171245617903098059073719490503879882247671368955568549420014564156988594193716799981965258515764173682785429494355987595867631567476572489668294028801028357185549835572101514317604565593686787749585200557740496359136275174875551884393019301159948710945714809134915038670700767626671286903062793129106479172066887767789614090348539433969088231127279403247179944781424281251060661319779947200197168615721312929561767711253755474279765803168948268537437493380198646481826671845397511918651292256385732729868504981352018751909737997429339163271585805633033967853455967252661677031423051847237098238226745073950241600195280003811629241868146541723187229824145012573754813450888375682440472441010775431436568975890240656613707249076818237580547488542776234417191344947353010234950089793253553788212487473579224021302099064947390131571035220885795696738502299521369956853024847679514416307623632261435219872958593666982024555739068938043685172450301569904283729192754796390341517444956234971556587094411501742236443610916347105440583619437738504581937306869310383589293131597677470438649763266788738332952894429746726108111259751587372224619741023887199722379401114613033441073459470397681745790230129662295909205118658925139636180456994092730306098564515059774370589556830908416736414621401067579615234468442314814728274819149528643914622817255938750236015991288191609902189765913259734309265659557277446629941352501457891872637626168913726643730263526418948090787990465903529742874455224908008147748720698571320969454623301265142799791183518111158997158817707079646632772373502376436108363212044507074709237529754413425335013826136373771729089868835895765409025923740521282147243787087332348403831353841052407440833175291453386399106443257145503214714893889997058241858537618737292028487035570539279665377057884951024368760979891533132494064248794070568905358136079521485687503642633278909602168024482169659388141020475264788518621595593937686053294609097702362273803945919170572174677362797332675355361160879408823931582206917311080110170690706933047925029621006090712866787209859807362550309252093043084690477080439544119863488584661428846907598283197845497443634405095664916274330658800743547657570919327117161972767800983704273720476672519784612159413507986429954265263083321043054713160788662243666173440908600269653247392899207591162160060557120369209180003247095067556760177411602754454763683018541208648692140549210474336605491061822036344011892507423889174760459191501711400025320978664127794794116269370706397772201983655228358664290938574210475930026085218749298324943334159316653813304517609856872878819451631504214862083470152280858287858100529737411974624212879411443856136696660379711788687959943550930618856468678473906168204481911191138362789955691126503037478908759106533669650843275686603654550837687978619895916034425661403649458157915285798074345930826018148462443932415919396641639028930307205987121326166477527501256042455012276994219507068038620087509438795438651604070393852526764281834490034489894810973127402796861563385113405672700355910520337698089694881134989829545021696570075606077050383195568233764374111983746865496300490609539625915523845573155576128241698274622703872873889453466070540034273334058212351357479801835073258205408917993122213032602458010006418071881174334918172610823892713639410161079458715348579506896846545498144805026471132749250295831745257786153506710910670929362300944784790281685326897506562336044230449166658061431736207164913824928176603976795779760090950425346540888586177421808176745969993584962723741086851979436717961512247984840228953618299520064028930761611137786083557895615869032531874736105830617017314257297962055384416200679918067167060835919947530197819202566480164187468156325997126248497004707438820432554874034067907320787868027331154875482802862280590030581213750473509279610524709854592992581618686099998196002325417855671107757302081025826108792632001183322837587352199078958328289979911694709680719020812999547561767683882572820539850763871250200933572162033669072421716399083280113862545896064573373232191963446342135395881921762754260904220106510856723039616423282283599235296992909816030004631847777008778238288632369421820726934940039600860489501259662636717581047032859374834866317555519545479772067135079857458252791505407351225760437953670687436423075886706590932583384619585602757463939215574417418078930004503131610988597207722169787477129072013186304600216775053392139008020859179969665941541299761368866546342163735158545621365759960267072188530371125145743312755106600328595815834694916116194603359538655514473806919667162046467266962622783600059639157396085474264361248799936072659109438278878120476150444258665425332255367079133508875519266708235881542012003991107419924921283072749364843756757137668665154769539753544404078730918595387122485873341723825071738157244142958790778451471124193157423061845208084582442056317201108351505950568008914451540256797362658297410718066068379587533403798422363920023439487998549556681343957666218728404318328388256680154615499773522493309114187787353562294120224343801039540976121514064058824020551678661070190722190556635019062253114161491650838626891647890620394070977343840430858754715359335148312660504314525120155812643731124619399633540320808698850445471834116399053900074421638216969617875630658951615919561302677476303178084687796481297382984486767572106951437071276421668637050155767964910355937461278786979848869586727207681040216517327328771091851474126375070643395577421841565174070340695640949260071493134383134104382599985489381652564392167061167305232850901577305428035860769751004364229805472381149889015028180802423746258235219961330567781945367389498935016414756059199651620484686038403765995236574570232927510399859469466449459308057446410088175716746930076275105686880891734584258684932243415093049974368344135599788524126196549178037918331418333332716658203355517677351287047974249559812512933276304667900716349203923674101296580581994920688694914034565242281582608820399829861921509624348121221635243562345415779564192983866316915482572487619203251794188908103508403743455975338495287878549914015320933062225883899574722129328046103591968277650730434921443184149387115693805514662774145014773714176846748750127817434685230368753978140859101056810140526703885392260671366782564000160344725673027648396293142005194115942261861893199347108066644886015833640276155131486881972929441324620331905758305806218345825722799463561284362905543625591988108223140310254932591022635339622699405642012361950749337594672439755155618064153913252063685701671880469910657150472125591925034254240299557325604281953932619498082995643490975051290403100900839871016507146077017054411755486584547950803375286544879043503415651835000143273605514841672392525873681233891469779432361621890419154412519798647261353400969174515846303188988512738076641562986077859224962631226949663516551538250448967971161382426188820553831979182480641239470487575972044840079437824286143054356482709521924203206168612806506918439800850735794393336026139668203300580401593160054052460028621109595418833461040055926868168306595148875405885258519489916062310699984659813687261619137129335538538025362200004571089920544975623958658348294893557274401847733306273560766076903993671139106538882337039320097500123963225049729989605859040969379669006603929926466810966224796558597187088815949615031964668694365263418120747530798941875660552737872237730859281417362171211281153329778227387166232914525200629570215298753285232187795366650060250803198445697946680346092889974492864949725595238402518059211021765399268646220838193554805053330168412368359611943193247508761111187476069178845972205722449293124492998167269493923457939810201005143555758927301539603762338985731056022835833453832742676198228313256894184644686463656875181296997398850454840463099459083666218717720365289379809472102861429857202994486755542707116138782745653299163464641143049605764182894903528855855282612438824759203712350533368401545354584284566568889739952426501284340559792684825075940367746366203816725442038320420167827206669861323978388787668286407321021365300901003537960359970133502069048040986234718657270794908992601747767721695404601018875375593136427435623841022803065953073328252863951262552993709459013686515164841804989004020614009796307153285271360069328517179321911383502612511320719740936491994247165250651838653277373814137599600482148450376603240353683445790884650437462097229952303029415449411011388925610690937947574061380538460323760215846196081475316339600503645283470476859192561182037399195540549238008202015710220400949178927768729718883835441670844492149434474061476446035332039309438745940159049372182218812926075577416818876408065684717275804294346986035202318155303532213362415065092773089337183411091774295871294565808784907878054849565900221838790229721186785649712123173746118321886294545676021406652913399143699448816485653568158340602957183413667876792149182077402057523948830293720649317590591596394644907437412142354269154441063477897924881681008600368923703997961488375172381083934721000361033563818922491070733094078412024313618151549963779100306938209743287521455551256088692496638348599453726111151901669612473552837190381918364618526231625021813011501286274816652978403563775589256348371088807343100968535220847602469257992711880693214037187106862520257561740898578503047689678792801979513214778070708758055137022398704743944765467706954656762278242903629773816837198674116433446639674691525863490059179174137217692430663938687473680570609759416210768020985433247693456921280563762266216060875763130105728392290747955645043269419167268926268896992647467650105979164721227967621902933031200956186528549133772026838818697313063907451402021911773439146973365761339357550328762939265236097749069963069198560295239239623585246788853404065409959189408267447291070915481460982224985133586474084298137397375998616941651796515418341074991841144424468229552273721970407604096974629584288528891653064041137287316010899200669825364320224903700394163811078681422871505219127205218846168339487075138323928081764720282894658506852718730775367255090743112734099032016014307846651043689319793283369415579161881646791599973888242972654442630188634743022144819990054970779591516650665124450034812732029901172390393752437818140456678461791854140968620275403280120800867070355703288599250557311899248006949972693517142657681659858996122934272448528131564990639205941489437510574702179310553399037957825406599969055862382173795317351379913354097919493775776020845727917041545551568595795989196516808837319666492634556988000128739170024208103916619273497126644379273716350341831180864954550847470595399312898761303376498202861078478814059571399819577567925391517589115411138358512246338620142788595240268421268383519318179114776874091728445811778287938593083832327954585498494354130745676919067904635525288537225745514679263508205782561720956154165613617979015724448402441703690691193213987072228947701905548790905293565226959387017594668353027682578130224070918428683873214782049970399518051619264119663068259547976366127902233112820292787543053332172660287658474803978810823017276341880616227671502295368583399091503871610607932242283394021190410744275084827460143999162886158408808681918034885030313750082864793245079076785257750334049302683779208101886826905952825109360543401490126759822782484047880806269175504459300397709676025850527316333576145415331732960196392917399504662097323736010917931935793824672274223298957958264713280893261330409821132062570417141237930081319605307049988940882626123992052420788760655526210848445864413931723321590573656124931241532519027410763373147621808964833439166237257034912616446017649771061623190633086035953119037713099622548325676377502797727324715768039519377061429415439032894823651772661268749043953567539045225642688830017101268811450379264225813163774328427821817837114644827183923972934705118760304562901976159156769962930024891479458080023794843085063304073707430848552691463835501769651271675079263889631427958960308427558981525911320087268033092369729017842891642845095130498766468508415507633496875746671543947896850164886820147883772946566704777717968625060332362228737531783376605272375989961618099158283380401534059156143614025272745634854504264709513710159745779707256470524249475934812358409505751854933249545744996544231678878692862559982765227851738359896922455439092517003711851199971439209536927651762932638833941480673715585814605595818067060246739978135089072282552726285846042395449230556153489453027586580727662433950571052710872938633289890319737384993876180753336330636107440024648214842443015567552075626313502064328249834098187149959692721829775690002484083655089767248863294897486794231752720626767228151323670179098909701578882437680865909916085846690540079590237747338402816004677417947405872111935225962931531544364262542410350763111506294976432971802024391657762166844051686092185529970834928611585904049112855241151337019484458386105905355471075113778952003785456751722213084283760874428353871875623475663891784153166701000591744916980070306519556406042554803526762350462797062266553036126666482978031143683160286691966140372665241231205605252063066289263355410421305692644882461951685835118113776445712333052396955877584246107953503995006833475710448441339076124088874492398300643227970494273543658572587383433093327436379168425579643050516794477527229170739823247322354106400038842906006387248419360866080674725461200595514833284316279099571674177944067214975557843474108402289836204992366262121595897431018203766870015484501416623065973181409911640973976076183121209165497239398420334117275351599915156472167869741763529476359698319270053036797569053802210745597365518970230490908884703309041965976289516246132260665311264272747888785330043346263844342667218844567216384588775527145491753756284809277654472255861726917434178042512022521692958834950529905720107930377221702463849763904176394909275472268317379486375483054560894806736063663629446909803340663308129467998460484491324954409402627307479487613433293377169187316942692390106296142137762910621649250191571071004370385450900151447053779288513422729630244050948331607128883801513440819078723674572662465111202976888176352000523459764588435715125874757825872352997289436422775898839862789565060268310303617070543711248145785547534132170745782694915121790553902436442897355996825569667927101980137998850574887483822028785467290847862672866908971811665244437646032241138066159071909537075497553503470861132356707100309506807584539924214756343976524990255270516737379704752194461730034423298246664697349032605857552555908032627214683370777090215451298161717795175144154298227974451181186482980432252485964428904278059638386212302390014319418736747432117895556415916718452584951301825793433151660369527277453669171032818717828576186730607291764152830193214684606453956349155618068530375684835893426551674567919147434881785845266128141988945220668547045323701505882325200863977177687004348661346384680521599781797179078426975391908631113953055697734464514336255602752254757997004005705738420264315095563807484940621896358132983858770891055142371474778218441126353942110733220676766439254210884733516634812208613079776976744221112896863669921418569349376352809821311732847260362625308062604371510302397218672670140318317249470066498302034662690834328464278351282114417261350084053174416750865785914994346244614231731034836123595001575587496634774114293240037406853769717955916401801536670366860524404226529463562837366058957147332606331128207243616390107055214738703676441979277372125491624373307386563913431124321293917160058165090443486918155671237504216879181899089339536431867327562163033974965522973735876660945154375630216802546382778500606022726691022606699742850183342286564995910147653286844105721491281055771975749271364403157570379534528024305923266458041792996940255747886657224916617266332087135265342759184809304130462154922227254723446802030397338356477106055802091550800868279722016579680896283851319890390502693746469010209174111428076396843075874348570989634928132046239761277719013586912020523382099574768722637557961308407112765962842899785993766593802691058501420862125271750144240791325176100248510419719688821186554521012964840528707879299987832324395879595377912963439372954475664254218953265767080461175288384356520463622726460576999707748345098659694544687211656983993129379429643054694266833403562958836357406612385988510388920342369153358819028502622838310810143816412253980986606915966524922614164815711978131031022495491337288487779997880791266157043995051935439106295775623853846394562392665424792499982481229948052825820725612986756511896742041690034036639364999819300502887194995815040605563576116502248317408119853963741969931319546286205050467019433959111736974886409931451052849901869732275088114993969040386038196307780076428486982024537783116855499303649602722310980054288909573976692696247980271838438056561653303047846438474951418642429325210418413951026804030777542719121997573220849751050657961552008617365136324813479697367900381428419086452398245981747339939788775167868357753766835022464614133623680923766366478169429263060175343876032654033695022599195104339134772451905925056009689495989507357678585246483869228912680461168231568869868011314758995374025647499343626166166793798200952585144437144481154779572266474039161258706368163529794120767783450241160625734557097907200513316492473152338025922905248543783932234936087169561063812957957938225255408574112762936894247060476653721619763470747807165938349779516377304277983172653875184490027450248730064901368688194999407765020735838654345633062665761676628214801831189298692736740531446791366065185339789982490776838660757076726857312802542366153945832072368705319527709969762669759542786809118970729985390580439050117201106339250026958490218234164329026455786814842250827557038092263213152772931676747641722598130204071617598476336863516009051210259244226605529518058773359166956367529533310559256591916825965752986528856987188311691414769271521593108787264190435011270898136019478896972650739286079108989938072369224493361241711920240078360766860476100858885783802321400724806097534840181969395669256923215642381636894589955474422127053134520968733962051261412008131946156957672196148635041184850895244564642176289082639473462582134392663772020622328275782536967261709006070625476680572532887807278199101322291713879926820157690291406229709790631937096749869655930775904671717958532692505671583872664570242910694800430366965837311616359239607599888800064340799833486669742076233167591734638147364106188587968269398287775866704492585394807279839722064287860217351273196862126659007496263059117265502552570884689931591175846065373026057504927024548053505815411436915784331745798542988208042323949485202650314946686003664723840120789581453419832095654581808562321089854831250092762782974615784677909382022879823422827620752729648858277048940565827600989541436585160887890503312799612386711247460961173745713826649893541435436116351920969179724177275361096895492253669359496243843431950735348041103385206209678455363634555475934280406510313107118948544299951969385677336044777340906697563875685033552293495429265062962996880766085351977951403334766429064267934461092614453029642651409675863881329131175020681403887561767088215302353319256258118892643826349665759503676841576366422469402918438588211749068055967441814428962084683764775629773070891668784731328320895197786298473169743459719556561060680462073771440598087473524516721953777449664548392487676010898145264835065109724364269175276520358491471364701866825444746105003771091361533696870003568155499470903789360131155841826828489751977951508279275744224375197436364989425960845721579972650921177667415552462146850296648714051167512236131433197936861877250202371450609018039321508359861460318191325193709359356558552285977480167411402637725098181085423122533412391975725367891983979415880996668558941704201738015457127736982416127645719912290734789100322401171503236427960400398989107843997572573356951221793101268958212619884117533343122632148551697878822107364048906371364043272688433629588175714601902209822722454216038557406373060434630020450121521910559288012376314400846596914427701007584683156198957758223268861329120830369219601658375025632309971690217786496319182364259299305564616627908498143265541183868126989298735545748437058449031762495897832168394564761444491188069231402485349854552041975236777406644764963923038472677719104753110542331881525951956055507340460547599638668523818903602303387977351579444953957036599602200119993585767367836950918412451067068139408470665643518601476537313032705443902366267398041917218214477059124648258899014459182003208220339187050202599179853459668730053302293183374448126459639996016632675006853925721645584269084717014499837829344151251729031420800812071634790837323511087469491578543996370032787587258247796712110571278916132803565660153617595657720629971188912033938793113655488563975345251170129826798091817618905780630426775022727111429213028750857878154152390291045506717544701260113290493915954765013614031787590197835487075796119695332211579217798015400742232415249103438506503069829749316499806749285170578815689945173456615569047893005789362035953374852393800235809788158887498631195397486171288158747194204327928721783831632218658388767418008124523255774022328145744683309509889722107482212738613874669460605991775274261024949968428060073357069330160815880771595231350890113091498652677303918881548212973290296391968740702555333407584332408020789295562728200589609991950781409992248758234543826328150767580640213343851110685892016711955170358005889208827488130488072286556550847973547307811595900840664247592310038796640202958862365332928190968345603119471540496306327900542817648594841874179644978330730619624934576730878933065944477184727901413403012518458801389031089733193519725853186702982965739012686659356614895574634070803269181436367089489029783422039193275370540009444635113009247828410729441536628239103149887929881551746925583967658744033214601556981838361649695885057141701233359256007657019836162170391184817680148042055234765505042813351550376987260029953232676340583580445521295903371098868396119653964164429832220007135536220847637936065706977929776576607570044642418522413188058707116536341442419269873668930988233366306215429182122934193920791569646211926740946454383025906313691217789368171260395074877699290019902694554835934292216864822080278226066991692525026019677452375839295774860874787133638452837868117819128664838896880880993572046826576828176670973164020662925776584564237842170720793586579270611665654536242169072524637616749351431963345861126046780874854669823772835788174419716590942028417313170234993521783853440286320675279919546442898502413213673901081909480554887172525584315250590924774068408361722202325047254123697438720124585843497300498111920280060906715467610308814926508510842810819512435175847728463159064783977293711943056504839105513335855750281860419169071572177721874969080610770055737199561670545368262975366223865858713864403201826999662006986433376606947494807992276225145502325872307221354705868777622376293746350321055050102356246815481368131689085790403313399092326154375859099638458091956732317763807687571292403757752817622869699768647626994547847355362085442114340040697649963750134142797573570365824437138624962583837190046580034025921823959134292568445752428939037407821479566001871583125577647207722955657376788329841630325813924849816254198649136129122602267360470816734253973840257071490699413409262048177140218000239252294978077832416833894541883600995227739031530722224119960848333020006579506736033112553056395053256507652783556020441467776094522047662177310587804492682165947371564376839452499422868837573649541321980541513945922583563641141783857289864348313857096548149697872502851410421184708444490734456406772471913189964121311359379395462265392008244279187063302956336022731350746297664087011423379289445829470487112958062431979822065501077037846640646091574306053598284330178215762108930657597868443069136200190676389710482725603131453412413574594418969112800887872942399398394253834276548727326199693583719084240198039499177585796012961890320775035311371276768142137820147633805917007034624331568979930577523422891665582130469596909492821400764577532927815808986853181631788434242357523587247042490806755733910114204053873740884659634783094906367202971376690943480868412490352127964829774651899431001337737161991202162232930035187091801553238784492191738110003114161547437517948882532350354001360173172527267547099476065247057193697873295364703790306318721864987730242807508380171165895517242979926998709086820319356194313364005940180539114249318789247720752670193916201874778104583081173741641539180129359772454681943844357700181252993708412824753216920841760004929427014225817322087302396881954661668303330374075634764261425389653124997377608914981560024420395239111084199974051222670848121436929621761878059916212323253017796917705692027600277614026853831151015636872709915138112797829592166345807346635670761010986988887844835067505843799174883958154525971230379747832487485338100605361830536183606621622814514931977251605150380742283300876497400529879617596016714479876510828410615933197736939233511841678167064215046070394507747057679016401424727595002826688629981507173130404698044307651598685701200637114899448317851059780415266661520025009516900106074053347831445641224826855260662900180457380657953352451153174109481393611824861714214987106144103921466939179385188645324584141297892446775098536310466016752173886276918664666614452330040504559596325347608197182811902862827778930249551419409262370003135577941598459552549403831454382133770214112945616240279856888205024578949964074141903316712276540845780788567248831668555298297919295317771198357293380752793700029086912882035646350169634462154482196898981221062330912830399486674323058465714983544325128170609631231694365855803466832766930645461677372151031140235318392478126144360105835675264840474045571263956215842283811134442918980633733131385768288579241991544773201434165075187790382672343396140523406601893008222620284932280845841750535056727995194735662579603615659093017415474869664913927066951138601417007614358902869798649345595669388027101766875927595980684913197442601569627410355407703852338833810034567989203515319526706873006507266210501235664792621126818140878597553511393731923793372247001752765261896201145022941750587971383191244377546924334279574821802983568900982404383310435559009253944288039386494516625849412834999914526344253085776653370525277752737929752236987457804805418057186999865823685109351665622237060247104367045257811073899096194384493684962707643972291346119952569759012151251586036588144099222725576614719252556991120217502123556928197257217336088142653759748551052284130227809765018087443240847120963011785960056661735393223497225536929205963405438658422705992688261868867624926131756904390281649233417542101114750575485497697285483674123364874019627026738422284698881162976401081903036323983706138388735100982338853919518807829612737299395087506787050840924489099641415604664754800317594120993904043161434074717903484364713794697780984664573318650028538520057032437013188694018516175424918258355463829918507449125990193267070119865880812213777199570879834699965562171800996370945457831162961967560444464629813365225204331851738398472680065266415621031481307634757423865123400083998395572381388180326060587288886945011979202504037200894071042903722891983423738310687379257101576937878771448449508768294031529893264961450479132328449100953769117193762355427640507634280973160678593049509822962681768498949559079475673110159796591052092889050864147688122918879389352011212440307941973332500065294517488907157850599597171044396645595344793646393574522831998560725990051212018083970130622018526614470467275674054016787056531372625558570933435288293973330528954318619132981160037732880999715250928949035186025693798294393990093317632212950570409552000974445270777036085566847766434026211157297179625836029916146234670521774068195902073001797786617403326637039611487656278582781739360068384155412256218871764610010368063809894058317605390979445021472957440456456993434993408920129546734288183603802093984900046068872230317379828006835872158886708698950486638277662552358983620482419300573736513711981583317705605715080621885472582366934122996306230073630056136598996456474784951707110362946856702901466627651851015985895772928357255842495630689619904267033255840814768197576706586408201839909021398106020493430789277165890085436805399956957784465732208533004950189519828503183372034427210907445826280649079034141224276893523653020113288111272895870364318255693541962373488390931787255706555436649967178997996419044294713728987092314466012856203933362426279452735601925453484075680474166324292565945567845002315336367921260842075240995229750862365411957830499076105754916158153465927908674179494956867058952230894353431709734362943925577229444186292234284716898218836176460638130180326166058740345849083244905305751271599708609932081429900805999901970910683553618389916008739964519171864506633208822717510084634289436730267457956312209811344083350884177438969606729996429143371054878699123533691237800409958570501656760836209668577533328425617164819239606039092128117289449969649092237810447598692072953209411050739874587824379778308643205175962091749697937929497381833393079780874866512753425444800127323452294793672496622086403527532324913850357918070598522456470703833533634121727501791096577172833841970523860055868693212191142210763127544846437231501307957503561141368602958875083918745277781197917782530481529775369447130406840622771120766295881576705515251803493178590722870314886873542684399106997575922499015870412338503061554802347256721614801310802761813806554478380388309315718916465449330345886606934411948550938300392716173225441415496133300419736923021757321972151065604827864382059449626757296372687233343696324286972690712546037021462926205288921152642106887613700129818534742287497942040384827601440868897155748992623588319963393248001969839153784739997459433591443946342905881455678525568771722499331113139679084189938829793445795875423510327313662807206631754218484103059141977259201698325648581618310405473064985151701072239275347033161923488548464696106515213256120550439333730095947373093274758839908710803435221826912160344297124605544687677789114784429417590254443353665440144802425943549368747059214514535799166772858726582598235582755240807152019493518396108199387432371795971930852426761076666752318635407685618470865677592960392832457422912184093740129518855260545940369866818006578648465060957202269606378783438207409290524972645072775904741373165013929448499088850065538254214879333814942652051415431082533695609779207756863228031350558476556903535872006974391076853611678393414051570341173123015656544371261752935231811685773810469743173070656947708544054341477770797451078271804482412426190189863048108188323671026072152880401009153818799887228490487420053958774929178488964295724111660013009995860785555309694979202770478397062274524408434079246947101165404754018565795866789765674432030820236225621094715378694077695613114240576258776014149453508641948043795411203010176527486344668635857199182487216613925117924506976700278080494744213663158148545734302307146213473979965990776496053360774442138565127713374930208653224598449309912616446523315225759482012817749074454391682503281328236482284925891464585222923124673872485443925570254372116699419296524245273882103274552407183707885968142404453293987323654990056793767459265820373690247486332813979308545323021384675683685531025148560400054963088325459079903373690789655069249698801144934545978382474073807837954914225287085262706218943173080684570156248216886982430340287609431608623667672021858589340918246594720476182451163737941902474591241512628058546910671531396125228123032914578905501406433169632137910633157373513313551948809692547586948912816395505771144927296573753041715723009220562740484829140975794373169508284457127943906733717175534940127676593917454793943714538324240362739658125213115780599573497673330173751588653744114339298950766856508916607134838331418392062681558785879401542475429896343728145568735553324364585671699098086106920823282011807155501449383441206213708072778878559115796422420306679899195387141816436324163524407488007254956940481990647602639882937162129504394480112230598870728392837866494787556520240656373754928913170851622453320792153671176694332766754399765771129812733584584031873095455858783537250846340684705508422322630109366655704072285809128039418570247194716283951629693320051996361122644819616444984352603725053378700788074561001553508205071468579951762632585428015882578355921222914803064007253930652439135819225680881784204243580743089675158090158493131464703247378709825798940127949672510278271030382946897326228238232678005378238536336338891740077710953297437877753856451948210198442027078657442095248082051537581814684926866271650430577474074618307652586670573570227710175572529502214897046930597962063411213210855251780022954766556185333260644019801874700203851601692148904507917419747737160356360829654749564933079929101700194734658919291568893030774455586203880172786333396556317672003613900135066217695332055002529794158787321036288239944223735508082550168253576804676172398649222679904730481866499903977937428993554351144337593274062278511843526171167088301079412536069512158056226580524372815598733509075103983314872300682465116315513795074150400158620280328666623595762841212424792188395839552588492861709690815064328637613085324871645172957455606721470352473246960491806752082926250029840489989522331992810804259438883572772303418103064792389004844592927036823091858583394254455495215338882989951580295200691446078346383864847406706715263492586865375137279347720667861917014508756454412711743623624731012718737005224983600654510843246425148047113576882116927096239823045756602240815558239132320559013321376625647480822823100812161395975902470772016896304211842911717714160688504514800816284829209689523268546242941403566804246142073850586872493177336472495497034002328873735708217544840575154341935844246343685111695848610300703515581193906463395548798214369508835057470891797499419635418691330682793685007891126478541105679352648716539331408644298961563998958315919643354406322401316214538242377667507980624763233497613003658372775395070165937483598521613279966488559806471515454342728090203490100929927282102897989967907581561119242300788517110663089402886558036040560188454307992545435999439783066286711151525690289577840846817693781668472811643908621549704238890112232943947092526307243944757790862738162771075781662753965201501833710418163941479771322895230599930467281458908626390118012793629149310566907963248776589583317454806224398380382269312271800033838181876190688063055294735880019871719775858823631645736692920608906879203719195496622129429507412774079500067787026735636615565460475450982283799160026265143049825949524649032241117803163148514091512364414807567280479003899883387790218941972209285917631134595221498228753238905594902404967469141511369505482392366587593076152116086111754850908320615212722743228898107301841452727854308537112388329850166491652781253267781537935932968066936257641578190244015298213227356734196372391032222095112107261407481067257164312688312338197620018161381012283319290558570678482294320652901735289622713242810533838502276736590755040405530942827413477404732933627098797534870687821084590170392927463774140834434868355270406986918096743008345328235614898287337486080767713955814756375820520206068135213945561131112666073922781957098803565030784379629798360944978859148745098322759202529119282226678325369820494631588133368961190495678007285065690023790280477743095629659375067712324134919847756978025923363187802637534958514431637286620886383260582687256971677511477789781339889614191083519446616929844740039726313472272084265834126511354774095597019528853611075684107070188850006431359406684564979264006386623008153963594640974972510814483943604216089187748292282370983894352970943291396959977734459484134780590746621792777260677859094895290350078840714213071930515673029462635561563738816517731799375790056076481039410206819409356683107192803252188169059474099753658096120050117768348404620108188519610628457582902580910844615207170456659041678614169896279049238038062090501954854132119726590880575433594439908831616920899984459496112988095363448363909623686383223588814101079726768885740093426859586503036146260940340933780925052122830342861592735786709831564473416296846645370451855652390574392548676288369108229911965254297748236786803355977140203027372138634868257098500426734534154620043103666857338116709963744379893587314718049993100411212750780561006906729946694923359234658585743687519728113155541795009658476817018934198782465695315299982128955913934813606999741513500928992621589804980745506703940018953578801287844387906891930193264414800022728819907357130415496101941821849234320427851053936660842992661878572439311799689243283358532490676942102724684951867472532264732099765296506641157887677646378499381964998688542048008732136308110632811289971666148694365749733650144004587564774289859719122409089698188858531781353764129673600679638919110416201790513827944785984050874923124070763155313361585583942821286580121774561444008778434914495640365523781531316590499060252525892085967623933336375113021493512403654049276077116906786929787553727096041685656999206035714150625425043761184014124062682734103345097253667024459645115979410478111732402167330816746734012214340018388020491252249775860373943815505719461236437153418195900010454296287964383803836705137838960509809218315765688553157089986314161373934679241496317389019419770427313146539198323245050367960827201246749846351646265100637451517520673253673711645321530162163158296213244961203693342879614287713722777649253270786188183551805041413519398092098407615303705352790714374820995077702856463428929772179813668358306450092800506104069112642762464496829790261278523780165253092741737337984923647400483385321913506168668378718720942451994989856392866880454160824579370369929385430385302395682607239839902032483269963111255653253895206212109294467036102403136355063943365141717726341634302484930610712049159523753087243504288235392373471714354909927659884329771498972417082573899144590692320096869733193176539588116284334620644240757608126929667653019777030160835372608461947565348303829809717232332294737242057368252069407094822069061956565006878770873966175644143716847323873931156707484248354353935844242290416207255097670058687834782439938089124246666079192447650279686975876784551653714696100524435553981866742182451818645666598730826861747178626171791294644201356207237259459093465455536397668909512567573627659689229430433183769063455975981721555382671257265804412488289819212852039891624363054628777008116955594909808597690944662484351233751622605809760887724209642999624772116452131665707437498697821438593467164941445345759245482996745717278845009697639041342390088113220839302091687300191355277991261372035258783848128382199955805230415646331561988929044599050153695165083086498751961153499054176699637537068808248221597764213411315907659421034751521367458154077230848451875603882680273753006456637422373259729163212900879368163233135702665058804505791471162502161041192537921840699321014499971885366856961225284616993807590624790621881858832179321024747058108884299889074860793586278916194303363983548878721037691073019868225167131011074397875498926387760547452856416725660850709129245581953464137933865246931681425602612477874269639714420043546883069432919833908895114334740382949046455359119283057360420960383336895791524266364707477170541992600853590909059861679063440122709228893946476491406033961460289323644509592867480681369780205963048934032520906529639597483091266381696515052857580599522327128020238419974390823280921964601853169878805815268845853177890487157241236408306218202741612214837334815955251615925730680672077390103360664993233578569246067928267718159408504702629203429083228643491770205640180671104154113055705224760712456751084365301627531950448771373058552841586474845183826358935402799736343603699536821149472226398055751461354077339916443306459254393954604933975563311844949964430649452382528187963418557150057856490718794943695364674827719457190634178920449908566686906993436037476174918476005454703441348375218411439471444377029337640519417064300175353227773064933560684762572295565206708419684448922619199046245556643802434336344262197349004209018918796615028473504256750975837933857564650813030191834595183012783924880400147801310767350913630551780099156184405342082049470888634594577749784528389325424288451648628140509594553044062190857033469635098301449054300125296077975987774706941604729996944976580540226069310500001417758839849406516114973426000715989941085189191965818438164376122667096556233676064221476066257984274106871054665615810155793154034500031927982279621511616230144211890952184491177429957344537751339838912789988192670032361644916471532564864845956787154249811260473914103746015072341972903687550156096634371991817606470774194124430816403413352228295768127784628385141555324105917464034174493038106958296746896294651254682425557171032635342971902559082157114122416392082137245076400629287430994657214809206680769484569007430303294259353977764040367830733970773340896959850891379978162118084429160171562771356958263916805243920905492763379076499289330385906077275835271688504507384554782284250277170378835449552494817261635562854721757184208279132026067187633021089833431753099489708087229016768485753169034239319380268428951968299607055092040220394554312345883237820537242475084454230595586707219315037215661491999167057349062931258863495657908273871482000075362542240498359784220283496981316045096986932014895196968048363289179565899663183777597924650374214320686624301053609928846274603298548878727577368672000755402114971350936987626762304067256023040363514919943079727964835175442301759563509443132641722675211403755552947776111152570992198641943991579468576767848813372321312349846364099116306872335667634519075495784083202951130915051753750382689922925067142756200343155978562841899190367520287804526994215557652806272040385343685514736476671650486581776047532645398569560650080579400775822625777887993622360752738938502370348911133971885305778826698973486826585266363965168152793425172949440666179627269082074064377946352391427245406249334222562508955082616357532971557950632750203590615283810094976809666620202149359934475855644764359994387487257069971012881570112368542707652566042139459984141452348667184482735494283906611069351387837745841419437693628238842348112395439853818395140635594638533698427379682489654694103349600455384353199666902570473450187292699010368715349212156604820218699525840887004627872882534021061246081906890055621661652611025783658134274412360131324234482385674867976112105499875293545625776930420822620339519612834266016314668017582675100118690221805152375033815491191386506731666754371587485983587091810390144262861463826704562422111250778008396297418940380666352641025977517037386616028019054932966530820042083475096237968327362627890240042696204566617595896675342895504862493553008004738832193099867529617842147086765407375291455920025314075756070623657390247909747697712929086202517122861064516919941986271719423832199940350590582207742857381695626392482392857686459313974623549767402912219336503137258613334498315192980632589104209537744939730542336727532928297413862965602224254805053442194801344041073817842327413341113439215126742179593785521381542660733917180413611567188662326038692176486257161582557141685565457443710148970477836903230492902184002368803918959746184507538176115630897033370462495501201624232079428432349124630885498086295255299770278937516723085979953384525003136188797135194627597051986755131361975936006340244744481346734183144094327168201265778288640238366242215831020187960401676853950528553915046495484688284447731950159250418135805295585149832997068703025926774856848481226054477926148525112171270400637329996596653569310938225362549484576750402972336283935466367528927774248079291207648881533045253223809944222465209913954956815189249581190599471964959544986109930405292300926286396037918779500754252557303346604530448766971703446185544576964141660757804597606390771356566496043198204214904289658637892184111180225882670012217182238633862399264731031265464163645841463791751022264427199154054481450438062702256364994531454313826411656777365256689862408898624420524438353627071037561438576642739777514292349468008059444887421402043886656287777787518859006309861608030577210167547874375814270995263128567475816337843982715048670077978545126855119436117420281985977064089634361366824868111687192103063041522140333349558306712440928702959792199733695733175087381953972455158108818596997077411172834616580031262584824104809113906921886265483918553379588304122513450189150413977249781546067680906466696648298048483620046636388742531220292969567583506916067528330702579397346076425831907777708487116603112597120738939341384523610267070283493913810515552565807198065524887104662081782892769673354473015493619989049459423581993211328258513145900396917661517242338085092530806908248971106913312134427768559794628540069241950821797752120762786961642918563592828731516059978604922657604896402309653135726186532028986329287521038754166249306824047119294588960339555687503786996268197717091031360922061349991113204434119232572377475739958304082867228342226224182428156007219899917721312134120600226811381923166353749670420924209249432577125620877113444426839547704095265424117757982497142569327394921490848155576361367143714748158676199065344362517763477664007809673059696590758812276401706358845267296606856219257356435626117192104272070443363618459455025329538317307785338049448060375562113122983201618924286103995937533654090480651783797542312773761118692888396223600143209878546763335524634250369720046555104554468105704958403895080898189858876733499668876259310239805373972131128283819692719379685572583894814174161029353063115742123462444676105162944741566871453598866752853895944088178892889522919520156788128283706885227857200739479098683951209145316170386681921285951926114102251198324820824624870836124565097036944519758230329564127377274510110296887253020333066099342290913298801025198233496731745911782466644339190831224354915921969880054754692261060647924832344837241941987201213087551773505433159376744392596037857332000984325767953136686506781317551716325711066057130184105694170316999893752605523061999387339078947381594380960890634963492444051644465800255060373214746473729176307627733300238620706374219858560065554793795848281711783929902198733792765299866298210975752836688302783973284573998449035697727772267761125054674991091203343148085337004104653589515112271446165556006856631051972996033907898418537580325223935400863412890980050861658051200588140856419896839483637711304549297246195937764475506049409468569993695606725429753121580681257963809452594935116698188410809215847784531020138627149412853368212064024738733615129000268054731112160407372594071847272897753569546300648121660318889111555765444408190662537414594619606901516985472546565595951064689368202130664147675306146431718773080414541866856029458469134063783777910627224712853530036071782259511477938024135022595554490960412732204824311227055927510184932625018208801314023351288132801286896438376345228034181186191701105262318897119618438622892675472944809548846957924279210356539750565566058111221342422964724439881188512026789507324317620727861853197831084147786956304413808182125447197428304356355134416100261118114449569230122215011710479367875632886211452862425008175319614675675612898696259651565220708617181014257247861078053775607497694868844137177100283375957513496909353058059514158609189110293993867625187626230587294242866809746192386163231455305958641043957584106786540898199344867915062211701422607983377486473728068057039886856391070223572230718226426029028169806154582127805787498570506808752870328933725544506521801982657244161557338139266037432476122517779590508803162185285044018641800707681912045117241533420681222402416298682923867469164887862347193184734785735017220233880322447836045478708955785935712998161125371888042419023987193371487692817483156331292777593251575302659459181605988063213127519480611146051840867745582045461170990379071113659171146886499089699892282821401315507690679016032011656596655089343756437141170318022533748909592965144642466559651919202088890655114902819625040190776391110863988313873198816944602694118569946089333740617440303713589689424115532965095442871656783875516105733974975230380667829022641314444613741919637936032082001968797824502435766376726454674676340784712733319902173987553276591895665553052121398905701111543487007158731426308570305698557022177658659641850342806805091790559450910492225403748636168541461320667357540112177387376087358451507754526386742457280109224246746617034219733807012794576216386456984731669644630117002898946138309880184407227030411344168855477270109749852236243287957988228154562981960138569170880022558395946900284204190974409466061740126027467616712569055217623195145636004947774304268340103940625214944250274518849621695221411119620166304383744378535279157890026901769171356019623814193481482673605471606782809584894844705309646022523055137769918820632459076049175066368806876764269785668473560209343266060145523536656357944192341747772763497790228498260579249383906121892342604912605573920201684023666531703901409289820225228178412666075573376144520857222083425101370692464716119533523019086872789653506664691138537555371518503543577036568975277359344274216564340357760213779554335540107506897499593254534977902551449192271682213446050706382890866741128781572104411872396952984053148417534774795214819441103381960817265339305498202590051533249586197316654789933156737981400349336960813226802453721653556481927548984425861242721948677108697599674306050999250219487061355158519358663893488638777821620734998253724182912114664248657707813344260695498474109904091278530784385687517613657435214024834605793142841192820829186206140311368201502961706623335037831687661813405682563010936186781590978973987038978751676899785853134927594256186253240061526874810258348333064971363403193580520336001432658148757701822584033288560780982311345544201342579424513773731964209651453894865160522946097236668632051353768361971564772014500329269433430327092115045266369119282428914218424402288631351581464589534829601798355381127912726144064520849672368768067465803376735489338826373165268404988169066640345236584347924840849345347676845465446362223194695505507978302643190677750051646758780557762447916985390491643086164560113112467931377662503486179614167534267132577623162581952219143507091245018050272266948131605770624308623687450523812387376999439856498304787692565132584989448720490528775569479578399251284446732449734905816376104326487480382982311834736621073295597424281532676448983813657168375962042967956469391355797025894296385193963346453370274610966607636144588419335335160087564354471940174168851230524923021869314808327850190548166987914456705469143449939752037115424138579637439102176816002194253436749799677985591232454269276672789551362121933380642102889224512775567710563840198049461482338306936650417172212768140107655645656540546607595866593811320077764242812224838965132838750367865102165968472734175471032989191772967515546724944362595801071423736611659214167045032711046459044058282560064579812319375790347907413773605415474311705431427465677295956218435234731040881419534215931382890082428438830268047871140573859367387897294098546134394376518005740717693213741486851581193378395602205291512401306669699596121526586643411242226991777846941669470345227236784463099078715363894867203899571017303214937189900355169251835438354628377976382565206825515044582452058827363195981899944217461468812556371083620622924567031216638043938361941859950780644955448947864535870704330898330171315950907247288392885546554974671974569839769961965648890459102853863163574723634087152538616921248503455655293880203017772005654592441191613669059394743072119888274840317721958724988571609773504486671159463048289686175136968043903762859455018037512614389516973025198615078197783136746982929423504750508165295754452590569872966370935222531738152504250193322569231351231233810763072744511607018669278130801029482154270873910144715193328274150226304090911800648432118813884836878786729245394322572728957871690933474509690390517376586782432586387398204816214456108530355751866208767662695906991838507153174201353542544646193463890559095888480924828427003502933061798664917541763892947292389642712116007650908140343039689134422789609394105255433368049144990565816303976839785186863450292271879401489709484303426567421128865882336319184430773413849080799329345101160335116026612094111606368101605398882099164010532564128304298959731489253087818207985211788507295953705205871392851429891976169875650515249945834414975851202415824537575677547661095126315601177114077383526290682064182808129357707564082997207283344763547502117521804907517365902397159096896789582385929944255050031843261541010016987162963010915651697643074134910840842947060343934042573337340124535582129349962538610526700397251483850453825003192049374214458156806194174335203597505994015012659087229399306276116427374840097541997867772872441516994869830301547687528007249152738884897514536264954002151211431137604830625319966316577254517983711928171059685825918809129017596276894760933242557564467133976780686840485357486609247418667626166664359743226013957459181144128296499846311917494794524394518841353165363433310293366315148684561498227218004107736912694931497795552593114828386150293014582633699065275278351710924789565014225501921955019754482507505617088869530886349064008494376003553287301474228647951136895673499050912890840010711020770496675134099139420933037836177894866823118487412933402402096770123245178009146878285521910315184028234113854410990468205368265955779331341577488422868042228924966107388761235456997528629442841211982630099863167170767981250614715042564989958604612318976000115089218157229442831644691504106050736799703152898542831578043497467303515224458456099251009424055742689330101084799387173214755959788840608267880094570107753760548795333994501659047511288537411732463535984141250603285584671669752324015824467187743142354473801798146094485612321745649126550348888209801182482114544164417347098608806145554108448093666556473352037678405436243174988710561075098804634872096409697214001373710103717222679391227196162685266990087937838874038424941597745867594005540472889583527460901063158681730345989750873594641706997271566131657556313368337869742823377077006246372147019290574381715522803389174362710192284121451163249522907187257091402178662804366454252919105627089614400813074753994830008541694133896558939052364778118843187555962806148854743813345753514978062516990882356002529030478858333789682990102820340096248440490862120692000079132575401597399090416590081700139216878077983754566570543397269042114302877280258255608487798286276270687499191346420823019706765797531942070487702493242314819168469671029684399032663007868613413667345176856109879618639998220875857520592929052904950590707179452641127122606189098396724091747337978058577856577957329905134366778261372168592555495007544686734008493777258186687520585426643021146994602674296852484518186719791622151336528691770186797806331492915098091159466123581202260974009382779519076307659025459037205230631674210691352322501405362314699140997573930766224330393448293227487312765502532071703796792471253880013602276343662406660903503616792000221446866374159458266801306217800145360867761814712823284031455391444253503550055792749136775131833195209225585078312376929602465536167439350932574663458039262009561307970366567724432819055389387689531091626664259310932555283998294358910410468261529656674867446988448751972084301147911457729034786084763871241298647780313888313151038886232542714469193320774970724285982432727483702462234142928759193460878439782970633687796701146839565195943838701808629102538595553887052882716204434515389399363445018659158361057828108102347225476491361891373161816555381905064270614697013869336331828632281148743807800985781293468158995310372008952250316120001132109336126681804430203827289942948688229117042016615094389909648938996665268743844109802127236941450509449474092721295042063381841139364547428839792694718435627013314501504980293423905738181918619607957436338968509670234142479061264074439019526946387253240302246591681499500705983942311381200977636763859244810301628148263101146849501850448050088350147481897274795319209611531001823108742450344752196646947686227892221196700946605181736418072140220876465809961958708534810117739404574084493238723765068593068433928413162981480054254556575630140616596459222895885294704910075025253510634878885877190142480218857886932698744463919146127523558522969936369881056428171443748992531931625528180125617515361656200494844701454790992872961985854325408994405052524443343086673907576506569256157264104478173476902805094741519908076745718041415424424565058924321718636039799016287114015888906384343513495426631054969980198474078360308001456744758569714233206209591870919485607960116341274956258171169259752235039559069013488108436151537652586120635256981390028000310344831174454426026153271568601487234114283692297743167148494876754875030430414878791655518475439836429754724140068857168246483392056013905444396406947881287929970031353007757717420157303552201097590779524085546062704952793188795581455492305239217463415004655073272135336362762000810215316943473384292694424612687858658977069119822933086596317038048261555618926089203254284169986078730576982702319199794699001760446167359155856354622081750646824489813661294071364393661085169852243828091373061980859337670989280174223781343974238371139882728103131509070245048135584158584922499254206006275294661571384853743033771909071946840811590975548699242111432175047070235860460018241304474000871578133069550786777014485205817888409486174188010655291755755831175191175148199180488504955680908599827036230795582918034531861640370771449386024977843757128362042767881257034876034772548442505704250186586143891781311363932055510458696755671237805183395014414760794152700387884184362030506403946924116596610335095778009799409546857871335086684566570488079604496112229511429931226360775587777299799764459842169883015962136566205822106940546470846333750432335804804469623778413879233363235898473007900983463324058988949064745158535059666242152708550895568956421553711477527123325206952107899827137312697431516470402694383685347982139142258361191311030961200359329073623038900502769507408389699040225504223240653025048325585362793148430470832900614145098503640199940558564587575669370604599870636092475600861369299719660299140601454335238107202436730348205853840936191495412907940467516391164814855849460284377384685555603892376007440989833937526491389125031452254041009750764821614008651699533664762840983434708857602002142150418486027350005641418495392040383108770245920997031292713946837503950210217752997745115671626157582805043775907493470908800558295182203124915562029681572801326142613211200393308751634466317232568569318066451851386979313231650882387443615677610742565298978194581312865989784378566044664658250092916735030478357723421246181615409615373739215214264430401821201647068396746789747187525814369955257186865098402986599934001543182322760497255976207141352733080266182727334351177797845463303499163387880217007105664778668234169056536007923879792454659230501127297352331412584840786132169972075575173512381112381752013148881652793738939551603408274460509743231784027367261269857505618342279536651643060308230903375023744347090696598703139917264729562918603404530018685041606782483058108485312407133946778975213943364423536430081605532578705855165403950029316143490554159108379637736064997027577614685825466471503531335981258578572752122090523355193804101830619299426210020276432770157692545273309653427831882150752666427553574183345928459123951898893260428463886701827711176644000069636888397469087459254392740495075453621829993174941297236826697855423753873680042792431393773327627609873806517541916760526652412681353980433513564985852565101251477126663068006641665519028559806074542714788957921470224624224357716225665236677338510925834071063553112108253009373670690034408146692450950635452062759085035925853984534917804521602160326279296876349108274095643175131459292487115000808537324801109213565310871960661907539590009954789003975911491699366196845786125104643968464240336947062136901986548925182818420400216041863119200351626397187647785415008330699882485709920481926150020061593049392951548845438005865263141842153649744530628148044983480786786920460846949513670564497519756531779224149337925246784438311641202392219491053601744887234644385632685207825386674179917503059724959200670602525529805360606946192318539715738143295491685120575456021135043737713392941386705844781015405967353975460344291104500760836075172473030834406351441645050180243407468959110375503422730486199887834512179370135649611411640926344550319831238821464174584569184799710703498187346090209991329853407019635626788418908559935429310394530743796687049868338280062223667005453829022707944808977873951035156624420229697534666451458718365945946275564428737113622659564847375665588290734029770619537648453289469312454337534193187138289395278712556392454747866137743810713630586192885042167510475896564675082877024434147694135857305041253300913514604939184817344287375017036659260249409595805463289646109981778672113417372048580699208965803165498732951745563958838959831243094565781711511291295167918051831078418652580868079835683952136950911144784767770897446794086194530079588005632798549374569926091164605294680198711121917121802076707845548302391228971588077161208916422734682330379887965775003421834146349911655012352214872034953293375732324870708413427903608870245826651407338670760521548615514932797818253882698074918149014101495340056890134113041001211204794082531501068033565900380182855470809928473375923747195041216360984134712580130625438245999474950224921781536100369705552164043370828842139695615108154341800010473697116367878596519971294296834548273867104914730413309819192575337269146572890940277929151038022970108575558753565060539451805335542034554139831051826079242687846981617104482392250628644116772517050304429589795715627133311871796358992004537348959329565879016310970035995669465313092896961570303780050184424405562254660466384040214545570804936876243445480086218442687174121310203991420710106877717455292269152912287576038031623171404522045665792440964659573689762668229792011776604421907737851397876972348788675995453035494741781798124827207762154988155734534613301302152122158187118229578907163920779393244058398444631921268683234680974587228989523908060768019296187753614287336917918541305675387484046003015100070881920497056446114737181495272743619527712226350716691763341005620944973808214949731219654101201877764712949768714222854661007774856856454206574289344189143890272534125143486053248044643344792993161560646341246546490226293143180064281405735088008171013112332466777603913097660306057500238103787009201190159776367855064699672316484832518412026886262780598540318841412410418178581998884877379730281992115422253428921616284065349164762074937951406485642134172940518614295830596579742928391542316751856521644169547379705307712250308733204319988658789903871945074983001189362155589532590895531362825937685780340834749436180087679620756642920912635938904281886336364192946768770202514601530657340807038614949621194283115230792349144376920086560055937293916506117281220955156069961390057985869283279668216454835696292814788715162179207213835117587815263734902614770061744810425886040324788881496204729761296346610061803378643579704772958477150547412673577408628578038694033132804436377660979802218062305020753927509311020098817827058313044751331833711226881030485740035488906788622068296851151553134476192130241953067528946671177479081311517791346652665489520395301311907954662856950625270817280949612476358713898113674312500001775407831820988243480791008356456291394910574568506748603881623323007185853294314085229248841627763725236987581543683097166508993347363140527652021458022501883222379945458733356521664263070336985042506329984418230763550908637197017465355622768342219347840132386400608851955675165101684572196080453804569602416197323640075272232315562115837488943239275975939114704702269126400912607134815928261958712392727981692824487945759699322213129813541718904221840958198291245770756399315097948350960185875029482505686641234997603035877284162970517011480482077840867976290752643020882970080667828812246865903761654581298500919632651985369155901214224341290088646316900963928618880089926141189407006225646571953068160885167886449557266861632316604419403921486723618374231871537702541797466228655011674237962530614680038818121844144000697202072876197246347357239026839799593303050014695298153041781419594833168792638679842014614959829977309746299272986425386131622914871840300064855462435509978432934834154935576080269004462261348005018154866821212153765530730024012950423906271003939973644091779695296229288775277622438643909640887870097609508781807482795693000829647905274234371219007313345802617785192637342662442604343484362620772059064480187764218119855662053116190338476462276299837434513041357441030433564672249838321684390724365910893376211523987715138206704445436736242223111178395602428412365762843768823373222563234849489437523969427989615075923005596821784641879936000750735393932361053275785418368122777493026059611745233565087304932189787615281799613346708589756174091477465979342918610656184333413217945376751232583028546492984554409908977389530996126723931797284522752500643695540114591880411815194706024939778909197693539674171768745452919808847887291886947291298374640221266043698295931746142211315194700955884655033673980001898152699563306897829427404454953098486328904476893068640591644194181599139880772728406592476399361744036378290891310837855087251509659915690212800972535027241898977396585514114229459078848451795254353911712490297780526030830213233828930901878434103278741066352811186890099659498919020824153403029893944035639732141576972124472687881938616971003111762825106166112162844785450557423771038972688021697664651785624315231211748220175792547182839869069943145606685038036962506776851906987123341368434024751271127099782715331823673091709099183031833435416370452880580053540927674144289576243204423197691647533127841796512970823286713560521768875257389869090474026559630926766926450494453910991327265649531676205187864068664368766826605320118290535092187621647397669625187394948035735616372761603602623354191561249053183308033784457124113368544884666452249604697419465757792295976259572805051063490829532675096803287077960021760694044787194964584716454397151790053721912327094574905085760922487293836405889736974505899085034530524226542096404592786284334665671384735212200712649290541581754660629107031510620042325187419136478945333097651568979835326608777013942957006658850360339057744734154229473133555265714766297614410536305704761582812198489540944957656098239853595664658509139069724234549340374915526376174814028061988944984775033637527478237790833254211178231034445958012632694796225175074657138398586587808021121124191612623742304630201118948689217232421866686572176426400205577663653959637136262399807272080588883143035676906938818999197831111376922538241790202757018698600870148193426354048617604332984421258820360800272079770578898737289302328540958471053477600543047704234426771484299965483110696097298755771798824118240380152925389691098064216802033897135095455171489365964784272040177817496643184291912874778494750699926927265517912046432937873556267348557527931265662808899676945883078989944777784042914866111577859633693321424598592780964844982052544319528077465409331790666082726086194781409933943001889533318578114108847922277426890428992787445244387523204529783909681298610729558530655707406759967603757238595958998952688855497385093022621720011151216823205778936840193420401081315512307898801469236810766532123839317120074010279499795175238539356985722301149766874361185179838019380377641215267585691546072403019885860320771038328084056102573807022466039839764088871336919352872100700946882401711652795135711491478366473209907366204928260841588966754447934974971699126000798612245377693854913651905656307918036863788762827213796626808884850079298524216523025411872040875907896929059023041143343682171751923774135306124206831832685983233677420979837322900429537466052153504354322501235154110054039574269585486731774513368724625862302098613732237411401796534596705234738798516412662418946609217039798539543002928644759852593580922508443397461422055568972700442740303577915113634805653879178039311003992671877168399716663576634841105402283466226557246223683043617588056882809834269802788420694164752290873193056292554464311648890181800355656585057344468779561887535936622049878595678105422929785236162445684120533277626383388837925692059260177926456605847169333726836222866387450060749004310569402463821849791194067465759359575098318360162163836730579763206094975253948117081455823392386992290494428787853455527866392221539088401595460584924708745705077500631123890130266552586084642338374084809993837927876663960549562300759245348677721745057290887935977612164762679975604859778584172770858985246268606807262166780792440555009969979940131504561442588438156970685540522415051649998103285861487819148523282807352180507917984436861323208907491739176503111335922163055054397853855993545337873418128711267325179692472618047273232026914978635129841044998887149072859391011808066314882613494700120232067589183996938217908806357580683490686354023452764801295448342794167782918548443321269618061242104269019699310354765478497334886526657647587501626823158674597511418369439608087658662212226068669461836118117586887512517155720443145425413379983522660803751471340233134420217820735185923255797955679113323785627110142161657299083969860653105606503069143136445889036095444914885961967174879379834760307284437920696397736968424523300365859597658585824670724474431105241318690370737665975883911347989927628372418589935817855350466688461068345577761550959057561666238494103374339647720816686949234045615547101433598628478302636423806696776928570813853406584572637730744239758558194721372017922505798794592671502725578875433655834233126882422223112929602666318008986882355397836895533094797796116628137190398035098493155092779326686865179614176484220943854939439412301051480725090070048244649816952892119000999114485556578251491370396247176295787230952061763178305975230714068500758044027573230004176649933608986507118147315805177015294623833163092949151167011262853663470192882629994060969826022637416158101188051603558037847172521668171764033872157544475993499047036566183854570193835451174707611402831327643634164987768154743215146996870238185425308815970000591677562782708201112566462523275689397865311202148625956612948777228909409134609795957979558358910994771854429653139996647413129035773010392825717502540523446848490500256545103919443128884817833330144860198273529548721144682868623057034221761496824440871739276744468873244017407614413152862935344641861791301314869906261385397562486851483325852661019442750413448225234169409393013057334914630985032340466305912846611764451802496597339589775020095157510522883549221333151206017297582381930634682416235613352136090306887100890619662685097392149292895437533723517110678162105405341176226175619583258566944756724366143710438163260246607407771783573482865437644921339304559596955266711948880673270542046299497391396239766130732917124805120368480127167332279519669021996565597829427944258073082734905869530407628060903201191961493314947945432501361780278653185690039959167531482953497887707564788941033163058572926572660029111935495046436758868385530810245402174269016934035786230503696904864643772028255758785804567974174573021909944945183692591424933691196748767508666440688611096980075184510781395630742570935268888903627008998932743511254044712814213248152005053407952073729196868631476653795930290231905614611885632293250134589692639940047161246267963345662272473751033296655139170016857526559215113533946811697749016412288472548366927592839801899203550922138131423529232671178332996152810425132711023770912601324065098984051746066560683407636244657951346677737918513263807192842605674589150843050617072848732917172543347014015264189259661014603484598510979417340681551459014833887126462565126837370294069257112614237400210888244101928175653433758003271928631488728166133309113541731562396529588953139898551437997202914131525798042596731038119914222938508398869000594972108769846299710141251472680155925609288818555725007608965127876825600560714027248054278115455999748226730789764393902307322512791652006135270157168874162945348986683436718493207466087213212457033665907917282993324363472226957126541087474451388542546000368765269253543109425827322465186497364256095519951200699671565489607098201024607345651717136834961041276218195279479034032072473624122178920863973372989016387855260201120258163983911013483641564544395990246933256351274937692951500159333719212706756621345681570356264962846868779909177043356968040717862275536372518414974148569939715239140440361935498293552371635831860137279942156337879539591240386589765179191563930437411819008112651958062629064352417107487770847456154385440629713521595047283431900106387826343655198143026593209840671989141243056586906670463342177002502410899058300478656047868970853890529691355736525704243315879789530224022671637509410552934081648096688712041317376213825426274551338333928581174280174813592180001770203859974660493899461160460992644612966814468317821089593525844413791387041464842447783562100712812497475053660907042266509092290846367749809319458901375098859290824849334950632729569548773398659192233123254899209962611609831851233144653064454741974167952313369153889205497337697954470119535862845537648888967207350496560913232340124335486369753690296992388313778043118301320686490628181144678280049224602756099507687123912920175393403475935497887484280149018724330180793808553124517273736741261027917470968745577058992927648457860202882058732030578663957127689231468579717503366607034494488534546739449745904209051766051862478772856886592706244253113565455479417830833228200038439952384452949128828094767831278366602848033334246524625708173307979148760233155427141589862769182407510785472926654970894029424020525606594448128691193327569111468733283836034040149986831188410520948391710805636936427159550950343043022593146380642218089596817109817302499938629739933233029220432227881353623611978883506084998460544242064802505107903421742152345181660132081017957451697709543392156624464959539711057824188382742384502621405025281729638416862612896409654166405029346019689299706190711221167074434178354937966830859934576000588319674654442624556794535234057341862033285253944337121548113069626294218699872649513408890640256380511348186162642682538849256076006969670051243548129007929264676683524372304094883234121726317743457499673014766679978168183877046624628650658187030507777522953697702990946206056419757107921505403545232720904751039424881515994184460632271188928668901620149922448204734177737459962569590332802460161882232690272351476863389548487076321156712161604824937746798483693125936641968877110275557224414644006726109620113643571617721326833836972623619246949166004370387332696412872791179850956534957893587032860968100540851915609976187849369521675710618100156107040056116080207905470439533598282528946138077550345055915005894793695164920006338228529067582632623758349243366149059881269830206370021721080028605090596272555325909588272512948542944997442930028423020000876063146144896340611082887229931749486719983682915305948327976567119441245309723465150822630411892727865005796696165983373236967420083122631294014673538463553583711947019855533952147959907675601598092428637676124011545050380519851689812952637071177293687149295001838101785401652392279380060573187677848813382607823829857071863571915521673921674264402406872938737363531681614987350489975430384627871125040136736423491715581464660418380929267333613874930449095980634174175205669348673212606689280290722328665260455603884725488618769021576338162808330151850855835947308942210306047309379453610632088139162163092781296097693728709919423503657303790068316752538082083896361630033759916982134674660507757369820566586272828881026059904451930614256664410936357650590425885980527742663670625807974762859672121087220742881191614822625067940300722259551532948639319357571354770141078272932435891399895733852735543817475475184006098160758044799469282258443211838831926444087445830010231862279226600782208285920475606291307232600919325846917495611957737258928175289124463272301549448890718675345974970784540978651775198273953999230990992944952113620332246423446588031934230126660102844612999893474545698622821864961519885327427842047754896309014515495723823969825861684849914110974861730078475851874605192321075970735121110498677224929706908760085313784901166434753803984432661296468895628756034458182910148385585959349613617150963499121777428299843988644093522146215607479038855439004342395377080275515140248881928791502330843315540055094360167694349476714271797212513689143438999440476946864355415044869381755768317140636973806376075647382907519317968160756478769125378419105063477878138320385012192493430247481085133562884832878160088606727383744347999204910157860205941542083514585060098499020820174958214546730165351684591968618019263350575360884237520135354751064284640829808449480727999748599237344056016755305524658913699607792775779403101036883235630626989335328187978423334968088370058229586808284292705466100529793750010837333831859344379134330117277283327744404909155196906610361963612651678375227721271030100781740496716347952037377001674391684142315504791052520185295459203881928509403067261262044729550304122746149991854539471590753734570939789143738819867406002290776334972394518720402634693924105222994899715701890498432810957883494037378728386754555548069260791756992822033674952355895776337821788286801888145726247487196030905027764084002099724057691243694188512531512930672577694566166446577741282420439237300286695962573256872393337283826540247002545509086288896906258277414147964861944556358163708705107804640567062882476788490124145890894186711784559977173922511291091879244868780921083591867610386730277341553088013598126233744402473876078564571854521777737341922867719268627708192813288715011715539396015883492465833259896026499793104246751905855817000990788050076655872028942588477812760488602121561268401072435519583753139776252915539813533839635566445097375869179632206363596279613085904286100645625429833809127185007395708737938223488760886269865488904144857626308898510813578288219699713581073351015716593758905946360923755754917182753111100426973176673327839559290249951746000743897523870010536244870080070400695787573928236802664862299870093720605980257947589568043526991347341998260854659868317116553656994619244224930149022506733940542566509320863677036343109609745751910480890898507806437354772665663324482312836210279583684587892466224742710161761366704527461591269344144723002479263604070833835282444866403398619736978645858370291095672214265566839244521084403126663464678990379750632358794013570570307392847937490448272193220172093911432808323806751145199452724432164137668714579518770542739769502169109419755187769360045564287469640454666380714802092695357728554245311476153174290324921799931597296047096904951665136362314199096202434850545325668909555109035535105312467780626546800102897424915681850244242370660917459854499013713923580242463380731193156655394427352320104707656497178962928642198692754227773534231648268157030573913351765634213720769344414232524589046337443960863173348956425937243294082574002607609070270339629701218005177304642392551661813372540169976095071998340258523202418878740807275315547422804495689935367768166940658859803643998893157061461762445117412481157237964958046265134044177051299917033187117061941100416551034176712357556407842781917903308942564746660498196569508121841507923454510643532016088397740202097250597829182731254277143777882055503912422119985760005842300959334351937741422318909306165210470252128536642407966636184971631046601146882159001513150445375899544255867664114188474964756185614593421266680798411451136232353296269110118686130853317791810899460125457492944446906161299559943328678634359349760909344767654594273047576312558077270245027500048572784667497725051851305618211516287140847652620728735927612713841197484147444795116291096826638698689035484047547560683016467661140200872238474931406016214375472284036901987906380742487706091707107533974282701612113223910603933326150986333267141200224591049132880274093852969926539473292559847685466622747213383380504742467499675089376958467567986975058878081247176287205390735553394259030703892051851326762745426744720499834087933438130895975216232109247442424488010427775506288229196287600753976776284347796547798482266613142459663892771628339164690812959804176501586891168258260591763806210065080736491985689743650716881360140700794420946314939240371774514433913764425083551172635564231772846281126892439037989324764322085492562845748956356893454742166001048329163906297806523445704006292572636814468027461464786989139017287888552125966459399818646974968191896743474775027937510599231558450289819518442361183063166100789287008395556044484172400617199035291669718013361544162495089100539716915559759545651821438447465716821698851306171765533200507726443960544186920657483134731578965028847274622138858936269525548544171548390838463885311174264663339147909699613541771670790433658076218784785751703779586357874943544854787605035344665358616121183135686896082428359004881826319873924154320436043315169136737645269169258062869042790923019858000977809240993139084427090907994892289020564807976008998833821987356085904032347521129874971833432751531340130837523908187533898730118082954659296341427127176150321971430850644853982036053758377128762274000017282911287199919213550854872263697775324890750965331525578176910567840121236154466950707763099107244443507526739243353204258955332939989801299430050614105955872946500417263124374510902285957280646387898173895235454300207730010589935057883394368327045207004000497633517939930996119101938156486851176037862419766592065853027593969736272379177512823556738178663165107404356473044401152039411555250160131447496987346146937594553984486135051748200429124721191042202166862969404504055523722253986280762210840849868402082183022611434775756272939231205869556880626997573139157888812636450546310654629318079669666085392452762247356919112085436098533756334031634366610998090832642607207265542503987585112154968111168549667461206121879352462969268543817586585350771103693853466918613132368050115030467979797001692541645804403904412751470333936924406379878922486822888445487619997422467302799708032078955439159826478050062174219565402955159549067994390906350133155857033554207259558442821660813010445126276245555645606363842187612064436064250113918889614344489958526107266644449209550365116690739512511823791846695785858167346522515528587534769129772707323657855394509249530044148998954155896027399814558106865781138870137315432392550968697727257937420513384311680812299154979241782972460490020879248522920079245727803498843870120592759609159058809952950373678669964762333561609249483503674429903858138784205532292033661474061859926692782091950400939641696792288160394523252821604122081543451320998741400339509193952075677736964765941546999939319582671846442554494055259772719174925504638644021974809665444557140908777616311074641349760561348402911078864280302289377758425089452918349934299906311548950968215865910339355676722688055269070386402264940443184802880770084872323201295356958341419022388997383943853237635350731215191280352829364076549516153214008412895738199341209279265857586747015080593341737956642551187329742402400028067712530459153871488813477817536084317537317092315270030612018977985848376849369072715378443208569077615581441907099413773920334683190809401310787459936286485236910205330963971093260549231938750238390383120624418475854538899812787627668710013113127970098704850745094399237591938512729118555719475040329863138385392186949711409176688180027739826405977863382228519611946150113757485877579505142492478647158502900952226728946953383307029122243421349542900640847166471320439048854333129659761777294101555118524020741967705005022398359207210156341601594270447047976790876033032795997244478597340577803599106126716189860198645406380790197290678853711026716725137648403103693926434896731075007767042860737003923462950376215717811366857468564858303936734237282053904438888063522333860448540637572946486892151174086386439689880228141176212308907478148862521415998815850755258833029526795238464889285750975022889664019140570683433274307152418968573707936273414685054224639844698551438960052528609731233126736275636314565703796502722428047358183731366935124168881202565844419797041098874735787053840842483213125199206163372688927645151931279983124495553007336058583428113462200782290564065664968617718655998019076376934543681812212201982907760032188268592717263925081469162441899575565191590090159021474742104668244468804882850554204878828595615189151446260663351887834460775995888656720012992614138037755294425642747307304183734697132684240928311572841988473347157551012584056307239085235562071816844426239234103738517365886756067193089225258308333970635622997504927380126152961934063600811829811769609648174221883324201958191288513884319220694211108717232884781057257919028672868176569224290832818407855849615738921214455428922030012317468335763483582653018379063463849482686795340058727153262084832407433341811228982643147440221518264215139945253309333119947265244770852705248928883502352957209011951880904100919930935390916133559134601354929045571578170615626222769615462621995666596898998274993426610939428818977568947227164715867079609470997475796437282892205748234652775799684620374612867478706212220881885649014576737050180252597757065939060655073656739385264595113359395442958804588205703370577234370591162491855624471447281331840081030862577212587401433472685454684626331237264798547715699744590524855507919183290962923756865795207088415357890704244672442568297266376231173775712161772932249589979489924798933474894208422250026890961677112995019161397220289580042766883243106323739092921614025235327479572454099359134285085444721715223671070548222749003070576684148193483418090947171396101523338841852439730210822482400149544882203551739849901741254991108903177663706797446135359504053528666165805044018139088584608011241337007179447495793239892369068190818100096985304023165809985843205103762953714739639637572757335950012361000421883667405272130863791317105198620498013247433418051100570731982264449834157280466322586661411510646447286797932308985872280762133014246501276668166162817547782130464575700046310433852779120401410861958613003927426206252462101672833069693548707814590161538307013642847300918565058637857503763126615346801722171631492569405591478743293511030405202729754640376415457089338906502056396352817730684906657565981418755762131897256378015424307773005426181996216858075680756967327615917467694944230823881001686553304566969965117795199306681081003768800809543062609488679981183385749343391726387240659867265691976313242488082083746556813478413924842338258648240892199321385844863793791603974025820052070619273398325290281485018153852086853254505269450074205201595916684982856501091742513532542434791286056003728055706772296628098893440149365631145895685602186204428236076624032810113169213626025814535854775262940123987783175265531610534802754780268422412736972875225666947216293921323471430049249918320907722313875059672999793529952756128664174355801771960450555486775258387164254565944186152097898075847300017012495318175923900346693025109485073211865472760070272794302211543857413328325666361197815344125353245507803749863820280382180452934407126714512405447052109421748632804965941423027134385862137464046219805060900325759304103147898686666466910346020445496584112657798374066012385340867596703444530903797082011024051850323887007827400501182931210289227551550241402483697106950071245628197662346176040341658874479624410350155768603927891995449236498023372282236559135651751205650610413342264156489716668557223601879594682988887583910029130482953305916677081220677417759640108974265933551525691779790533901368191194331984345688230846601874049163066630559779778633467028146188098114226936845488012395381898885412983516830907058227378353465406201500249237159314533043572325271125931247807839663518454974727928348913797895321666091004323528940960456414387269573984175865544068949681850164452378263797941286998649557641934815988252846430232556269466409218034146014721654017468159165073965742871060295012204050685523351946309026001195800976972565006453424536423894820344775416200685705300811583692047800273510479708084805195744051333551962457446987469155637852991139797860418046485718525462684208673398784938059448305733535612684430190636944117181372660582480279462877806841091740359918984840805723397443831334657465055541928947036995470659929270117941886199491756701200883790065376863123493801457348045003919188150807912142202465062846788183470072464448107263032015793525273957431448453882193978591983086003782344875038232248295197063347020451355565311494281488332666800122986425413924972233622072839600891114755907294296103638140746013941303292018799550951709100698284738883181338181802043515769495502311258639096625689047787314408610022234591633703772819492637688987866573249062469551479235612348722075764267135427012033392764408910760097540940931852638008944584557163176365138446453107892133547596858373538877832131586207756963802439555613018655376336538927727732015717748181849442741228580123769557498866960876470920285637601345094091181422856724996333582550339364416750612054509220353566786188008085859785802190528290386961036164052573046773902593196937334901585700350647874659194072444841438157606130624820412667444376684559210246328431394554081597718104277418230450180381373038880915841662673125875123005840903578340761329765288138457656343491419702946294095087121176428208058164245924509177648230575927971668281219316384624872292017460468585446982307924932276932476280600495823086194128744723308722538511079726751410466187684596937525694032129737318301137121076385212697314484268342044202729197611189564781551393813849652349791756310905742526612089734015801549547326632317157162967471729611070107459573594077068998340520784490405753324236946878725521093237961265003612306390981325218908963443433195277736147710741135702832965453266765327173197953161883034757009978266029394495949735443811108211180418895144913772666625084709745377481517087395051939527856155869212534947226530307032234047316137223919598631376710338070730527480931521317368627841816086881322426523586009455013353816522396553648374323199663042859394769345374171157545600232525657398869347082355523343792007856951167702625113963234125004264569314610183232347046802370721110222434773992617433480404385034622810619238826437356747461750845719760289120357582883527235977100389730473425920021644772129499880104870741205223891422309909814811257899428809142947425570202302824076614171994874330427032798992869501159255263858646735064176975427695901127311644343096899058726333918339532130475151997986780829244634040733058138903401726035951231317289912817611433406660920258896892336343492228704355412977861697855780369717120600260881652081468260843526554664052000981475776463163883941002798592675785416944223698698445958301600945976289662274104565750947912955309883132230905647208974398277776977609380433793927957674958352867880116504688883294477451414028884667524619793117290304118937381851927566586911644256007864362093425521506816407460715314012756999001781218630569268496530748874146098875557288901674086993925447054298322748089286075938898100360873030457012572327026317605655954079498059814735796635993204337304087405762922584914192095985056484830863762133958138103442312708830203285957465916739029121487585598094804653035646684368199736817510789204987781449923958517702860136943102965676605979173514833416959609041757416890115716949812541364376351028489348193805485216436534992528489241120695248386335029316769584919974472617676394370095083012729640013746550598834195461121790956961203010468061297951202675945148535080935204366078676027147567268045621912361040841143952265980491820620161695301894254614190889270416144460246019219214645800135238701840253677777291810070900894661699045769987442145602401813758085100693864547790196741878811677031661816201629103650443367271070676363309863144194553130966189522900447852958100182816832004060573074625295225159794080339995221123390197473145775152936118435625751680160704985369604225987676267556981808146614357668942663093460394331040834269360511341062869285595498958026986147329767523085585341333770438816078253226181709235949377737459753291106852267100309280291943824527415552000458864787532786058829002697217637367300833571837222941469673063198642059606341938049304211173880315564284443573806051136452944106948839457556314312438456719390279277914255598196548104609188957901225514083702875184982426300020841481676105832422286397178164381049913758855140655007921463429070398809727799178934788343762874228724856108284061188182835547002509205241331517709315117489295669682187693380281634136497243804580949549876032586044593601900301445891420015727945368029870451668045995740244211043314035566457863780052479733946849432981057451966439624301722548741843608728854769308353540609576769463235592252172585192730988797519651554066968858017672064053639884191868047158357272852268644133160603244719136692564436017079220377897418139525454334316870425816750910405169061348111095791429591137312672253692960719175795674135787246584006309186313537471454784418270156483285943952262867799074746846060547317245519526865174344094583463115721935280647394839817897057052154511245549644728474915974582518845022741671594715367070954604976919738604610375000053627907520555241468098273738002881198527409874026327576184789635464775062873370277270748922853936628539839467943936872501690508892416826602160441515910065029432843320528256862685385483572482262286098473445829131098853996445109561510520674962421371377399036444327624884499261182857651159476841256022478759087317302075837035883207595317941374243939769585760110990792938106657864834878345531123861358202425802809926784076577890914238470896081377191470274247927823832059809017401743990859279725462786319551839488915432737109816079190442220613461396122440384220409185745968232381230141980563755839330431991835458939504599817785788192738398471698310480449845685039771678781326268131519987058913779770580298137422292318996561644112212630067961293281529003933589008656079060430682501119355111753440125006978252683285460237570106420894990023452899601958764381124693777899939582839405879953757078203341628703053371590971913005735575394546570568497446063755914879240420288438713113134099930324596977753435279087415869537104940506905840663628117717108020456571052353489824234118626895319388582062969522125925334460206490414279280242697611265450211070165921400223522889422420708398040858174626974639738125161240837937190157376426794645487613475180916364628625557858602238902969129432788783184459063062165992561221786550178951876359034786539670649478855853166474578203904760789833096968446053345184087170440141798817279314071718685556835749920975893599997014192358884017996215868768769484630741349650349123630087397462296833226507801423194408944013366890303103016342456496958956992352505270162007572623220501893244537855235974329808627657294153570344224830808962548321618865951553124476655667224925162572306932396318797536382146852132674791609103254477935860600226264748711687088705070580126993004303168572164716223799392822883395576908321466902711548217420231631052713282222458786671563286936164797792214063149448463522972704968807732356199921757542801522247029837382836408307675838253335417115186242779213958679035425255628226343690896951716903087908425973861896620166548828349621067688724351872486760804661644083263687266698732609711324071239846365938861321345974786709966600365420777012930332447998092435626462419145319443197566789896011835182267850922285660641288972830099685317070961580146358528702529447383835165628887000274194320348385493712965233169114910365340692383037927963713873786957884367820935333291804874502344082311404058181393794945706448697585275676147378587942615144350887618086942571159558171101469695532589305233864371121020331625837277022527742773445770304728945784423338728693374334996651533226973910485706961710075857392971238397428504121235322378596783659540894154101044127144251246023990689764724344281030301813660859367002257888082004030851287533296887129726920368397072697979197892727701999949047338209953061863233542451927525229654317045111956138513072291208274038556462872018043462841243212721106401707835261892213596702488978836923841752353058727093325095178708313313175338404100007519811493338459117026280877368379799676036341413995237452952465275739724060687089933818607973846274433075043143299846508330100552816043096264386475277935596720027773615483796027908777829499785536800521183670476407280771500858775914037470583980358609422984537953454662083625156923714683138611038289763108829025001020914259664799253885997036911291350605771589475569464192933235786953277536227027396743077914280863666868983666404936204737434715437297588931643941586671538991521401868861478329002594406054266390978715070316191544446303842413111005735237982696419406599889042194844164948631435943637391075401906460985205747573311960947743121694788430138872037524423499405882654748525530282740291576882155856274230670785135217162800537946788485023188308068472661488295864318829635755546804547901103054115597116598494231907316713401816393242142872092982772210510933569431493332353077316527215648368620723103762029282318440398765296485017988968967471211619231871556689549935190638497956310868861636354317491575192125549391267203225920917206139462569135371634023424268808973267366085388608669858005488961460751389264604798530815825784841249327123451224174787673246106045990931721203855035102458359541720990566925193298183827908711494604638912148352614661940262355425067689819520225383997330404210724031276307595319926926700787753915710030007578391590468631877537296123853218602538233980466906644924893853415384723274714173926120423129698840231785633692110472112342008543353414293483356265486748663676854133625470371520169035523394059780817132229840624636189147454299999278949720118666890071872360051301246212176498686341091152928753880769883167005870989199258718238858445982226263416417701671368896795876143163731682845006502567431387547786089199087548343577069620346730194571246047440862856027352564352072716893368126460562521104303540234696511615073772845670240051505936480850857039768175137470749891383907489839906815631050339438881280329752962503395048125466389742237704883848115351873975525137206285904495724431359736482039427078500331182688489691809659990151307452711837577111069505030265644135130896361729773624180941608737204734023675450844178794849884628413031283885418434154777894580750812922604050037043577349017141818074762063530474264252833904011070561987687562630483240251414692482787246978362861687284510188258297869505207810206180078090075160487025487284360792638195096640919237701815943770980407321055216229058645777277410871954287276845929196898970173749815631500159185493928628415148860431223996630589771435713475203050544442868373215685046366660101201853929169486398621127970382868754473473584017302488799940108751068132798658539114042698437700824053610443784630027128638112748629994185740829921832656856249189966944880396847084454955450945639430118219067277437527466865164288731238332963898376418968247247093169374303639462682515370430993366454128699088063843961543068682280200904951021065383234560252384969405180061977598438228448307817716084428082772994584431553041889434504699198784216236830065494853332149687557262022046368436864170707117940205430789373045434223428250237178044741565987263704109569895188369240558774277455524758438105701357086651029818104502872714096724013913126573652877106756548261494965899375636514465724410972555047063523776674194014532797605558803427522292259107770114123302979171735204744796833834139855154078432792417476414569246677161899327541599200326720113017489950177891684351896024403154635034787820500035125853368148627747624663641410117727409284768705735855264812259460466821585479576328413495904119025815910674440325459610709876394231947325145014527384874416832157433368258001566633777836982269827665432766353109940345227643450752727591020739523440772034369443357199764766834638502662546032113939502893102913222707533864522577850795524457981646079715448374937645367589118403243823646913126092203589828222588894856984867371899785388051909684853465608739449690135580890783741947013561000181358346380946358670559985255466471186196424936525283270269368226700795293671669652310846484923989095996495499670810186520959022947503892755833928431031662821691505588523745196642936932603917686240965646461857553432995716244738468767772480330088639394031683142057366200478021196920323096666729073228256746817920216498348091650045545600075495878152424091841705571939510881013180967397865371228399841523673225793036166410119085497708276759035766680953793817287023226948979627024260905181783482272971539084806313542892885441544671245290810708430558373283680001997864421208833576890973046013014311577635448759014142911166387694914729416427743532810762568512215911061535677325696294893553734046751597197334474338325773364127135763442665082223947638924380749047927461113484158802637776892254756301596491575584140746661595425031977719535106489560096478422783721526517324657756681099485134257181440716400815135252726816345649911283361587354120646347832791710778339705326815930101755619704585230080062552317038644046109538482250128907818946294836657537741292164172677377430116261619618642259759081047108482078940052638808212190228910210472481709344878911616644604705460183483362030616165865350873037471105295065867606511914767360597808427041646009350647859185234769621656778667159670037514901135803096224398109841232563123626561745284519259386706651010094748974540917739596615284454763294741280409029487362402399335338254106885548955984994248574012133752142289513822491146800348816822180830874235237007627573102152915941880928335063459832622551513376015278050980497140790615552578336077655901294575790327949514940634591457293209426501730840318400033285922370988363914888764584061897896226997511006768733785042041760877810649299464187662296887389221300762443371770245609998465142817241959474591731413747895544256256870033822813897136301764030509931081578816434191989369457584531665574887329967240006332442714696813060234890916633052372796011134539248810771187748717311849541943108621021882487819166718642565698718755828407000764612750399178396082190841675723507422683266955143250261317114723057830895078008925931120053923566777700452738380912485261025878028933664993778458752588965875466046422934437294242671873832914945754478473486082809284202862163619982533264825537084566788235999284685284674517601688644514648655303466763104210382497410049730284464119053778889772366566146940349539049325158181442387953480503538477066755855088227114405333073670511570064056380979822425391719118902163175154394358445359122441908576586634641905016849498244587624311824432117932445740735923446455262388881364969623599763898947892166219569782905705888797266035555389387437284860325838136914742116001616588356225493469595014190355136869974191368769551572902784425713053068626086076107004849264230414190359411013692078713784349506796291766904959502707661165329538314423304981149580421560485934599638381636732087979400710414448428525298472395946353769202684061831518321335425418383385336870001198230422325191177557788331936258351699663988088917751439232773308715112596151901548290317269790272806401557879404343790113300579963437180134396534987655617583798076239279271445699398702648809791902567199911071571924389110894841141322080032067400144732509682945282513097760333104519247126280471563507476329667153326651948473154916104644312340239404067927521232344869031314021027976779572562588704514118273868695115138540345963011069719674706898345782266943399252546313899850990037549126639407057207342558491588789377846423628668657083907173287410215761085973993722247433495462792884673368234134526920746469998782685572004934869214962849658714189957412656136990411183664682497995008465538028162522770218302662664714497574938972955919762773791836559032186787028949419379402467380964183014535901780664109727660629337618161303059044357865246467026626217198504544558809599224757354635729113705854584038585978540836532776528204002029414449647428182108002472581612933672249750912554901897726695367370850950293266775422236479963044809704230559379418841667537026418279245850358613970607705858973659208629177058566115942167657880899123036521083463111606751435788034803485749991415555128599585659983402159788506632484961845456320949984356988005088510809959076704196673177315109177466322169022457588727256816844107556120596790065542430704649974736185596308109750125372116246171449677703869017566004607596343111385371673091473148875309692697231058172013103914656108623205046347072890584522725616616579589502571303850752014493815963797368021251247003454825635061523487417308969948567863545504995187273579624822966482520418306015760501243998429631012580558139721097847874954982258638258879815152718916799400957880377908249119937355125689147495593716083042996033493900613497953499814659244905364938528721607286425878566458679395541357773963055119165933836012193044997239262905393059605098557243924846755562136219234342984161545525595748160140911008030387170992056253977285880278057333533441819859696124495289005286791882702167792061657004292185432439918353148867328979240934020334924614475156090653206536418017160719266278086370479417846866834577928478703339936389175019732565182913506367292418282614518181206354970273194318672802192503018189550232685877449368185702206778771288823086521703230758867686214957730922634950411729472873917793756878864794956730854906322509450866711096360944649857080905354830607418479567456693882352848187387021025137631995779420943961172970611607712372335031852836820262534588747715733284449310894716576481931434059029301247238848162477830500545753125758441550677346020117914495455662464657806915570845181543809623898988902933540034171255941080654551766839255846127944126797405815234029203545891229746761804627062173972461672203221177262277181624802740502775400175155779210045580015604048664814429329121488276522220408406153557313444849538435683510758532368113882936954104156190322794493225831352015205849753332024261349115778770282717839969955315896107671958228616872240026006631969909994111615859371757433932548880627380850888849994247824842167858214128373604358387299969474612556479277202716578215065338669960520225093228768651577764981696283173661031481147893976983418823422701077903811304669539076404888526171859865471612222264534069719174380412052665884345190088908964915277295146575219540953882523031252514639500051126092991459059250116775700018485760212656021665891966757141865151500849276451901008961274187089035078932396381407629089108323141977419128940564261502967943209235021288761123958367786052433987942877316909207897284222654337980306046736596591987775249878198964619062054360812661768444532997949832719364263274519976868159645253210858969732885332159980391565674149602989673317840804762775668764936228745621442649998589841629479149817463798378182322790222843873273762863100891601613207793598390005840315270386955692153976434158203599397502240347852558175484074230001871248605239444064136636573883772928059204587726230733948396127496070094226452852536904418752198933019041609818884198138523683725776043155673132426811927275438777061762059045604318540066306232895687311571180635523201946466981473704211073582380834525356553705741425351111274990824035015614743334398820633382661289888760961006822810853302044769552861363102221007014698379966398724737377492153122349377884584715019547560853371898518271240981735861586626993879704826377830180802570806289752399518280936619337815772648397014277460682119639225897601299395108507027648135878504962305061878591361433197979124222663279494589659140681014834391550789729327588432489262772204964834852506036453087535857742953060474387604406611189114850261994073819298428359886514411517947877783962201255691611855014075529556731602902100097670100249735492410571085192078700091563673177037568858174046379949856326943664733509464634603893727341002380679718525839759796558557393231376765401637476045076821939519168210166891693866700607739223980648849902079429497129136019842285154482980825127783029816536187834877427505892134188585955010576708517001618323041496553663817770836030270600134680675803011388931333297044695542009946735979905656478371291511125931777843592143912176191383106418861929452244380799181473947678914515380520741435634275756921368053735408044107025633767642131537399738804372018367020769981977478536643174033288101898928174973174543825317259057343181777942064051367709932014729912399674535257882229564719991433918341117566096092305808382233754128855072523477868460419878229686336492264754796296901982866900442227934925716794588811561751238608164870926666706412562540764012834736860684614312600429704023383338187408783056885812135415874302548248719912211315789962831316551788891938546007587388758776085836324193985407288038546370905632156312942415121749638603155375620655756310620748211046631892196401771735563835449526124680961021445268544667756303392361485539869344221689319907678618748707779925134598398086035719082020896523131982827739315514310665083751316620662719395879510935199290708740193901331532433518126470213534640037902697770225103783566521875855221495751346816898058898118053905956763337624480363232331856013867395621262408443155613456685557740461876208742978193404088689450077395976464707993614499827176235037010413557966426820705664943652953282614966024003128533173446739467629396124776886312064190664125340485828660686207906403696867738896322197767582574825938014152112329013757130334790955596133476614290592309253472943470071519380009593072861681143399470559605863519903878095047775399334422258243159900593416531434926726787554103920973573463455017904635686632975308792658237954709374952537133143566828071594375562303299145672710508158387778924364733754828935451822376692715800680021295310219343288077535277669957797600264949750496228936637588587748121069753149781079959709748216328988778235804736911459998558421375503808712649239096226196449161250579391686798785277001618007834018074016204401646921929203444044521781093864669800885831319172120460944570232510837834950219407043659614706455572914947396671103368720253656464776073243974369475517571670451374974037110732130825168084115649683712573000994929835197133697929447043220966302413872240544698082603435047557559439278990620119981372389906643564805574185938896065664806177778968547206767957954394026535295885364407954141089945524680395634655030190431087992650480569423274882769797311399185798423293386061682781993804588575103651297775044572647759175952477798008176161772927474368304656553978219542726502881668548336396418349746370558233767960503591308639555467822505373549813668081481388628815069437748996061030691029808939078212350081213174506642269802399157525871178374990038364779731509249818205025972736940871163101508813889095651861389595735671996726365373330487820904489411650156518308188880557222820299738902917580178675858046697076252434396820913906550452263958397107650445699231428828919054706952549596572963050377043879758730529017746380523078751166084221894647853328432569011965134252133016053267837933863681992411695209330365410713788915257941262024289324460526326084030242794838715353179764091687862066421332548845385691551731969739029289357565946043246902761928324354900245879852655565776266624154524851279219853322263317126108654446420166558474530793050865128972399152926216566074032460382812623784598067570236976114797402768145056153763562899304598788414289809173435256960234559930064679511437689246226404811607608292082455685627137209826974135078998418790940359420964647126397309531844923743706960989935912529507864211437005823324694471398289635867229918952476941439952079245650759362792676112237771098508137696398161289397181861979386885514449860796164138982796055622375599749869033431266083704439164044066996403051352382333041323956487906332447737732808295892532694004737657098336577654328685141162600853228442686612069034802813357081046783893031139293094509604868203178741060946347849810770643255499507855313929109369809469977245256612135579033966966004560982927425680747131913097218902754832317607308479268303142955376925376338607619812920253367976937284953493040489040402926643658552549369904556463009595432989537291882161352662474280468315363993699108441782852067724406214857792093787900485074617496577413641035221135361972190229664791330772493362310991532854974374426361857510158473827584394326568896618264324591374648737055840957428727184452274305448719599740086170428976749658645836844352734653677514622083146856628011839719978494740002551938847742554014010153087652954827607120212164102431920933794031846805603108201123180694528762569083559333268359036813281784363754442836722780694849649994131080614835577271709141569948273795753241416320608036485183793666006688194195750451029085725728578786550045792174096464738766875244398548863043604297678775289507715259478296366354835634034881619414239008447732803951331531070347891685059230436399127409749784145235464987373215614484449842398536862232112847963647292152718298433091344941507322047595225681468475619691686875730316144383105792880092039495846359718203886519710807403123731986109072781538589565722566420103008750038982884935757750708754407703629751017080546660495185750355523314703058663333654535879857833920811810950658479897799687101031025420967312452216329295132650223413728915234538744459488625282989811639808233953992510649860716819505998221881705745794362921227960915180592974990646592351577447538749784446743455103821693296611793550715434845815516948353520471909298690571575817667175179640832329518350455337695557696346458318739864667953844763626595924477327094034818653901726177182515458658160449946892905607398475169090563650432830081412916181610227683378442155984287316515662320662385434201340457541546795119783623931236137319163619815602112906384216493847655742101586451783325589973774404566000198758104921167806968362067680322568429082542927422079250035190471244790056144303514914520430789554311755462929965726468258631828625519035554348301048363716222458405950823411879116411475791803320446894803320374865179284814222102341017333225139458335843873268579508744600739666519972086661419009544345001325806759701403667241405821268379785911363279440708931029061678380773498966048484001543080969447820594387748890366876390760050767697139198699758567845709775370017336329412585728007945029187787365016345349227003243804963886764521407076354820759891493978330365665014781158434952432218775251800304182948124057075025321660801618087662969819417435493243323761931651042743715022894587593990797797726865173422222709759339010524156656333155936969078390135508110398457580901295416765225872402728618840043126050920603650482152915586894073373121630585771469508187650348533257714182315218917131666757694532625474971111650516642383636162679018714895426219459879254242735094404226867695670447638018055016695699797963891009622672358688873867278199925242258959088168537032880654877124285270365217500062145425529345508676077116322492335597792580329537704439396389929134346112479205056344455036302428981267511609426395263181549973844029694807237844742049789281808827739195942557064004317207250268098241552978171633406129279427568662320670046626553750883281575906066473252072363886148614864277145780713666751267233359252873720238962991097334951619969435012087917947924169339790434419400163916773736884892120494011486669000723064500231594236168200719800258801768459726355574899440055822655472875824485524814836907969079689705950519942621621052039356047456295993398584540307851850725103663813045473222215798402627351660485351348054907809820440146921636140642148858286541718285952836537250465542435822363647507584636827865720103407675425048956841917603399954786149520843336449727500583249581585256634642644270459816765811874132280250052339092839321032043270097358718088483945174593647464699865229402152065743241128659442316620289755201248382010748307662030823901214149031818808749466693525840186902393648319399435846297232946068867543705006016296216887147777362924541118772491455647846629674945988532216712171645082785054198076773113601230031998602623233704184109824366635393809080354070989645604796075542287243279840965693592168549183494995638992215885772620247652836216625153065637249514183224499868242593008836451621118642025439556151049407530584412653174489697781646661245436994928415788061688767858225202931300921155812148743175890445942967479057926515511222005524851995171130470071540311537796764083794236226887115885183636111171931015733147288002036295610483712153566733187183586866310806283429746073123308852169400598336385474950968912481899222178630839363686775958423033606873051435588022311994783310878531097492478808699700555586142819072156214683644507000648299709638006983580667912019172150313369630526086655135389461265659470961049218075810521598039397211899745770396168399893794791000263441153578596493056683601621889675111178973321282487454734517068320294816077011448595838561733542192476826274331553868077127800248298481877598865348932895418882950090616241894237153745635215830306872609451817474091273637164530549966861400910667541103589903883535805620996458009200607567130543427726423085737257793051793066233214288970589151301521952326558290834854381219277930285494703571449371533654074729173845504481223222432061871081290159563660163543242343832868552492395597723716544504590670847392200540782378423408516851995893292526523175422342817005746599664637884669991642569620171732449414256931761000259994893263819624907243289802715997587895605782402384259897875131106988904161691419242249915682602082594290436448682183240038770644373351121766162441698025980217043103851508469829582584647743242809334087867940868715800341850667120389769695021248974770394830337629898010071373503628078164407532188185925366566695469627206675570229391472144027681593672056242026374764660909980632128664712099120848022005756824974407767414560922984775990147944036959690266428815145575655292876842011343587805244806305985452897316017470049199916885559642997731588535028207272751424418878094687242116948159400745234764705138958232574747953370192306064308295988070203457007437576089701750296366346082618947981294316533822315638825802432152012698431726032024936295382819090586573696557048004959124844276736022974313126327976728741385949693134582798043069725084121387653904282972418457743654301572375590387176063946921158176994643070551414928884106501989905960921890249586906211329723333535207090760423380648279422834905303107574496681379476923514007085316618165950070900107934844465513321144701637588241394854165751271445428834767051730136558887018898902704399935936851503685671980689038306104581528536774081250690831359412648419331498183110327333231329428937449267150394714217506699944495233261899798290197277248816893918403278815978534214108377016803466846137146952002692671199974826381577955830210799133844977587875921833336003575805166353164858299624042657901831103252369791946011408206081175290887061303433867488275806722752596030530059681612862064548276635472948820480518452311688169789499654467011782115163755628453919145970749504537573224345676139773294545264106462206518597324761541289990865118878644286175792496112506927115759420623010414364248154837830060370723114604062235013656939380305833703995617849027419842257256447986296756098149476612955137150298116122719921793106007517790293990693749967271714492589667213667089177647214084957323655731734930142035558881885664039479746633705464867081761509006859445740469733307284195620947447202656723191070671018513799550544797062262201243705168564434890152757410230464030594003101189491826799604212582009078556527957313911667029351424224065565169411170378020740328711988814539770188887017149570119186117290871590739526106476072949571098493104928265694341435469619992530549625404605578114946686722807495933428551929245433933891418019353938242170473454630272600951935626220069447778902551804841167076738376697447208182082222597450640073708964073142923361552243686558720436538009460760693601536677632361466426341769014998840150017909789693345131326040812893775178746643400255473519310060176261470818775877219561508067424187465133151742140085702292955878603028723684572350123841232858180691327381946719148676394872478026051210952341976715296145381719090922529118859951433219391233754057055660120119628077350227805504478396108057702122558633849130708347104443685757590125797000760945153840622307443228278553139908764367363718007949076862331397019882195401200761964204641748619179850112661528056457202878374542351111206728184916620062863603823127849093873581521920529059828791144978285641331470122428077203839451315423301503067740147329544987503767109366836555311785214623476556312619490402283763064317102505731001218185971622484104662161410925676096269930747486259763522251709827784837882926823170927469554678359509021822941447630455879598343537018310498984893960277283601435255719711980057397929070647626122759255102854133821361029555578575885016753459402827693603691683185989230034845368783809316028560692878242722764933295299699139525550746842661522867057935745141516678277863403650710292175250913978871997654956278759942144895003115524597858115880430654888131959427851585545810643516417646211939292850578968148875899522064059324173491689382152629450415694863611458957443107811127529351308772218242923703883078490194796430955565207339506196347451849742685725094103395296863504074287700463324373262688078945800947003476942682253981885280463036859739459400948697368340488342266157720348417606142673719738571844834928717197700481748254275033936093703071587232393422741809249371142646970544887703603535122193731523237872407171797144857008303829823593255264490920031489638393052595416688923910899138720100503883317261237158494651414612704579844690707318884735465343104519323185174627960241433986246727910765029489361114503107651153440338052164328784042100126911169475994808650693967998816160520848691500661416968391616635202031912360797025605467288689716773440811850119294688324901092355429599241733762457390907089060066444403964110909175268208893369180989983726450459660209713097214778444646319831167800776335679686591689199181580427667030681650437907806024656518944106524144158365038807029735107883973675619652417701731024959939025515456110617678756795817887789733125520912829127487454222290936706984674699329535609503539801616998612043254109442876440107694753104081841290075000097297424681288079006821545548315233180058232666345296740355179218214044406597621965015360513918907074302049558062861950228144419708648292096613024913779794033411340722234194027010146026980022947855329749762691231452740637329613051960923878764016548815518830946872700843578818624658001329163746924868260049192048819533599161782285017965307454861833553810756007382262200674221248433737728519750363914345991641057207271317525491234508651292848944187917883526955881263235992016300569207937901778787360193416091210630299042996182519283226164934682796298426706971534872582776882782486774891962571268627396279650319525379845260751045355264764567379170814540255118821978472044196695904926063954834541880788776774977849003866751765412677098160556827899775461194345320842366751788347394819208665383511701791188639270166793700543322393427736367522971740449747655951357949355026118220772609648515750545209093401062560187308586089818594863955323106244609071631647606808697635747763983576196454450737879131791062398303879167158350909020231686251874524643654082821649343261172711450784285324899695503462492412122235467528454729362395710863053646154869429628541131087573233608576150045071337715758421483543813999969693061910394250066192939449780703656642596399212817375679490296523621521476700652657670731776726229356247234794729376238286878591132618768859712073544198661728516127534265273094190064726495562156342631258954163857364292904159910383661049805501821672272837811338872420200655379649736854969193328403840589944622494338652742299684696031689003605464796022920542912885755363174665480555680620174830310142825729088165372950745636325946166919680435064254228324214455775955291000965516702778949881558683233963608868457598354381316646892778500316083750873963099226360926388383511325841125824287277913448051000218845447761286374339869374680939362075434902542258897287126538301408490871401696815694503262545178577645766193724334327406261816837557843626583689886937607732999975812009551820588879036223556115966949547931767379599645058954329310494891946522183647012126910089139604847521610905866573970918290896626392633764604529548146893731161714271639566025414944905930799553975859613504073698842539369422227770147871268109951598475375287736749228081876637658554503850139383543137256122351503027405284321802224627032580315535738287889618455356994097086963634712504797948799961045281174160728582535182674304151431830719004279176531180032573996235826235469664710953956593955326397321189111145105966539114934905783281179886197712871277537542480577234773770009284744550407934836099560013256330840099224622675074408578712305126923279696600609841871702735979392710531897282380386975092085923229365058901850388522488654174823836657379688164435993233461171887052474804958976995443894935997054567744840144079789684464364936003748567835230450035794131047793611318856641865065084977348602119669010138034583521382981374127562915603444982072513836282308601431309470286370784769427118958690693890204273944367348066315756837277763683270457182587518099493806816663184273288884640847341756342234367657708231282203388619059837562233455919566375756637998511321920702754167961888471646228058849741096835340012884091127182737680591362582132455659562026992321764215511984380801097485922510893242088480110182789648412182621157754998691166278870398709661724906427251895700816470360605872338837497405613451024288248970342984453520355379927569078712114492493373735400393980432257810680677350302440199401452289835885603609674577389135342647047028747839178357768021480947297996037908379534829309855752394859829570730560486530487426180640842809910164059209400799597991745496528956031260531033333761258078259907013955477631841989252905622954932468757765494103955454707210431316848878247900031117320205867242313300437698469791554844810621669357648477995913041290259678049234880396286994809304650503483513214946402046141102533733828400875707183802669895295996639227603329965185955445422347687324847771302633493561589830633658702995315755276025793474421217059998777672074293454831689981545762282025132757616573683651331809891464476887197183613964791300534414944150604762383714097750696136815854984214651200503934013590192240337794172068797263845333895409968571654049517427992463327335704995914420037659341277766021634214999157678940032609951400643644775244052186011362260720519878649361200830097968739227447015197218267327461554081627806189148101284756101233609799475826583164129969139561278076466628987440367211755290274027824801624248232266879440919168756890970657206608765201256941852255053387640860059588414446004032721541595308473721179835196982257482386913426633426268480413657298345185942093708732473141303086791656405887563102513122864854670343324926598913577311694132040604164291002840533057986447534092234482776187630224191753775006636160863709372439878196156448359965005052183945130389397983601838054357871118246733915021941977120893301793405158098999481035042834716607205064942873496766077513606762069443626578126067244460585814901879554956172377277399486101689806421007206821417249189764124125922911662704870187171904841238792247044242826085020720618830202222012264694443544144877557127364050612959654855011903999110687192710119958842671812291481974992813543093867778973807044331185734802365845646751276913203753236183305952296349764043333665837442368016583241707849085858371902494138335367582188860699842051467831000831968372198608560930670941202973193362613228585726627109395398813073156771370475850935093160636793153953901254408453530722664406435748386024004959490077225309295280358069020060762724777989786640404735864959791455357674009013944295231578060694290027394150963522736828151569190625334639936550668240538950886307172849177061122750175763343780117298829160605426545316325436677041570315024356527264405131007099971899054480038303128283068439759636425655720020086435260598215622070299945440845123599916471195532504032452990793614135479983659274792605424188256850219117145687440706223213787009095183441408254931351590023905956822138839158048665916465671570878830163518002245960767813066187282534007216423662878383240815346775628783558267155424222257761446934739612220848921578734745276629651181701213755034018467060423173910730521172818230292398958460429934879785368025615066878215446024260411933417503648469028621082607778674878220488172834361044552578171656777701233628230776465289008202793440449411704646019468143833849087661930376269880587145933303206298820345074754185735431282719227694097107508171952341441968535960593443575020648262261825808391896143995778773383098802104041657933404062472504511521077886816727705910868655364970158112046042030028728814404439261060111013766702645256177649358837805875187479779214706309168782082145463333095393237113261501339190902683128852254605609711379400817417540356982547682399838175726710034814312600568375143175915251377743244001396497861081809096618818018271370206818747738501471553923148770961263206254867170484723182725900524879760673260156092659389031106166935988493426179984575559015012941809191123000377071032329670386010909901436714442261054234960217869994569234243581902508819238394243133515936805959338125197057100791936910683261485375427875137201109772807695694814923716227961531493839093799254878253551789051208668984980762311544331124150622971125051585792171380725648072510430866291774475161137055661654740496056851733419226061306897472789085698054675535757444987222226370154683527965094810999936266458360465052364938962433708891398855194398318880009477485575346243560925345603167282387778459390792377398152458134507614234994192725476646269948937188166017713207228881013604116714937244949829801037415301902134982009537090094266261158361703231751479855089574817383304030309339890938068448788144668531200295111313478840209357207964501759623602437795478399401527768671394030959169049308714483878042468269073791049947619213826095015382514750840190947826452872696442347061653400815386712246629364835683514469319827603663101089198559803669960340628301496700098884399942323862357014958375219177174153416681103619360526283989657035696437908928303194356970330639823897523333195636996963674718517164554814788234911041747323768031250230912999757919092082588536594260801768061117598922944935464927988432816270286444467466775867914067535015973053683553547350067405142489537219201869858151946613180503118833057219845588594457710062531718727145890141647154008175846114214565053264589529467333536252928364430853407667638188373610686550787575484358996944822670580891990469768382864341920788268558537291618184266378667544270410461393441977137919467033082188128590632513201419254831377625700919969906566649649942868932312958224219970750566267046001828740713414449751230185706600723028052511181968865523548163129270940072303114306501668436774706092439676811390999714493571825646620507597778170068986488350015706750819213146351928235804217751952017625042583268889251528583503273705469807214144029680468659203864617645054691799254551706413253697752546127197311602486654955526709999582884615575402535322964772923057408108973598751485363039474600701412132150226054044931623485733711417759574753686388428528594039141228885910312754403067155349887542963824274113836892021214023183417083524591703007263467271314863592088591142083942881428137827695315992376992426241283959025892762318307546342101017896357566097548629994376419549841063192358490745855786139654227204848516007096048890855936062940856371328754858650691536400993695885821728937212121950718855269331629478013601804198201758080515328180561917865018616085109506931369566019067275768051813472876312297020940936135814522358162236443757845408630625214242789170377461815043397309814912704301153299449154667818440171271963433298517416782192483269071061688727515818632415497438221074592145736019500151586656526915544463159720590680340771594262575667125421810512459057756827756090904693178349654388965375968115980247264896144398386881646988660936419733481584043742800071587286033519869362748258408324911852596732009844127701198366212556848291999550328071393431114834328308894889463774551664551507376079334285394863965551655952943539043830993332864715406386135673129431152898795589751126783435849971359963365699891242475668297710207712499892718455999091186017273581322362571139599339941391849203043013012732265592089620562575028441668764671079593191223055395808274675747242346649276171830219040902767485934735127258291174614669434505662312524665690241051325830161525634664784093144310165782404422285211623979039464341309175298639142845520316774796819680708142089287592172095833882240320271918828884049940083099180416797167917101558801284553975146376896614138419990871199237858831863239511428509593756073193523316334840680628835109239026172723965972339533605748067525777222878836290577818057607978019750781285622823398521721463965300210398539328760316749329696870602735153560058980533307699271170622666128027914196897012287464387298751011521168253294803608125361924003971876197024398040867731146925085784631272059128255683049878840849144328288417019167668574482037801402934228006056164454364632866192414684590807715730478895565176211955855194274271082206193313115973250389325175714961481229919520275273993846218361618674346375329477456162014194995004002601734441367557574627088964923155333614381561554901621212982487201589893153401398075958904364735712070355314239010756901918256507695044264771008997837020483829839726509179765516593542487622487008665112521107432852676568479069286592732160336632209928729393349165004365786736998227423714425180207772732405834897896335210020513187477897681569781376109294680079410577630644148477867120043786922845267671262576462014823592509983883218405702030911136346962235667329532605134749831672125948736463612960090993004945189727983046526832000807335027275709159369876789581130646217249546277743919599461078371873027935330241233043988877108427033948980871094286851097812004262701164451030663875283275369802942940028058418426381606373920080239263839274868777406255494530695940205329169761488418009151736661425290122550434140794093081393343424737837690232753298093552835945030693600872937503010436076467394998971962005600557675983077364330389683945901057610764870198200379876749862193640918604959270145082630477372378218822076869491125446879248997604267275060093274368995872321599722064327063256617916431483696944192185661167144983834593464528346603592373814326804610705539899341176095714886435140037614370316064632650182236043294064421844500667582997067764961564935857072448238068269936897224843687276602534501689765321872051870713366931216968515359660676008590574495903147642705274031079314284437576721580113414504495506962862383176918874277586136573995045153611724187084504591438520539690324621276520972265088507575114154102938696492831174575619319194143959002942216298756273515862991144202067041837882020594003678523942907442250143144804364000094156509774726280152033129458430700773684619874176768777286632685256739847388681661115560698065087467513293356638550797948071137436517252622301874999755225814148779813033286087581104749528210500180316159198562753162896681725131631310424230419135688507980251597916916452235118569235268370160047972757854788313012979640831272138484473743251294860718530262433784616831124939315807062065251652267913075704224797791483456191128570540623956496646747588245362916832008341339853887659877389958680020481296781987397541394638875277001690357653713748630243940024934250888977014002442960956375734678406576226119975784252915834981032004230304417170871271648451085978494435446856147961945491227821004961476744007138945538477935367126602091962127834992255538132324927265169683568617085389631126858051107011455064036145868273621079452659667865315082757919648431989522305863827183165162548464690398588909725586698603111408014017360525144853457115356852922018440574136076636134047896973164619670159629228904222542133135297543828542034430883503193912719182408495445280580200593924746181845562930138847770045936205013955838983576261790360035926484743664351312032772212985267920812334665554822787447991284048861353621206332265219685130669010371931237592746802370172544016722921910928756695950199359861489246394424849964659611321305345132212755391731956858972907315835510451519114294426243303782266040436039662049079996694499100019550389049498921501357964288768397933591210870612950519500019827808594409644614980170544712310052248450847684344412399939401666967125816626933494778697937823964358477404311698824319158515664497442742346156980628861962276161521291298369003949538442128733776305845069365718711979064141786732129012061632231165962327922785806832463994910900654337421098519184345710346055711006042123253355888309440194602988624155271010710895683028361187190111791146113614611619910155566949616691401217662104254171376383629726017149801377256884100951854402032887614653361373210015079013288438741980027152395017536652670719968638206961080304656620850280473318150321857306771009097023479215898862146148358325873340867558454835248683139789197395254061965931973479320150305715360982067840053373180941364166367620683044893095415317262409616029941503289372752334994397383456198873129490193528016143183748308995090014999404530506065866006568898817156457112950161452455153201116922693773042190579084162850557147954169819128587530579199090436912577039501000352840304896416069281203688178147975211208515201212639874366418437402497380112265056166619326728322354402381023931078732661380209402391333244970883163622235047436364829760307285555035801057070384869105502328449027118373546111089838097772044577826769587294008785474441370145172803191834530385164303176634176590896008658205138199128747652808839318540921350803944435370308959761115760684317903407350370765112076943760943812157107042372541555848069021709895835383533408299366505843327142147126159713741451971392325921426924957992574795817566287516642747951921799992712389358104194496813636631749501999534111604318373909966998154262232037569844596365651230452314416023901155737260122718013826329849986772628556301729024676103061456738607948541121602960202827530990324437718556131275677963235354104421351779191836653505935526422145001072403679656378893979461349412346590228782660401425650597186805207259422688972986390019938315631272066198005135620521103035054022138824894469478758456832338839023339616531064330772560035861943719433004071941767147744494381263005837043443133836254274802959588260781067782682598480360947131543659954213431031555308455712057389540992631571570352596844567866161598576101583243374647114916676471244104507476811983259178037289306520218886334215619139962999066075681709175722699445920927836903466289312976662666483006022860373963485183416767221520271377951335665545489453088844703666956264063258653173847098969423953462596377088045001955963865795238038771235079823003049432269049308286837135770495412984038297480706496631606361266708933070176519534530484440158326397712727842321351920817704822397510223636337820443716207292513340305808073022668016063766770299605862827026721254732844083391182811118279894897346921806807458848810569022774843542334320822068588763801974117890518174604848112080636915077827599269815633669670372105654478581969647817371825526674845066421811349181614743274502443754095985815520287295243872026544250377170096691412096815500573717036343245482192641786645228936554106653622377748195823698887748636633389484012538424749258679509446406520986202788156972340908583307494957473561564807190366026287060642706034551833065821049107515740142424712299064855052415810546008141219002803800171948255806083592670473217955696951680250173733948978529817491748884776966523867264472664887112450602011416101757173696714557075941503064642302137275003832050886125696557465186063237590292564182518649020963754919470444946139842744819147369355411355653637898281682187373626726339907849060559560159766950844928367154483649921790407633903279936384835878197633571837991534528834000025297371549377925522815698580649156921467468901779790722650629833696241064633420630525156240344875935806966873313386794787748832279091762558359036090236918571642120218389840459030741792497546368324112293587263141549371470796087348662644134441988671807724807509833838946916238623133298448712914487367579142999431850304538561080691798285077537674715971305657218984389050385217999425993225000501258776624506846969581759845706038460632182459534386663386292672867722017975360602773910224490042826923635349228639562266009308843356284651109655365959236327747632251781849378002630538500939940124557690586013749716010588139093096084223045068764789586782241702042483545133436581306451253435686683301650856417580701747236511722549810238266338765720837877353297966160044879944604333861061423429222599466890103505940897964392291245245727209847385339534096473523027957049452046375983667009837211235483032437058550662929519428139425687582558482062092849274908607982479326363495982265600406293234408905370825025255359162037597309051110685908163137307960425762874881131167920138383360102324201915904168614763692438172514106761110561086153603451776738197562711894274840123861248764310534870751057019102315885022688137305611412767369756183217006216607370140398937710606341329656345031852684476604055950900177148007699063520174121996062565728534164957768926692839641259608675449405269430780701862891496972217634624043160688081644184136228671239700215065886848330074434424081606341873141592481867247223651839516975052179437306776190240248682654026847743599951118086547869524323732424296477660877641884854461791430273539479823398344484727417979606115306279546894310901752892295264532660357403396069975843592274926318821701594807405564983191406571751050520394230673622394751534635279602840526334920259463024094017270248714990331574837815850556879648871675320231271313914715256084430650831501167312660009517540689080840768661710337141816712430917908238432461728097681464152500466109086725006831079394714666776675012318781065368732140406275444999557588999127922430963885468759965550189174600736294691922201790810897388983428613176861014076747027284614005525572139353582090253907481908442521168174773400634214777456247512358946293457500371984523099545467539307034516345416040312910281572593054140707544823304565476512756767540257817023164162799328856650124693304974302656792146085535264927756486958883254633878570886318434372336680223984131668682908771780267471645613441066526960735224928683967259631187072740152721742326850249001417630359776950607983194424999927308828539140959142537051463638179704466173093684116569522797461723833029910487043961238221956109445936880350778193117963867495222352079416206497646494417309386860546394495097315007080672371602360953617182498756951981650168194087737594864683273687719991968450233826245099072212650610249657521752877978940339521877715302818326735834556719374095306274379253501185257976611780713525487496696683221643939523651525751320185531865863790226523698304326113038793468406674219868985498569044066976810062991035353510112143396795936263191119956601807381840547833041334755256632824307174304056366395697221919067809697938256579239709311656376298723824221537043081683412351443338673205848442300660448254919620035399194658600806764737532152421911808662714742560138911426894158720895494379600900275757654787694825372040338694733398315101116258530091224582015492017772472747398146492497067283635948803874230129170152850069884943170797767702269481047197531643738083738951889842912487279137644497745486345895955483834448036007799548564931106705522548313784663464401562749079748592538455986892571987564882476112516523654543889980842500094433910343013686464542555367381087611345422896082240024430423488347009121340836929532282299115113690281097212020670713376225164415127576430348799976911493801133223904967131316672472393662677605101923482962670099407503341712121486408114887195122037298608998857454349897428641403846202347893834767794396001762924455866845343164882534542967844355833522359380443041399111301046268574475596339832764209900153219896114976657618569799387866702833492344988264404240051152204795479035421411256254724632106453583302357206802403597071425412158898507627380714476905099749900301625775951636457286407079799918155040853939777836931895069179806858291322182790386372885544285896820371773909013490370901475080416840316206287750111742357226595603961016050831390961433313448319501698355528798916067014541313066255677173378262017802127725002718560639358946606547032708997834742613927867447243037134392869013819347492987614770990214789530624141637169273084241860992049938820082875279989580495479118130933865886959117581939849365196470440307770089968095108351293084504502683086120303277224501320475401785164176630738872586664157911891407385316118213404382723995017253681793701447446849062841536246852864709149876550581499913030513376386708127499940634261178731235819049157634155960811101930769051682792795864519885645258622165958329334759893154730597328729934534790729130721770244611895341310786337400750593713528919186101408302229418812916327739630418789954826220598936171423513983119458423531650539293943993331231614550774315634311958495972359576927357875776050783959445674058039603888941118758798785128952605141490987161382994990759257821363498943631379241580310255954466604151521429287719226498293959817338290021093291208200194506519097959193477052653134882417151695211627329393733661567279700746200511523680184671824438565514016063055879582145543169250525876824592499714962086512029630941071064192146458755095429842071608500287927969390711549272977040715685385888708880590136309672741576730818422882916952042623002605692507855700519067694306246148003115729768453158955856071049097697427908043844523061691812042710413879965376623455533426027650467670077613215039678192459378099467011042012612473669163988912715206697824985584787902940478795820976754482212379231284371720290371793171577181098387521066696283818796685400550005297805606605782352842935805207522031251182636623399124512445112221196918685463922818720945384351922120787987094203913987013836094885913645632689252884697789608460197715531616912524812934672201447872437299715549086609725626129198225649083316191559133891182048434744312657084915273772315313540822860380884808910431419451907547487914485471556381096476757925584248477360014726025503474603502013738401832181449284607891129308246239555993299687387623733522731735170515142838598470035176809579577145180302449466683612724809966422745535677292048161577765801427235039338559405964145299771135939990345238976485870533357445456434253779942114518325967542398067589829136998857212933601152092734615502521423906815199046460151799955545526172961529791046814700490032996717863723738352831640448202970058811821729790954719340407405177369424659609819211386659398074746971340966733055894454232057622766844626927366827087136825065358890906350160472848772404077635783655256548775481631085320401181339752662291023346245654903946422099022377380718134519171270449294257098307378018204410167683777047677081717249590568342473188000534280832937098388951253254497535658220775680555054794843170682673251820789812666472142967066888634686299564375963484433825983181436805803888071801424482263883578637295232420943978894190175863712687885395977986288104901201664926347611125121318533500227509519676533436669030235292331701648998098779781734237318869378083659614266446657280723824279853590054835784044125309923898493968565963305445173044889506836751128730291613950834007132955044665980680482886112826792025972253746601962628951027902865377602372405653953975858844893662226332032851575876184049528793397276333231319273447082395938049097724082104300804155412060339775238430737065924519784464857654509708962872242827512790541608683056570681587303664145759017816887752870396686770885612244360577278109446762650053647346920092910201716966300181732698470936832767634781240957219892469690774945036387943097553161415184850306657089598773166134598688352610601755089058474517960043057334860282238141726045928642552727560747410904288739219046453551334573073611657756790614586499104484462129510150272998123378858861880307777526192560190623904213971389094207684897965711106021502949570269971649866945630215358720487621830470385894404207141291407833881340672027793387750042128955172044407799497394204762628239153401843551191225598619171706537563389808588350582105423240090095259267752993022072328576531972491747920826620188212778403745816282423089927309933888155764112915058518216555850275466639291826376028371578802556795688116423328100787543606383587096150102006461538728016457243469294229475420244885928790502204024224069402375885518328841205231636723030554767333762400538548320096756023068048268619925478792418404730820054458666692229390241197428210959741122531932157039142984582796526814209323420612196608577399972604211631763657326006993821568135166459362423139092829381407346850185165606200757627175480205996286250491613723523841468749355078338958498973657621273903594005270155807585304212529780078158887306386509454404222266951114627236611003349087923068032508695196711928483331586162656681523931266674015751378099678568754350776531561762885476199704191502112999170061784410923591943226843224146913387800847835000613267069242297206079529555404241189885143035586761238757862022286118815002645714790334653582724048515262978678751761071156131231156992200435051113509028296904308663559960996565676009708693242047496073815640663545713384722049917930876431844119617394089169577857121611327789149173207946767786566986620298676844747518733649022703249794575947032812180058964740926274051020157037085295164941060645579612015036073166562923072885556829122566522180624569845858560795434195959160962750787283569456211614876254907143780640998343285652031905487973748335497915714226932746531514307979110949443354906032231254253721673886101063774890205350978946322399347637142234109015951552102937592677051082218605518409811041109678642129401747664565996029763103574128378182908657921966800975698630909765176202428739642325001583544621869967114215117403392508253977011961522234555572617602048234078183154173447503190344293846517245872033966381572023207157440331437219613708035839523187310453309751319498408412246766198248681823838375426495808435051918463526473609404800565000619892556343552309085411089502366950186381576873966524941816981663524875716584778049662487712623154762400687621297008094618045247449414417916803077752078611500059584972507921452206507772189393354931353496432391150002989729994848733739092582823165598947627033590589830846112832401271204072784204016877192243864142653518940585464134211933679942914428725812314468699622231447669488666491553037596619165496020437928264652168799476608231768947109132489559318049534435216584259997781924480159469839706336092471741344813901957999973256444338456733263832796374517020220460095167228168628616363522390588094697036652267590019374947820900977569349952967125735580259487263398977544406893103134494910071226206903608916330036097944968134097503717681320703681754674376563447781493976667764640604053544260452658703075859735231438652275721788539413239950014473572983783862959941825585082459371645731275761369493769763538440602702382405013916152995171333004342661650543641291737385921042970858777576374310300423685188199240208569356683638605497864538466004005630324498892788792642347204617243312023448051450479385757214092949115494273735373635972972332713093950995601592365544487178046321154912029146472955588170899657195765561983598241298307163932229961661851629731452036706537883720549748694722219427847593305893164655416811315215922981125891896749354128654731563391514146882343174077671436487101110976022287196029635513526204978409814115809163431540096769463065629218870936496691285064743561077437034436399285943093554961330088138080629271712974152850996961493522855291478187523707326616225088405909352516412038665703930728276476590142811118777268788429395701599260473009012314274620136405726614111808455765871668481041419725705508133560819808246866501186306260312280875169842125743598262620224826818836914948981448899855314566815941667948426815897528127041334262988003945398716773046288189562098731272132012508994934994118268429462900982823432784790951024457337561560076175110689708416787983622500401791513047739305904277412005776755160150692822917069131287999149780066443731816972424978086216218539453705849510471014186380985004317265282229021229013547208539857723452895203499614702955548749537564395288277776560576476651740581623829833673818264064115165583312911287585467479332510789933804878294110172628259414253031483738866452124250370501255935383609153179198611738835394344079510019924602121390708484454966443089138807226369162466726579397698183269228306614731454757831553766179588296384256341591606661051716430237974123230845508064957106508208222984104828459072588399159538892546994138932372280194519735916165099354429031877713751839778127239060997464598708634681759669568277722430187741933149822895892366690058274781246881603333359360505242186425977074186872341882660762352121912630212908573281854051863300782546158023748755040681653797661219815213969501244494833198897117936388681289132878780957065354573810764075573467518111665345755848209216986452690676186510015763754944019699427886173851767748352870345432398933001490280718623292516965140588395834179278736895219894706707906268758898494400047191103697781848220086337448201389692121634917670093289801104671120323380702661921601881043859973835146352948134485086602664990402706232874104546190834969072224371214287925229814439815379091481140282047278005234975754404833150279483120441382129420848278789189791403330084160393306148143287967714833467256398174725357133184292658481157086440349241224607152841415507252050429697194815048639981330525319667337349721838147232256783099901977058805165451551570906629644439217431083165033237753816528770381347372318884683982538247539804203095087498820070119499430765298607622557968668443487616134036482176526132250426696149372265847955530167868718499194261115940297356900429465774012092978450691606708910026702567838647630074077555104530567935341983183062058937481394448422360549841174978019454578681466268111791087450252374022961625312884022421002424233021876335211374523998275120695239557766833930517719971493066969668660537277621181299350390546119469240867745272749736739579790017953773181186448832752632227886416044779652312159618269868025480562457425965298763927422426451997158145218860408867318168588422635281735675351766902377819037922093745078125669301358172568890662548326647448129517612346120001874262060658916948481736977924428703681537734786701015116167721824450649150411518235516339558168429617887423702627934020445344247517151449258825584828925253264521283760474877565315608969158944105659648754287937065869452374165552342973281644894748856828756964810800354058275979134479080478731312222875114656884200419023716121898279469094579354857808218274637624685147403911126723317169687094235493784228800603587132490518800760724243299116798867863416801258275536542272259975459861080195657244455026512156204370266053011869722390086082883661242431984809405276433693450561375037165737704268294910068729352871179956962984209418503661913431978981954103708985807566765479699714395796592726641130439034188618875757206513154646886817146805003698629165324343936481900130431172820360455912982491959584722326551623861328697051372931213210788000304369147520608276010939081898656446624674380961968135936721927007095914984698147720071355016171394444931596845209904970180547154089413949464390119279267103564855114049445016133454816110116134692827519762897025350973020042016112346957845696491310094150006142911207768967578198071818583357375829521458498494960376613267711554971231632697813163495753887982333620735237117166257364524357119709671200886603342128147267993151761722880120633092555956415419434582748943790541948864626486484172473241239299192843504237592840290895933926170879669692648165581004701044556925962377366931053121089890049476863012541656366133327454679582018475035742675508370027032707261979904201031201880270509335991679650094200361564794819712106843458551276043845946846153793742206717160702299813172570154612549785327220863520798348426251685561169475294585438680358071612013353110788374402214562897386901174323538032261440615106074507435030281556663640012631091130707021580942880437345270812834372619586128164312381106917685176236420431051788385478437050763046582136640957003070236930725568001717051205565283997255965746814786346250518408614178384014859256621392830768074445000100875084032686335461979321776402018132842873524013581654174679138140532600806820121054810136343048658840001607185094284629253760465615138038241062573726704025148440527926574182603473691406714410560798966548373170632081774295909215257335340501863630786307177237180517607394899679796125229320649037380120130748417142986990882821230254986586370416096363408087421584461134551787476287829648847250781517841927609733517162022090744349634470251156706487739244340071441636105298714753397243774041977092136827096234230297031732372309048289188409290892924901910606438661652712447102169122894336085432010428765741830090936034260426354203621137292740006174555955494732538562059096783408803951949513078149829274584479082928386666125299717349099711131962603048483737255113910852065062167471011367261162528205629467181820174182340101067390151352468438586844417359240639858725020464246649015276250546483563923482226532778501990710002054254233450100729959081956171816438821883218316674552206161241682940723256205707848047970543581650893473162975680210950123305354718311611565289088800736878983862826651870623297588720067668018329488689666039573271022317636595296347409330306085237610810910845918258150729519300349267670482122127843294644252525969744713758783911419550554379435931340901029067960434077333195123058336951475005832997981726802189601485253434289350292746227507106235652024683068718730373226291973915499768933414153359196826983699827632145762680328834062526497416723257669945630740385697600134082031206882958251342786551714663259961130902393062209556421614682336779290958481060396508714129345702785457606555485951465303196760534446049875313404705796115920836081554456480376887391408698701836754939704538539762712078490549893929487349444083273353732269892380678706327496213002372062945986796114074773304874555922755114223207476959350731885729013786028960998113564560282486037320425626030140784877171665336012445710972228656669707798199653594441213253135040576836532676649147732099179602586208473059490256893208850257468434814108717765246558487370128942993984850344186519972165613474684775926239021255240096843517488655445797857825024671265209501214561733351761030944115583154587981271295312863482962807792962387022549785471701788886112877743460518375448197793880274053949988875533013636263319328824819115898122627042002728678452892339942278444010251475620651413724759380501460116362591078215938587563081677122656623072420783660566906699770393633814533658942119512885775514713715665695756394411845861538080293731641948144770112752922519776085771996355409421431668763224560349874844414392773815745221715288606304638181500070545843245243140460079317839097925650445930988094423695655769966758199305638657164694555712597213206815901909058067844841030662491871004955572990285792777420033885244527020135292664711652521367079230237344880164423941254892978151863420504333426367864438224170150692929422949501661784578087533504396991836392730717601094649316779008704494985365219506171021717992750361830747911676298441030379843122284250858866910358541247828608602782140478351038039006150334034643060047374909984027135684756732765825710985921858128809267153096201507581333425518951157913147143009211032132156559214042903489596793240635256346421724929928033643094909591308259350801803047434237057255578051819601152271809842223209677237708028876002685488759450413472551610103922239452458466774378250026792174855959689799149996062672235023734824166321580352101768155173762853708749507489801289656048205430472199177330697152955310461780166822672824439553660085568876478243469860016497068934679750102083488345232762307111388080809608048824355550359330551655178200747918495391494482285345648226581875205550846088076408304728419909514246045640221309483345207132607761349883169653739371740577108729849461961975306911401391100831099498272509324062123553118896332006404464481010024786791612487824718314913137122977549256825325241566227501515643179242961512991491311549876451509674202385976988040684666764722499655314119422482332732964639650021605522710528357586553873937046911264884581940598730425383553798128272329388153258572762494765819391275958819241552472488972350216869655969888874725316727735965627427819370998152354972335459822842304184143295599457130405111940604736624289553682198203455375966434277650313112060675966788615645573419920593503392440556997548200316539323806010249975433317215395760541353305732050811278926561254391420710263798656144316801986244728558089669884769970122629724588185450225473101210765880401007584684173145917532031650244193650633628931288625678668850210651535948979054237834451501931854591415659066589098671858331579012378377109974401091085573838983156713460729550206196878878433022139270831683800167011656146748847914652445079919506508184998720601166874189345394438265185580453504178702039792542158952320771389981006595925132301181248387231234387802423045208523618201975443881821227944603029675754946993161129925304927614358560835940842686442628087695177903660430712298021775548408734095512129583265031224169404615235305958230774007379702215430838540970335346190690841240961503572479623467248311280311338049365280873243287577257890188723136793518096001738226086049797031681764951439658422517776797685848012784212513170168421402296347179363951747543613153622527291142333460285026343024285826302130698370946004070258389346531423839663395529177215412835435504669070181938411539906892956853166562509688244912637968329339857047081358435192376222153973872168432391912787473354349688696387323238054396098164417810036816738263709424732629543343043432807698516949805442113711945032856290212474713572126440847625918524973749662137782435541812260630216297145652443426834623777452603448324932345477258428131420725616544098483035923557447282932320819031221906254120487587101675768663879543011225928926381986757318462132932372555054606942741268444854031056007181980796469204007693352130917879233919838816021106971369192994142080081544810641892053420017452604229134860175313429207858770669456843360149459072420547023933552364158245337896365114182003213579717935131643071814832359617316714344864701202619194743687356260965517865232201142351993899990536112172382773279596041011187353026219234814807751027940632712762900170273815946435560663942750006367809829206972518064475178316533705612883453721790216044345349456843478382485215674266710786753238543976430355977380010579180491136820942951380771488230611932855536856248611905249680472804329697499734508285849011776762747936590838017669484520689348919989689325492323661953969250379051794173161069389627923188351610942356960669802742687259696601801391546106259974703132388297968859147107717527641490269760180823120153071106302690183362137696985999983706643509597439349213956457444745896334228931428760642798994817906815337204055789191872977379086937924385616182375149275590429617332775616548465062854674233399891947993636287560808256694521517264039237677175229019175920784803571645369773858172431019167351594744356315678146928753735091647964402138066177009740179046116988162576639896364875753925849049511355217847451486579923854227100457237977637333910530196465014918816686990491987618875616044644711809671798363505232447496152794426674002466786191183445885750830572415821704632396353488505254010462991179759857472474267500554019179230958764300250206897764970062809857129643346242917577229461022567352010821088602312112221038476762140449542264096789751828978309195363975755662912490562762136729097095861747870870944787068117157126946361635337438664790516841279972248060120078438528899703176940282948673844463944562002544107350888876420865128524391581439102225344069685759972734002299072246874236579540026273503628207101458276749491562216279034833890349052948328883957890824353450536111124222055448058406135336647654407900415979785089486620101942891456417032300569548617455017533522025520663164624308346933453434807369693513803764175844568489818246666122295684680604076597370909699855258867535128442787091548287142806172433379097300495951548067231264485508387417669271499073837187637613474701824509367878891699658144793084009229740860898478440357832918975312064776166109655715004370741565651339732983502713938036431710238642619196859566692875987602073753910031229457239241684156988080059872096693337859958385434578143499954215638374486041241268488881386288476531874657952095115277405769176136819369452030720861346130131683166238754427266652501594864912528972568634558976595855339365431980225137232488133855695504385802327050188159972808978262208268427219519867772413681810013138961359413554382601611778176191337163035362403462159251778010033346954577114590370377488741700763640878668268995643800529348395677745277351015283613986343277281191558963098918588562763932775418749624626637439630508841554034963659409150813660561481598155134946555335181381324015820567938068172117568044767565563486530282330168640442537014584672244078529779112528142335895785532595490192916422667368608840921857277053072173775541797895242578035992009747556570191065262457144423561634587647056985007856096117332259541456163535889781938583536664550497766512458058500062346428558191723427174839914048848497419494842489512468533115557891693782574666539111642600548461940369909934877471090960877804272328942724637269627528033373083107500261052426580576088018927658252146120320191131733934865016702126810112761269721640694920549940010273634072949129597242692783944282697222169364557518790361073393114098678835398778105376285481814126739092669484335678471610336237097871050476695683281676398735627762264834203866837972617612216042801097903378734876771210483460680912836829098099366264947435538118440028531904624172416648643204391643742700919170358323255440554738344403681005070431179369779646788543754006386176539124093060173840119063540124334129077888539657254188891122062850306259415296065998764647686593055115553274200998525334436212900199254931127762861700945472019517671259251580650172694092481468949300384126503315892431856986677742428878958968850604648799643319989078672014495531781594037124384815677738709911777808333239260869671339926705991026933748838059609018909297919131712343773649745503224675041740786133321070787625136880799028267763966992226116671891512321244651412053764938677179474202620151258651121357319452529350986251251186869436216777416834282071814254701467888313871723557875250711364994973098099794347039575684335909567827462328792471811592156203025327308203945401672600460819699173551976032362943992638160148394798189958196445320995636205451539683444448591641602666846942371875581379736580270326328260125499292513457209935036244435010614398757024203029955607201959271838027614710799061646778605400507343950876420932388559042694599174951618273671918432813930949663321125262491112056844029481583402876827901625881608670670963487263244776677052679619998612836319691550921734199757552984501871985091099333917673297945326911925082399232082595118416716879312678040810595405132493614676979494483887701572855079598849937703028265355437656617983715450065317317973251619725744830008451703928828712087684170303621773693058095956856812050918851784952146468375014443417746011087732379616577276866696804162589758000889037011652249508110266439525180770163763836656223109132281649809113146904471150437265296403485542268070685077061902751123578361669127415432103456415814236611060420284968630986978605792481503370316246246449557901534178655939952619157768431063499763718114421393691766754002296363785232863543337792426879047130173556991189748570430986513767837250675627589163542530484263991078155528155288484388602578636518345067968740819883532102285433443292417446740285218277793513528864515535190210342243181972528757913743931202289813912997403451216428159790763899981042509570740858351542775759804350041556744858135014849737267017308480574882816997964991449338445237640553177139374451712608023487398479894138083983771443537137000738768412188712016223964377755922948084612628759043460070409912845992696438376810400579965127905798742513984148542386202271415110040083680740585112316946242376339114267260691939298664303374682437267732065930250904106446168743303065048511461204283256128550813737751021552874472966264382821249904560246891063228994900629863614139156792410213323160292778005315603900204708964313004896223536085923683608283470712918100716272426768388036441605803209827446332623844994780180374728505549861568472813627038003196565777410243861802578092440528151031077997133003053523252727682137319304753054911816498354109249277902564300973094819506050075022712022835913138192196949566690749664509807867746524565181046093683942741127151628763080156320480895212622819625416489544872228569758611103982242576755731189761267588466987593019577664676272398063013243964169082301845665532283679618642220495206951914023602427906476537934233256990878182005445753910775462729488851900381687175985035217994966539506510014325518111841750566554930015035243545622418401061513283446599755121635542034419441647562996351238283589422416343556240090463327357151250528745768388646385131029056095712738007215596549516626339440342893469341145508736693133509592547923820727457378139913704817895734996749622286980907035234894478889399648226038122222571070431127499312374071746795804716681306743340015320741262379892314268784308703222981146650497603110847550686193064621395326715464985745651625773791042501322741813988919327120758380076518349923484738950509638092225243261747931479428501226101648793239727660601967001753303280855412220887491478325204827643938333805110261046234545141969101915162718216044160725234033733291835675014338322904482291308545173130624001855080329965162634147500893069861162990779241164182629169946237841925076610547337296472979664793412002112366325076087871370778557261025422513803817550720876570014381420593204675996041784917089251774635298188272927138601936295789455074516520568542002014454678936474538712828612261390360308650443254600072257458100159574798268580023765975677734274882386617781853356502185282942112986873131484094390302641370977603025347255286999202870216095573633947524540301446163706160249011746667328855244269193731550798024529273945649174827917887226597044698716521468826622089818875168086328316870930607891463145307598384990939929972422179671544670076905266133633652547578849818064632152278306269540459344122981238542289551637076825756231450887464470987350705368434741760191237849825574918613922501144173567210801150818287151213098226997330502186183693838498206770020379776406734483832389306027098220493169254880733552904336503144742436244177210244718444699261200693038922786305820381310711050279879488904032336011324579024516320369332079913858994589388983350418377663833226600739146466282203565235180268088242333225000328125197008399565462085290453123059823063469216566728355376775758228287536044532903986110152051419556541997425123547664397144092135516206744833229559696165003603909884433478787683085261311254785135172710266515933752801578700539008618117462657009160361771124403448878866167156654971509902286358744854364597769255299448814004846233761688235615030290054004872830341843311115897003689598762699587837818357202025292044267175221777481375014605262545968602979437736614471356144967165670117799279710758847633228088176487613541011761996515585595498775475417200658497802741297833074002449744947552055228416306074920437014446051079659469438397226813180281044860305526651897160963873527675402673242243466285070143502850083791158704761187519959019074871207143481734329485838514993216401078560045412189486955104421511828594935435153073788368676609898565277268253718895940461417516999564208705505448342165842326438879199302040399827878525743159145026050618431716978467395364106090781039406565137756540752780540091825083596601552388583766774855001456463716968348903475455843297156016854901095318515655017363645581206987031466536091295559712424142429330061765235196460755911523659687454940522903528975162680968691923880093341583594341958992065551282961369303891738008954834487272009008721580830479768903797203817747253787546249308479200608399241652047067944459126607713636774521179984482119994687498871781807791685729437581032390469127613191383954227533321166629774694884704459571339752521562626314412424167217206984660020801745602231833894623441593580405970874634706463358342044662724007885292957381919846244549577146221551732238107116828014893474666100031545544184842959534862219653364366258661873242325889369255787776249930791096445841090871382162053119102351731859610021359861755570308851849993229541465340779651660098702656619852143891743708112419992125143186719123835510139713279971037029550466322044128324089564499410110078529180730764073678202698127947555924761334590856230453421228034194802135406626583248613379201880670270516008969509015295524273983307061386161982525494983773060749244764203084814880031565959533658715547140834373571552171339437157629145960697099104496587621155532086034652291031329569815088996036362352177152391599289611380431612219376253285979671482751714686369051056505081213556864497270074932413826880757060024290507335832147090693395746303194514503534521570631681312925567961184721481831263056096168419758935501564876713442044109524177230018106798764340850729970226376864581486033695024777364688765432439070807233024681638438627574255778184438620642064700305399225338241008466428230098623440859473090056917814956453860811436553225078368260555313555325023245157207979934095280544036305156593766743704756878338265065765175638864490135912628958808373689671200949755874441512278376371174186974255874442215153644198843917227268589575341138703184077387924906148775664759541759532136178379117561598866897158729422983955503892870489125707681946238082180277616279972096394293284003819639494116079350352956240665142640234677013189606755447540563436428949178508760679470274833786196006833393888369119244684925187638910782887000478816321403215027101176643590199022439382304700483148739116240952489517127515941500754245755606877566404038722121131701964765375345862390915172942052336877682551484826212779202833898573218871270157381819412857461795238045670912645022914496227814034912280021227070476277138590821039510421884067822064382650983039824145141081985784526189161702890057895818886428991593066154052366082539445985887144910927814997333701743690612482104565424690000645949059420524001013657272811772702198763777000396309988886072670441751863263396284053066095736586322660811762680723002046311068787293047421634273209231947425525925247080744272610807822461765877605021867812667584644842546951273688711954437688668676138705022037860659743972821192838131836971770000543333642579672936373702346831639344693777987179569991917625751900304137227870099717428468657448513204334368697311268500380936560895949991782200698146629256153381681351782791821113090479744336689909575463567397797870105455898310713267909309029267273556264377893890925021940063115184512287036458164502982637689592398806160943447584055295190881389691007744237600588777396989831528319867391375471695927506408180633205557380098410236748428952084665381548176178414247964527326030317864497487385743105204026763816562939833113487119067397063490115281491256098685049936816501353539041250110799024740898185615344289887214696476574677503078692725087600952972861871136154569730645609674542580875086555556711893851105181859213632201309538302405030643693894634851756502338531881212592510671800141735502309906556687498648162650222135941060960223560906465902999265118793060845845813124043804819880972780483285055133729966409020078840865860600757405605416235799835765311109070495292881276656281941154366396099618502977768708912396573747416678713869636562540944769180005733223626853393091486844555762729968662013112754829530220332599289510808808778450587044373579168374365080729493578849546784388382126605482435907764484851452128680430030657051543982908785459159625695308414987163062860659425615458201943251032066481694241304770690450094873908086130506065475447514351202224301794236589263763676227937083779007746135158955574288122834715102532195747707154094050297071866603250709130964693546223200293253888538623816405956176618671160923195949160039696487196639264065289641878935116924542276251903679584631834577906105061393192170597916894767985788426953879989781858672353372290734585878533225126430357060037741746168295320717967833772514656114020204429871995970308173335967578096188368818606860310713356122531742935456382076557079977661547481954331129454645988669555354504654265197151293462229182213669475371825610307075316049444401883944046302202802644484133740428710730260917683720967413756966365967163322650903911721414865649044178273095039764286069316236829386552735029996504896461729157851447085498158408195893497945214555532545840110535477998252535033648562088313815049244155783695559278913083696277085030970392887693531225300436284927464598847370834691400495126845754898781814366867960035213122126729356644793283138059983087581838475524073568032266674226335266736832500742425719489471135589680461515236463335348842957663141024866413078861867070945037936941793211171981292026661763892960896393899075500647071923740548426277619562632915691127237678647668515155717148311244304243699583352561353420847317805036220404836781737410214025657546430527946028424764410175667923328284763333112438673325509088078340413920404163194017212774383540674164095786500598446096109733598407890872109880069208726740509494805108177737003348039975895007330580172240995765721461712307602209992203806727181181820918130716132399584455228688796931078100945043873021078591089301082129627840077246265829010343946177366383452129005799809844743123063305760126342507779265074340984373482083307536790551368180200961317154809836581532023346732846229647280001814382914810418759772357222783256475034414292184797265982175729363505711929434202066764297190215262109913684667553323649538239337523743843904066295634190140984411926920227709028076820716613769840524489356640566035569142141491363971694943328411228987466186191372882951576412443106752998132322154595252229093913578110123362632509353947546972388821055305366865707850480376600337238603531903278085222799552065258638538354914649099197933453341824060928006672262818567397775799496371096162222651954102316234147541601008864251859461015811626985781184512589797111523512132239835120808805800041807516005608024824757545907141467201644626521162208760359945268143083245490423903605374977747561333962181021929053462876733020826763374808024091298667578165319676644990332604664687432940016077742719461406582411472099396287716128142020657633413449084519883032133434711147084804434521397439107608763900962104404343101855300633468169080271167278054550848882766566236637045296466812665489314057524727884670864761988787483345522526114599790534758233520562320086342437473129733656577982994895996862127589839702318647231724033986998793225293160861317794665138309580585330129560154007863974640501396556034399388501103786904209083545605417454480273805708038313648994765364209304820620451005548664041095167471146521300740221546958553175949943314845296558101901495637118354676013074055639007753687829738061781395186134439436434321833669764753585089220977078411861967434242307825449916671902660874782380824653062719158366377305139943405989700591691220916530288681575851791818264474817571602378705596714793862953926056594867951211770570686475914655803327590832873902368806121872617061749560889952236675935703562712376039449632887579236484816695524148458511645210427540718768456761992287090451088496926108474727669262892574925483031522479350859054081397065401288368927282092020321215166441999386918758583756643808593605135401675348217374729040062635589376697127458752893883436718512673955999518301518274807077136226935125235518118533460480234007311904282296609456350745718292716592926420304621217562124676689304628480592885868588179365434554492437219611985142959429822716600577025550169505843260476631024057762743434792027615351714826160303733392193405528120942198056344611915649789488364121959696155993523863790019508072811865592023693066087787558723205421394040406669962888364443981453216343302964947775775056789587681079887732278826709535976830226757123072402961986168120679529159292043362406887403529637261391182212018455435417900632597629272743819832135117189394120538642599477356420214754449027731202306232132748360499872801912660866410086270922081812840881368209106415425189508125709890152611870359303496103393422839476374248179666481208945133342344083979503773553840969025055599930683775124373600364954569962700291273941340812713561797295538704381876344738779252789678634834424857611028798464722066538683383952599527344120480758962244533925172385203203993048912749244302365437705133312269630703588092658705998211644192332501038027213607547105607850462749955802531098091983285579501990595368089173323396275072662682936535075594754438602006745627402737477964059035154154098729049334048919048208458401830431903218048942317374915544994861600404910170228864770894232290281911135810423430482849615477112264620355301834130218999019646069311691237695601466498298869949460790529527456597825941038661639976919604101043435637402298820798708362461065421975927737330747827475961554582361123479810510357784233754206294609262976277672446156090648495761578476333159292793785611981611489632134107010098082623563471122623198213277741510091772180984581555411657087827288565703695734442171878802400440245203185860021532539299524822862861870869431968979407381339921264477298333963080318184458264594327698923246187262151853057102216053882785747410658775538669440706418409792423824878291891300022918003760981680392817753317734417716240827929216360933912266761118713413844586836336363512883764587101884483305856473300133542205927411556277617053841879741268605225614978676662645308713365651395123267448041461265652500918130368500809060094782646835630640570376463951071188056705489070144577415277773549392793963895570159968642691248318955898252640720951452511704230862722743678587839598022323255365196241380013624966937444525921207342949579725851839405730595576420335589018750376352782767027007723046027228324481720229097698720407459597021961653834352076422112377898959950647938268395935761621558112925825959371158364204686361175346429848480295618447616682251363423854000636785381153930789803075950033120464744556810716604055742785046493324080361737909919314257159593042219931598223957596425997935175610547186568926444108015642257978685820484196600570322636297418843623273025257598794121938787738721544984235626427350275197642265796658298654133561810469354711280853783536908337934140777093137885272954174849456882187797935552929255819646741436917166978392962518267267718218132891214955267889050407075737706841334381210303490374410673454231584289629103396560667206687500802103660562803076927043208533484229565073250621163734160111178220083013606877361683478845957023055864720387291396986411780248516776836562528119282519600813923008336660070655022172596089913156592164307077335014855686257490046444171968048620576737267080100482933403965722744580138291160231595571157102207517441785461749107375804960326285210647354727814162637646767169357011294677489612314052489246680049290300679058767761865034821727803441201304940969087454222284499921120193781789840707944227596326880464090361118202895139241733577737286228190424362363688321834841703856686780405258121272582618046576749040377567618701000949401951665439422737628906644949676872471928305601867353525309944704545821892269770112516285216317444931218725548675360963615382904136565209194119142215271150856163930316896316022050442899847230814888105548964766585906808758326700942396815823782974022551781818708190781850590269379538263350883103074766618414026170112690818612690661038400669460315005875107218661593001773721747248169525018459351715328212871983524931738505189058642232944610929326635463898366011892894921027471012569844754621321225996157724262561367282997237182049066751269770258890146775205175608091539878577271867020969580401495513523359197802297542996782623937714535304844530282313034337382823479054562096829813135723580858026318498819800436364702320300527958926893141087070464373614105966032689983203089564966880908394881254619324435716413888734860470112147680128798879721563604406180181542646682954790401124434590499542517696863581595354282631860408254360702219046573965045508707736965368818806840580606167670641846591321005218835086267182392509192781135998230377892701394330252908695402227852189005506237686629500054379993776854269608169496690233957605403618314290154690653459886148338170391004155367615161967911906093825137404649843124004389922680350708545130592358199173068830032592457930881613751010991676632972270826917268041920919528478401530745028409820238558603048811200067959472557509488793096737677262931240747929048005856070793884234457112327780361274431542718599659555571524320828415132155435464648261287733960868131167328994226529366614805179197034253144298759515799855549423335827119961619379163688114639257343639783819909701468934594765524570311696608211736053531597511614821103065890612378776895085349461531186037122395357680475615376161845590788157545086884062946598328793561689501078035799676696183732633893354096656472847758712165316539925221541610448954527837030194304188228007935893736057390114717412034425317361179730265596974166480491074234975143618632729539460050397673597465462785920992995235735726178414617038563018053236457903590998442419035524429842750039105758111065580598321373131923514907022992271015012277472447308415635279090140703491201391950249250772902623016276103607536043373676098977562754377520884130690283597615581257243464984173341231237351852019376278062614229764039745467230178361770655970723141736267508536068605445514931667625691501532060728417026387594803372364018124260562332058451414076618571129573080979396388334532078921145641535099732642268910243336771051268272372069145401989901671776606171889833922447077669077514189665842180497858269185569933536736312799011451446749249593160941043275388338479724474527271569060923144423987327886592549287204508911600170757531463336230243764540705067803905143999763531571305267590954734644591832980652987236652499958607617023454062122672513516289026781771577806282774888094411823408574699879067169991496433003618944945076141568041397431319535713962362804159228293110206421683448273107807084311958247426001392758937870889029840857457266332121160190284025046814953191076841662244454131415832408760520900878079955467317382253854173907068083068743696726739118854138846389252199732516179750378641675307565722509179122842679328933157621589850813019878830815445421318028039918316941463540314724660779345649720980498030826845563924872279987179982370465282592814475583055288288392501608163332966028121251254821531634126659905999920441079963839022989197738489419748543828324540907636434504502259084619140404842965147120763659421763083926703805924873289678727360685179880471153202594953000967457229366685974875381588688693314456579850706471004223365396482228239956271803116968427564007702849739655234496239554429759535520075393228624194855730296686729889984050403327559736224702217674753516465841967898355771200448855029572068883043098009860905056962286077042057658433977203746248637350298730862209593092195669103882229123717785054128360050561535007831096358903795701314823794468807909164421340903595091260365632369050858743641171104922354531677555612366277208757876358958040521269339713621744213445727583491962338878266242275939434590705693387941149749224683564151064477765797841198946934114351091486122634810607376317497488694145020717733867694073229198227330853744202558616288813680644292450027912217910831722677490294049108208015505954478344585937373100591773049968269819554896840686240379934116480378106127468641518856565627156267595248558860024993807292102706761791815348296464079502312018967752741218583318075947432323659445902761453755275149939011212402732489424761651246367036541184631972124703804991511797114586315528846128321666028032939933687984532808712367937047147261111812601459791686261713569282583255502839743455380003638307943483415894722155242560515406020392828049825140931056529452584047112516665831102390253719993732175555992807412667008377249617495769738196084877498465089754556298742587818531870197622617212007959855950272721808298107405085102003573625360561138478213744607072919248513846432239288757415453452128207034027289526247020597355552919710326013887373923965302986960281422675183894756514331244671224141954503693591171877736509079342944006490637905971152723793721262090421613569333179560598697506583729271785019328025274320880910480285393495166844524925116477741136672320987499809102229362178033895597456799549753931406264997792851394312413315340056795834905801751233371809632193137468851667071156602524771692516248710158664354571344824249380070023993616878161392366449985895593262288409867279493806918236915641908458779480521142008969718979899036856419998217016522010213825864035225933943029704199533019525157309638988929510967364180776251757120108842224135355769218073746773384711118145707996664908474286772161839272984570315288846573720022261994888730132220743180356527108679420105311930620140744588558899441441531353936964628200216828427577205661851353297742639416638787436731956691192995243787230654874452283500239945275344515821058534634035373977126247409157723368959431162225352300256256153525690906256365820368049928588583048795516280050369413294024791896671161496202622024784931460845501710107496839708850772555972153259742385627855626932132341518776035753245031436728618621660505628493133600942096921821627822540102816630535361077115601109051907211266835049049153997909357686709083646344516834815664536487303341981559118837592950633665188968941879660735005853081411336807428289186973931449482206295292557149038774430217728373011290435527204903904625371399229845737095088218185340422534135763851776258209927497238492401924311800885387186137928013265253389580406915765320263122749910631161617496651280874200580352038227126209323396249528537156244950794402532932371425882919526321918468630799977035212620061990989711477684836693373827157979536113988920686643333848676596807520681471006306253829462196664860530168783165613503649434499481691949571792168491710185055071562354325576679138572671867793671906705649851395074713395602509187206253863994384989590303191531059057954247108241441665449420443203446921476301691090199904157517972129610018089375775773830598612002890033555024389128394114403933651938955675870509621760635726286556429835382840419756873829197690511228393844697770573240754927069932696284841348217818155452223046295861530323807623079916133629465203432239417102065074477947494525880063294830654680229357231050478428298050481076443749440902542552238650618692562598742747290519962531159071526332832974054373050544644278962614545714250218440684418689394272950810220395692473038135399185004267934744479107002077602358794960262127047484065799194003523301074075011730403981251803522019403830310930540780198413785869571778904923767312193992306775231302277323992624418754713396524342063127809794657918139560051674472713753337588443225258339620313269850616166750232187023953035951815083832816342048176511029746497950064204387688568426971367394143616574840255150742944059210614098806919289334381535015306211320003352726884229505696143257904130760920180861483412170014550214700051744345860981827235553857532727580744624632057774307214855715075154007399809931713391088586602249804954340249876257276374561495028642544578273184642694524042481580105829515962360955374831227514082866366441099160432400036776725024973770289782080061558097354097171400099510055459358382836330733588350886316161638370429976407587413194591183477155521725191868348437610532157351672704191625827290445650485588929459204082133399229563363427814079553215457526033525637840404537945488012208652838323144347555165728936547971314857061646980246051378225102383885997911947433901669651782080488090279513920736471599226403720992046282529939533365438571832969980142526951063240276151078245739531899125321543572628260699021716360520776068677940192668912606736133762634716445972658267882857474867530552216695444921692744670961457065038690041922635858698310460405465658644626939659221631080145697129458353927246230295475229258350337314999736635320254333119613194482835144645746734665335389193320532279899683929387356462803777842240754239474234840875950267209650651651091591223860846791404499588797592028208899557885073995867592567200817733747818514146200842371638908410813072715766270948708461363297026223845788205289239520025425954665396434587962869386944315495597223472926994631507790293212523701620997785938402897151767254433438464428594603221594719865905952874663881968540055704669781096591832499344041344399285595124155836793288299297055442758557761871009008098455421067001123272490607826448771365511132818888250573445025240232881436099294390020139771381055065643427926933008164466684436402715123495790125623640985786936369532274199141906666012981048411063835802845103025813478370648628579042289736579316540040266304702654681524265208070575339323435279211357471869151979097314069954970442848856046379292308209337136556308531870858391925185493592687549569394799042310419897048417242999516429327930805505266063583834783044415078762700033140730876000419476892199667624291457858928165454521451616629918637590284196918151437319419063473604658492887827012257334432103929832682071627760736350912738339450148787094475537748254824789559168730346056621541895448908735012294999048540711566460159088674021896456040533310653047239091250543279880483730613064143890084350945097048690018476785607484356878997701132457108454038208968165359001149442258142215549200366919167394891256010135223805282492595551554346369539520764454386012173443644408727889063587646450772174319706368847709796003411380564437418855166427271639527030734416178627096150874783185867923315958192802293068556754117275594057774093601307164888617928830269004242357872699686777361527224918351156278586574054719568223265187415827045668041426210701464052107821016566936740646595519156829312304456325134785797165498031793957166452145647028123672246962529504165800157951130361524777784591995643270367073513346494030694127884908412283582014412257923847928126961321497128121299086899076152127451934328528279951468114706239893410076708627821271326064876602335306821141761510782660210409099463782059587758849754737746398526230075970584610443595402139252482088267607499155129083429366098297717860102987299222105172657736021715869139394506884163226451305917056193494283382174716295596579653792062875043803554835482544775797049643739875009142619886077257461510150598885314225526909412300795383656360193547621168317178987570937644641900993022744491873873761836792561491522698709760243643047327496813668837838132365325794364868069706451670028589040907885641548371103403956972073626464324874433649269364466929894035466997545672083697170064841771626379803521241245780181166132584428054370821459551111298893687809663675177224937661802540983909524564254680408449433632415566742683847174595640190796012039678133274157363672363647042174429901892788099213578297463709147654858290757818732628369550215066228486256972350478350927518975074748344084889524523916580211409584325232907472196769833738320159365006321391068845089412549242624506492436633608618683342774943236741377384028667873899863631677557967727707203379195263975885171138519812124910853614630989864742392953988587566539560635462180659089221360014887724291480179938173406606667151383669089475631243362250908762499128543974388323316469775750875947903773134452196299454305975981337845365252275121474098170094123207739765274949425355682391116042971775264830133187399911896014063632214999878507823328282857536558019428172879129631313960091380827334462765590791994720403676888231260471053191312998509077408799945562843451878887901610412669520888378797491790399389585311553434015855274037038943664335364643790325113340308025408824271167448659642138592564280007737274804065949158391913152221931796114427726961521177317792644278947771082378259278987964347859339201128026747596776257640373223145550897894342240688879509373177151343959339242007076240236085764215961729496827668371119402376379932049868177567770359713129993063579773781515949369390748883193758676891501507854766160945309166002239663267067014048604868578123174789925417855987674270938806563938492744115146387423737294545484476934056670990577558414816893688338986141552789913815330263779909997089559646435596395184234269086786349675740017338173543500270281440344178141444885379275365293907792441054090923926732524211821112346604719417574736168537502795753430629492974604160105002825916068320482682971920754003276836001744243295445142596112896721231869440256765846942800966789941530746739896457407847160330267524065294673519145588524860906522509805437372165104140864571962095761543375800411408301598667809513643024070301012583648483804103530794728685314025943850569573279342251815550699766396479346578712678785442336208011245380712996745581172570981300530843105809198590729396040269804101238057189352278760227367204006514601358418171378501866524838901796405913980603049236109926849711440992153771963036043976774058742220127227789165851246569403263155808254081969650073644263700065123512284520788687625579439235785797877876564757371102060250419927582518622795380329632989951440872880173785262721310256483473448255425992020740468220329557076435048066939411921788809628598723491638780715418977013882914871153670677549518372276181417221046726960604165344708827396978087856942315968238125569717712704746556661788269717532422676569976769852656754634125331903218954639315784225301950222517214641733000893462478010778583817767751029352168724700690030351548878084615055236474480437051975408989613923101051401695964729357807942925748495492584141987220917529689413137148532705003233456175828458736584217822225236712602571683842062821239172857196160592071055853147460176455598439627319381834620559680878007976777502904198561560139921125344965529422521144617077008481582138006243368704043989857114464373641349711734896677033943917754700003097680511018516107225438034594454089385811949797564873947818837232019375928411171066651263997316306071603177604271678105374137278434834001163540175980611677170906550902359507851768511549191107299225034014562856877809190073812078904517738724802482753812134706880254552368078932649724456492701180249936704231582620205278017611248328024980537245497781629319215238959881644201842760706664149682072701713610557857097268143640729004100595122476629472622703729589655924080197211276443815302804461027721385325903324714200215804516428802653016467850910204483127206896828521556172917793568189919160059910506834347731954839686817492993030977472621565443626233853511649994974428055663943786261853650765007830149468902287617081503306085018836383801144538551841863252682668386531776201688792373716119850008983067726072818514524948322554668752750608835523102717262054037872267134548133975904200739200595591170486057721499785602427656392696093498180609836928211042043810079260955483497932897252220550233936775026199408247537949100006712534174233287938443908821828211099947878704711155637583806665510049501065679850010138313476179723931007820236910517714008281053354910297860269430966069890534393593117917586128668350644610632930259658552972733635503518040700230673865409784783937676056864011399743127476881514598857808077230772259259386419217170917162888371414966139361515620198797597336599285652671711477452171561207711032900937331674623769482247300194700502300027014476484569695610204554377498826923426891160544412712871932959199505942192728701710929811143093469493098705391975691931570564262983021252194401415400929905540207608664399961054815248923302068158801073318153830181375006044044939388436186693077657465009041024809876221098581052020368434293147515185495539962935501580963946313860289132151893996825088980294145513863604371036395497649721035205261152576152767741356605755487997518271219577755888676749873442711581370587173309653393627110785025168945311656367892733779248641776646502881465276784952197128879264442853050343942864081896914656601024309666985130575721926786577189402599293862584415091048758267530773340913682200522971952706598251956061229027945602183363217060950820293906977828545509015645058484924293262166426005323068474067474721165882603866524467823878607618885948585044567585620396326397607777815590110134115953259705117876247014872315240248828996936307814019873451805890778347609438595980134998168050082216175445283299099985849668940187044257956041155394459916741516813454247351129932766124536608168045703055221903706164178260278082457979808059288966892594227808087818445424337352044317874129425745941529657193961828685228268371697382068666936220907327227329370232095462137742703876807794690019646273960138170209271637832487456875694034725136557500779552699679333725853368284433182179166691815523091225031071073056241035145978962950944581658485095497520483393768294588775260644064078763915239683007884378853490427251628308391841900560508641072052927885751856161056502279906706982451185786268950559912148112449578208995172376992838172571941376217909444896807905990314611705668735251647552068525991168702650230576977389652906352855911441874434690010684408605255566312630601907510778607982383047559869374511567047446354817248841828396286210729946808086130374951439453937062139467856756917993272896848842333123714023957453567155257200837891961213625290546963515855789688817210863324631341015670869502385227767775327765533027962297792855570757947270690169315735887906654250007160829297596273141302538898254829797671528762249438994289121445959281417225318390330119682106751686168614218977453082026989467281793358254807226681039912363250564364863644565686357869050986625681777062309411702410045196290885284714032364597434065255713277221586927540351747726733929624777712894076344469990599377485782086441171430796096092528170079251605743019415214699291271655005360693980588541895898664356330457329969429470247391407848292407265397079347308717994314066802630117322534990178445124108008880662717373733013194488541363386877882393707853528553758279474101824504300184619527902429137275976911001905357939169539479545730802994514339180174332784951989307018338066932976233115791065783216974676544439418296776840709475842014949977820661961396419912492673540057476894154834470749061317095978438611396664309650569199221840107563966881326857853332356446954105262074203724103690858187130432592644866861912340745926400259507411866900174559483921998871471439876018223914207285421544511066106719797591261277156919662551483968854392608191840129144814171075882975347784108890620957828118103300342901680387688448060394813853641953822736398698572967091507673047571946139838233482760042376895912355818021897527114309787055654990910507185142080924257306825517106897974644616781677245202961079601035964358537760026572583512833604461705805865134516963023587204252970367422139753852505934640161367793385967655350751587143901012928705264488289448694453654462636200631761494791680048954568065296776839913977156456322551828439449395544554582990942536556214846226515972975867537203623734125901726229773640718445145660021469317717983487094747987427472401550036411102384027696530196846703399972424113495922455591678736114850307518014596794663959226041774498966945870119178893054959421736928901082680850004575121009196988946322321455004798816340337970154639991155926142859697316342693930153447656423566318383906725058171644319246818264295946943017292822956782114628709079139367543349963054850944528878682620429877231084471682674183606689506685185914634340973117317199761718079155335061251548065626641431542881847881802141796513610430702209212168816565537472647301362216598809020091285213125599510508645458161081225757608542662610625297596554189212650522937324738254202517423556002855725214242855561164288130859579092716272533154664501076287350942248875625027672461823203702753212332442726046770749806831390229357481557089037960958459769505318624767287630897836626629841047089383645001222917888581682884774423606530912226680417224981018831972848392310162728965995754418715298002891366583400917643381487401299512187449794367681321026361086875124615743491731496187628748203834689143861929210299090533519149335938062074592077611177644010076013625708363233588287197898084845691639287360566413144835953744735585065513346525058488570777715542565220416285961921010480088388952583573750054957089512401767053967642138990378944543741613652762368479180759669796636445647323671501935741303285419156253265349780988794321438677762617543086361092545588232083317646236444003983180665784151312691056246810653507091930943788869297967072871571071437226572019999945744741138405891339422896518357087434132579702244433349497951041382141646325287511584168579980595061265252808404208851231029383430683854417922425930078164660306132657020525713942727056591727748613712530826322384969543237176539939311946404025279932724875136776762075016974304899959796282606678174962017988660520043833871585586166953625754177100642044256544995110708529026529017397903287833690878015158381982655295337060537965423361104839156981432058674858666577172066738412855122470272942406397665789622032857376430248499909047184168105377850939197402965983200175340899578262536310105246991171839217553887322798637144851212926446335836850363647449992869230945214681402298937758013112033592179454597678061346051993791049513943435767142988534500996531374090182554286434264029738888272819158712364416603309985508494038279727496610528877485785837962309620907654790310770266529187434649494420952197080230045147513328790448615700967937833556499244749633693285292578066999857432708645977744611086809223099794460066883691135977342646864617452339111318118391567016252710035937411757753848401557298385189168176517434588557890756919775941315059633253235142459847362128891679895735974957775972818083036360578380372289798803616021422445301306854065930621337587248868741877334225554777933327571092706226276774337099760794015798577883999190398182955744448815787111105802275349039300933758911725280880235943211691331661385821731786526323009227028481453088514660877347267946161439472998822498902891595379257213588910929227915889327242342431965803796472372774655852882401476385599202078547904906372020420329983846039140666573084701643454841761561895376728422122666244812131672391102133249739537669275369554753519956670847692789381988049870222362516305527806325575199241129080236918382612439000769615057364419638686255327486728529822548166091214692979366460972713239406996032013466553495839702953004249637213701939975190744675227266011661010121013004603114432857053003428540619921630779120805103552081750131663350932463055529535584187847261294021310618221422002991250518792736218806038309673375346851188688851862478683247336614722327147207843147616727822838738434277599111545001606112094723222826933205263982922465625517186663763366903219954804802849127464293448776395753641663160378640548858816197051860234977738473233449689391166998428704806302277712965672447426182489678635535451731079611395895402919605400146685330528513331039573211446156674798841361002390804395352696529633206546382085801210754213056793944443009334638704899561747717101025806521195241355033273082644522905035722827276155536459204492756308780490166652724401873425187086561085307184022763685870195886664479341594181441133121599848028056565317698259578620292485727300677367682180424599816558227161724598889008543396240695453202044822914231912569398320698881407766912278801823493678820261196336318076051217587055257694503205374161697032619108419234321822244862081777795885842087549499381716709440396601722570378274461654352224274724309741925522416501291748857739483045859665424009710553137111724944707800450111023751171677289902586407370244123301573412270081367287712245397621662648409709535240388301050049443036233833989215595724284040572904098238858505250830496121419066213093567820322134718850638866562567677127580440896294709195120511178394276106376353593962513169599219755978849795422283199158654528849477435421078190077777939225181866896530369595255448041796483998702256296329346173800003586256282275360348877672954992424705742629891864820402692030250408848691069348985379468833347941542163452082321841181267250497594900274445175398932033998427973364216577751531589473298024184886715313444699127708368273390865763086441995194869961305798645896475413390359146021268552424443734741502504034015766585896489708477791878076011048337831224610647090234367393286256375660035216352406225759644577276249540715295544881648474469726243052166894650279617195934648112844672564007786119145646304177595235658105993549018057915925049749493251045219641192412022272823810434042869201080679044071282819970355873556117667243366597543516724908909888819582822175296228767147595190276312232137876005297071439884681798303196717938113023210627403678902566584575969186503647298138814418953919383336918811954323126559760626468841776706042621215624687553885947695156183796306412087265169006879168483954774928978210792721044463522336994870668395339819646610543430991968783476239032424568425245076594504444263475135334372901623376511402269527765514812188873271627419582479400149833890920983475215533058337170322305853585136436823343487569876530923785033476731848684761026042080425781103039757303742695853731669518045771163430537812624969321581234998868606918733973534489096134551671228650844138560378240293384385882557876455965671489786933106396688350095918221192686930275368675210930474719439223276267474766607956144034618999314729036501084036291443940829582363466072473989231624268135183069173435517399078877850276163745769309348877431454362330653754604624922137011302281678372778637784055710189088711702830618503373330922666033402604457113043550646997607085007595515088220902162970966600961291872932087883452121888010649178860051424659539195383290696446322217525902773505085516546972800023805774314115562307013789035742518745809618404485636476990156569073631221343768866700796224269641308511643088866687293234541758747326205112790934035847592055569302617234383279367584053306862817283680528540759287768080909882159884267314568597755453190090392501935560560546725363844371104537519939610061234771095245785050967597636559627962849877253011519416377496861976171090924608171674022986693172563227667671972336434777526866029387650611680212707014010428544405948008597031314043656007723688846879062493180274490421839226758607234629470323095464044452432914180293894519683579194107764241642999858469363195612008511889974706679251663442334959520197370759179446363354987616497069253829817864821618449981651244928096585343595952366243703043050959774811805900443461571563592473427410943767031225600023624358777418952527910820897613302002933336232795604001638444860019335901475415659255838418305408610864865246729751318845825490102084939068079947250580625738689177393545535214581612162299743052526863001353665650473423135579071852251741349843097611200285793775529386344561861308001567824316766086501127537018169293911113249930403645220972184599135588801977775937720446078445356488676208768052294789225314266914706204884724956139207167723421208678512268747481019131235429753058762654078949422418697485471048366932341301175229007673896338122383019906019163851186268326687026160259358953025747968948007863956388365871431368827094630375777715819924557750960657308396034174127740534138946732696568728325196894044153009576593967796478736540418644192655473907526149503562399946841330599108677170930434150259243390312070393302712139820312959382182532732459433325748222550646907441580866578334773723953152402489759957606318182963438817012608632604150295005631489788853029994503297837960346345094947778480922245256189549498369429915952412674626386964897784759253202334622429363175104416087778244362363759272342222603529338837535098840504675226733088667551719996513942527404294866604369015593397733122587270142848899618663946882999553287047264099231707831128485332716677588725797759390009004067435127100031011839126484391010247907907126185304947000152635599998156477667591282248080259853654040563642108955330270610420816515843676166115249362931071377861637490452953111877502399662604778493123939126397478994782628119061034147209689380099651387714030652327964317592482553322354488814566115379683759083873687498395427188081652077000233417606287189789437029282511559813769724151197472628245598114525980477816736445108913218280252933547372392528141955820746786158533147066666640596092206175314883781988374779811898608302975293676280092272085937513333563461919065822546444682380406873425774605315201172708012949917836509059300762604057480255245342561916148545809453548222910578279159184547713763157357751436908479381448310421038472649599655582193041072546318078941603186035362366344588328616811136478219189589745166914330853324486059939627844714782585688116916222959542355898097857851251128647213700967628696455823054775848669600395038563168095833844360634464564709473272565507823092246292965070430924598031443280795481003373925874990309956162602659034903140696980491407674520751492298527048998881002220604901305788552230240055284580202380371964808970579110118647130139000207144276882555867836176327061664497408079795933711883011454294599994819226191706915451031547593347909146432776333503019381302603141121178101602438989489064650177396533945742713619571172286352051798303847375984340656955912155751449636103759421952815377603906664279431945552987590799887473833246450044747246700206247620830388108766781589539180129369360045470100948692213876363979130616303486417274009894896396451335317748663985301500645631639868701502198029542838883043872215612387589858534792209319429693971993119283268549204161343709887980517653576326910854322253335015518970039613325555975987979067595049148505268874648268152530334029241018791700818630149715700642664589881275781572838948576107906155031083701418575902015733633135070459244595921969092424032897166391653628428280809635254131952084029590170072447518000266207722880182556779072953614785728222747753000711407546265073831628692573766889435196119680893982412418837127568316107535702495102857872004483161786970184907397819359562138393724623583461330696695377138810009105305785801317344358202840410761544985451099778641773247638043874018495424768849941498450813364055610565416425515009866546530234048960226247364162204254026019068939452603819519549354633997934425241096102098274694322992459145527661344892461642536630762678806284138725370253338204940168533543158551995560763536354043803197675134755953558066719330557234047521352542744118561686804815936235057462991656407336999600078610323819548099046593979397593117027269365885767512277246369929588725459634685537567352353100914111638830079526193225010368011904902646925773481339336248582519890045162628271708141610971692815352562325471275179067152360113068911346580806778112099376153541449242382836125079662467206080273506580526451939297449195973702782401557472292858805966916624887316235985166544256435133346263808856058712472043933748648154362594231744467628418814874713100576540901407670738798134926097057804105089573843947279740959566922106018190187552318968903010524532938801110673943982337280160650735166989276960962344545762991748504827724108286034400218904239437502609044528734958596892286715878487276950607216516301577308703468960172864181115567961444355044935689735058349150061431007094028376994410811356519146446547276671522224198172815492719272078518583149563818511341902061588950085148747635909879760804316204312528309233848526582462306462592538337621538463108765443964682681676043409090848556208268673023539607795100323292931804399940615483339962423694259091602845382055222400820822838356107924846025814435658705975145305959159183408697883125555095490806308005392255680212142007964295929805867496687840937217875179112607864875308962331350660261909767464932273305477887984553679169553999088620725627359365783662785768772833312709017434337943060634106704073031124801606461618946845964176206271795308328328898421334142766477685925166044428263618556037251010631039963801021139582509718041390251532811627343069135943816331619367311693709944953585698174699350594111356812125595366231629554024484499961024350331586126483954328097950822184218232058130525181539621613653631804322994715391936669366949477058676328302406880467640730436632670786904298290130482962791154386620828904358404096218087679451846753694987157023520770506650716376653433435242002525849701379578296867546344018936967726833522004637213707900671131351110380603651806715756193711330176819517532465018619872309187573415307938211047388280157245365816769566067496787080917278299033318093720388721873557493666568694345127155633804716772301353144278607555155104562230353248876675644201629020290930093477991248625106557662564010433719285832748299441400208124730475035778931021247811121242055307208159855736800080652147414542152794903608948506796773699323825454437181921770965996477277884710795593939215986131559102424820275416245823533329672362879606711787515861009524944225905422834176179950008163184776076595109199647639455750184266761130084608346457788327395597500547355772707943099542355029676537385386674783948279263797057376684721585289849059841358173184498047816341002682389562715168473582336671488971712899225327111803064326190737329076841433312054813139518213989639947816557376506464619849460281275637933834077389227542461876186376198034772981054136465841137977814170790657973367622627737782238114303449388418361088525115009860508632523358353827289243921963648642124097389357393692131705227263450464865101668644118170268880777386413501186717921179900636481229163030818526706249797092914668514959946514437145396074447667429506456628864525274963136359222446678546179774958140049316587162130038511749920692284545396916654378576192844039330211335331626926220768934245875737595712427960124216799456876175966452492681067004025498686531395219692161998903147116034697250161956908529047383001837809001282741677826123308751436910487597940475557416087743034626296408917632645516901810725862416987988430362335893293423793476927966376820009579112213236923629319287333446473256489960528207816813888466132691429938134221544020660315221712105650008802563351999402317006709174896978050256347613210858195832252527139356840080555307886042690843952108467185994611339419151002405069602453419354862812347397223449071364544205735512261584601277444236231076778523299963631267052785821523838564813808188341988615569414579210002628899096030114718134962345608013151378935649201860888007312656022454833828739652829586448768359444432709911431325807518611819518005660268160714179806968586414888562192299739695297925613824143772838414059759387207781229218463427535686395426072307176105053565585691797452272247509501664125330226651080639190920814221995225698663908369103398724462207078399097609063999718480050937638178896416253928069017824866808865304873046066439274528155946156946967538995095020680469513351062814657099811571378981694241620206666004308085344762076444682901161578785148586550570538239137138097504446117125766457545131619661880046697957733855532524222355085598701136794197134527921471738803454539727416788969067126666461470391449557799474950357413976178767078075565001512671616530749112820130559379268320217244889550316940161907705576595664080642194148731312686059096188112039732567933610721651082763817397461369225359118689290566830860826497925218726888552357163568965808573053956318905960012199404666284109042584572886200422807846466900083790874820392553867391548598597354926483269477624549519205263243406406012786430812181108394109518373375451439389072208555581839493760761393172871261193649981207949387881425736626808397669313308589616652247534819069469864623866702788027862850323220326478027094401973002183758512648275076098710054214426851453578908956729043468398296585334109349477393860682490986617821002841660192336611096287410323972481064025951800356724343687604349696398490072184988880643766202293688311478554302584559428380293810133648193592546432028507029332828756183829611569010147015409849998444969339209794711011911143822303317841804098245788069528854664847721839236898670943832728088321091864344802713902383883639959852078208974441128465133204832010936300703549633368604005518415134698704843474639566556288607335356998710730494490756105542641972588173735319921118771869237938872894370080573901901849813475387270470574058532084926859763571458653983068798218515039467253960233810049277243570789470302865121125369145491988479419643955137449257975904258463034815065529588696262633556282029663491526825946898955606073692109261308747457281579654799233015050905168154754010207697960668100307371174733640645731578446936083579887961299009985010169375136142056989750107305302370009174423957630112569772212397166831669095765898452638219944316096361136434130839681579201942311677889780060811346630201865172393490813785716847246528154473948008718861459828708286801950689235875944787230949558519037516893924332638470260903175169075885801213930277826319900112385434564670606765948462538260634837413706820411589792716250276212108104813089879633985068200842041850502037524297600965565681428940736063446536429814631867307435904109625363453046985107461665073825862592623847431447360751946930984375712678418729686506563599470816199128896941349561931243510617310518392687513561695951454027008434633611567061429837679470581706052993246672738087224997798385665185737264171949758861983084214807954176719944932118970957767789412871471705748203139958326179191521320453101202561801005221643909770333037612137020845542549560795156036293873606975923381901223227224253890518693436853335824757770315929177732094152391012685123686697041365898922223642857504471244371307205182531238927549513590733345276083538790027634510459235377883482457859443189839370110012134689114686772133216536703289756193318587468433510419767489958314637293011423328156300441988456829987293651774720185726316663651567638470338412932420364773597009936432865706898654271676195360797346901607901512939124366584032160527985433273551011393505615008662914261585083361263372051681964864126051449442063509924914093569204470067922014308587964650157611753957596035495952124583763863557829445689674350282229151195343040939807790128008050031383457201994494856808528895441742850254426182699789309155670792174123827550202468406280732371702479212497363158872729774611619131372484468734853309279877283738594969807294787215458945383936428765228611217384182943663334854809456815843761078731734889060064694421539550026589046344336401235023671328096215451136504634495675725766568057929357803594678558625625786246238407094314590037617829603645312046623973227971892431468439348541822720153603377564089567663512958271612223115303904262123358785821051079544602723260495760194497168164280902027693067453727086638056583788704413165815984631827201148298958920579717769489774541199289022562097513318936359771726743573374584528633452246112874662396531753095530639194851952640283519608901655376510576058480358483146693831249751446421925143253034413328576047238076126778168322805131365328626250636016718698247982396326143558489279402070070620686079528075764592977207320570056444670722180996835540019658915424749331728547538376376175216152419504098499807279143245157479939151151552071532879533391656481325746691058605361681012660795958396485814992403226239595424092783357892195150991944182514484719914688689896543907501435423021211993465758541628647526794543680883012703580879822408471741349925722735425284823094520531975381163365248748144061509514024973709066358955927963348341502591246708601310336669939798814221401150164722771318912131946392364271338743028449487859341583481709769706716469509242504492347003429218340848684136488513953096537561458808491235007890989372283303033681698744781675948723605490382297177838772962974152417779353129622334421376712125310669213852204634791438201625277339113861706942884125171750601952492124326167978591333293342742696346925060685917159874149759868693267489050545688735351195819367564563087750184655124550854366815562877229282795834687520959765019514216136680527534293835719385076936158140422404018717350591264763857391132874289041917628135027669715529222731754982598419616490073738552812077452187769663700854152110264634279569848529360811017036642656623083307714581521168294675956462553928397674443163114791265540174497298143278704966182188326401959010804885593426415951090998491612793122476223762065982505089051706462170795120054813704545206293434543560670670792965628757345042705829117240487337428105041622019530027330717354586552935329007629057512318302284793164324022101790850606197920763983988137163312463838550816909370409011802429427890129539291092267641568443444851449852188571912472205851156305150205865752944090766662342000972036557590392510133431630309247457654669215815550119354295390840165311201786356309550435895542087306992226249132369487018296399990093452945743877050753075456031891476186202506212043796217441651150342487671990495271013233730593873057681575637636473306265247391100553041467763898115627137270648569321398906301296057864066536594946052064874379775946022717860274464847385281348046408101755088778759726806871099082418387637784228013399560759946377118156437411774894356314304605534716818045617486522309811834328041647253555408531906625414135964357914084730410077758396986593496220505452832148299593081725304177686216895440670670388013453895111075768810847989026525191668045502714879125565688117897140786521640431463086425812094135667071020609167339703522457617916733326403115662035645219971547620610548876212047748760907746737531737200676870303224324887866817042314138557500540655943320057373920524702831295318890719994892458310567460511318983358428364794076624437151385913573542948879186352094349270558998150268788719955328955872555721154077305909176283535644994620679211355713829832078917385992315590206887896764842286962616043279743176400379714154273054117852151394768509332100152300587758283820893679365841001511916730645463534489032345926621491962657513322797098775503284491581492766757771414540170054873194039048745849814763142083874106076611692534399700684752819121927760829604140901493882077411039067495055010588213873672924111493215117950366157516925962868333004373941875055306770603460176292760129378264035435503680848453650274673117012215444078318433320423135778829649815488537715783840015439683093892429832309015799163574041781160006934422023757621228585900618281104357401033771548070940382684308945175542725885390624123731354402861963153565055680580600416164995768057563467640628996097054715619498967213472046315096552520599790971804086342905937202087430864563968175588808497043694178896881531917994990422988183412424656146688113645678038434978052780198895037728403102887931348694476394273377144815913221304439972530545083750511456567819318173664607271015288189906817657940700918202916459860983403968973930213281739546288185787726782712878168135625522228241157252226316520933325456522418960425916978558660039315662929282761409426809383232524115706843758257207895398754021213965223346273343903956320108014194471040362625944561129599545350783809405600426438634539252990026144540111773793713986637330931141958573044770130199675010807118864568254346210940310925356231955445505381740911797728535223673400527250564729832472290421992869631483067428941338900609482992382443220725946821966175663207221403994936883240854685089903126479478744572988916950240582515202854613480006897275057370996225440647237527748178950237307017507124424449988832735297575938455303276628556646064957558309751182195798037959940125417746774311618665263815492604446563668323227059752700994645871537100360424028001236421396837084393767739879830733502129319728923940033271689307393018054513989772831967345433147881776126216673674220857490709044078413965933107391683818330357758505019708677744783599772777446541940036557126354700089394386762687476802033800180285815673481951374291028831050465232037513686817435037234362977557523497802885857654211267180414411516008033216960574418034130170898613539167784537787224468693418033694966437246800251514514307238202929288434469095155652314929750143555810343050101836642759532439345171592764418344127705924570965452569621071014057607136690491174214948334958293094866544094925878101536011645165868420117443402756002322724924756531144540672597996020802014499121327911256099773792901363891359607531745050676878160928954719249277611389249927505819772621488220407117470771983011380419101311464679322035054377061305233656362524937883297399485483858796583045343320193013030744462823196217575705908003106052552843589930037435640750639329560220254964262302475545960381937088309024324724899736300308872133586170048267182058303587867882147857795923249113810902083442746211659393043552675440607226251622795639608066265527078526112624505086030001815838403250244526836936936228702506909018240372648045630309612383186402007860809645846496248288970558622582146440026078178615804880209138129220329374706921681625890070055443401581329138953077766474887854473220621099077423996269642009611270532426469891426397065228943669129829217233974129484351632703163868185051958652979432725655820638929281211868208155027884840314334627013150682231416829176576398332881323172116201258474495214840190773026588148768986080222669197217373507093623271917025131498622189712099356878849681404044271554881819023649071939496004437907200072339696385656337508625951869058806307314861746580064226472408779695722075415503892106910926439408931546319527184147270140149167274918062977323944270211455567541593318429397475830264802397266232340292302488484355155110188956109323744604571186680721221400443430907767803316181970216492003396572630115731551860277872184249323960957668152539126450501726481724314847120654123016650550873699043449015382958211048782754934354426147601566491237762583102212093808238725001263964862443953378703034951397457295501566488835440113737403185197817358786781613926500031491703445881131774873308303872731818536258971920205999085178592156531455227834815520421863743908903663600879685714661023518318953720039680568578870235089655491322096818439481940932437914816996486426235755956310549239663664502699163999926548402182588683115073974881193851149639456852096894991520310664990421741472074375671745490564376074203358124086737135090025404205801511061659758556109212344470920788379011825890830918842222532188807024574615359960663638922237846190278025792521042920622253608322963566820581612370664152370973587622615704141017762190710515117171572935244166355980649944565699705969931498162089167226254075052133200126066797766242699677996459291318708372073646061752782005977973770290427266935349700786315111421124249491421628876230161013999728690079818205985772360770069722209202490581319775242943887775073453569332410302831308958023453553621259704463981296684746548136714582830710581091358206446480390520722056515102005350227682902433413917663043026594903271834652713091055058600587077308064091806833016894580313688125960490648657695961540903502146426744557416103318825287259606041044458806119708651415973278795584244636352887528384675635837429917215292889841713028110307065891018034950758015425997327939372381750215664153542628513684587002749741631840698198408055395272993590273774144709927305705419521606154327148229930367081535537926402442879199136169481515616511084674036729949744197410225135782530613093700457912994616435276564382248308646278905159934391852653864080910946648235205847001283617822810985176187524564903875237818337963186803089555290858403007561488242742661224249071430073570804405919277213570364355574926498738707761338612832790860714475056467875403126330709480397520173468643168732880416971602947654435527293921228020957953820237108791132787012984893937657664464903558951247825613336431755945933654467414622068561383421568592035805612577317093863090749724672238335460861950362166381423386476665176661108182466197731240537702876880226132979699407428467885816190199682014519910374950006146598215884733412726775408843247257492062602585475496581210056830318794182987240680230957097358116842664193484845361890916293359905396401565136745234900488503883823145382963250516526548982078468724012179740836458378646210046520260745674456258465473742442841660333924982841345448650793177665182307195776039872169749590100422032622366037219032799086555565033783638796094778254260597148687173895728372101098104833643598190901684933339945236434509418537471602714548468370832045519062867677410983265211125353424149941071393384716788524876196137777478088490957937263553949808743700361236859100988275439643876028329094897294891140551301526985212989319513778697672338770809664119116230181741104478305667223321737219616407301615826842004053484465230705072223573228244775671704448934684104597287467680288759935855066353875358133038660234436036832555491451113234723014573222231299614061539426145001294512021346884458908096593815857574766782090050949789091797590367923186821947629577157870982594354278672493164755049872790935340858084383336719620024558789590801896955349773671963902515818766085606556639730797649822631977641579248904838202138468832184464234020826060966601522411432322764336593511764687992736673638313202410140234284439408861920753719909622122795861033334444775266160493087706132942734324201839221981161253997760455572780779710173991222081418610699622833486823373803193614705097972664828890833533422023373918413872682734029170008370821837594418458730195189288453460013400892460004676598984132675601671497958753998759275926393542954070426849522455344326095333492097733829260983375322634673167207864363316488344384019568732258363706537053513912098615715198486928349698994154649795097181788197497820564159140354608121416495661779388273036779741409005672676872823313388966216391664681983513703872495671838289066874604176607482952319980677826922569344287508547020818940381094257263498112535170498577699628081491282653627438778966394096684062270103969557307756193277526090587989664210942519586932309527458429785486259100115453037425038889898001730337365190888559402678999004651168746513008240334255706072082560867376015709147112017817748840172996899825025343475794395731646248475825736178408237757036910058771622960597715330879364523400898539118049497632464332925154516649377676667604400629478324554612925535710316404029062235334922161973139006390385886732308735049992126719538290985604970882739716260444453303861948448882399115838133894790520677471196821151784704484559862378564536709657168361334286770122300646760815751264564769968744134219024260520847130566495247053812737374093204913661969536976800502089221120017922100442919518456835247418820012690534159044499777976326292703958391384445958275080211351704422307102789716002680720381212115824247206219473983689074730711464514974043721514389547131925035452215036622870262433639943175264185575225895621147960408192869534130789527857891603760324891704479209769943944122224339455191073018918047208375588826838267376744978517351631329615822161739206211893345370248927485160640749755724411141547490447509294243061519924136414489037696523042311809579234387682818608274587312859525293134026529592029377159041645441001190656992423734164402856709348188649663740735850525605258044839138835104365118450036585454653876731597775252552765433559130264830221946839953758455450803712857472291290465659333190694222842578614776474184857416164320566900759528191819356539426803519338418226195252134871987600311407767025688287630542263335244241387522435349593973113867023030207546019497795109973727006285888795315112107932190543272150535682849759273470721874190632951786166812952790880026885988831363542637814161124571620769634672156042122609001047853469213329091724701849470354538842117507239865491632089920548678721641665919929204952313739330185645448257735722655490435106597569041691899620340945250446216167495788025439938803757076173447174641289540574440657554406281457934728532186415755903412292199839611323835554353483038109274811519000277621619112811482380239178032956913721666271123010534628425310321681048755114681113751026959554579848500993222688441383382706968711076209847638444903955869154712724510042981358072376677303544591565578852682584694143079826282711535164813061688445510068513257216709132434204627167218221610073594243280670898925085874445800625177587978340021632371077262233099207269064144640048750235639187018113112578323260604721854662223080280232709438379174063681548621851525801598925456115133959572816741985369678456286687650327489575273872813957717881983414044838392614989219568928609654907077811231654908459797452669336554657836590913964910784923826055194743227769144306262554680636925463245899983309823532620700698255525269139686390978707063273772994734506605122282926717942760879703744571046040264110040628948974111977338032126263942027790367601014488686044364762003433784867611602098303602461438716530067719013989077656868353921279470638939635418421524756940053599478864492982348934708552904890520121487377188886292072933364075028184996509266008644127930656766732573640607891694661734765055897778077990691074203889812912569580064471617998411863369391557294585956004470459636037689013160296286782799953983182261638191761179446490974412690876936405582835524239332415701713359361699243239713493821523206533605284657302924631821489503637860866521837932725751575738283185512593679826338887789147519840137169848694697243120483043840868157765710291629720328387801878912475914033766515971223840363598610222490362733550153487403582397008475380596370737343229974458781057232377083074912827702468736482286518515649331663118345191458984141574218901941805162111341758589773593700196260684068711051610799533679419210118703016125866029889368704146569688017734214977081715599392995217435355216189927624918745775332939943466308841601140847208226001422192593179765901648210707999797220131749640576127076653211862620281803553083505360571660818966120035916875314429826660764267704118168160066790273343541466841691898093120108005597606415999177927910536443918651399404108296335877759912561133361199150803951829531993853889473104234078098934981223884572398388015887631532433125316297516915066025890563791209298295387803110521539818389571458304317197181745320350070885553580289196030714633811453331749228152374961982395653626825213339409162505442048360358169167314005539712683206263215613352540008924790197356169936938180182601915323843712924724203585089543107616932886984936924438411779431144437573981996698837876670638321515423059900614864519532475408352076751906685556053886862840795303856179805913735835622611897689483250860967350083212832879505015028683096546009643120578798275508799279595338954358298511463240044004941589941737990301406845179670378292415281892029660318007299927209811231568330309647154781761171957180782838328035810780605548063911667062797577146221077425864310870252387588624078108171892199912119817578490636622545004136468037430774560469923225958360362512446191773123444464851871166402064104556343708734137537913085344803913524203384046358257957722445812392786767813038084356525289659315179422993439491678745919045761069123428315734263751435840233101633431511546991199947229457186058723082497429100627102173560421642421470925330921327856442449701316102169275277033470620883675740457810701381936939026795083732385975858758235069170670118722603818447492566058674938005847215252518193473331428626375930016480120948836391282007091923793960315248520145284916836784762057564561649899085117244819889597199815342240597095887783810609900842940213521569268948227526564785720020977337824748266649952000405216502003666941927455603591047426107759480607964097881296637367898576395222548675047651695734472333601961200534105818062549750892049959738424177517722842007484928831875833608436109669641781639493917419313041846464704042066505198606664696577300638444487655608989955796432589919698558608679044589701582838047159058274572485835254747705995038937609784684885317282784502123803644512292278122408680548681347799167573512099800341316141990806735603696633000297396402494310362956180569816678063158900204613231601402677343666831547042594209435016676054146821668679189497427579321843614605237175120563152896991929092089470204012732540758331809034317151074376598103364408548421866304811323109386591623536832545746146078032193801374737448183937048536426861745431007176937540888188405481856096779511086550543004642516705052695509235186650725732104903732798589991394179966799970987654931557334638728323766238323334131573490152991006709258289772700053468227532765727922985575034968455062959191842133472565282535376549952444966289987304860430941680727231281259411106776496915887039271281825841398671132018539563778351182531734395251344547098603243262325897376914889556988533658813988732600060662258634447868870736581730392957931235870575539314413895908863136870035967876002446960258208191227620624821493248285585426026586386484321660974661423784349862878093796710033909202467726203810983056100765397710697996014609397573550981735804476343500401636534740225474277361475436499270729178928816388251362504003493928825707064329532115212004817881423892042362586962845273653970432115157550756404519553207428631316581233920351416613725452590024212044910144474679840289266081454309949888321228981908997472138722289762565984681725164006186981161994138285430313581847894416088791730292050727288332313517530009768098320601503918751817754725559245369194427814003772151069146895283649284845805770427942872951564157157019469462862311700733008982897073791458578941302823511624548491979908438137647836745115420504550559805529356543523960050698056254590503338261572138989501576804683885457266676405477669913288626282033936545774257923110533928198450370683045144191480009839927947454503423253293479184255321696013777620489039854736170796932902565682333182253425164811556080171907473050772350360910344206328154318185485781356514163623606004810109674415923222507747388821594628153331381592150010554250924428505496299941273426725204125273946700524950677174945659446034695875870520033826881087792286424545749620559095715127362396882419552100062602365263801805735509856364407261148322909867268474090130672184331630097145381407858960803814193378604990038603740750856853473129629294779203180819909650785063525076878612379394376994069272969473227605932390090441055345769790469755448528619493973989793915950753502408868647741428976925293807978620320386212265596064285992044411094879908226806593622404325555407153369438098616159847882511273796690054438068577427044933730350669200187508417536707029014895513566626691054951393523369825435853287795788859245438292646760167371458209253018320977716835082726487959862112714497657963525548596390166016329618966092716004733225679901625402151828646041485070401611985716894621217134501560742148649845609937086433599997840715260982629734412471099036214356444428791316822190606528991568324847497850689752810109792007836156758715006398194911806260814080545932282684603252813597143374641072692803306882001157818458169813409463724398451112738903971012719819920785973866924647631376174933656450558156180141099262414137778730268052963791105240008062334587670367103521379269537787928408153734022648676401522296810182699130234371604607535789150889330673073099191442073621834168680419460042558353431090742979479022784550292640716474754966059612962350497749686833438073769257338903647656935985106283809794144860374918902623083453495132326409017078855606179859539875481300643053255691041873427913788781269392727624259455642826755973039803224926837999133768686626795751564569512859312702082230664216575912441510623275262728101986833816136070718562756777913352634755762379261918008624685927881118162410228704094226566231711140084743334661840458114558482694300779204418985595567888043410593572011509785017053079382021893338962102332992981208084862117081322847907317492222813755295031839957913419411936215619255452961091577995005889003073665959200744870239107984276951882139764109532698144429340080680435570169328075976595440418166785590827682425183996607089944094782337932751051034001778557959679530589691315136784262442848425978668260844504212550566895700020796973111102220615056639228167564033534519947052016268645311351659942962270419418981148637837826105208558615985607148834977128308238357374103024769034067326636241956695371039423384768122284583998695721064331455279250405966427689701362632135320228215613687363439571361250358080374279197985713758017415886749137586651248991483176653550659524863230374302814570224697561694923232731861253622689388505113683125383547662724667095323152425126592306758538817598193211468439661908044434357317392301060042332197263305797786154658547708762226835858694926878745666857841910341923387302969403366717632347001248576377858336960163288066340142382777951291793803011004258426613886396865198335938224280557627893960522489889905711295161959081651268987508111629481741624209325356761214413406741396081558938039460219677076944029825263849722449692998696278281914690441592366137640916899532321412193048671593131012425609718412478076591297071941442575504306608611600573704968714147031039085946271573362457017539941296981619614711937071355515158595766120265981873518425649891738532772296519162772750046518840826502066671091977176037594196066659351050927659826736229933098711395724039241712218541856111460624166286656829182498360373765380265405275729299426368592091680651318426513499995678321528257917582337888796124829890542330084306406977682563675505289216243166621085075472127218375254246923556298037614691399490273028142387703970248343248375548730905095710378919698036777677291184414073138165332206596545429681022826097439074314359331222633121545926690354495813258744902574236778618749387750631664941941049033614610585348822486394119000410069988401345229363368388483475127725962913011743760476441792204090375167355776837662546028068936199356773609881675538268311824786751545921718452848701179804447495386000790693216593051513849074448235787990319500159783349345150998903406316774209497410112116562934628143081084925628188811293939741824244039443439573759321847434716588747362678320850518874332404816007688525781396890280332290512588743767131409777671455864895805569357329856619599464511660985900498746571925669473669360079662969995610462673211310175215687892023927901335128280080960681575624048409296607016389313219511960113356522526430524599488133311779090795694395228316603092633609378640874237980163391087881605804980544077307225109075124617950200787410665027474176844224106946191085849553336819877809933880831584587370502665688919574018618062444506343284975847241669912614715618543947301833696449057613462744105441107164941984709582732916726304570036131681368399402363096809176019340523804667374017578104469534568336520486790047158838256796541845930065639142630901325692843326101702393670264299677340163814044230737224378622299080641563401100908578899598317680861544342356334770111883768367778280122650537347838806475922048789687833086526139443784465336357541657055936921025886945200633866551312354681469931425906773677166808213328975211959522266299492688254520882351315720345051480213809754319421376628882667348515647651546914565471404346338617145445236393467058620422834554042021913897392354751105314283617131042605602719665646375042318154431291763386393049839567823049196071805052750504368497853747023117734425868770970821638856540501202853093841535243154151628537740515011734747337838861657445269422099440841951456579760791205238100387041129539068601997279721696285414562659473978181093658381903129171067292030852220519491442160400906669270949073088843965840381367813842565047446200760742865136324773493970578026027920079131407078151307547223775385995176723774976079519954712302304870592923195707082171943539040885860624421113748839255847184229000011077538198451111168735279799222216018830557131490492853672386497201411545680429862940081787009750091819769320778771383599068626403256164786249491704438043768482193924469992429273523632418155337042951911585394663897602828794902452839282241770598784266031955504897080990689044074532218425857510455758884857495441987052923810080028774856425202319641384078595414855131075228494888278076941307325937355305339349427567474463630827893622040090279280508080704748195193746095859304416108702615509957955379300124365363946525037613807427426113517083989147166749863689906754337502887896135183934954586675798343395975695535034526123935373206746504319401093617374391525316872982934647287498793180259513398031536746184368418617751361753190038144466433513049121712815449117501638569455812273738848733939721104962293952263814773640970457384856331725182606259302647746849217234441297725915004994063924538091203462189330387806849871342412767153483848747453324248718295649712456311654230840324564788021725097244867970364946937765317561990577266432115698043612928760697774810149991426582804572344720768030634175911520158728878083895242500207755592626890876873062920874310631734250593576528028131138751480464728989266989158850156228973748990368737213733994065612516145346742436548119020524056940171519482275526814797968582123978272938567150645382270642198358716642136126835175776696404575915975388143020153564713428787729164013932124242485707749822882461794295196139791015819981155500909101085633919071029405833486813424655536321685033326330901045943309419364714447972265819718019878746667872384208543176862919493413481083543893851505745982735706114700681111965629738914353888341609600525021518747159806910663267699304375985867533185595327183415125349250687815813480633027210488961769067594776300383917988213069404273637906469620461778650547216054364203149066880459423985369009242933876913560690677434232610649080055728066341667492526697050393805954925185210141633464411314157638262412923911778850130417317937023637218687607236837051759378544808593928731838025828270539441004451257080556218026694680962599734656739918769757376155034243627033805350804633702660104814857686331733803022416673306173988935510083663990848701445922272952438701805577871321417772838682214850041544373574038562064929523052651375256784361507473214959873133476152481664903213158558744162423558663642711275435847250865413649495126793397459337348455957322351964861261011911031227215589409509027981592865837791327907387565356125021498053730763821726527399601147546722421119325694035616777818803581078000743419472743677099912175844782478902313637135103437529737616124882396890702183339408932855258350318566421066058303327276392814924432520458527633751798741626782604261230789233451554319014566718136730058122378920962971514949252554571354797438337126099612031571267258555687114895643316463424322484267849497795940277637508216862394171317942179807321328437286596284081579461397817926748770382482006880808811963466886892958646339816612483972108479159144358425640434323529986417191091486521950951044498656983648890387227767920227155329866701731393068196478758347242255818981004555637568762069409454573866361417264715332698995887598695285402304274960785586888744581129426067878613795777526830556283979371564607832546809340774825413783405635154600620638883878207885820810026324399542440642002658712380423515696112235300300157627060707797567682453873549063185779792583409762537712695373764255775663289903379827344636898368455465427039718694324827685459313709661831738392290509446026736295568240377671266158802911695795397026887279176954256496968432840978722989221244817980992915729304648743481884961084988271328672042313269281946978217520411357275240924254010273079008830861358194770549256391437676151423226915461254764878169026036700596216463427290031328926858010966288964404690723238101364083976938770102600228681200635568346511770090134818204067836444458302573506023442427982445859054395562437774326911743805647495049527420561102878429000209536036002892814956016381186292676261158430175590318583197237455728245876563394384081289117591296690597279334121782168800505967700217522014168844661117780981096452477672816004791658927635685739915548460543962473468226423174755759545000358354560474733548165856561890540471872560319210066216796774918465029600827341215897198485953104228977805145558745705468071277607331787645163386988190467004254393284063315654075637874647545565547409666291312569763249488968726494454796559379346766185570711158708805584215292515221488965996362405496565279081090639630480909735097368204458566420987363025327398009486762707845800444508922579961139311917294315091351333494834909242824973382783630894700564730963019200739516058723091060623231889332815683765453799386416768902600083369536600608575522625448934401854905436358176519320430995682491977157405546748084920146701791403499268295153677801706050303538680962555587457241314221634161843109464850601058144296299194317491498281736762615966660455786431906503846681222061807531571004182723472447932386186788184819075922185213688226482202189418598756954299476804935599125025520039146796327198388022307429217215393405071590822926850499044172945468961925673863367604025217292679278564134935373042929987460693971056394261975641719586050494877307656561492804846524939298411028131359577133234532287602255857784310462466899195195257653783332053832847077171246099265656558917997818807769454120773093296691750556497098017525799531707228890516126836400418051168518281554916930869310760065390315976882421326813749451987174540801308768493049712556374582620491299691652190704375407271587033944676975059943917248720493197653552042441956312785573988800873205683912895260400266015663914653124954742063346120717781999304244014550776918829071383147220114780024850799235304689595185513444895073269214814397849430114030185089385181672215079344269635452015950380730218156912042293997528426734607673688824000399361422456827699502395125385010752353249067437568627327197366768617070975456201897225488818628090455044843993423833429874351420511999167976184876418550543317768071381763143640255675846986176754675250498410531767808471352914946818639266401918599225420139192777208519759930509704908504059596854437492029869372458315981473328399869495845950206767697418987792155983407260149036343843701353182662398787164039839887961001291162959735029938769650072758841083416004020449305834200964568609678748308683162032334622039946887553573142990863619347333646657744981709045976439953392907932190341658014213479135761396976073772583875380048091236688038404829614483104879755557142805004798103825461749969617915431525515792053290767929034503817935897042708094399835099303922329872692771155495175242171023269680603861945531651515275667663183634569312671052773308073968416200231521340893401376413807590013024991274349538297820769517630637140045638796623806470989700510480720718230241846598750687759583548763252733698539361693260760720123170596726253087681666230839440515346275599324786686383180462866336590018502322998992313667093709042564003629725173201340960769674549359450952041072148913849688794899414327842656632954870887971195027793577860997510358286183735547072055620990109886441547159827370181790055167896213960033221986223225680331100136461636031310649097039703917333512628364515611197441823159386991811914545529716051233710523776252908331107520641225895780855373089696379244741845903995588721730760816996664045771911611626986091111214686191605139602323622905260917014376527618991732540715722566873659397611162650706582816303153787365747967277437592475560438351411294523819550718792221702145498430235465408722970758170568451158490113114965504841947199338162193789552731411556828502556107277012606371592156419868472432272219129809832488460759852151225206993311136752930055919582476176663738784646541742779711194662921065493841506822581316835525916759980936021862752593435442975614080695888274590729291309007691590669075395392454473320625614680442278163171657807584896337526313933835681216024281615357574786002516135792131295267924579340315781547847295274942669372006174191951038059129432924666276642670895302264086156863968179703206648226987419676729644412134151012480011090610913202465446306730065000599534887705903731199059347511593420818677890511409096523450744156114378114296568907682404446257713865137849409777060038712007809914361395893338095391309285972596592456401658073450390040118483950796622506595975975153677616605143271814060029415864334751903369003553906954802334253464332080411236081685201316189446867417456297684147544509944523840118500169682437969270370739479720444453975547470276288682336193985172094263831838530574873180292763889301327487296955370492858816971373245273707207011846757028713542127719769217149999379042036786324126880980852707132113276628498263735977604446515906046638932692258799149918785276241754275683967645805956085972440786008963527618367737398444651418201656612451178482989843114397030583063463398259426337126060844100759767293164399063241950578768495152797554743679262043688507605666885258018188815347676171589237349807260266806685544910690063516441344439556083565574574133880590719087398079347631625167619126819522662713046662734056349728744108579352644181087391541816666612347028739427879962001564464154756397351738247187528785722938864664661642425494532287426601601423623548850819738197332471328940833321005788045818469330634005369209257551493129564650761695023020471171099328628645153129411610945198122269149816412692103510678965195758311052874679648832877217070128411743592751295896861064513198119972938636755478142968359434172740217568141181694400772052914201706051770006643228221210883879809495080459735365928944647328006024211744778105510579793834729976975416538681654530520153577311245662007637935634671846214395548205204735541747290608726995635873427694114935194342160933053055676931691285056146022795970457884399512349278344122837773608884813279529084898951439221804127838838806344451607804549057110273463044428953354215409397297344433437968537088743693271691501107438882750288465578330684457881444725288230912232389278291280501730033033672272222725243671745618397119244303488328924225079203039742066328344037124400486875179689887663128774809617130758283544864992700341621312532864424632047630759673172039403879031772404495753578396862659987148786187965186550773074912706338256339170209087378193305866879002371650015297108068566698366566971232064426236172376344168340256732075719910476682686805275092613540847429279587178554285081272517348243474105265782005529355610883835580385438123364229727997062159654127649741988462682153654117942925715397592517601411389314242971200000569043436494312141633230247047154164803572898218994210522328581081363832235832111646602803498891484914281225131271499993770172019912552086329192437435245439933786835637219454240670631152303633231151402509271519030367504347202033958864287016251463289464818763154410282137123797870071720211928005923181222015630984771200694899966367638119588714749653426944320961699348811957176221364746124604612692129778707214412639169564473456764569644931179421201813188554679904700079758725282095796899115833431217548960576995002878021831771759115503332275852583623691601977317970758444732017829017076439473476278889160460230899905108156357747344933518860427720231534290606473119929296076468564753955465897765322536305633715436363694416083826562139186088033599108061552895508460973320493931089261677063126113530908079065867047440503387144044901542568261655677902496238375027246726696480058638680550750420078711776013069851034542641070797006080949634899762053597121588994046081882045173746308428693790903340842093873749412044338745773954869099125891512627951634855733910791286070685874988705846886390124322076846022919920348870510036420408883438746742296399502331571003627211905711051605630955103991730570184496237514696729893530384498673022563048834215195592198253856573117034478423911206120572958772705922993996283459539636115572968611812118684596656214617554114085570137407873413858058547913823789181267322989274615431482968877432326760835057624144339944880897184730640787706290445137557639567780352920046394537990826346593522355193910845261293217421821553399717410146830623653470491930956609610447732329203610595879536015055760439737131752368215560100942349660004500893628174059432952550002249139632967748243168683707625613402412847056999489806566385277884970010087804994071989010532696949100118010289444962049788286979085389514414601794748963873268210312838884478467176127383187874799454529064361631322047246168570676100663422333733812401966459888720208090939815276912068932836828189398973541940021129966796721030176357878932702439548930357836242890710872926164859646806255637878559703308982201040809922348250735795584416513649979796070808528238951568558787220820112873098464494321328301968554176532619426666211758079757472154907210588515775957571044560847383184353238155936929696648445177766818204246215210932987920003988570102607953140034440025852039231906741951732910694231236026902030152197773188950065534481335631293027185762708865528374365048257677054974337623692688785337446180826829168603718278383767851540151433570743385135972398386954606982933000424556911260074554597500365925218421497832784855981913659722905159560426650362842682180240494005543194901527418883265985188240750098130552994493962030153300079337014867995693209735063440439252765346981664681076270986197927582855046825864379529505760557773380042777007379748860234071577936762156893897655924465227188356060475217434692864970502342195157545167140071950798504775992896975736524256118929738671358735337354543446620564672328492221949343902030597095741831655864829863436061020666980369565533804621025662729045303983436244924907597376650003673175111491607959630189355416906435260320322749572383412025622350245916532320736830298119106601064947720383101057284542422265476872449028722226103445563708445073405038767671694060137420495376016747661596900587150322750336563506261745115724127138349464763581430263357340508619061717452836485569504072455501806343525419716937255656454760841999445309351783462415978996727614697422553674417206132531844021964491631967872180873383132896242284651681731182296249155393748076258218334997108907084188951965754542761595221054017968590075098975727522257234185525146450736590842336543176088981483450205538089500837794287192139397909629690589166348085594831119501937282418775376121545790873882009762138579208805432239876258491395522007476465954989262605342120822441850681112322701832214191704444457616185159514534658508935333778629054310063198545701742622726014393309355780499310569328169049908729409006172656965489085059284879025773654455416951720830711556458020138117245972331968340323516098778808145431172347896369088277564603747697982969278206619941913426274041446010919311425526671982402306744638171918637140153182086468547665244807054387876855091179587153950781694264577523035743037887558574401840572513492312230997341887418825117240459521063094788346185708899080558779761912988397178249935270503783379212384543776060209578086624006486507844688771561609713827592974514190895470948944881246855223118162615117110896967163453889553222920628109314732680958373657019098456078307214817250659029377022558321687314404542757607391868549098585896702307234675006040854942784860252760010523178353063748994241038076455329602958729398736671410941766123197187395083792165723439228756811021198900765415080175649283931688214470243425850935574062945353988971403695903635890904810795954892584310977329368882707942095198145342633429678925288098480926132604545630188262677120309621832949730310873230172710032751607645642665876420862898039993629866488606626294794341311817487544737822408661229232644796368424811805695769235659791415783875945137242441110855263374249265636187355195822660743069216797780570600173514325965305643295199805235929445208391172599117682907315237782776245599550501023452944630149701660079564975044000775207175754954139088336952532750796918608587498099439457992604406604145072251424990977398965143627910414625662902078667063785658234638451445983427806674604959334133077811411370100279070856232558019987969649263624362727534481215822069835867120160886971812232242200035325565304209635341440120858730952119176684425431172133300923306137351661307954140510203913997710556633972113227753133681874047030756516201618442460863467188030122931375580895958771753272953409807338130319541072014043517350388317629346229146962830505243890969978147228698267522244205832054762573373622405417626712099705585870239646135370128803140066676426652701305057087975928864422783354437970279005624050844336595538290449669532329656760979946906612038775455570985479872969791494525351491129120714938762370907052804430675049294524763222868945279531033765513650143905152186446710651783292451880733397201941924124822012008904052961706944854494879542706562877512294438567793084791891008577053705620357198322232020423189285648643927954284686821275736923295524649249512488978149841965056205278996634226973850754051886994560732256490833783472637212450714779746689406437425900044889707061881795934585821250258951499217013798810258261295899241900574684311271997041003369530727368157566746554514912747449751055030708091726604881878939137818910587602026297722943423866139243183487445993485157565389023706800399230665153019057754475924616683614129933693819213187785398614478615131011528640750937157302262713344683044345335968729465880898006234461830319131645021302884375284454262340818221448615003365303118000961428469230018407368219386254305261219719122097283121328089453799122493547214300577793699988717278511447125482188307523891780923580264406057130834572948235832553750669952083468046549644282924917186693630434013937326220477890707668761494937462781779547080906934080943237950245167489260738116569069429579541585309382837556543628314179805029736973985277552345267611181824799255892406442898444543654455270829600281554092949875339412036119806216021076214106752558291457428690280058518828578081100512042966675015798894846361284000351308491186032330548284259413378422764801635144828363255484238153717307917410631911312607721101690475109266652319501607680966544020886457238550968732044639110793837099638827172851313745096786924404255309691135561867742484954465843156665491463875025938000800492200190160796223442294403482451764488813634900240656241501814656516414524853932901009226849366447053243149667827533322988657459510544945954185695853961520950908896308413988878528215370515391852626960792500137750533254088691498195428031492081126663033671488645449497048573751485807775882815967499935086540247342071528317347963345009709980151648381499263829572627532266154874773613683212868972625701638096074472122752806610520167002343205786353095282459971445182578586576638178330243532139943741808231359778387822666084663208497365027335124126488247909352362425035755921279002918863555939474440683626078574522492706461229489821679850081885665230090882327581951093288451676219722532026552884098720285665015946988949644804458800974112100809922308543709378493635322516944299678922017279953122717836523724099165961717758755230612784390497821896935829018904699018259727451839459830350530513708564658840503361664853983470092623764379959171395187015247512845129469356867850526211536456627263814050637413193002068185645560801881081047423139292939754125604760992530006941352855273860362788769881572237682063300969717208531835084399933692047262596072055991511992457498188161916419545975765618020933067510277152286071053668798485834321870656953632968039664217922506186892278592665423005602982479072352764207571959574288109490093318574251234322763805235914516814219238845371858745831256813359876055286979948112610974826634041433960470863323517730900630130692893165314374808884408198030748077701930204363187738076000094148846131299611717430597466139043825948035126899227364272999204794120515521064594820514256288677752834847576652090273192623541797671227936020855189746191448034493686120052578872877086692438246627686318084236498947149051069319632895005928875306614310056005330763477803582763816964201929402325689374041488942859442170911867542638712685236438683804119100533863470769716800938135639716699853849209110402735289693643476439068543384835032175430256378798356242397271539215312772581650101983426497268684871909163216463992641175256081731588723124808526823696880163080165775168839271690810956848606989220964492170506209052864792165534312456682962257168659636567928131572374557962719447836649850071788185160842497361271425624901149783684277387046014595345285666402966428135615095486168156420583123190193313167069779010767244766709046566657212733274116311917619355411375370950011297379890705326414375597181535619508011754010574144495287045132698310349429578656092225842008419176327137442395630568994553587892264600361944174416694753924119369185809307735819549779967079750260951819785633511091608583336791901295609304093618048708031814317452643269932378010773745367702138429260309258468957124184892336525958526553182671030040237850698203238501356423063563048144210936587987439429403332100683783043161247980077362960613540776811746510960783323477884910452019415602247463255031116604975627083830233295734906573356817506545594643027638365488057274947450461263215204017962758046642125202377841673639357722095556295472560476198965599467549953669879555583875374892786020624884156632387601663429273285885203926055774488092281562203022753068440613093641252895798606181215921073514110540141354376549389350212086164264293173450556690716690626475044270780340320090516209607735266379376290463496801931125048032696410837902473551458747623332391821777008780156225895696120217724127439167946745403646154364425521637612514280375882664599117088619921994228727139303096691635090893082736510608274820198467742286406935659366855813114727714930263280346358952696987566928639839467085599896582058836559368566067043983092600933251995140880105830553207545305191119760413652895135576345226982024899731152129961876632602454875007701699226466346541663004229073769614630675620728681422167540265500421316250351492476239842745359350472790080065146277171970519765199328758562184504012186214773329215844059347566766309831447560531137225714423410910595572729111906770221822497935182886623159985958250780696794438468529611875701852676103149128427660874693541869558729302134713427535105924403130325532956899166380138183234397447702086338852790951039067554656123985678186742146873687923657550558254851534212760506584726124160303253063681284170619442788147160309793075931693215685444500951354577244182722647947992054817600328302632562070533498747325521302952102963842870695793613251307638490711090750795604898729736900017156259314470283008782236204306876542596982689951748400203516696655044402837368047800483824925239913045144455554391727004616225550699562989551477417617569797964467085966022352242830744302424315500062468077621048354572242447531262665289215400251711543277095355984843397607917576713245227135779476724792949859693048209610458677920290352234798305662939546939365550507750669758230364720244957440100209506303931934081011470036598915441033240209629966775332405879511742514665518734640777578361642829690560477549430893162841908583967929385621718347402411309771500922936707943958278219911477193837276868016480537388132533436224488007111473257832488014814344153110821006538788330844115287444026620194508854200319823321334566076033002039599822832913289728012015186383677854107468362783370584592242591158514761794536493784064595498478506894174113944754209834921552014068993510969299720634994568015443868733674153854218649018510374063736461205162051290072681562207151253399513232166867880835524883540268913887452846888114377428170629651238023287982521675565622692262428810963876023502606854594553333954114308338380724465557202833537918453463268935272215026924428160236961211811356352635548855155311659313474376614588723879871221273914887753755724535952365696340088042885133951550454008014785421149665858117656585547826987896070729548716328925376567825996005252310180881842139037709454689899574657711345360550320581038948830114870975394408641221597267182839317186725616011866419345218227120501268898505590677435961882569204072141331538124967412389403530283583941767780099948066461487483714459329523640532438449256966163454545778034868682797457561606145151003400382843238552945597945785624746142788893199315341832723457939364012443363604418656432368192871658801458107961459531515673964845573722358769140458748491764603823180845494308459769641331904227387862160323604788431322271755746817762022306111233117474109195645233181375550299710552080278760561338917921308239328252968595340104695302453018741542252711859901559401646371225603457700976107432231359749240445705778126636794675925253415766047876800780940033832215572173297756416711998207512331261560688187784597903851240990988735474493078981119516384615172159821676697973272386031141276848123357848469261927879380784092758652847021379225564680646268347642407314302790622694041199899022170669479641703536753750568861334189904884135401783890192001131320968636968078764085385134979679761672630423747061040629282524349592333503471715517614108884116378950398570336694543752570524358399304406135159236890517470625094199319341062225238675694137069125898968708479643946689111805714245619914811717403090987156782614440396003686426534357148376662842954148959684717151251494230021941061085085671514456094630704047980782184612988687554848505389607016036333431297323178749914361867110692854910372412695371836776680954380417703545688076328779844738639400661504974590656990466032812039706688728719858998872975299027694192061994999769945790692654696860136916339971416468752174400833177625216136580797135217507392736312050327799740534431087773581407283193441619198069749648975675576124476206957975296254354321625105603542790939737713026362539427054840178673421480743878160646304457010356681752644536695128815044645026961495599748663837199379805917300963384402568424002651556089993662510381548223302770011240128780302899086363513607977306183176779365424680373113446247210730832699990281083123054246236639266367257646679812622893230919169665739430265655492417562691096055030471030972618320107586154541454703679434631766625796203485743737105658069826610678728883691623557435272366249765756737721761562284127617677065882275035183364249358633025220579066429151212527202318202519398396171928479688791456120848326132739225744621369082101918122685067040135522820169890690271344584061182982635510617837316899372615941167003208834023298568724569846465700072005922925983153221457559325239463714151633843678695220422950722332916985822405096898322782831249756415282522257187498972993831655914594618168922765987326202099352273974292813059265586505076144043485505207806331785102475103262927922970342367570084978781583013897005944349896148801724109965605994801912545707813096170394307956092308006769958862301511574761688711858448581900145123535754693471105605726721953813677628962869077192694467005189505987875353700777492034048817803767823340890783917640304469190352129894770561934723553308079240360783426489323529555416081659862642940199090892777225371918050084311045825399370811707474782725031163253175268799290364529982198466582388538027640417495847567713927220180793490819871052910248105340111306548853899318182915457108091185844736026411198479454220037729311513659632856017270013326023615177114630773583890587115819370663969693887940463629777426964827446968378478986159095173580830853393989480136421658824224265875121168847952198041168057815513561716187521224042252926409607718700756805831708342283292901434198778813815700279130097421776864565679199601002346517552854699556705852986714114568421158949347690505537492376217196299100423534588643332195536410581523161012878428391419627652326631507288741603024774502368454106125214975181200674370749648037433603003511039800595011885366865333382638919104344548997705841757476935032968246218187048412974079050152572263490063627083186322672091180057705221719968693878324113454881462551679544297305587227153223876191109352422307586487340527328947120373056604328252083930635742407549362107906470910760021320594797751142877041587550794376306852503558225092544907658786208911845599986418499491699184271872414694836244651275489460133887411626778632330110050156317836453342753449066210166464612727915687212340858914596583310919308437702211098711116451802601709757637908986653779946348969734521362323506777923648458683808321110227788727279587279040309145066128085264052810007398757361357447935367645453835826903784935520798962014256137760532458829518005454099770067133263156204972348880849860335988317821037886516344950676722111927538280156856177437481804177040971139347223079432559494576063779514786950993866757060736716233798387737356342931373930762899389899755402719752301467659008254980425985197576064540534148375626777406064592158300038994972035545492933530708535757343748210874005871083894306396659955899673831806278087799509179490712112431877863224699250187895861243882923434400162356557086130499677165832728744516070502705834571149592451319610859010712424169263690792135307181115650360684715614690710370187002291108650809136794556726414666132037427664070180921836283392813740899921420834218632168665582394988326463729389399212465425745132170005434939218888947070491682985125442285559593719744109589418182258242124556550289688247243779272554336010816851014028581964027992045939271484819175345954778507109828410752821131847213889127420819565830351775116995675322782430351970984436135716163481698646256728144717191170045746296008272360244016381205580101040295028480722107436841370121101046047315335907971923171416155767508069621461772095757372032701339979506673348423046088972115717847317537567109761857491531560939824059224686819020183042507328596550570615926057977057530942888071303458789190812583759910926600479034536841463078071874684136213338440622141440950165925104826488641951432519404861080399667322041642388125619536763062045950341658847672320599334488699408863538024336575510228839204483448872374245659283161079314820678200963239443540944181951422016641116388000438780368552884664594391788323535176598231628798666586300127367218822768485639362996270583255020057702316375319015322233977308827019790786655373148448564758162436676114656097081719771156263835832200017873374641292049233446968601148341822630645584614850132811570705264374543448456278337866495090680445541748682453963051191406864503149558165600896056151511647481024601741018992982998048382383099465328983666026071634357392263292923019003848793726270737540530765497648640145567766612501417543776099675884341423191756528272338270539179552448521182924183218451904364510543262754425947087262880724660562324529892756717336914867293246863860471252521394624034252218328457443972185100094087462464687316175943169951248228240948360303406972739688195382801867969407544308659501456462503078452602363705076081381618541199297182450956147853571685763558480072431239450638633833073829948311170925286016330254420733315743205503762841590147558584473915759448604451582682813602483334216857713875401099897763090649986215259777373183877550206766579949073553205223077578135311491856579022587970916451405515811371711588549161917169300448005236540996735753995144848692833373034202425229172053291812123022165928680260090643405682806042346050555658147418219723312595942599850306523610462868637260742727195615432697156257670304004067017152807938089153683886566721558109594425495285109828146508555260226088736911337994328864942505658818675319745212426042108543521404760212419849614045492946895148624461480653285433436370481083663553751894930328327448072341128463393625896396976520221866825289983832655291616716502339488237178584884527602600610575222562292014071109509113466690037477472262455317916564318908766274266689686415271806765583857299859127336986617539924348523917531560467051742359757899513406155096688234820840951994870605193413447358745043647104025626689324601647544251999785726980363962094139826647063558169769337854952265462422819037017996969724370999226577600886161258257379788753148453633113823677848093135635075396499515609391597291648642756236273462137715153950833562347771079058009942834814446937155185445053655707655937708962979138415618630513757503396371284454489986084961806634238141453802784781350516432893491924802829650831795229377930943439333513791108046766023245275017838498335068481781377268024355741826921433064807649174166746414237918639262122447803139899744999155389608742607558374468961113024664923763124231448556195316810666102204662428685664376755755346809363969497432932267054332696689190248938141525625822442680024637359728771403423563136892429869803991277493266070549298280101474625740934434016470083921316605782338317355099953141181123319495894325248463153064202600636683609306986678312055280488884081727224649874770146688011848132728536077979464187205954629835697072257461319674441934198526236308670385407552532144901290384467576684640477400587787991271317311808500371974211547229066876527884104289065729742275279866828857845267548247053408993239812530672805445527531214959777630092917557232017307374622486665592622924956200599624287949218806879152709003180009257981880220757891804621691983444086005482649566586672017512690120690181749596826711621589857945949898604530009429195901656378288302356134510691767186066339122662149101372728282927954128097154300423605593196522776521911489067490717646257484516394214949059566105877345103733280788809547751144199593072323591634171350511442769951609099487168262918016691503792860586761047335145769975281239602863570264749576681035213635079644083467247620174427544775627860711206300010240109461305616660767819357095225815420028257185555881281832167883710234186230547054954597409398020542607077883155158943224478078326403844478782873115435726585727941939780496739644546132142660224496228574650304345017185563480503922142165946034693940388290333094687123818781054765828296261142546931961610417162216291093472661229655912126468695271280838827902190102321316406383832596809995290301180531551770234657944333113693750256080686452720561213228119352630598133194833244386841271094081298116943468878642421207312845144242990325832961928873379282326601922542992470785725772078456837640390914789067863407044453254300198617186097941008800502878798873216480604739827618344218135478839074415807710289004379253603040588903250235709829116170346097413079660309511224028751645027295486180528612776564944889321931899110024349111702183095866649484001322014826332919934826566932920610632451197023431349883298943767429407036232628721448169127888727527800981371104209838151690669304606316321540147945180691426701338249699557017210649000049825558163228994687447846681339289883675490264598587887266691529394043878776066432182874412966490294861316834368038342413750762852970955925005744926203447976478529658795544454755194771094398479603812500102359352658191619496436704087541265472468292072725337652869306762822101887701042118403171982203968522419326871402082285099855164702612308183897618607343043413149237532774150016583071172028022325967255954032843700321337386473212772177449237200812801019036994766607321292844460173859288529975215064051865123389143510559940175231217611338720982346346311577696717596005745888006150413756539967249856965853680439653495037819560414656079284858634558043346770234692994564707752243539233581796097575731796191082811631061437827773332409660565788592371108719602451466452318559050937393415236179332041236154095322015109900874471076837003227590870035869560447816226250809285808646896709075391274360059587634421734323293315435929251243049017954375008437924291524635279983406222585132976000165998603391061260199050659445225648025709278670417889090745011522713945888674830088496861947442213195084130375619552566249357694248311763294314608199109837219509865168445840939613608902578451280890444531490849388805767696837965408026372910105520958946514799621911192975903492148475615456499360261564904266987961955507020205491607900846797407110975750194011845422824086831434128288622656923969782701164136524226022905094971134854623183098105768715909845408313801859993590080420221235454267377927486870378968276833998924797789506604471592022836229462726236780156438586253135527975723048757611820768282848153440639627569174918792678593242143998702961816632151630489387516553597254285386318119981276241028046244452765901665272082121969172141358582040350176702708193604643496978603194194694704820020599303616709867896188297771666374698159235264638834752138824815917882208181914527284514991995295843132464477497808575426806451671840943105671174596748143295464139634780159721057141759582855647589735804221551441046699420539188767037065487887743509361471540536575335718921644504141944613442671547319931437147754872499928343958863429273541115929413253833443226378428786133343588925883179720168499360764920284676849299046217653329182825151546050339722381506885913166265506319351057292315743620136774086692085904515812003061629871041839489100241392299193805005562251344085098208521533061295541539153403557591456118230958365545559030860604718374306324883155210446611088612976672311402924594330232089033666750883787612254635356584265111044243963917703925545759732317514668040331459452326221701904382350442711553853722400470498982564050447324106769476201006197054293713765375459837642800076961278585916252812435103194985945447479349670969131189688339143255747410813018224503477119302664529618451791300533452884800658052353214738682007475468583231290103684350555638116821541270652875154598836765145799839610680729706005475085584491078981422906266770756753719839349442336906634468356029454324888163631304992466748279639405691368356804122764158007204388134616039136701728044545455797756324748150928933778019995225956962661680849208015896418046424126663970131468968410600116918699008469021961419229169841174919031266082668190942006657524367401080556324696945741653598447092572931119695697643025150080113055195535419175548351760850511976001444111104684791208967367508738391504036044755031470111787322313190913736901044001314197941948628167065210682403712249944330883661267198061884721050818202892125842152094924461584023449030956062030979907728839330307037118002214417615524055263930325566023183266376607810436235206662970592069893581072738903297251844418388406560559413123540883768763975970838603436115041738004724561343351781272015519172115919997733722467275280703047347809524418325961867110439149121839881140875154658668550947686293852566461407472561551344240151941413298916031147339108132981110513556550396180789782697323012116147084366066707779031773624816444322184293776295299700997615124687139131899983733598303389013834530625760364503440121855237994791580448006564992695633158016979805629268102564977462899557372176782974635360665568284057547252113752030161602181422534759093137067355964165523548937855319434885314633941204105632296232992939036886944728143344384778278930532753065893250646571193887693403300862738422952166924107041740128435059638951221397125678653125800380015215343020424770794847526976224544252621141328388270277969475875660578915452850585238890723260657916633426671397393741457694305614457512621019306765632898371762893152412473725630141478025708007272031203447954252370754303729485727224391129717836010652439249182658845234211064142367791415765381939511483663492112221949962173853898780806213187893797009470861297428276541869345017473149406950442957825256893688724814172592802892424146158473197780693144288192523585887116532337864947361860654723602462877840275976678097417303902206071823112539598294332387604657759435734560857708921837901795813901391454779218840096270114040283080695092992701705639660333847243167190109044910095947450634440170541222109903169232240015133804098189094706073712710009235255622460399001922394172791217734196603699487512759823835791486232996874834464824794061450041970158496812086433758699057582898004510815607275816325131512888193580643307844523401931452645503240072861090593774636101563936160756543285198093377273618914902716820470125068251290079935529928969758879395348482366567210001467591943856676363179751442156816111993789234735583541606240146994566960286374961235677598620220237648916387970381570557598338570173684482633841638817410191863647751618659031071209789677697927223828785979256508209021005747812071895933300172627019876227520098488352567192474736620119678656770287653550583738564263514217693547657610916657809752214663004483930566621192666327320259600793038114598773587199817718011879161757837547052165815566963478881598018194292377550141225194049438228937328339913661292637301625604953461680693500342993224945565777765881201670133340809044059652190015117142909924213167062393866648354673745600687799058004041317089783558692776879248640462276605861129915052968522114683148652143628154132686776626197013234767210541824569618068009074888959041244163308425288289031372743998750061736864055318494782722481638097901824363904760599402264356125391003976056389021025619373389612734411124477247497134374329662548892729728229135368134772087934467356423897422319981885802969502662314797604929646666438437310489619894691772667226799441596355235448150748864523555002492931211669590608589371616599487637243723470897461491706502609633688008132883500113963154000948947356772440121932595887543984077022761489368837359833180102265861097674026605271922762618886078771420662902578992218901307911239303349730709492713953509862258205934011583884063041971574510717984898615441942785597410191012628112747790851887438932106513957604879780726503807058306328171378802456597402159248195853127602877691108098135667594038722083385114274594935862859677068792278847008412551296832395973565383301463822967312670522186646172796387573548728450887360993676324172885777334930960029304935248494709403877840330784462759737416171824462514141669049271265499288218693401005095010629811433274148869669551576622967493869901677517683489565845213959047907983533691484539932812199668333092435430100418767483079074858407282925800448602666561597589684877183365340155113434423922935890376262604407113787373588478942948025125347059370751994286190610414313731422376367281670078545181216482223245120777959854048649112303901149752551209865779712093899838060424140038964934503617303158490317227151352738786264514739390400831681948500324265447035844906357407443195268232805324573254283360196500556198756445966970594128806609350461535329451242862519091960703388319510598449161933341636253886211133259791476137360097559142455353698660605250199941061225080172002842418644088490228898329296342654208582247516403417106144313147960732585595162594438744323773618233306376337225667677702008835268612463680953571502153217127881074556275802868623375923412572152107276611700007641083598447123614666275790564337071473483707039185125368267714868826934934255811761559131545649472087392278398319626848252687597918227284810531328072121417975595566618139386156649871618425599655176607178113860830377543181267491436051843598124330812645300319581160013164810205246945662823408895881069162977329266771550854648831813001576572629319688327174895558534296538456692020923462666176514172246660411065622146829907234098573480198236775455365256396066551625817559463305666432963191151718858912264609358524057249942020236085948007181977945067615257367332995876168848481873612711924652103050529148408953435598627710135951442207420616144072650894938526629152609080267271497465784266774856060280160280326658908222357091804500417109279439043672706354477641462713703700169647941731747978476252523957832299959141088097988496722003754950829748998456869552934159768119684714543685366736340971886883252962648288071587419302035157659666681232312217673561396539677839925323465835482105598935284153227936677144377994791463613883238998335272509232288688074292233566764482709730679633247295037356540254903292084129772795376590754764306567948902968311836582670547794468797164703003239228116800254955387586436699196918019886252643275704038744092359504067287981105178391729746027718006462143278385495563210003252082619204551692499221028652178546638270080556353527914243729287623919951354475188021946163727198518389362028830449896030109677145145644791279931086104140644972349496534946162895167928346394789327445785012062319889514706660724157976272314414615893791735759763370081247586196615346714178357926368950959499786305819676329510169646148215051116486094511131047682072787901298310053847709428773570159168739231114905952410236209237416209095671044415652585702414219118701083070773712369056388130291691846984931463563357276115941932764112167262725622649489216119613392342394884113834297006977577335630988626335462933141194384757028976418370064302091531711394287574161222221721301835324372518201479741294704403628084777913515193993306652568371600036471400253512196325774361911971790682317506158295037673431592155756942192705992457720376444332741415539316893434406383452648370743726499206442475012938263971242926005076083253868567885109556833334277102339821120454086415997910535741762208542751193031446126022243341772399126766942413526485049136924690361587596097697297918498242148405084929741075060088036265851111795630394841763723258497230111837619480033638342953855973727310423378425657233618494104159777425516869646211179608694582424701172053138521171266349538119473235503732015631105157203855473483508626643036115639911160645222170787701723106568537640476474903820767888417444359962047687163468305866758034438404187395981842478076131413307646533842934065172851722056133709821307238452458410043258333825697701746306837423216453261494676195113779587514296906825502574603737231625007748481456003784815890983759153452658660103510056387725503949166450863937783304541017470119794690372696643243546173149957139092453396912673662105484861729404033330604153461945232369378320086268382017478464162317447149165773500098252577777134503791975579902646250155401337344096803081784741244909433218873427871238548022569830224401976798286688597947365315901690264885156377796432458181132335189147916501733262253848838453302186993350643434787665255917498525511467104856466302346212862062767713055731772415694849855521123074712248763960544223427626787226302604010853986521812878020993414846587094830575144755060589857412597444802723541575011764274510549261659889546833092661868669541964137231019332568148190636662416056121763390566547937741220716182766556357292353629980762926503461254440553355873736861504343167809424634029372013964461831819245655975206095717599852507409576672168831607276445928199558655617277001200888943127023580059900373793287981439507303153616585987684766046865665587949586696922279161379099640840767416999476612659374248165995471354598310142811960041932043449393759339739146168769762909604527755915478392297751563184174655499347604813544580742129723695558971760535407174908661286929259349478405602380210389880256657869743102048814584225882857939020417763471253313258469658616474527969092100813234276384357768399556969167285375004452419474516299985273798491164983458694941820912436076534969050229142239573252105084601114466138095248851580654542914624046926628457378318241412591095637047980500208139596009468971440604470853992197485145873038329404704717853292525985505163657467561713017998258857100729154450976488619458626358472408402224789490622320575815895956529744768824138868143194468711578101417153182756128299524417747607287381981503749200279689152239193938844035313973825195853859420787996522788468544100871507866120756792957996216688161427949850318031228971258962463420168986075004143025801966463065052418224162510537963698073468579401898218195021155550812804261667443026130714167296056634941682078818258180500595398985225750123497401202415581192676599219859177333076395802965357214188331971908267241120210548978274655614582009378904514925246179593281934111752690431215804268377268805778525983040553089570568220228185777739027048570565511177951419907935720795342297864641753287481952017635882519957011434730244382769599438461276372970648905489975326085251697030923976497370828862706039102047839580672325474128328836916733196273317281376940324543966814494058144709375176435767612728129631720070861475073551277913999055467194444355693059417164162021265194778619492555297173253733014035561340262400280385766137346858026636805170449542678542946159360018461644600396565678985678565626545834538588277886156006464444754964623104973753018730788308467694722649532067248581821897780254035492657719809943087251261204629397111595464996971719941589295973591060537063380580924321186898280626416031713728831770457004571662366604441214426279074883730346205577134934894938580582240112782893109295903304865205484087088533361951157584823268141729179169388151545759448692542202548785909017821081022190325749769121921516681790517596916100554636696288907377516331177421376714427951336246147589639847192168213596754267054190117590501954744135319859636404009728762612832254611321589666989437141279814689728314374473834102787282059725230529750493624050970589714703534765794723626951964931231720131593233707757527377609561289246643898408339923945939966102155621265877900313917175187812699767575233579391223119275325215906285913285939505156137013746838308119637149293110214219144403022158390599333851410127027843624289405760065780816253541358225205445896727662998538481553610570446154328021107324377703282896750176165892487226502131692233695911763712902669787103155920186897353293313759291809330848175704221777497011275367535632067958933507340646553800566848990424488509264734599942599522189435804610031477559843450311894959869467195469935964369522945428802462430788931925285747333605579917052054972104731862764776353360743282649449035201814986692289695782912227788638881375013334924131415239224303421160926863881226903283515908110458971363546583821944218972283246026698940692069346862978097516888855449433680859592371338230512931154913326507260744277942607583832478246442918403587519567605383889639744646170503622756557926009198211263812015225025201392458038187197085117112910923592148259836366757611050692274228896926576211952601591347247050985097821722369918798546935012500597864793797289825776027397538185814796707799142351217051164613798425972025997780465452959631916088491450146244249953847446040204710719771834982959321969158752228641879667449193582662214584689881855280096853700456275601745484813537248160535662065406904520597354726519599310023895355506941551137876613478511945939959844382462101922222575258709067113523441958721355651990382018350626867706359519926917303199490239669287859955280965271356517523309085982812037572943533121007726380625298913446303860696726173842153597325226270363462290575883943109077309917359413557971613443711865353101508069808549827971580518192208590479635131427767597507074102906144743995925878662732024760052139666439964703285543698456201495713990630820983386926024884598277638635083756782225910325605003117001951168723288067225009583875351734915374134061308235722494629620099142511701072391649723638300419817022511184509480085637673800484972311120766757965201522003710854304333264080608328152722029412761153524769974295600567127542164625997359796573234971490737820444688716207480187143131391221895716626579012816688587284206457300805197837469671982428575329966210183676003348757933445041676885052285658274176162863990413367494036285951894801234078512078934161762617294568175496198125560378325810283328996223392612065432900212378792801072163161936646961106323036517494171422323698402481950168861244484635366401694291512568462412244157623144453897187612525894074350587308522961750330382913442210332128441510397732621900933503825760118015123676741952245369438845296554583583943965601826860579232466066624692427143959191630256144937415296619945296256196681784703929957732890900494997481853059900589423557610236168941468283617090227320438749290212875377565734657450394540670279441900615061448722870332288639611549245410881256174693961946285646245522037683984662570101427487074487781035622370592517286739424128976985579753773875055534548352763582992934967390525393863223532564878344936583223955369274847594151127189360863349973666847027423099209052695496047534180133680789579971582149210127188279541631486890938658679827152517593774652843553026823302277781422295487854518346065064931339028426870236062217911337550052389922924868245611345097836841053823045088076701407744729310547483668808316432371725140753657870604118149205060642312528517983040431315688141192514235103863294151416740686588896037873294373087896075772437633034788145889706983279490419595607919650257647982335798577722547056626740131181438877431622682079240028589489141392769649775995615414649309809705411359182064855629337305292532331639398958811110696369248240580126240469907515601984844348553390517196159414552393931640686008270271582910346942737430415946141496847996374718199099178115069389350778159140425837216015197623575265566342472059512048977391198628340045762858938282462609676189239774484467509082698745627257957962995339220975580398359973766895416044524565218461906430561540104656700724601260130404693515450115555084176169138830802600618782054494704348358645163717029610187588479826058616129886488226605248052704364610257200500501442588249326057840824443801025554129945617241973778530678729941552689403074929107435875374731935288976454849438247272967432779346726041964866924037922447695621797196556197831831769288507450983075406651398799758239376883368698843054535075439156181362218462374710242312877706882106145229402071783798267916984056670851451351679574055268605860067942911967800807083272057217172926249822163001643381723806111691425650040433794720842950482718731301372301005870032358590575057020623295165003793437908609105771645960317756962889691002684559288595577344059505264080273779379937532185344046097307564895523998049077388528571670772179056232220211947249296109375317411658971777022483598247953484140965752641710291158364206023438303302504066853637832437790312290962214622158475660260137168837971173587030072326006513157056564663791124871617627895584936053871797231460355770079479821823971913076819273239803086648057391667486399630438188628651461500510948011575141559880663738150450370686136631933629965365438152117472132881196969793338219837461995799757688040396680740558439904721674548868988329576441002144388696850772806147386685452820559306446294643048863482348459187555520964642370926814258796208286146170452492355481945554311108502641271989520929029785483480031665605466739121372256187570408640625180560106360208630752017828996389295530085332094090090044517040441738401245667060498001204001430848045041337583238098081408518758358804797228881108303907908677037342681935842802311036238370519300420203557060879345855412161735610342029676935085999625650510336410779766091878705179477385295376019589338419655189755188692184157822945310398443537556520978071143373557857542201679434922198719984782702087267545920145387658420646838472378580182100515319490368608160275815513811914814332860766306597370423802780502340725123204030655725832994676100915881147629695646349674046091029966666115693134859675824799868883882532965819587472276162507367684762652480546966917958658450617657584467434525338152148066023627286334457295537735539820787451232281805100799809340392618811180404503537693365196308311937990632428609631942798929589371285940093208638482129080680145305396325001613888521316852018162697416677087658852598823906277591741176002457176795525382607521183984346416303190598338885140801676192617557973974819485301664872088423513207181991517885615882243570934019848083617484871959607170131791390367831318045991989898602318729910355702393072252056270670692407592132572704101270632260922544059758606320251138492464632143239039444582916159351038892649544339979782899838846537578781091502172192054057256625011817134423732911601114634114965201151751282528569945405362701335594340759887295629692193363049078467141612049008250631091045805997600462869091418011641927107291485721807281312873488641564741253131717288662511338347024248894662402243882191200671679800773737315618643773751503834994744630669192693221624442552761150858372972090484029490366472437877514685718591004981827124526841588172592265692897661738261345566054329381182698226067715563998913106285770656007412427092690466829113046906905214519327506081840695474233684226586925193966821004955835709557105802288705398727808861544928032168539386720627683416880428791847191101169490695616971199652818768598001775862201251961849605651973109071148250547286823949795251719332946137460867283873404304000427993722283450898702536019071523608615882571436117551593406455299900984442430014386214607829542921468778568773887499517287510586603580959966542895449911210554842171154698431777265328039985986886850759132373264317100158643315658062461837706251186274096225590143833146311115433342169178956095851660414180612607357555972058769966406678383116426078931677639554478334667975351440549432760369188941922318127605768931074765816404049985608146804796821858769933266671635076058465743276875566301347536444834159161243879925991236110841350336580819337683729260144366170384012942174028592184712037758908700946489172704465291056495581713138198742832641166404623834024369469708340338612823940586205803607752983890631287249465352512196972575080795158619944461189639354932881923189741749128701759035438449292139367383817483043681099989908295422295440269713849086932521640993670723740969826957033521285824444978518078714637839452182207613753483121212401827954342622785916590696663053180787167389954631457276301434622831208994200713705280795675934368042102822512319436184081980089932548606968086058771661299937689752909853483439034785251090381671257555739275578391009692985855142889004783278077015068567226952290935118651662910624968790978370532168244366521221937220090933150922892061655213042164857431479157908625308024383586357714790679409028219376010896905885176572494482397672748761930591727535393756724682784445531445892806509630524593647440137748241330051294784609590991406061277331480544500303551514242076436160291329852026025214162895982584610549212035838725915910216531945327401771646268789132466941890220890036397721480772610165064909928050624819968565649693116727395492865158457017684990901712340016256837006627519770618325541504709317475507558288418778984878850331100281821482094951495583975320099803791436863703761368294195882043542190123290317205719064882239753443506618703304926155666110951410014779185765850757883236673753595254144711078712462111147189866076633256514767526443901310662537390036839559087381201071069488543999675883126345162601737360774559247867219834892142695818662649533979573884956978111559699459969810931684398969122218961957048777460185640615509132061682066447432102287367837766214810219184269740392002913950417048328892409746525410119153607921200853359866075672380609001106390430395460919198731202517200962986350510298516259530525089260694865487843883372505603798623294574987619732560103006481536397852468531274257486349894888194277872476491174701317659030934210040053338635872766598430580517313979971082078172332626281062822875043283369498793745198535490906079980813914731083250521109499682384902901847014862875151540973869492273882083777383512820734525979336903485413289440538804562739350648566118020901768959877603202025114396293016166817250615624911416261147509232251939474646039820401222819109911241293693626156461929152027397387206171692504171512759631675646223694963198338231172031895283571082978135091641522761769775929940743911362417506919433041852610260261734301700336642299340879639143518144456681945835891235133746009915650316210583228405579275931322589638610529957079043626564289769172695221016793936021789041229019502181921298780732858913458517596548192566417872170289009293457085966630739725284551615658653538045217226158350185631020932151206128315171850465430583438551236157164293332930196218172968868440634351190606943097563076403982322907896237109278392429952790345251278560903278626514468731541552981278027773855194294029448390845757530578027400135103760405849936861713581124409815831508324341430080323376944540495662376652943827182163149304467881918114539755069610788486367535791008457279930167108507744058627497709640847556079839266652274170508161740088614448154553781228463963461925760018636835138139188756842556239779216964294294769906750845101268091960385394290171760207731205693268230685611129847919212323883111563786063949270816495588491704899670401409729593718368107397951876747887985919547061154947387649218472424494869345097161069602397327266420705344820491209589625858927025479314375204867997410750747994509646930972885080852730470460740802636285721337015560789586683145805362964189683747530183641121634882228379980403065333569210462511558082156572207503619144896726023538570107312294985918377239827218384201794159917714155354577854369312114681706182933408429122027771171115179543866166598779026375003879975183833868217531220643471957254287812808291124705266002629482548612695305954473710140029122115864288227361143751556362952617286897478003571676618252549067875117110984362905501927564999974737408915518903964515469647196755441085136340972033939207360548296207699423938509245644703695921564329281576550885264132800204369537269986912911723431128541272064567433728740349583746543766552573080359007119746832596197938693241282028207871241293404690374499877376060530002253503400289730324532377116523235370817603600309679913936377543948791467572643981034230836881814191431346790381277384742781757775512825135399877635651679472595158554357920993744531034211515413979401801770459888883017554883019325034326620368492367132450546632723055740814620560649782638143412766787209986782721297628806001780462934427118951752085800849885596481242808680910075168231595823043949386573618552682734590099041786641839608514015074849040959102109531407436005832795613993097420214305580156653397346033960814004064748015572425068249395540946260839196624091257822522486574267374896446272035975893907193024112300336734463005533431751882135227644645589373576812214380249873806602007032027620738655410775517555050606828954558516411379855602631275359232804966098572322979272632053164959843756563643677145998672815610218049519090041725692172960238307631814134062635254101116192490575387363726838313049465720205033205096447698548217904822379416578506358684856358571670852529509989258256153283899923531511677757289592357754245327168218596396431865568639840715061843776902747935109903356581166191432009495664870635261245162641819093545685380366894572731561132761029991070430285270018560009938147816723480153808188815169855803563519763816277776706902477911211171354717774508548669811187064299095904643106552957348688027370755982533353968361364950622329632815452460464484081575297180332795349677743041297314343745644921967999138271931495562739357778878416826989519132128870733636545426437762812296925986635036635588727535210795235312132357919628202271356524833412230124193241007900688240828903073820865820243320131971475511203119807524954827806185509288937540995728564218715800211037877488284704662155126217664585905495900002402571761395532038146356797719216472002304928212389961491531183658871156223082191739591615444680025089850657511782164025970068269287015580102188643218974252322734308140564754818631091111306457395456843344005231161475119708362199421582231148302215485523807917463133566770291197415894912052158498686576244776712674344941826265282123793972037293129763932701881691954220234447498817543912071729267012417705737655045734895810952144640978190790929667164184796986479101742770079969297273161897068652084097203834984700758327853444889347223228314255762039472050086043940284712060839821501910562893100606267349581885469705213469260794126382434834639250313959952981298738778731780042164624072572638221917492561494348248750113824482573974526624686113973820388062865567582807699482536804367475146016546624053680356043713930481143167445031837369154602818659990905924790121071365114950369102234304283270073619132622597192660182456217449761546103602223611388775374837752470946924668714738392427449567441847571259353562130215308364889534407557690601775637228780104145278715703625718488801758720037118620077144000936267201932736415730966103083676162901673447472576847061178997620607914255266715127092456818413909069569044556505397830783695144796425670611390713364081772994667764292422051326541105052921895600534591609848759535867446133992445454802276943128287176514324551703785312247005121728863978622338756749977455584160081563071152881496217788464717998507773886924749845161342780879422638570437577998439746479546185363276412929518888361132801707425017123494144589770681753442323453379121239733430691621017762886831695691265551434160736652479613661223369489007204624711043095812520167323344967759328162102776193922053229392706671245607885463056570900727593328183636639528959572601482487766885874834677716830785803028175871659242240826815789883136299084894051345844066036697144384561706784365189028865993718446122126874957715824069933674442367571015207438188835435007525800599054974175483682297376396271593816583861259412377130610237093319581068222573335070756947511763564492404021174394345662867250618296837360571826845296608097217654578632904026688277209034319263099714204998731243470313925063572650031871607120550635160096955525138071176878669221076121485598230126362802002071837607158656665819750236963984275902977709455764951905329231372137277389192903351596427480991537780816238338809296299663583040068746603857771521288467515967864522580239998138609964730448018046468578330253492171768478242229476154742975377792665752021426065610159234585218380538865788574772712616313524703408298820636808174484009422540508627003939978540057814741880829519688510599813345778853472372247337216134597765472398354852270497375029292778670046179713492144266990764268907998336998864829844623636460178134354881904594643189281224401611548223716002881237625230319292072005579934310281842037696295784023741749553288673267916553255030878360883282555870111406785340234808312428475948063153780157177595526985227700596733989061942732643189546153393431929610694185733858564517414419453123978361768179889978635785360573256595193987831955070918234520968568071033874168890924510578720692409972030036034812984697642580649352379007566807860517107652903699248353487504135916323732569007038471645480147195396951477215788655787509977117771931114745321310025680809001034891305331531301896189356509001230740514904767625424665661975667544490389754119662147406920101109131318841081819788296508406859088409075810711879110963465626635948231605468697441842822368957521288555195082631128793446458501065383013764285225437060389759093691820970493537178011759727755686361253093959422807543145161838729207163422434347905983246351581188928519963018568247180247138374441249169212316190937771888624788809492585666058478559700565750178248612680856796077665901167876323768742580801132113680094291459811012611918668583777458602138013037869189995231425597005008875682219603891683293592179592686559808063435324631999647163434960647915805416018572108772238935494869345304926804923452146648429222531990363383589392134618949450410985373621223200571835332959711316225989349534472957322403596555181939371012042793704230971224968921301076991606817847445889030337873912206082412797246056924005109136120403817856953866038005342045114850704308845144722099268185378679733285480561916618272329163627299308210610201284873630617030244147302558578899932394135124051933984671344683031150211819134542078051061180647887779120226419397978557074106927767039047851669271367629594496188845329515870371122471600223163904231803578155401717953209782069713160845105305490740192280997276251505769617486656522149828629630320300369978058799329710903888272431301563255198594836193154987255272049668394212984620438905578527752228221277595202983357445537145458721578056571046652687702607861039875585155123314038094895391764252864821476644001119943286967784861946035881800519815660083958990348229065101355936448835426490409772470251007533947483030147869674725226131028147587740531559826034426822626526978171885395020117586907783475010448827519842238320756523281383272234319245340501038619597494748810933404650504759542776815553772758535160880248202939764675571036873571325304704160902371305276772780647906859768355840765554381636302859860391556362989106136625738508318547590480875751778892647687466032787582969877079685005680417283979508897610762170905697974209471733889731359397598411973973849562373397386543822714964099823247059215487383724964116759686238043624427580001103825112667082994368553755050587834508725612736036164260328466959464466680905907562869735216686486055054058062664330040866565876493123068668236384482801758410915720265607386004705911850861949799522927919298059721753329117182730415573948872468463070044323999302840698641717544141759398002808339374652267368995532488185693690847080456454569366777684795045697483458778046114939618262064528930768475575220349584223725438743990662134758682237198024141833971210230247488172083237435162492080272298775505446914069611496499596906295615067965724241011618633552452905882167420014733854101039814179440988505459604229256686755209110871345944041107566156483582694491881914132842455578062835647753497961637621707993305574989218008535102046453725995322716573148975944563838238445466586694146051139334769937612084669306660532848763061738535454561066653809768571958773841363309223672779610052729931582716494863190289966955983479134940488890188285168655708744602476640765487654667718004562740481877116268768530720981298787309315070134486397698395507066008660238350885713696358563527283734444611232085127600733668987015590406950919800353001617257205404173063506697771923650310444628622508145971610327504029027312472155840088634807299963493088558014795994847242656100178863591230528967872623338075093226521479886152969343641315333126643950464719337541812810127370044314360919343072581759704669773329319975524560759793815854876655118716674987750046374235217035279710340868781978520460754005954896174395656109547550997255404103245579420482872003629001604253611916863280129413347484736721944238853696352923214847265095096881835975959498475201876197502128521180484794965393596205281792046841071334698806368391356649290611570957238582354707522327230456421759329443192436729828541032386986183952957182905500683098841710441619349179872317845560862127053335054007829914766171351271233317383627875020246863903534888164446359334046396853941198623774805545721966196067280835096967551530244957697210132067703012576758587771429189828877278267777585983763189707992424725055349055763027543533544564147973438345140661082279825103713275109395435912601400108566552845266652884058888321360452522219189869177856778292431435183261200460849055797605846692382485252801582398329141559462109034424602085806645901420711085909401293157398282244733270056796463226363622908380262683476565478929175443415987995337867649001650460505753542503268391803484360887002806747473108300446560471895478785211240899302100351196675280159232954826207642277279470994400312145761897009292513842496790534592325658617262550694393191820431827527645946478490889688943937654504271448948781248388891748813315927006947664849949783116445822819232860187012766388445923769457911197965921338346623185161177166860228888923919188363644861330798097778739572246315176351978111735989338802190763224408106296373272097066223398224602380729174581459438816123263930030604683263253237977858045837855251334534679275412865413990870243035778968743337392980244408965866461082517879761855331854175042055588741866697171854811626963603335559490811228408939735965877107281538594863834799798669477316820670837722931964214442994787477655954593471849331866963919059646918554106396228462256834554401439953034735652385786242383666977428865108385746393853206222158739713787983626195207706245157992370698784145820982646081665224485072138036006225742892211614409276691127820565724113452133017022132896934057945098593979365541436206075497803009247743705693496954105272288007697014459813649652813507113053740780863782741709211798082525980352500642482775353270743474223544169254292785538377123734760512043173071855998349822004728029876652137174832541672887637368058000343950152361715662649719483668033536510878122646053525673547076381717302549127921117761757767917447516545756763299017139969964763823524817519169162579229801892320198551444180955660443217851518067004242035395299256060396544569992494128091977522612592646751153021271624320363702563295608239643187150846170680267595886980209736966564148515183540008269716644777220772755778844850412840216823257717983614758810425297799147892184480980975828168837970433490692461266872664436927735300239925136475783072603333287380963044298817018898177103815645677228838615213231444304616611572996249384600833527714517941537239851863588958668704558434647107884521644328952366433062262479192624419919283598607058411413072241032417847263943507485973681889780326613266686988804012715325893960044478685203637713179725609236999342406641669176577990715089243968711212667667609246247367160030340188005632830610451955010273654603279564470224370061560957378448867810791685347482208712922741747418234672449475165187925235999865097262658109452959115746760947058545883177745807188942168164055425757450356315040099736728321344366055676646571636068645018086715106865083181496337757610967609156058914872542103087970831370606059267010910900505811152066224334668724247586188465523098464048652880139921311326810439492698995677475061280827694407065959972288151435745755941553852829075319289531554401863198680278751908499735140644395931679331184672083558938823983347624529132219849601035785311635791825154541056568833085222612313296500366716090596032734948034685368348939419062921943129920173450510192233537090897647406145624223133118599195532106670585446202304495496796776359205175859184079954376189275931882513730901934560853797993569123433741444123897510895536322258736476142747678238380778322851077109387542336869332428390153666598244350072774636940765433598454482806401264488240211469476584690306862462424208135262279959020628100803815615197836986138357450140488533439041631541302536206592285404174824611937620346955075784105936576717316831776675924721396742040309108642528553018474826690491039518140403989238821425890371290498875937790603941690152385781972723924449273926562067996138021038710019056603876887795182803189994376513558502059356823018044905137320933416100210162920956591673588886570293168756082772524490960851521118525606967198286287158033282380790483987726281800492559467791097913962581410464467194285321651413349078026086451831643108581486509895316388494474674098085034805549399224549328201158726529876241475909855359193152343997380514191650165797461628598537124209975804400452657873786686200885443170511179976996651561761306302753407850570017246441265929440392706509786166158611156585974603000587951085716769838364139981406436928239518453901090376329435738064454681832016105399219443688589429539054263653892648139001026824105986914479506639302604359079542618172186449785167912229297544922582884192397438111626248023296908216616758164240259809131202651743300392703011016591749275622288181487966843074232743816746023178472763835368398666842967825060626867692945741089756203173365572232081301394356716273374788210005806273954404664996798852717422960071936207845579337331841510606287585891967938330311735113381666004426654764189373433156078685307642731436906941982671080454117231924828517371532552228716948436092893435587405741707158613607900537591136217976429717994807740417670662286967553198805778089251466697134998900080052450615658687313774707107365756256528532031679161288125860266648191726580804110567413243978350461846448416748964688688273921465171252842868062626417749083395785624414310724771660910004743396440972735883403669722071271852037105658859634103231220575003788005530740399473091565028291974535136483309513793621076176670267828722435755989814846705034392447731465736415161308148124675903176285185697454054991515989648152403261872631646826232850655703440322040270146153455381198235433445301951828940018601884774960235962762568036406776055731145678627374866599595135343072410904595936466060967719596836768665849040415854875152982281799477824055287214406472946091836372665460164242872695698874228815007116103040288293142202596086195065094986913753376699779629278719130601994503039492442275950772481834770492561704371113619148729618591481794400898522713248696182481704957438301353031285806772135229523245567592553801282277304722179734601251791884217627492633314304995562515369401792439535823796596416458302199413121448529657283316830865933914806318392631025895152045579349073887975010681017448659061929841316641184079678405562687562843793407214696688101169042988074514610245204425484536481946399361106257203716992863178679425145717548096818981815249533860799066155404786228028204903929257570739310067179869388030501170645242096141041066308529252058880323987982701437308227869935266223473360098115098832542196518978388475668115983923157102552100349405686802421520131595830611984011643887381079375191862807142696271944193716362688843961104268233720773516233878905273443634717743461368976425537911983420318963786414284994443753929736029713680446418327494720327893779212317446046543179411254608595097105621262043694992407247661529269312192173832208278603742757280746533342074881464148697353773315258440398577034467848010186749375229348201316596098018333447639110225320524287498451285399751612118547851373190090032663502132732743771578143168459246201457058824120479080884035138187951513737484551486041182810665584267497967357419852447672838842799204433228934666677255054724996576477087122184120211022600009443683600870734721655438331325789178931049981940285265305627218045309252326711365819508960389284450529576770292141766335279733451417058105163167154005804412965081683502603341643643843786512622840320391243266307512245761132285493373041276476074078766288983589671312549358696730251208346159804557084335719168296607929687884654312767444986845705762566166599632701152251564321335086494987753077814841130462847831459527755229334191675200947801613155574890415181292442191338396958549952518903325743387512886338769423233294371194765125570488197197436555177653155360089670093123233020724954611875764760746801132721149648400272420297447339523035158149973656513907835270905192041296492990046627863963742957134349332213695554471375303447850920682870764901796787941385097251199271771301113286735065931963913052491930258512166200942121662347430805207052385070461154429341703733181873859292599814152578837320383927455308715706713769351996693257996749962554833036990514168213423678210988325696198437451813832941533403993431588520030720391930145284770741515729323599825504698128990633837907414828199312963257789877622291852697377698151982204497720664099765659745895574209999898974543403782153859591524289234122197010152831283214653177133013575267188589896498107754782619196276995360232448424429778456668037227161539075191519195647851892705576177466552959332999669756634644337537186749309976281132837480772772773910863337798438328394252850679605341447483172061966940225216778142817708657673130122648903591415763966115757408294308255970252267940085006959690066552342563743383886093986908642977771362726177327699283507725622523408467776527811006533617981221602460578895382338560904641726310041049405482462660960438378124350031192572543374791251862899615940247815887791353131492701627668693667734899247010647901511024493445338099029891229381073433262841317566422498643153849883795586520577192185578937835132251038123698924452191837961718842270013322866924315260446218611988451882635045258847139166071463909811361500047170819049720285653901646475006231168041333505241456952832726918462549349180969235373416112746530909330359432037804261244971365519370994973390650790489021025938227690738203677612581964608569868831133867172576830182430875602279860827290645359658461819587634658967184240707961213752700388636221764422785982338116543548822148180205721280167661250462766267017732358497000918383734607290579443992567259462076239411170801635282434976103198394267772591813012658729575173912238183301904705164960263539598016642022050756568437887243951461317791460958281227369347949755389487872217855147285763569230005239004690059088175079981265967911734920339471463108064559770649085357593268752697546646382988918802379160525043781935325163380748480409685010003951633075282368248332665440303199933083031341168791219673780670227152767387926983949648715657820966764876786777230039437015450649947664716044987274105717607236254012936277303325266146341847715562581302804830571859010697534040616507697499864867874392933483945911474141213523156117806387713863736746583474229917893251848375266496576521479320879812671630891567853799733211282396488570974000301365068048907442774281677941057857384363085139997197895374421249498137054558033923136354478244719208336258875506249724480438491194202998144008759475361842979773028295250115186618862399772850620623655889849808227716107567393622006324474275937251394473530867134806406932868734527158974667364680153578628476845514308112558555762621852799134966131146862833183698624961817978874130466294383261710763640936043198081264452914332844196334187543248486804416521161069613761555882833704730496250444206099012161742415425244955168591381978660705378216305258337617383001900005392002990001843996186578041383998462061191756067416723075769652498058045200391193906974008164544875818543264656674067677414725494691389921600296196884415833863143211155998606989047154867748267899307174514219315025063053703703020633903793467348660763452685971278847037918491427642738222119195350715826765667500846338653331970181388524096068875201069277000496768763379443283614127903758606139937243796971534626085281641106210984833711915381784827973175168577506129055480726773261664901279059729495191642772147727564352252747289988900249580441387217160132625472381848194956219050960256733348798485529742089677101470374188404310524827054564674755990938235647164809341026988970295113333659440645733951626835312186469443691275713935775918734035309867046173061764192856984675404987344896704112876696396152160010327935068876700874985171758203517852184663879853380955117063346061923247228475120673245383833841635683220365369481502275943057564804980469885307675589037416568897707653136384259233721112037166707481770999271449928562530517686065019172017658080957477910208792693678859585173313053296106166195963369745172187335339938978764439473701109971054824384094032222983651362412501729184789084279673125910658590508668559827107985529300083442379714189312480739465268762228371112778286053750697734720510244852655228451130514785756175742157818035080747873109630179724603307232644961604906560934464093481466373988276409329831359372223042071086574275972314029166950359925403488251693305708787947084196750895989305002432115083443938986084148746341465883126799166103041504681635629818326583206597459358254912845595131566413435648463513285476136913241328260136746165655500880302284486438183541976498124795469827146178016303946529782471247959351536304252531073359474062815577584862532777490334073191753961555529800386636931468109439552971894747199231691691821848307661844189609191497104754214962240717404739348266113731038131308860467858227217333651987508216054872232443491392762981566256939683488832470213682805818358359975067154065689384984217307900105158430341230509118318000843808178830127168853953242834359208314763252852024227242936754844815972769509352514837482586379467550490179132975616307272062319556495957057839259054322815301567918186685160702759764789619880568525716432204801690271317923566973537996724976485109160154530594411144999309521939255949822081104569684913027112436235880670528742097650441851760004480514541264813234246728452023536333882182818169820734610616151261556125506055979841031042319693627353932647894208801206334037540010489998592752179339543606011656198951888590693172832461038414226798983969681467620481820414430367885348870984197367969673050321215413564847818491296773109509879694211259919150468302590369513767996205927911269977866607173214452723724183346424706148699340316746829068810945311700495505219570048423123336557365862471033123361078982348618327956900590396658016714011952565638633229052291018711862417524679729576434871567745591374154879423719547600821842994565003986103513810842881024946644848818868243747944161123019091571123772609942349723796384229828159608556558219532760784705560185533105934382353140007830472277399510956834125755968901699617239577468006940002387423668689033359979973487553786068408568781276894095686719699148601406153353758144521999415018197463793060156517237317669195651863178563442605157093353604710107654828569562258593700778708947045894365125633025694680909104839600121833647612098612026792280446979297441033025023233722604628426029690448544950199558618205078635239707321184474407309770795159291526525152446171820963143258255004602961299614190285897159762361795883999070833109559142214109244476598095865599466125242363018857988476604522442505566721235145428593755547660602894168709805683218905895324522413900765553476661071970911248228561691314750092936349946781532751311447247932865802245767620968966774681811119193719615098937506393824097411241838231416911076101768799188317589563252374856313917663818115569416312836148159526656805917560223542479797788530317972718053354315925365979122794596390090001191015869091876110334611077831243859572617554247362823327108336102211070512366208558706001569000703084287603742648144629260130884955480277266024518942523731525154564871437766737722284225742073364106466589368388411117939047638991266879056493342291772479343230617299490919920313595479762149738600122469128062763510806873570488119561662994288980090598150974336697624212304540505038229892722753589692909233627553056145827583629512610512580556765691326263867901061539299316647637869409812673380780746564960175425147639724920426701260545049853891139229287220735700381678389750025161851985907095473237856502550155650058405437997456318752569932667535248270948586859977696286602743313681246846464389733742361346241003104073153908239008481687192941113031607295206303123420553022401525346748253161936666248425874012504065222252996402373109607119496331422937081402477208926606254647447409896056365794076048259216025348255139662033824139537067483089180542192638042070889832422419979511811429094667163879119919733095923841581674203088369935908667101199791384454178478364218824510232735030845505678198350644328570418877223404961448694598740968216675103015774996744120626536097467882871452595314246460542814897422259893901110695848582821211815402977731857672936032436840678139610581095592449024691114481669484668727837575364018749368063024458987849753235234157137727111195628337092002599280926658930725428211535532694065403873746771688571928616795210534347270699898612373949122812849527111535521989414613037907052464609459051781758594262477056736656279188696281685165946708337630282038332679962489290878391227570110364622565227612595290684271241749077752535173748230655164922206870658768060741783252150439960107114947386370468412461784461695392190334052626294811964731719135536050985052044192606292297339832544824603656548169020201910711063919038972992099490590543502381910749045618191067355334501809449310219779241033223308468059690107844707896080703951942395884330083909182347931617397475288180214722874732442388809609868300782268841736034610326205732802810925380217504393097357980113600335614792406215140943596392391119779355002438007589728908401781635897623659237343724338218194945423495238348482747513677670889822302723728978893810853573618207355282549947640491022416338991744230950778116261768361088398760714182400057176810783961137402064710439256639665406464722099654033832154264325616804175140380235798559192317185367197208492686667879658933900055156966766370747295742317838723468197110621923452541764077391009479717028268597754808708824369550667462415725553479159435998642660328706562926170979227006334373064508257996629342175126154333981611391955012513454578739478719742331065951171555165630417901917207395246584441554397985346740078653488431978921995227490425803654039948758546781001921347907061301189072283963851559100343712797309890472928488160578435564189474071596937977253252863262988051757198452946573156174040585867481994597131639941290741414435377244781673776619203014737914521533819475864612335645262883966343575373541858326378533562272254608526188021707608143154214139204307143803225821327846961651538951735183094108145177730125042436996252556983831781356605958745144229067030303743084945556236350786355801955626978641810552726008463277891538324668924989677288847194595307758017725963197834485326547749474349402484922478779256200940608124782981984687310259947613502088195415600867870389008208079195944486382348352594039214915745268243461605960153900787886038994325421531841357036170350272357885786394950566016131521493477893125611077442528394671235644715991736145983290579939553123722947399569785433040500813052210602529439499061747995047357616138290954048745157983624828880953150706442698047150049305778979186843802698314074063926429295906837699410275160160442416642192599563116191671749859843660520082174116292278325637417065236794739380336809987457573288467483412789558900556909545860460112873292493411866810767270501190912131955268043408988238544120852473560494205582246149562991584666733754430893383607169200778514014862925143399068705697006046084167014697426278176460428638171950145497681058957904780766011822241767908268779282023259297426452908400300398161007333869575306232931829608894408376217146652168398247832803961958664848630465420235690642210680808599970055318590108745848599506770016265857597204375713033848755405109136971474992869504976912385364856004614193558035841593213729861644342620229260585897385918634057363229642445668917506000012776354584813905235227484379207802627069501878736211665029321231482433680895028825000207514542000515963057404280344497757100694107395667817287741851758327842850168939767907872902376485020931394836394906456292028919550342129511886512030846845858593743404806886657092760013975451644249810521875228470423049053385006878701037755877661849133878644731401921316323131245646443217091514195411636399364100478545137532272739179200613179936144641891769772834742707294595143031514347439258607702155332948136107402030338848589150573845097048908039029448842966178181578689022658759367013903683803174681860975876531536234796232449906947951731322701120699159897233514507490637915321933840811405788369621407470973798538022873525838268047931136063379597267520388232519717415673465943027692429023468915461399402727098651314011785738221840487912010889213053520660258109723431989045042681986344806756642286701694744829360576144099468424674405132026391247218269499822474546935955264251482295081324194142832930350033469698515700535064665784514989220104278250605227414910382506501723950141799290500284192111318797618213252859243275743347764632148666328756854180781346439334011306008298270923182115769685607426764763733169619186298525298743907287752192388462807268718325061009901492905058354756311004027832632285664109723127319328789503156579454221576415679207495444910342461106365124973054278043530403728919195844382081329515679151515152439185505637048777245065537735949094353494318838257981155480748026285262743290230072070156298725885681875774186166481132050058106324714621720125318134066145684896500782680945116672835393372152723262196477661336154787317321936209679469487207499813390496712068346726261798316427944318286097822672903224624552568626046058665873321664019017221984298509286128006408535782401782739890082480684323438709620730649101944515064340365124762420614229482662293337387877518014818140173497537401886871450100724099971911270698242346009693744656103913900593694410123365154869573617574903554432460455584946085631009156960475149045364857201665712340200471258741680388282447065322516093747720671884980678892652207092531431135673969581600745885363317508648473369069612729982772352349022919430840518413111413480271278003711683860711691902104343414646862996151103528749738488448493365973769352489839612445156233138911266698899360207096243323573682063187127346368537473907305762065532393497089868901189925389222245700187710394299158332384872045377527088987613307306273703590604799430547288651639053526029198478828044845966569432967512787211899462972746079124181606168438311875137194801591974852669851546865540788615254214021345980153782067856996202851935120943539129726496630366794711701077030713739850174313803608027576228840295546422036796852298013938295237263595975078522325603803427188024119640469232553918088694949609612704763594408061733543298909578194766479575755980986099094120417367832098943556816268636809529705560370626230025468134233056815161007337422744417436559691172219929546181371468041625781058763305507997052947761957638186183211220635553857031428092934047266597537537565318725610395843829783408005451595667437377949395759464200273646689488910372376862516813809947669806232850696088972571138830491493744097649623205019328711278422792252266592021222082458206414771562437265904890248602425533852277153170634516215168400321321230321800266329556902448533162971552168052250910792762756466233382751502982644927642892138959881741707879854164515345777097156003846336275704638033369597194356702228644605421198471778524491495671442591273303981370366652212433250468195712879467443413651704480296866360993429000014374180882281818413560695993060572587717216399496933708731341030957951748390742423979334679174307583468626286185887177542457039356645708768449226285083234767549857353452191622045040387000295600964698833767971865732529655765120820166181502801075182051948639746818706601288047441207611446994353969503788321676489484790913697910271258266192812459733202992860663912010855653648207028950511176977526154818332621767257945024229211936029640330039128270376931677146068559658370913131027691476722473563738696060297210336669226040628871999663157140002238826524409893862311649452416774693097566778371917860612390113581995115056676585263606031338146357282367323231724409429334666385334924080602381143383131540224295228172962914230904396300921640330537141025557077482161273961646161756006122823206238100893305381391864881717109146205116675721590272658697103896024095174841984550686782780455799031144543468981006446798673990364716051078407804520278321928371086741813330702548858813411604527387000823437901281975245731654163234057102699452198428914902701720961630193350800564412093265949204892956160661732199010730814270566992435700826859347600232588238757849178194416145752733727396299328930495948599076221289265966132853482809327121598375675175987028705914198999151225474040765562411919222897652593837880540539012025923001613035642466140039973782935120267872837728928149756748709555528619083461676014837789410753641912865988124654765779797533878681805131768922596583104008362512256122764998382445534814634990551184247482256290881579292370299330966049625318871928309855222930734747043730642230096188781035840813698668532519355143892226844309534637163214953763619289061175374260860241305510029007120459168061234713013716186316460874575680084056870042055708989849369483293090918000441215369309911976713107172965850497193522232168612177480966649514121283613333392545320668429032728341662410550567064923442113781623522409481494117142971136588927228870561530639507440237054147940781969318097079606454267904584356342435244423554654410158893519008908541777761424033651861736011379641553824488133914962231194580554873214353448661735746199729386813810594042072638431777426359798600932546355450418467079493774527088276289150586195892449520721964194985482864686097604421668080240419782537177925040172428452213895966599467993755972751056096546470685391152275701083350152821096152605794794236481751922742363061190703581547542180766402505116150086568367473660075654723520939959606871439476367051642499001249300189613321098424866869901411876586163165513546072724431253752468711816530153372137276025008662825775877285339046540570256298163495439293149673229654107970002604612535419485386131498280162194213163623431544450492061549796177587705942940413929660809045147327816444184438919606201917749355267748166142145403823301588526880091802791297429491398619946232971406455400078508814294482192463971621623761763704090618861337584900346341121291055470984721298017633124579281042562788875527137042683488888417732429719484080817116471526464546313199141324690536084945742996235827990097478485928280182450664969667653231010676401026815598908429801084673614047910921084738308519168520426454983341224991124054820679664762938856867859321874847625153538816615069564093630304360523729474550426706596123560065917273168706987184531115949393647491996100181414226525050666284801636479836221159606304794093971912149227928735594325029330177493184763548560470179597389475115804371129576862620705080308092800047211200772909538511733648505806036173194135598731897171126448380193033092307885918569997715408135864419376103682880686622716616442881273080685293887770617230971098817738652567499106120174505680835472983015395231825558465999184025092737176883591346495079494794682023939511981149656561644344974559604303762696681325624025697131711447445868794252201064478085562235951466558723269582965254209345785017548544248778237979566739259997545648416259347972800203943334125301060952059671782607627770393307720678874885694903436914537339936716900737226819149338775933596869393489103571161820362372409171360429096783907347364863364817235827422276305421823658456760473546189793358715340501424760249544908232235729120392434765664188331221578572989451819312600153895560511734755676636416404510454878238364650118040359888297223967752315175529458195622721143178024702024763712117424602249151818311300338166533082667880677892612042731467869462835098597048709266909412444033007739897044008305818775546684772339596670510689228854162599819374342465278157475168985292482745786332241110311795448432066666506580648099973441072604419724150503633177480436900504946362785456774206412651294483966194038976526637269159709905313524476017022262683498217368911892621897140095610131119596848221163154658749707553774034065889117652058157842916396129045583208807478060819953730553402630229179447585920905932735497949658983666575185572742082294677461590371586072213928180821198071031914460208302883218652369447477374574825017363542726712950322218638517331490732893367792472746878927810344938316691803803317814130586521299592577731883186628208290708154922040250085421699219621093389338931811495631805428004822144456139950906678543790348862874194191340411264909569831861026621856116130189852344233849258673315908205487667578817066510754869213280949710134182750531872678829329030173313090715727372669379180058404595495499596208816196258822082461229194026310395084261714813485563677284033783752937782308521337725413224429281162081090024888145055924996546581054663134093952545685811260279508845225663608623734522692451543978840832913442305420727907088891080420980011216734956501020303414504892075522472824277548345633023857800442121818533890533383038382998554645034298897430745384450088730958159331913630585342682841633843511734873473472775549072434110782788164481971444825879670216175447748581774317233861364312455971623086538014502187091761398293089850139017649528125976440011521695746111122263946952022393302905377278484196472251601385291219881844810267981488643094927597774322986917662279600156564719854336015973173469890380092369098949751435277407467840099721665126405258834536657664263856796524219106403276204396813710667956512648291881888851549924845225612247907850500464073335026117669502111405259661887255056784673187555557904872230142560621980228474122982707968676284597208998004942837798475883840837936236160384651770049459603537254588407122030722817289376122293119631365346547571139034492886666503000649323670247136488127637234554943699272240246558709791054792201662371445673736246005990563536566019441549597292585467426965804580826476824171570907520116873339622771234823035916245201364844154104625638790412037571044710582680786881727914755094960604547398921013884786802687319406231590670578212662926091131908180802633897243418840595575547358270764661059774171335299768271416244383895211136197082915787577790854744154126521430039669644449072281673255557026647821388573840433611718752586199453436660593900358105563909894970773161051456267844435332245242716574358287502420557917231419900848206595266228484744630361329487627823808435682834374639602572507190766755576612403078803381765618880842948371901333238537185903198676339356582372132808976291718835271267136732657500548202918221294149376796460663186675136293573464744940902326414026767645061563490304730498725346535098590451685372358520196538488259117586448459479594503885121364667768193832767442831896770347682629105082683022064255180039989792141797930182602811902252565450966764738491078765247536839603978306423664826910817966333643909682380021400283365779460937492368985425751402734796770152559399120788888062148860457550640625432676120187562632941663246640048203545495193182446199206875611862153476603560928037456201926435151505892983227909318592003556416436786054079770839973573041129480709242054427619460154153493109258650346572298876784531428887333068215304098082912588697341792702104843506616438666803709578181162690275598180553382100533116181703043964589243332531767504560472915393141867100033499969046910196701815430247144281990436543046238553162438434696766205248410120710868474617949146889049830661442138271855897583920280200034898384988928473967592303485336828907772374834916253520411613216414619339224861195675132509820181007336034165374581213792662790563862878296024170887675457918253871145433839825317817240325128564659165149519567972760863470558934583822430833575307919338495148543978606348656556063908541348987082114584736081987245605745521022584756019344499238766895885629174912187480155264240512465225282567421258854820923036251924908516005903349652697761450063656283608037299103278083881070187526028859077384330584033780396266636704493622619171802409417112517341524458752993435675916682346214760900975975452717728463542223244648258396270433784265609096158240479194926413839208086111162956368004720434051911061255793781219096928058408684257519078829426049568572388221914176181870638437803138923145226827591583969816487766627060427054172114317618110913212456648409116286657073014603758136125810432990419667835621021422624602558727573175261262844160784936693652786357340007021922840511253314426529504271163661194357471103327818046110268683066963763142040863405955106658838481873085638474054186219720615725494852400081232120489692573584736381576271141154772570539419877057070141408615174710505147418152116951066612968397500845249076330637134130285081157995772745475165069728998562812439446312269878516671764571012375751360377117098400055120049547391025794748197306459043399023187870950268537887412658991878003346822972367319220247164074761259758571507158010964233716533002210590953756561219776872172104526870554131706263609572621581823552336543334499622096481186515612558900748013952396754404433964424859256937530602804753977141366134919930842535895467669303549350005637490216678540106179614334434566680040117993427486087992523429277998038957818224002000947614710965387967491136464001884040242150471837211341006334850705295558735875028371575359560044917223689170531383802624847704486248269562173693863042808153801325175469025306883889004162495808324896387289874795900498578454987850765969025273678722088127022475780528230800732607948863841275172417928816802301117003303254856189340351788513938625403302342833814374182174356791487537658348062787086229786432388795131700330616106973805958513232691117465277772908970891095261037455839719847780700911030695097936768625747212507353441279740301180229946125749627982074489388172418604691213771792674217985463334752531132288693276446678840391066927935607469678654130846364873101139155491114944370914144790235228455015791450647890136643616959532113182510844532659889431612403265601455697694294311812150372148018494428964721030351804519370022541742738003662098473340694604499412024886482260819561227686221969074265423431255189566246664213840292336383824842288814979175293847602751875792371541862843266997328567382046956671313665404736105620316543411194951266434468983694700677368743378369214833602353745904932989374834246173287635368833944877602647980878402904090885993311320516506621904440724908927408758009873450699573727380057142568555461949404396537132565382783297205406373017312638802816922558788684884023530877373246769832226983219060804158650555196994352150077024550959743700886439771872736626851373063197072927084044720852387236760851180424060740267342778863085251697729025251737623494628676047327883581204725024378020145945261421114364078699059539278182501618301395743018183899239556356237690324402035915975324717983014847226590864565134652251303033331399986883759512320830357852193216981434401885840839469516443272789787015952414721124258184095830253269107788427768459107816241965637608378191986510644785900972121594623563639623747901768043689617944108283150700944805859743629890490229399501190022735126419857494203175639046897941115816365806654100170167334157526182781773079410840892775553802088041172099741323442083273044435262548489066608284104012432227322529072325327238809328177034156829075157794215395066062470385693796557549785001755983816658193353673732634657977906451377432138060884909175585704001781139587547108037373618392863745625705084201955131130893055101880418055456834244468587359030818292961646351022717057878981348803050909761829465497391576599653874847522416614628677161989026916322476406578374700768389985643388214243230985673593666321437197760238553610225562744370395995566389137778017667819681596892138857965196931684871108036343466502339611904567230889187318972699213812039427315979451685321144389042970222780187445889931219995523879456652791135875357777567539790054295869396101912251016293058917904473155408326349091295863945249397165938738428660465942822655957363439555199786898576214268844058431976725987401870669258876036607718316272321336609957386715146130932509672982137516584318526405019218024750350989873469038770577628908798814586565775868533679325363131722929374291751614088369635944026285468386969968632337403365026346716718856295611340303287515879510396684587964124125529813154625305300421701930609072916583636625726758176885371399879472187899196045794543243320830321874346031234578627554651575313655146238913645595698595077679691553120069217785663771294133893696046861410249807038340534503585203726091089843855278526997488814201705674250894282840315734609567002771172032664976100580893894919619230101001115494546216411327242895230084442975168683688756773793954732924440681583280318821453131287928985255099347481447412006388021189200451146121616985183146091883282675473331952342391502139567178427485561360826530392971439836929366702848378806500258562048284309253517359934886387803288914365441542118472045621364363446663064977854910752708903694392059411963219179398748204664962230557223192500694927094229222150821267760464200585055938601658474878800060633731525799945000955877744772604331876714660821377432785115909509970546161438727918098097019215185588258293974613435015318967473492574797967554068090759180383427869666906192123008255722395012213072628407728181897843901590209793097996000070263239699978382094774611948349948541355340006093735048731184628696307354082755732281568885485648773384098316433378948683220684206860934008859769767764303971898967281800091465385247311611824784587436202423694640797115130223217524762222834127478841036647815074368609150568787515078685923038804558660998083041913923170908162580801912606125840558731987428078958065579977397963663815569616157339691365510978355815396525846655177537909671252370172795284039686984906915226603633432258026889142562686431816262260066209817935870788692754734064026200653903355318756608746946334805197370370695880575233280721520665846957881080662826339662131624436858495246064527619798016762612511448878440539706082515114567759833088112057958409759333237961863167660001392142603141222626458646805693671194886730109372253586119903778293143085532923728047273750223932705152798249906723998613408101194756740310147459664545357728408019938973417563193792553260975852360029158188336322278888434503149250509607655263835627629453630299955393077068837747960557599885281908531337651953607585887712789386384485968038661652269484109955168974768587933345713894789296368662357656427668945814185390339193994765172228263163038290033663878502185243266606363233818513542741835216269376832077740150319576186328223191692400288123475830557292391063193086349307963891324406729320206248306105017968536426019917975402398532343005681405475278603672788591577607828072583323992593019473136945787937633508370981208627606673895765652828628658522590717515287984403882239779237290596395207891991393209223591184629969582044764803170560151870341519367455752610852146737638288546768114690057858865778285800372194876946472910090085735297852288071243898349404929145212745191675717227327448398542786425682481515679247694803263437181012621125113920842509744131405279566696172553710252590428709669150019408190803411411553298546694420727771845721065016679043213663357047415350775100598884068665560840233936396758488470895622454255751502915466494017586824047850048009838573069134871761992847985340961547593556359491275975077893891904710732092948030727584274209536140305637579237720692244032215372977915401714586412242091974311817710180923154745268171647012888249338576111564120735254425260772394065757075861366636332273608276071327300037115111773815861777097268458766106783485485479565400674717543092816397184173634700349880365037702162189442721830588426853126642981214535082529962891197898905783315355003560817627535321535540947369193581625858806322419055550765613474265951801208271687020674103962254946655743216689505624479056414866636003128075409480571826778689591667850742999311895774634104027723869769412965567609475356335019008308048688310082069323905893190491481037023084578524650855812471398410167734734006804490764287455434829313127034019284168754382261123924422520522153509227275843655373892795652223041542369608904324441590014105686545824163002106516113240823300373352855841267608094771084104667254253069371301009419447558941175369741472038583645332587268707281965093445300844662350164252375676646290811522144242000146190459950940339293074476698320948130014898077366473300809892803338228319558491625502817098415153233706232340797864951637329889506385917220085860133398245688557211717320789326720025184690943588790022540539291931883631705986114932177660912255987745467144960438331706582189655951530260483008620100348124498613380917238074686921724977351554513974070308842253474291608985799257222940558189122466650696245538937686720267242419515664115325751411481406361374307017660844913676205173719358575416973829523413122353693460216817238793835734824924805932181498838652795452447383919205577625441531372949874745086328370920660344675527434466893489713329447007138980727396864079061499090308241560491272512598691490739352939651946807401236999647853929697310140604896066856707702268746425104402613629280946111650372161832809510659684856111544844579215173836712061989875421847107099779778317803409958703755426141716763748704695296276342230965949817036089988684385002991540488216807264280677497508574766586967623668731486648033125144937231939365268572834637685681469554071189008452551923672531128190329304354445419923969381216367130926837256563048225242145446514812120423670084537914803454121486425698549432273318970925167293168001358635535454033254740995998070806081833080820554962966795913588055867826985428572837069017936235473034787431778644082246566820338951113909674039904764418407953903417801722172739425652844665086131832897073120555195126656909240040217398894751193221938385981128960782746760617221803736765409650348259240714339167225321902324991436932094587407323166406954244477701203713222040075104237541872084685720771003165769725196705522928404750530909194370620568500951742696076805802130930700888872103871282849984509933144017966395867793794347244209203375492712795550874535625963857553473088371369934903303152050668656893253967505930273083502220140510489069092814746159037166528341663040056615938650855852338812017652234274864647398368153802509843009204827116419481680720310737207765272413796616106650084583393399555781290106802298613632000592647388927390505038040497013155208071154188413273063063130576426734885902555438704529141235388479753223170416535127735346490144650518874076660593148877951437333585518384227227062365122466814374540918151794491644072280443452980978504721410664797466163350338169402725676827281701320128364476589620003532104348400232768138390970552404695161685008266794607766500920676386333383764359955890174333491013324607103508988313744749102359324896077169249159788146197768243063635976830462605459839100530187628219458160624270342438021688758785182280991549782871292982148167599176096449926401664200190075071501744964356643993380838399046703512721897435170475664515504443325985512512156793081936892694585242004639923802189796204842234350967977143382485777420072831889792767708520289206731543635308170840508986251761509127578243497456362193783344456164372094266959908637190345643351875202447072281082048944360539325228523875322910257400296457735476871201539530800227288155416936437389586139990749794875669534312842031774248957138687976813601912447055207076095392396675177318198497903206817880889514730408607557338109314918279536918777633168346213737223350291997994256586813399514381306310350192184949563991874127387029236448230919605045719985778630945008224567950561132015186639380246957662398696104068467826549300672414645216703462225271977871107894207122298762714593967412635299519896941978154939448676157788674145118299196764120441692302278112619355730286709647108924391634875849527977120314425172487903553119553808480265018162242114581243669405015407086469189311075816122656000101870458206362806881979901011465356351981523807533633438901445001532286429532143109359556023220901148710001553536850328453147524521147255216230187149622602236631959925795721566738457567683092478461426145657003423876180812606509886509106212642401022717896607552047688928942582634738413910186527506416354956025837141150752671635990210228369020726065426884909987881006621096170879799274323582144668102543765206403408899613193296786343504765170003225975305368274995462175659109317386593213800137936189564386512779768973693865659957061523348372690438848657754819065420870885908973144287052257851088345021641887531022688210328988642200361671911390401222780747163495608930892089174455919445879965505083885599353671997641965054880738252439441254965669148164086459473132305679344572480282672428462511910145911484786451834125254885167226480282229596839333688768585097743855463325546008889074302405062553008565214096082430068812769595195701267720267690330519224426023280999116148216061331290299267838049337771873763050564974231635835853915083859377706499701932015119975180889989697951825327484821220485189519575812177986601456617610472331210680069815278871706977380942631767719670582801573924820085657835779352196725158592079655179679125338704592054916261406148391286429536794782293687340873669108158634122013952565247263594910368930041258795372636606929431027219278619909052617635873814081945976443026687924341690124603807702844816419997757158180474753882584347174237912212066405986611862578893125119184666684985286104939868253222833721482587476666567671738541146084343892446317188672549710151863419942464138147275539353516712098470028543359049544888860737176793029085638524721051359901843675311228507873016518954913682330805540734411030640302666885771892247509752676562727777389946915268538213622003416828245952553777324018100210803272491020128757394477528974112738206003527063518162025882389470935900166606202128365766439158064024269503380861857903942503701018395413158018633367373544657104086281388797268553021244532825551063233142434859666321846189035026813174546417668482369978481965839541801342303810241085857890675102955587203426744906540431695646652998918560338290084846420737821509895372205321409308229476176251921092798464295599880759279186411360690224396524598464447096489368108267541716049962048698289847544296865853180268509426607498434812580035856686453739771933321096748964198717009344549382571689814407180768781956459629788135473759213925622155866682175716112813234978924637806182920271445347069690081776232365077184029003092997833156415248648050040016918099924226074161045113991635559327084496024398567251716365643664472283839390538716640688868555913786866923729343545667939648964832155436700162332182438930439679200233475440315028377628505053929504305862745097383342534776144062696119507686032106847243175068068301511826966892816690658040705584798187745656898332926838208126290534715466198400328456627618695652350304850914348513345963281874224749626887213098202444679651039415209421852705200082487539495138789275438545643442593930985393164515564252651681805115116243186421142113314608636223398389783332151149098739165353093220204481109099414101781949219263245384583261842087168532478683785834115080587673150652174462996649824249954000724194609663707937371555423881688147789528867386055090888162445700989931797401856956115236067052863208686800316832477072546986189443030412815178770432311465878713153680115190969776674282892581830499582570871423667005017365355603807534855911489313386633358909066097930575068403005771416151254179499280176737872183304669807282343854032799655381777098126175116450307586092053341915393236611846895377484036144850227779601525601393169276640429195852403764360901257946278218019598178515328285245781559714741925081854634722005412691016216977307848753066774247284047952543215308841994910274348801847635184588577416960331143217613665295221584199297965470442062776812537241657753060567974454714020321535858014653840594392246502385859001384836373797586734055923729778094960820889797133190655998666457444975486157410140961322053460256117839150482087809206617521476827547896945981665599366307312920915976066401385368460552192134956750335272627164847810098584472497837233254821898237817149857456932514009519824366772557971978074913582413066404539985993617998302193207546029294874072831674536364230664664724683007763131576573708990214194543118026634994523814225264427796774169429138468795728466162676598572183709192237599217090150510526258021891189929225245750710385804629605489161159910065764779325358483506607477870923896477192646253758525942791827424525499889792156372485854609428752761072114075987849228277310781507823737639502368332232608523271825425115837232088385021343519423209574457236458694976618975597541855319038387829134728617331420557889141096951003271055697646467983880218474650135319513178222776711365507537430190444549581135938646816897570718883823156078993864692894512015194764329031900495564268842196859469356187463148670148132780050048117240176247591369291758223967208135482877096283136562983638578463544393076865279602478630241622484937798627492474777007720919010152999396577619588781131716357855113846462074245266172941261014477766054513596194006353416552015463522795175534385477019034685754096210601394434328069033944787965802016941230314964444042402741369733462057617760349486809478347394579247166972473478723497487962828914338038345461149450055096818885696371188617014812343037949754066464351507425500580740571090408742797611572447528768365661785943825669211093209923324882208592957830508275552219677736688652634959869227463779613504701147552834273818419069979738241176178054787494339588721468161186744824353879484476053554061648097268290675487747049339615764099035569323749897079523010848126995079988225201976310419999769613114413438023137105609273991275676481959806993030300395359516648954124038000734091298190257457186067337748775432710776364016243673941372226955601293842482854400903123160349389265269750726525545003057411415482037876082684113743137159629748935704366380348607758998511888368147333602320058948855305512645411400870748428861155509019143393699902309111752756970791828474573736073351661526216315321414256890807932653303807160600412857653429013591015268006811852861912547032102112453852389682374358460062634376413091151561994461048687950081725523463418171448970026963229377430141197305137890086657415192218860216420502349358753117592900490514637963827875423015081016797623120760046470120548870880327091444854140598225334516170840215242470967485301611622089522522298213642404638591350216661650755082824546230462486448278025744090077741475104320927804237274988118062331942232769079503629907841031648278240098117500907744323304882163980615911677930766913443522521208907170959733197154115563591615470968958561615979873082826517992366041328085845403610818422999947204249067012005653850149388227929725614013495141124513659339172262095038108730092767257457348615855527100350811448035932028403574018765505022994447557752928370042480114436520072720705959263383875506390008825394873469622033285141357068631422535767114236956397288756795207527015135423776975974423512826960132910239305730671215466373208084786679372221587294479010133646992015374543342827616697401194007792663911365776790829685415955601721014163744936894904913095896594110604437011648523513320150981195079811781189007974778775862703433737273289927647764264804963360910525013806124602994598443098937217426623186943343000397621048950457206959621571119243088433286646455929588595125560976283778753600390731052453322406297397154540898646054616506989546795041135227865468140098823681730492602345160685947449855885534539373411464175019336698960778172363111515072327131544142294178683504500005285633901848212784966153601956888175940617003758795121833305958596086252307681884166778281238069405808785239815357961255100995359104117609292053129422403900211793202774740946200754604662159730476593913749429856838432783284150473952070776578402940085259122956291652813383158255406846700280709537969164025609095276931400538128893465572519513648513231151346107640914596189733946104280543967762854539640879446179537731971517425091630853101815748318929021069703404959446742603667947202583365620149150901981269247968948272833471726218127784283950281909641705575221429859068778152842187294473971673748209093554214826711460800878391358800805100357973977673460047593600552327150486618397452309530140477270341185114858033956527988295625909518662194483330750355331380096023095540917798401951511730444945725781079205590100385268513163094929234759167646107337748500517564764701451373212330262571118041432532133450817025757787206785774388391434290010767704827255725477461813333386531826032956029396556225902681579609852035038788089055201497255782259571958989643065583881409280034740259491203395346672376694695526902641245702641383901067805203623746505356233635159188727789437074669401686440349985515882638253261170295696850811461018743694662435980240643743580037784607288765709983660241859936159002345955310320838936920115260584087154769557373244959175829228327910975048508092061548279521445506940371648311148341723580929821731175567085721793846419044739710569685651208264923476795323173693719382404814315963016968487255477158309278365112173898972346581951698847006315065520974215776140217451844952966828298393789892910955506637435157630393956331319353990786502279569623605750689639663275611751510645052148410639592645550284751443767457992657726124620341879267147192111789767917074348773058460763720710349437963563599265423933270375293377265726204579392656705765206776492424517740813152235722784704068221015406880499914210858851687418734300644410684140346815511418506869444833096780544049995514177572938999390844970270332883571801053003185120322468959567011306467248630635354318150541032448089587151951151214512835607383905186567884859700889972119660131906776240567938110504792096768285856635489226417008489706793555245680848920222707759167868120918230858017667260457334947870830201792986296877365111944894785401982433818373741891962430206623981085684485048260154844738948837222020572385043570071497721217965718337638231892201233258349187538912198463322590225617032082897660714464071818608897208194908990989075295040958781508938265717745734370824403761816586302503237405905427846883774640476382842470085652590606559485764517794991091460598730735457846090275124044444001154332115379112834594990143303779370612342488742241167900190285669157974221489296790893877513870785562677977430248536183738587724833342248630961161744935071187868571383703714196743271689759707990476632695700682534081432959254390390662999207006265026181789545929148677153677397757094072891274002801556082388824539521612647735981772065655182486086888093776142290880383275750774486537251358589030185284968598036352044928303984821909324110024765284213834343063642070223491951773001306600406612523848207985877838426364410323639631342550412479258908112012909527228809286425561729252610813797897486035434822892035413413294337350305415945774483857639854605934668793770795930512428721460564885168413649951903856982767539427246769384864598735806965998508576450343654874910087487084450921571911913603187771448454715517947951093784304724858416423318937965089377294443554040337659715509285745653732934038243261491193427941800549930001157562800921821134028485183937199103104640957332807272966664137743601293171530528715672036465297456548274191199801225690029917680055851791076700913376766430866380370706169056659741657537176018345999367570493990981793330545209402422333520330323661247838114524961843915185478872414188399134223573594439408303497949755175101583466850303919198359705043143686496856868191447470127067339126426723407754114869850712294570080031091520974870442032728209084093013899499868959943994616272526603394016671436470415062888979891689713736864918475331212766816112712666217770345955650763931014167042310240400604297139067473694393842513908362606381295334956323952354310375482298135858961446123717317505069594711055227551086543797441287535170205360572569199222662842757787158595231724873328823537476693097010247146269833376704959830926504739085198032276562076589776748894874100780500970783653282863640860353929549977981709903971910651628347182072580240764604478532951679611816431808131410909056535128833858087815634093381529946132354014696731953151770703657949327882341385030815870996883667797430283693952975136517041154276430432459833927947071266312120127937539272784273636576545347094925862638612209022676180148484231462645080307162202989327897586534244318861511741197717822799472693274825459087712805296773823294930757092155924572417022597719055157419252992513551371638081186775931393059452415306374625126413851840702483292621186967509252769972302559992690631432983577572906273742174414764847610954582997318300767251630287036983042020124827532678128996329485555897480338232707798667646028124258096310038093521867759375033603897522815985808218961532689583426278504878115277892974178199193097306914963874648392604984030038995988017714436131731662686871022191603602296161520903124332671501213969016109882161429082694954089529745148782439308198612091019754773081427210450723918964696431930883167500157235496772629457951234289700500812386360842185038026088162134644532750896526251946725730201183669762872114547352765410479311693166344037448269558431765730323278406078048479742007677950655936459915698876264179322879501936213140512094430832995324905166764599725951983240188597044179991221126518524491171470840159353805076713004012418339321225450966764394064999823178457253298089766395304001517293614847849487753879120748692489416607001724237352244296456567136504797823749424285137111709479182899706758644964773842970023099325321233688543693720795445032015435974073889493502899987888793719055351554982407303420384812017253907497433370870967129463336655509695730305726776760325489210450364212238922257896461507282777684708521697983067212058552511910347871679485410628867639824242528864741345143984794867294807789563137463939346020634407627491892304327847515629316851396544503657597352653843365149142550817383200195318747431221474369694230161664564390623508899544949174930076426686120027787931255953954177965687314553768520522132537988432625876599454009057021051470606969617947051450208873027771502235360693152643160757595730095755653179331420062354722491246935970729569970071261104589948967628129423369075874583394298984375669006590377397142785957095410813199230692266454255160900733793909857668624632348089585957747272633502657557563362768782878269021209465005570573867112425952119163309459667752398748391938914058791875459681294510104450138692183260631779536496554507129847839761017407424573388354161332840557079183786597377910661482591990834966847358999874600907787759505576822946616803879942749135984709747795640284419077769392512544113056048034774923914733180140535571544544103433484900282026807081833858226635949400395055949077862764047880861420484048688048341108256588409255326226553349164630173487581130137696947427492966476813690529367482965647083548159296843510720421507209660280551784436639632930635224968618081684006054785922504039463932393105128558013229457437926166122071675978839141292044075638602297096066600952460885220099966742753837735723754927499077661533827695410019599126187357172298684127008322077005912757143895866160027856575851058313617204853850371876035483066962223519319301162627436669836759859129814485139415123122692834108954968474847823053769439624890353208374229084469517354705825080762775028124466115662807037460272843300790298795667221704705432103664943531373959968580665525357634016501037294518152882126198750941613565654063919759247597307462569915073026833016836860882941460114845889104178244877120997353991165060804211026797241361494551629371395866860972383474868125242535502622114831380731913254988378105860838014849734569230827626324335793882690097893756016919991076138658607910390401078070338217662232069073945343011270456731658533516901342814374431672450579213046301338105266217710370182192917753573763090233994164173348959837719410310796623224372173223757930507385669870311407894383617333420743601583092094867701812524871085161025017449293902318704138226686410957294940693275061680910601461089074674690117426749399671976199984452079358025068568258536487500693965017809728414299632954768071840384201963422617977276884699096413497669300418465377405165535907029427327166194239704909102397610689506235122995793710557863875676557009117464506745911458580095390700227144786278534088493282685675710389845236701367330086211470323173772833940859441093365104083678870813701280091278573521891369649998972803311748186970088925201538894217396362919580669116285839714158414907478186472274040230189225424068575876620682905794942066539134094242593731134255509018632099385038751478092337147499265196371772532152290246192193822354906703160185885591567777024592430140326141233134851470180535486217691238026004992256507292764195166830306826900611097013634213399019656343615870422526175640874466965946067704738402847338147337628527800843157985443701438772589172742780208603120586622305723691650660878928901547807525114760643360788519538609446704407577774530637536638091667582218204153885522249361191664325189484685611381840129957394546297990602600340134786594401586675766708827756955136671764633876630738282639188728865582457456389718140076925609414229312917081560226497729277666854806517952286045330319381602392339156484138954220215628431896251772795655627482010546150604085016683666910536476542537118722224815630299463172770314619450657339476628822421975776955523601469407389176538136726814066872665067518998010765850645358790982286363504682874207179846015866610238932660895833821410539173708818718685823139597065482594505405924847210298281038158439307019961916760131523473249080035179663792726211344995309500498930285463658283367833605414345028992315521913494123211369900517661862067519361068462096201099856182322970092485757827867928088515495105452198560795305717349575942385051348841498229592321829209420153311207759204778684614118310795659592890551048104104309761182741516666305235624966394108370387280148952321071713568332157171837861736010954390237827849405793427231901299252861120388894160729913854869645475945972946418800234166236326117768073395301931853218725735911376343636874358800309239556094334499079937953598411093262166488435728429097109133945672741910116613050199238659787744317293105483009265012539309527527848936676106822874957008660001368869868415259793504481319382032880063468999325473564064243183600623712990332576415666061956298947770599505084783690993764937582818375164249024671708937816762872111710110741082064662999774622019760792353760159895525594658981081989150754321315438470792466835417688252378909903039847981676783466464331723362970007787002330714363847277996164847152128199341829026578020697826547828080126391446453402406570413710652091025104009875609220094130751550606772027077496237698100815874011241783314992587808971967108417897639846715603495551277203055812390346605169763920026159227454275279509244668171853378595952067125017220912553253252103884750797487578146739757469841283665398421119443789638119339704505798961732334310575975411192591064191385017058537445231840635556276477958643908290114885292435345875697392376435443517854695559101676585801101563107172374720204577122434945104442958830580097484187693821257867767637913771080863430026827632735000192831407780054475605323175308656018384674505919595276851739756500202396431618219366827702597348248626725391154606618360490480255695884910550703207458882541506589677451847095846317666639500598865868537395495779991844650758170231440996788802220899462464489218648046216091882165835402838775512498201600038215444820510928323339066050972436345551726173288259367464226308047743393549255553498860647834093680688386294044651964294555598932442549905620259127799483794999564920199528028262821983086241451287715034660133608064905313380216098029939483060624592391221428443743875462213981858136644819366542652197269118691750418750493059170230909114590748871254100723513369110595068704868493593231729522134294203784708119512074524016017424459590269974155317715076786216766990734034733504490283912740157929583800410014741283346345012426227215651593207515347572228748617277169339360560518977834511878780836628343657454421140357559218789055631159086331741927467088953425841255570022273214875956835178293920744085384050801340429149181070898788959390766549575004167124727099924526125590592920020473909518336755223893751448555818473334655383474798853998336087788848473452353891709116352618997566722033087649706383822040543421077523497671185915480887937310597340129564488129554803100649031129842712055849719525508613309570620552910517147084854141318415379851811202391881679815840681129454752618585124641608522137562991348724204043498959901036592056286831697974251480795941532156721483311873806325542768844600172600734658463580007214580234691755664746721745928276336718554139497385615590564090656485635189300780647017834116997161999293709282285557568181014857498752512710330262653518543722321277013858415325349598611931336518268922530008677074336868784355601963567423144745324904187610726055222316727129263356755652699084215150707124264896919915868288364698935227848180453468659132637648433485625450331983972758550430579119477809994012274149194769857175743793604118911966563508747448198443140248943727970695665843170623159521442076894593458767215015172784664856440423955315619814253351205097157916409811007600302039985005050503996284202650112208063437916736814118840525086543635798056625796260910893590455031987152605971735104255639290097113549309343791063440795654942910745944898339196827610412676663036537402843707112557686911055416384992741708121063888326443181916941580346488135682259160196684918254570938417127466940449879797376867599592513045844636404597333918878428664944173142779339557408518169440062290778131558426686061519116285245168680765082507095691879020393935307484413545549342255015786578939437919464753228012949458633103091077418608058226209016388862738214879904016774960365728355573229215098441014663436175961463470230603049815304773700052149265421729497493172789850026239967044714407875540196424992653033458087746158351385238431671530403320935386330984839425511312591509078313055507656811929225873089812080797418178036884897494578901272150893922922336732669148726737957311090591826199240663669404264595898764325094595453166024512293349377399541943560627242480111046155737232756637516661467198013907883668625816565124897342692437903645256272512476076907778852077658356186351753626141354613301757479212064448732328175962284372352432571729966592673741231644063407854533612098617109789405295378855480595325238824938829346198708007634156667433352810927905551197590590655935166572833814982610851661554997203004069633157477000216679930506261764853695349295217320991141058149599630753385684665682862888316983531899381513462235451118937492362793479148000147533259382833318163745657177821650050832854860408388701136945000876810660457388767934720512147828295637986472889768579987514411804053548171796085167676149328104656029916439209953900173078542951782884987445248974194342062700932536785471817224872278426498089962198231626153596700660416395391208592127822486771729135292658178637740998126133580629092735617917497131461803957926825316235169379538636812733628159478759579360747577648495326904486817801097060752081728356495680563653820751654533533761181826685854299149155071709785837132826556908230947405137152498585496043543537867530921951535701002130750964433009441881471045558685596775068244510215137616688979407080109309314449083512876282254144393368504812019674208875393897102338444961522196174317559778436227102257866753076404758244226595765575647774296348690825576766517803582383413443651280843102184589183076285590189748019476060765987115827195268730532730563638122179373829685768554943474874690351532073527912346196105176289789537836440161373588553041338655241986159848278471047707197454235717919210966305485780217932205638073156941830057030545522374018430398297878523804431182713939999279795327186610609244542893236624003563643249688137620225394677950508800149043097302735610125361736226923026578803341124084139832122413952538476041654343155959168857075845252150089248017705166549917954236603111001073391808212181831293971185603333610459478272612445323277367553147329312997728497857229928694761133040729516095064769697576499421383447645312851180695163348377162540292749054398761513765617296584131449479392151551451684277659698375907058938678144287918958758536330319550356768946650230808864046851272582564951868101748971475634333136512218558284447324512274083082137538145073883413749109331194132114745089085664269496084113899274491537671931458450037770113172930661165428413901250256155233899332918997428322029223095418796498155329684873464373301052584015815248969753590936400769520538765463563417988095073585863393274749910171555553084580541698563707500229262490711679162606550936761800945998543544680915276235314524832362735063697301659948587895756100977609655592815368844181299183155112597436393111978023858275855618059589111795580984575557363806484130410687399929010723658278110204245062671250254340853239061816002992692223451812777318232101858316503634316149710321303278447433166705901742429876792238174989951699375922114806492505431681125990883996759588644401499774837842203450099902198946098279374017485131140925250302006738906678839234232131314490996199303101782508125342651005677552465599508294418615623140426363346159454556553822474819031885731237378690877757556897424398736757935735993935427672932350386036553622166761461279184622536626288332713658791803331460266766231340069505343290856492250366939480487709778041416857287150018438317562466588201460551298821393050830344912675375203486031930645818892252811676471327269998691007242155363580821264642567258578617177314795340576367519126434448164736262412488331479693123432143271264137266726814162417638604135865371968679804566163143485681514132075738766361216670824851806299926987050177779326221883808912642340170906111556978050148798189271581560613321264526743217294458524156819938546165248439531702835909315636745294675357338465741012693900668985793699258574689234653368850234886298064560595308967291573176998476415496238896090511878070020020691592357582530489306333899340622574869771625491740507659351651118760357690067842025647029578544867550557742349456251987943127436253343255639916507602459186955918743722859617080775442403113005604008183550725891845702444523994698269318962257950562286245346955130568494355321016396591907876184550778630008335488377202153827806904168017302591465116097252581014490274432141323465748340845056009854491023610941850878473374816407090979271759929227245483473715963273474224995888500118024004483834876602490250377754088498318851298129053692104748631128544844391823091105883872058727290288072379427396220239719665932609029653566970691648522917139780300542038640609757683681186760722697065863136770657984816575227675410377951109015002092970818426521488149131562568797484504050951669157139281137081232984958798834972254660270325922258107189505177684199575462268878533525395187063538559352186541337434379810556940589764873336448068484098910013094545960318137949762917691739870032781843202532306036451367026393761714075453477600974149282109612741043346456460717447526758660009045096637426830170649009359355447278228271885132903246910533069749169890156036106113840651963199885979075713272446493507273376500423888501317973325491164166735155968854452642164601774148062718177798571585588347582735488463646387645618119361631909672228640057138598629905504683083856060744425680787065825706410350423658519361853148335007087798460529243965502001516272520416907607746490024869938047057424826103527029586137700778316619765100513781092266347345224503436111252597322190708550871998424672088961145621650037915389027698525226231283732233647793164929728393573503595470311286005452917533327222412448210128433830469559160461608378502590672443304422162567695378842031454774710392642793793006135243049482091837719840938796722409243059511915879688036564381565739025478101877956703791533140569373346457677351715014725930994284732314117073638851919095746850538863531110766781321268547221026893511208038809934669217943546943209739470819945771731409504661825751625865173651222909306862967124535738275140189697852042910506090890733602725798259749407701133195911910129208036915388604137415669224526635925703946492632564063904125440658486535815077137050197479809285144382093985245525103786885153042961698872801757710957286810762187774358586059759888421787006852422342978401754679695816546232429249438931680606310723585125978062744393477695934822472209646184624575199362225662549030072908493848144797414787004018603837597498893490253486430326522990020581046731581355404563860267234686621527181429125875965725947937697376213903542631214055685473665165265860087848123899777102839659603496577537550424111163973615382279565076980932793292305937970873173833279376156952178006151746874105129741805738430925409291261365741075887560565349701983311959185094480565168825845140295140676812424173361823127239501273021589841631322085501676275536017182658588298880018834933615495201889186358862297645536869081024248126407306620971035343327396883265078498751710044253265645919710563883305734675834180484807444743211440953229722213963208821316528291185221622054937642042910601608940653572334312780068432600964805823202525709026387252749406090113421162994633545484968573338816027829126016762023946023586792515472021245797089156616750510852678029964328708713172803874458388024522923833606006192502829026116920714081299900272604856132752970439448283748623873808628834782717102443569099363991216760401906001732131875419951015966015415027903723945661002831009164120714063115053730950914749226472261413869337330461895001509146299663827776133273858763315126685835805881102626557373576358326592532175654997163748656023434181367675787817604693950811421614897357968090868505000260477093752977445479262371649248711691621894348856334464757106196959008970596166571770271878565695302528573271365970151208212397021525236389952171942137796925338182997674747405226625146630283509658747481741996604000478694894800059572392653476639089720834578660772628623561883585058552371949648216023175943558167613341511187011511269388412681420724932670815447514295641533998596765611191625359562346192880048327096360649835148472943589093351803133425733523561389118206669196604111093014938469174847422878021144131646187143248602721510757169852150099923892710679737775725479283102938481393691852879077684335868643263892452155447039788338002271081693079191628114942777474141039502820695609025261758040453419860321451994860649599918054495385928979780113614685222734084766495319953729752877807187768850060438978460464219951598394305653559255120367780984836330337260104296361090042059057353463718864295621193756979583154529954983077059317440551989754181997868544423016182290026517993572336154764826563861112871220892281387288877123490022576163289223550618633245180830712667086716843642960226271304806716634074067288260359550336722792494291263501340732621518663652382124750593145672737234356933397007219655923139972451249541799306641405686897003337619257637049096203371572627664577016673193377727131143894695777670932411350665715959005305040666812495218006171457357228796647452350845679186572533778881632556524773560847539806765807077347015265797826673881910329137846493816875569377705952454705818007329748708131856166843525977057535278187646965853658146447922535723175979132720365239036088261756063184568524608759457718352728302665797209933493662812842091252694949157529841409821968092725994737678039305077230012631952986118056888720715971031501175748445553486645425532914726297148900320932425157089234567568751575583581715308560317204092784242686005496648572038658643388635728970467620277055674061901175724934771294164765318984301907999702588814259060017110001411942292712800851200378327676579588484334195695828990099917962280546492423943158996414519957350743148536993012685831036155497236373187629032924446852078913722781636845768776625268330602322646534925856018419932937698114677342907314253376228249332789916452657189157905059355365099811313220904552930118346334723074800971573931095108867180865225228933200314613405749622670496722902209075817488687141576036917186877084725706079094562409626344203711902593126450947471260941850225080798944251410955878926326917462769275419718628623822439441823463486530982820088755184894746993766450826548919688241141123882190024552448607379167442773631211153839731754564271072493141603042855201801175941349603198026056972027397778618235450684405370927843048110332966971539668337664425374680851611155620422079078812817829088264963107457446906161359151113462279013985981603734235221355585050104596271484287025349719875870230530049746445777947803114006616268309097920540096013383104150621804868177909388853507610634989350412344615145889824531648209710707233223947848402379499701896918790514054385110801986060798878181599681595399327855133895950954570902360917640897530670031514301400553032935637543824748645822890080130051886284927589886337943291772672661553756070559376355815753846041496592399677409395898165082171113059667556026125229750751728608702402801961651569779069839066482492333556600174492290143786425918812360458224602728414371118166614079449579117987194741605675020585451715190829833164978089839616641697505383599226357804504120863420470731596701588307842942020524855951177637714156541042259606977204796419469374097041382418334093263401397547725608539868745864884135078223857180366931370155627732412763249854534431531793086533211350012702635875254830713242008296688262745917348335782399888543351196508373450321385626829158060166612180600301501141144639882254762705135953101290980146238634648843845452769338274986966726115601962426790872236396829248885584751396438995942819957223560577116878344940253242452965966835477132178857173036694178435842787727084265372788386681278330907130759935109709986296229444048276926165033657972791262173610473739402402657744312986569418306359302885547654594452548896373403809417131195417925966336520311092825230379383211666387231878571539199113826056739074510017511892859359203361709180165942364584981506875763500326218637467761506649143401317648212464577356928481276775330518458033272647053295001510488202180440245833349856159533471514738322378738756492936893541632475607524587351612781261759379692657225580582783266456625975515048494181841639497799379766349524835612300921323097167151146380387408795264265060087448884279502031255724621493087980682645684246907572905782134470362317147472179916217044702680904269468078426783390549063344198340566366129735086242137429973696181616261978186652843753631316871290616411689213108680049284835710683718102264460247432893669872799651599126494098746907752624806061894495558446275925675700373654870967082198436230029224911358010439750636495433588330810921140655533278963770434339511892950332237230209401792970617181968523507322516311248416322641341081615578095512463395389232434240913612388142566985883298955110310561506977810828499274360408652017589170177253532087203301579089500221913115872056139117289873191942072732614282025699533821891424169641712785794258732740210850124099060665330933797522469602456414508378751181243813763466558927016702250292586048309135437845829978026184066601117127564015707583849933978234846541506448610125779041244936439179160229701323944726207838235294063985555899346197717965984633079301699540887101000357958272966122077460549032600803849021318678684400606939973127900196679894592957420195921363774375646137060337588322499217545291175454812275365414790647982806320041230536903771018833530952409336845496202717080707480074796873801756033526225440715272974435159395283562143375456361707130395167962649757521190102450587493491469963935477498284097714306598266572844406655206866073421192911248644951495616441980976758897889697544308958176421828373453252357514816520063524886607954166006224133810269212393529823681329096153453946777208772265380288921659809810073693522578577723821073095741436562325833237262901509351855108931693750331922237687468601572788639099794760659746178374453950616975539582086606078329970941078931224307765386813648475201451498219441562691232197538811824980822890868466107969123230198897760512861656081996998728071414604081766451247491682288057236904864593924000639754014443198236311024492204237399706461979504860519473609186354669912853510065823947937662938450360477559040314658650527913538118559030916035070748298091570568692926944913463306064924361552987592117426363492730567521930107723208276163280147774758152638812943590485510436975061716177334707452260318277886220731178141766511567603431984412787891015292317763169092454737885101185118510718031279376359972738600087969662585058172636256608218892728798737701654917348894915017942666165439189019485186989196300987996511109662481047902084601343743034634552106201716947661014983640651837510788991260893909262641378563841519772035762692002979878201138637862012479753292597940344641408736614791406798768207776079424537846718264687075516980263088111097563422644746235108645433644124226316024098941931543017526633936129913894906939963211874589894305698714714123465886286586477256115476654910127978655581483550185965140183404312460672681686418589622249336092742794001959790985381046959830737398311402763825506771007444300964621723420020569092301871904329826563803376434053390360304596971734462799728220138694687135796335258186006585941450062241651911716830873282246354229569178996894240726787023298467015262031348968945427481815231690124800361836708551650625698968994969452283031445488330301667859507671086897812032914301884294282991216178393873691597172018409064848986225451781364179971412176687251427266368738622607854306358712837833739057022257711445971965219834936433782836498637676853390718519684418245514823438982740114063914857880650057731799485880240186759717411277491754928556137625228164477581364584700825365917823667655781493423464202872280514791065270172173029039924344942607455004848523438096555690497129096726965801542770650428146332921155831404144799563487539428751766054001681963949154515064304536498863781428046615065661655349356777509974590442287683586227809204645974527612519605970402264330814166231873014547161784500671806081162911508284622017465597191701943731902829812504352712537783998964766705802466040652913331660425756878929480439636701703246311356087313410730180935231066316733848678650939888463562727273823772009698033067619007967067145795774783375671224485507801194822706296817302104957935801207869411485132778307031208094503272888316240350739925424105160908879193407699550224971285650197919642676571886846900144322243550187235240581890867114206364235075406487168551745108744973977545521047996541680511957210071709971819930335418772810537586593538874799058049138032345073882570667566172433970810370755002005573406393794589093566297140830106310420017199305680499867458133814946359900009337895290114856084359838997452221904734742644100087179409618278968877566680903645352748122170529014620091042996158555385914682821496032137454977898959477309562320764720632819663839344273657762023272918696547554860868871273651555329631301001257063469369390726006168939941697919129528416640600045764156348974932410905818587876632194166216121860392682020109429306924878042903499363948120288489114661760789243526664639042431739179659286706477732194954771778208136945770782207936362187947083271249902952511964925550098859342173661681905003303708271047747750885982930891610018075181855220070663931816931242660541601787579946135267016703299406538047316220340172419679114057769720435540250935617155569718625857653251374637504568227282389275561425181991421048032070283346975680095257526460216818170682271946974909248308323699390315781475502664928708329183707047198486908686504942728588176920927824175269812723599716192980082253354883812444399714512127584855243183874307544864044035070430691185366182674535189897167975487605685092568939927444184822913597293072770660880900144413051712609329689139107493782996874308898887861778100937133658597621420524038625454010344521726167625822863760507547255627886970695085277898423268395018699459136474656090330301920201344588102974561865803142981248425868555023292835099118134648423245453222631031562529501131317681216809488613449770029810012828223886791296917139924033248325328894912893438295417897246441241053257438217010717172582961193252524140087194681677076287212964855093694679878316386308047977289211206821676700145937739726606511405739731935950992256584744379341637269417260988558044242243937301356772326952484671944132437318020888665482414435723874234240527769484434013312762009608163000285341711009760674335268317977285447636075838893396356963148594415422714884890247928572160504364356685818117285440729491842437893331273023229852164017390651435935733212082910278736777931290805522770007080729413774327248237162673798754213727286959127511220514010929491628042576319872500636226164403958766299510250675399705024426703883002390201275335876969778274418870407830183653233378093380091325441214429182094718228459937739464989386370222982914156507749106806321293980666677903139733755939861480436023481527103060880246614865707982669037427328524412249903112860155860185185695710717504455034098343628535495135075410573596247601873595065334334403157126240483077503230292761009732855829296813943527975663643542732003137281998760335388600602332289928541859228353734364922510162467681745158313003337175353539433773865718028231555060240264053972916384031475512274890514968784019003037088473317465460931793465723268706412632106837451353314311659883348354045700137567756029200867330760192702704617681640575065014412670185874325691974032776859709988118625972142504326183431045073414553651789215194735245724191285154876938201430061654373600213440063691993116309439367495575908005369040734056032440380612456895934615899195956369488294307425799646224648559331991447424159309073690068756830314641643410357128399390744449558301494795572648780095497002539571414413466165052515767712408511858775470541419720238957126143089777013287123433682062526880942385065925580474527199900313130778252733604026056501833216543808313854753196619642519432508249827979974500124941445037411434107056215013440817798174341290001055788446596280611610663019053983041386683779374274672727800852813515882808354996476710262442534654630505930679333002443452411710480846454716028415901021167208323077724819013348513100875027145510885193757443544518769519065108786042615615277027081815158097750324251141637961399709213716723131929545236617445592197949662168596296175185706138592053935927198451403746186961157479154264842503267061478127389696537314318654255716145661401586932698605050157662097915251239269368632988815659717606717553825792151056422498456290514506535595488837475246787897171526262944145623666688288103461441088096856084538154293459108420357858928190259239667290486103908889629894605470407955613377790059568599950371746455294173437616877645437795673050156067344789684263240176142493410733655141705080774636149704617068894216931269628331244588364167291997177947842455039220077423095482549218015322922298280841469449836600872757292953061702665686396558262323784481439593340806620209712461324133165728741246035437269044919979493580248802977740873198170128919489371073528711734066641133606443371620052319813225171110678906662369573438989223700242186411202969364504043881941999382684171649678459577088966435431086404043303437858644120515766358727406691096506100436498217742488105910756619369332746422747601072729405750235432982034619302150569472566918775922529034134751133579634572846674438062203665833894100463258778075395513378244936892672793280249740816966509370157909479803567952943740371623885516251725886996490500272734332790957609027880755073298086384277935608795972067212240624791865137007292070164085956361377953247095585818489647426372844697359729200739472522240957252629566037902186837823251573878558458761463193656949083411336028254813961510583330943145030530888981676856092036735567483971455572836868700694730211229881292333176275156476827069662752060127980458404074187093925602998715052414427453166907682662407279416533193232548214097666358798321369051113046416770371356081300956971966632062339100244335527282078470749711436140440305875216114414329996736245622506070547207548329422036627556886430905141466555614730841749333952646587639256248034875982796179007196161337009937134340431328315098249229471033169231029618909011006269045595836553327856849755327892272965069028026948253062005758778126362814653874438622459736094258064384110254119833610338272733907395501774937266735330508338053498936263966076099513252223858365413938475014152089942160124964401508908774373180209471375502625859786111652451634117823646015170496437634161855560622993820336868057755045816982527526755236955659992570302683437656005067919687166844309617648057699606237980703353136800400563885558671559643157769126455027899744736043727810608130455573078462951989171476744536700994614365254243362731106198074817037891193578966304585182518271421748627996702230493578695451808895678424436175071357836170587430573236705933688506224399779692891068956900363575371781287175426645157000020239778911280950910072268756308164584866512362815215796778656817459905235473453717485287601372796881924060232369923513568307789537149780614625978826494688115284554812140757588205823579134265410565159157773086216395236341581733945083574560881255057952994238218568217172172501517296308883289269377955937725084909660003282540486634056350647816987319162108033467413174062178019961223203109375746170173552372322970026412989061765505236396964056744085042866877373326619133838262692293530926209941791474204202133145544361851767589452272289906690869726428569525792959519570877840639068588036053171953052695912718102377616620211633345466137883509425589654510628909007129479485660857486722979040090507179450192018064185444301510254155637838294626783633997888235624450656781108837487042627529230742933180421524346519503357167348525282511109339228306379705622064874839956235093611006771155270134298463429000008797827971458699744172112694453241270879782775577452422975123681459167981706375301621430614723857530451713550926409263231692580413662689211660155544536435232265523912693235688912740410239178155229798516893646811222866530115215115481231212135411779949139717943578755418172626873553705677369651270995836273089719458706316054579911822942681376570346737328547970784975966608918157674233509710274342136275315816135415850763071880320877176091046754275842421965109554885386386294048663198225888528041045886395525684482421065174808282588667090702643288027039511758568122495523337458380661568635779761639058790651626324461612421822552539300696540706601341193991581000421538028405245918238202823869717207193873470147660661241364045889467464462513732815140472344033610941944937802883487077697508491916356589086064820787704500013738351091480894865964481309658181065260883730283223646033231099223264298087497691393511720883494962247901841603229049747737989262606844506495983866346420733755672012902180456629654492289912256240421755428886929048254707952228053615789612226081787850642117463605349252055502941749334860626501906780128122797318701263327944615831167042145508560736713360409816636387289229941180773205606673856939853264013078521125355397178650466099593973001409601120657176214666901640647563258927713662256879823208701400345807901055651914175020612721577408628901018302296811038842773621477467061624460139780296341938006347770708951413008253010921080802426521186144284340448892384247952696100666062657011071033661243829861663693818917376627410389947670937464593945697617094669644192493447450141677612533961471646909441783951303560699061354947682533033916692089581613519637232945102268648283279348717055244807625364466400689325092156181221604600121954089888793404993234275356023421414522345011598371956034442607265239899080776687694429878046919938182668936578069975157459532384916196047679616751354252520334954817820504544570700532876607932824534483844229335870558227295552646811677503879012864450375200429064434557462170195289888284528714508062990389684924031324620134734242617176920646798026971470308545561494104513975531746898402756519147394655231751884796322201038947868143867847314543524272208782718865732391686191286727560574735626510290529614359199704470818263215428358810185103086117689343522261270089377527893716402127019158950132330690335509075618888978015365325036207783448491337995571000859630668236583413478770966457287935170588548955334981180179455366181614989592557385530792590135659811516067533965165662366773795758448770254049134134515808334326258570856577027333051361727389866807299505853400253896446789074179119723931631509452995274376553304390636817414889344054414780224292606664270269209824687583354085415666626547355261476823955237487497286329946492861873150924854922532258086019075251389032613148810725384730769362838057334128987984176226164903361968730036725994467480572132472767129175573740563724759571080257335447382729914249879429173452666904729703208968376287284822396325248152512207653177995462874826522998049363663430104038294938548344773211877433635010877954929712115473091815406652387578847477580002984163320980973446997465166331520241065135211170167293343169087674863758740316895281037736111395364224694419454943620513608568521373586105271246819102072506504690853978519002730578054541510331633734569947022017728063758270545032669912007530987400404133067664265092987617272612143712967939587291034051473845682254720975664806968213661125584584731785439813764385630723254320299162579048088076752894060238541180370802531706123026398381935390192646047958161316153971922135772013779374736226154428166548048025493177711047229477448888558553569751936603875579784895711844920138292678878988129291024352030496226205698769447653438980848215048147916043123348492356116170084939334015021773757404659625209953266739788431477590091292088822311557449436338367327809198223701862022994396513896722975182033216226003194632891707017610059344296700181141557552802493460158210875025974196765999020511911701585455121842522938271106980494948390073411368464638340293987185093996473814855097828118911350460819380059627166385765383520918984892647952145378256726804009423475962013076102689510837572526168919449993191812075506202540423511265790494984662368506321388455408405329873569194884355860027360800707194037388425900638792063831644409696367628425160805176215852084522551316994179541107637461694503405366981074617119628716185999494122820405406193484436114948514173267117433310424667411742998364159238774659972388180391641106595567775929296214846084881113166324781786135344755959629052914233816881100629260785567845978502444750535750755311101391119841823887299224492671135924979502999506378712262804363971232379119868018337405772253749585025614447871226507558872858913024682903041660048195020244111337335884233829203384058650922487622473005051861812713772511425494043761632274887081504158901040254800517988026151765696421781335635976587900065792435636256422713229023677570970978490897947268804769731808379854463886165705413776278493450108884697081895451801597980818312419380723661568398808243527184024869019516185935472760728366648339191820044108426262834369539016794020595473925394849306846215391529103534848776237652737381976829295628180236063472393313220685972405110758849801724410501145119638781781823559596847609821074397194353458619556469604098457796054879553819629005843892997921900778880623006004312891617952648530907035420798201234478176526822378080843695212165075203968492154960732774653312323516016425587563775707166132165607394406185952240677324653272835273037634335786256607608174410663370999131241203109888064558784436009677955918149344802439691239795529522491525845586239795404123684905675532047544605128958494304870746311956055498142170333355915569579594770735717337197029025655337688551163193352475978219808517219472153009046680447735378421747468507559479587953606918656628602190810453876197399661249469322231974361587802162661175634069488488040254348775873176404173990343935328108758149887998587070402141882751859411121351386310743149834131158815857373696889015770095495191113031302491372557443307468063615890706951991355441229736753729967012451237398084209568283259011401657720251530255775305146161102323049726399431452526713338520966531969404558046526166757435788699374555868545234570481186401422390007156030678180835095251675464895751345653695807027803346941003072251318061156595602282958671134012184853580580547325687070556170456919998877319386671798874200018289193721639529098028607438299889867884865363309035154684474302894278863018188829539726746315045978010575955655859918515461150020891382614110188626044516398282370125611401663925835750591299573389060684976774754096648034940243173100749282834574234471402119454180002075711564181626084950565984382436712620474644692717247960910964623662960913638407375603972227055921762220938515764405722640305447176239277786455304018481313771449913617283880711118022212181571392038237971867086667629699519835841030989349845861498152890430593891820005244920514701334022704135307592539861979605893964498996246483986938722987962228629509231192434989767783778965469670909885581284824909218942262312544536274380097606844393410955970283881026314148064216509732435322860974688735714679056850106627971120337362158808379940019874562549054010414185318399050521641572731683314085385946818370428245295561557067441037661155673630921636418678606403687471056247738686927071045086526451115889952129542135927457564751182060264705383026592407454047796490843681488892767295715946872150925922441050613710393596963410209777748268595004321996953389985422059972482733638911089234313393266510071752016582308681818730879615949587182457685937427287592265844716464324588198035902658980233732983698334000184418363541613730588775338766309361666598713400654626742406135045303783099122341586832622364083957558301582591536417738831298022396666069470527691453689815937059575917972135649299863059028869814521823183799561905135328300772738347106643262416046744427008872481947025288098733210758263297247442241413688811777701508523971444622064332915754035313985269232427701493465302533210439135480536105862124403875411483796250419545446630096061889394933660060450850357981656566239687713401705092565195152506896539922022541851258953026909694400565722315488561059040799338700913372751955424785093944557229486605132965832284367243626089355120242425816667787081294716738590563838204946600622251600828264152835053080716317459011504768072272669101334227904259721661079613534154298427200631929419484175511449189754598280864245727578430081561762713421856867957804356527014857903127402318015224177884635942854460503193742787017353864832786012000752047608110541365716421888510484947196127661411807340720487509475642648046975498594310944302785713733640341784088943520661373657454364026141197072814669222508955282944730234825430773406855071870586254041260628350296609589314206436257956206999090181914261957715822534315615228978784055251558986497493267890553296816933099014521602030481335400051984717913854957909350530901493506072247579816096098210217436603819498074133233920378600360571333512823003341126547977080280167246788540461560598775879716289180535742266686994970525137271821415309259934039441084933057864093857799251768001116282299291743180602090666060953764207964102304271857678183956116053703082453874957053886164371882362228593235528938807101925002360796190542798502361841253319538695234593936984005264265776771458575199511179964009235035873834875051290288230400850556728713478140530673717967775604684411408972653840199120538775174663238418534020547494255735345191682541252027143336703299757728638861470097672599334964124715094004818119860660094122745903751469876953581423693646763959869501556810911252931192001507986401000976872606905407915145053432742150209801145406976804105455616794589108273309495965033628263483324023475776386097502354223754648425049274263734290589087335027809961822417356209606510693291937062584024353559658452047551205897539194453780543639048766214828960052809230441649804899488327603185170051526886088045772113796263930040852164821830579348604326215707817144674198641094998765890245187396407872256308175016123532466979052447646711216640442175118906741384594694671634047903150512262684552164960272849105364378464223759735116984025580938835272147609320491047997484872523207536390580474358930099265566540266818801906420037901941232961096786591800706417721896267592914368810617925065956127109790335343160723008890764154221159487916326258483543258289006934077727942363803714219691949157803203412843851898847433094956781371068875126427040174215105889024051442399843678933578416880597067570761053645619580627269564239740969394056436040896745149231926019650192072036061086720364915489871227806923510987793484470577263574179929207665933681737423391980639130457815529687324649821083297642080654817727231497859110718904645543683018563936626608184429690416433866912145146648586390364845071093567715789242565920472221997294299875296001751091783088966300693260708678235213056793780083965237101998511199926709657943897924327641238555537511796111151908789455144844239908345891776994895158282294965372691341566434707355289625043313295878270811312093027681663613280044205963740701192198826595295323895507254868062305728001601343591488026130600870649985330219714624570778727337129369513973408029220515049060470767754144191043734386484090784168913886792108072215652171268570068492651997749843070726538713308222517219815822754609436484601098025275517979120911042058730335896644498710984228486385330704799131693566428889075148162173615741382712615519360031668989701432018544698500473743252206830954506659948961787148840478667407820402622905443846858423946901242075081690348829549843824433365752330979735822257376225389668366077250420231086211907191969079297088742060837896521577771448233121061403859713651038584909271128703605084674388395263711643027397182258902837286403843970720130016908192051779990759418400258421543879697786090236273415648575620827232008641003595125131616972335846954258039707699185257321119752540877323970010344858644827709989929189029913566717196723572127090719232357106730939911299409031870101573541656841885032339516349039115023165486461962351540581103220533428204100328763247754465795594461927434690886431759849716029130871514804622581526655581408742799529605400806787966208603961101181349167239602845593266263278457631219500647627456418028554040279162851013036075018247460418655051954138996212848263593386012603125162776687534691168840822773974651803004684396139104542292507648575163862247760924726634440471762650521370460875022118982700791400571533645576579189937677623770988142535879238540262787946725071331723474626291451217097933069122458050334341724028164666835326506010072625563430080939063886768130864950051729608365875616116632616951617104872709567808215060878268531655417811081782556674810351175996908111752593619164305936397963312267938087864473558737189756999097962611325327655396349842581478896906214310699047549802194598591043411234394429644883823380755539233729738138146618957016983800775667778006360747128304168668629501469803478821398591056019666211854809596535965368720164439516068924725459709143756381184281705190615645854461267900208329051998193339613678692703817416487208631556105652917755672546817094260713856150302781143965951067453528046909545438861423933880596539858469382997555379885239007231369818456612893178807187138909222008447717314966351138570330189593212621457813999112245469617595647268147656364737272319355690930204455085509475310502343946675870845428789701717523094082614570665469433732346058803001681595955699437839012581239513523239377920429009808143026692698062134356955065754836117950302250981925308731886913402248939790397610683708810810048092950784840199352227882659494910950682228959915259195697828952103660013526084151280172696156651304232934890071981762745407731515900741734866952053859126964554592110903073807141447433469137615152923250239898967639363472842448076561006638587537815639369299639932463288927507284317288987903652079594192505804604397534391444497307206197125025697396930724345991574659458670971964485218686058391020169964089198195399901858661313368529505881480722225407398849443732708655558915250995725797763561761624377070872511272051098564297865851506879783758049601830048018884101561418051334673597518552620676696272835661052722698558101282690942728055324039767295429027229095341468005813231025808594093872685356402590983666284041817513583661860642600405978675084238921541010819120960708087552566012240303738376709831948882610024492717950764987044600967335790584795868274611543450618452488998163524499698563353684708080749837170370262932962935915280263561389346133864667425103890529313457120235316216889478298850119820829502612276430944999877453142521640968992626547581041005685675820595417539153022117510554765766706044364474522249104568187343353963155835236538245274786442366971521269844984201898865681091622304706666501875692570675211268221889035989494668871928034642100944206195580857084257054834383150942959628354264035744986554354568165400403454809666205647048963475200767739619440515509474066555313555664687040930394367118207334388771988879098200071528054356317179530430640700954081976696002739417128090897554106315438467611801050707135454949491506906210214998525511425768858675706377929120311815254366294352726231463311550125310101931072447898947151181363871200914171251772981616190742189142774492821343158265286177477756418163190646614016486531655034669677951252302642170602304167575653164612349722140478771179111733525698124526031141993173558435982147087911159220292169098657709310050965949775941442547523326191017711447612750874249445854477728101867576519405570411159028831644189514423860016260506899402159902119500453081565338350527196534484619576791827195906956944214525237061808403543817211433624190229967346378676129008276879348517247902210022973328983655804374035837202758840321735153505507725052608583248060909258449343019833914624650699408480245281013714833250162086793951750782333900330450249001758701071292038198576552450118897828457183708802227997374742003604226182614838704242216279063981109189001130084265761219582112040846727683890251916754693930496863155756911404706895066334144407564732539130848252203164452449626948628018555658430367766493347389884697790689510521864815678508012527846684948563199663805472936435884826975661138522076749519678738522528995336650571394699041677984226616660088999518573697898441656316703035249135318610114146214123038678759894893922008006171663837009394383923537171332592612168461909757343981273650932713559000559861615546833415900959367185302385809854865672203209424136788400566088140071580229250673795446344768587203175283703803617850992392461463068467525773325221169662413648823946211269091698766770834889397991587104482606043976821213403068481216780240036362926376328130075477662970622895227100959295494910645724790784006505155989971544188188479253537935203755856944484449582114540261575958642034534616293907481047181343144863915717190617053231404467400796109681144310532370452391319820835787565932434479518219776655731480342405263532737981841092637874259712230010181984539359944875097346136112128985589092280363610690518416469292351886389964696920336988262744923199960161713168912855926991629243408609648080086478166279230422045490027721705562501441287815131299479989771862121873037378940282619880950377108699269321621692681763954400151479154941294621161619862773944652244502719483423904973544764413059642286991450640218215653511932981633671810290413096974472857154927946027581512883208301517836924974408394025034542141054613249520156476482515461966396086767101126276529145066714719722176943868960581161360062128892034957619353548699090923285119247663422703361493296233668478999217322363329943055905471215353917439612552958800587662526664318760837493613651317220158466336117866879767896744801692662311372858187010341225221200173115980290854384060419852209494759983596628341299900434212723832058717083040765474130685494593431156999650720585801327425727735971333598913718670797999760493586703126269906562612346071393957568896504539900270289398767194902054604150307538738014138175423894865622574963310996145227606791582325244315853273976763308708725875955761978440681384922182296046145885918584238570995052190268329216487315538666230837858374807571101916878518262541935565622027351711840338251558484036583324726544241195400820747317824214564193834917696036183629880132223960658822660137905479682504032891603410194116832970523154229214119082018942510890209891385361310894237789614757255029216393409902075915283162324291668698931320674891099638887595628730555195420385163249510292167213729532920605742015749500653371764912904859249005732881802027356767745794163945263556712620692139207528702976161548841684326484004445016137939011439534059183951724749895663457015454861702623570643194109966878003787917863946597553737289173221364703857323575852531121883744912884788951050436257138020756512431337919051254297601255421466807540387377016979503332002271314467690673942596759670714124856142091227948740480727960260573449562822405948082638505244240837438179958552198777842383396878226592566786298865122810376452971032209417750527883838002567138001123010603951766576274659895018740816795767278350695856391945560846411649714949671206890101181049669766032404817335221738692931129250713576220988290648039919389889245839500728398218388392125106888432412356830211297665618514874366250112501689691685757999810941396871812564143113199297383995196635626042354142897387127201124712114655612012827370435636322125028190508692282315954347512071221911715627129391464214073275013979773162732009046324185203451781377193725519231811088993791802203933862731430174845762090155144175010810190617810104811623652774487812096261474195599722679711028329422255429290733075575833200263662097239637159129636844356268607153678033570965629085079241326178342434081535064845003946366493135960754019471937749632149142592639422031823253269139343304278958252953294635508951686166473835247550783369984063272580778630382285587741588654958637492988690247745077669028455598584020644107467422567451533266195334187338255413186322791064531809812215569357666329773374523644494527411578671742296512664278316463657481350860626686997977252640789286240994717323299328655778003154462923242546487305837574286419764723975220585539690912142328946303823615561646018066869881665640290094241537262433294657132470515632232086102055520887592934352658129321693428395346422810638854564260737780390156976104354829985203840156896967783348286561862910662863535069030609710783564591461059203307026086859856295697383907343536724030104245429726727985367827743501508975829201398033194221261731226168315119498198237037709593688896824071677060188078048786359448618265638595515246937663296547365348706328385368706419303582969247829586104634963227731589310431884479474923322492197356932357617000815813527251077118122747319455044440688347304476566161676363229416137455382951127071503462372216266025464369347360462502892902165020179923497138872367130938981756469143593484362993689493807424916577219558745164683031843186595722713462886776279978810131533039996998552525811481774536830414009096706707579326977160153169877301414705272452220122283112675501626170423550991341039124321452616899677019280349893620077421727216309405915889650705584088285432220543481762558403173846967675275972928356609109592683915162316167729508377954503777385729826919504088091576809336792455393669115885126410680576241928327805299572827149849842087159665157992308881816342151204861674423355423363067903083378922030225523786154277839710735279529359566104814282327303461872273318380367524394836353084121151996604763968620480818908684015162391178537565670391054202091280638159370816042255165413168806812518603226686063260830257775678640701925326439388716855620845437504571672353403327280387001792172850023501277512107604954850721534073139658676703967907432053602174957367512933982484940617636659802194700999951835737017265001795616201218324098572618032966567777166331396081701470403965839318972994947969129359816520244498126606557759747640557873957724844728728208619335632139750061154731941342541150910789820689409625729049467408739380909917512524432724019914364347060189797987020232658357981836476796926492951777479501527133029637593367353607022470740979910361293609008718315536322314679157541226821836884923897595117691192940547854575870744651328216958596533999755983728605006835134233293310435047520523784066257849848494255548990339798258401631020137084087147089942857561113865432727763768645877510816470452860913011882682802645228449555177519976532573882874089463866050444600528637237206247397378312430725418383663632946010967194148631517700798953221206540068454092366036674300772736277637948570061185055736963748733199835886449940793599378576407594442325984369261633617677934160648766337418494863533212546159622803209231109740567338865015646856867970372821255851408053615529262650973787799689836458357596037614593155958809441492412584203351459714060524168613034466122657830619785236495881532683585497983930343832536598571764139264218110909141369587422809075493574875898286320413147052086202755693919234929047956174019376648029672555324955567424805755474424724629942598150426977860415100845095768509159303492744308930589171428254348330951818762078857288545336718055064186533676813243215802424396650637648757498101263184824619437224971985495918699254175529973676623323852608628840465161359679368121639427399890636683622347667774431920926658405075950790038676060881747383659150540712192220490067987065138339560668311125879657620494746891228558007066376187265296097867458019224854792501525150466411464145986812582536770462717937127332914794663201302204742661194073264682922527147694613636254464504195199197348599410429485562555192429225006719531715807289411952574930528476532221184102093183614862420113524886435679093721648206791741215157482890196621691155850714593350528105471061422256151479720052361208915418299662441121843883505716944121599194487995818340398228283198849724170532256947063962619671185354104228007991265213977012258245196032719631120094978257240370572321434507795294800171825864536266626835281720958470202054942709533285539139224757214853866922497433079661112638365092731277114411767131994295889016783789886202295541292999475732284979697335729017930651905197029142733075910868918802862343477036637453930015492382582544646520509415225847597730628444406764310141714010948507403211327748677927870345157424132249251515625558859228699477103757982564723252235710056779446802449538221151158824351742506371566574337372501002881956432241929712661653845854918515941824657940792339327035544293174670274687586294539986457701666357485936162793884689872217262040861949866496322228873972422807499404756071535329569581109042532659116425073877010174487323740308810978183148033687923286312059883991342648959016232405284838185476489831755337905172905761860368375259951763186524671033278758323259234996637059790485932383319641828464074836867221117239460364845206440275107959266127356059761063841354940089911270073740044510314530005729242658778895365286295973051556423911584312473809133427080728427874111005218904057917866608916183795854595024467864155505296216774274048187254278100751595930598192458362948517880385239645874864249304473513668017067166080272612857523181436091809225413853743366227423296300715342221008635107189124573402355103929106417750166182585482067422943867950704875043909835363049925005354924830485781725721732577287181400738893723340282427744593194801167396762978240120020658923724008681826180015850407699288286212038494862145891943899298895361323355801523696114707880785323106791238974300394446573209997442492132843882552467739935127268372991525970649322146471643673030015583495133405788142318694671702906786905826295897858049747319648598658961122645020394656436639429909078637265266113658513348937156472092050154643781050296959008123641453334247601373098565157300442537135611408860505520263702715635572171990782151539457560302282250776028394433593903684204757712115977592242292681384778457565026537315209297901951480352031291094793099347853484235170229227964943163416429196771743703076024614337065744654948803367834956051486959717660700181504317049556941563491122744624118257907303949678524640333234001015007644015293900941742705562776716706586754569218761465296806608929878661985010210945470286203263201538569650271149872579862416105803123955575575345777994166545545804292698186781974634894669804511959132980433560996894835387050377013566842955697160487733074760962248265655898955801620025870922802913272066289290264687199120453931997893772811671639204890268170874426123769293758415198547901810651374178498114342366688807353838995753908889377658939816636793654687870411507624778471222115314254510851768110450995876397348079187598372623156099102838486268801923056952486906352359377195061770664513300563565771000586246009814792032423227443850179937364599127962548057465654099411122120618464027721715965938758541485474007194862772620386565730558019760986158609236640460147075185818365296425975528192739735660297689412139163791611347072532698269020773993688033273526801813700279991289205883158261459526672826159238000835851543834941008519251443375439174449971380960151073925407280140483349637951339285559862532517151136441865042623902840221076238987182319506583766843739581383044194578694624659102628874150816202305777364537204256944410428468772450074100113580820747580594412111110447915343429234830109296782303286616299596080822520598744899571983535380957516996025252048554578098065019896599179499916192298576726789644569201571838056596227545039566349544549662263327700944419828887372122671273650975261084215610186695398259422164925059340824826545984473815648103151525223018708109370593170644638330632260116604353417701552454096320714570435606894402975588047547012709826825812600195768818258694664632706425010408435132532146892664755346651584442920729214893729484131340235510699022911490205290107881952696857417977495323722389932203840616479313754929655169503402380958480995282056660390095003495143211482441014117992159396769195749356270440326859000555305564120582864581250294455442400033802948480597112091807240438477581568778069365425833725617966941033298175225685617841489592256651167987290170623535461555284027096760457738239157826857995432818792867102402666295883693050054024507271258456003232257499210362205020086324716179184065251881001718801886000738429524779202070476347966917695042023512527315810871210850355796648844689023930491108083565246709040864991284422510941211450908366752181021055923059174230362851070409996209178028181874747656875785604237642012872072306008574931313315691714694957469626483001253043310022408967518769542559546068842153063070984640142985280621166287962265455992398914690802427971922924130827087726647099129714256688809103385531866984138149406251884986139772199193708816001086917092810605150278730744249355072505577801847088383476173863336503478433996939441749438114825295649572374438361905233300781072544444974198251335534699643596297375510707973788999646712530173732747218345269721120524380492556459072584217672803279992362302463015389775741717479977812568918782738202480343917575867211956854957073835076962277799478988210439447394642457347721731938237786106121228739528206733136991472248852276350504810582013178865258484431960351578840419847474286376091726697637434619743788899751652585873181988881506346169763998127195141397727223746750314460014657812500718267924965229891141525596412869680212299960492452845062129376651928720264155315852521149663807587671002101694611296702459867825108079133522847171972171651982199537399894430461946845162192775704343903678585952602140229485625368273689465327632915120574401820336100840331611210066762630142055302547924610926828079386510764299006756204444976381783420872181732186402084893685464393541700144970147077653511353883794589188138336420664806913631682352318818476583558735776320030710833490294053777457321915396675610326405785903459452261920881278145521345112726155230343448731968069222736388779644020880736509083639569698455311238333688411089601931117305104330883084935620678010300272114452393478215584034381818360055962188121526724189312878451879212683303998463658415915071683722855812834095414121238719198216390783213272250316047956924765247965176918875696938243655403297866680903989365566842011986884286366160445830745255051236609343247843976924951633119996334352324193146122785288403212427540525218869824709626361854292878926265677428623315422763937422577987967072362629270696098668509168540900895525156415304291747040135775594491325270352817658844317884808619082141357101389653996560387637430702122454279993426044507376387919658372428363139031438418062243147800865219947207568463702218535823926535093959941009054091220715553536556397177980761297329162109416677191976902435415890981430567279585868923513063333386642110795469067427982269235435894827700044203953853756256206531659249541033631543979447405553104862781353647754431102714615456315448032022970993229623522110338599336776434087491742945471965113918270506859932635636096231893901574810160359860563388515763185457749406556332187601029861780932795266069801671506234008058981500527203409393191265402298520402799573091154401681522514853135834368484868044335348973781369933682028852719936302006085196792099681983680120001875325667697126008412135205498319878585154166642883805826412105124093163071996918898471569393583081392250644588698323800735221740745402097823406012846389062941651354145808659381957654519527457168717862060292527271592239066660646626162750154740907545831944317219374655086993443622552220385552645322157970000008726935991348758367566291879620884180102224165944571292876595159031674493188847892631741137490642527883031578605761214221039370155747012118697662595088546042264774155074863730684059766579829400010027795057553240434189703931409049844275916457999740099083879889283519650039364586425037989504250010438488773561928155701098544710583477970928958465138014318459956033455139203833722814770206209729351650184617132872148304573770338131099661284052268201072702125146613086188976899386946389622187894950487008992809384511075941490875108010042614847996991396515587953967481236671476190631935612842281183397039457424722546641576594148317205656125776373171796474290924779229136205190953480111723519284451227066389281470655056915612673769712696611396757267791397850804288423651643692012045566541603603488729671943785003426354023157444418401439422700794453994212427060218363530945437702213396573517680484319239787394616863530020851903340485116067592399825991717916671438998569043540403486127039240283039080374828212777732069142122946854960567760709212912197376161922039743350584310911948394683162955110355085174553514485316908232825457545253864362223355192702951823077526781530931528761178912518241495167460850885266120964902891619698218660104000724568975193913364377278984104661409487214441095961298988508077518075853631837627488817838299530953182963011502186396383758100276687542933809075028281913982265815297434455268463740443397729360971902390200847930355002269963422210476296835085322736592639251668476842883001912825434526660158125898178391669982221221517597014484367455897988132371958511773965153275543484358123748522541378194218858722764378321003025244850195951555082036435260847927401854695742605415853147049097835204739794292325469988907182929052743170862654814272701336958200255430968184180117049258701370992339639745856480758882465744023059812902066489760079054110610378504824344782270668248760168285510227411668818658367019935181443808433764782664986394914898461408451855472021355390018795628443489182256417263929968031773818819523640000099606968747955961954758040862919951781793062473263498611025026724268240433980206068121558168455499713804212187328814446802258939048045710561145298691036795016256871153659879782359361379149052583354223153669942631770096202815421827063947253269459182355333103058252914487701318488614419852057640475293111518690872230742200819470772415209987288414668573181102030398558838018288809433066414821916856276587171682534725593025451325605393110863021601189371814529029023678871209732871967484145312674362374547487394178021228954851635386569815366890982399401654149386736057337325189108746615671335004404716066239823364004398671290666964770409153047755032891263172697249913890437933328040486286893197382939282840244411134810396219278905035350213612946716281619633386817475125242637619286468488047387319230965630085936137996269921359824443209701205970403564615469540741321699669861553582380714578511851966007179628488120511011858246106172757764045506975311909302174821790448690101439071256692849243166943642765233854008234937356405377075402905486475347881043146666635850676104072798711189873885084278907312793895153166949557158205466431922208089288840771679132787165076266195120558594138137490950631451848547556022439303613097825416453921570086830436056788561414770932235056948446490263874963238926879848611758263992809469556621044988777544993143190365344324691642935839333551695998179046822447642750496108877722302724949111573895316643997346941695913785434809964435275970616063953279115590704314033427735858451340425144108814202237255601609821974271248084944575070099956087396479283787168467701748579726835521190550550018203229285834415223039548079587815218660558718819516642766217189798402853864265174685014776491346228975058535943936964785201213863457183267219014432404569270624337649717195073737694670491330575115534695377339982492134767003693403627049086977567391142638665604333361269677660426043598627212653107761005245479134098956319085140193625197263427500380082670339276582693541895207712294303371298205716981121215532568306024749123654832905298610033081831544372652249375595418641475776915500514023107271984759222898409088517305299553370070759364516372927817060690381821404085093533507178642360347637778013211032902053075653531181101553001497653036343860824309791863177437576335318175898302298808027204648318693286781706742294547488163450990587414045437094077893410287923276451069804707028848202367065155469347207671527567222243222899764484280895621742896493932913990129345536055979544100713943943093287580354465128652075902005892124517838355584119780439847641016265059197655282867587565791418600013424621954417021855150008903745820289052586070380171990367467750619690981005692284093524979482374903509561651198873579370864097508559998653630364346319221680655221981922963566891784110008294038861718659248913809979413355508592844451243075450475050343019022532548072337446089374945981920699055972552536158423002455655133148266640486311311368994818083148247039872008712777955808523630761587308397882018561432315806772792451921236343575547170412226412057317891775802322950777522605423852805898255304926503145308120489042815016468535801452497674577721548479047481029478691179655654907126134778875324826268833681712898967037473559124211668311490325574317210362705779043440472272100381191563355374553110806201911671700726305163824779487762620582039560191779664977898137682209169492985334449353081526893039655992166242357526336480053941679974940233019402637755433264557080850514778664782185814345799619593963891185974693199988485898300072600049506928912060907701650251077198234640760195617462347260470717858822504745687569501309324237779868649481361441155843823820465649255423380817307165249090002536588481060895332764529704202463491476094404818890414831608953906806058511191976188478004351522910572263107220964864007479695710970508349978361686641445030898905136007814277271985433425659304582007514147108195574909451128536524437445820585482834605817769057750932480046465866614632570481362867890692168273022236349998094532648408433255113268493659550579435629688909964523551703053123800726377931867409891163577087888708473678069681300328254443268152457892974952585913720165134286848362114341685996967783348338857264219446215489947729792670236400899189076434765397854349503420289619501032268795336238797358641012369311302991418463949630640833189698516360776627154486866878380231492429241019611785141508236405751360385874618566215496111116222017787059274406302487089704451784740731437468795074536162751827538492386774279378025983996073600191759453925716646574668909344586911769976145969159365794506153593924868225579382239354781681459191225484948130864056484156971312864476769403492982578324294310184411194547437313918245167828164680559242528488833134499178619143958793784717858120766408851751635280039175281010288845782495345969281479119019521686053361888680263519481673733896280209145648428811063270952093677663399087802698032783959967072254004629637626708351855525956412336638832905827026186968818545355065031101719760789552260612059776971011408952144743335073355287030093901946867276020718092879773736856190538955024875662732004295415667109584130220565755546154055706065818261525047558990991579893025224441548066288528469281857959243409046610864655410400126407936745521276696720871015994457936517067429848942129024870834122094098726182541608023267514750049836343407384489765132112527506500266442319266603310831202368901262129324953776745696549519396353404996952850926560524381261521930163165031375481455576589834210143674983368963049176905293664635681999318519186222211916944276178637410315002549911128447795268023225043843421945787672629640679176171200647347175468518788967051271197750081075972332773271802272258694105369240464635062190234502466291291913118212951849689116958233436306797106193983861168569528921526996454648419609438325786007739651416095182412318637847434700840697419950683654416731264789784445672293226588814327066622642278149978251400280884154009719747866331573513535759995933350219922380193530961570410208380175339855690480716532972386115653750500553924366632321045940531435626354362365688207990038268309627621539455966351138741330232524055576109669784657286252521179298620876237126704819373712070662159440821936212982761087072776681709844882413776070986773644025701244310874551373711114560988103023655819048259641718011000290130796198868892891735489317979335136434696470196686213381341487451970000472079495693272436660076809908648371561398845925676353196579895572654456755848561815161892354915705309685705286026055841095159601422841121953376038759606600629407893480130883000549030735633288777999202445496105293755726866571580579839410025021909556931638827221499604937289563008276060295942447325308821612631936634287676750509458371557319667308126185166215252092282649507608965776899075418191375833487788825686338263069185857921362566045885443872285120014668131922470996262888601477844879008360775687007082462259493327263926531292930037374687931928231903410860080410426327475852104114474317492815434698873179958882112665046174816032349674065641232968035555794369002790884285926885819269962861445893284894913006022550455633912102281131214551335205987190346275559618647047909512729606703634412490826206582152907519664825963028216623746844742106649425569795207781445217496041034521243705722023967913877208587360094020137193881406446469384058359958912890440736963440704168479050230336494199269178655009058199721604611408389341444470073552638202622676956831191058499854540688071363520614921804698604096235716578628283380682599154963901921444929441133334511173383199854633174208969954279005405489834363051420449935486062118020255560078713828041997570829800691324691165975190972814863311256261256483542695275403347922581686723187811208553134732552706207888570438690975295846081512842701679723400805833998796231061200573626030618525952294110727202233663481635715061595691159597763052834014341991945094550111544629663432490298430157458557104959993357683342096051971752572432657804845823699967377655701091014717948814760674517016514453049306237828557148655964203540077040626062014847834982351687639695176482126613999904421253957158454975084087745419367187792185549079301626677074217838809619216030011268666832760868781033377955260426730904445177961453119564556715306755021596532611458061754387004088707432005455575750226126783968254192504202384169814140594743136842298609661439822273984056213195515542774184946824636849974915136753972343236207895791501565676347255336069203488978824482613282687714221909725139366089237083108789404141764559035131940048668476868920035358784637950237962720963043807851238128372053974827416805160751139175884750105802475387086335523425160482721680741360083877223509328734902943525914404631347448633214736314600077038512344651259780137006275892008862012752808961653171179474966592885774909308689502091865864523482458505830230463536696183703995150311096085908815747287418511927458359488751380468616494340490151640338600900437389636667717426044056916343019413415428458549983479405141159157470039366639645827008379118587829851689756436380480448831332484898801758664212113145167617557171462139843898898150356889312103122805270796771669961511043786140658600930435380381931086310667829946217916017552100006010360149356490853316630931826339786991928534824244896844298843551550007283244775409083545705811835727911260270162148903188658565070592426597953333432051122445012137644205266038896863752913104771323927865935709011267988113670010692424852713606650196841195307596699333896626680671416054475917365284239877478245325370141231291660102738997288050431676546014290002495856178674557538913394545435215842697302754023941366750696790362017204866739878105014500248835842646830064223374399005706750624872839718156115562124862189042490565588439579509015181168525057143938177826339502341141361930254677631996179917779924564326908744046229425977599317244537386260856164686103356228521713595875291026034885382354823993439344035168463507820341525609116888670466713904100842615395668618019700245052684136192937366007575744806843787949083637894580948703372984459865325301811096114256885466256459806078314362504294189535698586924794871239353671862882679667310591954933929288520705509412010208405036805171473661794993923750470918991832465340663038761937427458308778077747644193567553756508943819369522548688193358949370182365268197568568862860634203981449706165459785272506055552635155047450950928532253640023983211037848819493904838058474745212645809465882242168460839822041747236597666196024151336292758662025581263877641918284461266127789689809261973217054098426337131356988855457405155764066097419571820174440390466829378016286766036604949808359293617070977197251353508358728717174339535986797760886320700383721939872813206085131114728558971885775855360818761864481768489905982474669100827542440781946754308916721103637588926534198160977503485193987921550868029007056030485363122224348531269550847021559757751908895062917438284558736974404589181309645337810731490155503187304208725843964083996116815064838776372276794273035954075602592342508504452806917396876605879709118664223127109750060487529276402632993732525417424135556343824129551895235451648899006675566054871835717777960381460020786614759738854192449127491131585034993229731829145596238974830805036517118557675714828697935603285119746063607862547817288082761364318521355718460920930218255336396100709371240392408198209168487241710532550072275975982124889860303893154339126465726866812872664262855420694050723537418092955887783490846108545325525977409595405892780171133680821748261324561541255652267905885926103344762764713365959473851857156738311895500382988704599267413587182475943593911163384938939477355094258466200735060651325683095126353915279185768405095339998231410278096427459269017519647386254117632235809335358965294466672371157078067402059002685616735528531166502452135416496008954930873189107434232467583047456133212144748432409442575841428131607392008040962293160666316494625301318732946841094077275807243009927303970963135990218645500463520377610511043970679806442686509760425753903308118106547111651903910131141083429604403621188940327993348729702212540569824010212237942479058570607481007138980374347692098618284171487152959681557118035820326697333249473694697523207109979913276587631681143734415580665140597589958134473989984676045268590693037889622643680448959958645124013664959335731058856854899320578683131579838816063319034001075998303952139300010861891744303006375312090466340302145854972078128669901671031106056658089307759944068994855409840837870560530007114305210904189205037825480081451576080780263601460976953402909301653711810177196071612595725720394180094724364922689465344402187785267324460580758453336537261079725250527614068012596655040236358995637730852698890842924488312399609977371176440420567107889017489548620522689395003776611074096070928022184033872256766045490290141701181585653124584782211750049092961198318424434044579059576136524073273084660654606422215294280133297210928852986085347387191071761218158180637320820226341415316844739698513262123966528017644580951695470189775886240572703699360976017278389599691981074091496364641430665204077652098025651447727159044449629225587533165714969275973949100383766387686329711152265965936033512391602247507931194251833407445390860552905538090388282634460377176544416906069854878530761880604449547507692426669317041651409152998568052579185447782414099356375663601991675639981109022191822185219897462571039522735314351280643721153313548288833500311150311477860367955921155742908525415981666999586642815807232616227896753468467330064793981379579981583747035097898016953461640149443979986366947349704640197140246603176098355477788027413367075076613239079714626154607920373280485354238611679887801397453094932256922675886651233479507967025110682889329433708687584187990921326769328352609495385888808885329382292205475626278894074688935623281248537297961503962609614683931883231946760847654213796125809187446169366438858135745093278117368695578872886475030942023495705222041120521116093184385932114054782810312337729963821725192062351534046081267883607775171180753088858214943270257213702453653071237278670749477086450524671665782278887885536823407042090391649291196965262789366143623205145037044980772330964805132697561756286074815514358400715203491533956101223598629729860876063668819395424254398796946761687053771767544724964317150251355498945826379499332385830297048677746093536571318034784757490003752962941927787251402619963181032278936702466295803232289405610580056846678451676872958262793432222287088315475982255682682715552284930482738548168029637306379349701633495401166175434760920944087099182179999115365506649282682377644968408342201302068143825843349086328481079128885145794251593386032427255586377346842199425034021354050895435879993088567783352850076224286271017917290798687834948928579406052483236943814559018562366810126390880451120052850182093209793166934095755389380417566936711985865943816199474557105540667534996549146539049139342772849259607157390355304701139455026267495690398965294030597526537019740783111674860427077325174472998946790496432074988914139187218460776730620382657023777809673007844764599327988727243066560999927434142591486435349627834123380509568100285347381135354620054118837761678975300167581247987102962829650108656701390331166463596711548025747063638719048216969002953931687792475903796632623670785091402718818583094130211165020164962358598702150831194540159252914993905349347095724331137081555468635987444123984334059774358000443064794863279107854383239234883499763332060721142749752006256687918618895413105436085532491023603130198175933694077162328130376240850448321387980098488999110186456267216025264607401293384803601527391932292391079793393385074520863859068150869132705362396880332145717401057273643991032637641487043364832527311122955784914449854148891783374066301743194130308756967569732370369200746132611858333871139041837498924523376931491356065283598646456404934570277232485764258904752416587095298994416026359640694601583509993106128598761819115529936051515464146425234296145422005977412593823368032863071786225909620674161918314881992994927970920989108008217083431566114000671293237880345408176859669973357168523940007248216911294333647163456097113681373522974232028442167395078816058443491733820611631151321375302548422694720425518353589156317177275928113051286550883873562679389530027960725627957634262928516547147275957886579846977201068958621682005514916700967525867581921228438579065418544670314178395123782581492396244578265039048123904320445359487509959215922537340401962008689305147450705942319677645649933566634853117161002889687274477565129699192510396735252083823746564750587922560201095034279686754871676064907555067289062351638252157859218822648219888509559871635169541874025620501496649704109695512927476917817327443837138676847871423755203548803375528789774331750788723269626694024013416407919768450363410357770722511518156417858827951311641611239712979516851686510759312008199893700070485776717454989957995485755867456054462307736182513973995011697707257958942678714375961129975026186451753298394054546891329486209469230775867810995790124984162714646143260169008825141897208941586671190995652512408706192685591258990754604533908390462036957074987236287667885541438430362744415359993224163542879619695858388730132320635744767769197761006800559842262921240785114141149806462665190048263231544024445606502540262795257733986993856509527616208933954687443310127475647266464210917377664849606299422646731309356591797364239544459164996552195462500807393839247632525388545189409629102879000333041163631283263745566308905743739957988407345234379370108008793248096429905109332161866098112002186015582862133634289413124844050531199483646085699069128024646291382109268273098414894083412810361690024023531736031730662568770763689626095842709013670327559048160766369578700021380565494508802016306360759081393448954565936364552675738489821026985904797757002757477735483479485183889205796431121252939958201116571490133153190850414686494473764747187972396540581620676704469481180453820126054007930008056420994538270197104763703185592380713744951742122430947859874138116873544094574559515753343085347111107310529526633379890649066780000259659142253087457822409418682510513846107360360826063843357491204869092889698000241755877284962462927534176063197281415424095665588000172484613363267205437757002704043793265468946079097401109385957276747723927212800077466491910816668321315235988882615250419255551775604688485927000801338787914403455565414644850626046396365163386407141949170006390112619227111406647975016011825089851218620885498957145891374501615297875378530923428565032852565563582638716868405687935320343896863205095185113836664121127699062595039512388376629878859286835409045099599378632165061214496286561865024640903939106522473579416672071850846081543663438376799812622171313355882818061187844879923296569557606357588554971289240281886958166007269426086827183157554300619284415247011668942015785240491024900747889988635411097539201529571915639444613370804948743500850986297554118980556782977379656095190047411837100258637015223850987483402854723146156561203537088432168735851507475458410262516436064628065588662791426156238304778044059536575452634451084826595257281238159355622868559856081046420225660850039499331728376025246843553180569663017702563449499732907113166352000326763851587352895192510906606275244448543485255869276082354686770403653776586893152704680469015260895066914552971353751932306922244774570355613360018237718612171260183525406486792531785165477185914194456564531649022274591147955210227171372950143649553983792992677746623163679315673255074520220328905719901736864454064700674685712633559883083180881099495483564508789984368716453447901325938302508431101524957965231569690803986560332547333635934830452223876917815936088891741878066372734886380139144750948220208635081407597444213335994347061716720937146893159255977830716842031486808088295028488534557007746591885159458400759857095650413666785869318081039883194360265561517036157197720317430397259009206232448996519001548436983391642106525935297094137601354520334707165221667894983018085391253809667646027532959560038505086657109575325212287806883385980794940676253065390538596714785984419969991419621980137672106613054324263334996277589819943612482677124174644973055710656480238713125637018196719977892044239360577462828821692958558498898514540911628532396469818550193592575065721610541189801179134503117900902577194003729137067152898496924035026114690008697554896921093251270910931343509049513915164092827051726452571549791383184872670907337111887805673235276465657971886303800999324208263690926583870102487938339464484312257385414423048356110843538416662641518441936066826501854386562093573129512298042134192361422817037279372106925998973251363496091222510805640347038543813287376860639168236284134814014572294851322893133717921548122848393560744803510961565870047509006807878980018873114567370367166614982214965448802519638114380420840547829633192908009040980994295962342267165062869255363848150519145886379473386544450541078640179028145920723514425082590752990518701691956174794594218499504935759211922293263665579842664452676555207425642453028005854696826102404043832721729695095984442332856401498599349984906569682625650520598424373419148928617895910318215137960627317480113934606965675003281031275178079004293385092672840895486263983363077226864411804599181779213014005643620683110486400373424982066262260495077435231532562220848388811646091558827284966636002204741641900775538157244248436263912961392873787526585874663108175991633881914522760096236739367641582336671868198333287528761455785588195277848732041974784563747685300443360652537533737862477099333857643127448597383007011905077859198268692761974929143591433727634014683297695502649131629179457232000898434272012606555520529144647980095715110037440957262375671532624645783866366576717351706993184880498888808125797210787748336612750879146406231998597112987788485513122609478028566035298977060638180881308243960618902470759541916155198853879778227524274047071850800576046584385905030100772570378273683733065580335416827856660704312234703821227715572197449971716928552138424908382843933139655989422870893606788354790395090543690982587261908824190367458077001937559437741117525607643091322021301125119787028542444507785359127151832402276590339960436361703617966842159577533650292845744160746181765315032341050056025208671935997174063079615132539170412573148125733689041826372527067638558116236892752629793860017500964124358318269377447078791875160922089516512974458907474054704948132859732094617194545252666344877642907836841337944630508896602651584562996266311785408022036967114600694845760411291353478358003034171757464340348232844081064209928584068652404133210221515222527155296783542037906607565334423768494763662924435108302908803035833928996918783690319250512371258219789876313088418892467372755544244752684061231436350679676065467172401944559373813272330615870174424341624646631430154634111679905766461141963333817046071843415947442260865252783802818582985073236426741256798460130311955896284370304957912221457851236728255023042278755769334062594654510321700801817936021872620373777237263439453031085468430204130106524098519383518398255769367570851288419339786535461671698430081536023656655257239609300356404447103735486362428667384330514894929672481004917443356103792556286591298184222487382770655139498106692539655044260599735306149327831172151486307108860045492015335556992900960662569120791639202597346637644147134236943293837845503667815628713012123302238263183844304374883667699933554973573913399902722915649063880211710174858108624949870512278908293863078756527343581906317272630785694572540702038663353423320656471489556871807107599269326888152059794763181701381534735887236136006308662937730307648193024148974572231099128237123715275047553701532058981481050118259323502592993813847080292662613581624331372511286569494226833498827162926725069104142334767143843368637444636944713559239717702409546212112255393020038291705411945123002615058463885873670050453902360195342315299987002253403805599362518234044536339543861774141012137905616618706205132659393970699060748531548878283537867639960112613491212316976951298258814174346474546561457864359888153476002928090346860455673831236480769044764582454098520014795224670224120550926652274415133236136629477713549363470022523162106282902395142736417023158327796618502134217954858782844447083036999403269518608964622950881066873780643777766532170852428737047499804060602438703190886582295161080952415332500205134106262555114683415387349784539578093084413846686022162311904460945602750040680103509720359846638492332851432240894286123973747256680359872127625734096403420778679773582052968210432338542944888790933081742991260214507725857549277667484474617074266456478315249653549863380222836355764611602363034753737203180712696957043352446440982269882126069028436330387126413275146170047079287903425651748971277835771587106499697516454510805485187703177026646914682642953575495269986155051556386851786155991713199522496400954116899719532171748780996808060093366692904933051282133692185641092841365417818000697607776766322369510630804946824285739572153622307435230253484138271633949626858111956554128014241543503331424282812399408726080497687808997039007029115203969781322190967106934614730435905417477160638884780959287953802172766817664248205309732249240645286637470551794207382850904815072266699390800082666088793548759177710966121951333842832895570889070465414940548481210036115816820841394890914415949546170808292123663965472151502261396102230433078362092836591071831201652796132419508621480592774239973377963853742054960819743528589240608844439420311675185066324896158830711739717561195893422874958097464719668057478931304339452311278227144294432820679917653567217360522090644816741082966844771645243179352426724815839212610008870785433925528700434473995024521771909640771869052615794335215036003830800789403310344555553478556712275890024071300746904427223003485974518451181452280049703745915471140717844329965457939114716800877200269990648906309161887324787033070598388278509113454256065937201673235294984817543631364456010311910507141821369178322035818149896373796767742515454882880603543396876466549488550545030836580042933049312899635280887069684798799668736386612546796930169916626680281483543532981962708733409735275989978822351559666805818085108106781305156677425192754947210911391710359760979818740169112922706915244558845286081685511568003520801498224998853331115300975534934161654785126600868960973910010783545829014896796191187731664239909114888869958031338422268119956398913006650788040219101123520946754648085516507597662813855236265899981961752059809195502583440216955852546847876646758416791405408756167531473436836414590384316109403320699629160680468676221303110287740485708241028941146385438123111691630090763109860909597015911076727438574762635715990831232964405614019307224063638422041517811847871956568392717356916169210850280633043078175974288328583870425444585573990225754314364153938966378049555573443666586837854662026724993665049724701345763018017431220545680212346467281490401580417957347008074289873227187177944203901962177144809201117128577987723202526775450849645993181561165084953190688085128107670482786909864751496341673143752296453691895825392462272659143939867807980624775702890201159123360959235628011090627520928904544278320187424769782459863970669013259915746678749604298791915629493377641440642424852924036270215773550584370733924082304101054234772035894877161002126889006786058439066077061353612111886714669410664860374830685304411280787165498879090564324042130000650963068889173635384588092236773610002441279579512510721657969236934069107724057133602034307139146259927166992430180615137661766780578036487865194833959157651991206192378193353801234802551334758253999798332075213574455497751928558050479822069845950208222264336269613291305026540563414402633339778301732902827599718614042794847886651042558494695521294210551077789544853029565464793353291587793148166047224641564492921768109353817796115175326377358291160210859857651544666871191738042443389717511914070750134780498732152495494969019274208683798851870626825026261727462090613826092368230473107573204479302790985355664132725114351240202631635440888320860593854504183547154520126802914472200783011491505523280950607373926231133008214453675789373938527331796155423245148973156073112428709578347941436744486331249719211767426491532779820666838090584519293091738974834767558090648866067288400518863951231400330667539794901323725007594260024165064874487887914696524793936183741694765495053497907798104666188747767938317459241687006695665505229549138357737613791054851636183743760254282109059533610777347531358231485979032487156423964842321107719243446797839160641830137528717646551883517185068969669153503678426994719113191222178192975229396724731746722105314370283330122209595951328988781210190112398747943328529518986347795765477335305651922522150670651717355174686708804936439105159255941598414335882723057441239225283102328956814860391818793006515618979610509155694786834005342412786341001083206870083866992487906350871687374193214133241308562949183164571131675405894064353498174872008063447024789673689266706423780703488716408904873601650503090171183793366276941341041261328977283896583351627983521813423771455520029922455771693334507478241919181397188682525430065001592487245580404286433545948252259357378861670408021947883398632071097549090993400343308573874236133325993842129735362620241900946023444656659371783712853866325753120589467190778841621918685936072712445470539758483972793359053163223428521098449483820212583981531689107407263862897148293829446006251373971224253685001772017867210200355356049143600126104166280959530318050786631860278488484993948438126712359372536046695214489413588499289719689131367096480905919121573915252963448361167029214009250094594915503519155881165602037416604059273670279042346567803884172262389928092349938344298827798473021689925639550555391402451977093718097313608864580426507558018382808766488533136243498306947169694461082143026842455788719870484824997893703951770845523176930727109409510214701217542210256931639106285232494099649439717479470488200969603141590279055873628302127985822569466934001311099892360892813446447016578796157614942244841920057239981422906391791245474614063709857753391671431642285379814884285088242449465434172811539665499641258400920849258726549493513564259419645223684624221480048451502055207209085943042330147248060646806442861391469712823770155968935555781504320455920435196543236676362149052265668672121151977909817340027682346840902034616739387780913109026384370165331413776140714294570079388926184167428359136375460262502052659241987297049014047241358334499150413378530934480921533410072504876573956381388652894345896839303290494382270371719369565932745272270138558805304962596795549818095229770883627050721210154192381954281030424207616948047623811996349667049385348827862898480116669981238625707506298095530200327776786531465603310953339360035928951786573692945600932334116780257010513705871076013366226413657390634326432665243014252827217400452977699782378572171170021838647585132755734847946180406583331053781599355424763591236727846420517233257109871225678089745137299516528874426565845026997759421246959846658807735787945182560306271306837174741158684866718799310931766003162776827231605329114279777570392836923789675617694599210165594832599605169774775723516833901717128828748994357703051827998552850606885994173431083450284520807708744878430933334755151124899428203557486237650472556318257227607958375457211352010294949292010773223044767471227158566275399346314526180469296683508266794453376268053957024015977183983596859708190808744872564605101326789237495777285380715166604614328684482172041459586072721851852449102372189032690856524144207672952006717507075059676990748084307413930686347854201864299370927032458566060145619679379373924799103188631340946597530895153951694453800563515154542098845072035489572984443661516272117998742455048262062453371539621150081412233741921729745896986733566450640856001195135839152869699278527042568692515066830779798485569095332698466482803206594701838479071613965343499735706027269119262892825367626119632891740482340959699728781027107550503117320311693934376974131789460185786096307531364267903161757245818311747722540024722334166884687550214156513599440843917392513588531146175006769745555274355157748733626185349706221513005280366914058898261033686471389931627541474193328160296664876502157183324367575057398981534644620990982323363847424105779278990512830644257002393391544841107149915513709405060938887159177097286083799118024392675501963355813358360560566810901762965794258882615473075249202388468903766881234450839943397961974786185351637019890028819337155649765144965584065727755179863714578295605061270243462961209507892838322093507324081288147213821820196067601214615396131315646418191325636017133120062368423311605011154038799790701044796763631700420491195619874443307270182252522058641145985279824407021193524829269850783859965652444866351853492165977033802486475798188446993556885342361072371607716670837683656875177647673147759112754659916177817912702886276971391319298206330393058154755949660155202273377414016716002602730127716060731357809926016875376639110209458473646545942882037320034260621288950904135866595844647635131352133766630635957665542969547520726891680763241736745872560326751459644365182580366232782858388834098362369551067785159843487488455086345377432059447602878301960205674733858778457212494310699517447822066656588597345464487638408103383727152369245361165272016138857731933056994053912131731834946451630539758790351008274443818557155694742609425855571065682459630470287712348616912562304588858292035964427504820940460065314668332275409561645905055215481169923205952877222387511155777903104507806175373229427837030269513105581168371650027275681573677957939274996564955681502964291901430819789428455521861748999188763032046179446335721341744194578597469808191792508344977045347526377085257811090613986177490705056457970423948192355652534029743775267798891957701495742608141284368717079822735953740464172636460471392862640373461994878900556575474810289196921842655283307723914845215293686016080309663978242222128206204282064024310531217141316559158061133193605307995878296852993700508036236633162205339196564434409530661049442822538466687413825985149876700700017480264099717840377415735720047404031286644004125040498988402630432801307942337084310256243051821461369026580564711675980746561583842579807077625854030836423387265248657115626735444004709680538544393077353660911667375433156751399427196230581792171901480877320622776830669266875363885064943120056113482104951932385819828852697027642431937431138630396013205648959914299958953208716108479742654541894314532464797484611196275770343334468683947731341643451066043369027388189394290666543988866081898269013645336303900224448426460363460490332725326181894632219659510788166532800295871995983926447669591130207342447063203399681241416549517661877206118255510715763242741850635853825428595993886764959093163479087849714373365794862553444786566311930850405739910744795949178988225687705173536092598831908691142263671148728483933609296398531285546702158797916284848022342851856957149051080598211358036270920220773663758089692081926426593536413254588044108623047617127736149996531779898921573241463300174068474963433826266184696791249618596770129317293104238753509637652605525015663123921476854692553512258597298006224506909049574068360649973863611698651555722572132972863529489632729790614286440952481036506653588312289992531561232821588165242978460993376646666219689782520554783282088847642476712118644295915863240151680672770200202867574571285721991096751839151643229672652497451495252716399833913804554694200799446583867732561414402048079280526941132287929430762576070367148384970116041280236927026964580257438926812303780797651203772708400199149843650780541253693164174662641889369060095421669765400194839762433633424823052737088551596276872758019628044927677147209796715987178346519403093121993904339243509375533851928168592092699685432663590708967179965900566264785859424500148980119298774667591046498981774174298632234156258071335086387457881729393044012025973005622162986168267640220447893663454791255921923074937024962353715544323028944564130463341903177576569865911241063214182711003902929205128355880311192855277896737031334114766445424170151597377092894072763473390564196234300015740399586223112278686635070294048309237034979882525594702716365707741728216839694058489449305217140434695267568383557189808878825039604939193655401226135335400083009080405680629490482479878937457694593347430973985582437549936109948015596335663004303592066317221429687209771547362106703280918609675478929981532244283718793930829211552266141080310279192643819343926160406377780386634764075398423572653617568804458216324869955877757433849354821929280899679202255254032484966899630913387979989055433279577261481342513252991779515708971077288680471203618396646827009268120840781184464756691998351425711230130607239160112694985428240298864533260738468809889002819561316501108573084644530861929293920799314312519002885638254343742229174380690386816334118571904697779838057674041219592175417843458455884886642150002088766063471985831386725384893622019225474283878539175620564287779034163014439125172485030206492401774958237130484753822389013380034485470372674348538619253282448267578334026101515391110226148542511692992821080687331663746954766488366807701935417040028737321153675536610672019688111528452660585155772069417669764177881720621585535528778338562954966448195588626833887441838944018908878837252500357788060117252450848490247607619758450847331044665488737923457078682119816940969769567815599279627951979921171809428998973480252241316648222455534684749623031650568060393726979924016447728163551527724987219066035123770186683630574221051316615588693796403125674506563292766746518660436628606736307026571541828321865114141912776875240179944951689351341114127596813636216132272830650620935712432563157876261608466724431514511934874523183832591954565781232851041895133814499378340781461323988470817826752414226702681134724211254643369537653854108508592077430847342629278764784468472894817624849390796661947603941916361942871789740235132112554706994492827161743735672655156136845713154859473672186858642206892233523724029231406464153284808310450529826547323664677247035059146796870719144770513973958080021732578601181836752387532634818981702078812698151181297342778193707969804782130565945158858128836577835593825335203511191868021745238717207481716726824510055816811653949626109670528315804052137125475374905557830970367051111922311889226100899841786794019495514257565332170525769417113157447477737357218348924142826081225981017760501413377523155167846512668959021494855841146201333292495454166048093987047508676895264643467107944712241975109016344431995013622782980785905750395610976897889825668726321933402550220293901276474420809763975492155970652424779236342654840489787006514700524854999018636892524079827209974262154107229277150877042048684343231981673053395921406917323286929032446040547315986195501703431380851034017727852896342742283573382411420620076128575744292261817309776088484951354710664588414111043136931756738013193972369092339743396512108247473781162877201439797295113321837461517628920987480212535395482153287318946323812249496850099035841395534631543647456462563483181968452269876651658661038741899699198607710726222563877632835848266096902615348599221092823771399937441611299349879645505625124978484572277347009188452496578147238188172799348129757687988150072439603865772176046807480093145112204587577021452634279028587831855716841226304628629528238706501770206556186039921825160085781931988549614550218773050330969490552473544654091782797794657959290689176209508172235670871341155201359178467422007248310548482949855660168156776607366868814783013772624960545670873468310326478272334769882434065242208500170090033026190895857815698666918530178698796998836361056525686294698992204366399636170331071825456325977906773706597764168157019394734113614314185280650172815789814403974586771808261323685254955055853930635908494590518787800824065744760367609621884704467863039525470133634809934751173117363014281544185456117394805113484904539975686928079340124718482681333639013794222565902984926045467467305706015189172640755217144683295197189788090331308735272317822499923745256094747203558309727484983344949492209838813203724803157502324726856227401268905024528758452046498462190864116858902749623127064765543067755316681044764107246597503529394122320615406222981538803697383164010851458234613753018829074767745220777414980971217670310204092524010207688248519520772857152660677967377627876216575279491086122947850139483851430282129148097354613089251006285889998084237925008177434716906471176288286679939753635252289414636811750988530139859694895785763771794841469136877896056474687609657460523455287291030752619761955858189561437836382403962455240838287366833992243056542021639750644408706466919764834349336411054301186213181161850166919394039439812220056525491606396320202668565249074512354208481748370816518515928107732743424149819782627868666480365402383168050737902511144827536866125739995776399467496090322402434030501625233099546101535953343262049733695954288390616587288451365184003758644519001521635699997288735392432836387711131039631892957745976747669215752464484542528132199325210023374352897857575356871151865384391471336014737670882243779765474892280001216085901540068820162719382429900678938663606809157877128066480073060545615034434592837678203960674793615494054010414730949935951753251725606665962068402222307832052977126502503249924801813922700477757629004151593662538624290821201917737476725973045311915928993217259039183062510149621841496136479376627836421859612761501905411438080415601800541914468679753297194764361773137028289151034621592800611344253215966913540202873060263463269073491680368569502887587401176532697772789690385566028137674228670499494651164724217482559573738301940734450312532297711439123928708299353541583212001037772304171913804767537961888552472888442025372663522798212216294430541374738298211021092849025194004152750050772695947645108458842120843557537920232764899295027941803465828584680984033551822175460839432864347763558720174204081135370309410002185243170030769490734064363432549252095974457370775252331332603687870222126300437746905789860020511291102297393337568069448163134522145677499246911848920330184570653413130920579765808827410710420637897336955641545581263012328915067978806790891217716496998021348383436070008960596802188529419599257618231223377124349370779820124466663936974866373426414360435120994452861726338131106631544419424082850626120375871657684495299069908006370298567721745149598674740833685875974431056500748384996255464740455218445931649186518317318429361143026798856244560496968858271580378766247103317410286067203629912512196920136565056484949807909831295820056282869726492375810696416338983050340022321275738425370366307813426470011734171337974812860623724582057883031873422367462854939052187402675982245035107111800741892533175837899932732986063244284081066489737913810459585683339962882623349675406430413745931997339927455814060947836102845844446520466578943064682074450681098461568362402092288794972733140912365821737032163481821914989322767360880249082655117867414950355182093113811653613389694650957593503372989743539631758721644814676799729278876123045422643281871581431463183819623595086431746125430630784463698856896778703793526267404776888693512639707800374631929918222657598010283549133972120630681521841108163973767059761157721134172141077878217134168412306518895986172349845773084001305391178481339448331752697162106541091795755648005329815908343344754206328895713220264459542890196289539557187600030513867875446487435983176048808440691555026835891744525885581005806773576879792944915685936151640749186639953771001318629209133470689105520269624744921114077725888262767149067126532668122639663089188242633588037990895212545989687150215908175495077656839685909343454591284248985453131190380105599576630171260401148868719732494948185267713296538180380653735349935021650292442474746547328300047969045330086362411316955294090883652369521556292584588733947933070901899353893812327016384836383616818563301977015027207418899958499048673857220144165189240044550069218213563276548404564476414881867889851854223458317295521207309824506730685907650224292751665492846340468689824272977941914429989155241251776197519905592363083473216191626875218281656105895228376189850176621603747621589562646103667092765710261628526931209993157388511636336235769088674638065736467651893866364453892452159472021715226312279391475604581891326450393076203938716619345447209365052584853065085778449312830229013002321207326685654059200561922038373196995733161787397878006886987545112484241104320945165059869703767493540238836602639858338111867028959972822181069211938226677474936745422890350295037213158415179826015949588595279483488557672483446682452774111524978833902500617692117038169708244125822533244967923664850289073201439440126975883962530880333681883540529114122590816576788590884402009365181626492036168335563691923670105582128256930760820940711009688702762595632258041865021509804385418002359480406948976668722489104047655520278766173839762827543418988309984937810767614799451627916441314701018726448459539774907726081358637578105261819621980070302984583117769329704955643571258392212629157056834801651116098843724033578687456170288710142822854173534831365305010146001082008171316755357524440853017875129320597546507436968801831636616690910212938115757637183378668131885887767698395601141025459895069759617164200902150980906369259088001201471662493988896793123830037871275576510929630266150884786942109023504284879186070404335675700264346446993470842835592876127425513331556352354877649611600277308149136648067994041499231837863974524167376113163254513772973081746768081751694044358189398137494596194181554483370509931492306077964043908024291656601372943210555082282612310462562659972060835340713902738548870706994371659346328367590304995608237655728856167752961247537158918993761810202955036719933828919207190156385818276724542657457129720187709020198637592296403650856092359569854300706483837806631606468998931061033950971664938174395343805973762617583830001778790675902685907258822393095249037662247187567390164666433304877358301805640405098240262191264383431440051083576979324446115603087191710592213971087116112995345662332716259358039513593032599575418214577960517672066107059070359556717027202037072360106128487910384320159491706851971346118201549317611261114118185040822086453114773514806385616726009485405462659975288264364886830284377463134327203973985806855905582957863825429370456486716871118281820497492081784258637992095957809342178782859078765997707884654425053152256285850090822108827030665640170671875418247327271285956704663332047374097132526122417612606245067379961072620234296025011514776896489059229289314424071305741791464468328185146756920390694430517405258791625584069842917520374996318444560135805914792327964518859472816452719092327580797023703224940355564876135188831395015511513605904448896031887866023386134823784543975109115396066689318217546879275771471743731448047054150551427616255845190768494822712092296257934408570847533472448020201588105147408012895452032291601255762964793968724182388394922297312805181692534610262783851036253262907059009799308539743767406214543732285603243155378390122728873476574044257961420511965135922485930473461236808538330540752587940543676859914051835747674981336385180141214962009081629404692756670090028270673437178295204225290747642369392785845851820078193776637049133817044841582889363659848069551742988859341927780729342087924519098326008201032091275316029523198518997455855372300569782916035197175690789908277261750379718874071468305238111698127344807203078288380687643969014795540636228915710675852589625388681996187541220201054060761311512712527122679116617204697738461986693304102039887666859292099332205871171655846001472279637091085706474286005061593748233869482346286889607478482962900331203137975449486111744027558432876954146167734038718662100530556690713402367129968964136980900866151492705891512608171606691478856525993840140332361059141894499971933470293683191425901141204589981507149986998535669752031885550795058216422371541317125924967390975450078462216149468049152390727740246661306625621138333151271559952393560279417819071189744577616213872930933329635309174789453336304807058576404620794914650263001574719630153828273583017791107014259779929677849861441722540864280410938849725450854649722091281402878291367149014292801529799053705471431484591898286369899575317597469782448949530294174498655668218652648583257283168210521119877718842479418092900092223917711194277828840594251954066839465411365332536975268125781879830835645186604439090196257410392122110385964948958157268011055143927673708536339244219417769850005783332671103859838786879190989631604485385338220326185729661099906444942192136431892306885042778324264214640338588745259355266007331739183611694216208809558275037718392401762732188069623269131739922704380766838701600458235052525564727304514632012432669771639501063116017063198894587614999339056887470376369439391606597100321034787616916370446069815382762111989038621066545036400916316767234795397315485666530575251670712181932173856697729737629311649652090527724855343232939283892774411598518469606365461731074114775749048134382018912421445191755678144112215921238850691216909314423536470763150096683872824174166778215943363985202959184481205781134212006578062347070849029405647724727047301952593610645159207356499286106945292221550111708261267818820565053828834964014680014163803399314808858648871604173715928589885349166871341917963579185975129933738564348824534708722337360446220057189926212962062081283967600241613921909983507491306895987353492357483573589238042749221189700199229004634145410408966487044797774758231016512058913946795769473806559001919050724566925914303810361101189806666205668023938594382972895941892543508252856636877873555326167323013653868411141488433281747796112550815816623007729369261318701093583162096922269335210876672147675910541828597867167983039215598835997527243067033504917128130987101159270340216577164394991706060769743902135909523819530272244670878851124800647031495684980402174975603403593325675983472884218103720037751184441943610827478131829175329752578278089421628608180911264389976369685113404334189205013046746533451272847788154427633546120812056567417210129443221523183559684071899957779558386463202119984421879214869928375689393118405343292250095859423684108187196015924162132199462467044160289538943362300615098810911657157361807444370975494960248974775609962825362701501265419918847930577067650144605129868880051522115517144019981339145869953520017195550095531922787668015253495640670050644488303342176268331647369108655710399605885910631816864295212500242845590675099059528206447364231847445720639025548520916340552439218725406754944199222662913594999391830315761094692877407680352795486435138918117532072223572690473450504541658762578840692335329052834721227100739561526233322617023377444276378292842856808460398923530189083371700914948196563243607030024402278887504434826395037942977834116964659230526580063545999106344054503255994124490219055465254380893897210022812880607339280303323705106735961431446888754103755531465050396228144250634340804472401444487797611993476761456793920399634462379315703706777961380896289141150189631202966534873338106887349213097573725875057444702186071821573227137706313708108135908451561231465434853275223391420542593144448048137048324702195641842119332311332555139602445722331426098243538205601619658226162357909122425409385096188435785371455415365173239978567572642119231063770551313998651215022473947444305886421051981002606437553255888473473238018926215539107312011591416101515752649758144333550044112670214783683685776678691339460285156896498990288749825086968286603073084245047963943358311485251316072353180567034776384185285913133716608894959515820840975057909462245898547610251522767693350723152590438338673001027680748518180403319833150978750937020464303523148303897563407964925582492557729972957776445316130581203900818602014152008602353159450270930126213432315775091294742338118413924398980194708107105338772788818443393818788460492759548344081111935164317112066510087058124640058122147719526215148201566784700909935228168405927197344704830424992615983460640836638966632689235671923435727697824883411971986554017233434626793442386684476755716796588019155157148810822075283583984968722511629145822717002403438201194157499087475811916197027176532561898586954162044503511103008292774865310568833787026696074772342522629284868049639411780240732908286798639095038506003738686812425370835961314157881344999472687833184209085238081853723740498368997068755852046802184094300027654179879586184236302042475990854451096745267108109353456838763475643999017016139381975275405096095493309535134237088231339267869872321112934202211156645495854533612099708621444944251957526615116278058690214716793666271809754101772078206706365860988461528031919003120507249604921661599114753136473111962149250851993531095747646587562390794056747218528169044182202685663034161405119471320148974999034425769318074872168357016365524477572307886645834267176076559810605163565967939095516730024897456684687687468699680962732403921903804130909368575520975041899354031252342681914697261383505327325616328263400964246337305758175159242641811187798894858625618521904783152667410679320004935814539631751564768842915182940988078915790329433500347237304291590993202054603999738804857192991521711495990544866313694683192263229871093624269302277884268916419315402863849733496217035866381179845429779800263282589144259096069898972839732671048601851342201440062575598921532241014246552029929682953042970845765566247505915850791526462728149219554787708926700522624813389440471528673372765357366457161227685119639788898028720224592751374309117022691383128605820662339363960439542443924332816652798073432600032238534375777935461186553817693356477844200792716285131246164850972334746276438866192791470348844314412263480686510767051010432306108222196148953878379075938274557400750790452389397924838923806833680801107913659371478917902053658625057520036036476382097948790949158974352911199829804874165027333796531502819327090724988085245135941290378247832373551038457782410117405754105413499905878621462318587407884798530459386414595785830189232948071721264768044339614700432864339644212251686277792941325097595976008756411431737140947741494713587308828279615579787491814481720116911894776240972245180823015215227901016909699073438526839054960584702925560664243003056928465271898255516425677619977045221995672671959783511777841178870893276532400307924978898916208499819376267064454756303844245566118749663004869832856480047382251975430031444504505992976240079759755128780970052378890750703296860896927166734777855666035597590237434311087184932525131949175816469089869052118919115993246782508803307777124757269977553267526855646743997674543357376331525283212389424815838662965556767941590617771854892059357159012066869534501189317079163299134458868249123183346491896746383857034305397234387060102776621725213727670112870681192597159567397516186235892987285002574546105131725422108940642189172133139060048537478554468951396559091149313146253638896557531558368674899550366471281244920560423704193765575931541653228951949087389505847526177357788512879673309721257435974421699027927395925621038412328222587146147640996427253933345134188968500115521383565548939764659554785808218216910304470736287260958142480292293213629433585465759835969323352463489468144783197085634989414103210829738364147200639311914728193055595360115675580993583710061780934405684750970289349637140198606519695084523094806915537330370832467428352720632626605791314152818821104117761130408328716690001408166358006077650326306760233632824888434774445473742033012543816266498217898400481059856880062060149772140763850627427366033487940353611621859823830050710901349309612838364982243848744366318864645583542778480668896318102359253687651502907154719236011784897443892972123226190921508699612706313079785839635962669267315724708951517390573865728181905367044496930938700169909896370971093601094319432218236161309904750203558364413018733209358311581162512876964883094155387298570255954679101023804913153885149352251608503208539947623199495389269481964199523923948747387294322155777775204610030190006318324450855807955498214529770883129031005352918826529307640776009761497856161073023178178438231003381947911279813943165455269474541230452159359224751324503443317454317613080226673416683963533589838593164807522477326840923651958441403672481921410040149605489538312052891624133430474301256927750321535452203106189526388289249930689872864869256750043810206966189515584598829481188929661283689297716471313709845205652324601221019736980118514075243594994477654900568395950120618747452355375100645277206909205305853355733558704996827102413298377263519245397994301258748310454106821132399722740419259644606350069003486471177507137634053479293966446616219645920318809755772788934522980221626478318925969528497700204738426791357637072985703568218586430023399449612216810236252821893226441290060715677627774119004895140383492688963908722373809031214716564751507871114061060108941531356836379155035919874970727761026427816572716977521737010471259027523980912829489146468199488870501824413318391102261480911329444872239115690458349295651036586897119929787178714531727211114621929458664650103208871659334930429311833083981785174036365967395238900864664183427287193440819174336850890696242949847872619566987072248288375360537132307849619923661620304559577662590349245742599465402652174851510810797549980972116531026955575515882574282126659405530819885236819794012829991920715598654483019961097021148127006283973761660788293963058933571185219751699064869567619201922359614466824130390828714117682692385571297991256772998733021526901358198266617874551582270722113755970503580646650400739830792216046293357070225877963192216884243969163998703413687385049284832900621170279260741537196960316238624113802726761028080003858588691817850934981774737103296429817611906450111034369642892367597001544446438620875210432997613231410941585188923181620518265292285065086279309438620891364842710637037564985476195437718742944368139183882763467105541150775402675073834254670683449020491580630594377772605991237555382543451463934275428982796191759015357958271219217531018386173553319269015688608236396526101401208725501875881480607800135744383408854101174427245894131258147018533666611583081109468834042812476821884200647640892854531755532749874092583495412887596212711876233513536808446966935518175217126123982071628138265846297965068391181726387062692695126759661447486762066168609122272956138721881377647024024348500447318546493169540996220472548299353646164846932472273777405285535155020423528855816848705435234734720090859279397999046354119190683986529205525737761079136905811630849713009496999084247214078565710169891227695690596437098053499862465307552138937782583096485186623814500123867383649959543954869066210865183725169880871637761229777880106368066088435611027772764329417748273436341348719117208721734977958601339019599001994210612877292184457597893777895112593275257073786573670330791006042956331706861726622486931166973211296123131322062467716387797201630464215538323360701393065939461535144612208623260335120693919687007936515522882028124465899266399298473617615899393435564234662583306418730035736968321341567048910520302399990452881558825522723898310156580152413834288000049471888016555124250976370055976160659168718256786957415753392547415578346559603626310277292583460643425268738793152718749128211241923316449099494374434100251877008131944489072369154747309463563638012572089273203713264874567147018361078345888768733581580332977338765329771332310464125982330784863176949282280592329433800645707053175342555451415489178660083167842906084989416099042815695787135582800407201579348402510802587896614884835062017117064986601224530904091308932496785382788959226861171336811043138194746497956692936529976797200662789151231615040731567034641628337365296420397954078819509197235891917700959431527895687428056190970912025585656704365194671401360493159954609967917022554682221062642204790759624811955100977287495176205806340747789803264041893575404380267606174675604859457153919665700917649959823990900726751129863258815944440031722614162988340401681534221299625831317796526898356395095560553958957148075237525775576712664058525268336286316776851904405849434069557775901374302723213679672402845433209902335741588711609912043274702754352104296666823091661652850972113520481866660547453966424794757219102739989277618150933296013053988772283204332927245057465802396145287227187839837459123874549073540854126322784347455116398004225676491709728156936042859209683757222826668153876745273753327682232568069788503736641971882193897336617792671228609645790594328261402236951735942334958136321150274576220775604450161166200420103579454574050350798420970208728706014032923041140446349773765296765127784718104713324114063526072218357711691728624882336376895169299992163603389817834918605476337347221006059610555914662599434013056489103405217419657225432278488840483926928522771688074881077631626405867314160992349118816238001472996346793135810211548102575859841475720786390865413293168618679190344247720762573084799504425144427962116508933779598448868501503559388887772056074907079288934377770720942789728029644886062465018175896340890571484571153357905871284210802857707793554653715201118336220722008537609830997792215154302865753917330233603080541868450734182007844980216273868017182416337477373113355023254707421042503994851883716793713963259337355339190971725073680626090128656991380288045211200783199277203869213437424366370991653670751991976303209025994614342278195061540945119386633649898301432927861310503012371023612243803594014395314808007760261810592524061242430451843402145881267080262217637860124876743896280634441910871134883623584624593290376229616068587988711569929531786876144853699258646074959288200889594380943375325821643092012457919775975506853742628240235795639811286832448972788443187922874858938404195125733454083811440766555785567872374087862698076839862550167756694654960493042534275370384308143341578133631140759660236485409326053391589506382995589790149891009855421742955424469064104181723307826568746539292149335031667563802600115001709672516497042124328350812320867584194619480407316720026101611070587893719377896056964305726004451829941175880238466794571827053039478102713864761450176434573674223231367491896666780607122038052243225472334135979950093398689174227836266392463901366595192061634925683939702720576443500042673298170307832923595296067460172086647019072070510491663532529273124107772116804294927218634171079394933097274562270811266898022531501623278469232438328670913321135038665380835359741283182581052846410014054616685235477375951767786861115012663691238330536078911543679258462813336411892497625392098231402518296160841276262201681569043529622209379797143116121281245822068573005781047135603845946252107743867797491648082534628914291162094268454865316612020221794247426015912529588418640895096918957976174485333263215450167097483227050331308356613560470017229590690898148354036397995828274254332067594120850901148113534112954247133017037749962843353823411016333209988269757862862703216871505688094187238550845103079179648901792410200300395580296867669848976593418033480143319834493670077284331704365535400033796715192840352848465287757037169969870206381461060410125714331016510880620366026664737338654867842172512930725272087812777361358095462675702719462877054414710838534600370800551866104391835320734837949777888367078706479768430379254499980706462547491169950979122302302914614189464889317762643617373703369380310546815095634601556977288769350902014500172213829387769159962355398274448096852694970086927557318541397667017349839533052706453303352827811525375543952992323300731400808330884987961100275746178953126129870729546799714160275922898927256602968144001443652335024627683603471901597178979192246483710236308431593409912160631559246072583210227704805119454183926839030289285777407676679780454548677077634688952354709917165176521567788228578424189678937732231008511719240445505454619297319807603158804907927659644774727759624787650946318430449160218440057962799086726904005829432900327479947755559929142750306285941845693424595950573787239505784826855683605768259580012857042723223132962840058076337403487349916614109667264566011663877486268053686295203234136419929811181224494853472078801384904855892564128973137163021778912092411195272846775479497410776441954550580982323341655473666717503839656326096802988614518856037239089355141909892592566452528059730024441793312002152058460568488268190647423154031648213513237692757857146297149521218966406392413731730412445346041424882475726256790229187472097722899710025309431404753028128380983390795095175911531676839239120624045205070887562827577303044684279709897724245473373481007072486714755529676554502655065576160555618548322994411765288581170563818066584901577063860439268769091945186982001549267584251773933167854720180559172373681190134182115805187362624986082976629428089278324003778599512291083159344403978062173200143740209548640581720504348993329655499581775388700393636844293066087275638420255268123347775945206657624200836407908411227698446852390710343709931628358655003991118576682414252198596762809189675087816964028398706029479282969770184941881350976548268641954255982971863301054788293211531278655575140646966659151950432211425776507723217755256218339700854962829989168916654965542356127843689639064481933442128682854727012028528407863436361214332599682222454706582769639148781319805326342239605816267603474975565278681034944459987405361793976705205384773532977316340163244838812407523212393842119107473864442359224117831045711363413494927191002485674170871128804033123819016197298402366949065976058654660820442071902398730354774137769889079496493033526297002293022093568389563089135319567131889020966136875245684773324274871437643360262031324118740852220907865663402860894292432397563646574042942220799376855450832389735879185592841038542063318963742782006170067268422230416825969919941673577173413064898732145623143954686552239047588003751307826332127105856568218833855416997898111951302453708993051735150247977787175360252683020716334239002291072098311258648292394415021354779694789957156622930327065252703946227649099746901571772745421476765560683427531439281791635224670668995209573045334756695245566439636675183725094365581608831844414962943816107793950754065986016108455645992837628800264538810743869729083589112265798990162047569335149832522031895437889937557730086470195307771648721628457305373596498619881512107158505751745009431787028353538543470444694275481466191363437873655853218911270045548606658439876421391283941466871799479035093712418272522891845999346379518621401894056834733162259180827806692263048006899370186626500882469648046781130491599452665721459198342292614730405302659902609746203397612165270731146348123294180881749206605381439040172457819537715527585563288693763867252996413317133000875558397843965474934205785056905531944844544125152809734864882081559102161398772781934808663483682669217280613136384561956682021696687132997924708298901428390285248534364495596710758943143693022149225053864234650199869646809744481321022714049188364298312801207172907052967380564095674300797080101392648440769170932257580677098641535026180390556042298597227656520385700876895403142804362606408369431626050630042504830597779497897051635298837615263793444916386624367552811777736401642164283041635042176711853862169465554085703682206672065476738637086281136718037981493362016456007234585382210710415931629642649713913787812295055544768289211607307623700795394146602530849115009385845643707506107305362288546640847448742251238611048585460433301685476830709806341269263695800209078812111225046176774621161496724568880177604464950083435138157987106631294807948013471197374444621033411918132523084948607626858050248181549910303791558001317352041021322033153951261564449419616915839644511776499411943579212595807104216631994490474086309982945537160785857442758851032066407234279236161051839108682596369229168421391399704452229122193140661413191900476732897331533150466292944440988766923606516957853148717005080715654583193482922557854715381220312158582242439109052060437244999225390833963352133315981480873070799871914924339464788478183942313774652435332456014248481543461584351497391703655093038926137853801777659177448680896157838217530313967741978535002576218281183620457204696335919283889104045350029989798101306141125667851317016082181085118625070452864787341451040904208141875701134689453251067454111766584225270065040443398402724969857512614555232465089599734695837101956645731295970691541597839500912982304078480342950072331428868963248214432007594707401882741637634071636861708018480809371178367769952248852911019901013796742498890137595928053264788092063259648530990391146063000637609495615150720645503742465988595643007341055671168536589650791790505442256296179028536600464009022343819682661732890532825118472749684597662181585420591531912498493911117279472396164826651462734132107994800356887295844295908466711995363493181042390530079768634317224288801184976531339313348624295868747907892072175151666599496751645935650152121860986897027053684270622962413098390314987206022610808807498211784622727955553799686330751572273315133404685509818629376634910289003519605250692103394410232321809864878044716568447205273278941132798496356444063556055195587276534005296611412348605977668763269583518144223974975174073482409873292486930590367457935790657130532980413625221945525959840490358761391521366660984756147242470379564274383963867057496003427347432727142859622741561559074168911365550150926845854725115900045162140719600445860626239823016549245893271099165894631163735083060486969656989917630409902100311513595521475422766282463791813510151664205128108671049869078846738043232236492539224528016784181057688598921612616018383798012363195930429665098490713743349414362690754433720201789731745243729910091656141619002759703600569557569291590889767100601266514014783974881173095750711426390406881718820613964617045841743528172592747574365500289481687820461166511996505486718201678813200236179724102928090834707232436745884676081799826530904972981907113957394471833635917841140413839405518046117988563192138604702725746070643676860250320558136595972065528197857789801814228847307063210228796105073408892385116818937214119335074634248516298647830014717806873317030550520377756544881134316375924165127735812197706944499836517118914146596264130125918267447584106010919287905231677215654681001840000767526565660804400179537051077234735328417619147813978444192806227057884866091443566291141297848377610000946054736277114282817825624931307848745501124022315801089392100567280883812576251524919911791787135185868600716770472132037480194671828037513458270113934776069132287555901475916973618331984514705038197937493181533644980590932352434434355128520067036132865693901311547660804873790895177593062765938928085109697902483921485665789017585312869919048301903777298093444279257597555963132297765171676762026429747298631869937891091569950396693743517359528528054632205745366094602013322713084904645091530508931904586461873874440409149602117597091918025219359499946216519467599100771033785946279471220461297458129564733964704670623101815660543467973608497039937768169061530579788687049291125215455880070721646453593897449183530246544237209027520810140378979265498847769459489926088858178115214895808107898300923162697786545731390857064890657506853281173139467329545330333080299772825080693745091276851478576429416452981617007321430434252774202507091980190540578298179122913809463501037698596021942215655126256090448058427921928356553339310684399693358786277614054932889594474308453109367031628646793166342872328525154949018558807525642931103867966080623856520683005843167700140937232376320080042409531365529849175154024276264471605179028662734458461749391905800715064523240071444713862027365135623760522914242066965267543118907173655763108707121150163694923571961084364782722831316917867545215864461015069200436275923661293533504032796619825171826020797585681024849834305934944083918987864140015927433849460057705277873237933464257889003330907681437641896399844174206849922956129638432915371730131936743419204627192297310397518214785114593152933764262241386311111318959794958839776604896827896505983640640715628980497310124072039019613861779861705770279866631643749562736204495001605291936961813545310236891521584493429681162011242572106208236722679775421060073229024630031001952385382593254337718222775588199352990469640080288974499134911931639418010731097571690088088030868921315214156787013715389528918722677480737363503316619370257500547552658956539771811572882719508349926874871681851810188538400001740274546412511161386318223156339990120167475030166630013020873116424329588998840300475127852179749431501936964562152553157403905151995638540048356454618283150712908380885984409769606041741906056984792534573922120083282941297811097460556448632441204598800037470988838881630947372868062880205557578651752474264329493682958183825623591000926302343312752099147751398031713524341893467093958007350310490565031738300409873922942295088658841348774635941349738545454868095394800748153657038926540145121035238783920018618307102139491978842726410980204059999835248925732126982943064417374789520350046286163259600896192539828997444950544162214424052241644756908300856088991285582721975070394513872540359772336673333454318985887636789240686164298561554482645130277527077184181096815786565193583921517993756493178660068209324159024799517747730616308399773157515385453879184559897005321060738216560908523477335973286316653155196893557272157532020489292425144352845932136258297731307265569539356992315774749305807816205399055920673952379724447812006654591053947437880945192649842345054762912608828732428640980309722815131513685815167313070170676992990939087298062037847252608390633917310925856317715133917442494209848062594195372233156098954882083894686721023107835967858949191331528448011107779030612624558656520649481578035544191019969604440308310043400635272792082549951442161575670731938470627242020386299062239138138972286984497432844975033497816324734760045238643315027293281583368965879518953383368648622242968799427551307115547621727462882612175164498596693936642519875697302470202599330455295845767488770828033107707494345784849449884029694580656566154863252378238815614320810330922088284589973558738002027919500454965563681291789049788309526504285467570247787447768897752956085790343432065794959970262593041073550685985712289223968462956817725191670369596894886295071184021061408406576012261448153785832374412276831145671978452397337707707796464341771566417014240714936460599985523821517191409533314264912302704742569011489805852575220128257802790431611581615671836599789599496995347807327306272487489776050504671196877084947785741921306356410288576100288482752127657956260910185629208608856571856665415557295261369954088778099111425515201711937036685508476302679182380381387570299975523577396558824052286959128301144396050004198682474890686723965392768121804572729215040580493812921035363301077240875407575679529473775613538855384880309921874326448771927616300655474511194541887125153906680326784233574416688690315865927664155445395273859262092482212107782255063002092760220524579371870088619670347076505612430239745204727308406635141645869422881132558095381119695407480346079958767478428129047290935204122610766684463164922093547303518667051260145010330758075190534259278329305490453403428684192862894619545120870140058602017601643247188735064575551965025993566050528219678577164209830950505241659917985313570383001019407952636313257012990269446962043306050167549614723938942150617432966779128107554962752786881579342039363193951514046266868639011196064855865118274077567815124528794337835452742772018691269360639565185882635601240129594020291184720750577830921271097835590327916697263253318083241706371990386212219824981859987836451660105350243852513688706046154021695378533844516747358521773335505073578515186729583674193458619494576652699399141544313707668403578165113537691470923727366867754334262286837316674820190619326963040689542491402921269487444730887241196314329497853709190579361675244018517995524735650021247798543828920204341867899459367739301436865532595153746998516413125210571237825136608438572513094798312103517521326486616057425587385024558077323275982673472589331667568374094280781378826716608005105499506561030359380229137586491846821275930284527828771968945796528444574044526992494447680295330304551293978171663680799415220856850138951436999433673797827669715378583548608084357372095318079834429269597449251955499735225146237407384838380120991380330589222300225325600126950158477594914237773506703592997716721766721092075759978908030354453963990039993067654522100905781221013806474911917594104644637032226164001915005348103950191472132878894293655435880936580835367357518491159674391317268372337287499480266472816848853323109871776270935613687370681366954834597039882737516469040455132593167581520739510988704207215674452461321372156153619420856824100440677149954307815975769054003194999255282480720443647349559674054191339736349007545719456106004960617804856543649034403507107724345415298753096533988812883863797235180244540632809300999070672997948205403542096121170069236572222994179701444027734071860296237727000516251298976434011267480842018076785997165265194932796424503019124329625334945603236219942101931421088292019067813063577857227005142458770269181619933738594479772091197119815939752647036311989660813028401915318066813799498801716309522397100262250028075554279321326690726261113976830589828738345170631749073953621688642746048554681822533408727669953613005099906006066068863387233048300954591666747423280518261253522768833970224211756047316000580179485016864671167649225459418772871841313833640673800415791943291816367142373839233756973807402962298143836328017850235713370988283428545904909204843181948650336995723762717264755912393986904892215565711333753471900206176580885598146105057338977293683834324959586742205455740246183788284745170782660544926779313968614703852298028544191531631670078797375191421907847994448959606999894713733749880993394494749087104053277144296145149637999835003517681580804744810167699348829347623654112517471709408099709406711273206449722420520291957836903382048756443479421241083356381430039877030023233553254074414996501472758310566696202052529183446427738591795632991278137983201373488944590512051259091382188036351627302234686588818170357414220024822988484299951561519586237613295506828711516451011024201606517287222919545142694518684491921955510883477475614533978834628508311350573708966681394124552487535011241258386354002312493842079915287546127013065031975807331672310937053304702596495940000768579067474667558632835118277161502665853953028558882714783503322003393740468891936957987763161692270880283403830844384507555873943117348591916270997774425584097326404930218783340634395311130476295444774590412864394674844384734879350705919613856785998725919804921395358554494457097806307948223776909158167267981273188760550441218939999435566471048494152337918802615232043663654359748521217157705555303396327236535338613509275053519936395512181804206249317573897956080471399555941881362057779446730577587687550685391890028325704838275646665668817070222123585488839728424616335435733662558001874680813113759496907268273807934347922798746619869145202460937400372189181523867379143699836285266220572550971976489343697315212694424632991852108590507781702026588803076181832257058775818504211690004408366945926055189770344568094284465820041021651049279989652108350398502119252980201233899238268954787665061341960046598586496970938747740900557246961264110195478946215132459415292386057038521159512943721913034553883871728768286976779728509212262504064928102798693146853352032479028941608054667666108463058274579554564152252223023359951266267115578252789318389203826033082033743779443685157273311605613236482266911374550510107866862904443380402254810579044875252289986014827647388157134217522328883115220856850362372797235743040790886136482114086221824535495385301151139283731701979137051469892334042957925044624355845999472104957532110705400637046176191262350230042135688750297876024407155854918571084748218001214881293860508770316447386636950580661150918618801300075780283151894534362134497264826692221453485259763535770944406096789483017320764105495647858680017706393520517045625029956504028096502888973437310314399888642728656231257211897292396797089443705097376493583469558893760150773962504070931449715664815038284594623317845458209244520682569921699860814088701395437840283166998712190930461803563227581566821300582619337018694927238917475143294199347881772966236292577866096009232518105625439743666931003184842227616220790223587371746857546458571242536273349792932033123365259124811935648643491909164580130672682241972253805032930001451099838396435712708187434258707154248479276876949025034821301020909568972673660249250937303865253369908155226904111246445098391176910373095981647824333324516152356709974594143137941847317334655774872344755202664486077757035359144007227323840871684917830831225560861036797095143083753349304194517459936272477641779254397453014090036581066962118713493173690657302501123094919932766768165645342345205711236190936277860402396723067908200395057140683990027596446931281830456190190669159308758117798940559518552068294935917455961682913615034677000125013688565486409777809209973284243202891717873936092699798394419008873718377131087419445949496188491085358171781478638903392941665108842762794174913127141598265723368975775980037534046402310691736804773893728083464614379822529446883253233621106559597407279447766144755209554999332603505805142141774482488225948769148985634481252960216995281602748263667477010735412799569960121285564455420944166602130836299227804928768380252842974384302365500726406129741240451574416417165633170782145930638250577185487022365032002385399322714082676352390776489341120535667785710413305813159177638023888703545337550144866950721812006901693937342195710962813228036020955823503315363655375506266636655216214488560794194259754807405913384602475986991497815701340518540496357468933919527763666025775931943610344097411684546795114981972923734701988274359642641554580473542976319094356510472280236390581305169467289054044228785937694801046279405974462913202881873360278368293274521321439764327302501639839787853735482941954296197707133715024676691372625899439784198364221135494555804243123834902634564882216553135358195982075583936769461153297054125557271684669863687942604341524000982441180932881927269503101017868296010999744663431765559187161850914259058258903822709426720810969417842857122662832385974726662359628965966345806206100509256352653254909375571570435452695570356888147146048200328029364179934582297352998564217077180824960737841848943904911513595775738071517480859325627694620329108967058803706328023619684412043073738496376413053796728948496984547913116940183979007989566164902413640317981419165208299190319926000717909210298665003760552684094275579178580277595698617096913160213693309540663742667201959432261307096543206024871820361692415165281687977614347176064174907827974798389887122560721527097755627719816756660401792964053011525861649170214614569912254155909131606044545569920096861900479606522114779574690470322789024170156745444673037952481541673135496098263617195935244220655976293703960694171769857858656280864745100910372757568465645690356776827904616612287129447780454499650947645262462780977785743401971374440568665435608342133386853384326838172220841725280219595083786576962080803263561955456919294450881588993256734570575016972069858005614079697093225126323415286616698754662445145647182902317342082001574626686186181970540764824829030093686681456726830890448623757083324294017526479841461333452455033914092363419806121894992817084954290187760514127351653681723732847156169889278679428577551846045124569065131996785382157958429035731973815943788114688152744492267696858009470840177850621319262213156282243799982497693757352687713593032025012181668432160248750598888038845761080393626836946381160294665539428332588751026216157238500461485646693965688730100286559455490139309367819797708790236988219236946271379179158244299404749199240447085678103426529771417523309826266691532632271398018527557540245496031668369547614469863085523055476783419498658004568411739765155826013176491498497372898337001185046583468572212314805709265977177735122618181757232422867696033604257192803903583918529342552759691474499592346852165134709787991485136421787926031632193990552205268905847514371496928547070582615554454270694668296127418630047678443159095802347384395822149093761909408693112700348152276273646728117195459286005591467250557981550903060813607282906358888352720446613847315946911086173677056616510794036201478723856844049848633044485686246538507565450958217524882685870673873036609251527458303210642774516582407048226434097399899187405833454049065454393617806666274484458896207985891651854040243236524509247323201047128522801544609430758042184194225922146350031237741105302137210439402669133671867998121831707429701870545239495085739300499343419500087875614549898224165699506865197181824329919318851447511728378604693722035955569132898343202883016591804855378834277547983672757657685269684468507836228629749943786580820203176781278614630315390581282590271303870124458330380963669033025408545722437645472334569711848294477560305741807204658018753185303779588805675608078881929954776807386810545819448386086817752990627134855752570371171732566285931806989079026652130089915183455046217968234390527328154706640218082243265452951930159376516887790182261666171716672797278685351182994956339083806707077944125827015091582275096743571101503443314910548931842613864712232145794072503068978532773914233487287477963902895560430641706596744764779804699478497888094505214405355417039000939656506450809182864100809745044199031193382661361554046551894546230070578325911009848923319445243735637750192456399535455056524820250751812821458763000517726772220006217000038340190654200414005841978821894862606544235412017236519246372665790195348099811200105856518896627457962480538177100402619842139202728821210044874179033234903161858734309403843170415235171909150847050145872136546278160612249261482355354943010638923164225251404264323119613788354830453011745127739756755455195035524905686847517787445520786582080541022362233419366392437742869599142746825542431959601219273192224537883405608277368712724797729257038521713410174658378671584363886289393890851678810623300102101017092448225128495531221857079433024878808749159906520276536992946713287394366844033693341756225210666126623718143128486466379255124487606250887612135681397571504574041234677669650488497438350453017892714123114966243697506706333002054674336921971026884345315154689506267573894101993291930056133683111236137343826803637840788679948281419840296956744462030024123536673257322558210748632521161653016207635432972928811354033004183665121186650237226391979676159175030948477679871916105724604395611264681137140868304812583749590313402097089597633266617110132418469855319163226663173610546805392513887444727291168208792514405094473931930728317750314721967107781703926568419920408908423370371173058282054646071687433284046352097215482607176685839207004237366740037215172912806952053877603002151289932721850749975798320626156598916674721883386552213976374521036971938295908026304558468112388544334599055940670442775034549870324996201175876881226503072683106763257729238058004294870112360805229136474903320610706085258834389918350011507746448491084171070379500585148360919938778478719079510269592549202178421679507033179744160954938234674833824324699810500183222831464090347168477746872688198656444924112331930458687943504121255225309735208151689065543035379854456159790260125768927596255082064093827035860348763921178172205294913976302907133123577440787213892584154053801685355600957138735098896541425933088403390980539870391996473807674630135127942086746767561938266777159571662126384877364079724661669147514292344618534421307744544861990944167260240288917143526038881003031770307862439111863998885455644411652667862359586300441117756819404691417333971347522238820946849019994468063959742295533192521590160626524116998830061849266254941924480278084585809443159753013308017934073835907995098764676917816924766477480127170242313714013171530742706443924701545415636227026060125713397882167483513243696205627640905334893426015875223582065285257081619743863623687487108808466378993368323201929929179400402686492841914215606124420903099279709382516190867763783001514421422756355050547854158876659558488471027485193021603701950032425716663761443575823870280781928099174348152578391066652633144671904356877014877820081372997222149655066038331562941161664861990470722154207443625739406359495633765866206503426221523689098262174546329454438269886938083567082914307212735330170806537234673347630010218828712303648908732147595861724692519147903488848059158034585378848997835209078656343834180412258960613875035013447487214801495288727257648548311709405921638225333918659724699803643369411186261811627910290983917287766567315831310415792974111704135117048929032565710892000329404869428932527569329277684314245003666154731608877947215331386150707182221885097263659064138403603491043866328025844012977203355297295644346163622444242922716925153219747351686925673919640114458272864159715720550314308009365990717551755908785559343671701736128039961676904558694498258414760131989996305360213712885871903172066758855211645340920529441884935912093049541483329460662665866593282923095731811573390261927458683625453701228508267256334214726553630858894023826414668639553620313294536311395676419519778547806743223058824359618037576478415135123783593579751533269052058571487231538821656582323333181100250511930561252652688924905423287136111766637420520148720943560465193750101040564342726197057532839036411052457080173089975537642304590117142932394205946120903816220534556017248603265457231525717855249738221880982343549226637371780133192897535130552334235707337129351965369995199037207731373668612831271429428859691051978082499523233275165599761480121336301329951558772659294480638589623490244650071653326681607140085612052237679420504003461311408784945247610609774691496244723976442860282144736743528869998977612198190371472848102286420969650515831852937643895442878416153038493628486539410640643164985408363682750555730127257253015525870956033278397459966412710899770834090463040126063430222324318325218230439158606361772460393978260960034252096250768325617395828333868499649942585880107573237906433051542123304207656248117873520815951424776771866939973740348875011124856994774094173352290816966957240113095333280844496868291478931433685002552722191561253277767552494732509594549791279644308849491875120462364237073848399475930648705161649327172921356742409322867813200895728302658922002537370326218325267632200921936197061170176367959318453701646306706959374326615540387659013636584793800868971521255952333336782703236661839805008200163605342185756076501407122150859525127190485455309330480490414546443901817916087158515498236094945538296425905903413135438808186828383039842778698162488671608063408118908647189806339673953993630445356544146740570068101756600432865244231829891354905237344385061687180396434754193957940695081389836826355211163041616502266243353708064627805812396665691319111321598796382648557053590736751614104126706118773282112182871672244985968553104732091053798300436284010441088011794755335902558445457376547322519644215532749841717908793212951106798848350453058021216738237363454424839567257719322519079678842702518794682736036106454087449281927809248387936704910511001504441126058066788668612586830161473921938509993166520553516339060508268192778088905933337470057152026846003609295371391409518594349506830905577500249568163334143847913008930597791172470481047078208274709726623809541240424240375210467022803243516324610852163434363262034516332868004671415534437777657477417885893573667804939523414334650497890078878800218529852756021867011918746509692897272433702913995236977436467441476281551414813552590317334431441542018967970571569040910342336756849583318639577185230503957725032617606342271029839946244806297929309702941703834303942405689564900514544115479337220448053029099659138284012717169601289845409793225173242843073134771409457557174798049659071161615852942400694786574099472844653945635547711816853275556394027333840464059990330881450067946214575794553541905463577150539835089401444442354966930173680334856077746875856967279615709712788879625266349094896500117139086153655293721334541456681864334378178538549324511969245274933923122749855995191743951150686242369643433359352221874957987346484059893844936515379796249501662141563919449442682320063360569129944556613457740786244520790740793808078832332507920775933512460633302196307630126624199665590099912929794285445480522150020185232871260007649032538798241930340880957791001658749279809590115516376533085186078391772011933947776104035657959232627858627291416148365153107576161433591733303484781351644160443665028103127380196406992310870850379704568566978646119171173241953707332654694503843814724006409227975110924874285813037999629669228203324159126107807371717028045965265403930382329123219967917706651967223805932697622428115098170132448381022954759753038411931196359592932633931752301459487631248645406254932932215169652004357614280418135110077340133897115350250286248068226778899767210095540833781917072582786927148485097490996326222066471654758726797353930371706799676015952375660692818249225428008303606534663737034507430489007862471478185760243144359015591029601912373568413550377137066425520442533635415947054893255323976069691277712427358912412789594748776029748818097015403456639826411847612994517356516194687917324956479262529796664503580935172692489018251980868232156143064661697180192929809915376822104434811706389006573600087715769663668327713531738619432097427998384882184355024016008791871160337274446715391751880632193533419506632558558104984496001207928501302395931109227261883128357218903804138519397422866269116937599851135195683728753793771604343136329577972315589525050256820567581599839616489558050051562137008498339498573111772385649288638887559575409481537142733652115919720201111255036157136367379436684639059198751206309303880555763873758928695244328375026368278698945072313386374227563090301612957891445406532019598971475619921564336000439952537866851093532028285066798266506206680598010627254995726087105310382864693674512408249946736309562328983224134433368471988945014765919127126489721324680115684782424983395177299808840055143192791476064643393776828384982417687127774293019500056803175238677732453237674890444658247057102541134989944098279953043077852893530550526632518052789911005805965322096016957927255757884393244200712129015128477554108405817596907432613165035542465701347700500993082107649355659625522667815345388093788095415630575068771983872068267817175550478313726531951423828288312670498395814486289868688393450287836497971617503279329627920336378433205883185936822154238557138270913213765246829337309182963317042044863283442204174509614964986655991296728257039032625450245878480660854670600891319405669471360515090144826852914289172691931514635828072820446110375190823583743834822356897586838393601143294923729544002429955458454923157400879404961794958763158040388817404837550152669269208393550441922538128877144566363616163093298333549932941230959441002329846225709206565846687499326060441593307641341370662895777195273125883293457458545991077670828773556687390283630191572261191394728004805968206136795229358149903869049336527717635603354683821359788336834306282812388717699064794029946719418883829236963178562319754439815549884011987446583577952194116824476568624103083900050631538317480405973294242571411765424282173577460510500645765918237448701064377603011177402017800454867329335709338340819971722425118798225211134910072162487123606222261095891050993242194650748601285194008818781684694465987117689645567164770028814854819324364300721271096904506532691110319197172522583219188461469047805598106776230217677735484274328834012492634277737463601297327307958037348987492910608136105467255162333989406166789996236481085885315018873521237679387622900213885694700240199306707707146125407170468310884961138156263954253993656806400725254961838660099191887705764298180510077093046814353660341926237875107943892302003908827089492021135925532637241681615182508332933097761782424399334519931813560237042953603340613218486325961782193852074996961080735626851491967024592012243141376084621560603672957980787192536392391766893781259375907372145841318089824583806207121836216996568739105406415221457987962324798679533966965578707035069060340650190637435871950297559966965334841725859189675603525466383782782051213790887859657594154190391085882088835089333284884926563749720250297365322513785264212958068245166896121251326367295079613061337699813053050091249072147262717213986629950374546376439166313144899721100187861434695209337640555410432136799507912783195128260158553389656858358708976031641121000661555972959223765203993681659670984354549647165558818441923722211175081884624684059949458064198163928331342471213905710671216718394457062815319261732959201635071677799580018272639941502897710469234194777296415546726177920662916516618551001836751932494583317180916140924085480320479425174563373729683515409112265256721332059165709739727571267717052443286800004827513992441934593931987598349391107003324278422118473610178585672978228877676097822426494913670618297911333471188669409586622527415225081996208753451663841205461971090719994417131543678957610615231440803114118718630664252303872206436430975441059721773420686725198757305810325626212632367067330931013454342023572519159446756356232823591675481212594013815333090763765472561002614398541221408668901647509390259568986420752380208881600486040524930664396998600713756518937582325781000131773425544595758312012686685661116585513015267270120932095549199363011288670796524531878029545508377921312976629479339294658026620384857207774234322603405681618934043170113237882214392754628292761512894168476116369236250057211688245987965855570848219718465053472141569285659768727953132232094366671334440242580353701384971659932133780855023877535940139813806299297126921078308545513848087224806498841420247359020397673605326175375024858869739471831660378448923349896079940831997509936789950285986527035866137858100869431576887197342201202345558789156364330956678221451502033666026935848706522416039941123548928272908511014082667293606117586419092332598126900235195544284419259731965404344473584376744123339722273225003335968357693694990467198509839085475021542127769225858001354851812715321363232436313334367178841992226457605513895154464599943113660870532477694950736364368018499090624245713621635494512773627204760373576816909037481546590675642176275692430430885689510803539393829266862153632783439249802938140401450308574192130655724828331063845777101356531326819688867867187434948527084822489429180915733536244638941173699606118998855322456185396678000814083070704415950959392989781888200339861866111720346907143078244762375642834411234356361268772310156158400240038392003062329647171272792285914696921515457151371309200945189522616946067990581107646066131790723358549856560577520899774553590509103928208647639500901903490304042713322456929587927035435361202175169600003275401207366861714790557772475125289664579563381467434295540591163580577645702279781596724249503345426211534309597512578179179212359527923035674649010495438463186111224516803983179883046549590593308945923853009085134342214576564602623291778670121878339569615031092911842939971164695549966830918130349178877179841214437342046061568186456715584727644414302315213182828491573039084935827137888416697240933187727336439813897366213320843775122086390998073429818980850079131291823285570523712735410137887026112514467811332961473514670867564164887948926686106088607030586939438212611291130070288181068543754089216547423044191653374188477533288633485444614857284748415863088352984238717207224473570720116679302919657977834009264123250019698966987498737681481167540247423333341285466961703634828309447717979950301100895056113841987928470416022956198562103216376833244939574807211903395825575627882378844691016991875646408340042776054878435904131690341373795356766457655225102242768118251538475482216861380258578471659552765523373944478059715392683473091832513284181112971796793724044897058153164803105099468395357634012085960064878689585200966158484164983919919312609387408039274274393048073245255576787740873194619120074300929172087892148405911290624690581160334136153525428719935927683434413235934766059515402785115079568961503797461139547386837797128200669156727291297865383080251528573580673289111337494482183300632015075071490689123025649724806240380512663010265725995341508688701597553382161153401691098482212396429369026848175872640393117170880472152676630648766879821525210548880460936297293240053309338630914416822174164923293210345352638905634930474552054882411452272622081928589978397284038998506529001883207868812098383669679625680803381274871435146751474389165989393015811264854988992894010288922784220136611659100970159538552590369048406569705175101194472712908983734819989195011685374146600518548496782332433586651153711631421218809416181530064366099205855519463311628788645302091358304003025790323223796442987784322908457332828327120254810768652501440683315244070719623081491351514681779001460404855744537449542505414488543161983937477431812788423888692037448526350189239059847543611507850391699263455996712522171816315815209193900054609360745502165363518890854387430991103958980102497364446323078080833442431148273856292747420608464234337541739737634934012338371983286014492705510351556023617467343229700052540064283083551407470166487963789034534912052941469475980654187332120590902393077991326712443229992869050683771959369987392039501447148410238997616820586227465769470866560550008403431258341590698084419577813670353386758627832953824321133141223558784140647511864122609727897666549721889749655019514428772022481280775244538524071090046995961514520058306637284559081010875616900143297367183344459008902377587744963089628159550053773915928123344411487815405027961113727879275685680751161570717904282030185798126588895547104334244348818876013197886106742262555943737856204571849806060263356615143046202206753953043439607514430595875088225167347046767671235377284364475007122342415875750741132538739485555238386812824187237271028548348129695422351472990348918529924913217883327369779878222445019726754041190410956405205869390264496883151453012887929837194587902650724039675667354096073747922953820475791196768747176720230657042145624034545183616698514324373452957250187919423715816058713228446715060213501401979713306846332390163980828395213918732682049750008956560896013320818137447385067279160486363016351770010704643459612707054383691648454193405000481984669144884023516660174859728544969690896399161076368056956587473286280069260187405460684587334190195144373488865032787251048379925303241646510759972660133731533333079913103849930461511039059505531382490642617867367167536953774055268787437087575467150295799979748178018165705762139429479113388288531911982661292062688655244090185544626974519710945190062799899493514426089133999065946158106562066356624612288286238887686157652805842060504895193426375204069295775478003028429036915000914590510506299600102796097635104138558881441037598563926351387647826029867943975007611329467819260799872484578634683653361474220930941803290096481554329500865325348201470821975323080855361112361847319902792319757178603572733977597337659621663174047735410283566322535534668724407654042052630648169637847139765384267771383076731492894349330348924669836854468256813843063786615977310311981002596286747901371859566817051344394380875513060215636117165161715513495794036688879678065584390999551349448562229855459597614514739707661361528550930301219164383388550253096509194988623234423791341019897023938420033972422872159969727617786341919434143821722971090987855176982672039144699349394192399457840791064641652803255430459873067124046018569956977438152956301206674760099189507259824552259788455217868864540523489107764618960315371145252568362024555861189875903909718044833938558967821407220699178733109823432927926465933156079664881582869221295795739272377538851714235883437415141390764443509782224436983616782045936012707564232252452355797904725537371418771734144862133693601278361981414093383755418199665619208864852846567137944986088770500426962008835765382640172635473285931371133640303924053801269779155055923417702256323401458897559044640086869594215794635504496672206197195259467223877525345060679882817148288609363088217677294265602017205571193191209343507071781464621067829136566654949492163777972246416485777425292123210707977777102085670532701577655389724323398730323073883425363817010881845700020619638164033801316219479364355623610254002246984452295534035104410376894184432062497248183981017195231715719287844370514966344218754154365415061496952369069405635923827065098507690938195553278486402522767233158720723057786930157823276037693686769268282391104611784222461706850239322616136745741616651167543867504994563608804492454589039325397450178505666609411710496914268781047107660985387992447958820877063968607128683350911404617352442327845893335462190822517507937775902266479594442354458771231348022597663715906831805477528333878154213347556598940604321839221946016736235680771567017003895802625060990190921086153650499446613083853447685519509436301532057663182567642040381357469616518452841702769165800874609096440568017240064862114428332719303075107269933324887980078539178659392726275984859709071715618090053859356485323831061770064708856438839852153994167518555451744294218013109406488467749280159439917693688042340795749501241425473379592858745867469133152449310429626801647152926035065863686918901995897627619439495983325173975153889467675517524862320892575914134339941895391549871726509994588390546372029400230554407784371526367776823064508484950073022172176990300676026821374929325199637768147709499871016866699367824731692986882680039241706349459890391002882913810166184622805208676780349988543052036650393382546612891880269996035937626305221868581351157751274026971627054249395956527627723213957819717116184520686882278213309199436660399391293510680340653947042815397621933579348269809058405214221092650780851316704238643262493389086261855160847152446495970531267660472343016873793083174486114631178489009351860807495198285926309819368565566283626483662251772799952665883782820135949484250278316026843281423833602885689504016779071075198909334545507853809852522721269590761260960323518311754375220733375440520818551410351573403852982436633533813930992899888046078931221752701435138066006041619099320498432134977529962877276198629867121952105488914409938083325814173446753402096033663856485155921652251985968632747362301310674611708612717134220705707165359782917577545108894273392952085539592638062131634892226947505462503682347743021625689677026819050683909801662979497895190435791126520577728571214346189657040658203402721670561722963168304574043539327114984917477838857458968479709814439506168349793361307088761610167044447884057402250235156391269399427142542508327600062447053154393736507098554854841861311854071970326951997365303680340947994233339783811184754312452374723666915079756797227572350636429356994113311504698823862761875210961615017207517248541188062347405877567198900695787613107597376407288962815457728947354881979090251304924828228880008604933477618876685115528659785961358546197914757629140901785349392118087001531942149806513756200078808940399078932058854748517514916738344798739820318695942439987518215305154663046707281710107790587163981010152066937800478497233972673500167098122724071213888643541332569117097611887625452765708139879833723635595097228502592927677903511158143094463157738857975665456252586772855645094881252090295790709993233267252384916400765715086197688965362613887791937095240737360127841193934051245484744462333358265722062887849694960814982145209822507548549213629893905892328290612505045619351015888738783975316640741497240698910028963100009648307562751972120770479382086575688414156780250961516261328341716867047871715143934287488336121322681378407818418437066573114146553899420089808728924213966977999614733775720714882617310972074764601018298227474832162576811981573428413841276669498101944192259211342398560952662754321749933573181532278534220927904862155658731845217463262425467708797549843315464437216971643621822315931045132434618524445710644306680731122746527284257958862642871178162264962731897113647048821605532398788906492465167571815195712063775113497956971300566212380367709715692635817612906973765912161594365604298265158008263122144016183208767197748680785514763701614811914816351104498120835090361876106768714457523784523125185654896747490123326961717953145851675212192310716008967599475244125548316579722545276612995167979696327482507218699260634285583199130170506856303810122763864618788235925340682654020265005562774146905191300954551103081829001698117552149310700582480379702273752108472544443303229411173455304555064697662528511945797561344468835085985309298309944454980389714654616218302986406745994857986421500220933905747109722133398171794749563015545970250907344745037608155404056755940765036128434972920135776236935965103314972010303616611645395862170550663567846681061215913596823717400307927082092557033387761091342638865532089987798959944961907034291187701704086977616854533156810508706792340942357516778566042141746684844416250855413713789630453547307564176641057892203340160472970706786505984699831600321735074815460878006092290569614824247617510634800599766699574384236008852043548976714832908107324602631480815726680443498540246679466183966648649668261211739002271267142998776795544039535295548502239665222406898435714817689413004939013066099623197241096618886978463197184735194271760288896244220686939844162102065736576317476818782379940388133488487703648504377754920020904322905784398867644157648925223148929761395540273928412797000005068333082025099249049658657419606002856912760156213980154559731110910612109584054295959268647593222736920224371772417922911552952356351898890360979528705497137762908123699293137529576145571520281739588591936426269285075917868853841603487331271937296972256514056385435061397417731643309433675748342918464325943788222681208080015608911470191890660341195467988496138274082717875310770509386635214871422523892927811639622226390236847672768618092437979270169912824125349569181563942151586613447796569176790265736986850564312688437255859844993892470799122682402920162518655584763382539163701085829120908083057237639098229648034156907629955259410501826698568096395953213443930058816130430033130402548312645127002560883872542190438750234060713650452916922360666945719478893376128057276944636278571445738171836300707599359399152679946987154534086146326395705811998556277134993667227056123902021415784273208098423838319398629335900219991985899206716737843389095600740158587886752485162304728923360518275070592261626072422588078567682242336714651964759393687408177365584985649244556912792949430263750233834456677110527176825953881352752931207106718137776991069013295251254041770161156335581472763825531207226266817846267985509530340856721652519834113680624226876083056173741977509386996190899102058598128377556282832665764695406458869648489948792123041328539488961244191010643868364527802709645516750176187410475117015404350365451767106330171658588591135398641063588859126580229939340988008644505916637490231063333954909608945799536698457112982526988228264734732213346062843021713579467343899254923379906383065285611888353851377842315424038294311657765073341278855354245297186861287107934909003374361189009932880191920619301899912398512161171790995878727627380515366907622299671758285017359376090797641229394478293848051511228066819379856205751554809097677501255554203269440056665292296128201494850479253576524500137687835320202153317956095393763666682680701300148179701638152914365058158225246450127591916751220320010902311581149701786730147206214345993558677020532555404674342168887867465367029269400255714252119479412651725772664494606053227154490929877615651081728068540444741917642041045401515108889274254569759118452366664887321073472095262361345031072916624606725176354545171128332197366258544682917748446943853884994719017466899026061558137121307666329192974755997248475096060089271347759893459255723159034466828633645673027185194810656278220933142155978749910368616450795014632504078069987191095563589362304641013018672948379584733762928255989342665625108662730272282397019367825781518886116310702899631906925021449446602132052133290488664900769468996467303906844652145320869175722164579697630955362569043295771647251380514989712766517767081624682177658283193082919420543817085601691987585382224779530573817439008940271313363067597277863462399821541433774940586108099310972538906632645757596453973103959619365569389803494644582006268649383856124026879359832864126396573552720593331565613074575801617158934480656003943804506673219237640580773731561422957204737777079509754930036070549216115961883539528340505727496276746794799270894058076280153756307594566384667530657497120125822804512787743219517313437551713326563933830985732154973749421776494021910781421745174206822638070818574382833135303137665276820724494964805321093356945638109529927601188874940550405845009676935714146669900573114899730750924470620745677024172042182055234220041991470682033039045145893901730089324136200944854982075185920773639475765919235907702831222642627890048395218179286567907951656832738427203820520713706138058500008293346585958345753937443043518644845434421870953692994360553768516684035814718584832557663921300185881956465988556228790574846184005289187378330743131070595818805070613534633000131920830371715600929206476655629591975205470566732288186542772442703962051155323744729508262840458531481289191091469054504176321720655263822353301972775502420217088869316325783555808711403391619524312006701302829312948568805140563866945769562562385929926232677298075472909652839963566259878179019798335465056077353703335389368099599442961383037822227482590938870942803054834310702603946220172390341228491737458684750526129607013859380469152270018646867747186223772885223296301398097320034313923671461342488488808051482733864471474038704488396477711692499177302698325794407067059417693942366337886669760399577447576000652174271193132923985474028659776683863080125741228256629484194364503745332858613283759399410605678045892147226830659597054184004072535863482501553899180928865971937792212106450906202311490368269580790440959202230336477308374094595197688166312107501710981445561818445144648534477343423520881126372607009384492927687070498392787478767011041571859152557774539471773988036765219482033303343699398156148614562618495125367723900588148167946075574094838998964550443324760019399758289405569331124124329314643986918123960155693113825478052768298183264848652777244186530898714033446216056911490651637962282902617959212926802789864917932165338990322942119396696887248365308881956670964289193479950598152074844818649841179621829091835627809769393010159489259874827121181363937828881118523423859403901642668041644149825210477555900762216100882403610830894402564909595123823542255154421936894673212995226392826937541017098255361431258633455062896711828872972083932059154940833260063557590790459188631542932429873793222070844101022669870391713428131488218331663332326582478643672144848516634718259849421856231033495241153826710433203547313116443697793394750278066379142961036631497706493275705688227877536489284395162287769976137282264888638758318945301724005822293040434893039283652665258644709751845328221422723960902476545031667817761244228759212927467514100254777068392866998960350702716671435725224792974388736843635970226845150768912426257722753831469331833935125243763481011255957782693074569660679655187387148398734857683307507272280461948823307316748689423981814455330777150118588469420470997835539862298747456491863142605120547652774821580228973469898191025754903402498616965566399198742207371647283149191731403843224424784421176411762051348762849293130596704300977022995626606131558426139890161384829468105187797364878399497026541429486729710036478191491265428280959039070824729235798120791262214628228841464363876920686972099198506327563169535713298758981573203193710564145479417039521706522304035481883037755333421268999919958230077330307301794414084452646411149328695626007347131178472327962358374156087359109408758210077162087959592839504753867645888070709574151335004035616780375263806514905042523015415046274980244298516049220842221276199755332152341389421359242518040107088549935057707380770561131964021024692363161552096744496198162046072729057941706485550897475931581902724244150593622103928189599720894014066678331161365802256303755732132351100336235705010541351478071208035386199227829267370905388706378067547365921537662760843808311292889579491940757587303462515640725551114307642161583331646429978995225039397950450727359614898441956230931453013103444034489724780836424866214968966151541093609854380138726956023822088387484394116393156011352141395087752324980899034785397413240355293111851786761413220059524853746864585732754697215417676090476505047288697856754643582975210253283390923061378642519218360800953452581312073583849548925279159714151439757184639750537122309966863014987966929042412402320608380067855571366059999460001288175102104393179776610086910059969686704947547247180486925194913850318802727625110344593798369863891622732780116768005214782149887377414725060364329424375474471824411562253369342372448751088154239717675565384520825996976449504930575008441386690271794630485424073245013051129224793334013163383744445597400020725575878085552462003547966100725554824463563348338382271241936734625261873685156734309559862637938260133814096680243327930679826723780661239276065532484727689513956513802215391419601676584229219878842178070561872964226303304900786963154026715519482470205293831104727845635871914738656606582808235837546392622618797456380796926756054559556152183881580405330473539896560562914226307598548891256860739780749128222457640334184501983944025646097423656855896093670429783530628485257634458560483053960635500079204981272967678563137701483892865606354281370779621518293327162227447179988611953395576667548139155602989557572893988337441405384131479403113211213477148832404745510137993482563137426139708983089845412059096655018822630385986858571652961892153068060149459030151604960056687821848980927530981253930977481463161524662800220494492987194239434526984446725309484292421216889783743071030013274539961707415483214586215718115911200150701473545949985686410021123411535463257391396310539189328272558550660231794073466464030158134543534548045369772218889446564607393623420283573108887973879843268575251434482894708997207559525499243048449346834291026557892882474081542113180495276777722716750837884278213508749464888052154800937154268817360567319187000727710167491292725830685573103659756889620422460904565678155982669098009710743395219895991290478699942684621366846798025947476806433626353871288498479502562579046327424151877136367097114288307973388887044087881704179345706976637777791335249454438604703427848445995164217763040219889047193252248627069307552114391118213053795294762203606420366395906120646792390369773718541156877829876957394218122510507481062292572758331926552827063725264041283521008631882823036507968425102681552238231538401301179026144446912072208697539568080429078210946857004011241403734015398032686991817922186987480362949195641695213026985099290211574894434833666180479760347367360468791270615279377909338093916598286454131879244606198858896387338528558149946696438334607366893530037211805829504236312613211186115431914960597234648049647867783889900754173524648843801247028294540273906671809640680097422980906732512820683784665352514286069867206225065012133694620007222081881675969779546554250307957789786924792039747948190317001697546228127813674264763136132422618065911742434225516163244544386079280411740651893629788476575976359879040779401927133536623451644163683813609485833866848053108310138435183406011069846164124234531389369901841050402469256573053205895570855072064921534484649823875381488059312921420142238622894115730954025720190446215178392334412346949463536087780066300230978361656821152337916266880016020351048553555877643719939126239063427337084621190979570307567120691965400050091847306839058065031002720111507118398162976241793117565852781437127672292535339769558452070368418192074480969813660040236455369284635816461217103654354929155195200630369268368370776804377324772306019114533339503654721575560187320509078152340459012959219119149844725185277563721200667831112336484388261671011691844093593523236372088594474125411256866382059019152336109855650906914649054578078337657437634869864059765875395303964432933823620646832334572362190291656797441935988999248357033713489750309812420488833932104101077558177661170022621935078829895488194059852527624984981503969975231135317518704255677384022490181440739778689088672451399577385024095806162189874907786058995100018292056333185149095438067702130061301032340646610133698115908607697285871412185912910926372564612145201385438241799360365161364578261803196496135341276204602230114947234135963806517855134170830996790342684642065546663037212555313983327043431502906095871528839037592284745534473653388558885275339107521537149772540434253133357085699749471383282719456486440184531568215614016352387139560650323824049235498044146951696560851410599995213471881249130533411537435057748569282734367834329722674788537349399300336365329044217956036395029837075375312894367141399755538966819961936616500451574863672179588065394191362865968254586738579375083047329837668403571344800605717125117690895551414316737401739019695200248040635279575928569789867266019458524471149304222224369945479501053305006641561112893806430912778396779617755750904865405089178280799518288327899586048455725541487254923732345715793181422687147662888989061972654544658511751316237309476138561015005647123930712386231538984697441399196942925058201295713677810579899402440775577602320496925457494188330160112058894880684476568428013923371791681897797533872864823008412899106922584603694697549597745110164397513058741656911271582259080337288373582840648956395031311661030130003053933972625028413112799497680043321215580721053254531810748052900057830973425548389080947522184156726491906495018683844285290771879732938976824230424737871764586380672840511081041568755587813277610889724497026799098494058759584662731920836094756477602215111444065761388998653654768422253329246203996792464674322472670460983875453466580768689209375646358049619009450380075112867102308081816529322559187413596732721161678075578819705831291900557656541350275764587981044478700292523719201228264911490517883648797504911436962753342705579792188410629035979630815647031511096249958786503661107019464566367189880101337008060026778404724544854987784742439059865529569665497471953621688896447102043749623819645587661556328444438783268286127358249966293575059293963891432966921711123717960153773341632975875014943694280097675647650645826320163098700935270323848067576871441827843302810020351529396446318130362767238330129101462763734078088670018456915447491998977238663529052752084921830693321560016326595354175243915406627575122758672966574722709689813849358230905077278740471199576744899991839935624579945396227568989572735195208508885050090279288012454870795359579155510635361962359095099988082030729994978628638574112278123852976320772063559550973248359647526862114680364449778439110625021855091572302663383774579369695054978742951170153253267225464998963409854622482978523505098858236227450832296111583254075877336752558450740631052101172377093190687007786981821854713848545844830850681874687885205621871119222357039255674194859144005509494827636560372726690331760561039206708327203322778049899427355488588596171822337593986221071195430529813411924967104758189480446681650896133776299636626939539460169999672281824368977406169719702578058143729837285937157130022919696484834928205775873667043000618768352644250052935988282384167293406466843404438638951727664507820180783448610628061936112633709979744728861416365154314354964012563282407391735098325920788976901185416928907811900015473133381731736214627539551011987837227487968663992724241422047288184263555240575384556204501150563820728351848892005828126582722799182865914544597837100725386378005728518579709335941574798601364083366023253426436876116362723927065929401836367347569555912465910145680542748604005638944963806032559230469600368053511893617943436948952748579721770195132134115052554112791967517763479303591105398633644834993758910837648294337900211313538785652366882513938312034551142840166955803199400587627658516147850340051459080744069793237836042276333383105697010462546499430678974197232430653433506344558820241170086150185755050868186813879386270380864117329408069669380578422689162868134478922354941617027351093631717496837209404067962124665169412045729751054707978824016465568630878756226748031173714091916129549082644754487615275950626578154509995059034650870717613315283584377503744588894137796244200443211230874986459818163945132916775025253918487561684053520345531829053920049509080598129567707183855845783798756720649399823116203212245034551098332269972307823223035663820814145592567986798284373907332593432458224193253432774374423383185755086040212082444375454867250111080743205713959979945077633607325689732978186061550552473633956278520969498523443616727386994716016686157685644391275328281714469013500015662255911254786683642901186784905444244425361440097916101652957103588589971227085901663077547317709640189711562780779456365038774392262301297320232462106119115793594511477704288108488781283741959389017558116832649620462320751609490449928273944355121322827732092515732401726207483278470457454766601917649564968030409242850004918725205453278660692084957145417126236497556359313932609560390958790745529229030913839309696391072701893082700645612598670052864964192340193973762647658652393148240284932735428900808168211472898493987739237426036455125742590813547920059659765595644108360000586300692898856849002974714292766913607419144464769186845920888013499987833917037546991773986715019668605242807272668872657705260026601546243598575685067521659000197480551285591826417895854032221692823704689926059805153813078432485295698326353906085923794252559254658851219481265295730086672997488731086424246285683719933951664414088129194517903755836988461552826443110888804828721223366270244771743527403601636654563676487085208400549385083279085692381867289484523227465191493390876815219572377822313248672315084718644627696207835266003658475433610557263229474044090829370533547109968166655667850037063134129261597509851491708927910269920122081349489244585977026841334928806366544506375016877962558112171855221856592893399344125434875371031200377518970136508658490637828878349473043816528642710340422426036803576819016742527550411943933174127684675223202325959262761507923783643552543973581998058087654429076736068291874833602289911984501483868728721894489248622728899140838489603092899800209251896058691603842742824634867757353588426941804819146398142211668517310494354362423499078056375090977758530662073624129331530498047346436941252712097607653520951627988014362546336465612385938191416233189088606235755933680503725971571417115017524630655388099895784378600435763069096081990739864965210992104249622915421310324937429195537816861743167771105092362672449258188445007325140507958186625673504386948421055752880991570986152102677203663557272762766558472401155717600095776717409982897170857255521531743616857139286648751382867590526426488206322995783489535537818927952327433288903853794028358057798040713659460474270640916557834819685055325686744338718203653208259401538504338586060271205745273100911018974147274644523223014822757598447007517321339357908810750633543202819459737263572381360985024297518099861713259371561501062243784321735336945680770118900584998678623002901557017218918450709408670613937108159949913952955928248405986055674038509535463318099756392399498624410646496789224745078411538613017968396164882737230688533521063472922308215044299090158629121216805353751443250596333638165982333081055893643314867584588421606326613906979877070743228307278574874782509711545983880760684952564912216155274423841747746827459864800040700683583123146161435039545433339990057896161779705084743074294920004014085175291963466998832645332135130347856967980514371451569173773835522719127161137203540505927766228789516853335654359892765555112622088865637356797084190196560405538750535494080161432034168166433576042102556679890839207969349390206165865759461180058009531363806519180386004520203008833829933428885651255578803184765960830814634929641015474898545145869485711799359067516459281734249177203046728302685475308807003301947397667712789080561530745322905003036863301658803333920934573651239433836758293574403501447334471234740599672476941730147136657145501048155453922808613739394283404204467755148550615384698128285910104478477209327590923622216370298297889314194449917247607311268902531885792537447478656549559824597728290781963611413258453008480825862729359118101348098113026852711059981513433051194237423660954019904268950099904566517343755901357291367170823698354997335805423824500929162992950075838987709407933551728895570775869091697679712139117093626413330368960539604952682511618360581615564125157216889511013776804627247340254089673185968959246342701046051162742241282226882482699209728619994301241404529063631117156426018793054100953798353371273143727626632925399982949083379094905014222247363835454329556852523891333980577723747324973172950671902892001658412289109348711917142547470185584964642165392886380261525391691447220813975155376638168039226597091443297272791142335762196075816719405714536722254490025686259841169921302762630387044421068834617327265730169380276466305906578126650792320249994064065755849373280837129666505489696318028082428165438091026368128127093006698924409975872616121182191251136954884942010574949105705146052937078090847089471571134481969380132560470498813167115109546065004145466774126557797848010269022487936282075916729695345215812371191916846591243887406153401534019255881987751660220787052327427732041642651825658275207861150253513419347015403338914625145174535038996379833007648184232710673338193720856170865458182783177999842152786999836072384898724214004772732637432142557026606685552810514954118806953893011401288928717505656306452282630704485504113608597320819460382931096186908467228983902611995388371403276334639898442462120922180234984845667916058165451558616827348792679146629182879591183613438797104574075143345308203371142146001468907867208079192060549481762067010126690055191669352076214432952909477303398213618435717700688944343252871386768664249796352426038798637227876271195209485347285085536345616520936894648832166174872103560888654990557450203635763386541698133601966887860539088335330015972313632302631348494243564322996508094212526514859566697363888084353386313257765543420143129001411991780749703489964169268267491460905427644254493003320999197420813647281964360898467797152100281885211004635202657966154580785875127234380167400253026165780996140271507741556298100720636279222178034093804352446108105803383872338253781735422475634174372477118339671688090387252290754252605958689902064257821892125923363498172886812656622566864233909018614849757622041160513143063205239805259044799416263519052760298329290993359459716669755808646257856774041920744570566975355490366965702384722799383251891010494588896678676160830815806280217461152335034718125073918994567758209688028536460225191331043000317331795717706379136372392634396326340432619318434517409856350595544639537798120833835272154063830659468121655607844968628484670113343189510261963169794794801192714265804129005952567280124639558261045001051358346847416461568386464890843585970519693228314008012968118938857883198519050179042576870557901334106917937195731623442686139275232788718654313382907690800858421825949316839247174061430836375114419418812257190708405493079664981613381534972204379663545614556007959819725035187879766365081158706435648936437900451324650956510389096087074381272218888414700658983393345847846906308375683613673495077600991359494020199412219493822334190993726689217129156915466974472149616734589653357136125563224958806227845131106260806981460471671228155691036355724827694564919287377479869116459168293845885102746172821231077144533111875575165228131175930794561067451300362751869501189351806540900984280436415047636027525854692334181008432380131779813703713939760097911043737069783798168323014729468231178638059662721986054460024578013759657568671920913954957573194257833263945840096208325172572291633784855366260273589643364739806081625777404253605378898275431863095491294134316895444289648894237669643139758993344157108356100350922194571275203853428211056974563306763521900893445845886474236634733558342702810148451278248587081242158493602965796501802086768010191466829268889769644469598848070067688595844246420288695859772178629158843001182225886439816262503018659062031194540596934235469688003770812864296898182773068310737476728109207461066854964040829670542138933303439428467228927951655804730577990183344855202159406331366167562059032929551896180622259542068602609991353456303010085996714182495253167422147259713255728389964011211499794700232773632818741675659740030348827186031242439304200027575061130062830060394727790582322260166700965470903843409709789994051904444593563149563308548562371709872084581849546480911101152661292269165420883060897733718962603796580674145117439488548285850328013914107662188090236862520916042058139230112817855819205350314537871452862827763929966546734491848469668457782407445084751203264977657829119502337121518288103416138666273819062700753546863552209704856352822982722631012337159707933871258462513375626086586442836449505774806874266273500279781090417717058840790470152256980276964760815159335869706467188484157815579250681826809842898657067470001635413379718101092957102118591080957406255479515788385885486904563329749902792773491692813784944999384957411429398793552387755132327143334520502980838162236529944482756820647680791830803332406083553361991674888046795017400812498754285801346595247505074380963584127669098601204503339221346733840421412600220065691754295013501725897334213098435386002007438746651836434670433832908779088407864571326894482652883297940981283535000883837026442129073395315260302247346799788193235286625839556891810706064364914432133888669507273179113972176961171298790416653331822699034353487128087154443042488098266465253805777208809891596568857791399473167673153759271389643926392798546813454549913080258615219095495470503230949412479251149583156615842845279959521628901430034605694586686386354943982012211932144240647579956977895326629935910275727472640951441056913840068314637943647307415877739996327779527753633428206221987906864262831833046504951591707047941161026012164466413950619521906647037094382788742654368054509563592330024934909428938002127066078928854795964902033600997290883199101355706728883162488285815694847672922436969916291601653571105123533622960248129518190203524499567844128985113662382005507768635806934274307777225762622590832945816807201504708404181286878323382498702746511170638136521476011830970815036136047039109123719945991162817005669119357493285859372969686486609853491135094660911574009688258763394055206644483136159778926885567622280049695465272537481552718469584276344564036579055938903129588986937200897795035219795856183059290398324381104443103669712190214186737260378647747437706093084690281004388401747251630877523425948558879680431035722808569106056033822362841404679913307363197438671340309688001724189717911444547269086138931191739307639706394931218034576226736483126573812001416998409061723183526171378546161811611723708091818648467110669489635651542735434993636272531143712281512580182582377502629257078066648062549645343735143071409508131207484971674712707595581981221771903985320200111164691832033174295043642401723910963705363808765939709137225751793825844586440034184764509144407061569027971422020999084584136623190925732646412948560523652049997285823128925621239306213160982119521114240141253061855178445684698780179795143452968621893238480974312158513163237850254937797129353627653434508487707697091517762156653336706548444572403712659258615689877497154426404381512456660501881436747290437106601146487450414122165151186997773686328425752965212454875577261129866735241089924141795516892829379206395046231235809237407245303727084951657258259372082993467607006851015510157356332101880202181293586198826629547804161107289753719521280806442645564818488784771301441005051963645126068035271862786163856894306561729186775816938617612855084122816104013104250643877976399772546244589955833688322413031017459916782527707523063931235533136033364543677137146689398947824756196359807137372666452158016631249647222704672644088305685698759018348647734431034423881926328181142510459134411127333265265631430840223001560496299223899275065136299297337824408251132224550598838601360462087805590158027723132458313754297081092363785953860528701249221936132167830810599953135727999914757449115949761520090270527919687016900908190664141089885794887583430206221156029564801466001052639335261736094590635744622379840289797991274957641669915384030047239779870647165754360514697541976264737102036349317005553917437601448072653543068593068355337047393702411246492847695598990560132010214759069737144142132876977516923851593837184648005399945410629704845220597228868496001172447282308201893798390759725168378315739752853992493641211085985263293428185827863780487263632320762922337008364232847721645231168198615116017355933467307485137122931758432225170989538815703556970316314742651502054908931969600183020037855257921227518341517669622536070120278413417851468784427946256972379814254093490003121813991968666769755058762407231827892594512203391231952380797257440053355391294592590084352154223349354283230874744774593993361297024951682538194664123316534283496573617647975391136966977859495973126168528765613816311718002648617712936779066001343627422461281956306414962188403077533323525688401499136077336571699833094464218100003177461834778672182556147040210290057828176396407461053422388502423482596613354579258467987034585094653679192104400540785572499329266614060285801820815189752112508150400978681580858171159096868595547667347289718677047935624938975086420568560438078744274678398583289638298332820361811977305966445767767457303221976435555189784253065538829825301813048434521683763830165322951425277614570550215269684600000447015877972744620100806096190197891735664088080324976577815643438310283334459020633244458647589086764748359256843075211879118026263065422092241561577911747156248397831412277884543538800841777616575851445913507339295299706389485618606307230354119285070507202608862374013377428561418326426761310237479299793799793215153499553985570253965183160300913017797015154076287237364350625893720507462651260817164690273855670074948248679713572564572203703509242524204302133459813490755774617790502395597302282954047594011746063638758531930463117504309556528778182755069566144837247001691980500748591286917695723926647187956514442254283140626562180862999253765142298150438698251636650701526343241033751113745853991347417814978464034583213199513982059763530719983525078284213764060694271609497739055549143172191008645023168330767760626625252747812534546145606423588982911227444497082653882267127733537694474355427806930833117139728000314082278488473661351498804287800648101862163414635363177135606841745582823430285085650663145832835501070436426401510805489274632878070610638585242523330237172853809067921963900429236849237297619657184028061126436271065902492456287756129458962960093258402617466500847070239020972209400603386724012906243557088162429943475228986400230066917914727088699881409863082561808753602409212178223816393703440414379630464731197565638437730413074220984012887401091429409118094455136089845830068297780617159772664081119695775301171498014771056644671208874290410262852546653776869062866981921186409807708231589257826529448738668186194630487561607293699487073316649810353092495243043165611897896423623885805376838447957885055604788330205946999991928592584317170627641025286724026086412990748358614182958411096001877464717219952470562017680245403661985340353436608032096516651555702938121501194859283724779293565176384863732894291431779998488889095240015195544581554873650792629204742846264692278424055459911794071773099759150914739160223489354914254160647067955411102818963812243354351921299963851412956167933801199216993256506336041528246096059081144606760353043564623056231983973595765445928723744630611355240669006179639634585509290764267383059868186414988631532265289751291879361080528006874990096810103904317696710818921994525493625922481230371534656856627336062663661154026988321575261225756072463319638683625374741386024988472966976449747937518907866019303965852324678177340731874278721228607879606218885700785215453417406214577658835929919511856363808956193496264553104843370236756156028209358348214023412214265546356023714751309312887413623364475885162463217911606645873437115554623236790043814548658292475262851302641943292451243449932413564889238848203850033425135284363578360413351731564775494666293251688636141972797352495619055165053569751312941091420208924207616436653986992170926605982302018340184529060608221417654554261604117052656468418122430043029837700631324641771255942233133795257631067632940857005813114350711718412364723523510148110791427103382750159380041909259559215750870967917381520661342732745811234618063915022578739171833539723780744075258375887849449717743792298931033551613083218774151859331448456609660139618888020443374671429715576956192826079614124555364855288972575403331236637669781634773616743980736185798890683979787680005594767826015514700860069872526258224556004925333131556635952410578509745388456128484226422705359201278666936500035872102169163666080576464358657931417727034003140020336354953041988429854549173440618207722722622725122698017288218247025489114202226475468820463480798865265201371043710414560106717385079449028759442709623534959136133174899333122122944028469790927739273852048268738124840842666599242027468689197433108038821099372581483942908436393537913187578412145367524908182540344866322658728798038530105990033614425187951252951369192873445949645854783206250190789852066184525567483384385101990788606793609457888192958238801952408878085304855942621205412478423244762327301097197779934390514238181074515685070637869370945190162954536765508926871579850013434008525150166762452679892310341207614880476721186907966163690977784854240337624644696691244614437073729624421240093519691181440373147841428769542924900242576060483295162645817640529375631921779170009035713878218240685942972771914043429682340186782540407459149439187477328577169611509385889027759663298879938055200647684680932294216631188256762863165994127080128053920207359833510677197307843710810913414683920553809652465877648731871522775127595685729364020661586199728253774339983623432036147935952703690081373947209262149891081293310024098772794594093550747783312190392593694493798513136378172640039791542452948917701111285855632883346064982923317743735816779792798114164498318423640936449864106579796156853159378243682625368373337715298817549832419781459422735772061328777597013189509897789871017382091565229633532007079123252382108623786842629491433046360881953940849623558292218894745514431884020211543630508299920847409123833799860195406340532457985371988764281058622736704644229468992824992722965956603916324159784013814430718601497787465189435962660505231911332231212668327495402358688740810930009527999021870047933087150335310885307547097361529749785367817492622867814124883368339751453251409887697440823355094084874786821353536261788414184990466599977690155955873949330703714078702794577126177935501209236618026837728917342488416882999558047518712941833065910011954661772774734602613442618796895454747861017231117896815211893714326210839388902060247173697924323509543578229151915994909589780817640842889921290079755880418968653320250775981112174049798475755767827005196932719536741848812138113023067648131006523507674650858227148941658184811424158976551181212852637211569412263218973491288256250529314614439374788596631306736319244654549486047604880853954460873607942261497634570302695481863884327645699819765713789313257373435473930103830506650408632280465549258696586306038997059232180040729451920061298945360909625059429296185397206772654485130131551707404738107750970218653864863036036796750663763401331527803875870528038577218697181630716935744221677322436978787591595919412582036817381840257407458588218915065742977641201750706523727161525206230644323456438021829441955178121146936479800221976933918876274639472610675731950576837663901132056535855914502354655484929395693698769108815849291885963059569653538205780383313785271148999983847975227032480082254378565452321968681411907789860980952965132941364486004604565105651215409582830570616273958716426325311088461624891843481138512246376082270953728826076044425010726292081623116252735988106871331401343738605159854531993672431817462142721268662839623223792599076837859738799327244094741276481597259746283709325318298069503105293064184727568586654309949594329693678867452865310404687510013751538260065219274535660483471783078698306623258518764379427691983740152990062475370968324343834375521001725832898683909546076422045741458871823045585545262310128501111648723242575257470996173634987185069933976450690316277112283502787184481293205223588168302241561652825938988562618334095616486132566697217053913604214799493974185022511244624887141513348506472231611499709552752425633134253829421843254021801020372713402978202542497200524985278177485459193537478112383950068998782561195291633463231389947407622040169349044930006756179704033778741756166079219585491638063254515937688681925421152844373720748952749626127064415822472232953623488887581269963109145753975256531190820555306559315564266753876807709852275003241358854220616814240257002513675939822316995548140751570870788579603681334982375983033139450932304473426628101589865971764745654211627382430348605408933537264649953253692597829407424855653059191237450062177819950689146353804502433085237274128290562461076097266280881879802209366920820556183283219688221008202873865039095661826828280047031364249789013725945419146876700895587862928355895312134625847578224028856370490896280150197945713871307881434525152396078635925099193700069011225775763003066381768490871954850446565841017577796143386149969487733178572883096355435202760017003508651283068664146391952460345143052868170431016088485069591028868613426864878665969987256459088817202977778373562823948239167606147235904380899253864995243701581502014901561739445664118629550191394538028958013629415257443380696655906036230827107653483950504507456855408457944172835594415013273311979639352834671780504604622026856095104569250639730326235433355553123733875327278907343269723659765139940272995143330684041287857434574554990435593502477454058883133113136189732473246469355037109270673775465201585713391568773652051698210706315705659069201016826895413442591887672184578167900512346973021062259554774381226313136958275444582933195809152244659233648493630702020369644018424368743415153225827798012878860154519064895666889371217233895814396172150981176225104395293115888050308154451080624440086929798417059024169312160820902798423421533609915835125153782794945062061299931981789720810735020625475986402256837870290923366406103345966476113819747881956880586650997118040696136635944561778892351330488395384057809257144179067442011925960871792355562642854956166722511870091939180194503283418137902088963461313203691119487148436847099385069521885642851543478272117595950372089803632652962224919913418635677107022609969612503303299250824303280878234405547492574767441963447219229437706772148502060274711282679046232751295993105097008110034167095926205112409183134378536369249251690575390025255026894826241424376062198019386904729752625195939869489384304565051542974630655073497843691831746605258066813657687804098271538286220947265062637392331557976588358928917747324481376838911498070312201776931257844038659619673673397280646068437365752793995346804264870453375702058781154678651833516544424607870326170481811260715823958837566687326951717820124307488131453593145053548961270051489607727873212364599607370550905486143585245977323474222035183770032584835961066565203930302019356221272263242356743613023462783143146898514187820895271222253760703597364329565196336582560275424593545528718101520932367463488500488567904584250805147840353827438085241705732734714583961012920502142012561222401478135679379040469245613190369308534735057358390522240891981762484836073701126373727132768377024348502844676101902575460405215023732790505732723224333675362558687667140517357038530405796450148346224885429468346155754008433149853473017369911823238101776457921078365730440164014538361316469800141320269441940183550839433341067101267098735115125382372733695529301047003872564177118554134097471262012517291426674600475047236125147146568140875961793564365472408926409157048850131621389211313343685564833765482104244502221671872732259860687440892210745163511546961627453217217695953670090501607473957649547071126463176121585812973260877148853798464305800090799239690014239714075995714113956426315385953476571783470959522227861923804496437048052368173146937872498823288261849692077753212730030969582587600989576739036561619129145252771094124093366853095904644818367861811564161498600284844294842676632822256469442083714564742921717475867634489468065180687789013674991685394781649629302169226705514163735011773435172341980381296057931204703477639041117293988769503920492617597149698357376287286014506770356716382225813314631919064599873637103121149354295601359476353763279416790854368635654613448800446456519541398500978610212193334000545266995744883637311848652176248601400562225279452628984562318222527167518487710025483021511506132644395238237443619754004287130380046222348910740237055330180454304874290946739530924134211669584739884150764520273710162115124356383510286081280897765206929601352871057657472907094837105380875402125813268906670763528406417229705047585854922172912964419007004086449718938779553020927468895391826057744931584460160204942954140714605034688378623370798125620500704228636561901639697729837693008378049030222584496983564913524973252329269443315800105569544580619113875867033766390195855242843894271643965974947387635596697569181600849594903562903637567664296459485802391997923970917357751797123294927620239269455893129062750287229281542168966051936591567721759822944137752271138745239718205462553522933105481890946755915712828583445854046569541868300015976057242842974482449144942419050464402182734566431356028239470596816098605354278714635745822423275602326349212097204633131900385560374181093056671553930101942529813475704843765418015396925138442908274403622005172058345020065450004718181645588224340280802176514365629099829755831417243832381881214613609583742077836601465269724004672401768209724095262627232874827304378246557837823512689123538452483813316184521073226129040830495302029747287176346379216604521067861008862545504878821627869053592072065484441613160430864521178886015628530219080602091086867088825798989986831744650187701207554414522759747274577006849725858236472440186618820197578073140641370974394155362715075437269401425031972289421867913962351070525137646447298209239302025810392606720502875491449572438588193622301066421994842334154500022183072466056192378164814675820184434180244921804529799776547402154180607569068599609683394062373822119675411419519080578764312290125243371192388493317812319700467189558317878367560494946802644942579386339273217081940804836164674534018075545112936003461099375839758441780789893254729204256328873500940667111745671072207211462170129845296583540139190260026306929136179918850615693852189867043454566682486252771950863980194082380550974480707335958790206856724902408358553797081303382877009594809833695799829183932731168465337737691031950602391305725500184931656554376730563739876094235695126830878803748965271642348241531040125145156112833271161346542116798329928367071477169917626246636102574257408476840646672404432527207874423781341730410317650620589406910619980176368635510457389845106252501677688420391778595377174907354204020926507534482737947876738742910664066323639369592394785699418427819021170887259069463040722189352888002128774571531270400624998809859854558441377765560589479291431280417914948845873088000195607628841781024826894821582008593371889907297930534291148596877077365189067178783340542282392476565474719432474253762603239320062199695346191578384156016888383705072991836823421232211231361004698935737244151459493539825123921029217414998136890558055734331572989961923234338473054661343006895187746116052005838147674620373704516875211909569593199690855028839483787584170851828634597429338945668689055110690206616857060611000402369887996230186872931370956235566112779788121199794162251950201329644853429730229276752002294324968484114025850371312982113502600296161124041536233089293308047602772421911248990083711907969239631598767187957009888258106895091267745999971133129827590248145096748155059304169692730457721020960724783498206678612981292716521168219504554532297864945820829684709901130051840508000431908711792861151588815378130385946081043177723371005355319395178308642739978848647747599446166432932964911352145157480668068115794524125360805050094213053736463048823409487216276564535578049441080000100868339058794025763426695598293584157459920072448105700228667017963881813384022266998107361591781196654260201378499762690862837863723562662903814932311768508353947274948121571497660194443091673433859328229337523600947624968555523874002992923469456584504822360469624179400203002243868002060325691949698358497392965475475996530454205348873775892054519770587484584471886789277194320778054313015334020758619090455000641995398644183839308421187756535546725329459059817800601369434816074869019790658898669818281142416341984622276902438357929759140119730325877285796749144405248866555452374662594724389075557941163176341221623824528926200722336263947970623718356403405202199700077641844027604591832224623250254292291221820028132282292771839868646677879943920345794455761582252805173507881690763186633559659387651260550727537152717408789060418171410798633142327700208467887349616452151644212613891932120416015490690758864937173853098335434712920140253904919510937189359412896497682550710115045772928655300272001827906608549909926933389799143374416401611968808289034800450640102949438325183050666575981728063667718047434864245057762567159124853585230904567397016933195611800588892560226512334292932669976072701147410390190056910171957121682817526732992840282935845117886760488942933168884109292079718273735565107834582684101057705257190502921780726756246908754433051768333610715472711237756349790313386040386238303733824204565901843311520651698227561676638956761024299372316876588012101085657934836022378017911155905329558150927190122055653328284853866212675618205496117107043667221003541851058558614827607490165010375138596546036009837234719805045295543888866003707194405498946179846733837479961691231758144671313064990952970368903633903964220815326463914358556778874550369409028651882890368530814096690234862145525489829047377038645331725158107101539080832607518601524937293729763079905295234076638728529151940657520059155738929973764854911351572865528660288128916969069492722443037040808906351941870573369538909884264228530495762498083189699671813060288964394800551213215896714421941099513333670092294737357905154892207982456246305319313698746401456905551088953153626711788412233130632400859274648727262176646940233305529228095331004653046672565502410196914930631596039714035983296865092984165279610137877259382267197480788261199785043933742232832373272988399192401903530762541116972155822417290913867964432738240991810101898842171630068049264986749089591142869798947199133887471381599322575225021344829175426003033043260754828640821670017435080091288027686008295332757885027072231480725019685868796445336064425288971605033476636215511718012545243498457577085919541954196332055876955821907302366257225899043481716935625190505015053484761909816044559313831189478050202559682198375079920877637330340760837339766478609821255301652933087207246042967657895529782222345492876756484903824763356112416098302763444307699001429785955124582083216439709310117878279359524101318882191821410463486220784267019665275073339312425844514689676373979601243441472440777321511028171092401426916481704961869417755203045228605731793010897283603949988692230239414636363909330111732625106718117235561043227170327899701192963442462651942840004620892799513130036535620759517889566293553876848525648387979312539096692769263164842674562153336455253663141349552099080510960344988341157897818399188713898806318849420770006855222209068892179044910230161042831165880170847594988766476247799409133065915099376720685883822186379823205681147757962579484300106463687129448461158619942482432873071226107855446490502699972112573407029909321013272726422125638950178112256044014015223839502903740986286131161407537734641098137740851894890076952303774435488026177470959220012003612077941571413466398945229617970151928209993230431627401570876394902801734514786872471796700969762843335657663182488749237965271795096238765346161757724162622546725863493355901504346784736882690725294813108574819705744446825453083243760204979993269032995092045778656923836179420855355093262196844780591808747982372470923277006286014017362059119391667403462988562547114555276237257387619184985636810566563760373650404246232100992551911617928791428805241284962629973436880682228019947595426880634255514403279836616400238957745446356319149898452015470662878354956282356849245698900118110422749919137794193178685160135645885692826910402728563295212011320987557523598014215059819293067472084133752045250302915587211782499206562817921132790344303476047950781809698751123680188553784830583693925812452170168063237119438681350079812000934927063180289364262939585256947759729672378146856872817165461769646140106403705575959913662779067875725904204844151540193274951615016581366411668322566590777184352940990494769269756063749208031716622590564858036694687962317878395969857929791040923404736411237458145599586673328604619804175738215748585503182427920493903308463809904411776613543619754690578071070073596232867527663030998342484739196016808740997412732582785531531345544853375496872517527107643307945614769300403583324739950189752614342628966653122199516909750411385465516122356319103175958544081856333565486963989873838419225888833224652331140678604236662058710988615929405944725167807870801709498566733788135261807772270688861843489132118945593743145046077366787998599060696425031962925353247034811346549224063715685902935319259829345644586200892733699202513869476210768586752810252851090286653430598378532195325251015110277713201993048639703371465991000968919050153709137293990170975296111105877862969859282796497891707558595210507032740302491955400712817054486305791604961036113686598585395374682465997183183021751392780641925610294885159788948406769321281719740275892988972136607772433865211669980926120646529184620012525220798036783071147948534682625192421344965448890341572518720407393109796237866524112908934528181036109441896613039951401948926074844132783023205197288545705127269708389258710335353563563249489878301255454510392406951176461951893868668140605700023057777070612372543808317670031867249482453322891238446999465999623955036261118550004502203347884352456419584332237894721322093552322231248773037040550812594282861074416706534553560505675672720629292128321867851792402606980071191537752754732604195062891796891382521581787140517114109338512120882705904728520555534451538232378985803950476931487985939954165594878416411540855757250130737118813283820350931485033252728337821177061309225069281721951999926568625784275050207982382697430676627849618006728643331349943671548766878874276800305507320972386651689881359923456388074946612531750817550871035079682643967016771168470826418435866632874023182222733014368048095800252558338641107596439013542491825376427337526645474359906883127028950840270625009303341305660140954622295658596003362866687250999885524246334156056399190113475402290887839280931628751443863791499879117418490402995732010996688036723393410658390445372621677004689012128571807141115579497991734497539345763639161837200507701800358439527130098470934989529322719662099805519473570762473408471294848240993174340715389464875361104675941093561299998275341599272103572154162451805593973137302135651122011351020842358926475254419469833627777129449573233555388457393089419205640315432149534397672295613844336093342255908763308089621019326243559416063452059367048794783066612773671092897776175106561979450346975109175864048015784792940123828139444879861588605948598045647888369622277460897352963458042468742834902152094125935819516258852764531772579739725131269291590607830273738591198398700675424527370863518749621367694481855264811760460577794074170496952623386226799264407612788284921958220691145922179474322724453270225774997007492829394729618733439772362798503867013952225558993755144731885859994935102460152059843884537355735302907691051261955158444165401667581391680663808261750024576331094984652307415728114866522464743790150691449626239953473292578178122817460852237968825956997803401260933259507206298170656530453432319936249720997168628459112704813630547559872299210634221035684774846468736063794696596814300240346262009167534432100653755677052147763324587221124132557306925038512747264008203511587253116651043347084879251067501162961627338344115280691124947694705851152612353884795884732922382957274751491839932504759603305403707501851392661369858791251945416191022608523562871440538392158874004953792831648904115712714356252269899902668626565611768214098952317169917726964107447292789714735803445537433916756404134154062281319691856059747545981733184734264657166519833953374056753193537484426161069691882981190116176773963542078114795558366319318595731304780775090672966053393399939828778721384071197016813426399775600552460424904187011485684500088013583023775809148225855218748960821047687769893909453801106779705619240794172537159171819307101468364616435693429552376630149534395071163110948247580707352540832652546326243905273223630782425806523096067986401489420785495656976172139314873718600076570724267269627621781625808808643830486410807642536651172100761770566233730053886210950479149601153704139046147520331644567636197315358749190108187425703049037835464435542527566997114850379103172057627072931338024276238662464531182891375670218670033245422949070406154655839929623738003474018957819152380383738337257292346232037543741054944259567351385284685567573817690656820730328323339596829890899245444520985090272009594777146082254533217989198517066283467716830735900232499714498009134923310549842486998880147813143695331088964204429248790671441448708141740708906430045745577665374249713498516513309620069925118982435229004598814433057493251053630070355264969472082214261775868928185315196878324197268310818204768208704858731690186572525613736588615359799253461300183266314845543031103356572939657978985423198794547238021737546248631016498881813111381586610835640325698776687129963347099213027501984428065370578735076935010838798297073324553142293726091703869629609691857309165911152839579857206177016073371410995612158209013536889356658979420501223263186711453494192098375086898565175638704500808273940861874042291247369613414159133452927346165252920947619007455148549388134605339479124682056509947131288521877485497390458628271055590962474963093624335957360121804299325194806465581401092159972350054790826111789864576661839575904624822661768802065261292477261279171580139584033959537813106080439526126665210492786134605679680994002932841104526701442183657243659611371139233777387480006594195369612786976970374399766104889334503469487050047761302232832352573961288258198584300068879919994351893006063058572124560722447473503630450497041200102444813376433174509070192169833413914308287225766593438933441380696823583322023068115538227305299261031720369780016453180238694523043942744530202745671921374694373192490060772282897021680690978312095554137853440432255194945857610437460773344980934158630665728687981563088691056749357340461856428110989508702816453581308538613957077582159445493007227421540961143080287466356708067885394287595432184711382071879138596527723253426399156387002903274046691196972138940122828715675146049793086144390988727829794785911353581862917919696523388011331351512761166782151548781949131479563139705692906768116712249771759441864406464767672966570314776501480613953305329719996173614061381198368095937482188785414039883084509745255219502106423422444909363012755254205599635312154527163171336100666573954124973295001555061507747272704135109571807813548768475789285697238522056065827594688898711196150471394331722226664718799649273288178020014830039726060643228646145426975255998988317611336678577127859205359043457395682157214388967240205987330825288835578376335383270307541170329219791295228698202063393271451287618997640446343975024278133928823288574612752295826561482208147072415817045427791644597040699138098820101417455358884507317116535465646224376290800827768942678042741966251364985212405897330722461703294785469763285137633950704871602081703692300370105679030867224400750695054226626436100199450391634319849998146233353285932689178506596958953581323500488670256345285806078927976661137716673860053288140292801083171448010521788004272978545055602701040965467728334213225299887573489486555564365588616742089669633861391675281133428519927290601613859636407200413392058330850377048507532246551997285159839206248520273563319921304716544578097135312830227697859618759150431589971131529802104070171568367363832434111401267017663408952342761332387268432764675644245528477669615413955612029492608408687386515950552769923316597724543724138862579695293497069943377586333241750523009017771688795719668138902207512905279816072451593307511973687156086393472910608913188597473339045755803668624055755023004827331133258161191434604471572443292500474019820957088456956459506000514102603869915969756365676319686776283496327702884353907683121799996221112859771164652316521416544789470855984472518033243585929709740419147956019633663005125845776989253365818163213218990765412761705519600550555641912080944300098620124271823082174587732311205533360995530272461486744199465687073436183766118408591025587373054361069560450767248583224683258547704309831930366703449021841924735544501976489188814205728494136812932105153660462324062675278693192836909491150431427193937466429067741316608325776077369772054914860001379624254700051846666112679597011720917469562064936145136307721347777625723341096580196383622463266170760014775266848958212231033140995266454301658765921460952133514033521427683377424134005271106205205036765912820678120331955978480773491865871846386746852369868493045558772423078970832925548787827714855618644259226749975567557182266188559327054828560135056737873974622803463177826365352354950852759358644769689202988522735186706883769103193613556271186121677446539470665193308385364757233904863072298894626686114821854603513833884991712758088287926135100533011288170817202743205686409800912880441538955415663230145394411695144483080541344068446745588491366364833217430507752185242728203317738887784868537956913195974216177865372674929732177526690093970992377922181187893450418524273528301247065709317376663264710987364616655428630475849968731386037985006369370892085774469424411540171784263146184081320589137553768435043266593524137389615654984538271594115034193997709597161001921077091966881830046755015715706157713401723259854954337918793486129695726915199205154231476413969916905280370588769884526611564366506866054653825479273681475314283325755494077594268228823939937132883766591852911505732118189442051035784079439035879596668618908397106425218165020598242845286138165488703586666709293341646706091562952209733400197360023633943609910650934918917767426808914165105364791502682458583836203699022401373925195057048275187608585897360846258770915930108242090365329083170901427832125374319748187304250296780139108870543935806485433397374988962366429188136735062016708330731808891170611964461868151586455382614238927874186778251054068110293530266221391904046766079059338608001280991187338297991259693107176903488295684924368677371621790197115832195763363966313559548845845877186511905011381016185016475791482735918391514619494427686588545022660321033943825384797266101990054308995590580888961758480642658969097120610939127449997923024382997599704561839327409310144510406372781785937435963510032585692565284215582629793420387250474579809912972608206729680839323147738196598495538954858668987058418536233813025431667553364275922272788777452468585132771240132073268133429696393456171320387139242351411277102195733373966001519995627567066671414043939079392957575206314360933298518309788308382944209659166171558365820239768941313279206059806897432397097244697081876061463643519865854189664989342681978621024114043827821030575264493790814516113744237413899883205809116441045414621370933445657488866881575818449375570957029782741679450410703796786582404550625476758122769034392912535221084376234024451570218569764617368384881962489038914256963827086835538096839296748961657823716406677275710967149337870381025343955655176485250544723162031489924582966360055932805176749778400504937778457823421846839198775098716764712705331159264046381171444185384519593186323722850680411745580778880408266509243699946259719521285853619794173505930741704317065235477843388411511726008277627511585628151557039111377924486030196544977693237674646931222912545700022571505358998844932115505121436859133462984787510914979078345012483445248781957898674790843954893433331461528750738721081059763904884048290251892000913506605227672723328935257018257689900423731382323108504705981782315158177504124494208497072227223966720122614063346223162351282864804452963235753993194904442387578762764493300964157066721710420061681632196038260443708937498945770360081067513233760266454767005315547125582270691534539969903969832197194704110046726251167108657149537901955545872143397397414160784910667712645497066033082206283949003100133772446242350039012873943732728651093217720042377868370881721365166965993062936373172730712053083312095606526981663650493507778456071870464290004724624063473343223175040902521341069123496200378593771314667022087950149193629514339011368888192742372111426039728277408430510193228865227169010506097473640487670801160969984491497316590222060660493253211239642323694107823976987120581488687786237413565338553569956684416603136359272637876150098998642650954645169561055132215371347468160511359403883587825305728950279824153374071801444212499279043092109534362867537016387838880014474445994126448364200621388432892590952793336051471978569290195437471595688226294117619831016834000257188781720361733096443027954230252762349626293001099441014876959651332399724540091581317506780040498408249770427268179139303641088318690159131190898461189667364705640143812995811078907683517680349115345546626567839933037493430771122469067209797788031733849813428957575622221760874272204722917598783367727675848039084749013745075003705145109674659419782734374566033408569581496144893592819744012515971427227423604640172864619997324510488950718580361872512798533258726671860122864222749074440162108569126130792817156822899081604560982913569592352983229557437435989534598650210264183312007188957170429365743545808930475831072209533312919276772984664641580772445183011669003743626450552153692085803695897115741806460831592901897669485273834521297128067687093973043019379060662632705137431234110089206721741844325987070346728029210476529611690580301267915965588667519508541204657462038163686515198546215334645346665765115348116412768498715344974884239867722060380596433813877881452395743341667730363728993561860421384199752061162790964353889188235300286215845633145504785653678691056206707434575982453691715866018711119995772169195685468617011299762521971009557824241989864033211796628933327239180885990436703178665945527174127941536086685013792831284944099092631610887083472316478637545091868186931867563325205155456389147416793339659340442802867382087537389702535383121753296547689625389159152071410884439854283902937224478265819668013647018939773918518186241900026486336082621973581664462473938775418962578232427740334880248188942329873839871175514491401756021575701188263484889304704779617304514811346912666171103414834610192636758842231926181845722457329295788920471691329566584977357351451974245451249534503201020971501600184168724605529625734384065140479422680923861148424872548809957765388866397849539816868201383231772913172855372310777712366426013013730632856463522163814731506636807313104840709971724456641761191676320541438989704839536330588212278332454872184150535129260120021244892540795612901668140890578880179069136091751729445665377363939404163782189438906432686561933290559406124182605160394345833162645782098419103460671230900104725876240521014472129768766530970046041912842765588190382058091892499498277958558852947378963015281470096097748730674451801772782014392554063577018292312076290447282473722804821204795542264249931280901913578864047830792953609038692097532235422859339784397258874238460110805116416938062072074596802893155398071109226221315941091141987082330371581435204942140562751926254072270191891612858494635125984848700230998431033016061312024593874401629969455781886546773598934632624768831706050418114854804368151729967081357874632547619962690189437908255273225474553629186707020292993209282926379592787970585983089741451462202366821332732008248945448539624673743659177601503589149545583161405148248538907951516133096918221565988483558207784297401689506944112892944681186675067889736580396173860681570136615392094932790989352183596217564939341854045837167788028058481608308427854396280326500417058179481687104886659637099624607049229591302490491454192479846941235807719386695968464617480876727106741062870040896017929860527952805520282586461226321968831202085079027590445369749510186866095801288679080615934588274809724426277623911951609030420982344659412150963620523166393635154078600028298602336933967872666376793860566058099515584421689108930021532664683162810577058319236968072554893925901364888227897341817899732847408978235006382332595914658421725421384290964832120284764365090397717338001023961768655835193811602863216861300004323516041643268540555533246101125224127593537332812954757140066051406710303003384401215847116813928833244624082018381265586766769235378589344731386309987021880355797716933000855544122968047104398879216094577429394195606005032171535683843628406095202774862109403821831134258661777172458447197041645107642560283141291223438959382672640539908021442052273164422296799762412126298042707787862896913173090231394320644633166678152842260407137087708781566190597028077416620019469307584650324879100201893796572453473331650991423704959832853334371954559598261484065885263047937105526081622552285428109697556582055487192099949776421887602960217610285704622085788907462982291454119223598800239674031814478456869008834189251548685899002167853121123923494871991534486889954929299378538595007014169133648115819708761386248125438406601796304425650659330098484493295588284862323975769342960074949076319107327349816241790090962322061453781008885090202204644010524393565457855710795361355490791042274966740586856887685112505329791981378682932964951722682949812118186943839467622760444837075904519532683821176587445330572578449085372437139734030167016318949077925071855528696030840771146413421881672125401530350066884396933446631108184041161036128530629024095924581373621583177913293812289236330962356245566583577450324206773238077279403382300064901559247344514619612217665652356192571528994553236282206791970185439184546869421241625852567872793892201948783431645848259861717985252433152160836300022257520086730017282321648768558906758114196248357366702788913711079575181932476819116183020402358125820598897446496617181228019398394873876791508247774541317181638029689360772396769124300981255294036800524301225370534906856766673043231563242374152123843753595713470714629603439986586738657426154836779157869127826045793326596032008928718557384635811616727534589578865342717898987168129671887852654810651860910948533080352359686909642440469980066301446632076092766461304179796240405721003620466022767917593564121844457711503669418716006078838698376668569439051752449845003355473387456756071203979167642626723545138401891706894702955019368693929403834821899660979357211011852512876640575728111884190053665606993596900421202027210159080816197055277146491747432455413159154688995463767039111800987542674687255728057941218209559527211263745031266468678020709005157403874238938255481681950814777555149223256121144976385425885579274080692762656246827424588571083673543447636938258559094492832276332551501667173268567208482793894033962573412215976251366409358562870453185979030989604648642980062021847755619364596233790950472196650735005179126772789642540729386641548227790307331820555926498120140068806049711359520350451273958645241658156546863079951210148511298919491006877896072396197528691820031251460827473986311356684000517241823407632091094056966690379824554636902888674513591738762474957574902309483397406075200539061047839088694165809112935182050445454437159579932973289866642623969452608435025724403574805505274241470588583148164998793494078186641444006912601520094604857815240913146808599322975339472576871282227759449597049564402665677472783242035914074810628259806774108408224594350701677197989930997558953807568435234050150287313503524758320912725686182105819957695571533329668143765201371656784265461431032936956123377202196292606777255120646635025425570853246547407255041412733960208853052798940070153759297210381443418562147765142613812610855867825426858351310738328889164794256138908007192610285094766813394231515817280301118775495828905004456849645811466866795939090734002775820751075450128952443709607933296652300251063292394304193902475524519184795922844334854858759945937681576086419193891959338624379807258003816122683513913894919301138975184222120467345849505580209334483846784574897510632129237710472120056810835276124548596528776617703118199899526464018226158428857543082956724790709592476383843204080107959421318410060133754011132564990392267215176119893256722117262750952519786831559572287745359268762644035320129409003554390083244900613416366803889351781426527405929820135499331300535357375763697341653165976429559921336457450768887116319391225176592855038426275233013263965495675628910275185051546298715690822824472184377002078434523009804115479111256732961041443959100434379449210536515279798858264585419726349460508715761476900608558014028955072284436271175520150868158726676277609029659199373208055711916053319386039332351088898005821018032518293698937703773774720854461239303272424949305714948722774733634426731869463787403356784099765525712071225465261011559385032361551278912678797132870364960331314229608197922482582663918424029614657180519469999315176327466372793923928874684773891564344847735916804939850680588350222440729252063904050489646805739238188472016881278862112183793713660468210152283906440067391594399266768088873917852985845276131583186499071342640420865320750496091418956506066575575866655728448922513885173333459765691930901044229026393787714863878281211136060917708321465527349725061888966091609184523443422462081596623038275265317676710844473763883807276059409745538293811811573828767338681500752398035452090565789743329606488939092249870242339178623668442539193095405945260794417187589142238755136764135621948666979087874002875459345332097218362172248509322318812011287659516696671797590759979725678186072403332109436490159610535033484354951186461163904612984062958978411229751898194355115512574701515075954235841149815874433831987711163222703959265916130919638211879990848473127365117387467763660340656354383190671635161620281042590085558930951118603124014475418444475347682915024200166075625484418548503722557279127105024428126271607838393187559083029408341149146921114122371862655756822941263347531179769328092176851809849399035367898253654443842460867062163372833647428789902411911519365578313775948108149615923483802863785907749523617796120733497595399916178689392415675772325429766935267410496800163053965312907457121100318867572960112413192005979409083758765893766575314398799340625600340521452027740293841198880346800907791372825497217781958029865701651504885262354257559795543383068647683539193007105902001426666862990989575016710025428184083323493407330597432363559487309034907134896203927916325671329801429977721796759685860007876762902957900364450190155779770002295477410212559422966428786534104545257844531974446281701043106159934313202048073713962894704562590127682309404291603911027084749437156733475957171234884568739713451263084308037511622135262887712042314849675920133056177261224423470190291544563673954286988686516040983163065621605257085184124284869640930237243022836894557752869298234872803708061459252852149339604761493379721460155673163739755048737551623583867000408506084061222068194189169344092840400591790610846084809864047255324489219842120560210525409888592845416398779112961758957135064082414424487843914156720346770936664692214995016445871580865568897010813449618621832977114362429576720306485629679400663866171997938289483588376891910315758194047923562640936235234616523659395172100339178112183166432978755686238903486231445810880562109269000434094478198465941495519793068689940748221501052524088893584739602422158919165840449934929378362685925374915243626831232176095098837808332154193930151405325587863618052979586315031444914420126500458504082254834356073816049236576465726147749724549687489033550395847486380077006084846272748214124361497562250565472557362388902713175111807984433666502968105808358775696199809095985580930697864117000892343115908687023372152315472120550054228546921616677099418779192906792569013913841760635150379965324295874437006784956813883533625348704572985881613183068314152181041273288903032938562339570296250673619395570189527677116942653782242799190179651607646091420395431565659295089723644138933050714446650701261946765303889969126966958312032305308657261470626968041299494533056365663644884786432138303899152218917345207507243608738900647839261565338931028821704730340499938372767210228153214658210316548508817463440290180927722230198507441072625267616934604205644302626940255538122156875644484659290352877603876600220893566167472498592158839357435924060942492706046129735876081873530713967055186266158913029284909542459697161724461685386398432247080700690526597925564355028055981602064992192439880299883761092325208364653642578902822080551943901876023485897565260809894776518188788301393897307618391035668764929999430630382716478336782324834236122411971752838411146881992596262397422359810114014162629208832437834617273979921341556417767065919820545121125115046411253691831444190281489507066259920105300105201118109783475056930794814871541555478868479662387970562187278336684912031027784083704970816507366856555758065022147524362106007390810674114298879741510450415816267690795416017675009247178707415323500223896777066296312343989644843100346400397066706110574580422665411945247660028001315691153289490516760448825696858689956257403318937775959852938055627063608307512678649761404376736919970753986060049119993284042363352433137635252356277885009964897742605304167984045793784073810025496080047332730052227446581898304215863523265692021585054068533679994597317224448416134704576551830490501524805674049863025390969872066984514455295419436279570367188247684455630185930674222265941488681962196220022769007497788604679022311142291742279205818265415571393429600367954804486604852946490487684718871647919542812378416785627568268602497136771605393973828800466612294333831558454131460909844802620802070958052078448592469845779564504629130995851500950691657454304037262922981306510571025045254710722051526678990474206473634011667597615897576786889732583559387667377356377741420462674577766861867681969472973589470464827451422672841001951149748189781908039393020259355030363380829132280960640712547253105249129424191315416144602898173637388065697118953921495181146630760638302119713700984709884745374463689414239842330537234941722899522570254142112178589522772950147451592011538386287350061932466589175128356546864325516588561235488712570123490147828814876630599742989546606853895022015604853297670118100049774423701532954282246366531167105355190466890604459418103596962626374647587856958965282204506081278000839360151779824669839354589739767434777470391764151939212754110475631232408918379936257357707518849018778805669398378585646193474888254125154606782331695033439168960162667018772651702751294244330556201351159636523460115110214938389866686290877238503378268203435381447611885333214413625171388740170349764321443073789218478052823014553464499414848240608876724284831876854986713370390200271393159713120922644821320192586732080656085058658811467254234917759796510702517715395744951256940525996603191261326524383152670147884747429286351169551232588578201150079598527588981270296954350371137507896482788376029131645772744937621730144885575863889018047242456531349337693381903839694800968854117352294540513698793005690462320735434743950828542766366355370177310124362149382666261723426827379031902130740549874673338189804094070958834105907691232753192794730676303191131038739393040142908095661481703427446326847323903173477709498895120684902609297510598218261883925040524333978578057148367503436077453191895460903294028440469474580299667947606520223778870014577754254053251559449305525305711776855917268885997106779208513047724402302800019391653515763978418770817909855483348113037920305346107428618107326081985208211134385497460434583982910238844040117371594997804586490681942163165730099418144979574405105418590441036172896348933557654215410576900774828538741097292356642996217112189101629964217680386548509678116098286149802351553410391076563886808500352969008130366984672722416050588525416153262098431966975732659044468752555271517719517004376849128089967191928899964206393330199824721979450614965285672196223766530416652405413544830272816226320209859166012811871940393097850179773998056422559949136996664585169412633550228460066065850500790127406396214682476293916458268800436141610424738933495100297861387092960808497701293410289989116870748732719596898926944159888179585115893579186389601147500809644366248113175571874009085895110160323833440308284334129011903628577432478770943218628087340923394686513257592986498643677481893945162502135145309832405391504649062006534354863866296498258490377605055314295446115459263602620596533814990293413290598808936820549492460463879866420419154998701822656007333506229754262454525915956103759688118667887862345286005650720251783475196864934820487861881734231969227810120159011375801897518274464223465387290388239411107970188787930827742474445458044894205473486802904502067780390464352458524092487934205978132877437946177520952368421858675058396121303097348416205086769310314979909560668825600388497288171463719702685337572804502885518960473557138530618624016505637747289320747207161625879127403084162173613380444592326829689994565019515449304539466912588336584258897748791080435316578616284674450015387677367899079433434497166695002267868205326558969052435611193060280419020982380158933489990950342132213892934618508740969916438454629475667900154100491853182522167016318198524089540456304358911378593525083800764211419089326102922291010437101189357202242755430027854802613001372883473824762156133089423552349468383978542466005649074420572292324979466971353786615384569772142414751699143472100504123008232166322480106042688004081237354010045927983221665137384280041599714197859573660579275333106306340964618919518862142043552006210689148436975139809536908470548383622899977390931118380685165108709325910779735220569658116260714280482266865697096685946359864980153999971518075700140714000535496018375745541102055243397343868943602100761969892898520923030491137105607503087657260097248295200924532421997244185092028681406349493090156418256597952911830737837038906689453526445982955365688216989435783162035761309400292246418987990269520769847342398541330720401760841802641852917842399139347359755576587775242646487104194602115501628660546651924693891241795372866527880490734783581281462171850091327382562174876111956809953334652764907722891896936041409224976441814338294725354911936763145434434923316271486889702988172884705917199899889755164609675117392018066684969554557581456045632857959009739931845340717165040893888326116976027780779311379861760716777315792590184327038085378461549186917809696693551918351794426702319026045473785464500936568531178720656404734716111510611925058844818383901426718259131300716385147083533585286249417716404005339378606302187103159002898445248332757089316657875817368135742022309145234384342837829695687415531255322431137477255125955455947293091572829940057648951481512680836816787816198546261824690828560601146739759669406576181019765850349421238789966477116265299447408782968959858658794720742126521106631483632962697545175896617626970256393507076277752740210718565298477863390490323667511909210992190851108466294710587568295477006210599686350376294789169515295843113772756794633417765655823445195761561372557287444890203832815915770993930156372687751418890750545555620916395597058493969042376995408892514444765551931968368607618607444579973682622916512205845065386882356402546223033499904101750703069855313808855753959067274941434529592379152100824862133585339297667552633430655367702288991260255793348997030813079843873944811288667267018119311850848776095357338731568183756798653391071671892925535945197901284390394234010945567368656601403491310856280945228996014181716913891116212690193255152452832678123897839301286586944971520815732021984575498745769222493045405107098246849380259144313940280552057358067948485442323959267048072641667633323336347068141384187344849225884114610278539694009056483989227600236734686186060630448385216394334628520415671263355696066495450418259411250369264576685332052473420511071967138226011054201217838250942274073705965085609762278121794534106717246410662322965514892176549836202624610197810305370869632451559964889764694538874347783819707130786681545965262780625589538174283925225739851252972117853133547212769509794761804140143812833066342563901390286725167261842555190556301953657738105139332315121192991686947903241054024107928711660439261340782936752601735656373165036313707522116448774856991758504653576189017678708197200629609367643854099633267196851523829728485150394309812888835563330210075760981068276233916900451005786035532145670334414468935158736743011312032646279016596930202382162960263227630788867054583985346846811290108899537330268572728823825761485746978095440566423115166095625182529781721764570412007646403307986064513714670158271033243086566609459608061910153982282357898623208759008438709505829646567082978861104410630823858682151429192541607325887133805128974794227812888199549065478714526100008481256062154750077297659726521832326862732534868953173294512168781007018122218793993338124331551198943488835435405502884672382216493636689693853607811476378530422004950114254458498901162357317598105150210351142050780664868152092193886826678135224287032668177884172820002313152886007883249747741277089046887181811134935335657222430090644673624815686678063032834392395518173206386116364506383035557596109675049300836856861141382030413293575368469828455412785912179136082266341229606013156001440567844644658490141785846024870295088876360880902737095350991014086092374607452981866314036520756595844868657960230032094016664637910420511505580989543842361282661784253563354009962528367950729710431614234193415513887775496587044334041140527990761772951114427189976478003232870672527376876413415759726302498501059938153139251732306317126539841263203845781069309424548775879552361557599933867317742059328443372201111608281196741198241659157407326124630646994246436951655425687730642821191933541265341719500656599703898518791641454289494393712647539163306574385532604602477751998625209826955561816565543656265769518677191563322909293142028214497643407537229107409097360732208139036150659280396935575751397170479682205685344405833808256607313713473558467080474253084421396354306768840583497468497633070720140023409962217934124089061421672383751183583131180738312621909618506822756484855775034112391145876734906305602260248255508195161162948724902979255463709084700363596306382750850969910023840527784926559083366894706676532601184096618704247182820109914270243850250734074990588886455059229810934369377768135859741820350638997980418397174381134159134284386283849692966354118158150194930429929928154745939878846670704002901530732143944074594951488744054283194210841415364717359661550190349643919572195099465690847180154829208899767033516044323284903787050981823287571422648028401086354834785758168162942826589990047261211328788926151702472676811740535857843989168628803245260101569701474020670407270641222021552120857661282874442504619679724151815928050134187705614835770384666262939845243014739615825326966921716548645848205215503400778689224437078950479657831849607036941739025211598486634351383596649809119551091223246211867678408791682359760232538601939998503693866944610323944035968896795833662600779446734867267911559973032024004118000346674112499743017112129152483445720061772348974643492912668506535594499437357453374827274980329315076739365940826850503003861273676299026713830893268774195271427833608049409772819805184637615079853595432139999326373745052837129802707801489327312606220164506347213807573322879935573911117151806880900593965286350591640294798909274627311836409751822082121938907209189253439909499529585526953469321769740214132501332740792011953742873122036962391309451285805948230179764065252923880098625658262305727427799864945898870134448024763006191473591845343975584276025923277453951601914066718379228773983801792432776009056574638139186612150878109814539087466377899795930488057371861175925619444535383176006880410491544563205051184502981931127004817794723659452059661252980571406830279719488520381159073248318745259029743316026383943087110357149077278218918304919087119745303099039355183734957666770370065353865473947816699427582563119430362546967823739930582176786541161440068248279802967611890669209902102787680739140479649254987017378301456342491164193904860752324835689816504742997059961031890962040745114466577781731754942880042175002082507144162908469829396093792982557441266206922871902987378021270249171325821754984673601368580528714128915772553165349099610428187603013775634513926996010900475110208618254869109897477970703292193287558580018623571189799885540142175323053698899028602916921519731329976843772729009572783544372083726618275989376730020148544332833408520574749610976478156918197390616100789692946905791328238371918450272887015835420843493581767327944564150888556523210270289902128645208261473334331738101879437601594595380310238099626065606958029847929482709939038407245311111108005607687199209425809457910165823913815566007353600206471388298533623428683805232830535428608109140292078352941126322155466548020612675953108268494442459345007905193326396502480959515326291813022246274490569479571343041621231772567966794922258360346372721576504173265704810002512317251980251880638715645702000679573263059640466578488900501904324894831838678680486693920348050096593629950871130893538694015084272835658073787922736515901009983352817615755113439549444830917339458127687253380307777730242711659393493799590733588954275239327234672591943745451454975006618812731769042517186294844618948636082804645643935448429450147328700784420408196571873922838078430255150875390619029103549263334256577158132949310006564132868397760382722652043880668985407202342819176982740383610762672286692625143822859452777911561035778945871166281111588560949125533692205707313993215254208770600104555217994427505498669713944317710333613381127069368394808111339956724273568150436539181943674872791847682701469938839066789610361793482739612030918896223765421926233965716597166778615959466567840668642867776413235302464060178841082518911066932614172836044872397275807635155442069761897910321578944223891553412729948809925180836641809323915418095387218140542950459507294935915269840146068872932126128045624793484742916843160370913109310615674107392934592423816472212581255547445564399854761217243179463157446440423792627132511292183046391745507622198501226328983710434234687926490063206669915367626665815618289733332401672941825639272843806091199353953531156568597528119469367062880970178666699892484422377899413811592633097611920306377727910100837494058242689073253877930671366033636294020260966879655631544583851686375829203955199667036798722843515930996642790753033893361672272244765882400061910215360552373203103651524688715346590202967775952400421740836178358297643597149271494629605214263074120782458128699189000502126962900945564514591356156039136074790240670494384489918661998678593461863042402787358588865413061512868492553233341253294619379658590631201571359391682877912837539257598305943121834982005653252705744706703026834320391958416876413338037200333099628123411129915921186225795553125093156726125730736908864295057599254226354728756506268901494901274425201945176886101171983157858883484837734679599873269025318853486844706003223844163827925028281620117920141019316436156318733435902839152019053443122680020435549597257303660834526652789680422843293585203541857385647608345611533175314877591163045835439915944471838116363960987290524846265469364252331218995963852311165038189319277387676118134354372380398835779197606630681826221620403235857034708177695063150910966389734924198779987874750829513943534339543404204370399345347451658879964781183049129356738310372286430754683463878304876544655753138132774529701635368903034266518532458789124189193486350305905386928361931268153816607079714792906773368995435443777996484151842134535123222361992335400339928076371750723499396943319671450938548835161162513366785749027365969755959655215459890133298875945533166825758585425755419647992343653667364669786371532712009732479164385454304613981712905414162180366397624853307889406335818363817909954402668784585187987340060786096585157277240701770423210051303076327373184075948739958897954367645507238339574108449146533610120984473885307641895497703246563979379285598403732963109216496737408453952130818400255931039071207156744583960749277312367346395651201251531366967697763444299945668356104906952148583269748526881854754698494758578165305593519442459458341353264771593272270685558538581979289472719224248777765838436633168185461919303662689594222095337124294769051793664894329377694671444122298426214164724134609991767698350173388677446967234547034396868927956488357088301462713158208895851451005585954889025675624888230149988291385306546843457894706488574160590114751716079029695195962681656547423106111516680853276275356108171624382190592065217286361255951682711805655229161477390023141345349831392690180310964398435585155538517525959232128662296937351155636476783747439757137910803472944600964839275735846312006586114706933480603889931399212680532302412503632201441040913181671136054528517532351081256593081628639262950294966236568093024954807227074126294398623076020021761717508437822555629681122546082379722570758620257236557715808225513470191607021695993763831908846451208802363750581739557372804076499530789297054004772795265980059087748379549556719801186333951039847236061247988416409993932499814733382219178476747939849366734988318385561087516421482656776787091344744895792427730504379765729644696877670287622690836713726783899053520041175441372088343116899201903628979340146260914666901239657494069089089988752144713390107840442185990624637752890369086263547208243165162978809285786015195176007156009643253950610331832174018558255338971830349732820996661847473315994663975700337142771389069509186093237806771049131453768360071150187664337607980329355196147473308301371957470972083727850395582137390218347697782946751618102206433363424209706485032430583739746283168316152195441838134496680142800975124502841763108781026670830607325275848176696586200933080270633465350853960531679607676427862416651753233825716731536963082759466320681880037471269639819869190487556368377775560983772179086713598133193577682037821604059978323693718740546605897775243265333071520826621388210398991536254289647202839647817895422228705001533540841318940716792799186556990420395124695010936719868169377924305110933348052363741082096419541582085698340809980007097625693641014213695059333391207485346726267627779179944879194124792456866973445649724079052482654602525082598658930692570372713778458219598304027003877485394307568314802003504543749498514342283831481274234715154775873051160713549065324057986121952814444646776410837280809784721844712092789273549050677652942294085253611858351870875091635934591088286005849775130641084714694051406045867663944566487357853810405431783114960543645667851836018698120935436691559456208305932609849780061635580846636064198854512837807089738218254491090507962465507378432103692309034465609872067431857967516424040373301274483847980711138155801820664955998946060312777602048977968649919914072176435288617146993040718170794152524774877481975717786726646249441120496910260202663146645499275682506888091986985996157234688257499744001708720900076761205241391057566428902660814206563166795814791977775895205515869228980924333876760291940427296332793976801534811996217765481127174374495579166879404005093109099981733051556883889502888244842039167050113646102393579474867678193029102349032843476085410024474121359539412184995941700031253350157184178320700311091798918823664533483295156455243891818421888112082044931543987173168782867093938397694776127082218797366435152347984058497355415660489218062994929210147963660083483405861469004820305487569474623536446884885735847834860185856725250937668630273720252705134177575336130525528516337784774435605419187912252707085417736461501986459170840435867290891383329660118678105734422629803072370892919444147919982855799510472843518386254340053826679827246443835395799002353146385952511950704699657229540933741643569116916655314159628785982559694668059403624758591581573742991607845541565081955517393723371859615050342174714848174858283003673883038043326188288196545477013228406305848658220342580925175809354134541247207503037218073487375720594319798300706867947725101006429284034952117264431679901542375051241451824044758907354018969067348967378800805829879507827619364703909056348667526361780258604935560472186714535657036741433848628399692185387340738105158620892189346830443445753438608623365047231533340516371858070906896839290415798358123382705261512391411512157969670298690509866092372986751421140781907652316282279917509368739521541315245012515367325972039038795688100803376893517611884467503997117654056577256431502208915155582063349353134415580538969553268053876501430031745942546487813969072756246158030551218533161020975857056632433062190172511805302065616029887069088379598995011152516263706853319986079625549909860562453615259354157585074842718943582918329104041387688011933277902968107441028188564946630915981008050541346550022893225548556618179966699640615765779695782897737541765201476568484216353329975370663081018875976769651518261455113134743543753214621006291111113948030661445749259443794775752592443792287824823148241653083541110735295121851149615387620041096679465388393139472732683894619856542824246355160205012855071834720531682413074732119813942547540593927377188670392458572126551782888048470520750138578256454286798566021671632437130083809462933358973538393007004897730331664904974223404323533218082647178178298554848104639624036687275656625435525655542262006735312652269615000537032035495013170268193462952026473382005229020854740603312959851224828357646341501300542755089716211833697540912510042137674056094160308361703296851032732745008932117359323613296954938887151432324844229043216128371624201247728226658300065107906249698945644128251611311920987986646859585477778650827659218930790285895392172376122793993659896917102561431932541650929859533892290953007651244128523804446472298058012342356828173845816303410068449246948637657589495380244565351096050500195127296615877919458694478920688461414489189592262181609636335021706531119712270319562054341819145975062765627457422718846561794630620196825506639762659884119695358442048608584661840654035067379985899566950391956292209343393379164372985392886036311744794789575753353490292119931347432175644152565842106874260840695367782105347551488124650361522376281304008017019727162520717370848911231605183034777420046725898208701948027687054745203982534032968242973949723360171731178509214028002744915802588705991690049170928577099016339280638126667612612006558805058290613231086232541784754059870338372373217206196080419107208418134943155461634317864040559291289754868505018951743067324319682650241911911366282953053380929380378487927054129238349726206416244893357487338815238312976525389610011248896996121662979106560761124554675067072302035277168992523570172604903312078359926007550800428308997579309361666698934203403961840203600032777507494536532707417148218750091471559192086235408869423023024987650117077301438141229108335397877183645301258094080205001543204047711753126089171957467069307649993866243340823731385294726706365266785883846464033306883496372663958150558879913846326142292696078128058886707602780165040399085412572638840679500771496883624808149823311085013486858275814653112706389488879602386066402272035326380438580800251080386499931341598144227701023771893824604221735903411469061958994375124210035303098628633208582649585933974111559328035351903375962061449143190756347490174045642421799976304207426309470871369913558570538915552543620960355958715722503227885606060536048744221270477274098265437532136588647332210394934434280591081409979985562369101697843281924392986377844594561922303120779275158838052935143212699706075148298893387687548130767509143504053560707310954775733246024257526577708119112446999951401833732335684392755817313441765450902383973674166728743740513409315835905955480378214080770168209855480064415275449086746366060528804553921609593945419575251090654671910649043943391896049199329997810707283494324835265401337990701496272893984052664058820843587047755110849054075992999870384530152125592337475187992977172750504757126753268460333803680264597161406808771903856365320510468473366847138474169415189067219212537972624832971003426017524606417270127482419414818596480676288370781217673929807216244639000401436120271829436632488641361668779374845733195447053262884707800233124023197738802806298322457896170907927214168334786456567806313677303322443771031253666105200994702196850640237620722459210844174284206734180019640431365725060278436569848138502241698783886700595476695707409425974673231999352562448083508165416409971792432268195916826113097284064454410157951668982704694311339555844143109976803009727690409364623933670525390985548835531688088865901267102012067412589478054799458625924399431355818208699176053500278049974260506189421563909030118399708516949822341195119487110181808889427039272923801806694764363359748271198518209167955984652871273610515913867453035025167008216323047785153176635547069299372119981417537108561476549785275089459159754447994009445869744583961571405052002587388508459377777600462701501299313994832937826427285516978069849657922766053635549294976716427007505190763907366211323992356955113406587501023086809197878101241097491333705676693565234637097609435019359836377179275532519164885841189044304172784750531217554271876452288445540809927590932415676503280906972973984678573297151723324502490567200168397627887766954489535841305206098437206661033021563652783873544902553793395404961398309632916031674120705801698468388971306116688840106973432700453789691507106378375896460730635861797247410664204463286717779555887969805618929004058014412607188892961018832932423190196189434080353268814895149374736537786598445570754238710583892204216520650853559990253131340822524312989131096879098058441523356961911117695440092557566709978491677815270309198091765393742594095043488683603440178844937275463059466320454792738325496685323124000220128622990291225085822617962075579890463595788605968884543819829003074065591726378095744464745254062670186888406750508456761128745038303610440541008436515370208482396791282169666028168815533688043577998587711399418149462158756351817099509633491400946097464422572262018212613741913021637353417053455923519342096851032205445843851179011617947380500378804183639436364839876815674025276114360942080338381904071238596526259876088259227044149762990342401709216028882205857993457033374666335877395610473137794202021230550122925105953584574451506074632981106463332542177570650339439994314995662614706183775658661427862220275441185031947222581743273811933892506029284376156144932421155999344565305439018667563045268727146917552579637474223252681684104084796781720033827988650728195377159949135628409492570851873391645989492063023113484413973963048673794564932354798379759935690248228202089148241856912074184523214946522866597322197862055146141234265935048374844790328454006498362364740862383913008334917899726656244407016361693149817786090240498990885187839031034832501542826899172758954204607630409619797780900824072455337398957385203364646078256704683056110808108405030572252044937490123515832594600655918594379758584690831839358253192666409374388114614447844017097333622823274064365476000642099896165477302178504890989737112837895078987679582662784825919957304836018856355905666690112249875987708255620949222399189269587601055648191644832326087653128586199699527675902942306379651656002065979878038519580167464879332260998279132458319247068836472425426543170103767310754917658066820345964124550645050597851989179459784059746915802153825456997313943302480303864904902542290659854194237081903229306037009447606639532766805205447961347826754761987756411197652130786432937671139331904582777781289145547632901558008264887507321188970291302531397841430445372382389873359439201529535951188832742034123532385786716955957086965707505894825402734021615954704423829424858160952610428697232370737500790066252846033886881562404262423281398195749588808966487931503651904831367359762659847983225810719267799371670046668559861835600703555616773732329210980184126508523829842147797322759320092614612793521306146422700483435522960094776531240548676803544306300904736133318428084443801230328178888131578235596908173118157398495791969469475242256881426452091099112976420238133126884469192660535705887037729056796946464546811443500547172303027542367283774273303263942046961199748307664307499175049105934914044654825410014904262412492185710693301884449445361530060820087345504687146094045505052149848683451291106830750574790512957488839992762738255715967263700138592633151405007104050867777626627206402572028331228402929503713127518612033419853601085344950559888874899645882357786328743187382426690416337699961077257783664623915949903440832687398266316414328880283011835340762339714707709479299738109540332228773634744431609779296662981423398461415419762430845374124843005370761621396437991132506686855263210715655815835044084091829898885479864037191594781364945905693752410835493817331894740546420730221816908424367334562880519603818410238243608868250012901755619436994120120415721349058543821318278737880802232796580835418443057007608621859841277668205093076218741935846392105934226357378423153135459283159576359925310941662903809230832933212397307396815612430034317113591003092307376937209632242969259713180045515226832216227400324349464943583075870750158144939969284022799382910239851910240706524337211488999888658770182431594103521560901425587430076873564370180580972650480500232979940418392413521554086047221213830839051697066364870817585168546663834811377042093713201297984401606375751452074839966559009134203519326835017540895629172405100562391530352587892041295131638010017214736694029607216453428019817376992297572893014212784547477812235600878462887282226156074891319554200374085047553492894950941669798219148507986828687336099000167260482571134501195858778385153703933173273405655917125035928887733537706367090103593004787591124895421653178060729962270332997100931712668448690746333210343506788297004960688840118650966231205592230701701133117779050394466897345684008556174269829398296328433215117571089722562145793621615667696335584269604993042861023463273761201227478609063034811424727779600113500358390824952041765956137457527535579615986891605068947381278912191953532930525067080390172516591394594350128149674234785191309803493084048507093408656482846088368438598417682789561971942471547834018656595928674944866516105644225605648825307838049868396245199041578999940979679322211708514696177743409056583868664385697652048056579497214708385576452824756391486195766193911730266118733574845079719697954351859425941896967355958065390259601448547301360681802340381810175884509545486962218569272775304899165864631740155399828428826553127481184241045210411301302464936455485161388322097523754636317154042839376388008508471687038623261432443239528243222726090879471157374236047321160778774872283884515908117516819839780537670894378098888387040098414665986059495947156603092906844982159373142665421239322556666203912080593566366583980948120300645565044896264753612261908025381349717030200886772785909056252136486703960145606967820904617875938758694091609880387608229578145535118616992738801202206911004211063170527630995904802907637824584974459379115005907520800780902054505914018338860742645059615163993445816072786351050249133174862334347034224746822356165383568821736227620761710716308425972432763031711500861597675297225464911104675665268541234976767956611231581638407068028912955770674624208386762856474482603812929468124327654563259507987653699994461759727918535533623335550614678108432664535286269994111500263352037504265645639729493798362515041176458992554592327017393466402214713595057763078529499062845921291480751249490736692116015387572439522627575977559324819239949928887894209132376155636856514424660017436185739939705970450739325182681804207006892752555988595776895487294272520449295263304204107005877993141289419495354100087604718606174389184246589606773117318851289664396135795801317569685306585532899639095962892627915220267149360193348305130667101353884871077097030323100590055815650459582355435748762987628320255286455233908966374520207244718955667418845234647278480116344315559021115011160420835029503027265881314872373585655554433359648335416480028929956284811665392945246853044965332086918614195707334710558423150186523599537595353222905952569296864873649968869178452378849457957867988958513057263675818495835819015895894351946469568124650351473456243589374499634596170667068040958586308251335038757752139118361650858495624903759246932912341085144975405143101880605574589345057233682489149584278881409238034023787538184223784388360332869126927699966163001299371566041973339310333559319079476078939770462548506730489645835759623735055642851121734331963500704134361249921045831663777936957133279570896857933465710793037589406042087197845990865056502492606123272522558355967270219913586930505790830301817391552770959596618733787345534369400760831644642023946469723222401605524819935352919753548334395316552611301169062324057817051622840996426902181693081320027390442518332974818490863410332908676268018289737494070865435485141628660937189761846586661271762830974822870451975282103744779206206957001857717290253857093467872867579171687131098145162514578454736571112292499373789243483618934617084793477454769618375528650465866879252571226929469243541375577744281982190710202160762411878014571321265567128404209090942477618422800243475385317762508735436204060488054022227468705886212023388874114913439988458717944971927633274865309336348956015836191632752627645704950706671158386612982795303371122135383934675882859201398657951211059406321472281923339808046952064561452548710988641713187438711458748638555417146534086208185029383995818399846627593785732767430321434715032507311894355123007497968833960938585202608667687005637930041598875929797378244613865634088283576513206684573460144809312612347378179131879291607239026110187547340455959124167075240477631340086676901236232707421770788380757857321243489156541762118037280192380560483183849570624933870563996416637879709862409792603635599514486532117399024620566567171937336945558026101401519024989409503810701218602935326302975237287213746309890024588526313587522749948636289016635640531851388668340399074574195163158629153468483336861251389998056217257041166207426921286032432033576048546104104311221630566654383831537862466594508144573761980903211938332848916675751058578457027122467908400651526386924517619489744622041499501130071265190616636762598833368655148011204465882909483486638007212987456076613346135343705446958857079364380834655709351673123088934284508544861341771496334119910875810310263333759485903116000988622386961161049091750026834160674078489035206400146557248824412652769069099709208322213356118403865559539803863618289874795289737001237577722626619968252000387680606693903675412846550678724703155321484524077364708786867994995511788858165759922058276501841764065012798460064421540460740335502425639287195355389220036661628366091270529628223386562635192016416313917846804482714452990871529465517029458445311165516115214939667240086014614314019541443971417220418515522771861248088411794338612345458830027139877111558144493321378573528108803105608067016450472301801933392453729109775685729528358752630087732033733384509415637796807521405110162189409037267215460221320363701883981317030452365984059936701672071716006315102567383983888149882932539036522312259570743411147339783959214755724505331045308637085039949565123683019113174105439375868673120299643971683773541072841959725452771884000160007800778431096955566559015125083293600646895256252675509127423885945726602884190412563086003504630351483783333228872753151307325575118304569233081424265453370956127981505140453743259870901788711189021474625563221810571624762822764139464893265018094932812603405188945122959735597675544296144758729425319673475742600515201184924938135540040568447870272789756608141066743505491698505648893129502343192172215058239388918510400284947697713118404377176269551061440811237742447552457228431494011308705733609757797936086906615768514940754652738637339494278884092160885372605354755457847648832566108750406577030073497018415776610452458437326471142441434552732024493423314420084327706884055760924490805014081468673755020567009324680508601608972770880682845200185851317506742199215540246633369235636680146446803664583876980624836221495564826220051960251769789491255828717236218947613044550041016182407778374392958314200249076275106803730917212773728500578303090101806921224828697304525117273151439345896137756199646347201436675882624559457191190065600930603361881419728480890430436776463612597718186906637341255402320874543964590987891426159969601703521695269127801390782343180922279948129981157953996709185005042269844003373091311794985249499258237806151618644987160149414588381277779879191077954884414798972014747923720313042501294815682091635112350024628042967759461087319308640960505998013326838632949120880042150969794985305685814228794233940242721876486739909892472100889704001269285848994970626239915662566434168148071764243828982541871077360531749701561738008610036379502139411473586820545242445348314054904279935657623686132058153825504823332430234396212269888627448676394758436998997058104211438134688990471715740914242891048958818276854336194220374646912391729366377304688606850876311196068213338485575989611350230790836516484107057166535084929525503153670394156304171255741677145939512661448404451268207028912596606192752343367928048828243738681498990050990882709346070788905082077797741230874089663949269321690462623088704538101609605680443144560480037264232382902249409652513331537724875085894319894076731948292334383111445123538201208563120407525589969116250415546153056944272308506523111207498690598506406023280253369909182685876691619675353574026653131652826742779018794698521877858409508679287960133252059666270455323573777810096190576270247883179272226507748727708864390276298741605929721525436868819283288006045398799844585344643757960034608747271366398561436109697398076317783720675910642693565507219074173083072509499752098265612623132670713475415270362002752236705457153075150692380225074126659273802859315551117242627370302959461454323860907294106148714220870111739774372680431392226336941648726444980611223165918906201197093466372731586009628722751062277538633062956235651338126286110078723772992037003614671232767181641926619691979588432163865574541078635388355247496969089123548011530531931774733836159745908368421346075351425039509353717774166365206782096131692782249396909955028089007433191330872331887020318178156010019480949988239160877361220453573163785544253951481482821029897981270818808129512081155620535410658026468189860995019249968399183225927576468408347486250156976418251697399925131765246435660137146482468085745619201723495812369762024683079979623799502742444396011488379597073677932013896895096683030297925644186945526650578845899002052709613030773644634162211892494667455074286956427439236252361674510280115248567151179934282819251902634286860554060296770231470320485956243663125202720348606405478821933303195239457984753918679586122103465897634120862876808112227153351532594192976330710408865952708199578064736738053998369837290605948597978377455203005807003493675266023924828232563148531367226425014406720510831264789773721602382955770028655914072220243243561041701860176346512474538126254000259569347740898873286238234671575680949555751920405377572829977277504889712083713632011572908364818794818492313002607376962183626764760985604775798931371205055877230837923596238398830375946313457490582058160274154214507390435471739177619483092558311988326831010572036205955900739066839859909050519833322092982741525530530338179892400524398603393742286869201563532911827001239647886694551718690221494249763170895957523799784830615402314813259254973456357574034750160876849620767726656808961343319004694682032598965471730154351129180327789712387025490039168773477213612190045724002723399776964550485554288529991835927389283217173183373736707467310315891513421425541318969860190789279592580368621689580644397223655953395871229639557159447714432569391653356611264014546280227892502831734671187565951175415374528688936227942917481645602217716070197427814383783209387473435815284380109182629669664168829738393478110135220568133488585790732775182702432902192547783810385491248841124686455646115872309579938762951091733808039914731094817294049961231689104254997166289325708882073886644998531364214738312103429848312709744315969063257802183254318995847410570031657997236320302722391990766419821994670335778072287010929630319731852506513229789245452490537462133275923890979300272160700503092202585530717378081202727198536037427814091652303619790329524234809616459008159605728113358896953040339760991516319304995477956038408557096844310406496484385071693846212765076880646234208068198666305889258136579870390919143006303133987768934432561807234317775791142404763234889847532744867700870607493130468444570050669940776904511759169326755392440123856842622059366679354442856426895504486302675472101396683899441001511753546377030216899259623713259151203470067344663796903467072416808322585423447791172692933006111089726424983481727026751958071095955194005393799674176817904285516866321498054969272118553348291378539958622919454250693050048791286441862496553119128267976054715290395912247074787153336600195329441463062087222990296731551854061745347910363598104334119565123916527768904710061606815590611508862387880286092368788089643712715304022236523230468581135920611552216388425757878383661987392500526556739605195772438355575226444251916568940728399476358061418581170697073580738370449082503827026321661653976053064960153456772810395700400477003603748851136063468358589545161725279265127472461648530460237772914751063263000777676856381786457425469848317810280992023286755411053831184442326455928391984591865874389975141010365941260599344928092259116484383161017537941592245731172845244562484014313533118688027933309851834777132147792017118026905746284765177499697000183108791250666055979815438006359731690452790934189763502773861858328317961700324520799420457295448130664453699782429502772170885068289282453106587800761387805970357071444734337305112551802433036123269042685244546135541806206165844433333278649741922539429258034495930269182835871586370446116634448448136469674470074880095435726213938494623054650755331757255965937956380134697359391579409221268600640183569501340623114925970958579840492573089302803210227277674250872807654647923057889845575737158974563101765085357535731811827240956715829553520440427776777596930228111148454675259820253497010335093571462451205676773429464099525114000475469633198079355130424955237102559010512889599714048301919612913524850804537231224852936815904300707281457174865410300379009987218919145483683255875570101083364848610565467102268537478552476092384244955351296096004493010166218186725285922380329773797502685464804346240384552318844889479609725235165979338691670512485255307984548488638560656387800675874138476837541432729274633252497772091241384184724243047634894262195969765965556323140018844490402189758808528966941107542844678620823236178905607391491072687417933576988609195814760147032018152648753979435424464227294133179385798644533830992691432046569350831218329657224112237907493946058388635365689179154241513680585176028987986098261244923324097034846922514009881800097135908917943458785997118178491579781801425295592624955168980597143015631995120252618441006583907226899772319478230464994287873079199124709229193414091061140146409813037994903813801829209739505481254946063878361456132518323938879680187606329828796929233880046472279668240778228935572198084283994432688359765375935313590129771564948392994159339552596000135023294054616813211557460431047705436920291407591034548948261248986044530788861962071162228805322477540724218853504456506047170960742883678184499459789730020803499392736631418230777587572746492294485300103015235745400887942459668160973301533418209059566461929478178709137569030375561057286590705758491511409785952284676234203146126802327386395576469078999742020695056792576875961352167126772023807663909408316743698080212152473229300281295665292945214813373749041738581171750524504110926482063574513988052685664360759867590266562440306621462627993345536162516543311017095733410783929078049172179952297160193726927322886250240843276957570155415980346292202532445284678362575568651157775903273160548641003715505894885953359659721199689829020111206615641494805659171287927655126090305299689343999074422456834850791403140994317314111754135812262173363397772308203778062029765315651580639160473506990691725936899190813538668760206684217401410601084155051528013099144041227497060764439355964794593914706527514127208133410460452932361570051566158656971368009464643885771373067090436421632905357886055925251422191722256428562800798825434303840181589420139000086026203260395122509939244414499026173967674071474879487654336783191845276509882779690626347240156048184804672465777136663875168318613179971142817963127245318956762544419534489252608436512507803818917156739346369948570616224181780435130291368427992880481938062093823808916649819105391671450456805062872783264640974324372226121162483353587161117782501243718094017416129306276296159468372357137716178334699380552372044559746120179097931042249444114750889167012689844379186231172849444670853401664432937152898884029769458265514538551613486458694251726711577541197271359368840388102205720743968887374092177118965413773581491193882124266235076586180913936325020942987417291225415328274557714650591955493453874943256065752362100688694042292537252592655137686590021776561023945965725511058498290695369850792219641935278043328458971471096986724160191038513074153653038555118667360749182263187601263837258993898014417966317225043797415938483749017495949611732274642026945747482414638498385491299506739936771842694615125062445895377209587223633505584781957852996048368736410405836784503969568865797572131561220279995692150832984629597845806420939604200088237567027690444907741929659535992300658833662476680684359854158116443355323722611573595006686602855207102941746743108192113038788862652863028439774846540834840206067140412221848244353257574444457077020440615980988752359545725763736480823980667788131946040052297235208747375962923536079904490859945184067854551564331471515325087403996429952744803694423514713959696608933654720102957182423041437812882783298042150744474333831045610796817686162517202295103185216688507357146292954862945512541564475958313718805021849525793493418889864119711688248130231002452592903475324170393731731118788310998897231633420128055003962051852152037639110262161566913077422900814808028897887696184315327505989810158433246683621227155372834538367558561560395967034357509711646346560144114410761546240096477389227549395611099844380941883924574756167100302016327641369292963067777738004495131839619850978750025949584282640013204297098751762269422026650848540080069376438686416188271322345382859811592183182902890556277232888279437897410150224542121326993192073567670185950458015864364949765053875395908648520255124182095678380643515950786972887518457744857312437487669796505109876132585871288873782899493401865262532232348393018851875690165431850330885898237590075956881297692977770542496590648282665962444957468952517548341140546346006827446383190484730185961289228206373693965192151141881678337567703805312401478253207071051212497276138001867956679835605758345708687150951084140499792225217467669070802084567682801858464567265391683993286240636294522758170402727131929917343658154168382579505392123227027585401419978789597979972225578444341756948874483538807334863488705537954403675750609711117013351665758599275607602379793137677568391148067063225923266643177612745224673275604485150018612757320362804479392592852276281675080848098235828056486627919995939827757155825843387400741834673177463123777892315181353709813098551340023787666049412493390856903341592461340353397661122086066570440887816858974137100071777263547027029470414799481789406505201410305600227787876961721846669848477293200184698332768392644647829531689076026106526129438729523357727416434032343717433116445608575207792466755541404001909473888428608952985522488971192981638795789821511798282977724303486535487063260396731379912815442713165747581147268587945541618005342457078838651365678660535629228135852404023435617504631512531234546481222383536567439303646202656982247163007763348833258850418232811637170288457427861684270732725142841823171950183243311054737479651020065339570956827951569251332522574580885616240577750263525607564487650707118946392064162324641051683055229698256623645888573750542719201787764193025833438601635166950033166729650031974168556105493400786204739049607333998503219730936708967456385721229028195153182348472796974846115819743443084219857535980541855629492586403993537290014595956913299448023429810337797063997981338275888128696062803053544042452893568157490804764888413363477965867897529322266335797829841724546264757677518936893535855729419781810379857260282817223957593168900902000598251654884474766829449270572805402799806338210714761880990121679793026668812249899764851601257082806651099445757240123045386151820938929367256493742034735449693856754619296712432852039859201655093472358014246088782067791457319891571360743167268886292992936371045865562297740690547358996922812229744989288245542161824786199990714921333957831311577299666397047863187545883326571609859301734702427505765845461197384861824271062349210308361690130536637091657402354268766089621840750485012226007577126844622962464232121676167811564741969169046754791628226427839550792403678770960505729259033103310172673959767074674486757245587431149113517469110075955720063006704434450775913504852822679949434462073035347470313140204372998771402055702664302994176368507241607270812420057446464282756373421024823106082227679812410943427906822973879539339740332615483343414427863415287286664463866549197033888942307289811860613623898358037866782535021426788922145204908167564756869730119414941122956759506448798941333458171769823453800254720152726804270231541863207957836568923354857587758051670156799301463628230627419673504031531731877240469606091159714991058920153710165508771749001021863906073007075047179387774354457557243825104471997470416106377776999089886210941820093911869950813104153452138745663216106155892296257815965883959612982860896629237233704998580545323042000979020708061248571522852329821034639657305536273568831001770970012747350853226917117617661226645071058772467909175778547610514706821018907934162482286256639599664452891185894568450221421869081301648687645493782372317907261193991767989448839581659564123785267111395178162680969776259196071441630789398085438046073723021689465368175565348418024585118751651879058923549932913456472474138613977547130330582992496311440906097859088408839223983619299444188063952646327379692964213872454231739964118255264625713445711461910739905640899045020668985906378970053841325955898050491210665767067458995381832604725926452821033320056233429067744516589964903724664331850489665406867450291842858962270300014418631226668421518913288148733633076693886843536544442498462178992203012649664383861587260543662616729817201797312343776363856551773894928001180518581122981099573738421169563005332846400158519066752164379952746748030200302084612867706876983832984083308158635703424372897753246908839490473167620629574319784088604297966045427850784787452030680939584130039836088433528768116061241066410975778677249985113492010091848524622319630173052053752036119766193439933769432778289808782745154749404638648300119430533594609249789907983047350325782951456640439097753629732555130304442017149964806789999208939368420511490910847603681759543897849410574348994107047212119953078717091631716660249637589737363942571638167548496983523674892686098692944871904562924261454689755217131782735695971149285782266759524038086496925902069397261074003193270380942918456084072153652607490423264318266877276485582103700126235670941253445225357461847894878202318014602181865805508590442688808664917222190647939791267527514248904633818903027835672971329387566833878758968745168052923463533893389099183497356264843319385895590136402236985929201485838667824058795303942502069290993641055828837952056466660491652648762578347181874536917641867970535852324755626122158764893864366000787168947199569129116994949923236331553466470624091928590003012243095081916373870272029102272111705846296419387521390755980877920172776103537901779955166564321855607704073770446682255503730036219213941034344512560517047987449677910245953434380256838349332217248537498807369474395661457501106264163625077603290913381740297915175335444507348174207473317496446813615861639032240256858814260983283417194312879533701154329970703903460049026263381511424612642366039679458563531520470020569568435320611507028521144724061492333029673946610687715807452745073858733383336478351108754499960357677196727874130190445570179287345103233476330154045402850650451835962578245728596631535850553173651189632906848605226302301802755284643142328007116254649853836740602875630388955194312550815010105994184406829577968918831075658097097561526875991242703196597252103143673473266370861083503296854836389819426288314382353314310059072267478235109502513204711420521614233031673243965718491459221618669077262306833899597882412955809883185113693128602804668048717428905690952937625271051639418051485086891263609859632677119184395184848485379175050160875922046536047053247201735188215814108322758058837263021933838966108497488703690686330349845912750489802943584878361321719933977359533019242735235158317673445756910763795877017045608778423845296644790575963417950059268848687064767901958757622272122315116419505488030785504497943721826451722093786269724176966880774094277504153325480329115972303721025898647695028994521435034394601971755405167260543560596491835687008697974499058182490969431870684818987684532504192782843322624124020258486850838201019322714835106078185744153679295352373530359075472580059846816342248422294738801712961711167439787104006047008305761149500584198067892904637198776443237036192360882517626942841464912387618024645525964960712011704554552660688548363785882087588444565956896287994347994256916875717418367853985226076347165504853108900251778581994861739526048884095873834226961259207505925132190145819656496794201351045379309030188614042904152856802004998619670704496602819236107859717164678068246593299712027282760688565870603021574913384391756852629935759996414595641613846547021225516813560811248334579375595753218366664168565419508335059204552428238823773703312160122453083041680815286410349312740793166633869696331770964861701068416373120872063285410166791512150281884678511888013024554107883723621507276818969863815184609600706924012297999638726964405223267436275103654883858703998421073279066741798159579918859283058312049221488439709711821401854713230055439037814697708651218420330677904044294204033166358306401276287041859710780947571992324057967824997244676698842409246345467852150084409381100917383304045009716605806726083216910870795406233825156895161555697839198704339633574748500210645086932965171609720719849135343638791077899282678258762511084732365992300282199565438487287355265235893684517263647886663577793901926551822233861161289422225145711724402106087116717186337430798326009777775136818925766608222330786369887411577789690988561842437498025047165352882949846871025269260199325281675968287126660998375072493132557768651535966625934879672331939118275900258333355564306267923920924030997211334996717006013637777916859578646563594469519835930097131143174601838416132623923882861301130450664600632801830693457394217297281842382230957269349239470901282356212187639726397747779047957381046788154719838928395701572148583447134575783549337915198234973032842984072167005506860445231419086136698628290307036869798379930633434989150105068892385820328024965553300680642027599488283514567730615186959832570339244274297266599681660519515817811638844116718166336523521574271866465155841587496618208475899567353717879399527422448874683446705846407210336057762691593077726826499470872242241818641009540551365877881907306657948414511110127753794848343515251013115822662766196962393323807259010096016682398210235109456297530468467669755081145346567781319727804794901980763114390692590463215720654208526526644983333546415592600987295076832313410809375095892549353837656269167079121331788714640047314276076088477835100513125031082150004786495012873931974685069396554308831139616195743506718336221838904324820244745598075560701850026053454411765759064219864169165129321916804437245002728012631382947712838329336867232716197229815178448417644079395580128607331855525716344890542563537083664288139395203385738432825698878783016914955469390022203858338879835057049607180639395960089588263409908401311359955339577899881198297951126766585566782199392406582560110997484851670064794560451576490869662384135626013533834303358690115957857357369324599732710156173029172548022674793464878170697001963858456695241588538823756622412922853004669481094171247033049033203372905815170128655421592364431693680496868054531789179640799560979929384303833637372094330234947509975026542765134100139018673285723031498750687890462540034507564198684458504040865097772764457135521173791718783904464541595004339711693134343584301255910894335275893959628856177197451893427547175624403553416487696697113491721890941216307365980648542017382718001431577865683097499403543863212313271946657575435682990845521617001320297729719977688453085015229211010651860549070650752475906145328026194593131394646271244302927538516881738285256300051726130534883755627075310174597335935859927217788267574457523828604632539393344422358601692289525417625414916080646632307849325650244427674994015859627419303002715078420452190817979854361662383765117342372650828604731434805769730436715020060928067131133546078727148900741536791824914960231028516592437107397732853632917805404060208488019639172562234829534199473467093880423777291165164890717450710843749966286592631340919120572839469841164531540812440930585058061065009199895559422577758657817795147993559586963945282140871079097511530793485918244944118655749953307956496922884512167522855498791401355688040618371941328282187145578144193633425032387422574103414293161875107767948726244478477712728312206371556184623791532119151286709571726656766991859493832291799652810441076882802559308869076236512847927323979067229048832255179281064954194545755215771370624611866998197284496031565071362231754937347816197134300943988113066499086104473077227882058807990636064256599585889133224602685778539450532931699288594882881552175640542536175680351959118738866065358588273352418155119798145771597607890685576014955955642345103945259994675733293762315554873499980219205066832355918037726083553793532644594787148545563718885380291602753351074552600865785292924291243541400613318742857158310880222020142781552801068861829991237380575244431560824732589976338670904224455712889550977442465591768177237258359908048636474477397519432273456962875475493253226071115511318340953830887871364715831493806384623959046686476486168881140307546459679964000787855210929387616185371673070516488165206825072127261065789084127598199583050262546484039323781284540442057977916730953288919155324787205609015173134408994386311895131082337218162422075001890614053000922808484643122181573671526148195265923321120216633952229809431701752038909448099649021946931069236614902487140240584338111025407510647131649783882932021412989576923565098484826212418347918282176476761848422841237002979202743455749798353069436221207947286088812819939851933461183209898458624855968275040396391123071792022675803772817616138194276043680827312118096469029031406121348600563851503936146457161083508735868329559766733122191394022478176296576407736935037395030688124676574220627025047782209569532382230934944929871089172074351919895164066675312283017840422978631458173699599524474088653045193086925887317987016501441586872875184396561184887785115513273954930572492350752106505678164679089243041429688604549451931445530361029826593445294029906383827475909802026011675227320812436136912354005739073331940577036613883825987063243518142967724599607920189850043857685249653844067617769386179612435022866135445006483321306417169044683588264442525157945254693303361629798405773544438160633929476151981527095994991550832614798906061528990961563211493142410335460263805048644866912341590033460698430907210097517078313774929659631915725927048315731077521416575651358305534355993350920549397476383199079099438701875793059013822602072633689976179356411207924810382999287697763226338493127980575349687344770711346211167366688641572321229816891303201475770772817319882487510518877230835313606392485055658042911575034992303584811176547746799966889724680843459577054094071483092128687346974671281238893321887616988284502499985773911270656419665413173592992225249006880320110602940937398940962819003628913772686357632474620479568241842767678394621870622441023320105519654090215464740178035377250155686780500548411241034281597012025712373598088836498115820262892985939050197110448280708180550152285168916647511768843381007546114839568151854567495259170970554714866822021352809762604671170874650073641841096980362451490001032638683163195909077639445936154982008643606182357144346289646979158924528124857215106771876187146369565197994303562144276782129360380157287211223928404564968026031863715062762069993581198245313036905961847115183407626584727879989903437008519112537857573341026330999338723527759074228522404283714418237133994664709461643821342542542012648743148604539567526822469380402216854659046962282948570590282623185276786805775199066567426362691772408022511751057725517118899661527367971791034937555387451284061508359199136949588534961217238734075882829059525814864059356234168040936111056384229262533278404073482895263079086212396333488904118737439865001108799258999288691036461155461807950360805197068099311937855418859630680976258516081833284867240017398242895311954664117523375540908536476990020336489935031014457391324520463404770248821566669845152123917373736422256398791709158457008568194681637353995543220289822660419819047777375818156025936801837512510382375719703132267201247761396330877970924531413132153679729995258415512737028653375220240224927566424501273185642373728801519018987653554034367598218766442241476931489251821228734439273507201990703751669739739967757293501658057884634083325094547622048895661930385777110301054496901291968961030587439888001861504023525365009711578352330168132240821297288463063291704628882690238811134128401665870909298852663003977729353223973306005390504523932820773865744711303023321304713512106743692778061396096928247302294518399842927826313511829747905947903516500481087419625491771803846456927730008528019865594559755870006747246459368596611428485570870627087353905392459649169460185036140631439342854691452828014752771595410716151562709298397333389100743097045571565119163987698380056136449092854197350350914536622882140408779234601139647957474380442035547613551530493749187048450826373152507097806040764640813251540684167053214752637908648739083485443433049340468216433359180492576034518928406392795597564136245296018307936354431561754767957560434413049020847379944402795451889093582015964071858292974952307681814762007528312239093809618178676619267513225794484011550516210257630724667117351461289360464493013890592899691099351272736330910884655520819284652229253726629719796018127257519877553552204708632037937479453150496644750390708285523160038037594943390155029664197580842171308416360096721133452940847657363141431528628585371702197561075638288785669652330680107527254360266586561882093582733136445948394404993425822017693389399071591453659329485436200212388217002472057224637127004632510024257125638449490043144652375754976906368619696381909588536362410510006671473079645277253225901346286617628601502072411416479212234553320258391436638296829450773029454468559440586369383635581500982046507387975390239993980435584763441153804710094521757126413852471076776337493668873329431911663907760076163024184205547248997295439658513285446374962728052296218594549622106121111738981206499233942676516779968229548706938040770031814056228708383790486583081722844984966875878005060512813439580523667838991975881531770656779369499546784111549911130833550950653570331701068551189571210045522427023335855878277316040210963822265173136366596105572635920209446828277586868314215088870579582663234730726263222134528591994866296463921004627405643140454627400402704125732661830526944982823953732171492826715365084928147096638955395121323727048953045930523357694978415634368624632238236275107252274826586902868030319024389258568153693463995764770996481531912807581837605009120277127220313499737085082551665387439585150368990686293783790678297602679349289962644289788725959150474134804024762390393174754125737237602496894337457965085850375505955514969999422245709972331448876935871524391158573943789922626966950394975986790807478816330280302345534429032973709979651311390418016117373431742082701026786281325491570239070558274302836782710345462957875294190605122025877349997911159367823382742217871154904533900222170149697101165185861733738751682910948503762144866390403841632360680060562478473127230642320443975755853677019848761933400401505039862223094758332319778264507591027611331756160906712858104748670976889286246520385578155024180481273914241835633197013262139641869825738972235320373999633155611047420203655529909138819691684269399875841354511474707952769833515238931387777912753620724846112763422424071673946380713949974667854867459482184836114811534057311632880412621149225405398267633109450813060494315944012000692357994748301549025507186764155115512221252269800859659159798096735993382983601862424442443271224408140016085920074747720560523610546434492368828817931062952917821028360250130774615555155633006044301233777631791043368960050499892511401252929869706574210880807688769338893302268568023005056605729256895136393014076250330195428079292201926802089883377171930289217478293361644658800229848230644857557299581338978793809225412732197498870094408819346895553792452860329453785077372839858819719826738811097204773895337326863479786837203850729367054498793844383893185667670292690817269712083643635557000312271917328905465872046675006637489541869220803527340341251662428388991401946685669733117969913805160426779966772327383259954699600522506409778970798546168983056188662905803115995174042189795460050662799328305221637765836376677753326699147903823605592883604886600500884387419713526790360890628843739587947023761637163170383988083675551210783255303196349157158007308832157380844506199447122226569368044007436112729057892751285509648981193826192432676094504823826434421655467135980864888551552560658702091918866885132650322290184739547692754490455549933436917102654843162421313577392791486428488497763611540887284356270986804135179844438856701280656838923294359909104991334404142674243824335910206358852867868666887409380412271140749854456557233263664175438176964322660149892216370920554717945717247520867421588559527883334280456585273331350186865760768436071439938179026080056934005289757974657292444903880473450271080569562136921086479466961015199126002366942222167077934176372240612873812153361509579172290933793390319159103346836236422853060102962821205557008605392847836471925991566062054446751013972206943617799057772880130723636401854718329061163093068976530899847757729504157319575331654967611008791386402798619664373031323398969044425977119417339548785449656463588706799310383821423627861198106764882169670869193987196387121152549160869111874959034016245292485687561927455833519821759693300835148944819366317889977885872845526552963248040122587733192846898945816250847625568140745323585831535974389653881158631239522151221102999731780233146492750802227400273699892281959353014733300359382957104109526405075818842439194442509792069535691402033985181002719660649010632389381881452583785242863260240526103463650790329705399643987537506892991719109132794728298691207005639073251997564620205351672308819311293076685840924401080718688790752245016672327855609789180939063023845306792603115113206166588484115052287455323467207996138749480453526756920165211954217815519074609867241683308027192149540123440714728878147795782296440212667069487537188858360929265956506275917337242900838640934425322317234386181968519124514746713586298516247449910760492453590473999131369333066275767774200287827797846002257356320652424054442826880793657400996031668125229977535883429567685036153780220983730870371449526908690034070043344173343867972085727100605484518157786808952917173803579135684880958219914044172737661980829652384928467857375394451722089439587752954429088664295261466566452378001162205837640085856987590171695682378233319408704501664063566274513368792204358368281031136861261327962045081050999230117516978875314911107078539476039254743134066298431630251550426275960969777573029765477923810195804193241864342570940887430773803004361046984534736218082643773593829092735075976727247455696863076056559279684951511420476659291167690669516734070524268582403377987503917669971402238147327554831825898929804516453607747169646624206864400947991117535508410935623259531186654773341927249180031145354238101792936445528438220397168050743428364582836241911781308100938668776740485753107335705771489083674034758836132220086380267203004297725421291364297844762922250360665929947689260359964585211069477270842992941520933136715649262801882028961486327018725661236670506088810432803987189941604983613913827361591158819982748198601311671893936914029849806470195978892461282710450586334464691227877568574152509875565020682930992429086555459994655411737817066038826596226873151702068407970858012471889361932085819984297874274636408375511369028994050912147197013736251913607877317314569785168527145651849675740213267722524712407162608891729352974201624020566094648555806608091233468184712622444719059953063848244906331073876159074354097789466878244182500309139896146010044832784397430020644010591224119286015282499364350673449291285500086978707914122215377914063133021447235819414324523030145283803884944669994989082005151116300602679500589424959648851842611930805297665567334285341757685215164263490634862086846946037331816318785858581234218039883157552434909540777601595191425730322346504414583624010099127745879874425950905761226303566799124589962033371755629610251851790314985066341830550326367804301865674255832377610480345412272166448728360059274603332231511518689259261477594653694064537195240827707610401570932192929240874114269861844304932848081519449645792397704542768142596636290629039105653919935193461632713920375556456401914348787762271129511022334809921887117643635695301475185656908814512674612030671857924756448627290705394129395031717097297103688369233200639484779825103415656982856034818367614929712592660222244897272421162113413657861660925724244895129153956408957490656770745519590727227986667993051289567244173218602723107478217192868447530909537748638962430878835619545398742016084297831488748639704877994470886791071613111390211700606236019327029888303260695237802854469199748526875805799009571222019209206935451449577772888476234683956459829916974326716382530733449068962772752966201113976990689687636204264880391471281048131591295068670442663924712031543277655318129839264959107472786696064397362707774258068559125554861060661244559134237086445855832926529344799332929454826828517835572145308839522811239103299132650099426349770295950131262991332661509312927941887317660020286463589257876974540650754945218800873559461234292830387474158041578007975420770959003061210299362256537573826924406034441287442424689585876781048006479275161320856582613771332908351913190826643159611480739925464114632350815592658877048381147416333464815078770716971032453106451162747586485091179337324112577502032196648010517177169980520346891097589660733336998941644117622175961800558013675417308403688800732495351162307997948582479442706887478723463899575396015355917336996715065213103375800939221658264402129590935057733413214239652205554625038415467867599273453890247988332173677685706383119599743939269964286956908847002898931881071567000046726168321972049592166611853547281305915474699701910259931091605348350345054080589436518001776806644162636078358152164503187361520129747538504931871558644666891542003700170216656640617532195422129011407038791990765128406343070542064976942357257716825172286635937438386432754671812883199952484995025194237554057557365168600237599503811748744395018204939642612243035008195351420250600081218794445842333195575158052695962629696563204601218527151410546153286978325443935322511379176032213294714206879642533423956686827651804182192781031118971586192055818603377710287349726935895132411983955134000604867933428598607779521691167706892938344445679502376394395032433353932030349360062962579979382826538900122371500703178937142663740135009926430309153332125984758894716073183728863858327278801820402618977617204409929827779341885486338995049109676395921613104067867291102208846920587277976731525024019983295553255460507581262803433622767825638262144567148149676468155152754391718550867202498621060617697409442364184368229509348513882872143922310396980100509160010203456982381288944386074078766209932775462817077762213749774249152591436357608201792490529999415090816940065907888316333625328101019735210986593371903884155044907861237431190055583390030792831861471749758719853505650743588731377225418111384985347947443491608162544680193091575034367175654968568887955018960593173020478116084450184250308452831643422980322009337016648942557766588383595634815510794740661163234296825014658911660633331852492727801681062280484686171216901373431858534455904580517786754796775939360338390784336484637900190981053971055368975979846241218517042728283965299608928654387848705457686125323681647737456821737892490095093447602205965178322713187160637887514021118178034904044272779792302327621712445637293367167820500805684185525549623016933413392812684036809138017778519813323914606693566796333841022846003589837680014643376187471673387682227735486196605396911549899806869989315495152343424508148775415986000993702526809300064239439334578218242553888011566478089597635471155635009753759728635222366667182036463694175555554151052122183185094646205719132061073854419140945561450666341791884322677309209895384480486770806582246432561964312016628527466582248803136456607132210669944736687769976739234954783106545646171554549658505756117614855448356622923274868263168630397676591615042422895003713931311704711117104786811286528181180378682069042909117103272736028399604444363194377959747011174821000803087867811264212403227238117936051523041520694469517824399082056454091302885679688549246170955308858380806376187315651543924991767748993251458520159960012194169482151482138805401533167537120683325327604750725569470763477736027107630140906069144276993259627346975961313114488979391260054808223289478153642958423652255351387747299121010255204147091340244319356802075939315406714703532233047264298126882858972284514039829615454498918723638838863229543864989601670021390671469151301960661555602724580941221796314310308935639338999406423042622121711316832080164415022370586790517369024379498738328312301113979665934353370195900393492121296544863012809821007180464156508783027752120613024548775997018655343383613788519767367579654550973757619475639470701252205236652087837398420697931491493443788430361675554882240129560638872775235140212049473763767927345888697980366201273104483726206360492383587832103143727354289862532160873519085422166166746199757901195759199232816488050806013796635732971059287434623022926026403203326087700207460066553712561943342809080770426368087993137200097792064488002021220743273951940009767658732772013580285134496085155758860411685437619928974983109966164473351188744600054493538919262014928090074458828856806467567024449369370904377575387366004513709791756009579002296285516180809721177747020845262010009030841690156174471334759805486686050274628156880874314729026252810351408078947008695024381174308818873228288388464805892200670747399015268311788450307849723381301413045069820670758627360927996710607920637015831743187619459806939158446244628861928867521981661094905857692074932724139768361891855123389838180537636462515371229523140057441891982195423493296109705551885879824543050288518558329466334016111928580058147666908817105077085890230367164875708360861556558019478934248414701892177021133189863089741410789805824451305772920995351263463945389927301558694503934825663807872482883626769279941629658955906347251286488584806681682508436243302148344776127526963106470988232895787616499375523028636032273263406574717233012596738483107119881614542617507962331061101169169025305392357429398432916631475240473062856089944603382138977541210570172349944151449061360880606397588219022657671945822709830008655019654140513734783467330312360911151378852554178420609859449081228801817423401862427226475445347934178176752752466833419646992261172291431556938465305568306931692383370320022176784417236114870368539498545334401684510122760868270078785581348079675697484639233840030675259883207091189253456641561905186725586580945199260421169456204078745262573050114972094934257609877145036216603999424870590434850834680662114194327919712012070952609925378908840860181980326057744463019835163700487685059959229963436009804487774724974538410207014862044772213526418192220039717968736343628193132813289381002027960559656157924947474502018703046698548546232100736493155323602087509194685565790456747885144609315673234588429432821728496024134323278888296991450559327160543880128846429993125000873176504895170967123193232167515748229252312033104051034715175882181559396521234321981174358794995006497812051856832823422122724192166320173478143708234883235038724234041571903984367097237944354500367348954307518814553819987156183575195433419541572818902978488160714291003961116534298006487860983503524683928491140415250514874071359537945055213254229918071130197345389997544891723090587118913039358971308946256147467756072963610983909618772746195841284186908368373893001025412211766556397619683910273870722834265823219995906991236575054715697886717873694013114003126351170018768395435474524449800582616161443340988288938180522924573453989044552471633072744420496040585534929076200323128858957821941005247972822261279338193241575611438751844214333462289493131324507721555184150952235790975651203764955701269986227879948128008411340200716029328084561371718404902402226218240100931671262451663645978917845852369172724710917681961570685347912780007935218195389825486656958907844272763851601394917108346895322755174283579209136896787372907316424760113536219908830139321475719458947498058100092212131446352165838152023600543528587666701488032673467463628339602826537644777146383477480925352983986844581390905290744897678966760660742812006886441831574364651058437140653512502535746827944267687102770560797897066196934877480989212657578426672998711457447625182147608083379773991970100796793112578686014814096517714927155682526156547013849855764743458860390283597389242323669123284572864223849813451226970424654954270843452617309371571624921103559356470730566745623997079475698542276735141699571686704899907489436895374051838620165453693286601892553851062113075642147209518524605540292948334080796594603687931043669476485627804045734884314783352965445748874899848266794344195330017467824709746659108967809807295121464336514612314515197431962949046731711626186604272252162958480139053846220211769645322076530454247412171686923117838129397342682607379008519333915585187520632488891032212651695450142491295976309988082209718819092213974267686637226646874366750543689442437401963682247890777555218262378652031097355921264147535225335646886000700097108410716791255690619507157215728691503507620220664741151504859788124960763666889116571579657869877160285334507750029490743422880981691405608803256139906638772939815251815195115199336107235608224690764300598781313263246600472799930746085221980949638433817627922199780419019101049605523886914616749930726969710749927533247321975669477504025491357940610299581169259719474303658793298453171516770699988560271291687876311688394870440742690018791453040522329647071090732251624711497319139081573561887602867218145116246611892751803576592597446244246769752472477063283040878390839112579993635546864522816025747837814806652573831346263488410624374830128000420727160953570626621604684036658240391103297399493707333265731124749974105118287787188187387482840908620669394348900104599124859598833796865179743352629282402461879833392954767227570846287837448703234683147296133194946910352676517277298223471168258123393427926560062760014046804086499622027218353123064813335513912181818561646017230453579432713110675171052918990400843552111200331795497430671589038638808691617883977990833514631471344642319048146416807498393691812500369136553126746136919060145894313859614110023191660473986160744556330379468090018572992074543189779384701426154721597076857656185222631572542327487352312419485744797712600310549209128184918520323197541926929688306483864531187168464853837442796363939194187839350767054139204134401336494617099852239899600682737211074170867007216080070193335953824394536440493539222037451892787020330637583609190894680833217874572419165500675186506111147562000815373161506835137554194267940986986735180646603067463507235049295130462519853734237959124891296373693923862259060467387631320451968979537030002367370725756682955218365654444255349827330409908339929519692044771899075450191431391912633202464125341378607108231420183014506759667857875827669055694568150416031478052834084521354113499704697028694511971622355440474760543270340322010982699895221047977225354662323768341677063632045491152777299124438298505275515620092269629683156663494045480913774050584158459712373812438767097002485848322670303621430835431704879411080445805139345014104200763459894878662484610562801574586610221527109053486744195188381075060495813784684799494506275199667326360062036187757961313963359217048273210336930736905945894609261338026982991182760037553455196071253580864293797544385647294714590944294173221882115785546769870526423567209341513307517795889640442345270429973808360349085426685039558436443570942387800917794183554101607643225729098014708358023247839649981620921693794206079508020910968721437000638488375065809138134739165311526112906889730067638992577188366798550218014015859421751691487016783789508510081707340292467992402205969782525466305932909131151844290475210870363115938087450305149258156130709094598212538246931671831731245487105279773300263076521723210230373754964033252518371712337549530447384744861781566358052300905189146130368659096041459228730374570858545235409961853238123379880062977220179911637456937589908595112760044449778982359908475422248999100311401836503933329094169834561337182397243710374522383909566109121608869233075985843281346584995256555527030751890536872636446648433924528885601871783001313788180194416288879625249312346241531116879621460016828365052266349011815226996150509397157680128094743858282291212003603816952442104865804822472327547195397469429746541288465331346898569661125349834240135659641345602880056639983620530333574692714034184045731178728256675733334383623768032510316262565478886890345981517858958565830501142348821507843470648453400799724048719634866735693861215581837790348379724331932234179646430038911322061052181399256883048721588686115176854089280648230659724300945596552079291837620246504946317570968539770745324935402429598786367739448073154214058034535882662429592379716516875420591595761693202151654033425523067402937250655445206843088990265994517467781035736752380627079354026633331578994870366258722684611177065613222721201562335140260161502898123891548811736125747749592788784449113055835328278991682715422733103966000757278091779258430832130253166971236761915157316423451639732612392448403296899799439848579850549803654576202395440521785692276307209755044329084737635252586407417289551847652994972835082435093056786989578264244590812405192085059243044839360075643105071828604336534641922598312387317115644996252720540233267833892921116841284804447162266972420952976705103013546468249730788300314645255466569271189810901245968989945551518769837307501120245069496697660374006017682959159570372964535549320506389468017929517666474912568980053594111968750847238470061338235223453469958358324914623875457590082500553058101744635122699650630760810989757632026407441334705303284235685359054496836011993213588691762072384795440456505424940655737838529033104396434471185397854600886482170993708769279637937545078986606818840404926447699121590922442023285611959165199134969320172545699462438065894097829593999553202009141960617589664531790770987336070707048881682554922849371801075871071595964455196454388381086753513192061686284344629364614901009169733437537048747783947588512978431749937632395978379189097144699774663373749468994292554734393735685897895273435005514677382565722856317902501052125725788477307646121313497524458652028945025257877288577427692566527935813113078914574107597271838827907203879679257607616724504965412122234056882050606475224499810951461161866493205836494588800804772745577808979342380068593139429824070450167975352246623315728708931989138811240597045751266407286859723584814324406302531548535739399660366789206190951952055613472000020456922759819855447591639791886726086079269618241286284366331515489058624747893042110369106550176156781636447374338918206077885150024943928587117025021365471125228726557814159147274458927851550921106887722919117687620152801292194517212398853677365973072920216732931419643730642832746750323473769871553954502833506217429377032534668207344178921629363417370067246826978755763976100518391381851202116865370209688556676140795308536834558194771697352476906989786413627482991594336744266107192635419566205930040392132933611975837628492441875569598895124070752095127293230987866227222599238863680586675426036405755669780285779303807845429285398690979620777479815201542871390475543945660372131418429633401144422107462917487647680998290551756138393682396654359135632440782504217200988499946719318760219207243919011037915633756640137450004721161650151060999421377263950239404985492246725188536060421939644829059713218761448050983439960222450730732095284572720063719736176716160120997216779824249926311831768702909689862034759809187728482008299017398333034145731041456147005403100625025207007342648462866377752399217092280243882203522868400120305235530903770821742724774049162491211945513384906808422269799437082722040313777044424583619852758164535853564169537337930418561384651393762217836637403715208432198285336521563466767609553717703628571483466696590657767214951128868216883696217081753024672442225278240353266369965971170986272332852684713885239164810378753168422243138080574639017305164172437054486473148205178656353143574033835308671847691909156137682587532844043707042838656698822050520400841462201929424077416599100760945708162059047713302528836273956340443487868292485000345914805594425505890131893505913737990216646617117971021608757099775153414081521646799925000465965965437131870018713546766835243883201371239303651444186680937509356698338719376065243587515830618816906031378858389005464642446524953304330250385801147331807479091187329331483504234881099434994075456154855611733239052527433324484877432097368210558941519833505272818076052062016636607792304965924580023170158336141540554504402165527666523068488162234685377481738454700992004112927152394064089209185013931048566762271715644089292497157819362205054309709121424452962252242251055192003932524123552373678279337959244954733689428090509279404942007466264490690837942716650315973121961143764354089223201832092514367707325319191098711780346100430594768050068861104752183860408391960826494901857694105437765140380027460396504219461319078451788830286757557343371378296600346473521009003616425434912535822916989136386154915192324716955306580028246725780618998529521315423902011762413295603356655712684961061046044261203580013918998374509290848128967923651191722448110007219710193925587183765207380384871032020219165001155836267270829132485244919272653456957203536046655609966137419032353184868140955064660028427388778009119001965259616774507669120818311234590442486944037326534250381825092975634531756428935217021485355451439496397600359714483703175631841015469086147454604144596303522659789549833509649423529310558453558815436947447824310509909712512717439995899160276578296952591078685790861827159287096975578499421656192133695632998425535632947707852981541549742125366159488153468018504205275788416110758809831049988405543139495555847446128484510065649227272307987214983722053028781675312632736036783789969009706359588918046136789342803052535950502800771184760408708298589906420412421691679317991985895514927976650125632030724627594737523025822175140298253656649008907091423835698504549279573268423838272001285939212551135529934970864114134130724894489982888306263898404444076915736034802626989698386759585872284467330032128513621150676343997858405355181298505924222519167333834183190923006286915551808999250599974170237246918276967623744828867099093118830248048088420100580933511218534652939681844037046915056319125755365228509989443093816840491669176019921856484447043677758322488428656022950470583229924146115840078154812114813079516087111100348061428279076718112362609633747470344416277305674380472175686232906474078211819023720907384274235515488712841576167794091186712349958651096469361805287022034768063761098502928943115763557064758139183949071863632019926622298910451985175188407003132394970579003688943164799691375123596967942606244119420883798853365448615547032944724736041161571557527514206995443134067329046319800202509166007937500908736884663730519138269356246170965674958050459500393826920041596818938660052584445866794885313306326833038424525280509505479140454455377978755496142029941665005171825975354180134838391049446738131773635190734873576185071584259869699681228279860740419218209936151420414750401193872646484321352115637708173779241070845345189621385438574585370926136752383289538773535854992420134930898290828203089115589644983735804190695210253625864049331492875231784768072679659653247815329026726512783488061443315449436800386762464728394846780626790139422318769305973368329275241100218735603026280753378204637436243042171014348973404403940346576340183801719616853852677423213854141895236364760755437790708753999067689993867489744487055571140134644973774845098208940409889354098206028420076823623028111195310102380543254090661494992742656303976085649717575956036068292903659126464083253230797045724063091323773001905900290876513411726449594631451306346081559988687356567658864657636244616164289568539250483024814868607183213998876588338053111403496816056546113633579277446506176993467132332681133933040361377703592689372651442691348723125070862248627219115709879844331495191491637577248216514136612581923173162769439643896965918114270395177551570265227903988757608706287618061944953017472640048728789316007670007731874664969046620019188221549460203088609114125402741024385317089779287416124474447786861745151068836001817949693888233092078563429841402841267777623285331702012698271983575085432033112878581820065633121054265820638733871451933395526192446311756682028292006748313436608045991376639311859578889318601024019507794155468102755784047713340973556158917902242171763617362098353748722722590968759722213206602367948756784075722669488084868810927866924119464760398166500670300481345563917063450004309321835853527634999176119535785198980790861020552529566355303454860306986467227466985216655784814044033271206194765740721199173816010261035826595035570607593634062149393491948580017767050327202497471514565172949069611625382486595861828897273314738704020029866252448502501306511691624743714682942426667183356690484625193127933898125767536913328369193350960008026423187977388026239271471781402208793048357587106565322176280133553842221415127468407676000323511421057739485907080199241294797490428108136054392860559964519796508620379838148158201382292857466993458024511417164993630529085292238015916281609363222058074660704093142151942686561000877875314064655871185534182356581510798702805874176591255313035116621711663533417494397036640703571190965169085286446691403896940024796982060393779711703019629151055560660860436267520690224920275659245957764504080344276766398494504530753114223439330303264113989966821233445103847166703051471373288703748478682682552517158897073216734546919482677913528691552326331744500481079990540828700913493759771940223062202419066556767002942250077424275522165034991115802039609746120504941397671741984407082949043253229882103896479633122210473396094665470044985998291087163401868234425422475950637886068858028069189285314632389491472192143348716351602800776818853650422596057122612852384602648524428520519673662527445290296284169293107069678633480701859706927176147495882039293361258582664134749031457076086908335875379794237125243863771537362567468638342892177645314328889837667699317548827723698321821280527076081116957780854857177059517901066942545269682165442181451508810917534363167192920915037686732931194850751251362517112177225703643472138205242965446603275563824678839909289205843464990177782315656561643700565793482741328813782805470515938510580593704089399201104978215997510902334420198022293755378968513508897649748140884947703309891620649499578411488853753049874887312480658572071018315990087122535217356693226700012189483428468579758966929734883593467888249541002756493711271525934585495659708460490078331900567448203066843888885769526740993439794777994458259298076131902232614090737214757726946385068672420182270029770186317076715592677244903799706195469123519169885495919752357944057131178519219844315156343257739596011670063616224242865965359797822636275875822501667032537677868037292123946043625007051306167766475538073050485132764583936041842227551129062501915517522674951916033606127250390966604209652263340116808316001894972790743936866126701400486898568754322600428752431889806376396786157237406410157523035117261913115332258895201194517529639402543716212987067343241875984459091219128579005898754389646779265603899568929482961749284088165308353565124338946843153113538589280901208553809418815398632518762291121158520481322844633238363171266469291835663901786123001613790468827816841869590718895809281074449420183327641273149555692153151329293588462534995189933059044779139101347965600700091401049639096245061691322778794821657486637534151818536736586486309573710384441868097934931849218814502896015914462634429107727670824396908243293899272700051430724356337914718714467379922690565216372687682007387093466177208007309073245038690269911655398810675795372347608745324732382760261878309733646619728951835904701631572959788147361058426467701045571053981242697648442081151924793510863374948543354200022233091083744823726373962095159092651137278670612713291955881908994856085691805732613764989167869360701113276182159661190376159893508849656803084884753146330480369011189390686314845910431634315179342662860274837061896688124186099979454943402877474515519236182921448661128863463371435543827396369072829769508965239340696550076532136801483491345742503190554536124468122999053315686685157264189384322294775988607983889160004099401703765207933023129683644335984501484080555389756222101870028769872908705059374132342627805716193211101679940790602322358004170795478644339765106161468902786824427451355248324304293931432316484153144804309914620368474400643421502500737451378261928750976256921973914906449747928825532184523339070509060016214381567670649332830690393743290379320152968346282603070128185820681828834809679236626578971264329439972109561272005603905483313224407507945431186452734567523277676672524922694313257652033307087748775349502798832394770674977775386487231538271549172502999876638189641520045832768420172376153692696974647232768913244893870758485103473524887359733383743266230277081621229566112686302468089305336114049330145160931331283516624010259093243705034917731802404966427881855368980286968569314650894420152241852937676943336946376002764119516790080608693064793568942855922878281718762654262617537913439410107517563773091473897308534089042971693076116370265810983327388976295707121976340357238360252310829181929135420796923396399363204579932315057689292521359072635126074616906344438081557508383880252693432082860529785126514060495196876815429411108786867274610276191132066645285181872386734302671822581016902421326914694983602591803460749448691398769436864226752210622879444399427264506089077696569154214972113420181286497267590501705558853074544826598820275579710851992471780114785442841800674983893013369354220820458882065013786937907210546516922748280954105310327504454318130128179819833365102966680823792784276171850196609862643599078850365944168125392229802272094845953546892994994360078763326991851182533101599986390952283583652337682705846732328817680850087931769098777919100940658483706618571275311986190328595567301334062407377180413850176949212978004283531875759603776231737987698070093207312563225945477596925775243760082632760749361037548169377841372456465529883081032204851039848113771386331027155605763700932738452606256453714986775992128253789358298965574502542773833809503457327128126351748763846536611130656030007507331963423007329860126058357789647526903671210375183403109423635586981085941885797465786173826842588485353031554872962183620314102362460043659917267752919920885656526954147691785617487049575763147226905661206317844085496471667072750099929401848129090218251018115886400321565713926040571650036466320601640620489389175952111727408952250940273122768589389809206228893198160996969251017908724110265259476532382833098113482537185366888867339105723739711293054191354489305002366303085840141448620720641295176098454051123233404081626197307627925006021761869224865647331273950507774904347997204032206992292848106442442939920065242670241502477660423181988880329857964781928344571716673075674121282131598103096041068371034675265416937117916726877646107361360425437815507250073427276000624711599780301234039486968672727896659820052719947474225743897547122785376527940586076176241906986297857142636950416695404383714035265764241412427785002141553165079953886142544210888461110672787958114562548474833886358809204874278626748569051784272453166515699102656015139552022951320278201624527633127732984374711447893610995589289890238103501601489360262544861586360258561614560071565457131989183375292177687329604950465899302356805861098398114021761499122184324390523216924032876727800281335573926128055508427786463053872561746125452194917395071264859705710986839673528162553532847623855818548185235465019897040992784676757738310938274185964750465272033336671691072230573509960968698510622132913900464584117912667768565313624657825219146367505118199122562166090885748068384774574388420887965326422601944587139977540359637361895840949687706279967257868438757990015963376598778577828130421578682450825665346291704653391140105944684107863152013350578372932568622929934353880581932239623295502072541845140440252952617708637474226926168816880842609617419306414245674754793799112820394611754369854513212618011951297953402737351533211088184559520083655073379125068561127792058925281494079594765366384958615962379880750286212770770865299258096126243252712777097839182202306470169583320116957875204635156553020393196864658299908297036138997540470187851632313281758250430375753066152904616787398019840083722927461421592994345322990687414228518478790440747004160985122939717569527423604844932931823223975579259736883949694826411107193442715599856547297617285982346492983523884339944327670077858243949633723309932090586664631679384557255484966509621454315512809929652541038285500170103498850754227838995982069066294706856244251118537270191162395234312149136558752329864906602843193925740438086732829230059744045419075901118998814330584128348575051893076703320478614987796826146831631023138116413056911356474861273085838463806701222183432930020650321186481741968935206183580111627826520285712890545188677078167728309813065599827215466316212141269933213906411434982229954189139599017909266569467736820844886083952962978349624519010852693375081210122263193974453780195433267500363243484600104722442321113034015044306330511745632518570082353950392861396243752056734170453467510169389945198184858164811172637389675962105382391174286845208629219703660814339064840691899605056493463998367991367832812671521592472456083211922492584696136659609572294296111006556134832936468443061002745395991613223362171231724088807898499028235430163354794248250954890787954466531389818872615861387613559133690261902892026193962409353460945965998728187111861528986956219330009431860250187173688136736445615695929204593855431653133570624334422042676496699596314558813032444301888829386149699759672295011172394736511688751051378140157526406391736412730334074212365433769086476886564917301202753613859905374213252481376058127059590464000773700127732644436806278451655610882677887043957235809211762920766273049966833039142894545637622677193337308463367912844461652422656799268216532459089380986745625113199274940130724085563131174586928014761985157145610681250169479059994020664578560785744758771781188630154242998280499129816180061438403716397785495878284698950990543736644469000141771991657890503431678363144042341543154934271004237390261626832381033760893042886385089653798333295796887660544850106251235705757938992378648701149670050690858918353005012486688214271708238305742299393496189310934182041471569083121983940855333646589452933775322565022125575919778725858881796410578205371512252870394012312091706122090743790883236411548183863979554679660305451169766525024791180701864485166093896998271789800349070811226521948409337362182309958517829550011449205691368669974214605244618876531717060075374842303441929708931671822278977784924966114776523284491841616813688942594665409058362385891006263169711722230566659083420224262808800678860026767465810750634668172302220895105313179243738418894375874565530982916388611395387017112755471248400261393094332137161279835345790652560167574615010819310003083938261480783009831869421884638702733121651995375433280200080649606719425341604332345273599579270399773531375320062912485486003982110669331247137162553185576473505164238510744355781792644559180744513490821970834170601380315913224500749574692652018819014983059081981131992007750357919103983963966024560212158485180980003203066859955111402763425759529563188821963464111858412299475484334753220203242241324538917182077948234081174693873047982621883588243126245452262123227987771435757851202247977955847044613774248749364726570324111129428014075122163487270903167852160860581406704503017945225974217831491748259001698963670698975630976442453600849836014096301848123028447812261639595482873765716112745171481726944748470225755647602365722743061619681631591431223853498237913815465521955240218649232437359505516210836806396501943481397679205577788340284237429319108108837677717490470067086818453774467137412290113840610135378919028321679170489025665477064860573291555060976269097660588429322299919627149836948916525668645073050307284348026848195276147727099866897240200820908413375498117015461509625793417899399604836196885700678425375122608685532817681138848729235591615322442489319266565080671209405383274861149599353572428155179933438807091470560304509305940612572241666603389172359810350638439759438312954707043933499371023160404336644724216836383810797924346639865110233476293046429486941629041547178809764023139658228018814338287420623747849986612924561611733897771248989311295600442894877054464027369769559452438445847143987205245289019987326283209303742968916316047517662389783176213354067793247285605349642974203106707805449610648785411999579011069721557077850800910854514907223530760557922657361069485059049090063522294373153032066629050927971625583282565978703022591728914608422961973068992968141746573924800748726667271926416470326111951579925884974677573097478298040546048643078225757087415593861604429773171370682021676445683588176188717237198597435071053217163618394526774638098761149738853709136588925983835734524541671918933781686613031638251832436778515808631084702098642071660619487720750152997659027653065938521119739533204751264400535698992947503873136562600930684169094238788494382019571945394554813601301338881470253801768588421021483030706897648517014199839602141287345323603129806542743856044023994510951360879624478092067313954742933296123820518907870176436778123877922788790502699302119726971936163298349666668883860608538576787188564874951447922474379213919467811288583415389581246050129642904697231869935183829598288244112614077337269361254250391433190917515611611955124503458880408690371725482868892047974682545136837380815450544492924326934564729116776238714298847277958272743141004493835153565860700135683670011079745017867134873290738540461834279472702983098432892682352057586733628089570837764941423433048948599758563745642480831895310806775883730035398445901394699467114606951432774393049619494402009066710442074667678453582712088181234407131010536904849561515700623805944625335854731723041133168277257749054604580598312174391771616361503642799590577668689043647785387272148692614201387971551184078010487526479478091024788348800871835508935717987805753407491726588491792254733913017927132643530065656362543573208547007513707964737723674573724016886468148836844122611996230900816050124095721070332090752625847449252358859126438076528720539285567688105597680653076830749236954895168754357046669257306121961756088311585937925107095112542799911644969707153253441031983756596048344819276235575295500162742561055901639398319686448691286013276565055916781826540164633379214275817058181276087977570677321914926907389299051606789570900865229426805939864281276416200890516331977989253873653885906177259361835352771385582734131967998627495855512447474255968905147806149694807895201107130093021222551404412930700674269235527161575917067236810851758485677715638147085281532147581609752282058906137635599814296957739506756434493687130573454281201065528240518561137990065694728290498003244385365968413518446706278303286389909295040481587274856199849190851078459559034452771882591147460687411775906831921836287799849300984609003175845594544920378617320355351606662939098902155037789688408360044829969190019303717409386005931862359069101586691689977818863844069424231433694161617078473440231234900098477476685317986091307551651507290174428923322880514605182307393170064710828264434835823074928478700518061957803766201466765953426255391477276034089949243968217234345254244033898605395831714273440252721960192924863217612543796355827571244619109574173887395390219439351529841882429526961052856471931180057314229325495505099533434494290571283433560776199464313276994077496652640049904043681316770320911443096028456611687825166250837770032667217126900281568312555788911038355163167589171992695998732656803097511609026287800270048146109919319108881803959157981921000544103219555760341937022315775370321755443979740258794817554374652953712951362496588148111650572041501947935735987357131390696236889409112781659178109221580933768630963337910746966323079196471729066389313791930395897510871543556271624700332316006946271720078869604745812141645659025271197066251873217532101186542635879046631234825361233491348102096921326371250451983921448510224773196350969015357643679254363769587950496508134483641176762962196262118540235996825942682354457482144660568527621842895006782426376596353990696454266647843758040482993179718708976856059949443140992908529932804736541277055718629127802190867127124743528358993809989373448386657456432992536731770069539538380782346897847438903074647420979263418344409840207348481198439845410803559586722630698200197738889854981169527293241534219412584036013587920684255129213522835043891207754143497548433176390345337106263130670524008627261922696356490879597841058543423344166589272910376928863068598829773122143986269318616565524979584212493831426093662569244289613616548133552970748192406350777594618155430136956863026036823404584410064832405059951777756780855644117953052624236143481665856426717718267048554904760352213549901235820162534469859011817110471638522145702226727883044494662180139195648072355272479348876685683546010254414762495909145037130807590998082607332031112555933012944746076464467830894381509925525114623680035450380761937720548153506582492414866257035663031575132415091012534022552184339959245001443238802413826932477911395360171134065751805010542069003880904832356983352843977955051758356153523708155399697452461133563521232868863022005355903542896292185712622893162717891969820544850379639069716135621412120588667190358380118055981146113225427859073462548756045098949059269038925994439415295683678709240488290184546593865954011400276052952610970847061947325602451250866444093110363017634315409032995081820627333828793595021658299697025334895634897573318748264518457185845050046271938412895755299301092866402168469727584437867175225434369546807116975321754857879345373506511111546944414001858301464046645949148051386869125731548908786122324346213501940652541021476791450297384396999084000128548184468702136403736258837617597849902823520881344936251187258562006665605190858070202077177802415852023074340114354809298635398032147063553801526831094548981238877313886173711778668847263873709035055491094603337537255282525161404064972306411186410502434346097117357175794776210433737350548443403203912589002557106562780891740052181527448616184202053853224463629214466771396254129912179546501336093223836294940910118637207841202934906411836863505346171017973352198990276063180946076017419753635580797204043100428038199005684220757031808200414281764159573802837583332664626489163519651395214798086204311636381255676772305347843326462892714373605798741245002506423451956570663168923969648118614723855791193360723340217322472880688537341279061102786861764832276230854871260436647307987621433362451834200693910857323913309262965903178973549781683116575381095146376226060338585376658709903556457807305136310104662428608946669118544256747747124488067722527507003595362610142808347866538027702038147368423549883837347398184904492691466394590095584392112075187943068999851202719572565468419461975329719316173836867483462432531212855973172827707974526693751236282634105747374388129177885294107367274157768049548528377477542852885505454691941525950388619899560284990127416138292033011755218436743584405492344749265886611875879169165371586359593276341619814054707078201209651608646761645609900136129437210857210748514715831771968716829019903936611969445194370924614306265742704011199608588882777771429879690646807958817137168779153667948285255246105735357174053574518757802062611738242699928132969381984023931876651427732186230523046646618330789648747617504710832077271279966857391899327399637971452407074107553686584011858277307666626603088186260726274135297118760248461079600979057946697986663830246724994996397981365722216313177438942942391049079248027804600252435505873274314228055148822538997761335967925649025884956598557930793340727252116229241223814280121085528222001732959885725464937341010163019982655027221206616173688366474662161200882020139434660543182072011760018747974341559056308322573637150433532972740469767524824485098620570689526959010976446770163242537463159636165560738367952612056415908229026126789134093446214221941235995579546511334179308537123808447611943479520227462678539330707910415878029602202965037382585484387864828926111886414004480993139746972082565160290143670675097251875739729974578747863552225063735808275125254415101761580088187856511408603784843504690795260906191916818457110940027115174348981753208425300781393366773535675631210539144323845217766540502450764836851543082177369443799932927431850063215010454687516757043781455899466419349627188150739353792218989698423959532090302204755099029344655993728076955786893036601632378936548716549997196995385025381557811673939526106217354188114093412996809461820871372033670554007548624240515475723966622324035115249692743373668852136652568810245533505532429873636046809943689496974561170508200083787858394437806047034457752510613323078709173017766441206184708304166819315373383966159689844561235706818782777565478812043788335321588262778989056324423279687386440196949283062972016414046179571882862891047102547787196070632029527680011679976507071568705653933694474900097109047041951466832640497952721391192660525104671523213949120535278341166283783286668642728904193936033585481439718349148271883692428904231822056311145941584214345243830261583241691038871937140460169355713043657928769989447891945463303650371508793710942729057736793515050972716982412989011528639864324613627876061638842768372756008635361576518171565543553964722532050421598070899973148640433284027179977441484658292883115032113330229216800016705983152254237798250233732154297581352080881381642553348067804032334202197910725656939088896568475624092070752352353384265195028067436111562729990460719577290034785689467580948442285802962805510594853415117979612009121851859331154646148576131053967790120943990751798953454575813634175827071300976242889593411435838523695249855306021330800534572879050868704251247285159892105655827252480274805938710323339131502050413314533570617998421229400858640806436570192531337818615194820255607229583629287389600657896085186884969091590650865340368764164251242901144637464169491377612157213591566127638132729328317843222119747149858070555432110021320767072851257277270776385555571224504417877682419049776211334976204566585615570414032145930252914416301925997720285293583590143129050586031190190201000584895347840829937896311248975305136515613610500896244108723111933402645048732791137087561386404271537950857416442850945879954950529397907963327728152088746951672676997204703096746849131866576660432713304796981279201259975595080501720760169523822717661049073038919820815660877117510878989231096883948809998790800902023645494438315259750290858413052831873182136578060928431033573208321297203280019982475431938819971434720415247781274654852529331222552859426531445683368092697527138532957121457812916729758735425325769542819584138376992112132049587655460541941851910476988818467884879846272459186251185126166153509119706822632545999830188299538396453404156561226236064796878214444966821783720135830088593966060184405454717152684585178667678812195108271696188627490647606185571231222658110422482767658643822834071316989007553368623458037760833065699540127310143544373555095882344160712149032283822274568567084586298502234247623925427316022374575606146207564353057040261764893389389320844269265124934575707314762952458525973395699919158483593859881627136596197574874158492078576395061537127529800076564213962014756784660044346578122032594393044393341180957152044226000124382166559532421115555986841715810862574768936289136919237841511456929709886398276729042175070257268605596017553623777595051462650456754718475914473053028451655268371712540016399187309018655293152215916783361172515445124527084766093473068268020206515161575390904278191083001020422011008393311426463019379070131394658387042402869649409513731818559433952918246201181962655369407228490826710954440713807132338312953844674384594906559685337942495311002419131828440614291599295695703379169638542657461860583003268186602033537169573882137536085363727630650570380630235322443070921380354301745028422927383928634934611168919479238217731115702918577296062112408540788974594608921038152299147768340419737050342275479479403217579263490862222950861944814159169919148198417835535491348987274714261130970852479590450579779045616235021158645166941274961572241412631977001713947889243965483253126683919854168828169903422657015259545215504138812275050903032402686746086806893395182943803094346914978050443314885383215459217006531579627682284220050825292870712986323988880062483958230487174577110547162801151719752225240909580915328501200854631693130977425472390332688898399394490827325159489066979222115159238049849181998242311742178148056729480825156676619879719085884084581807805603139442707184167397586921934168639553693618688174524643628834170731085249809017755632941657713035814980784345525631862700624603416524488547922666088557131935657953844025551409192108851213530495134402784143818903897356428942958693931445106186190038805778689048521827340509618732658126872470806077153887612052492425138568735582806125048216898270024111737468606646747411490963765607578774748325236434282814024213214689497577149759089820998148053965051440606243589462226127455193103514188606938547545252138761130707771949229577543132503508350317483877094936448728322434791796846232387471486326735959984370535844197397979405538496901427444794640734826902056462283998460663189923136063983659701690316333411275785994165848550137716734975323088266345365750763142926984016892939937903684414238661871411358999729586067133355771588846593633823157539600415337084400928003428331624810802841753849890266255654239801434760008572829558690796774674775590598493140453331205830737441562112976449339616634651267138313750879685965437898147584929696235788106855944735864871635896132970567178491145768172542060423287130570109636454392129737101987234190547548478202330696485297204521148412946649501821704637790789956314809250121902454857116727867439169614518836844928328127957510639313114350638199075887085461944369791467122762977620953448140922411134972390016644866308870148184774750269393336369508848190455128612882981155003054123085003965161041367670660032151417781918065549130052909080212130850725581197078773818131082495203176263888936739439191197824029309526282973300799916999682412382276572405857387938551578860038830581659810979304199075835667312422895809717609265654101923569222039798726871022633162528463900745195941360411672526120044615637675059652948927085158992842815409304111597720282828368501760726651336327804652381638707718269128970315854981034427492693218004667915028602525791000047537999362855096394787169548382986624414901475708540710945139758647616590096867320632197396672599318020228734702122703448021667693300212868767644824177152401288811111700479538819992214894378271686532879567419228335283487416900318000902162496943066058917360115536315452032366949657889488349471605830069319882674154557279309975265028573679845019647352633966004757779004106607302657554105801065735592675429298877184948626903988376441709943214977620664748671791650282981663624631057721980944461770458556818206553037942628100467258889244015515037936663536493345572910263790441650578263434593537899750875542996575287706659356566787441730389717141958608816150206154802709862927339451528764645663420709589471424000179012389835653900410524726223557785783187010178175025645434852461150401655229656736880266651700074423050893918195012829032162158390031234525052747812088239028955512499528588741661285302944703799476818322180003623330904145168736079720958527193060192730266899350734244915099410405525317421531411340509013934555606992480072153834165846670993615321339989140026784450515796134885363286097543897728489448458441311885696477918322273742345246575408882644188009985602645228603611028083568838432509771606554529682525610807282020564485238702559022141021526452315849786237225037247495724338087270375880563944483208014707484804887926347693669871391444013801286998135208276048514361890994917086913476766284819686620330181641239816046803428680935352965345391007403086983181934755194099354122815244062938174462164873855325447553877594847655429492125977500786090677660488446311855154072352276706549749611215898108189687377460314923127978382654268130167308079852389606585579545641821399382736736688658288770079939358845098580724401869158273748268098927030083514649639796692714884612893232806683904613852091651841972170122109800750149150624684000289860676649633506063669902538808298969343093712583070811378775557705534197933701894534640909384207647138111294715757539836242894549558603513174922176028832033046596791567099676545070197970669794091441023676739130786735249060682591807284996229684917414798763236880381439961656519956391767637313274427949774974570370209554345486445985842822689441477801286575117448612812504093760471885555550901187342266555331621457878139704611597288373585433929017632361660069157792396046000841044001826016728022584276110292557560960411318869335308608595744175115193805032932188010468545581114327273760008044041513371747171716364992272724311907484868989153733783782472119767097967714059686121782476365156662125602788699721453853607845594292975252799178367465126918241474710173647850884191576804616424598240039191613066841232484991600243638503855554446007499624999144338302546266314177892461814459343374730898356788754647707296507641578063788325523165737920608854299709510732030885508491264051643875032935446751399308510658978651796095731809885236643248550304171404230560399670614254205388469782527295096330382368130014661416614166470990113913264150257836341617961617362383404716012918929222364989179367534725240466639842834001345444566513640264333963092832295496273398712652959908539003080841880505183249256462103113089568368287472315571432296028700138185440367697679440000060960163831080850763419249615658782277394061289067546458569285526008277309881649555467345774270017298426016461244798510253339928872701149888122919640875396647822905532384745958429367864744997292966806887716954862217400559597818079618834663662558885347737627806847849805168730251704173933022466022161908186129379234561089042577153415904508680071391859459431808864676034720799865136584792046932559146066896312496562006794190494170406650210045684460055055471554166523333915249361937933475686963436046343805125980253632655411895490293297683219099551707506277143223199838994517620968254151703967544431407918745907594471915222684359493639202933208823173885221580436487677818336043210323357586477419740081118081617766147540763093695570199974528342745722468660840068300997776478421218207298852605608288374901818543907457259371673201317355503162120508367234778721822426741706474441223597675146699421463694382256730761181278375149656333452028980686058580482357219559582266542550126446833543044137887320791335690751016107668303665671255918984220508706883670494715689957479811179948904228076763715977887639063750190528889273444003175890569778179674681921795215064962887647166795196863600287711078849257073135024243105351102557685241862979883676547288565807322919705565746062367603501774145679672569339996003035947176625738680059409256692400001000528604208652265644762304769811346819353197409415307794846216510997188051636011754590266643985917604988030963944294999170338431583459218853653397716288939193960818147398734577271359821188715454164040549449485852570241727838049127013840388220485652451775615128528571257866643888341440355203390194507555265548361211583033391060041802370268255651472614147413604005525580865841647175609876664958670817564962725704970716190306105821164922888895635074999536525158809904879887675313948782760949506484226421109325776293364194937065630624394921356215875456028316935732749714298215944022544941753292392004867866014257066265610944395335857785548566019697084523531144772740858700498976260890119194185867980859820166345639628167765539703937229928590620266696582381613779604325054543635650079693841603660609173543625826836907443258287054176299590671862556067108416449513476859051569197369865841794451091360856303228729271865463030547342825042722748444168321711227888334558262973557386386052564212928862357283524316952720400921783971482801088066973887162812672004389924774118263323421419737836947158068166828710627911695549505622469185171319425339759841929755495546151337579009477821939206133879321449271856536263478473500898159555011116230172262320818690551537268776100170008236590556167922553677506944938601255363853840249089070396725341521466029082554383526776878189648276307667599060861383820722817053845990501544053386522004787601556495235806293193434123715697777527189219289361435769597566490494644491958826541583320939630104946247724784058126316582255886516885110629152977799322711805248848132655235659895729829185449369517467539667519479193860779483760610535187888613876659576256362799859488482748203370375460500074535824761720739509757544289371575818385896596234415524814254940443659459666379912190038938418310010642345977383718842498520672510069385038163654406540980682580608316826568597410050947949726422174810314137706499602663175588164394192065523766013041118232619667989635147240728306073656540530571602679403192195266131580977593614558353266929117101692724243159054753793349829975316860029895402720874392870407752549497540916431796229387838930314323805170454129514130637495601198169953788321080689710002103786457684195719030740670411622647065279922871379316781557631524524368320892912523212482854376143737765796499519180035406310588122175086081025402099431503110423571690050235972216013756540277998055674290060954857718522167119445817603253858568542292758441677643270424964893202205962177170560770409775779797647021627352877864869863726307874585693530598400436192174468803102541129668140609444388965568044546820155679179216947317633047748980367129420478447125618849787886543603826331511536063604973065000081413398425892572658678727411343790610098018831537050743531855647968905831895794342723096259692812561133594122030244977602531449595811925000620308047385542591483593279034169303973470820171390654853313809444629638785450478012491001919931100724030120422355427105121172854767284438128010751519497853814314874627934128021529004306649469691286416509221069409698735473408865608460662512631262173250159294956965195686066584079184045680803247682940383924865826963865931841985955914289625442120226633781053552652488575358645417472488907429138972257670258382822099267432348947399424791208801681971054193987898495420438231332062698812475919368701709991205003410279777596045666586841626155019104877166411528260737540506155888469496362886554421879549261259957722527074806386255543721722370593022405225176858434541943681354832596901751651982008119084520093337427791147716310438322281767686858392025253260230297111892979458015581219656149312305790131277063426479971715318627483375453649964163727192235530408274324978690317653009132571178252582329205771039050890007231400535551625234796530993318591716636252288593335592694968655385220011388880606562393788045932931222961689743854474886786693766803090159306322868968646401125021315057586529229442556053615975237665114030701997638156788439637409542603137567935731504749978234469767674538347582015524465308857184112247271605434807233986784623007511861593953751502896328695667890902137189288994218496978712092945571576827055549636654206371283381149914655211081591715131121859412517132795308757367446610993960170783277203533650989521844815258355085438341087025465336678786053717603860510438210917373675356628310058829627191000336642904454608718104298555637921111618400475275538599002024648180462558842490706365445282101507879702892568779575261704558179287373213495127389825044522670006895550462130821050575504203711352234875255964592643286120657196142192486910191828916530265636293948169236780508972046031431082697670973959837000423793189827839011834362460559479933884014432739737593726259506195633218545924806611768742212893743739942850884124860139193288448100233480810388792574126208868809139194979740705655379621250398652208855510181587120053821667509305000416884059800853559259392914395727024576769672064775627282497834968684765456137917235250021285473512311953613816571542293978015969944316922881456377167651680654811234813818991011887323158497059730075860007967837056938416359118210974401231732367453494078088062493872351472511817953511737199002303804137626508964939679256034541605805654148841231734075617679006609972010987861116165486411459156986649723703041201913426256937618966897278264846228886405506523817207172221490328448976331546280717383445961778184456188682074932389645543789407663690399149283614142449619553572208371021493734486871083019451913299139181688664611748895703763879920664151617831437133177513422831431030441440245013246005429122150210542475255915964765151780048863884493501140518371272899556492027385904085495152937705908874432313643808399104003239375474846294584897404566758976067195834787507048322044774293526520513123080966928927696328202201714998695092860304005069670748239086921335260731397531259807308448201141162440521948023600851093870528409480232357135245398729838276495531774756814243928540274186596486009772198990119550524834138769594341863136354381343901222067683981979879751395727283195064923237673639486943193183193923077204779978324817193468919212426641576832994328872012642031438917358869555837494364467890734096315361673836142234163857307323272972834405132688696922376501216803145411176053643664220301226185804228587695372284369553763954115468777982215494771677589168075679159652949308284831724809144284355373693987753192942051032387503602477619563717888103261529248087370826235763056616523384259946590675933743298558090782033187508375189653025440446285886345107879956599685754950651539158601532600381783628127101202350683602148857615385772920895838632618367326364077119251532642243866602256179956129352529443795704858184484469813933790626202122179610346707941084609941316376809852202579299053831177851293123195928749182160413279408228032675649691461661496561708591343830151985063554081053632202495798226270936149050974480217604955682457030699670967291125153515880142433246652824756538732120856031788406524061316158112642560398214763160328044568114692768813317538693159157463863530383990956387132864779027808989085937950393984575137457988925719207361001812583327439504460163227071775249520326740577290451726129733870961742164877753800480263703347190467995190538877703387902729518081438237002440978206759455036062248608021974486167806529585343727894929117017738411320709910917487706323354559278176977580263048893366351274670656661641661177734607544737012194791376642044946670085687367336338575140955866879658730401553760244862334049550593626381693531669228216621547327919902716684779266120709077083009361091193530413190329997615399613630005590275395433930816356505080069370179358166143784464001644441648619650388926381211042795832723781705904957628978063331717899333904466646243047438921041330486381348010855373291964582786083210118091556514278177633439365519051854169004905305783362397893367531310291570460977450557465991750946297455920886608500336556509533827086064270955946540224897305465119144213727287580524419740237469655841982955565832346582209855410120595237093343893934443602878210386371304053806164809992165212024770700648447734209073114962988616644074667755622816653084788104486818749186287733611853426007457193074395154131481182503037328748728636671850987279458835430218030180691557213389919017287416500165939170580071132621074599724297212362859546044006098904078451263782974369158370290354685581578820487646989951936806453428160903826610946858557276851066119973657322277281902218055269498239706451719677864886103634682430594676173929705953436829007386596590749409032381930699960716143845360602146851825090065408897170188994156334926754951088919206324956026626163608613433004259855015622966636587319689811350725131743833151078935919402914125111890103427620859579928482486699210045103975846138873506733863836922598596695025138939636729882038633392971088973991474729823646342690621253053964271773778686714735059496629592688648228765507190230465324377137639520245923266343810408454452323004198554839277455705561546706253587346058828229491830658497749670830197724460420081919663215381984053485223764379701851298284177073031226954234338362606743170099861215238294144181999813239075044877272621923912036444828921575068027691544855516886229796224955841771483464587543654236590716330629575669983655964531539727371390331605703015616730547811562434784712346102370550187630036200049328465850430175883100448258057072608806364174870896125925198128797198019966474288197786532290436240621541936539627982698102472988803902912968004974299703659555571880345243857360572775881813566608004989434942741824870668742306062892446298504270387182239561879125667459887052303892667396616564536727514777688309656738291832706713951143993296501825736432013638261532403696512187842969238766913975725290459513974984823668776341004732618376832157214533577260414500911998353495773826062394746153409837687121983268876293462433328188759537370091526679885267389991983063938188227558006785489478442347766910245854225620622105948766472872244771369717349974618363274471224801956499383142623000001831127446351537337761622808149497130159929050563482859951324433557288250775405556621124964019210358518857779109064356705689268266696708099002029032254665335300056642154320936533427008631534072045770327701898628732469690078158950104542088411881394937265354442238863697662381238909324966225025708598719515404796120810135209447450860291430885793483371989225643263047782252059899376619715237515834674969560626358308196808550686523813177634062805310160050594323859447963077472753341159512214642802429151428396125178921839099313667657531701364588152459930706390824452180319548846240272842384687118315775389201292206578341726703667631523164578835674738324590091697616259272642306711327438892972720625563716610552813184665639293871727830246387539357014675000125320689962530059322581839375899295442011593218803693306630129591732559704442469815871113708095251160808977547964333658299668119205999917167796172637019365271693217028807847929739665733403945511276645457529176015560054050510749593338298303141624934322780521592874658544232237283807182394282354893886247223609143299696068030142809871558562717616312556660361500465596606729382575910900199498498460133205423890383076013188408651996167457182963433402364950365351580274647334275132562686046386933887116988529326532103569927948772094780098339505965355783933817836262598671920468808394826771938174475900444202902607616629748724856733224199136294414265343367666415417607854406969402828705466192090992266097050896314597484692900086497743037454125429820570578162443916207582541598866497804562846765750891186330738689416999312866440490262763302792904016358475929557968525435034766079031144434532271559348949283477171272878810697263177382433371691034114863139347916936744426037353314521655185563809369709395221142255204687644930652510515142036194867309418750349039471732923302605643908225661801879359424818086625177893865613593794169488185190328794411050029668365944905429100355087604902928629469152505854629451762105576459219870567904592932446942988547025159418663304617441470952525163892487646814423689108869518072383351244737697146134771014212560097063681733101181632868291728524948602978952296778186644280930494612215592853753299795022594511497484654476114660597667166635156242029977543538400145444863104311420498968275101407451053963504381253041874149530929421965050965245642848423927208134864024881178454495531541735944593892128477739540905882615195828339647521946955457654163301307861273605243714699922175197960941702308756542718759718060662479994319605702885863583149828537544390674703019272938030295512709382620879950864390237466198949170151861312731653097699509530979278923978938929486524125633533075957957006695844181358629137511846814620616293555984782897274479184832129387084575520527447542760138207382990916035846898581905983025883627896062634516245487609531794917817205042498303770085294957945422359036332927037027417944096635873050450918767624602013913139503448070605863856328682265630884412307831826577689692007580430067973754757992209396801343292355730506959088264721331425685577511170511698705969884937471359446530873969153893537050167379696421752992303991721207494711650181180350991762314400033684297765005016067448187696059526491614928899864277908354634821771783221101322309909557310215144545123738513095409992633741112159937300170406888337853839717493904809472289545323257694129346329000613563085462098486258066328245690015024681753422544552239150488376502096798691787541600564934971678126781830827230538449686103601475527133222855534898266403107885588181062314371017245162616786865580271753934832214941388706767417563822527434355030880490522649661704350480716339590980809370849093346545801280592446460739865462587370487090378945996418948021130669610577924465642591657696614707641790001998321604532837321201893596177419597429268112730562073247843427190893977028613563009832618464160206506735813927318382047332113151229821471203688302526496945650869147465623931257565287883393983354771383217418231584014746849778517521327199085444758795230902371569715604402192956539795989197364142335169614062075427766082843419015099905005576170154319311383441740233305308651550807360399014894861441400005347378065414127200910769017610604988817415551542969875057111355473415310799762221114411574284404886730437404105384309986478449776434057813904375412860256473515898953794366098595764636552512525155693642426677125659922602950499421686158717920748681755168075310943069469861703235341721061647098553851892723599496567446796832759939399035967639609305400610810551683724088295821069590597697042225903003600027049899622832321425504529395277284608117402358254460282828450043850354214866433451799893717464225652305362609799671002310588177967854826772675066123008236712811629276786660148685666352689335177798931944805767806008163181776170476807806738778519176486676747756397687521225529988060630485921201281136192322601127298996225647095599591523168409051847443328197245210109207346581785975012062774772473849607396771909543917688542781100343938128586126805082656288905301064966480597958486523690911035177675709840642456399190471483459009631788462853014557138316766272751654879207852441191155812416868424483768326669301694644002250399910200671721898941233244992254755936397336501438768601201065480276907556383877925395442874916891975952182308089115347712251309017469483872311364549352281028396686979873914855572284961625344715085728780860861355922763537853640025788390773732502315906899516592161135114494868943291241763305833749994722317863889559532923556264474185560073513590650830148579802053747697385922702765631868790144103997369433512562061879955320987382026594464992887741621479761799139200633150279005004492645161367290493998273073476787089070700296371417395813490319525796333920156327383688253421574217381882062852436572035067195052082055270203910988342047936907549500050238819188221605017131218470404445075275785557944785435757924119655005894682091442498440809052015771629873451550680676191307661739483680863547076026613577301857766573813204869838752327793735542240454075134745912350182069546906393956604535786365838886107261333445985598452834108684872763583883654854858806726516228998415387742186471339194513991005362189377397913223176409092156043173887372510238491178918398964297648015741144596800431181503073492133182178933467953941496746215329536020553912920583091397706952858548028003713762353070713911984460626024140483420262331041824139706048627402456836880342905178635500098361582402800471560864446659200591953369907711916261754450343143179627379777492297423378459072000387204805661686129355666274331236136967595414778356877767461281210457643592644825505941069538119901558367047540411264106149098128239092144035939688048363757860792495510319510644351443213253911960739416940146243627345132071690111030808833274374445052140100549013604077479520414535974264748121978475042935039047911717671109071514207721377416630257767205534318851588317708310829356026009937910368155788507453579061382632538055704974216473543981631803732966359698792551139703016886131342230945375392768632593229728539844778019743366103844961426701928446718587751335531731039681513526093469234055129761352790372820026080156261159975500525015132999671689251395234907543801517742137051867604129796233131350341004185463427551362910237056375271583342676734661791381736657679483648356062727409984912231542210194280529738603446943851864709666699460616960123499880613796595403112787155991059683798162754864037593107569279029126691459079318905930273558913350192910833628283066540789863862571956376992600063139294068792290195878164369936049203476377212865236665855452825433941257400874114013972156407503012682573127525716043675835843912202379301537981840636456978396177164761804591759037044247442206228531947820149941217117213629372523933575462592600634315481376964794231738469123030373210923428608739268451834416971523706033870979581380393392011209919943847299158600374298486859316267411487894240219387173405868757557610855876638560933393986916880532326943207257179346534696816044153345238083534887657069261708350227412900081113484983934083221763472631076292217768658951232260785529281727170364119090379478963962091448800789522546424553703134825300218271653421670309091180250552386561134194491418023971072504363159925182320408366707692273305355821735176475982945942588534014651167488252312934003102713550578094092808549063798925875307994545404206723517146476176615238836123968338610327875722806524251782136692609991394080073591704148326309142933181321982244205388333890508787088954448054316718792982761976708747292363482554618445243689597573892756338928632250894875595398115907215089995913670596487995014045832189287188635323411700089025235503390248740777233666806633760899768749892235879507511248419374674647728714309946189656851249838911216246829125830234730655237002862554692309529772621233326368678828102445335358832820265122594740402315193519202988265931240080132038596244222931517999786266941290633227530307613137384935971137186621783761065419152868724767782852431622381640353554967316272363726471902029410948857208879155625360097714673160422151032976247921493263527437875349068324275783129656936717850176720831050014759415349095537063435217555214427611711574349578093449068928310753373654590177850779844993001258473989079173677598391666242639520880132696943707942604720248106300363947683832238591216116451703996649279024982033516425769221197960481460951606362190269085175512725343048427513812851243733691385349385398619176925371777761383576481196930749385917436528786153401734346450012688595123976164756158557391020398094875143853136665261440849736516089119156117496323213140039937686296419917213292888652158954061875934499912520801807951956250969486518276376903676882998231050998072181862769364418131002857010779007016998440770449638120812252155430780880097345049021044680606512733097832324419739518046633524970750580658316684938508668778001027608890873358646379543075387976004196572239677334811017177217005708669328737820107622482091504652758055711447868930509285382357213349449085512151863849418859711386588044815981129955702884530841554364145091507953971959241728003072631131207592542407628867143130340697335526436040080124467001448352703356619361106822110461219340765093899072962738367283100363048087820685431080323782581031124246965413293961081657009882741931990897239903056762477502016435034553417164221281591836381853657436313421306203853321072002125289432123024374388571883287793005602639990385138775880252079368862396402442485207427754922029737024542860831626236854369641209086388666845439240543322104129789059596732211210021658630562831552229588083909890028663969520219532725274284252018684171164076559900894740103552771614466620883040688869336078886121884909773023999487984910771660838722734569934725167758712130099176230306542545320294499367824443965734135865763131901770762129603787316525124640871821157316154485580616214644205585396175116313583435647310972475188356467670927553657684405295165901354881168088665176152681302809671677912492187442383047506482971499444362338499678792127365022784153394521738810899069293036762963999011222428426983605076249140139419910015742112146542057023014529094026788573835267534177948681136847864480769477852109899222700937446725569117029799595478614662872262915095417372233180873771131035684190838549024061739877613123436866647098644032990338800976259676990315773207317934000599159863833710615960232878950733255545123680891558405690818610002671570877310043578453699600706613105626601303743099706094892086095954130446221221934368811310126357686337325019712481932850320647808982942576095555002390614592464610682072690851788927055861373599584364365378233061656753664701460798603573286504689915505384884933420574573869548175249619766824667990100127091107474498256077503076684739612723465315186526641533767420284349176632975096551502325884278801955838508630327460190315628816709260532038075551742479387734444088133612643265928496340000237834628868433983507543158408206176613803260395786555335514839580501879659590636247670913901278023615148098555134828479458523982386584653740648414778171904014306041703696787003292518731994548366535596235765270212003788456574700123240649313463921403999933984155713542025262374435008610363563802610122900321153010018634591419219793155741639240848153458642596069219751377908639945047601560553112480727729596136362297888019148412826031249106228749407936396048461872986230683893892145847197019417422641455717035091100346382800995548402629499531674173089699806237381471747142772835786740008104808496443379874293780650480336665235730389213666436765122247951334545313736064193307634955787537458600087948803664902069895642254125250257159380752880488512014205984731174424391300649212068186931059113556364527166347365765982932932972215716480561109027396031355582937263734900069793797277526130406002312967063911373275548891508522541647794372516268977881512258082386031541395555838006227422410803438401597191447872124893710048361870350821122932745331230035637489667048910325719194696525433359203324900784002575646342123681089945648103393411611303443519226557279584558094190991125511238917841179518944417340997142519803352513960858209373483796666270029782761866449603575363273614814244442098684739285444950966858616664139013323422072813347964007179993821247702401940396388880160754457016454740990700697188743107626811826452796916597467674359102061190616829109224939156727794974692328033440691757014866926002253827871054947075971673496570089139835546509340694188315513464205145318843026160804758223764864646266556578640063702913398074493141147090678137089909318998129917416967513063151381795049435617701689998181142198795402816902601719767175604941044583582954835064254529662619310134820596195132011604919645309610630944089723481143447036186915499865906844912205806489315004057227138589329003618511094440928674856757528781315817616757871062946257238598766512573133744436904673238216288515258268878323264949602681869951161543687024773644197375612242754153322253675173149837772321520968749288345942362936601372006740056718603177680202995830955514238546201285301385355564317794962487174890303316143503992047907544725503753557240061000706790180944902033441171611626357471300984922170842916702751260971277783248721322817259870303415881728673414973035240777050792916702063047217782268680003062349774815088912923435480592383748823714894746324702642902392994262452573037461429589033345068559442512560661466100866658770724351467813700118159259226200748907442615312932961076262191705846077659905440900432018233572058923011348764041614621302472560426726283694811494743661822442153906093366738082817988663790951752757763240654081631003622405249555038909239216525583641773598191209665492512929080549790337004252892448713797080031505564400135968101752574798906402522935275173417990281045731217448760082579036676836907455231657951551553742731904965149014589665165040627359862776489310430251955307857003487637693022938320811118467082778917059132828431776007561832093898910528736478282374093411153651667890643799833294299431779254970015603677628912027640876163396985330883412302827446789788672150701753585397769366086406305612544052908418816569290535216012248254550886723775121726504638023081053572532002923276083997983347710135955030268412984520490755742528186291632571604601604600500775458109858759380934673186051738890296180772089323519376815437489750898876469825292700655814803850099740001226401013785504134467866408281453634422708313588871947167766872805246062068069460891341695682742236621119523240611794229056960928661372673922452259153125369466804239653674092716769313079305352511305688530780176368548822388720287959619447545329822144412199987019150945059683426717822478053045332800797806064604557055329740983382062558476801030436068443290805260940288824409953320986305695725663358399649949757667417995162781069800915097598068586775755871254759426589971937072642163533651639191329844788227794261910543254623452574961189971221900504381513163113693222499988371774404127872659274788234229570137110719168670390527501310151964990121278543875372296037715784153219092903502695241289939336848644744314669132320367657736869156948873944854724967399351566167910942503787756796173175956520635721842067807435917719873430369964305246867749952350199463579929198662584277794588900959676355126311877091604152486252763419916192669473279123224618600178062856742580441505318567423584633723626373041085343440132573677774835946355481949297168536982189158163519948103762818255725685717335014347667757168799014865265746338672405225725988703780529541999083468646053347607665992899184620271096084093270814800134091925311318327867875914464834140466326575814392881830428605145791245665369325741321039398566440884452952938779599359655712695399617819684883196651530117424746472768127830486997285100554006921968720412584230756637304352589606920978527983306998095191390187184870782632755852519827019655957497485700551449122140901593649049648174993667202485706538322247204932020251585147256334990047682150253417107296015577311599130763301414578144276571738762584531699376272387465761959285205673101858360116444688355197070022105530620699193860378948195221121557363761359245571368519227759894642044554866351527467537461368794809604499627709918440553026135468637041510922740938367049796527207550309798887886162022614731603746906205465351504347919473503552988689836638576339769256690781969103976568887032920292592666525998531832361403247804952499008852358500957975384312134981603843920539943079622357650665904162037786398807409694091151409906133417232400120039782727853059619695282354998832687455380827328328732954601003387232639740869901062340750818635532451901131820052331718153968089872355617983404069696544223083387340526029488192064655317555983657016081352920286995979954385174739612434881106376458038935710364733835332386257234904815542657859357732077903007822457852290387760840877263495353220802788747129473933198114204467797227833032228210450018000689696630059678214196410008538700748025566023646645083520880711976799003465196764082536433579075603891089514379667309761004788177949790475620704524532152080602382129740231995891978449305885783080475980906974679022961054643553170891296490546142496443262572021814816948411858039776766884654061979488484614106549193087350024869859027770751124687766186165707752436780299394417752471862678458455664735729807836343761655692398158741071711371034137494002246035093220236656912096573228247248441250140890759889376792668245011310546572314987500440365310554974904856851712350549210757558506802849397464141147223627632696251564890305932386112579057597697797496501212879788061645765415582743451775446522403328138949874114997770878505623564283861301220983896638133622502460336696803646152276088302721006485866771416784881825311974057955757114365192906276240646658946749701812704535532744174441869570239584358921952427586473563777118026708350395403249452389583537791474339327881938181514493229558677357326500572901312065320565676648054688239307441628221868034105439579556878272484660981119984954163083059563836019109346731639937045470066667773354260724515114442300867865026979994591199544637258918800114760732582664397214749521628772521846559026728055856525886738525405731544831670221695029918123938225229401591450789878314384920042157903229407785129430927680976573230591254505330047633232032465677270832183916085977444614197081817059542856637110717680446077020395724640319889702699191051243029614616407837673844146343704674024478571599266073172952071089876851982981189069523262647517934243165097130573728700402004108487658672204571761522156490045464186972154500396342500562684258064884780823288902035184625614571723564455996011988447570802270865924769194173620531001722734640180471589731401987789569030558670624721247886113304918168849525977990279998013263170122428323623339571106716362512046681885006299213400145299851407565419064438772893545332926000428643339661661366202617587458850114958752281170758775076829970069595171556022210867385151704012129470374751389165537670075266182689623954526161714715207143899555227328677803289823584289117846168629775405454515180291577888796175318946626576222578394786050288570202038130558964196204353024802078879302650093433038466478553143698280657383390162902813380651210975649981094102042867840591015257911384264465465361361539985446567029318051931415026488148450657998835984255960941604230935518308111430382856937182958017810043056789448316835234462905425811755443607076690101689137100956328753349901141388797887350721804134826635100607681156478603726343435735393034023202376152230756277494281094710503365984297371960022368508413467987416874505611339844753559820077934321458951636640330691289337133607587868351753966302971290049496528645967798523925524668566492410875495281930747339180752680001575092691568367589631846550762894247577886138657940179368033261852075645464944628786068137340971245792944071862761026053214752161236354552110632615657476114036683954822520196939598845335072617304163515776651382082758766608475974801185799481326590173659834446968298878032613802993088072617840739525134452395194710993322527967618901693511992753067164999178817847888996163879428607633748354657020672315687494932093456380322907944383870404347985507762325097678718346764666192229951580701245310253563199700409185028368964947191474203880638522341126171110333260975684175030323517668789127513176377303626343635970439313308613300485128361140276161914387626744512184453802232235164523643452096141145102091033807288073356803847452319920471138941483210677507005067529234377137086615000255602535712410497749390007230382172755233285940691443922749457859699419480927854612848173559627452333558289563288190847868436424620729397291786930085827531145229651707704544170853978505878288299036765909128963132145520827847042237525782761933599899243028955987548625976809760084103356591794525277323880889082912752340220044315157467297451901149829613547633698698716691692731172552431260187262937175927092315799322302683901470541864801550375207421023846142790263492304605956886458052562608794591938530598700471304753268586664884124665365703561630844391043651071344056940899314739804369731753426170296443630785422351523947901473160988748194595945186269878274144729960059819253842636506661181588567055486966165139399303523992884081647668597801154434069008661857261431707254782542458523333736052517097164138644928277223845837692248281729174688096080621741269219772611097812971691576375377280382976616805422012772943037382110959287752412978032545514947678966163628155360349171851605765365752287170124253972762048602829322163225280566048859439068517003748115789455502936224858235549302989890146824739995177250177286729425688625369702297272918148159536268105164401617477254184183532421391022439433646074647146781542424273479562395799837342115467405971023227892756046592235799147381779551388410594569585084773060732568829907728755201319596962576578528307869244346369185777053940237368649545315345256154885381201584083953171243565012766531608919276083282555284154115244199045868657778191402151290062404596616134435170499621970386004179184807568837275699225338608659026873171869572940350640222222373335416843302807677355301086231193539124351381992701264133960941280092823680646738918171528070505613729363042209830411824749996575832263023637804210365342275811318157157378022978333217716463420720772905846305445022141081048320441942338903703583640128991775947533089779514808908118279377586254212674889596064281933647756789994072601621059651020980708130968150880637039907080096372315051775040868121525890353164333407465503102312057158247266448955288482856488578246479288954875263075763070362588055365500705802277621472077064361629687692941953503137366291535694454578039343742672903045605133631682555699783819073622160759849661855701703815044409394025325592107761111391610977403912978789771054880968847964452406714746599955992085109652518543507878143839025877718360698392788305385534942376300130833269071422048001531694559718494642907851704295754342921025816367673909905452765980127113672880630578408979993131725214928325334141357651359297860835145997557432569019531787683964241163941982169274024412214763150113613548722461282577158367458163196117036017858464601119938262399621826290055343463290123320223673605120632093066153061184147551557617332658057512336540440427283021508211366056017587108109081825412105983213388459485035976789269491545447653262016940142689642080277640443801724705187522312424861822531959103818983449523673975936714249748240061776378900239610839642641024172573515380148947630000788087524132603421940468898789479796662042765822008787218330682381678165718619349279748836321523463133378910289657994448760444477296489734934620359873974827879154120401801326229651666122626506755861651934100885019370682263394514031406114967616008480276301883218268572812388252358695337138817794682352678638573011068759943853424341473343590322140514581565045154473635716760197712788004406187606254303212312513706845245357805233359753582288159533417539457305220165094590412351829373907891606592582168067570056095530614487560120728385943266156886054898391951198031019848872372018462535572682919870490386543502704302731505200690536176908017834188087240007856956114711849826627381430961909142596049790421428130815476413034993544002715628991142218350115032778662292813670972341994190146612086638339876113258540938288950750067637575346707183560217580138817462676198740284113912204118386513383393265972851195180013213573645353770266457958880862483085782520521311325103492838516689368786883466755890119185992935862839377917013147504584150820897939231667423658658397934276811229838381009794574094872541902512221548867670310820521535396367622456791026253432934341213849191587739682993872602458084284127469944356631000304379683915740839135364684072721369515024480172967273110470404157429456693747146033377876058651054682680109706392185405601269938212114978005896617253422037495035289668933724594591275734444581684049935283741532577813997628371820395252597860983957990961234892949316631250284836338916300885932377210846118325519163640245812562916977703530484426351359713504065206437072642756007834535304479235796314196670655006870067350445349042855407209990839374679402099096622675271903220275638318717211153321905705615501042100636143426722237198947482311882089028618804991297191425421606565958050460802251234336131867228344595870148474706640234511910540907133555758849925230283526496421103727655127022069811532163402050166538986910269579483525289397842307682667167381599837594701781403449531985445850944699402151571510374175027823155893074216115295760399754998220591154343720942067936006852597873933708775641678082127357254695649560820692238805654181502666690579333105841142436495314639124815788620935624400561411390240095186960030303492813492104179116290856720248191613905554193922300620761570832235657457670748927359509568032593704184106513771618024556569990504926264766492226935330666090055156148653343585888777948212266304108453762670176835905361808426824070542371775858448271408923692611167716451891767795421194168465541245136013468155091874366706046534635581213470654593804183805176770841317830006635857549904290185086099078764090029192524198730032258798123138229577188488922435440721328964345074858083518521123625283901043706760835313905163302731759049888493197970531264184829759684770114829274302797181130820271706330151373849912808551969128840991770460209574277100435856889083059887434174665111292350301293225361898416002632921558435420747463503285583336989896334833444152024086084338945462103571011867204049756330362923827072472302354230533518150504687640779156553178876452490756964341990361913887842777568903137087620952813503002868636534093786845718320187021314651131434307422681222380211343388074414499981923093337060530252849882001609059612323448958447166531760638158233020521392523596442319594248839310065122087618046942410722252991504479804674447046152618644579016992954547120556547514405215733030156637837739394990758518244205310185674583045551609442304591560260023543807721895257612699426379872070051367062348081723624718964366081576346451210932282547579720007306745446816236330477618012551892990314623126699502967472479694073139437796388127231479183269539514471599699710384594344270501683626485644933063752521072179174085784193919714280102792921722789407826133904668292581543727254406580920244860017456073710788487560635264527249161363455404000919310375737685406315028500326143999457725357876596162881012932377029963562112990985570665988251922595149908914228707333268800650725083098938029286702578431453482146411175597871190767596453168453045416061026624297608725907141938775327440326209728766387102151957225630164395318306775496225265305521259756166795185327003221951943266151574936650175675539145610523822393791481122966043685912263862450750552032963426868949952471704427361543355792290788132090298148700290234349078788202051118652926800172608810076039745205071558348572271985690168593363775966317015737575262709422408793910783095047034799483771313486652038768263835280898897482972467410739778430477009600790883028004296963614244671163315522054926887946291519180416780290058465254356167183076298787961013521188147937893370609465044124133711285536288983042984416745145980246351598086355444465071993569169109883959001115263867134570305738448497372262443927686861271233213611173784065677220004903697350913040847912679510655116940736033320215631735100986719497295843735232254810724727567308561464842798697854374586256975010434246607105708344209250389827805437637053411403533426936559580865979593928428481812618456080980059173467945662689561670766592592337541951994228574596729602379769864370712289500594235385656076405999611469187707022344483913069321601547135015639727066080626754311023635750656294342343717388540531742957244153373340369083574621303984006492335662459516410815561686861699256503680418882799520467731556096626327768190167952233009605354546794235211828569785430633614063019250983074980313323350831518311133336832210744728749590264082241537853718695279951436564808557529389685585758518144239910820205670758773134119393717543205338535216290311543829744302782291329420118184944166974947958960342271529769171831863902767256634357482013637562652125007709948109623419092497340327766242554090572719580626078375795232475191774648892337693985764778717662062319735292929476230221111199369618270228859053566683496552705352704757913586311816569384617003796379222300292109990110701475441743460491926896082553995391927398955592154535975672339638185563325867021620786201063104085712555094094936001486136944861354412701579639109763351742728653541266821055652605491037932860255885524859468670099092988744732085460973576508891450089295294520745823182334333318517879757879605569687541892207740870584349352328027067227482669593897706056914272585628170123257128506334343712143291652777362244326637594093809397838587394636991760560533444430259018703690628855929526123232793578676086621335765691730617037902852579872994406277698837596596912843440916287987962990350826292700110310143437608896127995927272498972376984834408445190040502532521005846313228388053665019958830281440315988702838713348839092205281092732629006202850709226312446289447471850538955057031078427433264178453800560303330955396815142480677357985237634969657547873240676531810420010182959903436565223303946025392576753405713050812075270797290225458130894496173350043232536855158093969898528048103523606720455885104959201743268505828402008923221181017353242667294296758280228373936611348484904873830752888548329005685559222554422588440881486333698265493581689867639352294149793417496832966985265663516874316611836602139364581326497835797555663707836931301488385573365781408963701016590619204999294133219257849025720939556061279587400297647645243675905076794597668566237705402076656654923866981397810078556400358783568894463557497116428402074338543428374597597427565061676781952589876031586142065722433477004042899308366640827567054999773287103370313984169043966080690498958320830984943297461801985762352653316311621773686494564864890355533952007508115875723867371302365887643823075750161011698921733265808442493299312071863117280491874646376163554182554250930152853998104354245932923494294200028194143071111857372611971928193545839602738044119592579206348689993511591140035106702340164839143776711989129810612654461811362750036764986222112904934736510006507375095345249214088877639616100543709712496999084368540964078039910978207682992155874953460914228792236677687455545836020520922337063100243687763129890574872128146704702191533696733619776538033452555800807915742310849522880592480340413081803342940481728154819373438770524746448726125092543469885012231689537028702389254631398053593553304950377743215273127145787533611863224598259334645152498047975045053976748601397403537698888835621342861238065257761245027364212260466929348328014639509617676160330461685366518920972296499951503345169934372079399837396547130574038160220855345399011036457382167358188257223590074707920564727496098341511148176719905862871931038287372914379775690516560683501424440557668596264287727154374724306165391816036740548234128567537200115682717659596007178524461788314886081288150508886384785938285135148819005486322430236562571578155715733566095324115057238242793519919373373097269519641575950257664022123385564243900250662230758370905682068489427646719234992796773770472278325703377382864132620807668135265035175182397511929928585548290776125199713457425367388491375707889874407669535849643016672264416312707387168195825130753907188585166629290710070952985812953475729487051107077172273310994231600316808301142277206024428714682935400402110062047794670253075909087444361343617921411605932530263420971281012782904161163104599908827333789468456821878745978760117908063104534161914016759831628465654283419459076286943612569397627022600085721276428437367180783925287007939962097623120599665683328048485987507526010427036307258945309606008492461497204416294373998705314035584334392083685145118603286203879115309890927397616977936051571851056710701957881968886707971157513511605054884819011204569201923936602340399247501049313648489925890615680494393330944844289765202760514783803796105554631638631469250127425207024015668740395536461661619412511631207145685916024932598220248259521268870400234477664253796969798043655418399117009333704778341289517385174549079972135085302992892881847495521397823646404424381767014370778261143941921863806270399013709829720749872547624302832134141568786469931936232883363308282682121229560213140834698678669748225906143752279504809935014404328120168954097808020743730864237389250686936289527096769395843489486668899141265457430982599622403780622135654403102083700092520904487376162184421842231782068438033762440316985498768064594994185596200165346265821013730010816868475863159761965965925621282250070678048614516864917874017251192252773167862246539980973374596019715564760016534905940279804331412081190647631637882185367205284787773267744396189722841990100483618560946820657307993878237628885021961235386799663627114031333228200623870037052713839304434805034892574182920830085895838737150420579532173174520995461568030219380034668933152547289318196203433056662682879789937266008641954655314009358177007915944045850472971577954293253898503263830587227956941104944459797110779917453673604055116085087596182580349235734936368044586883095076047671739752599582862386119988859810450339780261410792830879298437690954273942606765379164902616823784914407776209547973167005044451847469465241454785227088691212297562880967937694343729324879488704722905041722714691197779446085204803875315306369390700055918152543715340445281867160638676374898218620313674386021902064728003908064471000497830043488744792471149752595876365510947167433946444923907947293994621711848520067127400870469874596712003161708088874792622467988672942380853679401898534875613562283508455383882341425073754005949720232571776038564596917170179210077480652733411359846111996423220809739556985405340130153594820613217380315912555466868074583684545819650459861829503576605658037003673255917730226640460863762227049493523073199862321966091317916051711680491483093475309175656301401126733214203580807958445031235305912721069890237416962620951575029839889259579404829106347529387946513658607866031657121645416557096328391287857853828568161917311504119123670462042310281698570718590244965437594746232118960558798887248658180361811558673633602558991790521008735588266762302714817069998542453858161557902722034389770910941565961413669800859528894469776983471619928212484776708857294090808358711121431783228681675213539754654328810375673435381167886319719487663382210521502877233516271521170713841215224277305568125164600842532180004471205768042425132078737945471656866643174778280109702779829592198207820618345466988246532297244686858086312232003974646695869157126752949127811278272749562738781620838944632395148663408055743750566586696975843005157588497619853208887735392961801708280950662731787038293378315601435119645707983581874639396163156384141167196308393631494816512609583495941779479286177599503644809381490413580315208417618486190945638194738746899666903152352671479190078845260808748810062047309585468549577298871315091050821640291098575935805610185961643583763517400375668507867966459758319024373732866437024304111897420920597588805759915621001726584171716625346891027401726293123768099439892376196575318735449373913663033627513231688028482152537242940609340937269646191121100022426535179797730981521852187864145674035483250763926302431288835954654500517792370321782689412702172621258058572686560295090708324820838031810119536487671847453596750557707789973179542163466395005717664552034605547330492979392281636768974797124843791470337369010553175768048560134234141231884735019033500721631109015535668437816080586238744993176806324597580876409686773355717425478936571989647946168813175331988484516501694603588994699669058113350621942145095675334198540668644656548660662036777246136078579455717352177400347647419232278825295051926610558890651440900197353563806770237731202380454095603438471188695668173474132131362655814945413259346427956764341172884526440108334420595646135144650534185189712613557871402107168124321320771973811577013368211157621026305747661780444493031110872761612282177135162159001856395458751066686531629750563908491787787198503591237123467792067839588308857165638433789806496940770317724713717974631555707584758517410456292342671439910833059419044169902912191661956064699864867573558502116819253069060228145644541461782050206197768028568734857899418341846682828753473377950068356150337592397413143594159965051321539292105941627129489049830802247900211100622016695700705732764026491044982897124336537104843088001043750187673414828210896879581721299316257045328420029004794385541548478847830152502184787930908724982566550969710317613683306721525699430415761964391755755972257462169839739851436887279419674951754063117838761202383734217033279980866416338804758808460692008969859607835067578567355495906337043858069605906639315660058221812476598094015619379891542787808553064847312916371216600317158511629301490408453027595377534500860027339945106011467366573952922145447473448434769131785290973019233900077939095214377909684141182679839107560594440619762991393324283484962193463555451093805270733774840637913148844533352845995030266688139875133767323712658696213977930527346446804249819595663839939790232488920151401944695991953492295796604292035141247507662757733506845785958546416410555494331900800279205676540738597546287074671839808599582442347277149231266811166412710348177835027623430092428108137223286764112311523071178936447622230630873184832596143872972674728902697722176047683000264364556791938660499429856623093387219416998589061379907360398480444155656860055357149711062027523930629770428168317714527505774312995254648007288612531678886913301696095616500930678646138342586243277099785916368391420317834814494527843315494492084679708152422969507057808919033885940678045127965575637692559874803860702921428006241722260559830066399204877833592561944350445652493710152854839987843003728465629502252346215561367130704998883267767999234918408593077768196030585437624092209231584934883357427027622458210505746611087937132068962377181620471624893196601275157080608634317011014462003600414376697255786763507480654270878125396326427153359648850486629271397714847552966435155041452548248542422917691068029722861861393835781087344089059544846671926174930929030974402207468890218827591805304695231793181080481011864739841647572006105165262537584537521720798530899057958724759214201599076794479754032116745440900010263182605176513344107258427007402887692086434851098084612478496632663025960664947166393676558312634626446599616221437633376105119973388777874278865436545963655880633713722529292330005298790724795938161427686616726548464832770002355130582846993625321633174662527411729477123931109582349858714612542174803824293831761943575872954210979076122629306496627843828101628849761966023610753734218778510119563903368674655811181771767076455799327827658038540710853209325920055057512459398066504188533841024262925745116216830126563367326079306300507935060496064037837736699571554455776140712064681530230946630095975996786252066795068309564369158638845743845646269482359408432221783020982600778564990277664119662493621272305754826608760196080714320859344374994777974476772792585033416254535785082769884337643905741511322757262929701076032592874445730852929542495087275455035127724866857303664927271794273088522311423817182387635514048595385062653940965521288841346684109871989048282768942770824978551926952301600652529725406817409797957977451751701249310521336254328244713707023416753271318267221682005594065784977003675044041161514148660745376399204221275321420714544441559951772626789430330186921948231440389799287993426653796023734251697658451665749717539705431882033936038748297389513779209344446576340972460083068285326784283865890598647646551903540163396007604565362319329402319718026161560879797846437594139656901882593776929779628835005214524716911376217841479261384271957488262985895953701758269061269796328198787499229483596113807230952182282544153959881177653758663332170815453096781830204615266733749482687021866060575894374318393855687229002707635454796929274234458802384893633302538427552929053476415506247079778994915387075486839144466601124065736497202437373779387957244664373011549734755212371971957458102343686963058181937947135317492928688885516154576842017616391914283053601546732708457755617081075419067472509320718778609303648973173843225665254844766395612371454621399426284909757724614485159901252871048174168609173362099261944338505584210825888643219345770810177683216668227967225955703753654949360914665825020293166690903903478533951101131000937224560589722562755443683357055815696748954224357125469259700250206095857719881197240915886028731677363827233390449377155867878450739665558818902205233083950884083674792712102842600400306820726890071963107310044329073844059596936133746706766506560848952636491075399178147675128198186659567733747917981307024507591411512549076156799523562478082646248549016342337813017466547265178594676547145167409435320059209254767107105468904671468605253008776120916037542558616940199130386791505211186952914574380775534498091991481982137591698774049947242405560979949821562331193958456783514601307614540183502155745871753662636897496409571764265858030852857055648191971857035429585625339495160225662153185528638676058895124449951871201327356130369658797410735387163844690884011633958667716093312583539388828131046377864538527577323878152463414693221340619742344801218783256593556380607649296212033984776610024434995191857012429572091201927783524869318615846299903171229218230086731834671252387749559159124280498372992700107657641270045439970850116668195256163604958758658227384797941789515633284987335286499644972532462634959000504577756164838011398305561816672412079962943203423219772553082437749217968768744581696050886399776065443712111639046755283110700761768951116655749789105479534420540915759015081999737027761945441846651547783010372999604693465852864016269504288705169751037460322372444723440833362291604832376704697956097467827874755056662792387374672620269552280574512604606887841109441890679124376856540397520226419796964408635764774690414981825791401498410452078202038374856328454095564845173486645829523121418331581312861427348976904325472438351652282969236548175783751356336457189613461055150342479125980665525878694556025793850363496258418511689556661531469123988005388769580759597776284777051075102053936462126640355403517319975285918448892308020231702398428806490455885339253353638439079393324791416691015201635945130354476796074727440659514571496877759940775361305029290681518079873642108654737409302856596230566040109977732639220581035503567765502296826219095605390841793854331158346157337696524771702096654438678672082937197839874199069241148857763603342513863146809545142449829839346292307901155209839502457741575139789864568456943081930940405869198578731015657518605635128518685749043996667483672908024943889451044425337296018052340047193032013293649572120297781110406771709841655594650155137719834827708862224916445131543194013348776378616717955487151278206408789705888446302707185910741040838087479203731071466206441820261342678135807072531434757313877913730035361282789669488767337060083357670462107236599898526453022244759303231132115196409784369599454060030593785508866318791882928868019666001982519167231693664686356806552225665284867161616289374427099716947824025845775561607184775297586185794482636323860468543751023446390025443484023503665207270366476317694131430752937919451749005972602504876782082744382788916847370811946633515197540036735462090387254681874522596363329403639249580055905345698046324819918190323319552430252202866802758381190397252529328539232023161167970914815573558224735520830581979486905946937564618206947407783129462017732907355491044926487612835704287850840052792105552486513391840474675314037927709162593064586642695700332240801118067960967882569556325877116448267504258431102908174996094796550222972396963746949051418382595810899946367746656966011896562460910648840427275323786877568344472506923489900425368982105625681674760906868306504571482937155253823921119677986348432169469207999412545390710318880218844663475672534021424481362141415935240764329959917862402179934302521007618130303221641286565086482988120491590049284235459267693774290542604021308937789264679817640505785388744576621801792563520352590553129231105137201331437728998339770118633762174693735788521530645650956553724322202053747423130831006907967841267683119092762388252469750211221343735862934410439081139330939559787141153023443770329331886626440688941433936631902924580403383175961151917229487758550540542696996682060394274688604062634498581309669700209324279961687862551367242797161254515545952223994905940713242396955929812331761044302148860276090917705265780749898697432600049894275282880041440871582543116738404517201211246414551226772950136371334071631290616107495414229363083077005726999832435799856321086603747150909979537553402266644030009142985081328776724729760330701358722518969461492076510594840186200280437627417964231514206241693926691214106587752338511969528601333460490077924293262036276338499866663641924527031493592630785458014594627372007085036133112199530120614593416604462193624836990634289882591442475877082541600995036735265699790716934962203647525078201265972921975476825831642706046941311830219166576224676633520176965284300068485286424145829201552549627825243155759276534620866010261990167722265732176090125252928307828074929316667510913367749306080276173145074118224470952469812341155219144329010031938761750581967893715631012673607004148371774360195603851669461580148455243160338764212019724131517566673855680863272693690064543720126546440477038464247785704548541056630632066338707216831235086569593819506066771963028787269976246305495209933975493023798399716979830971235974781655387305533784097909117826570495002950110330495609380138318777099128860995425900058633918498352536233399338084935076390743201627612522226561156392322867397390255713919190519210540120205746271439590262746965872231074442765387384903935775508914998293839133114349100538397464224923891178631939749789290980793151716720337473845373659406579604869634045629812890593175613536385514889009251285495483182030839280593992286332870307017191646628279494107186046628405597271802713847444971658048553964934648961288173235088941182746907787441041626940629175066687421821021710451064454269530558128741600065454006145268192446594229352925218220007261555338994408841794547054804110913361292207735337717464858594839543366254114269580687816681797533363714140779650725730690505773663415445500401159612961378703641378806775457265541594042509350449256587712227188769546116710344018217844729054249531739750261354202918233602076171977823055036591827061994784998079253993956248699995922554035737568281807350687764653649790650497477909470102629457313617969850550835651339476935863692705198701061007689530362347401630718696154678537503160018036334332086430915923894101887273455922284875210035017786235802441730899935939640680661209986530194398574675258312256111303143294087470895558567003328038346256358127620815948053057857748745560945160548719406734400085302563937288451164424563967985948832936530827131718091300575815979467616919929717676916066192262433071620978767134804382993954431432754726632740675663804149862089214539798325348686214311504766988431306697641093062018879729017120137364784697217045582748740029611826080377879748401312570006367048070349649392435816696448800482859855716241253027384200813558669291074550532420795342051203006300129441573667488563828362125444279210124417089297952062250614467765374204630045022195312317192277897593381805444742423646150109992831928448537586475338741917675937946019257065453704502411717516956952899808907145529230995867660796019147511458605867781265933324345308922629852968271547036162074347589874893583071927109751306347437592924640056133926212804875895845711342572973399630538473395919983423182563088388479776169074204277345528350457588355552296714600098267648076775323083172249530257521540349185462645800350384055660067855245327263417847648128817105495305873278996760131260452687725843413703845325942374502672596645795691657224441859282181178906522190930324191094329201077564361056617976506694411075896673453343184804906941881965615168263796407547017927617549562389321670847515971344706709620028551493344606436592843527556404016724714634551323376599737274914927970706676620735906495903420941754247370668205889609806274714763968260023346179447991102821806834252239066087301016661556258719581521801544538630630864544036811868942570680263803089405311521566270065932016011005118658761246637475602093567406231374962588164797229934967661321098352636751595942804658691544609867829810973058913666607650567225316720150105747299470920906442385665061673763134549918820983095200823673606069491825015021643916876127595415300978316197250559423986291098380689212621323787409851094471508258972061875457421134735698172270016829769468106016458832238111417504882375553888299123197476975625640250279097998588717663336354437457157320917580098961760249396244254482336275654493253000095885337087423499040160530240052071447129264393774366903185403170580132717599603627076718890303662454526784279456371551934460918737824209217926914343818073151354724393122502852165025572506452259423333500534061218819551582804465728266133419752129838648635519181687594708811367949042700095459460972219502796324659329916689735511353986170370670568688087889165651583843723415808841878443237000350698073330951192067525615514273093764115746436525543442923205300099193266373131515725461041716398748883652766126032716135103328035364056365475748397281516924685149593661569877188661052898519193249647342158365033878383801889978175672740866551645235968351927482988082157890538190931726630930152041589365614474374706367715360015549781622372771271644923477450641616200457466072257461391002233794888977336489739993048173916712089066470135850580039859991084051578941171500029158653701764160501017736083294691493352343494801422717299656476729083396208878063468161345033338907573266039780806188438837176196434504095149022589175389196231423670093846727351418566720153189791416503232864801995862891324100187447950832449593277035730511808060654293175361681842179424565526873752760440740662557193007139167115427929403927469686324300692428546847959169785463676467091914695297332663663021261322870025933851969204373425689181534969646100656053713135005786102970068272328629735045831462340588097097054141680404354599586615849690565092713558028535589461286210922236462568543436557112057648724676035556624467888399386330721806238135229481409440961949505196455722297930410393553802845226731995259814839661908457704904879719468441141965044255331390322979352221527024597747998345744782718558220260354690467863011608964137650612927751158048973824323419071012505110506382508527361542803547314902879640260782555226308713583946297180651583038123753145956242941508327198660050685148665524894390928748002486855160043235386215443257736927439112519735507778831715986398092355256499275929274288323647056566500883103789543124781365413606987748038449260738407665809877434933176491196355497039798055810507414298340591217486380812984928759847417034310213877074730230155835696349662710808558822885258561683682137458452278831743350675266251898884030233932866551420168438862377117639522065635016011274209881389401856681219915651386468699765930371110310772474550577610861173761268518511682785724201369848879664272122000529839263687970739752494161346276514914351926695099976753548347895342306697836359912199418533419658030833002901147359598399886493316554050551554881216720795000430514919072719091419283459703429954727356190685838650263238662483705750556688100545957778925200829123456287418731707910226179144460795511697265283423795769711202649241999883633748660888552703435738613291967031964435389018057102193940800515562986896492193155308148202800402517619875906821174839281502430292006327808370167160571005524157533714032818545211357723707914570667391993528722307640271491204369700298940606520836974920757950816254903497185673587575414926691257441798947609523743203531896702329420140435725787371678010823035160971809093042814122473460761657530158097221790620876999751654568176583712208200742199646454856777678867887090395530019142993984963701708137922559233109585958334108179116503215543393829270232044118936755416432202110527663963789535390362763900269492618237846027077168763165730676731948530846728549645587740184655253879987196858603721585944855924930243321294482092786562041946422382448283633500489211747531928107364606511864211638731971357757308128230908554397801244568248299442108308376319272776137654907703652096224914596367735784879329730324452083802556663296861599227189575479647203734800207262480538642264444160408756810619843665215861093015304905865502633490224790434902250166016000116901572149459486000518830989193181221130230558370772136599969783354204965985462234834152867261003452147576181242361502272331433721158340365084588509499057910749781728636755377712688224577414027987684268922178845195457383760902690591816935167444396408108615249266615858449372061524529646976803151738466432812206072100173210964096234328534286151606189920558728293403402223895689886191384584715562228545100100912032151965456882810716921086588808432370076820825995093183633329148910612528633586914699464457506649172234080254534093514405870425164460778605309312751408892318652654901227567341691032390497257129415992850000150371471692111832909290186409730760029305191510953619299075933113500282897972595758421798677600082738696554592880421555922176586423879886591117821260224908982379002791984951705351239894694961825706000939718448677615300728568681899044587948863023215861156781838900937463050664257110377202318618460924600621365369943531288758104652951918639549528832530088153817165979726968247944505709871533449358808859991762529122507812046992234180480279131407907158370452722232547155812256464227458441852282248604294300595786546997485634676519041259385111759982502589309157962658077249774685888119401513930143650252116389396560504449061029050853425279040004087113514904635188094128250068846474530484343093540083536375708908798090792512736822739060247829670348043668663122383347987003623380261498023284943630892570805249608552365706174091938458834632011242006297641985858433227156811847647130917148759322209490042799722983817600858093224870712563874015381928675367872578552563078486780869860693388195072536543392320697740940901486089806187807381280961003939432288039954858749059127010239762191984459368153468271830329818531421863316584295556100147220067293759175426820287145850393118461298340995159504197059486173257909445040490967559504182215357204296096674009066191547612630920484629347432311068607860072692648943304882299477731130587526034626852889123406828542677763985680479344154931385692370224705381075737944369335346017794907890547883063864825399157952190490517878131851715356631723271657560438301110038620535945540483891101331168036378374141885019801561851117175564429458891288706101827293546772033735525884199451823172661583086854117518404727712694971346009917202958619126405144565638063909842567164417481419919906816479976398329642328264210888820010842151031180892844213629352675674193298818760423509913172544524901858169135291019855214261962188683899453819003807849028479333226563764993974455470179313377551678026457520523403413806231539220523350788353847936883894559660819231690517935582713676010816467957103645546840074755941065869039830488882996072198440473650241348452707391987117245675673005591139569643613667773950095654420467767335823120493642107056998900930690592369913065908691941595002663184591152156433190766737868710360814281018576225626308306781881383164896806580326818674872392496452004556412742055305642143165052969822173826139196694488629057131154098632990999618936299055997949388133553526088715546477334527896027085525259516156850482340840923464713196157719547979980266105194835953994838196015915233578151361611706414599056181020989615463989499435835134489173945335982964238736282153544517992842684778009494646171039263921957176692540427224445302277411215010938953482927834557902520587735752079078628567043989409978552349318295217240923939385800562589291314422563064794893201903087935353893746817868855732444651062568208659014536492502074596757400687018028733239327666465002279698368852799228387581749457971059760058727772598820193810153996087147374249667865442146164104809128925262198132656493648749782490774678801373275148774811145883799876668539011412546597178657047040457007417078630509064705983403868314988846172792147791602765197745387903764784125795243629295875501711067821728745777391728584471438069998635972805622035213269308864009749550680197952077220407024730577186877315503149146961873830048666444016130168758023755247041785124863012734053834082597199560379860715459377633509988317079390988074002500977859450939821137776520788142981414450451261298798610805750098404390750877614679295614999584977881688698774739068000411803677729640828129236326493235580730051445056849205040805253569165444495998509032346513692093922033925120215701716752102695801147150172295908620995173418614903171098842414146775385819119664920698595513963896274573842531430651667790050248330018598791837913911248785539294182689530725702131374076729290881589612588384845891476289675259529486027004462901829621666832991088022246961342291539862505479218555456937168170927121706236067795071956956234466601023744971619142744880117466324187701248147037303012781926682237626765875217238885372650333723293509292158050127769076709878871241001690989515867419996880798032211495844348253854626391909003919487451569177670804091528268694458036167160218010197059886531452477265410045476471425527161139169303468794087609452924149138486218109358723397258854338823300045882713962607538699891052226923116010026340444934476205236333157939663304093777180746004406718975714634167398575318925161158818947092361321760989585358270434604684573153985798375871563337690789148439336453370250209075080940816313570114890306764876441748572051033962972626841314478166076769987617421444737301631680893657895177846647623180704123255994468170499331635563149096553635614735144607139938405449652867298999925105859169117330746826831816037927109425672118639627970499639647006372126416567415875552762084250220375639541543514750389983270974627584283011903533612027875434663722664416815793765011217203413652228726611486545585659303177789130130767116966632318636640746496242496338460090977384630292508607028994787476183662991187270957803322089814071060167667486870857653923271021188508645447724350461388552907357260191729972929412424623675245869292196473843301010444246351232712655642367860143614408359107239763115645895611422442465841997301417138208416491093346136831748118097973365711545358953721486749313048878392258329545341985156332280805941802120462741165317887793321572388591900133431335447818429525692565221601276708627774492812458824679690600593626852315147058166806340704781777665257307255798576928704321432954265015840901263198860293626188637699005355871920902241207076718452881872461764512305499634307855462454120325950766684578112587720137288202211665112226724433482429939973878707502334031701400858318613052857186613258473708630826151622884920057922832113575434023372084298171415029526199121942410870604954111901276666318700528057119407139813019239031129232936509870224899770442985995082891423658991006519995752946256819691674471382167257655930386829869761993945916585796786174087411677149127498199250647491579413036240469603581406510331194773145316338465618436794358535553871906272891184455744896615254242450031002676936127126082733923102586818206399347418330854173737608338511466880741942528215506582021544026272823604452063810905621274733340773196144756940331523094636959305820740112758604017393263497994027078030874950221349021743901504551056520340153129061495611699531393769859412858513247028571392262535089865966058826695004909196543650703626583182260267325597381629762048870536888010786334034964392189047592954210996400414679740909370541025000120968155271992214357231618220549905559252809599065646240267001703675476000413040569344449541613706880984823921770704956686235544728149622889148364500916512044040638718402361690246800161044181838915299329422355481105549910907079133338042483073467616817590318407780413879972317217808012706567236675626775359508119140490123486772052005707280407863391730712115148188702298415833561793191106429264655587340658523950721092300690494043056242624416416878057623983596021577318852420180065383629919681607286618391916735783376358884556852927477865252668497679653387054314637552281533889537405542804574298619049754566285471069336286179853447694824583981255101909073103743419836160486957013909136791973600894306157570256084786442750416573278063689313314326077909239306334856965610083004552345914987673856542100790974273524429538005250052590696310277761291537181035743770056647433784519156609849047577865355334830880080161956142364543587673599812226070133934079806774981495116733014013657404727570261856032178625775321476334554314772800180244154595544539979052259969549988138301386345549890232009407425890146106179008609321564656808364171230253020002323103387530069799031200598266926192007100644185178254861411712318109598349474059676413382533294791693300773794621849792429808695963008801994443084977578426507037937075601741237445381689847333148578683084795654078179016621632538155526544116259131498019607021535857320998917850283472212917523407018890856891741845094115580608067122000488454302160908499357379587702562474122174524605037052584552397759897956514542379542372427635207344751502825304316620165981451197907010688887892357946969935983512727341559166850353310522383259394319981353379667778637959316369696031420723391946146184105424366197383303986788024611852079395809420501906325260224490195915064635229383612616385194296603701753108555219733828765836174458554668486996323845439289142431284260803684318726486919144399637000971497653929104162538135982232686877749385235761639003980030990676594864112147006244588562475147097853673292723721716297552744696844499358354693775367854839757042250421048825211016300284660763303510703617963938334036370626343427286081969487487369451225884995473836915312169778512946942582940057203975296225885070161860394623483120122203703316195140729847365611190230783733927236612254668296468534934316941408239816339234854404385815485392378902936901652622747379257397255999379311586488130857441416770718093160822746527644113915234356761281413919053725784065957329794782126500105106066612583427280475175518889194226279689727929203752706718000265983365958385167681337705919429066856461580135582166944978164219543457189538003017578176921776733710332837772752735075703191136247456506943375348255325528522594164546599408792698343961487972626985783877282332719148507535747193755596522468755275959297346542310778724941351283802409721942434832598521071978649164665408429818881341916500137976092288609734122120438109464764255569619989939085781936398702497530222741960016304192933236650196332890608406416345742856826233680682250967020905283682296476424283147180279829164442471455137320364037230857754746962049693851383041128311479760831691536987616869903126226270537143087802668038656591541208519988991116555272820577252348093327223464098906798901289483346214064753493236261199599617095348091460177413485790779745204797700923490685372284300942166246322391169767593505699086683148952938813650188480439483630660697343960147643775261765641749261476593216620249984935113390679517725685111858924506040413288429449324416947751230064450682769468427751725241014877553704336869046996074962400043082511958001145618821313661775818477261213070394318608251442000187959916566345175765720504283573892092146592469107323387515935928210378405245562404379008547894102560677790846580522330517912656235819426288025750746240524084905557546144584378936636667748414212460544167353640646301671962696561156601910419466292342114768106669697038702824869822459928087075612510960258110458893990387962252715061322707259744560553300711982210989240272730870205466053016697650660070923021386580455809312040451006983619264866157072282253221540247175571409609827689382938135274406274045990798556819910358129492944850548993042839193319399951088935321183511761410930664445389097669821270833027519436183405792250477951369214372540783494272174450420257715182134721154699515366298585658896272027657947430885293431159542247194633113717900735179954747832949946678442045817752759994447524711816396183453042089878385623840347400682915206686908822814636468804700158995062347039226004169681721880793617013093048791372653223363433657316313146529927319351412651570237730611935672003934839652306473122895724909399682725850757593031442972044771837763532906935274054768358690826403849385618759244468232349976185256150127134623154196857501771509953398133044080721132630641987714298877034980391079245534329533300848823501307979695116178958554414468290296936011191788616681740905568532213745181482502666284854999758468917872117877080284628638006988513244081862677557541045427208643199108837048597750541902775996015557215576880998550884444912981132536057430548926477240852680687933750287583245813823986117412558329685280043915284580259440363046167100132778465774658881694607782313050841874006802625430010154419836784528201797042541758234018730173338648192088277083705299811669810447934216365892894801023715500415941318970962342408462667433609618349772603583324954072905031012577630092371749799517328861900737480649913930673237129533185846667093044084588944762719419801255751517110277040877641754262514209955943606613343851437924619363793723683182830591777733138830431393945676618884677622286118116750696798624538033880153750663000309620844272099187540209615200579269357893034338101127080728958862210646401799634320441056476618209356233496659773547669100978623010430883329504167746055354583035396505333699330865774137471595050861629792674295270143889266855000904472591493397573110231578695523526921084689962743640137064598589315639670627904724549565162646008488925735713623872906889627495648972491224508460955157495435248660160415652492160776658657676783356504011273063108142854572182331092644150233591032424958273956645837902635180926669153962056461829363635086873427497978651616076466039119190472740016327767669975616550360743773628631988060264786318717560003433519020084792863132692230387002902831710840492716227279812402472200467320766070920979608700144493930734786422757472704523609283998351926493896694927661908930469085963247446718664983584449981278535970469385120184231525408669692014329872458059970957409397468604358639617293892095473813250288331248396200441801000769555930357275231265803347335402197426075429641416414760826337421109003081725804681457903562841289896149611810466269105192891473758775691067142030440651645038278952272289961044116362943464898930207582717191086374254247654524799806085524897272366872260331357984120921266472748706381804255855808460617809226498238282158603043977939359332386060963337850691835623806818617930215777288943956180038232344247428306749187384884538251964314845637488813878276311661725183301734118700432938624644130112252202103505472136725598752504879784252925937935588296982428452552708663821328938670569432105332975219950121660506698020482625512812932996963032187663585237565455433257893207081976452393237200833980666459299436438682955962857890777353702911364271391680754031398106748463039875978941540330353351491274788424097158577368493889113628100595094795424387225940303017376622356354017393074171333527214402547624607523424403280929346218832207888406844039927665171508684741107678863889410019875030747779002530808614896933262758002133767103329163396417156316127634045313128547718809230672425070066641439227325014027370353505671005713811317731340635180637646563250789520845211646105964084591031788329745385664794531546055773302604564229957542791253262699384709593422703234692099109128989225549224468168079889249723479533296097178134643136107198609012927771666819318915799699987512501514652764564680037990629015017191289393527565653881959428086697209014610917132681773304524165781067797871753137959145929477250388189191946560110731900058277175161446207098522023051680758285460041502856726289482211698956936977762402757475383813729695864130686240347960057045394873949959159924089345005838070737453844189098971962177924608882860183696345163943725843179326071462765217582591536406857982073309881498668949194170591526394876052002135414674189371066094404150044815924792320115741441204698448355876031511668782637787846147922579473849779475240628480779165401866903533771078046309645958810097852246023180545620456351804150771516726726392146488422129878868371079472911854709062591132649536120986386875953651042290486910562825266732320333150838473889162817454999834417698405176767970021688349498747624268065568483741662280068891494593221721789604713238476540980448179192906153360179292372258256668345754932551257556454672495831227638077097326252095453567569943906821395956054735092627555220013634227448620710446801143230177485515513256380513878802658485377485002278458835273801900736776069000256929842118658735764317635734278064459913640191243999820596070255704850394968983057326903446067123713172248255313608921289935672091693579649447135771164468651143838738920155104601955301622548879317731642573875645931684367564464422161846295954717315272292629935136727313620391811972976726192443247183942020116559479023213702854153694978601696607232530719390684093020557429179318205874221028451780445280929135078710905433068494818464205474394081615940144675351181979379553787581700019416336985670575932576302817192978266042476375266285901081424066026450928527769417161982903407867069218681248376645283334920471227958795853001898672286465315129937927387732781590933063493984658855844383981728951299269472734499188051118540330149368549556218106824748680376958981756044552837070844210426274437122592661033858329653793515913588041497313363459317294802080188642392756801043333269204879222225727281735474226496012094386754805043699707564044614212442962351595918417248504947425381371515068980335878896403648089607855273758986210680573760997689774029515253256615847434475285211744327549680917998865966945085314051587151929947878225744920090595795557040656883672020299672661574457937113161190482681267623645178234841480474952720851127089275438669540136134438973815316826330117381506672221366320906948459341935174856114162028508257944204961962482394081851454035037969157951059143706729089322100521473138194893536895411126447967932616373995739522207972497245551640235123688033224420864524501503529297870024632322147479249651035680620701084643069242348681805365210612936737274605172738489143539648862914112484581701047145280105742601542808052641140585535756269845397182924392872160456368710977454473043198994226293645953406957273092483872775354044304983490257592528045725519338413257927763369660192995429481924185338712848641623598943702386920448344924397375598471380500735302046212795625698137144656776871850934690316285590707451134008216697910555998913797523181678063900320978476258869629389240211104637186325905599297143734955016611317264164781884263545822135072907466325704744723376710450080817214359659496865397470705103266486684821483454403567027323615853630345534885707223797956086079184673406095369077785960125703591609081996370628136274810166039907581438309207537111955437001008937437376997253036183821521386147145824069660015063113140144903412855499425977680439949307001726000355492205471952907983279778609078747975642059975024684275848874453365031055218010580584573082821549798063353382978160513360713277597086049153207681830696412638687375599313780485182891387071589527479145750116721402783970612048532302174823445869069546662757370616195885853978128752761830687091653890877596182955063048475673500860003833955204473968416987373200562939245226719016670094465750570098654120647237232302217674939310167594015744451589704049881967377457011438607307362350522175405925272071062313523793466935618883987357552534863673127277559813436481966245129901252297574473227463247246788778959374614331208780290825459081103870930642162250600010352844329995420248242570639515871829482811458495421761164028919893301874878205092075093681326805832803784827705872757954827529112542828534096062638951430347726434325316515917391683240292344147139527336920790547370472657312678297418794769170607745044394097916774985443443056405498624346266431876609413288207381848257709357509632525809581480202200320784171180605130689539615549543640262890910741985863214430342248623233633615877282342341038835589572748522154300735291330965497013362429881984903233292752272698324229278037275968859748785117431321772806842704896824535806572114792630661762867847195511455876210845363841145969222273209943093492216504739522776956763578957509003488149393651961018101903635767523629433224581197670241574836600186532027782211364412410175331022570592564373516510989392258013352642943868832252329090294126418765183209136549669498987843730927498623700160014217340735895480178100506614319051703752913251661195661954223990108016932653656439006835359493899953900581190735825282825741330459403636523872877010147884390085679896004173882519265251504308235348900574959006620011345917005224534479887149538073352249970116637428946650412502802220758255889173065164042346104849520844041889152173366504740710233794522267191388975022227478537154614552958487249809145497242552803970868004147115287040934324964106336388059935781792216437776024818752561233586236449666907984081904167332730344403182914664812809980429522748725022326048264406389713834065625365065415884841031693671756185495025779406151116271178458231069145464065614134356627065293497228975647827035203928467218197478797704594653481671210415902541460959717758700363409706585737499207962751142411307874662087491217312488814242673004263908420968449334133686171364550861592881725537169206485884274216968084228226976855933820289285700932485337711930702681409668958973303908067170197660682172140786261249257735580284810878666183236747586092069118965766495694507851499748007071487904672688539877711378504291627374249857901718730542164198775345347962434285797387857702480063417815400319643150649364011996756671232867940598667745685017056137173246891937860659047319618885500084706578915567111225356279934849745097979099104547552890309849675294733154369746416809108697787102119421963116084350694180194993278135225124329963580032814981663525317293002798124582112352032401074323621933003867997228167492972906069604766574572801682667122605111981045014651828364530091060214179299054388392660000774092645146600840661737353517931484212094155092637517369576687053464925854058905668655160832679146398394445312032120755127399215047235951494247738793744526665199870822612444138685901827475103228655849982193655571106543188311936791504235480979846117430326724146429836493149722538777374023477807519014165794078223646226868427682989747484818238879695047345833261945780772421080545201035720679404995071003358398631042966747785909225388861215236219334560373567694466807846712992889010479148444320470850963866659908941575835839753694468224114591327182904905126894419825551831264000693324704148058347621371596140579206907821279972146269619820283311535958589222028101653567858939455994087677341076909299529669845614267294073650982686272255042081133763216360997778205819813153663331327087653672474651606298818127123823166587094610421062698046057699308330620778438174502500044601986752452472780069013592070413488826501952681017749220018342149620353056568522227400519650905193953253697198517061426602842216440155518363894067718398617747266656878003770337723204032463821411673195158506748153462494911109284982427277389791747884700739085123043185621501717710976208998290892684006775618299520130245776481634435315886824030552242725362519231314566971731693336937479911923943407883639250532464305964237552847534582649638723411628034298934810080357003950968491921918916276188091146770883356637530340135960582486222274104138398336767165950013669186309215512844497792096912204774697095140859436344382836214764626886020734762157410892388910329291376528037281087170807978901495893100668513023746392617355673155589581205722805416746232641917218352180361721690480877872351254701805729436600033619794574254152634648057115670118168037171871862391531774172131899600122952173300152029443617084236372356088681978447993952948042282314998914774981830846209168711633612856845572776078950325629668590730624268625461183636735668470327029923141879827918265667814409371946009329426118670990515692334603441845625755246110022784280131481633103090110046960740027423551657087227388915266367574426363244959205650952751909472562913991218158243321769647258614750345476490430789500632256031693053077827136160919716182137613912634462779789005818092672709801242431079671176674516684617622569612249229901936339246530185194014982657799794861362096492837703958572206297864715514907286446654088856810178208078727932984518400072926332274287800992291679333511763933106341651460480118773502031521020431041777022159144318738275987955691685113525642431696334796823188612514562443758241117409632497399892567842032344478809564603508919969881753894950563663477804016407284790113786826080474733717159878298383967607016235831150883098384729491650715421824522597951149813744804622248901690884305776365427615556668589722630347028404388273753466978285649677969935085920739953536843958078921023847173330704004153106660006943855373007189076211729029436898189609992994690312093002122843240979119192304462428896674228503887251393392435340830182636731862501315357656206279468506883445232870305266862905715458108740976275368949635271355963505748992087527810012019013016709617875248604408959318359733560641220400379145749972990997291304418972933380741112325115108638910887494430535027747831722316396924384290331366188582932719996288578038602756704347501413105347794687345815551910659922041312224088343631175019709895322141430244775594934825821460032158534529325951204255915809173112993208092532144188962094568358248021926233143445341797348012558417258836353789649137438073625786042689042188342250020943868126555403173438705209369219855455244726759865480828467213173895929283295966004598296721850495931704203821683199823667611910301548936230808347564487759909477422182899634255027885811776530856893630066536870616660657282028180295879869133764465775219503044962621155661463219764567726222955703033741470301460683241974478973677050444203106712051474920913568992771193512389139081678328700238943088661682631677487423209246352829224111836045890798616664464048664820373099812459395090562926256638464834020708622894270009949865358199693281424837164456133487884781667477144016260050326320367723836809972675918565803744338848334773088350843678231662957893818127654320334813997546348929743003820143617781385277429840598838702822576213177769620827572677324951619100877154423971866421858230678324741834436764591980162165253745358734349851804627764821899296417704649662074994690385809317686726367046613527657649790878706856430140169352541007912436608197972405558116179285404755347463821368858118869107755838376639935471235265557238059683894252990276548048446410224469971713579761638304881198897709719976415325306894635832813115169053600745960909571762743780116855645483678491342801176563279189492839555626322550841250442956262891915809313214437042142425465253428631080312287172804892682491232913991472603766583360927941823182506893220050437612224728972961188643705065874909932442710448205276745780205853796196263931597230280289824534754588004826212159456575472405046272206975549687442980817102551623546084154367130666109481159034345659010465554103434130450080565211525113794500825276484100117801274347504136352057216281501297055678152495081432882751915133510883287497048111241419969354510594037660504193675698752664913079983554685439504757549440574523899383717076163356808265389654532504640378183102011885185086544296054037361752067573104850684383809956676966718002378678413051228756096390243131719119702107537117424513678106513368756590522013087083261185981931991218357472133621566431559944607612947588999073477550679304982887547842914480032420919073281137725691570925950610108995347136440402514256768691157454642569985187082313004524593031147213743686635816365495698182652722678563273008535236989911322641402966591313988807495696402563822730491505280700087902242277451139223466694340227168266705756730101275540283915276227061841459969380184812270846193812963652661301114402876368605805968909056102250960857272810079071023631931990961190394184558864128932519263824903873034115742640280110582461471793905332121422481199273700584973871942513877414184339649092811004734441488205138433553636352712837440836528191480539765629819758053345794723577365937827269492873267351051636850352477650466731969570610436133576847520835032559073883516839322679169780659508978677623050256210735959263479027636583574906196862625907804242029992802627165590847130235325614633704401116921092086741077722796720911735879708446743246936719706690512448247389457338623205014585100244500797014181678731535903520910678097290027308715279362627783872558385064743059100280246558559821294721263974069458248016931401543425099254585121823180365698829173901545699075717116809212529548253701271146382343628359062616277167921077898725683807912821510157117169098901675292942498653737167116711103687001556136346712395783190332912864991245741301902558739571197427745337978969651602629169628013310348785656071632636722368533119994676703572146253559275516483382551419795388806431973082624456989425257125037676619335649599226409689686550571838344280439495653545183412233320586089459610351873031163072148701430135783080160810235460106244947822159390015918298134739600074953178338897376314974868495354073296323295961965001885709515537187500840546993714091846961907526813721736211870683902233610795843083030612033326986873737665292521546834340711208557141363208995938148843201089785988647911964156539669503601486037041867751116595838509061732435130221844190922899319777711232642069784249722162355210531113144344979300622910003009045154847085116609162350510598289004187526076464266973483757902471770999849247903064303181807821498463922039933693788623083830678852131443036140760444413232864687134012642420314464729706749450043623059306457380220647135229973942322859096955407826416362126820885006460465778043140969621176225828479724919816660692716972448857302900636335271220160729360419254310935689930259035421003417072785480040299920375828613552793513158923919805938052422288672844567506838983128941652020749412962436329396003712607165221324473159627451016728976465197771666222972050778592928726033299279351728489754798539459665894281190426870054964228692039614065754128072078068095291111541226738101448397112656277506161305972212740084454771451124088595612890549072252086064532282839835648879003829048032254006614228339351285606554523114377667267277296956044230628137138685317723064106062865481451995979475883421957139935614157780523153900376786478728536010356091093972501567283145713624573180925463291864229429117879449649537789459163454760134374012070279197921932670844261254953307370353607234370022765016745388689386014677912787659864349137955075726222760701810266908327956179849738011544044825752530023230571418124377052743043137627692084640214022886055482787346362494443157398265137568815760208941014049561360239646956548819143863263858820201015276545276999845753569457066955746738708875108272956871082136420852519565787130633063558381060251955312667691548145754981145905857637131259836117497371701338263621099592482940156407189937643911148113510390190334271297089063226882467006378577769062845012219761286125462781231223880887862458520576132726737680490401139348006000451086716930496059728265124394223373065634034999070886829450585607105073851096823554764048092814604227021549090982875480247153467202260459521385604990874869073849246918665069931010082679780422773531058513379594274010186798977840705257928483301815209085684147883178019062118779598615350484291918392803257630137609135360794754883934490038553569270559876808533711754381615822410768975376739505473722667125627918927760838552104585409475762027955569115170208700438804571678568979026099357676236665574237005617688636279978880852203681177181549945839808069440891310814390687652589418136503995021685277637835920899017362610334048023063163561487118753694880031433728262518519391452414277418277486492203377643315598599656951860216618747994209309227818248587530761382384451707127265108755140174649704431988430267200977412232150522146545235056953943730883044217397817185619428140933935913027710947008509700067538970067775872563120739466739071520757467796241455392386847032772791055922049832101394746658033400946260510408232621110609885969646990507963424259443383031902184414101054965298078077320704442799246203429449062048657434944145511164279710435790728613809111759198710920812056698700048115069090269692307385254129951934508985928648350657616310980572084218835889492939865837839853463777177938777334908812904713493578086293632464731923950575934940009799148397216502824766139074783427350888649051653819670964526174386347600894630290931838137719160831036045208469005165753206216792950426791449694390143856077765219760168011113503036226710634506514196340801176462889476389792174589459935155725641891448458924278783276329641093589320774218150531006513044027426633875496260440179388073938130983357140640342220973099801324585600165569255633683756018918993170050588470298474822238550454224187590409533919528231549450513128437195017315041143686593915638254404058999823017286038328060605688037797878365509631311731956275136332480385748029692926106310175904252490301470700286797113888268495926146207900879066960215820794229183257381980940263935034588160216752784042048506432040904642813071555586414931515424457652155493071194914310128864239624859649613679184274941678290286140970421943554838294865786170960479230867134327397395858802262557257763938304310978934919775287968501588066945027296690341507790602211364450586933333152738515638287498489326773183065466383531133014000369070136199713918989711560331287298979802526218258862778642262603159629307838448233457969078160718187061526937987101255925676264662704243832236712005133611849343303924341033270397596513642687709533601989327521355374300349470210671683233103698774594864381289382230556147440482288325658898011920430085615967818554620832631009716993740760546531630479235100102302958808165749394539377605507230953985752961403546242714341903348486227934730306956906314617159520601233460466838095695268632783706655224213234277057936711356239246124739700390690096508331833623519123803175123798816873952248011842141378586643378586945544375226820082008484129304206642938313613704432460215528217692394973785490168962454357549996236314248601946970999865257052205452090485480726630238105063285907256781439160764815904315567029051608412219077388284502418228240636203359045424625312463894453730247025296621179035412723304797906118251288828651603012789591235830563192920956653557775878279446905244735310614036576566881962971640627410209376920312031206940210506027184800288817285488408417858432792223897999503074216454651473498516740629224923167510951913218739979875244153886903517424130955895798928767637952896245740581202905304680546808039674692333112364826027252902485984870170561139364618983324639968425547930169760387362603964712609729052286597684748123182173622009474356020273993555987996465800829615211281204101321000951768540655106144488085603815687624386373639810027253801081751963590230570241648073517221204549675477361385816621868094117309864019600350922093135654645281192787327043604561683837973524035477514784028630955465894018680813696428090869137399940102019214196013876850953394847912600591884490731116324775008569927004424804955029186921487579584371587281304820711940634124573878392058833720706546873274530045187252204284033313393217413372805416763992375516366882978776391465609738231880859772026567497890816629679907322193458817464480161353496195965117578130971030031358358225465886092485418971731144471714845910626471236847855828653175835979478820729559275809274682651252143538547261864822757521592833577383171655441828094713203837092243663609899929978379670604889615155786334546112891196985433892058183082524360786627503852959883755706036965028803086216708759842793934556580026509786444073775229687023260004853990460313214604036423878367221603427131839936865851537876298664709233380135763344373396392045961844917789844320212570116287141242244234187045820136737924213036464947941102364824122775004555464014261218038119766461915096192440379958436295193411341337051676189132757210401419327825848600568933320990195999324399709690250841734493450825448663466985634458266621382542521327628346150176332785293308199124717489887705168474501800145368498860275823825893248104784944012240183482157608652468124288311932252637763652589455411119210687738285863485765848277309959369974061034917110817775519522038990648247855588506431827410222410810602904961690927835806095191269504548752451889602644054177258657144151054586095080492447854458617270408459115712475876221983214701495158269000331828812562115253603290735627395969373633068513808784010639438272823121498511244049879057512182566413868677246713220218657693344653547411010951187035050474571826546854011847976744099028896953493159368415438891992394884704723355620679390192011849120728275761174382246418352356867739768971614186171483976375279599858449926313020777030407555922874502014599530522328041489787515340138188706403796630783725370482898540121642193045908120959370942423343720013346976117184496900482921116838920990675646141345411489551095110257751121787945720746620300450556913105211445783108028188602372523885471226777100467716758545721940040783292743298244873856775941162572062340339998748779455734535070522984926960490416477261727143002668621814304846540522905363471541925841062092603612664544644278794786419871473543900477302546204903700128234403315323098830571452844920134756673047416246921932999981579248098318075885303488549222958020863389990122662325631238318616133861764191391705255819703424550678933712775753956323785280879475454437025130151541439244065395349395416266862568967299023274615337532547432231856580472229407059475361467242624391149418747859740363280955352314554049101705302335447082085726813244308428089968421839445176260573641141878953683002577050975486882966981258042207338918746837712419526367379259958892052666114253701943245283718491786988269400329473457842698563716411631251890348898212808266122826000440835436693085930705401531224074782318317625856225377673153754240976941451321125740673346606312627120572602268191221725133710855884672862241834566214032397269253730112757145821925435462278799847649315441215372131854595914523491762746555504983470695561456683255007407381697559403570088463670940900429119895545847187632431282769347303271066016839399726792564747043994655517200126967709107887260525001788702904276356362720879419376574729563551951465681136229408773000054904259028071544802238010145349937597705650630365054232134510281335934350057686722507104711501705475729658700369565293289052847249703571259110599564446442640641326020100546104207090270983265837824224799622819657823036462943599110153746707004433988696228956398336370329523504950908560288286661560856007875535276308526432405084509142422800564366128938423148704411411310318588171808414122806972225986670912513372887873100393716182326602266955717183487243750873481986577179681751063562443515991061543522283571681736178751391845879272139978855503928122237447611684911618067178764700730738108937565667382342542597617479968048888556897963965627494205376559001422423462264371281209575976296453655438194042463260384536689832488289618873688707559655289208397190184506036215203250774942347000937189697083581303821125328724499686706030650774500690645375982498458789930737265765796474972579761141930359922324712410329917455412044692233956026950312923760702545025525928541555321517104458801431957295590162283454113193979909829343677918491333870115894067349476895940513080405760710529782692184524333094591884792135382462696418157694421986763469886580670927512565030788414652751297159147791226800011715298793909601350331069592478613320596100835769623740729988741272834142081010237190604754985959554008367555361796240837529346575468192495543223227815245384176060620651476331308452292475351463960895401304015384869103041184081683927343556200696513094116938030590853070717179502982626503747533757769186777422821490830569420661946685972590021379957775465002910701344976342166951399382650831207827402334593411246901662769817115893115406751918198056538162020981863275379026146267287806341428980018473062463342668779094024498533083597944409040469017875499314481782013409877383295058281901352226270518568354914036778513995087133002884077966306542570257240114648165948435726629721813182459532051676965062308711390753636115501306572637442186400080460059510829921617813575273838999443870544202794715058706854884974692194656484046834491373920510809608590028113307348767077729928741125222917804821931553144926386434081770958784082096512991615335257072308522035667723384437701714286353589398707822069145261964939868619074039840408522116419364932711128026524651576521450849760281793854884824652699677203807945385144934333888525582125301019435715991636097967443918639371043539416309976237850463701317577682279623326665952743497169417211814070727822931772532932118066536476083590887233168988460996558353722844439902906879729415243059182788715536237597072494915750488445762226136876345113890588833815267539483412844878922617907863056518199277585428043520237540392119454413672054577372147940909298079162252314299975421681677763314216083619026893976319733551614926034006849445331943630085159321266139663311978524302774714076082235803083677317494972341311523918902945903252305633948367793545606263229179422926634774324044118690402904498641431242557999983224000210036859866852694293415706928798863252075024706316437369129055784447360009630003267780649320379243800526992881014769457897047214616219065412758164066568608496284749066799699331084696373343942824969183243536609267728173806235328494969506206893916988916690772284515315772009580590343525583296718664516698161668420941882342629305662879788268574295342361527657234468867468305845351064864613441954757328743514917571947844983304910987921419341916122756654110495493964015222251137857084120561117185874658376340269783858846754308841571590577349006873693554001727679178565961130548218111261790546255769091310329283136709149760676957779165771629740248902179783489118233914424079102628239393413090948810855313335638416531101508283926717867291103987436368307102326798542951393269473445297196303282777510946109414147683966638691808001853598128011519732507524950640168114262655576818268443418437141708504248764640357935344470869771681610554636155868604787539280570318336244833885763603415322825065649496963678694822136081078409310522877796857685272286095752728312123706562419921752156432899313707935546817321680843066598056291842158422559248054634191547867388792995760029195116282344766355408238529920192885753831874768252444906694556278255107356848370120673596804862020953628218392716742295777077662067650758474246415498482320389447288760623757161124402953609725711417448142710964272307808001922248874751553756893693178916250304828960175747476082471361693593383293848041656248384700676302461394924336511738445677135665266476081045983535753745871486870997223125122393871187587277285770124214398994235902797187695232488970983939608340360469662360790376747801305105935135694469365428024365761856308933048658043970810418451157846383660740678845774771066921132841057497199851261295942382876989438889956301732814297046008283355953583653594843162126658186051156840925750564020337339761185132078145856652054719952735510541836822768762713877752925335982751800889742083879077154239228229926378874585516041414204589977120524462449538921799118907842010211325378000220445334075774894243412488510680498576595061999446742856873015003843623203534750376358669140017749041001967478739841709600553154249285346349599691395172343999596194136308206926942919231561556874941751084367247572928219041709918219648775911816279202601037219855857982064306946993273567075728763577613627491698837619242662361486989478111978815021347934101611448299299555835879792748616282442895893291559421944612221859552983856876150683820709847784727089817488032398908311838770845327732695054950148844229579281605281509259197162431521622450662870577049657281389545197290549885070634544919279454869809273260403012991905523046818175256447702648165375955889945578068846074984606009996142039684013751555985452413688385318737441862027949382540317135573591788378614918520964681323332504597308903408679961687639046376233846316528595207910767447996198382918499984938533095298244673862355217734466241561137606102304439418324758352224109583119881238411042718548238920042293197154653427115858986203822633437672711393059805649409736992938861089341155740599714582149732022574527951803657730032708125039416680206209235211289707076817064994605847064738995818494938548208038077584331109800055813250465349331948249097163556422762107672020311338165620416634035193237408063352867193794106068293864205258391317648559807620029885889192922153078604170417508833742909676711597622246309708712831466926146950317186388459115760249913902828882443457613293473591283490886306170309183862458965805314614785115227151193568838397667571429218264656321601292378842090472823284350066229106230549053945295463016226620157178835876634946743021876290059725009120230946334878801924711288282202292860354733618882144278519386834689354972516671149416618874354886146657584510726247969061320571460563594370371601216312391944468492663407761644133148533877436322059451053034467735571816006982622106420873047105236164279592288636003866715319621074658407771205767818062413633708980411187746896164605951580698173502295532092527796290294698133825835749704677114690377767534909132351190486553878585186883346296810382998013172731775165916863846660394907573760032612658166331856778841686689793357593715768632761924641626295284989451606629468063564976355525526753264300921922023767031388534928897601798617730000962342407352534684200177163448126203561673629758850195516701618261693513440268480199347632192673509402777690785232930928328339320324167859083002780270071429950440469788377432838312929638770166452228728597651875396247674729477769198521534103610203980287883853278308438216930412020868611437453717350058074673405223783533566433630163544818748237957230045408631846360694530971958132163122281832771315772274515230618280530911187750727321306158420524319892093858831694169887860505420549450527701195786172044043213158795277463104951381407978948729486068632812093522918343034255096885487001324517218759124113729045093044116709970647247258690046012417655708385332304229980593894471780490076496405850340867478807163958885359850896131304675560900312270983893781365719672695377198783269964362784519884011799603633015398709262071322372654123729909446973773871677062987133643833063254145314821066585980466822387609740266889769084304084699832990417404823556056944746654412573342148211193588062353131855337635800725984552954659216862642349899640396163324255772515515483848690827512488225830294806323178929301748890915867445022344119613314106441790591858223476221272090764538237750516059876039156550513543094487239788929218194310601566349842894749418580899372026195977618065592972947079848905872575404716078783360842308354706082283310497672393461861436499127984914205999129746166298051886700088043931811571049338549527323892310992670084073260477853630786987108994441892356668417088423385049101144091646758198858903991498394172151742315678126875872582574883783313992450963213652027665181985299540081752238696088635199916863609057869973800837974229907376596234361536794497522234650565673856212716765548209927503129331734218131860363852456147822096155848499845286663203480223657219020014810417596281044694212423639168443120447155041589711580187388424084704536549790113902289500940552317526468682575211150137285973429624846839340834210404966945117634577481469601917838585446357801542776380451730132615022679804899828973681371836005529819469034637919600625767181880139530508935102241270570656408388364472360317691776835554424713074428916346139553426064549952685106969266563185490087062356587966503176073473772199469146343882765178815909522410513632075980013133640827147330969307104007770144379259250447053544550400769062591777156623650323451324618236435638614898867887970213920873809235777287709593718436514221097512258259957744778003589529966910562843447018099795373162118185551199443178958466722568466066076755474492973577632672157547788881596469331082579669369733398330518412566624993507758876434378960837550284826570092928839025323962752440159841675315096690127402162255185755151326712787250651227183445491963428355825935897202003770834779145779638009238105563000735106950174444526671596651515526363445243309046322633439562198894974638633772009360893389127668067739636317624449235961842817702007443398043372477155414951626850230192865416446637958586391467477247196800647988266919378985073447663822945397585811358276785564803385996929547640452367789783848417074645454832175016623138844471090391036123615468014453097501807282883398528040398102833533246536647338768940853763961596896290568896193431887384297207849120955276891039498086778614401240926091468687827404969064618083322108650243212006010537345590614467508387106044718343579612355826709283673564497357546187265557321636458127300464190691930960632925420711994099326498021511580213935568033422752965068247124316315416877377138390278314771065615853396853264942621156466426235344783428703107335321395334518292535409227942357200630789378139883255971608648323564753228793667065812130617828107970215971800578417755497317157499100358230743304961909352145379380366284550824227497399113233367841101757580826293116607692893565340496693446308928971355761273689725730546240828173096387992187048748910890338382396970639876603476509119657831197140271876996208963338773087432184476423015449581378276494447829635569656066743039385894601855102370370173762793623668594023026314702189649020002554156807712664618181537655022179887628965409998298237119300254354800967246156758137930437076850396900732097642778852886208985387200772893282440710684933839644347381489351749943989076062062208791221549781177084288820425625347428823748725086756414909224229122286097835293288500019724239204826730857662832390439081656593683852569722913488714780546617484724715812348657668495050665574026444849060755545330043749144151358819553686695613964441398951085613050097155064435089503236352829638410811981283829861130410599489399992326790473016911044728630344012141151765982060976206658685305605438285155392831268476558906059607785508520855178739434162210166887093932208512530051574645722266134321165450203763483828297588493047181863253600556404950884660334927578037934839685591031298201566978364820687932078904270139586199964240361135168994647257886728753207221107467756110739530338025174261609228840740739843279773547902290141683092138022580332667590125649456633606483059760084942668762091667554432239133184660920147811598771557977634653935206130855381205289762393906532322350899140780672281292959275556332856471586544636912904443238071281922057920366448285094931138742904681039230368681634883975131252335340361280617344570879890835974445374510571001099294808829285231051792684236290778161316677883511435221455447299752186669120637251783861835801729093114170253792201627970629217250237105401087373791477963915470049698702744859991487762688143836534392234799756248692573565134616367790375614959582847081858463003886418799196975159157413507344575407457923890426104699176462944782844715117463769799809033426132338822242740484326587122238378259463798427310570011657418745578284839275648332214129592872091674536036309343894118996982059505228523723708886876869154265889055066860379490280342545611007939276878645443409615392409659744788845395479681903291961788910134736499267398753226408058755285926548074697602305296566347006126624392999872727677756102024025763745415419165310019541207751865258816341563814694959693036972286276792187904637136711212708710440362683247912384447732948097500868070223563349940480498354461748068831333360854427537137264648201543999473762392389665850544550212365365082308773081325010161126223859688647856898139110050341853092992759780409919482902544239454444506880188492119097902099366034169267651140245938912234484111464956878316774468299773385693722796277625637571719914250440644084353228675345229951986861363496723378626433436451185334891956186624888415986249659333419412128611558526718210423322173206823729943670772958862658357780767207020075707773992268538775923013590710181884270788993748669400583931916817314403906888938711164586178485473165133750095219398958569942023357989917066402589826774792262568390191462501350380698070846984394776756354260673153804266477676051709623917008441697440733130929877832791823488658317219093867588198353939302692503890221983414557512729711053838422728725777825654161180605378571779427571239410403493230001393101662973794242101361693281407161385040111044147836627044923005967768538456951749550996748751786616059608641428777055744300880753800199297843086599981238633050323498478749492778992768460971588821407254522979881823089578891520250751597232124826818656185628347802248463052788536369222487928750675450157717962660427256873416242915907677692152119779030768039860367432646322849708111207838996732934186389039468164002951741560469164521171972959541615067070686361789980507023486529705358893736207679926820200897593273663777193832224009898596343382166486348293680297879732538875845465559921508874470800150736435553777610167379787509252054202716088120813133250794886656574079062573393524714978918781197615948224318401894093323801284852715527856637246724649471873627064627250443433515008285796440313160406527138628661098036636270736336331409579854843124442163492161167633255919803844853175563588271934363890731781314247482127736693289832702003205613297698414391756335062357289149916762180935019655322822938033796069737958362304999954193612129474042328233159398401482598259170193717501667020570971742082044410312312862407376247378652500228545493809810868238579582387726616977980068317576351579460669610737635552578991948388311529538995209061027887800457320211406544208021049253909215576474350214303766683474375220625749583597974149898563554136187933297109837866884488153503022049344666769787583754190291214500810759252591975151062939129144374209081242506134207228322582316564582090077239476791221744829433627867112092628334361003821811214204547190547093061130091162177139327770458836283230693192298276716022313490743433435066649611520596728730911275228364201361166173881951252619462036778997000278087243239379864553033556518839723410291165804372972512685634223830372924511607518754883733164236063188444799943117929861617847907207641432763684902702160245176779998345557876263163206190008161225831107159583904232138636919446248761635453076692678384682865521343744840555258865821023165590545581017150874474182808946805452511632535820697670963859675159825109206151825820215745513426441064760300577105072684615090507140253782825933563708614997081943462257779350319552755350545107306833516017308087632259163829676939267903161320249397044320331374694383969196687915929820265724602239317366976435346974768812544678226349059012141043680565473456516993739747473055834317184151782539902468718639194381652474908572626906079971911518637873288293552584336135546293136528883917500865611695929282086264207351896049934697102378915785189127022516625326185232587470884296451352269232761782959109168264420204906690950904798992062248004628208875065892536973136888327093938714412817575354543267590925177351499133850967077467226411552096705553567961417781952546897583940569672238301786696380001372247812771338550352844036326674238617670871810059205783326444754310027223600596125259459995436477200453488822374344255894411360086364278618152935228775903854651939729202476948164482612415220115724872094853809093419698601526037598638547794058942837925933672090827866213510984541968779986550958229311105578724154623145819911119681387655660347305369132480051162258768965861300573997914501775102399836244709706035959003589828106879434604511214357666746676098468404258131526242928658343339647607308275809402807063396577887862806380196885417525992421951837551751133349491063850637592945183562996921803010695538543329459411034317511357362714183215417007366957977705860555757058280771052084040235887407580386813482754553967521061798200954145920420642887455094117975051222530520001027080802330951742179677732213284258766411812417108018551744221434971430924119073221428835466866444999880940020753624901316860744788478304074014574439449274186783954114102969200300839761420239846210153220347707298333069740109924317196025464026068322522950099889967723237209203963723454609704389915000096629119837044716362994732087006488476095469393019391101768282881962953730812594611446282414255583858291502041733733636716088801739818656852025553765619241346732149446787198214154251590790630187151662977807523726452630072938199714750596757095168533858396945153377154235744144538855816823543422855359024810583922132760647101393871809919842385509926874539141952732408206753406579305146608300964709752549605672873644344874961574650297627809334272008704141845216139933929378079991572476339634455277792611847784911257601830323237734319650974996184939732328167101777760490442517621630391170231789334854044427246939977176301680920404141476466746874178174303607325408260348180898939397197616739835006830304265737209812140164854259103056546108533006963015429055079262241158250209197900884764681506922681409803223634733347281003275085910044056208046477570059481523304768087522485069313144098030215491896850815984522917819355851094992083687948111988969245115752682595736386933671234335733497992896477460483384190038139664984932734493582547971513976475701168306375465108292581217693459424074488448980033891144213097839879691867937011379789400231229450500948382956063026363226190957938482381303050984234290111653663319236586249925399184696529759851792918417222636905746225972768173274363568441068356296433690597757355136894724906463475825041573062209074737834269790599538877436462356483035236913443143441661064120736088572755328398720235731423771473556763978917310344994212078148478608458035768102732345912936469151487608950640107242580851930271261673237983354771035056948804294282396828746768786962860588662418337683025773097481348017209749222627205056143541469966853077798319318812781497434701422012471999567637238275173770407554905624888007698727454149789802227849116427143545809184266326836700823360341823664675969926917380805439854898146070848253456067189907538973718984883200996472252124250802544513894615699600141684094192982967281483502281242068056331357186988950728346089261677646614054377489072065257614614583575124197387421816524615654622275389806519795458005245243574437145285291696510558516668558597137484418442780114397453317680695082757461963978941998645513559621517349945087230247519044726557909187461608164150419353648737120853390839963088546778296830375958238213099871131879512304127435237140641216666158361093724231769337326687172595118447186291651011604868632548569304217508361011518359896208117738509565952091201651489155191525178450419894539349311647586104645876577731663795942974537999842198334426611087885712340321113771280486267640272264411593987443785539944408893892741829284460224775073313213541613110337984265354669180167313648276846022367778288310225099737314971621166685974828533149554559155549361111438045053321342562404584337596480059259506525618413756658438729459792843787612403084106173413295261575770457171670304116890662527901129185704943542884440765063074931577440482636317715039439136933051447963001918951994310712177032139804685963220078068603100189528634881858080966791556129648364549577484138160695342806857427267298601776587546924242811285575403644731838650021934407402275425388008389955691940656504313186553028422276125997364907009845626928469304023606443605846974681021211212300737666578518293859282766844491158315839635912153713277366556211543140299308112380879257529844901103648792857353204883065087458476055932668175083530598614802385975762399907821249947074533323230901436752034753110962730158485905282924144965530741397417447568770701670710705181452939879037633579980865820647517393737014061075180880520184123738462128213388482567128037862458740674761162070466738164380249048639395697158762782088830504624688304180187637843752676530247951280422957537072711219907781398033592624479529238131267765857276876142866766834263130345290719642732429246795443666706034468004454350936208002439189666032795770148232621192050319609127572385782826603666666162587463577901202778040153337883899243681096369962769940890151536791318894921799457809389864042144283271814311230026017668766354110012705279046594515720988289073767798658868273287169596440147237557948699674872875926673780330730892055703891674402180477062415476322931905710860668580769335804994826324843110667257735496293991753004630219654803579776088185316649460493906868664313782691127083547114749250180986633696242301441070433414490450118189002161081987402268191521611859900106307820266037058852623612801520285759153122770234394034686907450123979153947607644067769149111701321528101867175275314687775442053685501058620782777507317114381215264315167544881600029268188710395961056209066350418263072947039235352294150370821590943760732008416753133115362214958583908943527949946396748979779139969578561534295810787432061497926354642299449223323239363614218347744616272473018555274041867196434427690373253354013322946086239887155888511230336264150708750034380112400052719393751106411750547051110671009139082419172605664200668790436442968858410228092061197465721798460072193641402324541397349880582115219643883986353475785321349740246940755170045693606672076275332516803469591344990482781967270085491954053065661520215446027693156887728752771225172777174525081101493844310973923588814185524974652153132917819811863441281288011832814451099532605816375254827247282905498800949131543149174967489149945157077370750944177746853853194255957799673550017212309788357717057594982860200650485300903822809769241279229558208124489713171570426211042984530464950219501216669072454353514643496594645437777884690336304230680511242174500626361271346091352760773308553344110804042735711653200184717591332670479033029024839678430687398018040755965697061219904550247234257885749072614132816591615995180934564782368417400078917228055849987435791096523712764340926520626814862667776939102459627882367578603880554133267731029986907050293501032110198818615525581693633425025227595794747146573650787488944021304330903597725704518368851820980821733437274283107852032437388305937475189340691730975286471367236766025203187019782295222246031261707371338852160517961221852132581566562948006141856550228298744661134755905704570478262093688999951277698727929170867638137951788694650909089385587910000945229281892763500112272212178953748657850686472488003713067452839493612942353822352042875827020233318934076428505746428977790859261844320588227737542179033525761267020090231678457410591446879134578847709352680533112519720870984732804796833747083459915190066616937585164689170493402416442697559963298766345078160655133026912884963704057050770888982383407165682562101202988664838058560465002465653064592481033561138089835127105530150065238910202468595719171150883521819715226252380946064518274655576971425117362256750209586707663775624069725382709177953882500984633537434525259198329985094684576777602643358910622888593171501990735127914031685868757220127332836707668424718258841426560276194136942702636107319758934569198029060642455591314635535569600476842231468471394992189037145756357230420328489935684976105897103004313559294266805648046339099000260491716396273742228870572414784090753073920036244092627403255333067496087907142301259213889651829530811012640609100367730717149903667647433394587823691262908518476150244131603012680554471724894181983212409477766738390096993640197427212184746987647855993301930835262841259682226158465228618292916767618757506647597023919528926514884983037933888136010135742402863530122340254160682318901859543665973121093134883522678201409210737493608163112988332886124451924304392413563035946935470972209654004302633310259097468343919587892089174894922334710801156937231857049879297441425788613222463680107691893655083039161330241826680086555601779622761834722785956474842860873254917625898725802573468993883870761240136537196322334514517253562153353095317194675306625624090597117891723235260711916138063707484325938864666473969195317108682386549766035546446121756763602319081188071225466129056367116103057283033306780226999466942671679302874295800390472070427282411612426217242729349568620498135451163475784757808638899569020355107852639951807031940237518999627405859029431590938807502584730592703375118717589896173104140753840261034263798260279795478011921514034509389181535844709980632879891091959810286674616263642431125607884603149655773936272880433476262180614145210206788515903277635614608707197365705881526445222358033325207107387024797556285550378444725077661233457581562521267559129120618808454960821776957688206910828522936659250436823074072642786578468369836454941912028246333996435277672213704791799207167705480445401500092852200710340524176478547232935079596722855456664297215984513701831331050493370069818981280745303292380753181526533803034902201951510064611144342348874241913401613143514620280391117079613562542908109258413741474858151936446635363322276038810393144739649339084304889687032127113710349972861650769173533009145739508856241106050900367591924323086604616308899585734745934414257611651610754042732776912618757002869074105430218678415813223760231904543994948443096775786111417227721060541025908661198976381765616695273704143560083485965544781753724742806229705118575726416785901755441874221161503087906786182704295101064379130648119375422705653536560722351559990381872922550312776985839443138332026014788427376607760588941887140254194357945844677647669494589514496342651525130940099170823521286673305097488689414973135039748234608388084196733589414597421288880458416928262340128548453414891727304295112222468514967358426505278075222933295804937064169265592960304015532496531213756675203693436007112540149382391641745873170478224183475569456947880511868959309210123609875239991747230971600276872975005655440756885247834775900588882594278455086361942024320800335501567406533467223764340504655880953352728735727642991515911228324403383446126575845134269334237284196371250770083516791923232780695398122015317399529762174107563807735305143511639465344925465132238288765593824483248250212904867366957288188788735685725604638343697504511932379084110403445814506230025060747376385187874451700806456050169477369863984649925168554743596809686024299065735510003856398286607666404428688971622257022760193003547764636098454496026549422639706524489352835333110215059813441765245654834066322969526884029073474060283355755540672364375292668260789724829458981536461871138184244795091220602731056082754170992106264189771076740357714386116323366782272860064299486574883506573489268324212725788197656701293632162762467419387715223726069193028985100368392667977616449985343310146768976229092358054384934991548938734705386063069422260733825735491133884736705091001936963860720793368845495570264611511630131231382688191393402859326461413398570204414364372283276204779604302612223392756780665169112287262523987030642335564364551378725726000490817978434392255006172454663136127222519279832119785297628662053486893838403014205185278370730003372171810026283673457272598580816326668163724370084749288279461538302284691090660193699463621328777042832664598269612269081296299043090212616058115443415267132858476850871440454280540717656961214942690515531491088126872748015403599546373468984871088463154166307243276670759198684183845698408878852963008966138009490780471801527202533969272661235791251818292971003634533215114902119050712071040311585782154448720936765733131641503969905722545537070468033542759923620690691413517597214620224182060193583774389700094741022242207738794440067292078856524927253072802706835587583131709771941323506487629698861929176296272925217086300225571119268285289472457988463792689969550237177872394843367137257403743549781805080308566169276959273827804127908408335907294751249768336197445915286948131708475749762136664439786120380616303446582564019860862313398123093965030635879966403636955259139368137371553368664229403068026458891704717765500803890257485674846846639854410250643143100922995033571969719642848716402882818695623778584273185385880791190328546821918301858869976501876828719315608460951876539487418443328898154357609373926549558288960201275616520365678494174694846982390268523800353202035620675965345175311640489818778087955518775401126418531556867293177368632759283790687631498133704250728321095852445276013845198456075269611274710998130045329961938549792727492128735698862198312672415527508550972234488634022771351252115673485626648388316182724027882002005890270387407570182526932605761635953767532672143236130558105061997640995978486511979981899574762328223040123291618690376715382241099758413014286083606931591371058542005541058287459914891269419181341998983701894810802976230974219229984744928438743828199048792841551166591316004299302473249272257896894346451093273214899661117703181674665068420456900928811254185892491602538950726454631816593041084699929671599765021305806985534341761624535183101108482018653816184711141541728387536998647263042349318475729994607598365612468134361637846447899544815672998404799469723395167509185682973300122621010967148013609348934821169690994369081017106924826567108374156305903528064557679496698519261064183694947693047387357809783050748964806064943462818582811175983875649917587726785890380526852520694530831810456861129094687508412302060774115516174602531765599137032741218921836919251921048180085438053536741687347301829791795149657001808239421295757800400262739609393920425255609252500545107027656296152667833280703012419253922499978715384215929910033706918362655496729084471536939719423008114217164913243315304751846996152768450122152482356887860031892207368581504823482500989577452548522788019353163752304449392949742934600890996415005651575775859463988204729092637638815527836042201141132107663501971911912715782851822836205005869890939876051120711031654217308104299949673485524238606524831681761293776583004922760089329859465084770392877922823771305843715555563739934890546385439350525041653379004575894267808712679601943929968155029346943996659138941630041937671507973745732259843309532845469548228504859396455797778638404228517209699924697199839802325028507240282925334643019172568921050911063105166695315649023204142686134707729692870842124444713351493577088520731586994546626846507451901657024136066494612064109219380905045064318305570747002992380009244922486892563772760477165151312836027559962610646916888503578952257773248698892158947262770150210153908104158826174127692427890199111901738628513294324606796773039074705164237293218727176349588402781170465755080609787046465481787315224814084893920425983162921374490033665703740885482316942407231579147727062339675040970704270009142395365082892838819526054659096163817319418422089587160524605414568896888387918310485672693581439780928163806196986526443075700845709617238552767009911345894353132265383065562938248580723193906782364429870179151707861856215657043672679952749020750733427563355127287810956479111815053193831339536610534259694764489751597663572707661400276513037783032794155670637927221758023796963303794906970057530377571000749116523385048691437340729335926526359522101215106594903668326550081507339378186032885638511873828403578759586973325747163406397517568568843715479720729828663586771840578652834520649348619239312260210101511067556973105268020188340312881078186746485592964134203195482364767713897993489152488966967375379914563371034253624476308989290134022123710244630196141884513753966221289826546053949752550257935103128071404500386707987744375429160927735980605685206602001016095073900636524500570311045035667460601180332042384463814930455919019581838389977521853615544598936929112100361755603676655187950586679222637016203923028494351260156309658577133567744169457478833898888192118819540444606187510230315677050288719099798698570500240908424740306974322968035807891937362318868246208978057422127257097078087659706658158522159100566204547604482160203614324720160849315515213924157419344571255563608019155918046069274333762665739784629914842629608178675444938038017761667229191419161902177699400445405224883909478853376630113104663723847592393320211497588117284490972354344911871800029112623998312044578636729312530868188751673036411491373095787343971021308400919567534043425282947987206741481966665621546289362531985236993334642737494549184017289358496453131541516948698191345164811005731664619387172132592025539087211901765395431696636958870982298338549121544469082924055345298913002611684533747406835970601129123775782427096877859552092469094737868834767416107451337121255385856961016199987356619096919700233712720391658343452320519991010003572341837701682202421039586626382756074564214684487740603569948386183574272421915294711353752263956706330201235762044394246902912063175407057779795748304677206013285808511258980940796977791870207471283768178750868808507939034476432260610312929649517857025180298864346387260524922787413492164276329331695197741555449629223171239207392072581728441652012560042863127836294043998245852478525161461469058651018316808214113279108413788118772723331539430753416028077905408801479019583163398003833438479839478716015346013075360509684850577810787420927260896782606713530813397814018541126856354834423332183744455593358842865232876763907897246924440955608738658490787082520728432284572547595554025004487762417999035852199325359179811569078553896393532552229928731604193320433275284544603333924197803194770446304054995401508377506633662558512653750021929445545426311352736641374604892020497131100987502963042381528421984686450134166268925980624736761268583614825551763805078377151870240802164141486788870872494842561455060264151652654640645196780635008307179718307646055977070414513649807758435146113540477214937514610725817215662604359205950442263600855463813945670953401716880651974677259757256118785561743761672519587591962725691513626655015973397172614441162802955921109501821526103647463439162736188078675477599242305878267019819710507573214936036363049830056226895458887506602762820434996226779647318772909494381494917547341682434888856355770910518585878865686737053336687506861150705917955673314508657327046522410587917692666175903262193526070440128623299348527294835912526245544169960442274220768150437052197928305262685136409810038809761472071100044083087975613595114108452473811540414553806052928489255552054217309090578317516787846214878769681813102212198984908111674218645691225595491213422162592317688017475190112245702439325560427257364902652862738260679264660891343063999880147754197549758803868018516271757405519897075648545022188523814975037299400428255619566738512097158715411968612768211088245562437416768633016364039942445367930075855281033308738523755969602872613081529969061273681228770511361856097051521507764478358232573665249628598772149169041507973256016136866058688675694627464879086485142807367694823443656969233716757957612519330653542796889818471909342344241194128315978356333282316570563264257551953147629432985876636963338083695646747512815134352981027580834155512112106311124503154727118389067906018932625329866407330460843792310615381183325189490687189471776117400580597533225198079476652692232120571834491773600400698184338160254558685452248735458212006830262722011088668755605566728535786389403881730805427599353076766029635032169726344692871763058357430341711273040943638408569656434190517114790534157557355921875855129469424676834484279206149997103593005339244914836149553060037439841853521565469555731071985310180097404903034947044028614809761966030909658914355112172965521681601052252025518269666451797046300922478209029766844153072993474528150482679302207135910124351186901915293906297653460652950094789304171107257072747650321295379093178419423962695363166853755741598601367825035301134484806567092506003086630709486708777046933378097150229934246590393391162185748284132659796256069244397628838013940041219037087819835982087317453978957870704233710584528587706760610673468629673624420561200808566036218156369383016658579435575195909930595965525393586575500987985612258991866268134947155563874719966632803360413786199047544734419605171346801674738035621723660542727814072028090949350547684962095560609331528877381319868655053247608257402414641966922476513209026996339968828588415642410265272017958709586663626375399650947168385281418530729485593077750154345807370870019484753363576996461733807214619615702012567291482510215606348139864178006752563288666658927814722196532262067161578636159253772495100136898602728677397584108176036442665313598171197942903360555710639860480387097162802815078555401418888306524022877714501598941752164988404709246027392982250849925118208884573134308983028819142809039575826032533671941219508035216061761761608973269345277015310484086757852700035595388732381845077237798029254623351841829741748920227318759523745668590515507417407203093134967005727561275534766867408349637019603137946964250750582964158798972562793891635989375190334285365218694399611197628165553608977494555388568156756084720531096546054480445038087193680567381385971372165440419549453189250263885524536293421214991211983403985679839885410166736581588121357599261017296801193015660406114229893227083086076809776838080678948483238378636898420929501033220836861042432647217734162690869528460342065582664070587055108182665234415919558026884842313468640096385805378296835430795443134570221210006625123018997840980573246224693306576839810457900666445012687847247681602422679173870593795502462482999985239131869941871605844625916683138245977212742732465143683874990893073845111303703319480068172254953903322489859884735905742316381338134450740311412991492507480360838041355826348087812955035360488712624632087797737635949037756120067384320077333121322914146296533592222993191218750780539554475057675012838657776955872167361574622153443782704155600711237917125496829318523971769606516180181012403582826898589916312787517629427094152566924228270378282479672802782701320344336624994396842158291119752458704800153530983268911198514439427970613008547170294576533176499050247991955537683511709532088145781457394713086829267638906611294299710623575689087336262980043367898233168110208371622743370875865725152048685834764425116231884795296938416288959678265186335098840407572470894886113025916870178456959295793696492072039646068217231482468015145113545449140778797540206130023314771979307363791916451319455711127152321495928060639427224213589983288470182077445855462892690504751944112463597493978383282255589872914069417207535859666312492941933021231894584873705055347361021213932342230642711444915755770053219758791279911189366986271867155337264552355267548975532768912942453218403494103443038258625478805709099154977660069959871354418960012650908866985618279050830937529238561044945809419842013575012739214764641140064488156756847638039678453785769216572451775969373156663140145028834589924612332119604744824804471453977220844442642343425907123813471456341722705234128221553576140524459346600962585698590860629591894432420978318101353183409057673540548159632159559214395636316999355856733023292531549694023067516570823856202830754702648678144319172925134103819706588107366329019811683711773672136473782303790900814377646651534080558779683977004682157521028422018755416308166352881184349195518988717713635176634984390164499036420032383373734909440074200950751805369456703238945612054542721581002220054901324196708225101159006301821372842765111909498391862628236922180688648870960032677288042055816849067797663443045003997160359895564046768403299522957253209106999887167269948368032226000116875366794013416899532199513709001033253007702314100846936290955529770338722464262231764348281704789308348025670318208945549291029696611106332985586981400214627311220749996140137434546385131116399814500365274285433525662050490800312267429146153162673259272060860056876549383782943766558781978357661109196209198528199322925520347158606103623921702353732423900315293662220403628787153038675805615688740196622862670542405269401486485261108276442082642850680303516275531127345784873420484148589586699403413106259754802577027155961045884128264066845059939810103884488617198233836693001937930691986458721035952757315366811155136223792732927380346649686674218247716762180861214607801444672694763238005243636447207446175264309467382997321354628681808917765593942978580697475351940559486609011092394244580406114814083120094108400204089621171579932285860988662592901865049180877580507480108640314111156238234541748632567352807647255226754541244278548850212439094880210620802274948434340218172647766529176156820970138758885893232491719132045652949659469790406262449050088663941495235775580992393060606227417371892668418660167098691214684028156995483202038624428379117252325171757532825910273842950178214262513790671263562582446901443027219706503297359419906488125718906428522811378465831879685459106318180717139637293758073172776308548005149245147182209644349770203835903601802437026735894801558451565297048112617558313577199520828457205958002252644268540011931329444019764756099107433498667890640831179207999628058797029408109682335393614017403687893143820555557915589689277188480666604164283175689694829931020678700354910899938008768114415537809772783934760529119013455314501660361511833824115062721227576876206629595537213902497799716871678886618145535413042222803948216864810841212100403400460436636136847452282512582484743610936561622057534334109008223870027759592166859157173677183468996929276935721294948977189060219201903520085052579045976869136852738421015082205087413434489783997884581235434101327256421627284713106060613044088799393317656873420296139775227370778292601582630583706967813456250187107613822530120232815250206307784099775258598860199911518245339267267307119085332980784035173850198957974890664395075486994142160432582753777158870139940861962037436213669826461910269117325550242025832092825323247773771904407915823286313202426657606865816862272537852618876472860267727945277147973056031591587427844177569285105501195851642087105620598959890415063112442822104822624573404589793035906777674652806278355921213138449268449324407571094640358613778347768032664093005275245050931026787748710665404875939266586948673192440641464623688710182864405621051360022707942226799770733283748497036674987827087472377209160467533706977268346518694498985512695383441247401972727011931139713721526750394588207819839353790477749948182856059043905765574081080582504593744473742690257972813246493382918751453552020516269203512351913781158986836069211518151071488715459065252152119456253928183482353823385880083741130139042794052069242151311237692154653958940986322391133095709345485324705290524284216508062530277418418749210450748330469121088884015578588092225422355957816971955419651080505516003865309846175995954536012363073267789415107577542861149181451868928558043115380513417213818939292752234053235154581675808919373816447329788563163375289043772188515777223449538508701949974496805456749030310800361064094335710271578280087759717145293005072436546546279983185610247563342567880013304915066322079952549339453049323738549427539017460901505510246254679273225775151080537747494205013754714573814314645686272916427014759229557898337216615005019252166793526255841278907774773467893432391776289040909234816111087034208720245824693995667294672294057413152975807538692170084258399325656733657729198648394220026840304551484168671572106843774580347909686413229871041436578961322877482751797896116644795022442129707061735492444364097258220256705848869661010223743737968713170333225754367284106641175426868196577805300747868764893329071670748464393062111459196055103488936077179109066064630503565958600649011306449990826585976752770526972166838386307302913670614871847333654211810053597317030226640936619840563300622583957741742733400206588335967992496493600868832456444264119570636387072006908698998447697609086535550238455753056419111090840634458782531796732675439463201398143702108559210845606476868803581489925302377794449785853627850954688970167702803650835089621035216333595769345395778661620104385656347252824445104931734801080609452661088787034635216194043612030551713098230914643974008963745997336498602818242905947672168575250744216543815727473816006596093345519599247493327084561339316361302029916415956374813934735070562548191245035997008340066452030240239277877783401074465779076683581852983536349901481685207552733234118966724887953056243773576633394849455184497114150393564614519781865129702830372966658548710578205452768831682922242663678899060226952092083777310191134818529017118280991257167719345078947043490452687789423951036053160980745962857026177190014087019610190323490317232142344261538976931447435585582204061310399737596771287700657485633159329349947189876488765821964783170431583918440019317217858857709095751354668692555611767119123387190991520576610081103578019797360849405996787590222614725908411915438703439668769547998339170548761582226679965866167754635006596629412173599543662380663262451332735521801503546136202979915700288693693603500403993991226074779485087798591676820303778315196804600453847387142097606783688480278731004762143443809888080477021208934904671031822821162609436528400563144509644121604727218283280771164671038231954742782929052524291638878596417718122973943470101006957808449119694451333012000863573992326680232881012501676051173263723118036252082698549066000655267045224519773028948337535422851404646553394267594602325291326621223477934056243105758435645122648826662614409442268520126094548415958536102581238696157713890003946267864166533581891867070350086977817007186361016760019266334622573479292168856832193533281269265631177977669771542598834037109501691671311671728027471284631000740301750268224799118405117284223378096041433742675917410906401591578761093372492646356495435624417797334783292444308947446238177793319436583851524717984832453563025047323766352189148930760778465736864507346501191142676024374315378255035623148529230446522814598018721200498267917307035332756624600609333907820975011108039167607513758819198924228631870652544062789688760231443494595912638138837985969463676345030647918868924806862407375050190995131934988374996222479508964600033864092103362587770848028426959545770659669768894203674506762569608792856808540916643365208548583579928798078839703155928125765445819091489893645022858765455013674570199842808397705862357679733078469024581311346645271598282518284686303731978852047146943375125511892580863715124880289725265926274298376194572142541166138254682365524580270526746686271383354565600117426401275363875857241050559076266180249765610748914074086172008950889811148891210855399975593281786191611429764098757428344407436431110629026762044764878146978031013288542806741788793627869037276180632748186297425798287733372306261220025476095966361567430650870794070093636973130192808057902334845294581613913493685738975530327570420774069775228303149202875507101794007295925155991773991924858600955146333780832643455286159937659474869478058547087055946145271574790125323247035855187627789520808441256796992085356318224223981617233661950030966361131688908483357312742054557745703322425548470563070543653989503359729725758587988878821977958344388333827118492049447556788386650220852323533479090444929499344679621580057508311102693636955609622988238743404263874414237134880315794991369449106356291180124292042521744781030598817241478418076751713891885506170039852432594012477682930053718243617281306042639906654305823387040052869528234584895487390681816933121463801089142090062168068468916904009537720768716323311121221895707278746396797969043884611120517220592458945809851224239287947592142020169403832438326498954517378862179857440987496298301911676326053622203207397028211582903508698263654666561921389903413163657729664476276745537101122688718432763125756754414923261753267826536513225855354885806954916322719973980487966069908059809395606915079001437982920420027203955631289264066404286379159043577341285834620110249764540502887345736245086046853377110239952721105658757959805439438043136212456215162246036377860244978483925668872138911845830722406431357919570910332497847390452495631615793749770174974618441963323644959173404773400940168242579270017787032261349807888226694952442279256214365761095321805833427260243479471559710584489597946991699657014334578051607613664263567478849255330207136545248576895439878421218258907010145697566419752658124242352962701137087390849320335447321953370521482628395094011922978488774477554997662669059363608213499483299085114189795823411486733458036251396140461487147731716860324690971851834025476990822608832576487946201984916255460594119506513414964113464805768019012826710840395865332602722065669222615002330564843115514664405501120362233401530381002256050382755495809830410423290773769743931558010028087944867458595804044270806555240378203715665330121964302840324686317425638340420609688745692102428061805144238999367721284901939127308387817645298453082856159893015722220397637981911136837978979250953042037680278344660180269047827827690912981558979034931190743280489221183424396494041910046576036100208621585950267524650899254847636573464283615984353785946525560759058607079355817715655824758998005956941403484866072928051957804650871453802063544914185273575002021391555161869957321409378676488586499575108016685000817676674920437257244408049296682583615600781134897556588436621573360993275907013472596286422050776410609517533653902141424496329702180187051909333625400372668604612182648216488173215929220953826536065398258968166355541009919276461922262721510776425762942667560159523237527822177802002738593018080909580052255460109519456102736735308381903690582474544306219524981004964652276669983991980254981196110445776795038181573702299605542434403823779078960958839656613695629226320574952478084335274947266987394375059980474999915911822879687085466072200172836487154819704294601744109857438521587680650761832110318139900326851141414581462754664624988576404621800726886167128710776918167222015722413920048141918011295532149210317014169098448084555577774689236123400185406143557785822938753105055155083299937857918887041669822023992500633147046926161526532753982793949357738604582520003573543871109281064837632034859717842985191512616986806207642835977085421134131715605565839212900815319384424737472281422222287845301223118145817756552606776353685109871546999304794152250680227567896031769825150777592267678120523684525826683991854555507276832151845441844516717184156924073507730001647774976205188609172459342584536965685545645944752990900619524346409052742610109607458444729272224268686753460740822563352282469784894867275366525367074167725062247328982019031302847100241368508593126019214209026805887116082470290849451891253072520646590718922808136159547345578741892616232874389609083719579278136604930545798132733080979626897350768213115373360262608551335215646112623232080807017828831812174882883997551683270090847474149268330339275862053682242935647462990013009386205267564839978698855821365224738694062717905954034303965360399644967248726619400299924768276105059537744239135321430442116362605379838847061636943093355961579892096593932636352155139400248180445535107524794026128715943791347327365367262404743937196551926047310904611421290516690065017664996610510776611219108693621938464094381572362550824036155911666348395427988587991528201458137824067326631037980957101103408806961901540347113541490292362847734214358866800376288534252909797298133279480511733481441756818351821627519608922828380947454005334683590056915861682259207078945861337680756091457229496803142033298915350098833704253188219122555419294391935117277252195328206095113216704489840430955592667776313613823098711747213702759162753756585795363182270193711429526447815548281120591659731473963104506815950388489587265459222001006511317029321381605288444117614529372609208963446128352674041576985702649984360665429813102455575472255347341518424993881643376204304341583395648667376860434848521788614465042735282082403118767556803380552515767271584636921776927579067360502281421194376606358710188904017788660221286335897398970538175305384393599667804536908381713054455367704253358464260986623173237544872344220065955855591400781446614324985786974174396387071841986896672376508634015535976586506199646168712880223582850136511859283087641902426839811915396810602802602009218985141345972101876468891253122125306572691323642739065412086253239158080564956003103577425107609720701385566457554433943682272262188996595324320771936007356898727936453620648096009322964445371764474538074472026761603956641936463892175823260076677913451187577259426461312394812973692572419831708635784900161098668533345212912696218387328263333548461707495952586397367215344763823841333053375670223087156907844752048854243930864661569350196346092711619040129405115947287474213511506024908053237229931987518407173707098733416404081437778339551775024335312322003526842472440591437915999850081914913004206941169356812005821867062512440347496846658114616718060630849353989710863500418421003749591009079200907403416036990704904973078283297743663149545389573445358846009215400302194400587243038964946420642312022939648997491783518769553258793562491860409808598282143448822681527434030287655748564841348062853577513330845412177346645081221622028614797737431322233690740690224481394103702343113001244076883019277747603295232242458010050708143418212180774296323758005181203310057617019725761942976973286817001284987328069733577467236848909152183348281459162902214543722728973888617712234694279616156193889588672014055200828588757251882486787983502634627221735161805793346653110188328552658143288153504687381593744593809151533687344263363794903390759008030016823876663052507322818692598096031107106790173383228509737402492962601531935676779482057425127553483720517445563094380095088449897128784396981316812738700590134755972096004390350089571208284388243754344253712472927785045580623813795079864885404914002955680443446108101766765398878016960004167939753695058108982707065746351556238829544588629970727206686979563510338367784438761562538073790454818488923275920795967561354894074246577076028873914554702556839745801960822105470310221588627238528244093052026672482288998176183824239795947851728675160855114953051128409425422847453653942387608448959485628234125064340192752597075403921081337114082555098294754447237064508581734978898166663829189675569154909525545477639864299122516911664516935566389107718956008010773695032162273850990650647783005476334000634818101777620383079008006663992784266943742624845882019367935311738481211854560141584868311457666895296465221384291102980971588593539993114958281000131146505251846014188164697065903561809411789222264421446278885506433983226216470377058493447312314320125339190883398298479959601787645794920717496272462766910286842098965791193849893157346429567284986949371992601656192597903271462882742899847561279262899773692233822513210484745556830404498859326087847435612529433221840398619856357214646459647941021608266906214712690077104070411636542418269754841044163197688198186875367323455951347552086682783265987200161709505659191746071833936873632233804093519954516433201498387979840182637984618931079228789500469362331903153138169932563650971140776150001195275955558883901449116769757951811005798049543740156427700403065463861391735716077969897807042255255685734076068143663817123565378156953949036194017446239435269353448281556553940497992163945494833165188136232122595158421513981581569857873061686093663658088019332489688182389337074915873598981372388699893597832568221261296920810065814721399968581825474221792937916843849139605431764993540447685157107695020108411030498781878928391880105725717201577757323975192804762709802569132803203323420408263767083169974921333845529734466112667423336501920276626193986257126376339296522348949326574702306797772454857055418327997239475419535065336907129188754135096671498552938406521452545293875733286951520589307624554945320336694809610823247796317186882305708920172197177407276380453773734363672252480226112433292747788788488148390969762544388051079517348982585418995724080819580610650169132264656754942207006613108104462534021985598704419338531201358228433545102497121558361938680765374196540238494547540360750006751114150649218849983928805054539123663489960220425786733810666605608614590689399997311424018160056105076931438228269482211853329103088271018987003048029298048681304292978205426431475488130109740140432616950380151608872235947282760736062584171124206847442864236407468017416305840505881716328914531149968031252742140893080399183557030545274475011321119659711317922703113100883140619135644106668273688600371194629038262360744819701432434337724967447930044535438944128126544881424460923131467097076569292495209165763049815843770136185385143654883803310608032527920829242645521044368120175102369144326837293002298236461407209764180508526275869154556263479454898037025716508748896524960429962755858670691682349484721942453828667964401516495310010057190852380574900038195944701838640702678220418746376944993389542740209508263358794371604333865533734442992336210756719867113484267268204201403288713721516957840389835029010742873007416501800775654100736327134687442039776913468065615901973429477225314427994202806823551732461755696096761174287070737054676206930778877596197661761062748833561942146935118245171183005031121008503221024860695947533340114504067943140630501454935413949659039823768694298822168490289924179300669571990807267948655939711550472279001801625232192343361421695504459691318139517229648249730898646240116423876373803965178120245963650181522889954884970807088330984274096408940008946659506059908241087633928850353347563328884048946238673633557642731286016053759165702012075102503213954595011602910987601775888455779957333363215882647028484496153168301474926411456168995836805434804644880982742827010519874708779915704951890979034022175371238546945884226144297116507656997702335247994796537761769781104470371134052390002506518365068871645112258198553598451486567678461895163747649580518273427162353769956471562841495589571957932535573566728047464588044874860097357432976369731619485729380693031457722821728948529552061996169413312584407606386820403439416438722486471996355713131511173302024995372138201761945288335798808226131918591376114912636726149540615436821774216615780693777965469241296054045420254119340885142612943207390667335747998955702350467763784002071096285369303421910430267442575707852319179540309294133197739840931421841133508602941745470194804708177666801859993132145436304932224842768450199879465935463619175167939059886857794894785386146695247614506264623374739481828521968326246738615121670300710361174530480807117700629283570494099606372736542862769741575033507216679883459093250987671950445945252760298525671127532183477839061295531540976127620227719030212460755036678529844185426132427074848853811734600036802086573604614081930526654538700198018199597953710153446893864535579594462845447009088538157838957836862554463534005890672412686430202426403586368822549589327957425895645261530187496468456336698301880724655071827476627637357912528185144104312436537075819380432476842288824724455348177893697673337370096792387881047090973390099252933850273533240548263965175667638688410509634224086761648433978758674858569787140936713511014760829030321770756405681429446268116158910618744480593650210085421952073432002120727578591831802594484158547028157028475541394818498668375296347638782763070243873436659795671901366061018776144426506006829092928521389333355606903198544886593680296831579648294446563837487371213446189694955729417889287260049917772629590434746325715224532224904406573404103830048236706712075596587240587566683509993079802086454746909168145621408031172934633191323594759450970825757904713273277893743355262597010689050521026768717616882173403049344446724625201750156789205744084554042959773496892614529918716971743309770959250304882365157246629531610951849364626352029041215486854450626312774860075414913374426424835029593154509720102583224813312009546656265422557790667204626681016241146740516084456471088401245123598340765769151158529037337498376803467651992616064757058583716144966941034711657798395639605717787384934019088474693414444311092058921700876583810676701525973581576147770134263671037460614717712897751760161476212629155875176839197521038084331612521049654071335539787686833929431686002970611694516929345477634090706590197474934414992724555347143326553796292151416625733228633803213399844697890654954780512424856120747270306645305906663196765398551411920721042931675606826746824504561024971322501891874731851280592782220972801177412910244490357099298522435363199533095406766947693064140104672245180884337563797621421336429963934653862145963624330969322232685519670794212395344403481004279748399876185008017564849471332486793509813004467796600939406478875831431843694765640865884207677733995235146484360088592647551957945213906405207853542625282522702244066452673802298880086156053734409699006643719685290604119067784876010674556717937680798512775660163648444997301379638665117639781717210430056477528362376984908212099387589519735057198992293102148613449548798722811361589690376419603562019518662997513011004113559722536638765454233161546697490312971889510336338419412066544816362854295655326897424606223030467880111989178259671764868721872987251513854403803683421885076970362540566951097672218003378824043056797506921986925036669248028587024907135192460240054453183346736364078700266299989650965719594935962547046813891178676419830605058322565132170919654189244227105745199704479345497021688849246071235320510185179689549870085610936917569659610195281894285819441011339680334285362294742609201117964097601010708723065286025980465596242445946074385899085068959532383839915749800164225445723523465072087178791885562487285604809090217700864481808386245747998761523876411893407247291582161234485890862671636141862198485107799590739336603603166959839047018885607071992132089871408805922698377542491079602060648761546442174285394877838860324478455869363668001417955324905533070474462385678890986564212557187167698959228649854784588451935043828427485633058397189879489091528980315342687271413809954551135057325592683241016949271527843900531066378160127376691349315685401641514266227250392924946344176339862821270082665332437512937216083064604452996515331585404301145958641068678352255577861618347563548957316361014823443731373569824188898223693025352406003203395340653190178154634675599862025194003011094820523644683653846061284385244050340212603099357027183834534033645354750474955411179942306935089918879789622440192828280273096476723436008941534063742732626969102585864848520662884113290513755581364638482844749335360708448965240746331776036565318645978712707021035714948855787687109341387622269797429305341290046896052618764094993150092837552890350324306149430434764858059368840523805352735080780885050114165006832203549000556423340801958119529131241442516699777105444525335637389832772323939438093700993452316462938706020431761154353719618511248530762841677656387346779000721170894465749554062357772079518067522241170661739433402828292007142872840553537643173390273440048682705833956813308069763129752816894194982405054072938450965850329198066506893468341854035863714710370841021300142913413008558598953442553697106512492676700767764483144354496026618583366573058217824757715165340450256106247306529342279703205716165701600800449507646512116224604389108035173645351702271199242281619810178286873695051066793007775811773614579825323005686817959560317168993285426694048664639613069741667495185715465988443139853280512717862761452799979111406086409194325131494205942002260843104075137227130200190475233063367204779299051918602536786742647377202027198056160227748231056978601727360764305822217654158002387966544044605674987023227486741533623195759435861560275559173646609512632957636204293256851364405592316662994629264090838326952177444074561703176109986925086065307691885860242240062667139141030740181266879663021868303638078234715069959816236498942135943906744546245832687245907244498869261648949326265216198900508017756325524190640538221096828495019684498529208308926300195211701396841755421191828114387049850940407305117647371480383582961426874791403667136533896885767399228709222540672945023000146226775302421629313643426901593439239313182206335400604456233805552889548574922212265696317963239486672336743727922340084353930130718342659497703161365225572782609642412627557878454970258267023535374287400980930592713629797968738863027702377547159085746438118273912742588928098977950151890054019356609895333826490529388636775750941915895827388129659467867415787835724513364863242895793693085118432802348219031583208745625008867818068436707343192743460780878789571322908681521467917005191319815720423117538453018994576721344457731879542650846613471029989738447368944393807736616593959670240721060529864251563904122154675657650502923915978241717183596980426415355399135132110464993266419328436019653542634452024255960472139911456803681608649936804139709264476056035977394723228056025826870445940551331976059005902976281019595003956525779591340312117489784920512465155004197538537537115473036706746837988146911578302459040603812115768227540047890977107617145480633662868821401477780323574316227116100505534660755441404585719657377684163724796565803395088849725316407358381333587929336535563851150672936736082720488856939493312046838658344285796916481325262532455382421964199577447870644522922168358851358764869437891780225028327479460300002277715424468129303006492508656180394855241152506722730833810949645508474625128535933468664218940170098526447954732533131018724277941864985102943122818762302244217848568461834410703062337407715985397691334589988532167011604094032383547394798318583246943709138810077510034362536681251433667466399371355838560477277562121114720922744952334486563787455136262700971206626996285604297588655699770642596922741211278509385812585563346101667324648448197701500418879225189582025013481305898304681925307086240683099207442848651696944766629555528587217248425327318327070273406758762612669847651614030657526815340702021787386639144699326928353587567499953973790625270153958392653149384759157007474193296537246918563738891910139389924403969636196785110442936527727213635360251069283181020987864841263812504111122092139059895267541901662161650945740626901664826295800779536985983822103612093098043403261961470238762328442730609555424711110958941046493018783082575897794342931701226704245179369081597390622719141142650125008821927987938068814491069641435076472967813958953728322325821864855378671271397592182570390637341286706345419032500699247508861096990696333780679396735500474705018129607686990327617368745387580981440055084636834116454652976644325003503065943086869144077826787015937749344435102872025074368407333714453931915942541552792423037113859990061084961790226175388640518117401001969328651018529287736261701725899956779243932798665577667122995863228416708897465076615522035079810232862669440830137531883980952765217038228026994847829808058788488074676377550168245689965653348125318629982918370249669165683648053605052362597256072274428961633240284902745696135065840401273793788708126795204558041439556876803680914433453372027641629265623951327954881502646053084452594787905010430700476841631030737366390860070439885030450367825454812716978717921266845556627919472442592877457280846484049745678036189984554274289541787198712420218015791691317618149499513634821266946708576859325579637329032189926624689561582335592911146141401050884073039707071880864427079059404952806914400709599255890174940391429008944979130257833506440050994536555327263176947406941435405899735103215821422560970486979519532644277881265908892832441156444337161080997751439692129163903151410634840077319559114413538782472635601625126727813537693161886748262113766683542195473829878753038341244096965099870967803687086119077306200215999371732475835165976596037780354213755313974581962268572197140564178683629990731603242092481602565771013582928821060841609764320415343412134668768131127341404228220990287279350620976710152741930766727051759034443916928566364465569867763615216262559286012128943653804114459080730102476124079571414115278423504073391771443328120382374530545004292866642282357512840511360009233180813595023094978466942186557732151021643636136266075215688637142074456508289837151566846683876338855561526648246155097284834255930364198020910948408531394380352622891121622247459515932804989274953113246738708530159394227709186362216453028777035479023210631148365576836178264950904753006833725622062303874751275935741270725855459145952608719691602122700927566308858410734060416107404936305507381813142224807873522821356306092407742835712367116951503420659000505121333721841457935087155105132850617897629596668600133267776047332607724240494170706718471981271230169371825638961009840191704791959231195622731575982578303432461275724643533704076875659088595562368104317901141609941466694135389737686471868680146347448247062482377499608384675871444501975341959784779047582819582954017191682235571445947470542413259972549358563741847795584114034348666673557518138532966472939194087504635233134062560415672421575856224634757635306665512974192470639126430448657101079467899365531130559491815049254423453843916927013038036592198644170628376365776041430304682132613276030258801511649091815399850420338195823276958042922740771899332809602008408000610784549319694179733486313934061200743764804363374106824441868128890440080088696145614627371958265240066407623822786789436660680191761796547414020995171975090425420648681345282440833769699245959495362659128309762437879916037665391173525089942277138356337503614561970346982139306579328497903516952778700413184546672686745294341301698952124818578029789632709213233991469674960861142757039231776186949023730482953698614203721308936306923846283219507285114089085666986189761668760468050036193094701124058400069828819572998527329859680324929456150060666567549990187448287226510225395140861555791497972369779942272355210540397866253784987700437903218199902888640072814795684809548652574988870659795766771736995631884731646563648803524594648479108014486144989616132787423939635056544634981512165738471023332779049998815504836548046715217250382970705487088012186626172223039885890980755824230852082293593230779537487312575340670668631990356970685376365830147470603144079800274753304553838105062380677764919782614398249658235985105102661400875699124491614095528225290415070620610287058827023176880720818726281816619216990593383499493727471411720658879402530273306365045233997994069267952237033669565138664914760947886199844435297027882614774260645967317402469935833287823088657503578424159061191653039967993121628021600899622998941193502107361259272206904300623982183927767618712693798936530918428714523909132123683973120810906721961650671437409361892591671785239604543534616825713120014771519031268679738465437736546691757397591518274391298630699965808441064862596029625593350588518777165004395485634594711785438213353440373977424704878309709752107837512589582343499247073673567740183991087997187074150523115812077787526731368079425333490626777029601511594650131940507685388013951428615843653354601526854976968359601900210641023177475559363564409682829878611166411703632393256743096685625656113831549449308324880042853143242105906032909515922689697049952494280323769389603362813761038597172326474073813440570108249915180109484296361933284999377317817394580186183330067027982118372339618579567114299577126483257137672449617995365463009410960734547112033775788738429154237918361843470806481529158198721540191593220483049232002499100319240775592154752819640528588376270053711380969716418119039181470441881209777840475488283392456223497299674645606946919165069227119246194788452209269489686444600192994015863083575582134458593723710949763870042759925733169721000683106304769286116336982718697920388006228087168351701907303922229271813977406961215778477846172724172000122009032932512652689118282274522968101711751589545385818149488014450052383370726905461936097154709386095796107738771922609711859248311423866409856180827993313098689609412433028775399899490943797113457153749583028018472166837953449957684866639539666554257783178556867469752441954262957133756621002039154452863743733115124103026662254898319318735909099493483227041554560871142176232869080971675861472594521102858068727149625372068776757859960637901981828972243218967115001374877431271179186109439417105046158886955683593578245102434622419320014370367859392504168079190632777484125958039572163217245850747947543422844095515200158709170985766822602973111467913696412252717703551291519179016264905039207007692011229928400079422250787573607985713898424262204809515646351930095751096727138194259064092247376343516824916261200868870801193323277980307425926931814668717304611061535201951598615331688340628616444534476207096749942013128461709745709955083581773443591097902179752059029512628239407608632982937248241217297951456333821554900298695233757475516556315479557154797556577231593223310290097588921320521535856582473731796577436246031189637749494061433668184887591594659421386838364249468859280323385392931683365056043120713838266272655556643200559517665991199728232771706310898784230081245470880330947322845938522594418752224491525390412035665885212603160239789555413883014894487477767285784489494242427172175552920837669873705149390299353112022328182443460873773747846104742027561194802510248557489119154191490431758849850224960019748275412101557335637897600457201666315138344463170030872069391771376038499657289959439990718431366846484912393880712854541873930314887825069447824335210422649987252082780536758950735497056785323066627660435477920746213765054680144753385498421795104867028940138210469140981793174378287252603975776618889056229948199199399949352764984548522670837685323707186726813582142471880079599031871299308725490232116746065081754822663209996202534156073665337422848505342911814999217578432862398815953959902624634755330551185983677707184510647919801221363839847532906223353560404803344774193135860814026066341356371736964408449790517821750054102121807927374341028009065081738185979729619769416394806523654070262049604403407297190803657121835764743068969348418376129357399406662574594485980756844484282432044989208481479393321665275464035143497081420626574514588666046257454083865512173346081227370605016955421125959539577939918496913403770818052673502627648424295002999908283189468284166856124430739429913975761850212084147824786097467440986102280668701977081501624873470390886720324794815915523816006754410190732890743868388238650762788084198866272542191557215986139233169028137033032800370002652479458706439818795020851202484314136173863444831464402414990278720119054631855796762455212741911221405885630858875158973677765246292496696260817975873806385978312675248824748845494263440027279323955910516311011413275613319413293606223559780282022907381873416551014711650801676281939551087747770735603116058726808494362411964546060603121589366014219960138725586889787067767223147670916570483930746561382444819679608674095837076729915078513683191379218433675874052898690910093876228595827068124472106502896927287497014086054022537274802289994548315041555145229113973113626872181397739932041892944442914081627817528572287871518588952193771757995867389215844726684668760117811224660890291106299904359973036096656387268204859384987741296045295554259788588094280163733735525649044560564828568181184705891106110936949109347069134530788496318993435170899741709596838635356668945139316918871376512221444810283745935298002656550492078221587131692972543949925400653776622116824566782006365844896185084430962906073938817080305903023876904523314341582690520405596848170307431064668128893717290916451638407880716465686429950663542848769844945802183191526851739666508711435819429131706369164219324082495607488080009417325755302051517748805023000251927104955616662847773547249163767576628929010527432342272017099081964964460122674156125570009524661992331592543213802693732696244986874796890916544452574870985430513581485775434124580979482703395224715287271448144028917431486971023842149112210017915073344801075975519425031755577732024516970522180730435668566283320427403706466524037733138539963206771930043702035134442269683557523085034876968542645775866948315090610192834785281703388529886567162498746358109629000990750150404110034545431606749532446550329283042621079063244029428336630225125740052500389340694732367501732707843403443025067336025275028710328182408279855194733161177762130748652731859851199848176432321102852342476619128468900895557062715229476272796056151218993461758227048745372735703109494923408615339974300979481675696558679256423423989986018562781230861957321699017411736665151818798727165092960876213872647357492738606520598443313814107479268218672563478117476255592007544157124940601991861323215335971436650495693328983318678445765001765469189280193263931976687558013465452944157660632307830481613277564361405077214295247838997185979785602427373541552525754545626195056959930107901100818482255057022476663368962143592011889619569292346278646684647691542892396004439896483046809784822863029720315909210596324160971880489129235458392350517996645584329449213087118333426175868079939044069373736447316946792211096908240463596534307257489910254143758949771773886982884167589885293360936554849298791309487360656964175815320891139494155532963968687216598890457808320519387746537265637362124300608824180881352881922915796287790989601548772512805470485944768520676918830698179120337876709175116506609798223248421688553577136414549614504235393127742833485171797455113019898221748126860447618518767062957179276015030964879623370180919976653112223855617335637388951279829508925752033204744791397308600946740793074324591616981060051217569445678408185257599314929055230350280115533006355918389027983434560181156319273616969683833765974872376857496766836258153049651321395567173142538920607574701119262536057531965831709551443365334077349524885943300647712075162025570218233964967292186371111517417574017043814844061784517457585494985561006872693340912400215449882355885697106527687569852066952350160793623905593147730674789185257939678737384946608736229238813079209001125058465973584092415706515394230641992706974619637201331408134151425663502784995449885646694797353419022482683856057570012728491718737081821822747124772833093306257934922354343714087179463286199374071479673131187542954327683417240274320816208772934130610786886053744968646479508071998430957899158352990738307675914066192341236139972484714951683425102475456077684333899717096471632549019942202235522250494080217262635320825257485972976200693488537348655549871503273471695281505825958887429666436747233661481188132466451120701641636785786049798045189564954816685164213210475653310357920089571433480623266616563301814014753260389275606545709469971484635802139600409597341517317150530153633613363930396567634729423307189398090934633707654307063797158710276297055868243733190886212574428626410326240187091726286149720331688617755899395638580963607182671766992475984177771389864138522451767188808997163462900786374924695162026225004694166628634759214647204356094934451886683219929606216503901914975055004245296196294734596613915533311561233400794436485032053159570194951473494355491147348379359795061465774792739060955253378965956318306856194974826938094919407464631318710555825725565847830284411349537782338702673225207700080215778419103754016754350676884141549441892159580392939064645279116044224120009665205912902587776117775361104643280737180230040800040622468036007890551831821506381224380552908140257434606323288862721934926898244367487455351560923190225256102246406383328971652095258037893134109708143900215507968519010160451008953107821333337653684806938137569369849968200271070425970296748342634562528005206233620419226793360287750379365432525508807656458976601658776173145088977175579406434363674160917561915843665088586441687024868723225388148374713676293520591085517401362480465319464197755300726640803264787131415347166230956858124127377227364857967590457663395655270908465562348575928640896107963123253817995874542481982187757715345925807744884359890897317398741822722988657585196354013897084566914512412659829962410285629005248366822447319534382007659560096106243365615272438658909734404272935608528758676549591795783694750725602690175189042839256815483255002601940761003975142804253465345416473420220995750267485670803505449328489712926511237011896692916230823063258495901209132069436680271435566282017457086688344285378722349815400005319945859262865618078161562876433853733665760061315608615402729497702130041755947244374746151554846727742611745124551909413901288672966326741089398097314422107167767627247451653002477047112972119253400032477430334104577458928226241084187076177387559909606304102971108259527745251846003987363480051611317860037435977409546643282738759673353838084705085033038989857887662758528416943340703817924524410653877238164169019927057560605451374722014542703727180397093321491201152205645191161434527001885855757655955443979801539513134051555844900711962589900467506023442004392134434957970585288068783939585873030436212133514447471871017291644136027969548804278374334166799979923521554993294961806898950822227355163516019948894612308482299000662430857064040150550214429377858464876068718237776957960523458096537339774233293804908276949548396611114787455594813499578355398448290619158824938342661457797298755691723388217858521836754397263392282783997120354541761518436241606170498106644826840433584312617277826223903628026143541333924243695669202952950961922855792398983000831512916524138739497310872853366606258111426234533917819608428645980798268300859923198267812845216483334744545000784585244239292477888024522131728968884439565617974751875198026826244079336121183693425742999695817675378983322978113750725863728579996821284163423304644156176000878626795399329656439296353913230115575316560843118963416758444456882553820654537854752894831403840852449273471729102087230687652263404236340174374767306179818027726426339520252982267865724806136636828730552954996896323422188652004487186157358719111186389468696364218399011578469796971309916294137207334081985321471545976860039506468562675294855553940277570847369773142632424291767588918229657109179942242068065066867970743718967816589083006396447403359857800656820678486244892033647373771024942933733100498842778375004056619733878764096895357018029096295780894088584420867891113470690871252294692678666049927075802952419346504110805856508524937641025296589488661900395659181931739458660912969070281689932708813346640573210215269200659870327377855633982421014109302802247968431258805175360180631692550428399083395500098076364321764017248977648679436573058229739033686328058164731442078608084718116258641134969868573445004911121588429185022503341564630026327595691724997370035565399874583014128844789075160225827075352645127555078612658385407441082001708573856579813012354127923898320292971175414729534119583094767075574593367503959018019034208138930872371360344979879831555791815638893117156898454849891903750881220343434032862468155446184297920250160642083964783215808221621172021318657392481901831934514239757316730897904980884058660620901702818304285427383596940450970645899861411955036994704866260638144217646179420496950636755733887088479239615247488336015658197844776521918896269865798737782112204747951472746311628678433725400869543784908675225478190034607998510355618333789416254372039386918797725895326918378138157546955739120070737776892127643646597186860919116835012837904794100812758104888243836760006060437284601630313251739015813543430563365674537548133701270603956633101803882060243656303350161384477860776963860612936840154656788998448318724528314343335861565236134825054649674273485913550773659812766510369138648435435494603012520799323813609413395830199996202235381971094601627566466512522226849261621944156169654542808414666184206134109251679507313982821028992157934406028006375230484765989922916024971338843809195123600084633635612470334155253094716441462215961994862854426016805696443984171412540161014590707363822778489141073497815238392442918044066445291367605617517851299701843925617661194789381321689971446199496456898516811120723912663617637899107791119241742648586822509933901745466682701224918925441996616941914306735737941134242236473140805946783920349572108915974584269623467550874321203999177582403120919376342722203550443625308813599621673638152063827757326769809999958356266078286791526696420418264205979339266420632635930053556617627946581413005630915221207574591532766056191450763380236228705879784104875576682609743623461360609003951635893449982507908268200662662632335048658967710419120902574761338099847142617608033618502073188058598400716788565177949207690123049342778593863311397006138872878334549651533361966540211261728647612378922135871487841997339462429512046028756336976928766076518004361498302717273760299769288571017072293611924778944473895155901221456908481051521773253327603591924610661300148667216525473543079164694112335182801724344888406069258726937747924066661535279282110148382184328681212073082356219420375528429164666489795543413420543817132137003413265523033076248750583562342889223023298120443998450561903956708365167037433927846676953350562626670305970634635371957104059289442556712822404629021936434125931062939971480156056628773435672926906341992713834653744777161981446134590190026375851762506445841401021379405571291694997700592932807819397668009973837653403439460019037761060450684890337397776474700655513615749303384445414343656714065866003498929907324660949080740072536535083476299982638277767520863004401076518798215158712329688048577205551226088944081179253544011014787386837797701026374101226815669660622641882064267781557414010305672302622783582127669713648881270427683521717942594196646298286051877274648463307304205125603214402745028720507235760259686011176897721797805010177394862010871203797151700285232725394503312246267224326701860601501191719677885849478517843384109842397148738611498763437463369861229476145437502783267731451060126850723670196487795437070537550836343455663134839415621331378672656095425317922283283374564557025699271066931237382380522233440439966795516364849629591480375293070023950393130390331385394989698040397660684195227584410051442468308410156245704397972697921401637153702739220419947268762861485985845455867556084485435422201698344663618641416747290602347025769491573016958795895489024044118256607637272042910865530287090471925612833560132289612494692645540726208027393496363587620845134426025675453305282582477855307490352863464917175483872056843515896470924123010738839525314756299564801594065770821051740730937131508007851206872444763092574991916040820617507629482693868240740061288387663204526757885039022873956650763046338784049335804933949135606675995106959631487425123217893006630632793150579455529559616620657001822978916239174040152639950957500764832441373599385506932411165767956493569944293065415130859852053033575381453673192921143765528089621882262077309253796999458563285610075191905270474335393934857659697241319472644687231379928659328357041684127642098241334801151015012786773667145480610725936259512675329780844143483317402533376892850696816125222238451235833724358394340313583381430801871948266659228387888403070276685178043548453812183302625160706546655546165126813773336308422412578686243066631565139835298822084995884586743636749147466143908554943470624646570579621077473410816099682776930931091583322986697469378250462459586078847264066102581060898750958970858106677864337925264026606175671521363711202413147794231881561333641970610806559784275367971761359495913383540793947896093942418458280041820328101635361256861897355726825186022485171330009815429710018673267319648752040825559168360588703158273922914205845861572353543092942356639317424866495557408188748100919865202168514810169977421113712042990174045384294750146424777316776699655322770563838895014925322595845469064606046757096645574652364726549706501576471633738090398483945862540015227466051671612350560675829787049512220361387282979434994562972438850556596434282929865152774620496060126855043185327837583534966134003202730033347648361634957653283831180885706908450620933086103780542094550192002052156716656435577026440938538313665821470559582694735367237619890295020696473392802450888245187453151087970512299954974727392164976443626928319885256176770990380457120803529803759821838219348139133076278592772979481701768657872948126651759802540856758235418454541403940703624430273690842083897995999511576596702637365598091388266587600815068537918256100480425487038096533284610916960998766887699572445370486082553605119921533460543378684725900268717974520635154567448534362369713543199435427168054220105435184356750410728306058844527440326490561356229450159627203030470813943708710864041093737369494694835464659891861511591227070647775335812808242021433749504104352324699503162715695041652330902841413503981342861587933836436524120451200756073947013150535134428766582508452188244350389045233253971062910698735324727710954637054400545144126536821630125407547588783324161468790607282752809908463357722662898336339787368340503663151574428358261317363868424666203316394227539320822921664071056205848663029969189419920403753824662105245194218165652233684413849595326266104609627198108064421089454657320309850209272044820618373668315297659677700686440533343539067908028924223360970642674333991468089839058569979726517141782379590679347596318518291905572703115670475253748787933266539353469917332593907699326735868778196674791029160132532984676594518931735111276053889357463378000761962511396033352717821096541022560364547137848591394892707389932962604261548356184958753697702978343056358163746618589252203352611896277478090063663804014736113599685376725921430822490907474620065474270740195564449446357147938348439625388197633802588662521666533928269910891011331717671948179804908345982019560711913341110974968783784484707338545191780946096677217168483547358287215779487165719428287077290426299375744484945594726314142882809866212030591116608541598425133170941925855133398501603985691050758442473339908982324988036343138878871874109960901391564474996234547930955467516087889257186629385569338619549309215307927622415431037675073823970498029684434057512886052601612999101583416821167669797623209194157193596178894696538214257952577929637188100169578853791202641615775902094238045153200007314627887550786184503322061282279415682885707988709905461436529327771096035213232496736204295384688084384876417631604429309487160227915191652813175183069436841811061873576647743245502957697954218268649046686563277286192216399511829676112707192900411227666373612773474124911287319038448561172263441030081499879134825165598041569806394158236969021417493687182091606106230036805159841742087764174767699210057639314856819298214820938625003796456724411418522780072459367184187432073889100796580657682284139714151580389173749152361751462624622656830285590120261941994495976297724933065018630211970702131461606377607804749018051074220872339762950847906170472674442742590609177409941964228981477926317502846045560632735756116708932122023194397797726960727776327013111364792833131603039898764487626409567093475756255766088524754841691592134484118415308587595767172992182087643245179188740737137227594997507187540356820764748658142200612932994887566198649018339925696451777242713447871308690734619476884071916407536254591554351707343388807085313863957401744408980031233907957515500042495317151307052482198003356678214468755851480403011645522998188446125013887155292037163475537396507871661196595519337885794787651262630747469514020564643277560417280685980712679510395316182655802151913591532838069650819836603717925044039489806005061290170900872600335573686328422542226396285675231075799779453250769730573897900233552577257828524266957541370377847985750515205737004482451888205906232565557714560598109421986093648619441203724969420802302676331800268015158836817335807328131219082229592833407955770747520893339348478956115188761683132903080045455732977503200611892349588962268717697140393267301843883272952083013079671018543561837846533286126977192608577031785233496050620920003737754233527335064668211479812299465973079223543883832199040429797574693501848253711949739090287261750397552592429715392350791274440650259190291473749775404616182397308276341095247771740836644069199509499061642458110953282995356543682337302147028596052380728308112693408628575955282979260795615310041487105010174024073949903968872930851239267378381474653443852497798596990562415286448044645598062382412531517583436283749725495010916870943626133219007952605917901971551502338967352669483160807438167742434079646418367361231919838354488399380552443815410128655254750591775541602249231716435712888650371786546025535258234524654251065821916791806351967213114053363629880075184844096339908857750972987840647052496325334867750715727276406781874610017290995718541563064865736472969888648716518453611845159809705390355377215092942783244969753869523015192685746169960502769109290801606368113349337846033871572031937005202249406423213946857140108770243170436820303063473812403262691058014244633184566666701668902649891332711968312185099310411369130088265136109834724099385943254887162924165493239531945025242424254081643417586838400891587187341934931301921576853567773341464214307588594751367474738124754124123870804224429348028794314870771167949582133045408394803833300629997472005161150982818913073917772650411229653078083808766011290567622607612998452254451029472752688836058699253727970184314554480427231991192437375479162806007269859290154596294797745811092787893212800832317504538987229430420094846627664769688417628645719016276601314080548064605716685182229710689037266566573227870945332770624883887126242640396654182035453293377276415621242984467626388905185072162307552196556887510347060830822649238234686667883132173985338096145598011781534681352328255697376855259234889427613794646080673201959093699547865827907799927138713209507372584417776814813727494556058267429206912716883413909085215065616780387271429476218703786923758393295802717241125798288006616429519333511773820903838601786944390941518588089095235141563497739557810787644689660824207647167444007636763603879350996134252702638624961143567314712096421261772442040164286068943094993623297628370785656100532581675734980378448000893460394246555263533897189935607525210231673521941481915039236134150923543698059751493109976449538602408998403539859150223762508825046252662339907891432193599061636785256262776715826833408242787196104039630991784685918899732917175654842532748731878604088864027473477138818917107935309720202547396968732390844879414103127770457616179993539286044340697071126138506936497547991252608024128837302910361890771474587020582766003308459668418760759989322709254306968813450155921448598075647001179638697489807452190947832163723708861258136735158810918087948274624123371172895530501829467837019885474134584036184703993872932860133389716918257533781329578557154155208194963829090180170554785173185389540538161988418510986402746722883292116318161794332441300848311231010596780018468617735652460810369090647682195609114894260862092465277859431277720265028167288672400550832414380618495119738819773150924239277976909406540102443575804701498735685185819446939888499512674837276183829859563755882867682828005692197753103645844958768311196883434315562077803505677098823348559783266573260407263537471438447866399597079150536434499070235266968289545375771820264070062514016205843610058891549828851586430939624261423826485835578418985023230747597333446031177254435642717354166822759379711899323786164965246188384412705520140004802818182784232009951874723963734357568468008006755486747891055895676546520521873789577972089743031429378606103801696576603124674133306140075015373242889234896637098724523997312279996192451895294246412179521314138164012038200000411764059297628779507801964793108882735446491688850646933154842717503568608517969944429811095207591157957688964243345024503666699789020246466898251599785141425671195866907421758220072666018187590432109410290532466133545914527191109520416185730990540959780789453351024874315051553287999081472190445542366527078065069475957591364314751840749186796068097820612933468126801705867307103285355618495597846941135877289986428186749280439362085562566732003336170922749341083719036480592459313731736377930206208993007956317041538143952748547534947370894330354527819448766938927692086652046385092721789442503854209209269142465676246998517541670196261324350779900867824649589085533978689807002952151216906407675029307731518661029170242153277103926231897146432177926892668754264334939378370679602054904566240505558035902712632981290303697157303486797891167832638555833070121713829486382940576245699771967726311624154202874386894282120991466616844889719502321031735373366879866395948909788798065729957134835576123333191677239362170072260492403294976384573893943623934482486704859988812875816050903732829885436136494376032070350114130760327987305985620201940583509008000360280771103731719122888630070289632868982001063650829580184993713021834083978267878331083905560466029664282509989988491215699210771953641549904777693235999541613444658787691375264294967999094731614270835706094013057498733021737605473920109266195693802720257697916370811264843653841413389296095570034446184017511883708551912395849469208456732421979396034062882319599940613096944438871767015241066867068499585978768232497772477553673491265731483757076907039672974340073766291043820973756349964626504429725042066189337733671552920728481554659887368754660841154622370794405622005204043538992905639984772628513284257957272046033680277631009993090734094544849742801266149060147802815916744426524604080046605008058349036035754000571973884179971546857787825432042982984541777332607890497483721460725101730896294085537867423287878736014978139883107682495109332188670188784831963075065784024806090906919835980440968921207042720359371701749764662561104929781369690388611090425128053889843687383004615159988299495521212130361280965921092041189549139027914153107973508425593601113057344537111335946139463254802828438340227177604086682848454666487228826346698831869111182825230130893329899194574737741342092666085269581039055532381872945449847779305209257373140272493592240094323254643309795339827168828988142122056867727346507449431234272073157483175067678518995038984278219545342298859953978360343876156135301171021740917526829145694020541276459796179822898170515644639712758881310105263691912361049602663495730308763343511674639838729944774733112041166024875389278028924034991687373524204425301926278624516387377542873763554624991162357014652378413200258596778547874979925178372056439735325640873557759953795545434814974689911149751332454866606886344255783055992192757666405900527893419455375181530086533682934476846613392007652241702150241853927564342147487383055983172838409658623422048944289432051715988049039007873618638082635865427569075120338745944657825528222427080566445417991874631037492427772481009196458737300767183816795824810067148920775152072632157018668698902656244607986274479803508204482280745646174036041201191422840218729885244073831232123251361048282297650323627031730669091168400885183318581970486589946545852489008033319752146239274043485883233282977990290532613129095089929820692001394324766181094662814815861683809346377794395815060111376910231649199850329869185918038103503899182133230152011280343124651815382908759425633938048417849906153104708404228791525670957809778125652670487242801192018982321621673505772894029382015851968602288220463289561759617620810802735464648934267892422986707117026061888210749767847340514469012136433440854853065636342951904263397243311317182144627786393389327631958734043341021515019863475215133707034374028184937729189225175871371295718319812511898838739032817809801498007598095831222754229352728145233901470092678828274711157525752036089145392723410492614427814436932743491847635367918379221623872885213229582162436264772779579869231741134482721621229659836196166528380762998788135106824839210641714411330108400522717255834683603184764779900363603009656408682543525777938576899739901206842396742987774977882149855927366191904579522431044523656393370474357299808880731345107429579631745608460019509842248434795364161699033232304251167159567671606224834075695048563207484242215541602001928284466982860415290181121233890210060367883619232504802314719227525960767547015734630241929755164799568598732207857282264134909351981354979475298288352527836422134130785338567235635371397240166554390327781184182118558384622055800746378243495809777447829444673286659561255849428472847242200301714786151629791799575999843669328186524141357298299460999023050502426229586213081253418728199869972706792442560119320113816362186758186475869595572887581070322858697511594905577841153675506571939383308009079490221346929003359446259837403494614866105936913642003979464671543582533603926897378298870083183183320923244738942602640349917931267962676190199791535575467802472511614824222172670924359512376322998335045491084193859384496088018381550787412070808944288268125517029841247324483494516927057965390210616618687092536891861385054667685745035285176353205263094814107643658846081073255643179247058315170737640214217718296635825555844648281900665977761601822705864058801001435481070202638930996965715460491585286161033523872259883077891937911092763133653699095681708916275654373051126725246741577933946317494997174494663245695399258369242954573612016527006309869878078084547086931082969475187688748911685535391883661191009792727619362882787639608134561070187288603397934953673998294211330385454678815534169153605321659562054058578814594586402845123354898969350435194495698289573780498369887262552810414371214977244651476549864264114609769187378290653867785124729814098446318899229256178333566304099518187252781408029677777711456909087783893902846691423643920823481763001024471534070782379033972063129680523180705149608750260312961387310606216400722567337541786547611506406674868729775645702680005353538759546565805253559177944334687817268186795721972662813917632966880201783620443596084543552575622795515003567261558446889480111130195577814200164281734747029413175337256432558525838584187559343082073823427233431128147573584223735320722168613834329302234883275732555542903923211522250319831737148400784812914361251485809099282322115215140222756048989240693743691011770143907118504213310830004789516753393172463018656250096152787892553256393190240398332564113388260579088860969503812543119472204291726650940685721744012679304550827808549418000739573983014759072564687960678364418822982219651989972706394637349059239738333112083213065459216516947941135249001562910257509169877216419561230625511254469800127212967012899302511184045857498508517146293056311538029789616581217400835758317333457387527788882399092289997465406495977576672171566901438115230924003887817053873245324745295028954604691965237239732285697472764926009059313230119541832138066157294748409875530307294194640427997004412438956056873868091791182070889912106425006823100341076120396213771592418116776366431626667339485388119532509521036908913077311417391205135628879980329134499693430165169356861939486355503564063750669843609355877524881481177017934692048716496341973384971104025849108816660978437074076940430182736616598566616119646733986234221436926556849764973559228874215315266210886938699951854311617993445650432396790465894161430823574484085087637037071468008145278321004143841089913280784981275311097282763298474229306817488483247671978000472752402052713529563886524173096773292545936562623123728369888928973471711086832117967041851916021251242319032154794029855075394192807974630123529944593141897153221779670116187813478908828224113401849904562973350794367211088631062339945111491382811408075494591643907572959383728359402072643722338896963048782937210773503057438510174198398998797020613812978067987728472738457266918475103311670519945685840465469900611625029758971029310891208433979903666608565432506568112910323635748994383037604539001484271623150439835151828112439485319574965266861517523121900082372071149839036037731369191941327634803818292144266343887794379170156300712703826091245593137838410722179559495276793428630063876221202412429719954713705195555571972198956432932447806159600708048946346052642039484404573623517682826648534023754911574501684060781126524370062126002687743564028777391837159469538801389753618576765575883196336987832688232124730484277502917252262652727662782087563207977592675988853615880437009741623180332470555358007269320807608737545212488360665720779893439090837255900813437403160966625534041247348886231308220320260897244663110579699507398826689116898205491065887779080958775806542634268050007578813066390360071968627710141700738734626199575052583904079909080934018327520747706719817382000462519388518503440332096127488027350832212789908311909809457747676532382719055624153431919972326784978802981418957159492185592550348116180899548520321889085128923920286579703276366591938202087830048280883225120461694853376717711590423031501644592652851292571120199045831406855665021972118319845561856053471336856906444394075742415758036335489663078161083935634255099081472015466594235487952149414466765637957310974950957772212796780795431175810355534884557318283209930684980727612495585867661645028845514076223556507926419359836796157391869465427447064982715565705883476402210052660818689386782140671747372546576412857036238080752696738589053571560570284425796845280500835175389027894896001531873514982588607930959282105875990577676630514291252399801071611228094452419669987469453233794818668194310838780220382235889208814048808560044406848529304844952858705126299044878349142538938323447255938595192323528457435311131162545730901188949962742041713759836149171322058586506989142632919675006249755463719186928834172468300576218627391906137004177593977663653016972469932152408152635553032533715020212135650678527529907156503254563295758763127918349126001973415178597307612931834956636740595679363917374988396015466204726550475764670589278168770949507131123164911473261224753374344009515934459797062967802449008792494681922175165124892892132620247480473454968593684548648307834263417052416471979150601930883067030801309985521063718037028693801610869716188200004327908044918367053117216260197462764796909768622889283258856605693795298050037287565179128116717793338363438974398755948552866397902717980943770992375509194292598596372820131300303479095346242357132191368621139531601689818659024231145252003063244678459500370215890297206087714283905005954174256424762290384012955225199885363852827676855412158349804832657077467172628446028919016213297565359701231854020022237982726901536280997271478661494118689432306842204162832634031360329412582212454634879942170762126785797586641207893358297420216216436481989590425150372427847458400803373558248766250316393890225811585968456336786956442089649771677914758761499490261598321031472954792205785070437941355224874535826153704640103515809545306642745291846162407220626448580114280654232147872795557788545044709905401570596975753937559691617821623846065262962827119987996904856097749536936783643647681923562757595306749894990395368373752455828100516480925650853355674799743651783551925274655791381652367734787751387518254838186477542484482402649842165094461398559070364228685519884855876221328325734593135825073581269935806063572396127876454561277006496156627244967971817587709884159256304101921808971666147931747713632497133049115074986029479254643643913671768107498156646019435877582342838906769618480022093708289723439768092410771003399901145869687455742812048345783459991833120998229423080265585856312715372201691078556513758409038822077693996782005473479808915423776688890083931163848266802184658895168510255610358243096578118629003765969866463382584824907141937056948714735973553091584570493612647776317095224364431394170826599452659927565179377629732924787068745330045907192268854735347423170586032551682435146471017909769935819901166205442499684606926139662909957067587276304317078593648835234314364503163775346521357759740649781905142936886112942970542230973668219192174311345994322975127193559367082716621666715527717012324292509680310719433061959270801028774698150277828726842172384150558564738443458354967055250672981017316105826033667896027829961471048014120920408489677228180503675278091312566886673898245907541345019135552032927874635056224928786527904883342372142163003077596421880357163372426416671422224594075323339302397942026735475789476779088140193536453949798268820947079350345114753666637238027005447262087298920818989630795298849216323071844083710071817485452933642969588273273186874897726364014122712511605777399354478558345547610646084020255991224692867951466083195079289846204555213445448792146425924975792454461582677919111710169592771529796617959409157634613372082977205607268442037794721242941385165756854209200692775235551659061423823847590034999675313165253908051419409701873130012098483500665440857676008141633535527655045142741432221134623849670816228805166869202458417433393288134767685635563058025469569740427403880116471504087867387840326903028742732431109517334990773532018418479886543364091239850292453495617893252422358678089777827911551767394808830659536802850398770029672957278113948198575969639921220868152435973175468304320842216418726987280853924673482012546815510331646358201493101089688966148637417451069484304919435647191438445086416819105633098317135211260907287393710063832017921197784106722911005752035701016222292242006630165665966424979423533404982317687528552585188236702997617037292728741131890452367764725429979197087709659306524168953616825048721804604474600394004840925904865127786153779690647383140505479554197418841093126927777058653195596115047600633020841063701937307615371655870821325587684702443506673523911805476810649058109099061403091845556007340909718843575864498560662787993145352969436918710503130090347995434138932638478830202341146027124191694479396039964757892948637206164827705775847584102867152613247786029350427744089208835212879860516115330258812434184738474107069869058656490366347422739102725607365813961328201368469705615392111581961435124940150147535465729846164123358636521455433862509286218179052936608041165151557118002830443745581632721793337427992917077920987354957037707075476389616214044428916771115688310046172069184433119136264170963901420455366365371981345709411252512001581813355184528739750518574338968309173542255480982044270307039702403607538484422599689107772086384645119913141826305016734103316719198244783096151260464443989549529417317111606563316988740700490755670983021545716383804061975055283099701498241112750045658623285374030460226449003819529567645134323085137075996323962006978182367207672554223697273596444554361451383794608235988137558717563834730223345646707621196055547835983783961902647388027563320372396866232185218362819616400068812443038726037703093584256519431327671110070474136112583657983410415677790472252445401569286069350680258687557900843905432215998974760613881332482467525368370774850858544610709010059297376996000063021317753557778509345556229705737645320152799616996946484828855680038752875825244085353448564517349332035632860525851886634921255203871276566257584501110286503765387877117897864063371555649114371512480001323338526902645003672748991814581927187735922610536062482267579776956162995271010108331870284213461598197683926582382805027725877331547229740733926241673849672797591728788448268280495822127268122458881578063502228488985448337630254507815259041614486168443351301979349690414275019354842645460520566966806134411568498432393527677462638527656053029018125041568371647746436483736421601812432811783334325780600307276834817904404243638453736672950066095705002623986196917525680158449590746635076885461181642142076622613765358989876349747214924338081510136422437572826791233690968864422355320125683356826598752466362498161523942581964023582161037108989601356463083042366538686209257627249569054496396454665478693370076358950277678228388566747719452346298150804046111470400527789911384286169957195822922117322051242180234275699006231747289095334165228064334332739121200455003942356302378031984227731486293971990289442570792593183079495115065752182360379981940365675527730650380422274091767401746447625564929522639099938064915498613330839543393164454816577243383296401733284689110479065780993540112758692465625104480150630592457204691444088700779005986768227113990512938781288556991933680720231367014317795827605248942524201493165629636950739905872263850807584513318999663319555903549076744037797900076347692108820643825498343853424388815102108289589942323964418018881066153677281946489309442898317457703173753230551315469968192418459925365286579659834916897396581527261437703241679177403486954512023358906406558149313618205205552288689750343407047199578037768659038798467717669363098066282641242760075879732269952419071113111118650867685919896551175793840038138473247443026890919300615088612465623503223156292182148070990729523116643428278634187037617828089060923824356851619417382412212900351561156535378977684920192600634007165189944027438791461749188236113037717262862638487074455643142028805857139060774864790423367304757678189773528104276442174945556330937033676704908936839935984056454480062028195181287672933676065881750740477410063944429162348659378745304783775846375547212901318717875266864519030593058667121188781400980269771020274164740009611493440120621372652759200400313821507978339796320889965381719217077241087361735341742815611356295728027477277668970207962028089693719811505853385864918390963069395656360561828535260000318042290002436428261924994805800634175427493728958136637306551626556102216461662047278846783675614781531002987154763582809648588309498657056817330318670997248989420453961963875174948735080116796684084549487679346367506399400647193081818277771046605127502583373926068954883670526413392409474931981293016642759166973827696082301895710500628358404879075873594918572716600356646870863537431619175202083274766589178322697366067558219149448201704959155037153952101557433507322923077422809496959887579916677842149759339350008410756847475050833406471462656127698651047843652876217194150256223605069445258667152561569589086249624103496931501092127059732629437276466222989216714149774228305172470043125996497307488365047685469445934126547560202219435618675554467528506442195983680794762606468829845505699952288067161165036635610716124846764106887069949299464806789645532529605440334777955410576554656228188614195862721615894132509058243086335206833221662561773123892767254488685220585743239668302330143406161015604246424193434810870508013674818322285161857985118493777462720659163923105977455748844941659364207296921506242828416711775912536514591776862351037814932763146339378208211433530055507063961762102008520611148925118231196729690673721246515225574499844744519633082423278859757533514112598364626685172796021002868214841378054676421500229396049033960860570299487479074343385875690467648968165371933995127778929578179327589189992706943690492881715239912894992934584945510407905272965838869226429912075346563679466143411006706373058617339375775115498536634204668109223014251544128300021603767974411552361669071967329664509922750499151535711464843963956149511637335770385844554379603479046224389541710387247881957661720166860001533964763700759851198714875221478686828818415536355406328193955851931628463130885827346927456947730269532808094356114638170024416383641615509809668656820178692713592361052415212655317195187059058094540616651873853200888070114610564176012572522966949224915591894167280950755303773648461272918276303955454277887332058625911435400356064779664967826049998634137831388089233729667093371425033941693896645657539081967852775391858096096270551469039176515481979695850954469348875708889975713567288735012181431648161665868793875382407830066247165418656556063166343291188842440653890907721397835166752607595141732538652367266415857795883950418928222489418419550615067554707415278251673801078091903874707728526054224961111631954554850700461173434815738546107465346462004711798926636443948884940048108322603418293523975504287778408050181809357775045142384136967669381627272663606657427857513252931401640756337744921672979872185503517378520210417300599451826566213519642909802221988042921060388009387869392749612931992501488592117932045188611505516246011241654863820449755702111515454729248812804730936032717531422129414301009895649766917188510618210841598643135277956955956289143717754977004212936479600403800944768365403695871837477291662199262914738991228881853434295927624898419032944942927755529822118594135625389233799344743238431400211025375506705865456308184635852143943616535903816008756238760953530099051276066013894754409717830676939571094360785131083237219926885303657801916452524679096092421494375172539675531603167432911788147899626456096159790696052291560282696236548388142936500809028816403807485368793627442336962315784365258067663040794991301996684264313304471550368598100051946900572867585224132020623891711894550859803246563330493423762139510318400814629230354343802746030406278881588894568930060851410971985279696139794721246719905180081628095248175786370833003806216026074911002500829691779086463940027589269000458917576172620845314556506460749664003002446141366310092084820426747175318955525431028640260017697390536028288012166146513086542131581050370991379916329082917703605393957854877065307831269821719907647786497385573780801373023171236435505901710944192185531948006939235475962594384701102392855722630723577996860109928924244284022454773177230349160373366444559085312561998759306181486864551223070290646165176681553743595807467828508262163172217459648379184892383448218918564134633598167711991275858477593112931669351296811607907353056127938011259088735819647075817534303587484103480001312974959940434388710751255258261949840424838031940148379677008959501912609820346220552482562792432978761624332748657833443839480317568906390986270717455164696697636175318223291571496182825793761210715889468481144179127393582648310168768353992198748432781255923909199408057613766204684646050603650086799317631044797206649344481006160331132307050085692164490864871238921131508829094120851460408687176727109331450174922999691106927877199597794335907208910495654517327379396006824219380257266354376843310733885934955710393950440152893139496644283052364964727409356957404534743505290959199231784895996587698931529105142014382909975051186580112699218174892785359148220607476710736601370075258254835764472222627045727647807603171265332006607528838729075843110382255726207712565058738167030944413272536893119416396841479292635521087349837658293641595454435887482861953719910638266764360375974732497586657215727411022763169689348385360357580407692041811636827091233433875779192741348153576563278482115116847047089821525505441618092006119371214921415545430786908193575169104803643323077596615148058724913392136914359565221372259467017156443394506678116998390901394784611884235720487141816549799615817842143134712333217388918312746069018478556177888077097021962994159710723550842949483180897199008237887064966996027001556874444101836246948139911982102052021825830833332766744852163006525868390119011074191042395990882966003348437062555808755801240400068543043268646132631969169154393920809245949054679570830615480819738891461652554366571518133179947837986759561035506677559008132736902569908181569183319902451930651856438535792283323740705409989887025048370102012510836163734530051595654282554724246011292008025353812498338972048377566037498974617312195090304048662048927825643822494914850057911145864023722361771883638402747928489765352986854072083521537933996299955899419386147296899939034030342608280291909021392979183864538321312784771081214438743628156117369568072441688303798659381482396356997640005361265629182722940389891127087387888809584342825613985076258330698442669065073349959562311039241988816109695521844037642730898220312452241304757889333655270936329251569235627383839806466496296336042131687767188461423142891588253225886449510955590431602750870308599057287843476486684438551745445652427597212628946525058801478986756105262218191709801729617585455645224955752923550083843794978776278552857254308873394148017504484879229709571631895100269287930730124609430922013790093378216916193534906662375723691665624830639883186361370289052779140401817297406503798783440924538185146723902994841478060311872714793497416359132649271281200341834654323919521716064789904771893029005866797819668810227305289493071551145861229912285897648546358649194108415121767155044862556088137813938492613047565618780665590122211490409305760072684442570670532553706118994444936023203292147830676565956782370897417828813725527092193004553202796385278372895228641586731664354203565192019237743742216502803935671231823841490750622568378698762260336814222706069126737054597005129289261501871546505788600716007761603576808969154735126426859865680873102330086357379172211243237125477208856008253248992677379726708067626593173745638524552522766920783222093018839524478700457512840231637237914229494074813221947793828921813123576179313704738475773524038534554944910725939521876540115032473783697048956042339006001330923574269953701960767208897384627015103043452717908180281271673323326615468978116244630002042028941611739576439487114722237868696704589914725939119414054703950936611074902154207420132536401753931650418007437478143765339677190140029659410530970781048858864865852804683061470141894700358694776075465126409164873773241096926513868644376832185301263987647655810099406690463396755137411075429948058324320321183557417444690222003161195210178286857521451940526203180903829029595957824180766745162586747013046696698390966133867063778961587173961104148150462075860132917666058051078692426355312978690056299290589348082602828312908226537208335439627938228980165596698907415732188765700253995056795641492989189366153988401833176254428019762781303767132681145914022783243083208558968139251564982264575946392438064962518869096088573482330669543757761149838221027099690335475599354536094116385563559414323855179372637608906323197846289419893076643644127702081235434535043143514360418890298571625017318987210802420209835072940650862927506433160290941493699977722112796727187779119570218473385882867163448278830801140124717624752518210279812978483822333619559384984205941643992599333046631299752732908672849291549011705809256158253385109050266520722651507596906688750613717895679793254872447850638353145881624724779800526908985316513772966478038835304380824674077868657838912998618403727397576299958647706596934745316090317417292793439963521649416033065308173012926350424885978934022355813597286831293620359837773786223593917940026240076990470282052401880905232511374036340342659266987116288397164785503058759267745190157459246447694499643962263751894823716888624929567144686087820803113592813762931068973784034468658269120536799539357106020953766373814381036651127726099600711496155238974969492154638728969564967000427727384972021762190839391968648911007401701060907938215749652533264875773190479542021885843632306944118390597551173346500887704731484472939302725113445267212862211507348817682457725323238779731348397099046060613092335184777889604076405918595234152418122439624569507323225989832632761406886452480576522334863307776146755467666441126518764969377545462257690969710944594570240533311407987926069489938414315718272427727148272675283004284226380939529630091638672897153977359909469059064512446857728094341345468663639834553933376674095575229556433891620536190639797705163096109029604615037091268702508004629686670589721854544631480693222108632474203549344985319790100367335210646306925049260274586449387927784845648980732920345003482332314195740041527317174909494741433303930148480918507326835714214908444178715808751565470458106587368654104169038441572174661562820191949078003825003470294407909669426885084082481624763547866134205803160950691455315086107741954025955037625431261900031173766382909422441382260341281809342839754671887094969503181089214249540876632851811189575618772563317099160931294855124747025945963446454806135473577455988432233813072466737065221769281608899939611516503839597134274230649090438367994625324810595446046691967871423559065586796521639871918839685518897311123474614113956112380547270597700504349544713656654333839024679608080698549584338295429903368819843987530660334247684094661534777976909301315768348149523247508970163018893174707807387251674511586084738711854608537120904816698804239292098144787363335436876835363750175068700440672877899881065428698341329694246633658515185169027709995234428080919267699634273116377039182614681226832821520815107424753648533161047712055515836316252811926002892267480907579822266636879378648589199868545498471225935152261936006619390340069256777798187765227166252977079367694551091587518359714855944710344052695888335021199411275176610255761189688797018052925608746025558133897900551766520418356959114584362974147215130700761868445579585521620202487602926208590015537106456696472990111749475785349773815999810854687760627021763114612840546159615628588855873340023681271025016387886789099015749900230500395580769359058277354738107397588171250915769498199290433746312242361220739119427841312536748175173180223107365706258286662376894343607429903194077887754406969992400961516137683181579605852789795468459170945528536206830264459345569631727072677351779572535832746083038271134049801422324183940545501286299580702758757578240822458823028888787846718342031022254033100328167214602538243623830068768898021173263870594516261576012109566548137663120652596628929902263152540988713093392938333078943722732631949443395934829171371760489139620421182319910511566072356363051433901806277507137617699585892472532488588531019278114648030824476773201906783341309705094584137765599641429254369156561506101368592709083057912437899421313739334582946948423086869172963521527975039851707355775554790026011670245975090135798534302876290424970851859418233346195897057008989270526499196280142419066118956968993018091826422444610913650093724137558138963847980374897888479540470773548902256053674347975092957178981361439360812971236722212019453142670934241150363818747730879711917915360900540617063326305840577165141190899092613347706810058644956555702029787331400232435419974512413528554470999016368159076996121765615738981504530828379018764460834804125225630122124849447126791013376366383878263927573095971034283170262537969836975965188422138729764713582272552170805614603869191168834153981779160825975589822556871812377525458165428572175216489945596567991541876302721119834218031112462102557330506312964797301088785501229596398949657536417156322971683570086524211355063647645577070880931609306473747378466855613788557642578139973241052250587525731032367911682354093639296182124383548656977072706187763126402903210398308784180759219166557655258837986820856586737646441817997103195135675540089026536193282733954877433757559089434331512785465278272205178180009903791067211723734036856832557275389412543564257637111084507252254076919370300237658819315880375047987382385176020920161482272702863781182209688621480926756552069584396785931522315643392005872030792563189007145680189350292321670250207431352926876182662636935237235941534799512224314887244623039009668585404367553158060514028774802874613713125968049396221188078663264723137842860906803768402205690675617151377575992077592500936568871448516662092870567084881647551110128558069350834118764630880693532559251058584781289199227640560676800098455870459461598549852399407983261473497328296651207872351528136761104441847989509918857575709307289476724568254982566445444091176364772832551059490205599243735771954176761367456084667230950777572200469126985132701208734068594551848318073817083097497314810355489792815893318952640021879607349701633839359098241426873991131371798380236726963552164690319794060725475326029952172621455239456045675874072925095602972496439800474044629462925710012193348006101779722301333162967485660039702818667757456842883624412549327334106411579679834546586945306058801267115553047529364639017534699819683876275041800252256136394563027531131959614275552475077378903321428670694616012107562179760891020220502578137005129597389225939292577332353562301049203388198201056305472224962645362794505724037837578930376715911459805058466401200358784554111795290013531475061781407033803610167838329524114499506971648030059120639564534262306478760974120916198132202019074998165921540039244546633654874569610901281988593188627584127132637760204316110816124804627009494620251530335756725358912265057308470166730300387324222724297611084920344466909438918440592013248652152115742625306911141374452714978468818846163938975638295324661801402578861852311841922246930856948004711114204399169001800662004454116244408324806334233478434843533109572017010744200478919695410923662460895194980950682240391939368274886403519543154251864997957721250969807738954385152765075624122650575949677361995088651154339607248910659030140774799997481196078769776044207432806615902194784604697195326233645079487785771823841518514502585435802947035974257464327007905238771491794355631741858431628776990015557755526947169636684479671380938376817134518111452512957996959777222432891498223668085878151870692464884941573938113519371231857931452499834536349046331247555692546666334853584838645486044451986426292916452633414840674727296325757286743285398207301801514350601483797016625041938769129289120220930981979004562904702690339346565149248271983435482375790174562930176659883835299196850168419736596793926893957707450456612788828464746535533780752575055667468741536625738908258079186238408732014316355537641644455774760884160391763691454045483111212718877480185106589299410151590584428699214361928647334889847217424800163137529158555026468961508376176111609174865341987248250132045867240081205985918963363842382448110683170896734487689856452049716017084569905197380088226830911639467923190070721675258135221474657913141836476636319098465743456312458551596183800122959093990480242759835154287735838335053829599432974429708080320210159881473237151637436869340609485399999045286802151968805175887667491350610726381302718906996274306263150403758642634598578945425090108808683457151700797579283490349543313723824333068320020203376597696301251974940865241402079510138320520332281149054355037457838789816089008792701219451359663075366109950198910464870812076005489045503233882160247318110994244214081150118901437070644727378617144475795331728460470311359351029557532088617608139837799008353448936832887950683106125931225427856087511307313388663135068568015687090368322030095176466902573064010312379826426962521970809677522768567302093406500454762056185095654569608066590710211261240579834943261058989826887520029329457393203792100166441917564568836149592598970106369055119085886672003997062323267159143048903897291954953065963112420514933427125817925993307597448425461420473414581495651040670412434201583702198284256541867687654412314011081246483648210763273847975166920484499942539816844404152240800501623775081359408084684835024863689674499652852935975538556454660456159588214213245702337374976331208607718627101197740409371422503165363779126529362440678080057709191736255659876627732997948740571522353729148188491182763757141591673631879656805303990934469420864826900755960670509596307599854355848606326876591421826898594463807266754488995763479089671088687470409014709952526086819746133574493291635922069349986366916752911838760525290854983796836635935933829694149835077016636425252795850825918652073344289007028354775608479998787291180448915622968016554233087426851883814522916893194944311942790998770870341489513446214887118131066520632513354957855152249706788280560327763247288987590948228886147138924949307152777083198997690650477126205002446278788524512878297041978538215949458719680946394084783567540013262288532356726337350164636772959224392237920585666309236789647677338711965184098338117002975424624325228034515024905836643566302794503147026704863488923756649316550972775632627053403387244077394162731715215282664955542868342863062626664261733129010251021439159270698181968492653971150033091398787997838205482023726173085118779695900376909794874268199354215653252289374287921047991146706034843845094258600511746665504639391144508738953739223903966331737246967021989761784005018677142338626524674303005675515665379151527692847656878860391258448142650071412809967905252104132176219455523369821175141402092551086221978848170909822728369092069303559291304305720399418491147273577971829291079569955536959792169746344144536847869747123446678659341792523683422174523195424615637584346731198364625340267917837854913534930735069838017352601274480280543509757634568681024600990493778173083519533100008308049054088099500024950433358508642382914977362371285301807437525979594973414735478533741977511794162872244875853858704469742745063400001345918549781093144155219697961848871091183593875193338980706063178742034470683277956216588893459994821500902243140274927862931003410102603383135103452657639976413411064297154784978152749221502311806599626912066875531326222045365130383033514507630551245900094814948581952996405416666225424116294767258210076881438456635089124577670550636445709043271781496913725942194569086846230928169056621226518473835840746797456315066214721635505434369000755447119948648182936193182649700123154455279584094517117164082424099194628360280746681607347981733802611725531394394297663864637717120004212880748686643650837243245197661482229442179996774360704231883900727569096858739032547386238681944567117506320903285042843113563981862829151387495209029464480005517833153356067171123900542105125846828626918798976896576355097159271020094950641585006498160369286782775306444942030301084029044007594189603192030533231773389666347920001971396978121861068249713833662108999829407368408458881529221116879387930384517716324102685427833141606875956424922101577583514003840000406313264776025879515799897980111229904925324195020613702215931130561827902163643653518125171128637673376088329410909700847277138800832687065582955410119355418965677563851709143370913313562047139589065299047111895367897862020071388812390593548540333571944437275553562380453385491395098956734248489867360215577535306534652518943118595297074801293383396270485287442528856047632329130094725820854178043067127677110569892344209527731266338508706070559611391715202685500003440223290634023426122160926648845053143035401154072897173290490305938971754400614182773172784887546921060756760987026947591881631508536399551248834134714563699347859464169432435710855262270006463181405896480266770280984540840599089218575857435768488972315575571071449699702161793869146541966955449767862900410787414559380514180571240846509295059749338794627962300542278007277126734597113124272532234353195794272389523170699741716648772619365715994616433403807574540109106869909670772118586095547524584140230931177497593972065672283994621204087602800940845615030031574283042134591586263128710700837009402323703861130848141071450637497574024082347764879010458890546762316103824139187724766118457552883793463436061510255526032031194319072750046933814394588310745237890643419571351287473643118128735244945978615339435684679046931562926854741667974225647015576706622818951952686774382351904485684426943181151018232896316745059878728764898506981378641299624338253816992338750076930758058637066946291149732937543112467477667279473717648380296061334086291892095902745835180625299209057594589700393486453028385345942529186929906361492810394747948089374205425280670399860261065294249511784238715045803003983145162591588920005755843880722354489611549756110009355335816252568129289748131940294146502006331939459023545624483308552047910413930362858764211986452698368875932787730923154252568595377077560806006129034336992738340747418200235767969514288880097506793483603302607170182459350295503702074050706351028672476439159792983253648446633717594334342648708763406629745298539294596280881870462507717321900347142286574844965828126689045061812373085321134405236096915352519166891273729899478431269096591650594894572528448113470314775495630134010821988535041134125384883602211240569810692759254976949766698602972165001110983183421437944811533883424711487985793201583122715288263494097583956643272332565165602002757608147925860667466961280752420886172142812150045496485742577525539437541666204583035430670237284608270698153286518260531511743185561849015865523202441997583816281210144844351511400228969804572691646663761756337700695333976500552681213561027195335039220725815989158579635346302968640934949240103199492946766426694013316297152995448343810936127736170647800531835213028776448294445969152660941184376442259320619006240663763149115712829825919604768425571810313946673940509854341068044492182752225058430365369988963081502406882451176175840686511664659061725015194864434487826984264286049908801887775969611787917668725245668494324702372723192785248841045627727903988678145925046310708588435820357897592335274416828748612717549438368911065118545731218086739895690520848762275000050939765620219143884626331351106902918250273439738438429521641369503494953172284317320906329795388327019480921803979294343422505308256601260320981469298716720806915354965453307271638187315496808342740757179045261526223868667836734911787762595057374913813711459844618623945526650541309659125953693705925092916391363359209453241746673554230015611049634221726218552424561361594651140078802805222080068200829217773958579125100154949160249248463366473681858106743163875036522624691644001328901249993358446379864848019382866655632603195874161733667386664223843367575320098799475380825298791806282212232663354993484814154180332323687686461835456650977157397258329001694198893276032340618349614481515450229071438320924964403713984707216820326777061411008692615311559455771012107451062126831811565839947898002350017981249836603004698333583316318585113612822763020281934872780527138540341086878400369818364300431976546258416951600878082215365852931721916555125758743512983626769390114155227808722931290474513209442258993232604467340215336204848243860262189837399172560062160685178244797647329926737405398496173259581711767207786573281849286599811651763815816730363724437991709068676881163005078547504373537213882718298302275828041832434171204591316143310518861912845736636669097440828327439485106790300543380702480172038376006845258249783204272274324338287022407342161020980608194580201959313414888302441748570574772946544731263602301566870052867115671009668256421226262626953570156885633392640089513449742331732138698762095652812249180374360622614973377370713749417660001333392031739160899726935398941119316133125147150790800183088975528053890127914635310421382963620546177254949759233484103283919964183319003537340613075153350586914015445570365391585586371078807736567970847583797418615848487080123656132912984409950668658381556143498794478931355496188514650155208035531260689920765208810494131807995577836261795898971303828842692580055315885125348196774936183221368437623849413721936534503287809857046939317095210801573285831878826258570619596629721455810746635729786112245115087373972833306315770464648713021031350295309592292659692541190505762463581274572912749520429380695978289830532553779013571042627535231682645176171263760119784049623845570651658738484577889673738720171027151552882812255710223748671008909413931772117511619342535857859933843468721671624970521602481148997888396779599023255976999335278051737654610345873403985420304896889304107474693029602614285993145453138469925722758108808997285361207721017722407759892327252632775764823864843268749325238210725615527968826281970999174800939861401200918114183404776741863453538328247413989829698796584821607284535052640617641491042715750941143401319762608099860951358579934322002677931583281242348085267277107045210322959020076719614499531032704875187565856907636643296262103063139517960040456489439977963830611813335081221449504257327349300064346273001071422019714620593417838485885993771844731845388063213978287950597917188860148045367422575190553451663245822824708357361939578322083750524306976807599675752171994660354453998617496308491177962913044099786161125648986459330430706864122219591553847179467908089327257188917730215662831809988034910325554104178594490397264106847800189567931190617986884496299351704254937479220807983414777466238702486025719930302402229877793431932036696853761608380181864596099176205371999036639292843765287415566514116448601810689020411181314401833043097794926225106316860101685587411489744491147938332058919260691309095685323833222361187945189418702581938561857676589880834393655175524952657636619109282728634058077346391603004503984676687409574717139314170588169192451900285556398052098187904488089047551635736528523258598417752336902697259416737066212104809430803077880039818977311682691965225710583406288458989708822060165083612285938645861586728265258795518052282534909785356364680948561555381233441766750109571268566805991358161477406581043935818781459877679171072995705427909221432120375548634570709286102010668374805250170798334794588974953030076201188590846206553719167114269005475797179259114461373667276319532495529432881173504843707797988142394099975474280489778545580992372139813570435724272487368813826805520693144441184194837862901609983187659799606487979660062575221056051134709324281499551257716072795154774411794458320849252171407301298834997676743550510648054549673624775976686540551498612315182929283387694960628063290880589875171653791980242325888218068242144397145590590436432119220736758513200252533700433007443243604713030564065777474731151416195625635272269975233004117935507848711153327695912806272502922601670938090764597812300854453751164125878957078101512426261826027480376032846742137699351348406497924326157974191099479552100472045506359789873012138722354653596229087301912709153212325406031986542739800112855241215571738532258560044408269016454156827940068771372684830519216667900891676016618095037141652237646708106967150376553883341080529736314339513469884500196913969495534648705275299119224408158506943501248436649961662919710420374053421218796512451965690708405633613337709204490363905472802103655229868108879154474630053923959316561769397661723724853826442244026872037095389323219642047264558280467559517761170875671576588097749723323690089021955653415109370490787150356159307471980183241334167683613814905047113651191005205118437566476236199942352709890756107456582175955614006541995944094865911591678848582899313732815068525210447716573616399379473786442626200492868969845314082681443159063437796527907162537139907798512228392391042586036011686001000190489597340087768634460802882153036978960019305877531696647829066690539070115556869450123031274272084232544832509486118755158982953508757335123318147823017372960046886170680821291744368687209195998728132307023721496060142002765644002061228583996651848471784040016880815080749494469178791691827943325467652853672152452953999986249578439803217457452508744344743181683253519122178809311906044850286092188891710336920551454906552794187799112071551733071971898894366240804953969977899432639641671944220501849288253158130473064484253847742527442146155852040707226948257329456999256093446755627049334267307292080940147458566271136917076325023244602518504489252100328552169773136734020902697620137691542824297815913989762287988660219055952123422151111261666759281311255699462281169815973343508647644897236713427987859439499993480195514566562832101913640227904720977297196110790808792526467595879969785116873269187865262826548436490717170100865192591059864067673620225184615771767088739710794744443127525530891103231630756616212963963619997344496792921808009155145567361503906288322095264672569785196833426452738356691776781106408328620687262426426840223603770180097410776979784394973337695974767258085633047544364605814192092056071560173903241182929890466799658457256035937025214992937072498064927094419636759314843521124475960327181329417949809200251929078596237670572749846368551904187891611123295726984053487104914149990401922452938122879873924220818184988665271110874375361243174028938260192984178142928202842253279319208911424617928322257196425224328604048999706764738014820149299772277480821974031832413629306315918021867084425902685486118419920130012300978611878440611011317307031730230010101142213282097485864510065626012780060460545261956517732184460741882010491925723186428556088086367732332500877104966424933756733943893866000241270976630777579227090290238183495217095951473014163692384116498860546497767855219511113974593144113522349522318065597065525380783987801052906424508022817137885680537126140540649845344351658104497938665803156932602700655212196928993660875782214446604095618723510883560526370371950243444963369918284326514119858193005168025005177137975766159830960440845282837639264485764740621889026051542592498316566432230366756025811532488740513342978919659326513343628607050500201401664625428222968938800981822049039267799928341973923522017399828394169488621803738834010411224183053533945718866275678138169204107581845706002199584914231366688249789952752159626433773275431616488824464921348432875950185138474830553939813514467942834020599733172840818781758443903670577397690154096200762519275718590456525349067783361017928643483884862768529053024002429600575867350347669782595042153676292584579539968405402342320795844604318807723989469686047200564526392152344255745012825785749414277014765864166660667664363734124486289500982608618172290516406326076991931267249904905825509768688420370141005713555664031291450635461074617881668339159377848459675761607317598271392801617110116223039496666914778551580297630892965719256312926494639607731960789828064357040150789835137002562416943833025567741780124852712998887606615680100902949475072849763259837150194641464990209919416491314454118375285043294269918180651982014664803456620342280219289057188424771589534659336832483062039866953964875174418617891170383600818428787415108906038243262535131003297872653937457995031881228012658159161560271158252320094290936968005693364786445452999379731780290691680255144150308207658749253626868243512175827140399048759198318864614679564395585188357576184294163564839498874580616207256256348034564145606024563593867998741113992264459623389104149789387436888769762210714132959328181331885117942124285109400056573634182392596198647901997228427099634907005942440467456836270066921311880135154289852851693355768980028794599944171620113940025535275982894613899205904003066883904015047663241085252499028325955739948899243822111610415233090231910545951004087835813351659353018735807875819112779171512440141506221504545093295607782667105769864338784458372668894329329567575140213899540405175930771577651226119736999247919223003572966309863563723819204819210049068897707806800564089436998622271044049934557563839024936997636612695757349643263904411911031965016445837329983173944069546815504830235500469363510544978724902418666275432629605888866122525050283301568407080006150131255323248205827347009699293800899970220598111964732219405434202455681368092983916370471309439656867851064204731788455313614094803612080491714211272221077415678413618257774800383710258883950928645752963497752464288668614251871054920281196765892895951807756812157385686040041042272082806543745509328418663488807304644765399833746806668690638471590467017059963366019482315592189986601043829742144942606701261032033087103562256069860312558787899148969388146808387444266762704582246655301414838072148722824564296989734926250533232189792780894537384578586831007797109380401742730944296661456371946102522523851734822560230727550782561292557389274282358180415239893063064213920698690802643199660533116961527604550366977688788875278355890648284916202627822665242941619787884328815723212451779572581967750799235426092475244469666823611892008122424780154086586976307582250617310231569739455148502037626066078179798135569426588351903398077983090505858225004666026301122530597786978941181451751284809326564592126077771764468894652723729884371434938042699567536382698325338657777562461480031850842448924139498614377032521040967128144072838952587159678359213750295040987293222148056741623057284742148173822130661595053124614803773784063879616410122288624409827445009604578407590116315760856690520656567469479873937918785737231983261429121325923897400401964391683579680140169446564548805031920196717425774748822787542278018288015107040622022379597623479738043675215377194093360802534483999147891996581267136106000694718499543441483115152181074860185300135935765786914763398443103678722456756259086492978115174244746602792174224543986194714157211374239310385108178108714399403882426017444545092947559325213570011478236751793173029303489306332754667152115251707176767933944438676635956387970472132072609016539553331976141031645787419619292963437603222285997698104187764979871420730161442941511345022536529253927586940263220958630368001345191862536228837819469830155722058333332246920095651752197620518097908587625180477548311741863175890564908064599515356788079619103183722631208794732253192856369346238187954327856981990729277972853173347751944451317762221864848177318335853908675265444987649422587044065719377501546149969531224172981237230643604823001062748272837463642050676378646358012925307144851833317111183053436017242816621361247811123244658463699419830934297575099071111625620356039139170581146707874663929740660546658578374245624884554536307868166428730561924998147953889928203881603663753117621089038799347122339082278056571714914314184255634083560046847092171212845972541682133904215511073807773918757913765212497009201722949167292460787533162719318062683282917594289867975639404862611293914652335144605546407367566548506337648475745792649690606865152710723290052268905243904300516065851977146177654557336744732953690630553064551795827203613241223481922579422436401481367780073448834022020993549935741707350789658672004905114046523952914301366734849390988137458575887715334948845396365297248337936411861024747454749099080735482897879898169612194911578620297732543233663432490032850870470690608477097807313739153525302754125606028663573614100649920201977321394398842341402811818520968441688169898763418827445500214558064456139900465978053182467644487288568514276557227990476139474560049542197532015184683233874161549951777513690487155445434434657003041603053375489432093320567976472934483388375520094393949286615893267500520173396404494367691150572617640996512850932514763682580243077398486119313096484849144391921523102220160579461246474401584083876630000829305717462905692404973831603931696523955717592072952255106240599981147539918568782675874901173876018711496009977912246135734931697179232707375268220980136283814658070903532598547073360349497799843757090885332900279302241980115116058131907488029806708349636476278500695479724831816879834810083707214338443951838807853217220642536278175680073454360269789323923784579089294130563782340007597934480804415838068294127783326936783683559233198649600924269529523615208116183572687314091727988038733296595505526772316581039167716801862459579538594084621777404949342411817888463785445957118675109144846631732872977089278117663770050774337274996817511425543566093746531097811394506237465809247165796132629121097196765051802443477986457452991762712451018515640365266001122554844452571239915554241731480979889381264134471751754968857314559476240440380076087246378465599655288263169892116678067170966374216821722291042499839065862742293271044757805592493573575030263297229011171851616740716766371580054088511080950275999679683096525026365234151949359734802956380638084832570099444821429365222930891408824371038832256714028954209617831034327801678361717439733346656516167202537140190581683731676715881716466007263134697331344727475421043181084716014793302847485349963350753853559164346785559519741415822405167049399721043620995777259756118286358221959087277889163752018048493363777850326201251223563374178507927525809232711419799467195618736227092674854250537206242960937576772850192290915327837097132784850166573714030896836859187034342091966796946172210461075419606927895255440994064597067126478624689910092662658821879417727500955933750035033636483549221191952337759514101412949227329156302167429339796129535880149411896584052486998385641794488567740726769190575031398067074524195939596005398707464959912365252573432299475662856560199697424300959215084957354730389206370420652194383308483861458497832056727683497187386557940169849441872751033904005999410188786291099814635694502022448377457561269034983240143273279045797208801760615179197913631159758889899804204910066015017369189585587863235283323635361085392563158843117496987044988744517871902921484609847370360023830749115885367782020441256212920266822383359545189347202594306538196372055580732046781880082357152907716179438156163957662715608942116430126312579173929581835270989471385074200281668088623154246399021591368981309003365277844203752798392084688851238328677434641033929527410071697429587561796698240272048507326744852760993309819044498071984804802373859676932091007654296762940353110911587850229453486251641342448874780521896511916794710184214930461330385680508499899701556905176611835799944397097006795725652852893122943646735546778244616762417264564091474530988017600569557912484871625083620143869673340680323947897433151728451052387103890721341150251519482742082866610328144599498494506556325928643814462391260551351261352585679458587803852732576418898143432092344586692234539356529476692891807415303954904632973445611301095632262939457757395726740481388617167969460275027182070634288749654459202181157151644475536717404922763470796491412032277268707679748565982954656253662574963296557633608606102838934762102007032016739541933048423519289462485844928097873100934984971824023981462636935750250427915850277708158836587933671040310844765057226567933845642628804794366650577611935548725306851975901504804181472867494684453341377841083384043243032697007963373579977114128390322583915027155770116054790040416430313766061768949467074600599525864780227145474225844620452723845395027600347633891477814663611908709464426819430618813029428843234954546083942880309443328980588305362140848518846008195078082835322856135295928373536564192962093578780782776656356756756386802332938603301216634979778871877837487056409294175879918182730834409151604847894687633255825329195662087210694487354429958039482119951815424363030823303955346649015660384983895848221987458400324137130126648326335902417941909781717059127609949202664892126048106498938292071740109809382666918290122074215200257588036384487308289578070931357473001874104322642114144799799061928341157773191459420223305993969334395344836386407507826467692543690023886698999661757211610338460430860232049898599506755804445001912254331571291010256487374204434539082300620355359855470261840375460041445237322021445907469372718392433994203032733011459779921455765871807349571664505155481300747014889017518444773934962338058190111642576617063847270385746164277019078555085337683956984578724682595831504943096284674137032238679419591216725739734516882410427517927205419241269162577046609080405784193449946987133212689662536240046365332552920810876410602806580835880987643539234060071591389190782192980078878961678529034517084083514051023132204039307841812815021655229729976791990581694110003598067469339418498283020033599745991020106986157989854510191564442263591079924928137770305810776873624560834906844487658542580555175809810871481856727710047724310711150421177602352696030499198006031285341055366353718247828644179108261273359867808932544030970071593051976753164795281722314557016508435236073577324799724874644638217705565296034448509776513778620051131571817466919851920113490880373355529588451980599892768480335454692917662464785557409327664235924119438471569503624101898392952165389920555442093096669042382467740984526301976756201572091327874518955411242496712928210551224987974500224906935282385519197506753647793553245019428525582982085548275514135621614650231736375440783012622634967513717256369678333098778031887983859519266009646704815853118926476212808033529399821314014733097508242136659882700539426393291271021001978541716521519110286035151246346012082999479710004269537845577706630157824231460991242119492968580100108518263340942188315705972529697036541876621235939305161200431784342613194802474194616137601743599387423625743041733323453286140309025007761242635231253800845703721821518762004413386666526963003333392229862187581849403384059801988478946792872745523166141603848936239526341920611306886516371273232842755444386907116072682862941946374296849735658070962649765010162272973091848778170831181378288726212834292803542128296236624697884004537724859341987170348629194022837196120144389316108718551477432096537072750803542172242762527759957361042520270465777992627794889589380442742636286150227733318251507234664715884413755986190824711705472391712553773906440795839484835350109144353982251599086440981125866880256649275180677883181316716669495027637418740763134430006134526959215812085997460019692775426172500844917008708507155175839880590875111439135587193259881644415813889551406591976040878060878196550202300081062912306534916746702464310170315626935885425516524942950519628796061955588211813307105487060497414379303996992708931551625001402232628409186666788195683192086108478166612895796646439844325577770963860127432814677233999617241297148132119813805528738899086605319433397779244774839766353353244927413589253614825073086235374241125510855146718927324106673395055629476003788854713083540224662045378362695615003452045031768028323972961373178590549545219645517532074642800201381026779231520089621101055270278394915760704185068710808619849129791102566550307082362128391807256208543638679005760538352505467711311589675103284888543440631304755744636195430882379427627644946714918547248386498537227157913464452926940612518610815419827567778670329467520465065511191067031276046436026189031497938325215781449691262392137222862704880378250407891549611910677476974455948770414326370792802503308140171836609904789589347843356607957883338088555613289335866948031953552365014348568303341829366577384826431946355420000787835699246061134735964732246139642243428305807020024542831557803036577585513221333557822525900234235538782554407403343859775793307928260164579746201391598836866600457732456811862778860332347867153330111909042951007486428266213975084218117596466591965653636161612884475568637115222913191320059093229196484497044190927044411985385691751328528888989919353841718257953866091370844535516163204995574779297342624279424977737548406385744098012163205682667332600476257921492938551155248690852438760325425861918914368176451688630298531035567143001092356595239096311811093463593652233418501012502364815449931338587086714039739001193463778736733186990540542971912666153426013568453738584247937147659845228190508557193279944994579724897786525938730207594245016887760177905933910659326615822738135694006126030315795648702677419396273726135325181460434794467747275595162313039543679528568309014688554352957441346343527670378390337901246611359358437676783807145039150312619432723777158941193066784675134062628380441558613441095556073150195761927651537943242457651325991585612809087047991994108803363734442170638435225731033874016283403382014451378063937350366648078367696951363755525724869021828493515817341201191841645763668841531288650822468864217742220452729883761292080466528406467567705207984461125683867072501282458367725839825517674247856096252334516540472174246432251597514005987702815395530183236957632693913855207958452261335034633641954011847425548103597376642524026189311092744188036706448351612375287586929558271440554376652305259974496050658225133553808630031462303969491762110479332354955822140934600871230682644130379427580693993470622328620993808860105515013451315786770207406946256362594782533973901739039481720349289104139336299659587472529444728376960013151205748204392359149144572876924035893823033274740844031993577699991203681512336901689221378786657480488779275139295120698860417037222525706706862905497490866658646625764290792554838930344054957507449376831968669774412960481175764720988612998311971414114158623559719221003335839683335509565121041202346612404420516398659123529901372282572064575278744169116257573585688015220054864820491884183620729797288908561782814300385607682554828754147559751979182413360839799649587467407450765514334789605413782351189276146219642860864465938608351508011762833593877813306604627307153750065337618017879466580973451656560339249482803811605057673304547748268253475040470083976609631903186615068650987791686475503768941036209286738213209898787414976809072373341203964619271152637772881319022123932056549723622423888244688619528563255696480240186258507218898916081917243663110963988242357260828838802584541500364712382836881372935018143745169537551790507153855254549764188835313860051931949611503147617169451859393072965664662569544196149651326931629037556794071943290100481366153133531700525152077128289495168193661150884229440214923167984241336161618795148260738244993988315301368426257740311774707139086556407794295756885998886289920722563748959445489742114282070188729457872293323201212514911683788721572787466013379594342224547332211396415002408865739857159522698337239238078505838541142310064997171756589241039473009691473921591470826820591261867216736351915365554892620280376859138223682157199777837253506997243374630282429970216779836248023920648409538857288995090623237529369820883938845270312378791539334049531938271894096892630978309817844843398423378487110801535663869984434543001240361966518874416794463866413384810137047854450980867202245171758031094676703720184646770056913463674480754098197770735983577413872433168214874202970246233002039656653590729071563465740779034074109634311084164796149796618117397426662408551048301343893812697888155254808047614644754558070469619908646930131644555762633905024442998890726053062091722988786451082335934410982542744726849761834851706650068520597704639660939872397604870920883346929809679675875987430681704293089539473205542687901730250787446038000583711510385198984452332336753766181829489641581026728500303954960740280380538717480929752190246545381201557986543055619597967701774627074743194252924101402862860099093215233755654505237011349643518607106149170997905421290846161168079134666496371568802335423697840752145246673062060520754749069326729773246273835686135787010323294347812607874240832478154923605258539478051212429333032584715417057053019992025080552907005652798858066273818551210005777678771090343897071593476057693902245745954922001665184684879174549600646497694151680622643447424943913177699855752001498884650251183402389202890306643198551037311799058799165930695965021092634218321938187240713908696395978593871461229576498795263321954844759600266202837874440839024326422630186906274275362767571822239124883711672834760127494794143000921304220122034231411755651369835864904028169818264014991154395915976564940302415343117353798815788583447445292029632110246444257816394424149648983838888124807306620866877356926331094723343643476097301479686200921481664049423724149694117011682970687433739950077450141264686666506760333235274785073095843608225358404271047447157260831317247012831949380326798873702011543883833053746245998908240629738447103327448902487280094462868431888745378715579326964140641754935837896019399987315714967456002683040399063024156119093191712761501305735403653640205677677344021763441509024499598705319786058308416241601456818175700037271857567864929833518843223234472320747398165630636217488904596695101674556270493924851255850642746502647372431112232170755820206648295605038474989275239525500636165668836123150636563018120990681504263201505092585543898747224118143731987750634678616552629080536983146426894600825300048314542324449702632696507177582590232953971734485345947041965311432792827730292481778416574800236709622865417363685049849576360269969188321091458892953704651977892034155739495697688764964945994054773841164131872337584516686235603692120526147113813168399273222167986813537436109863319449815001833650249251914705323286114738319103233956135240676482255482966759240664524919509601768998805249620568205416462904325254222528004810410525715446630801574764864179548758276697427714720212269556232097934502528091072094673950041258669454518695206716515499817056943966963590293507668447329213701378322621270057242141215345140721928872126175365022966897913197951995740631444471450500951930933476936632365341186925339313190024853608791372155863357742832697645316684081427841558284186014751149537409108196873592868586342945424749214000645712574654847150253717240756258199323036024219276285403734855902676401062739354789815847126084631315939491243866096105540171268407981651568948966609928070357082849658375677037141491763881167274074269871908443918719548480669367591129840232052996518396716223530778704087322281729989387158131899530322552768833376257762779621540354253258902166288848895683591330190355891206894508905166120458152648212584581756506411826547795295927090878060637821809049207067621313055075766247467341492209509998363128867867517888952991979740667067615011947701071446259167672105721920783069080373558716398988725391384997222865248589865652660934920525343713104102921578422252039509435745215962709070385395161062387319290329604660489964511730305185966059226530393164815771103961483776372745363859182496771797109917948625576238551775868157788681160121186872724216113910221001569003646659948063196833500831379785041926824562374352790363746456146771258368041992710993397100834511066922342558992741112548291568247818017590684243524482721357633348026914249370949050146111528377644418938004852381849644000321830929631587417541646323157978520588568405894113872777002529886306234156693589732890550970386746701823010965401622267432307517510620424981971274055496474544978145562817064313315375222106306661157024324684202743050206582656407630536212579948009093877633964030902336247470661021895658423262395103370446665164924003503156416259078232400851648403535526797390475488596784900713539909448761402674308436132001640276264503404994697443763694647959858785515218697073520410335332276859033315282825728399074586772531678475897046598827706413287075825891375085595241066973271286478281159137776048069791187063446742955245805468903360160979412811891150953759933977868983306674941459020930049110267411860939818709572369880806657440611580890425094036398336539663274904452908688623391230036564900876599409544880165227082501254117617195793611957021662772446708633459127636317617109399425691749129188824467627459057327796561207732253388310029778941934786462020133816415869798128371173798055705672651376068910735222797687753020066156853455501784398939700662537192910505723427304268144533734022487404545873973123008235690770841732273588114395654745571789755392379629305553909724774765744669951809294455253808482901799571451656760323857495424759894607697872945672763796409844781804517323574767524851569388272130623569226094167522438885227049185032817017164186935544583656994978713360186807435897777601942801762271127754748296717480301369649317360310398600541630147132283952568497506052510683805670016555463280843654335185172366347236960779100123810299436245819495739726838301407483699936449164757804131609906484356811430898876020499705190265878032780765392872506213810693579383115011428856947441947820453481943440477516707652149516916120921140463603477615949989192455407874623766635245139491293937595709300125230157486805252114669039918549639955227339933566116855080382925546732444043531471426760226969378784538209186525758417574246844303742804950793014366763555503415469507143919528985660473513709891537685718112901820188210669792636541592596729540087724086763858004882454287857775747858641070487772500965567538375258053392286160794098119441358669785773856309723900482367476641705507115461753107452891608964863376088886280612862733078039479726788863039484935246523476247574144230516215994151983156780405314421844871047621722294230739124343063566215015364986536314495803661498946413749637441854792325474649682602038446834652543177342254283576133190376513889556874280553761399741947023614996325452287087020981115617081855891997801499901758453100881988282733214145985871741586934219347898794749757040497997325482152981728548108111201180737589621582505961927589638183304626845993370081682732102155495449179736477312350217916576830011466454629669180697541178047310293928671452315145938345007328946505041611408560536517657970777480242538891418076955889030366855288844691857369031355925925896326752168606059873441176386218022475729293297268356353468927005118833252739394971282441844991990969572783242036765479839758585623189275795590970049508413459386835287733582082919061927677089367576288039211651643845226197829011163053446180638836321922263303419093710343512866352653169671174486054223774774517475570777049178087690842542216289707269062879554067563239551676449006674055899435635648750317332547810983971818356495709564512394339421707414926905574712755874061826748610231318952989923988535903259811447656644333131568631612234220338439198530554356728024705855190173953147384379498461384080117640685228566299083000912037075591496600637010766897197883968950845473355754900364490051866187476392499283597163479421632067207991236052257355268671269371124510208781351153065553611012730036252499194027311248373192657648346883129497775364791100243768928881694115075810475080599455785844490924829107673284153681432050707853137616266556452293330960422030424594338863644409843433370475381570408828264169612664778484608854683140144580957032036622970137373473261175539912507793627760832390267192592361389645594198001503496883604856161620853970886171917279828181387767574478789556413385133046053883743550428899288686178348454552414081498325308478945658450578409037091817278657605076559274773230579099453246853221778644332853564766684530590418426404313143272393612968708286926638994386255785212461501156519663551445886717606324206068011781264164600475654485538102956789775589694413976766307242590239230767357672111661233134622708892518488335946853095591729812718888968989047965920175444926634180460068785467785150881385162149459145487543185450756045464795085876215941755995346106388970377728717106358153220277809675376281509041838600304018224148618607760366143200551790414008124076711725659273437885391990472205823260156703301447006366371483343650540727010944237706264914434607747539490671671519932589469612278338517509479047415134143812325728345725336563880611582414560652013601679483976659784315245790183592125382551850974441608327791390478091847365435018797737072828400733109179348737115271663051780027839027251020686285218480696336746178203772648504654976305256974649761189765129526328316763495911562979381850944401366473447100677313185486350265040380738431494064913910561628874488038072962429280354035804945887273679101294123664038183569013286491433876217195419872548731027922975163940101036840281246298020828184510300419565672371779379423428079484765576339290902816905527088809004052606557996198099070700316641069835929069834066088145905287163974463079854749546877276930841059047544562051147104781300985239838861230935059318785633092765792290728358503769609310511295045102967415379316320715005318159116155780668822451304028746720629621407810834632960185347364992109891454218925996515092700979146685844903804404957159351542311070920444830745619959085801095742593806934240994637465741660882388388184354301990896571969370858051975704658108221808442613956150140213982402081858576777699274299878358921991499147715550748219705804498859579963508111232845619363509295659958776926916793597135942967911621197917167068728398564640682977222336576810919067312897347129531637891999852448006577144453069868257855232736467749612779278462968294860042116442910172064781272878161637765421637701571159246781452444311114791865417238495940507326117054426206441523290489029288658639311662825767908414244217233974997141894402984340144624222474823698146128633867107896068322045552472938209467599129167430413580136463029288262928766686937568705949799486569761215558154291250084473376647511793491856336560713659875688145070736377219772837784580339628578525058269670695666009660095858780780265518337111617857151568973476369845914639360433202210432813067731112274668266770965294273880851701992932041292874977988732227285222988124289669184871737313004321547231393925483831197870945948318187502372072600929938362582501963998950079856245975995841549072625917964372689370072911883744100924291544078254453001614422096095127859943740709598454187900573452694329005530929019275149429153641472771996475758070802951165585591065643004039418814455268001849496242322492985753665332897351386769139902322298709649234372238681781303778607312107832748326497315570942543191988867940971914501243019584456817250410561309270593876830839053752816065398713932038773943802676634533542140041712237212487842562525928791930316463403058425311259778876430456790243559852565169297732126832499821655357571280407894069261701587222032692264976626907912790347785845389784350710576142873917712325322741474313852477519363803774882339028117199692815029481990454477842792534800039441029824935501265279107584791908956422341715330917501065267385100147276173663591646474023442679236785895467750344575582113562922390538835659619842165336342301553892667683874852118626561455543628775017093509585766856119863024022261374882942091770253253071584465680753727476025794078069205920226729634464478448468234364147854043772528525856047899670196183118958211254470758452707993559737748466447121856181989660500589631034934150618333463706180471507730102182765421933945204272532735215250654001800018430752735838194438734326871296321540106135722319573609014762145139136050966221086034347492530472132670795308374440508831316226180785476047124599567348908039950094183093399284181239160658155840932340935017134390640964546133528766043304568158950043017777202160111775538927953720592993671843877940983001356897252905669063480075294274165863485083671951436423428368375573517567173427009247555363421460803463760304250255853700014568263466530490772504990330048213581923483393861600250852718299686635518011413690604086711203399336862318219885772901847250648959817816366444202045280858791501760028227834011781432067360740997545494939719992470279947696604726827083461147914734512735528549021935096077905592605151786920976963713492459024191643845665590071364735405348420223376406943928943101711322944567552367594248020552109146917874410214507098966618505860416880068090116136103374114320476295911302606137609299936117301439436411947756902696755484473545725353703551841576505023753020596578597677530503537395984159113188038969568292701614700429560983281813994475476475723499160660315448992267147761021767916840476765119955666051637138513706853871409356005401761686083209977390369503297022586187616106204374527128421665052832329048726491416305660055697624598615512962451141409740597230329655573282694168597149422475841113725917245968723694798727713323264908798634173998150519763574176439549497175228951800795611691844032143529531441413951542879718156832932646490166880819298822185397458814303777095811233884896039444994006071683755722146468042035171695117981753450799890835140005527479990286756101606511506045477231637898459546095341466233492068367968184427005554925907105558361213830722428204919933938667527809078728922035922583263308175255379249438818390527378537708595892238543824940297594598391784293626003703928525473160580614067273589601025552572467561548090443650841122139578712486887616654513536243606436920851402538650892319543494846997092182498701147035764964197965537133577379163340845751532438616817432246572780520765226959449887012566896043419760588610574125122587168358512509021377988211575260399469796490758342432881881778023524838144926195283567853931955282912025562026109827321000405621169416578372815240305081288495570425626043387262759714583941231268329369589139266276830090152897075522435018108684514760360552537802509994822410579014770902174698668546858414467959647255571006976716072711671256207704049850837478500623992096693610584796207798364783154401552712024803596605380622136665780403995408541082227379641639356841253791850575471204516344996558439459799964213662934384907071036962377758709395327449823010630641816794495690091008375176344975630551450728665452712719646440724234436864014463942350279398950886076476650328277796996203606178016966810024307095443199432344857661057763363759794121253321037153084923949334924074543312126269234575920378850362216042291264260886959929965627159232300236154107191277423727424740840073773188786262472205632977900510112133814508787927658082967263600976746627438064341481520242683663902367302190574989886451453289018452535866504046446414808910031480490604420238944134481674515204668793416492289273933699699043331468799609327797130900275429432723953881818308719921348680776176247762485500200942561198670730777896101371588393355621681631961092964062738167595388782954874924724380550082766567854149469683667969886774095800207991145731581186709829598293287380970888753682877232209041937660477614761967966252186650417372138382176162435081960207994241674985285406973772892994560315477549000729273813156496927573518157791133288823866389657873590124534953960365987616554293637940660815149482218523000471723218569529112114144769514695678409381492032433401675844406695381700981641482060454080696068627188825797389905697974803580500941564063453920288630484915844116745201884007584100401049656738427630008357353057406584391646558954824605426069489985759287245227224513402078409483547276680135493403933304872563062186393630207047360185789380304373496360320002010295958296547505657390395459573672489085088523351655616191385618163771636568262754233322173636949850530127250637745675770530856404810648415956349050177441985129199829253289031443696638293348616948596040758189139553821253976536589277439084614997636542629635774778215384729965978676554938535467426996238405717168896912867188738335352662098352507932069057745022947005478148050655564376011321929021153095654160633735288631021052771329164941105422514249901993039463131228944193312482881502760667851962968179633006751860716725949870578102601916977734109284648242759829883963045544994398614753458054635545178609144554429479965726784258110278261598253050862759260872959299995577103486825499676969069385968473056463427029348689996335734296216240833391966067326707782418951824696208772094740199136139151615815447039046535357101152291093345664798889618184644261199723772857748162456032591323574628462928150729921416770130666126651995871383764956673888464580919711646374416192998001120342724475301610043646036115282658527101823690035994605100054146043698429178953001741895764978598800152301142385170082974942124835340640983244431168800170116711935192158021132542349869022335474538475074469308540569265585778852144885659932993793746537491428331762887847060032489231416132572639313130350344016136834240920987764322626764701821024642335602768330851083766173585195893468332519430384297494082272539891318221351921112486895642336463227802116524584914579373655630449609064797591728168844145044592453051585360794870496190524868094050874016792527607931778488626868932383173277487755281812967818776029772355501664754130159329815740939925213993250413192543997000487335953008332803939512662060208490093042623643151276498427992857750328045498706697409862972810598525181610304264959282698162250009462473669997789418674940950067516226650669483041577473305519128908917167603609234950703397439526252042962349403658461494279064773413224906386478875308090487842367412549513874286862134220925643627189714240954974724181208001810043021196393992510115452915957052683827425329897025057245604664713838764672752854782970699942105993891117683314907165959438926500399940368881583155510387018744039433710976377164028091762954656952469014397446628321907196889513172356896107347926118436795345482444884275887308157633961525812364061002193538037218546172995740619704796232898582038127439277957949054449412741882916124509727993613924092848673302905539124102711636805590223601335055693109247887969777140005278684037910418506929712478740489088428050331408693746439773391373680947094771787688968949657974107503846899977484102109178653696452879658442589163518085516303494891120239636267950547100879885709825642873691075745654625561299330894731858957975442261697180696079245304613167738619981727138459188705606811801225654923756927930653488750165787479074206757167701657988990438626338318533720811823337107272574460709889862121241169720536077426565396170808200400765961237205633976454602513665549198172084819604123864075432974667856551884491854445987346441894777578807138832273707117216699328980894893061848271362829305760862513679995369664510075901024548597692522483938474298792422834756659354336074492427919277804684812500728147915509939229751347472018726732198093645426774269205076697777234355315801018322655949072385160912601663229216465785021472654129791724313882224112329087019926239448222112479760682861939773901407983719401103132904742491993074485230127125963560744381135196236249371523731807883510514483512618331139192651646428030556326426143056681076564744109052173772973606368921832603393989939160975451455675779048678028220934219715641587601556692091305596452410052030896031646983228415092606730725048342471632934400484552308754873742373532527490900350956245577414490788300704723603849415573219719046261200505036908293648025554549787191803528591038951265493464832989534156364922646783975108333997017609805877706623649899956627308789809459041955423698287980504775946417277160867120508107846459746067626496021202331723019602606315878259065904817223014444218084975882807987743412280819721765086734283130556928801037059912225428774241323889316713246865748997765531511504139202520085291191129079295314989534146904990603732097339470585049687743048280252048499532524068686588696172614689433577505870678009961807183721586361489362396880158915789856956216439838053980786192335162069084004868382863484422096487371956757537164828376063647553109335989155204317565325195649866669534724923742408572555499282454954163511933779154710315854311715092082727043029490859158754987077130025938664167722899616874102605962419859401536807189100479945906381860449574906593184789217614275853674659068182920967517876671209466446777618798898330333620251269263318279686599304712523346496332579016300455521040341289585827839776236525856519418008065323474484698175366041095193223807423659609087459588295262880660491562154685027372820714129710755692511525211915346588579636556890063026753619609345414258295703591303098251767791088103655866393016459945699032842675243152864564661416229753984914201196381171983868794244161451526711700911062661349598659623931053752884655699161919486471428833297780914420128763961725324964414042235954477944738835623034068569039389446774427055165885121272557485967792945896653198185552381201834299348749408587987634941928576842873286051598658721291724388742970120657718459920446799805836444468215038387082467024196319776358221694160293801615225158780569847563733581247579884693423970472418589918817682742809366357263492172785693347215832860025318711924290898077324928828286661567014465172988810090143823799810137118374787473190961774884043102047901528212495867805993932126287722765163349542967134268519267588222916440036772005887310466001449074566418270769696735372367702346186507725008717235933305708368038463276734039827592200168102325881793512525928409238996922881626281193694177569508743296899241475548285234220199258362057976188526388059424396718218928436704270724327955400939697104954455162797302823781447347180460777845083758448821514526982960980044899222210292762444507625143318520007644078022636922993000946630148873140388918402608354089450147543999507143242712987233949221189803112439469206519773964473697616433739920054194498618083797156516833105609422783009727054094504000594473258422284529239476542666120131964553929139977814246448784825233473638173576533583441447161855158623670160931661153385313372281925739150966390586106535167495624988808099458158830907221573200035453573201172566732595669641349328473326251052747533684471358563677681518371976407398512537534445692790197656722344790489489175338824449419495910423435309632591160877502990723202512188571166353538203398715181451799946590417092502417527869106544127928261583678224656071323015746033523648858985513814895860353302435551945911782254040116100359181300781669851932681571024483896560019055056318841622494986330920642758923848639802324394710125817538651020251805511446209697661609916071969258984256808081177670488305468268621415506891750774156181134044141603980160927656897650319384576713061367000844658925698174242907902692201363760076599013978941429983421559817029940801262547171289815932075312160365086237024226299771150139510150602990082508509565493253962280337246668461607550008561646643130030557666873802974805748805685840743355080804819140227050763322710111933316032377679181786164526622674721882855808046948074777684973982329471796441660824498034094538367656606018891983545838266065145464866844848678897848726258185584107489526600269651968418928965060701405452119217535651276265537646665146243376561561863803370754476002476957843673000757306239584520106558191243642625198447484392427790626169627497508278289979356768946541974931554930353563010690983708726781490735025365830471390390526163523900476440981832465191223556294095795706208600016719791491458021388321908252048408670563104731943909269932443436769247081669492151744800787182669941878275123325771438731740187685544048542089276578649162691415295800643988747215438053235689082844666516317012758004672687889990212862670660966214132674114847799788656012625357114550400726674529645283072960107396810246794032659297946833209190627999274180963456058274454240113049130224224919354137883763388239613393288375546989936631189100504147959210226257149786291528251263675550480675256555560215366940094986823169825894925420272043067031792623690545866258061054762219273645562340673680661514166285029593406492263338405865268197699791393864100773923671466126601630464748234406586370790875806819160000649186139920013387407537204319981541348073706682315554989352355433666754214559317032614328141731516441694936835970492812282614256057840897543588696493164615408251921539054622231601617447929316964395830271692794239597045324980668617541742227454132485887578782243782533564150964078018101052303976603660850555367588820619238475548053247400687873909668360372178314202479427728800424906396219030453056478475318321108773373954724684023325143698889316656593641929906222159043649379678206325110318514013771459767034671375826732012360985322903333628253109995519079577927907907485615691139682330568772116440842533159696841735127971074955608956616489312730343763523361248999813887558908737600045007404349139596541574351499694887576925837169108162830916124798057305429624838376877485601360917398422312932179823986059736159312266834492762887945303378203324947063138443834194698845046329173510774477828202964212166919019186054802514908137784142668005910583653960667173913863410989715002218425631492021523028576806819922044593472394488496080468930909850736785513992957480749874985697567412201057699385263394662013396412337413853851067912119234443457188435340312821327512937802977850512243473982663607256933069394727487026450208841519241722851121937609078314347599601960270015499261870088812792117238038715381710259703557497524468003221980902614154525096556796209963849538761574827836011388545897158237585810753578443602876664087001228377699871073082234278215095694286149318990667463751184080540219629173814405572384305476691450797552859196989108342448904121588122612162226935538395013834134022866081976691486617944773653562636873243205770553354074938500964553667625624583833881901941168498684358980261288609330386486672626070531895495282502816065098694062175545724217020519935857813791858597242691669591845642248379578698501985694303605750845040621377950212455640620311248611556798215311708326894125941693652131933627625244540868528335291443505188423465538152625864510404998751360690685332847470156825346387378326726186612124547222521918579945362610979016814061791412777311936385038565649524253471805951310723333802696486518073034313611036399786694237189443454880404933426070529631033173802394647570395956588209181166544899379109483713978787656618217418902115204524641337410529959029728027739701180063743962413891084744181554350852586476785341759229377565255336924520347310949379030762671742121332224126021187337601285986448295803672834680501696369359883370886284528238872389967708419874511426894672099457559329206075492261105889617029190214086244594219227125938244503265267390531725118483752467961093827682314421074131016015786333541686313397130382883865986653023154695897321636712162658505497159956636373347358038126304593510970185996532893213548431707679443536129801446684790673466239509044375542279289598600224791629763581936135103491427053361940314414250165017593068639743536173228282910990401523285791506017767698788435209248829729329849836806149470127385600510593045534088071928205031675409385353613043709224008112978447874315481490853906355617728293728121322633472160854977073677519151642684418387670705370876099590516266510924525475612073044296398139009331755389621301021125757527117254226338303054920311998140147829248050282424495111335495670381990696519533548794509542773113842657900658183551145658605529017008470862280526506253654997126039127189762460180474577480896059910608383492968080338668822484603552155041956508275393702204697371932065121414135181686758186939832515528967314625185067396211152615482680184011115353420950904979630571942981330483056862789757662792520848450880672107949187431404558570745721621548446048422120385659977505970016372557774032393314643962126795516527598368226239239711038938973297143061254245724263175169254813378971475690421777360331419985885542783650730930892655072036631009852477214723044331654644424100257621034247312859447898331287537115138787902731327887791203839681870326990509611925275401725312778982667848692412792152181151490668504106043379571032894711679475558371617732157148347063502351417564779746652533627573179818566055913452245756721740124336345690180040935936408742722017014661637235695147991772142555458853516673284179988250527804260963923528626311261288390008155288264581716725552707436384143450791359365449499672284874157491337019225067579185041069668791422599945338742697995530112606015762123868577208889810055030746819137096039600535228867659671187320590083817075496846556907467759953720703908249754411513324092104506136390209339523205607469772147782610223937039908836897953303930935969043087706227291013981946909319548744094042580218215191378498073042909683518799092043091000098141393054743849255941091783795081239701876414797321255566124539285712818930708250414475795087261706543424549377571841188983383157071803118708986244290358868550584387812808292985387366863377425066216113934585374630429665563901400126716903075680231591564210468085964422284097382382540309294591426699890696997404870266267737234830073339160390620169252692540880626724131133391486475210268620566940864829244298199085936074249074773046890745262916930967778252697839603682621065273628097685380488087274266972139567263851636947578685250897879730071228320603318216471957805615119907275793566574784938398374083757383184270857765640068562008172422112146798580253688258811623752871674346917222373081762002892628960392613545929138243179612005675231597935280038542747666153526840514575042067896698149605442882362171824803562872935710828162691175719037949200854005132604662157215176757437957528703176081388920873856966782006390468624756972294966440505034051940354262863266384603592242857866149559974465435538209109228246797218073226756209176361782504690172708553181657397636974911912512574602484359066343599552532142070808327331698047960375240865455430717823583095896428824852037750853091977570939279070247711439170952338438028333848923105281882192530132610076061660070320443558601939233185113352806001570633618102592632969508512489922730034112363895714744096059851606140470620255318574546024215902759591330237018834144186671610597423536301202017328192961361246469019955950717816779143641126294691518027060799217795901457350622846795401663318665145117462724152877760828042897019507509739573897070685351055544453562208464584909510714596986596442463792114176038811478995677252449029338464782760876352674913033605792030775383896399382894032071805020590122293669166443734467879661374540251048590899665522844258788857209092336306930842947093278268788955393617204751264992217998045672935333325882159070011311617223575444759097080053037400670810947808946184083897705191846105784708983422497309882289578486801221612424133286441565572774482255968216781246857413064433790493738355941505895752293563982939640036666220375220845023369482115960819316155355915011033086049944134431040233275342593299047577000115362247685510605646106031660848035056925718697258927928630393456242196410736731073724312518777531727838328168584589175859323437744793786544900188925461660084807681550259510531704200532228682181041223195842622040075860426723986339297230181455402652767752505193418518422343518508787889125405148092297315803770843316568503061700341514955901737098338731184273925746894997330347347275834658529277488900723665731808263333155993355335382716667691908570496551315843447241985690394808208120096288386432121377095618202613463548065889553034450804449667282415764892739141750633029507601997079259976575690308280010598865910591579943575180788475966501491359530373428851979259300209399854309708456258673293683133269035509385394541617875259036231337217981711369184959065567154059425781652762108123060723998758368128641063980155129553181077164154561535386425139095015022872261621833227464378725403697906029363683702656091307263931961085560857262350246872393779725565808505579173304527990901997453192719559407750515947116224933117729340396398086947517006734036739705638685412282883605687944256769988405241496588953091444576278837580435322642760442894456762534545508640397012678154175375057525213483488566443690984845040308446846057149682297135691462462040238159209174205439166366092369120751579727021377903908768564598271469167048467699239191758989684081478321444647502480144012020850907712428974488165150619282186412189702010664741414419215194680162859554052788493180625661338388270398903722152022602340277078984882443841909724904981295865094141503451481722253337935476263939309200668347469828123902332123506391004832933020247854009133952546940118797753524639008978027961446813296625688593060473124131709755125040054730531313361592611320471917709809059521057191948046237374681204245353128606331063592111070690427253066917231189175770571118503928675837989824604741072440649298777280962103487150999828720381942738028560281124889314451030729258646518174875742068281426980522161958299185507230656274296770930520971734062513257162943012517099817875808183793749355502043042832411968326702650713631514856594825970623489110434981427676519908965120456050168822756560504870991528169080258085349920633879356721145381250929079740441956211572790753459364425428972025551391930496463493932719201623871485824719414799739225513336224996772467297378501574571645587648048923333401974977766049062043634513804413212130249462305919000029548027648172865606552205533598240002211880198088668929882455361489973047352435857187636573676872815944623381723122606948844179257110095697269519920694446395327000049835061251254345334914009822028587787631482466798710133723445606473706725685586349101290779737441190519929301594202701142043575679895325004014256852490692697034362681564611651226837098217398409696729477242076168602183802769039107792229674163705304070918305266315082644447532008567610713525206866856612548713200966840634689807079259146250628345669219504507328931756178958506952005283829172661889764320721362460023959314793645884183606418378029756339522942545881089975075038944941462609656686589826192927187107147540941180473486485320553903256937064356800896954247077019103852519551048654009449798533989048893375660423837716744402447020015454165627328285783588359957055263167865640436231585566105357100518532886311044337071033368006470358395350753648754614497502203777764757544690394655987138012863292312846503218196420319784151116729034974280047247233022723474860602677406991745098710708694041804851305825133296496132185950875129990309532881858693578518453258791312107700985360542368482150187067258928559825170533432276129467789933628427262533256313323626531212880473758098261556892726226681330497611831305195670421414945460794939338996610072977644074054992398252508663529542235935961974784919267295175953903768803683957348236079736634814887856634432599992999747900718318611265254146987140022293512591825144730163119344239718114151217431072558334272395169319052419832919905049244134852713175335342079590626567746420210363856127039053825380984130247166056023145060584219884029065562852974222775462080813162167752654995181297928739871806406463562090636058410864363197981071688936767595700961995550197435933033624553308267318170251874740634943934916635277467343594456779113152849465615804590015348863539967429971979583865583485936495147033914638294741793276813503495100562382576947447474731923729322563096115653469240738649158854117168535660968850287412545118167234895699784675902424443268205392264473644575171036910011261698913922536550876081414339295266115168259335065836380133679368197139621329148918501188482628498317855266079292062878248378607474139886024370579320734522979051858243453005227688350081749153606144727314054687776326848341116535495679554516152899546577719037691395435042923266523983155422209515463444105809492200217759704005557734778043260283882720896012285743724507464795723155833799649607935006833954297067306593435528683518791946856179590738004079939310942002638743958815489618007675932312488310649712847630436334041545455627857194348142449857715084818269506100611406313263057889962743374295772232843947396668473201857608419164933201700271772629598577706433254778085722812477661046122414395203153568684620765441493573017690937452796262721242477969942966299163209858485062666977968326843280758769703201553745007237637250445273969104274097886342093669762229327871641842401856893497035863217455510007803742363636870777685224848158177961573459045338276835995192953250644403387513206123602908191158417929364043506105285367855872822200818350081594143897281101863213053043729391282470510229358428173073476697736334498828109828326142093001557667067476377910097270585934562128789347232151409080932300522831209334799575079628529473583268012107924663498313182075778101399528378274771862927491342578399101850292400884231566668107282740338354630440299571625323384392181077465870604516995121267283979153676343739888688887396092526302193204493105534656663455593360794312645011067416508524662964918530329191705468040147334999037653688718415160202951831841783536032039264924773420119201539167317342489409759734259367030403619660976712936560239233940599363226229410420314816506748819710984824018272105904268915550549110677245339434724666539440271328626921627850483178123679697372562079735716405365079884423258083576315162329851266422722994612706076771938232367828622568925525946604324276098437905716706123846263431023220041506493041487418668476954082329243657991555253931475700248862924040380042794122957369544717523465517464227914504774565724696526608260730751574251780994062582274723747125539861094155082577889022911266242611411890498258616283114409136393495920109536368709815861996761601362051096708304396033100189915809968863758145820044728966070792064407635740326260065217812103646466990476170156083609128645590500196478048751193302283847907067052185000331379743680944695704220358551861567693443682746373078282860447260772171501354453383829431703921276337576402353703408406512596162430034757769810324041365756842393128338164071235192366187667429893149396230042834771066479986096982737343618171790432383965864486840948243733078479481713411484377824427506887163305924282944149393365506052104929538016657898120836925796383386233299667347848811142094219242198689151218610341125624163975496725541977888856483524794856072731463287058702338057449925423915489080925309373954871588129764771189012983389907281913590637115265651251260055302033568347245213140765919359905515075982713919144395436917961437318125534568741534988382229443724299632499163842460304018320115414182715799221815573289336494501485135130079943281871953866224973048885750787463696737250231545520541332842676544275574276234152809711762579756940422593660078882649030136096893188792051074258777905799098592712901878351155479530912464888155396711057876526485877834492025600813980967909369571044725715682130791163603276973268912660802417754355503244049130162494500615432113208499887767684846328089344167495349820240299263606720340444157862537604098765788206871787898275884984314764621387122614627823060540736254908021531999570261871212862058723687882139771372367130009057685351382883980505650885573547134542241527970511914737174699794885280039719071623798995837213948440415077571237378885097593639554025809770250200951833142984724876186379514684591705141252196139200106473807809954203332511750829266243619495472015517354838324962765556171386565006160809614918834909815174294351191030032277927639731457893383784391426558576698261763783476139992667517135145096384839021009369853040741234408081450328444872141233230981101851342232642756653082146059889888626252085069884350782236998341385643507954208143726879389749491698491323662981718304329921779581039438159272211047619730622523575917004960164464424434610107827930756831677491312676658440823234449634698786298265650132381481115722319482098593780695570603492179388125777238241605413813684252730941523015205582533723929571355255239888387119598759778984633652194892276435141816370836502064751101969119663195152893773954792744287160684575692374162485990981181525361342087293765096612917000900977092110533072130806599643264971316105629543895975609955828619591458850729158613982749128634610232524052746326240857384768913758758727674828266672269853763822974245451494170296919616140925270887792991438920059776795281183096706242221252083136600930290945636476951684725929138743380671845646350946781065653507245007925731080092109093140964542131058415932263025609695318227328093653888093884940150091535416177911340351623338729055643826886689807771486959440682692477738983016236326589236617182776830204908816310754406191728038500730748453593240324929184024197557293737468988192228193643316770542716283281397364509049411791395108813813553108473558680762154380687552725056552843791370924374314517423974270392009870171173127998304278136415764609182745818100006686293720766465382359183997379639669316562530678212185730157694263423216989353830196188257453571385522621258532255318784910903733730698910513923564867125301223240934130305853278621708808082137294557067515410383051832816102134056465019048176631837568783446391391044788368006756707979453606805872770453019015737831191513033686531875071697786032295793876453747791453977737150450265379188337023095226996225054369988925143831354228098636511817708456762257287062884292874488717801955054803726806680211903449468612234142147926024328229753877900284081571848350924176855882126746616001022327403867137880083643160344057648734515864851434491468061996729640169893143621647277582272714105790295262325703356605803162914176336015843860055905200264941697238229511042654296746504796555163419141270643157413921850616586420708736960314919371434952426812994472816327791577258758305039406836151880724046698901503602225696899743967841914363651861538438171718476698285225294931460691800102695241838728049647472277144087191281153597236148702758411949902476349727008805615809513207295598948407551018670730102685692443814943625420435475619219823180639577855634784361587902702379200735705560749521233549955633910245939216652356346455238364146769538641477882206874749319656506050385227991348759232054427194129581495876512825542832088311383334228229845891615131477165452568376634554250389784510080886315808695118128817154175602628359699083556866054139224117937742314357261626469316054145624702908356094779299995273352386951892868086885590959618812375161582664397197990661894850745649901255689812906468041497676914683376077075058428703105484685944269594058928157393261934620390785599869977687096050513200439753916607104282079535518688276925367442195236641457781889514965100972239330295940425742103654796655766856629472130631345653656303017202695489228747345410069156314258604847451474589523226531633278543023973678878664618559752143011009727082231676872271589529118070576263485535412751022202968797548275327218218555806067654886217381310179864324054419233540492098744139200641235033614441653056377469887450883770345722533872288418496851791186549459517188889293379639384713319786929421780348488553971682960825865298515002874845694699127657088350868747198051528885125830119735333475622263032114524155638324348657717195228704671343728617047190531485875872912264825949634304880817608991429413190445904023568307985202570665845102814760867704161041219891568077309078608226903557586176680013605389241391006502167776713293027959053422704255638836752707864744206277688182648431648252899154075488244513623002150337188251815141103940308314676286002026364427139702325870052587861981759147899950383163990767009811766250963891383921717116389105065683129763195660290524046530430984827402882301510983998608524035018257044445410305254469786219720004768473694827909776550099464140703270093326974664063632071681833492720698753293312529733219595928420727912647563127634104979762336861052599994113916127372101265716091696838676873582320275622424141501816879960134691418623176894514485862021399450503406698988345492931798075455816004543787122699152635347226261556250194022762928361348640950989807955806455764627428891664877454028382063821999855886572467173691082056389777072313656896342832257446291098997599899216189208281049781949835896147008586423956741410541693749687550276286330187201251970969529877017900702945108782740636058177070456412019616911067616833177519349969021291662760079921747611894464095433513496180099295639892275700502674886202115241281164362094220128992958743898738238267521975047132242587948631430566351004416604761490240670621118513079536720118418415667299063170640445402330094708209375719653965340448890974229783472264371092936281107832535881946794724685547201281413169279537593851967931128323647210450259995926102586183233648901602670547008424695831289562270819098157274127636712409099457480063308762000539698594104106791336274765047902547854682427635080551750272086351959963960765352032030447135607836797720329713135952276176129755797991691165792109804337964450691205256810146337391742384480416586627262743200546968141923143890611219403440080271530242657948763551913129910266426717476722449974398691485203048554662525448667233670550433595098433888810127540211533546137375180732786798724811131656873309298242214784476825142069945572060054253265487969620922096147101964700364644661455051548094708088941434837287291263640595470955699541082995760121756299133230333118661988182358700640539847935762463029322453593836269199289030260195859040615093941060174329551338291742046088984540518281718091027532579286610916384728603865381374551059809284840958945993328784910574715468649345572542233982849516931546330249155799312100810313094378118679594713960505512179927788958878290745729473487280909055733582435125092853235371306546043360055775693907671064523308983273500544254506248203985274282008434331939392145700034658004948235182021550708282483392427571208998676339339596080999799226344847548387929864000512956529190417633161912253627579675907095620183540396010335114312475499638108800556414475868950622669636870161647457342438816549296471704702792782806177520608875425430385412239030134775569766787128905703781124531054022664044713692834495010733080052022725913694808064479911228238131502650379067207776367008871766394299351829156072675102393041016036422085047491729960795617056913921565385365082706292722230670654155308957200994621659125088449622505494740647501612652714254183356071891366212829746300348650689440569838939647424596633322480753009599295659147334602167613880553680066601414687565560160476011295634781835867547117803343435278390432816434206510498926049786191269322112801299655549286325776942386275021563970167006861583129677611516565519551138409393922589868499925061296842212613244817225857654727687350309211831234432309220470593536326866658511597863316582240506061611789776707397153776136311379908984348297733321990277783805098163067086412929532234398993882615622280434726261736075734304665504881926876763476807403022979425093034753974432561715105680494608562529552080331279828614839937199815940050029881096469497523183913069205350404562011041228760889529531831443680759509640824970586009049253974550635695766944487308249375276134789384171316403799765717904828525072428201622021894487568413169773562409172481737326073558408039585760079325576404026767560249443647372626673175175889150674688296169351655296845442181401121210003547894739384358250043702629247303951391398993376930561401254350812681505843311522923791923354998525053652436031496438513558243456847661266918955763271733197334908759008170063306629837289357868467031687651761346708665781308532002912336646192282277925142525854935380189954808013426983561803275888673871149214825119568497730464761382547136094325811662677654519218842987045411993334044796950722332350122923292483519702546730607114863213786569436554018128078001316242259219368288469479396956868148529467262345257511006948747772652523866688357730631354435866283460903715440091973571732404766432945175200932644745803516073926438217584028026443124064791240346870843906196425744141696033816308645704542596864239190916674428145046199111499208491832642262780160810172225177216026729429997954830295599468800695573035377101005443383377626002305818729488759387780942364463394691887022964617357635196713678282532171856072383174170313626828322033869267864114436369919384067789372143813670215896537607283833438476665662168462083401665773428202213583860863671418766181705991725220010382466248349122640407097746542838246777674088831235009982312281401321821125609498955242605717577047618119423683498729680898342230014730869965036800970262909906868356370908745062783246934091563395109982596841603672306584221103099156894711974906759577160693633148870572006879552260629762015024245001805457989666798675235856711166033664223594391598340434330542562068339541420473757744452638713221321732586136531941480427802577577648781743301444461884588568969673658308133091767787939887398828133370972722831371456669583392538054448650635664125388868023239956139615041136088293393015291417903523049101925706774575656649598993627350322331571795912022059049590083336321307332900156867442826625395388732530986922253459031092030652230842393978476851744252583898049107366641976465363254603185748011511063927979771586009975717732534057948180379887905847103270205980516230363888322673776046377619494898544918459702363917807234193651313192680410492711305214824777951859051298058714497648929377337452700474963983177034013322931419520442780113428080709609512115932675647935981330338728331695419593983270836178833581126223894855030956779861576937713579009392023264350763841006347088553542107950202569459614278993894133937985914762174166990965477718658778926256491641526887469907668624334031343885550306847805046475291681543736450855211282283347096134882755384051995292220022000649011703738365469859423047200166562193016117732620988312505306291669141269291490968975154218415580642911038907102203746634331796465445942201955543837935276592636329536116115661898486952074791404851573728592908518609679601732076919369314612223398716677708225786310422279784093521057768420852220505220718394515708787709436405359405849527426061197282723148529140304986723200470087863711572804583640027538596605853543670405740602368453716862899363741980932278104756910967189792078381625870852811674330257044750324752166947406809575317458957369187385346364334045250586303573977976515893279506747177639576027353615852950346228909031237995875260301951202696064962578324242399512274586189104102002786607225315997530533205583547807168607602737466964779432217855197549941661043511602172444558018249709875956330530287478930489379718777582514908833423260968094907307376591820869645574018031770921701185593880065254505391668591100521696861362236779921833886480825786645161953455072755451609891839541826574467221913534108793192896788288659070757987036583985473256479597121191682948105252394409928604614069159757409017988363190792891433007109339222151818696774430559759090224682288198550950726378365739193598198237574438118703414099831902863883021190793346250469445390298803257122828231824437565253566776679903975217617797777480847690433435395049998794662882283972989243893672947821215833115838303204979558496382435947149661304742932680181903276661145223419769406435820937153946416494844887103915670131367008914602162222510721514307283157972308869430013045738474722668674614662985380309336846352668557256895606574137817462828487972484646689506809835467287469684949557780263180681768648449823160496113968546601586548580767372541332338975390510107412864463365613296702294514647643732381751825895910300125087893270816863143245323515578670808461628277895857937780865480304746378514090796801997979103661295124328106803004168339775793954709593726211323306297838795020064943881036678761252924577166479496119288593977992562384309348852679671289806970409917781237746477472642887281969814004157583492783715061705213487423510624982576210386280999333663872229469998610176711483866170050949434777646833036206963559483044059271862408972046506890275018803847219020035433584878527366701866755210400969352355051598886698290980188268145222928293790512147975464544225008050842417155263845868939368707628422093438590121665631651352465072967772216752251835384970744885134311002910642785729916222777044790449187967634306774737533154332730885994033993653849677597818611012457882564457346648594499462592558853529511322626324789283454037819126772971516329185047501403902245453955266100715529077025744385820042780572313671086756558295061745441186434151293580653824688581162306398608836557130676223212276788840745873138078316926596940422371923935955129435736427509759177571466836335025453578682278971045707451251289407124731351265402412944620477496211102501726152542707273379808904203044278515631474340361870949753056868596877104209945481976195841286347586128014111735226179421582590491190564749130147146269106787347577153481259619674747110769906122595084590531367018498582113188911912348420379395277528925092948925126577316442909207085916771380621872660652969112610769465007626583740540412279680903506222792576002594598750540799205280973330926634863517758078597749620144458316275832485001714483757511390163130437876498828590044405394962690035059552863646478802599269655689035382922556662550394380217537512093971706974556454197306481915740068060790362352266044721364357191479864297547219825481330530839247687004660719141342595131921931152264741765960860155451611867606574064825823077126558125509240947727356707100094089578313754313572973098868507012193288421228691888337560453375028028879155216942406813052506231533581003000442565092842526970016954876448226767794695895417863504145878330027605229834441590114583939875982162153481906492929112744813099585098675916434933691018019128979389621993946179873922970857090851416461502752338220484237151707995588312807984718253826892477771028192221596293226223181201657080026951221908504011489734806092632322514138887011671187464882001184373515577004305396962076124259133116927318209512272101336068903854974794352842169689783866143026580014727545451636739143440133062759093053346639598976763009385547514769306313395183746652324873134282608100220714463546019353332979512994053185125356417563172925915595823225449163399941564507397435295442455367427692672567291924296251656590750172347496015166445078853093746233420113194969137041898579906462118081942347141968461712899791206174919404831354586476608483175439729703908009227771774214612501297848848408300250995063530710762094576141038150366169728248597701422920192145079171040078070503278292936039001226913827171169839264809443277631655458354803528440220339475157846096993947954482941281968586752377616463948865274408538446457562362054834423984775313213069147626559269773306413231956828427717864354389248652698592392370247829226194448319992664922585914319933252618054040058842856277052148196712520835553309551017515507604883886549766713240851552311454956592014264244633287554732067349206981249979272498009004964155206102330669125889711759485617156169122185495221205035528016749079608795630433813210399631227711127494000376728473680610849528781938429981001446100559609320911594472152286817573931919900193678848071563360714529850109030873405130202792506884833314152938455012523626026972489631766574460992846007036830430732764946623391831726580684386556543112905404359668675530309414697217483632607085026068445744576274465966456198623785744441886546826164060366979577073860987015423392235736473259001637006442827852291103131725584616643705544353406860234140488922533014433855248667749170471395848721951960842779591407685062082389177114383329414133248978244559229726163667841811859255125475163489520591687765726888747764086996533653580104060490913888111981436285569038255167112439570928860270758864403514816164138186653600884802727432502213617672584291890974910318769900069820673178470685312740599430865907095051908497212815576157984854329277169511385517082063943838605341549715248681079246597292485941102130735340576652244198834285245495337488349258804487832061730558903392393435548616811193565693255653848962820658913394659904856196350693683287585947387085840615595589168391965559997958907292037872588810462927401678159266591751040736782989088872481322240442768783203992286661611507836555908490865238027275473578640093711966351334059003814509777173686962841349853202609563153744155494963988682312761752990405381607913047859363148236131061285273628671076846776386787317747080049642646482676699750847702813686319869461653450332959616535858733169197240549984722622855427283923956333842552028206886728568325509806592346736706416035620718301718764419951358600262339058692096314999164634676250252561642494272073122543659013425299713542597792988060239433094746572755338204052791707894259256917764110016061102910823383965744249869999917070626539172745774198681126515579986220469018739923048362994730395585849345716858203677747862310521685589468316749395539622308516135238807225369457950078316699687912872966953727175274643057979602519335163618559682928338832902547090970435439281985906895471151374879253608867378524670073482914058295057403980112401682770175298042702222211819489437438163945775741313519269895626855070161312864550464582710802527914216705901424015824971883672097014927975936866560292570133344826393820673590087917972189891882832542057709523015812379136150435084747853186609488792891094008612117344857201251309669008681559333798369008415036376180533235476150920528622888753188153936888719176730865801204478714712515532625153392692875349939980712499788400735102991012202132781784329451874269969987141848549328009956310945792746058145648023812367055561440426703888004514741220961133264891846684364898757022785113113979713889577576234893578140775171265806607140812548072601744709425455995148214994415771557645138704597625812876538191009401735065495201036301473195707443864295663721397812836727452151618309554782027929704021396567354778323263736409960195758945133320181980142093909763301502808772448018305857740856706958792046731155870024068752941503418067362198978605287193625766551895917176506696699668195661209511377771513771660438258643731066674096066729096967117845094495726387995676006136083157485558723747325319972895488273919942188504560779465016920442555697718277752230615242407718003595727304254356161238554398217761336454693892915503411106303771880628889527482283641372940053951585948559442219813788482220541099088668962952936249894924400108078556193890502953920869584365377409958131459219807410401085434830076513119021291673268020913587104007694345238408710978993146908044472705574560470421951024167159956911121723145686956687045257295772694531120315479790898777032671017553015153806654794640441973461857288890538935158313653227465906394291992808676543720646642838527314034788562197943421747503572394513054472552419200633271153537801787600661209690683004593153220598799097985258251358229085899271869251509207237396270336967011269034716812206927567480143049059918482639575330022366691166850289216734934661010245772091226602264302423796915036971965809787644841103055001587970006017384134752514349421584138317749851658939283331851653206059016267502944286609428566390612189490779320981815537438410167113112931488733129156196332508425947095810980280562485625982031958942139249891149856033579795327190148881424357548939499646629716097518517652244956278753147569658128975161390209493366532779330915050226770982943452569321348077690813383606197684695275009265898303561242483073678467496504231161916979319145305382143457541428347088326106948096397513678424279284808176802867664755531261573353913042288787044335358078449826835976426873411438639441357431342649407761311642390951534322377154303696569156711503389043451328096223373076783648727998663032681054863392470334009041778419880570067649018849220516292800683573224724631251523923455338373272996004154699890493060592175127953516283824311502190535585808264056695484689698407024266937890504874946017298146031450823168787975377336583212646323299210635737719292012562192002424760248948043440276736166646241955504330838102125606452671624814787553054725006028339932898761327503342812053806045533485348588388356575763367502628653865481573526069751085566940693027705674230277652087558938342854243660072561772596520695608079625830009953472380698657835923111626727235356876224890924574557630978769440449235752444945624095867787148126401792326717469878052377173604410667085563425810790886586945836981107271702232384029502388592946937979199836746680366120022010094918673010312910265747080307160951476457414458721288421995520519447643515667876928606531562930746851077381232494501508272676573969277314020203978087938708228000602723003088148832544279079951174184904089420893898173784092323114964125366851856348360481604000738088342705421216841324317423942941102150851983137676577541720604886118320887835789302008061926521301084995170658644287094083779320109138250058408186811472719130588887272182663872933875813923136561863317351313086213108849179601672065239017484677809819395076091920786936916211059983707836961015278421079282104581142275588742762214033059085972985391594801650557678366693346230915478197180453187833757342373788259354183330335107287107813745331090546039998301034491336900485236362662318309914390524152548104563198477584987535432179113529512180045198769528961287955965991045697907273938032217867193511397635531245849525369586663707772026915966059904732080072168435292967349168197556183134263179806939394887064164877322828380862173667453147650270434539151505770314068476299873289356556333460495866697461375774686650264615824201814540049660158609256976838392820101763291184340213518505129683953310487592947323160902626115403900998845299704730934522508539015700943877381920800550190026046801337884154389007582222858360325516975916575381636909389582708418121913414159422845230992889855298536218255532975717804009851907042433169371270409083598943926901923707249672146678828226697874954437805247827707457170423083779556548791430988938624344461169316999907117885930199143880952421731233922028538893049943492242951173463800202532248329691847946321113182916255491103662450331658806147731984331338214495183124399075813770477686109910260170321582491134351434486487061582007899099172742767597639481879905418171288082640877351515270774378973212436774949889078737690642051225178881398155630619618985516139149237513815671912463717884062023650755893081827242213127569397518122056789251560266484068661846584436971721707039411540475156085194679420523082800472431284209597950640101521890003132442670288741098899416042969184166838291217182434620302053124530529606433366754195214796405562975442202084116718373061548296870929671109512780690021698725974818661551351333668108049308827378897659736174118426123020695879389784801283199441901324361332071369038432074905636487910136865077958798742940840940154056060492540579399955806031985449834375812248395593658435087002401283231546382754337875744315679005677322622635589210584599116960561018531674326355056717534255464693242110906416478269098950360732794513016637785308880168228177970654210556387235395952801983241444610289521938559987967405435742268271339804202080025733912191992661813325174278683644667675608938149151365036547939365618924525840089051146950504503613750716172291522129565420052630751344040116800544338252730012918687544175224510391220541846149868881372235183683233599428083326472196826202788656248009282197460933718474683217484298920068381924751666271657154965398582784310461461927911724276339807095575326532475877055656656677397548596522296399429058347960893929398113709917583016309571649694935579496158489546790128268351497388154022510410870655443611118330839354200409656049159495409282124490648843595022762004017344351796371648568880520343635653533458319304312323517630359797530962022607637615336522957548123721758284649109200275676730547388551660269181025949029679611132058214156403394830655987547682415314215682434299956151718288214951491625172080664445177898019789782533295512469655519041446572812187020736393491117175669719963722637347361220560012733839705136368549763114375440494768312038029016219266247050468871176617936517222469305055438420643544152134662274213258997571613873236511488085115183722416266562928551728094548576346764691667074021756690068456192574787767500113247013013174385876147580178318731402953963240971058223431389950268874189415870541894925674831774135100451716513163709299601859065937754141685173146918442030449503690857972930029953560257563568718245563850379131801514633493839581216999257522317033748812574041410035267451387864908350689115805298647956892931885645197287200434000829503789925589270376404163775766630799289259767309797626162896548759974717927654244824563769834690422764716657351278863457511977978828373228200594833932085992438617622961313329445383669871500941336208462992499942894307013133064810713554372018572697977279980056312526531555541739189792183403981662115209672013943667198979521768516601202714730063458758286211154437789656461139397300401229203860635850318568145969816641434653687289203763596725205978313817549408304828849456171067622610407857214013089965203307762553387901526342859053469194214055471213017020418636977915133544123147986685317156496371830501969911071218697080659921139989337085838949831193322672865942922085896583513910145189803976931020256220620685532132523457590115934992876256565050613509072332939128990297271454963329305075357453904325323503217619291040942362367608915857221998208711105526759373120976563184582619184445869350727751483638504012814903673042194479713659790710612725305772792813399404728632653918144001818652344693614012003825881106441875588382415284890673063259463077980271540344589618780206658323781994179150537925593445195132679091640202016967697166192711836126847770351856237062764327816653929515805242571907952430879389909529903333582459893601920889319459954388687433722024588516003843363282892229138802741017711589592889413146524655936288392346441388268013305187905567417754308026111380533381479691840433312007064586697685045680334749889373997665067980935668084298271013411248155565795776934030414405691231907178212349810676418151102062435164563189806741110978467762352245022340486849423276245838683078371941243797856950323351647935511265773256508427784675033685710749250079804062400930465754876254596648287885860153890058569551611820703821105923181495283841425879927873439811643707239065341428981311462791391207232063214019003831119111678312240560466708005731733946553334907466923964949533184405738770661495395769036848561489288867389969291352405450692281472751700363219273108467794096381021106312583171299373538690607565957901909043521972895885812976075762604681630865732325608327895960213245666532932424707351415451422876238641203674590974583569377900293257119858425674619587297070241307328700224505724631022700426862429798171443613162816458533758444017175658440617566964920604786294695469773010671046940269762447355270570181954675502049513049474777025807511851577602925250862545206954057302972149456318169936277050773586276279177963237236215320832367814182958310613989807205427330529077126095163714038322636433429915048958910219458018662247599695303595724583345656372729972648596114192007194926162469875450690159572824700170721134825951262108747203627595271579970420664582313322215520812776394332193695253155016349964300701202794388668279348021915731540725342843520688463711022845793870195070586481375114561793345513707715338583715231262078409389416506785981698166763978879031409449475424505401605274669114277109988224965447737286490728361700405191916730710453143386430887507351038265221872310897990318127260621305073878530130347300112720621237929659461977200627848840022999289926035544126205865560188969523262755776795021375817658542491606053028451868939138917038808070198017598234129395751748902375047450979071689887827141884830354812873778277356671480598333582190381288159419741175203334110471965059488169860638271293383710885589994134139544373680400246210565568559236559487576735751426536953230289462886055677191920432062784847238560805573700575227505517805423185488709678932970259433882288959146871993508728915048561506741379953114858144587394872847943202101561804496295249218265148906283848046005209927967278185886106580600701577656862208846839943321564714128486255757453147579626304118880900049081852355186023044051136606475314123595686010494597424442645882382061496257937756450578282414578179601367104964973080589363013112420755489037739322819719717903319233230664878108909535078428150181737108948130782220352643870375767807492822869321743566475626522439488853598506866376614907966228627339244520142244677108011906712406471927091392287147217658437395629837855904871159515156182488652736781725558847344698516391179358525289177182003996913135319503686354065709836584660164960846133990171991041972845329038804265373208947010382574323213436477010950096328011557473315669385260001983749037529172290403131974835151454314964855555004325281819984080270448396968133417292089397639242051147984318238960090363647622405723089575374458372141114413657625772983978296945070906536184638239519998594826486951620681643351420570594819413295458973867736681099561137615481258333472354612265100095884541297427218538008329000847756308218354155614215841836898774062469188941630032439794322918402138623098784969436086967342404502767899458621887796733794000143841925053798686755953842872887067073581132636626980901197715703691175560673515973707578938780865922228249777000313028687890043830358632391204543229179164080346425456007571505421537231912947600284360685980980044150366141415015571026358128522463303525026241921312700810809634506077997168294918015020404331534598428950226099249666733351848239217581729243778561517621363846436921883901342539826966477650379975070489300009624199137517211453155491156848694302362253507367807750469303032010975624507054083419999085859586752661212220597302709522221860779314848271996745414205566228569283544564312558246205784682186352742137644176092974415079746680404912460985650243462793875039865741567220742549043793889101281605408591595715174260110338367090019595738534303914493507151327234610131234331236470684649998186952325389849216790872292938141225862363935379375999700624824153781425387688339475342880002605101481389566912764432788723142775294061006162463586192261441649974110959160244240127807446894234088228543640139221116514405141334805883583609556913270187470160585913259978848165436736088698511562279259910508610258045177804801592894578018443008609923534794495496444892763240933665920797451790594298625814254700692723854961399961004031264324309377948948481607431067737851750145692159372806346858444865641561749671698725639557606106518410474803757587760416836703480488159480942742981107216367304489752574558912933649941839805217112010569082210286988076200652777466643253336065781813308138625090908596776068877710908683157750284323438567578684063912052092264676257576785436556598476548795802675351184798088473177044537568263411562733832298573869649891157258350400726766946204510919589153373970215192464524551072959178337642134747463810144236354416659642644484048878549143032956373713934450531992566820329009727694009128315980010047337255292863173069121414730895259228500690139674074048445946794623181214002146379348129078872882908597062609204171641942134494843371561776706786525019952445041926871801843896403974063617521473570828337314039332639408091879646870487597186375522958952306877320538522968432276002202320663671718267062594381143728860757620429587976959625817638868061566565064175069081734533737337088188112911247171504477575254069712797168283736123426431124562055470992236010325255933321976028087682764550501499937007770081833465495001565734566752873448765946978794629008042734919121919305504792755739099094501822008239848210876108669047581611531855585873360489011062722136431723642119660424916497963142618674880420626412043331018717970608470643804638749866944217282043208052740196661179032353647595261097219388291094197339241155720771085211498031510251108162300979978338891071409678737703685626099114269582767190484962479124998647637590104011721287642496430373193532823099512029008310135568751555985245304608003697688058917810340237435609416202688584570327298683230981204846046907999672778809952574793218365053434700616428608452738678022559632152776326084879730102645775749968462194961263476554453378467558561359317709692476966628028903452627366793062222919598122620736844112376506486695411258971901329988317730317309377307025232463853696262731129186411007864289531186705872855467347923895163305687786859427981266305627537031030558294510564306093165194028528403708140736684864778084672908892176145488903294113297899168720736681956588893524318868311998640553939303110596336885731405749548773529720779847694777318506030016471338926005465257007407567182375358449204018880020666234155735786192942662655768378051484760544527512834380989056682935720883083012820103452981751917423689802507902534030753477208426266081759283146502413653108699111386178128542474117740047198205567690018276004308065419783177667596664813714728215683673389555100808933548829624064531728884919289890508096806382537059426465853430878470632013875620257124952084307613623016115148324358669433825589521216755946628895006259441898800242184540069001104827558766578270528990532268615357247467407900193287015530885874080749554105964351947010170496141854559066496188541800734117987979797700730554287993219342499998824494868995136882116602148177049872365790584142955516889574990352238133456659970393581679144101416322859697507404026852937860366883468084134537066489539144682165862326743373600587531573902841273218826002596175587146366265074855152602580571636642798370829312523874289798506207192706629225225210907577002707477980312042418129095180495434305666526333394915714595521981278843058029251457984836953257303583349249080437173602155128363486946550307415134273970969096599034819336824762699268581998123522296724130838476708496875687125262380188719787916859780067672973326657422992400923134850448647647678196959869049037775108458026441680415818544978816141650151162326750933316042010872993192827664523109863701738022321461746803086654258378020132548601418855351320708896313359172460573616436271192140400596179619851394938922461107722384150433206352418951907149268199119083912766860466882092899322436191313165846245121143650290872657906996310883295287085965572986533235032588716796965612651428818717866828545811473593191191191292097112093915366355433613586897531218504497617842782480938207592450788081054869963976584998134887573811809976709846125603347114978977794893384359906766592079764891498532453798119727949849548700729323817676873158954178851170947630362165305872616877907382738213688187472397699513870360039089171660617282429607519204314889566802607874323244416663565493116560642701872563208569247957122795993208999011841735916306195255591287127649421787456075079152980192466568836507947730148069960220433833811027149939967949251260219572852342593485304033401063439149907360256446826616540688288170651643942219548224396322658324366812739779367105052749918092599034970953899403215608173989850744918748385440655445653918514604545716677794781715154254952321366488822100442843759162314537469367726971670529587099750287777580807580669583439128309344153373132972834052590163663802776318099061802641094103207822663842010968356725024250047473698037221222931763853580423433542364463949542907867755392502318560896361647986904967781796110227579341819308629345664856884620228795385184554059098105518092748367179759878495733821370447320505299883318192377663661234682970945455344723252633202029600529816044405594221406979754231800163868942978379153718707995494025961727983745867617610279829780561209151612914563322072865309426437838409729166208178731867385505046093091718192738213538861347951656189377048220734022404609606825568348961134373104317884431039034779322885820143198651944260801119144888245062449303286980983846015891745718768232525013653137147269631881534715985970202510812456708813722023354374392925550382260132364456265912608286590693604936992678179086492701581099359503225625263567463783126576160635331675257884528482151476172721409832502495200597190215272381471999987601228955207724948864587244948301811266014514456056268001744324989059398309310926214228010175380108503241680611859281598161108602384525533275976672271919704131339643847598349378334613877194588105093023691950379015115405300416536828567430003374910261350660850442969009519616255094770439996688998043024903106430229554040447831019995234512781778922951517707233753491667750060543244261722203762116061175928148963924588141944173081676951702637521544997946891311923634855127860545785236395806107348853276060786266225462286807988963844184906374033005008584885833129411641275327913863743845373239217599339505566388660256232149220871328363037502769507307352644691107271312057034952557753020427798802442234033987454591824925590719393445520658585360511696261683549779463056772737972548317934589019317561685205332946154241421021334093245480401035604425808219453071081402937926451029233335547995802983903505034652776580158990694473267990541323949745853176336061906881536897608346395344190583740463053665742277710728245063080741744747557581927991040142113879141934192177532076325070248376764446136406542663520263872433623366634510280190843500510329397338777731912699950909715491732355511370333372437451035966583938669716823193326467504772376651702332874872281702973581613903120506112268408240635095365375280238674111849997488980740006550903446934709029059774001012235130281830700906018931936824228032518122189956163612358640074070763023320314348214372908842469238025290350897619575525415678377019672319859562028267903804406035670600547278606073592997905458626821124015776052957794298796054508699556658991128336598651804793591977991353950304755148717637684896370862504790531156053631455922223790227005253102320770712753293554297200616651698949770171102632775551413844162969409163652245226265514311022000990852467591087381483104575219233617275301924538191049159175390924983315005295198151915220358635107127245463972878955696847346295320457518803982793588158351714730468403660519663441093554940738502490751606738497688836020894619452982092024459940689256846594676478425769795767120327795329372803423325105688256837992249271684826974599529155030013496456949003910988436540166465886968152270182493363370685770656373503080329480214960026879371663102614062485648878540540906753463990555401815972914112979509200373400132210397556221396069659603886017203197883850982396342871939291119413907599356174472614467653231854255488784018270771819903147603001445329654666658688055703997675318107530241344159656184901332549218707717758619983351111106124578345027998984471956814268315872980769850105531268687017903028978202644130669040727934726454604318790174624212878663313833092583329918360758217422722879482550203666970172908859138271515445389965271009732664468424122264990702137515915026155699790988884607344640003133235108655050233412208071695475086301639186082407661693667177892722446003081806964781778900060655188314529612880412455292505967165636990006254793296441414342484741076251336592099581532738562313661757725761941726192751723201111301728350614543866199375173253902027786140848401804397956830633181403042898966274868873519966760669445967357375391451960457591599154744761469252785827924037051179541537551156392928142262506302091832367092494669041931871247975071848582576659500168492434420288267690451179473776253486403702112656456466892641750795403942928456092291349523519121520682753276230646432955705641508548320505949920166510391720049310887416570461329977924126617545381159116905705180817447628642567231127504387339864231330581863898458833679302864451197883877908072239415319492758257369437262423287646338378571622410179086514933234064832551481343543386636742708398546698743570642840001259414481588087107376847301444088244697109450087767531116317332638609220826784898747661910349135659202476585246022432988884026428334627390987855043042061382741408805111361853711506907843393010275798116817465589096792491014331357789107807351889062404528399023717456618931132464586510949412582269502662415568983482383737287163963292084865538883513573749796869196170067503324255511870702725862353114638656830841153468925057021252814876012879774007913622212941823755277946426215318521220842734223424320270168533406931265922152090100706002731189217944826534600537795071486946441533011813349208861270483639070131844064333109233122050285694993143160587805025980980120907199966400043822870236438631245093442469267721351141073838292810161845949532245524108644041787422802408940962720984915000893417063356383065536756368389241708196007491522450778671158051658577018987253032653491533574119922043064246318158238780564527112313714341319698119936988797313646255807572952133847035895376885961126640332755892177132053145266512050265942091012021852266743646589580406542637888276089993100646643565272896705279245614862441671844488916904591115613851251985667696062613919167900817222722130562486654660165537059902777211758591713525565444642113064177234858699372649883766818985133529065966042633758352338411065782523667795159896468227353715624934911871004023845285045399666282222666350247659231838489174136216122939369634629746804238439035341856537211664889773618543688242656081206126665684552597487636755922724509849757552334995550690419998502213711304134221582370342213685348083733736316682179079977667441487119188023954012055328880171313395890253481047835813698135301285954221994953345420211492970791740705293241658839263748237264540021100692631161955050516056227285209034667050779891292981608736383014304680074857809216974779158560876223007322321395151320724262294402997464528253524985325745807020477964706487672946557082138232071512428122187117490198157778985527872463983600796465259033637775105128506858479265360325091359975581871547845381010191507408069473717317744902548238441566587626929357537081902251247025575486133324160990475115417169291395196442165809376622550113551594110159755576200804153045487748880287229750559648943301122350122256050923937462096367655059849988760665193225372014415370157925962831639560745411269812596003620139453386921369398644986271341106030745649480390083805058384784783093998812337036863976458827051881973536498596375353178716932499275197624938182605666592632885300534666373265187474917845734036056040137436073952850771137327092749887749534863805623144732651518784169427746028319338176949075812179250478651008070825605848586019697947361208867505001049880031958138078519446974892622514095906087399763511207456551638602222085671651659161123969915406478182623418102932559002056091394396419906040020446623694312712436616298806616447808151441249257777152943868472095535266726350951231166244281096463811293531097627339139180342289885837938589078247717600615222581439896869660324993305687738023556626255676057609062481036374434310666747673771906663042425004152962826449792032170612426690381108523517769633947303750048364045177468831368955455719121681809418568905641552564380795102405661796718382078133518630787622687196309872408944772594354063841109002642634034160590209292548642131619961795299303329841281288941104654309176709616954224009777767906643927873818700713910209716290271717205488450962197756964221135486147773718848510268510017125292397333645239272983766997128561860452054960623656333843603291482419601078827587885771900427585373832988754680593376861904146062220795237365425685796318097953705740095582854549935860691368167284434963980258853195754751518149146518129905395646063251909535928309032932419467669272626399141646232076968318802157583723219294912658462077029068771966083099883432976054362503939592711606780594412982276550507644428392568589339904980609028154767950074224695281681316147634421512294311834188477140570074540741356242971585158519596341845207466152805187739050248436688916472940421551944318093796734127090957129871036901713048902695476496217334168805163380227362743705198881893808016573040810812461098733628198371591448613320552355620850531830993563456415600720805740268311511608882647402131887474914440578389799482590642350295405290227112150815983804969098616367636518650035277383941235544909011274546347949252185525213584031714887596277403696809817811008527504204657416398705848594223772650088519456053483588223604270583688860242861450958655405436151664488519258582958183706466840735162141842885321434445272943762980277293286831870210532594624332072542264305474510657388159329981245661420333002275346900487671549446108853863615126449185086030533088416226232918026853117060252504123359565834237509683667644817833609614217426643642896638043400510662258860773842341913143390740620605555735455872177000405106442417466868996745286007107339350857534843962812973874853956574117511394241998930719340078114540815968261613986188698513197836293745804127316082114330079972743609672409853497316827123550438413763672411815148353080665987044460392530875138687903887914545388763017659271222945172488934767037115648186888594940288438994050621930197918032209453719722043327997601194619355903015884188006806270043595799855468182789144842854656822232223814283671324130118989419272931946071995848052288586712450310341388166435432020233568269807794197093450316082950655145105705147728993922971602773417466609450868348765199355874313073037197049275179774391121614167718566690645613518123102383830711597218620719945612856548589644532210840626544195746366585557598770735512747206466145829760321887181783907174145313816545753835676136333912242738444244695952827092354747195410060895885667394504982954727517933344187028222486185685739948559358814945070288094973003024501896738088243520874077587759365800819746863095053356761603435563890017967248301712018559905605198244227976598430533938160696646746009129568850258349482795420063608672211235760726834447259405838327690661986216046889478990610486676489877546493516682159306381670951308585321051897535049455722573033442227992674213063404531308573847292291496944200980539084419817644239670848883710431325561355957970563586188641705425007534995373087322090111866083122541729923974636096814138652463731240670769008336869914455475279945366983171240181396168502801437306977678101268433381945490634551696968202115657256755305411067464606644192116069618019793921084312960462411942955549898891124426168247979181801569784449694201525310763051452262279748368783395053091263267009561645164897718437889471088452662384810961798195279611007507355866895819745858598576273208818360191424024164423915323670558062093708714231582534642165234244025676760053357877621634065891707756328995482081056296186210516757190791775653891168170270979254995550760160768714141954369100729013500330942464699685910268883214958600155905286406509212105201056115031917878933281656051329704935264392521728425555122186809259545046018960029267923938279355396947802845497599545663411052362952147280941179765643219786307735494966143827112641578415230341853265537328525344170851695756638230158155841779541256481067094540500817341663231549116661274668502976740422631793567953667587217770993281168637525433256179709485047105710061651093688701639542733621196775504384098953070445907903623024358799602320396333886342269489837384521335178070118845031833590850461699979671900005446489505463785472298069445639618443086403282210408935431188598099637066182182501938764700947493405332515645768233646842219143206491338945676756282854013224473306627379846192053739599351352591412188070902510393808346990128651776906240052366911006627979610766030133298914581706681990029585887065697554368014100229337947409181576418824493281586113071576586193854808698909348538581885991603532839116981543115487667477065372999516870657800569738376033350976229814326207191880593348374985638420255685183490499041564792875454033952717437389393838773563564788871535244355985408819125074389912463321904140100925596560641778887964213050083766957344870631646418813632203213558597436813054747737108740246779819494238606911074871609791638430868548336018202160327304981213043939659942274099612659108979340085585470515076213088820967999937205884297521016793562153471843415564550404098147010173676399863504526225196064707309515045089269122919927189865215380414791205169716148310383457224728147453011789560219982224192824052460387647729658705444309894039078009835195690054366020027928866831540671916296785796967906663103575773834030615711470585118440291709195466219192890323618201871525041214564332142050565127478614963663530322326182384463535529822497743999806263458890746099773843917844694321130561058336739490028543118248007740258260818202015708438177249141619553903862750903151255165874701759002429402517480530256011617320302737528582058530836387033526279015908598129243388905781525076691447328240579965491862915979611879635274521615508531163101006874160437096084363648250747932597014664801851931237910711252388018650775572801089369850966589145290795573354023156958993008822832085350913925292930248256846415297589457704519642448891474230504719616510739943409501013824866289792009478036904768770955797014139893378940766378924088473072667195584410359574043052506610029157810245804525630800624187469909616055546567040088120864021419605656690658711603738935428590410335493415086804341780788061011000103161644203890182763742307630323645584839811211663295931948369967672023474446286033022788024146728588246666539560420779455322095768869542395463638461660276922445958099892128655729762402963169914059413680912279466471252367112635521833220530315762544305154918813354260852338792033232438455378189140097374458316232148013671522564467648437511799487104351610141073588664440702335491562627861099326498531745827978641231398434656280826973744548661642522339190608157341978085837001852863611838922650878329231565149378833055944168792912384653756764076398002438210807525807703086520046606337032518380623043854591974432805100517779348886661919235514388378987786137035000327623549413528014080805071126754037631605144533167567240926313584426778924281867117765750428310539553756540393640332590482994931553861406568439253360222069254673382577502184584352085826252966333759094926489026811369436940921332142194975158887251792577546545775021700145837060872703477009089356603588808347567223798887847878878314734541069055367233315583008342575514101360464089260519864029601359478380092227990644761781628999390661434155241733970796346268119022783288351808548703540649094292749970788873608026912690637989567079307229037924473264651378897686517449956066758813590480724970878548061040439822550447136999613004097341090544260014547835261992550529018967206905391283578569874713247719251321187215044230102677981470567399518615349106386004967121877846512266040416256535965734687296124165315510470034639299860380711369834978532863511795615108212932812799105566173823913166925805950667905367153573324902100974970460893985765443354325758484430781451041638106216652497074373469330547690127651205152561750476557607625377645756097009292308898968340430478385826309724039144832336110858130032860387215565460257772150694089464702003151269656207024508660748515099607373850306122584125364954018734335319391735162749765055352320167638067581545337735508608590500776813574538964662785990812367357876247628404764415217646417332650389949641572330248754081284163949160678250719698193272894948647977411324722596164273444873552893432168063497361889966825904922281033453739711195586682385396841801023901118653240756809844307526767462238517806459564582200438516809445837330835827241822324663948813426683549828288963540911028901357350304800290605763977708687399262466403687824739635017314148769842635106266108730440450104090781066918705808526723028040472574784495202961463496995182635202910933993848167352315104272709904183620525825941401446042544888428238521001133457612251752410578028289867300131199365902139211722392539316449664774836380560578025694629191339291989403005856590692990746164533390561260654016907054457869147811465216707442602631153837224023327236430248410603595671761835144191064662016921458983766701036735199555931687638959879897990735424600716420015213716977300422142849925304103302151514625627370803405331878167947529612522342335249946538577751066820049542842416321215312194138562837309831821619251189712411898402297765777846719755827330177199351447472883821303461630624450117158522826252244157770295456078791850929576163905948189532046287615787680274689441572275974208005977171333741776078718041185257243821670328642482014835616113729586273016000571148537505455247066569278804988367939562121585775748228752001843838031913208856050105146119941918636509754216484982170986356834578074062171267881268373889723176352014970563713537180204585848026049862511655937772631425283664668820079323078999751201085340665144854969945532655986522035242205235206357011095083225062811791559947679123946822217203172845877369706240189778580454707650408440575938053630390566681876813941122691256681148014605728593027145587171022234574334491608942591922752481050412056585016533718061199445656704199011913338407425617130871018922536174628074400528145128625839054703951383976680905440182654962205993837278692944108194532512732920458844979751612742483501235142529551776754510979331320455727727903123864308855689074231770543121954036871713062043437787035458890233158150183969130872389890444345094333060016510266718942200874610580233086477025103805251390367287397353921676455170792299107436928485210343142163107717830209080856509465781695983613133741741149842752749411164027157359901501024166035884643049212212058986242126921815128289837509809917026891630290112071525283851969830858286353928485723656204966254851297220557455135119693345470063370171902296574385194723376097804698878423273541945006291026268669880373468818513907197041034286670199155139460007551876871061421536947774780298016415820875247007768723372633798796409280179610268386484899972453594392089086744445228811157855963484161376804761137124405805258219280747962145239459063373214930888018595313856240655269146817469375939005833422530989728420708648274727315338511575256783242689037983657948603595593566340807964114242826547939390182113965016632979682570403626833482257085117226962423935396167210375845484962977926904071959625452135352360661264406438615275159061441070307703753733503942577389682253996567999414720334574064234338378695063582090968788275145702762342705494099741048261992090838806983921590428831857177440568346273853426485141605078572929725427882312234188619552411654807401318209049928639777113624766944126400716964321410510851948920289312023869046893637613669456804486642808707119784551202235979440887547513138291781139715316189001206754197538870981693437744423602189159492748332473349080813177505908857275769470614679886109745598567958888491851936344171636961220419547440483314172854536105377668933513375930210071371956022598119649299474871563362016511546527335417902580723462496114510295462184235867847897685551080016504227080719663878986930596820303659805281353140939653779454291872542671848555745105690356281562734403764338769387294587984922334469543857197692594282245649101499158583330099179380877680501619717589219964921458042199168529985904095709463147381406134882505824027831413194183481432738064131178097005936722341721757845926201781472887830312295125730197864203326839454582830069502551591057931147146757916913940856401615597710544332508112835502577296839550130350886068038905520384804431635012726049352926354944020067083215815336568267160588061194804253858975223078308114787286186880791886815920567446512083194687573388448423880370956692461825748684595290181150889906438277947072817858334590571029083884486787216275250188037377123283421611986574377897364915250572598073516647239679859268466978526415004877298987674667072217258228380913046701717316077249573384161493369327468972904464812452821383745479587550876544995423547979861809617039190380732643721183389961052109046617646790380484934249618308385309363265115572170841064539025440141901219979212192918621077432601287918231723990982687771020361670887597786819002210765030862694464863877309770567470200676990687417392088273020819142369410746367311106143191597615822096897498103230828963592879173088676452623031143749677952948927393061073555462508776945373298654695098670346671834245922382383928681896137122075559363383312817318910352401506430745068262530901516883087566466496164546311500721108851078464195691914663949663109508346802209718564090788920238841944722931630321238917940936793206416767426685750423058517642970190095269611748623517185722771961417621423163768383098911380011108311955593919893111871559995297597374279002526702184264085546590859002559054769409541738688537515725482663279315781229506248319877795767319000245168678358190303462679331338427543348626307140448378669455564251885311147867555072285966553310894052566851759181833261142262136508696590768107576672878480909961417638273008328999286793227943348332681924289574970405879845088631534330739709037622762097657011272879367405353747442148388992109912116032195177252882022198215636670377544995582731811216460263886594272222261216893517151503522093322850580830017731798654075782247806334702775504426796981993002412976589921640523903070666547762907188786816939624121625538826585601743023987434340793402592277503869056660258006263116231887940392413329174986603051294515421984103706660491348294861650221721169611111038943908965392323784480284923741045271666377218350065674322200616397182081335395619446122186907250665119107523703490059537691212093779120948794759660629723016141544091409209449739557717528024367067456573995113942801506203505067798624192095332220127952553667212195068627069305688735072403024090881834623370189200628217769421851271156701848338141491178173729443986540819027598617146694109003798677202164372981515021008249840316422995041087524051663061356816834096034694378854088496577040416726374973263972702976607743763879678512188084008325114090068110310570834742221902523153739368362222584840988565387607068574877497913191970346414453295643130071296025024279964074684585261436835099316577361627347593337257872689296987221605220095387338811915822304064718513549841641595850528517995824694238113388283940660066285940336949118843628403184872026893816477924010685833044314730814545166620230365221053366101414945610622932038267805530419251424241976941907009567445146355242577343116316972559764795998662983418276190844600787790132495818115699570341976589571796708085801693496307604894709720952775219116608170582196104099686330748309161498093810450241375705196967911130857742596113062020316236589319327032121101763080888395333878218688807716843026495700740718962994587858519236812543785870232987896912594408088506292293379848101821131013284587820354830386197307923823976131070665668240965007919186913883668814055761987768506628760434650815969568078730355715780483316350091941734209993691417587832227201071966968614145926413777703467026432490925125435135292440984810614128853598925044441643865514067243309043903067587287226651382156703242044611188736950249007322653957103969322764546929795783393599373203891687551657399934620434337020056234624925015411809877300055496651674041320300223487227645552371329486172557981553912966811647213794015995116931463105269758100392013372946814574212923695328393061295165707107069724694247970473805759542700406230228911852888552432904773460406373425645900696618627982236714358605995613886406594051607543118784590117424493086157117251143163278156671739766676553611306467068920040378254582299321160335894610903460782566679509939319646008406545147032117816614659778959655340694727277421496114152857083155744738076638602670455018061290756166960735484050006908206193957099499905655319095946561092738259762579269710202239244774961598576639127447321319985447111006808840007693999013818934607959491625489910326329504383672473830387696670103509191297114780684487039516708806981177834852546279387136308692873453588764263093972362502472277404773015990391025483254205762764390799458365162029189658310085207170315773596790465788904438049867939393432472599224618022505684036244480112872811636698934972132181924643620235598661729193568097022928532893690614686583500720689687564466114498579993186465313826648870249696692297573989609942195253264606998383283858534217577279629579284808916633285102004784952937543338850999995377332222377858569442400995114607773766602703380745986648712860628603368325210998196435716491619697485447911242874770347853102691460107890260637690900829948328854902388802087409255789810299557095668361373607652252587376584947767597558180524440731326109681322839171023840255676276107127157851780978083435565484716163071663923497457999855062843106871721495447425303983124456956913699407078619602014952872880652678853750816373697123577613730629228526115488991739358808610928191856798119374032028068587387287932592225125690624619338258023204571921688299320684292001217540859405653934574702638771646929598038566070712213801168068867443606629354433865449654377530425569263233256496989284620341610008264719669009270914054848430456595110486156334572517023197577136061582025931857989553914927135286682628621289986472087044369994790950519691068221413053657861885426652615075914481796751270979558581544395593362178165595924366052455544991277285054836011604478636882283796502042628903496961571179250183092391843398663455170704749498596068738085017902788752069899542791668972773105543554529015728483432079453974167066351264388024107931848233531287546062840665789148938612132137102962744520848493962132092105867471689736851217090699298441836650998617743008478243581640194357584140770815925782475183257785339792675669876326717027580526623612327801424434255284390113652710207030269390329874164170456996260558516501009030549775478847410029826133817027269217438584398698739678143535390202992141411144563953733258130025891289192108356052328961707520041539405593977611579414984702503289395864853948369819597272681884277450874922851043028268212378425998908332495521884389149845880071996421497578082300436524178437190858228640636709086545172377172155570159896652696688439604109047092331203523699851413574494623230267105382350669253816057010563513536407564464526187223920432312370574538182461782035126700563717977483553921411442490460860970957704651505025178881851882340603060470001257075802666644698731221463952942700394178855244290304175858108820696619983141792619684993013449681303617248008094768539424674204483097484611160136980741288082329217115895011444309699745366157374956238980426609034349880665556252040666967521320683503674376382800383949778769883258189742141358246038970339781192161191243187834398174923332037533894508699826538143355398812319329083910834243727439261714356952673796807553093947869223784225067341438541579634048419323339589185138853991458518151717437850095778378894484937237590338128969699618821616423604264815272665187953507423304513541216987556005235556372263657134370788041551262396497362617954119942756220667577021284403122429016506997908727657826488616140283673066770689516069916991071493665064179846158381306715886515307155758692980982242909204250493029077788535766207280017804460187460454384294050411222814808840255919082760160757104793399931594330392576982368050682953805641177765242257146251989123287699664589394953232830042391801268151352793415210963612122657286757704462184958887419949696017737758221759813606690960929628904464667696160184453401794112336460408061880878779933194128271794864097281412100298969455278549941576234265915866606172910342209725673540554176883241606142525176503062281725119338168199446807866159434259086778160045960987659868591894676595399216591426850852492956349588244001511712892966896311066176037447904159580954400451226731027858959605140777799795361834459959519234866718700538775500528861689253222158626611948212237549166525107556329088135839737592418317015309775610587664186265588369971571588754319807011703864776535454149185261475519062400474089782797935847225805287569922905953451264987753010586646252864979915014105787851152028172650280102573328388284119022080426039603286331771219380162871864908403112868918363753159806804351516024018175114347349815028339809008577143402425681704755070588544529215142103368698534327105450432464854060155226837200775060606467314008989673024881598843372774496759253822738266003378863529053601874044702394719886051200351524067649822998185435455422003366041254006562603699301122162844020281799463859483654459721332437246061755628506944259871864751836414667376395121301217819678792866949213330828486471502083171817153178657589491248102522906266736918004729556747423313319831730485505383435744069268445147070123277735716678502445633060270826798284254928767352056458813111575503854326031068263710773320380746737977770701773723977687035507182788005663667969431292147791336319327730097362589768459836202716419429794765470211164058597992874857363284862345310746800369387232269969451075648126704415912992444354215401269996849991264498030714964916691342695234401905191519228115923441878474512891403326522728840453661134290267930600984507790011360739651109658426002772349159533347135409234622016557103892245994982257953391467281654173822050430369649618091540355801846150293220941195887111338223631593054376521981738641774722901163295840140324576701416460754171057461534161245508463350384034969782466306424528719472573652750590458556481178492098182731580497420228779814248261967951999597347419766228702060442872736533215299299546279836491369723450195625367633402796659711192829651354457975290812856805322137655350704381167223080740670385643570404621521445910324561790788111343820550849765856677662546229861597369910810978818688179988243119976930458426923149582646896060636399711797509516518035947721422563740835597320110017645842123420797035100135285524589063432290700730970698138680579719790239491763481197095899974796757404534292111767131753228537757925997426282752388122553551479930444563989972503361335367694521875683808823851411799953371604703939628385216839213669921370463054166807089668563602216734334984157468922756289110208563608407384596996823576867265248783894764816292032862563317384286445824089226418199439324603256453503095540963164535064091798113859319781737466135901284512109694168044987563152211127249355055748134090216127059470449271685157427478298869122169322498399558287524568398366548685627304868454796226212193635150597306094787941545335619403460543076732864321896804263109302722921435525902684480330089474537601298079385037669749824447047043000489680963963262629917159185043291812242672415898512377451398882384690210464183331393983393951907449327432261502965998560497009652542436345511920773043503172267541736169317005046367580296919104242069250204796806766248023753128938417264384224494904819330588460104798982336677120199154545329761359321726779361020489002970890049440314227715242197675246970307285507348863553381080973859412647917373172915601255389412523784534681257273807572333543809476978181988993833490267585976414566683643626920342371490240910223525647634351267999754589588896120682234415128796627734704387932258389822905620634502832914841890963510618598002203661742769416358448252293760651224139100855656662800351583143819670663447210647047281635700632047177978580262096005870683297141324601444457330720966109318957755928720477217060384742897537020217885802342836211712848987531525894422608890387028943926377365555653469981154283069099037554391949566270334604853338841116603078747084970603473763398143251733261101208544450417423358397632658201704390510104031917186747562134444426086865935067200782853554215576845802472240094329516847064541366329260089076665319552131071231063971814666646915494042194859679975920011366197964333726260936404227258321271732962336652534685572836576545166935074228306030048265290853194241234694008048007109095960115818861422285632099406107376715855907920617192388588217206139806243661178110690112203716589069902063027334857526691556144123887341798094700118924595701018157746671367060787968395058097723170354749297725034556203233613001852730646328734776738417597430875450858792626494801627339325676052991054356410341175102996510449961920220684971513117421461659123295242074548765987603543252751277903696316144928532766532648888444237580692321452326061656607188761601439339892424297299810936188737401556823828099664178083192367660057130153141350583974012879647293456651547560556545384626034178403491588109717254846107249377510777102084418765856670304553190260483981688588777389695720772519347280762924183041249635912132442008814811973746087669920030920808987386044377024623227130728444960144047099349023857465850655763226260251433573704861354066292955257179456249793492001254621862769886839163234668182060226550033796844451305385173262861839398347590739689953617612183601024517524640575650898249167611912705763628071775488393998495047950490841403831985075033428811273247875773586995240828397325395520666444416309061602467789754264975549401868543205025953098940159954728620268797045445415398852132297762957349095903739261520510159143083497695485875678782944972602510743645545242504306755951416770575721694624458198637320085519684624386345735041431345762809928938353542357241701372040436654772483030026112100913144281094569203301467658334072641775773041811910005511266132241176726515088975165672348095016392796039765192916392462621646137944488149680803787940008462838722396750820381133552783511521762131578903798282125442133675902755582167188590447474763903546141878676983796505884126617339276552352266879743949427701596453577015269930828364255097323079420840082571726304407099925588630119035154387631741181592961400748121891844418059790940970302123699308706206998585911591227551155689348636967026709111634718383315971670309172247554761193769862317938479592901977727232343141013987765387455623194082742111603120414006083184620170183298466151697030727366081268712731012661211298943222641406883674865326479689838925508728708269501665964722413695409319706376462874772275635094207275925173627279758788905826430634958675463801765707916567311751867815572597550626269615681709482500126063895137525337291040430136983574926028604648627637485081750887138332069525162504608721031210270537672276512370455483191483358896279252876528075071894735943962698384256667595566177747893725767650590493089404692773073453206968638069723226258445062256339157973965814177840627858970208350260805352787704354560770158430437205729632552718049917108818425708441448241921449104931470207105753623408007936594015653475119696308007235239397077648367631417024177346041004132692333997229606922908561546163339723818435317534270443399751684827186571045087651808378153872460865312933676740393132945085831016881557926166243407313333909751061238714806490786113906687251977483708038391560613567152906212601011237311153441006908186286044013866085904352335311581190700178572303079685026050742155328062331569575917411222809556356594440041500410417711855830413729249698562944857424791182391000240355216203262274441760969525758709353851190578665453012239951047929086397805678127161254722184567556079293406516203415051162383922420754982114146560060660830856369929194426604673441337710497383023931824242975230657351921402103937400413762703232673554694469757032942623600069909236452614354499358808207622211265458474222894002045313332448112870561604231628633012751549502152410187884739597789473058036989453812790835285872063164724955186576548694471460647534623767291236468248033893910959199546939537325111657500583770054678241489472843598230214862920230545443057924653412420605397364115400678910768793772825939214316814925441208982770022358149980536823314368918277264354278849456766756059968018124361753960008775287167584543247646432876402274383882863032465293026598983103123987722721771744576143377880999822551172230936438026243866714520237640095394606126758973151397069997536543510528407983115893453495124485579483888903283998647577046422054175417332957740681542797421849545143540737525162850385479415648015631240249712366084345136348119397939706177193191730274483217898806921611831352465775573641379398101508508189186533172225740312511207334175221260111419011535105069429602778198144487178553865707614017995070714639122843472206304492732564940016500994119480644264052010954589960271226816250131594414760948693244240324312565125102795136831022929783749918028381552705212235752015197976679546990533831419705255516606793818937668925104343764109897856658561996386296941052954848198044861272221077990893157799757906814950362133980339843733742667135684713101341769382609397902342981376345023214114547983802140568142193116079835192693225732198817016052990485405097593402243967484750296552090091618394001407363096519123008731634894419182575696985886505757654935495337125575611488687775321688297013761144532744639567167040470545043070852815764222498115482887995203202883545158496093789416513537616747236847859532548404077341242909529919337832920564302080016191653970746976848766136854565418428017908717911956014415025995947654956030821139822617854357702215185680450298320197919222974680154615526926526109123087374974641867547390907895749145563971659132716572495863849368694952010249475582047433191195717659411024880724924811184849618818341763316215933092383215586756647108410500939344226280115020619481815438407935882528507163368909931545205530250273088772735389571571991080685600779633357318810962765826587851272672845364911175302373497709261269533117317383499588731283458320476375112451485562357476318454569426028036450065417495690399621504508498663536797298019054118427081965835469897046520519322512592476488929708624385285552217740417614723585414989700248965653597148246822239955193537074853819421012919481948856014986738219647408375892926410248207096406805550204296098713805061744129011459159694333103182319979207227221312367471378111986756036017081065065680157000780946969875604514311440456660281497032252877631304078269295219071591772108013784451384198993397360143043861887505523091452639029474451043020981153917900535986533151060703301510375921558119920958247631001670305256503568740416796401119632641814231825776958647269134502802070211301843187309383562675700812311132888042522719628600248206524666017748964478453995375866380356376553822232581320225154909339902915554037455367815658950445208768024690566595676673754965280035040805556121969772514563073355636147603278777173865266789696493449769537011162576740785329297187437801166098399972996330942518502243540995615170213281696941600904561682120767349447185671454735747830223136349406569666221283775331143255374347760732219290024567322867034825225706514185697156665061106522226705064079520952383344076109545085744781868799322098703868124770009082918910655335830172280344856915931608497343674099058363322260181430675986888689468808875205962586340017948119503500890058428147965493258215114132110800093485669772218678961567363065597504605048992718575260382290896342128429793106271512446350802006943715738036673043644812823217791844671667171929146224596492327361403963095966962070340745181562145445085803878444427861458988717335559610493812236807389452939069018023628279856255419805516621270286275368735449679420418275701789759693707860247301580562445852287785405089662080352572105668704094755760954243215780916657964782533616188076111594527722029151397562701967530342804019508619769135909051804356870408714937188596358943080072498060063447797162886868858904797734975913529887539512217161157291436052490260125057255136242664185592512085009599333543392566546685170847242760912984022655658296869842312291422992067332627082498986144190430391183637792187257339116796655583301218914570821464752368097124743450369922502562563045758342491085119831020106369391366604801588062439509784580507717418953765753017870409814888425020036440846529317198101180652394835659173827558285093169232488416282438281998635539057179626204700630752835619568925420330824477867152094422283798245025609054139499913270346778596256844985853348741658794386676230543943231464788611992488928132323786883354055489928147023784564749149781071804862424233823548222230934321125657874473623621025619619073625677747284531807334004924564274767529118574251993901951321786698886439706142063691367694401459185223548926333797605240408074035175592733885750053510808095743470854825317938685840884399636375718684677925651521424886936598922514242781308171135524148583058298754775236659399410856145936887921707179028673160552671123335316598229014735342926390193577741942980102128573759238948579212049881911534511906873768044844269124637612103705655087870823257421604624110238345581126552234287923766202240292201451253134722550011726838338373494834112030963554581107185765570735344852354476605636474944465472373323438177982868699902672468121730158374638743036171747671106804803649065308910162932402653657378458490700170050939366669765254372539843984810220938775561398411200311732009169487188468504358396086826112031225717132332666350065506309966566924281434048469451302943426150476443112326788845389746421573836482425394228773201099513252045864676786699291567840543955899264422959092425236039593232227989570790003721143580372008048894678030025680371765836958789551426143317390012323488396139578896209515384415954493222328976781154163597330288481526032442156321868037282688823710448069202963113323147833812824590377173655096549004496000568635616062646950239753270124623366213337943335020920579357569957121651340848191564690112728072229315365355950422672439348751642367109789622955416199292468527938342219798403514176001048259480036088739484358058998857900794411609549837447557425304094273222210993163481365953969220882969703220973847366443037928625386136156108551672879343737732743462178111113010169027905072735818923275559290879255508630135138769818489310964585278818876664913512960897985866466159181417515725757063496583434519399943938216451208601953883221518276744665138835856555577311852865665363379886984313294196416819154846801713168875782552865645037799314727101493721330158231984344187454547762158487566801294889678436629950933824750227866252748653015054197496108312273570529274438944229363368166059638484740839996023393904527059772124488243673086782447158238475150861352128757923204093873128984805422975592894398166198463036987272943753232009095666896855412207746005926478549475627834508223109302392720839303641794479074177845325024990727376825888281920294444476651871751904363101424122147767639690015029847298961731784770860857167181975937231355078873269050651407063588182082176456439833842406800736859703908384860004110056418569509617468634197387232831597145591688934743162903768984544122248973310350984857563219366881441702347321862055141747632505309943739424199036438599739047761048787514473961985413647154047679014807892668580002594919084344524709476143609776259452123757776328511221011495725802735402017889332924604488677166135552884438445223669295239475664433390204850571124048103666737033957146796147067830087893405596201975106120288248531989609765366999760857988948233184024059844124546222494608847756344100614897176272711417978303530939633528221161226943301425332277962827051823366236857491868867476135825623794816088966764765236531111626599021595803145113233631076805178391685494844238809483847471259243895021465343457064496316864134230967479993463563794814885993146930075092936237767031901271609335893406428622297454078506249864153992518005306556900737519483174589139320005111755732814755113169128852534439746792152644243491588603189827382793422634082274910820027489984033501124622266303469559422184959041613957542758493770267120279603816717896778346469170937025369558245461365648428826526266734840887665140105893296096346081344525922027778761170055966171298726828198898169422523152109965901288738148722002480968042314754703477558277939014895410122270195581995305166153247290136282203864877121320024786404141168633939481798131183527031737716233339869622607353897652686455981805723156379858275892506813485254712004841477613420545494470799245439427474689935831550590615072845312921310125567231342734382087502095915941339204282526642639950607322480146522286965710914774364702089385960417677359197797438547084115385758480879754336049059599910121449022774251613098182496701774740530253284243247053220311276520178180396233803069369285366329130135658323054037918598347571628009508671531432124776690408974623161829305667846125034866256698200495593185204354587139763438629890449436298534203134077538975090619251928636590922867119518558649048120069417047302069871646521033248475624451907254847125850651339342049803130310350203288153896513946008224491515448205583726020711222471767603427402257002815579869729392512441310808881147285414986893136745485525366002969934753735829871110698036814094429311556071353351255180696262318531403315859705064685812813383778741093691790691225709900757736884351139591727250532051760170771997824882775853318981187090834840808474958891469512460986249199580394661178370325782373061634182726630504745876776505099658454615741885085754899399171024778266501134374362355736799882779185075844233416599259258799733887944181217659608612278681154365330384372221294160475844721906405948837375450685798056226822202566249696043295451834990063620195735798447316414571888044891899430448625375911581496850808644943245645422356369955333427733858628714330096232502164800507664159368193988164972958663990172791919558086330401797338997842544161504502100964723994951087313938908913861554888688277002262787323950875639078167708185573501637544882804980649049408787485933006993750346349261672577693662675982078570344521135375752548255779735863005793312092194208886059985599337221843830003193486591828069456651652558376889663539914598704398759233340108468689145416524749129607288472321439307548379417079050845359211112601244057067193402733052341214553174894864414358591453646433459640855257930603730504817671444852305211089590003073059475215960189877407484850036739379065510948465545898425764347978781833470991800097415906032561603312611709139230697302962531448457652710456055953018051559628943412110069722850700989655645035330844759533249047153821954212892824478913292487793562304615285181749751202360533994385293712137555061732593942031566344783977819383102718020623237287775047068424049562329387054556577237374304162715744466936208884993412254878423054272794009470641472945856241969480640042070124235823927523523783734561639093140080234860662973084276129739981216940428667845740532957024275660041523190799370798508490088653270048138792519384724255951932763210784877900831572584187543326759101279892427866556653111186989622925308275183018524935236743464401908730837597721056531637824524220377480439198286056456127468478150514613148171729787400690954868487960805137558366355523409366188706339563311571229246647765226506494593246598218312855315157176044651993798758342567452968230730839749349363682144314610389328133348045573517454691515954220912181306248250720509275117697327807953253044431506365687724197053983945284917192482381975237231201522803666513485399596426515194933229850589127369887316111975464402950288123820353997267608621610730352072594422193840360663900582822743627219549622379707948805224436291547645956485819344854941290320469917619570041623489858984800434512831296980732143491267365828278211801022100305390098648700871287045589734058187603327492257882614325944861175908724486901774354671654345995217288611596530615968019245997688049131640060474219498023698341905158168601843342107272348176430278764114553141816834100279871171807714932432211257625833106438051806490436172179701834592998341378687324756571926326186145949992422802300612138002851726200089789598009131810886255836626130311368957318082228340000393690119765520910989619344837978048989794659589842875101073306104353991461694292132328611286380460131841372643642795263969422154721629414040855384214074889676980756034829704064879174178105555564601041147469540828920323519424149832168549190190392549400883700559852709642503184903864327110450920098497931739644730686655218631756113877700431265457703826640254659502803864977565921975062675852274207808705136421239488354710768582237699287075751851493782583167616176089337404756960228986023508653280612564828245821028688068480495094491192764933530900746186356646241533331766874318608008786821204227381529443192148424601555978450399765817572841670474533922964380107839986100448542899361178166547692789401273797817671400680025323498957250545008376060047906706896238817051981827536626427360386602918260712158611947406054292420085522200253466427090743423831936825616788440318201845481676221095986542179416285723808466123007356275662003996947222944141719796608226296530802569005165923997797944114434856913218772915965062839874388574475065146286107623968526643462673745613626033070717439660292248388932807193171319811813223538347837281768837534963422680181465830413965230499711301349058398095505629898292909752132831629823224499706709609065677361333207753532757269009623457897913550886523307744304607509616184553694075573306135690837921098282174561927545716636003591065463805540472802412785194387534434887040017839735517696611983439207777139725001630768809948349201599626371936538743455889477228050427954440553231097809762904757489885842939992839938001878923289456991756288243296845441388371787266882829951083840071336530649637818986939524238318394490082378373272165821236106107899006327864974417946916365217168624820449530923711293416802713773818040720895632211333021590494067201806930038050683413648183222231637524124070407754249063819147014458599088147532017158450015435459224389626854303405203655837323259548203538916472212687382856489522355831601600546070663094412230789029290036222742714691944445732281500663000333633777507065330292711872784396284220102112331884594567181878948178981701846807555446570553103936699992130104924258790704328878461667607541868604417811481351100571311218370841364183951585595978124512223375950172022711222269645191834487284066649153591326804674055250102036779851772818015872201880605058668648046755952536230800651892240710786222924786437613563619124071508194471377581316934512525344713789560626776690453664627321050713013867638575987798786414255820838179670450035349882465120943130615549037143517054414622836951170105035894613973146154871362663181707473661076268142148526704633573958111904500581502252742385450610934690407123462656723168583688834281925028520373343279066952654274322532208061054214825890288202341368059175425190603681145732450289329705687332658921339585140956503590301137759527080306784451588556343717974161987317550337803559962160684189055201053981051240287267869904124304191180617559272552541683734730410008524572984244505689967970370356947967254496536615503448795546594762517485991628044352974207594759550015173056449856600827995623121256456406663796515364237273050125339333625169378137221666000433759393773020534422873870414196553508992168105791672543984217247076840049257974302665069063112220265094122891128436093669446257598259407580259622826406902010348234170360422706909908498630226015373317624878769680449473937796248948385507065751091714449067040501030023091143458253252685553417776698381034779330022951431904766456411177718812062369076276769865668197745509662961066926774881388923432859813766897688366456439134387663154202284962077143442202314339886021056718279496000255399530073458643130633833940904410299557080318691876317466504533501998439964672886033747283927638617511321682300927700922741814393832403542528590118410899771718835505831522572199593455271515473627362881537800646045393172511090509229639455285130634304497078651300100402852794349096270898972067187878031785523259962921917537652975692477227188766209543173474726561355012828441245744889903192563947565489304508253927378936527610926366510595383264900056733485856381179347252415588475351018919114910436757498225548149022827685487395639584328202070904032188288757074263361059762713940867379658861573075982030616977571059346572216600891872294393734390861218415204816536234455723649597671429548563153462318305554636277592952215602698511555985989727040973174285791338976763130871318712383190992086688824640082449827598139814421005405853850715861897995305638359736082822214672408168334933069642408940216833172311850358971861331465421206735953841211003160051778907533983466868786540771487816821154395368485049454113292114312629020616117697166096209919742483712002442462252675550937440760481369860095446941338814009339960109671979301818182935746110223741481874505240062748684515053972748447324681124831830191417854055830364938424801204475802979251642127828838288310090896298064465827949396955453595123579033652797941033471485889285370777438014495022081545360510224632471148834182511163379290939977602425209137819203281658721614911468931492501141626778672695337688281154303309680288553512128307204774478071149172032143206784358288073654269974125107289069892341895291266010559091438446020602046209668985892433708475830924561195646996211920063736530818298581655026853464198790624210874893284304930561693067527748540233030578208653041182904659866418141952452500037277431742048047820552859889072017203692454085062060335138735622667582286300294369867530792059286628702451574904420345263743031633834409488908979668267861337699357693549594467536243655106146992516888716158510443258320307455500309390733637900430259984287997709609312881433997737016195983502905870835041343812663487138957640516372119730224563602157909298352783249286204987468616942478784920407228217522601440545833461465545579622792566831035202462895808031596930176323785415567343491957509215157449285878605534623419171333999281266257344639277177420075739143145310952254455884896681698549426057693769009116314663010075121198709678924127845573775537026384724568250249458742065328622046214447362037860529491288694194351729507712633230583825466123233482260636966819334576118680987501903819805491264482183776748928631616322357270561449129179137083065724070083129556713496927844890947600106368047333689715865070751117152333524896750163654012186909109803052619698611833694599517436076488878191038642980485549132727263400964373940957726672890631671987994358168970144632215715022227348614750576389422514166306995781359811599949598440193430908009721563418097192320949904855658424735705975458740358704528727937571468019967443868902541326750317407619584818357816277336790770138925181209482054202648350078382985491501829366339292862397971632725391114152421860004417604412157471844381266788761624713302307226929765323705434946920989124065112076666068735766294903831416790037427391376851245951862965571175536357980116904158801473585327094353766032372201076990973111118216247247464816062408851174541134387495548117696478231690616942501457093345388347089846791338122240741857259124331805555989544661645902555149784664968893206683657317730291616094835902746161637068346392885354129723604695080902829418827282411471072872912605158656502140775517589313411810322373781482618564450739262850743945072944960034554213393041430888782902823366296184871726457924595717192360917838764341062154573222599599846424074083405794243289537946817136217414316199224777043036946357915480998344427560763064431191984754795294374520227042098083553724817473202612681652447528194106940190458335329231511431340386561719893857472849457142600593232477703631550537382158890459400461211599536201445841353287266193649178371811341405572775998543798497912623592023579030146643617684431507287582890555043385007144394849404618146248422205010319038413671884044135721469623222111666742074468900321821594010303647451389948798176784459464640081170482297001923170778258136316083829381915994700746595395757205470556191212870041725450901300944957757985508979404615836229394041495249752395897250988133079403915287437816758367583765768398925778000426619357276657632700785670374679279813476881634913110808722304892287743535629775555090625432808726447873211786431503564535111720181714658354119789710798249174185393973677227065964337795985757556060390399809063935115440603466683815530430788607615682766970062352291451044367370078645671342461047609724105848950509337602383566865815685165550551202877552238031569085568228929984334397699667262093443381312190905737623282184489751563959757429627092644215965270054804286220780383363288820486198046716290128297093145012160055158869614205806832180067901297814924135224800022943392542595256826754708056972741594964574237089891367275625551320304249190214235948386084286844802821571051578229339507983852464835843584466099942220394453742808509505843518279151483929501165748323157110613041805160384390785829227334950791805967842620635933825785834793536210906561236556129105310525580048682292333795645513739455572948886282037495686541147157581910280945219075945095872230991090770145974337197845424948816799572584598155376786588454504138679111234881221216543305558808357790825247070698917114986950713729291611560488899933406634908752268140984879305929583912057934129347862659175814635841788621861086578439340271238131339968270241405259447091365106398499640821428464689266581466426798582965974682929024053169356102595496125272029555876496019749069230235323396615750161049771532801851346067023065848358388055805203844750381635471223713881317613197425582134089237526728221207425930321549355671089931931655754983731565279976518007208861554910269398068333646933323967436611313848630186128326425171589071773326866747733128420349211861922010829342591740882477523725168863493819511034167846368923761471048485510316666016294250325486286114064127887384617395547374652873031028480932108288230880702379567640938773699245954997115159616701994443065153462377611828139138142602850444372491581133741312707279772084158676101163365883202902936386711278817773696224439872412519667676199869997405845006685186760040381041846979452300488520587041229186514562312724068444213536698793316697467499037161231642259368872567445554688850939342642664822258173813588401223588129914090187629907092171834667610076229767020432764395486340156312517443757274345174630369799478050703216409390438264205893945652014312287685424661566699019208656213402502080442406986124317901927206766901894255605823676836280108416787099239658988991038675425291317099347239041760855236219170837866098455078427383281811993419452216476243420932553602875136316093627045048311026909254267061710792783176998861515945535540294539126344927162385453984750989324852977586311144341818939940832040096785181150485997928628334362319831921931634514929400158367686044860322761554979466785424609763542409780494278828678367437774252442010290547852093254224698547031517609682579547492040299481958103577840346287651926568802965179472025376600119350703717097062684198592050042041397186939177708646063263585448391454235156457796252925625088177677300012669009750411532000060273136585105880284291820233010137160597855459840876299403457923537187279640837853375386099136084943706576395845697631374875171240958898813642782696707513846541041159473744207110103286305733214595020259577781076018354440927662080662880436674420676610086939272625490408758646918659400179402228417469923433781000097409885671980167012613405415491732178038112428287121258407130445090861702709677454693593344722224383264227306363083504756656989712745316796409166653758685752440330838512170105711195425448446311209378044996239147131864680801344622906058787387727514081812333497670356479345239110650997648263649179063269996116643784496244816476169299662450678735124064388901499953167883896523169852602400486615183940725083563155834873250378817147845187422173521684665439989009615031669719096091632896615894369629543019638971620481763878455532753619612106420731203747910434880371353533279704424196657051220504536507528893229938993302287645019630187431241267057414152020628711366760274991038177912576366247941223735026146928625897250770380004850196095786427841828550411403153125301418024446108435383189757838531469284169845707648092870351805014179939431915043123232955974651920316346860877500027776099798674296702794779061435852170642813396349139261661917847820581127357410099651371060056413556687537459640249065627944803572876311801089609939095586701086386789215569368719884346053668795415909229502924045045530287976639263260834161229849665890880076804640208632055288395041177055936528349953669798896144742919695646772995361874926432699578338905800333096403799634792896079072024894581748391118818205253204647973869263355415233906278825091314344133169971348151908471270027951608983510926435482181240329624604727898936137667124416531171525796743110990465799754619148903599235612618517005682114813791673082630504852321563362746294793785133526198404697779401605116242825109657612480787726280038065103697295741421728917371068255985977542289606800240927946820964717678447340699088559879432312452409001364224451395037357410913399969607643242600968930074509752588578341094855814608077343481341439484461105026813156164360443736322830931232221961437864390932304782336677602155996832935615597746295819813623308492131890035424768748706182886776404430604029764535525986104339769366067923911248892433977956790726019319923686414708650066284534336309590180580743799812032972833914300949952263672320707425048590228031818732446014983849458701755518034725742437178933401731983425734334988528910945100807335618058172461279483181286768985449262158894707151786489197712601282914931497893242527282535746869537832021543126273537064878798891637034654993505766009093910801267623870769452469814245661603216443796974628840037763742932334899951643900214797242137458275409268022833818071276309906362851586390065986382020296582502820993554112433594980809718389787782857546831829902433655003044530191755542043468281603589104971280755726684637887782938766278683117758562305979792384779741132859939220026072287593510121295679450583806497494030041310162476966302062346338002129525541390171049147297578533295644773146357419771529833880672285098726604880979225416232083075968853798380895665087860074925140570804408452236325210552258480575848688211990305006993323047714587938461214511578360245567007251343860488414531305514684098081162590531465869421756123002306060323067068929091043915956805437728903220401329281731978700492630811740087342505530316367760812385554677216924737616700401938476107220903548310363329578760636738649508640795527911641263627931054273048651958225769244290896868130642854931595517682918027736715062717013840571209288062822845741238665043085946866390141701522632146484498822079499055803692620015196262419125953833058720748194368073309398973362916061152716540901456162123199481612817614774588075449541109082142020118620942469716217539846070246166011510075617368471266073329140597800100694666154592872210549851525563781256267681819473750653490563147200429150365208967419647656827556317424067219704551878034184168368257962953981680539477146177727144654197356669193109050199862660961731678463597710670848956664598983928147981270503768333967591266671728446908587920064635500387856838385043593686358773074944097026718399110969641819812290079179779124520802517770165157237985644113822327343240358838170763457757009000169576290634626059126296216494365823063870521391979881786000782437956609712331138297037848035320225213257993560646220470364318331312786507836650755346669073127815188076458979653346259872146589579432325311288228944714357653641467771566955287561276400509076880382546895552994303476830074340589136185393001860603490342194420097320323274839128871599791338344052760432203357623624931253974390379169182662360019004632544843388032860295255617857566171631176308372901299142375904680518201532365033101116397806909392719631823151230183323550386852824967151178389822769203544452361407201711740551861052134884004644006582712024387940654982262391044903901391888680389614203307044117903844153108795698855858093434806604456829192971386562565684005670920868690339700787355857746651676216713702990810123593042820953621374276819381553520144155699041245589164417119838612814343837367491515894556620657825455637240760817167582265504660322928246721593005762289354324014052553307007613506210148136723074698534356578190751707749424729566729256380841868197255097019099004514585231000160958368941517891559995047383036560747794615978071709850829235437069185212345701054232941679869462230148420859202410897535351199736382267411021186247309003598642420898862007616615280767558909865193839381381086625481774215929284102163931309942010242317768352722880243559164745009604153746427162851012884922794217364001558873265179514486280750119704002997056937762157501071576714492161574989928988626697623280204625565469212698246238114767138845001900655181307639347513936689160470565731581742610511597075375652531937008990803119640715758608671724695198071007273544085453336333143449260415131246445243760490927394375357636765369561836152906680283431808676566807890193584325499992621307001511623991772895250579924964921451196793377654442721552962285003875467276403367021739759706573539281129311274109607852186404826802557609109768694474580314279567523878182795878707272448655586946274711434020992415135627355575633935436341821424326796902349752711093913756309675066397245110735360508319548357762553518689081667090281321233170387324237634204130360375934416345583713270026053230086811084101329195775580715250455093969854004596645964622783201380541679526285903518177113571860741382449185332951014725293602606467005156742258972561747610310283347547675146403795257703804668433569838223121437080047031770301651495846896203590927733433378121725048682867873829501299741871144051871911544169665093485540033735845046378184534266926905813594419549421475360411799751634501495299789818577262932961203383049056119410026707666430727698165941028799951057519784037604080122210891656467637372026293122190638314028681165077731847030505948051686829707072384824944251468673263966279825701217939733752433964345527448631846043044779751483469538715463154714762807254503304217481019652376055069728676010583886005263066909899786803680745784160163581001961191293333526619324503879772589079328063474507062286390574012492388144089193102973143775070798377079933283655668463588870185445250053885527691179299329205808706762883808666375447507076639580688693877852174972384839298211098406309833276676123428700783386513491226378631931617284515201724388040448292651951985910349194935567415996023852549292280396003290081218929986821223898866761314429078694922408074356912325087323174218334641813281562429054526610488845945410774551447119058599909699771073992632120350123971066263333958928837317348429402853787403213226583333602829408061044396953327992833272011158590737716771324229277860403093120184278429339255519884114609067998629154508517833735647351366005388658763843898972449026027246909348510784370418704346379466800609205760491445928253505696834920438571209795988692152946147393065697963396880676651237904880194997358751576958098310364981902591236098090339049051133646215966666733966981212131626581248635857273742480746492837808108080739598179980026061402512553635128448972409883363024255398180977983110714287196243246368171419296271386623722626450203637074934685548612341272751663903258884353717140813606800352053379757259092261049530683702792652101309601894838857198367015849528223361621876873658776721499144651027838156145403455941934299737874611051465321728629678150638850727382388736712002790088864400117254583583852576026725224195875324517199310432044759460956670590267399927790916631565910089031120997944377621758194784468731482853557464329728164075196862454624490616961113049252434500872237852370561185808489847965494414703816404150384151967487248930480372676060121780575248279688342006011085474327582604346705272451154554751925846157539667070784842479778669300317433398965365984202542514647731607459867073656956554530501899505193596455312462437913675590324124964075309248560313318914037838946132445482452464499956130009596495821345702968046482619661504848220795066080169845880134475059020962401091372975754415275607781390740656674376897917981344130017939080917624651529101279845290995964570693059244301740529950090400326895014132543309084345249409228480797032124569556655886550217397909437135104146306936889691671318709421083888918841876529301333079561287939363526350119780203905447242346851697252792088195220013568359763376104871528432066554704389170305589374184329556511008740624010878438377993782839697103941540410177681295084281836391277226458223753156513382665167045442758539806634399203266757714617918943871397098428991984814740631590702614745049670283981585624746445012739977297451291091680916098104571695551282373455211609166144005584559100716465845240765361509532897384934919749301992352843637870790687151552048860516971146877564131333994981699930457191811589432050588893985166388262012338296821160106468881564460942327276519206954041092963070782360987202877153656194799065361002294394926007019588918191882674190137013207789673886747386867797164129951018217444256590003967562141966823295429378196245488027385990071891044607323617695300355582171393217296755804770934773999503124088468048627992889067686706526112652374723962455727743417505828520598593795206782105845870922329811774742148064980866367715537771607397999376784480415864068212279000461695124442132943153158628183842114656780063557990716802253347768525744044365992183425714923978756310222125308321647106373634870580878340688873402638133833172506606219171081087284620622150637864434512564621657254686388378547330001227699438233417510836078556377795606381684196703253082995971036395325486142771781058281696719569265997651166556508235969554030460786673003061711491288669988860353233478910696202598499821641591167591306143667314959066521423401462412786835578607893827413781492080421861023314589723888802203522070443376900765945470078879845405725671535060508983701202612424463740740425324165633389815160745965501251435766129411342660358901555883438390572028470679477344184577033839906759998269687480987410038767856200050998358875553984171859625336481298211245572449404794138921780589368595987695397711579576169209543426591973680486050016694953465036227963190606466727421410517460806861549546456039291919494936073904235802658559148393791012391096372588424809496100181847201065765865268907727266869665752348115719229833736565360880747753997071956441147542838948000550872470432661335348171638176849028258645024717479901692253819178177796246608991392290127987008525683511931836529123359047518898899891921527091132713653429141489643376706666639921825303295916186232223802770557532963762468454314412750333050139596604585944922392178638598465135305348684059349342244486217791965147758382108075150918283581542386582641126276328132709905578784455604565219138082338576266873817005098081927444618073586282609592857560816558820782325115288979208560668093144392685422147469848074387035140274759609766236873281659323209737900721758889397483358149365290763713441732867638689331858470978831308192830065088965122202928069927755471113318665410772680055937673630608825004549591503789152276748508371514508571114237185177606292361336251667152932455991225600310316986413011221375681917143072900070258243604941112527504149175532993826611645210432801064428074634545774027323417613766151371562756279784108189530529249614784393721400951926285586185948189632406150572064282769858684707051735979092690916949505730641476473289411849031192143942620530408571752936292596017184157634880148665577591271833824618562763964200411600407935061823264362176152052104270759974211381789278865489227519620816526283975215470480185425899727189383051763901971758148038600478496829181932469179718097666315926207454701369383896827509530650028814919166439711105167213371695905413581108687618494915098771360187773348479316646883535756531058191068819609824536752796646750692077988029972535758857728735930543750793052469521991843956935498823594639891142389781993806473213762879348455227237343597836168135749844894851029422246862646751756277415339276610054150202481788379975062006166475956403305738770902383683154475770995809245429660007959047056782642410492160551197862126848363192354573592922458994995452574877220545025431628986487491324876660242394469108931303199932880484073782349609562861764011186482029795208101366281924579631444873811042938396659327102164580528447440174474279143748638617178377514130248646966030041899140971856497817547433065040490378520665431640501638505669888527727506942739723459810421354349218316666011685324269045958501431789921935496206159715944610299457297958559159712142577057283286172519195650938164542699353306360022163795773412022191262377962731006856895073111332904649907667611444766110351843687732327173328847352632696797550224404382130670993283877212539569831935419099258602807836612022104896181995548087426371392950088823816393354371876520545488897364305494386803077543583525542244773318772157090178855180370938790816257281022028851606750596597634769934886259916897063323682396954857347532880057227800176149058212081903753813126161195620071233241494479213733324622119972469753094138319229348329098991378768139290354510872904079522932046822501707161529772909284355348546792313403431124612813513782463677698426445315627061251998333030577640954874259784230472137679190866843297459840199452368647027070691586263238242757476678857249963766750919909158867174384504813592610736077702189116537086581797726441283064407981986456130381646491280254886020841351296696350876000606248145989462773363501465102554239652339798257668044429896169584023208551520151803555606172542331621418969107803860562506005768175324848195050366285957796891440681500493030710885751892845735801735174951034898299664652741673394105576498393594182073013900296922773846715913390307539832419940436994278378991862359547895801784838415782408059271465593615702808799093824190719117566497453745669852594070402130882270619527989763093325900424366335235989765351518672012344336820596337729921043972358926183226732401580090266182411496412579213999214677075143047320962123334787165593732764397094349675274657839360236613518715597041795766219885055800903476030986325721443197216986958100714964953684919274733274478164098780531735484114899379234580347659495937722030956241956896657397659264172052121410089929043663299404168085201837576889473757573322469524959707403912581517193658143094260222166516795148691835260320442942692589359301998404209730342783448019131891678869535219345040706597363628070875685251322738438202525316633435679798026719597421565275012773894318979509644849696631349004086177371302893553762751144168361632127900789048085515044435099575297061844091536101567160035319786167880326313690140427549212059845861757380960745282842859682362003983948505770261665597644634501452227729289355702654832865865595661165346362606246889779549762268003485037933967202069170006830606706475956300684235197366803575287467388027634109167411323607357235482496871582030149110453385451884816653698080365694486339447961055063560817873873038147796185786968531073584695792518547229116243436936757541553491291377496003215258380875139677929023056129297754806974403751970513986240156329977023509038250025103998006755458009708234830902292769927690286086382366995352105318154918906102130121502423452316069045502863212627000060670564678579236793434563221591383288328695004860266791499805941128809768794936413667563787219936301925791730527010628573828635974766017073906060612860249061852552905035519547498719955930845434475225049785813898671739513243392703936646919252373480521674297347819240513152937544125833989496390960448205691146221534153960337178081048733902695248783978677702131620742358995681840956949314109038165557246913669605717810690577739798320426381712565620701527649038507675461093104972542043520074349217292059221104612276271514940873264397603780247085112902468088721984256340091187592033157909590468430955727682825890843852605441349127947892761440835503393418855456282899344799433804613617422531036478574367880099070134348062877476640611811827422561183045629220515033086794936308119523923430103302298946451839349098094954402363375414643707931161206931530727339306255006196106609774066317955399591204504876116653036845487174900562671984049738719481484345746801837445556454027634211778819525443818845816839864446628711229551595588486768215487303487187657324652722626375981650851558487389231583456776912151145647178821195153854509440472703840138728642963100721844230214746488781506397464344253572829419433526077074161575545368146266621371270705298563675509712739494045008707351792952231619453054047793968274329872769290007670979595305238948735389442741293865631883583417808464676228348864800519424413447455106824573324092228479538421774169364604129243988811242872771904692190499475487479481647148144918161113051692223249831618517388200343167111949436039609217692356616178326565515838550246704166472809938344528886687008361447319962168848793794467079562444637200571294623087167467442727293958905066652700574857830760819287205960660101634052929289594243163935208643999716473661524374403563578267226241019776728075963159519644605356755691058940801160442883855240684821833762811751202803682459693308857018272810976961032261915785819430938522240198017393830577763317157354019083586354568890354902460098266051132830990797364395454658420125728598375276206846817067708909962295623720726136457465139823434284967832696904312503661505972243386719828232764020423046648089874040709094866341759705522461556036737460309571967554401114495623118967902142994335597186405552127481991523554951707035494048183298811799567803797846917163273637745000508849050003556951445319042387164326389642899977386366791466981453700495126781853709799738378257097327988507552533272094278825517865434641285918936801851426150958104696233582991651597114158669765313311236752429306697044165662740394806549164677884537174973286303783584134822085441336033498558013782076761779923028203780487171165822741141640986710719446273794721161588033834111969453372562856510714345895966775088039522528415397551356625668658514590580597053041161865468919649423869830326482251574732050030115554993851151517499527339185230111468128192799476663398753988925286925672728623530388571485080919585412664669702005769196933189372226522003442007418251695422415970117361629967616338118012729407628808273690724783520564237584260122060552455293655498841219020469567083149803013696038313331906924661904407700352013001850927314184103690839013219448903912337945095103185509260897327912460856059440599534459825713267525008479316965351937091645073683019819016600255078600052134754605056381075676764914345089226688171387233521001023413762836946959749685848497602918933209143876305253883881359627824622099282037235461658085441065243976019593435616201881390579345890491722467013806296510744422845690272725916281695444477880892708187756033127490516435206689194720091942406050001210331184463332767527438376162884803741400300026447319161490234759629959830792554643666036079302832242837817826854782904191692655685290851409387933370708481938596779818072627543996300510375909891033798008716272705655329182711407829223044034765562424854057681128852128264228217828183724308688725499619758912331399879444013894827339558193374880932460235271105902664278946660937252441463127957756887538253974979958165553389398304983279171227301285295643075267142025783613278727089406241758854700410961023018153886752586660353650962548728323579893101387884126907409603550612855399134166392726437935333490887948292559754868542422455618579645638434752231477865748788887819767664671452076393547174550180152974843196719089547279499640436480005217468779090567344203206052321390444370546009218530316724492900663147108400977253280154068140304378577167113074126394909561659473616883444053425310406361925725954112425975919106326976286493632910579732795414239877753416481060464979513967160961175859437515960043169306480498609077832350854439745862149198837260266021614805888678906689806370562697313528058241955068817070791605047609340115150822892552881184952026224755830443055748004644501373323985610598981219837142845495380020270060845368982669458607449794100894198563713803100140256918525738763512929340979671036006820737430212333846040059570285521001379882831823141950877670030328736065597250267379519964826676885829538045388176998221068730959826044502340614282857606829351454859790840824971630805530543876591527806386715374368154963887681783792241433620202238572807867298110565669162900555862057704541655430693048820897065045431804964097556809668415970745659210071477418109202436914132708991861077509971541268934819069961524316885997216162781899353694753332037796963483915692814292021527900733885276862780226478069703108011412559757326428885257685177660698456827668581596198930933972128641927060160732625338169207171925768901267789872303448028641811203220737282481540249020705643629035875252176840118658961604005187471336974588835670676414028840359765913083287934012108394143440809330502164369857030349489457585981267946307035542522129756464207986130418621462811630044600949477767503031525436219826364856730871626659684277670653608698654494227861216902479147508166229497321204750215133694319703917316882710286375895928429577691655201963550241391985081061491202849304649625766925610507755037667818614899608810537213650043515484525885645110437662363204552008321476346949145684408642023197893679848905528107480539933100910859521530120578084408542598284823387538101250137137663692117443196366436690323275215374239085304036508486925704298682528864821821468798436627830294156015621687932406386470138012804330414275942521368259361876834737269681798172411277920823770493037734080162574720416348926745445199894709948063330484867490576839810862359487912922597648409489489901015953257179855592637160521426475023862008174693474617445838836488080606045110533535836447431022510137541209436336641273527362826295336735595150906813910112065176564769764538922160753575093879914117804879121057361273558714115173166848066210461324427670884298172973689011456860781936190109252818996260923514970543315026194519163114465629959354690275529990979572996202614832931840641212165123381303197369679289462301855576121260678974098777497898591573008844996706229250109264500878507723179846588465178687730001127792028491435144011582508417031078445032710866355966981319622678921661441231826664648668193275658432251751660001153399423128161994341153020880805261674624124179057436131224947422408140939899336759654008239804330117797219576222716199452207337108687558821455513002998852331112901502592085166052596203706125578097851089080547598146995219687665083996782355873891957208511049640292941624774926368742043984134587906837723125530453935457276973030916690936911450493341266314558454528494031120284402713707718732045468363529598450964639524314465987022434007273883483569171286883897819724250654611477752574313913819937879425759173273708297296207568330156967849485003210091396504322243584454645180260499021727477520071624305233340983592106418218969636387661223254463378748687884597626822003707743377489492084308606895863734459578874773530737891788773597205189380129619258956960942229141072903612940028328459844581701086906095080033520000717968102918514892812068578761643604243465936128617012704862841862647777004412820410656704793378857481109898023453873574881953252323593372051570007432111769118914402359830251071506595321321309399522292697331773492804256906672921555247337117960656695083654013375111196722146746153861186007083704305431783236574789657987609380453411909600844480120629181262370342125435331167500234677288550208623248316328136344628066027082698517445265086921725316154486835304089735714735415369128178411300137373275329922881212921180420094357133000337700954316277656829689999625291033299482636961705185339573448347435896470856827184425674260883247924266409123630205954924975210227972154832705013826445685650027736139138694339082467342084568772645721020420919483014041192180115310206353202424292743550884986563191696080201655134325983609316371636307060108359009380412546797471641482055632582497121098737578187199193926174532398297310267581304105058050335547464144111263444969390223175225777134907416692746576816797335549730292253960640120887731331225119470710855342970478681891908009882659752242368947381328275869199753658217849964878835793673459265024649948246175625973744815291936357519868345897790088883796607117585269850349638604162386983737770339573302071127925344815853070259363111761200693108764488095339903677460616797221193396198867431327715037287495025341046381871362880982655593992669908181039356119034653166927931374043706016082556371187088513710960542710019275117539939810508125064423876295674937382593489798396602492613429865881462045739689121656602501458730799273233738886835790567239840395936859789582197074948909388488583387753677930903097576395326331096942277913672595664625141654806922710536101329143364660199540229123609454549455490250201024887711865497293897317629123027648841646721863230766204366408015821416860580999421706252118227291739434783372420932977839137914619069720381006439866304058925853757658888328865032719603734257128029405814002961253742497670808164836508535436192010183560572958637120181927967243974275393079696652111452078061583811056123478568717487529002722839071548823956025039867426317243375041488107049344557623020830708334585975078917602297278706835367596411020035142794789256950625259413731309633556719637273123357093816450408541396919600697921669661332720245133370903057887507685947897201016719112603754857001835035119104401644702785187627435957636383077920451661771343227091667241987196360935564826146394677184397853328195939689597623276808568006279882681387328897569241781250057336736219146238490167805625109200909359564514280368812410122124490651453247757812405064687836720580090827104969119319531523440569582537006446649888709758451343867866885983337565534086747768175257472358441144640620941290011928265687289587444013086583104811789615846548107974599991651175869074025022520245411779266898796536111794086826458818989178636370392057619019096826655802774558611327776087993201550522429180020880401979067311795462075248048799646142780505117063029491256846939761220072466874785006827224756507668847613060884802541703856117929397556842775104050862275590518482022583512664858039323007703833844339792411058761096522203129447515804739073654404133324383102148815751457311091570245925018859693015622712113719204860219489947499565288825059321159014305090509375571918763377365883094233970986857314870756594962086216501543510216078952462120727680383461336014434364343155198560702734307210581257016273139179253868950812499044402275370002861514678748475873180841211574731263856602266222176002939050362786445851952863468210778068315629256172665670682321308112289069688583220351254827247555246694466840944636320949579902237604003264951582161171366063161117146208735897774390162557973921472461119123522315234660110421129105193035464906259238126401005216059197648848325181747569825234140089549455402496501536469844890002362410319160535926634038147839481743416592053673964202626269678743932914623160646547253416428879702491712114360239240951839354175286919207470136609999141511820973725911052032621929317306867430020462476821164968039619721091748355720070035453934340159176228288077229167347331586739357405572649371953268562881026860661961877471121391910757537536029531643122434606928011852574938654808224605916750891039136630119870461924687639097011327807192925519015733460320437165168374593425014540858867688478673101184034144816956669068940044336451940603062036172436582532052431230030431562674232678773316323683768624774801616100356721678127098487203684501677262397730967972724221986223123084132478445383911170238547683901925241096259802874569368158803353777481523734723286081043232124207335867195668683160587564693952470647207992919217363467429378071919262339610056367392629037558658703995511583192714238372778388901881833233425461528764839693417326284076605516976787751682139076925109935820215668787809951658583111082483485488983694955998278428130068765435719804716411724410104642140828615622581585180909196290321945204032690403630057426985818862777048964520814587722065013180220042985689637878132905763222823903419780930760211256357478754949763344893822437122137259193719328662149756217891176791560958493512136396497256950525524630522949489797193376602499799673882717369874114893104983956710063446478622894242659901572633363448144983754444674077065696318036025244975131159772039951845098934180856498209616769522843009192936693361160591666049438464270844767754700194649068706439882122654810283131019051822068836935536165976639274977224109397075797207526149116861991061770290236222149955552591811785547008910562408702631666591316060600522841794504193997366736646900231059075255084284513785585486092233278768899488359330824351180560200706010749167292279195494517411447104461982688685122344619916592932231858204702743303691490402009993633647164251557533721116474332015403871687503047289865770915021215966903866628342810338837304864471186510627079598215074454490597862244122921391286259694933915619946114854447701142505197165859392669792931561085528187658685247694073698684378856252170769478346132500658497761076020671301788741701068700010273332615618086563841089103541085478452148281287894186468476995053281033163572339903675635789119924456730786936768435531602450434770739939931474533242173608028566309368453913090810835703628782433484621340289348345572195224983039516130870127475741851106588368479118005990171485738888246704992249589962706728777398963776918389365798955475875379452368101142728824557619975412434165025491368342812928259660722948935131141406051919285533253534425124887148008744441341663612905505275868046321171254983629244101173261228163092108270997338931447995728371845509036216147110018119675667978128498563853140277495924233072655300587668187566040468040500470499862570084992750667931877134862551219017686831375231477214901316672795346620868604057864638414679751521213246576693167634286527377778587820774043155841478949678995374655428969853608959624270639862201590210203791528922295248995854525737614834950440408924267960973320843164159690038922416997595752161110098271782265711976188316498042889396244229322508347007348384061354848145719084754972717539146359112696283830472412460501003327030566749294785612967633248850301525181567596673416342930707325524937689938463941329237224042643974018946648176501180523508019223873775294831693477281747927711733379912862847972189997831698865738999826349773627495500794876765202047941464874653051848968632559726728689882110745627961248845011362034561395936474960250112110150169693002587438075871225373884428812999708107570076332811813836384566926357380020096738684489082327343348744108084486585819955326546113242329581295303129795429813275252451054149947076115831881591843055188857690328966810922462390652699548375093313851354252783619310655807397535326804607321170349770664598686046461701712166707456063277543064450601418113002561533714884457482189676733047583641445633716150927606348811889776321702056498129330621486618573319207974596577174662415468217272598659989068093328999289328765088847719953355854251225172822816859350883291693979677061398552743569843159514887611546809470416307396512653349895144736645282411543868287910715258068588173312876484364663162010442184209894675656625181260983754520365876486063530783160119880264211123357698384059411292376490944987449868912579523785019488223869905876821863524290370157333123757972075530436164180568918751906723332434026627512111621550184596986033290190442807724072643313141176963220183840240598392008352288341923867392755519474152360510723029462566674731502611989250344214845599109896413497442230800908660664785930526622695396788857781961575733263177852084352347825741774305378099941598996274725665348467200299509669984235497807969976318907351326836389126618160087795708026291392126203144101390365980477857702714738244472724096493526782004474536971615475178388503164085357083215028004175306018028142749259884180268554585496243658539230469602365819740657650711495451310941064949499793721264934232652738585643384103916458984604517740777362849558785719126076715088566309823583939166509306135699514943041514024390558683237660821847331033779432746541247437181372353045561342117415509062135125420994894033054008497339155803435997801417536088010471243596330736768256017849911840251201278098967577775789647548980097673288455298099581644100675679566701271177408431650293301239274411376613160803931065136382713228122161797871124825084555876198767385177584848868693598247020055422819408432970895533303872926325956037693222763954236490344813827337447231695678432182717400374056581262485166290044746926965302384635361202213384847940449531934483282567174678898422541344829576925551996407566571946632457577740177042467875055273552976601242964299846374901880258725691267106500436821980217380679775314141363168792957674391725078740607648260058559588155997753466652187269337748889637523899165729757724346861573080466259756019266527147344230861847571166267231443717414149338861492661704233787839374815609581542040071176578431698214069217945395451025678226807420359144938376687090587144286620223850149684580355179538274789978132906111604648546888071868971421948371648999375996744023845862592301749018868256112860225098839034645265983894176014078320607697064980318106569659339755155290435687862024034799997709605780511670558972251911835031775431081239424432276240835245913996919927762802657176622558786949541300263962194321394928061637400438183653157364778970063275864702050658806446910280996224378721881430443755382175103926211947222553511830324833351661574261585569303440571072286747638312749554021349358678743244204512548034660456495151942535956668084234837007351055083757422210827430153997699042059305212749158421358495098801722188559861609695444424626969302785968973362312266091586456762423169858795495032732191190644677827828133072952403948496386275641612745777808158347678572043033369699428356992002659063185770883019653546527715749749603724470887671715188510379632189194319890154462107173950486332449936106445429040759152929531873822217516363519268362193797232816188067649115418572919968634517187443831774810872831391905670120828532206088409916492678087271002819766682858821170923988309914490912482766545485562301347257351001561722786916260173035915248943183738771858523044362312069817575847586504729043367429313154016451007503884217838106416655469348792236938654398136610486328451536114920646581877090797877042542434458098560273568261409695664502259079171969420863583571042536574104826899874592054864841500177862159600578009392930812956879438785469661178896344803590832717082461543930708659552324446288734689907620927647420777375861539088932285026622881959114896169525603227828810601918781095356961240724154018252211062255639047689177547295812616077942260415323169975436452052216878961403015606755446015590332220019343297769132137009698371273985749762547130945069698740471793533197565908515825321843651767119991804409445108837682494734067947834310676456796581576606145996851574356719537199602612299399294246308360937332414806829394034988799161693241213020490792815021878175256365248516639975179102509454636674144192774821085143279941913283864484180065887196192346220917465090007381631174877158457010983173505498231016180561544918973123628582222340207964244124607914945324134869849601245254728966368954462291187148618088982482959264196726598416154172748365865284581490253212964152989058778119999211304443201081463567750503403327276421155191899643389789909268909034613078402176272268978454818222835727638439470204430313793490630117357175778692737078298163202890277276210504719052424765795802333840173842449451975454463431176293786970234605976675602608316027449061936694656890909711174096435368745828142621571083694531649350691963694985164372860162598849462628502929901645281791565705997673421064896589308023189954394709003330403649470773660798749272329982479790296778470193227085727553649991712353701078486131838677492313139800994837285489953443866183142709060314095876539184248052759277467084987689664665337828086825164875803514858340775119523154359451212934205645705095303157154569567241660554516334804544519421179736364308173543779469736045465043371470066732022578139423130151957926154208864711314619076823256957751232857231524933809314724017794567913099303338699700382618382558095465321737087957178095145915557783382302981527496133728656078586820073467438797705668877173660478062457921153641671608602699951283680794215474260782425590271850626951455795905528468595109921148829829057577327747365266828272822902158133054334543717964490691324103432573144924047027098546896431951949263212312915531868775950148236996397065986846860511468355639915928769992633928749324369084133658534077434372953174457867683128619114530598642295220624883736973007102570231642003848903506166052690344556449316884115623405367958668607051921081996210458561935692547654853311417510381925468936389767126740518406016895523381774624414837981175104260749016677284644013013822434823655704828835861954915650622688941927698188713057883287003383624834605562425478733866182553807843515407435350503075701025613654980381025203111069145970410211874153308326742255581696887630438054966604073818813461583663797638225455730734170117835469530017396088338595844163210847908897997077465599394891913917354422388935477085134303998411862604454969687644763361830328726616324626017730494014102272366998503009679519497890102912782165487496078283965443875038129727749468353686959966583752711866246478296821482508406102756534378684848759439310507861112358267157213053811418891595707255339599441832189602264381641790401840815217278146666297241214171628725730532982021007932121022317361178956611509835452686833306312674545372446374348497117084889030617611472070837281847222246107999851388415416201528636786502864750509947807602644017086035524051566209946517458080086159000633740162463883390030289549555349199544541521130345410801109006130785109878096458020489471625608622601875164983932199882721249985704482236720832455690636897670858527674145316775666894151807372394360386510349852369470757117811568957474666918281745711219502195121972168153304485572273858068138904215413449393687940276414164354542491035831021828345030180183163468619448251175079503339825146636824986029061914643400621667867849864314124238100700218712891764605141139972523977979200056664045209471215193030104710374003805417152240135403576859244267732428413082047238428084686151530603147362576129628486214343188516476469631569512854901551928600067163100537846885044510241376164919809094991341001320896675043990233718538319759540430345820757129641929471228348402741670001308336402194699498581903317383474538192425825841917724508665255347124725832247905730016011289931466369227238157152364565447963672113112604965712797383987584209979880899812205300313849661985306235245411826728216769554217183455015501442816413822789652174307116748814797055342480401920206759043100051544873696850226536227404998308875602050717435419811873037599646495655177416209897167024236234135906042826702015578458494733613256326500493510812737384364369990988524063480550063354796886778590330622736782797113182487420374920843085310721631063719553069869084177422498800542005050226929818063555348401514528511567870495608470403938783039579867346954691175417364357440883151989165026604061199737911248080667773914106581628858193887612840723947528142785214750789429880589162873848234312673943144008063937719815176829228468995624216846762184262167064069147028493963395353188609491386922540024414940278002374416369251896623832566138122010683046903663776511519866394771889057000604203959802519717925794236196640990908077883149117405584198999225095253058734840864424296169268278464169855960893009901742009838541640362917647986541923851467703693251108510188342268319846703187859282074133917896850937803514522383478340086952130600469104765839277972538113368484215877512968526789425100855602805523185463174175962334328634499233121425127763650128490821759957038576323096458871214567967142621381180345229015246447322539917333291115352928213737763139635275403831861025284061023598497038612370134336319221735658750440316655982789130726135372939303080984664401561772047165640126005260171392100235156818428427270685438042678989783933520850307883267959408372909393433567284061789672962689808364747465011468607266403153850292427539993768047198737632315942367710163180684496949636243745050850024541007609117847994411457971015723240088362609068353267287580547584164993475408964443973046150317815290763394614749812610593706436765543706468030768305064536477722677232441587310354195293494606613061738055123208112359648542627575246169917442521523527857062870200522433303849089581240112383911276890986266031249409901644556625249606781845658113375822114710039538736724680983120908081629239271625925052653427947751049608647143883437975220016976680522927577347459374293868307854846661863568695852138738082315212760169318698855685556259382890082189911789509315195938052954059107166109383761252846431979381775673739702342079462095428231999105738831898030490863304613385691301690903788700708388357657461287643463163965183358847289741501207819927298515690244940598390830951160671137891374131440323923137166265966816286256584854475512414403211888020899926662464038350616712289373834854136140131539639647134557992149993739143074290332612321200474709308754607510612930109398183017068001477113713203996539629143658097727626735783728838340620789717525692464919336653165070726851687191723562192073749168204264912184997314800554978588809095874589511141556299084270685027149264833189345071536292768696233065088190255992730189666553894227449431097064355870650902587585038872866601256388398362899758372645076020695026461393885136438897107875289777984998287756260273182906448487649610062310397730746491425659345374262818657839418960107991014168962546007201759391348902656979208948902617428391090376276694730940833119140556462802905507792161069127778148199843143555331337580802072602072272050850919323234164826440435461852950285534984197226570859797355092837288620390026625518002080477613775886822544114939447411131632430858734900824282017433099579996970713156864194047337626388774407200826203441867906342510347442670865915207982624389015633149730227079461837200489743168438946866248173044377533102970445647586897967334462359922415148744442536245253718413040947115869396538187656060235847665032452033350037769724310278669402734679110572483161559461046892061368317951587660385795808139729426267246112443270387816059231397829235897506454260707069305956551727495516259479658245671861613182218885942879214817608905715102329540519128475450083973971682310703754022385116426551925582058576094928391125495947663503568373239208008915954931653875862618904350238804472713451014571377013078439316931626392816068351358140930426417234457380826375737325789958093601365397310452372181222762971398440948077132331634236100748509688771547366713499700059710397450923317469324762701658583979200084374202190638888639880336457876345073714681363461440670496457117111092442516018040094612458500783392245108754288664937368275142350879511535944621984023803363723737176355758087744987670912762011724617853388639438069624389139108684158216928172048772627878570921117771694825681005125468728034340687516165202234224701617403354757514996237294036344410517657498000084718106390213911802282765199483646649983376349491913057518924934258608432461875218186169416495057112573277752073047845709034216208235452108376822603872849455172357422409938402058935544720789807875038747108261425359504117020028288980705990956679239524655216952437940401126642216975719812817352641432736504154562700109095607568434765784000378936937793632201189126025797175071515446108114520901553284011755832422690123541028707077773857765655719133675362364820999098021322449160101121481893998182784077824380928725574819705743469415387294558789981370111113148625051100302087774048528723298784620553728759069267646518203130536334791376156447769479397890043163409793402500963644694222589015076957012170230169592529747861887899184234082206258099697416395544869661612207484492782205573813334255259230362549762038159004959837647908238970037240460141668325819731667607228330354376552582773924893903143799845061928030405414468527964391341145636645027084713749372973949923618156656012833235141352583386537127480430790013236994803462144299276969309277795244113159714524994600771409673253967266582226699514831496603137315682458397329207383080679841648516645139926193696126239246752256628556955892382113384642773373656497963238732395485358800472266370436369625128738946775675966235109529696133358788864536029012177230717998895491300727851464495207081173231663315262504363583335240818459153278586394706654529762372934466131889039694545489568697175081468725745836179161944161121101152173880066941555664007396727181509561412749595003285525365493993916548112711298888031464725105627172478550207927143350502700229053469350236993098327915062741359731465976882808015403612588409098089950374287793302608274651873121002987064359514239375820263274856287928000152469509449580694898326172606090156898887887394638014922506562081659831730022878800467097345523884588438574348054003393954476001242932164537264498083743327413474780658484655816245645759938512101530524810889433079738978526261192195100934821730836517055977281471830247250970542188022787866253494554959220573909789552554145815568639674967967142334501049177837565134159380549859798929570209118674538779577979714064986033943149572200040679384907131253040359521865799780826377879345588605555509608903950871302509522679926260069346085656298282407997301330271371741617078025427018349723000951055667476944216110541540488964854188798362418661483199591928116880171960759981854219817223809984205143102274208461724812186194045509791401139845223306398499089636030426266565001302036224671593134703118547937274724231254812315691594101838158510082670613604775684090845983703612280944212348699348639178466621100577611467923658304495414309195910593785570721267107234194670608376488608187410011704908600821192634687186791788062316377638342675048763303999579274779251400047165951568089800170366837271847853280049368620063936178858347880333502701787899395620874987909649576387092291007874438065395662479617506452692894014885060883781320019675096011994472981572579131656937016176124224539405379561451392140801607574926006340427584988097103646278996475412533375381321203801948136978385721478332125987324032532643538491668813223030368517636769796030656083550240056072072580785635249634297244635815022909571770684704753676844142640175590399413312618381305181670609722325794790346484530332717910878371312020094890395757748556189493274710779097812365897574383031925917356955427359314996993072864589829459144075927878462754247507863238622207089072498259275133739143109311629883065725803423612216889342994231472309395195217764772165572617777498796283542041475952390361564120853491122713147300710046608903090950565873741788310699404070909912907558610486532633770204813218874618283604167735611232405612877992089862750612722064637763358532426066220807757465338493432355917237682885624834833085050933790248880415976667857539362722944597760663063582153539172792915694690758081687067626944673732042733442474496514845883924848243388611214099087560893567387781273261155979666626357983011140597002621816827188853661749412070541638806001681546373086798885090816841095904128258426271026330671687673531068364159026083147770552170871837508790777591445490106689108890613428047885957379202100060031607360220313821498783340074843536101004708978212781308183592629186979110779254097869270431790009185390945917292924339399322203755921191116268300979528022208801571040923279080120472645579608036760927358236161215792403223576030313453373351003418433780471647584768361522703303405875324521701959435465274471747814741525271546707912572560937207715380398009775588203772593299180582258369601499145194176270820882673984353838884000713855327531246500868531764948715432809857056680672827415163115831833432793577155969291003507459500957778593063370529475389290145119441706638090123151897003648067528340218072620442920932485863707078805297848304691325574330145496225145874592099102438376874452850268782545683025716719288164090268570113418061548773593948674167459008215611534643959690572062200276998434177795224735209057693405245931778224365531522539990138993363180405613238320404787721596574092236849052711581901484188488295293395466254761174004741927928597688386632649978485772647815386672068424215268207796435674453142331642115392770415832269414743974622486186696480220332891015197753648262471762868747407337893019699319093198045912208931674786773979396286421900864668003401161313732756365839018668060808089889271210098942504456512729070457862157176898460425774714119833346010676559964521417731532622107654330348665382537444138787766758719825741692323281156543141900622693654356111773190438030022742740513099935319420004911133532065567739611507411608877822057936814100003845569205811117915654154751996335629701192941650400193053350591330488141702653930151430841488639288327432411124734578105797424530455868074404179120691441845701109090629748272279867604980631388238498084650909299852906816855803810188992937176712546811322516780819945705590078298508506080495436935463764424726888550799027977533949657864839858183946368936770160801624530015497683102437670075080165949849227850612742218603379225241510103368229004045240036542728109662256618100187654661515194088028072470999158112483477758087916803687742168128664725659305547344110130261843671748424703239962124519291684603119931565971132881888002337061275377380605554785747844769644490856674004758422869913371550690942181517851486975838762827039073553032149179728610100921758957808177542570675353849503334101511436045234575745653798574071023149754261754555594695114992818303962383100746891304439503383620120367584701274930535223277934991854387379055638356313939488414027145179245330599511798163675604118883666560377753607155115433564408612846268322939980998964367550149971455494289194831927012298483248125662309694601934499598690202854570336859958148211016703368186415193621550873779250144331647384863885110832950011125703204507500435487549673899869547426958394016728147491264364664134867363136151970769661244165696184846207357753194376061040678814733249300599141653492260702457404014887105334941570371380322964302827165652080637612282492328563203229794238142221798107215693403541097992787669183282830031182579791464513875107234288691878568007366006110246596943706891275315071114163494144617555445800557136424726183094031003873678053056553722808967015116920962954368006226345590574886194422565312960729596670380301626918629780220165792951885422085994385096632564152349203162434783489439677836786879707094654313214345455819270202190004172455500843616830304098392789459110452817355809146071658674786569407247258283290041027936218290423394517022059959882096328072847609123722592879751216482460869001015300236992881708996539654669526178544616805419308668001920575697593793564417284690276304899316518247489391821837687715074349227584754148145960899288243018282763657761198939456696261972332569014332474187467777585999501118557741564983095327788062356283532740743969232511303913880147728745102553194231197195408951637966850047813831171321701603107151539857919149094004861106822681823964451146011445298700816458269121076067229264008473879381742131322571552161507055341612043937574846667393158952763368838003351607563872853054265411120870516161131300127452012834707226224745863444508739169590661558439803509821132955257547952677864513060852620911996984315016140329671039803236229861353580222899079343590822988281886057589713071757665055689647079554528335234546907684822164710963793551114589193362960744970447163738944486148899713047096940750464808527169745039467154058665870704693881585342414625839817509379354102421354934877717892452732675668790230112127687458737159122908480853769236798640104112275371422735741963911791590136229139858986458097222392393403685687344192371968241099907615999500261271007550132136475310216664584063900468533233325077089889043580625704425544770888043164039449978941862689709453846653126619683795046408999447868504808962229125659153220524905277148196732438939753400960959328783273957386059375158010727151590752226279788189244092920066233544200947095460487734728504152708407566197815046495865943257055066232842373768015014529653085003560916092670815520363052382603557460879155189608519342350524657814569062995972424224375791622922167826886830974558055801452251876066276522895357874102667917571231660460062303561512689084556188957290991345073240962584054131272955281624825184649934892236678176229306038635207679986617061295375226023702817504739752387822542278009784824232952477212226533941116537334822509241200698076726724243749470003469346461311315238851515264975141022568170888670665539991747075767992069925450476619647480956656849192465651930392028548533366292795710178799447694415674616901031069566546138713680897027321369281019522968118287327010623113696666689545644705702695286924001796524011551895031985899410103207468396166152420369047800361890972398041073546137942073762672103936747013758648304276029114316254250874219957386152430520888063958681961506143970065012661265713291491910359827023813911200008287152070664956961201736194501097559705852208204217226763249635724410472528283667902320059559937376806783862891587553274055523070063589547968088572693359014824826233933311725821456749250421340026406511838558695259279997094929549876585112906357197621689985531864417087145052847816247340686734656219303404313071626967280158973902328553079429000998697613191782199974463165296557872948192113274335286970532465135706343915808278337896696589778825111003416959415562092628740261952645756758831061939888246794964351960881903043494960035976344694542340086740101536518592415548044364853221280884657342153871041379615488571267472153981686788317086895918230538336515384381714752981852855704953006693210145638329967292588384697325307965679444998463674234911719259084411146706849323566682391863851814853374173223837330297132773520103233796954644684124016135160491269423083398364319636855396381515741056602844305328232820828130877375500030130459819326538325575265496331069767049339521964558690646745626054152555575461878221611092784006313150793614024226669806555597194059634287433046483218063642583783250585774772742094079341629108434628767497141762819672431363239545029582630009588312804799264355539729605402282327151547549093188833667350316612219110409067538653848674011219091077931787373146669961183936931229125782267146564000167268053092157972026807593436540866511920984721086795850213839954830830780156950853203071941219250802785698237947996608668396322208355802109823681949433229483050362152864583304908264085712374750892933019720913698320867618442740768466441218625942589067432725360376550546786365355191913917929653642795419363502201268715514758225805133977217617895043944409795950760126665306092763597225546022160908192266125565044137592111017834445643183483826345085369926154811663334013043313115868554237726201904205599928826991786790073733016771916058453689939610199683436835792755967675986327163041990791659924810528437757455604779556746613373215222067794653863493613520552461742162115742137426250721409141710328074965210240733638276678442495940392556082573294574198073457049103709521720021253298045379900657831212206289900742416947227195166435813808460106174462370528880200538869692412209620885525077177259763912763925457780759382111638919402763324424559690313888047738246775779681282314376200129035247192869897281758696222490907134231731717918863276483479354014836106531299495397483094075388047939630486335924045898886185287939959521228607142307886598953823335097039288692262815186513010912815725718820060760107771888751500837390632589687929268248478826749245282051631319173373729808561210093572192214574738293961631532917959909269479267566164292593099319076507359827887238293164141926752480219634342886407284546614019534846291567960563366108898855679004425421884982136661234156574511362212496531629313236049213075044445188686582699788890589479899033763271051100071189233389954704442584760185145728237780561445293710349755064972416714127976840085438301098570856537109466794048867758651702827135227445273859477076505686832679442150959696911348871525377349723669560547267251804721570120519870840670013856814876430708957324639534317866806856151905127982209940073517634409157016419585266986145468038630226841172569941807493395543568494289667068933300124800400744574542885637680528224385745292185297182901842080821061677024827084623411981703437865073571738346608874973967092224243594239653921498312916310224007578059724490919322093505066354718272247071154880121358804158875113566165278778302367261262734086707522468824470500722236806941740768676191306032661436047468812852604916029806491954323701062785657036712529266546996642956617839039456564508528178136722205180164786786783861587432137360797085481236075408893748363683670348786653457048597720825530062288391135489958181425925469205509587527312429644408338817684330695907412033870652507082800141377875820853654055451034002011148342739342044619042028561408187760616673204466844572851681878760149782732918022442570495093907285265532249439207781841393650145452652759943484635556523436499299224909200387411655946431957834902673759512191224013647551209168521934295894391923445036727706990761822172487627312654029092220795769609027998413340643481490764263888898783926449739915064307726769533290086026654924345273755459917696857158560654950789061548448644162507757357814317046273786351590196190565226461382749456423004484788518568769085011530622748243432080940931724016995803485936905379228818112435012921186254227218879568889122229125004149811127312362449234126270914249483554380870545855991655110251220240683024267265328275008653163215416560793430849887078554720924282601813682588150146758778541412177474761104660613660034920948802134852121479240957191128689688897747114778110754477770487569824856995122208626538772322699057194598396309998128891505055524899297346876171008018191427730460909541984808778404818450621558135937098987979176600415793736835922016229139492369697647689505285601534650817572350494770427388255742984010480410376527018211032959755946933268382728275761391979222994113255305691820778711309213590670744016049070260907534176673618744058878894465888517363524698003029776301421501651450665321404308055549159515127425257552469283801133611297054374404780949044529412106487984859155473105802465306142636454681641529744590452576441266104844753996228682925177269392245430393903051132737798853089399362276246971321679843199762205827554799966485334954280952175948728757842009461434494879349848181202840186180923192537428760041772267953500621421071880039458173649630530850746319999188026665162707718494959107727056653476362963471977730852279494894540221441727156639178017812011225608366224373130571129889937053303567723859250538960110471151751099269442508679217778780567495935959476892326766678736257242241559024071710798950093403255147539775327843217861526528228893624409963666884393697362204613841913058820603490700619211468852706298578154260731707140297788912081048063678997002542144121658628040980585944417404681658252042795842926566599725230167650358620786296451705894107469425104862163558694594172538315363723371760625318517532761425639075715690794177060361059689812478948250461748896501458129270736064485923972582705142134706931788468493558271043573571325530875231786597051170477683623893406867924236848742050371822576644434988691056391910573852135574196814612341483995375613949496581795250736149249238667586289998485633275370228781809742247669419496754551822315482625050450619959828184481796819821327785730767449710246490544626220257839124315391428384695495345969000162151088653979484597690820042194973026608913772937269680661357994078653419717516437768645477889811854203344869549536379032156852274599869960753049768225525041050193000938980691635550968598602624362458787401965980945315617799356952660935943071195467117404814108286016151707710406481874227077862078283579326135508964542437104294452199399526435792951104991635338865339617716908877665867423772879540423216878438350112167806186349217296402460922459512307547497843881494265742606451025994444894074580529001817843592712594437013541963119474446592148021196061705686928485354708302628097679649463616320359993238158372346182630450987769373447264484889093826742540793708006681825099371454310552253499862286019824424034953034705351569058250189664027760595680388922287310632191363525057781598908296327499533294841262362667723324470411766618778575013972565423565698582950161609021217594745291910588651822521341013291216257784516497916192999775037872057472024579619410549362774055914810276502229564321385053207446663383944729969023281659043988219430908060171945687881226803529172244562530991925109114128598037981469174987117210470023792276562103740444214571180537946288833252264512148860010474079496294019856718001829578410559178241543122083112092763984345918395848425030382922502712863847934700421375008447704037563529157280136990934458730462471155021514219558373547391975887850436526442525699957480682618799155306031753545600197250312816678349778271313841714102261693320965213539272851986640088007743241451241415555289508250733413744348725130537435279676401129182309659084856210206593091432572260487705376061804250459903725188371161925870659301574615729939809388738756661549458743861521113415609989018433796105630616031580359748540141983396571810202795699052691371244903788822961057497897063201056540113869677768194858732562594260796198059364761229832439359804152868856137838078025330563264830648366878638059749754693139587543818510730310532238655197876567158608721596632673033226748074830516642865683587834698821186895357122777413260130223490917751017845451367858904287988343759463831788351790090839042750224740834917349962676596476096107706611198199414515443879927610447087895090402837209793390357594540885756419052190241352457079414592232353100282284838980452052299885616711538521986104123322231297307686351887708937370631662745147176490649717651831640041453351594201649568988763640613904287735141888371714244489977524882495844638351571299084410552461623005899194463068306515778617095399360133284400938788419042018470960513740847159526224371325635375455804843676756558878771374010909208671619246754185331872932949487980323692650023686306832502833882735958795383207858842148224086742375177187960384748351738141805065802998413942559521137189849030159087085046082334982216878871957663932238923802072766811693612166867915714440860763464594742886967726907716877563488804253325628545370524927946322316203385887873881018159412097909614001929321450037961386196500645613769151715026210624315693835510357055256963082675408579145739205448882481336507543461203806849891045101745881832183357562722301192259128247172410148344268519285742381416859574780180827422578496654188060059122882344847520244774499340631377593946587871795561082811668395178768939534812730699626930995993221962258545541077000973748649500869222827900155390367280742634036565368238769736338082541873370275524909676669075688748374591007148966351992812996181490597422528496213885243943839730998926397204930462271191567179284742085664877542552758416363620962670023686464665583769465245555709774141682138514443189593463179825725093289343685286476229144380009816649482388897222948634490734511294523248810311534734259744713648216360636447374846204164964712316576372292029774209905475959657397354998958823309035418789761764128826372343174165353857067639527929540087161599012654032466532562955976595462438339073284747040267366453896661530843647572323706089245724913930089543913637134179581323855083845020988095166837427013716559881193336540027969535321436311469124864911963130142343766579102235924719263725938816645640566647545357081651947005931944813619150364100936767602410941943334592679354354518312962321496320858563376925673048137729877732205956132624464221626077590260544753307538757577630795971360378819470700114400085970959343768720254206723146954452081080525304333911188024368223464836162869670011172483113439046278263368532068406046706474448393051073308781320792011092592459700129472240176429373144003392962023010748903776211068176684933656669979945708307502744180380330750098095776915029455942277757343142965796455207997116204135626458386145956134524975425038155092517066024334772239516320578042010637809806551555969989789661054720945863433426197029008055091016442880806870587297124442634992759069665629165878467338224251554140398034122358891779413606372624153390081211874728286182804984617468847571575491174042140160196134544357067996749512980329913378500921041779038303557092046619629981097323185351210523002976112231943609033558566677066680089793686962375876528876956956592644672497962823844629597765277195059483069238973668285697928209594467939436768284450196022071033682469319374249869970114538832262060886709282004400156802611832643871815370538911115658121657760220848145787938828616897111064154692300687819754947981294589023526267377973887292859322211165101149372452149005244693256281916201873479550309474624000640154030307542010286843517215479969015974352312182733258235701067064262709244586734518597511246582233060556040322212552634808372186233628214725399453235871555923054186330324739725553288166929192835603411603960694404970448793349201949229403302111025014088786972122957900221430506362146934445721183899189258552048389985377804595138333464360874426154436779040545104428076707524330475567799966828186840491101414957910086421979911362829745771968532111279876432816039667193700563493089618805449582664401235922777002863600957772350109331173738585781415051996317483402537736392661510022634070637456541181505237525822271704280963107205762561349040995019388770665686335261420318323902138263983087918275667065525132869879246093781906001517413751602854862603310683834050251235356564562677504494306181234496477494754182741197130504367169242774648741874275637542127836849087858893079421446291112168933600026494480885898590400783491378785316948166403482949214149064940047952686148175484095506463684574987748788864726996936952881197629635350468613206233418315779045464937547590286487746070502422066677310271375692059781285233474516888387036705892121025290217230608460527930069489530353812364137172582512735893525314579628120871342896045180499677106845548299682562383911523552467700947243041915960504480878390244249787738950396635223815711703031847871255481850051216898760632969710313898746432816094737243079292720599911798501155583318404827755102556140217170888422115402424926489657975637916261099917347431060571172933315090586567600754510242955813582503027003436859050901039273058918380160609957968191640905886368428278330947326538606446820318142809510781559241303050669391611910941989412643306627901124283548552183132238956659346833735500546024292280167738008329645386760323447386794535064458306981584340576640301413080848786570433569926964165883664940712035296666471238890041381452830922687114050263625912040561887208893485627685714910006198459071725355762743411065455594090369940214109335537629344985382991613403904626141258700312905147737793687164385029985402831430616472426318934090482153997006980847764404788226121126682277563785382028815347727894802287111034992079165172594569824974892997680759289998732636171534653598899903561516613775904758002197174154879044124324642454575896040218350903450815040172878747101649109581663471559235708487247404639732570638696244814247331086763774464790777150024944930436890282611478597786618660014148129053736642167922853403922975125659118554771684317116222865631156819642773512025747690461081361255303813434940036405949000266501224657171292754621159465932264511767370046043242383280039663244864035240906902858930676276770031892752341159783097311670157724508915547550243029954527437770106706800110626542539377031841102282503268519694258912761559770545669309249377659130924131253095548884906092978745754406832543884349962353332457484641007518553157966142836241112037853491301966030484233700007148368187121894145288722560622500987618561474847711108798742847778652555445416299248958548172964430198723464131053166913174631149061191627774133665478443605311972549731474981900099363027392997651119819279310404161014793098216413544270966163117183635779154793342931766912399102907676830609907120074884211880773622687527374096131323325118683326391804851427722924538347851066089627078727088391539125497333609384141684601241191126039305750729914931858582351621500847417976047826342214091734383452843317251924465832141290175216375699289391608995194219227855704167992715998060716167135827665323181241769304757222307368179307807045128407540510508992104863022491366345016103080975771375055240133625493214573104502317683868384130060536630923077260278344895461465820583228727967554698088829516206554645168718473552265095400654878466732343110951674445927149128018140592706884905324241301303736894086490023181969942617881685524947899545416769044394532178213703775222484797169657130257982753771411237966937975848862060070232022994340368839401625819692690433683673460582601550196114504593125231977043785396927475346256911602892985903082368012828149742021523249679581269781071592690012757303932368618884663292920506403032409912734750600842133748920427770926584331417532740425699421602009434197593195048630043087037611546867246532336523236887173997742660595866574426947557232932417439476286500910835996707554375681024518917171291124689507871422908095664709494406946546366527833377552000437742632727757632561686857118811022940007495156927322460826876337548776369070485601068118381632860171664373465532569168130549844337615194795581485238275113210291664421196462036266364541146262710199609838870669637379822674860400304333483639916277146801871288271660243965519250940383264461772390318939388865251484525820864552671332300518749350112490711143412578663841665107502334879256447675878511747380194358560957473179496062670359687042201958555282170334029132498543372378547423781000506501705040789838888068400685208810336472856016234974255931752518142126184525332569880701817762750341454751875794473806049567196913451219613067895120661178155029798277294130921152503433702729108006432138453076522967873486678943577536447750660185893435691765345455304333282433923772789485111448880360644427653732542328421231105693047359072680248020614900313571501752966817097756246148646750424770348575916784598861662144327292216582089409391937644244292065443525319004836195586869424617561864945746322105859879918477768525137007296522941803311701884111792825172060854369179119706090897061567938440663005853824677817016834778934014792515448090663797462503785742209662090522372742006916496669293363034924931511040169528566014601718136149052443622051024706669655036342978776304027872467842902421907569366891052359193762200262148010878404029590549971475292885139493718808404251443815386744400827703121975452988185339044073083440473660962384107489646365901665848544446956044097917590860178325280305102683473855801835622132135626503660108151960291079888814331789914045598321609735476328595289501434680043207410784658334288457766228198874718181988837610707165877106045205617966010138805607571785160319709461735888119567926681612646020365092112423594293144910568765206229682178368627813979748547122016862020277957988745947266218017224626000395486276500560459902080120887809930945258876434802569054924630843671716194009252301225130637957193028953434492609865822943534317315154328665536701074155749629306256724157199172227547237606562717782776208813253269310802685014656810117090775263476174426230270964744538165712916964215814368683815491617281846440901375351230218817578792403521961674510648225734507767430412367487043464656895011039516405449758031991215179280530042131513358334661418207968972308915534457279855606628745053117154719339659793170805833750124619036908196605311914238607591148424950023784766287667465394262408006718939092753479763405153867099679471600792230973542840654242504490495744381013818693556865908215122224003268702514821749746869543298948780715253664085140233579125747245768930807275468277008098410044828396666303958981295774746593493290204983867307802364510950414052407306209857482491373603293253544325738585592127463121128740464421983417662544682862772847879859565600784988587235105508493315887029811718889710213381720366605355945328371316607465475472369199910944918661580522540252343827201937941022540707297851248158640787569879748442795237656710031231202019632400579090141245370075474294986926472334452092058855726691380916064845945892470756355060809989029680534462929264900329819678464643301520417199548831867412891855106144898985432173613066186492689135337195557036538793513738744447710997749137578300958973177125225195846627043759855095481006471597678312522852990589526762751926889134920260763196234663192125956369405386465849596860325253935877319295496245219528619226940316282777196335054866188643452061634908985382942533820165338624782201778058652445675332064562556500355213833118568539156307319379243643940789405447803321191702482025031484393994145451978319275593945184837445138890772828522303785372773405362898315542038251650844065925879421356570585383252534527133725905372422837150840100403878435220419333168327627328277210170780424472838698797735876021717424665176431840782800104687209603340946408679894583354659907016818067797880639644350279151386000765288239027152778942011728815631556657249324847072937788881879902222531286498288598302024494176358124111626808409453380514416099490407368188740640392566265311861074381131276774450521482505142385365019096129660900707050689519421103893444618463189529234930567682114756077370230183755660309962594192735973706412272966997101895347987318663373771800709885125240489484076362811735385101800639939218133926039724329435688757283037769710210372837130978062901011867816766712916726311084132374193072912793792591229177170258169530395121714838085321458540830209818141839061317441305412597395335406589586348559627386898802508742582992200918711604057081301075351055441967105165772342626471537565272838451911683890661496598637211765284272166233034791530840626007431161533964396014964328746658209912502893710378414193500856093688993264680564164967384776060367650864971863198347662320285211173619498729212878456620844841400753040351346241174882370896138714814714928166806673510330440265675951961548910637347870327103728984202455220469917258767425342379322990745021116635092498239463294698169337784126884751255151162090892096679730629829189654583397950948816953693883523824833429967966728869204979800164421412912566551050986930458889365925708372944544477163816593688759704386332594054877113807650949665663577481394044526916320393106648760138467064552308998744894865520578670688167726083169761668819776311982244078050332221755263886422258298882498659147639299288669816660081691468594827264115057474239286024692591191185292486248646961613358496925707470015903033819519775708663595704763370221769156085527364003027848735652964237651346841147073068101430057534942254804851075383172644419772380168862816226527762465629901922697208439463223648606594646888708710223397188881349616650865546128459352648619386830813794552497151802285194459973433014409855467184108724207819086390008651232857744816981517787499718064173979887550892102748080269718841639364900219373187729900978006910537787921657934493881347302114657997199432544802364638926810526404381276468176503350419656490629471201616164973093473238035211399015457354549288185815158885944158860212379596528895222329419373751743730373777939686692593897303784547714287244989252557003444421397701744644748718674285327438756772536194693776292278283293087461347055520079538857383869878514938677794514467530852528012377329694582403431298973705869459206077041613636503387920931282486024383324636698133937155781357251178369631555893115129304241375398907097798769654460760277711851600012695362993095469768944667056405320196198740139920178210351745608482115829018522678843668652559706900036838653232668690393736304231660665140859474302062017579790951346610569940399851382399300439653330000977031398723999616691051909650723524826035130776733076783839719212498194593796742319366576007997818002281846473178194449565023661703078771564425743382573698226481970547346407395897982669821461674060299730338405357921416413486784139929319362960381202857839200043459303728158841164140834209146568238148134299584796927650622253401212406792307838886690526539723809246721845420901763766096850668036349606363911267537729753812241779225340368089295279776847410211771234763374506452821956089162937696460685365643122881126461607591847508533760205184886553977676942500820273852278468558428714204683136334794308649072742843426996817123995815635649275902560627983449461068751399399234192914036761801605565124905190031501466999229685283161844840843856090864349353406320900968006037426919087150611956355495714266124885592241921147496962172442593757522281172997435238537280555371696487399429597309818912990739584687788814128201555844530117120305534300103177636628249829927867758276214682624218584846892279241597193634002101576156707018441194596636021210326907072541345911815092747829868390861887752963219218024027932510692900262445867546852186795216720948611987198891813128048412124817647003375841303388483642899476671915907249313789960109809216866902201102697221004541602267166421251604832073320765057945846497325962302024030105306932473312218991516151427076949516626610736076405050789591457677053382721185541732916775863093509720102980954615631131065674260674245256970990760002799533827351193612567057032358077718983602211263123141073093275493146782240503822896448235095896220268370381680132170357611359238660561995323483096863748155406885637785813925526926777179970632352714967054470993599672615698628255708558290248559641633572898060979764708407575304985082839368893785395960984793095177605310434434163638929070688478500935110196822436239435156097351749715890578017035840841455954071222821275427013074095036728529145878292789343522524123012940500958299322899406961301528364618925415915347576722848233483128429072410277856241655874953542692623903417603710938956418672221084656182082376675492720736614379397392677441378401807957165191330415755267895112466852980322194341967182141842604260765045647912901361511682665095644391424845760783589751216109588348414117115515643854239985281488698712744644361238219881249531863861595758931202258243321491192047244299823500853218962437065685087705488742858719738319427546548051526296487461372152781135581788262841296924871138903387538035394912644300943847514194525481839827870573632140642447139313957816554490094986379391417577194048805898209612746434778770476167786058913020144419035837148724980638836120949427997384700198503101322082558381876954425204603030779332673572722155609597236224257863237409246441480053634054726019355020206239350955940261922035061842303979916736305443478128311375487499936167000067522726115544399021633288465142166993015246525982113424333259512378262726383075356681402938350489330279444770065204317471374492124072507002124491140114526723373818724576947911417209225027934300683366840612018770679113414003116957026757151476523269852744142461197529211097446540840472038421894720906407331296011703372207621258652015801753202197190275532103612112992857968578358517755514854984393624646902967325454414175354794655519142952719369094770841823769841084922078103650418639309139554837036210132485134334199928835957036176648010389676691153233415512268194967834501938605741472186582295394838574366994159714358115650073589023360127096081359274772434800938651204602533801253505130611451159136479552455486432029655206667464663494265111914821546196261410063041915000530406552122144053343447238937933612229369223927714224879350513833642020027135313311074623741002691221270308368093899539934265959158408777819366745664848038572504513305975487936264896907893122735145594320135741986026592062008370614358867406586114873804634624969021732797240564870063182011130915528964368060666597744136373944363278433702534981940675835497858717663782451124629586595896591167284678788475559455604292581947417284662749775448127353047242211789058708604602983607669142483743613342297040917401120746497851455106170518920930798375846513269887669052295492542591572974312383415536053161831002214052990807704524636036993210410774419063447297150475805711187831960369248641814090155164493888323027132098064448473406460334748681324743907518949103038487215534509229819436221605625679269169601794151292142104380838142697529759240727009407563868021101343101217071436753494617842085492962673770471057842383027444169787578125706132273711571153972354852990890879338641377224923767162123138963482950946388807654570165658935324374821097450801048781583237878138216107406466061434009119654452330548569391490944535773277829176446223745771043848341184197545992518823540569195594466308579794726949439362999121259029845430336089343738092479717480788998333361875920513445536415241140219207480586842975587810887155900292648451443550577169936116489573881349050946080289376360658130910493216364254182922197556566495540537520550067229675410770052849116459718311209842219586919796165837118170296779466529635153075710757893769919127186845442634904439195047770781957001709782699982207922526948762103892077036815004911943941702077888687123279220614664237417856640985034929085194906398324672864802899711996312572108931809754823971508530519456008419433622503998252032216898766220095614177322285858930570858591549777260406113068483430142208280581819359681839758868061150979630263252041170909149486860606791603224714185956169118355379185101520858306738913282231462214137277110465214052661853876706094688091433275642348805002339130534102000637447753160953054369855874055754080522807647137922934325770874515397566509289134793190186119670604463768578944380890272157962264663479231293784167396776418479613123792554256762876388198238927067602674768773760114700663576714955835304049649265164442535729421126376601017923110671001461285844064859583090701648249415556103907943360552233814247409361562127164678873571141311010648712942056130733506471750442686000104195679737437537305240709434397008307820320534012121068433525673116468304205043271166281370283871909233360618103446056521969621990281495973623439673505640865528378329023728492147357191127045462439086323555071654305470952374165396162443006810641367028635251721401444246696802931818308206764990389325828779073048007748456064958499928492045630322148919400494075439823548839294635629467475420598058604365715768909265315772547667319193840037636195736972443527719683498546737632916612338442825772258312445393756132925782607657588832849682295200280019951565384253654864944285135374732555473052323008572899280035264868946008401316768815023307230766021505247956361067062338799798424626763617155576637119687840801981818221654649940817427518542606942403340118021278284162177847024533556207292497656935200081714892427972637715829247390513244987696601344837635576293303177470644412764543335237051591540441592777764035953674572413432296844646897456813559393967393277584781478082658226366175246006630999473748485748935933941530837253403951452518601005961176963042525596360095836264455809949900318041550402512649778105246877217581515813748467752207655281968545524235571103053126619187782679119425439404944754549687331791729884542358507499233631421300780152070316002350158979036397442896421997519358932874132012799467018261708558775414210064087876258735135124603256312476763507044158776742581555787526193914579782261599762706676994574035692088438123003019722544973828165101130634372541415329643254283035895772379706568145357090362801541782950329782798918971835038614596790490070774236381864058877416885216526307828413179297664325643225017777524136428085368742520290353622189463114541830351612050291055530312233936383100755910322139276576187948612358344971032038786665081034385180606712036114031265343471369523119583911935156373968070505470346446345149214805834060083176531865619481316731239487871269004499108248666648847744542060750422572888291270826524408266806797765824580183303933189702237631656743607836536109593335140814760013685206064777298179985377580352990411282483092948506990900495904553939963113520127908761897890934143740331328065165805936263165359282627946905830457093224881991829629672859139921235605347890247583850174999351256420259905636361885707722872786468693923123888365938377201423357251146695441259487531451365368576252319085160196354064566040299519858718804934221004099340679443321740350823706013521300336716428938065595922319352071652779239243228812622992450292896088180527239784007445899731654827981794588070913144145540892290268056553949913332755969468268530485832112385838617132940964392514727249148411325152452832895549321754571571377117331891863917276653262240464162252938552585962491043955487612573166032122125092385629120172286860065482061776711043525536190679689844680927172438586663103387463649715928200742889906836271891360876563009406875118016348971082641712407358506520906602938231507594998806973665739166866485352535743355710953709711844631696379146618615949615387252879693133510655607909199359049408934465627320414592213802345490639521995330860724196543793427833993179731979846595760783821585155430619567011805999674250723412212027834367518103729152181087468265011742689714349579798405257608239189582657704731032892315356880098702821485081284043269281951250584665613262528316004537807899507966264867757954816560973402861994181333023717115958028958422966604603298502656247641549700103868088159752684121564923857764676628462935157683019407137827038973902455888065892318287130938937290441814675561083844767835965929714850575326216196922097998231617479695602124555852144493733067270718847571546250588558049861644182252726355067380041297002527194914784272522883501029168493405188537970132413326656160476574839021688478403803493430060559448834981970394605036688496161672807959425474829176749883269678356853719501888208910471096641105588751604555696626359394294699849730135356838180031387696549951599265167316411029232255920247867556045096169680479725669026183096552728617027387785749754822714029184832859558095365929514125557710865440186237935011031682048283535217113759324046399781954046336301993769778557410590998504093446265571266577813638590835761146630578752123912007122017933194711520546565658071234327258009132310365188694255780631276693973070394362938568569623624759385732206662050488705214443563508330311197239919963401199562759606309220181396252779471785923319561301423590193120340339579033118131830835952829927805874695734942397608181347742291260402606624645799592851735121634578865984832854816922620180324612614715018634594020042040584884530401001624888484404077364463141210925263343713613818427064639134391810981942590834519187506959684545740017548894345895808847026352909592277978482122316592790972045306845570806322554374372484157446426811409047348797092578243731906423167307175121050648062380084983607135873068618860656431759919816591825734129398723287781529104585822363164095623592707655447200356897855420955108382295330328171256432207758194502644534629468816441974822894711609116599365773730571195189470991054156448505345933663118002641243567493016373158633311999722698280511939857349775093867461711423516529593943141702183707515433040287411407088187493466787336661366468439578320666076876601546724196330158136986258264249414695039959355446989034805699541006991495262176143987350944185675627101189846666075818199155826446150086284818934959983093432048205644366702412311796389197625097414640615221090772145980395932398148826348159516074371404409944017429771615144929891310137579576555445866584120508522764923995661810981209901049023251392772039394197837283360221177855637579395380036423683691882871590395348316152157247573947619645402666052293185130305573390692368941541161802161649429531124829326516096251678169753581263743475640245399250331067260177685032044894672968726534497581517887901902389166270838043517816039770609978782426628219758368701957198942915563932166046042445254918650974688120124918382390790769568063283575159985570763585642784536326453443405711975863993299138267756667348213170064152892060311004724845129163754400962437167552630354194877539290005908980492508976324999253252451004589282965580684095664411688659865854289945713500620192056076833781559592905166172234145726460645875649160653504509084978962514534461993947447399703925642458967329921716093772900282562566713752658621682127232085798706447327294561834545704983856538575578704160005977933043037172995504677464055730271762347196412631641513472141965876655268931656713368847830135879330077124388792351025401633031110116733585077494257460697235423858891798262901457056511013134139650907903074150978653792107881112954077695589415198762997230704857758629121138450069895638463358359761356855156151881526863267950607438634539161623146356370246720500344945373903861197491617757400548434804977100959144173289625552299435409959284603986649083461416391095346571112704510415334808289248936963062339099150313177025474670778666412545556434770382909646639734874184623845460494142890275600241945333041970508519959477840341082233552200517200353574004142659401092939826562522107288360853022267706846947598198467377167376524602432708329259992530693461235865480281472843233489433778220217561785045770357887626330638190707544854296642737932795246307608585763266793034759677215068054212550873661360778209336628263797911055554908047727482086272208207392937006513828061749309274228215803408957201200242563812959020908335860077724123099209896778896011735262113339566322362891471587063186622230736016748006584364356990153788836775984653209742877451478606537464880261096928517533295779366333344711498392876501973392932798617850835403529224903113732935695113802703526510775491943107790054043880811486629253596096803452659079109540912057310077921770139427327057906579295283745331804882489627236373491953279871429761877919736874372107006887088673733549523581620432043188542090297712534914476385792833614956250505211811596641266842514759396328993201916221719321887142840246551689895092970681339744304706952626278967685053926757905846331026930918212994006732797086781197093474462854955532758879647794358667139337639470489380981400585680424908461233899707084132009602489471424207696722351989454181873131691262020620924004938652379578440282789232550030616269602759295328175547191111666238481643836599175587602188863809524067386003878185529491890189627013065430082818917430387155827375241503226550516801089495096408037651538998401648613143616054831050689680178379537702689138855381092784914747886322865757706492201410969361195056143950602564876729112446229610813295818634899021690129642028581279194344317544849117167185328663800193139254525940427802841919263559233776923539393503515885937658601328426054794533215744864450503690369365574146750108501976942193031025098335872776491422406248684448685342518163475197864107235487774040205940960222579344653688168880492195380144916544995466934385985796311815808117518618373399959849458366624660009033098917177827590751135641886934871908902390135735746327876144924501546414747528113171870927698754042526828073681862703623239496987638868095022217059635647293892365936310003567240692303482215233952916433329345613169007981156664935318128555834532797701257759191356652596288980866223072208493343046807157382748648644711663097310390273789104573348682992392084336813068959516865834156987893822873246591862703188376340770755736597771266374132481056873630205558277413245571636773234740119064922816433226269322917793918818695168241009781246646606066327344482996851481923314127333820222717064838129628679856926929760382859848045339078699454633478556354757305961106607053854158887824325559030050862737281333313462266564768915285975996677379155282636272700954489742228073090085144961082024685547622608705777938535680570038781478946749317542246992569378003662700755041514012247382682617332818919127536627133363826968867053042700299592830452807808326690726956990731750621383955613994561248319499460221892707246300555590064259644277369275148762436862402231023144207977101238981610960229211557607256211484988771111219419341796859734495027185536125539711863719231002042013314092647995028238792449383703720474411150270719891266927636306614117146179751951345480380886581042943953447002880863023189039106308362107014297638031913246898839153516840802602563627501565158116223156013070282649637981013612652697828834471222880581622351414228293840292478672749547233111798298351071918280467540836665306896493422437892014513005412611667027669912270579016655050664864626120888652478289031529839634546886827386265790581371496985705086050365530271113217144678824104676801440815173898820561316434149057675535160336895466967299861606485510030231698862424995366796481943720767393850019591264628433088607502272399537928356797510145113890896044391573417057392138015303654660234145883452567625512783604766457159429684611896361488401474857066832664803901416879704892340044507663727693445299874816093504677815705347915730357495582415205232741684830685202954950827576193608037853681366395128635088200928227334694611281603225368110778254869442047105064323157535705586945248500521798493229332850906751834278873092697580304295891456810663344500841662922929834756182683072821545055218716538355007437711465066307759154426685080002748286943740435227464808064093271705409158884058869715936930769083960375075869586836323791815287158635045750296770080445718300788404815275971607335032068948662030684503376851783407131746567196785596636697002655193310409175653857958566263055359716607344104509390802682945318514067821591708215139670842858505834233817605762522226167473352372857363891355782894260661405492359324376548797021998730498806766050238467735062754627997048371560732663544389259994683089782891700440394460348275866762677801036843463499184967058525884372938931816541995465583022028744336802329039542504296093928274990411315938275691931023299004784183310263683677638526032457384806725673702112950023125900579169201376289012552298401541903388029043724187980487185253300700025221875671253682415195538299461513871714673281711089358346303512755341431819911264762773237248502617555719080795246582193556655821580660153781041544828229949810265622536925038659035031006029237306147925711554809147173648176401043852796544147580145471340413825092253582893072418468211233901959099896503188926813895395661900825359592714863992287180887855468757628183249825739687071055115263281003580426187154129248295036882983385582817373669290791527545522979153297933759895988239545389834128827180086634686912863952618239019234821259397864827152853784944498433619278229699242589080472869321042515553813467874664697431803716298686934873636377176459878789070436565560759314883765454708501169048001012629120815242577074333665168782056740345551680556337325085610228932854271673062822678739972012655629074197624428607389643321289202451462332669388093677132977633187666380692013292005193165378243284799722727312915148213173727026228171130591038380469591041895591904652012307381199379006725635360795279612218753390414479465814199301018132772976149425381647332910838389246647479499270485636600965968001838923484928954437015598920447925379626558054323435914281173633373620369159897504620700201275698534666942509557536915786297742186658659914474003568706413506369307132490067473059949457079002455376835958069916985647971541249179581457842264292433301834235250565435354984771658471873570147299177633337299663579462685188615298577129028728145103052353618555554532221850593175159855688858823773665810753367885984859057440778001246179656837679315178450910339796380084675005201085422955650848017561910305762754688016264444282393358631944751181342538853320179079255674203436345718569509571736214796018554814839738574875859462546530395032532783947625439852651577554324099669165951381090170790088845114249589987263319220619671128776832106029468709148061060613123072021644438153088494915368632964024165541984716809494432892239276871770460930434045761861619105464031922771613763801981329717394705337198250330255461498092540644834777458331325295698702992533502608950099923397623859605912910468408016254187521107198074397571109325480855456953058878531771889121434381952781136244893180159987166360092798614991159373516278896355897124954848363675314522541393226114700785604371462905554933465726254030469463192380249886747465728106740043820079748998609637577940150212894093251681373524727631943981249184494279234211479973229003213317164829905072064506088450590800556651979265584123174222472220020927443384340625923759880093906633741426969362120405774354874014443723723795903375657895195712155141444012937646059522661500899800205905474151062574998231077491904829313666278844824441978279433762326962872525978699317512225931692212780665915545148284610994686642054069115819177655273631820746598612485858542516613582191296534374429444853614596170120302041472666192057057313614541319254439666155448677665104161292289159460491598462472790881662264571598285317528939425976901722768106229167944692595638165058410977195326445067795390237403777763291385001821363143195065049050510751967163440292059189459685940934054375445343066823519811624124825321744660372960908649630708534526906731503255867710217225654365555894128013698540387721696139050775444598110292975380221265552141030980628311533441300519218448382991165163592131282997372464746963186427405658898526721470306123836383384631729799104061110808759765940850824502914193592815085683134099221427607543659434951286567041628024257258358725525612413500871622930578087000111736132711264445961728738684911322632290671503588386180702429026064545402267820496651439666009207552111858476690235635762948614351136417228043095635879858567645626028321318559863502440682923270444105779770731623373333447121797833009160604976001055381808469079100739820014062769289341595897058024963009390866690359139738983511923243454952220483005283498445860226665049315593902954977209332061243352073457600017600592232283636027170988104855007774143107699534437170588757132025891275118018155217865942129731626836632609168004933805172392862084857204148810855378197204382934850832835181855188180951579367425956832057004541679439227052826942770375106883428566817095557782822956448582674639750903542498958174549427342926757498073593208440648739667891274529678907087655806220357616123879407198945977648932951237642356777740964959533112835199270889361919365732865156471474153540876690435836903323298321572373201266758491765264233921460337654359155416156657426537740786360583062320320480350245883703086860430315757985887281525273179684477824079395412108414811434917192908506337265385877088220449470789773168501811374202212671356225902682699540346533892828078795652889174724484043635406089239333587429612751452159082595426738232412627975012658623880821056323312611200556773538671541133208835591855093755005645581724539838135878653937912917085916663947085770351573849586902940530547986663035030364390011819064930865095553374032822359794934967487287997552948960427656142479650829478239211389130749221349928995554422106521632626869466755831271993008888892030779466393650329498162523756784938825743590925838639681508716353300116268051876243340804965847482667859697823621238208760809323301140648711047145690520964252975237859939115052322866949018687499743966964460738452657027471636474052372477856331788777977080422365931710958874866654121730530210610254412982746213326314190106160206245945603845140494053328678139147313798791604287844068032365682904085986487535162161890134616315008190011664242668370528080115596050315496788151904190342914407085244286946538852611125348540802231492533059848772073135444607886282985572329736133011873040898126685362245761442487726817686832051407378191301921997505320618448640051907334145059432056691777408939993250242935456631458303350250565959688356637694420782924569449783884923274227770529844655151828525179439566933291306055609752070650757042911083006366548652001784827558551743048337957510378563917050434895801475414310932733396285490476135903721945419411945956548359126801912233572708111871072219680599052628917747800703294835154828886535036101133875984226729038432420626336149933941460041026640269220815628145089321449935628517996283807244254535530747694312457645632817113769728623574212988970924959905145457752788431577871021449529546274437103328925099602099769369970702256007540825345673591824802451688851375331165623642310642987780011927295862464031958525267499230938737969887955371316424834948195170108063331611114425854790563881212754620608741925335476428191598169182897305027070742781337190652404457201129879264335145700705417416164362532129407591223941592512398564602478057228910376651781771204687477982477674441053950615368200873899146153190929702771938992018854518463941316711271459621836813327815889252603100228349724228840180135668592710489997911195675552160687679350917465702855308598251116740958661710039393423487274273778623202726535802471722519638372307449180950967089962900163551355396367810950076884108849968314876493698992301731104916943895697408975674463367938758887796749272923165322187873166602062659753832413629679407722316369399937438461067005402811471559968480379512513926304885186643223781266644619930928070772410297017999918699155867457391028405244636847097706981274756795794700771393632292419528112824448904521072376691436617637499232142775663353513836139203623968556366175600457461893223401139008732223820934464978009713580481085278549745271805331476384977841876475043467645060667345031329194355326023112335641708861339800051672179232067110370484051159049793083295673838837599667905942880025485616267562470319148113904384083447897194855791826706326798737485385290877374755944179601748381027368642531457266516172298243821210231589010747778301936806543105437488237143398212930494762251346063521371148460158852081639649074693216161516408759872163883321747128859919017462358139604264385204182720995089867417429700152289812137168765717669406984751874267083524908840729167094554689516309725628040604952029302287481408072786215243061138147513603994688315555180491847492671775647241079378122768023355290871955186901381647862879912195665193717593241702352774541746964033825993070209455500238084041563816811046106049459085920503511445496325780726489043651796729019017209125768767520528772137250850224469863862230422295123845496432106884742573451296712932838386347145755317108540420691595282031192155382411611771965257056039756853031547534229968231422303493519748586724632545488129895081098599313987966363374840487405255680292634139589802502908993424941531369736561827827510785323329033545799448075478456927215830469627998763787498921705038976032148962453947046051601291703705746678743629711999172469049325716196680477469691632288165364027718330347454768504438590406707752786601975854660665672711127134624230279548556581750998401124314819814445575131476710858232955482368662030037408176208231001836890843690901943774916405419586490789024041191211130011368649496222632829554503385301559996861915715061889877829515790516969328876958281923081854343416917329084737775886344534273431356957210137809005996434955679178398423627039979057112544417856631012081420737398044656493834208686549436132333654942144900632881134473237951132069939853991514477599084804294698783683819435223981774931386828251676755130242880036392743499820433079917241647029283690087224286119470606583416460777125715027491683188674126601410080912047815059993293331595039058478982601426004170670216526215369946463443658079412859496323158788832120209433269867242879930536592748229038042462495324096233399326002849314647023396198994981923847095418810082247962824177489504893676608843602807795393546461785769288004879950312281470016952933903729054203087996183959180108744374480590975531840177306468945510298146538424199627048756113027199365299147739414801253375520877368682276280758885863674164972484052449394687827268034609816032304321054505680850840047009610568896296890943988113542418462689772266540232896610781556093697990794944450507322400511549226477962275758437926706459273636565242528151829625213961446159865757660644974266859437203095902501129900957109368134925969720907910439156394520553740974586249708066157785157222432264044178660633997908807392878387550069401499261784092963402947568875665110172257618693960080620881004076956922253097160389352509944543837139629277274937052566724607813739354128121771571235915672898819619712475530158939715460346923309146979991505345561147481535082484120999942046649922989609086196575999778463359540719955610705756102560873938666101597415770234254275976497663514923863814932951241931536967170497616903477304466419310463991023016238593374182000406210395883384612374914252226265750128425726521402341096494902686532106779077805699983703248455841531511207604060765138977555924297996673766924433067031847487267756534743823232041579449863471346157020022312229089699851851556965232916901521881973536894988298261927218289152364808053782940211260631793893417858748380914298079769707147918239043742869141632963993405110424128241890457362911735370588735419064601214827196656559439424270127284167871513847618296194805517839627176642287123754870634227732515605361645977182761101526551591236517045925422056091794552894527511625822674990141383369614466239819747128065125218632882650880677937758591419099067025173319538442561282941436737913980202191748234958800278539059295328083168201993494875725972150940005416583098259151326378593253235509121252299977991594016756812812348360306070788445431046875130846229470399239803095636314299380562780336656035608186086574400864528638903654411325268899748242202631987273872340278050189607552912415748193167610987762959778011000862318318339910747655986671976794283952191005466701871562925101670893882177806517853337666704994062245259278670382225993270810385693490115331526241667393710063612108652742101127484201911165026824007175445533993392443832296780488773589111494194456631439579854252896459529900456264337886205730695695875807262889067950771307329931419280044045436885675179034400018437467707576138418654923993525652918520549865929342439854036392473460830688829248277799735967415219890774632280470791790763504067140934767339267918202299304689577435976513145197725251818978253868558431125405995995310284012543277627456581453294394221910096966897901421550532904606300826862710783627033001920211947153820054370152216657554760640238192801409387907362228094107192312342560372146168451183697539877608878531325130861372282577869292534784305880197493593648024081951217087334095982446476529041539764533158582443709487237661082607173068681042448128784864764026178946387355373768794686933601564479495418383356900405234373870210023808740985589749507665207219044434774951103018434854769640582485391551915026282355680204279263746085696443259587763562066377186200292480826823896636676815290353858341054649955631122824352229042056834976954591060962289476158150219638495456338110572942492952921645152093346370515432314353160868874272708452412311014501541739442747407188587020331161239157276469250490421835154439288806363571782317847267514731963766829913524160538683492642702865827324731598872361337504091446639855782414094615397551883006636331571444328423071347698350671069068374898958544005336449130741895178256368735651957344549939777473474273212604897286527786996016199374502712366903739145447121482005676915377952187486850581801904739486962886543680707934080597990990977142927207137323604945792278754218131350085944191408458058274365289215362286799422023839662235474066314238069416045686006518827408473452797674138484895139356621299605746493752289392884773780453928692876389217467203837127409380294354829936745692454951838563204129942212553741377007503692556381360985788221950309381090298852932885542005024642043601883544373264806551228025075649545016674798294820328664041850119151279254731136099132839209071111044992481670563348582652521443968960574519627999559716317668593081130999029008654616831600596640065522234155327050248445658479147370257753605500871719514288170554521031720453869660845737478153485698200654773026923142572962777700757677331923230918376564315453242470400425712353465779117785134027947268888503483983727209536514406963521570609434032781546020144960091937181169793518814203954317320245427201729915305534486722919674960174773491363605099081171973201210963564202930658717887975711563714095781389035304603556938816649312493761943381593863485819896655326958864835952354395350126891480998623105698352712415213506537582046876111380525431902172164358989234452818826453575194231842730770549236506857278028740473953901095278688925970272286288062031454620351929040381965277696087731646782394659871402675551018640978959300308873466882058703345912926113424636049973595745214639814172900539090854624051393278112694558630346541867889004990590860932812814764982778060066460456735265425206179052642397737918401962969469615545820128449697954617766278091188420241856368955449992159963587873974929391009142063520829555845434867226359857822368283539108244134912188010254223540475987707175271950078748875401585465155164013225696680987866994865820593817694545230383336563206905141189784111376757257789505084740870792161637451603503604523401057302595060654859641309431064265280867866842880660624394471680412273065088599374918083106082171693232924241261755143128738818126244187785623214338869418213789893126336794876022950892019134745200949191657192248960205552792779915298845740022069934547604584939171122834877513610806962697317096001082489273422820300728026085892477397835075906822632634263064014953669947768542285821888894668592737866170724473097901469855222985734170154716645278882212215449194165489632571239453533094232111706644637433872644330929065369455135517505380238426913727583257460464888859121552502555385467854420612487147170637845559922383372069589795670633996974290771304507677008269976169157604956151567985734129138687777489886001297953851591783554182056342865554863769375729784957050967907481265205138206599997504371006186497564159749426402584616774373959388005760272188276615659423386600883385731648107647557019909518423382327422351754100418117730214849173673409668204849707968304164973208825242085126363064349197801380382244856400366791586212750197313148652231884092814804509160568790463296809802676082210582142403631454579156014892371518082854242246592871981057762831712095080641979701787131934995174206527002350528818360370074372529246055201592299354749938883771873710879984792013319917721868822731493583013773252111843028686111883603007725215393762120326251786414380505878784139306859645919922958354160527829040659055243297166889407378471070886091025445387577327114435144949020172399701921607118007722830440206794997446057588484700412870439554532027286242018913558844958892214069568187474249585230839441869912137863721120705143198400623956501740077677337117349279179361205766046329942388814972512402029870558963281422708440163472967727546949786529688356281149730534243587812832279915738023701244394595762503613980966748275560005620205382098930435644030643392226584018479736548517473407837924458172159455227408740416683860378894973091883870739189306162054541070306456177235735307005995287763130663092370832145414556488662228758448133449392686236715592185064651854979922105884767911433319747923297661068854070975311984147435817029438792665896357842193366624206034482947969713931764310912068753445444232112454204871424444680314496934882628331691015169936210865463132186047946933648386567353251933542718576344985562439121699973725909912145735825695317903305541326248108257107745070888721036917495404922306686755486463974764687290835136702421938715850718829666826483917623125817364937115931009687723021028468266950462334116022355195250042411922426833614125559160819486506389604337108149981937050992277331741213202038500498849340778884664237787588682918626305197759569217100977746553303435506903491145243485495708234523520272456821686277674406229108139255612434869603071165542045287309833969951600674110352289286540134317366702006581740933073905510397750055648785856259424751559613813461205264684541078659869632846671856976137764437306897799088856073232941772963870138806826849914579328946453045842532625490613513840112289422401343344909672494259066731938492164013177005326565019093675267277828499427430941584417803386144178196765996539070006780889973801908704184588999215543185861250512945579853618372800652818684000815610656054324124268375604193272433419785731374127933905802298984595554419566190215156375365384777068346027455204016611347532692759846636230939666209821242376879030030301722256954602274060499439851252480048016911303037414118271328151546622806492514419973431632082190315038913379828696582315971133282645368053371767194705278652160264279196859813520159591512649806720593196459766173332805197843954322943234220603075228282965848857734535436487018576201616326198082811506064265080337507737630757161377079746210677363270206943272367797874162524219009164775972917846117650193700692805398831138896212117457064030979794329032215129288272189375295560240795115542097828819856542202796650178769706426113065228833302234162300950339525324788053978373063890188143089616417672076283552152423061301164244785684132722747969013210231149973745499723051723908604867654663866085287016591012542816091165696452795396065170771913129247142064904923304451144431012963569833320102099104267991408605894270590861552783185370719666978880331188433365954207352474725246525077737470721794871937739271708729656409338913439234160895389158287170847965983996069175866609616029486951963681272700605993537150620188930528844354406166276056342494298295270219914766019502958025826960524328712167076767070636280259424618555655290156720489072790172683535604816581744429593767161862370211392423233765039326726863684033598870957595858419974722269928022936683423772748562619052571062075227675913029290499852540651734860964194560463571797288985542586035859481474956186775193605234657410181419326569872014931105954421739777752260352932609394313359480727797374086034088500922068244399417631184420186684853304221632578250238579217625775847330577350277169089569102726856509153712844891834846478276786518926547318609195662085715858986957622942750995683583371660501734755825326356777121999530226836931681565580513733741017997972563532403944709465001746722058276218552898429711599918598170964008730400123813373043777781115729365656727560476290189721437125943916509216603920602815182728612825251180832545256197875882073565615962535972663164975949386946084826329330698382402585514645786192674650836765062511458368726189406548529264209313135879176788133657812485225709725278177487643729126355177835731942021577961560163946328851312530673049072822290972572789213081159654266555644080234360328013776160804567427016301159415668400466647160855240140435519760397538735741666036511374790461728113638152684820191577109598749838050961256249785079799348058299231754677227289963497358559942295439342197473635413134006756567655813179261496101008687117428810669170225692066424203174892734141730207627500540163661185099073133170088230985817995023854013508738488512755540843038544234561156047451305701153470702021972158881884608299526991613772585855948672812369370784333693371649650756602711379595788310629814194452784598948068303357119989349640392451192381041465304606873323493695684595258109091487944280548634701952733360754956256709145882981336674596112283749174813454043506552248847204359971479113626636197316237515118949772942262545483598317188652176933630187528121944335349667395023377699884437960934502512255608043177057555799210238946024498307850612677116843313381773196788244017379314381387153552628898744626170496928442138226761774412557561039501468327797446008505025407511399771144299453988108091835042137651543970184501188471330946062657651812148271788826889519487929743334134398228463868571500636830009600248669974933684678412179422129064961005106059642969146426074596312024700901187455752743172260983371548489662782527818727652817292393204689054306152206792669657893050517981246434637536383193209295027566528566784553668570566905471206504241535709045615396394095950322488852731892931595595603114800271154694506119783591460506294329439765718700079873469162697314807193949774990413429591687325660060153152682689721509293895809128483506186159985217132317809467663134846001349821115088561482623824226909280015284341452293723648707246225030371709827270384179681238328218514792787367763570100878739095070145738875008631807751846045246439337223313642420958850181951738295044526653828733954678905673871304166589021184876208971153627283844780609174113888566926004512636038475367889284170993863249095496193902064231283716154408863051223396471955016183532080815257847785558662794722820067449474628081692703082391132224324204207316526384091677568158861039660359037510709404159206642569035239510611772908097954874179115325145369762598827534194335261765985134796733086686034173181797324823644383715734325106740116517571887278224338876673549963013372792100758348983522708102678639958430598637823903840606506215347229648869718029364514562371198089145777768910085303981927601806578257394699156747120933731609001172172797532643514934661693941839543116770349962473191953242164778503615241191682533975301104428113943381989520245871896734343456972691852473662003529621073520008953981219466331621998302458119717952828231979138445648393137618658003899091317673654085103901977652719111826784568483989503975075241909002309998131806996159731326561881889897783136498725000160952089413938039440535564735644861625268515587462868134176336047139661764298030070663148246082810879235531372381277681969156048797005590035946286048860668512005615002640271011086120905104630639600899579955782598749242371686458463654115738376779706125355217890119257782423967904979757770981840505470620501690315536834451869990284783621154790959756367629365270503075764189620870065427654717233000567686073184757356412082351286769704690511291543505505800623133839690628758350431514898607852179787911267258275007202297897364859911864102544234040824683942157340129067968093079394268089283122748114166963487144017882991932813099740121448913162416764290546697749839255474220806231562223382393925629732964921021111153934002448415040585501310554409352200328968327995081454905859598215316881367444598972839855572795147904158367554525583288608714194860544622160180535931716844113465967101073793685232120076702601637561050813899117085184622016123687609441858349632535725516248592799433677929265312607596774273943485921214380648883562626741130139208247433795320682530493761763448313520379766229843591316438955802789699273498450913594856637400013252519258163352377484615042209713965983513293409458624042905751456668407694398201767143868145868010942799085136908568687756335344768119656417061277522979005976040979730539670527611251986438691283814390599600981152740313194763297491263596610485458000855505095834480014907797303551655723171717816652747913942908250629619211434134038207255706940293116529097507682678678660221252546673102869302893200307605115977980850765523903822700505272120388374940878730991787135843930569833930022583829219403694615220689739964227472937253266747435649680642117256979559156604117706947995664364882030071768450911892060462685882198538229858973906540446516998269797145840356784914815329051713523469112338140037768800769850594599034750857432122670315307974068761125293937050871634396212010769514151553262845509863287162710045180913166119900137347950565248405565969181239445017877309119943415160513789197089712489247465561437643928713375381244767488321974597205136877291839784514425558487060192879955986880795771910804189945476350082980900981007703415583546829030294712209791705728614036850693252483652957375239123345582867737600615394418939628454477745724362570590159155585151271221915277836637159574011236157347474869034427408868116327196869904997120761100025212100733689756025046041458502903291264927840229592470078728290983448846505830810098962904938103868579264193296051657312951643611173071254059783513585013257865393949983247766570642776009872602017136220365399505451721327291579139657095897065368109569812220551385616955615656988387228417423708289548784687475548281825732107290268654377629743128540133889025077552264796589840358122239318170870893073256130815099691860103359222053426919850713520291067440401608822893722317645450095963383623929759356390671073867480241986637918557220840956187390662665817530089333632939543445071926549575371823760314554114578130722548938346485229626699319642000852937498775785859366790857968822868101513410029019282411261568031069126014298695241151367214193693909410556226195460244723437102751935388050575766455869609623852034065912074768586541385607419805341662684298039431557270218383336064815104771460727676381301179902962445563056514499470987717157231056741149062021236652410511865294334121270679266879349772908388495041796903971588369158967730577887392129716670805012085436199726668013632334846433560735797432784777597441163633437372811377600742428757491272170821744651981456328056223047643973507717668143199268957621871323528785613108961565895142465562740919521404321345132014108139801972256652586796173797966576196115339357035728473847750281379872787687254603929399275162621988679841763171019278467368755536189220393399479430871142620966936293697566806922427875684958188928707256335559487000282685340177522414897351836607704548540514703541649960442689088209966114919396013221298928374030084093926604806937103049519340438806082666776351677038745787157053537027921562853354885776835655952785441946188933139798340497258969871443795728500467967511467523988658827042092928414384212669516648925565816283778153403769723732221093487349405025029291288274701364846067359172135832788134238035138988304630547009291134660991472967874125532562186779596640026578227771817587286273302839841286444499079454602249689933153001909261891451243090613634465443437457948774020667519900303430488031989099034388224370943829552894955363415841998588840721888871230309160669213819426561248521346194066421267245297574723597133788624583872314483774285440954135314208132643042843413896529011317827574330623930305081553249740796338376250815340338640766678710921206344704947585070482443477361651996266663488625888223481359629705762748107987032443358984268831940946706342866331372834216039900498055894233892766241282262655826994323251995811893115068353770126640030021473154760503242355141409867563300738528057097641895340063817152628217292660262535284715181516503129026607183770271421289022750659479813434975152146239918100521906453574886053680022614206049754274562304511445072482518248720924499808171082792410409325451780117443267996689261293319900503868691843948858556392551273163161554798776723465188980949866768612565409492708406704528751720090644828650353653333715161109312807638175269011124955855828861177122902686004833110482550855797622014676066597278252787293131293354251496222323257492268710862615426511437986325993641201952827454917487985311008957174849266204997374704456420064186644650625080634841927069632099661659881330988299498811281525529301765716871431727787695440210928168215930642185426918801296305122628912408966552118414633778467286938096050240628008711056930657184246326050111762286031416105995372409071112418497022697692009898815071273042505456516657180799572117822651720043960650022169611993719596559357698154228499875718568748342118311553062398417707827911589336677518587122019508211946756518550980517919842699488843813007399515792831195298571929914278280520836623500291615500322580000870063784201509257155239334405370401647594122775917538350140467453909034957511783727717002064624998379221806101362571171310109883494957412932258169995055479036188238082882535650740362856532356046559257149184005316182722821445524106922081812749796381118752464339571848376963396018567319665350160418846728142625718160873998021429894653509668253412836569317759845094492993647932757401694051457534201250467365149491111394143004599841605086688593600536784966157583097972918104824976708422935445726133092600725715806508178320408919032807181105996742805992501853859318853017286107817309072033856333060238292803095004213259257847316275650583275623898589373212011290986299469206489007116449332346859155884701410082855887447791991411311119908003510900878071741610818892585354249624966696885001616365576373390112835635100862439186703477525529139028449503733819910737497493199984648297876394601398539246916676395115790911833429127701910515637759316416008151433896040294974528624843716201190776137275032335476283641115248052263439041600616277140792462949688549575230939102457397901754772644944333695313144469510534629831650720456196210821233099193809509028518680113432509097160933669918945019251613800456524881056768779939921849143505413451560179819776829278060155182631013256911401722947335102830682862627560438772112353130433384455112756394614927257520367137638160049429357501190278356183179088360215998340775235178969641770733847124907903214531720192809806544609818607804714092775058364872450503944860760513336889344448682751440607051212268203236901056904744030327531293109926538619922696712518710262728445817162017125430667306244039288184364686241585103252637281719200994753386057507062583339598260430246029124055563983367663655705554859660043007728472053642543969740076238262766044099927561208828150733786844162974644035322283358358985494136312377433737190794786045492738103947955359501348580009350982239092815633105564654102349277885700470259978230979614792494814236725843680616403075576328787794131136370924527472507338795226729651130147337065721871029886425679397099156719741787711168756372917230894664541806470393296132766831727486539295770098514607521700931505005719390588404441284445629334458788027634253052465745302838108159926576294473825094021458318762472076885455383887308601963555349414908770407788265082572125570937921687406901159144094594330819823113306197659182856151981344987041211452910747863635084310255762959563516971145070695666740587587392402816948527022832315935278253235540615500145682173132951451998638820757901258283384942842264650359961288711650942486212328233104055519148283191472667965925485697323071072886326986453470515112947615071107846439403397715346108042308490513229893213630196619688814140246751333458076395516607768361064025353858775712905589062418272364724887397858365844928953904765184652759530422505577239593658034947796568447467631079319922943381038942138185030217646350882405150260935286085147916901498190705402992611059873798043518261109346337208130951333261106163708614316917329434974453102468465125396625358462254512338452796842146399741689508984487160393069069424820079538678601993868254616213857694725689317217166549960241991309332768855164513826548456619604246861228271024850921000893296427409814473898879810621227852786939358661375093424847955012583101728948175491341822999113388302249030299741107666676260401611586592530866895655744914688852904340647414015027030293849515193619946811942550017495941893167308451538177036592789253721570310361304551168062801386129382198902296228631527034838436808264600964431039082005711185589821107552328969784997360939830492451713688602300978527210117060844077971192473371938843330830793683133553309318294889441924257058011695425666708368059451709969045587486613712178651234931991650444959818533355668339565312903219526937483588681099668801357917725298558532184938486148544759704038800234410794002804905017593244362049352381032800208164418875873805885909506447166216710377356309412936261361493624473625389173725996733226157189427198838951828990723153181764579002270648224995361026112826584302899183911785279147131843681182449408976342296215423180186037382737871171838087996767907231773831134243472963127018215837078491437508253556201915296645478436250339237468496868243480944147321180769440011657857852593563649644044723108372507620296355987782790922061738399751771920421810004335998655522616338250438506589348340763340668330981088091201218843711912692827505281066474373914904425761395137162112630253156282286757689471518155428909501534724542807068514873624444269547703773673012065488758442627886386829857189188702135812928768990255528309372898244400110175240963741380527190856156971782086831257363301022022860259694809840044857711247853116076860313078725258805598941052963031378485927455478887143655796895278406207136595152968322621531237472244012539409211069249435546780915799084125763325494576997382677461150640851993379618865757531472657075220280204730896368861048085122592334026014799385981054586864227195974632190848066102112657377550858165212186239346287101905401299655778019931638276865568830085231930726237833151865786601136074345404883791032083583053179601236048555414837497227768220876851222295694443713002492834853535745611670102141945636734155501688387872712409406099727160631280808128943017551642089541899759515641851533805946383332059340207046327231943160122903282640126595764227586314341434448316046266735134174011231275773443826719169950383044029807046977818621355648532090493922140648366117532745264563629219782246370631588044327728666774495476834075508665232125024217767919376763508766791638673323796397451314123606534446431246520648885278544863716136464757691761510203019980539775444905649001507827939840974146584271145367805164595832404889740170510998268076063217692977203447876579687064162421404970402527778592584102486331250327995245962811009358723687004114525782244762038337883531510162698912167310244424716606475434566760698630154281816880728401219362784909648768327450648554163581674425555420462543552859934267974684507916218147284304141665407997757967478742385257671833582114324230429288278621774988582220070028130676444015645098026842646821433667783156648376511064183964455524428686802376952117436184967634757382990733282613211210195352416744208325353370543907327025109817046953371644186197827974694701239914158890787598325219177935833437180429149600208238194646164718565832162145785354529097315616184198988786617908997122226223883488685545324364811028450092505516394280827706325888935273018127680666448093082393445725400821979338837359857907042902934037262381247242142023600685594439753619485109850811285374124822502555686475766526895571750287478038932146912906583682507862574595678094059228513905527768414476037388925395646417869751490478064738323402030531446352331364681769441064195813720074818302955642268221313344186006638392874580618973684092485523640639007472441618818996104386918404429936450313590135054290655196311156527195780932179590274540877893214781915172217343447629882064699823402988985155601170152419954226992101127514068382471011574550602032023879426535312023731330117269086080854307019839578151431945836447765031942566914767207857717026840429678488128013128366559796266303712506898106149556746332749249862354290446393390972779508791256079856813613637720898547529148395172553901467216924178099461328891505297918046714117766505886438675303853941897726976705113187617062390902763396317784157234506047507538396391096390656242515665869886322174462627745630838532116800509068941810339978222896576834541198342927996332558681788576880542683400605968451361961337273674868918525279619132457883098664318762014757285829960291188220647024380034713562705887707912803207200205939178493536556000846870597453615358757371885697625059220850360943389441563906388806452934145777491960710522847119237507309259902380110938710688895901061619708542227825645862848449030018992267607934232295239214573253992251177882216963294475802974924412824716141095599195818903689600731544815408410951419626794682344648597428042530002811240521584589779534290502731536640317002541781870360843987000787539912806837811452971342190722262458171315159635188744018732582552392162348577112322963328595427158370984209498363936690180654707775543368876603653156999863391794206915812277537960298248727289098999338416354600757035098777123199740668228075689067522441151153862066914967788432972525589737627408416050583109727909938723854638629474943286064074154717132713649211157599254945379763916282260858553698293835942859835391829369585610693960897773094763040024327069098671324131707179094100625264904606746670120299229819794890257915661605554019122360352783419287945493719520226571490746561516012532099761716734633128393520540902047639975757718356550144649437431420551533431272708829950723146881035884210260616462707641399133353717017829357754441650818606017448156050198016415158982597025084037495656978458578391431984201034829847576546495355484730644981219133763750085857523681281025371135358719664814495905706910921820010417539781752027019136349360134013392647903690736762044290892116558399695447339775259206221458983774234695682579613305564329101850338609715440702047979237659411037924697171618926349532017221498333891912101095421241375269311738303748769802603097513959377924750235871263728582006888817709189743371710696236570582497521626107416263136095139193848191103936779901287465358389981363055273079113765023835317306382627968369332363975183510040487709014460934355670428702868372418398863710398259974957999611684822326939715106000197181720567660101908817284768164959809149180619982394635895473131359637487502045275528992371662639805825438065045082501240145806724570496765249810179565826360077374836291137679001847766689736217219975771571167547386323448316919775780125768312654907621135066177297566602209558117958591803303050881226183017593742132736589943167224584184284114427347439392207133737070413617411165958959015107688173873990927117076922594012428457599023434357995526712738465323821904469267064952440979834445056529575424394396465672951444618724910683437691713354279377252238709465462628182404558514376500645951864130008911823164261237660027211778046579307016460010664713733366731346130944309445655562119149643112328032165881054299877697681800156931641045757465630331292224166109669337048404239062449700539931662449983945259447976736550302683551795148502018591645886587579634366527727811010092418051985151220455955364985081643832566420251617640129598649353963170356097526879656978796956798478544884827191700080187642783413745234728372696763340537212801715379054278067757934924613004251732079934337522581220570836535542437469796800111789451005833622924277614911240483753774147228900786959382517274178055871003479230330900133293959486719833292701465511258590706192455857396246218843726526745221054974174195835012807610561078959216115100444374189113834338895335466268079143149141300944237625094249919963734468825437102193193874266020238143578754834759375147065164994218942733143027367131833250725906188680949654240637450292261193216384986504552108098688900294141358245759045648435943706330785011088334626656087909808150922647575586991234336442765125581576058373975050333933395490620052714154327449157627271168813691321334015879881949826999156747745079821497997792068158754997700506503919102594322892513102587694674300674015590956790496896812186173551021831429932068914245079474173842152097732283187867561503653097857041190543945456381870606621848922643321717548459511060217655817564808371660093523023696325438550360818044909460882853374686298278141270438504660505979588884842168464814352166647505756310356998308167184583434600779483607544077199768583969633195567616336108382284039245454275481771398079894155181456443439724633531585864827015363496011456067343416356624367129790034287734607745674594059570600071480059415054198899874612685470948359050814573692166487163372277814084126607917931327278370541291908768604407685592733622603375975103044419185160848369425833908660479026466235673694090154737538915360125247555830229010184698790978105002455186017107431849372366712404599774581130926934750826497572204234877956467941569767411315078487767131093592508248735985864396640500719496332170505254277836391123048460995994098687566087851488987289710652659673174692424430096362246045292690605365477666036996631880356613039314195670198069041296053190611059567817693563767042486353801634804224482548825043655164700392575036658208649828509246672250115961136146659246804308411025583105513519858314258622241768412937619029101688422369995392675852217056626655282483914795541789530906849449491712372101219493945268889982931388112137190181546073062312285429620922848445932436740932483723080026705628500320321042373602419464219919019680243766605525017980900351631762798135558774450853993139234805131055612611700803861248059917589520389199959879494084140143527430273377486714476104217836186946646636559809114480033222733673945933906799020160969354365744459608491302457100995163927945410445213738801353365449067385070095859018810228130483189361406326325945884808404570668543999467736342985780569075442821049588652326384329865377095299440949457319405195726537113120271816750403062788584653664546946416663634051681033396140937712707560749712155409433321315826242556034486486213478157940517728519116511182375865185737083927250838987936012500561561829504677013975891719879301451257725680695845261013124491135374653956221124322212128171435210795034250054195318099709856122937071912700032367842736769393467261694640212123702600212719165962084118337698988564767444905012102752767569006915869845845098756281387509352595744529699415363170789082992294942611560191242360546214866527585369405329568975527413987561331901916130911096830174315687286683685401508798041372592993903913647873328475031213833586874020007063007350451561253777170871325809033910085863718397945563567704791528082026665204808178788844510398695387185992779699423510052218523963605835626291748186197429505329406385626532863647622650741213622558293188427492122285606419603472368244284690930530856267378667582566432404556374958581660540016578798651051395423141192878605674694670431497172819480859187317997121818699339189274464771630762538039411711207116071499933401337599468641569383333746191350518345146352788697363374526721126479218895206391114197575777944785892571249841892749482201309702014826027377653475113165730160336043274202223658495218743597908909633326605870713462349472329283610098747509730914770962351028887954963404960068855065450982826566005497640074242848551425485713199799772355621873386556626881829676865975483133865828551223287455425568839634267732254163337919388161989963788320991657644365218999651794081403410002700278127419196367001821702144101432986061524409309485138742221106200068539467137425009638750540872690268914900111335775887708709194370847179161026800405125498841741484248035205602021164557525328246973909892390074665635764272810189533534650075015786035898252781678128350991446292614283584270738663329937031353756286289325988412344429925922164583515088588392817272291221664569545741675783080808435934206209726552034787322201342356176503214670595022179008712932290059799985775451219898742286312203235466678301813434232735661602697928487292395292939537423291499531178474199216461458198468399523543377321878759533132579608439437751624837135020564491301612319250227728643669682852837546819261855698839550955870498437951460901717807193263451251118830346617192797994554645683212656551297105718875626162544292528765983643970286410642967918314976486942743271338624386234348382812210520079281282188245144361499424055306371070344052068500208722085873877492655329758550488044606354091724005750954599985974908343202842299849367511891374118513086841967963502788349966026663415994932884144052593827263379713383719704756264625962266020728640850718186043850692894326181393635222506643683134340099827903214790069273041862273750927924251131486336856977273989250374439694846309279809481627639409896764125888816660527152985659248924222817579207078683606692689726432631919010367056504219031481213284648929155950890817227119506041906564829317269841073669606747220665131565821513507678905801554863751845286450929623068471486640186242013545006186141046330504151808129101093749109725912670812602701382606033120022956814719792603777671647643851020217080403237192407514478751547782544611918392520849016335014062114310724630114195451397399168763073757853308983007479042904298350910707551912416131842470481740605567489828624839118420384073389203799746170955197390240451895776370062193226573155589337064669839141168852286119215520842832959326770003088279937641066597575563081506336276680395976920219643944500197815460471016933077879135203590234046627616692084039722453607525659126299946668546576739978043325197731151972737998507454202167780835751054255990993319770975431629228092780459679827870182388672653302477364450323084881161856974184985177445186299019020009663191960950932314583158601711135166168305108848259081721252542475706262700461767731052341670919674634969155853817702725790478627519791659183395675320877594177058823178292610903020083546843708354995047642484872091340017761109298619775663887441594697460736481244462522168684086627659714443081767085023456528162715567070654083734215118382758074448999940113798142201859476811271992764140916339047211337376001746218844158170982436761908855112604516832644890864151211290249303262800691658535356116564637909634407535969550963535341842767387549653969358616298364927488541467818461764057691639128550966433808834116481924146370950489639465119733975859683394902975932187182790368950356013885505805483367311537170517262989719459442860336201782817405378801612849257892237495582936300385679877872344293062811631366204639596793257713443116029687027790926327153274165664050547317699948541573652603925623164335858661098452655250227614173744848196781013768253033002733725381646705975237327513810711504337690947689163917088205845773871362100846832500195768515233789809759650318196807159144336038813472906382822449913997413710427082421620982472747508115365781907968927776552120509301323047608403912534275582232926298151049951960303514421209709854744784138878828311721063801957401656673537327500629040863030714877950116089893881871537588456831515850156646116559297276695225776851258181777613894209580887811067182868537563879649033699993175873605276818727684948904751899869796509651867161278974219410930813653168216247327147390905620369135966738719224952033178311906343799514745270725648149382896758104483710802471004408752886692280964212277445791247016154181663987508447794631170733922170448424783473520693535888002353592020624092990310542610385509303893669386010746720559283890894353002408209325740550122214986412240495814152756641474208092536973483617334177938812720120094830691968081619193932828960952370140700547677256106630697007011773247206872520649269544790071670946333291374430586391988348181998701895054690598527592560515422125569550264910839769766040231734910755149950718054871257819194958412536091976159816995244776279177721972865360621643308851619393570006388901798273951277487226075797349478973722294385454344574726594541660467350793153604051915937610800773922593863795795231495463503186186722357691743628400495408081004481356162039668404668373685952310297469855783342357764576612783546743647707810126792044001504643514231967918272569402864621778691597183862754150764847724858922858951586180546324412508358950178871759945466852241712477009821271803460047029974447485843617038560199865472746843242409298831213254963172375529151424984164735509045986900889630563921730613669592895201254691921598287964134894573245190893742795873487152482567329357308782115455427014408652586321932626517472691818864460782470049389186864529196976004033156663633875075471640613880562773341797935301520547748553675525301733337047602407269380629416520264101088905446215669638212848827582664770626163032417173268144642995151107909501563066861259108457073764853786998081356356738989292445036504925074015319633663131593691951530542947959643022779527192292709211418013572412072121153010741325049186354636774399801773679616010784150392822486190700213560325339283074591666070968779830796791691072458140811523146669976862602476906030670000902533055602128154871912620062597743734408278146081781671326183960237339823469995033718489378668683692065625219320209625362521234385974842832318447456998419937455825637046643756690686891138245469790971941742136521680203043062134606946974980066571328256035642488157589638226750320835033317865057750556196113423159728789130322249912400767601106900123304918831129311301863551729702739351872231155401672592587035659088385762099566548733847010592555654580913005756750676028844649826760796004147403836175827632467295449618565872091039868249646778076870313773545310991472707139574210439944589828405522100307368501312807662542703514240366822252346664899703377815049197263319597843802377079695577339482407245243156767939382005362018559113081879293987958793465451108227769047758190474875563840950732959301980141379701302408284503936103640729605294684333515982002114805877511421485438370226933812776517140738616440885646676445058457559126341251237505958962994895483783450867020361147740365195733300008250025568019561928156027590047217611883011529567334587324386621410298041347450007380656981543430441943133977689588292798328690090531140722678075082934590198623717131799636645212837503337178692824789094943438232629206790377756818692108947713929893362775828290470788033683060987033246945621557723774086169094925956466548778086117580130038177973120406405570213802295757121488169821912921674877496538400682311268278982822265184298200840437513407278741116526208766583323941773263045522456128232131298454248407762538592258135738817412752829231968463229049356084373808260415674348795391396852448897256213427124881804990634814233036826980518921397101849968155310000783203501025030790525851544139737928478175047771866745988963318759463125446945139403364783197595721342236245181630071604153239562361072147747286380573359988763860997585300286055993776043554829214310250257402512006625127359189704498274044264197714935809701326716455469420826842954501528258560089501114510391861547866788758561455222726243026846167852519580954993259543444317421045727335989097322365088348661342745782367074207741712818013502905590455751823544273346624405379084483840234418423666287415871251647949008426962296580745710411412668949192349347793462943247727807329994095115595626143358179107415695332663592901348162847502652012101273839948998868426666529802549237808991659193321151478642542115730218687337545254181308813890566522763110084725949101035173746477377938582046507179793838611465273421197835811727426636390366941024593444204170598362326153299639232766498203405522156297982761373121614610966228680696059010611316006376026925572929802161596201424257129135530637526892481975362145876673615942801243224197139474659777374552955727552092153470156422725170840771292451997752640152323950227039649749384775135492491319712608463712091805687155760222563115968733413857928714325010813998674508670554831155669063879107965013587905990653805039209813519629237402373006904001857838669917261469073688070392443338938985076922786468313695795020641683867162438963513734803922131694104425112423192273699213369050481061039046595644279837385483429184685378604272145617161672380253511473711412800031968506608174948760832511992487579327393084911706226743540937639371053100616332445766031293587133277658657464162244034734747134531058131206647930677475237291799046976942521555814949339356232742116943307459049029949559896203754700298190727201489529316143640089128713843088309834519751452144146117907761922691655695990480322600827903440528895896956106211747667059733807372541291079619747635510946360309413461373309215999203369759913499018059451782794254868653144634836636530995948238930577805626542488068977752765841431731904294623398183509411941760527982898126102929266050670852023954928031072361453301433569147186218042327986612024402945542862173168194312389568399900908584745386071702110723375104887062101365134198473757456977220968333907433432019681482117202560791375850370676847135854156488428151360873689034192102348680519314729564460846229698477566282529926790971888019262445658981693391827057879637083746345968158056542115351615803775454274075824525830662952941079178344668565727466903628953471592532497995777306420146466260811500430525978321213004554831607749915744651685799666855856851173296192132307833336138035731831023935790781355756177737631705268295899258856889998439681715272409344955263032045757180150066543977371645753429370115817524752753314298270446870795090786191430346390825998030785201356183828041425106687004603944307331818318929860513639622984080957088812898438568427091882516756509282310182360649205343170582048680721669421229311841386722130930351445242088049404237476242104635757433556458001642768656248228060393072151118243287363345460223453413761895529598474669088938120454913322174349508504105884330302872952228335703169738835178589501465687591975517537210423482324415966361158956885835457359067323636554655350374936925687462463869278144894071277707454053214867834416350476797688386150117121170295661327596302214321913347742008014003309297285860633273179643356048314631905899977202437886239567456905342414118002176429870741067958119774968540214132073908815608876143833507518240537226885045115070387301358251622446576643374862631320968679906695287103635219889430417477038175520006511167266401823719410059228205030636227529127908892466684126537051872262946058334246766921642339723880056757468382527573841887665992659872284527764310455134554498454717241205159165425733391093719737519196335363175084395765031869036515032013485074325285016746498337519886258997288541628511311890634438756926449952560888960620716095120572571870166910611128448968166981085016061436812728747101174652655744151040935000194851594616726858599867685129135003375145468136766246981634971797845929387323178844671245143690559703534159919144750047958284658377382314471535679023052802438361858279722983203247964263880299497215935934096016369499780958037732647398207804730607384261403345466839784167350176504144746995708847070614829242978722297902869528719542717964504775631489763387465384015030060538322961698681884671794977159990013474818835457816117015901378940651118756157588905886537850910453829739072626565998479482798553055878872147956550096458216805834614637943417097448240069684296727205667269401550691397327238250695117393079899104476277008246460377860020234304354508705658235529882713782188419935318522134987847891749493595804411341482794578916295325374915431581515918199699093908734091529149333652318783206711023039553840861049925203244670886606791149586464131388423264980407161791936121249046792934975103043880024394323242783591977725016806061728696264240475735352256800144036033643796499580277275128735806355398791418878822757255511762927466004297068440468231559062277403772056670388104980372669557428467169065752993045370310961409272553270285464448335217221649529683256945636527094885508845489397134002704658346535879317388445213205608607749614545127093569994438930116802120033524995335248852518226109180410165847144014676909305907620624277010176563123135063592680665044971483512514044699656555327289053203517158470531829389565798732959611600520807998827521720191100512882862117659825668346275604009228761674192557332576207607751403598455622978712646948687309391870133057771140535966735852887516479252183042804200136084753113065548124357737221970039461970691716040536992736604456138489495351925044062165403534978492324424059712360285884513569673412527194506946259316885961045385172214395219733241208166431675756744031129805048189403123598657093801485196583645682363793920382179397371572406130038177093178562486238440614549063170124181359588393749848512756713755372270064872157312303131445083048902881728629477341883792576853920887462479032676226986580238973348851221257812872492945032293529570634429325752881416703340099424246389186165510227631696629338986234335768534531447093836126817058723048844994074768913570439718743491359572427081521587614047574650554817497335439610119296673413547583509775273461900669641161606518233519975816928534392010458374301944378225971358158012149233622911549302918005200039932244428344539376731879209275200187214252210191031923459714185270850034965446254506589177523404326186859426084729391503227173735012674315982120180207144911204936248034351061868791246683969517508325873204605582232197557986255904756632266359900778923474242782448682683258485052157434378279170051523263660970789563492156613873756959239736318361880979373670290727226434098322303832885746049896277241392311177062533993782649479153047703226593060621492139730018223998891400321553234413903788036244912516426988047717970546777666349983112090512529878197756267075280446844578781376951665507436408182973211881927340757148559489099389309331399971944004312009254286802406713366695504045538151264271065403829747688869354643387553851348718508106694885701044137341464280232785241666898606591894886328286004529837457451294669454403162998591335100084619021042928115017671467097259702434119119169568613271075718100183604301742047434417283036342870643715524611180851157295544248976570030748301270986069711807443624905107339139151294512874418564579235642529130302388199953219581051380464853678495253190100655456426964386512903934278475595321723706685548623564661316217497627439193613980077188446821756234079520549877036157910574371103204016375545780023503826234170134696404212172509969560565677617669885000441541852028743653221690382944562887723932333516843895010920355079159126129308054632849101504917703070361485681756607887656507483347287483094529775304229340328947167342403784387391090436779854635501855381805275963820539624974253284268944236596731990747338292982792397055665169581488790348734186217950061835671177563912237241629996193117089780419129175937826919017270097474174699812563387392474508678714188031815523455144090500431302081921672103061376464928074940283237735499454625975237481081535044450246985194396874484764607181557301417540986543917068998270005270083389946752954392673444863212941303119404107795608919267334363786216612005600827350801853108801155377712672483663980176173777706403497929976689980197557956407265441381842276344255789627041544853671990229221990709729300500481578438149349891937262186768857432072379980451006380478060948030272944804382208139160346156513852666005953054931018429977709765599470443688795022585455066728422012212445612010838692002105658341166082516971008146134885406752132990714956052516823844583911331891743399733466089771869680544671171836440458029721524366622673119441642032091887662315646079317421234994582354720693446649792206430518080476733352982678476849805418400145526596234257371829426431804430252385930814482298417982108775767668130132298417912097720352093450379563713424151729696398523469142018696738364457860756946453241277447870973852785262107338079357404599236038104831939501296731704731407559839215869619415489737967603439478434124068201294604219535711720603928116831277470646837842825040730179672448245613765046331471175512095350028709921831913080174357848269839151597180613379245948251996473418494768461133461078931961507242271000842934555027354538521542389765222507744136767200119780125244375788321310554985408112477298147561276938905375004490024919550494859239597234085673399910175040470338950298184106603519132233189136650835265170055215153088975116967408149307707002662103319390889367281842257472271290172867423039919080735046081278226253640182668593698289825682368052926862996332198822963480717289878230038051470961899301853990945287718468874191585298030320053945803732218475870314843949243113057907529586316489777883454207590787869195259862125808991740864943497573356033728952227906109630812323736977180980889603206878767513024039257843478997191239988616023598788583489302936917535261856851026069754600492902511998388508842715977053787389866258256203924738896600625220410001913249350757341245090943714809287123401757572925379189286809875558277509472463377595869769321977491164329800027732068991251846588543042333885886172860024737825548940681171197275948993964891883432644656799697393054370077745989750104572585041859747069883780139731041371505030437866714422570036137743176121043158378086420866824177210889958071045655981860979257166656334085703029031950582941171186834772635135271704008798576869550282191256065644683505615488074904038027531616242694245301551020093372545307735703938643814935415359533739768921260742091537605178718025603140532734158246871206723140802423627884643891603090874193627084589763019102059550541403610349229109173058671744420124654732369522345310057022007566435322811696890318933506622382893647259089335004014824017882025913686530604507921476247936688416356517291370137858620570528839950733388524286180247087628045871439485991804101958287831882903912874423817852131071241245073082184932731417427252206734907447347966474318886574992320554528664831397262631270104962251102986192146246135181254139532334672835617483857806493101797013246909575992171094333638065676492242037215175587183102697042979405653636672795073356370853558251209061141870561035048286486466760440075495226505993873041154164556178969845145656154763776542798206335606041594218871300255242893473121548898565370484079933760316168096767509680018700829792237329002264896420991600580939748409211131915822153743748122140765143745828063226830355544796315011263179802062914523921141692203546621639944883329258734255316157134401913413403364764561232670251434680931788592500088069122318057740853710424108711784632001661391230356060173023494340060075626613313503565528243581225659697718273525569768926465110272164325735549907685221478399218631845285267301010235916182874333480933869415752355972881442101443157842792408885813838775409099554085763343301966024897250681538945627133160484704824342810352734591023102531140067127968509108493668549649899821375614374969553816234116241398625143440960307484331705914350192327951876470238658724499220368930870662245399338970479794310186511143142726908674959745581645845960681412234958037270029311553442760303047590546115334995850161479250480260867125207485486426099776326958948294156920644494517651751724245618474117870612435301942387189429261965980619661364236191381207279704841493224010588176763911057967173422789049165600200492888838888222785872700465828358588778634397269542995809761256649480995593957054338236703268425866832428399570731724422447708467883997890612627624950895846645169032615454762000365695942178734084428187877126787725861350502755113577324882177518736332026354383215848528735001236176660598723614281227214850495355843000705114355405548166011345917824737091402440912083500787047482197854871701923797973058676081547724171169577684734019550351151355301492943145414012077293908849385296276877553491708887924743129467497497394045748357927495362761203556238520138799087677409138958703460996854715210915838300063595929403319187961709875696002444696280539635768996644060258564107540787796700923782880786638591289433925420843309429247917607818038834442434935517675907326134192836583249981969335044134447738764381722125856021472170333098454955968490432427930083446634501201262581369351958734698648783009740349472640123769091596551461055501319137051023013502879277394450489094613610860555808043808688872237842264104873678464406519228094255808812883006419547908486549326987563860519634080663213597153141331965599684307908059593634281051387746149137349520987036221661515691518668971852061652097827434112402483667529495023928072590067278488892000880515495385324209610835918546294818447590763110872253952604645022631774643365396871204987349080259299279458569438521127940819028442028933101551507593587249997545597138618324511199464530057448633009190916510627468875747889601254204417956860086155922227457856421266717719281697549296607568098852808881090065538572653527565638461889358851488518869477556557419609443364546750844049141929062008822631629649193097096241729796854160723041778682298805224211560078337427553829523905542519985171363760644428032360722823469272115198823358133983541338267251257503804035855647772509124389254445475877907687171111888488908643070506761649290023069300844969694870140318849595539073660579824484675468715140380965841971799796492292570700547719975541937731732616246456493213545297597040436568325651274443556842134264570379024149566336566144019290864780221896700482779683296050091090611311882467029358982728460674455976076131556951884441077751976938243922967062512999873561341038836872311327298172790805376697332537144549582123378438898726195142487337011033028902899496753391004496884593226799293663125050513232137599026841673158823780219728534007259836991128839242194300118801502425057182446368329166256148514904934411022899749202657915683514888617323942694983383284254888091728609015595144188352734331193267304782660805559195268689160144033300189929524731092176735007050040410333781054440118410105286629606474935669652218893925690656967127321184267536740876601695930902652062978589359118014322139279051526789985160460596396899536979013255977647271891632358232930763536744797745844211935039900234649421155826711601738433647790737651025161411941596596752558771252263280168217274184345138196639933119114927083041964453465214762353795284435155131761164989677631524840040576038962020436494812290632277931271900103049433897642991252738019956205537417210882358393688651357489431091742642238372214066498774653859517161310325150302242157911095355761246875950195237294831288409286030266578721716450223794890238229464252069474597676346423023705790165731871766115645382569437241543042332292279166135055457919276582349476587626936013019653284332341430799037423198864233070770310923834369263477747001658939496927023082786076152057293134219725481416259474130652540600069585317273007543263633425298104436204768218535678071289449897882629719848688185154112737417959320336948601881319023407522850857669167373771238939106876028615781693962811299534074316423479989700816161101599830174414437685966488090081505417478651544489539073524414585881321170424842991968503492330468990372585719942446187116636344557199666121854579324793597193088654398213095925061056230621158441796173678691748175125247259305828362050164522826752973302402313442120816237401038805842906226502625915369720732291731253695158013317780664423713192607416927056178708716345280629553335365800271156857789001129517220901623582237496602131374637243196792760121139246278332150870726402198287958953834749639926227884167521874183163548854751171375859813186353870834496394216119076125293983203602626137814753628829910132329651128886066223546150078241768379374134810217618348818930572166527090485532323741324155204326699295822934661335136766405091741568647534676350424285021982350415270658056538181235814062630024877433179610029486713621788668302634349256265965442724948433992376708052218326216286140077876031558350089925050812413725882365269593573545655321213671477965002700443898041173252364850723419732512232008462931175455318717607597210765475065680118634651964295056566994542456997687377671339246025638732029312284238756064009506483852215124722661792571602018430514582404858569138280576644608956811068517801880097893410413196497974261686738639250781997699307167844932273879887984448123949982461565419604165938093129455146036940047069348189835940194289382511976349197846398199860781393283583360242226263312716423135790708937675657664435467294716823588412181218579074612087762979667611970538356720575862711702949630633277603337728325339191474613684063443321772137132667731670982264791726314220900369806321247863015190269917497475547731053040949060931625293973295659459018365152722183229779785120949618554659488948492670691732412849562380755616635611975089167561569207033771247849759088790335419257879797987760098347607151363318400652341396707757686261549823100760312280401030041986152601587814952339414138461149927536785314307313971794677156004536981952115902460072350585591929307521725431850901650308419070482201996234046294547674796018720274185728234780494175156959771105221935249465835687622198277248054335769466517206744150888532326942480154162277092197446639300211626432852736780184502859210312664233070949557159818622654221413174466228369896494318051493825586811719879594736494380601143655273487866687911840200332183007100368699650144400829200521609913513798476559905292866859366414444622654295409032468894000119642119951245443603359608712202915936110663565017768630244911064771330436087068026434407065940754490120179309224900374143172843048366240345937087803350679884372380684214885035656101104280579252437448374503223850666725852260137852088072493625786141429102900408206293222719496118830327117002747614991255265970920135268958781777310142473201090801348868877221159248812309632900705376489928777391459231592688475720402663349701673747103294222868706625404964457091184807530648808842335955125621402571236189248965923444547576672442461007474652691483784221061691185260830759289929991736191811283825453932915624975955032806531812651933030237839998401815344654242057528446454737022510761680198500767896742122124540809121962910574944268207581373532810095007892669003722647745970707694140683976763986622988328306374318618667480768686517799212076912442797453341803688678832659310830147401672241524455107423642249551831982351762327256239419134342057548360325851035325431374222150340667755959374630588452081481531259916309757854963751388148113320532175045007293993319393388257148154882094501724325075272805773618923931426326906846739965468572455497222602470660828102740035887430457357648648158303874302078025072281244392566683605868157085374452265289566883724619163485270697017975823979907477483275696698723661003832710543012708770095801195586371441736999267759287697416691484855667621902309673131461607513434051206016004870997912318266988227213992618604668552829724118645636936995003259554872035708124670789335815934415799752059926601446768933072648629243714458997994148904148177138204198543690646415680403028275069666903934768276679117330680732562756166776088181099396394484204322030876750762124771626533919474406827677622872309246514630911453241915599404779830984314520655508619292529509377306422167954257533712792312940444165518231391227933559213591956289554482841502355925168433797875182487541824829719268345198911919840710059630752100733339875710550299371001976672664854748431605897654852162999825098564836131827871415788553239065689626368324110394909411223695470493400599051988798442417412153943443005152064319990683547675726455048178287507224338384030176036581662411471350599691748714273629426553557017230475331071381888403650843680695813693241947918026530839787605225947234700366106109196698531171654509012922312410418806949889931561551308614396253179541147344384789620094986334231447818365813895631952014933060357331507137847548358503150921052447539214152252018619260479573607948081397358287482146138011819716317761654055987294070156027440636497726085709875708969624483305755895539105017318665052234214425211745106696707481013449321546613855121572356230240871999177726964301724682987768515838289391990397442668279168308555322642767595267935824850815180710167971661855687067010310335472314904361719382679524272146936124435969541640556244637462408288546401177297644634687117894385755765715937070750517657682733829210417799809913892646651281610136914960325267132514870959154755770162899584009765947579818756508011123054903867234396511306437402808458892996259684225889678504693412959099474315241651101458432428716584179074698985569606900764432008268237585147105312886605690242774752949049998900654491538756327975665206856408644958980800525563498803968162472617013455175446984586429236117121838810110040013423355906683220303080955188723024931183034716442346233883406861507631160097347328146914526601706694350417550046097832315744120393235869885028184692302732406713579826772995376668878999112653099671625701270807861888859956351182632547471270197777431837639754155661124727447503040009898006216684104423199030136828963724610026627430693983020356395475293289159696348257163371676534423842290077020741241673923828155257822244906124478621796225549620946400079176506221287962057654513334442292752718181861934584730254833454230856244636469114301093689838406092068950232307172675520187533643674482665357888724453077697239142745275068574879910803563486082835995333947836573161145461436553776676062255146715814086867620139529454015200548807427994950581738123756506357362824407518013467692428706129550620773109777809111708744631377079252538946142420041100882221035891156705331215491236428178037146100577790025488487770105033525280596362537300420934209970707600964545155987496294331876457435109999693147791331734658091521958921949283289295928975874641479153991468624528795973378396698511246982015891017102533042929149220502145282718467558730468833749566515764871547520129402082830267082295658254922468863062490548136372341767144168200435799963045102003151968511537623647517292140563776363755537211323662643982023569361947054762932347821285992100975667778808664382437535819104325770041845191963128307475981370424834664259275439935275455523446292585413211588331059614855308258365221987475376655002878559008427419232074985809728167599854888079180510806490922267383234222825513960098238039390116590563437566738468416424704792890271086038690630463371131989472381013985007110140584275568189933198611962610299537875386259335982599986632558848613965002558179927186379014051431016097423805563378182661784448616734218671668581494229979985638724203664342775033660537467202952113917024597460599410637815110428956454036835331088629114042686061461433716276297230923609081314745561671974973334008170006769979717780677163043083884293945925353101248346826717806021170050782884194696922990201653364465000532451984354402515585912862859188860310140486013878502900243076468573764502451306889876456059558858951413407325318720598567323751416409737329793088954598370200781492042375882469177391260137129209917206883263240802797423905122139745175958307023717568700024230489678559791294378490382013668387323336299983029360819449994869021360304828108074599836874426290182635176761432015479858624146164476024259494449025601423936500516399390480775368367196371540179109098753373629601519480025354928889614194105856370088395323528130112400549623388374098210909902476816946052512626221939488468829617664699618424701924569797239539524877353858620075665011517048040832844051550622183320975469886507716523127359428596311365443458639940454202392749676530474476734025343578738482611167133092328247543621651865427989690951837685451576780278228840772543278789233758597990427042026095994822315471288131714050825147594234941962952471115206565594091017525000437182167803899987320776425673337041546776676435768225065396113696439930113231898581292351556720331710057539916392506264965032509440406607706713928900381465348008694103188281987217428395192396776777656256748511226344534865702175790692710573886649226156685551340296061591207367438206735798003059981963097504390522620765625746535763248049085955464265800158978656328338313903551971232742969281129899782129999204168064681761539499122128007608674005944153218549364365684632273995800398693772958941452783718282441899607656809098725362194187243630586573583378472612468127070822235809556456094893537461769245492079462804187961680632783429772619416899767598384810132648607182308019570491402776574573134554685452012609158614789743690792268256361256951074798695016374054736060396085147466474457874299702420705371590538967749956867747473936082939406874003861904996975319151209134034556596646042524435533339169730081935843311058026085325732665918784004181248885939112092164012832116346159869416980104642752284438659771279994505324708978187887967765913787624494491192023593887840294480633166990220346885370452473975288149551576861167265701190318071603935509636219835891942738458017253830169468331726553561353705915404458932675794443893178001586879957655974671099876310709518524529830820461125631321391058770676405024292316396369336686571694893816099967802938173891640313648127844978436978718249328697770731804784040548003325918745905752412161671568474998184935946581251269592828029109967751049804298646487704085291951157872541961678084764332240292570262973809113685198932942245437712698517448635792533327916172116562673531095776375139723119626561124885187027569670730928605244024680632406231516890687378973604937614593234200816184074910361934074108687664824789436944479245563463400428268406566520826459696224285393528209944586939768947810099287297470626414487802987945437504067760411080606761791636267396718371129364006928259462839823068163870756889624170489318731249858287503461477501167824859065244199538125718651944951199054348859131561060756503626279897817853141606471663059260314935191540155825792929829596853060337686764550124501835574313237777361066565424610504110523284496073834409673427773892592441267765498306634694070268550292598315334452332176921569589015360722724996706520612887676584899933966841713960421768836120017515756623875284683659735295748389488250144183766184611416756257139093751917326562789000169139848332934545897335474915221483469780124846317277742506803595144727574702459846987276751191133481918284841510545542623212202379970850899458454873141054545350183399663239657294692914552652447873147511556269006987531699070009945766574468497420029970542357949040727724130254073988416760656592216183534329878564759513249265190476166060152722391048293673932202737925505922478128229716151385596126926882998336495174937871046723577747908450604864691764093711994321687721776049584483092071645740095202869183190579431554802192226857217293237512519012401759911482715026534023190719593799461521766170704343622642390584314565125977290933316096627703687598416729886546981671007441270855195180175947201388321447165339633540921469409269793018410152863485056101899894186138304545242163201732728880111423356277567855466384124085650422924578884542018050541626426070591723305291436467360645320661810044645817110503882494356177459785256185611988722312466501886002102832215379488205141452259709400171670747914625817362180857199786962909288254235437512700174106559209858918329678197824328802969575953612691031625169783843530058790781105972271934832386350926740872680515090975008140593559959691597152911925591281767687850328660805850043217743781353355481793034574401705989044763168185493913892892281684357919104884122198543917690205027405961503806910415963846671242870584448497894645370442503963129570342047217924784105984697703133822974047879987318200154331489245307142014947535445670861626535901929422360571256603054312641682268633000479920789978366673782494794542981993330306957091476598808783571243130714025426545001572601725107512131736492345451687191933343502056493296598575628144447253998792220409662460867271534338764063293102152011068690576582490117209670759722758876100714503295050426323519845777854480413961446412866219292523397684373605514609129193360775272046795407022422069412778316858574270826015975502938121110197901615605941996570455121731301101134862270691475616714859546401332246281827183779030029427980931245916203611703504196361736394047033657285955509455601528708150838641694921323179788230685947697374281518758157272852545207575069372101245798556028635336980502021355503912890002712138328884632850216552520280805731063420227011334241206334496369485843284410275584494054780336442379876943294086445835082752912653392016193394769835846231002268299196417798070658116556253908590727406028048037972852003302633719015538745433160418744357226906673933747162355888346819993695599374992693729045506430080861231587322898240554862529082358479351794487092870606301598752917251152660144994813500033303341776376456261792353743661040404079836871333304076619206903213285169488012158769778533358804984783072158481338305998502297211694326583857513346923286072438052327543969623438130889424357032331059111562623408102658114177972853646945177889953587316074742206899599178715295220491738953215110964142335599974823879099474707004071737122596371974957607966659762241943449110981822683644162712646060105977500158625985277232686211434519667240262294624784649340211788870092677370201900644616396768280469008378799174498149198426549796266910424946344347250221364410540446888176579584996977318431415453802128411307899668936831414435546941435996845230111894374723774735685128679221659671377672553828545710110440790109198456116214115980261029871257760486433400056126566199042788583416024455794700034305516849724669085008353072783342228396812128533940291470617323406805821564194199435794733604840716231821974166683094166052866808802943474602714447013028868241324652997952450894232239735771465143189472594790015796944057136638028695081501855414063103268873935010013472305997519937602457916169162593268516786773236708989011369968144475281131202908651562480515300287448338956716177023390179033708049840213666579413118945444605890176596918253589988064553886345066824313950223881736499619414162790978571058114345240376067712075823113679387550144697317920120619364527970256077432882875434143014628441882461687044237036941435699080880799813835848156206216383758536385661271818661709504502565588712491028138007069862630294894379402917492334956703615176778125814910366213250781650038096516411826504241353254195788208616916874525731476117773016559322305797848140699092104193784508042558449144486547208053742792600744071238721649975106853511838656840983902400837048332508426604159973473377779728485979083182021799664602959536251176481145476376965588421625244773080257505005912091748592281584758513430449330942848182557125493982856895669966017726630633272162577052306564018048382247502381894315860535673619584412970708293387210451646117240198659688043725806162910460386308008261390176155409559590916180682606942967847002619528898652407377157281171291184873937037613784695965225258100367385617350494139939250056221954443963417748035307415301375004938452816694222060312862278893696839513695044716281251919590213554499572344689912053223498884610617876622231235643398604821903127535232527742956727376247582244825229577588703883713659263351508305835549969504556138623348670645981678079808082644059818132278530031547296289846063333972031651864748099108570337703098783717205957756499203863500072343713864561116868763489710464674441319595903022637648448941456628324577985970237419194510629366211976676728408963725903126033894685243255485730196460293727358562585476250861056240982838318156955787916840620094889494422165775275298131434150707810639495936788443876521914972035553076449779362200774971291422544247981589186223360288309001400588192280263215646971287103005992799437427803094221379420112732906693154503645936139557062015466109993737147655800718823346105867106960851252711390687892528476940709231173744847461774082284283325768850523215645297665401803774263798535875881661335039010159791977223870188243004415019097210414722372942661211079438169735723824221714782139365925659271084290419729033994769879647508292636896861770029705787783990688608365149698937087133663774009972220312248036491047790445025735341741103107527257913597644503702215495504460124380672517498018150967254055126253447166933055606632192182817249873832186890216332838770957996486005958137830366836479199294507814806987716890349720250582098339434396226709691084926557742728229781861849340234298250579229222079461386867868326327080375986581148998741072845508856098220183203483093347377337035894905331153320300766645031921608215449113105861311974276768433790146605476174913307154881499535216665647848888739210668985329357342967278898515634553281499533007176562005793295864236965139823270305039574465055980291183347397241497756225014344685424571255198173459530056560526624780048973423251069726354091952211220228737584038648544337091335852259239081471120274918509265113586421721343346100402717187222926129312833558598880111933625779437513160403588390511475893742151756186006591204857527795702007137048514401987138752676021500315528595639853530133887840159344923760265306163203407590058135442224690431607942174659235725242877105985547899960662830364638459143139758188465799117377687657165753705923459646208675987336594655492632676930304349541668650611747538693098903109093985124231913461622374390859754584963742413176455951971478536234479445086104953375472881630077585702350866120075160438906684371561407252529083670864809957899916594106290020547746255599333249505112519995870490161408053489628500946400202985516532959596134771152072320807161157420089441425509498192764602783449789436397881753632734812452271918242723347869997386194041899994352307739511230462248002330014741163436064969581990876972074713727416650453835396363621473735039988142260268078169056095597085889819011074797555288764323965422902436431778591715272619934827518802035276140712508373955770292696464282116206614144578173314984852636780483762281906394282735013624429226179260913654575905111932983173047975653186317555690551144172648660518741755867034531200101755500267647548251699002187773465657159429021401131984073143025477822421361887117497008775753608813900057647554098431345650138609124704541700417671978404685696970672397217011155556020808384069129728837808872644189766125891898736818615378651827949136571594120115489975217466400081579130222470887089851218929604090636529960076303141726964460124428890172865184388417340211999703775177674285826239935336943550147046053693489987416253586586919612245711029360605131234041558985177752045815714474633503332527079878799938187367156756164529251842216920197313892870113752298618290489067061109841651724392141167657109185195897031567956313823037409418618877905647474827114388436480849181917108613911740919789424093229514015746754941685771773127035161957108560991852570662667770091279907803957280778823400489778899483703430854196869307985108143941053876631169192044510809289961906535500156728081066570865616437627203849775108255284387149854429940499238319487946735425663983522001174669216773209290726649155820929939543019855818196282473404576519077462225862160158599250230161717878895696888973187044458648032802171243177788001485833148259325351933531360187501670837225446865501251246653697384877219596859947256344918753577544412529235060436644685581934934258137615290144862275559040186086443736263420713148960832046158067177847413977953645615795842739286524105129736604685202033691559182106602104610654746318992629136009172335718029744351967654431329972072924029198389889176790809230520833906085482322629755587812123742765057441387841673809378389513329239777045763983184555129022852474210279835482175288294602903997130966389226375377975833556449555067229720403295698975493987642175611330911323596678533428260286580838697330025640078686662635283957299386260932627727051798821870212726705212244405248772642339628411595716231981150483665279614691061867866554765002300930525589887092111063168187421187990537565757642975016404308141072810653636880349427913202760040381624516844964910122976059394103928590807044509312082795433712685592860472445804528465946046138502128829430146043854405880748655787807211769981671135539044669048695471850381682020306035614107267697006601291782056524351441670103510258526682025160662524903897388816043879708503065616000199287732112259812195039490481960849376350235776156403651300680795227819863662746223386180404521300073813664679076500332114912722461214918248625863016034945045140471310469032270139566217519093152016140394185489734563956914528315431478086563464542999633372201823959823501192576393167274894361980685384734868440631295590701838694652794843782389952074179819609252167146511353902388607168011182748388883934822544888706395724574030775906654486079143591278345753388021525604518370934386894691411530013344560782009591998390829297254116035412624556801733288406867762647431700226261935363489032533386063397447511716800710224759761928981136132570265814694723847360894846152731944726667736959904615812404124859179489208579414398268389320559351021363436457143085816946127563374040821936405447432187293905325934717602113750218371312274020025326972262506424672543186343532336924077329947470045764048713699713272816241520282814029033648977694795174095243626109416098108429815685973269527000557936572642218303065647409444049496801355446293005340708851212117197018115550815628284431748232313292208924631311015427712005594029871362221354574355388244257485008930714117226174193916430617928927182936588693109004922459410829788938326692580927408292380434575668851055454559463934176576441480114844438364876841544691484931065866913823088702017106350894617302693095112693589978133881407197871107348060123372114991317058288694645861720554594072632298259547990281612445394663672964845797305906211502219351508619944184020151889517059154492217836076169061035022175232965564353112267515360475319592981360993800113048724072479145451980233239294713189085081243191772706074069385914132727017943448231736313305835025307205615618548705645820742307783573837622484216417333659676933171019232467743444188619487200473606588270740360528406149663584812073797532055962172787542507059408760937292569960841782954900809631847224205452097834819034378555236943355829072984251288504395660989442746097478921417001531112531173552238806772002679349219004090267850810604133601758721562709233542560048743321631842614477556165513133840523169181261994548866473271582281362525382185487864162153184374176588427829991421015223674854977306807899450869367071942872709250776168513149046547794015182071695281941266600109290823589719057675647127861968488756934113179842142072001507178674963731097041280088228721941704052646366252126647155465020570390084122645859960822321638981213307212319768793188372949820700375761873010263080243840152126826299332446063796838141669265801939839811638916715391604242699033519391304708674161817414560576921165833888874202198038457123195420527017297213804995587539463784288036427303216335594922893463312037075485614636019705804663038775520942768618208617131492449378937463986704508809082954926178192993629232441718036971311249712128901554814764317250011258087026876873340472826292608132131713916457793541003559473186218114176193449513540150529053325804703626815438254426440667120900645364157230739866630688348555775889052490043446358958072555296319839606867370043715743176030953759794456533836940701393268362425918129081556585355198918569184117423265092518172199933097123190527620814486247715657775417381133271155284118349683821032589831222103981489742752402744141437703338291212711155938693542492455272478777353546154386978822814143212258108541120142131992335416945545683600761656639047340258994580837187917977520710717689214226948503530823613565911043597354595672716543419325728549901867779169341920669886111648523544898052407430927224749521179117007349809345640839117973873992404838229744904528408449851762844427508079289860345831835991119502499903303572385188328287028360178806300021732717033804160238173259236105688428170129751960162539312509963699552290787589728073170421915436914650322382806445148916690199574265442831918408968070722127504816770823094180813362393425894725196838132267663247397112797673567047946257008809187785563684035495517331951074329974648091755508433053451995456214660012289802053429354546967156533703768811218982977965229938804788674880550491841140375277747080083323494707214747311962325883696324524788169549601417967269158389918838871883480148148469626242930140802485956248459128262832485943633076655753848001514626526820479083743580257443858258091965464965245308394634863644525018929640163069118376267925615443285283639987620609931042891141731221871031026399328490539509582351116252932060539194795731982074423695004400360817902419079785929382957078593449802478772718289176344614432955795339734482429894347498432266525435325958733329273975093874741850452925675606048276998417409176734548507374433655007402547622511791732009595453718453192664684361760342382117169366249295747473958793825611330340944619230678784619889880775263607342401060492250950136894418457573079320466322024918705461157555012319067045180928316089280278541301851698676947131313602445024305737067264817654257952941812036101584347372155968090245572943771173448435583721879675798549766660922059060281090710021120420714024036608119213414611425729354858158597347689971543905432240176879527852156819674986671468158683707008340354949656028012360900962160379897564746970033413907674232831630558932794956612355450533681517706725906927494283794203098350098424783228183531848651693226075824952285166754443042308854307906676861921670199747685901913611108344139461216529584574078200619011916194309232393736666953592578602249065616665555186480690863143502747513404058061483445455037909929119831714892895457061091900012655445581598484116140138025079780132517684257967603788610930199041567179771230628971911607896093754880369926123591657498695129750410831853747855210746024963232706884090534403985175636036688972384377518950532988761455180329509247652843208364611707788895640480077738815151777913445569779101587391325849015708283259679370455955472333290284035792923566830348770600455281609714455032856045436525970340138516068102168708684318853028924103712674116922937078485834611086119801079519405782017938369640019283270181208980139507654870242693372350579741764219455637334468969756612658743197956717821142538395130845833207685407664107483469707407139116249965498197495546183193940988497956230064358913926435573287544356170734651389176784116768481286672387719661919316448089253412444179572818945936510849111587471459032042062248102566304700224805995549090699519645524697109342105725310386952568170844362886293168328014895353588198295585325731610292697801387386440527274949467203477859713943239775876868158400525893413757570768131127265097869810227456235950838154143300535716416583040264007267248783307483697145745750291609481669081412728704684570476608567288391801793783748947721153018762026911266715725928423579654194293735544468735899600156671330676610645221575610174947042529253900630844594273904690593626060778884277789626785262945933318888055550407754144645778889847576551913107911819866332477530020766589684742584854599387964221563613158710970205764323377843052004701801229650446880666698457642759848352692534767805358004579412494910850574577154410257714456432932066249903776011976465121299819051195133659674415299203662175287716965387661077437266882127036342655292470225893102538992374041756817687321006556243925820603444075606669684787316488968582863062713678033842830022735408737236107524937969137276401740537436495220119779196068295772450927960002733231588120273483781037404265690574225380207896218318335055435656181264756448638982158146450024927974852461165248632460995327287854069940180370073878177974999833351341742079972037846332146833166465003465272909459354378243749080317389730746774978954457146023838759892945349050128334273637673936817825111362829524642934107041993054525464567969889800699243024462160094042560572961580934579466247606196871369520343856977359405429739961972954475403821231353492067570517707924634526245544982193630796603058823974869680685763785305102261331586518524136743928994590911283563772997467731651694544675782704554268114380335978559739116929960094908784508712402495941494110863299721566333114244573333600262033297559745857120897718903492301301125931155376299721057569624197931557491251167489843556891119756587554947466409149408968693519616870877848812774831476296757731259701218810881967338602271976598315107507744118206624063207731593122732380983621572139831536247815756865714417547990202834754353846381210532935186806695086686276936458107636844868709504737792095195392240166929866262116497864185628042800284441044020781808550736392519630472617007784078641876053217740662685145013406581820037701428544598879767386613350222377096260060288649538250370322675846619919720232017540016159332837035115858213423999415518184583704590195122124383790244809718626262948232802875161127475289036971385831806045730943313569856870627543395500236730706436313826584310680718329907657511832553328121626275859981290875521890708913309310531941562454194795072547138637527367337787662951099794575619936755675530237377118064556357273691507127610052900877511011172844118661153208031984669042203048897145041586332042195247569709238706696658754587554347873442419557462416411139997604939839844290109487515480355247780525890089316082814653778471745233477265354505960145206720833821116707327967356400051029474035650573076200012230013101824241898741383341893175973576605880584133976774254596467732546185966459652000947363344207855948468179819653535527659358456047168719294809133608746953511557872948753407985816735378441184425855748466400675560316597464314297471105234305834890444787957866818285387904261576977468169732708178656754162385994701616538611342177167689982470858455367578837974536793355747990932682880767293781753061369770513931276905350211637061523868184239183942970743268103755633685838949250028797964330979917758359004389352503716359626555190379072124229675585294010138403957410659077696427619758709795902446757133583280016461532496247139478377955104758508187442566414454878313497165347999809930562259160929089031640401805112696056321154285504772297221503384877999977035896675125155533940516981745447988790394634866844419233913086214922103734514411955593807407488917351178043706978016315120018608167959234878278108383158995437411670347422388065151902541146238391324879771813553905416088990352556963788134169150066514240601323910824799662507626295263789433164531603999012519369778794841919657558569485500373026412094104711558764995149701944422837267112436695074554233208764568509125538036632267229819864883499436708857748725055101929661161362971451684507696279399867012942314909754425718891823128593304689403213088824048272953398021760951741503149526675753377360014421595903899792908270100086542162618510876197555034632730079863473699052075677045110639886153595359483679060090203927734479205564797579580375670674116803922210207956656161052792916126909103963517003929119497256966364042463137668137183666041961974719652652278519412242042066075974102462146246086735507090836367679499689953287153626911787733757138093451065432348057769770553241063864054370565232954259252065874296153706305334888632918392168486065607331903732072179662081968712366394052174857948772328247140066225958864114121734947999068232293102312724511119579120825389465202975323088520360235643830763762695897602897479288490551994478266345625774800257855675101434800218141034245625837764272345713722972340995018950553206898336558750198272767626129875519356235574994865686381594816403794462641738320628197060562004998370943597460447435103483941543413460902367548590707662462295368906601034827451355043616581226955804464042030655072186099817830426496159945002287768905936571899369874977798529880426497664778912871522994196806128646961300719937572677978050309263020517933412931055683814676740986836617271499661886119130171872606893872716654448977053392600770878902417549100407630366084915780613969087991227855967100013744863840512358443175069661551306045778676676250390955925451400718607814302698717266439125754544770279384038284238906766620069125893434624393715493529578333708412560314304173238383849388994971276836180520134271709317113442030141426424104427527642791096798240665306272242462121888498221370356037830646928702481378499862850094605557294035576520445527391955483270013066873308601107850336331344200000411653721849195185892585290570792175301230553111777833703062611194440618839717657995524671966299648383478156236112040896919374375844837948787957020841750847266991718727361222051862151526101687804177109711424203807489122053918222567382384526750295032556040579872499109121984823138717750989004713642421832609344295305281247138692201252445694763861740234020187982632570589242397693933005180547642743098308302259911022721097697592834289864328567534708125690829715208008079523734430306401076964150716432461738350361803257784231361981465371038041088990431208626447784771157691933568400502518131551975894742602251218326897767621200280475501209077428368764434628656765905571004755702212975535093576672218788560243794129521465151453754907760448742196132872421875146043467707314655135744853826148811037576135590070443292961013440584578477981013690442641379591744831378153819967706832925637187885292287201630319142192000358786083368843917082322585870013335935500985198501396705548955189863354747457780707806275724348607298900116843813648878892158907723727361568860182477992398014264369812613650699532157309436820435718939464094098736919037344098074469336297690930592850115787756172850366357157284355974623970322042201159019119506880587029198136922347220080965976374253199665614610217540749612308318391051069517303220054994911341392186397265963313165409649656946868073324462909594403077664362416163001644320259075051450559823736549696528009159818715511769347291416312754119244280704108605290727491073377818364396345331135932401872036146838986543655083383994203916489578468688513718818923834118844067525676891996926505688799716575675710629420306097936747955645419512129641736555911862948252484783940887381061015718513022837262683081847568605936602168472324542604091762276251729955467148441904614481547472406071104680205863589922207761964826083719051120651095981269439413941635447131718913749376434668974663426875687137681677064756716502526593132910707130671980576540108705186560412563182539804809497712234289503552044201515419762348105709557380868456597005903152552721806500943320004285246698236678808770554439612352552192790276089348474635938483933538248926837196371354249864631947543381127854898163724460292801108590453504252104045823081775798596070311919265190181994730970338094496808297982352194217139587317992892822281148680140872749461517258705590464285578192747327596798055728005709344211045204821839508311418575285686859126732106373800690579287975284343024628023742810126375623134149943634804235764832739341522449423655571632946551536348256042902221508009066055045470369190351941466206848385501058255710219826260817980420257588854495914522109033254304365307857279405292770139716738983739726950000728780224598651758547023826420980847723869170520291709582226271301871745254013596271244291019818452034565758485098482305072186174458451548666578980495790885458741359094168501601433711638648441913718821513614573600644823555047282264915131297920180843428001339004744875753184330612079754193125052864875164318718107466129221409056790548722338702658694828733611125786874920893625170006799095307482294186559452191362428653120619766240285645496068319480806478518312474796963465865277333444817876316387363594791156268878372532158359701887298968652400445201230275723936311578556073320651255299985007628042760808917724438398504333361524520025898512698545006945057803471203300626379000412845514257864559574513108930846777944284162627493552280177945945022282078387497164101752658471489584660819666481672603164233953225988581776813317744392970903695571455329000469081436778887736097509475843096896184412276998747314584160579790966793007732830931314330534481942977088169036458365940184560711631524745158354334342006098159032078931362681984116691852478767086575837837280635035068043229464539209366881409913149056662476576430735149734192839034311285050945117693813461888524158504148178831051671541882471319714772658573976102709627296533843678354805804441817229575257576171724033224325428395489467018081437518825641650070989926520379799406244046655881132084648761805817668233293142012978237706405928845867245177635612600686306198193808855753793465854375753990515098369183545197897014114401193940369855272879686742575545442803859786679345703466604762972671285657475444972842565738427230066272361950870772629358073004894788848932030146014908349666942930995574346319730241512042491595963839669302068998777730518616809857756589562037839971520567938721464075622360511932640748726611467561253688901077785666696713105060119012391177032641510039392273871182223355394264522084398013304189531233774330288352720536716121866997043896695630453777382977576094058206626292412640029293704772039817563889119989794750337773821619777144073129640413610136358810807759857371032087016424937317497664429591209266897143781428783471369128486108715678362101902515572633268810684046637569058935441470671098122376257706863567189815539251686462220215803458282271280844568275155622914675201843003590515508045979676447598764748295219348183703711830387641482823212508798439883563246277569326873519779464761028079085504024047409731115982872687504390023501341038609763021029649836347005294573550648124072988358847591342981921652967169385250221028968341558029296254477256302274793914200926872474417142783126058983750445565462733895830701751595730654806301406949282922367863718927724245921780500065182669470120951563547349140641436476828981631191700723777632366624915092481160683196676302666664644895722679977981834379002790881699566636068244576968010702574748868309451680630200854690465517147041275845828805333651367411582995066071534941198291856082756636508448146253468681201570999770830369788956679160882240432414903161982921265823296912742515197039770151172708206002902333243484933767902282834822949690512568387012510729302695872825584065766243540103213879988191040060133134836989637718997097863053383516325557016238694352668798126268292860098176727822111740330826819678283090112505340040133313436458244511649107120046966205146468405129192000337487475357288762185862299205118042060647818058144779955984698671963112861674158611635509199727328012010418411423485625696611102565633238587687086805668947264579383445206673644225249756000986903945241190987229381062036319243104015123022410816090004080904581389110709541763362159213418000221618573852455129372273434878771910843087302963939826867474333571638767265373025122546201861235703368869945161945844180606693562423671490919818325978726861528396798175785949724636565449084521653340134013938121138524504512615955232849625117053889538471194844680995595416076234604153562415519657840479236692230468804110172059768720006364136496967732150221355356019158447729752444570543001629835843328656416293749526972483173568695843758617812748284169952379518208308142851955315846800027359246588644840925294932773699678958163265999712644583908194368870086097406734091058443850079630048169333077928022557292854621947900379956556283674656329461033671356404483242360456034811911700029970008982087376049778984385549856870238381732848758942294238149304458870453111133387170075194125218527670097209845671996052923137201095054685862490517475597175575168908783566789679952672775137435852996107564287219074039122937977402291148103464690360005143314590853711520775209638862224894297742441181112115653642423641317645452674330909781768339563346087029349026729902423615805783060224355222542857140483260082621598771131560365854688250638231651416706691818476431445972979947775198575349763409347440526557954203726055787363681733885290389625991720327717519411850589639986714875884100783183400990196382967143896539800143563255474010017032309951763455331627555475881012575166191293059681892365164663068564246630137064255522284509811788354121382110535543979228935101949367857427680866411828772145373336095910119055435819560941296409834907415842541159315209822314583081392078597244702839889369293731967100857015191962797803051848051143886422213536964475132312601095568098692439949984686578634507483950153021497899838261149610545293141362100755251996771566737964528652090636747061109158044236669926318946233398909376200871808489114362619530487786998198688015032980608607470405645624045114130007915313189687418401642136199985547423878260906220738749072450751124175569974696358254614799004232718563125550573351187771689815050851635829715847775738346412939904738074236431116690335050054257023253155970822858887315589084874670671609353789960227261010902711032882176992659756191141091497081436206660535482045546951895789639915932833526412433554253451159025856783594330551584861508539057609652715512809678297640182180716401464667192807382502919160329128922709392842677727604424582546413497865897793492823003949493050603498384070843921550234264750973055878836784848959045486414453448407353741328817763396188352616156630698216635227080566883622447485015490948185773581611558781057826260778794023034294665856830493878787192787289756193592417184816641977318760359579372855227535015124395240622767657073087553578454282703027746656310908358724367150146887049555631823428377829656157409696506860872599894588011116412046921103962197822091924219804715248427904802613147655639148697457799976264673379625963459697580945196327648124876048333806829911604602170357662229154349057914832906565153945131422778339239562232672730553740223843094973931479835432698848896066373411671382214438800670636139886312028422684453425048113080644185732548337266732231514969922273795531040841381335995874263742368115110432156585422400878891956116554287535819703469320665986104339867982186018795478021519609880273579921110762808715158951697819810822572555662241000412945749745367352328334887350513728528306026493947012751110383459564415707963550257884840586946295129388797508548098665404660637937675350472416236714625857615947374972125577116753764197632924775429414932458823115804343316934658104126917472740719322337429910400182313931299660041510654037374081936171122628676135817034104847056692047482752204511551598872790642180144589755717014738732375065780166284411916880935463470129708219441079310276646912780299605706270224339047452243645288104001496282607734375889087147668995245402286718827397705981959307111346130231302508951174096405414766713455260406485973146061865164390456279968939932419403525091127013052299933208811459545949030585408717481551273892895074482635585165948542320988872797487639712464653146178539300728241521757058187981862076657587137591842784340800212077399531842547297187233262126802950728935857273374544643877697777540545161890221517468454636306453189635661127264639561180679700541297816937518796154440867751451329929000429695642641854366804232388510310832263147995745209620287953282723146397189755555485886952363784611875730518784945159117419225143168744205489775598598494492025241308214988950145052308343249300422574145074819312209194422963353876045317128022167632330256182300574039951076000873157982748992717063997895242239944406536946634698217231463184185325390893449147916211218938543490998208082159898058872389946153813536488671246162370503216160820495985815877094602716139334287496942916907679454509421297323981323713882320315283344762616832734214994018110382128521967973567386255163522521801544269880540078658177627888168605152945114922821172758809590975003037946318370559792955720473465252362569373658745283905284445186520506923789945155266748891430235887488571670769037799827132693474224758353635101481972027043221936982592251143317946157164744002636100538015824890629267410855109751879637497216962204041325707038626160685623107287314716000104542158694374967604006158188022641579788457241575845725631275668288375805246858222380501304028106867017017656312667458652021316171538220704139642224259120018807804811165457554573468359438197421577385832652877742032259319583944669888785116938502996935937000269317531223331035742550026269950500196295477339523683949760789536946907530955755085448076080482089387990770945972581820050930215108857965884421250217114118396331130654698759033145462910172627436846939800704088030097497050680591708787878683371094245044727039361753747424393734195074539587394320229610165639721070493612088339946833351320242683604974405333621492241548100944655445866107864458590079964307158352281904518839150984832994096490720877370079851713782657310269381646961759979803970961541162655793172971263269331003375846200113666295336803114632688546494863480174685286305582310889862996618683156465077203515638702056120601698472131687886708553669866769257299812094881380605066427478366774644932062840474610427598351487240595144847962606056650624444151409189746112448881269657192251961648029310528293417314727530504562541461689749955843410171443926548673837737480842660964343302399422854359858005572553006681495158072434731500797669248192500502423722546519623987134897368115831042784711706783027695956242896900099320928257806262764640002223085071384796696063769621558184503972079558742393116430750428674198132460059992368995495996060998485854594263314288926328039343646073241148896344834836147212764490250441629404052397838965340455274863158999576516176238666205228838232991832733954561160811888000120219183136422542260988650354443657920389172320798858865328720222327474252305333310096760994427855494072175078113673565926352545298217619264815564628139968163179408489380194422749932848153109874428779474264567385978565989660493574639060445957499124016215302682572084575263255349473556052114825743835420698651397610953713298584504773910121841432357437559393278850423622297203948283594666988662804674064091841599443186405048916025697497791664640642781388089815506369344831849152602879672882423664878205353633944689459573686163082190290248892514883750186251648811856738200498018833714671041975503445005456927329485635223217466196843029575902851627355215575779133880771848999333257738144017095260485190619927479416163356676641798763054047448282397321432102487428060485172023626477445619519244161331025158809789916775050047781816671664511788662899376743343459075954073828286713947859740825661945484456571762251018188760144670575734204665085187115364674898086899248172997007995034968442086821279690935886425310754772059416295684259716165857483573189448291208540170979957729824504751715006936115435281100661435338507731580882592806656673465495270311669053909959047754726085583706821324309641917286281940950533534931925300371005077832247678934778028215722728607096505974852492243380292535231864178984068250154084839404565746465972993380225490875024330426430446418693574229868376411968471598617783503592468747012395516287031018974220266835667132585362093737350196078983253078188540620469726877794495170676083280777288438301087636897699203271232829177327848133338837760999727580229519781087622774690224584476819193383041168534868521986252509750728334617264404846170469824268531672744797839726154845295186169289549811361854851464586351862560318097784724834373744147828649763626882472676726388159106069608922254252360465482383498455571170010623156629222197050332047363390330244435967654275951150665172411659357422137399091248061858615485804280313682141208093772695094866097412151676949041031445701033581442478426577078401881169848403339091943613809538333196519014349884416984917123935232223328677927581268411821234428629374023680240907993673744382754749447744443466844514377454190731273684789869050351472520599085347795950699314107061250325137575171531201983263935856526773409084160081094309960738486438145472436666433005809561292985119067277447519199082017769476773754301064851355529320103949305970999338687787057107094224560310482339343401364746647739297281206630868399492497147885537946822771918069914776215302730114099606012596940723142549862037317834113139851080423977154837384628949287509050009888726172119413720199817686571674795242347656608436871724319919028445639836913115393271542602946023435129938424434232428170504693874546737490074175789285885579277624956761846503837884984354404229552367693075903929903695010801951192678835773035722828461822114221224488438242430439573682430058295409227045690382465392430789151204764839846007776687336062153853472393274976593284043044996349946395470546099720581006314289215855295660697907525348675018077913004196510012070588224004335645285968084545524843421914761776426577214319983616400998733745997941253448207196462512555833227820349983678575673187153409851095647596052049978758701779761440813410483872811597829560671352840177243567120917037130820752251180614970796447566076075792482670232866352507342972577608045041850662835328067859112163435290138384338206318014352014169826873102612487578449185327137655964663879575753276827074256082775283974168172383341141132873335714543169160497238199219578880884773200531860299169287712602412725099800356257149048774338666096320977869076560405325550209474674744364159314013947378838350978826755122124761745493824093457707314845847994351001326041157938419224600606470095750788718548950686735312169029499846939792355024554372687009942961552573196139260141137327225353551215843754033389165320875568211476943370628562527115283676932230619234437639307878058500711397732649778391640217956380946193802461417587241937821112935979683127278780877403784751561889955487828361342942711612261005269826634748811583098841395715814450228869819498828811272848277327008695410401146607135464472620718643929151053919157572989801128241849095213175583535126665431893559819961998264513756830107610607470676718710927071205625752760871929711048599860495110804392721663032245146823554165694589275773638175237090633664096147095950183527675733969847606492716681002406510323709584025195816328057154800034225757437089152159127657908154912739031375907295994511145633508736449111538963709704581186301933408676182366301934856183070250247668579641057962498059007978148786928317908630302387238148577909866145063174077681930436503424134570309087859947170981065792084843267225145444387097976793283880470536594316062891130370497589873498397827003930657218103930565000892666081583006234753777288296735028721194099301019910745462906811794254676743657268811623605140409697614984999270863413516327856334951036478029035885402743228739424514644605737663631346891810896123446574900479283430536475996357680237050857052117168247226883758498299185647173498068283289555044753164246427580068965942770765542086027748134945050480341141082792950388573971602840311360810976215198334688286253420319188454334338240162473037371750577264001291996957178220493999607880800017048177559525134176319700301679877232525333039658364666506039510572967904769144658092530973450218938763936625765683521960646820986142951689038099037704751381079332561824397301287529863372355014807236016461720299373904995871205222838296882693105461507532862430049428792193334393484668061709910157593090705398689138222250648841576801841535319111236162482918420512186666586675782038499578864827971037273221497847302476237046702355365046974759105942267148022739342886972076619117011405046468330794279605361168192859634695182398348136429005157408072145522126737835451825348991204578596489349868323989946101790834537562812158003096989255098895972506097609609752109518512700956482960303858481492206420760909374780864236317781655252291678855909688737497946466986826941558534220264009845847706724093111913368557152760124079126175507675426347092997096880444164117187742269910409879974319327912686638482647521941260835648852295820233055198593347782417254866591818446675739918386904358543634110884287636621543555513159835795938678499494932276411999955664146658721142485952913541553470903425649081592248362854992595816603519844505722564153731638094475178196950470098262833289124314005116790705502895312793582916939836981158552182291582016441023663108122496476812135888905381122187823840218687730911147968351569331305257357667901645236027828327080246446131883144076577182432087256992452010303698166038251838766773025463157013653250735050847707629267877377784374709812159812994339325570410697350426177852125716638281478128882041065855024493120443437789443172518708144421218748743980227881048317812267259027109223821322244948389790720215003337503707721719765503838681097608324821240327548187363306997680850371587550270089100295373593329250176447933964839007033482646149992194801283426703439772417305963618578747851311184537333380683262716501767273671592026080805516172428447999000200646847362292385102497962278368836631058909907463298722123331333067830331423183930542134742927494737934250969874970272844724657265838579889835657178576916106351987938995799492566132396028535614526434035649605144419407506059250290575189605357186553969011707754158322621341712805396930824081195282928190794221665089599127647901357958528262245036453808249031663810351737667545582743179166031934175351943505087816220491411281669475236188970133038750643652197035155108624261003291663306973900770852439574461544254658682242401023616375478235570045568952131665352963718064676767282148429682260351061745758552790581988958758569348008068423293025244088673792707910682296087365852721568366915679575363898540668227995929083318993874552842261048364831435896910286952958900028813295029869565943285128414968740296389046872320591550359633643782520255331251773272319558684300220342524505371641529913872169477496005384212007067494531394438704059637018633956710740316639378965002890733835597016337529484415984477812784919979708890987651978639947686775959974367811117758188031270154647625873954152792376559209454235483802568976420611575267996928677181726437940101539275717126179184167875564389065236258862816176501165801967002260592325727465436489399916191926167441587815261998896776861731646493159042519564554180265808737342291770812122172558982112700644869889623698178294711466701016141481067442027251557646032386589477448749918509283119546896754198901742387803116388978714462893536586451987885059619457547605091883714745217347959124895628934844235053664042617996215847709004157160419124781129985790410313642173075744890210575802138251694123546148534615495228223781247193300162563114639141350428648011042626310899665141591037061904317321514511705716639934660056053236202660979032677280089199984033248834196109979730385176078273919294655748841656672626965936017582641338139516373546281367935615014196822665265831622487322326245662561730453770564734367598136601907693241195885886447793624128221381483857331130026375609011380410563545275282136297468024414010458926973423187351357614891369555279642382673291354050562475294983724362204171322674500036179137692416215705270758502906932442411157256620933707618137529179040495953276781683332361103017834028957082992082979090235628145802658149988373830738962720233111423721726300430529774422853603083286536734379513256325846538534617405222578100266868772030758899454221948762776590054517683730064624405713111463944340752241331386172677390023677310102725897463060358619659002321092023129620007642297583765307577662663365216676496066222172922650411176933666881942786863540625504679825629269055039197426955211702667041952658401089728110176855974770770100298127913106114483332140805841589722428304297083598916303230153047588806422104624822664380232649480639731873306642640757215278493107703125408455168698097213062399254901351851430418243684151048658182970177071535013104423824691259124400709395668124179491306439402549913074413846580468708533920619939895007930701984045710643121452192456313712303500251874233198336400626701598424738597263744216684456739663867385067912122368651719746471451618808502104262030290463189148384882278665180817320409291169973434146888535722718297960279716203192379748589740829436400795255124981935320415116800955266678518283871630375534333103884720714497759107796255573848618782779496095853160037090343364351337826595430730991722977948206315531395245763999296526177503032035140151705887307265740835646322629773736655045428377807519368191867373835814423709634513045862311695739306240164923698193274629934669356459336710641144645337796464433869352535614961225594773872015470523407545882284434499021284666761547000491417126833600474939026895372717406713199586691712105163335567476801180482628208802253611066681020995250612846709161122472785711463644306476945368661970148182781217951344032547419600753112431194292528178820006138282495181624261351013353893075523693631979837741474754060140498846694137510863193169265676989750697645847594410637086283567284181659062175903196954765328321919392044650975690725623335664187010229895365634424485495610302806965468129928265285427840742814433136071423483133495486592159445229388545578925378740763101262904638368786794779246110938119350608346410504635508783171897285044443208626112487830922105134962902794717020330813687630508108718834380079109849936450882992346714534293904541476939220114205849234052277022867276023732610002375458474364331792875382953093337278870525740331599303045438510321667919709671371305621897894113425681701059055967379747228966948034011489186530628258726870821421088762689367624391568313453055534487092491245003693223357335167148217581129184403378309949953848702606064655078120739966608203426453916488339752620919759361351511755226584691662934619041835720531216806146878046657595887311186244990036281886561305406189540516551248663094271376726827770423846490947461049758679264403390522678407357859417651688608230898166622622650733548981247381647538177399545985032587679223910523202703826033753119962809333153118943098836468141687624110045948254256523670610506534698426019775427823855780358483819258108458103433990865205467420520108132239567088618947339008714557819529868576626658720680015651010842975463613534219663998881410401595579101228057846314843316345162860438080882974136083485264497296565386608284330057268608478514372836789198469021849541016437353580399341238041490911322957786523761400970400213944890143921478486401356382270260409704607613890613296242575106232636340485994967036920366483639294507570594313764371042773503930329800815470444710408441200152666949845144758093256902552525787471666575902251977259243683316057490481456804104812107871357747099278897303141622090885902654498779801869375264259511082078442887297813108947598675937864619296005606977066866595423409696453235941144776619427963712919484431336215037957160430638098105079557121564110714337036602496606222072543388821436873936515138468849387374106403624510559685500058883297989845981634616087791874682256957289586448828217998361066794453697696519238253809068728688910130471094378625632742424386931717371589414827149719651373469850057855743518360132342706088069131899998625576660453389382306395519473915221740450565037730554680341374482991697149830328024295778393979271101995390306049077334902970372588978278196607277339935485443547786643867750891237222750929617102841981142180019376406804408610611165829974219267679963934534310015064210400355076444805151023230721142638586868955084310577001061642544311255830920286092246465318094726580878600453277612194240932158206660875519991392818581499791220573862377226266427200605326433564065037381129515940511833025861580750808813738427056282192989016895426642415779896681510456958803968886779575329252613125991656373716359472122554789334451095703562097487283738969045077714828519555713761793881696113496186446332953470601780370631831356174109775975947220211028711575395183780604003890400749655353049441754364290628459612745197729696337286787660396340891201868916462550765907634662358316809851458165572378291603604533402055658989327825422907916131380036657502866516159614012370613076491904420799921901002925720487793443136132573799814522239559353392479117819787112561555491833253152283582053348091003297012351886833663836282147647853446223776555124395270067055539653531947733292364512775185769624289220410860059505005188737902634224383538107855885075045819835154259560237744238485314018332700010458734309057146276195832374784387428413930475455311674441961799603902249055872077005995099145722779552204569201419775669193269156396620161904297633350317669417462360433119122852658699859535828047402275305717033424467350332650839595121052820941097625220316123209934164279017614676481649742839831669416429192081777128447222703790438227591024321014918909723494658774406686988459410145121208692887422996814301429633625418289972301043130608460636403182174783631459496379214883092760798959501289704049451709529631033763643954727052933821609693177235376191088406482977144134259133093982923321315349291785689003339151714566348176592358121935285897557664871291313642914813304219217933300909038749664952493094513188545381401134457954041836858378562073928325354515575214141605468302114799247009952181090263681566033908644165431331133513989994248521059233898605776922138332503115655095164868826576115284750196849645483947287380307069317308538518828288379838245872792508565468486057051365203357950462583688604050359743869088388624700982569687461813204931127251228525195972906706362666707694973627358739503220346514497172146161577907136928212733908886862364348382474696063025452257419276795878983246969008230476122817977707904322120309086124776378445251062043270409694694028967401033922461463064462013514688752983059439623452863404971254337082311256760951724249987918688143610806845707257272461793022461816760840347920318620140333245403771685337022899946840740115340909860913064826777883479080213106341832732897029998026608307025711547721966870547586765798850173543278163171950900292251540283468165195390062370749258842046544166632767745154318470450149138246811446891832227852538844956642629351194196717161193128255646925344670489125167497952066388515768001489253348487825006402756229149556657701277539841673503487876633338520246294923314626728800916594607443985830552604589723366353191069111355811819928404238845073755250113381305786955333642293343600260319736305873061705930498290111980086231686340153647848774906424841147260950157931010717313788695027755602600701739048682503702775196185289084249424923002754039171254691115849807114410397102047530985616593913468592894272199905136614122427322540205092226474737456293363064310864404313417121900956651028196548701793866522573782087860220760101506756859691306680542894548989046770946855692912672372301137429166335269941357585153091040127889166446398827491121052277281905253818798164200187230815102133707832633585280287487444076859809523877258482126287747259039725195284537136671711248192974911052364069908313640059941162461564199901968309643147419865623485160637683017948644835972708583752101815057241473494882816970522924226338110589113472553528461031953259242901899663660716300720875491783287990561606556258532824787574173537266665753008402863102046694351543207445687436955342516779289373221258894592571223813170486615497077216019973634315055117753269853400223140627919910494958075103917957642361172538263798899250883623653829591323079802178633922683600106594208546474475780318016036204169724092311550761878240469101431095474244963692315425011317016075220498742570004896298168952569745184161431520132084293905334414056135071822428532688744203220664110574993122168861396857276864226374027691663009466782855963751164476032978156983697671265026178448526835505198850697438363867300005689937976403313687850333767866872055460482281797830597741556877819386205590432964969303826184040671196256890290544480130924147960221848381867834510945819890633936954609284611824828643900821228483380070596438565157022956607700302910482179002167993744080184500372256164948131172555118907126112959766470747883906319987762617536721629907863608032549224740740359937824771945868818801872172927172158240478825694577891105878056051402557144750978941194108047249239981574799116422355635014845453151533050744927844648745227123889447547249954275456280531775460916947729110126233629140486673744340348787952012450770995615360735287305477771722721496429676205060412415594027361982973586411756421110689530027936985754124103448970182226297176858671185876128366537949524179375009054662322663105250370036137389218231198091064812459153475005487923739941614615561035898652214044497323033697160987211247504702768915509481293651229518400671867980306738108442256428723937727312706325295637433224908116562254339777688174268638986233003514822646851451702682553103237677807210666880869482406211263228325344516727100272742315822378473812664769991339980941940431331485812449372253041820573795196027543179278589286880480981561874209337546917334386330669990608254884512947614310358815769230024886948126762859496870310914780031582549573221140160507732815152254363817022786006411650195142643366837185864069542734733789604791354400131238112201303832449216651389688600924578347848785878168065691085629256254568194983995352462841502867986220804419477210674152273963622734237605368379399395511343832686964916036593511234451803140486378136353914472841754046074813219850801976268671332073424448120603014773093757293917168324598998455792327091971837924875922509497279497774029279045295111564911242731519177929667340565407457051169287666203196636101051581105432897745694575911659866479068529546599998718845423813086601357202510440728046979944505488082680147332829646940090014152803229803106588029046969058248255537059761556778334224368192644785717381521574474737766220231915882292884030232546279163237453704225393389491468876646826974984064908534340039186406962430911967231907941198245696662156245246978407264352693336471400908463644628619218172425414738894552680524479885143588045206344010896993021740942595351928647027808995291576613721282795051083593655996418064677707366229164018382826431205162634307836225644437054024490193126790724266815234303964707173878212275713989356864443673101909143641203532252350094730621274777744327236250892916624430382420389162240278090497292501569146350183603033584893802966923180214795103082541100823169503038851257730441879043304216694702923556524110666092090009980943350335813358552140398827591660464567778509813563271531208279478157208211295764067683179472804899554475730477674184012148004890690402901073093948289598473281661792546641373905067032910480815329945786939130872275667228901321965317609065831073459623925065469150861324331673563108137225112075846884524107899811599544337163564735747976055068986728512724540359923990031774895565653257119232074541251441280772567670894363259520278483390493637781288276172711137119546269403676721576270353826581826675915291750685151650648786680032023494139461611287440382429208669447859802327805928744757519924380669866767668247915298224676859411040010814217294044790968605613337890729011816186618894922602244840645036235429619863787549561233677963643757860199273395396245158923587818737173897485300091081118443931630407055890769920849544969274255154552708855999018743804198694406003942560709324708654529742523110187186966991545634631935476175903577547009183822688806045547579138841364252564117393669634857017361917561699340106958650496444930970310443641661735492044279882256670558268454656879325246473063679042430410889418673228301811704861454723256105597799534888421446087425752203474257365052559353002849560182925762992264667104379558184080871833308752300731210032343642705667044529397242379883897944096650403291669466853881739546872434659926925421480744347898762164577756609269119778644027636103175325717281089856804259074996397425373375731697203894831526771426030658667422904470891938298705502924532176059827217779968432096101974269797072857884865344544391373677035652329820891204774845338985175593440715410489804721053682598289105066076350027503439877158263587460968257750876451809222172169436872898547110608825609900307154996727852415795114103616836209804248836115722347903093759053829467559506108401172943560000337338676969489971622609402492018879000305893866039239328388147608335560279648092610938217289060929946223400255587183849380176822465834695503496207738063885666768512062830863627542036290399418794117189311309639539578393453117646657426774834014348015608722861558844153853096920648886720306380658870617120313531858461076977485700278153931719973748571827415371308865937198996971819859896723892039731874229573924859358021018595393249635312209536437777505817322970267217914528257304502650026563039597242547362890597817921548403202400455777396841959561194061042422983977134676846590358909212315121296666846028536399271242622867172489533402137833057635185991864821267764095057031942196384708010273955565917316244258315589723206781999524908089774812950381331499995956822692096118454093523540953307601567375748952025902873321060460500486518372067452497929717591886238551741482703963404813605907228884703125760412421056217614552289661533973675449401514195176002511492729860371328566957492856359033218652016426556789682642789023429588288727796065003115935888517111057029341441521769484543146656728736169202969283009647363211402604966599040484748842913035755147465402103839293989922822425700686317915895645891065232659583235271298089522859805525146400869519000662419441170717372361365120787566006074582067558849095548283640760839068382137429277285355733728803792082068145215810143995460281678264927013815586526550467170522672507301395834348142473787168669862395403701411516669221796241971765904142430985725358248853455850427384974888403292307871128732426447783836660909140507311852749748365040615532082814202597326575355938730156564938146111132150552697182348954166717699057429495778044211595205243198316451492616204565596882311729851818086239879954018508694672335999794094884338904505453182431958057726786531999363246274134703460367534462648933730263347072456546722485252524525190677518608409065915099607133050450084735848342895676236521299032127294146458743491847154546116965078914305091170457563394631073928433248824732022301476596264955743418292347772982644564382059408876902605854369789191866155889861967716099502385184805394713985901486927176376341963589034145915906155555421163850761100123177772757669881314862600748652211553107055238076999488726940300531491426563120637021671966672143052680044353151748734930126109485681782764993382715026263359170412034921918930298686772929346480050194121322996195480386451347815586966246940918467538271653864515314103240990025107044518898933871689611883603086702675748712836410713832713417311840153796224575072397551190881531426913256079408694576161055040796334407674189818426549828120052531529679592099917508600968434531365961363786553310031305734776614622239262828099001259643538982497178792430111533316000529469889914792877239365599302921701356215728353580564895181881434393590156701738550434493550208817699438841275953709194421645911786611861798648369725435753466422999365059764804697030908971698822074323645531070815623392541932099277886892653942188673756863902427893769760166395616114322215299672217872467120314027117157297905784420956584321637671840108044777868768734040762159784586059459695366046514009567783893015362712351489985692630106124061520969571269592635177757268012452834905581591086321361160685593327918583001934171247987047906496559159273562704676716577545638750916652760492431462178183997701574043939736696849302380909256301111147567512588003752151415772880091283944279880390113923678236833680428246490319694397665180378686825280066885014465218955762697351319850135868018481417743031286819417637175961234435752600761160183924559812862728542174835668622019768023947264680908760808699792209819822511468964133996631657086886779610511105137191479549947346244408618334010007482155641179691808046021292510648722427460873398600640505322897364870349161116119182848770390031974635616781344840055132605295447815053546015081604022580324791109584207792662015139002279496943841093438484463806191861889237437042065760628989972131358374268990551148652680042190757648834994653597454020175774787812390511584271758372433423780943165670276837536950139453523235360008067270962947560225242350467636150917453477879078696044870582253046103883223887635170235267772067790169092389842143920939459989084471999921392962901263120151728815943472515739510342856912400803392204937339746730686236749163927952485974100541356599162878256386366237079079537073169970205604579950596734867469866399031021343559671145772787454961259717922349271147613955725888016764352869928305650760503459426346955490789350286880600639946737617319030680875632802955624582623010191936092024950281792214977135493773866613878188015856800397978329234184155113339754111004934129499222366510041380370554685084981804061538223206502025018867143926166099986915858732725621815499040957304846895776693994064594074935489412621979411248622764754348627312851632263839908631164997029878786727315109975447363288999321602104559723038025461516432921989346804153469413065756242217755706075386951881381280465619329121666254847951719511836578325770852272262209139915919704346315993811972463901879286223214647321044160175854784240058683993667304299298893630407954584234148859660733237119476095004722766510401769162943073118500907937556761877182009426015522485573515333587271820405108034904681947403573836772547210225055332180677847894045648654590711215722919159030994742116136699690502433797504295672211140045063758693767264481710485526446499831756863473341362731774315265930859527098718872890004581954960246558245322774377066267314155448731463648863418935559706015795902312704759059022598665100719632894793794087915341310668642745714584843152024158267233934088173940323990113816759865859279955037253709897195639119793160363393000745612014564865063308563508925242045228369362547413959770484680200255555156549740640828870525437740660331505847217695495602029517876173503646122724848220458160374508983347889015314326453735245580867189715644377441233435759941248023393478749598879988801306656692157377044973174161915324206395824808299871686822478765868296389692056309348932762730826698622762337567980244855986806165127633570529977776060820739251080015869419193686257669154209357930169563207159593132330526182433033162383732050082943927981198955185066349685252977906278895997742148897603941827432123725421332010499980764221708265838488755567363903191892804476347349406784802312546324308913703812578385611852668769437723792434337786199405501542555359143703668676327844543659373883843582586943886148194824853022970243335711609913826238622104716449410171797182435380039188922336935715216682201111558455955232417450406439476169238173548577106955642614101041365048796165204390524676802483280481551501559701237233346188563253609293361229217169155376861967484661315210928147685532940626039105778688513537279598670735432418871761367746747801329094557959009529459567280526222508372507091131877165776991614812631862551251431109537445137580372604939308435961131381152822255185298559772415633811268841943924165999909570843331500018204557489204726490120331288302719622610115136927213978531753380168510994512037787899279314168768974711058905348998718993496484189650237488328645856641681695369948685441230840969631085415398918226982480819237778299331676730394252712543654357405821470148093112674503091871620554454547802637971877930475215172372105544195754018455458680846921174009651356055362509906792477753624789016391585328193191285950985598054270204358194342987121685539478286296340781967820273698998428001207265287134639641267438702386761948199031690267796121638883144977848752802421295269603692049270033583095559588593542712005270487341927857856368621612786400418443722928210230134307022961176528596895820720347890963920468233912848303552345753589886491100782830906304093834808410829460283691298588858215910250743786604400244272934377362805714113684483693158419384330859391052643717086254578111780522911973669568541608643327154677392173883349429726426626552953165128454761934171864145897767671532975591371564472160682755758519924788535094748519463559183560217118015606009307905435103674320171918860173687134744397868183458013495627124584517551877301214169902029158876261876883488380625452930100353035733533053597287376711675958626006786019721054123040182043719435085416534749272112141682633482807742156044763557433678325601115120726038334605599495219692345592152941440139232117681507817445951469054900126729003419663664179350440416571166006973303445362153809402750838258400544074966303443727368126461659644536430562413580015157721439137633545037631306295818925545320150181258984487930233400313754183642290322011271205003212644486791081008005766167526340185345951186732439808509407637976124229653192673472160063569262918636059108438621316221800226774921156219579530720894472822519808422332699450734714077095184493054539228535320824801721587740286043531177055205809363954703523704963380373560357781531025955217637095234008706424150449764210508125586926844524943471420227307389930744634145766921593896175826834094603742204953643182583501349692313998967471857005803797331703593923236706864468163620701342907444567068579145349758160264277160700773056803589752912756295983485854675046755130480164984496467280969811095559664443375418695282296308454606086412521506103113787777084832553825329316621287311835787237746763302644590841829133082279581182346237331738940497863482902260499436057751282109077585732461118349811940004219390926302437705479976562863463149142965657067351112765609711456649349610627169566320475300725494178175489439518637663915380806820908487485422282346688352523990488536232874987177676324684942646928280813134054416327674678588077516185348541395167540946469944363994926716055208882863840890762549138664758704193476276838519382369798368491364246543070974523124329333624998438922995864868219916574083368936126258657689267458276580285864092797111160364928531139471290964355763007535047857891439402372875071489978585681832747805441010066084282690478240561603962689966825666787736233202051771578387371935510003775670796366580967317133638737880776878058137662646340789236350137967803059142076358413519536770638263893673444488499503792194895687769826331290786675290778368645441303185275282309579494618130408271342988809500808671289724667964665398975951257339748069170450760353374779513110379553530502133860289273982489844953574940342865769645347651411878120529140233313666736284222378841305301018855262563974440272839221176100586784246780717757138729605623845000985246785511523592221622471647200297707506365008790055340368073432004090654976100566323201503499312436766617920003573064022713607492054663092313420048947895949039244471536346758862770835319545302485295142305254811313096310620214268266364666491652688134303331055008359536208589427244355684671783982946883040988386123446617216365228089995417219445497640788532007342397208642788216268226921118266526694247131143920889120920173695352269448986687687910021331051859891744083873230185417015871774547462272610714010978297538204379988620830933208188270352233625469152064842459426445395174540110913452058788424520329974260854472256872454283032515853283339988024809007450195898456345261037005594509220941294202706408095164733586673167794801706232323249831085227684281860096617628449023248392416280991457025079632905505338119630303792945918632307598540924227969800760216600156240286166427626629357884938549613728016208093700286500101543739839217589937531248913597945511961558255398671871796155815341934637370828261668507326334228161783369667522860242915147940086359776287394282400489229223532548705101173625971160400537020290986593699311522740095434834560550111583051426586924769638297217768233927199168601387146633288166527267155256980936622518463474416864696951921562298821888336136013389783335924899248996710479449964492598315670199580866866506626578795928112922651670880467830844634936066534238152225989557173381224088854681003838861421575382262042696250565967842595795570818033324039871361195355088090715466277287049925562206291488847199274644640315497771505519532242236953004811623575381577559812235241304371193606650745164187167367044685525588877700998540114897267988063740618237007790423059559070476549499338249945747134606978587170330635770469679713930910478561416415594288674514754829785375640307482476814369136806192784752299859449178981433416825520544320769411234351164046369963216079193903602314309923703236068126899594946236776012641610909837168125952712790182838603942729100673021173194933717465046625489975215346947857383444365610724886211619107725897888468201002525970382068289390374140922012425563154910672376644241846831230482519116612915826908970048978082987255233079968843802358258966985375418824677381275434515579583421286606488856865927321560140620875307108457397763263388618371854104265528108601971276274680981057877939460134602149152056059933772234477940573143950686019079395881043874472385741289135674974384922212365317520613262871199048848557276089834811840864534213662543916308640122102792944856555063966826440863063033176508668721457435493255879490917053510685790665148535127667006533923126557104767458020790378722370375236761982704513856587206724544094891184127829483552257579317922895373328610527128652231352925775014337363661299667286728396290020087574865459115266855474526773035307675517502416024859432264428108288251157998400579265963842265062173159801236518932298561948676002486082008605861762760872400935703941863048555962209815678828031341467138658186891805534325040674624991733125171730962458157564632250142811244330185744414543584961663600302156368495532307099860222112653324368431932092021110667502289241122387232648977781653525003855522056387521307872439037143006407722711904966865264679824756125285142480182925951236489742565103355506225142448990568953113841440170806317176442024319377535507308959074992566861247962578129609554945799515536686009565638529780954458598450472991245795780734424529343662614866275905013457182581215444446763234773257844906264022949398229317782172554132495525095600165697933686771593145652040349048990497705413423027953914228408716721420208360003858679021023124561541495143582205180891300965553514152950507361418226777036040266985134175358356931391975579245623431089450685351486569452471553710848504745556076068472556211915627859720431661289632962577352782626501655101101436651114210292902990587047748525506426888159946289619065232704507016580367039021402692147860438383909181091360842357465616380374896577670601861785773597896720686254456177395428888273530763215281594531181282720653921100352893258525141086064881242891430344101642607831083849590790404271313088613380615757564326948872735977336492923631479654095641511518472882162514893856056928858197452448111728063449996138021216186112982283806238195417648364750799132145627290346302347595043555408626201298892137914045974530053517156498757218020286789151319162321721751009860731319816441064546797892245892256070376408055377725028989346657342774450836852201665577788527649850588169841101202911324500305272323155728133316587399547588351402244079434962591187326794646366813541905200881904728902703883582050661771598026774851342337789930884423650645280507528265722514803834554949103129266927236182820089685997628302425779516347964367111408521828288237213603180515895776878406972227129377599488577764756671723497842204110295058759497205096897252648045813307645458462560891598887837447970474244737849964451808891365243465217707697889489271330958644035314595183060887916198563329933724638286741841864705746905829837392454741074166141160385739822773337628692029015106503801980566007695902697902559971845160980917694398327435017092423977070514055246772457316849031093157728519108301986815917066358865996794821497942718043625751268832772985561075578266153672182087189830398513440540754031330227293147273908850240449047230754283404745566237029725759130794521821294017331784458758014120947748632375323929767682472720499709291274911801922760228719298305832017634620067425421441594917913995214423900022703803780278863515127253866321771488933981815394343967587507555581182202330485013174704566170252365179967876847281565826385481988224234592408964634191672499892189043842099131226247398256337358918158500970432967100198293819850755482750947126497892950202444918709557575367023322387380563314833573977805483136947303961313974685306818157976348189622884065367341203569248147049963637514500424132212673746554151046608578985768615862636485897855569406672644283932086515643857507202198215743613494344540949118227556140909892317346361996475612538815576598681220079314970329455705547180235578611956599007208950620707351749484013429162881840948309990023308064864966463490755020846977086752937490273995366035464605541950408658163969700390646343309966230595616912526536210562298525030030030555232185918126812287205495712339038855610075588341341800321749552950961658883731411976951515844767491088748683380564601901969933657148591291545819296497279566636017113539954078143352118706114674325883732110317000101668761393243902108588168963315058489310127457833422711111111045395630343048979884715077245251886291143465249850770306395153430527661948643561029203082087505105504499013898166838050616400765269623058643233208874673621574908469686464479570458478089680827204633473732595670262037490531306866181494178893270471163928801955628710468393451639234290022209177436229246629192314302328817383735433452168125093484687438241643601553612821319257088473518745053241815454389367756374384278694792790933748888694527921987635855909984972873968832756528411501402398501995705868534449565764739834894631513111987819143148274557266454929387390515572116653457092699286235008268494946066007900245089520637728579773402716566000739696848551963664084007996930921610207791962181382422363833057545370044099913900170870178928917376196442652699543310818196418221274709614953931637131793176076246208725170662519495606158359243621418329118897844328697753643257411270277548138874389948363437699811788344927474784456855946305681313598072555867967938947120199840232650133641061307954888151462689515526249271440467634920345095792963864188068980647264999039919145363325693243748091756161015990545107136372282835124626052356798852695679711735683253761663005535458709494145832736922403006223420565327884699400441720253854889644291599763413852611731487783961484281271110793694156695022790031522225382274034368103010133021674411941599504304741758332379111421613043286108129748099383575870353762754049044650425153780987295804979317122448249179467227232346104880129337311323116077240920395051789151263455802280254664499421743041678619465259652174682998652682921937319055351308603391096936687825787429219627827979980895253360735500299026170065080372738194511991639285699016888864747903789359726858506232256398523272364521397566026291007677118777738013346773354959368705207088896122631775999923071543390863375563109412933894220053413916320636630250868964998349721075608684485372793156561223600631578789982390380328142794127720103048151983674445614368069033601803695937033543710575137942182636771129854490803294543741137493257341378931438825458061758515764419687686102469657760387198647219828105001256379927546423211135168780608616581499312865146234561443274761203933122068408990009988113914134408976904550938552145225690804487938852396939913753410456282950570691805114354029701418005063005351684674965881717876531536817884573786277625566638593053161718093774974267662736687105003807120300486211545120425534116767413856498791272178651617382930173334238296661922482636325129420217674652221619181208692349451785581746900919164378670323766524072099132377161174202776469317088824119170343309736301938358014728966272446833689931324927012562866033794949748686522101764958072686448334848030832741250677238240866303813517449689616470575789512445795078604897913807408820128387967377564627198170871485288931003730127340042712845652742780616777956308922207692059805005708176967980926633205407854900313127137670946755387927728232730321822815573080514911818063819602994851879718144823266112050489430446040539415864096610661347788570738971467438022166929745731407591548263326512562235235439595821035488180046495449131125383674670359780949952462850525465041154739436953518171143772845851185450928363295185377216018815131226580627258616051240005108354740439137030423064147452863426302416959678150473333993545938911691427146852126306732948738617104312417167035946383401064080367000691246194081223652572263925949839771393996299600751692608384529701681548389354599008994613151082361625541739873659825756294817371366282978334900965154026521589142805497178819942060812337376603050198504560015315483614112014746972769765494676970054127769622833885562520168035281873048494200115216222161343055569827245342093577619888763847367108066874733559970910724682765006628529470945432009002634691237074303273621443523617514448614147995127418164907021308026192207840878923523716896405288631240443342122333619248244849826124266063728981109239923499988252490456472846666018406164932574655148645616467807869219240791228948325973441493552221990579599108130923625242756543098409827042216465315231546982558970869063411832215103791554223496337639840093660770796038107851313450030691087334495652066388568237475035277474595889124381447041331711750291160746669224321079592054423499402999610167180549636650540353855793806298753862575281133682606866980288087225151636958635291854197407270118731156668405247495628256717278328297757975200356359411534071119662209132355775745194573671638511345618820631999583849492547165420642355758158011571460456660490363633048058249389181223753099656997842680227419741546793991358810350845930688649528656890839212035703346594311314487213338204461290723833313467956491351857431958788244686357769938553468063924356128677435567052670170998680438817977574146619220433740618751311832856072571040046842251344204672327365518023503822853002057440259332690358300717725420495263029158776152770424742166704392723971582874425737805257918936353531456232394666079419661461504138183225390505543075842094157976272835148980510152175823173102795440810715025632318054037672770460324530113897308093310286838381381936009023804222838760362794017384872251916648118303591693836803732832051235047643673742601820063951669033770526846837800504217394704518489687005602630702441727965667345419279851839960002148212583295175868711836551010581694007907585711338699270441143486500377797114170904725308737606253199454317541079309023549641619520308014897132713912193540687111581506422760116098211007491959440841485584461761082911292099926536402549008443187515527674910604346527303209760835445319537973195711737475256332446107178954739339699752336902788756812197609375157547678982908766392176514524289473074454830300504237780526862514364574162019760922381448012768894449156485973257120590645890641930333412759550908268212029606779596149507153466986559114743680128547068131146202936069665491905428746814741729581804073885619242123614521399535617048126683728965601578531455157694671744573030436883508285570945247021529231933982318097114681159715574074625624771287050821536747721267450081501823299465855316227782312160051273544890353951501568003696253890756563481332104485964533687990667760326712034935565125886238660490224228075742416164318725202703736471168684249642439326904553760302750937292724632480721557138717663882716535534631105117950341871764163166449284565235722062928525879703310639844090236959321803018961119971731682024817595580534017594579502898310886543261160361832830735033290466535044632818802634809977321733095305202325701034556856367748674858939385314782224957748953661873535642863045686339097914102695177612861458348717880597630637045844480923526202691217560729726824246581938428890562187188065237906180424533227364176529727622115971342933579217055607820432610079883222146340207732896563144051977756017356871406121186096096384152917244735549435247795859340926863316269309476901767759820856508735122119911991618011361582253096897658498074549012611879005991322077862915126577205745606118819841730677880521263442955973812678475196470745544063377350117409792659595051617852697937388311547932727992232598538671952412091149286327719312973872643270618456661849411333754171766219624479185885500722972134346662581503798577347141413795661100652374052189570604502563329521318993474096190403114539895643239078872955849588592093005455990154590232792282686660248022423717863327141306479955645679781590554027180234842121126044975492176557833895787480782816031370759173122699152505769480571746535351296199508555999017396401696605935918581491476613498673383803373640260935078644613096266248129290841776703453292744962365503628353846949509330471226452023843576460211070152068797205573778039069215369812403288781913429303190954342609166147146711948663933268767727006594582608111684290711327859565225426343059502819576622899268608563101641354224063052129990777770877195701917718370297956057940475093801242366923573286485911256750622916015949390453956861369782482624113348331328750508294556753711932100091382739660550426563117258483853181617298268057219430604474903892351412664746826751434482601630344044062208712445359906085835766606572897917826956082423823927408181037907147373868736751461808197804437883615668370831851787598477358782680433415164668386100683715396626193087983611160527159485249972581028556331371452115722303921150537586683366126168167050593646797669902666729522640881600087358120292994919385294314882136709376442558450971262670348247819722422686863299102356774580552977790039119142674614252202895304176912320425455208133000430215162702839124137241000058690508257237222223957057917719150881208784984101605432962522345075017710601504888369448498504828384459175468571436474513099981018141925986958452696284770794984383546845661446805550789768290350051889783907424374819423565791789109863682865309170076568797368890202037631353460499209242940104408813023809747843437834014669791720921778630743383770817001115548144845018726372078488940773146545848301885566453489390131238682783162890528489022261325230857913477179403880449053149573757827585948180741221325218973741234290911632713976737532919799068217043055301805173552450764945818986237688973409824992601328266698827646072642081127421133579455980215545278974110182975123175779400082327065878056333066153969823698290849714621925771363539120043870298503203212196182225061372422161187557842187225931901227974164092572132244819716913113087723590337028268654208011222633729895299302018727971620038300692787742876810980867270008862411474499758796955481183306258537137818468569125742029502510429943084424549913733766004861619107542307708165387899767621078648492538165785316758076800850565644932135556342948697832529767790908718938297248504109170387304874243653622073980102160639181508422749011728567995331249963618515687506562616374093945521783723566336238678348890505267910450871396799986522549296944994241516945520931044757478141226250377053779359142194872757218009662059316944947039093854063623612588294142152210436378448690857131757464638385767880790582224028713768702407060885924397060546590783524622508153809440738873769974054739677490888762419728442489850191993991034797809614978405676404676010158735327805258247524913734313316507349598227245950396004400094696431664882217678256585019573122367168766616220049166041703435939156689675636660727907116406639747364098485635427981448417945080611007294035838154005635398337901939514238826660888588489645165096681620025018608665337317522838684350242949929010244547946558942956007241668435188109326042654396522736848068880495814961289940613033069332910978586487019020568526560331429309909226604949711170398818848065712007866172126129203865932858223107314830617091770016359094049843219104616823774090173489648383890782526693360491078427418772341147440015534737029116541864494022782710816319815930834033066093827018063547652318119278256007539897774451213473366469802722751135032092572010122186868196659919909931182531968620349234451355597949163658996816153722185008279441239889379731354432871234494437729874844222578946242607201959323281524321304049112023190654993920604208786864847630900247594215339381395791653068651023558763390462259488600939112694995149984010954326313195228714739487877069683643479403448612884165839035911872889735487713301164187023858387784349747335962829758081179425529866975979069424405403831043328284463267681326634075138482251336861106005794129271877089205619933481269037467472307982158055622373264687365693434292904652284245711323467387200898456604417056489854371334861135494377377051946907257654467110925147267670265127085674541237579831661447622956142494388490908738040976086158620802251570771272726653783449517113050071405889603402981727505018141845936454436334405147795118854365027737685761868682868432810236875115370715355235092803833644797451669953664712766653945407675206209449790763205328851740144861991869490432681552429789840268741057147237375815839795886893967952344448211237423814542505604766555472225159066814642394785239482815628316914526619102220294259476207941061783426184769781617566440536606481889442306257307698309671145604111551598620556351909947818432350136051995393594844054103444086850246833145044185571770624589367747674873738396366225845899814726599021718787495552694247561391136459717559016877588131776146827757206197031446516393710895782375785547272151583998920968993688665676423917454743333149140187774973263645767237123766746882746052022413329072130687690016789913532281154823227708080393085598162419496504988174884209377174283769770871720145719522868775404681434548109307110210016719942409664137814571645175924855515569206885065854263537547027975598511177303566462222785076824397069208037129688476232614543689048394958719922408775636602036794093993579527979412680409288572419314915185748960002633949595762885212766026564017970873465500395612864657103285846517185383763590770388359216635172820432507275197840868461710139051673785112039764447984315062019438999541824076225447457122419646754110866227231487561688756329880526606185294359065117954143193566009521762271584800401979070553950459631243403085881401471353735233592174981929688030165114451205631311190120148881938942044141014364714373342770307508676258245083994719564259181394006196436265502502156877954918531648156474155978191436501124529823989870623669878424307860668261578480630466592067045182887407712012683089136047059131004169884658133111600469637000672588976645660086308567340417630128349636337361013138130579006087125188566186960684894429406175217235216459933526126149061343179700730168105423889217806878200175988245861275749204146663502316138414852686518083747965698114395267607680469553235423471340065834798447147924334570544059361626561627479838759309024292380011267030960082811981318471224897271097403900131710830627882864805534049141128402104480226743218083371713576575867805137703700277678245818618191751385289425415795707710246986829786484393454894484092202538371158151000609803686855797882755368975542345765022999459041360285347107378423521090973224141440562707399223407563668807381874379474030395670229749758144836932679677754182295758380009855314497584058320593171441469040840193945463004549704239249499378260794630304031928017975226878736331706051452535951109871544959683312216098058458601516607543215984419286614623189686922405442986551422560231715908224521353747709553827183054173473126649027062843309186451405548163329510556558845948245967483787794776804055622703817946818997266204710109979047396789353766612421161985258550879931655014495934253725174626359749649817236262406035558497311142115471653540593853006153029159536246166279222934664041493726493012150425080419453390802790165030809848210151880052395970914320731087523308302246534898948839666335453278789629390915789266800375301218458661223215370220802292937892148898464948037655655408986140854896355514998080494440644323959427470580227751299786250532360868459741890704969132235063563683985822117256809049469316611826603844334247996833728923123061145905183480863701228346437590173726696247015990057415650686151437308950582867776966571100391613261782962105863190371873050556636548928545279782638264328622582116761832155131514766793624444471155785112950443359691269127232494738794180630737003957078945415597923019613633712120011904072996471347541253749722534430788738881900474761140778897766612871801632365594626400590876916097812305918643920214997813322103313581833845570844203435889552305978615898513970723574073134881016578237661059289820926643530135998674226351503400839613081104954063618311460502780178421421946832823126557274431140888763829364386553683032678791709748749853345567767375920288230382790694439306095922942310657086093364709835657480738734423054120990722165219544045695995115640823556543185320440585386267677986812895491902222959850775953258957300356329635973113720886406526505623894580512932648334080885404294402401812737128349984700829427291295397367923966134951865935658500615575098783646032331923714345716856198261475752254267191956758627734327928433035691838113783517842491326410606990744373230894145474287927270509353585547041293585531493368831612764917588196271878134336370627693404389032500280914845476242453039224845333026040174083013978944783914580033416471337207163410218360128036027800228283221334376455929222001434833339923988670594007855910356796357870834896846140487856392080231055437851547420790987088327932685757287255651939093734445943407218675982426897630907428731077317998020337102110856939246778912697264047883822262241854477301362410922133003393693495308801492257504253902744111844175649561944206025073894966643575666524856467108562168577442952434654771606158138277094793142896332234323252847136405076964152333019430615648742413684813473140016567157853505583339293300865554123738905837534369083111428422855690554587641699534045950552913862137096451996815305611283219555684766408634914277364400397091400725230201459914629139631778977867831558495270545115487389116067723931342738161152048675646042792384623971364463019335248392951817778654956868583337558300873004810553292866268255942185074065080925258792367922675711853747428120072913956599792839292860570643015712360940941537853008377211878023098487434273555319169533563386279078187205073202976747341650849237224623652935931587503319985480251191779179222434468101772372346576549927561285743241822633066091031282762274073530511588783976593181211501502959554536512124671599168489797750665091905814914422948558480891324402252587388284765394664643568199843232639707997225994586705245277116286860352102655280090316205502860164231923418797370568972220949342753554093970850158182675076784653363260230642886611887380905456970539251301841929554903360590482688024538713931238277403422407826779703023787388717446801852423451167604605630171881036585958218281893103696441241782859774211598250968251805288846278367636500808705288536465526658751969095019476584028977392772863236499047658694385494122957169089342407727996987702964038906069599899248490251930493155599947007797905175787741100226164612637868365830984272404312140047214106501397015337021666657838135263109974291106396361422850403181506407104655497568238005825470687216449060802222816746486224682541615427269147084114730616163849722447887775545616772932882335804421853898307613386706295423424244050188441392145398866589120776910501380769055539465903648016822130067709179715943336899492406490891369891596082416052435047611730197186608672887844533018370435053443176118068440993982436374107814489894670009099836417508700641139126729693969606440957310267061316772070086459236421266980163273025357433145957552254495604812019093277483914871364578025816956987387332170563675747024078741332247040560457129020134616373829250154500948316265901457321998335397161948618029256123998885300111899889366677604370237583448834169609137337555649658938442183874738956320398945635581901642979041821194639787543808542176121571637983519243987806350871526708725638446294933506608937232952469802723580443048321960665460242240081998046164140878070870665544828200191400755200932979758908651247692798400294509549704047904469859180292103669409104027762479703103192384581425575545723554002613816719234877436365786793929232594054698699996114946438149892744986547991471001606872365364091377021309633561258417975748556714557795038759926480474123569914588870385499006071925143145869559868904175189162327157758255709414551138937508918573063507746327939934985466110002502874187186839164027214449451503995727294991730178705815184382411533594306953535667123347870650635024116522894722215766135786995561808795025738036143456733927932040729219072954789026903017910521249802327778066179630821595626820230424733470842041227746506322795349437227620519523886325563325431163726687048352341881479841356314346755704304681689623860231284582935691848602859237407799313788229302621752775300868410035647393000765620096635038781276869223957343348781776768546646289799647838825822464862858529429334583844292875127214119194152914374956356504370214291351318653977401539631224049315739837710441696930974920940013583025533463914203745532225846871412033356817413013967198951618214706740554531465268303924526607491651590944469073564356042291416927337325902472600673227503805407910638618316744648764478048670760247936179448607174694852323343700150767392816363331998354424203624694446663820215408641967852352425555386935932216918081727379718967244363840987949581719999307199007801248909661339206367066853351494650312945451323931959242983272755335734095861779437400417077223049837146772478171895194704506007407347341876128412914566276103784975750804371477094429020134072556404036977717138223644352309230899481390479534810015792623726725660655549940961741721732378170206513379090587236056965599238345289940584511067363214358116261642211460501104186324392854973585791691589222807485347476590488546863712158583544454995351670732990948310334539809533740945360216649610614163356955229455586865734356993209157992419420614209382552235174460076579130351231808293007593290051454990311141106255402204203823825969041384757704430115835570618753119464418369129610940457528763185622717449312724075020574502593948796233095914368361651387995104096527198980698183573019307511285789002845566718573523204068060988104723297646757245428225394059400841621486362401033694324957875569929624798855849367899384007065157904825369698907314655232689181020385941638411072791673786303119784120493245021554391099931359052313184042521312714141180300055347408196882241743013810777584512037429209728309934140762719576139799703538728305850094505140440241146758008899695284777716722099342430780981318744582530086530134277072783098067401783381481836211867711634495860322171120312774356247380543346579838302272081110354984176732684294613635681113739327046763083789749672961313471697730238704936382692370106957080666955753882517136810957499934941751956395949671843705444662997134548965464799483767591514139938914166492326960528654576446311841293922505786008745066718484605871192834724011028996377396874606441230840147083641372694801694047713982780427483877533743061508253116811063095229747873580750249430062991572529503573988120072118298823101736832428840586903400552465297609608862665901053288613881426801806249345585070733551174382024156731966578872282406723158988401277817320039078447380805556340296673533804045540373611564329852065011893308879891212527365706429201253577828177261409492238962088276892656607989384226633568159392816430619530918298070613473401207845288177238310510424242008740998525844696295007736584461584193861715095732238193079836036046359733908042384256390873555400787697448336119217596384291745527618823951862770096849002656299464275107346809518076159905608568364132003492826875388810506279636402462436408796616877049196075470784767355988936159696165315563096819999146688426293757447767974703366448435398929762862484582771059599553278553484580363181005575691872778132529442290976187159900431944940808164719228484853840325583587587159832114676941869998548101742170610394701742176254945594087049960090283976420700952139447708706915378885185607569937731838858899503722612793773986106280736504534585960806520706269286464648044643077882021217441643627282975666950664643795914119762556928776255663554299061326164165519604344416252566087326715367333126615633167883727472820697488648305101660751653611528227189068645375395822056772005667771385538847509964593735977513652180475509672287789989775431339457845490329500972121926853665629393513434451204989700489686858347101144609490728368832988162543419587295111296971835148013775928288748657997605424388909482167038398616460610881050647490984710058888783605721005012191524270895095961730384361297244790224114153267430213860626941772429512237009724777313035604146081651833807365024821613254943591264106758035626035466345625568842339347491094837551847734548554813579726524976426674316960201590937773002579407619365922522518557761303027625002726827634593205808370159503435301362763330313068723043827441723990540886752209872504560433687388489470589036609548292519461153632914900450897115434540390967773325936303242988382762637905931393560335893989859836852297616544199433521143580898208557452402802715506978055140723650980467114570030995599335834393712629171219494111325635806090888905012200054021125312334545015438449700140123702658152841130014820492045706469759416943654688559512656259547958449284419942661784407677162056154504330893430538589342456918004474760723661080454918967811508396221978013776290784361433620029433916860909796005104707336003241320472029355065377853633095980621228071738271229671987409771264771540795208049181557963491300331153678053089955466279747783806758386415607078980242258774190483353077699694097027846420609833914020358537478397174315516473538695181878688259968900697447490991373873330183786626354155791475595205047224475572852825331129178663682310285710140690204445583582212498643226676861483984804007247557437718941897857716062707847840357388174443867994122878828014876666920710896197401252263213081602765982588441969688808275804195472134137608350022427346477640943942684094997641317020183436952200994074360898462812467169096808400338061068367166522123663737530037519323755428988710348140955108189852106020578812374516497616013448860934163158498524310356441042222329839738946387981199980580159882721841556122681892446074868124903299491469013180925524291320048285632765083364641242419214689934745989793541618549658375047626367155746824192869529929616858714600081388037268429764468900319156966588130048631108583824466440796156778351643089096540889171788484864051587899290967701534701982741192638818127753676031404789755451227435143094165371044218462759366420065712694691585372659937997432204278197459961842937853310006300177066260268804028684210620184415391244554284577726991387211658745900509603766838047870369568360618076223666149981415816909137361590235277434266740662525312874916867329178500927080302757732475659188351379840757710545751896159804657900362690802507065406844408916296158002373949893682504766629073613451883814509689126643926202329604668273682353093508960232820215698172075493224245795620536278570850317762357157482731470447964804188453856443122577327502488591065995440646780863913388563321391481630376138436549017184126123129844180010654879339015117093961909529069310905001118873192241866963349725836973624571850343458087500811577086451719102535420956527336209486170030696333567033938588003529101060367516865477110993195025467104680099872376630167523895973295497707064892940917445544877590860173931000685394942033071365852525749986703388039812421268205993234218618406920857681078985679378629169173414634791359808967367898061107687010324942904260924756318890593205194931371865416836109568122025867575022342112335892534180641197301929234371280671690677650333274820341064092921156982056213611891956807852251918077087304127014077954586915974974037105506724277814316143404678155611506199669225181350912313529438322798233412826070423947746369667158941395354494313547387476723950317150312698245813372607303697942354986502741897155754924429797383872714892641842113287283937811831583444648052826067907394015806135189842224977886578533599224172390234137601826407381202209567093177899175557522782282422879531978721053736652728576432171983527554728081517726839901611530261484515968522406934692212676703467556161423650864617607915085272257826474376889488015359291483809818868201341387899185748700237776295842849728116289939389606295496919336203998165948612342681322128152100817893484040084309051277264451802007309011031137556366438837220310077625259560035342243995217321348257961717956068706128977890903092150355197592204409024060326805034198945841289813415521015125213669524572365666401494685286059943306903303625368693794952885948872326857205757415597426911764137137598716439651532794131873436817478116266410490706255908361742896532419938959312897091284235341366750709094026516997147710799592984793733780001982347277496962290249952455162252577671811775721496287401365810220968793060252416692315779801523256648817118211792297700927352681245395377039467696006182872498299530341202757202260189373650503131808284389157688020781064062604708599894829172088136551143547923587105165142097277063819659422934245308930307693733680163863244396400664387651338763780719683185336415760035834528260019573955592970633585234325340364249936222920575948627540065440178100856918933319690086053000939199812559373517878875609717490526216018078797365160961020980508672783316299700772855733906890388907926300305859003255016312582464717567988039457749206886718499636773555476941053960818811447770337004402079625613095713216654353331085430121302536044592222949023977369707190701803473756334838461173744786885862291204281406742455291122158860820579527750693337126120383158273816323537653410624481121288185219196731760152237674323454379946176851318254674009773803147844164944349999065498961066413431213368231756992619939079267898445032155184056716349866940786131145893654870269106641254375480411045958321452194474236122408863367936412384727037868504088123172247354884635219244561813345564445055809342799939068295097957483709161141853782861731569898126424885336723390943469877661635222456872663527660981077503045292517324832333539179513512172019234190029295957479339055410633496647763088007534056942911622850387380223068877746123783547567516722281576058529249836609462508316196371215723231333244534119960516674010090880026481253638109256566854004612953192335676085007893986725750345995733769558352764932592906095264603881285639617517971402666523729344994285144143304049720378076280594129020186679465889929128266003836905217510329442685131699949866901128082786203572394516644818769880734858918967021560702030467585101434305975436537985659161159219522398510321696706963353064257553746106929501003844096302950957447050464872061686528400038275197645954140097751591707280253812375436342952484106006015283546168534265429318764931639245671503747418891247630256658586808074580041744059244078023381281077484473247614902356862369987498349372014777758522662103566594186335526766211851173623914694687240048395686381882849166292454515721595543690719668809197909155173927763366619477491667571348382023383278845132836546171076015215037989081518638804663330625166301731974692666621781415057377265331247394836366122851587750146508232653050500327780074630470469610047905111396400579790612683009636536808810031573219783672822794917093816505998620939771073897392331815389118027699158676415492073845780364227749365542327206187114578963871783312530497448352681870053599814105001902113339220995389174482598365486376600096169985656053045041155277399528844652744756596191547159508764445165097384506775511995038388343446031365704676209083029591537215210106387985902069655129479060092458484137027100804519728532750051029061645981038687678143526973778998843627858867751416930955938787521538903026093940703909173095472697210514023616595136744679066219873573668957937852949502783667592639416881061126803692073545745595650798653216990571264471257695765976927095149278766693289015578697481562515407482940256590292027774984727678998214702085054621197953570360097224165089489748320153424971838712152504528739089371486016472912567685889274526008677351022241141428187270688640727923432441856442430296745410809881108233174579050162095869589486847675176235637658851017140028494160666556181610567740219417320714674340547500786389530236305062114573537415799499927863316789260446757229036673220174767335411109879150000067505813103623837514613106442350554652266841771628910976809554849589936133516770924568028974781706654610554011302913068991928941397958107186510399090374908424804750289335984182685287794358896516940893802112228833494944508939373869930389862869079216816602254689389202741945700208432323395308650018218088678891978099469076389253193802611563221791868751020763739861226251265288802692606143027809236999529850898528029273430910024787850299379780041360298453534970375571418409060546565571721623163647747953488604485745101896177864051537720108006154676055593040973563853457633349796601314841127403505784781438873539689366567360987453905549202560540213160739185183287576659960418446885437734480146491542977550492866811141293766588356660801821179829907299763916833122717390623590582425946967402113066947636732884885695338406197379747919807071454189137140441743887694168929726891730340881067533325183201716148333560148234340228682400398130626112227496790960262494625644526201225291703319055713782410853429901642213071856741232713951565135825042542873327507440646970327809554539937824015234100376544039980234747083540210364869986525965232985667264047537777899113865131904306735069280782734589714808441359476247023140254951687765334884825778691515489907986815563600588013397274057589205927917986601545330132536060921986177478966348704326355441116483521227166845444379901155565295318658556558619472080158137697470972734829021587056128017278629061824918311580163157045450358382073400731038521551818053325972593921231455773069541037722382299116454309839484919776611289554253293155516584676752692913317688591725920371682811678159193485130744235675491628149526197994026615500902941675900724505939737143073267956271262731889492663610379045010930684618878265627183016111370817993589094664774922667066387950146457560123111596658787819791901566524508032758595405978104677848089656683251657859784206991103028751802178572885848553647092625197075868694257234974283070438837121969317400157779574107086958003065096118561514648133616167089759252748291870452094219959185822514542686789231932053827856186658677569349269649107742185083396718444358136206336063209979390628984547084473527614437630527601566384605210393606537308743708459671256738501226302797483931736339838543189025227131558044914758605424838095100088040365157478610403683362391517821126993637740481630052448558341891066174830003565000603937725608158133448051106876661091734031122843046056215814611028907627113577231670569715335277177619194453675467816335667425980674753017480048387579505643018082882195014483936434703150754574298687413135820212682787537049630562816362202169220404836965831451980117338757720647410908136755365596237734664642549506901159446562581719211499419088811593639695279663387588977789227227815147265479689881962748306486674094179529316870038730130659358333829921126724197068998636722536135045385872774836342456688270530990237030411578506685371927574403476642820661843769826576136864309293572500818184720512837142019418446568182042361066950676364760668161051591437285977837061382010792290912234939298623802374442648476254173940693671265568192256294870323150471736234353696005926894875353080401387185327630331991411078434654582543096335614218458234621799136508066664103265482325358733959808477429801106133724385612903055379134105264659289606116409602752515904178721122600100293751987884697559628555835492969307305975448325602352371431149452695190718404030440193434466285665706744968793813380911762771371825496603604605279842666421085757168960886552681260001772351340846229083087662428610782089788845034101362498947472004849000720668899496422892148527818939452250921788206658496014599928976669296534571239030561578043228898127193572629977906246677495815395765122229407870610356781586824979261570009041985402958944629278213258567998966206425521115505082445456194040461471439378995635111454223035510933704929736577701505813267031944785969879464469624957886256445386157947832334513161433559343381917958758970425279085026391855074099034955900402635235767365119618736193666360884746326968178341932917291528800614250525965446344140382219519869854909434809195841264150138001211235184910701718776892310726092320678815146763598543642272040580564399396348506819888137161674444485455505048970087451675081070732758215006016549028285562060777119425052337127948725954589626784060038140706462278975402585548683832084124278098847175696469635533037078954566811355068583404795084266323124608319416894264839558516800196611693571959651769715196044039295169030251692276795297692427631684729918365820466464846606040501728453228036313188144834143174558197732306966366239636412026082797472479670976154313347301107301275166605772741968652276476933015455650422055936946819533862506893714915703395264231818419290480576214624779419366749003341758320101796277748729108193738347085819461556165151870617831294994690164334743834380897217301274221214937577271520643476884149589509376270429946207685928661075527724371567386199952743742686694996062504617932390423816951884680577565469812415328253400223094152498763059971751018577966719373531329398231260246491376519895058813274650519485178150710173752162588041338969188629438788715449236784387595512456311439638206544945693798606995215647012176977437502982969452910389455152462852344175000833559775721694373236574765937606503617020937324056289164271353836167248725850322364996351258153312265868021031809287126477959967677568914725227524445989955558922635013984180862538785947280408452253497678410876949534426315057949511877391904166817811776465075063119628950946676796695690769944633774224478153876522704874775734466965768315658401971746475580781251329177707819105063850666022270671780247489529342705950195393160194504486886892563326740896386789206055042223919949510544848049915141317042587155559983201639343113850724924861600574963390058794919326598660470584442442385772424401592776889027842027030193475922820496094982524838319051389578953510007069596123083072828716345060990581125173996665347364343242434062092460138406850763867989029945620619702849244331246966498343180442663347257933199927103143166357641968640755740633845921377592823963404473949353586219362976992383043233444549616916604245647506293219798404939925783306308568224486798289924726817119582791076408412594380490610125950214224361875300850000336037609445920819716806136775549241883097427698564717685277606816811532253861769187458891449316371936252555392933657088269965300531752175851360294435049884056947500216425983514016268921381223244841006093772454498738739897437743988337432699073291534344980666703853175228575032683187950103243278081024362382532203092496682498098779616792291294123652396447815059661328683048928666887357931541650166301242626421825274189557404850663988646107477277257837968596204438592689193086985216950687159711835309935154571721494858935306910954613147945677450567420831003801023749966104837124248219454228445632536244664386554995034124992227972819160303901223492973278445235854925936750566625069467247955547246977404115109891123515625637860790529892509296851213543747061943521125911655626815025457943800121455611241460357577088169579072026315878706508284338198337735867297267242074038085260978436452181037690990504917620749935602431711158987879774421214378256345463926128288224880711268572480064400799956101410396900437148355823362931000476877848116677261373094339399983230314613649451856064792435193567946927460013559429099659503403040281138035796687317111601894013587817113978820310769660710580030278161836215443999326740463012878988501015427071121545100341772712203009902177618712734531877625139987504221700995623698170840337775915600771064709943905733135894737439080020435500940582385117642946167927222728279994804286252782380386244682846646795639047528144528623800492374783434314430278560984569928977826474521371341694356268032770469373337742103697794925836874887203936123083278555530511625572255038025401512313906889364806094441443708307464554786396345731274544740348593361294599469317495996375644531223997315550148860769790744554519236235612653236493010920474892801612477756926966899975913895263844500701197577198182575483044252219589580013780106378832037946974686458955759864748178379154767660264952526058733168664083556346235049589207406665191225775273715045479664880394822469450972932540061989232988002391359156230516771438386320706417664379254336910426888699925631713490634011869739061069612419609311900835942860968675586835503714116856307332017646491679701671438824661457265076708894051901894788661767085190643857215849051079575529206877896017717222946731199980377888843276295143323435919471941251448723297232278690958287308269066456345827315765893780318265718742997184883804043415146933770132000266338000091747239736792641620386925638118643609858794592973492822879272165665108576183280518227133529736738641862262056503032081996071786240470555564801007175041930025160676629751728977945174664223719847794699547783728580579554432568679273457176006205672636273532028332520652343269785230027783672676099629863092444280673178222108126213814940055806668495555993860913985118848081708368488309913450681049256036882560241979624002539973431128671093690845002915802961666273683958588213655457301764623344541800567922630325020654675713903993290435493949692503186330643130753792119260885232355543734530716705939532970365472742963896002168987509387529966018102924220781303806876300483948829359158909144864097907772765952955381829520662220874492971673327954641426185697764188580423018196337045491951855689362678983379740458911793198854744858738585961642967681549321319927375715797792730211262551965995039439586004176088186362840172921633607368988770989459906313962897769236250692395357840201660641291899304213124329268456238250802009133586507293058088864474718128752736610265785796486364086650289359080083075389784243810679781567267112806807971676160600269941646135654446359438703516007871336983654956394736500702318476362721884165307324011854381269302635922743093109150903028061839381045489493003613339524886027902414218196024750168246841969010547680254588043603529895284591069561876568471874738601543156042363830554334994235759782991981418732282172151888612595996059960791384856591313742044828599767112450082102759251002155577802096769017687551335772136459117399791955963715676282235769804475430728967016769253834672886002155798904395215315387069670023933530401739972404765525458770025096410942389465316723924339567025637770887991283671248596149930041304831735598013388150455828616671810759979712614227499429675663611964780575898546064465585382152395999163748727839160128148341746825647280466467063264884855118925455904967974042827725205225703223851253172547936593237911836125164771165912588959166237765361065300917461313186394229306254119986111051027182391267647139768710193006885318390748703809341667296198125761487476596025730552080093991453754485979390872373865709520548310866496096789056096891504617039523797144827376600461800648857627096143484088656138706831764890411961387353425470549412321535866733035122596480517160924548318891487898885989462257819653653059237511352678059616212297307316749051166481956416594490945491933530436254596842858115084119868084077706007159395112534991129557759023468491042523306254617093099581171728368731315375499787331359002467138839176710819772795258185517786739566073540280631835654826657701622992404904187631632107169903107404108242483317294637639685295109072520723019183580953049181268403499298887597663236409111773080774309616132043623598497186478207167872998057243368651359745828996178100836251053407409089484639268887063333520375953101782573966953519640682235943680798261567500618953181850074627454706828949150629842912527152704489804409450410367219683569167652768092225630827804849731060382075955778606266612343305686854668810492655620726765147755815150636693457374261199813453524764680089396987398056231974613396568585453656248128299507009707064182825265443015900946193730546723159601862557928853399412122774481643879735566142512425375309974793298105996846002927193456853324074824727934162838455551049404812955430583039306023960279309568088009626247348805679523188380101687474916165071852340021364063693410755146846257076709646596715688136897378732263331679465530577408865560273507991649080435028379101095907555061472060713063052699118528956416964953437716468611166258691151648987155865025985538710042987750457128539954246082687772031217676805754056483475016430140954918874323696541174130160967142072148146718067081281267225607318892247002464438474418866056896800575197724464182684742315412829544617638687422601471757405743560682208610138757247372842311262384212173136686128982623964705371488629020637699379881096409724131319907731729335440740762575368250409529603373228040632464399857280365641366672470124817720011474882746414714943126521293101335241934440280478590170855729412420920052544108159811765801417186795869930015406998305211325880649423470989282653907271418218994709553253198636757504163334031055731289380219696457581953702661170268876058909629831919836749044248578158809925919304773306517163713086457051936110804364886552892440964431055799929707993107706456534966268076113284507834802946155997018694864798624319676112173212958070210964039646419789112214958746491016902580220174886916817917263460620515027497661852050367602657296888531252476657877038459557149828271636399511518930220104030828174496079016872768613958567948199221468141134148274915619212917990464982720174535598545229777477890919284263235545986306093145529239492008000870160447352891978707249960116824893945516254270322363503685470766937519825241361910828046754208284223121835378470532343452263082064157722738974413350172579936011505264811005998865814299437852139400778608299850723349566414088456875251835941734569758123797370659876714012730507289784086001049149922820466533076686087671025117385475183022613070966667394808340961462942507076033767665501338839584387451304886600071308236733890772235886155716446250957930974283931613297180589024327039495867048863208491009498684451665403866319804281796646289073741627948968128059196894597642846750494128788029370958774964516169336113050370631430343854058293268667475001360887695919433147790532527458051041940610235171767886180793587279201190434268781855353202003050471790575606900692517365953087165088935125911521507871850821627645121540458540739651560998167058366307547825556538822467372505856686820118368305203319398400988934060498478314085134175242025903789431351693413326772939109099158904348072462277135878923134718071920855430978382889043892961933358499749132796466804895201732480276280944572416375685558759405438735960606935943717825821549826073935810663787799836496179353627501702169811848131105166046519927858817751383717633297154789453559968770987256391211376930987292570134357675187470920560032470754214575313916069815192341651704882835354727388527997748737385720453420299441845792566459631474726300312250420786203360014470593684144216671690211364948972773982009248579965470364686108698584587181561667693065041786484299057542591312851038428974751871319356274229427932821435976967713895979922957983749774547923473397994864186947875346496918396325697167740384318961423575372772310511581122327175399553210909216831301545081561935688206210648755803059856535474221855400342311150017987421824894319273737375996244188273659731961769162343819072884985367076327676078623564254665828765600501550661889126211900827505002019441685484429613864360466638889959767173600107219549070615190445375623558876508358554822657577245554499263027464193138224851992882103798155104671137322598056978098594578414782283744030071889497756664546233884472224086267524899130656062159622748888771512776446617425821952001960271824955327219085743550025315346620161072832235762163108523201916583814365776515872446798466872070451074774746393138941151077572026100642428077035618815119119047719508579897140380692037406341370550893363776352719713104732323374320308956607501076338452051171068677381080008038198160527761718646952503371127558375822906813993161675424596688085265221060883802507967406257732054123020247932205954950708844191331831187031652615924092209358412520019112926185434738607903744464158989489686989519798032412229788254928460209095825811848202737333168088315249561191082728034850571860542392492300743454527456225907876367479275326932101476155051332483830990546831676232191494168879307411494412806384965886706882253674191999291313172289354506568900769896734116684902328413437407553653983882393578484787384054557057397728348457135940705682067503283290807435102479594106348000156709385282946442458158453913023525544919036716701070097449078233526711222704829823311689540362556622199818011141414864547421603816095585451907090556692049179420739916472825616002742083485532106090429819001696394265118560396981060570660032400031989968853083035501179783594592751794517916535955584850819538638436887094547359311359510564297698918558671180970726877475514330435598725815613662147215738674670339230949143718901400682092068553618688587010567552847393104604807706488666572802517139894399518895250606374321767360031165232191476227117309292590992991088410059383745362335509829800954261644418143767455745334800137351360298666137543943235146184945139696452806197927928572119913957108678537411059904051058879901616934507294761975587333013777184465564879545389719001040157456523493679682416067433884446542338657948943551705117232542245462207602535685450220820626291267296950132854849227108793191616516308599789605566619590151379904870403687679034814904089864015832339644191290009934571105149440135837467003311584527499288115041209134710177906598755903791955495026679813061037260758260464655689763331083056642955468236517566967820677036213390406679718372883908247009973585469654388902192651689881172252894033793441982361821176531304188484359701118242025166454856113023994118337871666810792084734744854172406169825916772270085071887635586304016881321357775703931642560321578603310203842291899097099427849777249215173012184621589827443592308309222493622814460093680830039714594974763368109300078873104870459419542201503509128441745558873219634985472404150227581060057390236586024968528503548248424260354741755707467238247564866544569734467941478138255123710597333193438941900479620490304872434063368430861277221790251563862519440197667059050601674174450163439713394878982113306545520205228737711479405260181089556466978222957467904516340093560541279284468104248042556883462893724509754831392332467016035583155203377598378568458562073248668182245815234381541095457325711410063422301836194233634642662517688870793571092285867249183093664782263578105503981632664047805161171465405172195266072242087279040284694645523164271558322039067591187825269563248695556494993030349670194023778031905564539938121041648375223967344610563843517128283636901903453007088718077458986798474110070044408642718131647952241180618349711973152376007405196016126212175721954213732875887865129665763138068005280133913539637894180950989649208290462896741600716622574358477628920505684718330966103887981708047076059577175043087493618907065565003588826192514485714154104511089526010722344308440040858007353067661585852543054336073730021087383828516640513007548898405011518003679800943005949549846538514099188669640104480341591732788372764570905010097451838253114571438942588538597134813780057392975260610475685047497009578576510484788346259247907927920597203350243714033973440009153587220542553689220534607620246511189364961757701213811146556471073896574785845683049472726899224131376333145806010744503070936932659416528454461279931119663465533725551378229806841576034194506219912032849840961791816804416389244676112010877539689052147903000073501696652419212375782194658284650916382893951304308305081564463514860540482495522021399083955831651935736028512452740894544102843915254117862069825352676456725805953831220452735875504786444169721925656915633441345068609377690571382905884029823849375073237125685038890595380753014857648595137220070473998500451849966287070351801955643690686540218547904811138568418756277897002679334822265371046436049666115380059204446509384096824743974579520483443856859575986487486050539090350408101628344935216427790884926745968756923896137776536811808552687515731678457536050102516945245711647476698675690918480094194897069528616338134322542330574034483540253651779218045205474140003660860751364869924270658379662504968517075773758170855748412421299122189012585612791191161214214870320481569634234462608647441316362402977173849085030433815751813868257107493067746743013675812846912070935831456019573234769533566380209414213279598452928054638633349512591247713501563593572642516562638537787457269662790646627468650097254570680061202900482689093348969858353053429147532401461842051419821387149205183828893148697650830348387125152093901251045576866570304981842373925835276286353681753403157400938331046114573198445668678185107565839992167122504961223080338413793700508098726382219833980790514968794393577750844422036694182397084310162644363478620378015206608261104182761320235717622980410539510869512075241658194500514572317316177507280024255925406504491056284839693645248495372926935154159315758648946451551318188498230213607529903309855357686169834583391888431492996736032350019000984237031744512932528013479016740922641223430046626065614187871305784368326551080559058861158971107026299986416476053919128750760872564448290269333540066178093033053870918601324903815885979552678657871130175171637351778253492510645369221359401504058819075013377773838491054758725815897923072149164179684540276018402034854803741747375991423049720680456632955314027993683266384027559239096925433302902382062010172626918439109526376327065346735176766865689660621030362235164786979645948617710403977172352824545110174624688304126162597234268367429416557281561921228892509783152557820295969686784959532708605931141212925200794971582915499812469496535828447204216350664085398638240715899454085058288759191475712270278769115576357820093090611368103819995394725813233142703704729888412375436993755903333628593440432329305714228048759045548912538487683877715537866461615649534865662623962625701178879790694592422131967177229071801626777953915222898633461693046829650692327837310925211900507052653496915480740744146317107623635408185799921017300793854833683316869192273346270842318945501074148115231265440307017811101377732595004927629848170867778373886687964135536764625174210666525218035396420783172312658076344457215059159988825437946880477069700976509464352522357284579145311877065432196759851660780921964713238980116238199341763966671620509638567184738038371851041376924192818047789408533588955925165115842516470260697145436208268719245216067936810084430998586533001168225123664826735291825442356729219992491011109523681945036023090943991877590570718675393033742939522837457810671637877834335925107005599306105862584046671271645070490679420908935179395243665815097154076061902189181528822233010611448823559048933979316943605762900933504197423151069958042012000590195111075864845033317333836177532959048215647535473587415968039516761434124072861221815256526529788579410409967586136577803292878950681036216892487426820845074382927020559382044293911644017909911248291061628462420548401068468184334764913224942404054291153577351580328341492438351445981195577884938062312711334460624950509067953758854848491123435852088209615097229104378170101317304304039301129680237981125666080095929969104906680296879417656329512759654836649547985121718641918907276183716842096390304580075749420244845854443721842000920457844154423893232352656294286525885864712550486015744812743161154409214895591241486745104473806138187846351118992899049845965951959482857513863210038387675580550020886259580314395047742900356636057232215933471913302549523528016889945765558360236129500887122187089949300852033720835879695658932427293742349593796172027370768061879031570801978955015112926489877020515998525809122242963002461857869457052479907198938284016530787144337599886053703997786313388991358874907743521558616228813828703381068830650470028237301308737737837836292558847832029952817582989422024061175282202939764428306156862884977264012844637364176446080900460507994074359767648616918497277034537657217784849693302987001628906310522794492658776114009822863931812369113863329513489343154463726639873476091265952773959100684323540726992277134138371280950422961331337918621889779923711516179594840476601174587978525208543006180230207684023794848873184984847068291456078158531453911210205476621314736348960320124621835274875862273104072336490124731507293420082871353523567069304580691969638617157063074965073648265991357146170325891733598061662187052532926057652731502746325342455353741164961096667453367276236480109096602479460359396780565024555219697763309453174753821800421444922917855029041029798972509668948510416932038744902182846106762857295773513824694923822140990584165669179358200446003432849298291392087521750163413438309045259485462459739640941126373976246682220448747817134453214116217790258758944397724646172640558107243540295930778032704562212867792951799372528854453148601756158822704018589440289014385040339137713713999182738357395355605244684365938680833934604321460005274982565069233569858249588709466244842671240657638767137254606163979597169749720141529764154662512952444616785266224002654741765886592869961082444858416449189855235015200130687024430894769291956211476847185655486079591819419530024097143705386296627462337247783074097171488257313496718999493783505803342372062794353124009143890556094147240906492463057619411544962049070547612505995831480526307865801413752247467371939622758177459897381891003787894175814287891564610519665248746875653329646619606804676481428833978055365360056888938331724605300959783871266091191490644653719410588618655887352246162988014248683094785904327773618209276432194130224550408596113817128999482433269246472519779119605756355664117341553155377440774290216164715097640392962507593717734300586983480454331190385163560796069530500357226897104873183983250515743534742976018310757358605979135938643419023249686568579442072576244200540805686644951833354527226050682090824111082534925252035642727422606465303660440962762275762039729471281782909378065039757261782534303928475289317832289023850850356538203658162390633233131037749927608910676268071182609233709690007317547219648863737839862568560799998827667593356278423616929640414268177006464205101864848936988727619653285666397276082643947022470760573421602740959031244878469562554859246150101497220328933147162799181524022613266049500497057038028738109170679085598815214349007291413374435560696090056933260301666156619326625719716181549527852443362120133117610781124175414994473338206224684301420388040732631214061842049925467696219978460651417941251379465119708258636066441649492922461913248004395619444574721653919981604186869769897671926319018023834938828143560948103939683937176783924060267543908821639981431014042225340519301741134596365204129123008792491630958165862303798422386506732680705720008578207030134699440624819093388609033554315679929164532324478983569691598679098112530875826488385978916508260074212635040921731112527545851622537126984190555140394801246590543956302487306350157618015290185606817843309797468964164752531061056944936368040491812715969395466116989688791546915566630034607083601526372960328783843978829084986900784075279316011116054980748000546861453304679407542940757496964788423517378961473003323666758201912980865575142979173095636220555422431761503447667672070537225327845689673594152040926142246757266358938858137682400303916400016188826022985339953711268704606609834868645785910023601290466836375727848840300123251393281473167533276249258052556155269865422007960562328357783302703016926296189201510752661241794019609966630831609846007122387274052319716780119204404957764042800785532217477991954098542549466554544880962873620315658936700298161119697217250030385831864406309792644834360402006810454480023883902402916043517186854163395775336231876794908355925023063659283147323540800185266543567619927836859311670989574694045610823630662362351288772517747919082774410813140721307247304082009639000444216847998893127225169641190379459057956100365434531164676317631763336446518070847024707037777871229889596857536445303135384137814118790138965810636029273496990030432507197899437046618977337661843294926778634937949325683196699341536390885141715504967353512306191456575953691084398352699948056447610700075713603054199915316247502700070647593441661484385235397578390946125106250228270778609654833861085299320011127836759569972835468026625959969043516650800328385991351478267644938421532271283729497206577995099095978407341778193075636052460172448984734965574723415065518007608979803738483899772251076030947585127870296875451341250459342115271697165545806563757668342853387853006474804500476961285788527292785446060988722117084096378976502578328344626354756545353706766440991933356261322998049114973078929172668204425352607074887494338269046736223348346204307679470734381320469671402101958129191510811669541393085804781520060738483942074132909270342124987642125059519160985146503015565817517629890707935386010225029376699814469532424834802650959302066936747764676253382641585303598758190921540462644437678279888925840446024916149241349216646354095440033333863453425294914829224287952355644923013312760346118217227834280014953548099180503482782908738866969763894920216734241490900489969963020572634277510493489813202711587510488643269642726460202223059040281241871203580520426871528492842755204133995930738453935186629588078254049006360512721255878840821316734633158807870839968335266096017214851287769086501793197047633075282715594695189117806168144154409063261239647999682246117411325270714530191044432179078748397582930914487664669002121943780835125637919141442259855524901965393537479796365207750192658976800839137829342339887031725426615013749481955374580402367389136379131126700701709673247091489255439986706570511408162576280382030970357876081090372677185138649380272358617391953293534414814561575591678938242010949169002248675956925068543327623460826578237800781862602255193821439869568928900550166238487478539646111089960657438986544506619062602231629962130971709671182365377064734533958811839813426364644437966957069452018005804082136316497608144191122084133666008989697135516995036998654769433846043056005215008147868173596802403459607715561235130575708373622753430998403611581169523642965166374777322333188518727937629597639876593842810496290722434124877962898177970710132590970301961791247955590944736587938715362936404059972552974496987115743264735915723284477575901886081601690561835438497946523534794673481745718090841120715153309159041530157714903038708629996281645769366361143400702777289870613068215589533045919463616659548155964907175193711375979724022737289835275614277001308682396002184651348744073308986028031580463609737012269128036594726473639638729632650582726176952497684047337984148454424161944933958869583503510882379689289342805471155922213855450926535837066051605670145884566174547717409191267409401038616680425411613185562335026170683258235751051531241163539854278517033709070144280773763711956714862878950347307014117086926430141616714399126964566132630652515412820358800257440807450545621955778884526409654877527826838219263380474918739044050206472141491826163944033073320459693818745931699903427986479457763627532642692218675090984768095767209799035498954028416334616270839197517069685273711273165811131409575341239882046286553562119744358814731366509119469984619244394852662563486976044851564206780023233729950527309987514111876410085132216342211642383389787992262335142170365128191245543763596552721117785043882114670559189753922334574390328647295033333744688749408582065985632525014239957844548259429374075144156341136599426586385028901054970047529098934293899144506825776256907703760871100932927849733083748684985250522002886691876704808585789507123141402200278296589331493989243261934692438165462695898675111156368693991677883040341545358742712871354430471589456869534582370664248828896361247004264521025704394850104517443364667531106524880393861360379947750177803392947576913291363619986081252550881058773959236105716530867722191731635987856828501153346287718014609835982902892209128160766533792697658018995314657332845332266177530568397880424353818361015336939711126297607601256354892496371478830568791876182324034244050777677494952894272596545371061229744672955525636422080371136776841850772407321248993232220428132945506524001714314747001422431360011731466192810962205258175139655603962070557724145566566452046998417464950958891480072419561251489544545394233104929506616286368976044730447311577011204491459423812929038747604732155403306927471404238049268369886473024499829323418096652135354704514152560971251419241313969191106639992874073902716678134099760634129850273701532524388132112404318692254863650663596835869718690080411116507495444399603738977164864781892269033106076989276970462446623307787020871008823421351036044302598212438265056770268494291980716278785615589473431860901289100137531513090814899478392195827837295924683625566245212074352862176033732576330031338895443657956814588090064322123422779294969990737907724916692983918466220063622641376815243154959643209599449059772263880297861704494168815012819027610038911273909483406532508844166125659102101522017701450409963284003235878225980075167554931645701687313829205886771195543680422270632392632839970080910656527873959479011250998622683532159269557011546416881036892098679224562344314497749749186097360182814908724741445769769528407271565501405106140244732447039682363647475523378108054160551871808552483298145810693863653086618739618271161426794120120150452321023860405293897530074810132554362465502307342376807198523288021855640355382941590343941330908796929396378664582365664003999666613281292122406394373959947450443361042327612358193057940757704350083531797292450276170981829089952727487996386925946624421749863737610194726257003084337254307283901597501982678279330964504403409399210750969507471168211077741465022826507516000144361863992881900957253956407241956954723501742186724028016765429643957503887606688672374254632804356756308349765335590748563514079313104655639698174063266505778002792828000565633498449640086249644032593141237567607809828969196933999486642850063739431877789129258931448223000114725946767231897564137408119815665180283611219877563726122103203216234558412899224425475746107690808500403068127808041277269724097280011957940330977438137448018784405099187328230182601781063271413555844897853551403019581199159262193052782961632311237397459145786500301484547305792682423935717794511332323404169140900111772455845549791804953985531390396538561225825680626486335392325169754479721341511806217160642286402770248192960090417653024808291931582520835863466771888600509275857014477706812793317991367825075327470762138671941779447499967987407814408832275487586586559039111960609440197763942685827222355524668061403248794241460748109849930313731632957319131833981710932740446752516022401418309682712534542713642804136532319061790567293034213679192841071943133758239116816142352037027802003467866817303439540913474529078426191002605126122905718936744778178280564643916050835645579045659996035863891669938981801990671865863112120323666818419416424623685459120774412293589141333735389567134860474574802044907495529734512442103419648560134094447505196490765086475217422599255095322187993089375465219369443460327468690161469258995615954008709173456393046132664530464285705378376650515196377398699440932125290624839601479039250055355121915366280750854327316246115548233016442763257640397818761643364874249010392358187656913681836335588414586824904477757345319092163662781758668388803415299333615880693404506505097519459773486199214510025707725083176227374817192900768616188354747098412223272848814815417382266192236110899340813863085617260293411157117517422553380127340939118531369542987765343455999342756691169747713643166287468161912913313989614680655122573988890717432372800959325027223270526861328710777164381721877317944473292094319555202956828379691435253566449516176895787256289983385044731044505991539790569145058708077877391147190283284394772540552531749025244837644213732210081472380713674209882177609285637960770012152724597784540710318859975358690371791471827400038463406750675118796069899303349737905137206925015162914696375836939570493778202517339244652143849020791349683265100135022355651185858239687310426091645021379376987495918366215043861985824634809387847624348490730138114652428963156679366388842711914451470924038570446347475896714439588621020385854525444962406285914447634086692413511677726937978116178450020283370745245245905715317104707948562082944424518173588944032724320500894794977122156927204486632440222532365284011727556442433747562785331350035981614043467655687676907044534324211099178623710960032986163577869929717240597341271700413142788106545896628742635183815764823922521577180536191094277981969726084674445731136796886885942126773181256274355656587238689810995002184251536149233551971048649228877576066120108371930706206682075208257978007252179084244260807708057911088478800745728016159558182826089542387520201141836994446898826390817942344503879763901624021077194421470055058144605075930620204904757831723955455579636819969580818321558190369088928051678292805890849738060064764480681276402821318743751742647174871196130942188257417687643447663127048683706180796602489126953558657331763581819293505594948352416330815625743209585431120452750719176997650681020346981976391586622820280226883621729165808339863657387387691500407386267207579500282640611246877317161570119607026648736646506100475397201985371988216130360433299854406543853488341995066431025109493973171640871326597006392491956413979528939582768610224917646823528617375410628398476945622422285825711537896238648078505040485727112485230686616188520661807294422803501567818686859210498458678951717350136113122226953016304518671846461141853720529158543207412929593043952133601072885668676353142723775618798379828304485112776009673311696958039362001147484322672302188498180280312585576584910864144511422425324086509896891740413784361180943592768775271048510631930809732041492718154618382559363643941411820666963083418342191101549514701114030771630997128324584752737587115840774503717234823920362421780212771076553798576453651741362301656036633990276980334695994705663375840998920664869427049044646722863349886592460081940408738009761179741181822783417109800092179153664954390401758934116281830070792867683827541257074002117172505903535418838299945630374448432907988341073576066715069967379111375950040378055513967772517682661693566027142398128758459210433533894668134640943952908227625018391380836580073949721388465531771545729115899004698099343438919164531450788876787341848009046943032383897601182526493512160482675774981272700774595057035817553086734486714520232079062923848410121606513990581211064890427542903940024389278622948235360753427393515460054563861193622381336559717749228497218830338964483116404959371737575731501998739692082777775464000090877881633268234557537377926421153881475737256986048554922394876664753281272069589975493181450602239120064651443323367425164522254751771113985996151540202997463326836202607782676858215046924127445440542311604041035408778888084582568445701546949239097959530086427264299411675099741444190323950554786339635674248437952538595129308496221621438557399805888401410584072223300488600746652557102124934038698477056116425620514089020481292506718277225982397262691866541687110629791165941176988452364941827413449246686715521284625922081550002305159811191145709989581482184125774380512135442231260085185971487352810446940773195859170575921617971807153675635420352792729042448054768985469450570398142792226095993036827855271228485274842670151117058123803364695068781919511933384216399714414308740038146187425014047524726288205820325624112310266432615425059814758937317338923974348489904506100006458231446289487545081952917207776840476851087812596549680740263765237524781495099539187427735917077593992756961730136745840489075578626627542329567290188517869012774628644407386198219686208844202907581981612594909008129975725254703666709583995561034626638679159479057715255893753950986036199662232937364474570169415347710948260331381584458598850610149392785816966345988164320495837322146730866747053974663418724886984503619567535986042756505151493009954215350280258377799425655830783721752559501193616863930952480257433145129746449980584769415991442295959738925707929586009112897346904246021318219305640243505879049840159987498428873306700462917085169869498349744447421920511949344414187498491135507692492919679210688585794474947605602917056705227006025761513842445833644891577540240517070804826940355782411177865596079418782505043054925381916859296876199353253241329259601536665509306296512569584516608495190334447410348492256871056883737600908623668287570154595486669966433584986149047347248139789702403872188662019863448017858548308331387763606443377568831395740618619286483668256839639816395589621642292065309863598860840494161967734972666806147873226437842957748717204504216343375326401539435120622100793110893505536390251704860809195106404866967264093839433235830744734785653446421936374546288508994613394572645165189265122166532174290741568239006148877127361215451649010404419946629844905644245284421321354040274371611677243567140058671847377165259633445398734000804456234081499222110801567554095253182223798978498777071408595512679541517041788451275898169735403772150223307029886184380723647561274889753504478271580242606410990299310583295478914580953007478598709813987140656536426437334641960204370601608031238181025630156653788834335538533950780012103757801127061062521612901879972075876142029397168189531636340252635903347786239620782187916407678516959812505415601279354460444692926666698045774619992356501667760886352312475649940734923495850125486888895949068340198828282794118193928280391973978013830489697011242570273761604888355728726866624164224471718481578588016415085328125047781035336620170839017823150026046654492849270985486909851221976167953863841187691973488617892932508735435429452466010597424444222354529599879945268667444879243212060502477469502992959802470341188645476949878621104515422508345649879525834546055471036415350500201683302447200800019215762664309216031905063671721111921846092653306711306059292395088249695094371125905495400195707963968735163698950329618530977091355058588009182493925236599459756070090082777119995525415722915864346303369593236171784016434775735649302153488128879610734148871256943992257500296925779833942528043848302759439997434099970386862626051364696124806350347749657119545283320825324383501979704966929292841384427706545801502162253309571049423416294394655242504410699348854707766788589321328885353676667216121649055659458570235245149243162538668971836305362327889880851803687773778806551365310599703937813412943063334281493340993796128910823955215507809697666473737501976690729665094881181479971248049378479453647400918927103887285406547600612797015089282709134048091189351085164966925425212989993784008275932696919184897396323191459688314589333183288057889812932654639599033979180085399946665415347500541967339909422165129256879525990747859485819941802112624261792633651016193213542690747463998192060554998516792298519259309737344567549449793855740662384417841061933615712882736396890165092002519894370097460587413806851729068600946520057067602611011962659418109364717754970201077164288493208693129069191548987795060760034058281914063573077110299408945581393828336278600870091523906393657400230372573314271813555315105135024070660756511145467488824938708787560034709074669107783946699035481416773084270208095402058927681757990809586840928087640087006659625800010924124338200530499779686608725020644824136440790630390790618583572644002796887219583501576814366424077295180562227858322411839098550477663049040625390539601189207741660621473118327012330589117382878863292275430787802892351186492383025072618130017901144564728514296871610886300276397138420097253322082184771686536231244417017519590491916031111681369103158605747886166058216805376370413768775837823918084154464052843285600960441229504709573558482473700280421353552792193071698355168806689612361399614583085872065949727192041424634309043095196114355478233020776543909126618055659342079892850579123605101121520497829112965865205250430026867217405001623690140078839526663682299389437026743706756992769397181002741680247940901286870410566235566524983437688084109424525164479873568986944707702927390313400498185659834997797247852298423336455211112383713303293710249845671156796238249589597586088008374573751845969286056454641952502961454298093904309248153208097834418229473318797395443295312875296525857438497962786622902380815541846337438981585301820812268775165947372762273123279122085277788108546329035732282574220447660840389961278464875291784304901507503903973230472758287222971169791175846876205528546559658248513681570833906356886941838078103496161970462059021623559939028262030620523575707411075785875283316033245807914999603651384771863481406449858500122501507379161059293262474009223470539062723702137230653986928828059301418705471921059320641693105004543789412540063627503217067847507987303644422121524801587714634813462845392508084700483998223932961380324084840563666872354382178481327831477714979912399104176785761404449168375543087372025328656978663945839238646819236729344586941654297360809830981034108183776713053920924028450228811558018634987442863139824117273483179391460710664533094371162052503508860906230619380954604902338707670472764809020331789379236934921936538304614282372628616525247251913192158503605644988231539212521415153984405472865426662453498481200960234537281470666260314924252598650792038669368813681093382276110548497903468251331240761895182051206464721900817399925423074200812901588471859969580494412309594967413137978418484439647454572698579771862446850608485186209463522660098509954252851846113986611925707027590651757431511169511031418610118499172947973479503520476561198195164253541537781134835157850379474797992471837790007756145587075801437586292214182928607079195799065070280836684211594726881035786228608450112083110166958982859820711589043097327189600952401934505226398814825618192209181114346031105221833483341007180298367755439563811815257195119724617718056499312688734810828069891118514173667667420272239288320704038513120920458669214476781186762960352376004888633137126866904870527664839119481757778702122966707558971307430025510118591385316972949953128708496640841376810168118947915567650279129703439643205452169944134406029195417855715884475306089914171703135542467210475236195514199064920349524247083911910507942092167123763236349714259798151045250626619211910269522956291049145860509009890974139764783611460795447040708281186985337415374385170347496374277764347243592531140643551231332524159152394022382199396276834103390539423776468718847622632568722384448956892996758385372263848450641567478007707083195342754421304969556996386014120917721255203519565530103795904972639108467737060286944267750197994808477174893871116906264753097664117784784011537314932488730636928765718214775544897520069512884376682527445912446734794040794517149066844099822702035062381340091375596750921439469205168455127116946378737392008494863269622622096586722759962802198057767250165705167424258622956539034654475432286203878421712128817301395232718251324751668811191999083800389068078929965914144627043360895596283473720744057163425335887904632304034826224636628331524381585731950716691061230804145546539013223929429326222771924699909414899676290113337531172341756528310979499370721179864237387536482814963146052552863881385167676346037540256581293796485967707149762896033414426137229133834639689871874152057551166011524258827750110865676851667458076045523143089166316180794665541849609901705818271735987963572229437365760518046531969946959134225081539692423609513137755461465407413500513892442693877641486946048580869146227506183948335335414298529637206653032072225269914833963423354856828233924080401967318052290979771586362711491960739547172156490526622514352990594894022551040906764414542607164102042322783624219408271591963702834321875604588716520198271589525869506511072086660678011319792260749270538352461387816034907194267363328560031748497435056927743907432991846250479448307948451208003013391301034148242859038895405815517376194927317113218218617772467018168135857359597079505748531508727251615338755335128188454997707055612266227547123731012522978908794999611351128919877033748335671172574232289557454561367304810286902811973419515522262489919145336096447891773335069377798180573340185101316294332103017793525787149452219465392118383051139548460008507715944032173757494262046726047747161865153536486013826575908584089183027952878916386688365264388895902359526962423095077086947464577816595929320312539054626520491586855978716937465309510038264775783205363838932408393191882444055286982703780008571356793968434520777009210924306175508420707467245271143930879986913396756729932867217699482186432492416235950775998302009513376277567428756664932030955247126632868569236297258227984548219806010015842435438174240392439293198465222557367873322104862167673716417394488505180165744111865651449818647115812656037111939695156828220134550377408017550006005212660663549716552800428639597358726417226569685101918613887651637486402228518717984276914739727844050581007921570384856378076363604785694820703211468538756553286007725928981363325982619352340014762576540454865063788446845854229592372081035178495714157106747489911454253520979310202084212861311851303287651943507350087897078602434763980079057041258154028222867751475394243437156961063463852537431897530971615288209525680593283938109764501358665875365395732811397941571090801806872793603955560925189219127694884985504713630688775159610281895216218944995269874403093393746343793769411302304235024129664131440650950107174153247756880918043091503235786660728347206809951197442113374690741963021614852119823173188358678260623388884438531300646671072553675993573018058627142373188112589455148192380158983686303259476738848165611448749066593411008851321243993405530317829714355851992124099033673916907171225273648606577682814698604409300176454622406848326276934558486680754457313003018077983498300024226403643166549696632716076519950362840716365459926421103056047130469242215121814913273318774009197492730403615783712931938103374412958999847124174408361528047651626710651283456030083513850294122491280332058470464494014266908257639800508714086075842447780474605354045385659063413620534694248788648292952429025416620934428330684150275896455206521321542318145220085850181775135917940038435357783450117800058922259398721053986040308378337091204682401154039278017211816306690052378510771986861781300117135761084247428073968254908436086035743855443719483672299405977989758804405031295727302589314979210311779908793391660613768895404748722855684476702308720450955548041671097586787051606442419267794544209886991911716753489457517441052273812872894487033623078425467333959063834968504700783556095300206896613877749876816924906258056587355710323145433511613062652148610639915501123710889648432867013744597946701018678044477690823874747190534114591232304790473678268762764914315660920990991407246600041287229812587243941172623578013211014470405825045252189812793152706446945043986102273152790787140678748039028612542005529184220449336072923924180468997845620931410589911551911268430869734263342597182146720519026316141474549420062317916861016151498571047073302066989808203616173301797724223136157449312768325510158862407807405376830437201503672578977437596086210032853701871103180464014521111627490662790936535271549813493363197892011455284205387448555744587050271620080234010839384131661085493635678280374706455929779250672628293771811963643781760606763135128026797999781502423553404561113677842057571344339533700663869487177957494820341533632011219567194339698092881335026107110035502532041679429000302973374236686966536845997935679608287365481138452365800706030675088079365825124469572468092024143170425097670593234311017124859974714756298214238867766326245484426262118869537438646087130026366786404511967781628046148597177567409432425272298168334632000404691648242472658197120695926318228826864840296697654986931036783036825683793352586710071621769807564386350897885130751988264212229876225632295986565831803941870406853279733889959386137399679951928004828571938384012895076154080166058315109746082266114919580018299348154077448008479082529936695039423453855581271978317561866220547762336542030585041284912254922225765102294110567197828011941256936907895649695632425636963185870477877512314820390396200698418792289879451059729511705185651630654323575694416592585721435260749000208432403844308639950135492877929007437832178728238034790498651603222299520262052174442310309938159495449043963127708672517330958795071334976093223846995205526130747898824829549295114316251164870335196852638565362429128720438229203293034013158968657990725706704233228262856352624762241974757848654512731872667955631504846269992047608626096184314638394753817366621994262024640159662304389066437188658943485453732263496261485298979265838486176505766920682198953324447412597896607862635282049989148079431853286408460920502000841556456177776446102622901898712249455466355624451992322923597938205665298108204739053793597133201873095578813714391951002121535004239065687337349246692092675314962196457209728104253405505510288411571152932601797510209742082764398903105975304734025250189629227787665602671217723851814862227708450669903147659432483431044006538212821449862684546325383909194644046878513339231802633820461563507341760475992192131557656494910874418370916318657130236823136987957580404625961725735986919790631167012491286271646358930718458403785924539229575548090736593786800201789985594303407401737325933101586463362222176524708960629337916601612630327068199466651814889865259688371465331970152102642507256785175144101700136700246219461689139351013742744722097828054455800185927457026248542283729846277341015948276694109388742700548958054487197156418611517387611198571765316770915740851924039186827398627322403596005749893065837029347450783529040592110657908086682200207779661774582793746753163024825768615419041882856257158895903377912860323954016132571703802073625261279846635413694321351564443904085005891651018068534129319026144626955409032085287125235407534169524405791195891489478731641703283658035305677702496479515695004001968719791702090881825454624156612072973983349625597053426450743831112645181613942476528405653292550417250144944057623077985405621201716751717727166843041848428973505944610040512385224493177636044768271739062449226841738225306415888134129394891409341840183422975732412832578057568279453132734530055318974206310827783255191802551657611411369693784388456772812853070766507517509664659507791096869890832850334758165069822853593178019009480757887213979116122952173125246255325360473175034680725937419048835549923061602199474479556040698259731376054806088974388476486043099200035860950999157287371705894823438194427146162612899389500807639255594436296311041541311985405491919875018658855121132692367185572293231322940548504239321874473834363496648704216387933714187289313195329622964426378993965387494228757607970090534646397973378636082838142168772087148949687742862301591058715556051084015616669569185763518627395605924733461598800763426944171509730341466255665997625804290364662884382187187985074432561997538176937324285819117046313817060973557168964126394674875244020539466416669805579394133684059444022971265752369406643579228475054164573346875853259169690226076673361285360971688307263514008080835470338953112146007993605163535498456750541940424254451875570413985364677837612069332643511795296332496457495616873703538347439538779423891133414844421986897568372649858886712244166855081017440763643317094167664137077814131689856950723392119152381212119796593007254736505992309636420979100635564096915838144177883354660783189896235736225253674091618464886319986495934505564522290856576726873522370159587047958133659460430308623632432817074043282557213228813090508719232999384757337205506563191117361177094292407374170148223890106353533330260296065083739951736109789758515803667677974563890285402707112161241737488806590628043101402833995148698956344952305220786341588070523766264577516739276769095683713062342931789645202867947472782090712057175307489601694455673195724536122277805580049989442583051963533991261146877992888385145547887179854410905362849573528387283480637480362058938053613198531624739282290166581549376233996838983907794573956643306081638186634482692953261465723050146632104073409258938982891131646215105329063900242081038147008313840165977698610126840297542053054564386626104329793552752668890837708616553908998146353458267701430007126191312681394992876910595610133234530633510621463681037104063827233555748655720115140739554464964880717987467491691030709247438913871998933662190955795437681032621113342310488523208486448633479920221425709622238792540200407347964329845421929749207512970585824051322872671109111148166956931419705688528698472906173930612161981848623230465011879925482046031071344562351909048959376027733383587895784289821505639331242091742124524702351672938825367558165042178808499442808685862563667249246260122224409462934121956939007355262705267007529923648389929681033122573016348187516603316573136771867478788737373395788814459461813108178434812070652235048704263519446176046946425073450211870989133007659062401223724161953961710012976945653242552488456806803123154502980414062791986786646673458164628941504757975788522580539461483656532327588785293300656127785038014574730380672263845523588452504444116360018316334490712696025928607160348291972625380406121257652329835822113831994759656685156867426755141001547145532838314815060955600684595811627495144749101449522109708800584476749351951715328158567294402430164380656168994990087895371988937156845859662898138614553647961559657908694465613561642683139502589314900766815743110607141726232527184371670304326582668456225322393839893959961511145160049630306540344707535952382358417588946591482811575127407759004413237824483586986059446576451086063954421770889461330791365199333051399613499473994754879628395138370147564865107696188769041378859740953991663426679110721836110884336070085078206394297217370695854972952043937856026850723550731616239377869554133202754168895472658609536881563245773984944727816324966468376247057511094925819792711410203361945374612058442874961690831719284327430839310114817197520970696883628004868850916634841447457783464297531278491373015430485759455091745119733542847686227526210335422445323118167400836699970219529932513421591613389816573102888431665206176591499581287592855883159969002628696628711456538620821261730661918557506643332418842696631593408318688513264570066696871029992856963636237073961667674428568459595590124289653968061839063217636637025010153602642198632665853970250099528949194945544946519703652383624103928041458203133291286358695722441919609503918223554479755107017147505472100751296064956252265981601097761080016172722467041837251831872162704210912905076598846029889582789874906943667767441541503928186070459423219525236458538709820724061483722219115872921968638393348184510177969678455588777629661851301296317765201874370761569537346005884030426024154484437800682185886781451023939875816848441570207300248514499853417430868842035625086646445581930229855921411213818230799631829099575953837266411051240356174289804952178808725627682408151229752660212802358317693018659248384550125980926990275985913877459460230634760193766463505230898702868897700448832369318757949294095472691708676595615273459060003220309484555637753220124024343187547370284801630057722353635770468011482622966890143978751349534235218092158938457060812901906988774093614875369823329760711331886930276636078385165832270732403319674813318352928130730037652845540598310360350497320656591955652871049390676384576653835815799755214013397836659917112479709105233419155376612120870068881728897111704079898948667012076826114390743864485714921286565389701734266283077615968987647698866837645040600647389843968730724672806790884346655930738036748135013644467084474651333489148824607296626973310236722176821436652171657389084526376458191425262489589891931498372440131963145968235581566967006466242049832030190541642858401973194860083176431100218241262797475055888502937565328521308414582750778578887817645122487038494040128962885225034349527164448866248446170943201018401668558413784766858499985733305022633100024898479146322667658306807372217246187763337475219703135538837779416923363232104827524674168227165219706447493584763396096518028610274385162767221087164842072971257516993067769217132650098317241649776296620746257569617652710564447807069289456802456274960349925032805321088085849002873729315867348089013278090806116467815852391450808624077880976589456107311825983568989102291220584046358544692616201689796665276113296948731889010996374865281888909047465270962282156917714939672190261608014511172517182977052668696463303871639249168876402582241235766534209833254933210562432856615436848582972463163809085328407913055804883273961122109338378913700236521958561123159713902945579865233622649685804036229169638973006012477025346455717562905097667502287182518877591442394587626898228183618544463889455267501334389362679830923000866942126893910009881349361623305572538730720233225163777080398300317364033489079724844126291987355838839085325644665405503824551173409760621960702628073391007878192816145503274624243618690957666020489125702099656315284906098207097844364407736995768077856735770103020836727595328918876316381033296075968316312363474865521664729706758785135168650639318825050911247380982068106382813779481247636096077189428962272462979177969670031786719811442842970740126030040769805554640937678410146204044460848226624306868938183261187087741572949142437493553244255298512064407564884549501874769649434087817326112002961211870152766114941068881657600426445669381320092470015420735025170582219660384562660578255726186276664547647801543783436445089955874777594248677874786253351522493034905274309101786657446723948110954277460032698899270446359050649467167243807247202654753936382102279961882766797134004366061378283010141227290512599311490313969026518243182743253910064544338640219005867243258778262403978463950288995081061373793573747387069115413647188887372841145593440193304812223896758180663957294273576374959834906153052662208989230630477997803138309083966386231374501295062213170150284171402157548799143573961575969145312687054953517089927199391853427799421306164967851502848371753224958151461412118964826126213167116447943721441961202465752999437277215223133404131547037809975067245672367151772240763248540417137673081290933544922634265670738425552133993091429974987810738246549331144340515083087068740879509464231414950156607556148123984215920696857279094839501387817258924050117517049378612858155967381425921410108196068544241644500001290979027084421982722608490786157242401115404153311616076973139291187999084012847992009292228782280892663918808178362960635343763459079541427847948787161831034868680808920371948206517189678573379723354669981663115798435070721319894526308682246423628591041606209117389419980813773705810731312591953305428878312222227335660873733055673804278176710556224306106439061531394940078454237243466342726332881598430191063917724085346952935878715509789315719616252748465728642094674014354974212994846433875136909289637970824676846364535800863075797933679346808124940978382106158324543825639732750939380855901867300714990090453381053547024361579004853723970954931222960173246022633685800987498678297492541209912696845583174577619654248857991411535561049714333706528912581220639310929622247593848933998605391296694462756857077602154212221947457282862404126944465098086501042329283905720050648254129246947013688114084391897195754860172196725373327702242347507692356806720094867914756033273162254535360983485890561513067974206330822042547243648750114932664242516867307757324559386971445620587935486142934632944651256824000865288714427118099002016127601348743356259987745743834748753657013605718921508060979524089973739291561025258289032754702713445254428083309304547388375002602178575577406286310232332176158907864788421114181052567502185033627632506829508366888212166333734515746470576372919695258498130028342397517856536734132485691579819145611090551330444272133073879892347380988847704960412987951793632243005039905793473697930702337396413701953393856450822396559527668982509935692988461393682157988915757644814519128735440631542010338735556621622039665060695977052686712368953150782806182205716668853999281906148351510488790780800796125521290612434888399995890708463738626545686382262595236403024420565764555628454103683147364158146762380948426495579748452837499776644349594179275995142636092502492961953060236348866617121436710554966614552591786892452123814221052176353800839085926384338360432480034674234878828050777500110169464880204266995634533160345537331483543209633292081045712781987270950896023356712506370072483760757238471283713600439116093842347690003397884219476603581000207039943659103298672985362269402489770241676743237041121299793822047722289378467936060134341663650116305109425407055445963657624579511765462297042194081361622680714989869444396823410430849184196801650122813886539269819548017436851291243345834521430291211809503237121909918315538115868557259179888421122556853291107836194119088259436241515189595081588090660534324976794133726309475952859858698141609334368084862268322681401824911121323896618572670457601831181789310388374597964642714432011861618507240149724932105609136328102647638349512872434353565949255124554654002261118112225027278094325827196053679682827608256001899001023641313674403038890038088929438700020301058472012472226837934063110645497923197612424267485419712226264355294604486367946651852507662475785631451510673221698089416518834969939028200423865539802549034969348288656030894321484233410879105161182286737232895231021858501558140997523277435012639727106239563606840253269804759727211546926957484488682750009005793178632909940297389499245118507424319311613063899224865616941076022125736397797451344440354351241585332145887521522499133707651413685223405198342200605605859117762489789475355242434319452838041216322172647041702201097236720917426772158062154554025085949280953232976661062302790062212648863912153892776568638180377578364708511351369216652914422242908737923694985412980965399343506786402073986037883770397329263880826160238158818878686347406214902888479169611893920430835809395332849586978038137863813967937573397142980170064937217745774402675235434277046029238260820133667131203167019731905951345802010512702527675067279727501935507622505681053297885537611645441271393781014381191848478304828017623974916933162877380126100255545733442361841929407585426109934512100888082621922478095865219826393875713296084834911099203846546963015305641975038913616714521514315631896068508551617317895641437970149939256050773514548329121109011706574004470153546069856344824827202663951524121803470618509216474129040477171666071944988532317455302810561743669504620177367428868020993165742835482556933098795902906558886140084345844441573568568843012987463639952370461571057998591602113906950881526722396621404470466877884399779583440611812856031428752893879125282015273580127366456921919743738173864717529225153822249103829857223287466847448830474360481853940347161152225147625999643672647524373444904240367204654982602998921295188806924349313297288809767472562023027925584803249616072405661758723887749511621531613451713723988806489202288626150714647264714432540802303096845276190380037196231445080728209527885785619482448637683167674700114497353584592108897225606343108739014156594762715638951725987744884027475305629346095883638895385121328176372875295456510542106261457783041853455702260363711107913158008227762280943685367619600303291303429954301645119807657884675435153786133982961188141072453214018573825463918590765498339660293966765272798058804350303738776395408293490273504031434044667770940067903677792298997229902771787078800022980990155036323473807175478227271458323348416190920240785200454056078643350930638040759651672545229566857920677367156297659293713060254317739742862387850894277924985850613428719092045438291786121169720933478754974290423264678390844040975883785830513748420196434271996685663587999808783835299526029133007945081132115803399986856486186664952309008567718444793086916887663058581972619277928641488765278918576484372852291530407843171675374666462653277557021629990643672209444247526751123928035340012428301476740715192400313714589114816002523685469771035529694266580691965102882050138591090059551885918075231720466783703259592730371772293010125906086570911060632048018774999183153596247549851064255704094431012462746442736651878961219617818832342939733977223940622889241229248405417203091325432323374287939535577352862595949094444231417014627697130063259028518801318792184835745197609308989001407548479468874540712530086315193578593700791982203378327480715053489892127424609870353905708686464632592534900000765732177860479286452828341569018248956092082523011334448135945679600105026024428274841229325808668424636674446196028151809489310781653486134458569407251838627483539755459403796436808546070123626315358513290511528991605583720986889041216316971559616149269113016434281913340462186806232622163458385768278558635082967104410257284287509148534870412365756381907980998827880097320060102204586465468358835099978352275790812108094755530323092843114948447651025727315116529002682534258532371926149622566966400278485664489004351709570168231940785187106603201323521354879213049533022737493845899809682494753619384528361290770958145235006129731725432020085878121257266445951647172315224326774876630608349579230224446832510783502633188689856543125307608517416733145583179302501850560471510590500981594556575766595074256842913717142735444556103181455008491646160811001340815594223797910715522428480342330790462984268677401336024115611289453238857811048569492921916653740548953961383847282504805702275292011662489798076700679355339111380584106659891374349216341275931181251192600175046424330856417140586848108107730647729595842147746848537779032152134527140792072452625865945944811014014302227257823363467221510410682200430110453219395292831874352860381034868435550251798003175558566209115999012210071580233572606432758700333169016074215302565541761093256074807908771999134636116860983540139521852586202784051678166270911250185355567877192735136592034266689704424347368503213629040872970753679972617036921766684111112587435628485093410642043410764394329333090474169019391691445073603590178658094196372187596064073383796916035343783874600894982791500435087666997006847718596099966694762382716522395854855317806033392345928295207162121134519378510629449072300055427210970390282066120705647118531803033175453961536549338463762524136942728286943341849404213259450528534979042137527265398573075378952010696786850330746462695397235466062840218856987106325806138065045645605517935260365191361751970005434580993484097031959159157695228322834271244893083824561665293858640071376405026033071222622822526892424368026895894771311720826872768721723740552548927224097339717264614794112675863486870350116644346288699973638544115800278227833307391348053270187313099449847773050079090469179106868008550343656638716495524851127044626486930147608942198037326703523873471976784435367789809705965160824765842122247692568112884435799974669239401412218191447631512343552584276192005407680604975452397390815629700836860465383110529200974090151582415332392156679134205458820049641615198465472659705921227011298631712693611790516510824155647469314856654359095612759921500081402306740331114810319275356927328702143120374826179074335107451938933768842470953533039836246076662154324820814485726992500748427730804382298971161540333934800738527716421767722502709634870282131636726402670461704082220451222066848498410051159144024711601351363990916143499581861093217586201656401344826882412696364430021899581963576442437524344825745781929347224046881955517614082736465909671958790406582406510156382002114522262011288077592590883108163206402273991986376777577187437122341458984854084598638882065017944064021116946323187800999369032149148031738058743070017192880064227283092234271452166357133263315345147965341390323409869054508014565320670289982576733221637941820176829388764669663873052255016738769797062238467334523442686383529424386149430424416275915809338350090060105982962622965868143114171127606647975962627030552088559765609000936065174661001995153139480929675753600920258571248051639526458217701447695909717090485550391238611068447558667139002640546747390851605070887878570431803680950127267147572553148133150038105854564162611968152727043109522885851545035907299300884619357385308661134271367550677128878272461543077870794572630031879450675523195364803936540673339783812210371319274072838067301785622782732599981729478662441271290166847858439060942537560094633629198728982492976989543386997938764393652317559419139794866875529785279314834580478286263639401053386262936668847437112930134566630867230168342057182166328847397024176290528860668325146596243521699517723811878463070487157182080061505872707885539287707866207669349133829685299290464053806705713765429165346601057513604012136840820690370555114166440393640733812332805136983750389152164061839230538610232195326850506534165335506752662358389464298934157893880903766438594106656280331975214956937216732947787087343508855732583385225430276032831500613299186638549440287528568192440107600541989407063904767049155948924847081801791187792850712902342750053036021888566102037195939355286592505356151542589190437171110274570763608760349910555366919086677228421061064881252128662944183719119859942945393410218464184192783408457198087296388261439069969164431904307466889552926610282116863931426512495442625108301072198653828414466201476948338687670356108166307015436591792503137349658535029976116703974855397257887550223076625873714237085681491368749039322017794770029379246424521783740746946656274906062302023300671441812104765290386267641882356739995004409386043045789625475307927596018254266245193208329820356907467563136724354076496373587107455606926211034976947992628096971331143550273030385981826490375813406448299055089222325132403616426946319545080030614120268898223019234051536322215659898528565207197231800023342467905903566611462434754991133080324178820827017709288791279256560716062224467459977796418664290625233013182121052872845310877185169752594340350591746668374291206098924436294014534295785462367793893643918582741564980097686937347193156724242152708241537622833638563410091395690690507447752680824149633231011881426344203724328517740949046844203863311708148588962719531199664189072509679833534342321329853333539503985025556570421492113231677173229117471877173483328703087879506588498701766257427809604311469845740910730334961523311200996656250174138851564168282876988971452435705739845744840800946333141926926992610556834880757185318291403401256583312986538161970640519919854879305581385556500878754673153672332063590215364649568932232492042984613856959403021707983930263511623030009894311949068839481137005355088678582291628520864500562427030044865320760814304221660933889446333897934165117720853499813495202154235655717669451305799116581130269389920586647484422093877885078623518188986492230284262864109791525754551905876860625930611127269193861079549596064231432374560194076112499247301291361314111219852066000899922563886761648496472954793531849944439399865402253709489968163518039710542497334296984272818651015086633540165830810251533837077652385524394980796726554821751044960838224318239971424057135421942058067076354996464791796321862425681677332427712820407901224046183405670534570892335583002277646682384215406197269115365756661070425979958686075972735856234860431493471638156882661827294420949841873351776747737112966999821503452422242864720379678556103290592452823892636091433187860622336739479921391192878673250246810830090107319038450936952126317717611339626965265419668426411394878424443106672656325000443963410458678880988828966574490676652735827216074822830945315141637273672470970554946475728976023450188204326818716822420600693250995695565830364975829834352876317567149820984607964644541940655273057859868004814878198294568681038491940845344283656462493413981676073650524733826153701945604094177218663285402120302896301156657488828602341377246968590921626062546835899803139199917262716411730356844945605736365982820169227892667992127201379815582525598685667213770932492785186709041036993078114634248838373814367094785914816381193316199816015218723130541691352319175876540756587211398625573081912281596372698597700482557475876911225857841218291924545351341618878497343148985496878506209510120549469280154516697891459683333662624320966532380754508193041970177972601137734889369523028215147016142957022837397019700615138349623976838086767053196742556657687809098050279919281513472776659077358488761908243468248783468869667425917907502340312446129965180006855385030106190623513867055131661462224199564613160384090794797344938170853330831258471475085809251690997636519378325867646561981239397745019041273747083561062157615737136749427947221479733058862812368472226492870119159394531152353162545744036380303504622260113250680682964330918072714104804389895432644795528772346903254762139653974162735555333788484399785796721931333581393235123686573020204112698889190422208782391593229390792480466424559510013834070640834377512578429311910866160207855941596570072600824584928012466845729935256046870936413149407724163533618606571443617457368078658112026585730796597713652625062169509645561325119148079167318757302549519240119309632485659735506019885917267228095443042239814703987626717666838521483368787156240325669478840743014021782502246961726895182907654896924208743225170809716457192486933307321532564118403907780300167259784538056576767748437082636635213293749646659398428366748919373203298916157939647454713297472776165876834784334133182376139926652112306876417242706670354007249809485711596356455864574497255375690279922829319910548232454639128245574464152334124815166327329540642533897156703148805604088207514502874835520286739028641266794398122938161029074292993279066076591937947610935641231212747538140812851738569503378582799857915466670611188909916458439340502711786320727357598136808515407164500644781506792201287670199388694139233715831666954496872015557742130831188875266457290208272538063668134013033456424813542273890255647652192402437418112824284606183709617752445134198544325461741448099839464422642948152072268689867126003241929277050825565558123482499593323690600404121431773481858094859304854145120247723013245177098157735496834512698669726191675389951018900803550015648360791510419424257213836956434678777043441600541863686944981824094240359099596830770942374289493308532186804873617801520843829325915312399612376728224538058815058965967903898819802785672440656788473242154707677649653816005687200796812486334084929972649679013298490859729439328275958491527418366336282121497363966220160426361851901445001288099054200664347507106376068983867201849776150381898642168492379250466595456861023863814758709039767077960378389599800104835011867540505986113825614440366771269178060854750181540717154844610451615914844850721483722995848504584780369207766148348930944842534607751463997474358369938662001185737721837981881966776392599274803805647079895274763357643270943850846157611783371986218591014563217871290719354102572420759920857979560815989061374756830871612141297578526337964659946944482273346562462129208521461748613112092794373695071134948010852560690918673165501621368129061397132554043020356516705188012265630610869619492302335100018822152760202778306306520382033668726651704746793905831435647548066058432820716162541593643263799065485720371008582962395268055752859948418673999058967977163773059743930429071983328489957917669753418112371357303600207214887572595947502675324649849698303478925650974303999556846361304591030602170883994235171799311983209775518535252301302439744349487911856081255557124728282038955690794631290886039065516667156257857955567849825128739586674813285085968533178127290417653279013901091363603334756717732407931878017784542527698469190184846557156922147931926732113787580389472110710234493597789112985220043566543288841371707919368656054981240654469740377603885890390573456031618449699712951591705291948840278680445881232402750858533018724721496065540301193025544561428462238498751153329414166389199270270419986700320419374370874747263148004405415208842514188502638847863553305767832243526502261333606030013435841401146083397041049296015437542664283786929567926377347438696051274708257824977928521913085173965298368672041806924227945490629949462482741378181893910272653971532698788052302695915848774743566853508509663996325152724921864966911854503180370538408809313883306569235845466941834028682998174456828060896495004836897110321439898890829067503013944865579756101238199231661130944296708489757197151026950032087113344427261190528299779690896368142031806196708711926010746744122021662349101453229111113409065433616089206530566727047483104352685460380081335626142573743060728649555686101053295210164346054446539200615803799424245962557473602404598240703397484640130740262005942385958452211705162821398704408430637150054707856957633505257763035585423271847738704821633951384906953760588372341361746141497043862012924400831895975363067648648168099785730730461135487349595742073468776727294598957996704177340614936359153309890746709723199780918957998289046166895048819277235966921689738309254478114012802840199407178160198966099289672141438802253261317834798537855652900606794266245272732727647518765790584692719198448309721945618774904820885995784866595281855667544176415868395089258757758913861641975084222463067011732914898275724582717546560885306129575014642336534324013948882405960404326776986141721688962717239893586001310560624253319571689110176055172124626874742297554503654874748144538623145395237734961775056599521787509269181759620023973039316650136013582761997913330964862793428380358005968944129884655212521476064710553454538551405240207696689985451453529608993396535853946164823398222628189462960389005455050613818441250948100735492748915710478498826512539055877994197185071228438203132139665878466356302680685260662887893150604577074346821879404312776306943706659829720418303431720376975362146390927905808566288906694549497956055209301044985961559337863507125968049592161165403891822151925218503167864216303612642933112808952546780188330854242946073249378952895327296668794277914646288103825929922730905778489141934262261158397704254776426797030379332196170781723637843106586670686920462891721039303105622619637944694505327945498079400028792215174005541193743896624275314080830785042024714810611177577964610199746201540439034192922608267481908768167867324512900599400644544851653384198777641105932101245440197189270312194536832823901540827891592827414007925910317437030250166641565662903446210617302355302216241301585982184148158804416819794573585042365344251259733097493404527393718670869720754387538091541914956829596676241217863655227473237946758597358509561588049208435872128222163129498430518159278543742908621277396948004565916731719161997165111698032825262612802093318571701156679354413276864130706577128571217423842789952215945892035750927888288496276653714873261132986244864980768960184130070501765743641377630393233965333814834903508412554405983394633699080127474181893264439194813665751212086794669667712033852796881956041888812709076013746317590696528537210996701182567105981589061080402617502358164552206755374765071980220174736071457933850061067313360564306263915404004985512121574023811151880465674269178471084407464328746307223500754103762431411129660352770428651161177466104798813930452942292079924729337327856751567144814033950393695169637949300676553020969979073608556585490152186308304682723841285990852257577590188439764199727581248842534059478599801973133251416739948879838259708286917412592580451302893094684270566650357064727814782086729987692853353576126331133542858970835600027613719294057586122886068185048857415273724778605629778847999452043414787523380593609341821258242757937853928727049165985878512621100818887906380706208209369554767480283159643882470051202579557953431258029582874838021145669582997926040259359897420380243289295653228652519363706981399984224543445498965054337833229980582810630277665350905601793179683837437077918273059852663554934083373876548427183601360549230718652423491489238329434310249275050677740090482283881300298107941022399982005485881786950118365958657681188881207529448152992162621953167845224615725867629668952941636492317907922241577854319281278784751760492025936487881767246296405742906245503519702259062909418002609512253314048434421830480560827641788561360261331737071232122836742798269666322967491709156052173284168378056840070112158462679242277300307708454306796389717766028739750102985868636928787455025022223446720029710026590960169900162090276601267802862508016871665166340357111543573433363508368421394010834282956994493229418668838050231823147768428589094366909842347526148394036907384820588530283299668480237199743276522010776651643924968043459003773669451853643453394138893343348183658761262874965677507351722037191271671810990787918682863812143474583817442535860013756531338112682758635745746901077473410476494142318865413014819498656231166460877027618508730372533886973776827949000574226074622581458433016736803632435173363409664876400283529618414912789033151275549960232316941401296758793224932951969829047840362869065449044729520795787086352614938916193048758651877398871941231078491040114194785288488334944309781833178516243458740835596935474595018357980295064061045509610059045635426260268751900311638647031425846256796668079277304800818075129843794963577866476410585466667261370100487672951392130594165140889554044717475977054183715652514378709710529567128856968074403291232542488249122421722192066133505039989678977771865235048117499930435393484880621382022751147856922298705888278145581202379716217129933256229115429649172993948045702726521410204783807817525622905482881410098381050893778381657116164489573318028072584320900277167206633142358409529278156112841965341922787243746687905034229555157577673854924494429261594117821318071841521800809727473815031963003548986988644252319153072616115123338728766993390413379164403764229628330800454756248278373815166815040058149302403903299793373992356318038539693918126852260949901220736886766048955609144581717510769097337203244638824433792482727761492251140501865186561009303320305929969404981853009560903287219714009181788722118315587949618863717967164478223694555427766136729992975889489369999759161558360137224960119797416729789486454006655913927182983523840037213736026965407340115505149786986543842933517128794846833099779163927240652703434607704802039384833878207896038176832467770297016380433059195026305004888822141200846146115587743364821379631097471622408867597574503642344995103160795946066786294972666029907007352526551376855475479755328807213528506290706857933692033103811608554831498554289175667222651377538640028676081062716662999214244756207970906043023118226475526273852351212185375645792650870648072362112266247857572175812750030019525088796025022204302593726905791335693634598083759833224948638222637649046962615368973645158585889483314742706474970175693941090546104371733316247564107337442246374356894089618228653779449212026918740176827886034550942051095851715785397192805734763828269700308400814787083931906827923994706812710785340769179964653580368161053249628089863146009728855504569001029074092935664963447068992979607019369674595664168098825143138357881900999585559544935270952455397098420526898195866833433227284893740683633400074416588228312354316243269940244509145957966113879303855492467367866946363697929166637139787513837836823699552683740885185933480221825751783471630457285580463370731749436819201467500133718807754687811512966164538429225201504221300090686940592734308236125406164168938467009858792756064073395537145793397311050631176998081132445968012021159516890319356762372142202012600677485278249133307700021643965965970654171521077574657778656495298673364682021531235399898383909658770518370566878212360776406008727085100471071219313661650346241278604582345629006468761371640127699042096618368314805170292233594348105172396704438233002263881175501522251737529791675208596011900307290822745456297780503051403565473246237977815757606757858851886029361234007811894523687618481938833299500873125435586346893394683976153840117475057214918728400387360510730472481449740055792241513379769761796796178706506458840321554164409395186000911446687380967633538880944461549884470838095218001939855670074969119995510709181743887153010239361491308850180174791314713394479148163089704015983124818616257170619431516506132534596173292041540704957101643647343405759298132073721702889497161002301501020416750253638846388458989897451852690157472094423481345633596964947969875864378925492484115397431348691582621326826716326307922927890796305187648634592244814896208353360640490221678025667071978383934811515357885003379621388771516625053847360486965495007884972616350649480008854041047722169178033601085505873386989569009023079990551725992515769522318483112396212864735846613306865055928502140156581764407138810615015429720777942534970001531601994460853669087240685995006934367582111770877293280164857599926462207170828818622334564656510769153829743423825575658102426830172505098373303962008497424804293535509008401256103299566319885985566741401738373836990291315862605051101153886366306215027130719610886733301982552599425707304840670542670919447850098756603410458569140757432733107891283124838656065879137371872863135398695946653042026224591832907411544147856493277832541038621173420287391073536316575044924806356722522363276824672284702076818955324299713303507625659047345524653647501418242176999846271872295349669877593286065149635711098404807509850788138060785590657336020726448167409520406669011866801247291772756107868598922101356067230665277057564268737704871124159772028128151619482755628935981631219708348976101510787580970078090898677082673093904591425016375727409817886116687621082298633903584590221414492439571796372231549648446864029038912886391953342367251986482804921810421890327597209616865202463227356340564320891205606965915781012103231910827916251592339436999918857251544368740993564558387291701228723565893766508965792956798719155626631979577262888402735060178360219244709360340587337417085604992293507777031247372168110741665467560020117141216993927642346671099366360310524859499282768215454181723413670400745910728091948619626651460178030951741261373250938715128762029787920522513533722463483346386744245491425515445330784573696452086844919112631303225848607479069549344119416748001313162385806735877875027426027797258721692968946923200857424072783674121975870536163462068135015212313896485934790901565467214037722069652683758894181400431093116353038191931049178076654008356121931788282250638227333488271337492984286843749456828312907148659422605643717097371904160120593564654465136116875398178042357383438803448975102371780138482916945769861072258195317678173495209436843680824112288375308864075240512055039607290528142695573379812930269972448032816670309194514942764357866590870310723744140189964612535347751088815431134858210530870305904032118789725339735705562897599695041679169656712951952854901912313134180839141904999112143528996117522324911813060539622854316492141237236328214316781614260082094174453007480051772715080874348170925208581979682006931810534966648071396018224308812853028983647869560972924991121673539250313511485085246475182143168879186122993350319728186195237212693323882887469999086094219037486018768668950499063234635829789789250093691052169926470722137971224482892558294872167129027457121582077450530897203374614920590711753279643362983738558184541245873986280780445697361681436898789435302922014187559131754107676650169458779148900109690110053308952199204915459789835098148695999059515259018644126720918126634227658437268296306014021237015351725921193078100871704569786256912275420156653730087317955191178667428244871734157892721194438353930253508037157298940050586517719729837344002235143868108406056108562047524817846308649609093008354288011362067108300482707168006892189708454957616240849604827553426734643763238421516376165748998454725948188014924875002273317019015182341639803413692686217858032889659200937784151745085856798221619043296695930513435633980463196448554868191400290218674047954646154905049763866661859902077564773185045234749594717280581366856967534773479452521262602558826302855307299717651658056675111012861254365198394482267276555619364136532131156545798308370427338671551985291792850239773682431198291932358545477860124367525791444461665374760535543238666455579893846166212512751385185840532185046842576809986444550958525711611346268078967685194948999184147439124479345228901795092511416067100460015445580776745434104898512761213484414770890325416876142518178147682022314932852482967808390449545782205802372929621064305360313773748406884733297558446447416576132750086910624838725289770118507633939800889314331964727626360276312476932196310563942729570120523116019038253735813177603455345343974003289105060572636075054442971823052718372217876614583449620000904824209172146295568617317150665895281065515314500724299276101309619481614370165312816359036674300279121129180640320019722852705529274799496677440193904046635515715288052437629814362516291061298091465155938975405288557013609534922203216325069333543580624193973222037052129969515825548604538803010644686210241589278203188249846328416131129591664743124383486941690998271121858217489727325384948066250806706070290455575882438101047842136608022340316304879427662682486258066933983096614653564174887982280372072436002620082658929665624770762943275530783548852817582511031699955540939191576303625883873640160745521599984407735635510145886094574827640972588064419652961425831880384540397714534787625351791798390247926543244402088871197546980945294665891107048784466146556651649188500398139747995953878110187331525822839268032760764337450181764483394329695173289696831279959135183697276049447968813470841169879332166955700773515818205889597000494543046251142895205205385535664608934816329204335830483627010286489319712728732677723356516238578485319007355464655987689257042437166828401823794276630441893368956381585596936916333199812086113532712363865623910383605305021188628902009720169969721882418966146577959002436514696424734753067775054785389374778560504783219879899766396420730338111350821482882823936600040198054360134821588192510117744576858126634850225270910582835115969785065820156265047002245309081403728520917922473121820796033343805706179523380239917306390297114226367513482678683501359158318077337424922872862963049985865269481860622161146890437219408021185787433303895007737811604259593217075745266459891938806658878032642186899631573668665866131996619645676744731402571994378096759124484157826301855450349392445615715216537083399399165796803114280267631551898537299539567879851319451979772418784721014926764167364905342570298723683861610626831493748039219119270576650919862610494764728558314518280341367883527250392348615945447153690109255960007948554065393411322399320236510220043861763276849582243827771686646125275014858338795045094832264057042964296675826546016535744105940991428026743930166273906528575443747558778971800620586505900363597245425935955317707839349392234573139379197742108508818082394174611614186021057278541619504862419062448583670279691092907532947984927615176825153097320101409021244355747022312279907411170512784694896273677025919927281291228590076379394817512853930359499897178721394143853070800194066681128503328905131588694926022395647296004121915054404613306337414413787272801049321243257259221216019500594404865910682178770013554178254402425892067184675824594846478944561422035244099615638773444839659429031518836213207800043246554841427157838798279379031559974817091205399486850455772114765072660608169887411063667123039045868080204562711130334357681280275096706051027577689178565517951050591828673094377914314702727056614543310147238623777287500352699960058889375835823087573206515629223171623726730085618373717877933982972856462177012820144743801352941013155361932241578093656142335979918677802384052136567302920303836248084444782177075271546553681140586984290978308650884094316758102452917522828118153996133025597795658623568294400571944735110468907183685624092397031705666540748540078516247677195884239335674560037216783433239815476092884725088151427485845985419209429048362832901873129904418394584584941324474820664825144099499580497527991945317044202846113790104177149806101383906060388450754907215930566201124046275994119313529135122515046886100334985223223520923545714474390835525374119557510621345580368282559826060824501990866253169878641692260715864097628436465174413139526264064262156957157530802555121525098689095484099974754950884338840750848349258818503953964838321674600087385172816683580798127107735913834669862455477464198241825066754331492761602941841074859568057418559795621145158033954541014968373110944501150009658678471926347713155698083982639826147367103742694729519601418786002783126132147042421237548585721299246427689198985772437286818393364864203979629052149677694801741854411738878140495405576435140978708346172788661299457870323326248924725690696104667510989815783654800834843701989463415440774136853812085640880201553412913413247683463603349944930865469633211842218661394697950975830790919353742194576325423756106127784849987495623310897365252105220326135168100986007757304858392537050356090703882699250502713233507686272205120441295939065037447729743504689588910938588225761131588880521025064260540563083419521469074161444605981106130821511172403128934444373629729315065859288951022124717022601894817186111033014770781365574691133549378785310831885782229758328258543133273034705324575600232759123102156858228786160832562000043795696478162909719456683439008495692331973827275506402773212413199506183996402327270149034932284938045869744527002114620225314581055731475541950616653556497076371471870484066695986637252661126078657656200470521119210661292167345538018564683147124213533543477547781983676095163388559280133722881344019554611946384309516983325882544265353275887468411837917349349408298061182392498650986243246022809032095277444542280820206398102611897648634125271404942890303998925475317577049331639736227351333120689426758313505010220160471006348184314340134815856933523888978634683550535005822067316881989940393767007717257055016057046567187246065277062052527342746302326408604736989575820561474217316638027495859762606955898299843922225797108175656686920309912499485428636980985446758846922092810670306625981937789523894727809728932718918865334923691591067826036518662905080956899412485969339028555783263402428825443150632871777018057756088819781116705012130043575291269500307590577358280754635099292321569414666983157309920644605011199619352037647802486714130309668715093246024791090262034672289263603945649312374356671621397342427419674262464639613294813409087076305087698635619135819109834062084090430088100907498533555798278586292230069221708758415916855623072968994107821131523063757597934131847511171193314735182565697528734376964641612064198735837339154587472487285474723472717904433815732123760604746190981915974911362519041150046783179204170370966785277620540697862757799485222428953872576782943577818047289209043919701964272681435369375391342749033383089419903744074003660808469319000405845323031070965283658962775793282376979049941568844090638599697458645621744564439392555511894482845994157807480494514163086277301531224649103671709869958850567869238914460540880526808395886732020372631308733245853832302003946970647761017438128042647775485263784427483854790706166940571055057750840983448972784317981118143924824011004532056169203526253083286069738135487676205152039651639662971302719330086894734579554133597032817298076683651322341394750897233908961647102617211744572898043372079870868550260624079047138176825079624643510117060599378971445818583946248876421510052396514727974856693622352825205942209309044607584541436705194263281621132399421190946543175005802579382856473154840750066314773277879292076742817291606653621990196717402558834766959276752418090782751225081804063814159143828649442632983328519602855999617948901411031599646201058988875180755612467601835243996059354393143782458651251568252666844774839451953868496644044926678694615954965923084618809200029945937373935744614789885436583491879649092039952450840219171501348117819034769002347988624988469264539304359677086154257148250619773384289979318381934423478618637554187862759126085687923022817570625293694824367645989661995243168847933161171315942157109051394538152495746764247321972109130054246369292467924097547950567679930211625978448904907352261019031342877944549403796436288602583234225629787561057437600709512412281774506300497754150851112362636544066362433102182103366879337153366142009983748252352658709282153729726817437519432814752413286940109141243271855568709451007098947594893737579247334477157349266343337430484357936250625271517202403006038898326396718546014294609444506823633719482301605899051079896640666128917708534274946433062400632717768176640991765704607582807910761295802197409605007678715550993722228282172816486764601771676196617713527834092939054421570237862460952651717724093465395805997322141644520582787476551272550145711581450784112698555204640939269725558963373706869023457724627346271646145306429447652869146785213380022406674431533996480256007236046088633253527892733554807368712775665359248117339889501478931521163456820833225406304400807535228129832528089019450733612182088989410062870061649781952408503487951700903187010048537695902191151031924149654032887469606967586823602203798557445839206609426770435310320163162843318741537747496981649292518179035987617496576073420181367711551171480931806472272446601407587712694024052308462952651934066402716064982440670497447640848781342530454830534086998171840141011485820116302244165031101265312747109199800696801821277918919262841217209461080871804829645775087506886016152543384214132320267352929489671576402758152826363078650546578323866304120940824059547282950447460383013218880802842907216492760772977641778090185138883790951944276526336803023573987268914692925479625970736135768166801308671172088727090524267244368955819715384716640378315728869507269639275840627234422653586170392408430534976168581595499034276646937595794203017931019408562399067921598260435407431086699288620746627619672866831839337178045939771942206124854089405395831914421261817587119301891079522413031263181274305648339761944806528016289208587341293292492353231392876036651996649670860476639744478346093688446418703785437887990968760265088583174492957794372238649835039606987343298575491666500737602815335697178516072239315478220486458603798573524445358995612755670882239939840166827119511025238611328101263799475923111138982989635339942386760285068103313557801589379989579739468912413768085740997053701759598978020637496174950094803218250663389611357331453888315042291963988797839845068232652041926639715003123430837012126501290489664941328781745366984047010737530738766488683436808422405867793770854827600624863839201428111088359510162843492779879245520515324463922865026090018771146249754381141857105412376800110037995594013100377965701578343554087526679692892582899995041439992574234000925144564157734423289864580763090422267441078558783466650322744996589558352712899416000883055938811726927125699964764221419298540723548288101852954078963398666271692061771426997501852853880405925977551502908030117164250417085301126542209270698050368219753288086157280603764781577031972133852653849954940294536206170488084107313219308674711103158270073943001209933394039879329346956371061486918268372413122399749921711160795587414800173912527136390866901237759460236591057217826889419844727786724388578930278615903722980116852407192049535248684017034000929789257094738724758201789606778439099928671239350552031271896972033071493146809086341721404976513316975323878155858640364541484761166565218868507430411380992274392475813390976464619597783270285506640976856947195496394121300809680344129511750140974123067827306834757387863170930475312546350973680531433992277788026114948829464348810493135958228383175409246356898203364631626342114196064403062087132095441507770409492241761952318542885303090989888250027096227234495268531364926062866330944415790114873026618705918423466614776497225921907265116923779938155823785517201243353236771266369861172669077046864483595506756706220598803522791334858223543009505924356338580225759342874827072182689019119244455742935393989486494547302450186811343654715347609515603312678545784593505946391702025515965579588244407268670243358091539814503813371320610855495045677184001149019779983049151136068311253715116002741699490720391939284239547693111287972311682094405061303408670756741890143700605275423770930464830345387643155478645231208785979347249196415521155248168450185906754846956906358803464328093363105167765059968299782195930370860797571251215999755088871802025760187889054699899945632285681960101893734362396745381653024438582161516323874520986799541649856385515689599198134404777371188138515429786694010779816817291269998404600737170028367497877135754780300524213660774108511693223242835918547550879403519671984295898017575877789439420015284995450201621165678067807281291173949736395256367311365193442424199608338527034785205195924106961658396160387650189373277206837693943008097655535781509856055290112229317457709207306339945680063198693941110065697241330948478618547469298415655560047277233115843851709130992567986146202895117505712643840485994190745075060689129887584031263615160264066576305404360403232367807479899307669859024933012411973233424786005168769921545888039670941038504114306864578726709058027257369707577907736062767035629617588124533062533144884570241473656591934504790743543011061496285936238363062604393406952487104029960865521700655287536124228658102208248618183280069295687997364993994175014070721921380569623040977663614003100710786477481981798020421853551417552777607464396355399193726962600539187972636613825508379838710776939518055112138143845047291014697901941627595342090280373924846566718889361201237452234954709343594160267230550772802461305881509605123684620226055148034883364449972924264599567900674884223318953740362112154622100412985958831627939434710214433501476556632777271444763810008002367792883322178120734481963699774158671365708484025333425990514924024479657112387617284364040600469053818467149561321490588216013164296869056168918268411138579916304479934526415672675995417373539763169770199328431452656135764947785048277894000964690250758391570399830306196691049505537498480533471610280400721253641148229032526965670422369390750226270141404154503851305789402422323956828394991516795195452414538773483230207836069003304836140036838122474782895004773553513448261026608912344350396233537001587659301908359250400379462389706928840014437231730272560390396393207220628145235964821224727631564179668702822029780572616219314372949689663558949643410268519144149821146530986250032247889475556715290718352275019869120378341799551477405800924214086021904958479162255141667367418046721797400290156632599517958040356024794674573169071129510300040060378409569676592136665948209589442080253356557216093109484951308338025327182387865783365734789231663744644408061425925987730311531234943823784656887746675233659771946089641280183936673551753610653275732783795066989298578354866328209973305596358254557572520344932786633980774505016804464089039124587791512679791408903256277235653146514172090396334943267855305261880418098305671432470291972187746271538765318009858135361395005014061699208077868280732773291368561631398563846487024066843663530256846205653038744106412813108165934867661809558635004365801598438095307771722627168053957999960784473190300970857166653641463883416956255489603713151430173579701767058493462252360158006973448170691433004911445400884172938075409035264291637111573715849105494583804401342646651171917356232780487518298935371687916218382411147245710303790149346857194930592171938856065318605778673599556460197525120289475237750885315583208386612938444968878949268637877014747547093855956671929295174898492617280769666604570126378101206157302861780679030650785499469676468636544929948375721030361535270146932493176373905523939038621311278015341553177241073394940451658119315056910561793114844846608534486936876544156877884967056028906941173316090594472088176922060520156199959606023516161763666706440587585445616002238157411986751761797537300575167104960313234880449323868510002026788906247835074611537576144247228106941789997527332865086092345917172406981369754287924196932156266096773991217638645998087238700086471391529908725096771375333453543203499279730435996671027369456212041179110334008591720890036256535353825804879809025791396763743519313819444014586564914682042846451276754643133513437074724403575412028048517168038235818795687469756762236862432146049476463219707518372866102728496910000910654406381910285656655145688734662808775760046082433753963885001473751925584688580271223316774644337187818851102489639983968109160469627580720463447962867484470262838482213013706012945118740148028109180738630850154315082433081636513770775500514969304157167785742617327182451661237422131940795143603592771288391884813068798144750056344237292322689950070457864467526285559912539723971059819922155538361326698937513625571923487071176269115143007002642131819788662182182441329680850118319983319321295224345862543817740473411666643647373059384723332387925167737879711858764717529773290242529816280090572280704176253442899511014925496430349967345116933753952081878749807578263751938756755994750000971061176810049760142505540546562515330648285474767244351777512020392762282608889719205754021843385335281404752350591484905839443138929415098392614512888398290360194361216464744416481633719228651636085438607540361518412211272998620268265933764179878435317000634518858828533297320629074041094517207223117084869074527969947538299232623995706596776123697443176256203991616137292220019981015886392018249622740888208106260044041595144899802773683781887683776753868412817907364855115768013627958239510801376503296503553417913165031040552388128840274697301480966120022678890680053408354008552887940979519940316092259276309591039424047435523775456534810540669236394838454710119464717929818814101939578338040906799769111075753818422364042932934163139493113549880905041735041817571603494210101576067402279915358012523849180361203269593556747591736605334290749118462180282782650843255054993188371666637703712027012948247094878501904718468094713462035442371922833501764670049612749286436926557516920075605826749288511900048548576378912992613360516719723019580275328515375722590617133819552634458162561624287999698703135241069474377605842208469318983378296155491205804383894415543981777485929908718644981710624025767395705963899214706183731187596661565823245648656659116143543460056537655571718900099524155909589143930880916097453967907049258076099139518664110689936949498675862884202428121046493663447735187307770852969092880297699895314834767516631148636725032180307636437370184425246794008453079876105712364646140700797784671509806238731267622533622383254291061258783105907834395094315842307161258502740050889843339840401809395897131905293245997078557049378224431902240905468730511522622335820051616168872435201131695455029210153000582907880592050106281771734432175751550553421878392502481028551029779321948405972919140853681658512536504422249380389950660429717783292709573090488688396144168962446729782197728263822662964436937622441363293479281301369033292309592087090077386304640427437359510546856658780114532228263805796850969166948338860484975685439701293693272413664297747184933913533156874058644149040731281264611147934007437558507048541633527838161717008863292577678916703638214473834684398062017665555302612941494113869621544605310137353369245476829886678884340521471414134131399734727402241601491122899503772941026032540266792893105320411521842740488869675914321724815449364264510363636504759520333574047059422583155195998669969590404887113283031554746588465142698029609860620388768356378799346228384782524362574408201292211718569549472632066445640527798033615834387713127716290294753200602020228425347368213969487043198621911844833078433217971308103169665534937794127299680410153415512356401400126305902152044153813704569560127921641636353114295506456694685481414659414249369191649751361555648312955934195964905460811925563972745986122600336862605396746837780241543578799598479263994703214693987214909714191379644277782844552920040994776069764697646020596307512790472845612962831497176737386465412019205603240628475041454547517078876486538564202783485222253399977898352190761063081781773479464604242434771785397998653167996180011368331287926110931178374959555846315608681457754178345337272942380091946456331954990040858369021505647962261378763166587638263239485318201669325594712959517030623636196386294337471373787449470168041810521696752231766099561640555057243209794146587823517376753462466149825602795914957910132044597389586854114116314996804142502853102131792312708008497900829060125703402635433913621053282553563142228286425884255257777021579723140375186715887476082498338177026892921006047522199197667262861225864448268825250914822037370017797226491528399160133533764254872564051256601072816898811397847863615161271572938971530025174093152030614027772678473519201067562340209270692753346221574015717836413388859611888508017021467436687907578808826936779374019641913704765590166054483357157262549400033215628347271484735248471669529526170520276120445318173029827148295678551415378142050516542170982824004992834243254022574313460538140307600001761841954845995325640781891525009592236549786182997627785289691260242617483639379293439918766924063845578774429356106224470954544498080174443470857754435443246267367010700849449820978480893618074633365009740737945377065736153556969225321183794757815857500090039465275681578837460149500099434505215840369759494031456687309682126594073493119872932124574518858145936906669686504943264484416433376249757076151145165346469683124921321520960617728128897483596279504109814724065867007900275159012308081226408742365684377730352982794944771464052682748787133395123325983453869153324809472367084841023089042308955149426067112877853361740342438732129503647197627067351137855173644063117680002300815055484114962385016861021814717504474268389010222713776094802551248372150204559468862117691001756770537326374940494939480824015464371977909296700328273209728707107159079885507584198409955021712646975500567623253685618223161486637974735403584455537833541544588573923066866000282687979483035641297185819420190516645043165457708017765596205130352307024273603955542059314395027209127401540196243471368077521357146259695509682439680161844870811890300809341391353747857279767283968360085530000844014052196165603908923166095905749302089887231894857389489593786729171126583267759549244398525932825175430810148937428907332386282796208142091539877414233095427222750312758119796855408392598352168404842309590204765029107438099343132406682501330219697136227204016492231759600327883617985253039583833996466394594863891733377465165061615240387575417665322204867280625397650598058702895557684359252890902144452953260723755485191243065009766636868682225904284393302049234697560334100180538700633487046484197260038565278382490110357309119087761565515997229429494111720579327052134670914565676229509956868025577763721145250758742500457416386501526502506529779621127446374933021163348219385032338882979673427006075722758374973999109488816252474341058918735667550092646514203346597101860683607246948365426035701234428167825113678370982237745204831887540639817556089132758940312371142255604276631408476123373187403706248318088117103328642827983863516225873997659912107245728961739229908320099396954738149744810785820536557198487207484369736424126168231438361419831127795065405563796378780449859327218482394145408765710095538174046532279793573920780178956017900378530077875192306575794845761694290536622106676935711448297439356361964898737664467997444006552965402366951990049713434875796371076635918210251257945168422080080427795958634871003577872183943845610187037517313718401236403578418249696877708799567303627718089995963301268073389720618633822960865887245056068583066999973246800139344506367026148227492674277597292588377170588845915636487181085305771214964934545039071717198362064884390291990088289412201197382947535971013022194803105933805533724556586893786389517588563577096770009017797886705115374543313975705417980509124339988144511328569231748082992729676450464912039309279415886219866555204307840637742230056604773387694535718121287289989492373133572829691834890868640515327105699574973760738178878761920929230682759544647517958044037030647639797726229522903365060473303849683965756871268885332472571824688801935336836227866457465581328453448687699731737908622001055750228234738765934819096188583395575787205103282231697882938803402330945379370004830827982452791311673117919280648637922002842609879508346587092495146396806872809688109167343873946728729545880696162062457086977305520794259858765824030453440406829323126924338032481382178534805483120540690696338262732820603352549139064483829254572810727585717586065102227931303007187222516341951213161251828808783412543810612156811961050304567726945910210342244559886720302746930495854680410864335536185963056616912985629431859317255362304590028293858593326829072634554826809078081970656864924996723362407597104521620183860898172883418727332396884035534158862133027359755723100513256515577443254789881380695764410765304614172894129704820126303557590560561706769185632513238410196991566712710143023090718084444633495954685993867797653316328155417533103494037748109138521242137875029230222652080754609165303537511849528168065909487260519399154698585423397604786994022618313346929126009325443331143328916031426141331910749220179459847386551454078734775877995562825197830026319975367094900533022367027446523059704242199191765462996307432250837413923601369103350223121410723036134781192722684009964053592659814614298881979977697565856725010428748116883624519383123776624260439757022549903646895274333182123416742117656826696194792892991930677139042230420084169406204167513860681945757111880660906538569317485217335405739662479794389898543374666587834472964994379318451178635060588284026991184246451697329193893630045577525180242973706365902412452185274713234433941551840284571468351243294045335672131220239403258034119716804858906004216895544545838382173821808756504329011198479116591981178476087285900536655106139376230587699410035923872059141470698349577771900580056751818272765058192365995579705168715107992732606318264908523621384271221690808175710561670992375887472708605370579645549130666116531732187143132426214554646459143067391874822230975533620708203501353955747975374914783263641593026075504866784885801495054001531908715303203118521615597167631941445104279192248975358984466745020683699846350588658668606221934986828465827375652850119663427681188783933187099629611147426161384084989522976958141493610685109672637048773121936646772816296280321038823392496606758174037489886020606864454508001572680292261802998488953073580881904211373848494026510911027176414996353720085572622680408691389976186306844997075403489418292213180337975530258057369835522870327476801980332776029061312119530166598753555603691757223622667607519153163745353435272818977489859769471499224445828771000740322604368865540136268922009768447905015541814388673857176099444753510017442605061917357816795097782847792411988700772608474457855242007050553809177308475153986420870534480763917711686574407233848082967889420308086030768753889646417546625838539442302082397905893148672218687354327774605272581908306941015847207399539994229293717978104594450169854673091176044449102588974127682344876473519363600981071420214487563344122480219834004262206441767500886266841984114542090360430060232182194496577951720530775944803444022532622349889982544138870037448767496962278069799693382006015437366618769779630119659004598348487246891604271986348522038776680151785284265682176583387311857433581858921161508998595561654147516021869168738161685257226405109045943163346417921363161090828510037548952066119776691383710316039388749172086151986231407864912545559549068104820560778960719326832182183200352474478645065033675951798807470879674923053908470635537262676818737539205624439209232690829209215871797143576727818625293033253634054854928364696403765015446796681253929658259550439671130374744794870860669500752272949471204377153043759534781297032987733823434931211817148327346106570263448447331557413858826338177628102996717990909972258150420024752378376738824468529289579577007638022513900814169497427926611481143198344816013981393990655319538300695038146538082154232040393357515012240183618730652535517484695247406482205794825749206157016355948519875773969535547475881398428786455414736391867525764305174268030712113459480979498534620822106817618995751427480298510495516613982362936264836087315766805007005382870897341572760635890141623275011390174872067612441026278222690686746039749357233273614640423584089259404963767842301477133136292908577416343864404082487084698833040550113565389956879573928428348161709763467375030728413490126508936260608503207036601573790473341339668643691927929918325269126901650556439928679308518080278530951021378198827973778816590754863874436799117035536867028382704739513502222115900693328340319825488915909171481426225691326372443359687309075738917268125195274620894709813179373640112445678948667002987334178949571361040779285520485631452112730570752267901660336322521133074142143750770343081311048698659192423581671527807197135668546843752458844276325242855912845129757629955318996671505426536261288998962106892966118187948482441805385494763016816079709154865609054638542952509370408078951101465631193348793023896261481860134798543411613399767900675924696169091516745611204772707025992030083477646296632499577032730162223658974827076698493155087638239239446715429365715146473935129160913119046491394749516992843245893065690248871082926193274247789271871275071375853519965908834987386281897409299555681279096044628868372858881976272333427004119500527868848673220356426453467954644765429410316547233566094856918549914071377951413391006933223950084773974448880883059960731734806084527507234940841329215373444680333729362958736752682587889954984008937246093000549949521771988045701018360611394248276478455054565006886630680293707343379277273033838948303811338844596097934830428462749756143133622859933360898679098360249038069186172031654456383263246669829889357994325979469883172890502174306787516606087121527981100167241705454299260640739478622228476931517758089310281524688221788514461210383600094598311810289232913497162235625754528539734030368129421616788243739701731068696467513388709223092269221254554151792068084241867645125772021931514450865366028455963640969530436523327929135843868813280459358278446736491139326468354900716545781393421814696135094416188847954821502490623509856495338401712651577004922578493333259982233964461006860538190338797159202940545166123420749301144060648676435138221955355624438974555583839494116237794362767974544585653879467534464725756567350834945295679812247531986983321433047868456501413417654504770728966866723993686227123213038918400031894409005549105518162308694970457750521108917263077360859857723662794856465264347095505241894343254713608615122869471842882254454542943853714136228798494643615903537114354450692300712498884622805838951910711371076476465393591520313636403967670864149434211949051901466061976335725485548905316970119425272708275338224945695181018575242932201440135722226997050808267926105483068966041813474451313243113379973412948577382534868025401723189581769682525726805808140011315153312684145652311594290632057822758216304606349389310340259085977079029385656038489381440690645920065092172714872536340385420186433113070701335580478977223313998709603587123124282825443465964837407438850095858825296703566213454096919761319823599628259057700209204599276091102340670028636436484238689040267706814337729933928088617596624845748031336107514838278032546754817532799590922519025764814836568792639464611645588547010067015312416492316906138996885092382567046961417483288961007797176106957972394329310725428481121243868447452886924700081282171206845000917942962316951573602535801635604798809980118351964293082676064062943615983907809499355996499240086177376463416785409455544651840585157074851938014279237521601948827669668247220275214026320959338311056326634185565434268337159307669334968003251340326484759459657583394374079554347589196032913061583248268565353444213173928898103790797621363687587883770052319673879765590933122000850856251151166966734629503354135210724270865627409691287766974581851036014846218679810665286257125695047613326538605804989874039379489035272762453082907465001724655096911961323997096454243101361598355850769516671808080472673875132534964924716756151440318531667825611111901772396652279442961091738439649131255806487468396083596015965953283958040517515780331378661700001329665442535379403470260515762383882460924240237781565594179650286541222022746141999140548377086226857453290998004062362494450904706909370131732745469324079964024730526441968281235312259478352162007766525567759349457425654638161644343546824163583450111144419928274179513345865202401589939699437471103829274682371607373147217740893512305137987223017261455878707596023763736071177963550492573710056648939253128920754867263741257267269214270657621573268765156145045787017364804940316030508602258174518507630893095281542106515368109183418503315020945345378340721515598856954559400914676211822957619886936560325966988897998779583253743161112626652271026132326596463517479881936857631640404883504223737033672582958512155562522332659241857533217604424930937684404595352770476460945315748591035882127357743945872709987883095617569415976786191994250955445362171146820744826597849972923819806568834514331882952140449142104711237992447978081965338732376063291379514015832375730890048204652544421142613887425445149938889048170996393213473484774375921690693405415712840020349692972080344258933866127544864124698039173830496316531774068557838931308259904446608923729389634751084854687136156099722626946330956500624327589071275735356505401958446292612468319978020894879448998597543347222983030993636681743058750532793201987749335163015013598784174167056369878773281824999480514343844910943726250754641409884111023824850922768651071839333940488701922702895592466948549526579137012938928004335140222653471501350457354290334159261287549246864857562477645975439120997508064952780136024016855316084816508600975732551230156569268010529877148070858737320590904470967999036747438429636795960502261759237848117989991598030340884051874357137777739270482064722044163819437865185825488376426041666092171604782222281933742286666567350845964080218993773428109237428903805898121807802526854605796581447125007667723958199946665879729535205064264422176689453071557418407748806530941630719903752962566402313510653963517273894694201401787651053317946624326154556528679865046124456975647826846734767902968617484468601523822216227439402464542886810861291905303925953654291593834733844964357497598130698593487737834987629971456635686757815161539888009736841275923757072426901799639392071235238185041126290342302911581719653758682490058225505949805752030187265396826328594402806281474597299832952014653909974098957903701814842824835532509818002045161426344582293748368904889680769192913067928779194262898370598468010718933723759311462671594536952932775644315316586003961267776193027371700496320211815546870199878791281744587834954414022590922265035815960286507719442170741812505696918110542068773313601093414997485616767736459275608983404588664781180762242246849833894740645617165463934828566441523441826778682429907404067384705360207950071765855562675737764675920599565368318452251203861895834541066714233757407426101062067152505470852146373434701476703492029681980372017726844286428017090634962287644057168384868885961511680592079611865750821391062701972167972214901768615210325551430055499540776288831027321404050012170111227230088712021753841892784648885358118661374842331259509960337606811764764515147377088004539581897421254055484440667100718280673157180001713064011466381406064131141819585550192609029313008983085463854334637985448149641799988820320258852906878861694280861027338106752856613429699716239959066973128216289827832128903869491538917120881228012851218195071659487476207762233573897851446656938833734643153513127913847132812637620580010702211614044343091229838407321342623998479537116811099091836314937938458021317697356218265452093529994927621438564277625350858713695557795452618344611787411267789628389492711550693967687200104518322280531143017303402242881730151948284561763276178901114610206012827501435191543537098525595411263025991206386587899784099658540772039882391707064321229948771848061366005829942112634503651801876893048718030213799752510663839316732617870554768496193825579550172580222589183826800873428025823489822088536481431558707198359170951316765426993473709251437090787756656559180330260578357577547240243625391912896721877814984587641911140468491141808024777208486205758800747226759472471619122652554718676149753744461948496716730720266270283738881476163077359682739193272844855172472808484204707375483768277570057141619691313997398346974689488825649992906367112814076086854175217840256117614713340851174081538942459580727855098809704708110850864423534721645140469072828202947391802386556724253056601029096797589174703353405910492143226161609442886582265178578099038347703221055513045662312833489880570202723459563291703059625799494782328360038870941407289472447230076951130986140974361141231242467508098009398283619191646762095688534430870409143978255365918826044740266882933980276470985061306483650516194298041838412076314235353391782216578662086445598350010642124365982130801900417172861779762105379867343639754615147553423593683854797320275236664723498956850510211048154138142158193270194446193749579256769667200938062429636696671513668307897181132251708729234263137142461836016127903035292888593737840481265983434456487963455808313821365001973537349398442746048243507509185649004365410742573231302253888449786032147218569042618145721870250935760424979545108801851115817362016429310184018303417882033299952851378838952269763449075979531374581417670199441069448530448481643626301189421652116453410714131986654916670801725188115603572124594778175532314399898693128140373266047065059954612691386653089161417181969773615250689914831939273397391321347075102295786679489697163978591467563682357414584678592635414183733216565790826928671976646041447056047396517041390766344990185732605820102795373244547217951666229340456595568852037643941700200126661114136156878600789753947353981140546114300771658776701700304578778540435886210684595912523730923714634244652791905641642492142204566671280978184684788525837239766824379168750868594575480256978110252201228600849113838006319314884948522754920148310636484739799611542754023075136455164340767982161615807485716931531497401708725653062749781244437587806038826453034477377889943345566888450673622217090456361228108787544076970521106520800020122790702720353071372466822336149229330900927980755051338922022571104770262808731370253090691456849014859904993738631455097819890591971786387395490662900050230643179719334113079752829279733016193217043364738317804228500769864418912533680260311843661500386643710362060680926103462682557106826851538705147695030777969551242333273174616607072180354085987570389415676234809087184185360833647304463518649382155223936429411364442806525953922729980456483949051125458664232540477601360055791239517630057648775512008061760478613275486862111284451666552565074880526743713734990834427051555244419630454570937822412174879401272632647908817470798364389613762922799342025498502757186378167983072289947789798240640149394674089796345328249021189669239936445849696410027854136380591539208565097375023510824601058792679359157678175731985957253861372539550028674979877335046432383549828835854129947559822178298017779041315882916047603762997690723859511948960843565104911076384942255965516439400447982077744255524843891581521200912903843292337807200981678351961117080073433111671515587015102870060702749351621330602564454762909392926675211087362904415386212721451086638599329979782726052654716686496675179663191392347050483295978292984380239773060935004557011330703397034861634300847791959010990004426407946503766273024010987116268856212964620054709010199607808484409951227088089500189752729247235005888084279922774892473021916349280696709570165507395795773677230062258515201996842130715334055299120995920912957085111422094412372865192127308064135382170294449776746271476175599356971186603669556192147968175542868959712180572751770841295507595040397414922027724421725293935003122154298532942622306454055948134159948887050223236633819753311420028422291293812324816097627287747261695578330888673971115193861090131512318111562671650650903694005664341530885550459840251711443132297406268561463983359029048548866614894001923425933874363769448980705241529598200319277399723329888702117551277344121246971270275574621714434179835036157644217275325880200509220924828120450671549181139329046320821881884901169575982726259273266273982570531200179585345609234717672429480517481013696501379542046434121273977469878681163087231535181764938970756754111430345467608599090558247897671317449732194546728405040965421768155153506525771491837841042813348804717108287379096865896023284762954009562941066458526425929417279306537971220186321323336576840997782925229487547261031641048478145620551140684193713502500574101613589507607468805976610609553855377346216834348991580931197196316038351188816160534288137147151874886319079402531008571369199763418962845624339261859903449863744241072929761699995605652660587969077738834411742150312189809961824831247148024113708980384900724289492248229198653639905562317614784489439337280666191206458315505577344943289175628905825250387770446613322695573118716114412767789549326551251678534933395670951802839530508410699498369633684012650731033975596715006655741989958675143540342000107526003201571141915482091357303102177503668154929216652930364028450773653364973554376026776050586412829835558310418512450306425000266967353362829913410170863334406674354761178706087449016393153125471643707651698758958526056407809203795872818137281766699982091455470595676702025500179443085111052297577778776938748992362149726005921184598906027829577771203409227295011376929846804823430198455583471861424275673025026265083082141499453659703664452350779788729868485528799628455350402162475631579175468975588647568101188725397553209821364498227238917336328723681793451403903560851141829976948170457044728398030624138087983307583223248285975889909305837946583616705671836063384993169878194596735201739794694984538887070438689101850933248467633314841100981875133675047377006316883608443473386765116323424705966742188475487353750841323307127492075673544523801318427282367523375182393548475471179049766100055161572194893389779875909376577391110316533946568462953524536477662130140495936338313020992278944178553875138891805794767139594457827475441157910228960407129427544955283191862734410582385266304359775528294426631138775551229814311851099130383664923381021349734151927264799470784500332163746406231411089032820249100317620312352268928914545334761408196795776075684120967998346974688775655611053930576496329755629889573191164524700688485752799664623999816526326050466232790055595395025753762197981981666254190002710056852414860390447440494887818071757069332970885936549253065587782409187327593303377148634878617854056577075826084838870779393825137379329776562372507105405051486829317298097106019833672912540364824752318900444227878039964417342701003763136746025702793930273616616804793979686077825546350885294244642330598012622782320862761075243182213247780506813827485569882848494593543154150945914521340471223021635382846414279946966421937268324635601435995021454300517006529180884280499904695860610461765668494349823443258916358347556460520699598166570667684448165268168993016290839680765828875556438929930796096737222191229150617937116005813682721809357255615918774952983539782963281062405008419717408399398707268492022391791161527068462088528147052113487453303073051695840849347671030769108828521150602331841230605064009257522374784962018404347493975155725010296107959842630979365767266904241470701949031881419294825055686163276174189665883176510901922702108324178741389876324798514130461676642490739666611223932164790154411920669529157230478673991601806718354751701144260267907970848414375239757154514472353899946449692215530605840055565284491887166960601706775635796627064585377162578349523360737281540671970507994810841268478610544841431576800266059295806896434841718713973492966234632814467423709827453263466502994343214481909252920190986257903715505699631393693813189231023369484758877786071750071889554829787019220474018472512871451630003866224053573231904542441232200471220887332762310714192483306530283808468142581018408458153229226966446288486158715561583391616240679912791731936319086416906201632022503150660373713077310819447352492260108013790796205802540378642958530928232523434662945695815648061129666063699278688534797844536674079154381358149936115555685324730243588156500599956935249266673733054549220552088295475044778479059227292072526397043460296198787480659848720025125456217646969459244830975601121533836092953518235351067385321698052441475164657995196691057906455369209263091512921918038575889557754332366881593909502297814870136041677671714328146807272871691058740275611083205615620697899481634867415916813070740133151832041791570091763280725651733017474180100324792841682811730509290254419617910840563679287505579351151992064375192854212931049998963655462231202837118859416161750632699824790133778953314364058503902893420229680258918186574702399437656639794028342818884271240563006162266215763384742857474929987714619716900438181234861328370857304417830209271523148784979339686420850527960920543424510804471759008205245795741966673824783827427116820918349676470081938311666887905600836850025994281222876383794685407136907832846808743434219073141291511541076182165411500337799785372472167777847445203788947046625859010790186273955561856440613662793222401235532462316013377631426415850742394495277256791694326508930964937784702149802755883171092399792445883055001381085063950943305778358189417879223793252674833906452566154218360666016118992961430205065149622537645320829939165518177347200861845000505389209063009105449573138038577866670945257955867117148011058241457465451289311212483776601849156185009552434597537466203056264457471217939033176711663733212584988421171584040448284558579008857870465938386433773406040199304171184871181761616776548347403203152007538404756345387735129733668556294980776637500168439158942988413371109789549028044375197110271115534453355116754144509891843921900041055382161781644668595418021209311018101640921692472681583242305644216106637037947663412574413223816384706963930104110901504164997128764273888340673580728956825538542173090005433506432943077679425224037950344997225378467595834115999947882400776076795187041874660062839151427812981134217311163591250258785505707911372542795978765584162299023808884856768736432433086208797656906636480085873397394910142544777524804548627748337298112394818035777484700063216662753785327497299402863493826802369050264162053128002027738365891578876840596345855187749490224275550762214135043307757340797320503590367565226280732737179122554561127659633213442289578580267137856777656073912757358420373311367249437090146547250566551907744562723834162181565396904591325651678075675084219952804369215851003315464510955771145829706298584753776955947237614415926208661975614362795228638890982975889667900761357507326218223864109725465301381143463441756639916394243744998072083122732544015820317223129647641696639690295597495288873364586403502348744998521475944383843383935171929335256130255619933370604083656943872300622127443749108063189321212442525409071493027449995223349402577485594292847510781544286187235132248899555867213880297880631199910448622917071414958759796368639225772429633976944126797036503540469181725422494397455631697496672739467024349402537616475288695604639463082585322509365662446451327606497671237613045258356139677735032618730477865682053281135783276392728427567381408575047541425075913739046646137531829218258485612179103217847416889277772494162399155389979175281429335520031705727074120912500126686779724243955211419200937905775516401027335350652045232469424904488394878914054328982801745506574455424385732176447188724252961541238270713461717918419920455992958324280529904589139585788680305233051119020336508133651317991814627535787735139625685662630568704519375487233411051931035011417942281250512678325579469072313642861214631394171096857602343841116333106496758585237662743861783828303003227552690135131453675032723241347215425303233839122855634011436452474167772193556980892077464801698442125714417992667529836911803928101770229153110316722500765206688245943578737626083382388357558663002616249671217336028131466003246876585431091397876324569434934548624271896504477798994599165138933682241233186974356913693160277546434009454357253059975277594719161354398660759557335058979349471832788490096500418282222669623724345149774920035792285938748224065966596371284885586957376465599788848240647453123946989668027173834623158395180804821461569891586116974116274313795185733927419286607551026607399020300894856916329579434419594554906669304943184608010520115163846831450501641338098470639809646593030598067443590864972534245323151929489068666695621789433693841187157328903304890369375157698808332739845948000684994475419738886435708351880485410410183701391830861229508678080229067578094102232006595081025524911781502965615555365668463285067229695905978153218989616516634460064831914243296877279952753061135989395670581756192549758978123837279126362894209189162362646577760970974766924820283676768526288529430409400398958490670039968049047357214423689409387861907786622626573019494396703638920358438566862943590249568506586514342741903968094090259814128254273824141998076775763688047326335285405725888118504565807735225535135768318279793706269107153048154218818776570485935418547255482020883296900834953816775648953012157201960990207903042620107448444028563655127559681817616751802068299932028941930147652814676538641125072966996469952618309147904563950617633760571925209655867606401385741882848399127870614905527291943547842816067681658632416583280243715488373693942432763973782384858542257288973866141665627824391461490167819845224657805006958161833828590333998944016270144666620149179307648649356465017581423723696099012633672386412085369346453382885129331322827678378337497964372091053846222417862248318237776454464570458061948459916526344152442505151191832656957790465484862795752319827802865804009513793549466929806680341156174183025799013762154228861902245802663715050735574491902361944979234691668853935112349501230271021841866181122718396440194628721315307911191856076990341427593545084938154012559324572066260173142934877896111570430916059721626588651459777888584074821344991415479124492815176154057430994659107097496475983466231361812435834487063365396246997838514080151468028966091875649474671420714394368914760050634081925730475393604691219646351055929850144420833103055359009153470463408882136970475488942888329688026259340840513452187933748908341519948523050030922068746279446865890640688183554693865796626751906537127157668261860360629591339374082603184450965847334322464282111131147282805985742568018493067764502862576566449645014583950919907377603386042890921243999987977715735067538107717337727755722085153531968776691572132648418571275137123983641249393088917191374773944153305223190417355773185020743085576518552130849328403494864388849700172531001847335477201100350282832587625395653560416046186944927038741766193459329022080968727013409827605102947049423043055823086642866171059681762972805122358862487378438840636324931271657157716567492589474734494255551204914949647704019092202108366451741885678450639403107509006916124987629830453543986435598774963073596248943494337257912427891440997375784799027181802086454495222550758815364267833376370169684095388033039829184276007066846113521379794561820162880558555966820724125415492105774132563802135160019745787364829887349124347805156689642183094017928706189002455941014785264241915840254573984961871058911336757108871685009163450672955365284542403598547855345407865169357756500271945484141800447885176034304873463374066718480047245419641554298200547049213532359319689457216996372853027579636333743549587583159390185911651247828704786833271553182227635654027367276012490851800972645652885394434905551459158149860462822319846635366348577277339385397812336325379248780176242419593767146307896950157012362269653063849058221871516608831805750770946071742341784369624615148849226686418380559173201478337025889376624665828937717560206398559756056996715480389134576387734796883133399385073286240715893097944862949104158576713720822580978883784645914358665319384737406024514389036216567138569616713038512961257229569476662355528786224660121556953174181623594016886072553300415132908504388726856845107048462903958355967301302285288885669744713925813278756837426463165265722355812661312777052950956814967170499460993993354753946762341808059020081888673393712191918233810769674154200042983696826389581616980858251542766678513029044603326221201927260974719291149219047791748475458431840941129386623148327554967054866540058053139874025447359263829249399412868370053809622307268645413219049301317019081886716510126671946073362632065316017292964410342578991978029047279719994196217595261503041945346713519632542026736381464047165635085115817545544542901349174350264034051154423571111870083670476937279902787324413601406255335152857174806631111152111795418025374391350687448070471819462530387899507705279646847232835560786562711830533129787013962554376975221398389812015317399624154142203423761846400476147349043683767152319300114009249263833168130002363788827723635944748021956422628346989046688838783152894718299173451202961872884503667260008008380980883091591676601580485996879577173049185498859684849285521568373614015387599617106759874934531866282562074594714216812379375168526487691721071392450775194324390466020759337382111306742344048929606608362089794027611420623734454837296728147991067842832913924958183901962873443401102436990263031104020716787760958554963742411692933240707813318580343211104680064017652700306406849769189453854809552613268899692680495660416156941645368110200704621364804788577499485668342018842859180771474283054994111690758689768187038177811980438607151845944068074579461254522652050633878796982985622707809150388686353131081183080282261988695311560423618677160189336059592053419357066779529058067261716986331297199086471680016081433446573588042231204611268571644257157432422144979811932366259389358750151343978688008870581323515299933049886419559778877700180836297193068652438524460536107581353857560974962673938090457211916520309441292079095157520465157141388066712807758016260124152585317812306936620694100647079993738902441044588543117149686958081205377956737049377964663757897553778661093644978956138266567289330853381268678748859382126192374443102306227549236589891947099628557713851304997043183464170117969453213957243932556001466489037698220245774903471616235624244192123062809536138608073976172085655536778193357268009545493859921961245110624185693405480185497076090631289899990644205216027485337114176303391606306909487077804903800900186713542454307262829966459391899696432539536148201765372468700391327755744236802637458339940624060619787183687570304978843837400455245128681798188476390354288815901046136773236695376022176419732481129341597475075136097227434012848791796039706852447121643206033828820180778019895028273405572365283652805777933658744966496620522890709893938349000553761342165880998796946532400234266051066878870999252188755498598075852589150801569112844170712213545132268162815580388974016854287155824732444814018926388909528442506708568833671330107100958185451419824811295852833248983762228585831173574708836032325184778294316812227207426461550522642069090507257939984287754355023103840229214061336906028138620069591373769685718908633719929760947704095788814910515680267244702002787414151290730251946978479414752563165330820837086921641689548661514800608506323139488509825072131070699589534223453447956746942491934679971359003494225984015029181191420948562563486101307808885337224522586876263954519915908318664006668306258580860823721237481518497906282730032828269283874639539351442105979169859186488445109994045528358081978792620031808771134022990896767422660466785562584606707777311049335722703969648884054522856952096467315060958091776759933439972928375143111809092991829013900505361269435097332773065036404135681685260586316810006213747800874527744834137563880001131374612993991339531029243550255470856859270873267410591450670392408257473429351921439049093865209757651236187380818226137096772232858955821161202363615948127359270834416117421135696942700291553219597951767840585638871185083188483672437281664842958639832141785811864872400142407211542598563662116618023291528882261651654076760680108666759021219541087867793950641165493615638754064226851100640021440152440618627711382788017316561964628661114578538251333761397042302645801187134862430611639926338367389436322566030549254978840764584707374572476996732778727840966528666301784576779803724110637939614849962278834568114025658778696696594543806269001443159493656644459908922075305663338498910424002069342706896585033892508257816591224459625608158467655970893937274091335947036206969271327539903746102324292595515470038313764002075052212711375990530474476060498223361174175463624428146275393911782117452061326348004882964934338935528640531000177706088688751640977709462181027668353028840998222838850365211226611447331318804439756898404792899414322739004237362991382410141919189841183426287644164576692722429950487136794478626070134110786579991596707192818876848814015801512137931885305225759839990119234138822329945391263365525694858820132972664992613631079132802321047485738594282365695774880656517656158762103230803601870583705664972783920531119385433844687124129707683232944715508463334009647309730671547529897322896891355676320270286503703725865033852484142341506697037250204358988695714028903248676455325089220732202441263729573550554864172922684980113157845312207141558760390266110105068787520527835420467278164038147006545899673741931381334175756607723032203947314680840881873821138716223667129447048628245040956290706750747831788996351447516183683139628916534829144325640135965569791569089825363188777564063807542599591089221312031803124601567010895021735956065066197818761039444213048616060557909193159852916203228338511353467442797930006235555718630101794728162526397244648929443772011174424083757808904154936327879654728407939523725241731280374834452399799827705505090526241926356200191424698177669454945065339204229588631943756093744411449061260210300399917654499168998682197827088190951171031589569463921989764077373094008255610297975888207118479047738934702815183108211722387339942686894934643396830710303654682796914036265920560938069353130292829560631858431937667590063248997620200627555202727867439977680886042235459077475863588883491654432501099304147203911693515498480562245068549423822829276063219627983294179127541492898881501145754272216874338882753790866289495425612460289206817432400260761721427917792100573418146286384164035422302025854834622882535497193816965690933390489900148741685754903003868449614513214405172680953330969069641296781979940152381704724345024167459524646170136439981106391358869831258805530889339890666416210944055086118427039317687397990308983280922732725292471028505875337081166924883629075140878131607383270505440300142449650556783043720304539103445554902599623534101315632815351112152135502465995391959143548662617723081462758016840126390887145217057057369066110735148585085091091943364770198357791132276519125777940228362350740385889684941371098346101107456449940796106425129891412288029421132070644740057973509390021270103824685183230262374886062441893615815279290846311917408470934522683125844889022395365645104078871467783145166546013648573733727388453239710348115242117235585687546147447582995913781644951302539080783630395737649793077429028450740069255215947379587352453837082965818028365798034463684857519713912569800025798347514823071939148253831752067496748198919180951464571677303668306293109938122658185446645425544017521555973944500398505844481946442367743487887928655576082983859574906004868926210700870636412037758320813055984808191706644276490844385861909616242794868804857769435703854154695999450928900839128611297081757037336169188303233658410779648636233339621602483919163451532787127683346594592524373936069054590728836695073873906338502446716059208240389714085584834492533192065117592918508614638355494182108494643313389925230457930263056490532135755105805794946890076253996866676014908423110771021645640480422321284035955834984251720933596736028107604944912974892213351412930466880115255683316211545872896137812157881873377528587967181562087842949458613333058528053874826181392661781780169524261023105244628202780164118967467614540711636964983801720607761240269216145568696661727041831708212071165952655431120038394034086516943393655849960237791349652032952241031921281851886527694965235239738140418198882962656222062433646803154695877247302346027972349404185717058503047740665174565154247249166718922241819504644156235578604669851458170197863084217470016831132866605842218139728571376152785762232833163694002006133425658404837895923577184011477420640766485824407367312845029574704151110374694402895047878004711363275306046646366840423980326236597895946378935718018700943003574731123630995397264334843108783124150047009212788307143323949792922819410365781312909916247124130055236831893609141567518121423234465863284534023712430022651240954446765187860732102819507554660510817765140613284961049106074857670063420098090956613136629852140493733764841108749766440545189728115620116158282191001386639015390445962371210095170762639925746168237264955251489561806931175357532705559078118757435269443480495423967208301860335247538368042289987926052700588070289755050255196752998438753060111468498432559525002534871232175684269846433242397561880713537764925994570119443948408977519525401576247443966977308539675719543437940412787755452653714683073599663833597250643254729009948371001429854326736951080905291892443144588662167340108082203455354325346085117523464497928381099926249396398693807313228371633631020264788245617864409730493836956108473077355252395977976713756893652679612025775319134445258484222993204559165421605755420498802812430460279972537054607925582587234413704229435701106811189831822067074118297586078455938571878976440260929876288483958277552957006336282995529206172455232460225929241852008994137894356651064907784903565477452771537452867508716745286425088633864510153059595314675667296629024853503719560508340088998106446274674882827968603259402999380981297309458130255572470896033071871539903241191219260126529674255446508514653585045862790468099151988003359543188553811766542207212636070525993225525829497302536863294048564793965581142758362902145216826265118102057048566655303537077477275247715539249006372685908085676112869416362937296869658247631217781288393759504876501654930631491776654931943102140624746257941611976256892129279873959771099459354654616835774840236433140274345518716064568617540189091920304384425941561852686811921235188958112406564815205609101992478795933677988250534789620381875282563147982447280372771300379867900180177176287854004607371400480240211042762072819612621044851128056163839045185791512881035024727644524445914798551450884982146177898444072374145318816110652440161914924132044673212380018111864955798952438491624073522178150128957223216342895833174777583440134675325137819098685976301279911591786810997773722365727079125624570238294480886736577360865749358415169930399837594653525843199446275605113808487901744692622959774525789230204001206822176010285876801150999404210447916684750184829130423597519494856176587569705818572393743850822207005624779328729678428529707792594529124253760488700791738303529987148232260663943389781073185687309109014976489974341397187671483035306377398995125653967080350277987407720420874471832861600097366712580308998614452866042661603653632757180297709957056817591968226545330945157652584481315703417956285612535102897353097615085757869637588181641379571928020354087314108385829713057481074495628831500581904544561821316504671722488473110208312300179323417238614696598197262093406801791897072205854183383764768904408300947221995144463452160540011032062827008695112818805452505725565620222664925490240847974457962487385127491914095503665200929142066953294423767900505381123699533698328954084887178683811113758957474460253810641280437758676334290838327086827606665771817901305080846180347153874377181450726899908289594965392959508283465440533174722967171440011533769377814331173198874933875230298021631956824300342051862019860159060375054979698132812894489201944641098890301971786450817349378841545531703996138092261834531453537434652602820191242412908086604781458914985513336461987710403393981084286828106987896039582760265800193696370934629793582587470968498473126917955441458779485331555734036399596137100592368882554838872806568047812407139396447685739779660984728704290234645630610482412459775029170429236459511515772112085132276068845515417782580314405487638562863085476284859309750351251850066385323877620082740961845765897739076113128033058827208335117612376785870635960488225609180780125236507172500662848504168387357841538535588026785279110260998832406525446126130191758980083542428970826749923120991478078855665333593627665470230865096937402345728084917500562605887492484701460335277522954851049987400429363422993245975966729304870659274940269737089314329250882482618468698036474992311152767732766113049938749688549659425311379907595251839886541245941566902833360559974289915476124436084289965608551567577034038812409305798132730290781949751893422593683803241463464294169294192715254513079837201925822159384964243659200278082754933318767427690999112140335343269414386470626217640836763683472433335284693642608558923123264435245034801818918042477439189992876116677159989761286139128239496345251857608477754599576405764437639738705075103431764311785631495373868326080230926714183236876660799841420723896888708160296486394699646327946800590648099232248711044474605486969572407146552778499596993374748944139322827076094459605952728798001634464615929724221130226476452730487075954090387349036387754121166445255823675905177700939680951130510971867140589518033133275167501119077844769502069952976030412305812408370885922556653343554071952629316245567916491771431542407330381308998622414490036572916509222504257487052053655234620150745898525327435794328446252824460898740716637444515912700730591616574757303122474346353988579732566727729557769115000307046878295049164510589587329130405170015417635639051267641136567663674157916967978515881272422779070688323362418717926955851555850876671792238713191284179405559102570755008996688425430522947302615593260668309599077438950443616144967981672203779186295989883131562461570639319458351213983256771020173021182775119459809960871655325654051002314780647510341727294611881305866643770022058061859411355539486312810710601791542444658585302326797480379984511163813914922660129709819637289033055932724251326318727440273269697286904719287027923636564126265878239527987211860305026552125753291030431679670473094132977292055339885981612890953833628982597170863127369415372775123313173765287235307512693285854874602983490668866352824951762176159306410483817141978774734321264544010876738486030073258827717189097064209521620338287511210477032244377241815054996557510556998371394181094434575673992451508820338923293427829849492074074663344405405902158952408447581319297453221919877958603831542314075053180835691232192248267699702119980448877365677904415178262334329519648646748787760577787446639147919568867549041229924521433008745694956714606472732705907298882494589616203233837843280406565906355296562464588443916467209445309740265831195906534260335415163111112507518626669310996351129431554022681273512579550426448615693687690844954604096766743462024367415488795640703108779465497095005153028768720311019114722552257773933496371783276972491636392772461686006597117393869752284558942085637124225937135458326524792246099678928101046036841793120980042627459413505010097302271353846232105250290764335338694315191429120508817896096531867848217123573998475915094885213517241462895684281020593921436606855371492636814012641102473085969140732719386396643431023768674587232748112848982661320729261011112279927423955034936126885710261357986491676369622014599245309609469947754814626064199685209826741803867437158738291360031528347169922301505307259226918370896576034226530153262090655562296411086218807762922952068501992051829761904056404408207915495876811512936106778328398424581654723671770809189784688298124275567778974875556139407598325195786490934242625773244673772961853927771641400793292927051710711952219039261665380878757477206385184185363054192853322219970655660465402755635430298975071120674377424104779921907246181991104670179394925525298148804655816634889779975844103582352488913472029792589332469600474784958223283977059435180793305576458999488338225639301067375280552942379935418997949816870411069082471172455151495366082887542832759401045083171757090166748035378816993080609431662826420456905191012286105836908348480411520499968508811977751357675741328111386901764536607684490606475420262384193790108830243955908318104957279111886665920504087258481633904843326446588601091144506470491540332746665199752629888286452722001457339812917347353979522827832507967078089161455840718904167818331385994516516743461461041490845357100215628021253659281865678263560642160574934513958538771988679634153458185510893070844608662377048020133416684042270130968681798387618288514188048624278164735659030341165721146534536175863348040734188349841638787934363120539692490981942125829696626486876307044684183639570612755656664802022669742134968349749057991991658634134554089646202762053498506976812960237665700594601632544771250200376008176343964233440390219761403977870960077746878593427714093663369468700842007354283615364991918354573018390985906441349943101082395957995087805208006605563281088901436873818557114920306277507916368907817081011440606524773393631939566907607071456247406422030459899314982828869624892815543466967859151411445050013723793152153091917436808470464506216840948972483210204767740450457901096791717547163654415832179812717483879736989492326882229154685408898750141099358442225788158360931494546831265290880316832104179573658892594567350320768293658555263705267602524794399210410165216116836277196555902161573447596937421256990251273079851957147808494773357268278891606848106449178238475440538578951481090188307997931820143004245058111059777243015469076541207844145827187097454390789453021017473836904110925035802719765174855876125090799566635065306502666503670648032572726322175599457888167929115546572770368103983856991317860716486529246940624808524340917060876210408850825003363249649504832407366619879086963581317302912851200404411830948640359534643159928786070104487832003785939346622427225065134487728267706759188866661690332887935091590646823494119482936535926973446568159267931369975032170982132325235690174169362713583418723636695980623955185086968584379932042422878130505737188609492372890879331230467823150730544195846263758086767494770429003893572565550478565099497303576612880071916173715889698244770817267036370441338997958599151207056295513589428089404026291315278107641622470239395406178682216775980263206799477900779588519658144519725561323989020279778830485833888573535553640855073013656921343012532450751665973043187060479508127084656105410899976067226344893232492595792890526938225663237739453773305655797931199911481157385704439555977269700321819129732068188675074152718247056904264687760436101214841613280351020363976180992661566332103759494937335012829957704836707383432714465994420584965097100755251975578008407618463677958478873506238633883358820827521292496710406267576924339344944938772149823016661841653666446309933346345568427690494257767936136123811119988551219961966711756506962728385860045187978025959231301945447613296003750816155781490036885878624379951752298665700891963599711130280151364388313364653302318968801035210355851295353649246580369909494353620115298993111083823155086648391962911649503438496954113763293886260533070762453288619613016819400839056698614664489793222366868048527572168433366348143237354227918781786226010492377340280256228579042164857824348169344077053237125452887039859759548120574452809713278481024808615368886388928341920894462717948793278870884884308579254534146386474994914799369248637606734436546926506394230126462897289233029148215874244172565039161748533038634879147716833832603645351736155008030156819813349056631797891255822055048062540306613395692648944461576073419830979222960028960719636284429856078027654444569773551720172488188259868097204959862939552406115679708306071459838456513330577039158976695839700509735525422128618186432560051050305663126730102472676856070436615339466167522068571827139037444465415417613091601373050728112884344576700534762629471138811278865163565033646269444337871602690494833922794511674621400199841184817239531818902740468440818573249672495376289905015011224623889927878881461231212868892176187740413622565872013249432623322935791403970650269976458048103697353833242954737718604192457231281484492543111049156959051440118132820413164483895203482648731195274175126418939256298956659868894091566975215976748976630863973164569854972843478873843496857070323099441089278077248573481511998678979923939835509365153204430776856552036912784385599855146347529696618382864508250200719310677979070832149846773044672065984793379137459002182975469852402747424856891350377980446148770913140531493937553665661780814934731605695119932522243161321223283034376006367242905190780059778031244041112731311854819025699329968709356470158787431193287306265606960415507518751191196211898845860356788533490392943130633863806704878149585980834488579640279728104604154826301516122017406233743604310868464455644283806581684041593025144032698063620980375347657981899000739507470090902553534988324026186343755845119466092969402342256574280706848101514866938521503431966357257066972550643085356580144041795998137349746414798663696727166785817124355840990052463282791133247991780642304021003418811529332383219560120992235510059815710251113115656631171904312712160067029939193170845640258591532340857568617353191964079971885991397744680671352719659415409249143450783057162513578415734609778840005571669604920022388304773184299462382919153958019652370361835623957724458459615252197659716287713748291368164746041512344228851154464343187846175006094914033764318813594736450102910318636090728558079554274356421474251397116424055049387375727565136180403435324412522362385591245514036756425172762313097622181924263942428562925025606398624523911373789384290645093103771265541118093179815906492099205798057334904918263288259747653746305648400946613354830689169108512644234935170113657319083108445069152429702436882210266520656988871811234230661131200367074548104693988468900652770040959466602978756232972961102749674902466905518396255796407348965174528660182118095967540303729878181587527276511413045286688899945206431091022720610303669422356766693149055137797629757956295968422118507147906328200935138852898108095881743040361063161503322125099142160086416816838633706717205759578741704187334095284345979400456010521648470385309829668729528600523320677845569704684728886869702129898089247048301992071574592041635330179379630637959808691143031416406944196314615937440023525912514376184103818790892429952654020597172270275511386364963398080259703985601840123962143293433032469158729803271842771284483643501707774721778829339009829981511025785812469821960487030104839524509741432010057219560741305653169466407270698752198962465308267340023467283738154398904724121170644460294689893066629856442074932679011591088287532482174550709744348614469266037820596398618972319669717490336718885913392803631179927551693337935369730030656377159612588890938572840811016393065689302872464797695923469500932912026842038855385276436830262113175017438006403988103448487774126083306228354380913274880582350942783218102981742100787247356005892917572789581007438953023336941887621708925855779884015969770520556610728466505861184701632519814649829773172102929840020672191710221654764456320423402104572201731668944687253426054538518594357064235590724271384219838705040404208538716567232415176338756379195781617387414668743527960033418016830345268557739156919260250019157365806434703127071369569578708133860007890582462214402769545894793337200269720478678601081260284658009869051342033157882899049505913733116861048174738402976473053002563872175261453142027442749159900580342527180381551125072997534049980951318964206872322218775754961354755202029607105638283357316286803847014548070816744093890847595845620933491968251822912810450988277963752685350998940170729466645663514758453273347802516392705507083468833450976212354555150128234985388344447411252581552665018906280699744716356700854715699472128892785479458771141123213266271462591698580745367047967870268485500827094073553327621075574910338023483051303331526449775042196640274240880027930001932596927760541379084142241603179415378801959359420487134301368968906353755663097488199267458210748491243976668652320322918683204530251958549801908627893196056301844708584814320783124542330787159997903790223473308210967730373180608256456082657488467507784107701577255952996490158637840155940021126714223987740811509133691728715492334512097839034220185829872050445956942317899215307872896209497731399030506876681513547739841255567562222330357178420483190979395518896296836537276261948396344396982204320496179007755567401182262049744106240050238036676278781078135499251061686879856357543583674709027830444157518773269783488327947220086665895999084440155303559394266198831807543568473056022887759221322147870783305283888405270856094798419665423638217554822846557706910662024127624933753573515709124899777268134239520388659543157541421007416958769461857446716532714617027300091742603169948151650435602218899298936296290777216344891679581013528981153214405256147236263118144194954387437988248198650708770483740149105468394340715094215846029185241593912372286182486355804489400047120914684528174987585367240512298434023288022979372816389461942878602219037562345800898089905344863334503540958124485020323486871133189489242967339010922616550813443381041363920587524834460831239161531462853755953773031803283229806287827723796977445170307290372447573410197148349254152498173605992590598463741552954555903634079208861688208170589707563754038301909543753041234494035766314864841212328909669251465312106781930081130949306978028723710059603451034675065486940594326610952601100573232165562869012277814361469374034715260067843326926063723871493657451901512030429859768282439034762739008963581051015169079222529798354232300482084483211609608313570292593836737819898376084821663587121545303899763162292040099066741041503545139855654409123064840468085046805315037302602528068171254949185715791235326915218363706819586326425208114527641987977906976564540070967280017009808899595822445999569832357993489626709364372355670880302807359659439914277743987828612246326075603092920137616710821490126685096600066559092012883540581213265367214448809289374758792760192794319333963239203511641661269879731751654869965050270322513847601624528626140456428411778001795291860229581258305820111665230529666897497753297262207114383251822488540108401491477782500743718115997247108605375964288587193764754259759474934968708018421022947946953483909322237118495824390685736279049522911682759023696156605805521295133824281069461451690695003096388526578986018927220687317382417635103623882662000328315113773783736852394988193730436164281707776759814038230471786742623847928629649349259395237615786490301310775404329580146192806412680491040491178476808202974165714806026436764710568411028267292114560750559947892142606560272392152579973602144080286020004744188638381606813145932610691405131149783841012173503458805061890334638231453277683519645868227051747844844640079493137746248938684758567727096064630560615003712752117400619235443994678403038985985538074696119457556990893967944893294999219603825487474418294912498641164018771908481349971223348397486724252245445363179102440836933890558488637024097563984452226910578885069311766854431888172260968322951332611006562261601774850752209891654686934886562836366339603143297379984055152510451484830434636988517335350120512899386244512871010500758455644227089691773164136095632152793577550614881176189312101321383026734278707925271533971132004979740088552593190444310742982361064579010378730752460419906299158608904283773723675753415404420139503660839640971571751964794126863874249360470565036811173098185039993840995010095868576141972934591867288589414564482985573136140548289510585988201202243546359580823720869178063738963441199184765255013763000252220368463089717060962270590234693489571912150403059078257275865059554265227747053377821755616267533448763464446093037671132972828826023128852583297249659166310798441828859040902811491832413997740936187059438914182191837324103065704035304108702721623208254112296415670102307683996759516453627191388604381956333363466627297449043495969199657735700521006032407171326300109900448912528513910498331113384630655142218069434163015175152504360261340353616042375227801909124469659843558529816414959277617456935890879096396500990201985094023599108527235264394969193344601763146007125646863692622328088409751431658582729826843337814198596210978335304925574986576549975942003856557345425296625057674516727366139462664692588180908127618456063995996592746615970948509900804023714534938332232554729259771185834292183361174607231320865933043394639169755654163356111759885055541002275263905644328069809471931487969514412899998340088347457903227385998577539671988747950849251237802656523649091680028568295848529520060267518121793688904058424468586295940967776334535418771412963156845217575109983339386969745184883178441222668804625534688338182427121656002867314773013183771227941281884379947232853171825743355271707107643934639655486331765383868465245601152917539112375415911355096116105924525071544618058625255124338199270567953722371886111333554815997151814657458330977440268224869973592373033773617767275920492670626524915057051632774443701397239836743279385787395206993750311237691135938938166621384912651526658268228567468475039194109555179149267895525089274144186297730258607694587766922533454444041161083044060426200350253926873263948897669359182927188509743274626117722664459955154908096732761127710465283932115398367481474635937308253651952241539280591955601663734583918915659798196348576163549682182940022068435085283425263387570237292851023550222441757942286818958685837038264572135971081827788552254903475457304129059466176113659926624336031750328904197131306202046639380336952426849238955845285975687643725441383104368111441667437738454456293112819169284173028651189250154325265430612860831569189821125289971589908775434006630719064538284873946396335275915043127982889394054258686975231168546453484383569641760320700252402678079260918475425511920173653247511042095373311983872185320164455279418486544127291446553053957806934521822060864915740956052066631488674251977156117653275005658635461758753332800374974091107135104374602260506638779921444492928318352114178672110187268649996614135072944530153677796641221090603857226302351890895773428423893521396566084959471566507858202930945989407430974044516245221015396963035541820604984355207097905748073073818552305342476674634812326536970695725404043660926010140090955056800023359056499600894689658998129426607205474270143512659404610747814531681781413350977543535831343387029221297958361426568021681358977292436241540918343459615651099227633010625545148812241312225610508295371009072531478089127312610485322814527683335973970463312351910252704995959087205517172567673629095946064018355254304984561496194545907364561528601500267536984142641078038052234671777813845353254205318912102595018560746979954660789778593636258941251145430041467918131418992865847209208370645647144885124547379570170467220501332304655029136998179221257148312237087145306130630546095770590074944627043063848332030652680700880760587355457557160220559544763180594516426460406933966380451744216298507554691788838787023298478417550738447946333252085984913179806071594133804742853979411677292723941983520135542802241768695506068149383163875307469570484372536890871875170194455894578613435416733684271442665689263089087702443320740896483202168723578985066252398829796161779013375360363179667833814077183254324590758664729286854064926528786151098621670000903173088607715082398513613068764518885668866847295263576625388775546192428455671304487407832619802314206810488106947249076411485511986301054951680997430576827008104750234446633179462358595763752145402250153567223531015321154337239123971220948253414908911767305376026623346203136873943802222294479978107143125415335246883424793064751045816547909641240189078891520502850709078937471239656114674183881976006879612487218146777769794663739951078210188057076939572693267511446676342498369194068730257512544946533014084429614664154652903553773758082163327747957011360274711213182203354009245580884738346067483021373595607231206604799471445040153529628172982791623476609983150115748908004564866629405523958416056318603445549987549723537076722897263903487715567410415092186194179658708575504019223141054535642761548258765533722910943952825510794428067411004629376337835621113449571780805674494226293768045952649668568397450628848541340352168485108141217083917398908861389523698280558581272967762256215936137600648169475958046784119696738695010550163833826034960587512860531380117780733923847390102692981871318252044848997613511756363867658624104861791981585127046191857206025926152791789582499614614437853864935306342807452078066639169899759552680412851264840077117189923188412488441600639261146487472329138426711370481647689848677005002228167809792238173328515130316475160820087485676528068059653582829322316459605353651279299472120854563098003888071964026713477918554629394166574808671809780128060503836974856853159187576632918827875601795314601697270171801202383714846421368107301123585668286676535499031230618523634878282058059325326133247107920403334656011535711611977148531420689459384345277146606944921653265316317098219288666903935836085224528330484490709017771181648859309151005491655595721148634153754504524424873966677217528352253757052107409997710738496491742039164458816759549757162693803455130278650505248735151664712424909419803634305198570250011350283594513383914532894178249316680797811150079867478720841353673429593399394468549055940697023219865985959685257443757864992274846449150408446081954860841572095176775193666888868901232618468340251192296344737004874758249732991676667276312254991552542149406081359761800438829455111354524343077037890270097007356937091420910691198249629935094767655817975073992578104744690908402503404040292364989437990273139439352147947030755870117124033255468319968404632852036899930158901042948792773328500882811158435147004930773108098700263063884642041000669032690450576871386260567662769915727365666815884382028798358090901907891691285692743361828166571345099479657550422177040569675687726917202696845221285882673332956075861331373238277997426518782319787596368231600444569499589147478773502339927746999130457912204735341348870011596750863965432783378524119019771880648603172179482556728513685742453004308177290641011992151410128862262599886296956222131464367313178344910821855091219886784376277284555903859800446987515707663876669655094357631849485222491592486024414277539042316190609195962591429813248976644540373013107400099410904826964261184307421023077729190581599267692487850810731664594347581194519068212743200477868057344391183749207501289912399682998771709361009310932439904732417658223609986571897598278631792307201497460225807558317749128628261385001582712841702706828544396443354856891321301247987840571773271228778710220414445656129447839283438884452447339687405111657947780666346087143242373378720094458894924972506372588411272422130174879493161173159500956167296008373932804646025092796072327448308818006301096944114624902815711205547403825780466489237001876754669415932174048526290254738757732909922318985469261055750429274070092952757006389500352655889041044497750623787615382641231241304638726783641611095262603184887545404089334152171301830128050173487972308042533961784681945368338490301699328413834510635228412740226189235321520467242969239374369761989452709989193869180805542419316343291675330565916955046632567018781699349870487794488751652852331896138973896589582132007024190256519623177450651014249656007337631776183844813692420205556823904454637010414803977061436033220458426596716621555376835558365244015227234386295828078071827682963807180680625715767979318560362954321763832104603176066247796237558032222815076915203678181383578045288705364927842286196071189857801603135540308972362463269341169367814357945921165595965620927343807044963243621708435489047692246159614459272581466114353064021486165974056525333172476316601817022861430584558037295400615564080053712250483236982891990190762982689443658565083600069802876284974615121444614447898167302034330173417500537195595309963706215413405205944469539881556142068964495250145033796063156245210710217897692380581690527982508027675087294510816129538221772642347044793312259492303368180837202116707801530390057827945397381897724830301270481691070355570401656975511150037561204139089458824918206088465798298744359538902216345426650778805953127432341850892720850877013542783999283681225308636019316620920114221953659897083802202382862363830342308414537960942123692815524899099023546233252970085283506424882115840283395151259584052365964573171740000279788032320320323093535026037556093927727390964860930400940285403116394336402741647981214068201511910081105230522989056449850372145752172366532536340355194913290861110983814035378588268406574689416748984625888368041348955607315882799471644058199260104210086275560927437422871941162786855287661360787861054938927207904314697927680904794015238728507741054528719887671588787743814800281473119975725582656660200240320891662990171934970299230659479869371988864178045384429436194385045089200026814328570928453311112233469450462236870115049576293346141471566402665480493799233565145207141562936779612949286744827323127178006051063150499619462185518946287331051050142687605365303026600114226120810441993304137643203057144931640877135316887648958374674011179781030297976557337279786383702723844358349369625086648798867359091186472063009247746666038053984589215929137846945984183935987807970342012618939663504645533136896366393507637970396017454409159084783545345693005398341246032129339898406277792628989356076615227016737429653836162062602213076623290891627585327659432782886424599523926839666754254176199334852912658805031333441053019402704217537995811943813004707738030434077505593279420595379915403915720174498757902085209616295580329831635699642445347845174749159681677124702317237805180840936250720756368917990636053062697800289614597857647100640649793778968960777091619576922490146760240797250830616888796486319475884704681970536534160261991176530611393523352402084396633406020921161583164430213809016717332645784569968471385686566291457320287415020299287117969346121504683343919826934792099205856154996008539373240951755310214561561661035723901134419680291579766861343437719378066024057896410904598563115035543607964343811161032231689126671291251926725530348686068294457332045260507411727718306726825891945292220483078127951598932477627902704251180540064422001053140198191193322623185135872952861233713485710317393975082509867188095597931996415720729508499775000294420197625584915244338661873988401535933710196481553137838975962829476110224174743924377038001475855969766446929068545669736903019950903944944229287783767271783832032452532415191442111340149168632159305840384701431093368991398357632945474906500375917205102560412183452828105527103323487279461328845783289017143490015764631660688067055439649061696245912933339443480278121103664537571261491058921714818954849135764565288482808860404420784923061029315585963011735729709435718951413262435210113122496119316451439101425988664608146808225317419851275703257611719126363586916210361918168311292348166053441764036941323541199117738053510428750182504040612950586236386189064966156597382870421895896671242573743653481916658393420254071621428334503701689432686880171997893534143615603111671205769365135918365043753283767143641171407748554555094794993696395168751879445931394892789088872990356406802416507284425369340611155882349978247533092822546866074818174663360866293132340548246130748087652907328263516577932198281400804239293729102189309805029452751782015893357554308132294562297548390857780015029062023336053137467775730710882594799683900829556765667432543105910951114562140058813577664438309286304809430371802568515694977405469121688365728860311721383753711381599672645180350893492484722892166507658151743081602936009025097326703220872907495117299252361276923242450389881031302355153339397905100953297566059476259486032961997895088079600740422120261826152331293275690385411022872244846185057161962831477292092916893450338276451456229195285712600995371091066368098842797800104382638707293109657115673962030585029122225977298635428301099488490778782359935547444765783852033425714189381789519509180681102587238356002516701060846598950499401219809910011557527457052548313790421190977675498073038060606281264692615961367969512299823709287600954029258912682325173338061185470570558678969936731801141414656789226442259010031114951567499336749938888718901693395996343697176570613581201134867431545963273722384427295031719112064136461598135590864084284345143863360086224805630095549609715076519660052946153929671103442693324071781379911699323613836455934448262963801979497764048453531016070488851732159950418787884614829857287582782133927238336870877700064512318096050246943163806673575603281101593967527101898925623759322723781147919826834679280993722885549761486895454633332290804640931599790586728021158145450340611445484903683181556282728746007119674219794186636577597135101270589495843422511501029484525767323856834264890455520244991838894214672677256799071908077016657335154907799178619296823657512432228219421543200105517618946707131055164031325005152400072844505519027661107568813970160283299304449695658600083677996691612763244737446922060422348382632125699752948868942971164938109703594324952232647969635548743904961385908579008729357181184911636966301938343827657978844976734860634312596532911254443641807475703943581387344859792796177715236611547011745549971870245344132913203873367443832317993138237375947534965413264999242605940363642449248186110901874149115927371431196222033946963816500324111857782499880451190674071384618723921953404199492405130964486670508817325265611148594992591290121265697791651818609215298538601718816109830435757966919684322990509601482560800233415265195103397222019524575296281435284761363718911579400352085872842692209406300578236485681533786452400576987054500885973641840301350241920446574364001643969586307562002001908218030309490657845482683755523493518020029015684851141551559557021186809087903038250138837044993087921792619664864382056267274378958160024851328706317369834282984145272000123203558317712148108850698186681725234664031430524803850170778794914093418116136022221214906151042520855968866355912311987908255570286394788105042432810182188962966108164280575703897618649886740599282721626400695590289336218081980063982435021305757755732679643415539011652663502123083405002361714697666574894109021840999364066072581039274158111897769845283653215184144921299761939551848603487960898342579947854906055284447933197908012799687320631795595457708476036753138149696867575992599036299172272358483067173332503018478884341194446408088471711148942518929134159436449487896485759428659400406361537173890425547718022696932258643366522281854557683272357824841011452755345981497534496617491584348895554366126856785809822861376665178426438935360474125435212083838488116889934162871212814965744195404254896436576014673233792655830967286795510851544577539519921275663437784613669532553765529550120008306396310636694148974855969557787428853163213334426356329298171340640050629522269430890842014947351925383675912792588565426102290690290686683702267391733062126698379945741760422098584577485295768060121460080572686267553349052916769065915318207271571522191002337095484514446049894349145886483681400998090043710751768935807555646314571193268524138443758704203392682268752339659042229352295342527219338433161178354805169721536361788924730818481223660741885402824340162711895972652012147274587036409107532550874545808122559624473627541912184548351296800724361148060932593442806736999838916717431576337354166391297971077396371110285831978693301068908516852580792831586317424820399253609632299471986462475332045723079873863405020046116303762690093031740118529639731238238135200425914965696412821943927260901189301021538326613196834281474481418793421527453004218826451462078225577060951203547038736064571590258518334161616512437322219298283745494929246514500557837779735096427953021481057114152253240970859890484188385718720875321962594386036827372978565844269760231920944120463827846356433217277339426866562449429465474913274708318096156982976259635511043732013549560613743474940686173075718450123220939925612967594416481634408967467060607236709860869159322308132600051833863967381774759147676037179845901336055631963485420542069159663905034627303652576489880826725464723157634326986422809352377175959510798008898506286343615669921578437885269299207602714076966247050325873346587965756657821640712976863394369610814959083004106834784579733887899313527884695067190333421826929635971720694527757104520891719748125598708920193682390570128174410536873818205564169207495895838445915680058568086380516531924399323936898024452192860708441735677561723512136854218198510374469386831341647177645397566549786389051047199415598102065489236707842061442593536371868105615811103530530184625330311881721282205893116409745838103327624157658333655286377357375262663615734288527454733943151997668570217959462747953850310733025590050243460172469177852003332696773275059183502086525185434098318423784550255962735863155178686797338522230167670035061032621694184750454560863609921831870766714032843886383765471721056201209140061280718811655748509177377723032524042390483401901924360356048382861101508875176992883192560125406595064550081268146395539085868228132461372066127598849178012712895262801474717882364290439259664109873040252730075814234409983141293740221218415265534095759661783104547401943831159496363891063949422425158868474885630932851930651927456151792827973000416320498425109701806558221322886933478513712449511112751905361953094901917899822015711103124322820100531349409997483929769673101188735344682187199401624339787995186928118489229036628822244305715208105311908217000713813964075213268661489269482748205207839322920601111103342875977927779150069092859315258575943515064430196193167804126051713737804810677489472919799175523317828358233673712302206203295790251294701517914926329196768834647668978119661860496717741031789518858225191649460716437648479458071308242523003773772318402722992399892232838411761764766718350330324882217856708780623756109228382231058255759305220278070792276126881647335692178364619720684010372353212177543534414282896640509031450979927380291937998610070082378503386332222490114116789664779779141033239177292098579512414032411463891128030835911522053595487150057037918125950791772689547299431985482934944070965271790681746943854292945954079195046946630540451935489577637614011757423254907820321236704726606468465475559254509198753204491878228193209642761767751693635453221610747376852242715436712183352351326316586797580546123346165671249949576444899740885142624714320814210690075233015653860975754078236422089865168550570209721120421626460896107896067109630664580573762519832967771949498935242304946695690171548666853033476302877229458346953979134486877733806061946051322649039129709184493717970192642441367002974330277037638010922237510226246723795759137915778129640556596864301042732706705167931516131386187453636308241661960518976659560179236126130236596878296476909971065572493767748097512918790760495803253155597973997877748691359782565600298410425330130674375987892302151601703021047842198912184842905260729497113264079181825749588303954737318171761117894405853732589370334584096241936144768042236054692606606493125576455495100604600669101764391160717328556026531693179699340552728529457275907938807097797821323976313945667259095335557063130516808317488513110015582368019547472535292157139852007325813107702009854590095939731402639148228220018791222660039255763533568169175464513424057316768930964269032192180646385811163946907966660064822453559859251547692125121313529565573472159517209942008988235425315473464289594421605017007463578359628537362704843309327518400211799477996055900880041817547551533170774571864848945985244643235208726879879785524962592044058635534235432934703505318325898284222026603749166755470392157785593713899185678452253827468644485333980320664175330398638783158328101866448727317098581565389432963999980567190390615709893268203603524444836433187283541483960717527878636401352473233617088492231139980384781244327765073562599369163089995492748294072321860092161510026047504866943248344442460289193142449118929105661729804219976615621639199177619449537842920658971853332195221062829254297346700880388817802052229483838610320796523551116935284744504534604648551173073349541176389817809870248860478551511050281419441855406494002725449492296675014419194221483315259674869023911054314552933002971931317603191467170733548185829423035766886117963356764400485306967471935499724676171225452111788365783973080781408203444771323989805378435050850932227772092136803837091990850185180890131149254676584180774197946403968793582368509095985428153772278933334078727904956235855057067497656486925442932109719068280527095309946361858253758851885722853648271745627485223529763614565642859586505032704055099694580915675225997566085411200241644578327257665476015819806001819759422450063025512928129243792236882997259667874649426507768845621086691229234329578356015203625578876852233659006729894520630480606539027972247499089725480070468493865769204979058865452511315851928379567442530285217547431273470070414012970860195645874679898446987409580720355513822554635578144791594370047164168452478410465582308162438464891152336797484681589668788764657455582514555889061516982740721903534409256852959945189794013551987075177808200873013498665656065749094502714214322958252088435671205794419605034127632406995643620771461379422025227486110879338311501242375781975029919472341897964510513327501497712700934378277824656483873620247994967007888158430281673180575769668542170307663856230020854149373436834686715134170970098034277987427007655609990856041578946782059675827290566692135529898462360665450259613435592771397092627825879416322763200974675915590552202433470141913881585640114233306643456612081690891296587542053541762321940448628056606319761730355680657989808374985748792032016721216679227047501349004952306921482967419647335932108694900528104743329521358498543461689722626644694146569211787599591366340408912323107914793037414040159936467725748696588573466318454937348979384219090966056402878456217543213137168981091207420132022908180640347948171823738741027820718509439053368890051936535459823481547199897826872170544759634817340090399685109854632408895789486750556119435805479422806979026642406693808601126552937038233516038709841213478125386506449022403754442401807412881905189538941701780025875575037174437578446677761036466693766119675219837849303494082129456855595372284948518722520780917836370309471747628000166504968049313056885915783355870575049034093191692875893127329244839379974373011100563934741487828949871145995854252368486077709435813785676329095283100339614329596633004670653157300117874144752330081227964940017606591734855350327278416559396072893600485743991302856232454890681797660304274461912338985937687607012666278179577358293349099498994258522362062629004808434510114120310823331008124491594638827169546317928899589866810948541386450410188015235675390830067704781380967758311888358589132171082352152633245773069283095700105447206748065945956603954043023999302609233717407742099055341329808678418200504478964456216046482699027679922449705579992061766818079138831530155929982044947986934198693632087813921796868901044575148953785642532622445208314219651455728099817935869151953669261653700567520086525161832106070031302915505463995234707823441047092074763673302716797298877689092564234161224427895954735680206881896783276303588128353582885762130956065839391954767134568682727714757747037280700584681656783319551967428483292994423625567009183997140091867270720005504242273491187716298232963337634865131440168667510938531393655237162786981874027615827470389021284433742800363940316415269743799445805739356956296822457607069043457105194320065178401283817377547888423423335878897119985190378515085245078561834733890931189803882138304893883502871578980173066890878179244054947521352941435706290165291733921358349046341600191004142820478302651580137264601556949522866310483106159848147315553624070118301733806874131303131494805624516456099989075423038795342567195205326932925820803297732131874280938552424444242787352998669218885489515625817745971787662370719840955225956533920512973974444236647399031331637887931036495886131718464793662143721811443931058585454855694717899761385579657601547702429357417230626968355174823665556250168224716281858149841923104779044739530308679796996265391056652170854714803324608175829750472871186334297629198759561773456537467499429908259669446702943871393838713865835707316053370201140948795850284951943201562762362803021842032850106238639843024835477164450986161564224250080812183325941829565233321009914043723764039977954409840432139739343488458399113069778674062855410922768663900937863752667263560826833678117162382846205597538382045517806688096116059681440215034398515792226108964447828351827498955240993895089057013478297886260469224461314814693079087111654480370377899346333518794617046286600010899631784410209356632448682599974475203180530508956481953636739965440439461813526631438655167971218118251784084344165011684568948799431498677345582472230490794684121833242638137960348733604372223535155389810088709405376400891697489910363394347744407621640085350069773991419499030975870673547121830664098411142861131248765359911368641993105140587179138948001491715197048732811617503178970870632407038315333939746474797236790459112614386271467408063852043194981155606989025674094814488496239591235133466924401252807740620605685200352257694786371146805778364758882148127269754181181992676388266465457185105231573126805855597587639230196071054506546964036389960019211947008125373544502926218900043111882262796733097654845811511994775800452815554219700012968310673168351518096317091027525924611788792840797934843972412636473378572842886307036800413599213093823105280308458336961698163441669232377734887219281020389572179122403158741720278940617844435178277475628402791113586496170971361723183386930490023967371354917624292150847470371171688595323009683329490417003755793462663024803566328589908127753015996222177653121553440076260747707671168739401409877493026430678494518631234087207567201786345253932616210133319022461598690511462597203491897214098983619020569181137374410581303715012651612976141880629457518934536429579663767803040093466715499112334749987515834412756818894685663444326755705760407921515711167703272715634943338325994537765404794894077933385589272089851667010638965268609935812739653405007502778035170414965360980987786382776680869166071389278620435108066920879425450038148367740938695622440900712794790215486826183587677617572407099028495233112283580523973568006059646488431481158775736399299624697577428824113562084733401558630264682485804216374031873893481800371992390540982712975659898549765745823233599777781178663723196378981034265208321825128799534628096535306664197256134033639373540954289139119446319345858351717610538262304066347529750920564860035182937614636838653278094007070674646426833045011892489895948824209906720662810690709811070516528536044008568648407725165686637096157181398037574081654842663602044309840355548401562682711223916937516311696572533997308264553756049049306565667332301909785113186265777938209832081113802098599818677094166118005312104986393750414332632282917274490082825070893676981964634594062158476134519122302499035850492837110376814118700408050716763868849421066344711251938772401715919228947961678425335823077088811588204481611752319166722124584061208960546830660890375060749500961720314017522752122085189424901196064120395454818102583784729237703318549160885926175192888214906775260911465333042973137559814027441281413669171928266116908833945812303948486452492970633541552919727616389700623350814694060437972446358861698304152539158291409906353783610023241077771410821742781540465102178828926395427734435797229241893669252206778312231019476077881127482617791762261420159202114099636565826834764203527980871468346711077230822107886676213895981110145775842483202082438192154789304579224342715239589276113507443880141758778249211471229309011437788606724906427696508987909738130455438755956229265510830055974285166987893535633685241201537672389642867394678981936607454794778333979099695830147844253594911826335688378934612233102369488368582624480434434935485087374196986765406093191839807671279667854046886584903528741702974998220915228254543456300449732323369283791463489111690535442407885833524789417521148043575524599100729426651189532843824592392491982817212603462662019417113023777877156343139307424055424248134207234656692798428391626393581572629890366864624437436489767281706846927234243432453224320903798255417218787714355916800862279893811709468810552140960038190654051241538097110843191541942796420599945344619087716402145036900547823568239556173130954163726724266475526407439609129486210147364800025757849116285479523519268738638211069088360091843656936731533232688190544907852394086801023265562975925491531117153894434625557524294777625549007749225151398810515746222296286252891187015919855950731128459402001989839430756114737621543535841462948272378385353396353417291707361661515159086706831111043272947128975823013361895415544924667877363159804563913262736609825034189583167370382001374440396405292689720944405703510546126954466743906251426519711689320741222753819878570880516165659073095804435172377017371222845363984297366782632832632293646174087254345967242556261140650179978675251911764726324943962825069685805128462854911918011934854413731762056251411165366891874228600333211730258681018643238709451401786566363424242245610215603672025306391062726637484567375906927352187810228008363289203931499756137189911047867621664177049350598120625955131426940742330051804614418477372243304885322428350993567562085786436420619471685437313069263662407384127683612795873814076976513304938369323417179704443988210999157089104447922582653256020637013174424548574713947427517675440191144256179335327849621136263608682831879231465499749974324193394037419476764431873673040426264927017895745920105694894496300472067817933184276979358288918251192403723214240852273038398983993498039909210762775617950240986826813013663825653398483583015406035583464863495674558260776971064612630423578839642233763315177135871313782890627165462361722780487019577044201999561050984695268603156220282653821581861362607609331797817212783553260892898443374869071402782626287557280788831403502736217414051303738573456112462921844784198419056344281633692281408543875417063158860672327062552543310096736729133138980571540258129008889665963797330839502405516286539092347092080643959574783216487366784471086707259420944145691579178550391453909848108192973807918674801960658634991211049703960764177509204244929464920486437589009568627955079528751746515583444891678428497296602174364701574861531977618104522376415708345748146105974469647394088247256204577307582492679599234011733464283097226449186035076307491744618369659842835906108429398799113382240101760791527028602019355641441756293795763483706983366517113234701578937010732225448015619404692562109187972515378057582413937672826463935665512228281778751534146919824004448327053420644750169857160987321306607553220140262753711397549058579657878680545787313257543861593132805676953407828228399269740366425412442220603240986438559859502178028502270640595737158572134444805494287136749334530134751493869887299577605060752670626662888062855813699086865438103715480909954877561222971519160468246943870975778858949523496034925919971110853357009378163158469394913989205089671524326969080611883198692619883527653887206135988828639914682775314372373065003793377046618916649632676073206209586494010599684315396586367921867819557736217086035716610307994363892987275811186807905426686740986891384964356895511819212822760276894629006592031955336012755082482313718112458845639941269665538787219806054067203555898766001047075123776610364852608588321267356536032235945947587540609580508781962043420393336601441702313408831373904373828336668649460269086324474237787148822546878288738263228925712697418256716961794250272090902322930095954533079182552371867130179732742521703832595016416761424141755079979232854131723071699890065543471371645123048703028624604036145797516579893727960863982047283662530803881772789741766673103401690519527549703776699864689505630393416279477772021101033845387018105128830980484281236865907142768616691157646441422186117552849212140358749656555760609908730158973009882290788607491351674912548881933526050548862372873667598342931459888385008525366984728261175246264681747536767694695082613958118750045641089335594213910464008924359079592068700872583210348457887521157360951574530349058422358363231298108055519453466782134825705578877205863631188502912557128008880971799766197209266137217526013507940168860382946023169301552796934633440706477225498220805439873601332582190812171861188137372671524654340507472342227707346875847610705602440413603742238182301416056317805607394050239865804886125881919898045924793919673605550429828977009957788062094755729695015758585081913360729381266693617973847824020496189944874550488033640291388522816677530221383921242721695806214822803825322533287640831525710950206464447552876339454815482608439862415679680069298602311495216386364559051398753252344097852022056271192155942283407642837671643854752095548979811096767331455486897198481699264221365521103216822322581121804731199569578664615721268346715805828448834666178677814898498403490860628048081338775256325575176314081373392392338643852048426488640156056590953127023670642676083425765240518189065005552799126060021038242714374448239124458247526651332426401556511812736768496098998275799492457554385436635806232387875646878700491030231974692599137357665707262879267418897765177444174691721901906171787512083528066939039859871047271272644288311923011105038804033441764213245472134993928480072535002783177552270975157320885883357666654888408715238817893511278737012924349633279234870569698464285924307582840949914880817331680426505307308655566515290520124613815597934209047072465723491872017257952277936096525318596786460562874885603927405122453807554388291359369030096804433135123305380883388201123065067880816901350360780830258357914421981168896389098134859151855583761928729887628433810733537669995493870901356597087769920447057756651548886472538112140904835650430639913045911353177675681472310848333727473937774161935452809972603020860385535309708091909201789265562300886925066629804635180870979527588411179327920951041687374675668241708997492245965985098705818220405006556036959532286454234759408216996579610183617747698400368796655258995181227654062561209241261799002835238368010333355546233480032763609100284362048088301685947183172658649700922859397561643898338456973618731333799297762599818020286602503234439653770910477933408248502955004865606389664037724869517800486547018379065773005157266004112195865972361662979930782546852468322623621888177893679375600504857790788202252960610444166884347357758666301550702117503357484279766798438439917372115909008980135555178829476983409887251589293763724263541540074978975445088103394952360735178459475670100782928567831606953592762640340935260186111911999949607284583375609245904873009073969448550308386485730860633901879819048083253445038938654902413478404770380881964094907805926459736631506950873819695544222952946905866913169846546639344126928007344028145070615955015866356306411501897518255391503073447280352315290919515023823359290543420885085101942467241136687347567737722948446262560441759069454414067726100297002512623560508885887908455646646342505628748976331573883240639040693813992044811975279650376844322615832503725000240850657614350247388478252320196570124384419525973330541277577863459371358534360016223093579269872775796347346960700571675877937945585949589380210763504723644008794329001248209541181840562671013044726560818003265447347777456945110638003668087491330123681712070194815703184288175843280216280082254765327162172967997354871369979681962399076399014274374875766100004545025054031421340927136213614938762894459775255409051138967854640697340940516745748857877393364301741050581228700170784143837428026554321379913122190349072140277659050139784415413134554836033088261467347457488462242518611637779809593262494809232730324365554911709216340252054514530535091075172335024703876983251756750740567107225363111175942525679899882498500701438935138489991696530863050075122209929290539424357795295410017160252362152730009964097674075070326986613564831874291221265218170578349648713285101892233164368736190192043354877728055792678553528034184808135246974632034061732884249995406987656933310327243343133020700982865270142346823456845341476045126528999638897990010282350307274189494396643110299835253139451343138192719880574295032741972394600386462878514013603424287072665889273720611443895873490083900298862755020144541410160339999703357950095931480895283734544084681181803356532530214099477642905541823201126652734869630336626185749511894557175218727586191030736628221227395154745536498668689751838274231073937205317644698219930130402565698821509015036851294020368781407585256133396072620252359365050769232219529859636093660759032297599532835842459542509876244364209577073591937423313203866748381404848683758981302986780234550233320784071941687015529465688912395280369533903945459977486200661549340127533888413090377801732005339674487419390505852597015846604547274267471631460886375240087513146116219386673335085342973810631786498230595097056021018362968880260146052128566189460312934412914834982024699929181178048200208343852677880060410481648322932196523864214094721171133734833849447351127058723452094344562091754852739840259303065482869328847890908479495198141934515415962377792804979961068029129882334127627924337668498199372468542462464269522296497443895540396559986045281809489993602639871810694284169354452896657186654407700035528104811321668147723430477730682833190664444116046631860132127234880428059145892760375953494189610024312147618161246601552810238116511845913138331800330191199340228737341662605681973161441900117159408630688310533294556242272626759990029380630937625123108801243350941044450728587687590094461167326523659127082230258974831812761971079977732471349504521404592704829065459316141501695217406809548346914772371898511742205292799187532062962166155328335397713103354209689769728537597403938646579563937234205896399533687760951658604270794731686407157586689161826446681205185169196382804059321807070591354550544251419888829890705527251242663050211207245537574477040557004834161640694244993731373087124587448177983978214949496956440139265945516024801853050322375831808462653366245337777575298215061316805402392086494585577196013667838535273203631481609557134864556737215311909828633419891380145705224785257447144929039559526520282262199058034348868547356468805698358819493101015377722806774745140469822757129987281763725097849803226927284597060189106249965574505961389303526958745403929268491422124467279358334551970360845502262679378853699179264697642323363913397722921781823523764981370874463269383021715630133974031853709849039417497167061173362468367326040738150712474550145204876038772100623925677092277567463142062913853717251910034641214890635131963335932946636358224243820812700146849771369445935115303053720454105388813053769525608948030044655684011136509732460309229790301322673195347882034981207506941386861298452271488661568002773483848191935243351669099991251144492578106688133226030314551404318655149744407772456028321852670918345891090763775132179444787695812666546553884311451978929757807755806970598263711261544304894430437617252939685803537326062434919874365950127124146622210181641411291327108505855053401881634929096126294123994360775050719462663215076437043296712823733965369097062276170537839174209022265201266610114208661840764666677226006250828661530104028892860694497937234006992627144946797286394731036148536687702651120228918291433418225773286499331992574651823454921554235518009158558443744472751670052661475228110269058867666346287954842826269308429036496421384400747769755733111931539891892103285324954846218392855688868374690198951833430556442053570077566553218124609913658166373744581406357222552349171663993824037019531554563629478674309088749299543144693363340699687624503807460660772131130827102231863255568295981047854043364489108382458237724116990394178134022588806485370665988531254213616263517282330305802683463715300187528800755410232180933339735017294396774145779328187788984369557331329678292950256727999812322823676259809855388434674353437664292690913632125163258214479877116745384265275423224540091384473488431044957294558542824207264927726122791715802005102737170808875603625090510324811078909486666100954997546952168485916781777463089475116467547622750367430553559848395650043367618502198108762538464531399122661468702143086808780383760726868274831190987709369960834644534644225561277572138411804053154186048907418814090312602935238942213999130594677231387478677617159373908048260709966088682023647714974308799277210881433474387923072049221775375870723264315359807515637313325346337152637810614033884200773088608782021649953564511359352719388422294999542319599577255468315222884336785125245210738339056543642520070068900805975890487740673330772409102765365140124170585528796118742967527539046131833318095514063335106592241315811162030600012547199402570331287640158126596436471315929733365430944076185584991002907503828866063688847278404405944354410075038611293842078972683377881564438750370181182924776269963698716755465248297788881267714442770693324086493256478407091648375564384102928160480075619967145383559335805138016468680755238781277153289954771680689188057999888095048559725851061082631022878041239162138568347193812868383172930705750126223685507421973353750501399067245146385948034274946544940942764820944112943720495096829259328123413692659335870895082840512168719730953112542710948987893717648138817748441761208063744825790206472734557683366595922047188759758844312274997102542308733882703570923783728182048348169146128674460330109061423573920125171547247008247123906390150603390676981849490212503719650522381408229736130658145974707815035673255203397007595794849474119991700558955744011807018078669367166153535124317713601170514695460783929507551279695485878469980063340479028884553136395362268568571538221250261620069160427450515755100449260479831643053662697852107803239332293832115744190376137127851832563612443231867116653014949260941384067798865839136894988844033999366488578560920577578581847539495979235844566376705060420273542498310400642187466930006042362172603439016524787405193608479038261635219794515099303107564385010096281647837177884252472710545894121971699845974552753046515410285358128898029518586572831134605174301067069875874816970986330784189373322378970698570514741400811964673066881850271081400598932151909178275552522238432239640011301105156052676869924281918734848246399364352800244010207224691468978808397827431981051313820702542390188783332783839301219897393720405781558068447497610921121887949479694964260313185277502263972743248363684653863678953655831750613391419025957283451052013355040433196485251227672218488756009369837708978399308676204468961599064909523461598243421995927369991614085647032443689467076665220209843817133538191331533015837735290942264566363719456950793424646755334088298125439240914675101583720867305216320030850125687768823659889956665752073011503924814140851508934370091636849552567758494602093972125875416401194684294983183502267559488247347716282339315631349703877038569428572329692322372236398131901470739047491885838793761528969554408698342729026488546557849842251427610621496706509417937897541147470989141140613468947583078706378061918695839987871552659586048215100027795612886445324329903157483474591077106828754687957298745939245551710919012178349605084874886282430953004604351376807253891439058247389570106962268699419137484051279880968887181596312180128173203836186521187934201874440451894261379051195105539193064762993141983609275611815466725370515804051475090232520542415428933737557106080393946509480986113276711542038888546516234194191017943592048212279532870026651210080238089647378161555803066590181645819886998395788760110253399979276089687219218648879355923489874178395356721288321540775072252866184125682752854817353354488455147749063175973168465037767724576296278598150680563902596982629140179074101133575881482487969686277779472666748818335993444164947842495251919119935997093111780298574941445786120092732319681168739038202286766386584319639154625720923019645711137618338496095917195726602261253707506344127090534746503386808158961486091033187839020489191717634687596532285199325150869268919915270003714097591761993478566349684889662497269120118259256591293740598973310028465456814422799091961569580053082256242188451449418188785911113241539539103979751066418487084234762945706518822561108860246055732642670648849474876327052057684366945897365165889770755531656279712523413299408753005680096426123238837892368019381971639085967422095862284620035185807462919292855106063581265400467315621214230113706811523493399649071549610937234495497048513907845435978924284184104252450937802506105020872952299258118459887884969040069837613313422646188650241952878766814880940609687537332780907698859661971443202548173448285000299519532556797606794116790554066050604034407928774737272227540159839576417086572353814583387320177075452022269941341873565998072199499308559084445754514831853073861782612212986204450786696999180949255820471434993568655898059231580488824607773320692628673446923924287135653219245195623705353286401655510347390428795514453989924015207473662188911311982698249856475565333120828782895221675932110785521228962218499691611483617300374452197635597678663922323047271664619437361554136374616820089633499162897302096610738331590988494026371518589062600721985865685980382207796224927269347825702878021474969227225517642449762573454882395818840085067937282010733919382522828884384882458785091900304571536050760599154437054848571896611933221748881675127085663057246230522209528803203719820228071075257041215803789453588757883692433712697253653939500782148018296920791436312175488406078086753052604628367033258819123078096696900647976497843716206899116639069638592223287018412237658134235861177765994517332752399180797305647791707692026518279151605625574020144692863557408335068486946229920721323474357016505429830541608241057379570606211183576281110155432583120961823978134250151401310594257781379357400014403332174260912484092714492280280792131661832542368651673289815276399692714042852236280787557680374916410194081525175461992944040022791329699015833183056114854302714411436532891777644549736697953074774264113573235961779653148058732962289453100431375780663333151548717283245276022042083838370312964338737264337221107275221519395066325665510787474046359198237341803523168877501722221413219832170651110277157470461806018527373109761755509827180574559040268754721389152907238841361125180370698717821001919299138794302149606699983532780787407118203613793992194579722940154249554148571682824474548996593386659406804253045946735501515113362718624535985444179242582583665504375924172602653638246303167243414879686293010241859000578480220215342915750766676318788402944136170763847403834359457174417315715744668061380873923280441821780604520370606346200942401729557919451388404505316445104555111810371336704374175832826423032459308164435456308743799363858278671559264168895702880039548617638431203817126987958149492473616402462358963223469477438439143703011757889485056320672239660647828352710180693875706829625803037298439121326832442852371219803029380863948920370883142687539722538636838840714404823858494504680508772768632278937105106835012599149160364927908297110839930012591677210371336812373164752990171751247025266684776317938010456451948715560500599018125616395508682840868344563230335733442658304944764807272499941935779681794669369727582897517596309261083241947606797559937927939068326527437417948393952685067409928298937803596469221763674978086543016413257738078002724093481913322710462931979567602525841387643491262591720745626636892620879806247126143992701707222466339772627023313261149730227304323943866676135219612560722730690866966598182926666476333445291365549851060177773504282345008788851215470408890385344134384983507421347049269832472537659751004039354130877906277299349863815390721662283576786716753403126761471437330616613933654134708020552083722789367135078391476042478759223396276494704763353139182933650292357405276400140382652515716122868456637582276574315492721759191564116103041595449767712417462349896652673388881945104133552235354079643271916636125824066397562439396959293528440056163674264299427119044731823951086462986243026485060510377912860200293674605933621888818964325082092727760962983475854147012989822385835067287655551577130234720811914505838652456025025545800384135004065570742318641420642797502366082763479933067167059576540812508044852763916753151017147199859618391880733067270563570130100432192471607418538291430244652774286806340146138249920494234863468258729621853262445467804612088944866425698465977713944685132738337443654362637058158647137324299125526459354443224223134327988763464123836516615476981376813414657330796865958385368145940821887393132904808529045745288640957987602582240799693723129225190649170554488976019106268361356360258100645804591790904678689928622026072861999237302235142476337438761949817116402182867890552614462511052255642412932635030563185951322345375886206988039191235051340427619453997403009234020375300417193058574412365557990734508364997588813932967844988766884130225703874964171437310793801911117328115427180443704800172256244003368540140319242729144925812677400361683733924448810350761513295756688123086099187866631598844562598301855441534455470106474695442019807627681126252443662920719905870331097891852854342172634470889797616859260307376980261750558939211380318207487054510257226591170588922466760722716341929071557063949221972738316851327873376830610521296891357019478158836355970439652404149302754809924449481748878574490257166552152601996139639368486585432930082271795414348679314597915300637044887118094340355327631286830514694006031737650438817332789155413526948363814270813127083229874215790222630962458388523883550706351335496715887003853157648814927150070432268966088472971931615259195127563135243874238668989038437772840007798533930739922917636973155458195581443459261163278767556260799050785585883537368340691388879858967851811865844334987769271138500616366745936289575618259176350563713440668481237042742146318100208725559786856930438723350177955589186371631653836048960903442700748581557383338804532547497187680346429977445159766283910713939227575876475719666224229829783251584665060710627582176235868407731659802020381095043307146195116098242476006479659808818796692101917327363430977971544985445510349119425071410178713586568373209825172943831533924286056487449985084468862123056961238091178460900088561925039335326213873984163870400087562204538564079687047112683959377043672842584477547417893940426561740633459554805838662989959449752864626283016529734050579576749781559794525648476027055458234585277215221096985726734690546823714327406385611149388708635025141626112845230145946088520383171968060810462609990987418345218704560643970811876104816871453578122462049326738799007172132308107359112308756905323123338393271524737655944752803057150761775709312069406583049696070258976653650865107355456365785908033876921822036483642956651061991425843591886084247069981918965946807702903452405518909056995671585355100322887569540439641184521718585039369601848552607179480140565274021243980095844797637673058936536171850882107720339096513524915510566108446396402362761815415791656990293898657814821191223833644112483822683845418595531595219945307821501571861595905161262258588061447937112281972042803867527435730861163077026438616949072393370900878840352250518373469217507788930487379393020227921642851262594120687297872910902414625072938186408049758463253958864668142419378368632443448858230664136052934138279456215602234836627649773537031759228389264620788479710180979887360461725161798916243459553275815533555843236054685304825816383394391627637260915497895868814932708992894925921782382557319221504387545427612107427949364999162345663985550578749525501841723883094094671619309817016670910392778005204241780993333242299158562955847003085764141971702034692655018994201327189190081767483540036390622466493274297812264609061845685903891945316719693250728468082031233558033653374947444888836872784086626166186467077158003813954096683231982544034662024747666338304540503795784322249185825952649637054482309335591472791146456199982008245985715194908995616969129336627099002091477091287157871820537305801180893002571310053769596449633261656656395000890275716293678724997899572898638842409934572341511318306751071096310500810425898444864430836374339222405722414493658971368988131653300289818772144840793649528866778918864175155003092160738777290798945221432185379545216440515764783637729311548114771779368144319639614967187068156291252570662732968275486057661768383841431228653750551140221203945254502832347989918657995593817468021967777470937695279318292698549899102400786869803605384081855893543722789176775580377889682018206302029144175743464149895826723800973808154752310051656597717248347835666039915255875723866903026002766618811481424201999791628081594898086645392405794062257833173842790997916139852325130273481303386393842801182029689672848964718603241944615062119517989819197500154999637521976193668949080343937063693832162586971016018494655220718603265557005208611771002336622996277527396744152304819414838162093932977998868585497686644867062702134409600187676262913067386032671363457202630754136840608293529664471097937990898447497142763480602683594368276981075691630266067072386748230825970896889567992987506634566608058822301083310635416508178095321614899880701163783043458163481571640112617685074549253372114148995062863173861550207444280285457561864878673403739430764756770365155526138847979495784966827764647228904162218688454978932729819174720682411615444592782712058201159119905656957726052967820448107714380303788963356507596526828865774255558792816680022370699312079721781447933049994527404609983709074383492516398107629279592411926289195416266853902085968392555564534977897072194897565547354113727916426553504347738360537251907398271156401818695092332033699742582945039327547690945227986561209013124347711344810623684854385400112166714578532496528733995968288592614998921123616822594608806974769848921367734927956459623936987151083474024161145342152201312275612544425345393273099768175493084786035642960125696167188489834467045109685274094989007996818740139803980746717105254917552920661537182556390539326201584167953609987769209322642582830151714738294111266966333962253442091869317458943013776318405810861922753495666227106387612214596085001597574403063641044834607460090117962657811770241070194392253291193596387074521908682771840760061190338463642174953632947457697225409817536539723861061811671209598220616747003853043483165767035126645527794226182233853787683866319608731921912112600953329253917352354070517733286399986289088539472139034493571307207595907908312038644635248207776428660068823172441908146748012655262377806452474340676699644271317201741177009728971357562497129578289994460941294498037170772451407095400458384622162712997816036847781650434564847269298739924425189177882714363840601400419990882761025538338629417370120396550641650858237416891415557006415540193702180129053353506367598785043794561343726310469098489380289400241227940531138953195022068102939290155997221549252069794323160394779563871727076179162166826764297865351399276655508294021839380131690993165393460357161591820036386194176350106350459436463481394890277364852756856937846313428735088759543074723737174274265309619882865730834950995322313621416524672529176751802680427779659030850293841817834804407811019308185225700253986517145097917015530558972517721323273132869304802458540880545960694665306621668439252820681500306663841154045824719858829799029951423230640459591543254878999524144304060343103109547212127005255717679241249532425083666620697012617252430417479942948412463875623771511867627434010576400337264351240717900834157197149126898232642746702417609136533608196052510966606900752359181464147295503135537494445851133387672602509622099633878782198075296851189457916220806937862400102885855093030030925233160506303991636272351837627684027022861421230494588696181044496042298008342061514521714073316615541453429487421467547996130096820184907678303979532442139702196003845279917599977475502237372754703395191798216951686161172064266245212469274608991573656610951051984743246301585959703209300073990415304679986144235571696361200817336752372775682602129743672471075951815764435030045828465633222501552080171378547581162580899103592701039438008517577964382151942843391601891676113459439363618101599356012196073872213760331635364802448891595169754691242124204525974293966133100287374023807011643177603285695775355049462875052179586152403214475523491662994049048009551817325460584044431968757146167511120007599318662077777326823738044621960705346777795284051555589254053939182520101483783033445254893004013442061485881674661442736013882919207147155241946187238529004165997893404939760788594735263166407203909698900255861596184322951306565707120849500136161041603158831248320240405804817116039017470145159838421401739946964337118181924217979738055656926486204846594406537231317792874951647817943849611058987906453544096659729703998312139055475325237783935229650377192545320840435349693131149387345224399450825914693086819053373397565894299272257882259729392044975340884161870397606005849143565961635595693029461464624865625790819910432537132724232822190000815866169573979246275651788500128218995193180264170886834804026933125592339558426113962475431672659963265840433554023942448675152941520895286394092747718818503667258345560678376848713214508473941579082536800446980573430448703284132869608945917766851927878827632396762994608899151044273338066056769988995108915935274474344688606471166569965609090350993947284518659696555548956993604131590411177886310888249094385605421002757835300264344096755255759873357936424843304963598184807547527818272609384168820092630956038950984442250913160197047495171821916973884679042909231150750373582308525723384801445411885893799011579605801961186003069085023976111832736782202781756456140705466122581631433340941392476814709923544079481073071782739850236146010814207540675708346579141886188959618806069618203999529555087903519649692875945279189938547536789922760514449806164113653976696202593459865611087319704869103637639024556625690445095739928272283817478135105775908602442674178043560653990837488177494065457305641312860167256921527197387021697389772942269233682253243906089107125973668799951247983658042535389139012696058488159876638702873880320592908969058212794029095559013757640508119709378127783700440120971644619781807804708233525176078106322829303012716303529615990035279431217749638249933813909469173922470739697850527473439979218378506727902991055345465651046058740862644841285129255617224837321226475988086213946731499783375563436185834527302455948533860175117318516008489699606809862800914378019994968827013159188068167454263642114835775648994585915885549796423318235261389701275703964976763814486108689719473070711218328196341864781714840590975838134039086719765900657173980805089160438869220247075178207973520180340368399522173001813285204345519481719057303065484093946388532031316312456176698039611732966317004710828476960075652903746062788534503826272237067885777218280104794556943292681186911872838585410580770829394160501627441157663772942537833533073625864731730646418837360964552479699585979887473936127288478112448239039899791517846955376357889533091308786339185600418683239660713892121904657124808140225302641016046200516947184119290419426052082709826899928471512037461510105139967421678579934607948814216600320754598745809099055735151141351284322460077566293719272244152146614602269936579273452256953393391522291743945716490139043682036064535910105841604707443732989688893690765270578874659204380899464723994895610194271457498989451346589395693893031811157601501963105848760026748113188439840471680251097079580632964642040382673909075673726137568478245425268746851923489443203872154870804011012294956582368199838282695467159909075221099874887710013336276851854851788140398406255782016539040235657252252803012171783636592447779896213222789233469753573615528030796712636467754126116965766616851339825203480697503497766009077589246911719136486069420525786655609267737046114944814236579182126681232027719373064672678105512123613651566385900639486667116403327052694481015404310126098717533322516139955166732025053460518342501062683981438366456173225828527056636588937023960614780746933038450283833137886796872267442705389064211719201176507758313363462709881022994686185454739464519957494857232220936610755589585436649409347914473491838604793306567608543754977508285740888565702427644806118642735021139836250569416400585042139845552559000266791531887235483912552845642924655165628108910299744281757786553074683680496876416648119133806114776025110961308221873285556529418695976877405905693035421138813315881703960235531840584962441944059896361889887492490450259570089668714681447831420288971629532849098862900293953528643666068436346131634399192865687946047948275596981182842459109586149260329409970322316865795514507448909900360972304203101123055512054733703419685159956597616533757041923741417109468729083541988165392796050962156026075629985235127262082390917792545527711922601191013990084897485064574914034295750242990891033909948483891800031808405730754872995537090075484788366408510564498314860868117534385693102453386962113353813972720505899275921766822820109299994048397284993791874029213032444104373536346141943635805577384779466195920255293145004323560736822840864667898026754637379498549276871934974451592169527782839245780127429888953784569665294862294698399709001597980112962697049208041847304024715887837624848801590280551993009188827531033586577388163600206248239848309657796154904922971348892224137739005294992074507182700222796948434216735543129863595993798744362562044751631776714710490730025514351054573751931763857767281958660126089663004402357748379546722672115722098734066460444439498052852295262890962748357120220072467658418257964301661282074985867111549119186778198394883407383955910715933344320249656463601559256628762798095503745400356761326837175632477853328823797831309811597685897218376363048619194925551215610413531768061753503098409350776038290243949598334652665908934062219732175568184847839331639248577998608172825970653153302842564755457429043690399630203133977042796699991521902206101510662309491289501981767973016243298946037937584533088268919637506651045684123495477725990799890689891218768667288434971081185612473821090093063115938940545803266593543235060569828772012886270640106128652171756936817494823577973561149798387620567539646974844252117702898898329871307051204304597580773029121326067636506389318538335312217495480901138053277354026477479507958952944937544207638756833119353529867925028433686402282769279161153723846882452615205299741163809693785587986022417456309681481567853596375858415429420590045832284619227435768276665259638611444678525125621425699315051562675767565664077236750519926561897738271108001085979862535939166747506049885038345305060605796783004392394263409441206897863350909920435725235561002007781443258670408597074485444716227796007851768943196070283689687343046344712304752482470536684439133403944105844481229557397561815457994578495529338591904932258556088157719548820469536048782250572356908868016384822165289496067215169841227227720364392715992776803868039736381172071753852162331515174259629086862706972455928149098892364453834650185092641157093126552602117789888025875255372835932386803549365605939583256230895272313891365958431100010604732787346815940168589335544173717955274132285363101719459653210344601041276258931622957962057335144260614540622631013264925558404516552376560944889054996521404397817483471689783579508745367525674722592689592895923133437367229801235542632426713055807853866156644887305539166096636610331260637131394619543219341472389630795799510802029687292595697447539006020076030764678261734028164633817190339312169195197712424769065588330277353652613944320665040476212134387348766255833048677513323990210178197635014317742410029410878676494873053327241938380656060090861690177328829646360296640200755658507670799005314334746872970257858889876908435211086008607500436750676696993332714761346971338007704870851575238017309220142827486307050913900625708601531862256833206145082300995190367351057367246658874324527184466386369651880046312577464965781540238831537027990426603832855478797881229016868519016388099733756692431935347398754533515773235484067356891645582513624291204085845792093104671094155073612949616661216602957461170765823954259485633608640417208183614426977003444954977752135790849903377316152662379354727300857193493836318724434912446252279777154302086570080429650359522692536188163467900414381363463139850087757695640200123011194979849873299203089791175949837349575244879088137397577688312372688415231432668246500106205524992328290305714819311036870927583076406479097145646046889967706152269293218433622901440594392353601741059733313182330614675208029065550458151734382026412568385913062557115640507018638503959162234628161921470196980080518527728598931650346902956094590487651007818911035543774072948050579131530348606641229482988059008391730127765815235941596720084126575237674072100045858399262197743130875795019936293354419632583496086334474323921765053349043537322055796748912006016188002922358009988810252817114581547721718195433209200295642846551028426040558380464940640073490451269001122189964074886523567322469446541437857111291934541121294443943833690041196031075669809668641032391256471069653061520509570185693494539136228739279439366424559115501293512596568989263983260660041922054378291683775681752357574749492427825396774638987573377623272872030456041188376135884501186669720946978381338860798609636271437878528856651328932771184661814600074269608255163622378428366944061643556032369794984931574904949301237288437371079060342691151388987200400925842466494423709975671287707758318737446776918476002666980116344736413464824244473849747807425298069236106686704689847488959817582857508006848540777097273648302787833950599484121803373482768048173808162292465169524230401213624444713356593293899732163856257813476575651606571102788633038399801757495154752620265348445150317026163579172111499382928674088655453206183162394771651340890976464074446285173768310337158728843594442503624609838523005963019324670346765237149869220866434984721815642836836644529262081430168106273762001329582244287066774529665222516774633283916827084956855149346801535388057351685637520232010649097649214211024194668025067861391135383305504305532278060219040296781486635335041252467938110824416709592505537035612902470824747590563293533835847190705613916104683493734444757358629522395376758729358291183946706463731255497307322339895535435311349830696841231164295421232979346419770067956680163986983841445844129377982104453688478860737792006927817474552781830982329349118483672269925215275656130780781603488156942962547110221374478539681731562994450614191028398874434127271091767770537835893056138499732808393704093925619573540619708668374052243514186669257741120735117548332079057267351951260856778854372331117447620938252077614907640899013185054423509429843184755552616740554232059056939020153115291640493060487035989336627446099123839143616543073758078801794524862553620305117749704295068799623071578457579653238043737595076831571160082305860594524820747744898457463783951732603091812686499703119793557379671597359680947699584659088897213062887062467527131897048339745517030582645082121906354184012098751095889942814960638813025528309427133059738976131888751949701002924396517910540606408998145322633576393374293036802337257996590837650386647322155824850893553061265993148833091466178379220028651053462428053506504103347732345077991647723467966010607167443707357353247636537419996045511770387615625370443098966556506892380038233014295470621174614362529705516358854230927545698264068835767147965042280076796901296287173949655507799134961248639064866403808875452055661837692786615052062609270989229920482674200594716584774297520375529405024358732048050558216714742108514280962989275138522333864705759307827650758481036583759042205801644715621094049557493153289416503718598164025081959301773443405337071867430544867795505598553802758792802934383730208994447888167163531539922160056020927155170237344933556287486325343648144505458186374155890256307951868836562564968667119613064662434989241793993377129575085723986645590494777195286458285841509827032550078717904231233075482377894823570743930326612361184018673084523774445475078143203893211834046137990313532328567766879425566098805640397435305183215862338982346549541360335138426286249604829438795254209493550354607019288910400835541398026991974131371662799998029645286816077316624163603175349659791714647405976594863139697051794197436588763434021307256555242349222702849788993287597560362576721256509672474018331516334541552953740294337087746787049304881667096952949944739031734380141783550028679964084392962218010131697494461382432303959923575025975151415451170386770764891289241693491814059344624306026925790437499073081873130043442483586042438899866480935259807000819361405171046380299569911486288846217529612790985626197918644826442475077000823164679320528909365624774379556166591815077941339772285728399487226871257860632225739145536706249184724030615876821870299599499104414293164244597026665179994449368215791696971665327755130669976286431180767429841043632551158185899881972582216386073028363245125885108752216122204952651174396914364165610895649939611942597310383147493144979738055938422784970327368569977999151178786664226424184425259023079681602951113244263138567645234972345031046965377428306233793494149947714969704698270192378545616122816130140680988372429011933556597926294208885075781385862581665339436175877051766323014471470607420043425361109377390497072749974196487166488708018267303279764915127538178401737532241675304989046979792073485411698476387452662910507166063687467921997595839859167939179785218023153858366652445931421138023199186394349727592567018280792179576517682770553448931930871887387673217833765079207309902556131996269707191273877016000223323097213248346003428671610187322447491053272872901602557790135964309725915116767845573717123621141351253875312560767286762721414862970149771008065084054399977563551529779418024271111998620686830377596265270329936130976121075621651922614985127045956846092569977674095069184369527055079180982941306369353317727830328799931860340982935566539506606446617207006144921130915805278295810064499384298437623431991673501664044532418712163002325641815739061224273341794230714902505285846531185512657610228248069667006505141373541335060334329602514092579008256851742318876202233887069711653940594775886089177552825242266929775523278841886288694163177284470923407324321222016032292689064629563408972884558436745617571793642240918025400370678470240456658373598388959451682393897622250100778623090735668886466051031689917131928736609027189533525113908690347424189154162342005480759585323611280402038609217811185777730247713492711779076353357410283186698676072617066548666510118140698455633118629238656370220742198226757112630433255929616511715303776885498270800274396067100712710994425557173230274659949278853624230955964042418007939233214686718329403500380283952310254443502975571897854514575643439122980175767280401303828470260176332183246290942844715754181061564443114527494346246536011691335204703522221521440999643399844259163089706029394491802517408379523595688660283039348271206618596880500669454999116796827931911775190233952265923726861600671133681221009133275885233973064512588819248570771502889697756645497179028232083728004551673939576967257965600597895758944302859541718478760346201012434358673503365768662141391016660183701984841724087856686106864206247526541540615059881856932135635301206017115538583934308102790967240119491797653425009236365976289590321717017769217125230813112612634249245873549957820782374192145012156945059695786993408842454350484240986423446815427719714508450005146935330386123186034391207983335342919804805046465213059730013803763663965046581180262502278746371046381407893009554074102810134646796294960372217229113923172107467516203847242343575613676680413963043722675257100714147192519599372547925091835257628975762354125863227052709911827317021447739303738383179403214448101079419372851641047949317413503943869741380858792241460403227136804934797647290406204649027526741308997647535389713055814528032595268002791360050946809637433864963144998836841333157337272341270122033310366100448376284473780731889391996462944145770934752199166495259110383859281892783882273738051011512580251108697932095259536330698020306252127261664428856349641807788012416785563423726019180355598781229537715703007241839209380568513749804569567758161120825149706786856608844789634970151100673810290891588698712585393064846583647235606130560282819674383518883405178563014512483197698719640619807691690900299844222500556610253300406130181298966732133986442864904867815736158975551503399820948408341047305691223887241329864397585224404705901814227407976925644259883850830928120167176834542203032147368311707532041663619354216280595040974760670013632978739644646041277478433622407708749463031583128060424959900679988866030826112709854458475627636122059190048887853830493172868510340288490812370690829367969149543217365754018983413930371839485797289537762902404714109513091941645418037859263520695621031129790253011617394670474826996995110773781586844728822261651934246358340239704286827353685590565727959569832967425333242020709063274481375133208596320965665912447016812035896873500984056054557714783370763580718260877698373534012458018777406358380505468789535965541039459520390311717082391819697979994344384212959544689342858993292713684430365722429056780103932702996261876386422544978297008280574158723753539627375550730001380778244228081102493361143600572805381765701985028976086958981425546501947754936325219802313810285723142598673895290823557324960894608647709958680116142556179335659662360972668474091189191831252523259321927203955926686657724450278114458281376426420178685722623908543591355324658268518598963955689074213990960560376981739451213858289067640309536354138472772885025581932691265353417254989783080774847301117496361544917020125716972118212570153964095213606523940851772148894942155120314274188327336417287547218615408949034104809876638567930935515995710566615470862841635717540159644804495244155673213829517004157971862047296926415000520692639523851237542556744097290268045878590500339172082842221593138170389268101883014617621082091946788600520049857913122539266109544536919003592381619627498277646732187531522220392600322813112457785160634887239170100574165216937097344557275729925016385130440839681351339380740550752469195090799257389551908940442239998075142929932998154876394190849374355015660510056332242980663970572271185724343249088254120961482439546662398732316005103139750332846075016744783031336220151870941925592257525613964858976582651780875029675122966059472632060534287936568173520252837229349089632199894817012893807630307201691647373798262624398065205590333359471677464911945964933205069237428025775420597346295957689401244374944428533093144085029377850006119952662362707705226350623480327607430015631216573462921476926455645580426913765236561888222838571247868847997991500242603149892724406924746291520036082560836560894823581724832729654132090058481183477065927173637920670105894708861969541122416898629358640215175088885950541701656515162037417297299205407335107759434979963424270327799106991599439166700675167136416664659989820776010856365758495576591895367211969315186920577888013923166818692929007332205357989800399521122257159973551704858988029674366931992183521546728209574972316079710917880506250531175970547129278278981687354799898922420734209361436161350984923605114146146613542338199517778105601710343418422758140999392149387847484169474896664918871632155723583710120182921009561414967535731797131791147449041754484099898568418992788713189615762130373636359584538460724900912756621144468674947389331949932420768737844650766643972312226350296868802884693013824763077384211352368154476134632952347915126710939092819912712905821510969737650879854716467634678756137408475714919468964587303210621203176426012015698513495579421760798460942772336764401380473921178898972326833500474209976311858977621148910955486009470990223832772750729765437842032835885471924600471788173596481843449411777121646606353852299307085614668106207762307112909135644740535990142144590493645435331664196126635818642454295219114215808772909479125932916820517369334031251494250018508389824531357419438867016816791959906731327779779657593310037137439064163517720743730011853525164890522761286687045346649791498001179877518502645159749623609950365221695605255531596135567146968645280659810267887507640571285793449851340655772638432541945734206551634294374668976534646726621821043112212598535428874908807999141985436599418956317517629073575932018103140738483493701338797359743560501467004211903859667217033947877668624271938295409983924324891819592667871090236898733048950334618169427159351769636492448206228345765451918894391496686483961364200288717225798926488966665255826814924302392274441093683396526756959596891892638644227629098941971719993221702069090102755379727015049662780523118052648807920298367668829892528564225255151763134360431792076105463086734186422381252448659030925396808440360968037183564324186693291402534774086212906415403258754685085794763243007796296751293728360203677751459217297937473174533288475366788283244974435288056772420345860829621494920771979320336404591614657969301547899731517677732468231963390432122031144543147002054950635359628964566715418499744987519478354201586947539357699411443869704347924551016751830667783048739222781193478436683239032600663978782256726275820585976643772452943463906842716579500766165814762241224274113542676330816577391311449162907402643046987963035479383926123406227840542663728390881904891875787223954900659322251095184487684158690020407008783197735589096931746301633330922941634254190826549316725233033140315203090279495925773713051311018919951177482554442893570605489137754878047770167917903203507466684538485010290250889036963086464264853386956551001352111802815462421334533307460500319698436669660107374699699185572671119301376840917392909918681263351352763287006493214602323680680018918174007556014176393228970335312789258439406874136206844737009953839627623746215588299397985833835067361170991818353549937472517688769198665586280647302465227753939837811388121304564488869318811253791585523085221551898482706170075788803920451912819524441162289521567708777273855823435316450241238410352250618658972621415586231483752996718055097786872282476139181782048994316211660203165132520939550672292903546149365484523006604390826823160464806262848409306106462021021510397146664986494932563016771063430069898124593384067556343431362742748742391935302388828353368253635325802609983254736715916271576887227836172525224107951407015593904888120587417718558976085755387606203681078606534648013610868118967467345339157078800565800095963866846665761906858103394859629106888613615985377055467212600252500559026243253752390424961514557807183387444833150986243345435272195448427313813147957791251515130721630444840053597544746720243555807248336297033963070509837386583237997119368507551266337461086850620050171823307435069911176528345443405908416483352118378163672346078463500623076126083916249008091761471987651915691830546731878287423953120874884890835793133921705835190328531819456217332113419882212445917070282746726920294835053137726673939879419435908435857162137452576674466623432423549956327113416027944561038321699695021607898701219879695187957015652269527482419374555477872611141819262719363358367286559127253446826605995529021061051578794639174456749582664681350900895754395947394792446446654736441658242549507947101235010786190609658296230873789583197219299906057690829233431153572932226672084721871381993270909169196964747145154101537584946364038711708570854828930607879100738531268421976757126886128583988631082807982964766049751424223880106243067102995971952008455270148693487852158508252162469294312464917713031157813080197397136240123285670262339127216672750349722195983366566788031818033094199995736230431146624817927020498341093488139678694018383906778009447617517149483644699881617372061612918346502143196084043521824158747401750760866938802441494305708321069357695276391678964219770817463226872711885720266280503996319509837758916569787794062073427677239422140330841176043203435394385016154091025460505554765454062070686222932390827438087511408380060150035344545472986665077266632208135509187097185219907038683065484221212726467540342241250080338896862270699773221997588540247209357230798316522136466566210648890046012752799162869732411357733908262741033734685977768203179621749692313217816476927512779817955253923374518286729311700690880997878067769203923396685823896459990662393272769266606132342892810467279389410259525935289700768168804749172589242752853137780348179116004185313955559624220919260588210467927048347020377692167156482659729072406152783630490724640316333619564934509702896527852925725470819316015177101495668715079090507677289461767950493041695437964305914361248070963636003544862762864143741729906080806294590450739317379208768566843497671163629618628293589145533710690766477499492513242587320891579619507822334766718803168503226223958562471852732397458611912450193231570612567470538792695320469856032120631437654980263689658817868927853779409383763712177852258007655658026566215578988395006376923687386051716390863630545837120483433404949406309801500767491067274685273646004427582526595163186282132795814611717194413512077790924099551068262958704941536196469807511667111055210174238262495827262074736042229521170677045354789791667349644115787367357918431837675162174821592562733250386637058418419113242116278308648388542863432770334027488516971610224333654212173958380616191867448865554230355518287726742217566918614001927126878554235839216482389618607374729862145898591603987499638946244612540015351298991044824128595285144684639019800903532662247514610383964130117122821489260174690031550722496443656177107371763709924620615694020628413596707434303599351774311092030598481384677245119408511627508833951594733609443380156484473416159054531646075211495867875320926040652420423933580517906810216172223100339329834153670483927834738016296019428623479633977544771192709773861445908323074104846005494603362190190419347497200128072888011242353607513128619947602120112756037906536260513168487087891970897428022158513310718884229940495044277206568030133893603529894200708749184558173455531735534441684601613721204134399314858091807696694684596784751389717647168637931014084428448936580521042953124396271820483259678211050133410440688226414868751960358293219078730542189506622541012501746828497215662766652422057186375195586757192595428526621194481293437828481398859734531018997403181598723515599906873697461963820156339930763985037182708136594544136253029688553231813032777859138786457753836485442786557823281649378895386687788112246227372358780863296330089058275693372350636343887426006539447302380274682018916697068629158915894772558150046285541367137560480220900056929657367392252593921421025372479303751159983200768281657585055511280023216145408416242239965783048724061057387405322639883900763180794743473568089379938565147464188939633305453974956613670076311064010437165611777260564922145613985284729934293893654694942384487001065490331846466395009458234067507055104507642655777766238941953604893148840211095438273365866820974521790052013346027884088307101417236517069578189401772838284954336087593091278517693188834082931421415178569078784980892228908898816713610918313466498397661722433315440712676407068226498044360397835660496429977903534085402320613299259828592134630265447608042877667371393774986346705348761691331456367720897059160437745599263185926491597834816294144360917726183094095566442122530109461204584902943048579325298269650673860287835422552446661179622345061485476714967963435279304397910383179472109497470265747324987007374185195210132585232356012902818887555910775219915540337674511743911252477216691538921386326039129445584058400769138195814964040254566542739882351010546190036600323237645100481392436821374810956436995233944176270579449737940221294992709713599062024934964838373910293053497891172370695302010787798836439076511399485379478075092770700643204094662471848378483693228189658471348832534324243572493334309487410990262714208023634090277543086609249080813490423818531682245696927554970625155828171878172401269295391013205643200048089239611714618920775975696379371326015547458124810514595610721612922137123267348813322630265616960718815960960860964144411122871093979789587177990421077641903078283364191827329737462200501761060264647143876752494237503943335240584130332804818802300036000651591394198908775093954300951697746219014694092866530544606512669206833548187483949344544562025723694348953794961074983694526465643793017862232970813325769399637575378088585654049436181118901333921760708393384864184093473118213666357478082223843431249817295608105345929289874297133573732993233568581010195872358410114331099426682099772955849304693370790420821586304564500612155030267283914004663191606220098489602761944109367830165854203640882872776689509092236155719412985534661033648619097015916390094183160529388571294589905630249072920855851418433186675012306555924514020258560285435700932755053474132906259821810500641003351004271720136496168810197558123626824159139528286015112392521371934265971887051714552543626916844606307120249866658243169016454472222434481073827309321734502526350809795355208384602903653450013982238754704616707126238681558237933475139537670132314569930283427021072266943934664518182500387754268729062823814879626515881198574820727831765154966392341600054617764641888656447819624082370224871093694531486004589669551456613966744222186757313193735844724342355247065504531674331508511819550646649991287790870402428216603757969593652783506584159513861572992956345956582374244778881524754949368272784030309295953644290158516423453124023605810716160808001171341492735979732878203167788000862511563775951460666059443924262920189581232003365409380651939449033989250228655375629415172090689324948510400014986559796807511603744385787509523579772861330838134732600094650230286574582911172218954494561497997215004199432630594139743945640955471166930982516827540129578603177990686424593089745111584896717972775925293295353604683394327168421202105852912400701489811932952692725020595716963527008546380391976187957774639252323510593606138314913703977386277175881212866162887220914791781652408000662265632721626503861118390071188328928858497156288067102443234645269372601758325791837647109319274469570830300022666898314707251508819491884643476361224100275237190766657632218511688402410225413464507620730802911440825456439298666921582063245453947922165936007401734454088941915207243427313522110322824448926135382472691780651094657563936487294455297710313554905772788951453085295636802403808736860247320019058559003343162047628785559891917410076083235803031271013434068419411623844064149191003362595059417494243918064421111081463682304695154598346092595249266173595566738017157170693873754720467327499430101956693251689099536426936749394144567566100230124130328279431431653675704184387554018270169658090061518182700127611168531206352910957720159123932950814926645119044530255950452994028581461996610614709225441626332496508495511123942212956299201592351241303133048671256148232160724477116828204181892951829221849350294729234952162285507714122004578859150648937712003251720608522270817540703682968353425506101934400746111719555139131272424035979258370900688463557866883841168822858477594729375570241338036359524898673285537646785850668382473284119863419038055442122835884335972319789192063959340331322772306923721389348356919013584610397077065925540588153839166323964372292797301893693884350951240190247706675513416240013991403521201490920722532768316661307695494801687453999579891155695595209095215266636666859888082571744319767493159572346139176444217736664594856011947813924787325215861866258807782903978699803638863386247423451913795792437349104657409229866417548844515324969093615443189744443217332082010424444296719179506457175262043110962701874646144804388763128179789639932994370562285994040454084034950520805226005195218953226981259529635642045368303798514441968971401841832825245504884324953661910442930118702094148508340732509107491088634742010287094051447752713996438687294599885078034164913516861950289785424469063778672517402880427560103146259739553885684859922295583099525903984382957647201771475819694158928082569109950188699231106006326706919445267278491692049930356142317541795211044280101338462491976470184125651404499741051613949802204064941487737850915927685819598741978143738411314313561294317941532049392220236239872517519979512971470391078723017522615610766311106302335698441623497526017129913733850302191520622063275927258442986053766745973157002605203276238999991200344138575080190519682102524790456859561866213130819348352944282452577426128784301758907355349549066806547249053085037924316109772413369192409885796904441848557367233015871133944660655265216468928335823510110762736133974669297004774192645281997002931772064828072420885580048570306995926526089098312930499486800866875455483077234873169610621278637722417762893482895440621517341458845826012237686502382115426003869705236183851613447020790993156366599350435665172703754597507997884665360592238532071047779898667441375363680705121562317304472680232487710370686154429198377543115176445529623832469083886807739334214611252904821414187883387261157286659211821980418849538807332400212118930456767709935895338819957325076353261522466322434286733886310592831359711844508901658165069102718441480862465698918528781489191491482892541369904065073563931029952685139823751199133500536515148342012250042544032635485115230321992481504037789913255464111143660358803234048549331968628180225808435596334493987932365952063291365053458860599765051011029769461449000147842740539212119720623430625464737355578970045368299905948637576430460739464929755959145465101471204693019754190698008697823728837746405921198555639195036486660601726023273642106147646367767220280482302909724150042237091875452067499964780327175048386171983797178626927058604340101472069097094283702923574587210428485435188117212954638530979926067940675107991498014522908114538513864961788113189935491419999310259708061573880796655708187435352979545059232771538834155841034415693088013918515638271796759397927868217361669178097076130768991478621479355878230332594907117082681702911876521439503089580764169960845263316478923845534410887781423202389773207377194044578644245435547996299604420448108014934710840807907393472816331179320127786004224965759749550411829980321311757427746406034917844929864822396012461820960622046192221980785174210377916368948088623910769831645876986071379118968396817341013935454495521846140583933400721170808947635415229104496812767452399153792693996018889950173340993726216426925568970009979119304691702938986889766457479121412561066099645849131729656637541617952798058928010742641864900120943960213389160241779235312227153321567665128614274605589075698789967091988023316028179583289454299010133399028947003292384569095927834067724572434276330608176073899953232540389890331914750411583463373483228477380534102080755211264046456976537002235285903910833131384981920788972668829705264351534861847695108117185719861806006134824304273698860715836010234596909134488593963818325859598952225051972724842076186328540580311223722224687814389497285487733463674866474728618712651893272667527427953216946632382115018155148379533833025803169321400996614856047350425860440024688078801518163342184426619967266507506774219028232027581884435983807657336307225338474042546207972280574625189421171066899368921931550001111901226271614709903217809902630103973934149698022548928977326714919605274913181230301512701924983518563566225335198656505362787661106964756427211390709801151666029176354457043544729310921817245788929147582275527868089537064805578283615800112573698675199886288445002437837951249583420133621920015507231090298771959697625888869065338860639051984346057162709649245363952150701659083556541762742724072031409179057478741438795222565581587087501530691564148646287328503087968424489755224987919217682589200065371938687671878995172949714017016828460185071337208148573381507428205455191801295773933043056025415022085550175932414922865163175167527295270228494091443299215972018863678392803956737971210347151829567610818399140163364326908072468419268330576586657248397135234690179112578078417581536484014596143972764357488851422691319727127057251030244900591707215432427842185818999387218418640475411625186175647085462514727728226530103730465803804528087668298941885332002257914953245460984972364852298673848552902650248332834927248888637700121025530484086263817530451607902471969178355814361312767339554659744016735449898130631629496919499476650182842953547226631683589611249265146427906069840275881640517753903452307367145053336558025072497258453549026165005521808976431753814318198194268757648071112238293112260886756305393083850619368388905942393390822334918480345227985477317574833677735322068865219162257976573595922803841968056243882388032148615277072327071374785114645766244005705128877693644347410577604121118117482227956822358694753453586047845427990544402402139320072665610357271079222966330996181494493246173094450862154657106267336458424128182632052963528127097403117574685046461081767797608403556741295393986417757394300762320536493827759537309723887089947053459384845370300694463060647845190871395451600681317436830755084774141575338206714874725355389449201190175192843206339981265588756499483334739457962776768416428756820016701817246148758184368749679415958467645857116668811848140465663136635586839625018668612599768191770216215340284357759539545911754291903263889860766884000670657789070800993947387350062922409012741159310104516592201012958256728158673033263276267916524714741531201461049337420455865579016496245428220090772020620274815499439956185587290016472759015196712894025570350667023308317330142067548933536371958029231171512730701542462369531793107791654439300128511035232026937136875344782940964834683688192330952841093579298174850976517419877464857873232249404597018540092833779367281083237814893449508457579833302508483936390232684721087516240087450744486082708950061576918681257265891285675348214053485581576123330898736151039067091589195463003524507745651826672843649837067208024829506355059744781717630181365468127131822962964302761618011941796845406045370572299282975331442717725168841102383322066449232065230133656471275876518682606603153647146612759574372228491265979170764203493590708357123346773401547326879048736183086813038025967831022074313540335715042021832092013651921886347289595062218747929134307899423854040691554059382901085188792324605109339123444874373681691682212346715255004847383249523846207164843164419657368344797474221174206871500346991234323604609061986576075535002459669121260246687485725056294064607277705631475898715303498148726871089865388438378678381243907178633040262653647161010324844631402521280931168386687476668525815017177033098559554617498899496536270261870194008592851453842467509851326927436941570497685225541182964486437154758062388546545443803334034115331823180119621272975703322466137747458752969976930946013470825438177006024007410045784070121140835555380779640089791061066905416123030714570931488329355613260641612311208643380713829556546885490351904007555825298175581336166401148361960405615605456620430270228009317530485043113619645181763575642675496592994220761905621544227569575742914294644306700841652864508893046645307530008316812708581290713924105600384410241523331353157084182017981368935321975414988920925449251043987484505008590036084635140461664397376393445003414716356345593625696251407728558599658298517003420200596141181170029832072537561133258016874573183733302344582399590144703079167685179625237765453136207398962603551558702781061910296441326052652238645385410045725108216268278678053534558967586719659985527142676306070289132371658090454447499597936150054070969601881075973113646472100625859981883602622272938116228710275161970002158312488648112167876674525581938345477349055058973582665029629098367880963732785029610329594080892162750075016821940974185445048958153177207739498667292659521347161719107770775970917954968815286106995736232869750775534785648606911633180095108669588191647889949285917420236187513436316675199910357567576686892539423172554568140524748832051506182968785793889520941195491262980588919916871418987660794595042291315911166625835719675794633155216504674656357313476928893039227291851041116774149136400842725363487663688108705621410281473387349393009114466790037120686434316013371701988828714388352328856938412627842372163771407822936585146287225496155475688648084653706189918503758859428527273628139932123015039904125608210201759251226169780308480313198426581604126350954701994323887219804564692716697507076302122784691227638058203819333703068519597280476647296203269640374162611794022207518919101694813494319138010853583568867098032862621161209390140858830237916396311985690089779897125515001611430038127990148660121632118177190244949465537144400956823585076682190395142725789624578029881507853354617373784716941135717624108403454078682903561618032880537667517092183814905755324369177347925880697310678446781924024475051837060884263149247295831903811544630146672742037743245882434032329226419197205681080751212168068048634681070546553158361211069084108067318079317266106762548126316937255482028930687314514608985145248529149104350565972164129946766353168665042139064780199427307552483123387685605960863604293110312272989625424200908474363295675094878214030517206176827463372139774277475842213710100119738211076168076329886284869052931117690047429161814642569314116877322709364839909588047470186920066675972507274783555648867054286623605042773407405112152300965533618105426497416074299750928805013814364447512108493492421727687820525205270797033878476195587174422953103240678902014270204587014219425511678535052251749448066567749719211706179166404764191236102320182644950476593170713411857856151178125043020814956977779471405767927803967083068496371304827242437634968790781839667095927181568438772881430147121368073478782915501534844404142058533181809456212769673189873879332574783344042364689841456837456854235355800247098310394490891079640190917380182832034773912134611483852543060904330675340979943698189484705813696312966732377654847859367672794170347822124391314129954820408527292919993456684386641113564543460467452544912315023764056561390286470436599805278761136956235020433757622272518687469023280736522654321412228074255231305285164867677895522136001021855482095546669977193972406545142939583571299747659392008815260405345169295797009142203741594681966324922967939615541495502530748883739025287301692866067005726700046827811116356772921047590483767205033995264923337577531616492781481902479128457074109434920768893037216041920979550219380242003462567717127265195939432858106019806721706369041189807241633507269524027633969058262801905894290202670004454368040357461212087814282850891496863620752669303579237259618437405901492672261677609242453329987848416740680546867369650531341600971879814309050551887707577629293600748508926795890590802465194920397873898410373304962780181765331070769896010868790418848353274186073210979123611762979841842017933171476371929915757631309293648676846848552507666242062935551604631481269944524180159382202117181137079625981980831710930069245390035198924464317646594051630822832327296659997629756365429757012439517830506761326476983374097941440005908569267526649625590625581254683633549553686406864807153947625992303740544680682081133293212552678238165304136582760895466064194818831406555420200885707500442488272657286094304154431692289855172679446432370643174343100769381571917218876459922687331016686168641301295445500733883040511666068995442213824192421004081846113154252951624372299962124661784334249733226949296319795322597720345298603697237355955820676630696311139103734081087369753538657233748026224274063156410906239463717815278746404327728830478185720017799239470947985288943106020945631495609270664507176635575652441316953046190920498254934821481672033757894822506866429717891111260622105135012776434201433909245296899488613494544602751172942803738763064980829919113126916351120191304299591198308987172540421129433008081428243677865185896291155813874684404880146345628532227394020836914277267846469686140893781061645762403402638348300915020420702867634637600688248744464246738861121545176556379994634615437677939009567153529805282547385538018883954141297302536184860127575363804987022126309767892323873425685028091784585190180610420133462769192224015437623895805862361124886852081710944831726501265117559900610613324765107464204715506535853188327394066826040785303006158787011837645613327438200276914317633506792263096681353780093115249718237981239228576937606525064511697055654676446504417990862743645332863455632649152150857310791446058251221781564186185525961604152118117586181433841081268349982741901360583515869206820706533538029786506411937869559609979575145440910083392111291413677553506887478641073932693446092964949075846407047157709703150339626633940261457038845408624203874106238228742122426726912494230029244090063015300553432076696699399338583676479504263864527886578761466473325830714620260318188923361712261677497781234728723553685336214918538565187006795909910527623309121327475886254253080216069894114811029609228257765887568644061448167087474267701471899239347069026206406881857731320854900099297322096787911159409197990119511507749484274070925372795074484578050333363875004654149602130913332211104874690127304714563865934275277113937143457635203445261901016156113191787841673729850350793419645750872725748772083725204114993091112396020647555769899114653604558678763520180115881610083739457876579885955908795735636447042563436969661927727414417284853254813663379078711171644969482768624088121969082985331286062926258569203760903555787710593545734059103926809705574740473873954212132129558968677480625237130217611576421655678758044726120621985321439641954664793041533407602542752456944713586155280586494456994256706156685790441099820970367269983418054428330898530881659008537092786566476701522614992970331095736832791740955560598656982689067908838117114616580810012782294858832465841717678653402623560103794099098743510732493095512734739510314288529051970524588921919048147367190202637702693352268462198305584748731584356638549686347115247310335899840945528428749468353958822157310622848902901348248920057569743245194082385525682177568077899608586617016476979986655193368415510700392890366590432872210663472014182555108228482162045578735957348442576907638897892694258349440010431195322102945990577601847217821928686951024979897067590391739475753598201373783895697690768963522708882164013087963824772253613710136306807779621742632843261128624299123589469571114881025461899847005625063459518067504292803580253644099900193417539357358175259452939616393544242497906439458035242128573906246245979753391101155766491572788062436231368888765235150044061200753806910000435146954581057947933612215558255684961665071936163930969603409687684528616396205520857959710238674939523592483146444390326433592994776628472933307721940242506806788671558076727140871698725514593960882860696751849142525194464772108039152348019840254830243518747254311253439614823523863170876490041157074338752706976700903612796507506633126846154418789029047427023413240161331055274519885824257617335285125188976977681739585871212851070514690436484699855250937838418501258115223169325998563575248709605326111996487566604921947808171469929973558335141313070310624759978773939036740515489716387364574267904075145350458782683353063231820874818226698047781060521463304335223953301826176323760338213568942575919488028689892945584302726794898387964627491058673339441674479876446899542388340517560702501629467982177677221201054188804660613350522617787379177973774455758960237123192473492849314904586771349448499579721881479731861904310319881995211327547155117654128006940603298794795284300862351657930928226954157213685966224192020602896199275727210723086592599771261302569039460123292174034378986353368690510712537048568152899815460517133158502817648411735434542513840547132486539954265835192245694663555210852342711529487331019099758463817640477754750556028032127691709043823479337206129205206614773240288625059887145768648972087316157091166252756280172905956755622840159123594026435700075042933599866563235877039496819102981546577910007102072247624733194227741932195209019853460932090992093089340606114048217601997887717055289982955769452529110437622830675501197596770884856316598226653174860490737508203163412800120165159844748022480660161595675828310138794427785971508113328386379748389579481181575628289335277707054032621239675019131271070354628766977931027257544274493305664439454802233997578631588428298177609996794230829575414197537919490778216038188730693650402529260749715998891194110656555353987572301570737513341069753069045050164898619371492202262614936858009026327486610290633077771820428584917869663016195885606239012080028408904592166772998311900921705779585009536333307036814364444957949880341562494413289332150085832854229042033412652495499652612214456774689144524910628645052730567815340108842677993822988212513647690628954587207614933338010149664760849724155818862678230712751207479138095801204495283200772311972423225579923846851029183625038789343010322513478034731174358953700863138623764662968679933062883143161224561203292606184964985819546476840939120374855387292613650761843913985914215242718887648159392916743065090780085225936566123630535687560520418117253149823915836574528957325648597876242445114128459250362762147765375548856720447483563420379581131001357445482632295034279152214136067977290271708147789713760487036563731666326697240234590387800465402030447162573882142764042984057564644193275313386310103213677663940686851152051174926867468782294087945662601577216088551232973755935549603923295753994393151893118055062106012495354053009905654481523108024000860560564338476794361427649284331566835678572246354220192033223300209986747263933328749709718223251282551561112026967924804384144365773268560594352007512183961246473366522966706458185099192383202630020748822262134397631582204917577265748167932242188509800522638495253828122415064899342220787742168237517715381715911568510079620026797196190749587961240741481490186444666043044101213211488868007543438278707356444675113633634365902726113987889672396476074746081069948255880221194266445697848261671929334620437651206035273289666221676419981184900627679569390457204355417993897447395979595330406846945818898740519607756572351773760085265280541218937852225002095480108564971756798100584314633178656211438345964025501597179407178184039398945559392948320059594952626945677216909080919062052760525136525494505564150458693547722936322175357199757505436178524278124048262276676692951275707185331599025569800951866219150562860745138571860653209353070612513561244646533134334968002827112019914060753829861501991371629615240517110174858364420713934550340567347273064965308657405083497072904971869177905951936354629077994937303692377316832351456746421448177684588101268005626871805286565344452859475214201154143813539207153299926617322447794749481942467883459391705725778530031945880239595842513001150172586102746463278415634073057283981165964636709818802615775281608339711440964021671015326194969983337954110634460791106239054469021144112310069287367449528545701853642037306900073696990744469611406746228672682097565521726961850753087898149684196054515702804307585118408087897320172665821369655238882736797031362847200022902784097044784771190652801798551147777500473586057511785599298368997139736306538317004863382358493328817496142997785184443960277416953814625212337636782880898499023736704758873885231935403115053466466267575605345144617965323588445631316886271496512739479094340640497429037241824916727307282374649941097559022585454414887795876357208481741301972802205172805914018059137639278760321364904300108769613816996926292292878440629096988624412909933838421552187036840767054318167311530776576113003177970835256799235547931246389288610219308159991258982581453987374308206497186544007453654799313476845159054939705800562778311804728070512021740177911109438661776537016729292893938312464456981608007796620126718522744622636718323608208343328939343340812766869120385132474801139158368650175757990692639205693302193725134260359990826095909139487898515745319344963897247913072536208577914238450908641807323483603020444743105979967894532372535068785013200280764459961710226195772122580722382079366818528968678084338875697368487452178934497688243802981321391145790249492251359213901998376299214549045025901623739150011944050023894279244406789140327137816429267584144681904631383801715793883591961886664812122308413333979638134168384348508669744002924839241480004557960025645930068336567462664936563514736446743067294266021205292886378646006945282555331645238402093856363732308750027525005919818864369205989112786904291277489325157737080037723276220301000721730191068095984415201546483207462249139098507799469076924425632645162842738500644743605850681705766042221610120296454139920573477022668054416057108053599799495915379483070401240603780818852885450861654220467166909774387773905671162050391958648631525083680886584401239606847553771966638924440477109005933778400339962409440225400374754824466016073444393498479618074824620953206136515984195457396416716738912227745929806706208765461997751077968115089476000501409542637408637009383038494997574435521006911548536532225004185075093699790404374308584418261730017328830117416052745676275840565534379262203684135157108872127501494001917210807133838032913441183632395732146212474081414274597872994435942324883263269107645994759409671305257188179574242032806901229155537964004455757427804994163973397327627341038220190421669857160567593073789850189156982264236665992079129493450779461695877541119037460830868766398359660931456146027396650743641687294408245128825642098030072888264170566343326401905940175692248305171689548129943042125639976156923988031949264965696277028710727677207012389400496659669028709709248678289489535547390125116940858191159062942760442433851341471766674795333618837707297665657313438870861113916376778056917031676801062006023599901080110442550217319348922050371270171840765381932655299433029607309065692991246599563077739622386106766271643966465695419727641048600687352972973047023700292432363532299042699366878894572730631206813072636894984960460963885002593359610670421905844959357787777808377486014662674021678081097773410332228452301496456618971840589393398992603986099952083526825060753670479299536950905843443134706354798619358281495148899040362247130761823609118360086781263563218665481543410747516356833757544020921707035192566306518331209860297625078841520577414244774792145625780978992437296633124502376477705229845509036624621790154327085889880062904891875361553402071276555462172135687851182601169606964801167484916937148002580776003934299168999217282527345037328965196519451085196556103668194346435565371415133159498342255317790087222727681138230290586388310321653242917799774227588398138868126792363764798145312621155854383025625341934279854406256209972203687198068688594763660472339292901922875400340985557523535927792493065432002923546668812664201330355813634715464876375459126494784659604077875007192143223288260001156268176128186557586358844646178786901204274603385494074046984160625594272936367879085583884430020633225730829871443119883156938343674422352996147807735073894703304360847544336164348597439725091504257629948810765356952778710844203383835303187025593943540040749855143406248489636230844862777063114219340391573371899469563093077168330020918102467762739656429373089278534636316699786888857686567008792187145441818681316133704722612684059549668415031922630346706659703424896179710834039741774545491209930726364970519640679130506667556138235037639982007732950950820790835835826855594414141643072685962617752304019142090620395779250861043105559123609893880702329264630060502175951829835003062496974557559824025017329690570550897462398779385999104258146090871391052778943053578818441053143357654175340376847947550731486646890560627490669468579347008447998312335287226715504051643204963943375209546245251802810925760396728645581861918697837558276004490514553681350180107512501150940426518199755740075472505920925234209879139550980467991514631507301181469617296395159898397840974241021683448543064531210128313790472234956067439265264103596067613471590242301402761229107997005823377577151937800806274749470559527226701862577816559946219577224978970886589506828657627282642448692058480338535407504359391724409483663298267587576386721258498429808362177770142100448928429450186624535294712386971738570518898974630007598217226246251686201947429350520210626083741251720181294142959675544996740322906966111316445693032743537168546803379813141304624697406755821414209389008558923935830682859032692453718550465592064074157744082463972684417183230420176882701166895535885492664298972840792739195439384336111544242335545678501191034398953439892128014152413873921959743202216186253010256056917725169610749429219575830057039271589863314304426316217922336471411679473199943556652467221659847638838499297230962723370265287794100365118518976682634411146399164184998829231548756173950272584562440679008300196225431982434111544331173346548326089644091886775161583044440288484467189991512457037598768925705994660331376215347952553112843028022427427265813437361166111017185493035731915787050454548092281305966024431779055738289515680304871962039722438431856874237229642587379958406380852282753424197662330728373402945090592219050076128095312522196840536381003155873073299947786689248597417066660586433972769140604657754612056812793836111132884556292074792129859520581525486997857094450964333067608049153946422379546743927537288948269207816490427936315963381635381520337740187244421217345797618664768922174843735839110342105928039466172518293773858095014546483361594257738271199394959198772423809766436694917586401378024317388579841955210125649646063501679513227332380399841033704952367086647823774683638065774249990898380721134106564575907303836638959173527229526348314741492707098363308654147836412251228582010761773278337256740180204696727670736757217149567787288813103839371997491514629996700763864801221594540900662736183614211686715313457777243604754195188348259010181703117754652338965593525350887714269445794686007315462709964024292708096169957266319084004689592756104794101425884592095972338274682778034837323169148691071203430935690263970425659672458758165611377159256590607698480802809380719098026064045233704045645500672525669656416391310680523895292900935167834174664075340110838134179125406580379639842624611352213535109251867881577812779365072744844105632328101801747902585557647060019711092309943431230622174481174419674882518235222552474844591852373389733547793018295306930637810889594008867312118508123541871384166779969349576781319663976969331491172610345812234091162777776120960499951221913079463501195814711035375384755717240699999211840158989096745692878629961675119274132380159700636229820760087715900332918495140690448524005886093198636618413963396259485469205390260115222634427037418905011596891974227840369722227869059250041941279596858187922027759426150608015063235282943478696076164945802655786102636769173838861262839865441218597532519807554914162314503549529367941885247356003090427297131542822878311786888794767410412859478123113052015607525397132735587692224480866375121495348267363676480026981513599460929243306607504497669590755616723921267768626507829681998904030817792843444510759043828724021017807482413535636516982835495786921242576640787949368454384124054689060048736351280316364952278815498998921188011524990426349537325268192862130432144891184203410978090410286810147353730592195213805506046087107891238598114143384782795174591817350944612926488646606853329012563095090425356514261065364960859060130600754537418975903159184028071541729378727953858998570413620949123985750381811642870738901084713324687348871077976982669802261307965988756698418269371175765010696482616127470301219809346663833418146715838363157165661845498008618548551026835113031233158968775981127382404000210834178902195403722843823575558686471305139584239945655249734550461424743239737161080126545179422296929570610354932160688254088190240057798653303980314697147970788269348002799347072722560886156868384868011642258585759222976392399191337309388717594477964573549276403829144504775083103490393151379890593264278213055508196893940605937275218396536356169935207146377028110664228858415727886924573814681978467330444184303439919350228219414164069425552040909015790542383344118117276759430478790371172644315045641605527223806080752224851978239417602455818045200347908572656537536288524323446064847598109495968005197697035773661051367068515791393453525642981529739732126564402273279567088929184253529030487298800813869702573130631199577940654643953690857540974015953749602335915638582567180749120293325408065220792161897098556852050539441488550568929718398963351409068537298381159859390798220817070293428145434144767061008257071619228555533213318291663287682051810637603835460738501338168644879395558552069158290340482744824486283756298727762042183115314378690719977704667522652737834377611796197063364570911621138469961136793691000014648986444054754901982233941058254765222803136561419444456143049080424941156009764589716498865423700245051067229578207373898305893450642171767952818396117755782451095370313119738822376992253478629175148863992375599980479737508554643468473494167775572161390235587612058450844097943434968747023260815159623395552442712104551949501527799624831998396520890393627701009548537329102165950161549113803057560385063604482816470994755735223100570962993795596283858143505444084993246880286823834092333918559955354350272433836812534275327164159387191189749029244507780699676433343965131269297895760889074014434785099557180425517520222722050718864600217049386257040025574931126749987954788462185212279109300881359244211000138410104761005735587283876890963706793973652977350554173347407712946569452624245290052054416840010768277719549499078680403657203995958912404318871699864975072012202843134295667280574368673563389449379693807591028965013860738325361172570499346883107957780966545128298666645116067279208892505914961380605458620249744724915688128869287101666837529549643151089816153698092400813551297172034681040616629572329917133140139438867300419830277374856392282370520283608031991887864311217542895396476761395658705707387938413458800479950476498860380210204284416973199357964303106476957402647319900022451160970445388282735044978961284108113697648941403737942852631644955821675144821776720627981232650753675958071499413992455817787673880655002622843669698704303455540948477105676262614725330753277172863982028480046101249600768471513817698410217605160961400300515920791134941730968326832776736897287896606570414700646408695620147905835603236315488617492944638851515394367405454913868139254280663257303138588385038700438252700955641815220103935867648492646630160471219685000507449306639451595239603897759233524539380118488566622481496714292233489075817100464088368236744031051452533219569896794250965491072800340339205152436835665755680196021561620931035263169097356194944208864838195122402032757880783164515568636356063760368410773519269487476187388685422961826601042391759756431971370402699561884231977605231035993473863295122197562720569015641889743015758832055063904621542276654428255041814478680802344088104009398660395109348066940423960120102593382865949933697825254263356797949157103684187250750416348482822839071165838860901015175602160561471076920124910945314054856274793508700992256675171692452211794172667069668468628179349685864820706180847220799842260120748886454026261575592534696336982777942232980063361072840676059172571258274602620146424034240191227416120117527705775177682299532139984999200494559475963249385438705395715040405391334396054414383598748803370334706007659439567553127504297924192644705753346093978156350114897071221298435042645462642477730978066313854460597902852698104116373028128658870273200155585543419332070423762353222414874843863039416990483131155689843285006568454414253710766507841590546946963889764573442566011322824183309133972670187962984227414947115649909262703261406390023517767064378985037177433841167868053744592525411985199478541567635493742140045707255205854019778290746849974962785260808717538733931183259883843271668839160027464035832359359594503309026185536265518358944437105484618829083841067384940401676574121474929827483850026300485556922133238660195156780720786920441863249196692164442012878435213564522008442549104356082722459959369205193695631685730020980120626619810468548527505676015646759352306552170465803451760873358492111907361257174725542214101542714736888276046092338384159613636548112420144444531602955493602668480401124995256698026479084060739989682958482053518012669934182052238141883613243141188284481823001460795049091791266399132660577378587703507003420715606808992198898038390961972167634116099850520906528429357479030700327845059991352273963237812537711249893302847836066097361409635792005474725610108587189577748877187343121834334791038669127728949007313006485093049369364477965214323771896885144718185169913447951570330254224718384634999855931105189523368427535882800471931913275409114089635407058307415038615906269732948180778965279375401685569909373395907068662449974678828191860683214068797344522320209933366839977767496024884714285069306581986790260802056590305839484397552761213448190227241165603330438534216140008388613681312223902760461868978577116470281756284944857631132245990298748684736657540732844638540087543662614140883016493693517310448792595328647039374311141491064622592106230794104701045938775461276811088048315278522317638915373218238157913655294026409093153257342347381315208001127518618930417590272975621504553584000808869633326029061359459375780989863229997012590405971889173194509674168762112466159585385406974554524547478894625217912847032969043127950867999827001099340711872737260760209885385385646485195787131451740810470672769057852978087380915704182584423858867537496144680345814683958122758564353617271830295713674970096455117748487452466695999233991272954909848006428880111851746997711015092111799663462391630258235832505592776524063804459134398508897938730846097315724635075056983005150294593318470216256052141176617334435514819675284137067177063217778635205824709767196280276720415612385400084220106086491899909041450172035582437393436020809192744659589558829062706652576605601471833816150084110543552523101885271322596915833536626181561623247191034376076031149353470109498878270035548435396055468701502379945752240273990122356805505809639999360605956475570969620741282119513954335652522620400701268790821453246739506314498731164870670703318227991748630687488217564965802504625586916521326073143731660578971890264411294722566394638755115057337219246935547525774190570421287988826815919553498087330458902638352021052471760977583544816704673233768895322949752979118874222679695114917728018969391947037407778539331247331854452102926148837337691926714243235523503718195177004818320177581487535603537343557445115525853186274227623452549358026640662186793104471966770895284212270274224390440309040221462908599470048694062797708712604488512738595979983608760864180438306954515801666776132401284716210889859535651729680049953377192833871435057420072378557577789525933672344804283183416350989102802356525112615817672709038701349420372613812364710373238226756376168954870383630514073054782361747488838464751615155434303927185086100632851775188820017765662449576317360369064704263786139842356521497745718342197007832569948139709435174440604528715945571726159552662768257547982673740119204934122578401505310080525591302053133563451372654066844464209616090010175670067297387974447378439464382965517974666349874890441048325756451392527465206814678867402384219635267313856111270432618212277712292737947297049725764701145328373259428155796571689648667437509014463275120742524874158576076662839432406242754911251144134134414506375035513705998178250522000615777592247297460000820723898226869256666599680702437171403393993359919877638320399509247329310611597093091558974919378710593912966030936080614461088801222532382698005109134706492386117287553941264706661668445816450762693069781419664153897734448600553681175617579817633767607886796447311552975545581395684457577869998415343136093850130150870316864037044735050950213727165394991781521772489617886243278858795541871280064038990299457225374507366610761403519427119367879253967476252168238207334186112129579456799076562843560597480862600539574926608575060754158775876859862526204465210893550255608151081509273648591030001427019861753686177281281958656643133140912032266113112758047498140432135084810389078162242772811120100182484416731662076639406879312727236383653956955714273140634316346670720103049039316855755490778742988160132084843810691031414014981825826758003625825422808050298354213525003464609062913760506338811682127289008415553357583103379302563380162908096474535160718893096449210333269341050254276252892476568929447735490922952002119031574104579167932768047159655908719897891173432297108994163921247135174454562134764287917312538057205967329697538843237132285211897164771017274763421507570678384590979305973058098958255556107591423375345364331732968002012612862202745555003099601337696619210552897341883651469305252158511668317254950285032887686657125845682088290905322320708960071061045748519112565413652680999596414995839683351187852308219226081035265749989921354378490026989362445175834630608655528640255928203152529338653470713999447146399931378177466314511958906806104341069673009775629487454061555592302029154588959286594704499485604735100200784299902956515764867532676921552272951665783375956905560318892964100623301997332735814478264589545191133864839593288684014410910708769200795778406944477911119888653020815869874557546571329772535448243849921664799776274467642347807923304586539427447332983674545544415636462309400007034995693994937983946132028243083400996601604485830594745187621134579264672423676656294389432685766520248084698764785300473760110695757153833957535206460480539383621719687722970527008667190600376041395818856372524057640366552972838272724730279932404636308227764807704556397727810106784971596679559032823504358344728375631366181224765545541662962706179465290330671496275533125442745140934636432387592067730983846528336884602864339647583995789749471207298952881500258427099605376285523776439893893925140072327660436296099338872592507222755059180654608856973158090046028006052788151864262713576054960289088020889471764939230847936185239184370534360728330983914850704925773069933016823052311590908611676421822396201678951472814473487151027730561856197909095265023583788123766761011132670526404845879110740436338614545366795731682523082410769971277349452851621086138232919706555319855512863983265836456268214578793423419763948778787462691870674008176596020034847875212072897677993369450269834509810642489494901000243701077523346748807900337451266974477363019354960418463847024862898056503592827263052100436898285192158855762357093208931057919290125924035384981396362214601387936735724669924008012887209580222253265097297153149574178056137651723201769874851241012003018012973250278379997298194977688043943554660471429878711601096123696775430084570439501894283297694855777379801005542288765777895740909895220689610169119994422787777271709338575129358921804209217099717448722148634550439514386783262066410177198330538166954634589430957816861208732456126208655117596646553646924301996329448432687951614750131419097883697111081819304233853181408826471810103001711283453570607358668659405657981230742713435627569793450274266813755328897344118606773808839116340563361877867137488692226949345304680727900259867696225446915878160549433910786805416998005570486395763976573395016542722352486141736855436796452512026121322587102054258786594694334139606182163749382421479213573096469943243081419548758884378684632389237238020183221280734985030665064164774758969795182318369315937376901464983250728946744456173535144393066230832276968389171396346916326886792151684008938057834126732741131137522684576796130119500901260677887508067086704368759743474542136530079213611759151000329932518472591452804813665053331080720491129291980695247250946034853764781072056162192616888880115737130846478729534450577372951325318433586205808003437316365171579351401318265397418697148512373263033416737008512270094921537828253285070381919610273042485217347870110466072467196144678382414092081624986994716091159664143362596866139310539340193972990551679555745608665341564651085756756999669153874768044847374404388158156982190552266162129068822932513494763346420476173755592415305217060953405294766567809421530509934716341119571417017010209937541262954555436683846287560440556467166188390124110106364306462570365682499416794397896606607038841650997610860844641063915614500590330359532535386326073100446295126809112305545394748037783856581656408822854690924541453733061036262429339363423166405997427356943967683669565528219775574939975397227412252655945947361690114051465983973689113853350220914492878015000413338359368373474817364926551168693947880357528202962569085963651761768326795691994298204281199268836101580978670342078775008117439791602182727979034160724705835060085541815118929841499481538934439490844054363574362577822548828139091134592624862179002049683583245692862311836706520191565333662688361250703307499466670660432072792758899677564597679329446222941467051523250773426569189422160510092169193068471354573916828231163360418748208422973097147314561553108615172900870191622787988125467384324549638471524934743674024270109723324587227326705178828336229787776624650035314957767900023834008070535173193833365758150556687662036563150778739704371116649196162949106833932072666196079586170465984835294196994492166941091821816793085203697273867451167043808721893975387757756266449998480428347078626887094677856702830794672985487187343422687456431448693980476591777105784104173330135226099635095923592982137086943798084882629310341215565562212584601694853024617675574501277533242376376318004199371027585050402422066757681058787820361374421824249860872624677420920671454780537218698461109707133557637439448475744863929008313622425130321409531173795025452829469971867998484800534681744255559802019676477031299152465919509747587922015892774896970021578941029819739602060646138271041066439572700355339810931794060421088119759928097997347173923142150943741566726565252326833234134230103943770198015144982350770643476395309017268518532737683796105790136932147460641863344325718667489382889666391441723499756422339103266303666397288438959845322264184322222181538494262505120886932783977716672558088928038814579756462745847410823985215784575302198959934118374945381048764782871309851616415661017427997547317081035837663762682569544016239765808173869593787956704691791146640558362634187447332673367056884866380290462018065641446000649833413901232615453584517730732550710927387217866573485478068005176633622875270726981281613196202402866049285231587731822885996871346642662673125164613361441675979100985180880561003027671687501024243372241880460009427021813285910980050746858949345610947550090446013616779971049472799071805789880028036547040683873734788757889190510615375828141520373624364671234822671880599303961349644074912122960413859640040567970999150497079232812706595116405100952129953012270065010366872436552464892809890558566834917693059458137335575117799481972631058700798579916366197779641448078292605322842351799610300989656044101608016475981556269391670180715359182556047131271562210420152436611387351013801159109587504076024791100396888274368869472120053952263716742646236094100779966913749129728965576805557166820434252700753738157037967576766648643389601817707175616298015632664756313430345122763244519987010045876924508818290203964903428345333892124722833433350910722641489853547008876753500428928373025437800031297303851436446334341348347883427356891335178196402831654475177747654788892861412352769402162084435364921756764932155764228203178961499202543705058033458505023467018133786322885925583951659874009995767696195823326223065377308352715570524001854831786936814978184401340979925699556778354030796797626471934252560022738444052141344539697083643919320894649839499373185316935682412767465880821793501598145301608918288658663664371828148754259256708484832610964411065281540651956550169791699941297484887689703776114982961952569435452437471875576097050517029955239534783972411860153088949141214045510974991614939858050651504191750266769849579524094679346777557878078277601507746464385059807765948599744959091877450226670351938789632219550505954481364091513407774437034883990890186541989191521864973419566574583969298503078231168991370699706429124811045050377375561024702744042245709349264424019197133017410477814063684510005335283254152498884980132380229810455647307893589724103566812533167746743202787209639480171138758402213347966201781984237071687525624707587953957797887544302155463937438508682008232675054641585825356489682694578253148535204353299827307534539995231160769649578277938721414341725704288378931920052777945043355894732398896414274769555731068620803487373334677916200934866493759439169831218984156374112301802216693950417239666523825967188542628875817108004744657633749109785803533032188961150461000238008086889012737848413149126793639958668483925365403190051643331299036635932634599745044071071151914419586967082173260096175277931860157392665162389391477406858030967114719845154451595751541627296125442481194701583861256751315482979880161327845754469650903615251019959894453288058250684031142006846099676311599781088142223514577372161702460267285178494428504278984816923181276849150900382170344774168746284835329122077999036064358596401793746158365665470202296982748609049716295174694504037175267243941044471507948067238417594902318054006865429259102506827982980212665375561507931781656514689235573524744457974034348913434220298434197494894175119501494784339770455521027314639830531289322507567480217749284598443532636376079257978382788660471178438637715950777849997664441644243007598002328165428882787417049114210328898536317386573630499124985234783502326063080729306191411338971463361608274227413876180184858606902970832615755816270639181139528350411721638950793780831383474269271493427197316987940176916126490809037156225568564781520009203321452455195985365534074818350463204719045774876089822018432630877987087861251335690110061797746823234373922471656114225369546496554190030973577875648376249921876777471052515258282650010380965606233614305596559913353530554728246426079430357043905842642106975079023650968460572281910356958587792033661899169491222278998082481559518266705506197713423623730270046927610671887167048186506421215176773405620382332751897838613886519013533577465048405416216640777312999839706558103403322615808668076921459407829570368514751225863910830742512321231759304767726087150548772601621323185262200519158678050080333630695843639970206094368414532630208171689942303169766521373505144984713588580238095140331632109042368405562484171092309631222894025152476079773694773972970502370399462018926863156376863618707476570157325916478379383225983194705776361885354352081817210045570307313499804148539279889939730286072903046553373843622444801267452068452563821606332799248252280093803070185355233685409506314400326316416420815314071388730880792712489978931305814130921823757243816578026076358202078963129906710903553656799327302068555658726140632599364301422719108179962988693787265364755542146825625496390862653536588091852080776275574642104464743455918299539773959467902234898647997949678318680784810960749647183219636485864893644623871991769732866851882415595946444350175494115606000906837654653529007725468228804467679841973246953506857971581267662142718736094852856500259093463885753720030298330892999294226736386645631546141412953521359072036064455507112575644408551751942964830164699996512278121583536461748028736958316952712752593471284726880526965763676455004171176611978073262446446606886684268831315713930018599697908319650836003063755091513288140039810897332182853941854796080148002817450168652783524525493983974009454134101183141798448264745202302810854338612961376823467057994386090680708102731641253968055390990138251155951330156028934461536109346364355767243993526006366200884417248623657102950862350031976303935842424144180374319210238727244062847535267712331710963498462894543463386978682555689227085785805434185432450355941633033411173033458110295980270259046425646059910082205070403710068111220220173443554570015107898934871018933618232436529395106860239013900437471298493489460256026841240976748752241604517172189035435311562933081848254273839312002429085421589694434282319333526514973238490212561207443582324350193023540944403818892927788340606154964222872396128961936157067969088367097456249301492318806136111113292745057063455104582765618786316638497957694095851242232564945252979308356857575555941067871178786412379594705855049038427174081038695447957852725791626084824203782200049715959873778794341169690520089202576858951337642969318593475631971474780303411991814851792520999276515446766433735141624556205319951740571271599723827639455438134982379084745403689236517334663281274811128888982394511009956772297300908363231731669995485933319815371518373974886642825468255729653906389250102733735684634592567373150845678317620882374321843717411997978948604385487450446657793428329988309337726104198200877772676571616477779950788993243274205625711046841065388120000661394724756566648634310556597000971724933386539308998879116373540692957041084018914253382467091210197047839459587083754054730186936940653684198036317078001269343880992046804497784010082382547077937325092736964189213963675302573000459685593037189761751525806523262943064009396200919617792697935005561513344490200626030521231985558344022808822328700386428006113934977658347423140116848416329017935673892178858021532071656733106926719265268172200168821378494502772572337620610695194708222554581290458309414793293820210184383624221044917293536074187845433210148670527046989827546830985638780903625931834732975021249830917843887258217811147149777327604313492752872186128689217805663752413159608289974234628207572838952660128868889301316693513827707082634279031528044675390867890507391240447073067010166871413509132904099313532867684053802388633659704754845204259991045142406915410078611462445140053506556666601711434630502377565301519696192836400689234268895412224791138872671750542842665433229470238198708777025941284510180923515714603249633969904382372691862947701908253045103095346433624430252525952895813063331262696831788550053915042815615667244240474507291658091867658022714889783004203169769932626680920515533819825595243010997427148800814317696899188745345712821822900300246120212066685388444897449789003052709161591057868380511405160066039745990658172528906531473862169303226593160949929695626602760445279230233130249549941121294679104077475826210068150255481374910183282083165242991668633189287397301473112469659595807419796411922935989334075192643045157314954893418437878199564576751024372468523578270071681049048358298233242065648488189277422714800296555168934186350479758114121582856961913808324288757067363576914101894164285191422542492608751181085299632991814649155553599844482704502620049284441406303979549255791542424751274932027727583336623013563344856619765066926681381199276038856966897971089127894955593248262929892006472090964268948496032115589303018684419235640885806133980798909830286875483463278813862837014546018702463066313235360613253468056215231252917867372827408480565401501990129275691497805519597828884392094317396815547666722253947543549607439245026277936786777795588013294565249455743309053761122237507315934675327244771509715113182009100108933247486832491476129680164969946465207127430728585442254682697566117186304610553263810298697333675955570212607482428644269305014962140724790579299300250488108591150783460470757132529815248142176951375813224402250340451392076962023418760979560583803312624115224716412576232651163261392116760153994211517768081505846875016744269296592929421188742353819478854306102874732890006139995029399328350525721017620153474218404820423844615746194571305829434662892159940996464427558942525042898573780016564311650796736992613373157648335184999053525794801990688902112557017396212533560686661166184041274619244220528393067716272564780827976588384775973838054826722033315364672935207820005333055549426904580349411029915200452754931122720917284779256703339167066168773811885803251733115727274642248743567760367318981130546114075712976038771377588699971988658955236710626194484043221894134229833188290832687292815188107337042548043908673147233955310417216944064051868733367885292786641827235098167293907142988630999250704108278920069305420746098516128121897702161478604284969737617736283134319622352147424112783372967233380402411557545631263673266997300526610234258942485098938052463946173583963881322837329152558832178250621591676779997833343717005432246463544171106734019308956394798523855762951831555674448210605304897404024948131297469564966884449441534662615538968078599246939403943502435435021735198156912018804027057437809977372547783608341165082073873154896064655298474440936361459084201058850033406889544085108177262758415752986242346709092049690524717761916847987838119943530922664780051372622937354322090487622520405650507982655000044375592789483514880114101657245424494891173871378277706642193176159969623414938707141554526689750846468865149606942985608898718981188052865882030938098377159899006155430396980663062651669757240897741262519456381254287615787804380254897714590939538694716396084762168178664078368826543125140766863421035202025834744519407095365908467513058601057759780597927912256337776089238502185022654381126716893750243068942973201820888852682492002702515595580147880170147060185970457382036154359370201723954310839978473679535043100796691063383203191011276303534928782504190026053073553232981798159115756236948194196912862097838302966707226746921356603417069383841786999840986845543604459176145433417333821750981330740840375693831246216120329208525140766911707973235901334563829473272331758856560387809007486761772972403496772186612568587422999881810464874423193780843189997359955944547761812292106504403458160607250946545220926413217468322813268935909949392311336050427367114706719524409912600125205408470874527189538130512122923569393775485283289149145562870184459971643129161891419068638671141264925634271470605146835490584655287939076452219984738240071743107680157843640262550938860736018439119776161675853550482005463694695963500472375302511350440697069251891496528094450793277763338882465311274354523372741069082805985297983979264846957288467531106443232077293840812742608539626609235377876206855491622963031854678894039916431210902129086635386509572270751092685746415417544498973684849352698516217808486039540757099474699213367572855527733324174066230085958289329028986589224440798295405250140194471619197309597116663775648874747162237350898301237732192670193231810936355346612802323585085353190695075343330339854890496762985404032951977491133706358438644469652894188877151385826610759573792856780140707753075409147181388641507191891089185171629285634923572479262794302459912625882013446462565621084768650675799040342512449438736415343993139808496980811950184652520703445439170286114355600516695231597135121544111589972518652301116370281418122435194819081887325496430281556861896033358730845586889404300322205162348902746894969905724680031100551252739617835299215634477402828678930211275163434515463520285711624770928420474066013952986905863686617361031423480814990804094369797022684072241458570632563566274342916010288850268639172506622393245115983878495028655727920571308333840706448957747176881763264579362204974169742822004470204179661840616919087688858699440422397041054426730069338131866565528181708775689857608028363038692966635054665682339460758942952150338285484400710904621130095608294906372783512459196493022111004239626776874453377957923864490938695678018435761774813270642494492212815831512032622053818092627074528200006617573986903345092134437381893740610571550895364426829705711989191704424104423677281615697046597742423111138943457135369147513515310878214205557603077516108480519600554415857793342708272038136739078999567796815674169311492001107655224450439918555740320482621754116275802567011487917604724053525912765745218412180262553506174232520007367609360219678239901020144007501800311840009696668605875441240759342110972702476637506374072860463306168655717540452103659838704349249041497077124992482296875298912387737514295444916882913649317876716538998308747317116880180454884598531869148997250338226606398711926087983559093062260578239490916664139668674270846754754675834202145925475375263013308632150973216983341918163931216461810003975325500546069258581341316306104383687512437025118435576788806471038242135929037180922221453807594625042929395420578809004727153928735186998665837552752875467671657506239319246164012802569417727424345066205745398825940312719522152038678340994999037863594430990132113852350374025393610349959013875655868279815116551420352986723924352188750748438344293346374084592535341120386449452772529530282645018056852691000590894448589253278517872790888436015082678725172010890957992673387325478441372414580996511513768187302345066564848893465735192585981920350598538896659147822618571686868655226916821074849284763310156222118061946605299976018877557456925668264161506090174859356494664856321369400902176207987059353171449665423302145309663935874988852001120297764492945780860643852466115990362817220387160611734886197562657013228572591474116005707224563236203453915916495857312917050626658320118541526252484535191548872366538221500335183884901339921630122509802266439563632014067072802004928293091281795818745724909103596147767089272266589469760095484473830280158812061901727509356981773985368496452073319255599327146944205899850986728978263373660962893690051478195261648020181055664388954014822029695568885861593698517449503780387145891562275870136518093330218145427098970039741027103699818276311864788206895110788631649545124006975283549618860971391025845126787859832207177909421713906867758293632412055406935274061793484684803355706785230994099807967439601177997822387766513485970538375568814844992633806209963401145865702738136480398182208502030399997872705687754684820338780286334001797445194013878517856509831843945114342055609487144424965043281266824981746176308834655839950825511172845994032274047464809601422957421773223389673948146032014611874294426093912983330780855883776013281512673455368098842558526023740399819809649278250483257004969590098744371578438697402243613735216733710758930949633118792431456212513849175404230464488381189007911566993393556804236185017143225885887727615864586857053976096679020887266581327051217904902702684013942875115626567464184045446467558411280338545859130728050602880444991954533241258195700541601013088784044454174474525784551273344623456182572804264680181549422585000929803067090997411022790779613057900806289152384638269962367117589556482243590311447693629169041103813918303494980240400782896344754689683605037510786764517344968162923179891447699420131177108983493966685840187907676446350334066297940447198703486943946371545513134683153479074693938146334002267837557087735802167030304556748688783384552298411824676954729118718536347740033736776251468833571965555489803515825919354657211214390638598403454931138689752884700086895648104742855835260574299656172703650089647433856951357932744745936781157233769634782747297383735795797788217322244050263966186589961269732307423907969895703707351246027144686343184078678781648007897323688946521202693885905152220556164063217480586889856817240139805450351388306735489006953926347574301289721106309259594738114663361479889033891441442470822477420828399314645298760483700901467845405215686571567824929460648090333755375331961452425228638354290500254116085211630927803486488497470416487248652922258327782465146662239116481611834178290125457209407153724108718015387572439361792840041750740582442322553461013710830164727929687119315371888291500218092092113170964815498527914808301960127979434786915471572128886161293749181925297027586645434116125363913361483267867303248623324089058489655258523618302401520623351984791156959828046134810792039244841561923171468120433654652296902364442373665990584998542207382445084211693363843337735631723968117919563097107471923497899985827061591600276792250712876018848745508167251633284985931880084640028913576499433077970915170510035713771293961680989405486872872022140952058008417638541137928107934766754907007300557333594057941086170517630105585622067936792317145117327975026997229459190239666033958781584123368535043615520353221432077429009677178437563358803953726264724827985202162053935003940233242061982043581956337351368494216808449928534013370525917706567251487965964314644698105057133626388046963315056133824807049545864331600641593833713039056052348613013056333693243281878066471594415102125996282940597173878540437113348060150711096461337205461324312201121695263436644794443970787910959487200278782081059273928634207214175435981270734940354578425087366714675693012687778241907209221900520919030125218412447024737920858725514171633608262970599532664368488878773030569321075141669295553842949669074120684812833210677289037625807407824308238538103901362093413019562385321317888906239347849555814271530195428353171733642291629668026526146728750131460996747180669930882048912805137513982184398628461312862029124937288041942380876684680792967675720163338662936095299444541424096127482176062100300892515692838749712204401453846320773416734335735426703851343943023430206165097746251904976261748115523607091072622798920445950935850305819605737309069168654874952034113334604000799200993039850239428516270445482218171438195104571676188559035858407410082071685961165447011597059541269966409161655734462231543446878255464507236536880914103680314955969563469638953191577085464163532885897183277949465487186028495935174790554594440859586023098518273019692895244770797174830573653182603991204131170538010399140618232222284894033041919583026682163512707622419414974376350850092189840365002231831734815404013651769516143328030963843204240666708455575001470866702579137663384037760323595716194748534184858494650019330270753654074290689871915277529797991666869755248632136340664304330672174316536952193427485240672560286671034280197437177955024282264649032151128122690680572710084498299856450291010759422086122793481921527270014621669853236190616242204476182125533070833262779896926830339823287065871476528333019125720787710745192566516826764682330746383135153712975443629169689171203379428696194687290930590496755820617922377840245724483428747388835429339233104034818826664185297626173206623760976818400607378403093002621226592511438261987068061430901854366159449138946090785088619227880203506100565807611251859388086390216246287586443901179497493567774885946160282621027253597881036487060357911886287537717461360498986203283965239679125555347808558539648899744199176355467016212498040189320413349623087763034408107877954216044744976279784971301813645426364609801046064984650476649550330283077544681115460230326315672276193655547656481284638936480975609603241503886314759738740016899467019051573182557259072120704087822016797201271669697925819904375789261813596498513255550310090437201541368099356779696969180817865376206741118037112321863558475233049842456845799008848682904358805796979946741357663575040322615848429700607307647865578431333622339954248190900169566557884972763286013737503535702127169825226890930988544945269497721579607299487901333226479809596109138024199275838746920311784871126813946094655990180953469480290511785393275996096780732749844788076124201028105521264733439658509646104551737401576722175162462633866056325111101444655149319512716788284422500378203779435259196437820023253375460518977199108661525911476620395008315778226614006628127017566407278260354444465500159929444104422578361266026177159021280154949847630787983614650272892125560958005165732302202188209704654577005655267371875126761994663031923861879892887773345925676071780674129669651204392464695303779804623807891467273892227899329157299406896103019112808799806793981982831080217367933725741723162607295721110598731659091110575443530669615841280851217468333848433810002756470517820228944553413617733649816890129796886753548246399006450924673134190768884742093441843306623841135156062704564407927109173127270619498096843272571997125942505279647698735952627057181609820440655622852259800789122306958364733870679481935909571281602101889626279304387762340053033272326257973616683819724212664751470781886106931592330911391605037042546572426022925364516149687113954057154100238145967081824036788740765985464101849518708460885216726371209979448464892053113378693749863882472313854912290112322984671325622459024046095575097727365509487805513979740226782710271844532806977330148073431739115576262486349538835120725127433848047176714423808749094814101585982835188283608492831868103457050694479414875144834010718140238971864574974063261700304268409446687412101414333083697735278883649393809656766820062357891931428461460579796572890237833119789988446105786427797896514416461983744581956331215345770870060891250961246262453758162740553941927132265870810248979094460097657118420915165075610537248688878476514105469151081016643304574470075764947505384426073900143118123308504823503190610446811199800573630625242600750937188737704736640198523430296441635568256531420501030455540948763319684118276153806382389394575146554413494353089046506653368537876455714867251647166814942464266054110993073950566926111203939450393763856600916958195534143090985629308420319732907696885319341600644369462662944102350381305118303482270644924076168406526851213855664884972168704547584703615574726452988429096093445602641000711835717626724088467918974578922888566725286711597296259139688368048645590940932134081466452949421049308105306332215717251238771131335503857177840074766729617987551626541389802389564272112011338568728052558200077870181072120011194162985793494787560368292533878198358047816733124065576352520002668721874172997168931706432719433975135677252497343248445760345846758421929435347391924505287847298235980698413036488193371052473303637842213660502398735567992042457676304526304976902407692172298896378310358652561142312407467548511477988811047214901329294147990720739115242194074865556337440653352985280656266750022666563070305251716761347335196025816366699345633620432139532970909626059550587280498822405409704321804046355278972037322544361922802160735080133119249725025019278109200222270505865370626919234818937246964872378121160018988781296126364812695557562845027805750041032370007051363550863446629086167548197674974975233522082022588281899744412768730281108948341743274750126613284241920732745580170309540223291203176169352831848959966212449949883405700863494392053156489065391588029151167825048553457642538781192764381330882115147676845193357591562604136338392018283420452511252415077529702102304938880824344855977599108376698735792256311265093335671713745607788569012642740422806723795755329335578372449595551644613857549148948771893969271721634372682516855158502988406433217601041392785994618156465917734457725386299401849418179305045819235829984609608905221965562797573948218437690954407261581327597290319767537205746012474063481089758125724244592691362249491903910630944009345081670050317065891036931724634130436491508500374208511658625894898819659137543356523331935258187800371277174745436192803084755792352156977924269960865358050808497731387795106326666854835188506836486209259188025537109882073251442328683714878922615533016880679503439972374020215394429257612154144779534077136024739017804895737888341718632146128466096555640394537568211782793230117611774351246370088059215553422803402422835252995314088858484870097345706149992625450010609133166220132102721470137354953025715258102923163215737698063626778076661322475838632240922873309418800191897731437176818896446254436381700598357905543823504055194289869253952680480528106917275387814989923790152393635815155956089679504683116200607431996522080509941317716852422129666846550955941707124794183133088132402890879097177720785308021689324665453439472616604065880680820231572132725042572629734664173516669625834136948228132117915418544927408563190952467948843853425686574997154228537039716373259560412684131602699829932713715955090302731567909921431680586260270935300092802801818178207133857198979359063675251968538768385035930828627657665521203666965769928320212267272309991421628331738877311169818137439915569703635840678475008151104969896696365330114842191737762213891482916213206957791441313002520728100696216273637234512142827607257205098185501249297268643729642824245659501739815930584767171897363141390404165406358602228068440552764221803471012364973424835451165951780185741686690628515816567688094811263375369857241611555458214946137090294801660585692106769429667324939972577316897856225017393400216463126483557146837967140655981014703565857640089790932849856440479821521829622620350886959606800564150007078964094863933561214519828036361582863090926196831704193430250520693812867325798692467406298725183028400491133377980725742056645538487531729827646871805037831282477545550577864764768970838494123542376429363026230036430258897732828837589985777376221787565141726174603711820612382122490538762692306121745146653388565704289517221749853505297491263039105069296918439342908835939180299366139557479127387391733406502317234352727782286515946445617032698463275362047195864045465119652845360460360414624469374942579750918875047970427260686448475761473225277156625605848006331898869776523744388098054180764587209485438371961464487406284867681402539237318277940810850487254455692944433381654679491123494305416566851897360672389690309777667076451140825389368043382049297546675123638185897961657490708227781986063325900248864811977254064200800347730727592171178991177997349894215775363936576718927608460077689093311233567506805579168528619778583587001511857862047496118354117245387425066766212468188517656686158675514338268682022754398151129067416022852442110280843828273554456289172397696043234103447791215301153074050710147589829546030153321419499374928249299476367682840607521094837173905529553810890914609678241696417959954943156729940138298320091501562627294951521819379900404005463426136960655381561824058322391512702670750004142371911079369363304446298052419851990649655004729113875014684471210810589683060406603206190695937995719314086329004677975068405345190438394443135431211654881556503071363631240017331166400763175854360318693248717309266375944967308753641186849739251146732978742685253270724126163697112826143151894410619458348461129452754353216894812713387105633795061839767340146421991234630469850591620430735200670208561886205433715064732992444125724397017778823613074673371244762306243157711651777939491821735535150286918415640231488716413942168231912270599485127215380876260390412293301066804117013122836154701108541483037761435669363433987495034237567372630683030642717748542554055813984778267393311826516531447203414968064533092491650461427391349496365829780824317053997155282728198656685834291278958495900927172635090246609281632005926313342423435843504668868084140534080935991749607343029449675693161753119768580867953389070533040972484587248183766158586446209712241546967963914841056122745269572613313504285227671899471012945602392003366584747680805590655561678188606080985077296699933663388966337183557142841919604910681650093627846478116210152279492817662143795927749123620311796046100073906238154647435404558334415305400236364794005606885887278545313971466377218260620240378821378851585668401907490299378118471394609625982534608297289223090123303388797892206531104053334277005756525176262098887127704855296646141175755322436281389190450407179162158496257756970757560258502209642113646975387682753246650592107240424832095881608153185059725563529011217953886522157115451789704594953121395369054801283657450714853977498289504543494269923751284169379403447199699889018655165767045765821308800689329120881483009442416913817654416669652616550587278749605040176204437336235338640022090123319623772228690601958676824524641265358741117784113504489348178023962639478591683010571986592836109316429751766192346227024845907397265914008111596656446950031993766902268402329300414781664801586107801182314060390198148864424395091059912867747893280908880824356785971746151744189804378699205216198080079248531302427700900117628073802761964516260856570979606582195447996623097371038201588978605929901859194630038898642033887079538770862791781891424203873457181526029156559555216637207166861337931608520167773670776137895293180733300169008209455757125805790489780748651565158071823594392450937704193935202256050726305636208623199244020247223457965226710661318041765048595973215540366989828366400933273655877508404266719227916631140706828408078265344936162046867868824221748232995872230496436300459103537882839465845096358764013200898363093745771321260492466700331602517711663381220573293924113412962330462329043811262040042614138468927478343165839319503279320225898708879235170129445162116838539635235076892544970354347117840349458032899351464629145512145113806170187308419704355493311301818573414608732997182265640459277170322418321613771975936513807868246753791135700293979236741415343622591107148902379607200020960717670854855294009996322062051803360789964393752258645646135326290648310347220402591330135303747718841292718527171657088683254982461585254003905906677652410422551537885767774926415527181450447427475772290383308433338150231961538841476228881571076592884744314021550633764464229929004709541428536493445256327131893168737415180542384421317409997701736640503566262948665792979218030113207126904215358107020452441764277710046121242943662358863080259149032616962854818248134392263353594033733248013137096845219626924570373346186634811666560678004631108705694114665965923942463349332235336339203203923456438061909272765282107606880420337485965684477187458597036859094190333973877142315640873507872053692971642555471579342809816032506153302031544110820079339646227858473525145767987365375952350264048086240504322380535575827948950932247207724671907549265719991924341264563126203202127332584825432246481453683101821115734940352206090809536454171420987823930897702818209707681691127966297206591040518278585457980754933629729268191183884229845670123074274214971056630218645974744672587293803081443544031694884725602007853878482251911430281269574389379305227004187413437080162810642541136219776381358396204731318135554440200231809520280595595494154683422216519690058434789066473989387402789545812786296939324360457512422187090881209170084491271211691320820269944769356250120638873616116318060326835413582754638977511401158257714425673870006739052677556115297002330947749929846924850714210846179088655976418044449416935518303074702242448718987063442735988551772094543562746260838461618231104990164541595630146353988220758402257032506040484168900512970620265932517373721034988289252893719977620529026145058207608336809371774722765545187641459246961250889688544937347104841618470869960265633172163002934715305241537673211976463775845754181135594004549877890457576281975444168086624832878706221762921677733001426516113506281124035766221418980936772463472125787466255557503275166188647430097573491445890591190236462061564202005408560688258673867328102226350125027522019133619060293309546739475962773961405972947515507827970268944972318745385112536379091925673404391555911314888908024160548344640746211879360145775821319703445957526672217622748188598971107621886847573534215175801636559437845368894612736140022562225004453560854029900191654712222836352649658787252355910493398871439429661301796571829463797100904394704095315279623798753876410903354087372298352264042268012859560646089139978054940882706963756953725454427900248791723422861715915084267137941015604802725496039066187513527958670858609798679146789086617593633738718947077966802653363523538977465193875193412616244670657764578455734992563338510209294263088074597302497949421530476702736898690162182680912573492878994368446936859421149950913189192294030017229322686660434779664305239190276942611899660191142798511064158526834692979702915301480217851118780927302156728575601217683575990916550955830975544141937541572320980968110945040736785795022217911931364882810521869702747322021853270447491349887737725026153727419193669492811770847468185424286852999081587762187495523415537649895032605034967331521701867097495377727666048176434909694691671083912446724880332729956203023285776873729767522859946367561581966474779655093397759017207091033200839931594457132898353549203439291270496741283776087842286725262174921730176858892821896410547239520440669115372447046127044689707645036802497049741961896174129199774886861392069690607480416749853191184569485279854627976501367676995516546592232743589364943570031197644274146823643313150435515838684327795841735800312300022484764289229722844960347177737758756106550218837913404519690313882188627169251135507791607018797251979630037522781691237406300706190053247457827348894607856997830013663850208998344189210973854640170131592088863312041093900195719939843506225921934929144406829711354529979441378568750195563725437845089452759564789983409216855269804687822426172897076792178511997547957390930328008520852495063113967605437564104348401547840550365944926824224933848897423059576063113499815278235138476921183479941818769169095052430155884165747291027311510922125282939248303049245656079950095979927573712962980977007049426982369515982544484400036758658859545742759416098044798045531674945671781408185769859101196210984780942489718231283916384877539965631771835284281188559101520270664270171570848271871320259981496698145633537268237440343774534102141853993860861000194445753562888636605802685264013384928404966199942295364222648442057046735043465407097465658144522375436565047903405652176071122696786225665735868302438181186806805748465477561582298555216588696211883778615604232683930686279880039998647480372524331211723570895266802138443746048562082107882691812049120016276232837257173829274028332474968982358659563513504394035157514450884499125726903249521146792708252910838216450024694310968451333259483212111511141679933226550450531633281325329353119962629666121723504444669447318861052585421239372869327257166262601967583108647137131875696496750300163152854673386521903198662892633802451048749721692989108857822792503086104514559744176594994746806843318156984550975373949776388890232147892338390119371505569637849760372958317234010919501496514450995558175550094017982553530769144710246489316400876036631299613969132444652429143472248017431661459647641602524043910739936566004198730828613502146085672578632593291281567329448774447921161819581122680274570265793469787603581340285379649018351885502625290499829619361692276833145001296560087765590270618398644936511526456380393999936054476556743156233860429946370112755778712529807812389630760552304722986746677348237180059640735182318237559120505869612116012527600022018508261981655470535283196781540880071205240917515549680977199759321859736082534454075882018092849959073557535595840865358193555753332690922385601982704718702443370414236433674484849964531010670834106076447651476607564359052082376611831582988963189103524972823734865939288695250144180941216016822128987607275588207029552359885953105929577160644720669962971125338446620414627097635456055448741743836200408390726655762697010989032070419729089858299965121815590323215954667551699798461482076437665865021905456809047463612250131800290406502052095691164000212034890245701070493546544374063727608490236936444934280322977650171079518553737294582311866881565338619846933800105801424758998600632535564486977143905623172616779984035254430270496927752038506927191009936230573982340463100168635035750499892493615015116516909457575529012638746415722467875923222523273213753246443607953757771338002232702946961052568914434721762739630845710441283420192629923493463248546685790669385520742482275036003029727835003758794967766415453806864994652122135534354656498026678356500285235250562419806470441051929227390158322669854815627569405310349428329727137098195676970397758518337766821168758850127499607917561913530639337312007159635620229966067990924346635635259362869003340927148065334737985968847308265822085219140180840435976352243616371192045154194307231707222882926137694628686067111772273232382351801431695630013823883290219834531580186350158567396950621637056642065282054210417330893920400019865074895721999960528469057208687632348416395997434991066288994404953566472787819832592809609247085568976225793249769100054134231347469487819062325082589044595834518656270369573381572484293213197789604573918386065156024955810182961205167111762694924716880211352129731671094486006089033798406475735616056092503021140547842719055327807697689236324923583917046357762151162988478796518561177292890538843011013818466873629650729606695554414639516116876174213294849708351095267447465198450200854998377469836879836773473570098871570482271513586083032810541395091779148882993537929545162588913052141748077866150078977247356355572940299628844072328434933376171112594575106542006437710850866368523146086482718575367218805157713668435247466663147902646529158578180451154034391771238651196838470683482867228449324806491801615793678950383054436068818147568331818105155807853258413649267053078646131339413070634285716626803851672431567813916490119575475426044602488691511918205827747957127384448860423147717082237174735411021280307388763856492459320527615159620825541118577893358393803229050746219394092114067429467993107485500511376754487189257407772217886338634251053153620862339339908059314287238029402166163793072489256680256370197545476326500869104821637039014263527313237396100297890035784916346109560723166335690568248669283514673901744398923900736419098546688590912314861940609444283416887553404901812334278367807564644512820668000130043023647206079514923872673404706457609956970617917907568524402738605146717768982425659048141198392310673708645644728272292858711354480877691608403592689821907476038400800299435440650827465168689784400960107611677005594292370832883830761734166927923278234830890018561185748697286662225341031675859518028628930946881826488783526900043146531362062118050739631592796773953703974047028432883482565592050275088214026430383095559866648543739147540193214078084486468648509088518926258714890584013109748081123767486262210684275148356876690351302171438737874578889089641572854289455204875348724443691450627525439515998456140732875927202043741904075095175007620191939322452498362710457852256534591428043162296152595046631523080761755925128328225140716159267357488215322470686281267106007851285094811069198133282831981391349564324931707159749906935386078131861272878758145360950067063499852907862889723088881586407101760232009940799922397154689430669917634603206085897914767889183163047241746845266707493928154345485413682329088365984004117610852179126523967967268261831736204714185816222754508312975630106805781047282179632456717456735794381475487431996676749468043496529553538291339730380032561132709810034843605207399430248019236507204531314310432224393170154492922302070965555479609276364961780435597647179233009317246456148235751888646001503906091890809445500313350342010445153082289275782557826620925564051952497345665437300664057857932221195023151636424323911891843747315577036121508606686231168074660855789167311419104223665525117648727959024116340629130203586723311565476851061405227257703747274501704733712233157144897407427316056234885914591467796095109761067249854424367397058050259844432180479459097555897246823523896434523193823315261023044762620969660235934590680065425572463364588998859160057659028344574179571101939510554083249545181087239161790093778893244726533010986308690486374951536729907014432570275588924819569773637407372831963243636256612720009074833955477051181770208603209003007835859437939669018777013667738420133029978021489228341273737610805039571714234054698120454336398815542645726438576254458253137361929076500093030894001314354331406594567327589592948310885950402729026884594575333307265633821363039278072416457983216351725575052057067406914492425803499091480892733743906812902237012719826439081434237772159563744057216454676535350252716886768429058118074394075023522755900557911895120301840972723891780713963877016386154657998912449751121085450254868978202653061258002371443621154672188232645049234566076227686180284518712958091151007957108373322882752088745399158341841292835159018254551886762958062975223805035144957219596179885673810395074562693018853376620749353170309259236506861305524241889565852096206286279999435800544498728726669338455625078526995732963320458599219308382460495812920523197418088680730651204486389893008795181046361194791913457828065497419632663979436732494896344371023600939079901822990403242583654360736043126337087508425539499814332548541818102203573486913561515109260030819699661867321948893063771189143027639736310353114774977562047514159103707681354594394162995248004564060608309282301987463386302291287711676656312923959937542679651428498432946851549860521143219755881436612929919059571622130283019310853202977155846838400584636617773979858509337655807409347211476203178901774742147346250710142372128939801890705625248894398999484620232889178418584385949091822679802692378196222831978692951450946126046820758846496513755737185507961310584448945168039681617830522684707578910383221631254397205570829251371822723026751020973896172520607872247399091095291818164176686431170460695919078930765158095171466235309535330276919901310156737970463298435926143817530958085104926951746133447280759055857447910779260894714400829735696338521837312973149189185106524908734453271141249432518375516399741148345024757857699912035337776961706231706879483133320600889293959126265029155374847744177075696080628085158854789624810505319405489457431840948333296718307380118973655572024304669344289525773092433036521255619369554525937214913482120416006450288296009258184548043841952464450889044923903775709915565018155944151476952314900041030784824944728794379313342192372286864708363928654336265730454943960700093615732739701785127564728231600504724313735678395917186864291179646180363819684197939344287690672522953531689803550428458353865205703375090965447326245765572138727593286984006277754156478964342822065736194363583252406295442513950221428064555804706721308218342916049821716189575553789696796512235030536852208254069090058652571054705865803044856855710582739296671941825799993188130321895382706343720154705592239285699934047712700810763313934374372037111062604707757842153250136389838097686339978664625736682684142039625952990151343277268511622829059361843426899758256950349917788118509614225419135517186175030581252948799333504515584215017950473052525130730227632222619427160719636602376079973034008284441617201845372404877606804461063797559880389947674492332550838699578616533360636394368457768360649061317934962023912944819605203901109342040853133514982516013954868419386760933830471634035240550146645808163120989813584733594590854350965989893048689610135784353014113613230100318998977902154602423528564459452344777394756585362289710710817368918874756748685195265968693073044820002827032325624527132549713683645647786735043099795813094105915483541995149242357783500704528989092117355562481921469070464024363594465131285077821350846735574588446334641723895542681414221308229574961187420220058873797953271984756119401046564042014981279988725323813768809376906296066071826578331453770448762938318095145462273247769523840588531401152498899668153125400938478482599134285143353671562469387056633260221782561277335818798067556557052110418416398129077347204387619739792384082811001926540600074537128389043931796766175601750813731160325335943288514456412188641046451455293414308402986349986862465778361593488509994922495678263871005143460093547100095011860410172305773809637162203952026337613358899769203088988307814269325774930669957954962777370205063745152379398986118749462863590606823224384629130598848776831548254032034906006904790641685469072047399861071982849351656882511593037378375553681461734700886466289490375459561094204728866900735273325215264660532217567337802778360869207816282608422410868068350406246929773972763827958455805369189947542200145754659576416398336795129130141372676305021172661040699012030362026707355079209073280875346540054093697871860369786470541660261448278434895562472055351157831995733917645925901987167850253634096375022073762129038449183436082254129837712777909831059555740838584650659708858061641391800586537762326061682190067836247800517673070686539036194388458429944381830200981178240256269355512746723026335498887798991414865566006940414358323806116794355857083996444967382704358288142514780444749586391939029251619093953228877952233682185651455251778172346846828728837326566399456936840304770573001472158319826293596996426156889417167717092274415966789263227832745905847033541720054680663509325354043299826413358434365047006177399983489716584996247383090308563015766401007456121346669457300520127773322332055576336160092311451880344666659923422178637048069270957993225039232901100830131699503856539867506091221820262386640050654551470438638345456739026807710626336355849110579570741453619260273666988385017981619574116454609694508342595418037831388374319199272827675413367845733263795217055715002329656368468449649823240081487823120132856409630495727999932277362474245773564561665777048847999114286806036537255796723747204118967251814537554833564108416286662004245254854916585451300460677096648285086680716569133401123103095752707242582908525390860919305611904258923204762189542349886538518711723958973825611026246747060390359253949641604421597061526101859489346911505131533401229512978438119004278850812640213919547658576810540349354467386491097616097877691649305465654489312814753112750763611897174913479742316611823198116806991404618166014664325775590055308978307171784723296995719402219623803312700101245300874547015285918047940921259526026599576702827637139485344597854864261195764679351382741807348129573319777525910317705094750333262744246435219163419245708307585740387478673231794311822599704800600340071304847836854144423060089610319388445412292409439482606463641064831781426599472261009843161179099201356740125773534882096639444545859254711452806314639277563626800143745783538254992027921814788219552148856001709717335686292723279680886657709042628754011799389150290933826059786231830426418406773278258517271306994370723990659203934730130294902594035069618953902372995320726252413993957208359702567373510126571698256960972890911794933952965000167366553071906080863133323315397435492901731544293906431113540154915695312094518441051378069763210602705149160439982558778311150443901138679823868319366456238395941985201528845032111430085527948274044901418047163490292696931225658725769609014866192615364345969590133862408628803291850203439435404635578730715604473485973922457664018939523936867643495142658675025645933459597697127108374749785496382412758315386796144228178830414979349655913143735906161002053918452692802307544460105634755507223120518460623913572102394140817212877072976775355931680369005733591634731930111388069992981359897424624362084808841443208582024484805867074968029432351245635143017068905085220124314135010095430583997356130590028714397184203053519173453807974850630606152226225908754787487017165220583406133384994349854314771719252757622589265677008513823831411228611068302116065509976118393372846815386697482899069542502244019158888996226032449202283876574233126223883124449671576725726233725897653038904379443542446641768299023239768238574328622582557248737117016944027597053297910640875653880940431757952014129708540168835172951034833151332102462292059407417626444891498102294643901933522263787718398429466374494310484462485343799349171888289929320540893747576379396294944887555296746323440108059805908896767631378310201477848014835471042602274748498481132248534641959374722812318685362610746637396677346543449612831933326455065736230066159945918182805388137295649242640570948732175024644311121710903163354174585145615793758728068845495533177176822416714742192598123548906280788388896980682304566168341713904587241417388916121091262971390791466727885870561271246100116450563841047988485644500222429585551114801396565571349776050050011552047794510239599451535631062448476687104903948364101167544124014387804007855478858946124533055408255462807069608756394004277981021039808147641808037765117615632089989746800866625846414298294071859000862198387786281110359862364312759664682443353392503200366446392837958542415385780738811562391118359051699598702546311570647871731258171418593945352153885554509460296698572916607073597781637167288957933246594880875353455283558340905476986491743318583078413712475546128955335744536351746554554752547574889053482353352984704693401556456822071830548453608537266228623959290891550384573425339239727568900597909635055852368833395766162139788563581077412681885802064298588704646339440095381480625423524586631461946428261588638649486814244924287602174602831096804937679351097840952905635146120287161202380441671337871058258302618355496490656052593432121130834792581335581713517289542435154325458286564836583934783147258391888897375527823392233637149391736075097866858588968762446148512933881896710834121158164930500082137269188412846724738162014684349089470351880328090044827297839801595626380228116350834159540180199301618039004225588156531506078392825932483256272934849701543562835426347292715784215262844854016661222401440211738221355075273712071523702226922459541051194662047346563213628646817725765905154289401901577584546941617585019036038243448626244764152771735089343768535046812315096597130362210128363259742305529490515672019147004389176350851325784305043706823199871687848925211178510092533502899873093700767482293822534366081573614711542899341745278340322752558986605814628897996094806633315865879038284100634462000739689482408373983863372081637696132880888701720590186691434362936282488970363734965902489807102151194711964472588855390339180209370145760003541770847985889241141971461255392022595150698429775813200893701410730001218346592637729737118450781411764116423191770829435614759341888638493194788361296072333794596648341331805316235108200510319280562765551648682315425588694561927918849258080082625054571405107599908184084456676599011399254381329288463727355391151928390340211909400686567713968524908798532861439128981895194585830177047333545476819920419425331497423418724715639085533491523042066140685623960853363133085528921875829870553665702346046662196069954985048096583221652918121550545713235859178508851141489551188408457771771342937761397712737041146404641355973043079964600746393747182950227788806090472108551086485396286417553893741529081230612844359805901335430743753350857533335613760038388669647048072675388304028563981346746112580008039220515972903327157902630980300468569463660877177783834201516791416857693336549573672178028014890041434005586261866925535555544290608107317299041025810650733257572076981109829892434814878576908823568359889470956803201315624854424938642724467590441560851363810842784113232523254487078163270674358579132190377155289955820594721216037820890772114170681284956365913682800248218467267665417917766948123709132099113487407526100556138761791292449603608022778348947699528390791534376260787482410150211262208270920178150426759340732187256550008927784789845190322509566133779783770557116243116030578355517714556288689806534501694046353267561215150640919839330356082448479912038082331618962580344880602856347851354239738721000139434601023852309129822921858050037720465887651188049723639171620405221006224905811878824375512132987743810752060142029018381643995830159098233806942619276438793284324270968260370018188076164750152187245997092153735307692194885089214532661778943022874375800428592150419125209444530621092551562243273745953681529049029914219601156406399711041460786765329069944574632587788878871877692989012661254044146989778694511706540298617804169422020217520182132872879781506852366425308130190327696563014097853362399660505736143275690113092055325914932008572954735556506650232338339243682752860718931816565023847317507363610095277175875998328742809788531391052969822988487751728331919890516474476119710824993261474297643723301612933977359675133393365230792545901830330266627432398485471952041559348424387958756760381908215158174883412458045222933047306766505286471337221876485464634752156347638681348405458862537927494105267937616588379576263850676089100826944059921744566808155561302961186662437977062999770019070942991720436035440538453414079603352249659429440749458092939330356893433986076909202512470663939873262783092278963578494323532074649710848401290832272831685053408605913447777449917171847026230424040454266819510241924440923015402225181852752335746022233949385386821843638391548742715265564621478819155497355539891748717396355909357584418823440096437184364616920838614924618069540773518172876601055747694411666124987074318209849315246846354016572079054950579165359383005202564840763753294233340595474228670148267709637119019714110056916518435959911955307202989859776954792192106395407716848019261898764456548044166232839795046785168871581630412057386636899468135318417251138580704411211350231259675090326894801697628380667704571541166967354947878546513443635899268614323386345092772985990389532926406981437814520083486946272859780637985455247621429857322196064359880594822578190422700089682634542806553488115216513917805215958800095313955985035140257749945566184676653419547075031950698278588557313845861607388835009872926552141759818360533961914157027498825936418288477210783941048369258580721351615941814432840230779765633086879481991852651723835767058801482344327463038616193632800596178565372714822228021966290612658288659191948338756277986611517487992147838756506673048104892479767005989084835263456950391489742718848680988466330316712762239106375916049458278420266329519820793900529425499769809768512985755934219077119595860956313929057046134236878372505059764438604111373927564400159506947116492758987934984228249630108879574856992731576389050018702453119905305818153300916104455151581966193558251566924982589042433644720204483442285695060742521921431757663958473106080568234413246029307512166849181878776573077583253608571340840885848553634384529919128475676965836056291988437185034964253806521998013619101490863192591429869876909924353040230639297236824595355148983780739709212530642207872279941005487551470289107374019012301489146383377948909400808086567436764610450171277709641169133492915367277570182455698189288885310205134623197613661934532377897651187146555776200357305081157375132003503047658891836869051484679187132495666390569521579866143509133771977745697098443683105601667960561781643918346871103986289469480870994155695346863873062949380373805337122621112986026796119992132988088360199162967724352059910355626385097711069914019150283800038950987185543674962589175255015754593435976594549653670645209386022876596558594577698811312541101989868601487422239951836229235374684655451013349515644760800109206689083287839094399107839893739046649531388199226941825899771219418938215367254354722596319444887690780879863778760293554277530783444569979627091002223981995734635726689450805202558127380287427732835818480383145720028244264083754063320871846314275680118746506976553478976897784182313725131902506547713658789668719214805116657953324089874951818184461896878244927897901262122460945671033352387788898485607897302913002211809486945511296186112731785050231377492648567684287386661089352815275463137460475574859310085738720195003348542174705443368886255443166264292157028917951618949788003302088959262036079457990010186684548740462351533112934232059732761661455561650024884318551920258443661170787225614602642800357083852755899272883171582612967494093638550237341616029551543783640523689677498223629633805523251771171678803256194208056577204132198412118297151564988399135038812085131737800720975261048714283471893344427019429105234133164574150264088567980780237585742324847132984838996079432528349740614211091034431792371137253753805386239298171213108987432440231091743434138284355182848936847116738563443318642865711955708345302139525176015764735007928913514404743233107754151986645722359502244277006684241155706449234685029876750357268353721710506439102118258508247918609726935165533280866652081194569760414609707811966142765760659421345253572393709885139402927654431128188039108149805688672807446689588603921811143883620195139409506409931428527454769943031506097060760861818595846968178423816808423263031327873799790732300000612585683050066138018116315124847871043058136534702430839705638556900325402276176998068753804830018547325763901224888538240019346969561344438959871260914953092046830686166563900195731658218078331011389125404603228361325753371475550944595321335799461775362349889430125055457139574508361989760424792919030263116798752594803093789398077072311384932718923268660472125630782887871597320682657125855248512877561846017876608024197451997617851701440991192085973683365445731320805607419630485194653456512569659464589141694526448845956794242774046018150280604560194554700073791779355404714713304522135468827727399717972285791189910041074108198984039645354163840492644255351338466615920752384081077747005421741869479155943070293913572376313189112339268666848161584854408584081455401612328278885903276372432583460806215104506845346322492186579768010756470416037872171419618748406371744259776893852769894720053911644503539013120959411081576104543193210377157734046966373500189497637908863243528020513131044972350619520330027706057828697288046205755090387750243547097223870881941609357027893177801996789032937503248825495068236105069509286203880258951993257266764621745924508990668796488548409041843836644744829723146573376116743315329718121616615174885645111787739680424771707412208508145130856048236315671659772650783140422756771740091207640330326219331781228759826528155846067383524159572822656615550140139043259432511448598059678691354312994797172344049880843181459989154975982404454340854072899706569466013598052239741087656642337749763627943948863994642920502275224348351079511790436390011828796176455271592434748135162959569546937820587423067626076601901542764838866911355121040006650504116926385423504055829874122915663671707081611293586520114236325346131378767251510345279620225939740020150327722860306423696999505247308573306638405701822168194974074412077112340074801326492429291772073810586981372988245827282285124945074191301288083693478665427770927994196298394499754589674552365561304651698347366277842403051866816664121302351292701351879537307692737206427303435883899672121507854031357603837024118453760238560905349423541923496434698883540686241401392059531097523273801243092146676175506309730198259785621369920855707091699987021932048272893443076420887188308004909423793698951915008373988653512601035881400290619424000433938944775359631303206571647132210989115577592150177540907505144809004299679739923630593525334677053467302975796465797032673669042929999653444996218634677905179538577218858166298999659117890643240787419623232531249478934401033428953500459970024153194551507187921571113987939912567041609767093626912361386533711383101355721927637463668880868299113756972964161344215216624191089862324724564466136796985289353660840831657604161551321844749291126665376788564963031140955183167162392369578097272623902235780079425086693024645476657371670648318946366328947935317818892193966365010960356844439570207046905650694844021474654727979824642607730972661990683069949664109470760201480725846328293156555372789365708770859367695672658387162593273568759718391657876852770034413143492017331737019640749536847789605300732153201366760759586600378989591561589748240825201148233344277725222978329393228814049872063291527424250507760276057437204573495584334192422893918478915666113716046399175724241488553255122625845300040760385288893702261054156006222143209349388846591974792436280775707092993637690617242834145193677508335990168005263219451802592776027764635228079961425802064856305777684603242396478181760394986978706441611218300732494146801500587807590902990989744741490907492267467844563936978922120399327115108051943363179950448655324938651249907766187466015894406495979809066532148248844583076313590570790794374403266676033593831303938610938282107707193252478369602272072725367791127661847329619675016805486180227517562777119614340116901872017221424263273747925162742015551024614832478853987961749718569029970827057248099792087715754469759897123170298232337913518803587748394390509622379860995585080477593668129790817926330244669662151937893789169924019175186701159192775210096182029276375979805341380203061751330476157558954342236465315345122886587766491446486690771344273687103349311299926735357352622104590790699848521385870381568757698891799206763565404548442829263776187228865629640886060524186186977666146125572895994030979134631722259692452524765231399769201505923685531169487543435476889944340818498050759096376945416653617484349074819811469203461700564290702622339246433750071564354059542604279868938848282167956955817723533252254837649817429796424947033083457259361878927529956289877440753142416601405487253513119477528002899312094142901021383214789396338306700696926712130564985931459613847744175024675072163494466097102449068336929110992978397200894239667030598103002226487302432557650286905111213044081360888666331447008912365142265726027429576269765605979670174962489475279676295374725502891797765300020069202506945183082491380534597147665924153302116833649360615113469544830891979970978322232651443497165077814795890147014927789041894120816338112276916349161310387439319348726480191454357996079834898244190214482852890498361668804331621755712617317220611204970828777511456160715156283405338455325221659821657368806176622841396025049863706236744933031918103450152936556143614612529976568740933063527992947257953428920085494150560679015149756296226547076360532833570528902118449835036875622352617715411638969161762249410953308619780873723218888791328585042537048310902164701379992873468852255159475151005248288785368425462688228140918713416661033677190143199482963121366639933806330270732390891818788453166032061734681954889886139042261731043025130539682566437086708626313656212052970630827097005797250909330386750320794220081931422964696142211173220712225529654204616534407529052787765140839252522817477790625119259029243686107650560878074571606396276971055752877264687109682522103426096704979243374111541034312125741155403342447916966515716259127053992908617200849943827821135344197637704923769651173852469486829750587689140998622351739381206029493192165516042737725065681600520532931632234144276720845364504683590154954342587065862472769626298130726659719599731435066096929557670234756771254552703411370402401902832229485589304444065901726560305861194664066683700752523475990429025593129632696335139928003640727634798664435883373915873110240141874162882157425016720167458733853375157302352091242973721458721143083197237889140355169330067537109389070915578115364125983092094606576186457383607512561412543593073246107691051911953942496207230355491861449997272725607980611413109748308442067140904235211584319324657053902703941595859238742633769479575593856844121603568992041153982846099315889711159349423491956614507903904869277104345647725569081885162417341161628991046318054285658741158659116960474444884815133490981193769732694490724951909856973373050828610392679526767185524919893883657906735310766324638613484377523964662412250183248547971329040151508253023606178539137643048472090857154467954330467870086896964828347121597091140785258681399008735002105558802976764551933223456589862446730459643718549886680626279853152047994129985580389979837004042202642140372593980809641380988742623693632973225228368348870416167926376191690175003652791390953622945619308771604203141598906431343249608945595789869044895089668339695841623302202782183807371085358490615363659526660731092388216565475787970777903458095501640138499295653335665552058885514444586996333391878193824491533856464224678681540200795340028260548325247980852174260372606496555485273263248967686878136048117026184519736519071350914873994423790865259472167301691412060288127714847977264720451709905921218154927136822667612136932047424439470262343198594999285541135081740193782911317645480225840893300429388889554332941278598444938913435579885866493577301499232264965791018621391334094497841416138770275953477496328139536364376093100353153935254261251775814091505572494725839663919112529436098206232071911801151693597000296984924933102412203782001543951538079242003556677463284151138499889091615397541393764560831462600854636987738595489448288122269254905219524835737499079121864258885937560810380464888348688024128080748027579326228793839392318436701355156455959181037159264437899247258706344180670278606157180297155944746201326465990612504304654684311319333771173809278992699119498248699601902753603437866193844715212292497353290065507624255438295866272877703090045058155657076311076645991743742551990941539347011916185612385264482350401467602086193764183951821574073527005658524806924468039984092350218200178998512377557261324554543478548954327254245140962336085539724734146956499586394070082666400776080836115362826968772386372034780114157329413944811150490492867260874369584151946508761654274913335666362104876648009035742972172968158445516192765584403739515220477447453106966185273842708084804535250076129298441395704171468513260246600601356568371227090089381885310262747200929240755638599326191290529114407944310906645542796450033801346472211310194128733259477566789519160486770339799614808817800606615007170775723647517477948877959474775508561415014505947933842476026679068740436635900774203123799670624274684647483592285457666257939498199543770550648999729697041740497454123663462922132388870387465499676417974417440850784390396500650524798904404642061827384098597928711863804169936644021766622232227464126065464712362276415729641683482779157112392265258197621819393046702229167507609129203808289254601904841433401574924846794886803574841487564629938973759750539194219666381475933522116415737475535285526796516346203554970525459844950306076342588643311347976109229336790537202762623178613666167006974933761254663674448809329359468301847644782945430933103624624059416119212736403257468003285658661111259204496736257635620746334481175398267259129790641220580137055137753999828166062809978830234536529437830574296606908214819634464406279680654178907555915334084499756629172739462860595528664914496248005257788795789482970051766046061631955807175270866746740124830351869118547854641006041077981470179556627385878009599376638161866088123255513181958960538582533084755385642177460744332857851570993379615511710982499665749943349097806381321853833059299550270103360109176741282877392952519211837226037470624182991235937474643804252369824387244765092307961275713098451367009421231018729716692820403262575218123341231594664250672309271204667184783230610961104723631780786174542711028527905388124193991148881577843995337140269128578229663806880193967822109280384110593422824215761496585614177307109587927905104564273795291945646571115875251920143615302306303528279968922035013566456289249651039880759251723906398267195584171503213747542477030779731952936533176901687635281870601683822334247976876212933312510168721998507690038553250373017034405208254270216280671861889856670299078915575660092246915553430621496863078648811067918220385995871759634196729849990308723979067927165671471700035132891605307128737543993732573209946086368673961359460527502907067494874679124399782713909912799810115033740464829301636087833755975365509008786102280630050493606043626632518931233205217542031079467745218627902750262836064248654216793141003540651326936233690192292052800627329189458292478403675062763777894027629843036120723935908343412212453033830784336385311642081292623868149740507675149687136520286079395010005266616364272778671381268649702773487174505313337803639532414916881645587278302390739011831193826262503819467725799247769774068769667226062789222932440708194100673957443350265731020746078360844218419352417588396089079444479537932981033732946071857215619516059130032905040851623034903484537266431631260733678031917489266437099297688930551774127069010853518841097948028400205625390227687645411047750467885529735437714187358461456708552786344934435593837581858501621344137200485336083918603600297298706808123633788178379918308870532419902037143426288056154277698905824487370686605868912748180274275444268097432739284198466194921717087904422548337871149956255962465602317895066212712139509060397219357958084259583752684113516388075859929730622257162976304054137841100537084627845697821648207679822789756689684677033126030880487365981277826118540389664787699554166981046498961083352676949263651466356396618932893086420604479703184283498197706372262789711573108656862862268374435378559999234389788517488346845964210674542404527083029068378153204959005173459366779640732628262977886611582637278773730432063513141083021910630369102797524215203358020361861476991056469081194168953764488183557147345318903420005996553371922111388740760097714966948674950672188342674460648553215673511755031705363453678950287427424315840332435266291030878776979801771792843555267053164217592404471814623274582316880675336317944762757636594594147844041686050110112374623905272810650277766259605486364329286577266961658855041618636471592362195607210182653616368331475472462270086452504878993770831265393286040052474859126387320341506921305259139674422016045500431178266637529073930466501020691284069104888289325376282229519024050356263420210642757377472755896201577904352130301339202947665875226461322508495211272970165631259838229426993675178295007784231856875562077151503010217669798265443680521705891071442612442732556553722472118419896281545726680666082910925116161239921714439336020072246002004322381498055290322642626327537127613096797786570193446803047961134227117110578875717248718143658739087076193416877419770103390558502961178079822679034447843812485122635809713515129732049579578012745823571090076490240090663118490660933799356351128668469876944504242618312566014749765232562448366918995827037468729621899768916992992953890347033712574664555452193471410028977854301426910658126473240982250453377919557676383603377710960413713247628828076492982289562533580781890069215620568276087919161576900136209867922247819998135586747497928235025874244013615993247863548780651236997867128853330860782329778077029840883063195791180496721240733736383586455377529901106891857361779034755731782176154335624705543543475654900539684505842076513043185933304749078461430819139871191003184081290214395056150917238835167038743999040801604829903426663437473105893246046875940900521247246599097313091220490473935007745206249135948338193936760260052037761698243980272437425155711988093743436581910511657193794351975114971875292024975868826562593197275908202132542306528617878551719160731648910191428650960002140335219706521617050146810686639585491763293073988288681219600973290455361240317116349539862419307599279134468943359419519574689613603911774974179496791770894609451563639105733108144697649299029885184269363235730899774243812214043910336234384005054430386607105417461552997224071448955070419156267374068821076013285235755875466344039340182623928840806365713451812485397511419700853044754246818516384592829564995981536132724950849759998262029066377145046157785744507591080516023891861740056330825587886516591998360961516486165592915987011826205031097702274123241096730789523208199672932013548788208746315534478028788495168027226708590616530842685074782141814747916061768503184072416134160103907072933550582361225299108863305745071433884489240619855925158188786494670126708748001918891135789844603325950786429071777904957230127931311915734101498922500019958892387854428238678040279756096345502624660358897684141941677346669914385516561502825223647180769738595120937385456964967927267644744034594549462835650282610834526929847001189001545945263861155053051009383555713643042661794901868607527938258277517404786450808677341135716145723765005717647606520392524444865614053195903378770754800425151327238968720318328263128495355315331026875082222394098704003909085251010309629738599609135735352400558684715381257202270854198902477812292677750916402901900625475493113975650365280445466233460625943153651658683842861543683907027214737653645389855262511766898309196672719294661028265697249803025154672281976345264722720706242161118678215606453900267648783660733327544851773006988315900049500048388313602145767815018366522628416059254709674682273001200715630275492710522832796944468730758139335222490731113390219014730669299249552295488056897226794230218677713871455406927177833878241274492773469690532428403011994964174628442868657599017707037406138321226481356955914426137692253984298393173055841757039329114017339005188722748466088876289225549942081308330843760641358353968799376192216243114911936946496703524437522693383847781369483192330508207564861650304274641362842438124064440469124480490776114880904441874636574979969487266437762838985847976245284066498187816918960803908086226956592365828987979459408745507842533069535979548095905495379162082400498147562826486216892996909392154421585847617189803904780974024253845419173927242548162064704431021973741613413189187180792165301325876808955472154315554091756650790323508481176348705778404182045825267970284131268546312100345857546499492939102668284477138323752477471426949887779519200556715077215052490595722780098455837922632577563276610365124235315379277960004282148941261595381001765665313964503543563925421760819499589890721610680683383777786407244191187926670615327248904926647097398308881371559034743092756887221201728764888496691751423034168714840185511290509929475905847903484376363837868338603401131713523743056449610366220950449968395651322394662002599449903626734798432607935176255308701140274892964138369580273458181631750172459054795220317564880739744624794948541255406565674940204378425206346196325407723918677531070818026244033602745143066968498294724702648148403767938731187317625665888555857983083411439942639414421948619993207655991586356037493078418395153591648765080618017172309068864210727774833859610251388766715690898258419277624618250995351787968487335712464541535345088596756387838243624907559673199657900370833437443796343269946861625286466687447396391470971763500974731692580619738353512515239343397554150415856120796673988188614720198239675202672098478643882008006647634546987627959737650852385032567708178042279302119436635013047064393672040434841064874848838540746050759813186154856531033067966522682433110713836364328837932719007114554363654590100137453442049036735144393622919374581379043848206201051134223057120828687369119374845107000315570047985700288006358739595156845320243124438230558312150741938125790625331455290970395689151659979579180477128104928871830085765504214524315687386773355573677763843233260368577236970074364852887488231245254598432163526981860131029801540636811651149736749748541647106582162466600592352238449007983173656818392680013144068658926842767061315660184684266004085313128454687253289297062918410603207825645737004036150205666898254844648285757391862246780892901500690414348781009796161626959349432286274672163721471929070467682995901404327757265882094504271155824435565461220864275378144232802845667685284210966347295478695013928382284621313638880348527159108688850601374308921751664454126720447426790093049382890087681974844441524756998095646821873899521066572684229123676327226899406974177144936778741970401157031376098731865102297952922432580201183675254043723945551222789991643526943802519518070659915934961612806392772257482731191255564583410450424569109996511749781145559144227532719415062520408280872342859799347602825263920677174415211727800860076274385540123570019091863245193184733876302732256710405091858151323895671558506688236310412879385928186637186043903004360788397405060517300872810969222227788831159444587277023169209584390914973102997937166915722829825903368208862052617899131982919351959692473007429327507699197709586448842732338936927431371643953629818370320995006033726069797627950560567515049470508761489872532831843213433790851115417608919631393916903581494036108990276019503248042037485633146439014437214076886677133706511546856298460761049998187235649027605876743744983307501708488709760219628501009578018527969730683054796485094561674784532886188294574332355341465968207015533022232444845879560392853869701023913658877163357540872897988637925893227261019060283486475213187185121983339186511580217796581932768168455969235881211942759855214121503217778182738157733171331770745179896354850791827388963721531804128327155847479032088685587080694861054966832489736356749345963444793352612783341915493007205524242642648476330085474024277998969535336595381823135111795044041386341149258270969683703706058849103176393030512853414276306944741641979346184845109767038760079670047216962099858949021665721210722593809569719120010000993938998977278618708862349229089610527977319971555902656551915318343884165077888791310270055315231033468982665929670660835804403764768030656939608772538937339053079223621065144280544152839253093256003276596030837743236699605081288790743129637424731457666207535109906777618691067883659586248703952351229102503941989127075847468445154601765309732904051397261133354775270674363099850527717079916495160260252818727544608335251622668045097190483861120601807976635477217278153476368237878927834991027544119204722751424463079868658510750552798066417227882906649330535982180193366963926987798226309845062443362309108100743804332485693022608157345481830781839428029290857083574879510414884940374561340162007610018097920601459885146647077652256827830005386100950394931855304587173937224483456368300170864673166501194285011587219720676789649567557777772221730563109362007152267859349751394529753475390248347179423687833785165041292518444820939136187690265168377002230110003518927362028630951003327909840950639294715727454140384291249500619704662149931644477922129626743090207503686311752230328715006191656677567653104455986575777086678363369080935484896101815873591674410637834372265422088316785096947030143757346481336357494628496584657377231165464876642864838053508555536197917056896020160754424861548607627291874826269772604858654480680570959169708913229275979624091112156999468385955937779385082134704443867391479372565327276076160937278969542226917014616871633037878967222550999718060228956055535730451146750576006257444755273116103408188504507669790121340499878481573068949855032698681784188186377259006534432477386756450784122469286698775974948669376010312745951596567423655002088338991923112941703264971770638351175097219627810092737153138459707085951598158976951769459112965693295613216967223493525748981551806204467096332820882043535138759709801247123118430238666318696009729723711477245076666609957423606564420984713243331255555537161745696920501754607458342424961904008448979537584117948470210190135101288078338102555658919084825154788259012625430190686045496545405816338508172212175931121991797334113390542900450243561245576150228912136961087035308387473997158147526177289898722072552870155777569581334837823477246162015488366267054391026517243217559117178491395634429424208038356846993189093394899198496211957467040256776544185930861908353286347321488818490022361051877783244375315655425859025289176851527814005126098097348010849015459816470118715600602988761542502008779347051938099986084850927991903871764956051150481314764507032451729841362980768823902513484056563515919469860977312408687982327832927717774114097420266101010769446486142210127064424454093463166066510837076069420522519966444098654797255098021311268840578064033736657803838731074493011587756251705358855418271502192231868520098990579160964342792846660522086109498649821106057038582676282615606660379518463082074815092994213430363997118690165136081776669930373922016609971730624111120392939623472461704180241460538374959090900887777493669020764710891667058520208958070643853046916452431433281668907052247144852257441331828947421951690255243411303195899201713857444835536041314355426051382437386317723985171950945229180924613825320191257468114294821753489937379803686152382433829577784162283092804652555800557513221957081986609079172780973683851525939818826774518692852231398458532741751751395668645434305390797231774554424126591372314959958143688529245473656363512714942986417054946904361220138826030175095157387447696829044084245759117586326036729526387219450019644675179251370879405981845349808866603110774718078900865454231138761834461517082714978441870993614979775172609471604964160292460725936293928153856285965766824564910582161057386516868280108155556052385776227049585643301181530524516242927069070875105141292439094293757072645117725696870073459093180633653774797892402356219710162725682121492514954002659613337671680290921644620358209698078785325974141552924004250632965881403678686236905141681923864016821328684398599655637470563069734405771755586689761759568562416935682930918050933755749082243954104350422919487552714604269055748428150029559976046267989175887168811270735104961612522900569135739353944713979377190812518155208345705625458819984735542231500030796334028560298532012453715451596900707835531092177958292758602644355736241295038058701873990418532648141544976140606048425775036525334513480088241868917554458485342662833055067725790939308313679446096540463752940034899119509939622835932199688790199685352011279945911333070445681095272886058056961459685645512469017466072196895038462724316769908079283966091080824921858098515929284024681538004902857151520420385843839284022190803375164909601127987952182804400970528962148353346182562976234754570661497578601422372416339609234907879866067111640835196048801041199723052918773025936761042283127829627846094219052467146338567447877083842393671277490339087724101014172827385123639279380064106681282300860214693114160728501996244842767425108975042048698357640992372508410206782277321414972925689224483925823068338387625047447117579810236319793985554522858430499348379882410597411142682168257681065583481686878870407770094331141637060603497996109956490807277971172263213786139994034410474646338958803574977226025179447557343118175842459317812032674022046284730046208311451767631988212533603232344420041400950835933918230496290233215561668977856961866521789035988768193426389095130125553707215013880534468725124494543584658053463571293368510747708385420310102415538377541488532328418140178619001049865185902701769153453938114336723740198928388347076775879023290933630973737358010744513297196867305973100548778160078800527207283265974011828768189789874745852870931941187107727539485943739592931095879081199708219424048476010029828420951247234040808919408614687431961108212110486808335729126795209617121040649339437111525220044645434618024044379669149198081941726813124508217672328204940673805602297772616818367452050942301236885397288049537792383034326556537071726973801670503549427026478667659901537549292581366789894981805751612639147062933994493311307389320165943786377958161457485496917540306228032959556109594874751266115750170107563685492649770500114766493795817876359151887798102266754383224798154250912764104709680858581475103645834270729819207710146967748139324177077786377719621141745956542968099328561283586295186990756209147594111052321078178652837342044291041048997912782166382155191388851077544029888921378321175469747223731774721707529553495930201987126418020790535530481885089288951394864510708101639713341447976602399863865925108846621097611359017475519509633293729874067525749602979820013098153322713340292588470653411281980983069386921207771142311688067591880209070767476346095892427733322323475714976526555421825833392317142162395533293888007111832398212039011315827670199497319157283682730361438232183768159190133418344302975246171700868428473156253778374605447198450677873523779082216330276042548884397591891020265048615089478146600423920264906938750750858435074753519546044398692969501295137666729515000971821884544481286820627841545978376060696529599677888167233629685802910799641201147126981148291860514427399750709919397145029078297691400553172592626733420890886594286811629221558856030427810465371454795650349778708641991409736959764675281502168092460154101186693062196544041665949506329493734427179233440817434292816874823084148407746301122164412727354413917770168852695949882333765682888662573600145005881328303974913625985265591572780195198318803605694953834229592791962228157261474553301612256223744049438455328276854985937987508698612224366714757536175816020312107720556888029620248599317066976972139848120969183341115067696165129032872795816713144190873594567230992564534441238546812512722165275680198468282666365669739342888613403635676555653026394006478707473955393555222923357032787268255142372991678719052643381920558510121233842850295678243012312154464433938423996538044479867418904680246981114586300869609304825522361385238191624523678865167454502549280436091121418205626930305812958756653228949297986051042896901643888631157287935329295539755196927078752954264994670587204375406086708791936956188268597808501527512030915675616995659652776323115433915374610915474516783972409647597635316856193617513849744487173416439785904305133274964304817560825281121796727850116797841532280463160720433668823520829192051534731786475336396894594195070366086898931458678761705462672451793157465228576687027043920405607962001930570619164384211137514456552595577851065888298412707098861371266015384981352632739287226535953515048160214310119801773310312623147176924367626911301193592327970367616733812341413595620963744267719164130480766764852033139399884323292012085318348562142092994536214191551759316348590593968725029280559726917704297126552077727067541550524632030709500140858964767631296366414802688090366056405109697382151723752364032907716141217541891464036121788369890884024119247564617277897957857087449332001468429755696324263236827179905804995778221051150822131659575294191672007189674648401063672162766709434602288962529977179291793849196553400791481702251777372517518774610495227865139905056242432188750994569584124314366287889174283722474316679732175057131996747358239687090607382870522458518248664541627743278039079105870438331259625755051009661635716037390711835887697757431477755945615122441057738706154574355239257893389685856413941582516965487501445408254286670942843716880956074988562197095159934766993086063088116433122751816533356359216001802071143621613340332491974935860978090328647158081089136102455194367355360766370403126432157029697554042845215570328215330503801385567018477752209650059445355487883033716669313982248430537429153846262621821847692853789842169926652036360192032385990852162277541288676348392657818649611367954966800527034165443965898406851010417933351943147945490800059730551886464744199172421331455524624432495184160024718931910678733666712190787416177733501417481559617021211097068484472016455508356477140734348614377022482911933081997575071037144896114770576523873806687323324981667577411250812332842746016880726007240098363311824009146475317856193354086699091615636229346805435982734863404241485760570686803967221390310632803747628434748032851658995750082183791996067219098094373209928963528733425146956705463777760377018025151874789532876074850598897845157026959439150486851274434227446284665237006939950671716221365375582838125067122195107199209342052319541348238793921170787784901561303888504642681348342789317603775527383691070545739913779512936405432367439216115363317118656980887789373752149334495724527333934158951738248363971387681067767669409085278850611697350950087559939066979218561481827833604618585751036352382900018952158251547365089409529768063599108734012848671523907241419608374178917032794730867603490748762885667796656297946251596847049862624714902601171765238112224441646038605031519944256438312966883376193222126358992382322920867351376173241628930777673484212713009861441514550675929578015986922742161888849404854315828070658949614900218049021242565679421622384213355080948115229106359127055434272726511967637227814283330837703296361987930469149801983275542315203742620422674764743791960074786963503807583382913188993440387379799093568396390461729035928119691177708362910539294708951497038481858034480977801304782844858214265347184004492950899439399926299683184935749875056362023857373342449595046325069490095564889668945344094663448365084579320510106697227580255225819101261356258925036026995457030597519677931298337824486516892676342177496289983514703137271826601619802953482566053610890943875333438219739903051307201536170289302152715085601522808504788618312764410078753597501330185312301254868205404588681656740095659185896039050396773441394788422509883503411152041355838543421321121518739051246006336848287895807547304779411847711544937293962228993730739708602364601936060795985573591155330375532163717409486844129521557900118020776148970574671440769974371120626379910853858959723622057378072081442924856058280780329361075770336028990587335615468036027034846873430094988916128196743120921709108974623325358673637454308622015270371627527455806062764209333322832573301433604261486588585424011493142096461129389668927528072103601887247928992786493542917229463602742853290674615800156484938353615110608042642826073248412160867707607026585186903312888986040571852214387520013571338071850072918686791791958149888548511595129884098463120725577351808742784180559572997164087934385373720946714528805352990673841084871349971412972533399898661077992186450617746920547363305237968091164325105405038274828193179560545349192363748915358438315188460482352107252042718700782079743738847842929476427020260692321875783458663919478727190931347083707191750939230900752652608440053503627739552303520992873260696153928017295671558969111264435785077879713886960208557799402481364501359968155081254146439756084808179993401691462427861391715185525579511901515683128725934410854674457514074171626422506999426293226772672757554473471740699778574533276848695261013180492003936735178773802141354813917989390122338002086416485901647688690615469966635075207867091487604558743808245236234736955383693270093530130046894778932057929069389297683141776466965480944008186857887548528872697867947798102219462949967304536396534213775414264460508190778790580831286745250856554050459130107976717900679599592384267313585623537940365628576990690881631272784419992214948228171525883857760489536136777615148925938575586301245218270319517498368577913083634676562350441024541864574620032754988014170940143851446114928150677071414057717133813888534824731219009156148118863156276505998151361275383404024091973927979574530633682229481610210522761910358282630452950349959872430542565467513915460094808589783045304885597948457610866445300024454660147922000791313318255872552124376757308234262777008409657132471749733830445836706413388122430069388418219276128047978212397752210140360468191017752874422643297078746939244040255948089159943799006813341465067569449598331153424903408608251767060732000349396433740067516761448854521058407254393741849240741933978340552474035528963542462259792989129298170535179107571452788049838060567207441783895159760880633168125513315028016862315943304398232167890035601006121569783248862780229802936177109525114570316215241247725811379870648899420018554688594173536885471781018837508568202630760375287767776058425863102568169208374002561804183193821292992785371466035533454423727710509932113841825342897684335567871386146785445380853941276379962271798726595149637218238693691996496791180010272529334609405407855900786016156436947934205402109271045018004914388686473977212910047766611454000849040744120594622652370925046046330856559407650161369600471939516055921826342860716638457709883732426474004747733524303091879897835888227824319726635912293582376637102102367924688987942449320502557763453446323052272837554600482639023081316427473956826515487440948259296971091175143304530591192276158513143602025780491774964964669474163711565224714785643164276716224941677573799726839839404543886948346890270708628924082726045167157132847282229332314790385277036522743037678370311236039657006878353336046294398189485967722179425741824335618375625755686994734920893047742060816817001606948563336313838297905082282809862021691160712923490468969875402805799792547835565097665653830819880595382721505018099161299142064936740863704554219460658243651086756105230120192542473340562531145241600717859219955073682569914046009028548754926557635598969371011263888452220645247920411272796831196708932197022849091243665902418413695890816056150407199341417669578385893760861672680095687848906023035447557656722105204053329639070110908576104118985637551390698298788046362462131695167389863561494455529540342989513260838461699769147169961149460583331915656697523109885442399578666022878048956379991440887199755120855503556934961710370949951066156584685129561899601071125629060694458965584736277937630236640174739438839300897707478307494087174483379034954480621811786054443510985965788109747261194844589568568225151218150747100404137953609909901699752045801309267973231410746065874966872495516358753378824137535945377721409627516609371863320661815714168699284681688879031643602996791027539427512635958292818819715688346846052950430071537480543650014327489262756797139115462287792919300184435494555317618680934084564866779101485285883155901843234481928385588902273591006171832233396466520741621283781899977548545247564844274129645075656747944845407120225312916595854019634243224100556034786619653822170752188326145371011555748664734972434311647481503044116562561560969502842317581585668285296860895057937961191909143222907102072033337925823722682898201325224585768732826840013517367869144782708714161236720726423983224269719878777870680450639396709723227399152154972300024150585670047510505610497897609330073988151532567590054256221471110523545747669936963944895217028388497170429711534900561558456891008919994174979289256448413002640684563796665070420981933505903303024010579390306922123405235805738742625667032216339108540505112784986477889613494244797092730064698901485244276584089843161646170729281375208494277677820559670887320695028097763898386996351458810753968912540538581134473310715923878654685413901757961520387741941361635088373949993080746886537249734993883196842265363871597812057630074099182797385497534476479797104382737011747452262821974500000844229508352504117468899109541146258981381561517862067318913635385333510060368160550432162171806898805648053783922041320041196108651482950737395569990640501535042850110946136616297089039162288030369747640537068679365768725968833808796042072367440644376029483427225694487262087351203412857040096014708486490615978248118117570380905658816466612927621869661189102314759966153092493373476425293457502224508915900130841415487114587566042257686497534669401615331452897997313837588662436993586439677681643526083753162698340388484706472308417683209180973181789011289998468484253330543949076115174819566623845084088232980568836346473389473541258405440499574219391898079158552899132954144523923045227027649222482988243163783883611555513038105759962679279318916745082784260547608997226646858928084401320187467277309496136359156342529459614422283712706588183149182524258286303134347973166516607533815902231124994575116742448447620674625401661364228635652411968215291710001507272226575407351185186125262350324385640319046177989790679495060354499557419665536809879922593361733856144993920786118828613839779271894511362652952765202779021932030098416743718032258177722598290902776817943711407179583478953287522552795300171622426046253368923948434273395843695159145414540987923142514718095444215092707340388458605748357944603734280083104962444640786644938928956526025294043251872973400537620289253291438604987242580518458080620040587877619557279368964455035263503846386263328617908164801679880447430378154434819595771726399326410067271490596659369048625799914254246569284862223736967853176284918491736884193380489155717942480315290654375297878239272955314881644291801570935956491145501348995918720248694139212135511820486913524096037905595430604691827383033744311917266017797347455424523332795694058808600622240956413009364719125393279936266229339512250573191285162929083984027034429041238318989920483051628287198876417981309652894617784598878456906079405532480497016036345452838924894195160747944995884151260156498022378340454884297270092427626821956560938496742004526963735831650367406571388218339752924262376845007147881007327810153573341994747243090239189084941480949536796461457185159379183743410202125042871891558566691117826854862915239806695382773593253214902621022903106753664559198120752000204118336887570110082356835074087021694547557248696333542779268850364374480350855668755845053463506178666116642250141781852255394202328763559422635489397575693261621716386874807471805719507223569692603970596032888656611272765676166968019102638375081877242584069924832026226035106798187757761497240530097282311873782983572599782310538424881586511768557594241036353229609785532938285968686376186185948948663895535380224842488943005796234908964153041345818531991707707940025511829694526650050259839397261385192171493816295403059123901325966633438822374110908381935814632860120763085997520382216411078765639918582429636414334765823828009803674051056612674039160984397194864980858067731281243223457848179213111979234711584531073496959713350151305374413492722511257926947168608440126271762640529976557117102619317811642422539217084676643355144281039058804076160746302757196589150661377232423786364090725338865730721822913960194852126142483509801707825893524577304861515267018102086837603517463955056811706993392123158375027806771386855009508139182098704726128807595172584400363528446417861988501092837088693658580583922617713471848858726721933140907512384712634153579621513874835989718669715492615696217374039227583853889279540566180202119798169399401885144732892287007990575472023205092080316537649009461812106477779531628210928530212801571690769707503946321322159298059178644973839695652157673516003970613669248868056306554978057622331981979532304858213563588220284197203816844511574128677715141057523448953198469413320786413881803924983317158273596304398520355113720950986796730367920947548205852693108516860578387027775530540896551143907096301178538103458497944255402991416937677308410171154010828748541850866931547101788674583305680599939125042774132859992772888208929110409926151112988881619086882483003728605444212730379525500549819723853062845332615602342950791133091263753294188737364420021216321643828911852399320181603274323210938417414426979549789486591742649364155423223920100008731269326280085136725530813590193025910656322806526994552105777612270102350555183474415438410381538656575540950995745358500243857936601861565017808107883256862866172064655655410647139910947809502276593140845099391315239636792569787346148308780745968384786324986243991244393370240091731769214131352976489176277207327321117920265643017057355908055741082847943240956743708456509400675730007165662347974184587183772983068917417646605525191404852783423281622922824951533928198138393485798761246779279825002629917759946190070106977133274789435891072940243966443747758541783108850548798485944044026075019212887544653636511530727347080329241007262649224307165536524134485252317816107123132151421474751662967602488631368793539716208808103028865951250043231433464213216565020376962490641174935862674596287330896547877190061465304220746868210198868578150410788727392908756856720155544757012584100608995623592337307092121302262258739999422794080214161821119946276446165400516269913936152392929926184622440112164430106114116046461225475936243731369817586018239275824707681212571498166624847046468584904754200365361001487204618177961859593611628859712933050065871532143096033754109418340151045686064955738088035490164105213375945496986994637147911701886068134061204178399725211518275352227013849159302072449202799957050224582650428666945228929003657763059555945150408749985468703587528494314720521841803895724695659397382790926710318947754694014084119770590003313149165349287786902708099280089998039107181326057399871238398303611584156374621487978576217914781839904340744519179514467542779034609280469027476588246068845890873423433416452886317587722482749522087651558412555549162650072179151089618442724492152698011414973884140795829383169622898273596400340339282575362809736144206259033503200770707445421433854390451777931860657461128832110977705004925081950353469044234795686991354253644201386612040790286733312038633260716443286455579112691482903129424961776197612279697923384945528111009050263011202202258502003663453070735408625816482972901461957516544225551737278508015244617882165326023796355949055397857815394819208831099459925406707529152797049443308956638976908699910910920551499272689157003907201597162595328883395672688969898635665053946952956054815175389810189170778581417195330269647090821320700797602337397260698084541355742242364937354208816418129380886414062583381257661909169308265420482892154791598823386359823269110743230734674378724308713293417555083167885071602772794860518256193651160443790090463594221306989805386909275917297929147844581053406359704680806501977399683453540293309501195034296696965231019435873666481572891838722903649728959257427854690660928048574966786823588317772054392314790221298752551285252068033341960980955169918969506202215004919835785399527794438621751162503395134927323548189315909422233096207749175572002942038333640993667235184131333142750144378911321528133048569970655391536145897892204302699345725132932286905217220289003944786527271602554599091571251710751538172405606315239112932906960803002167431814708660498376941216971555683930673804859421688093520388276878259452283355802162717011016620200294918455765827462264663930024761218037184262883927083738141194694146485500137542969066032958619001398011056767291269185535636413565312654919986134755804215508938945912025352157863736459544871960454358751951904881206620054059931471939878738858575151457916561015302326472816436590941681969824965139059190304845941154912002203121714661501534331217748620688806458043040437437353122663837743122717412751284693988779252593668071985344911757982883785118822276818318094709930411071552864614905456710514433256567159883111666077576733845633360217486655730584718870243030847072838020632049417216729814689619513688061213895225947197902789973158615039556285582421072108540588599494962489973870786660193091176811559096676122727113313454402537151489224202549987186039363886698622912323064844839652020945445493102125446881891523008357305369904908420321230046287894197109568174902027789763997738235475068807438573165633189890870057624738451250606245966680608731955716449212778067903969296032075325837513440207229539527278257773199210855266095059480624183709068790662829714757345766691056688236896567590987856977995256672207906720947084567382667383241964748698714216793965537002770269212239782850915183510897910599498775688844970076886877591373270351388825539031715421862055990349189889681167707666122804421037542684817516557973473062152613167259346555831250065389219650373096988067266664966314252035941193982011630337291264244303073641117996762253375883075877923896891497277313997225162348233694879570487873847630936230328454114270322459530776990750259098270293557155170524374300274575556233581444075402756727681301576789535700112056934226268724675456147969325616437883381258229609289531359875554981778620159366750303370670213857703331895283617644747310301079323596230650510956404136466750488562039420154749185951897624525267911441970391042898882727171941528282283167230032170718064139971717949157635318140074966491341420022261354274974268356188621560752867293154615397140438888935220856485690362164955195185030424013384625958041344566827935194381011230854453874422365922643980975644012371304059783527328536314126610973776735893385925959759343899979523431227303863897590044269934042723496139912083925540123878299845810534755442031138446795444029496991731920266030894213440364099221976654615817228547123958110461097802509202258191454823046335666851893173017063787799772245433922565041948884769021663603611420787429163150490443759880220297266621651806396790324752145815811955458718621371498974585628482515899172762811437628365028736176793827764974786797412096436802915193201927759418440825813233393614859917309082514389205881610898280156126559452278784259889285000458790617266854770371227319251667477258798655384968084345564380092414491368379582656224253890426284318068152548745940228276419440275103616029523925541124821961608835915174837359059870671995361549240338583226116214813082506107627138346597854587866695432414110681776526088678032027134880085468623483137733513690258591372926042252696346648943178164952863270802353663525156762696775665418460175451791364490169838059802464431206126560870909682159578284949996634522638217354285857358695011895575774069472009162494306568303056271899928765112382001880606051308345032839521568675272000007398678676765965576089225515303472121868577728381714704974668714678791006917777246120203899117154245927284722801046333032980733046395690029164856454068592819261126920033330919918876035798497189757904809744837601728326688476596171579064670726023238824606596827125927674201268838570338944892616450397888562625017849474665620785484072353432971613992512009455662909385776022879877866127705410429177974672708230689511750029464149965299835154224555239156632183427191817330006851398181749438299167127788850389948689814913658138725759168695187446308053400693567844354008920022429551549004309449061882415680683461368103637801807399340607248383040177740146645381399567213328757504531663293852430755039677797990533116333662273501563878981643153947285519314000250765210499764359425314357489721127759967091530794239419458445713029428785269402360531783338654295953197246017416040632326201071228925358743534523762199960741381590666434691776723028624525545592193892527671382248157908052839600291294053769098621769342649975743689785805654587954099557045755808025505859498979855326695413953527477536582160213577671101013049913697669945684869838978390961161364163144690005460937824309050528910648965189986809325120286597693252612558182630748551031599706708982988204198522787123550022815416871128648190500573875002728302119632313421889789039348321185937062679608534540971446811497214350735572603875942288226326690715841673722370976950956851718074209541013063764767852583058281268718802872509145297305380106481691815922533482174396555755563083634879505430390346578362134360636057531996922315194483307611443467090998436262246676015344317208573601025895991172194283823432602051225631918664936687812414574151490514035535440624842207858441696067486864105317652583176394593519339102428408754016476663853257502072010621187214995316586459394671000656197025670079864622276219455946586909827253655992562044288474936278001042807165423925430256557671629421423136098898550930333862948579903472676494156158825232145490265062939297245742249415295681541858739222147610558860038725379013962513734168862402738789943504142134408379999450051741191919287957164838310820797702086619201371014675827437915744391357669669352288029416756914838994143362010673128570569054908025194725111535715255248829091035725545457072279294827832844690411688650860212289945770873167516429407188240242044835054685691037497064860253234593110815633165350831320601748840629129353223038362719907891282615565593967095229462488803691872898375608139117177138186782400437394392129129883528321358899798370881517795856049186756631312993560861971708679053629534709479711385836721646073321985748011374998486455830235365630652478438273069289542570056722636467170814213256751833789583911486774573704757138958277279787494584743607249121609836995542802852584698612382719068069244422661509867667229942402756070284462507892503780329845311797235945118939494188135301975262005461454085056156266529734014180749689073660255711021969127282591586620414735061968884230937903724080477319021480001712163042497568891977977486579337991431517025973412303107974415366856503118859451404157121125916619773931384691367860435021358744274029937187870867732620706674805761852808592698273573000943282449660105333292611223359268497301341140518852706352449616550716774066434635046960276974661943510098670249028985564273198559641826692394331145988636561538103337618179470714543148912394654839691133703510511426449473827900998885699393211035475325221904556462878735936325243938153247699446157799949761654873540743180676449425205082459275934409381546432274887233724022343623638970813677535192091761908153378868088165066055743649028816592741884952678232292234631841801843873541595392480164860715435919330795490411014339939704137830310634910146379363770593231205455720241684883606427469578503729083879408766883905714133951878991719049712046985189322937214955715199663823869447376400368520973891272895368414828392945346070449087957007435015233909633890272988059280296054315347983208583822239661531600138221974288923562434196894893410087713837914115599677811777557599070389118146681117842078227677751598640150242305747409850899223022089844876068863493800103171981116329695188053044399832361293777651555893714340146032124734361948144338815822227777687004950051005757600111359964964811556214997187521717338625815862453053470429244834158280365259859189988958994282683429997928310833406133791975642794829663075739781218447556843897125109359169480404068127317436830047085024710434988732519938713336833554787344043135554475758332917693902298004515069589562564959057657674131885348298290427392857874020137650211200814388804694652775898442631179053417568537289244751928330180885684031386008457702128407458243209750790771826422410596904721071108800845276989386364950543414461445132817858292409658204834471948147023960182321553736086725127879220848426286545528084508475665967055457959672451273172721303184358342929106913118779010910135152415534123466059711748075813093724928032989670852368149414992868815173253078257527926804060139451085601123644536520833068156620294711572669852816425422038907689359215008383577466619346578922399093500566358937265985638908716635257754739156668596325201888421480526772261936665982743205613482911614273335581957014720095510812123995728565439499831590309753567062173858687925920411057823983149418848596002999733551079472291415873479481841808373238307241807584976362694664098381296954294053819282736277068497316578402295883233958806243310468413974057541938748608295612448536707743188142171611667764316066831238924716823212685075558906650606989600833159166576821587890913974681756493339541918238671569078829723588546727253883348576473506710078565384065178240135526765242013640250422213102878499452422435919397455240234164996072682212170123889392945434390823003668297816155230679047008517352072346114642796492479268056674618890958152213147811936197888765242162747717022424346918351721390182759753545085602917020983954580660336902999180064963978241915195430896786846298629377859441232510956973669133644788987684097674961614727819854612473838243119466191988053567234464745653422850279987808526265719473603150343361455917284037949943412945877391009706672613060043020822871676069475766324419795682659126943940062127572445644786216061919311361065715770520922325126398853203198948036895197422264656106057489847073806441427902958216792109415284429552800035187825619795892082211940266506345185447064542252171352877570589010519805336875711790777785555468676313258838643853442095952866937700110467701437567621071657676772992320634151036869828588729194345452497256329503455389252461022166993609465508581250609412355705430930371801539425058362774810630251252075524508074503727255702498341493656337684941471227226443330931488287363273078456701216927421117936463187721895593927137033536924970012392247761254746753307957653970811364130208883214203687457743543846079505714943026545543065775145789857761535032882284288357251346213667452391579115699684561073015616114347931322554601085453547123797778277586293935990781532215342494140825109479710983158537044356151494314378106655416894446304677566327327112660651982102516226223802766235380739047103200135719002370881673348778291775209439053720024247627749553258368198251660494791878775942671309264446759211445733309985355842290753399047431522159739934826399221500196966296545440866853074566017475740112365596418224195987571499696945751221558893675671027475842376702538531042427854469272544826369491202096377779836652832827277529847706682509566018357382150337707338896365651832325224141481526663049780576972289454331128067058203251163380112514692299397976337881738845881557413669237254464204904091024546091028874820521752664698421324577764939717358063219422418018840817743812450424542290662608703053396094479238057570185948300284634268019085086036454627516172203039086768521190930859460987795153755548233934223869523597063148320682951033109185072337597963572201451233467966141134952536817104343444245742200700271892933507306482848347898144572395015736090505334035168986246146719666332462861015574238823336607422350670882218997751268759944456305353062153046516508848425538477455120511227928118854169740372580663002108723048835404648883060349413807035264164034105696092928934029321613625119903318758521205451010495536279320471357784105551930483343318605942667751843595378381665850189979753361114848177811863191624913387561131699015237126970439896173717202696859536666053663102596957177164298494061883209721383413300958308517861286605543549684474507462660788020237983150152512773975131880993938045355304831453619927791342670655940559107054107730376604791924161970053265910711823123759914300787241583874859712084596071535953815523652925370630729267923005845584070809594638163309452263301179522489890932203978320143326127301725550095349464224210018284385697129957685541902342779826047526501891751991629622120343028397677943269186236205447783275965820399130540482976706820994980776003358698524379748787848706973734658933172855001001683754304655248761689335967889326813594238912474296617427585838169230714301847948630057093945752084237907837230929910382089498355498976376083944566501702051750463746352570390857730033417858863938843664206651413826652427684732180123418241820957768615718153968850781991525284813680883073775566773191569667021055532563455271706832804940455701512551099056849709762383962680564834317476525934756780281617103864452840242220486757779633884080572539154856795416122056287049754899008025492075678047970446911963425748740618545123564093095566957787406645309132843057588890758365282280923590059370170935157279543508023134749159673407321202673974072345446610901682192609191706553793794235526683084992508304100723990561951924454238918303963601058408250368365394615811719550786595162198434536415983995622165974135872532441735203268311756401237637434822668668006738812146480718956600563544908993848188195555628231627300746499261616562559461759399756290629914276415305496471967073662844601651761063943899462958017305564707256624998473179480280253258755828760255517435371579533669641838711942883664405188789212047676798946666808521052157569713304946125689441470053670714325815782965785410035091408317103745876520224880770042330397026843989217254748334645253336807815654423749309656040038590757355313964626992761407667484465469049696087047754449687488770555271602080936946827439139594433666010065584219320084349120338510910243721372692173017627242518689622233649820001846613945190043031558101962727669254406827808487500047302746834130260393184028752362706497335381798552410754786240300811849041309566607906607881180296273293005055050672145990223164515560551475213892455057327213119589636798524019923233378977333131331567587781024493357296844775219672585918943440548012826938387129950027423619527997682492992098708214684302221677142889156029911595873254934112275754757852896197805079540334646999244119015369894032247706551615969828845863473513429566552217641713110942206995104380543510712644129308426911427288752241760134261915396824183235319461343911457068450223210022410183485935168935082343471234649232196042973386819773828655739113299367826562218349511720422182221450551602672551579306185836238223002241449657639592229695112989081978817852098601529099671631793977642379423352162910064465657790179475494834967668314019127457956534711165335284150259781712181776262917433323476407377829597848490826658949924773674496928533719289052455375960441288009961373221207316015296703856405962417302200112613578289436284754045595961693651316006740035839665600702514829060784849812560057576525744574914280770756183638924389240312994841315350477769122299207616971391407316075237341391325493076809141588335138475009837998226437355830917433227000976882172129057966892072401486514228203916985198258099990435196258027897214069428970379706022347170910150451941041511289953378292062551907930941249981548175177403177394076519921862511072085454129748991187003037482491971230872602851944414510678454841664345050151901019522807583290341432782939411316026803249472963318261432889185621211844320213957528075381036752333067766697834577470706217621282742892630672709184394585059516065679198733917763117481006299774604903229353367480477824914703497632939442437553717224247729192128722855413275429322479547006242572281703158748134410837770843382510395950372740744642268081246711588934766197448738980559242531310730115976996781221408636658955173368198421140694730734287699294550945388762520012626962005622023633022496438886660946128217049272650162386769692562659510554428854278262553183561130969808607723163296169948555996733449712286035332544463462050370989070666523952128386897144875981008103636021820016748927778597575656456302763078009494788981540120944199768960997280632890164152463529070724185021442733929753383377087105208364190415775970714833367112199677030860106138294760303714799554028629827690558748002577535122864446224128865715255672470136821065063283895413582628423072310633134249828782989691001242860190385807779370526484394500583699506892301784106665612606012336390177988848506224834941988149471724605883884108159117760969440520043441181681517886665491348254298859100115172385155923215076529649904164039380718518588290976126593999653915526053815900182079162811238526095423160898130802652929154203552568589215526292444514259120327992302361822762756424526466374841109013520833333963597883836351578215759243017412107427907523712266942928359346709522350841212820173038787578851042080251243693868739380764545366238142611795835888368308031707510296794706741698003632702102820158484744378012940520403768309867449668821898081364908149954009052608957161341388449101444208924979990079033530160191122141678199869989914234408391861981516714231853828583033204340776302810865257250399732607332978999617702035438129349560963280800414118751348542816841310823079918653562021138886773956129909423842939289355402110156507784504566049064919877865985434289195065143578877752696186932017790821964097538256824523595220014838796882560207901464684075970845711294800141109019065898036989805323576676537528882421336316500874854425163513938385703344054548446843248399513830791190529392736662681864317255617560476407579369905116997423690465390136440733845475755297474589003947993799095307527157773740703627632588396645595614035439790132869658437460806224730941919997761877501564441162820896112546991692576271314630970865365136404543399795972645224301568851111399134055566817408392305130906935959608099400291882217392317572085559347268141531273279662080614551161358683570237643757232919521862132875271603426924258640831961914478980539377872480586923843136324331926808308340209146415421863344802778467957192423907300743356692910232338313322477554724601274808115448192450317438973029632524597808054917449088935233061232503294576311801685697688814167027358694960861281335416049810378070599395980624827509349911929081484610191552149150523287095996948824479820891448171032105592508802242862595098610640421049146901211932197225898311371218892257052952561378987355739103872238376085163407683791427790371353013100828201177162407691602148036082762380808502441147587240442084719458436501446523505803227877324830693932907760639500212890592808545793662886586910966322198379842135451566514846630336985207010293660476083005568681664082589361878577254424911949575330271556432025004395967458628645744638906015571659140573387574275285494583498905822403252550418549369254888369715423809677871471778094779408697588613354056839808488089642373523130846423459903832106577231058976845410852704293516265350732994192396444011428494773874845815827314120498005966521710614720298619000235370760824965960646496360783464516230839699409226841137659712343885234217266375736405608300917516788059360770637357554262210021635079280532908047734566331359765253684652126679140202756992369767489975609152195805429779495949856358671778545663087864301750748049454992761690858603762069724167606757810251628299060620437068156401543545173813367488536430738889396871269913890705570855440868082360845731477752628072841202119354387577546913055612385150864853336550983996505105519742274258227234154440280400558358692079740835463874327687500707893883874479292343534277248098266108214852698952007909891142251695133761908523707321887951515487928108547863883189282250006198364635363266351466895218104178887051315413083893325292430565208265560793810924746863119521256807290455545383472669304741264377196628887465700754439307636137810924478356282752600736806342452636662845410740672687281535614450431589109744937400349789453600832113249167389540885318947286208072027230628804728074983025327050458121906500577296865173122356904489594288162168681513668225126662081887704329910200239785048359527484358248680560900872731710257678520848667349859333259593982779760038688663555530864790407709691695471041154546009137867602585238471228928272869931850608152677128067055008839886996649307342459398934854882708771531196708607151600749086723263090138067391795583668694231156355160170456996628748809568422316441504894214212100915079936074468423229084269412663651906105584761431622344407107430578118515738812258382500872386631404355708060732612460616786004135209268857249203489576843760590492811326788095878685144889180936476281586691639859072089945183544241592415609529543462573200169125426085023640005600955742173357432982362918271927138455170430248980433340190805946591668000321103203871003413947595471164962634601768432513903663715477400026909651169634165737911592624798553398497152299035406662912822259873608197388246313670343131672833049415482228310677988679804110703455267071018228492473220407063968464116682519350089894044271267618943690666095598942359243211020887899127219857296636167829909251862387884917070413364765045328074724831048933958094248295038533135524468037278865361479118800619924097072627433290186431985563847489474706426932139493295267398381620284790866443095100185400961889878989982003540265806238197661851415853166631087000112181358688673176407789776096077739813527230201590344725143648748443951245428533986647929256974211209512191027593474651172077762849120568643388096869847910825643785552983813502797284510957358278598048038217313780786011448532175800967367569232555399851474151012814782345654193728928882909006559008695588292980266436249993930142395241037839083496387855521237950711559141727334096595008410126445029147714655966146881211287588085907173775619817514285517165668525217784356832390407357455644887102697775050748754404326929134819049097587036195317082049611087202372588819557859588254880206701867986248100110550680717381936796096189434852526981025608114522830814283639058988762730930180507200785262530385587615032511132668529432900995018201830931786015211032507431234007579217266072599659334231182980857877767187191052234192886347513451511420347397669476792856138959841848474577301734269236139690337731426241389931022101460605817478153043335085118695150329643077957289088438364524335679878380867131511724371217532796434111830269781210826971093081439304837388085877274917053378622197508862211406677445458338234102467206387727143952503554253139635000766846902744822464774350079083827120034978201327805446408123917113036413859768580580733207642685237594874957577609701108640312336289879166947865623526966983422260884834919020329196617344782791806269767918303057723864078177687529907150996391084996898915561762504667315368740984320999209640485710692772247709019649615953299738408366534636705301832863990406197965433435353648663335637853456248884079625638757593159401412544679548677622878971646441629835853936902435596833263392659506989235479248514118230952670534809420574993231347914642281722666982568976983962650640720690078019094625863167441631844739322861308144317171892868892201112052059698002923574687443202382862720693661221315179603871916817053973315824851973783522068752908835953348583101806316994957834694453741303336554019972954820754963675633384551913865558483295078568944139067018481807655526804692233828280945594519071332092684788143805531984849030581572084566894139149690247168026468158955348973464125557556641045564763426764422966313158439849274973308353553528834215064757717289070121884930349247189985130208252999468104043395303319988352915083707334717896752354771445802800011439549178908887567905525625395215743826182304364719128826701797572401659012746909513707606593548973604658525690271088743286737948625102289479502477709098713996984661056883688493454331024022177219418389854013476199744741412779071689023600550259915786605970568375234904307312733827425689870923578095225013544828846483260774746772656515753372185611623006440431480792488034598163643249368550277638165461434725657212697187538219872215477594695531208159011771885904551645060538566750669694720605568291604522424376910236082845270243325879305375038993681554096432491614659568802664209812004384064090528336149531972639370729561993533270439343046416235462400962737000559274713442342359655340936239605841087721220852170196644314208710174835778528294797096750834496690478789308108000865880940426534852976830816412416100523416803314276755692947658664625677053846840529016796607281205476095641549964619643766163119565355545622577805317972951114194200951555460768011599644279426237629438643652778483396635523317747379343351054862686963014693126909252426301952356846746002510515582759403250794294177057575855387923801296024422284754483180061147919899917516777769326912393428847214957660293280269375554547052986484646619212039360482671287061093398176854006281246994642615774118130766022384335853637752190620956681890794680472653062850906386223832187047561708951113135253089742161501699326095629429737392035390649653533318526658522482475933127684202809361283735232891718495061156395752827321898279985203698876856699884159894484362523386087736592692921737004792618876528428324503165864445787122487680817563818730689818577107908449814792820688760925313091598635118117844168669409666801566363631498424947202937494344672420709597460293786145290360351462559000873304290243810518761554311769643379211400266156500323889484079232767939508593762958018639055623575069676562184499926850755906974855468870694653590661615789818471050746211480619615035436800063446630683834850505437161380784149701586023975251015106616071881735462062447823594233938046919333193896768813608117267101323600620693535558534638514422989143315851162206490583215309606193170829450660546680756308430429539739934482118834043867280603194426957627528443118997429048599569963915367629914521002469418934151202046182735473185681472974446428916971387299733154108191389677622858906091505737413155840861837573855453021466148047441759085884856337043621896182826259752047901386848632790362929930836277158329855305843513752880889733186916177993148031567635233478619567903007313238606989646131798208938716661989270143214902309032542231164620512730214481754765076369763705264322903694686821404318765003102150368519586130782331884068021856138426444443615779527629730397414787014683367483173964025385074733618452558363059102979622456207140836288179117499941747806993764738914476728105091599068423068665069767303673873763692807385017451521627948620504078513210889679119756656286079113710862607856169166605008910082152662834526068578524676662162645274201735000531015639238389767217648571045461407652549040818528750170966090468677022215254652378247497730564957827479199193053626918451732992339325184914092992320397607357547961215440397857983249683035549379866430282815541939789340187518425059976559013005988902516980504767126311649652863994578908363272932186535054388224401417665583477231574884151241992201004440900455236207997513746077907837966566744377963532057607241230888218262007906859694406171560824019727022007144875663180763352104349961344485715552835182338814889549184466881215766770836943893039131754852611626143762681845405069879530994184683982917107493462776298240038215295282856506540188230831348707920089858178986008641826186253927448024676415470895891342996292809660122390768965823852369206519571504928911236045588218529090013765357317254837787517461589035970727812065576630977361075167105028842984155975390611338301446563897473667163203171778076635494719449094962234704435901905827878492847343772903797473206049400800884117333864067144587754434346333973921944702907385215204287128324198352486930559143835073873467148143647063800593467580705490126293103028414294809254795000297128408991882350699703837040529440956945380104223591754178430745743587738826498635746280595683517864584331684085576332625809896036331437129049521550981238020895957482696819582802205205682440022987110564868890909717472137557884537639206069360874441244695323605268323178587505712893174992119831878125358334779329278763705502563406744483877810663883081025071760143116971823468420982767183930961027543155741017837144770542890327132944907658695086555526479634884601420534821418620224859378191275971799614552592521917187104524642123588954948622414797120492711350066585952968243070426748996830120341764845935190880639009072464631827061640189551575375730744677483557744539221858741576252801606104239948053906026516286184088281161125891411035298523768205740089514897173438351378070177438982879951418601830526784715051591562183066143465727871648574292471946069414109279212795051601660587862822223003136435804858350007759714033750896927042923294493828863930260850370469912498281595234150027005445233417826869401968781967972062336487750644465584736812936799514057852204927564190725748480763084559985436478470988647474740737289294296967929735456142165921587217810577107701454407822692342171766181282593872446927848227906271091667182710897824480068316841168808625795204419275604943888951589751813804891707389604761868018758278793838896084868428720606129443067314012057059950417745373085069533553694845453028361497682599698301254294859901633771792442667172953837445704010979784396349255194158916886221150435408606595586510361371383446385054013871064623248812042179146065823827100229928268661052519861148247958736235118017539944550900198656932256949815793374379946107301657137413381817551042342422066211158740176063373956089320993075998240443981205580063383448490576454381801556685428235915722276466628980071473821316275891081753264499443058297951387734298061910988507294795605494494143781559426896025857728832918821428710809490731210647773365811019438592139774902864297160431830024788999343109724092074640320129305566586746776986759818168930426276587796566864278044121474772339441059611300680527893737819459109082912185291939754388255927959223959687970360343259915450386309240021827121459503703466027971203960415079528416592414880420480206505507739341040575954724136082189990786902171453761470818015250052986722334263611200534579656800763266472368332949392148021412103007605525459270844744404641890419007099904074981147784299489525566640398048399610896333042084436194215368121029277752700450347087976221641125714406893075762995676781889709586057028768047061637603096292516466775961612469031077986650647917740318417235911592968024238238809881640168387922540569861909404814894784793381612115221696492017242033566152193840806105129349849848040131361857992411854104763753002814565038365721642206587541989993764673502647530207725077290371226567463950814540971697240210788091896137111995212354461950948362393293734206416490137967705656125511760619283957326807510991648699950584925274458402520570635616475806634391732057860595557526452837977299665453640148220241565132381484699866844094499341867968134964692817197568081302378897406613632949054368180001396260635172211427495238448256278178005957754216781233895833393866705573199725141708504762421772549776680273554904910618923834088594843905757076192445201435515143529964389587570779516803528375623448244391759279252907201600523793008688685062146021983655385963733283120317664816862962762113474866271284305556814739650712590411238252488934798997050584958132682346266955728452451932600058019327062190975164178378225301110091548598302259917798166641716303380163345545292357615521021152152433998110636625227208406034252600618039322561539084111028434881013542406503888734704131578671323786635703546685462583541105673211707813075855299311897456410353624317619163137972185902051558516995533542475041730449972969058314776904328177260830151456171042824538476824815001905902605491126596306925665221977302822785013344125208725693599271047132241008567921875687748465549741458990041926184772120280438618477563404393916740015035555620296299199606266758919650429983599255454018302767940241910691841272568390931044885061533532414783589386394623009175570187118136857539426982637325673160248353112286274505973023746357578903971568920337147002808021853388197733214139310314653506402163049725617019381481811652874123675632817932794537615465307179363689306535713882038935512246308324549245622592475201724664032382587160661209234877159170866357357434911656689425278124552234710147914498793479610823709710290986065073883767484480508334476245953812607769744443169563491046570948542902614707178683906107129457200487661285068521704332620420469495986451598989539770167554651248770177702337364879703209271249585729741934605475742615798778349321794906022155203403521566650971232613535496710095426183346004539918278701715591939546944089305790537632484343240523773856683907675020580681588011946751227090782224300598495559791618295688264497010013566753127715953406463019961785643644933388815533298342188909869320786986225495608620129567349189346611840413091956836472894813038906789423827171505317619544865652982637325343942480577518293298170769365954505399675739641414842053347047802010329655800491504337363159961031521416725604289045903036674270052481414038306728654236771356277404198880884845963295260048731088183752971991598279778237045312777849141968900390795032598613692223531429353698632680259786284556785638681181872618250799371029125024875667812759992549833854532083013471620972333763172098575101053152050255866637249405040885628845647928651694421618501484956387862358974136414818211285299364645522734080963809973299259728813206479355350977968953985242178846976758664245360515797431588896224048563598268905691075412908251209965370162662185551547463452620368772446975003125772982967429244786199483797768555088935941946968018962489925112595452381367797431325885613332533418208011389172988230297101367201296509210722227152218429989717333681230389686654594509883884135209649245763930721548803635038245437954797719791235375732624056456936987393788637850249220580670527867172065683524807266791279121910234761438235020354715124125073362296752042888303813420254247645340717318387353072062249017353825771175011401052828319586936297158933580370186505147033629872904690303028241769952538941936513297696319405261718142187139924112872755451877383505759164944626294187426615343309695424219140077245930863923158393659390152674173428608782370630375759360761618110655606598320439860649196253887027307211963684347377721822733714116751878127171168260871176680425973084591731603753497229347504766034538892837225955527070415221186001990992867782434703823501702970563075005653007141185222937955135973026804439417465059741341544460534653548190933083404424584382463610650212454172092856284524549217630935742235210924193372982947629694270931885827943199914662298136148040283245580592809006883610051198698383829390957481417739997480541461292850429239992535944733468256184285039048850633192269440887925221642552104991108254585124248141005000072335341399870694346006752087816815916517791381725713337108503558746671492496845120832420981649153718735775313533483574153072214423618130513509286718051218872881830401913186466596787443353649365321027749137471185561161378968522979825067897322091597131117841707013056831183566065297590683717112894214738340074221642478013599917300319065287049724514055968339949474994455781820206555571073477294191310037813756283732034892911889319143268708560666713239728371848664207803221680072756128316844032430322055016544671842913246640043960922363316728078876670863504962300076395371463912154563539078450871180747053687211915072421759197732570682925078280477328968309462221389516054920250185167987391957752069960556087421274357649025490624336607531641155213710611196232529348823090866599584915968685347349275473499601386930308419623358466798683417993389599225772128840547498363750742123973374111481512257580237737576530317817726812994902960642966406084116855351978569293782096402257809614053623149308132818638533884502840860581551581902152018767685617995417020609722053229824807119571734277717766072437669652034113144261578457803937880801690713756594921251736484731932977151780453534839238693150019171991825283484038789791108764662433956640961188711710331322218693121361609274796436110727517545632779609071590670163972151896307418894340310021844087327646907522675194841967273573606471145419499109594732907855811881320867057961053881246313632923991022858707998171650712593998853305073922118210725137306291332553138580223726613998805779621982307835753988534514991365828830033629751514422476614524595324215176099225469991762385015105648022839802743941496351822829010590710037913664395475998955516904468463390437468625461583369231144153315579151951841316934075517997976705359425671226660899322856394417503968400217059661637088362924734565148312220797014344426496007833117683754912919958301176409562217301862084973289512199153815543173708076339782740077592485152969823689427643856253565478104172471389722194893887509067950359884652384424895922468358577387870855868931631702830562942486202310355729591957156736729010710293700643991886545443487706148375309610745526751914123163975603599714517380753178006489617750405404586581378955068658887172489537582355566399128679905290990881123676976985577731063477749426250100671523614239597029645531134859080063041312573260400045100264431121356423351273844264786203007527041948739595131782853230843105325974263541720015504352485597099974280721106617186026393460071877584276026689821821792636153010178097234093705105448068974144306035692419336434299875391444525670102530332921945948250652257886380468415251537737966150669388302405113582397946467383066268601077775268202351831941664533407167424392325028818937128963964738375177496848767524559364792193572089642233086592490862892185566336678173666405654334933316434599953783715227551113344969071914360936620516107922782011750785042350468440575302945681175414926823103036392552850971369526365498174042650093889197579571511871678044005332859896206287592239580627974522665420095802595714553914124638220891417286695958960070622685624736628211500420088948353299026937711967718899786256760879340753964584147621789095218218783658839432622104779019715980150666596109327588390641866097231371350307713179572468103657669521913504611738509103230980558924065684536872943885796505856611294901661296864848105542705769945642556232336268480380605125008942069512473001341568816665343483427904651843205396143149765127104874571183578890678270049585559595784943646989499017363829825842327060709158965994568286423692758132931697907861772588042366665817952833072415079107066302235004000609600215100125879784457628681455484879394267666301798046873417538039983269440368922872384734274889142624680902275462929592709327243413860766387393673658125098309271936708043129313089498123543714154253594124377049034736553652951250084467581807854374984500015669642001596940628164516232056198881191632156201188733643991928902883019783515632699009116554802309735763049018975419944528248439060160457767169421448364802159082406040406105584210075015385961665594512089403027763519547280193574024050541049035356090745387375248959042167533617110533120853469591586998711792911752500695862566267137969071823171182383116414908172728528927060343672437366961058836420525621171765267697897951468117603330433707585064599371796769911632240005544361550561985108644664269034144749093985369434524077997108266931944546922918951466008604978613967788202194855651865737923356093937375086985495468543527946188182088525150918547086917805474810286673548130550614154456682642981087182245486404142641437744636688475630491459794444296876695820138796503802884124508896142135243279655998427717766297550454260387454514506826085152798729519266857722573710510693491071783443611209551772842883435114255911604669446235833301297853281075455766953319905387026063103738196671276519162670367318815321563551329977057528092483310896925551002000059438786805885510465704719394412590169871933551671682638448127212792803587551502636683025320879637491112074050091258891627883355083787597373672248097049306651881014357535736725350178197221970354818894270210225761769201773871039796294865069518149746332266206731721169227916147055469024139225097953213592297680943460044071794731141168961113683809796790724640891949866763295902270827160967530963773646465841154150819960735795979488989296589531090123764921046911743600159975073660612846083882571588547433575156343949375392456180940264984197498797896800346081542359147324067607804651607064594246906046178394360468340897018271764129182813983980078124535724075581051022036755219214059038953476894263412910572794366678262062105891158810583311466665016326415473529147111532934493553467405444613316739252683957868635135453855385127218017340773726811789225477631858760829338919314517329178958411403452563495728938851070680792163021722638114951790573407141769024714246707519686089646969889628283418635872507866846645124591043720895149452069482953432372250291165367995939632362150577618568359186261298609026356338194649690013924491367732705705586559853606120773431714440397824785972748367256739243511624307374414979685776699666743843140127647165091104020456680791812332674235155521166848123582215967121842461037466311751097296900045013083367492954423653479283917024718303079946531716488050432847565705594053068812856252485048034002575577042507375420622490222564934723041353359958571541044284814551374821352058335800459036342567449064078360563364623641735421675567090700295036934494964197024461566835679004465467442903032158819367838816535132464530913556453169316509867886290413277231746511772412162873810985831979168781343897806418739511377092039799907778859737706838913303104046380966607745013836925553211097484801232967579753748755599744037617361373556904351212483760203992531349560780604291820260473153929819266801074411441507771886773135628794255407767557203154812499971935256563382415642709169202473311023260888337333544831137243289281857275756263756134270516884919463200891885077177675089279509382382246211325963161751059712681346551021363868259649787876664205698023770536500910046018721027005380352801397740209740307291760858646632101198095417682405594554764700396513296755846999028238186490294670352645778931611471781842319816907509829181928822839397232386161577239346708369241112677920232315218259810663164153656340008390953378323797756093329023827672733833492361682517283014657558302498893677036355598532503867620643447660795443471447641723789568078645605165489429795725573222567239146702309452030553485021994892472795275818153086052647102882774216194140669129331047944227108159739769809258162711515483850996110029355568415212660778818283977268757660376780958633714265082476563034134300068150360169312555381382846042726628288921618651481470750717177366018692026791514099741875964976523038769208786229109437503040221218446624786092100759900101124720015158623088883610662923976143507614450403027795464477108594185366872228414379092964135262577481018237317060268832328561697459140292759950458178946581556454424715166063450951030994679294500870115679709811906155030522852019958839688781698675109953103332674848528742551508567521473095055869582072820564615386456412932091454536479736027088972222099177504866199475283165502514481215260271445349040583573133869774998759383774415459953996673510556794152287067450427163757832452087904766325987852405918848150512201132725314582143437152911355863384519225776501697071652905232471638117057803682929428290588824918213932984932939912087446172888639695970533970820909140828745033409520415159637394889200620803076848986569831221375512587320428279772146357634279331803538669958980808765154359491162095092348202821787069789775706967343790503552878005282421433798840046193188312581229613570513077533068779562416280432752913412251554826585414283864350439892644764891856692377125861280086557358860600125946376579664360274222841101140722733782656559647056044906619765580714919409613686754554099983189979814567144734529685295568605871939794297349576890602883082032526220677362039249683872999633185095987123054772061270740776449310722610394197452468164595015086281737280297612325319912611940670639576020660964599738248460338054065646829216942094406516506866338746117029565719691964250848378170620994800312715483224654858695410400047473285177175336980668728264498238326796492350447943973877904079206601807302112505741405034913837380928362243313241049362011181509039255724062128408903183053565893151724833572546740138581237990242742492472156470027720527011575599592293622038529767959682484465352741878829368833324859249942282662875304697592373831578231428967784853043236392764952999766308560727745101734592317814452691750868424241480928323248507266577845219305222385616893527622228005337984155433075964771305240629585317037732508838982279060571159690380902040775894460179786369895836239564204864087822558225953641325498579194736436237108855365698689607986966723150304200636494745887894026158650753897429201366216688143182986702024844965847057690492577924272977370250651345543637244868695768506220088407504578557708444238836885014107975166508576103059884929517878659717222769234800882525707482458258121274118807745377094660179024578314129670527863787079652759410286358917072662895534368226500014815496496395649207643732753101270704563017536311169461651126540509319592201748354227325577891045133960743916659523506780891322223182703333665511705567929006771537966455339334027279808205374243183846672621056476744719506724823107804871370426611740109154111522283929134078788849451726771457809143222315584041267343819852512482715640061202966342795800769476465513312563430168469724362347073005278103262401141729257216506738541512178793233254393615821722109445934615129791386959966281852002991775308382982021207481553644491579004400916463580510606776201499652997426337149779236633655376672207233592051562545055663328256880877965910561130132302075665117898362591992544912894632831347264996326081687248136276606057520494300792767269015637505752249932464152792976084221548352031140768335171351592418591165388494673180441320288078781827329839197909283897532956276796186105068393340530255480322202077344446940765045965143033445518565428915166286799611681998781753725493376980260260170627709583640512984866273800548167949095136573745375295024202436768823335612164298400221304177890856942542787924388403112533111157151351870999158517083544790246091038477166770531703428772585481356444906334566417311685881295410853115920598262203260437947501474079135749094607961106565502940317898944096457968993452515879543603254932650941646440904620698462125771370516834230115221342953617612610543913615850645860198428429032799350950596059057348739950233183627449008969514966930450088780048869422408283306687950041923355200491441747252679212066432798386523135925128412591726722547928647751376180417213072198728598250763559879776191398986320797561442160056935005708431666822147034168657723885830257406432493499521399483350741253001884821026459961536650323561025856278667306051867097243165688624982572282820355117206378464638669998950304283949107271897209728228319357152867785640190549002779093718557701529968670327601600317125657231051692789822501089852416359005443076361505909198693174136711028922787141177438658140981932950186109381493803806771706506733296428220716978444677534734580181477385576056713482078329668539499493250496637918550298666243236553809611633366452440825017044962996916654150254744018208308730117284107280099787496017710194151928152307271392409529102959064295756225896672700439159294858425203362121254318502260731049595907883438945155533373184126583492217196778023814695564917950368596203518151951553653834778828280672556290808840587953407651041242674302121278028278848938946520808930810725723222463673538904568692077192373432420241758511036759159904718785913870406016432628331139099920791670394111035333709360506368527982449571002140723916042966421237993690192207203850333267460905008479894102809518431331646403027868880776930114999782909978675029776776445408243139487793019175751387934436252116311890100905746896445841983931813342884302545764771364780380254368957640476571138424911124088485715507623827817744152411014100974007567831388535309326068928016134338974095571826738347784972649008250989505841666732606096877669653332955010044931372688067763393990702658648156372551618538190588123975574145583960482070477676084320489759516763478143998839597423176730602836520285278271686043220396196755000806064966717456869687284348580485705156209006253253301177553062631717512860976376577967176186478130050336074119714448717923821197133361208345567725343004688008714601356456277341323220071471344602942538448251076650881829682710936592765633310883116270221744925528926511723520979893306247009472967210793729275041824556496807607378702797193980828193172257722832896469667695524441077536326676352615285767973045116992397788817246698936669442578932173847045114414619022152569060298280369618043363619621843616165951243991366978764716241143407165681066551614390205990701665400778207450681363686587492286356834669592423684124203021737884327706212309567595119882609173564405425161381895901673327793229703420748907994485162041211832603695188502197320635554008990228192710336345972574439311757385543084199073146516643727041714009238724841834882029392171549682349464981041620935368097799700308274387859235178080934305437916787952680447342995838378654631604617884281365844781019547670794175022563410710783716829804144308524309024975598409934979584790489631649661720952115100647942827349343151914821696364728951650135987342008354893905268677802149452434382256934618910190874205714809383084963586083807056807634446368474504407116929939907532186074793733057156393567057106457993601300556905602090077616521821878789171898961160549922031353271444898584667262239924855208765796786716893278790823398858318114232673599036355147436029295730162085593429857651617791226577520957390970056584584321142342510807827375083824952608273076802455906273901845313733308227721908606057283001442372843997272788560990315730152582585729845235448749732789788675444345994262633307598304155222747632723745976348059963442595711093024888850547577843807905110526400786819718103973131781769496407812118596851314538066914370279886447846359081369993039882442047712300325130319931987560865810206721024698364452987297413250679833688836295419892255753351752873031113815396068795937827329110351199264023622844220434955954422366228981192742856404233489284177751392513091359206000717715001275334249772649566701798256120544940863114970482112555766238029867733658994814165951900821718476437280378271509630509527830408615766211651950233469232420636671059251083292856553689169662211883393437203772740395252368769126148549051751789387020823221595313310352449989164069850769287157577762219925234066649859472840952027549186592613977084215070845760656306517724930375992439417043678466394865638837182388297509369381194252590937438447487090371285546854609190882104784104522598310439896402129343763031379639896720625887674696129977258579230454309791273183769473231206245812208881182081250950934649280512424869486848267694414406827904905975932654694886048310223233480572970656215137397737923380031535081000771940440103281951286292171915422437305373428539931198413300055252329423673292195300759701908302389789246314792818444238617419686312252416101285419273667134587471350691926829696577714658837765010210374090579120670268006343530737895232592223423461131358321115263505884714530337891546878325213767271148565073742884358122739183702984443539398670447417217706830888655811613946878290059770888525833747404362278864253871434691791063982473336386726620977427396234694153869714002502981879389846656602087160170429918305834719374312367849450083312992031929273429146184499801353733758591875367437402420929054308594759076498913809237151860545583033140720058600208362217383229396070597278551118150752217788016846457369828746377460714566217679138331800779723003282221196875532887889512876551199272172642777942647569599900936076223248678835157185342079555505216969339092216128507496271523266311356186249763267072947891000331215740224811300089570273986991348466964124042449548863256937874984547503878368023530825742556292572701660199770451055591363903060336403748240434234611782554956647435914991362947134181683596534667798149817282304632721285050639413945255793168965487639146603819715346154747031200589636582075711343879720818217080437114823872300726061740535794331664941652644723102149083303432824462517706848982904118479698846574651397512213102938043150116492084416488805240920947149063956345825194364545957256555430212972680638721192745371094503777645722458461164624967056175373885041118075010599208604458543695458408584167110579161850292840687928041549070926563046417589896203626411276710416456780200737737858705118009831100994400860578943873842406425315210900271393025782963758385427987194146688012016629960336324301253502281186818921863525268094938267076820809823649454245501475110659700266983103592237850342161115620711837977980554402615697685800095699251931951038649676323395418801856784110640299344745976516252191010184232278827817112602653103269593521234411689071604623479108610742116684190565961793640579699674601437802325068654808142846460454338353089003636519575023062691420049813619384273333652811042997285755385089308960901150349458110609892263404299872225548889267819341576578700865864131336362176015606887964388902445091618453227861951658667527858732075637732413945600889482129898938255572672014724937459579949627614126651234817493211723486187760069329364243577838190548930731808876050793543749195673262977032165816282838293151016133011991398188881457948015129551515408032922214653549014462461791516418674576152210550068438935840237965033752086570026374862324938652666906019432082785135891018357593216490716212021358851023948323633115393741107953087154310651732872242204624983901567969974329950047747309744321152414777476974498581510684017739753365975390921387234194576297157092695428236532019808938411703375209027511912806626379338767864788652606354253609698153772653411631141994149502652773832743857500055964661273156490530665420261858221113128721990468080999004026542192594926360891770758093403279301013912681865579198597432456820832830783571197150797645226271225833527488605206498726252880821470838272526393988311972451838238575446233493591734930718934498976505564944397163098854107904447191566503951183723803564891280093391077794983959772814943575688458982092381537544632783690408285501790793653437638651332990934745977048168830234280543490281562005887051217755164694318525763002457364241860206182156086849810726384438330000520649412146411931489992524016104005635731324284484866462297952071139856382723494054367248359753540650518231776654033587864524600994388106135431676265332032437510190587047578625781842580734583973931394769564011060419498915249129799774335056986749160132969587276569617209161881871287961400440878805205543018184572889825048033395770537158550506868923485139099354630006089832459308495186566438660640048120152936426649523719779175898720774762209597361203160747389067023162004782464701863219461659107128177243022785663626089433423823136184015325689905614261777241969817360247152111830580774947163800427394709823800719595812558931210456266773468410371773936906323654088226216796706856632459924873709557721488805864369814649735308567559537748744221613825926910759097332373064467541264632998725812420563770513095171067602709904154330420197480831574569988294039064826925954486522533069957801994730691125552945197283884930258638023824235443021480718707666520768521346865839262936672245877504314767019521143720617079701267621455092295472598096121455844463660437853226309772947028582251654809385660545457010236244452401050015681092771468586413650420278752130985366968001942962437490027350095523578433086555866710564257678239504122297047668233987617600270369647817832921650309583643328037908116232742531946376302305787310930521784916922621493709544350000388328675233641758488921372359758485240799425196209964649011976793887038365229493501469516931494495322892905740035291534074432599018593029055750040267041527567345724744669047104869176877048207803563172846766391381962048993927191184311070566566964801319838655124864638641802150339497481194262085385740821423084422410301355331741561893644208689318799240375449300574130688949885821931566004344847505870823141251697096324954820538208290866803514285370428979154460488355143242125187530333873618321498808808095759055085046108300283933369467108051617531512145701416558487678508094443296594048932725746189752016338097873919786702064639284721548975233163040625896488791514352089154910258193955013015952819055942895170290377036324983313947258517335254011411890616232020377303111453385563172613660603065170870159866960151121848584842443314897547135188131094962385127198200984442915252775301100746406939686122990211445749254782517492821707094823058169585236993004903810516559684719538247877178584268533252964536413256305390458241087086085871584250922284295236452576202457022209898217625848970124321470929864436346821782777243418568152322622117293919646188196027618518989082727952845888087882293725011549386762780599075859010895722824848689814371225920383765092431259725121912447141715295440330328689962845930823327296207251412507725336017182960817172896753244719411690803951646900799236438571544501776805036858120907894739873337894461748169708672036662096364733002844276943283832522750789619530912009731975782305044912685646634545131945971011267391592679456964222643095812969229565203764065421822789264203182353731955093238165848304476743079064773944258804591748731816889995490484872912083851578646134991248902557115635074036545416881331235694287060448002328440262067804816966807675599213073903217028017241313803054597852721190504952615831617443628774045807357398667231288617403763485932465663935666288563958841639768144671816280135920364893553704007959300297196358347275093805964409088752668127950519500075294808384151030881946222945731885780731073749662052010032699099573414810179268237442299169618915631220062819692398654364682122373998081658917878264256146189165001725140010907336611353146077787244417709751343313992685129975511873466309051192951979618764752405850496394521564271934643478816740021659353907752691791002783888068465331943898693619132934273310085334728603625536008975388192638121609977996664427262674839802119835187087416183994854101038602241273436609359297498508296871977661832810348682939490626056656793835373099831345763594998249678471652035865934490821926187636679448154828798405308817917008652155246879845013058426040858989871076030494829899652859436343574860442514923327485725342505776404459823200016879620746589964108715459949260306267576436761220454584158997115952702802078297658275064032552590568147607301749177413295882637235229445334254465090993942657240452151449955921188025986173413494844705452998772894262805162589073936308915691131834369177707249291822050363896653037160620199665019806543905796839896781451123792685939865010820815812119438778643322597954576051012524592225468916779650809405307078304354756310378873701315552701190744044974648026578321494902322905156048254580068689383180378369514279056702775010914757986554970134102736619871142557045057303242936104211784336489203510627066375590272053157038085614158439473797960216086891729229042340736433280724119205370428395439799531650670199600707688369662192361781982458654902579766871789288984895792957729062829080734966575407813286409449470750274414829061268083411067698545076585119035091747714412294057334867774157077559732640228058760924022925094121488037480590903835277139079556002620370201052295697051348609195443710027111634106503152851056131837849713012489127126003107427464293669513909077327830920866314237655030379115217606816320574502282646142779687464651062809733622787308366797746901488827312781283112177164194775263725888885428726737267071764725320451508543114455645390050379242476072936404438972459342743808936511350830529179078349630459130932354780432053381376727012368195533469649385663845423458009339419872286945324203587370887766661639183498421580198649016435452893432644022674145684132332961133761990782536296897616973761565688658470572664327578088240867213419014504964561594039450582907642576629851156237794513058110330657533718126437184017665916253467902593433417062642784057610437716382517031783761295291879728498740100547569199222019951441906650442358092267511243913569415484081743065556734700111161554666553709980247903974546354080025250544813788110498939540416883201711048245992425702059952249498618935950356867923497540483698754729996448017330656765706597955434694639967779413858658268225375333302855408177028768757793979927714612178264885088909440363996131328162050447825267687046298692816737479282235867243706171764323501255958721186700246533572079116315884416629853897460044507286314999535442666987192209015091837265842688391887730219164909902554798109989824678411866991482882511217804701323274821896592708205081129575008310449264967835758616204319917366071948873357961113764772912114041937407837677306822546601081248910573235764494738264813964106786753510418363295096189172466656354432154895157273903568307503137117991656144120041205175867894896931968047953840494578294331371194982407527485671215228420369742760427389840102868884760360795961007643903515823894485171848584051172658788612278258732321531982826793703063745410151653875566046013828364857764301126556141013467272070011033392056706181970718446088781185002225933893594263614053040613591735467901657718978839948353107330438875705875556473539919268135086276891980342921415742294463475485208992017147410169865616250318078965715885026148223961282705756737483700605310951590730818128434642712121568869556215270448171963003082406342229815560601889481609085917511647631314448708575745233779817672406342174059495839683187040020653353526787910929108808145819786319791795417251537701680644087304469537178659886495021742629084530974482281235353747295990163700102349729799245798969027893920344256170266518646862773043546279515283758397857873747858575963477683354520558821483750857061694675021723375404556102305642873375713810950623163774457276954179478132520862915457677480080083884525341345591928695737371314316929387008762578165504755012300686171742216326655065062305169822710319197954919309873183125422543074453408970031459611383749677351467658028871481582324289416996126626549036799268841497730086523753551153887034769850608303981566614097340798553580620098336396221109876211425039554242078933331313264540275245310748836793533827119487102332444563149776226901486142650929700252913249200612392670636610847568908228368827263960081249343415294990508573069546176069387069979720236437172510312619236395044495381363420875153141598357722183778268229016060848669840403953473186682963216121853657153115015847839869556469788982126797379015814056096391666288665484624007051203423028359261677291005824852566116080085295645570617924802666683156902425443281290716912657601194786616956549968665813622143073302069509201115913033837478615773192405622319506889671047430708833877517254613857448854411476593084558333810078230478869295012646856397669765056016601155325587938279821149771629027924372985746824209458621993283439666865109109476862073880862147934377910179419250319967025925276431685224503980328049090634622001639493883091756403622243758161780640333291483189405013696197434026067402276580736235730798159501080599175038837080731994227007001071298547877063477943288321198667086836232470899237926204588866887363920888025234129379436297261027014819192328756116488809684660543354249744086557143867102848298158457093381431445578285694360745029395154506595994011913261862885861810737554096417517000658571808359226396889772983217549198938174227126035304997676092213796284314823135764613853519702706868139032490922158457626152457925434757174969454524283863112807198490824036761880608102329042500165126107953109911295844735946267897284547890741657252131146528738687292876903748018751616206152315270175828802272999013917695453488319079978706455317589942426569507774325171970347794652505437221899866659293251146126799057173596862836485257606698331424556232140847170081220556723438995407644427854089731354532942255880461201167408053078710709950189552843571767605276828460792236342477465537928206223111164944876837096891857097232860068181809704379936089053071044071189633091643794414628338570174525289933744861374269962515836837522022712441417945054511980612086503284961337324629468204425789358588809497647864470418206598645477156290179323543969634568559305833792305659056748167206134117436432075163981433459947717187657915546461407164694600789567257802940958466390590603079095947953992886795010813881930467339227695080425693283557456686219297205045254866495932621669592926126728380101408187143909830320659645319076490942572008911251334636272837443349521177463342575091398688597963001830545790964460195399631541840397299322758814404431862731267197844351099496067556805269319853816697158387628884372881184543644645100827855377553540793583821990338252392348015565033050145299062865074039697372419542968056061798589314483831825496345524599189314563843547346058398156559368395372050163470196341130566271640935246761966753040692790414251513483054364507783325666911137749211874300168229518546677594724045875926373484812212630455355643536825988317925748763106847682342700658930651145442808275600913720419806070750347621947725236700778503259887631560725527492985246697172697861989725859528924818611497698889828222693394541883885258272822840492160648814378632557975755093253984087355079781030217104593545196328166849717906842543918635477577664228202663634931940295844028810130938016658208275832545780668234182975543903195558751000483801637722556673416411973452103206963244712189104242085171768070341374785368299511912729630413522688126880191339104474360752884874766238809761345794500823608142283754179172806122525300533700572349537444376298364491240047271739653608272769996918843716631396752491900854229929857436177196195007896244982729521884251123275189952208294931758535784662296450439902259527264674302213991176787756561223892856705511504136864387623471848705551966878609434720845819464341848686595877272440302425699989994486662836217511933706161153010148318045290583635361381746091848800367905449080465837889683619615971046440162834041150719904613465053752317017361844034841054016997726952843906341183444630671362841244525553351451180271708588428575479845268443753501685937967719891808130491631527271441863789762558753688586773612973117143676559105605716318285731961640942573887560703892559818745572203487237973978981293744957208223424494005081605904982526237125271781716284011359795199361886882485285431219915703024612746442225544504800922333404706721323143259530013469969410588405923229441227945323879832414623785931219216078550053302864509309595824761369314286716820346031885552335983085034809592859586497383982883413517247965340041375334429974172611895157453484412927085098323039526360456445055584525292486092653264487304933267763236354959176343670815224974169972924851678791760989162378041314440730967842208156432597360493690077245027691692445742565003403454357043324495071193058364833135034723375352878870618943350451663782192936963877869706235243837529343329736496308102568122216521374562267796002280039869640977141360790785486235323114423599302767107537095586314680401295210578016737232084352363044133946311422379393654020957579961933346667428992755547331429239042461852376351832439103270207776055513239509839900650104493876125680817699032270408405241812489397874093817398233164911034839627570061787668244115923459321066676380561987842222386956808378691308350941299993893329460511461105270124423513336602442742227437863511440043130851956247479465791346619648431801103573150970854151169929654916705292432176434268738612377088279966265964679622438091298150814259729075879474914264345989442620554357623184752160732661382770590462175020361350895139183911542799383929642055849879100725731197298166505463063071842312171833518017194198106819167182795028251509324081463248090369133352250367953988424911325049304822556565916860556906044050847549341651568431647826606955320048032265977090020388225180820022890920970789412803108963431958295548593420873717619010035873956964346243686482042764526635545479531283030934885101457627594675713105580008792658940463917778597711976956714040442099110086397017235885707855897175906173921367304650054509003279670997045388351284179454203580933388496569831042873410564748622933814443625842274541943625464251063590126908846911800118746041951746385666852921071096229076020923150912728220112077267852206706820965164154032921464344880272614765982614397964592795754780888889743409361933244816242178610146316858972185648873062367063575070744215643683900932549472314263997170257921857116442077111785257394699005509700802713540221860822166893631867619163007058388207265337313940067163662405174195256914775614019439409898407600224940731512903126646263111651333091787425012686916311832017488431718983763853809634699046210511646090579581463131488462776346490066895537190825261778967173426051871506577780030156458815929912404342418785578766316462715128417361899424008073804984843427138203031686686302858258738516315239556779270048022580954389449083941958356242387990530918176166006444157021512208019659648570710696758867186219333407453957186812397236604999158395042393351156025907557275849315579023992486707249890024046931373078123794366409090993241458413744996273738013887637286203087117425491606076402801262948148462125463013048152522458961147769971900543917264029657303998984302530581746537709495527269791581648768634459123493598445676918750273557130446440946507822764630136606460547895796649534580938974141920833018172579344164742992936904778773305710186679848200555074567076139019561390101514584290960504832188127571847645591599940300259145677726100036597457448790651529455863667208707007192789781151862865572789631668793350334407690902556961466601737905036697847668571752647223760949649900457563776316307575888629695131632391941909920787741679564196951605730793491944002225526178042097354874236804621783579800479468816851275973568859455739157628141504423063418021910368417136970907930367056274209752241439984880474488879186261713516722295170212948578053489548970817486588948403264403078644391160837849399481368337113440602123020054646137264764313094407262056045364683299492749787414558395360722361163388861623885563876569261820392489708737332126234363896661590396841655250327174739648685393551994680610485107096883353659844756513924307027849920897794184577672103992127131297395630431602060484991143628823935843343240074842958908496693756828985920350933566648441258828281927121853162347932608429594277198289377660959748349932259579761789168608814844492419380937179650732337686934380596302495987549271773099438856052287290860215724552162831549422855669666218796822072194488246587675426342854998167496650111805469198861225105696516803627552610508966215355642442552885245993143702983639173086166435255042443146247084634756431491123266022108975190604310372939217707580440584413776787188677019779264081345360936395833400971784687496893526571627861923036687964990385145822299321663886503571809620932563884909626257156095062375785617522351729593402471144504942325492099942285144346692715484916498986054087535175829656118847612660607863625860390324921604832824925849641186010522747499900897748846972848498061822773514074781691750777655007137896694856104126373567686758969212722358776964210281804875342928240421117995389228002497552249169012862729411124359072115696256917734162788880032453011439158404416798491396403433985206536205824361605451468310729451396270663078358371054328915815465492192020670457768795513217186623837756690774476155377001500995056908497716768373079837565159396468666444737186733638903202601831147406402760385832789526902894486401488592444177464029604787118896935389322669701556489432942972080741348864222173267278147273675569567775475010489023685937080324532332498592127000090868939319769003505081752683892722249689073478779309764630864782892490881741401088899479713187773341656185918442486918660140635778646876988076142184450663002344785643173269295613816849173369072377511512345263802856506035057106459084493611668052852472383345732749318441298970762309512835859299929716437485261361178456206469660401307602229266967044200454600587419707598189994335111718998088489018218930945461152090838717574238692740666175697049221117736070046668730575459633131469990360526346156964798602255489733627940591107858136705344835204184434519660358977697221863203359065637603165467050176476104518104118113725322969523449072353042226745960380655870557164063067585013614719407320035036863975404495649409764563128290637240252280757526337598965646511985121972819164122749963844029426842774370924125238721537922814047578292553918525037556238990469388287174974901250725563800063484255015230342717060739417787615570199135389441045707548917818333582372906413834859964416230734773803741178261696395433610020180521923667410563295746412277290207601676520701146213113026787957298502922130469982898678214359853340339428226892559869823499015284399282698721184661197602981453755914338989891626593166689457058477442382140242354147906865411618886823213934937338957577801022146709779139741980752266156221017661011980851447706782698714794723138438127622137672557994375572049000484751980270701088945683174914318443383751127781433510264966782787787057056280505522224763086730917495428915936192362422627557261390300294842519518218509051997629960162747949759366432812961715778137447447821157910601601262168677091345405136737179619297717184689347514633275902804215361304565833844643502440009424313720465099208032714394078044890762665050438195244118085368416739628419099154170407070777908284495666687132546253787303336988481949525741222845642905878474793366252026403156251754493448026426262410847642034102067041751347751395193757668305971685538503480658780802635230972766209714202324921766246191503473316325778745807904515045021898022817462611457116567660507703211383370679422073485429592363374064629102004144242900418419433867035180776583377261276669474726787755414477199226991089373300044866863207965785674213114749181881928787453223263279340062896433971724712037699740493713417287422427836457768218450108169573178318612535681514759119819205375156821812240803808941414534085677165595948158981605999203971640570694181781582402341510194088801572254808221856399177828378009064487577504701497448833752275125713112719577301385418139474503771169091260001064617266823700196218997983645285085729509616115259600061759761973634740879847686421130856352359630611029338301727612896120391990903397927215157202762117368981170056710203226093489778593028869774831921028979737164757657529921260207938908063234102395827639546734887573468075666112399773152516513782365013496048260230222251841989626725594076439909184193716902968812140402943210289949437326136084770314894788903724718194349216640548624736890780681994656514091322134540691656796264377140847475412686615388954938027321161921641378067772623120711939175967076109798784155931164625274298769598571399244657780992073863192614523550000282406509480393274315919382350022688027289621472516763567403436906941905825382038284207216422460957840063967554325485633536280757849174267809805322903223667241100237975263799178311265399332497371068420775919131823580352844575134298654449316048975447749812712276817741836587454868206980680730011082512422266664531420192937255450368896502322343575048071278542740732847039423639424530363374491499523848681544010542005810229060302731317617215783401007145545367474163548966855020297848534926474972645085085069038634220226882407731992393353284642422073008389408416927675973015845026541943393680647978540345250446695409246867408040783182780106744218005538605947580659357817518739802896886684904155995619016846499860580724690208156994742298822134487175981316666617952095650582524131932664504177112517030621231198467859507397713040869766518578907085943867138951780579765778938567405702197052257779462334308963993723615822816782999096782027802027111033413088213955228501777627920713007433489924796986936742808425863210307928063109547829115008500488370068090592316034282794427316499813890878517549112786294776438539579936501433072308644457917144903287802263010409060909346547394141398193361922982832984205911418529640468718001726000440550802554308880335873427186214864606109027038247806020348073147017815140845990515049018567159281014266913697864785091875971572335726854973941776322081952706097368645626454322414402151971710406588805366209241520608218532336866170287388261944562427835405157529849680600412580143430832824976848535387866798005620882788346012788085967195343601802049117372905591562442596290299995332740033311422174688418449791367756585886151804713794922230708602121599675607713217156385570270209821996496274848319897411029708890191402026765102869125662483853770918452504675173770171339917496499968045574690753636863893994423810762650190805919269469786726846377884404391387127731027741166778673173685001145710430726519600824382647203993810664694662644418759979065703280894723187205066596038136899182336093671715203798393555192754208533351733985713721724864585116234293220418374433774373560497237921325857840357427721773283505369359525784848302387929506252581793254602741794876538300445366037286559496044892127903887987735476938380173894330735159996998824521388254836260011970146469223446085401423122422357294992857743100192900788623390564393161557262418786407868281662183415770491479053767432791623015999381470865731214814824591799033195515573664911471660068331866472842604552907692447594807756241677965108173400240509908393550897109061453219584853338892662012256546023488156417288563939457656186936946764551788048269418702330836997531736004144787887014013371336770901988458390896741091238138112277120775441717143334141750821876103176583673245105399775675034558151140776116928903687838389067178710066375662097383619777703873396068486790396462731139493314815817073831578815517909774066076291054277923545796414234262287977403681749271946095254167594638387966686923077395689861851490115946026623893704673856296767085930057721160511017071577065140379381476063988770757250926295843276641986431371078417191637476845799439031766619620693268987743206642130546001459227235196280884321477182240755680104088599206433017132885536961301505533449682148306490857793945348452583795412950303553939059526967998769748783988532597726906622928178526699194773729741343991377884588722642358344228687933655488806228264022280535656130185786239577842593626698258882041294738713201178422542184508401721473525677960091246506991208317021264660037791560670613886142551564364424233270385985370382668948630708050584514308656332997331493470457960355955701440446370147603558530307090293183533606543562983594216092446435372988575781329609953860559705476999161628294181502962928992925289777641101961376765291620497551147743774830574463243887641909145527198168934311037576923269273023773802184068050266052312876930760086918592072354560003489403850764482169209438883911940270085922618632753688256884784276074267964414027194736629126332811165518423137301276833988668973982272181821278861119205616442599133381188857463279879532651166857401209198069203667536282552834486167765683360714109925380733838769097293912198876958707399513921964878616489882839299897307322932734978550094572303497349385877894561168004971447404638389909970885413740368231261932399822681222884870438011456008447727794145956343884042483602867694232419121228309849482824481309947251399928431812299297783237875240874487136277252249276113901526144513364450047230681757991440650329173532013321554249503982914063991832730068279314841373740822504933558646375621748313439545615664024083748654267998577077193731994380867790016415547879272401486732428002052656085492440911057467241925845067101260395609318402846203148678076853000829415502943541964590353692519257502885291725204850462385150772586336718977694623209747208199110077150841843644570437485772226578098021228227528724819787492104909959069211285451694502035833650604546895330020811653838027701040661411228437986697519407198655832280609967344022893372145070552888597478872032970250465144854086080463712631403264806501550366106954995784981631003342819633355678566581469803681531513762109514182515835326462326782525490843285273422996488991273809504817964107199970056651783155981875485682309975840293467158611152131729030848281527640793355365481829627235303702287981226271356018495749037154182402408025261685115124467363079735223845194799644221669845621570984763593477777542851660043474328785411850608417087433274887079219362289146281435766597188720775414017119848143143984220233388320610991202161432903402949391971790983655440837725851436182747540087317539383403451689961741041124087896952701239660724119348512872643518777817554276674340262815071767531626826911055935701852023732111680610082933205594431088233662616026935922121931978840793434485267916895412276281484601473487714479196650989189001903365542646827737007697192990062513425744436194737765684086370879315887417868013422442646658235931042180774060174826606423757245468291221150412450644778874604393751199041603346910151967270368011622913828919269384719058269921049250094037636108550269459212870649217303809537563350785619315807922023757902052002524855673228193995188290381098928594058580265425514784310558640359346980395091663227552692774218795472528596011952088337982272344951119574583241666779303997909467523349428023941045325475105905463001603161110026592628837924712885889504520848231824149600401062678843701183072762108135681615898798761399824286722378787704341935676871337386786041908749672992589363963794699617497752219580826804605281645193631672798879148127431941983158831470192102088415859886856056005876167783066035536225358052647676978123304361974510423225470386864139394603070844681120398198001125425987782871610317999126686015967303336445556979601455072217868953953188683257267292419408998855113037497880289250644704743701546262297735536191614993228664818178443091883326700356609015381042640622946854169423523941033941737414096742089288810622225517308630518339766904423867495739743723299991948029991652945480478053432755104878730376014325532550215761684441263458557552101049124117887721277146252752316938174429243164443646909570315046257656564189014138923077594924199325108279302073015013333370580439345796049372197607108780196876585155898746189196796755444921724981064999086934435609199832515268606437258585668572046668453737615562691659860859117681489243339652134518135993416817053845013299608125160276696404098596947955732337885173654210843410852018822615335179633726033330858640532529192666965977009056825459309671842608274672210510809310020187781889555497706444570206025590492571275871883184944869672026970163670055009652743635676496721450905740144782353068213999567560300004918829501004524976610895988644507118179046344451220160501328288972970631880104909296021348433382652726286573240168988108446707460809032434146405455936835576638812656732969300457752599770655043796861743504795743102512241998346332116685852629611112575358148027568172096771510509835740223852167479576002557653818333257291660337596701889088010061546944001601157705106016089041120893969340871793598369049150964323205085830013984596226945680420942759829861276173534065505195871558757904421872596591680884821509309623443707028792220036468771258992045702555155230576977846892962319409536952889104472541652342638723347148382530960796089081276280012673659071426269047185945431683265127888970535032147142393621189202875106327766486839665485874335174334902514091193796657549981183475695176033782271549807200887943904914726342023011022370163901509406249862713516821518816937808464781018280764029521382785226066437724469687448013513587173048263238490496351616481828119707357748211222463585296621198057703123890765001568358162467925948975339753610857401168351116641611985755776558799222729441932923834082501986786802330376566449538560473940698572931230714030594971401342196142473264508181966132197799327018183286272576246383718678461076649038059042241193754141456470956876260701621480376502542664523365668413169613094718766136327793013038213013265145916533392517567875900701438631464422416273932532614852103356628740873199903722206783955692386702881362133166744813336531110930693516346766694405035293161923673786891745262327959230577269154346335169525577842712759602609028740910509548280904809801579783869928374996536731025423241672088526696713707535183702971504437751274170943431803226841309061862472365303926034849753337759344319360568397766305729043903787797976627761668927410637461032140032522783484536276417535523404322927725938319633641312874332864842543036683195737924098077459687352265277988107798124638158560399970504418881685813614435200999603722116378974278105013834208021660893426331755959562014717807100773077023221396086965593255856833821639372424474549993502014565942105508420351954165985915484694012367486087224913757611059569522362784283756467620628136185272234313626333720468066896770466930512161990355475259688082637900181661514173740925023963795894493691849387076024899909563862850071001504498939534305422908705433199076870711526036217631446629643697923845751653381765471656034978433213811309912388031178211287179748289862250276476146059504283133826988272435270859511213050816587261716940700773338768320864408064696807972726183696000818509010607429122872578342948576983133607775135217492494841566238045229981413955923225956107631537772433829716495511256581736394135669637720275631983303071197418926559192514880037109219734000159492306774935598242287804862990225486403383902659564086892366291530625534372031065086953885147707461970571399913516936723902529372490439239054686176855485703786870959883101066532234540176980580000974122377620595069164884557915515368683975293892866635754800675203245164269867045060619181040478956839805341769162653272933352845091551433298212434356316756825048738409566133277226896457479640829264701094935677486542277670281370440345019398670857315901184112670327389640139032999387235723559714576755716958699033729379262219136099039508980042347940625174917505224472440874694115952906101707528816397907214608143632975198792758835969702936426299564568803983529011125802422264514348626419243976159997593597784881533984633958200368248676359749603481333591427253003242784836588027707723489155915176081271269063092332480068842245649641589353092989329805992621412476255169858790520091227153907831522586765428626959980270815060758132099988662423438696994908325385804420599585909372205916332603326145757117422681900919059858026905142856880679282213538379425136858532567714296437680102579899837870310078845268078739574759998644212994748965444536769962258443548621487363861979757578128032524986870371347300940639554094094356960526712043866689333133304490783355603908571450474762485629365498938603061565948285922540853313402684950277667627699191551806904153374058901187422152615168812686572083500839472035494264158296642763721066272248760449809498068117432916951065191140416595507289944320374400280498443716298449298439678612236113157261804963654701479475600982692301672712734848637867870762866953782425378927264641373266531282518334371315214444896504968412712253346326427066988222412697350886935897483118434028779052794811844672793887697655513719207960012327402917616643103062517433568201348982708233611363649346550130272781520675578349312760026746766920847862806290735867088599997405719485963748632762523381054724590561113615038950063800274345106500287818406239097110821501513399687009862539879693226195100089498476772582413591337439174116614669833861904641678849947316980193651475725313883553541963646533829383976693169537610752092307387466995883665440609991251901147534284654119406138399480401339300443713832184682123710944665457088665497042426295514204898473567756301609897263159582528742183186773213874703217629737833415144476078125404621465028454437701483874841641470882715339723450014244316393320504648070809952626942466709663943731466167922493470153442109760262686577089635918444118418893435428331158814227164921586818238256876184215190517839142255833061742760742912198980301767269163864392116243373722940968364707614482312599743792198179410510060215204596916883471116260289769403058449841439660952446606253907678479228396167681124228465614935079872045263265565435726266329606536993525372153545645864650142305909981130371246544370965277094071068871785382756997130091501580686698415742548187933495311034319107738929659790432350633440541959561861137883802733472395612011347011517108556466547619151581083661821724216339071032295972679098246019380585146500752648724102794180254538349026089408794478544423380322082343621679945026389363169730423209417193661987876199026050537702572344804777923372511559412163624572180163594450970285590501739116471224873734557413881931119703170472083456417690945589043092217384111387365035072739937443509496795671653611418995076839987047402211716313590231404910568472898917850351444183036311857865572382625148206340316853185077159276261328399685239857437595715730971625797512197698503751916821951064391988742366012420895628960801215316593227306885554603538914036124924942185180202183367673457324494331819659706573795874621844471285226876381343392272177281795012992878602622030165767648689283443087076070319322533419729373663511183641174050372938484531433947994705827592024586312653138356811739171102924759737117592851864587163743105602048313236304955769309271463574731542738549872798334217665393087563489252653519282452412669863951305484159530400242623949914852904953292600885554229427585432676602020252200830133172327141334694857430594366533343633802928472413444949553072712278779212632586603932093621644293805490245099644737625646734968530011023352060389216292533106746296350723617449501869884117157856190874908423388538677089358748072177032795714457961740100823950589346703063058135961146281259975048392959922947485715553813526248595779114738889894995589242411261033562593712596746222301506934601697853136115834778877276994944839476872022841258114102464233586438934461003373633943401180736860784077126913111879472879112720141008825273167510869464517138589369252340928922880435337511136754201516740752128964597776980911759898431108256454919503116164045916243578829457373121739971331701173361293489605725601547654887361903052695019582586727235987535087857126248198933635055442467795982824251365024680963059079174342818564893299120050815050085141455934822146078553153193163449610057424435171459084225295244950877360671245533642645143270646664547802844730411168683278280434246079017077398477632727339195000825079203356693211008738323148296515809898534996786484053670334198964213282913379714335942404673855823418520937107148855457766983775083615829691978911895801709776212774046324342722212950544900432318556860184066128882594422905253156102608627754529922334757884846216434772467540341165699100423689731415799939780092266697054099256028935633621263052679988975621679250037044043529454643548774103387353092689972826312442379307790430674245876332163787271927869973854012730015490072464320704571635417165025869964051693631548746669275625505495975909986626080985250609987696204706154863350500989882257610275116882177116348170762868974570645635194697475003292776798406812357188695598370534924401483538756989896409635577825282250453039241272947071206859921964761288541454922988661440390645683012340094902104596079013856124219712046848555332525093198562427768238218876013016263308316198726826980350959852704054132502819871327736101285775795142300725826540449204370686840892712252669756891453165018626841916628450448892039441334079742770180434438734370434592133644279036191174340656187467579076902460270425535820600792668972982464133149718388620458251450019709450361282566036827007526786600987102441727973281510421458890038811791587943356475257909676522287806201653786973298101176907085576125497284813794980701969775109680612758320942710997240071084440469786370440254313997750582236615008050360876891834860244773761375430983588971549282651888886619368641383828712555691583638068918304437009975844141068796701348178969060022195656292054113206157928944406928452175827100738699872953698284408275593625406035614290970281044218240714247093637805542979295852352637014033727219680190461277939162379210786742154272949575725749789143085726940257247280007238276193704268287178383800388047716733377525944486650731121362507851859638011483903151502332976356760072804109994723495520068303817737415927045464743648552813774256046522152897723075167593485664269936866068971897775904217881640236880128491771151341599796722464341629831976570198473311110001943905560206118864490601168119697191275833332328403088338335310390304048638791359353469186499402891615930953366238218675301392067761761092891467685034198562092447303103984707967274253525753521134407142282042191895446068656018769554866357706365975051643371634986884860682941870532778880676685520659893027522453400028025752214479748759034784464289410602714240654395683109314809909676989662433204275102937680186252404319008299393673894111826967426218409913948655811224709293770582455106109477282790455506039741539906979980197861354158137849293538279644924982292163032522546805516148347164920337566297703599773415916119157408880957592397307688607939487596553189821495552094035746107964627748437513536909377232947131044045859838211273812241901748788393764238434606659884639592511075836396553189760482904123120883213037017285165430375352448976436395992543896845198857376535525149445222829012439638213699822904178130578046469918750573881479256584395967855450610861692008795452092097332089583804911434826231231761601004804909924924880477855760554703925581550710837425557977074732834585033263736087763806546655137923170985445054360091780989135490555966666950823589548262034379825757331429975345611625066824372653321326208912789718710451451187978100258649153264048306386538170478655468069788177448625027758610358117812636789726490209279422363908320490363139159803869966376640738294463654241672251263276024531362910630491941560490274777723955097902126901320515765997329052814191352905558559782287026989000285946742264253639042235279286101847259298167370609870644913219003693199945254857302908629231810206777234897612944955136390367507021117449071398332035247226432386227766839109644302349504775157175512307208576524551548394796426259862937160093739823954344074979408318107023681511785903194763775840543142536290851863512314302548573638842139787100863058697595983838901907989235935952219530367184433922700328476412255036564254582684440091544606898090855557891981880548291626806935989574082634531520322474031064328716322770902239917717575138376935420609361145915931026606190725272678959981997837814156528020703995755692077731819127648365748467671488209114471113412220023217980563396426509147259254419953001261233689172945449717230680353948337437965366796065625895833497559799590424761410543068068555721070057168206424020847622645416418312132717086561813540561427369940601101380429980142221943317655184710507187419408224236630208592365064324880925838539021362984719736872942555350185379375264957487229686113956490281922481867214736250128488805431782393798555099373206231122393702880357777885426432678899738809866978788723087052343008595251767833072488738192187254828399673955485563802103445000317004458309617350138228556947846189426925602145678040558554300284932552072579646281040752678242594022399190601400216664645883102920008447155266873430855758195321730804098565223726485347169005641271815866776202477682711570538843550362274081478842380352318377991856491407461999088469805002835031200850698049956292256657784249044139286094119713187008749263389406687557043549074750024353920663257627854448405143436188655769636455656437378237317384141865431226190752504765877832945653685113394910379575261083093594916222990859587607913468258144894252988297724676890877952699345322681555881187417975844826443224532203227129946633542123924047901073266666440541094015473121974843048041403212749130099625063347247773935463912565141960611075904805875377298274499368060404013601984910567555620400247706684473490304122818677059082143624318454256611256949468721675940942079502923850168393235763801819189646573601546715266623827937198698499507248708885710839229859437884943327319776460120370532873920625832005828536393840564257721056311979401917654651905212968315026551307198233174861690859599237575072104556091683318995068880994675936609109083480109198259127133142109415708241789434804927606567460435097034125650634867782658445894289225205097348482590642374108249125116144540542934214988130457730318416181309218211825991223712795229481116661111662183697607209437976234086573592285940282725279229801008068403539525946354237011524165683859568873333158603431882656358556309955367662823217850832718591584681752002689139914755075438697363027291579864778695256800651817198085624607469679020573282326510042192808895554294560553921110433937980456768082764019074764322294016070806210388928466865143605174586865774199536681415644625089078644732734256590648814390152908851513390474187589084478117448939851431696488262164953133544789747340775892240910629055583578248835841445187305339411279749717386015708237392387557732448060777189526896684960113104763383519207395486410883579652132217259928451623879034481808582999385137042093050704319770427467961547510291244634437671601361213298377175188388362560896282237769220438774828800428223577862929349138397918067465396272948372952437116322543038022861334778763995924385844274791139598689557382598715115917848564557986533382042882440401576506769463384321922602075475762858516021238874601943343057055926910543850881262692951401529013094484375621509853597166561137963934362378940174013001427351432107583287969320593169242029436353108332172065497313331831236268207904764231758130258381881284695385597799208285961290458922471801350217923049687906825094614446107136179382075526079210212416576969647467553916210407314489146122762167124584450544891656002340812783989083544042209650592523779331740240320550999929606446766384320908462997198039122685916481779536606514570386518020358815926558697303292194196536867226097860630437365125521500144491051482482444701156961321508654570157929744812107926505567055228087941212914241975465269001826518750984826849659202231030244083520952109807942352607453918685471143923576696315318872087153831091981473989961955460145285573937069360598562279323802503981930542383793896233917902922888953701723939761979073327507078401084055905034504819541858035899226161483689186827955198936727513388192752705435408760272008253313367084459249890187461607243590031069363328560299505967586678945736125240723206326022754019719987883122716609250002253340632478842772207561292884613342233007410887516918371331214763123085749687033586075674265830436335871192865741421687875700149845928817403624820427195942484245441580994971515686016950381091368226142821017079653425928932147884134989689049241438623102988439938689074527756470530631574694329120006090757786372643939103445382346388004061812759769103558964965401784232767055192711852246712900184448440606463372716382208580415266535248626219638445067629314566427926422062201675121117954586096743465376053862357335137802017949023729537398271725711021199687735392155152403168574787922808592473570925019443975306690353162386759284102822861476407852843766251679241509119331260899401117648509635056960150250348014124393260428913623508516814309885143194320185122103444153126627908536777336097886407000540370376310299591550393643120535452892453164188065001959344524997887456988536178132253453241593489475159372380524942717819319180558182975836300847214690247035571162486825862148472941004060289215909158186503644399118435553944349356167972751983921625129693172759099785681627198547896231618747753349844068800278029577747600072460855650164851876989856823750876943711921540058529849126043599800403155107288665167266848947966548713288086327500576973620420883652729551466441832942840460502133036326778081367666667466269530216642917028294270617017302158518535005894458784311871661721851698335213712364070182115997709949604074485180236747339149665410056384224940651439361821914829254264920569315094085997555117955358940982028668585961155662071573499391598090616070063101476222971150168925216240802742703513379168934405149511693526773986983806689463011587077218050579265332435143518961585630435892305056567441074736005826762188241961631475160337384744302728567130303902482136977214243730110971285848740045186410392926212943539355119833767830561035683383506042999336746707746894285875984964034749299078489278821051595686470493929510387407443728351696252794410945151442486316309680946916535086549605388486642490060156797941167292684815345270985891505010267957541661567506142597551589899320816961709076324447468677966123371655555097991596200820569356681315884099507639202451693136245808785831277861630002814901709845358084435550473949155962239146405828125687351395157420511380391368948773237279335210915734552652383118722063661111820204585720128623730756830920326659125680230274021017197096945615061887539042683488168945284685807113621453448060602485569686907120134651921944725713152511963050347748456593830528497910121554426242886480776166845645438178850431316171291415724356762564625004618443933896537631055854404575625858852438097589519474786994376672015577066521386848780441405937417248611427190106900488307979057425680113148326863491554696404733973994188047464188176701442328091272803989090150222061985105366014097060664794979172422814707228637056271797841232428464287660989379720278237440740106820018448318960491140276759075106821226163294309322325162182199730220498651784670151299861320959991112934342230183102224436150080424265195740995216325188310984374704820149903299296004928762114394543816637082414618279794448285847545994128606232068029481527519801233649149765023933002750454353301641223011292382575215345087314090468760904034252884620978794952364664984124571038695790707167270553467241165791356370934604589919291729854146016136850901485639645509206235555449293330400318362323703654642085326903720624317552904610450976391062413058318783397333380530593573497511208755444110906997061929873920488772324806842457026516291151614833629660511418179946734003897249993848540239840267633478482493410491565168476038421244491489504546780953057436568003611093804492552732401305050297170863214431403873867048500099647497328347270915072007489740937885909637441688016271536735295545126682399029172263795842285196969618428626068281115668906959176594515457125296069458373115320753043328127391834109182376867896908686348504065700179517671438875406112661661508225883410864688889996955968040358836500204352457560100672586057714286723382909430405956574045072572078009874827084471512400676310252086081703587907741594470087906410047423097874226906420661703720185259721285798796056585739245249006051037349294532096691312899658075068974960615543378017439224827603432274741353011430040388023971506390393628692422872924811406235351413310487214248552070702350927556922577347505604807889923175071669293959610697591729866656027439620927812016702865686830273723394342180928343225907758505998330482024726460430918472177758418381409075213842189440370327547313325324812985169336502945936694727820353929442566863544937991398852888011662446317290770569633957006059148610671729207765691567559916830152710644815068250899113436089929086585229303690266925465011368834775941017200189329575925405052088182756636872020797468247951273612242963454650961225291197795030910200299776941917387224287499385446679132844187777701417359616468527025207711332927693632250305941407317091299716775353636288576600506744802828403942121581938774103286756109572122751712479173369160660203985150574487188039810104277451317852789240478003634114070954204105183756033542008270129789565388389918248200857981966099415785860241125186753208887953512527136517059756795456804998238699070569862330328397389603904440151673186836160047364534887805368794685907059310676947371719531160803797644154296516831342712245994571729930091167686645334039149895806256375993209959895152637392465898092548220320855314740681065144693591413502849346951702551482893186309208649522417416164757016031512637180670869053213605070472616683065632804145656804324315369908359737723005731987563989456954156483550122203069324373468289149769891450551072758856702170528993594055097673390231188382881878404706642707432076967291649595228124063385867493447869997893909957975626075439235184483347931954521669911272577706798228940217825240268661431724287554657407718612481277197600245715143523825940991580975807334189357007716374060987502998777081466948109150706857996152095747399561761444800001564117688451191891844473724270403194240676083190678389699412610666522646237972440342794474622632710694682793539549646551811265100518990817510239875268756003276658108961528616731215835267107690827566550615429108418187932453731832309745864543481534927122467729868260107655008002952008198281719466242391025616937194719440743341888311046084147293635155018172130946510321167473410225009183961610124690190295791158322058655352926437385470686508008709346379730594077706714455427255026562021888803356537035899297456942268330571348565774262752181627438873048339741591603828231490377686959769596194574413767507944523955165030341001103952010617524083618387542428967033282532868259714550204771387508788116279035671713669314506948889237406883040393852129472756636437093061585132976896599100670264787869835570098330597702690192448606092258987433635183711531865905981592928678121939345093925142930279647342102840135696759280635932217818582008220640814988195393751241741964220210755125765843491035547512447448530927106589833759875604081543339499586997111774785600355210108583273255500320070964024151148067494083295557562061418379620077497893910568848157350720630987083029650122884060420633967165779386190250552262738005126832829992401837717259819702895162686089889069966133040329083439463892371246443459881892274176302091302950282898123850377387401363970329736831130580092063487476752578071224895007955877634106667117661440001842996143397437856335457008450366626052549211924862043458630234311194644873240985208437766766915023215178707987814590500514531776543122565989188815434574881587152653975038450896035880803699692197569527306568832796364424750663347924084234257994880619715809642753182023266701280517219216312933334312132318539689523971876569343386012461063279396492065304879226376772734791353154637266231289726751855741710945252027923575571265213593419717252391349019254774866748481174546510855051005598493733697927187688075638849281361935591148114994759163724707381143544343454142027273903337545713303109500973145521608444274762112762592120069812016529846899395876093399944912259151592857413295584435052627575688748061403200112285673448389162431006493138190444576400091435014400279350376654302245276116027260716032657055828222053517604668064401787028971744475362892895844633823320078284712792171773056766010018192365510240800241289876583451343143879947223653262968621444143252118257219944544564977565791489788070151839209484103180655427529334514013808959972176611376114108601784780308417379814939088946092462104369365602064515423952391872779356869890037357661887650223004756449653645429985154982504766114435601526640344435692136521347340785560246307940164447980676098985933739334151807170311570988184323820937394839783072953958304927180024175931769111015148110900022107583372406930590610502508881514102564305974000660001463176097660978624406805089530180846050370581205098142502125554336103852224885999650040007324920578910223560989705391591954465941978853426723658209761576376389689978856470049340580803451205332777197625598169130697471844463264022873622665116746147663968820445858671568966017113379967482762357401349300517058777324022048843176563594320537941282395686386555068710387431223874592520301614099911746965582462207375681817290215724052617972705060284462394168197537137853638479293553520903428700971263327311266086889719893072405029739182181761411596121855994845950587693735233535107295145072876954218416249877949704557089507601558437873088870169630043266170708515712284220189191553086382938911395793107461424638875480910763555759193756386643852893683327197004172320741252352739411713101889759329469671575610267802959195278687210015167872408860819879308631955582479298547843274791669399195307257638716304629324285951634176068751835589854865112461193910932679193729297512705301047365013844984971540988417575337413816666869299670881904036175244157051211594948682876075124679197640501478053273636853486703268492421751474155493085084036441043057163403960411095165840881828285326039649404040021608200187573046439693079167169750276766719661396419266514702478325652025120345401855702814798005634551955218079128047337527096076519143409751610467900778540054041050413601117334077968136758211033786744445593697784808036305805265804954602877608168979549734640832097157680906345565680118441774894567583596901303967497787497306335593034713917839125398459367062283593599317083444130705178674366197151557965992555070510233292691265212233128978002009203138325060297165589282094924813336274284858266821980856375905147446874373580408612502096881016366965999813348887862896314492321608314469522944377165855206520306607348271333811419797050506678448708294103454661261498301024401359621236675874664543124887236378224905679762603992394109692508345352900770680414008277709944354214998194283460048814111533017768177949982866211806097348345448820724882515938339282336561925018571796363447179364805259196988940865599998197674963287013181226730200213627364387984981447409750150043670111789361928360879102828030693912876651201109012271069302660671016126946628174966009275716269352498293592238975261208002089650845801162474548039340551983813856093570270502765635701822045720209162320228295777432240919564321343119409967904490889579329719327046714756046214944999383584647536991375098781802910837711928645526016160471615331646027576382027821025018956937932774514236147349059129124059773479760220060931446169422153610222069867804441274937107727655576016181530098208870772578368360843190994296665884112109309095022220848197229691139415209948279375416173453683859574217021258202378814332697167178556290617220092033782198242193373861919211866869869889744294079582823080624460706974441921466291468629877367798497984577525389643734657282388786074663379757795152906530955674172063684525486983506401653615270315467664805017127068121156694174400500705637266437879402614956768789976901261025682970064393699679030306184704407688578142554670517574906982456330642723936682531375147448629503990796758967774451433365530113777417301209003369800731120821170464553783039699275456713944565517735743783586876936418601430239665843164541567785051446268015680888583551683558286565854316966055257064797897649040315384597790929801217621728640490627652552943868596495932474764820446136038541552769960706606078650610581029136893341091297896004606153962690835516050241885009692645849837524670553001487901991849311538111534127786218647114766477303959480595570072438637449493855401142094119700603008923955226869459432845270395848466739473159473240307930897076493052468760265271980011910084407357862137874055766936775113339276052930192881584917938523030146203343608378471247058062417258370684054481652051213372137429284393110844144413154720436576867691026573317819410502468873235810118430459186256855719913922789226322519301628319189516889383158718708182366906427963011951785520110497172729679506577825773095273824251067711077163119529408930034662837978727369855370623221404466478732578748311759593788512991624958267300669794045707944381451250703977041295736012269861696525665453780353168430473339005546720570109185649929838196194808416151916346989713630050160318117520990346270905534672646633407286491091731018052215236448232860508137268526305858348920245466974987035780910954453976007701533754317266421862747721130492501048634420609670198587520077547485843177285399986308714862206378606682339897915232417593504374288196712048043045385703907810473798877009800075698602509366176394718296809275981569893320053728798529876399563048480117343741106937932116818503463527280509342293310444063683476132260417462079333860184636005794377288877102327147706582333163786311683598355479113518758474466848328067441484357483116809193497540985646276049198836832451068475613053784799372348436520191034036158853269947888620449130576156851394349506007595559989592131799972095066683590907045347568548598274957389252947770429031275755703065828483562690588472367744284515252435610317724627917105095065800248060503569832460004005194000066187125430531499621057901043287206282839272453058925852707821130670327445057353713380893913918613604178745129189272049827133375813291156781617343459785290148763071502365741263624043874688490796301326713354367818612236291840024099375679242798244043629358475914310262070534179313503067895121895662277496526357224848239521619831204827538847888612872366461980513110667016534075730250424120368997227090699000389730132513184251037646761444820332220045721022525611282540566220563398721942739201073688794837525229010250097588220096139701792929972121053772320115413179756412679815693179729765794998296392780160890127892593228592321865003559814728366587473150958978802769186442466336931176921965803079064946531702670108830010252850248899441655068360555985533031365151541122475931591363406458102138191028859929392812055506702312577054387408915055658619298477591015076281753679446910452638413518382740745090869973350635687328754463673414471620172500257829233418189664433932382475562089994847158909713779033551643998558398360195102172183044625732288971335351435519933939026862397445930628398223145083038778265324650673865987506266520885752962262264484491351858781084134760807510132783111105551506972432420371973801033423869188295115997630595925641928067660435310491746734273758933430560857437878228887535125410969196207779619149314768627302864998255562657612048907979662991950708246202311851406895543533315269226979475150790001645610203833763105387504992530910901448583983759002956721689231062973326618977926644574352807367917877675572397173086635828527954922936837341076919722651922271154442425592819382938154627654308158323494596172158201414089509193377681941642272621343480818595175956656028618247408369241259757247664061421877527417270269230883409464608348651988739694530036263142125680173172780424551867643175664265642892716252988030336507823608527754092639704147178207505122178383357781452263844388285001464014002058335701783133237134631015396041645952007331912576067024106943000882063195787928847476544754821041939345813727800661228227966568055346056903711892128133671140347508929170985625760324414026774197206450595925552675439878647094419238054178499410806587292413560453892086288149913543320706693609737461342849192867638920153199791879399436633796567972072158970614931565629597534203410261278529960508025068404880242347806499970603356494459772088980429098213108781117843124963173302375915347234797988240012449384027774012753645713159739887162297482775480212457568851356073183347111595846650885442973749093158985433585613726634225083533075924262436538718246263333350231698345110395000847420199769179832847272662542391907279630210200165537424637766376979711921679017585996980947675860437050517943306620251076125900998312648595910513113186057013165529946798926615889179397299870070176719031978161004612166556928338934643824588512742589462780945819981121975778608648997467835228052180412385810381256047660328957577863810662925542184054168220416680044954099013421022979275934580503142856690463738777526979222209920869305147092153176861760923470310869600838698530791387813099442450598556271189325305964601545246080344412256042400210069772664673247268165871475718969389617839736212665968911994112063291931278537328438073251009704976291108896426143409535927046659621398880544218780302061555577590426822555246446993573321242358219683314328742595693250806433727187876043305253600552211887447600077493079078209260036899574913240792981017031180495177449231700937185723049793112237449256500344351153206549445654214891441093493241817784833101305053618276245952023059739830025799081652497972808664598797868832394225638900923487078669517830551035642088899829457084314248807607748117685865662238692261840393427995817626794806540798127203117850915370820943655730146454164399934662858567596097672964276154411876861937849022299078618665743237152482840906160535175601733515410614268811763507186921070113254562674524325551259158146500327285318186414048546453031757432348835417850286850678000164074989747397988036692493510447041945089143806318765245572349175255078748659748031879280045162401276662652115024143248058847283224638935531964456282674476040399551816753023040197844264327526997648164963012294976961376955461936004658208702065552024729107677708495943105298668756534462611922734168335087757064727748388500186237782351502041477416577818442538567587576508076182049771929367337942659492235520507689061155652230702451949600295335663326582378356041510468691895607369966086499851360568006150255743141375668691846272112812888895309821775778403296057980434887115515533082380959601677213231453993280481444277497126346247702467397396875089601515774612472190450394106499024286438079952348619679678682139861403618138397796626370807704198186707325188925370407890182811327233921829614369238971116942780051924804942967779649426097943748142886807227990345253521492058088378240597498800893343081844095114305765488881695260510602857967653390936558304557742005455425194012364724697209916732478971675245470961466128050529109154176256330502943041410952531655215455622408366563343174548502347458246604205231453341864472021416331633325665834036359946667021266513607629537688473443352039094217126289944662740836750912638213380783159027541702078811051691054766050923958851542056394098943977943785459506925605664261243949265339622294424352790744279381703168582179194899903583433456256670859637625443190381894571548726012876799299628371933495294595883818808911923371613501847278140108782362253109586761471747833566639160886282910527539587584454072790893010341225936605270573804494065354970950738587127194422302443739343439971599337971537562682805770567253513438410286664724599855455269575016973167314189403996509607226254663384392474011753049723244265549965097442124821170818985858451693732671807974095616523161113002577785210744143853451507125607816252258140510027411881487223440655010520472560470873680090669010861618587307703054331170804195533044639501194762307018912294653111720589666496695892447937214883641976598443863648911850360160142903157774361263045688709311689038330212346855109425068869769198413597590801441289308650026423227034482723565715830828567161195056012332951725201937423754659253899444171018338702508423308844026142929731428037931516161621097728306513452766681302830496125778318954945871348791213288566807559326126751901657064289850588360134918943627340693836766119793830389803537464024793935051912082606301113848301706097342762841613764184722712887930501234955363197272325317652257399548707788795864509563480596288807802088162405188501127619452831538663752009242868310718743365189207360847622887658505322472846759665217567093204659254148859354699110830545904061382746033970040024952559775938946362678789286600343215733851465121790458387680045576967623996203621446430803944510176035204406588416706124872149121894447554863696365072555357292632203385294463617497277496240253809494264092308647819853767491095690144691380453312669014170329209778625009369604416678700012631559005699667620394700648558211666780577630721538655000221973862070792021737317196471675908093447447373844793502633367842742562715434367845717642566834874155931505762655217065228283295132713135608248065463864658890944265366985269158601377761347661280870512129879987998516743905585746841544854684459539156582860805743101980669021735138606419848318590345269483488877971939634239607924110574620098778567207897293313380617175033326262651864084280927110312305487601292777150228712307497102127061867497937101516128017260759683211442711480457090684161271886576066249708148632951937088389605826018116523973021050758986118493110534144718293355232688858539856528046387647925439298380413497716124816224986865440756659837492960396914688636355718155517622366966407599083130738575570099068930885431027072982310163772748719017872267188421873865800393919587744716712593267303970572179959194912108651704823851845428339416803127942997021200108970367019836437461116911878398569888157858982355789329866222832590836142005900255332463889663056172308134032384926041721442211859202816322345065667562176134491278552821145340596852129860131690880047255947954411837775489582750202438721785507493904968221312441592946724118913357598283640201856770488286839841221421286158765268638719480599264517703862661757856656148384984904323041650442433693356005222067059825117349934406886247856484192350333140795195205720677815037288936946866630935364450962376511513855328887288570262019273445290880797120767421887656302378589709345101755791934327555549384717755000377565049428978948587653452304140979705610511908376631365882243971724428096605137428823179916743907500770333852127564902308248271537369079078180609478286540097109790269968372487780869070777586595374004774391889017406476520231584269309270165248276382340057643702964786091059855313720388521958637191862043035675828636605277999280953657280814066751866689224401096192216965832292949559572386377927202523206227120015079495608836507488090038909103910836962061847214133472246600531125088484273900167466862666633558966484775644760262654905133951941927330143601506056560015311944820867442539920915907292419933263523907717011762282497249652518916788948166550428515733890393012098254509854673487287082134881362259478227788825180342578330770847387955193030227762911779527174366722136437098718640093937857489400874054715837245292275906342578726855548345270872841562085793225408502951817967415305621626138103922702245186019898560292994437173270110933541718953887536954332362951308348428400568962496624496741994379079854468885006418103527023782121528560933448696142617417219845011266669423501995470042587432299799284799057970251037718959243977774373122465218680425163929215037250837404989000027127161855458725239599193356388992366276252714238494872397127326798286492656109373046364293658639602013847904075265611626116207384580128910963844638829815355594448729375892205972016671020969796926231787191495108873368652218080434147169055988540402746303461529360621479225548003353690489791694193172832020464720097557418974340383882359546206330368179330917003984397999190814134635800110730549219517797214980633252877885901807731996416096694499623960432566077299364759643294742949519309880792397483619232557669350058985175288753688492632547957765831915525778315603108236363965146635253319225291355162472276494036856536638414920189570640823624281565334107899776940535801362813418088074338335596526023936839294307502660797833743083313611586283800197912037986777740604114934510744425645234305832924330534791544391909794967968923236987976808490559945179255485274123814407982922439424604686497136078505685378024422401291811494611108321715073286933905655375591217594755167744206351281709127365750997267994224398910768538828246374262805528961207648990175753500268101863034166438755922016145712428296542721462146374398138876997460664729962426590938955881947564096056799185765854593083690228535298881482127293973296778239811004168666055710449032687537668454301969446356824320053529966938383144580981947595407530232540423468589177510131626990721756750115479051229003844188806651405560123980037692018502234731410834359342632901545730074103889832893091700327670079908571213728007498695739920460103419259875449725938005963131633932301541496450902580729920823531044776935116490956815340989966926710075887519466906236654770467740051075752483950690321846240831707543630846301267711901435546469346640239267471406651654486619003877853811922752499870108691494724888488286410572363132159651551878676980134891067129049877049182410611214518595827393437791841698863621673654484887570703637663441412375367232218440162180030083873698097808398819938040140766963416634142420151489326669183612613815388686856703295925537692170865614938332099545333635412427651768608162274354348245819102729169829722204302094603148156982284412780945712608780369959957719497214360746812907381637285442189913408232932946247909198274680337045607768987792771761042677999925665285719557885753501950712101673140699111100554820132062801770235941850878552329588521817828819522326481066070025802985848422492080943461596525518151782085653422430335761705418636742790362323152590385815896337723234317805914554945289932786460941653490364567118089506848413357719536465804756332559452535593385494192200628875161973884924538777355854684071691798741180561844818623134274695739149419058139098199363341871878010135018704670544470542171044003057525893811968531271399077423387248917641777285256378207646801529109833264950704577306118942923223102975672860569235163464804365415860375325650170341093637753204603893288406080135768684912328458181511686469422858743621856987060660396959822594756720298013867397030502422592045190821133403144989677046632254698186263955248663508931056600857595428670281311663225437434928947400294228812113065889427730041560317333090033554122640210425951476259866108301492161882723909285705649838569733220676721169739141194983097694572040802802897898067917405761203141662543718638446494674782066407654958766656085908905377004852675139187166329001388327463402761677011620670420447550849742451658643025146605485830489406469910129293442329271016363138274386988192611907242006248875980402322604510686595784184162061547416129692710129219441906752386604741157665480643159733880878489893122240015442848627074274212071307543265319209588404847364045221258189336094414164287146145406149795439411095254000980915503750343098050312327656049704239392360376616467816487007625209048007628023559082440005545695159368373617448180437544074308566118109291706204932689528665694059617210481094115451895977741752433359976031229968625272984042867619989300931636807612336638278788351313936909619622582971239640893341292308440967711145575548352400931892813589772740949613892869315873784619902724279530851714181772710402373996374198792045345127525965238719892407839235770416123519400882584553089723623853702836527767629041221514946741616293739085625464115319037273014313721728559736404365317608195235394604920686893398825662618596017608000842381229348169046686762002643032451503301516313772184204295010690052691162376049987228934783641193493291164479677116731155720797365380618437683997002148978532495954175406973751289010709456144608835306052498238485738341817689093203678547658993517965546585150180098079165010355709176594707464034594500022831179596154617640254280164712202617838772300969682173278449485898613375040234507487219102386545141553884161881405734030784735146976063082223519681568264222708286480255930858270298130858771233165788838543943467652226471014908915048834500731680837044666684583658784854029690659917880039915201434387925664041108092845900484897739249160993364433119014945711539403314044337057272394156072690934141395997169139563853351435915408796827467753998080816871792860362861683078554922110579015737820156022152356164732685369186596295201457665374001721174268518836285417121185793533156467741105190726253104688800118349671201458914074065886272033074608870113231258666285148697905218972627100943941502701692634086871817097039030178022920593376860935974318177168991258481218093234077436614810618430561590788138643771029848234670296184962884615378025701592512043298114871715990988177833995770330335279743213914088533933127655158067748319620130803645106362485356862101032959785552232145343652601612096299757646599828667341713299461943392496566453724837912652091462696678241132672011024567246596369382746046907929057747219263899024344228457528620382587147096947477706449424855959626411539443403526645885608111799556809433318066241716082876054497500956463015563057671857678823890901579477920317340345700952590246428364679829456850122653309831894507190812645544599783506817875016703101027937936454627535636460433417229321880955378571226060219190966661112485539556195479011882465486512245945537492833972627307896948679173767741688057392744051408568705621327984225111641071789551442966360311471764537526949486751300900983114354158439773108339654090944529180890852633035478828605008479684410770733666377429994995930663034017258744137690582215777673160716762758560269885528860054828317752731141357542540182182466080623633074081855081527969880730572559000884071094918637361999987011597829922773418092841602482922078461363153839200706796341401974258060234699040026864999952020319634196252658043876983458035266282632255452138154502151034722164799262535431061338697376145188660085115584957488583542540446640986346222305223921626878494010324721152614233265264193748445815433165837932459239005718398770792697067300837674668607241779724776806381304729843876983607290077107991854376550341053314860897519026650816990843429614153640616963703610901815644023223968092083757903226806025443317883350146409352520624943562275828910552201109723576520598056346353954499218267912285982863360630127163268533974956141724582967620817959778533134386072009016264795788659171946360894272745362704546673833456507254753656248590532514494574511099840751042488141083440621403524257959664026761234438176943556935611736512777006634904364214219609313751424462279337613846372340693741590807018068862380373384398515946999190662848907165592975334033367543032095528670352004697292804130162603274558215149307380514029150285116581845098960533025091239146664371670084156973170195629007004118185358110684644562151132305091777399427515603503404798464928127095019336542112470776615982615693062348191901375624952161682706882589265999114942589599036719886647974890836310375315950622686153401006156571006025185611485283248382708260456615396921971302343259915517334845870875202980504067973901904705753328233672807817540236195263640789207740111112565221189287852630246847765363983702181518942630556207057475930808355249703736857313807084357361522666824712319363495899953287508610556169357691111057945070387009600664871590527604210401670728849985542979026314012760896938620343398974192784367574058605637808029249600417664173857684533783438614023362453632768816337239857240360235761217604375120868513170410414193409225497683343458520973362398947066367236422418396745007498163334718872832147914367676112014583441953090199950791156541690819973218595362142295657388850499242572865819560771004000937862070293439272085243930234909419950662395136280512155789857001206763170638248254580107025234744546126001793008052013151619439022278290586116170660663970167186136386272213926116852609487850892172200691324496826227751006440509286886987785847047945756625133673266386842611569731929169020856362659120894107869715569112520550514674356843922101471607663320888083660126835854845253171316592810365326161543696936658027425740662892907766243555385230848738868894055582994878550440275738160491341145864003427913501554563104353075701638602288644706829315471995713656912188987105523799095403997701454998205167939789832776187399678935823449513787748604016889308686060261660428754419501316657128199519564716884675135857711719792619442090625020848020337776391811614151473469466536100124477504237472747499109337147848036250333170106924044943732467085325213402067965325975000749015472385666483173161958680871299290701298161011579437758700367473713808094273138512773310682255151204735342243338342388231409923181805757326360840253914083079698975163383816014558616329961199279319865648839188338515852050762099751004993568257871145295199797826934304429485789046099887078925285296531066235846427840594411946211445171636429922762596349239312292251261767732856621112708511216381477370446886230551447269981633484070916866720970363183569006667296241361584513603535545219982150799434332569731928995132873996570280020728721943970358614500797742770056101552207462935465501775536249971123425704226454631379551540664774898255604566989789252795121708074158246714373481985932520368069651769423596385238035231624630269849687468434643699326538445443112144865325110045592787584198606227344987792575508290464344386304708708831983150936313671898992971734344679354438997660111184564431314671204984385481792855676825902859196639913731834540430991251805987096247139284322201962208343918807000636723936364352239392203895654025947290866842259006438363710868410660291340265105539334424751966047303310611201046009872329643913054516774620219436646440235143620767339219917122290221007845213879888255413625995444343382453244736279326526636773727175224193297713337996714482917032267968472816717209303886529884977138798657563880407304569780844011031896102177414124770533220146819925701543807693406488269833671865569085120817417690856535818776217206173736288677827237371546595161840448318156523375181187774662136829003521748271233875372146598413860230737582783585030811722788493673800606223478841592448162042157604709242985912028347435277435852039360312148083259591742298699663582443788777070368177860794043882506740570987027109303660543975235127843398595558209718365080486917922955336055711183919132619003978074186243605996140572759425448943006261263018026379363064082063593751757619578833287191381327990461142003970032010107046091474250145793026293483189469327635060600474466604674260081472715622867494611558726814352583093069559321975519828159060475810507094489869272596676443351611156367129435688996517251759942640047413168987148484836731930421568562040985493590016996643939895389248440589906223536602155352863317398652934024003463310565048772568888472369818271599806014785281047243334194792637083625571875175100919191942567452166963703523046239731050359977177175319521240524099139798733759507359386929967514535073076161015165782457113698896373407420744234598129694798644216014167529743827824856403586423298001336418990599544392227336882012734935821698526210998541119729773512824551089155392790184479988009633826252771502352578966366631529205584596229154212196594973979498430349897546611391091672581517718214742706330811099124281240440992007167856325058647071756076550385836006664779786229957569947838612226925510920224495123954032925752708665747421100018109132837738243003328076137770865758549811344694657046292472766077566396534928372107185074799187706443856305563282140044508386372864471575914918107840214552532193330910124064949677179846463046622126169249703324173272447090522897212544390284880607289015716042577144735133746150503605173466831026255856344768727784855970253049896877511392784631436375191715041742071476514687334404784092573351705169187029757302566122173567962189287667712853567765311099552415877445842405159929726090421911560431844652180395853011948818718152597079834500840548242157027546381053083514907750058587767075476824003156728463128101114022534824789260620237909875706532984638159419254926892676119197257768260870405395999354784138637591442524223970404424966515179818942308352218997990081586250572892969451192728272675360525095894955554136347348437596551653200857767401122845458244044757647539014239467897044584064102056890622675956886288640485359659634495417382663350451715194353189514578159752072418830426786649745509772540052403442474163798343950107685872503803472332939813712245991215530669026196118121321481719040623288896327181656129155685169517297994576698445602402668784356872946843338276098092012045667487948868038796711711015806918913868681137216370584478846977351519821747264730587240138132470011915278578304798375520191290605044886890737159277883783770060385368522368636397394965857227852467460462927577462276462511481107103306301586599685436696375385624465175127180115219470714078782952841869952906207810771222410372126157812403386507599345086347933466109403961861111420573046154535228928597620952742991730961289046610389902837940012218492943727484577784086006456035738849398541085136593013944567155825449261422723899911202786831397737232566032417332489497426319298304831477503189327804364063513715552495499158936183253524937217131473884000211004303138460040756206478896166850418789622801655378400319627939135344997387952624754426616396866091689699805692196426092077577797528098273908698384610090664386869267457331825217470228838719578835231146138787113776450797609663538775615181500160786578071467298166895632725551280797717787682454936306325597391960956186718063954537865555822894843909174603492597623902507641581839455224485854865519892671274998954592284082117682892744334269885009021332190381716488888749844060427499991923498832777831299813039485763346595904623217943506589223416872107687723888208957074971816129487625197671297236913007286049974810640302630554497285735351766410848757938113337810754690694305455170026887929141031445914444729455280227600812068415102972155992001844075578383856547138677143235892758757171894741268675856382415383084570803060041912336966489466827077090259189924786757228629860924893315169242291334642336899034350529032428938284097833290197664093505039765395205914407007288010445236264498394609990650927642878301585038593474548492769076977411601562244342604250987373059590490104523532497080986422971078868984599498063496001679955708500466164020330137764189189324358233369932939752834203859831045194548628588558631785256991746011166654179683060191788405395122245947525224987250020984361095632110225642688855905395763148594593352799518372971772233269888265072486089788511923097572058896840551148909076587656740612773813126649324714112400019483233615958150254237295970080432963179789700163019552532150700036158233206964176474735487225289149432603837224820452554395268775564666149809723491704965133910028664209024744055528990460179915691576224051365006148336983620783741038012303327842602568261331040680317468989933892294799671847300151394682503541046878929018819804097161884964270472825739596778254073542281395798115948171200542650017394737886866110698918238334900425241544509686738801338791343189120499200379115131183845663574508648863280140031729888274091876216861696819026937968609573578934446702890098874573852490037751062680633079361794077793534107251484921664056745324791920177400686488040452055756160712841462290078495191207557970068603935004735574429074830862116880864558451951502949036366518702900293314331653448016645960930310240826092183128033222263578369164378578401707210208136603165383052754794490117376456473160272453404694558357993671559357209772157593655828773226347388478569610429377253162943192433669131124915882091455414940071263018667017314207177626996983941503882544724756497296359147296257720963374806831299132120724944069738782231551597810055029736262745680892831326164432369415182461764367691999467240209171830289974232465201361976851600294176584497539026217918997058362009929530835764763302098124713375204805331241080292605794020409063662382070784401805557878919003163518950184673678721410127343999265220094400211065517370489537204323730084268018928339389769834440913745142566502161276252109594630065892714011589256349376719232094226895920540804188315272647382534637261060417687943732049722019940150683585171876548232882064620133160660914002657331447974565449015939978882467075463563115881401970138909852201036061891112076926753827317887488367389506413055244755080284238202100395041718946539275795250508114044225195184737104569413138443619375173093120057063276413454421036678198869511186139521900150265306754416315012645070612589111757459541138584620928156365412490546873598602712882882417764223613767146877901046653948333715723271647544854284352491744296002353719843242884471788106188292884248277224403400266039129744368269365558228356106778107776259999992559541853259989331936629286328081546499609741631862280966558236741685550121334873664028923467616248367803589972554033364610469468612761987933036853536185897667826622396014593810999120630070511323522252945820224512849270859579934343796016275406969880924249638599267211468455427395174307805159694641507037080275367627244840842956126108502107259132901520660831585972449561527103766448395772459121203294984621168280232968304280542972635876343186118868510289479866430468958887083300103997417362593782329526979810961668980710488690479651457778277007734589415532345585055349314509747789749463329295443688913850611263311742028480958601646263677394658400856488675672288706132397381756656757795034550729037931388816898972702898264491119124621285718115760146757795217390109501275757966586503524359385119162419139802895372528978989802687221461679777464435772589902017039519750428936916849336834546789078599998406062553029587155916275836296092121398954264922226724368146175442107740067402973466471315024280634970674225106297034760178307876259454998472461321312193870307448324168938912577784997240359199365061285049279153025027505870290027329863527092241666114283722406671063913556858938007877598423223647756244775238394773065727417311309231121775235921389894514728980209545946602763636544753014303188046636469505895523667570101647592865310768142106636970558225794701517470228798685953944812005851563559669034752359392722529445114083834844921808610811314399967878932981467126166449073252910533120889594903009603063727195073814765283011017492881989026526626233217839398671562083851667877023850625626510241389763673417346268213648703685395303139591649088141874253374350746679820831230962727606399592940787839055218354609661672968305486200774483099193895247850068897964490290957455052813706079312323817218455147625333595215065490395003413023940586235066967648813618277295175022433475619557557499952424604992006230699424245703394234066395909103436406298716225217751959539474441718810478408255935033193190935192227950713237519488151704647862173619295329294835046999352258477366786274526448309539931191608912506277418246678078185512398737433999057900099775009654069407097633559032832609378419804889822949513079478991029332964356817399803729029240051588568016965835207874482776451590726670080014864371083930831761518691782945631970291736583963374180880545282421430129221811310534891647720591732284473279986618587148397753666574693429391448046473662796614172321370883434977351781586376764550234899708978305066986763108772991191850702982403709220193846048311528310955778872057052779988806882132770958621805078200346203203379489635794275788847506736189055696522967409857284808187014307353686167549064311577642543407053795890495581113488902201987112790109091207288230950417393229954425940541820566423783456943781085686531685961789717384252094646375179370854503299495327494383694605659892937496635062908415770530791816650407258510092218545594147266052338805265697903293918655079829509515757564931523286235326784529887533082083366544271302045509069324186346760440302600339194272546203147571695633215072020204057574533112428192675938867899312998265061574076352120947424744347702373210156613790470472689525576166508314631581140643234576837029243802230982112589012840072551696787135489626156993497284935451793973045428007257875097681003734219771774052109554394053005361574331505941982123428161553323630950401411672065789772534228923437131047798766161840334707420273984305800401526196352670635974472552637831491877509054612792404084422736245085154769840280072638337510067683512737590906731369107105578416213204433984862103638820287371409573386650121773480525792155773786902212973915695643884979147427452355248363672223042251061969819594148261558113358616567930251087185205923449513307254510260576615404184840108263210878400940315370729709509437728357479720466720354758574940714212421323418555530123485361156080998975517153069565748067831049520930680512151225129537036767098053416378033305351475483513937448018707223281237392826149338810137620508467034392645356870458271409043215976111338565933250089882414787684161089170096237775483058480625419645264408020286837222799958632341571061313400017895114764338358499802747896341768268410364121500389710535488392477932173771700826958170117687604693587033454281798709878496036721692909626461560980265397584375716323049610288736703825829843386901166692708677446392505604658683537711094940148030126790969779484048846033759392975514856723512542495286381419053541341337267633091391930529603613768902823713684858463171682400997318121905584866857716472342661754673074253775003035155159511329491567704842416600193515694342210828874162082647474923074465634273267098591927617379171984807320600510078681466995089686078635422640607464349631268727865917738927642410450970990954270359592404065034686848990031862006631150444057059468638636646279215341731097246894851975176885468793656150353730322189375745470838770229004250882479092711849984099397268972091957030923423955329357632896422767600046026389461987131351520663375443021006270156917316139969561970317671993825944994873605604256674944528753017906247235346833591153341628407241583453329210804314719887478264958619277852403233115510252256215628549052298278578671450824945228061033773187243827987803695791584545163874648689446146135402730937547510365889549240320417866838104308040978235833637093852083712205303188250275092221055396039059967706571964099125475651729431488706227272112404224061497345176090550888868910792989078296531648948722805523760227609877674795279575740428069103202380194684049961509929074203508546203889888234818786600363505323484677959797836304795551378577478581061039770307953144154689904554814229268918976650612251078866788590237713523072132532864682932451126263065116014152107116005481842208373948262480981919456774631151249734722347565685373848596476233460744885842217917620131258615793065180288382607068694208560104735138993030832586358248811828977300652099995119785513912267630651924174210275561691366497485621541211357281354531839766519566418550939732769624148597169134728287882895536326330312894223905609254788759731442302499945702510506813040407331864413636540170493876067485996176676667640942910905419731210115235247770883514474682895700678678252619657101959360122677170582274823880121993510636741668778645258202701089828788538271102267801415746447401841207163001583266133759236973300493100345848644117101515391198720273411482198532743959151583549735269546049541643167447366179944436278206318228800796688143885072532595486478035761710567210877248916077736616662801080492239773799034456636499471736652568506581838792192437152147890768425519110232716828636350291348816861864144471477724558523742116369151013777998684173171601340276702304514926621679446296594131357259647921458057288954336928836134256670061502054494433727324905588342409205438212855846905653944862354247598357085693093093704612728531456144277876702181411997903340990627654249916880287047969038452174319524728367354051113621631421899763907895914988338343314557982922506620732859884358071889336169051728435255028211418277797943988955004833241645646870386494108895392622551089163447318310521620542533253126540003956775119649368364709268892788037098664455420779654172725463640131186276554665496599544498499231336573930102783392706702850973845677997524669245441480140352014465570098700165375685538411001556316240444495201567034853005441649175553183597345072885273242180377087373321461729739058996271774296284115211084493476162589282446793102637168505423229736277561527487352289565956991677552674173867265233305970816648701412996375846764674909903320024501627255679442489873409915452079854878803561052610083759297928053962313679725047496647923455193163177349172249766534851256145512399788406760179157636615525567356010580395023405159848436295128827559479581719923075788286518812062558280163007167095213083874374386774464178028323436744683703617109215501876455518969347733605136830575085181731229776424042355084317515411526563449848217518319658166519837779915060383057245439971042702564097330794565818169180091318196911865019616220418924925037478765704069280761206484606488846132831797904123117839435103746630045409313520298602279760631491698229821504338714478267627315560842190382478440443483870971349490953810133196086984661457581281312721414107486641364432698700529361393618658738556708425554418125651865279350324646158024097485808916706526902916252471537398587780629975742486139429096508543891031658417959698670431849350128293426510712198109987750356447722792740777093130627615801273654198518510137967643447245392795117395295348882212803815016586585777514605911539609143113808674367929549408083940339498732535754509039270416162923653117155347256525214382014852514237990124018681715885841894265327951908186199345551985320370664861531628357589185659732424936252188407981760533914595006144080009915071916198944136653383416535096111539590843880931218997590355552428585293206649137994249483341969223771448859726381193209827778254238751299053532645811118316211493297072708031771591443845761296256004822836268099913178067079081456489120810135178058009735239639188790612586568354148921385867464556006538181697174311469795959351014357686611945836351828048190978406197404818053302681674633780127773924484892154962012992252289245708422933598259828685341854882201777972739918510654825805645579490016106225308196599914042057206867242606975590379535597289721703474274408741516918378452213084720658778673797912234914657604936758866207637742920282273987402564223386036939878323914973030182266030310401280874105264409546737368373774959039174765129026391694466032725728257483727651304469194028663522123995692984447300563164503688521808329980054809272215623541871754500653499791306193286111574127585090220919193266137949018195203112168427915591024729505351121692955486313404063904817967052995673960644163048276049599038381991481425882075432838149931563375899715995889016554212949309768951998282138470421333936284902258894641986955492345374482825677265954580143729207220190906775116177124661797548400581735640880770302350578616698850264321565242078856741124847980660777751337809231982347134534791953839502927672352284271028176565516077544795728628030811569302766803704079293337718207467887290892389303372358227524026838764893345802276796579392700298377265210510045832042051930407046727030090750493528482493925271209854972826333922983594659351033988322659818365040378640492948689987568902100579108447256489533089560814279036564723205108288109546746073473123717445452252832679243353293023180144202613494763159226153878680471047744063812007344647309268828371652282115768031004898839606664024465903188186177571796477100755044507828631656804509550905841749406804423744529237171260980457127910523173187908221305536259740113333037664213754551674010718620874112668161420923648409029401640900730402027045386986153472098123388190789904899346739632382629697317905942116185595205606336302707442745181619825188266989115822359134397436603105379225378182153487712916893787690888310019435524382292746417654119142163423537192653467010187098297101059969415632580443967628394894857969752057853396311198591335866327940237778959702376910825318203463873609173633169124463990877040390691735384133236037642153024349758927687550841394260774702462690698260670706694838203062554300073176499971762438151147957371671533646798573683930451834117014763436740799631702923815627305151986843906948744054870836369408025537094997303297109671018023604474667907576286597199782169390945669334758913206125548624793116684141999909725905753667647182029336509347257602147075586156994820652023423710515598978287769106359379473313953210042349234796278135211753512280340338350338067217230946845064649439423475620948114552023037320667181811289895454354302479649201007174552187606684654484620064581801783838984763286320253788033094685923550764160078814199543676088951213774393162077472849466775058845384900841863204949009143694148244373736367876160169925789332722117131225394198459527147000076543950579049357592595133713985484187180320857903633125652861699195606153649527412385608351821826605960856608088982184137897414196537116479615749167264918295787767039426861114401841411118702876157723407762342210492088865900529356064991187389933703477324127020407694473196974171934916925291783063292466002764202735081056439047544732216485562402334969648312798537878381096905351839537798654736159191001854616015247445682452009633531416306824151611096597348360324173355131566607992898966710544767412511018907106197760026979696237104382465572520189186141623752206749333197219046485950532054043463494594568456257133851517883087153681073997893364282516147899849949411925675452338291049166564204171567721690957690296415204679119092706006344310064164215046484832718619551808844814825200617584321844068461229814170597881862016152005338626478033418464649206780478039823820248491237247881115793053464449852590791174564462244849843401847939396180204626613818147172873989989853395900829498357971036753921447560190344347884141880534994118084071022868066137468848405112544329864425734175881677436999099930248087222645344639275150614112577930542738773176250168580214374644510921023132024667034068511564223364746362509853390314841347144708919084067437733617023987653694984043835998798753049210709020566882780467572557451789891143422383646977194442299681124739681215770752092640235232746568346808882648528722557700202740339610744291264187415036121982081490066338634299853064154731921257931863709053112143621618003006156674824721247745556393020519912948512757755770233165015501143550213517545620436363682079634869376856727179230030389762118232262939299012135436071195067283671902286358115346663640410755146303206811811532825671250736895683422607725181745903580405402297372865081833463943856191684098494466341301892407784597599138673011710813169842041875989271765908418520637683006643094373454874523009201391762089027263536022272122140474139358620301409127755937324738274978105699610573512525452922943987005670524016114922319003673768286838581293954734062146049087114300958306960119449947476318021222897440711907724050168542554173236284088928725098996720349263345604547143004807416957340907629491621242497949224104043163586766858600822868836602392342363100956924809094532183726885507359494625568885912508271342284054300529549244547720549277295373134448864709692706012157117317130998944400021215589280202031321340589549373602976796151887848528156682692641728576775914642975063175294879995724418460869925930623228690611610797141421020159460377242846350926435723940401101004180766000347330405030901531187444159353318597561784844507991211803820331023525643743015425826015063037864877147507137774408590864436045056154702672005308077474317331720739100907601401990733555620763162402050471260056337195400081885742139262103145870995197467970954588319620067435166263506075457124758280920978963044556199922122453790796164333653743044956061419207906493170300908849851712436232419357364215744910362965876639887563597460467697591138809639781375585512576256929825712037653683532129496614005221241279468265865144413853199198238457644738132000707759244457466876165674715320048662519751412005566122113193616956064798579625470464971120508895542053976892568677579246950116159549134290186239665390680968245244710112567490410750653469087805431346333116166599209247318610912455024214849495096536458771138514857299251366104429504550873136287907021511703885247094471480606868923761092133192911130488657805902325334655756317781431530582592420005659901288659228028533189826400813057895875144742495531570188688079037818591428380235475425278559514647886962838979996943703539359642857670183783635972019043123331417632623947918188355565666403340450446440037390514806303080035905523771897121316672018986294790099544262076013632540924538218686950542373659267368592917066903648424447609650765978862394709343708119833929216833320272188221052704395227782895390382079526388423291859081327902551112445856756543020591717104449152694338291002060037899643607881895978823828619081551197968774247920775445412903547619637382381700863604431686288030765311833536245826674334623749823174862341070809318171985675197315430391628478903275313924096003504388740177808639328450069661099703713891219207191888930168843367164747655826705296945269386403885715455936403561321687976473505004433418791201707967898598362629336505317055667776722228405279604721415264046904249886895344360210795642998101177303769255003983653000863417956246522667362546669280346874210717234900876967309604690641493703499474969516316342332994295738680055880363604674115699550909871782424490330096149112962297571028475972088913210076019085223864941569437999161864315419828779509606264740210957871532548820558378047030916790408369156547680387258609097680688533391919929734283260845940611162725100443911286140219958024253993230492935249657706762801037636818085181066068876382633280080477820174260528795576437082371259438251656916088359677951786102458068816313367168345232819085134071196830837762891544178739143782966958350060848787506366086635817383331516237105485451711030785199237306615246752694704220839761857680735370147325235980120087073394580423191805209491169051839257861368508120680622301001994814174916403582627269144434833248440362239842827684207854047924695469714782239133029837842747057296209990338914571906011556840735307481005076582690442041040419646335344865013042913238281555106306631903975692961809558826396370539633264169467646743628207613361314794432471894666314500532189783846945159335585907065286957416955372183726335157948580129261348716176028743327414803651907593438937459894746059836591412065934335830279464382354177660767761513359817569957681699541777883775885276693938701036208100043640048977923656366528857824818255374721453267511977816583631052057180718952765638475972071554295057507121026208955366232269188882247976090343595619607982080262263090739733603876912333023720683381244556225096978617676013013935194890292825684316663348204844754780564605017604867488863960831786232461774960142329153959846900822649330339019082037615719962413730645276243184743248107857905986077754826439664854167031262692095474639541289011368140430580431505094701799473016458150616798795624487149348994076269457734441999708142409167889403385956362623969323876619398550259670773639480399093851964044286428645578443162490813128334935882428388676016046305909600669412726784759639738831877290635324718027464493780106474058502501794006449156676545955726328124586286648641548646889265526419777452756511733654001228745522920839454594371873944124436008068312566343514290689420092971452422296317257612836582560628739580176447907469366640093725330092832525363605765638736783221244756952652481367683440812323460676615955338886892839708482860874613157304851961120036097207733193149146019545247070164800472092128803046888525114395812046593584044202456490028347617173938576609544087551851820118912878373088438523435488484581696467676917788070187997578824404442371457766819700523280015991462715849999446998810829864705905335338488969772018014288275760333214386462085433351814927325654833793748684194851975106304130736240710751150134479715052393197766894739370514573772031934336686086712818077301148606697435830093392314504180379803433847429711136957213853030138546542203580329149932098064369589385207238197383543659524160713782321382042937774970347478273601250913381411531037848280551186297940124935596294888193215984465522356168386570964732056236667166719985667398364126252646557374523878550822771222775008916791250513185671795077593521543271433010619744763526912146724302150472140058936904459531067958464968149449772271364715154002477154728511306940186953563513434162659953196425130019938635614991822910690354653780964729965638676001265206972681366333404990447757368301566767807960842606775428365811234199070342399417031520100224986720513725200253080259545693796261678317379163386369244836329187310990012711894015055542350026732295926751928110119195541390195008475591790533576596150978835605506430616345384550749221562882805528247927325043581709419177157564293052380521863345180075596333079055445864399992774288318479547895278316178462934933579749463592811188601498392909182425313547591833708052704356978373210952231236449722292651548325865687432570333929878672801245856271276414321616950936439741186700935456777784082543921950385567461836635571880767586519065206354122622310721134623326994752138304047800041989577489918079243390892488458351505565264101517360140896234420639681086063729719148309691153174565182294402191805936037528015599465275380897862895098932205256179709702613064558322207524115123264557897356242313088137980526220478967050723166351916074640223397884229211340752745607848304478056914737077799513110089339734412407106794405237401446740317664165343696246614238716009445151384233946772540282408081150645706210681661581517628324708562671465209759219002230800327569452959359758797706465359033507435558384081581543053812482027587198015045110223071023461977339535447721648726739058210350270847512545458594450176147031279886385227058938676270062451447604002997182798848698281573158331860064209283440203183441878901896945341024252665479559157658428293547388430409118108282342348571566688871820698508490882596485471191523852891605816498751822336226989682243972282953310775793435195654506287320374532675395859547570213119143240221965764068803801430001237928223615586913852411824973480907564922652697222656886580948986774065516741217846606556213616577712763812215223685323282064712895005313990994371741205592099180999427042399596438360805899414167044672428870883293848606422305942179564872235370638164134346451954495255259111475834458230828528001585360157133054123906711365457887582016471028070448074250065177915105617254326280155912747501706542525115952329266248243766605828746124992300622083387145787774787393268662803073153763675964122347035405037362980056087175092937699227040267765865951308875057972923141918911774082575883197014604637266070312756999995266522332092860040284609425359748509140051426568472131417920644561441284102022870095170905442471257078064003884801735261381787453320443074884517121458708001157071640555942567620476880857299994459722656541058259504528561874138024938424609734695905007922895157552643865961286756441789547426631009567982445322622651532765149645845637986442991861555118256708435437570780863767767798993869001856616408057838835854215752417839606549108091624328342756533229117518891552333555611040442653191818000574008250292315932453475463016037788602153778359906129100627119174176016313720960137470392405022475146568072548406883415021397689147120283995761011384818905303698721195589303252337781392972899008166108909063500484536496095127213208322626770556731296777888599323287449460124344622985429829727618394222868343524647913265625380923169200753714525701790759836196545475064853467657772797496729892709441406766299291239607799142304776219182774101227524285917595457022697991455691104844465741948091777491256042564266700037904227628623042173180157699224359810233994832711184694260356188065982926784595285564045875047131508408199189948796088956574415960153315106982049172597450001924852131429070882459261356524714243253622940161472005216919408111710577158521636515940371959104297510146697995128337144394023317261678907426474281936873598154392199159156239389589797297862921768474933656215554568152422660860930947017080356017947107813226330974052544410182718616896445677508989147819157944448457206604584400574140569078226918884022910637004482093347636467261384537297684607395833891750163044634183816798020828482616723885610731649353928884705104975764599005823531693478432473071940584617402373321143416782739200097363566913175662445793120276876965734247791043488373017985559382646622007931229939062927220557556320310556830192417774236886173025659978409446393465032911900949181480589863984260378667999142148285310141331242075092347944505061293258086964445706937233369434219474849150911846197855087593363175636488217841709688565232961273919010264562183337471733830875012126677684241871633839780269092352271696603709880182544258065114969617306497349850536449728761148411716345142336970192773375921633259637141759288943340920251333206557378805388251842092327506484432982841154650217052805520530354797029091127820714997746682044114020326687808155925405834060576380670785759027384288797674725509740344850720120810752039634471940208716929255166108270032495478877858782224949392684940850605912255141957461685665490485167210977960332902892459343937758874969723397093565130904332232062510392182909322471379201118427158588697980543540442513304277347704952059430880208996232993338793573801355519882711494195499669927241329601714003170628495183747237496148202020587601773385130852821537259973449679881332780350441517044618637204675390481010073908641685556136720772540512169713160265090301225097882922248625044059614080524267409691867292610319771377918511271640653667487433624576063574048521180025918373544284174949096708899288897452945867137300723678495384032006709662422633690147529639958738539763608780539885909120935633536050966076221007360666460830413769124269260397919147256679825667876190026875412729169573963287860549176784515657400921938448508969237614069007262072925935975174936786224071232295426127084139524958829034326532501255441294439901872355902049953617829423909350000083291683012136309420257491834945029285189146218166656264331331628771897437208646417573494686531314662712200608692809062691526770191719884199127572883840533083675576545745205520488018774315230623532533034764322045690145274517546179113852485205108433644167358373261780253538480482190967121692061504474003226205631171145446408222771973317397868527633174508872843093566549199742048662066200977045377444920827270623770633496758093261647512379823614242371348054816697557510783498508718213944317184235652145085741716633725470227609421551471516431807895984690944343920547996395501334665948555978853553675426809964990616593855444739285177831968415926640885112682537445840126064667975557592167828643328956311557279456178647646755165286291721998633406419246503056769061639385809158008770799859106462586729403845266124881787268881697918505788399601355991753119537883485059044793543549970799478704143608452417833648593805658639531674357930826381915007151187064772062180961713934296145643860454614023421110852648542470026220413645127055962469068079139284612958056192229520144936478840461838881930416324429516650894412536796622740162866489451077805426130869427523523048134279448781383211071709335480996311268024526299128544200961501286630947715249559726419831776193398684007398070821213352274866196147142002073831438224584453097021998499545817263892509163348422444473453334363853821379681869778067435258179345603645101144680863978843092393899232328738108251572322875599316429534868535971723578077131122644603344711835486308560074546506716670191081317878949078292750296865929474961084959306249329781234851927774854297870762610112367481432968549702902599240926264530559093844486404579418816009658193708838831344868405233132557750848989184437508699259934275490844222809361162046005097936960673869357837033106205694692024892754063052376073950124436828639155703798079897863265542515525288316790614371488323579946427037151744314691071944778228787469563299578173958349298249221001681926851778902095084351836309159068237785316074442153066924596055641100517445858744947645803978236047304407668476997540313864241917457609367393687511933316879034850496470315007828742628885927438472647666355686264623106096326001342826899257233133586943334508434555357670500642397732538664260676025893826410865101179346977475696628341083906630946934275799181234703732190052598767421928115439532001223480087706632312778757672603593495537366707232281637174435448429707521559516478551515416432354472448334636861316826478329175354481170733910179100050237517979861774571392140426367842857915533585445181885873272445759340922388497035045657432954483534770956520842949041372632531485366409541852272837265957808535128169155767858301218621296022926096842496752045332370450282912104426676411928322950131681301773265416758990656016235686264062407846670008373537609496836264747310214103149221086418844987640527327800678712402172509434900815430819197475351891884783732609402266374174442064738043925622081410969599351327656943454565540781790037474670910008093480445008532250248456005231017232155505376433416079333840094884948080266317453470181730468617193103773088171499743669882960489352216024602395212404025587499612095429099044510282473472565612863975887247849027789168744020961181521025459421968133439514297677166988593974583285295782772423661369236938041852180908667311445930704078017404902241495411709960331233840857678768219517289776931692627893638366017478110679220270980116027102492778491261474597337937484603633374682953701193308545795099783786011036482887944914130100644801415584433783797128938649392009169601314568664572135003711583309544487993765179500836416546548898219554010821905549504957435881514280787913085937700648653626081466004099664631722987586025853289068399157294441405936930826651142243998718807606608635497100459706202849519930654408570632388808809848443406817993727823134213424226389213507958881401770981196258325817442142479385364699318432147012570465592696878488463361725080338365276476454193372684407121789340076553825873277461193557277675942305787749511088785041501463079926202050712775351132252852735017783101687681920542743620374683695957005304219051486240974087348277019195148881351952966696615164460148583831381381295127991377352642103975574624438957362377298045384615255426600387373762765738905812863199559388955345704204456160169502736855623209043929457811494795990526817683538935804560941584993181504485129906435454184917973755387440648765600178560227635911504245892089639076458178481138199910116471844790356961918946767883993717209467122116170834617973836995470949639533097339607309765911252928100886667856522338224983119886406520554778688352543933352549741372284874301508315333598275691239513043350638034856007000689726465504120565809592730216119464343341518070005868273360981348560242093205801373266755804393997272526331998011390550824767460961666701325991595759283330172268325796722476925332163341631984867611340202639785066673886365179562044530735488687366186513517425422845849955344341309098916839663245671894287211540153525491846281502761039453438075840873678068495726555978656520942730964852798485163703002615705494199652076362728819634254822735933012133819946444348590218334691957018144418875136412165457244733556567277307318682424918008287270984154882742720789121266744602403717012307195760544120097695913151809526451230187892210886687322971340525673181578343126824132616683680471205908275419066782168917945823669837049665251327795077526985129252512501357507688812653924668459051494576850679770676610321859907973710561520820335398899661227804375082555120955948756041256738436058251711829638780042445813774694571035221313295002997577668662328161774078815931474899540485332633002985578020189741854673271144234436631511495166273003042691344878698155813982529247942096906909583013503015133883450155153676737631568379819169674058382639628317773306598492424638923520379217226967485152312703549264927446880532522378804706202628480853017619300447655232133259286008234313005737957448510539404982704281690856383427910591258266153627360260158731166341610348112678837440133050615438761125247498387932632005592834996264622743605025080287460741740658414313709967324666382748183644292869268735825471781214492786846224989748886001608173577485754504504129673414419786813026299923843944690842459460260096595779603283111882042370275466587088229995096524890461766132407041362761765146781201066019195246308532343413193289845643881171239701116705596488814892401011534151212405679931892372970327859990657867475894445725466276301988956129112521966315658291499188862381462793685051255955242493080775343789571327234656536458173450866633391173949410382654050573212625220247159776210472057352501027711312158126162034721515831897516945711338028394470589104208080621982140791508251169225441383702383526866278073906861767419425259085097961475279039239204604760123667933778223246082246499896579624487687119698650503060428679093032601016615825711258277583829270386771436686240000201283358639479876171091386547650115095242729678787032282461913766418882370035660154711838592935344988890502280110463222323877404035216277220596341332898942019221321885706101275727437068244112847172683076147119177593775485924792805544655337288000361923860585984472743849134816740467633710853339004148703721883801466292834612073572592361113654408972128263180821528757760946406112588576715693255941956788567471753574178280605416741787616718181857261241645157958037904252384888777957278898253742013835353173817589119460181307915214262295706061510456610061590234970263551798649565142425439583951847352426259060173789903522145022546408795939025132704002563191291696978693849255942573775467355422324219676484457152860957832445616368971976057178585019049163952128026266432373133651030850923804006500998155184546065161193816295526918340131133892040918356812709848461459905081006974566114069772622483169735211252314054866638306201285864859039328259947456218786472941775633887068098580482925293499045555851344547225410669427375253533971723736248115471122444650617363508380018221175237355809973145247066864734557202421207514611038643032164865274051073508078141359109867082514193857612424056072811980736992536925645859356382025961316152820410842630650557431928257960891181218198768297525162667217376709223119821021446075659549198586681683620277452136133160060615772134046530977932638052991746897138656777700462049628041221910241397971012639977219033644698841209517389267294419178050870862403331598369516081974021422619276598225972684915711213694303119217757506837207892817258191764039167813227501926007157130433853554448707985250752777504948765504084682378115719623795344851339337974001856372008670032132651367412665072604622658541157350360902737380934849623010766942977215695275191714037102178697098651840431671164741684533254567041947325320035699323512866611719294933941035086042133783850667262976964633193464959900919689496453021554193598259317780669475464726687868085045529977106525886704283950459643235546051267100375077990172373507064235450915349649315292936409493700750267563618334891468250808813285085973988028535401703996116464987421127530536065005481385256034428315901098968883004444115674085854564206035440220138402235852961890571043448531730885284471387319736259048911357531129173640767548415543316759929750518857133479404305270153437280463818094910847680084806874204081277146306813474663652729444244662994854340819169139591701036914402288816628446076229931831015872906217553994869211881797454380778826610225401412954513146954606393496190034696939014143223135196132788336277104195063057734984669322654929362483381811185906883289462225761740054862835019016577444287648736010191444916894317489715069083755063595227714545813561950084259332123417389219609298117911501807928485795815954409191520472200171390098977899662806310281613602686346264902111681432301970360041985122991471083063950723757986025705559087620620655732604430149665699812682129088187439452459483671915200081069606536978146555790178219549794512964695241829032784524621492226124415133469233696340004974223961334276047057695302129660216998226751588299953840632726101605619692753124951225640708997631538538000027765835871345520269218148485839937611696685322093304745465140671061083193022984844029073428660385802546148886068010515263716070127832144397589173640480235201830305632035175580933004466762594371588127127438290736030763657550365744290375284942060844781829897405541732339613009906045727104147154450641695857862350485055514755533369785120522500406519766726147527386917711446887380538153095441587776504466628885884336519799817487418040564006431848450411574100637987286885800730328754558070042662098905135059021229956825298736082797895436131341471330496780504970390565329599272940641708735083709002644641002137443451256315849728521247868209666523498016685573547821836577649598363467037103610451983731801121536911404304216707731192059434188559929409444570954691932404804794044678183035272736963702422832360613864595394525960414112189135443260417180951239794126830686287724159850818243108352701657276319313229028885665382360319790017830263023047217505538176689837883268347220824182290737645747027648864233695442258936692776977089052017818956242475154818661209437549976055375834806702282419835363099037275792393350127136211677582031389063069303845089853095218262394227018591626958967271479034290051877342882579660161493885433399934299005595014077143784603634274040401135554701892870974374669344821232155592806718538723894567168047238788017004355405657906133617319695294635079705079879893235227928127021874115662957981602333593379425907362944228871573668474882448102484430877674482138265020972585669151010066562023471007243986746696927477694793824872663151003516965462116877196837738117038626056794475307716177033105385161116077520160040550267981452726502921420566605363954623144234228131855617110901625029667346334718218910212120557903287307017791495203078230501933686773525169844800583380909204134769183856898990052498942464168769540380038950982180088638263150079482816956649604512200145218497831494148718316558395122206448542755180637500076333759442170420438834533574686329470811950010338109164514683709901991124367146161909962140973742560094407767562379826329486443445862890743992901397205871017089505710695800112357902535426642759035855755382904298066253041785330133576969453188479166123861468321363970242311265113142283442644180502434214501934338026970731579569838251403857915346903033368971074469744360398952423764648277545285244130658252604496497670260436174605502964182158003888535938567976903499474422334911349101777272783001771190291401338096486557848241741732885294274597587643822064649319615832779041867595397246924636081722336093655202644537495056687473650665042977238990355170175161469958481526003070001553205028543852338961846281922897769498254222377644329544470893177019415028670769209347171685815246025026170647500616188502362653752290138721031046353093165296700592659197597702797214309042941261837094238171083753087114668539446827642423375166616579601933566257151971073911862141797212355819945957833783364385757171274132992577547770589276648534342303784258500811606891733038712372011568639444533819459920457196044073720132285072458116641735569346674320048125245887966524782491425975920362068884611271179796911849407459175892142615820601045440652635095811873812883342751895185574085369991591078779905931788832700342406463997424624491042826463165515795483070604215465716174340317172455736313626758406904797408745242719310146193368614326349407659370636897198650415749302810596668928637959146061375912518038205290998452342875401377182682001291551146080881887749788991784580234546090199455690109413961540798946529787111334438953967876863777966083316020564688280300760127336163855866870557673259208477959040704488110227836640066634420605081290734492372397869583060205433358732683838618050481845875221224525379296360788037074720741283711360901235839588412034503956059933861036570208679102102247140235099582827117419449499579833954081324242663494034104420739350882271439233089295402473159579606855115854094715998070718807137277500029704371565029602301996504627830752564986572770837640231900676124973153750914154978877725730179994396867465114831406019209714458318122295474732961395289827732902207094148451361340136424737223607578236362206789758440634720279578553675512503635456287729709599348240179066818907655920661239046940405263740926129383586603983334336845097624400649605988342602876380676896457474469913801560509963288014651295621270656442897980585749350916925505292056649303539968438531640874520651634270228657678226643414644400980119456058281143589094438941594656995947657813137619938777586845441843572886962892255213607945218778919336890870731835025745481854642681655452565478755004323582408868616689158197783428262688835849382359196156855498922349746524963730573399956116532443189233389950906986407800216646628469886100216142593129773224902894980901981369285980477565837558801988594651324007831413723346356684477456669198257233838029679355637578003546827473421250372606283075212428045482552473049944538815519086587243327072891717295874931904764351216455708094466139049319126425310300791844876941670781421967562486750052814458204653212323300548029365278845273446124028432462793170777555023796432748690988560350051302324181329838715346865110466819566870196773024851330150184308256448571564033614520425371659126171163725649576211603532157654071512553497225553065926583917371840089939259984238352260269973393288163628928914109674639056327758515040602424990194571751407094149072142157699202171156178209541043992851388924161963885618248556519454725682705692300024006957821474193041144416828918839493501876576754666090828537683221872613879670763367951485754598814070611797234232005397579916221294255362213613162447368486523801933498618030191714645926669307331203173777849801415360229283468199187936759178436959037480539651905819340941430439501598598879597628609274516343658665380394136439729941548494508556487959539012504005558141401390680487540824099741433093975986621100040821829472565660306623507192530098161553598497644358914357150276130236173012788695652562054130035790021722849268989775783307044340024313415244065259939020448805292976221653957709304990569464122705972597173089931434120199255350424655434613187932428262770814327044057180761278698218279089510162536478402870613477886263484465622095943423491008723028068207494331435549582752935071823874871532209672274077094807339197042918461628703596919959024873246054938194733960048017555289556320555139819506694643855855386776494938868113072371397368538802232035758514787383872296345014673621925250753143351168667877530628103823308673992396040690846114414791465159357223676539519950164532350583989487834889152081875742626720992023992446079129173612055748074263995728659996633787181888364205047603219317062477088537740846652723973718565094197420603689666586026832681145870161347760725482706875049357686547557159763717182756822040032727867293366879124632887481344364538502458989585936997799511588977555703694177653059657383106587355210612983231379510596396432625716715684312931668756379116327583836997365914178211281769551551189442534969516509831015061539137225315566027713595822518865966642540209787157122032329054860621997465956557775833925318201097262666772575064441060393660425891439407947191313408882444227657967299967476579036873817712093711803850381996125500564673581918767755230651089236924576954354922850258644262206977779319190320476028392674370400948133059760618004435872236166535584447365424556010758338453092682436306007204383255568368882686882374790385495814509197720484860873183956191153547008106035523607191706151930331010198475633680111811974287573927277441553473855027802127973740685396619259689698334995656370602797989967355898455370124114221676591582625036537815901675413154039479325539941185086351748219295202723423010686990752839557499482080436874469825389111162344959865845897896775456966541846524433458767435490612594161550027107600827607232247250263323137729378015046311389594524729657717541521232356527825524920378656177519223024005849459705038596847667111097188323299632592497828938368284510121944133664660124712224151831498677728887358048481489574460553298239349112784470991486425751134573495106972581104022421647501746719372129712127068992828069700522663303039734014310511248038178449920112219434708782538688266175295898517877885472261126208313349365777912294841884993073758042975213061023997893677362387588990263380795215861468175262562236383058667607322427480364287892814377245777702654654390506982535767790249967020837220447162558087399195568147238880515205861088905556850675569885061808162470333683573927388426799488524309751907316492533064479553398754996556069162799223877426894098645096063788981486741421436296011274773989655016884257898202513297517202926201480756479907450258978128553218942930649741700777008729720523837749154287266449859571341588775926776297719163769941587324439036306060505230518941385471033066344188708542518709389650242243382021532252214147463674313856572861039663371692560827764793567820065542948830226416700487614989666333044787911360669280164202400898458307307030712210260387196963920590880082960286503039241221604111964134749330311064538310226228685342184633677955520091751926899546757051273324083180158695813370491778778449569347339228861776158676570144691835280141088282856762155422309440148330184181789593644567824429481938814246905037063371855419341751531643754166295880893817616486671722065974094423317927989631266104722918390562397575312526033877393948634923236871011043784471887476405351126037109229198165288664744855153830560581429207980653782496408998632993411430239558276341399944239122920573787146138225690928272658288385047221571692786163792161055966490047645723918224087722670837467510951872579914435292319323037586762776863807511330760767776103749127910714897128896503105674492092602824688496000167293929009832067442650362820688135917192395490763081956553219564399372522254734512162092262291275408555585552243091003318492974782578382394300683033464706517150614375840112965434513857568286853341521139269365229844622559013677670449303636554948277293560005036411063824049618600759332108983376423902542360711848360176067061665641540876808788789020528073015584323500493845545775818805713159011789407106505784467060537085382491122859721799556425636442291285607276814500777784998347083104728917949908913838539933985559002153478769352862818788883362365378095116733849557566778442127532262302560470819209899214492393197897061865730671216404621331407128101362090996171177037777382736419395410687981681027578271389607533412811050308744049347990795549407949503849401936582610420676515561433728229434469544862955685938094663928842243707113473997775698863673554570977803416695103114507765625358818557054087432565616274466049372414890459300458184214791954950068352720680609914114022715920524986886129593367930102642823565847654428711764130585021596939385162476339256943416888356932594428502332853028388334547614662959092644103872002196388731270855799974067650967866817033840339180384465363777060034443355512586037920067738379953714905669396246719919733318434114522585053728015594083379456159649821177420592834697247260539515572436512140539264241940502337493727531207926966396557834099400033163258911099680076825632480927906176813970402105520281133034687031157095427834684667035489316956168240531930739337104382671325356704290502825745285751727442261603587650601095704622814059389035306393985453416126728331143262620330895294132533713585733900459217235733571630266161825362587078370178812377277180398392442430102051029717586849344548269256031059174197265650137297579450096425524850518403952168235748244382706665740180724615983248693620440333293801099980655112647124246208630972155013432533825477989490925050083583291422434903649647535057748062757969179067917535748960598199141038389030329137355307106682503966259859042783833889207756673489779788169134599440035821034647224874789743709282756544103250054645961866093445426130206127971480560943997322865377307812390667397976049455465186623900970812618254627876568492164800664336508636696543740154812611936301993207682716950473454518855398317866020457745102448280630555165309808624134797986944754432800033349704577132125840825260642786246670633392759544754590655989145116893671801982463554976722205979130348853651161692271519262821860280757168183435994626089509812719565458533272011890794735006727395350397628971571811107923300313646032209894873732715030311742971690943901442833223925191054081117734769175473634008426051717755006469004401426188597275701339988471335938814634465024107600162302309083434942821970744461286688449893345457245957731527344536887216325128825949460508963734749489579747239307507984149129463145175741967336458628155946892526212820999270626974794873741407769560277564114765803848761277727639251231210800229454082098927666803110127658019527155952671281628902307944551072288140143110609788616427112298280545107446556139945837372561641942678140887685281920078908634144805052777893142194422217871056859195295794532317550285375544703723400427028231409146836020985501636351299403567106036103648050450721779948586502965224639639906338008965591772666492622085536250307603443138345295909584318011024864132646249939586665258202084519488302225501088412744694354387131515199216124746502618683064664430101600648173289798695121695195636475235483277838523376724141616088425226220343905596590916051856512396716367818231489796363782927537848434693621185524651101149939463630054591131810310384227160582426452660642335786230289625474171672342431263564097205820585140250777815469270382240348979582256637852255670087476422273090189670966094000389609717939218145405337198674409653417362931875001300767044902926149470554765776036478488022265448534746328240319017994189882612286416593175384026570444496696196163302929495570912583105053284854607104004186856864965275304505836715011400087151387057146418403518199726381909730284489352872496343736326490267971090129749335983500589117324200252234706263887098783073622036625251074540551036799599120101332544133295115061404853191022574659978475677278871144245282572507359602750450990685263946305100420888850444411815621335641483762468083058574162326832640684457896452778960545709084749084310395969281286644375378280971091767628170642981300249507470078141858067046659789586078488320257111336494583779118398744302290646998271994311615754363359836498746868042975512686530216501920680777837223944622521795837363710279904654750342300641244746334118355585703286649741345207033740654534549120572987649824624444429189136524214307513722181201839153863719832580135680604492454673735850672643759572507123960552794734325194986753813075724349883659206154384083094059455601434029197972694047679338098362597978605402581926705111217793366292212511914393011443290273603148882667050793016074718493918487252090121746644438666366644136604249679782565685048983285218780270778569582725996174319862124600434474311187173432746558882182311824453795420575502879824981046151735117133590034512445594221792070807901004726125861057103471872543509831583864511947301817784602174974925468997003826217888511237354653695074218801193162736316765529207917865092871280323590369396028330457196881245641613317627565743005488095332282125570847260340471661715669838399538079094014335499925509629028291777294886830366491918340119971357754880376088474610225928697780263129700581248521263349393505680932348649945808596227959643958990592408733455894452466056609582685842182065438120520453345648927555088375912571747340757632935489013576409061803794665928179890213218305988985587281108375261346440913314737689770911780189132297384942861075076028790564454367059809107763309514167410490428745682006611899833470812255360830571072517368357805194256254782449799176700471334431886829333761993205725500762265455149552834187588934520819577678251190867436189780041125942797753863880532174233880522061053381016329256395364014915712790155011931163566362245287373747052293730814775896902064156237807805036907116568196040878212352726142584661836714399326999535650759335800698984727248311047803838832805977204590049458682276858972534442564869420765281565052018140474480494428578034258198107454132074931213216883447997784132110966626139218006584661251491515227298048241292166542916283600608124450201987607273134600026089819086681011824600663635847816634167063190971121206091883665328537740543097780471368613300267514812561550810999439522191776265279514439167659659459881623630873807993555720160287674110710940148085052321564603963385601914608399717295466011452717701956225663715598951506413304427646567473790168734209418650320477048102303996208103856354430452506371994429834197071311632613560829917691319717640166602321665189083333394564181358907904209012357104924758011536194578104968780292421625142725077815433536085201970660890784472038349737144828634438500166167094862499106542230453181167057923237797610064084491546895425296877861491184108990252557375288650354222389921332547601234927689751084741286327682397809579594277271984094894139324245254510864315441909562331095376733654488795693248107569385696180561174158012509693733183052987704075702708247502614954224564725771188695637049024656330973134150370879597325981393063950242729205967062001250342625629659112511875141525817897434696222305663684850039182135011341980202779232513460113941529050655960898849400187496477542347895505444024174801400813118210809712609791686246206298546310606805818962412321079633794127330590697097373126641460006436556361164797399219339251785482427980557444178969148278822557171791106461414897848991735298766925109916717987233571626678155166458953591419054553657287504458069479333058734141424017843426030970015540384208303096392644939419190754921642901316330307861567985539722566574562587321702976332989108481364063141525558700816963479235819359608373954371477815659412809413302302815913453876305424039958057318415341820238819639570516826292517767383910054542782280812788109334012168859843275501102173436839611134863445176527216854622863145635813725609695871748925596558202061151819532829830990707085204418266273502021424673192941178708027025924143690343408973945454224634412803677489696833722341791210444618861678015322414943092251984390517352473886006289312928446611060611649014837989687920128455228358794782535343072038815291311015481974644210725677856399722975747689965047401628884413782802181116289173738065980054797153960820437489563036539733296259430256680619167207645135802466847774646330087449422459756785176053309098840560974110949041918462936357690914285382334611028617539336883142398797458716701737180293304292135351665899520363245617816760798541234213381743594015280204431882303132334670939890599771236730694666909126510360802998974301893104114460237130916676902597068769910760594474715625418772368333074032145072483039260178826273979292730142374270432711823740148839346364598322399254806046702519559660785405702531186398393369082291310429304502871370830368022333550867336156336469151843313905988011509542061625525230548551055186292324340339104486670879548727970629427032204926581875693763734599458732766774262210877518756357714302708790633478045510958758554444793260484108378573588652704271684071189398186669427432623077952541304492193044323016571894894504120081526245616450425096255546954201393554508979164769697820105875489327187641433717929697443405587652711197349045225988570954257907130197444970511551675472923134229001975115575839413965598140892450521360283714248203821340770172409538502730966809972622371182231493557982517088811967063575624242779834254198742541695566694273689315551680099776594738107505368626303781129364212754536456610587078803472047573629227820311928864888248176941078876544688435346447880335636143392340422651350253709369199409109165920805987731801113410142675727316670021097829799511526487048413796296979352615635633421379099797310565600218961260680261783600323746767300096531997186111969903747797248656146534225183803322079791490206968437604930283908322137452325940901760617364024520898917798691537742029171584312815895085670981428390098647188897699715407406207848476602933413788386513788754336518727702582851574998215640906496501277963658203884076781552422499422955848301107246699724794690263148917881168421031335135023924415063163667422522103235163880977190529828339961855623337006515119320223045786403514857565383044148594337874553332205483979524847828424036316594323616512198431518215502437660660253083772585924938010627055683102111094674939772973380620189843327043560100814079724950985826246488586043634666122463202678458556743549843402207840776361621634741695581448998976989152783297378276793935687165354520392755835637398851741773099736734857936915477215794343360180559721460355970795844858162537910636209313934030640560912628165065032219992331548979960189575117440115760761705870976448882245203480354964427070936589919231702282828342149549028300374040556687952082481579067440993592439501652513020929931208268375600186152104508707013793694593585134762106790750703472547815913675119077107466600515278209517677582108451062508993223080359315901441243601745384341941324075920181191920082872750827938364254934403709165422423347127153952975146530960033673421931628324726972602939632980418070191526681776304767257922168755688959809333570873587360075861728671378915149348518555970912898626127262953059585667304556750028793508142826809929595977708764325793522520720705557825561157773227791718148126628206349435661961010530915698311466368266966326314902228949415158826945078759655669456103800505543393865435180317726774458402386073446029637760129706387637306270876306633129444957371796210873729247339483230709313273768032938139607020477766560781881422721260169167692656312223330809639575265790318190866145929964757411578171363187308772722566543723167217195304492536484178915961319728339602700508063939610184265377452129896017444033616980237416104129623696217505474475265031080399181907190200140209595901599801394947918507817344877507717419821489207201320653922727771700123500448184820304241971661222553846839928185642219275217050242091656357958136899431083584423109907540382608641363080433231818433959551606040711102075457018066291930452049769659289349981537519854456688300645744816286577694537557518673892751864079080686028022215311010688249243915866243603033292264355824282369848455687000710324206870814983322217801900454968565985911130548630937617037076129503800279388207260767218468003969562025693400722898063656449620489193836793942308747813059042149014123592473753356946338744577937383686652103625927367053034631756584586106522341241638002329040384909942738702908854324649706223212696680387310186244478173161756612024309665209655046881776713970872287885893614928385790726688481245320698974757457810147422674271505929995259006318244651895353712539728440906408509226477059550408593925155038122204431136772146948215832128285802267624869427093466147449130888340820003171716831798685043782297646844223729157962264488045617437544603115666598349834037907179200688641680315196050418963323986706367773138189471433547117369741614278388587750967797413039510416781109821561691589084528062043894127273698722526028979020827463731493399338605895764318667141764301305392997344097600855250080839260232710087718893622984879942325106011717966023284616117524032319810019720377187119630095005200073206487835157852975689078351481006384968951010302364562273847891700029470480469077702237467500875851259490882120930475043459578978067981970753767128814629150834955023269092926722226473972110211391877291726277597021243635166713648289644284009236839074712450383621033038715928858785939214401861963567395988467521413454170490246931774498754106519992835458079162101373878755888579674663514991330129972811738479754483063250602634447275789442208777156549232397987218869926919542870377108548398340870062159002900467847612108559804915979505646088892292583357234852541024542479187281885982860909888334677299051237671454596060256028833142011794865722010001283046267500983245338912842768820335235506487370728427328441023053937368256264764490202592622547891385767623918194288447588599979090612065069769588037241834896330252902885776501652542647416869015460849063183091087752011763539196311375264587384960594404801747844146750875457157060257279727622427788632949518542009762452602373054248685150479330749799208385970754093684150401604754835785112406631761066944007785340070489904256710359275616614428949379754550993472848669856014265771220170281051905234371943926831038647841538402702808300393774447902782114791074125584453008034748156203620012904997201566335027823812738203235032006528837183225043311025288065720277036126818936616514286016815504719713298260917140935277836773278872347287046435133370355680031049051312814302540962874180885136765990322523465382143929180118754957404733157772174142769393399823529416224920321837987505498557627564496910238711403756294953858819656169335052495485215128921430951284672483414256978598824102973105873245710208477787046707033344962928349765251475407755028077956653323818481287591738182511028285551030999251168691978413893270541608364862012928778428077476059693402655207765611563624918243809305706587576552462474757156090273404987880143434924459440111672246504843246180447632135817192744921109694064714290191643781325500253597267057124792749642563019301389901705133618165814861800255751125848536499651454991165364729550332656664556214278326158575456137432049193063764821434336153478944086897111428400093433708818721832296485292117558588480076545001338466111511678067611703827683011702656345608826571875320159203551734513031603916000249367644411527359384506775818021844542550975774445989916353072746053849399211752811525560426436459078512923534903114814842276051774879394476575253622559514630211615299885382444778606434205031061814937569790998640356202538365900144818063451971863003153035048910803666792419024726981160613060016041707468730789491115744434367834284397925876581747251965425649843562627265569725910718788026543459626128013385553993204474994769095512955563348403796573066914295734799874216373918081182133301756652513151251479604907589555735919450530328890235530204248715660901989881174567659234421508470505453814416706787965051774680979665648899945184014288182570877349312580538908765356748545763124431158714407413744152463929103110812064036531620689537753255042536011581439754327269753009841366314681502931163199658893152625437986616721995063608319199396412868341763352991712711297666355171798231768816960049492462258726167364528699144842432418581903579965861664397984304764163378778353578446093186015775244957340496252042029199701453958137924000911134976083736809378930064650403258219209030904047897013722804594231704538686635607185607101673776809234922821413369297523370443215824911334653839424189531685297836955277277182104259391289036560859023888382315571995194860226949049406820538480022496620152522253402894742378564801933242133238389414181415672634002245247868030709947301338423220819793006349119276130384012885214896656482763090336641336353355790056392450823950091472974065538151574468175476273754813648899868581545848111474465960111692586851868831922085728677253539723678075715820075823457258411522986144259170766513259521432380712150359622051739601527147293200337545832264893383552664768640720954153515229313085632509422409328287037492163996038786506365133790065716441401962223675455596229547271337755335377306175043657806497830058611492003905502995108162272077753972841075210456358317010764499531335455131587503482053708379584871353911942725391641026624397468405631195025846695138009683672736653260432440573117221053398552592080745666621681358840570261789752393489046876354510916132162266893731502571365618748637142512371718351638607477482789579406040779991564304549562209749801716201775815841226917033735084762088383321534729797132855872705935067881307101321092543057420391706369391490699658432771796515561709390767368553224255355819523926689153368294163514133820115268748592971951684591210438409803919318079457220577901995502048803168570959932120865616683008116305591604016255024462084269770352997854605079031560014480492192253173551834984157166406573093758100544136792890638053633897256399253535383040062191638854278536429563332844226375128355321858684275021295639885576825294533014818166431486860132717817080442797737350069925775178483682537674768401461401347138490558248267774607342399597404158986141356347599960990036040542728118775887865844396269934223596828357869262822034243083404516135419397280035923679734525271471163050099416212595200712990431852780297044261821920674310866432462617096688818030797677786974695726380720533022766891356122635871791739597743405811073177014098166371468416950650056717223157914025630062642707021130839892107492178630114771509488206561056420492282489356481068324554816471482833906264353350342766892835461305697611034454665210265806338005702970113955666473977264379123616760950278456785989431828169847049894710798056677910943039914794689618187957431277677470980147933067455126354992596813862890032811187624289035112543871508170615019643693661124794671735707441665438150736727878829504508821494637266574593067514103777601772105478783529440741940576123372320763630385692327913708705396472182219043638984343276529028490439100464393799356644045894671592632747494103268390685177857284582822156794753921869757923990418327949028127379286230271580450398102661860676182973868997304513127039778068443497692137275475538295236199946755651283900623124950369433179858365215537202878777245522410927448552613719392691026720797019444678511573045156540617909936893416624752170748432674260304314721629023426799590862546694116977899610067981711522498348502985613990098571281739659181584914679900316089662040075336738771580469079525624726801235263408931335832214113151071048946024149420003355738480002361525847538098292179475888610130360498660236448108381633918135309383868821904173003892434171812302534994016223573567219056367139955962373045760362187895926623040170178023696020368957965884206959268150481947731141858539404873627532623255018221409870688194878785454669312665679308007958935705077846103725899775069656884489780436873860705118177527274792421938810653035468558978762352030363443440837420665360404534641150640345129718387756550769897628867544652166734692592123393102303197662620761849082885281587578709142093667074166111060430391097632875778371074377667678960885737491545318857481020617007874936873970877845894817495876438265438050233054044469234702567710321230214110893523210658800369050778620490689239858379518633684455567769230541050472973756956199694589761363431411280129828449212285914209492783699747028244713907741457263740751539997690504852144510579330811690899560771578502206292649672034544745241528810534128724088523943349313876773403919290987572646469330875556061456838333005759726204826124847871476330631474204336586911386775711609096713516572783708115982151225486484800167068439647887885246555691444231683642557430255688348327970663586640552623876801107097463119029007966916089885172046536920363698995086722460114011512345380461322682834967082111152065828923427093498347592237401824702312704501568009919098911172144377942576104928946202260444571729594547996622618599098522282599319025699245668941377409347654077162399261203983983183703783554147494344284670721763014712112028273012582314693278179531639614430071618697099291038641456535574600330833219370676474811434333946431416873677076708514452420749469212577297414889137663358517598868195272124589339491294970441549517379715529713916963198520019721388140204502374800041745246675776947228275926306699252275609235504592158437758395804586255654436604473616390660777872468171337764409258929279788071078282310766818017612144996011235762408553379382856230376842930387330976816550503618169218635207001446307161299125441069125705684306447776479725428122986423133435057575915552205593468103483888692137207321311377894122787223092872504388059862133011193724913876570710385761251722326615897943248373872847853498914944868366701054094309615324880435572926342602488403144589135936404561353102374979042143656908795703757109060491830868751887192083992250632051917029768720103741884993880879141955517896056202429251647445140901696831189577312285161011530233737040511591825469308743478939098185057535244043715972265063008492281002276069879205340651902799788121094523906318336507461919074591665665928379760694391259811630871044130357571101548322721016038186183097344592285874428470471036048900541102549621073099990858351461995980871737007558232625822123870795271677224322514446410988676542883175954618309985892502518589064239339768478197840465402211651670071382817226065523929681635797395128608513558319201763898147661225910972684259531455269686549174388012900912986000369684641406683050369954868254921171638680050497064280106562680075169391892742276540014279460038824875876325394356967403041632044778766512146730502548845684776965411991433896473993839515053968496049623355964433204362136961295610632865369681417848700865559268783135887847656852204861956279524976564160932342939523042351431851202592969562805315978835059255593563289206795528364352821613554377581819847376897710895456357981476880568563134154763180027184000533091590020419325112421159875584925584067488617248801130459657352211615174480580321545636423147427699251259509099972293455162558689700386263224829728037344719195368639050006787902547053882784360409771207995724321186700979449079849948075286956869930040504250737437765779910574605644091139910324407837184564434144789140512258561864201400155181639926075545905071222503722703596879925599981832166761459868270105985758132909617272285464120829181301026391464108062806482282268590998252656879004440658531783433896469138515794031689860121779632727631176549911426696970531169303558255498242068610021509230196310020405834276936098453422425244190016806229312824788824537256302266269441221876495381344938568725274867759901764676451007606038803299601293013894255347032935605858930970189000059741629680009939020645840066132412573691659046493394368381963490403548484837255779873001609871272225406339186714852131644158243638002247167005123632207978706212804551129196719416594573118211220063769621652862867597822381804159447465217441693845446323978553309770898269298023888622473891051093641000457375911491425205772498656593562842329246012899169135382778548971298852484018710544804434002794846676085649583364610462424888545322528148153485301118408314954497882672599977034675651363448092314838015401173089241102913353867935973404071750469055263758094511490667068958543587633287865642494646759688892117047236795395573301719057904083337115272061914593034321747601437887198713441494522103362182040961467899497186367495844902252102279158625220060109670903935799517861542263494766017155586412185103465888891039724740881228921203872078774404359552131557554507626846334358284795593509577529931031112638033923385820334669993713941423912629917752945272814859314359743022116901507017182941798695156548471887265764650516612757309342465324582036879575539606088420124557374296736620294273121483295743424700880071501275520818210013702479022082803315541484620573645013639325403958904195256836734286374562643428902546379276161124272069481055265483334981279226942902351455895899284476970648411522053247153892519138039736863412227099656593537230789164328177130520953003183837255575280179715387250015693835032583509044316513199670602297384403027620134287631726876128846073706821742462014073653298272979481316273359816803990902423512529872018915166462601795680863955347249783671495404105465212878066768243350917177025369890078939196053832497329116970241651678588960563378351451427552342273242809497187457284659785247026672367664313283800453450574456287099272066928924713273394771321892372059402965195125034953833418648790727360923835086006710940141272708522411123574457438032073219765762531940984844034714262300960308841343341483151682075935812099461144984020978644904346545574520423323762027366339753203205817532621541058366242818401319355466990177602352338715199716858504552792114357743983210098951258788465216163030709200952662181732032759892942830211192320842117237010520301409440006141175168681114586086289211541926188827603260392822520966420444913999316488483464356513336273015073161478155118431507305671751896131898080219253170957510852529175702170641049565479274663292671268078735670284214529679540254368505345669895208348964111732885813938141544827000298525545142634750405430436632467738326964115685783215770412766105835782236376917119887683485045213794642951739009802997025260532246315321656395544382336681445840044789661607836662989435604002597633892411902302469609162160655755137195621253434425156704732593450623711085249535835579233852045766452996020920667376435097544655115863985163089547925089163858949255823506362480369206417168658653276758698324254517736036984464674079093178105217534609472465929917234036371622179304306875018483293988086915833008102340159327869073850593606970389523520834443983012776925460826179529562720017062574976975158931190244633934154232176284439835924363518612214200167865035527882481596228591332334492223658136078282845190169600694170207738411346820482403556910295168180169800143074876182378677553041266943014620434992504995652821156158436662667050088176045413695859636790553531844146913330696086155121965846516271082721112922716853581908401296961855377080072531556560639326432308370921029614476339119338918241323751404206411044317081765543423745651224617205255185306550643780778880760660525816040619288455638032060438677301579533364298895332168380484816056898845037061765936293165652580547606367606084717445018058882551288590586644004375451116846103268842083090340996807586326536892093716834178712172879891302336795174645973881181089010723671671762298029688378635407929683977569308891734399228810865741449314375775322333411377636985013717970651011333649606910001660809515785734027754260329750318248482012420392028498878487656702274652655976871317320032026780073723611154861804481877585149612551250543789674640924746965652093361287855406883719666190557268655094109620683949248275570871278458302072286522941921919100788288545728917790769133451063421242153075882236093476636672127703061167929521891553696134983604276574860565045889029409609402505725446619503667657530941464493130805924510311702733097021314182302893219107129996628742801173501995460825532404168503480490523764952954314215666517258440784935791604162454672772395994463882499982880728859753188023297481411586076798763762466573829878722443618133981862663707334955731769443785981171523970404267964884866647868873119276382215219419003606459198203122077145006082910915280212237352947566976127805444164892820588311461342960124974009224657526876916686617333993920911043209442388361675903641057009313840309626988073526797097981859085893955872292976315353447301796096888180586067583658424139902751047271981006373108613330252838644966864679805369131636529270726933902864479942590718751498629066476646523958256301847061137622689650444185089379362209272200387323230528544416993742442262833970194297097911195889515003489452204613893504318155677062507202555970030397292385686462143421304976343535489433424075474141658880602679126933722695601186713705907365174411662581617390071972939645167409859937494707927879099476888787815803863944677760463333549778866024996134848454447807561882889667358159659632527504424499059009775521585371360131133492294260123575865141996876556731002230948486495640721497969105844846655690268434808076753404573563794875716321208392322729676874991737871964983074619011460600657576425765261580205268702615812588774307428771051193980084033099105051175300648427841127932972597406225465214524599688536033929592407299791048105497478565695996150757356258696359092514763866376588892270425202539873412600060937890099069439736640102308125457922286192145440886429716431924283567418954122774507369180133146633332478298594392282688235327695249014234199828277927512868551599224640184542573956026523486214987488141202985025506019540896039006827325880952287223022662125483446626213629113720505533225363571988627432032641897454444677615104561142989783504844936974668708826707110091100781643380662747830126754192972339133841815798020828058071998825424438272550718656357531782950124324856278792690101721794900690428326237661566060887831844247392875927883243360143272954947695746558161865703477240186863571372836532178845844466490435508123546553480026655037586471163419285685383760576709193579069788241213196702413209219604935341256105425802215118064175519330615294604570364600791730792108230148552620667688433788558649536614540848797495645452845076480048942725299540684873395287329995390547990540813291705092529832921868138959744552898448854081144187992778218305994784776971540980584271047072570808301746122445822093864939853912147893259821042935713999082175042023785394629196516709406458736852799213617295310860432265480343351595380991300880645563364759729538334612446819545166075430031083195332890329994411219937028660268903137644223601166321022722569017291075130254566264437437268646522975093058607242959726706877768149687499525638814576339024233418653578897128995431045647931441913216755344564050382597158465395215363266689576407543635897139484986894303658840953341799185914284116611816961872820468472911359027400096369611586002193749221911076883897998983216992189595264067174488236215954212262608845096048351172982516783875842111889053665061579681334148076696550815359011608547348526681679581251572304803096991446175018158033817430777792060102553911468091182650890266418686464498692570387553278066730182639368872553243188968059712973899724076535106607800993470742822020925272626168000154428730514803385813077446232451448874335850461752529373839913084756897416489506059937752031751079439656558447747337882449406318445092836350571031519807431431713669119456490200500843587034188639492857856546104273358803601743996392944506896321133260420426949561890236439294902077788098006497530326950619504799930118548566080995042058103882146780489717759451644483058370610043772466747723040296255145443643433924902628746138767102829929242246418611991449536779515236826725910461560710854229742771500925132901060608231680970875956456720033167916673286246306010728792876190908616221879179087099619060493787608681081302871672535481558818405846477523642120580596894386198934243220281034428952477804230695736312526115462290339639346153079621220103314052953851499871492024820380014382089497248059618614622875405510978335954510519701540357697072234744568163900426706255881723853502722923265955571911297800170372427724917051846651297419570378140032503099835814498836516901892593317625554144362968714442542667433765320649229631148936935130031026953516828281103982769926670384401502132615272351162028666506703231855105806729075488271734069977750726438771774863319149056580167247360794199020871058093636816824443231434359538820413404504527431998721880615521238648007966175117654053420316893716997701902530466001561428288707111255453498484992109286035831746225664715847097129049711752386799038838566088325031287336167821457182088688017682034341147975983749117927889634155235978202972764435817928439013118978876625567547204441700530446202427766547407660147418866099331452410243837807613658375134199566225114735094278304083863255272002728575931879230722577471918317702750770246931220573335079611066359817410373864877187651409875148634211747531554565038901583539788884460880350641630273259581327469441454254486385854799919539438138507797982545237565703991489012362775380174771251445634064169710749093535884019858343919428222220078925673429042268487474896840686394482820488414913731561134747919899111140541908800013163402511999629915148307058863403187166766974400883454203018357619370961304212180234816563949785241652127937306450079988735885825477437581397199397410559772591898068403938218759467531452474393172587823878021279490032227628983897747377645322999988957698767961572681202774688694103949022858682846329164112404644080181964293104426817165341320232364444248268024984756668610412036776676077639995542699972349457983567698280531057352835092549510393033088988838473973349694611795062648141461527444128156936092030426770578011543883552548587914877681740753959059236730265836599810070824017275811131455277496473972427803411206455376497644520304366669204693840787852582450524734953795364087905103481932682817177149633989119400525595864603866915102370295749623009462545341099315764540206811508729360035813153948763821798402233713131503830607817751014697551446589475008243059374029891970249065041088062156613199953800210180990707427381701271795587334190974961580435945013826050665709332273704982443900887540265471072776531995421054604416872424319361319081358776482328435255942746739631373125790424108948086369011668780309082964250574121787020226065181396280709537166221359919208459191067083573346413526396291588847142141600329782183534494564760211222765481254078243549959073604604045638879213183318544300009664602470937176090130797416629427093919866975623208327807963818371155322985500683996703234369134164939658560117247082282907367530741180913693616322077212248686175351977677213706243080677609080168302044326763218300584186906286171320617288863559102303765352976517365558150939304202251397738719793340306651819178648425544664776243552403846537054223347161793197524371824338126852765082135907568533327368019506630169549135547070824063537485150247194018114358123243663847512185451685306377056141653964755355956935684407453824420651699690104642598174197975410792760181754078186658645762273740281010379857591593517971022330658668502756742009824016252130576725654544736554554439486813023998641488967943963348674161008167866751563630716384624060842557762412664754115760858905793138468958178160029982049127691325273046025907565669027052365866254806806250651901105230256524232337440572275797855486621576388119290101959509598822051935574967070451543690545301279835953234544385007868335479845268392724857799373171051597485041948553112139826267891741608919562471083431465479531263313385013259549350791532807683972459801187261550031597944687856047588231687082862497013709905385475368335373479263878524745625538532378127414749827371355173653715009759868186419028723753371048849622375448664652718942234311299959568869833716312399019487735030306841945395484627830267444188346546231262477257512549034592124927690768568499857214637478670113853979133256671259936421543212204784085778272865585106537561805147095632922054289277412605326008515616692503195628743066955495871879273027351274695520059191546555462598953166714496128189974443880697879825077581659860303632336308954510024968354945378807589467699379592474635430991142893741731799330335473782798448390322760619477358861333459439781700753865085324765076130492570136854078069120223218458921455823110612354817456986018397307887814564351696185264096961880738462288889461569922422432946449969659024966195896161214234434046001988661611593570514089530232870529517872090362767565952045655196006367257952319248305168147132603239406733963377942943352104689770511660036541747431134635544177769784859464954306420388349234653152387174231062917737783621788762999114920334487768399265575306372098354981631287401324044494353733309405031961441740006843607945534623608432685778546465045393026656060397860878703722900831575534139581361537963158512716496565107927441937504254413276679009332962416993696865043909760797403308234466060890983601885436949412899274961078023188240686687481406371768065488838849079577760939040684284797800552299167695083294197734774044301053295245449837001688305446959792039891236141080963419710076972292050184589655553422527149717347252992013309441058388854156425707957304038442590605247137023032020373726757320697628755192336901007741179418452866672620584181026194463149562128968213229640841931305208807850529089184847938168684330886771346141797588030314474202633353261001144013344609405117245736195964892605807845563208532820240013367999698278292300313525259457603745831896793793679212827237741635458412076667498850232780318043005798703942620681208730362293067599215629020003215867886396423152863992166776810326095749704342358744508045104196135977507964684614536009336544624418670868363721623450320539502300745832691631263417290792294441478258546074137929178609706342321193675955681600548840824412352803844307069180027371104721400398744252286150057173307445282613082607197481313803518382021205769939684253480537859357658304088760848780917569314314070848343260390005227607001724554961315716512417483877060875984135099993517649169145906923909240423902965405584325175257951288395374304224817755745450039750896552709848787244633875889426346419276408737666480638833407399366440651300376558829966433256640146284972509119872214705072200704894766434468133648062548942873194769513963102356902001724961681374801869351886747681820239812540702236824326727885392010106407504471603674685789730682739755498856472614355275609078671259034758673013132798687270031618627646255500539721296974974573570255672644663109618677635828936360877421764211360361507933257052946696888547412700341992100535825651997844653913514921540189827350023968249460235802193061070455173827843644047727594249689883111470261279314921652667432237474412426833241575104962594793954707960199320369871797040950916253467514790503852974098960419485820642151316898007651284183014192884980482527619604414520355045204138566736975380675151922676342341157637708886989074444892400768014028337623756455623244706693128289466751112991851333328233943851607232731654790938888096900576364752217956109003516847997417322832303907767275205055564880967033813323776427930491270368617725741276275893176399956359415434996140964484527870153659731339254168909906642752412513361823914021324536358735850310524836348176166109279178125196823614717406370434438568315411129329893476533769329212382816524185962955585401753817586927752859852867818578692832497402918880034260698257853685771670051919879010816014018645861106992187228282084931476615598017672037911965452093842311366573925846439430870697324075390014062188530372503576891466549731641770717862192688022899178877897841579926000164392952934057600359574001748372064624328073238873982162072187933983445791635454163920402756277288352973276194369251625413367158327213237942380695951086131469009600824814263462791333671103820269516829877903511938717877411474986594199531581132274921988171110713696107217389804035587261369510967499819166382176553244553089151066545851246140713312920879514276517703674786759950410335344238747861373538184725753282100263427789599201498001874729555646330559010345253860523888085844198047304092988254116619349136337606022371322819409519452318855919633269262943464407656583223998832272001371662370139350359450525950696041202875171435526060337314661710268791979994408631518361055664337529561600540537257273782353644635294503336228848869450926296031746625201576709374997957805208288484768975655964032055693019656211428553353051439776969651215850240907817829452083020960376785159608119188663721733709436795436360486427841163118202179805876911231732797201290831800744185227689235717959016411217029388303776347146141519214727372251325110572005852074617163572055236554740526331469602267535090986672678555460685865654072618975842269735657513335197967177253843051793062745431237102326268106649373635044492169970917659163528002946828621629750753075122698699052385831812817058533492566447063937651909679729934186683865259697157313465896136262869750735191775818604820905927994286801162376153750957897754948759776848439717688917682588775763321427419856114146110188178969980066880251581653996462746206821059756541350681723867917820432679684086695859246295437865396150125794235493908303086383137950139929744434004030061957019395674972839900887729996963778336848721070918797522284147426120465385209235494783955559376131533578451197394128972795765367835883656485961011876254614757703789706703760418312219723157175760894783177626709459062741545007180606619468175762036825640555596030444548567994978614679730774508907189227949002993479719204052661545046413138260817964768955414215544107970213887793163746639930606258395967486737696036447437127474644367447555845217512383353611313917916902044679800708559994187910334067901175783949773359996823311704147825037366083792874260518938852004676447873713053176544465190368843498938047384045286752586389327572322370641529778186027069683626996010596401276505141977154555438343483108285675784915464427011047726754013660056053619510998148490873063223356933053486931601180619138310525461233042158581674300109536217770328960311321661863772526464150352470807855632984971284769848242094496821454919960371552200952083643030665606961570921263305611614770150108496033567336443941011337172325633539820375174699193981347794181147726719979226585960667379090324557575265704459488820910388245187905425745670452088446060587520023638383467328004005634769762018893947287439880881716510378932083769483415401717536349239972256807881314450739389044980006286806013885091125838476161303067751100499949780952273966270485439365936516995200161656981291184550818639448550903195605180049167022985430177758151600761039421900292622142848658347376923988858131002518457991391136411173280535683183465749318230499406895689038415248843278539336480356014552780385618093487361665095453680909394248057182074987804876035066769868902975854611132432451676970853697780466451759690393306568243481135338177789838383332347923189641786316317699611454694262618897711055645130783022609736017840096245467321483559286963903721626045066957907292870822450208056385347943594666672046335240657182436132361772735883029604121750102323593852939890415825459049229784554480962226814827393152216595503933748501995133283018568042667093199065286004717672034149125657514607513548383647298992921199308673976694654585690856552416457311692695893760512225440704210417228981395055342394487259916793736277997684698794057120606017804217977667383353786202062767992971887606332354041581312039526251558345386672984754821094660468204101657386468359904380837819456826952931795938422853538388006799701692813878780715871301939840475640405846919093619666514455474294225650722997474957975802221685710187455007690490159804868948694250485139720117689791360536129318078936543697441650747835466060087307219529766054542211630194936625748783125388492295600435586721974313102949702775283655761774714505240805827215869009506221773066132570464970362412940439528555530617673679080047685854064746792685507664385636041199272821464901564711411375609741257587263911447007525237145180468938322444990340840357342670158400621512348324872341347116409004155315250167271836179094318795237068896416852994276755345288349360714816404983174075787434061817481031496038625658260830722290651943598303164823838367336225174166087694728839077813128663213815809194279191595713719006032862191344597387881494319788864634518943017798795987829873241247708156950824337442978510074258237616356514013623083662898021602324573959770436565391608326625154067450629136154768820531216317584406520686826425682423993958371021083497327838119542444838645320151283520389610265333678473514136312238278084400389938463518832588245999695035472538573868237174965172793222584700758437699623226493306968257989570411875333396449769494502962844329328848464841143533731420717139728193949104289505977980953852969717761295004319802420866685644765608465329359687287501558197438874496562986897624368091106800504998400798045096157397250020224830633730412900082466574418712323181881484395552537659042377886228209021799042717895292339824962746085955689959844433521280741485841770670209690044782359714853668193194600618054126192999627315113196392766553361625398143339953510685186130312684687354795910037156174267900699748215452063185802638560664274436542547665719910935087092466272919600993685913663712653078626700645621087974529060023595811165717740742777714601979958194720147619623662335966048737104238415475626573429663917502232486642095460947564036844597609554500578118905639653774395293613518726369278671215943870391070297634921348671921891556042555246549990589851590057802295708693290223591551370723753276454813546733294467215213113976652892978389690909997973886700262433922907827730953727460314415000288665319323241061199642918118246496779019912763575499073717480501497709533870825223771375606361353216172231567204461257706625247865043080353176591233294644072750946255135413798840694087382937858865843157008515170917606684618201984964517413716771025748537602355033187590297574507090456883873149170603376514937750276423324737263782485162545573866369498046001992812388228008047437056999305027080702693640488201924788262315639153784130894060030178707422911544752037816031692480011861486136321230276875867374615859604898795493113140508523570877016566602879583157676179026909127194047519529460913084537073082184730711321160397593750873877921635837547297415584441077029299072596423747855594333020864480663441947893352841008670529392998142589858348512390993546846678504520515850174332047198358865683917247437859025245653978301936928520760600567149449222079645646481491989201047363707485117236778864237206171837392535477307437156488619879386749904277443883545484591376251875160939882557368718301242746967291731300320868670270965968443758025353548791570435168232286382187727495820326895072021594087775050256406346830212257983443001117739584479806176804597448329472653694540817612463853958787118654466234021740421341668514641701275735862882149003373590920088013706706249746203372624754961615577561766802632770576658350451968319308125364864206387794044956858766513496108790523496343983139957098655536092198873847777482392569773006094794302751750671313700504258559994009379757243739573955669854235201014115549335347516649240280801483139040279723330023816529740509815382484678563573929762966422197851493221971769503852100527109613955517447999769376084104079269282110141993446150677808840331294754328872251670874615138172656018490254412966487020662816240136157667419526434684901902728447128222236567235704314776852012481709775903045046119022789510289534136255738892672940541957551329323344639758480481665928629326554643324979627646240404649992787093986253252123104243234799450769968474729351221357345531654735031560230055182621469765470044535852206192656425644528356202739154234017100015114217160183802521015530376443325503255308051604712380455170997443361040526811560753735441456585894261549704568132170640604136632865636349220836829053058435625601767474763680480936274806891819037550677239346630278738115768121975825722659000779041396607836639652937980970399925890895645694464510952821036180603658472703436333484399858879759371520574985172751928570617865962090208097543858883927852013786158584058072449097938630724809237834337415388752137990026925378699771498315939331596657162781600813286579499788810516278088778195764954963260385954778625678684900673292478376337553556881157697317448043671778421327609271257110453078850521662761749366030883360688985057139348689144033605278333847009526306390088738758763740059966441604497451936638011934450627990834205283850588965622732924909796122920106834007172236914227287065368351132717599166914417866758120588871644990489153319472260723841857017199207311344195087830632977091000928947385196063771585731976996354857755837215009679870004704496236132531211485705515685008529393996993440249130715414011911322232359579213500478503462746107890464444531469213225939901589772385280378390480590241646570846506239833819026840786603462942686965495038952970579046099956507602701356178029117481152221788862452710374156987885463977766631271136579963827522569336344011014179527821374592414968345587125133356229689544801839612826896520887908384106959043103314983086871855292149985032137701839023182689300020472758403590658693526034126429712756241934255637798014892823247961871785758533845789848319143691088231431491134893974676756325947936309417198650221256884397253032947817079269184936932108962833612047597896948073258692833615934919341471000913857604118341982479676720169048459637911866386009060502307432848924527229129547637152685608335971199085149058516436216398098228720465827991229190723321406999125264014446799974915605607262991752339072397365084262823319281820179721222885335783422481623922606116467698929288869904872801723676848884991946742715628219377251381532559847604615383320066591723368884116140862603877016527363344399500110603562938672099928678983520565286799121059686515201778791768917136417427240113951907979210991688004212669571070114714777633784136186531649228767804445001433259808507503860141901988019139131870714856177495142127265638880430913174540391231942187457891042235667117818560483878682556622388846843409745517936708585832562668965070980003812268208937675889472527932520198815136231801781831894230806848051516499224698900739715325899835871535773942492678823396808247534881020526939064888477291373494535457626607430057948945385664161529010020919963758302818035615578993204586771134534120644077804432775381162603051703302755199837719547768839536476641492147706770478253555202735090106584834705448445049700822495441686540897583593707452938669971337013580653476071511921224832507506491394321668517825412053757253862893862222441181732844140170409501061641201178380338955793959208266613049307756531058758388595377366269899676027242230035488623518419395753575539051449402462321126247907327544149305898056255189484871144343046534406272524840021752863964498417113395514055815512418477443643355811261235779794459298819168369863281132964482082180304923437771091567998331170727225448668637166198352232873330252143175115071831890544517967801188990274537299996765015104292767652393542426026823759399609793352762934985491222442313764476146891985926695346613814533173991439011644596132366065765151905336487084453910522328318530285822614502866308991105958440128155308681628738396755888872833231844174022539242972401611698744307228659021368525661596411653541769907254880390602946194017336325754292177433797274086698485154277639978144390065446165182253245985390365157539080577450986080246433241776637225532255260588610291252115825517106981960199057808159393845242074071282860789311751136114979021010484209692165633349015997952108622846354616467315386900779857949022744247007214327246826384045913195482929972446863908608983587013545475419972445416771373311137490180289759563775952764266992548394914607537228904499574134961593753921277962269620876352352707120542679960133795657715416926899000943960419156026781775326233447877248890769692392267761075357655280428927597078485563022005852085394395871787215424363018530612878287586840020533724147176380585515330987920797462176258717078884107008518060447628139572852877931480194813331106176958277553284232167383163450048251063976631144150055264862467217835401886418124844332359948356143004435223672682992848412261163863331205479612420414975948413091937423719900219745977612714711194501854535409283752300705874498101784753538668856328471484295076248562773900739734532310559081789271022360798938180438151585434328940722876217626528349751441292177336051379634225170476877884851489142466574318992504274390044902103070883167311792247630505080727294491617608491299585455631930623996679935557094506841438763749478605507139509895083934365271726469009346373006723327651638733800323945524155351235402534443691315695090118252936809826469691140263851617933023184213534230623403422566000642634350751749899796918956330104860219672789051242714133619784582415180532249411554294651453818133023835277523208134109864795969678698818200827999336647038615774136191688509969499704888710569024237759456394876136274501266620728930861774652428453505165336583457820773989525667126720821455968187244531364536295564630304015686713666506497389007593989121123992283567600693870883605386048315052132502899995532597740108626960769768068017216555400064459784600578169971234041468709388656151966652125981069801181730035418645316166893363209203646354441981975417843524679514928644599922561921431283811133523810162139068532894256029409725858085973147838798030798373322470557382235592102365162569784666653775920241808779437924288175471743149993677725598025232865944506150883702414959025230143745939070656508968974125492115469452055974557606173720528242115458235126356021059604703211764116355328002536614061628049526251922244400000112855562219302442727844531438200718412196698731818607960886266648242381679083307988225999567540145727160267974065366687057556454623334906398869433849666943092067182192015442190167810414350107310566326949608321694906308219269651234809778704942228864575206251299400129656144714552947613049319941823369348964904310463415875388864039749615426038479290925867618833147958669429734126106630370545527154324124936463783705968472848275681975792161212831391060064155517983142686543859667680713763603498570956347571944582621274038037072365719283849196388136804820976327367379020624659172365966033260960318862691623876401812531077696518209936018361991937475589512132109390188318244207448699958101603425531030422860788550382266013334204896312843643753147053619376204784361739473348211433364103187721424113345003923553905984315129653791480477509579237488022279447422132589339624120511259208586670956513753017953387123080186335887912701001438823246106330298445808283917809907680529659210706379230376359638932274514792288436209219437452779434044078835455059258667063181325935785605887523757817365617973992771832256382533495470492472992486211968729168531366188285582950367623296321014487665363948881431742512756025971898014233880189389656050856323630534304363954651674404892832993296480273581199738801442895767883909638379472558924907773903333491841165524478615617117839686467485998651677439322242022666184633953734079011831283749010312031157635684845076810615126279647731450904632086793561993455820955711978090150310490895003577221630556433510684922224532437971289668050357889017356334635395205038782404032947922958556530627949448574400812207331222058465978734189008016433631496510933831967484645271751916830915213967612502901285936321604371790398431159074835161752083444495747670550778605869782938822774005089887625995582771901246226303049411576239798397884008647288138649801648058883902390803956344716641390902504601457642226444138587836735047340871125401732392254877003834151724613505634479183649818175077873797677870052755746277128169568162323290076395482042972122456104203364520092868403958068036448900367935524809040228223207625380599772170636707862923248599639784778525314901710008390534034193120254302786730867564544911280235099560412054339802797201629293486956357866948080508465406124261747037446104394334457642880347483862285165862395348021252959067394809491113061805644766784771925105696346471823664439407070195256560195398127422230490599497322663806715371849289533197255773235780049031059442464930905857395343471057054818125933899384496512640884150147282114848019794119836079516278522435504543539798176957879860366380824187291915044796032117920477368069731728337103480206826727258355018740529689247128920838520773005863213751387007940268173519630091260226980575557764237273781684055915111876850944213674913256657229968695583781536581993900605131251788304479534518499446283204893479802189154047740838096946688524098920713088847162751289460431593117573333816185025030490909774171766096311781422737842140654349138262118732563046896958519452834708256321072466404175718032584011405024302958237893535019561955803283013774994664498310584108615813706510404261195856616803205861103138539163593706786119015785432024801521295421166516601881832784945579723511417299907169862605765232424514120241922413720212892201204083957153005320465225957790320003389244984308664142624045001013947165410473373228177798673190565806918545316115999737040125274264903530229729324522353607841393065053971325475852253355000427556496728093720371476011950279518922323265237564156303406811779755386978110058171947966579506981721782417749830796524929270264879934221452230027808093827905219980307247253047964581922676682270928945049857600737555620684417802848521340657154733036687177852338266708200813429222369546433035389003456700300192755035962481272595500307220635488289913207890008312691178902151344691889953259814507813500673569917645238396065964938645264447837996542149585490349937231462252544017813110250170954221900285901729151405389946506916563765908960815674993500563781495864484401711027927298610945507549111143080485371850605130803267570866152511656239048450254223199826085033008500777285684855013625786606517897556719114462668252775831640490659032045452954873981819541665875612051618567699209732512815983586659334574923008383246528981204411527146988108069285952281002301207874626516743338689102289061728652825300585138341595068043899694502137685537596712960176310957974179363183877842068398211716526714353142888820529970455635463976451929504111571623107235956869146130387187720414205004939020521729444408470309776351236024149662712662233538920916988767569116312831380469038190760048593154764260868708553246609042483568666389876901393256453269614357383455328852765376042706180071175406791890442546872477784789725638094186007854820264010804762958969290829437395903611845933706293948106503119560473168948565420421451167439780028274095476695148244273276460548629326717494471947640235595043889663949553565801172529897662159736309120341499972048289340220421548425568438631419182005640518690673272617883455515888404885065029578983965914583433985626637773902958106009061646112586226633106053558974202833042744534978603370916062204576495662127233425638459551108215190546560893950728745985546301554364456446487550644875063000413154900563748708893225585051227291988336817357760678494574280085388803046558497977594035366512224780449790327581976541629068334945207230172284729134006755020676303466906669889948111227624752300055445208955113936022350650808067019076886745144173007888418307466910306299525302512105063667813082337368911390963320540772187217293921694607445795882493698268172596434745887205741856102565792748877090780491425919433897509116484594370653372971626096918009651584710284103717700453498167930829263395065397154579272975809174807423850657767439597821915162466669015312304134808127995701461792314798448403985796125806715065029605848419202610781467992573228695816488718093070642999189754113603445383766593163789414010326903443158623210705759120492201583997678839410724676934394455796313502773943479409122244539610593544230482382675755992027434343542229829630990674235382085297723199528306274884295054559777852060316590262257848032522924330056916623952530341967677349906648506283321388338778110844415781286726705079293886355430592762384533729936788553614457888169665874968170556746221867835036911632120435826666570129784985514218779788026846677525224108743959105364906800713793604833273280745117396444304094660044989143522284538481471885402949900686260509420250860802367551486037142317712090949407756848187493535766219376358821651545432101076376533429502611112988645022797341852011746006371002314077070142947047950235590184050709094802175873174105103086259648681775484936642021089140318559476043685662511219090122072170038814892466674994677113164609161427077961100971626376259947005454163709948029199535491639773608625221208504571089087761247303643518129189872704717595574527090005079518666297228240261479736920370712557519235951620871853106703479275504192035883620085602200986606495929284106408441932879703271524743778978105174263448016787194482443541004285575816514776005020724462762213700600359084374608435806425583236983870459716981202463579777638034187550464243083131264988433199604263236884159578789912925284298468039084943997752113631996340994466201951197320258899332387069206817987178616623093230184699777452000819065178986333954663861459202763177810541300832305634599925534435909273782206003582501888016270729874298591598207718465803903603963862266530280884636705777017088800289754060033978990804317047985372360913502563754970507891883264468816989215433185038258877378018552356266629409930604402586316313464930706744193780046841465719087793617354008524083925080167152875925913541864003122353166993262732174340928955033473238146930513897174011494818000113494357879354132064281647326209950408333061035177804763698179171741082170216405901621463324499273707674228518150442955505794963938008058290564403946902721014648237265461783074473865633118753546954864769689627730394721318860136819805974589493735227784028224128224225515961741448566350879690608311643587716856528836654289007068450432022948352620416442135472656578893864507415317010130120711515767675194252772965189647674280725937000491197042588866876363863398083238673441742074631632227294075509744838757427076617231158618068266261886429228429453518311315273062628174472982666088543716809922691335477663978819678646844031156054130192009820899989206637728874689234142052502163998835330467247558972110312907420582097957200903367000459049111896415089993351221579709211152965678595522255057371590814469153938386505226587285604518649062769285147365754117216176290994010461228471994070972635166433796936539361525196665323260969585888743116992804238382648074242622274553136025084626650700328570617584273157423865657927494419215490763588128599898252662139415273515049317107483983629461450108648615772481594234797141621113027609322678860661207513842901191046026923823203542292254482620843227511272159529661701570171878831084597892680560140982201153893112405189860807043455753621235776736821240963250803662368498295901446989413359619265620050866027221296113581710079605621115175267740980063303801735203365933954605846539783661542723574758219965936169107968036756504926682380761463430460546163272644037364082084855738165268730674127325573009990006618636493945490619643340128820244816534427583502848784268475917060833361488618902786157597380345192166899089780733159536132148310983250789863859342274184079613954844708189706586529533316667221226898481375106921074109836500390223304406766916976497014906482128290679092676176385525267474051508928225661958127310932769850586077191618720057320690204702156282560739365633045022271588630695851719897548488672557538965578223260030716327453272514259242444919915194985070699886409869026757960641065021461957473647332916378268577322871044233611866855285377623174061687045586760885016793446121033586910746819144382296721159525351950903503768426558646505964133486172380409292597275477437403991033456700964874938486645081668876187203455537742645118890402363764974743416066644738833477855818154374609456261114695966497398732540491700407174862472222023318164315360962005891680525986294262711661209600773539279968571946590903194735825822613470879760368032307085229424519095682827694053968955879159952692644293599095878638422936866158820173407210828520846348621651032212278833390787400557001696864259718812357437083722792585666643895309185662220385402845781822843836784652511816654651083727811970486619939601059701272128001140505532368054798218832801939969137227475487268609856884205712934052090563676256476595203698895216867135051491364823806982955870986541285319925486235015745688045008969625198000721899088025942045834693089541820650862522669865476829988975531418044264509043793823366354317613200168532284176682818694823870480530609898899761231484525120158977695546705406366008320684364693926457058195834098751502747429781070204866672245360072782598617288318021396252369779075747966572305914929052445569211319726959707732252360408240720440037309604771982916377293503349979761602322759262439670664813373530373613345334815115448192044492077321338622015619489993838939290589695085600317217538331566167360130961230798128424353373856685384727245238949864306218963668918201896267784555695354087498461407924686634657308783005904152458354518418089786966193929360438525685169445651814934072759460145927354335535302442987632148355136161767009537881895100553158850219476027999433173191492765873045213460783626455388487651600011395336927988610366632653825004148800116012756342692754596506346836863539770454475609062770615143166017298822230855832336797430337158702483547977516363639311733798482883565799983958874857856268944978789373980510489272779292726491648889549375696672027036489199693719852620269813543544622886924991461681426380721228529062183567464629441225103027431452044003047146031935776686146381878201194139922212348555027424681761528834223890718775729546528053913730911458683815258447500633224148080681879457748559677413319131421479564106999330162392072312541926412789810907488788064342194504880628858113236730852632647704541373919718780594209930464212478096581982283035359702235336567322894850109305162150819887753019391855610715572879762899934548390930803044467283222113988642703798576508417628173469881597450735989274886056574683367700322173034892574914272021180014634657091054180701320349290722905388316250513915878617927366073938259226416514711577376224577353868821647263657891013877522770485195380277030559751013590358059550595559440110468862853966098954756096236852726514170359246048297108037976936179757725780073374336615179499638713645446311281061696083063538652048981626972625411116097275826783486976272177338651476027055979175061564327326923306011888665876754875952091205720759408264969926356743465843511496096735655158380611616918733723465141858809213682754859381723236158924166022745347947455952435516700479553409246252062450044116338235422205961930245357061129671206173640420158212526425087156143560855544891645674615690158565567966350238928405767099484242170170927852403877285296346903860331056482973472594212860923925667474574184254671515064837733952797520101386412646727149180985377629445230181088094886349117549510864385427253575998416384966199451921423509602624334971433421597695058808572895974400381292936302735374995340935788982899145458814315207167783585832310297186808434832605215043403589234313941285261487759236410010194004614806780669906771129415484725541163714193124933550758709276108397944788164686015007760750971911549658826372954312619581604515329785648114709178090674212836511071184815839152899315372616644803107254817025355352551176935856011218692270940826023417677665181591477914990366317646409897068628609491544655491902197979776664266999919882520990762265262733844192730123097816702926225107161372390984269871338570188522782172405084620754393214012406523094652855712935035167104636047801088085169029421051931756836330424327752367011395507603512354505161976783959483847192953189305465657611147597201601116912490049767628292217925105419245758074116996221101202986701814650514682364820423463221875283982044768388330932615991267521169819882557051502241018470686354114775548053187710600821353043766499048373422164438039326087124262691094287526739376787654747932232452515022779867640014377720174097776229129309790680909099651791184493498674310602289051335721477253404626861476966033391446337665005348923946310843114134565163074342659160560015203069737869707995513473684893845453355299932105929854398912318946565165789733823724574269816396042187938523153912055158226339457463703230114933511323341254261966128545220969521902004272127496482359236087136727004830616973568516518862123221874335873713601054043835417106082471753881900770792695837441703627921618667321488344105831328588157567163225088405535697878193321522661591698000680901931311599501132564075110602327332740102538918635273700499641790373314562393429392026481066906294483151280548698487963624581781088996171366068398694988250540575136902760660710168525810517470686144421673826328814930100705027372032570030896089572606484261490136165471632204434697107493023900981300190910723490110650706510092635615701300929692970005229779121880991367745056031044489857062808760861126888529921203027707282329024255770289016115147047949299190397358064502269026858869819167950106328309356171601777757908904832058491126270012934026889030320332039834267128784832456695652555963611962933620368811021125445221207116495963736083479030972052779525872757226321761582217632927824942676842362995649447978859034055524693641873008997766128456316598191051938339708672390531075809946869737820300004102475480778028996680036615534403155792178366671596138552594611467748413505068666106551347585300801241029134828935758857759648914430391052168845365219054015938353823452713963864149180687612409005990278025977875134371159439003174646369786178864145616237432768597723548698587779186266411815093014518502207248794934468047537234700007024219920615924952967223249379164656457160126346902548669767658185616578752326789510534490997685027833679559903007495482030464392313550109468506141175983088853081442114455837758141099727616276247430390830840010925559837859397841353230010139632742101309859309292858818728905056592280056277287632268579526574480822350568931595344217410650632863024333888452200797025301002187581737581292814275887851154750836843222276769283057464416799548176960822153134659179337362321778052995522419852601104997400375970218356469214507933431629532184163339287586041821954025395179468579836615195606612906510774941884441023908783168611005375846633396619494590949491322646170426700538747783640806294101785545146144743262541971927735693713741346089560775368512818536858708164163753379374049729759544259502124380197131172191951551157489693996212086396637636548855663161353827261737556779502183924307890123141337463723581280139070374845373357017551276278293619935219128039241921703472872060346002437439051877330128767058280788447567452277308093949621714363144642555601211794482888370381961723328819761537615954774610236675724405197560110429777398612231095262140333231045799800840969463058763046589098141728301355937623775965633695017593663581377025651286741467996675967016782958463096461721291410086452393609192548946239356134869738536499495183409193050007916669904222485291678231001697920972852599299402473340248704726024253326274129171137160991229519518665423689967597778863495392223706523390697983405299655164716215113604806071298996691520409247334578300554465804381711474860230533362303567321102636243918477978410965081029312188533310826922974428597057796405456205438962517100231457229417293929324387946933846915802869552692818325206930111936445110678933554956594915951347105159197159499428368843841573684889591087218296714460287563186348164807502105602670552942633697609716671523217729620043362135118949638690923177835312111647930115543309872863494933966844096067306646151720060723789804125874467309590830860907540504805434290289677374017136933882054370354025593460010616376543834824978155306956902914932201188063622254080390615027845804222895390010243399599488795572937535900867670832978141078134875330032498501403878891339056576106701206863438469536959951440977826737318219466713995018035389063980574805308401464175097506465247694295610207637955236996057345860000611346493196293003418320065097533643557329763825909450146823032911488644710732974870377111078009114938478866278777469910196735181838634278462168523591626600030723503019594078461000779530826563990298346354297683435898959688106666068072313789722421098047466069664344543772795168869031668968129219973457110280832060689531376578645055288265825856956248141315714959325742832537528718712999741842860237402146022208845951255395517186075337232458397055799234975992608038254972884085891362986773096027906015915530633856808691585294070022302010991485518232265688868554931606336417621901436899687620524228900955450226071566940121428424981465547333172749438812018521336609161921802439993178248748395564450339744491767012678191172443822976260745376769706736262351093555179187387410444569251879552417676329936294544311098168036479737204748850800988411775293345390889982702735929435737341425076673221015803332430889595217617604427336557569737734901129447622058019590155971061431349155654553089210548489944132879351172454678275851606745060493731263478932559831019828278305670654832014678450490788901346708417322990812352718915286917228606639124817899968020858207677261827986343097952818843472538338300005455739876706249784348250688338605561830210300993965805674600433990628839790153084395898499478983469008561851159781409393530471255114619948296590186959927489780276210091314261700658745888361985129121839700917178078866858497874446714231705433195097021909708342338716525805980447035075342644068128189187959232544311723005499027894699262179966992775314906723018771612975392586705572857089817086811711344073956694821167850894313060868348429113517471692853263392410442215627515831633077559720253386628316537659677046920749179481100850473012769879782033902103621969766512708068832837827724128020209514726593998774538790396877373911418983957967914609199873630304904599345201819814376095202001397410450545350397619326174225727251412885066861721561714836109116899153150153576540403065602979162337548393320084206027266628464512733217869003856429686562211340869798876710851313139714998836786346764596428498841483539920167010482873182249600240843888567714985450926374236927509533266681935335736358982983667843236306867822524652947229060789089994514628148094622940042358928481021371527326731296130623180795217423102669541675522866429853549367766649698644160361692481846985031582045067956766271290879941024410746256686063535478246981706858914409526769170359738931523053719664021736812074887327753000240776968435035774110421905798008571287813433826917961153293360092179018886661183424315304845553466382923065419423380503767010852398092940311994341484921610474685268441363575839150622146903404179857157480749412983631334107813077863113918143828305907296435099668375316297036120837770008993386217040636920892693111412446384305481161309193156878993940180789329621516991419663431992773814569964041272309615572666701718508640997998916856378238591639055345614955399804244165890221966515918868803857931892790935794045553860686319331867099890636307749572921769262485494260676773628025681306728133865418505914992518436948612886529451146436290964036089713582943490234101166135507646149585505439414301316917714157316726405729361508943447548413281545693758386416523706720148722536324359708662368637458367718936712655771405763611576617675100706795826598881217643632547805952791158918011865428112991580996391715765994693971231458563976067210634830000605705768781530214598333994824296528267319527443163574037351946433151518443791143073951891850801945886472473691297719619595783243450185945124568015125252848397741896227412922280105225049386785081283426095623720659822628962887795972720479719524823301201161160608813651484703892193588030895642552642272136513235401564822602616285271237483991090806013440361216169980959952359476155288634163540194943488833532737005716058582146744553004555115322417456544662195956980423110012736512000482492308606262354106005521931159291554914060353312663991091764432630345395314584981849866545322508275720706055797178950055116161724486420492406078871738268149984318639612804722464405416642457976857722144725228529290445989041650003740729768941672741073453020492942236195743536599557687893311484088148437866555908659123210908829485212115019785477425595054201684020928155741393049024087148661843655667148548395916503974202430700500041990454160199717749243421168998380132606072990665207692360900309387504436755848616404720227504627091826405238918675565887902204735510317282453056133903980245891026111139986461804928713838980841335508305666312303483380714965951626609024916351637034896847514315606998162346887633242361508627909089918412235896434133612851011833704269097661348003522538077431620266556145733840711624360566498789699765044092637066092620169058811914367150166470461040762737717338364188405487752957644644996138515693067066608623559742742066595597109076158169692936080077829765281896494166775208739067496683100479987569450647875419459441658990059268962253323062299141253628199148842154387220001379006266569846798353476503193151287373425600549436423750781199406636697673307454334853450555778322423764120533949735778203968795521970691239931114993126623830105877993854485260896637803092350371110235822137324752898813943438072365314968947203657244506934022933257697928752620188430070926170594416341858410126068581316801164588770274042132107852946438639040351182080914366571191152951040037960044200523287714009231860532302072647358602701479438963855127818462817474728354696920944611384644421502536507391422279443673215320389436767513958838857486813830059893571756248167085503728328357879132465433892843539358066903037271616219899114190494365020105993103518308592816244916122829449225349783361527774598571697221865315904954397498557943933929410162942913777830318529953176872805291455242295314166445204157502720537426026620103803889469582632856234104991984790830778178179247053653714600631317667330868753509691431748895493956208257498143360724339029436698141877483043302282150566697743518815563120025227996853014376789400431942432477364708596344041258181340329050238703354719549419176222143210394435671936160164486722813356419088870498964412614316733182499443497649627761855169970171060304947086704867388498706180723576348697807642337509209554438661418234449571273120166059052203403658235785227301658255203985881941037948263019703180246509608487418349338577625827869733520212148670654122552174030497839736158289044633645454267702309605667375438837125887731122907967207508188064225794182988310123051356417261482833329159319760228903542214614773629731063919290644976470523176669036317432805011342970943866708336963226285112435469898926702249484557281377244916837102661294963620900606080619827968808176900773021737649860734345132050619581873888131771022379097557473994493079678082096761296076066611824444448403877010860303815233219174220927359706423575213139404195034744703562127424444397413063818033696363630564729232437824348968899362595797997815905369359147979274727383006933439979812798041322406777749550550507594354427578290948492596560853059418468709343147768059566814198722568003858691010606473742639353169852133951414060183632621425139350625040089248509102786194572635295349032621518625092185609059483316079381677209960180552588944319807533078462703290502490779408895894508784769160982547080667840829525874030594389129359881511061134813887933436687304015281754547136049347110139076307152474372421085750301272088335448505423419700832986723362504057517480233888889965626154983832860356495812031763777349321543911277438280447323080330876658865661235977822328031695842554971739104296239088457010341818017518831561174892389450654271107502397931644826245005782228390066820406527827110238371247679232883997725479637962582003222615717408601046477829689282089518367160309323898776473659200130094504608414276111674614648615736457533057603398179208481487726212492211915130259718544451443746689870635046328313257623394356857524708589200699991338875554846924622185501072003291315349179473095385974406763217049085139541528880677375465139080960902263729914828779269885443097491606926844167181851669271914377935796841575177846738884771891698868270966778808531598801540713864618824890399883734469417229799005148439981748065731450605819616525564914428900030799350092077215477445403753940771401238192551652413228995901964341736463104679795404584980520973467597262425631097258807977626531484665929207614592593735996242303695552191832064047147596499096097461724806555247376368344619233852814758856829957371713571884254303945532501436550666865569950419202962959887439960516154102938425129196986275044653390522482699437606745935268319221380043471356583736213033969725383680609596181419641627076071358059505444214037924057673021136742917792468024443077739434535274942892133902309300264791913728713044298547923971086743831098787514288151614169060445728039507949295410905953201067611966582696062896636531088384277632380510793004732503072077959627152621347810652926299767836213921018003716479649137889329473413501734478829164444827124822538471447255042844356134649343053863827681983912105875873750508746275706438029854156153058708747798077222664374767153887687531184155030219522558136877162880479221182129240332264298650526355428323250021060447388840269144388918818432683707651250510565771524765456478079194908679641486396187294519068464353304481952151808520789231320167603077786423440044538233394275566603496512251656479841643221798084247786784507785630046288406955420746238266526940672099659434528617686203192068024553094430902033637659709356077912767675200735921200415317940911916760953980379107068907064135531263367659188923240379508316674677906142899680961232275442828749793904052733975971041468143448534521524984085966138382416312041689147699446017534611852189319314368520584346726183381595326784516946911425171352506712106081132208150662900896424681893209229156318518748502260503482977764873787048542761201256080655380780862826966752574904277929227577566163612810317922417078459448449303351582117084899112673699301049375217026756976829383303410743956999059572197504461677341111340653206681352428756209565884641386447920722091840602654586825379792843567402655114435401654427204059860581501413663902171589586472400636074534087237606012098898926024606060943889027352083176301344137870932588217983585844445394601529055293121035742645587850325292641551479645480606985986855836127600517864394135319549123914236545041781038370426369827232396459983905418905092047720619377707419593452683487407506099397941960853106124568007554908238212074499287962854599825996454537773759062355346355005084461892967793981659201373646641870923791123139711176071584752192212848134054820052967482405204063849076803983429396512235680693014971668164105833213679544560391052074009684072839936553586172506949295395080925390221536107393390784662275907535309292435764463740290450129209607392606664935816284163548614198988452731489701782448998592465781614501511945545364446368123196437174222068551591867548193309979843934195765172582292670555297970360363758331367475575439899696724195634587994920853588602988451278760356354240896756864444946190882110436863589569928027892299831369992934638781929772483400642538982849361983480792388452314379618184182582549934145541614842824722623887241003681865530780491308414629180802059498319121705404445778364351187096421549641540039380765476871724181438760248708745135932509515668447386551031586078407421423087342913492959497423843677304080255080831283752894047422299037955184143838548650738920145686712788852035473612464639785294168100534885586700379880236858958679192431665028771451173103643225654285447229349808174868851961752374171954549564032494096310486582649139755903579593285104957628034047062620578485401675134207863302387204446848147067605759908320707194497019366555166161508151166111384261239686835157570492482578886494877792731110382087979598900826764366301344902640258991009488419074399763521765955821636423455371102178361816499958200435829169151935697222800710534831484107032213374763895927368099675725682537341447394272674013885828233168067040112722855886799528306542186157879732757860777034847186375501876714843858312701783749562212476495900996518611982506216193399069406177300668266725712413254833287265275610082278320817406013003322490223488055989952740715713489898461444976908665156051500227924730840006284105045650766945822385052736055961837709147687355943222409223427205476260333832633973789883884682556729968607171060374232036249965701180653594343494658503547274612626307739604660796667902313406665081148700598693577825245046406708486340561439745452989358722079353811889067296164137638836722769993826656705271155553001352386131222133104975093821206838648808817005335766012779570341602886682208122313137123636812828811017175335863775437886329807498908995649886908258747297783062977771104567655676765964417722908954880861686727239541268689100968376297262065542120738275202098505847620179751896045170165871919604933022164527255813978579864664138257584321223089885276546117654096105278286204320855578417812331216686939834984573016140753109335593830014977428522358704555355155513887997661957665593643479534806565001943734035234665073443851715651102975237278733706081808880731943673764167828741689925959599177847037237726091272299723928634819276677251560738070025256810601456558877964814458056553233462185917997827556082953797002015905557986374588345653590439218861003675951721231588073854634910046413763652978118860418030778549110124305637402143348258803673639126241506931296111017210521630897735469746117447627614887387014484242923398243804151805699024780451916479282916498689667308116930072690562281237951312970892660539720020263751405661107393135335508104416003299003726596413824416605940326079384114128316345709323325736939729588139286325740565260689830489677510189767107486861853054121998405169339291175057733381597958271426058484825975551278243308094914929994047473699993815350522111129215415153045799815617557015592353311727684681922311046991030970039691228846288327782827657296712139213603252401922633365732630069095210218484365154312257038837361673469082780112082950037158004485234555532495913141364231226424380977719156421738404408759619430479387064018844290564487040710678362655662078068553706069955233817408757936221510977144902038585983979522269097850296357699332823608328219741541453039824283440328355726359905982848531557955099636676661369029241140713400793822776590718538208039378246734352634009266106886342974653636697935084963784600154900805974009812853101540178990442079752688582459398409192428357986893448276877308486955530019522203035162047946422390397835769020806937133723538340028748866452594038237559421094185447942189559960320120594875930489512148287314647842837043758361965867750883636913857772995574098066402481494822642888851463424749424428703004154771742741557767534296751080927457565025400129942794731743204274186665849697956671058562287671734979648886300540181130868839564852920492581927266182910865133572497246305604760239175555421247234359254229808205821495708635210383810091854133190342860153795293958968618801716002088665488391852509161063486814380541810413184810807516149267480731403746269547848262767470531625025414056613307222673474435705599313802999950024333867782333921324003266382941893250660105480923110768364163037942278279038394304762226801349593277047997705860017215243218541260977808513127336184185971468204915460583488900575859145382926023915097926409378671799859426070116442808635992031368795980898945611285874597784921578072651767862261170286941563276780743348663433531821167173059350700508916023106797377233356729938159664071434370298483836106056457445616439199414716819904104953401681656195432137523970734018045761330538440708038909308775864443886439349637582161419539089582014737064343072700373537544350518816287458422642326737616699081015018560510478932923011755888524907756122874091473252510420389441979621172449404013545858855526145624901401718639096925301658814125524788011264002730987369571478538556944113093819989981305360379726384115201180910784915819988684300445389904248681312238627396448631963869008684011480001247827251595615199211609030196734738308212146895077186260617458617154675805869101613578684270846845731615758618085023335068901035515848293318895253626570561936324039567651716700894661766481763736556093326280871411734074774644280450991554289349312630324137910813284514922607174789595935669710169653630062357430602796982477943880223056710590135837364221939409678513400563613919622710605548225524702371264233645145655258018350096789994552982250904653886542473102051536451576493869273596084285190297093240769894392914368641922599335767692415742498925423966028891431899373880117306731595826239426802556427446025173824746243852104300897939747185314189928817386323244659696178238952054009314798316176284412348944877372996989020314735869347976589194404045710480215756073530421379759777834836938085907745305520910656059062646135146091825049577596267168338976406947875938027224311372481192689563779913117309871228057705303012836375540431132789975928012298984816598755909635415092220416121828059936755210538980856836487637516975907596206857219034460717977814189927695117848231403779688396245431132642888240799796084561464650227889071841014900829072400884191404826226509963084478528183820580463055416024541133033368251018506466623197546163819636416213382898913696279290837053566428048778887888463689796958345732748373387929614688363798593270912305242132776772594453682343321019718761113501007627682706280596372494519754923963894727227595842708338928642959558582572987056417921000692421912289350627834199751924041740818724435992625396927022320260357115379277367729808963971565031636468976723376256655779181284380340749208110589123366215303565698348149766777394159644980381246074153959284346056103488623854926486412196053270976843310312563844481688948702053965234559366483471512931926047436989366191682613999916764384483758562834133925902424575045299328829161301650798848961817759523998997707162809607382860211382221964861361274962079769856107425662507662480760884728415712480114767211473494552334514305940354946696027948634191469815036716425105468752434491587392050339716918070114195335055212039304748863086441926968066690238026404391839148366959598213559542930525633650995497077416473753284325923664919497169683302359863856333682803972578966150945747319419334606338790009956593238215949858344646016228784198676910977080578758225363939539240361303346977619796293670333982288026190249609763875010018893465407215034877980955250036294905968795062072388190568888703493055758936206535317556605087864436070822675485987224692039220014201506651843741743124126719756706292453121752511481649145593034029790022990262156667700672243589652355461918039867768172794335972559697147442899968716368600893047857970473602414832386607982172747420265540461642056449162554083949973209220893366404224919109479694242918439540643369673024202501381850734960017747129210505926891372080176209855755826243136258728029212568955383422453954696265078681979718973141715117468332971942236499972070030397063294202366575235387340052508399487639834471649089086779714804460524727781464892553514956556148671387788840290752095877267166035318271430880263410234304265079841362775988137660734392172938312242728524520981563654747976346310225503042036516789559770664283479503904815102365673466982992826918103670534090688736770635129123751214497379452634992247489027522204998677194900005822607939863442251041459349321607215144892168496889485562144707723192088422212947060818351535612935036577311462232275852645927225525981636804376845000285819021524660330108030818239240609394013566429512220413580792517292625964416233301856598988842626259690947174018284243513247981123024689514415341140910383503630091986214312455043175322845119024319262755778866443210840599436659408407554678045755462408642111306724324437029415646972638487650945466970712792747045179390018708994938750268817027949234185492755694267119116171727947074456203477583530058929918784156837903101073446317573511260804690280840187309830575089771276872933439894121701898673212717720896170772362700134944450935621055820687619923297079755467195241121683842690178913779831692270422336586603782006321474648039653356791689984767523210745636155940841607649077821367657858085455935010008613197661000712977579137891039227199317298580186598736862840066415282500218357955374220747632694449445384260503120052935237022737623461578238268050284616049300600160776346285698753227209636685648774213505691597645596839565465149343065374313190360658170544849394107805502311448570867773808046830342560702589528600275623441943868607432780119837669576461690377826773305113544651203120308081133912685163804676947360568729434968851580564292274569686674246243664285900438055707078201382068742783753043973465360542883353696384766894524802707216267851729449138110418794363277521053954860289097545712851937784916941094835855853544954446486425066836621767427486637361931792130818267417035198503967400724011287407602094977553954894997044882784703133757681809845727923078695670161620664010533302394389636919309663868785759060949428521568619601532942083644115810541803495322481201364403150123145941525977471995447879811016321044357108596169569047726258716153968896084128712671956953844989393133890346284178426588923932651648987079195285011244938746191174135277244201884186601709892391511867407538871517397084700593004736545631467092023691778835701808887094335297975472635370709546608449005364135888345365854555456731535239893372505127086673590926571536157357634844933185570845149167732054879672486935516715047317814845016111183806178925859599429738342209926128374096277857338879725859718121313586227585928678203276168251319613580600212239050354120250578313544783006728257600136660067163718462216429867493199413744939729701762894109281457007123841898524427316762408062595347140091759755110252751166315572636944762735763482034689421445251349715222228123663973157546586851899079851325509780391279085222891758347987986899449257481414062448818319108500891534146738642652525305242928006719236765972845603740518716155666487922454515201925340116049847972327431295935609892715840813886307240468628943519302196309435538167607238995588872509844507048833268801455240493179759506824830131262875177531480023128256699624144413252944573091485596556350932300317036984369428973397655307184943233344939278749173590722298447851165108709408934316777504018807422124341712819867149158298600323786395393669738870823161824252585309628147450942213077510868563431718937071318407555106976577357397243352506317582033257789155036492378578114422563012021808936882296736750278509677055952207216758086240314227317233051397098281135557293826137138161977290437278499684566876392301385456275691125178398646146090099850515266973794893174501764077292441894413255661544716242990892207960577054712823469836797773452669596644886704276112321073883830055129874212214771446789871770201606442618067134028754547093992285270546731535554849187331028113885733453979612304200660468470367965802979553260616350778800948881838887699939702526896048740172661305583886329318783488109897231691670014422758913379303627198515042211647232827958018003224973447963205464151324931246149233935276083658054261697675776586600246033746747979201799521541045700656161359002839818148919651996232540277296982316157850665853573184831806410460495538212912669209363802725807406227849322549692790196330558769320920515626007091761203179017967767581492570817360395445756887663693376749343617467053897369313358957784399013782098311284766668801045774883989104634210041627416726379906702810022731907895498988510439495793671715097218269486791685408460490967972952931274518907874088723173181202976602402800044716594893771411071415225356597644445351614706742930219563815154441163033527535583491377670961925291064277716898574705071251106935344674979301592103475225857037101415477335559622649835707663765780201249568420880487893699773152562670496146506790796203707051945518403983500554514754614110245303973194051880648232491714375657273060490844301355405141795957722348333690266693416360510090341630746325372530035762572401261211128386044552084313932460904480814615684420096190642537100167435851432930663968476503646171905784223724628757926883007123410777144267702534886135171721937281542115612100394454404068222936279616231864981575004432732502724994886208829657260958750229550843871982314233215328058981525232816106920995132342149458503451891858380358668386019495450493392000071911420916211472145831549911354697783825003431944785457922636597116142741905154615785665913145648694273071310089021871022889186782371172751408053562257241059127088585482141603073327965701951635884802153088516541790020042153177104037635743804601459160970023153837034843700722989547993346382703674109242521807246017218147854022065836520805235928279351879395933757968587727885319547901412156997114490436510766425516885633856208908256841768886531065477319702034025365018669556399645643012324831364815910182103883594885078106918651228263368313941198006748053377302118709200134706125015523605859407446963365910638929853768800800035948310840924411012123320714766191679574663125383886577374329166506693926323874098509567929223559204463103643794823407583340366017144790059559306734205907902361140856826431501821739190181023347069166674604932779802049922083227139422177977551237846009337651260735349976195889109582874460186770006057082093173020188579124952560532145031362761647539979277000103771958650430350665880591710418339852515159583563635501560692613149080868067628493480565217519182060877414366143954492436920969585007636676043168876487048625623788988067803850493852502961780450428698844069464936143137920737773917964178829265814366378433781268412181071562056572265865888056256958817058804067728291526288950100300460797071910364520969178292803847524391307155702069276091453827127139988016555450976442092682407995608572342264826819236435368236266361202048528477247084246128950882010135424785720501874950488745943200409513869729051048374608229023571977495459934967017851137307338460200580796314347535632784488080391348152972365413232603602466302198709085915177419131440553702234089508818466728126364318059600695826121745683403688874157845555500186565459759547182006674354666497537235085837781768122526557836200371712799150649382376324036334406699151952144438703069442728281363787068900256355870251001341282732077704634416609114161246864229440915296964501198623572615535348706185652898539064496341510225680747685701443770127366514960722793480677934025325631807791913929489909524791322703319658747963262888588432948957669150924609312064630164125711362721198027367216204376059023154525882608216050974903898825211783658025138539137138874523663956158624016648226998925716142690338030893431165281874457821046899464398867075715202455747555386743496641574182432835482046243840595142932779114129041880385347419526049493386839181897508076495971790709912794411892624384215566266054694520541061830548301628947686411592583070490975053132446063046988885878447406855125715327132246683511769412336254274679843699765925288551292957321238355051795673263282330636345207925782864732385494374184791958369322156389860409125598762236371992294873520529124824103464108613205161734087207972530160184980711474323081041903498180842679497189375531636410825701556927650601032095985257374630174039913779912757485837645043832598523158798470745881118330413121475248170746976899514958771444863069554087104190746129426097402052238446306229662582998805958780399524296641693923298093061145935909353017766694748436697709746913430932783519908891156096237099034075268637941013133551389758243591094445453549972045201194053761126751878280610083758122629163748224458335222077356525782114404584097510260906132286683507293691926011804302562808030519803486825546320504089326794292990367473545379790443780255382969888071988195794249308059193634494441835148488697711910889998565838288559928853243962367663594235530113686702640000455089885345991391827672281119314847539755850203606465608315768658217597785850595426307451406881271222394560490866421115106742638796887733534896266151107409436232692357548189985083842328458901587040171502850926971226626973410671377150211959993007313408730277075166800003570245064768419737002830310378078707924779428270546538612771784422588403330993877358740391632345076671871596137939043101931955687507555797455755668847336295159049599787696133888452901379828246492796333916447330987905040853604080355471925658179180459631269687210229808262541148387325725320096634727773617039733738961899396000508746604372985357703109996928971345353333080554620519086503144909193555515994894677510460609600691958396009452581139212707658311537183522495146151562358349734146913175321495406715605119640208255308177536477305405200709351961137684570176009330205496899541154275681974367373326871490503449045554587794389371836214108217938205709718431954714160100701750882343143414379910177774433489608279476565368599886994894479851898239706582999221430554091101044520858780766813368674255857069554661813165930073050025993885230269284510958711231214531895740773394987243823690528671129589068006714280488702129893031274823465737999121473049457630590590557562188035141547736912607865096940497209840414999322160423612414496970409898212878388573251389967271580647357669309761257774839518913023527943424637140555333256356205689153980100030007264840174113668130873815462035231466585465560308976605870396657694781268815736412672171447033447375586399451180226340427899623530372261899679984821523497128412901555686750793627473281990663396638142854699108575776217898200866305421564065583356204516164228964434895256626708406062524738849169049372808468017030721183911356023723407499954849631401455554884258396485379665625603966822960206468387345761352522411365285015019134642467130471039421562005159990345857494207818385954876764450061526109194926256483029253281517325563379953302877940947189024027742352217187780450134388519314084856486211518949164705127611800125349822121002860743064799877670678383786576395782371162772719749179893373844100744059561525776122300739301253235478568834295721961252539498657445899931149222698991702625362290122779359026683125868150297476136157494302624659493852936358125241059455780111569581542717066662376393888688096897922500193389590918422903182378490248905411971750512664260663293482726079803657682562219771273112932826065511099884170063807578516815766362702311032079493651536192491548887145414753149688436605084472893047708110129650970365790619095453176344276242012663215368555248042593325538611024383479761772096488711103284717615426715076253979817550595851434839831060043243059969285461430294084301399136864338850208725873040534213066079556859451845920517004140610783102830244291503760674129597733808338757756675449992649737245809949712270124147929071125073384418070257913772697864710644360777758740887615530092892667994566353886995113266490693430110864827812198944992735400938956408440081955975603608365131272116564699009526494975693739892569468869204722188520376557460193667358677942884122881224863246216373042768632393977502318356467128203814318191236100349258890730224243156806180457629468999685715944125621944318931751927894127515484379165329871879715396506720842446179772728389839804374732525823080128750634269939787861409126068575912834170164036439203718164657551002220523258950983618184300724366773845100831761903563960165608968139056015776195432279027008578879035749655837421666534284409045882407247076676758675559144202905107822177255169881265086145002732579728988243200877172686884057216057930128995264413325973655856546615761153309392959051548575578636820761446953305314494442733345872072541760407263693244953373680217207888069795283716418765248356204778703471506082260279691331534077091784304614929557901500053429163114592999420938638687648513980487915998138781812069278295084814379585594317524943109854135667192272625361253240115166495097270079009950818920981783984903479277141701522971004386230046083448809260894070758484968871397811070777582799379873512286248363315596388147033340288466482947802887824878249321598676130898202637602975931885468360360724077526960343113946993969353958395296202286877641938919976769437645022265998802373355316984817152329496289052242097192063053784048016010403721756499758247090280774750807980082800207387525753586941503509260763089988365308950162352316473340087789844268659629388505163377547685179302795790385194926216817249575050283873168732286845720009925436353024622772490545020330529423542446240051684767183841751570622608956769003698432513193858481789516908298206070870164993715519519520494666883228921893049361339009578941970681331440296334328171000188483188850600743243420291659752604973291915060302988367960995872778370212571517365963972120146239903338208400979513578610106886792179128524593682902605903529490752443216765060731738311061152186166104390742030418605472340489066615222982492047272793193259316085089050659084697719204733912477478452150596330642823975952162706147476923950994108459332868762386298158227774914446841006576478203459070549385007509063126175238726463353792453217861479447623518680497843271812513666938504233596356132412584120328127275659414840042114369153228220426481185410699810944228112966177266037485996040749549090651164145635057918952442596612599053803398473121503521274321372608501519587296616336636720663661177945852997134841175982310491887419453999487363470477878526313525280071414974982721924871316605051545108893649146654838016175497591698571243528534733589746931752398477599206255937502676665233176390337777569870766387578897795576102504109870883003828789088201502216084379929014478922943471303644459876360219214035180871669185065041159685101762093089138190895838840466591861611418276179757396385785757223503246791726742972654647657363510389254169268291066252783274273570028427836429014572298072001383769922946610837753134556236397671005745627146560083950725816932745658474320490094288230089735127014673244315631754198072199186193110963108168133196330953614507077105598868069355524432518431192226653129813700698200836859162378462869462444568821364343095081464445216743048176612506170295319341504479980553220157689945969448655908533609021680931744515770898445160585188732924061113405191826718076484109644863815458811070192212792300055622192750559090063779568568759878642250351051970358667776466120260173682633502305987295855291406687305058729986803622683177225761804984335530641961935649003130633312439585986577453007547357504964845119275593161510408892394859707861050447900872191450001704406203731480168659695833418512647308405454435698723154486452172212809682288889839400356202917046697780432353177516138913635245999286991022198816778217673952740026138442681459505851848952758368243542696400203351222151907952065585090979956629635863819841978542476801203101370949713330718961419770137807180727587952885473030763139856016079720434580049057117404602656243793947357160502002353405347852849694756718633766308312057370322634249100905883368314228292700547990831907967841103440433220522423804154709964685125417876462879026993832428161460114618099992386627614143993968087234525378809687959299775435953781304558432888067357768114574657023555906969047573856027566646272828429564951796634654902741759769892225547976426553766592355277911730977459917300622740742802888354166258543999582999554781122447541995900545648429454651087710454337822710308947777948415225057554574317371579335461900540524372870981358772861789107793244116271534863761909429702556270980747901104427442108645937753566078833482350160974028538263451498589695368296902078681727412765829945436025239565498806632297547343325828771074262087310397784290513732161125660919276228351846782940384675368025611863809711965374668571158094806540373459374100697193294633193828353123138528290253710196946792284695382007251582368802983527275503645540073154054683206056098079204049066218931637817204887738920794956824176084003909592594095702403544820721090481262873022495040678939286442066056049096691020415326077101645891431629228516232922657918108078508077990504211958881614259260910759585018180557316809264568388773321443352366069068059692338042787558603224206561656264019537443072298113414057429967927106985551039804609669379895831640245251094576091570172566521491609879652567485739503231036457030544405008248062918006912303799244220577575219796653245770932360348631873933716150160778083444968758182418456119694003530467873061656138490232986061113135181441037196887301373345466860833590218781296737729595431472166884945978674938223934698471467555649696278169679955207603880301210173000893029831497945828969711674703086564566857921906751774121709155093002582636306265478491434297826600008838536347957007356366254517788115145041238375919066978552085639609166799877216519568779246254264102537371142171283940345352479254802510511203689009679229276776526388839956869175194091155931860070607276530965896944771561836952091533745080240845207726788583954892392676855816572950457469850931339813877041767009390073612417299317797127989920663726684189278584237508782135830669820001089379307867745249210821001747749167848594611842599736748028034208201276669668963368207709886426996068805513504026830602980527600680512099425819268439769300523899613310766036607621492386443057520394222578061095661690575163689401083609462868895462073467616916778852336168883072725845648604854745552718097033997906478172214057466360736617267842886343996934923508003215569099974296705228716041720272444398596072178750179613183049124800715035317366711587928663551822431516942025678592804448235645826570507569604646100718420746474802832883532681234197156412912087651511620806445521503339038909156074032756640071363472958319225083989513159631472801151104761421766154667726364656282254508940886552454534540753916982790258896022708277218293383395049705085926313997611419266091092411776077175525078790969944828578065953690898463081594771502559870203392765878670651230310362149206114759356574962341771049351452260684652842709300516928600914781244600463123888607221699899884724710709342574528395329761577528322638711782947045929248336144369341982021556637542407799888943574884527268596877870418026722828573759866512167272441259735679687887619427627530756098684618383541806265190519063100699740258604656994164274063695646235523742008048204401063835176040710235806980634242326532044719821163778786987364941075396132286040436681442454398229798871852955233572955418055845409573904199891574775327328781145714846685459783089863717891429656209690088063012189277573658797130559837788457308806482874144909133775358463254550892119815137994672005248507342794017427748165105438833523671592494438399668088460381569402462719898325681994820010476260124334967842692124053583433521418996563846351698883333746431147697767542738129602809017995330515558872359418468681112710036530161118475920143395924549920367802493700381756484016310537356776751835170011748589050836737332925428521187517781929154985911051082750219944296643378632341928603481994233347704810996217547435152610077074487676256472885639676296413197069268219415014360844065149409310906630416696116165372097927195662477476484287521311102702418688226920179904176091178726423155920901184205406493611876317475345678703172005497389843448006781808855374401331992794693383026483277505789896906934645565158428341203699595720965353177606796074355084786863368123324658645938406464610032820705282423525513741771721092658403138016802613621472395874658538642823799228468263648084229925538587814322906297796512899745757807076821396440461281208182075141374628536040887299497790370554533416414014334466709496282622250095053572060573370974399924375045664827246128486036550153380361045090110715254071626921812305064739745228791373039807614159803346718500753370463463941712312959652927628005899840225238754187529070191067181180763821157598338752873563041687207730206696154387163298141658965290776597324374805940218962168335984586467010497516197739250019398858726490927068552047527651726651830647834740148795219839878127965062311760924513507685159731016704392649551703561856239631472587644538600655186556669956247879162704711857609554696232139982717845280810282055804079202827417564565635653285788091520521521053851597756657410409498063712888183377956234182647255101106614112432005404530697310026592448140589345155668682602728074681735779631131333178839105750056731357326988736162513531764868191076478289669595954718761818414386496882739653271543132269395627489595795143211278953770848809287780119269075184064833334403101866257294860510865304302332622975761673760756951316164092530007760855114735385373963855924283758872980155115501517090827710580258366169154478056307393329796355463487974639367660360417552993239218903862892913541111491151877267025999734139515911127152819320509958573931086775138934977530255110317302642602574210984536869902066749423260517707847023975014373422987933413053869498851236918173026576723655338688157035484158034784859109695653131534317120199082052457858715886331204337856734876324424029658385038492465800679242912593703288808451656238995737724987069461272513696321144404419105080425285582748928202618825095707191584384862490432389702169137446017711838752887532909962169683272616725586706471130875108879660660399251258737007435748069600443131494300005097582112222629939638244162258102265644274202065862130549505780170561050145642653374730617081431458994280487895472627541526546861753628552120050017958231352783811276051937155411630873942352694423133804182003635660643281501130262429153151406650611938371938855696716477202039473816082271845256444652323868336536861028299356315118834927364454719513047452549932908981602185767282455322253591263405480592666962510770549268537222371955513271498607230590830365030903959172564918312024989823231220842770230350507672803343127938702070794930784000044610559835113413293012955463952190230812816573917675970336078886017624035360601340810403156165844290446466127421072487914554176116387296844020066917982374847014833092156342826933013062146613862899699479457285506028627385648230069951331559644963745750859761694030573544926385420634401567616787206508677081558223332613157531516244389250584793762344635071817064504312786782485186161748795049813025276164903135134368255684169590144574438423900056491831055054596639392867974321164812652269675088389871330230874744941526103776308856017203887879924251317061878871470533867452311328465771324727763708430054601331111926480789852644675908824448806025617497625574035922116220996636580981503588518379188107959918382675393217665310924035265660536446142097852289176359912731855420275953444192867928435316914121649183503517395996828876114591686439835735805164393405099634778438535228639135789733729952112702892619266677095671800468063747848385398775068850996381206594702578828133971984352092125615620117641349672923836643503556618127292374347237481379494241386845168265352708517711052367864041092271420148432712246522482036223154731476099908331121461454205023737352260020711684597733391249398427072700337565806951963969650405972966831606697177261213984248514726552312669693472520645114685766178219828852400460627466065722911246126071162841051989771776342406019238323566083385417856401799520144860547011251618004278783819222005429345713990019128217293647756880802775570640016607834307264629499081835183394753015908899845745287978377794326147187966311694541563332592620862898788547294702347084061888970049978494594046238640148185366399413014038812382714991204675972212770509561373697088785048905740312840161502055317704041233448064146637640625123159879504932552178893130575546905719664644241631324034450892655473530516319548886075972159693689860441432846414110480119234043228009849222869763858734058762154951412750161842372925234243531202788027002527448303933739539210601858589272014542278344680756321032537342986230068273520143383676731349737730905501850725505875096550821646037941252965036230026454526957885450129351768047066109587922441858217399013285887441100648458044683308057026609477334295353214460737487328865061133409330171065500307603453745440953998805259360917116945756119492947187345293413503956899926692627810895281446151007237055892678107592419479305963020231060374120157085764858887492057684980753880263275101261043655845428379270274781267149665823638112156171988785942449009640200883056405521786163153554835459772316138243184660904550064584481710491472883662575086445833806869987509612260483928893521217376028527359555538071604784146431442710733379196389768298500689599537534502505145717917010524210351525233168662381097160616762990577335407652198638343364008159296658062092190613979391091687058776064521318084907278813649139229350515638528610982958965010082857742914453186149894866346425469858699908376697315394382589032703578078224957431486965671938524978866249546902379347332598081249727222833035550072984327715319746908927159116664987115408441721214353992101479222358296383525636256685763534496742424185921947641281594076788242451257633503671614165796880536122697599592430765970504262557354460823274927545757052067577213663938923654226407758277527082914581462413629656946730268573128360835408518798583328003379979028771134950218373307930854523637872012833259244046346509828162841857498468461348594756772792017277282224232223595327665910335970967845249186885529888420061235335187632512171933563606129938181153131429205025397371680365824715157808844200268859128267390483457582573946264872255476527015183230816844447435923484659381798936192028465348301309076130568974958556286925673190841018441350304031047736594914256289538439527374079925335938495119045878459511717939541040035449375474799410519127769955323897742135614211319787080891804575124705982769733292902992800602680388071248613615677155685569544678172678432352643474809640662459138394355476769759692369797153084556370185247870101447309075551724489689761092412426657413270252956136762560541388556248835448439398689057162782549933966372645416956015154986529259569996977928293710972747739338280316618362526757490142552907017538586409221338360513567355940569375009990632247318219868767333224487920783518592997235515720865515427356748570724482531230995324187445252644552661273212405240174957749301169773105287594882567335258486515318982167659382469581222709479712856405705678632042808188100858014678292172842909996205378427835781073264248485941525300986397252950030316148036791051287499346918066155527233666021302315410486178978050550594561916950397208604343211694014901894551449648353036106888951527750790306144279281753818390536254790720962669417201357384447177486974909700643742386551286127593353934331135885804880127411451479801260812169311641088882249492102769534812399478230643974759299030397850559448654349669288984020045183803831644350186759495498627501222157355432762928394740296488486509407659852934357837498822182541209842944794955616647148319337052116093672816348152758324515045029645066097224791582063849063598428425642906411944558609694582784345771759047350063026399775222865339488250639765530976705971600314888140176986714485394746029396867492977836117915582374708644215996692369561399742011021746289238853731106687902700720999038360701939398292773847109355224978520000537729322021503555201954573071631036455953578555578678491608333825193334774178445160564623904474198161577860963908829593233056257662363966168245642238653177366639036021633762194893798801169739743070726601488731672761640385662927363541010067330166235422873650385340663766584078825146292837881020857916445393540463799971416829990084658675680212219115083225184029078870857271256134401527453919886378728891565250838645385629819958973293466918991383905912062987214767771734422678205130356672693220606973378403194313690494862947168704091603830097313649997005701605706008478931081356753597239819492613765176961642134405056335824254494742835983440272046386092685384807227740864501933950784054604734652884003279068007676734098168945286120652082084417855989065546585447994622503059721124396713764061563865538536644385090781373116359469294066412835824262213824936766681193461143794717256544719431703113475038266564533712095175689528745427538517724717484247764636070913109440843518611475324647471189756538845446083425875329355393341616373999747207596697428895498179303526274650040979221837088684908892743442801783554415838822684719923528996017404217163575071925731098684942901817121044920039396836539787420037298957822348457493495148492834687949911240503760731276691537234425316764405476302317249721385444522218005523312510517729104047357447862582585112593314331950575079378430395675618332051743755004767885405539801329169121734743920421538759598484824612093256850457277628049105644147061070638488072082255226733767067853047832350887146650496692158084563494619389926703842849559767578161107367279395444554889211031457611398093394916302365233351108583971994321968237236759819899661051720037554381388853204235869144525071564531389212030630916692358482855433162916056863201126742240417420426291460060449974752068795575255036964499731833721398977812024026431042475104158388536167847683480779082314261875154627311973693158617565130331170622807846768955703435628704451417813215321832603720953736907295375680914492518595913856667744442349951691697057243497570728648080487421531792662674386458054696891785505923444350957285973766456659598077996755244825080463907332838951251702151972332031058676920071790885133045036977360895496018208151647086987054517560308263264211017482806946018900176974616612017287000948096697267748977508804528561058158471319811202421078745551305281743271016471013742277648335718030446238892713679577646480085295531202408486123163292938807610649757270484826972948436339708905448691185223924025997246332099390546300154799001578931792886007477170534936087379276691526589321346424198726557400436157799740995750095247604438499587645026115230189279499594578845299714430832628625833175132467914133049971565362956192666583839023461312633254812678863226245253085503176439913413177176496624924966473244040119839301540339527755750697588566126031307025537642015324657967022672944314216924268407760398092182308121685089580946986752529709414498972140697654943503516820515297608080666064760526203494053486512854527693036492788257007738949317001409915627187977442275417661221957578240158048942824263897356919954629555977500032267770606760471370146637802221463387644478891956524366115229835858453754102933570008078855146759748628977242823202481458950110267202703537851584148083316127623406786451761846399087301626572134550931486031565899041574632403273937765326853326438102968918730633074332086840053052111350112331678576422776760758344606134811564703603242459318424600934672899473715936049999453150881489574919401378954294624426982375889974036665678785902356389501849069641113025679648482645151870559224256997804755537511625602619580497844784017964640987582556741978293212502019099647119110296014789942035992690928410226140906910952698721413486767654313541255567982443066105134286985421452663213283088560556410300939849998822440602299794670815209835889185598408096401092291846756145768351711504327687109584110649823557885802772473011078741951664567500762491275170497218894473754809036574355786911832926887912298734062780683350569326004467837300824118979270778527775764994067928996470193876251834081569170640335712686903462524138142440210484616773814081654596969570678094245225870748220980159049475011436909633754114761289126304552046924292635742399463632939538425615249545708396603595301669379865689209092262892272048357434214696893142435609723729168883480178674625403864992366657154311501997257703932775400655085904818562658669444744326509455658212926491038647262132497900535621560146353525168895413562426513109479018229195861708117132003470330126742416218252664558557120623802217590292780722874003532694918254049166955975552691927936441135571404819566474542420373632057267616881904259040222926696951340164010396454145767572871230064458355229944119919744017805424467238712365933243048681434108906686994949521438656529433149754668534012226742759679245201695386340692610985895895725228929324171356329967514797588570054690620370360318655727028192949164358634768841867863290271080650235982220380945728676142262811907848534743300207832483808371853765494962565220723302061920625895237162382233146086192718253949253456803972928292492091777060335002440506736203446100960466245174915376618477062125660202674852054109312916626831857136028084706841346306760484027558279892115561674261746055708675014768599500213315624175708644440438481599140638013553880131203581401063524975581795148078393577959027044694967165518168412265453339994878814257660829545525508349073487839107262355034258311176185643553990645044297520110885096611499685057216152099021386719862136264613297626972676195955771073770118785574844162180731546310378577853997062719079015550131037050289315106567302852360020302153241534261640529044725666258480247550561464114800036774633453783104432706989958023822952627852484231380723976845393017437993482597131498240530805925760591421014596075314610822665947024915898020936151133018751224271068659472098661051583488235010795358302207129439179866135364722811561891381365142323821753895909902330055338686889130161957444229500816188795538195303038296431059004695684794705133998014734484101657370973454300950691607151029224433645865532365705075524218196551534405997443665816355714275967442570256289563098406242428380932139570908143760045823446013949894452510211349123636097331810432214894503120292137026520279216737074222446538906337353831884346266223081015431277057807307669325913694253300966988940467487768461362984036684962364138372278931707420323578825349272469922721057548203389935465391123483856318497612712792815147078726887179730596136618491525962934363440245002556377992145502222710133551241835227901931097640406818611548326932838807970652403994339104251200059683251480677124442998139872163339894101017402108271739454720329192813743207186748394568125949686168018047177062797012109574837614582351902626156229248442007420222529673020500319556181159118462976625261112118731228674699454962525918248606221406116592937933134492690555255861583243072577097822973108533953022227117924268854518982729248401095775593410199722215526194043381680410862477339931090616450391363970128368664353055135305149532716560965033527430157023182029104472022332108269470369871596307686464388350036069429645355127992180222654201533233338727233094654958279668175250229526233778000743331432917709432224392137722611113365464435559517008228225550180349198683603744421049911384683564572173806520063881174174929496017274691021201514771644029092093415215378190047654761336648172716442357104938661650817699110356923681719810026803114535713367086655932793803944712323951606519121973367280710737866614458373358657706050462666777398063693817383348440364151906446534556828349619472003995348107816188842018228240819287459735791323731981646006817193978819881854329196816962278825441579553058996818301027937055051507544331845339753437575733321605518218159675419155546146385275972853845182757340080222350359478553695578579336774180028006488353727998386739620817988227959949566985872573097326717911121107641705215316342735139677489436109566355819189347206795982654446133165620624191915817629202857470142966580759042163027282713319898589314620013279579482417286601061226551545292284545125565720826227145125033468816378606109750719405450872242956429746072873986880685689421239425619031767073943244528256314982225075431397846903816725206268181412708613710368020498152792149982319576727020829139336768208203176479006694559325962248001328843628459921088572014348261661114230481678585356620484802296439233847575253037133607437367692549012870771480581474403359321995730516625685418997010640976609834188242749584277127084770812204069006629028685149476257356477911103204806458673137745930002010925496535447985464755799838076326737664244085662150175600102548181971780150440839508755943608965150714078054656983884089186746517051359829500420984228442816128392774933953750073514626951668172504427549491531925642382455278277593775636035391795785819120829104996672527182930387379447469259962790129139074422934371433127267971308344055864375585924088497966373269038761775849183715065723714179649216325901880477151155791341317278403089830380658981777121593713124856219549887663699787853982164404939858170965290166653027785311554526695417344050829944393225984605812661514813608053053624680813558081386033135725018420450500927899825206242647026060880533056231261719058596910777276584200595106845781444525886516050147721661693036399162615201974077782455807047478245921686314713372449105224940944561515358913756515815385306728617859970673534501736326536131354098371539172989788059625424025576908138283267458891116378598720046749311750114024636858513764908314690833637602112106278265957410278857617515638326954975837783654046486150566194991451991696190064184187822100496577261880846390850030931454168472689267384098295711592212557317444785324025196766330997236926785398666716459075959100481855809755718576866316375711806467866922819089067304252488004541244352699215631840953423956573299644155602067355864424806295407377909790166816050115586456528488117984984870797009507933233718198839469911211970655241769307373846711357892090119966373153490101650446647146883945926366587780613120077116870087981176199654484028994688674166171016440711961126540213499380602440227578088817214410137359356765429965333654260103584937825037871228596355357964154379428078153342630471549937664798972297433721632947333495459949501711089793647004943493120786062280744699597098764649135431925183565877684453449512362819092289713207327120889779069714889486931265029631962311541663523909683020502882253350963312607680684109452141433145417233428114185357040491889491970205359860291992133199090696500110701320326552583486886573810315686262703802089685985586516388889205676077556758543260045400916601897937817695904026301899982675122957601982707381061854353415795498142894855330453510897712583194330304113684454473403264490813832535616583080242217213324116407112129531703717131523275420085060753094828548532302588180092553642143177016450869061081219803264255224368801378176652593325170769193821626348937324516142746870799159679387016273627409217850596857580285824766588235553954591943537334726973949273775725813902404213086698969553090707625380255547138802332028693131057853495997692063772508923268788379160673291340157015207357837674977997661537696588735400288163048083575726376560272453267713614850135916357028537144309028492020603680728576458729539002015669539306439111538907629482952539792585131117320279752946889667052039197558946707258621339434913403599076579683780420182387388740161423309515047246310214473399837386296222042472898435426694412601796034523770382574321722972478072320824250872275290626953656405797299816751307955901920828647247206326942223914606246659038175593629140099657817208004812538461259414964094177267295350201982369394162632980414996401182800650126308247446872754599121163465855167328078981991880501169447393361636203069672015217559335488198894209845700085466276963774033478831853116717531677478560517024580606892214811166638566770284597907568375987956567042032025616522899259541595064893422692803110570703424280181972225781528179510306874513575212380716079071820608721856294790768574365558126576298468640491405290794206846743766027248796475042696120295294208476112899226080011335681600098024703825247914734410230784507515729321680776432488358841292387731757642294362657023565441600580462692203408290735281344586446169487332955790742197299111733624213309858118512915624113253759413057262919232153952089601516978958954110344938083242485820109770949614782587407359999998328868442305187589444042997653664801384172289175263994105613105359077905205542127148583021769231553109550413235961710488801717029808899475129794237911994483118550833989824075662434736462294930978813472708026731953662116580264168352209881040900110780628808957027525185094111176649290752965439294119537392166707697075925228022607564081643275702318656614262692671569587204117025463398340671484830786500517878360172927070768500865598327916684391004120176630153670940915612003075909186963264684015117327697258910047983482123885961601199147933453430024941045959930813660914954435930339021469193144502887587156373277467008210009042036729016494386102118259979363522915774759664108205031783250192303739824461135442723109681373951180157331433563803384914691519149751468360737819186286796474313277475281620340982376811628077876629974817138054810598068791941968940274155345718787311749412264136900224882801645867005146971891129454348873364771208874924067674500509962822500771385321026145148324644511238262646715319302664952374791319226925987799827641539196988576669484468764288145899574603954667029461252369570177035963249914144856559523181071732367420475613615779252714493625931362062938349766740546670430063485182984814097122740911129098234306828286901927450899526106013373644216143250170898249759265916261431654121050688219729063234648847292391876830788827690031952842762944269058757283101668137648162857534255500887009784769528042420580582731833701539821410689008824494996770652173515414730594803194068735162920594056734412080679205713497421019436353545445693561446365763927167103964692396230208831934500803651250251682694774440009978390395290688409779003265938276340356678871193147575939068809832945630311174890498620701109294178990145533639988490284009927667714329141472759576405715609735441065043073200660219940922205129916392295372942071340904282254486607128157301979435762163692323111046427331633652120157262466583357648229689732414930012553331805409379229919352354761206637882723212310486651801694539988308947779028545737508953397115843518933274392075271839176653010496426900345893204582976046509083596123686184318212729313401389546602842294313223106509577064588634369991646377369213298963563397576645284939955572619371122764691242834280194319189132640045280068175318352499610157781128434111194278006556304981763393653539963541344561551270143866178511149079188017197053522177377321752275565061788863215522349471498645550163620868329102266929307214258825671317354706976440054458079067168277477420868893663834282688289476566251627404853403989221822555738948067396797837719890289403047338330926961114038633547901568234534512206824091634666348736451415737168137081134795731396346039780071180744045038180513801879895658346730847732854046673728992122121370537850534313945298692975676410518715915294230126649145386565280880554829426070344091506619418473357910820973537185983007447695325892932997817434856220810791010291880305985453021745603639066347599837367570409531707934620774301142663256724388921178211554350544993172945487287507437421964901577509192516419975963636702530226723425256607464371405183677960768344071942410477914106347387498700213335553917337737937256649837328125054440512283560106390553218283483495340257007952711170696898628816689983095056115143374562678542783903487007970689317846183365781734184869405892839297557171304597106410163238156901007437583549362387324271177187817054872988487057339479489635350770377415216324800462924166312148702945301415061858400415139996555030303168229860756765746698612337191442885557371084117782563845476606798313669057746657344701806552346977535575952324158141132461486994967831871412460287448111371366541418900728509147818635435598023591240794673859385576956239625860946975564699680924271294053391512066308932822397065769184282643305065988490727334935205906762126205980494643168256064500770585215730655600863156720357343673634319407082251178561791369903737186815698866108319120833867627273152085815675149930911550597908182757581867309354822408101701934317581895529671374193763501385743533941890308471001619601466565370187251203486977742509075396100147736368991864343561523174024918040310996806485752722250436356651933428817609989621580266361984848218629415465663362696270140986544060668925233367387470458099533734612135194098410184617880886342129535518510517596466306765108268742823834555215225285533631491482098494471120533590854591511110380648719543385758831115323719780389046800411808417523611224770569702203180117017069044671488408262999742284403231189489630023314739064953570091706137275195065898465011074569649300517900580324729778225608707769339933876454387314761113700409931532943370032464654098870916425476309576764161382217825706995255177835584928017787641163153210361841855025941475847057312379708582407823589881123540030095505413770435302929859821575008770295096094909067568739318532830848724673711471236928350542886573254735657944196186074249125194985336795657328342899659602625511338911644570619783687635650886018597124732031567598453486116308322932944811823997379294845466964383623483963717912508997905671921006643027342901618553696840311742635179117532305063879739749376734951019501241930609593651097078197722852529624312770830017989554005478119066047140970459847617293346523419202894352259679355890043226965009064364623471202550405062051766527160758282157150820974898578794847344970017429742157384304709809969575424216334890225933131479441072226342598667923540710962072821271251199016052305933094135517117265618433503439370246114447024710775005684206520887536649866177422329988524311823277958504795591035543547466320816382070658814220103352856822429709177294432419339372624898970251790597650241562614657802913707974940100422264488811953771530965346563966187072176191750805083001552486639910217488911267763116719828304615768134057986056772111092076124758176474182325085685582762862266356585690228354361718540831549339909470612658862945411872104497519326514961150312258467753079131380308166629850253518228601506356344733238713467952603082881948112205417531961302786417540927333687033882431731162797204707220259357471827341715937607081789088880607682576948533868129589573338034450118100679317066109051837247728980800101326681674879952668763040694655274913696848510661659199046356520575555863398422292125507066145230375534227379620883723212809699700660042715102592670602263654226238228629938401412431289549030324496958115162230496644014704030261758288715569945671042432696466009799919640050287557017020865371411160956023759736134177940690249181665125864483523870637846838756549037516282107725880602329803849691526663849084455758653864391155913454772637426684347326715536038215326891617478110610646558551218907577965098266957165940130845201695614571983782455054344373955000702137520823320044108689540344504752498073687585596381381141061972829999417018480237253720615762659733667577481531388915498398170026076265436163808956714931859998073981847129280806413464126652242317096952754880002553185308933623028830768757521257987546003049823138117941214082130645903393577977520954044203526625527046016469873403707241895109770079475370870623460749604468647087495021794476679395703100497177054730706848126766705781831001443852880185925967041213003134693581576000990469500791494722954188393173249192297268377116863511193956387536698268030063767347443319725393610943833731630228630147817067975778430121930786723765597559858411606492592038208652426235845844691123038166364417061253505364557478545106478003851897643604230447375550755148752004457062543795964589511827183930389293440060898886209384155058745448563833538953247401932090441366972501249274102848378611103607563867811371197285985552993811610464150834193978140777222319485992177794977115552033863550906985878138259334442930356402816246868389298207804440649612938274135972946681600700486210723499719998914197957019592162831451927788074426744242460594480993747540484671832852279551425816724460809869708322727123950998899055007466228999651659180424406724857273996133213575936493640667365840037874268959188521621410436133712810189060775596509123676839447930621943430712977048700667113057130938005752700922702446715474949474491054061942121701666624119469587415989022475889031307645537245220637864978288743126618224956166334577157770898825236719248835667556690606998942473672522206951121309311762240521433194175403540397063861577457810105087265668885337401307505432869428009441608660326943660675908235811998878337209408650589539908111454153286437456975834218517235046605829224802404206103359119874077538997793718823946941710651535698654619776765587072705440975459418604762624898178651280698885214381255733970861526230910043229218955647823354584425097061321813543916987594758189462751027811217180755412887732672147998412393734598792096975406098128368281958703824726357942770609134185977885561619493017336227381443156305665744858142808299006289297153902089480723437326969949845930551853793018951428299903378376745329432774065484709717182946267776016096668529259473807201331787464579737606968330302305475524326786075671001509427023914856374897396984973725059135187719849739620570108405165061145920327000403722559220194767611559822999655832973376352015262085420769253957052875116236073916024562473641234574071319598426361414273267833768303419042925732902032061877692003090362738932077261833333340709727479642610996674494895559159635944352486964349764340147481229613628031930645679561594973953259497743716579706453987391673418271250988938356770423129488489587891057832603567844795458791678855151357968593619321537914683519337059945675880385210603352412551112813410092164772428664668374629231115863879457776930782417645348400213302971278669818493259618823174794209496771767804015085914242278338837215345998157805693372860375142304628253001520625353352095494363082772098692014187093589166411592231911491232038193812169724695216904093472678939379066698572605713884519377237896438716077656366899729190512220984129310317264465414129219954535221531175731650381175419816432624352510169852828199444577591639245763126819973475094610182713019620088710849189906368527164081205983082636600965854178076877575431727688610557857366182138523768087336948653658129140608214069889491091611914620244604391975982772263294578320619897602081584981932204700447152925414634627904641511561587830797450809242652179943150544735649195604130491390596823439898214010433219123242414503696461916161662590193573786279030403099400707928717488122529155650055016652539103225087561308955039383981806371648467776978936667530958920526885376673559496966912588425021889557977656165012992619843716320775664637110170118801946911644277605012939831818749513072814465544409577353272127697165522626118650270215976780659035863610708813658763873723145712860471389152213812319443748230758136122811736801601085968674996685941832566622831359650348743197954706560528017840618285159388118483332650854247188314745632342436282727629863229451222715130644404048523867955548481491614051075062837562187305977826404173314689955669704170436029755587144309744365611124757360925649861082800914550355665018576005507800969194753169449612032254350115312790589275956820356615571403820605443575295844956464601351733673121487947934319081169578003926132341022952584975355983038952543988968708781836117271890239535195242693185430443924210837450367151980997754825967059783904456034983210807506057727423529818504136335661412266184329635058442074821431220574781001038445943962263609713615883517491710527487970611594818933742725875273689668482891237645830419365967881281474225863289485967674598493369836596179751640868441872461903414088137497341200609396570362597656538159356363874134131230186102093087074560348206270812596827423586366166405911722553180199580449243801265881915205688918356374132670660869198929841242582698182201860357415791757532870663568473850686536540589083747639400318857550831327363336702912792547985388932734466643349151051085061146849719699615761664924603827106569996654400053533167969677838241870486747246801415460305309478352120082378503383153226143161921440284184126591969073442064150250507738189779706597486186234008361393035882744236268227104882766226412834976611687324751939503171226226882671973851552463482764941540446756390224079705415213322619046370204166505903754521135031767196333910962081123524516499777437740078082550475778042952989989675702905831391596858208603352665152637006059490139601510733738091103840831919948863759420771122700045075785754323376019347232637685204981421454154829128964183611427187553164755878913411567578514159234450137386567657034622760767695961820533697834733150344010122259031530821111960069416722493915637059463289725286685397713688586776804374107978806680690381500938939381051973340711949531346804987337770128979537711804394805552128850332699966916971368456872108675070191131645185529478265670667741189868005453978716229217558556835496593167745982904055017560254406062693843466381637738851726177438558815839560842858522168119447671153105324088082533226833964338442250644198704784574806305436610653087012159414838684405465140024780768276602156519778210398793580864368057839805886506283710942500245830799696682983382507067594016095810867583939311408810438443297846462043056973969211583519310959898559800479242344319364683045394524470895764130857602980134994053470771173489506201444065424550377890558863186234271411898169257370651340791996528788561400950058941123551269032664807727730680522887951028891703790506622917656362596872631740891541981278901097386072916692608800816084655605760865842919183439853424731098086490560473874260883561127240667251767749295461676908787778489084602567718887445165721262478813204783629329952832008173181926139565802417413088380111952668827426950331212739687445953411534162874007919946891286801537104279329539552002213622749631061138167625642167729650450563557872425914664463860321283531348829209506045543808351860693418721876399515159261857342724124541082389448574153040587619225741522940332464648759250725194417192441366861713764387577542709885331087282745602415577250018176911846224644134470499346854994954884617568544522689214536352775495919411501149174526245189524224743229963975762327278843901177593298180138737143171061258254192019844867888264046576843983170109539563948181858750854640153548048182136006554817493043493523889923618459706952606687491207176038978129293745821663578679579436791141097733773729429777133928985267904805344220098882496009967279869835902317862876669062460197141370643856465338612237681286011742216750636137641435889096711453091586378056628382685667308578409206306530841767463008768768137115506284175996764080131776886707504535028620598274924096556728038972693539878686605389969225995778919066441774230083692518867599892109483512406944159189592700865625804908212130461020437930492187127282960366804283185192529385465672955805055518858106520314841643359199781269905474419314476337405347889875634951869246963851957831035910400631682353635842436202281139934305535786817673598352054194711188821507868014031962638032919138788064684554051690455655554454403744609118525159512953167004349837927959013301508806355439901265268970929228209097229699634033745385755796056414991956162312414261629838010175345539305486881255860608936043173370634191982182633418458167285957515113441859770155408787654442671032320500549008128555499784744521709272308722667990235890579890480116194848397897953632721472296775246094638931534228514101181516919882197660205561981858781974102384084256974882580936312987117737546585185051774770014656016654171397734235102762915479225251332659913267610056210421747686142993870109627995191733589003851712474133397639041887807080471668095120212285561261062248335840312952329687453361508384788004903133979260810319187483033626485059268471705036285365554346859776387581062064711758332776434996075070930456972242163513381619039794239795978718079256685731029557122720728395677600930352920622470314767426127236604003801745178632025835637229175083224404377160039987106596282499602542796589246319890580636499433642808788475190434902534903960680072529861280187265585577710361643153999711870907130843449490107718112952914398217931450910688112187593817823298171868747209159777904665447724056282668589842668555632374992409055431346491732228631552803720362290514053869412757758143993509606665018821182868227994917308883651494223971491071203241531656872901814648168153039482530168182010861712925651664421724706875259886427917497128475102895529474496230547374264570750592204382130958663770456379477626088446181262315122905500131678066851608544567932265218064770777097129303577509218307332224968234154244804409043636915562002875706910974198790579047503431384400451024081257697223720252889976293117711748436093566087429739668706389818884367629913824486855657303729725812638429736108303989042648680406266252781897362200813265814212434194024757509361180845539608416227011294359761856728455695214386673955930349126311167654119386377045734666211784892627604341033554406071293331770739623920751489841057358531890577875449190459271100122243752612244173813715346226253393111408816108278577980981714737920390245159715127402267099560601011913755729899148999007090285213318956682785232399841852976063559254209022127533429967679547113886345684341576898825196300743134277990291451375959558147188377380438559849769979190463126217950693356795190913343102250758526751874174503449942782047111759511179587261744215633821055709338220225870317831523401968492192338417795528932192100274121401404215600624616080819876961878854584740931366887130268935432420605562184347246921190639521360940775353378026418159034214683772378716997542777273394670032931864295010431136109904717561186784044862338261174568524278103473441023234688330610746453094005497189855356222291835788128446127767032717433512930792765106162671070688267092395379835382143365493931205256871325861338742598983086031787763803705995134864062996874496512839251195950511496678723017019623059903195741356050404253287204925489249028515059841413646885138592714354340744157221571768855517742960228656154315734781244205116696362116154516625627996137235108513908906934453815544021114674483842971561144567064386758344196282050070021353157693885237274310466976045331021093486265426894230247634724465051258157684536923661927064423218077786348253378852193055611116814004033205927177797217829220765850849202665802302112593225199879827270679304545793758664953600485947690253665581199200973940215648546088904311570461223739675392573614511506369987595580910510801645803501208240723559048204084579200199337752575876826315529052157161215588714670533431720950050799938787400426610873412632058925133576922764825219184050869736850311951065172241898794639943071255017405906046713458371483959687261197406054200355775199342583464706183075545597592066222001491733903714505645025099815294988376583428525255092851263428828453043488550741433826885201933406747929866635625806573096141986577041121311471448554768595883651758209457505152561705027106917376409728223677204215790106979464573734252550557884223702802145930671245120007176256831458643100871687271473587472346875802935203762761633880172660940388478501070034760851326563398397531778672877759150724310559499451944005538978382821890123942504066900353179649657569981178516724251102487821794075371331526479598547026966569514901084568583852779363703310645354586354737092229209647631944500130842971743832590521281323883945133879926015074999823208819182631889581781444957097883184311098558878486312098579607861202943885712000084855658500960304389181911957419164382692651385584341957669232597370246240149522706599675545697539573996271259881811831810801445206374693355165788378394797963223156383319481902187970945020816939650506931083767852978966709024257617601399696479945919849456887738525174441085242339529517514650638893510056578009870648039946384069802822065006860980261768505992928907916119930477770640021378002080967813792212895512154192466203631816537122126862260084619947097833222336607650781798469178366344592299570441144854556875511836636286791141362409304623944437778134079215038072134366265155431150951047913608141470278933927246470393184194194285840645515788123903346391675181433308382348960325844304275456858234939429648798230532829268139962644113587188374227819501889028580258455128442570591633246388535697984203269329000507426440068564187909193761136949654578433222960236668221070464719893983836920086495474608225239972419202842471443315941666380737356209040361182364982787175526025571860917166845423840948093139792220644198886208482458880071101754175206207357820627276480667704445859660502639089036863047149308542657338166563250383019241952438300967205897864584316405731539774083891875824300544745222708640347450238516093719295804271305668904841244174441421004793501759864336706361337391188962368501905184493898061965952564672310714026677698363756805816384324268397514768509922317900345119168196338580103771607086142080381754798726402555184115422486126501745681884064942892803501182403300066567848584681525020972517047441266227650973076469443850481999484166258620977137132692718122479306047787361531855319007866382011271159005354395166139868797017444415026313924261991669575840688908981830923200076986437761393846202506846199735671676927133522172127457883376681187814319093964347711740003283536881508510254839449870219362895416928636359793739031522575210294629718320190646804401672551858655744718515021194284856975783502354971609077893106858803710501908020072462412532637771643728821083289018822389184368004054067169370766641129782461291426358383673705128364021427829901331599674074802006518376322937640278209168728199986646509859455678380315388431239560855075568022998049141115990232455943422234069280037193953434010127249093824807905601497323065561095660000254029284399917479471822864921774236470838822860543059540837279576509390349296183519014171069706009655547360429901938003091206643895241647134309584710468374004783011996593735448680333628306240673959791266024717215466257288269029659996204302844749910658616849266403056882007542527229542789927965593987303993608204341359862955941139379924620935676512464359187931638904409004802597981923152505285348279529721396203640709563652191010734402973170453698917626313667130088050706837871088880365445443833395237925511117929689776403426207390894306549753409701209600186374572552624102313921575454304980201451378409220970023843450766514067068853069703397717457498735832448114953058259836932963631706822657428024441356593177867858144154197599928616637956646778720257945723625233940331081583677623132600283123694515867560074541452965035483201698364331752742827758016998779263531805340420926585724547026076100866443994000259400020896907055558641279713422531150463158593859472789639795863006273871515865065926340966911797895955575222718142824332352411115468735360075662381931500882836781991066780789678379240563822169218716143854065295456861883942090072922107407220630459985395790040096285657124867847132256069952668602615687543110867508045987348965083224282525922806486477644299424480850033834889454449709498502362684714694989482443742435486374860151257322491112705870971591234667753989542153353801670876982967878994056399595739693929657690386137508072246523894991907488031137294704380852429402183962303032868455543901380368878260229131543757555843705105065918035355065994604963848318342158898485852079419332073332272219475188578754312807269397785368910529292679833665221103236530964306050444712493517194081904619033612471037722580781892204202827744598546644971269170858315338853307696520262593548128888822942292370017687241244518225678178496718096376944494195816729155649313245404657285269802099717995063119594539225156294501025652292752047048419096553399981577471383285042576529451251658962763787015215082435639039314367139233135900013397413946912007058067846959292793551661382900132473578476567784323166384923545558747659391019915763822631240654102203202912096043727713743166660691776274948461343825309538467067029981315001413223744112976474115040162645994170044281589386544834120531991867805005893217288991684176957257294807138831105204626948674038927834175606842810331113700420607625694291081756857747158895010860108657544332713905839759054968107474216491195947354539345569696157436421789854520203099960731733453247587740768201561731486804252981853207572318049345402513968639080301269897334456023799929218858904352781815935958911225566160600092532258397398820634173234310913900513187868787095677836128334895543248152138674863464682332892884786263654449358680395841036923651558597134415299211392717807852942162055022256250592221651003839307230254505966834541661477979869602691145167300586889497003071686073079139513678606700849525136401282576123682490696339012835640530302887528159043868102195228588933480664594740445090491075068990996179022216981057588968069637163078708768893397900381033194302916707005945316072477501918673392257181437072802826046164783768314943208322340660453672149446840094246526861694788700509716054862878726002507945481143504346475613369491154408204213361896303878108743437662150734439114942902497863498714273415537405217404830333916749346339080130083107064411444992163264794214989076658802548544017298467979265064219215455597796913284398388608443811754348364892340076813206407002357685850304476399451711311751140392748218607290341186696777051943893289804282482471041979348353478163722393518601262013562803609599636108939822653811176417467632294096794087363801232368970148838295687523415355653569375786435053229957941409351835237016780732828993062387274687339442113858513394603270583715967986091912612685749648298668071636608929739566922189647733537551917187307204425083702843376977944310122804755185594799301099090206907225388307490472136818172908445257088586008136762586245820682831139965164417864584497054622471620545703764326667424258766390663765089547182765625953527917699490648936521376618547046919096778749317815395879699935148341940610752085673153483441955299890655661541120863476878595730008843650751707975786938130074976774650006756337222780392489392238831626568142038417064069457570490820862769490667104725042983440978677224045526044073846356209237648484451336030883890556448160300507303949991831546788992366363594269489428995805312695633353293412130990349876154076893989730291386307853825739631902750630275139561004179569825228577223510922087237285838278913137041749592563522376165937394917348864488471495176550059077755951585790310855583795653412455738639955395483599468505610068066461351980936832560468838273590508018413575659163812139347733777805826546436619787633504772836263992943844630702007929136186347463526883180036068944773741207317626949715899533688147474450811166121962993867874883395220510515388157314325466441151515903239684578799398345917413915644329840546998337822399795433322277781041438219064023494050538252884577153685011651103615163168396915116500107047470418749990166169981976171680770488101485237484874366952148669227642426563708609911581713338759923803969001946711359433395775582284106521020065366644119910217710105107543827120472232531361163430126509276755953253466307944964085083622745130711989521993610703259648203042805660697164843972244978731793053127503725787522123877289043015435180549498612046467741665337666075181872305324684659298341099271641077239974602050877975317304738628342815498892697912267580722448465859030253825569861942731332778051282902223984853399394734420634848068143110694839629185444700847906987127900688816318926500140367280953320151746338287639751581360535736445369332630650496719054989692968003205496064909911518540671065181608694904818612062664874765337864307828680944903517648162477578293804894184279500931433740520826774458414394655574353417690165892430534572379769177572085515346935764399569856960234044952824192588852343392595464644197643666314261124729451818807160898855298893366204261783553457173613805977550565144690052326324450187913411812196804792276610042891940120597354124985901762668651611396202035550857908127308676956222228323088841076440186165820445266643657910867302364422785846489488066671121221178168990497108116333491869655042033863733622064176616702158795757479121525941665130994418211112773755655589731635723511085137425838042125068712922933533509361833988708442673067734077669487876026901328320088153924078796475608560926694694741170179674433526118790382207545278595395306365733134603818174416168620359943161241771464374147707208833446627012579905269615864513789978024538990957126313206190409063040075172262351469856579558738585783787861555519030169442409513896181659429113277940036110403438437514318755263650737548940853486035733194592905919333635392129916907681016706083550430654122727768264335387422871678838914762319546585337444172203985108980210149206811286552728979475845234754460240830906373751306830059723238483256548223780973421846799470048754728505004367255712318032809403506387715403655491930135411351848138895516097001812260032553706882610467994885712550274426962656000676263838722468594954957059231221377003029735100385375873983300371623477023220624250917709321582535451927308037092028394168382603796171577510827510425289663641005091320970109639650832056121111036530435627654480551217751139081531418693619294103143524670782896075686503383641345614151062798178913082480625960867451075735346024979280166464735862240517546793342206680696012920280778642951278773940471630340907137999434116567794184212757403888257045709201881377992838339528924724392567780149572871088947747531932982161250574654822615793643428741030533821286119701291558573057623850785350899163258046507485982401319707678103498923264051909132169344420251421244943795059973897414380061505603643694471168490443646996709631196207798319342237955399529022614321634771185668951281258105454553405545142477012820531508778099717642435834054123076144663842367258764457060791577817211640147699367237444104569162752504009916363907705536741550958853255378488585610857484952782238974004592964001180699416545359358385947561948938624597138142403360731518012093017233935465678109960884486047244007764412873462244081048385604926052177316715826809550454740529420800952320405252151246348354777700792754799882283198727539366997801203839604056458044299762377883529548003350981428248447638369580292774250085271775647764662462556740538171296964955958149028599648771950233279517661704168974132790650870028790908050643242983753463352697958301425728797626092466377301906147784157606875745662246178383896846082404792040274202155378988301581773340353702693619799567254278353121035732607920802105590422724908875786834962401699634057486094032378302871879019684861367546146756685523976449872791960894276389568209431800794248599984800883830836715902574814575129151129411505201603844427412394645683151142426598198237590873758821883103121393212033736767953081606891362304186309996381053314940614203414871852585753500391542709821478082611951645120258272072164085386664303305773081533958617502390533325073323037266272166779512248607393637115411267931959561714041915330687586151897774728714283152671607415932299621794352368665639035807143414280985994157899328804543999777842483486004266203820899832447570344799289639932771709090036171118782787694481362489432265032764456050255815737096864808997568384917614703160534698673571119340019119312333923040539239312009956280804759769401441367979546452908287984378221795086669134260415213114662662344291110511615982769837357957519237525897968861912418948878523790871206933235551139458529225644796349648095731272316492430108971102417633105817949010540695898516157836125919774534442239935543493980353091096661390275433303051093768598643528887805421776624083188128003122706656657708529214635507535306095968068469393848226074187729997789256405121466777387874811363629857464960434770994875748388952234208033067476154038351765432328163653927961626352841706034935779172001963509708013995151756342658345300609280769962979968719628151833941227709361353014281781833527550820662503613680061037171639172650266699164745674439110026739578204509684445860677157037429852195304380092677526233825421482174563861728651339861093030045060167503424145258403787600328553016987459829886242358204967969930153059233271284360457463425707254467509590946749334391480109644632552748779141546340096576134355000931272289984920410047727457637477838018390070885183266879080918073012644193633734277004606601892583127719954113246825189873090928959406803137820872575728086763427252317686452712085525114557771794883467881173860574088281894603524139723637865715167160572286062949790303012108762806002787245120141384187656180863092000019545174565801921593168935440983478554652112693894222583014925837709721189953309350696613672268930116392960221134233429300680036099939102338720143254323611655472731767189994613549994893451972202884947329677066147437191459675380008577306293133267915781947135966118405440003266489559065340022942566082817581588680023008659848362164220385962396945669593807491810498968099259087152514534538749117067187463132213816358485362761459170916216963527184762056256700222483037001010761437017071979153780351527172915322016098184675334304039371864907276775408947695367574190530167708309639885462563983706931577652414328186023575891838111448576553573175181890284630493848655198433260593694390705396595668352339148534153402103015584330102094882732514220487799794016459114446197934979065020749350896638237305894431026123036783942315349380022322545825433134359591773510204139035584295765214508648350699525589644010136492574765648515444252338487879429870348634303507325062130439258512726274245072981379429793196579418192669478072636389421690954858430063352499721379509975137788357581453922768995934013360643217154764545263123255046233668392093974830679951882147361909760778246407738938161140437793011713872258433720360499082718676861276863585698557027611274585850558656259503573474620687990537689311529108632922881229569411155947461465060424793413630819744857158597789880371800818591418504823054877116399203514348298255800371482718453437905077499951958593070057670863184202407048361220989801012614161737352781692577490871019406326785790579401960433525865875738769924228263213988412350892729358627499297951574564983857029832719435596996097957101595676939044957219614215812857801449083526777721484161375557555966447202005252343762188190312241783460059130865104559887823665930403300534929224100221756020823574316694284478014941823920193616754102314873485560831170504014400952046395565442601509594190650474164408822055234354581740873036326670203335345263178469491813741166660997201815815693786064968453210894743699204814472501952070852350092526485590967400189092747293609706405225919892146123113215452816697640964702440407328684429447211476348825128634499452298320376024067549806339743307924910699023399067222423024063818986510557941522351705785516270945149665358161665986840038150015638415643548669793633966666375403225421539848521524545955984052651492507305537137225915415696483827919653719943306661117820097822317745076098513054431103495894499319472670678847634347391521280396978563621242362824925745024237657287587950945732893520270029407403987823540629563545388163099202252284649339041258381944977445339671717906972912849347280467724112836093488898753774696327581130579911851948851068861483137330646502540653210696294694268423365919818633452447716190309568760146827765639915926764304707641574442120817959997505238289685537171204125193577797965649567735834042190187830084633034630109670988042426440955313937579227282808713637231427164822838949801675183835488307232735344852996952449329237058807142898952993405656454722527504521652941686160073166173163751673054403199973278429005651392137819089087899345014870131120742403874858891551746396099244658443676388750051661115899222121370175305506002281086146760390010797428365649050867481887319402389071823852200652309017928232419175666814117507621376204794880801999488424774210152241300113432852560459298420883269080567022414048130188475565660768360686840155966552496736906279628946704861649309118023038921865174327192694247566411468568167422566915568557127733725580396884028095903669584917965308045304475488836852937114926294080533435877273258838780904113840658239261329123241738068646558187639292373228125403599173382133701222998299344717970460952322749386428966547836067276243265451707073434393330320960928037513701496857001785047197007408337687273741966205246703315255447294364925123554814527709518092080313626987553484681789257684786997529319721516625733826414427042061109371542469333804733450715551734105291988822004156054801486607404688963865202318818366212510832570439315712760914529601378210486145421336084532404677459487014363453230757354292160727654834022051225704205321104792546435063066507334852972746654463079190537224021063350958604689982104229383920488085806235433503415992883875384826035178946915876458497208019233456269111465343563857430007892227631625095200554966322786253961679801912749882606975021504311571316894784580403112003757052239669410688755030808830657662752721444484412058286258884560679424898955014787803562914049064394853120137689449528448944671086257773914347735752074672819397119737310825955265971093474500620285295859464626574473521741457204296090959617518033666860179448513504041012176750316480053535099383028224907204519754474061985120145627834429855398540138431638455547838620998922986076412018257392689514927161818165020282128722636529474656741318976269805157421528307332242164668996252902407621713010311626217658359008676125957709890355502145607705099885726879859490000530077550901347722519284614422076031773427234337013573077511019945755382450038909047768358603313777340549923034966752225343474355701037266118447174299655312432148422626112088201352366097355210501107207461622201360947470267111247237915659806910031486442263604886273764772337050939869114715467168813459746325469155679523966748586168692291040556736233017236959743798324630402525526738016083880267225560738414043802664710326226889147137356098015462043154706499342891119271763972114232683566223038468501873514688065067202487084425700630232660467483554267894722272067210168436026793859025538943421741721508507945910416475126459296276189776645683354754485514015905588330144703491444086693527092703894807291388513911628835346262534443033510942325103707931266600777914909295565819491755409953126005784882929777769699344162439749868018388552438388598133618772157984629490659671186261780942621377431055505412262184261264314972501371800771789168371137631059801403258295538108558215727717239295588982367216761241148359541804988205026350972665377894029469537823264743594857716550190642362901692982112755945177574105431794965314898017680840480063832484895583319824464007418812690093763592932768974663244078366024682954604734746161976012459207585086116448122120885594154331154035039586978025769050482621957723469506507966215753112258624916745820508164865323511196244167072605211362429080105088903402916512795131567756602026747400097739499563331716506361396362214838146279338889836921370198686665990652547336228558510629141556752514447741566560325457658477607788979644654906966850002201978176575988567432788884616228397388618700894166056516822715624940212527570765193240490665045961508630000429041831895113169964869813366064860064716926074903672675434984528755542590843762737013085249013618116995960429609908467197876825067184678811478413952508460142067053153226002160673826444436645047979326481044931545830597118229932246353903668327668348575240799547206315074706083791323124182360280849340921160336888895978727565736061919973219622034725441418372820126046601804202394761675237120413157280023535225619205395712154472277520374143738286786986582456919231709411893237429537160509945390134024698636824142597322345532789276493300054085107840427374363388759145323079706958221422751817172166582113384916277818749560845480996370184084111807939582899953945311940824341793375933300676162114121610563591038333139802790370085537366938274931039774885688945171541583789201412514002626372559984539263099492412985950815836965903673743656126532060449575794612257499991258809320969868941830273322046235183998839885322317978805706142594782597165796829806192090410525259410734295546818341096335776958413648114343944029579834655239608785525859259983841509421188889453040136443083545940382446546377191187274429860958376215452537315586507563992035120223740256080393714763738620257658779091695222026105194766243496501519446711316750686266294245706773075872182955206360993284811156684070979816698068157420864770620938928588170519276659998810072977061446340900187301696912583218660100901773795075278787963552019477559993220331409750134014386808178808780977398072798853335015736827261918967886270071143640990872188205185843078563571518878340479925697035034886312689046579932027402207369838065776425605931461269648326604467447731178414820496853434201878872340621497551097015653897649501663511033989657324980143166475246746085416200592624949807783852541766118477473267492406231987236255595883771743081899064054310898403976792334843866899124027145788123671684705965259731383183596617504107884261339051952671979961333684577542482408236723275929354941030876295974243804347226571778063943996112167846312244997902521224808619695582826197353414951095503693318186238865625514782192116941700258398839648912252913958903704682542155200312447193214952288075000171122847991278007242186772074396408977086742056594511321076316729605094199198678705532180144421497309820992536517124751136965762802687077873294224126857321113814263272845613669754988238710978164364321012093484492784488242027064387395011742886349439538615358902890302306202387816743918084750255994829554826203883694905232145620213188247064096940572555590990533885789879399600827898514099961802311037361285813040180243314890788068391455739774845917628082628761532767822570240108487210144158852205170437074623516927611343804716324409049749049119363792567292702825720675916950068326547992331325450279306199299154185779366959964848227862408663855412123116732502513029999674940905043358858379554080375048345969128967786281927955608741003490411838211060583136180164180086799184496687161331338798340411654480914535333514896204274684178698530976919358539800843955332714068041200110283154741928914128441441898445525667765868632114422119587671723533723654612493984158766088731987035468364143012678686574406403392188391014895468010735894934682390680419405370279702552586541466972853014849285551369928821908437554670086285861650367490842046820281092993808203110645158895851128276911953875241905056131305149935961657599888178356060217270898760909787153459868325662610724395452691440956143002783889470375372645628558088531699412412387872782578803844668842815699046536692576333788976346420952868522607880731378786177321373829187754337083988730821725789645432522213547936657459850088913289633663378979736182396671355276035102437338808200027219198554031883955050121108636686365207734003859410522974644684491014131397549983230236135389896203111694499207333649674165252150693995018741948932684533510883026451365098305637608804944410808733769398344225746300022226687481995110656419020421989333639367870212595235493822956167453241709402709194436551653692327622435389736754082658380596530758695296894065737770807307596968995192100843777611191517212348941350219820391500225676322914013560884339720963148768577903406580435154535405020897545658964795406831513732103463180212177303784672953639806484446203450860593812713759215153875880137157345153835121030955957318554142422530361387986850793860413309289690617050196283326934788159590677562926708237707976370090980174156525064719828604652252160204353774715081112495924400654928659623988949845161802701929580427243280156914794822453620189478036769851750130041977995956032374819567312467965225433103590826696996347764210628199931720083853390755208475511450810681929596338645932890506036630793429810053721348762391634428486387863128703106737111210922393086889577698606372894094889028689848751750744639817669232632835569051682566146325567375232936689398077008627763790416880405100199288863522075787911750871901335293558972397190108447460967215341108373969042976529673560089974702583843789950736752208281798959190765886097312145797248169930182120005688564508820476132881278145393704440715363604726246120866167703322624716779121511929513804885054667981491167535827349097044640525261082114966472206568258243360807940300146681302455350131331143484122451857847852348010355761436480748097203867317633242998487099994177188526581474759155500275661612999125712941263952093476862304687353897295397664963114933270002902614689225129995243188255450106203185993652429676036625667686520297859914698908914048659533333302610978760112406562726188300303121933019015209082452736619254192904946258333105902652034166506215013356007870485431889451196880951552009140010793515128268256130479396940570378990124078482102622836734636559595293010842534099736425135828364129089916168407157631907172978163344871609329462302525726979264671227003176003317337967087673245942219074628102942801050893352216334573921747201932657601248558765696212545434772162927052794233634618840679077919540422292827813963394565990763080562488034963609746792318246499948521588388033955618751193623550438533582761368057470750379105425477422857392665986832801713127842644318358698692168887776223634514275215194467801818515421183715929958888934702247147636571797967920898197359241851306509439618508209960934624509499082844458110482419831963815898585794796461353919425786510567442628609988611093152281176862506579570457437269550651773291755182520507654811251852934120123506336994987981436510058847343101994293839599559571301731874724333414230434372140578085709274089475496788060258969532352474689802021579072315273109273776730202681302218819325391494568344284287727844693325354483000872451395263511419289784808033550549629645857114779350535210397069397185841031870149282096721734661325145743709739782338215132655352893081379567283437235813856505750032723227094012826127858924566364041512374004736766208769438946145971351848001428109742250651582116838883704648411587842011921806239846312159677427461300099528938036470842700241717009302612989719759692838741629102440527666131420466309133264499952687847407787938209907116614083687062115603110585854644676658654356068210828773846162532258062743495200193304045608177475138112968255627907581745917751390333679910809863695810594565150831802137898316882928616577189263990332646195537529391126432656560006164863773086345129863694687883070453944666152262758639759136655125229820340623147707088610767075625315968776764590779108629828519529632425984594858838594139719519631089418996757804068458349443855542841022718727603166909826607802239032196304684111871894575456789939730474042276355225997723613651290797058043025321952885696864877978170455845258946127538938430497433566537933765467850248518697032169117272627511923950216560135254913867994266813191547937709581773199094112597052822286484429403820233164136696453013605550770098325223823594252523444277632188579926294254099231103268233304994316993304752008785804686448605872353966708401003782191452271874726319078565895120521061611016526581086847927612276619919280942060236301797860610453720497037820596053455151655785327342656633726564480761747450811077801654633079598099273792218205479000718926339165420555315337325419463001500277664996005494820826156331655831348392339792742860530728933336050278194812565927121107240321011160869430047671303814383773902615700415051013712482218243861814758288276629345323319519957577177382510930341107242609636918302805390055151504145633932956826916775723263048980236009931302708714208281373937057759096124347867663878123033566661485027488123644300813083732451210624815665907008166540401601236764501400703567182187891525529104130711015675872493552712653448413055586317992823965628658771577897112324726494992760957457740171544914433260761566790535293654838856266319921918595197333958829297534533315658678648149611052752261157219988211788388140513839504636841964197265221737133533846020312265781303047102025725519326913293835870232646221447894368613998844101196058729735346057371995004401863197455336708376861422909918441818723102509532098881814328471280507252622124935617277992002562471763019805716916419273810767404294146142243112803264040821594302582842064765720842388640658312907070636028442056485651336829743642893738602379633143259781682011500949805529214639605404471358723933518761885177413991378460269868396342243506061438191838624638654558028100861778197468199959136046228268947436844899149781175124859851479250357537980588105421542912130803845423562817511964072094018415592354775532920952133411212875996831630826183208992730234247841447358362925056497480220064214761592694969666064954921710859245536736291958346553497123285301790582176659692744610118499260624608644371010660811571107318449557347336873657805071382781359672225220790579790223710181026771820632282022955520700145227616868692751635799492689949150773641535361824366159035549870526304122469933591893403983799313687409987485909853637386266755129304610271783120898983077381751067145845253864677011776764813570991332651635103657813978014872562174906592650086682700445959413079590070688189193162024575807282684601198717090186207876863561118590732476622444992554679742364431866487846937136931233332565103664826032788112476223624147261667743958679822126774880934630652139420134981401891179664130582209039436078907545995237655372546419061947498438385285849089558948810908414953023235506987086072290378862414261696740863576023282535184249270699078422401504530071003268511873771700818494556733337513784818902212877498537278539185127461784831594295687608100924326121775346089012941896357469598500943997443202281031227312055849240531823045069739369538568260099572840063297430037066586516813664135476380439855311554138663761849276945021703395766407224480649921851432988019206774909435734642112733324817405323820702622779046517225381795428299307659526871895518502404825171831112252867834754585590779761920204604373136306698735231965068106712099546826546234457905505479194578162595921805052699009505506281321414261255182572748726507764969972972742536814266159972945790814323140560742437732387438931775904679683605854485497254168261482668303464133742076128908883865258454840611541706116129689280496076256183832947920846587866369233335486116922747745400811593698474179695774234458842096632095434214546090795773449392603898955367218536727021961641699899276212046246686874211643387324696184473390212710445290093968203469539326022396114049939717527707597294385462297191977161041112778320727493532206004152384741278351910106723074068966549909587657978123242961824587742968779606454853049179193940685854348912534373087808064279746766995308119988778625259334568799819803055231022914935403334173233035764115764166262686919780223975939234881502018051563660491332065861536399156341631139058660164883022176090952588244866715735329828806778975741939758493500373563036775206658069170411869058529358191572733155681999475047520999591348803866435291557986594659508359856413386466628140165253475164869660304659143648940377912758892586792946967936810215073606533355995913401340349197087432219628953134666065309204096681235490387307815501935484723391363668177665609405259959421424831731395438161156931801005325387581859357361689159042041204242414089917120173024909291367334005521423283036457351348023029227899564295220946245797806283065196939825530496780365074560049733311408659990862476848398336132386903305354026084601796583326861897745467737287283698506674988310119456308364901700683488262793503561659392882242424676505768405086761606136261494359729870623138991476983595616965993214966976252712919676066810823599063632518754891625407027985288955149628426307954797067133872328533293071661633065256145756016976757262297210752028949630164190695175792048805942129245959810911110333779127819047996830219417079143938660653728993071744486232100442768268844273923475807881083506264317403098074945480452775902354314938995404588058778800231987893647825193977280429424380947674215568694862593811870366602853098784233173027402996908633745222306263656226281443919604227526187193733113817643033441561212790771683897476391890647976620437007609063935705324682127291844823535089187324225611411512414646995114538947658204675339298929612776420396810059289956491886683773866532938617912861273269809787538756082410936509110340682621490769090980177028673048387083636189241382911536879040639016465902895214749638163412206800724220469157509488639483170441130994626174984905919905757841606870695890899348115659649615417632114913186529693463272517350378660814394564641343367768356587155589409981037288443857893063725886790158565186111393839698354365352649057440930368354200998615877357028694996277187014823370545475792875211145831634681475603234748672869176931158506576617078463563826551232381383106710740142574911826749432271810710870562004929214388524029895604867265595820652613126403607948388524841802191145233899428347545458125318715946837713698291712886955458393446500281521288079780928581049669556624257357475954859345756823908613566309984453848504172216295533711322468115670748009612507922053912359539193281447604169222181606237109404142476873556795321772556075477525632092307950213143935936504974816592106119079617578590400585424902131713471097687845917779646806638234859276684427608802088463320419692760792740193256004605366466820078959668338684671408754368601319505918406098913651501552677061306273701350192537126150661644676818816152767074452214103933045029850566793112145525874639594806394907888674129266194336129112753609060022168812568853907016490088546231763856291871506587556964430985434291039235130589266527326440548157212711834112803183603714785056896942505014927270336850226675028330891618600304366093552169356844111609656611766558951645316436249523197632762021610558941261261304345879257667366723001780971481780441918391619695770861348185770782480427245872312856710802250471146509235051130849379459385528595265530625600820865067824354579763217100691978412872387825283703771406202164306286096733331461926228686638094588307425791951494720748990249187159683679925377358579259402330630076587712385580302975445242188029457308584651826317106872215685987980640603254922686250036926420584021561790107764644324924491457601427024185049341964504445799655988778184783393249023765454953699062497193297805850041707994513798123754886692481350949070732306902765792239976395611539044688235421793023261296004965911054615243737816295941700063255636678661809672673025980391857137211306868702509182231670761605472052036758436396090663093612839521680171914193663776479256692604233130087412070613398882252468179966506133468904681431996735389060365510408645462589312612848136437755555417849781547564431554240633907084635444926505931689927797265964541855572571640850333700103337289040987328864611326337255078437225640593388653117607216886195846536210876602919459568959441484108694357684307834489615827613417414049036347404628624475434190946066919377140937327138491547487551033386204559083684067685605593161355572592351324328266736883206835457882276351568850162943247816336413673499140748362191661597600743651758715399571348011457648652319967716727885986954857142840916806223278628729757301824816719699066745359052989459870610777004195810108163024433673053597734784274363818416517115874011325978875284872869109100390896719905954501932164402626946630454400602385978500965590753099656399681233813608672594049107821248082176216036751426938477525071741911258061187979885981615653151668442027255814641158843624052879080771416009687774179806619563391744330551690097991885022566333736175310881194406044766423171799122681907967244059055044939752075660899358018084236125476104590917492475283119862907931190960354893687057295602138602483739603582861717374337917353173464401725454606576600489185280541167182267882527296783747720995651767425912684286869454447082803582360941973196273487329658609778510669367516901229135390711476128438495907865964453657695330119411096104287057558023770051209752994930089685129277665751173491726371912914058984127794765528928975189076831443604467988992293668604569468046760399454300485159892557461303179566420244169992645335118602519569955270916194871285807767036960385677755887362714957807601189760951575641858003260850699432916978947197984461751773586272389350067836466563907237944090969215810305792100918499802955324246599886107306333146216405762033297585386038701306083799109730563208996333663915985181150725357451413250125059963437963071670150895506086431354344375348502557245248081607177980905661368161609725375896654518851917453648461447941275685073939123992209734472706427338654743485447073744802943240775056043784191748053561340219576481014377011920137160627678917593192750157653419247108642521588846135456874509696508755840418044860538731224627839074967981084341675203033899917379164265047869828530738330825780453474283946263363074729024230441859175565280040796620978552182552769528136704590697194103420569133247287655458277623371625958026912757958240726498923273683400075969005704300995310008823949223158335361081170044669055426223589282153216815278833992142667306332489891493301538739288190964095217440863234837716984686253520820525730892120633580309213368947340352989077158644300383013384143589192911776152982021209467070979313407674411402736277699645268781139624658089851574988242615759568670207476757421951727146155465807550285748441777787691855156348693246381540852518226254412759450612359595808421709163325584445334000153069488187627427788131903867086070304167219340891670577851236629935549575101488461389757004291222924276088063083749640171132758811642563549985513578204263585463040045389814529126644767538656323357273247253006991129577555477145694947007861358944819652585123241909757664382482628325483747221380432368725443664334017280617634452042475424808850847838683524908263322427657954335196583205736609086383298074281523098552167066712644984391836704471719541455495470886976264788752258071082952339963195039281013548443650445904276061245404636907560257378679037487186911254923187833924568523870887535090522044640411364631984655313104338359689766295174075716651315875846855876437731739858213500367853959597681031847189788025211973112995179601451643525161745383850621583288450453546088497629872493880175371288428370174316960177181999646558162479377025006463621283365109050513882458338302049439934174820645105896841601403578374853040373876316337913410779416146437136200271636887539278564348542996686666704958039605031937466172670553220795542759554255064644069294789842450924172679676026521923936956442597329641638866244109208673917577055175956717254601600979375812971209960520683804996014054101107091800184076409569362853412126693905399371384650713630824534083242342145266389881800643320477355268703391640479663865847750393991741398265005394669462995835509017721856356119532114954353907860071452318967986446146555676337622849946529963212642397462059749816308345725492193231278378116466441904610095972613878239056700304778303119123148239910709114871444740140166417017324839710612191564214993135432235349523347863572979697364338820447496474540475001299879226026769944620775789344294992032061097741453815544155977661558700628009806517367128356007716847453285373106315456903682440575807594777805963216205885030120360089662318149410472358719502377260786188869060883128755075331083947323059472181625211225192491521770874293845949476004993759042316636641270394637577614081922810779420023511203867728714650073955413365178497347992996098969274654286558129176254975467479346545546568062931322903567906876662499667877694251072848233443942305946324444419064642774593609435799117773485324291692460064846004450629564138435045553413542855414423406062787202064585114078272161220754844719145651246880704218791385425348412179833678768676753174399900459263437251224610142893141250304002121684337499343596791651870927784836135237699594418694204482757231556732116943482496634498384697539091134150728104283850637651735561914828174761046536918862358360159797955866769032159199634524128878237537962345353461422669583620645230166221548662892251536438931018291638090211982407727814539475936528702089542867127299419888259495014434491384885174474039855163061935780405184901841339994554590862850801025682500795093875752811675811463970079330493093504516408218619234200520795935966298309738199057322897643780850000946058806214283279481244500396595027609007611691075965426268392663644349145165852016924471096539515442408549012714557770013084626516759724392170457519969631297640306105259178699524106119067054491785668827411706745207568920685930023494473870823393559267039055355697426005491576023942925675864065779239216667603835309966826983139655050761767886835492847724272511144232002459346417602813546310321528051898953979724851281644235730908317196374026432602113520413312437658622989203103361069804527743000371972236392533958220611643589170744553351292609665031822681979187124200338711588990612574896619794489724087030677890353811341961842839394410226996260009867394341997299637907116192140961728781579990038383221345453607966351324625038092032216415716664299481801831876022622923913794385877556794812736716584770951603282217848688343716850680552903591811987630833313891127615034660446781853014316888792337359523016713598368785472195090030285464397745874895113271386996831610403896966504682812211179524997523086102604531221558740005543741267852016128708874718266553456346125876219522689755208884425351066257815363102750048757301679957215836803558315515522364461931463653172030401274492768611108068290038437432013565240934081422181216258766434200195374504086977671312181870245150056096943032153188449306114368571760200477708849435214930162440609626255663054482539580353406883995294122798886751475740764946790071652075137587404810926845343266424977450024889525339254933988405028199708922237260691749709579168653662451085575148666742607917538355446516484797131633405608580790170310707225429471622805685458642482025029967453241678492017869482200537158801636074943417727666194567064519371142923143104931755892416563637911069315062538864486064895546675384128851228124048895175836800203058139822541059658087910862002022008896683278966196539457635889450616156978862887363946044803557503299442881083454753070321889741330325663228457077005190355039384075439920839613090243929622839954406162737364686779962304791598573635920987003517842317148230922233876121746571656350768490491766362283142983878084854159548387083192726465300940232118518338635671228575064408435730864123929475458954951106570349327886716763819711284581230326881907888765424660442911322580312677733732526656626144386807438772412685174174418426134525559820612421091702716280262883831365244683544071067756373424046367121600868387202427950572343608748880835752793281985636490961456266403207001376664009139865420345052535933855522305585491710178692483203991175170846120037917147850963148082036895560319853135946268123134687207241091905251848668146579559290420117349178957909987897437600070483727622881943023637930365308342006951231986270832862021670792686436280408310013474627681110967143947822382515144895217266620598343235452660219932805199740178188657275988100969036595373589202218533858137100012602196559487589738501211182494407513127188956139218615594498547391620862644874554832729437473507981294359196998560980703513034827005327811204320695857167449538669885004451624114218681441176980108083867725331997265383937705803773475969215085537340064811198900945253181730565445617407534833083103832760660856889124824421210516696744857336408593640891049573842730054970070972449782502183800185730731741634867886312239641763266271905757751865109847673168060274408693981478634620567665975123193586464497175738366782099405721817155470858366494597078904444807361987099921748309752084624117686641269370892709571227881460162549977040432433667890891357764172777123476581776035210835814572709886683967400532888831042621519099407239376208798087694563728262467868832953648484845124513714009802102463167634738822069512919607139973582404415896636704034071831109057063614027969696894590446578946393164800477271990704477931984738982285668109363839100906096043686751425104647410015811007510826233124625483518310719177359421992670574305772727422796365262281458732932558294626400637636222941244897053541629907716966977106920004658553580222697536654384279007101912025709686616684345049728972594891399400739474338963562878521817817975680841516562337548270455398228767378151210525865287992029900922812668296480367460281859339149953619689054886885127298305836231842977705576101872647924291912609936558491553085817647133054117274324851543829049353208348823974219519329013307339714233086495264296219865588990847352607530487206828082648479224544079443699314312851831709165065370632941740018154056364259932920530428131702327985665857979506042461589604555367128313850881384247782550853566116026925970849783305161435295569023752616175332929982841800065321550456555038319103812022316529578681450629658668923812620391027557844941663134738229649481482280211963205531840577114776217279515829576670937779505144590819466738017745220412199969889089881064921732639927241574555641153144460864004057794344625454269740381755049005364206000125418730498277455525956211418232106363396330728958464945388569095264965975002265350217881991428650414614379917065284230913697725053924234833812792115386854416647784095175236656150378211647478137741443803507666260910276694145473972470832864678552472300245796123501139753310452011454632809418144198158149028207624167110859611377516198277959234163861328285257299412625396644097292939069184323053405939643482825803198773888085179035352922333751185516522601603339297472999159787052045977354954717188489175862836511727973461280535947422505287084332784582895947041279737427311962895391893491062470252635250411687690490070944458600409543223045295466492778337245551558160022985159093452702178649091998718370668610487528155688780529196665894693893981738580824871654345246483301302327652698396278460657274636595045935875796272659420045464983649180112282191495571174540550339656885610479017770597845896323113906003006390268120862701158887906573643646544848817507488585104868601222939116386310907327964554537840420816171390715267333322202212849196490100503150760125282576149925639380137454322009144242997146236754979696511862319665461011449936464871658000711908829048960699605068287248948958480866795554838326156295751800854712741092148813100609497017770614273962150908764605628304075044774891520502626068188042628123142550306048323919206583163628564850807458149605653477430826282355709352681570652641934666557362417489310383799415429521447296389101704482724992845663162974635895578293886360698458900491828545768641234055662018370634608641885319837259614956108005656222240710414809988734533723264469952331811080572217704468942571897477448812319057462607838276650895245000239045401909874877680887036171553707642199454034769899166112483821982603606745002900952765504885786937425092401859471692158835807069764929196023526932087069815062650022249548615675870766370762546799036169355360935007017389691595411670673347985261173550166659765949202725970004142747622720589448074647502823168933568826354973330022340629150441261855756302850600552090742343674958290584847499904069124725962589561319821980022709859932361040455238012643480260994958358046248551709926439268988376442480030525148874547733312088631164699083328906932041456082893565597365340714610858180988056214458905231695868509798449745308172880077778121730296925229593204825309105089371865214874279310259155345241391802771371047782965137996502169606429108706454519016715388515800521130324659346891224608821853813830664105714131120265881939760059263559851535365965077024353596775352678948142177533369589653429485955672397239502564917287056273739111265099574690345694788549149684118656548676636389802405183695444982733697986079480521657134231337464659831855165531783148236693654114198202422564180090120516655276296306827169785295113556750072760050521568245345763583499204315197964830620742539214111510691432276118303485974073647740846012391435423176231040834150438165052357955320888895770013642503590052463695259533011347083048078435540033469436875065564314837175908856878423686836823031758242239565530427696546420303762137317892060446194909243707275286144271596592431916434779546136530672063905403025968339040977020965839628196465178525226756025438803683395168509166223554488536351939003864675167142388479620599042031956873688433625492186562366942950914757430590643058893077843704171375019091010733174137240048623441683629608672500387123505081625081477829450795658976198320941722762151501098388537203615337711909716568757491069129745982818359219268063917555480957392420132530794828861446712704580719644151175460757609444746565842510789749594593965831344129908864960563098754414036671962933318287469735423011267568962780180990754183099911362604571594020764940490412465063497990672978558683824852370596279326941864859580693582330594869848075025615498927642537060011912892027433879881672725111618875041597884135153441063948488017225471448171810952587168080475664646286613424601871437982236201302853669805930564917953983717929830610735972111839208990384983421772342495166298932428348989675398962845476130126452039213744555446738974177301934834053768977314384807778221423787591711486726994625090079856592651806161440325093327285103259952647152089577203686298224917369626142136223285981347181430488838485454712766846667566687471677967330055411291688386134219437435260124541155959120482234340606347034158616159546334768937899047612725893404267150751418145772060206570748858717838986081370670382211294526895213007968773665368109575980493744988166317233035112838142394273307782736662005673301758165493124064893919829377419485668829584790592408628159505053415987287708728809815092155758380130244047130584166389922634666661741117657726549926894797093850049459982292765173550605060390380951463989139752738316155821204764208941127070915797521721152429786154283912802994955279123777586517596314797451884193005721265717397998302159394664143045893752546741448522351572200920568336832684246652864114260470186604226093376100305546547366126645871400775047536566853595672370677444808209554882965787388035159680381016684973575539133234957841129775453995854336208688558788883986856701130437050836195211279538753758527982033024604555069559495280628738062475450954529955681292660782297861694234301269138111427623254653453357050468000424057257687691846275578884124299447918263396925837243523938219717543773553961541839170709638245004341231072298255250331703593421515167549145990697723737384717917112551906267514174117577767901685826192325413005746693720104086378241392340489383267765242898540881481875831290550663659473977119437836551773763528462222235222668880987405819746950744533289036830122924071940195437691255840659836789489434958613190830804993437012946706313501997108604204075269219157783445141647451136508404961270761477912114981324983786130973672189475534883359964602431628240969363298494003097826527264860275785638705067088883751468664981751312248048201265321689699401076585422822581659813125093602349767389854365467732059216331028184886711866669752780936096002241789709907753761533180111625497202120698438685407119512903605450422033389599602075174551567504992790529936979099444952907599046956392060675662718150135643376965724300455075335146579269131606788167759565769494665537035874980684631682155391127658258091720486457301769513910394475308468950860374248855548651409525418812089805420096984242202447450523233347043563562317501790894817235541937408113766322374261735272421611107281450666515233805529055364807181781239664544967534925942984798005106403673018780847601667882287873884013275435832692830082929590535873839503583720927904549093270506416504007996412588974853695378467901323023697590302977504353854434911390408281028456433846908622589387531751439602994320982167461765281289326109668732587074913965498757910760550401041091220912796023656888999265874591422735388445450956325794899804600379104528181745227889917505404251537885553966673071442174176580356171540750062400697585790547093243368057924945939317373968476997358912881504456388922162633591204358488446707595334582562395375737021940602264694385121091404013472328825616717441233187410484613862254659253193199955707309714075452175590326244293005644940408419659532318608399975083511496384653667165981555412965054554675884062692922977223134043216528322747998072303642231341959904962555165524521766775838103636290220968023935335158012498711747686695208009529871606680489862645247768783882049208529329338334212253504899140914607615306805272727934882748225707494136741536773007586710382134480283397667624454158575576730089688663510583124017892320695642531924642519105047921793384394161084987883795864838749691084378856325594096922645393917871019480486789396893030663077311175929938425665100736711972378316507525694072298279298390985304505779730481703583449668401339385093784833208556329682754874326483425044810970063749316946960809184364057666499903669565418659592717039794644297250139896373910431080575201237881355331241610155496404110801787692035676871378308998337783769882027384139738959104673453099234734740227247413931881781636574373485176082201155911455415137532967740124368271760949623867048356960386731153800796433734064061987257433487241790648251725106054189474490253821389236783985441065293491946156849277031824311761160655215300131794986840384721207380809559967690291062422085637867571253419161843780294226172076453246887219784869091539686681340686367216963103508111830969149031794802077084969508693059428407035487787168183118861220917571935730376160200988551268347485344539278018413934416744085713979844925121118206032883928759338802979296175917142899186569424319873473416489546887850091870419914647055722921537945499154687717114850790703619896114721119965670496016888636096585810666495314741740557009571802265367319762159102842367099193207252338360241107424390477315142125412193221867692305740127167595565261679291284831564080696315857764966734589681359950837358002800090392790360414051322364999726817862949734801909600831761575966137520603473543591847801389644182381150853865120966797160224862305254827937010360811096812114522461826870535315694422623247762838103120838692639510193845568034438849459794429800870365809186943356353229170897718273290136529525141987757102513737238149256848321944212404798080522290126518083587569319123177134718537554703484680481758872918343763643275097816957811124857470642078899063694909796120515850970642140254437084585956118410068259277838008466540211947772630106132855776895910836191659030276523094731171968600316730240847623729504932713115481520866231405822637090274174627147190045143817763413776747019657691370191351668080673738508053351793507393393126076715504452001469876500641735678858120778313581682556266074735395772161070196846688181392771635063705382944871756230645394480011673614040189576486990945376742043628500017019728153885274735051578733462584275511924510210605189660042734873909845754016689167751445117788296230413260877716207564278749068506825276842069897832145361534817550304096606533207560975562058996883248839675930271942289756099317936994376367951533196234923372302826240668212973402692782600762860806003009758786029857492941893747653399401882572381811522856825020015289418956641517737564398682411375938848219539718140215807245044013800901654978627326394658156506153317805683662705635436048477920300657255969487971748840542770274014301575693733735525986150555069131959403845418896663145941161069298048641110868687957394897396256960018879895567549178870879734635798157785469040761526211316680454146597225945867329637989275835167255864831251000128781691896212566135841885662824574236536056688482023802467166816746588009382217965804929023044440319489964041380232564136133428422652744792026505356393546069329554590949682259410533123821468470090340752268884463871582935853034197652978736131025357659969342557309705388072012602435433661509804322320197790167885825918918141223211474629268226723408194383580400727559501207920785532847784602728590168141163746124315015637392612022577789658492095467055922102319897924670448154394716447944116409576138067091279615334625319963168595411366798823573545971440619808245455628062281424106815809980911331760220939888486231621634858127406763026602759543315682056738163843207890427915019571133324249654395951603340358173835948092540093638672922224768778263424938656548626182925097332407810357684912562296810807659509433076249213665962459556266492577723663530417520271133414376915812706676011136640371131610087790240832388132296115557454812403066826400169292421932614352830072048530529957304526325168944257824395807300043604553983223411379011761387557930317239810047902155916780171888078596238694877314340673784666950954033560209044486601799953689548041459676851400809364833752370681020343483628498370225860383262436636430349968087188605935994428608536107711624952380362635051658874618168283018313314697124476245470597650780972008743423501218414231042294956365212022778415700526299511996296210314125096303350462357352361962657215290026744100576867142572267055493268363755704603968966804532293615346229999731280987112298630961135424246963262779112584558635119969346757744076333774393871966906047950595216974738054598516699994607357133024119619923326753739512063333746246864715810384706230351956814554657772333811855760762417812725825341895930944885400637275029241186189689487578827436909236405268268018204408910689310119059106305530317100249268617559423222727269340369836798774544653496166639338476061463869491131686686730731547577887623902998557294667613252576331264298677625610924995822276021727876641053393447489373932146043322894901912453720983230520897472889279483919472552041674647196801490481982484008331991187027568667668843688238792321097421241079354184667913654705267993848031607167556784621271420509355059792474144258362691703868154238630905749208196754702143004492183068477198509843451399222315431453744005297582926730252007738587487255671348676846650010308376544705214162580425489115466618959736588773527962191472071148188362511960857303015253158548115512658408266767715576247675146727706610352540780799355299173231470682531337113676080377952939975205754246523711914101783998121294266812428030584830637966997338285910558875357168614285299000814339975352219481560314141087798426478075272829324777179573277001630091717166819768748014532452274429980477117506276147777162256722190179268130293014656757939881323222932789097865013652574119752983193034791775167455891618537350995648760216735256176828817218652933443493661412724554867680248050401688245096907600761250257699153890714226201216833154802383213966832932757576832035239580972561674847213043350528010784502362112855231560205744301510698046016069824822094192718872450038668224971692451482918360074792626059042138701943515131329335163855087576376221250115307606000137803070643490708387053164650887546144543226021023580165046174365832711385050799683336141981483683168314641579404882976903007474680086717053243402845184964329820048300089384933376418975192505971654875630504187773590425636524138624639619063366928007406998904821231732754768745179309771949031326898778522406541671366620948717695529170885197336100117898928409959314663470908249750339956440120464350888940146452826768768613905532156497433691846940122130781568855734657359390679082829164527020011411397464513717639226097495803321912257089932862756561568099218287137921706981241526901999006464171301975432915276731106940189683103560723941077142880019656845493094634381690701917658684515186183535030803902461162070445437261085240004249248352415408845955815202645453364522260867387041904873567851421628923148571368124384094905545465849893419554835454173638951327549729855255677002685775602965840980897823099349091750175760223006451898064969636270260967722701318903786916212855708513275353365013709018739547860183749739671393821803908286619916449937907253145913289617913859363897053954898666077256455542914300240525525118388483584836386329967089172860093620401109542063027702492564381724107835860495664560500247409063694475274592402742001828770542000307779277793082648358263235463036028268658961131830002427808422400745990281637531874360212307969251997990253156341569606219247082626964541957063325445290842732886370892624321390751827531820989167495836405210427265117519999236753094160325890674784405838423880098068810781005030878815554643883180247735108296532715094365463788270939474734409186113929866868933176792822621700618836973758654330024000492611857990108836239505753100072498083157502018396289515286285778187279709943511422777283665868161558404696131111387412233213545267835590163391055388228889551613372388193729333514469179697166795267976226207434438157367508650054669191884010817514417024956328477704555634375913215161537859140341851000006892275347784286079160017293394981592645162108315660641768097063900025023101229768550143751575240289407741366116024472477802954954848400517327129390033898028520537983936637301725206523631970602008974458570987760153765317351831488310824374795288126410265164069419913470921832541406493987129432624008813989380520821368513707016822108356648485109771646437388688726454891350536524537551150990986879794982346941137207124464434361545197344692961492018279495244340352710894779790548177209326309178373348429911415117492286229137283191483447967370425012577610783662846523379797562072825650130300518800340550421862134001985345794689755742893081346860022170347371142373966463356810084324364086402961514635173545201977523316466236775006625572410401524957574898763225820351526915766973179565655465470097857830837245015526862024701504645682007085497590726911106027644916500647607214549716681674861197727152600368791710519003225935310908374984652768391130040739769699439330182815667450589121622325222307931709960465596161026355753244545993386620656225277856769064253393266719935715206446019959389974948710866333506296282819143037089629754859220976734860325789273587645708876844537110738031846422198105031591385130035702747163619797696172825062005011309668294142458971631308645467161694075300908697623168415852041886968293034661477122933627128120539926868446842663949036578255845763661393006691729948979524061694948664665362029187101159733905418126927006893753722771254178791812184311144264146061117640879469607997233579819827289700702182892121968440047977929855242175493510467907605527047095306828967499638473288412124581031849196348213789960809840480145294243153478493901322028298261134252612580141337937344560743244085164507331459260171848603308440222084542837426246412702628304821753720001994671975182860907017524425878821211942793199845317726802825025385841910512486125967737221743702302446174299511416804213936672579011379029792094680746430034593222762476796726269604130474389137578908357010970960410872553665177454439448730714805113162977085280387430275256429134496514448351782109267424142036744015332248261051018896474050214445970717136924629067229662969137054341309168320523756174869356940249595454493177704957474238526514179976313703155711707577336781840690210205607767442289287987690773970335102338461521392565637396369068939258696978346809943026817706042663644853830909035853561148371045633669375476867387156133901395959468474963544793033070598428803889531324106612184463047069910879504084353300677844582165902522115980501452484069419727890817075916822791266729862103567159064804430631254066247450348262123570238680300065056669253739171442951712118558563826176621899279130420910917505243645815404440255594429444870884292050900213126638926192466649953252554677370232910381924225175601417149617291469554867088724861736698739987303765392440402506603015052228196807290194159589231523217698253540360080198795697062482480809454444276758375786114654475343888812816325126325747982422426721784599620356725096724369902919220848551342293724862960877668632398525671122691808442214018053120160617296316419551618277674388816005886807391104052004945950209284043050684851070873878491867584334239121832848504472301258045609184170963265650738069530750678146937037956674506176119240690990177937643001992405943745361759356585744731863163001840307126012982934597991008288343074935662281258860066056714981216606992520350022560819479575939280222271559195503736887026004057704433686740891986912692096585057543919745489185062945419837995735005551813182246103309024591472202452312776541811362005070265354544286828734245952317801946401372727052388682211298782133139116655029547411528927022402758416441080226770271291874363000862265641856196440515977990027239581139384727055547252704617625907253100541733186333711808961972957184759396680704023132954729961299676894894048373101835717020844484004373356500062313518360249879013824856211060287488783491395836588717267742685011561425059740793147379627503948881266406819940731852650763589234981632049908635797097988224839598329274765027659396677162053780522864900916093158963582852989392319084096622901394389930776019992128124583670149922214612861588688828295097125386333265939826977301691967041093349130608795217152814110784269254511114665191877818410028973077334104405968218495940289536782871892419977030425275222340542146176531632748387718156227755907824517514943650619255848517199336231512592572189952246705988098510429342776163026726324993540752569899060865759223866998547590433847616379479856928927753837105433647533029322204641851262643678963364953614984156426939405469844301123311576767557262631283477085467611898246842745387888107019161934909945303381073322134083154838921137631007427160824988037282660749225184689124476434129292260712648689736614632304988827705673633682413554840571781797604976745756489373398658782550797770187036985702241491504303104057079797884366187058887085197478960377861611404233166487996000716587853747493135832013174917008281006992317583210198863546859387313620780307954802018678489001219224208211719935867655794630395013136580576653787306878114977632794992057521475798155568646227880287472682441718854390173984837917464884879038874243317406974137337181821083339424456634464099860527464265933641687142302499065687896346209511596048927041992962829324650765586001438751136203693569004330611695336738122753666876147509885058272126457137808294391907333256033555943629272932900836097862674599569040701764680827778660438527147886568739969027762520254842291003727891824859906067380409939515067218104233830655629374335806249981916475285614924632103860788973007794321397473465255547555846350807993742946038760591527977502754032624988186256568269563187221857990229814242576242949986984568836484506023763661573988433392273350422127343773881076092435545485941889815967892763509306847187067794219721129852326700312849407878029972854730444385980144337661989526921104013902845095724487305882590416837699719304322516662852947002566559937477079168058407941591412310758518125934811308997892224916014664106713420972131227244129381865577460688283949635597143003789302736646702018929092876455480202677773230453985589866674159496403709658476378239530463049842552115209785073399846630270715408042769438358332380259426811345925659362001672953203094080791232885618829108051753706017244208988875197016171266355095156605126714703897980776145633643704494213138820308441558004293355272571389008226333622509326491916100241317261452007110191927769205957366657084382323299493036605620061306450508201494140271340863179061143864347176825160587610233806195046612685008906544719890074243059781250055486060199231897554881819818195836206650624629690625164427475397623981248071727207040398719477217582971484239711644582425551155139918035791838676885031725664417238082586494563534512850191319830859683768701563800414547112257673695575507722118953942379072929353260717275760927172586914598660801910096627146287394949488237437759392594572705728143767848016646974650426900576297579291051031372659876333922167564286493795067680914194912513652242744568062024428010246814605721177184187850638244744035813552682714019508012558402916316824668238297270635178594312509367557569278571201840072379515532449636740190765466115604753564795591409233454161485865137048439071350023284955967458716856582384835395046371404780011024407098558134789953748486346564120640345915815489951244261692208096214681666956662096360362491527059380318113919665103278889013735904667294662681133547382731763028920124785966772880816389818063924643135382626450081650862961995287608052542626063031481217061441470090952507883159404514204345565916926031146590109401677535132000732905155907043278929439472955817637145109756333401123649939220561071768047376135682249110933543629817587839842440076365154370400534187842304312414221199976521404086577044436403338310753871114674295144850126519843314876027578125811111538160056052754860179607165948433763143265366796183894399126609646925015300011232912122226457050375596280438412959305640950723405420602877238106866242425796567392114107867866456296801363816958067023660562903134195431949403200565373115011185351725363978156757260062133636479296902784137860974879994062591572455138069528450002370641194362043160060205922458582741677845128472545571367176256776836305365983260533983424084262263139355888232970301154408956609188761960549615178813820048275147177471010460485884259192337390485799143483733373312484495955191718746290424951978514726275985951784057678173005622993339829062035256998904055289629054781874974811231536687852114262423482761367186475166500586373378442343657039256386846148885441809450324710321890918383011885610840454404662118852559923258443001319556442436297545724867918111213064105154656621873697697963093954873582536629832827912852142646831696160781163663225915635255275521575047044841689420073622331440856835880092311312420252081172494448702423040159783609096655299385159373838312744197863293799698253476538092105399983944437321067437035986037570163893924004562535061588084341116336377703723628393878035662890183512369626047648308468321285204676483563857473406117552844498707768570027508352828676544119256688490200460790825275494724130558688271887672248870786849188364413683969452433207756182302008325195947117589226574190654952009511632452631056880723614160813759489245834936372234429303457363962760226027657361408826243429586143903469424581785642942458014844728972513954100078259036801920553939394755896040140172408898479244558744958349272041999074686338411641953735223990318465201928252799812090942997103917616537545310967349801419143188425866212844079659545625682418374986331843129224569238607736133356503163671531172215640292282534471419405802431905996757672215377565690651798203685772512031230999700326026125070321559736373473366013506303766739330549176955964116224596468475406268130647503351546289502491205549811605262109059620852847762369840835613600267756956528959560726938442092676762694803003991442672443934766769038406654829346264849049399137395069113013685658501728183909089195786664402735745035087359346382570849540958947014420078713137530798265728036828118665059664957718913668953292659449161311748927712895035893834562423056536937159543690620139560928830085613313891987661916416229555224993488129638571622661271060661779454797598799370725220111354777672802504521580426431059583295203580173796216189311906830631344853436438563780582074915890094163117546429998400308689540000218099155887892810483092583835964102697123172938738723183764397389810263195601297253892052519588010083712212844386825447322339256304308574024176677041067457806013658800173795789868235910223847406783360542880436715888895530090738616924800175408273877290234627244065019553686808373733667223654078456082189410300140665331278364153896580069449641255760078322043877088210882352570959304897763060055251059808226563230539407307064366506159283051259761720574769816269037922096900677210725927193881235325134542507750331301042227738723879394387334889305411186264324194689621198246721960618137951410966637885283090759158463157321667728286038159230474168277851644466558154565253513537220972926652483374588557093880161582821963490870411715878916230194170013387110718149659287838187482396318107007357967050239262357884473175035411454872377722227537017671433462845603154844888587182647318934137354625910951710740246333847762747053123571440592450264126391675607476907063476675591370701977266072546655300912328630875644824503333992946850771238471764928551269152856136859395312704082110057133381182617923125976411549416335049880306367897841433648470144930349009038096913246753297261693863479665782098601394053102648364993241810662104357872564750486271869766343441160951185224820253804055463381786423240935047017704971346341897875600936988641795878191280727806812561486405541492245232158311121955885183023193147528136855359451851015575851260711393555695005533089861002964068500915666145446436254283117675553815941517966675837326504776091869832888424347749246863487105498015995091848259331616031383375381159964538150739294762435599640847303338133515052728109112045399536482569367005149145694359979098036230592598783019033152995571273291467628976435868837571609530462359320972986416327389122426182564039082673325414016232852582034251234653944369564728744356317600437634349626495136197022154012968364733223141009156697980932892861730211230836775011187646042055218264882650253554234571424883474257364539662792097282453367496611829838809783045807849785985886569016816312960848936712715297877019660367501219785996545659884592573602375675407883222207462047144761871322793870620082146839404383055010656986959083902900493696047068655471195503084032136249436384182286146618418059276125022694612872218584358249571079812709362327064580577333417119106789804888027252833180510023329600639385034836063612811178909104604408779978603266158692007661481072012401176650821632734526396388041454873302462381415345232741535026994241964738774444260146384531996633915648543664158563376111872289125597669507974078897651979964096157982412550677783228061019156824224596298813448563136872123446827584262660341128898634300648964423465815038271683877079948974669437897483615258885898929584688137307597098477046923870025006447978587041359934914583061096392169433736401730659534770094306982973589376514650915886969448781527590195210965635688002367642651341592421194342780585035429925740083425960701728713562583018628530318948971132718601750569678673303965982225241017427144181615317253827366607158548287960771191973238056975643734108824941976088263358615332106042417137168915106336712801025468082890219163654865788497012908720323402957593969250694655665636551098604632614008056338544056053772875860411551217667036909697207344232040309625218597872287667224588409988076240135264487936212395677666957710235502830834041347813615806822068465039079256775898496131390432415964082988778280352781068779873619578309040601586542571952795086465238933553529670363926400253455176737947750564799987989258359637568141745600635037484283246276407426264412310223913500759779156126829724346716662134282106314811009568072242929894548466927827283709912084341635577758389320606298981935082989996808438204280016970933419163006735421936105137616657036835988314787115917630933696994951963491814004596172675725152321200577711674419732418656726391177216269997718224708946544396446531864063317798291887555612523698330029580568093436895173600639066153771075918229735299445428564011693156653836666071484342032677955067038636724587537521654475678499918525359014977666921512196047060049568409770651711754372037727875438230241876718405305151145228536269780960319653048361117710547577458317894061176672985128970431447565150746622662130429907971178305380590300135792329725483965042913643491492567862676642428182874369056765690604867553817408421828286091649438596390819669604812071642206196929496065998686276496832521975332543084224908351912304379540292082827881349632866676510143372535600291952501523778941833092396017993939995391455783606452681194446035001325560755711078983711413691072656538093250307237662730265853610163813276997993633252018360865391646527235641495891603458281924621546226422135700263647657980663468693755442095102625769794993879649981453398779029330456445668364342430147965952733204868313974723807467379894909101774506850031616276266759699957557065482338757499354985540364722554402189568289576768667734239694523942992557183870438417500849685787911343062987284365448903175985276777363985613982387203125409387307254142950545953061878062362448257671280717570226728306918368031152529198656876493161908367758367986328382975927700432706916860220630499239839355948188474088836256663911683717063368726869085808372220353638511170776749832791024346872630210922870148520921314365591807170509629731366720620636321717857193824397276406760128920398887728817349624528395002852967255927891643785718319663739527176495916587131298716064422314821467854153390739412739950001109409038206898535477792197137424238116796447549047101416672628346483814983928125029025617714620101497027210297548359452884657809850740203235498870110663588690554291183628482407916054466369962433659003960957897149468266108817243866929169666073119502686693024123339579262744233354712272458793685337912532846022415999005316576962916898236165134524871476937165563336255283054569219235726465168205577766271362558055404599414155465110692732740438110203112017686703707393174277933870634550096142164249285238338381589737400061615646344987124554709273579361173004765767451733624476123926808216521770096403747942074875790671918240679332607799053060570108196324070421833644497498535620410676594937513536771849144977211215527742879458717292937811003230713551674535712015795873826759122036929859580163571213389099688353361262269031603438033407551500595448984311499103504053288128423641795123384892579808945393961009070416489276902888999829981666325399737250895607468266889644336046071942631880332129996379739336987835511637786991006894635733276007355950691672206348248581562237952744376906110881920369928816587764778715621471998369242427893518958094719726245824296345910068536486932636946389720353326097770243480693589780537674397350687400911557265674393331323140734491401989496290647103111444908732969845191535729602171018794953506574758299281069886160715721149121864523283379738321329601736363486857501708194774121292809328573564727065609063517831739638892172212894938198073104702435791921530706247285971695680101601613411192044699992566641517175824165500924753553030611478460022681829196894554838544866538598983357598005375753517425320197193125577805747562037530064537308052061202487033995488416194923983063193538635471246235444778687610749175246151535792761930027240849346534785079729498322095593631279797028834523244032883851367400640566482231268348969628950434350165363166321828824614886269256618781074583872969725936095510679996661052207597119542902785032782407290285879302602873579223863261158985303831560561996514912782399835831028414762577027001976699942861145730891614641850980215195173654157128241247023893410137036183841043336910198835507079238790061302458357675310986163474998683888078853529890319914659764629851803349047672905480781031895232176993659785655447041200494042932409857070953659462599469614128147427126631372535015751669589073460344144710391421816506244136224334877777024619049861971702451812658358050557873769767598536623519124969805054294572118349855542101770239062488941858679419991873568957554172280029331922827945467461723448453861794247162959903251334501555029984571726281266453898308534562802592316834363849435408830842476416458466179890882540072434874484052189755669146331943707185436173094769964913870898270705171579761685853715445391403815086578561019271051851260895877334122223579056030981617825152547658850072536297286331628451940210047471539948713355557095169977402213530125105935497427938467903489237401708019510468053823712862829909389437382596402070095454975731437883172891558076819976403099728695611583648763690990754728847936468584044668637413393691697465102734604944549471972124217148925965947582856086670379131190149432114764633817828125336550368679829935932684965192342864095834527792730839646026803554675213987248738704015454791730969553994945097134322188267017784230745638350634880529621884577953824967721637124906535009404548944648770036561222599135321227599893278009669486455543618449007547285082418509127528172080440725748397456495527842988336610658404009700666775300082425429707517220084753698882396199355786603919534419114435909498215521122205666640503090009451564163795920769973625931774714128359765056953338098139970948270901864033129496299174355772166121579405994487121048838450789656804097136000043442304073130416696629036359557264009968710686239264265422487937503299297038050651187638869702421052440520001504721111533291346844280603277886496608406448425670954699239252967796083269796436898073720262733254052172199841227819544740287584112794101670187076908588116244956364334608053607854524044350156182414937246107425798700502070320006674372180304797069542816951929523166167466989699460270248338488211698583673085564325182581010601200384720229132850278927920619124739763878537372735318540021138037925433036168314274683325222230811983217311468339330950111179180517215109904633036250610821969432848316219120497713905895988760450442030080548628856845249124549026610754848510576554402263837022700649070810093889903594229947011566816968471867100319960342557279346967777004607064283940728191889031851272212452804126872001007131339156191441231655928111547616208347853710138725177883318771803588482394738208453248058558599818911090487191701873410562176787384011571468444659634356664677460542179287342805835793820985396723532138299672624420763805904028780014282762806598218799996630820370618020085520417879618017647603200741034610929870950305296541828035266769572390922150825566575515910151933300997185845084313716733501065171147383597564527508940890446699911877239642817482453794371328107233974680594820582123986557269398272744111493116981580529226890127790803191472731163471765628272289523092322853742702806643361930893138651351820534784830626724443985777344350405257749609359391702340825458185809400816163154055044994095501731589053074708982219873559830998393319555654499579753457085034143461330825844620626402725325510648684586725027204170512990571967213460492484159802189755254092991176172059420718459664058579115401162292756322713064900009896037791534111675458754877601552795797513724196260817145992917009882162591099925224101630413664811903377981537847213778135770018540365464669543157889258493853822811942126531558408084798289437463546006395542084977807684704978696924515492230701175032464927537827276899327989758253273855065038951344579937886556976771362969859286822438616257529930178482609710499667539889138266264160416288678809106368900894535048818804564453361157986445828159169307082217839583765078330437599223679793056867903954797017446440305140101817966004898554756120391077649189394406027684946261114713490758915201424532087811857496878116622446296060812297589929026633127346365279490354061232005499667283157552407150411766950598884079340842709159131961653692352670373172602789450601003832937857271321003580454730213547178760549660024723454674960167367518506298659272349857194613692891355240384330834276068164109113502750850720464057118299726660575781707976866030161882656664069262666787810671206742256234063866240315154966054071476251883802483453142784805760003357711624293170496430513839617786217839639917670778174041380166442053868523653400587034633754157471198955081053599938908573099411934156303881041543597144508770757207304093924446177966973301282243830829696479080758503394074850791369136520525252935646452440024752883352951797477649425569589560835290326870373557721334940572618265477221978836328061969330192219614231303495002171594805640926469830417999662447803282353995146985914888020910879486386499758425501758064656766115311388742015834354407351030610925438946780471658681171854524455763315062525432440792470042271610014028315312478961153980050536490982503936656382980586829855289238505326648805693242252290208702332396041059628322772694026459843374898565808951025033944261785941745982272949612880677804768675754908958162294328349119706286941487922190042801654519029273026405246705957748322272235792054595027782603556350401735486814843441020525483156263108147362350460142438067613365525237458674047295597983035067623922626608926880613316084452864191744896592539318488518571415497268966136761774803762335494366955504629151909948082230391551427498874331233169136401461295779521069023798692836102725667611906363431626034345862655341218638948985575100012662898224316201175393033776209007911396379343679742287700467607207627033584267307026624166334278664776101192881294880966989995229692582812948914975094214815749236394311333056182288229212067866063013009705533756460765221206838909538937617037256437271582681236194088276202321246607764173588731082377989820710522067295643857526202510187915923754522341918427017710378157615749982574962534792428840750928218189477066741040014513205406235568182411280895180748512688803417693257946641070429987779292600389635607445609327738199855414166442090833165911486673045344758725338533235277908424753623356625571798663047022435979451014951446348402959135637574998089718873099297427104633369368050160150761565746635669162187245815154413890067774007198211297576414293575625808044658655595194348526155673123633986005966995829842062253916723318884866637402013643825432300057234564684826234019707656641761199421449776703044954286526290758326161953587682453603280542631547238957372399415433395333031501374131037060653702148728596588695695435068259355880016651156315395519575770064302797653421437239638291626236267983809691764706996909469239820694601525427579961534929478713817539158050871841506887730602797666507641833368889698362474724283465354391258469920425732127369438123363933834624175549554554846681426987952544790509615908727941409717838186325605000847453615121431295612285769437283995576755649427279226819214774295107718804631393620255581103176688196828488020515624679006175355265166041278863409091949564386214849166444284755846250698103471511981396845467930120291343318707857419232892942252289934842026810523591268085174758141239491106820470041235877931769961775480326320006850637270034171864029040395289127221958674979337339229577977922790666204259913345664934268737489753154996348645418120742127860310112065668798859876622795883909583346220336642646692103345652871200594833085590846589433482860315887321606527735807565777830270749100077292320304853659342781007743555236469696022526648026800819690321684298663268085152202343980046369421653182895404522793175352748390230620952938207175043450055149700935437632301338595624592625889768150995538662370069876064303432184213129522632319894680935390482637960162028535121581748018691995931433772940508730061297472983777132864617770121141737952650284469165263247813619957190289332777016461264146798566327177716388211707012667075769747446162506714777913877819326139720886186637924401479646035097846391593750681053286291378345181736744579980176437270316293407703898683009146835520987359469069947490168924675256744955975958154423953640080472078412090925896817345127325576047723605475713337255720444712818668432309830959928298456123231227035569171276201966461138498457658240656784328871301218050379161176551023155244181786831661251622203814553279879134283029462706754838731467294998806006681484769448481519817669805409790642713162875841581554433482743946689901890971018317559783794480205840213167356052912214162766747290005687189123605552296634485666873668463660623104757409861450716714394970780484773765004449003475002165444632212657125545500406605312948714108527004220220339892225675795153999425373256888315340014259314408909517269983441832819331378103019959652801987130518282811705142954764840538647081615434256242551340937405847570992302838410241096166060357906972664774549487378740531263819562641912812393529679834480330797524587513128482025039137128557128170379887259100159577569729267542616022053083802554514504787117013858161055788251771039120507437424710498710907613621163916145434467073191621175456304747113633613360004032558170019040566502433756134176273888290814548356912970455368141455236669834042993576716532293363811744507439193322131265322826231896790205477104239371346358293364014689281650477829938821449002276678774945504687648773817824393610598720315821721162667757063281534224595749084039048480113867069036069392275694398271058273965197067179725743488318740929181922703552189431355545008097799028224980068147364173940008946704740710994540952242454661139981283194678667449319018990440862705443677321160600767230753420410483126241072306777829363211183322642960618404622275504796346407327382446166442354022906457558385309414946877582998864950593440677295010222251504573624087745242848214992290490682913048655029931174009225353541525442832009625081737438508819618923350642787712247641905886810491337111672477559365679901730975490015953948197993565848573790411112642073440590008086954455963585326236041368725438546345752049818356097673829435606761780736601912684924300177945179454996377173707662644190295759475780581862741765339896522840469393984110555729523176695746157098449684860606189304282454870073331041121443691845076817763938618101840630758217482055973502859730439028576666444614558453032300860999889844506463052860184518459912991697291017560636648762598742936290459642744802260014408154049239365630435052521929369858024899372548882212010149932039484802933766686419423290162542648718133001065059943153317856632681934181565513104273617527049524107051795863148126401899480021764035787512659352016021913895677043178990487480992689949343189505774600375151228466345467417311002289980516542699840873327291920872962359160031424366779143993072999471186990379764681973116295316964149721410122432426025243556621271188813593893352574415850472863757775152910605134036399447904330305780184043963051295522837256625347356677177286685982199167242093816267723098401810743802753133604206175204125559187207248310824938233964504064255678721050150043936340832453289135583225468390777461788541006848400040867934523337481905244930280176833030604114054848071927705936583553241072056157294800861693111559977025871613793891451027323122481300179306601732911759747889919095500779350959660197933538952638899564963996115631028408575347041541888857780985975432489277728226767297434342341239358279648058290052660778506470265834834534816207862867827862962112801374407993061301123376874507387304520931874438546387280519831543631024199574998401971973678191058265373673399457024005354728508458987895791728811224763189367926455486728989934500882185371400608045523001388110769940789505193175234358855412587465928165821679888075009035842912875817023816991652170779103270349441654956687535271698174483014171027165772389942819954533858752416505951950501815303778435452239565820761610301969514931401583362906952161790088156154595038554999118232581720412271014720381139788586554550871523498513959172907035897603762430996225832498859852601249219867640741668991823898809479978511785731365216076919703733731012560623511684261855099483004730886533249840765583324477385931547366938666552055320458642327605330913802400203124179153155543435998666468225499474809800882577162648958116215376753165240326748622634357932548437885479825840562787719082676956525750900370962322159036040688745936842020351939896091912849314001561755024355580836507705999362877188799271564563651918465180523293382649421664936055992721326252489557064027337432117824874899683453761954046423494975977679129279845963525588642221531261791275053761104278631966793615571427349018601161733142607120679078199968472579140410279926571177767406522358550507134353526915065599492005217478698658428176159986711398971865065072643416067353097251889837424337609933954681505808711609161611059110979924266012861213359910158292867089737328601534504344834719384520250615189269149685261328538116941832923619851102216025927655375169690868648574907938503757117037088850809535028710625492941060730352283276257711063090208756833256213858948829032555657303273407112415523223563199883649861988478437825347550570589313630022624430853973240771069851046088071666889097753586920397333813045080320897724330961177594586295509026262561033365971108104247990047380157908158624566841085272376653153184283990483103074743940085467060782707019518979624250704424917988730574550120989800877209907664824101561833177685414663853196307580309622404498157724103369335048175196471727279537654644965022910971934502988032864877995718413979866777585841721466269772243261018444306120328704452603021243453035608003818565854743051597121217998646729563880485417701123149401408567510325818328272328328130681207050661985691643462444837267563223568989250841500433342485219988040031181946482617310317074039785007071845717716459080500319139156015281376913478548689345201231253941515616367932092948114328720159947196073156779066157215838264070413311013924964512823704275686072659568775760319916644632270550503324806860830538439249995915464042641755211097550097472256150884209905404599671919028048978034299551841065123317953939258389045983549125087840085145427001393419672950281703200799610585774984529297799996953740118713036982825850936227145362797650679436258726289060970807328600421603746858812476399171803198887917274760126068621234132427684664358619861234312896489805885652157919829541276948191785947167313528634848835155778085733635318811377776902819783749929413709785781550029095515779900599190253704729980912199186118622034693914755222298105731832517369667170449476260149816497473805059849027535996743427963204480654982315809768996579461329427414029493093100678153947078536262327678690899162358717797539375135818257039472932221713692606311642694179005089783957849051001465855712758346431194406290399536219343674448972152247105690965320302249000765211990227724312097487594573290549434731305315459971142891985042799885947118222720802704368190573095255369058446361938502140078192374703848304208658927514617313328771660453450134132263365147671305780271692750338454370046424984268801144242114214203959833371532535603447444295423668850176684147154210685259470446333162333041083837945497069617496221710431317647340764150972912953687794901991270319213832942834420569076938539762887686761771101541816738359787872346544753540770133310142325478108548663425009884355497352302468583429215698923717330355797667227082624561971324959915578447025680714955004413069248343984185996068859153645870317496081959125113055048299278115647523269852141196655562562164320772619695381434246131571788698761481722194145688973665750273318241479657224476053591763128429058206818191866115763654408199513848502364383134621193342266027374949118303975967163511599793269873408622361033916073286648517328772301087197545300402898062337279679203243737942040259588679172958575864799492176356741241123426534608602337575627084508596964646778106030159089787961805800110980922973777186232159468955227070603776625423283244658169751223752039943695598983989957924228956683735091228798995222011019390554735979963979738932846587376538659014209097694686315628545882639756891508243921565651019971420551173870321540130679024108273378140775865097159237289036217549512097006822220794526239651106896344166573196163805481405423457085383149119184516795520855021048097600441017402933271839615164191235369030592363450328091766635048567685069828184251473252428368260473445389939621593300378937961151837095160521816396727590921591479275912094067296213421459127934830115166510168144944913283074679438690897281798479002947610625270288092911360619562291858766221294017894205946799234334515012317051225560009724043762157646934943847079762290369876752232503649620083090384747364487105078024827726127201573472209701510304539855368040428731427802309031677247614476153485280109400983892618329222641119900533770701466286787487420695208816403236326437121244838724170680688691057120486047238452498753437433346115080975330905076557729927403832213451503687625868660662280236026030444721755792384337328843002844949153438863844996847764095558903202422823006262200847233775556481040492942100407317343959163932079522437574870368145606324919994351731726428850653059324878392257818779661745218299641797920008174333253741094046273155977559513580095693316003900061768269393380812438045990937617795201050918295184604614503813700558307773642567315656006659962192513345927726622334730946004248351915692580453828373549832253802974988336713452020083021841626606303960956335938878549452380205354108376269470305949433058534120305415443150528624627229638323924485452800118554524011479344062752628202661702981533808384806218462252899322098025398461981122534118680961613627909778087859847544817626793238030950438229951636609593230177327503346825303883130508164364293992948909558077155006263662299567867288349806551023572231372730608903301135151863525291210637678377325029226100034380657750148946828813313654865686161718680186033899426838778407335048676298984430632162015166501709515008083107862928092866500191098273740826776974647443207074991439255117113059165920258224212302983612019923665210156889851823701139569859960148084686468107875029792542336058818523920439311802940947491459127433147776927140221864119685027041760623752765047051217958420313482208563166826998545037372191960794985987460116719782256104212193370938677727256285797574216453277476373598776809365850982326162227603487498829359818185985099995288860574437679159459855553853044339346593386519234478308029879234633734013242626857014712222557023108602929653167460054671880891329396498777423340610815333551799215242324538922342523780251378488542421704321884891886376565838051094550291594085000080960275461794469404661319668100992052523431248682466601747261972025145004312416809979935312968725219910443023223288345825913271585955647357879537570030846532361484409781788882066786891193355740556735352453510682172339276311149860354693429188840052787487950893754087980690161605323659209190720004553583516798802498627629694710247701257065360236472450541708199381403902649721017150683154639599318883504579882971550412008759293263838591618525373045010997861402693147814675045205666844181330897642732568801599778962913379881121272469290341590536765889117360553440457043993426154473433298334281233489238497396237250818155306939785916419291992186096456546238554624603181725020690502218553893937255850751372617126764623445844202576650564573497181414076305201848347348091699045441432268214168145540516331595465043386142332631290566360117734149024961979877483820789224096706440717439166948748830444644101571971084362601217242053752874710601977699676218282437547153107701059040803224929973327192988193816635402151020080793624578731205539350027673345563554932830307091826650221232430459346142483354465160847105827156093999092488559884758612097366036496969950618282949156604375253253372840937124283756221736840960443192605272074337721224578473274431479168689300668227453451301850963286400966452988375753805640244485988050365586879913073744286871783529910938823382111992450080223520826693967254664521999771822503561761006062109070056632249589055014707582667030276437401247111237204465386599136859002961885739267661587789009463230969549703332613691941978120648068349535958878059477530455495097619090781078212724562920457719293487023227548637287118377249226877126494330330816464270892955371823530098555737498881744032306971616563137981437483237821816394507646698994166700021865365202318994814514810522330975683627938796154807134352310335969959138101837539943307429064152015155888670172977005902163164471335167658831639886298961759517014423090488199822944860106081901741350237935900905611422664714709271453221966749271369537697760800433114573563800486034220145626185102707691816252205252764594856122440921166360654701744985045000814640469578176202176058132122334792987827927130957673877158602800319046157768997348233470750083399634392995517368006039707666944465874271778972457454245579421413582422164392601947692272144380298776472176711183748635746667140275978417562412929737200902476398760914276174776678498185043022750540346390285463585879480382928988179362312072317063020386089796436697895540488993770354408961661469303995698940125506462014614487531237576607208978952305193568938058181736342959589892342058135939416319337852562594110571750486536228560149640540262344208411178539884343817092327343130421025057590592652382650715044398643775382709024647717846620052562197403728813306230650615765410650310837844412074898786437103817526815761907378298185071743754448148809910078602045265004371413021204251772046147402661987188964671395944080255420715711576433881154529416370857658290090482468599062848733695529988436159747444081828895814449237390849822778382800873105775188827010524329323407637382636237528658926491449181344988070065015240835574553895356498790467513472395706222297264924615645277472513304156628280622941595953059640699748254860519741920552166174540550348707903106937579537885073155258435387427463012279101536125498334270775694350104704925021207842510439498730408870755575346524600254225173313793780840646430742708542181208256812416098451509735127304487025629423021688896999370777586385743505972432097930257839247330453601056701059747636025486264156961682416754472142498830777366366459731516949796696328502557316054589543609417283065729726626824454278447382350263731028256629708732212386627330350637131450837456520434084141786794450335538281052455593389073731617962629738855096494763779372176076122147331363921757382350880314399349613464289423162287372208313637788367723265843950412502069018925168382555727541056760138984532224905572955633860365545579073782093066284555686837836966188334124505515065805753288788721001530344377017537869736575035648119163606625274265856165238333898390861063433886907839521375147762575180592839337869107603302764726796387303696522985895940307964036870796780760822397275681493586545024770018536841021599604413304738398086076851914675772550618720971669221105147550645618460896880593399512920664963353597589802723517753487239851528488735624370405642291620805944079821259501972470760364186415058796226139274254186193927398249031934149621041193324806701080212119557612143836245083431095294996661193957909817524584269166497193522603916739408432121951678103684155756664058529229108067077776836187891827454954718499973860868588399091979179701427094315767705919462145356226614785725780452367903490581273907710808531973487053200613074177029716650982005604165304888471993924152898496717920494750797842071222525939608559108815684777717686932681969449804062628766515608273841719360450116518847852907363359704082398036453915922549447923645637434073919184782699581548787751772153264740127241044732095835954459738227597986389671365029198562979017219246962833331134376022496419530712974227282029862460971837219161023887329033904459107236801516781785472093495799451969294452001721821275167209190869242311071511726776877775878723749642414400321272604268697888274289784334824187358900378386293299584431846194332361150819404090814875362602686291232792721530198016951433316263089494668484871199889417171173693603757805281813909092058397136256242409810276639795147796103041199360544945919469687057744148191701464948100215230246265406028920166157756030734181349892707924283804396493011194544202781294143804296045317879358179793912816223109064177449700492216507507861426500263456876479748584574191144509227435869204846445214651447374552859922028341511481821937466982465138464926479291484135350365943604124513763175335040642306243628080057593615004659304602642967878947429247314201892798867127431165882876195631661651160429213824666443794888180231029156184712706489599152106753986280584837234887291959976679515357173121109092811262520413463191528110126764516728588707504775193482211480051396825013623889130537760697906690203728319455404361828958876317572988341444686316573660506121501823718831428039439836173591592302685989105454639787162852080034148017614979698836949784463026244502372775450520469146774769831224718565078002807207113362527260896151395143482100236559338538834536748808574409231107036697133533224395746275518130788051911809308470580155504207297930979133171030156061821973387361765190473938186485000181264810413466608508488650675186191394019415726869991577459617355705191829475232070950204781693452370508700660759795760769177959220980534656374182253101085253820912191377782689030370421021726018189392024283372210623606297936340397997952496539638809155912108194307954945854602881023599435538497161123228343920629998439003879940095528343072501238175656003201436330356919920486713579171120368277156756221620430489201637128119197057341978172520965760981679344699325378669462366839850064602052347908622082900906510200964279158695108096777151549454239990873667315006208077204952796165561616039591601757918100218129683579839216205452774343828110354927271670215331461512059659853698710777994119756320290445481562892274826306976782535630344069632535193525266290729482975303939615464245311203008581402687045817706433227394263040017395475031331081463458726513676745059212573030906343993404200033522250553298191803952910278894557377801531094110699964092298704689705933275669374469727756189874705987581648489816113564122965881608530686283271192031886662532782465625315812185045017491901805431692726237046166790287064937590498576371512944692239878660645197042733724290796624901351716086181620447095814775484558796558555404225126689230550820881909005992457216309211805081454964034225765227557528289233484943104521651869184849089867426154544405175271618478542215166530709058207851390203920135491555395473837428035393938186397891774227157330136290352191996691956555728392884345592714119611010763420494019040279751510212998404735327643745115584474117977982328326844313062041387483419501406770440221223978333199528023516776092170427954475312329670102544438459765464909077806983000419034266528963112503190484805802056047964271997920495650963365187293258980992669323353482573509596232614211795175077575026273450520157308454681218620342145366687265736068512760852991078395603441297631428567984241067959349302901693696459993905175489630732782326643964573570551555849214868947587180610398928400919223489212753734160969289208762407949685310850805933050741958618289445189270789435319814531241917688149115876581744981000233524961196625710866922709644960773834028860126630223454797494775452319890969529705039045684842266007810769481010391470976120724779051593872662041508470022979523826490127504984880399795955800377148991638564820757710026088823351240527916748872167580319640558477691837431480651735637240665065517214004494359377172732134468148343723687498009259490300761066625349128309050919716641329950273056300493161614821095506932788467886597085837927463554181374890387309942350739217998179577869890222325512287516898573290600333934436448018040409437153917363069676542831542217131954145232707729373479669312217109428291416812718886076254992829454388159034228513674815298247059289176942251956591026850684890187553409273891377583552745766904440301345307942993705057837333175784920572565442265603413029399196778813964993659632571407927123002844844143303572083599747407917470360908991002792654305206069572205765872655453427640603024355114466104984584685784565693548929815094281214442141531261493251342377208307858472250691228243278621484906655125693217782189345041310008011944042781418406966747865135351529594021454342244473956939220049432027103025242729913166089494388684619523838834542415884252540642264570516382273053813346311549606960845219420949768648074174765574305707076517864813381977634356603542383767585644758272068431298556067697861941005949592547630027991691248732401142121487439943086123965360605244022882718325149333733189364682431968749285083344805360250693611879088181939258417155431926736680581585233941870954470210790539962781778629908442064275076373653471518300083737872519056471848953154605584991928706214593006318749540611874350559034747229235277859580964351316096498652504964429432105107736507403742359136596631111966973543068280713597675782837976900404684994547617314900182382756839936653352875783270397855962692681025983040878566532173610027904421263047123706909425678323242217401962037077677698647843975585300482116752575838198506711142042351327911805876023322737805281688554266378977877221478369317932064876487690944036102250169693385926896031482453367801201095827767393384118249106696771709464393556019601938040830093882717397242540304760242891875031637752826650778195144432377452141383882045015378376882921891957584847710378434220517030723448737977714237075535023969138708261465023799139267196335943722309232093742743209781655578660591416694709308466366546985386533447052049587574317576510071694920612394566887285741216718412811119187186379565607304970507769826200744198939189236774123844336441017176628968756406658402561050215840392328898763674017534834555507005794159723733307564610145069509160790516970566181377252835401200232755214554179406730247976507290624173582375717809121783606639286775816193260808005083745713348385161156052640578029202181451729587648032566055685414731085505661739979238876018823912526437348040664298643626062527994053101319568837366665974721973331280547031074624142061194221843158242567192546675661103316688157075178060562221262291400000265354242976940347937276159612554392034834361230515799025167636440306435071778770894802401775631921303013513399903131200118720031757031400992650888537982185935814372361575726562729673817750165243735735612663425958854995040000177382091482880708107659923494184860089017095291913262000766195692436857629056742144988065401355358810782239496757854655110775054734629024362451926180101144331298266804096204369572243710264107323203502711701971212690128486382057508682502720939448868835194822826498021912129197955500710381571907397187836752795695093265557847733694090217955894426968113453998246035525605617348141793942477649663736539849454807266540136250980616310886216605444837325017870472210329096627355665841207899029897943287738240255413489787894469421303140600411593044605851553637084740008816143987561444119326353889161684586473493695888876993157610042488880901206620910452418994700937358477699031524737623754604402469278547715181829482560346584292613097750292663335588760340049829826770771271674997029525485567092707465565693392403128327996736760722279241222180074420313021192386587129591952081397808285695573924537294007512129192757808443407903548261856779356509796549662130506133782589791351746966795539897131599962709987705118474136660185385269557585903229344192407179033198328085714635185920417573123558261494437110566743171182952201706052796400236781357559759082794423095163789193935736610450422931779427311193940721948163772786295281411654493675161691565320012711873506301254336185211924787175419137146326494480826913931222909517681277838765451799515938848057349737991279225137170625516969627802039669710949207283772308918783332878203486014549189549330455052545813008211284021741666011385268739193640082315063210389200158501543980479139357422849485585113929645631956527120028578796406605666349290625636209574693282232067974010010685574032824217075908452439873249304100603943926716382880974418415600708921572089732162659812904432436197151785184077072787734837040159418919101678103860081253247462013765609463141923588926490856154630288136505328802176113322425146278060652329421628695770159746633987929909143152827288191360950789312860000004876506379478084976657739665345593302391608461416109031091557264384696812833420661034698273880016218672650322309760142220292748075626581221141951905062012064717458867078366765986720718847000271222585617221935758670011400107926947729094322759184910568412556524614612443823604867485676656868607056398498327572720053597146779335520166572739023271410371737019757398989049548956972936049503121777507853731587152903166847988440943631613827409980481689138699151064847160597779361120140325011888702918567256952270479118255154832451480784051903761797591857922637495109641703130355697251881011822389646358308667014471951286522839917228432725566380259168275272491009571557826462337293956757428989392629117656869876892243414909561021653783153715165555618224489339357072733416304199374720408155734745909201371081113200864295036965353931298873327008302413381312963792193185147945663709372718766079826886279782212490863796910661971933543650024783407481175631181537459465438892820359748301369798065695010923691215952177694418123994975475893255472384161540976653023606116543555845679640207240127795147297308947457110107122039866477122604311726532160662533909663152106454251029506464946097610011179814343851647483865716813376206680958326636032768293073682495104139735075930030946168820459583021991127915257645373222030639617428120230649400007103658409128410625390773338516467217431219929202791956629751517107629214871061701535580577590007097712290688642385719668625735762041691116953786860071641074228062421256116026483569441803378938535771855870615070804861422482804731629700699546723729437846397691172357380399604895028368972354439742467597208527009889474782843644468324102305007014124335534622494609335593212254271945043846221277922094663987369741933578358572041513027709410260004386106975102508112760019872599013806563185542120628548082721160312673270753411413520119714700980114290916109442178744852911845168704551124391524285414876080164907277115916061937463621553742315449804508739308701958275362196893236788115513574054434874162438216914887009638976281792973952956717641744194153373129627084181334922343146964937480482700898999368240837421045038066830235085182559615288768386131751105314002854952185071685297515447344694790608270231904343903280164696387729999182334019224253791747328885368866150492149056399454226670322626279972909304802890956074791852312783650900560679611798219161119747472761164310282587030637984940993728780905555345521442129160482749502574840676067067175723401883240650817116311578038907389418475961983503559700912184678182506913803429300868322390330643818363450946949937150417444912982219575543024184277099417930649918831554588958692979975880925909843574986874694996201469442228715563317396722368026809186530945267250819130815819920880917909407914102254252719489337669779606166416412232414647897906306767687628527547543883020670210864526061463882159447697349392035650393076140004667122157963795436843833000617751204186269300158528265180415132102642742977562984179621397731527594394331944706801191360732725821118661409961395038510391738246903747375485212167029868679336868436300545559908766401390411873744566749960784363148683352680275219582794199449803782367069207866761557064319579433195408390034694975195471459982932850854646634510880626132374365950660392531725821927544703436368042583478097989512707304596407271716228130109389945728447250520154083905358450293295219502112371577587623845229325924014412819245466454869021608670684695623604210361317767680652334749049598685775536565400828650089891008780084843574248997710028557911642778636670295434548882694299582791860375871350593444347246297141954147350227492671781773431344927195436883673638345102916678444361772392747777971754672838173273398301432474105820159054467059457613169495484393298189812875654265693507003385428867438512483571216746970571134912838253126054178467155139790807721331106802327565998289929423218859632491438639624780326611891907873382932066754146650180190945991963837236207500862359030554058165749871916776031147628484975941007978212178530928402703702644568338109785842359900683321002498280552944331313037687453788058432536504898720139472643925901382468318401463398729559145098480465875073356955740664998076407633197485806858196607696863660550280245613160198161387162030105452715327257296150975468522293924698647037237456457919956161671045476729290968080715387158101529189624118083264176263711510207611083265158853615021665304713615154335040940532616699598157978330863887734485947135375029890884628409159810938427232801160916035664685303254670958685998353644387468242817007667575713869064687029462854313359718732264597589047254417189592244593116899760406074786387232593228713575186032930601303262595632095872455109765183242984288817792589693671117429805256971851659661383681232744180759004321626693534961816554096021924501103380964592547107412413767693914128271804129008968833825241526650297562972206082384407118152152612188548161292551737313883266475986681668327648011815793147711986566369147060014670815777023911952616322933002214207967188464457513085990048943546972395177075073991923148026989107986767308494021594159922420538560788706300957634873693698812418885723219957255004229729242615818140594086322264890374494490814307750382454373868750793002087879400858239904760109420113399649094832523121956986602356161201138394051336978549312002287745613567944175652906201152082667868929062771513140275198537471862136289778943252739451489288309202075944775667676171286501544546294016600725608065626231103187609197256431337981368564682821847436439608359485119687671986856362149150260349361956323900285714145142971930190306854762065694740129804961286039371974926701360357535526035676687348499366024601280404351250249203007356825857500617708582760368946527068184479706347969908948555973299890147891477018020553187338140489854613453275471846652881559609489447434773099883263918863486611463926999738616822839102551407365541886932782291344940374905830293394925395950448555599969349456686780495673235363462417140885221075738779718838774417196611807605631569233964674732946247428635063998178665293787622673340861237895782740598023547270511991862993668131964004349105927101914870301989047647333285647108202828667320708891853011300214605945406520938614853260246733116611364317535665889705037742009124103296042753202857307789866389325509216980945598769439518289644347576080231628452653110346449519512128586835072552395529613737084651036975229363607677491662552188724579563574471007336253757778920158106378467786720707754679119815994391767138073042337432876243062422046109303622649751525483408501426252217118055095550722221512068186287196889063307713745708477858529364308870282702929698110517443844199627520014869879130928916679868471216608464322448827146340897479411098742938564836127392297711819116102831822884432009049969673675808522602820163356611035386171319047865100280831850277354557446728295709922940416068191678837248111942356265462494056267507280190754990910611154819023412290803184701643098902597695071463629363821025932553559524484872923741019923374399582039753377213121882523460607175022355653782021951026747066155886335112925112401031465098944077604723422594210685419913451216568644524358208019988547518883928915563778171408760930932399886684742827386693581423187268756839200207547352428296812806510113959172377879911660687656146814199851347314732011103596465032632718453445333215289798865739254888153220075395654569195966024728713270944029893112447450076105122553542765700620954147263653966180167167214149479894159039029862947639838852874904351668835094027589959190724913071098407126610297161717617347136119928745123170732355176161693828824845448746188353234785514862367940882672463782582532626109864831333206507082262391783975309862872332921526979721384087710146576592725031916636861781264393319107928422823044976098252915713125979554765252332455317527415169290570789951589708444405675419265604241366320545408303519204594784890986323862164803377878014877058807577553018759590351909373055181371065923670387628085000829876155260631615536598821858931755602193069450093930062534800282168185446062983213870686290677617555570963540834710709940093058852366765531056226364173563859940366899137307859456895990413971221629522605185539699374518800370332178680748693456375715664052283819050161396793739744125138683956811680379770867678392950921437211612067317394719827956416834918972138837263027568853759265948559225200792890618528049174294126550008431315088273434783766375694530176903667300562677687034067634969775770934184655024386140152233409146730235387711852758887743654413697773866580029455782123162936769725523659751224106158011261003074751531279262525742353214684220075895459633856790702603006405245487108329242334329152715580525277225734866569996627836719454021457933875234005389701181042863077856231034592342743592873874563636889712603453992323384411205698490371721891999862688402884168530219564288928195078700372553664290315914310191907079268266025080424168520580121492632472432731081553341480753351228029622570909635878842588143995466526414044828464403289342927257687928187802836408747705875745677174955369310219488331022942868447669520274025921677934026406995226155711412428358586787639325915735800090966252289955263696263431954948070448884815295753911369503750002085725188642177724046873672165770161710097607147055140111993608805815522566101819910257448723940150490789896352087559624744546109966531169381728835679633510960392819035179607853883298003452912698316779576011905997984493715099106184718054156540984364555348553368356636838339610284945064698197532762283444465385039032600810697723353882415249172473670917669335812199255080626544273423778045607817982367968205609426002690842620948740943658047420714186779855878872784482354942109568145219763757069411721477609025756978101352737011920722514196495883972792938654505417839295793086827797668619935742868293983225496108925725265964772460532431947987312490022896138340539149391741817449266506011311187355086246925106168653139119398567396222095131650090745419439107665715974565669955604460644478101986691117508195002954735931637142130755823560608131693666434890121396657947284245191121933028678874368565262963998802479321870428459411971078684499769726957086843083076466966601586675929603531630500889504684704451565536508167892515788669653314217919579405746423381104642388557855899826088356412889016022525145598816586507522687321769924341960394255261098437441359314670727685257629469439154444656360216624247112028000285603636835552493157214082686199244891116191625545545423329493999224113978793493850094520615312507420983718101773344505411310444535377698302847626831530847459664344281680354068425164891023603892245255351731728483870012398952620792915135548103637782887407603246806888183369048877687745098553159724066065689198626643463298112749532261121582643434775328874626236030943717382323424073116896018157536161878607186203510293607206112634806480794862519845360472035040464654975070686261819151378281920540960335873632575224788672685625004135038677951706811037702380022938615837736002669098324605415403026444397576386548161878453020745381814004056190453307674998925329723813128350242946809732207810897086636835673382485114651842206383556413826847960219954229270736382631532019350528027175929891050857807779531957080462435489097341786594759207499234818455298509107655618916684923182783479632772851437506731731829484173949367906233751457273652185037626895923890141456786168147600462913156717718576923342668640922062195734790304443328433142307869221503907743612861448276558388359038034819963873221176046138234972996849897272019004660241775915175685728349997781259957734890912699123136436577333456024734166636270792495511348214741077446353017448864674152337072178207159462338234664540601174670467334230057734624809287937603935891601849741226971855879723083590119048146621157958349978493777549903854748364095818711838313083223114900801807461797423708328975671537820901487438268918628416274251585877257958646675925777738280984559248402948281472177886822808937389129107986577442628479582596168867776259492628153518182158570153841348619047100396154450420427801343654200872000503855309435708910660138495071520853566955250229765815082368099435289086162508673641934379138243922328599226688777521762622313472811240615807074887606362237919761168854062217737996867475130570597717066375404007511339766177479540226007925980297534443910798509634561054596440417783220653514757948925512622785993626939476238514322205795203051665541554525005100584174910453289784708369016261509926865749212030685776391187227031907354238941626081307331918633259053356557661227115181301036919574480455057745087769907060662189056063687530568555152399157389465070174809790864670543323891260016300243716436022795019892927063232163245445572213284381553545739658577865685613878937262353467234220742800774457736957133662111993275594423342882817282458957618426014816343938958450849875080498002616778304165871412416062969341485911530568410320143807578041241369284455160383653191597732404295081275511800831718546911257569131805617246114167903723806287749965948171620252203050369494642641682716205646498351085862899066103951450397563146519749233380821443868769148354448150916325893668755945379139050433049253995738375417268405342950329596565628731177075566952448462935326817348391247708523757182299698388409253698009586323748362065253616450197811178384582354761602823383470287150864839465182355946932935026039258431885471206686328042758867884515670611461733006768502390100286488826000059126179791977591869395513824509551003819560449994618844572492676250783105691094847030463815085766457838608112129329612251177163542801087702555954148293969858332173825186308087302917696995918886679160621277829064899756053458973094419216908374634565685917232759325233673506323051899354781322141529501175191812314485811992929898097282538620289650912926181812757772683813525634429449242370089912081741939541692403727032343923266881284988097409686030729665982934903410051699550069704801351534596277367232703563565565590699202301589090104343850562378028272458204517727704635737971571290779102324713388469272771438105561127733087797559705538045855748746762937226348052480003742723518829035508450286188318941651721069620540427954217539351758011901866444318377662055271059427434297366766943203854685306928241428791660993889278399570932539171945605842485668756815834449721343465401340368161261953199712734834319617715713707320148765388107719955277320633895651984516110373353638816360318692431669375538696532445223212607551599729755731266831820959183158723685637753111127632199546205729847425222789040094414511198549672856421525875012541902944763777155134108792182841636350667300027222908000541636495496236402822576163573695212601582951989905632463740312070153253636752262850168547954390132352335161684334381097520751073788069566953431580100804752465880391518455788981692201174680085898282018445079713323477835231241899978278516859032170226287128087771167285569915595913802650945272003460859180591169263652681343152993831628222207031962423250207445598581991516723468291203867497751099505874421615115052485713143567007194257420084429358894062910185517683264247515738503528347460399449838396312596222831752151617032146487693093290692786864223955868577568218337249811282223636209376862762077222532259035492287781753832844945037881113328101866493622220324901423306268999501559694991788359654847035605171334572413077918937594907001968060576749812078994340612148213706786952691930516145235908742037747146359626387512494737054329851851211522182149479955949594258633491932012029627259708811717037542297454495575828050326232634624954979328273418620416121461853048047715870047743014319634998791411198744898563917360384602205962482069142876618218496366085901625005161676377860310532549516855564637242102288520187575095381168795464435393788751518752523415162830457874193822606484953377554994757381632812780841434107463965897125068241782601064609354900114373394054276748961207917424797100975020886738814594296451361671074770209019909022833751529119805259504411906005587309183430702251753465961105750127451913130171224039221641217017896855739325056587000440981807267717616548470291455999260367929033205250984004247026982719972815355546190223989823161236823335753412022924185336800603127491202375005513479750196127320584202080794135687811735178808641974521807978757344063156689170374453380657861243735468887992846058105440824117828621147913607483628421082391267303986272468411147568696751227481887355952473653779038123325537107441599004870827574811739132482906990903771190533125927182556181555368011280659865158665187744534738362552586050027708581616840462861619674063571351887805652827538662339966712486585164013270273940159291035018772444242209643481286350742734772630438806916356344131681151629128395637486742859928033667808526901779534135016189960665509757946748141890301614551560038034940544532995962839459875621273036285667407204878634863796768853651224368534023891834296950512954761629811891679745138502905373742676583870958195558594539833699973490233207441592506123093355995154305611119616358603376262246712581431139922760962528011264252560918541927913134509118430095993120077005352930836417140993965516119232243021036878815145396883025577585817282943398815891961553959068430583325828988801089220452456249031420274316537553233782920109699532201028312021247923363085849931632332829249289224126997103840639884453837123850856631997969059842765160852652616727290140894789569626673155180534582465824052441544348902454044411115913198257019231991279102982912725381578688172938626328672118602324234695355239824589595787561562507294113259257883549311776972962460235790536097653834849744502776592714785964867336506420803967192946147360160009385555480769620778843209122721514998374341603256993109179737559449044890509847788849214299720253272509445119669131528378902215588516174172870244577388086818675473307636202106746839775015311127888850512435917174093540396252316978542670046726697640803205708124719281041596559465597722030862870492869826255756651522914207750541949880898598369478791464285416355500149501226660196291200372369455073930625337082810645731737673977339134666702940188044412263269739207786660758701979399786236304971555823507558122982765648871956541894758155063011584356482183936488823415516713669451821428228677771599764602155736496212475909898710700506656169052806569764373600862496483609753099606140972825302100465340053904953847304091716297297542495928914842924173496225407676084561243675918197267310603263951950981761515863535674844426625076769104685382304550177639549881319660906381883496221542757255405659396406160938140214254864772193709477735868136405788666654985827347084578115350851022511331754486629994278176477917880274307473817691909103631741102910973107239290926192452747449638510252989171090492927325081955769961894059421238498518447228174972155697071162897617336588584840786987527034445925182974601697232521400482008986739094824526017186518069183594563184729589346484836053971908837121138561168041564736203859185689230618141231097072855020989838581989417622874956306488682946598599672577819736802283717253120802176721342964137835739616483125926443400695933244885088666173097245259520843204977808852006119614507877709299111025392769952292888243850430473060504477614673838236163657695892766560210405649467184124962077595775692722680025624191803323769304815328063552565703782531883078907012956019382909308632183156349634785861735927508504540094278613583319343310720815576675206659265091129774720745380707240453522107125421286583204771855005387021645976484661860833886788556254043356699910420133014853283326734384703356080429460790217693820849179144941224569830189234864145061508110676734211463312181854282845234605072570976038018526214342011350194893925982293619034407340797780982246054768751393767062219582158449886834554227662248390885094829377716298365468024127066480399420602425519203835142858821305365852912181119337356951039679157936867508786218441736980297868316845645879793676877523131454252498023134985700292110991278310819185371675545769952262546954591664658865095687888505518567414482726301773352696069599325919200939358667511544437734163678662936188488513439409161280174649585323604536690959992616642012800373315650638537412943629831331629963903784887671334637833252195324589624485179452816212717114078067256001345771199170821605441681160079064774719750661715132507226994988025996509208571465033331581321889127036900998892899258478453575157187049468730974261407023470288125171699979504180651833673496892756807307945110305764941286743574597850530877685918600959438473683410154804148933396212785927521832609708991529509093194569193439057727180823856456082522931214869169806869013882483219179679122714743863539598881828493253356761914064384532410920256451005326890623752924568128844560251916222349511798317826868239248588028186851819882935314944339382609137665159569802500897676895330583425873657087856465786272475120014341549763647761022839349881026357237471716422043513524919894523593459743059558611394322729642654591582778517576287794872835705241342273302317941376566281701988405634331730666870901600864684848750899171333841913575915849935522208272248867612800949259601444734449152209244949445909573673554846583676522161143107632126885218278163337792746351957842375072532407135056021514176393878178402469748364174864760659042697006457260886201580127302157471724299246778546492057533391681176281774795690160680504944684193964507285248479953076405898781557012920682246279029533427410945290952124681407351908500373406843677105885320957896299117376916379715576942303382286739455460178514604148704439153167169234140391047156028277070117976667816585683627688001299213713458131052029652426875242619790585334602694504513728998757712068790066048593147040298735908300890976463947691762910925574334376290098679457960760536864865191257607216582429319943382558456863067087136098662098515742825916062256327508213489553922999494039973331240802547507533190728762439884227826163293136055251057390205582870135661983408069928225425856120746537547194094852621887334092501099111883496786389779014351397799918596412160097741276926637215229331861634028269984818620610410993098108265565683200726233413566404256946186944596720382130715568962128497166416567813813879494098164770148418596633661180741659082496141201614116152317158915295483972128810864308403430600017723368346842086053544864281753802977668587553287061059750744931199825902959221515874257030887945619006298929053510398460354633729896101607814237610537446371474861765319084568532066993960386827720154538358440365670237122504535654434659287087206901917914812558352851205566192753573585323772162293438674833570602050330186986844228338547893171135537154147784961933741080204315439683542637620039996884416010780879998024788018250029098669712423550874176070238804962683873117219304780504318912218786209961575707282566300609996462074687148698989572475726364346977089398205017448926133117458068962007372375009254872841844366557382783098581497219887253170755267891104056464553550219712349005899011344374244926917898115750544006363731463851493299865322669602813631097935557270619082405725229337738023964155328443844499140332246997610048825883067717645174132664099189832911762330333865972212210996997697626240517606657831426933497480382953795554766602850950594302367691180634881601672720366819762469504036476987216753182776778779296525201945276988757458174052961149733942518185702008676244437998234993320963157070438935070513834524645365822214724730693287725746014182337427275262800515002741628415808428166301678310567273621017030444392896230615508075806733013372594093112575825725547374138022778203331650388510635936798389616383983652457492196988720103460209183363827782846184688007085766351309294948840754980379015986142992429192740785831889736018397535984746512060339951202252267359028901019704745427263329839774875025981901494331113944571045801888665604351020325295845806736076148431531869749712538816412210071951853736757606821748579499042710267072238161945673202885446462930444467799399662356070800856643406833137770282497977270902824316890453634726727091624436178616884740198095273161154816985631495397449393432332388897914859418870476633533598203917657310998880541324268373426762009429198836105435428228345935401020267269660993994226333899226401569150237519329279757392085993091588654222232360364250723833328944442947219249881018966388120147948074340728234678096629594539399020625537134341941660858843202514831497070682691629659737884564979698914862832853867046604549861166404852462856408462218397305807468171090036949522517215589963669104253000492005152911228894227372216954197205805171636958326271783223790677583018366186899351915252104591594351002707389475896639800729594031965140516461808670047183915346062735305011466646102108480754881309294957799583192060993401175294883973932071774465186188640488293136345052118626639847230176611879162562317812520935826555368469876466298651632922182525604925043768701553680125437830432986702779688510405921984785875107755120901450050938865361937604235745173785098898759350903538550576493236327095617550115829094253908894678801608490950724928076262615185622911344266317437552463224347334887319121828611646483303444197576873789774548901633831548030573184350766473933069522547413632657298902749548348067322072147499499860556343661887079995865007163729545920213649122440193245184210720342461281449047680811400095547875477283836302427702425513286870816800109150034086367065411419664343146142378347235585107841872684780982253953451195720394425009229509544422988719586015103762126992927889995074890045448218562470976999905541168065122162371485036284515354891733610037552910020762580101703177093425045062975608540938011596418879525914210047619713751416104751036796774025285229318298037947400114520740147864843237585900648323061981747542098028270722275996432281179875896504946283817897731579318575872165575934912560025580414830635520657338827168039953971944239139487949855043964434113094510867603736403942281281195472455275805826826078597891948006111982151633325310890743800038187317524312881818247555715609580102931256314351871105623435761147146345542086103281913916626948915003028862481460211253298510140255012071329745928228278510754155802252530113479564770430969164864005726134736649482029287020180488746743878341992150890037804824694365742823276065873234000982062783989433620782110106318218829489259767245473502524743283362321604231288999170739894148104014259084958701361204111248408633275760921491713670142040925162360587480302818140467936353094226001626738974009821024644513669289998118587377856617268834516250239815447460490714723532543911206703740238882358542491961571169738290528717015969656043811297943478078261108622754224302820854387214269378490623515611606932748649733750894286912277427549787956874707405865463342445652937595954293121856880209938358151065464234556943488275611872178210256166129220449989351627483555924602022568208238633560313850405790612508450543766581263700383992830953678723287914924809094564423086471300842244349306340407005980137216324507034048653904974757458197417963702878095346288650029420082572913433401907091413244072265241439361771023763412376419453419550801577676310964686386297014949564263353271833587920824021331190553962555155068852820784062054729731318870122448008020042022140667514233237652195574608846234273012973665265152909810382744698265733886333393013897574789158246951325099323830439212784813396947658493086738223067612164438093053071757840720198031426403839036581870183718095002549031583409881807553907851353477860978004600837333293267969436969315669223709765000273658643265804545172080189049790797155649814106132663864170168201767030811822376097703223384046600137039788212188349477535321709375932829092283700899314716695294492817320213395236629322922727608188871637879029851937262887483684285512071833736316726887693732256829770446435185660628245486430566224290545572797434307532200944777057338823383377449091189160712260746111331448370495452307354256623569890920826207701770650448588829081733720054812352687273016741685947951708073215271416226841151477259619689664430780729888977874867912273227172722740573236596349182616177407839010099806598254843339283192372583620131176669268283399571559480099093294356709849637195537370509530914854596655553434768414605524403711977493418626672429298027915798199697617920813383877409986875468794451176637903304933590075313676120996794712763511517105227075452094962390186160388122392472667620177138130582897424677518069368013961100762855600454423076767605056977088203593281955883592614800198324277144277343873268650459411173716610757748443911156061404235694350499051432771593598770322833663817298322199783749648816278594731781757897820495707089766164267951588592602995910913545843703474780147597446248481826489183263079688790925977869287209772389941986821867531621118828479977732485396551174777285037215962912520147141136044969320659101546298707592634248465722265618031248933171727585079107700006357477658795985408900244942914259188216119484646323298081242804975550470695900854741887401089747282233051757828808198209394845383901496945841019328307362747302820625908723966868855970995952019796533359576525623935863196705220951599348251364721180907550698028571420136952632855516701329585438204072804924851213764309945096364883551188644209408484937597109950734998384522613496002655368407098723520357695059801596200419618763235323828045978211920722606504943655264168999517533654487570630194305290879937172053719130517040486641189861262804753276925646849295303384744673900848547367773722469730740940689606128833948928406064262221987363573893629222466981092297714110876156060841755850752172038036983201615047018484431816564066525162327338844201467528940232241105579175242148639289264054024863543603107766061096568461734861161462724287799555754347935626394940935260387694061619701227402782641756095076371111350037701223843356491748119728526529545716079744712101121304399966800520980412918281987586020900525170510926879969137785931715178550466117135397794057531258572639191100580668598375282754129216802844808548021410434415064477268318733395467444332774158442263403243800179209012896500629580932861848919530003187520923898477622087965979425728572226934956705031142651731339722036947813053403000807069951067221809526700422707391318866716940415992093004314929328305715430962231920239663656147943862457662539461482671040767554986958285851184293373350633025291264165454246569469727400917826977122429168760186471775571243702235158200786313668698072769479900201830479020078421621838224703132157971153644022856768164409771659288561139589329566413891395488276811799118950291838243694719991129909610810856905565527210686834614817147335021669177304850324160070536503776745750887065207723584737237252889328292675573308486594729838335013362036505192720945325645320599517452963314297472069732752843714764937031462281860528423994477664990381536459008253647676258868299786263192871082857058411620862585231720289543212498837409250971134555396561335203701007271438322890540506878606279161903371803945096908686150602557958511442442382466432517903069933852980171096238572887719092949108125612102940288804911963674406860106238935073582635445828973473631864621380875529828777836768107583001368635346566472491555905601685474821406006948572847025680370688756051953666030222555618417642336128035773941343079965219217426829410427204840756376423951199022491218426644465267348928423312320021642941837637687377605974863932800903934783673138218078813946655836651415398718504618125326572905426577483880403735020559797426249214221770977041684394181481961991325370304946868791831072039920280320791673581141485244835796724866757945295252710824332223022549426753829029523494478070481196466343176989808236829227069805443797886989193177552563051914366711651076546871130562867402402941472069046206602492516660055832457362769725145257758346052138312399552112328682038226984616459271476358983882111378623978983496497803217062935833723576934555800894005230685117965916707689890805710806281814904419543561099249722247998252037087491365475751482259793939591408509956432688160975610255977288029484970939624111374148141435169090000474584924729506894784474151053242739772265463880997199429216113037217795234605616416470779786487459121022995074438359342920581800913111434633284404438691212581388824795398524580090343160462147096070498287641157506437119308509629805529081082092879345454920387519865955095360044446349420595927163286839037725859345055111417156366639306280598390306101630403418756884387049769602003289618445729296074116320039755068271326118257987529086985216099340488815788843623844563800458659614983692019315810401600997843481956019073621076044733425585520952117856808727568665763840252354814701293047518955820045254435368144157927352728389016586620307638192068143934164801983860690001628065912626111018366247521149267118544727024440927225432195776375100944776165388808466607134844430248164809839260816389201971470218699178982185545639342707395803482656812052751481821335075853787190789466847793489965574527695725153344313915012349136858116670836632297711047489710217823975671857957499947746625935324969150986534538055638603317745778505946646860907732618690939359045571888062357306072830760292303400003741771056986821891745418321343958711133284243184601548703039630958869337192879333181202632502577916956261637744077808963849105790405196266779987061712808302197647403106760723780009171474385315749748494065931968662256254479283411154335803273408778418275227868757942805197262938619622976191940976650727875341112159108014769889085021154086722750162043666718041531813059759210836164599094661883792783743180840517815404818106190461539682402043828514066209045533154346218668714939727445205107081372628365533260235409863444293291860434132156205703115270060254109123243604534046577549413409128195170907724582119614138497954428270603276577987651013083231857807293868894433812088727750681735065414050527385609712764762160494394691699154139226843321441566084629912244546215193269948512519989050097138463021284219460441640337454083955521054397696725710771957405778240121368037899022030757565116201721102442826219608160319689529724083358810765218400310357004819758743657311189516880660415229788111015252258865498159559225579319590078487852794023865839572126685896835336033233773223490535711169876727408694683967382268916368200426796739130879743980884160502520284153366987782299281839919543650799806221367646168847467570295225924384610721920297425618684060208804777235471995732416155644612209915525091997100728744241479004115502235424681259835203761224960353622811111376174986777413132486980671299254265957310523539408080240305024359822601155705263005499731646353295760603226374968619446533019289550535371045839518831682526720786324830912801455031329851627842812165611076131892993730661832404769955825244115285768330632714158385205552254304279066375634874617480038586564256471107213705184939845618795491650216292909595210317076493580907971676864688293182602431540621978230207280429903670434339819248981087016654612146513787319316559046880463389724510167469399002635258908951807857273327442846739460570106524465486532080840020679877598882278742954043831313555703188461990722194361110348145564326162578384370556423963605866523230137575642835784742497879202442057104408997262929121633408910258949711897146428028146746308091262041508359974811372423025513904272539645179760912830063667603849555685273898134620825625217629595259111161380312531412874514637075599207366236561104808369786089227329081421596170167636586807330562904379910993839136286958696401206104292072918406691243205398790122475927322983414307414716029578049800178598347518994102956642016947852391832933810592239597902720056037778547551571714648748954207529097211272105239051922965628816843156732464375525996759231891390489288523749398484259742755707724899155794062103003129402302119432087762514483849913017639194199828714080987454520176398453586040929061944312595700976342464356715441767282202188127436156344298161006272166023954858222694350257824648086774063194245767981218438361737650955050884118359572411418518831181552042067213808900989646159736661124189566329017737822797733514049973235313643291053256888602411056348794012718849862503620360755030993767986032106377526593433059072100733885433167930864316198374113766237713115079688426113273628923531256728774930145009987769460123150153985668459741652046261338319658979675763440259419343669412962058033814847514994299747250610515548436966526644300008011479260764350263931400391880800834264608630211317518824962864690121364890512263013898817884293720726767853078432746319202409454962546013863940555658604267571934084650746474991462540854158384104549019314854495727345010753916322680445706207693634822919577216834531970375250935721583502071254524562238822885349130710055184829872582114395456136781595011379999139059648111081937241603635695731015666937070157737042584706634447807648501644305333956695583750053690674512637291146810253575691979876930736053289057998778438446361421742155699162013042814968851490329576733611001526092937225340270438732024439999165179271306364402206859847131252660928353452918306824132101385697409749031564730075668891723002743896486811785146455474176610654373153680504866079370900257666944472082055915581120397246476334007197102100139198865879202618715265206395517266970581012384227932320081769344469270077836035869283381385078325924536528147679459939958258479286318396209531579095236968258571886524133423445504926196322456618312256904241994696909368717017864644833847912249404604325079773999028791238192069228527513809332894744183666632200443656565989021964034061429388739696987162877323264853362059622010089559482144951610760735671399654495637716792472005913240979415694429501233036072483825529355975993619585169715480390961920865511848644965217514949518144079389721826332152302109820099307817162121237336531828661381768906111805075541870985087923243791619349225785895004160768429795331182240466950223851707243690535915431287450424499990281154181904716928755226428913119085969015639858452298777703553092109896153582776468856696651126065139042855273630404044075968780361500228367836051487937961266770175949255237828265998328687601442703511569296044361394931636541859069910345079321017736906030410877996851588441191397182062415106020398516940689618646672078439957637573496255906996226898733071636966965220680365860318495374560405916417449376600847278897915623348265208790353192347355722589423737635464721499535155448253055725943262623737537269694808285685270506018830082449449566171856142434634455812516882120189198317779893338928564452775115870534656836714724272560157580813910623305807098201095780445862509564331803329956367464389175406470285657517102711235848606206104248729094677259432543481910007464240454082675775750910703926337034329387021669678616614565346445558325058093619786276655267942042848358237414515883782830964210340016620690745726842291207127047747147013650467024568349473954430560741300356509779599369685386334265242421866661439285192611108525961344781249802122360064755378750831634161997161544019995414922651267661796805328800077141418987438091396246501081582331649795523708791512673320999212590866187887949670502434576932865971081977904631441060871165471134520230845369615330601425653011587942550236646344898154465573030434262886548660863514357384575784141148369504412518536470847451954232885708292575583989704042831784799417075068780564832331447253432201525243066734861536001476413399284104146548838287892043034136412093223299027853155146394976923328585871063933942117698217431660404147729098652321459460075252150927247248733096623645172719315714178335731044215267293198450708537941834065776709759299557440726222845678760744895444002852849189369481490201848548565198167604499038551886086867447412923373259932308462878274348406861982185146793782016923991049232062123880644443778113756922945628166994969548242463772723801221362535904882870530937694792328484998332329549853064008652562698165365009930709416366502248503971083931153487888727295719005807190206832399058695636246272098816217005223364420126139270515220113349577562148205649984729669870670542577122222469885275813980514651351112735592679605635527072596668309125878975383591892988495803119064482274844523428751496594419392998732137093341348680382745025523656658083362508023903526980908570191301573737490370233509401834443267680139319637657572534360097891952790337558496207627384130792648286679759338349351312904475594285226108792626575222627978594164915573519690577042952617958626704888029728976219048611935170062018236154048196956014054248364619410056575365857631199672610700597033821375838403048995956705474250711526290214273278315588231536932940522193134363751310220211361770005402566686572163536499514401479241091225677425094565240483823265324076508184079588656862724748354385645419344660528086907997623460075604794995952942389232425157734812054333178337939238244665383708435813952194481916494485015003719822452047721865413482457262955146174814997984849668914470397952288472263010268730419326085670150575739714581367595009682539834359491264626472386014647233936450825541368658783762100889836187661002141374596614775868765790870515371653413616614776479513722863445480382063505450375077601445648289027631493832581159033876800650985126533839023325516720869032664288271095254401312816701839670736042024430308523365062564420278430085907660532909249348349256164316049251586925465358152626146911613067429558738724888462718744320680376308460004941314328010011670390303794684613885274973919060472116289953407198619600243978448802903176154148660164936777055117236560900559678089714128281362701217498672852204082941169621964552412609222429102447482213566582413674374265436311040951482572906960896030410799358609224385093159101560513084854092497229911847942452420778504151697040719829733648606585047686768503148731695010819061196488728532705489938904235890754674711773432147050303279305145359147025554796497624459749413317396608589927979204095186888807991522270822584137587901388933832144641332822820958203950616351593119036094594889838938293531063761955596539056719487973502267441800701734714396643572875448478562974810510422955951517712053929165392934408074924997592890997256720341359160999969241630372670988975374131528061805277486124393970942344511157776812129307743886703645410786612592763049208680992205055369806134723354041882207736611237137917634286319269214393995332830549756973399982484493820583116760119000757677630063447421305135681023042388812753831250411516820813697484518032930410969512404223449077004343083859252403927564324712598356590784336168905722302186998490098252957748193659061074319561188273110985624026509246108908129157962955291658720944927395252102565572825863426907841793905116210317395524322101919965784351874292894964431054562069599248406933429229976872101057858057497391489370262633574154871929554583483655617362851496512431574494254028676447052427198866083623763645256359776571873311492140915309713731168314254430522212099810545732084144869221114875079334983937620487839051578986455243606114893886365661337320027878965229958298737756890994100483797676113546138565669451815976521629051023668611162110235930797938998687813340554001140571445679881737826523360641339808803930143015367354833923584083277578309609918653287060070262625480623470978243688540746446269252153849509506840328893503779380769076629778736817238061741565547742444599877684365730888363351628522998717577697036521341263952729424493998014007960406258027777069802573927588178875422824588565936072885859454765066565116771891858241258724569482251880528022155764168921056085469224677527287345139869416840646341553455709098524904483858778850911076176616146213320376705490628668049349140306219537401946641397596840433183680045952932536132378882066247010832373130140700700142687506158745800812828842115112431435298351641418637713033371056503941638546100277543942185677678466550300536694914366108825233179796346357386845597242651553085534856623303849112303398397052045364428313308492989541476813571179447535064178488311865580402694064586781551325796869344962508095652418220504600680904119193102316996927419813102386026235390076453894139556959413194987418301282909725637310113690272793583417298489028491327751776430133685647289884734098761203234945932963445803603996282421332924415044522654912022588142615651770072720387828657434922773200781885127230104483496884673195926878103066079013248823465979438738033434104026517304121427499586210788731363044371259575278034942556805043313320342613981226957157318123853841274622920722372637251757131917060180853853786864395923475056652577963440980597744610552177110333825953787498267289594804293883517855134821792567309252014329103435224894313823229196374432733047011452468769767286821788206937625412148973482536661408710607862286038933249383803752922973402374820149410195174151069824390261197143686846410761892190825703292969613499322911763328630817604515345729012659022429274296440177832701966916993686633299999184979819539190391077161002611831176051662737875789642796422319470455339473794549495145797075553813384588837073015254016385596108619647295914148691620111995655213891576388372670812363144845220680069017190463241500303781751727492752095192925559251104354137807582577614494813390432627309915290803471686034706474211150702926496073800316015177945158795042619223875593702339831105158294215340101491191953835078439297337242824768925445908560131908423885736186591237073861177284454120757475087934326674470234891608119133692159279225404392566301601823133283491915879770176665264352338735509781145655051699363096266613183360801334581060636116036949847311871567645455041828598332836340150551745602181836265251486061737802210286921133675937383595193447536080864964552221931622672812769524929372104866686962216212856786910107876778839094392655337614388950951522135602241369613631001563903149730365339696293979748657496622677845111870089994288477747339084881653978403500296658881938604008371015701791842053705692725891438732773319715849070232869751688897682893781733219994432773364663949520886415258684476034261705894383893932962210701221971444349845316102327941725359286875524886605441768480414329919404135477628720455065332801950399722654515281039100716822050183870145759338320079554361302136007243467403296474274744764855644538181904016605380631322175049418688401720616823022949517714281965182759679477022082703590849944751356116217205035755621777595531608988807201691676140106467711773136963566667963809936652719348196439106955278522689620109825658215112706613195701286536080016909993931521654817952972982687167314954538031490613713975550001908519562637300212185701393038200023574903928924217654343000909232300342407677573956620945972604140536537294715401362833000752316311686939219454855496488273822748151946554478898832118247831262629657236458160521096064391131233554196935050614216390707904696113953495830844213464960658209500406041086646992404219716462389875392167652365258293408029449527729571355970167486015408890132636122386595085319864473046047953413564575392493857134333136129834407521801842820985495432748841666031009857574172500219966199785995187405538966380945761142421389036846144614982210120225580477812234049625726101509272800555634889018417605874724441263353743442697259147612627550454929175835639664450849745281740098951080603359815121139284928859265756958141467567035608788070840544859120814017291376554822559618196551202042609609287596193497126699580349436260178937728341095126498780806697012605019225620865272025693768209713880834878154634511861657959399458853060097428149163856792970816125646182605445204351685058891068943227094515301411482087659781678281295289695047808346512990866159065580834547821005908161869944340266808606374596670070479212536921381649973179471773291190271943476951545616287562347135582356136405393179579063439608186957082770609739964233420946105649822925436966307281990954018946032708387345251300489932428358118892263008689471601414943407693107614831009762207168466866253758445116493597903948101852081081429023645481958662703605708033035424786410646110410991364425447029739779943138318184297362539089905552003545628304843991364444132794862041812931747028726499660337287403440561899652499696177586171376848947266123756560781323114529531560846652521164220019309691966836129186432691068414209113729499086552308055370084219222340228381406478527196487676447529534014549850767534379839411903071973936891615502019637041363989714121925841254917660261314939982250725695908945534245972688257440382215801611505232459618017964172194936590443653084493348124185357628893106998413771735768539342930977739757543564552283334817949634679559044682605428235865422263752634301995129144052541141882237451203184334764992877130853328544971233521660974698836108906842455108553020265904586220949365681320677309379514086695766478837168402500881674811042097823108800843694483899238626349265683801808960389399039387875481250849546570120289348636527140314198986112166019567950455317425926564525067968141656222244677892048462082824019436702806411586439399881809884272814669474738571353220396941553048464379290652280567994900075005905717469333932133227046234726699585916709123705116920398177424852333916410434036543154085950358892809276769767345225954470119557380663993463563826231568497927816229824594321389629258783949947400635964675331210062102450077556139082272060986611307152786988419876386469108365195851054100050882541899815872873830584808340308201333481338724487870769002011143885887379978507772994983069455561474317093363622379595501853479096621258695939034264115976634132866710340257703875824104002097328121656022342321030535441571344760784803773601298389729770558743491199849117316473660352778826831112012938556385693941382305026466079429187287818972927816986006458965170618510078855440621407841626083977850787265645066655916100321879958585493726125693812864121543351558078979870826852476075709771395070579483623410519839274569537258143570552155903364839864518724291262509561662292239211912543842858834480351653234496977428003057636126531708948050928739543592110159833771653663008629458653446641255352575281362734361297118972367736539041123691967925420205726082741614384936415210699548799135805312289353377064583842457745573039336901184020092454448858174966628573418057449282048662150267606794421106323484950516434891965723953772295441080522240924800930310308152518406544404490519816609968036368387448900876264434392444665897270825218117415607899926177564414258770867259411593913579582618867306499507747408825909410430020907211973004887204402534077740923359841533027376633296833929154025243009227524697019008582758190607047011915989880440540875442066145782842847488459075708369032624846691708395965406198335239749610109503341576949217381725910691763359320961442654149018153311109595063079444701370800873772367971056669799411217088883271453496795201025301668733012857617612191972040627791365864373406222091055873708984871609874769809311895576650693114780219118454601550121040113972437137552027033037620655249648160377758488193908344354892906764339670954167654416602313549637450082740248817512131739352140268413473682997265620094421877391620966893823124771778374348022113066720844886755126858884083257571356006704351161057389183420120545909098007933602176693006462410375837508552825454808490663152430036497143267972266363319199311265443618147626531802892715228624885109917859394363484460335505168688943570811689436098195387471168492085304178008868487573109281693848523190513046462805356876824388121162875337212446346611228617992920962332689840517408265406149030299398143688768983332052090946122569285524342941745172044271334258264814877552636535447860976401711842640451917214221877415314295142412697875543970768575189341549721439325334863695640337962470110026245661921094826700151178519727505449222726943082534027939496543363665719631333816972726950268812591273051233152581670666876936659645712202204537089383820396674750205604839400366066755993998508461522632384379033005506680540776340411360404282206702086448919129648025855288305108567070107790999892113042135427165536218395651928903545015414815121944618537096920896275210940829043072620814617247548596870147045810127257749878069186361201167147201475661763597073518142424533196386609406191263605021774336929068695086682396288985094482875700573774184827050560732808545737720468496339004506338893022750161559452695743809162795322764509268032900258000342915519909945370288873088395994445579886151480228237465972969574228237790149272764307141379787851112169262618484852323893579335395398177696308831423639703740152731032661753279597118810314900867493357977346262206143004117061617541210123573193014527510528003191470671148433464338689123529845518220881569044200672878590241326349929237633836753561200706957471728385916889576131580801163362171533649370026124338723053977501835133181199844582487038443759537922552077897648373822608303949633377147523766861269698013218702300740785282087195416333765605491537640574648263592115509049884992894340723724574692827187918898036072584727135452056881101764798391303540424993244185500414352662711623807940792014694750294733173268615718736420509497397115210225347747640665891677745847189760315349729879017399830402199780275594011198941525739105900151337258853832197869421194457494043949849326593400692978246251036813580561914908748198535806241437149863027551214340213696333777102133838967108654614889719779765825359818660290581030729205292516840407207498395367938290609520748672906789787286456580768436231257497221681366468139536525633056058669092816274062977102800159688393066877224292848904846423490173475234819632952879983337609413809970957424436501291792947082528976688642972334160562326724674335723780749319544983516939887186539098764882245027268211290755169619657384741559874615431645830470385644624977711810442061063796505384601020045820498908819809664810117138958797435798456328944620235705150130833962735905299120925594897116178807955413723392098261526117496071195033371980490824352077691143965095207597072138247555063437482179246936007198062894974883554988689589795776577915207423242915260116124197416114793970012054944721745458693469923338954628681773988137058733349117618101342907510228518719064822645227945763106640613476806927291446805102320136050618303680176635087550700997207817359733683500201902881064978708036558957655701602256136648352338528407699490561801324634330524583415584084360031517880521196935874648892065894786506658109304891709170445105307980968077769538145767608791916530779591224909926564300099704168722582024609382280787985142179740547644180780464472400810531496245082605454195088898878790623449146802463890349831521722403019938492227776468600732086781529405208431217409168189869759580963728143352552602382248654252304596839251138356842105526400798253054011672144919761591614149071432659697444913604621232499808740292884314744562041537195053750753306984410834930522843461416216413436482105090578219412144934555794493304385211717852107743027274273463259580439332229611478625943063794754483003558785484877680351865241279957467387038346841920753131108551667224759339203329294706428556400168648314375789582535882429849056671197695742054835190475497304846261627953818639768804125149776267557929781475905425365152217451132662241542457312567504971085818159341768271451828607171966775366576400871583723954994184395091881394618731117054079701101115019995067359629877828269052125224957702150817792578516910849831247304463663669196115033856817609967934940819344737099084645655666751729400146947775117865257045105681904259760968516938373035915701485199182929917650218373603415952631381216215946702687482362566689551682677214205583448376667117449870828183337934067822366787619493555566173945568701935006600804100082596219756028624106719698383297839471714194842414972895890454911713663613044062405922244715078408732096545609782791520054696072852758908041040948632212132480193983692740548502277142479562569207389237802325329333890726711781929315365164171448949713715494358400043157293557863707260005467457767891453191499057114014318266377606072836733272356147851852388186259105512153099259906861313476880959290179065660147967109624067401921299301253991023977844404679001082066329197564891358485123830529287927616451593087773445538145450084539212146781741544063154049884802886786963744920920833814165402798889465731893267098837049400043393365849067234753405724859511266967849354739253264605272475616433813325712796085034408783819726762684021090988072049949744575471409855105385656518265102927960818825642123824838250845464423088539404208511342297895263951754476034001459449722472486617145228244008483640477563139696587326648868914536650987506793646211252923342921276168315247744286639394694932903230856270371757283035930089273461309924986724907652873703644891770257161747670197564397346639305182661098333978062135223998372395589139268010544875275301530979262898085609293161467831313802418192403104421351704320057776888581414197458640863660332630531643740563933877431882393575309387826123077020209791536255257204719953566418181035481502808005242094500024609075421373287773101071918693687539151609276661178668988346759561205455816272229680243242248705541471966370989837659177146304076426821449916358776509219447158510884729942291919479439594038089383155204513667810327463673657496196960074125531233046210673850890445150663062044888165285707648029319414988284430025773763806630388346424100053471272151838091497966236860760103336373581845742151305733770661121458720621627523825519297092308159138306642848218578580467711702613946072428127069695716517378853788695755741644474632765966202938718782262756840782390720021846701044205008719030183278586474114877585615965521519455713146753619781975071878680380366778016835356616092530643598033481964294520122303869419070074113082523159286088029859972945170382625778774046982297970984511629806641069654183511487690375751371537412460286378769911805339131511250392169204612085766275057943000649961368427765857230075214643477733680575271764995730768431952976709037741103056178649484985900252572908976896300395744915098759488846690265723975068161626338990882781871034049351278276945266990323034134614225303158876061315040343967906193134161726574616362904000602218352346083250553588754724913409481584833799254062317469536585950294722089547741885054962671746905023702654111233551026260935660672110213834245307348164075207968907231538317420282024607960759830881801257588554444411879079757661356007033830625275142390518179874201886647217312962280230211219650743983459207902518388659841801403535615743885022329774812957549071994311952555036537391765400895552420625848206841911606048555349117072964000983207958228600522395866826623695861239048549687355549544107738233217027230188204082502436910538932258130002688259503575786859237795032323002704710628968304087759001779351659118973129302518080307730236652489419125643367381725163306264519591732261656577926944386493195361733560739358188437497767852372082241874891972479371926857941300249388354628722685729221145642465263565446327531097518551986481843494017912266012173082064078761441230582360699723681998610004906261542111367435576150401401120554943023370002066577401399659885936631520262438107486900549773612793877534160910487473845703743088368948338945321876328523304925611104955900316501756788797656815784501532726968216639486967571946877376991112508752840395339640111756129990994337634647341164462781887266466644974080061471121660315511592227597851242974466322651146822191596959116478416126071318491115732959540783974110119804190247039447638825068030109771338221980100576159917554190869271031937700801376896632303352361282287780501637742496922306019035400067622516127734969308828723817171250703251151273571357815015174953987160041127937192993418657841680033523125496198222880483645714978641507521175423292026738822074437751658416275860088151092171783693803468537526060287195356142717393513231705434237280299630010881528758412603666574053449719758975784450418606233883963628156703521884732655427920726992334759097223372617814902506772314364477746810957846277366112756780008728895238850024431675002709271303091852754680840584051218133421488174757260840849261742277046736573261240284253104732160537235889361523500862275305308610089052443887421221995525949119860808040796665538854326880113021099500970274504185260319068994438017911673890469806056069980625065295005260372206841887720908953941073141997322583269433482813009224760604627410517984885858649370878920240162466043118350427747171260260064597574604336581237369193237038861104094959226455337791756508506665254966191652722657462914853823259144655653113903190419468660760304877594256272449794258768573119210563199116698879110025996251209709799562095208350828528310949126260143916998064035090064185515127138056182914942482859095184625684508354607674178921365595777411034304478019266224111742640288355681945209776361441774059809871482290811685642488801446352111935002200080432920275856137630526263359179339623556470821765713450604262768369498261841566641656499152759655226762131939246565559026042266043689109128548287975683503916823782526449939412200681450086738784747743484925698222237510725517215072838347923782589432905102791484833505410601191819219583835223404145168962758558253990616027987320202629876867387637044927203602069993825418970157150809187159821686677041785125116489569134096165085281696832955168474366584143939432839600392141676501788531515981524105709023164220727708972608180571511811392893299563305310034842177557969915209574218600868809126552015567361577095654910731184896402629447224997764206671560250106426438075905923805464846359299620065493644912133727717322898852828296103009831937970679166775753780569390294068997242910163345411234501368969960451185785229841236948985421923377839287884191340668090686683835800815369157425999264833408631772036471993738117852292448610419996037869830678711177681335867369661812009878468576514008405960826236261631698724824381145408056381145837269604590209649930379945812419944807174265826419137151820826973727190487320975350633573230414452283917203171256562131452911280311775023417722300588085785474710588180210562021313423605801825597280548899936720920065493854147113515896114881426361333831181136291445846206502549823547185908270390927814928908157105491519801446085666827515599493100309325219946089692967443581402509669636704246633731831102261497558418170245292472007864516750577657168795186910030943118151292438260863030084520818200026992059943603796286579182495235047663734163045796465326264516727959210757761344763796328735804029952250659091196060055197400670304059863998010783566931165451823738938828505770070547440685343122116799864337633718936953405574968371173534711431171042552302133313370425684764193368012132429335769720351063182962483911672628978601475160415093531500940962708630864354285791427503066223549350414670821708724958154105662003605268626024028339069375140290470625837446420897208659363972679741273222473474521957474727824879709754997110025801850242694536941669505216945865800839972725821401258669221081026206766875192439468996096309691769028947973959345757406410544835705091064840292370974157496214531975933864286809122593881247183416115799933975246768317424104382670034736192733108558964440894580622620720065874704175925521916568360870721215896153505368714183952527452830825271187745785770492769417475539352745980930913662163237277008480599977216697660926873370103286304693400312248990268699108352942010636231740316276296457062373277347568475904502309689973450347696851384367837271508360075067371954610369221062136684702939400682832143791986722609999157350534516280118028665702219552699989226954270448659025365279660182243580172501112225074590401384162228914090172232217761731615136251662147474428453528974491183754644405800861006847629019514850272070128215683367017144668188889339502930930658557458031453402673917936298371323637512304228134888176879611145821014423639210625470694836390775011592254242267120655366254508189491017249283329256859643682313609591779678847030268716116112398163624667463619600938470262367661219697462716073761731339180970025278698860964063279739755481197039337788500715087240615382028542946810529957786306168455747084946357954070575697245912864531260790738470082516059882909352012005345843341162110639601666550662171460651291631996231037541980401254782626210364227680563294775291345797822406202741390961441119596582041139567021283878924246621517346758925495440247029672898102922484375000683733175735082582628249276401547034478039878698396235384093300703292363305449087973399630337732052993517742738942681035472056879921321095210511421236551573255531208476364614733209799774861006093695484900107052792229595722083749189528865562901182414002689845139015947904317184638656313847975831997979566346990982366314147106119545417441664779676714487633566774017276686218843657479670494742351155337095775854487898702374197341375121759795645161449543835520054212389276245688128739984331251919962555403956058194538798477676412215795477951139049125463504945946339396569115458582434414264284528447860665238276482270188034579096837411289828240430929598925762196462421546002041926786863248706502952483265603511142697939292186871532780734133474919071762132938386067356450304706628098614106819639070656039521364257636242275261653547325791076710564674410399173626461475473355607020885550263533766624596830710914389202792689910234931886913358745801851325769900253610596261098223756422710221895740091363880547215781384924074249623517934743791358971839194021802621397107925672536333940577149424293735645898532133399407813596534180147884740636617459959196400111934007641200157837450084189216994520809293306264938707339327241923668129067000586369411809810103402956581872740893941570086245280099456947544930930630332464842507191149349013419999896808608133192121708947938148067706293403925312439240119900454350211576747844254094105646516093050557454327744843379586882699270879904828411344117304284260459613982436200005981325689927768851743851300669388525433152792821029348003174707986090852010985966732725507260107575331315679469657714857582706143841599343518935335787857598421918859081370042862421189421454405441110668097018507176850502421692726349841063550545241399031521448449632603060011299958053301027809450823915979418067121022627537434785360435639108548603322129174200055276680838674742867895065138004372116679101308897538988386214331146257563350500970390308082874841040173209771991188312451301538341183919877943039593642302437443823329357783013893783100412761715515231363189125200343414920619087348750443707031066251604509740971193372441818042622147560017096410363048551638271494245203323248351133106323495717763796762504850576957416525897112669527740841062855101470429203623068306175389712014061881937821366247356292911220501214971585132148035896797467873187747715594958040642296468089375917586397565388359994719999122457602102845681208131791134040176654156025476485880261521163285567313861421782101660763800694739827832167954303093508101307886988020532712533908064829441343108854884524330335758048527830273388598441050984033298476919800421120292159344257334166194909312790040180769687245320339970164607013816274135868514989044374779031153142740337057058367359953407851024456363106854957269059808484965272583668447521219795706432816833441933138009755755317332243636233883550604402587536513099490399262433393665537244609246769472627391561148478463000209855950602762836481262321207163478620455249046689940321234350702447254001143869854566802276090490796176450066699420710645488883520254358028412814356698173287065373043584699392812850740536385833170061166515945874025614453284131973318028128715855730732322016036245549799071203252557343687567641259778027918514818544839183222563016148712001718724983824036979002492600421846100027464835840584605634593250026109064350024022567890791127031566893191100797801754203344918381916847333883462573897006750120993967575909860139549178815212089072709471884295387631925108919729446041622733708543473927541264258846452215126475560984622813380234805380695583610938408174728371578166489558746503338476626031404654645785024113997277024244135047659537238082855922215797403855773893338404306638642143390509780981240140605171356466564045542843135063106714892465336627186134916154986827230671809079392183577311661634261489979096037885360029059616381763154002711979015150103658149475723121219272562913004988334854133268322363688914873307231661686497353020189938347165446865817265577472590462795043113612594523793042646146230163553910328460464828830627793304248178284580261697806879071374215540258907599431547305454636620893656436223182795910389365036997476225881502131175229299264879563878247132546402993483367808498039857114526661583843216919745096289505531769923645438928225929464749842602456369632797124748853278099050639453523556275622313526457591098754653478973888046712741519696973408358799208094907199556549368012168354009759924450414171488966803053120633320962472919818042091945444028381938353043394068674991209549562207908168847119861016745675119200215071000125159972228517983079276254809086202857038045895337015589332861973962926356272051983200829370031402872572290085717636787602418567342273988691735696759327063328562451316881031187266846116581744460106518723764506970495433744884796348469583229913886502076643989356366202331325600956084089736430498953261157536965858858403052968133790936154787066267904666637876572487059391926312292393431347948901450029821453314517360503285739580975254450075062514987656156878538402260045395048490823582651702833699602379790244099178043805602643596016152349906793689380304558597451277575756515169555048104908643321548651391759790782012570225287979461167051557879073035199496041285987589315299549493826849518304351227973248936208536726566941730596227235630572586649758404050708063687576170243532058604820182512815748705772390906877191197475271475951156490561899078089412044420361886331894681541693569808550655840059829563393951936845020270699346826192970170014916844733605357258732393241031660440269034305297447597799972061174779426166473313141058309335233702639016705337183593934494243348455530252742018863907192719216298528155532452302904026716260938072688253170426790275591533690721301277621226269175232527885031555081039061643709092942278791091414561923801617458445920824051230123068548696768328225395885352669754958148369116651596799840201385816877079174470067787796999267560698756854922974768209259957377789353884952299850847181093294584399660572019786894367241004386113865157535681214057212839780608133918395251916920732208452745418009120392877382092002165870528216939898820356460141702188214259751637296785974245240439854377487681029011265834522067321928565626642811391965108132024411889174919965547433683961336162101688834754689751349721124900430036924221118026739842632680780384084633982083622036467309460967433932036755240082061953802879056921955124095896502952389502294709926667599614224133322860774390663037214854803940278411324695860742526871315307915197051654830474744185833323314344816693865579447798775208974770784456801968819871805992475665782401405295905317451339956275530000212945569505899626516586150666555903944175570636919947828506585373388648711046861271054631694692753881272414647778300798895057118543534618530214042032085720063244111438969120294639088977624589781414648728592783274140553718314820071584854508751483026667443113017550567391544822100554831088544412014629943413608116693003956567856672344412189555237311905967513484294651086872734416784893186068730464849834317339919069281859579061254329889416316432524948546817049515606746142303392724931354140594603831403121990550852382517160205950177254491980847632694740940080454945869717776250554423884989966489339530800636390445841503992707215296776854458253520073158844928185960545203951104121588204227066503300692822840769244355850146383094853034729175829210853163700416854248092134043796857977670485117029266023475801475268068903773797586779732276597367790498876843101905017147140766747724289263671785239086888020106558308907273671344781139918906841437838102463362572054759195549356746326490360458014966545271908283699130645366524510860891861667461153122641189812608262346533216319243469972484155156182644178148022401578267708111940690057711615761784708078118375153555302509923758197338543362965521915619606603252266303477937811922787430430758373563487106589036343347100278036375159899387436979828302567585738807908515357772646633448732833020566450581075445286450407017300856378824903899498584363792856909217040973249440750446458973573885139382494351087319247857753186238772241617631906492206422143847387802399697192538287610232951320230807277843891995801433348947789403218867777871389399760731870778149328919659487338544231300152177770616739353877955462465704428346617005540011302893507692563068324191299185900295348653452814551479833619284473500382377244108885380140803096281049723066273859945386069208956066791177933379866865166882991596087634306690070503119104977858149100451916291070304056095271478201176503535117263148061679631581246569350383585453977047183465537997527514171149116259044830237672945314662720867094109193010055561800501238939467108334394140201655104915037910709375251131779168764702901141988142095059932775558502386153590939300615365110734295969740093565229223316624761298374963083048197750729773183591859113998728121801570722277141194631183930748020948059025046260989292731774253360943714845193322423550499944847567808650172751499765985386197442243872596198116685838175433629987608606168251165958601578168948747698382633527932053521735215267298480929417371937661477153130446174219247110839476841128501800877234956739505483478896691414591136217921036130426663875389712253319396142060266392760169380526904275964058721639592061735526314354570401297498564075946647889540930937853404698267874249422636826495234915537644332257110054542733903489529999016151256561495709400575650229954976170650298132985271286114936296897632950936932709683094409219677140297300608217661503808858901375609335473748048123490102269139768096170186613926807479825345778302242099119066820417967504228939234664945838324937871393111577852997764275308521897675339477721529270128453329841498790707723284575991163974886693054275948359187588325924456528607699359072556165386469277184141917593687600375450905614092706406333757613703543704876123091040220324512295190814162528923885895001061049621706542049843517963205368726775152230511039964381145322463687064691345487606015080091800563792025478064898679506953008624712788067449213195096612935858356683489516674221440238531119468645173763780668172065749095171483710035155243710397282733758092388515771835185042245855914266986951743679900034981933520811801621108833283648605242367381801161165038962943157164847618493497206102441152104933796846508688368938169396246502681066356051886277328377756799144952538649709020657645773669675562059575995912625199329719240299322019447122369971284821554400502977143979613436764510551547905969276133461741714434803849982957574204869959525638950006191707017793350334899949238779081444573256524323621667071830237104850341311714124412652237327752774121943265775141695393445682100699224177608430490318552110255041231825817711389029702001735326762363084723085010645828376776643720235973725236133882030965720781594883013446734674394917588672556918420760759300097410688226483502993507902501389146130055231859054501141614048584282568861659045082995224431084239083031542119754436352763647200807198318550609436114949959901773343726100106392345333200530944812608952590912288557369625470417108941463335526282384930435356417692316535677748625505589335965560283990988463552622707870842489159062194228847753007893568812676889474957090971418504604738047365783921842337963638333899629859115946967064002614242462907079559306881172247623692090829039299142727433467988435103198406571051402153921860299132495449791209280793991995740070768881753891364578145700985797659804796420813224948328550545077863416607293915338092811332404656075376575293547450719474752579558178837248443601146968838446448687743039899955681111490276388373943984006918585455129729597276001902212841537890591362933668305697553148078154109102954284062637531721020044284577621765843950200955604994150708692605282124446476790329513275105109135527094387969233741095599310437796576408456748023704074892007606764816462982277570693574292735967404567263716128402769974789456143866763540216463807255649227015071849512610928565294724598312988245744123036400212887588337274179853994425899770298820304794596618687355544264033003726941429682070447379578391922086943325345873413395571340834259486420412977302176151336199667895687863348677281682386327541178020134308391551608647070951930127350815752153409788475049402970584202736682287632941429504328516811034041900119274676847993348465177639227398920994263574678176642712155457660522228147998013559774964718794996508958947920213821847640416021747757794419774372080644482895084200689050599311188531571293278686579154927509779339928625926764047037500520011486688573147346098362607292515302068897201040074433052570719284476125103236253489820455249443663122766705416239189393651594486539531381878231138446780802625800300648525780815204449495271948642079353822531306579351872278283181983595300218823142867347110956844173064655970278001989306997584912546769704113985966314573232714978483712804476740693420341593894672897593409294152718304681706473192791296453266195339403216164888926159365457653778366076152376468992842920279896219345741996914786211708166097550661660984504695004770339634385624816129664723001174544695506041907441125390309257478972502291447753738311926503938185754090046994967133922117580079527968463877317567062835067604201321770785047214215105543557157445398546402685813216382724919528120136901755879281591616610058991661993294563193421892430815754874842676095204286425724899723646459278617438237828143807912200486973244758166462059883488853118582330538566639043392203348451004009100426377979511527202110709546665802268532059043459653169474238743556537550868656384879744517460628826130644004462899402038309859337246639493211869640841189087566474676510425015129579200369665592253167590316800011566225608979768624648269484642171775207620237309116120181265831441347407175928176314912566117726773902854520544483264209078789354109126605290356418513167026035557642105569823944573251467087716177931624255620967683431224258950498795677054260702712812740261463615040118063888772366604433259767277077720412844663770910903512874033287635364891359898013835746194534583416962006603254697251875815562221405352266382149065562480115314991747478764350804230233580477782273592549974129800789295333033339659182667075802464871420666296455975767423645180447037207803178584657713840898920268493170737756509108884755901143802426605277436153255021761833451910159227464868478559303691559365894343497806709154672991516145644878174490569739012290378339235897667983046554576067344613274894160962552799426714433122662484066549375374363518800034223264389727775641044149828341669749937048747508896543132425952401498030122976892856208199448860462322768931043757664096679597296763145550204801057961407092421319937837450931912997824117902434698426067513692742585399321882905028343250005177729174135815414118172143553561309502297323335497727917076718878432230788979288355385378133482501178977306016092955424499938958119939498209086166701684031439219646906077755831471838713372715802221119237436768808436200694431684507509437589379372842108017468234432397430943028477246132032081339258521466090912262555890311727012336262558245464437076677908683248904670914960933967797224344101582171975653019689053760857664706209177172073867284798784373248966668555508441488594489054457813888824800591433139287284550149639304496917052463124961813894307972090417431140887466754846425084867758697241948393776005724285224176133910857961011570339268208871815968255703915063688051258181796100657479445476818177495685137535407909332963182348682234132276661876831797134095641811510580474220336632152190268204706127077410059504322431424692358252236321601834362061355707004989885671227489058662350945336645433474776106431817460832915742495183633401714429633013609684377477445896968992988174312470894220706898699970392167986791095066219863483910612270311084113067439376452943831952462868493930688350235087692730426775320103949941809163932970087569375620610647694357436482236704356180172892630123955589673744286457227250117726990929320163908574957276051011900109510084629159240508527173264584410589541296815994120832220169385716719628699958189931006474725147975625709288202507857275662408613640623563380114894101496420053485851383838466921515361942583479279407365036381346042378086849621979628948010598305180770754387513284044260939592717812096507735707023146464876159185502278377318579751228483897902355881234168804124843509739241228015015710500441652082444145566598511022265418132110175772887034061275409845865900399384707087296010580307015619530730353169902957217648495679132969768521977111252862192622321545482832549030467447726740791143917995539663431090161126808828103922958420964603663112542883860495080208736508653831297455262238343175185312930477775549206709648892165380417251837448231444896924503341530157211462235518468691739959494902372293213485351528877076504485970780402272393497412342461893080962694030723720076918020264131781723184651405891029773615073198099011833667291740050254312710325776956655989394539566340479606077907031416373042256481879715697606483666540944196819715483082873240458119793546695817889145626129022104294112221787993157954976571900854767180773637773942268913626759014406467565526521354104799894761475554426976003112517086139241546301321703215965944393399129441141828440303084532851084928078409491515457893518840508819938863388287789684816966425391477662926381449809857897565386337559421035767874594381812030787948285855484171865077786198234864912538105607389434950397928624128663628789575424809511307548480125300499151262889421798561890605751003320837263573583822622304694268262705854667145531073773695625936867612408405192436239160515903986710680158792218157399911890506964547787509667463379214480111226748825068593730256763563195905304372802076929201623086319069155641921511678527011484002132137357114152433925691522588990793097842291510849282469960577965395061681684936523500023871121717058890170374299660001660257944406080214133785111458857773425928129050449402972772925032145616636517960041035542131997174254990647748251199280376477148757354895607674958563962260921458097664199841125392923477883097267443573586505726452449024557702297532047015903875871986467332966688746866263937396287372276578897112461664283317660942472934294476205580738593827259303299665942429436004406022070641475942183384077187813467842241843499126549908841608989359187315167264053299906034271843839452773574425261025005340196013407030178221626287444084370667528277484093836256942320242186141524802229986444099385396802275944679897841171074596501045430766244491565952654378276859982232435660020875410289426238768386826643616416657859129240108976708830865135181752325367239901051268316486627691528964891546094592727422440697973647931721399118260741866542725027392741460609067236425675461790620169390583334646925716641203495242491824153738494075912213115739577280520129361589200137275288585140815174681982005140465887884577255312077068369844572891039658034686142519892462659487449580166746860500748435414632964987298171745704642521713982456830389653406709218816278393474966907871204698146340866673899711491149265588739852056310300354139393825142366856536923696226340514846368492859613121028715231956711850590088936129513471914037418138703006574033148451025769802623352479691578571250271012195113107835442220121516623014139384417193305827254887641095756575953510797050214676702149473036770399419189338407052600067847321133197418709046699444153443381562720292576785332432990870966396909420306152200024153483958386511770461292894133843236484424496697890156705555372546316756470161326295090085144044142056129088482074692168226833465139683949741792843044312266085659620306064709536086500032333611296964846060862972144195535112089572962959830082859280321977938882410439283603550680332460865327545638384570243501080134427872628770564619047304021010738682048167100924910905660045189748841995777734760352952740017971727330974832848790809069832381939049272636243301382727335204982654570886192076513225071808959387308198061533983729547575850453473908011050312501627973430483636214946045895158400264139012573131940251624926386993490449351500335329913015559288140917284421023936109057142635497519609654931000131509815843182903471369431842322224090318013082145984266079019666170228571681537750217937412197397220753436461034810538275632058859003301618186298819993028435906407634119884199794641246957981136440563544921891739796669838452925813457674448005112818338216508940849883355954411776317656639752648297914354468053010850282477823932891830195096253901680529211156730314589982131076540098302442708008456227322175840698131578944363182039917485130413440945311345103111142150300121126739395827920678071826962544581492809120426295565047268457432118532056041881986756183462510628545637473511468600771517193915335949544720357790491121795935451510113430932477346361399343279166847977667039292655866497559434333892915305801008105182569690360220034900283220332340096296645998756012156942226198986360540871850190749944178105188760652618617958763899524650813698676460127137787600254280767319435571681498595638621599946999197767331050826541892285920772071264126713687512820634065099457449114389002271635121930602837624413852671741038826744176771875410462547915773573349154662644106816555669935418812047828880294594589417912975052779292539864592217688247277033728821494703727975643352411941147368732657878552112936848650834573970789432664050550182170649552158828721161949062695347423535513060950449415941155299629903432362295351841447060749449866050520222683108481693504959801105070022786632671955422356871483445923900451468501555404903983881888408164985304797058778770634593070447004924032442717750214462049602239788926931494640096905221329409956658965531034564069528532544860045039576818553790270662692962552900389443112524396865902751301901031017879007817592231664930119963356063644487549057615038538881805132612970763377972106423193209381903912126293799460339454390826191468640280802818449499210800172177581593922857137212748846200885044027752603332003780199525109182395247405040416386697828784555623302914901675662695787902338185998480228989871555731078865417300799829043812583281841206056506154694984059188617682979367858112994487313389494552543840861806285867278770440749227254246891058880647837822823482928259398724648075785167809211585571818686348043024445120061172158900651908325668114843454108340339693256087461746935374494787537632936171225615099649406230328836536050098959780159203357521929397659256674025396256507663294894054892125019007228007416346909880343991849861546563493851551819103048470550320146868544809434531253086108528110995175169956997110955800344767202874798750733299815648018948000386820719870613605571402862588244632510231427451727448209764996432713896669556799539370554972890437283224411111997976356719206889453663945543877187140213410664435682551911041944170683615557301985996313875944114220965944204782924464385631365503200253627856254281551694392626684917468963311846238249646930593282434021514984250047560467832588523964010234189142730530934982652807381169691404545835282928618472808102911229143787027005524228039808112709775616609962464797493440356195779594705876609959729947080375373170067547290876915614164651603580578108923075428823698737754148773661186986529146629519836113388679114686912161046623784608968252500009498235755079108832158457463257223676110807547203472682933844074570561862514915511435838338576742723285059164713090139695886444322493566328153630262949859997467423034812308373168575316526093153953119155576870142454679489190780859807517501082316808506605345714350515030133455659548341271052777838933498295188080801423992192300245322677022243793500570371728161297811721435549790642384882679195040799016099321042383899533275637038771333439566980455389419634355511967190824122258357035591206716981160536339972355152859394382411602011232964526012440579240385236367554077530274416098315107662566762558354134896674721975612209419915328436736680374531602385705569939425241214034616154339149497931051473304298111076803106887061197998727989064428397892751424607803101308627759402433599732594286513868274631622207396159052835236834491197622650727224718538094794315807488452991566744568699564633960881931257692784070807507929780487366371676592795430070760249482622236373536753132280543956208494284605901622506866067026751003268094021709304936558641294722419684158399873381869150820869921723481104659098783595757456899041805919441477668169690856023593118560271379125486782629113357729102709504363824700486366747532191376109797947092192731015180765771922617063277927612671904540452665595826649032213171095703101212994488094824270235133037395322226714050058571871893166790577310917120350834448444607609011014903204070304661857870669091225935562896558360919283677751520285166013409696440517546165447205260650609094355196629534833356364097292586000698122581887956240299344819064910039518282422379161826534657008285269948712280444109217957185160620155404831360221424145558511613055069651339960024136739592371723326756722683429110004007520443037798399478080187918576394457662306112148485037024433569349638007659633148844038383804756951596268132265035569567170501786007092937539639937861702750615881059005970588470629754465512071309168897918950812922723420516921176367368605063806648721048181961226714169754848356564285827195992254159541480850985003142283302836382706466900574748754076050513698352480239069836236435599711176590770706220361987647889900509886609937667432302686368335839310585239876167327690995789966260358454278458460435659382671774612106191855214457376487928899775941755359952978882106508247775323242528556304564660363112986461477861069031870100276543923081320032380752316660998129224950241505092381636358467736716505343644487809616099277302786563514908158477775957815035755666507150610556787496394522066187537559308876856995445235323003907827910289926051074086968425533744984215124303335283064678279055899013458433247060564480171413307503150444213861692086774050738479860139181224609138809350965697011368228599982543623083313008588644753282685574403350061763483382183356301563893208184476275322971728124638974981369677457828509237844473552224703122614759074037593453101494366436329958493709518897343121870679311773669080363087132727305101521344135968991414507662213079570680406407797000236486069862696744981557400416790879424081820729542581800087307443895146275039831051220760673057822611467753969201420011496592259670097970856836410368864703537080232711892869356025125300717494151008106488304498053943450397892262568999696609690936248324414760365214995767790564021149081620935737469290637269313175709365484910245838289483258646031544574562591936708613353212721049103367703380545365445243758002785976054423702220267363328447578403993428159434947187968866286937554929385771065755222517029405387721746818558112357637726944284330300435046127781920116424123452702948977204161443732175838595474602737250886231931497907069484572328406617688930640078491752948362832880629035706065135858277443929994978605982069798386341808952859251183583920681703434161703080790570700555242600930439651602207981462898721984506219649209817188116564912037370287924041618106669944747786517884419527541783686847563743965243847114861205324385093373722618481971945973231136823842588732278067240581724158296458472763439264480411552091646179807792216164123435800089307276375974861059845926828284199997894672331622553016794299428999116378639862880002057107602443635620654441349194036724155511875532027303661500583376429567200136401152521464743304184321888704973007283911363114476863592017253358363869964600143451413618920984418511380034869217868035619673819870359393904261564908299769886208529735733526559254499475829657610993494085280119102597611658781063315341095282981577263274181074532532724720435553817158869983420758301359727707177318662015403383892023727569102526978893616200659010844277038594362423323233301387950825374264025651157674057667534145736856441408912667271753519761621808037590772495688754548753852429357297001861647504954753715463887754626571848481496003940324713249312071939370393149136089607014669773412396065516385042402066635075987969380353951715622857560128905387218153468037587370991295022685216999594050959692055410420909349752936858903249228443776263877761902047561983285487069936224136944465169446874405530748835349123212303698722225011470864381625848796359636968728436445484101950445547837875196309704955069085675927284825043939772203382371136323043912273414277328255357464732982562671399293556234461654186325453863305797799991401895440761149405736072460996040403404385538993943237735563378400616485483183498430392202447196376722672104793986939613791137660856135781123034200905400360846100289222125759739378278228929364996857061557582668615756039193322043985046334421232520702365859789250425293556468969229488647483998952239460711836630146673854796760537083314614232983163801555381764655784153045380839829413290444700653993767501473914830557513762004918251650885423928555058130838725345245006084048486225678044274734423348012752876491600913589459776045458733616786838179777622099487347800271237015055160624757518843092693378829264511058734843413183315758688688576940460475692617853684258357102133655295224884451259386471402521723707681600698214654534542311990887008140660925236701044073066227685069322204298990660880375501760991944894096410381547977364862200137774191503815236819768970849173206453485027181076025220718457626040529079641480937044843485841625418207771398273922507229103369360936133208908305987861493579095421937617364201124413264420889523901551611402306892960553972635390809956668024049694903482602623512435818801912853576794264062957109116894164293272681963640796946425312709766268793902486811317809684023821187970611719524429428911924932299292723968925711971190017519571205692978120773191547513076051493182949894475485474391350430700336547575173110366961584190716627306196839730595646683094392991464258912817607867988456971451245786896413872438249079050151366122336487742410406686436582307570323438984489694096667790592656579717617825798962717190525686824415770422296464319192840403386575833504851068891411156502955743351152905903569297419275371360571333411384952205318900840783502172474962252779357880578068330330634209127338397290131109620197468889621419887422142756250814134588616285048663177697007463469449123901560747198156038252400925840305124158056173658941427807452592641931860593327732739753652342478011888741532871341484392139885066628744103480635180678281253775370582657314418190628887092842475325136827037341801818178473704053914555479418906310592769896923290483685735765404967865616452276086727665901687465322476032610643385687102963272218242866945731244177996602225465997148458284128853244315408021228082959622686960931589755003512523034219797303976974729981816572831499668087905682704629000753314359660542401037967669015246880863626821142117268798423320292424250201538958976057771564644514444203393780311297507227754647288448269995084950114676088131235683437258315763579098940007232273793651210674343811742038199890607758876091914629538676266663995635333431390630000845758995435635759620960695753993515205062451459969633168131349580022478646438481167356160873186982453090567951857293666518794418768056574555096996856165391651046230345188258789463722902146243262429682512315939676127521948568189956920908299832038818258027984129854992159015401403455987987783327451686347683956779784609210083345880322770512898861908204820508849181609770010108113746412563870776486698456878061608946818676223636346570189255809136563731868966750682548102816190277300124361388750271801257516237639722177245045630018137511766736725742157120130756754815379473544905241606357760711938162264038670095706507606057433859720880280811747354221945853373227562708831638140319198943557847503032181108428471833719455181829102129251907739786111247936539390150676009929684905082406074043027502358822280813430118695971898202535160416203718056061762311146179580003385430049485914195578674356404254715748340099842548129817839508818424383229238622786609480618265474348777067656674565329628364439750034569032221104171866173656676813845098173241364460562558760213637534758640286083880360877191392222528856163793268964007626702761542354784933386169918520564469176710285928890181680676753634789549654477581555959643979681267923489620369170903139304013737363211562110732526046868487543776866328594256075510023758508293369544279902256292988057260231094184008907359807002024254952265179793795589846007351744777297830080526436057969057163507179264858811673428974742860595784162554466140076335525285542826774730069208988066884897648548548973329042815101447902631911193270133743340376701831659112131218458312905240726261930041401407997316125449381288556540913406278156995724545996894896822316134465853753896029379357402390622430201387347037814195683663837114267468640640837174506925532787704768005351270201223421333523930250260228076456849568073944424017489281279644212889321410451339946932001875803684364921040993510104631171436680269501267656750546962750348722679362814018150897647782850669613988031072910910783183595677784782725055007881192422664804899913091747441601075491064033113829132391835765039376402873170548127121688841309201045249177961048875721768406603888873862827161582751035159716050712161654722750480092095194450117879974293735753864221933823572208073154032879556634810913094141119505038015356973240521471935442693091225971064680826237616148056735422572021085587155582463953796948208571432195216192549872114234623969490907864631590435777075085408738276709262766010209011255849449178299389119413306426281472245941083141686601531220557831693210110328149763986421745966034741372728585210697657949490660343550591608844109287249456124235450799634694249079953817683468436043684373216794730129282907129635620308502178101065897132106914785564314418505935071536334936191719692257957915656678503102824797825332181572450999016349111736681702974700173461720069056775815904423793715881926225260203420424494273039861059207380363871740568854244705981175088759194157319379995081673619813706646193822528168349001131177522994311199689055897579494905959829764640270241157170694216735353954940738531575101222019011479334708603027825827665243039826722073870548493153777557264358241060135232896956291823005659334278461628487402289789572735410715535838897644586436724893996497803360511391393663344471187241886674166337578131703650181682057630159575896890105932058455752081767856618938203590266209336371720712333695987711904496259635058964482675340847381274949480138791870866268018836104450235549697917343010041720750941063443342077029710482518321720943746519971442062012688336724764072994607407532721976593823698800562633673151357289377673623237750860375913778178314882239124966025345522541089939491056437589061377773283277969461033070683071701595728160143268705363941682266484588795382370613013692647949397595150979940017986958261455655452201232156691076718861916007819572208971428579384788720288108504254758857466717212324649419954611768262199423526535131923229532773386158623029158272780836092866953416126312211623731270412308343498371431265856750483352709195387528936103081700067043048071251593155982822002040068877851620440925181643553606187765024042962297580206481557819022047575896792980609635695985410664813943251949764858692336233715076133741874877347612270626748061094667809870030324650667582845388014624648909896107100135841907508371189282366553718774891347988692616223009117193572025603733423441180100212993182262282145902987626085107082954724411043666804711145667812566185499237078233845029545814513070300351566868662145814303496841760607219318957482394144401878896029207742978791010059040544299704823988102416674501757538215861548973522753899551707853155135443027978248142336255924215059606900957542833189132717844406954275607665392745272330905018003560668401539392273794813963809883900648682526912081458363065490881033082101283661222090201620198723743406210540466465355724860204215442895500894935368555009826507346044152854297332354175116077019605249773161200856845071362830289740963642333679196854977504199473736666127973654828021795285486086560502068466249247111240484022367275324425300806779611704263968493579658410530924550406265253846243840471659547891847325934538600210513800113984473507298360650656140018241156143849177796413964865302714192275103210350273794246746230493495730005513982492645777901796090150331286890732420776120581336889164336382566518089605144373857298597826957058910564823634332371255096732445924875240044957193115231483740723097534089730641945919799917514734931815824089140461189186977310774421635884807106933352076763301155000247975299234856527589970118220776258712218820128525704315434255496873103963107175068924913167034752777473305013008640254617989589182931405751398400765761506253655398944894822980599075563406909402397231099555517188485522518438015226722927847428261135865566937319038597454076630686342657488728722659377735783284059053396329305422562850696852522092617655329541705922172945909616784697971729658684948322799102742714632839835721830321256764003368535113647236707745525335780203781930981062925314487857469604386742573930470449630879560990273946538865926576048944602080829294334661920368045267725933030673794965363647297787774277531460396298120310575038748802188235524216440624378083963417703881724623607512354099065447600033285710259012530263160951010605738416591078933656279778353948879436608116620900227936467567575326211892473870818948955603744286780542057224668613227877065082652732174583364288971734510379046037068173666512049390517159831748187362508242387383938535889439725331264385395465546262170037688612527471308026040274035455865019707024915359473699450962028486562166518636982277575707104036102371718973175544872809421814255737446216349416959869508937926551587728123581925501059126986546102789977600117449492126862675910580411764493261121057944130403962227699919287431878901657531170714860033609960566887828622640605881460731554863517060201241934520346513423600810941488626111417478800756887577879573915093757669247147344393785528220621044938540312292834161226643093809708822055161060373391243878763596557048288201485421084871196987210867512728481917471093613276691083540031371584809698097135914755565020457940944832337695269287655182987219643321076629500059900267186647349188445967112465558083858963103309278790134940866938962185218718565401412704051055040163492605656145094087562860864974624557185276836496839494623020662432091072638534457251733590571282412066409027444793484675625389293802605322960895910932270215211755706734487496166352196790077734583105610431841344668615808134880218939441256814570605672320700355308457746936428857199023080783822588880707410707343931169759058779369360593009129405517779782850398961180355712922485681671084170004907918447793787735156360224107363781459100164398938083699236471709389250665969410926014986060571990423052653280813227033632960452861428812127325361233765411742091157861629911560169837318768737214177374340304837841694368248058418676145003517855828691076649645713002749001620033299948787301550641962557130683365805512975883110161889410050706215985367976410282361736989103750692422239013487554153243135603186076103111340397461057906178065158503410368299406516462296038068490656974980372884122400824047048317317551179565119408774837502699123969996522140419328952580315690504399440773886174575128222191350560689289511787057931497428691358509941508504180986325363506149545544181276019392583645666821886546307719980517991356327061027644031226763535595473105128489814114723909817043894741327663235786400810640083773368077934215837996093138347943408962250808645361005574169845487770003070540204528927746514545030212860011784778476448840981447267449081610865320739420924289732808715238833746690136062731089548019428555335404238656652182103705886684209531645353004547947251752018277761764770433206348696893444956151688097184814445466219455857561858810879304506765077888079377669981040127106033521986742242378563748113088789785928565364619701949228674664774961574095208679413138960904035026561106580433467551690190305352469800803492953172498288166846203212179489652779863017305800217651912259595534986177058668279012678562830459776450444577468906483924775422149804814893485070417049374624432345730245243411373786626397395548940473066311824078011955602268855480467342307022680506166084655843785339505679234967798454146115656619907401379993262797931893177880074131877493934680310815416648212393251758529090348457047209595458008354205864867331378491974789054182779182604625796769112387980978015850311314983143786088268557725395283249939139584021366437594261617480927538905242525911438686752299739489253470079410229646668496615051847045867888956026426692037491294085336994838511740114601520714785768253746441593849915835345999620147566181136510160608925571330089902192575474864923932758574124216421849231732111319945058789047922985846503139798006219446962764654653214834950165692716441682605326538685196191828351890480083351616182047006307564917378021365498584558862547365179496045287989910839078589930574314482224318685322898039018146194213994147707361265596135268326085515397510862356112881921927371404753028456862315291444044137552567674585640519898613233162328653901749017131047308125231524653195658462212647420741163394465289850497108223452522462938525930063658771749769835950552919571439596840066486127373972478280709842379485261245308338870306028733958568108072324921130492600328182609788855265595797037961532770770340092402351537697285290808789943877547365905930421845498480764612950997003164095247818029338080250680799690595837205150333713706346593374783157708864128925558860950981080480218621851974320182543089034512438622552289084778476842375159966095433697400621430894667350332120745260281932666721777259854859078636040694231799862969678213892184202425514235467256256333107524064029645587432208752132348026913867798410955204651483677432390874337059690382121942566016127828037330162490894192719049721623153063972137531533111568607266105140024498054855650122017441563711539648545172708277916760443529178380155806340213330697394766395938777531149852196432223031090982202717332890693968749862252054534851794464624727653304797526420139035029706921479315983066837038916829469914093804212306111235086482111557308437068509033985718252512743619145491845550882505876013093257629868990998481297709094983637456092814214521460215251608171773829043896851444778519726019376034974299553991541904906397231738352037846566335701808504459380669634538275641646192427292977866635114575493944434086546300589858373331074389777012070952282035151637953923497952287997787372195841211933038503593429306565638069856364451886914224188520675233756107149814447795173218948465221180635854142837760806100368761060286089435052390519429872819103581825190178439328502958452093380475166557644532777251096869310838301923576088178848153469656668349169151446350376564826643695547430350412081484985062681228650624065657189041603755543835568972254769513170467981750422998024921592494953613696426581503606313798091435843699144554570937504069883824592795976143092783207849686415471482399028319492806701523198140734220073402671033068831316516652991376702326162948736551422995499586546050362491328902338514665842285822689152338001018607993485064738928599548124370303422356607567001406510264141557127714375114794624133831737799185633042901132359562419025625785393373991680850844135550008299114342664080807390677507157874335264004836265118920525645837185349808309871858727339406926135991502896084535023609155807017500540814504663560569159295205627638734423302903733213105449309195351111934786153168903959987837195722409599000708202246867131028927341222197365834284044861754407472018415050212984901581611189409909952637689286809690815200040695676357871877806309501472396040012310218769052321584601727255902185616069497413067555504471315561020777526740203556418578773408875362034882849474467675649181737057498658851028031032898125727517248258835095073550688608625550866650022260047379964266513035804891079097071544744709347207128751616433320621855559233895867569304803597997130700100713024628161826577768897787444417355757867863799827893319873533982619785617716602355756676485939951515375662765792529917519018633997084697630325438458550421325750278347378955658441318902297220373299835460772032876197840396849957991020707527472797508966937059005115156555609408722849037925641415916098301466261147317853030632496525798171414912251081000827007631497815642632946486441931381521171457798899653035199631642459533298946445765930617871736774639893640139466393086226358959484615579536372267886086063040792938330766081825803579934331317422764158568844146202094002670634756904222126454478518310524165265577543333801576573215459883198906318941822706316957197179962290620627179090166955493869592159187898185693115405353259513405279208394705284404228445808154073977348718313828574059175646990640781697301100078784264017576408172546939204102077720432887414274053301154328344562480667480566548857011741156788913044122714288975605937811937725130126440761035049528444827567397231885867981099404619211025466959475584710830829153268773861592738587862404133944015244072279656027666068197160263724146508377349090945929059828851393385009803789510978166931850702249978139430398231514405265674644202311407276012700134500642763344519119170625471382490917940122279162038084391939450200697755702585351026514450024574137554141842875929301206535330225546251164364204444257190638757915717299064971417453062808420261510491047587589000103201650213385243218718146827153831942490415101565398067007088781118383806643817966799756587625204359159066865923221001582069449354961131838677640371394316809239337712262154801909062771840433924298585506468926810271911164061747275131016039498707267057025034969469201865872959275460567916339227108515876539051886788171173431626561406339053488933209750036528963848465318446858243060733343933897071495066297304773371771304348261906322807878985494648909424929017814377686655635475091050948026809930876076524643327182693117698834786901812322125257526357215729658868609623001913982629896898146712502056881612968773124281018940704734004869159997044427327245383527089451276147824497574318092271052460329972805268798183086119012224568375371727016831634895822763700499917982025814410010144356874794719716903559469054958242400136061216362718985240038155815383505607222089965861080791661045241287647144030254207668455770322352917752051938564094116274661177560408179864601564355584820586262670612958087992937009838520450931432110292232012181580535486435071820961831722674597654602164195628027360004751475838070309704316720549303735473273096459580512185155808794419344025279073087323225488036362694197357940743718313446599471865980026521777893851610178151263653897448757751360884195312544161502588957881537487198951022061854100174578948227951726342571059432037611414812212567880256661012625827563062227798596595045467460583780312542016043532977006125017782160187437919550797918149084530995508682760154039805297500133842199073870750751022346019826577990046619747479143906917105047286557381240893562586806548342052080110676879831044021997239550735081633226265950178945928939336328704468093013534560448274941939025993563134546830877687533895777597657899225010854869929143107002887014786053903214660225450559617762417358696723224408961325199947697345519960190035551546913563595578545701881460361422054535230246226736801564311134264479323694491525844552136774062421565266003781909397050351966813746934985652202206355936130724768727609275251291689660539030616566063580190203081616179314693691757475239988166910230991219430646069410427951877800338158215197833949839151435325268053037628431711578234835191236886777397987987791592758331176169857144530116672910395953242047695654704882506844205216293119602440553414885827998622085667416189839634757341695707251744637342176201376512266628255099185537607299632917065405841653498131466794126850246532490909720202174152171579742151166769549451886575092869565186832629738094690483132187845354043827094656189759632474589779040297152296777317637374067377511677151760536608077702223771968317646445254376216512296485981228381367880021332934864577391544763143490272497967133764564684288206211144347752524255162537114399593889894223473981170412809332832026353092599741933729731290224260155040986979059438588866346158201787582362686791414918492154897333060969034920820605805425197348414358873164700033410930229667981045006188855871274589829883147176796804577824239878516125881543127171955859581333532704494032126818703204718321315928242287524525861610179381209910649608059162684605006870301675563003929876363395474943777279471935258420203087403808914945422596494773817499089617665130424069414404956673115314021999508457846445498552820623477278430009711914402777114571400618100696335172897585367999979802642838600245569869997997210692078870515523668017966819950448008489066336045156319509226958089318095654534371504766758216924603594910434236360406246429089431883327958174972671584867292516891558540555067155431117740729390293953274906016421199092379565540569554750780430136596878931344702512567475450550601292476204281436259346952378183007741152065618990782639074756100367375394108901655583974065751698059624090582430037668042674114540293113798572208555426799849020302041000772550069149697481990119869988186985874465560762539138183067429718360597511809016982739573182820091148522813181924143980947305182104534678733886188995499863349926084327215119643366233620140877562401137646109102687529790193910895407661819108504670020962626218187788380832486136641856841204481443208872856842211446066936920275517947004173933297427305575892954389274488501518662253531951952156586192236244698055454426637107872595777515622706410455487389757286681166889092129909379341114724174604441786063833741755621195039125389563220419677200617328008194198786783017247126038915250763552037858065749527983345676649494603325538309211681034926583189048718314820018146952333953784367662963382224098848100461774098523198630968148007133063755294400778400342416591290748412344007423278487689348521973452931203799315327958235095288012081741205662698398026169793082356977533099267582095084483335892942857322309593357795369618724889941406612609003288891849576019186070021443853640661160476392383242546647255009631127206948309701706339422482516593021690887783635379925405536779787192464952373223668959142597754330733065115922704133038987477898613741164294316664974331405805860063597654710758770050984451954025130349925643267490084732236292542005331337967182852546270540437034906006291815668380482577096124356472306705027933844819894550909318612365809136710973010039670902600571885331559789744234873998512781561102349687008064760944371231860893003652323475184193143146827110685683371195672507857502946397352774978487263127417932430750621645753748890035766557154913284848555081857046879295233734567159247078442108300376886116744671790066047606565624884223575436933304022508012654496083437128953940116260003180404518423351566844131979129542698091860994508562989006231175806358370281151706108564623058546793906693864621551953430143489935567483322168779507907580371842373021887102737300614824591630742154606409881220820982344178356914699150517089851719355210004401138179919284733831108589744788513498693764532884182067230053156690409717568720467823152459754306697062766049436377210656630342332407489820354459756072652097610296708941550103831895347713059916556484447729090480982745335685621508155729014544413901502995965974496983351869842727198810396210607030780740263055110291587647342486574337741036148267007110237479435411374251701532205407792447616298430521268144339974189056896085910867346580883584925323332465790765678894384319554634807275771477627320980544312631428483040166201867699707144769499267656125793392519561265520974958185131809143778753267205704416716563229616260106578455489869528284259302910725430383468826278100926114518531773371629161601363720684605630544436815137153408622323315045974653851107145322462627074558597751680425264574707124297590792478169388293058723992016615420188156800571552609430339087633247356427799358745157987648019708628080486710375253554280034610397069266265107570849671234284584001776725701890614171313859938695447889280676672723371766568542680578223746146414059423114976611188864072593590381116074085684793772596168627731313459788309400802452420082083066447843668756163173442436336200357355594499272593012001519974669333498120456915339894260833884434703304449751388901890433093068338019271780691866513274273222436595918309649039735019531589431871010209761125362892178253217107884329871931963005037216924599168595572053244750793082835880518048619763965199548116877657434469930927115920357049759868946905258919383765044955165289803220161890896363393644195294373796840063887316852689713620503900260911775851384862304824101327710750380298471332073670126605807358463368181573462264446265445089567726184403044305037130425857009771170441257275105151658048859307962237694886402895606660896265286176986208097804829244619870934329872033228129189644551018898370551490738407526860326858880016200958462297792146253540807558782112088846057338753757176992375191485439478847508757109528869005862744051420966736851994520953604871413761724324447595434773826686195803855335104235717575122660029872762708153939667014176947533677323591635122584592690348274720392396330828344563015842671418718817920573157465316003254303056321146173716783359678490946357909211234123167352681458788578596222193683541495064079794399820924638670949969653822903140130756120509223312004142438975667722842272942408782774661506808873388006659023835132825212461994728868645214538775391448914649760396591246302711487426812485049252714343790192162373359506676350443963936105922439007265136962803732114239128271409703781224933419639687003226012818787047917431488874028517775545054307359670156606427457401833854688686398940386558539896692701793219280734436709272765837531878214556022202619988329868436212553618035044875958364911880612380469077321486580086170055105822822018724940716388051246458562324491082830063775385883373481305163924980173267242069838366888312197936280939707026891010289122348656706773141570477698917677870815646313891004919522188223929969953928575983142754552440138706109150146674356562251575722604693155945411205754166361924645924705674774679229739767045954413831079916050628990757964444248725360547885044202375361780335515634781053116229979619840501529564175924970174955389940107095874198666849635797711915797134289730175810350829738949708201074380234391605847719281615388327625569495226306667275730869294939362209712968746919236923463984911569053991053695243137425880924369855564251358989730850443294302641669341962252847942281079116690481575639047393480175875897775291995611068601073027800300641899667589134443518253273035317028466931123599674136486214618085804888768159804931545441575259241509210298625619755800956770069672061191591055001741649264177173043270268826581364050112278970179514735232688301456375971015113666748939462004122350022023051505752291318374114622847293679259731922525053364004050982276317145773251570633007616303634149482280037120243712118773795528512823831966766422483237945238413051433834109087178439391897185919660095929456072978472408243383695969567643774001416066506826291462040855874966701183275231046133871520917889329976255541229685027063686774798444160704496039040083645871465925209334612838711228909382775466036953202078109244704083593421689553415537721654512024923940723426837639859659189649173396623639906150834388348904950362071588869761212700055195731082326333973297482244521578732651203476096438898580502358029156277316377050467725340826809621465120420413521895010724711646971448444405448282135885916489604632036639577062406649216022236913604861186765547185565962136955431916108039216674226754073283925731694154186745385533567123693292383288290034024520176894862001448412192699346852692612944881781450252339166919446236314312058645178650801993436353962100934140327370839439708787536359824598351524410381555576907592350400194102915307951462254398564694964854293678525286318497225470341923424202181009264238818711228533580701074251799177424050977420027769990951900724532579942399524080910407370235743036086330871179081390494678168260867026069697847916164167583912851812691810045167354741710575269912177019407878676299237876314771199447171484153968374673818519594291803057645932809773556016270266975382114453802510524461144744792637944056917346079782338657599053998040180417011173131444665579996849341997093957275118516991129759142113242943437211315871838541742534254514206344861836719185364409128523781562362557119987698326991172387352188623019405589306339015405190771573608446037852100483239868246662807658079515119625636456256288608364009721290717452648314372224191835549688297525729503161407447151914518420258329878830595462692667257552605216068233415735455360559974217112015536653700092268638304967485117525754489647560012635691670224125740270057081266779495856377223993188171302318058277802672241984414609570817221394940089877147966072858900749466883342992683659340887508337882140610136650085944081354467288644130801007958490602695132429702656804439797545608392467105373243230022988405549274943707731903864672502400279945257262150422958328558775682861650205504211505786582517780625420385250108503717671931345255711476511777646929160038161151374069755261264334516144189015292947695750568797417932561296007794140198795034071951450407526226021340708207497531236970442738236653043604037259147500765680647828352083606253511396204719102640263898375842268692657866460236405574758957302062378966594271863430204651534550354630055838770484944194810476460822981664852145780142626743907934824182016698000595491025121241034156839993086534292154569442205703340475683372595859623508423605530458048403083636139945413582659109641229195328940611127947225972971987812496634862849770508443315868372153911888457348787195626219353672291529428753540323436092842870162395497550638262246321348864084099469944673873270190768308285251945827173358954046345364732980734534695186493165419499630886127604044130586945863318940922330350257348891626995860157078692873822078017220106451647508204387086134729325024434167747181294912054989499626569251272548989277580008104661386534145872288466562853175010716637196195673696479175927528475888227027397777449886967973808454198441276775131472499813809877639116016019413814386110252259343783066209746047309853464786669624007382575794157168587432720564601866646398352269150482674811899124161426151157139016412772481311141684962772876548619065913257340364635169573418128474160592692652400318901257500791523769033398223096006746885385633613849633079444720835029129255304150626946184074447093645048881205729834604288824226775437626717606478035526839373520703180988270549980060855012014512343085631269245707027329645199692219099193261900497133065236476214632068645043839797130082272922566436742067863389377295738354281966554253155590105740585321202114525236326272705498782839618566219186813298430163934557246794484748380489291419967093469477230010295995287709406906619063726521132009073925227756836110401724522312700613753695426941264626172851567187535467112470543628832329303804006408337998648661437839249662538377040176773264039967354683160189362219192146825927854074501193765598416902258635373986342713468461950655164171446486806581289983003659254856721721514362644982966107199461022301525936166376310181770416940235919199322177114045660608445019629847621942979022949313233899849314850451912769636254965528391481515881861421546321964346137454704113906912624158392919993478414002903026690404200891940841116401946313666542494441896925895352296721278566219133433925575392548308675020685471593169082700469613508123318419043264206856522950227997662796721821528822256230554136972022119646746735863186342150550180313151418845941781326782743026328274020041868449450521596676527670878825640174122599484658165085326781295685053629565185588306243445115678984667064178421843221721397068124439218337918579143690410860795142073658122954412865901153954691746686584132663190924279384008493746750828463428384570651302623049511179433847181276931991857143405547197059535493885664880832502287323531704627264378216890835665421645376623588915990185166494978161927614116492953634185949142628858620916026400356892358265425467911180219238112167284980029301361369059787387869652662636102704616139582676352977518700778289526951442338541623385987349003491750001418419414570663310045336045495561298762836115049670473783336578611282642943313595107956842091334347399215826209524243966897217036025469877376287835162936402536281101786512657652754902902418570684883780387770293905477975807714813562881212269871496319564669580501414048526062555280217661053190340348842677781762291003144967652988461771230735504068253611454813690984674553944097930669011996790956341120563607833945830821872042138228109220061617411810763727284625840386196302477298448189535510089180599973016646870739957648651263439398322920384061912864709056069531036648525431271345721515380290511678642493550097103891207183835785141609468495581069566974094675815408859595491213234504872716064264552094780317404892735496218294064763956841614682495268984034381985135162107308797297007170352536122433268585035520206902611121382015947473640008764860124705644227537836989197466838055971727455795489321295465621296567251475755809219130373150773953542932746697226759760235047899426803843917303060749056985913031176608036436161364168990442308062921936787630021886478935876501040335676448078184185463560814962670249476886888816287246435676586738655309810155731396373518693238762227583273087880664117868125442821184626652810498889851172750786387845008830863300682432432447984188413164505452910537365697020589646695686790916778526522986657322870622001228248927495957133052633116364877631020768592328119624872609408684486990514291777702588701453008403071647223714631458429856092511539571567420920902748714514960891032676901606574204403156193785398906277495283381769950945408235012940182564306496452362276831001845740286583522649266078711694514369584703772246554386037295485346073895174102594108555707958415662391414986575075252364665983032440391466944266303778942198322047792865189174542594220285409664164695735524414427131119976207254848708813324981595692677610822584915015859719737722059159336173059765985200041107555038710971699897157456992913705601365660673007711798852764733814072877459858529088746857513031624806456554693999679092241185405444988052053135105608320947816007564000295307072830349759546549387079099494767683276379252906700962137914912576207690742547610038134348601811955074950524165493024304230411614836625123431109265665097786714952713414032688044426115008614776006856166468652790724925123199589687397524311182554929277188646053184928752974864043854392726964206983634766247667784575314373519739838685370071028178841084402451869422854720551404896225189523337572548882255644368505079887470993381226011242797247234932420200074727336518982337252395471168109597803243285353606334184032169066620101764701148894546291574903055879964439398787229921572301538793022580733847113896707496266681960508866975804775503192492214641238081818454957228234024846791969199500830201249115114548617904598386329914526413294007887537633693789214777031818486556247877079084158729998743395660593158501438906481302013959329571311319481275931256398256015474234253444328908585018096635014094986156988318255725146605176861090173774320665993048660774692743363547643450740168743821369158838412995428100713174368911122856076735760032821554759037003878086280090586201906351564342120665060555574064395589381562019822474204328071996643581277947359493616874797367809098259674553085481052512113095323119943445045018330422755548811121056237560278938702407490557387363517268419769425157286260882090880637308770023343101359512798216119495568199529551656629200661139091904733973325158223180455649795580443409492849358185190147468953263364631459867076101700281519337974715846409291206060122302584698845827263783917347214189445541937014409246902307554741581700460580325694041145390678931017868667128545975198469457318700331014974623034176721745158529404412068270123739589816862343092638831348676136146378302185848428483063230034666067100390069363619224705479945885726399516990864453721536108621429994670249166083043274225850715943800728437187118043770900657478605692162025440782257515134773731293837920883464240895929646569640509443476306052780467556557439899469832201536921933958101797637484314062594201910333298814794086122093574486551455623816575755360871389680260395565582923088484155757488480028389621551589012820378803638216039480599437278628253949208323072560217014207152160787315941148086499574499262038169519097106984941268690570438938740785668243399482803610040328315124639107921669782410363482031182652612001958033483425281627399974507815460543592671547947166788012564489602022827310517206553021239881417948682607394292485319822731847684943713173080211928753198891995585842334535744881299046705449381609111933928096271833955088322441623122796450364912459945493259591750062642229808963203311403856002023827818436734894800381312655018467773296112125229013446668214340942601987548362786179418635194696197082682211313802089028904390938567643706279324812851390489559651928456572428966205235630541056031418943190156065786637557385366061545500536465937881815554416050945341034260527392538946221628146297814507628249663280934777368660640789880023765194221959090462434525607817327128312458229132935036066833768436091869277022757474343100585566233816252054498368100221299086095729650390278661930382946547603182935688062541053443089597798726389307831746032475938933828053502212055810905599203510966117205021774153296195552137753925811220694349904340094374865012786199414051285203069197759985143494200525552870996683579580753260857348971182184338947062356564942583265524155421536230562872127769794760610000468380393902128169720810137756870950233028480202539771610792613031735827734631744730958229811931807138918280678416749256998107050820436296153646467813112522121753078015450370401004524365255592480729250516205529552970014539775940592692853335904427439924981687793911116584631177053422362597760646302685825649394452177996694477200372472399732491098536868223232402338395460958532710255391248074992569091347760522390407213428652924792372016840352863301475176087860016922015762739699145925539065231460468628038544320985408226606262196600867334564789859610662124417784485689189113175438665866634888829200435366752154881055743571879272254338698756932734972193085606604938553826314971365617679290601685591206475830926941459565827685110038292585629770603475729059721732450902676344555756773998618289987113730665618793468115546513285604936661214893055033054874565282462034845123790970921546806546948731224492467274877418941423755484857685292958848345633249502874582433386638667327617848158133552225217279864947920587358431805920334665218617545022621909628603495372778804586362677062672962376398674064457138988234259372243805842055555610172349688469168294510603922010780291676399968161094636511496252774268376215399818947049854493344329897613626206224198035295900739093818637149495668753769829329036469801798860646739708061740221886149229889718845934786742484763429638896256478528419931112639580769171437875784912607963744266731307319231235584874773679464074002259316182824777327203566004838529265976582186721619744095198420545339770975792308577523405774040617898361168797316712075540719899310632107258041494196403751592888369323132341607563515872445106370031522131966035196848609890224264779649312168978667337417958255704184392954812017788107030440733635899820588553649745876746548453260194819541752923939070479270370180727599247962606637328256692546182725782872263711572926561203664660131247566218373175038674883820319818212125471883407827344774464568079641874742362517612496004835970926862170192329079404664474554710193342235999445932699891371898209201503653315359932066946649124027459795413490557148331189502385923810994910351949707722918450322226804035123803871749961118777243751319335074259602990883633184351125264658987677506042997607534264464090236276007553291561334378077242225850401986064118634697729003822869098562854131927062127918410527658091774421482213922775548739537337988487433265015015117379038337773394552541226037165271759913756874749906883294767156070523472800535314070579269557664885749784315107242978720721889716192971327220504099924399400940060969454075366617435298368302621645654070629436353125486259778480763329897930542442519435398774834667782073599053433848955898418559478684183379927165112621540578640063545531200599792236513047118840196746524143363678258602846524838038549362829852269794548672788695319018146526162062477777455669992005777865096719404132564959686761019753618384439624469140508525271257528450465462223051835795896245657479943068710510977122111573036570688333355176518352893231877454614954450437732466335337528725357627547042465172484638123202865494022369625754910883083426168085200943116645695394054495343569171150435714371403792262688186283480725019397502582656720953017946329055517918027662299600047545190964290004999827875170293745147148194579455863715777334578401209435856818592106704256984593812624691607567267386772600764396893133025335592578181064855939297091356851053704617102244244859561467609866506464469945613602974782431527241531056704915507962619905811082071409270167735318288181168699775635260409554219921469823929216090107445636241044766622789473127643132250354092833213438602182623348965663433549032470254554813276762144183720815042802763995878381115711013324818830515690684972399211317458243856724936547642439377070126737039825409021345303530888874254892335243233688777151915028197902277920990348454338729042044540628679049518133559621801089814017686597742997667864834140349625167204666835474419236972889799464116906799242660271667952182225291166876588443938419938145145909258712009643642877084461117013185635504057233220063995419179875600914902241498291870380197696816655156277091588803941850483970718560929155901211251838020529144001805602317303045178266728418696123374195100114731962187658946583301470001514214907834896473598361591838817066438242656902795814868413939816800384362168683776517448019499105705927309453941961939743017431154365763000110829410029787184683348626070223661889126066947259402637114118317121630573891927650054684500078034886272493652418914204725990092092618317720216348485092519730130645443638592147112717839110515436806650775781310241582572030732411707762143853092881178846915217629938352823022583694503792050848764059254052013009405106308886844531392905239901759923084506235265579209744492827864966576891010670756371101099760546220290944463874166991417486076946692889249550412922964101811080648163689860084317066341323112649352924911940413796201566560184500640311524764276656360785583370859099717342533858539998860905263731114026374991486636114470231590634463811340130292139867618159432399693447559616052160359784568827054500172393924497635679686683356629132012698577423380514954917678274151506434956035028814899266409930694346593051987401536996252240810152501957279755334391874412525591640776456552258188674769697895803562417735181320794714547721520529833060580219292769837867302383597627071658287929020159347635190034404746763312224988782689677238449798047341955211638289793637028177123544328593314417477922095398307528050736468738057288860393431500433176214274824508193266841518704701865688451383781622580880263571849109303395218915359013903532264526536333088663411733263502417037711754632951308691847733926428485761731519584914164074503744944273092981547554156052828808227064363125571932501909321134613507571907923673623458123508451866747242400441951657171000363602240806915497525490540140518096079755326421304847037811350618038138653944477496800943028800221392713329895245576295004001669955423092317071949721351166860541017173156913623075814947305824579662159593948969698795260376636898011795629456874952594343446654179142507143562465459508000767430121121675000457768054632587226800131541048633975844775945249007251241604812305361863420720147191018335266090928745103930185697652344736345721183692596222234294656376822165308356133888439550291738454809484053919997565468482790604596553067867126313080572914329866159683583854123755478004643559581461500202456510915457677697375499403647966656942074885713640323743513506942638804348504368208611538578608447438068137545666805017139413910420887929891149685635137376809285926797798333560491194573345117288582370568055814129581129873177537299185619525893776411675617634862283481320344790268913327340742759810607183632207052656591101277745719292534446683949279339218579073792753524036721651521550711419320378910071270482270975228694460802803277177994045257700668120166265213650735095752399482887183878188212369946319216594703567278678997657390718924084825052269379883335427973572144892188222735995460135698509497828732282997147532732904620100429114989399239830241899172069534627962950196665795074093406691324194691641349409734167754191480420162682294241992336324855496782552037088339193556595152133820207303555890279099163129164443336177805478974937910441217071648791229951193407024227404874776152590044235331223448510530353350377496076895612979061619369108964783150418749269593969943417283883437475034795039816986280006727870247721784578854248424911243699403069379554205787622555566076200506470142082862606338782510081365471701126080383109269331286704700908292310156361979811961333153439215296383220058652259643892005850302779600454558115043397371893268617089103023999159720616672553660627596971460315711008765339987661815034047859718698645302948200755258521683495061243781237339108198554662855085248761939463556913070502365763783310822784267929199291750007867983258534666210284486708114714302692832854325132301712921510219009725923127786602854576447504983376998020626767390786235681716901567727424287654815063186117537725930395149602935155025410915174426580015218904706584849209014916485653260873520093625080555140103635486275909579523150751063966504467756211050411927507870003992174466779787517776470788302450208998067834465522113562495214734548114734564167439143407847416029203247994872195342937411794462364133969097281333371746032448265919254124936591846523268268513241580898624006478295576512185233547233282202254895956078142217453540573066933409725623631149736133423566137110986301945979222432374749047702542750217302392620461474328257402132510150474245093296306422890750581361630728608057963861741978512888135847751514646688631849294611680656070430675016209029856702952290248795353225086420153522467333312354823967833730670185829324552364807273733087336205292454937435881742736237333462569476199499539663859116114404955744624317154697000209707596201214151449245793404995465623429609415124338502359972898524016088676021905767174413726069900578802924586966857577183539082791729429534757508311475991926059613362893764750084572682905747988497816793471131925811479732607764186330095038001509961809957565110953467924992257369631520579066400761145714893659676227674404686019643153365688450076663889840911192473211517547514363495599818915345641379590845331166429978437774491228861424187843243612243885273853364288701807406181356963787125220604934537526550635629091220286464515138746281043961079498927411400260119045603000401833206222371522670716603286947448604644471434048745488196938042619636521768111967908742466433137555041083367527923853692388358897751470968721666153107845540626480701482522716857932282653523245750035988740701003881935467087461927182376320865754890142550923677246540658323309510666847816103703035981238055873186462286418160981465899911662173226554902542209111129002072516992540977358415023593086396574324911357571508213957956677856204700959837778531211083150446373966406853126103543385613009860597736549797955090385173675094366187322001213785858661062348561597237769017197009571301035299623060675262673002665418101292401413156613384156730800179682964328496854073157550415192051674008879380849362179182612298948726526221993632984159837452172972471853529575401279635941480844902183715670729312000341485244033484106012507154947885350969966141987374176091715627190728483408848652079841931353856779461973755432481786235915972704350475216838911807691851097096620282506165904559917219078447359421556998824908147263265675857133505120238464709585317984598612487297505004311644225163829186678217311923412262592170515206500727039810241607225700769509136779921064703967621392721327372863695991214060873686232378046734726931827665426875453396140463537954412313796759090366470100028476615946170069346775335046179596556735200634097031552062247476914584386203205849734563929262955025351962065671015548267424779156865033143787870013608116392599469342705919993108476771044544371972548306705034286548361938435416384468518832639458720840985060556318929396963946154697123154831019908151311724356189189366345119440830737196261453670023994631411047699814292431601401430488822591801081597157306370093603093496643892423763613307982791979116000638240224512886553082400062005600410054928836239408934173584346887158483440132956194146654726629171660289897090911161146171128464486047466077666959872004165332197299995917177192628638418475033450641926782106479617867635880523552286020593797801265131591590836599511987232525814609142578751961532111311613157970358503828123988191051967979453180266230770101074435777015916824406647436675717572544981966279826980525459622229966974900978591648177087552662076375906049581656002489870785027362116557548733106306453096796194855706942104031346441736082051486382415171234390132425425664293449860607517307263366111439387733364110657868193265273103063637606653450066660174503410680930884620009013647874707617181751551037997058653069888847843484827921255719700845529011202695147669085936745784930987341637300750061123117628541557394457668087802473486357309380565752789842761140556520835055825526141457377349073365224795599517174151925984885826689891792355053674289626232995787416539745119746962723175889417052887617832339619772878168871047670992722235708782490865099956603760000197723816171082022917910532166528761132759531294163974761423157520969360514972525566650491073908260803715791663807696855293368733409623579869414693767155754006235341546409076978956419107026615121438314534203793318451696614163659454931332260363242363981248247371254475032713116516002103640604914356086335415865111989525549006090914026554865294266695415286584010328575132077083087861845818748597046016026097864492029159988475866988582041427696550664771751122608814470911162988427492966682311343591037961867836340331936109228651510341912829311184452089072894625480176491032011963318008849419140674830757336152568657043949836141448744936798879273434038698698841624528622677307750589026034850926242347772225911358001112369089079503687811431405296497604674833867713554194099272863671851503312747393999283572539644061043002494128287455508432586996750720400394426870003002336812606692323195156438835752975605332300824299547892990167504345071417298118423721378603792169289671042185991479221783110606176663987333499573632100239780595962136500308476532945378776367009655580919679437365888012719200950567000638034349271969590805901201931562579554202912343481862768600747834165667131972978108156985740679067190355433819738491651388907829905813741317351620046535908813059272451647340463426283952535738872660962387025040362723857542242308384050126344296429202005004125796459783548343076888276136761698164765246780950930052470237059407171472683238524805480301125424950971456164613645894451515111819750498546695677423534808853882801984038232659246364072093720914238169853340883108849227016475372333401907165892311935913834716540769050874670813531038201458594479676308351900874179688296725056768906125199637396955143063850955776225116856014037345114012974823190523169479737277233343018533486747365990565794184594070794936518344816285788292244253469047462160165323077376628970488665907791054442103632781219421669772977192227473970528035185690985017394110776527150288367198506191998783650524125524526013884193589981167129141279991138469560353781833442295680736685646522925306782970926527179277710737242196762571990135986491802013735504013556050032723591817153962430882597627382506350632444335678877637014746699146338930091602781560251853821521721242942119777414444074178151628145416133750257057271133014402429327403314509679134599713457106644099950728051534768151275455797680632748339239854991569738962229982229185816232793814896586665990830219199300525705467794164130036794954561559281882796172830661707672273246851641437116421354833216482113023848266716837414465712330870725521102614192474233338100880517132691230238529592927413356485161409937353741854460904187792598829215352676097487181805558005073974648462773588270639687495659250123498624519498574323130351499012500820087601915573496463909869051663029641863370508424917736543917235600966978624872782447083741914627849164712012905579014054204503865732852210953301331038792766886182717480621119789140418331991237964195679876718952636670569221678884530858431873148416264261923408069982333419429274694368885390493497913652111947321531379395725092187728790532651575203825717138915318708044889992240737854294081776408981392732832881773541351664303001015310248307803317566987889382211427443924059714961999974504489631459712587394138036476666157495083419594614183892689159732778582467146772578565999866517399612018229473279316280156529432542887373071178631219317423768193857895839094229336040401005642142891840600050516348520156892860652634098788671996810842967553029060619227667175476255962489576267003014998100411457711266441338122503940404628117154856906906566535192576315866644419787566592904077715792214499745769624185905059395405781088850707758819514198540162329863447601765489630428785376702542618683500136104235433001144076304363032736189144295806373673260869967821555710155797250915637605038597778618899880423335294711145147141019745565682684328618496227471399210635342984739078839814634308152478729683473650259722412014250482354243280806851937477920402231032682385080041735363048623143639823702417651391078162975066178102700427381212954317365704684727596620524928376188906444589270675281649548183602149952480688731113189608046198018738941454251047869034629891275220531839019262643348115174916180070040623829050546832412674019182913057921329935377362685262303122236295495646832791492128920415297581074261056092065654984411324804659399854156648965895843968986528813137920667815795912719413608480912798580913349406288479920902946550269393471687345487510046301240014505970287207555235781488701996794894079132560390888168588629559409363135270252423470685501733651435827791122608418881148560592362784449460570895706837221768756776849178338979127886167977781890247203697021083820329343619841697968972487649328298691617912951138138034543824366856684184756429803268803513654243663620787887056469657875479375053503258969023355623584046710396323246326718031881886173296542244864992628788115841527252209017535491686186746235139863426996123413587025462197106002828147050960455589539371686726542528353926980885582472587433826585379183212313909781638531059945488900705157663530616043325117379257973161151455652970342717314500472574215521414826005321365648897821442069201645066573715675600843680243769545119600748717266765524255249494756754748909539614998388621035562119063965129472821845978063891202743242716904042020416132745388717145679205465814397938821279318838130740123461373678703161225337340329433176770336838639553758912362456086590985908391334054751766618136851364118823061231045437382181132309111016189801515695712753412134698026441867078790918968093636939076430122894589171577546993086789139164881927252709958044289022602939644976956915323952948645729255178829492710007810237412234690542069126487619423144715252715106305887560006825505148960560125549952526228795261859390202636823967336726313582780310994756272891966264204154750930536105869090489537196473819925158169306914743205559394273721532786464224354528828602125274607127673291345811370197873881243964599483032505797773292710385882143346483200844968459295860204552609192766601694525049755246474593714027750447913721586758999068067536082097326659351044607307735140719697901716941372223808388621592841836831310762658961381236730842039857331999341742573599079031450594807923033703124651135903513317929284324483446968405096987052543507491801685664454565358285950113958470954258815714387930694737878304594883311445871779412730698637216717707156209275104110504861707629763439906677636849738511409385955643168327017528047360653846087148225208559266671501180885101642358870998360891977584436071126406042237673999268024066807406044822579867049333964913513149240276785347341362678602897728770096672984507396175695867850543014462079792061347292205599642259006746403513679557275793833819329613585833411063638421948831994845240309976654894243309526512181253266882342008825113014235140973392325559414373343971969322804002912535637350193118718448930423028189842137208235784947300708240962136694719144841472511293472235588210850047077200187106882330048295099814901303315275155729801540661691827845202457186792442187462686087563640371186605767916739823164228290837775584355612447057011552215373834807203181727628517853442400869654739589061438684300263432823945877354894032877029115761970984416597254199190259843516858477792441148328948968147192118173759272428550206168711097107911694715582170537499199459936401155321566786771270971093517997578227990174090086179215019815507284416528316481619372034384732502598751716674443887821615758875964552546803677659259514032211163063539898881900881941537906805402557098463256869657720505286020065192270682323662005949034435408236624912015924531930838609358225425005798622974612094615578464632607323726406967551356615244130766274364890170445704078235293142159855746063127153569179965568670429839989584581680884583351450076712559226163842757520106753441117175018392335796835304871702538338080963806053340964355545408959771454087165289946543855984773590777233144962688545852413338760485592433503847874193156492837677411753493145494266393034397934414562595943443480877970207564563693362439541181822347903639620365205371252473170003537274138049376401018987253489071758084051193180312701859927702798877374600723290184884222530610500004394761222117233173987054528801089274165811880185201053254518557879570079445829747517164249963348533262024037109092715354437843845510468044103412499904159037918851430429584879988744884281460398313514182921331147045515546816864575003830409994202784879402018158819373789337118335804199482924270466967590810639968991354546725441681395484786149836071910294778608554549665893730200965237270878048351354539351360846781199771600472378432213472037820254391073298152583215950909614672777154569156806080250177555243416199147041240338627380221317039286204844306760597236694866543059723055740380076546086504423055298115941746976339662910342682079922552212565033872872499934606663800552718756501638124885670660752255957953436425218888458417118972403457273059702831166004842224733827763149508867248314067863377233444642825106279095572912399069495359203177239606593234429489271427532590178446981474030334432646597189020374836631749157797017769399395526222162559004528053251737237999386222750604857036470576125538211662409158352974916178372380269778915686375502676780899717425478715353728901440051069190022969867602694614729194063981934998259443700120881075480210412909389746213584824422964179300289893740625353761859737279423359817039670717482056797201082572151772647703757313565146074351697056939634507832125195921655895532099535407827571225529979551612343627363026476503409941471366186764039783336609387127836528495477666872241950610940916334421633256251949276324061308007040153499645550779534126741448094955710559296737694118796466523857950506634930850184560498645251798839778509282223988415493441644366089701001564660504544457082972999961806071323510341625352612543225781860077180171441826137644825487151965544030755002646794619981957839288956800573979970352943499759674234927513263926313035965722888331986658713726487192468341316578606644028209852718811714228023806742021630310569135612921785207525874268101902499038819625578651099542904314623738371739276314989386315417591522860215606724799541129944026447310544003092315342531374095513467990569196132232934760430431033053792080666786343487398842669809289905740202045936391802348036289963284214353359259078286167028889009559225397956829804961039551567727942714901715498560330058042529339135193538644777740981405485727886673217211316476028999211877469305348363417697063169621637308026499206873085873939138894320424225232919881392183085599564921733186253209273939193247126244096699404880643562298231847509893527124082260130794846327801852883192384987449199068800840893051978332514113585226037543641589793948501154183581855049333043036135430743402786269456969225480352672307601608338679457303167858018215155529140386172347267678256423378664574346301745434731589568601396607612839049404340956498719201640365013359288237446218457321185992515686945695040568678409745173236298747913645946140757198242205594555175553545740773102054846262092391446829222653205898152512796206434654989672603966690253407154462062782145406045832524725715814513590064469128644263787796813581660574744099911722633558086305480036428762230465041943393657547931663619747783800049648968809782236240249199747580701230713583642927162656336295398654508995260176650710549027190939223222443110291235599205346877754762571370874452834560819708605814638125514349317096355275887063391115949100080415107681754578591375834555921336539516862965218297087483997721643481039133664995815596259376230031282913038722753589682611014420603970353089599929032457764602237782147850852578797518354334232883234737260818823076529763318238436277749975374560730763148279848989072798055431969837385573811455080253203644085083391850863210311591471049125706203346743891650280342310657407218836299755710301815290762440132648592940487988220432586966519304367604202474782828473743968193328526881075959748560518040754271668067319384007710452755508074446070954552423099781794684431133174147860918416312628455899146063247096559577660418274200525831437556711275180261335112862643171704960096644126128179286053216918248437368127757783479245415386149743304130983971651631252034791767425686613214312021318650961244941693944436052197432503011553480279131501645773507351187504916616610910693399701194756299160556226022146361720765452917345107879581268053215129413548876742262290802926266198080542346883872302263495828539162444550455831004382739529474677937369785834239803935697125381562384531933564193633257194574740586949533287568337340440797211858590725093323319668352520766933713337124086858942155428175545772446242865762480312618231787526726987616681081032396038914358208282743382240474799489811630948083364831999917905145967774189259628443389463011646270147986593461565230709237091021717794865054905674155582815711083138410510306806190499759067315829711275494867590199571558686494772908276737834329353534294302384608789756527567860215982178213922604023435707946878731200726655701849243329967226235152102160362123335305115783909361811792551617877553947130184919318569917266123777162699910417753050321433529264475037362788715850652596613547773219056311853408753958420354008341265343320867646862373188807023198126564302282024523690109340355032179206821425169753301588715361651020115637543114979060860780157632865156046582147626177854527989356022666857645148041835307337817694361176304930990992806480781503016188709579238396789024777615422695418046782499587751250081765627471726782479843758176041549348106534295048304405305818474286106980759154997051809543353557908454790209923012308879374230106153292832496378785107391018845365357541286305886817750650415140277906252482103710742471441330905671918362671210131509667484264533165041389716134757694211581212899838032665993445420634813850048072329059198966334448694516103550992306300240003766476965407603009093337422677198149508342058758947004344352105258113697661279612117797460981648526363030510341329428425090033578180324915283940693306667704480357467853518791633794014944906348073504742259585284062076417053651325317562497738466077478883444370767937633115188144505524623182303868071938548107691495906604220876273886177456068409973005304864746350955083796836661725635171925221249662777494392123460544707446148536216261157210017600574031368877734863173993789197432314635014381629630252297990936077193989399383369416716117368763854522598559095985122587983085138776612590051761822008018167184274081621389845318622857771639048454500029252547533878277665012445983639624560087375424819133982373801663273865084108117504067257623793169504011793074113401827972574418651916161966628211492982216327176220253259339321444916055470538882886977426389311964640874393048058212098108375556723593524923915339945002926077305307713634635722356289275281854360235481628768783191578777106635169161400616680943750927234785009482941700585676191299730089273973872669527217405227306508644304426292246392788813407651862924042117342917202297855740683034161374046082242764495088987205637759031292041348095236192925088023328957121245472572862286952662837190097993338206333343914958064884328586248808496910410364836164896723835428415302371983211810041616189827732779450995307318115374159081458649181378823218901931575505529224301784271099903754717217511780924798216475891158733455510248637413015921394042071128121468170058337640060630193591890034885669649271453566040334283922960306926783944749081361421341699544571136841929551065075075669346863860025639810380133186344856768216943861284552283289174216417574094734057049557732375707013054055677185284720508045153525138869680242789741615081973351172338792509738749850611137283088915641146440669727162895177304506952679207366274833378028985010001948066483830590412822055307913245738749815036679693742321647586271679022574618214692554206829410647312285503637990526496747300796499692201359479955484884673876630043249973343665433771138855630725097158073671694171180011889835399601514614003025585695238983441645399433789539523608418169620949647567955987051553375810506509964999867823256431275757389161550965916928313879751229983974722962631834606088645648410434204249121744938622923820695737481146213414607317478672784299908412935954367744443336908964086096171426589327066285145515800617832483300980624202665887202110530198992203116003178802699065951459904145911868671080025848178969482062496704837156078349964715913893021753628018421744940744465905634600846757418464298956052635722268907041073565729272866492864873782325651948167606029668539015371701408761357058858296949929882732704103940613099483161032445493224580078929188907056712833690402912091512849046494491607783689903041789559351128723333749080665708679669433352728774882337211700596235039639969150216211696059021348077614127646883859007044969761836042407094685497925354647937570460605233099500708545920231751492011854779090556763647955848395685548130055258185250668888662643589415932663630299563047444323825035316737198137390354818218985857912763972194230335517609637536732404058825093283925486302561636089796310942306941253948676719966983931445889144946462341293841859993240992167722338920135254062887883215350394325207995343841099163615819412445318684832575104021397483380760611583628597380405074107991601336108776167835340503450743238556873098438103018930009528371565678939483744787599765683652326985960146309982537139092843422317058789542695829317884884757999932337266511129988565287162962743184587102658781081701862725827492432474549847700030048482656742313581241614696761046290232648174378691547612849592380978791186851080930836066760358156272636457488008429756281712884205901444640795958984253794177028302083362185575398735769474333530858219012618977141124065112978793283279675488408140227306461006352133311147665388161077528486921468195253812701914605836162434570578778542254232057861522603699412715936330684499648703586690232281758211559385337471473864151167092664412455939198317890775647217799879377858902276713488650892979515166532217062504992883391855400219040001701424904710554653518664968482620892106557414190123664425775094809320161025108880873376615953323042551636406693884802413969217682566419472487648377940483949096353955760686251777454263975951298622306887545931526107222961690077003889009262860427908764073514108337770782883978453924969333592415914894336031004290357636603337900515008071585107690514920312221467380861862289715126248846761447483625095263202491298502550875615106946904514857247291347235984081711903001297920881398555508193520936373176022296456622471015878854320022941931976821593643274581376652496678542441903272349697500813750648637818042015663148872565885534314461839414242385334955573977792578151157161089848051318579504263511033903147873755563033122643966991034195182763918715588045412303442246153390560949045419012044601150424979950024285186603426974123563284217910063464898211074058772292794037070274987970675556340585602144002849445487177804593154448138941061854206360602455904957111706329039108626522367832387434969499558336855631064950182207503947958912106759062444308044623302174472566108201954181391615562984390678141438077677527157315394243913644704362756654064379062852326954846490507988908239813786044516364549503053316420597186298747767542157199948859353330299589448394929292329928969700398532079164924325279940507525634171794545692276374117193828542573638247331262098038309202894124885144934057510448653913848885452456987987151373817685545686298838491732155235505348213972380141959830350038115619529619519104568496647314929908609967969377034008706787138938032592117805345858041714016481888856617502215360608047556403278092533232333783376460696419460600703443654493487034639964431157609632985740582016021337929343760362486114632466568173843922614872153610698026140298819625777741538609114517397025553401710172072961669746913620374467615101707965110584225458226544911260216657500743981657882014796231549930658157367762157779846591541660601734267284549017089116983596813536373166707371386149638421234092929577360567092355221450624236332037799874170365455679032080535746154067537055796933368281938887986903690972584844104042424959294630036721639700726482197715007517303647458798422870338654018832515912881062813868935835365525110837051813635614209417295221713363837083203940627984748965258792521660393033703976417970002387356297405071736569990009364799939981058367016796368689288274017180827672624022475122272421316549868364869016343555932537849466067295704746510193302857134319853074351292130339195593327091387686566833981330515848330320396680283300989761027879720680147099034242759796373457698342297491652538352006045672751308455539894660367345481489103496987575938183752745884746893919380085619880308612705522912563299198988693506479677323466777769075542933361352838393838018159871621449544344045902080584139434925452897927505087932049673222899526623343536057996511613832281294317516728552328857981712219018886297382012577096851890961189015414803000391204174172387584102583585926862904337291902210531322521089147516841091392561608553931769396404247443626655128370307850967020463449234112451133243706359989702009773525330502779047584920677349348387651061083895065301953513355989891002039309132456562956799455285248260226939214458945333778573490628843714814798189880943263802112821792236266109675981067765575057960233459478051159625140689659524830630725742684129948514188637686361390436195386031410078530261691852520454228785194538951492002773952551517084698029508987801070202484405856412390622867132787942778124640292931986962795450379071726397020878295098642173884388011092838105646796858669445585200461416828066455622880832177353231065854309551092605396103573208251483982474526396692985364787224570299981522590593611917614749241126911844509298084553699272394558590950438244740337660390597997557402415345839898294909512256100442152598499959049058819468906326574415719808324593997601377916672820154495013364940508463686057090765167387914667526654138526985596868719823315764047117496396877047767928687349655774098618094387298322568986559138831395253926331411736474265876629685891800367540529052708607321109858182848868089163913871046004924087627437985669304312175008896559267163103177752836984490342580431220592797837323445504313630134295471326953533632333893951899899300313610622690990984883901248591910136046626691922216707568594042460677672268251010562904180241516948656030751485681721718934203219816732308307452828099726189517865724078568056879248383691648068665041600772599468270975765545897615798957797396583349961279884029938859444950177171519046129211330774248646204461971643006292294806832517149780113456899221968324591326811068449860726721209646501376350477584927855004362861999949733246305150123070155481509309531910672517683170798155519125810170103008765470212961180980560214952980248335292842945744074462924383200121146703029885444530896952596678283481630784555385029839279031405239442225381962895197561218266398077980761014605126663171005855015051164957415997858489595455474648545724817104076262301816501046132288732138855646522654144526508344736524560774715890337918276951840445965994203092894279543161399980082064503802178289816553348757951850044396165813292840947903599853883460938232550368754409840322756445509654571004304574506733660361151234201818990661609427611936692843826370136700061097288665034236617642853366692545348466433877516917097897100727284527363757739542074317970292730005868370561348163808643454405514639992549102947891535596939459886459076228356560237162303557904780907250730801611545701552752287359320615961136802730538617843454834080843700151133598508362714705278914354916236233595852332526789351006623664548331823154863308968100927593733763392862448953116358138744018681258850950056387093007710093513653419089002994484582153588590828457800306944773661800238479231322058364451065622459382433451233625054187010300900781579431472730576281765270405417783600748900656369378015977760362618903771039067588387550709226586224895360857347045574216553615716701349534985334013729835689645777102912449082778622467881450042971067507325057149022159585850067293273423853924193597048114768738458907885140345440468188001872530269174464321091961752079698367052435750982986943048930234280491563839640284150941517445641437713591954587681377514552784670170367291442911667167258352001531462808196968548323673437091514936008259238076708089387102979407590714701481358887371450836434864139508172644015733356900417395250613590827449514900997796209693714197947700360864415460976664333768795420941772068658131723929599452415727765236260396365856934005869931712546669914667771657971128539063451367454269379060997892482916076874117964490959696520075949969977965518663380701803689627222690506493923513652359419489611485489217419116535230215129271202793761252887898496918147616230214266740952654318612875333558334980632297688327414772966666947661867634907270235640638634999513401760409879524079946160180618938041126290657681046101863179498666270644706969264963047835545540242001742696272999882157055300896178856034187390722525397669841397184545591712776336610892823715682376351591492027481042909822563794782421632222719510052887162999107336149446398798133903494778428538036950590551934295637881563368328903187374084193458939530323031450702111075606175725187295316022194131730894819002819420762076618372405311036791705471280028332307987305967404946417424766837240253242273228897868399464484528081795392199032176712761456757512562326677473962430053899858580676301192381872888445307493114192037715256936510756084730075334191407635321993537702877506867194677384762755046589264274669880973174043548644437602877214589159234534089444627055865991701583125069507786445480793157005985488808393768338201341059026955362624170898087667895119935406797793728263351983583042943135352390705471664594309890888318823386856536466961538253666584914891998491559626553987143899129771113659854801762821267371473398879130411628620681964958734471427279475466878130546595288266883120774732367445815688154260140756517518191496492462488926533984244893437958666885258379071669616374754189603379492575590959270932634648951709688138824204290172885105898868641977719618823106625686445110008917251908155541416589828705392748510653504513475605205504330229655252723377972814978487993107973235523082628369233750598185934917430647662862086741385929463406850346278774900869213276481457794704950690624595737582193714300860760965126782795854105403213303808591267096317930279055285607098662153445108666532355820019835684706760627159210509297630695137498267812532126755809568630846232970346464219943724811053315028692929748898782444336514843932695360887006585362664925774711927029891857139867440353324576143118371006441368875301247364020379433298266961086090554621277238287581042712781195973374254558441711927077357433634882112278671294367031960139706796468599144737382101180678125950097113434023088060441364155849090056894095135345852091562487376920819682567089481751122650575729406748785584968860956232445532632760951532837817541393458485660374071846059686871450982070915835144853366984298788270945703116018320048252083645457794150616221509292613084896260662915382735486534358619863112060715211176682005257128360010853413714786190811977194101666152583999926760668944571604416891178006886502380747757410567750761922126510659461507666571214420645161706596041002880594918656814527357964157532854603250351023189839163727333177808300743768470457677702714649701511952453919967913312002964019561340588309831727809720653387181189287747727410444186926085328138705955919332812768893073201827646636215277489756714707208052285819818333329188013065172274549000525603932446088823062530376589443895885001933128287641681802048857258882954135463040704560771971763158524242119636753594900204539659792296086517065063784556574725841550243212384345116201258239337549597939224060306709810913166801556648557858222798260995993042895926353596336426823776593920420019837427484136006279326106602648145313262764701016133243453356159486394683711528324939390044800252711728288963828060759403191362054832364671630378781963001227733765829598027966537712916922562949287467686525244278514609709569564214954362259631732354292657535459954645273956228414803114917715548210516477861175635130588902757081063533957327439376144662970956275746697779344195845706081362336679469006073723561430349743075785170573304147491018823250292964388614987318002619890118479770573325366017564225019251814405359855941974987955584949271342924389674734620221494205006558023975345377789066145259510744120851171704758182268074933407995477912747406346775651970665768058314112974907473626062401720155067969180998863955805419470842300404618921768369339403930486896928200148329650514084786873779772792163308535881376051127528296392965169992820583200601374483939442323660072834270470559421816763557926294741886553859923559278154994313689320635473153487798401138359643505357437188782306400669553001070230801024149509283052704632118763768125683250993702644014523165676180228994604342342600991003153427693310675307283777667982141198501257902596273318023161735510527339774920384799315948383847314916666015419507292855688374816993288808412005357542049387694891647830090435863293761619854132251300722022173924483076685655158487015777605344790063863400516031498410559872470981581965321629629420992336790180518824952132596650053377451447576832658215931888875431518977833687160766688866618533261922883152382078782706771128466812350809184569420533201723502582617667193290482996956918386226317596706792020615788149394619151349111921466774916174893364345820078277907601026570458251174711124208532044787099633448624229217504500415749443403224319664558523656848999245950068350196139281302607289006993871200362353820137255032172603154236877282783244070600658751528722760496558197807445160450971572905789985368953957389155534578591082609578054296694963754834228126219964612918250284338382806900938704643338056244816855446338723812212113324237599498955780995066821685735311352078380299081351567939051439975388228976076529293932223806068494923146243414772436558500206704669015750515211157033018906368327101008818502525461298558660282125148840000477748854840050326557665392620004608731903027527336500965313078893798760368746318634452219079718864803196868577480263356993742987893699918359938993283279113536998796774741139448443796489441260057086712349022534659864523216060933042918227704327899614595313981570746372625373613706673888279755048615621263026874105891377198889653455206571008955490965983936981610268969840693744713928365404137104837233927660449547128056682376028296020245325820138278281712834806125105152009053257976529642120581493287714993191871011759838076354200569316727620061163993780826552207817560712639788767169533573883072484354560919499593606149644174729638602299839381463958970662178069773155490479867081459266590828288084867712322036500303723001328006589472924619753710080422392808167806763148559775575832511200802675987160107455998962299119129252255081602171626797545820147843548357998034344185966170416648104979598553537661976902474870797162254773116142911418352485697344521518593932238415006099598313736076664676447951141629450874880666894178539048614179270479520903407092979501358322417249107926525811351468154025017855392738088278131515709345250614452206922426851584107236012187167662800761531728220985944071186654991033687118337709405589905730682716892050154972285312676550196067297264012147528835861982718012565998455322386464894120561603815541448029117116280558843846307826604819811429298957802825047029886528936348184209867503397070294666006175264631154365740405273357708901208134789089201569024614760559112615322110171765536916837150001948677700564532070109045210828706567359943899991248427350484449723433895062180635660989626288103423895872319546210780330975702119340886934715661858374161483476541733829494182931756736552705498215149906632369070571002212717171391600381947484407543239190027862094709967508154699294408893700300984003008947619552416791365365393135423460978171178247438489450436258624117040888886341683577057521101283876850208292842654668769016919592063974042284915282763060050988377059023135317504238498853577756537702707007205602611663804452481283986030758488926611629489677076092480217016046127734931599115848468909951214519381994169235364698815235123848873838142395197884549315059583728211775190487061779890530318023091453507399294934199665878170846142974701034559955987400410946412213511008542037256488201449937803832384653592114704306270525496891472160786200825913298612292472150966474507946249472743589322502423263910199408922458291658558350896486203795576864621339653439238832294415831868988924258972545048232652070757640780260225667531183717622455403959454155263364022351001068564248379924303556760195855328017783936038094680791492350410862567972629784614077473828338895143559885017799383608894075564511524258848655999421140049572688157731278116287355716006349759302069211395119347397605773183610489773068270751679092133745129883947514536936055244329055210380402334634334065764007019539408281458527290135625229929073555401655554454595289450718970507698074775006907292122211649113263543308659514694230474591941736998474091526762048921084321959978247983078855257906816925753724611113404601983831493920587165365018409792524751822493483296104207535401839445387502851860090593258637964707174350092787445463138462470616662298323887027099993388074861643472558256877571491054618391726590952541590144034206536434716733064340827972230695722499656243884552447261452238539241187047682279601288270885254225337002735565500274388189456871930547615202233003355988072288635362171549013399608542444148297437812122022253406510822979972300417074265040093863530775249594022507924688014618111995222894172438660356161420943733552624530137443778407300383046480723400488384306395392457777018359630930160102069600400654995797363980093218310383251341135058413243840081834817206155050839818902305290615049998711706125988784466044409188333402948693578584111586457996325951416173238716438257734349706090140231639879011092052659420642122077056123672622669361304342953044474412606830725664272977332235254761215098233666937210160801015508461243326948263596082945075686174378738000050077324276806154984304938710936616230131600179049372222657203713836033754093476037737816178703065432566951281817864966168976406892372016939434784283939284573962283017764077834719554925342014300943402435642959590805459149885659926942519510131069476584242261093642636406528575862185068455646274628089978194256504488028777182924041057230285532801840989461821303025649390458809901058642749535545225485904982487310206875040257087768949271791286836696805307036451715471514001122639614527874147820838067945521081158650411489320595053221037872607671651617091000301581281174714322536156964238306777165944022188138357911614607944827924597086518496277262934143214759269250613746208351563861555710467364789250890381802251070117522010978655010883895136716780857936406449389664632011716350270547516565897522710204802885572369958231355514598789944659043066799574523968644040527251982977501129646071543834692288574884908959086598858560200777033891025606897482283984635473711484998431434362892991123933536492588787634569803390872030246378634004863557887239645742405764849928355231002501282186076119249103865299664082761317495889015359424063913061509508404182027776376449166997137977151056881226431707485609440473691475422509225675299385847421214982786417814885726470487955842458335145690117100386019950784476239252572101724183065987802482119728244892493773578168872655816939172935940007974088366151011249036859172253960824145216387578161984044277386119535695741967064089552926213749416276420059179358882256433463184449103093910906808596524727485630063189084756384550137334048371359573012141510499982567682140712361100672440240850687717618804881102002732576446588456355047969488579648277042595426165845501829750011201233163364433856967814148926587820566770090746723136200746888147182674651749247452460451287019206599931394943629499786518644504892206216285796934763858128423576212396524432075630262817669478921810597637181196665381046021968609818303173082405867425888870011446403750023583920877195759199947516990724780553403922545411212650648833753561264060035109049869609940828426992826412065482094231891467025107064272634985335190159650116094425066864516188493818055948922723358147833791167597830646673002583704995637971342051597970365099187845860985543664306700056403601322309827831771192600295189896326679651004360914247450571331245054207646259788794214235553900370424768324144166757699753997866026569021208383382928057227137680058206430451121384924734157779267286014072276503950010074843792218956059915819558110221695467871814432769286922980959433232037862862222645905081024744396526030529839166904370606537582842184027610980506941544623783278552865207131987855089540308368605604492448027698365061868103260247662558913520106949502792932159392165621003761254032197754692481662303998793784497352943624891231505864410466546950537649069478063373507977372943637670557229468845859265634788858794832053056105655225929739225651215007126493894619294409649693125324962748127114743087887770812947750677534130335104914316604815509723052920965904734337043949779240256568320675415071833256481258719120165901764868495057143961402769732509957978888909520432935413039563729546020736237496300231212508991759053612876769622526955019667577889317063820715979954656923930714657650149935870677082885536047978508858936548064899615990992813724044178928483135315880136072061168683055780217427812589424687330610199040314207290216960737526877497416330893970763565581657565758149353100914735461437810030480386851607623175378078027343826685991374175756793237742649688026270523119593715511200020206307612588322113808071591404675836408360094688533226783900816522029880093047482265296660128183097494019026394516228724393589168006222437634511435243621453976134625124875619152938719575874731012646106348597175317451208818052447768283808918449206902726048597080965164467431609769067664475853938557010263161724616923517820602043681310530152509077959419423319599878153845076906557856203253324520148471204952997933877261068055281978790101302934047186869965072625978528861635137913309522598816674293946203473126406719565642575154077545638293134745360461936899298983954723499363092458670606608628464085502710008023250959229779009177993033231438984923227143759030110548271442066048731691874375053016885783464830805254035646077465585206604372501449896522224160350419725885050874233841089309157661000934202631750140348130431390631492150823036367153743135617888347807659419807943708529709749109135872671633023935233695648377158108707981746787442594458465049751193682675982758240211504295149415896418778237924464335275799656106362575904961820062767625547506070389260167474922556668133000847481888752332963168706924254676782621880611417541146840741000779608366692744729761257341889234955119495114612747682485191935933080631526187660967073208970618431000187510123558366764336236400953091381421485647587528987056098100971322820274185181549783473851481888355751246995150282251686535957413349055942811026666332522858705713092433845892647405911225603148227224648928729269617257295808253925080039713247158062128873978045026102227332521293769972714664357487877899275620296150446897222473827683228386759919674973817065749628286067544548990802622187478205882523115778084304661673051569846731539747765775256423570621300840491384099201320329413611242819859545824217302590047040038272259292219005445502092173625319931577103661025147741698831298436284516875540795409383652099042599843167970557221208161401487771496745363551657087559136783767651238135517340041537404779384553510232002602954686044400494030175489946593199080878392099231488693952427610877761656800787206462594687984806091782451753136823463752597267366574959222528893886982344769824946022780015056622993717801956463144961599789879302939485798231133483083002300820270672998733992604841515637020443507715385749064388619490881453972872500458270924296026984347406261205073611134268980584172956307690061930221920640296594984927673309310919458286484900239667989727471933838288732048222587181723984509709315760838205117566870577380891915791005515356016948016820272729586007691887471682620774995292380135231911576750857698737508425110629134166697582012482909335247987761095243315504062588636936793683285914479984625944920014400125421635362510312993794873975122062743474974080026155664823800640730331996148023888746181233007390683083471369100393779549875489842846159232468352646386293081465516650439604417954813375122111789117454256892702576986010114069674186771587800244722319312188318956047726794598888757792666084336827363313028306407572329649082865394321650541481680083351585207152432561559725592590619672305441916716784659629298261593077680724292739763773762739968732630474688242221101422122635975708854456500520478848234412346017650783873993190390458160026738308901100480367665664855829778997969003375594091167429768094806509518265865917658212897710511053240245665449373275721820265033161646057184527590155376612013436569972268523747160160517823944295062119781429548492090819075592615205901474476263430622674352733322239977256084030133944416312893309351979912390502385524216980139473729030714765048280465071883787165950535395951035552882775170828152798555573575614637660657555275995011387629210492009893137273751006144214731619616023819799329507576444108099627776606420126735537724323564977587493365834369906246531762372965692694267352384400544468314403785618871244899550884802793589442904329023680945932130835529107770631132648941065871548915655259264137753504556186673057478441430191778046323535584694105450999639061799423196537294862889602761519946546746897201095363079822036813309098638401918561503831972346484530292544732793841227274540607843588601327641009497574217816831849137782912785276309458275059424188177897540648957346502103305334979427681571371680977963535580497916287707202191789597119778772297053156862066804097197702973716517816185759191173463302277467262544703594890162197458150992220709094728662601627014857642322585600145340375699760363276978680272263979014585931291111470202502359538788729130506666598716173144339184775780376634953432563494120943812865727579616075642577633934910661078217712128372842326388334300913990039696671180686225761524208824692612078317254129082779862954115749612265228661852675577374041062756843901550303215563353173113774231883404111101933259295730193958608759001038492893494161087575807386790468614572115259019033761119800231392208658266013433590249162127078851649993876659469437173531563067898551617180766175059622837053400339109396925266133463131137882132400489462120894798052143307847767824341614228686996851113376655532269811500134460349449268585713129751743797987082649162043735880587101500858807686513549934791874527906750136886793516742251231064156974664846678915454120401393815809491480056425008908211203202565395340873618209405674058750800717850527697348833968860664030585374502421302515700166676727718517963009835769095404963908955387197423593552885518210129792977501599152448542973520025288235378654350663261740079163991996114235306891307560486980159683433107209817938434632178744181722647707196676772135130169206217300360099658828158101059879564610760094042387420323628581507877215388999485789322121879909510283665762225071530674702085470214043266886792280018710259809213770855593038095943983802107164120519915662235264447879315434517137804436991258849707260931118045948301958207412082801177720202609858303773645963249039715982457816032452955929639582659269315688271134719034321106317693494008890636906402373299184607031220513362867875231351167218440632664779683984445368522182491593886219285659953375986204665479914839358642998057486680804310656538210291429997655158494215427853689164833194452508685533195866764431803133925428717961672340319383307246292979985336162742483929723404665323670770989247929348294198734429968706601922942748251945373418367185312833895256850229422690518894412333914658408300436898987081153418877054891921772601878679819705662477354166397115508165263577389888188931573070938929552796772604200377911112460042184760735296770683719034819207404978063146130883404493971400784028840898576396888991027280643604758797626138183275907446732619978115319828618457801261092640233434457004958404828940888669440844042015585634974461063362890838358728836479243778039308638557548622067235351620912917153968368493896237547143345071220204586101775028191902424286702349138860442971795114087167833778262518837051270909510569798064250246526804661619439903935253925940630273234439814437255977345590082215532889800932161505974120316412886773803247480928073179564604647120290587285263025580598875540430704812545883762652392573073115694348720756163229091197916471923941712430008407379849400432091805153760587142305625583991913594560522421541683268627313910181253805819539339863418817343526381927724512301319919531699362080399135784820666928011051771607114299779500293516500301453273547928497307022224116656326519414231441681563778002816060211941243459801808527871764235283195938108865845124935231927729968267401370409657863476308970146401073892404176204223867336644515928233896014845351119710778405910997203298076162664948322797504022987211380964801422464557378315990038160846805236264713416586812230342924028775727040149422333300646281703966064728528158856283996653198379187384756707348016828650872136822917815386360217377543975682735489611037549616360769060601270771228248415909448841298683099110506929156094471961154044384826463230351198896418932769557144668606567965741874107084467109186146185305136578350251734134047956809155374573353149729636337648758812644755736546146800891893778024384731551776787199792889203633392976249414264874142994080662804040369276736032145372851946356067973616833639112429040853689376476150463893254789068595407863178869027223512083440906726158138266050562560072518582676058573334432419377967697906313218850499066290736331312933066995848541707252976289321179859238154268048460009028739602274644781803153846221956397497801373733456093314807843229180843977286034099860730285903759023816225944762515400568504914505112368311977383229050994096385610041001992426105395567987850783360581250946541946029367924825465238761896171246843701572083833845198977235398728770706437302350867474212888508878750111057328331705857514906655365210433845057583735386788672683283959696373767834495651691236337801377392218608765819126596838813936877023725552299317790711573728818844361431735095595211571040462908678211587438700301538197610823022895510612746692137984846886716564676747546661635786922263028199103518081974648715558245738444767838078553016979071783321853225779545504186147000385415218763557122521110822473616025965302385609259692894365166559538434410639850255766435364903772484304717381316695229392038649050982919807571266061049949809764299786418866123477116270433008730893060522346409134693489494871443493845973434410755531159996699346081524485586315916748869845650992668409904200038728442502744090236457790925184734753989639686270211663583221251840568363930842483739788200239011395738192343049620743518583735249292837193568000347149088525640812174352607141732446379520996665361956166246649038990647865306545212102347917005677839121317819544839692424486936968485704651391368416048800461273150825690009103884705017358737469537278429495588350444080397982941215560600177063880163027165766140383820442354741634801873512866297926386582422685361805518788274863748153327564625202892492952618552385851478348656412790169906109440672965064200322791625884140112140269229960654474561130192495069199455535537330447569807540487418498655295880102825974863554444720339615786221900791006033604510700836940060689596258288182540410797565060469050003938136683503614292037323272866052809209822515036174191614390656454287449797502075105789947453964337147733499498392440766248938752432187571058848218101146274836286016571770688667060004353752805716755186565989112578612738472699373334695171495607322855996899367619462550816243267909255105340284760972996719711457331876911698654695107978044657221502864466763397595935908247176508690545769046170337600649574060083868147725958962861806487941956581600335662607888765974928951355176586820291642755989438027474737155129293457131703313236438997464824937487024899846691754069253765530078496831294451070509366916447105605332853842851042235168227348751951869142503688814630594650579661661895855664530379971583303499920990507107526666302282982204525138190867535799660969935522604788827093869965427541215422781723090321116814905872798043912688541530637389973264631842099553459916605559394121940064113727520784883910399807115040882139313594273261250860767301601367397967969786898371613500090135005937493100256425519828022871012317752583137078043841144154760100870043532411417461162904685783526294250806697447385185855783103631958416824169660394746826038948495192324869184631952824895603489140590662735841262025362828225788947720283376261813977098174607645938528996281165590088711229939042061925001481382508183933272866000094983447054717235100711911942047784503016141794570243019610317126201846747619320805682971364029552162283117682869878773483534463375323414584899764455438486021508486368835598493129247011545156769020524028378967409514414841216382554695215470696601152557202739877707416901193192272096768089960065584008963595008646650582389586090177049673251118066125740913535147256437506925559455647452736221846606019072719143489987880900024624860600442377822188588605427029396173897673445673970043862682817280746047720404633462661530452162936641566900426877778826703778833696694074783666807083844813078951047382894574368387052241949708250459669390029498174652969922985701126868587335392583429745544960953925622244743009085283404271986407333609027945071201983970807129859072479866649804535403927766794784017017636983627707187347586513904369923990859476943910379854031800806964104889055429277761869381874286758479671397231816322101770521692197720494028228459722889941122651968876799465075528162750539472626623701849553942107038633292511711156402835961914520900327815913930623788092427220094373098856415529996188948870661617464823934785171998157680614014188895743379856784609302953992754546937679707292868775246656520929018061823727013556480600536824983331233155488242850507703767213080718599692785525783867594701509886133472621605967613622998074927398453822197980897142575430353182826813916165175898384661455340262652016929250960976171606307593228951201745374387175109979251684897810170786566167670767542044847670079565173559062611949346993375065043971404148040364128598772366947512577563520682682778738941623267806469035890748897331882928969986998752292661880407570186023134555850869950315332565329079984819873284183735145654716591222541915159195792144962758601895980672519060453232509187074268016125706531298580950241745071003273033516849652827828184859701792471554863194095011986075749988789749901281161145513243425946048733121313192660394623440230561015325078951174870932695918360217330256439501916173280840916736468420183778318100461039878931144447826015079578003739872681146668147814209877861733604476600405550165000673096707076378989204261177784970770157496863851228112502747680178874704865556390963129583659315775106806340846048434359671186517227888553245329895325460864844611854604959624787806676721173633799757751717261004813696996463314925315254847197416249506466810957097064104045224536173901892096820389635735185062039105524319834164036958615459225723943549707071990813674694246338682064745788039748548645094044518829003391300009808679791697862361909278547262830797897721308013046708439617612398590466403941963934350628093368899619594896265337145975511442535018404226932279147779046154731644011589939646084164856258157315896253863560883372001216231513141777420157316496764427250104224287442452896227972551054545342919366304432598224515097472220514024729367682119949617658950954374472369921320991298053601888046192871005860476124102074689996481980550088184086518708273970035254447724665121797245081921084498218965447456269704076676612916891977005819083249392611903823464811560240791386605733516985256285724609751065200545680661113214959836003035103600431000725493581454029888484967683000957001242152077589008957552106525131811752665297502828701782328837599243168858513710718768227681358863962372871677954343210214300361324988355523161341404873060155630513749506878443901762670397414874868487758059879356582576616155742843938652715402987434943307042406054338477406159822938944940277018073522531073468310537621390864129506896450670079270951500844783751873555553447684398964647347761665060274901159582291960687616266876510749837342674876840764537722344398128215920079642061282483126248125377378131256757949740586243145613985484771640543666036893110748430992973966180579461614777297201941436158255852136454308532950437081044503563325384047203145964033987042257177437016959490366909479975590852315755079277545435724903125996122934136379369333015987988206931507723372187470413024376300874814279205930034038878366304220757977019272204964689618858588494782708459714175051564663550108870416836399726482407121507305137098895129480905498572968763019096968665702987319426179305873594759927882114226992418904221328766302963631722057595101495409851847962707637623882096463618194859389282269833722553876415946200920725991431237119128903210850411267456684742125724179206677601785688779480949901428946983989150632887808615775538219010874653054534579265430127648065095624303331208968771909122669236212345917300840887567199906668966854691375350857708392693565763014811801592418824389442298654176581996776378897372132533853881442602948178667287540455649987407070088085529857164236779458250789139164585516346692560847280293841918647679072423747990741173604707998820280927472514018819026123553054345232813702495739774901191382332751736548857428725887254645392351874171904777909837778878095013998773278058060372594402493728235693724394849271996281334721519193616503792086489556946669006286877749818197387241439635404279997190040264414137755478612003140755919216787921043483004613586294614388430187280440162442401008944413706207269133548061798994990374620493905621615633872593082444699759985803334627821885994462297320290650390699641192061410845100181928196686831606844835203784629637549682841817949430395868339395265551334028091568796188174734222334826633689559998021326372728523814026444681108463132943064562799948119141087772890981702850289068434573845833798194920441570737166857007518317956909135938427945982546818671135455896094321090640877925610746542295131780626556685272342865195988603565059153026751503496111051799643803978294725173613198384201234488709025886945532223322656065691189572953090561532397875820587744414483806191731383894494814601458911890380085093921638342140983050975789390425426404125192625283005670918771721945200092484068818138859408161121801550578776225351098885354934065273669792148560570139489949985551261175056539467542620968838328844215079272428547560314779393480506081595104534543565903498979493717563229201947274334965149868616746690957546722291275353391012129308730233886002352824043757992165409276483687186316563553419408926088972423414694099773936817386795044820701635620082709583022935743691442416486117726084713777562829630065633430698341120075492079512945178541497610533357235959014605879258788055533894482135739552957806287285829037899804894585546965909886175871246942271245123418601336197297749831429605526567213267515133613365071824944585170444322914297943684779774996567227005298795149922626927575993757931469360663346987311542069364714091148692528646228096774467196151101236953209866885704630394370973414888371320993696467602011084767497473581711644142887918892616506383214992400444838948349825334934823876828317417161363173706169217923301682846599795854051579259351339132616029952253198503316647935275712226523070017928663786762434632788690680661356984200406369705271099403528975533038750073064005480581472633792448654509311952621007407135954878358670740007155679390611913086479358526426681705674335161252194422882803264387173495791179138421338393799298517552153630966283536722722832537605077691275305454583610552424080812924258379754286395045752581809136070158110139027875259526262802181253136507605802605067301123877799626101108165105076528630094978634744944667909676768669572164787513758640136071627239560846299538103396768751211275084164974221500075065043345611581180914606308501007612668720317388894490769651239077819896828675633028828387899525281275625613162273406990569336475315946710001243462485928688800494614561862757727400754226504241924291724974800235801615340588685818051402370520249949843428083064746260329050204503127313825360318235183102916497127089000172185907489979978011882290244588046161934572769126683254242835145087653619412045505034685146332704713075194026116111155180696503270390359186792194025557290942849702666114816300037245495328896815167311378678285202573166321525069591091429321754107652273128646822044498508975730245936477525942195035793785217351720457692009762020265539428133544718873909424924305305669927092138817005397836106767731596211150079550517426945935373784591928878866311559601962274932619061635574550285668589550006353342012517573563756890998131619453776281901791155843424698410214010527634716591462113247549971304220562961852419408102225597855328495013455174571914696008651903957001326498513543584097298537060060053701260782237043538588892322573004180551443832031369857292083940670526280169873969101165788416745803000277316619169518538627358141771341720598489544081374997917277252639613573638463055170540271715695901671108074812580902003106313588688471191905750463082075464808602798954525645470033400260001919843558926796305814211646729005062829942029830548609150397806676252503693576996069120134433614573689126536525859818106587042476087261711067443827478010206960856555649457507280000456830526017187679641844307682670896380811381436873226067435346819443626051303374086648147607718542312652518719219642956028826422820476542859508207933080536266810928522855888030402334419007264826004291079418802922044903718223397714007309677092738933387386029723316167318105418004377317778692227381207560402417240787535661721045908064022314070412490954493971957502471329024478056795071561490301998163811689633883186130390078617683966822299052591161579878280577257205965427137760640869250824657231363807006265142025688877622821844150044656891872674613270488240372630293520744329160152973140008239360918656039301398105383298336714392266004824077633585984142287567491208198841931790794386857659450830489859620140489372231917816092835675385642455012139444845439943307057132256520110810654816115705696473127180180385575885285195032668257115421564542051720505102462349073560627980571786342730245933418918874880583359306100515765806307539044783133822836574565288915412468767044995903346450388765808251973440551452333331614970270979641433092330319532850721945323657739494253981625959068489596286250619185833375578743383204435578356966380948372870112545191870533593089096947028864204243132086699398498650157779413474769999811938613412740455680198543866616564473100231416823175371515959264620398720564381491764163561287248366667250656819232322217468163661574183438239593171489678238861589097363235254615676754376778608274543953962331618454001506505278073513625187175846672450382580470426081351699101776071194683231082542213370473608124903517517623298051507789836211887787645062197402443619495223715516051027730472078977474306551554657110852260962438222532272195799859017225803002433568521564638813870408246904375487585892336371140156468092080098521066968657402205273914116511754004187012662440621440522035809767453237417349362470197927961958807745742128846772580477099197087123224797811922825154522159173677645676832391317401342117644974957034864300672227265641133044916967541340221923091840797794411836225932676447945358532030462645552848969870248482510388984990150406320874915942586373645137270867068506017152096632202583721639516450370606447441769759386068429124387928179925666763853271979010947090801881802071855691129911420838263433502258733523810487901015382865026522377663380168764641156678955046402390782359045807049206133373628025071419688256440631987333489958632437877236536781397820412944337809853366717796311208281327005673211081415612822248055425969190144362563483191708711697460759130006927319143696030931056659652589341799473350120212071857876127149728514940817599155199886879021372396676722683752553583291585878575724817490495033803559657295758821731917370353443276872309614778363665656627948683344695816542951890007805262892619774721397860933768297591283848526943346457056793219574347250958599681983806646214585570905623672745319842463060255505141676824307903009955393765433516160111928270781538052796554405276028087508298427234614133381855795551545255651123904735495005564143055666735703872333709679768470287238843077003554764037255895704427125968747082892740612804515266913735647770406003953580073159288628030595293894210024257187243333832006826885431032822097112045790532632795564298806764150824305788171409332215486147108376125914798157612095620700272507709489017977714075885844335870993691639400675239717586457967456613286703811723191030742073920517300102242174134711841294743607267860946460345861974977589504735537751422335081639192706267466318581143993740216296266948056188939882457427190352758894660856457256190424159257643164647339921242600337638539780792539230872406166093958047173054272733175431302742929590205969204357693211035186314780964033395942639118739474161044083390822782165458932832704246169983323174518911990874657623127621036612145582488010238243749735289739869412375267588127651279823677170575235990123004582402375506005979367139140654652301634259891811552394860308541214784095411078794004004450645671184657142503091095764881288563155832922676998933541863647022168548131186922455155534216637876959919357038392579098603355821803692697471737488287792673094328017793196238218826502566448423655678657228571474348262420962948966063063897565086136367110483265257331586886963422338931511907561854400523690906563978680591241694514662621318015040823584855192550328282711416439344303704600514111836829312944429404713480097429572403653511600108081121392453971070156434087516153251314070583000489932283335629638864337601338638931716034277757305575709372623493730925594019381798625919304373430999591119661320823787650468836649014877034395176060548895177689186000959267844302206848996806360804087780106851110829455412484665254366017811859432537373343837528638286811934718221765943907890452986589265850982362088643017720366155284579209103066536406835257013416606312911556194076400516805660634753942387917785791302580971886898112840455348403773963564850933693432047385124711703321686447137228334067428203002026241986228099494084370288804413532407184139327221655030638148983267074886045249483364656191704906368020324236301365135021467138508248886452315556844699026847300137967167208170302607444952496432182000515623169214782730156126583283779450056506970868429154877239291572314728411949210100134206741841305430900381615349831261980234005692664527232961805206378690276546536493030288171985173475415156479326342536462918360058908098245574718073930108579397457107110224299754159947451266620472377858151476898285944333066729123506366885304517916028322799970348270746974508381783842882552613701081215275431451589241613575910107648625507582214188655849884099242124144959771517530340787414101201003421373269526511172082706162256668622246179893747065174278423930577302839189997420833396902025337325429792561426139963140540795018069170071823262848179451739636072919983041402542440912440214423400215332170475245359399363906561706146468529810986771762383802739731438998933839599212713449463263469435311376708844092665032709319736543803653927061870146185841989419904567441622156456164023640379040922842989724030708907073256018846999585221519413381885370089555151096590183144304523840200965265828833885464682819978295621149160189977771691765467531221114328124790750935239683773723422600035858399410875482986552090679347557389305586318588725140497078780439553359437864429931133787235090351134349981061046659056546756024900232414601476328119411701895118504065580908911310419458087564971328835544275688543876443285171314384726072119554410534886110969085647373857139884811524783660381848001922118241423457134890225591691092632061810034548862215236395207469486417443993435328065405563841005348833259990924175461215188201496797230354643352180247202658370814154544450579355670421815457508845173610417915061428641290799646206140144641009521384946101557451782104249631312249627920467382939636818825407862204249978356284093080401068108026420201560471049916552789549598304329488120460480254319393947096595168097527835593526281210896641547533430921916096360859032353623418021678459732586108649163909478117215851590911682732548301829363618515020925463690115951845604080312547365886000474079358860847359352125853162800188462107166999636364550113706574033299200783152286216504659135146236155288174367862166416794919177113922479464242109074654780258553743263381702539900946382292212256166618029048067669577927574800002133208704060780719694825987811736466744372905933873525305048371474283093305335652956015105762865185789065582182739455481923170756401324381573313803066064305706727640938195512249311772514185809303981968622377701267186520394058656481967643377613762265806886604838209109942555306007623147417653977242498494944015648455159851538176960134072510577753774825537866035009286668561149409843949281920698619828142810231220595846441226725590096392415555548522964331533176919307437715103810249836870698608174217546223724381850247635696125468912190461940993952072114470995753412074332738578890662273628930853176138130426110166531432999705512115843148776851200554891033744686704057372242532095326300384064119786243643873909472321641876723754333071454910802758777348793326462101044799067856103735156559364497793123509003056378590354105827619508033540379729803085283314425093857550794920842964706877722244715099907698759117537978618654823036885584483926408488271386232331989735262864536481553293797063281743776027533707455761670270809957054781950439027357323962819977913603585921926763271969493502509183362201669291297958769960979797274935644847112367785130436468195089484762833327536188025508489619784269445065735172262572929165484939030377472081289736860271052731039223900595230904538108634850469670936720323245767094595153218396477744637785811313426720176162719546071494143721544151284203643771047598614042858741906914344240064116905620179812316826320121246023400915227894867062881149588395722348534497233558725566385172179585106485697558967170485198337374290902652011300927564233581916613520919163526727881857566540753796404880309383342807627377931883207056140617367778672549705468025344829046791151835153443064861129063154886088859022768694410106254111621832445514999538045403745322405428986046716799330256192011594637005858119859994387979664345237130975111870229479822327460006623082468512857805700092787896276636408046614432767904638120567877230705286695151116400412320217383058306135628023284748346860402187482143726341104914572648980902312219997677323088989112574504257215083837663480752460077830730007360665006975173587922426235751985792049719380441124800056703735713613684227882738131940598840092599190556421344703536016480807573031184523173865144732572525475687316485555831226377607703214865639481245672191732571026721372098766338937921084193388898117023217924070565661497279068346221113157072964767104699682758934955942570694984994721131469200443184570506188974465553578472276519576679030671427534139744541148111871898098154343305628077336688757966214411965414353222397385881161442470177081800736938700995329759035888797025428998194057954783372713255530857771957036330101232421370855448203994042414107051150572293148361874457607295422659497912803437419207811040160308022423538228670446287258302467813378858399351788625151581446037517123784133323766055006158928736286322891320467447808055178428927343731598267447352716080375076273926891797242696635452514806531596688302019541287015230146099899674356128191168862374200141021525564576766479785770508959815533770169845104371532894756024765942680490724989390343529869006929548778789567022150980132939185033931457060055734114255724219106417454596224887179617337218338399296762191031683445417713950395318072482991509235299806922247825958087140548474436293012664678233617377489745445797763615235419379016245208417666963378212653978097045079275248621726960624959032271948847167173065541348111630260070948207870437343912013745457160916256809131486421641644488976231559068152709371800489936287821158389015990623817048677698828187306987190267513875411663413473232616404041490512434130588269733988793878923897422385608143921146973207660822519221430570758589678652880483291035881347201873181144356797410361977021371563187394343699751013038893157157033726684161132035732938203394547354819706316111571384367155827504103357801337835816481832553142223582691389522190793282227004843608319425826291784917765512704521395619304944677538196535096492634982329505851754386022819734427697358256091445740286446360398363283515196123588838099223367524743308607695918388843752613307250987071935065401233559678538805015208143613544387246542134418254895956353225322972401106820643363973961662177798872630984609909149101403542103528542282601437081703731768589055234710357832754293191053267694379428226914085734343730585028170885354028874477108081772916382931969512412668923290189944354697940487313189022261570000079508599140207571485763591013100468145541618299559548347024881620320718359828035432360029256077427628921273733970674057641011978114803613777825558832207798947926575298906607883956095146203268162042852164873487122518964698447782748978287200580258837652884544339202528532444065385560096397117745528680891536446468530730249232152835071965245003977721728352394226461275244243173680355438159559781965064412378690831403117784483208695582136640241443858224539096993111553355394394168581685581232574594973235375927117267780109895276515995888597126931802020131247561130093704010740297719399873666626718288047042032537603563919540394549823311136011106008604927660930038748860335645385409573565381313422247875896196413821816928976160843370507382787338927150914007545804773530439828772026756868533672283282649406441799075471792040460781210096914950485811784076801823025933822749800314646425653493193624029169336711233412108990927565861469158568128849569815993646873610908825317272604470723201846218510764891145568973447121905442946405052917689331273467764737541032347168301121129942619297330306107252648828446205934475614995545282290545463911535965396808884234592317113036323180285427741142455426848831985095988453751256686373545306437994095016387147809773794694144695904188867059843105430876123743276089016658865276272376667098079296157779205169306615061244957797573759405499407913035482191692509270813384700211664318457854545277733698208398981029021724365393539830543611525421842550393102940444448388583712347300969268487115819582456825357455331486117496325489884295798063682940574011365503952303479359278055843518498415558494279551925032505207824407090802575960890512310153617378457191327518384351198108620018337396662214602869597551324802800399725038498979455061350460901459450847104587905752868486896062340822088676743559222654593218566887136078140080364906553365512783967842722911911161787513363368395355324156885208317485633165367998830321383077445817708771720281492199756715175436750512699930881368443417880828028687508484991493450706340617685456444971823598587918632773385701674375843618645039586393298811020675755989685704332347365788439679821822464469616883890163804008851363321775658225868321433239572035086619798471135150963038896577692535968302798331658135906082051140369495002162876748363605885351816573282593526533981371889226362180357787938213853452090588440202443385287559666649074991630772286684256884495344315069364278420411656904916116412920691685612651834111296674220743440009439778646157137735309162917760021892946126294762120586167696098236268306316050102933700356571011765918031119016797931586398741347199669322580564306749238141914934084997202415044509295146538191773499675261802027278485201249992079846873822599942859206048438389860230309636273491790472981823213543802708565177486292517473167764036175686089954375990033611408181989278259671126784046289467682489816829018461746384602183294876122358724752397705279447085776340105145071937189268087837515946602788249416958799538288885560668025366391401945310808291913009674755376931678041258810840087228704877152864934729900720449740554941147731804465300634932735000641802111520674418210162572626293460463689785179874341987353228746214695897144203391081005166094950988717213460023982869815525023946775131343708970546301408545321291784597429345848197249018704323475661870337390978552838186748579534790188173487848270275398033740362221770804394959896565277779459388785519612979305435180365602763130527406151050348935714581973583236435718028112868091687124167605190469931855805115698588398490817796944923951108930531698501137677797944273581300283367911986911239832827650871802452886929908272208015424420816592163310637231757529080816969502698348582338490227698129258807865102941435887154505872871544426504238271197727594953111431118076815401075827959237793600736780515329653445158277171594649715321472292435560062788394555413564666707068035320655346696359291838413307531369015764173202661098439003150691821642530589923707333730958740476392830533651546205417047758096125066835397871320710352063405935770610529651915034260395609429470357991483917990728456551246608299142899429726423529997321961261205904569976053013487227817227128283420309467429208202588759422635155684376650465628770470128997731228640345095798785093792223888479810976584722476992891413319562808886792014553890281735764369444209115058529324244021943704337784091516863469947399680014733012475273397556716881907560606285357577529863052431034495771492326479571612876035557928739596100679648843582643352837005820358947789992538148870700433787879089200961126062471888947217957977995065387178014086056376207250275908357199477972121662078688407021431840135892993597448474816614304336897717255734434438366356356072335240795311550384840546940135286945952452456498230986319855646668143232801611857832171190688382720707660858368306344849995448798071451961704456575371848720729472539418638819096623952455998405987184403570826776507698797026646298605186814284578173579208352688767881660011331427893366601340176534647674306838329374827880169882715909160176430837730721292621264004870964070738193130966481737600696897190999032504701588220170118148590030942713135333949803739358082317812115258036259718633244079904566359334343831610268792569203323648629263365442761811126943092761315316005408984931788618490323602413616042816981638958112186800158192774337496388320258921141111569908308971974120392813237376857562665833716717364062981796690273810452792339526660322439094611537066264195469596403274859186229114758676674798615847135082702324708327654665731191559019131360957922359584884648455301767779366892225158387189894722705982644849654234600935547778333281264337288858782950380091492930902104881741119627816395951556104813143715097081710586291089399045990661464139965520957245359819674925116961861051752102599326468839473906000056549096650222951999085082117829260006736317163444752478363861433546861380830684429472359825781827333584223567066956577493271813973020061117775915983992981613887042486928312014677643860761573128629929287085534788381290887354531094818382810110994915063481009604941100288169509049493558982976597523702333628590542860065171484309442356437869828201357220936149059131411736374215716515885207863790975148929100735132643196923774700706566597518512309522064397945608022537295613853243327268846396168774125227938983710636175443282747538442576181349167298530809142887284616952107326433571416867606652527539458474932618366279908429792317360696577937602697462876853444539621255647240479851619901037017209713550107579329593542692831131276408007962307448520730040294058700193139394642218724102130604895893225109946694563895290674562145369667384237291655884263314765399205675072517280142229672426529870568143053854138017016085429175972737860550181767208828758626720205701056336694917658363220607238001065774823449196826602637328728580651975904473642589687730533420316429229316741720216592807661650238283747982267157574631652442225641860799141669703225152369712658705418829703336658817050000930219313335602355992323889164333606630303606423246043237568932016523729433365207896630434485501648468431939633426002388680730094997769847867266982257845282745198915400748463092534817460026671745948627444328723255178032038704665249664573196708099659195659963742538132613170019854624987079612119001578026943243601397173503287911324556337077262113391754578528085158024625913927663032651678190898584071390350336073947324151686174331708254268218441221255039885358650452773617783345270114645589788802892343988472024001185232440535912181138087254615442168752593257364835619318698365419403738912883717609254046341065626815315843852920722265189633528270750461966876728418865635558724001971622211956465864643979935776449037330330909448551244338850513737387939221668089613446454638776825497301692720457494429879305242085958924150465611303545794729971306727290905326970156831849062648114106683894840447656609261206568306132150090440098925770241722937360228356764922560303188394546919222414643428177592684292389805572063011803486892094566848888039966527421978126123985361498869445145139383341121277279999887173469696869818149074288955375157371492438663973911093107532840737656130731837599073380232235922447705846798671623721676905110352837605986691163664916375650478666316308031127087953753076346307144433973053279708695542748365758290120233306323089217729894738250563491372689884336252142624216423999845058306140479857520719874707851514636955925187860343063859382911035274673578627798130381568917043377800432876824504185702037275288291739982890646095322077576160864031303870494366465103367461379011510616929895816546461681525049928139497195755733112804908713105901729089937355843313691843407736982546581898182847044655173550868672975942673227161334087459732853756988574200647815553409817758666298303384474485595840298177264990551137029169527088510062451233872592905579075445174147521431523303980872296743992983392230988822867841556479128632625964467389136998533196384673375991027689984151490639634965986652182235960197508077541024508613821663136202531943772301877093934819389742345843898098286511892083759706023214149836140483681043685051189404096688781783733714052937096676263886035662121531599184736782451314946293476858009207692325007701342049646197111683820019743598200778232722298736172294951933420395008349205370468761017822662025343535267704551645409176619949051471952006197559454202260685413633769338520136628324614086389126801762140326015878322592957611807897992852769879239345932291756882143522063681324463089125632161881645804050619353039267105679425383130282314399113623593834757900318282963391733397776330036889134788804452880028788046150781104708096445082033824806824492171403598288823812376489186753316081431948033885161211128958047784126535934656308030836541743916925633510347926356651606607846973255565687006845818302957777884020561616283176833790067249468896336490515811235012095323401943215599070191861674849509436958237898834360558670815135895216275587237095194334889401605889414300056197779650592200043274541241095233033322116827685202508521153068317523712975628541065820193776921212345125428661835813946976772160830445626302877989284118816581127223950269771178252226009711456383010062840326536064759235715365816287616061722383086047965287576583644244400642031868647094140127049188773612792140452007708271638045952831293220868552113842770385201119887696221865042165030493860818374228822468373703800688950671491824879007942011610330475189773311802008419726798659652651862380324814902102156534356020300585585809151769380584099630069889500441671921561542177409691957999746480053140980179192446534863458555783947017870645623635749894340294740419814230879931855943607611746961454609223010920017999729172885168091623288060772682021649086023924722295692708522500706812722207087298803589764183505010035403159720897840809350970144962693878781963284330629701808970988750004629768551549728135979091058570593119023640350880406174107731066220815084795863496411784085615477688720501877627884211637922166004822819563046867761034898963981516759340276556603818712903424700111675722631766842765910926353159635615679389580027435957075776391536149639465042670454662840505472351401881387073823426180901394559929710825887068138205502287601267686379790242959177183934009465984731259197891158093764400428460475091683022700847089068019882308402907059750741895867196085841054974844490659686281198623214594575091336083430918811158587431413027519797158691867097186966045304283837450949018124604741632905544326288600265633920556255271347148116151092692440222400832405458005215936492980746031985341025864906944899954977293799258817785385130470291804695806823442415695854863571097294159827076639654409896839347513998616459939468224514115535435254221661650123025098903378101908677601585763865149348159648862465515859459142254994910422301632001266326303187653025858431824970253608219301977504040459950547891019893745668838722476045204042024337736320646273829445632355995871748073596799269959364779398100937125327074326287606511913074940414501137698262902568406032656738315608757955013753602414705560992944475354969919946191441978063488024420690317880410330702964875595046788868123942187226591738467028282497861071517732982730089411969588657447125816105778057707785784693316621710948751933590991213667167978934130957956262381719265974926022324226848516059502702446738966995789575398887879411864989778300033978667637540938194109507263052930486976259026780592445804028940459061663819407720626295958936313140749374594464759835143352543685900034149305213794223567327743418982834300069935281394685622001687711816171731526221497426715073189944724242268417856092273317752012129966578178108488890205969146290732414739549209857456309624995276606656206448939819822752421454152324956593521439901494647913880173949646990078746304432747498687323817942949475079677270075424540790610010612458659158366268316825697837559390618152439777217758717855285800688905330693139129673704224629665678797003809634013815229522161191205883813930070367667484207103949619361500154822223616614154532807216412171223048571310911990453990604546988825975590921981200890529233970219159331105454578465122649766248483739074992631593076920927910838874046722029505525998068019163371195497448724786138883639811469193060338509471807728553574641009242321347500634946591746993902723613831093275804052045450127648849476128645466565387046165315472266214366214619367054139587898111331969876768518751960236120441463954664722252171099017805027249602254136459908561100171565794437397707367543482268280075294105495640769078752968057063272859570681989010762901223581963938190627777824913140634290569093486730578461583140602268308005612396444088637666349704749541693385667826420885867741751691742875725091060594454973579250603159095288181857056619732480959668033596212877008310881139593832391146146658014211420611490306090862196016531801923101300778501348352087618487595700535492567734473191026464984721256364391997235646520260696029498196771790989252626620811215892266860914107735845372718337104739117030355670190570118168878300136415618525757729413511679217798247045678598876133189057316884015042290102537410533906457422848102853233961221988902044837835434621849438309654947811425984627033506849935809870637460210542809998413723011608919756425058677782329864779749256291307406626459333536840379176509001071277043544253004535734466719989782300447759604548862905279172381686747632690217491129739024323257071205457551980170569054695867359307606213691965381403541157611308099120915847411919233089631138629037971957477949440590233760546208895224375000997009645481303122193412237150397063963267711879534398793635150421928411897885253033745505007709256587321910549193969335570600701690954216257125016432903775406606349854382914770868083956887375908366606703267408681382074696253633346075523976003972621982065683249234421649446855829879228094460504891256527190718813014344885325758896335030752804608267271250518522179400996802214505918110161316989772831136670910344912929673416573421893481710239317650064843573384999358638750616802911519043348001318611513384424857312440505816239323651717949091349440815502063850574476514851799374052872564682282413560041632196553747215023872667595515082062604032103122383678921090314849579322562003183557610105133094395863597500241732406812071730478057450313368476831163403212634576878473716617280255878882969072461612922120395614746866400767647062150791672623607829160390009345556782102479618687568102413535366396327368701754813056570877742745251926431634586111262260601417575308709044531287935657835840657233174182866708529057488926010969185714692909860536546693571879987230438625200392106106909010972520208099058127444646333797596420470970143238915059499823516618566949697466979852487127758153661298714422842057604174835795931330414699310985337000826938523176760960312689408224715800546051486633502838652292663833310077028105104203896675085737928969795566712764726377503946717709844916700285421647122083940815856103605113797212997205535701022254855368767842392218501311502159412441148833290425446289777673421544325658373556543283058118908162003374774958272238606255878958727799108534209078055340976045808023210225747552475152780212229079604714838703060525005401061518171217845161687250358477627490362176082267176304770100553464907373092553572954380577582577183588593460260350945131346076521024687406671359174710325361772704056416976399191202937215873837901491175465079339551537530113625086366352068130048668797234544576830924518549301806637976732655066900852753068873542121207104825931631961381276455402458989793329809884322534599902212402119800094059842946280974052628689685371170987102028797252182035682451563210584469472801192227593488723559647812437034423345611351878681251274440071141332207823431497812919628275519782074324503389267506740874974620387816273657311056676274763970908473801709532478000667724972505602247266992136951100765169780674509730939298772451742843881705062732406138932460705499055021598321207915138567248333890323389880167797220484572995074523937770007367903929483761366861891484286690034039470949931442408769802230478766062467399786293629212015293403652452064897452134842114630028991908785421528825787074653723561258635193555144098824706311433432983237332423684880375119580480174400669738233332441809331704437597153837964467305566144343655145707335665106202942067239698880689505908116742871411208355586193889423255148243451582795900124263745258612585115004397939625392975923009426931674614446913309620987551620567089138152665903695052412186193668502436659526641956011753265371099927743171642569566156413450724321699195659851149469935013382720260001344554475183883216399346692194134673335925226701278473779006483032065513798219813167802497932700140373236304429468793011467681877119757704400119643417314432447541576369411883504894773229041959033783967373247991070362112289504229051843553514643851059116369099074003213618307214674184564291204972431142832495229365345066729211344197405860211505298706406437093736710647173932881388438777425642962095415088320339021568893918643997501863206205622350676894654335100415544160461821748985805456163513593771999796288793775085671301616829890668937699997425042413303263802547945555399086832835617096393180722141115026505763056737172691297251264060407031843093277539748834090913982648519475234047334702263094899918392270469099948486099822577929432940001297067908837445206600643752885202618246851176502493749658190421079478101694522672742444471019050802287893290623432110472459341335148719200788019415292352607873317188758920118931907107374852322910508268688665499123658365066804872951162457061002710635794937648128225906750532578400724435362219276023570125261342042916002358692599909481316147112853581211026948488583932325784547551554382106518465731542114278872686066852182145267088187349228198073142231479648623769655586830777114676446034197790917511037574144375527435327933131340555373544250189375753484843661845562126030636594319723245678127671263440282166403954746035789708523257286203106537965301015230548504342503052465260757942887520922755228038604977527708009904784596479347933660923663710858283472518367366935497785177723333261758672072457513308637206760797046575876283076840125668320120198259548109601949054673254045480315666057416910591557895533923637894439405077155448952443557082121566547719023142882235846372465348233478669957903299992446042980419257342357210195813109079804092014681920886678490105548845931752732930944205207820740162661268567561376135448255876572339429331583115190759437037909837329952052953842642590124583289326994025639915515388861821196891865024285133736484205856661022038922223225233263244523064881944165006498076233316852318825049406217422132466814823516717022795411448814274023693701440764917311952126146701186048781489156058014330549663203197321528989848249161389408426287036580671825405884689266314746789449898930559530098506661519465308235223519005219314353664570104190965657654401514112379428596590545903010760810189877808011786093543677221287995311103520271292583867788486752769905729323912796346298891090450300179378087844175141345262078794817611914182465733096831152153590809996190581859434459877110136378465864345181335444385166150619295470764562895861829858973272538576006140794971768907444355043737499065964580526204101540288120733466661901606613515527649207928689959837727564583308251428585651935133864077912702522309955430309702522564421310443180820697448315485761233729858787914496551201846471692299451326639097434656575596636683477420865990901149246923462528679435522288799419602315883043706729208883617550958442370893352079748255487361131327370818626044009493898152465771536770977773014674991745537032528317999438342423066332359803202562094581163062108032534228698784003471273339471592135222960066937457587562253006500147111309962084937773503116925462481892626118109837541301350157725810356824686886354130201698854017001733168396601352805301867804853845935844250292200474163055056249828006746076563884518293842067133585565722334782839611216779128005424764443824527521085880639132254679185984672374383663840037616664888483022357689916154406960045321703945741873394291463625657409564363010973563137671725138069573430356045610379932562715710067635043198263525445201720409394959989025575269874621221855837012339203807738177355234698460920385190921311557308719129309184909104667533626384705007504616000203123893056365420009030465585079617801781562445882139703968383999465552832217886946395962354983427374086273158269385658955670509761202119360178618059248745384697975705719975239324033463835790786929307334868986384886449426678296829117804822663601278902537517086307344326314021306533333784356678922420243175401039713857391096457478595321247817465730321075950526478563060998072031325047926926046122103217049537765932371040350426394494005384225788336593836874252182441540542593194514865482257602448160698050881676723704285807975624851664291431813116814963935219126892163605105514039679413946494577411503542286370587923659507345215092739953196344456104526788970755067631480474682469275423561209164914084010275479040228784565987485018769478523800450561129969972783309461932902704961153632653428134414217500050747584039409479226797977661372889426716049220349720744288798787451733755990591072733805456862402114382662406603212842688717538357511659934170431127297129043435892316632059427765982337799270584039105569088520989592506781799036342460139825493119454083383533508172810234258283208678262288760071624841439246542893211662829662217111752156366872643558651660476713419529253050688552328860365959100163656196567169667650547269231708398766169801560632797513855648940971946661870453361085477384418310510684670405421116829851466260045955545392976875228963854540076475965258313538304551953974767908524731618598350354894874730127027391754951734760192154205640711803190930728814043028874540106515901582478052391019321677213751108269885556074359557050688003582237228264836620726236094577474748438633243197762429622961922921059305639899984639028909224486481931972247048879411738573206214817119908863891697874849727316171437186291322747568942522690283255015252663201062366261633337487088991003007184874587616515394248990586719773530220682356306108706083944154825073013777164270984512599870901386397872545349299727471557928021271841439474229416281997864026882446362105403277061718001392936198961766532012461890673673212320323596674390500569978375620428208762681031086153506552343577159927237529008434321308087139856506756420975270887565546700483068944201198694661156407487383809466946450561844136747946076516434304350381261992697195877659763838859396310020990047054279485974679701726247722082880392606989416287508571156009819946571501991707913988081157560739601974506660908461095589230610864017779183328488410629544600626347655997550665682349274960248710022414724728734935211028296445835919552449865501895352769430059683901738143061350688742784759380167785384269376052804370625453676220239583038091254152956565800409081400316583008884467339242389044502380328391298646396329419236104077388694350963375255656107744618412402361999519336113877138506843963180766996900121807006449746293001921607648040907575801608508519323414777135615617814157819967961142516832970024751634398988580546747507163661601194658303544400375282319894392271816055235552570156443668078766823351266145005531578316280750702375837468799498167744555390056512794497919963539712799577591454157171559505901227407384813680125602077125457499621222223729245650638235444057858416894351976715743727332724271333965092049598958620715913751409534234605230922380337567332540541675418368120311087074781740239375209156170899340466367962911641436538227294594895754309829745110158053591053711855166838977531136920572182651169072048232495147031825221301830427747976852516984186674991231159923202489490173541748755128760530766658540393668628490696634873773105248537200524257837833813571212543336068848799405068768091184643279012304232998541668483313796513965116404301120624940193001479456316157091054145599696729019401780069078646490235323723441769338120269161053672551435058583549900084512208084469821237888601868111084729469301663341418968644609261079341350546238243469710004793081545844046891433011045125807628605199193871821543036792497668204376274192441622363234894625404426038705414555554821470125257406499495340549121503369773168880119726843003085606357280188108594620926626093786922548402427931929749902069773355920063195409164443186484291814453462895737738274960563744122093926047118548084413436687278116389470409154957930268898716559776652925368702267749439810217176962197515426160112273483934243061984329171064325969164624875401301519100093481550809786140215751734299058676932244432513126938299427237440358052417453982602086655103271501623341942200558145794195296613773556456558147753157062587365116349311830963170843227916759089159730139883291953984956783095277772928587396273013120369417362975767110428541666502057459344068899840519982011433300460861546883612205749515498562535500845310534250009582540497891955179338890062462963746674175941179685822940760255716525479604974572730746984123843434117345376841142478014700751410214337459609400306124830709428050817855061102000874180673245644530965628039259305270673526559670675509357907247593083502890030963849405292588575349905091977135528812435810367810227624815421879157314038518826942255120572024784285175182113181642374569327112251397172060908226370601753195615683642403384969591080238272781745714529808941441527596221979354329296693011498624737886529187452818982211991535043271045015697641370999102418823308842912270224246876559667093627011519924107333939002917517130218856679120894832451315020608863998966619973827857256029219797753173529263660449412125604800548567862299450746051580326226987599721375320555190071949853095536454949976442115476370981561117770252930939226591951748466912657608794137540685613175685850408628728164534850144953786790790120590006065004176451581930468099902990787060337434910423448816720669073487320863456284697246860343915510229827357475341334793112984155900794594426384980071923473788042400920645132921768786185402060776095402559404236752506896961121284218926423727651518397615543384831923014397756656843959212749692511578088803408533029504745155979021802490555203404772817780856632843127572117823505662730783959762428599727943388731560543905065789157334041695797359837428508188218846259476096238885268255193503477859085845100276264365910032025661701344056010853356018531804862979922004389505355610524088749945080489389280025193928411573109178929228044076074807315757477305056632554337599446751894113295712233834202086789109205361629896680193722346865007035957179826978240319981405993554064848682606871034235644998559500686643716419274593239074613353039451756588301830184343618180212405269024808705885438907079690610891709561351254997921904812551546844351657652942696068775251782638951504550908335331578592274580274861351465723693737627939524414518672584549590993711558699809468922844388976707356813385710147174345323898720747951338478550038997069396880454217048861102616129904603365920647104697098914587601436800920645070516145140440818737926988820502733892422765530468989456163079513731691410836957952140104072884906723057164797595322437986679768957525291812672580994982190351844982369619112839904911308623904924170223714299003927488237276222804126075098865796629564979720145243296184369290156609193765439461675991806725487428710833064807121937279689141250465862126765028380189740189048625716726158391268652577347333030314822428162815692537810247759136899766146978936155691391804671940754087775504178200866668368545534059364887637592688101998486231448932429780154839226261651319324494670920123590785377316612666887856489272974232705552755593342042113528890340956492792604939364491013028257442417071992335914173452678833332744666887222850626372269056889055658817865858450684247997891824771077911415733689448304097956773286949645966485228333473765184955006816384167089200808695072595681320274442992647950186808814638071710596240453492902940201296206281257848351455741979299227869803391715271740581126797642816754651934195167047841968674759097439522068248756081936724888252513124846734159288019963927321393417289257514660899020431849726971982312656295050041449740253042384607953870313869012206570861211858252818785460137191636691791541260926485753824279753703026440600312760410436369270544974428601658214306554369607660460114203501321308924356550847585379021774751698476290734169644231056556205156087936106787017241348735501813982528687110916431868327303387984643481460071551270415966232297381786402933275296869433721769201986927983461226396482297126824206560574958932633068065856958917983340150894384359233910547779797421756115985542062150545109370901881432969601717407956069488084601236707408019185839227159178581401929587039952536916519785021646722017200711546386365585862535862446656659814222297902298557863554609688104549030608407352883167288082603586319194168168497998208495005397298571143201277073456129100877878446167054434453764604909868267221557311225469426037083544242355337741773182610686605560335421177663226354105675360662511526535204261531643744133632445557435193901788096455704184236151844463766688816270686880293931975054782289637426218288013061853360333508820011815501766493814279009215331148475712748516638410299490643262548871115640072560703984216165058460253947662115184619875497494636402710787501843396558235491890623974709558744796862331558727971473811512526303558520248998896741840020108457626843169675408541339559458967179704373125308692640323154571377124240890991286301771300531183344968819669047516530178231077855090937491977905082972902855157699798541006718767216623506641233180602728251398802245278802441497747165161946143908349946254392709174456596620122056654019239020442725561832091133376066575086021086077852256765831609827770718667056388469450674960721407101440688216212624345917578294106343100235240935569439604918502909605146306649115200923342775853457136192998696950449834855037043259585571521552297769942838905638698456242293222942967783254357890489950091117381938830907747121344686670847097881088152253896362051872288394441897163308455765389299659320141121664248906443831639201807169042925155519371936898944948437304315978818829341692121066817150614335177670206150306690863874987338503685343562086423539892437095517354609424713971072106035276867871713014877637345784981415869424345162859961528547810049513667610102959358292617172189586568628170929107955915055590966510771753556481947874282881589873816535146886432562758994304129459562498694884402203914314693227255018296321763009870669384586354399457102817652989069233119558615416350543684300429259884598393504539968858708917787429221735297102440154954592956035661499273362626077620804911110959020867882461615726069870597670208552224105714566724835509681268394090471808784962609085534264999835115230713500884776403472027198337481615109243680013799378039025976863416764045561209298392323440194014617033346875844479712031042630461837003425827809053474776952007813294464221147264662920625837630604881628013100720515773065705979815707029738425870200516688912628663578974524692069803534496638939468701259959088424454217467597672471184225575463307895058582427490286209335926361721917779646651537772768544713644035688639714037126001636746777545754639992660985259713440916510941888195529005070826148538993329440854841664697909325549716895495285391490986918514621327862766749718796687517880099455458233609317696090010720316374683547293003558477795914529177843789395802757752529859320613437095095018344317734141249674616644896044028847001091984220077126962268435169298173213396765786279581391289644024459830054385534477423154358546544617078945146652802430233549371324172431167097350598815776393002046714488943015447586771765895355865913217813562074201556912416495450375963497035847064956429234037462233501944325260076176449927093016116062946287856525554704832818756999130796637601355915450736156415983845033300480021659551134093583835359520069225749762462127976237308981976934180006568033617208092137409713733119885401448847672875648514974748084699640393439661826234747553581557564228471035186932814322721117081024223906471149173704589600709481709448989721498275586012985906853875152356450338110289554755745295861706592304882217813331565456063569359124990346999404665742338285405352258784534734847313486819833165280204059324368387511127709157747894871179993604267203221762769522342698433621985631381318293477840714009545124068064770560013197158703488737143989255328538387703724053266930946666921795603182743460013350752625508746070345259378552791300823380274240669201350598969968449904848256584427057703749338968509177484788273831024743540437855140194468401705167873776923841157674414135599184421994799624198284796229510654024746729846407455537164467946079866850030348513072947512601682525509889901727614406054871453078427875409112023217011399527100497064988036733627053069779127996438686505648774771987556875453865433170200139212170716843075283317629788104597663438822225486710499676713361678876426605197215097274483159661191272726177448963129035870414258799856492755879758266082540108705686655424729784583489188118401722844219545187808932016441517512879699867689940199514260711398751302433546426716249374585233583003994498775758666978591105725549943175957091080849099541372220556272325324673906010437669556240421244706995189879062932132806636958624211242163249845491292638966231613281710359973758801873833082697639134677619110964221548404994078853168944215596066104842791133669545925314463518432344154068741008159454321744081580671656187776607392833397188747253724785879512677914928458820273375854388627049124937232749153419575741945812197771620328833428044660204721659380018130350775059015128031456520978699380645939095200665092673448604430377803796117670144020290485051409003220136684604088913715718790420885106816716074309981088639522705351091123908432127018886031927668450752786104901867265422426799430701807662330416557320230129622727640393277506370707167471656239247788391075541356759826016611350017483453594219856863180875456112395400456205068947359535336835341205553935659817841734225635717272708261776574510960548551089789496592068169465669938420440385557565282269308265738600251092679654787845252214744770689939916370818529541630070898747529481376826538657101796298791336981700560142599488825805581573766508358227261035583087622412449971549810397983648665752936820775776758170899232757966223591574297279993456900132431571021703232025915382334661695338792265590633378476524717788479157876189896179662872067378270797795970275892875710306604218199110672502177779951989296313843158685891620130153174678818615358983256366379602340749429587291748955077067748625412017292160299876169988007944753911259433326210801502962942959339048036173640291277187271021349047441482858136674027796956103631585524075392903098295425419220883784438068702855044213995585231879459924536090119775779175515391306067775326908791651196779972951215724106206183906939682398185295581282636716710506060564498503288079073338421292090395768067907957015050113019063086507181993997277573361978091889365567715489852889018902295489114711635237003695682010937427680511093728484503350128749549860122773946831731562739066609133287552330683268616246696482161099088734728200462498340635629886809811226333233247336828957546087728334567668557136251589389354647499858873135472659261046992247690217505013406458969055447112200110568245970038916075286821867939495266607441660000254875541366418847835034932817959368981829497378649031049915462222513756790287411705814072058868646306076655514124939461592542731400172002692464249277233696420794830208747261241674392068356443674138571606137498070737927025297658313690825006242588430206598679050475899673458161300517122105199051076536500020602764994955069156538346501463912761112432762730571772139565230420813305871876853850704869416628788398187633337131278447516051264850092388674623432523452271833272659150250067371820551708891765891506094705989169128965405345022032879171675503302989315385679407707511673185709605848334358191682562864958919248119070950050452941543415770533526413160289637584976204064689421151801619304935684117968255673952546281746802581667768076577751908503758583589823417880096295206026722360241016038181668324762733536672076910070313469265763082695423889635273260985638528792557612094261871846370568179428432505740202765283430733714283176778882988868733078643116081293173218219082106796836938204432654978653758465201482977063806674671068601365349694413492797271848993560837257932967618204281384789097238414789467504422078673483040040885331783702934383391095023995355874534811222576928570413979884961646868510986754099615329246540026277249716573951922969255824357813806560461261562459263713424803111021194414338041283810849858015765254440457450389215373764845255725427743295437951295714677039255403168552909837581142852049153190346045683709530651837789132676689456384448129027393114362031822862085509856857618763287471143065194787564298470642534318561797120115757146227083831806232634616913729323955661360644196085821824608401021021197444950993376171808078268929957521531387969530526370313095652573082597373825739974256127615987793613293456431935715861267807490917079015129320843028233729964002366613047031411605319257742011635892818314790003371537026790720491218513853376896259238153708501813138692937095103377078768895390749016009325088511475661284630767110694550045066909282995808086992562953362963032318883034477245155690417362737558216529260994693660872526759812355261337536701565407366930687789892412132673119117323540783141444394884511502260812221171761747610311882398259443695909458250762776124432219732684098827577714278836711841536865750580529675306517380001468897800550020651346728503150666292033098242188587139463062839022213337957991209018549888175051574296841137138169287874703570782610060530746826063113346812646476818778712718447214103821739439260210320764055848453304377048930565020220491009789538491753093232094222064639236834186633867272193467846723310129644467830481728178086163830205160233983928224711027125319071223411948344327881646606212403114462728174209809072412170170897668156580008563354827967844006532962184668052446622018190372175486573342964581870811719925349176478933277710705228398664098350252808141589314841113622621767703178431322715394572259208616915423918469784848039916988624067224245027143844872979484277106419674840058754025369699112851706742673069380642540597961983679458846321276243938251156224611514885035879565829391793973426091930596863482877779316412569778070538962313570708718701149458205717872871549668707800916320004320136114263952899401351178966243865838607113629448492376158957277611649435083389904703235249016508152833550386525245216014307680299491919913985820242604831811792387758588472352807092098638109308831715098723578751941336519338319167551931982275814553788101141728795244951825405179185089570605286687524408734466672086030396385652972240741436420111929715022420950216552234049709712143455244223630707895831940031728546308213563262263546436157052366939464319287300269131857345595035780902455888828260751905140072567401907063320911287225698459551872360419710313124673118216709089223139778378649021778551497025788902127633894080940208427309884648521411770394405372669861752866493478157051840159668452839492744954513130261985464064378046774057951115810744312119110655521574368301292027610891237053962400283685287768888198981761694184408400797782720305014343015371511726341758273686844894507017557508938225997080032202114992279927888784241107792906276635041542594815020710015256230781080491193108512985570166566914428611678364106910776070684822682892441502333446462084288332851407254855493881660863414913648106098704067715047123863943563154540764170934142551877058940098731364113829716836567425888534914000900558859728701841784835633462633839091512225397045091390790199458264240139003973908781275343854247751337314942240938236808118220006643386454127724152986287309482104922224494448788293734170220357305385486022385030937041563606451379990103209746166677175089028390247921136119576938763104651702089340591307715438160731071763364600159565504380920464846885751187216261363105727311195176098944121595463142357488629304507045033363192224214120939091994793128685013028197637710984143077257396186699422875525322723449959550339954088035144784888822931551212140884998660005956955707656734234300015694618539804850966719878002904094260357898588883134621266884731410642284302970311256638890188122204092541270207857101570792610311293883911338569250873955111045022600532153306081836559317658372926529407336998976169251329372352953667304902464224638032623208890742701785923318241535689794536565728862171014399789727933164730241727750882506927985236356041540699386480624716901717288013255476959944619780437315696528156565535363010689282438267449367067000645009820554275097895563758715962092890851791826433480566980521508695266609962723755441730624271763064529703516629805872898468994153637719517345504517294689622320700289541083764478174705252894548417464260143481460436974581768379568143491786586162635874252643774737019187269515339029246278118730213731909759186535769104246847715919034471155658036353732900772024017434963627092564064448719871560972123897714400338327526896257403874385593840027921413848513711435218658525763082310160489645019129407016794484378836257547651024214548568464919028638591413609237946659190497761320117497041150447839135850025164872736271920668798190804810936529246631800628421862387424889379179052014486184829807747496503662357546119252246062642531933103814211430060671356008706893142724763657707332342953522955284579751068348477396440994805208742069770997298530018114197533739671909727579715147596078894906886078818683045198919852493350048866894457413783277275889739540425897786750536710802710550006298417070525798473370241793950142235740324773640676387109578717388769557928592781826676679786658844689035448330384569548881288642879666479047546479744764905312637329509963349812546665067289302272732968221315777231489099364317730948409644946809137668022476683417113662340880014480731520207922696565110744948230671574918842145713309105497243604888670345558663612397320034480377520291908093918121546383007180055188616228044475678372252661094760568120800379255175349213255319680580443206135971856387838725397171474012439988656933138492191513100352837836503183204791025973573603367062185525486447857748900379859578146276568810830679450819621645262381244836251310215063479281425198278448972452537875841873320603383137897253296125567255725803839934431567272832934838389842825816173538299491745911309997829497185406954148294746138727036264922405360776320668220052666609486901506743794034099743904291789952177265343214974922544431307842765445319386454531233940536949916471401897724134068633582049613328975698641210377251088399219613647325857289934459982747753016164422661410266670900917426664078706748125721535647370278822456190307648097730727136820652092019175743600188277923699655890790771800207635358435208876668558791431279404075595322585049194388302845639957872556251778729308592438861649911635181576417950063908423712007866947479210129832607485741603131594664850431365876872032451628097249478911427854994206915368091130354066214954673908435880075850000263291033496271768104056272843167511786397190209060443126339210600028135740252856701134473748143738762026506291193920504048445203350614353159647468918796209981115600708769071993562222159450619668389530006316341582267942040177141481801913450850545217399125759891858643249075547939719885135460083087980975364066285224315036016933857611836646380966561583882522158077688569142878871738379252865915871568582539601261901910394032390191327665565639064156921965995580988376244753711848247732615831156496404098889687166355150647840973935672125719866128173316307621384567612865348652872171531629859377146566765050280700624205301692449199027449560913964393282947759995278419466802014153299865352099249755921066212364672218738325343946946223813966834027880666975799670027273753352029040179676258361774303980637925778222812365534951507754332099003404788288471569940225370025325667471805384124398231828579058126089102940463885076062739459582280043854340043973379227208465582907640098433887755229250969945832312435487862257467916506575528487031781541888462804589771420832412742319717547701756536472892879140892184164366377816588853977788690249710194318972168512140548657757115605258278560880640994291472931049667783147949415790645869708381458881931561110844757111139856837335346063945650336168951436199156215037269562396107312256528816187660429229819756054936864181680056804375814590528512777620010262989436399126513220599286644800463454283898564933187854742812876814686837852549955309533316859601901290318156231392480411645240972874017332790348369556618452902129862064685263088402285629148251281091260218624559484827191282538872561656765876984768999993912984853548750920219633479492328367467216265257292337124379425827319562755253858412526019588562778537459193441410635944940938370772665461494320044174673266737031304809582878041092478817813969108067694351641349985233902477257050782602470916047232007399535474109629051713515014729671137319400918924556831668333458230750141533341378502699171547530783822593849320188809224824754293924759008523575688394755384550375020169900849210801574952836756686815138490160328292589924196525774764486481015074288509239207575553647775589450234537914769216862058400811586022645528836184584153275265015725283081781974426716344783767615767975350853552609772323720620805338586360739953099545837105327464646583660480911779550710395482741009119650526975189895181229828465223684407883531064191855627313299673960849629374156845594732913072218935128498458427117476397520337313034792198277881166420828813986824616470899131034520139082467516038419221861075125859848163472684908832062603779380959975356004227003158681264670336256241771794651329611408670215322662622204518759054530960017194110318909856196436041892044731791817349452260576920190533470797016061447723419003680760624715447136071560207226917340765631587975801585780438269048367073460250282289270021328432264713790624420580064387859149689675724263095424895324197596538266575609876822193624557635991173945704041425312469118381425653337452998157686852000522740723259620188576666632893139008967989310508976705864465184686288652858508099878049642054536300831511847890353888234953265006344304962459322774341842105162569224144234653568184499180915475710910049643381487864391006049830736014540253479657022696695317139650939755342628979886442393861040392160785500009241215247610771557499127192254024185206495496321016087586646555792087548710975900873181492279295029363080249356070066992147925533405562042852007505152287173277446204456679165144072351103309807252029870276536401907322375569379091240743552536759836747505215172928529070169791601039563334578865101196834430537553406388761365899722473270939028231129576516673906473156111577623227731741708264838379025077284894578019566960192448720980034924427436847106161716081221123619772442690397574019502174648342688162618569927616887723096471395168265074104663594700655481448982814595110188232134650824642361226656040587049614651391634773306535251508698500208892586806697078685517032006261025027699026096067763258265262161996451685906723515085046496763688817953650252429203350456319082514930241076409587283551289924519428302233494721896064992670753413935737603806279568557471762977019818655228277402126424156242622786376777422323575436467716531146403892065948470548670519568843124367154961119896147590915114480344112376565189813643899859979131241109459925191839472911844975650697661616241773455838157936937508522264377045994549816595072203993650965879163152190955835674586899949140343457336923576639951603551148861607768258441676629550872367933804279796172113328591337582788103812807290978532608187573981426633635396783598000099900875540131398185570085031375547870730599116878323480475516666317930789857165277870962275142772542976113507818384578663108283621506638486240404932708002199846104960889307514202230977171038796995715374388220004644765640960732262170153794490287249406781867484829861549962524077129982635230977247273203611777813010009381442061867003755336657037747453679697013871284934244276233184087276768022795118526660560083789017247580016177376824674914712224829708943533989590034710248608490306857001340990767989148354574904476770281481370271367222478998156271506477373808341278270224400436369250672274009851723037888349559139673895576011539789553193588414416425915292018192361373787224231766727551615142601796091620348999766773500665283525572763127746812469026052285036993623252678197034875346464269133127003478961566901168382255558321127654158694908917723480801864503681971771154136397506939990426434984889705309196183384200096525033723701867361874851107317560920140253030740662115650671655854989493419538265210853848894861643489039901025074869603129529794230715149392783542020796919331273884631118482107287221917715986012404341272757823904719962671887192196817476320996870629388654155323835890554705875433026928517198463200415480969393492994861276666760720815708159577673041789736297931187271658017920504351199911367573290785026519863586733377087519985959872451344894469178214811462396748319169721667453772907834025957665113047541770783456181784410592315208919007726777345875543710029905796296383351433805391898416928253590931060570066567779043545593952334630675064176216402774954913969281905014920976589633717251756099100741781509706914261995434070837316736615131630472991238016939652419753077178307627925923482231753151787206139188203530083429934618046200243449876250314122824488475722040471321708744880350497543848341347125496359814455620971999600614424817487946363922739232232471258187038037696149147913132140005521085850839696877689976129523381511140288543900583323203588623530572176926485579436579608780728291897458330975865860995382604312312730508461171118770398930392817629741271489000240659894027169746041485305235483647686667171987883709153328644499928329905358150429237247923364095370149148379143734235688236544555103277230925073279541965191610912127308454937716306717497988787179499706219022178669653772593254541675375305005570042983026646654728040046480815181965089122672403302277027616032314492228353438118262910442916348963084081271478251705156183660968027738163560759610698793083071688369115038664015272477311277639172490221540648600895756561804189344107318737584599981685559253562516898472894707084164645610738204744770695322457613880796247832119731779309930861633688586293852386473045227866715769482299815888503583146366837708958159188345018048377220743803674727061191036135036293809242357518058370662058541826675969566719929862330734479728538241361112125630459297299072816474199302166987897062318388748364804785811939796983991839804270511641312125042403680436177414686903183606615622108921172504927575406381021281343467749697456121303301769038661909200861959273884869091668630062327493394526123989460145722720809997213997975983072444543086293250371103397047134443574185186618617233977374356134450008370453341384359749267358403349960262767185686739560597238683669268874167125791384903262754600367732090662710439226175347857002535810554900857506742991736802733563204612305806583037076080788039727825695459808909997584542229588336037920015957771639675724493303930221211338097228315767879074729193078798812560549270559275492885879957009454699291179163251679441363000411010978136379689017444478300680033766077521036212330971500381057567054156313837503550106987031536097411511195721961451035821823799280692805865017986635321106158306036617886075991147507823700488133931630075339272724272998015301557816982624100832758698994966636646367675782528116932564473035374353146984148192081351146593414767539025371214589187965738632384060690097797555342586435559603490171734097059780848565292475266812292874653623790824715925763130178994391106500198002355087254320413490334278584161034946800267401218335261848457203168312924259001179472304230783876993382136736681713187398051788427257314353362632124956544441329183540077824651377391333002110859435981597347953010076179109299675131916555781554467358189201543323797692091642551946174558622405871047535606541696387777377195627207538062804577873646123547954230333046239988575143681276581930862681830203475039112802457551074915086484307718942861481631648871231116072634336025672527701282921497031421577516728965542310829087812560858740276247691132742011751650178097855216735183121887756261295032628745695761931722176306692480470033507194610300072756978659625960605211711330904307894753104783568250052264618899828307462235245804308736684079139930694183098797260273563041357435366700929895021952057635322220888698400689257057076877624546941907650696500233510477008299017099166821471907175601168751072076116566548028708802960537228735277366777257442362320938205874876661266901019250852288048364341201239827953228784716854190742210145266007132580635633301251199679412944236385635244599126610657591110033827023262202537148827937282933366136537775840822894117987179404146723792214905722520973929268628758374551921395750854677750678022173741810924087714187382039936487797069464898682456773311142581498233473597342713681496582281546236983317872144131828126360301968789569195482461129791529472104193469102071930423727481179491249257627195381671555152411362248517510912721868230986046286913671553229900848833901922422078385635020728159507570607474161324082318939263186435387982736802668461684493026639681519506094349931110823381377023677104991697010152947469174530194553240735216746605081926609964435186666705006390459983514682085736621632430961703327643497615828496086135113558731968231219171965065698778760913627994179938339685068527686159508064693802660492775775518122447375253069603724965746061841967205123755691309242504809013384777127599166678457870012085505077339387316491956386173583947475229513936074041476124333197804279359652552198637093723289338337496915224455476371048007615646845697439382202255300187001879050901127606285011686243017767874750096561217625782181552575746840132347870857366362534358021488027310480506234531262072414697647391658654125726123382816185983102066529959929454627929152115955829523881881538924088124611306905242808531307748505877219365713588767493897161969921441845221699887187139492759165369944061833403186462821805590931170177315398530103724746225912018406752726228024230441655756054695027730928233132161757635312255211201087769674873103462288528588650523507951928717983270821509541012402679927656547324209778279247294051497549253410039959280626946037042954887049621765346234301696033088161620723788743792570162951402507887860745863988610344060541059448189923823580237500403035407628972176476826026990013426809701721289545453186857239906828524593547691052054183064106309629993036476927774822524867574837582380131695419855703161559973609316609281207921674403570575313990495645985563397255946585708476518377957389036131373356958827826531720423414503127012628925973757278367022687793298558675861304878827476987280928504478841407927393126954826586235652894075612951043316068605610774174550830064924953229020586789622199681322268050400353250693139858205537638122490716903679756465536286142709614995870758086782072909421285552034162210753269549138854853605772532513159295073354688000828569843798198163292989039061112492632484081237233103336478154321992400828917132647075572531694180290315180905026946032784821611767874511843171733739279836961721730761567528924003855953688821732186587631702946676671455200069487045449089537030280783307168381734483205376679933232529196813230885026743229532511762117510273312009342723927293584672737070930825981389575285915341750591075504971661494415840279001195713076629390119305085772572001542348290443850612290236906903795707146491108577137142457533065111405563901570386974778311594762788280948664134393049568765578270253607479656127800140080343892605946384291328204196662617815964309545014515321466983859759128545711313343440817129484145420148820160267910661410202119993390118568376075032657929468663150420126386683110124841511294381308044710975787987249254998667720175827427190619831898183118006126650874132072791394623198590743544066869382456900226364874624791007564103842917918855237934061772292557217331718807234820468628704946629633918379689441898545385881334632199996778354433166363761789704633583551002412354226746505581853147813704212894133096807560173109132624676117563388167709130385218289057661720825796266392855774089366159484197432120780389476793570886026031905112688982403420126674779207826816856212015806941243918368654516008304802197030710259939624014130770717697464984891396776528475388014761138713246202701665194629382602783058662252072223658583136773200904154702484694916547862932942802155492820495354848616440374266094587230039816069998931205191313425441422386010461934716948229648527613922099636990521660859052918973115005066810299796834442322889415158767189528221290838277316275448823400301347766032019450155023566129436234177602312619962171404400093708664176554336420342019649461494642406132374602739370124839219102000402747296152990323913816294059729936179510335354489870038877321929803682340492231036282551558109118782274164618018245720343294417984895392101598049520812212009587621463834951389632275741096714825733120845573469157399979395262203790640623262185869125135203957290561702890183557169508086428552895560205190738563423676622614336564224565447023455077180690314842224537303174225997724871444739934196130850726578510278585953964584047642908883059172786398781222797769952921279105746225853754051723181089215853499941190308862170477197812971334554668466973619946981310879869179708500356116961742138382442677356176285084289042723326081289332202213760309972561784684696685685612631293617687307789868028461631222787849049754649594047742387733372363735941516722283862827094032370053794935528838242207893871251601626018734191750376511872348458490673864291005175445751674103984903503704526373428027670623269504866612569697086237813041899187040257109445918426253472558728857665503674134200320089796673455776867027470163018758051348443895138068082057196108263043173362354981694570042254149386925947352942066564819199579904866299996865102510300582290836054503171801464620606101807753621090273908751877193447754079232444601628683306634260152679631115798019133471023427590896040590915171526044830261710038766185262315342924031978420341684248708557532738852953341087313427957196193009208615735787236097254574378741727645808832991460165595841913269733528237328946385994083426247400548255511558600372823837308099995481338031098456630941469795530956083073841356994580256334196286624545648016365627357732446672500484040097907676681889593746014594952350051870974390208159283259661986450345900812031593674227651900892827648118078489972665503307511214958570245008785753164957374867808057487297244873290776942287258556080972012270600138500304144411846502066481464527435697225094934000419855240702244936433839308827411205928174163453751987213287067511406462725094654162997699085245607143493972678829092684765110301367721909156433981755653763416756670372340015315702506600891265447925201114900080396758068015963831895695901728447708562139268577564921444390919983695459931239904221986453742625928794565437618235407091381930453364741592499420807573905719844680012375587342279679592495119923624437086549138078777803114886097106585185749115940760474577331940005309509478552852956987030859038620242060538290542171942734852418418063021273987645381978628553545291054240571012023194553439124350571390477795986356029731013583823636298603194707414981576705404122068136958055849977954795711881966696682197292825982532940540301357608062194176754120332530887441778615001965520285251808337319201417710907685439188410917032358106383932492510450460352988311639070501356288915639279862216483359215204238151326292546869924370086404026820842795377064095513265091120957902083023015622905062565951727164478010100775866316164710805009398706533744632464892218351196937579985173706457781259142272562421650770201468829905940424156560162229736535028571209841929771796594661063272549031527593104448601139768964245897832463728399624200663137251986245591197968195049012628234696641633867754652541482896014941874247738638265494728415290062328334200051724530843720024532781643060926559384028634366035901589155487057909010557639545869931409469395503780735295129014075680156502384739074604616576370831434360077984578257576220766768105981954349469301398989744700368691351801392109859188981866696310069075861650579147744568085205518985171207839675271189716066712481192082319105983830530900238426845474599878486049791858156063384461332680181323201120404969560724883694255822931266070430832785887214899596049813214149277563088254164698752466156656743868816195999863117518894162609107482491991974038288040362854199461749840881415547384006998005653295171864738514512006124027212526127887926720673310611647795338792348070886299960476435120762166475250925315757794752121005440334021503754682554102991941565027315704960683706010723316615753453932911405489366136367890727688567567377484496181572586495581609784334519406103508749709871059287644787079143366944044000018129439515879318116466338714938167281232359734117276181166814363768353575075490662521980364057922116927198999468141936114663653540780005660075346687149283271280612120051597339759783473969522140783056434682193770388532842112747001679990496736589613393951581147290409435909028412458312371235280672858912883027860023217920875928719542512280777237753271565100266405058483514649351736316594014298636712932620424653927369638508149580301814425940800316951556900553916622103632503325835747526422438254041425612492014968863588005554171858929713153783990048018748502910097596415362872190261372196734570636598593991819031656629645971244182597169047593242898839695491775008072402922296115627966322817786713136239054214040070834571640450692084634354155978391539612345961441436953617309868676678221764121544698742447783240751988879062922605516089680304624364578548084299164530355962724147527179509152482543742736721823134743719373755737745310236079888017243006575535358024966116496277577944026990805901163165852119998924302152978403107372700396712566558684897845306497551781262275495740473739028757630566762550587428601878620455439057390387140498946784983238672812705836310050190081298010622976598689936751308814455156149361060593750142928046588394280326922788023686148002967402629483962025122753776065248003679165525363080040059020320995880051201920318643495935822424130870862704574085642319276517093943956541191152568436926873488187065157641342113935990142474463648090229655220069412578566429101210197946177915328346285321540708777106448989330794511070663883355811572969919470847990604817598311999385975280286142645688660085679944465144716894060960250637820051610341561712512695757108703657843970019912191717392260515039519262524123945038526567843919039367801150564990021211446449242333287875915433119701496880450070845287922813425856375030617342194291665065441638567099464721426638484103660067405550229089671595348825867642845425221184052152581776375078807324887064705667810566821194553345302816216057860826937500657987237465221990447147498638909312511522756871277329391724842819097543851115822971463819396092705206780002925138215107935979769207535560907727290163011017066784135411564985437012595848217745604732314910011245484865244762455837190609923017433374506426980045732835125063528424724749625868286784551584453472705973126646867839206069655171640635042682610443261411976364904159235812115425534095025431322725426155338657519911187664530770742309740912859631714719921504962209640442380291926896687167519703383119002683363644977278152700037853563802590128943407477572248981129914051468713454251663258834153497405733767410958631058949826441471622612206624812947415751878796064878138905559420870606004775618979378982560902994880921110383299983228039983951640765742361020046374454933514607749455891995195542947606126204048511698648723077965569112735728457884482659271178791917135873256344590666631284925561808431216583270495674039645442116163523246249485720704466420808563808808338659928319661981561271241223576837846471895257993406797245726286748956639360527310892597320124616771994813667939085192951993461183166782007952668704992567233741337363822664765662385999594264518650331437348482717594533786348695032736299053279069525652833720499633487943686513082342998250336337302933515693090396444413775868881059195322213259865740909919992419151415587392204089245230162582530394176828887327654435588364616803234639899550562950677448694735230181182585390005978643847485570908874090703857619600669421405353823239898784534687662359951461247241221953426912671982781623597796125557327365093715834743336665408300481191031744583832032194778767488654282349842628460797541428049704573460273229956351276349158243130243720908753046387536573565704177774541983609733432048003309194235466514326512007834828674735938096508674828888991888730203577182752834410741829523307205033301137270754438022229738221183498154813099859411322411472487764801764737764011340625881570613618324459536709657135770002447928843665190033135051697097438445484746566644328420823845353377041319126171349187489355746441473488141468295422157742449250240358484141827397876209277644627310429377856598033501680927525326938164350493957502364594483208321564049546779356187406133089722218153587377293600049135255257355518356626617430449839874758786460786616965523064813243119971227582461568759619661092740672599119958409268406802034423156096533326824326106770073987309013020492651036463746999736363679122511592617225691461981514661434091468816018547914030788787220734797765355805397946070111101969135028651201110225862155833882381154865053590277296485370930089685222611550770993494340832174900776568892058938623746798696469213325192377458306927729344291649539903696318916368924343068463673228134871970409489077001670233264972703268200282751460626770500708072241778680377625569557939711813914702730138344816453109231247521919286152236007557096542073157221228954764989999478575788920357407987705539395695263123811642952475628295305423505447056494425052276287574205314179154216274026421602751727170519600135388128169109293797404120535645352240718298211464372222642041370649171001120363487289502627704189978561007076307719207692843421454815158492185506213683544150589678372291543097589710806765850537129253277886742899891948651566723418625504319294754498641229213933196320515022999267925500027406623860575651602807402520797639328165751656071718034113048345653955934144502327300817541540018600470335841785034013395405292326869936125676826559160771542148361844862573347881432616237883950372860497870188231876138317446518465982676836196229035378887993645008501594969696218355319733260846529258096641792394412115241415554098316271606015136113661938202630248683930640888706051385279200463080725740569185996866348035787151707718911527414702490707279773677406327035987669595399658751241013719792191795999217900099536562880503530730571346624672581940497592259574307369539899928499233889903917450019361466099029652588361503767300440006946070645259290851740956004062096661274381698002767125673267330346952985758695823200186531010958468185340359257328734281858556620243505954070058379373181886354019721603484772127618259608403131248621955026980727127509780219419843203921197349647956163945866027634373611519589117742107781758255825633320677224852535408066592812879384797678376375003941681495549848332688816612812001201025586930103308525684002184719696530234242797860386504459336250405279669639162704251566997314287377355961975929626022345307096500618889097173192222813001099500422979397666058435228110264883319208862023231677356375778345688338321264238536142255999814529614183737960412734765849228446836323891671660144634494402169618003815918711388904625922572453545902540972495562426195806209222099829064187894635047914130975134826881632728594573575858344740865513323374207111545408082178509866530441107304798886847685302243695205804704119817143206855809902802388326014941741587938838070749664592614486359384857512268592416790029262980973611307841933912626141506212445183656241174028946977635366270576606891784941553750796183863748730091323724085763860556300251101386356744006022329678371125265052996985372726908472389661622065797148600304901839686671628344488735039372326511983775757986947662778411984372299262910264776647370006539114462215117894191433187477434374335063901818987437640379425381636983316649685309392946093225885084932911778344789807847115553357222051754404596619977929889048820469510722113753016032669656912330263159280929921409371511924537930034359845844174751897584794989486664083001514454134348720000071743917244481609682889828075538155456916638555452175863527230621576606536198294942088301371161939045756671201551221710687706114295363312618760088856525834393223543909000168798336853654224712861634565362947104269531964598655043460889807064034226544506742504993701140908462219510492466455703383258887300801649399025054168021335891754296110716258857691896555518837303233484833901083948994096604823828467094764342127517812048033168801365747489130861082136137837260107156668858530836823838980878952789522293152918975639486007303232679080589735887348575053056153904900899848342380669827107849305310233913479230806403484645649622619663859485448033827100028858949385314082929780649065588047909196296150408215687162856907329526535018341475666083655168758147201178315839527991232776488704447172639760200945532090530185272692131263635225655540173734968083204647131267829446531124402063293767036366812689028346176181616477155912550876248970339247783925754307560394973489045538212280379763034563844063663712224057276225855576565818248449969271975162132428334968209223635766428097266685326092188930471803023487592742430138370168086131021840978231514658855684659287123763850056333354839815814982884562183363059902974179078146838515186569671277742022689447942033420620425410596369890771030958364721282915281021771774032199294996596645414872985354130953231271724583035842618850919866841669654500688823359178328786176798063490644695654916425907619141069527571100446125278815334020252220062628171181990292905334666528337237702704824772699597287632273965887644016784321607782319230046315737533080987761411751940311502161576633152181722308189011195165825859812194945219205144715731482971950653277963714750963767582290266990258649308785200574072611289681321825474082454537842325950511439782849507627560301838039231728143835456177214235160683064980770663899050640440549647724041792898918048767463650121057720851551670781300372616986627824449015882914789042322006298618708685650475216853340128122535727432850132296788551798550584508644197057320173945495258102768861670749552748800060146118393003983039139731842992638468089972718320212143346061675859327154203834410480518158574105251434773368229335593423226216163617492769494672417891187347952167518792810030570703726091034563559040241995720682807997191255749591487753545946178122449996566280249306524823611376049037289323034897823943816355180906942721404635393888676511828866189572319654607519869273574494878291330300217963722171423547506471596512056163860701125938836295912287193109985060280464242093431978472728226683047704691534007328037898720183130320051538569084498863053117504718584191020919148664444143606226121637596585539081104687060058587035982317015338439533060448421220502960155796090205120569803084073829223327145827586236129000180294887812654672720004736459733750918964229904648404734513250589190788235590696771320034586707496130593565156230959182069176161608929605617099410219081709508771943789552618839556383935143175055887685030887238792918087767276694841287455039011724059924093502442381172523402096557354425191764300200444619682181332282241727336106566650242296290898409752097001480884662170442893707345756575885215094851771584126139819629059722911830646937144156597396519859187084934787808755061668330286251500270744772447704684506186944264565947868047725904230031271412605506106056762478607760703901123597043183787755058776111455411495201705754999560308808929967009885372363373077964079697514401001496168022056516243180856034304907980028163152452774287631579549747429164847800533804568248691412540336793178781501263800390396943850132249572769167183900500959839447963747816584806017875859305043231863509451216496136903627191693877375430775699832961855557865025144459901880687480772924010325461389273355531811818448628382974069133783185770991856394267770410423310586985173521939649526830989289519128432848339273883772182905331020998819537507601595917729015048367127057147945035664728016254443229476559694584319529013933822021714260875484892983326368339588641828415239853448861913919062054971410082220550792283945117054849131123296902888921919355358491923983845282519591590221709472855510044082587713713264404342096536758378903160028883480798759156026753786952942449041904345328279281927559505056192750271999866705829516958928988061458727985359704125637581338548306653090580329260484123729435230557767718318921707765707120919978945717260499729675736598750810727748001757048037703782373703421246880574498294624334770957601191945476373697705692990911197357038016591784833750771174242924658110952964176125483719051862420174822652452491279726720181030450522057524957647076120786058929847389806772090513395115840054342085121357816866455332213319298680455050649473937334805725821196039163824381239575497747387168777320085285694531212078637371238463081360810332147508531554436958039111111621906322928877492282058550803035755496070016677993845827037622856499608866980780156688324378613092572082083981582183359921368284195462381732675842171187238708613563016520665074356372091456185370502714388879783188324631737826154528928924929779324557912402553448097510746651453256497156847606768955800523127861428289445401300859988082322089999751155190750771281329321357249003493234868731762493245613712290384072603378222023344351827067950502183126591000909381785340083076553465668264857700999720584839304113426706937195798882845059188086652298707364511150031921459638253424943836631787098510455087396736282353533344388834803238279862838071664810104233147797413259293472111706838362356306872887417510231804559734168564768683997094329761748177954818095952233752805249068306729622988034001289801767131773438624422116010621365458888939029460012007753546361631243151546919500558435706185863526376199595168977173764666117772003075970551923723076808320061619818581457812047336274329344565604339507857175440086290387651364304198542192197770479130367702196795201911260365341370891329456600026552066760375748651464602626151508812953104271049870192198336582687226600577668900954608901973515149257367245784605728885013247348005605423487117557950079164938786273853965412991766346413564135207428258350195638479734625998182421151290132948841261573185585132456579154071406475435500088471938444741864131600674329503037757275591538926374652050157275233883005716099892795420666366497631129472198623564014488878296375761495931779530960671180366850494393523610497259717877587303059549153881695160739930879798034701557359547029836869559701612320181891570858513004279762577153543428677557860475222950632144644411108719347652560981068257265406636845274875122586216528931655623718349951204630208647542486507683019281040649007380222241396930332926262976746217366849362771857278238736030102979249550761039310050777240719251925322780659181996427836011074739180901067113941044281970907077648511658904872924483725317271183746234739852279811523593782897549610635402605300384291851977456988471391127067531327268315142882212200292044770250441251611422978388973850739067537465219998311516844452242112366146884659789527321828117748674012017576270028046240154006053198892632041345623144830967767678781619788801613170082924037736751188259350578475925318598478724992802579888547383996794462736766410507694459157675088264275225862477476114676835327807383595721496051920677825132036057023063633249863693576463915633272277983415478027571723573270891294621387967297873350459607629159405987136385167737891598724103891248084173075861587575799447560339560022576612532716799250825360394937782494918312518361839869501269896608614543230785009663207925410276753192084852539132198018175073329385319913598081415428468263228703850321401357626023933778586710926531386548160077508730990920305122794648824085990760984176596691734417407098036513310180702402649914967836773035864241517232615244085077347144242285663548215428095377608421753743680859536613456149263391087553773428416005135332847001371443313206036588146984322449508346971671750975205466304534330638785383900026619703058278636738234202203078147003493696241587543262722580254740696969962205822554449573317058583990975998327861238658929940589069090729295661654644272063115187298081984987166650003429433819790965030126370320070683721357250423356127754582193526171750196968214718033815120554106580636239302775620777995442716912510243186733125748969950202372333795352038590793812648238304708518560041573802614909747350875520707193281978842547885201711927101768257870589138515445046082660087184165355972500743081035732234929704301063709030144528613668644404952791900189543331839915551779842823210933000924807220581684636975690887481428946546664517023803988790784127321851250050723606857590389130725687897777353978832563230889338797504803730412754370720345676045766744057447779717184906067467980606264147395033987515527275895783828511269602350785003435354965289846202035551976836778798370347513825105820959744813242407201364874752559708521467391726814633249125791617154880895330995809286114810481553369126362059151351934503133989659714477596165034452102404240054892371665599382576693993973588307988633025082097244662167531163297202909894272882171990604526016203241975539487819604078203511805321667869951340236188757246344871262428909069692515216191272519368937313956195364753255333960753918706874365084526048538649954194198773413466571472674053173698749345761983259711252091042839243061867145407998737401420658564012731732144176573586730432946425030528364633206462175584289572253434318856544621474439378754772003213578733313109986880608098705206236233719036396762759217770569731745965090658568990250232245689667209551553445080405591602681006433847364047717117025603498620186849219616229609637888097945856590590601409741032791234710465386569326340167231183736048781904104703905995679029088686272272596210346577494142686735905986597046108406501283988436405010199861886404426916978251138750022723837057279340245921817033756308812379288737613878048819403811754793828960524593599130792717171009209639754324916105127253031139715188199475763997527194946421238704366807462521651011152533985958327957499942948438809713244624061210207171903199538491060100622240721743422094566185675834893053836597218171163336956465217273227596155528907639823646125922305180445589119713915078065656095631104855815147222570573349891758520403803368795798464446347450692867890855852663754799385434344607648831475138757259666862173889504872454673941319996444009520177976642905131233984401750746034958640741623061911101081263238194039812992873746156644179410123281511515539120160646833479598713972243162006572630294871537411201066449373557623503804465896754684255405716791471819461244457976298909735536197153571515230489875629790128970436809583732126566275546906130751964436201703033059221142511176473889300629044036011641027371620319480375904195429320341338751735751325578528903730485261030237443026685513318330287897233799681275743935418740964511899908098427698902392023863960050750993617802552581759995501045052612801711510105453928833999291583032690792612842987758322251549246223867591862546807798181827991629696207666818200049456816918723097136772247903028291120025978115115376686042596811354167355953653614424247199512057848273831954089255916915419655044141163872320920921296604884221852013233214651032572640640901175540939597903615586716288193431324224455637646805505531632364626379698728936184880748005168921912571455567447821313425869809707914681824680001109673565507793858699185603662640846720773282018915841570669495395867844753042507504882179054335586779209397265350795346932908929726726469895069346658285492826295249748101212749967233950301764069125676454539221796007554578375820727038323301288360993125875067980288857053208586654934927942119178333444604980117179386177827676402491099865989512712870072417681563053348653138628634608031320591692684480115912538751255635698228620265753103112506831845977825512895687782151246693349749541996696833066273805750833821823988075867653092949621826021422794019528395599099687767204380865085835840512515465021489900150500252022581254892660466423867435512006397862065240690482351689085819024875732935713140343062546560598899630997739799174966474989816753599774452111689860556906424491852369610995460906123193323736333696664558215896940801433051275671701272260477341767942176635243842497867048757110966405774769444859534754480690783985672735563659000253375981110185060270287187814335698554707298657358529392412608257282794946756336660784433691984613659118645559508518269616630577419542014321535185230656758139092202426328108115300500205420358864995697713350221014162870938810410812912804536140998578577870188139249776366224065687085803048678663960556061869643015553833176486381056515370355032956209038020538106961803595397417820810141267848491887417274523282630933506421660570971716301370871891038760111550125021335748494659673681627210586260695616913312509644016576051746391413622388743745756674419564571005664673918596928356982354129576389049341036383604396881707191826778821555918413617309056881247591790717900977971987137163713916791012353449197906368374763912946384227595915455179298915721937642341904719227413234803039005835928554845364829954731102422202275247782062161025329045290093417613152436222439132318061533155356251256202256052240473465670385926816892510236466305104187493436955808493140683340227107455358887108943754486968073514469006785973529702022047778531191241472583990506564457050528477918134037542040433748141331261463767896380826463112241463857193796251961256570916852825311405788755247516524665863957911932629929420035791854675556707897050198014162087040284138381617544811365379997513232631173849694404556642265032402890737320705118698921129073565704584573548339717163475656213050221296553165429209832349798937358864309307089749126042012008997388063601798748922661548649658534093047988655069928236606330447265890358456242211110368291162799558216277891493441156586652629088374391974364779979201229857607353452587930199179398219272136726788064822318171124644458649471763584823383363035890525570432841304721997831785471038492097859071396357699874598861724625626171266359919809063995784715494435932488482666055112487252262521846762245141356565815186562129003394999642647103034759406104221113969550694466903117919926739712321931258499059334895010546315440417691857644995600287219526032481585723373562406537837719462640891806501585945205511209229400595046250728960792595249365435864442449888270822661200941121154370171533176208945568813972305361377946282801159665473442804351199112377078663436374321058103708105203817613916151724081973049492157808378648808046737644034450979266577469274511722414589388161599096649281469277369414351391486633480102712105604174431123732342901766938510300222455158840045757729437901226394193560067594600117861812757960275938640773000562732523869752567245319843976535418156867276522635409562815123325218688949774029646539507691609035129989982750486323951980814135646301336451508026606919604943823944411170346578387167526778046226142169323747615956134865832115368696480948244311160739998429482678260695541446081444368208169398784190395378524628450173756608591269066530177493181376031181845427118349853691069173546009955749309535489640996459554226544494685847259670935721554047295731008102900755613740009357069912498998535728256175331055194782385729499863286438617089158448201687536787266448643333201752443761640005744842360823647685442109636094058529031942118138270517253715432871901800781332562492215060216616266486647216746948850744849257751639634542170635289634105721242311844553861078403277304847084450002557369765542757739735925566577294035289692062973078116943853145867984399735242425522575161521389803312904627633618333332614309087086139609485445948314653079766409607666138932874551945668550394937608868122676745322553373183736297169514475675264156354019536831893284644048950064273968938181657884216050906721596454651596973433883361684104427085842280740479094978809409643883467117752141235061410041470193471086636033692849214032436349263579581496670897542847079776529228582295061922837464436449017075841444465160874870069822400183587431093948578802149631850255701735208860417331313050796812806221516216069411375585356608502921820675786980955339618895178587193203347751147590360798493781999819364429603593105273021044602796768404311221298999451039722561929463375304464332499446119472033235280856809359524323819921197937582792018918486210794489610561265233709699789261759948570808635611445087251849370028100968723539766978732631617532771808517009473330921899109612982517496860258684667098361341504873394922620706000840004697847828281933421540605698390333882086163019279439178607692346581181554885471534753369885974850624755757415260889886377011889114673295970178908525699808054532261897514633266416961093766380084230340706858063478099261348318589789359741620018479671911671356527621926728802881052665488192688869231168079810302784255314418747651193006045690788339311638077542899857924357066310960972275340479896102047787563250127314743923340544044978392295719828267671324284901038620267753972883419817293801057263397278023221552102880816500953859944078770443545657271213162418822950085456431487991889356700930919910703537363518511909053417230140933868385610260155213967887475537346691471538480263898155513048649784793508973840851704143173431794943280757224299611070504707692622005658748131212201387169037728115623313592295712277092226870397171330693322161423241344322796385374331279330397325117011020132157643716858420697338641582285212317695902974116911767784444638015683752124847080477864766590254977101480465052974041485843282900956188562404003559436815449732323141234626690597961933202970022036370869689767797383503539708053980949077825060818022472692165463138544105442400315668932895410522240047547946713569567416725623976637590612701247708523825419419278563044433272632013405777267281627854797621552012010965417163343067132513020197569333395830924420550514339316779910596624975372198641125810986214961037892760288134302849311119484700620688146927741141779877438007138733428122330852601225647236154479428183796546922719642475083048379525741583452516231665977640693059626750719494960289635609024807640985180415120715491239680271400848924084339032121853245010118153217726081936278933559857457961559927042860439124897917873621217320918232357850408279050021168690524840774212290688182853897720593340145080651079678822204526926836412440695990213627311291520064386412382864726004337649550048905618949184036607646078418700402880852940842709152792528999428989263162014436492854849453118945177613542888700433209712280611793064208435968412482023417233010921944623488931920770795352985556982493877471199710478453917909777807885043977872510093791433330871989060313927500113901376845541046113488416470494767993636656177343508470663100009850262577226885493965664540559640947780181631963899910273331966175248836563720099659611417129139936096215392449254856329705452738434840328965625625543845351344622840028603942568596953980795704165656286573350893200130151658019360517779611794072840576423671112672705958236814668088430365864676513276485932580376217365428980809584932917363236899135263711372635593247283303656169984866444149510961357071001315295875481242147493837979040587457509239253683707903063590442777759490490368968368404944313067149088766732799878867951770226985194669481806864708871270958014001961681895241109126689288532710026412290462089526054269538937170020879934216759261753753764735240179781898069298372460674004128696655709446500076960903360213962542317399445776328569228183080212843511567286812476775802107633969447546249748177332088197502440308202534678204538271420642642166059518636269407151584620481688928244059618110945819765350817345271201901410342669161309603214078489891253361407925136718158116699255842873246107956925549035003861446517543747494903987273455356588643665328418585776218809642777523968950998152956365669504252536631708240791428046025019811530581451925725085046025881533443262122231148449978935623420145458989024278150163078449108458583940522151671097028926135735646576866419620261342006658809219777846260711164960470856045453145569619906143361418289896306998609288483339795670692631990607932541691317837706149398441777253453422642765232284382735809651802004362847324077170462314512081616211155001797944701914964250128097505494535560397055029090531635552903762695427212904264466994329246492504069975605146012239481724664421540027526656464446489778665548662906292836256906315633468343058916912342355083609158332677756590595183489082819080859253515622525434994127185274852126790753171635918391353593310928950959108406854512455175918170996145842843008854627379945617018440689238422679621002877873415890894305240214015700892784585855332187820272445746988823458978495224642000247604722516600294157044680170643785021684361809223476759741701656557049604475856214878463900469359254374829892755232512891329005941579359545417497742155310260953670044587024705009155243485437338256043758158547170185202283979819307582394971583233523689340962797186143375093937722125389889066425754188935922499342749643816534840614700720686316498908366123104435020566390537877580062741353602518326498290460386565504587420990695231113141311061212026372855978187222870268567368273184569769760040169251760130910675464191127065763129228945352460859659016279278236831235892361421622468533111468528454411114242087506944022458900806370638372337454141051533546242133273542307003163272014936294785439629443853140434415073484781367692191591820333908392818901692532191179752946631501196196198154207441227202141509256188908358513923399180292018456895373332971346921103564840460862734346839372196935167207000120549768444337771525584764233950931118168888354414362521458963195195510093039137340222309962686303198559770085453112344526606752609271497856262836566231007340746311786620589982954252556805126320851510315551894941156113202532809448716563310069466342683057396677182639979421326057368709887142401619567172506277516915352618223704507809760662945457948801318663558235900940866090987992550351182431606189280671458324538538610072370276577139941973799670419031425879135715525812186498159583021712337652694416216737738080656590639083982557456662427844601875119119206496967491683207407593556611909111491290422437523202632728836901771270476893204540167547399093510038719224171512077678693295214583683149962502079701598094153277670163903738067741999949380805707313582804658480453683564888368622799206066184518777666488818207837669231863269087175199484806854789160125660007774258096493025678941298235860291090494601076997839891417826598554755627955119769081880232011081835205745949676292565857453957573435931027935238348383358762964250929778020844686903262482070730575010898819947100629588704900805108680712110245725455923573472371999918115345133848490550974005080740609919615046137305387501768544499103447284976033225195617956236275439755809956643175009031474724779347709708919215399192732322246553032967713017016423731634095776564288033262693039585438011359367571062459951032703979972858344563756540833524999845486778175819155346293823717258414849048029577144385011193381748312099477400340423059944763415509004544032892947064263337342265182733065703903169416962462045415016619144476621429926610431156144572263778854196837384295211658056607679843043376888788434013315882350387787334335452784374254626954859100238876634499766733733504176895754408107343425927576977995412160094952593020750844059105158971303075220709219411407420318023441132723675092832312662758022262617996706179729051542025484713381871343078897856606746655552385921774952496528131026323770092030151356027673553962777928568493381544050782851719192453766591143774736971977148108257186152297275056110221348005574717807152903510064723026913094417715430863179509727993844457666976344186817112719387709277229558339792584280655163104838334355475982586072053792665202196607718996194974469314588863084425736049001110193717605587320216970137889547018412222690033770833719983268634546555677741510217341247606975177593842594740474582100987454228704575215207403112293712975661589266671329225108405482292507321055493252210267923374285263784813098498378412579230717958139944285333701817063762768409265641018127936075795313708759469863932158115168035430881055084516181738815469275646259772947560105503513853366339499939815937622612104270583596090064161956246403252376102056934009674228444728082176213588681458539568775884714155758501174503832853469631820396040559934673052444109937011552557960158816849791639074075490191803207763699222547188283920898099026919526816531269295184874570478656012361885116060419918586185466443291650605322203941173039242904154480521891673505441616155137821397849427016101062070512102395487277223029753650347045535560703177323944763281902823077574680916499380984545796215304271984980105858797930503097785667278234136016742362997427310345950543992846729331270192494757264887597361431544344386498421352175358421865758119085332995567355097693307872848190415512010508431381125258890274489689133454396213493893548003129517721090885779503030158950392942702259837215152092987966071527075566691905214803461659759908648551971132447261786156890270267520332865493865134234845376082351805167719762641046087479715312131201186087943911956176344405871081212365389952054787069649032590947879657413375999663131007368716213735654311116053199438313715870006855332989212412792085060512856580466337714185405193211726622119106452081569685140852524670329617323560725503203988826172492250352552762118646851691849799102686264792524093496001923721031167749156773282605397217118280458538407564249611252629756660357561419118843401163449686794061505773581300581834159820060646109907379174102428459044552191205945084385868861340465461531214838263212360917175554938374745663960801546637964830275460575415548977377541569336249870305913722988933998949150114367989605309785500370639606248149294773898594496937077320474942066081389332492494976319265653729420736110705304138916165076937537443861033546237303396024140622761221376967635976901835389832435225398304779536910273747028453341970166353374700382553854624146571369246381986055112382631693338215994339024526386377370791050170512240525661490916338108630140321452028019318846224242094725031253909203121986626065588769872478997362171955750756748306000964053244434770194130767158145360839803226993702834605075061829747679592786945382267131700542741204980929964731738212958854046011878914522722150121047651454282017269808234969114892880825209414622603138083404213150053566191760742271148707698838599952800987793717079729320414211717610324587769798698957522151850160567296372484259685275492959739027314441199519667604382904969075606825858125250847390182030685540828344928135862876660307273631582763660884166987439062067846194672790759960387692753301592747208104642410382686059473323726132018478146522228867288531933333566101781093683922890432819750444455902796858316010554678227492228250365681958712964556126367410571561902739717599682198608563264383530237440334022526468317673609062134888157301908830368263399108793733769511563407142204168755984388419630454299533184074891379921438239457746259055095492181342321421354922966477969228831185240288612234500285908419971527791080185882075133229142498338954122964668393092078349138001457554135136934011665740741645533862467619561201087041833917509964316987061825608978758136776602549475721890738097535713738756479578268181231722232720395846230605270835350007554849743439446577758576493062452958091818555354807474246014280998183524197051053427523349344220969561978622819631821606950647156300354201189517945609908292486821593321448251136594046503685039861951676376108608076088953463824998928229806390662094084020274915141871892791307397803977534881520067061663778603184935306319009687638741806259408993916738105440313706917696687620656120200306868953331465225448492902041803363115232913616592511995172048439579905165307578592891059697470949441328423164956183472245219480732475741592119167051442454230163026192380771947710135349268957806602941787445637512631336579927303263367000052357967920100602364149025631428336831900856054675883988947927346645832493676891216183484093027523904822411552722123121759907989587659147051794941211133714488686989400852521832757318037299630436988059192248062799099198073826090403222746253390975055526266162810948164584862884163410115464475576881744811316661833884498676443037159313804263004077693016822132344571269480665714173302089116434934102578799153499485728643846823622851219088145106756449603031223769419031123436340896842174253387820444801168109768399333272069964072808842703052678901433840123207579095967398529579886955642428616114978219032002075544913010490617039360931597306357643817525799070644014591745961195588841737801554251438806882718515262918756318403071501105869325769857962923090807868812174249048961032726998138504724870441297204174422545845089252793327533151775316170770278550358168848510734085354619334991929527806570039825018025217657180359393719919232981775814662944853468499933548292101843835804760173659446940979164654260152631494464424334279680710495534701210480281204100417439393568850843359964122510723925645325858646424723803407967842132343297084894050242824159787191279483432875252636707702079890801476706924981308853656521291948497223760700777892006817255359553382207564918973826863869050959472488286811233270661698076808363399653593072511729249275993225962971198911189628466861423362095480985728539593538946374337835286330596155814361592322341894858896684408414494425826597975904663577291347048333279451360842637600727017226112836487539136403619349274870172564760602334407582574944329924898337868585557830218588140815520149044595908449529979986297967354262308564955696805435590583938124891593285626360844677680235338352795124636496641330590335337995545728470862563448745782547839206233449297990038604954794029760850242219647131387337584603612441903110346176792754089072611404555442532528006836991661225607004312877483385246556419014869735389630270711377030675084383330929044248175991169708157003930314344920021789777621575226447131998538855148800554205518153788014729227205006529234455046821705459216022161595263182386097082369797879793335766117477177743301816780922220991119189990734032161631971038327881244253857462661102316031543557088311662741710670269897075220465852603589835868914120600458668385572189693102478524051871688241817047948745481514345971379201950693237160067738621338216281298818540166272952481510300479876090836965022440488895512006645080930537323421955931879712499762621678458518726630515480298363859184531374386383718517601730181310523005717345384200163678255626593596586342419958503839489279114606050506293619433348803565099683241792630851706251634265806590632774645952295119559382396061629148384964492821033318984803054185443584561611149897682311489471280987225058786177271827484427839740843291267845427994684554959065244013736213925808195201572826182938783874828934138334032567817124405604119291432088125131980744893320059169919796991987853417310409252997935427179098285880681760946677460359999170864453464855583925108500786132064980954158163724161669298978147373423398883710912816713329301563987560995712063278262271019110431357293576564698659193068917753381299499019641378549095915272976996983492703953474991782034661604411269792198787953593881703712746250768535498271442788546404451055423605849718121011333611920658987838310080868815224589880085179784545755228878431086921602527114938549669990464486084502934207597615669990192066445436382843274647734617135269777208421786726391226664121217538511913198163895239926056382288406726785084134258790840518287982112813131977923684115611570282207993129996311495574521229240656726078563993186070333986699880438480165562651422654084523937315140234550861467053117895618256990496054465889703912543786406869457762432555424699788923154204567663872885090990246604347338283617490620486724777736892159732141021538719263089427986003747285501996504365622944026610917706793858540463199363403061180024357601057189418937699146605240796900708435015801528381746801507987108914905129635013500280054346522326654246630561544231321421781719344969521038790675084073547703090549653880731342961963427440925988056421431200706242805633379130242966038858802504382938685274869018940755269073402564563661477842161277052345379749127345875020504193461959468775739359519497125816772050322603471835083388772470236607009719718858972419942202115847939934774690465972086550614277149679475027912854938816350076771547542625880386318904280007405370501959567606503992577068887533862835847979351100318376344141900247743324978816990350568936503120612224767079232371580771554278424825461007828699324013054345709565477080534055653134039082857026643201705448928960555918806184325540679785015607800590857865313008540364147535669671347722169505992423127077382142035490513843906709566800119115368891196767426987138735180054530931350187828823400679453382925483716745814213521957047759693747790822206715252846715149314084449307408087605495230619434130028640174276328347498734717584750067772557795741960017686789962296757886671993399988249318795896997751832587169305323786446747017513909046491167742231860203110286953316995623495411241399930558669933120370350968232707298477216388719921902476745141704636494737027002253793475540501858465544192287746118647738944550449445841434248754804592121813390305646335024346806878185881429692421711176473558849897170296787827702237012123659459808277206060954239198598426147907738883869778855459952900155088075878814868635685912297369822945832047486075138138402797183195180269197533245863660808059782966194041584526409293630330622742763875132767481210712393686317080265625341812551635988746437220575067645226870505734332146197518587735070508254512157218211170494323574831704886243072753659215446981890829741969544433418384006209604343148023348159651049858920200404852851578700603115213538184249010451694207649200367613749452185670439182431210765254046266866810051249850935780589758793585218046547452206344887409875238538547083065960509260442989310672548011386744428726865045606756591215357197398717962999752939074982792385548239641229721754905149545355362405376825089103719809457218011152666912657957190458158017980927452178939089625261764178283409068975549192772150027371483216982107991570653291631734147493491015065417925347157267819209685845505748057004819444685915053348701539158564024648378336277072646005771601569794619906487497919324089818989051614757175521701702032742653716905135749821478956381671371262303272410702399891123666401292937644639231637379695362021951015027628143000214119799872146093141575718803973975729175515230456189825952897345923785546328098381598617161358258323153786599621646442276953398713052444709414793025435084003570937768834332494179660310666700071100763343567572953162782259223982619718658022900018379984629011994702529761390887950092029375893536504597069402613373399883032361791691131957169363378679890098537579740991316176555121379985977361891316574058571482846392340098451784480610433156182491403655562747373031621829448821046377471039593974985050293797912959742055499882366186475100856665927721193532255501444959746335473859646637911278470812466704347530106469340229010401802707082080183429458098542622838178306822428984533662961338010170595185915562885780169197781919303431423324482914332048879648663557382129582255205163545260915520967915469129314104890405147167396506554449034288765107263648172839732740807470475080175776757048359913709428236509462632096646407936438633415271236530352398673502402184488697439783640879541721564041589781766345293624348307770422003833253415953231976041347657692632189226448686601895860443246875876887057285026860560773575772686912658916548169682298956097082916925721270881474194146765977153069569890079052683838641340176310205210408855769439842839336539299874750194263050354618751037720594680754809306212821645418075138390620510114157640186718012087726021827182310976644831811546600734857465068322850113883167957037016640093990702659116294159814532193052396037055573749152449238055558346054665904246423213516832763941747491790565664273385798672868470442588200485607234022020031457504508346978356068621726323537156655996704061806509021808097384619963465887704755861891694451641623729603667989528879117613415341035281963771744932573947142722072058995948159301462701942380648680201144732233999407691557736648778261713888842027973285552512176230000250030691831678801629081813757235495300924056591882197865167088217209132925711489977068675168174605966763752793088737559546715110207532566816455919720132473846805659208220888289202110455310215798303817266164781568899461581506765859311430261677280012070578433227661235032226927527342098727419134362435230744059234055447923184889527814965949242198652168206451122324637797099954263982033916556853418822915224588103304475743669973023181039887726138452927270796076705750665496556512424406639254982742291488159100755387006478862153339860692884326948805186516060998152020892717171462112708174555609500531858577808749762742628031629913090560176734363635981414727807872238684365192682682018795373735647778395818663580784924866679279304160267005544716141532130392101902102684680352592819149800206684095073993423722079963605582942248164821259084238824465578548808071050882852611773654481471727682827385036402064891021568004544180302687496335928918612988878662001096346643077233924476544575780093267126576907698859486496624701551512341512459597814816642756454736873662377987463779122574531367614595054362219065395508039014702922915484422955872801976186289798554146111533264641518915281965180417316223424708883180624818926957779504632937233473989801798478633277526389790250186921813281711870078972181840592753840950537329788077460515061932511453822242507045652861642525767357109615450447358576518961693431825987010372813461315610905307777489981380265594197197825044116022039500850212709115482532298733823707391222216027320792360449599776207825107396484035256692202577847137847453926406186743408064125360722150198357439853940073542186531720891055756317689652370449644685045576238556557084049702646105575035295923563061826857829897445868069449437968416524560464662906977041065968750886325261566652512260394880293828951991910448324608355816367121217722867980753672908420974808551615613607960270345019735243867024319292362942601898896302845343393496004991944606765382940139310790301944056273828202262613054000794244176462782245441321400101705553482813775491209717822717610057803913779352233972893566512762877233806956283477187819598532835427273103250812068118723125146334264552559776899265310772445042611648181223070201085814091453188437838443589665976609273542412529448347901397647795412957237926207811982897633333230772987871424217625111308232021278698540614047348340577052166614571702691397735460289177771185505439308791234235461065044537998064736495127245312951532395241308693367122588197109973636476421336199240631950921042031166152719303206399758742827926517315334742399750453590594019431615286531890560675360857036175961859756767694403711343288795507286233049462026024476998150995444743524461747636536654464872676481709793560821626142437916273529847380882646139479581208068746004468118350039904398335782436250999387093040395735047752494042420371157985548898671767396544437221727957038101979793829115382280035743452412318104117652946496181823714138868119739885291994742293070543228942944854763889257830507265099869873167958806883105507842869910935623434025746580439658345318347152834708831410815430925731809483032957567924535099766005215522097343701944506970381475969985509604704569763581204344050570321880811938001025852957258921514522667502055028227711091475694562474776836048900520193257157441210340493368915293448167174078489423263308696070804787571240780683864853090222062361546360950583036204969266913269291687788927299505928983965567700881058874545507680899343841405084890599704548333418513168046911231177874160324870376051472679650886464738517956859291086553824579236691669972358796185800944835324750045813971897343426068787884341254335790379223073103843463930302284962504644225086337403531957370369921485468083342609009543351534240172133760245728085768268816288350689919938409069818153919703945135299582646484182924569433905408769870731073777730343934002446150287151732487289096685686049695726891132812005135010597737030657685167921296134501675465861562472828536444106190586172326003589903541297860835447923974883420290020582867490548594618036013816399538203400345200271856924552152001336284328705490151157631608107430013389582037870098113557038101960078200916628815893205059139391928941830007473273584546048407964281322018298308037264698346983929011331933438016007112843155974452609521192636867727411735092782897570573342241556730210606242460128438063083396129914163135112223739057625175592205687842491887817900051921399396825492405172384380644685331174858656939295888570935533913455765961580617804660639602260145195697988361066829967272704938839615712265928672834672283404840027243216052427435656850662830170314845824311774873918775329511528954665407880354239574431858336812911656487364030393132962502895030404708216790654578135840489130418442129741779184171761787953343266240972151554078185490300881829044473223815752424801551290698471355746806102255257864355477131843342735354985117679422693283427189946312145456492290156171985322420678100844166457001619322579806768042274143451174141005795607923997832135203109716235942664184299579989990522603306740212521425474708960211097084273271386820657122018187758025749197999935979092343065056784514573324588357735958149278681586192192680664693440869389273460363721573254574633827926771955638123675407469707495968493677034007138289623553986355167791124788846326303512352875992545551566694163799336939329440954611396727434554000252099513918759887192308264602467137711314281912950838037295209925168698093610707466552939376405575525162608464382411485105782348191368096350816921783800672927272125151448895795334197602860000234156519091169187576206053961351997632868153165260521210661631572981843209962131906709142168790234544556875990769523614913381200592499939866133975659633115993925922267822698656685670928593337085173812667603018357901015496032118562565065113645754366961146361621275361258560313411655251598860286979817314655632886850529537769518027707611423512799779860908813009622937245324874355196423822494132925793393718639184997564607388094452513048382816722707162851165487244648561029523748996603259065935737862500858123070528515585133693333189285252186045455095251335698013564982591194991709392923857723777781305610241167383262407735894566962137864600182351706470759718582015088624245758275105237031325386978771863522085472301183974949383599782158672331702684016465373632835331816044798553392749974873033549010819476501801503733590364415761064519445429442399130829962796906671839053541433067207755751401199111855483518927436731115146669928209769508944338110564071576321924377041522932878161887198429687320299748913105704583558287771423148768740018860496107602639405783981490026328489714456762947643307794713109246799180063318085131083678660754479519327504721567452738072843281738519396410821986276913494826571665747025519082000286456813868064626788998327775091065465342910600366488186180498156061533550105999062108999441959348193024883512326872563600609470975849627383277395047906575023261416485920936535790344693742832465258607474843899389920131514721591867024117621845278450157718870854400296309902480989482809422932397912354943913222562560865523881969244021583288383507092640004609243729597985183083969866846718908646028117595038290748340904155926188368594558921366830418821688252034411543713217538168750557739221952054027393070227144520370661971772379685785660069507761488697145246684533138937914264111403542378965076736426259816678928403279080166360134133767356130147295178931634430272365277995668284154671148161908384422373253952066089462458871354247969699260097450832893211425624695842321714456393293891708706155891144348440117276708118469059802135715584648683124971759563962146511557227056601419704137488054728548928684034679261778368493880945006742922307280684971370386394263808625457833770198147201016589803057059293499861983072834999929977692158320870156714425257972126290869332222240264066720201643394880671436831115770999539995832402572123760420652524945012853129532631754858130251432738538791145411250239021683614861433684560106639563874881318464972406774985866384927718174870110855166812955077982807624313911006673185322821157749347304627869401748081832573239600161608229357353157649514554523323924824496971516295934127169335066953506574233596288524835319721761446919206085515631242067040972589773026184837282857614831199707208049903078427396316041699059137922200510649450197574366775808578312887600225040230146531890291264399844151658839560229763143168415989831489119067698183952741151110735587384696003015398201257251729283362668487438001275512582061726425835051693756870725743399829760293787022440196527847994889373366741121499713875355993191501558543061016720646809489343068519813676799803397760159155188561082253669488822718851769898528207082084855400670675796889082892648694654332850706573843832489699168072346397166100241425809541375394517541778822494970821144188952265138643097568777383575644147885742709760160968798961137184802959785052619045786059507269785223566036871676559798117003301268071592615125587467425900620875606694670413997049913405840747178806135527336982642238992404447183130768097375878001314182775635766577142970482014778422840699064992084539164590949184033942418416412078837652488808767482719667496590801826628186847707432916813804194136405412907493802925505491316534821033182788904841066452489691595130057795651347981660012976816662758629517426791698472809489866402155916108866097797178138269068664350593808816619214520780698737513947840189383967562523386429333344711941097993457753304843657249231603018190838434576332222194344611787271939627803599909053621456532234276798274899447214934698727834678802853167348577771489861382053526115674615805080321315270997681635481644279578185204508928512420582820510591526085452077420651866269164145133248558281034770169471849526532375713279621137321921817578188975336680970092077837553690413793483904806365943925468515436307151927125719335107200915023432889923208249864025337610189894561722473491416797536193760501389297677898246611640040129837633607026594804158830594364091189079335234792569618204497413599680728873448169419443618599930394640067020805563917142172476853646185443306012947115459452406190097978510810086941034225877293455680087113794633913078821132849384003110491909335693246989934182835600026889986088039360576400810061008766520322343270879094957145046462489175041634023157537745901289821639315643656763922280810162490318864183353528954478125423722377536221353240421626040187898055108610859449580228953833970490492651646356294952375729389996315852263868950391212270745204599463852385552550129446894832155462560745198614004868521364308274896024657906148218409084617183790968280667319674728329109665028945144661582003620662113063753474491696263550683559737678705521360337277002595706155025565824509155211828858838955810305843860512499965641292205396836023986414692970660502393851627126987878537696483504949165424469133479467848362028249824257047808651182013015562476776501990404233421014175583218340809435372014509969410897988313644729799356356411518704412091878454448069764882274647204665074651950685586987304402556614460530549919814230112515362363010099271155679738816798629692443416923542839738388775678672674443027974392313262147672489538448717624983467907480120902472399262189198790058161707844639928331076755563638093129027204788388411432678538444266708223741684830079282485031949840012892749133280704050734814788353762320811679735124249204500410409250395023106566303099193856162481093615514420801932609107718811468339236678144874946516571313699484805099039408679221093570670436662990065600216179838497793457535816566051284543724783641193404923786232475780440784680514871327602195301770954224513402325982417286472846012346303111411152796053943406929419009635360188702014157177465364711170355419172829483287732208059990271582232586930820891010051167908410155487159551599123897558326737549074641734876647793408593167675688706408041582042103351502662638765030960460375182617999184860555785703224588723513146867438869679298999983149097071108722605869475684876797155200278949112701467510402209265834137291176104615431014364582071226400398249341085439167901792867343089189019518569243692431608763744879369182134963648107791377115496460910012667309963156515708593627502073220151043586798394245500751171562721110919010040839453955714183800805385532214480065636614672458832603918016642114119038805710372955011869757447717356879552406836250550846653837773434686301504282713478958467858272119315454879403115130238550905776481990518836050868596079860392543750268893406765097462194005613836256274303366618027637662054434427104052998006372172555049690825850964229582542641745993201026225943063486901287064156110124104185417526661171985261325550169191258592493092414520206734818655557435233820518832199348437767482571633078422437102594305078215343940660206886187247959029891801708970197623410287590241444216089194781998119831349263557698116388588373539992134320238656045772144814672752533682156486111452815977869799362593228499043556931621636525892722643438195631948946637227126634612635934396029513239029292731219281557971564791180542171864573582671201513446201082750482725203103164952225273657899090265885729681001910178116447315410994505594643670629991443501278477808234379344962683522195980766931247838855342476330071940808691814839873139912961470167890879528416318150891852375215425148919429400887688494210118225939982370372299771611742912215331984749544594352155008170332155282851180370902220233558152759493607279038038883816146975471792308543020504500363513591098312794809938673619672126713486703298304947069584484706765004401129862704767374917485067928910330324908222449876337992511531865743826991669297866074484726015969323133414409776409422526807877514909894725656005918601173394459146864008422514992753443642081941325962598083440785612362254960126631249256901890843324442518486254490506392523738569682762677332388536834871124891280224454970345341761907194099742794564866845659492699912483527455818489251764511474472925509506329022162617926902978594883187407108294651671219088023983512193474154459350508365362910752194051401328468815744752585714913663604254666709075302958659302028273396754562771220604893125337434511510133860457543930191278693306777471261286633994748837785923603193950357064638887202732529447339324383504242966663889241172085417266697410806573338432846173338157531132355987473768880897840161351352566032483061988320602214254428758719055013181872469332168535039474363698870355134007976749566216348482647893905888201451013922548843055231980243786994475492336804245340440173268748420606516497432862415628802315059269131992969910525660707246192761691115534393234588560333494914460128781788920826605643804340079142852469713582072859472980422803464301075997574566432694416521410481534187301567749492953702525107988008675939525145518957818544309263914088009845462508477993744934475988011153884226118316766437238848602110035323100872676496286593570517120031543260141818107811748542499900995401246555806503686147978236520313013618162231952325032531855855452952612082966711076891576572313207997041591459001654528828093109232671559065477977828819556064049442927683436288162700492664549528057026512438507809881713153014683459490612551511573074582069350208133526169337238540517762611174947019917203242407245197269098082540296031491235942009535038389591442754828063171312090889171517188152953103927797014333385756410735746961677027039487873081404287298332402664224818918608451391709244214934035112967502444817246557708727888769764311509578119331778360971153327802286437968210576566937625386464469157716342162953687795704284474390213519059886933552447573271364408069474718098999743543736697175594007139078016884599753760866199799783725576405673215783169654813608079385351585977555562031351162660202568078206385866732887168145106466803050277131694612811197297827789398277386794099336380082253277479782972546072999498112828067978564550789717023665981605835015863069806329556217084866850430207366681393882557784102501206482763702469743107580593340240148817382061734410518926984956242898612817883427029018947020931078327731497325620585243544492094070942691514592785897681084761740851314570924124976298848876854705312688487535413323160675426568363049786091986747021131802010801389706012614266098374481741901287756585075286966846053833324046160703166294145945621655296121788048167097692152852513480087659216329653472121649637993278780390858485400079653330216368672505483949580313133573085715508017962467708973409899445283080820911416753367824849697568724283981933540488720569538509386343832494485550514456527700914312547725982534910439038331890575048816525065586924845659470110954974440180299862082255790090960383084443691193395689428521367330896791262885898607065445197551918449817530891415994800269772180357776857863399668683897535090979141369586052924771168348598042536079592350106849979887246316536725799472112883027884645311259087948936327076232103631281547719146489621671111684018754861055085999897381925778986379459288233308827252604078380120414253520473591453876517683710022406808074093692211565699342399602007165319682414607989257214354407699253972777582123924134407661970892118034556976986288909332521956653710278905603384633210985020417252432398113493974471169186582008259438880439960469225523329765766915317087157479209221318492771393965006437050486328661394921249266587380216919021379258460675604271393869051486236275433283930036312279806705384094613763917848420856383295914280855902849927249059192442561542703581273951971567559288960747890430327363342432649305536623034589186606730758725766600771632441750745886081376321440057889461995616258699997605132212855219757948222387338310791957732488593156217701971125597278330710315898993667313367693259673763560342352954275763454897783354152780031825676740877083567145175039591530897234593521814161251857495432392058854673272186090183157400161463640007066944572983868197031337827252934496877018396109504839686716700483475632221604906206605737477680655208376078487389406637707919034240922799412497430472336397213775890265728529708993769591150122785028143697122096011258404334966325401051229295397980956172419810837858362848757175780592024283239706174076494761567618836655006690100191553694533263092874150347824204880996268306700363697682679363517911487161421809886902952680363160076242798095877079861277851008995509394994038580274694286267864453842433791385897148614885180964895101044674869994255608202982697832464223689962428804974187280257285539385100570995644572459385273756156912691603830531146104826612785557007392044661393787363521133715921648881597032425238429413417122509340706589246581717958974882028268867226825454483599536105855084318273279757004197817348287550362790076451194180478140189795146517518043638433780068013969624154546506403292209729206381362644474880134748865539621967808222719574247420897807775774077142127004917941685863780575648107754967627970014251188615202254531186862264260315492891476568217380625893154403628184608961655999912421412380009316904040965449091392485831343240634078883237500225111746192402903881180856275744222207002166358047729937041345512958531110226280712069806389136810634777486531586487947865305296237130326311390304992706504612564973836898668405092783560839668881507878396539228243398274869618501019436207719306511006668345968973381080089191166769268042814187362267808524980688420505797277160617584215923503838403853303711936010039407966990275087385993597563258131848379652882144478976202156949620136742986768415498111744427675492117010256018754853144438043275063412611916379749735969125834861257447204083574320864477919765184471497718699298542622333677388128548628602749921978018208333792459297026102985038704186671791205848941576238392253879495894015797650304284422642433953916285554388275479037555702304218069409796911666643783113449998271471150880481782056702013609700463807749903908870649189961386037738649932478253279440117796934439791164223806144916901190116855486079933404676211688556978600519503607961013913294233492496737000026092169385464280540952115149748787106295618466140208433445710706501396464539825678173491525662049471777263716025619352905854129920348049894752105192223571294314110816078628321918257604608008096947306601574074483070399228467446561641019272546565409050398234402162553355053769817922554622857046888142244203568103338163170974372353891951505652098177963569654380658404530260554302549400561191983365598872885983551968123403638347016343492106585346886067820592185563089716730996922283816927363593674588128069424940433410036835556484262083992619771611769594138268015254944164997015871191681325256556724647023195901991178517384711701521909408018942395930534241405750993018190240885572671423072613463771957341255508211494220336360741084435692961618570450081805792287258160229146989269874078169829978513516153910119795092179081057139326977066479848956334671091675381119764615560044208383063519239630704279028622460175270785233234253270314082097223404152301436452900536865071395295488296678311384269959527459876263872569829893783499852541570660773706355486058322548830390850779993652774682086415596634007282300963052850808666219350249589073701011559683414378773826791400431437120007600723970351733612243531930254329824689296708744230110932365859100533811243333391754806933693997853737775413648424824448070609783092612547941338184704938101793482107620772942251344738833969977959574800972257713906095509193989628805525203036517002811855752731762756862953371003308873152915983470032598237063222354835777546122433473612713433997516719942903016485684581991753623483069092381388267848551758546236410572931998938965441115336981850668564044336082729957573349798441185738984689726257207362676973124711912141251726457648960528224816388440854170797651892749120024056935308738779652436319462877551087335599411500674576004636933205675663597888110577516800306691767493509886163492727134977327699901058696239494605066740355290142318955724916617301530856043684630672522308139828122593590513130854042718373696699900397941877511922574327516991857059542482035009481161835560029248209657375724787922863157738446245634705615217603445017162523152061419169240657830543870645811128593687949737611798362288533018458455933491072018407310848361630085968742417535389975459358265873145207340665922328601058278585897158565218851075093569354410693515342104480772073116760829358270521953731971040638943776719865047430206358724116183451156928249872356478836476822608260447756203252643924428159767504592210802287262529895736205415941242045403525854136420702332942102798549020397653767360966874629140436256250410902885189105412564347991627044683576296556462115918856598938842865563971747234236057133895789721877627140817591506965233838660492280004536332288630771116787565285345550747736657251363460857570966207297840118884124007843025174355299661036998665140749678518396213916455328156084693537964561598986345891145734952982602450621920316114989315713154456813192898666715312667776516761381287262003162864587567786326841769232593539454360912310704100928898138796292491099485860571485874653546594492931723331273883363280852345965569436070165252087048910863911238226246570257682331788316297484789916602193024649166171161026330105302983779893095128800244239430297283675938568047044276033748033633009806609486305202236588536268656716326473524621819747609202102833982997265866988483049238400669576949559419474197748406544436969487167848341802770160247778895219101849032939329580999039560577744670052689516418759490840624462911807811641113499730244600551205698962343045576195590326033766105644416878139351075242789744206529248733531795685775619792524430104362757379210911140709735599418864850407279415709307492925597454901340792625542317125306288942146168775089646904395434148506768110581319506635221274474057263343640272540754986321570876652896869634554418331989732218283198562331798043463786343947721594675218126626989111451824163289862284275516792452159857377396800260561097122698597074395104454920701338045527369871338249985972302904882737924295873562996395343580054112081633377825590712120747160106651627287474251284505761252714687497199736863223093505175793092385085568928465593095187945178021597843442298378797634180017270385511962239939564594231403629798500449468568087531121892379654944589581542432269037970967274258053901643057295186470595612495132120815375951903784906485332041518435857897067774766931110428897833110353973283978212773751454600706002392166264125449789211572789562189542202712047532697677314282577508123087494972339866798032095887213404846479804774043380625593803548563417515886062520591872692143380302491152950328948192960252715947979710142991972984853292330027691118339456787922850634313913104240526954206317245803374980517864873978847141605227020079155535750121426834707009769877021405639334070170455302409341746498580706218598123159695522030206730578678494249110329776600167268500352209682478616455398278942382598255682216147706093133273448276273592762855170785680139229858477362042005134105538187458921003029112043939093254697485259626319060334506343617954279021108231093203357940959452874319024585874740629473688256108893651833506505389631636321078805424642188266852966442234535837867160654253937453451265280905439981814328095433330884588706302368540483924271330450218554269393499979730194109526862993010009502315387294914970304021614279050080569773355452959389106934319681960744826683516140571350587193243762337907602459473867119267158131706678421885189913660499262020574775710279051565567082915274251752968195365806856638148735526856117042514527243417011520659366917296941197391739942398821869146842495724725496468561722892956062899837723744380487047567077609981066610316564330995762685849017925909446769437439379488730706975500125693978648074150796891615699702243153294332995205834458903452390416086471242500135878822849022059253589676322765171317347307438021587751287003839501460954841563813846236676199419122752184792618414400038875172625980635595723504171320547145912318930565936580834576965541899045426169051886415723561909185405186544754133151089426720330447736120320758473729679799975273724457503490877293520432873793946756180373130455317421769058639214235524121539717857413753944162123266726190103122486241787292338858513109034532948163814148122164675164416248350573049687379807501751964910725991415868458039309963621731741011806208403060560500573184721189506964712422186690985419419239150048325003270605738045611278998163893723351450335397540999352044053016983462886937839982816766039281554400044312382319610827593346999560554249483331487454631294805662111056348860312385303616087448565241461587427758889599085099305217982393915873422148548850025547070850571130882402926776527960271221904591072292061372557841425828439892023268576779235573179477242450070124269743294156526798423715026553717358384565015572357575797358526132434706693006707536851167858634822826177463820798409948483552677269179693781536348802151507321239660138332880855620286808533771403206438186620176576614244652378704528906751389157119527228585117568219763290355861112915340342062117848916683042681982901501070381932771941074446315395057841521849274747728232771486107398658240007710944351173552653799171082151968877964486749708316013338279307950682984649745314909375022644176179000585720389696653978160231851132006370566846579557511400798434804684533996141663004460561591198746083037489799581560857206922172387704078787292800496116020900347626416971071759704225464099216437226353554015409326759106899112915961632414574241802788645678734286195483442918448063680572710386959227903054029538615585683947603695230958035672422898524455138160106965770313558396647633144986008501281548713939057922116099072287383525691801193170356983894810394406530304377568801136593846703510034100210449505612851266880927415941834533389717517912450950497766817116374464579724954785662573863907213196865523579924176143958112111829516101462202438238675668146023303179726860869585429616403995523313397184169804582132508208408964954175211206912400178929340451802408807081262934774262017531759280635544679452279485395157992286943375875434142661070038001039216192514223750995816835094612572218790607952626894001278078546350868254233045507931483670246011943606603476553254017999146614347980670015410177117089101909165610435712426892578833197717927743995900761210842184962455146166503396546542203287092792325643399222884774233436150138779911309018662007727627860700613637397645886385788750708624829579771335719294881206233083281020780501511026280668231744567978306756998866068892767971667259604628055089188992418075342484477810346228994863356771037497539791690852802910850867009867927037497138699841200680985108906733992236355254893080107077515356870709268172023314933836296914742722620382914315337824111932519053102488564641377224973341628295189438447919171693349471131312631474204744905285617273710350862115621120580419363926344317688241914441495303764157578472794625695647735717617832432721179557489601803029366517276562191018964382601966055729416734926854275111073398108269236204474351698480039119314387701923094916319234175824837062674221000446502270287652986459566254322146608116815080296450997337006949996950146961263211173584055750442220512592819025103323603687531823244701970017952806396542462003225692153805258618833970106113345188376052283538417916561450098272544955914162868495867561708800331286966284151002144343761527241606882108208521202748531145747525860106692885704856218729381915618011116066824040839245464337125935589574664408821744024739086211816964359036658106164720475713507949757595224675146902783618347278441965931698297181724640582299667955100491794103082544674651332809443035272774627778475581013398579489710874763917128225016590433394758021028936460628724144736452213383370697251660448118977959133103484112230237073265899498968232781496858871830813251421877435437221761623278779835181168568839299875963748454857235044935308037954347775972662392811946049546247260610375061185791056424959781233716649471267770368860733784409407080697834243818537813372016224173917029320454373942991702069911348282651448486487416864596894707956824737532481650194880271924472391941471311008395162414798363059250477275661033175674118926477312930892221985477493504133213270151948486033644738544805728702906964847234985742132448888289773282166201196628549000548615227888055881813613964196129587110476824547358287098052770566854033288585578956820458782509662727429408948644666998154837744580319787240185743770054385748508344044499053095294329749307979640590871888864170440166839368760262536526866062516835251505717222578061026079888415084449343610304478181908467533882527249802447568793622583330662210080626080478362400194087060227532944751159440263527457873971354404008847440636658204584926582240157944059562750114522370244771942435188993749719732530315297993104566513623985304674881447118763270076451322010760817483464649641814099622132383758399535243582614563114778051792507614164427118455403566906006371253233017119010267048726793975933784639275124055823712606335503274815383264120052424163782310419792921146655973533044862131066616931195004046976207660953396867855394941142630959408041753530859839603032841158762143282119576901611250585387836317016084120645203572200965950864333659856080644800233352124664251908221882758778007335180268670307766719790404589710646709740533043036224009542132664155957001900845293990178432098191298835655111260838923674353624658542227443823076831351398657541185587109841607266539972794666483212206132675343721981750572950918003676431843100133904620086282444960451183049849778519243852448336491578164056256674427060503339034208579280233175629686801734569105086874366091941958052079960192863830729102263279301919391664658370626624954597285652008684046689901331294612645544924167917479613720000834329395954383535722521486215536969782678622330899732364532577559560887869473531323677285636167812238232679205737535589778218159586798210233619641638471303576339905774733187315271124685060790231775056647166064021198247374071159568937200432665483729212626497146570100948923693105855901194661224330485035965590391390949901397494529565876550418443048654193438768991887035310355227239201071865552171989546884144491338565587034754506514773915195275474312564740705051388495678207951256568703420793830949280492169079846655182465553247677596624523003329382902217884769494339056800030201281950735781187388024782696980464191303008741004917308957593201386711507410103329251542737524262106452120422209779787496487786331186855497654545224155013874240853442339263884826465327921269821621528144057972347586109560122786301506700958660938948763200270309821174809685409646661935823297279881807103631515017477144915098234974099167933734648809399453292860571655242414826294024521633885116072905394670370607100393580414857846306470793256732987507128941277849208563592784724849507132740513709563872125906085038581661318765712820282363276286835199431986955843779707010184062845505643789294949037063893674585453323196562169966429737212935314068614659065415552602430123385568315083027591353367687546624240076044927199816448928507238191879117892366215168956035569859038457330423692700075275124727723090617172054451097603383898064493626319522875748977711742698648031341043450866770360070010694585870407969943122576465216038676882239590591678974101621320919966386140493726427323293064980794192666631318913008896839691054876279073545414957724352638176954790579777070271101401816182111455213521063435444041876987050690776920812587459792855887026409702631535659452461882844201336107067553166952108938636304540724691820823407202876218262633433202826395490334097868475797993590425833115419241640307439073244407066401488894663293779722972094263092216076990750576705747127991697542156820446567785560603407033793399440515947267267605516036392515013283892404195922876456479264768089607602713597424428918994849720860496813551967235229472297374245441845789375703438506909535698813696971549331260365483923937266189583184962016976515989582647954133239376169576426489132968533415464372784769052730431806948640572510467852658589796882658419831789284495844061743659735583498700672990798252914963721990977952507471363326600145838666193269407674830510707843716156881341794620661049335272178338525402340352102353449790621481183137514817799868134895949918076534641036371980769137598071978306701269584153532183314537069184078984509030326978657879564704246785076215464194745405899724211811022135499181521602134993291141178061163001991273475433420768114200496357181070715989468940364805824058468094904801245114370589804821821607463374378580516228417674621107287186622864302324770923200914178909444934255162846581470440289365515443381676306001571678898461959342707807302566877864041898248843591243623376457104851565686384964696710496889909882686932838789478736502084977681869920840347385789079670396427922874380455418902194571701241829979527014010161821813486306762524758807022102994528571720916393702945440693519803525053727451525816943515394581568494531116234807991754706548726702260693515600956314473724978864135977868354277422032213853949916350051134662958102845451209501587096958631122193525059786855996970724417266342926333797699409422885325664483909048048609879420911829109015841480465889351023083687174424595754329533489374832870514535873596188951339729863271795671116832916422154136232370667092544642526259998279100158603593928943407997366133809501540864747167585508419937459415563178840012238059718286865600918344339328536700321047691326695372017207628941439252401253455105219813370898067688939491464755214441733410956932127110030260769076314831714590570199515652777048428364685151974547436518382671351999109875144391465899544289253458866337339188955827027592980664197464732683405302333649717102455010029558553162117194660172310478577643589898297840227832973423005117186272105821577636811740078490683861248099627320633335065173476613889355141884355490186604749420536566888496617778559333600367806932377865257163419639782325891572015994629712178246833848925534784621665977902255695362929467992981356381673670464181828304878279907030220286282482389920155744478063395819688982340339683453075182415596168422115075081047818882529465126102915080394288178907069266074657658747406928212979875405282221454783993633048113542015017902332263391288938528910984349260913433069382987444918677153799489989666170793351469030420341771894821962263986569197878344603577030157119603098884549966529837252780430073641014311113935461052109288812820446789260664621069732124948631906274426485325450715141291291446358452332165332757136954406762931640462023441995124073455850157565339915432412197121768739279291298169383940589953521255660797256099891333050817442997017791596133316463657959956139434125181853940686722181287175747966122183676240411027148863148252735058743992790821531540092821468392420613293112419330225135396181995910205220445949280602639684352506648919876282927320420399354490140003537097864688480158183743401436765781868413892490932511210039085320197002198756549777284026267470542229932246835420446157528275510024405860589698204325121553076619543112037668926001362000776985730693183682658106050659333901000935304734644166412067365538832401872142523494937574497508382219801230550472289182071529438922074824736507941170463889135577486029855258045056737122540446699864170930383061391291987024554498709497449792649562644878307591999605805608710916573429330222031741966796558529285233804587454439077912117457829046917757931641524823109302425863057073459269093642678934667080175722602707552732094446647380595280859693055281234870996738162229890264213522379210542812105141941641625374879388634823774721546200111660461762862623711773431421329291857318396310677459783247469758470185101188669535376463726459975066293631053300823465017175297323056347084655733947271974051070313836532346060104813716082125906457019511861172442778587177993886863355366956141528274795085196139713432089155569554852204265177860896168325080099700372254556855063295373185685513687497365830974861689494148114599320768278817725692973446739217295742850982846086598961978643588606494303940570525906256157425214589280870508731388537894880547111100128421162820663858140262495949738464750935796414684455327029231491967972628855306303358364346767065544127539554891659312535521924116786669653341642509886756679336659509198740327779160844515565385411442903076695122750006056932121812361194251626015829925440066388939829236100460310025029258385355299314924916868123543124899462070186372424939737324018387395494165111203872493721085670842742526469753565541209449372941558841207270235380484487380414874090134787178057287932188452035292499907827565539838547723239492104072420803135819122018311024857887321012265395455142349417749270273442472799907091367580350014248609436777674164875337935051891014657903421173604956038980464237148133531801958257354694157253275293791050391130734064264368821849995285633146649468014777470366435209532646450346331977929171438168326390678115521178080402864366348721502252408108872986589669290428810001477017989935149445648345394143227349001433452466890329087607327928036993418333011891624038875772702587198813566845497921168991085561940483883712083036102206921981712310628075297436057007891459701602833025443808033436769536894257396449176963302797224343394277094100210963668886771992433773772318614564167681164642612191868168063228055611992962922090185775000561178291356661442364357617468630598079643116097031694862916100692120350813251222045874615453118671223460901320304550424183742651948330916072399141276150627480363973007807422099219628149437121279147225477048002354740003006269749669043720923504709761286273169550579579959186903991303893641820942811063724510938401611025704167260306796836086645617461442661803565296381009216567086387249291931711705996088264745432193761713728067812877719642098525690138758437286749175329750026720377420990185113249535120609677703207329486562558283627951583999983115803004762663131391947771495374116512179399534332597685497158305440214126747395966151498607517898676408798598565926105343522666064375077994129601088600326641387300872307683222414372488893018826568531553472586705871313460075632293836387731518976051505088462060322824198216331845379989941852521386211238687061106120989091091645971872752300138759764211252706997549691798932911959963032242623726083390000831119146297455022499027212920457240238049856035986610813073412512560050513795232749422503670285126296062389890030798375653602151904986142105450840780367831051734397364536478413525113840518851893910479026070803003305003930572876563261502011872436727749161580015724172789385953112851881956617418337278120050971735019917444931982244214635103387158211793073930326245083888513272208959564491746978921207152562972370454522000906102559496658633425822860709395666250356931244487872889546704673301149438906934682328937213816533966949699752914047236218854666815004306609383835706103887967255583756542260502695373890577575065305099092498581669909941170941092511063891728922346777433902191633948548216311031870555008399547206655078171045157334064474802394094366441236779898636920120289399100631538560630161077288518411092502204513195456692707316423141444428044122263980829466045616951243394817566100771907372531438219009885609788891380998916370718886032429054382098647958484872073703069942365226979430771190797484583212742780684285411837239720494214153464490350607675266821242408511453629900044308443831011771313334807184898830989273151115204886126129344972575486569165057022648140655499506068491819471921015107413602927087302528733430321541579933249314108574185982220992757844278634045065096383363399686929095376676773120795840246540638643038092908112180714563630015183160372156845136340640173593461897983466936945983106376406001859827136343115810533056750306566855388709996264649720050706299859138317687778856229268596974090869894420850555316679315122548566004193953552960671301121548748115465564289808889493046951939025366857700272456390669392991888766593342121411764427739003067663837676908600131940267713776865443573748843560628015318872930061493335241979853522604616027761381120567188055031869929104288093786610522875481826393473959675332021514104600641992806696096173460935800666181755883173599524403003934496055789487662233340539024557368492773224829209893870325141558240007542474194469583475847881793942837382822505195257511748187949649714439360192796982419282533737158416462633948528651437130170771430002568774653549184116665604058396756089721026411551796326875775935798798755820978995419950506287750585995868447136159984037982454827927534134356104329954706734383907895410917512915700192955193172258503557838864426207960407188082470696383995720270000863691384480959540523575882148935001239794002352301179577712814091240642302447200820588215126256439484552248331525532850938163594638979593856360410799474543789246450842448783307595295916914453668785248779579843078879014550009474386838456474190009372374049319307024117886943102153935662423731516271910515107223222360454215099742108365192866596566152824853728582537170366641530401256265849372171403922276022248850060736017564213867093998638685120972915269506451592216684793430066283391738299379864998214103463897819384314942056766200785478963014252880857769991395526913202797553236355953337768990503042728404600582422077422315586694443889899883255810377900683523673702458954929608993065249928317091075614818525313149753708486372947232029421211239656057600754925675507566584438592135865396222100025845730856290578281309894138311105872141992182531724899985499875995201485478303003787764701766366605301318512094015782639202079172957220187798496200595987010003510658819037994658910795627131866602966191785733660607548673494864005568128839162133554432383606365494183270691883678419689284154829035473715785077716021191187354848342466358571880853772862842075786618303595785240702962098230288624298669978262069757731859243847329493090285921619166036617168536047997770300299544243256002720579984026356714559043596851552498476768457922826246770098987299244402819228819586888048598112516594117322184760385268116392654322239539061790839447295273672657036902761841368061198359604867099573294829213254728354569030802442235369224519267410096404834868607389362621606597792319604574706928479970422783928850596418295421749978580811722633888385131775041674521783039657232010103122349032141225359884332329873354282914661133735580361074554945883432151357582244117777660507568639381343469975622430606570309957447493661097676711237654037774069618439935059492187851790585399857942065952616468675421067497653765024938953869070957428263957060879345668704925585006280325503143532598478078771464709431014518805699413771186030569795445880439029906659132094347268883929074299522426628959797398409454284647483274273517598956399367872503512147973750881458170830246130915624183609590330288286992879338234399482162836953684012610455762429758228130600598505729602822974816427414595282847944987690753305128063762508964037964362135655705139301963407223299385613937679710298475287202336197125488997454477821070539088976498264118380582609805423172229567670186208087015355975949212104106578976340251215265003771791951447894644329500765171322864835921885148686972322117915000108623152981216707021866376900641755614147959110444547089201794190372146131313095174289777066350295848976657321265244563861021592675960693810041039599118246681468268519729610944812713825763887038688742448352196877308916217553490743245555172466762582794373775304344680498482468172545573361392255239201184368745784154526655965740637304200266546571199194898864405087003922646435228683595946311670798333846994606170588640344315280653152396925972702574824383457768813991607448971076593877568504341651026250370899770733280751243605267607594702193993327339139338865156102124034785641100992763244973732138776941635415524071086066204063917298295276910316111081144916117259714203289125392446459494690939106403350534345553124048945409754578160755464124343150924040739340333786793961044909449172363131796921529366356582250452303896717242828934597863209697350677511283966152864093505301952479539781001597437026893196277253145011829959253204095071754627566087876324118734928154532969787461649323524043422353771189045679791197542501943390621857512104149116540912341317930925580350071971232069545351966925080439208634274127334881304534865743054533159652520560796121231654901600674647948430837887262765673589291647508280737621304560494758515042399890450084675524125510100059487353501943175932762657319813774730500518211464336468386399399862708832773806611180388292290314212646501173462247632249409300966000735487329840732931735228889816402335621727096871687308743619393446128329921587944237759002387437866178010285471235377502696866033798798250073524156758290226162532723972075868510279881795602186206497232027272805931773906497542117745303532817357729095035161696158804450106637595012595805944816723981427229599157468524644435775038585447575560375159709712695504786125877614530503055649088135517717867649370153279927499195336653671463243581273244535937515913273495388503340976725925805298079486354401800217640949867281364430281108182435731119807119016745340326916020014972252881111384260833974242224334053408694672524789690727643614872208273711105303978249107675332221000293193793092238390952295535112453487198599285158036214590408285565476666143499530319313582245956141212008056398909129688270667037083541155147759986616851879960759468786707104728726890226819476642433833237517905125584959581239124380029206695762016288116586001800744198077496864371126470095015871245517793246725326196132765622304619349465011423158612980001051178700384098430871896764514195691254064165119954076622264980435523752089346483617024925047604487101590936258105583922247683971462214611000542256316670636001510933871300225283140800264843790259542588160081475958616214748469536820190714320766585957591534450913339713046505982948311317211953403493316400700803809320165573568982951413604110977948194715426147334101660061543632044244948581462268457490562448698562963005924097510124783037049713235343337760511460172296569468677729899611076779286238456500062145148985447324359471351637175027856124343310683866905396042187079519186624260024478291808618112209531939727823313261353892915126433189677267385031220616076411819897965246756995260243130031228489239217328760791355443023514063606507350691110701431436179135008767776336223904445963172826798604866188632650070035084048911827882290795667053979958143175425838065147620311928968986132268944039513037557798590906341254355741209861438897681604621435036793499260561888263213993589542462542846689299230323523209078803547197161339837212702325412524934399259468074604429578994022872252092973110620077507012610041941546973492733143526466387988377310601953561558015618867790938442274743852315369403957268884233663078236009664430134553551587245075979370367072855476320412535509294288964705261043199351482626542761720585391700959958657493951392921220807186087374807606111363772068443219750511270182399479133960654935118401161309372827556422117276392563685279691649900566772014438748481019772034237495160400109377248079385531800420461300649422847375810115212626392592605319790343673520616226262803037426970228247412593302047890163717913914262084188371733105043224395240059261415109899656621852290589126850359775127749755354952961752751037338924572820957219874581001080008671901970429207815282158064954681838553618337247806584201103990142147309196627150459615589637495511777729003534059147657804002818811729191035639654834649843528124888942093039098349090626217695228817139039222737682734075294822511222589416584085031436134027542642619976228230675491657841030219858621072972887363358225201421028069954964824482293182943874694044721999393089097420150938001326515396630194590213875066340702960959811837782701802304784113629451417485687791747393284060253212100713467882484861558975561492470583311017532172653221183765348259168588207377504409466103718444155543815530978157038808098105293340722945438801836829827874070621791595028097520463988613016476838084739763204338751925735949005440720064688387603869126670999133063163724284325090781888704722951556786619154803075865217225604180184483944881590348563573338700031599526186201407970403503544181585597588420604404820381329387824223835685298763547179014144140110277482042959810530633440859540625893366353103301174360559264473229503743507369146195022079339911582107599399102526005701100020639646896383984963681287598128454221574421667311557838488536963499379203246847117246337283119106944864626922824269170167499798165247028379405040554001966788166313394764999680291238963168028124432419426619540429676139008429378357059563349383161424804040526113642802564893520848574193228896221729098228466912157898419002339320005346596941478437040279344853198051212502811032481857200207986777286760324421585230404974524512920818193073112954497468103553824137248909326245668795507183204322954945039710325293574875606366537696491139915849716980062564171867994737170381015694260060432878007897893735529455644340183380506064220412068530026205706273286430838238057998688623743388482205846724998674918548577162406206433556882352416916808926284278486490409758744295386585153637524876526722313240004939438967539766401873671379643472476093916793126982145406775473681947893803160995486287054344200370901744209285791859617317968638141435290424279123043387355611177164139128765364963867134929798729877489136518637959586733995750831560340316248942315046818997433908550808448412655890896817647586228872868974821184672053953513632800643492055093261893952066580657093155311188469221146326617845836267982597288246708012767805339543825906359811367326137452726046282209481064828591111287942732974456005952998267554552546872769915741155600227070767114939578819736826714216653968977692689308866928944766116750807637978332723463326159126118935501932436074112531251089062231675828972551481433811381526582779211572243223221512663456095754166021707887158314953117757658464089975004386395899223978340880943552075409610448578676993632690428324862208735361666186289785255989155102064216201853387259446435910262027308620099945866596768246860245926354970245024507314935796422764324336817681698914653327679085140979168178370796921240042196230727173102625791220522477295139661045560168813927892639505302292842829127911490278818238247409219933909637572174358483183159227475628042396644919605963250331462704347133303261432922576683431930219351560180605589871915601749666716644934607025078827346832410563082965657169697938057320387093566464614275045035179180852306293119178280423845822648297911650564806516963410417641685460004412066647341787350860760023200697145813499112241169084856317316021558098645795741705251396469118552586322426616690913010310786015693064245385446258772991004763718017389206279879321396242994396954425613071704334147898073194603399135846603836376396207461213270040500888746717037893268013440468408413308993193686998744922055075789344418677108430375023562644792721752934791082755201374812084132025416746772611846581913230422162586405021137492136093358481178977644193643238444029874729292986795473171948476066975008351212524182270995617149848686580976760266254814841717525189799179463666619262284904003369994102543041816924231151584312357228339689921813588018008380874485884952545388114281947538436702680206067291651866601172988962238339553936081500680248815499239204552166801665524000039173832660759087104796636909925020489329934777314162872467275875866198800546793522532270788081434257984127136537332330796668931048066801253673248889246037969910109920707997363537410816285599000309547298566375381980405728297350251629063428171655282559574659238641548398269375662278869739920827869194018631939230694658583116881492729834307464595113743430096317990295555095270034921491511918834692155189115076004065263244821235061683986688073936880583528739533754595584765149239487627385422620121576308398845133965569217111292330743263279974872569759696857176848656565608645405925780632589873504892172684895142811992669286144589753473272722791294756237604876956776811532394932766197888521932961073265704640880520699926205157150369888004293634258013112708147179129990706246691571988214740732377719737668150969748870905283779152981787348395399249933496140292714584874923746975950149499346557205027059940415504278256739394842050935072381907606358313994779006869217609922244773773105210664274253702575537697609999881023179357133997449272386460305974175889570869840043086150996251361444453748591177698127456029343372003767173555036308551206393710213844707271864721849242794904156501570886146669842263445871305670059017556959732950031005241305199047199389296772001165699901166599425080255204325624503799169317704320223516652333699443456524781878550974058024641266075551067002307887910724073075215746161417322584404359598220122395898897988399133986202149706684305126937379049078204146480755571692077555858798585756474730501585241100194381514463466573657161619677051746102651265000245793344317809609711972435561131426483918193356540538631765419168109101739411344985621427334377361223951895351504023194523152202342477500655099430227738207555220727523587610691360240176459988649197535699638969334436822559562160454815512317885134243355115445290202226858388507180733774185484912892679941247940497561436185756400085326194247089517556152638940475344039947417527517633358279102282581701786017350576426010048766166439147608412345130124239960004113735822638016471645820552803001172452020241281703075861462313043581483059673874203137945636368529067318638362110581823900938666751726620475444366002836658620016702790945129429646240068567179837056448472587180746887434926024980084967861312749726071621542884122098083074299142175496823252599912814072989277615767511004328459695964635710503747406617682900883648543403744549958612735178690626971138981028801099474942187326539974060305909601227940558037956523282970033269951397628146863153188230073927985966554372880633240543212683156557648652925013744784366973055427330647893481658736411519352856326433835960040432385666118061452923731675402679401688224988651463338924000616800367705863721166694048602097720687173387997569243510922166794143802819643620419873258920608462750377617765571355473103164863802894222890187747936760475411077156877190392911212568348549371505087701964487009849037765088391711641331993396489879927425047876497468900287481403253835260261961569429189553656118171625294121861056616628387186680469147711234978571926554111552516829311317532760243394018735623757040479261796723768176826818158006291348321258789750978574007936793770647703937007941497478843996380703669367407798113810880488553524898853014476655935892663548847527164179119239930076318926644965117531670636838783385374061814335139153050722895522416899197068064085388890065423691673906927207849969331222321449295216778377466266618605804249508015290177264629381828374656346133028703089483371895713704118341966059790028752737305009331488044779133391652761216955315232541460387186028993679359848710974181692378862990092762227529922776543735980047664805006786090672656994836560716753685838635661688082744435984242453532697222927607279012333084766724836006586894092654355615878562300090424174078195868071029452501486195694203433669091351193316614861647155314415147307500827339632984768458406859502237836368051529730504815297231834971750594665178160534451077502845586933979125081646739111609340349683423353828560877171779596158503547697438278195127274500835614958018117193714386494601090612425346436780410411026666175115243336459740920815417311734613161349560238206319721908988853371633259262414798353463229462135484736596452822356439264102855052326413179720067632145754055075031590621994102541746544876063086761103168163255614530806403150726552503102162397599915029217916768343624492562451214553325279719344516521188823056398380135788675425981346724988595870608371388064829993547820004500300001553577226439944149398970673212520815959102343950570901614146478328757067716962232687668548370210249111376417212507536027838736102380418832441683545172195964306444166014341405576175396307568447551183581377789645273573998220871268987919426198998732037075409337690261275121515125585582737567266662771709196894718915544042895949660210483425396457192629788922082112211201494235012621762995668743888270425672559255006890062545251273022012530586201703437012529887626621995686130797376239527011102047412599547453396430169454758827444989306540763132956136291936594126392104335929748662001303458072291814504403239648226360699909907093637868528084193150676130385606804750675394994427137770113540000148885512226493886117204504980639883799254194736308388351079570212035094949070890734004725745065111410916111704156430651464130471531755267183372424382887601650305791725944978539853062818453676697396743862322859518759277622395298824700956480455729152585877918082453441040401729551162402686976663564276157154244234484303572195051539823303598717550358300841524367608523190347872608540360242770357773471551255401818225202668215167512248874797859013349815982675808327726799769397465824280519172006114225028945861176952431799479259074137616715288331452003580538549682394132211784381095512976903325563209302684268980665158236334789819867351091888778580839798655206703011451854232169062150318043320325403415887256903478825479105357817137346169759464861131328930875727366681235440463780673537781178619522625945482456215119983799115190564997225993097527290102604367346728585435892915304115690015403508811958422026567151221701668842343617970317669587551642804670579266339531158574305487951172117571831013000889099399392762150477145622388579250615693223454265856365968072645001475402869542426277168197259358663084793841392350514879028836189623406426487360183415098276968775045512053102077108401709384148918404268580499874406211753007192133514378788640669357581960820067498892448952831273493275821617993484442173156797931661472086801126241177259032273565565275778673179196117909815775074727394583950909769822553094983274231849777012090833271572785267229622516834139017590169711877512895840388865828482409072128736979761076908077995202277608229049099130881624705508585052944492469238506526539946807559311020421224239680112942184377762971544581434864714139806038753069533936831685939516652472514252052741214500555112583747761625185830846858917643667826190723531299230949850357797503538675942040687892625494495686533608114467989181564568213571181210060732626420991161622812213169277133934108443885276868916100090815236021152400150531491190861495863128569583149511624751174851074377716217944408935420438757642363707153579204506150127297156581822844337693171147927487928770943583736768454526265727353931134451309712827494577966310621670515104454213331571523521609108928810810386528618021504761290792975315690847795074180823038869042068142227234764810786388964460782991655240568301627217015575442483283860395956947547975880952231960737877091764017469803891912750952836833345530615918761709084019600072042620543590281284866750567168835860373226046600982826344197012413727009415549748696957841273826191816771023365762563760543559518142825319074535014444550043080441459968275390472344034679138569137718360158753569660258938001945495986245226479410488283043757831564314337276929242411704121523902981577343607857471183449049760050439032024029557961124437735243753560318481055649556575104581524927006693851126267434968077701660594867221963920614589568028852372617694988228437581695005343890780134273282014930570154648197293419958923503672916549866564684043633044363298554939070615707792880360718351180852005142743978139597168649396206442178477736069116240217477141473377889450682863551703731126564521186063133971700804032763694315914517918228224373495537875603893167274016169471890827530403236541537039715905062153140363389094946873859667413058590178302916489585290277773920089623673868719758012337742956266948156522259872083611485140776149113938561844978444737886455367750874736434566065130303484862479046009059050237581418620318450660840027434769450045528965078777412240282522779309797171412189509857094803777977237220667170433750658159162427236701099866574345264146629670719374408152790663241723728067951834771836874769044343746072754347930981983929605015626238498474712768030833988800643862861994198022861479863146788213295982775586386319967706819027400431173608077528004206404626809988595623841176777259500599299138889743077755481919582148494440340357735310051104428155082767221832672012896365183023407529214775815972478046951859620283943722048284014105258004144521149400888042154142624997891129748032987721728050746305227567705529077715745758763480645059279770314093990307104300946178351116094589155734693866269436398361197111002399410999240846661673776661750625529067155819706887704783910138028424319618904519309325648615924099215850125552361298415568718841503187934987761439440913866073250832679316845927194027837283407218791483468291078934626091441635570293862466160860722708532045831037801583910026833901476667362417462259309327051416183388244534207537326108480146240017322997791108792044883355215248289436589566343576777202076534958263544585116786347919666937267584052623772434001806179891787556187067423640630774851067018552836107803087829172239379317562519564078886773832787178104211195183363824877573763313899051205343873369691939086503467926971021556020712076900214731921976044263038142330579424137777354009611907212634418170417713209467691454138197389152291506625621365727846583115604519096911037039492440955954409413840307311743455689053111439596371195717595942554284069183064254776144189723603702607526544408869798418202238857648033913023679841857120513229545857884800259414300507884627306917872657564769099501177088638128974392916449350000396080875883798416704570689241030755748319866139961947335021996518455645918011414494440676622103075219219133749005009621212321195036515833524845663932124447345937435001497122634240323365016613840596745791194879491977718333546005456369720378385265025720550663378523811281436044733784022457245154657485876399135978448904917362820645959117282843085811953101526398288022599204103745071027866829975953242043747824201893407169614800790609844422729443784507636504309392761356662720893222599627337081377904435826720149946387387770849097767009765149730302250161179027645071636776426463580778428759445450726436691865114088003351896521329627665744477159392881907703364297741007736597427032403605781514416930856845446704156157278021986354774557440519734041327238069623529770047721783324155874994161262184354217105213849458878964927611965040240953048359393694615716594847864405757443583210928920297392065358801551673705138441928777659266892052009584703133218578896172211356666050715494612131551249567267999414399405686119316393621563041163153094535721026397013498629862907409452698447617854303188975131109133682353537259160985440570565760471324140385022249120878904823527969721706945794973813592607383772208208322391549945419488350863254415094949135067315867302277290455612768887810461493107952552107483157047921683473650212034410178533374927990176519290094186634374595402569385884140370133575160860260663620502398729495563860204061132499250995799680338089393158726318840425984413098433914521197255311052333712232959724205441172511687753754258463338123694151227449885303059341043954169222994573369665745993306540657859866481907305043577499948775808201404524510422059971426377774802087531742685933282826542655136679835815186570626446683353540239910418305004539183454832228388921569252280500918054867201623491372032045044761268415841304141056352015655811588924682339100396489028431048622975963167591918693356969529371354717298908307602192834939733116392908699194708674583045126105337141190899609035838923635224998962588831102798235925137365297321262774950886520670355031203970858752144337458381722686692075741463968555215319839890434263031387025779660335412090811762845600778472845883725115777144811859773767570913825415873427674075074436598175459757361259973139596399520072333236255131536683864651975216263324458361044794042893330589424656498028570273986641565853671595625422728292859209478252289916029423504481397468075775668615023124576111114315528876982012526148904514842056027899538148320022217702107739017983702307859244290172977041591774580561684439463344041059921692712072360443555281888901626135000216718894608171161361624154159946038245233150539383757389255355993620562052657446995926730732300336026275327489740557978911828813968013427025584023213997671251437522708725370781479365776663990411893336795251969901303926754070824048027620291341029284659916903294640396468247709118039943077166232924734789048135222592516355022873724970837414591429520509049737137626002988550141588083773668723442919434998906440478020520716110635393128925760236734680644133560841661287198634424265847569012678796975596740951706918602501522791003846757180900490268515790626959133656200765103746852363098774147468563370337422975724771396834974790900869038171642862901960608317951972092688829477012313363722779999932473875021715473145405855728057484182281818914452154854053684208656249244881894559688580249786984114697308839721896636482207752698470666661333027747000185035824734669155943610811183784521767221628601137805232171958134059847544124217227013265413137871616137211060622252101095209516782508665773994164914213236666497712809007258613138095815441411929581278227361599390496788074923344261703827135316921088604496359154101941582127800590620073676277132102187567186497025517844971961391709062766743652252759257961903155049496487766519270913861448669585086242252939455209440834684102732259109863135808073656542601789709365407817089541309130348113496723781530579629721605820878007370698129836135096624208600683524769531922699624953524123407360608882746428888069430973570601015506688159672912459559480726086652875915119624568053903566800301312464707122914458121332686278862455796163769461219101078258072829848487047282168201539995551545539591043971378791762508741543550617343781764159792578128519932530855747946526596853273208067510009542913735421187452981093391617134649711482882669513887646673559809400158687562486198291787306865836604363828722947607453682440308643424889470931970411504374897144809513923094211372599221493548298293603644286110548369631547651186898723699416475817893894604202029126997195633201301004845124108537622203172407668894494966195467049694688740656041787778909404605524944092897361393813511589470446907422019393430966859038961057904493761097628146632713610011030930695325262123405507405195788492809317923452699855066124039871928890952739035231937008955856422397515130530495317568770081203759209712833976232632241307143539252469237896017026740909847754038369395441382358609850764271590042380864578010054415479478653039249525489315280207585099064083685341542235359454167172679780326929342244326011290381688116231206862994514668487387868054572271371288107014862348935373708264603478627936107834481839611259424570710272601547666185815516309121794031694301559609574913663570953928488668455692876490927455438025669161266947918301282105711420147409875646648687827264645260081317680839491475517273327881387651592913550919665662130230497153485100805579157894231140188982522691628213009358347219921486093362871981801434460246843604752023054705864133872889157627029066161746841644220049457142653581806131141594397628346028247171928612117006471236258775126883927017003435415886382677530785216576445764494160843942453325085507076404096116688805205900016588303964269156072336742103099065678758490831815841523031413086565874535885801526337120439286811074751050300080727472781707111530395331089920383861583377288867387374161765211610547658389765894662147805598962114835476050735014885508955904149102494971911684790644957389412638302513671681645687079284390889302033780359360665760721136608168093844150503577054965223255938563933780033178148426161616547050103082324353072410740232593925816778354387819794143959324307570324631630016815210844829815585164658195993430498595653244874550482501938780634518851013977054820236192407718099208742315025175675491609910462060873376680076091744597665396965270967584230467940582038363370172641823308601198862254768257599532074174675059468019179739215899084695331559795586618511791120006695043203453216855927895739497597842982644719405770668524405435674885027605421822137563959789395385079355078621162299952800534095403203921320575019468136868680756390921023248669102309439336716764526979792778981085632160537875983103634821509569754134404328129043630624969420316453656782840264096301188242225997381597115868685053571693288501292434164776221223711671838710863383776680572803362457088066558130928186106010555707360841541919626637819408341716015399497885493922967380201019156739105735079808998827257582176163244471970873055884877162178430216821888392684668654737237686526315695690058063780635255544840648369573873790439614483875645901940600648098101325588767911845103306809828726288578281699820690680461653424878345275609510445337124940270294707033346657605630905587206191012887864833871561670150715797803630417488374378552165754484543200699050729873180982188849550328898629318868749208569703831541063086152791413138504307167704281121418598927965848756158838473032889299003275336384670897521337353363407511987339620977611656508091612673735934183759715218228616157436065460391847415123290628461897236401362788785191441264661570525478125292977230547450138073762763026867832162555903090927197033359842368133099167892708045988378968962172035070915870967014530852848210414855264708293155833761813360369849905669716389283872298274409396709993053944995932877257952281010912816200484042955788224632385950802343485966278013928025177177234974776051434695198317706771628357673320531260796885063534835899931423890510506633223246763280486003749770977649791603750881708935037001066778858157342980791239526752565666150968156884352693685023831689192074030465414409374152397566579887628693006992423142044621026726557035485170655427622623691893429985356594560658173916494270951754297551854369012724543974650531468566128227387247253286626050349446268681510054524199017866888059068473878088701937321610507052770061061856477485692359867337306381564513582360766014345274095874456816774642456430318248199734306857432818768972179503513184335705624537209194692321018766048038649088869606471327125912384992504562916989538711616615024038048114381525758174065695410060421012144613549433976558662150575368101938713454351833996597642814991497661902467547720268910956208991959609464973907933219438439126508381937457424861937203671288096513301096349465191737511484233326550307143741462411260477386014711481397822732678873536824051753450932931338582786416687634084331799697782316376494704482804406780328930387186423296177457873214973412708239872619546024809172208833464975587240416155618463056596987266281204511016351841489080792107446119529477586095835511827349382449796425009074715144146488710298403632256134833118318368235702540933105594412839726951121174837962327069205459329226296810357036059967079680013947643848159817989292282115543016980367539322626901532106775469623355291006147351252982857069177653219120086242083268887359137661172679279312614878041435140480000473825263234280417567845088501186643337037439412052178056350739379857824423800047764475356755759661718171224559972359445355801201595085235459723586831356055376055990418175082000924318742863396952362091270711490005794635055689671190235622850220351891739470714708180563881328399596854681239062375920117382778852012801372640765538889291553224190947480021494096690938245048744736894758009497380802438485396738169897063781380516089685520224822409316148072743892804219465067718730868325801280689943709159174050540007201754765409263960806419531536340730065190548811063000404728019040832812221148177265178863798121536888239776832551952949309252946381687795780667977990111384833488883461214212545075591749513307044238077853706928053674298372897437885467359541464810793800390820082808794251211746395504054118810222209179959071954860348593548597136832060282188649235424688772634450629548985434128690061138671792857648078570116670643539340978289828829971446661034752744729447730801781567212467497602329078323453940948284609832737286698716694020705135136756816255727332638473234792573809352449891919128644456999052200216608261960351817488693630849318790951740647585847500316192428862352923891012130768874657723156127087979037575124236583100348499705332431805945692710527989341417058446369466244440928758263103191016601837580006694714414852221975983643515578369851153944497471421582997833355609183818892248781609047215378743786505777167629769796833620743053895087378145570134552625659649277890768559752400768215357329714569112468394732447055269474108295354315437366304140199131390459227093581660247622244136973625097758746035630223407434290509548125916785674107969712673850661663824999834352037121494405075427395969840067908211804415231210977419124605153179618610299565342796981930727959734578041374792112857172014268791679246752769404322492369602831820140349823023268408196090960713308938746203234092993590579320863172658763363841955280153005270959642042224919037806150457426133252260773029941227913038158720625515552443476631401813742999441578158079190254438695010583419163087374787331956293180920416704298289900847196243887892325734665755698912332395082664697150191371354337417376936586396689953516308649747438282491249063375308283898575390237346509342506343629209748068267738079776482226651593789899372170677805086179090670325450161300747910011555427872120874608706562129359886490299888798228021427542054915691120280791959729531299552665596668164658193824820613402016966190375946773571651586554985888364505028942719910496757665738998502549270182406885876447627234910974170614293709830653280082707583818555789145723976302716244714944502914886209080680862093436132915342525396333413743314545124345427895879684169436920755608857155084089743138145851751352667077191015336656485736294926944161077228826172417401012610686187306182362687692476652522699264524943317477990961795606292109179087154446949948787677078782837506821362977787828288791832698878297562120986990860421797846312333350113578610732132248062485846471474815533409127182741928063019554839253172821572665252824229843367663759595351018014061663530923355645243619333938287149632585053573232689191494631455545017238817048378763923171898431797713820405978873194986316430300841749212493080166392555788858053166464850367331506698522829340278496324150214479395596531703648395114964055104506391934915684419797806114001397031521498238949397568122025405892838327952183018447963342940679007428558457907651363579981675376596328537740081476032605158258771764470687043626672871220366085731027759405883656901610526623979355669873400740053575481534469958596785903150535659511150372472487583232499009527289915952345714131330905981585000371816344880291069308829876640025970182339280833981558498053126772497755847334462393722251740585798128584818704000654043906667636160390678024983593832920114917984929481722897788651886082950344782659151961813466112869539338320766139730887985942386889954042776737279179986846459020520665881375367078123335458673764038024198952930353825027571266686027530673130947904482852191789240363977683233165051764293359496924104226876658437218259245291132266043731919781791450429652186338642076516627131481504512513354891099610653879225431156969129453859806294881909726231901893029501989176111891062213967666236156132799745025348766511309851577315838242857093396444192197184938845488650375984471663879288977102443183111536610713698783654381197692985605166694185253483661840796574081784054614532624644805536375070286698198419984341137807246893805016385352739900523983784224851446383359222410566638697217209801286434297738762119011264982257597157926967358378701109608602312067817239795344142196312826328446276726207588617315565133251911899013336964397530578102468118985978541916838259119855946732357425504230739567127236196962823184669258509259960397167847983036094096426359800790107912537015492072145784544474545330613394442618837084278805152585884253822548028992295096216407240042971806200269135525248822932506922191314337441704965729785792962807295873285903774572430561674261041426966742741454110640613921977951076746764304802946392969116075977594981871466149389083892744508909146351167549232640214427511446219457440237428978642506887613468433076962641082572235663009474060984739236418420205917226620682961441600720780738612883478969638416099896933202816698935103719679755739933097905125842852574323337712844466301387610651701243053678613534418418907084753777551633816880557460468305907420152924004077594904452930615853805878415523496798770128850319926759683677922209468704383073543967550831122327231367786217635390006189732566903655786671064870210007525505794458196499762373372928525756581095582265152497837340803205279805760490064922394970744643663078534330428289092403084084668764936640380901751580383224198430489926581469279004535238022518962819678603422696758943423250007100054441081168344346910663930576113621095276707958696903289799014264976689929860517478993542489077334711742267934927902418127531082774265328388865037102504769613094853995137504534568594868858972754858114933161568669044090375538516349718007357740686727958201222302583738957029506674086926305945780372668100196359253868076726051368170057229917275534133489304382377327105517576789330686079644505619843052595503209543822092655690208375582363660158622821334056490037489352097517008739782434538222196339039388498810568795433516059363735712064629985230475574863225654929705338794905554792572201704015923347506818551644341887370463433142395173850600471661315291877696311153323201954111282620538427910000470667241956492530101088922814259339318722347175773946711547018472802801812009753253698225528328550396566085607233173538081091820789942185836503287092299027639161782798511332351010351332717444963276168882199047471679260863531562410158830778840376379371929637985110589637501818307075960497036059937985582434317480158336874033530309188796404364646430559107118077300479103163300002560954956719641716047412466477050150294822330353243378378025793781552486910039374501103156606794231342619074949828198802502818019459552790891421732412895670389278951664145655832810582212068248566104472634962035475259504793077189281666288247068872527166976519173417403867552799215500433139882524592857138713982211266487529683172515916938831199870757764835944884667255453151051542613435972867317217882832705322716688786340640223687639834401974104283973999240786637058681115283186614205605873409928759797083794029344537372082831725040852727187766935239041781633499925455506917900524151953137865218146195170842747709990061573876799466191116020654371802679230259957241895560132769384904860588902531365367430214053176530920630287727372212187813377458557078941508314320948098371834586341852605929087216201045014355569795595644882299593584690886156807914594790454054604001818551484663829641311554984761050987404521599536094417226595845620412170193357178730802164575936775551125893811601990885453097938771678591730099240829491784544332559744049111151331616845098320303811144263012053576923489606231784950446075068617046638564096492721066891485912724464009685976960607403351712418161394384890014265238328864426920726514430389783984104561128937309379618902519599290904128220829975053564747786022893982762883484392974583227418861441394398460754065829260219202535126825041144197715491687923589361072035475073621512541202234083870655641445058004324213496104659629454977514493268936635952632420332912788436626802171080599877896848926938837198045959664051499985076220289039068395854534078973671727877103903530788171685685733481939298113073605108164950655253203074062698767502974849373396101259287780852641286576799896359518992335990346731147608295561166374912474187333854355393984093718135301630102116782937676419547978661709331451612558421289341686283531057116762505823065986075634576838410415106430541869983236135858787590092374581168692933882870700111623498791355605494070393682332260869525544579574104170963215670587014562983678200582405800763165059549361679785026488097249956618013100805765090764454597631342413236165085888767774427280417456523142645441336757562198049333969041765081822792967557231857287510272783477637587967563064645924135903909867185380429454372382071787178665656233470302905252137205709147805683296104509732716854305415265040353313467177360034484809134879051780646016488512753003656570091929582567616086565368800429273819242639908879957060694858193680742941768877910496884998937187110743191384936954266480461969744611733787754560537476166646749296333929401664541251893210828030111169917856263093447255137796578733990647083633860191671089030449858926981723785939861547198027861634600381683586822934398703352232556129076093499287008019474684745124755150199654346452540932156325876802939746309689947702529988421748983386381272209469717747877024841954514269701145462934407834676597451734839345357404022801319585360061399863624625190500508701301541378528904474906984730424219057014249105010768133673258034534769848479413215275640789735619002377292198528964995718703990616353954144555423303177565007406604590176005441452253859131229640020012470098916878661161477845741600703806279126194153570981578085697845511804972206059370099919776816370502660281145514977508206670874022264758444505279448989968604859421976913908244922616770767586386164759902600658814593958484643756003586542780967420795130513346886760373973866190483394051551414901148981379275411140039810534533068060388431737659810713351390729619907813159300285771110060731789020094115792226359237128368941175418833572553000768683301852062507664923204633244620204925322835030323226522604121062124636091238756430297505614779632684765177233079270947508523252766101424508861312422992633759376203438407054984068161670208784931605076325185060872313660496685529110265827276244539352859691228659515599137059619254859828510694790238116389832049658207542486398813031531675109381931736677892970021838505371038120229718450449542969790817962543998062161325488458237434095426940672615432792633914330872647526877195890958428375162086860659215826201568708996133454988302741669283382928387332738331504413402756254681840098154308792808082482053899555118399494575060708817018436791668676796453468593738417879983732378357748059135691663253160912052970339027905989284742577272248660822436962920758014195298654068406841972075444338769878568884355118876440939326683314409052342045251068064940566455373220688715901226900868500744593782625648816922936219448319501979098246382581154091250985192187674868625079738741877193369376085152821272986983838899239272779367469699569052523633722816724733405124668108370191159638420666505965711014839726770317126358910322498067952912913659112653365574449797040475369173278376613317209542266072049268506659123324756056778133820447889769004384415424248092462643639688294930912823097357556730285795931216206857777457110207413973859501159704532310257245994270902251130590339478330275386004183107121530239352891967290491245968512206026642927284526556235503448080435931510116285579079302245996010859139083372637177776362288802324741945562649787310735891853544276478961813262219664107931951768092054606653108478400612285517628586216771674154310850300458012009189752754193151769034696792993796323725126657205954839930412474877448599414659954499766162544673557525041464961712209539125800083607070132967947589271076789079370452557426003096738914269393231177592980955863882305190270161729177760746748122109711991048191416927237822217950818586994742531116789037659016088292259436434242983113141906369554247095367173952399550482531862900450326135758494029577470632900068259513569574207946020142398077056282138313962228096291760988120026580055973486405015810791539668622648048225518108790110344197049016769240319773851846243359165453491422508734539563195903410812343326898990111603828915941702747523101936801573391938372899334257579928252173817415261236315371746926475229165061483331692314384530906225358462320029116076706105895940448859099638930138247591862085125217016932729881812832904170938757591939964446981351324453482929456609948340169638078425700512497717344841830304598880761951235635114875196875508919391158846322616179477030693556870682292592149623465581668516234219102690247733938244105522138303696942999476323587092555334188425482831165878983413745606812101412753586296603434541143802740808598771571489460661311558453751571422813333209417623939532724031774859834761875708357167448036627752720479932049508236479064660982377521817308634061412355536922356964232000232820429726710754417614494829518845148478548142835497573735307317289949284400987039144799892971152153787647459966447078067151626224979791625165459675609318266719915362622808547096919833411800974546448156167588909266475713292854513988134259395478254814222506597928883578989451446454473732047779245041792976187961291168403658332155688106697525029372217080670288575762634684644078537821676387235450126870798055589282788041565475780365033049773518282712543335417450812832569644102314507825993060817950003504942783766983390086169931434287331880653997031599413875235649770941975474323710280632916050241153170137123894217018770207208886509527485508798671893131048191335103562153708982647466080846107102848195004330806206626380617235811306230944648845022551957774509484542223701342843484468655545496477490086369736812770346836126793041963588248458799974127153198618236589261351822199031376539789152574567382261234061063906403449282611482272272113514416148010280858875590559532673985852149447470556385030649715718585384825999221651585010126253095228418549387968049020860333243729569815936671072956576124701890043399961749089188563293081056137850184244705405441279183528805391426068369467994567396085240038802955694942658365426817894576379699044140046928882821175470099796755225965346907443215736689542586375426616081589839422284505452669673685247282822268138587995929773006662168992656910029832641992065130761605849982369332525091124242632366136108389619941967198629763540392763527548711503192965756979932935714493715108436285560290482398154118372959673479482898369064079316000821789017798066565263115052608951761561254726283665528593054133455419203832910936635819674929431885859232043541149354925529638545023668562303926372218416221830832060627084356995050296931755227139892284057417041123751283016277646752633904356201559103103357259316828052327020571602977224362084455115047657212623293269005232536763790914057933004894018241834811035087968679685950803149166762751825110705921836223658707884645277758088097489458290714453009899349948656202055053314508611386233463202903455415845336344946740894067516199412687394049541681887446479988005350546652603141868725212647581827122429581276489924078123955601305123311606520724319763377774955351897016268416999041646325462655397191957898859954112999676446375904859377810877998807965018915568412633336239371460277304427974789588024070144409538088491030903126626430849924831326297826700813200686646593404017787240675666666973399236193845323924849633349327167287210771682695393718045287210255586621888977097692533544647772901061296326833188680102199664496821136569817866979072256513129697510158408761209987300733729072787874601825093211778360905172006966329745204230197641889243450117724537475109715993910141938304784658337886995652406322377786290587769920381659069888682607026054604264491706256226264292325453655525127588671262596288099927340769208636257760654583093122629432694926689997188687925272315815285518631907556255911096672569032467481887640621209637374131303349086255675626529572978835254031579001177181587795242488446179820122161045178098223396161544928281986047001393559174273454890133647306306543301903661469438462769080459847139072441004122257688551478568084311057412974963787499613337359852673743500953177818848028900150608623645444048978069979747454601097016993177667090098117028913193181591935934962035570630955142183570567115765893162319653279596913922813331366849508916131602518612007561150974584826491898215603809914375059940993459860245476973267330102095563260522679218506562064396600790480748702677733205671011493683352624151047524025558629004388336429978851044490827730890068033891109288609155860187968789633407690147233986405385007615436138047687994524775592858103513278045128031368049038248989829049606288123613303625834096117420742656398926006261134643449438134559390646714733184256807663703222697904873571800335731017746833556625528265826637213795059446765144253733283683204003904791497082285038642695324919813342807998715921021052942192848074566352667223861987579703382554335528273899175048075365727096405435847697139692473681123356897339624243800457441005726607139341229807050188397350877617378573289555495280976014955771684726714887784959546988051761949796590380811557074455748451832392099684474517947390522407976856718158923842094178704274725547227447141678191577016056263274864535127054163153821213771456442981585505657029076981973538804096910661685974388155691385961814041469176532951134183087744671809498144715654675888712700378820671881372127781500589489270770207143308005757608391352454211391795045154549364677238705201055418814034011350402391353124115260897664663104781705654648362578987137982145531273884708486170619243025107202006215147014027327491152395340502185658671328369279234945280289120457635529240616310361444974070816306618258085885943131995986447569588276294201499161066329783945869671432277726065295984978319910727827369772563130017759512099637772524150539745398506192686520286787741023875063992614056831334785758422544517482937384883724674750424613657713709944038388550578670551161337326253764520164615969942186274373734318006735811276820378638446148188754551105361367044997700687864695085173148766955536396046816911436253647310750167613053581509781473248495020015790208877993968067616545394588081672323685365002266612594056484562133191541223795456143203286411797488327099693460752005309347539844344892274812071127035630023574241232227901533592494091683252630550114402577807352840925452309972231380312964162507398110439698823486241258965719621397782063638073737630327899424825714149467983539796571714402521707161548776076367364765144234931058450164333250022973440059944882668119750892070736222760578332849350453943172705513896232254091519781798024156481774302832808349208034973760474999559278121383013329263438796379538379073051360279679758898946339595293812953075328011749963945040705120974064350195055423639900404351782743124095714644318717081386755809459278792198390685619614371781129439371871056879102808025112838069091699235754576462041202027598049329507617773840368629647698727321493423978180903136605604251849679321318927294615606471745380684598129033025175827219091665330465882231279166523946059008857104459800138949602268695363045339029767093540203562752912167260296338862447138740039310892220087464175797346001688477488328081889289109825099223791223214371621978462880692704807393213278708537857687263695097704160057867557832841672063725290765665152448329320602018659470219894808621325956240992416222397025839107860743468053251565932227773714252027899888320384908964685400239822124038913274560833827695428008865248173719611477032290291615056213038225326258091205729467574267558568507967522705678605888000715947957740252312962239325738705908467774232429566087823926487428305400855119007013954755821956258698840965744456298379884834879256378801279898458151609011050017301734739013012645183525232641124193390148334618531825394803292855744705365852100193036562263953521910313923811291945189419696724906087842868933404792707893845342116434378128544628538916597340129264692943250234469267107375733746610012787106935713926605285278797170238270063424440672890288513870964033502632553749563153261757667019775801738431598227652284350951483828883730715599393823711931682343912667664459596237511209681419071511837357784018857792127871123188388297045275549235835958060089443420757430517759199979986629942526635480395328636771165996545921074390307336947112262013008191941014158292353900668087354583919096457636429790013898102837547922757813158799690289354807960822149261642386046411500402089108081974351721147408570528699107144045033638176838111405155039866925139605500814101457514301312832336114124701748908383475519623702539523797629557021459054218041954339139144781403413187457055170047130219700621331076138378510047099566067997266887040277114717200126665167917618597005252515797085245843378536732984609860159852576601359823237771271464228566208164750496647117750284131224775787308078957853428887998462748284079520400270932052742933102493539036450673335839518592482247789989628863924182178793305268591587115031757079036098172365883980604975795854709174989143864117668722743924927031909196757842877515884605714668165363849946056299106178905720660807425990386880606547371507734429180275593422109882673246695836427773591918807973319519861053406459251720240482317671259346941587477907381937072270973424799061241201680924019782303543183352695359288603038620860738917947231396909209898723615881496694005874938854218016691254658079905616779625202847688796199328279602892645810073385422839032643368125411119036834709974730323324512297834404485264485871607942734325094557035012524950020739646790906308072320527464562185993016660956687129705309328365707984661945140757273009432448338772437512283316030243137381423294024280272197183977522823739142439853977359043144910575229087895825209946990151311564735771373293154088833109008269010355959788870985538104665302697813474706576020352642440699273495216021218451986042544252569767273648456422687339294727167001799128967168052215375634084431548460498741581351848325406417697490696435389550679189649721162282489754577005888892836563482557066559204804741988092170773113644529980505586979802133866787701537907468848341350629613358997634465982086069324739262121283407218140417768273586281332002220572718340062453728364971567324327399772399673492878203706739098920297091377583662009833667933763137316228292407990797452708603814279468045903391035244862856780898858335870367955524276613625563855297759732131159324994126743269661296344221943585934164863750016086538403938646065098851840502889657847959269002020830455181691355237292536646438408940312343800448327082504999548855694178938440059911453844717745997206696188547895225572987633758719445982380937296226049194254749364879403578176112755200347716427537930371747547275700047231822091874037225255716269835911549246209743690765979072664765463105740787942202599147061242945265482020209545411061080232455585604591291657616688911444154368796774893960067618912553985420578997743524016152754434546924738320553542396787891993988501409707615406065298060787976704179384157907637986467320740208207526302929301065944540793980137859673270828385676737038247774417321037517754334965381510976483689438321944472693796151801474597944583938293750380620223063340529788917933532460793173488274291505843938485477900866392500564370727311856232693358058039764740475966523572896017576679266394609925416641824848301056721452397493342613213871069844584395025123980239102499766552936066693172796576771081959006029235172817770938776709241102976172102989995192846851465048033974270924172630204102886822252519353152727472228942427246883057872294049275887075144763547430804591375954081221897588944618268408889913089445369348897345557693260897280440432803176353598256276798830006796821792234628106110863326840715407602641417274597241832699859822889518957617434180587793169125622856458574070380199624674514045809960784914510390493312499712198734807911411609784931557882591536836619455845119942497428302779435109362662235336860724412270948792390125024358470225050110696803817406555949401585437706675669011475676170647728720062973443426805228621375476320008918605066258586835037288069851333852199311961145081380653952680960457332486480912804982096349189487614432075863057066425512356828015771865348266341988112248735728710342235156507781132462480802165966153856299019457570073319147096691242617162474581700971179223769675308838910679270871545242566763795633242815679927749064239298009996438272799037414414867129970983851940496437271033197508671527470508170244895701620230101528127123082568999455698728486933295735591903557792877605673026793244463812342356868497653802854019276613364851211458460460794088018345873713848001512588238633610613696198604909492995838482455513643860234374321343540440624101634981773374864738524675694508134195342591924326477540355995937473045305751356068587386490886858695133802022961060984198358984527455277937634781035237720725176377662368424845768335953800240463938966456297147292991273583704452587534498652876579380753435705299089327754438546509596520839757747852603321573545541871591663737847150943106192554869505852028371250040199920146746307777798240344447967333873873211583629583494074886028947359068852812548897758248392603088279767673707427466108101484166309314361850269194311134158932174534917864969076063453664027402263421165341647015985780428137475975098758283842077803538259650741115531702893761760383390542593541626891515995836563082122691998752844216945336593418494117033920555707400969943926802922741817413795499642927374684071507104448703139015525222303991169707101007710370410370791067230147825702105218374743431248887921477747308684983824134475259558697071743178494864645980959617295664404030544352613464348932276585153292815889745974397503522712938703934488313023412723346084453647492162519545026969342145929296633067932204667310100343004402675497314994335109874686280166396868111303515972878722970572276363021880179056076789894797529024728601250399166798988313616847683762205705765765100210041475932757067462256432219777080709929583010165316682566690253728747073479309659988829845716082551763935801441014061396243178332534706268590062253736228844410897211170334298121390519091915077427871614068519799289570206781383592784089312200889077671200156399474600110126146762823842497565328766036081719230581791894902391331281941261082927357685570696947350464679230748815682561460880898810506380557610632056540029238308283415898742473079938376934608283783553825360693104817492518980451831362776991983783215646758746200913199877716493207594769036817141012479271175134659133323251559642598213218886594499109481474253385379032139155234938580766629730335304586180321630224232973062767986522604178212422491842043079859508943670183414615603848219171718701395111701721172631258420001906504379416383814052379970754260777627392406684505170481623915791546013407183656523536529803920975238106567146853716490253446237687327975063405189593377555656768120875047395491627405825521155184290368158732439614066299714531630761193807857180132835830237295596934442568933224308491749850800073289590828680035918376016430844080417813671477475093026230214835281512547895481732706377633460063947167420581834856680682986401491296530629656742469248102216614588926434068010228309169774165758132646054898216184373301299437163070990091532233436511449235429646669440627457113968613457786485992241988618727246012555768038908660270254710565815159052088094850367450545749422456079306903754466737975322850802629852546528711283709225672120121488003010496968390852581235160665178823660787966046718673706007690471180687407090079317549147777997285008675071541944442755025836148878751040615640152313904537186961155475504928899576457554702045311900454708909330255997383450060669413425947509750454888920247071906630345097468076606225903928868962983315092623201253767580469691587386632656194959997081010404344117834107505187884243270554720878384572583758026966204405874954473306814156012645411716650740137831489757047671472362665561693640021695099387358886180256946745773137986127171001543902896122148955143159010709268873591777219889498334580096364131257807195700801795469484667951942434844129501477533868755348390310201227198170473401543491715579032946880464016229776633703583276215608298614636861125543798853985528293075499201890830109105570372092785147156323028514555658171607193286485724838607404311635292426611833905975344979144940209239240904683957188682488492987317591641603519601353903740728037873900835516561223222803994874629872437893176173605856569775368910190585713558031058664561513231210158996864863850446901420102078982865501178443198809154138033049094003878634244391814827245979436528208395452032204764255119682006671602530803369569218883560463094502321955324555618292506367295327230743000429406596800868338897667322739682505137600729412096011900745162166908988464961024201473313359798800760704326813947234317719467350851790429511477368743654472450228167164538880357193077258608110621299741215973957035614851902845059328437611213530709450402514613244650072064859889348639390464524395027893882248683650798065722274636981508334499627366321790153519897645078628958530533833670311210528607555175441957904299718148578194374494985892117317381225355652244809488501549321209663034091066637247358251330372326280597321994055053931950400326403079797134479997114884538448442151104264165064271898075755927799390362466191037811893298733933207104961991210330233685760957589576738062116945058181380153277104663585646453119464867769891975858924996177864034818151923469849050023178063090653027430908850524582889499485175322408320167156677187060274217254745169079134056959368565679585320728173055722934253452317764613630226574424788648589948601808837368939594601354337766412580806786158935096734620104776191924663949882549787628705163977421349193132916343723938591598623799549183092319695862453653938756257637367440394594516974980467979094179290830546492104110281479740860247292785486139435538093678890517128479944545605775258393651991164383145819103271226908979701956660218869216460721258034870729926411366785968046371259082538863433755485554909696427168634889577298679213860379179522582676749386333699825142799487948504985875299379558712496513567458805719544346345070542353016781464030349211852689039125438826769246377977946013556521701330400687571374778602503355803198382606897233599210401320163145843249184805863587873344704875168248047310730702814998335607269570003786427304330478268549512894821019516645709037585913341413204539726994015864069398469877581670064413186547531716595943217265165954820149286937492411501710578490680094744015657077300316987837569338314162567283358625379470203183658935090282740583084051433786918500805211454739347810099278541363873927340950789534498443861602641588315651063313406750792456578918211257375929381463022991038374317668786810954034114697052812010609510163639791555983222480325288131136280700519120444504673646222441540364270479250626713898994995439293846667862711230166884961155312318226172036273288353138810570162585012569595905537506366260423484545947188563720608085722482067475459040074339288043524075479594631329621386880244575623248142572606734978865477374588812800743025420249810868066764704969245593911931300111582293947029787274758592920589783824653375612189643695928509873674290494486664397382498959067383998925356127177824705521254778190509202597840206472680084868361167945253611887892913817932707446296945659905399192856782833408296384523040045719622654768567250357315410596962744195237109090021849175327130669653673568614587583470076305956797670136887212424910713417969112315739073531654225529470791869554479842367382765528054921925488301543067508561017711176258812001236985638233981753864924317049451938105865982150807013436695074586129315201484454997098280750022600259323076342088800306165094494148267277058219826483101493659901525457571328183673945036594038053442237325128254369336779025529602560777357193099354078279877704132817066721204421277783799695537803817313977778570412514710444706372245614653457473146830590982686408198161934966836194373238523520520068982577220699345015636964688044807075223986863981742307338200363097915230604334628077629353797218371254858227838900316802707804036882156068764260423435731674611023918825255422141661332747065013095179350688623233313552667048647275555275700937988593337988990383262794654205972447923134575189526280800796134917813973698201995258954161091833920183622780705678294717061966230605579441502909623756117007274504616384267690127207689534295317979067818938993025964435287742189535797317599476880431950677717214741585952159888100102010272441965986012078976226486194640923452120396068114649437448025416327335353526449766791101620093732036051682875660543737891298233068924312649978749451778872731385183826726465425575075459844605632853964409546704973170482897398681039772797205701792504335647726951656342052383829097832544736010452881388758945852035186913912660996633448466921431564556242714520137527375013544374347410083912235374564200092289043580168693274335960892070907370709141233295435923803052716470921356994585857285350376169479066109230597759883303488493492510953194041110129761102325055488518055693421331695321611178983631797108118651409570565002560277514227037465540925734796557419104956158810143170107286472742550378814478764632767661289017364021953363169908247439732513009487880647834237714657674480069142345995021075851214765234249978591114096793654369200898460155628103976465305982953535824878962377135121999394934903854115357884511769641400310318447626239857377780602716782467984529368261950746078884471232227245577989798861403116729633558460253262709123910811806128167402404388803993087549206863226749817812050316988838364357017478404543983282423626967018676379224433925593652694753488400187445468410968869213687357608705325870500622060548027388978472199302163273586730697766515432989508198727472257142557632420894708890931509240316211786065695205293452627837731468752632266596833579260819052396637040275601615994792344780018300507723316542201392284087276830648147362266775309760384412557139659671235494256979235738350238768879087776418090095448982286304276651317695419251878215394556698389066280619406243622124297325303161885100447639152023591827961577624912648396041772510895695766645436278239298929702761793167444728615658112513134432233116728380659869883689422084673643637090561472157144794284761016497820531751915531919546609141557247544297452579866437221094581686426137131946526681886827721364870869411201958219349241970516665454694223933303744824291943916789599097926847903034558531540182989856654578555833968673610015205680874205009463272352333132593796160498184619411643103955806397228757420798416153332078493396507106804630978024524754608444956054115651482099654192469770672906162623742957601946394466589087499068529298166794676106648356712242252942138871821684207159258639937564799939047442271460446748464817456385628090178784586077920173378082136806102114858602289863277186113127730317487915596104667281638906288264414767796139180146830497709145086402339501599508941305691285476607534466397740048546137293630866213586843854692098929211586767909442204236494447682714451538531842426874615808575536348319823656649501894442322882869346178070203828819265664465205129795099676833633695597692898872933947020070934648359577629388710322158577329752847893020715044095970999342479711129618322391758951306585215900861380439808687414202722421702067265155620425384361873437414887097594719619804212276029597384406602978400775759768062651672481154434510338542003706204417200977132417135280060408987964070667191567173351862691019759450274199100482690898625506844391931016557395915034196206726211933608565830484483038908507851395916807598456901774435336632416214271195164638383141230305648199225346142002842436212244090036227480077884231557588027686168444308637791060536128791458439086760289765082264230818064770443280906305717015873964212852951778670801106638433486555918504765707995231905044942620292145030447995991134060007802303942366410600564695225635073068146266351353580325610070823038159720250306208813926908633889821866652560579889014414171291300524866549762826605902513664151156478394879533842551553942055429541543879775785346928945152908337218904235462834438596289936112964018173020696016570270497323796394255176560551374419678573170243671028773489047510199465768526102667867775838610034608975616102972222433524329993677312296280733960033031119961242203643886493235373066636463678410342632533201202004153099711743618465766450227057636161007156644118575656746665174413545013372875885317529726705572564389674522711404710871734652047012496360837403954348264049078140919552053722740800575473337988543499803813702174994653940347148205392137909121967462385795159330167157944257240151318836376346269129340393602460303639371471867064060100128597178668243437960225229120136437492084213230692688736844323242825901758774244504623719918692050844942413915231947587528617822675538468985449477280740996974931984779740220408040362990167132899655361057050851273441378186619411215095192530051492950255186040684529818861447183848851136509656907987460964013508154066527162035123967246543374034954435136445170417100307608873027827445529056616016723173160585555358333966376763999113190024174969200459825958790786813971601861298950312734564826316577791114109907389453047175051788441058619284042693880267794780896414561292386247712945033242570084661593727634361600377596735096478495368684895863143625509099453146678176335770437536445595827262040140818699680049683193815484747924984546382704773892652301087676151210722927094780486214033518141814074264571451229808016579967898693759045619224217998162253397570544643594907827076828430315543428165612140589205777346337842219710795589479768087799319814494823328480536519250403699552066206258097899623034708203993375570376491583871655425212248707561533631497039102342797144572267827876421955718039533713767625822822050908390552410273014276028305488196395659191296370752923617587614257004399649309884842213937135106153060216945793225904737778650238466705503529998581890115189197433373269216437194567940184086723433696500672163128125013499228082518361465779464423569172062642696946274548371535264011784059168809779175778427094857575415036439219095069629503932659630710070114322549480449285629337147089105235782616004195078089544639565147542509701264798007473079922140223601451569700170547255278743278952208597662182301105171313644366321381306258089988838687328066666425217948003523714490948249871572468353035992125704341389102503577953025419330351263940970560466695236555195334465733160305463482587692069801210655119538137743927831185849589960820574563883110563775139110103702842447200016877779769198274466880930188648647736158837426151903984221814180751823088100643343335094312958612185693302115689313530271065702327421260947412997619714553731596108294628547738930405325005243025454562676806502184722394286324441913588629968526243639935222587270273159412579014090743644105570715007750802623107662046598778048514165939125528896550326378229889460977933353803563284369638350393259841858594943179632972107090783591001137785148660680288686561149846482192175506490108338632540436167525799848580334870020683433884707421165186435591011378451637306038098549055454242800305070774255940762884301844616573342735000063695549899333369025583777727316276700632603865278887625604424606086049829161072732086765360006370620943479025586187722830117423658591119176257880143279858090068061771423784566185347735135147842157594361464666180133870655145215983988192899038579039782232899368334573059492701100534961166247551309649953448688556873026705062274504890944784431796046230818206034335262573736602838074927862459161042419522280979166569203544822841672053779274082038784153101406530293989821268835770558849120412755613875102712031971545477488489821500372531126295236681396049751784435941629994853451698345901066638531372338796329094926899113698392160786497804312955623839394911966748897953996256579873374481261358083719167325743272187916018468591410745295609369741621599621479868969859268974103398111359054545510413330996826700276848565892556777026846238871102628676912493853513333093551168674940408370434863027257573977228029654981405817021232908134509966149778899930166453643451037547424026918514165230011353290072346426889592667423048447833518191904347105151291905538982207625458401704849325392376316003761868354220886470043206146496943037453231510901172615308200216434431551329104650938732402036453653129524222011478925672044539042194986673894478945752015107029506254765141098697962222539770432083159038468561725897484459655394821338972716949325629586824816002989798490296546950430089688942714416879371032734717100378459899002701550667328844012662197786782584258144788445908049681705869506183562674187576853911762543266789363542153907914202670164765883558774716429302517117141219042867680323148258571140815254268070799468837425029852501171773812565981689943375765089918726775568131910595097135195810368637097003560302322033955303302511636373674440416256430697802005514663972068245213747891855880507903759373739698718679002447270673514158554184477480736954016485771877492854075473173260397973398127027164741508698926620498900045018936236953162809471016386259538967966230392462165251815376712827654491998189918798308690591436825709580775206622596562347168778438513754454259477635714575589973467216722410016936987291592251708297362083795408791480551698742881539025139719293600742397899396003603214504714240651136202281128098976221431416072589388396650528618429367106294767167606508353569222052710343507296878684489296768498368182207940248247864956068502993789043748979679834386633473625339894839631720741225316037812737447497997689748288761040850340769513631664216582223577257312263493402547354995826222995710149743399705260913071455706191406715489284129337917107037297910127280052204387941183859295234417668313150836563371491787738199501300858886825657307343402016666321643618315644252479277586076168406747348237954760246420177634092200783943104771693698850792349104107475106033275582396060918248592302980118770912879889656868703058201739523585377737462042019740750800431853708198352369981584305884644776644728830948376132536860795150217314451065335442996706657169819781616115518029590700888876593839759588772152171919050228114216552924695512219761943304051608657786088729986146177380390469823368857072553049676982758510801690922143460140043881077407925728913856590433456182752694157255790999846685348950420792577927480041823994335446560228248430578726919779719870481388409763239983478687149202380753431243134164404291043020198163352999418298012556603014807302473318367576746556372430609009988477481561040771689144952516132695893204083637866843110476765190972022999689025101470529987328593234879090623887158417294642445214661785168652548198385394872977106239704168977874107886773149411291669650101920607119728261413639219539827115649190912111223866704484033437269564643646695179211525468845078573532752607582237735153667905517362160479967830274150599399254937841089896325590744975842396000227605472722930483368034527621853368073884396716249753872817185091016338599282274485649680240714618864761066422129537701218330329958669095695602641039850639767822555547014089088646973032203514605612878190255568591706754478026807676665837995559760074452174748257553508713827604931190980231474829843119843444970955061180029144312263355877024682332539316889289066726646808548008942168407360001202046044002123634435258211203117770104101774267587565256385512778813309985410926780645368189993527472514635172742845104896390891888147199151433894284144628559796461053306622133158492562686198201816036034988007999749005082687291226258111669982830129638261632460298915108293899274099437936509145068016075444664409247246811567813326362701571337451228405202195228395194278795964285900990208325112422394984640599279856677150937250736727805738061601456560067409969288607154186653465620179292860686657247037356771807295737368941442770452383251002748573278806524762589433951151645326877720362343982377547186544448974072210491780896426249352476272426072066599320389293593548705814651080445634856202232412799744531673526436829812084968063747874021408105705584773148848584384748794218607014517631901742415275666743577664511381431111916938915189697725610356777844006406618504951464545151070255089536610744623941892816351942537834709583178496121562563837793514408526845788125303029456969578433417113910792760462680814833932098644273135072026766815139638993288230294561571026923139430825742669927446978435440284422678737175165764217732175429951355628393671363500402233495660418402017314591839552650167723285471894034510037289031382864246480546327888538472210246423529319277862484473976845100067900807628297249073585049450967775179434497908978444922290546091733691266589235062577622551223458574203798788560705537367767598060783211910940023387452149852774806803332081112171301050627646221773922062665519498346885251975348021127856687150840148974708399865278405626053998620484425316309182340794781490911768740577588367434314599052782580722859099358830716820968501813398216869334620410062081770629649800284033164788146452590429767631739922254293278236634312007433232784461896235307284700792882734867181687398754291606106277546847050762266144170928713292989582020437305854116361845483278466278807964976856562912988728374605212089084319700755115523602679013710688907423395042509167660737556400522119277092970414868711810192101932128971131126472671392711453618351005172353127121891193859538908152811161808371828944482533606908731897314135992357801172486475662387603167311759240764821464273796512898203787709647680914447789458450483509681706545720635634955836940739899974989898816654985113331551223008996026553539358850170126109510162111157094130416207229610080465522809898191956217460510010656677825921667198566727978357941990982854392390983540797098055780020362087433910944200393783398282044906452342305114841135479415379813916886843969125562128508292582425055288841777316796894820087343765964949084089002434780259864211713447947199457501348228585390378412419827234951300544681318844505778213652655701055247747127040979944206334324265985801522382811347926394809223147823190426827212893002760775931277553151174705839361267342291350358954389643034521099898291217095449761417346376516353382227441224639030940583577568160384796892238042652295324876858840211854995458037046144216729965631949031782935820151457584142901906784792743433287259077734302061803248626058857297302370422572549233415502417766240886425062179038116532335819756414634844632324627957508930227955119769232852564900701849497805878268839126717323963228724254903054624287537343906429588061933337898085662572271070845732245925092148997505420388784515467011688754409100728594959913738534234583348086901454442734029401206422758650777514104305241284929785462104210696539403714416606986547178323973631589111528302773024351282376107795826481887898789191942584330995825885179431838859234019422129791004924356293039091685389780500347881132208318214625745654878127643109661750432581577699119057206210331862457011153148324386875474232359519891805450058018040766361549725786210577127139195101505873661039711179061329623828465860110937160647870920276173428322794444050567201850649525395676396678585981735028155533977339502889468253017170505426384252453287418689975064032675072652226461296467652092013517606126820851781870165915825532193750281985593138545055357607243710538082033139495527428194558828525709302890545834999862108902800066387153678317210306650564138730154688279574735270186243628378404853522586248839295175057830850223723522927199623019640596477488675299321883944303810738757322768054294283385200046668927711584712931516694220446020273545384885761905577629559516419528521578281868830709009917862229961015602950170679494421026765177025648541142252941988683579052330907961811467349061188862176643135241263318011875795050138525147656390906457735521629374279907754273368195401948136137751603718690042580204340250173246816595539826293599141203218977753697718758300252141047352241652138427303524646730493941193967074827923030360860446829426876017083580896553484195502674252629518530825689314373505059453009308239405488364237386565536088653928265398766077327113026056995904593399547705834090665826820431123621412757090617754526088393662217483118787210343638863154146324468695377611791666188342934428542658482611606371055933387746717430428416700401239677398423592199599936384696055112739547569594283653697606971448102848510399238342233048277244170691782501178514180812856191966627069527115099831472413068320791144832679251480725213090425359963530368680115106645060329473172569195136467677020019051789505835154229178211336275509058067480170629106620533482547081136977499027256800081515538175775731284657871264171146609540236041070098286445925730068325701836231945401409160677025761117045707460084188523668090691681450764221290060104717928488221842196923202239134080919033476580742996516344662785039542060649584200081188009061986532737364075191968825944868332319326158607805210845636132043744758895295398499625960513287132111452402843743584426915184428157990976115148577527776823854799906768316592461971073472150109378159556206014009631792051799912569326251291926474227554094469444063126633738335580998059950366559780328786923722557917929848250520816277141192684442196012194184070843307320638513374390859764264827432859371091806182396283790860035102936020910917024133375513164700267993817563325858338367257738074229964754101435859065000365063766643901820230179378736386520230148520464629043033910077241834510922030910180801709210897225428950503578940397302029136659503180177442126051355605685155533663982751587495445300809703592362330041929416505444443539537508630634848925160233908197588742095727345062598814574366775413635505675057460911816415874962094284057820852096696861107769192423083124439364874399473210851816462906835235403209090560911347320766676307577305140673406390972035399619142526470806989849613861413442302213527589426612918106131843605327474721795625120149624524644491047109963918492445618939161960826258069879827032957566945697213917817882346606121397902716196240974582699846414324702412533965470289787223616344281640050751993635567439035441774641510832690717643349759624460686825823456375133947178696783931426328069775315293669810389184758263237116130404606193864699367502152452961734849616795462567899259758202638782187977359757469597251490632684671389378065372453207323209992459911477716010712083640807288435933352161129940658977405011868280395452431608021146975251717340103063118467909054198616185222380493242384481940091241948311100233747020960241688818281981325253987352500401070508657315343492852347710782918861208266368747500469299795383890813224158110606243599571383345909375667782355815061454436484342010447049734631356945400958788725093853744046765766223523915859146445216778870857285365450489124824688202354274796448873679714955278769691864074317283903538442183339909713833641675296914234407873733511480032880995911712435925247568821254345981530549678192876587163265156868879220768562779463334196475503572795017825666646521128456736538477532139920482463190949315248678733254214560457513703107346477057544184837707844647477229169972571605894391781409315375278291959959100053847988935103483259038199374536971776665070402585549267940382596529540784341564023194723261896512969679420207566851089595551660067280496044704227005312336438171659076528892599938248625156310088480564536356607189749236678857880793850033748963826876654947435198094411569513312681644410158972130120175512881257754362009054918248733681021068690049022286780055491603431174968917550346558716230275276791167238564622604279542329947690039061093515367555355331508212137483139362536189122611207419934410592806541619441154868984285530926320199375750347945748673919576390147818877366176988643494269040200726047488859052612010396753992337277409781071929456110743284144510926457502517220156565860035876045094526284374980368503833083887740419897671319132468457360017436136208877043516601735767826752774944214515653779116910613883437725146711006652877845276879721747182193679216465535139553924793782952247007082396698389391626051378315471503094018679781162231889524477768723564011853732400604555535403251036933826207529188123098161118118144284663674928253569145965207425247286891061843452669564368805837234659489188628709056445837322711961539527121763729243592181572021080424161833792859222429976742124718226054316763965291039526738988100612947876224716401508747296254208405237165202309262778473100461750153465855522226138689459179669032495125674216419314493562513296846524235588764556968732494177065490841584734702060488067041494227875860496331144326448665809043900067862615798994739990012361965422795334807612849438916310185758581124111401030591359758223051879838838174863538576597801357818708418030503678683351097708420567452939817465308301523125413097736973819436980289379690778565905109030939388740134303254759776430127040826423959883217144174915919021470127945720478314306350565142615022742716343475095551177678170928072908580907923212566475839611718422379368182388541596945520394893416579212640418377085166601983684407685807871729832757196271200865544829656807407913308855043305893015584315245696012794907240101345584413963466758525092631109298418951102813433937290417687884396557018645192686030016248758409109769432393051004994898808184270617148969927737255410296664169706790730420657959146377403610189398507078831067281492638038892352697581202689237530321378180766757371739633898718377288828226250361404289591110769246684851911015074471167649531934419960001802084115821595553222751538176121489463013684772842950946545465156878638411969158238596438068505772783953400399692240856318108203605450548778215872500932524338469431843850445427716637347148497566820080752690942527723273741649251203644325608941274314486911387599534037546656761572635655388387237902578204540962380581921590200338405013294270614833964059076813586433556756052874211676492118611253414244170161291754018305317947267453669569691190523282633284679631281928979317988225152012574193069744811791819803288795867058630497899391561704117761974614651888141481690958623752356028462557240947883916675355171325299387017667681403719831353797502093610664670912895167501803051201451801925780194777945612329953398161798525370621632048558133674422395409096267174485097874418463688725610174824132621058538693923731978642300375697744194351655374820996599825912177231759222102774990176961740564393546441093102834555641933154875106866375773476233703197755703954342314174789756373238409172190809828847636324291442637915440801193033660351531188083817049660510221769043830346074668914745764901845756024824532968458359022032670679297890265191449754487683457961792212766202973364147638481620740063983533881017475851536056638167533959423036191220813364627851826656726722486931539778019365771029188517561721075245893555412422118032699700669036996583187616950077669633701969900902006577706215363181869772469742371681235301264525098400852702092232636668662625756491524355919469754830820990040162023733079739356989513809337897337740014346319745326511689774278433758677269712216020640283324870895479427273601651518571917416621504148855503266557673327513265254211012604852553940073950472193765210097460514998442087234238646200858990706982684920682641758080683278397946896916188914115801446827973319240169587301568306105510582706598450200634130045048051540108626332127044289284791013452830310587849053359488305068161871773916542444287711848575125592897385712537977195318060622692155600661570395295517759941927111550143741987659203666498493990106070232928813152536523725132518061864076309947232104676089799242961914566855081196895259011070400902329410643408601111288576198648979118350491704794437103316681104541662424954868541413046351054306310796902625053053149444815718917048663942902557679496265584937325417859932473978144965060732458145493939540063150634251972739975397571547776527845768853349759496601292969710609780327783811587439407471848521090807283952863825936657748156035581007883298126212411467710396348052221996335569042336805882656724941858700171246610480090730962442791084820820104546249898429689324041611071595054660249508878967825852499672276071193287977770056039946106003723257212593129722800962524931207639570138167225177189564395506970854769186538980755290559749429143326371370923037794509316590913755749604770517352282950959535677622364548085629271336070843895217836814172822330734422503572720941976277148927949692612270828546579940432977490663586240008050695675723940766054561698060806177982703209045271295721731856753282609269614644636148947558006918135026471196933473147907237860481966862783159589928163028570031599918967429480570180823174991954534749421488425888378606470981519734794554031970621172301938028070818909306964223745213631923137396337102080819461864283787468271394953513827546248369271797838604648794596280946016011481062087292756602885434724661906110636320650372689663334953204849993827754570098790313905375717424587527736373738451588751838400826888129380269179656244986668247994810258384145882865844522803605379083178191202472399701695095411975202110649864292925444467258241463315172297731478638278732826279497370081392599781321248128168590459274157030680823628129047067046693280770088817272991734758611607482577081333845656356988337796117944711389305472820107138260560859619162947571983567337032975256937531486184395247463819474027931547460963701786786570124282839658538293734798961640470865613095997963259191621834904480335952392546829749550505734459403695760111597319015823868953974636398413958170479012657854601830325321155032254697656099417692419219106955880482228357970734753132858012531178390708511523297216301542119219823329941936322067792041971272289819448870727512049289630075477480206912296756505030184257813097104095868034199063569381991378444617045034080906940478842841980170717702979309973669798737060962340320796097734975817642767612875965014026404926053375779864289779379370375377046167552712618361941301091050243398423058523626063734309783668663712649492223120389862932775459926334989413039960250546825654055768042876016020263493370451332186752859671675394372537687638006266856534520637594209045034141080580173891927850202989604502090297721409176202597560811079581529979667147941929617157841064370580892222746406599371146241087527407321816400170384594001618662105420576075529841523195787995566031402878104351690709882977661636502720109083904298005402049812267944530562560577948707432028704852482607231485489214612926176495157018195745071531148797108108415886089310226973246131186079560546424448117021947484809675839277852102879359490555966606948719388541011713323601397270252024558835819133488448528680219481258288015087306162553940441465002700763641830770810118760201195731237552467587708767517246199665160598503325712256881124085033751214926134304103964244596269739724302938347528487813674202243231082744745628537512818442393956554680105839794866979012543494504472385311516084331442070399686861315237657101189656475013647968876365221579430619533645080680794463218016192302863316750714698567545610678136090632653437767324694859073838874825583612687821028368590063337102302670986074068113260594663060958339804303191722596798419068112464735403535294481736383154339599828518844244975587898145452606893944449932891187899186146774457903143667860784065355298070604583153412347390011105042504083743287287660441204057851927135918327146566940321841838457320285626404887924266190906041561965171975788866623938895391047712354697038105953643010558862008896741140378552103025147811293366577740389393163648357394979247001694366053212930042966200927993693775985736610639622214763788232444575551983491078417321379056071434110438795742224341130324284956870902003218273802073145636514879699047002912824699741522924883491475081470415541040101353454623118966712529349474011349378606747333861436127060549983339859624367573932572672928958087962758207120836601686638917004961202336859838458481073470937717511770420839541465146169752867252319336839451456542408728224982027864401535728377882302347787121600171262129147241790648589903447380133521675179503525685206663054312881460238042765922082206778594283807233713907231099509804982774514006365391197049864219566549457189834303593107249174115366262047911354140131228124947657303510180275443156869120254797198865923654957304700223226863227871609121641399767106278650849466403528938033028058293829566821146434054716561825788303403648088442586510082964728231310969785808309230407025636796384257685481789857402513335885039366168143150293204187353696226823768888572983199298683186861812861644145806145226639133075321715003834115823099218440675145602929910158221518368577406522100310765784105988597103395988293367611789048309237558458588867333282575461752760014411876128471567807389041749635175330522030454259414550830202240532981213019216429835518007002460152504022382580712247885379743724613464232930734347060190994553551000059768319318290090740281658572795487304856528077996101167168041817248846108690725238734644590652135605152198462704670991370640490638037338157987496813939327814456072842927797197116848371154431711628584598758586195134374503797814602417529660978048448754792038543280279595720326871271382135362015090713209662351311088096524078912852017735348804377301441213619131262235658137016316077440919528309104319105937618616143558980193828279684691804159460386437338293172224209863743671287156116318657664097587083152928896544199969221361859519198046809386693779148070045706159639797968508495459094988807741461297652391413072534671526609791477898577480701485582451788440181921722748500258057711504537210460638730798872620636588791588678859810987969994490242852557108939636348831221156965025856608482327206170403360785573753207462591543017074292144666360535490147269353869300953833581325759865529602793153273813454280775086486661870278265672456727504518001537427087630283082553356702125261790953988906721024516589612367814906607842305120584467963038954563313107039594031573110246457295641296259772739226202226478700871688320352585618243793135839633002332220270378521640909202543147429789756786903350376578625023122252292916768357054583997169305175012601919258284552164420548017025097182606003184875873861548231491954308735668388111949277869859122690145995199810522458437306085673899649029607903698309553388353078958465418879812954721454360615877485910031272438843370296844270696485655300917240493661414328271842638984435337952642103315899738928824775929511904760344540667883436580841284113896960574158819867958266093213476326637963001006775663368561531283733538923160502400369159252501948900891622719800892541324217125577093467275160400923516833555141806433180277665863201928951451705450390133608618636344828794451733284783398228484360286167125896858600029598912149135804954582617898998821794058079983502941166884312259579625167456418054856217293137995897447800731046904429518273648294913883724583263030812886358613995484104957179431252658600793103984043398924074623158312147338213894285032386976581067634738771304151415870400989646365026348946815800173216514640641419985161253899798461113847227610990426392695564139977009115507726823303823193631318681615278152274808494298344501077197363516116098267152072451112195424725040520734317675230511468152039128699389477211929384223221406677100514580286903606196962242060582296435819325793519238473874003647016924791694680462701890875228398234311049723220060160449542732340280122151169754267586340040535631580561060258627798392888644465576919013847334399242870404415809182926853662926302279272789632693967370043253899385103919735515225454877502078914958395327689623499228598141757111844732546202811938521191487093454951808004040058296907919511172185428094678617864435113886529394833449943618488421363614481729551127348700750283083496517073899600160715414718213297369519087413896294886675128060459127343004064721227633377822636233220312252348392665141079327018959433413624296865231746566211881639984820120546834122697680196566512242306405561695539614079622320009293269419365577707326844872404050657010730702523051777450121668599836803972974405770746495383611654755687027797338035022634833837952567119273404089888983830281440486779792587727668130966651542338385392807014670008249821427733416761814764897626609378873323977558956955583239256015126988976428673926057323215128652708263350863262818478785383411754281906758251860837704033772174458188605695437657439716067058526261807424572834476193474172175567466436665633920456225409952221624958299072440560052986623016331647360760598295212021234282488899558353429938728376170320579134405348780751177044226511254444780103095912411850941786088535072891104895931715370270610345279868531828234068443682659767490468639131101303221472361814389737360944345549315884488408810043533257528498412222917246511119321023776191803071667450846391742798229475231294637867064091309825113346028709368283749491791074870356972453161107596545031734906480204149948799277489139174602363138147002864270175724332989443542714485988866455447557455390883547621504362126310069582245864274332958062241280746718268411775561780364955443902619227143449575341430785635190510864885803213866804971860126079296233108275466810762106980975864843986854104373495703673028308840230692029254344225999785701125230267523971738690408312319107927553380115796948396891994018131251866042880996448108891230313520054707770650106639982366548115445302889108799597866515827148174727514490714922677252466202423760165561925586974860194688211277810312346080470373403945445979300752536041497319186139932264739488202832161662961267513176973998564760551765080967379319375091183834535668918039216746633362947772093039931853476573226323117791446459809958266067091481388289119353882287902041436164978390626464794499560476860587777924469325966381848894972021488651694333318602105478893839299985313673415786010428734180095101357561717861166507822098450845766763803750438340940519429732751182632169771940606453261346460335017904015492646151604315246707718777198229689370141140021018470850595762469593363783619814872221231348944481594433901882282813555872025890878553161181026929730505885851389773432199051830160803979369560620384339810466529076165890952316707151762686612576685389165477370612965630150337933569419817101690965717206409913569512567086839289826581002721543940011191678693538921074336910281226723780252306672546080746291355336570681521589754082990983719584355128772787625728183641722567819941886024210591584602633398904905065170406795293186216646104263722840003906957686461712197340389038563251763389824358487649169510308130813214385972016147115690216912688805919392662990950799835413390874809222031951174089895282528294665988996051113541172160712401374107352863068794003358878090663240600162959500583271695914349324141187488268378694231576714536657525524010029159918153042725180488604536310219802688233118241555664106557230534213912667211479992615075174361674637763988070847880453648467783963557175246371925185168550358894004724313670940991550733758934806635011191378407766127996939473540109815681254856432103979721375479505754240837344674671498611640123349128064061138224774099254249400894121458814079364638797659187572596015926501545992743027761041217162694947187796980871703762603970916309929230129978377773108753935807472365509985907796752630040140228804714552234065441688506307463841798284576406107668400217269294158546996000102610626665808404632062835822400408155819031373297520332491991294460578588204440365240526527613666393063788536286094967687825993317985394657696903278849396480547474525559420164208817350365736012949380592140923115711128042155310726256768745885942636705801879952015024911236959365264120345794602581018876122055493437354976454702940680121813384232909151369271539366853596761338631606203946030787342098095620810365772139397707522398727243115597408693551170155952631199161668719288532789781433460391376469980430508304803712469308475973272633919487022751001741288678392534482787071838817130615505569936261156510991909722137507360484770109618964835993390322186574642543945175427817239762656855939561861441240095948225015983228088178807326766990596903152312764651225218476342796220718114263961493364897743688943582385862755056535648935765682427939145632652227269403393742571328627414962089285382122049409515778310108427535025327034706416960461581996927356246589198112124894683378509860379048150153186233754036257571654608342806647963525645579976186653663667997359164594620081442738736208230756842088647306805083479037761502928707540411543158423527666795081447626981839879041676776425752229613420664518350834244792825192027454426565139639619573809149595367355222175433623014756823630284615869480527645585011141590241354605377562341252810965281096453391314611687733992624905556560661964635420676638994973537767554170712312743669765072515820810448252285099530459005713317134179126703877213203689384812253021779668342184188797803204083030603057667107999627851702534086254856454768287415078349955170791674071713746758836839462294028627499281857650909239226785210874637073354933265998079146574457925101559752112714816630835374590554766163731957214760525815377194388454433277926869440527406100435110158495542543281711132705995801957661377582425856413222746778517536468272072622390998376165699576608912955050531580310433844324752667627203307276609005120340857619251800806528961151446493171357825140613886571553431181804408893504090306034431167077792395850089748607722455723293735467785416950746372242326416650141295853930984530096095850148512157796784836717731588066856854455638628891405784862390728710222432134528636833982794694708431603388530529075872332432563800388067238312454863938965319158688475449846066640210289121013679027261496138037850002835779785214969650925997318693480098199597754754657793466524509175989121754407721350979853057998452676245894745893993396015303675975294301054412809803450262676781913251124605458942130763148187091728387108696567443538018502860694765950327004080299862700786879932210387400667482991370946383433204178997578908708013750474320497618154605905535120878973865390948150625644395467448366907547590347281141758254883736083307361604547443561678090903799115693728337917549755989986515404470049162682086548065715845273512140102208262696905112516169524924941320979818881408952041480768795717234857206289425180994601725638701466741811665435239746076492259324010265203773050600332275623261229967776629862531444499869995887084525898534796592321998237245125990814125828191177022690343947117893533050005010734686795208829663114104576323122226804678959939309434206619119190797833422201893383887488270105757473864280387152720875163258788843727292047636363778104216839937240287036081508914235432837481759451796329672813934776936277412417038743782273140691272917566066291982816584866586017531385632979705823675608455619085833522899271486777275332617894854274563975125398509959867184383770842396849084697461692574115809816796795854807891071613610048873769062083873085623102248179326662839155907724218627463288734502041406143870129776805000837746956929133194966703161185489953416929263710976870768758007735228606551212905721444888550570692276817232712215970153725440162740994294364589011849266906417721623048557408916803489809129760053431408088731733850735515632533177298479955268123913263969189331530618873264818795635452746760240693900969197237206943227588224305414603623908347325127891355921115110916148456079112888283532586152691177561751002029936024610749866086926898024270716207909560678068771545285007010743833779287781627956264256019441606771866555639345611619856217259317635888350284717032971804225871980319920899266254013110819247356940432141981884373739670240649542677542643527898184232799441562325563476566613855862005580515958081410141608924878393376337046196784227464915849055716861786287931653649271918682148528707822897759525468257449212231571087084063503687030031692215115158260694925165935441324790850089730484072363366976044364175235263585068071412497654088560655703879731149600161326056570499834996815270237582900668076752023697388015104651488646539737406607563206980181295765442518025026410107259158024175508298432425122951011888452918319486041802522845268331659779440310992825707498602282732961901436783065828704271999446556340923619948023541725498764574163131725651772218174318492682334579923500121347002636646155633314798943472498937788653157347717742736963385501882481708727411660934564210024656964549625795487998646177913881424610326175115284222194435936077359832092643009196491799724240548278534758750599017213963788613718169915537080564808743453430589860789576084311666099734063921708928609737297737647136799285809345246145577929235075461487967114334879637839588629671828994925065568890012729757978117015006199336145019228517465640415066713352095737206359643168809744915266196159484353691613561169075359310494342595421702855600653186318387984114948043398910849683971720588772859389925072845824409005294172151688056292965001336421327336585580423593346579957952644387903965778452698350981710320397164205048251433811527061710882216624083446311523824547346559176263972588365900025403441190797851622689729719250327101133355526939139772808675735068583447338855655283099562462752868736970282018524832199615406457202045996537637713413067320382667821663606449847585217909995050666946785070693694161104715399477649243780694454150720465277050360228947375489275858866895082680286122110569581934729522971797023442801356838319211455873937918486772550463185671930867389554144617351063759438217792301868167141622156117859310737467489893910687378563883995399885572503582296693289147577542772684847041894536536159997784629544930770266829901071015776489584687663955641724612787956237363927165807561302335767068838879911249754573679755403463742837934476888894867313731972467614968941749909987208280746608939999805738102229183604479833762000233328576979595089635072061343036915693617344939159126642199552813432345136856749365628957696654040227487225244182438064735581226696904694814395343122632096897685029157592014473932480811758545416881758884103918394338885218746052901650606820688664497125244355248865910822345295515631780592923142027517489275436810068715173330095028904094857430927810484533559394652423754769029325830080866316889804357849260827860977354087245205135592743586303261532525659631541513347201639647077134415442130162349367730394960460605980854366283123266944525730804780055814020401908750734166403603359863759488933344216278910628720201565695656890228263195983581509104087130693817168006060148832818328012735364751712401600547050779385946746567701749163700384086729327485280704372349529556985000052453624085640499202526535198949614207351494832717890047550881631646236295739263451671513317133755183014954205968465723063767380040577164449671449306786735688169841837201580952770301085194986869069709849248179135106953707349624111067710159132604035154040253713443393513985794364515685014394762760218521340617708541243504622675763833821343318108626725879124467765025799897961671634410318115739247886960918061506253217661298322964698806904852218772019867666928476275992896790582477137759872403589097148356060401721342382571582214602353534517022525590957252441630303896520501382678531004958022794186069728014576727961754743570740688185738474542640524707539528272739267586776953221707115987505153769919690110472494091458435142025088147147300490365595706724678920815990485660125067481690598542000833510552843268620249027030051106318617376787526031115878092032433965798089133607373737300745293993417580255948081610335373521976225975682907597748456026268950850492881429954319526202828900856581420652290409860714782552957397796024522120208398889840897233598093884234987248732812827141983443582977114447354590827445337633833041521304583839789684147465200195947186716216184750734507103420930727481237385313598376930872608417668658803674205853603226814231665675571122928446468866974087182271441635274305583751533444080478873623164435949702525387902703078051037551315749035884687487563626798022143067590150265222798240165244051315717164222221263521759376245788097027514203448917040075799351222843896331462376732422585564017081056780315816613675013576532608274272174371277285497349514967850437676518162670002622997112314463747515775787352109405259994069328983025860182947372999413183768175577606615988153595145314472848670951270675164713751962483546427123989232879241139127619141900360190706972064172722149398782687185782582042071004023437096860947523052222572377958033364483071965390537761415920069745226252264543570217487095064019907480188702617415938619582011078754675353195451514994115982175454603717886658862119797857534397454050589411384871670633761694242790261676750536599403812371136766404638802316978986260429117901599030509402705657963706902404847570330823039917193422679570773336849231380076828457778448733112845403621260117400924438210750913241959647116416130834876636506142517265455967815415860391139665804203735635966332304820730390085254916609678129053563782868348145062611493417954457296347101683032244937432694926724112835481470196666098107329326110799062100293176133364097229075847895373808420490275022814335777078837482135729937634221718243855927335914108720130958675733684152542152750801736356632926231314801897139064276283522831575532300105845670053401044513054930113736573026315304091905506062829988984674282131325972452551555267770126793374195761549640641308485333499554900853294262947832325276808493003857980603801345560925003687421885618242634173626710335707130205330464385095666088331697256109365984209703744582826786842550740853651282597808358232021170576168927068183019041844068174549398665892898029573364824149847513220457230766965644275204754359371564530711800910377451150448410661617809242734178056593055718044784684123970604335101597412849777768345816256219937053213906857021873585476859824707993388633734512566823615092705112861888393653550969117379712508307789480372468335029182153414986720682674924363853884116666462155028577582019996320848976507059455151012440396598077718681313018661659287118471393737096594563624691290872763680646116351462222355244582015300256248722194308242721466576518159606733573378075782948270013525225825239248257341206086605022980918788192822068827641085488388600805769109384121435947003528012522107015788860355478963973276573935957720613725600413667889436343668939862570752959847952804814847640318094168264861750346310188749666915474915752680140282419565959889920468012062202467078805639283404788789525658028681811296008738518110741464996421902677410444500091416278797226737737607614081048669353290637563075529912342112362695910957290851272541778519657990433711655024547567931756617580823446352933293215134122363992776593982429373246989135259737741346758337974837085662174855921350090774273501410309459797293393124743221224668715437101690106807093165971392979277718128191351608119351440530357391649798732262949262133701381428174513709964496729043107660961130486184887284903149525877942504507697958985172700212328321496536187844611419833951886227498703104147187919028469588307647516514697456757331676886224890470891693807390108640688684438731210641542711664447948376709395792814298401835467596423182029454209379750513193877296103901230454799171399604597542217869878941497183639088698787457573439133666966849829727058319719739466879726762778499306401494064920375628214600704263639777889372945513634945267873287952589298427364662662513288547681921593435306899910590931583760940530197840668146648975129729343363123057788227711923632417169644617076463841757371809883910997262153618618540011864196173923269696185580436700519993996079112215537109645741810244554176267232716988755359943597686286152764922993675741076402789537091831087612191200209348896604781808660255566659410082723122329609245649177177507979701642445335671622268513734396626305585542241031848664046281547375081666477166190495912699837559807836618298821299725641324702592975449705433624706765309700957790142152702198769716433313780249753658899821050822778133034114804173975012400110271106188857986758018325706911695061558234908837351861539548161991515340963822221785828513189447617654616138377429854941984315761884695324514152850741960878238908524722123529077508701153167182411692428581871190950662807004215489135961820729527185923015446523088237614081337238873970496619749087903566761726077569912011122106422558959231741389265698361112862679579600517660152573525733020031994517059585044880734275188401737058897160539579668439526555346162504577844275840441792097390907496408553719813149676370033907668445532594442629850857365630466540438369547855623104468335609758716285557928303231317456458296110734495984279210456114334400095699876721674697588809593950753718155437093333118900361614862711070638184285607873794787015947827477270581565463835998017611710345467516349157297645295820637895759844776049490829404786595887646416873514433165420428322378649241148909200781186115254206847504799985955839464759675014962582762653946061015181936091217145411396620103771307666245089176691327024683763983420294293977518115786914228322634700823608101135212155686837996045025264283028685129734580075137838776263591261418058746836636264406570920391095137169730808402749603610812352908554968988161635313953265531683593979111283744842899454884909231309325272866920061580473978185043156953102245023407050379316254154848451168174229012959829073931852493895483203047250020303852993509736754610780664879247911786073331144020843647528798223022162533128556604581052438623350382087178985309653942166152439985411577375368832044247249413854552233292141886782176022870202405304140852276642792303883039461541196822628350584115300962050176996974385925975814037228253592273180931822225772618220906398159365402226766463048527998460497558610471286392415695951806846396788188691295106388065230947470573314292121604099857547489764943957981028347315206924023099805320241885872635826959474729858492684365153958002543933340493584590701937461672582208310773045419148972812301220958908098449759449812435715590342776014734764793785888219354943609159113503862603495822350530336679166498280053629260679197806843716928168643901160177036452639114823976870203870946205299251261531337086042922660706178568898091143306327376674100463631067395119352679149359232620732544904293249308883454329616968293220758047607304936084755979256856003547890948164750202615136590924223392052254465745035897691280151004638712590921289007473538653899683086009826076450027223099735196275992958526220019429821756970485065644297433721226402097135252031989812943871476484634634541899585246816835725300733521061167725560424681423937108017255643257389861734716137209802208776082424017583924598299247057802765121950224240599691334993392514121561679983944703575258681479199285280291470653604660206306120696511287603178627170547225207379493956728396579367192652692058635505566479524446698274451823218436572985385327510745527706554225190179461272363129190561286381965868935305244271702214062680654752342877826655194269923035492916704135710234840650431240063837351894297871302198805050576011787969551418482644100937542677372154812064572817580911796189338068275661311276869011193529314274792604388433315478350930581328496779190841000089256782489020729331835160056712679164550830284019250423493148519581948102268364275629364285410706231234206815948568204456809237268421008850225754988416776801295930762147561201226499279579543084286601704722299416380735119966976500293215113468087093890167149043869234035478631453108943644659496706157048801959981333790336511118490818629999159498007217611291141250576512675010851497874063391370454233753381894106179243123687579586953757629442320978699335486448112922526417972117738517016177600046758560175400918242711291332405214404243172055731902632727549950800819324417664323582930609240105230024993512582143889712116930264020408324729127135075474076455158395539804042591036414340584517484847405466015935144687622993511568744308084271250135283992644309657518630293506997303747817314314894723621352688183918800767091265938965634759210804744314260529590440006955457893924794128704872306628300010119468672746259787257620221421985722715835278195524854990357927408150674050460337723552170354680220218822986661462983779538863506481732769470281863674280389903234780006886325531258759445772280212548134678284216070407050181164867636996843633469327433927659364479289436405469904710755272758935886159633391307997197255590385557047480324454897759849316364393716526275263992276825704262949831275551887339951081556397581887441586834174509619248480063734886608864060442971343336137748198799457198779903122544119928836860475659853981420591934860912605985430414462279555526563743221405470874283909801864944058330405233561009595183603041971124767618100826133591930273360373955461234000738471945282313530513287729632608578224728284344366626014903746448146470586783742715323334743283897402842316079706021526600810343878281500644351228148012837572006338778628617008631922671986847285116109920633501232628047669343388075376524188186655956073900018690867233805852389829036111968230578105551088440508062150013995914660740326010388807591783490957771790102588525981773420006522333871365785951935324043010147967386301531185990223305249198201714418386321299597461661683214021295368845308844397352206852215104414512348952109737909813002937617282642266295905276581620102535201852653635905146680590255557710855129221492211174213756830625615753865660953295649643129030354575507913698063370008320791582093031120722707856194934898596393562768741429598742763090947119198919730441021211363201152166524882597298765026632030431288885398621839951993946376251818251635395215083492798831393858952852831593721119850380734726393110919182571594647160607891953590317121483846004858742492604944118839130561841354769213974432973382141012798783600084673961055799543946883381644394482156503729485485798283540326702450901650722081401510285967194566732955050630643652496417280323844348413375509637604368521478574725024244408873505501873005019555087520751872503626130253239868926930853472728035215449530945149696113058581165666311552050487274464156759994914641191312710705049194549963443612278676918593391451092089734344193969441974385247909941236032808237150568247313826471221958001660867524190296619288616293898605125655220434853783900779936215571723851701087858120662264898338766657589708052067303660500295364971381732460394791800033106069642257516857092354115434541510333386344765609300718001956802553369263539564869146318887547045027862132421066128416180791642815930520077711153288565837897942647089689903870945124558335624543087730299763088531825833735674929722592817835246744613066801820795178310939759062511823341236232406655916351252262604429365498027462082506870182968730082053650794429989747037029435473268237425188382637708395724381434610014258376207663798453317128030205305433636391390920881277741922181580847211859799889678943263596364601973686728505888348651297294759685388250899243471158858877567883917476830324747788852097653202174822376445312772905389009427146367699676278242450652124656378807627242029612556697030976155611186829773540946793251472275495652782432840110389406283389596660653467862539473582374395666746078898379241106028229027059056950499507109706246368956733975090324186180317409378150519234612721863647312597232940215159405987502494051202659906354268848955505524372305716373364284009295488614053155819552631868817927949047078502643292979347152093448758195084881943164963119547146116929959594704157265813354352854324768731064271630210836040834652085553548376889650629790855385792137009142187696692636972605772890316217274937922074327079157726268961314422895096572381775636254658810490790654845886980097276321350868422761790339924751221495969990978406662438579316265667086659079106684671708075331383931031732867154301566408976264122351142721502321019276666780840869245572230999615896039989865539157194919250777465597599129588581356690601726313667411002091320285165981037200692013766269998405184650543196405901096371589458201903294530222976301658785331783501476460587133700815617490159630022357857285814009179024892146376545693884867225651756636071222379833459583593910922766869869790788732094375027064984591974458891632205511054812555419879823740220116721949756218341862832072796238689066661116583390597485262677615491912824467407367980501980996020861822261875090520929118209652469735006049055282681295936371355828096204942842345387700669126568639987155743873890947031806557305522573722236021468676185629059774101002638576701494086606324863844469066084839924338769591175486702881686307960174447806663634990465691516939811364786262106768522054351816868749575368169472762589234266612487493538846453268011985152847553813624797932537896436661353782147836158176878611961365901780884303260223280864494090965899106383289490310417516538628933617809626515715611975001547278755459999810297281500291481249506151554367536575016564209919466966580327862309035133358261463557851875576504743901127539410141256912438313558139401844196204500949736998312588491628249951806179003372165166520067298533861725857489348676527417064940633064037577707034953472299710341088768206861615274755140626226545228732295113603192345137464650795480489874402144528000068638975252155068447032219033514266371976889511312726480817950829122574098145750785867929901891126423926248303765022192556053574752349409281056915292407556151673247705393871279872753671099097667878259953900075762504005594111970725177366115715426975224937269270154014410583713729376538462343602950684261957389172487562309001244402088981701384521021954246288790090925814155109608528763119571089108385771815159581176500781594820465058560991377449284363295282398205004406739802184476065863628279135969177867002509129684573834387459832132587242228157989422875278611070013604938302877490269762531865158722634850859843568038060985864062674978460381448384550828188099101636248580666596849381839456307675070745104729307982298031860152167078540572068904822996261064854731099123954937959973879462895408385330635800796885344102124721251812495992767882088343217819953272241329175202570071630053017147842487361006860704575330687019266598498705250256534300524756337566419034040085056921545077634696684695144995796565675295704528613391525738304031827991142017854089740873247425179266193755024855147866675976057708681790045776755221745855827454117810636581812256834477236491409045952791938262075728438580944542522471030264695087564334589548749101304004910221426743327465481977791611943939952699732889226826384568662034851552431255535776881835553526369605441544899179909294506598628422518682270031599465695825492343057590194582312659938796055310120261301824115344559026345285308671894769801220082159859643680203547880675855511451471789793810545505950401289178919637811314469872910376188802704180317731508560677338119130529882200972309654901033247669605949219174024375189393784318369919585873821492409737208681546471956812264567556479316439617539106969955993821600110737115767411685821115664356653884689958117257897652515408776888384209983461123767101165583802710618241065541948131010023396056712385939062329559646436454327001867341091110260371836606023851283979077051579918987800842317374644965481415980243793113253810734268812933125019281630250206181058386955906761199478798324883724092184528052527127497981136527016398492981178348848340420698625235932802487758484580340368032120305113364822755426100228713373306067762357589443360876141995469951346513439609445125571089172165167175706282041010287697011070959793867181129698569986506325015253624116450943661598943560349556584239970454810317099558711740562392118634861413052700600304832217873278848024554146129036860664662916113435860491211764198811411766113248275377020921156912462132873206351734373667558167570507264231221051529665697359749707369512265234672569550389163192010726916751611883403932428436078824516234376169536838235591449806350185570444252170831512209048367768457031406748618873458003140041447355194935362124877049158578968718303590109909980532198495102364462534514041076825014867528504049275594713532436304825644075032826620482390837438470275456589550299740425124416932719589430746562157590456803799194248176331338461633630647456470002534718409077318376336562152626238660452417780242809911864047274413038474904272737199231978779821138346711323164149284905512435372371814294629978619945696123904486845523592549426138261766946424829993329333578452601771228426200891879013435097111720914742142254939269069375337701796329160571049110040856616210417935383520586651776039482314930806304153327344066474196907092633066141715045962476980346949470472755199539578892441664795165776284642590353762267552194920266751731313810809913572254621305971512451821508294576984440744614227830258379522922912053160094552644667535988792922635259062525532522162674045219140901861685773546783709189616630810095690606574794230457544879341755923370556701017341044670363994896578559117257782569378296307990768285275936817203662857725428006636917352873944745512880894230529572806643913845400095864001457743329462415127569248533249497077367405905875697647002744134608169432620293565702463253473766303558843496449781219507347734185002620837481443096452690622055683091642495309592018466052829066721960426319665973548027738903388918705498559433145420705016344403400612709482644241809422678248808146297086543645564059260373487975987138882060527284025203260905118717121749383532510443275273612066752137848165640065633929698488987704905575255769703668377369805705121277959086117382942793025667437133096947943852297291669201475138148957572168609816412795551514589199270884610650669334384779228311315545012790469072041561459925209437432097548134323960587642323082317297429213190739490782701734331014994992159472848465030751131779067256350737752234449921441439023688159743839219955126717418311307602053069543218229965104386752502576276893982754927848043274182603899097157188604461757974929053260972345202095815477993216808570964873262940946555578783354780252312705119415931042980222572864029015794026501279236734992963251545228426801147685104642527067934403088397173776130556278449705809597066371226301925577227464286028374149732405123580937502019655103778703800014605607148847549743363282361245310507519568228422786011134232163985380852102582618262990629613006232660999269742006586093259692069785491379366202983584197256971069460101586711037386549022034280059070281574189022398793087563569216638606435939212417920611053937023916303282910787239419788243811139946718494046336909369124015073452716078390145376019348107138453563676597050056278665094294286695220387576942718183456162922975857174390894617755948087413957741584856458082215173046964190283973923738261725190332867659266704699934365824531568838467500194067965714685095530368149744064249482802718191186544685258379458468881741390302451230247715941511449039344758750362674299030218950920780326971442166281024857574963861322297698663131043151010365120948481463879115801536213152683589804612159304808514318560559962531068346329381280172485017245959586719672213574432690456024171848019095017823104341321356255423107076481410352821958747800041698985701031595331032475490635572562079057818297814650700612117029060954349197713062953007901236584449288915315972958825977591088262817302296270730153876948196394462508988727468055021683357765232276935468508936420651929679810041511218984293675037807084736738727372612372587910920853786329556459217573632958755935370099207336565538192649183590370019975683600880663246759612111490046030375887367228650915775106289032036676858935864596083471932665049370811727046641040927923979527259651830936588039617742441437256446881915204742488500941287199022078638444191373050939693170110624981494643735830974848091686388678288791542177468716262513653915505837924159253162702579782553779342620691092393650490499236290738862381708886816319441471977827241698844562374633885560752146843335642524492359095027980159228140212823077485402062931349320882744447252366910200948790883828185117520624957924597816636566364132172678617130762322317764013806954100315265837547332133605064611050448780956582591136327375572193703535800560174632360513682983284004916526979114096244338804259693087435255866745392009386970343631280384274903913891434211727285213631687540147224637557867812833111438799321186406207252372886398772852483080574753632121990862986508040200644056236923205044707307349935890557747003462428085611440548621126365819238453175818402980373478875881273104525665321148532773736261017318116775876774983496454929430588978352976752512818474076531494587123034239662191596012576515638338147285140448705589583788012297396699154568467580983443421413155587510090307893617688296328997662646129960536398456062240044596094622691321758252521095977232401089836494365234204717750275451296974779477571104735410171873716387421176399460641125909031155877196588322086827849496226375096935995440263455207038957802345590644035609097211804974444287978712686330059404078125934271271104639489190326472222674934993772425931765540740516230429885109362175800806977699787516233444878107778709646085128920202983103401817719575605217103823994555497343739534922343001606054332757543999783250895679640938733641821557199869604399379164787038230579540905068414869620434637015969095268333494760326392101432984437172823120279647830663827264711526452051456921348985873884075041472709369036598895530928584369879794327758867240496888561665412368864488701845350791292956774001526358966621290078818550138615644841902771115673814449609597765059331807976274118684078961226867042353230097769205533452108893221251812049901542975407061152172162968819554608506782100365664168644423097287193926644126757112817410630505605307336665431840022474262754177000418422005586332732644908623774274135700778171187123487462501647276334536882919631145013718335633311775537840813383769272508364377763276912233810974758095024670186469537276346981496249499823964135065053083799997788676850686115829786113505582390776367583629977251746101658433970076556554130278291459205133204543969087727883386981949365710689094043802762192393176534503896582919004567682873542156384315542670111257475699076353403052235663986622871254456941848030895822772865895948242510247902696419376653774747145898816037666694552532681254934289453277671595238992146507186137427668402909829759473486109935317628052500062649212070520744883090170114124883644282553465293833774537928610132579495766220565038836562103872341354917674040696593438897233585005884993520905706930893783289897897589197461144016088729815250541531858391472168651559060464071794606609855974184950582862307575371888435535574962264958071862522382244005564185809042993110847063295140517937646301429735163596690810313964400415289689505812321079466184178102382053017513679372568776645095566412990358841512049045607806931876530932089343910358852522999832601692052821842633816686405622126753985079213806474870565041771114512958547414861928122876952549737776435597427313015757469036111922561982838484064929025345158031269125153085394641989623063456330273312506496579619069188102570476095767838639967467552038890109988059683866919075485848653330729705816859463333629569689599365202336157744923289644641969214465553361260103001639158537428727479964957771447804442659644895566265994222001459743848958431487263842981859974493752172054857863645465896161008502875787552195389752932759704093528129732521090320716796086528587956677141707142716744805955706300871836100323734048613848819019592404446218451985867322681121589837830856881834300140326772312764194869372229100733614470310037697919072951765883167572627344982319041282067224959451843801209811309369041683988793913748799278971683086860335573142430679693486277386638601559670009688384953151325852403166846613025098982873396814636036850435247132000254529490008012873406236004874879920316148302679348140206231362787306317800153954075788041627019258139104598109432276843495499153033479865307953355882608761684750670733815450327755383054454906602721033575238207525017184382146621280654934738690336789121155827750643563476384281093996382074034941782650475845632242954813924275810933247171899481046122541902445200790594537791148242014137467474268514993845773679658147124440685616717513724458179030175904236175774120821886184588429694817213479149556975690250913895793772170836660325576450690180685937468954991828457661493437504596299632495465153600617763916134488968239736728254384961790271533887685144176101182435287016017658996307063184841245834414593570478194423819299077944341909391015260263299710883427077469108422721294813316913569210146113166436379312986751846782777832919530538167610769968750980025052047818046303320733524538195405895515241317627485278108705478238314793696120881800857677687009347592340614010354385318901845429386764344420302985951045821677971585682590171989882201622665157174489301198953763516093725443485235335303845259270463118911185884094548774247108657869689086673206862549821695359238603897584610764646611815894153192454427519252389131451543142194429579511904832421518219862204813784192824296774620391176444016089860042511896480445178917199762341041327284440131460813914218834683681245390985178524506369359912485006909570349536894202019324384975419653942139741204146290012927045102843385143314887812440305674253493732230592554708024701318491512948700977462327928074403146739626708900011613986924083293370847330817619277222678986290042028572157372698204869166398526364013420904192708221824149055475755574621155540277264123129213746220040072003147461292615082057974890870646348185579370479249216634892531886768460356578506965239469607664998258652077121426327949188292506599765004912816263807507625371204168891748184844408294698181378098389967795860143024444976644461607943175138988464447207079876553099573908937155401946435684176813168328247733075029564643797220654520951392394064819226438176173938424176711719829800394090182968325272421954110851259074616028986492286080061411297171961567869268006328057363330769408439670570603553952928358852601848529966045548858155421207138482546553835764309730909775975592119532554665092655538091420145824570113790959320225105753645956631019358417549011022723041251835748412059119815266014875074140594068212465158033159400026472097993624442153902411678184010304934620351957856787818780609748980547668375337131577027950550551004013030791097146154465832952007298394601095511264594157777034766424980095767329881532532365130583854058897158447521317854294296579586034595640894061597950306715909564061815893333082774491278094065186135604585006883510744648481696753066474224538525678485705438958080626230651641885121957451838458304159244282555882934508752066460669798652624669588823664916395736474906070167497191960793070414941785097597840162745364216058119057029732030973081961895289966748374979938847194168681288659087540139753220851392225947175611705607152625161675146979459847038637547874887395864714150017756421101279495041540046217515596125014921656922042174452243447056223160054217367522553941369385871891961970209144568176614894328846565711451184106678841297686527400859236888295596123412042330142169162115521982405800021674143654366658164820627297214312708572340408517062996018222049312044401907150310898374468453294853384140347447901122158121288048069786600803773736130530242096521610959400062967840136515056648511422701092726029844273834941995054702785650701960708227776502702226754430963859674546180307804222365045302264115109983488512280474349947058527276313588675805292614060659982949405782469266496120031352584899291875248157561124375084030931650736927025330461323647363383025547570360009231386982652526550556939612470783002284741528900670449637704504439304284588377993329697901718872101138770240701449291805491073689529984478813904041245739116320608219459705524936888694062100681645954717236889059235726764002561645215765067466479603876304610423480209567784636016566232623591482525951154793335783656393860884773761592289929271691570358109985345894428866684887839906579161484546274027327006867332766532078005322143227185395593624598670294791518761008752746151025746033657009818732545634556996204435522561714366140704921891733610269165278090891203933192367721445117405715983632431092437376539939053206350922552993996283756325029951930362454670460751241531098554616854591113982429736130019683602350609579396871457458838559563004044305989072110676518806385347576798135773669652736828453266326492944096010606069536721662583774078269658867754514258196387578593649431949512416777423694826172810246724831921389663374303778763308434861676362157003102962223665396128655100426019906610830626304225678201255836037178551285830205730327705197322996113327691277986810608683127679165358824766113080522049644684316561327011767136249714402186891549872885628179409822125249202630814463506574215458016451041884887395141947178530598006847542250818119739143275602409946229991059001740923105089677299213479487835814063312055744557910440684789748554882995126707606351020870981954181105020780935483055461318615642442447705394302574690939710035393995163972099559799530163567404575225752298419305199028331476370094072044830356226579786793874624073368327887534857661876103377272357006841675638545306350158468001737414481430170478229063133213977921058120545630348775301491099787407069074033329453676492263546709624430993818909973526541365227019035378006553629277091047121330221177502863906905502363212942909854631792598556148238084156032851647511726776469343046003371325959452408447335053292612861985848357640569791046663375612332558471939866959535587893254609998049919437783804194719713406584638192834515375421143606329937797767149648712019617684929355481940673647786576840500990060684808834354211398431228948845287236856803966915903621914168970989716912342163535668159061703649450556460122528711582249460282390976951379409225145245204406644388489984800725575477876995548715918189121137890233098809920482495427350249321360185402676627855834094172853501376782997821114293141745064005904858372157484158611565580857589934943835035562524515953724832636139634703118429509630820264181388707790597842882019858041391094930552602186789531875978746138695391762249556068000278638868782547235841281416516678407959290720095503448272843785461335785706490687112907165478732039485225834930579323513293291271540463387650529950119794232141968587348435193802390592592067495735353061199510159164029870710852568091320273484966863787595867717242540542165651757740319538261585338710569791274555377219595743037782012005584296110407810250274139550939238073309211336263531206020143808293979346029206888823063311801743716655293373191844141123895842702835441248799454848664917111938836542678073221806821970057955190035996296309187896626516707129700184110116226706713967626346563217864027394940023473388608545992778251748103920323901689326024857860182501328145444674980351091818532588134516197646416388223850130130826378586710534609627169744291917934837613433805226082868880063994056662991311470664736147233405181151874172635925692709816096056266196659401013388393932430246723749311631212027842993397541171562981511424153515723140472556615135913999168258578845031289743917430870253366565746187223263823594947840650795541578260763610241551486611122357399101284821730531761981080162422343308336814004840798138471209231334415191871926955342644745879201116951594275004180179493549091179080817933235706711717061228232612780942681948753617128875013183024335980917611379682183704509781496036153317018178190216317019845579933900148092478634841534427392266301760911738452956167257683661563880012889584242128853586352310067098113753177555287436755212953382257992953950987493520618201006016888844717257506266205944155862183674301072159696276431064266884194108949534816096495118179438557406600722581148901039438424606457519174897991120705285485007536922514662046689926302497043573091517671689410380724791688769702019817813822260591803366598084272376606801708389665163160894318898208487792206306594298531476298768228822510129307026444918754446379698889503570825925989754862256508040152662410218366833207185634475696649423903494141396958177036419129712076249797309546374262901301129042260874953895888907823224032977607338984090194836542356060641831470760789922224809750219184594083326614891695267797136563126128549608256012355550283153757833336640928386587838643586000144473935309049134382985724988271083994095963431691193722417038523755188102442165630582069327800169321364013392277259829484387762699597835750305372324759408672066439985634140614355405891810177048377041373990732168189967011533838404985162962561590233608313421592380136277455486760894065658077880411486436762250132282676315433792353760247849676408539491811255689526229144675370060872476742401021893044413904825026219517452753027180539949416481703149381244781777127588272968670445620578444470451306546125228392084888127831912948334411662493647303535164400428904908374047776132539508087819557809506438749029978068263346362080750435736520125480707330491771311753140100479825104023797213496111119122245759668576638440849935740273046182473226318586923199942710024297766698033005592089899891556048933090019619215879762725458283255406593006236620364187400876343626575609693343827750214656854453281557155588053967559787615993838245687602159676821157793123777913152370226391807654180418362244563720381470766993959448188802653461080923933042692256694748290157997621729629962297415857902478490483294920149531049969802104931911203861262763595175436995892807692635153717418848201619522275867711927674191844633148500507354239351959913244467470085923131101837873766949250864862421629434574882260420449568252577544387964818283175468519789824662159898818708420595278094121283584110198815449841105472553576278893246238210249270262504165643592831808669407644559817832330245688529374079452067379859025576076927040635356925045927509857688278712128445602760157274596251823440248157419597031393862941313120909169019575854235828220771600105837318865320873082166682068287109989845429539354498828373289285540430075322298190613273296712930892575847115810044747414471250534450677616907507916668299841498401313339671861627925797993741695432582866972584791108779593968118212685592671269020524877681810403658759937340486472027947193023236720850421000600510937601465311047132480313620933254042539770763694453931694645062513734892229014693596794873846278581709593624582100801107434621225530934810597104680559969685005605621811471382651249325697893539557733826208730560766751371603675557898927995613765270128235005912236149973467195836950842791024520682845355593076445595651772087452615256507703554853579764742629340443496386040310629807752714423403883539975754147429201268673773663251812632144747327912469916319245160966126516895462105841978721541019886768385766530396832884978114311980935791657528169409229979872635209883414855805100604728892276934489468778569893356133860952326276644207376209663544324054476359170087722190333017310609258315348832952111043256768189149245858551507962244755397496972215661832239179467446725652735395210484904121132982166091616963455367450874399863457816713993264223136963947004668223448516211720624276561024429566867524282284664299835626770405715178572871798956186189589600824793531739183244938087841880811345531128220786255798108404516315451292952047441193846298420569240693913484378553356089241737522933247840638357568959032612372892783764782985602366351480820114082618042211402253541594324016183309399896618209395466580936314608974903338107809614158022197865302471372197487718401021153126144103163837278438538530822450058798555103943165456889886161643520970672096497690693718358761763238412868402316052405617231408847357579644713838919205370987434100949392656257790466758321501555216692528647866085605221442827044020761423429899913163438396007076129200214565499355424932195497103826335229441448599731900724640399450365250989742392997176550094326769983208070946821051553470520107845590038071311647232870268165669385599467250302457690172545816792721622728936596796758754940332071458184396431303139581534263368498214134717870989295194988475700745670863567851224411895151972772576787945723021531226653766237978207651672848228743688316080328154201601222849118623595735252196076654614237739772515762301836421918364401516851551325362854383732628025671538003314249630209459308444547619707835958131225915768097063807633526331278974653424547798768620145354299002968220812699296982323416155340620723913036855979471247607918909895368449975769340075590128901643762164570930724416281336419059104607844529174686501317526861376096670911822592876267378821636415205535064205076100862354577135846947740701041569558029824317986167020930122889285863456645719332438869882996277291766870319134527856135764289563186319277934571974263220421162119793747432339175920262226190235530870492122762071035535792433455326825711828573341727071298303118879793615366481322122829701709442647481120571115663046828485032238374455238901488964661267379121856838555214223949228401827540678288173851869200454069949843239467855865571320168782638456687160843407039319578964765195769817474300968676776434874900691987190149526847126230376772981650543211144889096018713614196765329612471670771455958250722442983094764612420895048180777134898477054642812517750252617169761523882931269671648836558342360514781528386613820735752441655132031678319564592696666083280870740057280431765914186775702735769110064485607386886174322903836218512594575600179889548587162101621030704439808913631107341713119862967438537450646378043199187424062346828633610315382999506740036685968266403432694370279830707168435402797172523956244429366590247491152171338176026027058267157814937596381194955648395307883597985330643634083373627525103834115611828138361285657706885974965272425853889986461340391874080628542751642949814094555759695427615348917774050792066509210099641665933242042539191206528124879002201393064062849936744531704712278904251380559285783700017809209276022261704941441423909914805371987408237276424279631664022327803019662702343927395464297752378679583150295262175911520907211731574895119857316162293202176121882570323857798076314028380994357845062964346695200349172297240138310155524725485334570037474706831749678306353522969931056796208484121074474774328454170578571145301538509107601254989008721467403886208116307948082284443649220759907443276104208232584071945780340733742289956890598457143658140034413722891747854565825118242813561301343689363832042867284831338958112728866122270526301360922829815737609349991114136847577885515120749552624192900740182437102408140608396005143997829156488743208441400458199754068487712236291894177893311540901463618149047585074746640706075182249758306092194832868066299046220545590055894300738139770515936646001491209938240443048906093110573357606726031796213479177707442426282075706789076751920726664056197479568735441853024756483474832691104344031399601014630545290654855708283098599426616718297740973453575401232431292885824775790971774976786921204925598574092947894301227434603110382854153489440273561716671709225017211024429448256957586965858863592567909137747298413110998765717187995905626211598653854325321135735641322858642519959193502901018973555767495369446194538908982909520978477720230048261702278598349572509522606387746269633171843199047744684637430589621943160665898512429379947242462051474860519600208148242689793660090412760273353532567130385176758238520512478414403106059508766253602124798163712691320648080175166744981762300884720250250410698546575298697821674018388791785773565975213573745946099800106368655360092091137448294168212359857380949232422896914723335736308280071503615344200697473847497502150810469179246904648020837921207094738164448149979021946677400311003044179616546824305440618514703880278897768732298973426627228345849210134772053009484818900925708068384566740685139114726598453054340994531626831284536589554672032389674454882560679101754802623319646177579623173721583798989640713060827559645261615217683940363562051629128297194026546878824983026798725365907096570653844694081497342870176125029623309133150679080817773635926413801803204001645683481238153602336745386339051558090393985952608435212823265888627342470143151658987078176016768444636691040978741019987416888715111516384921912837625766175452149156583692847145586619029690815357759272286556421201197166497917228373547605078262779925807518099757484959824664922795054223340632844650792553315124650067466509991976412590995547753581784645388151388295569223933779794901453305438255462921279464015848671407560030567072074320679844094193577161727227211272391932265801061216571739344824302132180806953090956385801320563751867036953291724868573460520383514400650353646348499657007183674856221702329031107919689713889995872170134138586988040042431328970068680578987627026788749167249693509654710764296784861826175776822524439353925580680498734397851327114247378996064295830196828286685251717648392968952847525134197371398293517037459784564580554657139455388489349213087135275479901815246858757471213112126032808633815517219522558754850129201583848182553152989493346615049085653398255605845285499667881308722438577228310841584889486494350080077151152402812147981929927835134011550893051224917289323148041153047156388737809006662053488238573714895308136270926031289227703354022301808390879535433027568951707152364905736817717973922052915921127743877590840397928091013500200841364542257408101508275785086939419568291094702902682848181348174567051012890419014570646273312036901242159980286533558362736725695581722316659931803687784251751252782513021773013296729612991867996689216328228841693144730768487149529023510660495502999335095230977319781551892726886797237340175806887038699343513455208380943086161378333862488979913681809450283686183484853412905074036547081891206473367566001539199616017879919246807299917498694018830892332602709940942526321917061884803383725473832268554836100152939021203613171007762958468231424825407309763247468963411468082719230425967496164607264676781526315058286693157881928301497999776989958546239383462899859456263314882895049949827157792934560491040671050562845863251089052997354298829679440396304134459854547157230727930971504034387518599270391253088631845216664683281484831918472386953858290374196986300553460544193813681944769474086364737094404502587582656639188354413215577799183893638743546960482960378419607444405425145085105678397610127055819025123749431043369710831331466301542709670336869573635920830592535629487144982715161829971011523231675858064785744477880263944095348952639572369878389688219544343597899643472170471369966518807570121586750811196421710406420287688971325792859526924539860371728094718860705396728808118661622897738380362831996620668114427514092707458278371607995408622739704852973986391011584851666252455026919737622298791001167040065148515211396617035703871821098466237048373166025517759102907034996658389386043717037895563772388769621787528653057805650822127131868650012063826064557151066763808534544996418421039145818243326176751833949769465447560347841683562498613696207018690236113173234246896704810556234587484425058971189580631745162339559941244344531139079813239568713963038426719831337118724693517245640063451768225261577413257308803526137656685151497543543481363261525572260178737460834661366432280257568380294813102765639723100272640238729662978675767406543122629683379903978889310937201200070050063991260849294282003847424893860382411390833387152004382900398993086500905331875705311161508484207981729161660246799808219177043065449495867785322147603062099680994070347623211021806777788785109717383111780790171069812029651141145652227405752641298510816992966371797036310328672990695144424984650115506627055225292177096882431221701208909086366527650689115193771513416181329300931993212663110075603022933283429457545165950135864144506914258642066544803404261779841199738990993693199282582378406289024404570702962242632027420517278724845647575913081964578707397509075125722561610208337977979355561041611321808145883125566593821096469695947329109767103402192141493945291775766461505605417131131361623011546967058005334571257061109724114179138337445971957069045346334808405475488231751529864054213967470879896741911813482487741501124651576079939514414094688412174984699485077816327164845296130713855838791883286469587276377385224844171092958631118158699929764620418302957538286146713856966194283390494100732674470816930018920408761059028856570962621378091606601413974441482621121416990107123084934364749655567964214742198952096883201263058276844275816082762829277553172841429096163352527522986683436141158687696130033033984673020197983373638015574420903139581333199046090910291136054793644916671859574185373891099117070244022104821858070519533283991711863331730372067967371636767742126662356891349861292904153758022694278039489248259279066022951753301577939353461289865996233369496047520528303373643848437041043545151668218085484096899767116449015759736963569893900408978550726155505339633544337897827095140404406331834307212516707907971457148291097463740473474777848038010124864139263754449317837225002940521190040637278534210939654294065589573088114768279493556298392157040208240961731377644629734945661379361394335154212829489396895813580788869440744624708902773777311100753297143415168419109251712943440694984332902977823630690891438576386637898929907357412364215674214058205936138314930777618733366684651653863922684035004969181042347043429846319958628993354907901815061317604846326604777876578863142371452096768045530326586330327920781561977135863648729384390508217732768886219799735497675262318528286888815347803571991059026021226952984102613018034090116451771997469445195946650193895483040206236307740388780983194024433201248844145795004227924087993835417340566583273696136929695771415495855906869348393099010645972253592083710298807781860394326894870946406500377202829532563115822840349371443233024256170621576948766531943012316719618986022093046453999045425211068004803477080000501377437342375794771491373099797723413751776968549251596070092093304756515737403090003185414260389755051425003261330111238872770264281496523606809719097625167510183731859831061815707071477331436650898215274769029048838757399222667025288472085281192916655836094229933976803770322272839337461216293653418717633092807182265828419599530999301156954602769109579895231347186360379205381509831510073644546481452479504623108546253961001078164857556825740090491714479481877443171521836604349337722595812486150813563364921015117254555417940133750810683440293698996565283303131305630263383732037616641858744176136998117548681381300022079094048020970224063497234883352003018143820919817278412944791298941700147909000324906647954230404842145433794195195136699155778365198371412948332804517374199166052654059604267546111536267716604194349889960026065329342547574582442142953701448722060178742190778218756094737851423039099101112379736193806102776995283747931789009131606151170493568914321539771201412661714238583310724950109276909481165172686338415472001034171536941240254208201225121185397774172956460888443442250589891209920867930304103924381563722045393986554699560725682027100208779941048279587310095032975800734545879900473246318768232137472978947762137392347884881694873869008788614175147521659433605076230410879752247299109146684275923188995995370091075116058089609975595316235021005607755718484358816898096962879758268978650681176246240474331430914278817678640422567789302314563546530197262702843885206052203481992593685036903107457815566482100031619473433927297653830921367935395993109313406387794400521751903324066673080125753772848078776004864252253296141040137998064512910586436312175734621216256622744208833705408959998402439089681348221836450450949310664195852474372815072296604587425581802925238858203973898468535520271675229328880259999879175755968435104670868547197312169016806697865833782555446058751174519517649681783182565769194396350894217826460972262510753575992369979814110703218530479813004333149131208931938867844566462121824348271630502093304617138618980909784195242831204169189704236483095991690656579835089606131087904201344647571418869211922966338650696867268447874913907076853841861187328972610636366924097864903877498932553150504707569465114093822580387848135845829917848254120772042326958460904930852112492896514606207074148223370016455064716286713997454786191925662536831756856939575099106167620470381661533138963251236567853470541464581014255028564945614106926444551158639524003664711361189885307851222496654403649431074229110457776646646203816597495336859732264344358075112158688793337920761808270603264289513674032702817199499267169337334353210584108531455690098452138917890776752191095609409258591049245511658688480634424400224660123438800172470302291420305034785818399979384050895686051802441213167341258357491263281392766275476435451604320651302097118276692410517073808811159963140562732849016650949060798089557890604482140907754203219822370103662627463466873104541581852441689013841404534295700234299730127561125463917726950760675822352220993032408025551836088349038995690404097073365787621467758942686096848338832012363543428775566178315858386249063738296428923100356821484732953805064513433597401662273560603127897050500706151164784454395561892182244340743811203061218970534859876545991999727085107141913635258901679308137194260844407521385397743083594785160609767982526165736944923339303904457612950350405680603309303931143135501956690666835077082982380912733618218095042261544176763050538359895969661818340456473731662270723811667668004623358744112272589397683083615612181152426486937859822635188851866631361254086543219050853041976261246878232615640697110468366075212331031437807175691132110959721775978553299478098400848542307520520162830353589906227143492436927323111611689498765687493372350526283682853838468964340345306374907735272655012479792038880193734209842521177782434274803278735288194709766825336831372205427988100954328777524576392995222698487578451330597540029751073703435021455994788317773937548719752526215369917704065431672205995214084835082147322182926795641878143571231287009267267415774808298663786896102241429813965910639559058073020654315410495789648441680208958904414329752424895028400563403231576032010043570402824293106906650813408487642432245637192006048358075442774963880000754494104330348929542627191942852173050809798378207223417158034374963225652521235584265983113270004201179134176255717418862102078443802222754170308192124986640340310609860809333460080671767551090774428996671008466669783118070128250115931899767802547735852199985403540121368780414755828776691868709820444324019707633813678728728346259204127107915281299626204789111482882948007248418172876509831924745474306140079021132867732415375174174110162116510064677338091628044089273969457830520498582355919220805381287976605444921003033210357110607320663174949783301581771490075688073678731760941282876049721405133899129734657491322105440752901837384205035139196201149214218483434771757779561062351737951455202470620708878545052591470568761669530006047163829656307684332880300837632416349635172054584550250992780014075672409505494355986417664643067449076067670740745532926017303013545618352454203727141092423533038173396739351273294453146263396572418051846460126539133192174731070324852128369887081910564997301760815514476528863426181044065612172767032968555188259734619479954619611400760907840826291883556452656748080334035026054949731832049534053302425391366985100722306041514096203303184848645132177069145472489387369553861351274516485524030513045144949573959805217476900685978720383212752564822602258292688169535762822764320955717735783591175899510067403707942421886098201515255085601128161514488328700832475993528105829551616750906217868152938154842137864502259617078076268588972150983698347769053099166714217095819074770324172278460616951078421805381464548800002056367200890966772230533564774651918028242360715086179297769775765053695623374930295428135324963702160608255299134190626988888778373005989396489214328483773381358514901609262222045891622543712124156744978049267700640797891377891146323666302173341258793886340615946380091630857435443049787269013449292443319856584383978546628207221441662459405137482084113191676456955391744169719058232515985892933157189757981952350671843388208095808425345917374578404854249651949360981948119009783468463250829907292907926176314042008405783075622914512117135482644043741427313231250522522403845274791568436993006372008962127349348952306444608943963086128701265629358810410545788742974595925489493572697390414267651224280353181159835572702796227001853435674642911212025434391961150437808347079101584798434907917193247223916914095301831868050198171468304405778583482424016103674179701109755056926371443339387098020562647349807282464216285946743393297708482773173409494097886945482779867317230401195726670714669625179432912398149634337476135552735995292369693594636838012839361838484205307877239287871413716064283212073963084364484464858472086123758093476963626967831417557503356708570080262280608724195335428107687120257513364346409476239125991921354398422558735008727038816535630769277974742757736402264605463105490812862154541476282647368393910011765829520462562457986879483696245351345247861848801030835038049615283204969771547860723842217262146156550384883788679103177230245977414511474809475259306615856175097259738140176847609176613739754923325406820211081147218039926063460787446647068503281899413230268844339172690626550637103687673830725427643924026909590124426021572600842144446383159743396502509593835551707226531443006356413859689630670081450695316881854065381454834252629947027947037366516241585493381645140307578889646016479991717916571336257113034709735712567498332567934290375524622899632826022697816500254945071075117528780115947621369185147082365277974716651354200089379091390804183606197411525793179332277711343753861508005852828705853688388945418299723381098124256599732600181410942362769831251564175268494880695787372902429532520615419620135703023633667673445456087400336184484109743660461782329285773361564547769833035449291664539071090401486284515060702527499670414772924990619614247587368133878440313916355166196748554894476113385562405213536686593661887990094692979167660581086341620458580704267389156533592350448189724731503971305606939292071569323076431441280374477681778060732569614055269442744992274504966613873956489252756324762142258126670745540789827113120068156140869109595340202225517304198186600205509500032349667326577486508932844887653591227709045073895451783564437429894065827469771805222514383219289407163257186474984972445228858370651603055971830638277653389385360500626149294736226179829571970947626818412445762701610807624241541653237488613951503295582298239689745445129945832788168529420296364533546745765900846654867607726748173316686442656447545147293036606885759013917205752847581135436804414685236879217280610560527158644624055647211553343578297467271847488710095341669680652993888172822823379329379338634350213708889547282859892219135504260121737491819461198040359974201886702990310975759801599059807522271598514759459462217948503112561279084989533291403498406173722444849718509725672176658769757674882611216615895000830613339986456994652497646521670962581707576943593100861590550916322002861268780719555597756981459532976701018040453384022786375561768613024197959504119129724954935795193421991844686223874245545093644494601187406862573266919910765108934998290432073318675954834369785585582517529848997519638702414448158636422008689196154040125250129145812928222588389368410852316458706634159450447059066957017093167325151110802771628454520078784977800390765536576302091951996277437045885409126333594457914211501096137644911978916974348343650696105333890638325192760259438302420061278383268056520193277854499998029588371238363635296331419152434900217307094907314569273099120180120211253796704795529464463316110588661219019193180773587053238422073723156242774986233028297501418280689163606142279380725194080590697591470985640015432970113602343979053423054358309253642407313398785088527201502755539760083278351421788267009550933168219205200720988152969945018926697558764684416517764790403686436060715819329350430283674844270203922121395885836019551917909697429624713820161366551827220020342282135274373174855337350253775681726485543481369437932577135893847383867752905769494630879153285703248961979046537339624564743512090129612152355677254708797640068320187372755772655287537382052671774318304951521965001325941122564333237146825677225273208946034886818637194926354243198393732732682755858368742093599543788559738020224483379891792591894685341425533010438201344783953646320812710575229943730060138983706078223744376880582323310565114851975025137829553896832445269770961807394217324179312010373016233522460040111596020956373774404823656505975846563639390472524016950629144732356884768387993299450376733874348616324865346722100394970275054520750477011091608232868071780166068269915180080909377162966760692028561931046403379753148705816763834292981102493706298632653755065866148831224924446258126137945412989345449014175238252393547306273377075548325766569686690683620880064795377264045512983922334828094994861616246157596229878851940495357295530400372001842659414175969065832665614339710640128928637087576304373634753298986993210616692870432248130619951485032569468667160834759051948731713279821470758474942078600512057211176421653486056201962480167925719026292102475778750413231766707263612288484169082016571110592720930544018950091801307474786978575728820534030044794060191080911883188773461377593613463557173143896746186196271318456597886375029816055618689785442199590953631561466250522858375619548605203646695567785024743099546238899534882759865791118108996123722437540585705518831136673772372219615442879468249949702882000064652857122087859891871255451696573395637810920892646633562153726359769604026136132578369917710078693546452772500529792164552649860117169396858432140741777519483042826944929383556147977786547597802964518067805172701761263410658299089170198534640573499975850614666767765715377211048094661354688482659464244739191741764267098188406597380524669997724338783900274747200750524544683418922364470302092538630281503395611807483072091558391132568604917309035885335291080306501948143261577174578519035593627174226926328903064068343436468735171121764418761975704261489469906398442537830193006121400103291754836307031063111843283660866407319374212550259594608840526822021805746654528642934038996571340580635687098769852070378142132677636306636943135995854190703436047505753787402620521289981494115978034061064972250156421456830196304986091462003307753090144320711509384664748308889169103465835601981626216412252672300806163006225526416395386621566437038015588519908593059261104998847702794055029572829092456000027119229466238723287148639413096679392969122902591061450344004120452322621135990274857677488466758751493036897271221483786801058377313902665494763764600286303147279164393668171981738510253501687813813404573075940576110645891592263341434456066282491873066063962967965618535132058695881957719755726353019705149561304814537821947572726129724430322660516520068703664101762941850326545838027112619761956366903191454539240492247010165718439250523641112747862480953357646129100845813453076808400647271007403934072767558642535553496353889886798539894761024672302379004963685658809972485768415645930339489358732857773841225815229536425577714832138806161042432170517603264883498707813884614904435140969623142424644044870726957605031731040848293561560024359625646952320133314234510019374273336821211249947847565851560220960258551459600997149428278399888530102162698326572055518497327305228980932853079533915530017702552815355869369306962982678823313236337871874346249345267342051724529015407585310445182363756988798515148684379822155354690359847876644007414217165008501525011914334903823345171633168045118321185122004088963379243637106005445356715478428469263732723359409736601731465080071790010399971201231413846798034752314646782766318463523495595984542908417718181006551555041254096771068741933092411593073469653303630297521311127679154148790018674165204245968433272828220970401868015854634540757638690935695272712829309051208288966988166776394051901640493352462707667477698261682234124800277553081486677773690281273505354699934983152981960677342115636295813018732235628115227561288153253014858344026071804955434793499207351201919812006511451395931999699480690240592112828325510240123980712107244309729402441515078856909692219857059244879651095225747584800964043025399674558006171503446477031191583059303324937394238238479647914071153963648356458989220948916719696216301198484625408742001198623087992562379042275601326731688853087828956597348343627560080384534537096104416190688257729235784377725089568475829484506039391742694465431791252978142647122890067907042259448447073003803650773855760190333378916278141850832510407998975589798403653692806459335382200529568133613221871700358679554629007749730570761319328670093920552003354842222898675865030589737239564896585619995798672143059936062189698983947322561873179548457707971327298112315145712827873892528337937091433712321385820878737040102703187262473033701870679396410085204696607816472107056538466517959929708270266531230192043262259594237323088438831565508038166428829090300526126314630494977446405699413572386529173966533476686336463254761982066364028580954441579301560955187414891310766857274741539778952410304983601249913784266007628760038523103639481109900396530069722048673077545847759472193071341767399550149736731348003411536986424012024712348955906761935836395387505674655385551199562621298028222909006708313138479874206479133085806327684753908760098433184585781180179944312466662375870384269183423894968749590218733267668429878137197506340957117459466451102348477963629227377691768921478984988793054800965900694740384535019544048200937146444281602044537583884140141062825701018333326043695172165511671744819505432873164351845706460904099445256374372640948469768254503070531667313780319401175492789159135272595395681150784601972449368461808114845190520975265590321835020109572922902471366912818726311718152030191324161247320087332416603846616445599207162422748447816025771239269198928774429547464817973341001824442046208793241634448212368497472363922567847716723452931566501815079682925112381948889254305628324748643580134952716631610721445191315225707233064100697496974650161060128222026046992696171130812919660236405512737931009541508463414935328350079070006084431880290533516219152455928898180024496158770254620156754335063899394953658300864830567674953090732995967458954442119564037689474020739120485195959262777857674734716596623137292301731782883809902155328151557677505655688268342460790718480033345244806705172461357922060926137925166507274419863557324998108031935584775151674289903443414135032251667492880445895164501667925791993354760740601042763379936482076192015137729063056328061455129576406171212838149750952599283162164228782857856059612535310120897401763790873973113121379498270395196377734411550805634492989261879749491599016340354056178383017725262361694075962138054424392652186275382725782460477395826992268038076044211827496152046717051658835717321229546320287517172100719241753232095366650551715838975507652029063301832910250219077538576237946134114202565353494127159513323373839426915316778445304462933609316817821552990457777307806834951461358278686800902078917731294131861558727079301884318974939261872766154364340092573226826838616863158961612683329539086573795544749627117747348893247402848639799606493036013845015067384441315676120886693514805564700126742992290788282811345436298928872485678016093428066276923228601051340534590955420361938683641184356828967808263395807051138599554999629269855531430757460473488103900392021018664444123341183562374569027389607271212791965866598244211638974714604957179007151385881016537547918506301259216826990256173312570011177515566403404401081907027677183745113442129936022891939904843822815366399481368536117457053428130635710753099083013442085902622814761165504541338176334024334809207351123423470403289400952015473508885496023506008654484458823227507195296633486819294000927514569715320041825680082010564797126999384354364532757517863348538281336532198445914341452134359328872491384270922947912436110735484651873803646498079456497912608120951369706189689921412627317170287616557331660945116908023074402139429530563519355083362601191305334045641847924288367827601131327012558109944967060248668208243950998642839922304153165305099218807218537738030330548492372443777561830007937121056705689278597582608859993787126101856091114924237316675356607190316786611283918092688262932211567126723571007106113371143300840564673759264421640744985359125311318354332408252578174486845820898014540841836732627078474638364011600448916281240390338735185373774445314946522233850269937675278225196459399569235206691402604957811738306919686326845067880449273955561556088219171720954754526897951611108346877230895768867670021220339244136339896137368930018602011541449543751779427092985181774513031766331470559220153561852066619565917474313524163917859192920001083299723352158101031176135578739056825215855941919206872069242146790879334636891423314749419978852581324724051835474509424564657435275551788568120441969161591777439977478750451181232365520850452748510824991747038270422353061050008267894017548079826745720462889067783682296235238525401080401889390476833317859026683482306860989795856354669738372944096656600217166904979309049795412850230274392464947492040379594578505404837084565521122953218637185460476374721742133573317587317014145640486704624965406249827740418584677711439753336913256149532339175559800959448791767799850682544975477064580789239373235001756376802709494343995596290890294993277896557842702276486600089272021429850304346046577624898608111339309507865454300613205309454702934326185898586566330859597395978167760571008171845941436094814191654149002697377119862123586826079953104087345726556621757337401269812716517009928293595093065409654583517910295429407713024164221764892191464395237111625240615374023839538678916279273926957945766735379565091819855984413064129853688539860804784771353125903626911741695804889004829333649526480961606237971846632814093504494676681163047995075233443115402013893925993472757965241229192853411880362727358795525753307661117274529894923290481100944334051736514539296816941267657180016245805426027942815119704395009389957388425802968478239295820249345112966001716539973977039955612243162224449944200023302147611284625041291915216724316501390360491563899764545101743078476159196642551436316342400207299089578177471717773994573019855981878823932023020034111289237772900809569561144865865601791154088473537143178153241742429382539670218155391197696045778128055288185281274936313108920242057014808881727704593464367956354027099124146129597224004306779226016959656182910261423535017569715494826922838663691253007028658617738842079375766190199439803518633922939146664393312047480318251614450811267514324500569731338297431524845710871178120469006507312140661501716054524217862006002649391029597962875517174259537743369171525014916456373328602619675111858728392706572116664925405852607229776207390621778167693431451646031293715933064267882007166402837866777259719033472119876463708280258405456874011361153191034756743510344944235801775757130199610642731172125437297978728158205494378403171057371621692474256610587135412502174998064841007710099532848587361022475233738836989875027588864872830595347170527988597433526894815435344003430053322033532406512361187578040189586715731303084513662802197856093498949583200630185690419236565890678805788047759384712339503845956306969053985042398870335190419372834593549403480324141969779124462902774755678701598480620219154713782669701286938675084395609924792584925969792729677265120075027190765106501557978146756350943203269406736955301340983141789071353905373890451699477922767143126638755730438990201248205217468628633395156016331841453471286507344732247687743976950401447260295465852831686292639967369814504880600609563113578055291205902725360965663067541730435438016992925382224486047333070712075932376358729222503959359532320195885521920445160698613761709791614746576262651470557418267749451326779938242768659224980632512269944569895472037679514548561283299985047389425486605637379765575686592273255452528180733219579665629503812238874204645346483248370682355546704749392866651561081205026690576953747623730883806558542789086102992520669457723511317981161151055890560044732170708959031340074632302915595827007656974803089654479750724621843908107356548792622075182682870531803602530631194757155228398431474710586565573609732394684944518920644765901471663560191024872450854163267200336410692822047623150505071922188246271782554258528263238015994506195922036102518952048694141114787900988522313631250933709723726379036352214375934257379715155103232353191346541424616839983820048815916905347598648544760968496332809640319046691033773111773011305017590042550342787928933416764657464560527968236142865138226805597335421268022747135435812108776767526337312926800921296181709109841769008788410577696684741752722772911664453989480547334355824475931788372152471722472507664742606402390507420635413883189419338861785732699625476698623343564564217735688923197372835371567166126703934551957744183877381901843243399209317700727557254767386023458337851518591379775393333865164894772766263504551522125961964495443131352224200913413974765413164844908133815338323622972892789823223820902010467631173513501869607983589276012561769656726852099312513290509109458103522620073423326363712879311996179609067177428736093906190161505788514654660080747229138943602699162011231137802786195874856875863879235481203500497177632315309804438339365809740432794137828686443825432554953840441169781289491251079179394948610656609059477644388819397755373176854945039573859478677742605023925362048337086124108154953371037285918106171406568113792040064229664101931483703514496632503991883861195579407343448311109041101157868363365308763218710012200802507288179625524670210462474220951634193479062462936119932036153099997132133041468109288192362652607557550367357446481212390026160392622367848967539536208419121569409484310509980540593596518305937343744157244436675395723106614358491076634536529394464602412937208890073935159115037764470248112828787220733957589206097564954550805088247642186030348146458535106275867117526934552857723568547573263123583307578002986752218698169158586950134312296451196886953029882442114428779644486512178794294009030649141826602251464001850754805680601842782554199653515147740763099057927135381057951671544839248826032494115499750913467905477486403402631507274738853748016034514727918157981410614512084649273750010477860596175646463660509571541461727518960754417263993929185344935777682786543878636581022343602990117806195564456095374492861479823038592641136038084059952056975581236969321108191187141112204770825047566099642721836412567282608278918260810930489039253880586448212882253789268042313676865538201563840686199082576623173799586437401536956996192026460272657608466307618245428777137681030707745322003654335635638039643564240552236344635362705311721776535742098934374510313985727003773397682860275971172833993351816114664195537310952348706689176575920340656301935321512094149988703788929736630670105908746264733049183029440657353287244443258513416467787965863688106963901621211824815040955273302244812815253687127200741904640987795216871202161766341310792139984771078865673480205998330774242199169933576005275436912618841380444858497707373204044660322118676968535943070623252055270973831100012362492705516771144179641119971092062824479422555353743102655269873666301423073780033432082324047458894263793320108659333715011288561216316612800322504863641242659241231518387553604450657710318786583441276495141602356249918071748265813600879027653520335750119257824010913853305439130287765943295735093756348192294901402825660696229333896322326689525293045560894438435133226491115045816797421231346153157786478773024119386459594328622181529230363349205532181480544117345004876819187848989736842946715100266153743101417223650533816413721809333598750830215828842801384502126591826409520714521000090151106982970268638216627505492114420690415077973978017138475315191340892627068175253784354999202328833261270111760389588735022435864164661816969619820989656143831699939360315883453823086362182953568550999558562389180314913683297842380922872363815571410387431414719779271648572993871754921166308217517630428151316485358839588163302792247946278369523930903870510312124715948888346801530253462270960822232267158043740150325923619209924378099708628987264473600147725647658582756029776667704008595294079516304817808939281962153336244790595222126518167714958514711269315700767046770034432164163122489507858789737818586276806563941459451083294655256468602889379546841915236391167576014978423857600145682492704433018413842030899208861831041504727886610476769519116829031658948942024088972105812956854120493003167422985511169858965558196071633278250367417242465041118918212667643100904677239723861889102726602785174262666542566365487984030789261165480774756151887719148577632630804957457687322385885082817735167624465403057554189844838135024630511827284124174220259349188869528361405113765865456572068080216937999568104663434132602616335070131268744656248404284254455737046828393443350246129051157085096444407307853202666585660938072897566346235456541579820522446710184732825008089407576694946936463508361938011144036422387524661400860716111863383567756034156664992641586743647403213151038061219475263976920482627592420622965905652456723753116970683390100704915723470811719082337518920848726905194704828680858577650476318799556159038243701518797561362151858220418356960166160175483506938928152079273248428904616222529722741240835629808590573289581909257892473373049430574593490465318924549869762026574470073298487593458050633003135548923911805158548638753276387044060900475250317492879525460488085637486543065925379836997953026528738959451842878607510915497226657398605295294361889553043768916621097218578492718166900158463147536063441525714473501724614244460083181948996207800248400536151680653227986210492810133151166181901440938451392728025302285908905465230403797927159280112433874643002100698333960038832956161649996615023127799334120837011142389251715409555427032701754706878892203939511560666313087875826495362192610620800565237067483333448169100516978654378130576665258858049619543920508205873586618811664339381184812078766861316072335208979185558747318073317442714954816167858751054155837290081407870553292417366424975196468144420691522012854089437705876838684895283018273533123694390575585510608569746904600935663143104908715115330057694435072718305311679296466937490687970680894964396338831149659676992716240981703521034291417048222395459668494758060200195681049441592804506083701582913574682171806100409060643948886748048114990775968707560662837408031048700446746695694567654316926673155062980316819539360803319824691444795110583138130722369650851212492409907712344457332918811599368418847582174697881884215459754217398087952272316182051546146307942996157379479548743631658452594927324566684123497938894091506665926080990583416485121594963581751346469312745091167526510029263172261662655680981963511742576635178745561785238878588166559006933481200548550183545439574275286945810377940593163268671374869715762734694934496725269911177527918495011047998859973634344215677082819680420284925728590229604044569224812157294683206874103374027748641905936669967755179598459622889079168428445681389842116297688921735360014806780283078220846936763104963412584793048623210667284359553660476903074307941958211230312313545561177081469239369303683539752107519625499613611812085877615112731693789129344549127648151197860093296914126801811060923657343129119662663407411782009597029516273592060067561044917978844402972223922991553771333150242937273375618399917534789750208729418198724105037664592925865584452280013260863318272761313393645985216884727726171582447833006211652485144326583154621731551527591266389192741019730221353205560918297662863622318153161639725850654872978491440976973237726530547025527507032995413173842876038804457245901371252235971065173014148201688046766251279780908468728824657520615771159717911455332769492593989397668404440641585228633274788350321637917487446365270397500105203292362824079674292457387962162994993909551796544940942789400781492644462138133882184905627696339200307280125474123564136358828056664067763000181774419473554265405823613666852656361566616319366606223832263949450914406014253591409916056367874841581733278571534609194182665975663170378405843439813141041384202469615853653889021685736708076251066347454297443000081399963376048601693692871556482935607695346378119009088822436155194684093795534352297522958008794291853142290010007190461141186047190624063812412017180684726028550734138622666416042795570026324913890543380375717237310937163824321959357872823012872156361465383894731099791579878114481047199259192467680226768491259284639431924068332190658802668620426037998187888005324528078026291901238562731737298883245992917027851109846393745398118829520461305669936376610494302425853578771600045645675023254398850057217820504614573857488102517016336859081682760947645428442299226007597349278747184223713762761462872948841179658028817721302653885403707505070667186039326371425468953244139986389209629398590533839984102615727159121515420435693107552341749598596378751488462521490208599298066419233096285874551885939450003304411138983442389662048777844181173010327903991496694489526254602694809296614991172504478214581074163193051153848520810257442693554675941267376558689771169232110261585002518008389979623937668408697904934731126170141276062564575133344425058644352202682568876382666995448285661571841421406195883925642431621292245273956874109092458797290869141719052277763481737910624317103013171841330017428954538123890527774921756068404213167484735900063921672683024252491218013874401288723017516869576111111488683416096495594365278153841096408704860483644702357241859675963691059751273501366119298570277870489130956137935596987117269836948447965122073981455232596030396961146337713330467045724551074466541267406493940900353374357719014221323480743355592826821181389801155206032508686057289079235879185340434755184152672640256256587162959633888419463768017482576000304294909882267641956223896380697444705746733849007653483822904384977870230384562482358265364619469070141382374817473745640909213334585678571427687845619068246068917813205072964629644718153559473878820427421728622884595517163106575913821083502221151521969048187794993511179165291209698530979207022991090247266174942439986377894743591764808729185113320326408079468951121121892607549731511488014076176323772463598603559707501696915569688165049354759645486090502265804256992902084163272711604244973725972218595080650079234569604278121329893972795053555739195235385305542127682161771611903601879061073133531135946889030576803139344172347078736067857355906084847792962735409579532477277417022385191537496803874482864528164686406522822826474877576671392050549297209012064585535131223353069989207930280840909723911261207487738768820415746446124204412625344237671237744534880225461792612131516105324900657992774006573713279579755760774937419068456678593739064460354714406273121720318797297123240869793163339999990915144898913174348855464697976408932908224348156789926348402429969288502642628977145571831507034962439225342088896646295780748327174733843659419028905054625622942678965623153107400400028457948223395904423258436732393541373943116866382576362210385294771386170366681614866497282203075529646289782310920150048077005249600214336165481613762628817379981313916521667826640298822275491261778296221699279704840472598218884351082153930637032014648994107359974248651521818790188294442413020813115645979348189727977315814532920415332395307943112844910571696244135706314471191687149127732381225470904464048588253281460384924551306440986744936755175767710296927785679227104462795263454000191362402492928065269500062568697235584785326645061583140951924868237149568911074663000615955671054677201053410170835249013260593304529311753952860530993814478763198411235685214266950018567193089378306827279331166482344259351170442958476593920769087827293235537349346317401152927365458812272714379217589986512991754852666544961353405038000058416832844274544301540461617797474752316452785044714401064014218434347759781843398756980677172618269472230133968849034984660112873968496338472505926946347552652029709735842433242176390464316835997930501125142454225970767838395864773931102003440903864774153958040991505637322733708515295289832991131282697526342465720878579483535676518948693767199386107446643093189221671063276971622519682915135326064042359444178555130713308021263395570077130661997485874004548453801942676195225500568953801457681889999907312613287966544629905859525524961358802788360503403949158529356797551965479357616764707764239862178653695082812217697677031066415027841717451982239849101477291307518904130354370852394516549319587400760641375073180699187280880052162057140457125006586107810882269849235421335785523558877620408088757641360862010450004978821687446204217547147991409513705039261827253262850347444566092083092923649004252498285623322405316075041884276464529969944664984224084068953958625470308507952282382676460122079848595318258746434842098524362077902500234555520252310660954214772720659733975250086346370316056151934323962776623476393831324208324392599810600291006464368240106656909402923126886267034824310844270111753251512696172476876680223209968959772622220724793489118444587044290596434473668931769939662879710474240896308839553444753215169249722734449240888097235911336379683473552062562149837292026195716077056247128878718050589194239465207680050694336695037566544311486696961658824362792014976151620633692768178037927611873232906529729186162888782765278348448219656493710834254942888124818528177292965983900263099088187250082025071527699246142866222803603716943817680518438335830414195862723059530956861427678977492519148169218286231768601430130484753245526825532188623459278242899238944766468799969592925801642888275382490074483602686346598830285255472254016326680888062680085388700994683285175242501250197623517037573455138563158651676644936679711885929413510972200495601652206151974839186248198434664692964684544560136952064690273103462043384338875535667193635042806448059699030100693813014200141104593312927586836851271656550331569747280099861537973780675818624065512928297663792957902962292383652572696050475527849295487619851941439553673063426860633867809007164652655562049294775296783544799526431160299603723264949105241904708288206914499131567683591103706098028425289719897962002518268084573630120000421618356735611714529300756790070740582712421522764526604951323019389252973176891678875705767616393310729451852578928196947342352926537075480693195807423590068559644321489095413647726500467743270624962088758821240720823418289945721981610498533779468261188800861283477499934751894321628837182661922034804566215337043459752737291518751562101784906519137927125284373459532884182977447212868282709972088353240771236639625751870956300523275495699669802126650099183520377509255628065334943285462909750314428835356120088062956461744784324234350349616620852999581969670626114391236108321357445820093556790856662175268212950489497316698647651295307306334549399778659926375690715526291059896476008261806760464441756964258650340449087666225393604216276961056473562413790472216335902341385771133973200830000340264839576974703783495420306596358722086093674518186999649140960347049781340731298898464340185703103955756485080232170806370722682323228062551020802872882939941392565238789641258312086941252389135993384096025491943515715792378487890169151001439060195262837366642792894160846884559500554176988561249564780629915259015015101190538858163180126570847891420000194246598604766167632129514853884110359814578802532702697930221742141892323801929027152487954005597594679872535076393070670554356546477308400883730555056135843349657176005869918876072438409881683464115117876860470220551682000015734564627447965707850446784687711876980371827493226483774626126458226217082555712558288836383099039610101126748097798374451540989748447178946530723145772111018149025670542874049808515419887956874686169973461890222192483909098325938030976645238487380449909539222902956094962621847983027217212221906957500516432650477750869076564393555719869966100956343921092538006529707309933534987573931711210258965741255715394418786227363860606788181672706760854747355958775681558072658641968465521395086005237167264281466732135251642418016222461647174585724924765589844262191963117006981729916371519071382318590413034432876422748693645642549023960238117442704574678055527253762126858668134632367985343539600999449084438569214475979517533700396302846023375539728575322892054338928619278234244048119305143440357178280439186771657886304666675557150174179717923231221179937394377878497277585815918368495772014358891746998246556423331378788542565197921513170847135627064646927402182992503607648030944447901407654523712033112743306411207705585341689848255810568578068170069864423067482639682483601966304947321925235575247609159001042704885447941336086282314957359841057404025246463145038804014500162480348682629361999408084052672033555156838740221000784507709475630595505169318527747173408846250826713793537866993287234923433045433542458941664976184649141598852989581849992183704952577134500470027621035435036697155335941070186071792735906553897668431266249093385353545049970964289992032090807049934679928095263351877391634056313729607377747925463479591137636583272758567613697932062970275700764603986212460078839219003831277773272470165648515987852425976246659749493951904875203570564611847143183140090708763060790688267368922258938153996004101780033247219448779794741603544438520033475438380732247591510217842998195811722550374034860623507248099831115940767834533834977209733231217484762418469775334248948255722339226601955451493217361368602326644096274904437966268913135475611159813639533680927137706132444013129759653105163635199711765532368207174408275659388385449273542427447549103247586842310641193107274420975631238836741763184992516893201114847013663581370826507067600324368219342158648976759817547552053627044662552653836195298038204923646692909549767923665431646802178299790701660827023238298764381165957787277542625573478046425641325612890224942768204432511619881759439376880187945891305296906025267849231656670862230199661290927304910309342416674886324857142238988479248934781140189377974238672526291638516564543733965135609542939801923087673701654893525740972883163471504771103768062031080249351201535400289279060931869457065352458534734095930801460264521256784628824966898550923135338276041613489657845230718750831573368508023331479014810410559533919050949692786376027987214133673657475955951858233011028164374372180259570781067349236766254847893304409284356202693000336026740848473100160660546150493890880866079635359740478032515878672096870605760240711902628841513957660245297609278212119010210048357997437663770298258421738803111226983058506589026645027099129921847811740453224677216375841923487179234174774131764486460597194441108711637903429477471166284868101704047224872582326917462896146277952832957563445402922699301518927736411728108592207680366543739943132625753869798201240154812085950474201673505484398485265861601452095356050147416214880627509506327661068048947096789665019903277859290517756551315966993198246751650825688694507506550524848020584327445651866809121492966180753455448060621829806130696599230373850787487833045408853056889604605514888159453924208538602829584591981981065699997820720263394448813903956926239886681822859542300317846322428287277585531856012763962141083288156178011740255723369876073314079723449067051239515328124403899594693599108376561677607174300927276501022210890028847396497150290723619976586282878125679407971569674683344124724123408952751453285992799966561967951220420375212573928979759825348167787815476495516502318668976941537107338257084346378599387856407908824931405934468452549727597367923449772992552126115234431201346808786029382967811246547640171034921664858363783375396487753229094735182117961693269265767723827923047857151270618599656519371197277031661954872059337750803732832672664558852770333305028540808803664253638871399910411151021026707619556755500920687152386141452649435563752514202628639795318470780426091553055546174710944110991203752752495268873732912881261387886775809521699888905232739898405322624499817199171461431667676353845401040634948522394974851587706853150124553077998871970867421480874328163691723293384826579353890581416980040769003007846524014614724481361049948344615992060748532733126183420682413359573163338339787694103164396948130110281312669113482215663008186049053340140131611747036880690451814177636140833696210572091273887124645536204220631280685912193326250741969266012349866833455493041978589324193467608804662834591001177861340007322290636859749168062831853034549278249269062133855802426140354662808521076438845001302337311798829505515288523361551774014473297240199403188492634887846376110361160588486450309366770307465931094534043718313562350753186575655085584403083102548191513808416656485997261991128576981391683011866694673283510009119181461847982256807101582109312621807068345748117672761663449875051536401203080952531612646770120659015497664217409779819737229621339728751934158574376851697411598489433074322718327927353747454747189862813784719240085705157885793901776686644561888156226141379171070208713728330985573904019596180438734283472065225270096549170679085981751031542972875196538902703474019780274614975586738407957414298731845561666405852398429478151956984512227471786684024077807931559248193399727521000415274936395865923419533254419096499985965281695146914852289062660955642603772745424037360328268210658263453325816062499065822213103448441520724574100268395837288292162113249547068514841498707629099141816472828121506278411764296170687875783297159404982842949521418367239558790059901968177335424927600991564321315644465168233965533493198965320828288399354951477778766806987893025083946126205938904487506913105271669348130048674436239072561790890085639784189242511662715991231695221220729561648673043266988641597747954924613168161438576873890232678153996466376848101123587500279849253111815947658105317062500817039392354091384999659985789158235597173467757701195547980762911531570995498459978614187451887054431848656964855879763343970017470114663680712078081057446911270035204445816741843869757403893792165698148412128965735747701912438935104373242140669847480463639206128228159294998614924659179615016535127554373849140420089744932947882075910921152236791603411161701836894032975501285673252589488730181313216580775782067019779233842606111650341759819886855902180052636303303049262898108063057186278372743378350329970808406366502429477810923923812029777235039202365125271985158149996758382496869536232631995117518783982302582302654708485138406010318361602256822184710338307061874949394140238952853592216673056746698015149269884196668082219483683758984039051362313528762405416546628044250420255604964310447349528471002219416540994867555168001665300183637873277473554118757320304117688445794358020803516451940642705265134523209973554765320717589433767067855853520238621169327717222730952222610325131578410180423094131158413420067035547498978523589662140494458014139652280443791819542242709433710085137808430821707759164180441949767645647505170393278065453262015863979688181112267211809324343532766880466312674992782148882458642696343006555114004922853816305562590950527965348949550765081460819901638548821905762078726962009099422056280163494895913077874733953662180313938512860661227295151522162375368057070831734080606671915526491257733533341687920876391172391244851189775019576549782979912857568315234345900903771006308261622551657860180041307700305953171476561018673899178515449766907777944104185169579640169726891117976632749838690250527724563931648782068291996328936530366847156449025059722334274443450520145277309785726044313783598597355929357965694931612755537317808016228990419862007257969219888632505451896080379548505962914972213578969800684230848555268701390260980992490769710467116493687033638752646949326459399265082079072901132685382475680205007812505383371069811712460925184671541058082025740434134237508256176966096032255155385194133890394120589153678903686183828166249429632014847071302419552771957911948319907060207392496109834728697007086066362124290283676444534173329472154382402316911759585421411393372542178916866633226099629418324458060678375672003111623279346680175770121919938924570474759804295943382055166122056659881923162801014706374467671894083252156348941777129619853102610965678278237678326829012293791373420903160349756691783827159008239636263899932185264322329674392564371220818700499749313310262739002867350467386405027549386130758655581923110745144854413772851847144260325392044802852138568893761795608316853871386747628305095437763968566527132430766116201618972778344242341137153493549826107195729439910847238936762576734928240876623875396137073192495977604338826634376811469885708456160511366925827976141212332945059689712267008308657572030560842862041692648904866423505670840838545170662277664705959151688306944578876067306647975328568818086350031520968479352016516725167476990683973183343874465738993817760688745989129978393694492648574138899075668042203091190519881952427126078884161245211488931106798702414926006830107901318066743706477360741547323588447866544110531079796455374412491949863278256491211901703896499239368797243156127746345617234088885199619423716952039677101623471348821836134278009969000145267939230048289477705106659146581603941050741028102396928687889821300314356891665831896189681591659910203805404913193663676851517860342544857526619881244497753076265799518752841572894286462821295545908383568665372840999353534416044228349916077004387211938620636356395130430418882891991232714994621652460267074208723729245476773573789280948932526955334908279202427894679085149924656857175430737555173709396551922497825241570354556599681743473356585375472607900559478112642956848742000311513369456148734038220844189888441939602250765785986889976762446242082030950470496784455451179913358549296522011460738128913508496541186476813753715771270983874675777127600340499350643713423505406457899558608665922669968757590745791302092408831074593781231747025100483989901758732560043207716588475407373837751544953156758519249171995708960309553449959558178458442912158686009427100509883396731720938096697985025962717570435292107419746421045018269626483865248219623895492320093181225706211652320702864725588813295571233693721631394863145577950661101204866816476985630767302723518936107386900377922781456170660197540151011527240703218333342789372334159166985783929595756699697812564085012400877600163912909424383776819733400661952773773709469632771418787783205649463475560176393363841016651621010301000862685086150757796972791750235375762844207823591234932653600069216472928604498938091708372170576648937154738932117574120954471158857892274847913887242521904048313670127159009365651460527996099528268021858572730196353605739757127678825360945767360468066384939780729612388643647307515075566074264502168912495804393116525121088592598576621294780537824975712487665719772167418609421947977405266466220723997141668424983343930047198208664419786808243076694567874148175196577487166629896743134287046942807975343832527794075914466288163433161063631526885419506916067628577029432573694023749330569427279638966728727163274734757100965912027497748987575350143391912508607152527230154622510156920452809016322259748178281122605209480083935890046749508233472271120025263326227116718149762342479185737512057373444850689306686343353609606740104313848163867691155770019598468950319370328447416900341137553190890521422425006913471553562979459823414601197849245637218102920689630591753783684088689726600142806468395892028738974025036401558217856523275612294672438759438727227780927721667828128219212138620425243000631404952924072045167971459376252574015843454552674455450223437046630644198382696048148643852133339525292094286599288552742330953977025388690817220377760658472025598122245976594358074149134607850709774169341440669071323881014380560599239023881930583031734017982201476766773209099289094471298966037344162188120639665519094992787955000531733723060092664099740661027897005079856721658043048073543146000521786151670048323627110531315251105790648043134875755639585574427125574648569767818251765012937138057247571653253956132237333073517160246371178651081129896663812383173119148097685214004664163411144390424855450503158620960536218452926046402180885420882463615293212338045820420507551792359733598086529571751000879015147702914833397656556994930910971498472613128058254101981674977012283778277746622278383468072926325537211783110195358273188710820879061996272712002567032619024071843826855229766065335478860024187123380328365153922917817029560716002284114298445782874286911602849797777753650910984669538372223935715144393185105412340549885885705111819516935968941460869902469351234783129284300938627878032224403842884108709372973320269347042834060135473883369993902461906884320266846104275050568168046213291647396047370519481054839255785706307899507534288906354473489019680725851336919748658011864954568699248533223689373604080453304150738039064354258132739983723188411087015831393679814958011415891815280243455746563335129437160106892630338017612311423898448517316890252109325684838988850350696072645396362789739223268113273353668271566321710432708597283040203087080891138754158220971407813489602184996391186366891055614058753704867639730088498952342511961141631868689312727857749310683905813583135170339845547685725027679623064086519843483206031406925170894242771426358330195835177142619871216146787069710648079140168115556853820374722808986204563788077647189858081820139905613711556783729530596068128601412100312318263465527772723915055745978519510232890689033495426386298867111469635480780833136307980320041442247207218216367177643636525355030417421587370498371010923195336031432841924263044337380829195026004910322310840056708408525375613087616901129882141221949490948424102668506571741649785293280690187379532694651595796592629542866808492825160215064700476340185160709018503031646985956944313453916928802581665611856799890690950634079617543741847544782746775475379724033977603321461459697812196817915160032904703708888771977786534830092699340265113141285458582771686826282082129966966200896769908690149293616803758848131911470020633203643703933217950938454897622924145094537701860248425944162867833849821136028167510971528016530513577331655622653670493691726326292605415945206459794215372253221859203673933647099308178911279393567675970062293366696065768078681624158674404482016771701021300250340532018926710058791844857440918825412608847356926853510222558490517905754769577185440925840175445645298983265428577313216451213595327071959535889470516434207579626356560063467549515869132248788958135276062450103609328632494006455635606932793726113986776817906347833543470067565335352753541747032152304360936136149165177928475537871430432006902135996201859083462685902485585763564517749408619567205232100521186605130467030727605686047784674339089213454915580152444558608824698769039683463644362673047776790687690448252811654716861979536374980107098636542848099120041470121908612370620980625101259002116237773248190812031219626585115794399422835704855407835193087511522784140642293617577397883185911245262086286591101575647993856132695488882018475129257485977942637961192818452378213257141270121954642884680359263430777960055607228506166320812047712148890663406481715833377434153162428904312499439174868935452376182688691354237376019454571476441694958901948099165941512594312878773674358768734355229290851420842244264759829696244970043768421278604672986250965983620958734408110251920062821928021993252297645786500068709879741267902710720182785476648723565459770077832492779222656893177834657725649723263410278304721515838519237159761125718862756529060368098756137576579396749141336502762221324970134247175186933205799236910427801267021271635197152864989300336688287681842333092924332216857939075713752776353738595445527618296728933738779701905171876064160228163916740632506859356712288242552119970987842564710239527292078201855336721598403848010317639519786038864022223863046520127240798480816522991670741728054318478760564950848211883335348754072434354356015847943370082457366990143892383735898750937197644638800019211553051987523698342441693270104193330017455563052346449907666509656252568784314896476652423475057195948065806224131035850766334165439702128489763085409040293531199541857924970527904924784400632741474571162652132926537297759207705293587233329267913613360369834068559335643999326893297784129884835480832624518881833460947012799853546741336427887650819826660498368836393104167785498637091709033928577830924849166305967459221941336246207844474676891551931088986114630438874744578465892764067407990622992710605917060038175568928905684362873972762250463270799414569697482889404739379319634395838296099168524465442230819667280175917298847846651975731676502052754872276179508043329290023058324041254669477464931244011478603215117668222730961678917128321530412511879527668180059287237280433298544877575363074135938297386819522359869651344059358902402354803105936584301751966383984688094319729626670695281010420141395907681130998404802819837423223503455166858944844277357590033715323833528100716413357545164206975662952861199617998005042685228634867133737652994608717238751854424145391098198309664076376227423086402781179237628968553895895447705363049120174449005902926566477232365597130563935331648127399569187638622695902394011569263527270021281158899999773320227452720223533717417658607007766240754704664431318924400396710303451784863286674600089574158017570265259787173857210574763458149723884361611565638891360643251590591862587916359160508495103647833762787669920648186618213636630383592664861933135345769320801597842943742800969783580058391558315886437029138580512915564271396379404891674887500299047985130174944651536410348757802836499800774365929896209512225723500604382576072168890111011372890617635006984571415202955431852407619227174350073004995137602810348647607406612618233824394027250061880354313086842351463682298126239384677794856118708890624523846600499637313364532539827215841107596478175903002967093510396710141628169659146105074190977145746425986107842671497140960028975795443594350212360086753414931289451331416816184871789497275175313550124274879497633138426884735330959779042833217881038783443183967001112831915747612021574769332762970808915639049340623583085056300486576108934808582469263179156067562769413910082464209136374575173743915300476762907670254715067116404065535330251819242896183889387378554229943752560967064041416019231319162191831644283262778305487056389071554473293509868107987231001968869444064232983337078684776745976809025177185894123346917341951637829661212705350490086097200820194435256164920825420779707056003759638385744708272282755128116040246436037316147581794907817086717905831057528791339616546307452439680500731049600098313380546983537104182684606540785626793402821618242926967407912310366430714983191876731288780310044729955702521257149191681463936307601883376630791619933376769855087177301270118772148419997356919757355873966246611270620098645382004535209343827555995540219034236997596959246107052012019151747070204584901670080610740926726415460431375368883489885106568595325145311838015130923661637821442164871802796983992281541240697469686709862005502191508236555368102398176783780534388374700672824570353851448852457554832763411279878458873680634102803143629925625912777906538746811730022547527259143751500997891761090775133609984482684191865657472820040365543170024752702061257521845521399001420057968297732095423543999570540351859138665240842035731718930567231462995879385456717921929213155257035113823993668646047527091707762302854556300940473203771335260086851513195778369385419224237363839701544887338703718727126632600435889612967747690912243518797200919023048464222573499587108638108306630046554947395553733056989952517555656081392277823534291186626570776400651910234726807749416961647626826936428135692084506117659788071833005128601975535522887991348858870736148057908976684303577141240712798692331741639724316827643317028355397506017923495038861039280677138198855069194798743763189169342738534367769550492586893439860153405275707442742328401193367654169590534072286415264556480436909211429288361030312819267635248837751641476986008566885684869734899125532970148342076228754867369564289860630522769954927079919467858576831260699446250662164426612756201193059834455951932768393004365951279418399449812205477992242034794316141283180515919243325516534915529492855036916842429086748883302820908900298316909773262346903451927522020634086156426923582164191181531367050560757333610031819627246496625126325319740645174728820583371310027188561231189927224444573204404395847277336181449770582975146895048992389088722767052315229673567934394019365449931714009202134748897152693200464745494944406252323413314485075397759000444752576140880802066479645360897915856193183201653627389342985782595467529551441864257505343333821327749103045158336928376767722813576743102951245549457530124024600228404032230435182275862329341740494302737522086083301000467611509655538257159357140647929711137726194096916458075978453811887596324548029665692020358226103219842383654664151307350833415052847672209128170591367711120120841629083855562631940615239093712705054059292702342019776568906990865605387878795623015975980668444304495204566740966012391951183153393984989869037072993498182193475507003937926945963644142205322373828351919728373461337101351614819681396772930214924307630362985481741762510324746032518140529674097931967210157791157463544826070668541556510110379768132187045503049375962926623265813460730540577855647848119966657119765368364487838205446906508509763113492231909420340647363014118161845825760722043586081991681095679672190329337631933083930010555642427386136084784667877887693964684077261264460085270721827071803400206773558662522045257624889912864390647365008764530261126319942318488743003088046025653637881679120451684262677573566683923104196833386731431934928586323167113606173391961065364247964533986117173284031351394246914699214968581257802457945361356596080654511226414353895753285524207200523132460210285704837234218547117150387906215464602691781398278587245420567954508905696040222721608166971191618817132863088650666953484748781540046836452948679871375459888505697466287061593711607742882189190989016483530262655208523015959944969935426881011180563547319608801908889389643375227759345199733423434445266174001532109008085335036524463280977387352383679305079344495281717388501868879307469997141094676878008350390622176254736217928671568349222552740751689455124747545571788936262966000102789085112743225035277830615618105156235424847408670052540616843265171497045318611424595583040124020102238413338274287061375686478451293400302424757401089478706493253958977799786304104473388332919738547894223161178315494209219930676139720364752899389264303830056477324441769378682261975695869524934719678590054740986628615185465244831008772850718931628262742849558459995290181203438306928514995395285513279897966996724687218460036174424441895922874071630493535945814351980008186001178576240842636764342060706067882721538880685712436349838610988002428190168318419547085393834721700247948116798284988974353520083273661805410033944749400941208908712768966155015919026513216913633420063858189983623798867300851982636782889413456357233537674803434851826788446710506685986045006979212258947496402805926509933618920826664186223640401106324466520794065209086491207312060065837991435554558350920072115728714745543096368694100317915867808253428191946811628363051270030471450531014270173927264809463355055086249004549418959600158659915651998283100985011370491611040594017051308164444765058004832170548745657874364597484043778705943168663413194589243905165305273693862279918836236437059514155261380083415887668650949721274050982481073737937392129583022499386095560448994281760071438648525581067556111504187029333258210079539458675775141440133665122722944675981420224131504914042867231561053597600953703290898679774341576488519629592571818273855489080032757617096428074898722913467224689475604707700410058028143013220639280938905099810829848470291590030384071863504248859986479654749713039464895767692204856118738670169388331291626431165001053395410004184561792671511303580856119992158758915030869894261287452897487488309778826162841350324991291723406648055879253884695358173748068387854757042800448320561762280299486904256013279062644311683741602422284123558802419033351000144869323336332124106014686799550904384237180719070528890073318791492944854965295812073973755656127171126245642811598153788495484898554498593172162804266907638297924355139501949271233780705784515938036022809440248094933338967297062634330719958006375114315002903722567766990113077438340897910131260072528565592461010182461026760620609602452943488950917060269580225522478667283824424294000762583693091818169405183268479570611909995698230690187558639178865359951794902309990791331605402330294239181140004769297210100519378757028078421052466431151997570028643211428533503901680359338210841839422245678637588038176995468410085029543102774288150101548128681081676294849912191224466168791072740199930608615185831707172824253679783441298170346990067818971126020194884362505306181380285560431500518041539839319906641459292598225900193777543427674042178322567267299579524783832115189439651542865112464301590724946706293902527976273060722037464067310201337270367434995406153231286584723421063865674825955957499892766287698228160150717401871933447653429799252885120761754504645984023932645599835578355152343727517128549457045698103775299939365772880954901394785358312676339118325820021135705183803730431527607190787293769476940437287114757126152489600014089044025669149411796175733827155038389482042981528578973137929722692645088542435294707959091149770507558221109206861895564330292701224090699857640162141409574458659495070412128290501504740568380253434449060300464995922560541078277005427171567398716432158144392964808504286602866717205808471292467725231935114775890594733791954336284043767355493837398140259289791628375630652055581034126797818206603971911835398230065757027265391656053835292961844036972623705349702151853659472736403714496895299935780276982118428365949323780436435432029843910586065377170127287085201914467160182455988683940283615906394506759740034319549647573268145172249154083866780407464654598077173776597902275889040836353693664314021144136498612609054097527694908057537441954938219558995221500966049921364812180241212888508262069480058477091592969986931008240623949102716350526779279739995665474765156149345788153060641289913096021686495884191464272769772201990806352726132006436062350332603899956482210814786503671067077387243833262897460636580718960586138528058858032826971960063233609062450543684800969295429131254100194620731980375387217037899578276094353801049096553300142969671523366834144007587592991373655558342142608160204444404369645587314713043671442343139393229735457833571560084864882696182471877567984517173698242896778636922159197462679285206469898515686024234043487747536872718500480242363580468694883199746406211065674212138697327782653656677384540318381013587271238007265502257838735686349672247428882230202573091130065145142403087334921502293997042003811645091006640635532292731367577543802666877089366805203528757762631231047847225836982374151044563971925488370771040490563473573912890981574850747478407933406535240413430614844711686265540083317681508374622606890026405217661669463881921938162504611706455326529104157301073306526737618958478322134678027045511575826120578598925622076156804081718640688307801463704420866026914497490326244630431885224550456723627634071336328486995886921903259170678969037092467677707508740154051429169387291952849172724332053660500190260232633058916429862601942548121943947756358654367509273882708923640074117179367034996201903010378104369504372394990371486732512364988532779583406052170703966106206405152241349142117713993868315420440171827548829221669805253230630500888979154605464410158427416865545325535501523644967600588673126706620164712517546052067134333344896466221311783111750904179195591094900802825093178811163026660096328717462643956535769093542006890871987463124074243730310085100956871052830723846551031291586200315039737196511432033996528765864466839601430253089988963297426381611627984369087571887006175290201437395826809510795967457374161218461703439449696826632025206657747234022106734043311750326641407242597750083708075182816202375995263542554998550967386267600596256012691026293729519211162983316667787352076446399557793803892632051434318727264348014169304689802817951696353217725433455082249743036458262508848643477793415957321053864946474183440919860713409229474224158192926510169764561879731961356347779867958941537658659764190083245986837229771812123650164733846800420968391409431988915010531656986746437419995127601164090795697859154949342594750228226747628425653181319621028864816885606904802030775286330382854580162182503480544584308626104807689231003152679431654284998370393670939212172017223478636860235557638384838889012796172922369368053365763638580981516375146857456467805065269464809597198366123802187183224642140198470921330658109306434011885607013567551414299092012647518185446948443867989744016038288558751580567556177940053705739877039093041998934066367659349822521699454048742415744598389082729116208712648352424788007927008203874879459139292804749388393116097154922293786552286981382225462507117807911219927621380018777871877592746659234944273476212296463538357806340335782522894110629601706445757744023326098181249158931490401048033195991002848283183085265810769586597118860616001635951101721162938599702186020847332930068915942029300175423074003052795559519885455104376842040208856295429772096469366243444485739450302277392828227805153698203306554230212855360914960551769001168809630952681455689549137903118263418208494950310388230977205470363410183589299231441651094037205704048719329447086068992101114907404516020755402912769346916774914332438563442164190466044054642986496706648221974858527720111996571685013287064224943691660402862169229183980484088195320790369932275737542341022065788577599940417590150317953120879896780148536700320146840181525162294557008687797961280766099545037909972778657209476652462661951701830054350138987686435517481605987991142228510359328853532427130062868830751557883655816560733440170254669390683263786302398025578390838539523214292934998030561592308704845084366595801817067514059317001335591139168511782019999596769791684392248843636188855920866536200144771494569110098944952362469246395274500416916493041438452052271480393742864447859687330676098297179889380991693554386011418468351972938384656482469203935550230023365361232606221661063459086400587244736811055786097506971121577608291429555069631977398193336326439797805095598740644895000950040775133680266181418328717777623396460989209813125158040684395263650243762610200369845654057378582802400728719223177030699526656982622096319152298032918466016986767805954102067214671042338456726300115889763469970310571063696311110835884932469327451019168275412804922186895618860067100425206979774316064403355457217917496341761321618260361925414341873511638542738486099375870481217465774750910501794075546664375133199542004795567062702205183646480273597188506530126966941213449234928152606947602733914529230406620687139564923916695455815286928544511306258232988051065777214149751618313088671969115449230744040511307372850167766734389284521443935189360732731094853871034145057892062071475518421221453824824500649122913537047028484071352369641486659247381167159440573440576218463534330857692420997845355234787711555919500884267686873252736371506101855531620365831705122019356221514714888417728845551423469462800122191204083282972173779166067592938415844154300941512337620142639462372660410149220478088667896341801199546654253995397167596020433822023877678553068105279171484285396025873218280227628852151360298766342504365233561353857410735086236799505891657877379154634288107217744640251566027097611467606898492959387020648447347371637307374357624059748729989070369477034507361299476501986730787669783302695689005229342490846308617954407460178082027233760729838880131529032053826438946192534822626795589212512845287955651129984323038804585436118115416732082388426699347191649288142745989489524210047018075386284608651032284610723769574159215857393054711097967264997570308532351854172270423533386002114674355481500147782759907659888012987188418802227182999653372191528395060744924717543472410770190195555303798602123293469054367154828838409823263715315174140976314184700351837477266500541266239227789162128587976431096162049404958169284536807164226551512406449273201233909797502986144465624651940263436759968422375473226710472966324073309516153440926533870661389291517552701239944110051096443073168673156975042729712516614306477917035148295332653781845913290527285130343471743174671889483056007253303524702559206036501751194093506561716993421266734499043585171831237803043728467383789348400554019052153389008984088994700607967568244232446351008458400201530798137855106504352536261125741168156558986433713897764779627472553112115923637359739132182995236363917664406881465972727178443825913828700359095291667521248390780778968303703785849780247450700588798539403263857754829112069311783629495059303027279312533627090249863516398845604207206910008846096865829759256389365346447184850523097031849676484127041167198550539277362272236535874273157031735069114791199800853903467232606933646707080569799971526373897342753457696356789033842474594481716606959621016479596137015207733431295336144445295343061010904840212172080772692680149971119635244864122754505220905820521787095677375330611410314532846097175272353121616100747186258670969403209546110477429847766156914240170598861336725432543402752905629970466526602343041444893116301096123382098874383731413841479802713523667329177761999456223545774881131846592404832057214054231399780364741905306089822380155073957313363601499240909978447018587860647240922983585021631759174446384732655074381882538474216331804668969181511019916985695788148105263173458791000564180140982572697503286139244383122108988510591226414059200512528595992611260818874519204041190260658007424724034585646047856917171383849239796201675105388929104963373873555735303243669464436605415623644425049099288454157274963067684036479314243112636841861742491440107318194149055718975613145197192455821772973499741577455910914050876185501288865314167862197579877110496688709612346431996296115812365683069022788178410743241368127424517311774324794821729905267822943039875037820582557591052254860720841796648446048369627095077163601999376656984733052750569258734093041372246172240033323792302248329251887049247892435222308726779920168478928434595647823080235771156557988425727191364036347756564632824802399657127956721579396674501827208410919444159451804074686475127964092731373916019999488602112787641935791938618268142064936525194492514224959424543496117744638714211160576140376349623259394530398452885373039503452617874347102460531736007813240723314986503537280182402719783807381942711350760591467613298873714922522402393031124375282674141705842821306841239305017030773657367640179318770968305834895882458641679255097475916704333918899642096146218210686484635878644523106190674846017056175107086236957946448350201785093605405132027790426442546225551724216219676689671736636315461878427027680674579834368429552816324217020557133935321563500258724361549922931273691023178672079054971749341537174048105278534439277605057173472988364741248058508657822273578389442548185136481556920511804860671711649407458710751725354479302760901733285413657553313068632468686756954060547827760057345171807201785029884539094147894984137078311897866360131494640583651312004214762258199908144861265442364037714012790079071194097191298263576553057462741554218631279042487388554495293606259706632256864866294817422487593552419877070025873674065136261709775320222382675300414912343602386629258713011127917879411153168066214299334872468422383126275065403020685530269810770955266439955783270618844677673243071558828258180567922933540805318770592133611211961854226557066861023608734418597907159862960062852449609801536079064241729350208209855746879657550780543730147325135445911253035293937353016067216068802016652795786436567767927835137426437893457050544278266747216799292488253148970750356013487826289250623046730635509391805200053688709628195890854591794504712579294339884909590384791336141570236048895477116065221882131882442891376600499058351637060454003059786655328964295277563467144998869552230040012873641920042368004768626949924924285256485638454284530022065074318177232488451559239069360148158313611667111645089350808492667352744735807490694315844859589764064948301909198514448589090050694341181907220583854972884034217790503332366719502788284277112964019412162761101594012415298965953126891044881869673519548905106197332421755845927532385796246333886841800027238657662002087985730282576859047946294896444859898848069241914878665590716968197955703475097270758378224680504991413761877592060701642160141071899535763278007800254783336100185778799168797810666238068005437879580004893299228777694751075832733262692269811909077943603525280122153201631272195890652123671754606227420006395170945135328440252734720116105438918632593257850698895021701953867365801831328898538992230509587244578635219425800936502222043581043567966006182737196324765608980967649463081660252588528285174463322483386553277163014900653164822253785765910287023275476252509260410989839544619444157898636996179264781048473070585299617317620162271512053253097162080247654343245618858643124378201306388135201769147995177823946842346007540170768345193270995482374365123115153942250452035884142858360131138618901048056162019036131495035125966984745711473794817833668885732229224387758095096573972018607452191420826009962807773829189614610817459395079660161754705544911388683724985045480966524574774591487954432115733155626186229254880120959987771149249220829912978497035107213485256928213333806925343529985481799059492367087958208792278721416713476112995721964478136642897674510150193831175036054500378409748615428368238351207595093792779416663354605952410345213819219795155013188748460889500022636034464512918204041068465987069874911748547481353145460960053844142671142166701613121015451507558205411186004729529691084097742611009160303953714806469704045988315834619783537096855343611713565608413330486381033582673396876925737295186415275090346865400236627258642330435599048026197781745960759593945127179014568300164846003567706495700736404490662853623845963442951029544856280615053326952191864008515325999097372856570213672074357652385972851239611441419857847813442149486456574642144377588454470591277691808595208031706504184544760759768482627409805562146440510182279401739501829260854386704131965089207522745068298107713055412752151837439811855505816243471178870996181061131204648301607382608192065640671635902642682759490924906404602955244517714373112094103804991905690431190674626481011009194769481657980448639072838020824888650176497863654398038044905076321303912433902603632988920843048493092745760448087816749337965339441467529599412699815114021876668095955595225083118274733113040996670341630259926010913475563668344402361023945095671847896307360369264609621028449740148659438511873092085413505537522709145085142629497841552481545593533651102161177705516035218168852170289289267723827989561653498156792072454508792054748256883306728472782590291072212180178220811357971758797612014123197931262722241430273576753844373331804458367769935900369777832672445632691608875271700635250905213875051370847879776752326958582639654613131755790574612130009899061532627027150260799559944215799008595226725472000226616092953661025259890072633646047733825439842512941569016542122407909725350938706840063870231910256405438566086639988321348718059765408351530319573860251772572290457111988628146882393544805263634661121177943002258505689522542732804237620796068915772781009823718815701834289997161424312539002362959698047827031643448943764174209919936437316510044917078275957823082492933007235422305203060392805336175344375918879869584638681752848618681801852117295694616157734536883278454458032402702285534082800163841726839313700556036323379565902106782454194185183945014378936169721518824954319779244177362391637670932648946777959812605661366530005311625008918784051264658098187662061276579530262774594840089599386765964608720412510358442218586990559399466861283999039654753460153792708545223126301047087179371994744068829337585257735893704691170090812240745629546843723896261980296159162283944995296269330498039976121873868065377266345198023175614408036782763729208372355918940944230991102230094248032210314199183616183753440127879537136321256263362820006621572671941255494821175651592960920436418298781284492184977716026768016105591615472837903982419568172671815095067773404825400088245148113983158228534301601368868811130384032030218414202173511928990510065035946505404198504153795334305538011973332504790111745492788680906752364445803117550368180940240320626979757792652178197012952903551696524400296557128096370860396978582011906610427258547010719736050623358191363216175464619736194640945139430699376671299046741460346979788290774137299333338010998127775752188721182731485676749876089480151164473878119017262703376996069312861571765310637445144721074808124292422219089601597017254345956290552978668700241708904418410236623574235319054343279681450940532743610334154100762177440571636616601721106470705988653784617923268615926815038477875276361318319359025150099424145775593027557713716202125046907067239018912734654294003308840015695028070882086803369123942802504951096797771843683294116111121254770269753801775684498371331423517058979620573518461166748485761519711240790756337106118258716777313777343216303607534689761262920150584234103373533426203588978425610141612572591715551614817697853957691077585874365341835854558008668168628962172236552850126756119945053037520334921495345055254724355195931218156346722543257582832617972440376082456943213315297468565770498707915492950895250068098295605584099862657191015343884554493914918316944383678037815017739303503412294097602449660834850423853104830677762624461195902964171135973866740093872551824910512176490532267782562249194921671379746250673919802828750646154993456170934546403234729556775916989401178759041900464473886266744664659871833089139574354105440196492110895786157180398999798997727687282756039077878646909148384837813824625600964953115846337878579777732461480881139838726114263743722383271173432390343319487312543447251519631424113063001831244075883624787134933622917062340004667844269757953391893686356890163525817307323938857327895092963542541708370430320273680048737651786517484932886149404693674936861445324887798854499430354359284660829081747492860810304747123639820710111540522064588520886210535020074790534424779651359425537839435709058436741412962899274825178888433503702572436484028312970924214200402526438624862613997823202269556046250827395329986319817932705842790410663610654878005423264305530731238671042896335956394294489425474863608703098607521155439151887558439535570248698225863142531526870683774259922587106909543603405504245775779658213714889613223661734209786095824235444223272080569834790677289481495060344914514467684310649242731902275827528131640436008525207392410928350808739159643627397433661227657889708291080020534658333794170064443218729350445290466201152573196628450515592989067795151917630830857661750558284645372429124986509940546186323408010525666811264173313415730872199382692041906261109892221155086666639002074751844018281673698128420496255024313504578715619003949457560102661598842119107724217901293017055025966801502257591605760744270808998146436351410588832124873644753640768329070147027855022552088586395533947997459794736887975703579673679733253390823715234047011042757494147489570302028133834951241497766559920901917137397476045267469076425238618124024716577952028438926415837419586992484623278824801124897640241212606533199320888074119231920684429928099369786030891615725662177287213340949605911152588744986777692876037576572153013538450600564028312556972062912772514375746721608942351539410455415021274070122397793722184079518199392035698975050321600285149251085513478729231409395542219372316134530301216752989941040001777926203810697499790404734487519578789757723523655118961299408433384339193303245646245033533965342637249048958383474732988921129141072632695530284193919661245997041236551892903918208920267373458695306850487212002359395855313625350295532332581185640170077816025333632318270108024164202923554098829119740295855137016545534198329635749712144023895911470901293924122497073929972102131048873486732090678054129738165206869885968605025564323049611907655832882363781469581373770831183691226520655508761797237795341914853474824571810647755853147791427213018782670720261991622617868355050329065701352386548922299882609478981588691629261900182826916590136083104015231035038026743546757627651670152729989941033095044296548702914920311930119579345597292103897407359863065706314616162445320398405853571727204149273937664185517712825250249168746727080405452373688914117684144070909304770934794117511813389901524803515085524801591781485069504809672541096013161110051170102654585760636329717976336832753445095697698716807735686864284028258308439882823959631372546104089816482510790541426139554861137594903048572152491831199506033593098953177748758025696411587202246464877291600340996115593224328078229490177393227774951022215716647680214653951449649008244370527272310658646297951064643143031279960293253220846347635153388641804481376603710502308256446924570854623111811789213488230029998809528312814446753814440647965627233657357703576253414856795726748502758501026647922082186094240440578962000189952915418259014166941322366474775601043561729963945649508111685406008853603249540781270901746705170145032593459657214686428031912597981763468158099917906586132403477294409141637367138306565438669179880922555816729789848733933826740689965269234523925582933391406380241458146532423372925665669724886851765450091507490558635113408769594547445588665031844064082725348879894942686429766745791117316785216530462056206888477262542846041291014816155251752986971785867732174132797343120561707325922429902711051807108285573779292512210728760230326614749097329009214977010783838856880842868232394764026013288967023480183201180186650840857784602569343194931550764377516283928392517283779379379497221560038810387802131774937402668357738076759694317857197672587052125186471066008003174732670878363694792184938201454033969156844497076575698262940206872786693644645454155521571379461994734085437887798523252577365075744244891294793450454848219981658423652051392630719747194808826950492389662305540427284678149746729417132987701399435534173843289110079109724092728321746401250328283027120818146031146296873346997828126502767598114176971786881206913054595937583895023121679982272141862656989193927610232124518304308503438393462043819909630884143870700602072889601519532186394754157595982768690002537372073632991467940267187358507538682953919177408475077241417693961087375362576019733092148169746126781926637223705006382527947961744544897159413824732617888006504549448897804023788652226052457712776629950614313127902641116958133466281056227799138037333700115673038782642664676519493797562400998823305485548938752827710022435876606697591613070586998399219620186908963506180287765086093870454168995868801283989559464849528617107081056893065415623906680375921625410233191293211701017314735250434428121319987495780373990288998311981284187194395465547570320477564100693952273576438799622678169955428876682844417446948204128811538698437250819287359230725859713428928304876947850714126014588509253433242482503122485374952176796678837369422724088936732661453797980970911688907190049588386344221027994487625682340426864636898348678767317613724794146939561455205254774646056424968941568077287309880469703820809993874171773536621411536388798711910688924891473011299672546048471831484107427526966461037734048428856956899591584019395914503152209736876649712261130639605782486876687267637907349829404187005986783467789539942115352733695741058799006352548903748233429219491155587135042661696334779878246757407941556371176136215198829272983799784946469425983176898024393780330956735428339157659786352549943418537924464764032146719223563043625475977142166012377626566311909843977057277228810761722820517871861258108088676436920997459942419000352758106154829739241431993630657949129322210909818431776252078335437042266747765696675261532865541388535839627393015392630383758938896854724174909963645816711147649971475724134138739574288343302171170066884871057992568020710887409175374788846988337681155436886652821586883747969688729320616760349509742228259251068657390567663442131353654061518294180026836139001038953338268799477584635729233748338905319002883696747865974194218701313143259849208533634379755420131928035935156529924209542362409122234894296117470248242040477512680956762674714982595718276985152128161653620745343432007365632227494923220926538059468277544588019997055085207278138932532670731385417994613420556587071429823671477287127233703080448293131239282770546410691847751777266352898190191508083533461842565743770803169501636831579405521516792093262996447480086056877607844037017329608499403655231853084105564986794935279624132638796488474757787285795196742627487323418389866452750782077573620811829116396960839981437451332005507068875521974637372841689327582850389294745030302283307869377473337101286305788528875175871545998376051113289457014843570171424175914246961352436209031934834399451057657706709392012920736906678765579505162113220071556910188030394054221562025796760858983886247270988082511327688287512367953384340585376160886574276090670910888834486616685076628714511397621240328555501252310912870952569680151868613295971659195545711913224358077218415675702681560118296388133905279357650667721719271859831737931603446781149663096033712895748747606809339767740457616761898756685666178723980366081799869818928004961379896507023967769065388300012555312000223616329929193384516710981090054153878922166307357473550990985210198972232237414129081953335296523219571474045120030617955108098473935547138315864218942255329352263382103131065858062694982087973558526988558849009924339264553967714148229140060840742240703509557793445290669861498491593059485166673601138678358984183880049775992471566793915579407406243419815137441218495379871563001755843078279774543829516331292061597124556459886849726892374108808849549925910952199415960619952501199855230182404779427522916699363361168281605030507330864182777428061219578528111369641349825616348022011836337564640050991001474689589666130701569262502467841583238379287194979329344595141550296597520362694291712358185427774210743409000244345489521753566279625892309490173118265612691528829748144554536555884079644325559304518911574324083366473774867262322161145621987448435244324491640132791942780036389542915755414229212245542343983685356589333906238402930831314586135552510860120695102471271464770744376684740057033012444845934289236495664530220814033184608634873270725704517596301363687038522335532238091431089388062533353497126838444632761050001515462515055467492998481260761420821070548038724298625972603226073762415557162690305520544930054432721951864751861702052023413587134596395275949511595212034923736041442032191380745587374858525058242466317189212870461952865114401691222290709176246047598996566322104468464415231872813284435436650055374854735925428910665989854113008906114878075593561115665630760762955805192862749053535911185741615110484956832518283058878077502574819970142348172965858953050299310501747070621566454175352379677107841475160404413521486811072386941784668159037433580661633520938830519120006226269184203131271238421199184060646149171184573303425204798632227035634436393647619417868763066260189441197561160605135888648860459815127757943769439754743086189884548159687135830848080792492728093833801564060875771358256270647428128756942503586974274300638055819748252083586592618527600614406972866772907713697823299212539388275973423649224988740627985387509825238376440097530408147427198156680492712848536333052582951126766943022595999448299660739739341255234587518102252460661338390609136599818903473011438853773026214801437174404401180972063046006751669213710975991183501064355946061390801294474345969736483570709205460760657659999364566091386975926455696509650691906056930999920530944868492587058970032291421196735140107657612082136825061971234201249639249656733605015155242860272053399149215945562570211073172650086679282796636391051691108689944618110157183212461521994178955512653844373518754223115804957472616350258181319125069084296119429936726101674999411696948047335186883091460202083335959835131084100675517739308043710597264407466996411730385998467006716508283797248640582911297025302110653929796931156528933541644732620336836228239215627695081631978536632799723072631594602715301641251057061839123123881484376713821769798777068691722721029723182298445972690104938193092003422311735460037020947192149479752831715294942275600145033217248120192029527120204388125595522187835099634818384609557594029160944423440984679621512611568624421771175114525575033202668346834635704042152289635493509653968119153546351195179043957642446092659800625253930688066640743442158113818289891944573969469923590254127255624642047492541606261390606805806291092017667267252925428145143647906069761520497321707954125458362068712508614707781701900912494126918049505892962253341979361731189485874595187234689080178673494972366627651405655570239162908050961088800448734663112517029752140980417154005565165044180068993207826718530827524816656949634753451754083658641898494064567564564690143486810346253242550757040203788042379335779178893272834263068915912190105343439124411334924418638597061489060028254004910601714825950328692648026287734816701350285068801158840301579865054241227579393030964615926397283020094415882486357277402512450720115470605150436545053278084592965086960621015999963312838513847516948571021851827890556736899192212811236236966366787206778825939773304489070550317555661067386553938141163600152383293330669396928551523583459336261487970233324060788355911236689501443413690543542518483440913510475723286056029076925835817297265051360811190366314410139172747811733597414031489572106354687795643998189704687764570759989436625006437971547848381717730218390526794026848530868438715648126970494376845492337880144245695355157338398699786859210631498787866864319451469519599689120035945510855671458200576680606234998834362919774281276073813463272828961010460353843391984213411383818005694812077147708999548906212777953958704771472376869145571482762904927897933968440335583241805629093277690696300207131311749955183954785658541497887845533025520318698271709219986545757783895275129559127139709657105452594774108937534877491019118178394561736699417536554639113956359720418529458297587423223951780425157132954639367240829093058690566391987572468927047275387152568207353649961868859150911438154836108418293513561735650446874493239805349633627233716419404812542338507716843504269794444079425633484258229981873361448856597345947199665273970755478933637108439061302932825970687087677956387963493592691115201086035655119703771298643869155315873541386109670964722484647391966771921916238220262947170527459864858709428544666580705383242775162370635121619587361004882642406400132348704704465914319659707401548368849552809724344722499285179628219390544315113466892576427453840851201571512700021312946147734580382327866139182774699398031422498579610501036794443593642828247594601608076538417374468423825540592272029819393902487041333203887808117690980864254654351626016874085221794212036968308983162189995694908536900414857723867478218534260635279344220830612625675775648558392615092662653966089311442574429510838461912193508901144153501771963092880897632448586606320471946546887788296159553116538493047085943148758898563159623143851027578830615204306890559022404248641037538101397505832746279689913203595334870944694745655223079935928924220930458131780247533846562163374850510815468304311950342135164348679879609500993447141797425176005345860204306769671122169860542379386780308717051520239254879310511028586275912572977627361377086129821647531134657116500701104191288488457723823578879639529208700038974628074485975447073541420526165877334794971778114786686994494941788234392347945979521308024908932703029555431405531261430605843867624574693444520647624312890048282425252678042759259290682384075768497633496664345126477023108543497414736486049496605189856944954754917178053551767738375404803073145212976946940538698958425452385016831813855767208864210359047223412419063563533742300508884144453785860523785477800882194234170113481452098602903378388914890447444734508889334702199291598779757245986413784184176756245892975557329304305244792469086839200587380584223393977235396742168122813857858457761028588752628468214165631263306573674134834641376017969075233515020255410962244944335986848684517060156400409036592108827956936631446104762925710633485191886547486318441029252663889759201370299496733364763813341799196060628495046796901611291714076784604066719091116907134383834030076520863318483516259963657614813308982207580361382890313098082107043222221904643331832628341082295880325667844450375264633543792818953060595199294642559151812771731570983030780528154885550466206172216142071324155108959596439492676980919058634297034088604873789913349016162695860272660337055676821453983768975760486169720952811457212329660707360098767493132085778845025550987206775806043137418452604602846567280533433413773937102928338886799531140633607329344929624100310285454108651144163161126203602638729118990402531383668775706092165853440974241505603159917547340935480585246454445287563813887367430346329285024978290640383219500100560240365427077648550018615506039778768354194516218032335523297752195707875844292445219496253578767471209694625925370720169649027294703025304083221643139593247163362810316187995846081055831037694391250469986551489628687225515719768199892055953914968276224098677227606553832726415916661404360789151036728825337525116197263824324969994949653899427587809037215987795530363407627734983764162663460274342070562870687181531945460883104908792900158696664604086730810383231073589790664945236101713298443642003627622934802903228635854260171281638272860658533710480609671622401593473585553271027515902611748142870044287574553594252516458814270522707837920719026524663663436660126395695382329143830048305597766240951985517213450900544185974198625020846138636531481647753013693015662829761336538086242471603274664847994497913426870333690400182938809415715680675076827697567398535724109836403041651964564480832802168470580583363756337945964672260320525759296062560863496368278665090951595931898149806131792198146396151788080690459906746361790338010680255073977195737215543435277939875210862414584684344293424850925373372606960110774639268333241613683296728243613467079226703955373333323010942209296751785009348579859579177323399071980532951478818464241573847092515302308657422894376267107464388919463826175008216868056363201315489113153764879661859946599084025481058271654317026895178429986527759159645435172993365323438511155366156658344281608711358448145698864782553658469272935650464433500474955855149463723886643856571465300693084654073464311731466090870977133931977824071899509997232048346197339852114158518767215381245998669427256256226755108421655712613157289490644683903796190276048697511592387233133686267030573761003849959971690981492275863088198309377941293683316321319975012962632856524692758433993114976355298045459307138532953788019131968801960927133129541323718136323932975783143210126811360350001857124173154417673059037249890584144084422841702081021328946045399616409167902990533128843663813280505493350048972190773451309433936561368664972506693899396230359314046905129168255887806222850588716606964398782903094704778249970161176724884378709272613303310245054126419076059053014662922515194585344669696168510880755592649681403406641985378447184900959680171055148961967560033515706207740560393081952011006159189745234377483256912735250916607899549397042813115406090150762835130180238602066861053722952773411346462436235492585806061035734927965327826716705156356886535440501567024045228091592547114930652077221321426148985227725550903257250743165338425148869107769911279665006669643694892600365978463244154119961616141662526690973903920063814299363965750151250803843136391233782644303341769878899316246910249972455177601392064050444764707034850737006739406249052301753140437944246117923799869108098638035858751385856375175970200523200780760170493686788411916628130512172597155437348682297430062710340834995542419712442803977826698637336450509667641902664594023612205259404794400475871273980454188984520646018211163956636954954052128850256864419864304289303202351864594650728999087038381353693916835153756271893582708638657506341862559090243025318860124419588794739879109058897470080557178675986767145049385722339937952141987475790558157657401167979413047240252607794037342770449921035063955626276672406633222517580739014323881486489379620942785913992663249782051409607129346804851621865844705440362180936555890835256670615199115512895437438017462576087437947608200723864625818277970844500042213247064130800852276117706182069812209927900600063449335693609360692001738513470126824501832835959263728536148865619131719547886692960497974872884307328364775708106344902080975606812465159168901568813788270703975046538015286096158438360559603195367427310914434526227256356116966653301509938345080691949418319238871458831213096919996256183257137435598791696850146653091660127235508229801970321679161016441138287278753925213882883290896044306790305352627272425886849085816933169254972487474847110968750382167241946508341869166462185743675522566734950495080895833113550708648288332642020420255951516573630952122132743434882930790128872047309618477625180521079685058412939012763336330753686505838770492365500838544060314791643815260135914043923592336829565404797763428051827547302154803948329423849866828974310284141469773522416397000500665878042662150726423460971636759625273368637048688128635633272773003288980877442804814748332086148819608454059348218007801361151594827363221845822159658486583095982967345762794866395253085398242404971242429670657033711302405747554914612439898453867055796168298039161662085864750753184404468683160508396009242894761797083472456847686576344416022818126002121251372150727638303920889064927511091518255756334605948457758543971209575942761021518220307214169334118507206010646030388328749106964747221856590228247104369246446698810773441169747888393845116620686270002952517421729390637913233260371734518178704974975622215269032229076485020435365969152963276435480431457400790990861438111963216426046552730341495981947304080339766063986642303928400612627847290856872403561815162988730005258847262253996754511464354984800724770741126162305698882142712553822821488748045618981646528501036971511586999541220424666573399612613839267322888343092715534314419250919562325531999774726811476613899044307454627677771996527261111241602165092411747352156077674284384538948116921375492546616627343135099327975218900733258025417015856395721788462326288784660317419295045846398388176327484646666730356785472118160468284849472121655449317895923227697288160911273358581702251309024992274849846775085017428847102444364984586955490766878954353239798946913374098160745231229702102691363508221576542069589156255627632954736030964302849982370062792113515772751548980147749575728212567939520479291184873982567504064984273361921969968452772352467162702935791526616078743979176828868557792991164808038487304022376334717282338434424061700594195143476191113470656910195281974399243983147192928328794860755596017056717091640443682922050876425033211191675316490864115100143816391572603963829126806252334296340174767116032705467090572533668587206972890146110411430282015505325118811911444240330997921245555364119881542176998180818872380999550697841819068489226408331937056808156082520221722477583549489002803339052640727337475486299076089182997705493375041161024118024630499304425452584170949578199399349130411411746335991399926829664614378976378832820154584328231808600794086359581833165358799099135323734172892334113948276577407268983270770566619245136278785129114368492197247857900667800270586955734644225969094480865391380272611292788169835619349526182432879983109771859469282382326873527732494505889035831242680688000829914993839899456203419398573376918152139842278195557993943773296288760632719593488377325757708323826493216692588868972357656456553242613037894720445059742660359588801549458586128465529944452947421688512701538146838952949712814422623368788536641094070385672698059112694304788611052426709320286967824828834831093392478977913965732171827579409552847849796079852407666975029584090356070692558651747824015919054469544260930702612894136722430585746429206565843878406201404872856113871964719737601145755745142072275190510618990850987447437121219307091171582696381275162816444008974431064759908987596347096454020181141725532182605665726831307367228195260617146709220382060803617383027869056994396355598019133355043739498038104526532310551468973383655639585451955833903361337359222806245842555743500883230501492656115850549622783898452182845837883803887800535677637867875089331535028182092919411252755938941284870633093812102581289180432468226322256680964438430580047181887286847380475732150082249913919937655913563512842662034690863554393201253592307786408822542762493600821715075277472186802673438203393575179856142750004415947741748556401049175588652641283005744123570074002640907680134706085634147283116192979274959221323988967783151748589161632736635058195324015819095342698301314504558410237625987504950711417817694163520265798593685804426291217481177325508681001567643758509988975633466279239080844338407366362108652350226175221256479754304788927893546758505630717267974525849959374467613055248646444750323949249815627326545252706778444967015759652154676980782855622211800022892756487390934151172329435121208891214577843884767781805397580474552109301980661156401426455720025885095434095037881555120543694426023893099709814005747087977075071801363694784364871633677510414421485705031281287206018376269493077525923469251584116922245180689287544621630135267567735074420682694073828333157084879188733612234709722776981005044740996143800004747359358324838056669409080490210547889054901848734605933313161164109024501738086755561361233853246357483855396110219875709303560066125478834247016324698696514123283673020300007799007846821690755055848510930568038215113420182770467175711786706911000209023050526781779255807971544273011491420942976733816347778074956311323694092458456507304486895259656459539939507531712311216834285456091585228180392624667650128841441047394750302543871359217474265770539195176035642275239120907442618911071292245819816477450875879575418563626584237751701934879785069568087944106220536162834454697565477729675378932426269768857602135727755366438921402375006060984541306394212871767061790473802439554498807899026774593769509329623691867630287656273400413774178384947157841130293642359628335555992896462107367957303532496563836653401247656064832771727657786973538441480946372067261377387574059856580580037393987171257989352204558678249958478076058501985233031048462538715156937294815816558959658886869563805443493516927543981365833177725151506740185880179908337545004662559314748132818058680557652741556885876860981887043872010337018341848570551166505351213564336928352710892962594570107959960567628605013371025051831814751989214614409352370918049706942392127272234197463127705299742349666498991216366705469551836181956482139388102547711128423457784737593668674472655455946498616194443414688771016622660845290714206791160070209970152686592856505032937575883539810147674166131758659949610320562621677796006773261398622170330530041587147386478484458177109663300238090315185630962249276814549409318734953012156433300854074947005478365850168337669223408034885117652671938543869848830376710152251656479735169074109808706779601864474485933715871106064936832818942817100380501735159485987949918930719379646187462958019203640619936786545366425533003665326776083751293864391243570845107262805888756082058930891906797416684909826897900977337650309262126249062930080706587882185394214918256021666590668918106238036791831250845102054647597344375233003271304080200530631882413397251659093735314502945170499043139481646674139940192466456588601459580528961379571947897877054385748990096651946180770666845443032559999380247453939864523134797315868120451902309448254993703585321296667196898591099785459183246203018846412585005781984711490622967219873790313207726032928423089331312065891994036555761819417069409632340740251141871998117540604911874676195120092797981585082042017097542294030333054893492299451814095821888826274102864983404453625171578190505284733176386192440762428631590427990628858683831789762425969674703136024093093609552704736648439753591104968254032237435040239724113560994539248409003688774764834085437265131172892790248540270181699237802107338949594694514965874676358244338863752281025277857281509212821681302315535013940542337986804949055238285991977287379778316606768750677731302713369746275296120843768344506582719591566154690664144023080527333094777987561437337329619673875402832615601414223382585052535845283814231039236544623761515195977134500163026674763906872079184648204995461474547273664975021860305964984082009592971594176148440950149355498038051109125968506835878258943798000926715795196412485846241335708857431419621018602632148748176421067216559727910736588801812225363487935886863121509927399235558282431066853917520469776360689286752175617178725472539332609179836089538961147294416806357961821935135049859466314219717120487158846756824506492185198159163765514363032275965880672719458061601639074451436088128615067125392626928495523949598218824962200804221294566791146112484639970440989218042235628311151020696884520844691568054038040031472635115953132781588741785687037384382048811128681791144388046974992608015570957123684053366955338828593734926626268548438130383016867915926004643921129149292507049315463908041557142147407253712237183705233601547225292920288643235290208988679458140443608476865031527861888404556701785360452492837002548550475113692587938953156697918032729780683522079760516841677110799143886153644278921760105738685747372610479729818105061994817650177923675435275124668713528217684684366641044982777431820783050935756462847966595662702902557791130648859849297218474480022624173539808427329370709750479028749383544332454194233498053759959175603568968884790187919185610776615339655380336985352602437561042354456636827735823582968631204279158265860996462840956979545174156304642149287061548367734108457665135448710235688000284432439079572990399431231729588054765261167635523096168222753846424787526288299177305479969113273636540735120917631160315204628879917441192478207371606636581344421466651047588129791003932583167530943650791942555250648414253627528481277015932338783735240902519549282210170134276086278645464602680371099719250982270034986086768364951115296218366720257215612836126513099349840921110293389828662286856155930351377219704933493551223369241927567485613361658769414036496179427984116273724480020070402603600081920512462803514378975758549344263741893974231097952816433828282560584541720796338716586041330803883093095391908954286210183410784562520109628888168242901553741392899904219443584329832136036239188782309643579971298563871494719297492316933663990680404748338508299100636542389956361442797539152238292808149749411725125094139380888494455312447087856027821705285387140573980560400508718698869075788524700795708327502605569267109295805605127837539975883263772576667018804308758536264689108763955132784199657158904078045601243877329623461740197960218745323621551947200453086409672654689239974265663930957167422373981738519382911686611265748143868475261183932439424677743795360563456079118706112298761143201045558236560421301056470377212489315433945454445672131253851118601397791005753627933588929840124757453579459350538498249407230429905838826529587391880992876322371911495113485778975777642864387549795500044983400779234425913949477767665295194211108782657777063695667481476085484591134795652583507306988113198504793636056198994120126036127651633682125661121193587903940512709026876507677696464155094400116675255764051258510334385018590258341347890905986646586748178649460899951115300418109934481850050052799936348680907086552789557978708078184840866145744383159036319803131427739883922709192678620140573842505962348583520918771740553024769658748693916102742784149919084579082162005086474102668768568899568860186398959930931711170844886125655365063272774370447938621982668820640877664514148724821127104194897307184644457046970726251926065817132333656103932315156988607596764866223010682838237805025507245761462199145446296533955322340528717697235667276751399902281697434604868094370958877485167186492728542563380640936672473215726682571445634371820506088084207644743103699195343907138484717584476202405370710713090921541330749211983519849056919886752090776638928422707573193560595789340335364015748701617204818740933561345694858198773724755937338646262661300111684217223335103618575859726980871277449083618660204241137672458735343183242323496437493690418430738109718480395316833253477756509136651293041932709603158741512683160729053570331885494559267755184654841636318873360931470669025170386837799364260185171402948666071378260427664187541977892667610083312936715886540342528221956829536291467761805404971798773180191624150705988276612251997098529274416137367490361248763080378615897547539056529770166775271351283335227400225623135356214526528464251233865862057634917923295858814373695420203448396257937638354461867213839938594639989150035938307580069141341773251053232965508327514404302582679849443282051788555894442613595539908302448923386640018418467848857327738352749955258500392411317146943079154490212342045361230503308573140136826516864900469827542671791799899702870901704712323831411195866072741182381039704288088372572389486741458149702116624768546966241916265349546776069717839494035460028816460581588599850850450152224377639789527973713580284998888627508334827854454856787413580245270052246200572645413757193067565498207447314751985954562183003782444786512550940855075311948023603775294419351336441312473022267499314074157900833894120216036385942390597326173205424964488778207413485301562785677574309824835525224132838946541183716387006343226197351601755256485697762168694248417111298787576652339099170725987163234834311205609133627249448606552617282564101494045293044952198273504921663414109827690716056548261213503811805929848964421430336494664677169535584767406325720415779339060701045673828257604358669594016472317053122918263666228402767945081680785142329467062415418953481620538903217971096649923831170728942090976513954472424340484072462810585663167682474513634345142859944477277429064891821706875367068625987824851759587927579502905920407650527433906491083946329932023124412252016897074458994393796394611799134192471887520915677515256207139783273478463991923572209864055156909542045690389104297953556351941808245403873164289467769350716450014038095907890034243456206426089992579878121004782386079532858347380013964498821816179665809011689784797896943721539410136453923751615903918970054074948652361001124773198475498090448215772748363590928774408017828110449408757831741325268200265617564580173246134842368603994876480406869866891441611362601832589151167536971435305481840507413466428315476655926621374143238528797506079879272485205339190511426517464797507237642059883875185557857614792892513039035994282578382273399154962765766905772391134493047491619870873841111311344947858636837222099936987710594972019670115778885855638877453411657935810354731346379417388215813942581336581009497126924971651677713435934762426313727827927305941039391712688280226578217444984732887978651570569479675587559392241356951815802854440413737577013664477174213894647754257188467876354296503358234194415055694143136355754002232540435171187175756095015521000321192424362847844434944832091501530095537137157888400247749560508082361685035527580895204747022751141628173264467333659386957348584616655954933513842491297826560190738579729700989044887745880871024895943031020051424000784624756701787762625666042795717914557331307238961413450812660262094887256936678579511419372003178042226578505805331778967522245185793004882905738535138430250948609419977019721931553168111905137383054839818752277128989413958169841277467746115885723526040179103184061714973771925565529589897799586044829402886767633893622268844360239498787246120147640559614806609631969886181227007301854739490106731146378371212919682678524079173024057325180721349039918231236591667358297641969513593567227091507661473332701774634497727512592440108347037503232098697856345000706827076249634278914683383549022650939182882523511721421174468582397806130555215401884643659876627977292360148936201981732212001600644103814373086889453739267694277538452540725185555220586078369251556496819539966028920960780735922390444099695601603414016249518498629738650097741198919015495668554233403236615123833489265002567572511393036846530423943851372451465211654806021821869050069539062364748082565053253078806499926335104514051678374772445242152292075038453696289364521527656201208016290356937485336443594735789388179990612739323837867573584610040247166328312621554954911365121254872744815421670808219333165049236434735339557712365755065047540556613578189731375339611588188836265621766004871601454198206103129744774353479808581786080451525766758153923815001754335030965869400745745817124164612243163834799818857827619196575140805190918395894771638508882204430236233566307481924340043525047797049169491116015872314534365014431033956398628282712360764391069898367224699595734685145205484499667971704439196696151912177286259520926903794172337911196408085708862624277112587946126747240844474751321219074410965901091928537058724850508644907441281690304878884669858683957094715168939445516125086750806259715963627132931188836215654248049958417005628564758536717109836897408414716331581451820337083684150100204115959182040305850226109739185897548914954053623038282305519880655886278446065310628066859750176829616138979048484217742958897819159624072338555983148946266359274234168964336693471263987558209269474530176655206247922821722630255938988989303982952953411288060006441290762961330720562117385050446810240255907117268369703059990331978497306912996796096587935302466753913061568263875064760150262195583784072024319845408085697039833751191658535039210378094888639065965670261548497244095655020853483978156825074653065243181280319010823799640180412439316902390172952535639947818122313179634447758005039094665684363035713227586826422988262543178437820733472939512968728121133687921578543798059014781063404976633682478156578724337093380585641863416764659858205995308444673297998063023694451711198024353733945630384409415740834650262774350897436395220262244865594158697319584542974513041788054557087470472740053118397553058590490159509902280531117373325639497384797775411975132884872876173345987423983699071209002506409272491069184019710764906145124757684616186792648053266267135627588139693352878064368711563748900309175106343861676245722586481753314938309934915086063841702319286595770487718998805643723121917085227699464833826804548525266017633252154368611881905379582117486306637123377631217127249140581572058494351328767369286019021989776351211193626861351664717939206642191146793832769019835240499446215549277500621734225999607451611221619224654413167440988995283709335934628958404925259282566569861676958025609982864267854769837137258566899671935825181799097782034609791837155236639462511899821804018822991331876184977510820502572756938944378017385987961109495664168041984251841603429628494985547313021653028686662340672955729677311686121752562229628903277264476124216946920147873052244171964359626320640353815863878739645992848532776685198604865576987983087475930527556454961062102798470825316895519651034299068378750761643497815116169986487152943875358741954930171149912050685022050605078691436954419358504197542335748857270884620144893158008830363991181096767587334242560403376529336843546228617647790687796326110042026807468287768573087011319767435863111431200515244856984288746331253781735397408160327216368568174204266763413140116851265402043619454195281255094096107738334352092063125380837121369922469465036969514258409407105405278329062226589104861871783382018690193558081005827244280075015086334453028112127382328673074694463514628244269228900836887062492730930970528632948086039654397272350121378195112764108376161625667162851013200593364818950154155461834827054887458305397679174479084145423901118268074232580847328720366174750683628750042143728654124425837261098735935492119617024484323473402912780585632108714779668525496407554375985929110310910784426893207885503514222281618076510766997334544535188117375029427551967248540086076121347206401144352549069977698470178716436000710232687802555053486960894360678839957463805759283167780181685228905858677101515075754872724572903737993049952427984415227041440519237378418452463746187598598398307900090364357749721854791250034279808714186059666351489604080593005805006518730627875381846237895728375630460261801852485311986262560212564718367696609066902259668281689007864841579316252217489010909509902931329918723861671893843171146691606782868392443793024897719203889623186552426730864216270590893761326198012976106882516566868728649518842290350689917955523360445782392337117569859428234224572210797107175655307274807488583548184479094360006289849853521933346507441120048485130206562802636621226440448485064026409662855161792329926687332366518545740219339047741848596387005149105112764946653535889916927266441944300641461700121800858746251312485242003927529315594071267592339467113177369146971481116619000535087796581599119249478292379177601081501027264112275712403515312034847423700043939574661022063469537237206415280260816553193362027107247358684382214297662748540921223273472393138294174422027530079819902539372476513112789060058391913929181885186477619967091072519630239871795684291102809544931254589006954727503822132935318776429610374512654920365805505671553281106733170506266822650365118369760534852968649615894614507196746805636683211933733971355061580386464961785370670798660489253716329934277185698070458651194045029071588727127211191089919086972144008727177231119413430700614455511697455034290858840651101660893104934004730749735337356942081893710592143697361930535768470969203057179833304064068002540389191336250504191759647947632069449502924298189862072951965472974227520496094219116548102527045218569447084032680328196249929412250369276386937363010095274618366452561753520015052626434419057985275101880493213280481548286739326367040802787687152131529801056864683649691115832547239271882288705875765512686714810471179887156972246526817680573051935852535639496778564633289559899511123213703374543056868000463410556182387434225892077156718352067236768922900707123384614568310124112656544064697630531054501210248257612005144397768469075938099233493032249920831874318163706053401980220874089449626015798868158914487653153234413922116025179818489145389803485427066302277950823166200843786953416140543122705244648287878237033086183386332488699818273986649859894645446054597317289944348976664065333329811787342771445829525663160446074998207875910892370967377664881915121218303027112317853783706657195848214356180042268100554137510212064918518472614362015522016104145764200294840924768171266166076092317770743380489262136810915351491348071489263229010031602392998966683614015653442207623453076123807068114730673765382996072789929264331496553684812332535369577757634937091063540267559472652728536854415146005667210300670403608448579914987951131109425591089096266737617034446767855690529230406176272299973706179639401984026418157459256174009230336149990470683758064789627864148011583039194480588981908431250210951996606571143817976434555443083885291792556728684888994368012609379606259460409903903374608953025490327419006191969561216116149852975593761687140256998548177550815453613944025951697179855333111089009466869019777499838720728283240504033070605859597235349130347288527334471642166275035605643334649994937623482985503243783583328127341226287678135493528414188841100977591873209609192353475497993307506091219614961029837734127759707567340675169453076295094049634644780011848878984883725094184138012474354747163699443318350926055238971663062540321232649379712782727241680490811589418527757212628060731993195584728650367457908118435893469846211216753903881548384849261268564776696326875563165810782697369937416784411248060911385200379187529187287298551874281580061599869562034706937006292380937823575243785221247351753522900231023113602619260982258891285158128576507684500928202445895994439096380007642106536913643378636371642709321963644082622726666699220699881443803932883059613715310508652324470145150238050761829337541813160438991090030229084430239648275991273975030860574760525513712025861772427264685158375009248819102776934693936232955212221971751958034815315682084963963998662182150083563654402569354511514478444943499410404935760157280218660958080378703267143167988219298209096356916972870189687383741568408017487313677070505751629516615105790762491583622064848391382290244942598907542511873692501389209829101870569453056357619973994733264297701063697637712556348255381571274913154137351426272622296165020811824443371480579267793462995252049586478624475873348648810029113769506935982108059535178465619689046057007925738637081203875001628980127649257931366974361126506746145832610880772819308497132414972622910454200410207108117064615276320085600906511317315134594466325441959850489223269767412636682638468637182002200317695200811126853329904357432478570909628140778885482329249715928191886776622918360410863992732498713544893264299070130460159494136145296467210343730537275032593113759326870723846185152660744747427627310545253301542201267699418587549010281364520853519631541636471891611310208783058897491447188253116919838006136780067058583552836824405919341907872320863057114439383069843167122047101255920080350065328459475815603273508842220090926145305000690637880146919422152937267257195881238033845724272816047330174919762176569007201328221571678410646030304756380613227120596187874602259531676976511752405937558339907112867316988249929369794476551777776819428297602989232991158414562929853832586680058227395877779070106799899059143221073092422983620364131320210962368339258526785185094958871447886696945038376950699932680601288616156131759947773742784619378571740844580814606128162819379518950286253819661229607364750416567327663602615380425134460315582980037616970451533521319787209209875171622446703008467975463481124093340209996880233942270029788011072609780782950175653874915419621919026899536922767733987159819898374853878059759511404286329014186515868596467435437171168499569379034553312868216569485788510941636437401060966800499647386741708691177834507893932489861824214151784425166929489159625609799820820752584162320297651261763457911915732974616864398641891405094468374033132591914244964108155589045308805543946186745118836909594724387053349060239801676851782234615900175955651994177001304245078526710554890434284273211236909871703429721446751810722517392326049757626069768041429610479758850432094387620471091917935105750698823621432567277861599204187354113875468278512985179537064234486096984590163206609698361792265081975662572268637516104024773028250382095244939229443392402989535321659750014011277491586831377735769158453693034206489666401262007650897740520345570088762426177078622036220527765875832958948402141499795028124957486480401105070127809547218086952828533508484496768392419597509604955393488506022472041661714860027048823908935859187908726079435910534639750510818093208595028890491359188248062411231252544045360089231530958775264337864418817097912710224377699864804896705772368356142321622259303625420491318442081462426012926089516792354071408202681337105238537299404351371917315163228682955419812399076270020685874379646381817125303439613343680140133958534370146167673044764885804987332818670937010657990932825027958504391312395754467927977767631879439562925944845603568092111223615736187429442059337695753349193550610475173525973690999117580394558940019796136483992271252597954761316279924480782465282812343225812611729546716334262448586971270918811977410427808038314176636551775903123296122712084366986812884731695125545010547785452462105065067230802123495487345472494001240779503686687603998951921150999579069377453147931857336572003650111848377665299719016590957809810620939466063082560213545753198036313203469453935093992042993218155972515215554044404490355708761530710151918783919704591024667783382770951726575716173547390061317598551699328041585985855510129295182920452039840703276253773269031997221442106924495902619266100117897000249796846746674900992260663991704005060920029866043579235202522286369326851666560193537219865669807126160048585554929821913819077593604625811236496773547873647755316297535810945704474616759959304279298957308994827949794926634399968852826700983921350454678598102362798267690801491205618338230801104933142422786077720647823180961476559982582628449882710192249966511941011436485293684858370250273206757576934253723248671723718703179350182972419518828895755113355451797749724742022130760356957129404273786670143610120845230367214401295004999248822960726385056430137907365309698993116716675823876812619397245736621535218965138850644586412204557283349905442285548902976757163808344496536807533782069894389810496612263458389998583933739874410188010269839677568927697935449623023243072394631657863235574260640365545298936877174726070108648095138055503317644560891042575701409017971642842021649388148684436883954775461315030921779208630483646840425880716594104634524212895948937923145157284773984131364825425607500022536621340088885425967078494435019218277310765070581350388221572462604504120817618667453977045914003369935918688433497057516668943344934040627127204795535101208600838551171013364987286240589048358802804776489545924231487290107557622001488532903240921568078701558813372487374970164428237213131581414086839068311965124405363829570162981951723676083123061988420319978784491293958608828254558628383822765743559847366086431076836169520423875337839667419795625780125190379671793195332946550052208177014449721949168028731525977513689195035411152853748313130476257089224270924294847915034032550083568327968329515752987487690562300794292472905210694187788943471942992702675828313000593837787232972360958447821845061311693964622400620584011256650857442414956239134109923647668622828607567622807561897784023840079613102990182417001883118792739159995816381539423664458271837654374069431423024636277698452430259823072229379957000740635203974690494426695221297831294895689812489257398448523176515592087374330938829222899558946468185249488638329999447127239147823007114666470278066129295633258297019461773859423245840582675142164882292463233052053543605176816123761878279643850587210453256834331910241124746098532165605720186457047560763965928126844869357237030148184235356039951562921846091048271050488948718386221678677838070589491980709437288848851587765135163405507308648482702570505413346006788366295040215766890149299773614975457319257148915301694335850449622388452322600880194220626945070608441610927232551493515382054033573002057527362056894896081252254311021387987040105424768213500273674205984275500611449562088502778062157051177154467865986386134181576583476853108584291999385234412938433751936706505675087650255679923556682319517223496156600681419323828624396980270707289588066480247359262343735949288877273338583292182906874253095224178779010818735943577244515727526108938558400495897656906720992888478009408365987356578550917604256970641819733209396101859801115783630579240641211008913017177416196274749428171392373345691138562308684414350723446020370045657950643486059831519808855066572462285763019527426497910943213480040105144457651058133009951154557953220454184375074582365412481965057358881434853445763136892553510585381894211147310291480182063430464313401386592244131832392156137219190120769428379678036264298296587305069562707014463413462399372456816015895105669987340126047668463304787526615122063611493117058220983487682326801570457792523279565668208205649551424471567161408149343723905340087074846019671603781929051337290861195750731394843439998202878567172342046201684786504085959652580714776552150827067281302255212534327899962092317887488308313216621592584471445278213191328718695704416762885573794805991164375781266186026542188087342237433336762663118148550828507624893890925740480204603593879709378605874314380634302821303212554069738349948039470216566307864281553996793263384444414242441921100434503661246913237745599006211990776419120571246636462842711942256764803933236523224849101231834032786170843947175153423776541404932605397023973294108883535209045834720067242725536743929643273638635255454850441397422589136339427113752778636143227328498270538500642181851525434324681691922306328122865389785026533129636808508306732207319042859972482152335738898940253698493195340240998323471563752591400284312028526022659312086154338458037357194521356134197031034236959204837444460991419319548845819408043588142798351606406916184130465158027150011275610907573249334251137973021878115699182073035050930412438074833075837312836590547400666013902860152115307886950623716708601128626871749911647662670339117620691542303895040628431789096959053209647073692649012038508080336194876860790648426980154123883706799593602859098570609339528511592508543045744582933407673242126433560410319279732550335535322661673274823246626366023518132787876348109897061202276070952359067107510634999092119845902632779241815616065871459263712102210541631255091034889856674940085786230324634613206283158139717721747366354422586081970295416396400877722265571032277775892600711945266645212422436371890885605942265728636630295073202964039433034335217417956460368943934755226453028750086892080135071654006052286927071969655820916339926584980461088442944642819692755321351421215035533621896744317031959510728841461651657253001541136977480633868701308697835830797598824714949878033987407285817878266387807786754413721472605297042264759530763680128315993464907301490243296280668424076490403713940103303969212964899194387830466581168187117734657010439868171844593105040731848314164108451342570577131810570478359222305359765976870659836737663564455086973592492826419938039024297855826043194146040226547892066417180487980388713816264348081002550195318439114686610079649788711601894294816022351607897963406669619841121408058101103945081169045695321698263240032713467889675495003497280202733455567630807500248044707049174772818758096236575366632519161735672941625571784409794381780584152665944728325968322215183612077286871449138276136728841908338168066440010107450414893862272228544987223792110310454153818041695450932034954532552179416219564269357742035093847077612198129597622617832689612346644320545040051718433216544112733008549005995317727833672620248581207391645738333490221534126157123737409324789544983648582659715753244941256554661328513539861380174619067699188587849601155743526267830263423784896616396300442990028069910415920471662914666290944626887105868497500722959734828105468813624174024340418407672410557053295015661256403313439988017514038510116566065455022448197074486453280298295562694081753430774907878269169476998059415270094772295356598741427150126204766738070555567275503594680979572504954340833166506628113041486562338790226299964893401706317714796437734931666344099555617795216111464378574166984281948016856884898850651425318059648573304088189176066804619555677886178538467949861255739533301104709409603387479725336281258124416125044162978618680423180837378634938411470297217997503507806509225814379810591380475467545565869514369802942817362684812706914384683497089712601388097484644819759308125597680962544874991869230950481842976501063511969222753458281623624060220793241407686662611900325375448600098567131634598370417209252822049856500427322324533295728851009571445231889421456343310453841678038383946493750939729502333311309662525136182821928056933155623293072175633622757647701895018798256950981015857207291233301921849527169867108580966537936915337411309984761232640365112870808967565285994194554842989884285286785498434201640165887054479959023522445309645187334192382104002845989634842512443029979438475251670682185361277392441859942380632288201842600777841017823299468593955856126457821609334196693182500135892656413087923150622741343060769995047511882302908943871112540379987026425389142821883302027239026901221780157137072721382324153588764109392281689356410627117612531069458324247698128606615251178095563156191619380642220430301971992663244289588281623760273379520088108408740889856474990942401052127844837218981196203902449243419151005195267922887165288890566475300644505613882198593800147280287854223087502951585283466728875905626975213026727305176572022369266388801138313386812422367582937528588343182819267538387948598434873149820610848086241574451262503838097562822202469912403609592813337811542479874820871588744994890470698793806412307591662011876222114829662958047172104807531827531600932410565957487148622460913366194535942979012126875387215694385710910265548355575280223001608414849138196785988415162514626536968542722063931479269280308520695207566564640808427619274651181193348920508605930895935595566451452111086740316217414568307241022901268695075126511904355287095502499769592850670669420439082655337743283659208834391622173640925017095421119563541638801457976018754227446774089427339924866516075023010734581706574365624191315645593498092976511788889592647169675727177049116071894059468343629240972331278726940769584791315398775990543461917981882870134549472981188552083277227432745864502768941032779293451985559424754678638572267620880558320337605275444904173489256371155645895790764310331179424251075269589001065694779630504754968360299424908657917046127307315648934031356116789852000736166789029548757384289781955215494092775308655510441194191547578730040079924344798462682391741718714958681794369627727007475121662559693385111456854168028776359641501859449022462718331255914135126402033194117131391416402791574133370090105804995509133321721147415502297594842505858982252138541096899855868112319827042306831923912683417989847814468526684526741149777556301232898889779671800777794498094113599259076455092640473805755713081044074208432367597683402716002890177701536715304567089914449767007724084707554990811246066447221161566516332978544352890321496707492289824401327861478660689185201552156022755525246388979621266928684688385382120998894137198337747539920839206205748719537683319432085206650115135823973496587735504439224724744371704722090229786490732845562008755804614254662471592068561338467514219965976885183257494147464893362363296990260096554978764053731462963210423104546167042517646979820343655352795996008757868079405653550427641634399364024296251882074436167378260737584404692623221079452343205613629049082292200903325516910128267710814757364826006513270968858349794203504800594782167123976708518170572513767588844706139286902408137199462769392239116146034905740921819748857672769229183378868030876313316967899881859499845042374727836674088242190109910635005566050090628686520849049398173213128027616529824172271802973372071925111571312108641651512455251695070453992662884576343313819523432725126308926851362474839100073582956124397981025520762577471133719615425405488427157733853517121363537261973188550185759909137490131155233502632966520297948118097981279485317963962329097105746718512935095755533031256618382195230239744505728124080356076703368106762701571845178774683161819934850870576056510728262831150897119505096754262242043977944222938162148119556757786401098039716010050714865267499170735461658190456153325903269788378179439853673393746830672674166798547588475627934290225369805354282838407992430882151295298185653569109800499579454440239873474138463916191814222611235226606612684984070958246310230535559636725799393474864514716457074822792413131285890021571657340084376620496267478310676550093472535787060575473212738135089579549986456863998359018566681153779270523455460436202453484790053416769061461812527180989641043582608206721300092883817094332940881897951582926362893664262163934134910324750001668811664541056019640551155778039869966080405378394808602686739240205861030973667176671168115529895194752596274127484724646246787773009852996702911608323933813253801374945717913781018582601046295487449414660072488659522550600068065781276119740892039742614444281014438925258167896320699825274547517761864534629909286779842720920434198065614572859742332375133922187263679809238444533283490405595581220423576974921434727159130428636242784048602173787461604947568400002284500668730733382209733998650849375337412519808072551444817978611463745371359364949817031826055274214181215243644565011347824391420955638018763708349926003479245304921163777968437900286927624609777697206519663808996621151572012021167809114882468258252215653090888858853960539780541966474872158570437386148887336035927809966537103790967684303758414524009676751189549382133901831706368179035067644946514881441376151883014863720195697267495849157996591546310144722047964579156603897637315568775791747097152587499746952298196329557882868708607864153065276572303348311100768629701666586277242864327964289318348814653359418765729771524513796699579183020270805461412555866136297458958713101345482279517302855377932035006329217958373822145829063546073957818137248167805830925550042064060160062284554898485554419582983982766938739427400963360066671949847854944911771839940157584381977278393984419519126506922114580765560751707196925775829234367608722444786407170848335046187175010384168798701988049976899719312410503024339660993645361914118504773689690204981989954943131984366901072208656947539956203990777948925146724351658561546135868876165542794542598269522451883982015319197434531569875871808245836054561707876679154975351080414652865158136448762702305061445916206651845408914979915255721778372536947678195152252194391222949665733154231352444199134301662096325147930595022559036086028047159903020145130429833855490524065854061165598771612407221100388092276680382044732287598613114221757916922457967630742195024088775857036222908491293887603377600331265364666072369785825443260678974588265943068194365673717280870523561256592996180938012240992997542379540004606579603022511687598483940343267984859988996880888380496493835300997732558084920458001826642221136630645181677677995851898938549525851996497214383414011117036734312193979983467331423375580326022028522066484282649071860251579615254961865348498987060582985899677195042776493687889488944874948892030372952615346147273383436013090430879379261969133174142151027918334590961178737208775804209706960700614623351711973613519393244976392717468666001718427836091344970813555936065134865676312190244703675888519917645509089309022607815403370953715532882632825554317124529144266650608594640821652068686497587516886041451465478699864093970046649835906929418881937104630461718276843872118180981207062202597701436891372733990819929184998669104615340727926388208703298499297604928003542536247209059112400972738935226627864818016279444299381151028207292909987560362170433784967099708966685068830720794671660882641117693597418371685144920499597304738475493344528187034248267413756119114570775878937938189290897851677057741726651452237776305898041918919993579076387704314645001553250997034610721288594023898370568978917302045723423616371016301856284300006906997157289778175099178194089263587859557457534496319276585524315573348884902517324177433545458393625067243836327661575120474033884108799941755195503341601175936151100874639098911561569638375966112575833682142792058394977641318690823275484937996834940146740594849073719283247861713150067577613443447795450026944040263979287548737983101140423112726180962739256556759640582468726992373186975611620817159065124475122837938062975051136337473245762099581420792524972342764539926753377444745228585936245127610307555643688934443837382560580170227201145797806999684372516426590305601469700183659663455761154221904943334018119017525052275194364547250702674363336227412524939968221929686018575835328182876105711425724945683438780513479810532694871558113458813636559770164071240999928328273312746720473507949594446786114500549666508506257572099372768085729909206658262120248227039423184434629534189208552060787871817622166324536623718965365674642554303480133440680741460473637467722343175697032664285426692971205003399041912808470256500792564164152781787961837558330534928509304176297727510118099766449622587996940462609468109781411822254294362464396876629427239052555386731220367137561659905771005541868462515709738266078551029892214938898131072305086317498111740093621033246822535752343493857658824140940909784895018319007894308888039906645141040654605575780224887064277326977612676883364240461327369808316117177351650539865742793063633921475822709738274899513558885145183000046201122567450523816424142623113017116556274010462358033027756320684286035034581623329709511977521513557356847235679833488594835743026587854316137025579575914188279566097083066098786685685986077430218869884844911214357266942581176273119442601726564981267026250172362083038061250348897637497859541959098314321561664753435195923106099052684059126814869649341851159472884906453595505816618873573391544885486467599732541877023732763953017981688353201844026094390415457443622434230931866050405643755257952874808752627895856712479437838854780826692722061883206681847662877724337233779156738704770209374141613485133634535824259202974583500987538261944559622358019976242342009750406799214410477409495887346802683253338062220004439756270285770032633020894712822780064173333532421353376419592951942904443029906278829938246259646131241264664060635934871819204797968462148677349479336144043358714935411645897421599202302873972118992553911363212574625834015708940364026290655339481193977943338155830472722083744318294440800024222576537711857407748461022383985743728957549075039350633386936300346834440152889543211113374949292671820511396680944517772637633654257472119751498643954188787286364234445191450576274235414142006061502235281166220604178425821242208073320975167234200956868847779844434912422516437216161924168550578818933294153555128321700737819667204508962205461865754491418021213583483758590946248997676199823984317596674529390402726930386155161738867203909010907715379302893843485049736424878697346314517185994853308048760216676610226918662372079082933712392598356581809314779923850512775117565126494524922035695160177400189650860069843578203121523841299266661127261392339289757056970801473577925043234275240570690299898273003966200743892697980705945358017409196446401999130428293693937880328815619903690808886972089837241085671704949708550592371479217957718831245556665141657364307767501950343356947428603244268904833544173818178851049357626944415679685198045208947123879589754763305970607876465642434694655369643117931826320483273570786356082621124943981527063315529784712100618835014184158683489573888135699056579003146221074427340546057980476688412118378194444948543163862306827049304577057995943318831689246770804498830256728761041324071722774611949266895214008569209750728408675331525832395895483026277254503783726952086409648554686845445009691829708420314167924177572069460351063897490203143341609016530943598278599321286083921152507447600602268350133542267812333101580256045891131283617186785566395637686416876604762162192862076703666225662973105877196633499588128599387581558383502145193544225705748348774863147018920510621374921886328328914078770064252445649670307981279155452422067528543908402116254742400701162882681837872476329345213969821497834934960601045896350515739022970459639559224215402892266614461573388854098910332000177562505072986476438097923537781614635318335077723305067782726128158606603090960784813929285182340411107315855275277938029707240009522049900991979229287787762897408452879452113337094198262543988198493762010132623322165401296470483967331567489897115761189485866231241500981525803368827154771550183806363078341513606033752622618555933104151875631302547236106005843155762963418360966965914525008395418758455372215388322924919771140074933182779221673379113033031931036692701347809023598550399182819246266186951760680360603636358962043051019653496075118625036791743746854974093815123892190472763281387914931395102496565780638957506615055882019119357869566497245547456437343263651929911043403016058984335088386377215331298958018412456834886296181213075446883065534496276374321167835153902172726962928954208565465055797526051231616025102184145501630142335423605059396939580514957912910856113976215669187722090381897294401219239130785784174695414392874431598278265177067547548732192467186145972853400372141343421962707715681256910518549135841757066521299429585621708683388179836094687608878735749501826650538734364519013834262045887942421267883475372617988329683232518588303795330193412707428563379752889793035676344593115064404495692197113988308565041126975002085069371743924964183016743368425614734254648630063725278880606279602309781380753929156064022170759417075109926754755029127229631011201281490306556494568252666784321696888614643894551643356226359619804674406745762065903628774650395152342826485477892356331500650908462536366488336273262928950217012958943880127257753264494777149513080582416863098877813171454272210962376624704874702908647383019325803001183240099586090100992748154909205612294475883508045704185445386213048141637230464224719251948461595378599389557853691948525765229695115240310570636354873425011387430150922749044641736626722427269862266534117953929092809341470441556446906926724498547225055693565958042077339867573492349605781880834320585916870053125780081256480613788316594113398524193654541057066350620402980362098093864853721845090615561027263476280755628270170201012501540719563817369366104211273605299911466853419335109623656688971453943148083304882164457638901395870905485004537034885666565488432882363179873212416495092635216081900683097489230384487153456094749016688605494820645415137028120444676513794005317875150200650331182257016914521897232495227124610589016315909286206563709624717756884619238433123980590482057035007799374444894005825944682169996580770399980635225503628959927479832333034518411478409378763188810342796214881419730794892923648640912705168126611629252224470963858329830167370213973587836516356908094185646536827692436442419930728602605352185911715992291340264052506455074964015879361577857157101093991864836707085526588736426764842187474875216212666738891833672387504842717335901573583378231781506540144882964837134497860982516702529854139048377382918886065008610434658407101457763600014989824829391240853784163048019323835762179713586937352036021080614730830507093124155690611227213795457668469649072518012424148328197038108638921953397450722660974513178820992272275574386139825174878841491166228001195064559534894161746003402619236539443646644243880321255799176971974212667657634790075044599150162288594301549997747896965706179868142655167960236938967998574668532283369331300824857475108234124505150894852066867200237542416092698412530903972210463167870186055760096825884365876902449652059874899060579655809433361717677630231473229985826487272311109620631582519999065777287426999187115779181404843425518886192380253497096843849619793336267750846973607637295776245108153828065746462787891891452410354471838403389419259050798750164314985548897415951478172064895840162515643986175837498431051610002067020737969322287181996711011901196422868920449388567940601717379094690737362392848589049985635131124712954944966592466736902716900999210142517145873181458382761439495425455438815420274505821650337858754342089451991291553577311868601475944347830920631749174052600431295443098716677088776028788178401358415563268659441407798684120189880617908377295506305857557911921807169603785575633331927376002663468918151958394679900785463735964940859467315769957575202800816529098144619680325225379626774001373047294193599299873364350962582915676016229630952635478638902208157186598703169893264779147944301297051944786797346552005680059253962974590941520572676512960779146895536213307780911136646167531866555653227301951727181642008176823057749584260766760663502649405294160584944449366327607530664425184304123299892689845929875395374170394596302073919801619034765923409616797680365573747812020740017318111390697229653744306190903417815984791069329923318765035424941016205172797790294250754729120777128889428621833589714042994936928056562764126647879048618026596106728456310837216690120831218853972721364610520830254153986790018414219191442583498083088437601332028771719639434029485270328349322964684639452175602156844352044537280233747210397058709773234545205739710106498359735676920856460332675654605482342411983181986183115260037454990534542511798863544556916976597113043714962704973014410596862016519656399868715592661864409219130399024526910731418876214328972166126238811917202512404558555383483518641869868918213867418402245720692299295104920353603876291916041383353674713386182397896601182987683437172879451388379556993304219036923827272211296270286073109243262252720221608039374360336934358868602748575711384308472952342531824919832327828080772442889330939432635192061804899888070888440762886132853954483866522200260720238513577288118530681505208653513492833145208571832481175260870488482698048039966957469579546611743667508852377506292695115382562279190437863038030954501207350599510680989037674688017762864695137018823631090255475916435573535608855244168773951824615245620260259385565855752110742409855888243091745632412600722750486102763294215156376478992934667701759657901740759349849526027411933282348672551297740907570661454198607719400900951885127320354306908412664454506764234094684206093145852570861103455448343768659644777581928003147320680482742928112943437346080837525149663285577393626572027405575705363072071736816981369747480405214583882974561302627149874061068571953777061410736526999713069591827218645537382016691920147080999331269633319524104874291450503723503717304310044564207893172582228364171101304808247331613527457793033126923934243087634640222083318982101383597479950750252927012662840942412483033482203738631081263703889903375425848415361183255171769706311661910027010471838170104796284674880715465355118177711900034854440229422038544131153873390482264473585580043074914025823892316295586633826913899043031559193903924410018983392925417028292280996329106511456372189880637908681637400951179572930585360512407042498884679511348428877475765077790137108590329312571074993285231746066720030518372810653680291571070398674694860287409726382594923247732136167944705360448174845607479595189182155299635192384087599432047177426046968570761521966984079045226439071202907327622792499999880963297553199120463644384263625631560967465939500767563030908077441488461269796634807252841618383638780805934561621901152266127137736695984697084935980932757154155049217213633517793713803301366493042547743539839001925524609314727052360272503939295863830119489871175960388268299788235736939296463830455246474548472312598910543459029910416927791630008483875906797764244324233504838789133409260996975059357717128527444644874492912623608298965733156904151819927211430513866238738187872234371292782494395681128647839533700097407809728812694236307548577012820382737588994004011216678737189424031694985224918786293570571651926608604823950445824595702535182037042026827179633616479395275338231670494262938109738657299493251853596913592028818647209549305576677148517086605022471242935786495880956503889339535634487707001521758714129213380095646225292131529812369764860267330972664860699355344448117525379140809892818967655056521030834868664216280354683953383070550105439924790491642569876267885770508488113233570842992805414099961575305016014601234100491344499361915009036007584295624334654110284442584079739274878694673723622559890066967336055799231603632205744235864093119541410025389250945645876209208356736347062412306357056644971119205033788992669590368018770384480538546902698163433253992445531918733223697949112922731101258246433663916590744326784614089983382492142407082539491163210160032990710315432480464823542346677637658353255550535800136141622545744889291378019547245869931792982214228531877950186153746965790051074464603291052202437864065536869159987596751951935506695048074901952816637162602611793399974003149664118459502376657824206351484184991723799314407743969319814120108490829445472420365894962019260062274212238983525570323987414534460358804164648899098713217938289427231470585263388683110419041886480837853473245356726579928675686865836415411946418531443896599264216868738297570546507079434024366794816621044764748889224080731390951858608459713506638943525001575861380124852993929281770201299774914709665879118776929958489171155076782972934091160869769393441795229349742480700508677462351581885280668684227910604447062068447716704333624182487116733027224203499356163220871163831633392742721200977509544216943925776841701432265921250026160567863393378620541736763072570765006918065377073160900186189098761938445214194009970489385711775925111242349462645564267609378439741399190274678946919021655279877341050789448257617795222585320256016891958100809081906790757340678121214729159342163108595984654112524512638479850237773036430299627576144056711818345783312455299622022370880522760952087412976229998458049700133092218567455507339153025215959588677095054787027910038621563397196566998911643191949407561668210126835816622997612787326796736296606145009539741993054571557635961580336759473634490282095614532299107336015602419472480080787432892620823493028038697974482016542465367961023019696908000347281095382584500438012895704095039227477703581280934810765919513952786885488519603709008531229271327478195438088300001488851810805278114155953169178161870580545943795866313777654532813507217058229815267998955708746498250534722730470439206874025091573380595719420284140251355168138866797121362876503575448547845959821970852978102413161395836353452834220521028262989641273857996784609726174223586597284319255787371784342621530092573551358156089016682832372597465470837748690523786391219399760092279891825132002160586068643335199236159594422061278294049648504737548025230691639066071905928844314515519343452634882384330129867392101945108397855561806928343509118893924366113445391405454114702832735418669224135499485604415144242345134289009833044993970003434204287080960986215480254457609623153477750970695816811176657912047768050971743057382316156058967008493789054725306050435257467379482289150080774878273314641701897716598706521720933855006489544885211367267822654872774954521821705652253690039817762219019918004654121766898720603081294269737041292419277719745022885413605713545116110074818927172463152728863466945369145107382478720118830640519645428911290808958508632306895504449051325228148063119108809691335686880333845638632547291854669320374634945999254172911536095140180351262431413606194569002098100680774188571202917669283428383815754911332606483503535909384093160433859862648818827050352295946869885239642117087504196233045043394627657749145138316258491695938246165980888168433683724244409082843940919816032050337166732212987123523845078846240274768868478281946818435630992031303619091274233853090089796115602423356265595217106809113368383914212254427356610311967665035766607681383070457957616311778527998978274362368434252230694040009128485642847651399500522667897697043641234217034420667768507455404889228611724093513137216562496514765021195114160065645974575508857410796119672788305713652708478275178232923200804877008409433715759458000242169719299156592065935983734853366022497156553092670512500656948400056064602818756320404410965632198962661833324923345498147545279921528390524063011654521550883933766487217607129119698692396940455555627803772488995322723739056044777569971751937596027612377688643913927369764173384093940374917608870553343258610578491656920868323670487616081359258505598585070611022853625951674089477066385146098175318113075564717522089169257792551138873067638034805899968989308086428242919015339399900803285388335624537978641948946888137098336958074832086671247963631455123799754839708103140076932915549884085841519891272630213626022830048022746921474352369332527092890108317072872446947849800990368693112858264829309308693678057704295242756432910778204312045909536918680099168085170727948213888883343611733236593338795707454541578379613124185071158610088678492400504055561685291630845366486133066288003711952682229377179872427433959420137578513668120000042306346186162372427275208872515983370315063485170436200223496580213911461512037239635567942387874802167138690272811686097992014475858345147129266135199299903362557859069908144372606849648772570693685001242505934565395875277560129671104120996590213606204267055536331764148867490022648308880752806481964647499149973247054206630261950373667334268336120866377558408587355007426784078573072081388279719174833925399172896334048423667809615383910849283911727106676533573687421995618736446023184707361954674592943185218047734996276702226631927039414862193869213754844678381701296293753438252989473149051998953721922498907293816995691880048907041217952420215596133649978077746837113738818858728474926883431293046705527131092053663070183925610704265271714461198625949731930893618508039143987993926976423147664676263559443532939562495853506728876206868744512784109560091491305132434443416466381320137617442459721451733507021427615557035535021254274292599243940866657180894791534885856210303239631709998123488365877280312815134737440025398226186721366274761968691125181447398928345864655638497115795687330227227145447477685977621834964623934215836720605154231910094985300689275558827532677014719221450308513074792510761624348442465862018243004407944360010372188799734111492826714275443991710062710785464942068034378408332797359291568921933057936382771833768844260213489302917766075396465190378223228082279307961957271175368923645289034745670124992877607191921382768775421833107304080253168334222922431467729145747436733494309526267169326941194784754848177607303941452568364914018520990223556195386822374545505746626731026633492346216378340941924045588314184430861806573979909524428998086046740739932945833145390704676987697518270388120248726974573659056061854313543231676277374066360323496964223299658554061285122752440866933401369309255237561051261872992345097562121790968971191332656867681375828876401957071654770847838276021672081610939638320961818934676314991135030878193513482979751125319217417988382355267885907709498743978246337301839558097738727832998162713802193679004001044776713871868671532680787625487882261826110211314187667098508450041698557696624874453177704336086678612569123315627245157916358146207805070800150020888050892572374343942218382089339104649284056697855073526354036225829857270148301585123201866510826865714413150636713677990557853930680590385779013934228676865153625461019490201467352230080495287510906471895652402182572615886657872759276037538006081144545366686280811587445685855265971179507579980032738290682933768328531378302228791996069275855346411959229994298880815267513770100529480746078006540740464031506891963362367610382414037387650219869714976051201409098278401003836341448625341294119544302381557735567941692938441461277085306205610506742156518265088399084292503525117068791391070500476172671322341643275918393575339363069764780524823899448806462293727226242154534563380380269846211984514929763214598842088179111986199099166445469125910547623884308706246871541711983808542344938707939067642744770687383325792545186226548272856019047038648852844019100066956393341498115828213131701968258355751625197181201335136514775677680400062983500341538446391171591682789162500658073112531793135580016098639004082251670211311126176493786315930749815849253154197323221348731123982893111976034870904315523242017221403581945109013015102232005437508996091758373805639859852661976022393035059109624523498544224189307332271324533515290046385257815655232573069090716699321119825137001871060723397967396961409628403320746468704025115753814515879696289064253885072199302007467364179692180265721420711403179180362782217069116969552170976066141229271614283827420714015116828165697073886454294767053731966442803196153347838307195511796464687518963317666968087807013875799372236726184059202931963859433508011212380163720182683892426436724281067356067437692357786151662804402122060961589136669319833141999916010042053905430838096320846454418262933074654735632895904577826713499011723529510078301143765524418613647353029027479923141713881120842995713492630302894693868675305375322394436861930129313472689215351719293675802502367206822459836656280258219376747213829584436830203918667741999880444961833609764485816861015422845886895962152569808859430049306017062817484917757446623118479118442556168606297330336363521071272326569141463148181342210756783590396319351748095654433601888195182608296665945669592880308813841179623371040633433509622171786937459384346610731944692382022371409130879805752244994398006904237894395883809369339543013777161380921412780473031227613598041921134490022430676437514522763367898659617855343973709987280030792827318240939618483185806931465123483138187978336949328419221527022005799517882344363875094537377545144862132009600691535055774557677527381285586628999557189022157341420332184063411200493376496829909740363993833759588041999074942231292793716905903064195105320402546481844073655362596002358854512802655083382856528548948501244269118815543341323025604491077132497711968987719030537832061841907486102123739725490883955609458895315795758168860781092935934782700179108396554944492752266067453122848757582276316652136957901401102731934082183162865508302872708253936438278464518721442947296818938152337139805089169729771918519334786268511500013336470499226570831867096840948067470123785820902255853108970330479289875203073377046291971254529728449634878312017097307572408093480403488827862804509019035086465684405662940484034783441564910822354219379777764727716874793983909260242538989228064267083102522710666477949787554188312818448809874954997210431990089555097377614186464227574738361120806025531018363083745634873620228043150136460402952473201660418877440917865361063382494928771034781121214373640857827607089922728759471648472592591667312177501542012621545957438483248340130606441380975051908440462676953039789455000910769531475050783885360656675498947719582365436096420285582889476765183115429029416709263298611609068401258102934125789541991125554722178690646197108477250578209178104666257403439666598215162294535903056579182470095662870588617652959475963407916593665552344657904064982724356290750679307954508770197479641050998819080682403832751421051034116393043449864960899760110229179179774843665541237465046265060650912469804777252786610171420528300293548290825596585832308341361406192672506989615434686551090163566800455341382486869155324764379009634363493513440927295171805084371324485278292459217405059302754689720334817441638637487802002008532990899293565472324865081169914250054021473118691890890195309662292721245966358408232037745733039397480608659989394717083364179660145401798934207324770537478938745482644953403472990537019297295671862805895872640612273975806460106949527086125045214997697759286952918992186581511034166102686177598753703045850434220424950576524468391321151008217755722025169284173638469656282466845170204354320530587286189859927991227283695532003950252605182403898279929479484960771368654536254001362718260667972981613432323521099682814625273188256477550143080976528045460037222939060036977826588311222222119171823170469765391330494596190857374671935621996963016512485452253679352315071153491798637543239075331112075180057671586952785480602810944789609890755010093787043917405945583646643015902560762199858037476397809692242304547995065937032471450108980461735890107039904834005959195905870118597619871622905416541253417131314518899023287218572822624760280245941261630840807654629989962823046532198653280570319808738205755537411295274770708740410462181085075959326294257629512344472651424135504929495565730618052387129305240682219377255094584250078417356716245159958090725971117774924452298440229891759641036437844696867739677162617625696880890475637968541366115923029074907613753956065602025344755914057331300308158831766639030997503956738540689443368119326019394407542532690019421150433493014545128608002952324151584163532064671876062773900102067095621290178558349019582587755915907597421691743587048462025496682609419025336229913215136050942198131487282531934553874722370796884590224847023439549349014793104493131012952797500654389418302720988539465590643273499719088768649738988308202034573220902352433537290085576071959689376492161168784544654165057050842829969543958618518623392256121153694191346605685991233268655411621357460157582030063781096191104619532147914587225075009039950520534115295510217005039510745904589453718063789228750627142257511207960353495032967649674057302205996911912542153071475885694141626807978837589407113458404559407771234064623311920901614315269940615488917708858134001463691221067567414647904890016209380647038432208495517714293412926189656651629071274577604705907224064764392234680590706259585945829052069197797401248336231027833788156487445623386848528692406681071323488590244890880637729775786370373820548049918098196718676398915075893409318539912324617527333599729845262355216476227934752950557261069368492280799516720034281563027185428350202029690212571615289297385180954341581302445715942100533117766254435477823266671301114806531674708739143292588253708224733382993205217206586168862623267037670031610694146971855518127516358353363582312101386701926456180157216576042388683991252162309186946283012988706873415813445345388523290787235505078622151684623909764994036693803635295266285202056340765234516801169067779971737190955720034964791500778984868254725742672072867997149513997183543612625356776671651142842229706777594496432597117592277792796474451857651217912782795158058739401629706673662617163836849027864363366523388726348509345648949341082000012501841791360881644773148917901231900989424332921821703495917501179866105421862407263036681908507853812737974313225786316060415089026668573223448117210507759743071080845800681054242762491963388423709138051898157405423950714016864533063533401567288701945836332086345899957697968453918986257375483072639851842394687060788703404200695243658061703134461398414538794661095553128368677516049462960458200699823156165010927723961028170421824528178376687834160751193773993139220396936051381855505895008074319347242919127564524949536392136592862003711834030850694117613651326572834317276067350374072374426758878240162187261363914756663322129600758041686031866747630518341905494811525971572044338651004228799841040295829214923981601819294332977214567899093556226475589492292363683413686325830835013665706687736189895900420354989652540234986152982573161858468828284691580967026606497645114117149484964800435896416560013788761746400204284324373093867516962617090143387627340644157549195989696357947609412723050766575415082446819170935302441496591814335067657181558574972034497359477161814454189196152665579488166142827330550447507643535229967072181105202202155302537506814823845444448575058086368801977515866964344695652554509893573031559134800801504296624832765561054685367141637006765798012976760400836270306794364012974366333795455697647607591721048543671773889544588346412229534994972205075459422933824633558519990774038748961138378371164238884987371823232912715772271615863210445435427550993443026369737184028090050980699319655999125822697715560124162567806411721722972568873713734153216651159854196745100863516080367245184532649474047045835923338249564650674630342428028694782576577382353916451868852792135303691642547533980392308505534132447484784159446616065871585161679679586852675915320412147431643229826381819543745718726302115869874127056651668155974244616863435953719402091509617100918246600359139843439118640041312334904794917105135140311219371651343191289522903488102563244479187091125064017071274990500481902344438505131781835280351092734202089477333820796146204790937822316927113478105676229170171020991733599542843465469249014976249029542531629944152554418771003476597566254113395365663739867590713259010641791190675145384342016191090493760892295987555367709999835722462305330645996970383329002017694266127714362802629794166904178235981246538138914954284307298318489908324717302645881436393682557855890502679649292230673463628852486566634436093331118230415598340029767628389205240493245652437038049783650333535809872040102686951962469851742043840185839606496386752816283829314084123068231434498781937261120816109034907898852682732652833136493793819638763134320767149927690862169045943804838761917683723326696833951321104829427671502550407696808544446008802883310256253876989844350722666969932889479155859644579531034111344479364324215862402548668029739372890587730171144962919222305426706279776989168755085826992940370318808708906135389425755410354544314871665010270459121382979802902431096570516606513295737455559462543017314410694174584833934121702875419073483514266522071389794398278920290883305005277634328323253647391486121877319644817905407196815052087135476336624562602445261042715236581258707651527313953466701355981229384432894737344155244882432566275125799048819302105181129787875975338173465795744356590893222006210965369399838734130419426325905948249213908468892999247707310776132244974621909757600513371989495288692292154091174345522937925927930847260759132410699169795429923862738787948945069579268902174929594699281863253105614690824987713113437553673648647562553782112355600145065754383008222282704204917442285303601515121346102560048654244940366385197974954734024529336681112582856194759263241898283557395491801822121127582860971464662487970196413304228390189621117211713018648926017357196989043383932383451850605930321012836504162019064696453053191700955110142026868297750885258384846221202231484525087177444048822831273139489613064208527144267281730840803986693065839288398578342734463705268078894726388996019853533269752410889266132741873187838889489919744864795885553071811260790774559479884327842599305991198569336935670895905702384644231439875467880453981129243491189119026354048083830429335236747656490529078949594005670034415383212848002061527246699737197754494207564222307259167137131680214555909172333658597333791863748733533020787899482370878284004507612145704040591692544495577736311718024109336997400121449149876637810023212501348509044998490638083801266959843773791612429635212882736837939527448943266256831601742936355309662647696463968661165892001493831108346314732028235503426891292459477311927424000439836586460110984145580387485629913227194569490227608544707018283685020871472714815029542482904881684765813243464882803374665129707175245382238780228403603860844915267886151341180409716046610219927244325707720186247142034988437870894516817969850979571138818446694837764119854791200958223637219757521120610668374323656101790173956595659390876332097238133331677470944957653132099802465449526140152737306691091446720690906360055395034092836524733625866597617917875808716333783201708697015260540141170964400746255840115432286145978936781431084029015593638963892719174971845519115368549416594266683800342288786229926466181506530890283355085592597327060287921868158899270630786547579318502249851896617588802879949779154790486505339399101426215299484054558938022948962050122298100564834279672263176792569258688844666125857158988033664076752187176087912597782469605771524628829981826541708704886105975552699953785258731362613911005091300722683582187346525660128999555360938474875687835540509754586965660330584335232197847082318505198245814267897791247834214466777484817612414499835607327045391589926498593441045732229346637499237759157571916666267794666434651051717226714130706606346462904311678883660709141643492301834036246225588624048677556100252312977083119523094549515146659403708528382885478600939941387483160579042856456244814488959545742148117416794946545521258536569429058299523845517586167939866667789860297149027329867593425131050242599974145183006956253842675426089930245444801221417772945506115391887894301198512739995988345723376488449725546467016937356507720443280423251127972681378825218693390210283782301917220797980154707868744663291606521868720358833554583125660636968353538778691086634104006465334036598610050629027756243877093148269932028805209153038072697018673935401299724633726069439823480129523022481665118436437464849220934588920316606938694248986012211743251269541599386425143397364835602114019358693165457679769256674660815709291701155529844935846631814223863171949891387107722572041328372486912275485469585472561822176571951154860748454766653820952836161638606487129630111272044592108734963290635772934084550612126371268081001754587856099837493415806500425114574534314093851989704568298212772534900196889731969263290822528048971899290755901065285155852742469589857938540718436019199935946085999351012356059582941055240056352191329810057638703163617381842210172396884023154288301945442197659096041942666168476796620293993114227009686896402099423724840406432576305372701182013811562821302817099453868066084309321392340485543811436527606070008147281495781307199410949514759696018990113596612377785360311800051655608175900457203647376948670103123208798988915912516162903365421134814870253105364112160077581656680358350942201232641399326272052895408634903770975830890932690704975234241598740835734399797573969831359442670439892464168658199460871221427346547476431313743867052590142085848114919901974126510261695120475651146599060835262978410868447974257870894618539441348795065352262832910542760995197296978508286425884215238556720611647700618341441019007476902206411632815055449548425430748712131015855289297322480385572829097245459533529183823266399656891505519971284053045201856004514362624949331217694385699818469640321964328598397992221370901904054159456884070655281665846761466131286971222965688180299314502285225290095703200298136627854815000593557585505923368692052620406113319241391531513362031617762569246136164101136025153657062505600491179136418256595672076801032787528476039177603923996999646385770218658586148466764478095502061575909897370948115302894949978786098623791001842866702740037418544259549301308771368137585190965826917001773473869297864838442214343434241694561294875447190080535247744820233800175394103935460747279698435536752073161315903409561558965633295936968364956800916479055783988291503021484125737787863087405901787458927215547223211016482113041912367457681651950707787690953176659397744259503630796362931403460188119360851043405083596843783936937771501792561021733492426852900886431569465315128944020600880851802092968320981889134414802522071521922095646680870660792984420061662047169001762286473849589216941515229112421559116124686351173945836874196023175608295468063119474803719338089136360669679045079220524954945126709428103997061270185602739306771012899132198961611807141232119440070746708346795391484314213819824933669802879411362217857935284672027384985835644626821356294924850589819764233439554759715734843435244453852857649478041474263348741724582072338462889419724964059110043541331285620590623421391768762601697480918302580003189206910690855238066967112399635991601311375552560797301522204091808432707201301574537404302392239553540273726238356401188983475009920815725379886233751866116343883136130923619647167498844540057685367174016390561520298241322900775115664597618653521406346258377393323431086413766149719193179199720975865084000928396060699896916624786190957903484229442661463598785835859198563887898469907963662591667828368035284082852500215609303585369023587616909241423743456269198284752988341595900592352948224609082374332580629152655511113988118055950598147403974266592422936075332080831350793912530067797546367409583505827792857194273551575577818390144576907995741631382980858287436397295801870114809529936923750917924936157509753942438546206849734098679893090572060257074993885105433138676361283045712325681189717932940780062263759295884460065074000771032806009420947165736627517180508976331450295087023490448570010249493004104519565961432134688048430307210345067553712420947271208043883499887159032104364037564585688324334704645864052259022156535284081395821578436698783245755269996867747401630677651350748776803110715198135507941638392179879852613487784333865017227863848583944189800906463526022955008500847186420154030720654938961324380098725703437373647419270634286104771206519707486753253435347225895827411940736575260852303060643534571718043245095290689982169833225320327511141632648556794218319826312632231224493992065604777400292110768474978087897003772557966567496575224890036673232274274926789885630360549129771715447091637477636246604225580034810127703454386644602556050173515131490176464545986331309807299134599641129125141271263144085867537349239015054933115748377697721052736414356965748392425691416385752834814732546546301815224733739458365476793356075182121781814432272819429647657947467109556407740215391054033519704092381904671763502009887223238201381071661905376589617744076625258026639538645721200304032570031434074526142372219742407414220352876405432610620805312140295984786022805967717880768466190929390687484606717892627485021754481534450658147338694935970016649648292196392738067157121112274156775556212657661471393767888615994316574802612775415809973878940568306246079909192171352520793676866186524349170567446878965038695873583261343712448014653388992704392104273329519769585338422666009186323767045455148098618823175473519454569781630137574125886364068114202003518963013878832597769272860898101262831566477260082860243429180521593931945471806326901622248289981212103957040573315035983202259750538568033549338282596843083365286226411922671536437387746674541511814030963971555893571931519326647520050985413858179800900530071284233926804346041064197944642470943751664369228358169942777919937044883819534095286010378804016884713141126522597901475752936731629860624269166867234554656429561188274144902795261252425196621255368872708171640246218064139948946278105942408483324477292988177262897102632543975659819581684864872712270243981901241105083037443942960137882628964316752603132840471009181704766865118865452265377591394072119935488036760789481416046637114908667259510490512801742733324667108511093750981244238900359114948986159949521109412384649471799294317022226234949864712706296426140151734243028117409748941644456169893344015769678195592160945521164410483199051612322024548039363993747268628775887106632187120008107403244970637495130067768877697385302585401458156343885214840672748517382185527710592037414904675376749908876870483058815160261714749411373573821636665330416273966467347714725453916405178439573886010469286047129108015027424286959664784178091487646565442510471379164925706958831466803115849032924839790817476624751977876602520909758272054272933030001007573544989222558640666690208135488790761898356286927606888024968221884224364253944857006237649154957271693093063814891898829574542060767660530915245769008184175590190623700033270181134474449670060098491450631281420412546350812917332907122464324154138465446040043362340619630288775972332054894912374908850250978310261951377983991333106768236247521090371363804045765201613198811088537280629772578238902863212112931055899398442838066472295981667305992077793196330139226341240231576812472585904626354160395050882467483986789086849350307674303006063837658858475994841454260003066042459072355665426748248699754825102167421750251020895207093658506372580358398174220736160721908268237101609848105366209977023230713279006571601812146958687675154828633084072126452389581060024015345361592499715432556444562743299036920687477840222769227273665871070138785212572238623397799186696815879047279964179239373438288048742346360835533435989095584434971337360181255950680992389076819693073653069236837630848073987277986232342887171680153767266899691624538087110244596088734622357167748983062931704570109324700361819708258902449049221846771577770763949119320629660738792688837578498029894927942407220434887903667783588112746338829719538941830244867477011543024719901552684577514998643124959755966021379373115754492377192859446169227848652769832306796250599232967215720051340712982779278456106271966188356897430383216802827592305484102992646484180917569427507875566428980952246501289806691409728245904078223081350904867194357163455926973257042198764104288459232695948591179650949284639792174062166817958543488153971406388976384112569203425556125912198023756419838876556615143825133997060479211522106318031063384540258918068125902515340594232016288259169828643850684529943626520785080760909935742702403365116055515151272688648054321896563837943415028864407029185825060492381957544196538861158022213847557071803690173971007851800710863529144667716747704299263209665077848375511946804250560457846539702936244989390325661403203440489243852845687691567715614510862059175242540077188120811845418429445391720141370077972347253574359813398271188043413609356320017966728375842837567398227640692810524815056845024246020868257708133004195744176037880625256525454591530148942139163399602170991770733163770017571260152702238963218418371557582810549697346908113867710283834449389133719684585716161202931617222015611376755894697886396665768079603775486786229484350099223896746839325418947412712140581147770699754682124242457753879121167042302642403426767831969041002978625952588732323834458000301381459567008038370253052571265728978975680258135607927558206149990560502902423899816905717894384267584971436293715283810360092231712460470532290644462519119878761366115442172740517225161838258522343168200715457416541220895799206858119091190724429950195507721064275002308984262728736501330635599991382096072663967730986243926453663400598524408337656089748162993723320127265547556568884578388882603464894829825160106216265364712975398672515777777832413126795248126892771866873114466646240995272166340457438945457482975091055410097745185413173351280066340155308556862166458195707813193683567987413909458844251379071433331117323115146686682464836546190251831673870534239341390237304580626791577888958097890823997994258589253004758036603354615416786022584248405327569909540290491734877305440537381723901378581077060418336505469283552620010078981371755395497940935322486790972737809644646976584601297703519655202720070151897679879561169963059369688189075706384798133393609714556947699212236071631716104019961924037514049755107919448456768981520832206622458674859196659638286241694738088131411985215716851924817381062380428359686261516804892011542647873990532595124137467835375774458151094605788837677386932740809609632208830120352329728267952756314390375090893762792639693022657070463064570895486817621881918760625761977079513917344231065401161182251084619064666759797020067282688914797199461378864419208037695338869230461758950341592312373976549001530666995138820418437423474368002095198745149094520225066635215579134019894709725378965761708129394098963009859790403532404307787808482209917726814246646294915348045546323274407848143919643134053799377055432262296696536202931809046068724235001173902023025531684542569615109322649006460639180766671602020336283027505246029717311846897336414803474454384430969346716471472785771939657528068924404204181113561931269530981435979702613280464564458749697389106341287090708970543124218218909782356474235575915032661485296890646959585743971896758430700153182277817057537613611019394677323263986370147657706458556641234303430114876418991064576446916136436369899841050156586106375866006638897714633706072658212583783527886466084793283136959247370810643038589351259322353237682311415221984294242883559545318272686878887989042380684142067813438111142366678307463430916168643332203759846616860223325231356005837693731214923770464147027060180585913122258252275517857813099805555433422404055989795145417700700994815696893891856792362790202461046560120946023829714547678734558904795349483575126695675907342781213792849454909001051858828854123936273880907714779059374562044067389308642707887137220340787544573400575775312373738659003208913353326584690322409259778620701638847004774288046553645323700643086412331356794064167470722283501563613192251044367375309910755587658357658048903159818546956901878174587031432441005337759659813306891030960581186028418947770090894336115457999339988451234268676205646083266756895236678150050511212174338383523993228566515306906595782278242104495115464924061918901298769743265994260906275841521925461941519366147147001450168500569630167634430041313569171809208418895144989904582078068680961942382500210843543390305015687831877173127822813880910273642526492082638729661672574083661843042851135236176251606256027213614565376075118249913650313365742719342122235293729934196513540462073524952419305188540204931696753819725790816418088561650156140748148322343885637327778657511954355007305000837085100148852737691074802471145164154392765475313918608484255957781016966130947533685391698457770932271108806463507277739418863327441640823020287404418432345746562758171821830163415981958421803517372635297875843061392347317412082766050240755563769651272136631989364454796741270867840068065244638769887133921763537171506173206523681759746865787400561966251496242390683352016226896171362633094022353750667100541702359294079275286379957849925468743303191216657168877617220359189675791932285018786856507531822905783373981955084749048691956053538609103038978825295501800365389217633253859595700703277829961907699734220387956532693506639159501837490772928023603616473476140063465832670180283346170611556585351931020836917664349207137848489099009144574251981258869738705960053737795252934873480412485707504284963744517915226615460304802491976076686264392891899019349486756286291723012294186265687872812071232960198797186565713680019155227441132515723183966364312709062662536704156817369137620290374872614328435416032099033936847948431025264928666802443643426817742583170236237564657829430769557895045840945671374437238268134567370497509198303891529345093457184879126701306305122692672977336585500551133386830986291241549224119019224711068488723281661820861046455272174389987664940154677750085060423008502891127432872863421922279465693840406872698299334401207904944605881763084247568387921290000732258227856429000915542922112472480516837767373517554610917758119372791736242751674161585618988464928614962804488130856067184574850578930860306197579748567367542032074328720705958780118492462266093079705123582615433562179251098147786806988120144847964223728432461293782599308330057427594353996749577776086408189123500557044090300390977853483927586668303529884585217093658717927420395856313789089053790648903873749520720411980538073361977329137257992740768616948833839425934343116859422737683680921182098095833352028145584252124002359639838244832437124222729429164863558587509919168977574773651073850763756999565342659612391285723870670141625658587634992480450172977616692758392341782841753838539424077035805555152954501899602344537276345926949272790026448085892047908227168832037186100722965393665501031590344974116294306840113975007463611153572013999059612091357134053561188364743003268093326401152675130444752367207705582767734244182014252545255724639401794498503125435908259638261631924723400263861325147751774870917525617298233898981928238748482418958539757073668529338881968005577380366471570703559128958928821882510242155110343678533163441879730238814477017348071651878178131836598925355340509155724266845557831116692970742388153572505817692322172146792815387600746385048763777591704712746529052866058025052187936973636176108771970962361723598915183991111970648939296300858016839321373935431557740316528275386224910246470216643026907527488065234399065228951329190590076538900082720248247854173019675592313042997337072653690536234037226098818805496229087940114665845781820403678287724526283417339447876295196156451500101312919791449047947977360907755663004031791005439328939084960737573490818726016505420613952624788331287383123582139848921154139215370609244353154266813425027157876650350976436702969635082435878794703298813510525792647661586406747839579080563034722183889420636899776971098301456948144068369096306935410018802074232013520471739966468708973965899706749350321830146324181582825190703110405094145328643807375666904180542978170102178735919969599205555636717304833233105869002504782333084644179833118372837910008922342081584424148427930313960418773879899480692230796204763295356036190415919271955448804507390103682493136483749063126720511975650904404406967374670132612173403257699786580431339638450302506250735482093867661226884151083607908554718369339459937464679893838842980498315105308123402138786556690728868594197333752697513229691797229969509980314597212676534639277773520799091710028621786544427816001343075656065814541382114581654291513321052697469977878555578357145755596660748919854966166119400666553604326661306179720298579132220839496649882818957923707916848824846809161728625164418218123224421629711999146063406171485945020829002347575315476941571460755324210571697151939830226866224932322928435215995165785158956930211539212216195390719282771701755880758535817019954079729394868158961299470083242771105152347369616912937524696611406342147792531036372353635505742395732439165673542709072948287656199948152306365422679892651598772854399894963560700331436144428864803691510246594031344965543928735374335700401959623614343160892867541557570845527600353157908662859506943701344442978430721006047242983674436731660758146451593544935425488911216377727057595674296666689824110349068535442169547298901768710338240605421500538056185674300158315354143760043999577125994778469713696751857520336499660012129056198424139414909526276303251510967052248690355176675544848255822503388206820166125671863050153885500019705115731123785773744695910326711996627059863223633704318066265830478074450802436293782239320544040231705298822692858529941579702906976507166840642709483420343478032686354487757529665268041477234676322290506501115916621056601712152236666301147481151222915271293704753322479467023630163210185972943799633697142902040540833102969842436122172681911843758412475540198078642627872932879267290121072316844209628351330646214887362618556302673790129714905061978040904168693133440731985465595381791244050642489095636316627825615411439300943713162707141172290357803027694066110134625302271260697908650201848115326058121532891887456993222706895171266082096226488015664748557904895747025782586186030968984015902579872035959712345540480586589686009727681701938643855287370395862605892247235705619820537357129135593206126359845503110491291286248746262514993008198436125060616657152821563038894548895400503023591063760723579311369846673054670519686074614715773905056182266735162199574082876453072429430982003039070204427478823801736462301421274377499553570355022053683533118565178292167437599872760702946287220536320160601927109537194987821501062149547577463848548265643206841703525221113427604777034483590624322728876943146539751702890537080877753937221737469402367733225133370017616915759737729180034292948330646194431869118291908330295649030424593425631407383820481193652960532732416168587375446061333004680983632294744891189854353045062979824297430780470885574508297222010776240796653510087058811804394965798790287102771730970628727104532932172814409035104569316860445120477094679139457587103226857154172312405723024848615761314967415198555412836807462150590157436069794413605392210608666326482794074878543778578180840169229136479918942598967735655717175063920062861700046472680047839636926456853409472657285314975326009715885748241006491509129892410907253296323776528967356936483394091770476528212875015639699457972669107286476892690858676743984572516262690253330467125319334293903743926176370945402014663016549841771807464310172261386514251340554324293833868359534751668828182120672932359730809601030431273404960133656858228216093389477858751589140043739947032180506006751060386002757363837265530837931057323141127372628107969207217246258295893692701978228783539717168514187992244426132319628644586708904025444055709563356823391813485454355064934004292170137248780828159088199718885143775394464185086331305870307483244651730898028183302592100801201105640102521352555369074351231960971835732417883924813831880173508750733291156536206062512900701940841662217134468852027096456195848744051703175486371750236475493644000248460251422953369209146870807977437353692282202008437148904563644321122193366147457502133140850543692873486723357227597605640349444515803747819385274365580140711654327523045938522010147462382386418481251443228051886178197616319948430554032894888333312713837067510721895327991269517787438050483060916186075364847172157411849357350990196513472861077760339240768309937298666863628611878184646863863662218974188340036463334900449324405455406053544140616278193770680325569187512614105380648251468430668048470620960542395109377432651005083833707186748074100970179443259250093667056073094351933508659329792368854380355633261206712133385520879993869975561683017925319277539262734935280131033637248171718120514983213248786679048560293971593110933619833389933519120468919776877344435417265299963124978768289417676877247002876342740155282188087789078023520073221345669945945819803373899243899526678400120591727538557335043518746231405254547391986143274285669997689448055449974607498039527679415228055100104869583545085108132033655136067383990054320781515926255372932208590331447802028001402355131966920818745268548953098551585556673244239933054432126707609497130384872248217772032348277492242580237360354885584477917493369558773686746564852502812908633408422695161391383884540523979268730155958477930904453883487574693712674230422877790761004078787381897037710960056912642205914450112479302467288688153644706733660610486991829495591130469306862046934165835359159008549987938940233241581170233166304161461290380208416936056789258891143178645052683203214779684189591795305033185841314942885644520541641382911455132683750541828952616959191203202641450421273234280290952661151208854918812547761354033620791729607019096162116408586574735409763884817207523813474882380890310314510582471730652671308686772169789332594828434655184680509234476135142568252218496560093009615703758519888937267976274074492877947072667780094802661960982803580361444394831273603194964158441409855087853345071527937686807364887559234994616668219045370624464079565993848697236608805000147309372325361625478823125452883767730202431080770363449414057086761316202162300779201402125400128163163409423072337662768081633086754655804167289852376406211846131187881435865265537111132401770281388788589938643989676415330684008173439891669961746925577077424294178003755479742256602413228468827485625041273644097504807772457326560144666455865474887110710458451182574535771140243321613553765399868178361672228708657880592518831829180313494914051848875662847566801490776018747412916635649503046741086121135459489166346016665798662111494346228167396910133698830441417641455214756385216070158454394577916176485344855181206485070539747447553354043228606574934746555467331099516945335889625789864675947548925079256977085208235947298819556351829499991207146656196192202908213970937081783873017365885030851807662348735055141940983718122761680066358246393362758512361300304895440392169250030660701100974727889284848336507463079535047194777077955539626333455836222755241571360819258123523167694236420908073291062036481776314947263697425709888794873842169934074812488686031405638012123761798786508813382559130319261268579209514627690148936656390622934237575690791060203369578607658181533289193255770680137460102015058525144594773994657335310521575203269595569794424642650725917455089142587851387288107638381555985236547810301733950095732607184636473594668244322996653302377789535460201566492291847710701942652097591919189485434934681915960290576784945674553302877507013897235137507090662717150882829034647724238745804731147802975390287760830258784589027063227776046324609237540136140212123236361525501841117933628346940843012573208095601580852859850945593871630422965971468784143334054436511589955222739277696331898809838013065937041964956611570616019741570027974422558991039701260503769152529697732578903240304902200861570238137385625835019137454301180091961076402289867472201026572186141392649979617135427513897076619118075222937795751969205183927375411267858023809445062211129600439876640905252159715594385556620115217449413876578295548930560868765150790013718697028430093498817353620418601034034354433679043019065997687027820667754645635741079790748300919453629373351917900987454009884861474345960306108068612999629097893545738779959338792283554523164863685518088109751475699883578866672173885860751960451489627032587426138744327420296063704177362447084549914008213552327287818555644852685197838423029446475670239157452485676366489480441863364193170108064649156588214833539052722933266511063850943299903350957887050259316054447778073004854904633580854158304446661824571563943172077449334774044333106023827393876075617901546011046063053418790838743306973341359637144796841091574250506433248562127665568589181354267677821410428063099263004500282341658346733847151518247740365445399922950123912015240617244048680237560475628767849176617983047611644316849962311736127033806325084733626207909928488027611212631717715250843100007177770732952373023702655195400124131492299063367855762041258427335151105751629011708030476906636033971761297254873095506710460235970966270028838662989850827156378280751317114241924986870849609706606694883011729686108310132964155579990497455832600839163706234137530790815663587706477792966036009065201913860960882287136876318334358926913830543852242673953225837663949209587449993527388042941872600389437689544289516771784191847614592692423189290626954765204288670737811807778385804270389440402716012089811970322763793347285718878806453818412542085879224553429100317350348539390865988142129377918506979300800225812296624516343777903681504995482563986985817182910709977542895858950258403588590007148366406400808546235261309556277772679063939229313839649887262474830421372278691357106897750569965158015220767809946634444420389605042489754841037215184480481162407842626903177150084484967683830728820895755499785388213356658790880591391957287887758616081587940616550797326682762141470704535080355813839496258479516617452057358771036630661471450855945042180438446247774772996957294657772817861066313040688942689761738290114700301766163665298352661115396700540934597673751777626831374166906011108749110821279810775807935802499379464160126589284425474815515450652236659689616651244355789137606393693093807975733966449277632309588572550478044261619436703623190945842789394309368451075233064385356974151923792048162146343954910191738509509921537680013198992906452640008551401511766709934574486242261872176346392425306924703006813178131975732668550244658884262014217042426186051821062518414661705388686532658421226509478601932679873809023212225999299115371652199751865795524298105073030148331654593365757038653194849840277663425123599081547800950814319005691413450652944687311629769185304208285300031942530549087685852521776815772643678793620917141865649432400981336958291265335115613192835570494182701334647477060742342842819063361355579722023827135207342593368341650213157484218286646099713902414015378085780696760342408274517429784961884742605096330772821213602830657120950383672605950195623301511514356714941947080782664108659603599834766324377679376699092065110814810243401015718090733714589412788736470029464717733021642034586120403946084067950607615755632341720949559555946452274701628736620312360295249565212175259709700698172001797963568441382597410653570848348914944845760005347538090928875966181419169466350897344890949296032668064490273552734345660108401430506274777003200547610821330656440800532136602897648912035814467817570187897939772831767286752066503079313127226296910192240917289936618474684692623284448522712483186220815757377969834830184588649297670224019409613432870032885551830827136884610001465103007483473319470675875941476219066192715568133203527468104798207762015216909605195851205729016140700664065262319493079506612822160744591280045422993899832771949781035318657764890191902028629805724503225171186031807225365426629305493353560275864123342480807279401775158458155111634123281001564240750391355147507028900363427128851585153827097366233659145722660870816992228199569298422871887142657034267541365370612099578348040854574503997218944048223355824103058724913059862950402914617945088333747330440819788545706985961713081601983112922838430385762986523628390269366239102129054984601205543558202710616270294850121511262193536636549081144545120666006646847492649513695429995434678925929601426860580630600397662041127888117704871980828640513247546524174408952564295594097998736080686341353657106688893205057026806647229624836164441946731048237590371727783924609074763252086867092619708662884007141350224402190403950578847553500299812277753044954257059137400431634669174796978497554027489590656670966100342371621961474883997415046691341968113554741311699613803026352245342035897106640421262217366138791599987372043927957933538780101579445289222935555289483020300674876533463872160596880528325220936476441734098301519572464365342038532670213350141654616490360648135672017449191631033625555323034204108645103380025905436569206424451046111570547309143710084583448806476064542715375707406547300812662859106672872464887019107699550025609798432910950263482438723444731488529000711824763143671653727181957806537943606322325637517571111121358596265448968477027078736779512995467852862534940022545720603119863387968330619238053743992738506389043345464790983532773039340650272909947705866055598830259038947928968963473176041689694000103618793243972869714347423966537863030195584666202373004972922900124508991687867609610662104379187275645482052346381854035462827570618011603363750668101684710347277918673544902782241739065485332690756443921089876358723845757425504933033517042783224307451033314889128163531719055197635726828050231606754684456778869517456835387841506997928261148934281277506139095148135999892780894940597273036773953021238900563061435332841156437615549885275897210097468853685006012124981516399001972669615900189562342586080367197755922628005185417957935784871080882126412425708620408788941978192565196033530602432198403927617926729515623981670458615731100405453080548999382726297910262913251557341077583212156841827389715360605298900327953203589403246808096412700904003975596148939910490759397159839351310198050590541454991676029060419098908133148015066024613704455876567677355285620744742459824910673298045543978251456364652050966539908929227757406616043302676626805566359010580804732601422553494693348136878579766684863116346802843222181565957124021016273248712019695724434673994202709971377200171419600896945561297052659608209986435596885876278170115629305076388207067278367319364756064448552323223455261543970609188491444125813058235490518389443619980309787028219838246312215762133080019841613439581563689671607370564088658299592483955564302555061913075769403564569005200830564688410831697658171809818997339351277404460823776602322611169063830098050064823483985099158028530594924413776128724419905480790283881728977497095106721001947183316201123314177234460578859162321676696638822303040285798345038404548201144045784921153336813025645563914238159903271846321087111302267813107773872437612391350096366182497666201327303818310101209272846225302625586016110844061201705740396319166012620234277252215632511911388699879034532375014031661187762436897129992937328932370630443098579714756049845123970761983062799970552309738988004652144525696596817521084755454436040233444950980522184978176473692193111780590537144783691286416767271752712419240285090688353197379198929303747575978700070071940962024724069771939684664352201271626121173692107685282737238160202886477149884343578609803352582772980629373448550411166991320388337890287255193033056294899159227462658617652404645344794042946608366835977600586470090840957601665243414570876669298359794445173326052706697374449859896313075198302081277474813794093597378314597358348290732476054168455266539897834290095879173923973862600922163656039278154450377906988516864962920121702079948541886716127022781865255178386069379654981409754513162135447441473356364645346428204905135884062455895461446638481429948701125646418102002530539245356681023991345615858373584918953925916938038233674411069346889858938088206023862380959501601397555596724407678722461414156190771664624334020377194657800333938793075023543745652228407020601424850836235026919286679488560850786890806698098913601814811395665854268304251566591988790492870535965468571004090391001759738565523858825340981427388600400403634673929304526656083793005163391456360329908832512698786327643660434515433531711469192128183930961678789414772140228230964875521179041279697826290878659307528719765699800273456288959547318187112648055763750496276047052491481645516593320655858588345393689176037705998415672630566086009555430899885511608017763098462491716724160648432552220983080035429677632225034096544838197751292060800490138955638993923040049076962340189061906732520365654985991616050053326408812600761305528908535733775830126844314645598560072983120278275798683429173650613316836314467956662295151310868696836384125610861925098355191582297009708837654515603125743914183785686050837310188508492322477188075671363888214190837228547036760095092612756433255155580967474868384221700574181679366675368421145773901763179715676783066147011579794370903554860723924677827140989801453398033905906100705766774817544328840824508605085191103845866813841804487744361865979203538875837142153634142193113444664908439363634378399092998553832110680291975715991075757126087068042046847767639565908833153066803733328007169491370740639880488016267773815279919476820042241520999688620237741464375053137946586400834213907880546957958477764872479480309413283226310155900414432368702600540287411403881337162716990528653869956239234387262193673971679942193437635476622713814129929274112063809381810518629705084235537450070627820780798588190820651520364845932436198085042149906130557977446991480286791568570815948506855143158484941071150323524044110820300132285036839891118865290700961396957074448154793093217273828814906614017641095117401427614411967343153146032267166028343210836872439082356666588934770670687682552274280435844924143570152576333659701617872340092617728680716301239844422943373508369270662449669315031023414022123157156906910252982378308134113143136242476244065573225721671886058065122641550716553783706048700193566037644940492084030729949579078613238338002365481409402908716771788906101449333150831506405636223037001254641746485808561180470448420046516064178693004284155872156293029118947869653852076048458176727651284403492420020717360529774888537363694111526725300516021872576445050971790011117428382997724009691377729936061450733895476221447311289097266515690745671293388634450588661599231329951989268401298674535667312122870405290367185629279616352569055048777572097981745321072837351911123884838162925042862056948721264302702541229735405729021071637629584790776435529279517225125527687236387080465619035346540047430089533962766068365663351482355964054523048875732089583607740939179378364431618264889271341459257992744134750240500483066946972230856466443014049352196352652553197251830742203775898685255693120263818245295674108981047561107740978043028708919409838774675361171770463358731902329838839914947099552780308088537813724076545567234834875742532464888741230739273248878966531671630727393406447014906848464215513379043694858629246042898742657704718918510141484739376516994920905368247011644067409950532252729803166882404084262218185349795028978803433920239727516885056122345832089988483186602320345977483049568672612518125337037267127057528156485507227606734334291995230909678373658004892000316404266479978548340894153265808536301623641829970959394916548019937778309941966351110811956829794701303566644897932564105273827192231464078851298977950138982544476262818035095392741600334048212327692241414511515809247569864004059484175842384146205382153347477336270769222900314551539373543498452405968739527411952394882574245120147832361682109226921542496739908736222166870200245403111359427681143035106280853388408737381104397749380142936847707479226070759078611604193507595248337400116185397327396633799723245195146505623645906148883618817926762603209269799630492932103656734185043920290624273292421825865462572019328109274810422369323310830107659293790384692148235748085063983804710536465559842165428118291474284422987667819926368271291419429854967283701026911306910015900606237650626023128203192401772180216245105027642243702883599727023449494668579407599458525951940099102154104397058863258105484482480683256710996219584660365368775328011876580781324054574496179800322611885731570407281554151364794793581388966895892007975422023739675824237828563596515955557611829246591372216645760019219112121804571648129482476112308742604971522433160322005159336834840962136877655349523890611632007642994386459948163867130727463314476462543115534070930609511189927661055756208581539907771039128521676675523551321097769171546198705667536125835795769622810242833950121911336324016827868813175466130400733897106841860235836395264323051476856200775635867108406135688148323189692057152032402092301996327434487896245472563735765287583782675125040140682478089246942725702215632412488907637175924761494939784479276861634965510184745449496622410723433034674275874216399415573834111368608339734947278459325627970363848606351160668910866654435777445586836526191304674930330538928120554576414717366419819732853989648040356985979193580001322186702741832246945866665260281379276919432972069898458446357850466927832245988520801159337829572295026432253350693591207530306649089660124462506997711741661443875076235904747100952651772901272847388648735321118997330548228066696995378180457561513480572943013130588931282504706580713133405728154084516027411677418463666495670620636945838920298096136118957513936949314484760567963136965218244707517449061428733299657664242040198752735586617402824407166751286950331589844511483887194936602953812881330904303890321888927056150761895176196539917607890936938454918335620292220356907521059007571085161167994005818625506410523456832530656241551731484541679636828454806772210779472923207076788861288922574676958776812897554814383191773150137150888137430120861471339084286199991827924025102508299631832647712710070524861025594027587218080126986163454112202643785157941460980853966808198140721961846887084416244815808726308105464406591940264509526742303401180124400445006846351759851048857465172829893405884379390972127072175902101383115437020533852382542806739282263087301574456137947079463211763994621184067527934647677567396332661961951013399365287644151508758413867634414211947840965114863780930047823631266615185520182216552215988032375833473968263677655522209283231004249471580697249373042516576099828085493350236453615302605135395533708958038205861326432087828386980048879821574327334061678366430903682111749208561245426949184813009203090834351528530603215134388802064060882051051446304324299860821850333041086686602124215149520042453150285045158036752893824454573403452073877185100863069350273346347860025470234625784937704067963579076157717866676392356231215227280208596750554141251868331045334710928906437597495395304673506853040569123906760925917678220349856981069237054655533995708931180185844863444026789454576713567260087430741686537153472396092392857133838208322277883898354335097133795350287283349251693390073138303504018193889713292284237276738015194884258893046558428046540287665875727429855807965466429770411199670302950186626532035940699399369422654298402021844825559115185959211002740156885610988409355153092595029886476086912405859945110088825150931380343572737540052183106902327211147954624400065860992391336819158344847225275729578021883232189997229042684236160210494629546150401169672741034978799007749850990867205849249252934449206676242328585300784151014065334178149080838281405890011429284502369294226916088157641839130855285864402941256880842436278191094129773706705447515410266640088325874871055600810491921010551233370928911145876770473980513911822886383226656737464180631674602435339413821414710716037716350867115510529192037124802082660738171619344152702842159953030157371543901326471851969558073835922303858501580649554972831877311958230552237678113481575372203980742922125946811198160105432418400630050799323209024686699536027003701422806807028474923056090094734661397041072113895669774082019916437577461730388631196439516053689301656892201393759156186471016014925092578031793132204545105611013437694094711040187187445117740394578899873303287943676711723748339380173502212354732963371898290888594499344630899144602029868310408252662370583673451170421717020548029962302639168226886625479803130892309863930863915402972591847019366289599791353194777783525005286187110972511336145871037795338838473590854047729406126637546800174092764654469048472804046437113744444109720050980914199962447262043078942243954932388150883704364634512354706173998877967109744049484291077799923490942802077702795217047568953215706388653891524676182611422408437323550840693830865372382836192217636137842965467578694019801826195361570616590796333613553054308750665982609835947567414397385288066417211348651851825152340382405943540971096650867401372744963548514130424562512929220929616366517416617442969314169528368752723529625032732660203002284163453473593791658272743908512870937619376583479793924955425893290781910144636134448897405290090669153066372620503282512762344146705742683765718791147797047965925257232345426962054959594338818224331385846926827515096041682961345425398592043481770324825480696413974060324209711894689956530532885528361156584308607550120301992864459987458282824052101175990414961065655274294237699851835996303105790963484375089333651969630557642959586041403922858607915049776588715683349809218341958040895618703890323979090450695297194179342247580139204270706778465483312886712213492268357820202349186316935527333009824292474523685057804645137187973187026971051642770008201192917851737234879075442943859928162227124677002352582449596684064711818632198946727366042279080289031508541406150925270609560335409470869731278562081625163983696953357753638354961199989089803601230685948413104968309845610307105765109277058033123534882683128014945241764862257077023171164132260554987537384681737867934439146717558217750095609013697109627397132391154912317197783562154963270958367162918510906281996925906966294816090109422903365341850202302497415993411788564679327370205548308362338263100087890987117643838116396417709850839611524954925690023869501416652177249140254359567522120788658293335344466917156951880414154862942015001985719795354325888938698651383938206335920100910444378960096240530620792764753105910276742168771902742584641454835647344773282484202144763801860135849135289934615046448948243943064764145081798904466971197497215610350778118539996632460419172914546241765398995308872170016302560160887188523264053238716545970117638566687601757291500711268407070025802325389170514400743351771237504456575430610043925173566707876260174552410473275138024845972701844369528025830172205611321328854810504915455308066431629430295768697796327692053735331829186858149202118870038632953797577333918105826541451178873923039257420365402940026081050084276371571686772462931898898867105764690487926214074366717645178677395866214925123207985418518887895882127724937887672450459966775689885398442289481923832171084588163827406258758276619479495779391204165929217286086089360283174740227425163268420982182655371988871907159727215700171537160348272010538329249081960289222365337936972034367945754124975847352804559214711242219880920061529952944995434833819672572282769073484894655281056960842755087842221693245363690174454670344078754592899274214708379970379572453228761958495333597222380191334824715891523721837520168792571765042191298090219278366645516336136389765440900010619559109540891558550091178279605772002992832060791400013239146963283251898270985639211552355764436936807272440628468151192678319346222128040365872181409412563615672755221086478716502673445390835412875406404263455516360414719127454480724136529572945538976130330176907900656550371304275687590470860425813136037050224366932862815170181506944509224958685044837447682968919728410062117067082904202649599383690960186743199184840101344070288361157406777790712585479100592651028703491346709590905875761576066232572380454599323440314154992944345461095139016672994558070925690240587889737839870710347283902141838694585086995186939618138757170660100935005371522827566418147221388075597797201878766398094494800803999519707010450460050168889255104313349757330302502740032087118014065691383176768502270623323082909192653377153001769373865411334238218761132346681276306626597603744504526263860418365582225822768930641438789980301869433749952941263678706021957268367265121410281485005000954905994260635065173633379362054983873277551216578746900707839925492852834550840773936639214490468718197710682601714213017654000041918887560783665642516611982898677067343413726970684976871412290423228537085545142902918004745207329780093076485031439707857164266067553513353486907047517635034091199005110011358515335839434364070942830788219127552423606055528712034231247080591244285782513448737096982713907931907658269542086933654784111158715653293934175313914424995890515286645356387650266275731963822013319942793904930783492882756196763173015087981992720890573142923382609788803040177680989710400196820635466578984398400863910884546230890191398995878876453476506834822877127905782577861704779155727612179592985231185103580883808624829325374707064329882712435702963537736023566735029490111762391355323041631932168014317770467113364982511923069588267701391784678376388856531894560798059830877360434619061884231465886084936574240299705850366262146766779117433461124343093439786670422835215620426164721407418189936007263237890966116017936279461339221783883250224153069602325592485372022367212276845568805322820753621207683861203843576077140951871850154428167692900544814180378239022855472969577001936028013796160013686111208657160128130945972305387216955312464910789831801010356458361913442399288518346256153548877424098700025615250136784085535973583494152894871139382530231635039606897837649811919913456583653296097768467636363679183549809542051664733616724125838220230596465146169615569672257987100878947430104390621630840850197134750721960229425883352155975045681311632743931811869170452476557033458775748512496593703554183093056336802199776922324063431871639877836223149071462720612014461265069106446266480794192120398215350511452853421674175187891792412503359702203373658044918227318729658534788806477312995127282651860154614612600048064696098713373636462953402197400839507931352076479418737097141640471095472042322062768398626125281447982214107754235358192327517098679125704554558430260403543701449669443782891220312240472155769400311611899591079121731321121701634992932338413445045371949327151296035858490568581608330977216902098192531356281973272356891987379954303057814233745960989932269217427091003377535769296585275186043266384548032638943141355061643879035415458889729772429587034495633907232979753754394084150675924293998561458529975628372454647573858820124513213875279094105729769233820376850428427560740252832892846159608584787615742606059706479033389929934096730168299476107576114220048169464636890762956377266596766782127851804352644447385259342958142725105148578925128965842222897294548284308064047596285403288305123533904390161742795606467299680364941316052146861039575129988263790654259752253432258190026851657078414380770880397585639739091149303566106454632237069814224508302889718410508486009063757636864744607176689957934954488045043906328509762360056356305170544592456654414707420712755839566638348155680536567190623049656595683515250990268893235828171108396840421219279175010677867588913985985096539551963396088246641460675286377195904119981083686908004326653227592325843859554198189761646029837210223461313582245107422704226410116608979938066931555650106913643417983012829909607686684260227969398940022536021416431628646392467727489683470275403512364334174544503552407993152256960865764116718922617104189064641103863174822483440337921157291463805543160230899402928504883299842810536564855174516618282785136285943543180497592069782887507481816923358071305947947793194527483769112131074305087028061293317237652230485874990878568450036362134746913666508286117343027953241909371117284524133594434084294442828750022785561498680075064683091542953654125810824204727940294901963082072343997207495678290703309687842779976091343666015117886066516195632258913277367532745099642482290931652415215392605113520365017488280754982549372494406317434091442598637595329249099671047934182584557544240272451725025911005119837679713577804971025450158627723681743120318653163069082276493420758197541277006317415722140346001398846392625718167497881573237476759162380381440618808456469710388224205767702568682081151332235301174401675036385554450229138964520152250549388926841949996481346824501904665445516507751713343821772935870770626304223530873907840821807229738766554855383172453948067604293580496961209149952939213157784356548363147019826505156211602137057266421992738980962757428240086082252732929721908028226280568583739237289854215992905480102880488796220267715941751137260379514082134314530912366052302629406115713955208153707713395916795984729172518913100649604551189269850298294058986727532407119668516795432963572248888571532049184949422133865025564406321256981128794319325223078868847993886883174738729551208493778521629436868732203087861883978099691703733390220299547300886468580717734029083988674950703714974776035434907999928826145243320585822140209393965652499437522152674959571194824593836557867148369827139808969898015405683384353997059207298617845627713983497871675662399506921586517316565196471392681994491587858488719653285096670838598433057216003184407014937053913182349630890216878395850457218334062599489109571031652944705278248278263217890723636228283210328557318896716349028432202023738124706760884986891752009874606298065954548115075455676320755464396155214531444958576979391241800999361241172184287577634190709875808412334546644392471455157726310882213059679397755865734474589850444775610424770423410822457939208723972155143140290250996046986137139085741355500224247933535412275564634741794625460451678313753661896230784666850513746594827051948279864170954712195427689476507655559251023046346839351401163153117650551853592861975660135530980923141311738856643844548785114948696386720522925907241467289405234729978930887091209767783747130159664564125200339404884157945004153253424569381047177638876722916432134322892330462779996555255841547280410954797127708563343728982267211773813976831080194228602096707900139529871644063180858857589810756490972737776250372311217618441478757135777062993727295698161435773753537398986177152952991626543928299670450487815155277643042020629773276871459342736424266013913130265790568347341958985938386546691139507638049188550505988832823426087984207102684033108865534126490142525706745234007963301039449115299726899370783362582678502792854508175793088978369003116250040896934772306560490039981906660953731260841262204844232361655786348071971272645440458180675031572110371063570213783759610174166790500534951719582521683326442415074800328851545504536162661953232461573373474318957066970997334545103917215024428845859887697983052288820131340414010993716048960257288556770716650624585338304152741419456462623368358206259811145166678263829574242472532051137710455022201825478079878829712521483043491307843226372129244904386050059262974737758777966375873372074278609579852093456755619240676240694350973185107540020743000795124452989904624635160154286017593343072513028892441718851554944624807322940687965051273644074851782060560257489975692333314577382898382855410670887635159764774435596087640330065491334959578041837801819112145921926264870920662110648248765003478591717388904671644666829215661003145246754528391270884791969734082159892397098159136060804627369531800094966053844457791905617320618686435505140627084287002853109256527628711358163046736746646570044921222085556172912305845536840239623651915035579296450272997732132921809173480776544675483079766072668772618596362801671340126464076998623442794362524520652725481987814931321266997440483774789666931549548726097623365638204576762393069024579172982907023389676114733942845411171806005583105352911230646551958228069121458050667999586762416291987648561968079377982100635770538122730910891048560304673780076989279507601317004622403949027872634925218575926065399509163459494431738405616463132253699759519163028640798678357583757951321407638689262709758799543931924612442272818563146743741321433857271810617511253141522506544896553925196023271895650641622125909694042496050856538338141256334135633627521961960004573966534702807472691650863052684351460823041590335707322048839202361165186019573354452481590386584771105218187325471384629618962778007450863663027669327714098432441368273460593735902155777605903465883795040028570506265361475305876165429178411393637393765593591529472497541478188006969042506841725052477056664442156635481942626856684621449625429639577091339466352154481305401886429670092300850882106989543598680433749499094659619152079891708767973413597675009200370897274084075043909663613962732961555782721736901461090534509851181328926686376769949845517217617867670568844563195243411196753240557226472919920646369735204094764621131768591377333769863531249047271944930172587388808898083288538717281825857471387312958274738466125912562170012467179171382399347704495001306547364934070279376566558387064490601777476800707983465481937615461012656684724299886740439636967548728535260491750801363045582558907971242150279216584503813514451160617424231612530898691739864606787224381894828321151529360248802764478044285636580001213273643937168417626533044887932227617717559970876723775623752743203460882982995688427408440149692919649984615099848559304263746546059872764183779931455930885153956137160481507685227428039152944079552352105800362639698556519097751204786233530469070319050037063151526611738189721134016018912912906541946724354066622287962267151291361320674591250152096826117366138263567657989068053553748253117447403916636103026985820834260795912872203639915491403929317370799115625873190743728678844497758598051929762575939536489569361552451499889299545824414458781581466016139024687884984437998170565310466568396587798730548374150207846643592464903953271683722209316714270281545533887388316593934901715013376538715006004571211443838793111420930675902322791033795514575225144191190449689628690285312969099706628652665114191994504719547759272935177043409109542823926861373070731083940989583783264113546929949785446635235137984272984560240123653767090878315870555519668629968318914089392848613030890597924899892286712424024211883669745231027425914157773549672514804287003590217962519897031110999820094517520942500604331753579167122727197258347790530069847564552472429178379975633649315798947369821471489524596353648709877302720198949567048213870963196821021972659394656209260582057411216212895423105986120824028307785956356258845147753474855230705514427583901745176923296344373015668755764530919837227764790929512925979730772592267804844473660035369763100969238998519932179083767569941467572137063689177206357683377858254534737539929150361862202680417914711729075586434725154085805140553054427302034822486324949773183769516481070076321656167690650475709589087086803412331898425494839213335102392688002381600098070194607293979236425790951419328233220209139959046932789126145381395024253697638390070289831500529338947747471103274419288638163089816927217058945152985868787352121363411400033905154843597733381820799221119375237627896653590758119228231817363657505385939264053624276478081976617956457054177127819182436135631312311550263007405284611491439294410073914987315506274047900453886226099840049070582107594049901219675986375490121514817316759210057079616642675528677213118475136756207134089806876575281979197405392800783078877136128127467714613206951837123207682958693644128512181845310276866790749993056118148498136005664019657968826229158805868096269603911379669215770440732807980425686655871223121006355807246152009871096722103734184327022523281127081848947602025375953683861382021806551145075244483837637686522526599494787153164039553952299664673057238772554137836442300899011860284420934283038152874462648239561443698681477975693843174242387524557850828357016530988552641224521830647995146032556590453033667614044420909286634141027666260673105680121412906450848229950503400438684403527816653687403632062860251579534994514427054924979267267615180488116927749345378678849696327484442128897873501197152960049944186302805100187756639402235708935355913403884173134815013765795028169666966036837522634352033109907273817404473116486420869028276734066915170669179969115815178226434521092825564732734367488840179775292401681220512548299900006568534484106827236518535140047086839079260748136915584557716704887792158348642835285602553119998768852057274803368949302019509089054037176476634868692184062501517763771711478303347027887967235335902259030614021673158240355989944411195464005687366842106272627667167214906149331241879773266141207045862576653406893527598698267594707550649615848066967659691680439927078191235826036823394999612199316399760278977017039638520952359355645390839381000707819372037961832247641995005066557754505705265670800322631961192587647517309827745955031664039353809972254841179232594433582841559939444464419893076274433338523080546306821844513585270415939600625897241297984531721253402281017360312129365117393672248700124804474466390210936402499176899393310494622556960045458313571480539563550329806802530326437396653530160921331514165819249421091731873011493502210037932792897348999662626000589854601016009027672035100991299423771774731693519214945435616358840838132524283667697935558811299573511285787811223568874712418594989123237642903727623562459800965148128196480379641024834005665941930991837641741586436883233887938370855884695894001668663917510913330158269745201587775159828556869350327958242532891901969668621234460692502138913881173137242389386397645006819444262320698671773387538675954281553876545315518015080251818618647992256415947313316877017785592321662358466532703084544401831553441533857993962909213975167651898327628035658902679583769630475401202769780684460056162665063004228053572272689112393185987405517150593264760296643715133534426314302980805272887900740951964731370108584388030356771012673090991573271490801653571329958004994796022824719881472535104912351289713712022244553843935111293553807749364552242380278309793483189430990676467341309804535233390735038583431361659480649745772587415273980453331857903122306962029903064978662109540268535067779735570775807307427702986314462220389714547462367238753859183435146110184346155643640469774500405650979866614057898004669358228736069097539578798748411177711912218702127191857795135401465635706967267933040261962098209157383386958107179553913688657565059647539498596700593096247443822936256184303443278809672729965946990062534953160935935129886125251027141188843076095956733985055168317066346524606747625682306118501312779100495049899578367527544369249004284654443905955193672582175641523920175919018448281306845126600507558644848521411887092318404714226756787248823095930360802826163927868594906280339993282620905096244854280114733690296103816925325365671776738689356423157266745814647731331009620758227920779485117670533767850897523238289221782100471640536452678907584062634129232070781655154592423958528362042453202091504336167054567210294225077813003731682904806224350302160782621899588124280940572938304910187136519714135845509739807959113440570488313317438192115097263212623304827209956223504682049434330182253120708501902571507360325817720958239916055982254563217343148534418870587172705885366358691031796089963774073943353538091836378801354148508418819623574217875196190747663872416717544313766751303713788554523453523679210288166492155429438991709563902590723370154876990836226630834124299715721942614098572371612423865205031425420018327978324553238376291982346033225250529030418567213348801553813628189749446987732631096504412303693598781368867431532231319492672189494776516935884682184127908831903136836643245788937059576373147801290983427544549632108197329829308122488768134509107466522967467216541489062639870670857660782615596575997246379947277495948856649005483367876190701682425177897950953827973264688775472874965965237185465971652705360834702917774213031695758700123399053958648926849388953393214425162450923746102935524203219623397115163589555584681725500531607567474772858712283238516830157336617318792842168985314622610502682913633809579725209205842245226078613179821559157242609185042885865804485621603311868967915733133474365934590426250920591863536131390790547691148866323729559641014355916544030736828941060739227177001631323429590859038923581093760282789539375416422293023408681847681765563559357015736942899640160434192444879770156917485668687227398910770512836188729219362631849100220574262026661818991232161999679552129618222344653616986921246907770831986504766768817106613953766077353042268884779273259874745994555480753198115317645809997797796752372999949840389275712154087087093280567805216909653211811983499181384265325217360074898399542440280383861063827247050012328440784570494258571171553421194787386730592661991087710157263394133027378797216136717838062357101867275802772237983482197678218783772195029294991131508803860830136127201296089153454519019074863516572909739601809831894127461299307380632273972512110520701599679987843033403743369032830933239759149621356789428333957545932471340471242303450247211915126809258268102945863391253517829383041427534735249074562267319864262005388183497020308882207400552880537230142195181401309336163028727045095355786489468202881285055058246639950253830468172135201824040686088183025969598324553351236834144705230584028485395485910519104390034767797746132181140492703956864147981056816696637940748069295337406286481236715143800556682684561603359896473872798192644514240856441182542287741841679757160621784677167798727877542807299151003671601975669429991652365650296084561757077904508590372851969322703737518100539013762779303291125429376307714631922655230252717148748734509148180717560849567022646796032314542290019839147420170370433647065949978349562189146406633099392609438852192629738239650957493721179664957558602325098782289959698085251132398925823337021803810781258300057739651359864994874424056269882041762492956385306978168074116798959681890581304454703626670229264339530963167303636273159000983343574759662305808868389862831941344824322254241318933879920828496179970213116996626219695301900989845862444401008575484015249305220843113131905580815710977068376222698760406895746415460044329338572140182591147114868087451324635548334953628687924649006988953162929499117015755619149108318816503602014050299170327797730857180737652679325639721877333424972975925876976871353776326034748262296534664773163435766263032266974537144411621712306707462346694208366069022682667634866925952754338082911939684259118311747357206056054779164931133441222750094425082809399901225867794982385741793770146994232779718769203639383011515966635283579606234675876504781549410062032428946797993756601878749244699791160379168903928372562091326442702879903346684307696816920608668809773440363231394058370261106099168398147494875789636534945570371080304288822439660665744444443412642471196763867603620969710785882194241410998223436965132176615557558223713657869722317562770982211380468771913636965564218965923445180364448974025974891995391933891302305782637014928073137540802555720331721930261534066017353644223336416588978615443798402532389570703570712653537895394671285027274208632337449125480733064476216509185890305525688037630190532764676143775374913997750954665391551826779169332690428221262731936607236233393344350645137248817402321363135228147571710844433100774027655024083495256085326367122019503140288446297820391509553791500503054764350438217915388880063410882386711019982645895404223445892124003892894019035034098907930340960378125430667569197935333006613363407578287461417055897238911230977919053298461045192371983716187130113754393507427750723017696788677725979621584163164833488865822564315494141741214343989456622012812488494076549586992765483961391911317514356444938071289260913213045494440305501549784080965045323379678921250700224658774312395501088117686999636592454868348110085039876213144775855338495030267745612264494159855830583995134852193837403178251337731441776543203453199842151286186674185715437718797386698975568640020952403131258566021506331830957653731922252821142636630522031632643337961298693292177951310772205653403233191292547573201461001492860942340992965192505676529334162535480242080930509213095574477824985663994831231999905095944466804344102672517704828669638651419550154301587777005954025378349213248376523744919469320402674847959552814736404796810246801636708579758908593312497163138573663110315654357815569595819220563998528110026689455093309854732136337521802653273966847584292963216702337047549532764722618593379793995093985304893255631667484906129630022212468471718762550620897428225086188550121077697014365226999730127631778770855571575678140566510990259412091354583550457464677963016062703464647912936568339690480504827925491594247580405145845828682554586785747785531272401408517098136824176320888235472018956138194110898075678255999697227020810959298005401663637426083469120925102406428501841838835778232140524010023178227862179118494870779786075553816213833628056311990042119859913053920641324778640345454527526910240404229220321098995434782161534450021961656179376907912552784454107283278483790648703172437168077746771081611643201504608979424489542855247044979795426484559390146310716021581032773648674795254671796462074870958213968882305969442653427384173000432950577098490907560888068728823278322906930805649488569829767361720381936270645054532547451203189869689329925627134076594228605563676221164057193680790987531044306833144687464058950663889341732005998913545012343614989977436154885160769077990977318138906385199055101937617851258589683478782787819058618608875458490485786173119307029309403702851823444319536783216149772245839466643526821094690683281099175388440059831065194136164738343726105219244741862304221670986359465578708428160834469446149213326014157662064833005528889491312669825933634962896939757405090444661046125254624146379302879152885524443558680799729538484028400339819959833628057526231575131620366781696613968587854006997549034868940312007673983457268397094975616403535579912997477405789220330123204608634547294678114097620647749370006020436353868590259075559387491218383930293787683183291364372944607465477974796824288931285218556031856228224397055302020913450694404401788067189442122653796779546892024111870116282949435820910139689823997282831652392697786261578572594970546798860466553279546740757999436670692915326487264880159357206441584527794057251683909091363734527177298369907839758434940223007372933149056216904472803635999091378213581971377928837944114547783310490702766960743966524528699220560795522420751311047318795695033123572891665237166483640264036416066329115874591613242049046148798058450025475083586063171226431688038587087252416586733141391140712487461850874191181492554779748847937623316812398693920141779775438614746804634199562564373534337899519682536783950499405343194433051166096380111966012175098313662856872199840281456368607364136518391817317381780713316013775756053889519305718118299418299306271481660403162265218800050383018512941965971845118975831664182192690078914125880243684659699057545010680792844091892220750897427453396295200619232870328396584452900854636931071557471809361208006341044514658036215686080924686673012395793516036210876111239387419052852915919971789530710646267959920729365680058718968529522672401739219236491395837731849273600604329592439415269245139523890352826372272494264201254222156015213165915266036769209244570289727514898545986302698884413616229925293563884027423068512727970748973109371206426249490142213985525166554111242247094802640153638055285257441493517409722363510196503462307726495946954633546945423702540124485585040892330582469360275945279467681488496339933995558118543427902348405010662881555324601561176709471016283248609071568668977649740602615360951693316513989521831282173542558070372784849362082769617420450754119713836182687896404900082194610168280975614593592103611404301712916793698808092835277495650236233557690094851565497676605334652645632751025160536654390048633786947155886011173258650972942593516757833861919181698840158326918611118082745270887130555424063498417075000457481811569367775604360656540368095923204101976776234557137563070905263691812988268389979336775677493895647662494320821381738383929702100942741882091405381396833748531974146593411572535077598457815963483691347293231440904761058141506344176306802071228726885043128649332038119151311302028979139626360657240271927935459473033562031044549861012143825655488820078395096438776244658520192850242621196966584028920149344230293429159890920494182281583142361053474273124852567859099454907989248833413778571098221752691460438441585005961346112306593013120785282867238587241205801328076638874215647967261334767283759989666846326249553005941897649728897307343327647491735191542182137799330387851738724670261418576858176950854645648890511915664460931827659151117526793505242284062629984603785466400478945219676461480121344404874389898099361245238725630331233160306992944856761190716490155640646600216009016359501319280671163104001723826461513808058700174749643157997489662351508498301783702671466702997763763534069176078517117939799835737183856886479067775952892403419026242700879028528524494982299683815484174446582837033215646334704456488985061168599146704806554640890604687217854928320740260785000575661822359110672837935526450173038075724942948867738593484908781698061014836958528477310586518964157458965721008392099160618420445127063202026966348356370839704977430825607935503979506236443225255995510939940057362008787473320009354742238750176037334669930012808917643639051369853550391985166490810627917133760827578092261799301292100197535937606534125912668548113378211987876197532893972426882617630322892979344345689446858621204168954539416385589773803626540672827363350116808014694807109673559172943016396595212518646742625370497408611851747831953797993331120717697070118279275740180542308918435065308786499372434861009495075457387569733024457571513600188059372104350080309586160012807288688672587113351072802321159148187210333933611521592707530977108183526327468596330719984226950617943714206464317126600017088154827706751959864252110272004321560918512885568685758534162888936314813228184959250723255703920246555368103967634525080509688442399416117212998878629453820399738035794225640425480572793287436095083818521341723481714827821009144096985571760422024844072937513668501901780453338859747262674980915503031786519409920963518076521103490560411958121491048254693024554448685897092112331724812545699795314574363815863789109811608923825844021810141807504086146985454371084920205534790417185294649264138468716895706321817915943748174295862769489014590674506483405462125485105955343274859735233850544785993484407369968901891730549491942157076517515029979070048632626029009985373282122048871916110272727695702545356389781454362050513435277752890194762614496693474391011823821693056169660687494606641764166861487202453471176308772840882635038781151374103286538818581582968426428216658460848571528933142662100341167431337201273912397802287480512083297527213649905508814094873771006602715551076800598401919680260721078345590277477632168253714877648012714288381428467707237177059814104004836749310315267624779915318646256153262097997064779255282976246035760657043318651579873193148624650740226231031453776645279636520816769054589949697640647019991945634428875534011298895846419703692601160388150731378692920334419788920236803287689383097447486717671909334336472026099824722153814738735708762470854318885594031231274278073708225401333665511224415983213252613018578256059129985689879800648503163076354338113584492572096497948779197020451343750196499751702869560985451762214383982400026390852568448914207221682243047002189878526439402221197270949913599387169732342548417690195685436072782333013548270969885065923816740207332889080970683062208657043667029489793154979638170788862056918384411703020812007999371805512265894400482559904200440772361742081813105450635498223687453252925148107787185941048370150398658925276097874512753437738996172315670437779120747694767766380317003408126127397285186211412269720182307263967077580616424652705403365235418251066251844446501847140341913934077875154918591144798689145535686603232774221975542629870551507621368111053985261330340801063602088819162179888441958418006360167839190651192377358186656359649222381755280503559270206370655822263390049220193481695623454528166281258322711359026438286494879523347964842371729606921303312861295761225284438222120066585753505152964854258799569757686275467443331518091305803962962847164359463739155276794369005446556928851308742822631434736456280143242757443655169029063525763165016640601297934489965805660516539022662413302732475093546979148820367706087963407462514533434879333106947794869431776746122030932036106282030105767537243662579412784377788586170665181621560827214324243815426245865338268589415805547891989739336673954354524190974318217862916742128638022014424186590828117337961422973669850079891516852897982334279364478492872506491397213023733893066831895154084802959695500652732857665561855062724372171161322280808495293715785686797356337081162617051563006527495093206688753408083101346433763580294552699145227215205270175740224808728844835389769117326603469447727689342120264198256929796362139403965554969350713031355629760115354110185672116890187121335445837369156452241663884837363590928347346106377080568897234741123537821447378848849099620258347487672546751939095881552270972527848945260725655564450988989990882889563980149463670645469832888134758543543255109452393427466785106295282938871991245562638173025889084661143827305576047630223927096924213447339724060803460191432832541472075531219621252572500101550241694012514256033665228416868013691950131095178450507125919634625333174042007123171617552036752346468717783856490374254693003561141946902095218502174905366843265697349486026328390493409562275356245207471696377647339641351546112394713548502603069177585022896479746194716225771917432967947357545483402420554707120867972537760712895241936953164081206888387710019074415803260143902304279699951220692549125397069387827672939878219647238072742102295331323593029116082185129636310600888230278382406438903646885183047067189983217486343918124196474596810557538275443633122812173312493259501644514118908836143698700489689995290593811958315565664988580184899778995796077158942391006820824379509438318987901951981495850522501916786084999462979823639457963356376150344398900373608356867183702125141265260587332855655473684472371633880550602753982818945103466845809105918112166179079860210371308691947022271420121214511824457007192057022520708481489977290440754031022024347218765517358745001923254129695718164387077747620396251536308021084949453740182076383988066454419776104481428846241427274061255356211887922089808864577693050378951017660023906046528168690691118714292317590269038808771672380841182254720046372170606656214789590217600630960063160130680502154116872196552186056775994735054513189372666937282491502992132705332875233475723993985189377243421725759546605836344576273418959657734893346740413857679104531067087607467862772642035641203730216521123039034011208041649225547734641475137893284901539500788764532837690461734724852138610010132954308534979922724978841549129333086765862177930054558336440164197662135130187648130148697355839539290333259111412968949321551236976789894647416446625155421996839193540077051311111180713672315705174733844920087895654926973410809135963616453013002673680566828767894048411630556614022920456564878701550557265288547592396886415172670245753121415339107688907950359477867758584606064330835996291237618432079708098483587267439336192748132377988787430460936761363758845675567616846073953488720197687882468149096425415527197412738607630472693621620467319821187208799462149061598359487084624366753843779101529747406437598132031939194678736274636045219696516360933309390890784461536647711651859148069156907693758525852776384342701575561763101609263110330032744674074455603751694601575969322386346218627042187561860374180851806431207636618876414164033955451976202460459720143278051257284579243835051630772337853525505558427868164910457182697903202641529682985122386238255415363659023658308607526749463475139563110238669385486147759904461494620608123176427482646493004774540543076790466168418758255311696951544865672522341893419842570805194274985734945342943598362377380907670044707605134991727544230229548795691109583077927095391127762514195182750786923162918680310016765983564761010980325339384361083349887226855324593785313808679082463990823808473511627321428393596203517147598435659493502602695259064118617428656546427114043588415976355349920942843759207739505115223209472667304837591349484491534577819128712398771337622623008087700346174920530452508461902605355548556829678895648244723251599912737565059346324742295619306435820665764445165607941744968263431213846270108302154747963530862861604080322165359592402734332099591460557020233719279753554677526965026098007147365921587748282568923593740796403797532995502414150632624680926462861391750511624703848277647507508256324676004778765345428005081147572053668301768317664064243763848035591877070083504983182040957163780397512378040756748928740084515341376326666500790449642992164548949009386454998930924681533688113609860030515279757378984783585808675189234817325474540861484393364833022561965449591601996068686249967995713284908270959015033904369905380125300175940999380863451286569185685477104768553987291358408107604344793175638494796680059280388914491996374499960410462299189671930716722425909504336001063108552360666786564579105349273286315318555311450966939113310215149641211147743097270609518030085435300894077948860796315274726352213744573426026003305684628607143329252232263216488671221926442570097016558528440955388544538680257412710170559606965775160266995997568150324125710271384626557401976959824267421232131801388798665608334207668376216595533785373909563490260827665517071137313585159827909458180271506321069952635510932307872487147668241654624879107550180518203411741520195083283465745058290260104086952450519281170852820293819873017447236968611462888460937369841389985824100066848183244338463075181437511993549121098985910286437424090608686341374072702864312907249676425449569692112687160218938201613866505894939278211911865734619612274631520412642727472888105426645861537362012088377297382577254376236763707361742924014395124238216808449473829917158466076955397898621204254900584025824072508368875091832065674858750032692074714218019858395055407855271514117948034360814846061888286277175631425887605852351679642619604239165187827442834131350117609405013510984570801594540192576575005399941800700583784422454730904031449571425026495373649199531987079479713978430924367513364420254362719397416978792161083947291207678236931799562157012570160630235188069812093627777350684620407350020207064942530665232205145098268758144631550133165720678473219320709088867636629271175514215820985505182447215713072442697557558327434189571815039625982870181111417648289132913473742673936001242156940836016146578667125692978777376915426612040348057870201949985709798123563642263357944848353142935353511942506558642116896792865049247996926751936547804841723839718825749289353221404082349484997196245298364094024255408970363706449666597686704054476984618601152945021042420184960909055436350891502710551677504113112275142283841465691695572197721627107998561212512550283353858804880613603234950191926874075596883275491191613444973562228630761636887858181916199401857070678296988911574173145771129355252297343743182117612183972622860026992241609142756208614249930082794871242397285404726104613359332754207440785558474514523409718239643505999470490210011773294543178948020262698316612452207659839366735674254102464538900018493181076719059916499589596768164268402757079995541164161841371300309379270969378889797797374542478024079549046913485743807439769491977232249993213573644386743162320613746802828648378221717540945727304192028724836071186000672392631360863447546867738536489961716400131498860395768141252305531752138275405826817290505515218873008361502567609521866824664369991442415414797159816816854578591926673030236595222085957562578287447401045588332276235795770492396667694905287455303068247864737681793137491084711432421636510420840459128333012566639681804227213639997568327019247279110751046557070688296463760819272125358628521151269387442858881471175686973700628350836701784092624324175956833178396917228134600212105841945772737356033509082650532638863056538838548794385530513822196734119247607374944816422877135121586834966747679535008644964722029850553860622548739301040290910775628774023951137672466615540284365672817949718445505991828974086971367829621800985223294288881956666298850520519722540185432318496185516372728566455912364653359809867993250046695452804529177216679811837089541201121873613504884311383911745137343005234387456826090755122909453267532629609330800293330230216628109168106664998305842733299619203419593761722808109104978047813755331673681354955761724040850696744337272624033195578794257921510762201173845836201032721928745022593004762537255873181700734282014147315150206438136219346575749722538837980798081945577863002315336481039335255716596848506686873341725518284799244812522117846353415185938977673799706441090929909865106874149799793792210456000576299498233072127492687532825402922311461858250531759868690114716828574507156293234271563244427350748644648130669595236212086624190115691905213049384188707732043111991291656714311986438097449538031834286406095187807422581544081415575472138108257760328664432541528190210644041528294524236887566403209047005982775472429697854215701428499493555445958939171172636802276272998885766234333366415458381242307610141659992217206924575799535938090527660637251253764675918498574542273689776323124175702353408575921233971110511132466139653263886876004928532784324711553715513613769018579863919652020818316161634768775759259463574502004925902147454231093709718313500547399426878617950556174286430603012713612065199516711959322633229689597146048920135603419794287312472094306071695124469615008857217866742651309365589734534163283499668978470713805383698359412199364780692216053528628538401727902038230796661720257107101221440515942105988423636317172033464072231571281985771601736684110538369169643608889824888025734486290691359086540928274367477260773936816894887246474510766874586108595803589263190385198567028926167045465461232834552325628287093801042403330861627906708269167241360182024907734727489656478243136886805475518336076515386386422156165244948279875130091837170021285814341521367979924209140202358957080435097346265421609537825266971405301535776445417613637244405717604229689243412242698293234222981563844293315743244472859671485525651803058942117485073467623323717806645449589778959111026305827714890090040577376144867897944268926745940204644281482449928646118585101031573818170382263592828682489953631930975556414649928860354413314499377474966457765498888778232819191170208064472052515505231288371617426547323018014742218817104142657914956240812335611427540464158264983149581730452136917889410419552362505263265622947064113755671752706769591031686793146423338998808335603105626676810236670640080787461754440007386587854097926645292444615771943832846606854041629981609713642020345222346250945056990929798450387766288151149359505858989760695515359626726028314454363534810271195659101385132310907174244436297861429257585570135643461165239983953863432563958563650041464188691271846139068945434714835006560042479902114338869396443043681653761946747106336683619341714640194342617261522716490525097135988184665890687910359684618741941728999234078094275670094634570997521056561996637527170718843858209256160222059679398988537491734808693548730007071228201380069199779858893306648882257092149496950436316272138604444931476269332028226046175208000275324987872161514386725265765523909211890324278784603939245808566373786093780844176230357477732450297031070587484187957658880337555892953739448613403927468760666967471925530171311880517369406807851359668085690700235478228349046612340508990616043129760027202015204277940395851811558298626298112592348888658931017388833235587438218575892326221949764118817120732349974825834588603997362039622087201576368061140063895879320571551181897546635573883576304134820388516696803172003210311771746456495147217719631874645160239984972906175343511710004529699794441426066155115363390958386423639285025183774382439423361686305715781518471396844591024448853179428757567311321496654688176344293313106623960137690603961855623360207789359965882380730893908943661983317224218700671599119034897812180919640958498302307929240439752858034322933842990829007127363652313628713371812058734749236173406546885129125840329847652318814993549244768947209341119230571744302439387078900132477370759364371430317045790578277808721545563314450247455777079632209526859272140779816011704116143010695470009124041177806165802219688992785144696494780091940668994764514806533995857234989013019304566193659202947747179221943483335630305523212759786743804751636571030812660591672528450077537688064578709167002916210836501437625134151680477833210809019756947253509848387975349365567334207342036149187471738337194761106333713176948808237499757442582256836964393975132230658541728979203287586969558396150236098219855560727147557772932481820824528823922988779285249568667294958967218547543492817662772589282298654837702419494439746641504048406747849368409117206774974320469711948901755327300486925539307161874783916523304332403347174277574081384187389957232063366784100714052881578265707295604279181742315578945607487581296039789277957156933007829328597600195456928848465994197958349985936646403122373229792467736439735970110551831410625754928503815654880454116314327653320836648075649583750556723112407265263349715990337114610719698200263724864050378535281008689824859474073804552001361317133535295128016229019142472613921735862149886707887041738279976915565351153954675287389275215852090937491750761555053219791591250029201485446763688409178991253220622630496835681316141307991696934425595129543469961714583269129399812314773484445537501706747478204121422982226861568218637874765075253224438338904441824138189500512635905518091177290329521545269150421809753477834285461038005365926968693879851609221559854485096055220999063804431235968911044860824769695149237305565682474774603520091181012156027206677715512528477426623128431533531510227444524298913467684252082344509191132512341949391001839046636359846421782190298946113106670796424229801277982263513020308732782945211122676781636887062974187931473758756255583076937304079811640697143951508099850361638091262517781879055487091790245733600551965937884696123615171667814553553217061412122863813352516893744883978929384592579020063985749495081106812659909614823666472881833026787502834365466284149796725528498405066015694905901197470037207162627428848284900264191972872771341780508388995344674288179868491331850657848355046494595316021007671382454581809137133321620097847194844905058064530754346523664753849939843301530609395849410746940842962699707907157759960312521189496401895545391263513566396147322638998300513627769987285167107694884840265541155476520240667856083547465994299539441082249333072622384364076643794987986987244018751077313956201350726314427831681551874501417936154637359553082633467593302626533430126399552957549697388034583175245815719927351908257093458951115845820671094239885329121369136278967960051162076520394739462926426542222328885550565016187281621026946630525723317200899682367907954286842814345419123367318463985165700201140985818343795407219650420562215672740788498650841350944450844775201189558263159247143441423339558168047601773220438926610407208282264236294807094790832041944841602083377523782565977108608989801335426823491033699761423236732253971303164759880586636913531418436922946489751654446463772571373233859950346445968580974272615537378446946221152750379400541638074471150864327159581820216593448447165560097974315029378316594337748366139746836079761400310250612513783827250430700832755843693818933772309161801668761466642701748908476236837088603176715008072646119176112518009427031813903167510540544018432711597117918481400657903657683570877927242289295308057056209934249875435938811889903094665820427373110734668093781072716548920038149481208377331369405589255049314628107315476258164224256688391377371604135529357690371841105723707358035089550958328752190720986276886584241980211694641133534144878240152171424195524000810360486318295526378098951090308296306420008468354462079857512236297085468008729040032265888171773663386299842254757652584700708145731796134393526499677014199335922894975548649979617957067723154672482118969397253356549442637756259063117024689843747361607359724600150644407704540049804834947524589794706713060466027800344400089422401580885292390290571680134259713071838283153854132367742387286078519696401133278493051283838954201230612949232738422876560367620398260290093341288775102567283094478868087199412798940714545782071735183019180783612784509132972355595876701368923450307567527243519460553020428788244157825308022733112788964141578452587840094849795940824292152488819653714085768419520851076794915242964078064696562491807722185417345025993218453815117045250257532833744383382240155215738826682812846248491914856231128641268749751076799383998736202588420995607057022152948848230639101341421698867153030724172034806621885775284338801970977029366166208132105034353864589940238174601549598753918262256663248176898424419769860638281956406410778126479441929356340202333526316956193562835378698555340354048710354575069179143581668887027241570842772198013276110354702503637960526095308227526715505896885194757513939653678832701813959001001911266330553212870277923461742392589424275001363328118251680022254272183438797631710587446683624498568906794077369999516299581407382279938479638880078612322142951738860803115387803124581715726555564975525664198761920834074191872510698539661549241728241895049268466167051606599784555779712947223029137741086814882526705523156295110967785301357461573897008434467298896098323737425623598287567242037489695413965330491329514456134607780523185999916334534499627427221707101520873020179049377691745061274740523639322672670772019923883215709614042212598635757404330161718869980431494187343802086959928222251724141560082446382574324495611348367988261157806781604954708188951021567281289716862636438566714070035902719536193219252407009686448877089270601977498549583972641535109914384130610449626098342885798172145487996662807719501074751781071921511310976352205849616752067369747409047917429269288520699231953544827643395105398513892900301863308851105120379708995447722350448905823615093024336531659108008603975423988057985038660254803893498596503315312111505733850676975197652263201000448398078715955174329930096189245466378281499772870289633948984082855664408213556636298408576752352495808839832349245987288069116309310236601007776332771694014298686697245912842085616867955711358827032211263958518013956898436288300890745658623158432633240910061497276252163035895994205322214252846483364698676430056666612633501773767356739828402016128857691810052076430051096523666017208178815740445634486458355019752436055431768734018328594791393915154944580096607954290426374065098420876045139134299146005675355699901704122588164286537649653407271983869163681481105873642661485218904027538384162926863752193866668195107010050116510127380343540065184724967500782916626647440643465808195002594413522775953708690984606443415279712592944731278449501269212561356101605962116309777943292969392681986677073277012860799010835166365186281764608033846555258285802629236015908494845618661333016011454808979431259092845042061433482125639805052348903184354811615320920997429780484030591000120413680654338189388365643890166913596752807376230763137198109592485290622560881401939436285015476470127104059985334720316380834062815716609399989976802198899170520164990651828636214380219537679469565057439532039247031710523514460418252607015289757383159783554357912798680636364280538619481324201778844805567780607760230129689016707064357390587071817205589208649514529064659433125781734444598671706081893756915688307855849090649528015548292924764638324750809237766060456805065400695293440760455463646824548950009207152612938394426285447179917328669628465753227285365087091901522886378149188112859994723617885366049528133721837748161958660083197043381338279032926162149761787512675944105569469227006327412993808676035981766265124014701376534260038155735094172801117346270446513782478581091902708971176857347464917376588949383355883812439120914201898510836473502953535699748626507839885664499384085477515002238648717819215460729420249971858133155695787858373130291266749023565580060218812820145166144616549919051929741030409988202253014400950855934505023295401110568816583045389148564131440196517555546910672245691197473022860144046565227157862325001196630903162496829007541787901410205024575949429035637587268445514047355543300958435479886234531431810185750056784957114331292539920883869141428296968116886398351532336909421821857682910829394401540329135861129227342079993254296018833834525458137144530292630431613934984365657313119957907144077530228417538868345378166053869703544621144079021565274114386507973113561185992713234592718809830195476429036709208350436857569808673806407940209194427352363060479514497349433963118972468687776851883320053093032465756759060651097138613892346048018648953499486412418805414471851801504026928826375809456624511513351991791780248443256925134723660286189141251362590315563852293056905963390862443698767115721497926829269050685638878645530487851239128246576731571631861119117961656441396849201669735746951920468229704006299254656872974604998912727568168778119877993547147550432893520615933570626930877546595749745681283780597711117860123123909806709018883256543826941654212936377445392247866747536219400924335406615177601682568059863838077523687315070523093513914924138819488052322175045911096671972102086178627021362561265259086834740450930446965030654826301673989425652228024358867953644918385318500845752287706599099942170986110570760513323134264613355199207533977802606546912650991442419188512929990228797096459121505590436808087305891317647846974238924338006596830691687027302514358207454733529684043592779592134677739970724572316387328023798852881988576064512203269572636433971711162856948984951654610525094075547034501043550087156196069943558035439621718920052792953319089890063505165468219140260660955915074880372998861140378817264036135356360037365813315023225127202508113558881370211953126829847782027847870737748013582283388581695793368556278540313634802709873903215235402958906788110216477381046501661412372103123590049670894072917285838291445182320480358554045960526042240546709754842110637696773045554881991701516493026726915377426080068802947697332180189513702075721764541570155044355126627674461224582398659303189731791935470633724647424553409861740642245176721798108912343545774050895455359177171871836940097667657490758327074771899414513205613256632540033841628041563109822607529444473749525371351522226756613045404664197911221043931162989213012418076325181733713692407883663686577203146866189473364881793561874474488068630319715912921142979552913449285982426675958743343993878732640952584868435446367846447283430556915882691092299265018860783105192522839425313253331598780431381547944920215892392527806457536839678314941252116010077944182019469945325418647072408620971103798707092537860534090722200800695155234446717343382699108017281963904961057297455073916565181202759953680778633344946631311276086397796257182854789117562941597259595755832296206753574834873702850341472974506254527788430012697759219598788851059369251984041309339027994295941869004579662394138595394574391114862578000863618128907095394915110468345707040899248323638424474423107539411606385599212269865176321884211455892841090764310055776731507592849421340940744951211113043184073460624199845242158129931668135277992603787414406892721090927520114047078711548835733291275741124587128222484354758459495812706412490718874633820640068338085654240592555712103681929233171692685671388740749909362665297608529131428665814564647150883074994295101523304601954196339461613317452677561779539295644104615075839645396645878695758654987702005280012022375889667725890953739537699987131796451506272558247695851805111106469614901976763650343230307583007224862375648234106908774675902530924622967861883688043787472290387755906893670661611048729644692130202959539697673964145904819438232882868628559895538259357260349364146955615212244935192036872526662206549925367323285944799445053118498523555839095894806344951378523188251381815451614928240093876909618533791574902179845441627420576682621877394290625268228342701046866418427606646753365032983209036490930752753264689230102934758881234905288387608827612557015510787337980378027338608793037229702453360410362461477759447815009531662578217472694922922101513144466697552847781710341098718863136040633494766651697332405279819863261386824073222936268467917560237542322843937474497189814647367921582519048348994708937956224786182166247875597854875049597339552175009732838340809665359733220900038275554972599021586969434860866928373038231240118065622681959043677315288199011956591043473754676187214293281450268935746770431260094556054349038692701594741525550963342739814527156380554677771191871097064267779052666389576918651007318132759042672592385786906866700906320350119234803575011984273568171540406764422531897091474727731732424920732861928467219427700811596512603319883930058989176853844714383883301555781795813713033554294572760468368845473933627507015119529500444756784769960828835642552964179832960079972434214979163044434259856868642187841255803141101828931757839169280114489877095526338310561585696980061280415944267787975337140082336694821018077948781191247449438108302455920201667007954401341950136151298578459329368880259547350085106781068154601057474073489900623485230217366182790188069074604647198089474615928777911454205066368607258602226538861980495766056338282032366638476959441624212801816545811304400534320636409610066311828234441997962617684670804175852728930547645235723365814648537273016035825511556863304955019091249086068970913867715113179710748532360109538284788635361524995071214203196064528500391977900060344093732251096828395796480884691222591229986899291284554641704453529010983435640718400999346493864473036457153652508077819159787953931885058968235360985681387323111190815990999037920979717462317154299129497809970846481019750095693288223024648530305798689355300596181705244745083828178003753060977490852348028191932971669067534052495016260361814286477640088783861602254226234393962614835316769212853912481405837866096139583429143025911727672664016546155280072808192129415680658463591140329375739869356570498823649384289728182952611018371689705117279894156142562078868652828951828594378649238642491398202803069052413875575715780149287031721256450460064321144696081860026584229808101790041643797142641202258725896009030819740236050289653413788531532827999347606753392657696503454940987853612357072162627278368274098591210118687647232020736170817821738879956885719467992594401703160787595653118474335942597256597394017601331916353494228501973966181960752907612223409792209611878015017470043517584924283280658384205547580597201593687723330999219430726966037114892219070242207691171406991347745443362217904685978503754073238697095715017345951960355856641326034593366937760482885564867263316386884431805273322940556718780760949070161005374577225468253443102200881683282745444386996888749688883434986132641846464141038218317899902543087250232381846749556600496680438845427742552396901948623814135521692779090268026934765071399728459296461415764237387628699875189417686241811575377993978698876423075566274859412985975848320042047752367771444936062578397876187693933597784859989418446888250051768846758660846150529258790280623476242659267585029229964534947258173254948466197460264500998258478098715926131329799134524480757246480516084036490404120099858397340329539806776259245613006068451646136395965836672763266474887291359862354412291450780407801681888224129474049911638411672714837796885417743098727707389781042271033612406908517978584108980367757486199585714514070167917727336906057071225102189900179002503732861205847589279714459315865441123039687091757006369879739621898811049028213300113909858085229353854379335547934141099586700922482449138639758118824308380480856569412806010537826539104302974067847588899678555160045304300857662816899352094385518360181197706172645002967454250791730970377479094123552323474891382592477941442879237703195189578476482881696289687013555772846065518521111547243994549156103606843672302280092025411706366547282012143378592392301410108040819668661177671257753440022170228960305510838745162635800272043327554939726323541245576799274674859797832736630128587688913928812439575574843060877586645941495332002377678259821953056172768567880411240711577850680686162821953586716181624321650316886342590420794886637572377501139823402155362448248466032545370661897790213057163663108596677693778312756067138859551637088921410186058969424844238628886055896539012494755670307264923084275649705338729161138423300562113107700550575955414279333121357514713024473912512410808640060779811678082452460510826243629348379294448310597536921592018816674117188882839888992032044739983081031833614796905636362627515604660831845385628230940680059728405137034055104479205500942256719157954638624570273483571770731662502272327310705772495626806854856026140378658026219214491547783707759910923131401548093262886720800141637947477396003149096280594229422043072182584572586364367163083633471277287262112722547012791367469699782581768362172916714610271225239446265079044512548030634215596192221122834549215456985512170090596399942526356099924374086472336318297104821167212562445577066720631105473843150471912255754697347072700623369480780145563867467823205923314203752235409535751351750474839229518796685646515206115473348489329381342503232564627759329958075806376518320481349209456013841116359215158832779085433319630103081799418515202405943498927443045096292521454570861704520172866090306180912946099640427019246031604926595268000167461485208715746456513953062462112733937428318372113247086059951668239847764133445817116278791183508442828552416436430286052431880367358125479247757717570977956291625115099820021213898626749950722318084709257170152432332320167612533227283222593876989208976018277092638459758659848900172333049804504607788384357568285071257474862582715065786364864656154225208261003500373307263570029587422233525204238461620871878785733685367700082202713410492262007316742926488611919239890534538083852078211844471838377710497215492470302208461206300584243696282791397700091277201563810494812008129750179998084021548024485945876683677091123541087131476511554501617562712432221715874856958471907380489961210190302686964537143811457195119903719068323984059141790858886928264612465275691284056819359014899221402958123828648264557229589849487735638863664800284562687631278803240774772188599651165131501785810937590366977119588088168042913846617390041192213018527753256202886707471313446493991013800931961655736588881220444589415792764423020884850704607301008792618708789846844488874878605605712536191848237587822376974470160303003452257769753357923436979967913719770463685651597107366082631811230337023959138317091463491812935492274923366097919509101158446651809226978219970291639333823201731254637757102967991901581806390951707677069124788045609146384975450394615114101703304961850956019278015080017459058601102478597782328682116906993315669809427976466129062041581737296498266787338835685337919201375444954993208959542313780092754962972722557234359375763136069445565083331410905874759885622162881383662592234786928140745849790377098971800913868023939007330038177244992964732230589538253250379344206422012549050216174802552298885885958873134800447513124755760522518276176636813566953200247666767146585724349341480616407830373193105029948230996466226576720189241087383566518842859970914416308074688969342108473584826101263141068418567811027867954750162535096133695311839755027212277560538744917773538474647994794547550701994271079906748479884220258474479110054490434872512374975910728322262296483313395002325450678703352418496771926497136125733217690570176439735350168193881958263819140836193625302212428084356433996592116312438686722226155205681965721661087044879120657247100968653743673667194564407764547231605614143602935041774818246037619122902994347497240608634642557657497461638946014280714538148570144843152185788163468470622645210393385801170994829509722284003604354260595838230411400620751237204995740989256046517232547452210525637077758469368233439488381839725126541396137208663496491890829405876631223843894702421228196578899594722041361374227612621311369091177734782286657171293369476667537331931900257769619859869362110126306895906894801020207700266231616818395371260722216560990775751960618339986944006486033224857330059991857141629720849893000791459603608514873404069805423826126626704473714250577900736787985635064952397801526099701799692127350319883544379659335288392062589440471531991205430259119522831994586214203464217675407446577108262460282832818796362088772434607041127333103297535575597851256236781879062895680156505484800149167654627420589345915174961130532489069735013440882643200677498981955237882109602690199143085118335668557312904242979405188949186711941872938773175940959555784300955779609728608198023252129167213046186471228061935204013322678598227352700190391215229620014185138579919548220876699900006261251264095791905928221915177441810807469071901298079884704006962092944900254922582416110372912879013583909843579535569108937431988547531466392885469484214860143256369549764375305085169308545629994540789850460609363041502867728571534238518050738289655720268138144716227149522571878226636949141084147933091284555867898735123894549661529544758362204753386405892482402802223656266379664804047994754774288192840003385761037154305447509591339326835809800109171271540637414180741644588008016145377399700982402572867512853904016249491340568787981941127727216726736164227702556141540763606197653836811187928726271855721642389246885779674240619806157268787513055841238670160680196021959889102341118182598456976626736393215539220504429688065259979635550817138621047835693517086909516545030328698276814694640918441411410076294989755834817525363239098354692411488191686288738905870127218031143943229481937089888204682146744667271038473457031850828877515227895161280133041716038115240170186969039286770531501877064124458116960938654881118025945685456001269248802553345748995271766815587530491723682883650437044564838045528240775761631302464348498965492283831329599262040658005693010337490273839573978949453283495239882112800356465435444453156688698564575675262254999912784346124295984431663569944254831507729747455935225126335182063801615205653047125152669488707324166549288516920629381783407819697709424246622134079248050338607070277207432339907489008832354117771959648229793189104418371994097752786584240389084265776628202420392650383377331617754608922427849099225634147107138974254918093480595920646178891164350217068862847292892366282072255134937663918257023959820835565400145928185865136457899903936220156657458452531423304566247762999411013608605412295412162763309000116267809343163296412741859842813314962581384155620494404153501519948708766601880345363798985598759548899441180786756518714798455235101965795817168070876371937379671601430636251200062040928034139662472756976437091472804351502915261230666450794172728253944055388950726505181326595951876116156712775003938199624735477695567982414181988856233379551451130127794488474380317018570300928508656303090311065330185749634811224125114161921099688017693029316632255815478020666228803764742182350550745980499658819979212964541103781132128408486639966658150164296647444132034622016050385123996694227432005978544176475103879001208478732842846610278624960848287045336713776143814673762567441397428718820694909711241026862301873190058944842415140899184378318233903494953756863213521647044009930490901605083190544817558917366406351752033572104674830221476009200664021637712805010873871730411743500710162717707695162390723856478533939801929692702068603013048756297101837270068185842748537965631954364295248393035016506072936636532538913104761048314546702053834929471684562222482178358281925663453022485247017201964885084712727691859801114167509983632368064132053057377493546069329024159077548641928479193567311789380866673959508675764368388604989271905262022671661959385089700091884911748717228132458901676233434787994308084344106265629094979097649277509039910292911043915738905426180547963673131255207000414494226944529061152604417358799133305405929185489522381418936435339309937599190131797375986221546183041119501571173419215653485032862253197626104453332744732019932206283730947737912834236254675740075836102183425958041209224873136435315199599492741760920264468547571801651489708637269581463755925017926291810189864676265881582853237723612339252569358104616568788569736027238887523520571752850461693851612880512777852921371607181646045051789362760809979112848915836537695163254191695311346806284054224740018797472513319202066222203267152441021885755874941011644775237066657360296455316049863574687756185926622262014902317344956295409390541487818247752157462385736482683694490115533406259559573190565744156789500373357417131455664708773886606748757989326869121655945598181248252891830763787093563777859483969508700560822906873952558046116507554291718039286990853478476708778383715365317036173169158653353540711517324970673883733979320123547765630915804298058387129823785759329312553989785418383321633762606025216370572223742127652882948407875783183405809349481554950894319891943692179934485137775056908531672557543160461106152334281012102958897629929261412009472993842192536045774538048964503737283339932316553979463749506866104297498870079891864143529722521450467213064322788183217947030663258343600282127074832985584678097611025863683331693458100179931140448532441632127841804584946901847798473058715482815902728034069512206786703338333744061328508736988677289227197812567573889872250550181521000979513060711507175924694136409223808527962454740903553592002836595342638944801760455022468911759956778223390118661773124795225359314582722911291727569047896561489789712531219908693381763843106846664726929883192890116946654304764815214287887262264217375727091294261591639971737760431024589878815582783211866440750304361299873254690766961067357405558944984403401549704200397744997136167171291968511561567131217068122423348965091411961749746353212949195899559379924803346337431062947921368901786704098058612572843590379382455190470567639234561921932956260690729747895192298131186661346359016590215700922541598304156421339994943285453443891324910894204392646248592433799647638180716121924164111920038150843344651205195555637110483191602200668373600521446023238595448240967551412892236652898786976811702799850169942471922780859460211773106535921324008010731161633088046546893119441406453979242071452506040622615017188069926504494010200797493391409376253443390841376966394927652152413364828231863297417002116325921780113278019517189855640805048962334648491158255758162785225466465897081111370688973005741251548434095916710004272791560999461615763090909735280830546388081440863004448938252969066826594583760665341279881753255222631436427433106985835902839699695837121164082111752591830738864338252343919898419090488472274125873008471931696088616543733748544392570444241763360506791697412866146592309324055674352028062401079484810579369947533876633077423445182183852119886089631052074878545516715285443060516651827867459127291970049532864294647374522257103801790786407895120376996167298682824053046483581060383933256092637646330335543454485105989910201836897995582851759640691935872904285912017937712886209830890431233643096449399519431389798898292433756693469183739397932313962154245406957212014272060007020095492486902908633123036313616363472995545898274494681538842908261700615908896064972300052932788312650648579788933588854967141051608982942789666404053980672365631021181060754404186178778648663509439263603587892629329202195831764784402686721158627383533993861361072976477059664235440876857179088116002875942076814382185375467663791967734081385653011887658651013142516877299272468472354342142629798666548166161629342090551327485737132203321890982493543786268343476006551585950719693528978071574318735621270923697520930817340366624441355270909674936722787420645894111056479708294583720536515959608126820034510638717121818599154049850819821386108571230613426382637058447941847407560139619962560741675729462913202535378941939002427660230878424829235983045052941868710504854244676884675132292018740827416887488029759396856188649977839008770690917787818256959484254189352439661698926693486973905764571320315672299535759483429245357547024479260456549006624068283597751729302661765287813112430828312150226901404305675049230664501578329691438780117111449517928511513434294833739646324672914328592689141301917164419737938677682918074340882905346593854805765389506655722560928665529882803449871011881789249853258803381444514806417381803478709132794704070342329834783637464933312977630691486766345203036049192110840681983661107950210060362059342865728809640742131391186784633112545996223251930347946572153603935556853793156023080857744863210480805790108974280285914683689686852669399879434004017400133349575271801832821624988084304466774639360116043186562019306914155171058757038091931674844042921586447577836998482018527784969888406471200550962654420208594112081797359857936705546329851200158372279976624117306587424627171823093317642335513823947503734223245232588911002424105111402416198949648941053922651784702415515467218487265473296110082251064878079954603227855523307327232098609690864616951588417373551592961280953114238288778771920023746035199948812094143552038320510350657875315118721461444622096493100856792724070472377763297516346813485416738114849113636474957282934053207737283394060231452843231484128669359783536356971668900551569061699974768437248646567238710633732464702458563214216872876555832713021990962379672601023796827708451495568723547444385333521729287968298247563569077003418743050233234420871971086177873917675012428424995428719324732892122979546185021322439163968235843581458566401832001780051236592523665380261809605972564736921151378139615364007835094885982065437417638469218795499968150219700431011902182622776311423363515346218569824136049990169213428286398867539347909865617672310577590460374430493691221023493309789598911350316571685676657402415135262897497897511127859811379317032683496565656048578071286467164225210321311537819874594036425401362665951163313456204228789549704863426004697183304030888981556140631923527676103730851328844553485013688838651338116881649274085572523455862583240610854456196236713079905514533442516907867198769810141440379352104408002733448381297918263929557337150214937518577312098882626735262505391592425451068416875478857241630678421851091256969258621238456121385016493854567876743514073365607458538624918178792155673483690300341546838441322548619547582679572337245299783255078985288002250594510779303205300119067333449365978758087977200453075008368551241616666045520629905624859226529563229333534582989866442965350958331213618461980118392767909863182012729430517880103535149990922988613720473126030285313009505495338431770808620227499975797831240394188120420570995657075577871588507390270885555098150799804443475772000647615877536653658884987058156714835860483051645513844003012161671392147811377634936683672601249341576977959404671695247845404467110782259282139206624814289086102251650392104827173091364335591996363194420673072557395689654028074831009319428538262076060895022265258221980527734798425907554232013166883240008263397588139703580670956368987054536960919902718450558953375497706514298932930375553159375293729428477496366118969955455639126652187406597192320440325738186671005674904298987716176647510091526392433009031774295662058105914390827199224811347223198725850245691552740372682112699245633340799844225816095371784893590210291513598060264146453884398986620858781651039045058694726147551249686595414081183220507958168330570103197004687631208338874282622347973029799533416318375869584712330882303751625893469720893346071873394328441690495975676624561781723263851627650674596135481868187040221061128766408657332135041018584124075964166261057966604215541918671394237975594549580521746034858502605261862086063657279471325807695980225806299652548079205186567093980524940948472719723546842268378186822298958973104472493641141248261136176148371139027366906077253371030822283020758186381631187343610939708761437763794205832893537859144298916982355218341745915416496742190805104348838852957883515925868826470413372028891186668245819068864527813721960581735802466944523290564262376335592257526314581092078902208655755844626861690036635199710802511318104498811893693442001793506227070345240225060476266855746433711925280307015263392842758086735227901294890415871645111225573769818391780798903420396013613803441057232078616600527686013631730128131645707360004861771413008522883470239676564999908478027610107492899439385474302947502830520933425719780185731899252361102352812582263406652299033249502097543450638102696116518074553313457579082667562203056944949890144825779605054457225889484880737989727145518427784143259346442468137827127241334252999501164727513785014938770829958975953676336517365162946678834931812884534793667038052408188317898947677610340171646601964050045708057369489583562182279101729173086749345892537754244496859741742810764680517665084677085752591929003013227403949984943019196637497935367687630577525642771882676437083704014563486752951018785464738687904586582554358185119549907303308477071369035974465735394602649831359801526037798025877516815181136282822134828676355792562589826746892511508906654575221899596680927175705684732544964502368889379789466464882840759621388014699258553617459709880486290942344978837827724403655058296230018511470784768543553583693795013548006679988838013917611055834816791647411026552163904448982940090337514684455630661167361428867413260265116930136982089416079117547639820536595007096038718557718026768579753257485596885666508793053588337097507574970042107116063328375399323366253915115913927343522051826602168081787586799287383595750224266086865741041228923577883421222703236430937352436416994197916982147044880469155250464203737543193063818039477015401902590128970519079218412072671415218151846005374562541449354697676353688731579184806227727520516375947078260755411202397864403185956110170225458120986247975400305122161233907680072839714995648294033590114411131716367840615670606555477438650951217555605584980267907884837223029149497880935035316716702301637434231209062517911809850980636684572243471203285359678007242388337312217595185674344090811209049377803090322259821184751805056626863775270223523069331991838285840326802854301867490126550815568612509891706999422300148920414364052785178381100112583358654023323030601230467481230676113625526997705728861843702211021487268255531870042009357373037783457166050370336350375465638596478824479046270861249777292587489604462628938555922750945498965254233178555882174799920324924209887183470683595571725886884732967121023694896671425490479429597153084235242736880591551462192485213094579071921801350902777271347747348276924037851226586113096615178066327257724788150703514554524367316969947283968311864368631732105748439514953550313147719769255342784898861901201925532813714389209568364533546609453288713249443223950463964294715956637153285990418963723843513590813843907844145685291740802841237943774422060279327570073051427675272378146430581935208751507866274749304476356771675971174753644324659198643343064830784036279299290548710496180674390841262054343264823912287282774635207399658074105839809949375748310355786379267009873436902366698943607030822088986377446511095388339662136563278733397130322020759204945637862556508998075416002012701748743100309610516666309347449696363309755076966880482626323137612869574176336918412455615819135060893743529780568859921368590822547159970543890016479342004968807148360855380385374901540073589799952914546623125020903821648468281073652171338451849974623128969803618128392001507040659953810304276216877140041130852776151267325066429379136739787135783238982845467669994741186697802778503669284800618810826611862056440311355445452269377444953981923325964550504281826968866977322473420232204086922318844180364089782888577727680059795799308842258787868538928378678708508934202298711097688784336003745870553965846467545836343925851918008758913685860493455638220513376276096700616300559470707844932643867863650697431822088874408888669982752287531120290479531154721712687625144363533192392849918145874877684837556207302052766020199702580197375222821298405317942928982816487057822241493155189536719786605199463020913120557360207041717090667600608513878224366800830403715528318558996527446614752666152091710086937091845320473500691749327039419843757024422400684054437286222243467341102302175636334117415973203760205647752971160549784234159405898536868788751014957258551481810937483210746704025505014958373460138671958178600523337846397098014320643375422256894071292599118883998841530286863968813053998696255921256290896475645567326062991142611760595046956775797559643645492106696126440607657867680320379796954743726179881096820436094400094830420141403172850541870129907596868563657345407216898776176533330113597986391290499665993322953666185101418495386293919746997364325140204468575085276757137032399828346675934272997757829346752802486756153359764717195171324095718309000229119519199855879462937187002958388351896917713803100611216494430654468284339097120133018622641460113859553418273851793764431673827459237002565838616186101688554996705108071488160314493234425635768210036069350011931444290175751717261244065268332868528589156151434204410771643256384060487576995652697536544560536607036701927211156585208661711453366331725298606828978429374161923303529476026284258294959531205054607071748921712641162649020441700579536457712940572032010305679849348414499478445764808897588556601369943413669915971242649185276867051115924080945453205124215556551221763632998079322714837110397264884233128261000992497126267138136332966024967391806140531756693913327040808848313011040268840225500233727629744601503684529738968985711074610470349164349245803179376651807331040237705148676395073228054187420422394902773801803129354406785661792775404815272370356941220949819059961658172711543836156219011678232431338378210215643725658825658977591524554048933126423053244407665144419777073136865811520794149870069047772601248349642486991989836310396015216574904193007167258778500847252034987833126023627092152023983551961765340647572233289102488362331376452476317601515059831843982459224440469363269258314520649200721703242499213121533878147089176760580056402779015567495100597419721349935253499278790171668826448983799035624958048334678829572280690750213380629946751248722521748381091979192482353572068290555297419332321006933880562062552444280251851245035687085642588746638928908116560025586088258277235100567172335003625149825063342886392069757640326005689435707520688565448552507240491258807346906417325828083216723517320556517607083795466957616901581613862685297784079249123715386251791619572309818226692722909742109088925731171700965483763286713936502129335859068545450506191182237093709482644151897402587660224038482401112435588138442617728946204140228463460782477574969745670245777621722871383894171031608121335577930400596233861762239177972030966320834683308272169804885671447872498895702352725364255846702878570102597504921398005186911154027768544113755879469671674272093378680950780447611710189232284860426302867918867797307125827091481597031031288520933903479715387047991896389017696425449009108548082145172487459159057399629580878463808035565161118515976855176353946969271948386481772412055065202382100856724114123734512030520972536841306946119582224768551572620912872032497498693744729813122115021416318093764457663064121498047302919924773141670328978364786958694497054440394107103594845289034625512127291597810896544567235944748591377370622546648611874814638252850488662877062807134737867338110112416899904282052180340263083139989819646662982583224817382841912329344027822332029920756014931167352998081632968346871387619296371092804021956298644196610681240531473397209319364830127407574182253235406683489258606993869712207152307677982063970533065160555320674096067481249744128412902298589778951094522781493302804471758657010654227738107934989198059718553105403116925553544144688465209252549380462306199138822657719502093715433714772113768955492861443646921064949591513288607666758252685200511952594265010522613478711830463370515203546080141221714907686695688356939858154249488304283234248869166618302387625921039879506811284280968081290978216246615853665060742843669233446379731839879995823932487975770686244894616793898621399165758141587825287914388121858763948551205511623433681946315253344738870970065515238947426656518289197592002514487300931086704486878422375253375453109961229232272191482908353380604487372678392722033528808161546179175651675455510745141421225205603300923558376452306291667422938812360116809138551555737291342428530110662926734367469345690251125859300958378271563751479445885274955924448124916166187097669522557516599719252811947159004196319183157353455227190535076549025240345011579158772951726904102251003270508641686637822960506003006014700646279965064881623366790220459302995994300577134406573626562499226204782168442276566472337018530989594823678363695197431608705985360066177613590957495933007365476254519056058189949590460518060925680966918572076657840406126873101122116342661668189493307509455349010468694200688261637907095277088705439060437768188184368604594085188624113988122688702327016685407801962031198416934106116940874136244497086348443068743460708200706141732594235183870158871292056252964745358042435085103413128326048079078242388822031348853076422486034154342103033679644442505261600595741144752824464864547843351761658979040340347713952179388471464676425029630873169773684501495670220840614894013147702912271511854730263159601005403063249373283293443805810246553206649999216727169614428064342675266274320978495912144764820431298045532932727154750721406913792317308333810831798681042018149642568778324178948688723619254668761629222472309157230256599474871631466247594654171732084418332240724867010452891931306483793078110609395426447646147855619443037232529233719966845282158444760914594307361933163550224926798173004369964923557024881030826529610778526765961749886950682040751360090053210635709497311419413364587464943503255893499731460074671468220610696349924961215576092446241548169951769020170772523046211296893782092403250261706339524941291869014920925735938395825794756258456334334571302286777045740477204255603158225409817968558231047064020719783758782976903314016790966787322096557531580102436580308669527556091450587663285849119234294084580443250780845901413637224864715393649888875203378116703453857582125301164546349847161415411874270164694759131861880931032166082639409415743706991841102957361924349537126091684899888252250769888542864918462317314219398641320425005642642034056911086465900204249031584872120486711798170935553341531011483099960389366398968366547613003309744961417368670447800589816584005374985827384847491424069184023941709516867527029205526854021487772253937090147815432474306762004313370632983494980535094425465540290818348303516885880681729717507065875496363091463930891545677528227562009336757308999601948871039332694155922485912306148721854746262972387080364505237875622810333406899471460279541699079546413490877259536873157719279732755482773842193358905422856420632553007195329814794105324018274561013787348000042976819390735332785569110849685281624139551904256520237076342620796768832518081132387079659481615042662805781803088748844164695712035853563485280930749682568714023521899016630989974304275613454487307667049827208213902802095131952330186852274276032460232854799529381611505953666817466415401775952909205587552145014962024982207809251461550905515693649693139888853403475388933684152673291293081834619325231285351332321499107874637477624006527805189012966032036278481403338353331940908536495861531864184825706136733147192575600839973092820556939109350160736351022234362777632573305299310132981358140788461688068518420621654258120068638542655883546183396531466856107699800628065433544000029686455832838200818382948922096780804661803012430950320628000681324691639490140868540838921331505757467741032151982577574913501943582615905626749725553107377249962715232644008602192954504664619012185097392552822806972471171515973182655724834050024212388258414477469913632278701258275718564814871426252701408695534806472809845202389032644756839691016659353511292126922693491558909915024117109412252362402413107420658552985824970504225248610107901675988514612319041904247404232512228431598161808014445702302477531743879091030960314596015860745742846180841876178614764387641730592994712520606144446745823702166664893108025477020678774135882005160208610058889595482884210893281102318943520939555856410760356856091799282008599798730852869199640149025472757834060865339265431467114007269637314098591611670172221079778550777321285605239172270571979183395143198790794455158646245972582619337685700640659678572978019897582510225451461959531727610728727426900915353693532366989570538810593596161634693266696762385484813493458876486826260637590177960820613608497830901452322559931385472008069064695054767288046556134175455354163719807063540143471914270204363689082207069417377895388656529606799620648638708781902061665222393051694609278696935818490013860908934825278877477257241652898013655482800423825828917843228079869875271589243885306786020307695795899380358228515178399343507173984113431924633597184280961238786220536856379056550804876415690135747977776120190944338301538778603292713595634609562586748898137709202311499752315078955245355903320036607606186934146460982354674324546756130555010432577343220652035226361861465589406794538382416556220734548627662792197467179090995156514776464400463613685228327302644490202753489642946851282385357415199693603132621031946708258814648039183212761647500517089080595103841697912151258856293591576738077852140365074564537104611675650954173326604875457626310380172787526106159281332273104636631164699812341474864829348723227207765030461114542171968112268810123760705865874418193515038471219256655972964660853977866173014902767620566685166597520447885315754251532606538485146666920171757822656118893026026967547651375618076099183415580391593888807996692758001319120057952994843252658892066030080548016955040102021499960825827800899190035963252609594484859927910842605060208851563843058608831526584848805083809657039323020815443045631048208160705046917331745842553777306274025140170023552774323852683188106313085718237897473721287604485248725224143875634173121643775672785129831829978520944399712018640642520177434346309326051410053089855798749555111863518633633439161540362422168892781195108695601855634884762204704089006125003243233954060680471497754447793338077935975485288776991465587942086502134330837967950031895446309862320344628232999276253739765707503667442788709563954212628675274084923198632656392422181456298320366916131881192923063845842673396982576857457156514021750731285379711580791306303349166962688001511994887719416702286261233751770095119444004032969215631745151859690807136858297824461450471196308207399488558256189824114740853607042729215111602174514429503478139011033931502241732108351631500627110859267818550345121562837002567980449810939148491720834855257549896551281036817867257112156702074085397678512769447671377410923230182613650685197644955304069114174585175176076065969681761726945002459088106554555233725942895652812930872975698656621536955512673927115899018134617376305892273409864793399846036410443320627296720722037070273245195343276531976440279634096891811736041377132619860416710873394955268094386377913194829790545735590686536591998850962311435022117522522490484891581103852011868743946976916841490939714258242027852698760103362063745951014181795005524478479462138406962214595386742466318402819466999683011724991196534864657945774527853438166676038228968150700998208881004819232282494267606625260891866874866464391876837951822939936204968345753077999747610478977955005750496676223444302483701887891533586554498205585367833575385305223301218662084779665988749747109644677634549043106215051981952132095840409457444286719252397285639831170427914732067511863544877935114870689739547707913842276638110729236253327813803925900492606825584271239026413190159444611804108503657414002148592021748085235187029449816479541593533976854386889289315083940295076897839962017651306912683861801109273930110994449893610702436062888493010099626326962686450839930441403777404018293785178947856965337727354515911800736087665292984413467554627898945012912066792641144590283364201074922958742795435174672266403496654459911061084908610540178185727447829275226586939629339026744552641673289162221138086384192257946695011187199511468734373306902221782417656883878413478063231118789746086269185896295495056510409405755410976123865854182902157738054728089673713493438342556047584102130971532824465354040575065121289025500779860952460809964830942178842633910311168449013968217907530190690654528615904078255449651866131656238729915728078907928960106441186347060881035917686068862270288654053798812236386363945881448304986497515635714270294580722970866809657773767767560005337333895296012191846870126946404164626252363928315160444866603974535345217378365117315507590272756220635623015869028337879219452727088075828551989950645617150452165639634733192264043737767525181049192100429550244085048713364128099372746269636519861711603658298318357074436293432824393240726560152772688175437535119606144058368654121523019814202008400979264031480635886540849725038850755620370183384410174226236772047471918992808520404029801283531833805394550334169658689895028686418016833031249554922620897254971790470525071696934776309160386160618358298105677939901878787642762750041558478419113334489367660259576396377313598011548422344750024129279383097249776123855611551032534211668693125876040487248509213201960398502483439916254302554516397221521323558499307219436591629245004077137078433752235566305705541755174296939404570755216003109019930439685304171253551207165595891070051221917463134613760906512175527648262251588593846558663938441555742337261496359272210279762583622350606365925806044056566505815546094661876897009057266823062425524106207918556430934207718013820194276200296171392402526302596345597800551088999712848018770099969238431598984256935863869601009016692561894674145527407987422370741925875380457483262145381460502166271855167944190605860493548572652718816664925738331935253176714841430599170861413602501355766287352210552205563735608389288083679215874344861481989440508119230834560147760259858382678750634757393732759453217315463693423554981429495590307814046594168945802193030359683974798687524027806764327957864566032740047527195463545764202413713437859804642180301191449610070369163762611843132678679852196334180252771860904005912804695155588602478931085526587039205176943878059175581847559880935123974650255177459173425192285144946363185091050226370592018245133349917960440620220610222116637288186243738860034773345697813672991422233155668632291028697291678793709674084635766927973957160294854737581112153590831916927942922135435817505791095728044928148004407142402433677408241198826472971179683279729110961231407000420539930290874608406642829000186300556929661609871780097450130760795580339878671360915493946494443458522044455680139080351307233131082076037905437596194370106415204288200310043773184395913854932835779228903360578910709610714975964691239476334907320299078126368773072160452854520681400289940765744263324400239814659725674942731053090843998362213988340220028479558008076186820148602917721043638546141886410285327750171699551935306129103296244653561202525630095826188002080939613930263553916366110888612567474224518581818039841425383262245512072027378703386046362074945072773335987210177476595583610355486801591875965749474092315738583050957854142792657031380901647531806852611419876068516914158082850140500623200408864627451704283828800227079844980480620075727163060411819768785982007293029664447810553410759618476490958217033464958599161055170865565938916543118198347997252921894053878755630364053158172558538978866546383617961377300773379864506877664372499188485338754431563988462421600171156124182914763377538776740758673181061105645748653514870447320931842783406059973648776898582527671114039777020289412297319283888273189967565533481925467325905695389613444270802623645833611401107897976605473081427961466003470830674511469744277802665765310235621806821493534897329244490660464276517618616490797669627419037308526292527944459641337830014633027957539929788184873874259404021930895345293993278871000007916918615136602610717849132173322612960390808859109795015804175753962451268927992973591488559789648606900944398974311266452945911670224728796026633059115545335739295200000812632811680515474371924619935407337071857423103784859794523046124399009132737470490969059209460922768258705166741906028188088660974015530368348171919157966884489372911603588800349525037037762731488083999964071849469574423331073181168476158149909366293716201775129899685771894480563203093540978747567352637339375507248540802668149472372948673661012876608791215544614874762922373602602961080828344258626056220763791629799844173673536074292171248650798702080943151291950251270529209234695016369036052611182547929670535693981272997941271923320083928940759178729763289684553957651421469688086359959439689495096476947484581747999524842076550669692509323800734580855770322089169835225179686565558137301659500104348583786907926091141242833216999889271461471829064452829251407234088971699428741536070857411561015284680071638481748176789114696186751747502368167961035234668095707311584055124082491477039995058630786456142821476108302182671614488223744673958241866973995147044310562669083261173244894309645052847645975870494199373396136414853201689613010359332645018048090977568949269271178374670185061125714143897702776306907232382462814134131343345145983908825772525568723975581832190502618176552783053741286981452168648432812872920492590808643548065147434301257614613016368669972329533001506255653122431265849264841923184139037509353162179042352893495438817934232359815190411084428482961355256789007740010198712810078596147278294108569789910606675057713786291818782445616962182021991286416439641657337821725371075053221431847578851298037275300945945396243077324200553800858085879913267457230385723199252430420304722464322180202732928333751828119979061106610184567890661628681380950303353679925230050739665232820433238638154011464437692531016840459064807551830123528099738557589057453073743908539030020151230533415968586494805214306294662048056848123982587083793463888772502304471866894977949504577091393211732657371378467325248858305909055970174971764394060353513574231062899439534022557906831250005025120699678707279406273508065692091533736495838565800120111092320583065080519825476975311642044136570298881115268376172328067855505841324714214807843809042202523798746517615356884226104594507007556288751960367712675808190092463085700364617341952653595223350283245303286303537211557192550036194521686670950413575693428710827220870606087480698956402180357010752930758246726327826536238262484619094310450390405809751320479951553006100446192034151348533641625926208770715423917100425129522447879955561759021839868130669112652729941435373286043942220517853104621061911035684969838679768801002179124176271437612454824882634449228824447562451680440484197695872648711508869426068613381202693312150578949329507577567259419963976785676920132247244197185542341921459167922167390498180346945973136465984311836693204160832402843226170696770581543654101068943597371511056647249341581675213633581341317574903179404228740669451722326516123317198792794507883796878022222107133631056089030886316953509219219952276244716696362764509299646059686594174332981025296553570723366420078863918764356293635529700979667474562983286154128114056448417179871414239984775036798315204304865937576283982962339139599577462571928813609889672852518409510293613813390825004553153305554336442943890817740351384603225650955179425456327938519102911764596218011054332333750179947422354229769816755591756927322681186446709635198354049729006167590897387395075774642664071556298825843745630498897674982542584055702944906078876532948186555943738067885786879253590559825101042423119979828193997392646769552780237933724590703310975781030101420779494553452643629480512048315023689643572804543425664745680655393804335198196239160719165776084437304491248258385608723850801644715539780319758311653036575428556538557687941708368227083317609029410967933699098963085989419082184428919463360468901493178670418837033921230359844325574612650660828166008423133322404153118669250558853381383503654599865544852927331525273185968058465494069585246492732783490431805112856634313170248121281286404383850942096416046714061710918307322016700939823884118263737447195963542740648121961233181388021847045857088774570813987647316625444429833954252147359025100710610760470009001814223013905606477322832563939772866931532204448994024492452333910519198896787026252442156240664837804602714602860469579219499841851681484307848810822660040392414215715076462083160338396867281558514432626217945571717604375904187756261192636468939366985895848633889734018320668282475167738181505486051300317792786221105634094885830339794048566065441801819421854507937166743622478067699492206301912536952523774069426550725159520806831086634181274690760226863527647815359345633076480873274380087317773770750940745892104696464460138768398843251037513632133253030548439908121882316227468174593688986241549019592608374343386172737458705705822663355480046724178101350862449628324903204287150693743047793550291027831842257084587404497171587989878081798634790093108188512333107290553923638389568285354968048384990102858259234381934953820448189073547242897059247455722799465020138187274512288384216109323888460703938472612213666080530370437306798511008316082747105948175763341559892174831293686155025150323889160777103712638584823772473599804445369847080327537004605568652709972946161976975815188794005875986800882558265918588734541740519084504535448255331618912672856708099094396915919770721635201841623881981228525477588918364491730332497691756933507230868872715175500704912630303443460425115753405240642330236183294731425262093574555085843687893539240586476705462853682591232106586587257216170865879787406899907078729442896220316005502958679484686051856231579454012257010961900455138411181280765031823606672292094928576355121887080280753484558896060618586088350632474910295025724483128379421162954967518700022290189617474174017895005283770080589872249524396539492173095185236642416983977541566451056752748170989894028124307316393321141267035128099395887589368452638762253867675581595495619370726900727549682570658128595181712790567975557222388867411477546891980189391874403291007825500716583185313437170275827310210069945875550337837415184243964385636171348770599898996127848858411938179594252339108348111779948591545961745506038466419913371226464227093064395624852067079674157671478917233562512030705068631752840211657234760612393471860929830698202139450563716943978713539102542821373656365113580926796473680814510527615740583203293596240553270188305749832019259447153977356192253983682921486650659817361070363328344784213776021905223531456333971687634976461681817305825506893791931118182261457206279052243394494466371282204309897602843561342375473718439990032319590607656011505874195299601308190373015275619556817680302713161080372480868655968089696756406606488501001898102172037140799854960788246016135325348345027569475254993455544297887113968722905896722922271033025508167642917324375127285516157715081245317698382086758237875977302374631566438074771212392283970222860634264192340754787024910801795604833834497449511159508136517209847457918272709521705830828391159358836438823371421997756067532172612834448773842983698878861006176676812185706971670285427521838468201836328187281191670685452006970309904500029220946387371496643923887864649099795926655240542543424878907753156351697155368691403601933243610982707693611346671444645225859700714300043937708208280375606340444128353420425655355276287963366774103318290400882210416385521149504481536870945687863649118514809511527805691552848003479876305418152615394524421405007112457504748742059576413577257069290325269216489165403976674159293944457496600351059395453425500373014049836750482707068571690572138500077565544840568799515776353013436229188749572891987914598340325154423946987161449555040032123877087176182775114036907889249749655995591503850037853647078415952533461165874394564050046576163197754731699155976954572216348952635684019459409117575710292106345347381625403803572283216151185394959611197472259731188312689037978339581673249418759739620773454453589449931025112415131178969349875806053732696750109291180274896641250453918615266560679639264712450320587146226107996118415207609806424029304061544015244591873091539173868357741610621304886446577704496391267113869996612104310494601768095657320135007347581093725770048453152566304686520285016219372727856329284289924622950952852232515416218308785093363771927119229806999335704680214461167496939896437729698134447743224791960419807985805879259290665248662468406465125417452865558711193712654654063388024522460644799614667634569032636423215097660481729056076577513171821812695296768409697532359723033448449697593178238151970210542321344499699213284592111947002067444228513944702336669396169050225405983439007715630977274362151318878445398538421426058572500115764424487816092244784156281827401982678869034403441138905501125827417406976260990415498368482384858508955580561879255744849647745633010136873331231755814150805313695728677806174522336087930137712971375820471985624754042776671207543721133682859721113279199642737439607766338098551427202441265715473995044699325305489003834313508414825245088107385589880981623839431228655535222123821149232723645081395369362158630250619403562677320723746152853204134512072873133848424442848200828461937811179914290475514208503439506664038531350641567412669251932765558235206996528869277250085043242952127698634258488516834567603141352294977600244981331780915184721633501621744437493281811302115211208191510852512394036395514069190547510976431680218768362611952552435212301128183857072595016297812744694508833655517016639547282204953861368800271999700146709533769812885133356713067188374273018513016894606633050838165549231976848311402086195902867868490926283679055141117732433688558119118833835202359322911270774316871030048383248480532696958572413287729679405770426545649062685447313645739455487992986869255217326576503514610339835762377705140306074301685928004524853438550536602600960897347130353079157996981058239843292193143063719693043198971839118358046041568305612191369460305321579442418334590778962157804579949888426206946836190841232307447760629434382664802992581589358763265368682126299006151855801141916113968095375853594100477462388975700889731723638224863778753134900636274361043687979223669027932555552041438348211800412130806228452362795404033101863672034390492206118048544425745159264310133400983684801473462552923589594188426991256669717801487381392792789088830597173530089756200151143479895939688221901204556927000486579652041769615073675662345225877441894844612226987997753459398876370075359035004375082566339367734307595188425297066437720232953535835861201506516679809454526901995073195106267327881513646344400732498026483355723625845978307587037561291416738792195717581990030353243692745866103111591614861546319528048378814378075495734460097132151500077807763555171781247635915325426082856912260908565808469357927462082480567665358871522062657396284265104853946922317789634703402589839299479425926317320374006218388962940216518708603216747296209599435667179371582886108847614540477538825631194836568407392582881350286285640962012023337989332781495038753911088245201507290097102941089895019839398687386279975901925992798114202583883730916506260791095859734536663645674436040609714784187789778281353236977236756151178165503192035195029219429219309698781502794736422804228837288943462732282037859714099129178579502745330339009569305604230709306640736469910846439376728613137254306819669247376111938442018979095472280743113082565015885367838607692857112984555104651096859033677673000183076237246995111977654709431823566148143022803493191284389216297275745897547873478887825630734295043201571343838655363735907107242469295867801911961247654761384873670748668513903721291976315530012704598674619187195065380062641935992480933233916459509371502983953426108796263327361926927995738356652633342636610266652069440241107947657290470771488078089017393866600214405288464805082799305155527977379312623152816002377663394666600280741385730095658979518913411393764559871163213550569668404837393560079574063005642015645592554643701278326493343934949770877323427583208238670236789550212234329091560600089575859694340568018647514911302822805840879423088445252182457350868617200435957293559431930464387075290925159155344652040390185822421192746484958186147718558111213792580454266987065434361813240759677179408051753812926072281076804360415465335934998461208475177994852720868156851087770067502011320425192258522734508037656879858303215973828381134403579394973723705801103329639597141292373792458728725897269943712043058786792443951552415439468167214164302357158752424171839358780594332384273460522956450151437624285757186510800072466933207921723018707798568858732357337691292863029428627330504257869484907256447997436831018061288833592318984541424539033499456675633953180020287505520698681157822449790655157909878022013696325211976621482690012171622567095766518525987474164557877129335897531366774258576381791661374089681149983905237807951339597791510248654716447571424904720827978137958463894202197338822607056839216064906960931655657445924883611402955004169686365660142589330922563621748840587024539167031252174082426582319962126932922411016073582110253438127054771046877796025937173079113475246559683947030631300545487479678137673221258814505899547855405830651798402788226367771736813972475404573567053490009473833875584382684169089115006928724981720793651396104172239950790069043441963428637917976020996789026962276113334879242687791265597696387987433322033744488642815754654853128465361004273378975399240448114710878505395108048391192146747772807864706474762907975677708657697396689340415032747908354488734579465355511947117090220359462624966346658572047576531107028023872934775228913444706057021266079224854455338527695364095521586131032445847627598311968504336745068130545715337517215691214714339164900634780008402115563526730398029675625388292569033721336371954150640681574818945622543522506019989032161665257587890480702825029327969792417661115143573335346454995431806259682458896022403369775882540369516960659660360115596304184375358053938763891675055922609625562060045372942486556732397321091338370362427531280639220238627729250583214522200721489778420082595133558976191222923087284760677935185547784556938886802652171708302566194666814181041144559090581183211884726349629522873802831760076530245174675401586935959081461026148698326681027914191747651974115553949169189841987174445830904602533808172117773893244238644123044503655788712203327808854390898835122299576525423351803978648472388204862235401882053845207752014066179722892692172015064062222890106739593705631549689727345499855387760463858052635031669984635958374727843361614142375942294880241476054090478679515113899630363738155282562510310768471501232689593109879965069447994357647919454676669324659771438211485803370949590580404724189640382540780289813062588979327486168474181472238904605281441367805659307100854999185684799611598521540224474348653091559107528298846061424969162186702141884647884065223558915726703261874959877147209566278065093871238387405426897285994041290700360771574115495935145386634954018566851030380257406939174596496404735089492822742582407087858274110296017189495176292528453014629173088926737145502277409363557941560026676333222797247021477294693478146736316073025552485173525647767160928547549790201743793934280243809042177870462524935569962108954542543019776664207302938368002511041478888054783825236345565883873881793223671237705271260037884163272264113562906794227105657029979624815462607172585982307443038566359947385463623160563273586708839924542682055059542403306676003320439768675093664139156223869909009630866793245182873001471477451824802974070020716804042901069274908626297339606498385667876937430144278543698135987182775835927048014375552774464232035453671849187754545663292571386521489880045961556388525728855009868778618787807026890108849316440410841155993792906349647614175365684738568703105819933514387530705581876306339859680804275391182878170775521028940236192049737645130182889494058714750396626282044752674250199415115509573482357472631203578112258521155599137873024376332228406329464214795362289255590039312949965419206561926014627047236397723844437081489314077118383175595979601648663110739959213795518932790737225754885701779998177215744450342429385108442600693977849881443329030760062089688847252161611646533555013914631862430469359005909080817836584197927929836324193387217962339989942756968502151274849273478878731928930728507549370240388569151216261596608702463025810607915496237944660430565594497958908279757350502920057810984900773556806384038575075091702706065574253245992368502897109337962398664780282472870107529161156248456828967441515729267708896246089476502101039419990487825583783440966812547074475734895635804949959886872099068820665896997073292037829654222260481797359104730429630474954970971450725853243022285895976128790196298048456256623452689227142131165219914564953776113957905894861176995350222330631389544625936239887610440100120046851653459579408913628979031972357310769458322940180626032922401483065923050547188720889831294906987412825064633246341218046506749723765957669316505605151879831449563449004682406214342051099820752581461749307471224473750761334794090665995373751449316123024160080579502801318518177238760501385549933506420639767955582313435416616503097402284095790326745501696243822726401685199924587150425380355823652956651784507215179729322974543538028126415379198425776960598144594868646093466369537422980780044331944837091680250438131729130676546799463226179526490515809716642067050832098542084238264580058106432228789905946077470085688588759969767105645595635983283443755678163777834625513942534350198865618923729450188322236595390391237308713796572961783556258342481472723838407888929578430117716608489168897736141519838548370312009263124225703970659596938361355807188981173903227804258074305583300520372677577088999783486051245100477257649063085739255030172225953771482383123219691778445902652095407492815566921575050743859093185036406948058012015287805341743878778787266787701236767120917770202094190319881515764458785064215720067017246570466517880619114392618118823372474887752839258441830195702171795855525553839358801896894862107165291452226461268257852775734545828773555480033191671719005245501342280741479029963323441206395569705979132841575770265003038684436667606288307318937232945585412535046588769832381153229350574057659020409794570544393134025591865573637565889922650637369776995953103801661617401060235487063012941282426030362085977613579561752754339016287955584316160287152694069023641720711158264558969372234074485552266042141531263152144692820413582544660988661569624264957888887693957416191160363982709142480349279181636231893806213228036594546770406374012343677626116259518084908095106643772551764958670236142779522848191951909174439175027897431740300645454318938765454386088638399829493533172134420452966497478044948087708303738414376214106093755577925139730269069336630356815738461650539767944698082079573839899450257697527406714909291726824377690524599597428807696445637453883098523517192540782632602282055569744824511423896531428777943631278319057952266348855603628536898163980088861178545772083420906249419645901619132048932607220204943160966714799763530066683439268338863049644737655830786461980993104902891810192287467517634763561983334534537476766087267127828938727140944597774854145531484678051671580067959707780998901599952171028254707038028601450529223158492186054461044436348531359578899673246881742378206503989448644543383290241131028555009076868310547622676910583337810120835442425521388381643578132442584308184182938093445494781300333000726635772046133864554780226977022061050952640830313300427872464248620464144240741176522145802530081654747860877047086918697174774264960792879254162479927305688460959411641132358364428534376020064195811166545056710535810244226784866808467344448394978874525368030878591000740158770230220018218750051217656325309685044758250414324657456579207206726682601377082541310364087303717775816177993809715630509156405829472058273980817072912367527972307225816958702226898571087227045557448697848360134243518180044114032857673794136505139842537047359672226293004219292608605536550833903266513815655014733237674819759921386526517981181663414038353126061601608108867403686773431846792037403483935191189431223045588325818304416153549910787086255931277929536907715301445584734579780353524426244180973023216091819946636501001645563183399529705273952786001421720562833065268267879983918004222134919825900789995698069116202436437121362731177575431937058442351479718628747395128229145196054689826478792566695886644718168766686642480921931675938495159753502917746134664917566538321835745620821944129942544926772240925289964424667832858972662155675558812987569759702184295738794287120065892439140642820108297475720292538758638377371292510412153351760368106469609114623667184075758331891986754786390980088040920985901880734265962472426007518352180661655705167800473557684282105736574428607004883917450702326726916907281969044528449436934425678681494834062961965200275082233705070213697845618086918823173242718894547196780013547774308960560015996641190817850341394264886756706304221396881896829933178556059387895436415567173097427084348643998805080108504339063518302250333625161008904376360554987583403408446735463691997649763924450205764252551329911665585335254175778128077566661777208254304798102250169114908342378504924322281807469474665597783406434585694612528933066475530879579744766266142713642375572646556260279902907525958275266562230695300069359513224014782272956178461570465072415809791238008117904588216000592741918129941448157857318489740530347816948557730225619848585514942696331293862609776193755203609658334771896173324194897055318698397479982738663512325043724854168848705001292888396224475669240012396727200941350343789956801077730769620709191021234164870055718009436541414080202258613428981671765394894092511295041497578401458638257136690834415459269475199032337839337507529122850715069961376607129837560050839873338488697871041684011961883997562629498266938853522024215061556108670218969892796772200121629228371767311221685851940507762501616419143229168585571637626329106816801269875094285647318869388269959422885005599337146058581492411810876290150633714723954565515799256386678797354469275586880273786432273157996131325303070983214508707833264476159341556681160779940301333454141313168101962796959945639201359223393318353623693747967609667465314623319540385716110482148143664815209480394610672064512662462509836500319113348987600747420879457677556197019347758521811680329080618241135447181250627288612757820182134112987756096658126880865253347180393556906869734379624058752226680555964472287701408489442357260767241506506214834228174181563591763269399059592486304840418209225417631273192556117763761167766447629135782623158162228820856790325046834610414069717646222097616459290820625157153453659254345535734568442139467123119579764004328597152310454641640474712780723983438229136433428503250277310688928904979794190015984722134692322697433245695887896111465065643690688709143936582921867468522600360157561704214761876210529063663985958607013006279869568287803249996558203935793642751633894033647538643988471771484261372393492269709497181708876119987865063648302490660072612244682031278853406899277334527096495808382585872848351279706432084143234708685196343191330670304654415662344565740073797721980954114761111103819316075588581128042452442649485287548238178717866431173827829033162318984342347299846556853623143486519973385799596691112315773895887409113778578540465896999540311601732457296155333267612819813047030027444686955985884010945569593124935263330678829915273372504976242243102188869698981700676906472491183715210100485982779693122352144803727656206317313072007523971815686826006322984781055649843132942085035793714505491588170733534357217331733660649229853297039222586939162705673089658048889704151347204471266172249814356064898064018435073290394757261828824164641160034244678144799074248954715624301975297376831998061070336605920941237434425021012272920027366918155769029737077469187207373374724345480143800733316973356928898707911176495177677240346653480314897763883461257809243250876593092912830392771986475570774587814021924173145979685324834187105269273678075656784673710416142179675507708051890094180743846229467868881643236392216924288684348432191022043637625177755628934258148362949838502059376730507050181154663104559475115305301994904509442433617010820703160323634873248184130615424277099137791500159241334746088958433962287247733677472467078394554021092270869330532390553342727195331117356070182621511148112998542101710599710787262463454367123986625102453692184599922749958093866553870103681274713466909756249691319518043322208891007289330732029212899491724043668926009212297024892460297093539322614084541611799601757301370224955059979578018614809426434788135316705407020951578271924921913914186103874118769442348261448530601698299443216420881762069304056102419770330703672096609045653151750199631267868570531875959400311993720900472505501662295081013324408335441912903941242180936943392894990995681333920819508584989985538295888923966652709359616201296916879492064912636042178273952516148807820297738341127741022938497503108881153495372297125207990618852161641529004389450145187374953314157123600204899127366405140844399733701923251634396057355557773380987411500014762143879573708210789070190354920678878646875010206930244793565650436725346720403409052184716208386572267925557977378229754464493682646692058927822526196089676319360661593294523056527538843654134132096649867613424594834046727041558649064098171468830640579322554382973277391091952536463160714460984921507462614299441769927775229393082450846953414360320128011495603405770238425655059241641537638345171164170057011373619096648425443453352231151401422622228361032297302597155228897000418594117233241936038683075971223354295568377942707219235978361477657879629460136188139706827823765745032722589284037913322679301515635685722807873358458338320186732252871761219435494165875002680292056396702724780700436043264482675237265343108696914763022773301991809089307897397268551145885185489873774716197958482754632464044378716948796300622507310188549788737177445147869622611231575230330238968247029500282274147380568238361828199821444640320134885778325861324831659694130379224065808933508627123946065958926060605618783667844943943314975103039227917388754928506817807034439098410373079888769148275339442748861019350289180746119372858148302967643909863943053978684087852927376941182385399455066389504985521117510199556133484851070617938265092000073185644322721709158538219194312263216522557380351172363542203194459955690806807006041063769955194529938957172880497099137993795475448185120876284757343247939957830519475738313482719142674966652133477117113020955968801935191705194345464972444500870530941462128638607021981678585405276604196838100299770368778427702508745502064422437352302105363537685938089774778159741116697620496622059972870451427156337055447775587712401647510225733982456201609457326511129243678665898247226078104548304054407996514182127828925110614880303604042969173857056679470203518527818263452752249553518592933100855932537277107439322608584838801213554921315620135883419093309185359178917003935388939400196377415831353837857124286357654732388748085993398504473040463167637451061945124005231185412924646878985316936318637034076208925167499929512037727292328522958320860599909538944061689505180277793458794324779687364452971911022911566438630326271125501642465573393678899461320982969132579179396356139163433367579523674052075307190568636735294648850174683681056687576499734386363704854148887684720276960325228126740122717140590590358120465943116423461923753512460040491401021529137463114634846614574008241613743077736098729429465205811563842267884938453358820394163889254818715266720713179513120551912567784420368169811038577842691978687285938312370990724336369989306057828486377303590093683879773708422387236623546410757829286669397824411279107992106358585964042459183216080693626834995449601000687583118317189664820056485167334896881844724208105596901493336092774990550074047591397759401629983934346496871640333738364453535712495184063750082543648149963104043786235012972099970990794254520963326735765488788503395616697210987078457850640591783491857773642908765085811470075449433082542669243012944984492233230559232199027009495860064387390872545673870394548041363703356801308377202729587104725961220981069613428786556768485707582784786001247450603556458142525260270126088727188049018973614669377743343334148826223334984177436346829560821989537593364127612246399048179865613120432308122335332294315346058675641976931612284174721781376507682573354315994530525293987738898749727321931402314537864187023841933005540469819752946705198083603649759570393833176203927140913910635498803937225784134888284189309278725830020028547731707368036492469766648914709522358753795238595517455427128840144220114909690477045830069946438490032958330434871682665200217222168569322397601941405191577288103701854224715372957861536412239464687725001784722795365656155332301410152171757451020149289005588619424684349395434088452462191522564387061167622662981043582063764662502970844136750820955469997680633904524007983927317567004562402377988496418090140073037951631614085853656600419872403857337961981514317640372011353671263826128754581801371478880119930248319335145600578305204774414760364595338025405250878614789158705078351798190079781748847254645378084343054603810303742146503429908610556778990244161855435298516179471899808872482172818930138533111498372942283266722409799233008284023448593316891893158486002387681424566738943210738085171158746965020571337725556862470947049089557490622064638227010909427193448921698970470184104392619056948474867629699786793831858521294488891111923395346086414280749176613427493515772252376841696374980535215796844778999722674299489999730431883549048841353021952010851197370330599940725366195213411687690611678861394609921805978838419761086688836777704752178280681989222413943483443847846996180002712709299892906526575880183866855009643260282154474545978170987159845916533014596640041176977921753363445247901106010907232407057107278640133157390119352715979916372888548918718334155821544353261317397631998937795336523029291974296946745708080921379556712306455871097667200219034722921504016883725875076960339047268216610381987555672633553993066710194074840984626697340390078585240752912991786188046677745336969512139153622054766196954492445270520499002402814364919778322581169222550695410664539933658118289523437047756948636942892006254519423418750964139491295280412449951795355078058680302845811526840007768561737770347748076053877136937475571332101059493364837305929844028268042168876232603256277795314861172724664414732252983241406861342937366441520746466185487415084567049438175425328501066035578622326298693690674873062650199147710440068009076493268426537994838167406254495141112660422565870974089135160664124945161686141327691962227390078779095199628131421414278223419960487423338601890086213801088914185672870519990533636600465818651445106937078579604632942519722471869279144707229262483462761065096432107100197423904415520884252960953200977223783019025984479008732817570931781360133292418566585599796380521438578865446967936403486359934133101940091281459581338823597365630802561353172427558960878793384483432618239220439466801829712956503849556877998624529577113052946240393032872809417664586749800222477170503553652374390108000764847931298933340537607101395297045429417219531708741364041358169096288028810610779054499237732357607249644584119464522044952083513334027975525338128875457375412902010182543543278244908210236499867587356207325382845317758937661992895056112202163850055516117945226149872221657773925412423705214940969089775536670335012418232136597013119009650044565656941784296702584184867048329857536171108591428305836433691741083445207384072302990793284608285314191076435345748581399298747847523049448196906770221134516366794276696525121221065566899709462017618519334806480672509424058407067596939363102891171626264465318563566523823803773513704434770499064851232461842894018970348259798451225935605331113433957654804937167509083564354622497718495969396604624782278754596995449356763410893182100157861500323285778219518221498010308814278128709642423654406739504154782396318624192867734932986414524482618430815107440700407838348128299940637945013216711921453374530997105935779619507178159114630748213096028768102493066361401879531742024397632150653802554683794092453590787588113435472463422068050549518809268291859122104321375806829953351026235126861004442254333327836131642012443921757348987133565745554694841799135197636521378073824100579286168027359597251254927677212077064545392106661636474126561194539537698406509707014741179891935587844062369880698983946452741857173646931215824805457525571832408207796637972698826393266280153500291143002641074836872156064749120095984311286987223328747511850644216269814816068140664942338025968406485560269365075133137064776030936934411759449718202875749705154980286731573757971201320995710548956764882078312307884113802998534982907591108956135075767884569195423023726612541061679655683270102142038584424981886399915595210228256090903619897881414466914324197147386149689148339049764964727108576414305484316854535522718429561204639997202022502590799563004978426802798241812738835668878466132213518494464236235745949462382195229578888569494405212160544801365042878771028890588298124971902322341799487718446563636700474570488808782415109731759173999086227843876952473198727237152382345195833964338704805501997067914115512385600001510646409242694955827587355883299666412846124720616765852995763611558779958953373748262391750032772884034110103179032933104748002307182925267262595533698940247578372409634791379019789866545654663355270847284592905617540636292592786397139157224528618386014765043290563396738823296382102732259026304790861220448934302434512325319912270685748709916917770056712640857177281481238188221774875476855000837178981393659337149730626980035502454241173286370329623485686392438385675272604332501345716045951454295379920090775924278474557549872287930436877188923384548249570547098314473064419273128013597676746846148774067335235690565640700939073166039221774355351222036028690337589840370448641933220351699118248888571771357224409442488824723914728601967391519863462071080832137594293915682398353150723731327817451230044292791579122025118997528120541702522507631726490581108524761495174914488626326020177909119900798061617105449634111405415889785089725973642313144936560414379165976398099105561799167609365921502409444519433779963627777344534993421458263487532727817357898297337646527304315524604964534327832838094169230814068155646639233216094560016358630218282397706147751470132988809511764788957915309690659618796671387846009354058553645516294818007419392806141978261921293915576184805815843300257055741561865866151156230109134313533636705220171757141600657720128219383193550725000359417482997984213791732198261676364388526458723930997284172219406032366184115212113570880935288251718656349324495185680671793224557005722529592189498438572011684905051817155186480689368352284163135893550520895842482050122764115091130951334543144466253042113959054610262373123548299521046865255717797984165897900922518590264856808134732871436064793930079025636858163913657391606433865976723476469526367095232977224462588345149259036187446174744419106507780473418634957002640250985713340062171851911697550305476078272644328863278921941405463798507730622863524913615236070608006310024340726636166592209239025939185495484820169229821858490196268799822887505005111983253542601436099594347203385351461912068588002132592411251842544865903117608396899855401414692082443055592284186654889427252481685934833226341625878972528236060318901430987247424794343043633982185301759231774935426183767220160320492340414364655931003711017050759540458029928546141702088286362064173790687744421504373622898364356314977541961774347001414136239091212715420702773198324703486313650094745326015270533903331622412673305557471700258648708757286337608609510670887567965390514474578519309617033951057919080016530285176625559850861210287550965031470041900108873050326166150015137585075790965340645052330821765378662999849208354938852433999239102512178582757298975328798075274329041908078729608441011409668854141395518634215447766878782741191539847747933745198317043371824480776850158325012395611591933815499108305805017467616609553368255085029567803304729714467380240765121982496539684418411415479001356170888340739073179422054394005086579640813054291859390079352233934937213247984669911904989527909257472646991396966912558605259990927487962180403713522071956044196168177745134087020290648687978402840610974853480045983991756668429382360071968133954560155406049430937661005117163089451219610375843862904903521584685438547386672225896948346813388521586644447843367136707453302472165492456079133681610952414548834029170503802597579476553182485219998277509947195749637821736274075107802301284207834478709882454356848940197559850634529734561161387878563524653848479856560345653184316866507336719305923566747396071070178395213930610510431961378688514434233403630943016934565203705300467558862566928144718337307046007527022298232347500727640979477176475826451951580743229478748477801273928809307049747913189148273352469768066376104301985415869215361275996718046942290781492771062221495035073798244303530047561728817521254518281793810306859495360893384646970190889013551466841818994555679313299511908834790912665645666226258450280895066186221138311531448477712121807902108643558999207480732420937787642759071427224261594652227601008437116762529055888136298057084300556953594154975508628550475276966952571070329186737260120029927210813389853426468709161899924898691083237441354746559164303893848829046739795820697719523094066672138861987006107194056569023109261813670440128628553840397211754143046349320323516207238654763588148085664497136627386488408383479222697001445990017038342133942600111343302061647291746850146374122239082920087593122787504165401433119818606232988538089798966139834196198347297152327014222452278427888436412020678509864945889852310476982384340765159843778155073396948663206734646539810983593633082008640453591105681548007191560468662006773570405343547238075393081187418190736335486962179518284882351826272284369234165992899083712611636550107013531896354209518289445556540905785685071105499801602799019945315266915538421978561282942087285213687295045390475433532937576507571898811891411690301078474431696302645362119654115840106677724707156716537008130241904341648688905852550951772774951695871395321595916271357805677576760338391138347960774744361232120600546402412488485985870619507009690962021509944404984506985219525548579674768063458664399995988285018328768021286839337266876527433057615115185889566560405517146400514475871210397925457848013892296410041726526343325027879670805470234538354590482540743835800312734827542428144773769548728167827783701015486555952287504365974796511757937272808232169016665097665241727129502970222169707228407162020649247484339340839039432085600631185879185690322148891190015166254270556070276861880278135302860570921937088839545280951514488068881702106394335423555199146195650941461619556677233570481849010628090760051959380608126485634196440816459926379243353068758678511707576159681778542894564112114560069976126229527246217206883878786635560913229119256187925331167787744353200272179705252023440285185779143184472861796578774114777214973683298850190802949980414159211090690964819941683543407982863631176536399060372974568668809855587135579573723035888440902930915241577195789854293375212092364697611211454906759708022024790630145815695197221794496918162926470130996078384133287970297303488162311443303019260183557204681632504489501171420486464332184741180833298597470398508863861979521036758565309952704717439401392874163417318959132951168621125819325090735159911804023653614058982618635260861429219200106343340890000520480995393633933435904581761961475527673391195590864276269596293923959869284858724111536308832802399078643708184148313869214834429015838784860198867363472683752784899414969858165248587142490658545399850525727427792780064847698849305587787067527849448868607677132416869428389610668612347470994244422337760357137954353501423431815178343642751062798564852537194189358832206415702503526321573352877087249283226575110245845900254969723121181233452217460460431042293759137935916349259737239608528714163362646844179547507084864046443474892671612047525805058856782057595104297203472338752049024438867469810092967594037496607747899656120095109453864555063792521628365297663694101814863637238772578695500239915505015175929496536641493815367586364051430786943018060956826053397002753723672311624526758950519729068613732951926061849311371864883084036965307181284624098340778352999700136292190716726675558844440975087975440188120185463099632157514672672136697958439281178066707939945483851501853985347334625145628829978633169881150827826593760401538552204104227804422872052151932647276928525494536778071910242138758274058025347453457564279863392309049256136011643704475020108177076614910149761798802962765547845612676130305801149533701784241984639086622058245932184978350772575595188945864832019099482031503168242179697284703526182789020050930425748496650597547976411172466880787799976782975492761789854766969040113797244741569206545043666073647524795458747538771286352408689462781111077519482921383123112024400936943625942777261818228442309271776259716359687833511318023999939082741613750461821895214265959735624911542718136309412352987300157659044565954401782665709795141314632641707077897627840334546194820949038649794033066747513409944157047317872182256413931308472535894899375255047330690409874612165279521649969437768421830414563246359379210359878814552510002015931702946888922259211545767260132824668352948508758570346166574358113117448230951136029731318090026455546263657147526986712483259259523682513706371589307498990087407565824903280030385792361359401859439978619876271045732413865275717830143840510082499211733685167758542327408088300222795714415292521813780596926008038444253168626498467628136823856332151191700919261700709844010992731548746154156581444879434958282623552706423095469005874492979066014687916311259705378894782111377363844237053753358931080139084773499065904839051009176635143038583641104831109691277575921695545079328867617416306898422954743009727097982369736615448529005155766207940851201715342734049516740606206398130324499139411597055461676219634455686091912570102390155783356092442774049108383769818217588002970833334982663336127613038457067831103785614484140857120694923460395596910299788295699351220082743503683316933896892011439136117469154849327799662644238184483415521255616448453075349827117694533993818501166350416136558608934339059817044461332795234917589801776061585399257382247230404796322925889730184455764299695221660194720424236037704194490594002204739343993402517910143893206296695128095012105027361327033621231619699128638136890453313766374843509109005770871296963227336154063966307763208415676767241154876168740084309827355938799995566070040900229575789460948382820913632852750620173898062907859358100901038289336051471324646412175424145495610880275563312770179638841484119212415422256171071145427279625854634214732095686757399915492024590246497739638616976483519250688381495553875109037958559872600215622923087615476778576085631849085532554247169458540147570002593470225715050357882623424646774135281522245699871557214591820977748093445492626189911205753023481812509768028815710932331969205922959833372224469283858988949517767749102678885928960684036958317149484571514072998419006111761603015763863962542744811019806880550878493005838703195980335047638300548958456332212273822746768151680485968877750869436489953125148476142813219950707265238135855084545745196963482149098582512151751753248243696606403742558540592025287818363273486646663598195571180323752400265567788839852072756880469505716494617658854800085499609088659563907066538243456799626496245587273636181408728240174620725947129385971840146805282091893985144603350101922089423633544456622305747546952125660294557521135353607463980366642918826901771946082591438100144027206227639171258733651534109445062799707667782003036823191827501608566123001833653603461900150846769619271683779512268841949362361293425721528328198377257053179798336392319929241698343092901568988654163499765331593009617475185232519239745511537645762398246664313070751368080416358597415554791978697556015321134950710946919103765807398708460388383141969818406633596674176831513293965368124230401953547341405954936815223690443208677851104541755514377694016176437162991510813822991666141701385723979262481144635688478907531530769806183168105077397899960867540834418407623646116477196128401080467483182150384394126039223291766440565935129410886975746024310816874995866678024622864832106975769352423217733150278134306311053131533473517584784041762655417242494527184031385853575062307615223533067618817535140075982583218816747232817008199506067496790437042744683953504466644687490482598349928404082416510086526574000361533094967639253553205898533678175793957764067156254780005207429017465330294836336568170088523227960088421831158957775084211345902374812954021984777850088393760187127443887340272418403951861270270035490289077392583829402948387767710432329022121419615348710289928528459621997899232199418773920887518159388205581889776968557763811792681239623668808680083483663649827835773631532496439570437990294381223931821293866914867019736151384999732656961234134093299382707825486579298330479171796809277056673150480646371563215714669817798179935232081847633518576653637889736126122991145477005546928614190753840680404255304717624807259618635429086060082362387552473240143959105871293205127241644972405461130420948012677776558934271816965191817093452517543616512855729275432064599055716304286842648446618321597370421608438944077180783588006213444981373130687613301145168002366131122917131643199245820491989611579170719175472128688872145497997638827846160915265192993527455200631179884931212905039352788423928685094038858655489846566571253575925563681092331102679247430049132443075634481598800378866939803816701526591581576650289497616884270876064537507649751775304121875407175801783806598186876250397930815551007200784626087935910487818455782824146411722186887150298902564653213186800948446179216964194393045357750716369958132864340666053388048430380174760402372343516826284975417794818924476657105226239884039625160025283381295469450617512444862599638458703881016147323814918862417745900744587616039163225116676075691728289783622205532005784429606915647617756235729122055948171709185496352201388563715630152804233563788867569819418401813618665692171968287307073628777587519142172801167279191736791737621436569401732415127551181760419066617978575709274863237342995514589726781833977071812008117795022445313697942373741862684881196762720306641051333663964654771724799687463755645135044235136247558631627849987406576318489980529698651783326472618690241133509194534751442505400237924713337113577719356630079462544387898516767016598410342556610346061167640218228434687561653150386133478272930959675297302609014239802105682735601076362061470722174589468733024357902974893257086218423860348809826592260359785691220736849862386903941653396871513916246596077079469545559171359105236549472527946192969023537963493571543132800692855042617737737451762213942047573629766541729272065497767626325201646695765952721982586348117336258761351332273058691658203466897642670477468548144916892675456787101694953152307266944167312271699582522206605034714738988838890634348821587518055254432989775577217374971683672723445296860605674760795491696069798888094766848229139524316371719992308665822020297373268650120620018713921210775510413233926708833655547734357207855982738197830045237849593706305142484127505453508916800568325716978399616529253179844406982454299113381083762623910249255670493431873879840804107056584007113857777731221443549081297350575800012700140421376795310470855799831684521129847738483531387397819843333955686661191386126825722134767938984726387314006208336109041429782538436330239904081522018751425481627478255505613697289105845482353113369908720081848716747668838029987399766247660256414785963388152825377262859612239880174261748700037085387019637795994968669645957569283329749862421469428184799363736520038937041104561865738086517214986177347312729791024928364950101721313015939927632391022929349132692208514235846505126654370918514599910567831735248921751614680452865051309342222896515601305920669407973987715580624240160154986839878904322526263470927365979410453506507741732441956638086286814840470421716080203511680993958098043053138373436578832855360773163013857905052055172188093132420677519174806518547010233459566482748600417584886399114214257830802193275655370834496935663452545355089554750540754734419552321774122290066634256526011767536848399759210531546005720529238087823009894058130302247926448855125393085429448171295803837575718779537536518178702176470509146282332325781292844657771709107059250928669827753330988241297950627332517318310463217563218902634717992977436898837943219879958925364271946455661869462960453211462469694035100561729639678403393274483858476290783770670079422725787958257005729449574398201820754732966494212572866654894444282160691410365227174400781555482182355026945059132994037735188513578195366503452646550473923794947343350050893350012294847522175217986925118025370887893957611838024305132262582589436284256276922598128726915105478885622435576414520937924056439231075348346340930221960820440105895799531141985460585857231800247715133600230055541293261566161525888222453429224289103664323968237116313149809822254715684105977159200669999245673252235392170633408886346017694691236950502350823506042662019925924501589324157322476621000715907818852789905246025318702772206062357390532449084360450316331633375697123809445333029834783114026176312432253367667417636044329924506391312761916212293748340775804799219207846994332705273923477507000097269491360464063984295350028113843323260298989199878337906659413387249494613903135495591006187647230332399876427427398469114892424912505443784337144646893559609470067544820270269140984537486457540269496098874912667611574129742864890419904188191349998078000750874302501986316050629883717410219396680068167897828798447557542579596274873159778369931353847280413442777792457680976746365517136349896326015110958867748295551354337281143585522791665078955002525363923512211462593590366166572478748270147671614768935522822184993431341172355390997520715249245869726089167347762283202146011720211367388963015030562908668862986736464624515926956963456034483811336906660389809129224203884412172652262144279752245457114326953919865587576753536359779434683730281148709977434498631965032816823166373034269006101681595747108776996090615208521375275000121800517087926306413484818553455038403547704557071157994126985652441436199054363297010357076948411607794807118187205294637174811199240896981680835103127169067475708540381780708047927870461578546097027393724480643262075419694125056138163637515979917100594774301491125015101052721809142261139034917041316378458368278413256003719622061249728535173866774195895151572562876776085993043552296555247004004890140706885286299736107027342422650604646425352762265656342841877377733676565592805297410137118492536614778647849562378567273684492858718659434405980307365476472961139661849189050850413029271081112533341693607847128674126144859109288426261133638766863566833056304211699708200577145359020443845983605885289282757170165554005368711056735288170405706980925050515570291763541456719662930202840687803914678704695387611729193181947894020880043075930708247386488936517370604284167759275617443309461786594903533025411442084845016822328062265622177209538670540122971591783038750137801834530457308524674027843498631369638648123382747990947398685568296464281689193496146565732617183960216241431646802597088544146853506269844603514882321019401264724896243482734909503765949836424473791835250739355779744298180901723844365047141429082476225689642143262946654191081676159401613880645329962902867142734749418694737982118760733382955004669019774769927171878326116891580401713421699996176265008997040834763172520426157013463235352066899579923848809838756194575133787116793641183773463208523506588595443587816684501104352954164307173867583324793021290173829975049782457874716513419651977647256803154312522044867620202398235626508070186305368001267997790419388659205772448617684370480460670322303881760393178752375505132490771966636054135389295675713722676157439838397298622802346398696936440353974549545391419225095770414929822935906982322144751805404037380466111118232589544519881168170293145965703762658688648577914044980003240160883693218605687505067414080299720872347557241367115785280797097505926915478048590405404192763550785668468990068377522875159996516741993203135453282707812110820850239287424945833140830528647872548936449239208401739727537942687419211344404413362336456151065554639963507852653246276605978097609359490802633428058832402440688852462616550063452517994918900781771876801705232411883802193536035987804649791879142682379573187018567156743752911142541816386656967411942248459276952041273252685235459491269277654050790557586632166037017335237751302058339226649070755433535665866940190055085822215230725297800579918299595019756220858933040192606121619762137547574732924398234033961505193337156901989042534193806910166898827552024060988495451316255449331907114318836255770469449367625541327573791358013656120400101102313424826618717289700640091414557988982366635520382980467843508124329110114799979059351415793426409793691317802342375955285916347152830314987628675811433548845658941580277202411207409214852183952892411327208192737212508483555795260405980546579344925820249073883203840972337172478241405990540508428380864201827686870245627951857274701269964009384839816618827258728164103098804469884902324994627064644173895614900764329401960156379504298788294936087484252118553967828084901237861482073964799399973085479072124891374449734195419655716209279018409259180803866066177580098702227607036885465823103056837680111124661112922428660702944134628027402579595820529898644125952108058325167021712607847389029353308718662886174376997900326739721335471838349838936146028942582692906346220348602622788960912859087673838594715618373135788172144295475220869129285462612182203998680107003873055312553121610449065472164542474232269487397969076472875183841200518835666209169326455224311703110073563296655224432141040096184737172167823575796751973323495823514120850453093694123146787483545140614486606261801743146223309524526421845248226895994205870516163084584174680911078448206731884919269254802848118972026445620976278056900504789567866727672593195656360528240295665842924378346139775316783947994525542652547632328417494748527497230396342190123256875141871280897587831306909771035881828024095782327835690783964953111404055061688770586476404212909104988667326582769174336013849944304426722940101399353683495675820533924963982731931363432799052266534681424648240541394836955690114327353188064038555613792056347711974798507602573398600690998628940583729472719765667305982139848742993175980686603605168903184865488359929012171843464854353448017008326256663516518462961047074461940151129056379873373929338955073196099655648457285324249190349078446247619074307688671213000203471813889470732411027793857046812713107342382106296289807108903422171090914220159269093906614633950601640388116170133949904312410461691326028063286486167733335708142427486532780823840927524509591231908348135513651168620508383891754356339749301592828628966207870996149491912107113515602235110266709140354431584973892768396018969956094545258196201885087546405786632067133271140119265494732788190891464448909330507465560345055835017642770904993885487765460457660940618937170658984183505543910487629407818979417102343746463987968414955766686766204084283531986159401670505186685620025930952700004722029874060261000458908205108749680583976849088596384309586356487884667266371069372168683877033271801739035852749134121728704651258948868616037448471219208021716670207814646929846754671178938273324826661950803782659161751220987127189452351300583682904513327162738218996281694814060334580804621174209073241034103405635687531671546592802707795219896124478289762144485159757656362773796796619429263776311879569199249307263703093027433467927860097407083942349211079758744386481919034627285470978393491055356761058856178868342000188736282705809891883044797595463099838624195989110357218766258322137374843508496753662226155409339667028063969986386148917427596300511924677301648011795192186530695565992560856243578599930722180927111435681330260071509255525686073576333413498305983824225950435225430719226750254150348212858599073816024606643877040786883525046435617974554101944226668740378298477716439758727926841209181753688099280512872305271414810462348627189188515071603084162288742852017777370606255212402590850300508481000765856576454785511402229548824711393511177633296132136754678222320991285436916269813228267228133525894200877911174063810663562366683974917461390683604733022578353733501274406802870141880290946889580621674147212034435020848930632758617778044464517609674191969919231589994823008081348920975241792232824622829904465874385921105014796399721746061643051098950858824034543412353503814580152136342984449941746752957268283332021598207609917366370909009615018487313697307664433994799930032307267630601727889048476631931273534236314385531053150691789148655509909399902965450267739611355286469409706002944290563239959385475559440944666730375462941466550545933972545414198676475353938545154443782435749095805933446694782791837371574902472730353667916708666410285455980393583217881493305430005047657797208393482102263815738497382481578022633844444261173338870448604601940300121531238829191723301117291501643840603920800156047117378407147338471632975786584567261986009608602910627847975363654662794343441067025872212705452228054660904531369831740470115971224479562865943148012452937866112920581789128126692615307753311913791089953814100832569431581621566744285569190206069684465642551488065413988140445350118010593334729037809823123459079237750187671792355517804645434849479676230492554506175698079545308903478383607457589748352846086606425246469455626267649659670647673828194200420884009645346726114238869657784591427632466125677631378992383070015690621076439086474026561297328340995263855573444662647007497362628562606744742114604584169145092330446018173970001690002239710447892202349529000087355266269406165766935138501093443062188090675942783047080174579389435185134349216354131035079374350582625573556937831171469798479444924117187649886348785195640869052956344542427034462683469902796560394136158089988255503813909845335101105667420223754194220758233428700138307245924799197456492868231456500155634488068760391347799676800981028502244122871466571534015584422785361928395742784140278728568142073218088518008784317234951373816001640051301459090276612460245620160954593827418684756838585016402883352624101487536983341245673790075427258096471705049646423749991682260272908162820696319580348562015217655159488873904353019591372408090741145205134074433381657019157360685767156792849466738060616794594777538673818848878851045639960475184440095797744492392530230924505465584150571424154155434583804827200747601693287584438778296315107723998540536864324705597102880728169909997339226541528234140731300353513605253281739625218465767123018065143732530195768640166647074931043448782300474571774259091297575441849664055868190770998627348848371385036037439825879600346250094955507956758830878818067470436228896494052974961579460527625944141996893540479151974866373142050764512342091702134595748980320118727050933205509176793389486738787661828917767184742867032179833193324988072532372053634141443507378632667629910203651557572691608234290741101747538499686900121150576537991013405908866342214173203653475757822117021276176055755002392392319086001827517707218023705814319438888062766601836598130821842504087699008243421696711031592817860352022872503621603651691009832847536299416661924048808052174201417608174103815513958218712102056029524605728437100448650685880189405263083668556861523930371379498913019023479482592515709812471378223767912835523786417245532495836347700751434175392751007166955340911453212132935698427239281393735269097487895192292300681152064212214732457612057473902960623122404688266551856481319539387110033286576383435483725775475193275886170362563103404096267673874966766792010053021161914816659944722945104817902105615707512653062666540457761981240507749037895197852502823151745940352050087776329225380909608621027198221898890086220881260399695149701577585793260468904294597085940969637112029586729827839376542207091997579117598144413563923449238777350703267736529731004255557667581156486818302854268280670917506344461286030482904278599914930608664122275500709743287338774073239383363793366515517455295786897739845077440914703878303727481734669576227876564316472050259635985053938775069889248110690641318516361723789252290026922646482381483846326867519090538766725299121391198195469414068559863393306340705278036029681814563516511579681217347855751890895251174534295320427138877534818277273347173692463837651569089161170196649213756313056188139545213436904697448761237778246335919713686491091906137538049897720385795729073975252662480010769009034099552100819141948556903658048504791139664595252132004071282744894107358451607808749772006774294172216405724026469664788229704620420957532250134926361665539562444538012968485045995163357307866915050800172087025590649695064064000189551441741918485372137080466439956763856226521828153965772786380959842201267154384726984757756960439799934135857601272996857156964202999583926541632095655081182513476017269823904567128059103657027228082506518541396008431479278107984269819235543050341557714224380732852420057415331941587957373114219427928898255129712548751052016366624695000058079243853362738317931130444886796821011078359421223057659295028291302067511151674185886352419562790178374364588742016130589385649280915839541198887643107330374466550540591287883729905574160580370283289069150548923202898664913096076179965721609925443244844750407232775702289091085968915561289719592057085273829240826415358757642248202041639840168570234350015603889215295239644551873383303364682422078828086198754440885998360775382245065389604250671041056024664039835772988237239515143841185565797273166556644780159904908382380556337272486878742301894069051329380339976850622182106972430536337261317397829054068373874180449137839089586531659779983800312090284093010106385882070139788196566384983764209310053155976491518031927820399135837450594499579216868533275759684776102953798200885499057400563430761506828706902594667797793815018634580287434340861911946018696631102705247113144081421041553728548797913287126999449241134890858853291644016632150920636844532938885199349435483304690848357924989868930387395510250900585761129211577589066975481007586065235968739362484881060150434119977479972040804791901599264783994694850611735114444652091254516146460216896889459370006922623214294730416243506582407506710706404364295474084680716329803959618397901832052343700887520820690243680130945170390064883714739955357664992131959561147629837719651304581245639767342136565377902343204440830417165260635486945751219934967831703529176867269233398567570078450062626272102769985412702124645792894561434106388069037102714550145736343134258495468810143425797201218599318350650285851712968667942344865932279075676927067465157705701179988133883842740194934084747003232654127110586455281448915547315805127132937932229340058079802087623073917618674993860310672411705902754340721216189162122823943340886071896296739844005411165610599536781859902317184466509476349619709693566331098598287756190044162026664908400514556217525981081779950040435305715671949088415909299978650335661351067774415159852589298642141226737746817687784749498132388557299364270633068234481997895317854068187803465940827878663285093071340507488536819715232816333718260382515848022220391836323559409237453639618646998695917175860366910782833085430048084355599391369690931694458178156188384660692959621655696143018982923224536368986827788199221474999995815601610439281934301548843459917235781794658252229280494443596592811127306504397030447274969849415060182786331942186447225101218255492822794617091089834762796206130577903104813894418622061865738331410845183568807838697506088709584891951208142784411450354334724277326952301443869702568792317769351820175853209947437354863862389445037734091834378981210243051110817796036148486533380218403258925093902227486043669645825456647390561196890660393071949409668767279256672841985747834278818470137047648831742423267418397089552176226477844791228246725818293118214515995024027593837529438185599516474628476276832617204183895372668221322472581413170065437753195000338229210561198030112132347175021048723292390153491427440851428077995998781886486283528729758041311529520867330101725271250319985048798263021653061175752837015966500418344738782387743675671965092742248732943219033475471458473436541379420482889691136417590768282650884265917496840410930881283749303108579748556482542711620505680125095085074801652347741654612314221318262533983188819367676471111527591707495103761099280025963550985543741457966980313746096965035459569656720214329823595547118063347109635115345712794065970450304352412787032834922802700007358243618144445952424754586850372451625473521400248480462608258756278489474090172193915553395717889753643020505645464132030210766869303328833483723826983859811277080129628571079193914340498452723519399559142892721621513071795529955379545068207592687652950297263388439248958154116964883142661226454596308326592220127896843449595880541495901791634763235247769723849217323370529626891626870731370220969269722259545425851982461720220235760409870767179917214299229906118556821535625883588119422283220601968247047416161485996682487077481272925392447038054048426717434891896752678103282256433432542554989105936503953847367212539854502090378857427125471840659816641418707148610451775444175160312146856762726138984973310479136695218948869905998165340638273112505456837082325308368656321395477721331904493428334637051595207186683235481382413189622312946951134449460769509772865513236347398752769189431559394978173320167338659041400598418652025134204592123655554202878622512018105293530709705258274472418316051888188562253706055180768297261756476612963394720705559957545693794967417425668160547107923951865856605302451939797299758009283016941610992347778995593613271085651124306373932161310616631036014622436037737178487432406571210491815963324768135840583780878677370580424548325261743474461440608011312822102682496209412858821567513086017252200706585041169026978266620115770643997634642256446021799187656652195370248370495706155524237997049774659027989233673275557483736813474704603852759886917184162902121297193389011265748326465150770107522413062438316233012838890078896308626146135622674854586779379259441050180622492626034880888335439677060689359008125925818493111416448498123665358161951862692937400039690483525707428158330467285088386436900677923400046746171887547953954960853566686226407382823817504393043473399003285551641076175452940994355499323961978820453817115509241545544458718280397381709511920187967136507507574117771200726546305280442864820627274375180907724129404298453290713450310773445668943505197553939540096852473238993078419789198506370074657551509117538901766393202326194403291979341137606528064656745134546189590323275262646546467622918414917998458789841537047424320558259041658043139957884319209885656713083023970510726700613445804961491354723270423088746470405941555463612685486190708814161271194078319431464568718345415236103078889623734203028494975609090413775700998167676361880138256499431263978368502256341544305491385283059073671534871298305073741825972623673970402555599940826145169740870475456794819486302386571639995957322550479763429230943501504829815847254134607555170973039662601820506933954215760285723539741988661163545406205473718261777792331186041668859061975256086843023246827684776621508214595004104405807261885817598671407954459982273641858782335270921948412023668197286324331944624255552170878118611630193228596347097153840498113095223338449821670365569832511653815687319215191959969989147240755334096050939233053000146565125507268791759140645648557385197362336807629531555534366203821033704508538261145244153515774406408325630380842399671533514891900238027811710500462922503745952904766995410092961648804256852753914633706526190292380081565763330998607222372598318365023016498211138179444771000948059415630945575474988522516704626864455582539843342089437943087718147850455259949107344810538929663102880695389052255758158156698817627941105480513198181715367062784150650308399419035620652197232288771603432335135468891559050538614963617683925012659963756930699172703930963751658646419638988181062280893404982318434500511983676752241627481117866346212445600099652348872177348542025868735253496806350084042640377795851746467716777176358517131805861170700769178241466441659877157891348438702723737640852656823209025118294369806690806894268307346381842762913500592257273748427136092143655560214198909379926587232993792740282266988277400721351043117766534496296042285106269012351559134612799584847447356792775123712440678989532590037384457714188345436580004338053678071665234790427112169116315667628683011870662277656200269402061974471179155726915812374809630715032139820660245625831109589079712708866427615379724128397709211381657692356988930165959491930536777031268255694830047947691972200863409788971542869938570855287924333155445568584407443823695008277471209627598863504990041655318553704175311596782919027632645990774157685691270629233797804455889053320823789431059994600235566223860471536185624955849513213792959928019507790608077438457861756019097595137927567225162359737825083363214583662981765332209279368445351758264430827304708149396746404697314211312326653359341476951040796878207599382046378332765967699553822956662593498807396939277481000533110435631191982188182784769876617321425625224657365379918569699047230413349340107448690483994572892974883677438465330644070006584945739004152336067266355333780518882823535794368078894314274817635022573995161299332546799455935053471667063432239316650508577704674419335363020474478050471220483397674500616151809006338731983971418560411489705771302806393661299313817850468759075961235077086654472076813917919635951801622320771856479250305635608114306239210528051912381189194478238480287957698408402147662680647029533341298862688986323131934388260658365867842541556476935882303757457055506718567704309422206396913968614430181963035628776728193938444812890019503779673567981977706445195089094072502158841298616029147807759524556417905107556067760811656991052467642014345882042234313312632210006425818380157254555095466572672678443308081617754205755371927003877394857842513141568582427988654276360996013593084340835524296197794010308894173351909877643872975855339568916822632280829861890887994730980053973328152001915725247430482092636176394113073356441865611638075483180218356109807872307649976405019467272932224705795642751137321844318135851489440576991160525347146598159450110872279370305971207117341261690422196929650972541038593386904010879187960811110494741753042405513836807797697981248643765883687201886773584979717670970404551446435448441405273722357611144978478394439887222920909267027610457743104946928059865763341488792860094475151482265297870790825639673370897421403009346391882062771992052217346033126114633579957053054576158828733166158377320048128034373183984238591729621860287019252412817941658047069184882721685354019090233530743593759412848435548571172496100661004589785828177498518326813347600366316292772585400881704003279303346857032939329390673206337041277516028371595208319220168520420557565723449368234132870996236139859398660716364169193840239420391253237668898580303877452064505007127281749695741750952535531203602943968704982857458935443760167507173831899616273816301739785307356080367714092594127692072943988958306226644350756467971954226866787601333314182176009551429180127983439379043280247906341973852793796263681904118649845815191643889816766223578882687687373852336992398952142126777904421315772103301520597047954306411375751790926884401978765855888926579742263948675346252737214404098496410635002847004096745557198854912751029557635930609676172049740063464616440905969125468023205090032843664669072116347352487917478419649331736120728145529679779326785913388055370102092193517615857305873915603738083390032172466801229523414327673729988450187522058670090182325174043820691417148458350554523652195666969081180428350158770447305601717667006468742098073679953203803332379009885871384881874322503985254581403883015187535176645184234942889225441568795143634689095459915433612024011825588446581728542636470361433071666153688027748082164487377051018760312926508532897630279552922827314771682493560520088733931571801691209388819097584109634335677756339245462837050696340150886159961918153493752635302774189426400377067916416404026851946125065481136323513230758925522196492374271608859904502640203331022126478836282246530109749966072051107660774605124006890154430000718971212901086308564553464780806947729436855743617773285615848703677636606928273357799097980874875896643564489312683776103949898788328226814947727492384351402653703736328516107625886550535146356440747676022850146543440794154876631819444716568111033894478370385293625915223787695644751903163727567852051246691288625713714262656998866417091628129682134962352760980635543329252084570394053036047854887137326704980282013752267434964266658584542869003880406427294645187261758922264126365577705085739939167095270289944584446678506877794352131080334561770596577527617881909168517434681960968485689080145720774543824016518871924662869185494320735814359783149210630437094427356474824628698396572785009241462240275525925934729801054931614250951117815683233963256854837177014760876197068413608017142781735025126037686096314145182372304477968580015879541886713737151999700746441202866203180682287901179035242270855771002848321315290541563747341843743732965777228128487308032178457259098573261840254870744700211462661691179203150174733483484259764131015446447905080866392128823754642657438364901216519546613498527962484561598831906338706527755730842593860371967263994515857486636182074919851758728603809075345186904400498370139336810093118348223646261831547439362282762428513653112909260613258261985665233440144456934540213778219158775270579009326869569427695358963802128623993119419146826725284356156613780728895185802937402508308368350805359112228766898785134816839620502399091486979595515865650741271616013215907370495156218469555325887169137074578761845340529724630953345806815966913746610600309120989171062616926117463394465200002596615726904049448325916187060955175698149089665274413907851538389661135581411953923903654630053874491534135710343977854738254434112988013130884880615264893412298943875499073442743141688663942389364172188493849987736427147727565465518145798535828130670940618060110080254735361339172531541729445899509863073611343332178550336482303699049182362261111018465557714260283013304943483004823141327570095764815448636664149290979747545059225610540086176420033032108268591471938541726356722291481794083956882649308442364983873596432814269191176804314634123451630618449343299591253999146766481805509425548961825105254822037416361144841115137178251570535262423532856407437982150324594696858589091011650678702004146725750264614016484705888852785951679150924374878041343054769154529166486105533271882048769478880176376798266238213150425288347064985999000656465994235095304137378564363527232712467739171723947987610660186886490997233553695486892358587214510014207792793082341310161769502200192633267526825404820553537047749576327526644945559319473725730821529188214399004889043848230962216072420706256367457397690085549796318594451006110921471872718041352239346207198474489243557372483834715829456941740879940885792999810323369460554980519537510018790289951999034169324376872905515052790505102827825795077558956325153507861728751892152018077444946151615031365541878953778728015098287695290939788387127125198997530300620877341426429760401154899197230253152312559274949799168322855887379143010457209899307239572785316216891187162112380680736570315163022643193371842982558055239709134417737313577259107523267204937858265306316006487190252151699480286144638381204492132512527537425676669408019877380630434278127513793529902290147590695249824819514045636132813966687873186690138163397553955958666640497388423927196908690470653863386730856916075671325700560100540736958574596218054437347536750755250436066163831966782301680429253828036341531207611840029034136173216779014549173944407223378299788552166010338937756930277572519963963011751644977865752504321887101580151319783599324781574933267219550238945837424727132644496868672537178732082486380994600952150294676507576174902481721207488942914293735799060078639040345955911727714405742514928404751030376329538782844821353785389027296056885865846300590940236813760819213600607993669983449376149277522322826324722893273614589700673165529645423609242088797215003989412770362861740024621051380931388364658354209384248009305986208632684300073500824737988443696465898735219615703731296288042187813166154398856712370767635201786737330209859068820361316944208256377559132019931262396309776544213397987220651715428459207618442119534999115530639588904498017787099961797562627901483032819470274548526116881733011009672509063321678040535208329512125319409186969456465231330188222818001872779940945295941791815889052269732163899577332770037962230966922812741537965832215688471603695615563021633998107961839296838861163881022477120362364147779485704045949231504631557905804836087540584364054966637081509835356365420951933979102728538467409813176893532476630159624919138183371561491546676021386643728316234171727768677907453831594220371652691939465036629965745349048333149215747137918007066207897636100511288378804178046764494949956062710473409910971564776514751205414401945636979855800968835241492766531557010676577577994629048346769746102284648270543564120681573127576175594964082025967632722724494642061837541962309020521834309240258871242465946739920102450476257983927472620857091486657780101738059713107800427310496709987574875070836601484408386287271665874905249500435426722857537748064940532743253627344677949684797878111898890224565363297946669032282187265702814988763305753376398404311296448526224631645286877553110974915297183293069754959774300133572574609509670882682979691721728178665320705786276519476569199073283359560772128505362608729735870971446381397811414500381173007241836122811852396072866831698616776930120307016188288814552698845831176914068248911443945757582110913467117673129047628625670656293152538018347975840468104371618177841110583771574597892951416113533519046857124831353178178304277435166031991591355116509930449209919335565525815983464570656914707647327445328597134318769971473594749608076523187822937184927704261617679123954365471467199827964198149359941272790648745147487665474994376317772279730538136511005392024794792210047388762527844520447861573906055741471618964356187201884396186565984838772733966030117770054105688469077437224326858422079572141257577145647415280243910626152147415611478373176266179555266913344947556805453610182065231423675172539004472949024745152372907048979954833448670556703806371976098364488753406356664283815213608241922672851976025251557422066434128547485476551483954533052609042578052784466632399420186247528386505092621992401079290317281772347301519479196187878165901075519422980479837390553324247572238524889852224702718827152637358228575488965910736689598259997726734081999258263203125182716152084392560906357232441464595508843242320707034925432745230442204660170345675388534277644741589255900958277288021534868230821708920813069720011212961830115776559189538098678453485775651147297619434722620541833987649303368857099314503820256533201259940636473262074171674033097831093949501013057237473391288927082696534021940151111036334386457813972435986740274288435898677695039918896228152610237542007423251900095607073093649122792844970883993935197095988892873435185161396808398744044685391581892276342229937066763613965534362279545961687049141835337636118263146547395226162354755806749666122420615714998713708068465551576797776903508506294677236165972156078890232540677749196044912609648887061044523924355806087160005050497270162899374870248877948174366525822786629555190055274456267794959749674823991869000353480669661734327788051087802191651497171214876023172401387229836529066979623535938449800990646050483808945066701143957106700101094522320019125349630552498098669055450782104759150530866668483582965739210459790221286058663590966242529712763538103179961479700040212102710864874578546855502873280717494516366668522138613905665084196506379215285459953222065385856149646070122011804251952158395935923794266673941942189714645710837857739800150423247271058162601431699947583048410038314723477029660913382007098873355934212694070021700778096849888242468153482639475472021437844845983274936370957803828263634404100194279930805746493635070360902723413091863694861545552940005607258303050820947171052516398213499476313720757392653929766238485461371021201121810133570975907205584725555106164739768120074370468455173965970707078747079440155627105764389964655018341264705771467025032115973496649187665517172535154042353559123443512651942125835766099636434785386805454079839066450117585875509157475308953675882922912355365789744018902082273302310931177467254399137123907817960685464796257090483628796920114770223411006419072326341304213356283714390032102004011430660820401651290986242380673551907918656460276292563841764767184139947350503566547302991565902304830858928763241181672455603913036475586874083481017163437568598904936249434264549813611384117161718040378858223504171099822618817275360489458728817320501022740011582743711095289944444621714891969143344677228811693896854769156025026679009497935954435637752165152283851471151424174707237948568293389038571618245530314580910266727842953237287658699173688332883296314390081448214266289969785921337887196907422453900951762203465075899871089608577220337982539474729198623086324852243549535166404580665369673369492407747156482654553305952483202219636428194302755757284762639287830416989768144818712708956523151372400187601412659324399564209508779260270157551752501730363394820763780059741650431587962317894661935783013022713795483386749660789978932392966646622294605557167009950563925903989482231500353723833304580180708588898503996324906586275457092479256709362530010595820059394017100661561844822673131018417106750406688516551996004437034785977429752490596978845757003272331786967096307112612866634030855660232604378935324531024962701325402000506521555305407436241471187013770238191548375214860195030213227831386683799270670248752593589922490237775007574604189460811352180039601293436157682627380511000469562324981695181523702906922552030287360930378353406680073838035940193106167421448823228347877361277952616204204564353997547604836888296165170983938066961200372812456241165123444503718919106424283565091781471206487072231731560761600553589582787065497815150058318674773373562614527763789594154026683651671111507334291318225795411410618795861638148638129774685865496356473484683710715210499980430370046059221920071991713570568405795545136668430362680354839907888095717416815781477637526796850167324952816237038283213162859782186907852263974686553444916992951589339348713442162527908313870158735185244694318432395626218400780825004268737385583053354167019619069755469771074511759294807604955352833136093258211127703651717620536597845824271597197155390793194748009413543271143929128088364073304508450905375113557075913097395908111902744594249267823654346439130766095704316403448505149475907478949386394599605295042279296008947359422244644432637598151101183344195835747515446177201470076068342907427737104679433572360201704129112344462103917690968825751471077466461593770906236277558939220643871264731987177504213615796290287741809243763906800098539733322606845585462954592093276269365046747997312847713975910846094290664477595720011102516518759162807499187921879783009835784930202354436161084047773751916441643806543000072053863667753408355434658663351604018578269153369536534409578986905968027186730815077150030811905987781091069661556876017375307494009754701096201217011969873109438866392256955331187676770344215756227044834716796884135352072929165069750454171528430067498539664519472910498268272823928186045693700088948611468306068375875894298154586642405920917134514325267053563557726696790849189040771472885045651275984314158337841107311492800448306687036962239390500940230369245358604945644507784335934267417850039162820542775703174926353781499511214743227113038240547909391557750606367080708898632705990173099603644698088501283534740335623735102295941030742567134788429983515498750159009522188815891606783509104908741275373834086678751707974951553863876542891162514298855750657569726280048409232575540881573939223503546610894900011286681143924334796576058293693225982660036398266759190221824922203796194012321366766321262170110481133381376950264726142519800065470625280098754273259464509088363212913354518645065327623938688650215559883284424107181318953649070376975870857441254910833762855553624717007092344955327070642368068622944038721598572635040601617631129939758140388640427031642273845444948414180427429927221349717947605657261986096672865231475927704862711284126196858045784262307678269628363289521546498417144604688822875656798716354892428059187696934818702220220051851692533977519661113309047847600920571928895668479131278366496305266598494032467575514661488601562876072414244703079120600386390295040350052800209550966579443609886636732635738203711015375565396733384803674130539556183950409407622216827098822903930474711559552423072474263096657050902447930246564338418074095887363614005611117020152247084208298042652185801335180751305988705661271239108801317695003493840049617997494740548248238639070072566479196323754983309955035529221989362665172458600857943960001566675396028736524201319457093407387675561596083395422348794788452772762060816285866045297834930752614124799787153251603270163608519264461026524907385752851890544931770482152106814113189770075645512029708249049174125349341282339259362709320127772807847345617771102404443996221236737014801076402357312376538111434339416132933208165819603096996628280406672863161384673385605412775306959219679340709952903263536544993915782379712168326410074438531867940760253489689539991556716311077303129541197386731596081146528467236913597894788810479186423226254976375815042856116916637721422405985315303179049162164344489946987069881892922139568185125901947511409450869525743318730258181840235277288126944266837679487352555016184319931617201297776490265282493559068936602741247582353651964095646825256869789847269681296904168869224692469844429289338521601666418126450187663619595412802082616887183820285879236754080628975686702701175529320109947307604523927588620895028405685226093936169253643161312400802751443171899538600878546263020755456928942431379964999947349409795542068769962763390304114558090776122492884442331690841903686547954437454983555418036187314804153658720036785183262344603899405616301172724630193983842324106701991784400356411172310477560084224169337476041093894339931334263781721774623418289722752333847894856659839668871823865978269579992155153157843819824863872792549794258082796505905881458064452912731879081753614539298241168326064155536732256080620994656054690614844286174758458551808756925571485179451293794058933517815636224273123915573295697233392971377885338889165341221114517262923617556644914717799260308840777250120077762413234415970451009548924931053139802279357564728686909759835616014038502571580239325765890199799273350030831970800007492710805769202746494317822613541218011429135263090474234169043463877667490565123189583610556153800986613110336898636529542397098787736873531738019150480036237871510007668507380016274184439443227106171930202852248123616175891283861072407856159206833930872018738774537146668218116971106611335624444392689597282490434880427776099848114817616548349560052508124163717956251304247325042492568671462593289773049620016428841665171086781339399911524413444451694015275272188878415506138603558948816807816620057887356611002106342285829001287636620874641934296472301187446964107267984779507998669197995492969309839008901782963256118356838847406406681058740825849601728018239569453016865731068382227400173073211377401436742047006847809751411882630077065484316344620821638825788585825749693530541754705984565444193717715236465614737446270123710912829600789453494849160076600894578858292783344435882525224539243812211205118919665253489389018175066560555172134213832777312644008989573200226585021981691968740557365011037424669606291769847377044069178341270893304056158905638665451039055637268721095017635931739521472656460066006703565252555913374279182238169886218429358125699088666566187777115088345029077281830963909686934013618444389944410696599906965875927386963141255019427648175141139135132340782305264822354363650027757910786224376521132154074434764222743433568704737264426427003107882663381745468264733972829176160705382721606304446212612269067489427642787007979222483310515839947172422604712823630537780031814808659960851511841597814749326845158103009778789723796175790539074009758330358866958094842301189442569791362965612674693560359788059840326091372245314275785777262898659725774036093746852962130088920188521142071291205913515340765407783490602906293261345587931997250550310271464995585047746107724904981487378533937313969702100777863046497719293900538117092525293382238234378794583203201732477255398650377305113652673515024212746743732210080139212858428942293978818466168820342279065809769646966781096300290119965658287149280206937453633421573544484065920153915424491328526890850925275801230659659983555836014841391380972173209214228293461755044948397292938108762644783900312579366193084959012491907905534803090704373648190143441641990558796873712732183001242485734235486782667159276802477513093138166238614987899195220681253367570140562625406567158994276493514881953970154624496171428761677802495445861648971928734775010756413310849897377657083608964942779261733526749442490922354539496233511671249262520926988009211508099843154088747908314346948104915975880403686125074713560319920032588692650478463378758462870120287357656722582004340617846979361393083565378626656759225146078823803585913192309083934541945373081218920414638429122178165363012105521311573374095864000025163675642702337568695723969018057949185151986684971423878412680492552899615422665231057496402839071975922925846585996485460537880968613076354816402261672909777898340719448709461167256227535515138158361572331986809060066075456826178326524497121992795564091770369771665310490846552645302004701846700452187000102303437890617066730417757877420764615385657350289893751806085672618156823137493874665598256589888640744719239702953688173667130853889486694936314661669373963557848664950424654873147774479277784030936597471378387518850549916934168897476504796960531035488379974965477146413016957888212473231297878016326387266803980683201300971556174834085199040120938250438248788879083073109524257561904263536657854332997337923186030329495807929948601274359059261840954251229433147563307837231616314222931835425907524022639758353426201947050616498138928278675930528197423157136177931519191053879589934052281663739095140759200149503457858242146601662979384514193838411290276391985547971434498434036043295556666502181399834659774465647468898353298033194912433190085052247869164402644871979658827242117753106924736640350649600911204579699215003773572429235872274845804765825725199135869963662234364786743853106601909713472719408293159102209953184048333668605115913349079976563765623377121512148421210178899416929631775997480381813644544348738350981423126040281934208864045284627876091691413706962388731364476711917150428877239674129207109247774971427527614914949521557253651188257312328995351472192667371450852375092613096192310187654302611225079086545548958369124910379947146532842236021221293022740816847623968282377032481618053884920024378100969736671591760809850701325148910336373121049870498664924755008708605956709738408847011152613979489662219804713134561189417667245748629668039795807104961879581476716699968892675685784469017520573742862102971939833976435097777070895102137845911146286798055531522301637625802401346136574721198778079135934590191668488488822048718156227214678858540002917094964822217809086920048869469696791271059206770338016088322847252274959211770793637129468649191279012498171297717080390117200857902968304962334376571413706835239420420838583590186381502969842735847763636366932658057208205104074317259497373737262371343999670508079436168761279812731007972319843769294962704449045596750279703238756720481078205822461068829978256565202698585721008830440315554644034613346100574212100367049073384331368842307793956581612214750883769507976289361431233031414679231016793712266550450499904291925348044727673729471149151182039959336484953257288977585824274526475952749957987240569356344298114811469399031331892515534596797802866035864920560836255414147488831705252844524008098856045081126703758964366175150317768373513073028197160957035916868133671837720220608310269574208809069927733109316375063516407133217392446283261973865689532177921640372104033756913302614257058031795791351522893318310874310277171294207123336419299196338246729133536060518098855657711615043099058136750570609484932725596196351949007282141187593825310110382115750846996051375073632732851433819481136520240199239055280505048832216605087439948110983150799296691191276457965490456055198482287536354466857451609849729849533624179085691534266444685428217767159944901348868614824695568252847987777542345121081605343134544306968958850837922637423532340057445275676544615516274388692074122726722545784031251114489247911226383335692463093827066103589430808576647662527830349102912319230014641737929192026424827253355852904291184219491963671356390187772589327118951260252105632925679678613779641001094345021345708338619537688638198051981596258791409757341564722207056443047488002149736039683072134567856161376484472694544596613563540177646094492715374443782589593268975425958507913272134101900448527680807856526130789974131728434437634454865154776005675277227825906051578968595722361192355282079103708289816841501164934555763763930408581358488161794082945432731965812101468548183446136692128128664437379104397749949570652479227693000250598273712251325754503564810156522563578096679964360346583558155035818330417988409431464621499367754335757631039977743278383999713597506398138650603517215874324655976870184807428629741121438156621544246572610837284786622364692244105449888954691677609727788354146204353121496705901382641914032255291901124133554527964107260636575174435534863717931479934881465527258878777962618937133685744473385250121626457334804451548913376079612206195611914228431963402175164842539641742896995079311886430482965972088086018289086280954308708749804891692727832607223919695150557685911907619767506474691912731564030035556604026871371376707581387198666960438282719545048188322540986653421640498377946590594730334751266361678707561186203095226326563458477508644468579884245051844519476807216211329073681847853775558954170971958322722252352511960354346871303351473854410600327208725058037006071111195737224804922394866020821111757097703419006904622042172972902019933310801842070933226883752922765482024489423753426866463364764708853841380725553384599017829399651735382627400573591345765581803161130016138076572196872484521307187257618417517430321529990025542896272873812222219882053488041798341482004744689046508887764366967921792169626641604813703343351831511916162978237396806165919700171869742748274129940965525563971659210965122317154031433912433194376331071020287107046634298049517637416254602280988634965994310516504908769622839621443742430011493090282853464127718275425390726726086601985048514551197978849757217996105489180593157735793615996874267119163861522876712792762306352447018525546731842654040521615289792432660291394585298531788304202259574443500705617279328393331223029755217306818284109208279343052282668733182787185561557643509870543777134946537928416048881941145411271102345986165910977642331984884101826586461307664971665763801292163738910582680026635108171171250013144253130218243624586166217322547762889890839957434190711241641838209504520160225761772379969197507123825911030189484959029693398556391833280251606788452100524321176487536653774326944221655480442751938310795930141046156861993437744618433886932973171448739194601309127482463566428953600374842053161578521979572243511664941036622402817222425631438735289084917766468975920739128661656163376326726848733993617653855549644450968080599153632935470318931528589298992760695857734796253885184269315047289350879281457104645868102188386581851384433901988027228806538931887807046228290126581325869620796427422702065378825484507944559732161914217209944477535617607104585656745367209262467245049772796562062728472388300877337801838641929147473680845322674365668805658352720248395912213400134570252369732293411855147881536916553854571430057403986588173755519261463721703033953922417429804306937483749446495892132323961976894995872666104689940453765748894062825127400344730436900614570794678051532649534469606299954242109180753303848862075224172133573643898685740782281345017423718715390308807878562662709651407644260208795728856779919742570061439986150489169100175558463868010498681671203579262377863385096439147787135518838974363314232239648827975962259791254566749285326283127568781678624106667666714900229494062438231754022153784734283521663470617615390919520397799952998521351728570764874035226594634996807293114290696994424923836403181129835399319348006190517403076014266844780990979213588285860713252080436640533444907659325723440553158486189978698978115803778077909642262035504841053595716750576257411375652639625556228479736573924576150962805635177900278271730605009684344190149592458024211772060292029130664100452440841913032245826260860197721932281025798720259950237396062179089046983804296050557412185840061743461144714246999661017061377201618510759791317654453805390533674393579879558716920595295068757709899060897843964587974482405160129764381480812995870530539362818451079830788144751736511774811851446460022070861026985641743465666166757274973204810679806039106893053635143053310437800755508961910547610073789826614172255399162445053602038343794591653599026392084950721994088095071464367049895523172426342831171467876202015648296079237745814052846346519316496223556931245534878130092416898871998193816599016018161961248181390661838141285528624803659899964419161602943804604010829320946322417138892787108649091990247054246307508067995804548545268458347379546098926944491077610985584957136810632944016774142546844795709949915380616594746073015454720740092723920267158396091805439244039368560622574589638885980802604032198993942177238887131022319570852267903212085360614100964918070814308323253319246083003906861630585921898639322307063924188573255957397973471847530810858997631545226750930163136710713002941418033670835699632399944960231584709706638724521723978328270381272409601132816029588048943892446298076791203327610753774878670612501235226228987345192634331960317443768246529689082214420316551831564212059529372158875412457066088835079489142795908980158306333822642887248478229750515366649964137844367412171540943918973638788736899351097882845824294393607207687236460236247270167309716944259441553133193852294976666967032471052075518947580263666335264653238605125664977977850723188485308740380840691721746233876964298534689261181953348078598022607062830357872746757197884246792982827375917837906434610437217685683591261137433214145152423547333823544221157561284228709919215431365730211111681289791719357831928196860152415403820540558964316276925484773731175036364737623865814166898248701695197355440121812053905890668344251006905361225081400015006506349082612426361076108337179204704333127709138828984242634892759948923425642810639051007078197754359214815426260944205637166786511557795307975923317202974014373409397859014808048053588931679791083958683879460261180909194938215436343410001139483369659450039275030719228967791829825092728204204937390707226778298122569212122361004194715221266493816315630534054149381523454867328826516242926255143222072551654212343185128469409693909173052810950886652582216149235018145706088132220752026800075338083310029926663449023202607090284129940458955633547441226085145832387484823284907490138787453761055024541561485598300654050794481651197520018774083326627756594769199357147963069991767533967549602122852809759385622670878237339964610131966899149514018301040794281782958859709297440250876930985926120599363723810789227904588934745442016419060333305106072690997729206868031426795771991549155245760148115141025494163790225846603421065481269208037127517097806960127175779276824123193539474387620112016766432142198753548588058663617510550395542157270491061141209759673766725225553716652710438314384236986878182892678923545879625139408779251973847467112969315664430395680332377194107601401438808440528141291318359308438260441848935510003615252280802968026696834560366747905999738056548798331197469085586813657458061923437381034473004208877807475332412760626490695846334054603538948342264925392911923012064145801485159115230175228093995483684191174748281594904197226556149911036082871962712509663207301171027968405022528548797021843786941697328602366008078865301935000104212893612409120118113599028293078559675180207268015455682711285123231871786707166307294124994303787398065320521956867510189325150759972834190121870888381108718358407034894638906002584320864821451364644826956483559919970141595476358520156265507127802594014940600018991927511792964021863447829289781777503080033230548845800976035375262212898664976940634158742437774069624608408862918779238242841700136864297342464339616843462654000212148442534887264215126395346200844773714908642916065282578447085545737726145051072397438626087497412109670257715804199631397483715706516277719272926683966571999277081097744875139478185890011583935355960756825138145277427755039917570636417024561385860293111155316453687524190623361839475899711605280052929101931848038889216673533064069333673906158808071249913496094098373214956560074004099653273571120656305432178852352501525788100974232336363438673412238078387672177510654280147374361460205210709482517574463830664412222500278180917988014558011897348880408960616973214948983076744558191691973568669690165519470508446392200797746507949761267909896905881235839867874818375215796083722431357495749453580257436804624363924685879546856812065850393421648319884366404102266269672646215166253362982458184449716527054090501691991561471608210459770523069809605882683129621819262621529028385086401409913750387987504848218119212689001549390217210517175779707135629707890971457840061912583161617556186710034504133894212569945446575352924472311722033522051273954289669238045932423296142026703789668056792290820641704729878803250390351667136216737719737580731888753946734233249135285905954568239308515544496819613616650483298161302028210254072983988529187690698174370079128913201667846133052133366452186974167635546304416151933397632614483844065320777775957238007537111764087088781214249588581080363734948597538645146585663397608872774356590559441294751219102032864646424024622376697447461561497138909898595738754852997685731454361091704599836161492060989819978932734274454408549964705432997582403111713795035296163023665021214468264547802999155736625320971431758556408923284172617033024064609494548471084106878619617253447171539645056669284464841319219894945579598224017003699050452439673978681964487205447786336405906421456665539878423495528209334833126147051820192330250446483793293200586848504982253966027833605769305413466368670608093910679805304627080660243024251200945084613639130127493184858836745257765638840780918073442221440962001391416004487277886059937397831825052900265001564033460800270006569720511314125444176445315084977672116373876202790700886507370845393303571980254550726198990319546355684368014337160754960826800589700251340674789380394671690912747380186744774371611325627626746010078246470012215802088703966660486019959366949653063168307066648824886703361392893355264082690263003348304792314876357669740689751023391951137768204958315524933568828469152835212138548606625340379695136078668632506390541642725821305292587935439265120253672942705686811051162038387110477982567516330443238008000741232713778621895646980977814951446659563073189950637909222988617848169876944241926743782142890961903122294367390852773668549583524234791135036101396491503876671987679299241424054825218066177101722244106661823539536635245105791088016232234872684056421149734313577282775933315422536751621885428212430289707578685746798734697190021176100291976388585737344234027388205570689034114721683992026598971519154979974929042505468616852208094870450061535406571093530912168928993362746960403650021307312112036287339632333190410878048845850642929572970624070896700872605389199781519529093988207945471950728260200912578410939024133599760870158635263960548683651504306904531401125907409641812569472565406905986233414539212024546546324861914130226503122336945851719793044045687500471158974716940050798248621524077068270219775204134165631468392904423975192162210495045762194996951398598151917205071936374920929626896918810924559403964277223441395636175370421645566769413860643515738526583210813204629332175851418312204383445797606564413433763956158205038209546165119952769392049412816403474979161952631428433363440720134360039359334583691069520073848394176288517467753005380324280295248256357656042453586992408504405204728146693936064485281252010145287108166128195510242759208508749045197796657943374360719374662749213475286480042634015936020991672546786773718165991775189496935234317663428919446387272585660216756671744244533554047144544320996073715410262063917365085769031308572346446083421866359073674539681281536937741171473756631225600515009860117291284091069204668502326048691815878562156733221082675207385435726008030780427798598874052846953818180480053608790775983792259776513273711363587869893203143206681031019501987145887463502079642410742760061902948788160398540682997843394252182937659698714488979795868052324803029459346485627741483349527684475144319263032700900254634709118134250590394564138053364464827633478960504756243440978011739133480525941570419528074365409714467367731836548729168973800695809571103418759162213860270788126355725845156063407614243967084160440962111845038690897509470632984573276366121747588683670452164013993510816056947121827136242488077938301303070751897592826570626322429933583697681740722006251325898117385512449923480127274436387154470448856479502985550736469854499277343385864428815003564441751318297071276578968395174699122150114414179559754967616137080548518071397072519601677838735767523550533379193315363807042725630372799066313555842017622917475459106058063418739459909751858352735142420212561819890131698289371463468523883289636415661258886143093995816490105355725574171184532725328072332355098359401803314171547439592688902089804121703893598423218757554245069857428139217768221869858384298723332449883289976327767867423523173495268329415273612004607069807111258900032925737574185430518848587463627745012445125185067469567471284875558828100677466151291058824558707208371501452258382627134111077836644010282042806016827048588265183773180467408045494867408726082692455839582321110149380654240962518222903977793504746250381534862471831559980123891372680183514385603235008410694226398924121069547799262883017573167129168766987199685516326904566960165965329927136625967028346129312439773524925640740414807280509767336901325203690407991320943589381609444862820546281651556351315552162668705519537659056186247798857363854133235581925232784369296626812738677561742550021752288708842385651005782821531075303964857395377950342160921288863749935971239641252912332924912053596248404142413419044424983385779825063258040159751759391925323359728004225795950995032146188427521532550386125062272800573898389791954914678685476487984051094969127169501379648845847885546529974867949775364929783122786484465810369400905519102401229177488170530760079457780184236681267140354769382758134803071281087458871400656522168357070496860489575217921411916633871040801275608612040649985722891091737902938638585159639344659346896416460863390708471044850916656577887159298858751569863467362519985875127819020991166164873281783234721046893005796719122079492629529732114399684917772735775924877396610223986224035815536945317491067308775998324390049378273126030103138611465125856633965382315821877322324543927706567891874200945703709691627943259560695663486516660638032376772127992332475298639795770394096119384441378521480804382842078130676231472588672621130795140459434037044188097752196929412644950490550812575460658018643371037286189723332353655852926819910588427499151720864743294446410722556401703509234446221114436331814208443747113936075346622423128080227982259932704566160336786207948400559007118917701419756990694059909575082382792878863740976834462117409782790284725109017949644739766551782855785272695929785555726811111134457445361789313494334262926734944355519005060252355553776728512205236119194303764397731919233619163728226656495965037421186666541173999483234121138555842544494904442468838167854045325701008494986680718720358800633062298361466483069068711663992440216229170044092725904178534369482213684289820962537537476711122874976689379750113973475802783439504714226674985613355632656666433678964598209585719476340639545351325253642180201792837937338024933211582310654578590140295305955600320102285483847659276672056679058740104672379063034059560741274167850316904340166236797849919131308317097724134420271319367332020029368745629949598884798980842200939272659504696171032196828067493579309610463703008533398097242734340367901712252517009453069829821133682011334409861263930986712848467637035998483731793312079038611497863047681125246941449161181358742130492858797010335725053981756751900585159077324721245538049046899069269469072023300813860376428937325543994678292497666291612871667283989258137089118748064524839440179641597922103050442792886396523835735446961188991839882625096424762674368277436749140532436600587314522331002291263510974385731876651420716788418275304113883513316038125227066235852825836136073979334271732675197286036584059382310700314823077630302663061701742879264489315932136518588280398800657947071724238922188767073048480704561002870219497552582565300616020898777787502492830601462608428262800455061513660676758886294501689943741974192932253822093332968123907321214288397180321273351336110207866260277070365413117805711530122613617098929479160044975967322377589280618418270268590692319777734471934873720201901491346161938665927107095569236589548157374984074984358399143177076661156800576762514895666742993070352825485472943204035716172340461709266319169921986276036517300397464191737624311570533441384188271041968614716694333667229777051319395384927872673848267711592114400341617577946259574958914951421925569100260612225059152463160864814485568049659021294505711974276562323593198159295945797812328327931790641586169586895119132023888595400418810008428159144490373414623043708953807933897775873242842808826317247585080085265334071027441347293542668909917828978384209257869134428822793085799909186359788328035961146160548282271502110139663594625289167062032420233333312778012445903056650037184194657875717420296314052365276312013590180781267275626565617257879217175819596906257984913714829547556853141422294175307990398887750031398963963183176331988783636004923155170247412510910274915152844399039201992463937490379357382601649274633023946439759235031128663679148267499873198259475895072023134022538791088554502608056110739684294277657905514387546940978968307812693420647936444241647896667441309121242194806672365640705767268467032458326116564030679859379453927786184736585290392149270140437776141670964967969375379971787496189586017224929471795449314133103490159556512588293019263070695314099888319207832500074335787531241749833280928683042531503281802069003997345833110550749566714629489353347499159800332800856753492445748336974950570045001151866355637375813135178981150059707175578686307450984031388140200242458555174169004755788924914359571042621635816743812883962306946945819353244285570313391061695228622948252360797861672990176902137164623735998848878567996247866071264764298273370383632463474313620913803731387200475176589860732738163975766865757819100018588172601607413632029025371133226844398049690488613334633200824623215135206883407389291129553108206416415301081756931196217070372540181762321290529114971460822658442420917737022374565859695643820840069811794461042033388980316289680370463376419826766776440784566639631676274149068660696245757374683380686792410088849016948738731605465393015228300882799461304139702072780357054624286840987551068549711219575110266411935811230191393059261198992579744215333341371162909928404224342000149782315992311210021532161032570093026669399569643550786439389067324869508950565634218357506555208576365165440876746902521738749732781428245112123014310989772092981846734111748441715120419659837258375581497617025001483052616969389134308541582755254224375839475775422499385001994138801073463802360622794564591428524081887452115330575236176052969093716048259303765965332660779906828461710358528784878231223177554461345310923862286777311177483445231291234043551040484155125732356123730489869815086297545300743721072528030473367297495214670658183775625533275253452115578034164504920702542842376372015198651165191242704446513016154207983268033312417857746323483802835538330383452870250492309067796923342653375907850212647910758659221818059886751960579134981131920817768940617418609498677869640290465041702857450573708928184886962888048339563600534502922376657707784489129094973097582400397039830687459531444129622353706971838386660889593615080768844947933908903451636765002823982294520301236076265790485348539690086934013157347936165798819362519051102658319831011757915927184129652041345986119297273293042760787231241105453961337122100168339083253101741931332613169936125974071823798518580167122286619736361566686777206937832718785353217101545867186543279734159281349857561964147450509470486334778913483801681749357457555928477409414033982475970420907239527673706312477428721107522426696989253201236002433571710403597618430423612261677016008229427133037810600944811129205980606227038484649491323609529131242966597641528234992852542362411026827463923430328033060237777009312613078360126852209837197590131615696196601732035871489354982989160062689788886117896348670977208873628935925168393959926071385764025755608527297563972504975055632805937968173750875626259237044167209390967387823414907013167591655967258071144101208208367098584346534204957514834948924778583046816726013250308237079282406330429903240961521803120739499936620974081234216037069276044900231673175636496587700608819627807037687660512469173918139684273831826176483932632309350967351808482546546353953202115941369289347354802158137728334330169491616368432318895076496157035733665626705873500377142630693776071958697468953535729820385221294341655628604086237789928681586584838193162080897691215553263525767917994933061921948377125333335904260131113021249570050672344489604692864563171481277410138503931209826015499074809186141473014118652507554180958104432845416338325115468929303896749189005748587592268876982125316061546995879386753763726769633724968285779736558964824975474894779707853354144281542868454240154354544749162969033103184494783769431470253975532907099597921064770853560320281677375410074110625165720942937152740788940172661128217047138280846021456647524405340989022671779537772915932655864900883264049246948348642001388041011851296754941270548298209551517055212652294714227272979824889410851350924362998591970485072680303206119047984844962049412402807633530588795392644188801068387823168827306227786942292248655016063098300523474741588650556423258466981661264725396994069228351411146619566664475041279090319241890983309926879296182632788792975065998413286619067370161779309917462474092853272767108131606771854480930301285310803034608407380227453737447969782961521923939774588711632140525265859800048779095038133597821033646177268753273707352020624064489759766449604248865717763278527248739661384780912012818192790645731871412870253785457047665075784101396526924460548398266459821078540888190851068092970049631792800298183052803967722102839229575166596185986347220408347272014267758680194369279566668821300284898781951761736674548458031015268173818549375233941249931876875557599638680539775130343460019114782463171582640467721184286231156282161044991931896387991628869132935755628630684871574269686580038696187658289011183710076427089071779687443275246786763336207174974299803982410984456146780725338322957132871490768907009783919010081644817978782480635190673523503514183398257623591678437848897513738967638976839610538693128622216156813414962868577697359653043731943039507139665801743027066143715949655727496406294431025573941680446873385748253291997102804819221167647426714957801437449817075052949971207890369200695851223800443794297570866814144146865937416735526316224157214515666815296874122381265390611428181896600004691324641396496842397094207636221368517855176499708137949261605484333153723243027542709727796548668131901877257042023269464339686430610443811136319956595458461415891050100400128889978249419651678606194287679430395188026018396580855391435881969943114820218610540176451484105347003067550818492897472829542351624608376445848315806810937187863652598273030140401621154802551290971445961561169598216154369738909624121684454588389100134038414914135556876299049778529376231754785839467396264296820164595061591999990729578452957673363286713009746384211341563607349887970001946715475733596677863091723378239576102533119547838389525747556333288375533802308625366961875726310127773943507147550682671586887256283121581751677798241964409719336997354765920439167816382451671410705696950393202569667291426647167641561412609235457208916637605220380276535236406059222320769204620653917619608322311877047848833996608932576113271157826808614962283308557743732752997401554323184077358550338830414876707838985549813617029959686125045864783881750646863930281606966449398926266391276693066181996208364691182803869189279562163405145066973797839288777850711327532304891148465223634360170804238093154348576969420056548374936961242050108063755017625933977010179687206944221033351085918691629590137281696152840907660335646828549840196449467515862186545775587148196221996032516694055660611095878244071226182445832611157089366330027136313522596117424156586463170386949732103685873264273859124407283724635721201728665186792126089902917483110185796045312309730284727658544815653175509129854321373551734417915251592789661673089900007843350682184773690529362311082807555730049309022030460973753890420848854441830487802451809098381293644697414579595745853219764949469019120941754109949334355658675738532826844020389737107074052498766645104493816993144813680494837071665961030015590732883346849563098903881388012257380539303985059389141476455124757845544377915492428024864680470048826302257196483830895138717564535856132986447170818093962828134378221621537863753805428946126991662993394627167888366582057948657712129736056262830703267967034244262591316089812835699488873611807014320918169705572272614725917449462272557888890407123534901578569801551569453622831341658725653600616453054230787471987657670221847207927058720633062303032533175243601761694586202968293965560603176401118749263997098048722470677950731064298932797406135667067511646309627318067263179175284269722476782626861917130895529923030712904319030241600151326988032404531060822237086271193863919362613623247913666372529394783246959259082785727609726896991574940981943641548692410326988192886751488247015931701726504969488488263344622010731185819870652077968900897796928282393726801611333476458908385794802624554411008126691201798701408144171611979281474884248933965511980572966708658456970389729726510037155111222371385973295767878204420366231685321609473885660325466176741595358715209333825633281201057352547166265829728301922005943397850404848082710373219467795379779087054954867219632644829978328700617762159722503925491501472292192712226858370127065617978200412696798458077397897973426215769348184495437958454387099044149457082952508492682962504943094237440743008774365966010512177268486742973090796121459292409323750410784357848163165455702441870991013262674656978591065953217463975060357405600269995859397487571904970834436796835122601788834748052252745392511683420016414174753235460432693625972213283221638027375007926690045188569040856999165545861963467835814099822332591621643542712754609841946956591559362228003233719020202689958604547422613078656947315808732238131984786292093402067224337272781542769579733463217021812470989183298885812546451285702120453196145599126032886085590907591432938120176883571966856117835358325520755328440612119117357238119220932930975058158756961730575829244298890757974627720497505337787007217076598800568835352292331735620745766731110900973021414475073555308749368468644453177887579427457900759844964288175579853026654977898034568385945902635750280045855903601743776296519090369083743456707468202701858124524752926465941857332769101986699105543123843856546487559954955880297366958087061244751181561499731292716222895869696830851968859773223181028204630416679895950757433439716018561596485010200540540174511986208295502356673520568150868010781404845343680909427770219073591809170683111319027553637797732592697136708142463126560872964144611144937418443491277595624432966204396374341729756146224253831237935953309135066466669036460504646852383381676916151315217905282730723100047285625806547152556975977826847698238983472592962626240971731992927231197091868392317303758291545536406122658775390878551187498838734293475488468718520331470208307817024563343372743535006213951221852308361586193332469646284289891075904193643865078705519730575397669835577656605096066313511985622265736391418374983450973112483414405401141553733252031093874355950467584009905898806532079076946820786352617098983491282349650457091906605981598935992334039890929088670835953215705764474557189780417823255558271206956607182738128005276876308622553622800671771090267165652821584312145623602084474508570939483132166818578210420024342944424476388598415354611191026088240743243684403170252585626431866986221588974916314682973785167423280503498709991536410280585122792615267425162590070791337947091360806325169142321867052538936157372632652590658459101128557494812608297974399112235745267547563856750999022839023225742954236471240754372587852188743486152944621135122564354225570297385980892575154668282144582217604693242396366880494009110750730671546514286346286203884168138276892106150944666879856583043677695929774584391584991575893328905130060893582401956233744165850576663241640888477585929968087977181376437610726872612983257534726265908841346674250761511165648635291077249180979706904431536340113878920812541026268338971386100474307831872492080533747010216070370339847282340939261139319104039509923353283062307257317875044374911773714625533356427851775527146936052151659581063163953596064796709808000683736919630942371925125926962496366185357118358827034120222580645770591439050072666803599519191715427821298415012539742480621172797891500380765116987139472055083288586859123126389953275067265769459772264474915150764017650694183693625808487162007076293392900864486346137472972391379670454432383858947498016660255625674672773134153105867993929063567841973468580884392909442724602793369631677685882505189691396235239132613230451190433224876239865868881997451724272494428025472560048128268768566246141953386735740098622222630242694971036972023046085921055335188969683498043056842432993201882970930146283260749525634128314971605342796489955035088610557603602399220805737222708719455765977397746796003402124080912488066528655385025490462722925704857857834026565681559259065766557297432510370235584259045753441326578415039982081284918691517066525241018648233272383575845082273650887083092959100219278389910489456845567960656535992623373587313568191889775067108054912860781837657330467504733228515590419294592515128890768256812299913717870589459731457574357452258339329963440612632258225080329333178383425567884112413158644344001568038498021419994588968286351494890882715226058780013977354061865838722648094484036204640715860503442014435035093524568115644340529294432640652851419766999778720174073995587169027038042842428051999602294073237739300361373916907327524215748049568328006167953079414500883196359283618596903572447736933923279591429350038658998669181427307901690728986902881589000329384987852597286277249329462187571568968068133773012846771067072559446400791499474012320470013093513082941279033919193725354081597395755087343083922716543471661779021711664640393950704335589561960478642320878744216317775381144254881342770648429441248841432228636091969350891350453756212083443129999133179208144401725746751055398626131995144668361986332543330987862481655284244048418979626690182872345207103282871700226344431981998783609150556571989127325755237586187319045467778515244250209191733693692805276833706192917144458903760760401983857600099117828340349020724720729598404168941840459385793975166699214143610635861776383816703099448944538206828949942093228283108512042693058718736408040318102506833897791684856859307719264720008630855158820577017887935589684940494801178498008477376189644322731864076004557679646795205673698966304481275612677133490202996874479718338751287846375385132910433286974417532221625554022085510696950090532577595758662072199799729244672644340352257170280264912270947469334953791482779993751012955936149819562712700899211772547599337006009828741802036356539227878880559058048212600767605882979154845889174176102477170016335658397641038862542506419139205383694273681926401503616491367354657966187666264968106993136661887228665952515596145776655308383688678798023795271710607517968662921732816635952955896907318115157020221785441631993793235993051347518508105234867698861804273174001651110505809996092345563096835780616270583114707919737784622634699828423969349425387767412241402851690036033860724224167681247429821763321141334898857347148204185042248476530315652729971809808416210763703983145902053077971553528077863039979916882197644280970606081270306758418627592044538136303109178476992558442570684704815269694525058376588595890077122041819554722595170076836290473860755445275072582853789013460081206560522874938795093600053055965577390745213232486061777691533157735921858630132929929710014812362516362656520069162872635235681548276008556650486941858507622773160314521210358494313790243997158021483941799058782899453782805507999747116471773892725691170312247375350466324553419339649221674408417066603794843059038206496937021431240024402403019473636238555326824171290723795059947954480328868167638587490252553093764189532589539662372746702780280020994024766992966214680274222565430487382601471387729136359582955503283667045715533369452932981615172958816612580817333012794626437238235098977760245945432406824105670994357818230902836420113526433432518071496859863781889802585939127924826064092859723839254655336797631759713304462934186582804835707282414951425440886555028525374603905417253086791045060030621406170170532781558114898042023806193464915983813169211949698250225531692802618640003683803378446502526395889066104279666930943283485091873477861236393776310473314761401859310737083758463688483877321350655489786577260530576393277990078487841874101837206392121045178338959477978648909812608946580531927136827441811151036019481878000775683705358807542994686977061446632033943932283577470578480608873239148175909644011034465819461506988143409362724043131794575759496935866198760997948189183737626931879639134418865040717137133961675860073356935111044884595484595616834779357340768752284544580136096612138964681927017578680814558038356685165897317441628952104548477638849155262467957441467714966191308399149885448413776832644905409642428570809282768050027763446479671920252651303430789709690665180627981521753723287071935036555666787457037007525305792905349358692898742291383460185561599825111966059768495046723384038469135591088632564383110817584758896627391710404909428357039803388102171060436286778389723622970655157790989235650194783149003031899973412057013580100193089013557000153961798304351673963881362986968847543456291768488671446681713307558378118148218266433184500322923897870425499569275798402228855122784662964508876483434227586103555032722641472657961447358624292842502138541963998936321760657798236222325478756838389577692812922529210988542683078196948005183517585010287543483216093830083235022479804616818579973927792359329859506727844779873735733564195891055632074796149261859866690003834308505357635213809196835071320284116297742693334961894520848027550409275037465904380836082829801790978302219671849022497498422274924957069458950974716494109645914543505610484639870183090397428486544658461599697502720117541863013657766431222097694889938926255956856523723703626906625227169283828993574030625750881764015312448819156112633345217032074873105964567269221265627085170033772446907706912969523588093249257526859647975323810696150959246769412247414463692128900333747373099997743300842130865888507036041363002654374090862121209490719228875285837485263118025312157973623189579587379323633948503335864062938948836018864597740680238350504284697443139865677065852610392058119706792983936748213145924075951239136419518879850085829911281585866206773252103684978213606050038251992393343606815866870429484327838741302549342965319980556752701412284724158171854287380180427066459624604027981946359952346508499305177440451744435896583423872913986003245776707165364656685131252011409243515885100508390536652291606302153461252073696956520683682783596132557829689100967611436147794476688797268844303447894314124771267054573812355045182618122279202384051381828450197304508085801842820967861422264437185858267438573314853043087268221631689095284781332301342485732953104622079056436357493077919413874344176477028266399176172020007752136819593234488543232528624938115120383225732053911653079734656945212619591518822596683371851070159719929350268157024786864619165224470770535466122673536780713182166110230532801787339753247441725681982406017878055062009765839146372746753839348182375549590736274885555041468559035459149483695120790074640839548928961042809190927725864671451425808137854909802626810044146143309967421280327275340823989828302981509643268461127592497568736643619323685022689120098147512871070193815509734823661686527200929802022293120915430486428731896545246775482910483494480156343489268923127080351132853820827428463866655910898893297932421303924851349759355441646604115255214344514063367103013054911975312030082759582568855598944125008654336950501800211156285858547056853167181401524541821125165403310588901720714504330766933765792043438790322832459711949322451403233493766139715060670272938093127405792354026296360694858743005184871835707576928559424229930650608991968533221581965099235153138640446878144418922906715705080878482543815680144711785807148658375934465035167547017447983995722647325470914211515150727374934892188405984458668695674054837508837564021288981056027349113627767718614265768908290377841503389840811332608961566600457876890361451812559968912111233221236216862633613841458627246737691441610951994079032587598438435643424337836254448833011400711650221544865016582350536026881227037103361236695554773522797666517612500950004530069838959736501153204131933547051516455900438695932338808597697257688476934219120547565334702403633660537943918229019054265665476751632801820866196415628265422281349300248934973324950012348113350667838486235459855333258021286096419803567433131436845977368066280556621461253525900588152808768026706591984452380436812240109143513531656521180660440362070506852477497221611768578093707153705632614097210784084993561638412295689872364092963891998655414513913288208269320979552475913142534845061127020369409089573039896771714050443595995136772142621932501410932499506480430954005978296657572132073335824917927364424736860360316353418379353215830853512698475320793915084363800685108327139343023327699258361410630177308100171793600833244365106068797305182633909969510832614464715884887188674956838969152655560620199395348056213674834673244546099617346864000779643370006658802609677145350761602269076036514845603299942907619950725408649715388445364637463262860087254542068276461658521972165502038316245201378096374219959973567457214422087273123557869974394593566065185261942583629726481221047984777158331061279310118356482359026798366981332573962683381203541944164183813184133757494454564836174275066625116386865855196011961280431540306765315773779988541638895369263408754731967455657729785093193695610627088275920608699226589625252715574546253933118099172905381077605981387959430761996299938950742060396605838547751344548508022090067727290816310143736340597050199714402285241590172078211761839960549833823979737851995928273794793752825189090216822609752620136339379167217151823790104178840134730624365550119771093744276236726298967427395943000524939227082976760832898902384860917027164044380611454242377793607223363838254520609465476667923457568334845491396071664639940346256341786954306769232321044707836060776837609935075301112757443702383095335568769524343986194062661378718394318803849377791966242690617809680152484195666424260624776473089120353603205006309767718292643685614352935742128328281411736968767123938519110886405499501753354659504457169714243481880411297614206204393248481819665411891869441938123256048594793961267079303489784789875814466666652587252356724885796693230349939591444365522546262346215149221156600878945465347772052544897822005614133118147257935260824110227358009861722457761613498332597439614075199921420854925369526032537592738017045052214288727294224417864123740703842891033540562707083164895458816865187624904003519198001435138910684008616110600537955842628063155800303901871108173070662028342022226677127853636168670585810171373684290717619712125232495069545306171406757434327315250628221548628652547676426837132559160693185809763473350235461158388985537289942288181695437849093531174035354274870296081395278376864034852115410961758551471044096481930988919882930282080278363059132987411419900471136785258237234227441133910453527124396321958925287121298818786582070358189360423171873922131669640023686723195671329464296283740317404358084165902305213991258357889117590777133288367374735634064335068880665121678153800947475027308338688250067038419162050059199660801477435402186929701990625218434210212282943375801493354838152048641409291842536623856753511439660604924776676692511063341120473253369677734223165912738775929380530201905218633346853779444628144348193511559813422493311241900233212341444113740047008269360528887608131838224510366972896846743145328825130026169625149727700062365654815812983216464130856837825380232593586551700280080644432958807079656104425459266001124434779147030087235638010851490357900800627549584334379481947415141740406344916855551852987533726681972953654850041305198899881983480764203116340072271075530277712123916869509332719525131009217789721245903608436334712316982049297682918217234740046956359347975876756357472786331584630219298613061502074814104004555421594045968743147088506996887576164070249087861051450453182384715549941497638206630518213068951714176061071239035624931669424427223865805032539425330867060778203532944317781684023564300576214409247893408004848620780451580891893953069472475753709167919260882532515502271104357131002954418813651450297447011600533695475952440686328418406988712111546336779729130825514037512126042310097128445144640415435549568937167769918259982177207351808572793418206819404716422164314009272173388920479819248591122703486567690441544419467708123231831205310857531368144386600913965346054436599777540688489509451194606423851764276848652091203180514216786956798817857433568666754447575780595214951007973633932147054589321380429266915255151062219393178311521568739933878104878724020384037915832957003222149366260423575140746092690466928161465551936700243370324417481370006769062171819502598797408725088367747106592536855503978107547321360613122134098794501071655799303451027080115816445915380024858734653226394590152071301530021078342708657671274929886532615692417324445939370565820555638412624427025757224569193217704816923106664656218176741873535941786704940421074127012899620604513627724072305331363035879263298210208004265511245245918130294841292922739858773553418729150610263405439688570487363314204022376568505900211780352045215376598235464086046515566923231749385240766501504605217953610011227225769104060997924194806076779896899918156656508855539929926782004614479666623284748418213350957335036111641496991412425034346036457383482963463284171022700128745024765538621286700085049263928888346625910059858783722465233702116858012228150825100199760952410672692290777689800681843669471332487891189754062898067063961053383724583919186412479979310582504487631707223604366691620803629314401701356743451013619044030862792701820388637957584767803783152929246142103089891808886079024636102895621088434878139271252780168926683861812232581287085982960721205406775018444647823498694190618485862202581519364799685042925721397355360420524967398139973384195768340506827216492648937549456446495176004691707726338739908974788504824261783872537769809636031246721358551539833563670024770711775712826308727242569757181558098854925343168827044726156890079361622407845524453113289351325244835955589744228326312595305851228117747390194971572596428767697462389182102248689238233741843488280604367285198642973533079497473195661595112896529920054898775595307425767606842754474466896735985281579175009299024267013653166177230899061501031781899396999815058365697056173254007649660759171898010144439524675266913059470133576224493197798024793879478382719693560252512698566911935618527897035419491702106446968693072859289671745675744990864989500997826904076676436901387750904383203547777536753878298075896961658918791213702263398042191502226777576972178238898760969331594603667455967808753550821500638756706365007336656838741705465135548157162035612353594337168183644405154051595512522575408549865275641924332509502070824318093363961933818716850932481670283990381924076238518652187748217075092062539683328603230429329498824193779979289409149892462047744000901215259569315586382546235796885980308187635928715903435230219608829517400214795169100732557048274559390300902759098791397190971642813962678592381595560558109752131098077747064448554075186619531077562139618613176989012760205658606012119500979780407622798793567662014564247550474208220145514942961513867587965084120104783966557856731409794816967329647046146034851163161734288695530153151369006631116019611118845808537792599206522899618057614841771327171634989212314662546909356486687804097061516888992132498443356589413417475832273536261718072714452405922667964025925957977865699056286511101157509928496049608796633939429554177971121723050210084366059850089435181236762648529293166113048108252420252249073063311981845297145084453114340219918924564882512017339825195331050139586294255844773117732240423513538542385891987522647308970071706342588267821686239612882063712732425480773109886091760297796133151912995965568599679828372734556516147768524333705094926934642422345654312864586870010411147530920894981498543378445268408572209397764384820710123015835978028121915043740228886039544314050761517730374330522383680190476451589693465349704581731242966668390604886162774511244617619341397447805169269220727757039430033831095720432405492657088723941930837418323728351277932456752480515561927156061988411219001324714126778651875092665005893281276658771241479634625726513031353979906577968369750696286518519586305814690077470884336807691587529860776384176757650530938779099493622888763914698476445847477108106614181811884278846263383395378512941695280389686124088775789946821523946245983915484506859595674043501356545347870271205267375260701032825735930851460396053103209290009452820878437793336963065426758584798715203316621413476886032178710700708013278892362452353401911141439296448040960259449884316310566188373113367544490531726590947243669533652508183937116813813634215729752173236390603426735014639749029766241096821852591657177773332461986714573625231620735793214245475325716618835549008638769818131484327892930684743481976967048644737033741331649408175153939852055280818266849444069292484036570383907531556035958712446575702481542921025891112984529457353674929732808781007549056328556548620064018761690281607320704785357111283160675464794357803584219160405538729532897635634193825106130121940129314781266365370848088559946758587148771449404598445905745320873921362835629230978619843791840346927387315886737650559477293751521567110853611328529445281969456348389732664139439027203896334860222031265268473607226567546121023310426192379595280700282293754730494182275559011093872269175256397980447706174876510717574360652967267588874020086333771558000352447247055943687516258732501978564794680790605166510766782674897257920798865646907496224584229608565474497756355072067437007740275150229401731630014483246900483166303665727340148628279224284638298608000646207024272073881246227563832082049764520035155456427772598155870787871684452108150627875849962611540406617417881388204405926651162661928759842037946709460452215820798456203097579959843689493385180609193696247166324173440122892506982527000658928876238901067588355407192754394823675249814058232488023561774838298371079120970183330010496562038667557899984513440116133293613585020641012097699517460276854048710618532241623672066565106559615457528262513694148217404792999347654112100167193656266456537462966314466537596956970900465305202417334543556997254579864386832446895959971483568658633988641315196642817215183756623662540569982733526727361254120727324373504227765532862361626719007499256843178383219620165351243333691516152336750410234383806998339720614397544125765067187696943423958150244810062794167084361149121080269768667226712385436739262667468843085826482361859663086003472613409216388150195308952180447302380534647926362614493885058587815530663256165423397969952416481360819234189700742477034236535908757449827401942176282881126860482608967848839362223979479817253900548386581770901347382232669107864066173804494499765407134080664162373523535782036067270328207630895775056090170352697573013271103295296969921715498437769964019436764077977731732019879962617809388506478888437068956685947249727230382109134807884480269972729127061392450762298410849496157669630099612134412677842615773745134603330485108456937074702407098973802743958457968555207295596044334001972486580402039904486424586371352848249401686875996574996684714189674846790935972343185699272598568283686669313918110801156081486408968095112397619426738354799639501277879716761841919848456993676949675791351930147235484537601212040001053231678840017470151233540486033016018113469783563035911044640710948060731395254902562374923880219044656988263327585610671320188086887538383067227191472014037292544389662937985408749707389005116359593862988963800555458420582463220781730956908736025602216937988389370960704134524938792438356811808710396825125541860319413123340139433968255091835167095670817437394111217971675110717087284052785548229902884995295334848793817147589078747661690693700740661869816646878490223867784634412065563314974479948409399978750880774853900646153374822216541479757967283031159555618194746792992637725052760596540722739295367365642743265270830500101663134846462562718302557853384981890090734651002139883016425154417563283526953724862958542932026195352019982402476019783344792228409660871558852829953167228973044189954092724468201034883624663270914785601309961658529814455253375953814483143560442552222515233328161355840428574239098926901333392654714081539605431278483864040854757907910315007136109375213145085469429647106375489003347539332033528095494958677191859864384813685753483156408688145478521417172961522972652872056300988439608054258032504624518350382894512429497157150614618527090777126206454083292789824314735849860919807889422112241419279866204926511620545281561171335536811545770577337475283589780726548269917291915167871312748413382530746355637669424232143711381705786484189022163785944276331160714394863128842134852957238949090053973443471153559099269126039988502319677637012930841867537203360194823829499316841484018634028375671470767003738491613750922664494808701547603787114790724033534695275601374863339371152430406894045694540860729938268591350348031052067718218669331982760063705761003618470467152912814848432326168970806548930379137202329728459344494624246808579304762397333246022943307972754964203027195241087562555197914377877517591380186940002816709593867220721313487820185583164700634979276334111864482659787002716379388070140360308429250952574779578503520787115229743501561688355522832083289886375796755929726901382644184206392094955403548225202155294552989353266070662765775381056330857709314415094173546720464005020286618064717255036514764528291231645451107494252374056986988344758669534179709278285321972817748582963666989768423478303098712555818226378126068340360677121172744644187142811804747754652287797923864814760756423735340013515851508601653197539961568916456980570220972077386008082302064177777093709910587661915579477505509526877630605139024346663841022198737212033476382907326429495640651298479285591336205669336953644169275832992952574584753260537428960951508631305753286729447341043374840278463638939040234227762149217334847824974279312081527324776806327801454455197931759851974735920577844335559672634223125687049956205101183543186086969835678669826765977868718227766516876792014891391441123935977829149112644493231391350625302029420196181980640376698107449818676635504459673894952446124326212505514021883000040710705478958422134335609483772466923120044975977697456861973498721961912609184483617669767058907999634533754059777016885965027198353792619151440329931656379737233275316500338174907696021303011397477489772985466901086924486472871749598773032885644374080491448319564512122120638448943658308559788787713421795425004437614659728759111618033068936319990244263136909697514985972062779903760891842030447747961954473446350698639162559723474589651088440011894224410935366023219403988742264505707648186899821399367968059946373548667310975251250773275843425768364978132570321099031092532231911003141265843821097518178914329580487878302538148313755104816790771177732469442525862184428891070976204443078723711685410471718572659285396774295897543286653828636539853658058576238487143780061575685125184540385848057362925377467392653199397827075890345418201566280845912575501973201819039530005771330536349579195188484589869023280204893852900933776810431448110920677191959146245917216083461170460034205739688833110566324021575330312062797114514726838782326470448276410495447166439288647255266230675105761073704678442268264953185835153136255759886759822247010969427848312465091877367205154695731802550849994212114139923050243355843769268036838291698219056973846652911282755436034988461828414639114739498527029147873065847973568858125778189803251537178542063501789291552047996813596372854033303836989274386104433345976047231322520026818499878037353816370340665883990089324287808296261752292589683733505095917963265439612672382897809279403570149202016690490173327116421347569537567144120896850114296592433072723854112403324518366317173882853709594025158516361953036083789265020693156874218103287104018461870301969429598428936280954357714151058052877108896601075077410569437925459619889179595956187380324924168125765088247215322456153235093224830231129648792967632781838636127586716712433266889812871411646454342706455923896189957604183565019480904877859631710616232414488883391491021969700278167223440266625325464874935185717296286935591776874982715225594541123506027604637927723711601229028268465691053176708879633677107855678746682664098357362043225017890109640293552129424215291851450745605232313577415443630974638217163275471378147573978455753235732593605243360049454195969151602703215626037079261539523723733994055938875354612605760082897470023880280690118137854062419127584522036703880776046065463748753390916034880784235648942108838188139026385304486399445005498041600801313842265712724919508481356702669037586945016323359179996280657057878691337518714131195844537528794825104718602478392166974386093257876146482266558919434541993581671073460375549003971183771429134179704060635312625574357650358433792867114086425602595552682201821419938189902329637087098398850876127872957637441826114140139219242943047015348159741341833909269637276213397490179239800578921652692277159553019440089220482822935634103074760361132947677292040685412634513461185511788318411457728726797365492637160932127898914147763572649250057312582581975089033253506789109989606200675582171741015983210968207509058082631525316468267279274128426104985176240974415061362818706931907163896735797528242147528715488461029396605332697284113971845579989412969120137090480985184942622462056209108192524502868603349385716415167642623981775983651369065930566595046398098215014755131942629682306786531259742162245105558440279669135800306578979942384206338278812895080130776724064845484785706112956064693099812580068380033068954528031499153546938921440624657676973937068868062393311403107515762139392399858078018264078935329560259718522643984309929960310617305941060031756587867865283518955698137172312352236298453900630338505858265895223492432987878410453196189590373784072252963442393312599130495531862716412267464589980811654205287533953665441442606197886840113242262848322763668779828853687438887733337398596296413358326215838611622858238261327365435084006352682246456187459764418312942263506357424827346585044796832172063413343535432627880025754354146630704564063123136363669230996924022835955988480298621917389030782424843306908681777842734206581557241325339968575167912613235061370147547610093590860989608287884995137714484929101422291269897858564690287034228614552683200547786696371095327044285635950877557344977955727598129963924638654239701823704809126682585651808374667881154983132579382215208834596193154095625412702292592557085290775758278232904518880296300611693376510647409102908076458842850381395552953854386209806981232944689822260602398854366385085939156765671544821035956319690843304358830949917143523815103231195778095555441441155499255219535156225567313721480025050487369156790355679225176601273980567410388277710755902211930311618310872935832951203249505931097794514192118201301809103694835333526580457080956455335134755507400465554252629555928917170225287233161651391693819043750870483462459738327832982698768020441312678028322148845745933217797225649299481312775636232463796440534749320716087079167915133585927990417110530111228490719600148645117180254561560828687089938796159859302757349222604273635145995870928445880458986200132835472907810027648325271325251721726133443815721830034327948948301994592013625718310090208828383091047701654133258183299986023211622680644760345082059718338534081809328075626865157980921559789685897226382584969126689751798508097920153000688950963467308446298664995581937357546397726991031507210618769318021904660516258270821819073372916021450010801211524197095766294905328738612413142209674294515495391454472347699955716698705078781505664072310098377593688945868877550468005545852070838982472653480523740481094654914135104094235771928327289629160531168019014843588790182356969409593025991992374422784713414801825638170723988516849720522953586780227428711425295662341118385978627279750057104285063283201138305576711479740584729590146984371496613979888972816369438371378502934092435125227443098490040438264579278728354122857364968767229785013282941621704138946999023554624609962374851376194214391379883099056347289540467443041851199223158324876221078186712624236467859098035400818957463029148983378025211300731310992391338117305025960567045348481300550581661430732966231243318033768128747533498077013831768739920932408495059079475567803621994664235886969625651582212321841319200385143940372208070403993356248988160148089461130964901038362998246588220113393264493811857132122375424389368207304160187828469977339398901925932146776719489637906207434098908164745515773455775830396916850785022061777521894057960962675439444349660294688034519984491083359294685417956877552581282228893565817998631748521866774186575727147439023859695674875530973008846335784715742607703034801091142389527981093988413987591582143168235734947447878050304091622310626869176388749066665154392640230592232194589874369643759593486711987935066917731778644542007776368799973533755472995073038988728970534541054732628573028106538134300362417143712457354211951187780163033820555121087636024297724001571009352695250532824600987549570034155123738340090195282170001679761005041977262962455939600113852124208721683834785892610520490862055558057225507984306396921196962773733075641143934704807558525467645090637144490223954649087674818367673857600767919208966642660501226715078737143906865064196972517512495574023446821483698221161092418601166811288064458121397926342449020287471164614562568867101151545848133305849153008036896112660767673191206202686761801918422150801344279522196424577544745250722638978109194067663162372199785690097588720176244728409649483148925786267547998156136531309357666617166950427779848330861679758974091332955178301600912535249461828439450213294063764648008120499496808803120775430343106395203494428633476744235734833136356909392007126053840703664211386740601484508532602413825488019631436824850775787152548424945697052965978925249623735672797751592462232517240428568720084648157227675017060361232756232590862828170498147494671954984730477038727992596835426051268141497692912840777766148322060877486849440705871639951108444764482747536785022467560912525475501066526175475591072298924253605764094520299312825555287912885893582361585367729827877098054017518819785410367502383789302070934513478283394222445528151707436767017137318584482070345551593480427074309706441806809543214598807637355340783796245850732431527375382475873151775308243135827463553027196942789012874750095110348808494013674719738756092445859204395320456144060290808196889032563539452545775534350518808270823200682057041147517087598219254713713305054344624027360700216646908352462442540436888702703145341370423575670901819909562034959953650623765839648902532037501518973518501046475910944319596289103254820334835723501682030512239556519590823837527566568873858111447586853972562952933777540446382742372405124357905131852259086948107926178007096773390680326301395913245325686437436885481250736332648116292521272443261869205150276794452233876277254874171040665678462480276903339671292673328458932913054455264080422460944997773953206761360339664677309820320546723811588316341861248405651878257256180645980153475657686280314675782987175005544054603086468265478601781826585336728403859710128328307841922316537896758785044430450817667569606274498469202092895159917539943163040836944977595603549534449783109150769063369844558913022535431040928974213609132456570382054265624710603239847780776770880237330852926153403168625010441803362818215521999215594384979890811714035304202866065772807054518565229447316050555016706166021772167129629931082014707935991203954089365062498444322786681479587563757386821889343429464494858108819057594492348227306945944571474310905287429506229315967443245425669919582326680504646822549949918370587504309477025220275694509316287787633871208112228669879690613887849742144092927304682574397645981651447737609749551103143920638486990231766662146068980260889048436478207164181422498069242789501806913083718436572095541424642014577756149296743583748964626219944240948809908083709891562841338187144016227016793685273564989047236802573018533973093871232278190322962597353709043513632054854381146294284595674037283392411096489742478189581187563084825614171431274734808142446488583001412915583061959849023891730682718544829049664813445316354841700194711984087905354616071255743995223544755149925368119502834093026572793721576528515641440617333359234984712370423016933259253988063591289612857841282449409549924409977862540139919034149273446372966211467374220062302944461284578655189330008652267505918743723814286388895797122653089582610062808706126664594694917575368060363377403117027671981167480216732582358131157828659494574387059448518227503920042282902235796879227597131002631826282952445822598384372590568966470752898537080865887335851021488795992408865985645470366816232620596677547992540143062805201764770164801465425150519706740304717897484171268053511647930712696738023655721053402427983082407477411539857245174328895025879465920136943205736124117787386782242539940695862790355899167257685880570084828700728475314029139989967022986993161829933342305481503376956606362236415943629643388740304794012275363107771406024164531823967069986511818322797940346280237471935361864853770889549207273731298635320356362785893679105962666142293571080385197629820760397531285847077807290991276621274482817796493112791065429923623699588842575365797870215081515939392408828431763677468913784982502786467749257693741469417658800537012938308242759558575410614859973651954557373805775061776606300009889458374163865463526688464544321398786109830682524486154587956358071806833570317414729962356836702373489789655332672818940819671136910433687405789523358720203212844108176207366429462474854328996998467902601071068897359920321847993675507888936103086468000779794001882319586379247156667456295274166865277275788435695468331385193864341315687482119459457790183974671241164549819619355387595711133378912829594165460367647682962408376909077056142888561413475502532942032629624073792841699971369427139033086729831839149592710558523773303794338145800040342509605234004165162592174538113676369850249154282270486212281322403712840383550721145721288750378968876633219796952935652911598404515085991202559188100174565882409449932042037511281923775813086508728798889042097893486440696279583135099975322108379891752795156646315312940165421845497569073577296368365406596332851574046580623177608010966666380462284625162243540040288346970126088572007831130048604511519719846893982747225995065847579786053115964053587214603753252295094890312559632351944676216776951236556998889917552238992321157803650223671966556995059142146732672191740070182948167205971510903828802035938034157200930531545428724733960951315218432676662034878191569478528501739975662748399053086762986723980755757323823911941796523072173397568322374194089505285834368136311542464921657409413049528435323406936071352876392762839807435634239796976047887007337604047318047096699356753398562451434590026389967711279871518508687274806188041421340134076641525563514198674815658070804239455328247087484285726377511513518876084334429307344943028006735679535494961908632661023833710618322129738153397322410078394033036034455555261096853775885308778026199329678411654866866810150547970649692557534156170215703010104694231142721604025972721945107377115317862534019425762722683605513496646005428010535287600375873188679546713798727279411088935350590733216107143978637145220404542288264580128934950848891240320211101310802272213778702230226549928150283417435017155176763167235851785815789656976694450193618279394631339842375302246153783658439184396717504993418692650484803113811351272633768744482187767867163547375489256458999184713342054548857583883054056334435411034720224095815442925617000503120217585972894021009500912530744599081563156363256945216831497392649118887621076377816578625410521707805995850843343113803466374550861070754804348610770637610411134594371907179884509009795457267652854988452234055565488972625275550410824408994200008219308253916435053075718682121575343652879400043576746569945505200985106198420930841802891279634787090378428652524924062532291436518722745682216635026945346723198982628262396323385552474460765056413268548601343089278592140413085884302592501778142567510032972961759954504267502888665811524515654603039356198159406550759119334412632857621048857693134769788337716615931974550428666925627369007097087051051536267248625249612356267820204184300663238361969607130567784276122432032752558915293254834707793348300900463739331335509452497752282863644091135559548770003160305682896221165644921795561334819429492972200294990918994218290001587579654388897759027787503981455607049702991887915330303479831878942386655964664752049081251710725349791455787755906614701693687542083787098590027810368745500956792361510587489673780356286939197198560734013176665568382782692085972589470219231532464078593192271913112787447187949381286393607562311056847904616902938026290685948001731527993640836259013241738924147417823212924357269301244575132811846329056981315819053587888536060136788550079275907136242009955925137847812127500053190302178434812367108328971073114957843908781431436117657824883352767872089067486537511771964044611725492569615012196176022968770172805508199825478007377872117693885374481196020333521866468362765498962249592617666293224328319186585726925772214529514162564326317056181110423699418029716738773022865606776785687260601845863547739090250671404026778967398090980640104370006299155037039752490435376608814216815218327200966002630463980065728325782275133977388081658365168958137199260169496981183844899599639863868483953661845315580647182082730797899340069610246860301679780376276471393460107327549946269884747156092164916639983983025814826537550019571083481357912853007102431437315808753059686801752631060304280728233544270177727624676142438650830435004753297550236155245816146834936519086949499938343848946793324829617671848658600252546062403592959943185790407847489637369536957296246746589627186642247266402832128137786350760911962858025500964618612178510166680181392567205360856554773687952000266448777356059544951971213771697254231172338815899382559343779619000141432253854227079524489959963825383928613132290754313936489311410856336438993281213564318525727971992558808756134142391817080111872435870802670632557358735757867399591619608849514271544937371255922600961131447336532339804708001230529196359301322047019706871953029544694376349645628264801091560836003885622667422423230731607839303419980678393923456169786246770557625739079199545324205108833403401276954553622845290697058239246594877120276740219966196823343441633850268773160296843648120189682822681997055521811897922492760158029514310330090127906015297989126679088167578036535013338207114097962199372069871301343687209613769985699216207414883769066594934508314558874036704211161474578015695148593860440946237377529920647767579013106221555029550717042814486875095562488888286511363528941364603639344586279543291953862511154306758901065361149277590650969513124429334795437959112317839116182679385638020082170670371608970680816933547670289214707108872152415299312700582137339527999053947142040627123472877809760258888634365897796156112865084095070688699220716726450966771155415643439068476710558426784518745868344619970732674004065682591314351711974440921264834984420210138824763755209017000153746178086270434591007308215282842930633693361401769867983720431503601864914251842165136760854307350890996175024545499325062963881192189256264421400296639264797896434963752979821645250052213920034620085539526937452680000575959951303983092047592294517080075256478322524564346659342310167950014937164917071268311345457483611324907456923707532629831960574305675177833039772513502621602235595170726471162728614818857678482178117236870341924303818476616714020542226198456504947622684912781472535824189766164594321797384701491510883510898505981381610402673928992376529549477376933784968033202428615194321109472727584613888145660155610776229462426527081812549940782150442265007907432565361941829497614720479657670187737837224255182845292924916601580690616051401389624318743452261028433507412854707331323983176421328170381829779265221188375972570994580680724591357635428474753063744016659258713454590599414883901821966010735533867426218834502060355132463037173554628239710018090537923990046153381822568747069185254118190661537097562048238564128540141847815710854981874212456268936912774087362884695014669784638730098811598586340106048245252795912004089572975247379856855514855254830997009831062442975004991693504464721247893116601003979816195864782362764319412035641783704805031321393164184559056344009894096169762064487254315425661071663916515249356914071664470624963420576822828225511192485178730710968120395490579463592563105449217559952426320599452680644416941316857595378869878441928693599382498544685344586547515354249513272893940887952511160728840750863999602953192822589369587654818626541280471439154297119346577435269627136094144170665437576758850145298510686503025662104949881708384554687246210338815383590074937846242087747203319446256483479192394567154455075260040369190697793823240422052447037055309260981679629280619073502521038606403469924527843827366920801998074257260206830309362152279537103272131340233322402519522671373850028858598200244638460520373236053727004053962437540590113909751754116418677607972919494390707319762402943853422086322430444478807779369127655817696367244348998926090141824649094337973897946874850713551357915238946692817548402867924324032673174405682696663375916533700384711802230926656290596781684133192488421217359404161046479794232321958375639163420977645140302946618383117608753436194936889772595554789210119552754680216283679499533189001258358689492178486589533488696182892287052623528049732681099482441939524714841545829877877497830105933969556712635960332284668868723770128862823623455083227282639518502495966156059843069638253484915523989666811749194088612512139964277451656518065250744311974167221386972622928669275123393724449798091654212899753829425316070734730182062795409771227244702668725048285786904326536365890070807391410151411986625422298337543076206925593363251046530374114652121901668809164741871846259530015405581908319457919135050322677019019423025682060714561988228043288169541288839831177330418947689964665710391516015192550573588742626588448031031263281710465928386130499489577432716759256581188052770730049241900631436477327498649732883855734344776878100114905067242722980277851440249656782816654043017759755915890057072443649795742677511437389581061086473514593139382771813455963919291563255375655467732880701400902924283721051289257147275001999537882498633662091965906290593361430256112562986497804762287677074883764092812039458982552603106532558358627120129442510870866857973791331702474280408807346814821662563613339786873052463582153422035990134182561786934959367106061500473997171191168240776959462607279141401895122349277697527873048441339499001343781161150328688886072285958867700068950979263163482216178301497825122673743731073186894840207234928702936555271764032496798010259845270910289574666645787986279954509083216020566870065293329698074146230306201048331158306905129764276764466772893222108941413467027731360010171674350024560982506275167496496411989010338267742678989288202278640683821554420706646698185943237670006830329698521180901324448627167422203329222733620469930095865872895345559332775149489404020453512635300607849231844513716638823910040308356532610046199701898738659353063929116389709368715447604507813572961984669940793660720379313792345970771263104800729737709223760225920464850402193766874120649120871743331314139395142700465913020435066167960283967116390232870550708726903871987582060022018182672319571149178990291273173363414242717720166523086211689433626368630688227203729908602403895017498207727048246182215862469165016933179416268533708663555745104617478407965488806724374995998555410119247460306963717826856000380579860672188735454820480751497994265458074284759975379800777225052892785129272226150726014659327055564674705608830764039352380694617912620710990463778506738081310619852015149138528080246058516905958326952446953710108525341962843954020707844849447302552710445050645255678929946800162981678919319940417658952810874313713943915181338918008886437814412250159287592707430060613348929581448935427434427820850610030467971206656601616589771335308137585535199933124382777734840081895010780910867362371093216788127998171653772798621071625803796407492852726265287537321076965672891150029700717775588456970563084004128756357218561036776228090334840552933327899091065394393675686534377709874844170698550989828321420934536698500743919446717656528471535885564126874687996786952863405452305194106542188153107203200367893835741711808107114161065822444815740226483390710043785067199829705246161985767660270370414160997493026361692326289541318084464078403514039575526750698094236449341653595549168162615111040516564274379639105750370884015251644068174042475133552802865301264085031744947768532787974106412117144541671058919802875271424862613455460370911500783806735537412911783453370523157227918578122634425624169666087397671904667913890230406787849997138467089747868029848083350799482822474793647997738591633993605418074201938204939822461605910613132176221813017042822698580294029429619218873838315938128563148388508881130437785120953278681210403393181698835908761330774121947890581964643103780626269220486192262957228426856377953052170129234643752887175999166801370313977058248131385056839300441621083209222456059765193979117588574273409634397281823873859091473335169075920596213398988237364748320965872858376435130555320604388221385870061597622835013018912692670232028598252852035726257851632183279361987492276908423738707375177511766796283183920928939598976699226372419615725021226941646550342025581682926834946374634265358632243557690680437367239871163853994344971022505422419812932673536787181047422412440514006038059226378681920774550381698669914764251555421347609866616983866224654011309032393239669870620515145764970893607392301469981997094774136117735607368028501584674945973564680421227756595136946920168727815598137686307231043541093351398307816613256065500227332272587449921579239675057530876470488658105263484457419575769253615873427517047823102456017140087739775282478889559115224197409341839274369368595564123210434725420002684559650981327844353544196478160776271964982569455811536564229026704334000157888499542878789217456504049933358491602119991200404319270032832235786994342801916839254118696307632337812943713289405886482523025046140890517249902917411973564022929166478177621848740259351502878229992303268757764146436268465057753550753401843887956128282000443778031898696126623390708013961415326803466282239529310881226693053355959849144240380284994364543942697538368866677347171213507365377825496457137279734587999827170816513979133918965027393647216663578106114441367993785822304293952187250879121236630172165844291743464850539605055691361132595207028060876916072384821628511361218511808089915362963035994463311100117420066189979093405199547535312807030299922751162596592177766527934387311278513087383948767711862917379575701646191937977703715340306003731117706108986186663984882135848693120141353858473927784202153195196748276639130817209038755876563833989552183791371441397512741077741174918288648309330727339316161428224654055294944476517470319401107555787599499488680691333218601194810529895694490965372894531647625533993579963647710096105707548087512119182378183893432699404290961095986335833016713961231581210699594761619275466871547500516838105333093814651937934864446806456676599690426415525068284533223474750425417113048388606555798001196298085767784771077038107106615363232961709733805236342442942657303515979122725307685398375867038265127008972284930665541872303226177995668187167976115570070212046205809515251923085566785200008013238515914611504995931636343089374328682342832727997692934115289762330592601599137548937057311671970162075101403719958141782366860761949744479354704927445290921342780355289390307858102012595499210936195569159535824331145015607419606331538043798975295833921256977092624989645619458981845210491130102479810235074073061461431395256103361566489251646124153158690580485969714517278309814921448009627916749631931977498367085916517501814131906978219676449944861809918252226136190567413704849782479150788740519721063486006363565385056151650246934217833027580284226405818453553580032502281570594558073270434127091399052130651949353135509766479077514049366668395443758880949617402464462722278518935913074336517750882429464266458444070405400389139282148916120266763612723256060804376033518721579935117059770802695743407575323769799997552606510653067763261244339945507392292930017722362716513782372346674973293222703605432464432602221809562007082883413773232295561703706086345573231604378783217317597471549127785335847376630031490752332346049818523806036180993079861921170400007352998496739459173869399701817744064601166343977043188019917693932514815814674194657248358538466836333558421299660600113929882076919383129617810673070479594715266553351625938775820414628620511141694544175528092363766255672224651140609313347237576622472389283861546484040680152256312877214203713283783677581566506730080349655092966136725107944832927496938519403453593050661418119223876773646835095362818595082248699081483287016329396926573779267844391968863265215716276265594656707125395771642664604888552452962695652065573747871487079152246263163397338091018208432655985744385374344230553532648851786757971234664234035031844286252611363495318874207541399058114016611542075072010959587243450646269784178310359964562330689128643397677374816250208149072097744577794344901113211348128456097237714910798927613462480984683186014588068595859871624669792392196536789992351025165469678093849152112209489339356269678940006494312713353786561705186628074472482319612611582088626510412386053286902308015519512618624521013263025578919765022425919262862867825847968452445859834582796844678038345982820101609713783354739545916388885808266437883052176004958961772486252970811853235522472273394121403794914904955189080656346417464256824209829547483590400119623714767366216202852754264785805505613004781545502892834602064011015366570057835603735510665497213405418704776599211185677349689123235095635610096621689120961331243078026460909207246360946032246638468023848779714051649934289983250853805113479112972695166103302696482078437850728642324708550249100221456971248541300492339894126350308096003458275717046095284590885056022228587042737823338036767860306055804668318996695190286704636518367476098778616322523477054024456742309095525136284089649921562592783342113542425136422022841174399498702608663088669206788140505670665464585114422957374633795699912184997236512585146329588740754000471836251410591687609640571501314793315604094172002491344879130686989791256621403519477059292635656452956552848108195416274954157525985711752352552541594213325100851510019592960302480653804431238084191923270613393248786753253800770096425782147643117363074161517191886940119486020662846763819532942932378075778267044193666657885489808602283333890636493048538120683243880023590542918167617686034721647641897083021549766145108164182357054106760477195134887061126972072608300061941570212368698772355905617299251756480718820777286275764546271339723259530362128636765246194563962631647786870484305298425334101493485309146232286349270781833491171655923724407014882497772336398462924751196603162076548041208837976633684011390508204804370626003239661205779624127173478739772134485605570379469685341721306165563499900528410898538369102406690674244707551878257886756553275528912074847058398812688431543961053959513214584230680340606982993132274052995861674605882347414344223370574728595390970526585329823236795160740114164982647667883651684345101068174437136104626773228531807295160789266012100351885812513396337707652535860476812158283619556098615294437148977153038337470437076759066407155636956340991073907781417462145286129066430710074880731058464031233844418429047163498767682029283437870354060601017422168166179960268426510199113093356463838629600281152119893630247381490569447267505844260755631980425492952987900692669375862564383616482952211173388175069514971864825120627710719690043657835409516087171274835278538790496199591009982317742772682936731951920478682067683466465682460509693375193645784201036761604696844707831254135591704801642681154842999069545076922460205890705583468978471608439748686255337839977419883165312732830062002678871427016703204619813260826338535740011554686405924662122124007253287770443671802876962416629440151623236740099175135078426280160007752772969370224103623798632101038929640513241136321182139325881882343548979096883264281921331666235491208480391879807246491639922241542648961649823914182188343973462420514711897794427254058045064751642209937891010753839980515719070941141193504534978862627996428661637809327035094811184887589486104349704949929370294883846423913519951585468725487215618643491741807434989342251502929414868461240618819055497285472513944467629585887418152284339623773624857721032113749283788408923177942615534294727788717765778855511690219711135194876330899520596990052316267161807089916284986103885327788923344496456223206121724498126874510181164801448852815855478557711704677576658136835667427565854625525894812550777987283640263719607560124249473973977335190526887020722419088438945291848867128318276258106249411265010664249412734143858016768041326197350875541078423627456532383381647538914242080987627861890268640084743768822608007708868621140950482313271036292316288444057975356547026952306489613567542897388625500093895928550435621712671439084793418998033139976475013125593061815734277769024742505085063029550520887207786952506897489438415720372264137440777048618679101773706511513043800233268707834403139357410820114449101444242015259476877525954649763020932751812520624350344759932096802929836848191929671204921365982331027519475445891083169757841351965369725925434438277189283611138174722795445715588528725303524196332445619021216796759691877325141932103781324580092814502605480967857200372285598785579978980083826163758907543494912943240760700936356734477320168138755182814675359521721889370967917904806278474985488915089004547911782915456901633331464111475844790766221557689476800170606747169677035377399865088377925443477534791257775388634617806647471265793577069221222774368478466502744830836790282663324982341058947319446086345708018682196820073854015897175034776214134871278484496024470568618128085297506499777153668883503478440566297366199083997453273287343323642499092135192387718913296629122042104404950152667516857152947602517856956319061727245678445427928185488947562970383223339651189771393196634481631281114594265161519204079916825759679634932952288514287512080366958002435949444552186522612700180444466440112668250982128773590387336995879616704287961010404039221512301274963268375755414738510538175812146844598705518868129675145670059104531514319254489742934257742376205994033521271284604997648609773101055629520650318166134636193504851060960034958751933002911054160503354829415491088860449526915428693181011428305565102164605805301421574238191602384966889334894195656132996837017249647218230210955397469512667085625468326687974059405282435079457508108364580428006742638453852921917851812665697199591921037681239164534583113941028475994763684547480812861127226252481520159687596399516193618484991238591077207123779600199050454035842003527451137921191392411949408558195349875539264332626309281779098401964457770148812580821559187209821382312716606232058970775618510630233675506650807745333845710806739688551064372206892926231159204587124575229081326269410896627243140427125392885250856086407708041545718476504832138763757172825666709156397256374267176731878320935927385477760472608207292788954433474848994768309547272748394440146672829216292627129663716857362719265187031713965282377590460730666706900273141797889745752807741029447820118143167409947385727366709081939218768089241711986375807211528731147216915384760396677464714670685447421602658735579032537180313597802605230034437347996559787526963724073008244744474845446459306437113258584851157359673937707210032440961474019988773504894464882289057617397607924540223660557401257965398607201989376522324964118051735317493813833287733201026051544636036213729291410010240806079300329503199748260951935953780996867932277363732522371306806072106740526752456135489732339026659556518697783218450686847224275640201566256964455798576366427762148487591595174556831739909357536843431584360304104073902013609830945658791749725490337638985711043389508566009766250935498250875775108154135435126328678658173311919636404370299278657849093711606017899993569093432088797965246731862548896550818002192371088810224502810530745270881619810517756772973457942401361820586122372858670659214894540361489944513151770714673493574886601322990422818294548670801517231141954148130459918845372025908646685388149398322154848931453892861361636768576537361240353195276469232728273752594542284827558701620862811527519652159735315652748129793588578331567473356602036550760532406590655817217043907579720468690467262120761145684330078575257216678869439607966491532777598626535381379885044611097225107843189949990428635282862338327461692203144813540942219417963521713909664738689960201701980082145984050489247523015816741332835215815106280171463055295112738688593504224348045194379950018733852011422141180544002195168140031328222990377596418333708945955278371964971500380939446231180663826184772762128772988066393800649458543470761246535730888587162220768371563299436120683976700314447292245896477915826013539662592927178893502960399140435596656769830612138947824960706292914674445715591305478279590381816844586614697224638607243306238570998227626604228847190875477209830441077473678921639301824519809443331026314658304114560843327086770990902202258710641931445847443389043108870487468745156424405389506185950114467375981602209421772352935716859714491199402693162819088724592789802270039761629820219363223366911417891186339436177205456242317841109847183217159631589507238476140267957631611601794732700799307251865182195156684186759579552651340193006115644071463375124214221998559761484515703940122995851239678605165831264905037153899949042875352984989221547778026617476127599803969448371860476038344462097248109910483819995551501100101104632111019606457670884950327675853957112189019063752200856976752655948675544698659124652272751488491200062792986116676825467687018875774028663757058545081939046018942302563714728038097583415617148793033109720603101847798663651173353894931043498688414535232390707990186003256710732511146083725185468431782976007187773358967120229425951304537048590328342228893795508287051476128476061005573512291055754089663410444571879386872489978178040716681557955521408221404379461754056052956326305358327332427328777741166784168576968246012764387952812327128073988959305892568367608578479892189221959497479892578075558657718983434192732956115560461655479560686411987236114605111997423101267272518316690821702558297748455742332898998015440682100803305718892917794972915364939576543560656815385665805186704329828748572121896882786268334024580442529873183000166971503685937232157826758578662909796641109371377554779049431393508285314787642896223997398732858379615286904583924770553578375632908578848453165616767769194795194380555948174146937622640768903467430211631762352865900236839303299819897820317151510694647786066868678187306259977466324624064225607699911926818137030950875819147596338446823552143306988555916972447290507213117904237131965878200413808983743021766950022598405687005703363949632514946484167622544261981584513487057078734318343449796905703029720671719483735973164098918481702769783290113334721734466188702731962804399883483729327013801404828915025292209448403740511928180088637904404640558973690922301122179194196737252509706858566737538045957126184673974613485950544559516069124439073522619354495811160932004222412969670809830380577288285685173850860536256191181736036962861627077940213600846653064544736404437739235048728460573802847922904869257305194540074512548212937410563748436190475809988218768112766931239803715706956940939401496139881896563395194311151332136005836878983564104742815370780020388358608047893516699179157819240882091621590108480442133121342575536143110850354186887022898218673547820505554055952029413134355199256100176064951864260278086555708376839927476112617020196125778230551543577541318510768871651806591752433748674530861180071097826335021731062524041629166762467762365497192293992748611613175492799008327986439091588477657515769382474311662204596690484659487395851671243103263769914070993597289382592098473307836025056998714043184230737837434336246366927378508125908136184783993532913323976691583512273050121742856496569068123404932701726307193972430449650728683971722925470569608804176321285348568327074504488845625092692334674218536176033873062290772553660978648460310049676745402623111272321105184080111080178296192811934262073526722519848928697051242723438877024499192240251037935823999656740821600519869442166874182199478813303976137386900389425921449883853297512019377401423896126143234220091238212522108919475665244925625347028514252245721209409075081590129619263598562210331446147191513153636537448739387216251039142562100711464287885117692958644349675684136214126868423475466007611115206627327974204014978657022107369395957585396367051875522074439732883796945639246228033773430674797838322449974581490460211311138900502464701396995158786953587902331892083966740117499575620858473633099756152201334431195873244554503163657371797457757705295926856733443744112154123113600336032498657320141466428803698822082137626871406084335836672284721935529059101576415738349257722457494548943039284849442432901582226956047171676492328443684769600149270911978897943966803488995931046551405464223351501160574378590890466535279425734238382127737421350479685336629063436188695393895906108884643267342262819809647912021505227198623047544724269569059217484247824316764330270451623369557842269632561578628118075468079255264511970756526036845716116234959389092682795255854053381122965347351768176892824997190732056576942210864881355242004387532801028107213116412142077314331938198484608107167640367232005376039778712764411728883235265785099578602654706231703349447913785849936607697875872999256662005022623038697470433989755631340929431441809807422104888078650019643099248608244181637609721136649587621448834708716503765823301049901143168339884025751881697321341346701212379826898155059510735998059841999921112577712597479284346448970983230074843032639015460243761512939860505879799720186689434126938923088962439092922897103819429860530694330816581539403912506780542320331151131605049031807826519710793184652228788781705578490928252640118990738234462868340802772395574811868096732920009335016996867813578701578162201346223407846788819398738869065774777922302824546927849076393168757938395947317921268103661889211722021463151621513032752580729462265042121600365952114494551495775770567646819896734904149989428529374254549535840132436308238550404053710701875510312570801347125911238138003976106073472259550351324963874251014843108657534147014995869825751885906470976137668154792523352817775347977133967419571160066702512150977979951426172259060788623953645987708120873545019411726523344989598409397494089868079382900442306648874279850608488249921626904571185007047764042262239328249389791013892721337493865279788966939953815146495259568599347808797116644098269321170485700930033448586024875884760331347350817266916667840651277983602139491157120440107459180155449472288349415499483728928481141872442731087080394640080082039167138537790886325494226831611015119854370557688280530157483051876275877476959051432112902197439737623585944721339734997204053138838612943726661347446528273503026896782871325405268196894911714302431925423021926468633574714285483205965337587501846992857280553683924833436115360405781806810946270329248890820502102532157687010040336662799504549336891341748141931046546231890779405753553796845220064083719402463363645760054648432190835368793288334166343833213046103241565714206726744132057367245956330872122465136516839239476487634119779072774066234359780295628831696417921110886120949850561782620451519207175376805481413331125419386900976544782547633386048338313359625310806545730892255912152765336402700004524983978044952440434064592583034755433642179976974246722175182042517753569750578697156435910996986525319247314578987587269732785994340748480008034004062863370680293923639858735420370683161867241850184692871835744173242661145670275616486131713230519480317872376333335356636307626399272129103569444081314445840739492020059859174800057831819092188932034911142364395489294947934379129498182106645594043821313133331523734678765637283716059645991415030886316887665971195945306349677122560060723248859550076399796658290191341234339694442235232995916216799106873397915570714460881833634368659181135054448626521096332887272085242315883598505523148964439581380082390564798112072981479512195451702028847041285720976017833615662394455542146779003893245932129941040374350888826273751621918086984725019687739010040800668498933258351380476076100017861033851983897544815263846062778991716963770354037261931820622458071436544162856936973348597967976383656251536395384461448213125398233336023893385431859769944440721929693642998169565258440610240115072468544472474669147199334735634623313295797799777158463947301796538258255512360115218524303993168070643590123860171583335955974331151745214480762457762478046395729443789878974476005836363193451590284405810322055089122513775951308914441377948105665561497183461628373080616326195070853547043687319282458171236142526195989937710586018478544387689355007349347759655945174600351023971264324703574206758106396664535519736327068727103768139578402315890334895425115959539916911167298333963680501183728271152660759162018895399887739381748495124057457121433095032871496872274012123491756156457635754434150778609291285836727352351400044982550384838928654545886201246573777865483456829220578923686312704820112411439530330010155623846371287901502078121082452470512572261152896213772475470649529671069671784710763710836695750053596479655131674954174575085114684098488416716914687360237341266960599053478620723027661235157681295901436361106982555750405570977050549500566905559076473400476939710897819490832615216004471896384841820083132852111515816136391437192045784367626674749968085412414415152448103131196378363437211752116910761208256019812880651550879928002861512794255946014849939543374645161785779015780598631298440979543986181325626548719616600640313195139470590941518520814611127053941243215262193003718892853386916127194129982837572061591397540218725168324096471788310865618757773405176317167671941195805577173031875174294943803489733351662487744581330934987174988020481834102176235044104196306749426723966068298997323522158658933035976146941213632842315309316362961057874734857651213159114445139695080197810224553181071607374615781283487881193614290697617780580409033097621742696171211287115595239015876841899506468217518049431285205548175172745538495423954614198005761426208988170850388591465385074924729527594122028906325989289449487335365026041738743895322810282204661959765909110037098559247694509519236907847621038863616761125552832971836124044544588910693871330849846918955159711406694075399561496627811024467365023519970032190972418510199639311846243297971713661360931574331099860056398173728031283264136860984739070680412726446697430583386569699620565325324627706042681706692056926739280903657101063490398130865704944379412624823916648286086475917983812436681833393603450409374901946122814106544390754817982627422169879540841085854794942259672562825186028527831602174207219978887995192628163631791024791799547634333613748732377325708200902601145067707507950140055646244431751082910743133248029963247031073619253181029349047884760878929716337387907597280660147144946372422887029226591045758188543426599229542595715899725708402039896022998224192637060174723990438120747006836026063295423578576736029048643999751209691219620504087297368581790023265342107143248498964574299190339025823120931261844204435401675283035214206490930317373284076175419425895621605094907440472560735826174279708853770101680394732846224008459711965451016468236732797090421730611166273256594767358124602261625606797752803017893137677179784526751772729799351204824569337842702361571955286923602011333713092695450141135730175634109531500362473371763880123362054942177235925289222963653048629998221183719294533902384909795582095045188992099014816391402085876007429273748749784653041579297756618537189552646455790787602529697232552543789964793077171739286780361714024274407230319102430822437791910437585663620535673181736669409388220436713264325563547424440170068995926195591060864062879649463418756467209947797257122774958919510679705655272455303789963827015489044208828859316205070971259272784136707673377813366097281604023355588551101364854551249987054086264665333377258051710517104750731701926903959085726947085227640029425445821961077945717056988022348894060101773569958462455764324861792358046737213300145311865309417764714590438036626359838899783864163115656834966995860648337151221521804793267503961880302146380424037579121754511238377912406464783287362660489422571670284373099347388373569787508114933660586944145092511729829040944626540953453228316602225238642942776946477110207014970184597392109767137976691109384322810250943679297507859607167972156003542289543855645072248392332809142749726153204102528175134825653615105562779096009764027123360858888034168296768293582115257144760571806559825320459571632284155029617137858686873293308840578517384643290180038587175671753770110847796101649203365593551854699133145953458836401716386905677702893129671576836571749802110743582599589213343498314061646393189718015193040320829784605497356858116460632949747037976840281777389956663074372670327484098870598828351014377890118896450141968411753120464891050682657400125927286284553323635512473254534911694159980055867737585662386539365046769402141474508776009917137932752792948644332391331395175983475558443296069573969428525396225072884253629399893533315098174002271946642806396907562212837214173674777343800136240366431943054636249878001415936763825604562231340100645724893170147722465715406229123775558701766206779647275657724899841411047049540882949914641608001919236752924767958532187287645445510019568285019298868863430499334911451403248378159966464971362936527650059070936653850208560142192213573727375692172745129036374509075625660738882347017204669512078427125930920627186188826106275032752839593968374210613896967975153487802839983013290489992277112095760322847404565218994061450279951540240329099058088275651202599417396144835676085482489942952822766287065605917021655900670570052279537925826406781836451298992239381243695784958030202949458978178826832707765892334127483539256619007478258353853270836345535330851485751444494924399199777563214913695176133136484878576481810752159782586487470787237162646650194284139852201816475533250932105945921649424883214743417441043262619370349103629617976106264369963308596929355163700852319764970346204681279813794992568804145778837880860173324135434575480031724830186584456895249649948319075877504147293774100432036411011585334232239385811660793072400973168364941925778710835448669231312535528698015697788630536965953318148056647395816279273950478742580067544631907772581653800875546166537718524015660758127416481640638658679451137422320923759665804966285811313975478203672216389681211461142141532864939080914500670920775474167429704706018934833963992725129226222180609823962421050325630535420894465704888001580684450236320713052986204287328750985440778662418818373186169183706595014804788801675189833984536920852480707905085164253147213569461071233535599920899332152563830254112477860612467309875793687607183464051530667015571459946623911312698132892222532024938289401325433712757151147274227336435745194218657212465237251767384971984667626407901464723498918095600247563556620085582495798790579709256446062822847710604339008851652342505032232153692874466708783873284298492225397403201205692939267136554538846008643457842711275177883198471949447464548509925401584913949353088298542123273842332244983183532878705967124095135722854841010238038424099107411330491208074134855222155243624241899541442503358830616043547630942813216019522982047208123718715779918578357130475387096877536798518750270725671869998586484160342916241996592913518915238997891927510005214538689363174007895796300024808228059386273182097825733424121986726841241637821772995082175084453903867198103998059621423855311315584396639255783431771889368963610198176382182562116553381443989767044855394673955280682916506692257501596241433514744173574150305234694427402597153825627710000779816791463425478743867412336585611299260784166143971202167560456587372141787364819127005775790150539024474786345021238569815804346545352426440942857158183449413667440905880609184387362152984784324999910998450953249532773706659995962363984853697472312439399838306451164697623686669282120495389967638917474754140288694746097221183610101652555272906554105506337297493509090591727735627916098195618687089016479874246920835058698290705675202586832562012588750143593853812273587982287259954227853218728511361515251181454353626110878273581903471082443459063802256822546784306441046453638764794192197855432865452564726246134235332475428449451781196458457846967681486905306793818370311924857766259607858660365998566659945433731966398624343326091707046329120058310443208428226570288237308830727736021590098129093251620959729684051484814889283836243253206439754676537394763286847013714375060833676772768589869580697116143139634770431097273912360940434198255709584065952973939942420705284189924799175600236918503780372668231757966936414908851725727145011807606706262148319240495630117787053644236091192421783120466382274038689346309014142679695294624761142463215183000237354890053113878781778557821787251011156251334270881797717658914694473845273808064767090120351683069255903910769495146703907165173529926538515671562564220927492056763601343132416331795828765685076890580142539256914426805225813924354421123677861411256421538072756708253249607342325595217910056552437845885665370763484565281492126955840506029491303476245207704340695967813080549518012800160160657131982308659805170765994769940083540486837441916833458277209870238412249397536910064770808938838382968493633750151024782339985699891387425344320600098233307165600438035881379322537558091930713057893950175114697790703351323902486044024392448095864808153705842295809009951566826361028231632134897856737679644627094454096892400498563808382024179585935245527083286420263159302087588698132911053306969674016473485653872059010261496380494026153993013286672735061309910437106637084051782967470703580605724811261092064739332994135822795893988345271546353441891648191095568669979630284264537735730955091118042871752198629187437968032761352120797626842061296020543897879412415858602744742747581677932288942539043981201915778724726407538063792969313804745152709114614734620775143211676728161830413110868968728793255196739521305591630337065973962451129311374365451229144585411087413350910653789156994679960338900234082607952469039943836260863614928009775440277148165931136609398575570194664694067095160735052033572623962812000885018311826564906834361856652469552350584189956897825390483335424894119653226882731310528767307099629993705687888176020190172885968018287084999240679163347313499812503577711918715186622511509586414852386548043240007105423842279261839739663238451291544882664690497189175264132136789367010430389896306947336901961619101752750547127300208378702710091228162220202778066744425912998375974743862459103287067127719985089180511638463573867511940285435012499389131788192615518680580468097333005770426631174949702299328763926558001454109473747925697828892869469050403110888709795918198052859412523266612147519051555083141620651034389151993232085239683246004032296105483066624215219919784668843656240085035065862843808609478604052013463659741772817796915588527843256678414827226647232701077357968532345266514967570515116358866237770334252763715150458147463242662531044663210536432342657619989300967885446074659145342913043977808435450330157236802874508154717420642328657161153235050990832500540972535453603971895905646353088539367401653195036744133247700228566844289279523937545480506060035303911543600939811538291832425242609745397739590770764511749338767698041780930300119250511892180860150418253282520889349936925692606436977754559913144421009582500022001362795034962862763354959323898595728669713825296448716796133077032164742626184006134665407724528892540989326154882608734354250853631088838889599884388948010302514747869423873171015760167262492110176396740342161134032591952562330785862411937892595045368329284811917385273251894013343125583983659150826797177786737771517865073062667710405895212630577344876437699313167829594693705803864800282555191305011281557395606360639678089821357806232499134928813531029907174017290943522734401369991116838249400692911440569736159570598110008737500439793373345181898088776661045833506795347544647737158920340501860323601476937220946450464689221159097451124235927460218565395661130397913987780825174120933135982238304612292841684012389596006644946619402490416572686926854891469303224708872923602512364557445704356610561343288088760111618228002064314122254146546300753916481387263378162829079336799955147688444564171197160798652699209858143083488216046484451520693843313181085474659156992059067486744167889436420983261794760455200693014195112767319397198066814715911453947933260599409242942958345422030939938332247400749842078597888239122300562642593477387809640198089250430234909389135975030482365720332509672326623706644602324928971746988858467652386830173452066796627505799297811964884795706410380865288724480119428007849680855728280620000354896158128979088062600323863517366754208254211356833579093755518555350817431227637999856000002013455995586591192448716287560017692901307432365254794699805005978231792240182976538502683653735784900726411986695581525825919100536830604327448052355827065885021383054142949971493593426848897360432212973797229352481620340729097434847231599152121661600997749427347495191336423279787965353386431849066682129361313608279867524621114400986625086105208536085657091539899110332462652155365767442935433353808414978616084427176817056593353226932210944206753782202163980725364313602301053850679625981154728263226637455276959815369853400340029096331800038923437939216914027499833799709008729288458332141611618647829600509498596403542393502722848728828226610021164298027726925398212897874034428333080351437622968354949123794437505403392134739691495255313032410860344600628361979838331569986387911634103909560583449104690534064230525793965329925682081455087522696092948854992547155964411612059837001994661489893743022539694022899416496708243635544089041942895794542571182771741724677012047643860650163186257464872184828720287672340080448662445863632014847413661021484996675282017453271923469008397485982170671688015050584530740218826166855265667098266756488873669805190598785396500789618856690054173916297230101307589952285475864546359461031904548329557436394939472451511418710860872809362231566001730104796481977618006429471281571955398087302547211612934054259491555406710038178592845081732160829358587251241352241649931955101460276660376121174860481666019759495635437147217970403723449923819040943063232671385209655318705269910211019982384071852426136578560026928588552172997810375529646400269199825185390024586863799518518188900561890957708029008849452932834101906869645717961980293361433873050061390482340192117589650688051158724521501500905165615089668136064668407114840863501102011401308015300287114761280831028825205003767829644439158582023529840388791226596684979878017799930915398573897644049579647509936184338298919431923072740741477042513013812708312116716098174820969369682145157397624200704478484241058248123279797230857590565903491609557604033145552954850135591651028400528710835789105119225267100699016700680189834075209392136694065817374470327462463465464465301060902469070689103539134608427598909316311216339762601367721933914842478680627704954644493775416333637477462645416869767593597828848932955377361139395014439339375143233323313476244363939460067402441946719434960285949453741101678579550818158499869975560769351965095073655995876475630634150665126177204541508574985121290712355727797234574859793415860953806056549556146392608525744137419562719708116962622587371313855504637056475987489927127981489280746667794450921022626814621065932474200516748324105554271750212099493988333600122730117902584801112197393088844714796783457508891379273613030851385264160413912137212380342535522883252519827401237832435514076154421494085299463660065206375610202778481344711282126719783396180870400482053246914502334886320804468132981151290917506693746598657169935291940418801293014799598467841812287874587588196465008797831930385149153637160834340131604163804837530289993091861349999492109590382288021739954637205348372833288737017318015929201050309511595827019322021809812190352319360956695026967805655239801203383721996667854981018779421554359676756895171139317105746105503914283117203791191085461413453406507405005693675325464232326490556306580864574239544718050799964590697926490822654032268232321741695417994333534905129853297970285861914218394214251396341213476981117117834774014224317226226251315491567306339601112737570544604068213165944150106726588039351508932573398989644888671178321247890314236128417875780686212196517042131380591017614440373931028444849495509848708454821390064356114317835057297293926269789309840158823463488639326788764987333319774988371826331634101397399805918374086297239285131479272607591404571942647369473133868625528535308744616522707265724530452357476216726289193079267363778888669898653552622339510572356012733817669519012317504284188364969627769435444493764284059948630168090446708812418760516514358433415846878260291330032392990313003159821130743467891815060080813087414436994053027717535684043926585888412170925599581878656215418910234752210986643869732297156662075022364713404402666544685365379247256094319137625666979861961311356578664462588923812199595353677963938127422406973944688705198262298934710961267629082104693991026643253550201739834923171346391406840024988159275596130571195811848440990093425395224860162889732153086255999781647638259723633814609090127838430029924483425627920620824757763484812209515268896501990477536400746280526901670390631042216549986003339356949496193652777819488872941075135910841454123431504645106212170632013473150519031550086897627527112330974918119466827883741313369838820386357387669003917307420865206478378827205135387873499516800663600918141630730456251741681783923671342987258339335799181396242493766940988310567231996362482652880069756220695214443152753360463160034935233322080384683599281151903508626869958974240627827453092977628988331366456932134769281559804541395440290679640843221946091126584103945104933130561614753408470701516586092001478158117033205987409830443319028363246348743194012869644544534707040219866913561575400639322565665597967165581166946532865181000327986741242671086732727881284600619156405009918506096829819636330195973596167293923541768406766387448729582465257752597951765326213604414787276439340489898803050987545680690948205844317146289399804015139412315007268589887026758768322095509188889128826019987147629356583406356531228521112233919354929490837022527205031653563185208763173284405785305675772603624028793946266655466094846472409018687878630524321415258966557970717261394282726952914792217814823009142739240056699535770598251522883988623717132319042423281784775128584244305406473145871501212737978017121460445728372691164912184933976720077337593098354454526580871272931863922725343678712659301075817974001629276571061092834692538628984943397178082697945443379318318589493933181271720958638180273619628853819028319258242910938809613250497963964453873795883633631494007723026028345040305915085796965305546676061259039900321483640731397381211656043919122313549305579094454243441606559775423133516512442973042933133251980707996593599551529911893109396391073039889014198971399377222223139000784370616277352051051495670234684386585710855156474554737400122371739203229713803346229884368890975272941974626109518001189448441784150243030780473704425321124387968871036013899155048184654166816479812386153675451213952639707845521525775165042295141130726997662536762844599343620723876712485733950565557455248975803232233237916499349555993202222375942297099915707826270350184394555691587590228185618776890660055523018443509276733143282308678869296951982583736677386531679794087193118733846858261360546239062994450858972411088674509340179114483789898668963924366535452796984064349937579025114365610702886498031796521419485517508595716469431768739559501376746908940600400213038139847418322172631645905780534359190933595284243918733837961056874867900617289141946887401816111433347192527946262663129964878627012048058525108136266094873371565575998752785033590002549196631881601113039210430753447492183031261655829307762140511624859121295654157027492132091641633445412135892552887345772472985847651654957563361280637855696397489465744211961613259567441539958311761152978562108193594571493859413896649563006532044356717591448029517743424612660516076642254062779837811345040065447738298835254032395231328966519711492796731155995667866331905950934387699581070264187374520499967870710429687509103659863654642336086674026254264547138187168149380058350487588357098593332144285293070349501132121138525996060510148246692317885889218866094495330799454175752801420108658376873157255032952320589189341567870468004932843044628215892229215075119566451513313372585037047948836843983955696059260561078635519906811650632392003563865991781080233521823732110493644937419380932160661813552547093632768877115480206878191919386969332988212451541857838967373737453034473790857838846770042275659843716081023695432570831224199712766949516137167537456916549249687694967560517688570848877268856110451804046763007187141508927102866644386853221364465196297349534035381852275142351336594771241898978794639542771910345435250759822666053677137016401716770279041343585970305061834698218423380630750703072229883980447175138630526616702015923685194915785772485031550908717708251551278993166986372937347571142481279386267151939108261031256893882966799327391431440423346367171724656435659918612026527292464102146903210946104795129431183423502449773075264597497982987582890514340704593636077326914715907779973404763006036874506196979016514380572402063032744264430430791191216687367641718212582874700857933420097766666892325357394352519461819565021682619842002912280772541431091506273263637295745813873864744175847013738749351023211088587345433417612475174940167103743178729799004435933824613384862888929309987645606785802307928264607841809436072101128693878326950088020090613399317709905483644997455646205342754950000246866243220854269272658606971976739896156650468012423947237784174430987661112768195941745510736428774012963034180940364037039206031194072068717976149330840823273171619000651076788093389028820153262887941060319059188209139345356025472386790514331256632296070896501079850569793228999631303590359978560194957813840023753770257441859245450433647374740740382434770112134941407806851487866783608842535532101600236398778050881967206473855865732016185390487939073036039358720998441755069132715270025614994346113798246888521097047550440390876848364112880980839109120590672153656808535055911659886701987988977810319646815944679739921919530688854335428107217333857927004636583734254976223582513800904393985176059212176537402092120675712184317479320963843688628331040383769633177732506497920715210226287487206821745600439013601614542504501685671995194093914657899352893548714409903684481320814163826172246247933862982715013349285711477238274676501625069799068200725896222632766149471639595929657756366754014962245180620015768150490693091062256737742882137425310448439454403509089329748245654445252476936206562080639130304810410440941777173461045847157099669921563561248164826194375818765924811166846104291221375566130678196534929194499583923412561084554614938862821789086194979552404154077038037567207630775816195959747683176152878518034311565504868692594800750389355028001845420011328405988013875579252832864707503898790108385604099795441789566669749065605098129978481620057001017541210549270057219828844471357747561391170848320214075538565245816558532777546846481420696961711003302344878362082943275200778394387878218766391922703426376977050973449020688782276977158279681117324323914056603074690569686362102097913355316116905172888254052408444041290912563365687116704522380624099840120099541311880656896323281347443831709987153093727362136621210988673957977140653181491539333825168419393719436694695372372437524779904811254487988800381264059363363975703364526280186083134899256885618048795372032451419438876687354572763003131138154673192061880072078281959386715359451286431305776871226301568488172146497477202621992247579413118335867551112069261836892861093106627728815055544671978989211961393975047153799448508025124321265054988196405807169918537393000521817522419482742813319039748350873763445400042635955580850944092456307641051930976998010092127749406629669942617097211435756899594902267359512864821560237894666151627362571548635553596292201935650527151453923082570791950813033297937063145771902970454010585518198573803694888053610541637157422863239860254092792448858163406690346952558112261899152586058273793702813497822982196959849616651609898450412914031879178564432123468082977978902963759505653544153614366656817495550615256193081237904843948069873078469086907380503582070073263932155244722344703409898314915765676381220908767946209348709820386134103247569656339871360512417675392135920089380462617460589216458045595412407716056306416243666892291809813331692716511366823819385311180415915644425051305652462750660291616757131436350454941748824292235164824627985479832375924573596374003632877039045695865452002406383360991930354108718767673045655181188663511216351670666139591079748067650417215253043432757852343200792616876177492476182872438019103508960995611915105952427728181966440095652947522081560334754514358172391372014432267970688833842703246684843298309459364693609391722852741895758612693902557648412396552266632529286833233007427992400266943309252332393613535138863986889801549012440707633886107358777586349344203946911111096008307779020192754194567715510892515917960745048582380383892379614028392771691961261117663180868720829312717684672161919164272890253626602805676398057071755694815860469834302355252184311281858075649227974488599047514128864666253152571213575303353842844495024829695047589239358786927572709184991597117262047034958323240708367777437950533567253442290747901271849208804152071456530132938538168535025828379623368434999250815566104692624592907875451882674442822586154430846289287999023585542652029486656317242042082370130694430934810735090319280849823929282904056617717717701857981771143948869579521769870286676619890036756673886347489829361404026740508074167339021675169841905773902480759876617269592083505357919829402655403848437316625960091836831234299544569302660620900365869384607543687747966763064112706549139223708680793739421588269350794672216765368308123361088936851223159545690120356848880164820968679319910056323748335359269865829542937492876711197570554490242803903629152179680445602273568359239708848053077386177690966662591104245204008190516076406321168213300299199231890435860285166193818387553132979472646057297192017428536021932001630136153818344448961940146849899220708152852323747366866087753217540526288148014091071328662154267586629251031611608569966719921839568299643259063952886702787562181133184216203628112412907510710181676963019293170327345414128352363394910967748066063977272948655854723966779077335962311208576778546456544188496385071309031901622917516336453704125720687716534257906890378562878421927554641259056346928558914331543163067111719937380765723479708078674466307026074104979971586199294503282295525670699642673281048218018490339285264204724717842740143940092379360700456776664550363120193148524193972370872047861513081074516619948641152931909773225545215619376488673402460650027000555548180876172901222529102373633081019877262342588916738592266012615087272595020674379192270441905424862067716066892770810967558788524148301085978664784986045722581055532322797456518213962426926239584671918983489999146853553362194277355196650889500501756876547973377370393411924226478929460181785382300963090582395062545402516093328693128686529528954626446013294108436285430619816067112001090762399167244285231082927765259477395362852157955035726543480980552978195548705150500193215389087681806939838827419707081235886503471793129013691452539687335375572312798486359461353965314906238517766030137159891493525038613729790583198257698285163517539081086417106289922027697469903424241241266249897065595743718902926793841181538512743719215926515509779171874095464384047562697886559162699807841422408479623307032508798223151621932156572108612264418539037666257794287074459773862401587774205497891320267775434272632391871424423039194471055310310068190968578959891459232004414776075314570954701224310842562919854616288974990351560394328123717355105623416210800020431117814090231897642432679050294335493383814772563538718514294211000948256687002127611140514312031167940473077452831036998075907570253828821574988075593529768150248388023350555059980277783310298518155219158562663862146678915523535223858496474933874656711737936320916502950679264684838545581175410908816713305651666488610544517416185467929305230300455127580380872587167985384527241112054184784806274818256361176053625211807503507935097784912738974640558374088210562627009139610449805878238285838952808495304593130083307435301059948034242610176268153147683451506089193292820758344562946585922370651502756543926540342731768123622989434469045659793416487096835358532609854465557402325505590321200528746231218200919228980980048493956457251452773744537534098516032713403488056911212176522254651338862544585931833440441661069083612967697890308505206556631686221146080249093067512772635843495712282108741752324147268929434925159322149569574125161129750633519671294753295477561902123912506060383173054778369972403402982470409171844731506156072342595885599025476189991986806797217964884166764248874941099490582821898087463959659855704178103113287747278648228294482383754999173912205902790314524607195213027264668605146587300331165570758847374471964883773170654340845648632178760833494540582084844073374811420127781057232143522252437202703573776054608756818984164855285844611200934263394884699920253452744322703304393263114786894321610219041471323293952248936229368619052276187436590061159340354339908490844661305845358716612714080870243588131152084880839199021893302845215782647495115055390140856574135424609979528796405998523692617159824444732379214456849571153501698787960572980279462945601314504826284707036024017577402000134259037756271328381327913718417877072517213211415633070954428604832926034760141734661439495187960562233684720660482223548628384871778490569920797646008069232806323482451556063239949819408979152180969767400554466761665948700441558303116207423279482110454658766763171975226232228365105867361246023063323666073406464270461606136154673394397617526815618487869124411604763167381587265277629245957829760814763531175467137133832867476135297964890394394630809991836060063361710021219026184182807461815601381029404329477203666191047352517787913973779511157175204534556712418144514118541113252607673682399531618837961765947819661748516467494078632199528414792324600067272534006019642314718796081531813318050126730224676517667819230808438600415951978748154385301802050802351509282490359700912448156798211963580184629772545134645169728983275926754809592820989028038138535716986943529351239237464122320307308369195359701211275808953478522417431387622381002131916092128328014156874976712056082698482324998978131205297029718532060136103986950677448546490500315863551730376748072040360069524676959593054634847100280304368027362362014561142642344171406779193367479898949552843682057175557398131114873456519071458656089230969540401096422409164680933989608265117284778425926951262746999137726913742062933868459930862140952365783564742691110238830932415783123448786914702276226743408772388098473718423731551428825032810610916296211825314393062695730385179067454313448463560076869121141761547023643143661185781426968664402384248657143082364705261405701615507824409670417939293306208787812607273780018355619785659742615441411960568635368630365403496331638975916504577451407326844619758043456826337980633080169944565517579750819835208380229977640644192948193649591970254721439431168835750739060256357489217663810504183466419285757807254574160768938566869182386293083009407989511015360042153906171495720066355722078275619230427648717321261391582499639171732966939313004628707188279913732389817530295001987335604870104175954073709287853926794309413598534316883969581146779854221876363094296311195617247848518496355791854522731814191426718756191836125831766492629055491651066703483663347611888297534847869761037470250937410850494771625212577665622860026548002194795963622987134119859319371823103930585935734333074763975259399830182565977124810503851755615011485197093299626162675260565227037709282468105804080758670712544305158673983000986880572452111578709060254501058786482497019999691312358415368980587361306856169922778996103718433168731689969583021247020270600143607968085563097206593706240210355556729041287139216586777357055170167444092187219879825279619873960220547041221940246381104853482262592750024028610552704926276303233001488679659502886473878087178955555278130658907923629300703697970560110647304629103567974500404994446080661371800558326614782705995459527200908211422705458438769357916170425102440256906795992034655536425661734919535335772487976565143259148515419612859685610251987250502024135376614092572237002151405862995721630349913357339213577917914028500261867444517443264196657050228459730451464446611826094128760566454529175194960462732548591116361182211247813174923959397828120359545007334501627837874162772394842506770644228668392616883519254332511168611372380754451506473022956390192399898534924410947468494247563703558696470772736553106275304176356797766645666902372878776177692830396439447850852516125023102850106962487921341594127025506317336014658382613992529433844960696221859176149497367785686398020755787064586833928498822732902708319480217817818068345016839779913735515764846007831955376990226545328164811088738467470384004301731781838071616154200831659170800391234594730802737820379022571607340336911769818737840428831951179296435350038136493735889103742161910581373752850239475425737102595986708943124405177834706368218625886321132338388549087306005121064514919541277233024731711540682438669718576833604212126396450145896030888922151468469697478431130191008356861773073848182086075735257129397319400939971250673211955773228804161196936216445686126434117834617830314001008887808130112968412132178180737428255773865773988997726911241528148912832092479353941339383364510384324108749131176982420474529618886784758226316679434945953839237205297313808063629209663230220983182015369425450623921417072372827834713327441966027397091506455280067137665553026370559036669637670566019990159925988254490315833390198832308248480573294891508729307114730916781707469358640697977792165691182442343353938570072305526139792040340218912503873219272639308359522727112368496157834435614954589918475913633957512088743088352375625463318284989880803506673508356937391031264381447790755598193350359852505811352731778838742742848922867270079944865049944975922611376569563147740393865183457204810586366170656341050574350490228082258832448065019521444051770757664462208923158984128957836177047671241551689239885735139193385211203935701480861940538040335262089761265740690275266286763600532987020086637395771097763002653204683684390650286523104602225181879740857827755140873183781413030543949559444066668516799588892590309671647867080829231962453018034917904179811763580515532768560392217354533206129298975361147462893314808991591416338863618527410668374856836981210773314281725324026316196742311590792394175550924244548431283644702266228837043766063011637542079479830899843668582921830086475773225705889941024356118599669867719420284011871004847220571175048451011947521432395113405241746168910722553081552341244464220922204097302804521230047079493861635542128363459052074701051868666551886697853968567223503149816354901212990287226058828035946006896820722911140794262731486559840970972704938295689552475766995371848163998657021367338756468827427777148383459050475859800297996808187378230921659927609531550130782588540290799372153575208392736000616912210999555866246932899859127804628279328110377583508461721170193426820176498526678276997127868764939464799939704672822584600609637476007210559638362305647333953243592156287440266969054148295373649734317163732592764020634251877371137712071470846345181803712056822834309647452153746552274860546710648500639744778765315749056648652559796226244549554378494111142146368131656582997654686214541169522064736545710046915081694099536810447608135268052170535450152644396158938581713972716479904678124011540174919810094584660234722955623434772053661017307985017989095912857719578415909577084036643959697574354555849435067147650397719775009683920074281948488275711527027299457389182970999030865567928698281190536799447036614704575353454690299560116065738137434211368428088029818127975727321922490511860670779259274188628901355243083372481184585916203350044898102931886094844159914254404294618724601287721864273443875587381694707933070278265671116705658426291505624413312313036791947014653845707562189836181124603543504268952449238834771491865885547484863934656540737511708814033694690100800267882566303091196697100125599841865462011400075179775517820343056509579644126533438014659693235802402952334134502521904088694482299856864679310635466875828135134000141326555940999227483189451481666921177783977785037684089760586155538405412859474360605724902091377101474132839560276876947505836647168589397341698055202461140472604165133900056632407233261899578372301637933392192307171375260989327091662271865821729444915127754252800323565421697465701442951183649798196082538561670597457780456224401284008796451617255378510929762978451754977704712040312192144593571188144483899328004610946804423867983993012086873117333628159150353487809702488641493871613213497016630065977581636155380735226017331846175764425470563977982871396148868249754510952072201283334838530894297389783332070464299402247368781978031063427799854033533398932304282259895921023396833165837793943307875469506627224874673401881040048863199617933324047770976576555268473867775724582587800085204766602397349661969495538041194412926094615910764272311761522651819587459451271795826046672372879614458810059370510176904436380617179639936387649837052098093541065737812898327220881660588701248585456531010617024850684601037901130277604049999615773356436908065554788445520039415699470264561293312879132728058904831867399404493507390066943732611713245072712266924744635484864761145516322666270539547158310201015457742724026389048537551339901425349182465582336580393124803027810310154427185737762711087641731148311572003031901059101762980636158149575212124279840266919551641484902342030292138902542745567822020578827718682815880016542474719317347826490755809723884091749273968097752442524458252156891216597728620025338086293976725517187452403050308336831929596390140809741935919941640648631246253192257863324068839530035573385701600537558637342056102835714123914933041993271729536755750940433263747846977629139362784941712685687568512302873999518211539561872817074552350524567534180152419323014664835112344413706539436162028141609795658132666025997294597941085635372011285498486966754532540929228097819067831064339838629547173552002581459636506266198872253029821843354584207781893716990505285607124860599436428326460308068491324146619484815847989077545074319487698475167994426371421429842578869211220107846824176018102674194805956098608135668729454889738427235977503007556959072287348736088060386637912752767088270307573294827394036564058575346076791015220735047043649813824331548268357056291429068006944614437394991804468299221574548946684771535862435709341216330897067079577712510630181162637691992400167506404631537730525975154341323418273210416698315658922406972083607535944444536970358195349160193584463337207624145996316756723943665019324963600530293288231795147607472085948611454285810182436376224619333063554579121731933451198215955181124657626910825202810595558689444192306174821243903519615998134964534314216144906675817683468536903281182077075194001353571455921691193981929489371027109001551363560057462667685019922641122172467120485819588101063277224998856277177490946968240979012596390815466330039558530395057910588132189493436853312829450781346841889171051632104694053970811533943952232503461190951258238933129779873284135920048043828661863431945155058395629934059857753321434737721032958133754441986692617710894568412394101393926577351987429049831632043782325893526809822644470887226325316086112970026368466851123289595170286091418129978741890604720164381192763623897700503925372536332317499173368950987778541208632722770207088978242854278871494773268366603331802999530777165347069506081321309423435990070476924345357471838631403778853782555327317625771795399255090576635103964022283357759042711041516629443624899493043897310555280026952352964004623132832781610600030695391308240963427291892559164421261278079210917787995526907003407069337435450879520062254336828471353881885287634202056784589763538259424848889867967887513431613403101739607586704187515216117564294840864307391192376468729174755488765118400098201909100121661469926407696681122306050388813978582167384383800308370118102361333526089580235560755294198996608554103120004269242064179008472894497211291830864926081103562260628403260169236987508146649649038277308470242161663363960855537849722403482379195628141219564037693194798072723856862972609763771428685815681006835213388143339509528008752182286276772848723935438513547906725814221277016679744627256269733488844762273201184185178169398220717519615634781165981918053162002717791050408607291122318942003053235879611057524021474541639035335195765246755748321648539159077011299202291900540442753462883141758474490193667123298583840544295494548615555545352720351954456554575025381444898975074918480957245540450425043910841101198085946112716907333283862703226897097846669024674658016650123303193490370863319572753107468091400883574726780291495505040774388162156685600458612643668370802947989529222033009061418669509787185483193276731052341524004480770288103401856653266643960521750376125033642469560555605240945600114274799561293191830868256319677549021301495575867565321223364838738621999901496051113899301737533013295747028609361869435247633650004311865869357459202817434993588165265420730447126852041906665339608217484473182994247387118291454831783672570028075935387830482106325076627830770466236453862259483390192409954841381406135490230257310930801702791496338978483589097640420711132401312438292428475851528820776080762841056108713215261348335929060096173499490171901876933464288571649190236132285554015746839348305919833441083593796417614082406533715963261255431362408499650653978140090043012829769897209849421182902585200237842349348819744167073811157153931758357407549844393331120430212664059690577431343075948114830408544382210014668611942144664638358938029437604535158450851300301448511284697881748447911392562601670525345448983143723432079911236926063444013706785069974004460408981661791713418832222022840233029165856997579812717970867325051375992975696425902783142752571309712494870395956817993048544551292119242814082606036460247905489932622496999557752953942710767687368603040826464344457421853312962079795203841304215261418770758359020323179183225324433274151430090385039278644264120291776464914751646001341326095153669391389539658520288414086193040988704006192203120406340582764704734909627630584902414205208713307478287880211863078886163037963577411007575028683889866146120003697396791795294397573310769804756240704934884636185195279905310480940757894660358281418692902185882225281811074716822070044871124227098820063775526686202046377100238433745496618153043419164381929852113881397077856591352198381720595576447935589911089017303730360831833696285735347902102583997821344857562116481914979708653877497120851652112280187513161525104017609793985027056049619077093353982054906298349225604066926942470852679568529422470236579248171620240496384577565379329185307635996679154490852537401055451945953621391464184854351510911438523359726338168061658239235657977090116522853742379721614686149753792409965977190817000979928871112412511914075520263886271799297807298178186361503468566682162753133269810448647533001617125375325958320651405337655077372898528049262729836371295062235235010321252874376163766155104969187288966421254632557707340969589493914364687741955781341724754733607856865530747177127919116756818195752679552088800216800214331857745208094028444118737434119724632984039566695523934732732544668288095522410583560102699782398784647418901160502287376598765415665698592524777425847018882490191522107252243380967364219825663514893525640852538748436139039600705549131410779374749321950391538143793273013005584927752711049623327386416205138908377597254511139875811383386888253535290137106255443334906069457594807334130158108308078041132863421843090281047048693778007161316737641065682052623891933072813555267736289434476492762893402043272195394150636930621736097273563428363293269237811487773331179478153484255523478808910401267342655802100650328287195107360230865797909621745748856824423542109961969400521332726118458944567824846271747817164154049712582481745832875064645028901483858374033435461542999846402956398793058117175931656067801347434196236570315415748586990417568870184961673406754639454346152512848429269724963390764375346999419646477782339869229131395922216214635488158008756459835821206611283865528378331777740068036911270582061297578963011204942513159608288294735731379650410225754285566768161084151392767618949421817791171115964134758545497858884925537555277625663521510747367122628150928168623160681275015328549051238179358952722809963634301387378235258768792349871884726579923229910822086304038804841949740644241149762734131904510592432759764688393872316191570264279535018724109409674749204470111290999268145393536308875496774492609440477519080731429968466152579031122344597906460037758534947256038955390081551674884404555631496728715671535394156805255026294195846047069682955431256327198811306156491348250577440251155080256364248125077653880117430112021598072159152307446040338925114261872125292425327009700500065542276324917957310428354538959271209445682290460864210533396580811022758359451197443262021539561221058141726793253891443117844484878322669391472222634612743380327939561971980700782183574084237560562982696264245704488030704938805534874562678780990124457035477034524596801742743582009877223210574056037575292340044681672992948249552946611072558386710747688512432454396821819165903330620705325497644860804124706031747798522031162921394463824896434891333441613372688455458826369981614189339108397007765392739879772392537981915547198697915456915577341476286725269241441969695696756535692912010284641909967529554142426415986007860617328979223801717526747483846822204494436490093960347572528390351777713923777860425758396122692310524927817286002101004264192302291412648703468387763134093315628422245440601331026368018872139519433548905147310168575987740733831544198239614283271714774110709512596187834320461204017871256600534216333578043701518517243622902599528609338229866136057180761666401412055198196285576056185262762436379879656543167133069236204418032418153589272794981395642828021805212058354988898263958379801781379510720856122639904264464357461185536113191340413464995584623736114099856708263910103240724450631870534856676259282248023777691015176813179130882423754772454376312318219426940996699483779408858306741608193279269282470022331816721779906470361983981932149272283948619531396235072255096712029860911655550981048273177969555835038624218241965516728184354289616880153599956125028004140166550258794760494476935760842628311068532150420933904353209412150637359312502426618746093518232599336494975158369148021531616393413491886191386830286560206278320129647713667823496640514430475313373011974876435693777839659973332545520820913248001523124006257961604269363204701438780384789659135384721999191425796343971593425248604823670421868300757701646950868343705942529746544543215329781141693392553797525784443705575235073618143838616706060993636855360518872890118527890987309261460329935321600394569906438964725964797041362845239398876009864637923863249721722611584194503987769101413994571228324081287544388042864114517730889945968495959255630864868423793717960792127428146960225086064867450728995959843374181304626927978338818160589980119071986805340722983702811460197392446643178144857688714924470614758295206719436479009650950755609365831951299001303380459791999429928744126473614493420026293340812155798548043514591256895324630221660140080410556611113879870713630065710462579056997938309570529443821411258057331045661058709681319067197778342797529645580768493592429706652988899247326613171072987603483365247650947344591858444891966398191081552939543430178901488701296716095237649913943831045484286195757875434844340694808427665429185219639355311246008905646304031066060603291998183180217553523169766900079251316980909913171282455658462936730202058943295684635459065442459511425075718423819520483488846719422602306787348540330794097057624138552865066192405588598716507492272146580208264084272392721180756797929620288855085335352578859394050448896278121923514532779385270538526661870480312608671555795054412558911647947791727603455704909879871734328832846641761843522521451030462376440452713353318790746553622994719045013399381868128298358582483139478021698454711480135501394864509477904901032627837816197305075722447084102469256202058702393394991344969175423422157841000925955726134979378587190948330877804862143061014384902963844317166856423750316090581009293015275085297489357295040869838084812345306727763578885256825358370266861460254612563646475787405234748690735820615259396077050829158239681181057894049235997535169029275987700200268114526262128093357835428371117945131725990636711769666656466481433193825163702068136696904332667269539110197269003683447929566307585854474811813914759441478673218704518464840595274805988284498942459189192448048526890630253526716179782251649826168975484681193549000561039096872510894571011661980347339027551088082570643939876331027279337415194603576191784058317993047708790850840950035342465834769272194878372147814396616448248646669917577493487262825363885013379802521974937802974660749950184128623685077112169677996878914589754773729301193822583190051566755112340790937475818461282603995429112437549396725427335111162398527292786228119994556504475354857048801790175492888162435895019129558962884654516305419868538840373365657787252948397624649597121235146770583588508056969100253228893219936963035623608189946678053473520487817325723625182258803332721298405685590749068006122929384117464516241190636324581221448877532338062964999833850395552483125934446741792049880266327150330528071285573228517408062647270660448840118873412757351393239863552447308099691557724262621478172586522759194438683968537153315282016964693119734929195359250703384616379823991817397128563261579534149500770324375970743440370282036244828964738087237496831382067428614685506083470940558967236788651169465783260895190422627182135142971499694637874063109781631302232653114153404633039550080448450022169494481422936804554360617626492839687004534448507719030409873858923918324651522297245062823701104572922136276378304701795930488298834465737525284422717529356603034324045287695250756363014382184603944997555648848559185852897300213570173873441220381272045055289828755979577292937754945996139225274169590018008612718092077467688132913380331721553632497425881461444702860450915475850972885168174711582730582998093896478928876618656952103521484826676891106100005214998893713897582070505857606961319522313287486444201688667453998856318757207548170495494220977626008502246105303332660016339040263408386469339231766898303983836639195737494003390814621248304959127102413630640092502289318094472664784681880488076770736768542250789255797946099832266213619293651460692339266064983977191293192658723793705950111182625542818144393376384694138744558883850231000692307957634492843509562665640169184483530649518118992658137061831819724616744937080097759202554440739230031063505233685303867411891827960901482321374568737082493405076130695171808869529988883810133616758778021619088393676044285391330768185544033944474156316017655219855174858538103753086367335813778720020392581132011329038376101413015832423617904415926107219583835178941750048934492413506273522516259069569205845418109804780666799100144345898762973422023555716027005227805321920649107224510986340605754815743524651882475107940863331133362674364578496680296321524548625748967458698642844119460104925459606991461453948693015436222285565107109970626791464101174783076876125218910382880287997811177338821358439253503082649456581777884980709492714395489561853077453222562293824890093365231200674976536866815878292803265321751959630372067982980590951801732412429153511960870703579506030220988829552592659671369476098614688665526713171157887524698361890996836018214314129528632407098448808691468957322427292323756345315326983355161017978449503623680383057247201041337671193767277197325556970421601450398650975992091879597129944999848454140818419586881421350686836512415547125251828963618528587567651507230616666988191007596461999947336273455920469939985660653367315074628697057400367394238182013156172605181971526321486383743497314454011894445626181658588552926418071433077533703397453035750736231584386211335839550487648691255298924703816992462080226887906145571034696946208755660558229610872904773225950445658297356858369066132975626706054337377067344547722066397939043134759219489668430157811481190611169018571516848393511200354389832809797562471572582801140907452392606152221765261707787065439521393965353261866167826524793659058983087207460473078097263888095881446999932331454683048994472011885628769875041890324448180789678670259810961122066242762597715304850298207775368594493794799635105541321810746473266826277511506649117996903475326762455361385063447659885357256008341438695229272904328837597336359449741996055196788923732086903952678923005951054464215397493849423044918480024359298997966762719194366832087138437835937495048329136132332537920161473418189922377991664374411810189146556417294355547793928482029498610921128300109560863553685026070710872909368560899526983835983751048194165612187160367858361014947550018969444287352643541901104146946791099134175862056870887308603493099770760960992779434282825255619130311380281134181858495181017062337269338446759901838070012268042012236283175504876809721418101417935901869436811329511550422515978112289275536163510571556035254458572954021542374071363152718316489387469532326432094279565605975711254485252980331073442224775270663452038763817590680275289273912485494737855869962108603961289868979753348345218126298464449122174079346166703464661486225653763210219163435097632901408537182334367703752971926738887860263589191740963719087432602810075394084503570108679623081432060614349886325549093366541431476150105410195421599321845248441295868592286127077154462808261698333327387445016412941800506384805371151780050235683144064384546474261077162189469486780628297737499203483697611403995318800965747561044445625089989566816648402375404936732207687382973026333217927536984353846197941757867070573912827391329536421387146092137780639348464701407304646234268818579961675968942802736494737564625774930796341909172138819058906460089455033444495288649856827926012578511950884372190160217656760895519208274691819436598420822655965358158863358321615412545508544920704078764967154440938179005679704259496979852387759930594147396329601562828617209485320978348240566386826283725034465582748625120983586335926975197015949878342698070015029693902549101383691335691692593004875357552024756932622734874880164402855513672777212792294964200292859079128385135169311729730411300405911588070678302812075919960012399431201830134727882371310550105635862786597093383087709957027606287924557171090558882154870265076554713280015057249569601694462618607751303979647949876326964848162810897115735602153615735834303549885241948791961895336554167142998859959855364727350639706759540542334131307524519678277191178819830128932173010014991603187534476780848603724045795188593998336872730859914579619016523652896685737395565884935161705657395452541466532814646014667489048835148722039867325169152063198463569084038467877889382847760785574565177014950881294069989919322873467370105036882647745113928184471431345432841350240786422216393678488679701389554080731396798501706742356674511680444837862672237983400712235680595240207298668183290131593593403222794968456164355124409338007950752367086213675216593606590238349925133998228396519021695419804744777364073700389978046159469460670294222487771744952465352738257593538448447313236499272823264205459772355960315782511831811461277050130130617422560835331788332822777980674932960624814580209063085351339755333636928817658393473271825436854363713558991531600720451639683028189905604176887108358797041288152305000582063998121426649156429281919521863711278309089141364052114042038166408845266109967784018864025816769230712659530903186700878337646689421927096455104971882800682094141110855029752766203795009715634303824401271269625034667936234763583445079148687694804555005210828979301349177130517264027876115264200360943863547548175549412381528291471170792157207019845360490371358592664408115814985548408707181251160185259323602169501195036149890510182124827914485831357347075982629569830869491128125037908501184644350173786045426480464100197945186486509030339197285649231714516632728892553279458223962176665450581270108614052785385840595499504089895609032850224567739653892364317748235297343451341126805812804581800942420258672603122995362785189767146488764580700191275425846688066697331264226604227217407136008520762751835183974100450494625163405785725881198026792307577039036538643122473615532886932162566784769357254648798687400693743435181624470278200557503847577100964407942358904758742216545359724081873372957367449547505700296567481732260686243941327241263372797648536254368540964635217271025288042875090261855218614038082728198132475224844235123704526672709928663009350180179961596479402389406626303893266882375203781258944728819738590967510816414773062946483570905916977889064907956292558357515378374969924510688771321259394369631463312243759331441313352635412810527611769014084038324483816606828712137527304101618556482209142255687586037655772810760069014259406327902303999482620165816284515200106997021967252740482181777088530519917514187936191006019318961925024662163838103613625292869105253207392619887274483675387509901228520969101499014801508589950358183320168264220675780973431140850563059585582789844706602680411880758213470207819749459200743197472710024035155537292118376500563638993978038979262674778487578523068749030476134710243159383585687984416367315949717346065772192304050152484737767523956370525822859277916989989182568505817749692696309151929917641901450427403206827760464051214478827636186076480689947427748027152691937417321112161792770257982629309745896265645739307855744051636998276657586756061051756517192799436321439029337481795208042012823523247688866000786812614647646580456315753470121554243525983620229632988269569420013489838970475687691034486852312714942482909387917731615318881489586294995133999794189788369485253681775559747550100301116834225318741372442153545026098332665407787039871734367851605688130649240531892907110047190866480402184547328889790654998862214028667082592498500603203763148285242579030018336427106200966593437584414393074644462618026906290455547545203136265017157425916295871147533397507563411596791060450680285681366853950589263932925027416625041318588791852957741396547354752096975437864373891487760539694369495015045955220027897024542485230044759013598173686973065556002629144467480678981110758080974855020327337045469108154136161027497419494128311168768341206270455136364736548754993787549654699408538721172093284637646437763719770025160944404665617070728260804705217307712516788379548976158092507440189414484033287445742813473400143392876589563596113830847117023297217283832869020989297209339638299916297171412358658518018010828642172036002074758147803169968699225197380882166757553393702501793879207016563015605073771045461430331018974358087350870982599172427335406542478362891403727349514590039422673117258179102054345068269073763729641919664940429964139486724940611976442326767485845906741117338930285116015867687172867013798071141189640879157733494492402296560512498847571800235598227821799868594513270595113304090342803391713597015470421957922130366726289749298003313657848567597428367774206391739065746033802597802266779477508833238608877982475790690646864737924493711369363488053232258244721159102018907841780940114243993685972242468402296174369296412567938543039220072044580134834124108951840593677885870119817884818019225008555307964152163136916186604207749277422955333482488589328971284550215953437239683642767559205445734392005610960863684854411304105757070097151575557722802542889739562668114342966333611655670649569382069620375022716619507530191889977132058840665149926569427056422360697928454381077065044400714828338638104182292795706091395873581338443324795205033332400717772761686255926464200700140661541212658002986083552236036887539640562998231025517294954674059930789744333779294436172788150190812894942364325560400526923439021610790362894682873283522569693865937252019143586064462799198121130767658480979078419991616871662058233168801746154504333825680185159237345298790592023624693010930197791641122174995125751223343962313683496753058517308743260997418409615561675057772078422799678714378945574234204575508879709321247467947228040445337026524531944359234782036405649898030205401379599174885615897541973937713653126458505194257494684195525645529360036222635027834172970096407899090206379412317673121053013346640707295270027950658647558498203116794405968659898389329732562540624323275512918141771244540109236164842622439170115047781041818093219638255812394035856057341492027507128668330744927600900699552789401359526945977105215167443016114413043907638356236419587616235070876607950829232654688654565690393455547880667843914227234460003052420215310286371050694579831175744797079004199563758497238302101893040801935028457547530033970705372361625284005284120734607922042090731012099157174755541980009648907965831196947136661445285282227996613605498303913157170775933585449288802465943618315745482001045599628021709853539755830292127785659826461582616077918079245946248921816668953273954857439463060917267218026928737854997042506285233453902130155275343227198018954795544177880194401506794216540221500198795554049476182820492359262028801887593319176006936868881401646390841918091002930315283402044756549256850618097678809735849327450279335112592664260804065320495406624371553073003496752098611170785706746849040485932802680969965188324139801411065509124337860322177154194923744901424761304628767646473674737134540129483861277751267111312626998371106607329886682933037109312889717031040170055164077754026184687182279516480191780556833189459998186259152275084002568710225765747524604943161692373429196156139443683433094973757993326085058998374922642251802504941437552858548483290998610628937186925896341780951161814954637530415832866146907935599316740421718323090225128188228926448966281924454843136197172839039500374973522021980752491510573102133347741459925783588957004639877839216436559741372598933340589480856892798616649309485810991736088077340666511077934600904622591052771747342341396532084261923482741248584334780650346643985968226154597252956997448629742199777109406519188376634723917863531417643381560127250918373659994923525336596042095249505136281455849419971128040776410804850820536604592089057112335174732636595190864831517191868686362770947994699660914775238103178928272679963998709668554619629329209651441420218218304122947746184647757808702598942048606617307199680358119189810160935301107505677179252988310340641925682760134095604776317900451305622220854503678858943724856673168686452634229193316758860777159191516866012724917392545503463117000561638775410567462777848551255644893631313134751292120104418791727012248965907867408837640673677115961715072482187115477840607126188768357299035914868719580142266649019874868266138080452603871043358962658303736862107146075312588161308139039118459455244241461188799025210053367058895875641973044042931880043142289082521335429450799098435405972970357723737255888436958096614675776069822525333411339151018286132457264295793008279037833129467239144762587249879336042030859704004447678262194961495609883792593142784580662913313352408755963979306195621176702252318232135430093387533861188673835630244293577091186653521714971558256402662713527149329170617051196393524570533768734269164572505050428793280457996645305619531234666551631709374595125156376098596554573421236071957503654009305905743783937948118295339996827648488591834367631158119857448889661030328700197780993665085202170761840538322923936543527895692506337483068083884505820727902700368765490936751415410066529825409861050715425917365254206232611691439817103843443043315890136963993538302176166934061985304543021825681999990206437799419438954579229857547340930950675523201956861416220822127576902949643597724052284260142698386932579912070803963815359489237696612503371885725001738581930547168469768182835140845127439649228973730077586577921726092333094762608262236961317424961452388162791160848989012997895633455197780228422884542870936131605582045763297987423689284925137548693238589378109628161064149023762197812263262996974354480178883565090906326639688931625237231604945029297091827690269859763378265767919879132962324085214971546013071226360007775511488510198410975329721176495550494299366931433061381962761892576290786175388662725199765856589172797895440074282331280465145403760834806020658610410632020842621497647256929482897924446243095445418679626853747391273365196338147964333595276544828648007576429223940970929665581990284395673571353668483741747918457465434912508053180198951915982314213145716077754857824826468663038118010370941089373930436989930099900864838621057257335998368173159117296305613973635334304509949999055326935240801528108292276017888354545201023905573844503219184134569440411124744669293090211719797509937869409982691661094276950900335955906737894816201939138083370884774741448791813577879293768360498991272525489083924064236676706657713116178921079867605241617718748861355359297771503346507338365079010079417945384410843725783398353980728277763967938368030942706836197843210188206597188086664253893248505494720001301686066174813311059323679311654408406153407479363514624711549316031618165910945838272964529850614124800732034584829762006559414816158873881772855963339422307464221522633252438524218105704721637228322639899413293076450106428976335009351847387035841949650626151566382138073100490110891978290194091861805423657177044777975415457270399780576577580911181512725442415468187312525558698841173849851880299459571387821501380589927758892455800044399470271963178151921643821466364098272934665719112829585365932854363405723884535966828237871749332418092499241988718791099385473912159049194021218679005165137744304829924862562041143767312439193648929500849061696930990481515895728127936467393523863340744941491678685477499261152138012037625575025750884156720734558894176668244548878558271824278293931340178122071640646324779501082664532991985474443501970915647797975795018570261953713348740009595342849641327935683417654109646226550074890841242018919309831853827394890063211622151841699390713938001072191945562557857409026480608783526216523199923809287998902942862018447190922185930693451256021818411125530860920711318248205912997823388412128193163329570239963267325321700957547339989734577761371932998968251836657607504543542752395170431235027769200214308668956719875459512974703051939416215907566623404268079891942506164195154953911123664303949651148497540123057581634138851409638852221612769346673091166890057455020604965753611530989744883598535976039676216033686031610810290657043941462387073051936128521230233751332037832087396140474531981025895344333046234204695536568772271767299254737828701123336828204086285864412332323397863485457956794799878898578475892371362463597152213195250540717767280326758300776069312112952594812260415149882374609336076959427517786045606812084869873237147150054990889096817430724212193760764582125336974487746576641811676899857550218330894363082529364154325862366930863748486204462830738866255413818971478991601162589756090988185435842647210616891732505399655799268297904755807232000838453073086493906600769623865306913648156454854773467095578683371832980698890960487081647431678164771700599861685652420679896406234387032154324292384421724900103246556739890802353791516412997262637183187714774212303320040521527869120447166410013841362055813577233863895742236761540999293176394788592968685576771104449304190472306095472363168071020410310370373142348654995494030206370782201751880406707314361127538872554690375794414828220675191478577278168297657094497925559809329887123154653960099455901467220931775648807264508425600217453219878800797357725906048952100810873707263979194527771307126060417303868369684953528557586521225627097265233611732975115740564966824043026458414161079285791562589250824656163378195858998705854669718613189420044694576869690177139555951475594916257931676221864998423933625324763278193407677463670696980377599610258398753478504105630251449975248562587017277093789337291366710145691132136359852543357009644240113640812222506601383800795954683294514484473789652652917804493079730083549289908194140502059390539597619952921169515850122671762057597311078938796003465122654295061806344072425780958799987344205257564143871415442218797817217885488086252497405913230792829047050334631927905752067613428858954143281793992193771319480856158928108804120634052662860843022982264799125959354001788191717638587719353054482420771212163258644890685797533155888280811994359105938386704151267489078748984224191143375145051516015021585299013995129776442869864630002444488506181642983808060037719385126715169933395004656911720472150548837231492706429800977373220004875698526391625691104017552560344735707832653844671837285147566023483278284515950646275866061653103146097511687869646720960126778980432141509570950010010186168785493786732974732139095635823345035633055016053538529887371478097024973818546783189854244212107552869059684100029826400963800626996888517595470086576334311561178717081889699883315586186337697108574423074593680070004281808736588758350553808273858183534833196001146777593346059986658144510502325557276522775290988518365560468918832001622832509736360538809030143454638302732324562200055936534667295793971638843725350494380465695437155884530357769599502844795059797452189847917661478286800565194504884403498754096121976561088869352527902015028114834307215944792535375180202468167816291975594626939332716976709071666849148416707288709384400365718398624786051208046458631217170514528805647365306925413258691160210342304665157715616864930799598537769585449704572660201433194566526135133542227219010941121575668446397249707642407437419758280810161104920335436720290526128356721106069909502135016465589761789804347348609949302187855419044000839389529894627450894353016211850767163008450875259453761816462711665488332014124212563468726150124655025286073960803827405176525095655645738127585584679744915741816575349493032395230622093593340485057802818584721083805476100567447174811682713363234804886535517978150115386118774355459790546594214212166646377222515756608117902073334426850811106930885419026777056551622191677520429784039957444959717203170058519872684262707871885238919565524921416434127478703194873670581524705972718995967169849602245810823244664581636668051896255070115216131711909976889904139711293721588312887731766259732661258311651281211805454496991133571292092716930897264428602016983582555937659999410349110410511381405631007425752468642034345891400532920791562684021112943598628600652814537947307690500105373623569188841219613511978558099965217941123463572020264495389387841020377265026926748592182644602220827426377148617947802082930604305287751057735810279576285648562767312153361708042280596786166941828073377386644217532261900400675070911753769564249393482205249223044456591658347168339587008826070829825045439192903862536722030022588088474173121104805526327970163588697165013134123582665927476323288912529236994206776613184091620581597002003643104857041722246654893038674233581202722571268713906027236249402346241046324735312576355134060467273478844479258273211723411464876725715414717547657564890419141163357087362101217903155938305965199436277913959838481048984401088000283306498027683105867546186094108133863379452552791958432047493587615521218590855892676168962133714804750141107021032125592540537006135175382889723823398821925610849089343837973090941829588172503922466726105490913642728385814192862373532030207407106918691069432253023481734776624107845239751350744140669374928756202219186308168908286996720179458824351317979587679378089092074940831179178931163605688409557916606728010376215973257428738097312876788653656081858316437560997641120628810651787287907068509580695039846738221278909632050750284773118555363308375128693384744894966304294463175647086019128134554942825072297638022426616563663227555391536461632023506119873564193104465336058878650751075925681803912686894253014447691985219288804472975570760940853040605742985688840171074957710426798043480432890953996067865164439446610313106967802198327448326537652022505845899190695179155770828334013093333120806511073917208473215401974002319467333363068850452881111204444979574757636351866476115787741432959981416478061894229311009855665597557056199978461848649330747806829546317597043051618161811432129915438158198835396366863249100033791292956926389834226291815845270661467721873300545260978163769307990729481297634826242873220059902559725222524472161723123708598563994569042543840662682390213521644528497094902566774928768559960347818985836337957271095531484564820191660597447043927765445899695903218752447591378210768072783190858364691082496657102166006429115217039344833097749720388351896840641160445561968732997614276649295182120247786805769062359897666338896426145636551999485588076144807136521018654236642656846498252323624133517460979027756291849967982468270182119272403442371455567378474887902954249150677192018412250609703588286739108887225913833184381932738156932545503542222809529714538407476973376230674253002689880063220823961174840134195727587437508645699050833293020829238948960453183593703307402245304927209634864143651750760413253082504273506920798294021864244809145873149679646301372124187353674702030672002361013608730343634096444667351152279028777832846289260416299734305926433012270221515280798061995979018533783334370061269091132843140658758066362548128144718006156889768647540660091526977680490037692401260742205611726325162343923718324852858575355603107833682290935100279698779624490488852944075237333514348779790896770475754886680052771043934382541540279102493973323404775029054408348422568243482002257563467018959503016894971479358179376737949313422757771884092969423714112083638214451605540672072219561435301135770109265365277637532978826205720637783465884966914538205483767701152356037282216600622427698582385603671006308173929556535675450735221580014994701478602297151123453585723426936652251424954399814185792190234254639869734873558552991862036805881457957319426950594555953237052383701776352086631884667122462597487406459117410969201836995411460205981804012978541887958461558615460943936545742268135509366970029502751274071809007439916597788003524395734921960119602239219256080995232164785407506534881715927316249066935799208366789713593343650277537454478813294308081361713359102448517624103704764440476642543383614317677101793349989394481275923401213973161937474723069964142267812784478999122268668499243023880793669101189431762694910570982705907785836543696860361436007793677408292124778195284896123107434552983663038206399449917950686377343773886650666921327796434149960839305216321704264503809928092307365153837949701211882214723436946536529011653886804340294167741307715205410489411200360620293661314741263175082288609249617975002376042761951066379079785518833804690249997230791259330086621537146457966828331566772756892989168933720372024678311861494203773327320863424530127721449813890391187887982400819851206901257059617479060989959513800947469259838993282520583110624483569111845144250330153234752761903767771356463092072025955254681724035219919955938488110095710069688549124056586238131897049227991182016987321971325101299018818709196476627441959195007751905668542265382486781979282180945281728202177613276487505448613845485422559027658568250785270632922593371897532753737269977980194694981097892734903770421043408234020186414473974298198916535701882590361482088615288340956501649225287693271870782978776884744599537316733705326583165114009300288487177785187448238565720219118979270302110693080944485293215236978560903656689157000016418755748586162087680588288504178697688760713988637528638259279648141093620972550165785053126384450120539169222374126845740399417695831266276168721285048499613451994595679356743256728740990040763036202396270072452968959155155547250606599262323954278286866916517291735986206728807275863193382001254790722566322475453130363630026228692869652974077944463436240131588251501396096484087497676664705100737299412756330037792457497688055536534252012744320358611413461308451881848627118534610541888343362136036671558140285392887976223404637569490800652797646643386172536698633546415569857349667344526828509346931755984248904149423343896311459643480497602789777424092682903108535117697604928168177565173120704343517718049519554572455414462471762769770272895373197956267745716787471108205150259269196964139199659024701925818538200003948537483146627330431637082573377185793945271647296147359935242266528132632303518537668104368157067476109713427482320417478346719057377891627967416845965458623558774518907759685464187896125344141985968695274951115006143178483788482339818284497277669173154191626233152480790509479000564376396237657587122660473481534970262943233637656876163748017350662356213325298921012560020223292363016333926496425620340980421079653181552337471143074892219199975912672807688478141773288288574670315190663401197327730457060839572596067833975394421895279564572677939760269706312567584919137237168528769968987788424075401745701920306344255948009618318466791223700113812844092500701699420334075410819148897993381126876060321662295368532376892187247010592759452544433997717429420669332420435869204052094995703344576470260887883844168913060797429713515990354103124147185944710195583331718805345273986321756038255116526440476749185685112069028401610869825398417570372029967822671850320731497647764097838032419701022330483293830330290255230833532711389819914191172254090359273127499271231793831413570584105181507459358143305467476325094559544191257930255927192976122231485797126789790952259409146002115357605360367981589129806579879003667577531648030932271137828986697890590349240564324784896203601310671146140743504007488094952589455467448654677327237623038482323488388200668135325296403409836747911931507267742365481464188860688736223440508398099918156601683464900767698856527950652077620959920524196454755099823598161994233582524480824877371384625731610089650506450959479228754749390667840372774837968076801588954840789940421908836685036211701085636905394710807140962253529383761686822081230517166618773881989455132684154497540130404673768617260823545122787915463829577879684728009655004677878144200734055222914031592197397954136629349389218966381891874476785439612584815754794081809333066372672863550755989274410780696578016188577495682152486394677966395741974952563089169815685499478090123633203744121259032110045865076574533455376759981615828770261638628169620400213261095866085373637765049140085532087622037020016629510082723060355349922736018249006389020200458034826357493440894674321585364200632441157358036088579856164822091130488348156807572564213766240735301426782336204155132368035238854052080155370761074392540013877370958860396705427885443938489042054610249819757185275154567755755774339172422535029243651957488981299445627294049696983944190489456144796578191745603531869094232427751636569684349501771050019630040389641929252468159357562985484066567321033747225436222523405428609238329037249032003400257315786145240087801939484253029154914425446704588831623015172001016411428454998162554926951598860732127188836996435148171434872694237653865008382992423192285705295172243121590805607677403824609911378241252149791590112349205479879083040654662213943109188210044986533203958911319916179805859297324296138135926786955540497234045597581396095561800573350675820744684206161807298056833540591498939477233375849099175989754955167906623847518267754167174227994689643830999001911852647348570578795928352115095022094812256659310573078252255304477803699046789577503389367323773280035618961217423665603469540475345723293508474283257540682981907898805759142523165267778651759588757443834416876960838130991696924378120452023971389268560917645586730225909331487247041987154231292057336178475199554124480261438029514555689215227697069531953177461049600074090578117366516543655257278810583792458843507751475063034280423922691060938171032199062848147956693303528271701517365422509924541756481843859263532996578810773932135768364732976285961244833513157552890569695315017758445200204921160377208864958391242919669439917603308757673980297495894396885576264513388949126441517615828663287287538232691187349482069550665313164486112129380993502264719784505914020167964945136614109987208372946596402552044604494057394598127042833896591819306374944200755168291640259003415516303706834541498836885736933060613053958546892674140358054541558331954175278060894189021228737354850127515036825370007681500164175272119205995341435926979419853445594055295408364442845757679301973221824586975876233333277884667772270777178277194434224749373323756679965577390312276187432500563787425509170925352030952995744316299859165552322172758336265802524017263274983099160977203077348519755296319060975059182855230521245951317354119468116414983948531515927560039094873476570971434784723734361143021077384112044445256445802595895454084927450051820965896001067274361378624648840585486629849642581886923323643318031503466952295957049260523434786723968984606582551142099900842804513022958778816030847602744381603684424743636965651872390311049586494969930303659881604045721107524381895627604918043804625600123519462583243697765741269911899151293294232947860371264178780617183573313094598469697535860150342611609104636221766107432790479306523985948451182865900282666538788770456507656318541163324200416971682894291907273135578396995790559681290689512164747223081502517958665883655639732605702246853179560668157669144334731006367303339773470777964429299735788496255893769721840456656586878797247035676951317943118017332936400341354032223287441240426353352592347737254632728816371798209893374315135662892620251355093441088708018722959608511152553054874404380439043879621826862911134199865953789870818338277230370391336092502378584782084412231326007058843097558959821720606348240990415737338190786193048093206901999117177771290561814857439330338449592541504892699247113398402347208796791879156739385925226704238223053876527121718609554634936724439601915832520895762536744317746886354041013496968669450956653773455048940415336970679156940816373174832504880973985479487082960861227656634520354351231045672322150523518949457993204819630127266378775164460949657557416362307026434868348642103571006694430651154622492959153610056702765717823486530654402012337479190003146061860587402104594567370158072245165955342015685671426704571162564419902506438884075473240203395329488073157177175825912955072668373249569898721488256786014799598307224127311682891996336141422592444799971611251167848797533607437868474606410114983594782291083849702487674175141513179104827497601709268916343272527801456761823364303318516549022630166285744413162882135241550676925812574760058903172691060123044142506046959321624094309492269704689081912363989171699898516214527702207232158697304626574926077615619267057965768391191458240065594776231147228279319702670220017661633280486033029019885561094460387096271875350276580724838260773036597731865642303410560597461807575365620802764805711676433396318077320114340214949869984091892900336716904975952887182454806994517537120455019099236114836879516652685630971523750201859539738637609828485068482249599333919036987279366839103724473028100121439040097311106324119955831011154120656738948372402363331412300727165086366729580381933089502181637682974160560121445306265278225977307970184065574406328673593479368737670952340077333020786406492084417466359428725375734999568891689796880406359473573781504325594534046878348895108853464442296861915733659409982335007103711100123604866162221167428672385480717842694382025985310758617515382612554538473791980678072120299685556518350666386693196525767916361416918811821705436934648986524766033848186743516783208562509080623784893560078915517292179686945458337818759490000361813329092732693737280145655386733025566634148260409962847833520308085309289953793298023796540780216810848754031804900168547845096313780832747017813170249098686740286433690754519168847458742184276605539142872852360030355591046948703531517549487251961665612114005224570939305190774488015575377709006887397194920866979526123647880807779692876832978690883573745123955376382171203396959659875668170875047396066734686948143740969758050002760766789388578950097988364401205418674830543374075965603521251546683884548042647178135194227609644911875503327190750084219137712242161258949291951515314425899540791979771921156439686769470028792830659570411692625684730809395926733083219522346684965967646822245061914917059995548408832705796909844550414614237916915935014876377012784036035757815887751863557064870409102101783765944302732405902416834260365029655875181500530269822774841264180558975445742216690439688467202246059918548321214634664152602649690274578041941731142783368331131606008023484254731996012949733827443174843970619495543662586761586614977480705792643042217807045958474091845373096021760633629349647924181737860916329540647644172955750141531433286631160998511459031463132956061730751576901292506540809334530940295020608093593897678808583422970127382076369829554916101708969541259556375049302464911370223055985943776825939942669634713677677115022720921739796248919244789999696360369661114074096920402646495099208321615127529048555409279429983224041551275988056812263780394822661495641938601430717398727048629047889351436358873248533728567580507249711168260789247932018453554773914214980504333731632357863028661231007666661241210670175677799859594287116898020385677104847088511638265962740765700792941185480711408249262271118398081732560733362563312745747754091267749764355834522230460701399275256032965008355616213903149515297206096175822910084973763216514424828235929165047675028353861259224721217206483844540325333710577112172528668815774484393814085094437851540708773447696586691996027900042213631474467200645020759965589434675458832464152510038051201456603081362779144914436287255093031853478878214957621404659538541738695750020690326101973880852807906491914146423587649926349135860343318060481636639347152533403268207372200881437724544270926372323739451041733892529869280559336298651088706347816810566472721048918450981213268264203696661384269921099229387598136840134388352656460465851652424953740013506473072845678343102924126436173808460874513243910051385285856363655470635736054615796678727344636034355269345917022705697493091447268080804630762866704979077638756048645434824432395960153137279015050893622761189880291805976528241870811366795455644667039961731963275351639210048788590281380098108575093657222672966013895014995845829551633080970672227564469115121551007616792787803656427071556230087949366791115789789691131402803159155791245099562093162203194029150223002939430887007652473445204426457535446325928468773766048709926123404188312012545325302702759115408098098004496925192564091855622519247225102437264147515770367197715578462155945299738857235664729015489911127277648138050428695178366693035275137022228393245654032847181841629077981978763964361660003291003897169737433903213147599874606248625552764098858371446373520601610648851673527808530958951114952270993730411838694621521739484573858034440245941937862020356105791069100076139329350258111028396437633968408074953336380490613287832215096795204600315462666945825144264157917576007218861261827813458469107860667657481774539766312087965501873083514091882340725996082635924760891377375004296044665537969702590219182189067501707063316875829852598625351441866235291209467236489966691433290376178045750945445724361322543549929328078424883605938756758311269606360446296999461817756308733782938487381846275279301546866120767490101417482595819901281181842908093148912947762948881988306165030659284184141766830723073660700461658449602651634936994828126207213016387449825500397167194848701899391437047975816142142125873955147069337189232685780016891505952072988327283605091020582542564974092135700754813525364502431685801904801166834396286909421363918044139136444042028426874598082871492666179761508374338051675557745206978900544157488466049148829644907678320138819899294221068268682629421907641953521090944759618814607281171596840474470774660688648304815747883102108584558586313838740889443481703509168377086641089986411236440308419171694900850537858835632607783145974927087557725673596568356048351187779165447107149608697509897832789870870547076302476599811232880691768093334129909788080174386659332780052562258865198188949074133609056605131145304461485918455652390601057681622476796840772566456466897238318230462055327389674715819760966805236956810195378432043765325780039342162998550112110953144446997577853617342066196760251089911033800817169750305710132139853429466677965378198954354755324832310791457392944714080038079760447986446133025357825468199271727672803199882003021902899210497945890073737369267866192257791756701720003806106143963007602720897569589102702400416126122563683138965954270554575794428253774547844847523896046072690914829617598498645406850640732968957020565348069614142353660061023683455098199977637637699353134935096245295766659230193866741031304162621774878886850827320272955533996970487895503322463937133361307958124583815371617829768950043802115490063755779483030430521514587469040460805373102986104338199903650342807609825802817112904627151065428245954290307745048612653398688675689181225102732393811063798783171923900883531373603399328501256336699000155559939377465013275546070932148575408932270721758249923368020380585180811011343481884657752341173269297259850612580173068275364299701373914691371335990685012528393916830595990544145890274145199879514439831859150054754718441084592982903347754141976179083463525978397872151581953674641664436084379809092649088644600826549174817108559567549182265914754999057575859804578509912215970544531380087191659269305972153952959204089421623101234277268992042939372263911564922982868618673065075680012501247558835302446045120379670284441537997936408962921632702433391124278962292287715946755644173207071449546284581510567436127801666428431293593678919004935011481923467884299434619882680717089726037515290111461171502382171453990462803756995255846767954434892454856296335221801705438382027135951983224651225780107747513446095903498439985638441727301594804134904619077974791379243227092429102244185504945806460999587431788482948107096547615477637905547573142132549819185463416868050420711057343230686843652904718380723405526693017560030184555945087636802315390479911180462868198862451811476300402403706066117813865271979545759404721380508627657655480315353889666284843084751949995417142315901358491515500300071853499930659650119552263039794742400857043548337599713185106715765795941556068022983889326766632804993555157469638783505525781362517891339878242805379078586525195108782861577645259630536858387495447064212120547625860715387182767357000357888232589497030345205484355287876414280548848766859309115397974661373085042723750775392462920844190879965130910957430426441474371427862415699929950701889132810283627063953163120230606042672028165106385798275717123919435719105693627310500850971749579130031551305935298339590011786495587213677662021467010314358974242815597208010518595201933608476962214961286444219405238553172651044290932281148669103679403673344918618014543915238377376687675944105198189738847710702635818702005018910585140043949900451316936325166829411771409806847397467483311085922773851162085307206949494943213095750064821101693393993171295452767871548691327090481724925187621763146134528912349575905240747281051520991016141063932147090598350804202921125511146290101948757386032448401127934639363330962427017047874647129975605323785313371536085135889579597071013039476408885385613421159931706790142593530202455595667404207608421996187302069291192119811369515976765079395110846891964555713548482441995082900303240280070182957863728087020695104549213855000362103776609489828762017374908077062821801702899005535217365507085843258623200664079881907063127184998017592881432397851349499048995974819804594311815424358644269562859342584123656473734853593896679735426091482026182683971466968799415800705205387849222090597361805116258567960244110794725188766221770140916093366968955166876421772346419574976147522188203742388163774780026790967022186955707150031876917813356498928165720900184710693845880308947649700112405144582474611324087120928601005956860189654834208886748683288648804542333955718606640716039485272023563576519090086309765827528226942033843150926036843353206305214297361815208165772367252656755375011779019888209737079107556740386754785645820770263947020555180649062174305926752263644942320567516739249759182626719405159085073425942421627820357996192018934837873335709093445100885405956114822892410665368864239563222465332846468962171147686085523700961297929761114852960476935458826768771653463896166836573826452185012819794776952916057990887258272630910390331544531020686761124814981573511217203722952401422217184518662346020155022244036634041720084693515357831383618532353518436475434587090546764267346029794064572113380558898891367135324744851866098180771434218186136750089699270137617855927576774505604197784282132123082089361635908671580757848193740963314029190892536033780573873203187599478953761073285426930706701036542011311631154957203017713146795198301355596236067424047173111318970233441717356181502236507382630659110755576549483501070664182799926195428355903094970023245628892182763742935476424691508578012494546843263422528426069971758223235914608248740707945245989942108737917797699487019234604658076918314941459864736976462468164288308116846123767297406458082828976727707045907967732669419373419426036417641734965432475379493204681880493485863892352732986448498890652465158142521446649999990669028521918348449664407282495823756402383525784495154151054625003839047557146944605703935807739397531923923832873753940605587144699181021034090707279691199471991139800113497315101937938242274698095859609266762326742161318802891713863044119823516122203938195404045962681714373853452874695682192297066068988794906150005064175813810395782130458276886808912070424722217899220704100788433446244051520643962337864314223160850097207929735642970651360476233306173124493050974391118025905918978970806871319540487471035833782950182455547352875153825697773701110455374503678540804573663000237261033618018421546798269661351254821418604345115869010768278284795743575118102197428144820379204440348198151252951328705264530652322031616530768630827932181482754039079600990531719622833295531645456428118153992821797237542658323218008847995629812309690231422195247551462404182838868054930852008656465865225116621047496679111382485536269578257886996026915371758825855524906907094124487281462900450245680887410352079716713617297409950729771351189404979681075224014637064275029709195914492684315637058362960046043466905518529109421956028662046366419863495309296202726550938661274988014809335262661409135589724019538326313982044517644426273933869512228988392802004996827504377854561897896866174834509527602485270876532281734131132514830488915864853767458996312179654712274635960687650891857913179633600225571466145205387333868300760185910277964904723471940397537714137773521657392370833402489068483110839384297336102925416259950806112479794497328136026095424233487054005617627543495888518077505159961514770239962254550549609037365253866287377130783018323792934225956870426486377375020463250558847229435667374185479954818980360971624249506850353735560212452719479921545530620104111012620837561990723594440956358720666572091736324690438556570728716777954546725761748775654495159400882104017789525516152838406101100936688681367375379831999627122819875403127712985714480102590965246839310951114349132763502106409527691585147005134867063792618156828678797899173202259870390516164488892633495031725654220384216600979942489335255070472645515881401035639006035934306165197081920452089842126484092283064060561716488645373128389249642907751018842508426874745891360994474282345946142067589875691499755352770046809585833771637140080279309227268072950844260782990416512113690834631576541759098697687832894115340455101770698116603852388633018939540164903005903656672679207407857621460066500939285365595048525439555376523589819732621296181038799490811060065422288313729969376805105298637713007231263198727496525025319572402706275967939649563013469967853322711015695087522898957655986674463657358772300032834094151422976712818163520043029628058928007472420840234802999148632749338612319447494134197909110016505367793712149480894411990935525017286809145578706926340178634344798906727807210301094960620912175821907072548565860634989848522823991902397659843855725111446349360270999631987141635881487659119919603712298624332266691336974626867601979591601555090213711526047213428485806841883301318441720288383239314237359758193710972083640722177957537437917233050374137928925924225274103362085143293192023118403700401356859203985383243085730231732582314018108897034305224554322103047826207874491994143690940984310303682130173575912999125735326482134793439098020022108933646602713248307708679429063829854457665019870766876536213504263354112629480409653904096668842187139065991987165223736729379683284693342796605480437068829428647984313634655495629261678795975226897032619002393241757204383969494498091323569084302980998454833289438335190480048450331812402806133468391922126315601813981843235301060640024375237000064797975925325971741903191734000147218025673350270888856436226741695656550970104706547145283471635260730157036688439182007191918705804507408249661153407405004267231759001894208497610372564221462067827308118293663460940210587220345975963492015330416424618129071120020785264504762370645987529510631159973316210168734355579090343976878720463275392636118321662063825798877170747283277402387977841208464840575577664982730964471832149832718544507047323749741587372848347260958025393023483697153517842914289049418562812752493259124102026935215419756938262752999410470891317204720294365651598401183356494479865851457169558549578703494144591819692902638849415690536848130677738633131291645301920385456243326760196841674702191705002209859166263570706913946442222315630937078709473007317004058042804721515842443603874924457344674405472973333970267318884763960341403227063788730205204676274113332218711340013992479175978010112490216682450110153053953439541110288757475728016443117039824557593518267419413381989816197234556121107662643860444696928366523657833948727671592340562616920145382887060326602824280114895478556507296778307679031227099050423227499089935105030154966667876753937010564779779694683472090470432955818233703068308339884422177114834391826504827764358891626292948820274638061072284886090722228335257674843582193498215332374385143572222637795551882265558796027893519921417799767017556271498301086957512881587614159559930918732177710550254728978169474259086338538962642036599540318490119309915299558049372119496385769549099147512779064173096835643805713434535057491085248785768018977720120541418940455508963070689493471190877682085821261823318942328896976477241699868254999451305501040352881221807731518103625893086325505117869567435312791514180750026884858500475438054562925299238335888960758906405026717925580613667761437115426262621065782334460643140648820098036623380329096979974541312937340231277447283387312261962971772282800276123729980888993310435069113300360269554118649445900721387462178143426306591370252624544230182773275466495242551758317430698885169405073863099885642439972146663880208332622903631607834718011280238836665683598237985057881844099405395692319218370091799245336626170085435779123217883640927573436254426408752354096654218788485490110513285842962460164852633314012802807006273591505912314992807875646542523142461745484035027948190161861247689996144244331766806965725805508810980330414218699137489977728065939993438492830516157478835304122451101231098408659554795117313371878399512508064690964036771741335406842553733711682268841154646883352350360176167822492663010491340671270009548071696229661971314231110394140418382115524083703176608930532440439433246952756083063353996111139402654582620731847283639297048893701520653142373656699641333433837506481488934458927420527651451214111737684409420027957945963540445997612482555228293698701047371196066421117197821889178431032359022968052708755763083318880383358859397103041933808188190494838828934951309208415783304847679190530406826734497420453679991584195001103422031405891819187187918084229700552935925323940087243479899503529555061197733091692001395375367611247426434907938558736691623406113194264253606148254827604872056474387619203613993129609673602958830886601437554618034409371598369895011738898600279002247101213551615457422141999752228312767211448011493502469995388116806004611819349793079068721641741492691470621223149750388811557102416795088773235787114879408390209106861579321453452743134709707636098673882159237099916290743272016504928619907942978034688399080925258697862523039953295258152388481533404833156322036908566501635027616311600843816846112480141492620375535886360137492997077093335454749507071712706856494370398154041284721008494825434829309413361795187691122977372680834026583884187831657446030242742570436448667925865578871008542430725911429967944905718153410545185556652296501298133040767344423716169924216942077363446320526114904510383346958501056977094431411999660440888617250244780465968717841261200611129968587660351991319531747800269074918394832964785168773140760807157166500946077517330261716520349326694139845819151939008647039405981431812358486095410417987474146160555019563722635540669360154505891592698028547193429183184599948143040950747342833432698585015193013658905603435927727933341844051054978844869219846926460601569052205141876674280289862801630652500415671513917554983019986582350275560093961691801046179352512050976892097013338273197284176873480935915274466525157634538247383336266010893617481054684078729908131764381174082182010038303704345315895710845839681583345796213846942352980022835630357411787108181904480983213145924684523484852490150059532667958069200232382598400964924863453281336947244746895572306029380657117611696301714273989592736975681525518380917733969423669905545110230136269362864800323598646451493846996718700490832954288810969985597324204961652242193932034249364480476983090675588336232977538758287965342451369855203709689527298431475958004863508152754548153343261577761818891298449716876495343886349151212791243914853281468841001986690587901808262417740815132948774492803788839117030281172559568449336784659791609908147599299723685075965191817013522823533221147297974322676835647306789703411332830519647105290452865940882484815984861598458067868521966805179715194497410720582385347644888642508427346667114138865083167396674067403137856311617904760249360559731981268131665545586908680931890108686525294302508051681205243003870761247522605097366323322129135860737422440650105563123317605569232743776885057763821143299104578784287206382390230882462564727277487512632571193188508258818114596094734611815355511062804079314707535636890001155477157275065249156298372518903387101184467084786632541595378758783916656451601931212785668831809872770581060478453901381178759298071924848918726307149810394579250832835308442818555082322077777589885091103374905615826232020363821232781032699332194765698114160509392303533387695360144330094498681208749920172985984926760380511443126116024352997354664374423391650943666803312053050487121618346599255880683131004241954132672054809867615315097418500685668843014212182851619498837430113863583189049171954201450690944262291462627540547237265554707643024597881224033071712987083897972902418397745828909172461614060703608701876441554788799957354101507572570980702750722602652614110343282267731915549139646277924503937052774357032281631495450803531284064235470292012871242629119462980151298762739481830571117590275358747428215031666021003122106128147125994246896961765759620912568076471813613854016955383429155666700070224722854631102096285332240781047601723764042140177888464234616598893164429371067064377207140735809743247291651125436390549715652110431950259904993830166216234158097627298978085875748615877832442442873906618344356291514666523264146129291519375763580646357907860508406890820401660000102884974678720082681349069364438272629062643894593841828562902185919133394662545523380013450737117464579745831383175297116034948863194485991587832731882733463018031709407648070910175889717661829623272871169713862936668784256534057789169566331606885185319188740189165304162207244491732096961816822860592947171916543088285068553449499736418729247963651668355116271452739697157006807101907133341479418210336602045206533574298472358220818805427785640967730248431275796694833095050065549148988053412581397146249137753115497053700520354010932453821073241203437996757571211867809615820807382914199161195322205458490649222299770752779885217139624297386465546727974443772219136498326769696974509074454636258317623915494924937027965726292735024127167755442069755374882061587843507875515310442942878377164925896396052104062825921754440490724262260279533787734952504744381602086686452639734440104375588762225405595675871849066567312425380520611844821295679724366884846473815250283324975389687507041802126833693484968061761195415279162399692853150328889611760296196557571189723011287687527812851762293058757512450851846834086848543710533843642481204693860468614632131243656555978794036005629679539712617606564611843621203710134242128307653369147778006648739263658394743682779032128580001377096877367220057154351474573795252519922700575387564262886600352344233274381202639918318612361868608094733365278513795045938740920802406091179296111342985398926625182887947755232602885949487998214468928401188421912674613332831683721547405462776747104440618465558704059210247529425236430144204049028540131691622227419824775683352819664249312925405142001364168935781667854449922528719952731609524750839100631190493140070430109054268729398155589812342327097169521536328382077930431742751144070919425676787845215888789593985022214663631874010591717444753235437609457423430509313073759837270599292530875057377654994092626092797819953013695834859055962913586990034455523310444082816282026287563746419865344303367409290095437833365872954351285842768273298897808869918397119786610744092858694288851421880436657238257209916854220321378466793133599807879447982068390702337156390871715363678210148773777571825676795790855535308968395303038938085636780232422182437110227973465232342647235496283681485906122209756176428663844248146932235390350291991746180995268199902906714225758505834648959294766298660851602336262853629332025624121980008389983947938081652341627991846299388912270999293075267251471340712749220927733668900078013415120368259616681097277292647255762509709027143480127646418194791443843807044224109999088000137436053748903237514268264455658966842493281508599587003605658242583690728170772215860953514527529206109144862497920122517093199263577197824091189952009239357704278023161020648438627970088993670482129196284402794816619876891840480446840052117541139892314686167056698360612725280529536659788109734958760075444924607825794901360894718848365066415576555697083004357280863455669148272205906772605822471280081749713009013453750582086633006363375345655557364785594568228176023556021956170405973364488215538822250417850532053317876603480153646598557529482917690345357410202430470227162603021965990531944625279189161320304460172584426513084496128344356933007383290466313345777340335562041996637613998898336702245769932108051765445569061335794864648576190343436259161526171631193296780194462041711895570446866343431345356441611002154102245144804718922037495538534193522341884430666859616025895334228912100224778179050952747399131332972117180453721691518916366006658087701808654661025029015791321571484637233074994440496709825871957975791362366957594453371909763518972747694813166699585994866420130998266625251171645784384928998983352911135074815436782336238601694142441599376813293995919068371288289678417165338853401383731383929741526967878754891235571895561789685746877153558367166468650373866201681897167310524072006628788775739189144149014016960239064580021863024291782773419434466701222372815393530730237295722424141294456827257829449208510419818667731276075017270579217513124923511138294609500536957406149992126539591538001504129733528587696531170375855608420050426961075328332330851363232187752635797041100311681635192732431933033315775493911800988853103136846330702182886792766150121942388568033071326016649724779568834542086381107612776883055534919569184901397793477449394035946795398481112812278387812095477789653828628209042419196235348869198938952936364674031698058122011806476157520531508607420170574165989689724359493006954777140829323299388585461164841141640368508765738730749882141677392817968215482651560471084032543600322870898004188903152997568925206184585165141573940629981124039234446642062428159891689748281459077255034224874178097458445485157795462763988729544519677861313753270493186178549572407735734793168445329950691012136359451589537179380303143266150432880748055774125836741462614497498841959206329611519013764214483863216304539303603962555712567075455332126976904908640892147571766424261510847690906397128867188149170123539816543803533405278366578180317208337627035701146792058975160457550980532925231220008270136222048504707287192818435185182193718990564562427091147154645778877049802455675986440381368021165850488986958585648480809575664365117029371259498865399130497834040803214801387131825665866862187928872094940606122156902414508329527963011792840044547420991969401027248503387885791279460091931763348625300006234026189702417803733748098331312666799988577671088268010522737894754638603978632711107953215582698721282379349016549267231762254982821718841697441253096818713411206531187493039850413790600863704132670043442976915016763144830624763236000463570355548980215268047598790308495147897964697272480312416051958307957913308558179924806039982782232897346757122056746071805091890785159509031896897051820117876579953664150736523310701704440455201025996889127728599167561837493984918506708565749444154611517662453445048146490471491004053190056423653012571748012905431831836810695877186078515876964462512305063860471041505220647823722047695910591713004465851905104614477199385971978057712280413146038645968941950073006567173841058101072072254500717185980695468689652786261824534556120273369998828114143717989433813876430827292576626304775166733361890644796472795555956583679216977756160625312183649703655265227784438395220496275449309328522644403392679969970703892767571315729716798333675451714337474128068652640481317892916245011233895867561291514545784282872537383956343151705493799111744920223691156229965216023143857395630682570817677399023208323126721822959079582755148711643229457433083052203214041717270565155811436608729244514037380443092109333380021780276201544260939264694626566796742643932847230728287070123243697196260349131286692401242343419642336484167083861465353617762117444471853217177359882330666535122384212633221207212465580562942072868329789586261767707198959149220971809838066972318810870647659072652039905645042474754490391571272915114849208355995235494369074570408590320535149218041615069480345911006157885394168654112404961009444290817955391554039194790751010246904370260994896026361679281264947965584437056695696070577916851268400301752501659322963963120602404125443841816832670578762776088159605325254146925110112797102912314807517651788065985844118278139444345797174377656911204150875282537676907219154500584028309154988966977833836756409580529351767174609153399640736233762387202197334653117436576220687552757914972414206849209793019148489690944070858395104618211413164092861476617752287568907521012195395009431848733691393874910933528430508070494506607011781462500754329362405822795960367883901863526811834785116458661026860918565251503487140188266278524835791307636130031757982356608812965573667248290738972122694507700731388352877991928271405912454430415583186843928558327963228472749440270643310521610919832192428548555150625502415332410320533473928930995407778772522743937255025567808671026626728825248947589411065398333829155536987312661032964067919880420246595796870038483620458162577802755141216903922297514373962321903039202322847181813481049051196833604057910522683131067717320386898210948835395710004254711111719705014259834137914575957490814930325784545264531393918732441086052208855446198749563561132804002253176425448565080730786412068545726915872187821533480040810064343290675254367730023049083781685956781866831235443245896380710574038882799856724938638464931049020420514565157524806295489462615778015031955697137594915812188197426023250468582881352069454787412570648931411379542395188651777630631154318617860807524950834954325839510431064773097551436429285198246587404856158830226874820608715371181437776277538014798945235283214712852155640557536715497261521633798443322251934956617537405658052587789279188492572658198557563748127058747110071353482468901313378451886859743859866948826258852772550158630302021239327131159706350824142719497710436624521995260160298984529732960014997665164786813349739669208721021172317959280248325491191551755640197140330360725794653885367194206163556909279956804821428001993877303866185042305213066691354786596188096848243894939823424616283272466813162992398613144863495294594337521705449832939457753598664067372892380369080209035659701848010379060902318927823294129243854215033709811442270898591145581253640496612317815261495879153677713188478562430434694924917694025602327862030901562080625201797940435761036646817391509060862461900565475503218995800988298847100311444818601052504845062376242251236377319995203808714772405870092876423725422368277791375070239795470100475970725024667065438592310484650890669250527612599052082172278347897477254183024767647816015111322573372703853634738258310649726798630960802484381122585340813229765611842107696886239294999345298680518070987578275093776260537468343293407905883236511562548911668581387569436832954384546199076318946527939749682062675081854115919930546253140481022628411241958290305978049173790606287359492258591892753166637952289786211172210699388968497906885895938957978478958094083443635434054309251667295042644364947006417636444242079345774158065263577338491166183715077818836943815705332935640882744470744286015888435843607654356331530882393526289878220919876748351107428812625458344852168627778570270149656211669824606552500474198351622282542012806055839566680102675099523982175342101458961596887672012835155141690372045200933042239968839513785681076868363086964711765195733323865377842992325106166149990855487053307136174621850662492916200803700626921473064133481240264470777202929244099170896891363532098478139470826255348733722801250614031313812067455377577720094365081310198221784536701940401521061495617470657878313641100423300636320515600125674551093785864210034143382600928671853101315487955536367063155281799412287698531246016916618658954775314537294532647227811705269536647370019414553467615532545110336557625603282598203004632216302745621016129681085868901845556754562562170356779962625280740038023238749534839434404043154602990586531728077318584689925296527960692823718153518554481969372383656524359659643661429746623967305422783700782216392053714008133829319078510303643352010641842006616515734259319179774737056155719805530605906384742612093848870648300323122846280718428527403693059903878334122484598564902507834389257999403206302421432718382472193250766657879672226804667753888792848513140672438085889544774166582293785909026781511614863779263067324796678934643450803935110128342729939695174826798342898609864830354412586929006087362264409921248125645859835935426749900336246223731164238205752010235594854812192115958304375997786661768891354102305557468963285542472140510125295642937729951317683011477246956944992130499688872814594697184062789954544838881947936868878730427629250456463146701171781540916958192658187831634997049793431814797783906241775111064322879629611734246968671984732676153862227928371218695044536923978344305732517100056914264455345877464402032560587722323085761999648334137833201679020561255797462142697959997979553980489735216758367538631958875065838090865971657415615300328737160748160608294568662369188419082095133758083621860711104314424567528745123828311334829957806823485379757640416829240161272652672596013682966318230584357153863384006080551746433086714406887171404867890338254383549948409085854010111566268694852347236023216210368786993416374781722509755600205325990045506618054589377798647383595992969223863121123733008343817854867702353872480820267975827317208684953056662500937058145363869982251147838849556883200807747655123958220499700601872056411075797855294724682651173651111219196089232451403292734140390333775116629868485280189996319912821214536847828169608814642761489543580365333411429036043148846681427621292070725613791667429632379582442548369059224003210523817023483159173916096955416481540847198159656937785996076758940952315392459885894084824278708870014012959623729707688234349256635827435943681179549077260920159430898575144238117911106393325079894502105292677915651483897006714652104669250070627545446869477076534083059420491430778709882404743249860205427705682092944782217265547366794419785407573838128540623023495225731505090945865875226452054078644163584765519341688895685129174501791204887051721368862782717963365063902660113979069515246756305663726410983715030939938311995709900806006510338616594668651192179839999963436198192672995297603874129198294610711176782021385362296088873826983193283176075179736478053863355643975073543020894674864067748286642529219098246978125254947577088694998253721355851896109238338337497032909089556628597499147848545599906638711446195735419404374662166214556801098436585147252215479499732190548763307416641900342440999905448930471437975921129223642476717850072232008018181270053405623305947447083735322265343223401111026961355639790586970726314925699392321609725311490260442652138171915359575925810270951740704763441666986775267974001098457250279878779617860957018863772765816710838476970301534473883207186851809223416041591839475492922504899108595445824719372856851705992443564346690822915538588224608496267600933915234353297042618289288912799721525758093346166751937080384663490113351880019779161887765180775412477099941548783695492766592814062237881460569756182010659821934179827556535134532911224368658115334831700974405346428532482434365867184654180515446281235396681799068188545568042383346875399374842308368374989299788760272525930530548018449010509125429651811230670624564223729123680662145919936653628202862059968425513093495243572240298156398831903312824198575927621031268742043756212420938733406361421695428640787310574121137736440200544024479869766631369743416159300489917275873605981691646551976312673705741457570841050249697334180172320929652445890807176875390560500863665298933257432441740104149355284752506247628242260708206744263638377366045427348872481136206494981672192960272251977837187886329637224412432335303711261601266911387834049136617437767353993555931849252932290262724468014022876207289767505243439901618243059855365368921265926776549225791988861451760717365971155703248673932200744520244211306490857287795395051509354777959240599101367078209825238737887720128493806696264906966405499473505241577307557508961340688971218062174479832918106900829177279696744330350161304776759376137166677136224790708218251967211049832064191413492939722782527116331920929912466982369434076628922151791650248082600088446663664383824651669370291376656166043362332729485603743750298831873666981522452247861153222254460910574160282689661661671163909920716155929524552394241108889942971917187044608651168159324792596154050220710820562796185139152499351958800977367485437478037257273029838553588386889622367843436095991550253459882902726683847506916389435585831552966283466194167049946836692245476520274277147217766632985147201556979144496455587284069246744904409820457432411109698120492212888101146805691958427461322871992494871973015760433744750633139299050799461871762562013139678357571920640065895440609662081277562117007200910068874888555345616259473275075701909907694380775588024500557420264707550336556524471621281717649183714331534185448677169896161493768517772063423566407151967535183749846547482057342697004663278317285921710616317820250889064490622395415636332052785083623390474230695492496014249614600825434434144044357767425054681349284923189180896040104619188307356355482717347310695893200493108750948592052307442151428772278652772039240609369605029775833914739155351556473362319726696975434266370091538420184822931355729816658756504645572310894581337048713552148276322934222326728793885073708267349688072231622864706272521907655042643748185790404666260374721224203672967534549220780415614577795908581557659826568930208428773659675082084974937187112147737959076896182764989685703657135928013552261812490082672343555573398391321255470695958999164150896762891607467712877210149681006574984497573496394850270601129353496622297263232421871207930411756164450990673732523311953827588880924161538687440378262399612031203619843867008256328019379316784221130609816750355795921305904594262058699621337025801441195495989020995994564371272662794473114918603460326141525052419469496673387069219432056090128735392534467037834812796714767614906159274594853648007303111465331494986445553234660576070665939037221806398211329255446163192809147671851121281910725041886279827495094901113578022082085381833461745482842068473009976012155903418192500075401015200332817526370952494911326405943593213814795714438958412019313528466633917051424885238487094888533378677455282814656775869832148755110443836971901760879795883946883815308441637828493065967575186987714782127708183005833132631443037976393393105357753359521841283699525477048710539493633273240419458625948129427554624897174679213013457915451476435508628834679879616781445012088706393879625255553030117607753911784428492634804512136828723966244423798625565986678215048649188720665401173656597717745645493294440484413316529180209406269718016925669677211116095215429821865658674235904808422662809182319888270172407717295116611933021614848532117754093090017481941583454170232252588134112758419242240712617765344648986108354401764214685360946557821161376739101368956427830712364677413826297859621149297620840545842388801523475687936002968306890549882457544128122146988486342805416421288273588523717794564672859310217459963000757855798941888700541291392224928735229814496055077027021712636740163347753445068056236866163170613703403110105678455420241721010021280934584819674758731527233590240276514919915511161194187126079926360288296362415596412112771943975286639338132308920497853982981976452059011404861154006987859875431212105407170657470794172806794632439546714122623602727755222499235501041251691661623491496323940899396061714426126187647756753418924582994755562828449555745763812841644192173181001697988070579749678555010663909656808546627537601524824718221613014037427380194017035964697835722114658319016492880101518828480757230171007605404039357019561624063150471710192532580459362195528254930910544534246096022533888120786470458745476691824067355308157467823806020282910176494221111402841445439686144539004268073239911364383133386153987803940872644070863171116434070091832957965983297630792695606156249962285404920695357710864360137660144713776435349937422786427758979620455537760927415108948344072155323811392032504765704241305283669866138935557291252916504073015068650713113932851290420673384785802220712620106035657583855345085544646925304697173300593716983584101867021854682544914366886200870342665429479066910755377962581507131415888438860527475889343695765629402754673153102479561654654422029360885523036094201768888023755026607430715859237729250463155967144983982796201160850830401999714114206506978316038008042400360707367868918224323151527497926658768895403236538038796329387336713337603138669034779022539866080312312657834944869565503850063510032161076579228648587857480335206238522251821533782185917925964135532666669260138097967801507669135482131160689543695275226613148539516145261258584855656484047704390604701173830940123756835936716650044841978514760024836709802484726857493752386363209516491739214240508820648924407260693121564667876610789224472183545320943857609435708923270417833335945500489937298153301062364197962682482921493025165112434587500024483158307510160079094706227884604585421695278657959519693964792368596574714451580624618244499953553529188432394030273839674760995799487297593998655970089715838543334615106676741636027246896935349737869563259154177088368006319330063032488263281636603990821629829964794928002948783612889235164976784558955347333940768077044854914700538765994960169928803191380433034196156735811641529524966982071866346070898993474571529796414128181670991455288033737645646197853597858586451266895900301417562349952195468635317272071071314519923197602394726483843834918907007660477299028804366469118459856324166748504920267478736204345819713206228508849180826772127420585922300898769969622075770554758442756321953113883562429959160418789841673331418220102542255762228966422227461319631726610146546139937659675136584591646768059150931785498277161338699950723213921881073499825183920813253189233712905852159223075298842576511092051011870986913137900556205703917356832472189974298935925387262401654128963819999212561637744490391341344268261567288558272003138318723986724767358848575834595701350914817878305273729602410560549216704121599645151557959657728218314973826515764206745241683769248658935395894482381135512352947663864110658952347726932722856766184180124665835657520757273495409822975613201366730458037961436813643177220294820353846006181701238491063165300413768850448589594907064109465751318375437886654893068741895377501919898303245175330138031026187023340831407731160565350619519659121253362848667957883572289900127986068270461474646633331295041561410602089845667218851857001514814029528771756565389533146712968829460473734403972907022959099954007023448946264953011629889259652611820906460106859039179859605686395499743689924590830571463425064571362430837388008819215652299141159280962940617865485327060038899685224690149413935375518059435338486446815985579542336778593130077650946503116692549231310367459274274255870074797766709253458284643356947830121748474968420284895869722829702508836133923455925099914570109974295768534351998995263591119804484026732461335153887899583673545324136847505104177258841985237900825008546551551669740935987395810177215651584398872647957703578804840811023507447816641505589721886672007617594267713932257416850848889169592438437631870720316750851747978939551471546229973561936078174176213514050481859312159313139896974641344927749179441229805182371224216368708172362039135732578010912673045820290501144523754628443368530881070739861418936264011596171303694187375991984358079265171482445839626399244671596270682379663285758134570966529820239010343133377285970834651465607521402433074690518343395022756675533985287341946308069960399627474091412180136451275960854029448312081007663127562214555436010461316456586235391334528137308825084867121573865160410809255702819649157205682333107858212911912387120374676818239487896954479773738666039742933587178046775787248607754593499199072803157812700686226184097814052695727922290753150689233763600982453243821822476952956440784672913737203932525176586568592964731635878174388328809974484093457604735190220012976505420473132903312748724725816984421394162774896132458201634241561467543935557753492630274563575859509722085084461007869340549056832131464447569642840323110830074251723383649674323485378202964041184250760494948296593321424102824498791937583750484512319996206913672322305146261430177969485093424598196586513170553128525123817144292160190333270281019542259740931250650697853500910825661577067676023059749811108760792283106311074228978853138977630379993249642912883450611028601919195339141461194781369075327346975250661381353560089276628074056242069188246144890982981494700230212027753646532853856138049958361600213539374368437166481789678717073314854917825548150070495887854673822381295977471257594162251111343004421956968335722381995192400702165067106748250906829031679343113752942751985107510100892598912511784030905192093455258695035010955321759886033894069949374047300823881864027142930739970302503368499092253522795650010072116509981827325719646021557443655705355015218075090707842251220732120564088506580864632926122227921659323991871362582464734246076765970377568339538494575532474247757846850582295101571938651320974667570225103033111974290746400983419903995071364067798163079339678353577437062433946810097225080098056909952866089331016611076542347774211696287795188452598259986649262590853769690206922552625637899816038201977224665899570127714072831750609126732890278069647013789732562830231999447221879181227165754366497816616020483447610619995938086077321287166752840622345519964049733175367561588500352543154990379738800972428405684923224613466052934958491872706241546001798826971989772753166892915902293495893133048257760501275644328278411229913255896736716397294949819838511328682102534825273715552943957379134306281062528638110107582196009465294532681736827294536705368206340931207437358895141636026186216970802193722309387770315936308470943383953200651408978138569517692139591858835571549276972569706442013659786261971052770326655517112596271373179814325619027013082597668229639267651460207268206651549768456834477643964435644818704263956979656304801662360195273532785831716595626554141206796535757262143021649787545046599758502030722544810959829389194624095168895012954491549918594572359498000451937492428416311723131003755307908983056444247075589793919824834648038350336458626460378952049787563283124312961335115961552625510328119151776844306780913989916310192784340434687362692696011444509308470061734327530475033216112663335867416096672651002212087860232422494456514816769828134526438533047183405144130556630255221907116906759723291178702091193026711580818471540176864309438921365995785440613630234396179080335895685287190254948222637355354257038153815232392573404656183152020372523326369559163804481865900573834213799445065031044162265934387568317356601398987924085653432972469011492117027995508757833145693844456701652163020397011269032984762825985230938070407895264317631103118742253138511276924991699624050657280159857507249572328131355018302379422339397328381641461401795721467411193845004294698132278423135731939192667516509090567087656552002669235082269185578153472089129016110107201331561912142749350754654965640948814236101008148663855175449879121098480433228140837046861262597985792734853007198490957325330662841581535171293745449509189916317204166220569797158619266006291412046599864766976346038427298818284499652330843693471983152191824339035314563466041767425551625370473665246601048513854769784277724665863354464377990263752648331695324835924752589818216230627446646091340822864709345169888400718457010555826557091015146418991250651808247339267560814152692666081412323004066523229489784864881673673048082899993055055143198318172645167034653856461407055338061271930418272170730702595538885803294207358967778912940294974825738438308315103959198754853274592828501913310699342376925960150539592874601129144000841121452699427865371920828676680387131991677911102909946665536040295920488324731614952325095020265509071716427460691172159387080554207036718078021389903428892839766569367651655889128737448293831637305389572084895495868526617897026599042812003240601886529433545239275955167058063826656190771121138916908569826263922781808539776074405260709829268951600631233199646661583091923579845826375547494897424775621189421117723257923179062116699452679772189012918298224732835048488627661012195832729393321316198888653470514197160455699506401781108698854987551212885186442193145041631975559324628406942611770008623930440094270451660016712199012541983779447079109754083639465323423822403133705697646439676526696945210206654913454777705737392649501957006675802559635827366328206017879994305710136481673410876129542982797420098382079977001713078204099868630474997725738765693012201163692325929402186592017046868876281760283280069769236475781100451965597512740901242486412887381022128166189171805955201774663705669460495545446006093920692836301324796378525210816132721923361913602384206522969333382059205539341675080879372181385626344745304799104618137372595089572536689321001642092769921929183433636769368374360423544080622379811406032560913556404988067131603696562257146337011156168844948249899922604951704095067279213048442013121096625897414982433316799650375325463426244984664894187822939339563405401820098032935963351919485756792260049658673548839757788893585019532197261685007744757211028672779714920296837221393223807400389171717799597535679308830048505112541535868662632729199602151841660014503385589297473297646749697865383730118010261375711518534155600313197046104082129215905842936692378393902541996886723622295068256226465137654007639511036752691179180449176618200325217756444257787895714197600501097233615875966196841251674703704008342447381264549777087307052390141364379275881967144523552867287867198596722687684949690366364071166583939142913663674587245444648886363242572150274966508190885391868111712956007964549969866060333302029329929589990190682595331627900334354579796438859031920695024702785182390030004383081778953541953293245390069689496873579053094643261525790904764842227880505841540125126788430806052123816690829550392256843700225663201227796502765857799195195710451788437359394845962319841315537170758640647660520095109123218090698850218579028843816112354046451284367354598483275205679961162468440318098743751431692818925920827589288476852085183270812178817096322327498682868665547420980546113632892954374969116550657052073060675559686790649197528527012572548029555643566594399813626844756869047403753056719551568742065785812873425282647590393705969246872240166021816719397363589913398041766633777585488487849030556431201214731559969105830951950456012188583696622276782965002661678450719878985499732357107829699307325308103739312339375794872163974133635406209011304156154876579914373004820888188686905146954060657614947148585730045755259550029749579272551386178426827570473894476553489530042202458924604033698213094520435276401003985705098853226416972244839544523173135648132378975836536993354558946558908955386591869039543617351521382472052419073832447125900822924212370941986158662065829935342719291403549046131974211749517272016170055374730150682628604425542348295580347653697746078872970033547309538749183789854904143545329558448061194636478735796862990093209907614320785226424308259288919018560282790734189590552393331966031896172991040166694670270935034961961657803900186669769274223844372667380752963305792525815452758945399390421629896790422733625271668820576516913568878742211438734661647959617985010437209188800133031659902766230387141577751719181977310275351332324166525948162986064965259312114681777341577367277418434420438463953904611940662428563432652284483681090209713688702593149574394687746862000498719561965307324292555383709144418486908743292641481736252371779981277647150701499762278368726110578241917430286788642953172618952848150602372342607324235223071264700725251583628189651454724487856815764340492366980767063721300273624353342807269701371776420166621037790609653813830289141882476277427798591588259370193132927483271826976337010883182660119239176208443653692556444250027343197779766475670576194942092211659596556438016099897959988968458813602118375495591276765931854357931061566166646494711796488851869869388596935090022440464037016894512301709905133388989701982490164976296982843824104758175499362507146073719328790011807340173981987991494433745333476213438728129492948521151432219206898124531495286145981331947211272626465954987079130245291070242590314137262260774191837568054922068918411988320193577441436074741980440522907083600392920124838224538130421101763807883094075945996010836411219881958289443995845715240094383338617263679552953484920853578175916610941718058767917221584613505639524807850205126555053858799046739363733874637480274787464442281189555925344884797783670852489403905431791699783269908128831380626000917513675150856226356380290129966944622300032520273459951301660521198024466600652238872106141630122687695617877562885683659504240085848576861095415296656518904303921594063130832187900692033524042092194267353521804957377277200633901695072809127873592199194258195112047085416999922513422257891802999588415919325990940828644464458270401677284216495429822119624744941475723730907341755320981455198662953605636685898304252297570186616978747651643289916837276230359356963250770155699187663910258027117601393454946204884355718301472737069197998264323245811983906248930405983776292069800773321160434804118406656715200415716415804544637529109849963427451435906631181699465516229546301581443956047345220416744763289889917880198980886989771527990760797189613848802881185797841209835679059903591549394924166681557433793015222632040764264992584911294412966864030589235888084473709629019872166453795311099592318916597834367080018462714665312089508035555954708265114479686618358954866504726968171929130827706876817067015354611075476486256788408417013241478667846409123019579313476442277495085959130507203851578504398078790688408105341607303867403179580161009565737138900743311132050339043842698469400999722866089827491421945593625937598661663720246146171218231380743936364807743939504177851081830972387522226270017295759163880659525215831962676915797083885182673306409284634138803183750664550683595000458725994957476403862354343871398851824673240059476394410340047983496791388730803167283609345651190649966869013394363872471621133867738908749287415472486271543469361468629108375769030955058473219854897813595994456432894313573428004091127847750432956939149210114705533532818737713289108083434265397163585313287046577145811768477084222253904771454796934809376173204920287627054802949269089510142105435455171920532072132818057091512992653866894919473680311732519230813298359092358135897320712452856416523224829655974220913576325012280735112439136562746277882252612636067045596669326812958823821126662876314366448647659175670742583076926857464662195333928339804138496445507950421230292557394392723917449898425063298323553162494822345313336174386818931620344766568802693017449404301134125392565773902975543238462680935588179055246247078568072721277955253977117910330529110375542242098871346133374449069305812200590897624686713945990730774240183993965460738427541958511974571363870085528199831119332683865425454201880798644844945957558904051413161087034575183622626085868725348634192231958234670430105812478536351554881054393272168366589292687172363848165260627229519091657783440778784831187398609648590447136061168801550536297125525864362683063554476406787839816648461172568752538828032918808623762369689044265884721211153609013954241577380920876739925725686174700599152457143374864650071039897109412342134520347006078632269979495015036867477127741026857382012895327239653190736598154127323881472649578495032417336418099279791132499245210433814407245133153095392654188948994081182960079321228972575207822953699389185714198443447713229287062580411684256366309265203357559696779256392904736344805563987219212897906180255918766209534077083205188663590457975005204904848772714971346983247137252313283773729177829410153583519067620192568388740329910264324815648734996288194311966756519760748537066782781353634047577848034865323455782522182776841201930511795798211097971599254630077596106635015990171642107817805812948455598791728855543458392017149574128323951640177961366832292916288273503408316339623949151648032093005085472422405550836246533207389217512256254392102041246343747841728456954926903002660830066982528395040335928720989519565150156364442979547579990774597479595771793155648161239525485515245764772332004261957410710075584106872230742367463058653336915528861198149552289343261482873831501988719237664647883045247958850372134327807175102567489018831410297279859492391066482342729627643734093013769500765229401955367592826569516790610985115347329317961865696607956786145610646929170140177025940712386394373426483766670891936771497965050117489184943870725864875641007781881015849068417924018217384299667273668924332137597290503065789600510312703369620005044659651762452194320483073763085498641882912312374133272923352840178480288897186174643155625670660096856465383383037513945331330126291730078560438683767460974703195883630486306019387655024027802138817240201219477727416723107640404946696673793263427237461243707454296500346298348770556707864312014888417155378302172081625092620073764421128535865814445494635374083472151151787563955290399588751781017883430001466986100630995892648012904495589266063449132154453849469716036088457600119450431940233772049018672177949416813630747696754457372181507043564668688411592341718287388956102262786613379816161979066652255763385567980304567189586740516605082622437665373901152930675251832947743391788983598253748596449524376578482563765058512111119358936870359539437512203206290018980488359543376589136946003088807065126219010500382910376851558854499414968015495556798760969464989663213325842799456978898672037427490276346446476602419874162507096554582300926640153314393477440242551804478855379932069087672436907857590183833484708536259713104444949730802117720408832049790233749403411131490776607892714699840853771439717381210949916076068274091427122174350755447390347010916456429581654075283144591388568730671703630257953251675009377128521063946720321344461362402433433405844003485592034913187429351464652603036611119133084113018684059358674737457138302661061394800903722603645020898792528562015120992098886675055341599495348509398009448395296778730301670326581175593921395725001462137012324719492471895166346466586856343991735773446874338038536554456283014209759497672099120575444237450877673129814165474820587232500408064027449100578136244394761617607512441303293999685101656328980070922552926648671861719569984556460042636471623183707644206123933358435498130376626480611325991717492740946930621069383378200886627793676919953666077619690059093495706675959116682759968362513925228846745647278718848655594028508343640497145096653926048843519038672503024744357960907498508232996154783399818984657541857082457186316480774114105476380767071557500626662389782042483781891490950002268396948405093356974355957448747942646121323741063168868191966482662535692330703560197247387153931630499728139867254208336714181540960718381135139870243770396055971855455133947361493888911045842862776058840493516876047266445301006677849372678293128993322618662802981646944884542568959507248605808422899266004335907782866581415616412378658138300383263758311898999792378261845709358847216436960318785000657070749413033935659245322880884460516500950612973245967357750886584087727010380040870289576182188768221626336590857611293281247507926883174315962699341099510368242854312038090842905028840289695325659943899144696756203549628267009609173776334942936215275204517435841267323505199120782525612136328177100744507410768483686211650462958124071193983783281702023950987699802795030480759831614595102069132077726325774430897707206079451279108211699753750380945282993116666219859243389493268387465341976129445640470839139652604111924939252435259209330213442474964921228658673931377996212914354931898879890760494759070636924269528390210224329979415734679247001687904090545256108340019544058035263120438566807193790906209488623679220373904689994999825127592893176510232399676096815360113226224928052215963587977060359620699440804731678197068709700756636959087670877313362179685442938110962814120878088325776501679779187087530088141059249894738971228231881752971000376134959552423945738802859959386293307786501731109276825768437807006277144263548386008316402074474208001706471424938033782478946377136505157459531970809868564730855538097401638978491944269267128366623827000358695457536285536711417778481665603067172088027608480004110060788206766645230771714668984659653230368065434195326441120123864954538469548105617974690854493209475006836571249867551148071998948340273042875123417180050256530127574446282967946856110441572193528139301674253576793740760495164213293545971408522493501009573463329714536680190926391071576723482778187339432077447291925750837047500756122988265146749671147942112313320647018439031095635197573754776196084010265627279881397663100798297356382658857613538731396116517264290101460503706564854549956336984084279133964372082712875150409088986294819703910232936889277245722579390958657199948771781640538698538432524601945697279719723682105743458695221825795166950943479951205552342288561587040797690033748581213233280338815507862025780518911340581581671916345603384181442315392051447711662250867781309465191657728616923425019875648106943274555168649100108578673942706041257623780269623782608560611103506090804792326838757130289992919369500581375653197666424356361887310404744140958657613845710358627308854161489984635824522177927102744023240076822783514337588230808468259234538233611708410578777637396253886605805055849527634895345264300057102524630923728674456815123201431433201345975887827185680118799075550835298582152015530551325476223560266025644745697908041555127737749736502443779718776075590427407279648230478778080630938166857761104822889065851277510245142582320515730194565817904883801997764229617522853577006843769460840755577344633405972796057078719611759586347631103564314862844306914041924184218009882738845294620193124925105355828105373689733944120402367341202701185346038359702150894593040005206896674386808247385165574551077595762647744921579369428207860112572922923521890125492064199870783362483985692840268968878298639399913926312132152564924402825732381762931914029103749740735334193137046090978749172454205011007975768562869494028714552064299023552378630591482178680005179518972082431253591198570278768989080140155638169590746028449705360555931859216544650868482859967888527927127725559557440518586046928838976465073094807774330894924157316364101693708241339144501306018028010724790593225327026688182207650871007921647870977839331698073618040907227888070278642661575936413300763748515684111076075245915718910293348615107205899886394050233735498101206074732771082633350914283969806749025196436222390887275330132630226369691151872920969771493274750228906457070536442881385669516286157029140738748318232335347745423619432278506592124444377860021711521242510468442958243307591052682624430757674501590768179613287767312782543398759246196819768217152022953805167705545990975760968004284917679104594564559544008610663742633913584841848531001832681125613000682123717502203688012238887905156484034850725443617528297428169106938061423681232077523024797681504580848840862640052896708504817935715139825046970083986071611115689916947696373128787534228186198966115833768344302146487806849586203189340448031096239528924756444467678009467965333809129174870505582289703079505626812128879779866163426643429321245036225406993785873324675565355125942075771168116608181704060457498152771143242396219806550564385321707765346001450062174218447320394496427406962136569818886453105002213737359592850317642375647404612301718767673020014048594676112315447812578480769044348157764483737952650680566382964197461859881477199221400060088496949741380683694183315017587566959414008757478341702674029836695038573797756336702134892242697091278913305270204192547133230965431678757113905924313902153929527163809627473363939452477841778183863345775227276775744877551704610689626938358872038178568722865479708720670462881389900898746280144795879451597118347448321558623808069100344870860310951663233271217600474866671979210038533102327822488061474262400571293118503052530989866958997138796696994546808177359495541519971442922501044376364145494367392543072395525110811563861852170200137779994850629071416615824390987045665847866494163407413575917192240350052910681506806873442914633957146020393637643756680049323692280379596943061330324213865138032913488581117386460722256912359607163720442791060083476494944882584252930096895610255454060293359737866740623023473632692436809312355092068060800335861760646806583457473318843243371626188688786444686378480590776379895527246814592568362294921449849612729918239940194341167382848444393470670544713142240510925720601929845888829731181559772902821652505100925014798937866449179836582552332173212677793033681286175434096099850312123196376386422939066416494469613312769789992524891946217850365463450810413791789159843550466013198780040749976968736769672762986407167301977217212232305439541728816553295588852234336787961185804062759552739342819067939061038766320552720399033174373568949160821812966811062185817640636553448222716056603801036604225063050821700368214166941666565288608142647392684608299645852498554068476234113064729360599454688203629873933573887510018312768195659783067791877438025173738351827688731694840355932029306689913165976628410504877913935205025218607345706721570748985670587467683106740566715414077585426570740185589098232806352603640319086303872692677447314342381928693182477397657148128467711530519090280260283915729483535651251847422022228608901817461269843403694531071142368166856924134431784073295176580375230336626240499981902918053676416069005862181792069621291260459385722976937526633320914127702319096725104342120264261642108062160910201516201584589997428024170316498266118178869812289387815264825538496965254094968568018350131016975357927613769252347405247984318327012632124276725859297248371225612699387556410605793510740374757288271665180243455146314765426565946566763440269958407731212016809231112252294216675855343528140813983039315052141223133472081450607025125703872255588365612308584004983002579223960851320571564335451849009166300785080132604351398768049704480399303850857971018721127454473871876537035466744745286161735950201476838156465225001281350257609076983149794836677239314919797285558625627261673059976649355023454622434224584336499678230969452051236922149559309985430237889004701014682607241489321174806103956755673584452876940236597932328230671226543377622775142640256862464103340461757152364727118643189404826928482797958260946693105093155334048332075285612535603005970660031663061106531283174565573874308795705890273630086319182977082242546374352332092436154481730910246730769759924982118898706620834000837113424873011294740477881019788629649902305178270482123324703948514033876008239699284876203064263931883781775135265738641138701812642825624441450526621254287644408210600357633063483314282837995011554087078710447930391915904473468363475808614300057128915192125037960740803614573005869192713259982838751417375323984817886616332095046521840834889690021122909283929082402476181022097555583305042375584669955475696230453961081115298035186940686943872485739648417826810332438924945270868738671397082192431377163582993128047287637297494697625305516054241436866767940788735255794206325851174681723397970808591770912747639498481520121253310405188571089657957416805552406797384071850525030591386477814437055745414456606082119762914362111648194260142032233139530543879845041097964107359772300570471176116565402075989336354601272702872818094379862306454691189566193423183165152025465434832230585748944434346761644454029569261569874931386895482924998073696242028884737322788870887082008308238651329336339789079161092784198839118088399747086166780734011844752372785763115024823967085020769435137937397922941362065601137936175873351153422115315548125388999910368387393711220211483952716128299195968403525393347807549483428533272671072445835933210987249443502682303966877376991749074702913349499162380561719292612461828585638761561333861926037374922378950958754373301491446613233915803936699605190427509888501163567728964508686728022908577769489625060827146654410094195785242626565388445527776304581486791620747721508966705480651278468967517949795255205109329120299384444460558477821517197895926212953040902535959530511464221082637164913882609922775451704332063374172172035132643330327387416460679053879212480065150573637231200884518538851054433493567019820775603214727990681394353270473247680704268093295445475433579728446468628010982133489372842854918561589949439394451370306386155888713582853887638768540791603694239837413322227208802146300792314669790737831028161905602133060710190003997169254151557337633372991610346725227191644625134522220563573501116026567740207710041958484648805918811429665610486190609990298103064364291869015347356256375627156793316723662745534536889239924603309984849994556673893736595315623290522108352333070311000941593177639677494207752913012423113451898742222167271722354897117602041008950398438788187179434076858659417045922967897669678837623595976639562121075847017995508990294135033208800274548915813663329066511173241255576547129043688064837018246109515724789397770022183475421443032307514049304867684167122953196132143964521909220334205725806319567511680480919579720631631994233006112211116880923191711694404223844793374974788562204556390409565769664785837764675632074144921824822415915215447855666372124006930025725589014977972781506312960524695389278284362310871895131790071645304187349864658222414182978390852286030028189877330990345283298186285925250985647412907939210944534309000843808613515481325689454041533627431584431011089220659492979674057922286733016395914153320110073247209799155333995791602750760161380246853823773703128641330811704422385461289698231642327776558880552689329169570240191318540457785800393236043997343652614255892282735786850955985181982221764188971164596727842583892423975233874389494162072964600230143670712472895708977691988643004207691283014754767992865801111320710640942867716270800876291569953456151010858417539149568290501237762015707004441741140955529685491298176303197932100070562619998506937141699432507839991041551047523017213554480340084466167457978683470074570183326659678232406205048385399451998455379273265281908270712450332417648778493248910996863058736218407036415338222048458338098955333549834199686238855002923884254790610027881664226306323014414858820778902368532363273897750942702187446354315029756494966804598497498097588972460775059287712415448012281046702039943881927988120072760535237706537725910153449776434490143921852271070114260484344047605533408794402302237873447733563678359574933947538813190115809722019519984640526746266096770018786414414269872746326528295459791026633385833334297959819308488403855295159260838931249251155189707631347158129987475818644011027594318499769533413091111231305068551679752920712123178380632376106826891181581249427503561220268063642513151069470677688426481198911785996872028122559354612219583462745476605759648504697291991431975355625672484736891673393486334805780590019086822360774531414268218583692851038092971416776093717359277759153018756910966750213084371001909616671700847914562024221654050199016902365580212544128721709338385460185772601059458680960993241840985900304638288569684790245732412618705831917106457917620349445200590540874294489850976480232056001331428399301947236387008652389222955574069750885505692394134018933324493346055060202721970945503389340997016046631426794944827381530864937736557175675111112643652810435003227332748004383587043504092756102332038506266157372696380180519706722856244510258576100865913571479830230606365464364772372521375587352620499176208542373503514003012396135997640880860023064017730050794650999552704930374711866867476743058132114513111678002854961804986971297945189872321842451972485966599804176626124880354645571267519769501626166397505016947896419078278218208134198469426626469531161604136157425089221012346473961364182785148281128537290776262009110671699824988072268954495541827168205535358382592278212635731037449019215215780442472178955155964563025314801361438556083403402882635882215275256087312098702077624972452960054120687752455596430455484226053091125977725756589528017130317466976842633613181143643696527640517324691374691362738509560956786840370052403549755589193707653928006498956878242663511250167527335120326079194093466905538467267432146406777737908877033568230678782676564216426632182417916405861112538254383705472273436561918257149155751298224326973763634269882228805286792975016144149125747993046273987197581469258196345225692465724103294951398714823864937360434215477959966084363688127131588045479310603632267392115471448868391324762411157050119050956013109097261253484802504268886066826503162659656538147456260921561107580910703502732101064459472933220836685225159100479066287497306200593527566643640271963711419709832423381928614754541770786672368994660790094454745326469168778394426606016225801870965992029536877786191857968182988120027634020661771488843443195279407394063909698252316629305948504736065799828357470976310543275744223427628305495202607222974104488116759739495898527765923281754356319999543319448987440937004602546091462143058129171440670241954250680972461301890189804458231855876656215154439453212407063732400050295538892576648931738584266511372660593261630898395243267356385593389831153934531860840894849503298597638530398686643736208549253344745884594297486843372098508681065194912033233041586037947565432649056929073528420473358527701791029977069846070146656823410707034561839867612858735350070143442186540500326974492479411135592901152391612604084224821433817010466632906930947252081655492400286531166751162821887076219659594837594724909777043679372518476152600771416383176541758583716024344035230708102745563997125114042964056070234381122881728139626683366513329568098645417350679604384882497561007117515020692446675011063635303536865386617894294654056010917265493582930724370271177267168117910797718014930883156661532760918215288993801488120739477762916084730951798690999230564398438763329146000120698430421307383671753170730263219666835442496648341891119470857659356895541618603962008385417880374447171069311580887371380955005283454561504742196790962634927725030711804226204778685992500369566034007373992953768708355688673115215343637061535584118401023494434769259041341854659783139663366254883571942671482425257657711906098847652744170830207193707583452873133807917696097389086757572353931267460692069880627867438416251773325007494302574360089594746497838742657486946475409359233460026391499818733041243315484661933369085857163341581917498363687440377735007226309582024825036730490314275855877958335997730109580277289165822807130958174137786724387941912407406692982700055359977184037964837055957675251256954947422114013389755040646675756607255075119305467232900803863484182065725178121848472289455426215246807010144039657360293400820115485188680502341208968210765021218048370222924896942524935170015950881826064974943672802650893248521435308237121162867918577498247567996951461675500010455818008900993269225144241069905934091202042030375891029141367335368872294852888977765601288259682804601187952163601871998093452380411036873171884474767585419772610054753456164839426840013721545845742718016538438629102771446030711784828898660859037180988496529385865656629904506733370922990339670878567101355227539882998718937359481602927375081126404027271721585420991085217685171164941842858909820841882691667850699200099977068793423685837846304755447562923341813356686161383144294749302789346371824686522608639072026903007342865025159264929988745626049015598686937960173446884298075835576570505730574692334618415528955814780944838643575414909752153283052824654685031601192561470041374237142498496652973124432176602251858131630863241861264134951434961331060755982731275357607740767118593143194679792658191908251935062728830156626451457657731501724215971637234828100898380033637220926196573300288345529803821834252985896483598267624267986706281048598482141446111359646367288815821614355636790769167652544901381487376311615463229738194633804889075858117930340395999503832848436182977928737099667065965193145487010058784006694476514004142171363481317199578694254932691621970753408626975523347138461110439788606456362751507111113051416651078756362477292441000798606276126123083625363245704617015114007741459399123626387945346167177905398831685831328778164185271644362247391843618034786122363709033984137378031035755164110367996466980891061669678216322076338626874801442404742576774210973907165907113216319456673516510515429318456904568279394924332584162491537714914878778557162197248393387197165122149288467930641563134223568002849296530115336875899469164730112804867235479661188917562972104907238140673250438407423879050276755969257200024789855583574337494016828929148666859309218621307434961992338171822443962177675890215542580081711378746966914371308728754102079717006958538680816837517941193386512352798652971953735593746045948534841617734135178748911674746247954587534574150100777935486029000383901107614072141473376143761303286294129557723193295049704933999484673371810101530862568631787550884497715418351098494259791143952852203457797722036921171953101859918502431444525195824441689485001437185781625274920668907375183980285989513367619880509742711033662594559971901673542125470765535199933946786266618297587914280778249757071053072793988015221332078276962758377210045346109560189592061025309725883871509829334172274963462388350100473311072003199053307610466331855671649702016540639719265969526232301897189378275289398908757643553360247653588943324308308999894472734962569702515740101389367047246236164942431556580284208818084625416677675605613106961562551249456814998218336712481483792890356336797861075947305134031123039291104277720031363874293121870658310753282678126539079693008816635054599358262401822248896495590863034927270204577679033550035118271907283291955621761037546030391045804660430134162160699155379383708156119698663044001239915889454375253079602890737379746388467743967150023642250504025055966648955516690635085466429492240570396442776920030174473306107915424734490546580718442019039730829410981451718024978784287906174303292659982918624626890208094518851504015626737222405977429349309854072829665739716197517425932528460981552815509142444264497448017827684145964830588789439515547528576634367049511493485518863041357184900954528471248234116823926783273404203645125642592376229629282764259165467083833525985937600623933870725354673515968276071931692864071614408158446871361106352996569161487806997706995666804081320250217150861057714435348048057372465771628928993978946008202998710373315624008028361336506120402653705783435735627041935141289722173500353249887987009450632245965396189285316653679980611544523278597584309809965585739685924172048087243537870672196320924475992259653966437100047288043206460327910606606019464014895498462485073727509681398585151157613055726735199373982557987323826874695395705996444450866828686368169778504628461715937975030585998265599367000879941935452640410911677739594015774274870544409462940502476434508038511153056445545630765557888148562836588258919110773519955448634634697173087941200915570123137311760535874397137601048049122782203500496417823144003349443452988088311873106362683841928502434269704343356177825584120206749899159498774533642353239940745598262500415912708785753426362758454336346293179354899758663868156543150250577460340112573434676766674256281309709299416180585678395737460777261235083222517007599938282534245382738456778489218183405393206291237564205114261563354813077511949221420710200012140847802966452343083400748534348632898654256917687330245112300175621414275091090155735664461827708472270895153998412779384666252819352423801946289100666896404578701423093855312066505551749589137417130224595081129155167685830487675917553030887320694877528780172456453353422227345257103336922793114363372387041074487634286555146349298647471280948577799604489077392003789458635043626241815113725693988254055382742628008118573492732800762385115364870696446714834635991553363567091099708063334477809980559292673616401409127728712780692483952694973490447022895167906217707382652793687777004941285479922763413854434979820716304268625751567589444133569206842346591429690390131708493276735536773785588973832275349210244111538769637265134691391018596618295121844942799762308162046759944187678402583741565991499430233093090715192221968772575254958057773182371276280067024881245986643139822579677498801846154197558570085604264313383349378372603291131458743479408369691187321797152490023236245528520051068340766122737362534235960006502949001945353544453057896304193732874905814996755387213744397333337848121664874001540959923451796168572882570142723963772948591767216908605972717088416805670667238540935947786688299196192295041578232992758663789737150736964251902531551204208850607479414116143771708013760723646848810616233892469906729233924062461985894380056007035173213059607625322311063369092163121043422013216001277833279653189402137241768541157214350046662000289739330889599492850954839085490128909745546756419955622784206923431799885899208671220104020960889223029642230315817712071142061038111608771187878379038588837893522048205286891764163156425238553230195578432268622917888509073046512562919365650747746144046414876496860242677410273085347491997942614308721252192495712923813842434338533996571516834309292277667535568493331515583079148017896078600785994758657221644299939089661618771515975845251650274862284613985547711866040463498721551583901378302666252695760105725229965799384365970630941963933224945061525911981265573813871756847422537655738583852437609566650559502026599208637194010448823066428070825145942756580563943378560097700321391508096778367934520570949310774565212167708278267774421844025172680205198575220152412885928121270011460268002141425847542289008735953728068430878862853656203003810201936439609453787496859020571856737753645431384065348834617392588900166057979488639049276587457151692488949366867021982681623250516851411384187725561253825909579710731964509090636859906802686415245393128084359710876874664610039605899647879585900749627091222321295463027199408823940130955097777039198283325169373130903227264128306802512608909970758354390284480853900354008427863647342518776779547803386529144367154081031290862815227828710120717329244344757562450831693705740093772261702072237164456908508424280684318537272657790202854279060811855000543279949941410632761247251400412794540599781563490421429189989618935630762907268491477424167945548515511582349700659450584311306944591895537707531704252925064529855441447711663649358705799755639190985256801865189562204457349814834895607044107029055570250241144732579063935471987025229866915629390824776513428869622036701765790148712842229867995217125701649006835189953569323201253167271154042889776921655560299194820905704124943688813596744428461109838715013042210319584870985168559354381290555011344778917080262800920018375218669502700333401556750334862446262615567771976039189754246068746306934231550541096804615284425045011166319657020373810626606142503521228134394612514950630777356335969331719215058803300792294667454839380007775646819383217043475795415664988915841634552086311939741487285950174667011692943731292431917894212121206141570208058644940677672501303759605883325443031226156230647752721695985039621176306143602927691208178881448834408561235069329633734308516374079809011518753460282491193902657603143431645625831687701366254353099632277313029037167614071893379299822927312008838569781978128113547822202424261380760781775832671274582828800462907487427603558825754820206617406671536784813026170893143188412219211944848263678898760149898010491077257390939892177808018475548106419626516266480965487711444628047556843689605900448848330974573205453040930054271279493625506650854734822388193467527194928085252478055437576463238880028223760088565651714981330328091258338565963229991705323317578682568444989536178449659731670895979319078576116367440757727146691766320618654035517588083110126648434933572833158252331811528654809841772045358682987147071128586696370563792568307664710262636649820714187324193743019659767129432766078896820020650750184877117580637888198536576514778233980159761703721716146771216644591979678649562589244704150546884410266199854988937540995919550466981607736329900958953969042682149634019922126893810629508816973687707337795354292678379888217774995946825098278344052498460942826923182069604974666060932992947630287555992510655515200539260663485904826251565129682509987073682726263467273118015725119105976622270418034600697846863783446679857214537224349665359096347839155252972578998587445454019442668676076986789647635088380458431138562842266666846590314505488937386688822868121286551611092024892325612060932521874614201011009151058760762591789367354752410038615138399582283868982867622231233220776499386468461058087227363912399269456778144214470955885755411026833735894346742163726086204667440786727306039210823366169476333043503166056200336817430881813964934175463153638036550639113012805072107182080326052859920725733454122641262559851571199361632789768926955473286106008748501826472960036924758620810016685083343317421281480820223323925148101917881211191335131946760415235838966215924372788922016965552805846984607182029902230702107608075842156267164344375580862181221139931291224706411599107797467215758427367725117635900942218262317270531514460992363439849195316581372747232200110688736831787523413191860315541495581994986150022328945374368774884796787356252242945324814481056781737059910988136357501125567493154178386982204265578584371831361647326952654504370297669196169763676948088408923240494787901718378038260474382834253905022985620436377168548436489561586060837016663237361118976577195816216259185979520406721374163294467423101760649063553931595581675994190501270571384365171260539532348485828887933146631563974629747057345119903461702610286501641416758263280529951019820528010040820051288834825256468365654363758219962834527377383209920461117175948839334244368056409250120960277381490892837040069980725603198075630330086392861474486599760591823035554404174756437541536235281619269770959798969484857629564432738098943797516575987522505696039242851568010387231781429767144478932460576519062977617305291696879348785355837624821577719560566012226074643329910285900491801474423936821080742185044355542522087567109496143798115404250514261011498934533006233724296285062682604321856440538368550607589864496994360458340073051071021398219411891751712150139635288641775360400735590952901809255304876706026833505358631090515274287855929147503912580046925413249955833939774469519496503203457299664955549884863290388748746829928930760103204352857549621936512901998629669207698992729672525386924770431415419057873851779420593935942969101614424661702795805852860121270636528164853071115878846810367598618260378950403233919886237334373652837798918292241082777757843648023743876124067961893741385350810479026110999497585848635894059738584538423521716724734244737916207834107592771860897802147151611455494966586895810208731527633133318826310662747404926633792979573722737677107824367958901083040107308473852402180459981117972538173374626274736605921419641673115996223296846818564297966376459208801053588461539642935948577396166637897479702497921336221950317010571601999447244604818667106900075971067610020132332025982241579191910069904851683295216884716832732321547737826821266199280563063665453388708589865087206831269235932569088837654054948362695844656925324317245038626637762223247778709916625375973946567173992629611967203830643895340472678849182697494676664869505478000530690528742813631310423563888309594184877866232503563282445574158581020032236063569965442371724634027927496692088280456822940667943452201059969769326872042384717622709841751599606687815632219831670255362768850882518443171264655932546198452159418616574482974447164943660141539877401915558566487749630073430308617101314026957335322054575360994048916631465635737236759305744432349717328323768011773728136325323104610188160963722291960280414662362324952093692979759468755515156703581529888899086478976061143811897997964188788606879319661355745967629359280334739297272954634372114760001997663181276180211380284003854300339199898532282227887418745142779327992369532150106218348649622752216371385343451704591572296378709705880491820135799071257697805338120477777129929881659882889685216079561705709012822521494814911419178022300840552584163330106306743521708482057296182234169409939471677441959532599505305226568276475965053019356884385207091416924803635722696843429210592810308530181122751979047610198597543074616660898287218494164244344990656370824209466781472865848311909710595983975329922447630948845683080852557102000602001204568145067421307397224605559463924010765064266955626303476544317296070142709159505223129818610703385477070687700598955427540578538958460163977510448290102226341030236448920846748383831492363642967710717999070967448059167555058339293328282090378787904498243842314553671966690934171057311806745023259457503382520995859530923674996838990556214011265480445374966977916173327770657946600758904523751794877971929050685662924631847993371744308101336223499615866915194963347299392063352113277949800515825172735103609745934511092951101621305229656017989970536598196534278516545015482243120490545519075070493900821216003160045572424708274703388295613516081579441235928441766440151271498826759871748590523168209280940652205464955001926934445030480217574972456598876159939105567500607153338005525796689081890433068668167636499373380559287079321338131134374976351904228347281357790262978004838256546337193185543120032228623845969878812463429412200005467512244377423902847801190052080011003081703180240183470891657329671404097294869751654438937519201185303770185070404164004744797409108698020100186307050189972451342440063652244997082461593335292007690218031960544110739283688612267091251709066100998347447762986269077303861947559740280498699602642248247046178709133320761708939004029752712034389452952486694248265834461521489042919741774533595667776549738419591051200176675184075735280333113234540568124307810182067424983335735077638112722403998381802291533109090682867001188607823176570304953292817591482051599804616560148164248183521583147216265880881915208496902379604058476283472236580050846228444758055554073741266686785558368285746576376064267007579995493837901082967127991460175323754732216446538352911382217601181859842709234278632399341910577190835619222567704352168663411796683235540739992367053969868138133713931560456744845444663178104599847898221487607865462469230671607290374379704941269153271371290548056024176557814239672269154115124088528259231193748692299157977222182338770250378893183431235915321067942242358948737669809080485005315705964930522757066858730620366923150477610313788129762415480930380808763265619089030020181890163255372645364304666466972660287496626543384094718507210305702596042381719550140688478703978946805813696109300153434641581781775677482418408528384232256062369219024870901776019144103608040507838471123927894795708345049724892619379382252629417510586996107415719157305999070088729817874468001097960785820745167497090087140312813175726131746833723569976095409147564336151892803350274707335689999470057794745039373300450902574199985657184984950292686860071684021709337133061977898867711872796666731520459175042291353891342184032932093821052069013122345240917549262683945083321048382428631193972279434520038510362323486659902439606659775547208668772155913191501517629432547771599748756788188302539450692199162716279960829647142914660968784827361588370966795238960133148009523668149971381469331549015708888041668239456695916449492930852423679549637370820161295686005779504915638037160166819700263079321481875355829394097559773808807807857396490615337497330903641856757007080224783147248854542333559090223410267426188360529087644331269369167905701467383817699451694534543867612226049642165996225069006190625055930625142286977932844171398333860778780925473799890439529114814875365760284208401381023196677720075710495244820684057680601591674117963279062642591736362072172327899005519466363257455329252865268262472220321275238322904379069720566826573546508699533374002962294835753325400822658604839754341372742282859946184668995074548621581823691612899776118266542626147913339043914623866561105573480606736808722168937020243389350251992749697942237081544451043266582497866883385812451515086235437151936765405459861237094877767354952073947635268808145321282055004588707086833134857106295900757425574072397225508481383133535342675777199828170459237306307245031549507331880637621474908631015240185211561400326401885727727752923509479340748136571068976609093579745410042918909049161760846402562447825288212269913475994537984127973569317700758404875719257448275915936618638539206006753338358974316306523743389467889974403005210696201766893178144674702285229388841941295863122750847404898491243792903046937473219457278489084544369728921118968786760756365167471980901905793458085858439335919309267878869628068067886899106889809704433205730006340652865113500201169920807136016655001259040129847967433856802689243832675982582579005758725858112898429166447464871706826216198418152762432179449300733577232657618629774565487928545785776812012471260119576436406461946607322682364016814485282625034809906821698533401446884264609669369933717786015035662769318949100916118632958415314829684852326665602095920029727222157754708128607790042818254693740292913836516178689356433039867560476158631667083752743705937412933281338189061777094810141729923501694175320424893933799235577932523167865097160870429464650394059073348045278503290444233975978891343123721588996680866977394751319826266325057377238511417636524554080778449604421222783678833898337545995729368505119387675579619140314842572037617830980799513841806856133193813164406413156369576297671035266555724148283955374081625695149118686703703416718633047690487086097232332226035355151757539459901366359972512488934735597531661881561118069376631422486361705480031617375055250099716643585082010891910302992295280258888008602455970617172911844577441809530544586933442718013548202749822385343507758549744392518686504663302768816904720248984052711990781420168162225286020115868094153226242154803812561207329436103702010755623951712955222542321672561775794328374010157868583938316279251983925361044766770134501616712220179815077628809744236899345721967634873682125703419147017663270150145489614701020662963992694561014720822529382354506670179756819897518849323136100214912921324018375530315880748679767877136947028666015392668932115805477206635907336462421122656268242792362516099782990655101057659726251328086451956499998112643780034036353651682628286536455011041260465033452417919866628904498932599168024515419878993412503454213347323540868621950612475909583821115241799849989531524962553415458703224630706572350765063174128567989298105016161407325796262802175929607637304765327425864568494144460864990642185192503362067840516111413038561271595024922560602655084547594210634738023567565663633776162496986700179786660018695372066098050149856512310255279764643919162769950381642764527952448968927153584931680268249768846743215236442346843923202323604602860654264211303594578229380312859552586349487983191927512941163989911677143101037104988959733246968620976850570925813930217777084675083585747680994341419170489889300757811956429382114865352984855595658157948046517608680484246134768947615560899631175337399248290423891784236591339126305476797242828624138641525613873693269998603048633149260020629015907816626373337912271134970931895831835881961522931758473850919232087046279169726261227545066450327924530948199944401771233203409125578564761340574217147424868407865133846149951489906560080998250139890469485172309027614252159936278703313477399719978181900684912853217874296513125693421509016885698744011896545445255287413853860726554530643294904664787841990982005788103206683124661577391260273500761376955130796876787455165207240390271234850050192751432135793304981904475184173525117922771535940287892098888523289221630148542440917644711238548992289865476150000770853591042315769346750640000912060323768202774294068589307024570983444076094924955911945977663107379493047332017550743108626828318054224781793106350953483229241697715237975640925409937481097282860064912160185058300457014695263214695131155651048449725188622692774910116420214389248596339101369661076007168358744033657034048513998669834317647223740172383503821371538074152482409882022563036488702376678342900882203534623107133737958457509942926030978849118369920331189024142691094932265361212565158041061254949273481828850535382076308546627592043519620060958435492797825641864368535479410924607845730134683917292064322400520152758290126181652647105027485889831815277619934743459404086573429464412459563554587416505444005785540116509252374906881337477685987339014266045026020169710038898939354788364503713676368075061690332720734225112725969134113384477211513492858982168001156041676173959062476970634245974975510809882816748408058188087605365502551966616004195027947487865910555802850955019452363571631892231258445388358727185447130628361308347924323439155419868914709094120063118601831579137100600171996860806210564549902778755493005766721118096322460838834328148854460273083846231971658477780402181655719414244845251478990663838639497726701881748108763251602770045210939148874746116745866288182799626912933410727374865535491892715030355171424052051447021405015253169703747147668228478258023166419964352508309787160162014353703381318534809985552425946954266155154491777569405212291289829745594301007009472089294103706998390202598758061363261933032058660944411802437941905170263072118166079174617112869570120254435762349569889530276987714068807905172753458726364461170633957285743471472901109061759162073724595291357075422764572438124770946751500034490118747155925202371478829405238242961795259984622666598565734281084885794880987493105527537957352029703181209648760513904665440163667233980717763038343277756490129785991698201011362811205859277166772673569890063707607303330658059097856097321873164202320986024969701616310791800517493392291770622955710033040678489326984861067286053740516606012536700365956954087451923167469867678998747494520442980426167594511604678751675023886646701472395586094124015172425414319857613617695794020424751729075767135307086073808412870348992033182987514692852669978419939188185642315319985369235180859388709979805953948851757966012055827373150352961599342408470974430591514527810859624253040114014609214898323154900109059009986227962238560788236768235754796756491200081644605230213163710266592237095562158875149689673752014436700630419414309575295952492859162597220637658544615609718335130965553812800949409807844657655298286549398399303112585062268541569238772136851301469859000644531980799521135903047556001804164091411412056767667458274012098292203908324121927619089438656655250309003971437722017357769316458047055127632581622505092288535777745686957582645631394035773553335118446999801518102384917490736074583812459032858384063197662772558298592754088288131883000489531747015861351352778350506483167115128929487694644678687709968149910384250207453425060595094193537011691608044263456160958043072402628499266286699836231427300514931809284936076826699709984694999432585482650922507501372936495335372328659686658456425992607414771506565405714734980408251497550288800352334215947335680678934277093260189892619964951176146671767368604326369228264242693199639212943157634453840366283832703032732403768478414931132067077847011244733181415545256510551604939555958881678274695932320287563018633988591216049645780912416691787588722281658848053439068241690227134298015748294091200852389961476943274765013695077368839853914424416744909092985028703757060005152353056266240524128482473963175175028222022389505520665728831372112445649836875230376164964142501486647113940809223181466191331999210194336819191768608750571999352796393692332494762659142147701744154750316120129429342036327171232853967762359967476704738202996099692803819256479308462547326470592809179171107792555293710179626091700085245425520831769829353203859644854493941408766076753638812205639254217863598374586295074299997891747453548273532496568097529639242215110556249539655343811244787401855048324936911414944623645386785082771259841988268536821664135226410112604060003635127941884230686217060270558740432079998592099476417424859403858496175266882427904844602015378877299111117098127146801781101200848908151887035490377842585820055344925033863639910758637304771844281690890431511389299928204505466641946462522815517417285178741022816983540757802407135328352827541585072035695142533991097445031285408293031942368251545071656410528301939854027053216735298264312532857989866025643476284300491773399464439303691259959926356020430337578904685108699351711938292360724372530891233873771943953378364903076955590860644054945044806434893240744497318144655173505957353765520020603117484191939731939657905753952446818346494542062757196409932315954074670181927663239512405485237011310241114066276102455797517903197889249091988775994315611395331067629589846139284440179690674907041982093476723729171489983224651716104397627761396895323779452487806075006741803131931020609853912293227606767879266051321367484717659805518653546363446898866986850702947917601167722982824827114389335294663804520375524527573099201920067030673614691191343372634092478917748339692999687279558096770025984616501523788780767145518192443375902271310149639237552628363059244893889095319244661853055265425754093974897024003856280657906078888267508295106803662544736368608916289816173561081325562262683360573265272705692941651290820737480984811133755132015285474961707023258392169830716381472461086276931425249132225225867734531854933274116159827423446302011788177562339942635599794529849817323670453487881976722714837081533542470357759419214942820316723421284395537346406209105313858022560962110381723434001016655821866540083050232502838784410987956588140835366774002240925596870421596277249588654058063183997825700263261615342144878719289971293588645184523169391137589759329482952512944182906770923690552578065138424270287118766062438949422563086938369113175793695457730693096470195304346054762031950020989299748095315438902394376821936412027375983827661802783678649986455196129958136021978112386887065112947931673851849486403781198212046951756993744544598737546378580285764178897820896069495814796836243286063961041613744048214284581814475869089979321547196848599862982537826328150188447078254625715971272581848707767835664205143837369283187307611946770397444846204435547958677908147735726612521356452358083491362499209363401954737728739190639067600049800043102385458892833839766993569605292337004255789628125940171194981653439556048223007947853042422439734154394712039029474621466580205347031696622650064721533329488014068900869465403459302526295272735424845374165429963628546465321984685159660999924121528671009740418909225042106148007050152807287241068479488822107431938068076970900436044907736208595789018825516025189616685405539065342163513278791194668176524993436961649570983558586081123547027717693041957487269658884584144620104163549158965541348451453972991740244023490021530165670643015582204854701551170682802706557153936619060974580905121757369435567544322445797464286280451589824644658826063084693595107330280285783722861609502817884638419313558686228073371516858380696636419698502377813816708347816929086890475985055037840272470087874402495084383475680411300041771973627179820649968622804493015676077077257677986778236262135774983715339424026533536824554402079429889562773739129587078332023636070647600986602730933227676821904106587130252514002125869611710789121736215141124135264521267329034991700306839332234248128815993913177750192594002705750036895410603198490384224453847414000147454993715091873369164239248365832568496994729061259262012195231438431332719563718231628963287827880019964941996909017609274554638142180547259284154150584970121776639171468509357616559583147163388293168911414514814255784843549737427238995616360819231773355219285441198226023970531592348372791388047464145675949582978056649347306957265676925969547399762559536557256695602258889152723483165925613999599443967488806613667911096185507752358952385562783523327349492991586425359050268491392951577004766326086419922830642560699186349090534731608679261114830874059671637664261886104622645861920066200084576470884077580507666812430156659052329991562898523911643227344975205983739177876605072691112720559076444663197111549183160072097044180530453796235001319318509283768595628612249044316220975136264092394218379082005186567543922429214648278696869729373185585849747054830058229773295365506965469118035574108696477377353499807212445765119262394611927610240162054446493849233434745831535233757895367611178895222868585230839951519727374881841153995121567118012900439315816600060561255034610007728091978566159252002299262441443916989044507372313368214659195211126303147863268307555538152359417641251566264125906923362103695386820635164854303297727217221756283607797936674123756949328387337168059246242030189155721188273235758003416615881564100916491238364468465668109275341737518030086847868441882656289960577963218241586770085420713777657967455127721702824109217443752981065799310881030189262429614440107575636015782702291490941265739690124782898536029730838558144313350325470809300914364310182873932398815950555315765577870850593914769646658524826736970584574366965451470557896967315452237187843010914305731452444080652422235648204690736249913401602553093300026254793457993873156862225696913872361785231960478576916304105832295450027284183399128424878858096418637269830985026559948958200806661754825008316580799573256037926285908398442412435521393151101953921679174242239890496875742077994032189641217216383545751317771293711154075132696946898912381331883488170054462040365821116382709619841533967175134870375998512709033869104432928449958684422592542852601273169906454433601873701761009482883609860431495253738286997994535243730180601569859357682338657994098804375699458977960790519898959458272801892488949755932076957260085615192371920788710048430569898539995086803664257384264120970037759372619528987013039477434310112903241243877828850744870356141612087170450855604893754143757132839150906745297649340232916187348735038931533584822851439543796632458045820101937234031975145342534359120305863078419074996868616425844993710399650495984367487832711463546210832721352098648442093998971785644864235280913188701671173103905870213347759398105322806885195812189562484765191236595435516969168649303301365713302492483575829287612178966117665096889929228074724719595866997244066914578485636156595326207085817470272015372876027753132620858394482374021912632648267220203325427040707539438810937498480305518870297062039837365955677790065429095907475119489932854124197706954241809906575664359437519750439028457685683552223036445286224454912941923752631050450840462712321954714497331198736790089251050582815341361155538995195275914021537346895930703073807546219492168495668965942098621986507394491157746641739806117827772472064794045562920036263947845742024414033048764313601256283504969269214440257742908947197424212488684565931211984449691287102742311915689395959337893732251059285751473606140678982247779312102052905678823969037741378633542807596798667610049726069989000597146124843587099973194171973690868809435198198984693327481773732852422322459640745238144540386814056288318927899367418517381806179335296514140044842717542953403517619674951908974313189129645854014774197467030354471023164922034670008667244939412707462009287550483061904832236662238578876757607216132812459930055305193780297089234449725600230293671726365789660197587560702494508117478148708636499870015991615489731483459926374797459968677581500858691951770603013478508360881402926595935534950354381380552810368066862841233430778416973280086239890728416597751906147937700238973761046968984733576944868023680766524127595496155889801924375042384774310236394670813640504763207481534122923360161847063588037331953166344276674824481429680309599928540507190611897810912298178000289005389339705402834342039790420571679084008614819510869925541474390796608092379729185895124543214698024234430981155672791095884297472856960285223762310170308162202201160799270333270753950951326781562824786334952164967945063379001851034711127333888906416697988020946260274083613569785368431671918735374196092421592494953754062505445587994639087010390794923605036784319531665217847629434870588783555287611162994987928637454589215956703377693317885856023962812873328089955607860506758767730192962657121595126479789864787615828810150029425698571176933444712259744096196973093333722529587336006161239332835947798547263470073795058855429675314616013585369690865111392078109602805253489408631679228016044367819531045490104274955657144694103046642337276250444331643752296218185963104484118204836238049644531518958585138413667201519939652175704697878411348670189292845024418057651029262227907280913908592612160713228291864102351070040041112699948045573577529628192394483232751430462283666444278141786368691270640803032230675116245280831562589316946878928017446603496990753579039622687556656997171723168677818705451622617057790547066906850734817811961841157579032245359187922313939904065043431850625073638714721198138794874915425246364221800352403534010518342336130330700221684776539597454219318715136102459560496077335320225820238275839734489408932491960112950639564147481927277144277961389632006749252959977398038339281605261356052253948132931927112737685472483258984656211900857617052629306251634187864006989725759644000344846801706361793185501237416721554238241011195825803309547992314446729887253032061194067698758375589594577510187827547619346015236687164092390354147331253573885978048676286827373386052316387732722469370476033014799311591034067623844378292885613683494739087179092566979053816797614307703594728885519156184425124759563961638258946898773110914013033472572797422635358454867713322795523291071474513638192585168294656748149812640796688621243538961354006169254978583002734938775152865008588277929435979592037001532370626214998091414697597689880072434550603175902598257088780417109252641849972927390164181013172623031318584571054355665718918834741696643714700678722543106979665466823753006690646114404287127732890938462368912076315535945729328040004577263608350143911589915765523373717850565610828045761763990404282373052370495877236097295258218088601281479522366481117583791000485997356186414836756898999794562958801046631125628775977842418335159250909731557752296864087528234919072562074094049524254999936870995341370198660915718993916495364759485044807905375473526451706609390896426849503757822627963909011162266274089106507501075409245848783599663123210525335890416625143386859619112391229446816307469005112381299507067363283004324427209790042649711081418379719868749433832606578376787908272627047349898941409859180468027912659041032796111294872120055439069271889368556281701096119666306901717643325674966248806898949953560209264402178859095300463416178771956268152953197216087705779917913975943089341904848394945340891352822069047100074783978514783636392329159442026756416806953282253770252201038290791823417278910111071743084098089740238843886635078038148878966501875899477948859562536950946043047143998403330322869125404907305437448109548529981241619387474594001303360184011643579174612496222925961671081881855633285752213544975625417380891541242826571065346431035612680823173412773866419228909729653484972243374241632212436415846805345350302816357109984534867908207883610740108421438564643783500243446203665216256044274791513473267088616339527607931701858748736725166681944053165475655907913535827061072427534714792117306670408872481530836737446517076379624255517641341356854134535588928390777896982056845146265967014899474909644127450049148597978127129831267054026071687303621617735683504242040554730266742779494628009440066456483426610542445743559985768687529735762335706451675025639026387770790681538353516354951366290824952820874212449413671318305030727825224225148223417719180503290122237597779576873927357009430238904158112941163354819889251847890958504501776426398792914759389743392460808600368899700287065928504695268393563445143217951499881162296416961762689457092376485220940000691852314381814344493630070117816700447424715193948220841539036974129821665515643394218069998770437744466756367614405776813776856750053045912136845658148305124515529107456958124925684512487446523971857121708858829098440220800990236505978440251174444419701106414157708257753126229368714815119139707688087407017226987207320317158244289010018299599779112372540004421374033105336494800202641284851605978019178720277513873628964568059285411193593350207572880159527520021546642587542356554739126714843786293264075697931280615831542645084203747213888498805158787903751524722253117047689917390009384827804900592599619883829804262694464748439436302805574083890944489634899124273422884459995114795940491942379046705568858289411969721071345702754398402791765173941102304206871994758867855279894499185255987850204780259947526466313167580016075984993509099640122940628594932526593120761343567806186827623322351147613674845446233933318721496996047315676350769149401521306611026720178237376996075587011336768734931753705914820822970630846576925224445151002804571099842346957450485647818155194293713663434281320762372983021423683819535174222370018768355767612357973525801193689724613558801211644446575554866824738277682341969878882976001943668126133056261046327116049712259694271532638284974525325940176087539294435650729096321484106234796271187011534642544045573595977803992176433008101275770605301519741350986100288234935315868203416737012197917857484977573149039584536342346460264121676312960015160701492158031236701901617391199169654056049672162287264506582624721593620607253646708970994913400239361433002658937002056666409326131307103414900206078108827705670595522029020122988420715254384723607800748299318196936782998991396897818904507881709149301932053132605961836094371663950216428335656818569307991441006538495509968445302411901805337236723198336484050824091223366374282315860225356772185356371456761357242210937284731608388532759594030158067997940574797203614223847333318674271499970834202106732476982643725831230921645968870367462942478859584144457215043366431245318275705207235413350322096940752741776936062407157190195913536809534365014687408439312361130269319168746249061174147168780187083451917328885820934247761642467788550555179184395331713754005284077354554463386710541770145210152483018664245210906951546769928768389155617437960125616499741288055698814628230263790645022372613666502349307386906066255599940386494199072252632685131432226765036121869062999384285551509070864202224903589724537940826827539355511708921573719993509280599227928126541755537775375216746824900709084937663371286984779465695301398052909678191791022151460035062184858512192458343938173721066956638705128574507354188182707786158011293430067276905041738829995304099356755591409976330398070460707500854433797212833364136268337590513817121494459436484716282825291901239896231969236273638400726385528388044159178300797281900134616229490155380215912108078160410560169429492699220101623408309630882727107652642304896126726037781871090130208447495526412079347590736305616521926303088360037871998960867452954768142422512722722823093378742596143137203254573842077127438547454757310980656764797807169176907238502232607945889849853354357528898565805710570836589905266132703427138495976116480872833884712498701552400594294303889704291645007995708495621788868152339061394754888001067171715828490297267851545327959265203513313100123812143639288439168472906921819074420043231642395060471733131932328730881775691374434115270962690176417503583081748279110136087604181728226609032786557453941193840995347182438783139754231521936320463333470843275773488900843047152199028966185227871656321438167387046929955508255687986989836913622671651545348507898680829423397217707267637874694866922539693768243454875081300713901775278311309820340561551154421120545979143680598748005577388133975498949288841681052940190118463502321203759486610197662484638813746093506057573430796718669314867811890779373266092203877894806356061867429951074061422250946425839207719170935202323757238392491726975473020661824468430362172957192153386629108557350363020578217618877348775557231542778888859502539243540195095369042754400472932723696920318298905278583419559807365385020569182582486968005784239014679439712158411235949170393725465320061244461413978714904127138389415040143854487564612686804369142554866643416531263613137075145869590355667125477490646685004406426302156978745712856529878556725572244027955157907287546406964674611739964313107014359832959563333972919605651454658707765550909534603745734160087430772175668594983854894741342505348063206889207458361266592717055321532625950974017685095981793238551449914190652919570365158007820209872869510611437945151729993059892058366940724908037804743728808521365688335513542389880867719458390386367402401455203396400779072695779648403712212521832696308459040907993591209464811514777502670153716561627877974447028025887564181915442501621263694394736422716723189382158197813200489134315478715787931176583983549093637212192950928960650203093510516186181053935155081058550031926418881247577804753978405610350272115034880927768483161287160419984158783993653744371683807566074740705194162743747034304162488898671604192964223855535664521876782363191380271336115652093647248689474174913321308371397761069409327984729985894239372544956649087466863004314572860098821519752836621803214182561094742123005855650160991559400761167164566565753308240360132739083966556743219959496289091899646439504863239850861236479430097088132571375689298478862130831815487999115425974826155070839811746715510836392042698838899198002347576435849789282183637040334950667441680913591069898577306539064242137901941187638788152816968503171131758802750283951469126725025539887312690237828057792204715937198872687139759086546697695361024621829769459899347259804055924742812667299708198255220965850366555826795978828194065778318904708824611087914005911833581052305534536111718963909795161575919104383930191330185275724382346901060361650098333938275514892683191555798747747882413041054656763764474313047326260903568236803285294247865984876876558519469193693694890869902278259791886283422049083211916754077085818548214291603426498316834652495899816763581880932838141054094891555571413796815905023466169671444051034113788338099694591200411047564164236124890702901470983049662409011620536226124959648155167214264132093074469418753432725603486211285704296289343682508726027782826286869907270827710771223692326930637084991305842677985684940790040359775683011590206917372445401635837230246605452859519491280763075433624887102195432721747327309200003644460624926489435573266093318587679987717225403476417145045810186683172388180681443656702122092224633720935160623670784392287109721206216846185511189158352742344757149878728563087292702608637273600228076039446532801896726108567648122691085935679280341160677691098250135347027230712162767714327511375070592508242228866855859646932586414717731319064872018761961255945969376829834262227934271586051389140823324147508766053278933111598042115121214575516431350069837318829689693085714839876080212869646297128992754514162938231217442269264358902391467189241998492502393733491593333015547022986485808868558280694755765625407725391648547600773700554809486673718773259290110435750527213012447228574183915915418385207720921652630724901842738692822451760966292082793852800971540502485820580971417072570205947341834204653892398008612777746601193198127541413649031193267695562518309057733923454639941990238293527872355561990642165557533119942173667703715536656821911775617025068320514226758901063063012422258845854700486822250232242853405564440111760926074673174755863031670212520243959583228907277365924313613963389295232006460054844256687694671001100493118685977232366845151533189556620734611963574651797495269384495489916008459777347375192457539818374528187081752097067471327746059028362447335131189227075310574753209147187837040876108561400402667655957762889238334566546648924228819131930908537071196569343795264766212370504579985998625288012659057208122619587448263905850505631880745237871500972543031733296294246259788239559019858232443597076484584655468667831965224103151308960852904106113102482414779845428489328433632132334559198108780287264088208349272214037272795102674413520443134336590105642691188601393147269220954368163699965303640629647282885559507619203958031376304434687560430324728458354740399046956517172527825514957755788806455414063837651600286356739921861783423610137328356100464462508295045894895144366289574841916109672583951067494768752350238069655233701631038168183351891257700978342960054737444390737804355742616128089052081122233221340745287296805792527372364660588559388611518058751841908125884534295846638016232219583683696371285572319042158283694279666897149314476585312932619545074609293991465331782059318014618041243724082683538107246753971662024207301395444980990682915768454320574655737316566922173147997878895428896375087485075132719217335008401621946377739952575442706801216774288428522752686332700880818252826045992988654188678429350629422069520498281643752698876375291580847221458936569655947445968753291070402851430446732730213162404456851284854867442867362063064977157889956860411586889848930304233114092094202979591118076279676354378915784255633785277799695718547674998652376674421474201383578872808546752017332226423081884523363101094850137686205780104977997624081446633703477383566220453819769141639628294822614108286976551376880659810812146389567123315090112339315295527771274292754004984895536278431035082489751982688242815003576473330319993324245231225437177146662860513762370184933900506887660608197429227304873590993604209571142502033029016150950865093802721142377444870268370861297761917986255186503415039139735832562945389575743419338508245436552572015749274459546089574290279922869046564757922280040119002053265895872039368665195917824963080350673648316206040097768108549480229784272982448392597683546863711462695270862856509137142322991989194063637956083258710380959503380179553640190057081151712135984771777141693824883615648625498481455197252390314803867587013192773704145832625536133277186527823477032001997902806866512507876553015395551778740734403799649037488062714267983604726630298890358843050932934095080492605532558061834797129974294771071721785907995481249291353203774594678348440801225546918422129480385544761051321605359276749771840091621680557121335788354706464096003779731221488692281620351514944161285082727902062751233409852778623581798810605470810470064138575513112430436736678407017587822888451429218777093018054621372847631910600274915492499294817889959140671740289348752575990427124629214871465458317261162301865788945447271029529029164234079471181320794188330419539906497384029192128253851393435432872535230146461522980619352539800509295560027691574149971241201536144616786476897235951132279000711236132374012107765360214988931257625262956961579650240302090389643072598420587511180013993251372195699750613819046405128356833363021535321317170392500145840048338905804264092128886746404307012886004951082457556910118668637060919453088532432707416625790853222541863795913697734074939219479737344865582727804916387785782916136410457607459151107901448631295204226383549424819956331375481596825502320626898386986088489361382427235699347131562005447577271339712792032679247445353010815452786429283208809620225166047315754206292700036761605227607315210335518441460250445844839531084935499136760139076620289307050815578779580117033297294650378105983680484774051657514282490916730491739636721738028482910629472985393778664314663411405532620920887158252530562179273636328123538677613591712247004774404966067420209514801093104057030791763604415939432819768732302810347066596249426315420341589114010082730582404586804723407453031655607419204883208380593443571688818945422081907541756456806742928345030717343599852330755143545595827940524451357838042465653957717111918340532942387849949127405389915805645185134705582754018844068049962657663323686770547960770955868947071719619877184987795507912581253901089772050074875985838239056445269006331173058143866923379500806824091640437117669683329251950082756526694226160114911049674309442838923252660066985379014313240779132931613280656619220058976511363821849662108703714098503127320528213321458089303833058380618080265900427169850692763361588948905601246616258524756852047061418620847703203714781179713237243565239113445635483930069067622306722614004670560712974768183599361340376797260485445594163799686449294412548238200902173914748987546402712610954668210085964128403102663385316229749132704956056699726642650320209032624271776186503204208681966641517454225671894061654840672286058768816499696390399898712047439428961994821676034847843263186111402934894578647103934087679929316908970939610909839531158498848911638509077747784001397243457997155824122828318876366689632754197580841382054488199262608040345507323222507959047342661299579940857935878673755604688447759062514963486549036781344710167670621572594362699026585549824481005448467822877504107336721810936584595772741703869276247070563929316566637159414619512633261457888610994429060817915547013642165411487900294567601449589601240732154126591219748542655652214338860839024800137501247967128840989926949412502274924200122353670461459235911014752821345175276986371686278109451513436351954747682069538462675040340915707150894656995496482945105848892731918437097833527520516238874270392699716218598952115251263477126282092873690100783701902946847467727457456029871732717947632073596131462717433560847508707000046682038228267371795046806813809067559286523306472146455195559565907846014496675743184229908249696082332360488819406644460535002466584577926833841356116576391305410394437079952397405308797785252879719636923243975793142412654983114719586947854141502650533550286995440220054180710167935284683791350466388083431705735686119729617529114938890695475805888400024607702284194124846463931795836501181649523779053871584543287262055153938806854375781761616362342753431833859033004933311951973773427760672498592620640427956311301160261623711176616647089421244179211573764994413793373430316015706953246824507626857437858278420472627679996368816073697577018231200155312773275788385454235648543722789482928614443617673985480052341472437906496490112219687425948609441217439270302974847444487075756747006089566022038880901089775051455852511548298739199918113184483893157658825340770668285524323348447256229974968643610596366655108503365276993735912570687472447697889425588329373630146754193037717856735510590095995088458132154600395709282146968441612665832075269950248367736151480935096534054957846208261772234273879977748803793286937784039068417672512276276648083301948599713135384997700535682454002506565247083502448238806523972027341307223972679316093290465709703322275069926759662429131547229014529249582672949569661005936520981017976192582720895301542382023988070859433745795719640776103880465215914140801843148270836428975276242947915596952037426421116124401972693486323868736538518417337522566775106225447970910182007653319240549251157384123932034583548296461986308271973182021387653223202046504085874623702261963909399311119425036574352002782038625669947726513069795438584380602780861936767792552172187056069282982115339498621613602864400576808876656445000210677715920685019041034196648898221996631662453884819483210558709496570847482509107411337660699320546841161753100508182037773582708441383193101071886562399748545223266441188318988351585262157814841423646140095819189627851225997214656695719880127480228955624942849562233849518265994975592068565762351114484631435558921012074708946136399045285055842751111109454331734883041943954321580567053111899204798638460842782529231105307643786364178038154924428444129898125089538596164625888567345603992689950456299125586818464912925855683020798498929928410115974336817899043544873282501411211145847165466806179950649736493827242109037648088720062429297894619332554307754844326179889873079855072069537937506312246927096668593369170071547731443261261746972155493065717680112951460240629984487308693356405506341075228298199612706724496227217178508647131689572552990531349142792438900473781278429252227018122583667903241332662887311780025345242399223973098215421466998896154158047499065425112501700985308354438839767368678327944821446122126669420226156172818852003517182931237840454408020448522722942340540164776435895357068468798742334729820976428980012773987183274491525083538069416302359538320789378142518749996620738858857741784119828399985965605352389040111498036568902881504895018898036067966709729293742756635132483067099217837852620290445177096706493004200468593024215264499721151627630182138566440126249744169765665994393722133437210720343793131357954655892499554948996628991933439480879032688862291429959342455208883572190300682433432004766660714633720914212922929932834049958697610901820044397734506408159892048938974406315994741184310569091458459973979676823880772675128839141674361665547241677457027336968465848773809717001625402355114753664453201314824101732453077350114492261002605502192625445556527788873170542300690430592279453554133078462648677360326792722206785475118443564561303027446352866475475673603541345604069190495734958546480344307332730767193410513799885630499156132394406836699908870632223385197239595325656839188170972625801951886109101703862761065726277740300566805258777210005247029440280835252928159122724393331936684204585660586337844270142823864180249273386054391734618950706320111686084991823108708737606290482296698431927292175582243124617417771859771823969248809717397267464820752175330121988817677390905307108835715945953011411167701438345870478709388352059071992848374081461142656644897704578352234163801739765710585309261474225539688327494706320227919683492702529010465537059833200618417448573019676664086434613099420803713023393802135734958262889259668528685948519637058335974865457143550204737144685793362659659505595315199911604809778906671723631155810755106788624604588576403007775581601412825967639357378788363498504741985201358386834080202975453380093474535377666768072131789000052208327291424160399522173963511255791054823129778705648631983175428930581032256549661193964347353915538677985205694376997554900328636727485454831347268717823618043512592222459660104148675574512179163233708178877101640177311877931401507766083787445114857927941571814878431305765982748266328627754910020841317376133641578919690751510454386123643282470327942173788320575950977019260935691261596458892921387353179609792592817962611962636537057715649194863927096075189567483959396834322439551786682207043343191430709234802242748766564057177020058829906316303531307608822590650499752938807121559672657253294641932927704129310125677938160677548963632840213339507362051010189163673088201491552906848289563702431572382257072475378586263108280940441474289886658379076352581472448316106013586387220899955431189263196416622802349895218043276843476579532976092121474053863305573768486621995057814834210224135038948780641697268658932527527809917249401206247229238824167644536477469305565895621823609769686300454545026955696502446960878394923199325907543022952851287397227586766066256658876962319049414446176302223741327226994717228552766493948979055736525346625802521987977259957252830804655584715835195374767329507870929496506395769243138311732472254323459571845878376242615405720421585135924147456072111020131004873715376830142574619889698412871613442306923655952293638175944337098991624391819799283389353310657277952352590118778506949529551264593675101042756799243918548817665241635354750296636293319218556263904515742542912400238507134186099833205274952429274913419193342930665211031206419345581686367812693950974019593803925206834539342009686495756570786470805427286345977313368270356022782497680886763583839107874155823470967081264974762867360849888248384814084069955313217440873605010340616305538766751390255168305577300437701957097547107633144989292535732985731285843850432271898699850658518588385332806581194185636621985538654856014988915479607775694356811273826475269096429026715996902481095290365171111295931092539626294658882283546475066519895492122022726880955947826086479198193205364920101504634368268730462757227256034297927957932273470984859075689926273534332847085562954433341856345364186440861973451755665535423672113363987671175949635029816117541244956902791024801767442572001070327090681670912898928304991050672961441733625500079218211257942259664996920135496881718639423696815211268965401104191294843657756005320013635120009103612370709112145166652152128953443423911132601707589470380061277780341675335112766837050625428131341644459995395268198044827314027961986246145973619841414598882165764723827877206724784657363011834486400110746045429329659980293079274038200436695382326598677704832752451639639137359189565410273796732973871148287457924945678438355766018120640024533312954848880085248325231983386232125624433360007776160396719754104669882410565170737337510371764049879739203518108458227060259553686369886012416150450357616881666954444811145990772082423154042681154453747638434163597653820084061915106007392134077824657039870583339735050199608635699701936580536600515675184316177819963998573175687368226150657094069206926278732997042317520327036963638355056937542870725048547875903805308992348373384656333715357824941264979303651003316891731198285145357294331339195279187245816977072312344617539134111449176155961876494897226578231433755850905078580718090484199075301138509606380308804573588788958819503798519505010562007234081477711753983763658293944894905857115166122751178995242890436126982786653573089270336479043552675117817823114415454851110478327185868225928470017954729401745730292664314177776858959746721963037669371632862747173269097459690738958986773500698037139898478501451464851825263023818528253877927398098302210799091510195117107148770040181327394353641908125093755785313679268057160356335306077003934151384194286597178189533332407366637336285040032772916388304303274514485718304374465081327331454103339937110994269118637041334486249031656125451854303507360067722140941990527421377722904550184688439489877595435829786111306079257515749030437453832608669693488877365188524653687568737462355329152267057732611985553244206055295782080233134774554375200537410568466354523996909227321367522373409224571401550206461286717992442412698581242815558990055983518522808253395019166946320205457168911463172300953070636565714643956390009499173977395614459283536889557227293288576441756135710576241758504755964366010452564002174904838302145456870754707947866406217586112566099550504484409459669287665690091423405262630894484127456904738705009229173572469799693501147793516925351507428306524418134668779534491391821914934670045438709359066606878683482085131644369808067949230023275293724017282142150458777449486322222984429536481254868961400769480813263291140930445002756664806816144336570850383784866174996437311747404017875089012365628846408225536455605607437664803962063031403670641933253122980771317773926636493166477838482913848505643324552502765320576208191310748651844043074215860149460002310580061295016259832232643116049207678891632785966950498735154447215177911541571283719688597636527183217085167313669955473968121717396391575593447017534922255558583614669245859707046447021239768948081904799746915998597223021164696134229554173515678475351659398574474993254204707597495150009295488814093517046667463900069741907004023364014044589249786276936318200891047021561530176331223699829686111585949448200740902961181463491430091759014865953821149046535957516557691384104351737052557450348775958309882383619908541340301327735807453320314613609341897966306192472795376390407278513429044391605341600060675064908214325393012229642045829842350622016494052264730543472106667002746415041459736011735222428882881016643626291671437298968452834338199511519756933979677982791319092576018695247960912342751256394683923199642990972411201772189665381293025756117181927576714183627835203515536372500070790158400868444035916303765596742580725440547823384485204893905895139030240872252167849293096921526281630407104196089941985806193246283595685877797414796908802292909956899022387482667637003630489085689887758688781187808488696601361535781479809461158907655935050385779884878161848520171443287848078452792700314760123257723451823494015423016399736174226035253668798414408593782245720740492101566817709331407348592422192677228267155644931802609100921463839028996005080446680289905849871790718824637432417385690500545451557190174224180590583265838587188973080842723297730219521923997738720616772274939766189450168505073645299251812172093543795696781916295472930464193808606640252098255245163018411128742676585081690293559694382890675509168629694033650761179546946940159558859822335122455350473681977210029698070940190242780915205127011241650239983860274388821138284321156690081592367370221798094880609707927451895902764348181542408965756439292604664388481541066413875570955830522631984078266829748197192331946838860508219340741788606076329825533737244031786495978690433867404532045723114749821480166970093841231770056437740947746237586635593096050730562108306997150083481805277515453805430863623756075346777203740280992037034319301211702766875021288934993896052706477096306937250013347313004350582869753245737717191798966876814228992581814749843517271618045745477448869485529054184020524108381468854084386297665419219280617334450806618115659064606588785226387463692448450170385878308769562228979895453978592937389343799701365856480005675694396672184528012196261017737779671664153622332256318407305923650880913717216029791469250231093287125628989216684468687678625471695441103159381901593142314978596567345177592562824206972891571866598275732075006193881105751179786990869279319099874943776236665207140278605810963904437933808533279076641393235128188902977225225995424034945638550804485652647649186859081136583059963466786331265981129047470809283830194802972027242615552136483966128565134912346130712478788459712972487120722988472232308647111287723000589612205431924856741726582253474577484297487828929254946445608067352038320341853550314790640941194179734413427556198711907733262931044658356779967074685063524629567537482258852733564272821854881619396131920443191837294574500981660080438768178602077744265976317541177053994806641746556807213567575472768658881005270786398566812241327098980096912882329906267119861627817238944987306742952565771940050062771872057330514198923060216376759974814628395609745403206692343021074874154381635207865876444088208827908702081308654609658854442731738557103226091455727410502987884087656111187679456673064889975088702607684596999739820841623554043987783013051499377514453601374489699424203177777408484445727599739761497645010873431141684178283011762504189065279890635532417563152077470950010571009379224817682391010631928613838778231074620437128589801060289737708248782203198354494509711742448402197182698491701943415327791503699948589918180507407364460300511321939376492299170079031854730580207210265020998816295253091732022826475731172702186849857074754488462576387534989524395309181950669836576600148161654245872401778214252478806481451742963025589383497575717436668923528514706817971929335564635300476888656572591942760058694614421087030004269394909419452246576054724651220246841804996544044924305290128907846315530257144793371803318790272272141384653878529287639257779929228208377188214062790670696641831631461384699672113004108675868512499770852151696261459018016673609205006546409352172974487726411527251980219007698800493114041692702410156302970825765446483788274442415108407155547070718696907708782272670849397278532954905884802734041885517373051060584311288400862347112466270387395801400002282780621983676425107988323344865986139448458469010225246678099169808749246006194109986934075619035012926976548310524405957604841554804981643319448181645941436902636040240992705425810311795594592256939133369012171829452740439770913527313841534434343448371474327048074070124659882255531941993697661269364004065627894888569906738165982178328415611582877827388934594037698007462760831137649101771118073309825449362636522463719173932024490726162748296483742981181124954037870546083370484242311231873640002571744624329935358978877725261957433487961897295458245850398721511856796186614520969217716606882922535971877359955706828147650156248932169940066644387288969828429972276602652601183549523729474057619757390363406532387686195225507917390411516512555503809955791622408906651916935571205146479507616969563189783456001803193975666597608203073683401448388684763362588658942995401540463060145945110607219484671401525621836807813722811031974107986183106556052522785257041569175154659553689409250688545020458737108656277727163117794930892757131628607509025719525568592797143151501307183919658833186335078123856548042863988456517697656945365987091198009583322644592387485327867941866887564859310091759898002493935097642363265411538724238870853867383123676332039820910751488405104819581485830357978480430325843718949698767590217777084918390272423390984822518536607060942633719326041930228236917907554119454881248550474026784341621530236233789500762095325187402181127712657980034780941390791900799547922802602865210397157829292077498655769296411188815305195108232760186992944678231804143208472621798488732997388834410283052354530107083175930650247387445857463892225951381701893701155834851825389623031390268572541457834736022584541430527576710587190059003486483062759630821776368372401121423881204587949786181143513169977378696551154412760307608584236824038874729871703963775985267290020925328542831458829908661984975074530282911512979818810790871108252436692469629557926609470947292647861373744312002826450863206304187559716134408417447380431168902119518624018244522639647804773063121700009701203966822550782083885612010637404527605492795833713779620901225779050684874022862025324096599411520259020924758113437214215078564056963988371822062052785778189527922394064671693918932329314689164866982728992972378762868858262414115807951221318312363096939519023459343238232228805112766535368500481620122375895894337834231484361683865809129679939442335798874573184920277449406644790294577925379827187832105618210694569353293236315890788314538539849074792650657362707339881837793393303861053102824525435269252482348176329625941177565481731516206465753548471165620098522338627139978617961276750533786925212208681528038010951205049436510907718564815752938247179955594083673109431868458705349003088593460164812273330588334597709300481610567932097079768669487262238820927257190724267307398815034232677162094504001543189589065596193999887876093339701117264666594581990450876195549527501591990368069841670692239147600435819707268848150797459780437817233365114730633399215296493384283489772065942583298064050087952437136084061664056983535411439485607124828449037662488169523294457009177147905251031100664049855552827150305523798937866052008903539913970107818324507768800951928595395651012784537760788452038477918641752126586835198525466189249769574309156816504290054569888183036725463803793816425405492104060233078177783777493196564666885059683469217656866105471122811492566864527547642309441667391579558752458953064563215547568237971356568134478781256705483138560253266457364479189806384331862467844262531605097008360792848962300800362783266844594922155126437484678049196842738228521499060392804491447858535162181261369249572441626938949988072156308610849462727134663501636619873470234366516668228834825876808712791180697087688552185111354378790571638504753114029299731679146893883701945676249715162440052824864540055245511761115310322136302726479167169646748838401033167315625466147093597642209218308768929543631856319765495509060016243537834428970761333433391144034238626337914611415987669629786982728812858350981177865192171316486687762368447820864365558614356069032578921445027190392795008997506741729988191123759869370137394908355391826055833795111763789844112964849994888099455146533334112470773292200819954469237927823533184641139561104979659369822916912872132213571666937173735262586753625552392742815490316786840941657472052066487187560239538829586589765356776421595205383352114688438767663349645106625547652841290584886689785569464164055593864146825137735457267007885163690620904200302563144316448673715369181259830553665145170121075892075070937886610574141300531872539763085314464607311350445212087290165760853360607665222201042925228206228201476495711541290449076952734290738873472554114718739665228985602810362842019296220789263356644358414521201189998811497295366193332669726777744047889794876759348416004144706625237620597547244787766804035353313816793034711028802962740434373617813951893691948754943003667237270658559203381514962478193704474811969184758690179696345376171549462048108301857752342788332458537493433081516193586431383608630846596555924688037612052442356441810435502192829414066799112546993073155061591599232772686344516988219738250891465638488440376841744964542425286276292660549539560652752439476108166271218488157986655715228857467187019515744855583398675269226815619685666959666381211096960573768383127273231777528156497110403542657169745924284290223698212282289335552067213184824754913116713132378081290948311139694734214044719608848802077754791337955882199486599892573960239057515114615737031237204389842927704366581823957362727501097730074560789963640882674996641479123091357939848291492690238916425510172666628322881666727630010230360431120874782551175063962671898950224705527665816107338828353425220861943006953990435234867658900819638131448968509606769841875849034232016934428121318532077257328914300995826292708872585637136074908627059456895665334366772010421117783636765224872752739290895479183607168249292897959193354055770199126498649351416436613222042389793505950318272179021613151665271092207990882050365276400267096942026984516763007509182880426393499003721078690359166907096099423149630672425690956594191525839637690681019100074435757441682964076640066699658759034995208612711146186279033371934619658693837765547016261609867281533062461221937116563000886881179342837107907213966180554552561877384833473739068641344848128928187795343203423103713374367532482825239213278734913127902135715821991338732239673283893260126026763534408417829659778812814534724806419475297872835313211808509596077554386646330899626864084844833273184639832208550262324598970588379181656597897626252254994085576877749681430075986013007877113047017877374311451478182823120787905771753523401215852355900837745537768649625734131979607095037463942166217405100203178609121473000872726841178840184969951369486337446904231640682015621120593150923252683640452847812028798722491920460557509119804084078447468420947386790653644396936905259587009370060599996189103655355057393502625316298372654621704902252809329787577332806984680214802633311298107859964365997599864868158191172614690366735119952139272728199511078785654659353309753163796114737606235779125921243817297449952353270413840121663722759716532139508065567113825443454434562091107053603587986030604172142576527482731325955697557208221598215652703326904528163963069135978200730767012608111493926921223633550926529129604667040377519504032721625484845840424664585514226268774550978034323953242515598182250144483089307230624689358054518760066555185639343732714657890072404242276105315374894330401676610819044032155960631156528389395733847180070355960136780195989153263025490723375448929306572637895011864226560092493369772744835248529489854995635788532706005541234563862561502396375439342756659374602671817533145600656678957226889560395357387283905105588562577169246780089134721932064117695664382739307560999913544692303701047701175533890462010794222625416326029762976531817859766829279241606871732732114794456187327392895122687088226740609324401473161134592562663417075305704013094376137035143086080864074414897980724941565097819348578741782427495521166092040898046048883606369989822743622458986683129897086769403413801120198138719740719772890451075994142137288015504600548521297698741975393260240444856146816526425474224859238926798487686922767848201156471783681216429342605881333578386855595673796046003407509828757672595529412204497155552985716650665435498207208754921171063953147205122739911606095632414215378054798891957208582483327572198612477245728681942542680041311754162672825962056711202357688306510159584627352623369012464950834882608080090793391640174828734829309317566859523129946398302140390261282487094055760882695230516767587807890522585568963946607788191251296169599052744577939031773870074308894594402669051351291515917225502373096647317410535521491134173059430128163092909525229447682627554156816875112592235063660783210270745127754729563894029257906013986830749460414563907649153240818647333410817552976877986798902555771770460943465085591859310019304178962821608842281763696693132735226098506510658674608324405515595186835939606656929898894424994410245264630045121686618965954696877806446261728483067771304338534883403862262661057226497540691870131205140481871398748930782035495658407244311499913895793753214363510445393247122324689967279288873582465483977712444310403539449305168356103997753310468062124077295064116170131872774251586367610993844724946285905655347522931071893514293734298897810923742478982957419633771299647739161531963446528319373693643406450658584788129444920264413969797947657937732155054413132808323326966218651263980125825039656447759980099150894597587582064117231594695413012523768033084508148764848365146511453955542175952724988960327558257332378481982184142514898115816241431665515813286499383826147025657228388978077437734179375848765876988803912335897214586811995695035838278824414564934373750471767512055235324076388243575066595379994885026043354519522255341519876956263451326225085992773107968453325792261022559299531128576515576394400706303756650881686081682209420980381007328838284712732173900023143969177829319328709599693479755862590343180339084512154820031429508613369681732259606453266324170289679112600377063292520568834658379926954761390016624010741479765554388098415274225237747315238690722982200913156406909100883356642411077544805455013430509778221807250495415455528626280669675240549803672967128639004863017694521103393767160179231214596793846452844750178830119558152027384251744405694544296267585133167346816594511781629926679017154886521131031695798667884431275605011515804423796577636768710513031606039749749502292813283637961132370678369274968086940848519576146247292980952487183554249923340187404211837118237247881642585547561143342167603124417470064609608241401590064196344733758861195514143452909133760786653432086369304004106303197871521712794051593767019032372537085035066523785091038251897500073885329279233955744345520173150006691410442801216391935838364557734959124634530937577162675359966964430247337479084097286599705608433186167268012183938534840232974313625980451451496784769407774231080849944878697135577638174480278273352820766154008328270891790318485806421013285539091735875438167571244930038350785803817644390421288804074927879594413123742353548641306777055333204473395740363211654284292102790296631922182056407012606217819399684420048774887499571886722435852904836583122248695115909956877405688454576097749511944616854691691571851198435342914931916725165643506186391462456159291568721273303385435228771910124767343913537284562691551266679108714783337762457415515010351058467926415016474749512488711922640386920496469916266996165401146913715895969618697836100556145649506003976985257404363519449118579936944773535057999312020593638919668597557152962372127487611163758572414910492123594032817823754860608458253219488281577590701390946392897852979790531901504260938999807615059970856763093394197092864254667959630759962771786048865640600334642710081775562243038422525258704748135353488952361457171806869913190294584953338049690463727887380899894008307095361753879047265941383466155578400785618997667792473350134178888657446844184753384783229813340091960458596070744524214365199617858961759948461162360715509559024900840794390627991317355914479608203197568984262009759690495509427865322470544129628893053924172992268464938433258705754561968798367692717030837941348087620428981156408595110660180882774977854645423468937488544943018808547417440369957586526969712808710744304968970304177053225027606240639536016708243275192240606242062222257333954778903935413382156405818245255324655266590423200774279311821115944849638069386861212204461047778871008646158270816895100662398028685195518483811184615764341917040744937564250976236572400803151376155222306731236975338127691665764451412072473183470863320848867758873524892582063720658733599809377879985261894269770388733596200864674590878309761978072187222642637334459124343247159890319779407116248425001355633571049051568584458320927185438913017492949779872689401499381573468184245841197628249849834269032175591966202869332592200117749073747261038141732237730218876531816979556887883210518875860944511310958637986293831204700602513678020753965417241857960342335903112535724806877750728336047405493127304454237458051002632196149505132752782828087623558989189395626708294874145054253354385486939481700001439964442520398980840135024471696397286963527854164084254412653528726302712998230299670810382608206695792393742454699465697724580679540305076731109859878054186845274318652695129698562937288181298316540996552199813278791985998694800373840413297590312858849750012165388434770262483063685496216927887235930385092058043857883726653377739043426404715159726096158032816511419143032655853744161922024098339162922284318395783616563789024844906188828716858711359895926249167916111926746368749198681466849904594375505738472132283407149519203358025728978363433433763129741860119267290720849425737860455194886194472425094785895744329738615407080547689283570626365637315501238275033488759571895559350060192941471579321439857411547658332557515687829420371677224741252866361816753911748451854024461557495814229500475512263868154857276798825608003521615213948603438268752123216464730661305091772005786297569943642959307477386777378057467171355361036775649135151482456970092940580724510369865177327716639972279854441974729777289161205572698412751926102796787112901077941533997516437169515577526202254673465298920304925211717918303444623794138338267651396142457259331558240237308020606200789625865036194671602885469575031538934711395788312503849484572151219009089077289946156140490965916674458078706497443833447394203588109998346220103575990833339931577755920874878017739642694001628764214272229255130098253547738513693620070253359067996277266665737926802118600500700693101275394837045954068593040164843670353645213226858256461996732476290136800650434460680424909810540846020080516828941944313001533738503033983224139081971700628313761594601431934639087995620521100864308435298600281315951843157877977897074030922371269721032096125075395754204576603850197549959967143791824529900067375231367220933749138790095189810821506768716625365519009756070808966297607884099943575958968531994811953748478601488260952030507828709715142357622301222987220273315592558051121482046053729864990190094649481369686883634589402645687170745286606300078756846400906383823196232228607950674834387053903243272824048314993352762327094743093594203956356863294230473531119443771858189254776872805378276080023737404969945983947377789164221506310740881780380700469119461100709514759625079291893924762553348237089990048548845889496208061083347529477516589193125236618668959796834200448850628801626794431266187550997400236863128558937903997918819544057083005785869799470941292079225844893520585439010539481804514216715992127133854129884402385457474712739811539496055384885989256994136288403356606144837218219124665505965574892996636289278568252456781523770138452702007004276382997689201187207184241253825387794192483255251853592610410696932682628244800042427020508100549809122671248310962633979039315730064308556847009017437359557334961805029131457325015858358458645849895911116270197529048449013359490304299277227599838557647737638615800750003147486416260264523641892076851188226054532903532294094285030057922408996508183760602821106280331651651569960909587671391837913307127742187394699614420171635460608224811880514645501259736410814386715715132716241292264960616489186697129223597698580639022969183917286330112402643954583696782842266616688817088744707759633057622729894723896758836406868108011061946640712212922362147229820607911648319473176730464595128991709385614272483806879088447421878024349409008789382121307713507379375385125164401415765898598687159996382448652826398314503858058787503009411111708221759559995051677547208396193534975911713672513516439861239249844275701323536041483932579879522167924124619714461432734567980310991456245587967820023495411123130531910639214148447057071987541550435622592427718008252649262844988179391425794187261391560275556149824781456443411563175264680818294923835110465414065860345800845449418841240672935646771084270297920918275734667272937979260244153128495369654325478721224302244741340989890326429403950834512094728888253081492433452614425102305797780580009558353043259652014216317853380348998514569916788015163656620682215450927073213488175244187567724324459369015998510514484532438798863829310587397984896939677419436828428569311465180662510266237961834620506242262586093914619641575860358059300977904990896943724757183179195275532196589513614065456436459920024441006378672873344916170802648299113283271840270837795593428882562041167192728490390846550444063299720589538754003111925283813733611520836805757310918809493363579272499103153559793813575509632329376416296863084294008695749812210397315274584919994553025452367038077931954166763066816465570663655294721263293954206417694737574324064090014891648145889656397418298024770149972362052731911730882357757017901930199184286557356551248738586531300073072156601909511980544698963814595161944192291182452956508705778677332802096656597612999541898851362487611240118191114760977286595579967560985829067838533220692136641291291033789423836826976459518052105503580800302039250316598762839861250895914492753914490388019661330622932483953905508447173605676452977646216181991561138840448804404149933978601740953552707866409606339547983833257826673162390542634262594719874963051635525287092052370707209183674880693116977649129252081435285871308348009617590473373822410286443842034335092337364527062230466388422858253234895732105261816803219380865682739878896882487538887978652184778878635319652819163580506736309431054378376639765503179624462757623869375338683079222026106411949405991712600697551882307596032301671684601392773097039239081948066697276410026778483567299819290627984420147771520863739739238630790988654464757302019777420900612231196921586940007116524708301119475744876886489871798597069776323107014027883775936170239764169639682417859644248800252022298072904096298564161191627062688076988883445197916700167776002423080355712753741964096859392630571927772221096203617007744839851027164877165239159380859473072232364184252396544528637273437209261185545421607883780055530411122594521498425318503876972233649993605917118238605141214884823984021665902000973089869303332193302360963617362029507220772451417391151782186955823819855343372069752655024481623298160274425531040864982260968792513024842711242559584399005121764064997874005131846645708727228145646262143215927318449986807427320178579570372006682435230472278194675265893086686293793146880063952195512362003793449736888402815963108615023428592512762300637638573326604062402283153053240252727937976048854438539569491612712803081528734055330361412560567067644637638935568007320434972235563278689728390347988134658576696282880438775956275223348778118146490467003510235172578398629070766415126242732444065419841796696183727816899623867054705605146939767628139356410986040387550921753355031150560146434640583707973098654107739543175521756811996611095682145923994377939388735780576621740785267276828998621087038043598941117301787122816623162233070708934866411336911998996470120231431059671352657569364788802861410531324044274692620934575504479341848313299773462100073071298493209806430804549142640699057064284187265640236041273794688310623936220732583224318249378353609106306760625942946806885587949357081472175137166218182277561007591249974284874783286196117268589424109599911974434476683453579876684890475929533852079490405660362573487799226801195870453067915487521581573151104421298821092376558081618903560138175205662374670790526554230879366145399899423555055435472994341619292896003348342345568364215358224591731068589150720190793441193591351698833518746503535631247649738388011477157032138253751479260515585959010421090865619349936072154883160033999087385719479916920916281947975011758470181436183611986880303585401489596873547188854730294752741678471525614369017486595180433245503385717430892024383271704453156641808956549319038519695117926650487670821359997053874152563178410928661943239665023806227967601320959737423956910752224038064473181018888403447092920637394323139535672775504650033294833696494695201726621396826276319625120878880563173412188759604933052757673209635308561419633005292675140568854517744198981976294877859329875161133822787915550427696457610807958712741218488199964496965587703013191907817127587924965388535602823305431516190397726250468512796597602216680815044093381504840220353559096245735591130508431627662375687439089307243628927742109718635660440638334819951679599442238904511920585599298085975034391982258217879102254631483756214889301245737097122175607559245991693515715394831913382533655485362386022976031719915360523165947375672967007141154967606782984611892627188349135239981115267982986768369714185267740574234748335434029498944997725754328301648353925352851637919886432701036058466313410448778706450361340767115320104705637056738875845514907756632354998398410045859574977021113936778163480310036381008228864344883852742771629372701915946321956106034725328382305826624563115765015795193252830046145156174631981379334408290608093778291660969289887509297468243333607320463210335542411012864713936063669235280608446439848091479954575753011000202215412905373992424965442800666572070958878160029656473082484296819910896903524955357795299521132863077953878239261457374531911218013499697420476586597473698913601733440108715313287005498951518707949903186710382742758116154022567627146615570184749032975078218794085597910595366693251134740813619476976915517321028571130301474967676865478866356224588411340035074901908430548370168639655316077983662623967889099795930768337456361729753763845020118312571125663562506577040029355063149172288768944407027317030957540037736322488995235299064346917646707921089868639801728569542868506904954176057933574221780458903819966419969082368786445568783272916894739189793457685135134977554814592360981486595331595361102059071916801646836025434782671481002774740595162570674407639382016916139798092651827436129819296859888065168749662274636988229931571774920018788649937443014913658114173251956057722476717036400965577786944195174862412941022965366227745023523587811772206752853343312481911046045136866980928104444016056141007077420933111801257637383937823902014659205194403599071277756996587466023296923892076319856057901598417637304223351375350138944264257707216483503505067925282930482062779766461443095423308301102145410307653440190796684447330514991269148508713949190291810538226435373130576989457811851373153867403976418740352744632849340054870449481874251983588804035564931749799034795988500555419925778800541897047701000528956523445366946514172529028691965164329694869989065618853900423974224447871158976514933571291594054650152681072779402752534962135089148285799768336518358016495540261618840751712696448039950896891947825898246955698583950814579895079170770251118997330509615663667268281145875130198402078257728440716038699615130962954829401393176735613466910391513185848736414418986698007294018519758066782374236715952874380717788470337058386522986676763475893501104563067842192048128475405138152744038943441219821904098735634176215771046413534342463950063104052198600232283729414131782212088556694297768609218606353079833021615355836617972906902185847995354576126833478000296851997895985466774170837720756219981484604732827124954812905346648480488603305269664338956476285320462394344348393279402199628523292913399308446808795670211399762732023916755562756039245531380806800472100206997864059018612578344244464925414855088807203917696883490971246038144849446726935136083409995664775262376017554134753170140928189004808558773953496933407748250816069956981565320024071816219826820600455790719608578640794914476651060967855137704266393205216832788869231682962172220199202622895817341695931609138018606988791792371660050376533151545488536796206992442833033265946707976244589394610674301470555920385242400720189911220552766479325556505754987798377667401054587334643294796133543760450623871889590648412569924091519950427777960623199511364798734784100611342860241447205794551773553226952248540238547556145091358713092312797984058056215377629528532424557229202320205941995251244709428723602660429310334177680694297370703682095196451155473635186984383422561808794508012296975422247011975295779268518112484924704227981280373356169513059398365313347485469617677640615489197713377498113414732268938948538677835437914350162741746206158474991515207448042846201434274298472143332214708203343826521525946256157816586504451618879498219396782530436084709567676669988432687988772789657991587942800060457272644275815045621290933193279384565776558222032141243986980244818147707240501574530096998831083475887480537706110361499094249114700527668002039616942826495438909249412081148489442700240792040224239975771097656974458885822387283309781177023887193469469553339294987717175737882260503605516661265818569556396045827022722949138414409323513924469736891141431666039417033207645665191491388651786968841091010593867284232012405191850473814678685145895591887948381965389880758949326427483413800044777978818107401494898655622299287855382296909791157653087719470697306456345618643879768730627212773992822642702881219155965899854527679951369465347911277243145269206940740237084026405415751220942298918489838333555932165500864572985887497076753942229934479998542524626867140183139385454253031345034838857594371204892204301428191920855140026625985886846131387349603068436057784886226073314922138090488105947968869678919860919572789625853882639302497864918645789012698126505319331314590733012291570060399617585496251338924360193602407145782761747287065479085524207600029993976939229137219197610711140480861230443696119526934661731772397536713643951951633777135988610131006113654320579351070088267856726974744937636631599458245220254171664558899061194427733999200671485387275288170250201872658833535385988012177496051757061120659199947162062370115943524476483951168568213477478482457969428810173072023123655584034842783819977188898986938375730649353765348853693905041862192751759877388269789293450875399205090893495709660996618329046058502184862921150343773456970725647582478140528033152601820323070548352029399922946392161390419461711076985689288560241636455628350734694520154726341612754578749193322649810580120308030997740662699212855899166978816603706321072848399897922028550776387532069274220106137914537114195720013071755375419846588407295310288086454807268675823015038058649304450850334132497611826684430989133627645616553303616010667965603943806269973128688162566549573741458210499819878949381245399174564488170618140739027311965508383343898358979490926740531801889415067461765336685760280953007181739099743516952104941587796261871013147226834536627124198859479368077787215380939700579005161510419197520875004021125533033608765517296249367086165219423545823487976121421380276677615733701811861890463582954288522558823257215248420415275991170338360049644360086016099964778934012184904434609701771148531749652569964430212227719341183930395033160015760792430552738675346016178604133268237457546159715159826512103338312069970541287127968420865348336256373031344441767889666208502480059741889319890696982916517634992405723439884401288431881699182539401783817669687917026697670736446114844931351760425701562447056101239267782758860889069808615712556709114346412215052858148548888871803932247365183752872276831355288949461411855319305416714149974695259724052534214514690819800310100120342659772806732035150375109613637596984619900906019732509571172708074981332179705993336715566553374262103133880696816962182562013654255038443043704716272527353275697255007739811419956442507874970395875035770720634168233236073428641994261373444697805868427618007267292705302084380538709030587211326857870768772805140339554647829643704563412645251309286230998866800261676790216198807122378850357193566590835382238494256685063794514987038144878616338795902770459413976477341840612387671629197672375950279607177410593182177120465419761329995312380596815369460298898345493165228013477191434717569446431888944981410607240149050974835520519086587323616167386801412025924355677293574385844233837875256965948194772422649624876392296960378471274475334821313883571499647837665806240410377013058283693139275442304185602745362653828630373054664838836288339489765674004293451080357072424328386238189647367796764245556070186559453132001499009645049472304781303119048729134265941918649940325949245828783501303124904832657492370675678161201665561198016532251395549652953571921193511250983910170513021635129982995194412158754740032719496912928397189430691228266542247705064064240068342301633473560315132415467013176453411203778264551803880374032603049124522907568206933962542206126679405462900886094872060335530322646555772467548092644866370818957981644655650105097497544554096656999821469858144022362200729960248732300697073649558859035058615741546516332145867668260148788353334874046496108624694297049355193235543538177093021858581063654589139530557508740518863776876974462515640344633138897397029032721553720010243272988621033280103061244941135824206938977039809967894170036883086262672043257542498227410635217978913242075825832148795455757724382142146619440722952185827744829676805136601132094829703795207704371120418451651407493919098084146113175266444909458875876238959033631207334637008958938562303072206177776476764239308575264260774604965286402259535522873940134321431910683147312409624894723483332872239365738573649283835501781118099575102565920032568830462929263141428070181908399667343451201487422058831784357787271429735557717148024007159176335406799135415419034738250333627016860912335535009303679401097286656238962849875697582154826242288549074572843180304259211736376923249420282438942861271158106260123231697597678881853705441892543787377271345042751517296558883455417236795074084307891155254884312346361737562611997762100055066562293870247387546508456257820562677219480162798155134253060139756293643816258191177518928045448638329367282556941332688118166698895761882341837885138298194998543097505352133949864323498472707686779409465778185051538303206711407721833611818891034199865347359310565025407340177910672142208279265987744319064822562861203667391886128653436977203730443274249486851042241609021824746252677946550558191616726913245241848024541742976591918726986933155882980360498181394416698296247615907429005003879736578599360910037772387597289674391535508852512283966848802590483886503474441463004809407532890918900107009602227850120561320270438417977455562668878307402466025246634462928989552897782012182342838485804042775425462182081970007577370394652073584871825494004892682213536917177884105160891659471708273765629300722200675040692352020110684472799477737484145039323025699431258689826536966111512109468393381644806774175120969372504676478299805326187613248927657280858879709171172267009222075426175330886910233606148225518254582103301559119696478119476013130339885117415259628554147380219781921843348039254446990054348957064806417295559651793718266269073587758636394063294950494594886174221512477839653111828820254643748784318851039216598915747039357790319843125447577438696551616731042655184057376170466218118756363127759189045561197367965006512675206681815607764221137093938566489378380478875654718576359832951136982483432096418775871744267982919714552939092743271240226985378360222521307831089874647973295150010089705715199317276784306010458872768576987286700360273315631947289980729450073659737064183128037815393736479986879340411260507519156514625857045698382752577073362579597461062758653016905557407741796815805315902496885790559182163392996276378418016235561170167405175877107159782281109063122570595906997931944849791915663222067581306345838076119897580332343049679426413700662126695842536575455096551025237419317267745847429883297876698413219482893967215283543119953247137056308703953344672582823358767301358396569957549390263417896808400312607384463397723468557748323367769105761744658760221067442124365983977266685686432097567951817804784191869535347362446204958309626998627564377476417332205342777119935825419951007450189439564173156851101159391608328942663960991308901938726613116839772039798361474711137488768084999709345833055047746423969619125333930365944668275920165915001139083589932643794240469877767890471540626743462160113735763153130258573335868343981488864032581139268880260240544431563185992271465634764504605999819729174542535941203313047069386406937992384261652501796579804927844101924606002742141408082204546989261711215162491344147038510025995958363632033344629093145922985842657111469961856423920595732054844932251707539199377249688825224598407822261362341250170586740674505114930168222578507584600012703920547954984824522096723888940089546855363161083838715273546261197343116289607770270517524872274427041625875998945314723224809755072875873853242754917048433235277473023407200218768614725755067685299507613309412043761508523635917133430735270123157355800875407165918060042400886287496756817634758767619884384327568765909431084499042075477300655717124982625158279680974829463945019332202325625482632333854572368647376208645221168404026898984785313618978627976067136922486040480425666260677329897808382598479664156775675924542011234347007137519489643490357682941131546313006438163690988166847676459973205050439697825108253020636508265274326251927534345317881412834124890356634790518515404641738932558746237099844408842363468104336895101395451503539157153607650617138629839191027735800383305538834945252343488071903128543755618257338850345768774845529103118817899086506636089527747049085659060852347666462956666946316672918648879264059552745569253330700529791957581936236630298548403434194441856300695656170825389261644393746936153433801400872450903737738870311038866512757350620396749810767277948592791831184961908490485149683510638613401299808354228047747629682259066565502467642131633287972373893030587290771549562594279787105412690104013112693995285681959927111854259199598101589293758368341228812961646750745631363375595665736897903450608215400057914561580706722915407787868352453721003953306852032534567033213796439637931096884033811574024663248776378990971232525543027129705232621371044076091775666213638941564654501775109672865779865674528036376574119487790087156461084394621586489314558656678136524335544276536595358887438660044399762453514459791187658602052410686096129211519471959212955327677235020924026464503260993761880892182058058236808113438955962417379440108779390132671390679750052719880104603067037387084557340134749875211110062571316670926575236471785612065242014744245874780805043909635469582578522460147668097951006011312223905639577758183682362866378724572663016790265318115080783841416672940529325023956971455815196212629559306900481381695007044968740414079006689827891073724652965689440050791460013835288181794919355492686257414759426656905363585812876535960042891181787255888292276167300399825188826110836970932373464331144430525041686662791893975294099260586391104992822848829817609969150152945187227099019480476334258857579395810446733945907831078801162064195537086544375910871422858542052548425469334925158633485519628521967195078877826461745903610149729520003155623300370317597579076747950798170720543255227432666613609590208399117718107709589793055976834962020161794226043943727562939309975620253542716555741679453711480065267682270993502266026481631195207740409850579374909678737174497948988744147674976877387126842357511249012393808963777591309724938189674300384078991978441128635910161853428709582586268532769672319756598290446481845516830313988596129770065917728288836304218031324984206072439285475543614282292167817071348063779261941812867933453704992149944265487122599223055580494091879942266786256745899884597643276744914120695773161129814832941135147031509290091796186037244895310754117167786109992458291861329592941768213080361027842398985803050617027903465220740595243469485551348176215547431255281996386702938556836558280284295828196607751558745387648926365209144105720655216799499822536158654641731300435967094470189255215671927570239120960865644759883084826146455931923146373961603695493133575334964113944259584076360706544993436521033039388112634332870008644175383865812112986446377204206800049704038316530359123995376430358362889331218506528794101277814742887636687338553400467811344207119404608382050273723920693923786431493966171968030571835280305547913054020986551601604200173724589605622285946875909849804189621083306233827845687891290928142522905287171931825553264828731076477328278744411760739000222337003408695919713961031061532197595408829805788921503275205664509281710151369470249533943917201227073396324865447051105601300961671186752645096378008608890980695396327434909774053079040270167273102283353235568472408262359007206134675837169719838253404534655911278151472627793430646108974612882967889854066120250777387649706134126364079443312261710235094185163672431207742657253451225411058166785738134596298344114554609724074698631305380567296614453437481750029351215784815858331207465613014835740698959095315493270719300967290551658023741618485827753590959921975047726777751180096003919362471417147407649619385566553383601953201485900839450500440458936110733828426316542681926350806035977736323941034443984874260524959044106805131172142176729939570006314385234485368397623991076763844989666918689861585433827135908449996440682591221112260342323677274350104531374604444303196060831377795650897689853254150122084238705836772439929546703111772918968324568345463915103801745966479251641460660058425972773344194121306847514397311672674964825792904872252387848200645654554051816043050340897566919048768411920721095327754792365127387905822513012289987872351951545916095121933821268748971954205205169356495600332802706865573872260838267762331122476002900046259802035001659872908369470528653149479834865234066480959730654711744352618265946207672078976102727813045697207315361758074389245490469700424950976129089446123690793910459672705508523002571938363202474027964354583036609574568970068921104058644763505426026246152066995417687823367241485692030352288470268664169943575413620826724031703223612022529558474844270922185684358448984633828378301890162146077089431450811278177353174932528121086795288260148063396162178667772432750970097033269149331214282811066579160698722447101361878246493393646216166273092857628137726565300795995318332068104186728911642537842778894340915425843215664501364805920869738013802204394421318961541834280418814015502843133498030699698822142875060179042241900262263066466537488846558440027650763319711897681216807621197094785573383760196226673007367025902992413317605408219881848768111221495925529584937258727189832425490820018515787043562225912032088211638674177067032071635441900237806098921218832357550272775249507315899951832427936336453618145304096537390076354244336934879988621518445821083495452145334160760215815267176016016156682804088977996324243099342188652801161644737732554419507908959088534361839175206301322142410956629454177815094393995729167688500463650940251899229471681370899492264904959238653016665977696153487862053486866566943216047116894157782063212438861536284520924943918125703832854486223096387663013787163727830502873983301938369442272095127209797654590539906057153880152087838605391615548036573885557213385829847828710483499796669063155619133084794312227747450928313464482312898674380872424697701433768264785105448744850858457071661079914006205245218925792601334313234400431755318944256319047574889189619148366440321806864624180794888967805080973084143379534483695663982620537216193674878406759289076727951586000600452809477187756264140812930218265827143804076085595372117137160849405847599056217157873726727660545610582192946280134731816898412396093589128137597827402905687907890536508880238358396373655810305516068475494796240322158814619547271084524635309435146103613907568324652326970972205278321166259869540363339876393343072100261646938426240925348510136538794604395687562663636759455473066711440251104769718175604550651737017539146248581301661941349774387616588449374972774646110586861667967999936028758868111853836134253236720733362407130487126197702982446958333844327214916776396387580894252658650160031807454598270511714717790476507427809567258085780299297625444979474905403860129335293805498101842504788964081994205223136231371007158317868077358930196237902993597700019753818948907026504982983183058916438905020251897615409243640595083575219193432754278476268653730055159283887886087860914715914945949764604570796077444730619791512190230184051379648930855300442038758595508527291021373714563538853619668249793165197768068766083538265449458627639670272308400701444409574836819994582944559593157181653486736462287789056398871606985786387283148083073227336383653325079693016944559041757549386325227275127840404063415567183383298858229941731872228314575300082868895635009288198395878247046435681181040245129646332337708861681210430593967591868994041448974713759553541802606288384264201174934506477859276226321696345826101389411246066480164626950497654815090696978452791502553087173774951880348334384372868501607286372246728905197601818244049456970429999901156013897831732368361587230960680153004814990771579303543001059824683113681014956151304201015153898925382278080189242466492118675833571404220307609345186153232841890065913140981792595551124448248075756762865567644951487403259295520957739834916531404834613996050629076239522722513682157442202520479080076638848040611717373887129455971553342468360889480854519859986544536075697204280987410782706181282676158842309333029462751500827391127777825580849234437228366218389097142766093052380709293523824802229101023688501070802320350995447359322519955051404718386684025222789258862956646897741814152659289493961767667442874327509935014595608670382448295369114061807662795420620872106408019881183765612924651981519694532803961887740877707194553791615075705432120676862168150829063575491174285082235206868169021449817409893761381040282504377510201293484847666662215642551175628168502677385483104658695765975190168120937063364764926746803271660770116736207280916017926003384923378107902677823256670719897110471780493538194387902811286118692036498983182159523719554607979148845773468225867927194294557007059507768243848145663843007465481681370898218248644907000546321639329372287157124325440290753647201211004558765643712993683092046594377832264562914748873360305109787983446573654981142135772265513460985962530960205704719993744736732520924049602880337566337923989931681916897497594108383705628836012997346459001086444215850041861239920626237217595229849169652965620613933799983663813845931336738309374687557704756741557267944516070046796788729477711762743994038751207207227314943758267264082055096317905689820163582957125199605830280539258882837115138884101788314229741495342219693782842695977669878555217421555467964120530098433271102521128518482345285871962296334067776453331455649144040059100258182793877427579651015219634096651172409575953082456084580358315729461209644384397931520790568131585700429991251169605467037403650374767074679400389744450149521830468990594048741199780033790136863411968230221338842765134206385292506426970748466452205959773561679830157838363061346550175775058964794414232628439681028265274552988091019413387050372519417557589282588574921844065524078075671893140722820372090735394804997908130405550762371546989415986233290307453018251411270880057176694747187739786720108157997726020464777964862376254200734203872686216116975765327911521373452957812611036456175464747067944628670722293493587550588785820977221163660495805353160370088007759753040046099006749856288655624105509712771758278178036719703726558652735443698046777967757562975018050409372044795935634321662900109861167720726727146272086000402753644707183076701061625076588250596250110665213656804025993272048737365274826878122636701644849302935026057001371158408086636156182965313517215374195377841104313775142183342364035920375055616258116614685900960473044037521729230325362703310075186628430101052188253397070929388747994631667638135537050001886487280910108328808269783244737650885075616507055431440504804830634588808933509114801466560382430797954801308870242844447361504577431639414904879521713365041914806172328100085191115489911552556346109302153105374675387047436230212118211376603715957319133988121304411003165199344547667796379917933836039341765170790864814364964842021815402317052688294223568797291505138163688629208251087547012695889204561877357169498584478321191765324291122820893450979856648091933755625294085027542246811896653087508240367967403816389307195152025818785422287400400473670063588064063248124089708447064976395909584653031867956045062215492176117752275428151818076058534372775190083710881670337704108469623992702413043191528845018210943313175660603521630368663007195763577493427697483641233801913719534432472507481890483952196059404383994403740430370629715494743928522297261380882114271980417524256194783840718473577424391773076165492594444173922771657155908420984743260358344926703620128932167079245225564323373133192463474883119529273662978048215040945260916981113135745050118186656389413538174615136254337771348686868495293257100564997558855981655257375585035335811216753856769588728189836042022258279324592093447210093706584258212385476697744589092564492106296652767627428619041950748309647590704934583417817483166119540091738280238068582821849496552788529600769000357429084641706646543092533338048637896883335293499233031683872568381396768271873227223743939790559870583578363421625891716194258682649357098950928849157156436236855006934030643115347459576202382296398381065446337202218721577373255559910437581554463769685006874467362897953544364552153089320673670652901679701452462924317193945611004524390058869156715543862684523875533302156408738846922877637038724750447749274546712773750476060446733835161431485232970001936571841802538679812413628470886349559033714308522507120538688216545192613916043929776813544317797560746701104070282885983577336975151338753231961864916293666078162198489975550863477184196132217193074461989633060046068536128777658495979998488938901823290791911416923888986346560100675642701587661101439853660190632343610919858538340554461901134245013074972195711528056412031498058907346249311075969716700954306180331620998615260211536748340884421374174137925388919770823315375903688048073076171730186465166808413640226336948054073045832883902425793688868004322958657686100042765751475252704136530123673791515802234231719633800316059753961583914223167226092483927478720635945472670289105731443212903248586298328385739103447134924019226683335216655736995173249245189673388577721116234122676466698585840136990474777500522640807981280571806308093358885688361161407735827399056660672931290768876292579696623815192803605996492316356293932899287094400184249342263676130495397600127105281567707836610235822918319675096944730398210960671968180054540127003159013126358890307782426181439086709648135662405896689849356714512930868775602634019432878050253180396780403072208835292239555453331618030844232084272661900729733284386481605547564475015601746753978048453856772901686904938643049121300398193494672529561720285820321538390911567071460278182437540471115701292759937560119706939180382873571724896826585470617289562077744012327434500088721440770278157979484173399163191846957097641398697024152500805124672379846120044728056178095182193005378348862620988149015073821818646545289637131018883969766095535299968312615050429933682208791193185748183013362658881487670566299502265435732992987529410318370704169065028602121792359696268401654516953648692497182629411209918604259879207746735040014411779943084545630171661869563278213625187329466394180415445001067894632804923638602277437505857698645262815963524589317482265131037168376527620910004372612325486880859425874453148475143379624676182479225845084527457117817847119689099638340038411764384635781978403755265571141223089591333550005112356458799908262232427412278569720047942635354183534995932772176510098028692667519936304580465668287733235842770573648847044881227673102526741497936472915399773432072960387403546426523170352027773759303374570132356654808310065214915799274307855679786109423299170591275449520571178193092561976770849713819655191630979440432925620797546404769624746238072757175090524130237401397444082241101155597171777710129671134172133861246873621191352315676590014735381975138231555417604794914245447151053571973907419700510690658343173316401927526335782014105326921403689874141731905236201203178765354718245241939044715616939501083984488932841522157748566320067953111129194552670643575802504626284011777348512819112230768350186291693553353420658008997100284670046973798060910170292881905679787365614984820195974621167142844493461366364110053650058264401064473781055402725668038569810179201911704835457799332873599137654421416136624096506379890914955822552804023925914423601722130537150676242370604128114483922725524058412721207488411520367607077622314975327921424604434681804107994161220239857257819404955949723381201509942535746842886191983596260815345259287408226911450265739602320515100852016086203397124509716550705075687599176965535900655743990430849400673034470957549621800542916240472360594391869582442206186153511926934139489890356995184576409179808132842157988463409560208795690848555107034712571881281353994446884838650892550558645660156672195572583330087904430062239600157187769784975978185806679813805670986132490424540340446175591916922582975126891819309322819822761951041962392406670339130971880136435011021602499520196464979224316685267607798436964225661269739105266809236553796890919776586369152194379608564266870206575849870922015431363990623234947514066266069275943053855382276321290878823614596137685659969520887955084671578932273465042509883142803106957609808857057991871291676137675700437816161150382217756458462420467927113756128627501956784143417713824985019216961754986114503215395698988824773388027415624555902018078689836210478326046591679896127350748045974427749303636963366096755427301292746638220827268318226543189805049352450376441976695682001620033598172047097707441380499006021888267600418100176675957810174796390722920855838751867175811383776156869340400324116961978129727429044232627114732835233196758601398108269634669575045401170937330079860448960463306005449323522310151745893521912694099005590885439509110502155307109326370531348112361679593070487160424617218350577598050766503618992647874307958255327771276176849881980369942029782965580463475224290966070009053110384669585756940410845988874449402597018407371032187624469030216122813713643644426031728944286078591371035306362813625574748822756074326128965743937267366242929770377510130362206303221832911013384770927513300159393410335801239177196198698441208324353636037745847633915609153659816462008257335580526559172117422210153653898733076983064830177316258147206681476168355954014852562410219029063219374839851974716859718968762288005323656973479757922548187471484077653214120434158372669578323566241872294499767336945788030987493692796467384173924047739871175530136910911675148381505454274320533261363701910268948254413468953841543257476451028615358567825695771435598242085004171084487559837973857917149209047744704268873157398535821193352502936504793847572764986378235621531137233731000417904138324878039667974033799142007657202992556204162624668988430213477583303937449230851106790790888646389913666893254342117573926530188310332472434579511499875998894258205719273155073641276015011197672921256878316730202095396060340068615828718736791695430931330585189736225217655160292111586020710354595768262126534280907018184717250796418249119427255346192455046685449168694297370439239818213114704258506099281274441788886365049776596839608337758611537062424830202312865519768137916061392090449993075195718298449087471450407559975433601553999642540923096525653217590068061818785398983498755865564810986283122631717595872673675583361849561637021842117691447216663725854491100458371237253628267370250142583288926055234241521533958125912701364526056745942200081677324249567523148223536607226002241029951509498419512095061382914874835565155206598781950396960625744041044992287892346985390400656532463985041034262872806936187902029643538389721694741462969319419339376384926966819008555584158310339313286017557590035094145616176361920851053240337282722846315522711580990051940773007591183123102525942965409744139909412508826322494053065561593345612750471822981732803289043292850161125508722769349270645026196202957910565635422850214332592308923969477644198341599882527728649931845647200879072485367325518431487245057701396350299412026552486241628837937915739950869903111652740612182282024873569826142144265225590198149224440147532100521823534379427082642626093396224530333139958221243781144248502861672177647185713368979547756792031215787424485742573174291495442665253327919196063525139634580145561255978677342248774296972351853652256159175477473615892905782001049642852640680012505345027448397824941929201684375516908248958031103097829159662587516383146053407100366938299979120096721467266415901880515380723375680276118381460419269348993339570770572930334186982003684707925014659688842287853975601620750434951491486393211149705438637753138003829911047798423957281337925838178795377277325071063080810027231957050327278602773818205726038269651461033854059581896378228475346754840211232553907748583946472383102960150674376001540612363325158708453486946392617412056865462668126419728112554328462484860979526729532813594483771794981516071757568949697647446828975986394387076504245122232552823227363267327061460037954771375805801530802992682184093239843604075884666367507729361376371603057958053953639429220250700583373845798520609067464759301418227530014919622829980417726757294652883932678915603331969463354680894328496428640742939780461401809152792114063561023301687711442343082603696808803300133315305943563129591389186696637072857145032586820402251617731533797387669815785446088255052067931469783076382185445536205479666986121761220273767632597652839973385565100471593502897769366028121683225083746383517444711529400825751556582924278668952025574919920973882118561002230079433310653049777397018514179343579168989134263561811717078416949018445620315091307610739275798719842753503113107435935338207665328095468651057260937636503093890389425889646496648892784367297447043341094965460683434324319044974860596427460693466018324036772503248303758083822860009371693864223206019037369063794091668754550603537231963226867502240080574083927806887618624169814989696324897318860328762701520391693101309209138012101280603884571121790202622315837532237872728502194459424436133490277789393245222662421300010252063165832520724938041075523389110062029412082229806732713722560417783426865559893478097239225847117735325604899576150199459941236517044714370581941680871438449826752700339850941706736419822119018854441676084289115226613695754182625223367351317408226662920752918931442806182888300868185549138869416845110811114346179423394424903145547985239374680640233207950000277578921820251904414716009757815502430092640998635325776318355732666324388113790961556851657501048993196579519295770511046159686136004826787742938708972647984371144478582152892975205781735141092337442236003935959567474457589612157875321572273073575132998311082369187124754440309885412106990580993885740764604631674527981235382255838407972174469616817688295001901052748658590528530030267112278488347991754981121182831039276337439791067553300470487431052657574578982224053870021167994142546127788403641372745642318291144188604819213300209137816085288245480374822016462747455303688891759484189517067720257059931678819977713849692773916636420294129421373283220488484135622461875874122913788395490032754937012106280879893313295028911110935172347747758352098775561150671253969442798779948436039329861372088547977721447388986347356628528890396956764666468788880560085917250028158519298458460677428165729132197126010402025637281588736879406079858500673835195767222506257534362659341607721422506931433151951322399576382437177196116725788915029597897208261549299479823089930341901529529918962567297300931025607359782577220082876425245200880016460305060744528558360962368423638441030683536607013550696881028173675726056444254100052622041758272563700656249102051768018908409288244726139020278666484783780357771409931604112257386400068112592748325938597107926548270498908812348470896763944529222440797763621968655372579818861530915456360194892131256921369277170276538998830694295994310528682503874331009601677569224952318143240084828267683556788565316711894601622661731538282882067177876986883126795646093014872417901525055759683866325230623492412204703258896924128643607747892346889835147953362632523715002888874844551198413469650083489704919183898776807505130765507561573083636359902178092315843389176871518589846587330139092784310717763119004830502744980997591296512320728902595381185997415900595863890524031181010432439901838566954578579478195908782344793326032155617039016792650257119930057669387743219045075141259880945075803096273034866158462063469188300800297149760884533004946028324329366535064967702549256631884854715743267234891422332085915421156580794808292758668200570171790791558623569421563673764761104971614490044338202278638718607578352706818723343601537583971240978263192479566652383989197366266222906626106364400777186404711450760795653540967566690884743974176035362943892465513179541052749372874452328051583094934007030040876356733056999861225172794781504287472092709467641810682114713056863021357564019043194940492804363831635288452099081096333953506993877591926196535600040676018366345571191036454843603914420340951765456120872557290880075794359804172443774722508634405800812128900863373852867366244347368690531898839170565985888388515108620134369187970058828025464311904636504487841088878118641881144342091402643367451444248698310032693145192388860715819315861877185477604340125548358680804396293557171869099668324467328494256527126904045950824996738581935139121135013043280225742588227089257598402483187481051227114113592535069248614813334641488965030262240175500635055226450041837567211242374501697329824634518185673704016295843235952379923317640203364260284839151180922975313417595373207587215650587140473373675667431393733851637924663142212564372811976596268615004986863290181884941508560530462593615768464625741403483363481016664795530845420575463938670495034724350797034539322414540441472954751700716244749215629479632114469571110058957815064195346090682890414789506646381163035009932402417274477740874602463669955079276587601888225057823320134294723803339087932373522951676052620122207572409214889597130859314518909862170654175283753167120991535640902167026973649318142574152167190708069067186714459638904481024842303511733405350505811944729028826687866494491890829345740254451979131814637314457060258365331736500453791316067722584940895797747555199005524823273010525245444434206659583292624013600630498742168455533722136269546632410329719456189331671866435774908650029074976608790652753386987400828352738383523306156648780572282437737664804399982664671183263677304797429163973348411478160330997147853822751192246471885036785108092070608156271477158145811431850072020329960007777295459679135071769877578130717828304824215284303513006652696215280641385973823936418844671311394005685717206863274411463000665006375955708275347327028308395327316759048426171092879404106760626304684519113805310737261839793936517965423242510950244438846714864478700895522757542224482565908786571308257902208410768382795452620892917028122134329509350716451607305510902556860861759619643434319891303421508823689179702336129772540402311367076928023416417555670525835870970398652725724946258674144382716087598640372401178632332103290202023015708533754884601754407807997241610949452729186612885474898250851401746840549234997349448233449664990377770833265762151849648821635237673814227434257921278505028505365203342785891553257739692178361719172848737671970573903405264948926907403149406214607752566057615061177287727609635129257156823570473140472200455117847802564503631238035252678055688159740567891583330322322432013234186653534430031628567471475683589294090795740316641374732849015894138637138062671817561444316860361033315514043717257120812647881068329294491638684271298935086717240435923962425612590149110373999351412624949340000820986984205628462753103332898102625655511093141876334107819052826213905635660554608456651563647261062449109707338720575991587926281972062660568151131627565347146880555210422407745953828653709288124652957266662603688441410917822019640696904368961415199993605771381359067904626625490285834671061138314989983399418487883247437369128569311812964263288558519038194477504134473265119746439321573236930322026567544831532506578829260362010590869693163817184485930649754737652860896437558619558650268307217290228517615188872566156030921045183514725470559410730165785173494972008437347344395879908300407584096615753537907206379917591160804486639013291367764627424887604465148124760245325376674097722126970447587040605372624546526467816773536301670276590583562087395236708639962981041476805220527022330063071254818349124160982647673191970316358251071933135096764533858472742174657638956500415904800760614814903379217113098174853294400362739020894504113710572338977849954638965566924787429087563392866318392756170946639362835640226587589711862247885533623694064428895209474669852314078638245233731893001950631419834943825147743373083351146612520706648111974009957465202045110349216636729336731577767914949841280271735795904780353227386794215690747511419232510582199475399246269997904244398236170642319817281568386716760981710069445336729707575041142812689926690476386622684421731890913651823439353810203659631798921729370270406251217906025410966366754952892520648485661344271076044075212860697434765335020056487498043628861752504979646155218916135562602714598444880702092212410734413317132263573586130950161124911311840205167879429269281979933306571313815972985385448348396889387594977459165137270835383211780839036220110037717158435535483371412642654854883159484852560212184011484135641091317926304193826175693279527582243683449054018289659083393089313308053572315667286825446148203589487241763254266754068996677072919453512997078220021660049517555315216220826989160609890869396955957092118582541293637448304898708473883574806057832459714734240572444253931642008665215362926817998891612201219714672042130063479374715233837941507421732033069837383192765086283161824764960379686111509005550443366584062973253168325985188781846600638523458638244373365752018362167785169033216499012106132621989718480737730326989304273059039492459958518737306745643668551481924158513919225513014841736975763212650451148662970343508558001755687262357717940442087005538315206754505681398027660136049474896324173177135922669066531698156274481602424278601682247203864412570282529899739289213881176241408696420161241973219341621267326599600411724180277632094089902245095949694718044102699046450715581760577657183470728790490732622799796125054214689108725831329949582376433391559055881372267638760212177554254541353617217945553864169416544661762225846789548089938011616609728396761426006396291783721232335352337470840421358433837776178964777846205845378985947467239295823451176860715093348510580368796445820108498682410597435486126714075569386687890467283927248097016703122740971959734340532652489334035933712884885611295631313181402244671568577444547295186102387562910342710515322806378958843454473096821688028100210521075816763624591667433191167928884495608141393794471291622798824922122861576363111887945931091811779593876058385329320316087414633758444275762941919661085752608676276787267618232838838920603376417702856657948109390307298827018476499400297966918815313881519798774870194512639806014780912110072633323195827257376917700179184613540160283359843008435366220602405678612297501778022991501200499204921933564820668515171087669137606185203027532789830494275336652614582646271349276275239923623931518047756086669434349462034371803310647093376321170647558424379722666391807918634822958102630392753713234757062749231024933706048857382861000003434395790783550719111185446728262100237275696352349266283845768766945643186461358697698372683906597519675730579870108765208784712876483119480163416518190347283086330311024152933270658715646631767284443811154273840814072610791761975167547602981414924978206137073690418123442205183616882099717114854789018293528140999191650210792002780968374418165386055093239923953715860428506209765990303945291692325758170796181183639530239777548872415727164770606938631107333276293013441837403010554310330332129008108106255578576026730743272495560106287533228281794076255969087152316423397082088166151208585416863484773841435365607965768910398391521740343163471069191799025245526595961194045753092300613255365846413777333695860874269786588995038895407250507834089789927438314335308113220246277203864615452017214309990646531569256512770003154341408881305056757544421782690294783386092814343795534201606337255830141145778086125909962858623534884762383480191267379914246547828306525145175493605830747746118945910393249988136541095586632298690768623381773810973279181806613630378798459816795684596133265849723685112358573323838688084368167600573674795899793826744102640612011587223223265988319944680873265445651698306153480785989944802575765150022821378347770661832933700688347249648812144200143876949468565245508218257453463443508019441707178459291045807837062144676802783788427937564240110717635016460491463175097633947178799054328483749266322361465350528456137514435458373459842410489769510814573978570750468709541076903104464719655840898290629732414187038715919494902863702520279926721189711579174016720406704465008448692693114519645885985617534526190749230906790775352849764206064676169803803738704652667351620607479315275174412133762116082562354835203664878119974632957165345226557514857634145612075348522355701733294722168819731295493202079035664952500978867936588205148762006767023094547717857250949615887291229671970591139627058825904592556114705198372563673210088775832199029044340406507977413166260504324064736074192858930171924665112138858386847700047850575939141381555525495379621184320374139872760343000855990363689758341969508481565981706456258301916247032836513387697028706145946025563230539096376968634590244643422498854283202746350354340580005589738262393949066606820731626508647222012577037152445449496432425886748982280338085466756881566680129137933582442150210256687197565497389178169492345475949648115263188747833074178957940082460331029023654155401279448100516739274649232062113157359723077123433236902153035308541818613669242549326569035367652424840018455847004206129034602652669605732967099865127954006759036432998478154556094680231330457967614519442618906955857036392273487921695173418704773629708215516192782403539029344816052586957200338012646226318801975010428971693918435996934386079364369892523293222669543122856365451908263776960136318802223584232007506715821739534931885799584196238581004873922138363939174499248203499057164388980480756453576522134534710531011144007522808768309197880544578879394404144408845547760832733336139484288795645564664968202984412976026641025411896902504711395876593721413488509082071521608525387040654101988485145942046117441244024257668009912082957401264540045991906022535656577206995357905533323113720785226113479804187930367358689984120067545209867967902461150872140576494347735655473071700795663970491530310459021812565402256208726389427165525180004888906255935534892469113012950801889757470225305847394087742201585984172227291466016030491535548386012365623737850546821406209596817451017668254998987457782057674010805438427259223204182203543130308448980807880310248660388503787251069008427505138513194320459354698346812672729613324545165930321008023402454593526060494454847095213034690886554242047884510133048003700988616313514025338101547461373766751241819606083962095366465059035866872918879394241394510867794807401684705330111031209542862354804035796272193920821359438614642619529675128567484018220769040133520415333289302774704996729624135129439589749657487183660687144213338176694263252185054790502383800010838077686306176968674157895315332517179217473735908344120240221186080166273588666895790280026572257407244177231839059781765630980916049956803963294264911727223479371055314789751197031564014796910036171776295461785750908589404318284227651350136652644471790464199522926937456804963649437950458303969518961716989944558099436550843684437851294111741591375559846281441078840101059336594653360751820585222842164709241548343984172834509280296446399578680528906396579548101998383029637642083502828950665819440312928035001436980259201235787305242554726268546069226275486180460805684360129853796037981372302729703897498398660270735113135835958114263313691360679283684440258493520507069251100995237062439880151361325776383296606485206054328825028808038612644785315722776995757351849512691346510479370150239791726742920153772310108561150373896342181713100413784331367020278236304391011775876892878982412509164880698307539945413453876554125168254988846410843750259082962728165445765909707900413300906570606907566984291429125918029617822715393876905866294918456363060584942948407721997884518479606319593673531655214986985794235741577261753832614683565042843106471544505204820671583474201192508030838060584614615225994841444025067768234959770352157474907174199312180899428073955205513260705262273133447646886513809000961280495145322846790812995741310113383232292667992352886634519911189747911156707001601478878406271679134234717637380041267935537558683562727554023728389190082920181123443500472811918387094569397342152507914898771881500412057914021164457105204068789856623288335703548453524479727834832748297711298139394468402213235632169277964332806024435625800267584075277062865055585102092630816382299815604447790664399050183558514162204091813572612930180397114179633666195340249460833954083330875681564093166021113687580771363508145503038099318822771576189243291119014810432669109285612882200532856166926692565951908230158854272394510767126508275051629391420579131188201309702547937527538277302750315798198853583072885220994677302908506780577612707106131360977083310694414495370342061814551512670863986355061037810266423426804495434014785802089625067063799145289544445012307538568790159912391638291904763385691302416298478312459199414461279874092696381984879507233663451983363640287943647298359098427279151879011960177968056835880761159445637358315547329756237282765435702742805313785087618450204416910366485139750007881692919666851124934004310038370675952438511280874998264968336669260099251984400213768054156532058667982111420202570230022328753397619718001063946827659570728019156901622586718049028551167206160009649522354418071938228307787799663360988332460596516189472642623848553196151061724948046452681157783764010060668004301219436031378126310198783011639161279513718080348444448037239971964429408255265659182938962660698107628501252165662646081805037491133711216047944225166702939320155640396199803827605685474964558021199288799893378611366402193030645877331586875019351602913437449161993690339780752871435498183350853459057855195582414630225182433802675537643681195504970898900717438938149731895339980821811757706305464095269253974346529660126478390253202063072178932989237032271633752389813803517417955770861494446119974193361700891802535183896398155436720042804695444250343449368708916449139805185128086822528822847512436540854718458418224328602666992883427055658704743834135145350990839896369102945738612412585976996920352955546908672090464102306112588228173148857866309084216063502812376431836770231326642693254415493172365385724412580933453110978786303193346842520529768890447846914445487075566950414557577351553006030775099368961689017817900355613095969168316613946157224482204625946587630356903131002614308804983877538388328079577190764692550126338840353530242506087523473430138632763496032215986433508131880476282198449675477358030913260277639872000556026121789431878224421368645101043152426923781667314374239758651811687560473024008409074917690971263993973153568919132409074826774965505118803465009425324990106661261836154764356541354525233216273768898754111429118930864793293446639047957422658133929445608659736090889042310382656350322598835114789689794072044531258780373985205062250507063845592966217958119928118038696758403869031335594472980196969373487617027921043318713405487977258410126599687703917325802312444107629961901104302460332383541688585570828353764411282971754713348327733980379606039314736040763114045246205065549874838094243669098824844856839123968279035263473602518756611076524082269586216612414134416031794045738972784759084679557773245435450534245365257203350273266123217544703357589746055719153817613387145395814753244799847323543888813307100877128847864427821553396538408107728137503905735164159227185589741297952766760005001324610872836753449628320618962501029801221718397803207692509187789763137945855245927342284689607634663504671372201462856721737361229276099331750865482706658258977832537359705360532002993535650660724268440421869804682387824063679901718073901466286504003925698729976947034522571179114492522111400742087549771120543601169737260063135603819405136817703911593408905766722880090576887189565189323782478776294318885488137441209721284909765035363741128768440706290018177965017931956870196541744673443905890332539620462719651864594009331082845061884327141501819661184147821918738396421018803958456441896181448666512509782141326611495271420377258230592452694048715980731893095742466357050289823137453230725954486347908795968478479152473277898545620309920243908454861210897881467859069650514153351961911064991147327877406861455802170386092520375805550739505241975863713205930025007345868347134445915057880098824773562003863340772622370051206613959167959406762117973920698121294728404240027172308639118395099034891901055128548947236176681947629190556665304405562492121824333007995140411444908902052227790287716740534331890628498385110144522380403916852812529922140738809946223824091207180650830147072486507289156020467522834246690965032961601176311191861934520129652800612264623049373140824926304773698164084269718453508916135117378279761564039697941065308424541061747967118441779868623846306922373231884227630048209307002720343464057333699325334760240741566951463447569417232018241263623001728799658519043944733659116920452885213335904805876402566406761423164979800423448575751056436515375799454566130896512481513637816869580352929722551910052095811623413680386726139319945118993938379364470328525332745387384027718992124137397162822673532233195975943578767910879124058625689951447257335510300179284328221708997337055931359734067208953650414220487872949334275044604622190154344964837462889364461058788908209697744964245028786108513813688440467315841758481248596536839917032994636035373696470163267240743106733147492183101707614344573761160474138400164476683708018417803622286504733695098880695980298715271955166271698028640162367110670941253800887009035251144240286364917849877033514319215011123323341552938582931570815799358642101377591485220464835850004579786696364647401083461172470892548800399453885853260685654404979882538190157440290751382481310095739859080649831361133633815301296188780775144345874827415710209603510517956385689719090696557347624168324487266692762649085223306327357679579752342234235170094467947286035360896943798166921196571859598096635155727682773185930372395471215686606280661578740431485123915888721678415489099115472572804526612355667544791617154563400354740679425836379602463316726614396081526695515118263806467830272434461038034219191546289081574662279242624608114861660555004363777989283857656592500034153214442345948008560943077652914811200815206433741337889638924343354144680111423708164385799153485232267586305421006331657494790787128977857832358892347743631519785482386664854324203878168413474151219904589243694984916915384478483113745098216264380632885117683833460721678968010164048955624050624012647169237176305286366522027865017882296697447998053061602892440060052630654137332099780483506869608208908953633779624822253167210372607549315517552534275620059185491402558969590072885684682493243650556797081651999878107956363363967608241351081140137990051924971955875916166665640906269484158736746918513695995716684204399313583402663386976575325761128484388619391407049297692859665723027845487287989645911735123633444421586069564849081565794029827432629005359548179547858998500349032729780066428692879439555740001094149440133422796158511641087610226506226000077807509595706742370143779089522410304314975776672516559424887039931497087378970972007705072025331227039862224853676608880344120429010009312942751554975436928261577218779221070011102437781293331630497586414730249399407081027511475035872359846798269087343090150339818721770065591007097469096244930554595786578317618797717460362160368057388260003672796278587140460240557944064938619918915606471272426209589960628121416139199045662093315372497647614826498523990484402781948233133613323926166493546468648307852151792314872715020991263195221713404014926674105471404716677377885897357523753091653769116868599062898680612358307085911639236878283777295466619792537663794493609084469131228963678205686095425226739946138250407969908326385195099690360815953167972860494850307275734840283555546398591246362596105161719948384821225228829629694029037235603510485835478664733786080622743747565535636005618322977364411265467723637104547072131930749389150035954076363703165231871676545286853641906109129064506239527287387072496650003169783656793813392052948231056731509252445560430961083427755429101718434504523291296384367354669058232560552851054082550977958649134743519158004097529474752024509077416437137434901567214419601888029847607135291155990102173869009171793616681872892781402716397012367995778624630266527172809740421157332200053527881111072162601690048356926852774987548691624038977472385744624969106936121524074018329555620800727670670277988019821308802639010319413800327281391235577342059350775213214097959126121994268981059398579777686778396270827394184103722719507815068037792465100409961387462012963706410352723326743939810815808881740243493139097474731331011957207080410291593021749371764890068530992304162209192401807208418668065955370064918649683252764184055459799617048751754426018165941031654329209411598529835777714389805836858081040012672042520810348466975951285497563740581822177781288950033315674502640370550143999928796212585417259250714620268937304985587580358382685570894111707837336236920536351088368984256748596066361473442218912624614723414308064248821340282570017413796837181302234347265926616477900253635076484248920029627827733838889995969666789204956412924190647086553052206081193260254578138963684325441431566624523859857052257200104944220055612507041861066898269898435243748238780743614269242596647249578222879764201185171250762926454791384722968372525426415562133773309654546789460173316404865585194971849465698312584593996823519727827433468714664197752395625624910048500887454930523554905563504650792463384903590469609021587166505989667243405139563386232552164987735731336332745641400867218310251126482375278404977130218902892515905965692579314588225145248986192171287052560879613499513123526102441420845470968535550084402162355859056508597716666689035402597177028588949122459104466905289568793374022972127209543744411505014229915220654846837248550663595675082567958364213202408283967522553178985052019070057378098290078417163300741271180327929264545458117260377257999096103186098927724814626810300388440775921774256313877290481609296101888672019541065182336456683193608467408521660382987228946990380779528546687462947815452081198054627885690358848625519398807921107008847949398653663910051566464302153165164078480494146830273746968523210860133570946696519929511769902747875550511731666929294060425413318268939139366406233232026216701543528597237237285091399142206457917132267739324761789579949034495149297301823393103912477428326062326285003547528663074968914975405736570453121608540039706469278175722215436067373863964476093984361258806416969562661210798508308826725039651296551871450233474517924864169622559356207634130981276532528491522490209898411964142864563790896710071298207325902722122973798355094577899447511051470930106432728639653103586144989431794652615352821066763465354673434172003391681273112930309699346652770612905693101826661616596011327753824430042593675324041929284921027105930562273758729198661249255371453153687495758281070518608022411748943490059126631126363127818024277502702238616453544509783034512467281336556737666160729224204006423767209446661980571058123088384468162906911065141064835125068917397038733961135225255642572210244709445825726519353886824210534420301145703373773783467698172168103308016204949029756587812951202724057617309863380202507541201231544821297332380130461900834146955207579301264130372124495616544531334560989761358432799440584924156697945637853352999033516991960604218565556186808534108348369660513038181187704826761181848859994251790107003154941180846157320110471952570298045129239263111313542008363893667503515406426431286759376252296747748309941239238419330331169365275823330025090488445091078412511514609398481759966209056266727670177388800934384794743689718632666689959165896107839639139492114671270571263377087541608650277166819623489317114182337974238493583045432948777955098593062933172453088612754444696011627998990563081922528815882115896793548168704917432470411314156041810005242054546356972108922420983253254910187965049091287902574886457840055963399440641782053150451297515080306421331430548811044754832195844257895672259297752494901198602381802295644605945829422746427545369899789909277224828869217107405573158517724944104977677049353336696297725486681176820398525731560075999174083546058838626342708321359944009835728250519025529986614378053429937524581681518987814883280055947824864547696459707351258317544599539112319717340050624709500139803677573213969068817455049015475661283235444430915769691299299786370882464246768112976524330381118546168940198962616936804821880587105884560456526702228434036255674954160450186720607287146985820665917193996015846321950140388211130435468555515324734219626338070146296579043472443942599015226497997405570806731088778089284493932154587969582624705464403741603127048960743809652309537271138331782415811487055392267560309287057081256130238772402984387615706652112859948118890626460909617430979885290094819829971594289663211818280083544502134289432681494431592404983209039679853849544279482299916010186720355218835464957663849572703900060208354795473160246330750357150703378235596660719284469482212772908576275331011785772131538355365597407580317671051353709788876371535782672947413797183082171390715655544342720403465315437468191018179686713061670362038684933815309086619461311680151662321629529820065731914455637682031308841142306375575065125615519080139431400497955329197805810366894817498071975215568501361021398427688543366978556172489855952524629578926288059607328409845432166075644870329571704827370101596642451753596422082147123248298556620902105591414640181206423940766226254197187291088244349048421224806566218523800525368837268110673323702952272798636775981621073782950612233925159078901421507997055128171437855181445369638687102200187930912817704693310859414896724477820591153444327783412943432405230680005200972486667384251223790871844896476733083520010665593863395590819280992524243653636094866679129099846872942190652236656388289002321783486966178600753993548292149956612672741246021142657739567489521988431900304365701990247193191326687963870376676163864319875803337483905284432983861451254756439493218067003314689854975586044951308044671029481561273995573361422061255210168529246840345899599762154649180069258265324606941014788603246745673102322932479186099673662781525622434093949638648625169484820954815241738314161759812940187173621574479349283871684039552778986691074620716432418813301781177067333611882062991934571610700031078409443452999054365235325188119491912957375321762282205116466503410484472677554662896255352801417334136463458611567300648985637997878619236726459885175840621106177376277394197991906310816190167120594826618948569132938230426450451067549273829737642113535519468169612254287452379596523361590122319972286900902597204432170845959620564978440102356125138866985218846566900774347608612787412132781263709325551090954694538860658476167340180405685544090102068827180685629465187558977210226324079347381715935610004598342938878201944508966755819745917621638846710739752780311338353933725461590513451875273509452690059268269787421160833679963477908396188481002552349582029777183391482038151273244582302128841924255702967734498876224455026055902352373076383515016215985857102741474515946057781174527876064752032157434824032624022474904588791708015459155424375891313274814618659755696277332193391801989431414403709376151464339496363241111267104915512383385729007071464497079056663234273901899696547051293928813214670859765148800448889621222867593484324629371855680033417639386142513323862821642994442559523100387638344356288846166728403404649357350099530815838727084089651229704439041587895958872371651768596291758069376253048425997130191578761991769944400066632371065718046440446328359566790808469930267056202205161189751955051826073867147123665463660846901563416619522694623845316495448167590128768426061819568690796829990429750721178482527975956991315651149416857557966188297353528386991080193377146190987561851551434009759966141263699422526847411332381340137970260291405371021070859468737980612971882794803784489972480851999396973791535343221643449449046513890568113354188783737536062496689178584312014534324647842049577471642125551897232671623612586984300865941157712529547591021345308198752439356429760972494700263369084641329559057191061709102984820402670019063309315652294625501061759827217823813710335254940857266852855130381240375238042228159017678275026533308045642146936321836753177758464948808254140887915435786477722791897171015474319624758920256831326168198811533272081851487900498732796310124246974566737396443780740769739136852915640623157870989682775788581779908007975964243577803025324669742734307849492250303550604620398943601892568009470018572142245620372523544418602116628441793051001826762586642049840057520991770403443067872277763512249814080984376812639773434935808834897558051995088642279006835706563951218427451522131440601523520169117997391949938658313371308900820202493792206545821586479568981840446771670649023952895610942465336206351084182776280231444004249237758998840346999167454881453843070585426998460147351471452586661978541860912572692595254699964222556666655719847401427286534756343936600825472188362366580795812439112634152372298704761735481599588670110106766660613584073064100190088320249287527804930031863118841392593320676057599463663778288739147586408368139318368494973225984491219786855105242871604775340106563246243541539995724531740649555945693500980987726414119309618338133659009507565118239463150302312158240008452333351696037602301289820039398352855436490618372278135382250257309092907737345494726195442695990404897021786459469164646067171911277823557284706628736433035573180791616289466211597654502103237009428627985751146445620686123715607983841807959885185048635169556384201064650328456917887771484387220404196760803590815714713896570473618398808609197751006114604628568276171646006513155719835547235166353067465786997869639390675722995946062970896247345726227239223750411187179754951997304672176361552391853632817826942596387198773786690528554800777387935412085019304065733134457389497080747676272452158828038612513707045151014369774294281608781208126463145131494372151397035911534622232407509254307401426925373679102713022954678832416579199898398710913860849735085979643422883968413525175682884345228680414098239758018241830244917893304103856409923813929129835019384573806395328460659815131644648040754637953467464541864250634262842912943458917116277962975044926346622632087486449897765333813055221917874851394650097903042634042204360286885847184484643824690558034103384955916050912123880286648049387353707243597394073490226937952841268825979647439777199227790715904261993159959451169005322845638728715416535344294511571764819534711406263864586482911494568051357878056955636139651043856164213286908687231541363865502916461149731197190842444153319213726871113795021255349656256785164467933962689865554542165287852678486926424595056282896549557292963134876424709413960549148079835427401541221206429869548152812779815460654188431635296000173573759029451871780179489650836952243337050199888207765841151271119499440432218317844730689568287948089996204732329415510785593638769943079876977445780877438315020939617894070832069201039356724027495618112676863505891757561634116268466700356086298597126303409227811004502538698645100924313189502505972766569215505628862330111666742919264707602463002670908897045457824331860251288069817729301512744248067423502566496047351703009598946765960359028642081695579948099883255493061449141614307156869418913569171592679158671231504520061235342269732528773051479646486162622674535452975253416989050198332521493105651559158843600510835829343293680625021962457443680945649585255220188423224491632404537442385175853257084875101812438585753597899250043873485030295193970545338091382507416989106301877827721697013892763591629222535284259208227881033629533780894307706807930848848931488258253587277070507183947124171907059548568942143473126543827619700998862454784449464200147675988026311299568058329641962587893528721158386426238406333823965483658921566695264589397293396409888647558251619703512183857877908877849216715828700750627603577693763361310709823744150303381146982601046795885700848886361086308253187116950352508089546720626186871400996631198569770700607000254959746897055783951833464428785442543557398462619309083517941105339737069035370415618694176977402169040405929089191918234252966971819818580060733648173999395878203276488163991845598108443757815908029408109748831496938284103673121129951146342796334545309785578352250741020950639204147758203539672152117910953134614822580654324005110320212809036621430388522685412151222958688221024909509341197735940472055180351778985649345979596347845854233607447236745084230317361439337863167774315025154875224248555848736215268123696348207288573379954508408228765768646479654008651657460226668715195025329469044336626996161224165668814533102154885115546175416605131411005364111033188005760698843905798147721863388134254169005764639372404661150661503467496423998015406946507012356238758825992734791154684623716061694863639362508086960409321769185781189811695640651152499673177743098123075207930898827425078777168043391745664135575398051617551510660931411167056844006199234158714894607792141918028737618496050094395649422471720721525565831388956203527838867495533910758293366809787801009982030659228528236566655416451420481734306369974924184528847781268344248935366102912959928611281737806142978559037338876374268075979547228047953232969229074297798181284156291037246509098337540092702975879691913213962469305869326292133504398965587476122790791109469463851627183880256454990849680416561945375419174010962362626353873431272866253170379932751852744925413577494680487180474728683498493809323737890227806539766240724025285908846765701743419389462773804731222237575391911902713799165369420426061674984106110421995742026679709054990330874308156421500386609812696662463748579380252478533705420150338827991351147798947426681399968144454177030074951655680089926330632668144603356237489541762562741577704329939149415600944337763189708192893118425127792437318250327425430057764258808388987357745105780117424702361621389598601357604737953411272890304036985079481938838122441980374271842820516285765158872592703853841855515205702137045849665782964352892565701040680095596172131748915863883109674204526405702988323774113999691122860175349957898384753140141434342859889735132276853191367869551735980282627965985831188204193984630414281981244715014416339117214968731188247508963693952373928802363256295764980594109155794456743223118310248784895098494894132893092619066281732759365408400977162400366452350435906358466224425913790373028451014688819789277342929255866715768195909075894859919927790038742806304514939345943396158382652586630913130283904848611516474117082563126600184477030098129406222718034187565416710105994383242755885859210827414846986198020226502273585364881463762531537657150667334188910492483377209935738411592732582903958260727391430576078137090822219469330003706529050861678147353958522594595206028397909528212594766303934863491910142345808689184711984175883235423200901577283604123105687333819250961370512442488158616282511008265468900948288610104618181193871745452185874005096943579276464387635254841246820976547864191658942102099009790391161514119948467032164388996295425350827019962629809130687754750359996016916787227905670561110855961478222654024885467024482961979351038262026350320046257112383070318664922637934816799767142999203218190794001891563579117736526829543655165674295815768755218230524508277899273766986717090140882069506257141796382270705588522036683878652663889340409099560215962441099208909970994726183332857217671361021187970327368453978943637003353719449124864489329809361377837478649937627272233998023351139855294537962128356723933035999226411572494398374510962734463215529943629179900747370044328227482212481623021418150334990472158317373902411195280922048641183820366690210059389234780576618426048292924929075231007721296109142570168937663909790579256476885129409607027551178173697020591076248326574613344655250739796969075162420452981261030760452044651441913577998584421221375205844357890305381434074743500537656094810417691980255446937048083850217685155121539937484186953752532927812233672793748812611403139996862922469375926037424082689828838683046378735497824280769259799491179405465259280628123027114006315502494645774011809309876396905965998218334448755192765031414832075227757443099943008803916518457285878481084864437843549260774571646791996851113794287792827103589179173402375790300838751140304308699721037245481969580705522014362511985451992110643468858392036945069653862267073498992428131352442875772495152752254170939254056859156762210849444862714673667882459247391471842959570404204916159559460372665947969521751901826283695918177320396801896699875967850982949598699196671164053542551487772804024127086497496377396884133515579643952511297556581702512258456844409958948440012132949649595256399744705521993127279711884991816431999498884830909003519235806173921047792641504495343806096295776956025033710998133396538986569205165553819802683626224207036600448763875474244216693382251200090570791390965916310635661695004629145674443821889855785756468917804588376363955475744050459403544032862541730717163958422250309193579344154065011262718371781684115234641243036419720710840136967267659063971646430171463411358117923253956675329409579896465848607035134654473221251475004285900093764712808440117592547652776049665945824412225273319631440602556421834362605550412465136194305160849076046899153153386516497383029371726084617875972450794592156814225262720754374479214234350834828928918110216326278013425505664077780797489154764293981778404297327247657204875585111253740458897772061893828901911027001703928950626388565177312958231824951581106073948296147928766698466789409786283687751351421307245472857262599732015332301245530698514871944603905148606053116309637713302071160615890906086311767973413294120034438984973994884471201013763597944166120306525495788700283607484330839733458065655858271160338822652895359123507564504131591288065308259052648980845567307383203828125307618259384848625886205995226000625971780302618662991463589943912428118309326685338395117191158066028085108066875123477597800797806228569442263343364091032123402246522230299746809752498445199035600740373267153121369259897388258396422598321799456684022339754761223559828110418015959988672308215045228498322216819692148853427143183753268776862230000820770339675713458109595694495456956748616908025052049371473000189975404580963726060381604368213735285085738677179837496662904796288633900670657042145151897341152134227947249354242097588084067576672295672104172597414525734270267621247288813347175115218968153814725177949028637333497877387266844732393002265024777064307245893735577972657412224140493190236170449836271497919045024778295414822837112121275326971510313126224984389839070645622820836542757244067173099963127703478363198300748278533695323102618866752336827868063614983514577253468957098101618729283364841446924837441244027647726471937651242424010745287807987014598477857609158105449183941154374297492309103408470117904370024827818374453925292840549102653037225144450546913078395670469437127127295215241532492764617731271209648747702922732738053538953895357626666936131127597164958128878523980580503735127899655350972214461491906659873403161273637943055554428437781145208042643501240595155497513261278100211529893510231466115394095190091705375315212111430870972110339231386862907285736651155197913478175237527716303693267266042871782713965251903959750992602318506695079910501398556169927161763734360417133573671847660079829720426712499664049809497439675628469830556291321783643169774478280391502414700320059312815588657531535389854542844682560010336000754173538730644318395136130958683579266533526374180732695277729693610341217131570897323082170207609827873664850679693487192271237513729791845192928494746868514991149850453584725708264005935506055733230337268207799676270450119060842453982740715713962433339945016829815158739074181746226888088980539435311996643770400495286579178249963948906632832541075654171446950713068948658510969997956590740833626487902966861174831514361009822738063777605455037725107993699110745108473290050834715948064961101846857981825024648447612443459910034440162356821727642767318979430598509652071137373439570658367997748860870983456493631527332193814491760106572360159999241880928988490271344728635718450395588762325908181232428724306797996945240654159221197709999937829326189058843760429328363619239582551747388818373347486462957960317832656857366066122685615322736991804044140478179362107598473957702545368798643866218533057430976590073427832845415718190247223588877988472143738051337349415066395410485062040728648049805638533390180377646423620618300012224617510107044031737232381081048172004910920619036287034457258275994369735351307096165501616888339914790644618201097007326296728934268321525633866950587874263674668240111510541448796631120010384824556130398462141595631465157753357614381700883540445528563152641407725128661899737775611942986800839850835234698363341992755868087825130926067528054064741467158666276895740348618176294761075435013540478939728998169401576248020648076842476629369155417349262248191140789729877656203006273710701940498349001950390050785045341608955318507267741338455577891622395674716435840394551171032290162968539163940934709978755023825269959136041553005146840182171202535097802235674708556027153602829033510461965022867636263914957934801256224074681773300552503323327990999280202101787951987083361972557185908958933766361746515500277222160863039135802374687861951075094408068296286132963407895540201822891391376479477321301366245998866966196857139151847377141740368875288059763670947489064144951195216265873101211297910705659323500711392448054832747672925612864691696009329899302484019472356881030466627405101044644497593132059255917462968171060144730459380966972489758378954932555589965185555215201361620061637951220787953947884687388713450202384480502981132844185801313373675520985045803145786033189995979008684722298985388594669523377493963414932907737228258752742776748226857897052468145512345125178783301939786245180264716644282833767708780544694469947087024160344609249534295626173118931262094557829623089441945151821910386272829788315281748306803434646334724580292129832141719394021167908873239040067803673881092095261918936016504163179620862639067920781090304121153709264546800750253249630600764872615393436619799854245838322650276542455080308667224961503094670523752017227923949074951617252529882107974273087336018460606959615432368528805697240597446650103181990196096775749579462556042567998451936968972947411521754552556255582998441031460664076475809287408379359913715581489029336758416818139103920771959608696859355426820408136517925929111016606477443397528769512422695506035044392327051693237693260365692784178555848236622265096166089002115201382368698513957355669035416395584445521071214666715467475423765551726111226212771536935978159641470731331790115658883366397116867098411702552984773643822497549579748361890822679440684409000499704154533033207022222471094096600108973726432472479686105951519728139722727428515710646401927394476973650866263336945478204926294993318089720381894914362017408859303586171290182018324233238419958412670675450584499205393471410315442289718995355021468752166273807133820885603397211348446989962707994053986738471136849834419636019792156053051686447827198809107272847469734875575955750074673020356442143585508655733550876073556441856377504049660152709638718442228705970679028082857428998171733689113084120724000039995994918297955967427118245780994115284258118951142130532805895044533033350306851436327061763541038399843194620186229528500061428777320265667796447187347346198767792380812836273301540557040586163296736813467844098246008387538698329965016508636059404153356548110085371142501608829388076121593853246142551521285047084844723282355127165452661878355404717827520046719391151462071590805344467057962623452684308810313565660183541031688549412992172922500357903419011163407318435571078037469801862558580155815044144017645016497344841043863918541966928736825767681729126633838330571680446346576762593468742481290762070020458818715924030180819600701876027097143329948868996160743326382552191239267988332930099444849958967986448613373855252786386916767711343918563796771554067925308423032456030284814716754092187119850388394750533191972685038044060537846849366143577291519924809029929881531367802668581248393625330920540470186297019718341979405009592832544200017494268274958729669969279993496257110247353022807066215614623221475460064281626705211398830554974455919040741878114380948516232013918269534700945798376729702964072716893900421300799089679080264573985076304982994106930888292756677883817655473185517116442386741087217267418590437252243556187496777385553266958967295549667505644090046778778274905806369533470486529536137343438523724043364289086887510059942144841825379412676109059130546176141460717391323201750129891129912965294189416094597659907857808638071316226246583405839858212847050215308174425833095712444925404013618993041834337376191453945857436755246279834467798149883163896175032864749836225747684373485667884763985877014628375533757596317572933062007011120076189124056872738787918975319951376497589633617341985629259796153444785922154881773824609210369617240840065148789011816154393778173691659698394436420621119213598863243290481656112709979846387556038914986727407304770601411303890886473115793770587196663749323670452899624632536185728676873877847313839498335011753669161109600653292962792343129450526981299367134304318245455442981554848458095757467707227499940757229137092727989311616695815067234571543745245634346470926068419108854789864364012514643188539438010255008749513212735865356389534262489999390398200723098683385499665969255803832215300576731583785781068816885382266632445125109736488867207245747070122971218451255855701986885545171646644036270946804119613075493811302036107418389250870624124258032956604285868156426474186139531846933988566193389077102188699245329435913264236866746925751922565327632889539041955693188679956007664174225591348295939626498485382719744513247333281384405612655923497385618510807305588802382189840094774642456325950748420260951050948274651421017910842710399772706775538259403778824860208382077314133776077005339837703733873067738998091068787975350249850021680866454548726097462555023358238349925202877675202278828045354206698709383188098233255377145460482695851411028601976388542202189342778050301768406220226386270890178929467452407998515595208008157116519718454310376386400424483439069611178617475431958620000733998896787892938428698223148145155106103395094843755770818756275461099546380957927491167507907092119428366524847318742999128415084833798380604198215088167448490509969937773778479593245052004076064998580927645079379064038181567793996423158089010698262753612711268886031603174098694491663499106596388424891289819320307420608866430591186663523951193916264107480063418960909255913827850742046794010458348507447025323739577132169789711798680860918170641925095198124954798128314725243964378540475809136626127687068744715536315933735874571798235407297593662005852644505471750860072590474064483657253795208091306298962918090890162420887678199174244367311458445289204599382652287577990047403193339623897691655844280745301320728467820978064676665566355822195603886889786604218248471942169894110217173806069299601829961062058642989991221872901996438904710059000674722566653885262820532213811407058341548011639298564903084709532845430019867390285326706536556208029942160838553225351058830160101097167233859194631198338042986500099477718896538300311029806924991590694769432474615207304755134918957999464393352932032402219044537281198772243015517771170962219424704796786659157937508437309388299152581743636488280785222852596755490760131824964922412767509465965102273179720319967815428706404254906027830349457881790127973646021433000593942751375386178131780679198727048899909576693365043408604226701119637148412889979224851398401326147546815449150255690447658055257640894831269242881128146225281546680632000666998980709906485154007486227752788134732986148337879594744891783127688925058716721494862849635975836401500582489788960373475497236696423178648762480174260211486083057051146199895996854026724237213921194612029998844632889458606369189096194294518388254689240639827902823492026719568688494733884075894749301374072576774670292749827567269497404965143486906622019000586500869529099581682042914000218776118278812103145947103819472974313997890341782513542965501450089212207795876203404743819268942857887642991949224140310465133828906956566713654415307796377148151120140548009484687655216460556396044127884676994158439384341848641161130409374009295372795314323978816571493120070549899868478984627673755120084396083011979615077569685783144007885918081265521619648782897742478737480903703436604070654720529056854583382600923559752395958196491673073535147905384231140138678443642037541790557608109895550570689227677354615653031140436136797830138575799143021190237983582906579071386902654089147510618620628978095573246008225030724782522734602290277081792272344323617962445807231917130726756222608974451346337322922284778446022695821912929170116885631516467371182175624487897034995108389384052421745079257541448907702990529652005443114329472008137140056388732534448325694907560929601046984122819729430305242820366262112726261001684185632187013827717782233859775447475100215689504218301769010757876624069651639949196599606198471582673908459866528775459151396575978865313955108634582394470448274378919896808384963615829414039890366749524899972688649238923834361586241285221403355039788617330776111582511096106734616597558144104705182584691352188385104537641965372762911869000369434649601827402273338636426273450667099540266898184785243896347086343134001808148093559979315781313620795368424388842656722167735414591330235132474322880506314157787867760972295905618386431415491503639049679403226208102066707324644895449705205544379471529262836105177156826523525204212714412081424329229865912014815850915714975050402909149027598857275630207786180164844502738383075979119617313351941350940743635172008961375862860820717112125394391390893306397490107686624275829917108652670216884773918386242076155119498431460849095407577918226226315954827050675812151607529540246266667097231764588133563934191267130102830149272849744286748910612877806251836532517358858999396985986107158429959283389681732925256023083348084361499992753730093799746810472494033573839793327886797257679582646101096092589999524518577294904444373230435268348600016096491906614834102160638420612232947325449486349614756805236065001568404048611292157626902505205671557768173991913297808704393418305928649648021889116768813113580860380945523275470045063209343685280881196295645604668711318318401219721913713342389700015317077359756673213511670284341781250883689672179089863033413891845195557154842851567961170692257973865862954061350160687601699355352619369923464478171253850613465779199007811885998691797536205649044677978403868686042644201258883785119555437707917620197656918226204135393578052901399082716917469114280006530724954246359769386404882261242615782504998927109400102611269954053135031215378762583931978792637562554085841326751836813011139611921721456197698690042681816666958789394969571433015141178331807538053973640238437104781296169815912484449960716552470181167461620316208795900035369924762622607555286717653884647711991543813730758497455194672209687334730553935410787907243555737180674203038280621987491616607331329966885486295581628316281977361649343237796097179243657638352622014639776644432810917906619062206468154358938332000506708569461007962390233889889001513179541728872425027828947831356553473949682654185228886380010110462484421593889489697864621136917409286511505966823922447450700822537395691746618577401807644917548929616451279483772339090321116476710750840623739329456441172078033381748666530704216780544225576881253026535495993924910727773223945208789485462859094500250314916112987960413333674633147864539293757168315412343470133448973186103332718590883059324045213826453793639045402730679027173703340874357429699829963430997556060851722645970197110718078790565294183624234338014092789063872595234963630657647223018435500865394844764427344325954466473837279699902847429880014512396582247171037063491206622211650668379179547077369370364610961942538084099998412282024156421272129137968197298435090504018071533991105838139899775494984246403891557232814990885668519349401759978643795771645105146860331483239074114271669948176201373660829847884867610121570039966329251854370252113567870566368347725481654064965354628727057353237581026517352836828671364501534953518652413035589209927757357133454394933032690491292713594798896689131420894079592091038976152899317370919814916142021944001699093235081998501378524367893313522406071283165705078490324411606267349870313360674725885646501824020304731208535550608942636396180327631201248298168893065510760829378292230855267074838689555757415060601353996562898086991954997715436210777455742951312544948929240998235838933031623064235890836547459363797144723204934158132809741888103482970260311669120788098521987332967134868430426350841044879556661462015819030079982976417070847788138238054750475099249341435738752173197617602077715289826715626297957742284307391502181474399078620533192172422972234017335586265460336193318713613066582403915325691554531676310143431515805139958431923683591239269796214397045789509655826332660527538634624668194305402441050568004400830230850108102975587204040669970129521382425196696027145623183671122010510548771135674742325394534682053845494065407633485069309141328314251791489890140370812506266385828353642044969600169424214155872628666181975050684744803281785786787664420569978854894963100598822226228024875521605869039254703727723623508387376059296820867498494949150586235230077404820588501957130210397024989766895161853283268373846355231916894698510405525819815280764979755418419558114585777909460215004843215744998977364016314287504953252953596838966791788873602083712402593143726274334842001947956860163448570137780467539472402121449460551084066029697921560058794640254948249178168734736001829910337181529731454138340398130717721448044001557872033823734277181708622736630907431676019013340467142370380664524886672671872525142854559185044333611555285762288560632962712142753209499546614871105135542750301271380934384871471244003123351099856486722268438271727256100678593368164167397929969464293416249125928948689744357737689854664397017009990751410036876209122691465465836769727836233531915455842149571520163051907533868191000755274213987138183657720392720157933831426527854447249182074005206830308266055615879377175803776401021239507483958279450973380038988858884802683550404967840207275573217062397394883105720173244331335018205862449697453983234713132256628907427209316415819038910416081550939177475327571578450499013568862753722823819807388671103476608326125823552353522375283081071775042383745333026729233656247441761739993645229651209356813593261685342748741364103177864053010318283039525510818816079090932160539139338145802633737699138650369412351491264566469004431007600481216976730236759033164268444053227360139359744630720829280260792698273208425419163600476085045308304957170342394133233290451708618414831498613877543281596459595101933868561132548429312978003680806606162323313233198909106317232246545049158654989426547258492933792162709631819558519824361243649564242076633376273634975659936023994356260188484631453689820828012708281973018775487219739929535658528658233424892916579401686753326839242480735690466987179892816582741238034452674360650677109896916738661636858491582834291617206225207216768581543384106870940249955992453555586523094936487855887229232361783587737754410517932571860175572716559761102633922546804253992138949278494706044826012224695781187161837651771890745333390993056115022211893780515330832398722693314068124353999203520687763115817911354217279076846836871774290903897141392926897301058670268517702733600373829001981077339730652431313700288889053242336590120148938627280629352542692532290663853214998946912880620311011982819988858974488141704101700278521791010401884506921372620265691222684944551096073469920537874144102447833505632589189904703057416718849501405144569687412422056136794043789516980446214351558940079134084470660857042280669365245676366847108312952498025250366841994567264269649360723474362785552922193375184773879534593277783285430117510743869964832130837875093837248768594168628385745115713778699280064900596116051263937520838131642628446417473604025494781252435430747640797805502032618274231454070346536156403302967868616176630928474069063325728620992008432143194307515329183865811974749517184282875060724132426968223267306877919669079970725193024115251780589764583210630382107228506946880931890753972075640482426691899346627406831249878252687281122946771798698521499324245668957967244641334955136505112539073977805619862872481552872912630650856012318768201170005214363734020732063618037432192138806697644937910755592648645541916628628724526195483791334087226853217755321263372762570889307243902480516279077484148213016354686715206876829311286593227816260548858355868298034393954890824613894546972916189905170590135389743243304947639705957986951474478945022750337730731585079992955992460963369936042885027294975543202359315193045662991573724228082305031453610823308088582581463170443530271676981138146988316906526903708816495510246462256587370479376033523760221249727400977151464132441187313888656495219011440312389762343416802236384310163041671334824471516691958297735479574785133031383822089676194437037798736582669168414205172787789817620060444388359529289824854884569937192654670664037590156354700139110830654568513700994733857591668900498106578519259494280582161950810340463382856062187313391813618202360369584937975110282957478705566329937608610821762112368361689464916814480015184979549683697576608204150925223282816194556470577932201666623425564707502700194797876060109890678547175639991664707206902427123610266582395823498050150810871977648462869765136058825438387214682825341609672705386539468847066197107615340141975262495562932601187786635571059892820048500333736025317768753204115872867678292362434012451971862183705461611492338446350073453685440628733563458332246733114181677925685453675480728351329087287490781295784406901766098072903780051264901751045467096400892285917928612036217884944442831436349427096736475413397048653019376878557680793560583734572403766192890823767034919625784951222475220665102387341691420991118653645613909930921442860477244039718618702916546704415743705185725733006084430434045752758762402712196795953809578313519690140473565463042828818900029117243037686709908609618639743153272733618064169112546461190725502074958461211901849435323528374168834018764524085936832316153484168048746561982543667430956292548166283791645303513050152240487739688966501513430041475644059186442724577835834281386371840652072697720837230611217266909920033138318437383804261052012288085146058834612700915344145298170742596943705993779932187772313872926466291913669208764563585703979433559238363637756603807604675993551847097745176718483228290400635402360314397054772823497576494724860655107613851368551499754074144290822997506771045496325876915575916321258534825918020313327901564000710240368193806877541226437792819158732422126765767629008329656207677629793560407773887074950263523074565148306631364656027494709010036632580980974536795495740377322875051857937061853332219200750126651646308417503231644824462166507461143980646177215006354457080968141165806378580472617734345330059313724207178925758305942539774497148529407511989657371080787139995765723259631825288281256842582476605328708650886133835859900629975473835849348238405272717506417500556645869734553817131777000595377904902801534895119808286257267322857266519597453266075900785021923883277359763203319444564902602698281825099447946895479564454853872525149996274211557743275854811990035387707036013911643412585458400127123903241196574009452668136789835025337853276579551140450399731451359042272163034746882801865906434509347627966490806733841909854522313787067005910001160636682937684243469929390960844239955775616425830445926931750314397168746790468165503415103930901972812661724522548503154273906903878177599132833202958177329143365327660849943593173627784579753965691791379773372193133732767979519498903249697468602798597253573858314862830986655891152552268243822306821233355724853361007174799989887699349436447458901918396627976039860483756273714818079989005257835779196066489176711088812357284690008019949753014659487863019847796077875225162756357977116602418967986721260759855991254661146604291140545477431486293817261045862032447112671038111615848838831788468948892804742355927886688089831727057215234496541718298912533480765891402721923467224869441628856202124510861230241978447610905290475342992692515686397567062502168663946753814437859283404108178581406442808997301281935830965848929550093762538021611044553349661582305256722650296122151108155958549463560450808903582964699068432861433128392287867367113696400412270399948124937632821807612657698524009189464486493632422086034131350541016236166725962243901054413455700553132279965698988391045994631806356377114552482152961123615326378437945898608638248556768058820474822530727617926652241438464843059226599061338325247411057221745501598139504157143635191161409533054878776132917261369949667466782681214907267893874553409144838839442977807005335316051401684246501925797550132972586789767538908996045043606448380986757042620968612365079275030519410710257505096125566783215903026715574150288969979569103067309728979846747394756381856730564928762711974391091189315295098425549756952775749952061669217624162320649563153770638245663284446453735982279743071731833412608334510462090082160626056508862749437643990139071426147628032409525652135088954185600115393183755310349399580195136887974882749323896708286693597596365028317611970227847533304963081886007881332412301380750156668215523009807964153717514660017567457457701712207896073873386965154204635898357803668976529021009167762741127354101813166969011557444025178489331990704044963367886389985999719184191029605947933669115870041771433567363804067039484351457010172780480920576944087980632109599085733834379558342456292261263322179743627068317638040818391700271196641649760139462739892978623125016156025859944605835463344208966518756438289251001192508526171349875083050173334133827612067352556432642088540598016896570054949351411629471221467726932124367223840676465124138828255859592189934912405263012505724516086517445445695209349832191986621146388180636936936714185236807047366099939141843120957353954742447021916092205055799784240206100695100030467378747579108287488925818295057854845709992412917361781755468677428843824020799092446543647897812387725537207398213017530554733618149127427120828721367621580362226782112124194592193516736612028522562893657195597737570787721508255634545971393185522305296739151045057664294659691748282618952632541497732492759989958893550462751895573270706698876712206220959982300420389092439774782947390230119103108048331585833824890440127982947305982650368771281264772344381343596665823402752723479296240434656702076197177763657502121013997420822875260583268952777903941261318302970397742711127955229326154745486203592876551788498068580838507910126057176966819921989223490196085504290678338573060359360542432449393046270837353690700644705859892730393103293061267493392626856045300745493128747573567842627157147677938037579638209238223695939306670170933907063265428368131523662454574224921433702121249278207753600781883283633232736769742360253072399686438738821509835364451319614612954986340292036590211337814161824117224727165507741776486403033561464965409311573939180858509110994329406343100886167107170666789470890049706012880183136771224591707747677498223257393053616894282951293037384697446243552857690110359685151479161880221249209242358771697532274046645632459595987017595346174271798397305932051013920482455163076150671872209833186104940349160857519436658157033169292769034547834918215339920984334416705749263454226356549287147520281739367010176012297856406887689230240955273303880418191134878129633377770121276589513253356790473545715572860458290110878902438039380909308165110609610979262519434953722185534185707932965363567852544992535636662950905939959373610762949014727490755459872995438759277634502008040778801198967678423388541792229595524226458001247530110082766561450442835840599799786300938605911345641389326171503819354471411312715795187395785955893646046057933428846135876610827126200435240320562469551433254852621297256497660716482307919206925511394930602867427403649553427535757376475483708318586537064052801373398250457478464444415819123240613770436278568203828036637315469758021771296758774622948664203594240329096122174605216367229663265039414443530803883555274736478974748506222482932790702586033611095325352842927428650692350616636812159056554493091884305291729172065067132772870336313248296513691864307099725028289801671832936443893833422372289827873717220277118958476186169800400882214738937817319408639719332621608553956829417153214268222733224767181026078652319869601197949769958774934313283312072044283185077246586507311461038881961046290252475582009511131038926595672289296851739217143198374735936090075314507785428844047073723408617123434571638138010121131640959980490815098803869797459571495696859568177860962766650503504188901804243973267133283938382458028411011060830494671350736253804883165456717343391644232393321084956444960390174027931434262086253223710186074408338695152224388911926019625861325112897167494995736723977046911992529424423346700309403517281292065451173806385568069466577069128502922789912691673452718149629528840760906743366821574328326390188007348432261086835536858030743416229381738990285346740569022217345721573005189844842398927921783386986373174579782280594577113302756307532072250988819998841625517722695181687379201171994010270449239805001617579162912048260457693442476667584696944563296392669722080567024388719736407785168976858769734256681608480860284911264603574920473169579711500010361705431851651869331453688357746759911285133210931873040738812125631903908172662789067598823463145507517358912386616705722554504395050739627300512736224319774979044642589712797221313501530494937270809754188822251556963652406714524003571838526185519614967148693911247754124127761896132276605554829250922215057276210498691684733436275538892545250092670750080617853405251257157227648756854889699618191856934923286384073116194433444859536959208308183887304737716264496268890237926069159756262978525003827920040858942258261657512744193170152109154919280516442791305624491915130467248728382458755870326915618545831707127566514720831793367536032015895961027720424272015817199560897605274333536037133808462418866656731526830886509240014813521277267185092549375697496739100290744809987233146004563522005657914941591776958434553494985849796421101979200829921700319315292080841595508372986178063155914073918226032001543344165577807809155182390374621102083347638754374204508890512512279696813015629612780997092340747370148720790090042131431173139008254030816540156809127263436842051752248708716729316166011313425464781753412391746777983504012345966927987136766780058118980667818732058083476804437439987053820735067490412703498582685425409921727504790553746738641334191827528259326508183988815784084276129952219105267397550165939279201574346493482070909161226613560837256835927754287700448853863199177881985024583934548340706737473831046829362216384041202153300878173003708826800841538751332792510268492726494672407988860335701727374732619759672402584335772107521371532727145871592434433602371632703678094834988292664494397067847426745587986023516565604411297614660261337358005975616789518968561226153694905432014154167940181608253268287821175403647419241751083314813545813080946167367209210821831273827862455390391579985370755151406897045926909817472747014698112040982772810295004605476997228727708738857637198685464708760064921721601750352973249234530547523683631461562390513432519353344004638514369510398412892389737774428918571210916770857854127600213713426669475224428667923937206097091188090182838048863379785028349332553174823600003893204502668150240884035991465219943709469865965136534817963146685003592375768078966183153262330473781903455869803316498898755061474604333574320005691596825177142540862482952828039490620701598586571885171032576127274444683400417355285905325975576686053152024196223408479066255702798603326995367783823319878399415372280677018039126501932206288033024654055093588417187034547244583841238363200483782584826501980931481887407618280461798903445604816639188658710671823252880763452817999960713478722753782139140138203028651808868852375768772635604807651706806318600098126025005456692961289952542403229496384169729417948044497166580295621778761041093106289198466812137267162068148706199418930326226502885328401689406868516550574293255348181089636304124896831746321258668589855691869340485311827815062007070645944720729768033346987177059812376718283376023636485628999706923152820479317580470321660652548247467826327488705670599409265534435577071604681278704606731026947422727613373691234283112810361763586254266001144400056372961768010740407487796762967435671813026617534373366026792249159951453149420899580807955962460476978019439186229901108037216000397661845541366147292415857041072389428824184735114376889983662970450893236085893626056321946934438055588297893805603252424414340349017335072844465406763540349449263115522804194850588498812480263981067211919528944514937871091559838476589933555880256327614216380734109464648894418473667272280419723983582211924296586463569692143497598214396258433556272117086929884205460217734577827688050198353239115260288629150210103960748335631931966909894254626376195950042409293563616562446708990356312987343127723917488699593720446443649638808061822846564112772684705255638010590809091038922038693429959195262552941220610222613561402319161922279829627637954404874157804555798416509629826102004474757750937871776915811577662175255783576456165186015131508659211322844493281386454808988162239983733034736487711595771831618233092013810533419286888508263002511486344548360918774895692383357285706873930025190361469924161647092453421711940052833292966399593152126755026797800571799474078038592648123838822202535375013476227632614666632814807889141330685598232367685132435121016072471670647953486740242699529748378001091650021013600025380376651701358026863607097207095504729269624224792930456457953509323184057484370758000835536759685109318182378797160835438909678532612412061293858656767931108833854593141203106187457826545563723101790667922527907854413343772970423783018314804591543351873978811473590297587049745363030619819409664896112553639495535985458866623337974966126088534573795440565849633654832811392301692870526359763787161329656343458337921291668594943961553262005322540363808949169676853343383229030234632017522620365137745841904101477142573008217535135222769958775855647400454875448170271769680502545352987055012559396902021787995349644502701213618076824587367747494480063734560904131789442489459000898590448637184091563879489034983478346851166396972847683032236206750318774066240359014268397839582319061478167870091920995711293292597602873912134395354259952006257554743997545125393963451488601595877933968588275576323266415708307094170656056625244080364884795284015241906267473879343095873550605184692476365295644097064265422462721802472787177266665909988919763030363340510629451925444152212140839085795960408064565994885939128246878927834563092804334419111205669910488263855426321674094308624008108234129875245437838324221962045556583682347305176931155631343786946396698480246252841960181498705832222748536433246430896223033119301492121336907116893325332514097090513613597923272458613950077228287928945381972694567626631651123881053667810924903636431084093203105384257072648153867340590879814464836097192732301547477688509649137413455836345355462775988452344532780601376341893627516799871522639369442943370629033299185082076904394417208327833837621604269501486730547773993285343698920412822062497087758108264260280232547455881149750470495156354783297199102619371203699597780771250650248079987725992900384800647207991756073213734924781209373408718347374011071519018967596904857910432192085462952185113290050422150460274647783403233000431290630274807377231622537292371560835547833248965157314885339753701180160226131588592176318765247377381631654656104263367811460211932560307706478026301157106118998668375760615091228195783817047380643108922235152834198713463752513481061880926813057403685178547470339530472110521171040502112974087857059949006979609486674559573697033413729206940717868499042745384894592726406316628670406655924811384869482006103061924427577402275611820004931784255583394432697165312154178246633694731518548239275127739779521488860244323420404766467778523041400892718796807903960273240679981933212829199246709924464359271384164055380257853405704070322825808279600047915953337078376747710784855634569853086099759881616174710619008941339828552518948984817029537548169688104578449912272886660340733731835453938848785781822765147806679643448187823645656123948534961324693886285104151541472547900262597449912068364024337325132671169854394431532894514212895512604379386277587796555243575404711865192373762394558855026953317400052742203595656720725287776304364498892033277388869440855214481343622807688882895164940005419407691256103351520136154281804719209625282254431490696244662236115170272890203086695852511492243871740126571992246119395950398495400499335324437000547846280772339511634814494709447388430664468477408447942049574802641650421840873315028777693577751501394062838669106740865624953089605437624232044633896038486513788955454979826755757784474690630875932717878853174688612618154481126787019021059966255062877820726057955758816841955744763711542301877913269371991827673930894222373600911193799183495953907654781389011219464577307042208394951204657977950641269309336737256019139489651820564820822016410601387629180877945378462789841703236168077978493607649149616782865477193090692320156712847615263201177767755556413452262799908289159328185070462482452579581390788079950743743922050347479669321831478219490608240633274136452266569331442824442530674546032262010421593871141205139311524639067087772775393967652883828043252228088284441302479362388570808454229988423763900233959278572260763169277499493200774827597159637251741374038435272618769105817944200385975461736778715820064875930394805382883285294387055419036691468090225943726399591514851461968457052372511999727032010940843853584183652814456042316051469048226087616056540828031243028390052331081475034917851844090131781405560024206645335972953104243424104988658589641029620542337513566126156507120380874172703833015745157708367495205853572797677047187831846396139592777204605617578860069322583091353197332804136860460475113424640530960113418919573953552854994557201569633410572739349580902133309940943052165480526751874370188380664436631009318830170779331904062624094308842682905030574249066591757779038483026746228398271610413844706045831982031519392282541700013896991854502879171349689616071880266326046293965404649951110223056430933767172373833745802340438091043538408599723014519964657336541696138446848832805662658516874337778119058044599101778831466474686397461546928628136712134036102956810125203023361964349799461302848177975163137992657233565119419903366596872296141469831664890188478711030554865167864502315160330425210340670541462894401466737263350877790699017570628268884803448481633402209826441646900445384955121979986471957926354565009835401990543802724927891809773945918963609852117337599507168163145295057063918187590165273967685651231296740722550415130847303636461300085804886339380772724520256226850611845506655126814794178853809654588218816613421247678016958191943742209490936601963699129348453276684902230525408545204008324309768261790087502848105929473192630979435332668347340973130920758829392038888069612362272862479326989273653384080508873501647018990118068583920479867173524765134181412810892552579279747181502634001922153202820842007798424851197040346830583989045683501643056405718820030004127513747771482957941639658925780682636670312130952757210238611566952827678035996717990090937896287812191546359200933764210876056893120729032915077479488179902145909453478480389850484393865256758946787932774024943487946325053434903637329267991099969753318592007835948312250117842971979709809489765144020728440541977099525716704583997864794759560068655509187710256856508569976646093032867314726880119903792613691047484301545453146522606106902913903480263343185346768695809484348994416802817514093195208566892812483196252735637778498440603391485341276121602129650845209586551724349402873774068609075793028796475509567051699657698218762860134713870125244334851937731537386028732181922875978846635335119632700634645444180145567913108166860979984713978487208147909385797499006084718811502531509901037868127884028423558722451190915849234412343575638727263542403005119090939580086770908700887892517614781530866607299631473442885405635159483398810893997505996702310700032080468247406477431243498242361412785816027027176312833636722291300867609449011360290904073053533679738121365690939295479292461138809791850637517380179858092040329815623150534048977068093442341799362160749663118718095574687587656004857360961761785129311934656558977051847961365530663968387637488161336603663508182064637795423378532016185245444067532034846547932675134563223646970826862213738111548607403211854528934807169048762422771658397078655072079551126250627087946605594029514742365246922595785718459854169954030217304738818667340610907748921271288307000739779229257591783921230249005118307365234986154273873716113253287232924864142894361689362578454968848578395958794558563238759558696160678082158094872508526551981789502513828952440357981624230508628108990139931678542293100433897348517286764304091202421082248235250141722503151528629924553083232171359112447419909200470378537025254647545325011933547480660288604975177910129906367744180652580466946514972073088614024503522689480269789650851320605317321936414270156593814225277665860823155932920845409134073480091834914157493448449073895905497049696950866097368894524466655597838052985992619857157636515938302524051101939477258119232451519680068416246945319978337141840961776572669000495702840315001042172928498662493250893662365956648272973219595572350435646547863426800006166337236162610678388334599439626966603592140306164531431792258217701520959488781061482872224601503891315271252280981695747327618357097803052120142883525394222091717622280911541329759455442158599779207480737165173792799359340367868167312633837237245651911445399105345206153806120819599092418601037259639390573042533146711272875285376039087908857676541495481588105131586086653766411198932836710863242983932809835915596201447685906387099639790000428713860063975339880807792060025276567266390840372627424965747448574772844207652258005680888064335018570824022414730091583973638607253499807396215875205910379154346604619495699463238956792824209694731156307658137997390127111466725146914092731705491661011946668191151155757705558757224729478790786401659358108369357948643756499108996672796613539209395587523239398836526613386795072134490545607154689632960961370487221526783491709152671379606899532111617190048562445077418508796389003921007652263518219477236214086859514085541786769454451038686531657205790822276347639288953094209592715569467729389525088051705377481410849530468464611900466076802503960069532884914694798827770794758946635924231983733543758178624282386210124964819198189768288304577740402349227613226201892014915681321770467179755888016218495251391580315753269956261340112682234383104218744601895336482047561097526761133180685755023351334345282821282206570073426903943809094527056055081578324364252435940587977448930893267325618616317771706019602485223478598854791322312350059748403849952847560589963348782983712422605751558848008523529679569493673843263392700268097920581378268613488303360770991213228930842855001203632062386159425970164031585421164832968746632494951703957649744246302076654290438570165791843321945805885586844998034266485240576458325830945825647481018385335731744657080779565380401447548007735705382747152567714147009832420249101514684386515907769957636570174446779492134972459643618372145331361085447981678220573832567410974492754086930249020049663307743637381130069949989920823082829574207168417003697807834162463063566817628611909653036039000829561446048209841443072990241624507356242004683146899235495891337484943155493030833200684813465651519630055526228262682102192344130363988115397338286993627438342013391219926527734250603756180887711161295049206630577594108461896310166653007980660685643623954870293171052043669922045571753472271855880815662736225898432298739294890785624631256613023313846542589728664375198515575009053739522035706341528214753862283612876665237206321139719083185199516624390843570402477272124275343892233447109050772308941193931309542790670650089948374545453121828398452279762109438109926723589468775883774081244419260701610683836073328841982872031969243930528582232771702685279945865327846029601189723554322161495869213451584315141336154974339864131703078510527136685041217251625262973158707160585115922705011091547922784448111672852244425673853847926154883232424664016567498115185084602913772736995519588220505112933648611821345615926978966262606489570381160323476099654614086878416977590664572457794856143542427149430709189913204648257179162133419431547189468548655313854122881145801084579367194909238300044748410633387636381489649579571080735987808221999038403394796314331386494618013210251021305143497165587452290174182920017012519486393575017010745681633881201129880237283200079179566636267598872360892607024614726089908745244726289028444710929626451249777164841144186764790534865059259378307994168836327156475991438618193425743563951979577363007533210668532516680656697382161683075645074875826159284741203400149434722847203570135118365712446201296252324237524705526760617992693262769224345781979747032091107098900477491945534247044636891972221493936058131377211028339137852367330104165076052120124304068762506320151830974697407636123003015386162179435462247162158051777982075571626239078526504763401886865215300464371839515498361487906087653726836089896035307608514815406419449737950760583990573372589038548420521712781389227329722141293631040605991607235441096672463170365694415809382840775832391588546429660221927417724242388518672213330283761086675677474947410859385717522765589663849304219374596671772945748467278189143253377745926795032945720098552407043859147146095254786478501624155471586752184474598731238458594955021238851401385694475237233772386889379772778611030802196939791626069238391122447451543729978306022939659273242424233443177458943745734531681256624256443744028537197918725735478681047645688204017292432360089579849735717419594285857209826084679210140826980407527773744836470395782828568821515540373335011740012560733590598859178616479392812318796064377634123437221155731104294199560064160238968256137979428187790630186075793563449504590444547188444586792471305699972691697062513659708935744415959766222476957069861891158043642832082609183808467313053425763118175012459891673521829780686028150796140541282487467773667124455462672295430720828505008937078924987796606832263986397141250230888029673111511434134568493085835879204010715450767244699511340426400425918226338379471100342189523186861917510807575085584560068092731400742002979609042914838010541088861652290811091913522100370427690113830005033875815209898513545159683503162406834769607156242269330599972191397148232910828794348687814741161013458362125301586052186325175332422823591514769896786809878620739534056709227585915943584763337207833837842837932945707360179984223211492472356503148794039326264734498341535923933962544311668715966335882680215322221853113980930794058719842279998970305441434961937622589170861758607397770078074325922947554974720562643652688639135018920363493313324998570513654961204312764368964526711116702763282621969118191761335624814069711675888991090259715083891186116945342581151718545503805591232978700561952261805252651467381776756785259495046274402924991052401588244683450192215628249817383284298282564490873409510938243871539264780671451080697689732608447341851888205765328258677526705834294232552590346370758604383827814712236290188708618721749904501596102036214083151139103569211660572741722164028829437615418594041557778369834188495178512663044342651690897545421194191742275238452958324830100123371750429915251274456656533568391934006481632334001593248567154887606237986484803100914805169786614295085065773182106943118169831313672078709831198934736037637010840244372567234983264047828277219838905496167873796307788483072680382967265070088479095583652744408064575143745313750691246494787591194920078321634124688196768925742775962296536466074361593212318896244193497076776786001735037093069564271151704666427287310137896105801102357037604286402917489890412492433616924992309134207915854159399415719872387478249283265349214490760807166555508741247517150724163814447542332935333880157903824011639226838839496803582027003863175813396756492588748270601673842183696197943910629980251092201665365145964453604137974843043086753542051733374631977830148951490219930242111215916570881824233073634312355638945199825936083558130468065496129943011098592950625607260137652274454591535172368445208724115347629817273069845718371486837291181756951718036173980713899894839819580110380311735581126391485706914498871944008513784910182266605434487255905772392200793583289276301947126354447172602331763877898880931698665991707828888813614133006869542834925217028362332190183791782162886087779817012084592970132805398989848390266413660239028212855013682026187262839360056749608390735360966136644376595534682819218514334260688484130676848904138256661577284626978447188234778269895876709247226651918391451348753393270292590386296270629371807482761512994708442816043542750645740644988202519751088571384021206873201709390032112216267926127917103584601167594539361966147489197171472237903074436427213794122909938044186230411297510316536675049397408195428697505672053116723895175881720841436514338917880825914390319448367930559477680296850511711702187945431200070108181620779617954045570212618267408014518743317301690711727112907601874292765588767692303794945285801856598693927543250462470476957420779437424828950208861267144700706868565327048925468609650632943931816310125752538960651930497762105403329197995817416889967064642207836086007414032977085758633539719295454195307046874672444012880848097343107598273672803270895851268050635924991979430397860950728048467289864418120879791711678948773336520615293169390355333622810331731460972773103433304744136856744284849271699679034892588633933870959605878187186575236268989197317764752906846699545525493387834048639948521827582799995088528839929459346189153903815265203782062407056501396977268996243511056306350026836836379639800511672684773362726172596742568591627852315330372540331724142569456433682768592826309683171780049962226270170334809982683213822826622064008603560870055519001984811950303828684371577708573667407278027240575823944229739669478520111423078813875545824313684354991231415467075447873167551132614003778217419086306873687004368400454244091231658379189039822152971377674402815933314147960243575640120809428064734927394112734500078819031759791339070885739836217430712763189725429338560749685635964755763543340523014946779601554203918569908090547577246676841726756368944843547193851030190986695662782784467739307453577394214833933506102554100734318539599217598835319095745364054202743491058671254962162458801862894276048180100859294748712250354197100945434393137796615178665792417896759867756449072279648469380995769307848065980163930727308024800054428386533359698786910799581599346429129379350224648470896027858250505498763526482038705382564171726392041638714269441760093754737671816090923458039481349193189296290656640599311397010902638430843520890666007506504133378325197747895897642636742139952671701898660991269209966025790953224049903889482425809120165130881132346801667387124203152769014987781689370709450610762080113999192256006706702184199216153175302558287125727435625128790137604363415753075676554426643169682621812674564117544577305082394902931529074096607669294154428012180732184978509288133860336177985138159716934207468759294074729240968712708601979635301573431041235564287618470936906554364941303999908858560134298351622521050395199042008812765622265334285913794060251420721075386675684075134847553233587024879577188223123195709020884760874255938390750512355354769497074772622535913196674094307680482646570483452817356497213150258229808467878915141997859041467366362259552134720832128424976285295294410534025146341046744168464836811224810626964495044305543021520537917781395276021207630768025642444041661295164725310805002378087778773875155373691527885058777955142913602392750916702705715783947926128095526720178162481030861491931363369546566316289342878205051145787306542709686276334664499083814890068468920389795608066636427566987550038170179288668240053890669735184071819949364574497790039452156473293460447106272449295200520912041781284896810602269976258686121313357219770550954765272975917076560677894471190993064236438994006445460979234514845279683827722411137869523337609455467104128630452035228557296871803786609996431530320003913165909283907012618045667722092701746307343862050860775901454338224458657053251493543703461323364699277712481253489309961642611975873791514730432037508232024732362611411741464546705175998786470545265494465400086373123048281323912323931799661281555224869212188991149933734457525176367804610611308398005370721493563369706910376730351123166673456963411694023286422287843317429994287484126546132803834344189147413521745410808347196842270257826527211652020497434741330474021375954417342101816640944298618234956792390253396006106672733112573022848952369181469242331965824890218598270396400772423213776055424582695986465658465708205972847162977258331585418338346367876588922146674840934939449426984322447184717309907162446711692586429267974304227079829010788074299871634621546550534221564162597849381023886462746328507131153151591675182324539856524322481700426168919620060497502345228101737115808717385784759555570829145422932634849622890185314837211275017558513621807679321890452115682543204483795339351388513803130565593122922075088673241772781727717506840823714286196662885254174899519769940466090036711198526497876950241880118567367518318432755577385235255035967521137381239290107707622097920101353051668542568903453139504504578696827770943377944443088794170095683532737488062413102706060549570402095708839157159730189626807874674944286125161430330157502951684193232214149536947576794546913041288630198765611164225828388963916265053411676178077140544001306112164790069976288425488354581606606179051503663003434833279631021504714100504832614077083553921512979421175067215206009355396280335083068762734552628142542802113413745882547893707490304450055656696975928818977473281555561514778080887498105399643940195274905374060898275007355662158823021321485232068254081392447856771045270102719112789646688612327919165472181778845269773641726458127666369033734132995157837452336366040736267140793588040891301096657707745635702256629927336819296962260837804046573315456719157070619980702982221429897349355340136110228597450359424082442989384831742778144846381315399889059908543883475108674122858196694837668817256105392812794398325680929472504863339676647066492259166242402515787654131806183489668923243822201546838064747836817504468400280818020654904796788523644515198218165546389245946753455917888803931608316633470779565933935880463368127713044201230478076601836633616597062581062259457052788458872897359816210129968833151954099510008786010119310881500356659958711362483642871510102503386774651369753968951160581823823850045962645218888204737734609283481683996161870882262464875242281869998789426911174152286042809463018268363594526111728287607243562120747732462898844162108374644045853665615285725973611335049313991736521483577837121727583358588512583015659610361046761258004945271515605365840184366621705030071005297442266954732816903593689323952896488438380826930683994538682616265056712469479567073268672019954992408665660116746059509170920383288525776683610066228550176749070153385801024682905201428020037175277241581565718957812259121325792042638935840101291175513317382563800554972362365512873379159549269934207027439478115587312779756047884245236484415814827739686451187420021758640467966415971356910887064450150948479115234193065837961008080127437371992227443675305797021329855500014134835038384369543618640978329823961653411029412997548573470240933367320680477700006494971105246931787468145687634427429009713888394258782953932701938018382186791274053300833228705499421695484959424884792028751066705405389516599652094710093950810188284051021472186069860648292253407998949760239237404814241474230301710495365597985135675539386551412095719069485752523573662239707352788284496421904651843037235156324924653832522005874805953753494299280949982828053632876763803661258128638749001339023658688551184246267005995274811638345962413413904478411670247577532391073327343409856878395090724861740030923077826911831067479030118669037716499754342194074685844830077536070888194299546000338376356914385240474573577508751137980119826366319788589831454078393731269985160970176123468394423325966703773686854419452335655291875185507426937205792436669113864158241237340104338034519584227123789787548069768146218005488111824373708283849730018709968137753458699018109991395194839024574014230082615699831435322290458495495472495699573455719068794516600289298155582120569508047511202839898383163306053583843314874522863552281478513676231224477067355742568390006710479938514701560058855691222551412820202318799583380370203762595719353889638147255582015830971683464242752436802261791907497157669028109990911922450922198657497922143088386743203332405315411958284213334624739766155059292920158652457258203748404919427099843975535068672076256972273093719892872546561747121501527721345607364696292566395851068296535609322265347427049233222410824017094252111889213507344700164660427976073483569175850406138708986432381031372974657333554101370984093906813343958485635967357420987958149253473444149775219016989907131327570831756642118843491931523525419878266165524298855770757089532253105823045723887257091321439476542471393576073371161051994033672199024616762398096971141105864963621330162391896167864774296787221297192731029869029572068038734908276437039004987538857779986810084741389261664607989519723466532028854844050187537992818366183662582560045261376103753058167393444481246837337402903966835868975581215308555498866061774722069800189596387713079132962543103032200089429175880138750935424121401892196098012159082846589514561289865955381370417947202488647106036976669190260472585980069385041105269451316899621963234053475611424934851497963102220309940003142016980180967157853689490033485987376946604606408236338856880150969240295468751308453859430891731337172532358049483872553490549048642366609707707116295885868458102416727489237027045808809771795596917771190659250016877163105221578434464767444912180303894232377920235706681629526205558561805587045544607888736958389686653214971156589745668517637831338335872733078233691860753997793482062188266598606213821546299114237263522455851934748116694959293675513682216707779069166441633322416756882938481259514519940870354844740818712662703131515598944547695062522303529455995449000203799995274018776580336992665029392095381826690056850792900280199440441265086060163876817618418202436876359250475471110808241139127506696455220413456230626923682539184218236533306715403018375050468826670741197911397512870243614487147473214745265659754711549017920196007564121407291456449286161732165317272931672436235514745011798250258096499349078445035600090997764459341158209012198222279621920730800155130733844028291067705768608308056188896996193169185366619914320294875965619238424182162151817644687086360867695748686317210700467246949047405632099580136223305463769643915657506517902854118297500185576910161621522474877052133037895555883804674283315474504327478840552752810153558451658380865984644123565581787883441802975127140110289228693327828452433815192044935314817179467671795219396489708541871861553460345102819394630671402073468887663127118655923175626168372190657823647758032364024435549702507351286232171774056962060421824340825091342679780664996249634718160187200822120393804078614206184830884378783055917454297342698840516972920003357832922008681197074301885328164370580623231139810609380137153442821467842143130488920035229808909135898421260224000223587410122097397212184083557069751395427962335378675383808122418774366593741023523688657812903878686619074264500582117393593463913677280877413020882543513605362687569831529425607638268071127816186898865510653991569108566401461973935325943954390080198065452545524341019702146080510133928007211489647262764292028678099154422936943563837930444424412753033926869332228501241680188482841659031074785874423485926362434640840166722028135262176368210990920267036424990037426024851021132740266965208355673529754418740353964411497691584124857920188531890392970217721331168196780740774957861859838959485623874511021424944783491058304427499684624086107524072997551188015914107736941189747722942216469211119538548934702190241130601412155460233176469736090463874902359108738801880878392991039522619614205799127110231461867096157803519195339590378613918105255921925604723105680647566180567770263177018171681168976984801780701405823656126627289256226744570847403156621849508983429655405648342386391195230896985775098567576183781466806267762176092306611329713429004947855533008302371545779099765965349523240634335646158418747519695344666381272428667582096375010351682211774806242719404349448828592617649153549474504347856943292400015524327389939567079396749024357087054080242873924620526975107969653448783257531755151722418984487792507596538237450624515269649295433580560958406662553551468098635322505476315314465956073096055253817111535943907105548930232833499667273622806940480116155402435336454114432934150529436756960924557324621086461962414907726024572609021833228934373145989474832851931029648374685528825319025354395265798128215655035978097407339299026332719958468382997570435578960221170668750154356425629341927269978234310298054099062824683021775683851111937061464766256907286538965814816747454394779221005855024559717597890872005833306152718495571206157605642889155481996943822844914770546679811250277326578547296232988380582146234028689594843829439650685182155240155662899933639187472770839750058005493466578405885857842748692448104470522918246372433303985248429085491627004202705384830215677018943470858352636620166071957753779348379619471504365442718330671556192853101643167307459315608759517570880076093235817692557171747370707139475781706413930002491161642604771864229691121202666087462730691135018175177670226372193822753402134796598695525317679536167108786782257147299309181674668389571284008116018412043706167396454656544918122475642024266980788453156270075794935080630734168029043401424104568556463740760703078369714008324274985899649100532761591127579521388060653351680090924313591799019193736927029490780929074112796068374292730057520085341777316143213520294740305843999598963789322487701286564527564193749051025407097241255562941244618766554414936649099327059483472969002460477688471267681161468741746275555867959044595884893602825820776832921855475815297752851497427277199207387517647683631292220144394472390241191315959437058065898901630281857174755262685215793622526343467042122281376513615022200232615889806120124157777621908669748668320284913716981216444323707840925932361992519443083126385394691577093380466714042285879604671528889240045702073829209671563961798137873839402408931454006993723726653558901160169319139233917330696615262377473965192479910170114363961423505848964038509831040865245791886169586797213349766008883703541153355699706905073731056033817364670639044497576656739448438247287545202328168000958380607867404107448399295521598008107504397035195918160304338041567515988760715308390156874935446094465640570525280763058930953642772343880829474567100057341419837195532966161305572463209264899418521841268608991977909525965055013086246024818367726949836656161790940556223743404093407093065691476879350174168673944102411544449773767652504828706512613889087161844249341217343777678397274103338959423486617700988083228366687576306283678814594128142216437283382377946479462352867027197922190934229407513870254610316625709696400281272639823606189100658420954412779886156161750235972778121830504372984233117317291631318387702819582819872728173118931175892351455804505874217392726000617436329362458639926390076566152934108747818823267767422887283711811701216632758337734972276419445435234284380246836144922595363131409658020029306752460936568594202266420610107517565319140864677110668819797653151620301754741135865984714774775364453821692829788073785297869874907654757628959690222655331371132487062393213658352007162577072644481371384542869798253966694547794098632997450800751092923934453418063476898627962877307164034832835920379546418102098079428161647168523035220961409377836913633136607766224235468656455453041911501014109488791154753006255604099133596409029075256312185016310867553232384593899320736960471621946895100084035401963964606896408323235033411898802528380579189911486969864701219604774834409762650332176889464457098310888400483143399680272308784103498841943028283628424290332617353594477082981524374049555784046718242288453816294313390780930295292550554767626445796668084909690301449250958008458087142942313738966357194649812802479438073699237778557869330990906001560383310325697688397790408723621046429504926578972414372569614621785328900075365120182356275759204886585164769697858111992348414175759244913008293502806200153452625585503357311065590419022061927316864911889819612038470423045066416894744334526332641868237478203364656479484649202214200609092961950212146425080173618819984374172853161498092382249504963173218358048388572846396030645897137159564336260361684511062802968834518425571716575805066753539658508409573322929543607999483968302780172543840140470860404477555368943055727686030496274878114586214273509218086009556645259097310547129125087044386621556901721990396462437788410116533946742072299929064257283783341040162192656083296535477624510468443440626793279922624798800044195837457331832654390061997461267900648831075246617700204692793953400458766255143387400556249550386711377865552754514030774350526102595366192119755203835607899152194884025973667149984093157016097827652889514446154068163043973276499117332120555069961352315610780979338425068691333103262642525908059086162111885499869357318075061382210770513334158934736064562858688797362843833115629227506562776889396939637156259866566925479678709789691712810867497271131598009535286344942114466580756042147497592939229343664833378492801447255471429559579675090813625480280135692644124907819204866060718927187377609202489233741118375395904268829372128762777176816182290749974562817174733759077283848832084660902333024082419847379309138409900832902251466741742266555333976710122766023994956292693011043153080729195218171861859853373858405722978677448104633938821408719996389057921546130911840426751973418491542301238938899075014532923253136248428786427373343733452398550011958895534940444570755270638010274178909110420275042729517001556466859943778831576736804577743915043436465220821071552487068782890734559735441295286502798905608293297573911911741154161053559110004253509115891155946814759754812197180174854618810999913777039723652079431448164175151158523066085247515027448790572078330999009003766444938349790703456312028040592392416788966132130709757946232564429490811649137368236956712968738004563631440320713692204834828889387284937670074471256029722859919818678242216273501039526860439266358168699121165032295004944173060146315199640613772173772425123043597290264136866362885483735362590595557192281540233791440810621423901112068174055666296112655528291779954965325434626026190641028578417053858751045198775161502100224766004052074238781963254452167371143342878600242522270684274275041732743838264269914938113463324902416412179511017970879171920466226799117848986988965191914996599887428236612673263250323474387299585298877866124329824849077251210720533244841938990578250020172785959574603631296734605716018810786740333945612308801269960798207629712129477276210038041189994700762673206102177327520337836084637039202287186872383296184165895612779855842227960683424549416868290822514030555587851484823835536596997853026175010782980991177617340930288480041966708689392964054797024095436660180561930830477658696920291438248074486144204788839178126993321712961050672477449531551416555445322337501423513330187095339505245975561104724025069285633919638790903687871668367457189229376153902207950703091673867837301651725444147147219129194651431231914218624799793043178532948643344856490503540227993566642063460371635986250712063602082397083474653602166796311107027572147954071494698560639990847066100653964402953537097202104591557448473290663101013107172080950616626466623308985682302220073545978572224965764684577173631554652726141731584234747388392316751548554191447289674079504476656891689978259376523507780628411948770535839719742345366884309767183059843203832713114084126621940455271864777221510910256953736019992146714431224284208493700607482183176431760101877320255485377724634358004866300409107132105751781884076575137502454224606342229772318026316574216364649726025803259691416201269460085078467774580761019799276737017577350589959393665068977532842459520443823677095632666493024181263363163248726826660764870395613412765050556181422012274934008746476029125465484893575725620759715376497360959023144890430183995464710601049692591243413010179259824406487360056873200937760982434782884448374166553119782509318968826854705040882752707075703933589232879924811498691034560029245859763570696065029316203816985516572426048016059604453490336892233130559858322490535923044177284078479539965944581512193883342453140823176045744668120169495138913377492409466311518933888239111722050975828076074698660823972419935631115337623658810834217682441425107124191635193686643656362465677723207000778984139352585839379299844328886914433753359048398713963848136023749221205487355926139945870183127326040470715335775333032970621091535190188961198868214059234960767545975297155863450326378713058050193914685399356590590017304330903726856282179843860623368506040764242838575168738613787123656825367744699574646988050036368650378543499600576634603912869535810124159327566705480758385383375934091316684909441093330282851317677780357710722499507668827483346108302018556562201582327537878153348710185359661610053281820974271414156647865917770599724104362848359967071671742339183902348863223583010928971597180900405503818473136226565636373914682975071994164681884337513722368316184006688685301836635962385915726820447068781163711911459045876865274782388873116566361641517954011793685877345346036736775337275720047722030791313324416511919896191371624854897924473962297054346984686067632230668499531563859982494799537746127338844170968635311006191458813937802414546603596390926540783086213606015073533702261792692237873539391856387192607551587493654607215192950817277305327233535748895459712733662729682836814053980624498558131225360875455741097579122260933568393802951367086252284545786232858321789067109627143509044988729316248284242973635634132400320388866709170951704642992176880674504271485760996370055399086323930939250050222441223310355171722236116788850316461809123745008047108776918014316291362369929847367745968105096866912638660361925179762826134511913619982466303739071876249370932096368941818266076960236335908942196104975285017747104990187177069049869431894458806509422932805643336511567049968923547777678426678332448477304336653897094034831975291580688423083032676669425985015648519669497308970508444202547730338150795221989714397578910159921131349499974959129852907475326413387296742646031936989377126206861626747493864978830638028063733018819429758828426282100119498054182602172413546946013153772495633637769565844812600448802851137325256325200879357870853603200650818987798457019284631367305036291974863027789181881200890111418932399121019639306713983531000943963770107025188051507924936425228525865775553748119225687028235626304173840903857784072070789121029477328889993499249424508986727166037374707947197611931338773150198088908302201713326127631318700683804304232834832512316603376170881611359830693193025936648258158475859839697832426475989232853200197141906465453979034922426690149414967858803400858290166617752405315431235600623225278112303294360202957956823108639893152111067704773854282268180730527989828967937080381296438447405834875075190965935610746252162602629704935758309231283657411922992033560772977654710458230355899625541538839449872842048782258403605677996881270310915332068133719260156411471422603637319895700011314176993227538250646561590097759581902330986392915951760480121034970946158059265384135214171930233741508262648625639646512336260504584637144809909619706948765289856371835073731545508515231187332329619766298919654798931449069686808930335050077161049845398403380169472475493876871458333030950446825052501436343858585783257239813859969910058957875942139799240365495728877134095016472284678847004742066110206708152879287081013453268393617643868129861911956630011389824387512227538235862781872312070410489075299055192974499731199378727983363603740745917993470273040009803603226016272580648512850574549387341273578966092101238517447805342111789412683813360770793662169992399086625760988547334828111581896309818724779043233540565768338112012856912515652461081906075624430991818627698499722585884460517818574340419647952732175165047571550028517639123551981859951541174400830631160228543667317098924537477965747318353939064949749627964621028017224321276862556942477049178942030087160082934717183972041841485376618213438871251040577462485357875722297028265722366098517703714887058429136771617537663250865249782697078531326369940893351121742048204254322170019588049791182706250292843639756977814686725387282782941692196375760825658477254757927219733408058576768442072229273500686157883777676194976823527041801324997180338847493164918075333527140318484655171185312298802749371986962465629708289816015260884973905457799848741867433324815297146765097878467124472635343574721536272031297419004336563109098921691820623978427475844313844128884610499701500215870614428197354618828025632194030378986207416634860811429485270132745379205033815264773048523101125362535960419851608329938496308517174355628559214728347837550791494852400877788638398171713990143716332531776828871092859636457901588823184749687737255667109469693919018378650147222541836596271758069866774223511563785962248290829879249424278283517270125344094659262459515539881778217491671466374303945486798734622222825842875698525676430567568669144647747972942404138462150782386532497713183607475825837929154368701738903016234919187243351509076231924616319893439712489420559484387553713359204025691726161290579232744249076777166828097565513933687944064403398552607117615079103555342734669235545406548579889288008870344272108138337236499094597691832526444525819523403260448735708316597043413481593163181176413996825949037858695147968912874825230019869644174710890258211150538285405842794005342263433694505456066066676340778552747238733621057228190243740180601536938009481881926387927705555622206725882351546345077426089744004092821891593681885262176974990638967746310036196420955996779469425950404474699004067127560698029644288880856144095669889283600358751586413537837106529207192485859574080844616212102503615893499357540385274134038208606946974102907615992954894050287359466530519026809900546674697391336045423613342798441125132429933662041868626171867150040385331883517088385800048051072089079448910032633444526243570320984330169575844511011328049971091390863723686606930290665357891165999232392696344885573155264933239195515331114812491205847836568964388248727706436688904767501332289342080540541919653254953505671578134372182039856857065951672591411925092699645609169142358418213022308287908315041494784245658161323983087805307918545750305095490722609137117961526102845639814607990138744512718383062375083647062742919061752433379929014222534682571328527918978002630843384162431090904401568437750193106400558484923284673539312517003635855767855831527516410260823410835857099709040737802847151416533761419417923027144074104284152140784762903527712076461733508707864078656058041525960058471847167473525657917899717471798809590154284682330585969101778123166519858207570370136402412871228272519840890469607250400751635441765145788337382611772414051330291519401936701219219656680531630426543877610808647060582901163280169314613980677274055576226512938587788377830947088270900137194342676198015582478549526158308443710063569190286592694591670668731339491676458923476540754313744794356006251381140577642478237794608851133704303675614663576314870435706980090545132701674189482875817000507490344437483531111109801251989183923765965450175006327197367887682484403360165988542917823506209144312346863992273954121911957506779178654744386792287426721794240393315162696482905550327283859025890853478690519676495831563243116379402357376003571989254828775443710400874399217635662457475688496148780618675382878067710815616996807730903838387273043341453030202641890470338342807274908321083854983189061577656612323632549007786011833412627882341637346889736871620818445962400891612862755369257721423286503677883561811218103110114709017781083662668130246255275300134904824624584823865605586948295700151912837431146128157906437477808173340114993809190565274066636652997781990249135689975027131483720321958214359341132503902679309802666104553049201483918018400192264653720925532350862449749086127133562438684335270863798490539105510156902672947674623831801875181723600428248472757754226226479826094518416788264058376350544512797471810611720343457098046494978237963792428264210644581120287820252420081462964297273208865636803463681436092555686678256535725731275952141131835145353862558915789341418032726314399438316261919435190578432712921824158423248888996974657930146469045338836023240125960270710778297088951199397941096951205275195282542371432190289779640631452431526251513730101894500687410795469400696816308133465203446174752240538258651781644415824192738860204233023761630125169705729359856252243857186137507635678125781425028800352972894683529934590257760824731680708901185398999085465387381615545107655665344759896774294348853901958557850192523444557423942140229891857722422504088288813801486915714849615121041625345445923910838000922436560646150647651608522062863789153158511658712702061669522287892615526565983726267015764592488419438819227213371161222758751009718202172761280380228798122683452815863427331067650039240563035073328789562059612859988009498294710525839944467976387011197240375479741970691295601359931898093572984257602109992898216472563177965342626054958716352829142130146699334370147229835402036587312689375849644242819921900576438250634020137008766021459480448101712432877116733766918684125794182258973077479940904682263068411951687306507427224441793150298908142383978981936246091538320058968582840605561230944407104302092433797183176046143972690758262015715949906191197791747070669156870743838440375581267521995720917650456605424370713147159886036389101981686202929308483911025709686360396329585098579518447641118427130618934650208874855475213407103964867522519237599554711862092412670119741046061058198329929998249164574560193653721478281142897396451260500278416982339686464838858890226432619722839405313185308168249300935467003828767144452231251659215229296231083086228294748371327120945553602669320175001248516935993348559116339429118504514278448260557953097876652254393709851922018945829005333593763928820432460662248130762619308403458119754377660415034583100217624990353994192838973495938004113225928025911028041152110018769064553012901931003416371560002560369832469379733459359888538243700644848967897731761563845973105075735090950381552377914139680680850766388305187010789048049591667573835179632189281859916362680500131896465495372161424424571257406475309873783950673748203833093291671194348440656648456758379490345774735835124675036811706406445452682525630381710888387723418900519137336517550790243436910061864626305620497174545213960214737590100055218002017820496539891001444026566348372145312442354015684789553188063842167444961351843214634114260552009655843188170958814167864403972349022897719224822253798484726334380351415522856112325283585839966262075701445124957745709957973304762885563961162441344568833216825651825895241619937664016277201164882824609760594772524389728982752210620557693661718213647568864382809077147210812069801065840927671902871674514843054500413652805322450935899190073591262566104604315202573285633497602596432973041039757128071999363854772769847993303571149222372259766709842861651681547076953751351528549180135153478237383275765405289708811746982150984167195859494334811341370708309444456463738344585588846535944453960099013569739711943845359986664919870776018579921603335052186026979885307517810344827728299093797769048012798220601500381166831870754400594847620421718966894462960178571104455971353559178934636840973194814707096298342999169723866363242143023247218456918702708988808835815465598202390178822574250101975923520179711393783894822542441475348396535052729445639616154061966855223156754513095559149137782200379089612053666508536447656414735938372856923469669219053095585801815434991574346176092662011121995904597815007991383104485271679525499512770355547535759926070855182481882389305422073826906874071844620116186539181016856233712568263480317814618970919462019947131403361262035140958636692680069778932002914267834445248055325005010795283915779524588288997005201543004182194692053493867619349083473224661974386363681731808956974049348948601504637987639036790542348587586470348396026183960164163739366198160534213721659344736043854054228767688378844429789240959676204840744420732987804296403937171747709283068068746235815267569184204115270025723546537688422998250071789732687739881551012562984873271522980017054020952314033394250696350703141123877814376334467511402115923999199876278705361165841688447935123309121760498844308034393232171828371426418229036028207265158557484237044695137699335275159967058385665432871158758556522427569027321964294390051375485718945432332151488865240937922054338012353704769775074142472848913731836113629312691820695180045409937277474627458662312112476113810167498998508519941886718995585106733370354934996784236131451805122218988613514898958986065355136673550144820374219663174892596225509789799680219528933769375819210713364745338876232807082658152673790757383192248411296807902899602566673208863377784762546158053100979485576211257583957451865944109499385199259270738370091781236427689667391417711460781801313305163272956256212905107920078116228702854757403864379077463057528158080303675342309138538236214077718659923014995476551005814295391991623957184720070966658916011314211868624940427408784398446033780724708282858061434559377196299289205620955095364764195488757898679490458218852772055489922142043794848439840205155071444499852307243239085468160944924698277295710895971686630195102151332869374463630424236919577113840990419269404828508974934882946063031277511019204761005068192818874760100567055724920090376065656257212612983417267644424749990824804984423488401993643636491285239092165028335810780910695175067625167789814269337941151354560011038410800768572115140820963180979295852112736810806732173021882186285549719350731106128387332082720564285974421989711850946328330136407386405918763608247013529131013694626326131805502932555629688826129264656020061332078812206735539430562749659316765806711971232604185420448189260158215426043192927642459820270675166622852910283203634657988603215664374730006300042494037022128689947647982752585553159370292345866189024701381465513621438787947163948883638113881596184548717337732522574426629316565111691465914978885286438053673176221436134275021655061075381265116426129997161619622511801392900792984674156126484277197056185364363714682931646298382043941458769304927940187584591873959826691832083576241738977748630721765241462047694425690600144870827413538854648997643615227165575373194194135442050802448499934742191321272456463195145492253143056815591856633418556030818767263709264566484153204075885545799834142858594787267647048730768421277189094308758566123636693455923806413579072279647304830522569897584580039519339131497631312416816912486879337955304816414304516327230211583373785268928080053183012630257201573487921873237329743688301013567557894686713177101226777361082796720816951112207626653188390715102862955522441832136020437680993905669192881389683339198698711159337499084738207309878970786912286955084717105788502649886006748097208077133469407050843584919012554653368283229691782658812678082683444098565337678191396373029019733558956038994037169731151958694466150518276927420523208498741939926738173479718018025200607992343497865154689713803894790948207649149819665420401845930835560821310031004324719547104359419036826083665644205105656545959624969909765944684744672290972363401198890634702809755791419725444972750414514775118102970460748025996738013565663017655573637866560461290837009939251372348978908878640672176271290508676577739230230683835049932422248547350446372006612452498401460929665577328540816774204698093102573472992159286599194290988746851922991075034736969199184777455974228466627660501776798231863815967179605050380252431012931153987329134676479625128488899864921071060155214167251937497008640988337041427157312676279819667823475405480099151877005455727573067471010630933041198219965780789187434737409699500489220976038539354418227041204804372498715248216817329072628094104114093689226846925954555000491038111049598253089253839551299696412842174769190681539953498321879248886843600062245082115015194407280313786249947056554428249674995322298502496076879888879813793690058368914997924130267163370404685675420011750340642303382494487834717884562057401539552721829908170520857489870345833459884601263083353158854094277138614065015667238779705933828314570525257756000167220561278016110155002657173432940465301981584941760143090874984235431770945467247191754281484502418296150443994116241341338921303161771515950269966279678237013977455759864033703754072346034974149682778553500225347358564017935720431871763811492342548295602924230586165670790255081825160221738443113539782122206449024357477426684714657277916023930904462693362349972636090017741647704791118969969254718495397771910588710388510081508618012424192988754535145744036119830579926504702429292434004174382137303136274218072928604100398677037254598586712570686857639938270190772519381025134374239680946344297085984451682799179707209328638975139482012083977853478168891784618285624397237756988743795944860096787710050004232865162156215749683341144132962372142083836063519976147810420375506249596804911823784046456163623668611579304543850897281742343570181681945742764403293861833367625952161173046280605764895409334960532222591789452501225948388953130091043713739677528469567570624891691517998296859616396344735320624215484395590982131257428337734085487945606929912763122209680715653252247288358740559357160155672504770262918787214486407743578166453235588747367994623979060477993312278110125995041553267757898818256987999721771109687249798225140057188407356842049923581909973174673446830482351462947862938621194113913775507062196973406099368686462788223297078205484482934032070971513889040283951884953093483757798186628386829501685312118298823536949206375121374487048731638000151782444269578783379781136427610813442007460231834361266386829041292241374278005721409360734765098910847998244755801485144423696236256116827135865594262443627754151383760185475250417911343502218592998499291113764378186814602171799488999240913983700754137505827417464549091216085833855333871045787947273726455757279862950586135684061404108396601374135836008997539710012880730007308367271507204438689473136302194022347478185358959923802794262867824758247998404654994387930858621368724416876410073756308547475954457272457830512388353772018903267035352505224405151020168331027702476691022958989168552312134237088960243659212670180457508021899890937181574372020367869979603184924932515715463812533537151848999891696235587392721237360762342377879855361299640940772419721200990341200623907701365325860637595083067306781989434144919168955948769744548488823288719973088612322327529450764882461000849753474571516566142123935219498787441501443485976966784897732465005827294397523595941777141435806717532095101853472138874377205589029130403251368644203978740066899038861699044997967433330685112945171974434352757231301694563586485502883979517302787689888506827005388936181953379443619150406714937826266820914545307546407348738813473495471970599845427116922120663218627040106133956736628272010026367539936249984098290486615263510611412676629294579864700846004596194086272497967648624937646649114009707106359345446146573692099254914673679172951888490861451852977423711334449013496784918732262259188616030568930871784298978287637780648079023983291208776123432969010401780015491011485674126132103926623678004350960736646534317756574971475862448362596394879119180952778614914164028497759670158037971215918480064534089718086022426857573343401142113037919057670661518901145098792384862596603544236750674289164685016831907750532952428973366505548361443027828179729715681770309676525763792756451193563526667958555793786375417309918245885229917325083465972538233604601803949559038231877247933351512297589075538606212034450919273403789882440722300054561484087947960165168178044661050231511004969666958218740003987814462451765709146531342866748132665318742316809506849563763803172708842446177892979043287102330390701961369426679164571931144063682525734583602488070947158416120955249708870850656969584238170280935297561869258203210902626081749328939097014461142752556947559487634868505360955332346360791142424153884251235793474201438507277499918122403079682135305988608075505510161077168506284055659728850698127738141721497025414956389714087304227296607444637530071969167825374242339265850335600245042918983266915091133193373535277002666656169587143096597970197001597663572295686096597124632511654592131983340785457709806447684572525798505029538140084886618081779213363275259216935332542941956882700735121993756277567447870543641997910450710272422047151394041304644671677590035904198574420729238945259928835320289053853604036689077265525063872034740192922883027177481931002944259755592157238381404628037182229763362770158305459824292805034316259777648211440146969646556500067465624965087529297762133278807994533744241323516016564249811407646151753108531362685207445166400116968929492617103827644917648150644692211472983009610903287002915628041245500344799930155174057014115383468570148469163750796730155638821796961343392788519752586606169800901999563394049057573631244930904031209584639545787188868832060757453784382812196091032985658009991213341959459709669437571973277876586889128462293711476373888897320945970855806985355384206346721645068822482852411647150867809186278049133007619080187946430609217538039961551448548600108315700614493808692963825710090124546404771104353257205220802305756542419680891907342097515434689355502158521600738208310873309348236451179305848681588973315705565976452254083414334766093118222995395655077958736553589269407528970343595717431300777908020401068680405183686728788957379363690099377952341666737630132003194576668311931921995735234221358313774024388591966272998450964128948594091763768189147684140972143145916990433373852510469884446827947191459714484428321961397530779200130817442744825801216798161613853126111730338119026943307351198464076455552066880453565706464265362786606578441613879508870103511251512718092401941423494518864548662970555680820294550922303356925783197427724151550380563033183430970427500223177573224511522977855043105870657510281459563459964214758302350970793711884542953787972057685074935122869312536297341184370050549715226714313008375726615606388395443214056106100426496410287585892420890654792501601337710729856917623191988282559764402667036756376266706800764501326969226951271003527609630087277718563766870164591391470812163540045329851751853307109141169088570060968452732651742089328516142949744300671873438343541983360476754988921753135892977346791310266155030574459053741949465276198006414435784273012098278321846235362452611140189913675761744148890674597830445623136955563264376468293045131511059095870707178386313716328688425728944939096077421058396151494775460108654798338320203950633117458513723195830806323222884753678300198588613754539405195409115340282801991434592052973594685711304003377897902177159493395738958326307312703994781056353405120494646840809990055697213688598681360588513400861419455435639881832979849444537454169237590664128479554819194095112889022917572247620200514687281631982800003662314815553215045714882311188970875448642597757438039295334942061187259009588108916176983809393854416160465337355927797186785055985318583320112039789995659935862501973773027401132385958750603932526773485757160823433596364973083479395243745892672021102828601656612788747791683310837384218124591642475085246003932409697727880067855296406721531744456151148638536662967609655503684420653656629923896436867086365548633027804731660829536811894936784366172730492904745833966414786490283429292666876783764025501663493972454718839727997749948435430115243492673778333018885916408648214132328529240878038823570784732804863152034452087070888747806262918522823653357384859787838815823860066519346900579783701813763252938490028614695254974834955043289902478638491290459088687912596159589537810098353491193448901684764270977446447485901147021403186513212286680529097889985398142405836335906236625119968723800052202572280959411269397011075513373837249515466928741038860734471993728165354459519182316158894207501882248131062725340441729949502989646000688217933585645623672918011984490250565101438495668723279285819897285285191468873682470104024061027230679228486552533244121151217532377271943120864498302584117981209421066844734555190664004658782952848498021983815025339896809156435609780958856453808177779786952347571283598080773426273203302764655711099194658171096583370406056086589878618980653241059856275893067855995690015256081920752214590664937016932496316216721834014302388536260129206362359730998218208713930351634411879511482289247806367617335128075000735850078119243538420191542940492735872065544698383955860939523165193338816303573722161594054213679701729828726570302731399643736742405243483309159826250688987058766252544583789691248237486321982948019950883455941983903964198229602805849578207281638945154166485859905368196133190645804988285056203042579005278096422843028127918199100283303820946328548274514382755257988723029061740411759752447469155684731122100038261467248013453860840835350322979411108896773641835391328380898964659837521198459716633161132063425609446163682972371882859916635351507109892277618172654635221132656248086376807496929905196177476190880100882260383102795961289763118145831888266168922733069911891724115582874104657062669559675774680778311739148697502423595238068948933267125577518309454948097685146274468968039065803530018028394342231112737588218519184761983011790310493058125215724138323916217625637539400305516805643932893310155404081261187658503559721079250317953953196072585204096528110341533294167295986051843028387133716616001688594299298256898268240676357422365822577490926338193879778754605638479334541097745291527337571830229360768086058226417228301467543794508516818445087809440029191108621753592915142427804432392416253375451879887254692363943842807633235581394872335941216919367996992324229420260094225853145444660651677520725772000004661111987062809546466663314037506690010592543146805981136165572434750929047386835129129230143320391353357954813519598497244749749366632917320281468351776109665721189132783783021971239638624509131616419906472826616458652284557444554365366006739455608621444722954976747502428246782629185424802343615895989768098246111006264411162193537767457017338583494715620107128626779681336064381261658170901950773814861123144412016980145019200706527122307025503802073704356993899926536046113785492218625520696370766942033116212606758721808174751556800615545374485332456311441122215225114079237204254221484201400649171689575438794546066644448035636661982152442190324343168911000456831165567744423028620916754011588330708816968910418814654487424966591299545670016674681174462110690688221482566158404996412060864318280971513603742904232503050724702918307883795762514055225525969769154790714770902215651622867800458611516906770510150007789871640264857526983109102155566126148833760813965306604233794230630689721112966635932492401018035819043122569686968117390506265637922838879529101550037696529385890973893465100478942544091447141540711558335852130060856802251742224693588785004891028624119326609707383022098923142643102034159103850490796575961919228460559943112080536624390257024741550290757284594014906344075868185591476866748283133131692177076782961420814074170498531000095017398450590318759200732566434771736799648403946105177595400780842384506721340360545721239463125556425334699611455252483650414906499764809936029249347810492008146909543402997648715745814432920381914495912161241273428227086476712711945514830456740466189917752140921582601820922522524691534468467365569921089450939495391982153697812451839669630827674387816430500909564206983755002895771415451684847277854664838200045708243798069622641505209616768236075630339965254500198290434703289647559684160871553369667899433524315633440964745256432665697913161421861188845330347043123816271979567266929531157231637386506828419750040624092569201261079264751378596168986979801713816890139991802076609594843684537882715201733438004318149021860237598692080237027446413910347946667368401648122176246479127411839427187244167103801168615137841341746613699073310665669885188013392704934203650011695880937859396834692450177052780487850011435569611582896742875783724858648681103810430036927533306265564685112240120197065783131064120740367404310235357278487576224433271727539892941938819859360977747326553554095023765720431772116183309860196379311443317496226488844034587374879111613241583402418773327766495886167943867548996023520667699184488746737206856325520469609451474882138236101736314791637329533737443276997658861212763709830196644468330141271356514284676310496137001291085147284790187912660990145775532855544511184512839508496709598976681558004422446730877889698700304501752159910115090607992425465013204204389701885493479662727307241632223105403444322710002581578730985629859915163131146399446552572062539012934970414047346561625871755699254263921453101356953826960026255854782768954981222288404138818656588811574433081939826585039659067888234176170825786049182945062412972017050329455602544630570200248198805110908807448566637806796061382582497740199905388534894318413945610661424931819889317913941994648401411457508252217852231203047920707866575450771097569681181514360316347773166780722356753511963338001726563276282233898949928158559530101399849751681388079413762120567135778741772114738283969874809565910627814364224783087052882624682149115223893805338343757376066014323924323601917840493654546417269923231655127776868904575398655262622537340588811785684255901416412859737352853392475285318560556257272625958454304482932882510774781563424311321302360145760087220317273071546485229809516975803799670383433896216182092845761457495010862410524730183160401760115773446060597549590290556487741594401803024677258004972756837027439783684902270213219131662203264053350360415672401908013645220068958501112618823664081614530328093686171412936411279213552445613877602997899500551964194128460205045472288551606066248793111869240517111685240465860965121529504982122422535664111640582463315216607356661503704368698667492735130045961626010708439379568422669469294075910245737117494651622499396002351048433044833774826170015830907810210101934007272791925124360124906419036003533798561229379651061058673743651048638957301406005046317715710904574900996600109668486832053850377459956952466891033259255744368652167774380643723073815402652516001370751890821332131140966017935358722185524389454076216747099839648225984519379893376249443147301037825117493168035458384207450934715708839344516157338745957256849347011504176096617976945939369042197574997538006826129610253198132450203317544455691990651792714058639925464343190718496459307057935781249161567386900090754567847954547953693499771100369474975223629890413690062626090337148499496518811254317574998503772736781542109322295181732933664027990384189486647458229285505012155179147546913708085259237521363470418924041296360500742250473029080953571575522468687994438854126183272889706578166047441011664765281632091090195337358920814111746519710261216980365198371028967396742364129228002068559634119914849271946560259699598767892775620604487756675289255299751173877923458463241505446843930227297488100283957766530058422463812677628068394267874487414282810409804195102765593347684824813077981730045948214073746725327104899371202433084327783843655065397913876284788565175929251328095922304200878640249972881299154741217161141690883813966596301732436487611648647092579492046665145957154456554476166158582043494712549911115777130614097982090484412668455381067313549833537157158628364884565798823999069373456888307753486665965587777367338079388873533700048063555383244064670096735996100428233038020633806241569649091530023148345456764474677131884718789214657299452181790018031760826588192116359948461383995786810024740168523451285851213598549230070182197365200213865088403842256485178458366841467873997634603726850009933032134099295685706390174449421240130373800038284063742820950930182783196162486807836878666926876410412281287723038466850370141368826704731950450184534279333861483556742359084099634604878805496668229635505331746716587459053059723650865589324175011731546898354456611313688832915852584031689614450154099935649187223514231110204815485940078058115198658152428314438946349019543937779170187671218904257209620923301334105817277111481131314943533187589341177630038394261698218799764309908400271787806894093039205859397344866155253927807243421795792693717973960359167866445465654126659885627217655125630242432870429176981488561976306405414904757812856120579576144680143725836134618242040103034013729301744928009169176097723123685979464975177941312508585371958630108441371685288054330787485254844511101592093134352375714071329657550937696538565686941019098817224839452214727554801251211347928270343694599699733948287948803800147136973041861032988368488055031217529831078871265303825586401013532177059706628997578882571116871438869289199416595792282820792896163419625056181475895994741088824833589598682718435462555627241826050417059287556051131786918212809896243913322279090569242676004705701416611024052928744458390393082813566705406531676706891225540960303873989793093218598935228655675816048647612415728458663516085485750464684183543123000437138360479694884845754669594336476572954564427099229736988709071286722042389406622455833646332777627986344606291041373538361714972943438277186262628405745379550405339686217064829123531644603857152732156534730554804505830307035416415367354843097766557620553166017135494694680846423733135533641193140921818110523067531914337343562140462417422655807407343227226370108770409976664232010117867084499537864528992043522932465223992987189091835881596740547221022098474339918499924306449559329689615916651195319773088546489327362276212267837114943232099205615947121543691126287585223808290059282506698458611942522720383177597105453924314729869645124967352989253507267890403829473727079218759268832227893849558843159706319975055438696395934025131010295698267014736116308904475429435331165938961756631287194978347302294071577716319960873888655433674943210833222500807497647043456889661391422452076531990407986472138504407969429064214722881628618227134027663517555053817805605786897825572677553668913716777244327943138395525958071788803110384077878631078612903877903148926891288459686976840712469310367753345355697957654125151808444658539475757908512681473494865533478302244176559511486779963398631367986790174656210367743979562022669226396345014040321466287542321448328244153055520518313046201635447879112334344816394423788530195156085423545753989976884226042484540065055517907570441316498445936993793856201834926227637634192699010416330093216499100385909693336584097322837087610693107675007018080727038215371575449129174205559070442670474782097524702400695852499494294904101165933087454273305754125975360333854398130477225959536778167663178616481085615208007112394606293362042470612043862595207786496053013053976147122563669022082858983730964804181432853708839703397813659547746993203536393318146785597679080495276189765256901294943162118445504353110408126871223031591521597844712559934558094414575890177351953818462699348517526416340591380294634822222973616632632075857300908094437738657588317937793512975500932329121093370382375186367860972745978825517498816364240959464461523382647291356669218143146436121632039916256439980033648360970166564858268975311089958958166079227175604948233609925298971899918699531131002556370245853335450856664039775049274572603561805047266761212111501759057224944619760144532382100668762248446958025855397651630577728409044856713327782205952519718634646960956981576815956104914524340068268737535553204645663431571733891468984987825639966655248883163175290676397009146964662921200804159074404309009955702334959544832078401788815783499942533808804961318555238513200857542299462249740665918477000691344620655095890571790271917074662841928139871984096596899895396520055108195769998757086001125304719139935073202954697060101324298414669342872742776086770145733294513055458423992530294808376513386263447596088975891708514521528592413264944064621735447266063913266617042544652763160613897634983416722040640670103593859002961241406168557372930954386427203024969242078382805667181195459625142684329812453685762252850844161900352863221151636367886983910872354640690621040673449222890209885051665250769821909378641474419517573262712831264301960460857858020603558199830840487878876054539882019212884122966938078779363252116670246598679487498644379783349094231859385562690635882350169580377513658566856034877820104099641106562591915048901703211398845957066863682341366066665860534287677466960247643329279383534328505050727754656868019203181046781220151652090172611264501046513943059851872223197312448699505306927807820560152468537577344545547712429044080117994883392349971387864698283795516532390756054811696290858523005596809858750293394615483899267463196252949595832128530725144491723828491551426747556489576207031173144572712140237232327683654467041814479317008907213159080771162459626236644405050315348283264510973588604919815767341589898728413648354546916643357335260958170280333555576935501953146049961718284922241301083423279248609555926778471813796097188030158771338770911863055247075000002908285521185347621274128277713166004229884076332860968986480256913065994088062139551833370602561734008982307105738880296291454928942159315226313191925084022192043761333183521534282406956189795699069986568976096403312476997405472717818471371997552708712632780856283104044957846384626582952560202250020891278025732680731109019339283702195871995586203489370698909616551023169741110148282623732531585275656758341530967447254913955208811747873722172299153997623072812193704726479661097438348193766013203895562391677604202066205068736544413104154883353713179841934208477590490600043794006856043442006520331518153942124392379270562658926564434750335854488476841833462512350451976551183335850925790558810559035335683036864783225096070364992269227507758965719094821509872608448782893043719005902473842158255617123759095909707759772695751357371432065644251474169073975659657139000733088476425506072926239695057542117694704271811137259565261021364405103571894752309473265559015847559797361148194384164993664697211328878501805604889154704484570490980980907932011636558550039489575693244149359804890109122724637860491475899155088913947034212061565879716378100992243870136552811027295161505699669163507547985942853295960099894496645066193005454595764808548382385113194504097690734027918450314630336718932248448359041594075607787856538806571289311282205947170618829397256745943141664171194667253284949489267548687206325063059918412664090364696216917994882612120969315849637507890584145771816017090348385981673551286360168119286821956779930320322542116607772660079322585641166536110261201190756236939703861162029113898792724624577557848656437080793054103299895532269034993885882704165495137378245072399696859336812939636004697646584364096511643720030404682279782806048729926289017310256723879512843014077125136333408222399559390113448487123463545146031600496511762600151591995582592374494915823589825487189025342313788636371617813245054204340361061960864264076292674774366443630596875835084036898315055994714725185597942273157023956291792403362028425149266884160543073907462912657963936532022579234978257489936926441811684043416575280916698754384391890282276258331761044722857023028771188172140411772319926955183466669957311863504023721477157512570285449457607830230430713853674561683358052430977212378996229069898789720824538173345228843697504042436558127429662004130694181436316088885802145209891514452367611899913645213916274140565713658241296587663476875824249706207033334203552006622568785173990128697869640646151167734246192193439459379799336402740532284577515125876787126980632576740485843689304747398470075738969556356575493517037264961148738621223820347408375938218785387014347700913971396484985727940337242677783722440601979382142934844916882217828268433272117430042662908940150519519283296449370657014217683740375185867193885384808777597768891766708549592446494648330507967175197410252356124671880716276729084871532102218154256826171470314915619617130220897652006472786164764025806003171823825315541842213716156970782936427564498289804510195981634721205476866012169837550905957871744150354751719285295637757243606006998360463594774838331175258689577409666442841698237292012137798155579613158059211831826075511419853675419065773727345896575399978718144531029888793088496425068434265238385294780762784546957393117463048991947735732043301593576280303140263812164886080888909109700579685686155311471240107623299410048904256449783234471169156852790749568223813785098849810298463950794274274916361897325227252993772214647387501001316684403754673582241427678718335322783028377505884659916017763362848767811377227209206106390275128810109655354160590585220042841454459457090053065963178757001719475189273371377663317752637756578555691988326035053929899516271007140576312129672626339484249822900521522356098040835699285906708767578920120030710357804388534307712132354318116121777543530890144349865685900311806414539696618565079939853200776585828814459806578798459829077589254467742403092297619994974582510148717611927667951722218882641848212635313783592595414198381146563736355649486769054094364335493355672400991641107391684261513527556226530374903580657516224515284361205260024740186609789058241710972292753962862546813734333021350245239857967067888728481863022593408835256922473760875253771398646268320949516423464497017179124065117008099978970811187615544403550208177243928768568937576207270702487937225954228015931001629740723124158220447977780332417014739707381823474366155164284550941931837990710524722191267120925048517495209679887287031888779071905748666751512635569048017599038800975570982277356386707108397160684876900613638844881544803998355443655113015907827192488681419426268928247400555451631034808906587702010055147968677600150527073933612780322841737599293426849675788258939682252938147860595099254031610552025651984042808928424553666485595821485429389197849624600631302337676592183843358622172182658414966183947631416980441271331608197416569612099222942545918456661269185130467397787057183068942003774881643743022806526897817849895888912724860821735269685022337033321179598383809402974836778072664910255555756879146397638518166649525647093031506852980067289819108298346248445095709021592179221335021378652496098450822891939421071702115578899683879841783714340506883113221094532556535269640764465553698867201086928952088261444366837930739617720904529407408907067948751828978238198240766686155944587447362493180731926973462448078836895071494138064881118058626263610289870731218261873003721083286342511954445432113006411555743368086370064422251324441036453174456404998150211964246702960709366779466292872080909195135360701388092929850253081392226063929173673021718182631195136149424243134982776831116220515582233506416658752359226319882208258798274790433496449172279035338390797151156722383916586821669379275971605529174332037879534051310362153855977089916204135819317576484660516581497551481256113676769149271548839357858042948013800736120976885515782185787844697178764148982542315041552105110443030097605881000552728098557592555690115698936345464011720568081727302915198242934018591809787341964192152922253895993602197847076743278597895350875725095015313472452927934251628165391464252774817136946384523521389210929035397531161758054623198493474886328116758067415688835948934866607763646783832605344831003182150398983400217326154039156208377169979505207560133522792317606256385589461362147024169120530803036664191557708906074440384289128856810631696206700576921184795582456720130289273515309359821221698338246148667689133521574382159112370192720606521852813065126118465325988739026851767912969609756572000344527366867737362332852313779067697659705215935159124658097702638792190126001588557420992208693767448868665045689806320485674113688749328781721587461940157424697064440827328465766975006075624313011094989430644945345036318146629434506941817606420562816392669619327165885879914074276398827763621750935469313929357249129516458158384010178057705397826698696196717110676916659865883910647984532658354324814227625631165464830721388408463728880522523994901930488953535621876564557732214511504413663328953357002737843761564573106653568187367227289434589533588870499127902642071873222257689491247801861400467291237753546731057891588749406592925673842581163389462692686405137082296027210288675617437959230938474883315562958965292402275730968207879827409872267410444833710214080983623935901666513872946725105803269566751619044209986150829370888836266383148865668144835328537411676538318433483129910120659574828097215992979374029704352963649615159670713869926143292184993388148037957880377020101088285078346693810257967686311959665877002265850398584355569793389211347934529164518027679950289537937061734466941323795990620345900017798631273485194647513379468911698227301121336090360743688511809912238595603545404255954953940451997111097127301065143502212813801495267476228106428660463511622797458307772759427074693435906187654122284392105843854392851031743768313675143452932663369828778110441812937445080758478941855018913131426792924628737954567661750847324722927176808690024480824992357684296733046005154918393286965951501534629717340176721683761403088333743084035241430507808697876516961578109975551277728896014380627183831064106341077832519385522619558059394862634999946878153101322899475927052774027434991798524735547315014909051028300380566255601192749146670760324720760819074327096716148364090206913669829687287600349566516716442149484167382427229889795105424816325562219833268523721025480047073732456041348538462734865469371491137671654375737294675854673996442047376763206066302993845598886383026160628801692083095945695017043408104586719268179378244001843343588948749330743491457270498089979324991090435196807191385299641583433838848170019268293442959063223006536337596992607754806263374064816493259650937090177935291086767724579695283096164341373765444263848447012677587729556951829107191220813754874933394592810679341415584579340787725436208609993491872958633142507208027519353888385427136454942057364215577960046955562787122930570843834981191090379115535683624023803215743489069384899059647007014733211398250633329194153281657741243601580946456001869010331350622943692106413992121306423246158579032379635679408326521276930254898158084783131463202591227671011789303807430251974518065385841615270106798942362432457286619210673706589655018568550046988606612288997596263598745905657091783770105771842226825575156674425403828404961992730681837342853032504327834130201540737530062618970591869340281713826199696728733970298946696009300564683297813348055078282526061109946358655281465681424228646314702994149283466425853819903426481971421787271134745292921269883045274241754006959350449264672629944581726047487458309866636101219272435799665859316260458825729185975593482509038796597839397467316662826800140620802386734147783835072628109586780074279203563262489118868734792264200214078834072617867346928514497833547042221138374192483625848650930517311756924021649837033648045126737338529943210745884957736619019318237928212483235880557630144710653448469023424755252537422868607819596602877523946799853648860505182229387219520266717698112483676729875005592941311919695488559950603102831515175822518386330443009273754365574322197559651514875363914456686119554818597284329429038230008691758730322571729367811374762610890236891353831750149634996757937234362144959100322201415147321531521538141585765626246274031647004438376513253475378303634844035532082450292669802217538023306077958880880374764186695950771035561175227920865954475756694598896401675211403727735060323892406020011129795846812813180548451639142878132543462586335564019445115114142075521449847150369405845460999623022215349065318061029479777865849587193783849194924696191561460715148644103163189633409439256481673657498216188332197856113768871768306881491670226364949332525264567658036660006991470161806053252189208448804379429699689825690233778304830379735095018303178858439580341878047079700638392123597591884981605805478770948870562806181968696758161547612629117658641256790109814821280161816831877032500357878950055747840749843684721221145724643417249188209289817531622500591066490869593163041286769858875331997829190697175282823732623551190116002711383739133411057290502707082758591805186228871277541340018107777688470065884800863915315940282403014836243860531574675800819674399105451368855211876697592301802895248047756097652920331650096758657001991034490810492968580727397788611459058968624271521942970015529425518000266755262208146423791792387898080861147614595968685727114834026634678842230887230451786297307999631944357334788598597329111581663649940960436191506802676682568888595715603063070319489610360919638747876036432469265004157793845078631640073746878367734130229408994649403034703309970023627931889077528302214830806179650199817237232851488502317446489987349701363312478139076786898979779654514172033226926992057567785489537489276864683310677730144651479528019193951285879103759320141557213358579696840999099531272585853891944476124276230379068508438367732600987276323852151694693157790291665874179172619893126413174091026994858737202235815716961251490731346147449843259692333819865235285584707561600315331884396452887312057935022193739719525477325971132751774762411778185904510833118315949333409426953026485363266257947410376114621543744938056323543607848690141568544762463859891842821861827104414519481647829288685666041534712291690836366205463660799962575861936396974669319176221870284953213408627461548599406781743330722953379294410563126562064675668887167247281391342803522584589927216808831528684476613038532667368562921700819360986457714495871308345424999816852088966184938186128746409436696686813470180878927754624002540989042602975063048189975896453110661021655105270764509713139053719886185028655475253863186787136032757834045911186664570989491201472239078103101591299777512558048104550720208690903732968171393969263346954693335930008985605987480798378847997742149517132556026622858474763203771198788327801894957459579409125928794861892565073246676448918784243204191168219441514519480089634375671387899153822210043543444442454817219043316238296095937096227005876376628675247940215798372233033468993174233422815147056287908610198483255649150856700990726874112406471742218922825843241875709333535065783916067985259348637580359537279077228873653166859116035971418103690219365312309953105155814567459676694626690382586707682325081047157846624609240519999763150895758545322115573602853536987975137745605189598249708871826100052014897882127208650135142654447374540084581988877310278785564179454331541189942782503010389743219665297399800301380576290123214302937916582332468123221796468391562206829417463387478682409827852108883427966527873871254637738356575551026794362093036911396445439608441030084392930720799997348903581421523766011219294257207285475908511650299490688809475782596857939443544932395389672881906200390064669574844356245445665614217535193161761684827572163692533349824116499816985100767696034121957399688865651263868232124966308419300505949254222185131554160356142252334977684638274004004424348910563664959527990530054018616907420285168445941832093354532752249323930462324787298508008158384841227401109888861199143661759622003780797581652703810934110677879020053342284748821870056973841883610243381461484580323856639705606564481133593810540100172343669240102097980906964343223436957241600398162021401949323532767528754727118888489291469891248065029903505976010443301435885637348687354805391100619508320571262892110935029279594466161380233759707770549111834826157998012342921046281389062572829455091854944198196522912292481106429668720091312634851305002344780804521054410796688749148799162538098300786995601927400866857596857125429366784703784033566752741878279003652062017088001211523131401856039235614821890736574548475426214794014758902515532462042250677903342063191763443146677505856577668543879485315644174665544559491897723622739405997922122491921353191753632817737667853715598975183965948245449487054921025691884456396461728077605225883105415022542956031517000693827375116804272721038111000051163712413916634808145848395950677688738683059478640986631994524788657606879948000011658385044468965641855740779589612584809165650817938191446698595931913743585556060391280110987972729717671730998258225164905239421473152930995879597712588840901166354714759071797380841723335658052154943548944370711246772990410435176784161724404586213415425378216142856761277771605172284273461703416737908282828318772151573700120446616175906490931202621917172041758983579106890435451084131317430597575526237634275956292081718387546342874614545407980842863308783109048383579732419435723767164804031597912813364713641680128149223419000629444150881327714605436540007015652881706859968475792124031452564529845619213836200149948715994046560175886143178113329522848455861267236961294395386419610707415426573796328400553661103301312168660405254990510960460351992308955946427881114414992692921752322038464734331717552105284549221355232415191150978841312542995949000840015464449758015958798366614071288209371425355568970021810967935629010447892130679161425538508069975155984959378012644467318351878149803099786994059567990756349316214458708760615310530594074231708286385173530722480824390584969646385169310266677218411699439075789592469605176871523429292203195049911508452138582232928212430788392369422243080968123145397800221336605438788294201837644277219661545709478825729222108171427057587150932766263014624410466703456497479301383518494436167246082593014121029129982701712845954992600132631298387305660797589430694968079267733335952374566595828891825309652649494272337309604437133493112591703320830828056479033419476514924776172249682758469627169260326354155323391177830924355879548964558552359111415861685605669056512132455014115252731340959258440908448714270615107790979659305396466379677740470606872451462589047085410789250913619765533361139901610032692427017533939235593724490656155989915662086139028849500127667237372029365784584452385337395811289935667917082996612844895810243264396157765535562503345666008752576328583452516501858779283031178495580803046972119649414110794065406385495804566226879757516176316065478378978835357331180417576718196708489787308589139106782209809648848803982589544885697276988161048534771360392437186415211608095444261272796110789842000898190774910260543571553198573669147770404754958101075456434547171625511864642746532497672114547374724599724299206121352378851131963962410423312679235569797763776120678044861617492464600707168436461008677038025510317541572170369659486519293601247097232079169803737056962069267032831152243441454854266116508843532749085132285503421300909684481605679638686670344029101511093160689139412566256893424553369544246693248943194043058228405536542513861821168538313177087199936895537278962459632711846110508232120613940569280298392548886049212161459778785845980958091157880614732404610895199704178272593475026370960664240478689254090874825336789028687983531009759998489798834246451260313968575623199531901044036548086725174967910063092849324745648526635358874865654647600271054691457089276649842897148485080389285250882658852637074529471530117119937003096528846125883867912343901568275416234813684722631118272513996619709791729826104866523819186802758058230598828002868347658754889971778087144689203624695020921241260954436710088374355681145975912320764473376314450607272632691151249418814371013636839314662503570997241071734032810560400944339409629512147327854196832386624725970584585855433155263744322425157825545932396267338840595723920285898766908014744175770567232187007127693677500732324708362917940316606749580234883363859989294407848523447280049413677903364229951239142914220635047099286192962749654008681180646355540233153496984600265401081698354079815761318689867879441767495670041280231542293644514340629264080863536846598018820839343594484069006121081996089518489065143456652309290443880725601826325711284704094760125147894218345592307923471274251478627806926059212254802668042098447721228260311952303682139878525969351299082629772325276225146553678094969790543618130352735869897367224747005163642722986145472600609990071722934814203223261328115776018844584821180411273586624093126502361124982821800127295178405790559729667164285888388587058051439649269267537185414482140602434944177987667981223012722687474189562116613210153158413309825018992572172753366463372251929912581660356773561095624692402213778820580485058366889317974324495679809790200271231131968619681842762655115349905476054382743321101387960814877194672333349015607072375816349093284927647607734569149845141934423584422742791629426022728746154435808497815493975230892665083022856569324070298182531573443928241831292607800071296765952009022158699835817798633414116244281847058476830314096792745199537563889998365863049534556620377950244295546599474554706606335611090132361406799304023012351218370775168024620085548718432964270141947917729768676199396400350350019460562899224898593939616233548381969385105944703017717196829927054576000481897548341532567003977512091362061426663790392072228229085801751046587086741710359060506417022466837353409840441068516342928422193016792667272654925017257595052199318537513725754800215624543915077822080440005771901238894797076571932372319437803668813096918480610782224747010954429659278536595968299654331001297979911140253302508173548367840685393917430613096779822377363175777446580121457626637046059440285800959740648589099527906345537514129068806265983238479424082273577838156439615596608826056245586258214922432192743484264878133445573702401755406758094923994888500490188824513397169504297445617997477364050948827147949458187773105557202375398527320212309192923068851916921144619224033010960328567078341054656401093578042928000764105895788294665533907405076861313630359206643293354364673494190624343738503318117300165399565856032971127536822653720846336653917962466431701174873278373783871962082369963237116219869367764777884248408871490005239038483680860306635953779268901558676361659998981792715653784917063451175275530122166862226227698271592974957348589494124013783252731939718942019767798209676664499911345577768181579965127563459585708553518128174767353725500345310416080576915152310695228552583718299906953767480141523092612795830297861299648648157530003306290263355166669280775386402273797061694124106011266140025685300756882049038748522423386509225911547878377165680387121462512192065832182582801364077380029607999357074518457111424327122820781904870527646889871939001163746308046629807751187932152779677166199676390070186023756616470076122889294557819470619880311701455114024072566731646520294950666157696576043698446304496789972820742223353309097443633158057930377700305287794620806067132690276113739207078897022307457208370563010956540723149348527901038684747646791748063257318151539555194214505460937319236329431766430588579393659664529539796702793750408367257258865925330556194911198715506491985993167250806626374214381312330780250752625394018491212152592441353132862565769664856373331421472521391122067520982819128327646716338965990350891760562081902145953539674116061062107060278670389508707665184654065118293313811889315599430304014084278189858418993583059053501079116760008154859109577546899309442356041824207178999924617098745311497892960311838736903326766672639552903254617519186120275679603908198635375103254166189623100726898847865123349106950382393107308241232330384697839656062892862320817450864972364646495979646470034227032281452169897061423209924078686823555093389924722977947877246704989223906488556985805633617067014337270736047199960660989107555345071913015991593612677225786251833829753403377822086231659430299391391349494834018657042570898796515474937693842157248821476705368651467606880631020703895021563144989516020595374719023059173675670631020257140262738204840723237729218189528714823687330955714706540133459303548320382084223032566856750660764286712608542117224108260670518937388964205901329824852287490768202085777876805397769733807739217158170014161657991266072740125409491715711468896614435481789015136403262959994521436300627809659401532768689930647373587407518957345230976567249069307104024451371262273594662321441084803498388252143224577273015749944522186791831343311274990562376352178594079090074890895662589787400448907589693013018319869530912884668317214447279455429701382141794364534667370806249075726305438677489191664348013282357633841371205409667384443124367235747982039697189481659873182315821914239383445159924127780932707401097300448319502647938236058784175716578006140720017962896291372659781500818943977187742384372241817842749799473159034794405058657654234066582055537409399998782885271682362777123441483853471261105247388612794443798765393768020949845052777260873621459124199583448277181385829113797754996490750275128898918684103127621350525621437233901155038852752600001133815759988039134137942859502446548755579258881676283514014875984840209223401240839800287308640060392377322331765187488222997539529885890443111181249424003806179395870799543391853517006553806623095894020616945770508865848318079569391344361634269800630226666404775827647998054725863221999876884252139386302471539392351596574796949247987286584885890074117851713437518084622178905374741961326631153555646379487801641821981848424653969141524340078000596468808814263208641485527284700465197720662481305337653931105360622097755119088930811131906241562530984270479504727320691928436013792435879380555653710320698021598807800402996413246026878447789909194582711517115948569678361426257995236816177165208481802749272914580914258861105871340306164156724901664347930414101250496700322921519391038197006494233371023702827863965994683184648036675558043736673823428029938753428236911748959180550664851972932444027919738920381744847501081766264372549203854458477892039481859444417194352101011977853024139025995626640298776329352410508344991798455660547062771574482553737514746003823292318729370267886103252672652293411545336516431100709491797212858825639045852530693031563185506942381418816087998743327137806111646088038975471340070219200864249228212501560694845380709199430997094641012355056587152795074253391629273327283141460284636966701266372715278436868816048141084906799257055175363417288662321157755492577446609730804375655749808573025850874746419542468430060335354001159784974947988462750423963380156290091054961848504262156522486724648974206552719516144561788967023774058711390859177757361753753797600487298115245742622852691771509085039105566683632506160754867060772683794476230742617502364399066663003997228277901308512595841876762790186901920594136195503224731536088364571409469653751443421422736605167265393088952918305521001977041626771204312589128110601112624469225935238291990838881541014142653642272483279752222495123262188071976440014403211329723788507127882956707492209110122113689038058857751766414766865140284848151670261683149823738289802205160380724448397410196413493160498866424486426807090594471586379218031539918727724414459468523237493862648814535994357588374754727168954337233320034168481911100331050558505816701403901647249468700399329375967240413937457889168628894506421799248118650096554243662440745219603452017081300232720142967254261945670900507419906483207583201148670375571928646156425988886818270382492665893708395420607162593118944306977171607022624798025361455916688465147096262723480260388578638623521484887344668226481058466589327445074085749964511501429974551083112267072239337404358081360621160999107668126556413331331927113189762727282323913050483095086676359778881978310406010449524156494016480223700584099945982579644644181928770191131048263257996000434415163108659778813050961366702923598591069641643013296344418070037987766996733266083244358765476412938724356817889274342530093152709438135113826709598273101565449521033963099333267267907536524297294453288239028413475497850051928208555442898485876700450877546068012809684764518623967112283578557207702296123657187845415307124514553249676015565355249292163188650216050433761222695774617770668576815348465222353733400010212911143541245092777759897167397580425361429041959304569894384041510432748272406992276007466825873452672503402794253513916919354140649874774972398710331871595548142264873854522903070710766604741311894270846980313850707878786916245108635490937104754609595424106158819540833519230880311699903324275622074577144523997794087990496831446427065376964406341942548483866841035576097859395094020367444382438354163979798202394266674540263912630372356982799833406134133751728381314949431078716008143703565690374128365166914510863708104690499008178614640557230260025073721949395464150845450540364702171616525207202955012972656157622566007544368312434702764595520024785492645942436089913288178746941324044536235431387436967623632473837709919984468997569936999502669791281006097688428709518786270287820717921129383678026795247419877060556393492812515487445769736655263430782812156101443821870337012974627286266433010671197744757519692446180738647439525239384730964148535277808988841518526204658017217231594361041948462214293391685311692292009882511243221290670630006975035555278105868366350999648630407120155974323622895626538393734077593485484117421272988175038181376131477951827407195737959347533703287306218068350987543161751651763778752472795848305505793491579444430381000873029749025702853056210988405207057282320180727167998292149951858396628737446939747098045778257210571704372848315077210637440775754536215084852183289900094306897650041016756964200517806421274015333825400261666526809776646472918873488219909173756177113079465231587539607348052368898803394867790827225106374097701622009879988217092184119035945762015636350563061502305491086813669360257496982661979034795591052588232517244957046564708607030144435868781569340154581908466577894116794013863878882140251524948396897196033647337769089911957060840027644959655465400125926034077645798064861622616206405316061098265775111254616190522167684793798389393280020714576016469376567064277204330070719914679951443145895199488343332165977527834787149703312442620609481771077723928646775626448257338994347780378757175384489739447628874785741789504046750153297419076868318375347491995997664033513645001104040301375461694713766159936887642153200923827857327650715541516326317423791011079950299660832791521427290828037854883642377128666836531863155478077144207674014992866554183854729867568577643645933959334468301890470692424340529294035895567242298560882477495819337771639903156584398120083112833502312957759033276284563994164645331437715699048391204944336672037016919122936808237367067534859391161071911750799202600919573721526049742818884910109096989080265519354194914669050982626779407910728458317680237613790214394567375634225655413079003244568361434317461548262937505738681305420528049601088991261917836638383978307380509305219271096641301724618566189415455125736218116959470732554588585599376496538494607128685791704521830342776994029587597462823476467668353233182738614082902930360573715411429677235521418862083665101162533513546064817396367270403762594817375470859763423448098726623487984298823474253201166553567028037680171505853753640433904476601017939510935123679045984472770210472938819488543468689000294243427780109492366106341766145840942927397126092288033008578049981042614508400017763420375743995694610369792479758769224574566415117565816583155276282000912052399339904928128272285691801622457635032388575107455251425052948827969988763741872936949832312048390862127229255846947944179208320084528408305919286307012623037744633476452627703144454827052260346246539239173195849085315366771414515068525354164794170347689935705137219556255848310843056682742296723197202927151291501350189640313163794578483577801755300447513358459352156724747180181383650923355680844600585662200049484041423487213661740736029831821354259092659047865659928679299558098937416197212229742564148084081023975586259064560918575222674553979500186700405252262642278915158080514451074657789038058648155467011932674219718905021870064128898484688769051040718240742412334775769895904503174760737211898973528624837138780332645762430965934746548067880913872697694359943344858632080536252627339671611367598106969834808980642516268304333165171254741184406331892233450198639286094404812880730682238140251825484336031321322397212487553166759302282190962941636376747353423800611517658316341919841434770108581267085394584001741191852649988541745142758744548216416671741813312515251360978982710179716497618872179111782286366352001015864709260787201312052538504467402712658468527741024275011134132684144788519716394969545614060317470948235894470969284666204405839277308922945391168874210347337496783628442700818635308879600301256733191892026535978299335363995143289988409958101373500010463857907548100287472240808747283479708398952754400009583186210471701441816541363971009342837399297701168700129681230270292903577220078554389025201937870106770594728942479559698223462337429755364224890095607103703864246234500069393070510469803421597019211856023843889036756065296484411889452257175639978493082320322532207226843239178606042887877180763329676802178168736582049375582043982288252519555793846886492960259164236270034849738402588639659737309315672551820489181660854573995781055802625785734311740039672907536253571193965277399751564133023558220964968896860084364475409127323486568958804774721576143544866719044119722790440680561772302445763680192917681382764643072888081294853585239265451103472530543853230362073692208137796334406607926165114904123663938960806769313685832682542057127079693282652469222230873701321904417835148586409659485739514884304140538739069193482413068354751356323595309802028147113341850454506805754898905825751240769902836173415928967903035382704230113471145090986876881051664726680379926733882551676441091012528240928087823171699271812885163278764789630132277907813600198169951911934431075926965169112373937128026512437731248843177798874324459568313037743312169149646562735768631212102156580873757991498402288525059368898387800775043916052401020348734278858967950203723913532433938124234636255952753296801128307554849322034575308401958573631964460030400143578874079002515429110258656080847969751816291612778380734585557802985301319577705525243315932890524772559235798134130252948028189311106987008152484284579853932554556752553776047534875731712992174049212929516154066757235237005942803397066556717746989158562311494892883547204672258523306293171952544436370689936225445794269991607414958600578890945909407609538848181114836208244906446665549171308327672314107012298179074431432906473528553857308502432795026517281713160971781621740929407193600270404386050821441942800062466240011476573371648677112056498138885789164116964592490180115581678007280168148241057783060869709461829473230214747652825303369104731085213627053597394179219684231981437324949683972065832350396881551509849073247870489023506625689276351087468295771630480195241637271261288203888633766487661709411528775368798756463290806283439143788476561196756328180373942308272802043411683546497279528360771105044395038952862957870378863965733035776758260542470239559149167002458769134242960693048291896550265957024578078786854028017827723334008423196201450200177216307615378251879714079549820180633901902371641694564768476538236848274421644839485410153917006168000450042809555065105836204123304171180835765454733542980292163574018321653089392026562543142112142268047662492737164677714146479538704285825784746141297488585828758322898283833197931392610472547460299248745719296993110825208526219302847025783431226983823268844090664590919982496006316805771363897793191021986189153639011043230386647707652994432798611218484539026231381881398520941327342569625975303736389941897369653917892436441732570053099856894192538300582109177150794550043274731968602583575014230807550573729036420164245094021836102978376402829053077312434088414133257428736780283097048149403704122450617903607924927682022735552671357849738745193748315453464689428739872478193968197213945869515505015306099086355584625700252509490922365870970466900009746801914057419727423824406515528324517193867705722339805026130067993996024491451313269858128212897645786224436570250098279646310460459526452691305829620241703128204285271314779721332297549080013502703674243875755068153127059551258676301981314204808189427712829657330501844385499715271844957318741938699869009819420457157345046992021942751430318159184998979623278430279549903890439437039910697377083880349930755018633332751982535920508474210844274748342822194230886870517627025056246721215750641027350508965876168898077792464142046278159238533408493480331711745810325827082502379749700624919665612591645893093473378327940675483703487185210477719694855740950653031055589107280677717792851951020193675407911882523994058922517056640483731578186996131904588279043530008767482946821697067956217504994728014443920021875859935946743689983174609680990808324524854568612059045154158317129024542349184855924007064139258811711829060059900104606637557186982478357991107067109882065461120734677319064581919296932386226912109757716943425815952688711232774132151596923712098262263329732118552108469669648455978843560824894584508737094159296765787154577106254369650362095535586008848429902542062601714449130110275520405815940989403315045477724441178596626571217435402495940042403675286887170966121405240713425056017703049341220472065557990066110728169757273597177708467815757116299568553633626270219145041687998788080012255580168210032897099462435671350391067504470473420730821897536936881160017136177367737384562995997240440447070596614493060896425818331120457158214893016480289330067499734229984512155936074650148247941082341375919552098565527139133968117075296933052361209538240457756896196303546701239384796193646354507981890200589616576175951060919681778814437084179466432541336747750407617244307305943218737216518776993068807787527166809647763390541781523859403403289925935814227922716385258385996954568414352702735647633492379693184714500510432643336364044647712540826171812177723187754307023106764576036193372966249158305300048838304756266804464080773190422641236534700816934240073449682954248503506358703346583470959684415361804700433229160537125265853859017444230771647263078857854692247489528432181093867495821975008977784885183822627329855704654785140190296843597995667007415266515646728948990938341410279278381450440520571912745126686703719053050404374452790555835451281316469720691175059439513525224952193944336626576045636335325010718623931946210312665006450754682947552496542432343118289299418771665559353923600304185776264513974916170902101959034819588316099822824069043019607236227545864720729671279178239301776957149444740060717946670857427669728689694148366219895994123423577022158766119964452798491865142452820510883248864181523994513263692945725125281213947012304234114202019707291131504110053402030704291549765909454713208242683873626070240865192612377388684570073502211391930652017266900782420010926469076453648655157879322731515974912653411942133093593565945789727615660823234689390815389605761754827375520797132732479475518716093237553801050120297014509507597693543417856294373792081915997626707726972829130881435974811288611853824380374012756033828617948632714340756014802045211836348111631894461913510909507304569677579449318750606660742450307859957357662842054278188586470539830157235605480813017297031439239006315612638396299548150121892054708219802181448963000557076587347194470488156940494130076716275185725326766699007875100250994988084235564417169522422251209885232497766363117596392298122841313019732278753236171357336632580851940723363993830563578366714002541901789973650019298864450047493549795477551859693628096009372519036381638318185253292093284142420172779050735736835363995278782882518547268851008800593844586768128456765980069113291591764460181858555864015654356045118227863892424744392223075740522417103626472743187736777961260890195417175557565532657980340213578184900325464860750203593670653532344233583728319385352896923278749568906423317384672091576837972750684044644507975085178812182008538651344008774436177110086872916827275940978178518780375861960318245753461691201717752798381011991613791985646638170204063518390790831808128474874758000157646033457497308903110146667450391584100823442427234765832613758134832387349591157697738353741901702411814230834585981929929613324962511168692734113227002848572342763817134641551718038187635930400820476068997143205805040640079008015048541450214841492005120040222876758280908016686254766810002457444418524074054895811995750695369603974786639888312888312781324064428166126440283381470139408626821012745334030466038624502925630702274705252323027306581298129014384756802611369517289204483703799739073465265153146627053148943044344940059994142185257083030191941676487964910216121148209286885998380464637137449122272003769301997785177215204868310200751267579811146295585696927907717159486919696396298760126800963046808727925747449466302195660929785525483281012513963832844611190274874066381976927955726448979952790359702216493525623181630322846454742247661665899916757866337309005422748642947187814853046548483738734719427755107302402753535941221850315866743740167875549285441757343915746611193992057583966937947206000312315315063809788284867281588095166393627570990507510944732699691200442323554204585667318667196730793202764943511425873800382050833277112144260502568650147023417464169077312213579453368452050977050880870620382601169649526110616664731810253196092457744391272355120985721091996429067679801746932349063984663225307820903179065669894237326394807697362535476772811833535120288680968899068693834432926608209137780796846772588016688527730507385839593014095979309626328334853062798063196245431738160077473671593110944373642682924824767897229189501412582961676868896332034744587563078681289546808208254703903384434203712496124055949138303705490153333740661771072314944735425010951621627790129823881478311051832050536315959029055046916968284060110984002968080248887781388890540366145429496813900020469075127131724397307868859389573603072397557293144658285608789277565907322106217893371517154805997060407948839895562365816858161726256861335978696381869308772600533580739092074919027708150753505848132785018344782437422541093606502794583111403087708869231974535320536266340985481188449632655021493900844347712527997363076496837767886823604687521387636148670383984227929395049271624456711684595263110555922962553479586813950819288757530394205491486768410858052980226420780981197829516216963599785012797887409483604347707871415269528155027965368522181219691434502153475021120025334031924373164947610670803763407293192852339843863315161818604614598576845880159644549817399828815747752930244570551982854928669766945542062619149306933539433437365096065300994411949025443905517318717296372479213280351277906293438191414715613326795043379343466231993722211355875134061230096018150390633804260736787160641630411859070353183199165426980776510709867773115326658311916451038371018177051112440158925388849743738316241688853746487931710857507950322050147482005903588049235183935276668852936142549671094729640904135444962764085163466840774246706810584130426608373160342520609981355355061976983271377445448034846215044787122688337093734406577903877505835923006321546076122229938541027691265710456209680558644742668415194082863500526416989440986918521455992347973706093683050243769468002982213167454439668705243307853682733837150472103474335068040043178419153902519746734700970412087157273937690622166481906024830290331715052083703041887340828865842913111363680904606187531458643261766294958900188421762503399302944401321475448610838179240641486325980675333628999625566262032680946448048994396835878884020525324038424497737319386397089351369380040994479967559079132721163412098204821157749733173118640459494252860770349515286294162616351140485531349456859319457268415532581038422705406751403055212041080107619299387243915057008539401046141752451679404230090339598801888579789325462399127797901550127177179399803211802047636288146367009571545716226596709503718230699956850880425363960801615275240365152370040873063984683144214739175147448078609532692288115649022301853131235015687991877490464828495663360257170070538115873760425107131776783885969831306460954593685703884187344524772115179692213391270924576648154413049689037630834647721948569479925475514959046574697659884586486716712097493866524443509330151205806258083969030797433359489126331690537130950187819553969737306107973072951572558871154578528369372628848347879612108291642759840557063134011272484094473273668974388495439304745549872427106594556410495565467734875145180914057507543475834258883225715550352313852274462360992082613432352578729236732796475158187332792439351437548539468939970993014050151395690510338222818786107531286152878751502838305018720886307622324578074887788484920845377088929376359792925136274954542905372721932658172008946397739427528680994969555380882534848160139883197195494462290896244100325347917200218795281991563906913018075798453960823604312093046540411814784660797375888489165560760644814812524381671267144292028370134404876781410661249321757564291507618251051636635359434161633745613602565806698683700038770336944409078517009977895787367895216310386234051036572902043540692337451470305594996329091653562345997334818730130733030805616971676248156707811938440493381611352285307307453286922935452426953524403470665351349062957924244454521247657379233407738647351738887551519949982908827124797385248777270497120470127548285622062612817561973175750262359427438826054629908004622667134202043603262074330095762507226984764867611858937670595496968915570680108400622493859024401079206476373409292829926603042696672986400157540583560104448303475865838345631144426298860494692489408875281390455200422374187385202828850338386892371998032768208455962952599318599273499710653744529496309461069756244603545290117761853208345776874021509074267943999294080994875356351060938963551690580198354913982069030033000666395763130009432376776582056121243953437242792126725691664900403396562356838121629676287257218065575041645565399452773480864948334283267601046657441510299357951626575132455505205144261398458710309664143903852340795628609921115324182369374172542659368752873776298375272771561532835166772259674766845402152865169858721603565361068144420569479135221161241586429133212470577173882567418535013576035578429933440891509618577243929964731873381624725566434140065083194565070713293792804539381268563477666192298495469067308271784384524747124482544692744167823108275268513880189526259743676828223880400695457579006591818963304040563212085985084246892761026474276372560658042434436336215766694347903988157348416177900893297015897321711650372735657269729848626926002909895078296755053114766113434910542222851335140204677587251543673299017967077205806102919903261372581130969452360868374104452792148687636002811253892815335532752617720372714362833608134252824474446573316114990614037699400831252568330780541852247421382479018203227667512873596445938047886275337735298454299267982105757092721556918139397224304162485289168173628166245082264892118335605738909067365375573832331397523405795819498378500799834150238435640826221497446988279279391363086455304238554922776969459036268607929491534505614957429801269486845525841954245813322279335457415259941474388992709633233178058860563039491536835301605222591085317818940148586704318263925156078037456475146940188698592402098143117781667739997507489908600856108057603847596215523141707041194983710453418832172624204559581725496910521988399223559027496350528039755459797488030423893268578907652672223918922727174098419839619721974770853374600329346397334581636049958535876419532651105378679883159153269336950407866779769877022342349296272541138127656542986258229282865592226401903771222993310093034112212543414131369611916703876546963585389977790936729333865124735397948303263344323409414638970749120684345194404225809030552117597589921860559703139638144179291662496682970915520587699035781064550785743045140915157610099759635703972799593679418545630289038867982974870434521315404173883346920868102368585447126011725287413407141613944371969490706333188556925791310208689633757292546713583859259473971934471571471028235638474449664755859160241541680238370591874768059193214993407343138115506461699379882586298004019183831853954959676508171570363939437076176277719619098236273575526087189597597627672667936642117566605377017676530351101540747027900151557659185061823753490356662720016269254792713540892097388319883003575658981852043584673127048396209357357492764719067054520915924772364344865465679384814354851234810627680931453203063737428061005246562544981580703493326928426188008414061912439786051420897369168201031302040037413409169709290829484476617196817545369202326207440024252132095709140101841725777664532184999198841500444553731058424443140959781006004655967694435915293408893835193058444814976673707337756927112383615274120799942487450174707673650071904490086285072879477971687476715354602413042294673967377784433047461545431127443294313216242353852330548290545443412888922854285806216780026984765481240784545247816757072416246093570290618944511590640083022769310012378095978071579452910800097312532432738923131447539199466388867826505976566718319905848884643766731550902508350100499572840631385703908675528303125955637454159452936861860718718178337514969785950689793524917049516087429759823328098364023543029089910866486106371000327393231586840742685154202802538268634652152495732131216384267848567241275225582961391762757679610650080154148937803036633086219651734175963123373582574073513470626060307708505842800054118067365646187898699911454215102127510179007241212925106289304231151293797147454413939493766801725958678610764175157302098045834368634525090747863011772029404690032492688362262475410107373453796371723268591840911728640238324753044516888097130442666679572658544248824370803120858620847365009104333354706528938475070008870197651159472995276855294624058077309536374198354543453408949470038212507705270462636727810946296841671118157476741185620542764378248586189198676049871371929106191093632919500846718661766931008272159608112853485632352858886237018076359871627265578211011347211328334205024740640313938788543004670532703063009592840433023483489816347023425727428952207746283929330875713986575395845262860473914408579425460027880413423710039325918135128179966731792182405818385099190208846864973402978237158267869352118590519092117017575657894569965352469412990750619570537452645807958017125746979594887757675276801226832453026263793719348868168045714724783603103802493001238121749074181277190448090765377494095593941412535677922010670412161147117285431807161640981882430240131571043478284524781602227950106624699287353315613679027922489737609769821475016622654620699389399960416754484446898183445949025214701288198656748190940169829030289085882275038172958016234853833020152350072086510627464214347487832131069600871886408000980671008616306579709086028979327946395578763481003058037955513239222494430734435057198710282428918591872475591533185189814416121080045608915463704031823102270563425809918454040022116363178437122775194942625648887615486618170064569077108779551728688618096591502689344497188825435050365994861182157736739459283084333245462138768321939506143325558015700823974961597855734686143106871543111264523972529757300604115757117532880214794699217373099858381196702683914687754443232615557366372815310731626971566625846465407102812496477384382944148407022393502126055416805454672910406440213663519256702291398465794377713974560298288747194422906662275098815426973862776910335375152349941106096127741709283294287782292045764435941210299580992106055340663394899740842630411080628550223149147609192321736699787705608017655722184312378866032410448792742795712692505152589286668616524306018026508369347231405022017120485645906445888804534019380752017325099269140412927261395014613838311016526494479550619853148110070024777801174654391213515546716709794818106489946065012966419821315621937266575876432141092856624753895674278857112059343518152161420731300634924112080326166464119686838899684780277219573184916797288333552333369240540261961934871942518814644362042588601422529158155864344197434902554923279679668121770567997711896755371906915825767107259270413705841041404434803664595434723997780110831300969099915076677228715014180582367330092469141702626551455293916983657710084942853305072673179444584532284796616283155520804074186276729542511162304701179568935372427807596455752420428085623995879164786418469874098021353111760206349746222272681254283898612551337942337214729265033907061842519708996949435850468930364958501220236162297744425893670873069922588917873065896913968411353234587439400656157085317913455624020015286866664333258313107066217417441693946775564037618823850687983344598652185562174784379625875432832106937279229201693797051956532090860754219914612875399760370468486731325392281647025180737215573566804736698901414393681721818241700390801758046761219731887372354327468966254624217944298951828036025900262383965545167609624164874169521044165177145010540822786799647069165647248820270509249640673398447301397378407548526167736035953493245662694009996663306959539011287372013022159787219263469644143258463140514021598324418620508357711717424683474799550363166979037694147238689902128799218970373441091998876285581208952028200832079731399011946772225018383777003813415870143268379720269591364511575503896445211012099327380367698704948065239268336390757775682188539106949920959159198360849216305470747470386038548865995949116242591500383806562017097359448531786115961110707829882402890303031869808710952267909232066253602586714232196892018882934081118530659782212203934123738315844348332282063333961188473390860268330510556222067982782213644444261768063322444473096095757161055578659414732047458518260091619290978702437157424275026308057483757988748515237726664541841451689373019452770715087984431888800913487763648885452731390984014288801719978160340752544461419815619004367730028088429890370943301440653176403191779343543631680893105375782394609472057309468925943595078940477463662128771290431010592157175459531268291831683488086493580627629875355681192045399920206181778042368379517054488376455847019286121109900697245978211494283842815357735129595781000538915942756494834945583806458635069344398723437399364782798418289677977626409022828140194162682309090491148896091147794360816858533105804515947154614428658022192194636869101666276494780793574383171018860134870455337247331666491078181718543704205662336371167239499515048797608287962365237890422920130043204297404455451146412169799069734719762324160124302524108414991256498208417770006433884299653896818442650085231792902955803417142952761014413161539768574189747978898564548435278247086852909099383508905820371196840966336242908613052467032736242476162632462558236688799114259168750954043365230908799316042738116629628137359021146790163332931168438697245952199591947794819190854310381716999103993459448508479588621697610873932262919414875974252901874835037937725849343079087266454922756343921360672209586037742013217506214557721305566684368376601042684221320770748504023183848592797504026982446185347622764416667761772773497655520207442630083896782471603896577945627180002192918598452187691868291534330875314098223698138022294375281817039378135896430386881961895346393556006231250255076225514408343656006251046777487523092902835787353730474051687393567503622842151731132285772280803778312272614850612691857937295738567779880314670770284398355834390013137045774000338656379553845736762626771787632499291515215951064000408151565876608673184556105263308868291722363993768993068577756858143105824450699878327677897601403653471079611612453875630945962230071468768869436358872183246942644647995004670067793325821766267708736837324045096650888323404875576060789779877617879123990863110170226313726038695313595708980513927547136164723587507612352801488986929355038175931425016697196498615408850660491693619384520980300015798889228383272119632919439408240108532427669430373227103458521336524913604578734314838722071873815585799260552090096887093517322574194688624690951934251852621481296593184934503088323225358840618657323291887550151148787073714628892591553855605398401999236739013938400663551161423574518079240161308759739944082988722927470198997095310195002739771426046738375912422386007367833187510503341239474759789386506352568792860501600809847153538726619998851060228546377690041608848938215097081968721517407547243287568761127928597053230553842378411388278573233472580777881087228279763109050818876531464388659205711457249218844449508816470052427482380989288341887326851493282339735456346949476790451927902275970353295510100390820592049225628483860727986907286789224782733242517716220204437843675037584397595816822948046175060130344551491910074019319688280475237817815138839817759505093758507457591710892632258048596345718372886196475535344868662351948290278402826578436375065608408947168182736428570382955426400422593244828495459443251836554906884916038719259823557569807895327350470384901456972617891611092161190333935863826678987714409246434006505822548050140839378138500190746287732942014900428350643741920344052605922341219805535699247982022426650752182820684272346631315272001249733220691254460280198608931927407127108286525931408579556840176494097160091883923904885077034583136116418106554590906969910232438466067665549651675888510946944153352372482196904002265909739246062799806342870455192756802893671961990267426670242246603493505733671065284399045178752152494114631209664730796076627085611222720435114438128000007469591304026951391882835516036613156299076586792818558332781166881123010899506912910505807123759259145369942585111863034581590081796169102243605908732252757078169677228775807485745098831491395275416051653780451657795234824110005506753794312564641349306578365661180946371345444311055492682961257630366707854022903492413863656075335371862366157977595070260158067939847189081580953905516982819122930371915970585293520918904667125160881026705077025010142164706627212609316276045341005168991152749104979064765031469873559862243483773412511175483638103237607755049370561952776215586481074207637509496417190247021142011633212269238638210964057348225245588217954176300065566830516530813496835252622600832177305024411407084693504407529664416307366926034548809616368660200369595647971499948857435586781581819208688934639512704485720718833140001657274814121454622783270116413044698108797594824081727722834981846752987896349612148148917848267499743357781050319226873013786939372920024222675635066368874652844721304454285254613207452122207791799847783306759521201319620973550672544378751041153130441330804064170878607259573156952216474766117602936073633883628074457701981592712929764223256920729328086043459447638475727105938230737126044905249123094698861862022492087718247109129072594917628784706463337729365375145728601832706113264676510748572215032686112694002830696385027818104033371719830883835729250745567717761906780249847508671617723503785704664755799513960966628907243885001491599602873316407692959815339677899478165156740159469821778850856181637959264358975452849137535341526470625586645029592851592453029952017537080886063048067506510762142328653199992212954835753917491305453178675066326081012187593831619564142755301801833798686619241764484510236034817177185007953582929404396613635418598229029309810411412896501445928407871512887592769687244230710912177079896255538664333971558778463919804755976686786039134501473492456555677262234791442115950754325560215639629283996408642156859778607794213457829595658915508679226494471955008062689058270366957173784594858329485831741960322389345035505831317516092406921253007715927687543895056023878758520487488498789676436227040691327314664554509803701738365738607766694400902235183135608623390693821848812439152248565967541558511018518951478076137599220740483241216327257672004081169360942432887379220343980703406488277199195641030219728880875145247665327195850075471242837094664480521878015275960929127709091566110055655723070750368409576732302232888971129450803782862502018527386691756799339394433326648995962839501146008594773378844652373272095274854259674846212048490291371657523633329008306104629773687188449330914122521912388438789921748018224544380466994036929952329370963024015528929999572231844966663414113916278024529355477803967164602713331190413742092750194338689617266477700118518120515483720949377075533980263697055798445858311776517193527677037142745528591430597667091581459382832290201150767556999559467121327847404655257116187848186865711090930852125903969286873195852643246782077386429484527649983956660200151258999719893258942714323337683853912859722402131071569168167086359579250075870439218574612286835570435259163333042598412740070861051034685671834145808442700782258914236506362348877180537835677240607198484065637954605270284484025931278767310157065966176210360857044197832949599714173140279361250780170665276719482290373182113500542261561335916186724112885786872631967136330123980758221206665079090784390986624606260843163258219058032064149592250828130166808704522730854138483192690287049058309736707551537383905573101492700555095370030038956999096354939222798098463886069596700246331632250205545451192008675502030351462990347272453522253132494533416663403269174193308959262418177960102331858970990513940108426788874122531133649754222428890232499002008273447010981618685447941337504817305096861716561629544241466744726504219373396459524258789006126636356409984936972433124134909621040893305953132881058964999269953264557145514244192126117545611147558035850129249608919618527586007376733715395091522511259221493196548755732531464641162611087722023943673483854496664315962674928497518257897590463114319974573894168757487739440711630427066547601110141405924528962919997602826790558406648938032975376580117013179116687620611277921426162563575185550407768513242073040106493458974178721885075511905195383330412221988986590921862381259961381286391705982155394296137907519560591377649559378109434737745625299911979249044536157670699311627528319334412042651579782670612118803210988081907515406103913886548436291382176217745618718145508256175161040720790240455960239934473569629096865176378811124663170651493467644697855267741576619305212564695984220861004253151002270990953025621108525539406130149580264478260917511828426461295352484089773551036028206003982741724827758845701576150633019829983039797401923876735045030800571857691276228831879955537748370392982265140104821562483783661028962412420165393914189288789752554047263307942673783956202331130524936016928586245666728512003802353377672149295391034007674155986395702995552482490053484930712052255698773155721032743709101515378885669990748547645853094453633681534492769253793219937240483310838398217957430644806122889792346305262215069529007961950045388632826611154609864338216886087424208339715918228198447801566126441902299920756044933887949742902307134289820125735206788962365275821529727495222383670344139692163167158765831179467442948973289882369444066881670704655339209669051991353274911866814225632248102591844631046110163385745414819421493851249878410887496666584717189498422296250080602515062266548907314586191114919762358917303954562339731127056415834831928553023630104861548543135742798367834279964932219677285603674063957308202009547422763519419508720988925943038762414346287441948925130021229979088793826546034510532418175362357554627643389159386393248707491337761111872811028905827111089609809198315148847586438827966169729172845759225553857929254032247608350940933217685134497908725972905372849963836704529210491412886856489779336681948261376587995119046560241140757734472690779857592595902130456697407393877870812794396380863147474573465499575492581543000821501734877629506465876766062688514603924661697637457228748859120964058459895632441537295141488554143258134516878711460717552775405149663184150040315552790519725510365579808575498306138224539720896216612876018219650357341455241785612959985888511912224880176534055818982674563203863764177052446707687124496930225706634449021848628101766337483002640650687111177952347136181768771835220288081289273218544032770410326017410143372074404157722636432046721794220119993067406504625356604028239344800672905565516335247086715682707615495623861310136993864031745347417749098074405059228697054148313587195126411738924656934010227966336150771006350971556817212826434822778110216053033519996716846971274328834713695501462485424444459685863556608509210141975252080217194261010758714863800634132411485104338184427225609275834408273146426736117761997802766275645195093347203746556063778519903329260448050118430174430571470686085943655393655239621447652678734261276205239121074405007782377772574705320629177977622508628425085469107547403410824100121236524984909349292341491012837560099827759306221070156924148120782320960614645394007845310073854388918535318052816169685952208596977826198146231387988214312880839419560190688563356509914998763930794204708736589301982889456427732025359151912798414578730928387928486396304877573751401620477589533622190007380009421727162886374631991869901615838904029918898078353436686478164551534073692061811941113222198710223536437320692122286645487069495065419015938188709504974531638481716371847123746054868162401851019399716369119833238173876052286807829925316325988348499048871926752992546926489338791157371457085450934755427846139653183730994913740140879871903028392837260778724821077920871929877826144991905970245827721840037647436871435887632303113738492031711979939287600740021706765482895687519649235792856194615769426842686347889867738175616081129760849041999015890631478103340479939723167435199125257447061723098207350049245204628040070188426831132891200330865006609648999287947839686669649204495686454849364520055549146973536611538859589194336296280750802322791070938400881482417591075578396573639934139601820054496130655931910078447890825248239842650801568312909662571029092489846485637357525887856894011605905025144622648761110386358797051671453053662816376745137219411217327410230158566032401734237444732829134774574791182270398889733214669979355266235009392867102362964159173556546101260135184940466130937465924496928180885240338052549740040245309299969644993325597555663138588363391709605438242943890343389759767195774333367792739860543090261403030089259824084674436369060143215518449351000139744677028148793155635007888454659669875519466727385940997099623963771782099655092420209225135878900680746182264940393798308557971727228144924523109084810640334705236301933858554161844224260190030740604609406240977781063957018479522806609661835976646222573432179683898570434506332103599910674915044253999002039607658298386552766567384857156428697923879638831203834092058883023595229157416110586026680745087159142466885398245904016745106973069027957586255471403649782804856207455311761950738171224816907217089365905752566766872736185953357816381529170412341355302811608370799035526340138200192708854337945420835855530869976906534664735562479557877420895553211467347819107893068099943261075612362225707663420591137525133056445372235466243474446961596569860018365406048147592556271343029496629658339269602514111787529363485147906373251108674948089866759749449064460193468190285620722351759407274639075964780128001535403271378192941197393301145665339733694670414238128274900770533759586694345196931131854983314253809991152281325786283855244230700377481571443216511078521470005390695241982902853059907667880890966654601665330517336799180770882710145524852717567818716400587959826066384658339942063661829713704391434359160769228509476001705874630705591209501548711928174977551055498439405399760459454410311705094754548880759133546727024589842186293869384624137014471616181888739335791341198741362438422449147379804208589801309837144270123698111038024647988157526138701999900487092793080357086349848062531292849149827460138603503821873241782935846876746945515081886571219008689526574110051377196950515563840412934707169134939069889633124264873530527183251913228294357145882634855433005676983727253289499788691971633163177518280200325789292369583940283227258849201642452685744887671266719710943184271394220493231144664568276856413818254765511846090863808141715353709275279633132250196377484878681358315233021847374234799374873614068256084874125083394807625767479346829098370089457801532823938034642261535210723830435181612613989331163024255391137947424982179854570686728562603441793317761244538259290820476761923365940410839846172484828221544750614304191757845233286120633434783462636806838388300133080686609148226694122242989449312516287934371651576052299366855905328532952126442405929425979041359385714856954216660588004095834391558302350897813050540608253129519659468848377523936939185982665163083949257167597909779447564549626872569205731969071764535425084429346447312855654158810136895401792079662342793764424220667998881271205676402328873610331804243358952085783884580417463055124414768004461354892533393699730705647802798674575181076748007751167780488782053661706134924326302301201264753488520034614610595403993268393856758587635453566610298798951663978794281157504164686526332475597447141776595455021186794278685809974955167760520980408497617442818638196698624242931653136212972438174340034558561963536726027387660284445694857464220676073816415240812120386034606194112827431701564097964275859495883948901306353698036807937956441855875386212571812995654812457290205023731847182559626780628896242400859580626972773221789728553724661698149653755088647327268657293950836093230552636620242331610614087604552892253849895011902238333713491099930341912208789738613382786437654747785550877024283273531908137418047181353508820915566983480883137151069716927048460212555075028671100911436051066308248434158482797012824933507771935390504518095046570819593861746779200679178278112810285032918982600076839931008910698276410520147433333185268202134041588124653022156917072476242643235826872162795028125196397704614635848358130127192572921514782224446374835265288319382392658395847372271573572510908042474184659751961891593615307578684027326413007528059928865566324349618951662508854533862087834570868390772985053163258058439201818882991112687466491878209697222444254768043791783428898448929429875932933302261229563288499714553154294815358166787320470374901135758642856933161176696489905836908808897384065547545088155069184896186682126443509652989430016692101109985019253269716738211322822407323962377581900493069741699298896167506544507259928938618479751839998343669800673549496943637501405776157354441309607688547385577005823801875952395648249571054510126722035168633930331807815416811479363919769697578535859173465240965685181374302144230737322006286267295866004745509497241292825934835857624353771021742237132623975372594910010077563165391030796092061840165990344413179813251549875002791743244060071421513349185891191718331812527262215870733790465539517349891072953518790333723212338358234429931515261761433414511071627851012733389030348503264732584134114625415060943764259059366252640215176892258573533025734054199038080840787235902041710326291417524021125749792226937343866076270315169969696988520803121612974902101031016394394202667864670408478274296209390625978550192626132289201893481449241246135982884460642054268556903348614687293226329301096198874875757698144206492070154834872786925350942765150322301087122547220862237826286802756059485697181181588117088220522241192694896316370102129235770920197562173783389536038815972323340033598527931505883207439518561382796569250970239145672351605192536626560493164604339482010048053205751037451904501903979730704056539795415342649068958474024025752241983171479555553489729800633891260801475548215189020020375871438872730157483776876755592419465339030032349992448796084707303610701389419067966551484766927517857633881277327286940433396063478832224251103298418928295444115913269506249450507165966433552203869548741742279085187958772813440851248482885226677997196035138769221349522835386031865540758437957348237841607176338157192756100974171563573832511620589513278020805694954658821135501800308558048685462831867432272064997572539970489927168937133196446644961192244021753978718684161281341082930961594262848366795677410974812055724940331540289524955691026517227696778107544461519278220083751673403785597053861815386949999913675415646846523928034265116113514493873308228897652893921956433856235871258663320951098597885698940387237997432042714013600711720022883651655600493507977480985681203691229430891432098942755527819406289187426148587035888081270041642587897473648219470255153703211444953430737595268747976284609281812599374214286205570473463851503332542117654887144743738408583756616280886146531770838353885720044766614633012235505123520949544046249550654702868784546476564579245002893548275292526110471198710071388497433237369132456589400891381463704688976572035354482084160540836171710993806810264101116788485825257608900493794435212265086713818649661960663109909583160648066233573421687178981277584486001730276693711301769007945550884275643723630805746479835157078832710096559914239474395251457745026662006660025344675169244450812059102695228792985295309142803360369641206974985219473368493179205104424547388117873927479009399537250343748698680502194468016905512162653671913651486294188363670966707550641679431905790665856141540480634022379611629517141249958070285692976225910052351918783565096963142166309411624875122777087247036442004947125336367947647105654672082420246082303325691446926288851414480282341701451176995268853247580226241753917145566179275044182107033607263434714833988334632472871083696978743283787012883835012912324285724057065026096838827771091322315869788494941584808796767759115902401492709799524032255825440079532923385078365323992895694560412111349464602079554998100473342890508236095600051148030229721888961687291820631927068670473830984853817667971586050355402014613076491588271024867830065899173696409447791371971884232999218756016202362632296888793906142094910473857736100858493958776787943645336906763287569612825453270018147550198221338306647946496221848829770987226551672828831205672956484507763696213204527336237232982050586155433184988002004313471437469084508952349211824160509485985478125979833092933664834605899992065526605931201254695011268351644986297642759873094668336815645891816184077998541316526243394223059593508720416741548887998555939935353705766673169756259764849455705907691474423872939828023872508258676698010536174222946160205652437770333975961962417317602559299841270145689317344082935074148178531253268303697458404359057021167400859482195074386997765802349107874487222275158644632381245695265734893988961099025429480153689300580840868175242976683323005226559595799017892077321743911003757079409222276439434769943337391469439088543898349344914156385209779538233975110886151586186395353320981565337780237549617861582785251671206788453901883552816194745162766646911577038689075678241465435095423443608667040095663939237639814139065704123783151820574299816117059076565142734686795786408946984057985736394297348113111952033239911291735679234756404745384125653727696649118090011090959803421570657901866475958677945766820299853542546884092502267658947527389008032605292919293605323379860746342911615730975249413392917976628912311178894121146885051676849403214533016826376629140491076101532623966585141819348611428858795290091586186408502499041901252212666232754960895546265748943802183932838633310069531460217937380302720084513899803784001163787171084342733717274864358499178783273302172592518844379957563185961938158185250319579539396695296034872775561587120846432136419081414992339086537567163223014087697534138543354774391738415176707472602845660476505017878864404568051081859109923311983948731453913205605175362042007965101826958657950172826475953217368945356483918687608614583009387460210419302798893388500916379744067522433461555513284706194540410972241116110874189501577264705303487370159563219368196299149047095414446435391401571595697906294590946217715070431560874074441328549283442156440615696202333084421377773742201951475747385747701453688126643954290262102219240552499139982742310375108663229015825407297174249595411687681727482252609892656251135531229455956821986739411186768221033634213933792915983731041227145696009328176198947632392316546838963086658845636516962274430960542212451139713379340108446489640771479913077198485765487758514219653938767032328770216010641640181421256706398237567882893769478741837497978581140615270454926107547999362399859945266504408530275641188859619291280132033754762348290495824114196650559819507867833330799892567768808898408007036125514206947280369711783283567975377316937122551289830081911190999215180631783780748181127831615202836925851815610244898359613165324881795014750896151645958235016719540628835983561099510873868196899097665356326170213594044496816122318133268382222644789366011399693809794461354131771070784066430845944542893385624217736485354284677254511247061396079398376613202628383715825069558323324999428498947932690265976741522643747573479279626832482857365795411145960052299263787594304551598119578272096051681918055789985320317807097382843267887080786393364429732058635582486737227086773463752889192947140112906254540638780468490242618214716095478504236731224704137905903713258409056141481066159546821308060085065095566612331938289988711955686972842730258384589239783644715049565350031401673666019503131457750309274493589916976021733786228776500424253101992549789360860969503788743565357013940434574083731884246389580470563494886050989330045844862109382386617228325683670407176517748366634529475058591440785048506426412098395313237273085276320073147635661479531765821693914187824161014129197539247029467929822287734422265098852907816613698586732173121919783540287666364146160909978777764961428166058916064143216972209753122360809177821301112580015855789592707709293714145134047402814488476303147088951720230455474742376727578397263518911742549516257758390935859611165398528040592003905548462553374921276015192271425841330022905542138339457386739947646865553967613455083470406036818352191765635312633400481953448593265369801020894293374062986055678475650344535920397212621897244908696247441952701940533808457869055822417902075740041156162848683640742376210426913963870054384957800714829659067681122388633724660800475128812695653647213018913212923740612272613348337826571125607839157214793865787672805062339031388776900857391178467527037381049339416259260042327862901617242605156989120268975102061318767762725539905360520082978186422639123084890422948210471381464924550959717001660457863921932479333658485091254711219245941727556001497495064011291842619154074228176064646041013907732061310795833589936609926940100273910724232510716971796864429392900606025403387528946309935699840613619626250711266263665585439249186776693532283021806089980083154761600638873794646737088181474926150535905832634150484171534467073134760977662236895684945335333792352769840767560544433505838832859412351200709602401104124785456689164518838922852174324521870652208865128178612622210400264089837827195539759868125525750221287734802814685265486370583025612164161529025172519283433971584588149900362027973459029975806884068519295792429667480983296621522744882108582440521797850593534460036828115537753907392724148037411217521236062856463110804697169174460928710139617949367038106952298474281882883044145522067057854500329508440812322199774430248692055779353648407812684561013046763361238741030750858803383971799653514921998514273794205860325431873301001036082204114346548952896344052006271238459114463931741727428823747787457866237368481698979776363567930861046874425127956277659294871272221419294884150833533283305046825245159227239075545194348326528151204668187676850678515068230197853729172179955629695459651053790744721662891123210962196253937217844015358595227114703112939421946899674810150096767251056065514426092512751466957906243561485044352729340556005590864803527396880894696382370372810719837757649578813193152182204114408839822082387446749885178633095971478542939730037823568965373467567170924684237603316408646717189674448431862360608439333214566905849560586469637921492942345017157169804492856126046415599576452693983871720565764209604148601686801027505297738506835830603883020968076973008777035758960525455138476120502014272246465401126727898828676046633341771670076024079470255171749476789991295452680734495314492797666780793833890619883569611256910958487488568322883098471832688571985407217297572758919438309707222402768640419872176913438075525409425390295366995776075006721757640093026384771933798061802087882033629646575876424511026726336483987549106716294657536511604212819485871466132785247508499106131427627426634930768089847646289853910619422475395946608219376140191612158928561535735816950949576308407050759208703929478069540084221441261087933750477196547800370964085595794975489788013712016727481509799428098511094760885405778958976315517585086813433633214294220299678269863154720397904493764611635309164446742863793996023245287821496345288421223733866729402598454274392698378882674578309982780794676696572246496397300047987420253049759882367189202320470674321155220733561802857670040667253209030835147353469492911249588636435680352747307917355632384769886797424243815577104320234555899559981866146152853360341081678771575527609722846844620845062835094905767059665362888077027554783571444714410490675253734963765205225156858527071099628306854130763659793466012916071283588374203315642029533107145061561775655828144830959357311262329883415644169976016506858903248379071214649043799151167379759333246669938440512250476089783078472807406683590394257120689891358066193445812846579907744625430104374145559959930987797386452140597481610589879493997984933840031542357053054101197706073480661112692021974824166790877515346923127142433855659705493574765314962159861799987865359458973943577295664463001380292125775795799186754546565526976752230394080636812403986292641594177541505664536267418175089972438121751146017141019839424705645276182558455854980189579149731663246719889657590159761388649332455332483071198734729916729894953437882361372096307163821906045987362563905791617330852005271067164364293891460492494748218157806097872048716476594135853078846780414295652295149580000165880891978384986150541524544249268565890096022893874215760174222422355111038763473362359059895628213125480455029758423701916736230900310458053101334734807855888489183491876142618597017840080586984077713589930331638879555607693686017912788904821906201637205311798789113965452629607608073597081659758221966158148003166917330985169828662787207116947729125378159561116991653273606590292383131170481820013667068580643677059216333822084544228409182613883376310810723872102608564179407741026185560562148320309893893711312100270834919124934424415873619682615955706726673267323670808684498692269346902540194598176633714771138530513075392474353183685826335873246370427670145567798009391620464283457292166946066743436961962714038697447606581233637345954948270905742685562108718177236862749954650019718225326681897781198830652893694732439756260966817809169367654778788966138548909782061151542501218881651148541163903257408409352380871039191758444976692794607830547332952634941139901069778312585706202086049598194250435583513725350028216293164423255619615869974077652844767507795605169222956445556361452956838983693011204548748704307542739161677888327953137729338511974515403712354404210523358377316761185543811166951443206341940290018708520386043823055920527487977692113964623249876844537762456586206527403872847606044516215509891165612726253630625073453652435421430971333667073101547789631479393314979034577927908137635657451742264455107814641121443328745979584549628800467910848186016329138633584433308080923537862888522501854350391837376167748333377803693750512374980280775693844517465384871525278722215152896415279478385230929234643894048678890312868969832887888743961505215369583230381786577812231674224890128432536864977327190494801469551513980686279426303875002733055296637845666441859552960366490526249551028093933628162479838506528394249240133223395644929153433499787456064589119221183156507842612232915325471028250728689598926268736869203118341443359892864296909449971009360133747166688165972392183946199379815301049066031137483841554291544913113578547908999758697389737580303017197212904823949830123794252172112359955511999489052776195905221265201866648493069938926213369214973596956495113374664811846452857227986407119597546393682290489234951014258277106877805005313094312388903147577685751948560536263358792030340228660633221458684760248281580077508870052351043741794609474401173333411929687885416371217579621505847825974372921217289879655494775995527993022797158453192543898169667668126101435273175109369794361723963377867808326803618607445461156878859207156291102569490084497298395133013082338451410551061780104822549755953180562601927426106448801350698991083511689292663903303753178215146105917408177438183519113167405823969890396011841005086178789342240163614072997886506647336334383474206767056086733526054016540732001035852792494492756746487553194791200967109725116028506310920112905828970492834460242557042811926481207448574527866367054629891012787371327513561471713019993313435825565087266756607382643276867542839141740150868185485054210563885546650051353125599215516161448625910139947860895693295867410182603080121685049882052928238411954529018477855435800152946208176274283703446410151533272400730341690390242870892625548544359266188816832971487295811801562332920950696956885045357848348525068405422038961671527792634152619018817235071420937521267268650497232502325165476101517367832900326991707039777742637958931911698654466634373114727496642734590908922397643397009553908660626918347549517535055677035193060704902403346190071249652328019423590206935614512126469411766704184103529207528567474875311703068237479602895290635470594422545402768471788190021834745455373967123160120761044703670259036632233255653095026731177926048861180462713046137909335656576833410299263419765178466776564955056526101006136966772477093529252835290947505407832378040956691068791150063344759514177256674729692030244480641111306493033232654002764578186196400344968034665368909428167061409407641711519906816648745535177302560047489885283780271106700130521783871965910578189741707776094650637257819473077453018130062014924093404677251069760490676800458549103799162538244066307968686848013922743733844078745039901232275057149421110573683779459155686180098049020966195435890501371020200590619565544834786371934458884950989702784834624181081775248955167367995706849763598312729146806812081031950456875239269618542457836290966692910399842068513388116748468676943547833518179109427911259555720069646674772819165319381953281617649701031350973005764947162206446915140960128513021606201916562896162798923925911251690955251028733180257233713433862166779526917315965194985824840628586341013288286513916373210363273232504438378063078823863898762564104541359739249896276432924562227997177573439779695633647232964601844668434221926009499295505273764313574982344439230113355803098944915427521140144415248512077116535772881841971624552830900865563596324657915317827197793113521171017763414385051643077597444983118356120595753787813224639560188595155074678840722003561273717797333738961983360359714403376077997593600818169774624581774733614453982453522221148536109420321002954692236833730105986036381739191084213761183470615497621147971610025434781359084764948504739145052472382467144848507523852230099101213932873586134981590330702109072903289186488981293363510548766701623481933671092687030979121416633296213667448162751353867361509844975855290592425876043435443978142338529453454086303611539665005591948235083001462930346881690391910073497507044772481534582321434271966226646909750257550263071001106414043141754235326341272531150616513089355632213656990085783567780774707587050963428531720305641399291162551680269417222381321564934301207946421347237329053574234911979123144755426163666294631798333271764468192369913107885786189750315706364846352799707334281587896384900116809402544970717204610704774019691520466507980165076194471541018688324397849517171511389955710319266978103906631734717213223054324577473024877477438905500590009482242667943233281698278951375211925416882255686045088710190713827559392780903524609678012618817522279164464757692485155837758340413393484038950493925367637116965661799959692494978990740792533417018224070884980038801063789628359892789502867181529156936389898803839566747260247655379052595965904101965119363844933247234005046948951270881696343111192196268277855791634812180505897871771542332954991352831169324561799553351520330488817238239562238063958589522335733042118886149401725168589021370439376440226162510359034612503033358336289392868038540782221205138438283989937521241332535269823171126034631534951503806374882590640141295274749423696165348414707785336278878184195585355446586558933020198000375396384839240674369640951868254115066641564448328309452358381817589029041524662511738644174024756712027662191713086999935045920408309198774981625763272393909668215785162036780255517144579325507082220655549650022204185555294456353743500596877099810812896335557503413725801616218409357235868366342895660593821857541043641662193734027225533796156793233361551171260366832596457103341540021889598575171873747907640030902676888240281595492787871411512350205532101492909274136784392998321184476613466178605395311972325928609774167962017214882914555151808913336279905840054085275809021013805979758329285485216277832480540595322053150340589689633650667252461822980414322448989626109702054081014566751030294396478282268885300089953081031490322717762684906798612470971678183489836557758874867066722195919374140149363054194201628369642984014358262698036818143044858115209174933654635676296005201390655397050492287381063766204406725175259764986412241214121748195140924330897242760138765837798031336495774297245085371780150111690156346017195715710508299917998926225187031307756611060707329720245974196551383068661954453871112849559464981692407846511622318838119264764077022532004344469835543398403520248969040031038426107025759904312001753242965871581700990648562035686995577782003791828506074625999906028486652418646379618266019920172782670067388567647989468706212885688803848248380418412896230385227757085822669364890877045700455250063349826958321193832800831656156767800033516189508068863592460940997499291690943453073357630499416927855290323918860242780432190155339103205910001853286590404820701342241125345450371909767487013250696546143910165698901500707434057928213621646403630252578014840399402559785359006832010464106045096149743088460069788805522889039051918216650625745599269625519570707786653533838602964823242891681724834140111044907974803840859488286105381435686187491295095215099799664169666200293689210917785659649122372021687378827311043762001214767954151842836066560357914304939298217783089384455523331723934471460816244812209794010446738106373616536319983550931279359449428523249787646216533398287103184211470993110212420218706217342616250288155194771954760604776943296721890906736859763680996973996927782705270249324525251206687895613164740403248957727039806232537104122755607144083735369693735240596339477702208545292468073876089831854136140665325176494761380313473160347423691447084103869245678596020289637575451849900487827614072399061447497652828515429306312118717169293549387127942739505789852072849197904353802179523491968850059430805965636039269055022527974538980807386458081814315600143133204742971043781775931888731346820626428385452010454354269841962471829626635739770306205239852596267369230609893999080665969564468873624703710468468504764706959176371716741602643648590402660521714223484228802735570838477253075321704627394120662714855955255202197313690616176855156156168723329618948986994034597981822525845884343726200529942356701409872662076680608223804969866664643813606584583101092343179617908996603559033312570878957541678322247966420241765345336595959644025102205637245085062572936008784228458298901690880011010071781249653961181293602285622308316051925260198292958115364792736248858410085768920921895504405226624729163613085275283589580494501262884034510682485471085683373328739763709818809417873357109556481095834489893913194318540440649780781778274405100894693307467602077515655787104043524578839651102735316712614922167188288858875686907094138899846950271512578478188474475980235501732693825279455922519899374784410409571690836748378724269239644946595635699031871660127716320244994845378585062896334424594291531044327140136346509330038778010323692441320749589952808973921063767321527921892025688637549053908557888619366939769542742577621958591621017420076029239593275163584844461937284019504520021445998840470399601813446143638350482111329202240148878718256827840525067488321716584881108399667025699985967594371543419360633721027678128607536655254816701432454478018513602758628009261509958279901480389127959471984076074760546646799836866990898245439112081017718515210877427540128481859047495266986599871431928406131638648380214934700402392509597485596956247990795447953049604119766815877389725823859004643848016198532740145744803466007276498194624923939508633398706388168227320134971460020191607202813925787323482170033580498939396043489016234033619087196341563089730483753213746773908920217456679607125285098236778922427490821953643581593040123664513586484343279603310897973741131787258475083829808336043780617658454454884272641219482107228109563865648527076642268551409179561375911523065057951680250512319027716718639590860773011183199787699907453063710397556712770591763372420030090214026205956991258557029224768140653910506623618419701897979435905201202581080031812172750243433721575474974790988250404423470108545327942943538136283553284241303967111638624230557817222691399457702509724643888161696670779830687357292383056544046702526457531690086340483037650107068056709668059288988970212629619203908447293303724151521571057086210538862233099064433227160311102791246975769489405373136275096155421979921834009474635155918504818110172342054489085057456291029822992024396540791254591810421346929534316222879373934718043786840699392511625381385365016693681669680349123225751165526791022480889560879247405406923060051371856119857132359275599389611807254388840223706555983711962523267467611416648104722912671575773310849678834744043878153872494253614389603402081573488572967446722362980004177950663712626387800753679297786720528499390815212323578059318678332230714820571279283651739985156443960397917793054317672446278417202522961370637891918267037809663218284152295288138753613839511507825668097182434823273198511480656800246773951064737705115005988007774295302932388246328233347166545047367260433308728582133631733009416445222020485654733545894408522909779580853657342466877730290046661871309625390089161634959426476110939524486241674863065448002508878655578259694937537748806600111477709428138120532137188991002680854417395360725741634102079041618708006858586354611715650183748013874897293986178258552162675739116762887250771512847821208155371535050979212191127660039614308111887552180665683739854909917984212578924456266477149247122980025615402775464761064706749517649767420145078572398024774734101692073530388599731459545349650556503198233304677659983935959675543661532588233683907423422024654963079544953131091114151197782280934001394721000311349589604803054324086813162723471630883909309251522634627501255884367519247908768700632222758489690451160651421675374466208236248584993350506535404583539519197967275955385133870416346354277783282744947357528715798139071595588189760733805942245131394136830855430456076046529773697704514892241836870725887801011817833785296683714981923126457517394757209737782383842457396765515582081358414011070422261082471035530601243922903743850910189980365155274155713848718410482482166667569280599072465538125245646245725663454289521799424359667632945746962029711217087130650159350246608777471974871084907734775053132743516386812388584405470206836468408680016481217484384114034077494363816412885061601418597319941578700455725360548678899640418733061497994985448076618245671079686954682108549688584019330899021790261986415756227720430983858339197004872074883416438290824429235733591103930795102972379616187057454368503189255688788147504890473263863278225541763236153005590100562479085267855315174996034642534760327250414556060132256302561665903116863768811772982781717874568896317079769894333414516166667838575066403453921444649800237885756192245909995646945129936216431239164705775213371664970680135210298359902090310781034934338784271731158977959559464829547994243262856420746888293583564467952431888055010918457745449312950589039015664531859864687190295806997722523911475336897564721750027204219556239434438205442061517761086357235677298559467357323245697770077432749831581916514114627591579125254079883451950273118774805706640213252786771175275143179391297467368013034219291350150247685799845694524008505239292801256788958740767444470156189001942372587986656086131389063268859967315639553241132855322073211276214252071673806790723210165429227854970774431797294266752848423293118099921163970408418837378868966518764904866986753402319239172893013360692716532515806556078611475861603555226400854248272627244259262706828615996659989582709450558304933984363729154211656521159222630594846730283281736929576209294026322711966214955449002024304550767287328037305461547229367930568205042860475194014338201558433534624137904793786983021933907826954083559319931406120937954146609692893291526201023107589149768694513868424981486647667381933445161607471529344553591943362005670917735456316072217900307779854742844164203088069020438298417909803100718426805444263993964451583144051605629313376306261884464397014742718900096217723345334035801100259384475190151828083633767953033916937957360608801901972417042391367524559285535197001737600062190829981770874321919493391027351168249331678956928224531742672943533762504206239156385037177658681303002194603957431199846216642728125124359597003590958992102889372620531708622305554420501713657025234423392682619919975323696135958517463630065990516595629091374927463473323088073845266073767418229056285293405611605966931767434775538472807345446737657270866869194800309996602432835941241034977140650010916037786222388604497259703750260055020776476273604935790828845484483728286313578969067052095706784758787733105523488496684380532771690296789985205129503318182460112060496319469059226420646190676813605553045323014537332540977063098925857069989554201337907518769582929503537537349841655215939273135484421170420487375955718446890311334144822630718883457854205723854426913285773885191852800999254385241032087846325374587487604161268335662095436424902823367930769859322843381385369391997256824272221425724855708469268919354809356887220369276402248787084091505846576149963880754428147735927008106538607384165650375177660142716118355860813119734128719419552849066439428951930447068186058707328713309988133955704031471353221181962219952085502646342479242379973686223019914606083325629508169637142951492856480704180543593492905013968999479904816489614912221537834211079008368221612326196678427142020853110979704463529896535777125731075583564866521094880807229709692392376645636350092321111507190042546791273692004067569943497510683800575564887115325675386731586644111216422518297283621662337219670510351024684596951458533360468991932546828405214193616351588677471229467021746805099216134934320383314816328445212934777123001057226717990056630198077282922611834237275865697855643401289713585179555007876369233290517297088316395117242871141707793011221001070207830165314400585103419777724349182828462892822627435395700542303143453626568328217561216936595512320166213650802852946208888177726288703702501370986808263971287616902264410848148657690292035082191133420469390615919072816014600512868831483039849847478615333926653574480266701370187292054286378615442512987769609692251789465594482882682287955074671289837612163889024842546167015578444908390654316003760372376108850484591420622102373520049866543806163988850872813190710126743518449549114757668076006618643658877957481387023631784246518665863050377172971683235429158488011478364287211268345149621779785244870952023266910761407750518520470230768465676785031347580966118180511062350742847639972978785387667915626589172601842049890102169421651158051626765472339318844036297619940970776898276356737073950884707915530393597714192681522988070080823609238217929646356028603552878135836990608926351349807029684891659257180882767715850182519317588135072178528635728527501702635341049652397215985078093481524987079640094731699675505173918517474770645453583990562637407651611882428404228347900712618699733575877962017637495362854133857883378127414149004989916766483954510121354676643303234978163562011107025800968322319437158317009350456657676226225281926773587890081065667285136398847117148309110111452815702406718202672028539529247058695636988985826163705255037890626259915929503270939841716064487119121638485378123966531524384573240468146613471479808979522056876911553642110192495041867661347347789120237658837283547842413575548271549408857283997495841120312585277484386428137541343349442724211470034753906790680795210417511668292645082054292113203974587348408975889397933556182128929064980384827264113205900730213838410090164207577732291589464079652175210660013408736662310129755449916490649045017987767858938390409255089246407728643042371075971672879271633248264107258044871742278044309796246817414212771133769067231789347554738252446818602986025005212406309407865187603468288871668398214908988723656659660740517676733583568068132726820573558959766055285713988053137488936762303953227285607312281157408256633261937842982666816304234832723432161408411577122815405443798542128554148704933635984446503797037066656934175554671849861374304544118659082617540058301859539428927437814346848829090006833586104348698782793886432660143216385040941283088374600972672093680741569985407024043614942527612997759996041937839532830027628782674837909219981673600821860153888353948539607693966766546949642543288682553552591945247255817083428317819943615602177342702311028815431170385349397677033298002310111361352950478077121167664844429964879529980644426139443807029909894461583334691320600260601805105377417333893141944749804100540463464676640183239677738044141904811225530845188629819107313494209751551126309722033476336402039435943086807398890902121906353149717146775026507541486570439444745983782267653419298327075221848003318649781534011638968710903463722698531043791488453953828074196698606498701888507357293416314937362154178568307930898254624774664607598743975711284590725820201600713858248572639290527815256225948145754610623256492810281795237826080291919546737565671226553997243736017320534673332236912116895586403425945911409629550855581097436616822825467317048198282187905356992985384014900930263911612141799088302647387039255003421583970108564161165577969050878260591767016300253334891112932589286823248908244603268299078614062997176744924705455924960285001753738785005234567446219619247539399897524373606708250961311940763634308879965050220782382923130951953610812958796601776121880572956711515679363810201421246979544875299298015829577527990649892656270013022279937466551902006230164743925634823650598990912257980199392570564563978783243528133517030784368101979025945753113940291806497174307330026949034890847865661431437241040460363808979184120971441486830389379444435277530669356314596365754110063407881563296151566648818400050874519148155564824884363091194625475715997545911452205619482089011342083099835089944665795649073878021387139490404536166100659008591923978377965765207446336174552226960129697329143942153258406689693187003109332520921005137559292034846666340256938720202890089716982110909944032258208985289510705948151435979213673578759789476437931204625068504097860169008471445398097345442473363107521883995974123188465857762991640220414479340985179353320276779788354618821621468211905042701836808413955819131546525574056637098025537823637959117142619700063341433491765706521940379891996509941927155372149694886008955653295216751746027695186529564059119734093617269992741014134678035305706677492746523796461256552544122471313171318794117747457545439685928627393047207273364188759412508258923297339595987312008860300275553292159155112829074565224031305642275338769302882856376428708227871618951453521871692998427869380153686106281216876182364563787213665374480153644767946118300821868700770400142629307888495811724848313090123427491105429109607536400015012026715048846774931435323876137125131343329751775102980138222183659486150481034525461042728871251769234960952778076078603968946567593902256920431343831568909278941076618732252926109270513081003056273828076227742952353673117001452805574044877283319056189268678817316989225945397683141474016487228640898439799488365927476636683625388900149596616230552999165207016521531820270696644311888889257381709990597976654200886052713802218352843425045836534978650383601342958357625764515680817683155211856524268218860562500584851121759279571465778459438693144256354726243791805860584254231419362388196646035840795365066424091703168315785178184802853736192850569432940074249632057983488471359277812047842874106472701056235729264574464649027083791295743384291397728052682855232719487809838401255300665202476136331698161164279740079651348434785595168067852210407580551436610022607833824264160651268319120992103956254350096195607043713299683949084678022537950635432559682748092677872729157089879474311023153183625827207838544363578150621469106378488713268723480747340013885815656376647847004310341730107210853801488318572575475854019783211956348027805476778762113481141007227395574505884135190913271948225661895839937132780994767630802097386589949576388077661281915576700668190112705869263111536545840125224211123186808237495102799333246254077114377178122517024402812463355483212708626719732851722883972768543812932219960755715617160778036882108875278368086987604545237884402505148693526610240381420566166387607895528789392124033814846220135935769242988339029487766960637619907295565431176329205014621338076207403882831176095161798631845456361543873287265355589097548714705472896561639997760436400821650471161029646582773289141682890594200366576337250727673998209021155557949949836613692784689198412922559848060053601193012277447432639830177899482162518663542716866442108028505030817638096797110868633774867191863797086841075073060945577760034818560772223941213359054021493700764979389496690645323064459808929095392073593009730421347470109034072178556736240812765934030762452897639431388921398888882007691590627613624241132903976943848518528452996752222008658395307362692912218040826798151980311818104672516094959343956014434059920849082623601992785950804694628864374552907592706714900481743068843084561141172946759664586235960922708626423771435906600446882402341118087746716166748618052164210680165819183170220590676647956315454918215299613800899152181053149201928823179835547665313993844645819167683888202718089465373442302496679794788741627279555558185591089071373262338523286507660227360794444673061908185622479036943591106665457600109928298882084223454449675387814623301032891907727592817897223257526765606424369501459478465715039820562638674213028481595592330902582920259202231887889578244416679571376835688770257901490765129298746971145182336122354529937210253064376647418421316294094337046584554369611467785667747759270096773476598890163681956298843201483792313124251359553674459893275484314979930214660288971419635540705180484505911846648634602537815755292676838396196601389531270445502878676364069176298251405508356679127405893517137552651108876511617612890589119218785020556104528099131441440484480391064443192552628475767428051480639247053273871347436178009952241052183163032790734874137592644332156180320460038437515300259189864297002033503959564783416070803679454677910547131734346125675519586796404369785048519543469868745579947500405856147342169848923965329944032613845632492243958046333762221362090058663663144887370844642126552354750458010535897214962837136514825657857793016740498759057398823683291057332445695020971068193352125149673561996371809005709073620567480421626080796062107055338619447611055595074784278772025884883766982041842695565286249945306190012571466906610503977531775041605364636621789575602273605710881812664563521867371873489978977458071535594147179687817985268447653364536759543467160891094412629541649557534900297224219091707127138476557116138547831646669320914924152594306686937977638446840642479863104689967746163716472626478399972795775631764215207215549242325363903103636166510268350580894247886619458446944288782863797726380384442362627561934050896333553019004098933227618539758072654631524522583190045643660987937813981787136790029262054641528737640239090289923666009349678624681848889921929259844332728005377298711656024635389402727688029258582151745608038249225744422560323479996516309724808451653732592542519246061170393277892850254878547893039772676305882729500350559504719030834812370767506902284927617398601323495865661293361387363894018831343274731445870675005166905397746183746803598162587874032262287171536536165216797034210269077956625522447472837312438453018352364571038342750201139705681919666703935168296789208666495797788271735755499552463522155145462918397930794069823835862201728639046928270799800825132998378882674969990798070524856321936488528355594617715668006114524020715756376495959582637011022402371646581263574008316214924133159558320542926393825486556592405522652838113647475628983496751494897832275612869073229940878876440442170266799144445202180344828066743976024368006007323247619486221540565852998196452402586805802385141189441229363817306448585649063644045303248527173881165959223890415226189674256772908395055787785201054962225577627222441328239204616836679234160442129568170646032631234279502349217643423246945192359534691583708898906866859372856795852633510020674059114148433438308229996335239364730489115432590435338329397922006146076137974227957681544311673151437221246273093008184802812577879289662003966366997225791132107548620858081138877079540882333514493730341782677479421490826854446966071502181080412635043025961805531213441485736256961612622652092129414766915974282347976834002146568015296299959441384757251587147704659068316011189293300184453118972088568569344850427464879094824956790901586656492009074638289691656062372357353021778849929663305489668691418745902613192111783895727701934136168692744189678030603237652240427102275867843431269055172348470832212194006510535407198959237256932350756528775704348420748034030428180702949102744769465391125397319744946742604840821709071989345566029497823216933686686605161047219161872789108861858336668103196677411289939136935878231704283064998888922024223277685450239385897555762902119331335760062121276491698481519164468109866761866316633894944480342753043155060654086754317845335168141064624632168108351746708436023944993616239417056962968593481050292270005358715640827708015269808246191336864732825429308210573591732311754837264340438739927792143642675031181150737989487065287290095612171102049151962585250902741695958794097857267466912111712330102262831752884668449093963592799025057718743846464872372870933519734562675221562329081773503944353517196720695161918109389661037298207944244458806172681089176452294258829244895137229373743738040242108649171981003118582519882966776079514032883713453314177513767053675150594942952803249489460041970553501229942487096292262321518604011272160038061306742317549062525788274896669970795997849620103685428715242122926962661194012683843947233805260487991952046407282104613408538925203257979029013916572596397546221810303504439750238416149948413506464365106542085254984627561780514306481279322254977468308356317255071102609233091481895142001111780614233287036132318787696857311749708826481089432989612630915146922505526510339351473168926488005019256012599052872520851193683273959711277212080835097159069492000784364148223078244155407027824795624370280903330632244748279552973726912527990521676998904282335407260335330853209442140092550444288592377616037486538013114823933292847799769368641422300939328205492649795400984769903364450018151407763401700213288097958980839585410292779418705914655066868139623099938353613323463169788230680702129992765033915463756669210917510153700293243288711070671084498100909206265282127607094759059513365381817506271773339382853067192135114002408352411869677441422641316394669045736015746689067538224802103377388452911916127990670498367890694307894969646857509567050067210258457138357907880455157482821863877934191105092610330738573957107150175109494212358373247658632307279801744888073431728899417240082117875535950694820265334090635723115090379895580628124929189183102299850003689840973698596100191435777099692658838672444866681453679120645351575836882354669355692907887255370044796064575232201290832302200639959620037612389892866201889609508652905595618315875272409293801830293939419218047856468075342772850809126099239447122597863331756276889812659150891331825881287635579626994945765867583143547577827980745863444203405486323826265506679409617922933098299203512567917022712683028480392596226384503929437948415793747375755721244189912928446644910815344107462359834207038558385840083017550957993851525818530238260850185134383099687752460595109676982980762270432486682317639071785190750477491211175800156781734940489736056183403339152824466523854210804381139873465390491110236385944815674805042270151204664244585140939779216317291475249707809461164649755361472453412169823282735241162289277105613433850712822593760733812121555901559576237395267540751095532592162631411359974875960614612681332666144904456933616169653584206513410252298894342812661577434843453724197883387783495629348476615590194261749112269360991473862495016475528108836443676922011687621103647691739216580967570259565572085080456150430571140979899511944213619805156434167420246504501008341587601032853498641493629694574195204165031252515065466071862551300583728009566235663569945593461436584490808022298955545132747508043875753280104261849567342078695567716519451445777266331583344604277588792489673544703625390015892475465477682898547004922924019352761062633786866736956959737807095490065373664653348079760726037757728754513627763475745879925146191696711758998672724442134341443868356143746761355938388800334354033032454601515765476270615000332445819875820607371380335986086380675595546564466227521674303261611041903188912454837782246301643929688623603369578926397862856557206108461079670308091934708639743219958538848273300035839699817069200791738199068640853129757593195669092572993181846137642126850562217806063422628704274980041761638135420464816930629634194462165146998494858446961413805570432687450066324169280835356506407333100418969593279020346599342924873817351330174769860006232047798691041352090428959628170303424263309511248601763923283617672014891302841879890598045178790965039831046769780128125356290256608289744584269289241740162206134850670273403416849339617180089602914132273148786754625007613903497269883581976326745766143141907781816917317493663631554753703231181345084245434819177607290841946987709722291503935932791708857283960781210335769182589853753345940707571381265435376529877721836317239394679071295257738053817850290469024773174623178966731248365860423950685341178936760306059368126321870891847124099212318551906216534668744066323565224216570299613391405807102526564522456979634652524535095794343236705678468974455474225728648215740034120305532898346165623704864381291695052248325489876728103781201745825756592474347268158660881383788170499063088846530306440215959091847664250116674954503909908766655748445251373628650870294272174627391586352685436554966229007707455547432553568304744993867915987048348673363658896635661289918040524345887985056194537714665110750183661148910115304354490467693639846355916156622183572243726727013331247797940856309450358372695171366854354113719459454285831639813579184372971376717756578866662443309496362472589870946177385016837075477054001442076903585314988381746922044309274674833052705601023116363122424592222181630660771325765734876483666332082357346610078104143711353040351621054916967039109925570904109852706412288995059816398053067002043245389852104195058999307461644276172764627486922143228307916779426294574817793766588392670840766847687609128687461398068902162041012113819856889435585871640339623568892869161106875099422730919194060977351937041370075547354663219728208753342708065822587344573509107831961790065160238942514812559023221909972824371289942273967811138325014374973332343171919711332407946174072742299809341440738072516676332024438268566079644674631855893757801693846234414404903671430304537418429917928254538801221187920286783036005492093644951525188705324799220777045746793146418197966321227500785961671570213162820525421552294173825000504617682203618302260997307159489947303262457954475182912012358034052537604483252877959246760224414151033660597253128534855407675376109256888628785852401777330127574464624809904917329337559822023836037501147626161315302154736965777375232136293377652922823226201524154679430282609037487407332054430459344775397799183640034028620827405221882134762282999601269328693146053966213695588900593523997741517904709911108903678554668134352861129348994577534099340462913566284245919036771054605177606720741420387665864115798047180374566920287004564406831323446803339554974572703052534236687490968882423697226994472055007393013835391135631272446958552456335371021738450433723287881070946953607579817590710337759273320245102820849369672642078560829374988444188947934625578024609165025098198667108649570524559728746892473905755159329858084672775356371744629245092201263688365161548322482678349334449108735567148780454014908214864760749930444253171764799774119170495845641917661693209112734197459952039683555040078202568768126061498968582977367111883810917184363735122095059269323247997611785705361307825704875314526344828646243379614898039156821554873107929828722655376917140608076251798335406233132012456954637505649000103522259875215916341609399614318730071743272995785388169850133554245605757915107996431397990246764866588875747964464545559751668293234306129748497607239602812975748842428030291596375954431282250770032163465666778950971931979399095065564869588971062655918129044592639682302229817230085681372645095956396255615419185357467542736379878058330366206674368048284637460566253919882064073785167987490264941746530006804214348253886558346070300210647172018113475018049981521083055623641347898101676985086989547769464351457542814007244053240337971528072068353868030904023314244179886554274209982168624752291178567173596260433223129666609958094315837131680226702047868419546607787315276452415401014463354294389778000270506082479542070444431418734077483414666523229490880925579234752360192655106219377472978127866184324513508301838183830744050394564552327588600604041061491021117057173497209851864125435282269357517951833832619928200763405926083556687507354431168863644806171089470570961896467943005964773323033048283724287540117347211851471113182594209141464084983715436800339051529705946456151557534844290850827926374458298930975153804852731467241436201974313092482339686832895711345940146810064661946561251686830026370738498737084195717694926918843057482422888857131642858070060068294453067221813859621257832100173258926658474688848218092939372573731380506464218401503896343223699624966544160509605382321449374736483394227938262651357091697089916656046539547126444265346443123977943314603683741904751776632178270215447947421310548856803323028209064635310946110953909079364432332486418267219208859598471701432403819843319757902435797631612317342774420314333185277637452701090003857724512942451028605684954267730372063050979286974674685113106146234302974839019556305590974855949344089545696578420836503882454573796103677586544870241971225857999839526598703078958099289439538605851629785876895961041191408116922465713828054502973951628686803751960431919804504254684618720530145794499852294609685817104699776786512784101556580389820074630886907304028781611502295492066188308642328291630272788205277662917291737745735560752862744888392764867277763202604578599596681251597021585514406280735914940383876587662021235065383318933180846504289638103519463264994978383542363981944637187621248274341346500225440920121455608596186954685914485936541504232310600076150584608491371103808850766455088337133651025121352322174005783406697948972948021488863689569794578113833655003160401546652320166087397168369940374307241579478760168585605101280155964204563521484820654741225987605469277238706000745104265652258121995379438181059030175120830070010464665183751783940314655134634655009309827951488038503653462092127586710067339671781498652338362157570845802281544480804349702309384186531856527617896806002180830840722009865559554564656366125321804294962615491750701165611532273946389615616594013112105666256618916062333029032912557117278325697188573165882922885811861959752792184302006529515785182496524417670224967162027771286680441837889036850087524299206918239649157757472124575024772094425500031581646023509914905236501964055860945676716408935599668342548373700227640670448288207122307696999280456543478321020584011739406184046307859645006292829871479749849504339984064709655668644426971139611131412416192572905404699042611463610816350122305993612074348403698946737316977646404891114740335009501770365651060396452771934113335480782582039491738980862307353130556645508909246964755566508958711939036758429159910290080331280051798932853930174733140612906182808969523816966635899104339621666500380102262560631535974609013171393865254811882386067809329348640850180391862258630026867901673914398501766492321739317308513966824238254051773554663292989155855598316762587545124528790060269872536915123416409761250648189250968590179146909489032073581446283681289171620245670582133295971635495697179812110198276400655509223466001405517317256943220087125355384872302247798755457764807125778724925676491678968440625238966445049283292285834638392244247748627177593126878472888407702297441623176263529053992165618443622021914787419920153053600599430526578364572660755281235349304174864247907616124848658662318730836910089320318305058715609226072167915189440703600683693681572327230981921932702200222005840335748886555792039584252136943098743705430666127609896862110234569754343916367760325309139212829849797589167100271237681090596442638424235954774772053332152615971568722132623044705864966350907567537076193952453497190198598809180669345507975667743487596270063114403513996978260498928900048046941734185466606364247292324390405529599530320692087004814149931408708152751157208790144597926621311143944277654297291422247407692006576091394318109851952965758125697707912454764976387133757817670369269894777987050377071738838983288991900612856481279884303842216128402569326291328512959931761131987585824710252046316186879884775586277481206657651758255881448624964082676222513139059243643937097017164521166171529766277218301868606108500074099876578390370660447726088275946921449033615264158916531947899057460110258325183799187423433872895752612864172271577430442674435344817834682834044511149648236073973208845916225950718517967856413402595489368404234249728151992786934208730276907863288264196581421063790373413572895707461927189731923451746398629525130416632607296026647066512942338967319901751297325795696980456914911575601064879165000550163790093796642201774517153196981167759172725069202133086468756454364002087631356982318863960997874140606560535956733961669507629339925159114239134216307227794506832193200439198532057444859785919117545361518619893070657981651296302489750514911237066819117322825059763067775950870843012328553779702654006399779629114311681652959212197410590192654937667067890217429642503001932245345242930500053697778903558383071818608383292829739479588199501771472466264716463317098318998649032642274032380874062551409799833138363440168530183270536335930955417182533273214805224382388313043818304359576499775391750119543359917039532225424427530164365488766642831511472581938518800898197731469437845846320837594998685581412661940469132368793958415400150278641049978844701089475085374164687132372692651937299486866610216552777298493024174543864662775288498464616628633599282083311351430786312529300401261915631342624862956784787300930295681431846778482632017065130159815659264288654275310140148011874219676621436557981948274979312298327715754295686505441418893017171170034539223870003855970003497314741624776191430426961836346140069937011952945639985586504286800852337908231165510186295681174528827270487644365586283504329543312622585912741248371629638897418345006959336933690695304258258414049046402359042415852466167401275904613278567902818839120832874129362978283383297755074157953676214347736922082132024078853761234271651087544559764313381261451513607589207706455538375821211592331704819195743141538599012267420255603854566358528972462846449696436328846285651288232607787358146380978889302369882620486325191628539241258329089124966438765222456569123375899287895896448016842067167503336097378645600202233527267091998316272075497820384132878969108306852368310802701742377764473897245760050260647021769783940747370534602693799908424699412999839844593762334387035440342589881059029926181887730516017135549889301100980342289548527088776284946286388273303554768950496628643949819306301148763004567451329229978909737774449877189801262922811277507955369562956463665808087119958610505719406659137741764654362053878576399530254890148885400776907879235765113368861687247068935371766172289823092829269435476779593047286038460534585444781098679997611564670796386031762130997211682489865917206774924247707517476661112846891698070524780374711328793895104761192860395548163692604732790520273829459580455452367789419305897064723005126948251715318949268772500666844053906320268013260564799797103839967180751729954190693613954589296380225499753439444044151449432736281559707558439717234682567632908372451606960393064935528051526128057892012635307550165495074691699112238225189475078320470382020697245346065886008518291232484724726665395166047942668358033827431969537945260017145968840412416298680783511718338074290593294536607944720812729557430918016923748420418514399293027563174117059534269430252155574984386026030899087814200328051352462214012754868416755635142601855200367965747093599597120425892578455460521462818969561204448457084304861718010151919951759271227344683611892292938660723418776857576521393692185000520323524870246682038724674006697318789624651422083278817435666525840327018571165349227508378509552684462124046122984444106238719711429352087176058308119686957076180011483603378577517754994132908209349948884240153128159337475651012404657180858232737224259411012521380324890529917864064994829575332506696146030508171305090206191517299833461383233304262230205009518966497068904276078485397636533990426744926366234905895300768628376893787925258501500210474359569365163314008228894145078146415229215265032855352144579583162487582174256626289696579011786096609085805518020744140949043133244209043727878909703256191614302909666703817943120342804101453066441027060470025790528998470682925242609238896038969960505443542202054505372427712227668271910973104807615159863867272802334970895034751362110411075408782183136912772229637641089188999935737908584727262096524502372317320569518422944294922604409119664790523175742345155206802004385336392180252817685257314913552162477518803269011653760144349349580202574661942591222440382480050939374842221896865193826449244292730823670120428426477303798233041961596505830468108065028200633993918915213395148916833343015139841754517630840449174962069083743476597133995442439668027489071032043751811235864275157890786315253970499369322996988692283451010850571616099818905737567561913148719758518778322417752954519200207547268247176837548622436651386073242172443832309418240584068722943288590028986196860413257195275231503261047793658139163245438451515931879554790135857159074875662031110708025732543940085257432561024667770201675607115517347018847852400883041113148211856603510498345263221462158310331996429176584595925813326920141227627965556415100699994298304216428596110887602534836900304487855720817958746108742842524041972155355024149344042218294432099626879589975322457263889589061836151855202265778765631568382378445042188085892239180991757877623057406056570478131369625285077563782570662620076388157402731971567698174970062542558139350149813934499705818631983402398344628008851620448235332450448859256194657841960616761163025680210970903584586029089391062521909226932914189901178766564310848413235357111166813073364059423874598168591043520925949980547196451283624126857614362364300282678191789122190500767591135845340518935035263667813703496792074830091689503016653767109187889127397623222032263115015228716231750404523429024619010504452800585495695369907576131847369791973537736122279340586390482135156662509634289117606109084043159493171912726696280065021719961800971770613595312500556366506789396211240468401218189406164462243603388869717910990353572370953959628844882196149301264683213852476754195599626461083796021086212524930587835462869634523153394539301205134302672926190404328472443379810548659154565688677692121191955829994537855899714030032589037541979248376397607103515672476085149238797225064047266435898557714032307235974527167420094612673339983806800891402132928371308970004307622711927612899748132721216635694644713700058918395465685228326405338771345825176486134541689141065027375817932657634548241008510898388937762400845495134996189735922938389203094512316499865288426791587021881381629291498182791478307226288364049862080784192425895546061720189516918168742982708841462493380286793572005794038077451766816809880691480471599675703230400869105732568338994796066665706027605383335716287631704342294406348261514900578693989686998786847568053129471402257550036891231738870216086354532723585672237172733695021413608741811859102863472150136928992648977973289396679357276807373137091439239608612460279242118353238740458005264188818052347371810447211657241071189166264736006400521515101374005875521183006895963676116717746104760452773004610625875444050453965198514086590125966991503145405871420821787242868037291009642350637889907876968561604531549013474920357439853673549292583856776190591986136553097315315224533536419675108261906159756951824672356111221537188486270674724234269043821293847296678871819885593513764792666741084002766570111451600939237673604365398937232735566907437986960622275149571613735611515907890952462759434287044709203663771017847015954561057258072066846805347624751773497757823054853515608932189006703421289829714327402173229680074260848786831356292178341200196245188536711885489661680560255517300679870620674743326720437199126223702488969138124344974113922518781690421506458464906657881871729203793753697181980330113776878244855242936554469616471094088229342799665537764366777371324617189722135381687583160570647628228765539064643358831930256918660337498731997225796703512788460143103925540885560422944722687711474688565815357375905718870588972135266121468726543957453686053922948272428577820619143338302882558206804722805732857704809001052373878261635271323544219089228289557463627983249234378578084898921354826759529045080578371565607582801509453470533755050345877612842267877519537181613650562715382454460390638054378965346244299428638521310868592678165414338432238724911863928051662852953522386849932914149634432372033711163412009895811750360047917015790563566631449239496441972392401418142194655483182875909618594458768860371504771103806672465485304369584178856910186126080789429438717860064298006058544900938257772676582032514406877815103060314300747685968094872782625443444072376929505889848801147041372429872311913117156191376522319545770767839122660937634865010993294042693474074209225986231961891434687565511657049030145368499028604136506764195586071139664562831482791454334550984293135594827640830013877159621181969612000248655471021629878991705096712726357757596874459021495227008001126563473688667284109534245920373175282522615724553951266628648157411511979014494796645370180926124899337522010644906576577068913165871108496754360678162570754049121344006543973849562818525766835779675145308125325726206596163234354102522824403196451470185180616384130294130224909684941995875652167171097302874358386964564080953730184750361843215724975770507413202367688369198158900810679928982053214568424696185995366035700140155540599715566609049406395017738134414329864788667232684057702921768415981670324197297118653396988776487597346643903254418976582770859563624480587164383306563746214450800442128642418058374652276541888832651718156485008559410360976233925201962129432245045759783660871690308345312883579006940192249688164041187722784063385893417584774441580247698058906232502615646198112292873606401721084298792517987564647903395585037188878844788549507894948590744653523435486001678141656390196063190063040657289721442690393708097851938549624178892766527015105016720243074934097961388969525595977579059570802051141329425663969609452280984458451501211054287723677890006203562902697393494519870237890427987678234156753577493958285693213450367868534784098148555468972136194408581745966030498930869831913118586668285107665456995040235958781529326738910235375391686526080739593074610397038062016810464888085775621381393475775112043641801167495766596100211508925447405054753048463902252395943851058921539847811856839781394849889872103931904611718344815845523865904976401483750634019452451884933002661018949187726190343186821320913471976544624056456657259679308147251754271531078625939626526912627100147500680583088690207465493231550675524124704449167432341561645628272607047087638360152571706749502656303680592100814809005498505719201943528523535459161179381720176464206102289425472035947407826004198173078567264536460572119042183420191499048455332209706850938950197751389141289645729280911063260663610121554221064900054694681968808182239619349852476904522945891991444274165427542047509509815653164815509241092422106365084042970519622674297643145178921511882422949569733604055582501040393740389032463603648083221827330006596857612865656087296405547645147915297043068283889889609580943913559695584320384902572999426219660819527675419316008849970527412074499724343087020778172203650592682329983372397586402523878458577394284795143154515348797540205525844994385740530314362141516148996978439992133424613915875593695702712758105873800295810589557642114856762708728575303654471343937617664931087640774945483560613542555320497596870835462447329054647466640863173964552750184270283196006976979356026142934637742076680525181211836889835860376567995307915634866530662502208814220575573437111685420159346853729945582948698587717635158590018047758422541986014164728317391243002639445041356339788765454351257435152956840728548284479646342597614380343870337687036426594503400488107177597248139221549133383884035235777468678818717361131323638784945945562379685202247136618337441627182916864835300387052860223161049334367932484185028588114835803372737295073577048415631064180309403309944122930025014316198478157894180597167736842875861754005337091147819444339583571598826893176165135762529949029272018944509899960054942150908300419544408652236427132600951222432419065009434213413476718457237521534978408752150863941494461450399521874846853215479144563795968197700924090005954088901894475745994523817493484105980542903541257640191625600121812504068872897056715522863433820425393538891858849677572943977061449679069986730438652044771161394928679431378919997322327653630560029138842480984590725102471410836417315459886939523601394177792752639011548794075861255237821375475692826615742440602599063500226997194789760032340864917923651601929945782315350859826993216325479364739186202269286963677110252202263011067777230452771594234453884039142987087557413670615150094159902296562226002813451676875400998394895050713843234644915947606427403411727948990831208121886530527935257239940276657557218848127660847863337383210585287775482908577857822010315104748687766770646698663208827051157526668680575204992385946178234695128841463266030538064359939211318285835090193570133709829494393416606995449432524482104586612201001823133690710348957585689639758340608063782808372754471377562367040018829351503070188010329653995680913400258982335253574485802696746294682444641736003477217288735918626634527085768327614949015717210059097849480300815477843357174694395814908942805582125078526642353007579846623130235010223154843842671843964853638953185801753015443906014170635885171912004474951817053778001619762499001684677864314353225494481716548917350548478916499424113314300165162045826788500224423100648999734796775893079038292864595190611821404871186848152839815752142133165081632489987991771446885138669163373647094901919802901970717814380109360222823484702246350038793833596719617209558146724672450044012988388105742168482958581871268125659886476782996617912286022270037098230780400014464164684820482221827718128094112010520087834916720106013214658631242798852389521909148419335591829923334386576415253024750199089998448859056884389916847495648896841239014184529795226417478078186407073024488927672159503003503810854715468602755568363957633796312808034236074920541264007984287540316882032056676701084383508704976976417686993698781020966472050246479247812945023744821278935824910387198505627304491205317629311659797630760724261830278057086427482003934610381611386727925017840546578228608283807382134433106841689878249581573058661223045195458904328999468368412708089647315702804208158835205250951346179319332787166357309699415979010981736356212027873355012117240402845570901568952899101678164872885757433335176010937666057952658130791209896464887107244008172265755765437333995974908512995636218706429049088533076719060120767507747452035215413384371209110208074634895183276564385899997760033122759438396936311531029832604899423722399115141506618785425193536958639090148327863031644559514954105768559676777265698086061781573295092281938498973887739525414463966392131307034784958183205823694984408972114707591907601135969203461441653357629733919360434176135460075251864361196427734557262458898999359526389155806069700668425729188264297280074520180624706328777533000229998562424729954913076604880780452125396983457054469805979679842446944212092794017306306555557802652496981468796435807613573749886664907784211654237460725243269302271855329274084410236027168803342758781111334873451237401527894347991843740455241545506724474709680212890366601899373148370410326109015269569693055754640235507479265741710603308221482821500013563582171188028393327661692096449886044017250508877554580858725819488128324511270100932512215409648610747718919411033901323007680578391890565269682899656184330499031449217293986911425276693298983058151322231811544169515866465757786682058120542672491012757513972904298735915439397416294233227111119976471577618561701767580415548494159727858937288334484290049936183888326768608486632824716751911736408857378147860854831390927134607936106170662293680699730321129551770007940338151476765530419855344933535085333838821621498888991963465774868678270251608219483660714456177224023211327857209888777033191353122914086129602233914340543766968368726788543787256688861200298661872379514525075408586107986731834624024606080283950716391906876881688410542851139913604503892101306804541941946420978645700449360073623893295491765443740783829895351184246400506161922938524740434876089680838244276217706758248521933482578639551308539327808222717837513276741295257976592583703495868226857150969214568638482992000677311383152742855045611546649573366147217722242290054299643571100818079936785469654357460132340430150735612421963391141516908498357939855767464386982274579442145143441573049692469338610626227760242850624456467505125838916534706786588952755832518229115446347239640882924250310933039952251561030413600924148930546496348832164694968550313050796584890673335627913536652801663786114385024951305708139297808790695626127707943437879122072607924388889379557618007865372578817751663755679635512619090500765255883268016042610112594437825939630385900617099329827933919495046789879779909089500152847592698476743943607380463187686214524420694830419010302457794710882876498569207142444259530635501434358967049631671973566569966298245679453299311446219880410821903187298619299356921623600328655804581765918054606689493239035118408551338780331157314136922990175234361619369130392673540327117257666069662656328438535155424392221133365888462760907413740209484011442287144785999345167972106748661396513339102110814844647607085946628320342934047115581906402689206300112072788022116657630364089490571234687500478485640079341278335647287043159426761332991944072559858641201631029908149287711067435261855456179811282721967786904010403629711561440360149077556087391575247211861635014335919367712985191740829818226487694030697038491972241272265162726620503028215655189399861301962540332995807148254947228583932802467064309875383660413169281719355696936570051058551542360382265286466210498564428248719700114014626108163403537052887304789236874893174629977482414738099031650020505358910085112387371056391783296085027593979157292653452675908043186675142463201745719651281368500199700350100298105350724719259223892979337128914937942276653759716206406363053852589551695377936824774343419473624864858020735703912898771496666903425404869074610431570770022111266542817404364253195048924147571219220045597302712439204147438063652126965647711928877191943200827272089594827699936281250439705816861106575319108570249283336238326245469457975048795999905836885985148551434008179136685725586909895423213241592132483696765589877135442107997212468161678894424171498287744881922923599433308330263200032171782465351922146129396858300235788774093346477284095068412146144898133710903787468539877698397197699313961346559227527272588274888769236950217005158321424889481862307949337364577274938285940723913844252957046840881730550556671476109081854999466717331774432855758598312804077759120423612806414270477518905643273125856789818979130950635392661161376883290413981997919270208049655788103156876910774460064486629709742283956203719833976689998675841998365940830474801849063958801886668592354876819896937984556936188104025322326562606528210637503483933955948081676720225470221795714225426287910975463079938838190516459348663191688763788095355183842155782116836869930759187539761760940644556505271297890465467261303202070712309964839584225461508526634413713420722668331929599897918815577896747715538705427462264003932624934370046798563564178060319682376935816666798671008609096169761095629583206871613128578599312825827357762560401345919454746024089839538445135768635574363791927614739303081955835705081301230582209419332321827725182560983220855801637347657285936663597002934797547799483369357205722895995825457875456949976871600677335821445121259304610381887744107553234708146319539994777829552936487415890074453139310291449201021375576892283655731642863331775720025771500131593595170692903254540688802606830656253766912929427048585528587982108682123791675498870402688399639712558731164574141322444239486572789839652859122929998669210508059653284920263048013155653969195505183488838358122480462865647494525179737796314780717218293679732896846526890493418830768257249406398966011708279326961148582124089317851784135868399396047236040097779724784076378867238429656711700337699774945701574011661871002779249494789493449042157511332236477169352311995719184136729223756906551817120871032685751555869167380266347805899366866262091829042669605144518607927997066089534025322012264370762986855749568049724436887309894074778129567048276777411887157024976523935342519867807964537732932857760051929625581491145978419947699504100499608298858756070713354291253976248633433269473955744665983448767057669150032741784686931066009459645669122736430908915824790727077774104030745144894090761237861927877723440629346580423872958221016288887215765467248767639607346665947616900954578994699106165691463698600526007728653990838272238867997069304759263124831457791840801692725316776283921576454842592584417924242936036226729820406985100234180189409811219152720120359531926222969934443127061692553701044282786314430339712025755366034992783782670162755126067946832438310219873511133908942103554437146320616640611237212592517307976654222374754133660759496344390112036117169891517244154379969056995139174088054200768090131500919938099167498923437257281455354620505523523371194307324735054605921111923610207239840129640449328977613817793180264449486138882917274580270581486183503374197301085542337128483435209289147988704568773092116140776910860725093422193036274139920531198883144535638642370758388567583616335495568432417232634378927840055107078909415002498690228837145862455071613526613542936681914685063659057885995672686776033842199531041382494018735005303607093771844139159064964185606455856073554588011035106280595499912702391957838868637442274851263074259540377324142829959769865068362741862629757160500209273504443510906835094298589699348689786643267729563457379482893569170888879438453793751675344662805668825748772728759656959482423519002435188446894867359761731860751629252600379751742516416061446378116629954179465260011628358145738312599362940236575324700449710332036936821477223996380846874943536988324229236140427977767601242801877180215121912087607607820265765930796773476397942471246393953142590628404810857709441281792129037123500821046428152915009866017362675518800414293638287914983878092976362032410779919144992833989784490748037610482716148520205229360152787942958482599562298879130847842695559976701283933092498587554416187529089652319280837047782008766743756225086780263445426833320262853944611437571986522130901217981216266229060383058121158080381726921624829739318675878494947990573660741699034615403919144298785079205688865436006937068494302801055749528029123952922542343621719059535163062892687549983094202445221035808753076323793446441382482797378716656083157309470381093255076745847315659665105825063573506299990889248902579379748926362100738267410900183529193906004343398505983952901448542376611203045808588834353406947602552247194070992008547178145585679039106897870146050899130620706602384927597143580362262733910359937166365605263670493734867631786727198775317465066106414682097035341697825056049811993516777498574476058012368293731634561411305041699342138680798856392938258450356607726784161720606227845286060916503932237221663272130017949206029423840435774873596412558033508442106271388461825514240491827025457584603471847091638170197596661191093294683138659723490782962173570899782783802115644376897894668527569146969148057491003844824637315832039876986685854271114387678577382295143763375213269512504951380632650445428153406373591062309104852018771403922992534356785282633748973824693827900862189056435502283004573424064254505628087743435238016044815518814065065173046245225369171729513626500301800352143338227308050791039470931988544282747021262734104486636422125841178577688012599182787085180082627610841457669653873662621981475035529731465757341092505526919980028149504325981335522072657008751259536527733803910319088565376229196757471312780042905906695725130146871608028531717241070685175905509418942119983121043733945592143806349195469823951714833921781773647686229427877308954524335395259112651677792329708602592692835046859834738512902118237086643990908752830549982996814301023104634048465021297099605565198414841603196812882987019129822563955306903390591650193168821423976557843629679463174382908038828899136101373767415387854414126850017292558774921549887873155911733218828252022124794441003874041160554240804770041824750363175999859924784051350447811590406073061983609795819131141019816448603368717608687113285468855906398083554767628078714876370814655365302464198866210493748547804966609499551735734693306756643745296791488282215733078275716658858206851028452836892322951572412696123167969365579474091839977074955768620325767024270297862605701032479684342450797847009423446223539237079240595451324775585220650847485377935078220152295447478592278747315860732575417804893346481149536223823756183160237000580064784020698499682089282749914085033372259783974442279818345865563758017798626641015058556344719964178983723487878563411343859467348273125430336770493790091321008458680491096608770886115465439570360696314618657800219286431228281468208040423706319196570996661965048773244458310002019947794918820620087593232626529101252020642457622407140237878734426336848796425310470915425004322705900083594305379488492949167056132893836087786092033223811366364714281122814642109006099394951558066933646338211782698036844418208907504089713436459484019551615651551220112824833396928708781531745532501970427724115505430301964313882919157453508709378158191173486810748511610676832832798135227178595248689087114399236150759349946791028574752270120293990668132547417738852547688373896465362141185984883325194753833285388447427194629125898628697137536546059998312425884407359106900549837672171805379784264793479911147865477406349810228850490171363422783554007742242357883514940304034972692282541750459299692531836490759562920272321408229306001996268793140730238162359079346698805849294561920509750886105905715139097369194038213708516962090488498690164491012536309731861904795654281380826728491528861906388381933853346818565471013309019545059713354529307676850307146561549030171890940162551843009336949596656249136355672813449926826533364033790930774057723680499674800003965546839633704596887211655330687528988730600021018753900628503820805172965102729111354961716153312400134716442007308793215285836764023414490193156775578160448331396213742989598142409667591937849147136971189267724783438949329944245872439696129837403203385936304593605748364448001002767849042562336205398466915505915804761601434083781119924640802737674480796441896170570932277114426041880990588806918429175310720421515298559004397705246270840174093017179320042591786459440615020036962971689559472256523760819404598864047838296593855581804665923974193795703515109081388131135747978827193259224668202547589597331390439197181191904421677626431920804523013730114012844802679817100881954615470314303498428978709487963103157087216959326524448487208023934385945428064002195686230272556452585148042318361216977011170249809285342440472009027371993576876111890971007912266774827724539887375691049500010500397519049775803866058224763191842002412253915393322182558174615952845212394313717104030931334124296481386024903027579528954202352034950729670870760200632394084440614717237505976201835738518680477407926269096537201847385373874992262127578886984092530507154830849031684550038440230390516434357372963888906438822392154667711930232849354916200021603289246353313672056208953610451020538840722795776185489954803189325655390883177295271194769536577006948338426446918176653598221224497559437906463563177071749154744204399241132096812552755767583646233068655043568496318880796626949266725706274094519925377971223612545263512003155389199537508729367427194972485777862022150685184171237329616772516236220516114507972503334071719333143527445749183963733093958476546300601674630270621238209025511310767695671984062879670669885317421249589327964148213969407371093784357746306889739376906408977839059173873387247934030564158637872991310484608734229273925301871552511297614912028989532694045005243412322269979511513988448754249921736279361587394147556024362157286688381874511452744200158856395078549667886696421863025473047856956621228448138811257724696113473506578979858453322989782099088754285657138715988686042100400232663891618230994278132724089421756784609198750402265375903259441377161792417213547440007775485819615408028286868810691257910288516834177356242635793687087405513917788941660528943499179231780668549031047138613353407679661660586892548506297861986887149737335707920583371599123412049289944395939159400854761352658513871105468459090529193567331788852337268782161363841129656580204822646142556423787594293450254313819632271650322792754976513872739674563997527538485943305476464665424031515960318063948194952466771433376991361433047143880449212619823308503005883410998819047169299743725115545160343502267802932358986182091920136610521115581267332522394990849222714633019424814141763684970002369024776056628188395570204852896122821551447481136897049077952416689404458913471814520580345359437366364865143660359621648194302753525774417324838951840781717221356429577405941134496196303769013269604294308671194925950730902542491442836524558166944552386379403248697667851712225514445026582034021250470210895671304263697478102678081564784283786990595116676602831686143904533550302424781781845240821038549602197266803538881256283832942211296274672638355663297858143133019942561272969083831213954625444904408357210845743238966813692483826930949534092833483001991454804244202393212076515857688036693375566320516767420571747845445627896716174267586811061895076546983808801051184489368164238908256904837210464816769362690132021052287816666537897059239827113818599124824659981434498611583866806152595102872053237137885755878095955310334528986797493319438167016247951720792529800789696230799615481911485831647947381741590834843958647801218542956058194903308844665226315978802779813951379146053240177580461417358627962908580269045591942247210363222638197069376528970322527465098392947117276164119195336863221980722140336957954209220337186724365819452034489164886367081573072379854662547614968693811687334586042132623409583694231888672287024783252390297312976680071790414794267240614893060818293859308107894229031251399472545715349633705028083354399451256285527504776819935032729534476000517682424949865516317068261441259863999273058565490099679576030564026295162289204622054492065844575727191167841803278658680282481894635033067004328681463536025893660694414321767236085790017052047624409046705298005959709768402294052716613283554144734522058782050698183296604650059007224702374031002466087437799193685017120898085009535579874238575766337170491266080820436875791246499098880964577788749939273435119068454316407922416212838582790893570982681234391396236086992357115718266208229730046009438571088439386059479595555749458355912771666811091984752608677240684831722267648131461974590093703844266701653474193321354239096920487376686807879912582593191891813601520290498004617163154698198024026926081428164481322410102250920915492119304255527336947345366854703420230528363039327453269581539403588951475196831064531721503852010486831194642011347581780570770981336197576081884659656970348720767851729670120455582757654595337781419737063799060636584735248306220491255853931690994972501808689437620366083321766283140389999054796008892472459799059210335331402345717616394370315535846218433978342367258897650192009987104354976035807977937742916116478464321822073994257581073789032300512023539595906017199560230945674705616663058967226366718808834076969410572137190866612883032495457745316849404000390409927224526895301299977117578199846217322331876369437363794743114423330871966336535014914380065421301451006043085407144809063431274470234057640434546205656934322619938358163321293897728348350439107149050555898706805115964339892585615066243981946653419402386866300403288323653878009489140086182395663777964989393712123030523240082835593176324462271877886597395416547183756615796173039697383502577890315661659264265249128351198811239959173383803843840834814665245177955695535243751017912865172823086205338463648474293063538007107384033596489493026188250732629252766031173732653511260034862518870076569177352647874277122238132909332797339800470529044714651665892019357644245653950927720117023002302646957106184117425450169972805651300953895317494136261262373628010197751933086313509481449384384805742597489293648933337868627528440827395719939688055008404148147104904930494627660196095742693876516254657644496003815849952476503100286973681245021412257764250718645626612486324599321350018705410291495538972982915898291148099513760974402252757628151246618458331365729018433982095539026925668610149593475490301501302997610518971261549765777218630189927656429633575428964128720028474814378622039291355023758758484315009530243806273282753613788952925415355651516524918125879626749018619683660281276671012704506871468988993495036485938812694201269500162513417497139660069141023695027638130682679261806292061523512919940815678577329533661669664720669311947666700030322205332041780996160569645552538593892467840408963351312149136272644942295889431224649306020939304440784860865320097551099237953449991485939546619204596548685234471025734855275639094428883740889356887747402846698915704446446416202141217707465879388953828242040417952805419881732200514742273118624606815704219834579695105910340563092981847278378569417048789237505343997925390535886014904240690469286322511223546204541562612954873675167849086528378332609105895336930841343761834297192638100255711229700400560257944839124532764069816751157999716068132356913586860871121652881966646210751157784385143043404244034224764958892296802885071844315806000241951994221562041404021468343532307126853060029157751337578377688615375938263232714706238952259609320039476626158945984982769296944700320397527188807543881609116028859288187880600817717672119782876559139234821869383338751538576529353702603937246293203134190149076911562032171926020807654999223724378052226626696217535914497602056825501506754941263835490064039397329142099154282185484219995641222451586607879193375368050390122104722440341706913528264632724875319327103570261729447913236968788426713481337927420758354869099750277366127959989223768825596394064883702586545905009499553618534170074754694853058177611630047101539470961015092150712752482900913677237533055924058535024057575392180598492964818430822783267656826984031177267108759954316946377496504826492900638691149368093744372541868545812939036592523788491839176699794656152357468267983810878888648798361410494107024475132661856087966689708099068493683148800826111839661487688850825223258947940468065043427771528459332711871384889893492456709202967954800696588501476581994662074400125179799397113919240102534051418620644404899953983273274125801354343477018397319170878583194824586700767604530520436429616630041362023252070375935195527410436864698412761428864708316455747912858581225631948338675940017653354516986342659474843168377069519869828980236936991367956927450614556483730646880787903432790773480395498580768030003336716298199795758768857093506287098425631353423831274255547395330829377728650350800578577265364932595722366860486410085390904429184450854047746512468780703612902977814855596596745482700607417659613137528053752686410454520299529077054577759644130394945831458905255014240670684084536395670258294668852921044754099891981454141671234877956299865036380219724849321316118159370674166058623961988926069715533303075413471080169795398186601505108678394441569953596657932810313882859461783874515142885686075009735693621137145037088544632300110362708795088625109984210467531517610870657116721180106478088965936984396848193320172591946920087187968454633166053940953764060417222524438663975276836728897998500925890320575508979639469863751985885603552857378473138719878187173834399830296515904992919878518308466419981600903771612399228467774970757246278999163937729601539874253029556073947565877076692667020247410716415514752785799660401289093406511088758017685044733026997943207761306977780713224765678093482860852486777821021192312854261434390801516066495101053572565038540254513808003364313086594592234390011927545121815232506230216379747807629161732672689624782709472067956876769098480624711917338886001257203831103903612395640436402756473906424015403307052619538620975807392694005735609238513226311179202464019760720166469177077947874656762290033284674749532767156197148281161777257011397408354456724955010982049753368550571234837539101497087244023631553962232357958805087624300592707536183188192538049246309628820190569318658538948858331165977527918425252472499403551342980358006127413527809144434256801091827076340407552989468176447917143055742610524235028228601573297317676305675642455407856588424702394787659085500822767967386069017174199055448189103309916958899856085171900590442211574677177652009514311210427657705348528506295834955903929842965446477351112421737352272482600375191002618220364402487765828637872550911731628080730264834327097881799187182977688466503397367220652726279825462259222674132444814131369038868498852682659795991794326986362978935682302313826294526190385938388993099127931922887994218913850223806732034618412753634233039527734138365368920123010591641003172737135961281322865080553297787662873924610031935927085754306698047623287208055265131598871997025450904480122411039797584382622567587446795637796642592186330048129951275673901247458431058482712596359814599804538235132201161712466085691957420309358619246243507405450546660711286888812595838767486061758262849812762710215295012761623655284901172014728128012587266514822210479370729997310728761045607806869014706034435728046659545645342231871001165407232409173721455107981650018180850026991013541110347907837826610045676770628681887005156488043129347490134410843726060594611054867736913452540356672128723181900785034209525313050675666738731523453790976092468350358935719105057630983880060903465043311973276643437270910384300329200174955881796997138183661718192803220668907918445182358631306881625495729655778634417656938282248482563447998205204628300549172910513856771367801621882595984145928596323721103491635622899432387059935946092473461304095657530236190073775583198606053747281037435163210042704805822063935416980605761829599994888188004257860524061394033204798166392070824751304794634307098736081205552489821395297895335430383322627068894351807947565736645253172956797321797081074274552496885256749203468372414737166796690916670462146210160033181109417833658904018616623263696960439564671215154833079782191855643152939946711133618431710344164708352802675077094918225251806350340223252141632482387978416013591634170248675836476075660379992761189343408140026712865061038490385473515820072794534015544125697095103993318200857719536800619339672101065765713515104740972200977756000287632677324895347325283914620087997870915627761908800571923317154744815948901977614285574310991685213323420632209475598281257604125629686031913851813180236633433986660228746517538692321332202864118235244366722073763321765933293518191144262446931212979910121617076412292074047788641518065118229598494250410456511102594732306170455359885124438439630099508343677558771975525149180924438909644299299840295876319371785849927351501157482212107626170877087393008468393503241513036407926655076124003104576801245541679252975585169916579633674449885575007562534931850592351936554670341111230294981956329048019951705676985546083491753127777194349821764962879531656908719975777857106555175516759458668070252762524111961551463361262743751320127655190822363297965925241998524131530386193427903965995409688193238790898853505579249476357047026886339087452863719609155784422426527416766442252608104443411751184556443174423665965533156923487670377017708143701496998574606745165755437622219234356307348385609040608439855782461189758066388093433711838414355454197471771368108130984933589749763545223284791320996341567162780274797195445949138359734598424760352881752243208694838228194405555751295993705812505677176999805688846557620315602718898772569467100153447183432609557857996699408646478255223847433748437806156512495850780316649365553389332376679565614270723122900120055732850902742494987411807677013778280023892304616445410270169435015141567439134490394853436888766632268613918371424694745870638289368659508119757124311573653469876054515959035339254406920735651445579040885498862392230253097467245551874009828652283551259218807407698847026496996886978906876088091457429214174756828934758300839416090470893197697466236582881049639678748432207120168766618175906713138852988779474939086601530172114618364382986252912423435736688008500933146057988288908746959659126738635729640617158720088478186209166315436203280427326873162169024691034613586165587692439237082563279486456012877443676427881997015156797177705467431851762080860763011401595897538515455223986125145981856504240698857860585497903567397565033665429720491727598102949475711606284315098382925534576777611825787422252344466879475197812170551237992850373623136493302287820300387160984427984049900417586275436016817518750788556903726192662658454297117915829005346026195691291849467810775068177239244624610770252239453897614641004652382303593896845345854849052495370974506795160223310635335907916761343475291705450230097260914423418084305853260798567216805452468062579704813559684878474579267805429727380616074532488544608731804930501658130712242835272920401120033331604682109992682202000665433008647782873621960735902232912701624120206643912203915770168913090820839625697239756157441029648956358636399880691864573807213253069579244748540156830370773722931595489207599859263355479435370004015503300916140542258173997386453493130493947941199582016157128596168278031462313585883564618432300796850983906046276365714155605478032564348211960093810374704488458273984510250290987846683711891014867478513669841561472358441900706249037096014152574111356878417315412095249911642163774768130141612591198023550534613287836621527410415892826400969399201227521083726399281140890628007621782241589806923771195922277365929417258678512173868913742117697250496208124409506300478345149121242308427238057359139590315419818574471517408842398926428393507424720831495755725923861636886016537595825691175014109687617091127293548153506209831957516621262332442357225651843878898455348741090094588412748236420331110436926239171807817842952143662643613177586806456031434455546713196314043516907795971156337606947591371915052633908776363094546709843247742846734017556336637333020548334796132846126175285512190800918844061708449831353830750986937310264897609668240318941747619313942135694182626530955483885419825546186645915721196487079492296884995586280706155590321403077800044826434061129607074259732865791312649566560734767013803193813860795248336129472530497355124399963913970998286438824975332656088569336872538207071852815105286314129422355509224148797567893082344154881556800128414602924640922107170091371535193347381977784802733589822535787937825357534879084026671903252119785615147139945101694198534914594899248929784858826540767403495201045655627919541623045818706565984562730343342339971525180847881840380905489632896511892201250998369686410926901599825356560993141881352180904363796038227280923652501574682916089753611926371774835582070160962541441029967246725171840453606755800145892025481734676130767473522561947515146462443739535842529366809453395499033007806087392684584203059788160869275580679007178213142696229952367400396334502759545588571344005949603985318971134601551232347270605390690627806359316247584266469595786950838410893602395579849203677443531149875352805479193948168310594555340209853543235602807229638691659124393059431857640435813022487654357076222249481733551060766180570442316229456237443737454483119784291938244171208246247447907095062445292911050081592308353033087768804696165688183253719361757365345438414641858707974105664740550968297837626953719012870406571290091074894282061743167925423059957049881590510411681805287325135291255569220336453204580031381066181792376903546710672731246854118429143329437119451702337942268351193337036606917264530259467133578948934141886721396500179010676645798088723926609359861279437217603665989639535167299434137439593984483567954670650875889010114654155841652901389425370376853193660615604392422117141665895700429687717932337728278927675462856989845022548177438187360768393594537674565939065773921847279705366940744062091934399280784992175854255400030211006333158294247089819283131181789912765329841188577332160425080985078626347836024439384869608312097041324283996423944336642197249440208446442954082469748842332580577631874009272116776095140798575311167877751030182446827739727734672390403341245850338494747809107595858443382974372026496713268111247026359037561896543460404372084566059973550875093830633660856364661190841848032874890412107057739239584697840236837242118750289386431406050116036197662172063698833275222678887774801777036259034298425704738477358451039842443655254686755145557907209589929101790818657282157263298797941652792077760827760116441202671530166468566588006213277223812313912793549883165180483358103881226624559338751717804517293321515685654053364159153296427245278470218563963649170103478724965229845947217497858107968473934823881171747824654951384481562713609312111858435174461230324273048401583678709805317636627642296105539992103434788121519487760177630596810731407468666648801805737900802961915636194491650740414297184414293483613206333758414462597288191244552648019663558276581194604702449623413123185398635255043087264145652832375649574034550236813916555855169217742414818001656443134758284586624001143829051157526177163574217960149800463242691337742784725663585829756749003654040069687935109272797110122480152326275223352219281153335719655789889106805602458512419519163601229755941329271113987536244972089329197733628369460609319370340175498834642193414813908847788718490852143743801516789857001885190252606183171607643467633397943497869515614872687508757383322760667722012951926260702437432706910748394275017924745608463377400121831623420660322499421921941643784614282045248815098535013428087645694475244426143886004259872780001746429253072268725357769151719692152445525027679055552067142951768684350098364023298905397390691929079835669650481770749185232488206837399672913233665388210999633183181786237878135151695518183652079481498202650551095047480930898828429643024097740561414342347488410612207318424091451570566005667892743436568920451222639308148249093101719167188607262892616040279696662295526868651818477893163674075549315981478958702398404246167400382700761498420073710388155987297057822830230826373906984188910393237912990957304935938283610397770498928707906549251398917740811586894840838314155874565456212698873693311742742951756909592403746996970069395882082603368128770808001726746279982415024454327592809044427278440680398006991990852933265325708745743635358957395384911939985417258598443446095237755357871721707298146290454491392464173739823490126249498347332346742347588201396036893036514902866705106179697329442218731784919422554735800771909950428910342404188632694275944611752792500458835863434367181403640435760473805356161022141884957704455875807743522493347976833456050495484700442698714528906525339296969515955674482623970652202915339798843902139579860928953282801329928860067629965150314632984666788294176784343028961428748270032221486428338420961188553464651956544299113440088077167267254199429506598220297819523267060369060740726889623541955427692928241467011466559938194119838785307452049532011482497681408148166360223546162874711029001439131628625566503948458024057539207321298797920586029289429438326774782737675130911307878865957832854768475694108711419587881807789699415161163569452832885534565150451255100279022255584293477801661272194770163684657632918833692444536599159555066815633651772139874432060776473512354540398344445433567270482571253185878201881566696307322159301174380454381412365878091836232388278125778314011865105420206730216398817611115330095982753434070486128454509278167810533193739209687903323061791048766941419426836364245260959390082378801471865044225813798260325835360018862658369111819670696212888654583714390760010705573242901380514428007998899477256201963420815467417597672188016037446555187219019896223733611341283087123677610679409140861636852098936470671009713552060016100719464701056886095864403659287723101060875198564812523439796998663100346676915997969865867619323638143442946856309475502514900520278035932283892147448832000910368572834915571379895246663619397456661759190124521816253828009404504286706899227337223185623422860110122412809475172786463822336885060701003187964339905584905749973249388264075064875635556439395989172389573035524894301719257257015536914920040992800869318002574975240137695832955288058186872515871828590954956723733708572066011983833090604107003615171911430419269482584382059901586123319334654227247325772194184161574392325304324942301059004301879342735036910497918518110897172541654369705666840838035549268133102181456875283538532309737771324136663133296831170684355919701395640984848258264264583407666764838951460139201736743719410439795778392964420670037512350164982882255025436135378024527875272447200756280237145914504988195592465555294907245738472943591599347897814564038294383430519493882634682547585694919424145819175827910332204030736431760141453441091729839222179230905129510197623483468051694882415098945187868711787738539669037385471450330173194229345032014254199352931794014237701694338061007565426928092825201348864279327470211085327322256549004854633315816719130500587519016795037100737499925598656228780736433273481662769086729449939714674026675104148761849499084872841508818696285563796891961434700093520710989065033895560006886233063718137413017116434715699690382625156463787194596390191971618142883267932909098515352808786512994904363714461453501055886240918614716425131436926950329457413596151250009028811250872362202852111571901946937590237698256809493057246492587318826205840213026189033923125737090592446937346965781445498957860077693438484640040191367240753056375894673012692729020890505148685061076289193259430315886985066374665680034089844416348633759722604128067132243690642687520143804243238688074656712789597843793129528416582917874672221043721718794396231330430313727608523993149744082935360316279379205741891480593636248075800877045042773024723840000065481473890196810691159187648522728140120557983231210421836165684634501065686615619883681036611233118911726020887039034325377464243245884763742147841066904478434520158708061431598033360564070916672219015638854140136405724747089191564892502729718447204027803442832585458456772389984102438450061273897754957843712309395984083532796444966283240401431092449649127728205311808076301946889194451546492450871028996805222629176511132754600499836124502081886198908716801623733633815433007985965068657716647960878586059954644567519941355275607474807480112249892752384745890057194459800941401897997474356549952687325418258145675666520862012634647330794114021711212329620994146284500440229740115398804227291656753234249304782390484933831055865227362674868961979528166044534190057782696046761383044423735004685349017569080352436351807430120337487953472859574542429484830452896142797264418801744251820482626601071949715388572621022763018364296345272567186882805605363153121022922158664467029623007199699789194898123730568329216058035021004748027389199826436295319560729126713890190486147491983591373171271775361953510242049248048287157852527382203260528875672369380001371942579652706747851340209704098373542470541482247927748961987478837586996549855224209168843186870273919167367667185627267126224649390234700029507825393580582557973913785651977257179560356910570071157954583081498280229398404925580980586376910965148093769795567703592449501241169314483461152682092827583633499267722146332976976738662381627585589738508927271583666264321078425686069232544211853483730668731826775515858316360645881041894636827812265037649919447548370383343298385196622179475170090241716293338545281990657669988382472135314322270689130306812480231114365594511001999531061707845590992090193449983902662248717458159700134634863010917372780769388373626477185641032906655965714362834079310332076237837286259506691736892231244533574247024494147645759621679890922701211599251828922650481655983438760159576413800093771694402361181050228710527862104215511657065445799257733867489341239894536807824221330855076570603192100440153302887072386620805887527723892663271760293938852067925781649414160649420324593444692619374339236718328687774188692799804165913018623084079220136991479171933603994815096766990109658723855655463255846709999930238604930984409193515529323416256712006450670577298317740182098360394154871148221649860653461370146651158393852991036490271207456086220905976954619904652892515302896882571711741601824403080933513538667371224015018798096458307136699623522973443838408992351995728091999689313571964149075532694065174690407450195219521136220748026180004081308032131737839377430757690500402352327247530010339181543003208865902406212096310619296007580362023868225897405913469465874367062693140833758659401776724043434425993167463236564514835993171496503310835699247944635179473705939749464700907741081331966232288872361002354004070083151449728534278003191933759758672694652664475409588161785465456691963516930080695891834086967750952932813891940426651717726334538438857047308971356890328034976477825233772612024730552017343597583576705101322356095229722166553163568211472032290523638030791410036991309264181221943342856752395324063972978260530607295634387643785205426056300759059678344536345013575055223863949594374564497571075406200604488290924798883295336255405708035296539890341531867045131219901890264248367321531973733893218148556985695098863250554260742718300789144971001150261870462586276110706759375337181161759360025610697208794699414410274535686123229039283811657681225904346754403329281390995503937648698827711461214786209977408706000501779813792421990226417429877355747428301596364249549069023277582201949561456221772711943360177477535836575185513164500014393597749176149465141386035913427995861622750205384015789341361122217268371560445254652875521887524348421620296058127877817102726406479037144858901634926282858265484193408464468022091369362912255332894007848352844650881837639954244981090958363370015748886616885424038205567823295397072514542514594968400565295132309918176043828291346634450612140373154826910942022819977142337329395300233209761855900482647534138013879362185418057139711046740252916637001493136184071699199789573145499938147609920600403123519460563053378258156456056206076139193574933051735897890159208168107084111329470219634363336461878849359313917838435954596400827020653786821773873369061343072363219829469337942592401511451450057052155433307164852406442626007161177303493132492764590605329888863315979283091707080641885024197500872043069069499402584165640879578104034543958938392409667358345823011207871994674915690991850138579648806704813583893968801569369812775997785611743736448169116240031576730402206474003844104348851467299126175870423794573419077862549799040275991209901291188625946263622851803425860258205905838543544714065109977920000899311712405901471053296358067381911200806478423142335971580449951786367170865825616193091840415590917603621673581803038782607857702406665138356105863733574693425023122962346417574618583372766016212699992994009604787616026262666329507340251486685544020148183567260030594281371170725133084590563721127123250020864343901556197343167879238044837083345243351792182701868182574033658864733484569806380984528195570930847234196172263076609149437091877996007148704102793514500123621076513627525881549719979829505123542026790531048047744938499383191128972917001581727393704935127674628329775805046532412144220518863960395983795748272813225581639414864623463826077424861646008500297997421712994088443841400945623619051429426850581742699455439096719327210302231791761004671668052176215280456125399051069914172944558778652910407840323381742829776397378287392171890692415751874838740230497503621374679058322866695349809609037774814824902142222038613550723139944719351612062303554495014452991719512295575184363200800112411209661187402499344841083880458978849477933717553714827279575312055233962723059653548403206643752124354757839758216162220473320955144413504150834427723868263874818030108155817462728314998240285644900180256166069987767942133446501976478560683769407802994895795716880912982873109696541697665605071222295721256844456100316305394107819820879336892627209650137124115372483452122269222965421864924265874580620234308958339385407042408799117142957201439130281494925307191094941869122068209881762027071551602956760891859403230913546690598478522590806745726347842337212992341344522916702980733076453122977127042035578716489313123757254389881256936458573210534933048321868149267368714074990911144285991203702190540395701146860450600292636215928404226967195345323245037432901574458246120862842779282679404306359943636201089353053481758026420764129344119698080995449734052085468789993930951232955461319580101916067520499134682904099339973050086910327845053400937826140160589353390689912975252702660307133753601581520111428919566003173983424570529734603371251674019782869158875542358096968575087705614158949196677404448796703172461987969849686060135094533044405008585006660010381023902532952347983481481501129157833681796233809002282727703295880779513648813881644654449190624748825238016921221278450291739790340671161878559772302526163689869815204323029601913826400629802279017499820836749528054628645212351103118567651918388600589518281193431472265921418381703760794510042204454438172415045251772885448414134143170889481241072921164117045569462539955584796519854832219165803713623023809147102473643505020878111151578791186620513494024079975795792224212030144237002771813830110273489710790023743061876640315957491246096834746930688512913446374957663165808763539336182885995687699024885978741091715840840289756264216391338039473239127156989493970985235576477650915103812866790729204483329049095627456669718487592687501759530812289617704880095220623381862951853346894472263420011878883576782537063459171979182527867986845014502384143760327798659367409782102883545380766359419806068380182079791415053880612476841523486529293676265957674274000965484398463326910639860846148090553017403144950764269804622397264556404337829703186724096164670366372246191980932024809092055330252176101373036516790131302482116022165904326728321228563465452214376966380584958361388986322133078848097740523557312065036502055738713870939720092827044516067145560081192219086620715783121995072552384356817871007098266425824772831794705502579570020138868274519292115851763431682351854531547363032362999897912804646870491861832540367309817388128009248421090589099463974956196542927753451705334940877124072535550694849935076590324952936508268779560491085453887021446544302952370684724207181350934012857636459631225423190221536234461051622407679951710119818077263332055850092134003686825773339641963932206695752819310747178508877559237190803988332407662476974677893024263469742595050281381876502959916715389171771134267100836528247596258599731483825204799082561766126215336842454592184594394699559823217661291523224426458267182231912385886072427412035979273802404895647986742281333436798318314565376807043318742354542421233136565984384020890898018739896404322896487362806204477799521165766576380176339567594492448444216391217561961208934112358009336371395734849226567638208144360102676088737880146073283828687828591899885929077615652511014992676619808993195438402514799713799851161145138087934650872378848440519409042320440991882473784347300670619880930193216735779529074111908479130283621955181558769840660940887998694875147845131518948932116745544579999543881340737507592771681468650801481985206323958966345999891027388764014178950585571983645855300513914932782252009581948235382575323966155718098298536541127900826132223568208086346451357733393970446989607606389380825693023934909975564542512104047367718723985755654115063653377387483221483726058796509039449375098309904896845924338396515900645914925002852478198377621896190627315410446359970040452849848465920248403543614887200563830523320642326283862138080508786838635491390010964503721519139207513036713368135271619872143969919406454528508568117922719531669559538445756327525190874182917987101242924010228236776464920237236173641939170127540391767772381143599344886945369600023530959609650757399800839953593654928784480288248394358423877875302472762580579784055880695393722447528889179807006520844590364980715397218630278892262275351017179608065094802264257036456896138566905764319109694998593386571019438686255794796012510695205025914952921696790898003283841371854158995340335479379015111779165949566210963690616848177830821433217915730286140053252954140552974770753540456528247084683747967603353312882714019566192487230347424760211555080171982967401202980958186806054378547495838057616637744237728950890526335331222109265921822171975916268235822697506341149490237561941036722794823487523215457736360639449085577286042774668894145161734177510563590450235261842094928537753882314662628169851917343026984741019481951644536094687014472820357220966929381445489172740463663872092970790799483935633617826621792593924712065063830830462724046004407445712239515357548371418946427468042459622234064078476805514020997931779467422797660104106971067732403504928021126744738951711451113212538588134402708709390117638265998112737515799357867640547764318662419558784451281217572614059555906095655145609677590192451188227646575288079330113988943910660903587335682175484715439505261792842581754735213314899468539620117433400513621853208859072906123519929582526132457587221448331725600456460763590344814800377702667993292105503314527914550463728112212502698215804354106819858286137994954533865729238243714856257259187739928382626238529432620086000910372085119323368423712521246228785760365124479948025128454372544962655618529153809357346480519513756638981732851116064098713384504570572109194442985232477832462466924819000365111920115612243345944362564674157234776006409464604825426974674710728520081228411529291809425357889721214562984461532173143994335067250376064787836172032627063213137666018437373401466726166565878440842811647141405280081739509903323270914825433618521475390574273337514408512699486976520247647278283421663028382842326735170078352225097863475955508071549726409437248843938656408820097744148059245745814501783621476440237265112519059568420883672484930431450105202153133176551907735755586157532667859289321460661351619743233050603098826943741053022119146934794404414240192484381796323518110210709444539325245331686072763171778147923518748571672020592780802025719774606070085538852748638188011469013258303149644255996503451287665125220563026958844654896809293713702207607889714205254496475237551887678650616474140565099719417982611948277805787509174567103016828084471402113902481682149913794746386597140211982803600471385127369364521873822701144717034039428343142911006997947101118687699102008341415892684081904127016088093047152018930465804582007718277658467780812105975205798851371941408789512994322653653320462382709402802580036215619512522010847750555538358176778954735081126157512997026261165600850533602192274861739741811071479757645657653622071496544310223232744488955008912228399681691930956925520748221111667097373545919502334431977248838847288621665746239344280002812655850286479773110719332096564333296174616430731343825161409699342472754534392469681752815331835734208142483360154906929343648966784219126197978419857989172499166474252131032664892877925364926364886605050165678157526012411153911499112522060544229472642730878241354029341364688524622785914838358487023993963717237489346470732007832604242960062958947754395333329891584252020363986577332513891829992323044251816071357781461105151976338590096843781851918937253313046589664793902077731381706924158093328865958668255228986273862532135619822914296083089058716478026518733541350338692372426985113562207668765436097114025163609274009570823631829989191725555275827091924552109662671838740089806720543385593485908810106007972973008124977724329904120909351230204171088871920167596285353800144531698973787167582206757401640224957700776753135109051006951054073738060286960816748010392474573978734111899242554062104512008918253898364803209042237333850096482086206333818134256866843107922198243948649648303116171036415590943407935009973788040328223566775720748758230218954736783979988004472153901967783096813191584801759461211280891121793375020454388116132139993761137877419443690375310207081225278890751118408298018589047369432459002295048642095727093967129996878459327563951043644722224628030277702726449767748573025705003568259003676900754135140141385052380833802195842645929160362433438635799286853207194454516438101428280286933130967072225766338502069250053681262015119835058320697409262516203111171340497005381221904239401339258046742690663649727179384922006649275190048298212267164342018628933415272956587578054026784712288009563192397819344148083165812541356504960677704044739628377443260658262670561852351189144891701983088159872657835533636779302339665249551092042481997410611877675937374837609322994985767752375329277398133710483402520972745527349928677860819353976186584368134170843411427018595027902190188052274583559262060167340959806875846284364046561156253399769496386303018261684227690220086413572762530537141583552759275177821052474535679133441845838603382133749062661421899680083536329914118529949093890359303763748747297763938266646229495410322269853937301153350646204543440635631559691393231214326350376595767578299446212650244330150879557241122691299901754441664124068657558568185120275402369515512211645515706989585781793917692742208044510239509883227539678147380768340312747541138679161920653503681514241980140940099537743380262783540244559740497930400256859712041220110024870353201237002748588646082014651990223061855974937711867786665832022153117548408887600848920794033830477207452013516184511627375175780570122743263402884972568233306277503063399216151517224231309348899739597541695133448984038240946983348585450023743732898593821589846883825969612932808479158758032687991967972910065501673560856876278758232415992921594392941982481409172074122323622337720453238576358894432442283570877854762874486482386235920110971935457356588759599441201265668168621510769482869589062339378813452462881231969539227235990066200406100932779685766564776681964007477979700074844800273207219857830604742547093234483853871418101842923170001631272343650817236697527572631788467579054005865223591180578910015673607816548913949369229355604131387959906137655413450421927283673442733654283332754204001698690818130746834092697213613617721776527628848259479359368715406380555896942853936960685837703174188401964135397188792655623522595482226258754602425689654040959796822199513138897079594010146471999724572850412209538322947679311685068975313358563691144757483192470369255580060262823011105771955457861180280915024460457524535395111393650430669355341986510468109563017396480465640376427047801771325380943948937196231800741633548708586099417234700963561567948727568965156564467013940980909250031334564877087852941083680692351905231026997255889270933671953023315577397714320990270566679291632680155162325453164337478813693240792458569577252376506459615810105972317550864113704016997073361044233035554381802022821632396839026849107199839176111643301628035281150917210414751801898398743628073808345190673973733429742393528549042063406723823467297690553162800836562059143273492865516516488956747186488721439381169859681430278637267003250917072194036386327747690305865915365745003493583277505710318833615369435144414783519114035844511687303623086204028951209046623242441581843300713368184563794356583707227392896619324213553749385748771013860281657428270919374003425709615957281367340132032737348337489227392284386196123938359187049274181694021411132628568856660170334744685568239845869439325296662835020614555754271110687292576048635281612972866355186286739587703203900783531204655637272729393143415719882779177705421096034094818738575515728271927045837213040142992038935062468372003140753834786456060730132224066165943493469066987565965449207369954688720004995001473057448231504004204138644422676222750225360869388674758521539361838772635544622273636101406507809004016223802781168232779865627471858324742097146209448693680206809495081403422088105682544123879604020687209047463462029425274057043329251692092092961256215016436015664036310823085587548970799792591724402349407179001476142502552963699826063113627140871665069485773147599836764834236405629108290253049861757205935636460654971253099910285289980507924376375451887123644229400277818121623997710026420088525950018321440176215355499817391999172236231866599752388509514683661419540670385861424473091017216117674676570249850164354270720511101664848824965680777841894380619164403118100347122082963970036349645172075811337879175817220561650868059010242815119893240164109485570570737300390486866930913914958420543639665024721370190522100834739989869692290707942172350854052957609561686126154985505025938937353021160615183941997843157543928471535431791109904366436622627201104873498220509139269267073108460418353415470534100155132082899836556929338064042203198099672790916063258017707323778711186009428582429045221096381336726961179121347590519913875323701064030921118416843631236283456435546943096510786585069928435240669822117010256226807365068386066457496263078929075220228142835654279763248550961620416429423123335179657406045342346651953612215320756130846189653155557661645257587443511316649031949035619979689956280309141609725988567606525495603549996388560338118400233643068479904673355191055812999951697203364201102792308106370223097051523009679731917361869124596152198113542880408830511747852167457877661765218994216783014343729343747183505337497436405072857443603757922375233173692206369388613462686082871441526161286254602846445649181418550223857304401118402017535425281762009580757158979761903470027734900473774223197879821810587176629769968191716488056530723826631903040227714984554607544018421416078266076818991567081459866430954682126428667187193599662100792868707105251758104860429151958431426617690491368287894555348042233166760538504868361381841476098282036133732212898265323403788902391387344502817575849273184004024905696385806542740895545058250992698897689864700872246740437886115385590363140822953752495363601792692781916838086754199741752207950329731267258904641373197173649537854461331423293050528611148625161786846799705821785521860725790538421485166855135493132977467803902525368814386876447417646459175835751956722910699007541317096597955072039321936194812940613952031923358060964716492363911002524274398315318135910412820528503302296052800504425581264313169567984599062827553093660537227451173408549439713756614436318074731141414847239685990553393023885382765554173143449810362702476029778230300678901758312296710202593520695960424252016956147825918141327203099349209674459464390780640113514761197264880547372329830803332400841018485777601320551194900612843720391617238124866938269427952601166153652797059240324658108383575062845526934397644135538011468723815252453792995055510533111348630513027882073505181006502852198999815010700905734929647973029622402714959519843739208178151693736788524593080362954240008453460237058792682829519412825996441829068272158646451793642267430225211298967113023441944293988401820347882208401490033279132233632549162438366763816535275700176690668304465348147397384759297359928921980655605212900149011894407120072730045199254113504184817345295221972981617495713932426647765080202608737772397417283880479277527482851615670992148529348608110099457316849137829076087140963942177541316577509519528575796791261540485357309305889982908839920061502237835954699847497965740971395414494765916483422296870630483372859217795428728653983597507662500634915544483029043578065672504651579544355441865813189173768642793573667308269647803743158251109336637990960938503211002690515802993350587990283512249560102641480078258695116647673505466243871149824878614055581930178914160357373029040238914832791726602334442791832166494317117954215419803595027798151930281325442169514106859601317509714889253248741162520698705364677120348500562966507693084977240325654218918874796659069804463871302047439497851609843064218109583036468129907033243905585245225257761755686218168718347748821524410750807464953324826721009215074355763524103199240344485095654617922032205584210520684733846272282788333480268678749828226508380765521451999921596981639102701350360050692072787216161943227087236779687670752943659490705577748510101931098739059375555845249163203048575899001239117227249534293851310634281374794953748310846597955487955516230639213710037529376502777192262097200835800821291211495102806519910107375170336325296057806601790441156554571649171060639868149154219779499786196263894029069479522551838702942575538621184746074153347243918222628953348995574099082982497777800687694099210498590310269688339234576426934260959298631802515489404613337713933122650895211584693840430448196481401435016727827332520670067111030157695763992243013592180844186730148434221359917900118852702236749668350302380062589694914855635568577192352999985652455202194841564372600654442342706378012647878958843871037403242505425112538243368549142404255642109886231820452559064175523481414227785630379541358136485368422010440092058331745643393538742652817393218033443969792447051988836556090057696551041137005738792040512121425334750739818861329609334482755558738604716587474319932534497681517084447240532750834519776998775814277466110067296018110635896809105662359618074154843965181916362015405526054107381368876515338263409673485245232223971015222838269613122636341783194209079547036606339119076618190539078060945247096526271325756461266510355272582772416626181576463022853158489012014105012315452041574170467175688417041111446864918065608421151977437452685002332704681480433375761535375094427079798600116348344849037678070638862014071613835036828873084502191716882320645748265705376312813992248056527190212086432964081811087446385043973087300285938084101352999342180796664253278081857631972155039446909853952027589441373224308477653543210666004348344719817453001749840720619793720938566694185604470202758903120488000014492363261701416044077038765179832644318586324829915029053780462885041545248331583684157697476001336344545530981582684868320163130840089064939142391610534560532604129006887377481470471259599940692403566371257607951812175978526810243605274657564386661783724535239308408788078710333088390057870604409025352681394254928395036295780260261453754685864848351157520797595163433261273202187558738674083483961844311788344699376661295849155770590262642625457032847486445976793879214703534678998744119148447429688931522785876013762517817276669461287255440146532990446548540294332907808749116857275599660730569941032273121250718034183852243598720131708128085074341120822018831365558299747745357495084979330663168393034225500442099320225151671459578232002106081543847518022829509205845029651754272340997685548890881356701547831234230493074477717981202339821833423733965555623476591087091584622102276668678623334505521990357386099785391512401441940650599644831221776952862288752510571305968676984186386246586967640522664788900221933600984354391886776252041613539902018370128901025550135159399842369038721502134148655823018596897371802295650081725511647415226034809779879651103013594851142071146757967810325752064993612114694388927059322022989364089326142663134838344315757576788635492662924885915646501210375088246099311552634612739257373426280359872503739511367866155701307338668308105025223349098146694012043972076799120486617142251526973987263082753343964665845318779077616178343005018930638473900386846710983737580350599757006909759767229982990218807229328137409397742505533377891683138371290334859328569639174652744975825518831347617110032370121675536824598975049874665163032382668082381556515566303299139490681817955679525590285354449825698814025127146601099802032658523970157811033997882924323059297818997958633371868376039669325795833175624536857467481171901898765622622708274730435904740881260506140401526545409390924241179512466032195928039357782474918247188870377085109807810087809312390672646769487483180214219057322294416952775588928016146711368081325776699352227588707741385742552287870941916228555843980321018091475492949124654806389198017816523767990762342594203098516610202850090179914444950756620540240173795119038317646259458339991388684352976385174521092611179562526486356100317750499534829876957940908877781315799489025800454245616952199916011703724999243620229983683922156649593641783467301154902489744924883692198584545477274868390589225084411399492134429727697520576146718620360645529629603271415726462484713733308335294632499613087661470048199426222856946785134691248521036044289226932029100178535639291098263710698761147516863087701699034530646506367119941117031753606812029036961386699119786591662588397828881618094513751756628500290207158504490202325459497447616273175033213717361718829595828409235410912747450313854038316058703555408011611689911618907897413834877609487721436123100306054589394200353599066117932334182447924736727682770397939408204521171978518555927274229615406922555121026481249847189096332605324244203226845002312015698110562828560135313362173518188395689833951840906496979600320549426436410175767202952560069193429322826601209941063156152783517146019368752835081456920348270060629855039125953996232488868598555737545908785928398984427248890256613675028497893905610200256211026233592041955427119937994355496228810905316917785850436590565333409543066372660664505283440240434030328800963201534415726962328530845969249478372189787695851945189565368216345628157978654885344993941602278381453209679671707659865863600793669971192509031946167278592735398067384289031742004608984223399818983969048846651778452854448132910309026024278901204720262156973676236707392843342070284978845857204954597695309626032122399021758033749040001177242393703305408582195254326197398912690527323979045001756622905128845186052707984776341974190765209771927077962447757997759029264569355669914545040179507862283159445651194670553870619516139208788524939250147044854074045285301678109995536050681832159465901322541048292347403668219779490801485161570017071389954566920592274424536232024810931309483424653440895247974920461341210988032689162600747309721889811265282595388742308662667525820402769062189677751965739258908603068286705463933112582678782548468535553137308204373604484514303433836842691132293169422187092749556928223989843649678017009847705703444371673198280187838376817821802175987962153989765932483794766910836998173675800082185290616126472878171514565155263346865381634481271438598939014596230238490724879693434908955214387437986867630928958245256276225062985792151599022600547928569895846667053644047105198108829815902705598577130968470079812251435051167726300128847852054818329391811217487322900635050599320278978848910308130684671200230137619290442886808771138250985793580076806296972652009882430346750022038451640760308668061369458346699640666702807697828946519769021320949196838583155518642074173298818451095692350676335043695336096510025493805590070876241664288009092185122376856675405619787160113064621859000574765582591761959225615025163641494357275298533247967918781477731846421155212707784104201991289400121516746525753781872105369394587992375648516612430435074084624892081920467551567870221664423376349851551081016251216247957933614268364738158138990571759205161194894776288383740377526296854624559595477524486318154192540179106181790448821437120186858034520268865730830894693987694865829097563422814513144049241442424972750736281977081173041479500567252729387185220456608366123380766861031417471694565240000363511216172232220307118123729040485318764477128163239263013177048168734644728634144199804113233235225353094993795993618317338488540369432567435583704834864014503098559872451036028347086820177404862240323476159373216887335519758854872336720078171928927177555568310470797761414950812162489590987010174776030791444962423930989434482412315365394524886411004546734978276941360452461211715482179914339895600839498863493345962443750302731889124904184653188360769483609675756218404008303593795019993317757720612305462978425707723019624030242419684454554194140331107371986744248019572962643564482997969417676347896480620567205124930499116264151431711566742254688165355564030846067261663525449751254355547565718040081006787233758922182550650661763421744349285525738683043496791454838454592081549202300735358356237165055875226382784549239207715109118672838278815145422476937780402736044460158222328703682757733049684466793562609722257832270641164833873258734637189892191381953795546405842489129377612376268808506099100419132039021684442832681271051034260096459572595777886854347149581046188435524983893963748392477192501752861627183520842818336450108244722183154698976063962870832943516706874417310887268890883765048524564607849497471192640986728097400196239380905403821765428599506012007163660222750091671077431230370845357345827730477529890068776524153645470482242715370321977677986997540137074655212843483855271210053763729943771868512692065563028273733983353326109198235183222172294052326914859019321733309601903033668580501250278419164199754940412880120198421561941959387504036823660133494527359829047534644972421747607885642515125169107230555571137254680455499733325417720376686481895403591205542251383756295783273294268070566394361778526209684400032485448190488377385164697279920915949568372025198008897263466459333868036541435334513478417509529143013481629842404616391328483247807283600247781370923567511406696114042993869330249161158105633795117872704139152819425283954942922537733930920843860186836776032902501379258456256538567245490172521068343477492748953641090579991571690875412925969726750468533567980455312501445975396229211238190828869769762673542334911383827386395263095417757186614037637076287204268183056810054299706337529021598185697729054510115993795002926041700128754065581512118164864393527846140644816355991363557679802348813229308873255746211387306595210465992624148251016067434610274325632469290011452935375042464071464057509802097613183268742147752788049181546193590446775394941232593576156724067380727343078780582768866410150580986352008551178373630075403855670828788552204863997384293843582542547086564967412650489932285465560618524602684422775366568864730839526838053640262068887406834968401904604599996085607188296862180147667552278732275924681180885835220579377820425088351532398532755637233701973604550373557516567251530737474567893841340611832909370083633326545784126680976271118679908408811594404530499837120393673193322246669842652004162600161005685380339314547415532302203005799445683916164076878429447752314426235399811458353860894477236996850934400351770435910592472100866478024845135097812110052030746576185677549862409211240045095437924401279012055077147419501953559318749581932091785574286143676069211675310440040034199853439312786386421314458092759831888250801183875789703771502625704220226502665004872189414116269927345816480188208303863722857786091670967952329283516025590369459925492036534668050616161014246562845124702347556662517639959146008246356557588833594401420799299180314679143802706331882461622120115325682540179967759337406544453968451010850949490594100896284873799746000714026982773179112129021484372617827881340004960157355018211589587122469176707894201833826559883535483947046480883343544151449884692682670694099718146183554702056081649223208931618136292861652487611892022179741589260564900748195579472159176737408589471765981413310599120843795992211017297596976769773207590220238671712335779538244409009647722599295267772216095313094371063628299873313148694564541285071275161095162258352147487969730572658078597850180688693463491918920333847072509079263877011504071853980996288354400867871139254572387429873273400610939359738638646831059608057351545055029877707937457798985990145272721708374179689342742823837296025825565455086710668859227390127968694177281390491808138972383080620070127866569148714386524488936776061400060534098342999756989091993750504194641143092839182983824266210041378949714222369167009103506778857397691534215524646267880951563518401793335717047267471094293671394772163135885303189167727828359945577975389174211282869815494364298619240252659232423579139959903499299440083348991667482954270908866433710400629618273802119275019782144778418197634810549087445537207523923340380774028832289883652617229042987958345554337890666153325748336218567543368199630245594335261410877757356562468432870671254345160681230334330377558147402899417241323906232755082854331715197854818072807552892283895702471509173569904119966669803550105435821139638050192666968515478490890843793018531999965095446896828639693721889688184441337738002879597264905774477835982198090664640662310518141276597709404171085516054551377635605421536143776477436787540004279793179313383938675968757177944711963311564248800821644068539632725444774363346985582756519664896892277665328590301450126450766335358575429129630707251177246262664398006634109432369839761658675986736800338188112519901177563114784620661196010515141542354396423403066954699325356822113769327495744765311178493829283392849965817635630446720767579324977369528099624631766005896435141710870850611041067432400637179482238658993098295260131997541411458820626109263347219025959072126502734069872382808368720114797053372642203492889219443671046137997215463026324273352628546464981005103778759023554978022369361825668613317837348536008876310777460764334114425202313627570967461572345575140853040540845736217580460959218312598325025053698835980103009726189112790874746801746335271070722319253400088619702797113785070969054956002998354786195132840693514783914899769525389319364318820598769392299191521037385259961591583344856590207475632491467200366889336587060873484649593261191449811026182171438442898712906486781307065552795247574995044693437146942334517967616286573872354232143391138800004249694130068539877050670167110967386465732205311354357664990082943832673234153210720050357161943035122191657075936762359077923645614714387393298442430674301620832908449910771517026288639874229498834539123630123005547347340515848684973703811537809906865534143545885988135050088774697714558635909678879782218519425876868507727555328730292461293137735845280519236661058089539191432800041804137426245103889720166640716454291361532546667479518044026645817282702469096239456384043519919829543190828071391368061434526137626062527818601703910634178075650767137253138686198188369569503991576913044194521534140781902581752575575253591704133354636455905686028309433562847748784927821616098273814099159004380409296600439071835216846503564744318813834027389406258165084690275812879633441448161002719991034434406736573615713580374574690460699192714003907729431726313528737144008066736834233053122653445385757965032745307130264157654971627172289811013811689889194047844169193968473296168226520589567305520385138762943930761100940203821561575880198553656496088500807714556494874073437824691825820746164239414747344199506000167419604241625380395887465116816824421168246250699088430329315050280116029363615832264022844982537137892164510927227505065194983527499152893017250800902390738796232303251618269150787820723875091815211693113857223438946711235156001664842673222187140758443587882808539094444975792006445188804645103848710500719197254821100705803098010381600382390904886428125291047846953187495449370065285131969387120570116632461070212155842367453288384836976887662713852015687069195484571937237668741030089595824102047153511849983233273529329560176293676218228761833244263028782333964080621046446505491365229569654952793416453617314404051224772726710799946865018261941500715074677665509166066493141110470755008730948756837860187620049689213926214609496477961805299944350459540495313631400316502060648435458009015318220240634696355013077937262394109825043845586990146650603324346332066360769096975667753723810831254937573254032657711159454126564552696570333948928697986946468538116152359785246202710786853781815926899886152584991493079847105533231785122051807868532400639002684679799794790519859405006734855381428453476614433192220941285214995844633358595271551833138697428904515748525138640189142471287290439067973723754925399373575450666498184749090940503524933027850663886694443986249123134853443749379666808379148329022612799336947144232803324576412773051484605721100120249274930946692712406274827340155993006359924499845805500000877398785507743467857982498690614959663650704013163027659878651874344519413887079210556990039809807024499365912221107987196818414924728932297893395155582779536917517588491712452840519878175273034060922087469040212973782525478182933223275131980262880028246154085393256860874461177389627066658288369815488194593456607768692294848007725098420364207629809747771631682230060698603247996030007814182515387861067973394529551647272956149568626547101861459572772830626215057281411150367031456155787656766102896385625998512284102902498066161990505688940486391232901436732884550285707964465585791785817784476896602082103469649782705504440884945661875363887723937965317211601464085163444566839483507299314589808659070702464128819707135375061955243059839640223048387341209961178956144378262679859662058063135242404563923912272821526401083493024477235414558201471404259773333282316185841096370967861878135873641276802895009910500398596616729443127772288978945607092750250053754180905737436265822604478089738253071629673930472480902135743572571561244678570400484977533172888759791942078479257424606941628862557579634529559668029291555504962913457582241134574666794895094643702858210838568364026917487760714439335418734119160555662419061200547116494174763549969934050176584302732860037685539243384294474190612662236221466571164470926799848228757769697818646692604498276039838179485722143470499384472860407961883853953257047386553834790241352526932294539217699230197922977857664880213059356989957897223289069371895449940553432583978437753627262660178374151653659596145852432098584681431691106956879771783578291705399964604944213989287550127921736546622237595288253076947440833580822825243834508601546338500615659590396967175664805225524626957789592950629849969027036121669336859730870609986895279108398908043935164403375192142648768879210183048039277245136634308127406753774341856325608759560464086742381480407867285091762781829980090687482637768213822640062750039096426072234580913955095768969403175968140116522251565741399709000408173756653020669683868871941275286373025303507214835805130764998054425351621310304740466719875077929569711961048538035524989208758684019763284054787296675798861944765783542670051403961735794885565738252267030457971677940854033201666372185727843293048446988083015380653338171284359892191017765554399428182655637697595252355530763476879801189592368170411020874571400739301132850738892745684240736065249813429265730218353468376178805420633889187798502668704714252073085280843567321490575392602815103090242492209511680456792276573111042469947421291282428306622197189731698403589480929466422400963123789938495484595206310279753792094805513116225718166978988006132575515393205991540798711139025825408272359329216399817235823526965102793626578033885823339679537792848412073052305962563134068270227708907678114736429784696729041906089310094629637354512423092035269260227457140630884591481683753795432953803612642840630238491350540801498193716513183145896210405738925226440428214937729400380084963165078530198678960008589443298792875599446090868720519108876779516299943864233175041453842118013215006577306779993263802619511491565376509454108746934824164910814594520112049340821171166234223558774622040503933377175122822438289716013334820909576902204648258307422408595017966765130142507051046843594843130535787174293690874574830236895824850762867253983840001349546010601587934260061154870608544171206838721310399721982861896931858907732176065021063410039375145983140609220689619888558817783796367143545155752550495131696259151672702327820821640483960366270464053941585194213659814145380392651072386090591129422561733936353695693501598972924527008637257702903607839576602938488705412897145859785032519784455268377045176326312123515235358841459010053733025261926232220635453717652107022034593431767353519318862131963294327873955422233812313526572121867765170760764845425582073902345743480437259186773848339956434388155550330398264782495466691413211730184362018626211455931138366621495576213359281875547218713952426342755235275745115229031628773182017210080230081058080813064323377023523420280848594888023987267693992330584044407683488488178100696375481906285095553300693583471406346953674048193463105362420383198385824334445811066546384584697950116186567774380859102093712263020985648248682222201288660449149000020789394382977631116116849013790252469752626832215655936720326271534054546232833984342291339776643531685848163734020890431107692112284860756020121954920598112751836163952495218642130306696818131217575040869936212505675453757886310937233773846093994493180543575602283298304488238421473208544678744749666142741352367363834308109888503192101385500105366261850859363239834850262940759542719625582754754724399443361935385542973557875129744093081946040627414857974009415477103389022017572029142541286840096356288484412815660411826367941935855525574273495380460022781628298742361225988035289399962767457817458327721223535945664935934759466157016359631037921986811348970707506665826860450917424544096486245191261772600049461206659354784472781325776134958939083028761971817972795029447206364546561352956969639584720132120819296754537846825762627002794377321084154955065744876477298171889407497013360951161731518406275207775558118382516001706780777195307014616428325695366312840324669558820623748318965619520870525079942158590538568511520117040197860583395719901208449423215293259854171009306070794834054703029357945946248025748269132926532971728850016355290320600816706822151835314876072203797828563565738378142415123990125914036809948596786911110109134214261381205217143874221523167156439484898852379639212534010298648667059854010245860277049720915034076156040004661138603798552378839558412831036353125611805788275689751203716502004388796291622567687829599691978094238083106449298688384073303921009552174171420614222956732314948947528365948169795443357023559872134554840249643621702331389089230480388423275091136536821667685907272764488003895023128582306305758009275973469760171783630000467092159814859631373877943318786409671165294419372465333766309619800536495007726558915793699103520191538181664365199046731556339467444812713143343342422823146832309864590468534252473788583199969130652254117557104283440401960510860195455993035247311088308466174838467407844576585616797403079778950988867331342607954011597536917344363022818774000696683855004815288464620011568310695354577080787132838527716405289923645760406518350538789236033573346395505857996164597773257833749471677648831318874947484759156012957754014499714647735390698798599244708624259709525825601943552582768542331370253002428039506801929047691079224623596009430913620288134910169387196492186632280098645992279292107953463847794476395744148153358526782976918939279478643287387007347126359050599606332726445589514780107656224087597797232997665705588673628821338644072248410991140977090973094279432277505051947857782327176312865055042498907337269532649352333329671235370883051193713101740202056774324696628931958416391655685877321778753357478696392695236821342044766723248483875720184462127804746882934325759657468379208736098215143381062456128211040963119575598454443598522479169654969668291279153680153000463719345866317941384302003776458760788410802716188897291353423640459259068606460182367092216589183863808663749790965549438899680718317119985541589819403727517640148957737633785461298472120242505509230480364126566227100675247047408820829864538055700910748672709414271110722108150560653710178813950185602373692315852292250583759342276864061551661411775177238646571767801108877506644741492203268288500030370384873281444284592396655087304588165826813819954378392936726764668899016446088590491342580448132818092474516278077106351905635949270839343559738676094385321653233755730464371855514713173123294556732194436876660405851249889246705714801833966232858898277403404050647117305309584332433836930955133278700137989995164271904516450618956888778497057180124253634853483826027336666483588733792605775301516358067463330544382192945837743187533958771473342609759013927662923249982516938659649743794252284688934136001986027693848687553973449497651001981189393342826464957215591586580251391091379263579665926570623210656224921698419244008574170329365475262975233030613093666715339211786134890189390171246094558325973177643774170073547416302555003659571562162475697906875011750442786023159261516549685760075825846790102805082927773529939298933550429979661501698091746896307279778807787515693364541673088066452319239323365393841512204207999616490520627911244353330377337714280474346308678306182196605337084285668891336951151155614144952311654796276633169700663422893707579881518999120637437701733478299345103579184314610203220072744833861945042825286375246766567105055998005376072029548981588339696832171366632313218733736950851871524588825849883773383401093325539372814931112122003860797641762857207946469078696116914605109277135648345975782562724651729731836651251726221602596010504859834919520931895112565385393769298162718695858759693152424081984679732229344331286343335395097564205741364762394372871845696180682615213267806932904862626971456121739379867556454834706361572270133230856150910584813396253272587916405452374925026103882779067572676971118643019711224021068145418333207990364252977469217382075137189722032092281638168987120026894166903751345638505174990496198585334107796996634638900752250704444499206936394570337430099688855003700754315201646952471307577214101612495160865927537555526771865629162318506939143819466114833608046639607194246654280984887074558403892657254553982276841135747454978566339335837267544842407971076335652717596128782288891647086758530229900032689985602492923826826443184903166804535521231696732819343756950987001011437654736638488906183277496312719319369097114882863412876135902519586242307390986827007360929238513178244285878076990680253728597606250393001971207154243700546856708641194994787686259899232313090816282655445708075641294305626896949890492764196939419860971022037715643884702466297408148150415136331441899323357517692220014521409965065043742725681876468351908401667189417923357348057799696034829140095616240696679925805965762784536271104809598114605580312517349565993243088333034888266883696496919618814750369500679122514050929833260255324972465238790555952403728396229444604227483991828804745178996969822240981556196742991491444701622118473900328228480852277392132209932434649663584797794367063804146069101279102739189825422584091773935206223890962972734151283631862914921104625644227095816224890853934953606046978484807172610245393452141250954394374072555043924861420284367777807384876219995283402878767463136617903133012884813653558033768036380315164653292771621306983936094497110919060284670219031904895832229074695720846770288188526963968282072451538703867342111282380253507263698651508154090374666268388542950138239845784721167966311787638390523398912066727151152881461669383035625148429858569955186550465411017895565266855617607300045931776253095725298681788612097257902154118707983707547495735956737254852874967637051039422882743863516623324551864475683026263126274732601070411313110580253528019148268777203286062067869810229523132009319065145532214684721287154988306943261462975780310765037504941272953021728173608039388041927227231864502907180080083601995743011649290531553537331302072293601466320078730881626014608183900320248126817839086434725886017057968045801677828671683094838124424143954531696383781871522815037865447282410923836906385836893765518410412953187891709155065360619709597311354161258409542919901172026684830841704866789841575998543678725321528218647892379071369399428228067976949724889819837313966263372400189944904102583991181150208714140991320233463288837523146610041513995945522956765303557556239290378507862243485821066599577438013065173160225029171040430601679395046054285845104878337512195043142166709697622713874948975676024951261354123942572636460810687845850469598464719654935965147551399299602453617642744090596799471064561290589451303378023145641627183389901137379416762328584434659714789472727116157807888179468391892094066797503312408004899626754338989684711877039589178877573697341836776038982954928262560006349814004583382031409070375724314390143251327268735531482902408518740220468490238718192099771786162761215947588445531666719213229108321520891476097399449258444890069237539513852908006767743994239263968601894318738810457351970178552251063406635995341399774798755342998134212452733349619974633046312355877022958704873884246927066383002724455979922879273741256322260780273940201243202553515045103153443403905491634772672914606592579561252561044677576528736362977312801296376867446116708474093800853550037891886733317874449819541356836046240113809540060660074572689199152013824610438818525544186436383535759881994592357100571155805893008504364482970278165388537817940532413471009974047714837194998265469162463299499952540641005225477434750389406462425704936748461223321951692864258935340059649021031809756419263325365228960863745321596349852573798847363217268673059626559739750982130549299644022389715973986592635521871160047170113102370578910488261053259287640463722522495843580607316605354216348241231644472403418989352016682266550020377760362537151767405955924413975595017668867325033710033790853374361623285781163115818715562256677180393856780728927449509455443152369041784552447522959486652890905373602627788861875240134911388995920983338750580048273958440701090931511088033578108017465904579014640948730443091136842502089137006811071397900798449752005743849956857638528468618438976429977292226296347951472007351738552808068803946738778824005189838993261233602785977675253328464152050036660760981098866389661108319905873361001027124686118951034368095603635381949723472262892035461519380992528256621626815106330805522492217702195739853343821934582255089044853884967589476578195867429645726409491105756375654030708253513727004508609134005726458776334593416395473411284183353430794097030540654380266826604933215946390921205133644216223854282227865018365389517364686287740610232448094153628606662792015176675036696087126175348487369286618767924676034362419087832028737222500125868588489125872736509072628084033779818530512698126453117300488243188818405188365906112248306013891563868663457216168101302879915874995407718664381306805902836784141823640438271923014312126691730289829334787270744885691330045760951415001361459209845617299940231173262132829177482441020862087625253387291994674780484485826003585771488823196324736869077787144627196245600784615949892876800304823920089996639978817395516162547945662128055648234949949332055884865112656705724038693748135286563538625982214962450521882007371759608767161656456107781040740437787506053612346015267650673791599553591945519236777294990586274758262858938849126410664026651323453054519624355562824062796303374537967999533264685189845796748368074058346742422587239684779369273115605593304826645280414883289563748038959081456847062290503977301142172066884986564677964360402135323452813988143269150937833876266113054198477017761994895905672166205321081474007515895445586096593283783157864948184018344440508539805334632298321924445117159030571767854157332494097358756453386196249555056649427136248096321895281156513348605394046294715214539058288925414103083309616181724748594389821341381585545259755790550021009505269191932438306291661638650556281616922675055391259474774858672261052584885378496877813712932024652347816007392456909726637848203460636676013675737903120354042878181785225999615522280940462447504418233324356195087307207893665994851259934121433388535266429488506719259297872422279224727770439174954413625819234493253395361580611088540711185303355080184508879204536160633696635423914112316477451356841343497729500497474953594159517956678726632761523560135711772273750523069710336081557945967502497786979943144636280442699336492005932962667357008353730651703724133607973508019253832387928790672786189908554844456714018315301342153371005059030688807281511390192046567217712275593285818265540689454079863535268635055291259743033980745175590162746821338163533429090189864227005491592263888662696950831924946961944798216055293468452701051218099140584113361897480321553971185542881091663638530239393417468516713845718596793072445075583434044650754929462719532769677887362853295740946549289207361529541659312374533169408311840896622834043503100456290013399843841383400547848136098889521876297362785534671949466415999291978654261826827241251717941296609749548167961465815171971822265386196469231209449863250993214484777406180175442794325678692801241527399806056133740811175916597350148834931928184818490477618907753598505899158986535076140140327099772960044851116467135677920548070377932401777731446328578543900602046922933465522347583318005938181868299373042514919451310405273528215770290499081705632056252515672652840524218640535736006544129896714757220583361558668909161529553535457750779343500387603169965699857945111278602940439959446886083797283435775784679361216339798009310815165072630099787886912190849373641035564141907980403653301012659205770040585258542518540818090142857124776597866803451133409896245074907785458194250643595869763084743917135761664347625101005298017842707554217343546983792461625384154131456392260760734639164748501125870935954470380310080688064250232396897011220843448336333478738627272305936288305305890969590240532860246590557231081012311531529813153366503458865066189133458593630657323477160704094407005507099269647303182709747385641098603006556861153248793450851307734190318191797412259525897931460371125616886575405748372111090940896996680958328349628685646745934302214531801016154944415641931582766725115419613951608257380872461710897615753993765040282713954996891100916845413701238850427125331966539286999564157501685037010172553602560575163328704719671595586836255135698058224433385427005168107732997294802466868317315630440222643873611901750367897843791080766937564463300347951717000535190045524319482116186521285016602137813910284075825447511286597821838675254661820008452872693171843036747701964495542378560073951570002039720945519290363035255497223125162516330553380893912579395558672098756972356117090184335587346015212476075379000495375069202422162554835645779354216586640837334825199577310161227122179091986710041676870305304042781790837460296310507109469277624566175409395225001636130640095266267253587228941799083666196686617554357799025823640729957013683375722892740475825064575722923491522147186408617451323176208563367327992698353006767214302832948215011196923859548004647885334514136581276812072935135263989202478539730776261607874947330619217433449880606996248884536319897387703849123879216681709818986976589492131007370211203862503010524711717872640009215044432150747631578768277426280473688735082204637963685824548517920944880594110026609093223867517127955566875290521796464232861647432351898083555416940575105192706754800375739254564712057593056994982107079357291118392406920252428628736442376217192050788933765940415863050517568248019834755764254227245940768052364962151725889152362815623164405699026550299689114293399158967368626012382127159468464523600270291686126754064974428469104432759054652117062898054395640066208015760324638976091687652070259479121781480383185321226036004538645610314021881694000893517059662464952009012441622401748664064691348282779001472793234239503359599693791911722901328674162544818953364452440175606197375107654694668402464523542301693289190215651974604497044846696544151556857979840018363120445490277245062781306577270461916922211937205994092179615938544512879339925756205070693346738837749220944646611841121273874266669681486907134415025023854101554910029238220622193404218314215911707375500548756929632734300902959797443085235909116982222099934267046376337955751104011107581171659307812898342276135739337640371819295225825904037853877977826006103195025662456897946282931916332658338526223594366050092560220903679919979681786714552686901952217153059559191025620669994243315315469672019883664401807427921442202362673413079059694404559771866548247524184320574649580711629404040036497860717778605361821589705398503343668773137573867799703512621946761045304628075921825828590465803944328141875070060702177436259153942596116903516884096269228986460410621870785252562788792344586407162278368895910777227055713361869746399006401704217689224152677440357433217974450733716310705713566833003134158434797050512392700018024756139845104389304053518885244394618104671015208467394854718109900721890849480342359322149733027906699342372776281667822738126407603904416836401397834668917474774757406828084754650334610606487757036960590815788624543820818039951064940609649089063809210080819405528468642001781382607904960195828412421491368894436388706706401943718923953203675205655527716861087730693615017386713128271408046554150918906147292373939178326106416625648710247974456204176237179248654376177828666854759776322683481373997175878956765059165394429764877168690533747875934043352114138140320573480912928664425525136736369749482649078045005366978833818906646168399822713030284363502936394843974491111547909900131969808155790176914392972343521127127685615858792337077962933610662670908674020018315944511916188657148013826254297740497353650565173728565141063216153046205094971039150113026721777748433110470037281715900610452113279537514059805640841307453890233024130748925857933438798792925970747494651153195282727372075371193616355688621613044602224969103163346818696804351746354862749450187157627668973142166887795508545091940832462334041939241598667778186720893541188355684663886153301741106686803234060704708213656331691031949277560676502332063999960030308349891650563718607437070113386669317044601090531163189413433343767336148563522111100673358720811635488293691060909297880224918419634102346895783301535892585682486406204258055389873483363923249954502311893711507160361457117426859639928550541602315315358607950999742199656507717429786737978736865444828000310583622084141792620008201000173535976120610408711256852158710855619806258876311773824881864051792015729664668088665014121836761784881290504700238486435709636432447711909307340117735738275498591677514804709395868104368918604814697950553487625963714501258907074119777378961857765458031975797228290156080051151490720568580161822274601860687894859964806138162407693789445429849338199128458551859920943560210304838301221138762983456545090046061235235442153954692696139593499913423809439459972836870834979691627306685606902837765296751735242192480527597035413958509748242696567388353249595323822211734225377204542990119064039473189686040044600501183630947816549824269220868995825846017218653775928769272236378897067728631932764775266486840266722429346313900567167100863759287960357173271290609997823379643430700487778593086002925033330911892993530019168804894715714683827335548989496474500528365274526684206211969948008064668819179239536727848105306015998899859316057814080722391068531394487392220622027833223573743410735062562884586596053577351995197128226387011962829671343185861038129704291445646042415349070426082768504986799763123270439225438724078527902322288122192690607667622990545402077532279407519384493784534452451653178467743299192008109880754118508690539972553149112422051158600577063559546109801497514518954926636998539811448861504096895169402807108679224557847991483537776433580247978491889236221944394136295902053253276565404203980551837579330131767067483317479032174416269060820670301316922646785942699681800796187239681790355648093807387253261878786378742164247941495905420706768383612723334686139481497056115404025127308017404413142986357053140718983414472933113136042567812279036364001658485787528455955549456745876201935879258899140504418092551092914811795781002266723278890159456298474264287824387197480095216667622528911015282477660297076552937461090954753776894462013041211827468545572140899873140699227088041084236625216669769708202932680795175545806026464173957734027897344765265375059428812655727519213720884242990590408644222755848838917964095989368391876637446647610649444890021704262668392967470601849180607852938304995554968003283221138355032134457944412949772647083266762915017047630665227889568760890456984907634588657287767272375161514873420204886410383630675895583355626355843339194939714052268328918427036460802739204884404439385182100907969698043955642702697229047373970935373726203837639587582942486795460458539079365422639306996504117578698479141813162697618125882690454966481340886038572133587129808224028858621984818178165069098608525380655962600641874307694908618466170933154689019245232927420609156033263041084946256275993152123621875097634764797038165573463791048723836710356975452106415234501540623440241849390775846386682793642057280475625605641358149170790736829777535936095739912547665887483103524316846339596843777703918062491992904022346403679642598189160998324460820387140532686774461763334041350246998593391440035656073019776431663821571695054134577257575745350726940918305044218206968345431962922681589231481664265862040934750853758961487189579268346081510027633499697327532929702803797745527840293481276035126469329120941419856433980365622650831932069894864254931365575634125838620094818004404685664480967837482405175412516545874406563728355072071904629735174803393291132087898313519735478313968841205464825101929904528886698911950181682030270685026560286667644849554785248927787089833022697769710384172425995833609229094180994691942583245103763290475929430907264858089639695356683507726250507160085987263235262920687663142793470949041839573248338330501540015850852299302111207461587856848419558229919375720254518746205972206873326727176689880132847442316878088268912692962910334683876043271048116347163338905635791145062350380496617271796093365074513866664654680523458960377180623114072869131319924315193641534953281262973032765312471304960012249776106604574882599368141533898583381729297327417116874114620754778290842791780143683974708993322260867101719893660439998374337169636609350232392716450590569067145031978066173368266683106897991686473120209321167304106057391717724994569769101590846877299715138072664342484360647021100853140066370828365517204921406509505658182599306994429570259745714737559950395880723072531588539025906260155745094880367038362611332915909027946976219802796418014570975857551772193602202630760086901683604170236239888705311108635128489114327969735240477804226454360965419319817160061203194643424032572872612408721779943030617234785848106329021540501498224229108236135300574834492560312007339158921119510690030887681163542868823974761931178742212281009840641121915524555002405245646994808233629867458729158059160946394600936259548077361632180044286353779845038391885082196121535803201025291783030104639261670578070940835813163359969776114389012264963756057865797742002118089942315184454238811712806081797416010492062728788751571116169391977282140548105206095734387485570662180667747235065170533412454629455290494230364279597392688264967163761660054586952824505362648584209579738025621700762484386043821745362884122465590752476180718104384089553488613944349215831515803120996638367230477374710217278564541212178199992889668905385299367475025352798934559842093840348311477099593605344926804859476505429843295020624471902258280561006112695072953447450293987651480127348557177118628595723944848874582031580302179438225136236822880585302174549825893696954454770179921557135359924897960448572595465643501810427836792992723647824507013092628581355578285393473948897921658117806789422359794568287140106113343878512557622197104541074835948264156592072822838651941432297308613513891059021039797383705397028166395101256582539289125462953716869858389051777495584523584871232950078121186414473070431536005861760371364098640021049172801176551789813474399759476243360815986312454431866098425002265921126189438747859153850692205261443293124179501022548836716962494652882384166109447515544994932887876976468096056994098950457918255703784848059027945556314323098334063090142534027981253556762597198982918745801019947890894639359536721847625225146998130178390999107283294861470855610407484523977731481354237330403078072106491067036030619024630666218706860106398371430306184517589731250788491067085715841927209495606790994865991373207703975556237693262762011599341736751530785615659033562548705444236064782425656286504293555618122488396443588520519000891847643191581300929716118749740642158502964383345868140196687369643814925983785659494981150801047170700927936495507366638640742589883800629213556019641016368532118025131080777494318108390899056334033153274464663423616897988279186711333334477769373874144267489545182668171738792912809922794955937014983372722317821096914480249609191055260943844380990619701634995659935957344368241302894073724144212911570550241218522598089574224806298363571363136431491477844767682822643438191588639268887400175621843107566956179046136073911504224973195770479312351902381412157088106510544781706376791036965144465922097609352237782138891343015024354257983405048164417991604642466828591392093861759555454543644499998703896589031550583940610166616498172621618230708668248057629585329384136357820683213962155199862815700581008469133977875623252008779485849792060894815192562430880450525378083588377403706087062397609451865978819344294397093311813475845285507908733671378654255178520098065610809364679689795025968641222868705083460585028425177013337603181086448401647969668155910962035263119905390074558760243564529056018638254337295167524140725569238074775723569506501032313662882010111257820810796676099510652324320516151474020097827465576517991439816321334338769493601263679580306994785995054393848307862840429985337322499315733813905880615737141923679810812960194660191639929178733357884868725599041083638774540354461507295907831850041290065200476772459125210576801434887984044195618773872268079728266575889058239109081676693698272692116780522866328045379936355470535878230774454067768465220919529336345255641205451991665207832602796631503305577507894359048149383231799430533183305063072471326040524379131581388669764900493462698076199801275232790268848830853785426912435790982724185624801760913913719811685450194172285898530129617821939924849352690523908478209176949106117560487211865179006767212962446272584037560596810656784739017671103231707925390480091916087690578680336802153803702131499836429874942089305435916933442462527860905950391703066428963646061363486528152597644778639854371934274313337583643347634072565061973666972184586622963758100526911123002127707359810586105917840261981984634884022225096562451082212835309848107979565372205943464294865135200138641365001385408897415638471725924429475437594477170666121140551617727377790282828080784158211815907922880061826435981645712339960860397735337129375721596757266368705279379983056422749612531030685329674520380192138827071045394864131640715816708174942005599811656966369758298928763479692049538887811710054672776379472587932835039063144827878109755836138060906955273376605337728622395186974925508205485929008229689033546810199952716458514050027384471177548603585220039355908106243792181481159603458612076011616358114544371346631461447650761167687107160658494786074521602796205684605164881627205622894798005357545149372947715308374692002090596210123627747164423099644294619742220452672015169995259422926354470693386498124850889465171391920794393863416476421036915340343095211167446730120862395800574044201762626868843306276720172667665473635159337713444364004760342677304091703084507874967765042866757937839026691003366433371087284963018835813057593803625970770244481491537243268489057621036687139154597691711342370900941439079695869843028797296201499525929462970928938497712771684981140528357097826155523788266705131540625995035098131068003329680469612195218835139352219943578726825884720138967504288631236468471988743806734478668868517532578352781813180846112514697671280434153952584848196736873880460113317329535867744174726690492243377682494226099487739370752805894058974321789789283736584041693540909245843001027904859894005152941436389569374744793307661835858540684551358363933673654394095416199022631079539813745928500950885795944841286495280103053920108746156605504997586977123834172832800934012098193608656243962651700278487579026772220647918302508489499925317057326785218320892883770024683190249428968902715700750817297238774081985697823467392684725794046351774953103658946467006383513793392813787241258593923715207547970750381772239025715852776526122902360011933757205098795212124246469300746281146753715802333766812061741943408168802844124367837785695453943770388446540813531245414601048010134420792794283399567820562313370785067100816177657800090957314840271240722235285152365183710003682887672342418752266171843038973048157147407159638456640865753281509775489002689406893814729291151562025614823521283996659310210921604603634584031578034259800373614763211760290778183500211024002072227880893409608663808850570314385943605678954237286368276850336828485647444392602731777736655073547496212880727435402054042354013029657190393474133018310409694681949550498424185999537350876146007494136350453163857186619204785105848752577122326487145113683631514113786787789819129741287450306935582952660706192713013888224167858020284207197351658508115232762737621348390920017503254816404388546889491002531729007697808534893698373638267927522061720542768519757200321042299980190379643453034639576961144289355700729807492160745068126512791786331572264957034466242564026214236618703703161734463004765556208600200774152089857821293731570220751417031180847996519241223148847916640026199166529163294147959960365084671189190099747302991674529234011335118414188549159274143278050881826998978737787478090353465582164852882505677753202760227798992801836919582590107624043932973614893029612416372295437389813653015241573455838478505602871159529203621837801363487188380572790228960790409730477067443206427434448594406895853915540582527773352427519454938971842364237292615634277675010836622781439423421126559875220044165446059299532785673363225420164200095066914153836344344326417705194573194848507110354768868192399517461042909017486206023613221518772792086086071049906118395981009448052667563211448370489413428337057780300507320943682940141985482080194087465014048594045727458931651572636434260654962509157062812296408088168106345054347483603039989806022246223304336166548382121671972975198309558313185805712864155002176789115268823335577589093860538453719206452688823523539347789673486880341760532688527147672495568572482100136234198570973902813492893767776654981130216580895214419098207908842285455785980550109566440532202935484172338543835940536849621086246316024001202134026437032150353224706784341052713428522136044149473859412904161169634156509989479732984699615134502062241964564575237254612587635177945987613842594615561160727828424670612314134382726961882293458684872723208068587900447771069930442370079815393110271103411143161290893180747818460273814113862961197915310536717764675634111705595145841889605052132767088390255939903292570282407192063868189556018819644049003018905685545498960549112794318205314149267379423016178111128050970067988108533097076758328333668637529062198131920359081755786216950106714210713993131071404622002828019677733429517059490406581819700691084298830361637650897333379855149072532772769986204941381113887349533205130605606883169931831443991840349357305107049070824874815043051498257280954718240780096447934769179359353533959383573976761247947226418137727380658750832676494966538955822638483505981546893424253106520317418127292719476906198875888410171999874398386424065395373207981533856585870152040568038647206416856608356718625446459596622022937688296532533026626407868988322969689633090991400889818736907720875274389571356870870323252642483090538716686202270593855406525917084587852704028651112035946881286399369719410040805065742930330683583778649222521385704788053822259962957935970762968212248178222502636034996601434412600808524349619619504477365365846422976545402280281100690869493931297770332513501534986027228062772358295308576843554386028832986816878910392274981285765929462769072654510471560180848702810923163318091732144459536238303595974358887678161222243906546560902658283828362791353330265725818365773646257043848928998507398901100232137636938544342688754508470126842032745543316446327270496199202388880477987588220297275125420494640388154724460897332902496198610282457992664687197866604531895066194191009367710714747921316785825538705076680391771966558500715185111595698669644579297496022708982294386626902903077112698178388392986113188204056512202499554000856986582076068541895336360902896655491312811009431568716100659196405605058762315585745352888580666646587662620827788305314990967132933045493656484259821844970831446629540160056443713232960729678028842210930067875258534127126251521039798906264106989214107336353275624679296349599033012012116857019323256030323749894886119738573466243825768826907427906354162073202560009136323168437500805594443466369908208869217491737242782680347935992459632254465105226315501464871409662656690772057369459494660789387210529491034243797601472481821358235516887326080725772642569157155763249195565291936651773115489798623376831550871256244084365099098861975857992701985942290296001443543545664499730410404542788500949803677020443180479906832782312765251085176708191617957014580680837563963477996396456002350559266739104772408260117387751997272619959389200950854781801250364568896669256061017691789674089616936841340989410347021441621079191118567725506301818755320317126279594003250723907881380555355654704030815733370035914856628779529216661404076447763080625975139154965009218229953922153244679337983597938160695905986289958209839560224421267557668821203544653813018428723429134030435585546637913910841402005202465095321818992990134801623174962647172333086912938456140789050717148864782063218644736719143040455658909384109420844517676818570436727266570674420397382786254681787512413177852447979504316772010782235496100338094186413919384253224513158371308306504368463214168066681661120716173891567080526450490006973190475071794501689207842749334823690473903302246488171628288291663283411409513697701608205678649110273203536032988451914368874615817384857974882916196126197115507768721373905690370171360430842655339209343761719167742421595515039915981228723775931409157037510551164954054699271495869498148750423323109617902284395088968494415536444811430226278279133623734613010491087041435298365434995233481728510926991510164157269449965220123470373236316433677351687228319116768327088231592489899961857888888624802162712208526288540459213876980764452575673157460722358538398699995440683098919317781890498325075938255563346104729781161568566214823287176025594340988919211256546541376928525362692515252942067484166746160166085450619839560694182461993570270957979694422307039711335878660105060564504890558248217084000486378690233180390655005296973852021893675810729986796016205230439269463073344591811095060532617642679472262750765745561885119817593568119631150640635210625457755543208597289576865817309928595572934450581922105250069523217529410694533644975298072588201175713299084314259144804473797108676767026180285378672012285916724347947214040373534424475863406880655270936315831635425103156485646508591015702459185521207873296521361054696133665158823051450357523425111290325393733206052523756251765850328118447478852266441417733905639866970022549471402579442760178650297945507682297860549835930439693912602538317990004600183100058182740197174739447948713649110227377529753212635534984167123185708290920670857658648337996683389618950559742874453507688665038631670113508503254116414737718011800020098055213986137832444165189717249938431942038404012875275630641914246734845052737157647929759129274684174039657424949767929830158355102760781805637709745650447040050521636301183741556604695029554615674311600334759428098242751855146568254483853732315523741671918291743409828432486776862498536045310548121821858084582718223370860238844737104399336723106090911533885496772425904054502139171165061959729972726057783834648884499553185926528479121516106035079476430715508498350969549409407702145153621874211208452865818368612313043133171834615522109488996098112879590104336690156971537586899768226641699552015808907798792337012486424852206461652660796610312042976394729475730845844969457392361470556763258544335155986874300073308485325876180951273746453585215669522152547380054614298807791598819904087536706514220827823982890880447132371824629124543168068541679682208096258386697335437989797082521726057614834877385268267655667341904485471462545755036267876911935113342522728494078544125390761063859817646923607417785785647437114381444879631394916390528294850768156764278689501294546432240249365968217167464751188289492379154391468581138098720979345227081272347944811976011442867510168547117200336279301464371352934084923701124286269582904473882873037008228227887702429501210071143877163811647117402543595029548696530074548817565618106627103484106412500638554198655906100863408490680532890471628413569818736297114699881043213102657276779405875143570551232108084884081046822686078442487526469118231535850255903283470471332036206092009349167540288708717354163459242079784838687786394094029980350601822291202138608434437915778382187688486568165757349078412388276661047559572315389050652764089414694317927868460857816566718788914164098503788215162293655349619614823120328486142846291271030374118862207554083378324173449080957802475577241463428711148243946867438369255109874070474404863420724098665841914076478244827718285017193136608908296554979801226995023412413419075122699883017105379737483880924676017902944034487886116614774514695580784854191353310944430753831444261984300396333534092388521226656540931733124213963733808269149384282456267763997285946355336713465575644048189873084469601400496707903488033897430403250434473192503347619993453820742815750330789766061483945825021408092937508614427392344724296165343475512167313934289001972017309530912490471551962726715439234215348375879521358025871988737243621752587462233091566722237756206247172773711959232226309098174657679081238833982328735455625395227594618821492578783070540278093963077259673873432222836705826471217014618609346385069017245562519157215182399357090303735802361224012423338835929701648822116284965244009369245574150128796714854208537237271364754829736450123496215214183470049251197857855334933293892236113181246125268415136819904220557254026342666541502910082187674518807835237336625459408883039260558252838569735411948549435511742317580240723853508360449643825313487883359095831147632947367631792713905537262211496865015121265383056945127199161526559167922906908721409945475824072947406944096840808723861928830889446566918055982104578765132436812064352125474056763536934735939045172937773012464911250977577848900917301563762031273112923937931073790857684530295676085221548720258961083970093842381532772465974391756317447768683343135305756962684784729066423254381802465763945344986309939506731020982807688365054638279037557771409108322462405650756640047733427717848635774587750084238283749020355367138923443287312724166687272403672763118792747623808102167464968717158078610846302308245615493785251706190247680302777573927813208058170132517729186177734731906563825392949178314795749509092435621636736108578991109901424839412154631712757145811802970786299193006598562840897544685028653302035757353443112665229795374749996125907846801329606946002486252566993624178771662303262822563484231735637501574880318556804287163143082091007026202392163069807542534470894635395386375093455196616547626837954430676041711093679194858144994818293355914486543200689301072025579982654712444620602976374675810963266161855321749083177198031764565717995215396365707773156671963565631706897763364873137433108489644861013246145605359421704957630687655314120401723378103167037275910114041760003392320456652594545813618869797099715490148818746891861671215367667598185826983706808500579580685434175196390304930885011403103408993925108151021147329228380137982497021105644937987200233869247385185769114276325546536601281842529115833004025379636138230926698623708429449128416740778687524950112484883261827971630409964198587762072635627523976457571547330990427277717903464731387865498519818319734616981487601605053704210097134764618343101436461774984765284817108873431532616456626825923871990254130167224234487486524460820086518192804169828729071219996667739057129440830711659155098028640923363309499901631252043581012564278924954731585054715856737062554489159467011868795021488548233710822224770972485194600047004708957360618468532050543008738552082395996596015172942030289132616201705973941172270739195121487942981010950760072047220166120075475201518472775666193183685523634585291813208900268781614029375667526894472430708998649133401345916761835446908951249029738043331019783290965879098018836306086245392840999328802434239867352649188314992358087934457678265158016913575597690179125872213413847009483502284651459928829957662624730289656045524528508315878130757136056575233631478392367868365723455688090381135219700020344205314035753353860879820864237200073659655601524810838311929227771581581054520272523451633250223659012810529237900503281720883576070961828489873754909968978466157208492546615862703205655799238123684229775530800191382591052911161796749078496052461771687411281215569111896152339732606663431368220353405492224406116939412100591198314958445781228083660156808757477686038634997523389359683640229159615409417840890189878821010848108906726810647592494545864600336500928971539532141422225123216663094191183797253336762527963332774975841721359043223512745758326689072742192736949579684873932514807730545117470546171318509993208912847041170956926237182546349297809730029454871185174886933233327255679326883710138017839099739824134061897853519531649401037820358531068793189281601137037427521871909872312835542917035179735969385945396423223902348677894584682046291616813084978008502959557915299105131783089661818137144842885101422315160946049426212246501625459758896105549547786636317861513129048068807259792879534890371242499779808477414771191528201216596973363673267413083274519407505734971305203045264489516545881231817559641394229963802738450670755819157988907073457555080466490424797439515362078111571007187684964514098360407681848217676488155526906834297157719595875443084868867028572495934661157375604399126618837117239566460522283866029413078566273819252681145819070359168138960697911268559968444679758498304022697972021397097825455656896373246877728827384421069354220456900190680905823109637509053623448413100841783409946846648776964264185241422015625128315138071734483078480272030967442811410364466749415022042942361943931292936352780291828961678590892311311720469629592588450973481921971496598385331688076111060598044604355473125627946994003750760167878824730056875668625557435794326279507021306350852038701231647868908553825522740539567221425337868400997186749191493707646057752535691211155717080845176330385830047490070703503036691577443297867833212160939282608825658700727239099230647423788713775032612473902743936468875556593107117179973780947858315229583876161654260897563301799574034604835993035047739158379920064442557818538240732916576666240597472773159110620523671653251772268375561992816221960657109558258661376748948687261392903328049602656251680333371241497214678610971497402989050064483339889978595130107604232731970000403475837611268891840698957372324735185380805013344233939352582381142488621616759575058228081809548596125294738218628957186321973575997751932417600371688694284718888383881625032960020038593029230250750984638643344561909699941452754350747311146868647993624994559392616006785322796319758375954935207944813652104596771846662613036230939300093959149807046575388840720574798219902597064779653459032446218775837214020733530620530960521513565310604679342865485789240896503869528303631044554802116677480860954820157537934809629474859728602593770414543073757026432986914985134657679428139899832353265490267568590211654824965029654272219280625506141181871709881896662672814551899826791439082422350936659333529125491128764321144442049388833557181516774398674912895812836474147454976473834869842557309114014202368854977977252443514319847020974930998039756470487360630643304108006190083126384459354116256036103433876466822200174588456177607355807933631058480770597184536809125656217801936830464109147778030078638243889009271357688294850106068107942078746844046184381590876403388318612895207877597332666232989729693222497931238060227946116466093547696071529424487520334878630026127346346111244775224293388365939441419064300609253623957585495961460850099303372774829486580957574817525158728891116753756125239793554328178345288873868031197224672687550534037099940666340255702632409559681338536073146924470550757266658478662637903196198484462566438479279303177799172028026806848950755553424395353111718703954123936234976275011098863166405077860395783838984173460354397870746128115284040546271749691581499532529623929824907116679424891900144469787331435676716729743535820862772400512694397703047741718075983127978785711878160040577169570934849556473973208856417241958336754852656359731308553198454539346624421699804254502833581201759726396687937412021347724240434276298587017377246012721768214320218685524945136467617010051138037459761149387507906723039238687897802613491913305949876401995701468819309278189130116160272119855739633075789657709186757203010039336617932007358610828205171345473942146393158663743740444380393615657421523065924809484453988452208585311281522932958823437389117975222751597804935360999670009913538532352462987275897688954224765526079951761791315695676825416443153996061921711145427564628947563694599926971755416420989718484719244539355424472289960347990530715966017152303610366764572019291449061363956721063641469391100113162283122639127981924918954239147239730566209644131444324204982717484406492637335618479565900839406261051063537147862465931267447955755970095386411133663188246174577731780423875033733779260885285934323796783257107397054853462821436007861202657378471687425519352263903109093439294954584947911552339913348633286187040078304320896689663841809869592968940325149339763109317095802025392454180877730008802089266764501879179100558614830738895340163176411186798193336200916028471512941570481983647898789870117302773718135501603206609928821376800685695990376770089096518777631638149365428528555417563906994987480936632566540650356644915348221219573971889166895990590659807875574520594894428376657680676891627856845984513897262601813244757479781917517602910309122007405476235223772026964009302068719065584056590299553292053812583255860290415741718340560163931544968948087479882122159050753250188483259866032568091125839559447411947031180919400995734011819273525821879032470845310774118162580831032586283462345211962090229571085187375508210031440588019776303556858045634461938567372305480330090536007217869429421089074072617692141857529471403557921157884975643177117978861934379397175178080704950291154243455120969129190744261008997420233538728409983070724205900409536965602192189914040820949915407458481835308935951952886602346035943468350486191749214891019079277354413484017721335988045573259291853496779535100812858537146711807751844624627234772277723616994360521366182233645298658681393498749407649139046993093224576390832053237090158095562700052055584845709600280783073842111363091440688737101212564987160415055805736541616384020973929968362212883414699969606138290710147633050436171470062557777093913385316612585755398530688712888114856305127210346189939059553551759992057966476611921653009200622128397461791701303457497236580241565599905833231285164900131045618276550227664938457236058387144009007614206590393115132448296020426710861954802869938466914379776762757003252570192274301290140671729730330542973446453914705006416627853913573560006268613560077300880206649400632888043957694476929541355641838451093188339248113636663321574584914571630231146201321001311729331305504685632564887121300276109627643077665171740506413369062522678346011812844082336895682662133545424041477381473619111129046542931152595484259431313000119552321488511476356008573106137943096709177108087839908323600843970299950253092645688355519580244432222766365374398183528639998929826094106954167656760728404421575097538917951904091215475510238414110985202741598601598462628587220938011101402353598018852559832873417545167263760114991450228322638135080095315741544138354107413064342691529308534360836580394500359719147797671818221823085584574817675540210253980934292968504505631578776929160313431892352735999077126793172492305418323464566396405076340243457456463802052597520356945083300996443730341186302613291434384255375973125296305391728182320906108353486472264587786357857266125015904580835273987783584015372536953972442861950167827426084863303045134574467423299694284782501165109045000422442750928494078301985284497653832486050765417926339897988871899103540834718581541776116391106405632848715690554951148866070482945771502377005537882378018210851442911362470894771321097229310934671755223417818534080605112774566058370668080982235134636258478356822692756352062979559812394504181814859458557481533929101589194691165676705790374099433860526793515996985750627659992134080457042758185995395481712666682888855946410210140531375510068436313102395136509562836479000849187513547966245278041314662477555989933598197869751424944542503134033581847461263926317859302877832569891193016583135425402651516528436468216668971444715575797255869115765906890653862948408391213210437522376715791120040452821399700209247510536201042687349888680034782377318244795542318237000563914300084052138788811875403570991111120978418631363150636157927487201119068241320073887515321944309270644973702106685393233432926869317262877583799900712694933781143248049354052522028354903741913648128798277325744047389523189705789349132783670153867537127259508479078895999992237353735143818412848550758414546989921334421911968275381397852897210947617556576240954792276138571016073818557058358147419157122170013662331601764561237284434351361528044789995124612858704670869462569066171738232916658342695861209106749424529551112607029368675950210510206903058318551429982302457987143441657389424872184522201325570074221614303534027310839936332616530842447880801769591631342997096292680130841569315697057664815693665252893893507322804282290058834385540051699646211551265921550536686622353104386332278518412618094843649687476737784290185095469935274630379051944639687119654166466783155208358919236594456550295068186755850805600709432936019761422341481960430868900191682913824876157680782251438277700447052888659280727472080363025073448216037347076639878163914123378527771779709762799729420428004505910494280617654391829915728765375848323875996559761356064530203497670991484346970443159038147058135289776762470098379255325301975642762239474864432567776257140362699559260860471908611407846592931776337203199897254608897790180422517284024066707146146725422115937310481968951055307117518218580038082425773697733964870964208772786103919585903189713834798071018466680671399585922981058582003122667292735143182876050394194287526976307836991073766031821435410280076668404348547165609700337430266722133137142429787639465498344002623942166128644554918381294893752958125323973777342043281184642617037327078119551661985208997426555264999022819279543210181919175350511459296842129443668021659066125704738762004575625646176231819124887640549455154168030695368650981166999315784669491218021466323585637205634743604387897911585569922413276333278252752611389274910938986446152830376540529066606891366726611061750742631586190750271963462721609267384033676694594839194486095217088362875202941999927210267128999626433788139588324067647899496360190772716312920481941344464683665319980960172713104656337108436347312803932959605138029114720141444178455830232411139979892142658789660732976650651583239494453437929071371977894998186439138789378387943129612876788316545620618385664049458992217510602208554346995966142115832158266561124447224998787740472018643988148238035571798337415639032440782467280329560906677736761196658658032235994510058235971526303411487523548914664155735396130358080784366187364859097864348111520316498145731336336215389930856022742109259311248633509980780884458835532918692880210867577618769821728655447067096249442244914778652706623061150705672215193555164112798836106377923341567462633560516241399983216730163756743734681476406446476818217125480834411936201636326357045816775213540267076600149491864350864891728109947951419075738987341084050798308713287018540749107067517419922040256422657017638088300529454229629146284354090932218454680566106391592287591007893763642307176184631979704627014916890481491045552226467530964692049031700256727230852841291731494843940443622215450696775931577785359857552652138342772607826092640648187273241619669206742830205729811776105848641816363450441027725117619015601475524195545648642370052318795178243376519929177836064924933249997516436980138774054503514053963614095054507710746675731454680788699101231399077080974527067583282247179111649217338220159798825591310281062503973117919911808993503449334869392133143746609332395866556715755989586128114294310419114751290694907972761730348876482712352606170323240095706985627273209125604385759741104492540314551053027047741217163982936888097319508590649458797629045100508732918683030389718989780316442998167156444705875363096161131529823578047845009696574123228006884745870525162629292200815515318728677403617728789829865890190701441516992067959957017641585479366458435929057890105671448821276787327912273362444439671260035885199895341339296698279620103777624116411786651673508364630412447393879541038838381588465039056244461697581328226279593190874599586250964847303031846107667708246657088869880445545074711188357094085942967145910931540125195546586540923591063147663360378663348597307174616136925307878853732064443555994724786592427608717052848068432252516388586686860651309037860947002245366055860540872061520984317085455098589518976237883862056850977962163921817380688390211317404591161512499659835918956491106956170583948947026187514141433783255563240888182752743841895593543455674731891256966300157637493694090195209953546164912179350149921513354149520810416338124229644670627230067198980752138008169487066927518221870645697866200412270266513384310382911300086175160770400025891031062394462672123826554226508833809364959355483793163987694399423204321374654487757680820701472424161429303525632809328539269769193737915752310123701690700524305494546716954488285599650478440872769034928030394609978297957327592193858799319334751612568122823355475274876728783825670403851633238657936109970534466626734006550830692664248861947492689277181558826151424336462197938370252087465685764269042058800214750651724136396878202291152276528003951984089994852185661954612996793509666820657108042947928697882035694644140322798236769294748613339581259982849528582395351024043324212184284726108119344738154155895844850953292825786366461770480985360403787090604395786565926030981333605370838962306412777689920008457213460537401171750585620292310167471359459719412086203301022273922723190202621885396312105104018154155697793000145802726462833614577662524718818712901186416461193803244698045402268941441862786748527141458535007339151155506109049264038152218421149105173956642805946619157143584804030760208324553295129175263926848219455929017613439004159699953943216251932408077557235543836794700655504977710990122432258153240895812811987679587104655325980158862462481218288721368028957206873268337966557239936548263420569574101849883461563282525749452013826826540774285026992168819302645624505965062158829179123541253054341528494116927833510636430398288151202894650884352329322385467603349295910356258704184314586631603135314684795577589080116486117200494772651058452549386205707885021249263525419589717028674454651374953286796527808157754756772463416065442481170805014308478192129064173047555485657391124974879031237131503876128856465787265041685503664629215067125240637576483071005479028374068391387863151676382792371791915919537823090886166052229267925790604066554363359793029130392367412359381360630173967111718922332603481144835566599030986281946960390794380645950947951973680492113811731535826362982929760124239631686509465198693216441277435931041066700294214323548103708622200275111270613456072704368843634304462317773237184931106604015958746894939075269533456941450961041878731306909951769774146687869220798294643121602607255387893891368875774484633440601503903048911925036619862023596509197473002197043195108039944085896897983305387619773324621639372877670839871553581934413804504222996208061270056455173332461351242798406027010166461617825348910102511033676293911054198560572904659769946510256414682829512260818291025103399220900871065093876860984744542312251174649722997056374652792154157031205518311521194817073481689261742207422540387805295798191906036517668351092304756033747438525328709534299448980898559899567099468620077778597252707710774042367424572187886303285965882905459714383105288388379338377683459077569606868016499836118756032057060853767326901593189923439110671748476637374243534038342599922532650290715724441232224672159293754665277274119812893371186211055264427249067617408582329442571231683542131653987505418655897725372186910412591998769519999530096052620564949393803510540852621434963537252594889524205363846674116835666210624696440414511355374583144470040544975451447058885214575783282761390383940719162627137412265292100714169945959302618863714195508651957808486455542890313815231812807039833482352940611849475942712076767820101530494042946897322646856685355619465353626261414377899702762186336361208286667702168972528084634150729648806359784980966051316389777274100711296779925282256441449177158269793403113694798677487555715714371766810257496298608262769929501184831506391181629486603788442943334181670253040409983446358946802221950554103545760711866881687679089082662809278165021487448163770440195089168285998361458356821550988521444306682317101538838285723200897418215067447084723541182481622292410800801152450699605212984933284318100629383594955049123332436371652239894818573594554884836088232955000795242534552392097360734696926424414365889722421693945916455154919192715214511484598487846914319740632460306522572248816835016486750032009080834768330551319879284278570920929308463050153192712183540664865275797014859853593210940317450394610595840610079615007578241477360214360220406215017909051058856022938728164959144476526873893792775407723219391211526600405920923899044853998942755306105105935968451768591833000787781868014744243009715313900055620152662114242400801296646232850564641565754347531862801427915027898309659299873090190091435419952340929113668276592765936672885091282704424427642039255055842565094133025765820885586044164649218858055417272478019150161406545823005528635872447699982802723602522553818577726121517735107074452967411227552113005885319600373971490984650546401038799176120754450706329806497318475145615988608645435320459371065035752981255906797852182340316544468058589919625478400993603772349007067733226288286187951686071204135982101509418740265532182814204771689967229245838183743283892465528226797286167717576992968979741432207956352204066291195715828348490423988411769791787643362796552429583600397715311418501688778294812681862738757728693848460398483138245894018872098420692870640827693005230791967806827641905911083626242962588225877569902051427019246144639872645809206561546789062240003434124588051684131211750665760104769474393937112304505380245576403080562000680743091867637507493317248649304608492539215299805428990509027676084032802339512082698955423012005815484660653293618893698969299401614741828571644866744727855479029487712897197068827214827450603144842223501102484383632889971637652134714340960285403114857177862864079091025925910883149485542703918697646317759611725879186466461948439303107063658984882690926975075880161983247899991158805655990878621220796202767993635567382737866604837533921382079064828892326149442122204922120918371206084617016528845740353957166877161705416915499604126661659443614005616923762934709653879291707646504574591638080022056328959737198850932854434779343615305430400636341665157465773256309661176135029216230356963269667459048572983401251733354180573118151141975108113442369980897920750153805077188275222292204038499024745518610780859832037646748408376633072606529864815195472761986791439232200214979272128327552572798246573575327402160818724888714372026149601483314100363518722537622149200402117502354626252798159457143063100845564420172099773080823040632708389206633791954594963897309395302860921214625989688351025403511349208091876879047729880725303423582698541047221763379578465401638810980253198736376877245677206448007625840924654654313534681711245494727580282420425599434140768840511423167306474760792856446701676618618071663093360146747287914799444280743104720897629868487914642634767568528965046698884765554435181532524690786762246891786318719704694206177619303234541547526892774312366158953794051476855507789672032352462293155134348860443392102529693425721747595282854516354676941860629520252293224346940112933888361844765842534105013071247999937639406267754806608331861846026373353358201886959285741850254681018001371914139362888331267546301935673883046166821299264769791227043676672362193801239842704537012922276860840701850241652855701352147309857242846796680978538693036520121210724197784213795415746327819932038074690524957346703214095314451198280833249393811780510662900019623153078349912319869261271239170268418982810945421407222785682281608534887897489638501908338250674041178600731703729912535915210672780014171522737715216518151572197499945801895331146013370416164104925057068447489401089296355344288615301558871824896254219991810194744648308792178875161898728434170773580227117134396300030387893287942719161649589594148161129283066876550650646129464351214334693121983504106580604137028377109453199312296395554437548964753629544776233878216366381849743955125531019802676617155246340660909627917860192611778475079120800383168224094568213979087977461502452773071897538715688068671323694655686936816150821998474572788646931651189709484244209299830136291783102264838694738504381983031254210989329666652045429502446109327334869551001074284663691267473946265252060393627241337269019871133834256620897926441750397753157658838687986857459778257697268361717837682492006471038495476378630248834603345036632578439605112511690218196176766052668411050662885312880018449807169155178016956653359308592521645321900821570750860709507477311557093590033602377635777342268277965523365220930189374645469010383012641310841588158630240231126524546222253491680854180740296304784887673955613469741438854062191939683440943778706040382348776037632177565538465338155213081149723181525105836555139349112051853907350711872942359337321720365361103309128040346609633245378154593057413388142769850938914109406781710779744964568738582388855984873865828494066057157273929539061846456912903394212730676366517209029952591756093457826866822199159408760145525302501251993517055094278735625196063294490437465851598075859345466969923380100950719071003190612834124660196924996196422959452068676126049554111553987128045672367855776066852485421552950317513544685569579074333549611555487039245245308737653940545295817804005786545156102456555444498903346431656979123127502300863055270915543887200035613572380420615472405636769901370164394134993735179487679967409672037800397965698162687582385637631595679997890900888337715023755310247542028466218767106510518088732557417788428958812374789721374878040312294781399267888674294241325070478692200828150850611624359637275152234122041948904286557290271544088557081782117514409327749290001345154315728213305385705662289517933348744426961341701134701309812184884856951422428522087551243782256502768735704750274502718195316843869307455178007704677720836588016591761224377813844458872780494992487392722865460143774551818418130721316419672190516193959128065852184748067579669140413293279666057222060251672132551948566934166310461391824836795573780877068431944034631752608619984090614981532926860073265803445496434603831151594485370531902129818278660088047482186207669373576020695682257785126994686612181297405326223174657286611257055971576023751477774093732826906750804175440530474586829053659192770924974242044880943953229863616943278558763051931485232305070663380476341504267591980924869263890642411293022563644170241130278654078866389786733848977340804748113191093432857885149322100168723369948193274000853942909259082300802516885989518407921221629681121547496458179754316795283281295670253868961910974961800090931093731315304191255274193839643208240924283239784702617807560530386685518606484212546500961692271723211923513473693870253126344482761325974794684602387864181650858124324071309004770042900231556671155327685259285795621416199384435146376602607878301175964542308761596753536747279647200671631360421124129882409018178304519653453188235713812227901435459058206962161730403557658988664767372150761520452536290336753309735058918049569370040201379855197190147832012736254780443049880777008188403655513934928966454790396358145196521571528562523728437217889600231593422250127823879083686239140003663129901567288057664965057094218132298523759542248895155244326823499598269504284827751112954805790677773071878390576814347483075190355742206365843025552662489884612134742056372083348134087468439123446586835182276350377859517533038888331659793405552242916060927680377143480353732720629479823414990985221641199430627153294097553694340125877275913923087400250976933039455698634638162994664960029860276893694352128229855061252196726158444385784424719592352252103517200695276406506711556192719820262057532524529780009138429302237228439451350906588277392673412082031313893394326852023149851103687248052997448727466719536540119067766324298748498533641483119810562773408243920407228033156354014766435213800986353308278238436852604508088072703506749079994033587085306100356190424951941734944455424385272133764153737111364162861347205351515570024215750868913831785608276882100569014153208145011661371122797889230786490874104505503805629742043012802413026900517612571075690063304997222339167122872127927598235124465998262951487047667564480420670420470010369409133878776784103698448262668923033435261864822895579697232272317871230615213158527383763842677911366446995752295489412266741569813564622482536953890689204436441629437775300046050332414042322935254150756322830664188759253567422866124069581761668576516490846330968613852861150114473682289683046640622283469753936392722897795870743233857870046220981394758648681339666431970536543376115629354188572634691167960863340818101948478482100667366587928334497740556679560776319267884176452509107235773660011256651609319756607909444837365034033734942627494711539202777438692806270466219604447977017350593824456980405033097674484631586242459758730890644002548488868255946655003214866079983850926564588255803857437770403234932517290662379861424021397661643971069478516455069092987503453339809483451074105871960969531315031323472443789237450545040241649300959367825343523426273828709058849566642366025486945774651166692677988400858640089062558040033138900270304065001750449284408730184405751419622262550176348309002009415107366186631566363027989829403847704900027673795556899350870586452642398295252165109934895764166904700840340104150343657766520269849616440308460371115103529170240053659362608681188147614126949389871422340764746950677499446771068373206611094156241362841714671725684856166919509434423284869421392808174178005243306680899473861936824276156383968778128814013265411474920246550417216063723591265955185867037011497482519302524569923580698821038271890252128302537601212209171865128598425952325779898601993244120542797426235192324667555433420546517031644177282439983270308025643194097985564163759598684353257494183262682581625485665070080654614428226726898091933636871402168601840796625358433993427346864797819860445133205602744738235327695342129463690571579354648739733724837295643996468266449678085291411862519956568877790254835485667873687181938131281586417083962822058494048135728068128800684860048724827887053700960294250643492137168105134831369145695056513268821412240826657215802018663613326035362844386085332840471635708023958300048337664459399750063891347041121489965771903783026915746478562679650575152967157309850657979047375671345672926722533113658286155651887980595782472213170877007382396502764752065760771077845237133645745875110082457545738579771870632118347145738410337624789485933330496115102313301012719055604676203840210542357053602212599521214085760632067753738825222723693952131817616578367535473040131158789812296862701540705417016768323694810798042164774937909422388059581647546773686116194296902148912450092325046887113829803106901149026089763583866206555787855607943612190734659955117819107645518733053091626796646592935287488631776755708424628686072591043564262126694372812232708176931155491947233324735287008900423185108230569201695154451022969913392934570897400920964770532208505486511985814039059099056896845005646402425865715581281874031990994784095260806504445803278811831663158220317256370245476835517937694236967101701003238805716314376042171605125280675431026620043362860534020304980537243378720575457293980185468714590227185085186370161127626480914272123837063175067949647513487709088292877878910213486501581541297493200829005923645475326946799410077017714975898947636559842808810890161361863782842969059410272459875733449566597418046293405504005423585462911293390103163857448110516770921193910622549217702395460979490579580347594839794165480343638682220561567119935242624614794859535582693570809081124672258401227500777964196416493378035319240557143534278276861476477041700930129310370615658381721913092665207361254495958118146681239191557667458182720141079808578526091819144359983212456611781204423352320843447880212941001124101595024402198858068786405345250210416816802990032639087353531330749348824715089252932385051008616104940352309325815526789162059810969769589517521528280026866644785558096097016762043442544506462890623982638303139216062378094184714305082910373393091248393707943375326752266904561214161215639791656290775604970878713629650920874389318750159524669252435423816858864639966569208233039742802168964002411820340960417623832058382008240004460501246500815332314194035737210444940028312074188213905642893365386272785199241713457745473727901204345015485624422834136492586900871405009751503949851230604668516101961313750067533379325713764978277529012334937668990556001790208995877529455664944666945238391981411376454492487553788754843394430774716056067189761241546458698907481439766762775783355580520743153803003070488512339345095981635896996491300997482183674983443910959154764253371558833571624418168594126631421338666521171499386402350821585190664673797319045549050829026631260500080102694004446922518584774463514515301514097629330560508666580587439123325176554095737238226214406087520214019486124999791078493201519232546358599586796540350169979702519495490563017702606203198903362051445900078814729541345458672383103678817194495223975956793537026152063440295679892785895776043407891570254321363783960726149282668586955945643032118660721523076005531922765223297573595555500915029644188089641520938901293924571428192077061198568095622988709369589372340236012944527705107143223346770683368873582929351701989307503013988972871231272927007060811835762871040622652373972572754150790289810840965372751336783823076148853749630530590686291404877948309515695081703021700558660344444936821820870407200894952325869938924814875194326689700524947991001907654062552562576601821260322996780476343615650332958240626991712169857010889165957649649046440276028890087781986136825224291887572917704675926802989846048696033843834143780660252287988179498244027225318351970843758707828944512860751389926063902498697533148938914951044431962326232817812763642768794513007099878051019931166345870591890596012465749038838281320080478920583952798530722977429899681622101092005464992547871159490411796455127041752458651205440441267795978611968475098909854051988701809169636093455782881641459774950308689569360773288972309136645112365544389417077655314003483861285295477943137832622722805451541320082900447012524126485478840494620146636991218867574686341332404968014026044021781109483697831554451916513822758316454160823774395521759060713477923679506915988021843082514393765841397685113444594976900635753988831469164291402110311391332363687757451886195055081926208308131415621001156353719307755068866847945544553261125315357235416631850795864391016240868811627034929983315886225813959241833811740029299924615678156443827293528920453300639100432122759171705290428438763229105642216986645158823194013139504393041899710718440081537525517515951346996853211473056102743456661088640296068951083993277275314380116761686212817758603424707642940581761742413098685501583352806976036497270143405949043318015359108211047044255329989933163605155574751377082164726361571472372622218001164682741346537985470667613765970410991614325356387121600634992764590102237382909158195343023051749215439306637097793589778035294434981544396325172693220870131386970178287114003800098521361451361607509143959221098215105233330088796840180312962947828350126393031239161724405258265110782184403785259872972827764714124980345355524944550603353709994255463813724594748471206697719882110468443071955981608294529052701355151301894711916943773428604893929103215356361426607432310662857313565009901788650461558556045597022027320804784724080854075267033413138399619854600983937541103136848113757658654990586543594990705175078085354364347962830464419888923986274956639643891658273557338794195205219503195115437344434838633251522208960625624737448734550096180576278519676782045861912940574952748676522920960456535455158597457081579634425521791407630509772342316744013724211031592532675964700180826705696769278137478367702265482299211879952862705032520206113464439913134240626619910638119887229087914052049009982044171567049856578116701439063683914285606776601429415536939071706305666383599132679353211566324669877003228166450245928948814473888286683281238446951877374264761950069168520052344300034181528117742489856873811225825964230585862551228426141567972946782254734621530252633835061127971845858602609606056689924286139824538569226015657016029925927811506550010213858798907422470006264420409157801547056410327195961633383951468873123786714567599532276305833854771044858043206313352794021877610257805198910425654325928404078447064698073295581556945255781244385878928985835117690259266198597985356205440159822966858669589566022801931870011453614273029599207633834930012660791001894021313419578270241586906353438880034781935195629892956427413537174360792005090787110547787353105171129458884307392278335568182127331839658179042974904689978474125137876062908642531307775333597065790306538725081091004614263462430321127983116446611669089342847484911227517615325284528233661101331140346015382682294704786675602842801525440029486493460281827292293825418189309388596911298645772220538902635229301361683032353254668982501797553464666604060159187435313782407142565671775501517562717220132398928023197205913809116514251361263639073192049963364150590332760312052882727894116562188345330094636779755850918103216116145194325072293273449950738473014300492618979731458493164127413557846439473429185814831254649902314651927169074076082412387417886767719185494349889965772808276373846295355578392173377307923030493975940025328538897000768103117641712709811634947377530075967557544473013221282209504226185275718222466654516662492325551144864825964355608353935658630691997769907745505933725536213268721738994652034992552351895249666066114944930083630400368370391281270105716159524038283829399424705787221071192238135828606355091181727723152181014234340123286947976073184819052665597287397691634579937252220873440346637755010994923364632172445358658509796085125815633286176080537262100308697027194659086823263976875761896499676241712662960483723454151054423734248508548647190299287971250152861298342637003328485833211235541261463426434633073092258125593749625272889057900453356721951106040304002577005225264222261481995029638659184718915983911352268035547535937736757276292810251486256977631386221330318450536666057283467397264363255668128902701196959665264871576794686869897241689331399262378515194806353938800670347848376704043786659540246743204575367691798790259356035312683163223931919854754054987457934007696149625961211160918795335560822505851338466314836365524067761447475991379150652375906552633788826911248672381816262693451318512464234178247262897135659441160117578747441780631320752488003648508963164611880540171996930948220186201409927353919623671369732519628486646566133777564905004706751705229751940584040105700251129761881324785614851978968776023369903404219351699566506556425957400316167579119757857281322835194754364400134272528436818142201886135073632797725696809762181939782217655173334493430534862083981744717985250344077102740516679552159845786860039281329358409461734311516171425639190848322802976745786242048602418744243702404232816836744039070320924733382244513086136322696754992492149082078853422986946838539200433636013691190093860148162996318572047059458752918350570428020931896421451954032363405620969626042101870046621213582641791906111573431689572275679228294191022230055554453364207376009573050927793318105373549918615682025963072947042741697038207593194462450941288412200304683260332485857333273534823693635001510086305498855705566810761448958560478348632521474352614509332228802229883515970823035345229435951003701270123002847591030409779512957149567629435210545855207399065380512617012020784487984686760670075193236325790794228214576615957258822678775922296542013081294704143495231975163747565790161947638873965597261321203656458986340303501793840930468189429794651830172233380233139516912129662306667232309228950714052901898199831255650018577309696994303469466975651931765834648771791786788889550874848346007338114840255160541955330604613664729249153117661037946250740583579680851992319247900923219002202417752065110627050434741478887014279481990770727096115615567209500041053844262490188069030387140162672273586439671716538374322663866662904181429949932411540976320627804526748950311546813129854869102071256244846669877587113630357406464118257531912708149303868049447244650274425548340909902464390504783096652230036885042233820974914353049424691090150756564521586561534715597492101705952789807328860953566879599374452993185859820671534068569390025281924379919146644906365423732346889615119160877397410778368535427332294073319994295747636351645552325385432248820911355138843850296676772445561015991590294808863030141206807827849162628404349995047587960374825423221491830864867467158841058039656413499364219131692409367058846997150249036470073235322777473755736503924909654048299376701643248276897297699029046621469940836535223740652339071292661124607807510389159549406860671539051842711324049944332038802428272038914789249678151731650954029497942271672812582135690938887927619621199414220645464398561567947988476784790063186146541899412357503737876014903549432405956113599619187603535157346580505711141021272677741417625273012054994994158079619322178781268350777374521295080079933500765460990397241128263795165356375406032505669525044008028782196195412897036083076117180119856737336361657353919092608689942068194440247793662547801796732983889649862520175282704744720494698112513289728965370740337902554926111647618083517898422574236454733839624858299137259504430414830706529396967419196508253060402876263662137460106895380490742548292159713064223893792272476809301685033975588976259577057124138980939741558828349621062878438414826530344888024439514567143717985221711536353407862501574361062941400975632592048738936939314799653386428382657199475565340647446040516341388844209565999873913308390452874119613829505121707398295354063004914062121292174357466577585333530198486906548756057240660260778838483505073346449943196192858555509002750949774827355129094927814554181589064145391946912687409730185433946546557212437165704272442255774651774485160189828385368576313690910471081969997208542382599939886274339574813734474209838407529790786001658620073987868745107066290319087927066823613701980557960371363371120061709265730569008127958692000364855447273543012237084104913387148841919729968306799069378272885208689065989081453244347322767983567318223813923624842612249948349018548366281322968053675115649782038858168419113245707414356617854315563200697488790895916137346614318324358608260269423258546319967239903272176099592500585832793835558297098351598027100209332978155192660645581321802100174585756785651565649953836361198074996368692764186516686048576745015917258053077901711468217999601504745523439107152157745911827431474591054771566339534307731020304327217945553410575060302232040068913771475623263042533843166164363391263664082769405697497657106339873264408401046546736348013088591862591547955652581357942595347701362762482371002817251903109468447073600301176964049740332657734396105544015104148997325013665134061785019070805504022754414629837785436192074085302366019377170490149940923767262425200749457606781363760546088109071953156215001345201644075307557786859396346099608001925212197019674389667001023947666606499693690609808010435044320084458243609056035937022507774898332029911510987308782102432967580483624696505677051601993236789242540581001620682294178691305628848936046344280975352695407811409750081985265737659326823758908861085461522222266282320204274890919843078993556804880268925905407361363497341831831474607565816346328419319121806989771205243004163763287763589091036529284189403429784079456196880512379468198118202941977652627609104037587578023157328591867069114285542811283311925789911091775594055676435430072942925637396479370354931754098489865081138675812772986488026018062966352941056156692449902341216849574454000423970854172959861874668720123597761612548713395094156860098457349621131921886426768438100913613495012754017548307225340583480218324153479231403137938634786667134184799304207494450590615087094235539597596833724135103642667952444943447163011810978441348074311916900376831352310951940333079579056694918135916750882496325206391092371194734769731553107240758167152843245963843525745024830257488519612235573557335651783716449998226781213686283361139226772406017485143185785299487447651932930172800266127708024874085884876866930993811397682451953741130271095156832828632676341837263750372737230468875499026359628042670329654938350851990930414669128493934453209831769701548822886599312654385620863818119981883636813469928043721529322467705438894680368617244843628074689438835672717721201386298731795116777357100409489948335690692008342451497189029695516597198202289961565370880604175160863043587160090733736631404376915789815157617446075057504613927166462322095068632862621203187977575308164894802280103621837069571134616838326664259239176517215627174017004376002294081138292675898298373531762845283465979170148762295380631689063485189747974385693898433598393390859677650332380354194930924499577441796856519016747655142680514567314930771021430433155101030072954671568170107635819887612504651381959083042141099729230951891941258408333418529485454380574237623174991375141945691178044582774415010401919065616944489194494741796224842139015881099315036699363957457492085910908048185739346330259799978109883951207431341176000884334588116087503354582456960377798521059016826924689017007390398002876123084247160940486634154388743479391575714979375458506680436822072711446417394425923111534846119832411613037210991717050371342555760501498029918318985360479581042939111376587815606200496786803817897317354640280607586498432555621782126485293641884752694354662959142884832397145075767030151938428478200011249852791434411657585245633461077926022639582076876112092659537091029495068707778596650896143939066491788004195859776506228494406978436458570120477804919683653648377062914059032151404527832956177522465442098029912190439165355751569452287644503655998680953340678377829231672454346042344088610775707350083884227709827991338200371391062280684359409488383567819477904013958046025093138467135268930992487754808035079063864648523433246144109774585092390821893502789845870392483321695660588805434606949988751673325025231046366502780573373546539597234846983130252704798731497749672996326137130026253214448306954556288639331696281136862365262423606100867710913635504139141601387676072783311633727641601630207058765150619548941304242974036378693616214829054342993453066834145660242308752768183723261612945962814568861718177488727925756560373756553871360446859169776297959908368467940310628969273376686396019622728321654240057007807934499766215054790133375550785870794957300689271578986542501507801465606161744811246398208910980229348581652909721431616423507862386402692127420373321421887519156582310986479019328453111224683463634079826057519311887778800182513373423376998648873150190445465118490293582794027417398180854394088562767794740663692303602404818529239057665863017059740021419511368886194058818688373377646497784951592259594083980992248659262789833221541851887693438318245188735203778053397427601492844341843714429646090752355836023403083389083579139846575625683460031794615378415084072358839479978536486347594592201920716153969697287566764920372273670211759544099534656873315526754867532416930095978413363786626750255039608545378960287624672660375874840777778699827177966447450710262580886033366670801641998101919504121057495131772280907688111097748112108336166761482786077011318008002593014090473635793927181450598390918168561484419306178558266627921092488018650536478384380037590695595752022245966188203324261382975513235651769919768721514241985113788546857106579897855364364337024181550474193328452028352095219639303421012880631692471167150812798352191268565194946456597957171166676014982653644326740626979773296322899358837645038647384323152809437953642552921705147446360371666641963377126049549117966893304700302778646672601023708992286995695622649790846301911994007150676545115050972917357118020520931907301743714593727752912833712818646369994892438504474287551852814462824162094174044308898721357951338041612233061190623905896167545181562518238044389885776601839922638725895441505411455530894961047594384832889705888926646134324786740114143656153265030773735667893358150752105774636093507606429061723537558726020670279425506453614054046557036971911200427546862733797510273761163254427604513863593552461524176679687697985927009707906391306246446136680447136081790441112923303564796051412642204862046661409422447428189926695597152393204150984079243647723151655778587148271335681775003091165461297019385965611635127804496087614240042006238855209095342954707685863857878219127191465376411894111591106389324846773343240289418519926519586345225915855247110677965629798924165652111327248719900688050383073854942721329793004222917926497289172158788622587641245169921853137628887810918773514496845521201704409947756254356437469689871842696196734764161004912645836296910989427737044015108959966971738403881297612729441466453925881386456710569832633622226097193123050085462209520945395347433409614761673374991780553233322935038043929006782587747447044012697222972657242480957531923033764522766204849524440478186820318104852137529703641545683649494543040773329792629137595916165322755569339482895503899998899445971574576365233233589543279578038106648561198138508262810835745080990217368213605058846530377790104502840158555649019766129854583037009145208764405761955100059551986443244143162870845692029157799456515024170033116914924358248455066992621429110125755631998545120448384227107105752811971948927376653367998575622745384576886833935101215249901689721060280977385075350133028814426425966808196511916403389292807322396165292972116476127646493643009182891212291448069747768904668121900579972081627648231925461395961407938482736594654349661082295800453997857071474653428825386931585557652530073401367926108288301828290572428927122625308810004678140256395467118092285319178419858576791708877225087291010427090069716436928528177544498923810076303873518958100910619546998158177015311695785584042591144001516340164876779310050473979044623536047904428623640593690872233577530682058186346542066460100883750435382218044015190667960814917030656012594186009190529421350408004141252423994023976773327081568147718401867333957277068183071637605998640532498002862470840674248072495769450673722075816093539528989386281251922853281846792252472845450800959931352789552894581810715651102704324857257523789924561670326796202520476542669240554687199950918865807605140480688291537917477423142809754961619923467882392228486755485593970319693884263385994222189855305175432518714178247518635584868324342723693926675635226431272427142431700325785240394668750034518036407053432596794693656444760314061181784162047057142886069281168556013382477458279636256058863159193812750095684208235809023883499349676107588248681464934863442359808546602354403791433455684041083471599706722841872118994622841778466817466574866970655496183001777196437352842340865157752097627528866189939985134748942612462426037144394138904875748633873049068981346497123792288668300942051111778561136083878740848567476690099115608353003091433536223613153944683969488532511568203576053601680897225786177014069142632245149874730217486357294244641182348108073264483345067223740455372023135563469609448611230252959374560891478321241987399829857859871250079082985533914076619820038574927611121434690217811207606070174746446742856504448899277769460999220404060055881723496884093446187868263255999207778252808639872200175757197665812585178401105110428826988415067283370911124895686303720909046021826982692015525461511534229637038079529372393987799344719535344875215273428356786135506496272641791065252627095477166253425511840092347310021449103570940256734366874415652384216214023362995867062528078830280282273660016928947389414989128125607915281717765625913511578875392756763405723674910520365873813723320142182131472774181037387033317697066158698439085710438919646124966493856369564160838024442807406888794140674004770884424242330479229627060129551736786584260265956038451133565278397336768827797011053087675139012239809013620627267885927415448982520900626688816140818419098057081886325609525302459509407852035799204994772571541642570450692522154212732196587403081270145251523929570888420625629206251601787185382735345269933962196529057516789673205190231303400241066476042147130341464402701100779651540742647209745798339972624740168414490588117228765739368002619605635012032330299741521022337277021415711606573161006684190754490001699847138842124163797687125397780042009731263924686648699633235522439691514898219115375764953156846793457993985029120219824271206460699578245741383657444591723133663353568149813753225566811019715104271456178759186784441753746095798152869596806605732073271433218924718169804832197515976797115236718665762373248393267238844679467548363505734200065441392892514447289335360985645884880136744433188119263065207231087381624452034375507818822925920512094332655550918150177589684454751617922595446236766062231059275983126830264162218264479221076268455259215293315860226742184034548682441704647397545392692487462432728624676104573230948811309364742480921346846472863115606918622497613790845915979783634040805221821434638485416275508884571371375185535470060555761179582163554290286815103011201907464076784621462299945878128742946565494840126463586456375453995433172551340329797610709366438020486085167684651885768685968347546840213434447604544078395490268977021380669456317524589364722991616012314416523122917370171355737214949213316916061074507606457549972040517676646757374047003757028308618706866680667256058276025898394380177330229805753609803933843712617552090732224341760452792419061488770278569192560631277494981107359833058209113927216628624234489789852108914806013762987403412224159205914768704008906718868291771882109127409018135659581138798480662968261603451063122479844749868135068860603278047477999426104014638606588594064692838744135134664801739688314572970725782693461642618881256635620686434275690852559012182988018887346647416425687928998739524650587117504470220259790634214927554043011922329485105792215026783652413453234543892864779032754729418770325207047518531924122358022666491835023200339518283200679192835501158203236015126276933997304425198433515948562472919202318728332362599268855150947827651953052789651303240457884431461828970416816680684263369800480245792808540357579142888715177865539303074337265352906243773611187874136454616041888204013861785967571381247740296031023359511170590112953318578422348082645629061105057597055362156550645938068981831690205558687116483798006282897920135465049780932330822785418484344480174906688438503666365349043191868870167556378602718608999628872131264286395577627444289149773009488644471148265555849456020809664383690607559918239543901619055192889283262845422397217231896845399485806648756817158039032836824051714818819746858896189059478871358139545019685500725009139352894082979363939929750905252045236954627906833907370749015642164194295644258179494517453155828723767089751809151007420165625037567734429702583891912405526159539598552741263799603141777567292180159228035824668006946232695527408431998220094280890107383857252059033177302108797787371042744512814640486356200937974467965219813929948577847983449716436629400785989998606503810569787694917826721568944270724277000343557462966960790645526087223114749884056264064643801924520349431958373006046720012252770658681555847472147755784238849983064034813621779728742012967399861700686346616714586245110085438163398561232065724203146369602080935605543902202503026523745452358882173767347877282703196661066125167066214709229436850515234117946584405855563713026335398593307625820242292258539880159098102763181278112336274767189336625983911559466818177387767493386874233274489240506976334894535549253637060190934844678928583908194052985668837976304008685785951855747713478295410759527454541864791408710355358964197102435648781764017079553430389732517200586684238694757211014677251161998594723453775947792826586276813356980749600403956838315297761438680839398399318323484625050560388682527903586177559262489547686909888880758063906857586010781638661131171980821212160697900108300468953446664404074577224702250405249334698713651009649075431856041172185651141318575731904994744746454914838252102821768163680409196674620584297087775905362378139889047554194833345865066258484369139955352414798856282968326307791531778601137848311477466106875401441276168654722842701177540375099853989681855653389537041964157121462261220764980132279309655096173731597402359410782297041792309254865678837204983908724372127413000712740647035737539329697007155974812658429793908981539346522242280221315967832601684818433359780594023004471813648236045229730284790957507018366601908813426386491677713005391488202783541494958951744983447726030070464023778859557462699927833411254719534212747653410066162047178712141923590447444859774631902735818010315325756867245561570938288962305955057500221293897469625852985196625772748171000123065661666550148262759218813138385268737816240882228889795248720050929646791355695685002504815121622053252009164688835011661336514799932308250034594120271921233267651877838166797326541373081995902760340554946038116633456751973958413573148365348153406833664983143855579891777663455497659772712190762306795950001866966179889965974667293568569097284240343736644464584064347420690904998462070168907846882919943750249192404169495272786058895097644772161784439180451054587682195991804003508716169304493614216522706588341625777044125154630072949906287637881411913854345717964838337141600774655610675157425104166099162591040081635672487954316498719136556605086590253762842942179089163941002271865175493481575188360049014342281213628499709665198530645771794233925239610189007384596451916246102319590216653663978264597759201939769363235626624762645425455997032787134776923978861322153006466740087023583668097267672935518387608040850953775263798286794787230014829305042451941222554080145373033100023758420989753183086374059418021355002244024909750608242310772052590021158916756416027007927311183232051879032957600869515268125591263221349895030626368553414216116748007941692920615945843366642580172405807073794804771739541186905107517864102370317803194270229895574125334536972687410770901680523783705416535273762229509498463073404055214622389930389970925147793510162696664380449019634401384022566253499899038945344123601786516212261177988302365221918855138880146747165089333465494099619012335632369216489118551492288274677608160244964636389451407487063740292788608055243839293894479328437147111604009080762160392823930436212766149141536959110460536475957934016456044800078946670339614848907615265233263067527362190220597619820642118603933836585025958338702850050008684683673698606727375273234173071832291136191157923370179574190901294999516618398753095682785956117672763484887150948442044434690967149593793173267928046085875799868288719653040245818463445283265377826074975162334217293480159993729101527542388461741963695579384646357501968189736567363653204010460475663352464074454829405793805350378596603134349034710304448125268840091616595045597661379674192807369893850786788366735524352296755747318383450897989416702804539868659368385245504788680820310350650066477694124148547342474005080668477242697279245086616142324871442134743395417832220163399827298509696340370807358317667990808581177924854474994825587177279357308409653964275194345594125044578304128109064030227873330067744969235245173819773589666960351977997479346346833494761021431947106077686298770517384017678792729952970423761689991565756413061664367713822389612296133615995836741645101458250610262587753192473163770913651141308040177306500326646238331575508714462604679718972082034678532727548442317027958972546190614355125366253167907322097886803836507758839527736577669221229495304728961517840386724421233267515213086084418743502271515639699291850406896450935945193021520179700328144955831006772325667840719426005065890854378137650976661424242545291223235007125048946154510973305830386908499670379448339735921261882152541595187935900582012958568571972469067135468251836125639955458170062378905821375972766629530709724976924177520630787111713350302484014699275588278887813771938484313601246399728853096080816026957978466083763884015441325127025957063148920622701157556841437464807743772029121864581134914545955116040794355973484542937899966160363825472595935999279157804431442296779646017445326106441584997251189539878938941609832449305480271147781297032905734480247055734509201293036539564527167995987441127185891138773186895035068603081480455003567954863785979424912191364036781442754286956172064615483137507651584756956776325929723301466211454514216261385821560158441222576779369045551950382238858676858190376534974552471988913616925619281365603325642161852530326199170845426183811586407399942391461186684430101238758478646090986563811629989207243359767857004301317291941222350038168848251891849596766499437238256223866015715083297222654747861490856123991403067992778917427008850127076670124815647620668400347423436626441973577471963321354006620261628003654134535118742475529442800857080296811064344586605897929803562680945505490193779232264363427067069321958617716300537648987111873862583426482947857165868410464701293281691447275141119355318118342961734469021553551852369092578699602005881174961196450139081590011155581010899455789539624928997446120519820354667812400554304871066768465562141027508037915563081823413146633955211232631429754287957362794053508989101777766457324902769430438333024116873955568230524042791206592805122354866370738123867517967119906728368228149037727479232910363954476630740447265925901762012745875219973346861922383992739481704738694720130707950561395219460464593450773325094621161518278078075845925013092394710535458366663907112435994073790102709208404152790825265055683796903065572048178280765634701916196691917891481727322333534660360898069950561620603517800443378336077779974666057533622435380576796933791711076496112942069058766560490495849772829270534532132831543993106315627084236683732186718423546493437588412306062621804624741934185622273931223525940916284881435418283248318243275539187603895501096453316018083492191310627246268831691041227817777775265540770602856962194911538061497631455489325010611167099997308666971535116765847984709431687041444655289107999294778595186820546720837707385527225496468290098700671898295835960699169158172411498684384721647538959566685491304867775581470142339007918063124896026988849227135276134553677477878330699255885937574376075572410596175288066455462362307605708132796331813975027074873417199086263335835497229029432726266726773508172866900039710977429546500099087017107528527523915686251477737913877732432914119689204374376015669170435277507303792124941305057992102963528815185300285747729995971589295659690362902629323707801325125045790257511005813045428438112136894825547142714621512007107827617696592471138359284965934434538028283300504605127252678204576377154035771477781221669779857751613209178166792443001074412982784805563459551298164864227197687253847826358801197024737575056710749570384380661778186357622022390537542772834072779825393193104883581239402274233288336602517312552483935941316995766746779971615343647838166889476436876350316810052791626594940675828797327287261649802808870862671169553012523658047065468887366284041662185240551638311387854154260272517535472268140800384855850283738427902452957015407314888616231639453507986758230497800256435110157023898769028153915594984322604086452442173633978546486274417438230344019246080810675927689342493463099877759554325547429043869264166324743191589321316536171945333997463496592498116632423069945916675361229444025550282696153357362222086567544434265189577320700945841205058161178542046143137559518271200955917842857601499797868451609967312619210026706864932623080161051716450493084605675282851658836729918076416460041302044614847616653300995268719777748943004644964726853088247794288824371253153888973418243242025879133972878908121613688446483327586969474477329410285939103837357963646527231995530431250182123823790453612467478308240637309766876465394609430533875414708139222903369027916154591640635030508711914084567837483050828393085074320787795203982544050470072515198693520514674744412303175645824271783061007083897713447695642346273270138628297903199799205061841957995896545145943167675700470670037156683070610657037995078218222786506847975756313734938106643088707517382167861693203704531072136461090002010920472302443509762030999303537293789640602168821146458085381738335557513719810796344158135671120154099751671896895963294991559400440213942034307388163175938189632232055982454473056283083745993930400828062045899555757187340430707208114170834824916678489060376849909864959714536144311435128745014815636195772385745016589394501096158769973481715293517369979553912082172554141552602778989709556282000698741940878558333921085704405651725158424449905423527497480726251256869517288286616184069603198929512128667537972002465262902800364138399765305568192222366711583353648273057126203535048499639170980861868886803815047905011998614971835125072922420116815892190138379478856854348617179382346945910126345661238665616941288019490727957340345169508483895901112093499351986173693933736863534776683989393160423116895907931318756630618248581567426362916642857964412147036748892024257409704725193418392859154520598411215268641158384999925209254165182288937828815122672137148314344593393411600920546206628286659634226798156917613180767184666043534582553747015246253773527596074546753342127877421694019884268274801973078798223270089236328635967336563806689786145083010078755131614450364095109302482433128699173844846985479415165856808406106284439570433207768008944272876880104418099812954860479734787244375727092319834465022977029868018438540492204947556146628064237569817398668660906385932712128796449146187772278922593895433695667893503308642641845002145952674466017043012028354112771921385790235472790803533985227977388772440827495320744089428320931810486947252410693057582987121366447291230033205434019449255592834696689287732986523413442358495402486629809142049509076166697618568585709337412333740507797469603164707710862098561516709854503001215725939655575462897545052405281248323427098257925113856652000190955111774045841000229501740051985965084727243048342087450270249368551014095414850107848591775334375196318297098623386955753126234332694251933864603282434814633437015609758441877678574579519016517226664160894200474175558282241392071075196317160702594320704888363470695553729374283163156670496674232974269314442740321114674049042504329113632682093596732484077379194283338662993700801128630674317645324077517499945895425251191294649102354183124437909178432555790749235008848340588297359334572750556917088395089713298971366108227292671820379268752343788901626985380848821535887338871473970726886102600451848817490033710821658051450662958852834913367504843402533833584059343333302663490708972717968199786217109769507291215288473298955689836164075248021876965025534806262750212239324998099120378776343884983678170968510895950873012614371869946530137579832758651434373319230476048292550585997384466538731714668162421530090784510199333646317477172765220875248799758627063919410698987673126547902846309435212273325101453918922416809180848440080359868201543017909828911881465480181077291683080442704185467865144247947530657581015048984179951480295963938888062587792687833842360639772719419471431207230522246065941801239450772198583756016203129499433802715702250482435442768471923213687112121066453798725716227379621866487855486002622779228707919617509275339218010537798827734791775367536034920585319028930668685811031941854104687613681530606300141288356629510111186246606935368018952627800768280508775648900999847959686177287078575031682030405271734234886710941314067849977255292163507083528978295730466798883979325183704479247807823496341339298807024875995097978279658374298218280998688622216520679010226377950134886282528045063485055974798167518905997424813958216754690728809434808820464880352778845480967716282344549781451121576627018979366430451309041612625311046338370431549091814011668945315509122753680189579567433525762019315452813105071109935666116638426071446314000489464434851988714112634262474660538060330305951000844327257714345545030996373982984756207620448273720736150963376119591496945320907158082551698998945894601438106519094920151031976623493231518270471267964973780502371770343428905584795667173676474357707826998785109325057391341900712818752511205941562830605763847963479813829831262280474368425190938384090807222520543535940547107549398814888183635017142376241025512704563277963887200960683805207294818783899852780721259792391547326005368493726669622513273867613455185094262285803178259981613799537160705225228042643230554176983845941601665247206476272424826759709581929832843083778586554593435554469085622641948447851465889317325487240991759062438932845748516388193490542777576797965346705939595331173641566433131557568140760196313417995872107327580010662620934769088494733643319530857537537588284093801678625960938596296718511770875735705762255244269480646387172479148298991919453193161924852539528830505625836818685714710416032927890906667031311347749430674728365370493458657664736268005674967247141754369351322234156267751535717930947653264930863032229952290639116521756866394421867668942207124923606439060505989793431778972477182734080668048482293082399704994834294073099036940081978415436886216882719690720126781592452391190991072738298831801498705944104837287120508700111072081933689274164876444576836629477250408795244382955875655587030655424279862792792234236070903784450111538653008380168839618747237146813416222859560693733446134921275624612120770327363090398498846932539917625824827351803588152831905668508230188277663524818823760624522361849611775155115265744829428185717716321955816177174059575470831429373630537930304911974100046283362286735798825511042222396831318178975151491358456251866162299316476905270888135216866023123386852797296764149669038994752353972244006442773202275362302896509477165987469076713442670445673640125462916613383520905998054412808058845893432403716113499336694598612096422406346141214143560853742195300302700669414717292549599194598110460533928542287852259076355507728524505835375476662116549677585395444210037363132229355740721448502584131072019893833653349900332883412007481966891409576549456439530528407655908330796292008701061500624943431557572406208600986370578325333218020568572126735932427891270816146943733978810567482532190803558735522899877260151050823254009948987783625030077600304964922347364297984668167018118100407653231457206554273431257563435817845880873910931543565994689497270063012338777512103885961830118900325734969412830644135376626585924627587116786409177181623400991606960093280249945425862946873305179894821699204519526007594103711559541005350229001109597811211860050607411974948766951147708712459061880965588556388919704855885560108529814356676506500507739220053968562110383607460421228538137969043350644305202528439484177564304696219942086893156433853531107904332397120670357817292941721809219675992837183985905684707109432617306708608445513025191494601287464162540088707819304034154058381586101999595670811399890756300299343365096524563279486423713544968612420782827000162984476591477633619148404838145985109825439131204641122304659953982964155860051893963596338593205970364738927374988194127116373874977274049228204811281047449611346172589255327194850920211844922805216948925859873870789344772885068292513531955473854701831582748628783422877965302487217522343037208852746596924644551096615569757745209354490467726265113721360890091113212891985831519752149466749194427377497814970766742364991584766368892394741082322022230349828489139567177945424309819605189769855212662620663202973036331401901005158645026833002336862751739193818481028370056042925116909677766924656610147306626989859514370144747883931804251934947724217491537403028721421114911680776789620358249870685096170001121499460933606663866065085650260385115459868436854564096079749075365616767634796919283446881582968125224770636227084361774260824702308172938032251728210534523147228266072556019623161368645589163104211768123715809419718204110588683353082491317865485862323001160340867273979443976110302789196936048156608400512039467726464363109724811505832895803210853623669003162806800180646397651163376790551529973433612636070748939478863969648669456535404158438426972492182848344632667175286261934736797330274945201014297891468337138826119578011513262680904842882144414385137802358511068090834951732056881712125165896040171660237212425737446777060997428428067669313437826156454570660336600347185817316179128837083044448968582952421780149048131925696746737416764604479278596613151765551861725499404867032540175986652316431311731185390992704514982411196748810160246368384046257155713495748004214518276984684678096471433475524394452969434548400188913661042751132562797878156300381556194620860556727037071083211473415075665668868230650947190505111069020134596951902854795020134313816866277213212456379803616846065116297092842150602112928225542891202989769846708882293718406775550366991791430390833311715092607470370115802087621104640320478416719433897472890355662969177559876210179244860854809730067097666026447861984270461975033595050707334267064033085155486148032403470220681330132957983307724290293411985686731430650193775068884327919064369378393752571970580604815617741906928474956569653467900287326196293346115549070559630736781712674904910071529703611967019752797257858602025895946808057283834261497682487154061078950431985920440854128816038389173785563642718511749269357404153275989086036488673738441319413833124098971637183370877310126948124515286753581247593482080609458314650802229838920303693724129620788775817214921141872446940645098446660176802171355715672334691303894383880603235942419214648813037460352160264147786412830586759027275156544961612386059332344984436145425069903213981204480171650737042210837429493795160422488181952679806655656797957944895030335557273415545675647341001494711213847970552686045996573087645336567827312889789555861115310691347351764203102819220781122556334217680441687443446072808701068492013521098237668237386786364472292250403767327819885615329548166974040841294190756317803999704291353593670947175255569935989879299263373287097311548653888580037541188328864967114861932219582906345463791332150672174013091578576642723633462675720000610716765312099123039542794494426528202322157627659806264545331168077032512981661190160761302688445806988707645780305612044568589929778992452501035273315586200619498497641857444585132932830857386541769065938111559433337320037744152868952641466477166208804651163623328250287285769920785293548654996758553392890384857069313381444321193662451554046230302269979866834308416068787784730791507037007911812504838850519543041848964159445050444532893006008557920326149899243911355721136736670150075724305427699289859166755212997493533593734212546897236097729243718436045839286223383047442765235749406155317692277680988631188018749164281024317468809869744997950442822971918598320771467070398025889597087224724409897399674280907640556131998013984172570067877034910659461669547695437378330766901212831742700571513684836257880952935110708901316730305514112303320859109831270096399205392308081238153901432696676121650101588379137402065163415992946871659656209518577830752931182403241175387838226374757811019870364395432617120716773146543691680236047547359241069697978228568869447516483805801412832789987627442708955251281265729074846379198644289680630346549693747595517170904208321740039849153298640859830776870847799403648972231627201276217384586217404635057744563157772237268075967181310975130224721953246538580625798086574914603818086507444579772996354227103698549626751719950622176603729912422375965364234323980542546718700164399280066507669528944596527010243927968274401521761399236587184761581963397622462969968735027781035541944517833159310613413681547958001740340509279762247133641028729240719608898112812188550384802810604274397251045255144585702220769297249117696074080250634108593558097499321298893889347684087786223772100409947038087589225994999937620475670864754879261870013259228074730945370111450136702771080921307372801789353554248289879794620977015390069940509040374537755847408522507901685695873824028880828605125814690002954208817069447571155245899508653056816727270550794455527655868402441497960470839311964648650168403298504436193892429759039176603524304066961499425719062992652976211657084807009823234746037840433999379104396965124401342450565155963922952320742555467244637629742954888015434396512608386837357735674309028525049058598193687696152343355065340439668749164426692808100309041607655968013477634253080507644951862984718563000769288395878454815229864795102441448743263149560925366304447156259135343666256728159633447464108339220488391823669511253213285640306070751551617066388436219773293996551499900678680482339274840522757517243487055928646271692226524524946510185429888171552421485493553059005988222596289031557664944332136330399611966094907227557632560322072794964295373470927765568928709445785315041780028315673319871891023913528480597537294576123919190108204395748275601845819408284356740534597224587118288168425527696762480499660594406018389112184582927109918282960861578092929492955833838101700037445201576645269372326034275165424114953632352661369954165078395585340390932785518298728753529078240091690555790854100082587587504097981354546011789037220850655846486058876846318713440569308849578620429418454069262528819434632345844286213315182872002066412952247241556191470121691491273023173804333828085678551264457342922374104579837388253276919166677810817840495930243742667563804926171200050399202322027547929503332575379824772331947122335356833262047401974499410810576859319482290743477746142910330913383704084943512681678029264151847605294602128476132022963674787943721973967496632925747292547179056037938890116393356403145975932561083735307143799689233929815508145336096790216248378214588249282290643581132475141424366283326240228675803591146125545891704238501371573524307944897186752931169229860161222927428617861758333744255553370295198737522087525914128080273285693715671047802855189182783309987602109054829533286757587620959992530065463621806312618856312496442470303485416371818505410767279457097756724939160743010440047184415816737905008475090262627707293405603384370153157926577462244941524141459172334635033194145674401763545401581076890651601499021837087821530613875600856295271433568345755961552424861638034476332254354222079112819628140056677531953345089573803537453315223639732809897608713433788761397939315861403202424185680559145661097630821388316977958450075109569582577523381132071151098527592920989925374131814263599926054465022175061065062799068067413673848342028716880671499858955717690625649832106711139394824800596377196162646738087493597542809820895000181075563095773613216426015147503792694154414819709160306186838537740769474971911424241257166658549935223201705537160124107325553293669135324693886524498339453721162320604145132084973736481057849653011958788440854122551196343828210136718122012570549331908175701607859874348715918489670527890151365868214246630889904456846135271457348703139788842567029862158432456731421190205307498147622250387003864771308396842519686250382650479799857425871592032947786619589223503710736642886953824789990625961091525482474724271642375426149043254959688600029189861923741492414747925089340861009148273896270501035268695201206721822050179515200366251492853853315054489405926144213927604676066484999951859046307126248022461658075067953097912943257638477949118753163783649438046566011243368626717511409179329463375852261303034237072385418715604591877795484185525136775770227712226080597637523149937730378401292250295641388576665393817176430949901165590783301419545577436571705103110323157978316472652274285676444272271967472165544443022818131484691117283205348090780285054952458551049891323014360192753104369228955206724602234636751292273180329738416625984353480387610601785910693305520842835796895454732719539825713887494781873512303892267838053961649766410664210550140532062731785607043537534250243314584720504961568220199615120085045420560231900005497864343082424242367810939579247205744571538597866560844148060558207544329848650643681265189260606545016972219714923555999013097995630395096577209047698005850186834468794069667096779785609590274034904501416371368715856780483203064573736602777606507551800228228092870214945084284675754030630755524645489005851168648861172419545363219109353579048504320962910350965159288378107950208005811933046111003440999755190893282177717225410213332796049140410118641938419592167763255378424941644546610516380523093410969736387238293733078282045617371701535704295176298019606872892146892489825502756015510662375031051896137550890168670001306481259857065146779224224342376778359639000399155022964945386246703651949527788704578233285719423315369497056037818204075797168817400533286143825173519150761274657091259067748316643007009510916663609002704583388330774908813898445581753193369876403854942875465754421678011029428455159873602899875304521025577953758130354208316576100576858560758046183763767541673221517756643099061756249096714876743243873431700266414547294622594501831838786745425646429499111463539510680590423285475773925210178401171777445133998088835903380195987799524899401328097152240380460027636137626385891301049721848149520622068119856152939400976726026212412089956125716732516857352860731819296253925367046654188808258057538888264510165950716521913787090564482181920387468140445918288555857220080713140082849600870283618353390682908542033874015409285816449404733026517580559091999534329972536855822181822654571891526912235475796782498357779395930803930981545869189985116506174137970226623282183929297681197314261077599282828555162615370666967367544835856519663374437003132850030057423553167298360084984090534769064833238558591671500696458793436325047372863330633622227116778195502122561117330453114835952209363891912405094906702392069448967427655740994202593972324127242323501234635719898760998801925805133882928810877405696736495347595806503366758781772983071506399765036050295906846953951144691898985193446171871307145014416975185538311787420174893075001602548565966667578981267520967088411327008595646910357957011468095857018116753847081227242920020575850675490017530544507060810143175674250813452348491677470353354712769406306298135036010694395638533541362984728307771394731480315124204979256949483511865035705748880529641858470269132199806523188956052449265485199801609331280396184517316463707511350169626690627679246381641618179523491294713444218022042211009154956281410298305983799105511532256040180581039882156880543227104123651089677740047064889787709877672058635493303949377836542376454090175728738738227713399243083024381928291441764252795053672966741607641127633223464870631390645928907085750050217837642969209033703505607137259040740053157399282547024594157294594144032580822167073553332390754166494570353113876033757226709962817765995841922226568852898656068974470765432428843675242786273162687253438490295483080341146337826340682120046367583333595066421405678266531350403395166938197973917177660709123916226770900150823662893480095804893867073731442378825672325223306440641397781560634028666554064195973999796013366321483149009855649718531610391729863113886636216778610999081783118887714594282437846484987034186793169430143952090094785520988054396836085348210329346920817552450669733234685063754186872671426377861971497261078440532121577416951233498147249037104537388666524517285101042267941746043468978768345124326957297417134621267639757729071311585099549628641352238232749825579455873468985603894063874679683559794304773854680585150047740038322437463277025386438667072101447827073475956406454418759116985138177580662140981287446145649671990078315833915123581179616113135204506806268244201166572749466786542400538511552069934727279871422393996613332431338580502266540465149649590529169351649284670558341015403453101898199081949886737717511879188657573526696932933927551404250693508434516581858391918242350479782456329743810074908856751696671110020879318409548537775536997703121273742197879979912763066049404847203869401291197296818370166269483179144368310269936829230724947374111429391566102934370761838910927885767081409969254810298807093844414600953042265341252016488370278129741756514949975353903564559972721291275497742785328021135468455793787514693957688692435636881955780830804636889727773405737945799095733440010726919320627179479456313993406396892533739132189137779907379936207017821091741871907819706366331823004637197898589254086629310677544023459104964352021498499327213803829554857355576559240039255493468767515269737054933507211911221469154454884151425519760219409566232839634655808964322524266114645211945363272732594800677285425814838855712799059589558620131892064993391146327837913885282096992351132710946326990411993767726909697343783262239863055986547311012648112892878122684303931671961175510607383153288378164861361690006494408242158151167866426920296818558019253859220820994547513944879376225712144419675715822972405115256635813203700494696669100944871040259695816523810080751715950132718636129692639798394768037249197532175639229683409933836642810590154772059933040454071135043206802808603367391403692756354891455207672461830686630961377169237579456129048450835911982692034184803690007005606717319781609651515955883241251164142321565621744889404608858857986334047430364199961818239857212926699317516862846078395132549942791016379861648470206943144520807102083693317240070911672345155849777390038471236082930182996347439323060090616604493032190277409117216395561250138446642845585770063675462957735124760321819270551546335800389623881506541277093015591653782151280557891137824127932660738406745664714587719557809986986729002481111255208389604062964846300195794785118605210086778149230016056804317851352358709637111216746947182871338946936515951554399644130130164062384981111714205230536794514732532239439359170162187580437858413593191080078643909213346513025840099570130114935062578172575496842893501857600412625681463300502926974582781290973002745226528447104769455667874699631791828121599634444252517427254732682569272821777020622505891054663143206240612846740361797191922187235060012961373387147172858176608820594072405632428528096886200116390431593384187162812198643560341140077075036547216639220759222958989955821142877820568481832833449969575631208490782119771776688593118549014221487528775901718427193132252331717877730438146944291359989962800438591294850117154077962549659711740913206862846613176324078746516180296692985250028311744842245605002802347456948091482599127773319256000483311067628654685143578643692675037060728271686144780606500159514491646568848090267602602852058268118384108266744449064894534286305316551316716283413941670630235064096911544500913937314788238411684045863840754580146877520360423383917845286873788407851875162307994377779732180338554953632628221172162580242419435199757979054337142589701286697272569912131249456352517705475261717977510539322414761757053406500609030874299655366120291741443532922844958073914708074255184655678883211441070095784068323283053368744153513173412463466712179226838012410047687922725195562537194439429516721677897723210439973406394712698520141327024274428725388733124348605673464727385102810724929541638483638348858694443538816999630943672691524971615550090750926714961021971610029550894719480576052166999104030283637614281130128198158931611263999777390619113332924699100205379553742437856232962095320848265809975749769904520539839167648944868618385514062785539202985883456933552076724644503370280422869417281420403983726547037818821125470063649293813856104355175336228538558545764592440281256692171271369055326105052567760388974366117201136544106626962349965934282740042201010066143608517420204702617773840632766368865854462659892548601405154827552971016703431106236524946323268667107847295198614151409470522203907580366902622853954009340316844166834217287323226013222933296813526253888100719439386437943069040769513127628086478720158478027484391932580211556041336929706607078313588220463678505127068830413299464019337968058342418828259987789755753560146956725547564103877476149411814456268759559000177239997721868645588512797866141927597991148855968480643358329719848133019320650856208554166285039034869831480401222082072958190219913762747272384785954233575762402598343044890846839380529957089794747410169833451492085620222599194233799830945883623085752216750088598636760269127123607961759865253318332024037709041412750346985976593097516318418316716523402676410485405683132050737367415759897207299150879688368876164681734393526769286528562656003852624410976265787697405582458967541329851052954586869602089737967996118494678030624178916443544173847976708887079919211256712733652502319451884185032424062530430535182326280698352182499588058328432467657647244435277130386009490247102127270636508445108077778990125633471515183223410456581529413892941240378967364096083828740007177139081638450565762138051311508509666133264619114050107607164737070127607011663043486091959598504047609108246898922502772182728801336418272685792327608280970148693281644567235013471029063081198308036346116068844366947377997378176214941572799172283316010112460453176327836232037521580511588590464207089779306771058873766330297357718832069311337272927499769481754366504749782205518114482530247370095950529983092322917944606414997565043384758062950593638386562056882677258379748090100951420366327354382502598761182294309551064047260353709315467123152321600678888772344347937878743894504216894581244657517028116005799326163680661621964837658543795020487233616537608135693777173259630909704715630313904454735017213898147924564793263189154210186748586775420074400483427107258460629968210637981410155853842421557364885444136931333863061319153698094501853774203569425125555158738196390007114411529209818681742748316412854082198526552686668721158965741570516053590854947951907951204799342061510406405433360156168651693937686358667033617491548956710440897451642960859598443276544838224157382331376023029305251653811250711168814405136548992033999158338266869786629390050482982756326981265807017737840428129509281290267844432157374309132656064606187936131067388802099403136865501851266003538114590773357340943042927960624397603390869806141785915409408208537161515566372559677380985058920062945803092333253412218382665134944113129532613784188526253173501009441653394115652799371759613381052017465566739537290530318058578176362406769968191486293838861106759266472191913743087048535036464959331379775423498245343050335120238791841811882298477205634767693143858712678434574884000019073271737582225757791060514236826147019495221652297823285781906924562786138933799617340322850011696076475180407008999107313318857919065122518712024684019590945547435471462645870589720753419629226099794667206270384173000870440098728621947255807410974297224529080517937303771971214950583323134730066117687352920849821531069965116055205914659968034925758068521457023177034799053643159361384733765489593298129852194397818600973836037937916527137700878585168497434086898243878960757020887852086156199329745111009246355196230301010582999357148607208101256902801271564380317310691771329339227550880454002384704182446900435535895038276243923191045546301848966058261869012506323577482420790489696668445281094653834087992609562850739520244968918296728075880812342894436814453344419163667146012426094448398993513141475492734238975833570440724421950127917747092739617830640298098529353875892251453648869663772775229877881555060194932321613660480325106669751851864808853106420775332269048142875658740312768905369044693725351126208919414835897852952795531125255844691463305865290076564777929217252145464559293831101567248912348705717100203653190331500284647282900439829132996605137706072010039217282321054386331129413987609826727263131185636387345797485512563907700801537646379825193680539685559434166851986348108880094072862864714480053464584016856093413516676111429588745387344190765653686126101512568279770767631115214418114401328493343993198847969687305810859194771787244039573928013350131527415585425276373502085740344403502422859312179563246739069010785015929279025445132736462747587031090960741505273661901296377237712051093028532529010856643068401535139989019288127291312104386632527142856505228195203792483692652545720472748255985084716564336480289600374910413228993814919829721001482805690418796045121305405238102433110365175435447029151697014889155267936393297975777661219792284197753526670260134769431037366319717547632461591448493990353623624459327189052003878615304876035053219331560211706016943303164337606406583087578498447407501896942955473151644805754748248183796640106233077523416163623705540091597371765843000155637250183425908136736560237584783464702019999985972404047062072152191989749667896987139469221395615760530922492552323275449922869087466988318620581173508881434298514723152140023273791941421731700280461345002076142874785341421737467628142193645876871803801283340825825702057593791176836816323215160706129436632107239638630932833496872415608335543656816201334180227825686263252461049394447361974533890082209933689465253151396016465508548638681397367658783779221313257564466391474358968102298859763334152947413447962352533181421666486462303057882463142761132268853281096862061704749774383475215751479201333375751447872301318214806143938313804252922096610725890654188905752790936572753722362627176922497184101114890091240696671487629545979002670257092830344940100815254635795353077675116810237231815235026840133587539744232330748514489447585757114075639383331508184324146600916501449043927503790431353752502660124409329942254569593880576122943374538523459329615419230506913249723228750922678381611680410374177391740655815588336901042336195526835574713329837288756782458619304922354509191532739557002384574387726539989860100590010535333027940168326182442823090723632241260103069662808062743374980211563857746079276341130277278391572971049108988313875753132125450040695109909646353383134969677834393708195770266026068936071964683720722012446277841848987412139707501599206417572503442331385600573088900978934758807571775250074598711904073914403352965657165263900942004812440725011745157949798089470929984605122219529477849105715764044576760439993649811886341809635857788766518749567705853355664711626719792612634313942859817371579418100047553875088103478169535347397945826356853708186647874809969685822933878568096725961726586534877061685057374657288207334668345588306559917311658649494717859300268486043335834833819482012677137477189843317094881709249338507522532563242139306852454363392964688222027650705481790270838514262424056351120943831783419343754097422323190004965322281186438902172778912137435042094703234007785115561476475208686404241932784945190585708311335916728758126353900919904404528238599358255521736679001585767319678174271810670947792374301041995811514701456611143982743816277178556329032473953800715429983997259640677776380891622180263897779204073839912606537282318468946976370392762045267261796260640314124573349418452844986419905617675393779390452816011059192454974883452088781687560308490420735412097445810441375701196834994586439467214988687808281830705126503053320519679986143473740524218640060240628260543817873673204350297843840878988987504027197946715285946802754864853639658965701827884847892591213595838531593399276983489627939183661792327308444042479472067414787185194972409091512171397129519604478313752024369985164044784725608870193300584930401964157091277451530416112072310135302840790658213568886628442051724831404411933023009595002649048914799108400747151478364132355591806355101835212253530744588508846052166178666686404994710026605717277980057026153304665542648733821431690386686393973293480819169087593953053479136138836402483620877431854990597067262705935921417709870256146579266384503902320721971219981990169772096472905467808495191884765440657316187658900443319974355025204343856200537873581077230800028013678745747229689177864610585467345565255842344786468000815506613716026037225727793552393289621932126149344255973623863662954191379398881253148538574581706750863542413527082315216904385631910946096534231461505440852755947004213873289239781406459304890482941013038476248578981544370090101088722251810498661159143888475162161204053284067659443713873092006313877529393855993959894789224377425118557760523194788466220187302746811391180296035644753106301567860534114893475907181572463976660619923188204897497622616189784229537282464700290352422248393188346249149493577181515009306661877135832812061175757378603417414680407326583082514926365513617452473282185395751091068683682492294325077885298622489073810743222367901036098380814122453312419632574697628930613203403014421189639982260802059955581082847414264209441369379758128003646774462687080449305391777258422365563503372676850125634587942096860069810444686952364788735323858466647234200951300447895564502123573103878145254575960138841225164072190132850106504245388424438486928014299434568801613814752839475849356540970477325172957513981604491404480167046504824723896015279654787707010621890957072997092583301794704437701735125247516870038129000557323978069728888870452517972781897388234133795273088461064559373220548545641402486192677766713933394364872811755789830014606283714003195700141014681429294882786622687579472020403376108024741039510090906336449360727675229973259845665866566867946002738717713966156554442576683682590690225712237792368779180440551051586733301237985556908851455345420852723886742759719108632891629336681624927043103935026204094133861730839107618275143880678009635608020740920945340207826532863775844516869868658865824469197894570892976088139621158783935055696920696582136892332816571815678335730666144132755441775219878348039398103897905268435468895847373202984240042536764814711982368470292105501579085904678400339770961428820498417694513425607860193176099598653994135760547796999742619938984437459625479930654052407079956972338892826109342419997308497519752285347786952232067501907431066116416089377291016085962054781421002547159173007114123979328396792731597174255439153811533224096872115442572626204287830876626359410063823401107489455349997577434016648852748211451108261323383221792741164747147034635484164186666325948683874621662152921437197782637846720510842030132327595529826422208128761154345206374849326155766677777034380958020561086670189605235271001035071169211879664467808682431074207710436644375011865069752382447000404939396313597081545975750758357208909089378885529206259686027854463879276437276206354651188972051966715877932710991926454646082180497201102681322367490736611441311644671849221635668758991764564526847244659409420365716954618891875065299266919067707269690554851755611640308230366383480259190166770704619069050043614685685130959969518015488215614507310299292760721297327073003186320960300734126262644167018954462091809730707738297383357668239015941186651976707499181545024885830190255989091453922775965817848024771287547580864763452811402878152264710770400922253370676546507240387295413436869486287676479985693862374259257119585512750593454846851403656528811192820603174512971590230407486233252977963511511601439621981919076533024034194078184750698660564386159883000619869365843227111424967576886530594211684172092638490819688556028396616967494184025029315939401222375686572604766750422575910573786697000972312383194101867307144292810042546105067725684366923945895237169968478184505427844186487035631632224069492812478863614708966007162590553298639110032354917850940704903824899424027686499009804726069814923199245317544328745580866166878956148295135114292776786073704373634931957458938877009158274137339936058275097474189721167700177866592118121611662567588872584546274912594829203142066401428889419001726693053262617977671274942340482921059322500837827785838265834190174704764026404352620938447073984429724877008653245727795174855145714474928564743233931936923829935486302426018118853116812949649021900762442121953879909146187712151491438305095733269387059595024862626500656544857347140556090543346870047810355986472368471058726144880507292348120064393826243074976700329205322511456578196695029010843920229487513389876175151902937411599698692812275425175077810533989723798867631057125668226157868629759352965938554324368163276271302809636919860938248533348750875271504675738835139496704114525124036929796017591284019862583150406169061078089363071310837580803026848200107207648533480739102682846519709557970463185956028815015855234945939495708302485798484540249633872569372603416018895987190521390717816087633110094673539482496666201319951644985561125076447274471527872166335088802001400873687272914098386285119068214057231717528589935344112004698252327245555272159367598247505428062409006536055440564268270438097929469722992442648019123712584762516853155437104999473263219995177403002921530332850332426309206378645518617684947526440623362815996385746138411094966575931019005457018802055192391789309743406575155038311405616134208653649244475308879601774495861078571687706478476881098852881386603026191657686244219101894971481883359896520671866435028495780286554539209385157524180978225927225713396111452141693315244350643004830400821352130944040935351389450336600705500512420108199794232810909333298114150804513279761534025476275181528209327541378105217679219034006989119785350993344437099578860836786785386416698229337543155068809198301338364726647642840581016904566585868680907900169881583628186776292645126784501193190541703410645754999360971391981285561433075845646896555821349011165780031407893508158681131639256943642503184366249700909282798861473414242830684369888803133640228201136379086163781108407950815064456382993477675126143350503406640040773714376065946542187251046441955624695182119936295048334829229884936731680590840851432967906005720859194737269099786736794707036568168467936268768223078780310600287656100702320203441911956863612219616779153382274755718890142487842223353225859660112599270437147451726337251008997056450167460948983877137515126324009849698307830230162371159150561787053809484284485747515284996626312443042894834619411686025182339617999189537462068689875782243911303386054955759393834210292118710707381801847118372289756902770737907363542175763431200545347477994046259622666440220050901139421024558806545740333548851309920694175002693837459599953527646404801954478689340897734945084327905010467188925768932167567271342054086255823417815152935122939617836964604399389695464046148722271811030053812851879236297702067825835147880705860101454235472483795761029122534408796845366434205334682245685907883656002713585039824785810237138818118859628416487863850698352491831451444572150756813086416563544226521927569504264315806563648424758031209032891724651739052381031592439701746434074852545528162846146414122515183287360545795660857853874713809797806212807025124551390428255046097293977110500578949185384722440584080254128414737705600020825119725056245064177338386339030637153476009252392845775365309463850413222314554768411246655537849150158708769432777080559971330823180515422449745160966326793865865097132908267933440242585815715541577732883907691539330063299834213437258376730352860774235172547717598905384098448236542081650255434441063145548314158992512025373023557347969381991611920846617727762301878732961606788261370335296844554394130888247003033666078829658886221980875836816631637748583887776441948346303679050955870124654352993263533932922177546847062617578039112145151917749708819609755163433072781337469471352011075344507648791767562392078636695615378310246056687415563160037941882139586811568571774670363117344803599835866257897293368410725425112676804957135765265554902948509891747814559367321791186269046934547829736926595445034245798127795097744189195701492786832805536102334488968810321855145408323061077029475139688502578242228175759198047854558310697249510893925318815266176024905721544039795691159820233409736234855521020412846186852173731920208030104013223449482720929102805660547874574546483994149142439620272375369157640840791794807312864874215525227771760892619290194351045249016574546064947501733435220256624637839780939709786977539698194502532260516659360125241449946038382035507402113033749890803089067924269443550665383999005287589758266433394897080287806157200538779462324762949866581078790770674524696539081908332059971527094405015679613397521448665898449320110051956489515269207318404758844271179248253539820637760121479750508523916136908163123819588549387255587036656532055047568462869578446504582261304002047603913865071970680930417044981065753944707502372486695922659944592908799907756306694220998321037663958871366659603062165172125948811534135723360491174595224854463161587670165533638015547260390401880681043008717772584117040116901083324959723813300010686642444589055945960856959684754732387287186546550956223340799785737358148638607564892353327981570063798170904658282958215080018002869140487070002073776545131412250915169508302275366616611400912778734917866695169697198854314163556758370686960253826333593111382986060062217889848024418940331049944306844169468263432226710812824756456380776217505375167725078931147072118954312801937295887842413094572499389448927481300413135666550736393785246213175833809708021371964889499735566307583099682632770291911834299183569865636752659402679867408714559880702318574435359580258426280002852811234119782069278230816582617461968447587626100793570234935146911078217052468829548979924905307208973856356713887854276259428145873642133413816081134589734071974045821680893335771791398371917500935378377116865561524288426748819677452741884460173827010485584566143717633557232982680619978801821997478049339504715401641841351188886145333729315493754058632029606902517889905324095407622667596202646609970630522367699903909499267948186215571453892971040502104483456595068829987104546859365904524893803155580885323263729697337049790746932926947850772442445758258084647653952095221005141007509458821373346515074261041464018713990769280100395816755914231574654309998227336784309227299831589851565810300718994889850077450786714370600623121069086606199126978513177161201555664327905769723552815506079697454924286611365927026026297604644717873178244079053915527885259884487211032531912556011283871447883588607038654263980104316085569225854213319752409543097366620375193251716170141011271429311489369260957203501734743208706081401581535858898766595525497257585503459116994809241127662450892293945268953068990975479068736255433632256559082645152083708703087203772872024856212601290348890122227131148673155211908605512765615610083147301906372780933330220629282376908678704938462938187249322818801451821036958076667383255645803180958926566566614743473906697503344929480520152489127973182704024533257664286819883797014903157818793466986982869804958351477860214787910399328159788364739449156085206163012276741979852782301227749832687749585993583213825020783261156857040426824722681216528612771407163766628364430507152821111329766291920136020995246258357300758203075626223403827975733061655003009852343946200306310485417332375548157352759700876048021788134459690230699193195973860158681341803855131813532569659824563626487200621609506038698644466255673722440931015148766936573389361885904550661023249985194870083291159951273185377870584618906564218456975214026535691958849887282025759303357042007558508322351664318248056870847596583583332953817540187332235381080669025712325051878482488579988895470189676202376730469574376801883550275623314172452710196722952085090434198481132407334496410395001252675744210062394568365552839778160485073319868873433601564214588041410282733269320605240969399542740977456736940392571836729937472929709223070259738147735917982857593172775610002680466786992874807028831045450117761307976353536275127209988662432983577165131116999061463613344557474554251156063049513821987586885544446808408276650146883470981554929418992839892654369096598508455906480780236916947870899854677085754388046958800841832169102277099066266869734316814322502184609775857528566236841075303502537262772636008687783278699459225996961812279287784042115719817566006852290628773798718306867147803548254680386260009532015630356371300451992516070816852968225057734009030516724623484450112045833202025863751309533064094318991872021099416777235890435509466745694466846132616779323948944303703697270493561621923333971924740737208441788922663129486390779836408767407997163519130448800464582779552397565597707573608674758066829533175855658848760882848413367682397519107095680588101612036797791839548898421947811236150897750240618394984491643973524921047281455136599072456292543520181113642380080817305028123289652143508752175628139393372827113591553602199458668253610123965441348443280843194014587657333334377242872001970538834153811475600379266036440393831901797641724190834485135177745402647686260740461902746091440628799215764746792410306652350986883785938863459025774400332298731333135389795025401094487102478712357421332941274258756302207811124055073912767418691505875758273331303156773685268274614502938206610741450858955856148279844224002343963995692144731016403838170383561024046870585167279632546665346718034295736644481990987233943894675753547568818132889697255196799929526197087771107167855348493801355224945832845846397065564575275298440718528555481280277007651270184525954159412982377031788686318274444915034424015653027772220255892824956396261464979410828860761270816345068487336930215340619589105773894037051561373644045536570421498879154572976896021195107816375767489764200754134856802123998943104929816802534138552717458775746329480477311705298110595085616723332164472075364289430500749541499222211446162372141960859099104651139365178230838156350832957158728272460273081621166252364101298037495688367589762613815061029790569612615003749826430264780129248763223913458210195491065940496158252758259201158854594796585851352392095107139441547328406864927739626887210651709589657440942083186696839399218840385286733329584774416784130882668484559322393131756316106133243582025907158780617006112587970038756173297508149152814445065901657121914724045454008803766671322275234497680819434136715577733869170696529097734150276215796790501637613274052103177451699422317353038581797100445046012736595210320866380429783121359001112676429774422933351920306332059226279445062121005672161102308991844096959478750939891514836669614051841910754291919619299679570428807792399163644504206560489604587709477887631516521055649578264980705846425416576975424825088994827216887744413753892787932640301268817919454791849679129079618506590866281887181780465769203135032817165005511899776930319603477034212657916132354073444733561065060189733493717957293772204672938173352729246536555893851241077405424769852570168476068654135291106618566914871272004878254555693669948104019121078583215670609021090535503594035638832330908889808919256421912203153886889887495685144673316819296402022833340053861694727709429202097682612900727677996253038801605903571615468062669750467232089430834065859155117090666935072138820517496848084815650923003830786867951621133875315381783314712554169136862574309630375813963013994583448515677188237693169348058776644655641239492156879512326656077327850652963269394351056759563901210685480547568204392626318162831059044414731677787381131548501369114990390231108899765635716181599632816600475716766740821172871279919555047476667899338762090358182066613538890554427548404235663456709344467384924696747074473351329515757167751467774342764552610187870118072458660779683095449840474652683797970528198635631815506329893691444630674773325946968419928768578621664404069579794443044542185180261576568611996244567313600196869427708316505874993477333568544903626643114770708063011873552708746789716773958790951693279475502647331819432572605514831984419390785024087776472997156645969931123358835465862504421450887187943540146929389064483135268184541808128613675563853099058469564228404764176512741880010743787042451713856531183289516682400888840943696695536568746277197078095346855006586791963961720791998580499661472889307560781836815133431776387457179454519738026173987412461002912675628165407881914871402880672684509330380230487583149199940459922879094904256553395593052705468238607203726422827347438415909392828435766817238887693181763023082220112077436750768459700940986665674351579850955370197594385606741865115545193514651654172980224943041102506153565778119127896214900465705879948749839774079181285145849170138514893741652024189536602913095421663795373389734729527601171012869673796530950510660760027683583265402945554373321784591030514251716833710247461183045806220277903109792887794262983182569950605584270336858835213590628334853308847524830182693026445625643446623520489733089368432805167834098508578570412887831259910541454753283146848647988534374261130454616112996862665804531903004230256858226147834722811075106230183680150688269049218185607013139661594163048820585737293860595521603606680305015298813751445137961027017663476529494234876781444444025718893298168783673822370412413466610444024570170902292889897672055241142703704508583270989662721839761816885574735455310672488803897742687927018386777980285378771377889431877032878529439004839526814733873477015391523503973887078567262732672514394412836003438875718388442953723131647044631611627903009603665101227915931997749731764072198562120162948405709812016684759161698871551763142713620049182120982298647766073310644932433304738356164972924360168334328241811457364685629419509759634849353184633175389147711055942895385667849687985081609306886366557969902049841267702783038293130225885222345593342238548554553138273363184572803617247015356901844683045812061449848657061712816649216286093575093357677381059525581045990468123135481518725084988648254437058668798033285819387892347820854925261223329664024228909562501524147376439658385180551819291808496749088959088378739510751321295904821702415956816229185150987962940865334452130287783308710353803100186712967314685326655815381100200604977408654085814475334982687017359997419473129345895175442908673037044637183337016798393119876358145324137326774375063361508733173473315899949917749904160425842986595966494228883236725091447164420905865275656635301465613464650957152064074152385617721927703121615871597315889686891748060499030092111555534071456349824478420664783257900349114556687752662159384671874151756357361577311810258983172351178752052396484110098490177958355202792623152950966507231699572399758966673822558670050321145647449305268493830706909498532125427479778412501190478576047652350949593093362168487334211306381949008870968826439056757684739271695817345290523295772465029065798795202961996404103719886786317203762263322063515392474330109490795342107312868508927859746463350702700380959756731857282803927137771779230856409537027293983807857720464285833878861322235129563852513111314188236453801744838035785892900988157783276205643597063433046940633086080840611882250427134038075187351586541352971583439775339961371316564663394507253934990186292685499701771861955484501760883268233042162974938474560274313280386262203783734321540709668176461874661707919986803351331226183001636765458780963532302343959586148204908747408558606471782956252247910624748850804752471490058554900106379167562434569809749637967386095839600944678231425603608955987241204830781841495293783586882710515926632237050316843093575296722492790986679516363846367231636734658931752197861345938588648474785439251428509850734480124130712772406179118908514472796316866492262032626980601718833788035520036006147286078101907391441305484494639758662321604623296486062962268172480866558367936854423548959143494593917899886071226447789021265750284081465756962735971723813670026942078457310283627407715676001510913848935527182532568652450333030139676875022347563573829969122148570411931875734695857898254723168929137245726821177842850194115454509061295423382744744266332315333091531085209346818950721612883129594643848779262004821450241430627252825689036265941933857748160067216141569209441493468508633066273572820329096594712075419665168596984857286172256125274163303296428611503730065220083794648910236607523583213573713165639358776863631043189481283620432193942457697069472890952147976680934237143237510429477171904558230344047099257094785616532868948711964582685567375391331432149313793702664606259620080620337445857125330604739941951460470579889238480470873671663449668390440633805271246145308541661679156593620165953183734403325822617985872583586357991945091628394244878027509987620247736496473809354979800336951513361852883245043515740571395742059361449499058241392383692799631877198947927306589720859337120607816855991360843684390297149728826753472521996446634698125688332907912502524061208351532310940201187231942946218475241459265519039334512510865600934744573170488187627523806621714071877459690058208260914787592182162860548222795686582468387290524687235091277300090889715189720846071542130574823541649370194738525843753887591363434757242131054279387197839881707645063188850887929121939787171409154558906190365649761747997638158670537395044188075684408937803373341501145651076748869108865423790979573266561961438137010403643560804621412097933734212184254611389155413672232538201168612509129761063356257170993415253627295416451694980485632882511334815909194853001409961014119589561105890778623584695024908632053786346943808592326542662980149599280592145008063348256224345803391905893465322413287188872727027863626626693767308005743294337409715735348986101729209685788695539308901035940679248498331518763713150971049673744492066128888019268302809612865196878973323814199164277949032377282396252050712850729591836520497075676012297593493657432210401480864763410504290687851647448518667029114021050264832380601165431198571186690551384448420250811500171453874351730343195477178927732779286401218125235656359974561647511238206567194889347930297679618343892585094080925621145729583499352882970003410734191399795171499363501332528875333443182460648069608975990179378286935718943117067254103203606590641124084138636774655588219689484617955740450696700963045931837030229881246522082413337645996191902078436044229357613275492184067533059950648990167691174830475962905558588544107026593085189164974914094511409152839145454340561682090776798728549461185704204620345136745047759996248207429347584823229516647980771007451492723359680317844477318038916903823852378500335848374125381565500302808215548357230559047875412166402836540855925830947781008153382377081890032822655533696697787802254025401091430906827873432907879439701208303872076652077376622714841972683063424167307900301060913174827758753449073659151989292555510208021034609035922360728013827697562587075680500548196065463745323788879063558732847087617795682887352210675999441676517874896094351210814592261886896300878772870839023425812817714901696047753707426842842568767724408086934342398132120888701229154640906201162661384092898991883859974451871184767218184366877211759510238153098353570384807897096140814502013130572178495316702035824158877868866530111276310941808557335422285601487823894413824180132060265151594874722222269381280925543600130827650032379227032283878759551791292393115592942562982535951651278952374200031136886349420907490190333708425763898869310624531424381275534766795024202261799610739582942989565018898402408157351259127601379233554317123759468468530917849971143488255939255499016759347373080127851887112471555958952026639818876909917482866289173790235766944591398473652655974108380062039265714081124450867659497797784312842036405035717404899920697634875089141514720240012181755358821595405092240511547174455730699347005503252583028062992094236714353717559575659895243294855951868979156852042271416520612625811606171558545623753598899878023759803931054357724190733193652433111345322539088503526874513981367265470760326524709274981328328218162035670621229845803813721658179358326008788801413511041305146348966195794020869839615637629774265676531155624844311655843424862511590456302847989392384667891615293257719352817606283676656866250415286793511720576190792763885767238333968823324236698228857518118287388512855539861357334044363666808586213897790837130816898131324171165614700992087098687801038010377049410900822121485346299555940640659507629343848726651342458071940071273695632131958308900211484129751201628003634980349097540072301959952490718820110458136257705863186522456060209487789383085499726752288358291904312701711384452263757924539207224227252468792246730432908225944583653478537966149502897759928841150188813200500237405482380827604732589131528608997749751248352945016869719710731114839731035952828296488118852220845523337242594367092273117817749893856453108581247055536129343564658490249267030744318083937907844704830635968252945105848011005713883790500185163783803020225244726106954171921608677332922805650636027561889430777580032429735641697695917749799118190298045900318622179468051052541590873385729791961509696526971566249298072089394390244581910642875509048370022889138434399519421829252694577274307942489369378355907384265944189820589632366405078637062428156244261195960185212152119564471017406765022995784731724854220213020754547406433920005850520064823581260158850389984637689791426616687477205289242307476153756261004587358327335639002813042953685217796494873441177508627265994431924344657539613600526275180423666674290911743401354459630495579222274510695181377862219720211159331626965329144191874958871052304449943999212386203517958502601486616866922226990713074951695572462738124367264398505218390245801535679257114270728035691785717392198369249361254504838499021354516971265246488806108951028055532550752212859945765922746455875483099633308511217654019560615866080920794226843500811249765518894185017629895868227460614748508777785557046271638127370941452047460608402173259308205311885387491430403136804110267971640299965977020327773385116889517472504014114906609700423199136484684451592011511497703148644093170431852025230215274352966841655504803201819725994221757200082920809490633993615503706232732660160156767081506873038155761083464349306857354519528971836619747341452456791025615407511686530443836331822834441602700062310388313406183591448316242291128152770672385227529505879517965570448931473103525238504173783697046903412099977541665777847982274949935642803282133721213399651449827885473804230895389943941909330101538044081555494553848577614958749681802447995103320302398209764044199727851610847903763432531439783239375574752174464251407631278906167218193006328504427870182331948657093719440051689551476932864742134501003284801661857141537843122007138206432845330215709709346248665047403409912459139084464961297573384644667725387080895510135990276958054569798580153565395137528885882837052997244733253413167954380830305108019312133601469964486033599379183642902623416038002145052885283859861215070507325286798976928973466417691663190252821214733275841840492159779813433277780925186634758014270997858438179107073762777942296437958154848761382493002846277463336386072138616120067310389552006816771587049166431792435381140397261700378680251096754797524719003696215335592133766041817802626559733632102093237137618268295206790367468731594010550351424559784983818839864947195183475671637597309224305446158844719213192666223549205985123372462864444279645725503554862534949692129079104283833740736763000400583046793095738672170631951750297181301111955849164233974900696377859105832766578252768263758079863395468597611316502221290743718771660287849504564192453305082236541202842842448730366245307000999470877867995721381573914761994451552568672297479473114762077482608027141806124382972352227640662786081514415945987915038146645806379121070679791344918959429518108317543825353192281075570424861897739588426627318421444897426422381233303816647196380677799227417558722639997489123550834860257971442116223156009477977855636896453424852003232125472910061152823149113402738631215558178919277682167952682055134967080718880343172666935237183240058648838924043199892423925156379483158362961277325193418655618619698727820697193445379569874583557382858959438489334863402513286314252779552634272323179151744985615628616119729601678341771950485570585740585335715339880695289398837994658598563135030486559249930842232190181399861520316587488560219155190813200666432423849152834275692492733715614500178172081593801676218294776315471060726048644021382200552548970712002331387699847653704592918613549948122427560848992541300228644631304491886617661378190622614170174911645410270312134444089580296732310268217773090998212738954336316765544691092371388714029611258804972814263381051820420177375290582090521470859294648040672959339031596708914719061273523946568605668046813026615872151826505013518035112982411687752314985518509095650618689746674750087725638768444496183268124048336955977018287946384823254943108531100408143867008716171135262010355905849064061421646440069748756126376569290059319330329862623975515705164121681446107068943214543734956683036024279104595190027180336691561514504865896430161421922647099671188312927083051593541094722096669638810730821718850115828163744686332981340623306234661718598512509122296873434253488534113125644745096673047874049253395058183589197547648186553714540203877570469312834557932075558063193169554202556745707461244654796406682497298515153770879879346972902741596869488139580306068984084037446377931893383087758504495932175118357624460278138913696629078943370565423551431734621907671864611083284702431473957933583395262136272683589425513747009297753229900622201532488189628833646289630180314539574362897609786118678817775213674631099593846047282511455075606913120137347447738039855144046090299930773472336751219613409438153344072725303791637704789341056373822849585234356679965443914292066574008766618555730862883586816980136780981750311215261154013473208748189377706159190765797740801990442949257126860617065040312142534389168865660240160777940724388803266763817713009368112889302650490157572535954401234375220225829846449523663792723531456172809991947016785796904480868131465187139687695840080348489001489831069798235057313750028452644098793726329690789532386553887837282640917450858961000008248713676258050586470860393553392316973121555448958000753411498136663448114497005839579805223844814169384683417319004723041633127839041188884653058533651915746420879775417021140977244531500455595308047332780250946519635414772391541989820102716134236121347631570705771874748668041299662869131028006710278523082843413576616052531893376513011923952138233470240528593517854517504327000750944212737586101428545379932998444077981140338668901739629815834600667829002406971593295014418552117973589143125625663990586643487138002256971265291335831586812736054663400530724974431957088778500482030494295564914968902486281823246030625860243951093425055387879030374856633566514585964265719783216521949555725739177808707567898146312965765111844360805848842697101902969824992452891611898124131254426910667528915457958168560333836856506444198567520404873252889361938422669048920782836004265495793932071585303165042083138910145492610956888430488460265984240982570999839724397072278747788787877884046244338279266213914961997491583362808691615525917898937315315387914044531205364335430792096264225350156830967015111343171703214855163906602561696985110634908697439311326708559152382786916919568652676288019773497461895645009263280537854417406205766409381752383942352994196365915495129765176200771105101221016417076670696907883764981767825018059582788391818508891824164762772406686248213066647027994804982327838584071059662430745904235390676798822997082826000513084254740987878707571804223752464520008694233935215820888549629708735502237834629438431828125161835411352915279936150091005702032194623455277047155002714180363641071204649117899569306217257846672520136426550163556221858196857708532608870441956928656341942286231847851763746033876937154073369908015359866986338135096048709357703845097837667865746366775978853654659793041769951495477355150232936861132463800275900924259375176606395549722737688599686264870415322625053670234400763889775031429279479784182687200116628979103994105539306651432436328275486242255682091246796016505595159572082243017973533021693814811614172332307954231378246367866950907986656509150631033540816401944834003221474727736311735899584041264574828407594780860127383757817364679114212959258723315374681665354353477441481887916127175878205552769515232219613304783008022892304265729784780192487236540327254044120095250069462271256898953536637552038685053009642514583831076997436419799339071068812694637291063407663095185760876784530250087801123302444253492443220306411961559553672890400568892316392594834847565045547118192295466313585779715902815829620608598194143653702319159211429843953332876581774506594323128143148055069546554953059118860877250585746972986474043691055058594235773815325346320758114860852509853102749781337639348249700677006994285174109839699278757114679880364113338267697967969660150479065866218318735099057891214917227977580591664209009505324519862104967789976777307643015842045789655646874792494618682324236800423338101776749457791346399717648182554056472698604877561211155398677480471145380530929548999242528696751914198689824021257844798805184218205777163049529772582307698669647928479761305294416483802035910320061668197669554612987176739252625469739738625774263506004871786066332583371177527475586199692104817033097088977277461723066797678326741651563627556228201347105161238847784831378436293571800407328772398114257369480878571737076650921471514076740441707907063454002952014310713086157114121064385197619445416863027093035764075167655921033323970806270358993680674009725317443627360936167144434792668848758235830002331603350218118427959802590227421653227613308230461665138492996552842195786070533765765539824527067603434463967201084581604633580554744227237436895771512925353754893124858344616107755264159830292043179101261775056909625510923578821852022989582958665921531215466238698081626130422668755623730270208265864346203833874232727385457874425340225454530373826136141796376717018526899783781522347556707547147588359435101192004509328096063645178761506840044234733569205278417499053637664649567389455375595240951270281011833428227147193921684618722560485219932468397548174690483136653328304981713975128055127966707002635617535792126039180908039706491029396875574625768693640738790888268945108178549946908341510542782688070691128706918309492763409017492377627764898551101703209562021390634416950458932771569560011760287412442044883866671247496192023540649933502422345807979576017545237644225196348212670616201794243727183057618420934529107114228846315830042170251761830399281381524547465067822601172138816843068103225008955591514815277311659808802094213386027684148313352622392251221935809341965645661483604679466105957251023537183207570687138698842087023409408468139071266367896596018009424704137386255958987575368138477109713192005034946072994274487207645271195864241911690668758632430136193376284271996858375322290862221272022414529545876888695945161473378405046565140842615521165965236488452137058636518182031454833407417860376658153252055853435547519029450981890689351285140303210777699544452002220941825957906983673212051208540729426387635054188327145727003194328886022313993722352469192881019764031576805084138979192971726946059265915359298463100646697692860545202707554831233917260126314297607384239624090997822233865678439592345678226839926081665526090435161331291700653583286356032533579057694779290750782063903947478983361626934530350880803144753985078927490815703938044265893995496673037298704648165831312965654207046436957020279537199780231740126831661742143026796286950242843802611603412123226220171190898057404652021176215039314742194620227565205785436056419688137187674211727631967196464332621580153298519534081936447137631754089664062964876983781308435752198011209261252600630787200121246817971942866342304572124195388798425055704443773608767858949232510287476625637654218673182576256117985704538977226014563865120836766363269186357914994976401709026263758400065172124114459181700726377739679732153530132904448619861840528973944826742352421260642386494272651570940086659423873133883469926717176210418184128650131147404633877931465741719088141911939941942141994210772476565056668187386590399453363967036220961374381803740280412848058166263248524983969730152323204663497783973659404196762386494102155593009703611194048757331173261600746069793478243947539294014787047034368610993239851054540097061482804443102289338236320198816398449873339825881937864138999240171309653077026563750629071480254645816149248488826392767062470514515863163145394654589073553330879437362320353470092939160224659335308660996371845710741932558109868153067449249684097302865632160737755129875404484163942668200117381561876120679494801524120020980231077219486910056601494379875406954174312098400094939052448387073260019744485277128466104307467971228348618126202139860535379832772252821955593763193744639724315544109041668640922864004303793159766476202262848488282523772987771575031785216324251055889662261152248717565416279320381536972946174839588932667010009820212135507915880732654578530127611409837876958859178247530736078440511144698641946653175841654373437688247237731292266560167242918112940389944420941174743535147426649800591612293714981117671697764454891283428703093586202920740848531925631091213040721317771928136618993837285494566550976428521252366343326556477772332005872311352879494767696608881551226545455149988917798494365775512095575909101440903383579820062239639270138968661940670761094777538791821771506025258484557473561982454374594664067228811065234924940303993716280138874198874982324688205414969252111875263095330553437197355802740481079721318106899497411383812610779431944124579915027422837193737031195771233688005169178491461485443414762193186733745987101370812541183223787435890310629241993973385987869114367127837071115824445194817975833038074339334275481251667558823962230879068616667343532991010586352916452541036803042329208632474458493361443869408858087572499252960478379072076702305282576630389433372884071751399164847818893780391281461856446289093230442753803938661949546067888520830957416151011116243680310212532459831274579286108905532143051834204684274705130650092327668881230580367330188172209396547359036781244614854004915665213830994160611457084770506435673780248639286150578691579182489713235019919573796201339217587900836158697685905577111621956806638561692026764302093377837153582735941794197788031872887687929651104678797733323677972497205193592461154861178534816386325130474398034565088478438769506787210593861483126558698058231148826402163863141729519680246559859529165348362123720500648122203270862208454533616683081469364889156951401530517088639458282281849247061868587285684786067154332388779521128053182002213450376027108233080369824732952663094796858325284652421452481417193193367005913963872754823722768116206149381238087724356492459971159731650146946225307636002009301024695036492162122116664261386913036462242139271829717900474277227295823046148114123001306428998854892953160424845064890043711305415253474273813914302853062948593912879277472464108878861928688175140382623547438240790349347790442564458178428216959106708992602283658282789349286089081474398050650391273293773388125863633584019027231823240353621673409123488159311363991672071587177991374753161339581669509614881468728096054933151427038164417447810884753626560018133602548353723913373960185422238110380843809399056880536809022211128977019505755178750993720628087985434146306872909893359680957181847835002362343702027064077876784788708890956399327137419923073221314873688037774857454364503997780362209356478053144448955495285114141460666191355054135625928020707600191690131053761399786800459070784319904818142600014951445737143352599842007539928377177102473720086790770152192046082770413179074886328246648033053014991231296695686587516120975797794793843640320907600217776582546777723677743727532714580485069009284822406979454910801768907772249230034315057665300754351870432967409754279115145010677411947163284815721618363521415931509745600005602686790482575648952871708150723787193180628041709835400258643275264410036015646362926583465042556413075330557942156107852146495598223670038058976395415648939856604392900049219145752078652404776622983185408275001676469811862578980991607576037439044562048971004026438602268348026777283815217248979416496542311433866181345456277428081959071985744916597321754494161836436308389974701872366105185931721870274670203215849859106563071676864621646714116578986727038661061859526308653001333328567521421154571029387385486211061575929300257351555757763829122178362128016509566561336858770845744634175413949916617312611162353636797423077064273091102232277764854941229990119189314993636589209795076424765288140746918945557650072474622118667507618403324597308819474695114667509464159868364030213252223257827362212577202578446133756029343551767318875443602548477041511452669804862332479670182325865110970719923243248471179388336485119238340590401431821660179430010233487043618893938138021713521112498083503282750009535366334154155196932449329773153654036272327891288861906814538337328517559511814431035629976007551053869156786295305625685932980809920406122548549836240751509905657980280167748978045029206861975809758051639042618827818583372909980263026094608622297470104849582313981652391488171162045077987533717630986034427132989860845274320995694135728192222698597286806701604377718502461108085939720480827144562741049457958255970125444582065097427664293238814316709636792387339956822426418468976646754237857283552740451532156940475604298002782962012983428573868746514441698796963138694673906696508688779063856242549321995747435785291167089244953986390993933928545707041847446734949513220487680660156808490760231995114891154093396859242103746243185096535626514532119235035421653360093750260329009888972206801390375585867495914709608753199476476382413410314051023442710938591545981047011241661912161148446206938029846105886563118449137955421078522265124688759056387797880062118681523237193291349660477076984251371472443778072110703149833311202215091505874017537983076824092220709593889956674834395615573688795962441596638378743573572812701921731569271975034489193911564040027415567448003637129623433510712451758293263780256585138041474817724413798649442878852184861497409661025131199806295544273575489500775581598830801251928227672861541561119769794066176474436191341889636788580069084423987081329836905221484810035161251095277821936388010857067426721995372296518582378787986933463454345493645990943015504824830215820549309754021215299275013636298266453684408621467335109472694103761338586425453529642143226417168967934261909227715706651652277831067844321706732159438936907514214822332137754646230650257926070830468912709682875938126815349711880458964507318999771552320815975362742705307452638813939180766716067096160507176331395593245962716750992263954330368892608547745376891880353504262383546445715826341018660582204074016492349334420633275649577193371354898283079882822596121737869346090859304437646612660000737702596580094645636963424762189687840606263647197019310269485940173412571901947602038654055492553311749828520740037699473703811279182992518070392678457406869184571883085393713129363246634089902535992988971777011815397152665145092183569549048171116153808354732474642506546694466724748025244685322558212370513410349271139750225870360725708298290241330698339704392035903524727261697968288520756314195872960438661859818473456902013064536731974113447850159717470615659898567151289192473627828954555727954033263628621034984897940824146640003935540081197416661775226645128561893637589382422091607982691283847726397233709161949784987469038065916984563248007577219032730919377884789052662571250240280269425217199505746547005905495302180735209996989029632629855504116531026996195734397248965357096954385295278169571861881732537997559440434259471630423295562293760485446902531931928648462427243880309476405222469346096511459597818812785414527085624106256252558803282498059748557213057743883679768243928345321022257245511895856412304007620762498752249353297092401136220651986498894180193160012135955690993324048951730824990787634381306971294628111771636417835952041517079698063512960420657968779174950647627907171886263055632500370084727527227737264631010254221526559374811530314544647860792182478309521343426809976908298663065471382014215150030299797445857378995282592286092565373362828443958634832320177006062819774072080804616879628672279371608219458608616047984423403489633993249745374989750654412413432218217253267253216932980376004496550607001613086051468694944017927105418330669570352840815344465640440918080862682350653820182313067187524907044293767321458369028183799580934616414158796295329213196553182452479049450921887096764124050709072322507399809491511455699508750338040583284300901171313309615178613275626237892994933657485934371513243198120139937620658183110280479896238653534381671336627194717472520900344244877280788851311457616442439317643054834558155913925165583674185452186973416734436226805587072761724678407408512703670987600541335921599416601235315864948194881635049197979574340826732553957078697331151731732229951203688321531109998205181881343510640941063716580916801297629543228322955122890861180838633317526775151229601987469897771760079172265749607263487906629024497987022072104576320815318434854030891829235558783633622299773777747646738836422386364331478160318027770170491219811693022873340407349988879530877044671969892025575723285484434874236383139461236463747060137632767379586104269694990568880238646504930485628065753422661003137901755247736173402432785429345878402015967332097564935630466992715768473864304668786282742686552861361250193664385164303342974295351311319683510348876965966810464545744760208835117572657381370961317417760248526286071676054416487965782246526714559448639039857496997416101945747299507803791818633519434480904202291814386938067702076217567205509769302645065034958481080199304217517453526348673799205274075259441969353575177686912020953236045117481876107819782373431950078671682751038685442325720426114020188622503589277162969422108709513652287150271517189366056500367334508346930906002003401712569922392131551475266861640016200705383151822954331979836867481468248892108650865831967104805459093052714223283493053552363677445474511294274547033309813756529136245287802703900365338640967861884230002220577092962280326218174094584945760312603870889628048676654857686389847128180294625572201803551557508410876619845096677743157534885517212595868856702727915914515214786661154844190151458743509893642671362556954836580183616950374726964999943086513090828066213428457666912112421789637710332285673033310031846621848978703970547245986127818843444202524192968723114546274769994378623841278825233018488089473586136253170334273529858756121044426217532233271030641345647074767375322684925585719707471289656171907093160812833780831039854338730841402736938023766071692617109472827904852501690385761566497022232789871905381998394559370301348189159066991876526134390635260545833106918566465011347112179589544195486044942978788858625740309882307001402787545573375793334737164215434832646841300258915690841038974142881128442938980683239996328304770599864217771659440000777969568280726081802733257811891238238060418034298408574414018190895390623884455021659621549632814005398594789030387274132503354134654470907889029539716462298929904150790125699266488770159651055926834382088052603343541546190778134808849337691807049303578777266949166427905010770436928455701293987309745163241474154188431213465122961350614791112798033766458900926408675831680760250559547257918476522857371388178649331216130325553006748423575038888415484878102510734549568150281453054110054737867831122263552627165595135889853684524804044231811065583751606247279661044827181433717397261105700775410521961638095288807615992147233563063523810264019683297955763415668130230470763115452980423781852556147666723748046692449908916393408840952822263955655884252342834852973067437508116148633723634836396097448909169957302625672428585326863247086533670970881472241878731179798763510527428207981400237688582070002901035064502686017877702268438790061194568899182076499291154124301704167134932296788213708032623456568860417443705984016701037405279270553408737634468956379126385782127941387484214155022743079446885422987729734007679507695141288839130212611885828576951252390418758653469542383166258641681820716528035135094825436107004672684996730688627485017967804674214540553118594419426049977759372409838429524033005512566799901317882951391201920649444714287530001773254328622092414117299625982757682814565599384449064669063245637669538890260341983196161011347471018535411776902976707152248262287310419380478258937730130226723645344574471217349224354086235193157090043716609828076836634162962751894267711468548961519210327043175971372513640201485781888298539117497081481204432348207588194635759113180970524624973580752563987145067098518510233559198406096411784494483363534382360568041411898584807440408394712687219151837707538988443793153704191697261089425210853236652830849005733187662735542451583284858702727745102614485090871107457713885428375799968259924291718286056874390464457433733244281668041075645554896575207390481414871564264593536970784877388965976153625896417560298633264228129306092545947438692305068230188636911081441487147772228741314411889571814299568529380004534283289519417461056996513524978183892070097263459249667444638224836772672743229484345345116642930301796453809266340884343014082892514592933511604501482886076942583848292507370215379453581712621423492969667378276447497032583107295373878917258038763226058319624007669808866175894975536085638078053304252798354376456925934501028093386562338797716839730796332124623559374323220985028303673845288020184410281668432985194283100345457539118664866443133869304993920827220084785848411580948048845356015450935740847212895492226634801227992402382595678675875047781855191298216111328496185590336692136491948168405591348774477338513228513565511454269910111501438248440875484881556374421778973389312870705436412889721879900134360824649127994852797101347808014094313533472098703628184299774320592727461196308383047098987109884613498559569679555274567854542287845035974586870093294156637682607977166621376389548880633125446795923332273382020543232337349813351844524596036453415235454643353463142646990854143518934314284888358680826029107038887172211155058256911054085367188511212217331321664309870055362839102903933895675400666160602554201741455130632025741207798873204105208900509136764155305802440978718722601306372575873509786554582789030475451347848492639375685704113242620026337299183050530132122399093748582887284391404506768437973293676617146791315213626975737969462427464155342121481928119737449325882058548606054427771264845051748575869564871816000358484993477342908840058353664083866771000048794084427945039438142557129799589130667263801269892908257421449265210045424658799898512643464367158913220626056323616454744203922737456943682373814130001969878495259848730419760863141304839507851405948778676874974497337310185703450615927588912862198215250998552812841324241700841621615303944248838666659694692396478432950367176336720602600405803836846898692884610394004202926868040678115988265295948561805887097213266778770899575051006529314461721342782586546909446309591025164307391324784538231640740473335716241422218270433983344564432913201658765896874579912473047775858204755674426960398440737021139946609194618810083577819138611877219498090147296112674645630744088177007348512684492760726201174820460842102403356783336180720871843702372451773734525272676463029572908607129294344675696861709391299236483120579531049522115686719401602004117977981056185350560633002350596038958670904246220988778871896320492326608652613901878751918685927534464646271847158101475866662428465966765874784980454592999815608431810685235097593949287475935161331196441173465602897122945006283362022619644513138813350966519336768076578084049542148594410348720529772150176815056924469966570805168244263415996494034764018759359201154368826568440596818551763809582550074644549481599332629466537505591062440701147624551458856174388802992686515217971621780597999214354058272514766576965887081274043964835164811208999790941208391691394326757393349873961802797085716383178519708849659696579583214242469353119518364673288254577720352883137598705973856391754004764764620203486773193012575486596696216704715231314812099897280837925611295966959033266021291956839285831686834563949123461117562431098252476561948712183131910070372056834922757231704189607878721484009939764651688255156049859056615613506465978802258009993789519300240064959752619218226134622153626410693891561526424538807635505979100721239879862391816292234406995762604780571035181631595466450825901715910768002586909346581686014707513475397438554529488921760892997321041935647141038495524420251695857379295718026844370910323005046225977136525417306058600134952969929308022263599262927637404381283839150387038720510401936743588974932020809176581731677540488820251946317913582678045816140828609866121421713575274817807823825623915899356917913831654422120380554631683313558286621393496222988723803192484040977306821774293551705734645479474586677593250180982010132183101899690993808200948829769626519227443461435103063636697941476962405484124412057823368322875386228524510969023189153969637259696105220462331339587617407653800357150390563462075337448802128102900946916650073717437847169131359825884791242131632293373481905266858153610806837388665035521710034278156103423005320955048941658351770817707136166419500775716172451827134450707695015982330073379304787069470762093052401497919468042182023977022148497313166325776707448216097854088732177531208936396608118722039391347932847461479070113653019697098367420506506851457107811220543155562672103680354427536366219248151589463394218233681327186774743448942266506404967881180719958391128906429282840367077069840464780858198830797144372489571709922439678884944797021198428970273239535243653401470097876383995492378416740373284916124301414656465373201475050923355319393759689187016157860109078149760066756561238707194466664222851505153956883018289079655744210166616912282949100922017971480417678239339307962386045126859590605337824998758066907985232102491814475514904039674393035587606046204995835695200815348729949430261725142172892468003882587529369101464478877542909148450564312915341253733398634424152071861339310812478323158559644615205429947325951285146370459006342046432882241888110107101876612147596321310212340997257211570007770485440506737957880653405395484577069547232792806582615629929225708995904878904527461032488493865316645624636091726360056674595295536613962849285811935226919271109999025835286820298876296101699204821016092790224618961028763022098046644338491687592490074058953095087461017349309895472861301500098070163320570123761560265067371158957614605232364522384564026817005373643027689371740443764198262429664082637419014502790337989803541254218701334234625492039894767657916571907482499165986037499744748206112427733444725257244993472593567763566635012794203062876490091562259332324976157253512751969310107035972240024050675084143251210387139975134864585423004320117307849763800106418874373007842269672051674053645502526538465391343782064363811512918634733906812801789801702782681428037038506526862826776759801951042901365536543475266811466331263305310502510803161988841560563416556322322360357244437954109629848046213149697311845283238276714791939143548889723117062448649760911183548250904870544502812387917496888164749028264264959492972568529889501643912569892797297271997781841253762977357343116977917676606784409374831282546389536142602386249900721855503805628276921858276650370558649490280038942595559187109781773305688715660884090851936240601967106302951250476800511473725295669055905529941601141880250318682165659951015263220559600834381165758188534224641222574063237041525017203300919245607895128634191180156625706952708783954020459896494854933823813646984991467587225979447907920891817860260402967039584951237200891516705324035217436858531246305348312439062814657127420936147957658544268037071165585701817940587418287191062430404627211893458689700808165207726354805486869492508812816268545383607707791404582059402111556262790840292331592230341158465522529631303239400515653182289078893198902401775630432177450148258709707533213114444511922777112801344838531483351649429189003170115418959135667373828042473982940259619937238498941533581525140408226199297056714072169224204982325626721430102918833335410508076836726461039286840959204675184680921549563335852566876631491952656893667379116062759148226876358238530531633750176130234390826958988885973426396927654848632100424951554173624614823800511355671814647131756674789565441527832576693912645846305584962455942612048720601367079147005528352349827627603993526629676475728964661810428222130421064149405020138421470907603660451200857587787515524856789942959065511848443416134932215757187384435768312805320703079226525839228656862626712858000576619510618407565837455028842416892228267576687142200009072618881333301067569533311404377821242064804595976807194063073412521844070772488933699599494302028918161184110154651756844828210901556816070336451690908503548300380671653346874833674421891809259800008404855169211918847619439833765432918607888098817303557942720073258898465852245259590701315846920390453219284677661872305125199557682494470668894284510470262200209764829112538377432154433224943588298251184329156158104897912760977092458227437018620611516812205571303275785660127641832294620956572987057305314899781086449896468817036129780236007266915514157730161833357078078936817481863313085760674862436469620498783562874431370407225263601677908253955796255200252676986558095473389964510475586023530576461159108046680336978073319532336534509705705381004899220454375748050898264016052001939347211439721777900870178764249428892938611658460743641745425177354140312827104954264472908542399103450042377407965437655322898120152218808610457459319765221614603549487198305351384720534355392049734358826872390218930346280117057002768272364862565913437539723628286390708672724697722148406715271587916990816705680379010088473382711314320735181782975892162822473117119237813238768003573503642805590023713118411052220123867372559977089452380987641979323692442159521399996206458248398016959063171294926820271908987380284384935560788195358396185905443320507340633095317220024314416904126027934966014647485659732438581768137855984851878118703452570645481614289287179977647593069611837964940563264794320672346013780736123116291077198536567811247418702652744176211186641479283827941206894839595926209354515105191710694683288015302231382551512760422197400506557785570464395081630244870450397896992578244852796755166095697336634350761964736632092204573050783228130133178522696036621365341130190626476485383978480008715821831097819752074553311838360541867435341722912322601805516401378303826734888977885491232027248155421418996333720209989500500473608278338282670124708341283097214844646587013005685987045826220097894745302483613871282962572455239137058439194988125820578270786250660456217792713081810795621504400332970759023412457311916706465022681214968018640070237672350519641437683256505069313104506057503405193821525437241902706949797270435480099112492651802184995702388604285568960136006355045071862660142396669866047647949523350015157110323347727140636658410139709242983086106457932584860331783456845895962710148865882996622824362112811725154198992513800254062695008189896118149017907349580690091752758825262919775830585324150652721230806429518272492130630971895871845658354711915832890988697896331516258623671400884852412319175359124819579806019344585366378280977178343485010966204600729450406436625994610461347457070532799380037416255888086324132784097768763380873433418888603979161266425182843106785718819327946316471860349044206038283178545024420402319920962230207127095006627143945794519963228231211562733143697972169591551343753437065071587781905426738459810943449969525423298209526484597206852357400786207150605743291609365429929457997104174620159876044104835675882317303709007939121120749967751673230845466032974570007583398243628266898863843252250453941813134020303564338507495921326859047630421184511928400341943066421642334811429365596561121474049534659933564340515862077240510420030490324821588249278593135616306004013399381744723555357641666410832584479453469436927662238972791576177989439912788346803319317603041648935391133931338056355736809123522192151759365243099896338908184952797457823143571187380958668033831166923300930184011528954754480268113374718733643037336863532057378623331762292938287394757838286035803379672298520410033524748496839990088103910286419119893377566560636327490270362698217979960294477104147274480233599692251348791708644830550020129672502033159104420564049222210813152774524624907873033447276335690317793924342000578997320551177807250522212705690532485319091228048387102952494563900736225262262282953503773949511702945583291927572098582173777807270986219621604196767261478804768098080325136704194679747677628355093098661429611022781964800913608862620866159547840911968185647548108954973131234473249067348623611029508252176174992255516969806284738231441679993962123342122256839571954785999507413879440213460073086580995669512776686003888634330729080123765546854037595759096016289126277457245228592099167102347179588599539681848553840171799269093764112213584667358965411166417354389077582936652445414821353706502076301114939180335671298450730847034380842147377775121176822459364474403441024071203766743358098212086817680868874520956446238863024528355717849939213782239868736562128381347621182525393662422756064859661805377181800747544506220200446157662559787334846842108124669487271703894913544040210841469938722708339741401102780774816817269937812371420365068080310445406120718170988196119397772050335620349498749462506595332576688337261582191816608009123304259764562798967123072996137048059979340571871466038888458973121014860985734183378718512379891032949738029476139185637569824209802652842326678494574763735795180832971828375317261708353079124932081154619316554958047193727657241645555675683807446427907147053156621399663055184986990905442008906800938191991335103319119840644302852858016963059653439158462481927457997479759450966689654894159066866151202031006655762943798851114753065004418705425247391261093230357947123580010022295343305935433601327379313682199651272775290944816319713948874247461920521589603306988464838462667591222080511196888566655714426685514744054846359933185270641459496662929686400243741281050409757032662894633798925863625295715455490580974195866039323328259790151124695816955541952652783346791817929429563430380780751778214302815642623378609221059056640380740762260068458923666305176105072908013031640604281624403899894660190274766236704054528320618838282558107054483963509614920464929899494421661976342687042208225303295477207585340983269491051892250514228934884166613861111325419325265252132472338791730599983120285408684049715486157075529081923697120378482967875977754138035256459989014048263420784080423237317817682537190940934681201932615126229047387588433219030055309947884638450100477527638086012833757406571499833299282910631550405137004343228011595963156126362788323070936039100798465389992104395202121106253547116566276697972248712618219120457307669346459327573264261324756455692948636938652667844402062843459050709708048074656408742664734718064648193439406885388462953691904939791839915448713191965326000896828438017312807962342993637701114168127534313672025255769770262034699613536342053508027598798122358158118414667542899783166197173063034532851444866221333847604418364827382798809325144543505279398696775768294012763104370000966263258014490535637557743707314851146013128560050565073961238516447107738688957102955472450968346341890704727769740726707374088049664056550912158435542509169101404860737259778007479874850081779668211363681046138927561429255818540192194904210771574775721025427511121897494114574943595224921556560562213994352250706309030861622519059063789628049912019906660458515505742312902163790079761570435993112470730702716329499906161824443626032918917743403735948712979220156661910893080558406640363829687357913583902029587702783908439134155694938749828003495752206140945924340790655609318181346406678387771381090067203617932255285198904240547402093166512520638204400075344235251669064688354884778010146248283657465787638071228935145041976829073563435032853926284806556940609468641406632281945425517657498109626499428703338554700623873255320020232944258981557749891539953105382511489398402474757299388100563532958220108859931487821775018957755527592648214573845823673794730646984292066604312988431003366511565130163898530311528271143962582921518902456242353431918514171261822187381802546045400109891638307754644483186800773624206677520948339133753511245340574712879770913703278273026926277938727021602072897279163419289239342775649866282980465079403190938002714513331937553203235276642196816931943999509506428928416023380438402344191566589841218920157989451676650733099639832853117619354990744425328014293822248343933935691385861648122939765786150713698022838166272328745140517359906819009846989514373171166498983780122246938273059499792012670980115876573660276450764884546640821002374778741064339805739760392587273973797962810948264897774082567145711229012109723251527218615826166852074421550478204035907985864296458890105953758462742885315202127902828701530429445541249289401111212769736106219750802387788325183114179095928124909947908256947704828853206582825902093712168425807635839694750162014929031694324015522517113394202913776748266193236788722182029229126873611237388255975432695490754755904895874152712087932342751620595395684771242757122541807474792988427801655411641869404782314912580646321807038418872969952394921146297753705721604856830003249175835515977846376721366296762370514308406107637204826231349515891198603209255831528608507059308633746698651476263219456184251566922750368686109317296130698317567800911807837808974193736808686119264006914689449337548189070080450418046818633297653577247075365350784188393256677157446729851810319721542559721306895385010251540324716089800174356691426686740281597237689020066752147917330288226548152745650074825766064810494570825267425466274326197880172432523820645377465200919931583982140469355697655164308031669421835910071924740112103791161355833125151238257566917628835262210285334409039564420159520113854351004013025166940207035481533156912843966867019539033441917685474127843043357224607248853465777743007006718655242702684634996092134448926071596457108317575844833462812596026892486460748062772569683604317450678103637230678487168286230560066482744939753115275637477328796265768170860072762775480371313305441135134470545633542744314309153862845836269957052459257411949090034363019361842772380642728192137941900964314068195289012654877191592335844688972705483118683008221018567447578797178910950922354659562146096509269459577384760222157735818629184689164527164905831391604383877551596737218250901738652773590793720615187921406117498672279250882124342053077876597391993100550846740983392121937098109953110423909824419199696407236467717540529185990291439471212929947392849490565811950728351210214010570584107811326117840465001228851485308521925407797242265766173282210504427150915912113676697318345099065680481170535655324529595036739522834479712213642535196310841379142033059997428630719395049168721286538580316133499874480742034262843881604549708782877924921478582388796546024535334745777455733812142831744276889522000380245880554169913030166164606139154735262889892246682671211194991751525400688963549242891115737032297369248280112202841132269247341989022405728585365979678002902793955230762910779436843043073446696812194559377517779648319896016559176297119589286632007733999978416554675392009918360482571223393825512312601727506645738923102093216156004389636439460562321043171781819567500283183820884041822937793672471547463251544859723972594015095275915558041188109863182893981204091659506820088257532555704800826087631649683563157046775110444110972102006609448219940250985735052830788704035796610957437317789578856593078473759869544860320530869552404141878145819666337376198831098440508329289246954434375512523064780259283719326495100661008471251408162480692035938169171102453459239736244678091594984255339120251738725342512933006133468018129328004123870701526626396803073314241014919605543817362809419523361985483212279977992972901577114102550830535941216282774730522248682661970871872373199100701930807885845750772539653340558755279580447855392136480578826334437190462580351221493941441461078491297887846163008012138293279120764746919541941761627833574104323039653800755062392681996745283324574926001571899300373614242657501497766090883576025065640480942116026805351256776618409155872638968113977117411639173548376866458450799972937036528274783202441240465735313889224551128938879586667598145658584185314802080890914726867555592576710785879476828558682537326558270647261506077330057657001958453909116728544766455852047217855182497587600340011775489613217608759172186347004126201433050921355566768077763339655229584443686572071213040506093580470862529378912880731616075825747583245897313147060347994335816801962919268762569144482196442672205876231310133297149976574245471641607533632307265025000289619102362983415990475593543119253900422890926577992780706155621133297370436954138521555094486687190704330950669604810469507872630257254062996645332820269682185533495666520855334600582636035536931188384970907233921566645009872376061013714140396436848207772176263063114669357352520561959628792798094932422551007285284304464579310861628521604444224126887967259251784773484633955963866488050519567637294743643437535344842980899622632412203284503492219731922881738897287910551160470059591078784661842856086161032454040873294771417424130592534734880142459394483798959741022042557398220678621158477280145321059686635368521963046196590886651757722703733526428408834948114775941452126022415343986208876757242175209057599789240526335866591824333885662348606162871450013398952144533159765617915962903612279634120942713408477524042549374095103962887670714897004812760123641923272736921626951496972426281254303546296263778475834431613908843941214051641050860954416053104441408716712669872900652417156928540791971336992767181002154096418300310369509840388434602060535927490188631473058168966809064868998744312182230471407360274969788797959640492177344503928806340703217200491375980545940373804305523636701548192134163966086696263016668192207921431917849591603685426991268579043037304651105595643503811209776897184753982369137943260805245332477652918018451551214381049248931546432266050542732155612685027387578672400685847433618490724714422336448091220627974090208575287554205409763185203161935274996714327883816422914138434732109515650816634998062300775432339194165852618024636524345835361128399172906850966515003147742199880267392914091295252188824245467248106563247518255027158944732003680791853677032771675544025563608949563337578969347989573550969153794487112078541603828253261704994390791168443394088386031510650470126025322662058323140922064624592802074030713302160692705246488552702596190559802854617446996570696951839652790971822343168217994230228107624477099829856571177267540024936864473699500709897767239917326785953175108004958148855087430016292297795277445076293770179047487768537872113229573860705647848980248886495588315632962271329887183554607941259572771254614870521795889898325919561976818931620938145984149427441638481637124080800288664811267972678166098854980495309815645159100941408489786803775595287395120760487795756386825640289692888752355441930497106528108821129280340826652562231155989524578262427881429082162720510182124381732956569282546984088359442610943371162713554953909254049776449234332199213618746657014604013962173872748766607762341385205306677712753896178595551503719479381352895440736108698443316784514896671229030011226634030105143857682528223913665709982144215786991160138760734068042819072861534110872052894014015746873622960882512366809662092565894201093842102461155938969516624301832849604967617140756359495829557932377888249105159178048060607420619172237680923260977540384798898526474524700534510798484793107449542881442405905086613279035601825202803834846760338665986783371587620687603303238593727594226659348807246784521363455245360508731708988173766092500068583519772671310599842446892575671975307683753755939470312330799818211188180856389992965653101390458277226046536232798591921131897601062736810309963551769926128302187481048879646672699845879847622159385760006408697840006340024428685609220442746242000157461346966579044873419337199008813060853786426840323351390795305660084169862844108545587229067055135151975712275555618467594599258841369552097193199494390321824804484166787453670989212843048714939416647451844052176734282736048529965011347332330876652521800181699961326214968828744865050968928843600651209248165361474672773084833763466216247249188062062297208038192778729225793182788982621096111930288780316297725787870596180136682716401279583402192419799630173472123809325905372601453835986027034703066454754307545497430400807232632632308101097557328712176618285043236330557371894426886170390332631612835989224545516327390592297376791205952234365409730055209776613418758121112057459653458650128743976083538760218301462885543348601625100265617154292153774993168943744242170236573478038092277432109237390060592654910540154989251178860676636095783758861774469307690985756641451589758401556748484087709919944868690894760605864049887242602679606669377793862701013964502880556274729205562982065968312587495136775563359466789063287361311806781324028623082416206383027818582769441495356525621170968142599664758242583661397983796417229680968862656979637838649981314029405382754664671172670952834627357431610839883547766456504333346395193227183306822276288113431406845938443600371652354386513430601150485148545195856757654233043097283045222817594392534131747021056233600673140237913655336346023455850831432686692461627318006265701923350189639818974494178526483907720129482369066269588048734407315635330523202910870336230237758308006202259567520600122282228757994714261566563843499232708040597931439158902242170713730819544763327058290314217348915549768892603002835414242627798282087662798130442247773549714747190831399357895698210936471407146750694604956211969947160498929738075175315764297362709897838328966574593405868511696091238246121596444112055047465670975992326995733265740871637347392712034298825114915657396646029798047070063116064681104624438720647967729701035349877856313691122428525603391851137612868631773947111751658290183961211122124002288075253554987865049788448089319158987126224790788355171738717262668461790247777512051857092187237424048100472105519602229386423195265059573100076494287157749462988898173576586506610283209563672618146630696803566874258473689630398817656780434724292788631263632063021583075546394109135442744476851080397413412218594205101866141893727813556774214392070158927480948344936826872369235237877631198869673905746309395438608834785504675122822765780055976901168976321859013329477234705626582612071492030034621524006161515959917193593289373962938727798244936196956101882686757822436616104007469233861328977330524243576377205887968194548851664166048096997021758618458463590528944073090616887103197678436094470153028180853441801271161186780625584053514619098574883821522088219385027499452106678507922565183345292357695596868968511218085465460410157863655218204382156407446786682079702788410695700438453573101177429364051890287857790748553025638209936443867556946468950143956769006502353371131983441386734578659538704632111141380397522138537632791305661694478258965778494440730924067835398397043021274364074952010704007969221837337607429203322234718669435386066774812088639415984616307363648492949888348717552592195843602633134277285708458215535972783028391554376749227170826138426188765789532042698004039118400453973446274840527737753324924868934240358380686799134985513730093660572965720183432737348751005198744444767753109008932146856836358202091338124771271574492374006022947460960921308991363924221079251054970138648947524947119371128192475969078437298621244961506823272397582979977401376086616648964051965902304083793130869452053735137577319186559067136486991535627764657631261894472247069849952077009667677531958211084364830140825465986675019574396738094554473266596648565893864018395691462478394983780891203098700040094116198151295664322974255498311373570767418229064853276352299062506921737091732898075225305686827976581553172803213590971233588017263027072971466592154757266241528269165244261736416470592181737397375953983722116794281688587352618623995278399176707623921357901750457385891086786163316027896761266200163890870500692690993152295798906643447654069779082035562364297078482187732258354083138891892649090128132522717920375807447372510870646311012685561529056795720399843690938086613208072260703011394506186822189842974276122687543051440320859831226088446244443640379044428304698861746315941529765731638749976831401691599953361450364048553896672173974976700879664428560793653089790976574468031137813964816810728593385498207035452480070881047214009094936693973614173323293477034015620401370634321255789438832306924451748262754615036187028146759168783252752406203354109099615499493049227590400556882815171172527048361865336270627678963642772051245543546372165286362235339670548790847342039871506178885298880893197504382186043616196417359013281535458842129188577276419010096218083090185724812418510877465809452438551346547048801142540208748604240494064086397217127127323514157323455994728541603157342480894205651572783452710643738676644172173592287256954079428206510501692395965750708311637964161406326938364446854628616809551640115335559729297513495575263796319941361680710044854342988865207215106471853876862083542912768782423666011720207419420219208120830059052157548837331592733318355186312021292230948016960716474893154275249760085624988612822232344601923550751063977410361005806831539318976389045538754530705104780624466064632648780727039140519315468433318877034489256559954029772097485279155812682934425981969613225081087555099685565928341703974982027640914456046801233960785128767872571521158911850797976610885833321588229629291767663893224540018664044861889390396443459379621182427537138519999796361034172664624173317161324230893321243182464653457794585308420878556221489558581629936602335484256190209640589938035334727515759167559436821496908341245290896329180576154311671758800520855832718105165060601621666375260898740129236993510875960468095148730028347575467619981314260848809013576356791430040448103535948260019082981924089736050945932815007672974589283813173596607147174971359525353178212059679129327209718138832950347218110868714759466154787362137388671202786899455697619379291956136806173481102776755700943470296316802106527981849249369704634288307518955820649508748163904006368642196909560078950958467526868736980818220529885909972770173861943371574957577124861693000928871119058168622288438242082133100969056009878028641578157106156688832196884167726716946175556639055463314554970120362672138143240494396747829601411454031691355753066394420801414685575891978402474636184109829606035930536271806548003596390761865709782693976857890729159146547593003560036985023944454142078087642252256810047709792185909230662083711459187648977167506165040609715311423722315334415396698683107866790711123196828976815610485958000809646106351291431030789737251360266475025744194862906049460076555776043530285428077290644610295267428989161860202142056820043764347192621756876086186694635951556320204604805332774398297942069139264350776698233326766145965205947278740261713828147624745269531141197138434626498833980915602874343274412555398412789103952350740692200240875064375710111996368958702779417672836194719574193094343592763046083210035862701121213537635814769556031954598023777255670445945383784033679162993891077492956752400785873428664772880036132335636762348940547646834321155615302711311964436596506554645931420216686045715660056393836495453785706812032989130261768687236693901887719509278074513793574230505027240355829350097846530793813377543528530757086509648150312822891228417539929566402948696594210406639018570022217895048559360863946892166454984915709631654534628841874397010274869516029125673897608781528073801760279061795962563452137187649651884731284564857342712794099128582568748715048092613732154433381558709989014775298278229001370912966260946445653763455547982906314636268005136495197523888154571941021718946168597596587011060183134701107799281918287822920906988061250919004663441835571566082047838087321940716187750448806300875497439787136943502123422446742970081043570556408566259872513765825040770670158430930918366729216071237571239024721883657308876664733500449330078892771815421082253893235896908107246589055930078437301530601444368055035576307639901250064440826120174171621924838421441700415815896984083438851976640611716344628217831476875683875468172815917418746156899208802563904959895612558231357176121969099436579084516231661583706162469011032125509311308402005882598961319064141988158589515061674386839461810965747004047938374726610065389650313249684786256089605247726486800232027741465763922729269311758352972138317591802702598409886134311136567655233167855456869086850225421135066257666713501208107789456855934678544085038719494547852858951329947504191214024404807382412138188986646173228060813675801789536381914043499364325548590281672800897900135146847310792548816923133765993036629049956069539867675390389228312434589650523252888362005027395600866704051074417497685867914669334417699341948196666309219804142742744392576102848831526799095711172070952042537006775949372748055439765662982296464443614703762501741141599025581227717257922724869252145602024416310654160609013114063358228036018100293241994015228349668335260998394772003338752707493733195600202253495783457645390854472449654936239263394682258412301013148949335514395008566057836946863335309226683198919465227496306886929622033270726767806523646017817601964952369778699647071615172627888410342258667765476894507742933874493401958664779390060648810280074475838127094197334277540903793761064371746299948034985438993916925566456779841673191666054799941243950940016217166921449433842115670436618800601461221743663493908642492484736984738528927110353148159238610306077785378300774842581134147067731173042456158570200943016619639183177792948191951876812601527445530628945386307710513690182906915696508099004948066324578038804665576285040928988081527411701708069231374516001297187930002905083271971615450078407132023330632189248273620019716643161187819334128146121914254988386900765758261874358908580057877222638327036804735658776896180003599349723161351575192754323036678844316906024193099328679553582613873376969934480173291969186610062555061880713348536009725924669479855319740962821836790805646914860096715505380597202652889020909161580671843192743680735335312684084814780997584711441726352563474121668047901933124479596985471843443844300055610735526243871453434156447795564349115034486568161514360567906208627640041759359785700567647950090443783527529401870277094253470507051581542265377479760095440111621952287052969765201896948010610837056997706112183892461034767562437535582551100293550006926674569488952552273879206273742582628684641403582134695986277088231523157977454267455647338892373042132137822554565335869373188844077434527420349598815544480008249542242368356552047725763207147951215154509453663935472358819225027374094953734513506564809976994366144758436174213824516998205546619073359300344545247041394299827328455580328343726066425793763874871573221504972412659622524240194828860750944152848150660131830872889147523422572164280112379962675607628531588307878840353335216375977825264839817477584539204846099683958916606391582887687923251374284090012278312041293785035885042758454779453540264251419715711872371580455304649806859927322858521796388909313428173150143917823101878411158095766956705290613070609320875116206659580196104060545796776139743316229254717662451599400785865241608218109040762062490046646118908781163585702748083726618123221965880507018061795074304713791951267706686086370360593758009121738074523121615037948962776344399247736789810739241469092711168509150170170557130845701814070410109164872566443134205213126739270440448115237185012827271538212146731272864694372521281753922662338545483248655396516294041385796050547838164997505870654908523494767864093563760172697041398845151211235372875671310321214771226618917549033674608244231494350046486140468860930014221619036767431641891627281435136090813478855594149310264640575198159134346958197543454703086734513256039665254040020203351660083643501142054756371866644951267449193333077522715576742438490875393057208984062891077799477458844574173540549388138801003518150958329791819165278507167323463834207236538445249572702600865065624645195449646305047162228809433405284942734652143189515339311891642223890913636941070846137952728540898183629708789961104668929977263320495537751751248595779336143167601779078922697732421893109146884018775845439433984366072316861538169698427013952305928840488419145623821360720209491514403005799079804903874507256237448221304372750243836033716851387361348273428429925295249419735553496826058321144458178061742523587207138773085675772169273025998219310850770931723258094363492516829531849818087808689181014262329467211150783358003029690983971008097889055124905779860004911903788061962678520798441111946594883118960477553820630096514766625687224764108840545170724138052793194056462846387613495553316759712540534602374336312482897348397412940943119128936094668880860823379122613450671724435966161961482530936073242596016336449061040821996667377865117052205005811437615269826443957476417313688953735565416357356764573438320336885816155343065674416118377885800917810914478500193169211681456296713620832313465967250658179246058085382657962542839815149764808065075374173248985859914683997520266950278062457320625765205602046942728504748155588067730283853029704556775531874295745619431829334156240007744640653345353520965407051187348882145804575197509169069400268173518773207497618244756914845863929928153469678314935906072791611853560358994920759540486062847567352825235273061210571345020631407743911706099497989529136266887171039251775231902753171123006560955899573204774451454478264358290447555378665221044498222610826148884964111568894736423261873139743015510008854693995002186360335022952411898627731689274949846892316259395872425693025584556216753523590759728207264179249573421994753242429602931548020711617191074529595983332262472837728830677734607051891746917613190059707353746374026976648167625664634000465726967084049273400423833958778634887702140499719956897386944821931358478326839688686423776044572399461073890460818644165061203796758530318792760379319388282123941250161039549764209736617810127986978667367772106072558398667276545143400262794803636422541147694929961916269806074865156395688396537438888089452139615779767101227695710721911810384948863957895225462902288651627642240447745206051238921546383410701586935342313222540561115949835768088454492354159835927590800063561998827698517233223645319213594685671780567474283738107365865610834434564427684173816780163372902076385303907180588177282632858976917589493979379566539249334067345038045221682967990540736666357657092280323235456182882599442955744410415861948871774313559679580790259868851074736016634993893107899192501116161412567627495425905897219985342068783861059275206800656188024847058146102715945656856856776564802884586577397711594074361711122969829357239248129163660880422681427439148704754413273043792356937837991202705950559219695622576028055688860302428175699145722538486169565943185533620540894300059275074257621397515246702218381183889499873911910383950343709858070959562724456362376290708353859973611653533456182350709818777341396983336159838479113555710168724583707250912876437309907162423035863892689497302100634244280813100411198709202170018005427416564689529715862723002253402315758082027091009107243322276535435037234701547589017659030236509669997626981245952947723834661875756414991322533072972840678167029263368947703989450560931567462586193778647677718020937989753413651409873568493647319759748443393028145686199855127151418128525050265452879034261328823827064394681829261008890854388386782801982620849446322298039000044261958626261692431669885850316458233462189415124555762942860177070595659223975555049541176208311593754846934293819389522512255517686043478877707364910237457615847945981364257114681939299185273420633759822653134689978715410676919074360843642877897790922433238828625917075928472131294093869466009627153502819442596001467887652276758652874673202806754260119520019393616951119108552590560595989151352449524332616772104241709594607173773815705489495201534288101635082714482525638850587433706312717083124022222933383201784668874533160968000842959631517851060080785632413053439700777307648400299911765516346113106287922371250355660847649454300488720077554828087032321085063908053518197409633748840229504400738064261254118697015002698005404096532885621964864638456514746847541072668697439201571232379933815405417699507108564102379936407988939347982011653607452542649886292476624233099950450855140297242485371931416168066724711463076399678997326798155430424258367121470091110964383832588720374850395906922756030451450539878244771377998673980764146617603642708763965563669501684983487927519682182120214604816240974528854667734869892997047559804059631317645617648602143390804933975659179355346605482277979655773309572503828957405149775770625528511686182513118778659050495120755310681504659495902740417987437002475298036653483998860861676686036749326643991217727858677350554686824161651003532084682012894995078878156476647848921976442370267349294334385310982258609784486042799076963874972560656600544441437875813062505173327076195878352490580124519670391675422893999281884793036590713528245316372509808956917203657270571954406857422390003586134465434437917044023072725688769539484664629888357152357875229453143557728977019592139981834508954245174201726780597241183256634736913861659980845179036722604430045550989621920624150110517040584084279709604713667670437904118495403174454273408273061179315901904372104759564141419683947513640054900527996818563537958898209660275329832830421133446667636203028012495264999211522514089575602212739858174130888636685702209992845341251793160171570555274540023994857560705366273038792477859418975329371740568166740007182840053156641691608426173203165384106375403650595646641879677028312471102692331800906307795281160831375120906132086679448199627596350361528029154987421980620362802212946428721334861536203785326981755604572497274690208004979416159056063075598579654863984704174547385461677970780459057653228945023768351050191391519254104482731335278752603979050110038093457070058118747954474233071492824800025680364886514061001014846146570291329224988005183850714157263327779397056465772652729109588833666326929596568339691426072280578028678949067234369256988522421848020793084653735189174762510728245152824949723043508929673775265979576540423213163242019626468955403851267893268495043511655437637231616934544853992309371134943169526165018825640066652622859865323467393049187099531894841692250709057421528101884801896395913330768453710674495426267251213424089751719772444871065988683228039122954369045617636861555123545949880430350257750322184304808901155233317514342619444915120719374480914536756022031160352003312355795910486821961400798740507520994972402858477399552222008258710956177196671467692586474340471447747619689569998953374544903235537200916615969354977458219062915695399951885586145703309105844499597390058592972102979154948246414154681174277285248347055235001399653930474904832176814551079226807335445782975596364670397762268695884463611081426818363416542750682156337373604078975659610441210643831174106484043057205518470412432613993406027467772976166279438365139803164002628856716012448343441202501752810901885405473519526862660363477940973673517948922798023374230350952684810316039290296433215172125385409853511917212567843244091300436218846796436886231561188245973339996518801650886692890994765319985810817700149679876575078846101693374572374173780831792311560433980522284352696300543223167797933556713095045600094460216492639169750983425022201024957273576043565312461053907690190372931432425581121960369388407310957223543372951177891682396715781300451980533306004727613205277457617695238156192593281420490157789888907746413921933085900074472909134298071742176827376776698869207148292029481310015791336916874013884042156711162738348614992582825223596522102215367666395794147771796964272360429999870161410603136291946502388523728917737239296828269337640061501853013911706613182845066142424596884228588477073534276391005915288293538108440522577432776331100725138330393086763302158946834702056361013985016079339773709717896662235347620780082596956860769861070897686494662318081790192326564650071516454722625071904237837743039650473005713578039155171365124511062656030177157706390106935434087049286235679615596097708661314445170026489009689852378851919149150969085034203495358219767946602715033725754140410770178851009081950930200936817455912769086302474002116546801465062025383763814733408393734354435885700968350696879047062689255991857832596406249114357873843374041332325161766890459788596659299464858389916694357916684427360658739981372085593674285490997250226882428009404170416078508327552282355075820482622596046316614698005164251254225042708787982479156403937556859528831103210607665383943534992900306037735750976437423510228664300774257733347697618176095020386420776415896835139488701500484553503007787706268938753104920909010083409487695144268275240820668712482879868618074769950148092132130189834330847007601059701746044373122048496662628499396680723951304590359141422691767617565970337216186661031808578444463994836951376509598580867420518850120728779229725513443993480342927566196723578219574542840636945323750094091132378229654571927917213765808951784788730103904141656037804370825978519347359481380321091195616908615147573746711793906948953265768035138180772908806693347618167329984520279333028514225611636609998963453876103816413962530794192507525561784985851838923741606263164746386613421371516390635078792081653877025737339971916795852610798814560488542656129846990579089699275700229024983723982177559936680288536460723310293936140849038206496546250531660884222551924741171132833993588693847611989956423064633952425251385551237213504375320319895142961875656163587080561503619936381696705343226945021833896568939833306631388790952465500619365909672844209557490343590050606919131598468550631390572226126311423968302824464524295448812321117682200293372724269968914485185337989380233652188498456797657865277950121694582437443299677248515026451619629815317532870919613384181913324576388863890178983096844724972546716090951556712829091399153399019024644552638895724115613584355100106211969078576107603894087867195990353696776743911209781128489164988120877368538140340298628227171593837593977910852791922921416736689118414485671328852748042758473890465135862349625350035979909396027405755246428418487549158069490922292564175220512825938628516424346011710718540980723486053961829300476397997985500257635134821654318837137588074902443266203809686674298803938162377785657762997363630203833245896881966577506464496012922529745254770784164565829935387091538807067407852686164576923685222115693723677427812806402622561425202365537094671940121645692607683289877492020282188657634251425167939811325254135741323046275738140192965703199141656225962222954518370955810412690748066240039816259845324246753137311950241820255277157627059356162335582548006312690423626402505886901408237642780957980601448024853411716093482711613478210197750324587257697906604857246249721825862614445625495094858445882408533063489565620213301477023212185993086932766723717583966882288663274919800195253606243649259296319199536676688573336460215761117503060201183451218942700528625419296989609436761806556390524531454574831591595979560440881272990981593680052519541789768186420035365323187968463812763078444532435650507118249628559042559136237763785548752035320146346017664905026278537483658333738741791404756993035013083327768160744045956537870771553101041770690275939657555235380173343711780693827575192622141381816803808741933431080246659521892944578554373953330314255325156524089830326069703953120123752598924207511074632976687051281257322092715346287802425773244801086593457311526429309527472420101923675924899218447533247483980843512469692421122931626032667594011018308197256550531746077101765208871646657406034155279350218717833275725227150811571565384572348151145243159915355735622745612316989252684904047454328738196396495315252150379201031742629425380459117382775162377699006124952617224878713159375501690596291177822081519457654200076025478730270597725219489923201908086687167680926571121490624347492159441856541097427148761261728119808113593729828210514566587061376196949753652479366391094066657363543985737793266544200241966215885769843732668031118356940676880857214506582486812483652187873550099466156302831320296413434710164452529313658299670675449519835556909899563399491591649414432182662769228430339023163031394487018094683982563680630631706598743176048738409884540275461249508223892821415026597561029980060893757019897441503845595738985488685383096721436727562374823598420407520207513555057615570822281399991040681321738046927693075669676331121955288822233664728540068649034534330932055698811130129244398661256308226832587560884181028827029909691826252646331417044404921008801761524438863061339725514922528833038687659377515337621014607068445430637960194866217352170394285104440148037037972518526049036127211060465579472327246794504114385313604616388463577857456498410450069936939293183492346227611159780949965761787142597748208508782176727777598040977699907161558112851752842924626961342325931223058852475471362422129951486198290780549513453090986972770444975168664414034124704955732979035927278294129152478954758104928614061725077402607990311544757673225213928191882228470592174406334096370285518057222347545696214251312295918859838053886136637212276059042614142323857075805350413389358375252609378988773543788030174116462349981679978408849408894752259078311250319579442682535949654342510225700472377994210264414829501456353160029686053487228632786815386027821751712843060410642893423242106744481786284110863051815028238110540784070014283861117919018061034872757042393968430838994300701924457787782397714698268665391119112147237660916684141739791571763925981893564852069881517567751659252278292059518455042797165635634564991696313339456118270023858241931191465327863315878491613005033103416504017050582387900580957780744767244635477188757753169225353103176411442728841501226964106356501496264245693555295063975840151245227352248491881824639348747790646163120119798132560754819002457715076326674373257415817297721801351322369495389518949600141689507839982766712763556846872019491566805497819263328999549236769500067812140342696678410793605290023872613705995601803705819345296040730299757412530967648618039401642834829576167221458670383221156741972039393304661817408203323848556761740465803896067173407074244084760136328563962091561165042050726551968101976833907593735393758099829427631364266192168116451022437464284006914160737723985375264936698124624112175521666601806191477762521198671060842284238203427360562201090111062757068133005116864631890801440351420527263646110223409234153299132122953671292446308360966017066646144382803940016286697750699223157786395498804943004354545752664997537970494997102941093820051614489378107313068892574979047867077587154818116966988946550538937992527783943835972244541694337680845980394016940627304330489692348016355410561927271822169311334500012424696277479650717411844657235684655757929064423137667511291723904899884582874765305260723899383243788711776027198768913736795945952670084331855954644578278945687412187440366930871106400936284992847177950685308148851361314490487970860780270473181305604059615575327238707088735052758708380837360326044311358903543814225774387324699796751928933293276003835032914116238708760349945014176939308747067144381408448449822266457710486621720696288039137473910979509644703374337483471316697849094828495153775764271039900369026367289532603446354977689378759925175192337179896705314651342890398744539150275283437952006211323819897680217187499463433206799619166502918864419939178051146523329187113558645659312248522424916545933121394694909098893218862728870080620597266761728054755000649673414774137919649839639068320255784882785408871747967386483255299037081092090185786162913989755849307784650691738757084511830810299602399483254072083608363123434425116943229297939336021082273401240457896050001466333172572258239582931124749163776083218491060390502475019299411263690903861406532005792978847838915002413851097045417968755442521206988198918089092350507190072001900959961544374684440684576390317321692399906354738651170446969975560440211443723528286080632939432182213187397400644302564176405243592689148419088985241789452920586179302768786721600800255211617439092340551423102175581930290547987973836891535673342967524744424355376465251659596618008335492318564141644991737876927067819170420140547286362180615201613348070712742915173597068868753188757036607910743380461365277798738942764096308849568248016612280151081255214748284861704718965062231243948690573534568406543624524114028828054350527560450762225606981964572121973232574999934234993102246267332577734379025728608085613405132018395498306930324413894591161375310176789514308713277373140518055424574108183933689467444848405134455436983236003634744683129746214801783396395199410408835216304798552176896246581227439854357696845887139283350460078905603776159510921930090795821945496188523318958597620931898271351905372686427985085978639729345165053739172448057662312609474386927450782560636288733813909864302227370663184056405145098524947684256912894697523510438552227568730206971693319839404907875683524067556291202267170402942609682883759203619660543374204846756773335401357529122830372577429348500575351584535421519256053725516375937332342795513544211429514692283201872577133467780256460512490327841236751139628444680255921221422335081001426641948015250992302958904769611190379373514321828555921169094342011611867025123116807768713343486767850430072098271527139579877457120491961099234203867390765439023042637139584205740478667999297448820052274416703286742526140462543081191696002823119895042512946672621925769617015681089102480172386387885847738931638224090231775843198955107749584911933036523174118921335656579594913047132268135460702990768904464781795249121959314292840401755185006072588772833898749508155165285360434347729340550608158659369413889427889794163706604399118291451289566158628516111593289344825575537461801684958093828436279811017112033695808876519582704005414377507412233479115975195051124353089282217255313580780674412867190197939943033313976582972577771033419678436709295455605490411796425462176283055235922494803168813424376270766435762059975050594509469925010814971884632457634326600138787128377107954672165190517264910188418968622419489897348246701198903175051640173772108927133968770380051063965597988500811453765679752976886458220705901907183729160827612993009096630532577149567304663473258974557116133204791586640429579964497777129025151198261242294286252899655426861458714284807249010485327812654550791080880148786005922524605754401738221600343484739370619910355475419246418805264733202625792685045276645877438185075215057601605236117419495209827071691440055840362220090714443869956905528945852672444803235035148983305117809385465647325773669882803391210098112732876035588629601378170682426683993415273700962177550459748689327098300316869772971682323153626182699471771663407204666890545895014441911454625252607170207623726659193246507253902580185308221622736802784547345267796589319473689788662107579871597155606332937877710381476151165289320293104800132988232052133303128245732931717412542622041844785040493340171811070137727821631028886453509696220190725113530450609757625355932511402252394504017812471018818030328514041945798873923772975463697721831658068876940234517020354380246689259808812847926984867034205894882437533008050391860402208489964245177028203838519286379078290724938528673330381522794128983178304992602855413892341200373196073238271952946306892110135398880399884311100098762726692297048005949576498893794765351388659750207152769956386462034710003304069082553108889342815664940032127757208328373734918992429270051903792043083486640892024362677540464245406413311827757806943787048194597870053019519130217712406413393178411421320951738925960281140848199338405115236989582556027598714301556178134433133730603853857293373247674734755876777821127995185034624575098410824137089990999711175192234468422379915391589364060866768955620040398038486661476121181899277648310169610112354493186117777067016394202763882892519222734917355132480031625394690784162502405542960809727972417067909450734222040145996277276594414758985164821987607107509571762681884318624496263106027707650315781829952119946187529011592666636977408134801131666351526051361524841814937289130476774390542988915725506028737403208563631951847596362814362609690913401690297925968298285012975495101817816797354447234155102775399226609791110972853470208451860729241058770254135172156934657456467926313129704637685349107595957154415164019097861832623621200842585418492390085954344953826634354332903332645688066958598668873906580698451200525338416292656582150722937297912930112953103595852845677509714214017768750713065751434000876479837507130250645967527556519492920740671791249137285743415709171891788834873486037482834490284395264751879649945246057869256880420160904931996815570130662113489018964512394227137078723298591769954485283169391126440237783907239713574375574503210797126161232526478809171444978893384161238518054312460659605234334027841550797747319019201023574922307460183394713808548766434352719609504863283354098520207681884523056493373388154356666113372960047991672666026386142077173964374586474770513101023178393601445830814188513748255776806987575528222933203948013821553045963372485699608293460466606408263517378353434097714676507322527384398972802535402844112394893544148884567790494886545952396054032494154749522285036517749970520004545599834582517659156841003006958531951002207720670477195465866348933705119021114022119307268094612636267500711434842555565707239483063253743468198616590303445501393561533586957492475943180383699439257596244143199003242105907661834646019444192476561257584403237679089432128150782575455836789653766506195647748860629227597570464416594512095695389095803082537049855208039243854170612207843320457491913777700477943245930835168129661841332463003075206225723680914672009869965503160672615215354691638780588411624055165626943009912995542630353339855608653682936189259915970977379388743653248712364360215364618663046655159644057586155228896372223398707592185492922409375071940896902191883784654680959916880772449800461574224325956747255355887168083725400031602506727407738243057087628127765808051400665446644940083997645858530309915402202256160901732399571290666476653702595152845445377772693381648073615704203515655117083338849330165834917336759312660644232537749330674208407301593458706716190280284488765354532689048410633891880583398586869930669605464191932015471979365611940221307838212452142063224237924988728611239592171129231369928588906297490466162201010199220029361294287474787560591138418661359831912423485251979597056073653501601434675491942708513833845097179590469717066422595340799758700483905888210213803203381429534402622063366750202601334311931100661499938230278161625227287329883159616674618235419969501178770247966075989710868189627207329178362336603119283461775320487952835063898591973441126749525839718961892639379083490734379912390846194528009779356428545527195204452471923358812164000286953369481621748186903363622439638766075423040838773815533972722559782297397168426772458951077817868676053379851095445091428351966705055068412448631554045576065562209628879168604754658065551831535827435362141020440111803544046034003284805551542183389375336494801979398398368399331128215901071095296080707193752773258169202031845121633155504929858207694456809953876289741719103304933870389438293859251867250317258405050414427696948592062958979735557090617440284599857554429231827370666730327595891061205580107193625519469119828079007543099893806240422865410732761565152953094969225566785467297427630835438815149989957221948063114605407214761310087399972796791214006846010215741439942349712386862952617555674295931485862735383140722137030294836008410593214228579106244328460013134013617824622551583998638825288797600573698986752746476541147095641994346747492314452108957325010185676416168721280292047670497995732218432184122801521703681654296350353383262862593079987373796637456160881257862979419051712919965235620309495241920023491932816128790058630725672000087963751601193235903352264693682658316962264111832918394974677002073175490914702139377408567654183706742039751373365295362520370427793529052794199995516359913927678333006835571965670899081433002609577807374460391466989087044983751981075580516984558413002543619012631840370931210174523653859986472104123585809064172357766729703754746277465512763606941267760215003286164960889801482302560633226399009264687766267686402112423554261600352628817113108352359499156276408888174638518834836587655693412306338551364893553505174519427253887197444445871215447027682973734652222570306692618960543636451463313871318459782108730613976081089393717200394882352428163945245808555895872281867860814442718253352582672518684405578345533209548067905372450088072565300381814514937814478408235121095430521878393846014893930748192286780556225062576573452046432273629553218889881053700062703394551448234169038811938781845578968757576884374650363897784183608595175108898604017707925688076378587866156408581092898668417470430675938451988976929670503686921920765089307768477516188310220087826388345184636574447310969639433452071920378695504772530512633245081611851321246343079036380226892648923977143033529363183127761532643340268954107341249621680873379281523745826983896281020498502132415922357702800232349284476133374015604125210656995106425022992667861845827789900113141719514597125508545144488028495512015702909763346489751480516751243032787090268654172623172781833201097526732402838804363576930845048401391817826215906081395822744085176069678336972028529298174035646344444639574375152415968037992301024581244559320038484439318110727316157027180815880893442668665681590278950181919935678197874641809325967829682291629542470597114947238084486887831751804546749831964986812717222282295104902701262967208166077038972503751489611624002615472768668619268547855092589425675153901103662224347440485422500026470115390131674077080269715478181275105422214721727771681021764792090033905066570604092805811359803968134538423179346149523048755911836651238509200941638419029995827760590174562130281275594909948527744870749217324972696070775638850691020607612561454096119921785799169998247178492958884428140508594800779293726786180465156791049941646023571704804003894779373877301520934439199486102714986586300191261928695239664885743340497997484528044416506860512121812675860477007875853276962581367206619065875530887794749851616922170118874094946966108446552666263056064195890613853938216537756954034943212243048619504409459749966903342047455347449995474403463067686386037074257072004061572411213195169940868978583449826036177674178164614243259840184589043323033110308305740480035695436379315401352476011178785246767661396145891012645326076164672860749358635167790025972049724074012485293248816858262827198021308238192770547005979729166324696369839527015990966768531184234624668816199860043737411649494058304162172135788900116540083459196016877842642100050884262077879122681737456709393222836385647862504718734378254864535952580578696083997092550437918775587909795602927348129970234715247107144022516859459137442273387842039701554435193293543739017143075901441972049246985239787559907286000142813087112363066457699915107921106133381699034681026971482400894910943520466369485884860956237836331217634997028934288641398476674080159875019337693270053899014042295848766264385683134035879557490409644626133633560716804992737148662628756234913056134097134375626487694835767001056924714397085198876591676394553858849216998121750640469613618322948117361893108374371652253050369082352350953008375418965020290684851028264530672326109321153256736954848851556439675987629976376068908372572613734476762418367113583398313320392841909878486752465055150474443787086444027506224675877902598917732860891970680585027946218756117186957207758153705835231954008070614894862861406394760925769752221692000559912720989790345874255936259146576729379882823563975656660650880450658345921058445059971283600512092724362742521582132556601260577592945529287970645484435325937958531377572324628955328049965532948328141001859760340809868262792917538446720209722097316169601952021592562580873271263071941084317155602126815148242135487158398673533409497376537712812774548486465789320693040799652807679372189632133829999472770513056322430883115519651179339550823643153673439866029533157814751345617898985978552537981876413249022702080941463320512936597602079278676164477301936796972901468201060485016888004193730870896671499588301566487754449765193782295628364866472469227809607430974003369088495408214438145222701895992530655222843424794344455885338845449400268739695690177775668005386421082767325111724208257302225845182652874903932448938906583192938450051705754670430543109826984590168002384180882659460249567309688668021533884697054578391321365172821805415216585875096911902146318074408521659484690542651633552072182369142648243708170680168887303547046713565479168501829334318265122264490610699400948863544354727209608018960798728158916199864509762930142170324098297738260938667668371791174506212755874329863412484205924108078914428070593174296091991740636342832460722259486075660291760383135961268839164457947707978134120721092915090554253001071279759993097259915765832078097361982892199717451478555967675805248747284167191055623272011473836886037475906683014739468629927330065480646127242158847585965548699248989972665212022961199247604692816253253787200203781466969727063442585189314078141180925397200179109884663298177437381441138007324661672817695018685851738823871673733822435624758958233848478281045965250522294343145772281822790223582073687203992578148673492040703930593350865588946321937692210225564647433940112146531550328784013947979535217760114718233848789650293571081296533304084779154162277720822075554348537774382101982129374236577504329433681400969941279266434701400534140203319732761130332779594520343048996712623948262568079314985066574769624336160509369746355693464924787572977435365813536527616166291610389746306761769712509819546285717217104788633436865537345756095492470388814574517841398291022202962353044213428759431945521438955911202797788351031590648164295047302464514668674398019703827823866338870614833562221003548694310192480952209373990844200621369417320711174210362971682754515938376582227094906179202892511073279077099705582457950462082372901834740176432104407196671401138259444374630772528406063816621041556349654149968207187474654783675679839968163227200880262771639016781938985434110079191416744761839331512378490134429662059507719493770327340210688778002909363399961633263690984336718796053056893157839104392498989663120944656346260621708300613628589773385670882974801955740222861131531658811013473486422391633259393015395125270765222202605067736783596554237394070102551451004089310128584617640126057323128238423638539398234193166384944615424248348645152780336992292407769164766897090016900499984177909217854379121644808551210547858313309620811713930902049672468938672695821627583280397255190906158677837722039322928350609875372402786071892385754212846527469324826421718438956954517989613080737939764869989973025278894503080175601947906672367783433020699705597075560806527101857533510046596586639118900293790429381786471882788308224741902182661330981532429803526042697428200123800035789688936075171558215434888841490148463265387896786635782080560931663215218911407321507960117467217024950904630153783991777627089003391082077713964816031099045536324047714569108745587345895339784419124971840518989044823329517780933966230557033167884362665485717161932799759253823432531997586190248990814932996239346206805110199516999722056209669620312170996304517820790310267070501313403790582990138398144012130409603367464602480130099762004102265487021507444501708954425133791291452332588981046353201443606188080011879985933297440211135501811810192288477684470983295225923900055975225385413416983791038846377076148082942293571549353622532870867575044269227240357657185035880470801569162284723250133630553759166907116557389651070924247715131995556811319045109155652317280911293831810472101439618649637923897509218024682274149116511148028346198635111068065507426948032378533306474393375982549005211885311861593900446022027607383857325593031033358365882671661267443234100988804075158527615994693181581303817304063919838955074292250199815913640649371230504284947692824438084842689628892942668744461219212001132079067791246583557951146907299008529288184274709047281733768293600033176018777927916090396724014922440118577691780365211075398761767776808354515330969414463183130191269858046650449270026618277021567674226018035156640216933363229460376995381629526825239582834851081812895640556767950182903260206267035024268385758217841635430851393338915729256715902201186322220467381722465783276169886713405528282275996741235050297103303283807734981019632535946095812251807752946296132869446521075431465816708895491380622048161754847204701599656101291801451648580728474445423981658005126911598092918817024908689864509507311690270193743594491534783392678295191918754265927140747644286006742282946152311954194076015935520367769749049635093385888336828478942171331016201134120550328603199212360407728222174896198910604239366382948214957529184213082972572297228824416716710963496233749484056598969001556134341430110649927056787204622438749144920592736027034720481576717727453550209961558411457042184087584507242401104861299293596192114700299028927652913470532162951612692125032438356759126412925798273545247636640838910756922507966446298062787519316653474977581716961941236198982976155001545070484778023048460603845702229490201625533696065292743549264915431411028662559885159852447059847119435138386838819543132854628286642015769453738473531414274735074926520138518639999754993175863390373326923377623092655370988787678947218726086718083600170247138027778297780355807308427820234648505569799244748243347667540046567520185796258381530094344467015774639975189260452849784619258184901981075113621699967369896218327413351996635046165281455865374790729335219572301533663164631925037807183183202156549782496896776664746310645788427874615755563103562112182820443049276187937982763148794892059359891233298206988604553598308081035196014964615025428034348543633831092262922817118127395966884365054359528070550873329501019243662187033298397320479999991859999835615671188174456491230768400415372955820494846532516659480819205217667898876946243076582785572855924076365718681983912529450323234763297738285151412805688573851947398094155263971903710692773022333636261343584650236659344579629515468555780732441170281894101807760969189397174544471409506832768549869765463049307708083178909907484838013536497581468510877422773891818466802797511103847490625208383905833145696858510260023284160477066664150201086544806035068309081917682389203894664448616662631144216193049721706122859949681871825708086297202085102542110252562275734320942987188799455733157957300748216262435350018788127458461744864299749376422405698696948511406757455445879206001936982223140594375091748071410403857635110725612553962784598983548609017615785608166568826575209981372417149904086933757033586934484869685921030984722716348732063875624731573852432763962394889812439531912229094070975825021869824390145368788303711930050725001037246040640549457813646080997442296549372557925234720160727615625089436440963468196447458989284824048333388577520749664166527636053530960516909123167222443876854275697080171280300118400621600027555429492467988282695113633911392795864706174770582312891227504323259711367966481572745543229584594824014149768432553493515082791366827608898918584627326536364554964001006354649371824510191211119084491477209699262481630794003187479532204836939597099057176606693589452420849599419706925688750184226870813650210080133473379879003058539482848536245749470480463974006217242220305405613508375476073021170098964853809877299440210903434629396863492322279612196652160185508017762533551477532567634674792487464544002399268498915497931251683440685954789055792516261716617577868316517738521089472387088144109096819112464009926391172138102784923065551793232706556828832841811117500288467853474646373422268497016425508602365512163343146697189852654359596631929456812888595201248733079042781439716591928264709929012716489232287606003525422964399094066248274661872388406373227932499338650636692462451273169485145488039501524894681686520455915783266566295616114250598422155166060062373440251013158546646021286930806687966587680649112332673565551151220439821183032119749486190177593936706966484001392312544252265496322886263864714109270644793771916217323932362361052096613218528713718151290898492080630186035053387028200151044008267904127237474754939592211542086090313211363595106841932590546632650136536776112538430172288894745656292615343956690215121531827837045021569653885085646822166984824259350237650498964100090700092980909557169247960619351544063879751597356812061048602871549053700467915225800988886004277701556829742257466340545733222578976390211057812504890547654480837814574595310512389694997857330603153064805229378693152538926520864193746210819158495740517009175814041225784649866344399481263923177207931253700442545487863419273997679752357489707982962727462932398563884434595300351222653625480562669775453574535857151294673584534131831919137309965354059100935579406230923843679969702936716917019030614190171752257356613881021135864377965884215641542310082633881793572109646653670218781720726987334524329809696885818746144917277328937636219092127521560714676479217924777093446902003921375148469889476601911056683132778128075023030002112406161075175608762803093944122052860592453476362162522303675620965364891194011421203588777498247606465423911222463428492601329852773138041647283781837110372069359461920921496344896995589779332232730675597063218102119867496303862189637319408456508575719541985493615862268407106255783876641947047418946537222223687670579815367369330845530968782175627330766965071578296511730461611401806818545490837269459112368941623425988672406961822120738740271698693177139492152632112586792834425063938193364729093542548811274472047722691334008803915552296802901938747787178089573040229220185524320153094052652017068219500879203437648081696562720269044592031496344130460149941351123187902625033151312946322722384546049594775827003492689891109303949188641878368242996461616180842348169098576127293607830481412699352630970061028445676049008700044660325026067890269236009392040255958551632312438348153011420357358401724715537110183626432839358264053551290447700664015058282367336914417548501327340779461045092716406962402846395962965963493360071228781721375554206368941514620870062130484052011661869460742233469322526605723773452247995067581561147168941548410635675463050857014493717966121537184546272563456796657811166581417562019451444599131963680302985280446082562854301098899952492403134967109625819211006923912062593476011207908619229915668761233285680720023487826376277926803312803937925330615183354373460047661033454929668448288375728036653640850676279527975292766323345395896865348407222385089913741612666758874136739070349263513160056663857763312802884806840302520181097311353181035584061904609218489067572391170228750407750369529539358586189260696003315448226603832762060491059232822412087115806107266266714412030269728329362547347635857740202608032064674073402477420557143609880542546813963066943753675254392517964458518492765443217066934715088934441185563283593292502677213388632220564421743616069840819989866849680326966589948451790501723625916056132415773312355256677712944104082901136838223933515952378503949234672281521118872222489233296343373049243227957785620187853115780525424554841650011517443892114171336116203226635930681091636857650768988958010499000305852922371710665247745561150071737465296530142405852073737637974836897615821796398143574511601667260616995000310437348664510198496237639868803054929816347321001507284244408898245423470156924753457943895690181252630713727420235031722532422462888658940597158951553325605715157774095843380299190595350457466375244301777424126076685995767876238827649259680189536531917257641184847893983902010692895187537031686597257342031592410291323497938831412107736623326848461289071426374677501595688250210203940959870316828152657025967798063035304768231251347246918138116413269895365211660659066350569861764407827602619974068289009142814470748360756071826817295720599984071338399115668120768851688822112397306813951090396981664504488345917062706891131730663662732864108866830774978300245692849367737344082466109583298726042702849882678126179452163028786231490143972100122207425544365087263764530504285397283719476467889707481469903562635048033838963433873966952413904109789053943468728162283926293046390168651306858896891671356715775868175600754892692654695662761536829046742413557446242491991829066566771532543355779545718090269154419113082011996724014741134054250088432380549994550620974615543173172720842341115430718383382883960588066259631800057150643491303162987692160483590783899723155391260377015126609844659407331092656119204150974817051598979803842611287894403866637207423225085537641184344321869903007214638833990479394624751680732624260561474640050517882294877068337500330202066170278158934375501583506514303998830781412817362584218298026410070279545326128073968913690810549469332686663816201214361561815962180291339052392424857955524519531174770761866217264249031092654630098570734092707421892628631385105719374287177606045764726550569344438166508258300356678790241477429256186343502264536277451860855408151132969380384501605657703400333034409169153414222962812798853222876526871265744697196053525213732417109580826488349394705057713130823598512827984354010231011317346018505657744116119759564530968490815412591314847596259727236146290139319937465081185416594439606971123747700552907912093194428780759564640830606994585656971999185346839063902009357656616800119417468124300301048955285536966277914561385342391281696492440619440168300875941584513509318589897052051541029686436681900801825783817647236045641025930200922556670658583572121036428508391581122119143836950808747489175374293827188034603225305475894059460179672030493474551183119426556985122227428156806537482052957192428914502416548239925152597927144361095637216791704553158227661142762125211850061126701045413067996653761940315710658299734249487137479383239850128569438280576437342906892381494565610371443155961944260923035426752087362097594007529939509030618724809096664738144582720585472264998289458952677296041550858788564165724594904695399734304083920861595383941835812793818817340085374968414308622376037629014405558430424947760876007626160087709598571664916020168216647985359461413442403430451181477083182742520366634959051730715582551829725423149342684958430837782943203206277097505610475667653268157257980801371418047152967295922807715883106799746100410026408128643078446781302238370621534597692415640514469012163837189720629248551841647282386049510045545188609140667500525830721258698238163790713190523502405598043884737713479705701604560868199745359846280248123283383923683028039493534002610737922423509694572478604727652962561988510942975294328920562135027565939887643019820110057722636530575424145597267308915921420573261954799698816036325827278697991960691465081340098569824619816049065340034002583402351190091882635835862617359657597501934589611427698311369226270393229988147716601920377818883740321671556247572684874161974289392899294582332147317023356493064149109633449478944677993252210113049162979233885713056967230067266999933330403017612851447930941256234859168261685418992880602589451999229162130220888537655287798844792044883382546151863226543050415210820475699681439586823446764963988294129973073369199905980668076506152245751468457682861427315800606755166141969976863904533755797831912987444150437780879554424330596190861449066300320294489068082466638432922934672406443085635955802860054230850991449406648417913050354744739382264786659948550110711634753734399306041828289172565907943488157426453772919016720691762034110426941431604671718951049996482355363968887974388625050880662015822304295928003940348792247257197810155594601373729215803937100368273322465406463350987926610016868018601118033220363352782103430431627562161393772209932409442348914285520309561815331134110387439801707695036918902575940508905043183655805929749809527635912279279148695048431801213784792108710959755695645835100541176263097225424001721101046356623778137806215981161730423169807368322966675492757021029794346941460113581353398867313452015840670076789912207990019314911091348273250960228432237837784095130755077663548692537181120736296388961344446679019469975763423371451136561620610776859711869540835849695445488702237946819680989520773445277930983809439507406910465458067765010457735079804574956873251981030646320747206512392957803201290462196179164311817283820101525213693692704904359529044572726288641280958105450178891080939965303105013830066111603445393550509088810541569855985235684850267895894434415755052255181067047407639992947022886988669345092383507092149499317910892784256644562324910022615592491790958051567969772398417792176994712472942679931015980046435552336367054632682139744505352726230423871757348724285728536719262649511659266799054609897586625978059474677764067833625773989385366000926115339668868406945844159290074666783040070548299489346933641268575610573588833516918496037955427437548656901336513649735123604993502249775760795020321817992029440570680452715217206215040631355029203718754768039266445773733307281888635943005811781592048001389938555749377368526139483815569294724726732975013326002516172088525580303640458799777009113582315721037095649721767292881650047730040897889082894556023927258112040585624771984099730359769784063099878503598941765498260145287237429472075017947326598356760059006464531886421333628869225771291761435424648707645673031684460027900140984960175883780834166302680083299286819500322267071484989090206908465904972439385666071067895453091612413535420388402436384597685942043107019036764778083315568218219992057867530604112928392853218473239930449964145088221840238549951627265521542580699448451282654765763184485642182965926694864462262144907921960320391230692476227920539325330177370173242200888891973604827341070927059925809487413239580917592745253900654535006909855801054568255241932719241936153058976179383613960483750714469327114003478515165734135830952439501807538667599160743091736445796962772051785517985905252417787242780334171091809471769808679937171654711651433131784657602464125962142006880006464878689779285117671558925680257157661239763818765146627975616890209506285311134414991670210534745253285724144990241666090090347579711143852551070860800296380537173768215356129471894791734973266993966227657484391366585258281084610966764325131698100056440044812300176913996319178052213163544237730554735149238163847602547606003020360638001414431419368191067899546125859895760460170146263733077380808521067500246315194931801530946871011920751994697069481050416428257755367488993335323531504672745494387884233265941900551229847353085888296107301366909874618488687125901788056229124840165531020935817993280057738290449448552797971087623018872678426124176853111137994808623415192789692916928722690663347078285991070373919475125635154607708014914210825117576570512503312147010827149086719844636114800830665619766283844752779616283364356421555479546224268456615175073153360456953888682922334632979070644305809660525702522641523949088346367370664844295358415526037117069994818638566537417650434657113019421491216440965008769207580511931289462879004928669477750277299169175680682236240444603613168775866863927639050904277877374723899201026410880277239225760391497045165888486103441607871135193592558083734591409883266041758303416177824431572857554852366987050976643088156429365932822333723355633158442313744214114165275155282262374217347829235252301518153688543467128412166172044964242017813093115385870071491580982362919380395277703056202091756676391165721228297485113965372424514544379592412512976544410485511473602394738402408793533767184685872373380096068801036458669371334146061546182664387574161488766659834552176876787305752594711522042060214745662723261980789244665145623227415067889211172827795345983475744183996737088485647891049698354281895574745987183723923681980169426329636101752463246783496463395120708644400286296664329298696881643818879395264398323517728580953916879254268784111642013726048433424823236623518836987417990173621042882074529349270176240922653690717198540143997040882855803134850613354831290248164750366697276029251539582813672748611621775837673872277336030414943214545588316419389951353896036110508267957667939012073640935047566857838752618425337442069429557279345579566501781237412650592895172972706617500925608797714508110738296022804158146087189273014369416882782828604306037239057763855513628792210883895989205571599126704979928341024957939852393835121485429719667055510531905767198922096539262384197920015698295361164828900502280702183031299239067772690557489110305763346692169935994294077751550944705202099328002604900118726356930046989877967016183670402234345097879811225321015718033814570104837976108939273821427039602101883360378263147239097988242640128280541029838791160856347889921447113726246301569736005356791989647052920018442746735162425212657934423630977734131522383786264279140378762467289635945107015859610552761069771305662908520911615492956160988130164170196430093223941021335227085770710858381622971482582578562955156775853474745189412476863142599788364669002628499116366491078782615458881716198879791238925598499475889493597566132293855481579992131265253429071502878427243969114079895192622432390760821177881848854250558663001918793133513608692792179138857180601469899190625479287528968383171382367050764869985875866530585566862619739697492074858146600304357418385510190277402898075702637886214737142450130020017513623113648794874614305183128894131336374353818166342396429377326096338686855938209128365669678739125835766956857972848845193010002240544352446556267823956891769016963708423045546191559685977705775252342753094322795649793332530768116997809581967870786432714078026374553555071658959405036564710125750472964141587022588407294078331191260867676536494784354879813167648542513701646871843607583717522594156330958730479699918376585766026140852989572842114910400765501456554065265134806759486347483572022353093957583133288394591392289011276491611803057388252164704833529427035691956512268599907943065256912304739895415533371012934984554959039127908348947403350115335984985563242120503336635960556273085083063580281392214322912283244349610512052194372784472196634803717317855862353360551684408226002589757812316162433714398534257457811639278692592485184439205123220893059355195052564905658392479659998281369767193464829823288733231868218641807043008209279747738563256809907448585748465977911010005974345625044564340520305275946880327616234185278256074931552661904372507664289064930614019909140642048170059935011395811282136947674218508517447752852341514901604070776617026528527928105003635771959784998957178272792926251939906546321841307543621804793673801402370381978397399711511966768190348580597331108856126841002365168226739776251967824755440246577788944749573803345658687168758133013009358293094744191818200400910862780502997212450560487505667597386285643805429104596735339848083466762956561079422869644587860898568518588489177462013398377686477778921683312014087469581802796167507301376378013320542174012400697512291010071528701899769967198555858569656908859561496145208593253986993841560315988956798647387616942420175743586058074456417427795954779165512863017985871269277411420636154174965206154557960268421078115703659528230237758534112934301529091966668850666986953452655329731664028725565895704193269174287823261950697291386668740579585875325649076231560825615392689527571268670435765406555078021513253385542856090623117273421804899300453202096011193561556423006710965811392413337107867381368698649146034991751730643859330840582299192469230932827914311533944281082059782079955408177438527279483632144492198727426532054060042996450126506823111371312649739275734076645363035480984824322652593802329715322809288073847332545158787794892915160712227624358226151215809136085103985643457948622900227675184185803724038226518808635384847698856650894050250024949815001742789968018422262254803632161661138065931921308564560080597682445805768694895116353602976938433478443448157657451833977326574620168220913695735204936644357906718080650688355568243364670287306938371795640431522295021046023463505549721326156497322575319995499172579623129998686371922215664577307789275646549162219427574139377160372536276702662198443260542399564221054240439483890421854664882310446185003074815255301669973194586225843850697911300312877708047830571489138142426521470818093125188390366326429701514379403483736880218423870229042051479523287889452747706693101709118258552439952186685091266890668286921464522449943513079475160666558439297211757323659713774280894721520895816965005760159057727298420884292453432345361856013691493043217519942535914131538844883526221979879202943511662891259302132033476061556272302308933697608125835211767223857045599803656819941215591558553570831953247032211667188657832756705771095285114369446964441869011047836783625629511894711039133412148198360657209891950613396913584925924324062363581428438528331225149735665415970603685902330012643846840860458880363325495306134795722720270309571049355126030482901261739245510897613538609259408107900224344950158776258821712434755764379059923729526429830110964489193544133813473585982131182945397046012636420645670764757532718067381877479520204718348314443981204412093644553076962306562279737852615995136473818691243515601142004750443729577499265216730894123928406770735514944542046161383720016043710650139621820755421618687380230924113340320653381160274215119021247489831292169881249747323120110275476392350092350494125354420437935418205065911282737294324923236050006970131141025825609080826236907883112355088280172571936496726139950444786356288250064403680209901062690644538284943820297141910154191775572751761701824245521305140962970269965277640463077931101821678584700779849767987061404029760303668091879770389140784446409538709920200406555243033732060098613879221381722093374555572535000406592761162268681287622421870589756995713489268552768949993498886099455395583139039615899373889303865599036734288869150883662501874557102076799176581153792891905039344244739456883518748561053400338076138020179730683535134558259278580651292733010790194813390821770705678969999351243548474017739969037304645233304559281893570818063577754945728491742427253865430854020838549709607419371584263591931767485302482763070931062118998151189140770871819529041462971219592864003470291661597812363444411212123458595775035152874033294427067543505249928409560123547997642758872545947936002345080436858459688289360429478089396252251680492649556411099456997936738861690034987549591079160573723790177749497630888853097030303302402228065770812232193199661823072226616947645620557431673489141708142272508268616035177914763176824421781653226428688321412852818574940555829415874859174704653569701141667043045973940779108134193668281440982986608479134864208699800588808767220608811426165720445356311683195914606916047277771778189534402587994613514942320583451129249451076562259119967408990889082040727161426783084861052811383307166138774756059097824952407928440117141935122112010137824206889207134444772516495538757456635742900301001377874773439967103844343937585979186270742584599768592302550688836252117791019962479550753949145213113444335910282194004036674533784422652205000785703769438063771770453062381318981207351634404939994055091292227697206585620723439552074965116107876720183416398317176610734324337449994726730774121474579138350072354724542817846230211126645314024855522680596968847625750989045998692997679290867946272251529114700659480934101800331085399840226482426551675426687306634790052717191396117536989822147130371944248841779346062489645880458073784972937407712862551529354986651054622876982597057334687852275889429937255318512567863129903059713975081883129614451532553809713100893024072885571503496688886696334565088870641658959869367306431055253411975986472744687545029607697053910872771354250176269605554978108509588975257949663130758293107084528686440871855093147053030492810665910850909506811490032103998386490942080589359723203259130836436325611086969247789503179825336338617732349900346851410497795996541821167861768723615931552206782120471692400280675386180879303937857638608138353060320582241737723029667467191772895450026824315445829084370768785815681340359004162680537667702490986138669692972840715017206668535803807767594391944858935189042427319740312637594970869090315801326063841015001168390488108350542169881132622016795050440630729012436701525174256821832903189018289438385000471494544657093098696388507529154687867155809290693348691762981600577709157938875606091477816133552756440792090113422820168593622210334802540389961408014305638273801946827183918722920550482314029933723811705120011525847100999992154585090889371571144981390635163245201809718896624051266179065739640094410730515965339757557083235127043624983860279463577780839101879031885239873472246225377012859110635698766098624254412408275894097254356822431333007651295991110865423921528311601655140954667837273349638669987830986789761838037671045642466883796630678797550824757435387378967671782168486823593513435032257657136866456757456684980128993979077454590057294350190546409886356175051272378709653118649412191183550619200474908504324086058137265884784389455437881421220063148342481874281156240535805005440045935617878371760914269610757171292894075683808496882781095713059100100237340393671731187232306596005674210448018453972277977138413290065204466288276409920947164121330706185789098764224096407437590201893177173621253946926797549632561117944940995985932036987110602592733570453478707948834194335284024193537989565281242483639033074816071464498088389991717588600728963694487040449409712330810240483268709043446451350197052553135577760281685646364603831840997164296387871782286514800057883474295820429364902156060287445168553167414408937924781121367090198008179358959923164821022547239909370032233587841203786081730993423386925284207272068784421026068229007944594316051280509589964534375155876685063718985503413322429548486135043541018787491810953319387260455297345299993832475702875203800201058401880945515262924047465336763978482074522146540448884016947046311190856351105307912448101863816117639568173289528467541334615859002142924250501065617972482259394457239025096881135307466458716395019514617022748575333538173346502203148004688959331226298993456478285611132058879467017619824272808916259815389897970749716317718117244109346347698452215955336129540257096139259127370613631496687562043471475910890901590318866335091159090720970844998799034911330860642474815802114774240884313840484672636904072451345547515043478961073103761742915710505715898154845086258417292166518463042118574441547223394758441624444194066403181030039160696745684663899915554820703499412929302646863977930685418128844068076190502696391938333243815834239120779355266794726697059426527887424246340507022350790541277620777468098010255852854846130880082205549072901360750766802503257966691181806747166890000526171083212395388391537481503194951585168591568213844827108393796224222797708301072269796714380414089029764450013846815770326867201575461598314957722963896247397989686694295663386430084700470615080835209884132075350873331745029401042727490824226432106491763396175719214308475468195314997382396544591375264519915132675525464865003333828037374231875223599463674387160794881672971451328441887909821646100399487933377949933876264247113358031797946575412364239653685021142515460132915203082578886577172933704785826882712623120442942902752002672294958126167257797834256607051763764459734480974634155012625356241984006369294804430557895599218942532040702431233598752512431989741971406966860400942802830833043152394636073759082080236202524471266368380654949499829080479877816523934271522242288765718652837283907345353349743593015268637161113761694251398152851754772136453579953581675236474613284294431007237354298966173571716768799790042363419075078777852668267222396785117244310924534344354709420202008645049526048121346548177459202325294108087456476719709265071018303554052079794127948219565826385487892987525126172383575924928839539806835486862877383599480947436805289175842917899468617911885352986132279649886825221359481078067707225050067561780210281186044496442380790412095833251187821992741573084071666036411114560487479453676369246597262177265471197175876819741436568166049534143093589783082371790579876553058049049725178486423663317793781328892924587322778791074168553717813977087807801492607789501340365630569585619657818843674691097846853427022285937916308745675420552649700223241821590051577167609628403488741315062380251461070354663065823539089304101194595876188399493029575586065208222768051358037616409267199057356798067549224851263854009554180011564297476325567460362627260213618723259256982703062117399514903014257844042615786966714677005158000373086808872598282275075200466938075536146011015674860675696293994859187756692195341389975295336330345967032631760554569857598108682032170884001121644217528579462784304135566035411035156444434837821211733015078176330592642125028065906243273174643591452442505807962164952738923607689402887526522066179523108232512247164968006973184821426919652199325379017876093649409782311954171397476270728950130529186974458509543047190853226586795057474844881883875984870374867149976865781035879023206763436563335919575742660001957802886638632370827985897513129284560328086411157040911007222874315044489027083533298072871154380137234338021604274155325829914614069981008372328113352054886559676360010363788232010648112362949734176964642570472157035156973426991675215806467707241278273582345428059426826393732495910896234242081781345188218688890590060945331060846782805859720271366197828004449167225715226458009313544242072609921837074164686650024279472219527078111377689569854384559824486958202382575082470674276868069303904088348273200135358391676291266842226817203268984006767416177596973370974670376364276397732283729680196191886170700984865272137265321134249496912019159403854054429767421646279903064236607781635532154687852649351697636347814868251203257393396809860014128641017578862280855452117266586952811862389454529344257697278138869262428023603736288062754540330046232936903919133772906284836369726615930494236648266544229418965016890899568328722338931392107864991601116741061070581316346815190681196315157670261826621894987428308563110719415055998561316851734845585305214865580217609990776805901078462687329032251523681731982733066458702086377256677478647791913869218591178257182728772096026064938550502850896097084828544290449260810707342536598734573953553707360817460021212420448559256898860369781035678720845409101954561801731200840328493475771078257850048074003769331191158193119549318062215714607568730190345595803453786855626453925954130816136458580408574689615609529514739447870594615449559535826981752014662940498554614506377319003567361199425299454759589662897160220078381151937168195420893509545898409329758331822270986410415301058645055103044184818002180185311782639454619676750851360521901972218600992661162519258329701709859735735160209726994841103370073106707207180637901625205439354976670917216429399604415142256970238476989135573624625644556552939431274502421274242870410815828428867132895770157278567413868714026608176689787652016844813954130009423651631298399354676206640603842120145952917955082460554156934245547675692239589820177979116443928734450728907975788388901690345228001521711885195698426700854566528738297312126806127256442094690007522288812603988400372067117942912242310855195009834592652342219609406725208122483262519573006631606094454115613633593530481217449570698411765860839743617838597494465506341954619625155884011219176831436971131587131596657671884355518307136647073400326131928823975202200062269128389304317652941131662110379169822155402392129997159879095712463513978902850987850295497437626220684073240763813570361389279906690433918711894849297894164330041859313993018747886772519040052515923849837918855203122634332412721929461181581237219723541644141339435408289832648417570168634918248420384567439083747197708503712321687145178181021574935137205390676730810981860263612583395359170903116637769476568402250291801263065008855049871754462912231001168318409580264068907881527217702408175086985403013781240434634571670516016037188393177651034918662318077626977361168908131972220732076106490948736457642096192419192836821247810257464342210561834573182187579814436337610992263956200255945671479150215318705390329126499558287036801115744585740553379031254044775565614709642730822204404175419788129355799968020250526407693865610787123188594592795512656661036428356275036190941103755972666220896864711416250352496308948000117886120284716822492115747202485622205016960878399670749677360315995759108833157998614489352805243972487506800556450423323982556241204869603887675417694136366519088492033282935087965076720721704713110261563168071539167388940019984982350758785327931767533961029963667693195028732739828348301277102675977361978193500659049731392028448622416014165725235039266331545215383944865893292195050251411916275502216051312240978036315091820312329054625597387031451199311983356015915194912147558586263567703610363397082453680038884269990171690476834442533867701224289851341356676000353532441760052747706705172619245566179734674044656338425217016730008368170529309626223187208528006486772795332535774485871165295688184419143686525425311663485042784341196451041858605267154593630340891898640232971995953942453824855785869491814182045351380595505875665757556289744030916584633319545239632961127724508021585983382641408170477417614533114197097662823126461210796970517156446525269231948377700011209925448811282623403029732873050249867311782526746724442128720863432474721846621296097004637214695775368885019563009904796118018130532189689257128187118228568954266676391281131822471588685861523042454314733867663814482513401579944698941000736223641885655532781032783555895098565086248790501842877625592581920576430477043252637875526996632735458899984759926233817351247208418455688733096235394827263967337056613351620993243007659986436174596380315688606067815078272274336507837167202731328846976366047619130033894948298534168901564515779400484079219185343494011927446321725685587382942011677080028975179890617331724239406726378486127831451414283359230668499005231771477975360937744281978798796465003568686194856391222252410695482591858553433642313434348316797093482067653753140286246576510584686928074256520810148975874403613502131452533352881368192338697142021504319918394650486068587134151606715541330961562883206385627764400483721852355247932592934760485704503317426829788115267631355865335525833772489974071012519684643286517890929761095605929962208980377531374544811836348669492837987609610420116374442924066826624474270495147174194674047160517019918952884153236349113856473196669492067996482743735305730661559833892778285586982753259033675471838388123062165482371005069298492945402813885835485425487345910207172748939612835729847115218099182578799566011982389183402584214880398106752609683439831516319816680042861600548761242849654026125338501107272913945071372670017435013789285267443292244622902438557763847087359892257463103045709536175498912958978442718433891917606042270067535672003205685171696941095756782857009845357368521354263601815594202100522392972251317141538221190578239744330129767354811468642726202006598625165891479313853425947466332150800787009726095601635795023669534213999638305978980935874315946248443019721165319906210220608583736589133740384021033288943259169636577366768320865398186880473705352356624916567104089126679002879554796850588413583839546732624907145385353790821826218487450042044276670081284984319291997096185863358808184300629813525815065477538009956072031295975567930712221457370854411037045778445371780027633715453732040808234725355132742800119533145232671252472693752961835343384887424302641098015417065617741805545129162918915239111172761565330643606081916790122021109758304758623728500548826226998613737876239774438264441973337362568616485537655483205012179631288270573648353861748498151664703504155380880324601798859345027406398868660052345750563503338878633227726196672510397288504916323800226495286950172601564336153522504412107945530741211969721884602885806067935578704596345267048934868669004231196275489554228543917290875770889651376631353744407379211952243653253371524158599566867036011617935418636415084947571482545115373436899555861020529327463191293684069854056527667026705249593522420058350346447276663696192982571429126935923959481473803910737653429871865043624967129175184988373216316202164730044462852491060891990250015840060868434321724529671239821327341821540861936609247046737769018275853873924578286370634716456402934903471529947536011445349476378887484789270317354360085094257759415336290691214285212895879898872600746964317356395841989831425725266692123826660137290007125764359348830295139256226696182974776247244514343047454837669546610285105733618100661061918103990420148118863166543412633444480694786560561701798427360994763604109875927268169288499182489011929301235639492029208542889435595465807441742815723191624639790178181424452367949458369664553306853713557444529916386878181372905033224231155365272359637727431413061474538302680165812945133055825352951931624252498852745653235147772107327277400866898987588963524197805954315495278295577872344151618767387594270223671684533700002029332779129354940812007563669986684607337219643460597614648705998997520418799314695950003494189023692823457504308852460370102780815691141351628972944683405608792177643853457754551939866521349320865685896091181393568125658993250501197466122316017780810586255523522211357555230450813145310460669312497891214531303549077257709309527363387644583277433393629799517930190120186344361986583311036240568272036058671979901694035934270469384832436544188640197006314336573971052341851043387986549621696901384051286711586954019725708192478133208985468823129764624988083806563852266550351421233458862357628912518368858844185979928078952260142121933410303185372146847880073118676972488876492707184175990257598687026542942592260138150231642858424186734208719563267897745967629558780925373575658345222020948121886102744598803424350299429962945620283680036333268644501274721605727561526473064899842109934094284505143784694423437011002229561949733641400399326755492977715453571030982845240541761852728265096776721924604927378500683137546793021404191150604244105633513766338410150680088997808833640139742268729131971638250258543438574244922970668574799497937846825412100519202353862694723971312374316936981495336060817825917519964178334222769854822569195965752696106881718039179547902117772173908387086031628035854062920492440944203026225463250601949026335555865366356608810657067411150411296848145964331143976814125337109971762669133206805247397814328871315928357353008636543892452673022611415524721535768102814691247954677435849940622005938304129132593219711397242378915947093565937994848901818701016789185565196998186140920755910673912119248268482696976528241508684167324994078723770771233580216428089969765550201165041717717936665177898046998679557447247658330523063167990521417554201228158787421390027441715932182633303038621136568740773658178488104303379542360454511117995258936678940875832616543259827171813731039352932318152008192954905406557270942748853090704003352054654615960885167000323136069550688042839952479235506461085918248591326529843705356300318187007436207035404678507683251987912563836171627615442492116132662383332271805830357786426964303614346084073896969027911173782269856389728892738709837454538192713738826152412974321483788354784102575783430760315122493819963143297521785687203448984430846498033952043621593180242719101569477036106084335926100551688772121788990324675174653977647987915120530179112362499043110104927489224878576681721643730167844543641530270695024918404050136143300790749665644602284079344929593960727845995198140731577240855516520140202523977200532801507130310088095457021082489093802126763370853601857562511819042012676032527648986203031994654657865654692097812102772497945131076536882376987586682519980094800084645893424998789263125741732035845555006118219161551420611352573326651254680894016940297285314840518133126892786738111591733913424055606214370894085726289117106332848346668483275341922561895881584649667059812589888750439692938046812578340659055968837043854764507980678348621724094230694168247809378343984233852365240447079838571665911389520347953566406895788343676975483257755414009911295678905788846943889469386382480790398298930410500314439823556691832316781882709281477164881437443499282038270097804415963033005263157306179016317506401537409894567608026813734027200817904632927111300544093120613928217889707299629647178260738109813204837885319081406281102947810104125266764890238920437961765975032893981131879479940394924946357317717083047647609805259345454285518918709769515706946091696222337796859499431421868972135338938872044060033580099234575766955117377981596826212525609605040081751111736322168131068105691179452885000296634881691015504864900701975898024484753706300280781589124607218192139308016107751268407548740876928127670618632213359713315254190290216285118053896700905691049451975180384029115822886148361593519929476140314665942696151067281290906561292321861064888023771338195797080350072128720358245919722209738184745125115741403834220572972833892819523900031012089325416323350858126798187504987800903740831409779659306280449090160939457637593107108096554110728511319154527991581552262049392114399391262575598769580969933649818510616587311810782313832769980571995654648586511723844066164172899498112024530931435430425786637844014523083470329420450880763049954853299834334718483944297211224771960997235639975287211462970565909010240379740229982181233080330301585559941553572485882520304284747105360460496904227445072559935068342116079199469914269155783245258637281009142095687668965119068886674317767251453194681717828015113518080004739508412541926456426376046487354114420128377337206253628110636754957541725898477662757149862965479042722959385274210928905632256974537950097107466634748785068337772695356425370643069421377928267503653867700803260206009811032631038104375656000367633120072470342380984271093060158351606244464675339492409029306880877798465540507729856883271955389301183623487707804818311845716732839636880897337078196112022859960787307583305835198093195064864728752687357065371765239844532149648424799551262921500331626552315673288035708976799660237355095763811643372153440060682325218434491262107081425042453274723209564912286836746963406869451686812711318590210697214155623917712231217171346994968715567825974879002989723962545175787735697286609349596591411289203554745703363002629151177185010215234177344277936142369274618135406463102120285922549346785052698881764350018753526560443942131905179218023356978412043310186783557088207656663821840182716834472737776694089389835901058126620257517591442538318702701230951520509714958848073938305652878713263328704896399051131685327870224733008829780367293429734896783849584711220706081665566944224858546523551094215517781457771311002010526618801203394398467456901472523847870378524689153751001220219845542475530556318530474696044416326078587855862518150101067980288805072487928292463940571979723287288233315604515422588619896520160764600421579923185740657439858284282068840572059372673047622241768861353129181228307209269723735201987527647579407982933349963125699848055298128980435222128915782735201300801298933614329369204950009292172478650617711659633214795572808188147294036544582986139363354737153936459535490253386167120336913581610744345460059332478927265104203107865076754309339290564122789336591968600659526192416330972606876431707974692222326642315221323087876201898992495097948605605531170551177939360444809481401047197155304980132374405065447660444026972291362275437193847038964809715198220608029429984767487877019016535354102997761129101777569873461426632838432056693176619352960448643404885532101077398604811846711179379242073130796117883220356140052277470590930541090139354521287841786118425048364766409318933517306734663246432143915512486973507046551255059564563615489187643438527981641271381600296723323866109021584049897790502997942390019968595392637645466337056866100360840160067299181396438361107533916241251017778128686529717940989715231070440403949532125914223989188547503516645817350312555326401840398921712770998614851920828953650881502593794497282356983401263567425021218914650633068845571635108929158368836187779464692308478848398695025793811459697189672609996608469606555716810587057755241574079934065917609654559271074102246906321724583721632292227251068088046561181851544501668041112599524277721521047634134851767431799263390746376155095078881522550219808151636793060657636045298804358404935139095420970773011927414675189950794565753214297851376358657214681504815244327457307688348082612534973643467746042228112020609375145212070648833633480363187048315621080402097064004236338878980544283893579346504283574336924740441439177280439751917628416584534306609628407316829651231929973498009776255863640570046266520052384982444666893103814935234247473148576825093848538453530720767216826794261648312853607119565145643479900402026410648344810538485872135512312222646383596362628020510644390142602016798520600654186887668320540382174973934672019204262664013272264198842842405095054260192045571880364458879600481064572893322410567875849709886940390420265663994336860234946255592617360818399007708539380732035696454339504466671948441080879325902696941386201722967599754762648919341688214666270442989804624422763258263518627304697351553453735882452738411569657104155554730402917745392882736832361976651860490193233460132393363039922388351917945817459981973200996054595371207891611852268686830762918974639311602927980571130491347111808429835166522537970463058928714870778971885878135898365901368780701400228947019188685070767792661465770827159522977176933190332347518860653381305100897260611162302745029520047485718601198215452014378793496706689348745892817415361214273954957118470061477095280216972929662883762724910960701080954132589424177892038220105949911161436163203710816394557879179814202881587027236656437439619655950275160158866136842363717986406974879462354035184453761225224938148977314136923890660099469829660572744672360295562154105749898621698048958083509211301148512162572756639649756467728923248407519999076186428897355927910525694757031921683657311784185341794023197841194596819926965113814219240157887053094522149382132021798411750166007621325877361794762738672617565308915010724897373105313761866076482139680493261564806676436863653043316001607610127327557963352474655477925479262041558483038880106203441321306746017201491645174864091078213945131206409138875840498186240998624355326894847809983241752225459341521301264183456180685317723671964049232481214766636067612341101335949964369886746463432177061895120900723561936341341330699613823681747076126102363855010583605962017958328681012620616077823662604629023559400234303248801909029604554048802446515092553517441906856948338390730572436745558014172035355598202656106934671609309825004208020700985505486842261101048652879786208184399523440048591100219332933283394946079118060469057510664117017291565228263675170002494504589763418261422092354389976256767270541819846681671085329937597313779276292903756254137891585892867175033271037271532054377405353140973320420777525903753444716623566539301605669085871002054229505131475297625231196874248733157073928043579436010939110477321944086103327372672832423073647963076391983364174035899200476593505793752083444291956915581123961876857035284942839267386741236738548277908747119929255452303181716693529109254191867084499901408540075852718287356981839277149600714703916312450226084083925167004503205611250165381495981209857309888103286526437803204134628820123963221873815090436763440648167914713167717672503602629437779160578239870377323066563686069718021113473461481607136218982842489450756737570170132307573880956488240874793776280421085296263297791998011855028808502304795666950356896431350054784987577399702606512705011128198150025492389201513119993303726274807442116080055989193885041512357231731305451640763830338646393534822441427662446968912681608437482142718261091968371094117266458914136509563452309038212145504365679179992063026838910251494033755508662695094651118850806616317007097083317394134811848858523203853154989252775029627271920650635545192873054032808056153033891665470699156870719893794633411138866743383448452496694721470971744718418059014921135079379443534749546870080091777842490812327400122307000024855907772341217334247600053156378842772440318442717250992974347455755044193843410847626368309050207920240899503145478000728827406537212017545205262446808380541781312924820650260841611657020778268062108876651585192030659456293766398341447328499421761268251319048872339221720270485058777120457047206517857177824235510401024836944969273677073931467866894349760880824335796003836440286925970814564278174415463880110185792698495868479596033253736349023813909505808619945133518341947947859471481133883885281415949353689300925834477452089114843845680883832009845996439132751437810518942314774759169095743735879979124154487097934586521644973583558345439154973310509574772020406386163424330051728175707184174495954972402182138049502027355453346001919463596967160050110297375433143063040169543850656215725955508045672124060804147879686037390553946367607937749231003371233308486560913262538095839552687870822837884243681319457019893588773393078518235224866797292674398612562312373307094387757421796305783794881332722501547737586007866150481381124918859995633361008133472694379124072058513860954572145761523717256333271710988505162809479711891386212269110133255502536119492468038495084589674802565491499732089880343525294037195203416314562524021620783254360625540971558534324121367312782732095532243446449712254580664965432796177463582503328915302976520263757652686448716978479370448133163605516055198706394020370881320189315242805782307121007503236770249963094980016479782468472751329565670418312116176511593053303576399195035723941417059016810797458545034373881420132944900304860750196700382598605070886738401628225188962913264261857510271110292194682246947821003369560299302522186442962990469064481061359639455094714331083207649726473172086404862154399954799844787897385380198598273712177706311818059961816005336736494921643526138227726505721922138542574954188681418055747740990122036508138916242795372485014907246424005896419860752724488845589303938896045465558086127794941379863214444141679318436778762574317800409145370373328896412974267329333103848676390373939397823918250451785288691520103522019769371444657453265939156431894591053343072700525451662775837999481073332821282313675937627122256015718483006114329482228090464780312703066737186276733545733101733938602741753361765775531208141928345522939856396376589921722581154949788560197301197402415701882718951798627405575487468280698463778205815114653227127491020993060601599767039952492338331160880256438033006949810075238604626755599688076663044042163976364552329200497705065379228899375637909663901865276345192257620542606633092935002804706851969816973873060443838697106813767071191736466720056614690855623805255136132242593120212434400472432368426211949164614561826909221891090538318255246161605917581838220334075914498242836209892419805611749852884482967644714275144543062826283089844084278606033136519748355826035714207800247096699640479521093850509736840050144555162766431988720180786501596170910136860031202664486273559940732409823487129319916314102591940770870817582545963259510674748322376153265644444335619349245065105005357824586629877525451001825707262990514752549992987609187171211721357318574161414042714568233425622816791375738208283658453390990087106302951736850050404826381169673855742107510945476379392817197975943078869142724410144533742458421649550809178665569902372720884250838910285354440559542286249043881892734981079599664836674004471863982981509693749762094534765021456275482064781705227312934725038661214658493921060660956410230285068401637186638254624148368849011325019457614502412092771754438958605658080503256555418745813865487779893579976644608575514245161547588121942028904059634683131851469081001245310996671138494610557695869963574485710794288357288008552370038748858242008388642058756617001869660405000574821967985577445494955826153715032474871933513244472846944644209738966906014459473005914584844266898561219488992726867192458914463884775299910915931714076349457202060687992862712630852648796113164745447879783272851813315480171836415324866307303342555331530868620899309800649061414246904628006457208677444856298572244869639540582422546047801438541180446812183524890150784214293999018456366168168841048688381920347599790301698665806049290913776904120038098855246857292135828636584871943512510693330850382219991914649033128551118241314678500529214781792704933710393753572977209550219764016588023829184569700382720962032716111008032003851368131801343763945521917843886546844970400128700459536168097390734937195720989905371318470429945474646096387992071715349147204967017051680480216523281093576857259016436362504136503059502995860514877116951289014742679924836007246795083660522545152275294719373951981118333946848995122368616885619437957895418191464678010788288087810352445926220847063143642845331297878670933835002782096909467333787741943485677570150511723413768077936326575110732695437683990192349691359409945701610271732155693968239506050620379947876154539264884617007461301788502804470785123851711721154382442958569470678582333155131092350224638668284605197039753665173764401054820999325965924391785633839973209570716707958555554367692933448318114833826006649731489822222928752099843528737393257065711228207726320482918339296794763626355884402471493077594374681460823075951595277006121454832308280912941233602397266191617328101005833664614413077698691334450136017492573530673313283814045138700939011136939408996595336421081336398040384789052200445815736721196107315606058927802750988081037293695631161797422746728387742005355567101296092463116719055252616056108023313404970605143193527617466017527180742295616641216886905916329041041329965189853727364883219570675686958970658894976198975007673889802941874514851336488365207368239524124718970788114771589221722894550008024206773065402242434737071619800245517521961775951984647773146607341436381758751977835314863216343783333610750013358820568584233328804318460649892403702351819438279629122293665828286486355792783570346432151414179817742144792335916701491011684551514488905931086619839786263234495609905495540869681655720826565001172021960916643537050480829146732021513384243910734263214943757815883041163187983423418578921161861506591960947680090032662656142524104714460987789370135057679129618008597630559028318296416681981458266697073260183466077644234174039840057934339695298200841718990046796158286507060555309244649512964826364574220694429095433165371020141050150246029135584272147567904144929550068215933895666791924213732853679644240433152044214672862837150051966839474598843880797839343186047178123678041814835361663103194802734367860686092093057828209482532094744221503612931626177215592429187173866075189223095748921304636037833369928234271215202051879679085837989462177939301833740358734333453485124086285339049765319398926246461637430585551603811555666343611278344488719409987088077805447055725611914724422651765147053938406633969847927022580652160057299106360984339896491696048523864868723350704080394274657096786934703069200437801020516056408230090701439418511071483872862892861325534492545761795443859267178883083266876400913060875794698278687293643328718884492979437807394143599621246196686659776830164990355512347397219530209266795455380817553448042284601921362445164264967482044535756145468992055214128951580611672427623246054982813573624179806724502196020138320389423396391325236415099667299455431959133958117778780229306024173152478304888133456698701839975293577221207658767024781379106432593788798222973722603114841502868147112970990093366069079178869611494395974332858076680031831150850266493940841566602986866191477387032993623552560584640529165435928301873683781907118248434909305125527723592472424541583540766303330350561385109589838802594465296618855409849026572349629501037022066175256895814162026950772060159076569890673925495831779606105064237989736218098684158140732452524180224922574410399538879186806496943647458784878120970539194174056619407494807443679671140007272445352723462758005678276850246200095359087735628883447134929302516410629026873225923786977841810458093166734092233135970853974667079605704276072880212871953569657398706277065981273933375499311507276583952101574803583467189834437090764189808460407510292120743325447796846567449720516418824790941432116864069805463048232795171803882935867442457058942870009732984312891195178197091065390559789558321640367453099914573752174639098995458938799150568553283363338961638863907328418273919314848423231770808297585646064480657180582060738818679066307374548532583789922622602122562014211979912299061701871959340429407237645469912530086110195726538361817883415765809897213342605560616346265072199704131170544718372706817011039470211854641920993604401745149104157157706721066546636448040663139468434384502778455009775780600961599752148913618828042464543846756271102631172528212522216853936659569678438689988494989424014981259144232862523682238473800766559495986133951441532109983103981975775249305700215022762954161809808736676935027902135703786280978150258823004262837126328318882912946772387464774021893459615275051295692746232413429427404397870726005532383762869633638224369041803725120558000857998994580261203258925352544227387282926805867535195901289267299247093688505283170100345430715838603790693931202911875040057385534693069859694273370406878777918559473243242460991165361925857649591632511272098438588378044444330298677155915484935626047398141620895864673261883234732851716118203522333577864672859049036204320384653445035621165580958101603994011860091511299860063618788952543949531161441018613054974672544233775829199106434488499351972958590328068267511141523644291156841678857798938154699032594382589055029243307300896541869669467510420317538667184332703434875713372142804896286455556800514395293629808747392925262615801752737529094876937398534132890397066519934008171636775420008118737477231735558064820390167334602330367592640734535044894461125654300797139963990520439382091641587062845868196110096717575444185572274350836046057869150666021809326249440574228293948225745610825809481819839842072803471177029242787830761483277344425474740843933729173236378572342427916007507659676545277230913995608292598887927213204988201861649127494555292383277101101159007465056719211277460189410820938529150372692807024957069477752149940447070080990975064803543770306769391951982856118549444549948260551808760203022269823546463878124549308518231599904263805435250238569943313449863030076361913100895580512330253031302307812001332447049936243592476264482912583371122344635039927510906772299438808043827696850937410601226932583639433431801189641766081424456840151615773475870044160683957486224022297897224733323702982713143933094720075888380831384197580128312868509179692629334054601594634328901772519618511342602287806102204209998594705215746012643948915474555330163317263911203732863750997642330776125811298159153731507514397300672625869816034387670847150906563622588600312371421129996583326662066516162571988594524527401408433540799299510415968731649123970435852385683124081324533395672536786226648136692983760612621805021670871489006967108068320101266909017164049131261838453014094555519160508549349946500240989113523702819226329317370716149677259003387876198030581607898285799969716065436487769066527779716710660444391190923272498128827999416647002057944339256641267959814101581122169812762332434033787421017023542039972266498068300057732479788954865028730446798004807631894954338060395119920355954607673181280826810487037545402369109518685985204874108153669378226763379959432908181820762091793911959537350272700128648042616170283523239494893745852122643382457482746536708440050957085137562595045376484616410641583073758482164846432524631588342177853363960025081251598624649193306135303161118156732174560863262910603465347115265294475470486367805681325826141805016827434403668480329195586370558277475930799832525987955685687940037207814316717441622387146031371299918695209965595632170681087219817295607853051776815901614103952241845059315837044735591508580963835530416311262610748886694125007486388720022259620774106991520908127139106659068692325836584609279680297794202234402039683077953294914396957255163052483615308977579003892650022550155787222815197586311960658136435863864930509218640839001192168178087023567145745148524755417775880973298153366125347117099319917443415627326109823141571570862612878659923757204016342443880624900113655278887884440317104840517633046985909219437824091701808367055212180466287944007637504391172464150875294076093688097084480555087398090463250031505019487707087956653198054270448514368035098399318998191380576561490119922493278600575181233231862148169985425547842924045534176954920222390663322101355477123177158708704055259546216200251695821411010562757291880320373279012745271282167985828396333521798916353185981060504534870888688578153211876937641204011188709288461941589058667787878593534287256119543392068330688705480346163417541957386171663602520658771169164855276050581510067424503002303609223765439232517789805527457827186114117073259417873446737639481727255368341838568905699855267665377088923507878181741439221989572530901268012077677080811361486804411059682257969976575976330000131722814967245882198980691076518150613007376836670959039845760798868823787559753621270865200230485317482648933633729383062632023034994773583261402121561269147323752995688639724863569145861783013223542679484422424855814622076625218902076345755928528779625857042494597697924702897722562164915010105222430856812746879752570601241800344005794367226656114275812975321863696567672626567026514878005080875169234073288718366542055618409046356742867727734760696183493469592534526597153037566544430017089119471866917735523225327175102690007382485765892103405668823841003388590880549713166055084738645898722705507921719023210678798504077477252941342021699782019405555518288068725928297107686805483746469272515447842863588824836695236341325836472309498853797930626490179172306416117949963433726156499598906535535819907690566741959139580658576940504252753533511981079622116490549814445443013394983219789004948110356093499991517752318576695936916916544569146051214497229284528722247317111509740731795246693076133175516218795575219213839413855920182480374797816172931396258667897463988234826690745995879948335021221080218620369144232909849263946564867679792053988251120196388634758133000251485537791200552007066305935797877906238098638790764528525309243828795236658815976065749199757472215343490577024618279319296606278494726875173837648541900234736158211550267485769690263971582848318533557906735987661122256289473088367754110623761389352830337543793645956601808820950740083599463172043452208130517493362813731188563386663134568416107919443155888436529329205227905965673728359806121601502437152182112518809915773188556974256040874625488255516069231964369361543079605259769708874250272670051582608111662169672057276083301743946905130463606563512902534657187493551666785796789244614656922908283162344476915587289523248299483239265069749216644172546886872998953649654667307228002068963102237920041088891509152188927402473800377415014902705984122503010133536709237965046578628041733462878764203688432541315268554501794070937420307025826004252550355741992067917168976356582858656360384861310917502785972500673103313031841965488341943135895748383005317704506698583945603870699364440687952285072686144064770359585402537821473267443119940171902794918630487733037483965889939584677098361414166540991793570510108416415689680479666036832832898143067840169500841372217998989807735602366837618889685626035706358222492644852861290090321087440593432294121739982125241285894577626137576540284843509722470320072195091532493203300512685206046817616927485124960618515252583177589102359685678973354198469322488488260385952931811625238315206722477073029917776485353163797049516168930197542414828017554599426318005318206320056216066952352179622791768698448954085067091102038313145212206167994530595020376630681124715028436620524238797001227360098918660892925300535351640597539709342232805742772618837465026767421637033137125306195710927543858722176481291199623511498052253665165709963268987431895306987356964773403153828598454079472366235394364437278707389822826487566071562034570123696096086348939122759217078896887437984191969018398471209040391822767357275840712820031938996254177903279279690031428783926434862201041165870769526344599511815464927585202027356525362771989579900533008223048554944086529308998940611000039116809690603151528649679204352243785134211980110990042820591411702679379601696860611009487436876753652607222738528165096373351926861802642749491503238621319934413410250191338105238300040351353437514370910612194081644578334169679731045191556570891699741140626871473755858509037898278619395418069623451516599070690532231042049320471205963758179608108509495707939954087191495249590909566660619690209771607628812915142313015733979849449715731075523170183206119611307849094248096285605449927959089814356839091048363072446077575266406087337229977781733749177963317566686919189862150815844318025097667688590498276674237779568810130020113474699054036775709757265948800928725060863270355518052377738642691529608239676167282433651033797840871681779789454717247944723985229671013171094436522776645629663913347115707112245484950389553416519379623131397489182158454352429744336432677129798392954437667380386815130844833431413355882577956935484722431592113153494109461329413011299570839136487772239877115406323595624716525333644407457071420303786667545291538519820336118532579385896938546180079268855482194452335590467500408646268109771056740501119467195992100632022924962719157574640895702411289821130907050526510569191422666718744116059133195140754214788318518870968750474151098821433097243097302317655039616545427926888969877434927365525932852541963190884052996380260193239762923117377073552786193688279726403710882155504605862862943271242300895767508305672931449332214013221013338760433606775024180305286027834453710110963625014911716189709777569722044307107563091325608946619938210753103720676329345109320283807691397400204146857681544734082151590385787152510478332084280200545927601609332537281891747540910720159504335003701683207145772677150826469783725052993841459250751305039249957998270237198219270321986409219441710852262902006197167732503164617218861052394411588087674889142942405458197883735394615673285862746510187472394612440572783954680057029672832846622456919202003039940552246531956231251325946225368438219111650082161294480797366608115785889109704418681221770230784490113886750623772755275859244789931881510937165905099141693799238297210668329837118052666002314086656268988270428316470085598552516921579701625373577004370197204518984302649812012980466496991254153241777495123673538065978735045667277835079977591872584148009120833937737229237499482036039651990184031999035777776704850477441218539019024083065350255392852284391224767292068486396469694323893425339475762223306570635016706146623484997751153129399598117121063994261230488543073199782548931821896898717637732320746001632925063788343249844226607015301564944306408536761365246228147112901368047779168298351189967202487535392887503497735184577870487561040322694400390768207404207115225707752453655233801498244202166488171525936119711152059899653723333626890008650607198217179196097285161992207805503960997011901303455532782110230354045459795962836027374534513291590801925449538204773617795877642281695464584362819709574620662021915856948108978435785548092058219540680214101914152569659057411506303480361631482029500192451493927424788217355819145350180027587745159194175226899452479107737599176454320066117565520831739755788183980476010215106040487769744825588907910197325460354645986415787600432736720953633947432875948226992378200879340069518160447185008993269824451443143291457103993366484269675337736803308339106417998573258754096241251424199361744647297623918190054088534178491139036568528510809258156666625020046490712930397350942319236592568338520896798087938996077008292141850045443744773305301146810103069592292706760372073528047196114953494770460393935232095470694174845552933382604925584405909345571617685497876740372972654332625311387624671566019129165386563989553144311815903503576906279263698161355191099674668029923509969329719726410755724663565846492771415712310576615852106410083824256531609306018768349904398591247449322629168536718740287398447549989699308194895803921537831639764887401176508861975947921776293802700890320994011924892417364444195984072398568564665018523983044500900559762273940703043163267081302805802307185291603706017868767503650906686878981289143812499684097326439207002731788697324760400962320582916988190059033434100798566997035449886552435663071058055778860534352441510026301156291499436501390336090141417990823103321736989992028766788882109548170410642920574550073559592163502455314129448378664703663926397932752283105189439509494476386538867857780737203824258810463731885586816855517898241348625353893328931472581042157398902439102359310963335769894040276673463329877699414982946089633156407398721975779575588182991887596100017628544568470595762908296128001191077559602127649652354244696194711849850784273967994951365574883773766259813052969541043930413715157816226851881376509642126516400930713574805959147386894938614971334683058090149820749679611396034545702008050886939478988764984424304464586305543873356117731459771732297248432407383347541779574808789598542928454115594848371108405138717165999996148649236150544436628710057721278611152685648088384524994725875467632807261813006867806832150581983860474816019291983000199100192746226905526438480035152495816740980223018510043556538431894624083053829290770216728349875496889745369029740583333320863847941209042910361100146073729249241955655511726042311371152875221230306887723167382769898621954186162939146480225723259423421256786055058124680653528660472309068998769972232794849470405433167757149430500612099337646189488300981880947429204141988381990408186711726560635372700318509858629136204351705038387186151837758043916320460446483705002398196767944112020088212882424039980580819577285975217890805379137010508597345807968351498915668257034308551199407002982776670620645527787077158070259347278555092774031796189869993304743743874369451469293326123967297014427691332402547728494103541031714847208361893484458124735628938605870774885572623391880121878108541680842846163924511150225063044334681136167263667491977780302432796870264059628950433354677101043228968233674098658883601998266691006486673510101894643360331667481573996051125416630230621386460119856503896430823616396830033672146043868091912824569292827517871059334429550710282193993534654719959384631033578637179298420276942249243453358854222011481290145820791080810619901048660492098654763974712193322499429155970589017222311735939923430965399037842574948768715173375503041273559618695014958284777718459751938702544958270372756172891592912791367797643345392696254622481208946807906877457757633612316271259065929850820825501981887634985923159257627333342131649558253436974511528886281724775843664217167335335492165791052849225231029613247587355587264152299831083502686862170770443544637505434873234064673055955734427064676544062946947211157957572707831625447598893999093369504669309559916271246504573766833090073264583801558565689373821377747066893816873278159409138251840095964957011565944371156666084099351850422428142916030163630112008847798172831342856324069736804282539499124391688178318110357646660921426457809028441533022724624822055561127498002571862791843600686100924638057923222595314650519322014743623464397326298177660149753732993403585667800967792057990124194869380932087337891682350624378853131567023681588706397801301727546226027345579335153372903830910266141283557781311158624782330531500223816843103189466177501119698306209192646767157985510966629938002222472582656263854740411846992791044395358695958071255201236987118033504891684797171009526433423186415328568085737772489481303927104441206536008689859276910230352090977334259734955805899537908894402949981648270670589695777277187125516753030863564747208411679440928793504827211962534779518628054508980287297090656806088464512741279255031115876814495940961174117905429669443442173057463867230516612355624275607468417369878220448529062416812395729357853980236945023458420467653671220062436571020823216884642877231661026338899690471066419022558103717420567482262773328423348886332828946411460994279027718519813731088353609353997242496836886844971981160075408428034498827665487598987924456674695896078724893297613535849916149005999878177758216445512868202613246219685949777367341748496821133208710998098026478945803700491091419830935193351158674487534237378508537698972232561517763576352950505414994955407735385507338976635396278931684741402516525868576784287503073253672611065861102979042906892025672836882409524967561781840742069096366196601619545331362285597714440564237884772578158026185249647564082065480315049257502012270814098459511798472301168277162573076161377246012637494477305593447837850881961005507169001646650792823889635246934756666006232025618660695507271442207712913215556058669012737897066486268670931612224241537157413207704249093520119040437009710796810822387886865694637663596796074484545264722201948312900463224452262311945417348303874188786920545499545026605884914062345568445795229317995341006186853414730031866945791751130877572515613224878652648855877640205609816835524300755310795222309782582461407049655886084408516839911090609155354874404801393900951612198975295469678189021564706553829968944859788261358597582103714040453647931216518681982080295494871799997568196821030775949059402723601411373091496633320701608435355783424376660683156666110830850158316007944489292935966423867552384003943307115439859605885565567739852048354919064586196997694572206582186605881808693113230488002982614594501750957222620764825813401282045036017015414422328018321785130001960285852646191576171144501605281946935625393156079488539177008499930618633045133763078477669110943194083362506241316471076350839345164641664200882530988585316558947563201625109300782026822695128664334771394494311368339555286158652361997088575014232313570447235919650448996719604282646393510287329858111692488178842195269716673788907815917425822764475404904860570740246045580526155817524689170773615920786838983454254654539958659964674812458136166402823797570235529069179915836769730181781808718310525298851219911137157189984125375397925309335776257525095869600320770527112339967179704866681236192242961926510544283202745024733045085320146682377528867644198219091028469744484934268141663674779114665692984878119940766891743520331781901952097720912092241473881911149136356751893375464648293607671138983541508553875635923352129913747177044480786008738853408120915847052476588527351557533985759203570379755838920083055366489539763570453831317673981051629642245540546688194106199289346250768867350562468176549184826053066982287812909469508604340847914749565596635918723554925409758695171352943400843172606876922350131922766873090704398085217140697854713495623755563898868307790138177266294158500583182536271087579717501981959615417259197588549714484119239603707104649162948455018797004221234786883995190990714672142658682814300820448354728295150735539136487156766089360552993514919478602719697588005844700414460791570043026413145186306673164515829538754024414967338499177054819544031604870811254973465746510290874919180103890168050606316377961873584844819289883971251516582053123058613472888162355183732481559327986117361698906435251455266693478252907295038501356316709839593565193820677114154926586622436655296999817355896615788963399716416787233980325868965945915206934622748040224081571036467144396370557901294859051907626294070870654110013593129271889013901962896686118062878703031265746388381610641378746210221691042439855825120786934620926843465322722687824141008207978566737511221325832427911803160378570864950884596875931245541697505803662868140391592622877401775476817862931104435141937309914845731021316720359165403931368459030192397388368111483962051074241530578664602236941485781879160434594348331560011384237182056093622740828614749190505023121156132807520132372091910719971604356443180275496443394340918357792141821327052614967725838575091203240814778979689634491381341945639085958957323974982411033034769748278916592792241788526842639652449704068319663168181037943493111047526263056282897207189262473579660682553269620572355980214036652751605305756783702991412103835498780586777845042570240651617921145929643649023859418270268852734125772321830728419189286575551821120696625790356986757011259277211512447559234167931704977940411297027976952111758157328413493500290432788433555293254310286498764019987704633345992555804798191839396370860435622152916529616658215656847518177771125954139027981591728606153767901780479784359904270986262639720436671620654730854015682742268672998558642508630357885332363131240824560551441554539546514299074667652941970967784950958450168221578846950720744748352261204844367592360252989672531194120832389530074130548662495928155422649998455940876297609239973471608781586802219976335486930368960670634946403532903071484110862058034446537285146001695369312127867440533321369597608805508627261571099762232863087365272788863411860890755775749967848089869306129033148297208407461298028642731870935268734673150215994097439395710388783782561058216982095374453382639886315133539975035923853515147124047745831212337929540181436131401797256618602210244185156444091566807902138833695031645137820399056315492336856717339246735167270887313406588484799695645070112164208502534551454889026738723666838181602013205779110258312238664849012236756455616521440989247752208384312937432112277140387474901404158473174033554029909306997874442733284852900672521202566974013158265948379296769265844083029017561073129158302616568555288101872905241992569642967285568422454923961966731179501144205646811864167382442710253199289209860035969302605877947942865177053143719926101555361751464615125534289683074655458029140858303448827852318161992918745789825318878129160335342442000966176419406400679931965819740559185455589131682763076665967081306496350760740117106729372543871168091253620112210114408638811734336698784712019716083241184508210153636330068032263893863255148019850586487471389438431927214243317422825207298459569839906247369742498279058495528242000061316244996162149733048288434815092509737932335934791896714699049429089635347449943688996178735158339757663985638519413729677234557586570893638393297102076957714512768571297985568302139828393589878422072384875015487425870092983632698793902652190749086137087778161864845061022313014662125923584273852751728804018821758377106715422314522356090133789041023101689694227364063602596878217373220523058429133724882667857692630589227049668101054719980403042242829349878157550825546855733659357029331899349971328300059812901836580958245397185029129344771069630682084856535482537662592097329501575009472214263563019761086564666504827079255492321517850921331701375580122456670942895673731548198310661083263384718757773306442340654477058389407233218702007657919343055660269897840716806119732588630169904982703354483146316607050027378799129899767477874126522436690537166855627049278968673673722899381091465287109157522050665331846640275055568475644366367704672202903841039998015121631042236018449663046016443230518531690237787403960086705680647354609782195876439510488496587865807492703424323295830306147197935704782233506913865388328070417984534340292740776408198271482209905597046415943553173035172906886767028404319749602725442776027558920089518198476855234408123620574455672367966534115276653523818793022192175172784185126750791676329665326625262088464784292368497907710475397578731719094666850170796288635104952261349485430245159350755282258743908080968957069160358303924245121107858639028318194048668562177432050139557898830763013630292987968122631642615562347643184040709107659860468296531429944332079079604799594827195540393021036867720578538922491296652373484361903866214456090456570718769057116440839127095048226553997293534051280202753911106286900450897565752366648359609808615125291938195663541062839564253440858570454432882969489474896974943356001694691422712275799757952030384709510934148683296937317770460285645728993253843277061862888578856628308753034333797031741977002984313652626609214803360216505501823526853062899746770481017952701371709060305601274399645762151217219818549935567530907473159538386797858507048654968494989038623214867801654145889089450869028241426504302197789744704751102195821669299368807842185073808157288138580985480985539188157178888801459692291766467423373672579905172272702719900305819390815399639679966938212922016924026483083619673461191430710283162278164939130964855852197815546635249751691062403747580503581662422196448259163717951033800530651187449289623629775620715773573580002632175487950441778094034828815088002106592016288098810823391916621540118139690530866453413708644655110621115146188113940926346390075400278590188319812153209835445734644136698522459195378281046949466556573433438670735193693313945171265799846289426524442104491656856010678753579959203221259586253306212492777135193690747082974211697313334120524241701016108551501554795075689997743635320081441090750806543459996829394257287158823926507945953483680395872056535815394811987591733707377478749133079758732242685257478620168316108043012331531818366544595619611874237033732826381221242384484305091234920306195358251757954041813685877764359917476313178765800845414373599115926240524214993715458902623127792694180738532674668143822072137122942867411293318385787459487365592537473216828121613082751236892235976106954782144194838335529043931816964564705257142160924665017988784583222015014659058095350641798444784239815315861941480001391156808470021913362855110346856968227706748764445633456554169888511854085598718378111917872795207049456393782728028857834690972934156657166672869918502093811149647738724396761272299683889385829172239763731008634418982535303370417689966040933955066355193348853941490295298340028166603254174219485917255944118655897617980234235745391568254790893319817889838131202279247889319901220244005815141161364345906037947960789637293945746223009663581303653296602042014286367489485582352771488305010784224929928180939771333468173795425319441702852092695543760804971886648710094804892709819293332557559249322368901892427234354596129874877340582856456898492412636763845489821263541561173770326171873687190413050766414010394110746104459287086836097550227450379380604709195495101601719686827509333327641475873305965310048823645618877221347482992815544236619390172400644880043910070812469879825968686444329565919906283471486991977380771088768265404448642953631745256184512336104805037920664771338769913592133811597644218828260940556028383868352351886123614466832996764331803092935835780832077785080036729795301955893174180138551895948664927566190636780121399395497208893536611476188877773853128940232701815685145935544850529827974227677031161776764870408942710281162601960303865089142929805357202578793475487506571760930388275865956019260090933490422279650376975950328585568690977792784183222687656222319744367133127711945522559148113049210795362714470532220333690064253114765334429927497779338807813270153856697356973559291058419065831104308793175785376218879245548355152680641596750233042698384161809825435471929994576144055267354802610349685056267105865813226336970393082353911787166030421180537445250153118599048029530917495103571146801834433220907498751922956956724564141722698415733733128110952652711872159219314351051214414181046083940631099802484771889852444160651981354595580259115094224058799434113689557744559101404862406404437759582071843402215886625077837145654079001211977302283083982377810696296920831867715536517276100557230155454237257090654041226023526847622919861284029006041448452760647198834660763675119060166699035076800966804278091315955985653409118379181610872632107599360403361001284387206186128886060387103942771859510536632623973174999602256986453950769766930260938241209263087031128354201385584581543188326901398890760291109427016787762351355401778465563165292872407088377513710794709949807563864524268953531196903788422260712546356644813079022052153455793456865499536753235024403768320414157038661314882994149027141422468400896271797075137569040441862033802366371585685083767124443969643887989064733002511345768394615383732527755011259617039645775053422397076556897071781196375484092701749750148656582905797000598830696817263693610325680190700371457122120130814032432623644050547778513853306936229811008194460620055858053625287392609921023810016913353682559455380551039600772858311000748849086349787488413966752867419052632632054741140991370610094898639361207185027025242532291630736491377439979686615044086060676533228870045731793022080515480682266368063653590861625789271023465890682252156983107730484565709640331238596836807278561564894830552871048550113029304906579828113897283275019344341037068113374191641633120292778018912911357589887096769183387586702092991396244090250530844755192517139996722445455713701905646413030163911343402916898132461744014916296530222548624174632354010150009122147180796292524959947106470203012682098791917136629992745571909667871006484551763288771147649130156082995164368408532452497095749092863411539200504987320051794944379932295584611050487726279371497987941393277655241070576177063015327869672412140045869957538888868400766471377139816401760378964254247197669167753959797093537943799579725347990366869604562508264922409470928823331859523448305858339597439438982784091238445522001912019033177282676760651677730658036984115681132938782469729428523235198328636952877660802194163890592219022321554576356250909861642056911062361355300695834463807909445842402205291917282065685073035240125297788570695206999210262937351513435751501492838595422702522143657156979079938105592040081235480067081527757168745712154426398071403074667542086383660192398294655982240314831981418703058197295058384942719938483763308309036559334110274106959034882872053406468766663864182683461883142402110692310946266881822838691509085842892610870989849677847669800055379354101770398525417743038332895411015093963120711093458925263247237982321153955908668967308876651630138852534412083725428782446365709550181325369011244254976718733562733482648747187150357398087047910423488084240131824452354754700684858123150831737528457983524002045830676656901753175312428216604745712399702627692946574115324562170338224602711109772100874346287907951162267135394259486908394112975504885739167023986272570727726231959041106192571435402956782279652888981588351455031021603970649887595984975603680328908026087959337994287279843616851695984920712771610182478396593061425610896278768764662443916554123798245339102720043466314713090412477599407695784793232427260847463121033488956931138244853173934262381625494444405769366727106784841675835346663927001210692987701630314029402232657244297512194440970911254901148119737058794029262762461568385986057530834705894641373506242109415687630725450990929854580284295857177254879317253620583083549362604096372855626291209821290885243158681115210284851310582682700161987116769852947026237088387735477108107187468998738842451926844233909603441150335365625237723628401350617049639156650811519457089213011794385807174107133685644360042173865955610689919397730838996473897830391532000820866351065611922990014811442327242909443244446040973809822908269046859602954088728594594544727504958897729485231942209547874952852749779547162040623843402747056002420899846227038425526153373687668066559129159136484238364413815125185504617305296761972210331333925078199400412430652464712832899413976632602946862296305750423143870003648704017790838946181940526542999175035215277127719540908589465311925127434449889274922676118431068994814076069223837271185454985729962146582827397113746269349104656038844780142995949190732823135873463699543754630022693464844959022244502740822394093587920205233137034882717074156386533236175033690351254734263157658090497490009869827163914069599254566075466496916332450279762260648157758883592057981546706074929809864193041864480048865643842417227330703897588230084569400435689133657998928355293442658322545805350468492459995967609012134123978894945728176341526125991145162520103058685640885247380683080672937456420234559751189790301424069902133530859848614190684587058704194438235205063702592424026437953610560644652920404482217638884597099001859892517254331120195712859976339567028588097742566266314571634308974612861331744762246535655315126652861480279569210719056472173523275413043225799199504738213234646076154656647886272116928264041047775616277833842969451802468222362842580676314437555285441805491680186378166652105763027460701277924144087852112538646604814558319869485608977683472582680052008670786688442019849759608213009926074556318841196521810636376393781451759432114682699583538321077153783599004923776156807885254821432941248076006980187529212653192310173671120360869604494250331712411046385794663158904450778703140305595351419591110532496848549622458920806038273376265499513960654898081798258728560292219653860786913503467640240748942553277926182062319580610582105418879441261037035287134197745321621513253887633394828196684349406316490356787889810487420781297471721639512358265555051247468930579544448841694093887045119956451019826471072699625248460971804851708782457633955587709250586227670460538048166424459483024539430104944777327511356628901556612039105749840731810968068755086284436922473646158696134895657765784307214442768638556275996528098670117002240520864481507146954052804585447491670717968058149952719291729864739984529491918206628923375433038123061967768682124968912267366289966059805037015801588523292433593744498496989244790724946100839817148551223476913211001686115356978781010049206074926562502309365949309916995244893895793228492565796150394360595956370045771670842416069452192231939017246549472432143486709534000186137272031823502107892179472074957412621171167973021842026839495418587736803137435209891361649398378513211739616549651690790913348475201708379868850353408789895040624899729181676236890962076665465473575038178087049149677751185688397332598370183138550898600204678648037764151082371259176334713591649924468857953141713913425022561414241753079027306869721013916306677144858920763876890102049874276424821861362814731265757807631135101667037376119118220627694019449367601015890146662466913034595702515268459562944953709947842915004889963411415085500477253215566641635191228299693418690209730100664315163841689781769443612135170518079497207748849467478481258770527971811456656698460818112407699300343342139140625152201971467911763963161727857898403460707669253742864349381153989414383755670603656092630749731425447456567992340816381386666090334034111128393561420274907691399265810110716887359278667781443317948860841436513833720854498435996647667497437478601155253859914047662058219384482590018851741278081283818255119705394567128288238195067020347044036084343941784335718017962050507704297638389029275237310661609153299066171132876404295636055993504280089450843252393885328004012246776227339261504892334319556502323159863386563550074604774898532800091221016873357839950132364272514293963071498759839820736782700187874811324407240680607146956878271167126086529741622379587889478045261735262264314815067028739320324736703716893875298737417889728814913016441716780188104241273817202500242446802778045777398615170409378509197639973345773619583281590123288232381024073616006073730535644651607414061418522902675405273096134060398298254930452692398410083192373752865164966244782536201045424959179158829322535546997133815218756666131837600803178768290466350980429137762723711232776539559433767484372585359730673402141451395378678885561516260444717964033096706144259823104790352105698325313599624024024183390889050518946724269154997291841760424179500494667716940921929544965472846650828874275594976602357704077352619662560418454211014507838300703237252460752263193261737363924189842613650747570786806475181185361629911953755330470240154948003081800384223692467730596165219284761886401605841596952102615880898466440742719058595897479034182484443052899823245928736458617769478595207560946625446161135741071005600768452687787080958110366983161525739106135461439144143736319150798937555803106248247878418464323287086480905419080642247966456662669966324224468350438132115590528840028021142013484307261411347606521848277964522964569919514068958533412984567691662314048005400074812467087853845599504011464559064439093902503820772169034033918941524809732598295607462225376112679257017406122247436262131429271217319145693037470368321452369221488615101345093053270234048236745606004775004307933526124440668219319996889686479536722334786454109992754927121416911706385699708688097583432104244535297305438121453684420498878660690311401881786880701053635838912279396653186410571625953588733332306441842590759173450584438299179468604897326692100522475255223452616354096421121700432790954854328129104075889059306516299593249171340338615307146712455226997212228092359157334082973121424849253508905458625979471936217182787979183485840663816728640947410323254701064304239575276117720953548090730044619861661249785785455273708024371992214347128923335496095448279727334967448910072195188006869727602659730212587856838615652191947146511125208512991329751691134925279242838820231642438515030250668431811498573193071021140463110838941068064766992462982048883900961580939377172206764162509238500401363154621751041740000552456802196850447999694600410204209682298457705932707918553146972376805107867010435784973589291971853387701672587950786406460948717093790219913421631984885699470728810667300583920705282057312699157403908650505414292731977441887352871076712127597178724689227434252845022846783227405730829527189609045655106102894514445709994675291204221800255418094352093702211110335279743209526575509911529895075809677177416428861907887542385961380798196757153335630949702772995115466067908451709932751203028811189339816851228583096489160532248298103763015171336981394651801550593730610181405236874800606122786304967663580225282718597794341874586569752499613325248378014896529282042731516056129153589681985425798848361389334232896461046424217921594517188480780654916053401776865565033806438303750826229707443470391519903096005234741533268662764714543635251947127617980610019537836023852705771696916003964717679361320854839841332167024136444383619751947952925006557742944465993442903767791715263634355472389307906292533587928220443933965666820196627618286713019776150306624573231334827759856256547323228944299002344026371177384543164190737659511618877913257238700301297642023661087148513771865561625780211714409847125754189418619643876730010654285171853287106422457438347358337895025801623555371767714701662995390938067215347491413913430174901870030531020034980007896426929574896568332771543826374734336756688435458593626253421124313940440742168224754913214574003029761613399703151813157336576270367424427832741201342598009296438015238927955944526100316135096302940605057629729679499720992494421640313639306588335588617653604167529114130767393424147717753880427465510716335676704417240643909666534139443554374039505203550725367186561074038071046140799497053918824639461072037398545514401685828317494816954699914889508190223567850434455399029807220483673056888866267867433552532623481025628000775045714013655043541112517874677288845156583206283080684589820065241242148784729754852994920292225638109304462872457988372383515646872817405828957656166860653412265776400285030983932244237818127579952312774237199471126435194422124986794700702289585614016813506549412683233532755361043821880755769261936451622198035574015798621825502594233345249368546778440820513004952177748961380860039657570010819761570594056779447576586541475045042785374243292979474870556811057957582607585951886923424716288682325390840384539087746944435844261738969493149534110104142613677105280520592414278903238885393053149036054205972848363174436554768256156516871200980823313359665001079113418000714953469679236208619151121485665476983774837740615389694017705979266826532414681886496779196234150164988111090292888886871271162988344529919102360425315151447041624747338766265000282109247068664975398087872545594551666512597598567657520659157834316313772366510973876511367171199843260923246776456002011923834177931792605792689020302916877898629826185386726165080419464351354560050139484977493266677007331608455517130872694145429459057214655858871055314581629076808599352120224982870614725225899372473270550440017530167881110247167906473568477738144023768427660411495767578332660756544079550032249035440045780493575020680302207001796291240437101688566016772779278140713842982707013960872146028458019563303681574777589622599687562709683931482373865213901823628650965355138880848485750682835286020662115930484942027307712316309620641483850817744833301846463912178038806149647603180828642036966724255381318603038585151248297895516423316456876344854707174368577479178106563396563855973888133359485638363238093781875921267039227800320136864199477385952861245511738088089072641471163194003098558197068644846166319396343788628022592685159620717196024978844585138811297684783569024639141715321096179921163572007784957636582094084448216100074370027544346208164194434821140018302309218076298358215023340401244904722630100503067115446489167331756396060605874923657638798290821791157334011901173313325110943704739583783580721673600656748907714835835018927489074144549436132539537609934477262360310072731074528955739876591617542126843586266030339663041427502203942163395689561865680120689541771578290086167755838109120184783582117235404616648142914816316294139888398869562431464671319524882330977488138049917376213398301716517127847462881587337070186786900285305647677732217360606624171640964460668506088725665422389126681403143341168273922971452340410028350359232947447932973290786143354520742415829716089625469604969182045090986548555758666707253482992976896967341493341659980131861948699980359767291957201058670810275295267606123449911608361108011088908609902529574601111984261770026432609755209172605334345671227965762963130356592810523542738652467478678035710219421537242587525820493376709929032780769677917322320673878707023263890090712647486789068232538854772689102892400480221230136569697385678251305416704759858803808358227168868317115164673939598740729256773653315758658377985295025978493905332875249158769673633052932864899971754286802963771039829343001082313479768555240204863932826134184928121496208227389085825779821477674913101188151202818266599435994429357778822320006548948942420031616157400346923966356965962345105961700969928837999669859415983148737641893498087533228068119784678892064489404257003889737140689576361957825960546252640625461423713373970940391679230640312112925761919362609692090603115452899787170640532139599284904206588402203620864208661216338805214235328508842937050687918287680581573019441075977685313464532844282904562727980308074384778874392217175348996269839264982415649171393704660853787567847561235271594056144747461705228691918770664438638068277842348211576967924029745587454133024073981957749871942267296510492315265023740701106786039910235326944853873222544065107325566526698758035628178198117532327580336112278760560238447742146284084320545574537339472840608686570906167384012857204877139843765804855167094095549768512262970853450146173026185707287693800888879408717164193327077397023203467412687787883751399100605671514661064559597843960115105845346906284210467467956825441415455368193366952469121203979118914094698630750165880665498283487654444793585459667615911925962706066361200086552862789398912690368350493009419140894400022253949141770889708385740838550501715243403100242070477914272624645569096132480476039286600555456247558119132220195122688227959251481055574890186046606354255147727267829537873718602855533874189796254016349615699580129902041818872497234009167256084117911777704486273571004704322917344205252443903246250736617186609282761239755590223830918179853031999166473539377451699887932880837894329470543233294919863091069538614290201429790103792602409623418753862884236811140371456326044381643972650623384484801581905603301080448778874566013836088289518870704626634913887023671925368429976924198600488334572287023848137495584519148726935945227980632550271703692875426685238637321162294748153990894115529994295108869956707827729482410016343455614407906590662006166285637433925222050237204120184209365426252360847410362763991103579681394436077056323814956059565009220132413509805836264439808870197012018941530383157295108472642245550379583562557740805085774646010653938022044983461276862252356292258404733651657458874654920036374741070048330218636004516494270582274065544385088289054365775972173813899221867879274888243820517243322329960420482853091914662674011528605017927795451524467081704086454302066782177053752458522573232290853680300380693846494472215313828182214944465639092247912569959044377341535980355617203244604284622376192135998689565773902942366644177770963421771192416344670602456294744495367469803465088935849180839421176719979190540285911850994842510470174634826711717888289940970814586274024006246917236534982608002753422382665001652237076690755028440224774431701363190848974835202372594203637185335190882353968014194169153715041166836506556871545367101479752319980779839344381867348740808192273821147797985076218838726898021629633576327385127492795424477768593401905157375998145819815464083278779779103867567514386711963658613478458062676563037540616409999482637411860476152447194259803261142436704952389420883465361431879036755367541752247406419593499479796902138808291358728115241042511810439202485020148249603551252811823788340501439437900249769404266348105179280688506469695732004383830752117865841981442654160259140635564125239722164545823263296549803232522410119171280086781237993506076192014032701589862349808450489241535421093731049965342637877251561766766266139288034678973232284754889476688642445152004685663638673268208266273926790302822672203950989321064974219656798481588678944864183677463345897383345184291812263151617296154202192683715739515472668977406244089384695830103817670430344533091391384261492592574719812127241232692287421798688402388567604908941167144115797913323119530271832549367525780055827785759553561638375601469415425585945011063806417970497213323094052202698222847289554717477902025235720427768673531742022687775590818840980369765930137821061706694207871291081745377000817487069286189759757293486297003271439911879239863274187273282800817410082335777618160057625474945960494865302947629158175897290494743875953666325419821882845849058978906727503508392342243280725764169418658236158322205679535495411594378578209141174695274470234561286933991321618868475135322792602938164577823177584733186859775730259625408173826972838541388836019866538932939389768088390880815613111923612568893420365744132492220269350883582403499487423389616960435227709215114957935451618919200452301254039672688489651806887237463804537401636222606181297772053311849222873146975343366020381263616404871234023687894651364120090604293846119580917220340739707184823065140969540665706938646188879703552674117672026731425455731293014997589274567008015017947320996316423927636044233364138229540114382896431450895527874310513460920463508690691080415790966828204501823458480932815609159600750626285947572220605985578030514391125959468030957122910869497988542106795111850281941135698242990419520675435117329025078340271756387296797783442090463276752309009006111372913220313195797839373378283882830439025885911622961713965064019952140081792400148852701326061227065660901644203208232735279419478921970774465535819080559482811498158508344376380056936205897426364476013561080373500358997540545503656636503007394652746454463546510068864452657457696012604312200162543286260260971879101712719118057274354071493197862945086824260880857363534917371259809655669281153616779934388695998849742907090169631893943546167279391080735433242234863416200468025768591287661311617961107331291388204035858108789518550822536344935171614680178065278328564729006163647083123890691879711912731007121215814638739372579489979910214536130803817138198770791616334063418540516168432740495575682102938705404107176541970921626830986345615725677374326032124534187246501676359609424464732796881915757747387119044200735792332943913550458968995534457382196674793964877467270978047947798558369575662491188423742466276402062248239029765541794040477679786105469104265464922128794714075088184144010803323660592699828719866358596621797745897033994267954614285028946439575372843678518020292501810842108912749261653978836629451326129570178129188862743637907066986661121868646008014941741534643349611114800451763061784166502275546147790248837928169580697054682782543830080661906887202836556568342480646465700110448009731287145091254568823643419351156118404217210595922746617428228876676080375022689550733080186681633209578864908941864509740705281592196334427751558309070463542581503192988204602621732754809907462502794235026075365395691785902488903767242400863515344323353988485070328196901419790347986630558238106680568258307993612303588096778355888417433959438938281948727938684640242359219410658968074971644485592188848017899255694518390688128202863741279236570398810410065240069855692821909887255154183491905005896832641951458937603566396761220486983190393685250495916808231894071986929553019618791334852974698665466097043156120456414966177065939525052451990382009630875162935390602538195330739118378563465874932100798407160076290643418504988121693290252940450372531861450785304859161694930242352952741574417987195173302090363473431081095114923581440656952312511281715783203412731743420928293768744295336025590128808607105889914005526651910504736897945526236111840161510676330396207948941293514824474511925820851375701488256596303178607826070275162632855631907268845157892463708463352135437195818820133109360510093985248356560456307560379002795435749116360719201834678090656921187131119926395943386675731533999349474926582567237023602009622970996058157566986832738330985080054389508166162036721929772543089697023389102960585648301335221409872040117124490948622873262799651558666613915095361236665973992435553426138297671498207345068284365268870452037996175460646235125132262554082449392891994859937315270597174137262605746672400858535194610083034097099680795610444064446810193867969066892635108704811573854368581178815040903266456408660816322941913329995671555887455042484236276351494235339756335934447682833006625252466568394920990807865814699781596128875629279810947455216374760261565371759390384809595503409813418882834587910097810641286259209850085657429074269096068881952981805676239649756930458884618365499920558140877367623666800159983052720812799208557763788045714599958268472089100394523776712808194682153294125081280291552144540728882104192265031149820138563671288904033722415031956780090230898244243518475623597904688865278756956540407452007782996827135423901299404476195889348424210832389604651021774950433449342977327620940018035900348401535707708656295348000751766986974735260818061735255549410433366315622635998759976050994289683873451887591336121684976255242109852202450601206868893674972271302589348996716433426882123195951708330841962721219299408385623613892647205421905406576390476291934757625957410400878388184453277200875933985604627256895453590776604578727669127176606040184944698461217381966309360027483979984088638298593076027528484953289315241617104940877506143906658048789380011590283231700864966878742877526899644776419999473838305832304614447323465978235745843566160761607215140863802239120168161792747638419901308643267753382754757119539724828444772943044713523470690252386161238057828453882514564421840122822940158551725369469859657125753120275017225671560776300856099867084146059036243533524371030161818841087880250264006609472775701100213243200777568574899760031826215530455207242196036060354629553672657509534022950118317339410142493295329459601655621553457125304128337890114219478060259272071450332306923927766218370890420324484425641439403378620685960547388378422555034519853165824108386947968786023612162919863632209083310508770997050867294362572049133880794757160739482148938844103372813782332093805598176831638217516909480165964743302273825389936534389851216747540514112802836126062289266013179051733371043941682683707612649700825772537689372025534841392931746845263213369494497300048955375865871128639383238183859275008717569427550797456169820347232917696793945620990039816728938799533407359772287097473848641271905866870772015067041086314747838488888503059285453642337847703740711927329078297242340812760544359170708085393999258153455072367117164332105920818938424492103447415038794758194242659625325401788310615762521350234914590605084199574397563631009483313455555316940645217363079918609484445633181350989502752567181288396616661539894129862480959230015880286320386869842448927111359451812242960864422746863211542646258132445615104502111151723099726884317408875262175481778258569496202751249811332599125912189229698502284201514391515731397972173864037826696879988139708377511158118527242406646656997087723996577607242045009888308614106442458297487883539517596831852685544052951597964074903394665110913604068298123114794074178325473708523732477153344185618493661541515973106875744810255586108065490945838056419768897421915017332524277455983519194438016941333031681775946086909316704266616491115666928960073417328314602129560248149520756975036166174717055633871341749770062574574117314134139155167708114229257960953378777176197074805251886486612396248143793057521109015770767991059415407138884020061419200365583431324483015568507304747876680959781795584215856480620691412690771719768787612618844417584305420482280222348603787721493723653525803190726858404498456547210907562638183559329052344275792701168482516742071309909381163235827865256208646991947560638920991561472432928333345163270149503648846169002233491354268250238483590196113575916328309578714152368648235188636554245009713816166142966440259282869013364373913991978372708201037155146393582626702504176160066588118799957838906650374929303292334367994458724271572504989490371048719879627298937531753182194629500604304998395848294296037410191538812001926580039312977273634229320877314138733912602902940099948551185743796227264112300661735646600046672328213373928028016053697419327435531190514617491331446747482956438701969951652358267446951818708742722058198475401361824329536967552828197983234629736479737744439205658224724739130179736203359451902034614167449949073834072133840465755594264143808704071852778262325205749510716205288328765195270159250287953556540562039627883628218014796255286319767634600515765233590219395707777068012540401995004471717206701157143511061434302498238988913409340639992112561290092264375619135993452072697830677107051064971981527965573641924942795270204437890631694893105551403119904916696230310182096001264984813311745786270062226800452692925546769597956055413930549087396292833180984538843054207733607429472860893339950029492466551954944271647304372150066581582476046080280135914115029116659504410121953286363985238334579446915168624748479387975947614688961499927275887042998447035233501851317015441100041606898953950045946125598830725301801773049387322527979248645231215658224145396814061373758850618077905605244693211098245753583008003329717095157416024306671084876836639635871326972225462355278377289882158583208889965242136243832472477985205530037418937185082755625489289950119976634198160184453687004149828918348817309260267884446069520162174842010248917350773954212598289325152028956078743828119306878069393429382168113455735402962837852358627364926038037781208686440282335624412722645486461512643825836745497759542388349532734711043825753081198735792508209053778658259268563719917741387287620617734894798541664071861702293495274518873984311864534271893009963119830266660188438682371358832183588756363673544291858437849785133866519240711459929104833058603053440856156245868515837725567834549559209200902283907914757647808192485843427331865129262704548244640175033329766934304235700297953306622085793488637530908289292730912283746444464380916039533316338692035553840397918248363961768370598852921712892022915393556966568489531864487823855414736952064298062808100878922767637608688494858443256232326445504554089268741840054553513727203669135266997716889484481840480484816788328166896009965191319279765662463255370487640820758109849444894446305502125148689692570734815303171630720059005722504936189980478827430674727800063952566301402661876112734275628222444344027486749782071794445598136322555865031342023081472115175481657104581956331469919036335493416636810767677501471408266571825195626564213371754866799949952926801232071825024894491965475373335134703765518778554877230368593631926467212954341023581678514811329872831739349696266228683697896373127739619021579510588269532507877624184976243556137791165682217676647251694983524785208864026088591296999710614957718893533460590263220728405013653909246680387898383640542216426361489938677174287849633703961033705677424089986457499467774478058702508683119078759903454213695979692871815722989535095452124588505234977254133236703464260019578899199528679572129387887136886815672991496523306704886920652715015035471769003131762748317513417998800197887439670574516873363327404494348930031143527202042038494725694886724186226884288369240923934498107055065794121828196930374766079983157259578412265393067944743068768605554896295468744952941369497639237451155145321089455552354320315693621472910743915011554490453085497020792815494686763193249571298786714940615455341471205939803691128371545215811268736976409679557320026124131300611203994943799900544288954509465933766532648141629617299570602953030942273809970269466791619499031424127566873411850112427033112525318145573998057361870861719357004514893666926103736247573910511072810682335295816738447167186276605769350647426723836549952719115043415491846063661082761304362632890743419210243633399245112760933277052878413060115605579336719415212671080398309765166074255529061636111517370557726550681849437549449000428398286840981679795623377154646596735805259462798876941217314768476839016098149312002161518634079099613108798061592158377140056346988529559499457185790293360731465792333051531161101825281167764811121671439322599573801465468250419714897906182179432855350779790279160160909164983000218308740506367411276671169352160976134139979149345563825181946004364977476820204214049304427206835108245732393853403042793982622543875843656140873380081515086666004427462114028291632771942277763536085960604452081030538732100368060309529387775270864306782608116385555569428032349825447748165384057340674552570484341412625712618968906431716842536326540005139645977122854113437015037984980169882655544736819312116301970917457718950787997001458296868274357063154514585021276257246880617521957458445884846687930780603936432648352048294664080225679519403026283894814170655351778747470866440931055276951950569638263749832315071715854987856274667544945729926634267554124175079956603954317992913860675000066604719324999762290263801774088307485085575651784986280968011755380607169590876910390578400124994860458844354541070298638549405218691891747674068932244744156653827051894280910002683731350514350174969129235196070434716772770688424151069424131196965223786009180194759691613178293231543260347943675509630312828421180251864407239028788716235971379338486559921890870564484604023155308659104760244953940610761040384730275078980017916382205937263565563690877174998421221499044237379846768360331770202311270804273214514436286456101235933247335586861844040785535424673922586739173716932849354436039244677952269054104043388848104710149246385259365225048201467314894951026323518102902182370401825680086313736249176633869806973492827852761926627900139528142144450345224723168430783315812387423788058416349307797850892624808781273364073118001520604185632473291331679935732249726669768981075038584896706004027719767931773009988501568930286356909025649767042738127319529532287228973950446788670388150579814599988556774732151637264115469356069626989203097401264906460166556534367194093878085681177116685442056917855644149131634993111466084116120066065871748198691539267391883069465963036629912953659224445872828484629332498865216930116899905215567539338430979861817625166352128282586507011133466146370833018674451898177450659921856346220037953352731516232070854684014273102544632940735821985453636739572447547309922287011675798033793909989369721292999394171978416823359220267010601892361771014533592562643680676945332633789061025149797391450323863042876672818250128076218973339245222969701027253639642636338931944089018425228016631138403724941396064659105179951946286812742963370381479848343317828038722651756944722887142434431574585080123663308864013808996711773795136720066207964953743016220097232152244390279215977702084031254682925944104469277288318858210269141599504775519729486368100575707197864396524517262290106457106695543027276147574095431481865158513537617852105673077538027950245561845593270706710185213569976532183626522644664241442711246777764757492252305269290801128388861859571583089125813822626716842330327231104493300946624501109595499337961186704998482574815382248431623566526787982340530665947240358592978391868882750768349977373180847371976591586830965958677084900199878082368688198113078691394755019911296528573646442438248384458747988369986947159408242874128169219313838983862768300458326875064526492327130425943547919493556890561392374281552733301011052915827142949475992734729281848282593945780854983296431536674307870588310611483737402845949157540140807896302692559199209048545949870146658363015277671678622940893022371932405817851778204431849159854945719280995372632345754097818911568582861612616945086692386955035673302557756253684500187981469225305363014536284511777211128703212853173561171637040716615483708455497802925074745914031224671980202352869257806360145830905969241504535027308963884683465051703161585027158217224080839722330596002735999729343641870427793234693903088146725841232214467228512365204501735912747413061321230746067963899339890338288070572225466859918575255043599286115837841992519913675544604742869405014210079138602018550268375849981697465137187231738212203568837755840757729354413782966543050955094672201221573894526728424402168179286601356344299555070362450751842050663921896170839631157880514579793308828954177184756775579096803489172672018957143920800211686784764522979129124178390050928937939781237587684667703592956961008745439602724529039043241572294534680552330387879779394386715338146741503843298032622964635292401391178535798039669781449799788041353599921355483871657452132032685847345623241776469694438531775899082199939272848160373870298317676597217955448204319086745241222996245465213435859809556653476322546448317660797577493580047942430641561681210790060681346220987998153434291370238834871838090869465484179263767991893010625019073684359539562829114861384961261369591387250239695603389232286234205608303313217004318490314324329370755641288986531379218436386399998170847765947920713515686085915821330080834520077931314813173759606630928003468490667343635837069296136991071286929364535263730998512052011371045726615501893672985567577458363555962348386693176833156971935218346934622132914842929335498995016544341648836956109957631464858371835518396853926383301344269958819361147544651379715609406771807765154606894065273671952137224322478157587299795945616413542660546384921443398307571162882692686903136118521084938873510174764386303403581130038064043311435579225121645342409915735533299407352255263000373121411127812071859226792506806301232527450820288129214036198440238769420244427326494821558055245845400731557852095229133710947154468253173942303038001565512545578642695159075219606470275289906320565281335799646248954201194441254220462313515349395573990778114456749185118464101282695131808249379431011814968122193965278803383854590909282178607720822681085494337173918484828696184328357000671092433942704681151274635735760406344154588810077905004322292246814384401317563712408574285378507216903896616945377746104841044644801602946577980509049297306131797004031718743052082644012159712486539865029179034486472723057237595893709809928479720294755013452153865344915817646476436595179273012706395282095840599226353704517656493287989544916697548353325543629086510433682604089940874149120546390661094107893364494011293149288023404480295549854208372331694647749315872551863141297622053229362024303028166907595073030788856555631520594154508432355117136805175519303211641540520225861703088894553299120775748714193649050953395078568965106339120358005066839578015251604821529545503925678060336786308749624678680330424619859865474898539643930486633989966022414026631215222161327050186904224789401765401304227935746943314993012112778303341787522352923608951411071866782112653432346321468877387480886771065086928414784817689626399821280585486460023200843367973433201235643958836995208135344157198695303972425850422766892167820192079118789076837484175266202205545130372535632411065162699892067485539999512791194164333073238225443870635925212132364100609352204379274369502686395729046317304684923127541253445540005763353333770465409328255649650315891848219032915287379496104318737540800079419418298743616866620526003131362723410181426113619027472798008564773573774423503573726704279298295509410708965398409662756175250459494441644806784348440116810960853363131400031686740353787843479167552565164020032978795697821991959020391887339174944264207354701203720832529508126653316247582037550910004817853271057619483949238740969414461679978232075620347808724978033010477730559679507600559834194329792588068167932957003690553329032438912406804456456678526366237598048512486594343549200793430620546650079376787239104226014876146646173361370023299535775978038594102538909597470800948304341093246069764751579559652750622781215884551252485966808269143904969079044941600374108653298953290981274762398068784399408661246011888761508554376426772979569478472189026212404045002528391374144361925415613474728127780267847901413040107200546656974923008512735234186497179863358062290730260093509589443970523123520130981822975082978619600357491113758576060952964056497779493528950643627707464584980457870875603221151242806068402256998398528002721026934639312847613103129559938474252981953005381263362505702097425905756208981835897695407755791485866451652248892184779246356146402053117132735294911944658451817241718658038854501619833318451177271851180738005200480551620929026098753718620107398073294441097961422865533803104407251105508846357075951222249549904253078540951561249350130002121474107037078392377774809750810297550710005650933951512511889632088823105575849930134155901049524847013024990287880533030854067136442473144447353064185084277551105789531557919858773642469021211170494193980752808043899058271919001065115991914486815814108617481073732416720900090230258509371034406995425770251051099946968452257803150232695477385774863458307848260980301499101363111706891202205509161500249563315209649765673639208851991222985616460301792441449142936111557952526846274643613341548825697999075176537819542651469589782972425417642839507256972260750942941997332182192137410802757832624141377906100777574948132586863287237177120673080030790861440248695297395697817517895885163683882496918488649132967048169330386770031888760677406813356690345290928864864390999463023512789629266392040185553160598378761148343499981217190424297903626986352026940390909280244118862747484212835974831011706312617807553707082159280107660402488855666546607004862379240460594407411738442729187997071044656162648172799329530963555586041227637911579880441678669543348445220131522687954957851999070966062204790284395922165235789787890325122871829116316682147932000668164234727419345426644685790589794469533938771244897558721271505562534354795840586445940456019018434674421994450290394085503876841044973289376130443019791397476172731061703420988014534461720665057506147125844812613185857582800972580760227807499848927785954476829202306462795780475374226707202153841294663128667665085361412323062708497647997049924429674142746711081848385680692888213148975918736838528063576131245129161394417373152904562628038212767242374623864050181235617051949371243002990667998218856015662234625682369389278817280622149016589833111815566577399111672868435234526638644469407244679536266421829464350411684940805949897192038402828546130652369375283044542506096393039135652132337875583188500348144409598183311992590325353958703570273532061050462112091049214340997936138045040009745663862662339518172653544238536407754755166867822315724316828924111996960588106063958398956390753026871417147022444154914766038797359932759141963807951792050707285101675265398284123335900300945509124288808918575050148505571838995234870975593441757830647367390793476919127825221653386937370337245178029906677235685744804798094905805138612651622838399427849844529933343760645419780023315192773451564486479501803970666150676935569381952728725083385117986231752282266105427925873244749983034354811074142848081236669515869908240947615839593090654317383909006888731903814156290388981485791080033474242088266110459200119164477711980900622029919184140831550047263988951756839914414413995131096107587706283141501583305321921941148502743415887021665785120259681968556163303928761420327262157793268723398867919671434050157708580711748495034101391808937407760062095380136900422929255514175440002820197280610955674134425905804407898023408848213362437485245666031665344513051358785519791965644637915376206163753980497054988125746099459615961939327008259849654004347788805590629838840429945853040942736324156588372843401053533892662720535648038038086012976704987724836465375724916376278411470679955407128115715421478842771175926151287592708337485478471983944000102841305994119683171568265547922803775044795927940621250505206965454115179358280652725617784439594338092491736718919447127052746357863606647005253802705512656811216329743349182821170477663477550997343752984252788541535689198550579136855869484211220839132459006979933181696306831036318392473720842626170724258622699700992810463729170858251828800859113241037241170604461837505393362950622054802254242177015063453570311450379783372181664553844520470926589043894643449987400607859902390988365885972808007763457526799749582532067236567112669721138501616924060834175232589605861820714518397435010180055217981605222341968674857795770468054707094312249604614985722694188363602624346191260648800669773235980556175237037803270956970660258225593135370395215897865390776850052349177923682360058104404974417649567397537872383878527857407818017234335877259295005813170873628622227106277321798367046061684803135113725229614019200796565699704267019244537687119811400959867356926380867108096033671434514265279556023437741528453896878332791320084429076680421617437083215239583107216043672845068112608723895001045422982373379571630788586564892097036351495232590347998087210271910478164685798974120576239130425049343297911069809469372468880707428323768827887071637869980335958828412699707081178515578048495623491042375098138468396037120134284831303047916044923123214134369079261192154317650953554736502913054501730306210441173307030908925318506172137406214040644671940371454580675199684360681626949955814369200956661750187696513044954658402749380548216949943410966006764395618115647135827170989492190497459537350322580168380725418455462370866034422017159155433244948794715667106545891606877467102010930206754690574838419148935302927572435302341854286488154176037347962763378102475998864708711693141781588674681978765259086360465365335089878408852236294026504973986775046354939701541458738313843873512821679076180465506975422168080687249726362394861549780434269538000535251900637727124657329639290159700203346520974941071339252620517884276761199655783134137282125295433265190888508977476277226414144739451704553497176184309179410969881684113047857082844737395973551088696183242200943084969001361374584889779304569958497703172373636512383549921566926559008349617085854159587173512998502000492012007446132450781108298062228599784276302072866654016760232892603622662749896759712597053029735342559794222914174943084423576111072101555513643918583739923041396533174271559048153195249368746845693174192923477878018078699497729969518121453560044245209027013098675734618503361518555236460551842325382477613139285323339530610688316285540138637977183739009992094435677337566620584800452095736473612171263910344699130221983613021571030232763228065083583004559521996683047041897523440630267656897096045297243180773569705669124231322820072971426522516376136663633946963770853054631830848764982198129815956034472219615895996937556168130650215983422888232442583853678300417638288378702377100841435592510961382013770711576700348562472330511934771203730028085466627845194820371557665989554247858911179769681854779083887304783429238997164979538357151812490485819794681072023407634952524539964208048429929011699674666933221349968449400220093192955647222178570461259261299946698133737825181249661370145039374431885649239638830991585493951937596435179091468728146215540305637446336197296826260736915003379682953042261969841310266137715836214191900846071432679337046695405385852742501030167309756924554493398933995842295362242954591220976011665952282953971772599799562278070837935582543583480774599760673456179460877562936451532792566831446582334271677392308570785097024933769709012357766258682037788401596833183656882790767636446106935094850249260499517222206684268008670315438397361212230650507758596667117767257931637631320930226417472493299704374532293608807565941131211264129770622917888336920847101109090513994965168464836746713460340578522905022936261319309705765496516660669872001777057653446647413483947888747155858121876354908967003640066570379493731596470989811058975628581102104508814189228127495714586704528116147211515793826958658156309636529995848995822961043280132016082574654788918451442811105165299523987471589686653626957543554916163055707311664773746142963668612437354402604376773294080434332823604474175683646907423991865261775322960390674546758934489363033756736292780226963467949299715391716707810520263105326308732921425771339003147596771700814819197457961359688631125077473793527850991030211113621835056073893899533917329871719286946775931375463904845334731848343691045902815426806141618188272324727751519523456724270638647482851303651059152259235756032556933117812890681696975432112994205416659892426442067393095896205981792472790021453444303336983550458866058209509224773566161329922595640294669461722151045024708281297831546296575405124141806153825379937243724019295553730806566269699049522444209108380656693600179189603694310758859688218182281706631163727216005898589038527561684930768336697948987553531826914145711569052819364704102995213566861759305131708864664831864093102412375579958620151406408790903696782090566164366565906907018187457741562255715794090378053414610271493317881066384055615534419032937921886924866465573232180538402214254816113634853354109882849965071531313640439462489963209238889998600313971921624689171511886849902470541575844584352389138352093164615093252751837826193069417245218201558993788327869161878853579899779948523065114807031898183077727509417159689133027811246584336688493846771112186525035039810399468991162595501664220544047514221235849041019407179718428768018070850844369690963715841383676987605841961181370016808320068562685544680833172944861068109145741044466516432295223762909021687112302419174699655425169605068801057524644758367608825112118964011140839942416615023779008452893720691591401845652572360224797178606284964573698541056677706381307866778364790803338723629761932595629745633049110711451274838087893982052589377771303497654488800326166143544009956301421053105401572512656125896281545499594242039147400477153943987143044121391061503881247896407353411113372370670830457830736941980214650834057021758067072504232300123537905330950637883473850322977824727797835829787629826346532296006698932214080579475086005161875022979562778592539145270981307547270641068963798614347480376090509688068782178208064492452536816426831469383082131912324112703334452763103936391089460925087274260229048578460271373072300221506716290318319003877920854737585825640730994431866944125207257932849651643833918282144793643955287178150809517566350482176608945099141715468582714566017322039176861438842233311694032611582227461518903332710158088977206163924314977383307276660929835081314316791678885222956067487951813205347987952481123489472711055817784913513983145306237981045238965622139388670712842600339766449556289804360346970256868501290076932035318593318527909202217233053297777423942894922679843418234565073239255366950583476562705936679365348491389839454524196327215578654115943134878819140878468668639867528954845197093027836411001576472705436184426166930584671142218441153776456533298166674807584045284796964450789674881851747147625240347430825287911553975455533443663197246665564406966209728589328464974512562586195279572188439623975025533959828035429594735850946693488659181768934332221578854999489277788456216839072495880187456012671491786951331319427928132392873376276181956628689580172650467404675979074368306314147436144665522966555585328496235488269732699230595286110861001495741453488688268100748224721660465754859845709784603387511665141058546628337712999846887383989005178176873012665274494532001150655481796249647921610652566136058443477677709680569141473117467682399645842463169309569982980196241938133550830241086509657145955406370112144251632706156305510861053749995595011898519765782801152727473798364612634040651457432112184421289232755076515833695307257932393386840333778179548092706920538180257672564120699729775790695982804940601176962279546437705789163577134038244994435547326556469620238770762860531431446200550205314682014635410028844675203124386767045664067651296190089571211584133115789132917714061210724957731023655111793300719872802683253650863309320646376954613208918583598341513621836414408146736025465607404434207531705413122777402122776558106670481488499211620837776958489473072794495562297870717735998226476390204298359137677301417695447975235836175944288342676081559457864789754049655690371478929076304162400867896275842840380944972232154903880793291829457205654357326274261087165788467797420981400132319606406346929519361927112496076932017255033072283610497659274320042781564492958592883397714165097819205202452781850792690319809245144289713375125891310653721191555863889529793430804083429236841148490507995808813455823607457983162477203418649842641902161423872362672349890064487491455201885078996094270794859851094290909262707640942769443855307240245617507277710942302125863032639710414019857504646953427133044007912063969990776710149731253372183457066520859425975280797444897945889686509688976952197800000155174920661797523536915444986785403175718138605900075825818296651879413388714362638361397095412166113449299684942090901171777736350297840124650718226985452003259742154055884766234384556579578295885845954069586741784023032532032213661948441991226174682848271265456319721081159355635879944531030844836791126203392100615079787908902296011111215826875846578811061818730949460533158122306768554972257451629556573282765817965895643063586949642900733536108131752967653679236360558295940072830196783057889333404684426692724726756717875590417099847774376633953249777146638762774386975483398406098609314926535190739841354564438758351102699911715804205815020303468656096091463319787805630988646056696369955438282950866129012842881754191440968204855063142829350086232253007906392628282821300853842075774338931109739690923587835274633948780009851802593402628813404509681233358471808396467355860919039311461968052519310991249398615382008306134394119497713465430569365784499368090240692752401121232056368764745235257497037816285506709965677470142564440827133238120828478210720881828518219632746499003803138033221288490423515065622229676463960207612556912605648498477457377471080171604301601150374849225033597210724165876558662871694036698710420473579677004719805606124464029489976441326531526690411408560109831850858109258191001398946167188020202408890222941422001312874513074785996486838711383643181147184956493049408106271833435638446038065123304115276561177897831865978545193252258402220656234880615106881089629550627343762282790022027481522432061520761514814732518599586300055406144076968498057329581091918764055520259184830488362356110916669549057412948004370780653107935973792044195255192555313228751059378833163246968942343801212396987580331919331803229146383125692390160197469102778725489600665111513203871864247664204715356822473196434466986905541927389650711819866492004830931348854424643592143468765329044692924137535901079780308254473104194524628930359765537120590836861838769339358306009183947857333581639383740436550378031074869499847144952298369007986100190990673961936701246628789539982059407813750728213279521796827554205195642159145410362360357001913754091466818006448255685420704750909560677891799333459375713261522644524186551260309441683672084132434115833287201851382751809808980014118023042476353711557608550103215657015717909285140773224400692438507621310403212609642963995189369589149302522908851595921914899639814743106815771207314170039863253060777730577145083379252465041047915064766100096364643952276996375414071734357021886051815628936430535602235262471032736683406247782703932213811280967999641612824269249376807891222667055189026660121052371018304776687354465846179449134877728044942380262743029805486156049679755385448259972263055872740859526207409536161997679178537332680153158840567322184121748108727648277859609873493436787647326476220283371147038361776652046113642463789560615932756825317029650957713165458533163183733641804479960787413685660422489213713820854243464785935715699916364808121804071951518448498724288025117075996263561335492499300175954300620101832746801048116468771629889940863211797905016874649434646356976436596979734766489301828072695726043118204296248445376459449777373440195444035614630479793316650565723681798091945928842627786917458749926473996418260254720215161901352095705217521018975366925361102524059055901188616565591124366656583376359044471891503931948553119759321293048975604903720670284605376891219209240477943758064768947342880468483962022203688177847965531468859362167634549440598536914936396846427565760599462927308422720538334534908068436417845108555461632833841822870665008818552060953902081614831231241306705146427846861703847751171067008838839712880767471204482964127180182632783091043646309470718749026014331498727742798760379722124022719834244055983846382088901711773908748410338450929541706829808582849072901005215457412286556509593894585228951976995231170378837018646619342667356095415926455891945838240660800242854049833669213764363248566154345954651717466672143585884835492871251027807721126780564440274237303408945832866367988196350131432505268106067098863193585613386193000022073615146497822337242541608377816791951230920701906441924106813249336267996195463953745126162029585671411763205269183614554002542652522137782431174908179558324245698960082337952851908785719820268273898387949707705686494759941617559498798072514957470045728095511547862036689772447888517883601114000234833253169730420425626582908917031405177071035357999494064516989028250509053066991838631216415795369235251566462689931043437788059417662208654045325981168844620069524649245724635628314624521407802232614489036615058731086339037159982756765539614851085941453539008351720198469861361428900887829830228449691425496090958149484813124405573884934803065242460999988043088584988988703288933333815870296991211352622754255649002100317702747982272352381851181578202352435275351808721279248154563187557975812532475065055864932136560270318035372912189445652037449091812557160563965698992206799818465646396901263592248623645421749643027852725761508229824548407563641319157157826409539521036779506011867888568255803627367206169137395529092122903345463671021619385565498168120172968187813631606386020983732752287707008223119238790611541211423383209760271813629959554093029819815845804371424675559061978485642997300975428486421417557062596789517718005208023000278965277556316217125373038845793146232379245042678541229732656640165850954997778076178382068004126851775645421887224701211809082326779103404923753789774415440980094523408815223535195924562532440510963052969434006069729255572508818068022190735700018679698142502343879107328732735960686716608286613881315341631616464482207930713678267194614253195659332497179764712794923349353773967122520150902087558830117362859904393675226305916531527807071536002662582361085000689465970778152085305092365210712325418009263725450570879596525553993507946715785268371627946227395672339765134544203017376555593636621195344906083671155872940886334048843556601360073764252189893402230139752922872978898938611813442752697977417397990491207128650764030817685006908752304381539562620909391565104240194385716574852466962002476473598503939096076291538369477112407719636717080994432298641465973472575847669358082024539946705918068540331313584508981197129624887604965492878841861968451779578096913187593220661223647109539402238558961278708204063559083245391103390525931024291014321759538577584541242088819225735961232875327510938492595134643880518658647660890973841569848258889596107842711346657628560859259405965990546388849854817869137374610037996599165528635503797986820013806398635770426130549585987964324159309341668991683157561840469090443657969170955209782815668579905878609392251139559987858477669447120029509389338242370835671902211277956489714748376930597640922865936405247876573457113490332592005051713094791301045578478823482891796252766311801354071274860626709948596481823164755497606219641208724627329125188439310208679184584312518880629444752049347254394896965512119084620445088506098526978192281771103612860996325089822880360120694576235690242147100538812331728567856965257570795970388566887723293406527975769926198528954320704845677110655838701581031707474742125642769334050057790492606714602264094615939455047274255284822820248400908362750089495348058585701056433406041614618733720729994033254885970564570923650923037863775296050328278729495761666793290857316660181717490030169022081092897378506039742087816488662466748592733070293553171195125552971896873118312789961563691302620153769733934759957838957554204547483234155709379467699652138080940401447357550946145299691033955058404749352258726746394034101174127593201866182800051553982780178826271837717081188126080639015757223217309485042194298163739585269440361208520515837714308382204593867660650400722545607111472827485800617432564764351734496376689032669693103697042511601612127203127692689370217413441118819326231974952845776794253250864562382469295784235113918397688457462638507790566992896312210642439950404360651210256712174902695249891268820283150139859002483682302828576250356017940611844200444437071177909579794738700852226562535865401154759237606635098634618414760097239001608335203762506612324504908066142435300720946647496112988878983692846072593553884548401198847977878429265067600780972594722302053719123713474219851243452887220050849063629076424786310942408904483774764405133724954450350666512131440027785793626444893082836481544232135657920515181772990218870684983460974855227674020620243314204157047681298291089374838075956990151509876412634090310280432461801894952034301506789870961234174438733050501591372416694606307201128519760957861081295274720601660840790602411303838491485453624825454841271005930982203755716361963306281814063444207617918780470912087823766645158691490526873649949409850252493425551670810723987538925547176390934318160889527068827403479213286565365481945993327709046958110507110744866921062100442007482190336165824869986527586563142836473702687304856450385103650763485603230706645160076616671940112081062499813064363682555497209282943055346934984309165514542237728656654984466196819856193784833561560318994698361451165620393491654032360418308115773121046360053906342639675833423694847189994159149337980846002662158676766758829524541081258391214974549802175029878993700899668505615186903195761919796129255674899085109308281366425550549338504984073113059437984154655200492207909009281266730228533425581248052919350092514046919504464675394020651290825157509096354483882528067581243754597873751249484012056212809295707451933086743122617459281849254210151721084840497689862535146641330303662210555002925763427038632520152948526652763418092513329809390510713906495426510968016539647322757290923009577823084235774488815391363986882911191723632650641299334595028858771031085123108644872015466199790292069510704866267004197325197009089595143758585323633467726600191265709717998466864387117432363156717935602557221399796047120317306837129714777256857117845441518162375505329373081265579980594945716823410510699279679804871707713121097307963133574406920499094057000250774225903916077012381916910524872163104070801251751002050413865784863274883000680972475705939914611262979362578536675732129921600812526553265214873634736751497237909918243429168372310779932971021454952841977725989746470042136370197505606728526486957816509235618067468564527608991705625188930890455380646576558073029345180301127985056365065028823240716004769890816861666424445890623778352530702288666254848214738619972415756453495008136940733051319206541577676169775523230575129657282026240556657976347375358051157742660500408285582819349431152395011185710990321890844243990332670651160497891291142352152189348568211939305593405477479314010628997361519776762289205155734377956234304187868076966973978959554870037600462680522207402661808572743773682029963845670600069558012691221391053086583427136431674923265699320104810214630457406798998819213697513526076881726938209542307632706908751446903674561305427574769749949931183122496322868906915113193608619717712854986884081158522837905612537881021478874150556695682290732253022161668709065468507034454422765400035527823927936023952510861486426012368677708480706119114591899230540042984738074027592215371595919211899019609896009521998041546519181987517431637023725404733093406546289708149353623955139525578608845428390247708097527425608057919838406078588135232368274619781860009256189298710338526201665870631633606113143892765160683035037143409106800769641077361032599896970155664163282788417883565598938453891844789522519607436068641510120330414228267608640380835852311870790132841744852789150700402842160980036565211261861551367751511689759114042715705797837822422476197122108846145490016564646910768471408815229806476536661406377809955429667713443836466868965042577889419620886692511616369282854545005348896193847863681964040460239870113019054898605686287878643745145495491181823054297801666748111100946973743684442739648707322597891952223752710193182639119500289726637425240877002593204561019282611514105766989550324824135458705635583120913958014018520041426448920681623491975162450575434578448594140497024541158043589318603337503375471630411698556766259789184996234585540663225395387451700404601510409987075207139193836101059553523295894853440388824501101774233985643347363989153360234430894174951978656484819427902476498437882145089138150685052536068258597371725860960083544661544683957091007357694102822663965441994799042836444707714658402831340713236185537961020069137175299559459272507259370896466337637026510857281602635783528166368094484914555456125161060325190275298048657626993925597784465538085181334717761318091499449017959858410833724732378921280954201873669300888888015925194096010978872571891538315265901710893449147053254390326493296458379019134190431332485069923941494651027963502824044491498307778802532568862876898868127475133898096404897575553368532731064939332040077983926643211767065054499718136843657458455343802811188909628177327545208276201939999368345948849683431911239918185672644671401241784551216161494285177052209280061666035898879282582053640009458446945735526893077093693388467062280776702399912791142951960584380198121667454194368075728697915197824463620755194556737560176176541484404800677364946220150875389924280836131016029780665042267575902425899969342932999366522181976197961265356251306838476878239765074749255487943663316254193605734837619528786431537918474128662808031521053929252156833423946472273255293857731858364971483749100594965822349776997604968784760910847079240862678508348840508159617521704335439884929716747687638536016385330064955754990039712357984222833088314246150562840405836137938240817360483687981575739979430451862054499899754821906652275931036226040535964295665680484561114955949590504386752291659890476618724196785116136938903354241896733484634709888795528983002352609078704159113385208745244232680864585043952487514098149268771930151975372726995205135581358554395257505649351665788738360018029603255797565057578917749672085138458355192179580458220259354549099022351975398693904417402120135028908982709966496399783707927896281256327372140997335334084401686203003869663565237021990923611940449629799303769377005673602937085965759304212978911977098697865430506073162866005902544123826296567034784803064873125130898497209804388999046012458061853502170583397385506124113081800193702926666654446630886595740129435602462429057079784987927054395323425352394760433774839313691308239255364952996818010032461722207829851286739168517857302037135477730593086105524897307452029779887745964227084670582111658997142255844626766558037968091062766496855499827975818333648500239972165062605635704412349165821283720656078976662050111471035461905119397797580823063080333601095045486500868722343372322661542009584212941713435800494503475696173664915798207799031329088997092013440485249815358112852181873998676531439816930058040519812216420835558942276205043462620874242739297082659237616421222153816314023912405456945323863439320270354097218818635442377609687261111204325634676650144598230759757640054359221634972920721632571903851068662743399671998963782128262519354313572289551982762146854473892845387325039499701573671355501565008765196259505168002193434262252894403350018835580432502130526462835024845862301795873213805321313955842507686799445226278514613954561129083191619506797156192293790416508194140525409008965792146603008016791175822267436341304756546065152057794831331826675114357080463190651407935606447870874924237565621857052381498265938776053886285879786657908088380771678993738668829562184186187671721654046720802959532050692942943564000731650096616660371668967329193225196372875528131760465526681938502473138021276343601746311682253958087862212066793198804454340613631538585737423612772778371594445475188939544363387557140990133612348899037148139452160300712775469227674306042066989176676043241509649546880956795864809992551360794583866320954869853380488373904324024893612518695757135013954669516257727086445693470855439224710806092784078933307240228473660224667224153000337940010346885892248878741126616805714978034725107707235957084797182746565592635202789554110252088966218896435312325464851093117884638631302077089556293244344218770166290120266652409093720906150067701813978376725676960867024376807264943719180148344154311141251496547578041059638997704264936236100871085526097458366836439354518450399911830424437930633901791363654397707702703494660122401148731588858271199007827415352576620825552145852221928674027234105566158393067335823898577337856606425000868579225779224333638327182238627659989491755483149032213988552272056894797915728017540793354764894275644683589343360022314889658155730278004971045653774114674930153849331915166785725238878444803979469040242037176590696514185517236197039194993473036484113004251286005234610633549093064542937682407083167836557906175491668250947531375527767798847904272180815939140462464919438544206105172331172936190263298576989702752326080205164531324219269586032559885746158153632743036416465700210680048414273713537393860673127038140291562864781116261301004297542267957693064672404121709604908143609339131636606313645020590168535948677265909899302579257593762499704449456673094429466462753945930103843879967375008958278082908133487124403017360066911558718563028212476268406871343538599565676595128637752516175363552349441550077174313643816800754443800927887315277868751339447623237143789109390065415299696464399208755123772674015112491558671596508570351658275843137760700786143613870076989579265578398444046962751806262165524580573410501878966426431133505317258356789867872279702932617489982938574523375576000206496998647321884090340494477966165594871764300412747639450824709915284695721417381773181351805052957560674494983799243362325140723603450903219488031872317357909657327000299791121399298304785713023115919681600438315035258481192350854122247376649363975398725104807421410345158217968567064110243539334660509513227827831737710394662674571051883256203038554038978793643815579406802072618761746269975817950361886507426581561604818377637429240071190248672634349340178700203731761498133896207684232386211363557801565267002834753506249705216882767805328155762267191105151302829176565965006694847444172380073736033882699137670493488989135524523601988010259921426003839545457126701874970530442725083130773773588237968935068106339613262345380251540521960734220793777594140723997425193273410631577297548665206661839885369866942322356336394219754957123496575472107300773113859838517329637957185848882176495381405387108956974886479638305245520938721469641674306922533534266578961689078659331203640636994046878866466910687802959802248614344540939912275235961311683663725622125897657245065351823227218205222343227646781945952446280107756327793462482564659916887771323347931062860102167313775750764049496186110001829771771589361058076483569471719034764418343180280541267162584135641622306029283433274377103969945795719699996415661267795196640748490807067064981584252283101664305626042013860093100450362609899959818311216118579419553912143515293940399893494736020966906071997111826829349790115979669937289181333136980055695469679944369946368231240922956429384159900668689984661281750847572589510267965765628273784431242302395734936799840387119190090840274770347000185034310320949174310893260844816522691533151465620912043293106231123734055705971723632004415655902667659205106792334705285175941563323746008098173218420313404468633290053080719805767665294974442030894539789356370180427447342014682808982725710619135266160341945216985209051002636989224244074297418116955152396184365924965965795171409358556719391675267409900370576075849179357516682016270934082101745931074397485944713816211335380896936369150361314777214431644990995456126862437761961125690194009830877826122671077189901151645943493490508313042924539167824816769517319609306990441616746348534280044691434953674786810313585917641908631772270772321366193609784292865580003540278181106752694345158546915091440402143362341758399315587450442710786973316489496279390594911477468815395008566869198874768731650331924630680221765722782001034309556009043497152596427949890255549704479390413454142013878606985872282317095275332012186756204164192730702406251809318867878793271634078638776108166209934967781917084004610449492932215952100783462063140080073854888012427964191410580637498097140999422769011267025558234406990386045811559158848366999084701022533378982980610433063319584552839694497540643547952798565435157786338391117926947514200338524677477725610426284692352729929916563656209603737964011351249950582680925359539831012179862220988492806641797459478781741139837822413277234392414437277400166522818293323503546135825213209102375031610056936852964701898340585617074218607883477566731082831754484016232980358721293099138634432411002109059886056328607778646131805934611842663417529605219073862472951575183358563763630264769903264815106032158202044204981603083291817196511472928571378989230049246339683965937911393138962971132019161022884393769352997914698951523584922561931953037676418406500571417463470374791608117799621836409093144314041613982118320473643184314471346452104403035457842602600569935713536553634094823295535307076970462784660892439391246773144165184416390890492355575491285396191977621929967472020851384267550242550675975764857488692721567951105982484428660399839393830986919967157164055113822946270159304055974602539365599245644803706829578383820208022935129939142292863768070843423178877837541636679443318480474332028655986780962448550162009811762523197768183035797184401746314420461280001083504725524802622933922667041524414458198933876533576122177166987260469937266863539264029887665087651679995784637840900976607280566004432791825087752606918450632060414643834599074274895695456914816737856832888379668317202859470708183411999734381007248131760868326217231144435470858558904180240497857202088754436674880536145287730120795269495992270966955899622306483176516522797651970753946141366470252972817467725139467666829845060902798799244482184750937985693810253147727803261899301842427800275246040307681719087683820285669703286775299018818755854501934633524893740402039164703000971455288560639489456298869040823427085309376285191880786595814046174766835156793325576190676689422518410627772634608284838842690940877626279419599613704956100072320775146425364293072412546494764383848808053085290660433036235692223135152119655062960212859776941021323582312824214820041996759677555636250840914045898065299076194671097912860344884604582463446587640423878125541595988337203909493829715339426841522157368833419559495827958415599636441075520214794921297002811404097184527391144781209675609100755552633205054559700734205310462192787457906644184189035896367905244724945655199207668238169084017264607529075146364855446018199362485150877725711578159849525426977231374556073856233895380289937979448375774642867506575632748117991167956860835458497504080683299889075335852784558801422510346115392735174110729761554326951049471076659561575859295091089857988690886631522125013508476181169249580176889923037520682233788128364624877673273395693258032876151719044966627576204809849932850697482645528141171039135657947947533689680065669929910261181251216358614442931613949241861257364618072215053727607851090742524663513092900279934778454425157761902600887224472200652527315510340957444846195266608615672715133243553908806323354405996247422046820182036970682779363895289468936426863201694498645909959748865378399266270701702622748180549906826982121233863119313003057981629891854804466484207712247163106117520192127291021057708733576700369607604457107808013522815623391265497456514611657181142470144366686860240753481865365129176737011310608248486410783434095451312272976175791509896607124244324677804111444284620917395730809878033906571920190124651986487406078693622730650204709679000961405714778747051435034023624834062751430412305683276116952321789224004897397056350620250264849484485200767709383931329881727418904808618545036864166065518157098569447460972562420316038478954236790881467570793572924156059949428380523344462091682404045229456772751331936318423594019374615256966477265151996216593036991442732385975794381368510135292248549830135800248135877905209740563266439639315951494219257958999046982944336839860558431763787883052816891180658447374946083321713721315802175421727854001929894640033783195663594175450136119216183260266352848169666010637391765958917850667317318473088803031566434723964269981941295860276406454096412946044902437615739945946008193444562783903724845821396249545849045003615166966942295248969798468710899334865912635108776503381358829486755814475533874610814022351822611179492289078250027429897300205529231922287548080641960934344544844878897424460812832422883829855046874175693462116839933712220650578451323462376210836208777875280294597603248246129210608034675054873180083679175487373209675976887638993392821754888198993276850458375204619837843551600487374195600531011301310975587143213923402797903793934979165584586942259435059830280189268290920561431683176481978537349164347896497066574802759358038230984753869664190332314681963292064638222999073895688032623556473538516804282378291382562651829659170647933040095566272207443370078539608159661404934049749943997328590805422850220727147527121164712585570656967133272708537787829928153117192661568202743010703495380185588095119963459879636798361605353228875428971154024877917352954151617486612641593314220595705800845469545433109595816209923026558221765370714804685362010692513449602360171631680297340954652211960155748089769752500455783445361850175809038056554118902128385564430067062941060950905494072415563798769012310924434631241157754989136596925004767434359389708156704205737683123289550258861519805352928668473300737837956472291869611681149915971504184295101986252666592364747839629504652562661401914651539943895971272488414423168166711139386338748343598804990638723749322639730010555997587302886043967990446658824850054099145260193965992076577627700852682875427086273569191958417177374622687086154758708892626396577922010851200595444377528496314526255545328035923318191179709323624634487570704782072267503400151367067957563434868363352448093147929584338302389791783984712998991100978118744610586041628039886011853564939376687807222360275285598114728147914833282081636039173430181935886413856605003893579202966571456127494745473552802686011194246281093515291243332011025378232308658194803706769717310926349144399660440588638238250459086300122037052481899839649806473477104507378462167260480000255372986994356766967484452115922954277910024920654347384990399754335784263187288456846324415072690503309646010790348283969400841350908620732924565418635570409062051149917188115346876913971344029126370450904191898331745408418134410473990285374262446429374201342146091041850502553500469434183721752420268888028925912745763428691510896929359990925455160294772242372879025167256705331330197151436827965840033532163329209188707247172216370201114422112122797056805506037200203150648253070701992516947007654573585173743435165337013943796963436818005661719455779468687292330369244199854216214196055267257003450700201867524366451072555549081144300260975903422165718470957508682227830757868396249348243026839324529258599751020018916064449909367798865754137941953848170378091428148954643316783453623729724860396606768281630324035254492864601260519102898928398510396695448561401126475392035175841775725173186069955093366965407264463168931858823633154585160095631024098132743921065949545670556872531037449931389331337025723879085367306216387868460249217504320950555611125912445106545390832373432982652874891662140622724862109523829844891029268500459333365078956358103060868523061866710736344291122763186773374432035415084873367018124635660923720821232688072241373819166497251581494744405387576624357363850723110756206178327562472246907856426919361095485623709954624232959210669274464493362328510599052296749614028776182102897628373029956683051302382607936130002679935171319338965053370044690303777561012889813727029921830735692556386596832992838467523474323084011487231340467278216366735743227033515277384716831718623410275866731254580530479202593040288674135463813085054980701445339696986923458369718232814438957928315684969603194138787538430418527244095081982336443996011776803408704404254674399076296997895697505992338030452256715450117030952892373603366109462326181591978943075623574024868224255433155371072722959933629722909304560776744862185726526194050951706288640656202338900425157133033674855136265952811599731331528479453025640233904439196807016219201603318870456819182032789339316218051044901461056942461260420113907944846361862359696404117778167282401076904176919512732573526700333119662484022711997656342393488104449189293691292490447563412246688255309072437882521529394909740196741841666988637014985215623701031041338032147686911736729795500288772195817492595206737663639903836967094944682789687021013657064808544726377951800020271910446678960935344797431443078699280194144388912633378521224584234093081413884304871436006141926500297780543451426303674543179938281319039585139260848415280684075083864364251748918643819295428194665351321749839976067025308586974323289296556156016510596203837706579681366309070947447813035665405457333037905984745134334984300348703101722995015873471191143344229038651707968620300981449315001378082129142199019227069882250184308644120842144682086946030900633944236891529772865745153094822678822214049453352066522595813481854966486998583404853153032429866502692618723224865742777144986966247885110544186953911794613126150996008300100102099984331708457421363784576890713598166437267731289737941093004451947170054769284593835589502817225417094528057168886189530302424870265235088378249286734834269645800418770675752373153914920378183739409162744773856170459091950914738921735512445726594056761106454238584979590311500402113985903947297734023206114935445232818449785024783602902014295235385291109650177556792175547394265717738571353433699107436897664421744686406449581232507739984024584368832249772854921607656514442016007272788557400173587014440293909087136467912789137782529540530722620451027569642358348454718006996914528679048682337169841996118194314045606751034797557401812048927850719916397948149540866956536909613903601853737850877078913509834427940853312348201381656623953345531455310343306634620850213100892151331508065868075876470534221802640718917028572714696907978606783311255684130220263356286340565705817245819113299012568812614471869179269853957423110792300621243028703760431825335907888970682593947545127581419751795207181105807505969109601055030199392684818102544330965001479050437987772552445284855106015153664275090017407593518767961605660438364273354121858032450498925287201877466449407499454862891136495430161438396450038651484748950606859494435899123718031904780888518033774491593561865464106554079140215940717118936708703539437139466009837885432877082500526871399920158893803192559397093688313469840085363864035655205146646088373384936004239481563391439770015293389780546404683260170262987898886052972035303608766358900502865099297989001239588498645479697686892016704489385832399128510088265424275112965221685101754441220793745200249964173627239346293600668426350564886644743716232037230709420601159542087158505699334684544953736686997537694774351798368175817293012921367186737796866564617496464252944785585341276430588163037580828025414193691880629572311604751061962166484031796830779683865015310919157239016589560177015441982540139879034711490021422696487836256470556436605035525559773819832600878650961466227424399891371412629181824180265381627074400725920120428779147551328843571056120689902815508627799508495784120709790216501868454311781681912710386456824953838024094859778659794900710116954465751895915940681485649606365821749038721946861930584409201434742479489422777297428110503191292016752761271677940269483155589857795857567880153871042934679776685761843229133495824526807578322852076573227454517421099058501710054069405151593009423066096047270861207159235112149718065483359684160315008148077600195996001245101490900767108802106904418828959983649558675458575334877584055573157308816511340537170707718312847975261745429564041295383003397424469322928099141276413823183608959691250685798972803704543595516921674347003565352221832145345908753391875467554129570573699707550173572850819362275639669385345067748914839657777601789501689110764039614640585845890801025024683957420282034276674250816581653934743501496959954888242560044252869541538588104728796512061061395780379031751753399116148080743170485624598281712287466557711113211901711772348444197094207569600889423397191826503447600971962395751003698230923953815012321290138577827015056742473468866786139620212898059701766423701474839303168625077412164574484100967738613435546154566956848771641706402956295652298110024438989583513799738759871902574065874786162434202065740383918361797250281415737378231222747345757493604253046694769915136392080520186596399802272789080093395161872509713390478648213191017314428269573826008827252295871583592330601911269438961049324143806673596392371707831598497744925675435628457374346825827609747814620091697667138518526414566330644354045733110909690198484513142033701113240393498608000714814282829524128021269632472423765528502122317873036513285695275176846634787183476651190843801179640593569724623135249583969600035345127896097266166367067749432238371245344989321870288881525780351218352677917095219387838029996672478237138667772713728345543655716991078996265669459530620948718366077819528738816925479190391002116998756343297518124178744686836284118363286454793417739633759703360753979525919590527567592857377756061449473168838876809942617174360243389276377589264380041999879867246477973534486602316425039173549988745153720053374468033077160741922703105450931368735431283496588532393739311466660756653893523435778275925200654638372257311461950900231224170987862802040222576854287235247520510268124990802221061606814374545634284256023206005951887279284462984556655452318247661441940859506140335908760601897454236405600892431264598681224316052575059470874550841206306597888496264140702467011155044394535931265405884069088063412821040690873007469849166927725794574126045454602811883929213392374340401162227009831421306379350184402206338086437438133170361955915654488653848664211231430905886671891364260901543301595907530364165586783944324378973485143918694136012789434821076665497533195285591909797090802273047308131216942094282558790625706939350468247285595933029820369403708875533397373127671652225005504677357828974913941277748611414476165580961184268138975754067770601328928943107682338328056763368646522496371084748028446137335737139978880854039063416516816717447016225041832997865443772667154292037591560159994792267465826583175091276912538687130718025755979137582761309346743613571536670639526691125244106000009636355668539823758479062790925523862453013149107406849971817240965336555885288553609476171600818836765188624868415951784987655556578014100423875706133289584656015407663158345882490277117867888200399802804004292876496086104018616319554180063634082984772770749390121550267573632361449768305499665708860072512133664612828107093599978968827310556581176922819641144659658319181599049750916789422595472169965513399601945083010633507676591274014052814465462688985430241623367591057963454363598977877596639802608897798759917667133153382703779438877078180411988527098335708799643663363796001086058646664884166814875269010522860462406582607784106441049536778541705582346223074751899283167018241769755573440789471799876924311366647919684924875322168620430270561026383199565406510974530783372173663160533424734494310860471164650365799046220025177475755373329401885386503741977554484799417366966713366743762091876578828579936046206560980462475779343614550559996637281395574896587460281036993369447992157337749992578706174566327643156155236840963039412222015474093383587850648694376550929893074841991756905899054110749569921156632928152163905368939883305790959742513327440963974733277938485391158790068735348698044309411824673591390230042915343978007852177828160209980652003246496980842595607893375243605340323031898609938348970387214169869319549732394205327067763665794324767259771259214661314578945931282893407575159955977209045250335280818505195634731041216766073580736041540792291262047058911146769747106172460476817871530044880730755326795485674954370371020537620966987615607985014673770667768222455730940493669021590899508075322444628582410785963323775133581135993084880300310002571764102825494001369099514587360702980622638368766017100588744889494911382705120658051861904889119952608556960266541152592856788464743515209152210720746746827499601129441594803691490704028069327366488997176757216503589627597123190183576338403611616406591952383420777681645197309869962469165010634838355230483411783118131770894176388680431242600062470645121025495096269685304292313738178497354517020721526901261789725475650373653035835355316676751742601928582637378373429726023756563210288972110659188460426136181925858590017611411184481011478171394941279926588353528810497731299187648406082322531851394135172357602184018351770704227340675215600005176122417321267258887559648883528536447353853659909082341640454947409360798963959073920295310249739668324789550443359417638096435931029315093663436613179893856951540035699567726050860171481936489285221758737038666760002438534001376639458429434075179561319599215750667714380437178815016407682714369853138228569720831814155948446333656130557967943666332841444057480533811441271950140236410035995416116704702009792796150953246803902652873447532135988587763662049318038309843022395976988224153024817343593313034651174367467322008448079507710875509518832604242254706571240431502858693732838192798805065000549343066096529940861947733967505982830222715758995943843531090153636225978340206654807832342078513258459020372475770930557392302185588233202790305047996611171815949192630386507760065015804671943077036394649528016351889488725585678489242385476805126198206417351948183334133941599158357264623644760687737726197110079056187221998249190784553083297078632771977444289593995725849712119164171352858605139055528309353140044451978945307559063388552394552330584334964649238158929892383640905188439923314818605298726202239646072229943676022196287130099711013442654148185248980578620472054640547849179260830643730161247518639388397131665082972685557100239046866627959636284210264510693082537755953259476417708558606582612500738719004207022294137141192006664911389747928235738137845886504121385178322555167588652485506818164985665691302115899109862179888289644214785224852266064639159637674263416132665404794940625618573652130962605395673762223975538129539447155477158431094690734988999457973685157291042427749644337536312590472266214411467475526768290144232915843587022947967921815178989351709451800577202511426745599371591966214430688023437184481993046293200747247121900965949318249613342860872531741499471370116925865642896730704896518845637099300828903571078749788925707796883916152032776147004072139846367197354598106286452865809802223567665723963727198587562849478402065280120964969209522645848940485845267081183535265107939690908305559917954867952821473270874953756471189012683222209860458520404669898778909910777939557034757915161968702820233344774862948331642963644273193302862882470815364141426413960236886678674494277035633658524636605455095074475222606526675654964533969779647463103550534407328978753217897829992526577884096228334569881899917778167771763394154060864059747769693999900078552540769705307684003157042459656188654649917535322075041908501865927500385692880831299384549820558157405583419979309592107084291928834220073477815623220280909631493003670724189069027853275794488179662878587474086673600297282626534459797117341742149374125076631270945389440432856129168703365931618840067905809610627002262780904825286930622195070304204895964714424759983759208694787298417621203770851164503291699862623879050525244492439288568617297866143179994582047778859678732776274377770055398133164240322792398644375398194388605521009602449030475454089427110468256792405778468413511147119603836233389467694106423731383324350093314325105919663196594694313213176403941535313136975283402803051584920188957622931005286639187794150539923034412078690920945433354342559569023594441537498932008187936285426314924246458066606567979770024925079799415155988008230380493432175298342090428768003933814370856594738314495794670535899769918150063818731685614983388515905118105687318844874666977044519026315869313491809929964199406154197536615261787602371977545091201394332875659311776701412018905431996937052897318309502143750291546111543420092416639762467079286607564364559609311916211355476875250325402493799083726348836785518004529768406254761836034670338252998867762178528331897865616813656011928560349581420578541936530995762392650211684140161686148127259996356519952405558314438301402825844343077672541655407135256137360719230733731856294902640496388886626072985585466727873257831303961994725412368276980817451486984412549906992159389651577535326655073149103213563744203381213474881518162887991787637389001225994429737989217601666570942333695774454626256740385587530848847739319908459487979076598880302951768701600054656269001223767901396527049198143420899683833479196674508456936304200873429330618477419190191988516084482058183435922425025372899598296490654066825540826741900315985836383472765844817368899102425696517481938766429711778357873353018836843511156163979573417069270646727883068048956163534982640540158759215557689717784714266625835044568448676422887002371210331765459035242313420006099518976993430948143105994056369662449664300331436397186556940574050051058374902378148605105463723570096798905767996731110051894224769007967224802403928019102416888092336979295783302371671992262599838732789005374249504369049383120075144348707999243203025450673793565821224951257476046042161682012587456898787757074616442684575897093121935270511202421832900079070508347430600067309148797587774143071448590838047953536983413042211087725255305803061376841428794175069983409597803646076298467593207584389118062311122153906679756927489643565509510872401893662011933250732706403851106679991039385104169362953976995341013708723252723941502642473657738189854560630349750480757308822973264169579717497573130249980105219257394276057933043673848461882888874917913008555121611727872869984843142900849547429175313317660446420388976298562702734919845516535759533834914504975532155305260070909785354532864302330443240536280898373056572624991313021429125983906987880249430072765464249802682241771938614292482193202424632469245188087056509818663448614601395427034749836540839678292331118791688323863001187793370519976652610128779012198376594735074844944715695291684441474114645548462612603365812365872149756297022530321216270206896387255558941874086254703610976578785679676884422027458185132225365438494138541052579316059509729078757053166645946625861183336436997771501966896783101003069531675789536971347869420068626789363002815212643450324290155403596350930673880349690503518718289956573816382120987498416951469760026837800067320832776596211368990294715973319943002165644764219542964925270908085910402759751251572811215994986192271712028033557092393102262227085747299915238278719463870361591863381964289481105485337736369533514132749796789971985821326334562102820193144463721610934817314441427350948763090961976092622713295134971960731535940227694887465324337681962437160582661325072288363489011768052022305590836818151738644323599644799490931823527032856627134408315193959550460344229532624304535487426978697337057564164079396930564504222812663827796647794445851861664887564865846751814205744786099130648914488058162084024217953823968891829896300614107006049007041616824931988852746916644079051068234185087260200037375987143435155324230298461828545388481075519283051929417597665331500879251313852230789998802802058488235793837957565508577357000904651121035719720595049026172146745309449625218790164060607609606029805369317400275497960280129603722299025058036510854201486289509052587966106713364285128088869305760391459907738896650928283325460547346143503708690300131404699824512086223990713082885996260812279268979945745916517060766066270948018155737071753713657429169604594925213086316348193950714665779350067469748208159084540990263693646787493147759087442653282742332156255083480034632985965402571128389736410127839568493022182296129472521543115969544736365982019728530835266984872537886052937758824909263160869461162489161553290733266385084891106479326463505861469564190160458137978863320948813976059560090756820601436267212150556996874196424165078793306014539473417082762376676179278847438401428907801846914058045897656455524806753094624002579880858160755557924866367995016103091151055722081094152631186318059032735185640834961043370693963604443791899997975811222398799924942314621101557219561108095960862487383725362171296673949369406920601875461326377076888083255624023760553033098801782785983657115882299553760884355594376697658464829828937642083175433100342673238983349696587513843258844292672563296698798863283673961424876542632939468234596682556681881542666966918802854032834274078989399685073214202267828174406358034569603765476514824442006746200018139641330203300426088348931759479965812848769586088188746633182012067210933992445339035811096133304866595147653968795380016533734832502519000438235099380227343151159982839755745715617493535890032210560478768850792245317652360128753268615413544403466947343504868096594003925584082025336862436634495055235433292795892059833913549118580259969386302597464934144344400008205426088501902492811237996164336835923938414690844740960426128121125455713907849663013031556679252734471476764021801719252678319427816011725847944197443575308944647352689488162480680216902062143697195227412451084207918200477496366650346151679048180436581930351998149905572607313468711004738911508667686188241689918740785593610401109497501191077423247237419844093039978843273438344617394181694852964247178104385155781245819469579205159180473396750707588757790970009143495339778621813820837838323833902564866069148820353825019226855073039348782137474649516183467303521826524332657606053375172615411762008379548384492634891262117060417352683427230324801723097941769302872044900080595671078543970924216988344246571359477976935485364514140787685033991896560187622077304562167718878447708008687704601571632890234374912825637830407405082598165909667595245170787256720862041405966758069263277741775698796065363790724018504669143032670380980163503057600534956780326094833942029913813092145711119818129673501511653850606326800928183347330267571273867575995159172461567157168779312542928109810110326350821905839972220814179943148322885068085282079112625486410528206135623108046899578273198832916340877628981573650187655680376976741135957217436504141266226241001015553484564763122076913169486760569116121840858914977130263664200123393061652929147241370543729685638897949157772397011277321273148381799365960462887494214598354548984807886116715796657149354721481126914199401672334748364331630226405041424346969740273121559245617882853205280095071386043702644249314217319703734973205944716968469357041882540065720631819557585269693308147275407715790019556292385752973819051257899505358256286980295271947358152483110897485418362083564400756778501872021895611606772506873237986056625444692171304518878283614378622356241206945340304690588008412078368899005409835629605667570569619680931574424957920269555831272524942176009468600631460758139800448160535768987692156417686778164632633290761552056956367561402823736517514989278317228137475785932342376411497588273077924850904718943819489782928043528864948326099579555719325642877703005221895611782576061380064624352512925493934350910550826911085231781781514700570870703558110635872704244196223232313804049795046779254618461540617927246964287384178479661466097546475781634640133242096176127683574100848337508945096125112602214088747084708914875882538976555426311866588485067434818604010632593241638639576986624454860541214012306444254930287654860028250118097799372005496225947809954350580384630581567251187713980096379377938713473701644597874512077595923159424413981989291048956769419734259390084759317988394324205537069329291008695484510871500490600681772011302682250141705593755111197113885396583553212451943582142016423046485840152102529577533261745122959338481966414093003245109445521130041560119189621918884552426088987011549778029812155474365459273427403598331335908860998986303688763787068169179898770127496874746358949606874792688494570181580506090034527557695007686704945414373745431196392159459207214176851151008680522906222728670355108098884510441458716789355624500443770223527138155184071084750502365433522951230356309308559386735462589605025795086773248620708902979530895596255446563326945880476908302339150921403785678200100872873494168298414361801004667596407173748404672704490089808268609913562939054306166929948052595443426778908960885364188225751796221628508270188605819054748414443443862811920891022677680113619501033814956656456256121982181345985533441316865516032798722361188950222725297542375701660277716609863601621382873761374693000261875728874737927439243139229433366723051838373346657279367558110047971904455341784465144789320501476339864705141722015365017546371408677644438144128194543899235364024061269913137894946725596700019893347226556099290787562879005445878666041558828984830624248330524483438968066197782200539605834075238301895579873078609893345775979808689389112008631096781500957003074100344774127568711205845072455997614492047973514397157210221217905136607977378247956400716593394085792995132944035764939526660887394698994517344332066926683553279042007885115586914109251634141550251332249356049026621499215358719941300343859261839917441179163944297862220990122986441667925338912301697626257595559680798594887775262314235832774045189370963258355909281895148717049170130491679037151643461651679074300547433267432194795849252103335892290914341968558543349695114337940105081103750119097442098116934933700853966461963982708583240232192567242160200386700639028748148543935126310962472785468043025196982533929753889601353580749039563550585578801750836838882631753540606168109305477859989819200072310836314538758330517393025520591734430467764832421263156066058003797363620092373404933017709035412639263439558741004419478201933556298980003390858947436818292186102329262048999126204524663145863281930799415333270600173642055454976911044240684315463293708024251067574057338214209653466807903057601913509776991435400173702536580373233454300594151304552708685006103706337890744758483999849802085564763319953719520744994294917316207586025839902449276287805983566572553916091178979313033379304391819179201757090087205555933658204631537373119484458743996001433275854647189743569292951785209458712078132603994356406880536989439576777238499639042527158029798846040679192548939803236332149647385506062034827411938675227999041838516386537023093112683177295227463106921429173114887172805109780890946704438259477953791536271956034993927792014127702134791758154057652081275721748518639849414262928172325653321148146403223286942032080996093649825758769754328288445840636996530775521955873936234991156012251236099659253247144787616078691248146151593930921464218667673520021318142939681357808229334837827822218430654720134007492953906649050722579940804834528100926578541463299891505569932779553448013812131281714049182408597287161116913530478457759259502045322335818592862073172813542594556407769122675027598095149124412596087646600331998083587178969196791063333192779130188952696717856211720431613808898340253219866080792221825514900678514820569725962654732793510927361503289090264178875034880947950202563150725775627732256928458610392702879804061297256253351469034588525936954300414426749233316150605551141441845284171485837786590119986935273301258236650287959891089144095133053699945621879880819789480144790323298413912554305696902945115304107600454388486270916477210694482153913446300995927521625973056393822091991308192738107829946058571327792028966448345954329574798409401847331029243360789350297772428843649836027042860121731585484441962967981611186111835954343345167731210045027571420558287602651391941348561962685089898232168774712398794561423977765853035120255841156125160850334368170650132913905439194246409334688692924758610825907782514254303369006810216041849431582480816397798280432735114765805157807971201267928174003124298768920009258445430885514340484956015756770239876735533845677791490741156457796632508826439183149227213668640949389270749827402032578017147898615227801737658790524340959889909240302739762608996202408363829845974074891035442311697426764910814951538902156142468385871783106494104042577341367657734098631120588546203549207472812814710823966410249119861929084356566775664997443331829950932543785052938166262229943927396037097911495907356053998211048866495198534533474754464110818235534936820930629523440517980228874748479692499629380714311630576612387949849255924332372195763691084467158536318222653970003482045795997648370670665243179342816797481245440863894630807769715823202629431944953581443189822571993806953179911353469445089414559513076172756505477065180915088063166771506977568878295831339388127304225138969063414911854558667481797306693462979369362280989295133413499887948863250007489937682959591032716259557306567179405734108924175570318226417565543485949990113534142103553325540274661424826985357978155645883961125554526410207153455407815769670210727906884827350829577114372418524816054742481872128152229886141407280980696967222580399414926498482083296434379381638811811545952055612558579309148210095899901099576071886807520465050523793990840709398174476559356664448664498680477985976325051051294964304390270181246964773247673045357801312758136615508653602788035385854818613810882133916664280703726924864822886334915684300801221712084486315032437075239847493851104615385187593585894559726366376777937640362854926000669453569106676824243201174704648824680737350467416226806685815135821871674657726425845855452441514774797552035622859576892159878297225335793866190806332646472574768438091554288858188340742525109753623144182169611729839379611749956188638738618373207839415666075038804590091910724033535953284285309857753888683962890804374152679802246579872598006655872271763121109799074696045141606970103836788668628229915564920218320124481027301409664585554112650777914372296948190495691047455675700378876725316250465232600281824184060349941505946415199119395529239940885905920357138305023889925333262556741571362701166985995517232140887399029777674988077198686081362135612872977186120176657966735478064292898355601093930182026699506984596025876817454870918713802076181435486997951014315899548866331287713164479796278447101116428064979011225794681172748075816274305105387124116749199040046377176211242200037473042773858020341041972336395115698436773490975500308400243247340116429937260358898732981316101570789672737269047282026432746669367246882577760073553954395894588402710209410801863309876739779016274764099979909067360393230172760891745611572484011342134872660321952486211644056773510928878279095173546227928366599229135827163835528911510877603114814209680575202203683831865044991982319103530689228132466063958828377479281804396993490883498156955961736520474157081802643424173945443045747892680506171611842295339857502152262399433074797938169862658769265489968761787379099589149065636298577471442600221700380124249772710595510889593545003360131284503673128386589045591004710977581042636038157814310338004210827407456987103385167871795262829741123406090019064756778694795966715044485879597592994552351453959791458666498735246269857690841699683663333251873022439698049404935843680215178658096953883599443769698072808759239447539402479488026141291857771081239889475440850692190388160208281611677681560332283766197950824222844611385193794408401047514554489766393158255909237641043048356398310087059028771932589091376921096897494297549911695328711436393258548170883115519481371970323391091217218933323938617810240550487756399584746381279695388438573967863871708408029922339056756360108534303472568478048678544337503282386846637895122621767856767646852146180382252430231491790810335168688872809439617843751839413337726469232245391724894937651463289274153293094604684159526214005114880944536577210998911917266374614420056469797923387819693518482604128490486386158402666316858407243946669336052385769709653038055015523052088493053218992340582596110279868524462040860587391252593312133046843463612928724112750370867633505135176041896377861606184651260899719151782118261593933762871423827480560645458629153891768099277344976624088501896365870269728942682844647397483891221701859457928887974534185767194677775254820892910352434865018104246050139075472012428931072023589651363222187122947829865458411678270075761119871036561271644226631022126320628936294040790069222529722943396951868303524753855768881387098434627171662534803993812231402433242461634320788018536638123040930953102369340062648910831244511741688723127775908009191581924470465552955843785794748339760591537716827588890587496327764006586493972621881148579418112923275123429297098051102887222412494958089903556628371849779845834931041025578143970505490453040203418630439046622687194494516291004449685709452981155411953632523464880951069126553788795544053192476851624589445832764840165226953153997842406364767432653429220243596480463076965283895471454637182319382046800984790670432821720030674065999720413834988488816620472280122541245998110732221565156441252465074641888066436437466906576962298424289830774690484747046362308455158019275694678334611639210375165834089562656933467531745973362510647081232954284535541771211746176883935848565109971850526668780401103770136290550733301867725601122966671593701849199128492721907278723297373916689668416285538787374806710397980556165858251509023786759516078489907553243866170502466657646880447038864391194730584798293710036566890028640669438906536456544036719856606823523879552288675456442222084392147214065893432545914071553281787417439822214627457541929016001281866714835980771476270051583777642100305618367780008787866089887480794134525908681293572124912538294726354039000585842019189835562309937764070113104423335832978518070448616760772510355552108886772283842078316295961368479171084813659459736762452554319067418778766583637022876585818677400044995508602735311062906471159463685435969147273819513421120314869054589956196946022373782383609278496593739732596769811681275646351105044788682226047949857559351406542647254919238168497757279403678091500216834560387392266681148716023059750212504101798069903330096859715661500977898683029628615881507314957885542101563106915777225181417779746538474230276413914285136587141825586300591588390940491653509133878348527281929838987969772069117650608111799571078676010490595192785168155063054184959620883796405276217595928218301575423264639844085446961895801444747993727834282052564715541468169434512301434552603731355793535212677720575501336715431194110227764085727958634695263995773141123881484120162534110053893910195875114409980779588728892102475104220757515341851327708124732160854565393965099716834392385046631400851841273370626050760672159993027582681998427416546389158477426695139026178049683587873370246009415560912113222964461100347826014745789192514579211258969765773120143868604460061699622682743497167000126982891441288529443793915836770385870891230911567617146426284879564280407411892535390012775631545231872391041239555577465242203105290530525718081500895610415279496077692485948735714933113877109158781306086239707049242483846281492795616341441970904816970056555145964185353314418764619524144660782164187205382918934047388419766499364127387346787315589893028468995669832827804137139658005029274703254376449643847721210259089213884137871233657938526886901677223779796239549560264888756353566430745688610788989853322000996815150030783845165787486257037098652941298667399625639527593929047217734172067104642035444497347499348162269188835925909629622413298608242677457299465423049894568051006596913346369469363407362153306259110150830532926896705850782833764564766320966545413679205842736633264843798406944406258361224212683939051061451838413736427991351665857692610115933522017043584019695831597088655814307960730512568259511705500723763903606664419630795439035839469178592204469351369629282202389004776637021446053772820709945399257966675045753482823368100066921830970875833201070195198543919918170176660079162782160190142664979299652715438398856089526507086462094351619673762480159818439971631107724145992570987436861456137513744446809057072704256633175177052731750575006675595291929487880621544651798126559788556569761212408712239636303446102230036595647808732782497143713174623553667072038575174471310769921357938132137109961749305243694463084569226389201253992781725921562542522322643612212905530393839977478947488168308422728607582859718625455512087243854850227938135040348130134403407604060557409150696960107788375348333302520863167323302787165764912262388891060975322316172440269117706080895500214638253035456617708113338717244536172913000118077053986710199696863413910378429452328672564165115633398905107979887538015104732417947820643451510970102716401067183923114121115469350199333814559484289322011267267326655491626707419507791460479896269719634868766566249297071099812073721053617743941771318784176024251713262286676997742977925314780958535423367296794024128994220958779497702337032259633816195210720403043324631013865242839680672319250379674428462604227895383748932721282379185876063051351496155378362497516895448478512778320924011110699570451451464529358055744553178147493563835856178084738206732936283338831316684097925455755588553781221855155266501776037238455659766176715918089057513679737781546739208404784544806046285845329004861234697529785649158364296987808525741131986485457463517409602290588996606573110139462146981591545956494161523231328431261225345276141738177242118051567905033796948223262566956915100995021956388232409314995852383446759423078723444408868906753615025319282156873440891261066264553307205917085389006377527812880734632117924439869987145478976590124094924040054240907088620830207360905257613595474302698721633239969816584786153158585950688513605481109092392633749558845681791268464716294898229112922724283827280381100579736090865709137863058394253784123999097973110805339367223168931331230585024899736053511744542360231680875479418619753400311312134400507408688723475880640855259480927619574557814088462991213995234139135493516887446807511079356295407973812044863715035781403703963989078076580420003701719449874097010719876952877192149319998708604417810206595895247241675209395286001131308079366471934995974995979154511528353517529091805244809028712069222199905880295795454381975826493641821475491635104080618962312441969222045439912246512159953941275979049883324612184610364514006422303615587412084899807074236963116186982032790455030863026901909789883444446979755351539140956885682336478306887184402974791265023864636455941325759569570447179435398549977554513169074690245396227632574246890117526833318478988792078772464060541441711330090104032829132272861840556904702158453253489098382030702434891718939514067346219627599685968941958902886014532873689984527026407212673586670946809091223891849867199696235694632529639219838069829422866419462790184511179369733237885810130585179620803874765132487409397408619277502928997277120046475586637665665946938713556242693076105129028092935248482755066840763517624803818432818596636876196805794436581786811542645277562671111648375009861280218315436717951925561534731426561535457302512276259933306683631898108910687683298028342970938036720240836458222232808643674874592103121601264904226534698128289595483342870798966525301598769607283360547076914954358108895798952263867253799406251413688706680610027275450237954433559880487786227730941639702580060417210992981243554584924394538412793834487165830512595607395697165381248414359236603801166351838597850700607526444455705853395565734732266354410803752643134620582127021392581253402160393332914726358585228023203798317429461546108581401271863689341527536833639419209355790802785027530231919414357667612734596364606960523872418110396873034046656808740568243007621375033623533084752172492073927417717753122262212076680277854069767451269336699183645810132313976150682501033247278094841848937527975424524832078105639132008432851002590772359205152731284535403409897868288759663641900324713174349849801012481772241080411579405006366065406329051467808578704603955220870338161656751481874811727202561492519943868968635736119491498755715062903953673059590904716085051297549728115050414988844584651101207873592445418408097793974748551878479078615758057327451921569719431672643238791312724848000343555572371834910652665892241810664709588751849788904749066014281846434400294911965640475735777281171289652246269460215319265273796011014052573339543583848922881975314097657481644210363931815667291928964184506777149875762526345677290135969009792036940968959314668128407574918079880341632491328492935395608025971831821361415475313094487948500963393819274406099198666018846936107595892924443026045655529394258887595435453742290713032485078888220980672265049828035668091739322167844289448406719233228275589813002366476462971701726914611758447356825193637075172239785683797261209220142832048275581164172900728237612864712381308472087720451091974815291627714776384582241340878306751109817905390263577286996026489749474553095034680338124166085434795669194844429835207054675507934939692251509747541330275054059835522330172379564012006588501318369736531208348705806364769618798167578221622467329001638676290107313725160262800910401081849013321294850010825666886183753767883432977445197044667847268297717229532943157106337241680237561192211534037773862881721849891540904754942643523767134969006511591707931436064612091711912262669314511270270757537566227026986285349092388116743797464310229189248217837451194634610336975059469773925140316733456764944321531494925229693752999916876446075883673160616851029131118546080726018742985670391473152737012568865573635597649576813051072936657184156739161432365891105502948302933967322410410282169652592084297827829999229331556002069794048596700299588175066512761444473856631384609489895124445920890508263136183953097791685079858352265983194755028428818051734496015194203549377398600880646531677214524628233431157254361587575822474136613378195068282995536761560539456246258007748929681228968987603166235892886073594122968950240291402787033355461229161664483410698115109858143941089286223864674389037688951419165326959984895295518378862445650793025525720888413564610771830318053796542023264463228743938984714191280702905311189517571335782977966895635505934285109395791157605028362801406303085879759942753190191011264252282538381920752976879497841048408666005854890308268128418291902600168569285219953075192656478622711426265669730880740562658782261105427257105905431701065822830856597220965183140392856533315681438132712322537199177049537626663337183610760679882224370240862639405937537710957195686737024155946129943053821342373639045089544871770046831852926782560006344371105381944249495155013069022813023870894165283880256771481057928199818146624457980368003879724769498999697954128595455438114083739128629344077066115876388268455913710851946454642406619633272649016613292143824594276048048286627673683439349297582316656312324162720796649431904094640822503910587912432565645501871527982450849123257511386722452356518804533038700193490212550375376220641383979528825530171060827791173270025976708393395968651130391336663894789362924700008768067268223424458837546611737345613642746935414103680136978430601944525412457442217022806159880370642348666019129315621107563757475262072025852353250768331750554147994912684959669682148568681375301412336075874589271461330728941758145634120134425279650877562047522257813993146772547080234927032376881560419656480347493325611756097664325970169719475344759019316048616125836539154366668512159075105412745016351230057497564223512656192669642754257765758051193757637348928225125790526929334722883129703288960589769749963985730507238744313370015404979183914794779595614781131576959966530051529332938076567429738208942763691623507684111291063188259296241563942487140842832276168673137645515717488991218844728860023114739213439449020864215025323913233334508550307293492785380300893331382006033737858280496404441787240711693161921906905105727096496515997961608235757953312587948564720910054090374875214128220110179719193369573907993092105296027172068366404018043595786489967381195854083488484872901169441702781768725676784972351481333965352621398502455768347464797938650588713458535998032135997574617160170998403797976928890817697241601670321019655448669918176633724919204781116325360852224016691809067771058851621219147882395859109696789713948273965052193521662473619598719038393612868447761456932470773102347836477246778651738828835463276859923080620341207480709006585889770823515254705487183093290586932172654269257434990173793170686198995601301665541892293586537110865338429970887387923964457160478006342756346372557493701579844474224893637965707065966905773126913576206068561309183847940920791373420111371065604816775888277536092528912953300872429054548755075567538818782261591114245893053684966943353719990994722017194522009372212205319490515492053641134538409748257487449937504654656262513215138969202612149330922299630050777016342300279830105826245361281605707536959430724760245573558467458455130614351739757200617577990135545136178904814416508384918272425876315339823053046129321269342278892988488864082319553460104922166616815643882219002829400183538682815853267946608776593138503532220080790220223136616632089982523625743512964509846653440459276965972349531449405969766294794796503842428353169762221838368016270056433986733008429571871202810781440911130173412466090849522315710040508955207751617970414713747682229056510753374599214909036910982013550705335825430569603862666885611965070455397719897556716816290722169736578318765530902453760399236906256450498604689189359135772736574699469043544803766105668248380815388166755778973466434409429051879114816860345188650691384478912469148427010453816777788179327921331511278690936868690822934408683183693967527092106758415187206992579450998231979956964468554900680899924353475454382675956475186807626634481557199281810828783010109547958605852830003895146213855361326323610156503009722170291838880962516444762154676662438662039067488401942178503685757971362127770458728944945303227690769040588322018670946812196470781944706709804849854038240510707435846767457216559672029780354752256317796130164529043411924177751760284793861680101030422663203588069550105402280731190248953102993652857772444260343498475963819781196233996946980256878279412552203545842466242762638647269867424040282753342415112757414089490950250466971642624327587178807641056024064304183488714439392558957047097614644420148253544786902441719977723084284377392482198039434546337575305821986924882266450115749491587174758775112524891748858577815087132443779314655298576272620980427048363675125193890677095390532248239678450509194738714582388064804494346717050035031454117289301188282120439414169306649155592989958693495698018092627571332139058824271299109408364843825832047935253038510165248465579921992233893179548704171393589686727088037433632852602054487231555875008010324344727307793778516846803209248513608190366868355307011060318128401509570406019537430355350267930372449728091514343107742810932093768422506953912505066765264421377467107236565496800389077428157562858666544809308582065742343185027550816961586866181390021204125502911357745123560337633488870969283268924551993889909841035184654487650701899148721193464570369171993967291992264040274363530117544088294491539169228720588536435698881809594335221463598394119570001607822865200885758400451819496129409083326389059602000066392937379669831227419401428135176574263760873417288757018446265931221820977055167136113793699296179642434692984294784967520634888142195903703268317935856971073855301295646920197900182915777196814612218494962865005211043528475524114244974533910776176661658993941790496408353268699572852333867391330995707986724055386700782319518180574025861007667119601151103539652894975170392371580010394610578590881819485906583542637026047662586073306118200256423259759075095139617243455048696581619549990454438913230270278419299972245342315402688236303608184850298089491088956156305132214834823346177083463051248432582546992876299195545466724024694497220428269450949000639602973073704571241695622814454841291685550010812025241212579505468369668969987978574676289175330063107164974637350546677237899614958841990625280962457179681807019879399037863464797814535733584870782187211597070835116439262623273306528005800059074949752745422236808349443076704751488040701307836725650660345026000360243218117651328849422920764704947016492159673832338190662685356628838494727061233812326072649853944965269264583593302869024517411391776122976038627422327149321503471522524521742205881464687612883164957542432373807437586998498556786268595657919360152841177991001565130245839983860699064916760830534430654157852790741726471896189845279117062041604168808403834762159658597301340698084392597273783129617745765125633177562965301205625616322790208750335961145830692394093867257862466638285845516232337298100972336608971895117503308802751674161201573412442769665086264665082040232367830679718624123545165630677222682421081943216143642138672442334218549517133475908858724366015735346449728222860220297213231168835547723464525754811092320272911586465605106492247826518745191678782045194744947156955030720780029071375838134846707234418060722003497923440534217946314769177693857314161841347341860432174676242625981898100742741546750748358673589179089036249661846416814035857134946274208160973489024136476961061007982597804312041087425592242021420008919799799953522634869898106723294479864572066266958052412620341613259100553631636076285469087513486134561070845134015134645533644857766886148645286623713812843097201253787019532093057410038964514172889795988810894927286662702347045243311625907868528915432775695876612564462529692685474038157293832425352693482829813411823416401891754219749363066258778505023982528266158558407319650929845527385272301609330170117207947380378755887444817336210151173352504625593485962395193474336111411674818727089175899634660123547324254226937604767218223173345321041305636676996020238895071268253372613494344688432257730521373699691279036015678395073124484499746785692910042434395443909724236356275710923904252178725705121850694722018086102422733089021924710838831995183857516648862618862272191897221691975914686307769519012196174546666858436160916037777835849275725380859197589585880175863161155922157579780910401991342088974032460430592944080514335189164433135835982169769152455042189943059798333078700878607757924945873357235724183318443931429439181380369337979180795989287832071363405192791729549273774358986394169815868658796167795377353584309963498549268186764740777364144639735692505543283609866074434916128419413512339241240091338408240693758525139367282676002450458560675539193300602618591443327502579842039721999348841480549389835005704333190559298804024144608960205508821644460092612071625290243913385849679593540156329014831263863315977302773415489651307703035576346276854539063610589224821045544494942501607648552573589485458153370319708391458730356992325711731905321063888056141691076036382078891489800866636730231529137204121205841186033454688330483207057072622138747770055646254230593077349873001829020612095032456435882115039392167107358472294299587425230202883104571228228926578259466858731692375630559710956310820054415539872179657864905114239430483264830297519557677717283111495782419087176505407803053144584550435028170234056903224679682720010816362647489145226775368082778228438599903809672892465009236969902377241644904452680816907400063928087131938069768740240772767181391362165211914384161083087105274767762719288690865832330170436487842883952740435338105637924834933267836158837150451777870888825990283567371098397258276626912833195557882296966347365232388248624853008283811486436277578423458156582909783648402432982404192129127313011769680101214151939818407596002186841931893503153447630561859678220279922022606262254943600243524442992206455209419351271489737275414191664574309329042559598735092601172047956969112213170486381828791878757407938647292480061604796960549345509358970032348171601072637575656058563495468461757915829768998627747596343992289506861611118363282253592987141606821961663518636267760792317019956847532099105513575916454252382044506636060632650800505559691489007803824503495018394685237608176316658899015257659927417640604211663188268376507220087617616907188359791339729431213313732394852316928969149357163877556142704464644347694332288929176252965447262045179285377246022984573584660416037901020875236245808013871250539256127643450417241218850602470039900836975833878338933184751493533410607607104683397575558034826890497975193951973839687946805944969543462931975075945246421253381454607744405641187293389691868751514936795687944812907907972947559240909618373830561361716305621111662115749871565829401367535245977412873419072798856595566349856933659013251939477617920452692643756470981781102163462623064004857651031861139971249156276938005951878810272066882460213459678318783136698476417013120651983724789465893213752072544999417312746317088134283051889979237502100832855164232439514689263840838048246791835045212201243784256278979139967544786058552243730385377628677243925195550973859747578070313834318301489037787070025682030605827210607614403002758231634003093692377318724334361483867607747940720263718100541213363934862151716478880081424852503106311486158912028582535189630512300688766936239789703132024425931276503213853118565609391797677965365484012945096615734667772397637292257781481691512162702569514210236665786073359054825011164061844221135243822151219853033162287106433313906832978230493089291719348382699507714142215560994257803933443844262693755564893298989080061126946600901751743186452588067160344943956261975603813961562043272446431549702726341995127855816467045303958778771037891569224289406101676396648329717794614853317936528938542591739899377242388521214789338924664904994556087610795392501326593677226806452620082025717409457058767744574668252181696051051271702123563027498740024327759561796424567712480041679504744470975037824088282069929674782142093424317318078005844283936182714114716977802138240548704514051487678333190444373676583280264902523836923468501778246177695385017536967413414409249275736879256027396652952357471491492338523228198552500633904608207225998867096471969962193566128621103973132868585752394413031771554312826545223150013982223989340266310756416082040150568530281925062306521745059426238216036548093095898905754452420183067521168021643796890645819092350734216399335505459212266544679881798702767351663472182289820735209487753151000455028426978006043864075708947215041386431051602221400128996163580686100967357258699707774743612025976757011277181101165076174661807461947178896589631717560161464473622895840661896610604594825634057414539604635842813883024738862778656867841534651908626466026276093251940881577680006073244435019178807810152470133247662753743227648258715751343495423458432316484519058487919816407336993541879123036683994876508675848681178514719542933908411760119736066276527450372000263234399358953045963427897792465000931750695901402780708210552674119420623040526202825510478712245516672310654266229722589819770329861314164170571373827748037694601005152286000702261797330479983029748191429242381230216957057101848009129901550191179429928852208618632704083316928985589262894103570112057000617241937201399040377916246262640957443521765108702160898904333874059589559694220392308378490853043921352143916077047473278783641915357963111688881886049403406787902792370028209322657046384209734873961860679571554549746078359770194341507171434745636063312360180321665813099687849374423223574126697372490771742827463945613490579845075436138515762141564996473678027256981277291868734871721586155668435260890447255069800664252917924647727386006240465464606001995152908436982499571098639618596274559581202293576157975718616998777337055360501073623806292941203073243970423451171721426034597463698440489550984222131184194633129243654192188916567119332705949138415619137598643535721908491026707333842502367283739973732425109248894989674654083840577421114966313525996348098233944025102189402705771352674759343247168031167167067082697409748160496610437832958284635686389104265896438908623652185462092680133868677416699227452118791198035284803300148847937687068111887447884611535458383232396765531333294954252150731886394342593759713447287823337339094885783805899961474459289613703567246039223016478739086553798616620653012079531861214934435701847316581467480819363689665919935838435650243758607465814416117211025424821327125648031301883828124055810424374387646113063931180390393662072056770088510970705388984201278032443410030443604260037609726492947451734273153309020638682044218308536700347786430501024004571742204293196946771374651426981988173083985111777429907333010280047854102189907818632894614898365717526564428214736882910260098059194068221287105569586453079581586373638486770960454956453084960073136401729860666503419811496036784717859368000395219552302610840383578773745292101985922429816813925428547892934930494374602480267560285000143241703636781527649180201006740712459146822821519013590268392385197288066263615509158670809603066706256624649917327960339637115445497775226647224431039691753459384677891367212151212989433739650625451324508555996391242280974617992124385770428883914580019612725222361309512264687384486315120529545768567930452383905327909629046729003597908670677242018124119676216455921129285090515209410426292087108505294123050569462298168061962930077856968566280000177310241912862522993174299375268301939972369317267938531845982440406259368799343883235316107997508319347861670539655670129395869083222540038790639549675487892492065873645743961383466299675010418212844102087176342303899373000023449579919610197755418117810465844655831614560046554973117801268864380993332495430400090314211319809245620159413140704903993573269120204765808511286459084293957911966590004293807790878764608745919564957011937242853721570418754933354240086939270988924380575702167901999219659321231459474387716771862823299443516639982791217235661536851730174643776130301207312821656747065040764235707542781989679871041791414840665054223640042792476979037973837733037923700365723989248304647570424035910488647322352825390002870787176875338779745361404599888595082257542173983071322769735545548767008368097930552055996713743058207570735276109074938960265324772413913823334796285080429060489395304848157272384697521683102625927548915143908464433438304357760419681845046842502981345656482500475899292131506214354787495646229393011795814183321609172375091157164343546241629615616571220111259481422151771940265648832587504378751571157389171350757085580290936500872105263971876606212146055961393714821258396661069402807786500886103414764912110217109839954697854793799137026746329499611429661327079682045171313975351097979256846459464992737867940454374771053421740253354324212745064083519243862235836370401051910335483909652880081441632592669532479387160244284083135775764463208468862395625637861976991417355804443199060204006903954798092273985392655056192221414955362772385413110394833652324372829056001781587359272793738646412661993436783427514363390424899895432036655371035589632739499499057498163364143305775793089022832691026321550661557092087544288341657319495942610876155802135004729381196674799674187922621391150769501767245175897225282847800460061173037125631590463808156699006170646083436697786935835551046844707203326848993839273233922095137531311707253975859727493801421480021726622727502641267285300688974521219799412140225606779784241817343631696872979876725486289417564348966048886816291354246886013630641614814313625162390307780950414577079186219310323706675175304450418013258224776478281883506035104647115116828405921857131787287360110731042981694925301771564100494276886602375485928019349930577816869624279375756129096600480819166492351380115707155341705285586723162611639220044216188301426807439421927088959254600437197686030270908082605952055841071725869240101859409021929128096372891662957371752342025455317334537089472657102873834323523754434804987314519029910885067831851847405634974094079553414304848791036365818795863054449545602658287544721840722182287248662671649668832550608978019954580002455214600641423664789297226602447090201485402483383388648080833733954169013692331855201626799320934048256051997466957351190689346678395599587358903395284921469995246501998376000349544549768203848243084416819980159308575983718269405833811083294007115856156186091178360286967909761436120787425510858280390326880793963467998241437912119585417346993955144530858651881931273009283908941306891883242958676382133422860017263888515447151810987197497655826723575149422768385559148015513179564913139616583851951365252122969313334208217642748665858846846884976025051019362669979046639052873437635405426334847580667633584158897984181740393780940910377233145023585142984809019031857115515632477881871737064886595680063527375361524297823418800112948255370131949969120500540838741564846253798642091677466541816590091049089350379935618643423180026284478090359435320344383105406812314712625656132705966524660537714048822159619237033300243406739720179823171031142694806462586230459646034967800930767932216091017020917173334505568417151308920571049127510829638616777039216036200202593868752673423402025587542820218837406132239635182069785648000831070455343351403822317428070784798332220062753402440026503420449947497286405988734195163620222703913344674068879352568206716175307175982843520827384602237008682949989464934578320903661029887318933939328917084404666090415725374375404111659458764067430782434740121067767800849547664039646444863243694589574842424046474511007420115127502845626767077747126921046711778922481564051861347259581372122976710118645591805996878847683320865962549858704047996832412945198613870252537454782968145873272604584102767705003643908774762713499320577803653625791311765060234213577341913141835748457342273408554246001011339771159336299082716239568174436766762810237198130493266371576190033206667567795110076567852639779591970324086043132001405412348378948670777881597308567838419982058513154131225165992964937116091091627953729849619999981772247635276375383398416079257775257831764828766554060086493060699073637222233764756794767563991008831412873847605145801065074821086464213043752412501431410614111661685087198685841870863996558277496465652128090789275775348595911557314663642727415901346024991185202138262086817434441128707881448241890668357559162738022409767998355714760474582718861347752094173719783890426653215858878791015796754815049975208496786993249783828125976366360495970350346477852820721616189114024633599108321588482010647862324743411572932560204382563200869399015734233185655967077274473360949501183780061559954383993709923796098093914806846735428054639918035267164000524195912576630432942312663756097184365850684902131822520996189744613064627680257959899241965190650898897381197779112154499999004685941505991694414608590516538747966203006750579313445381507967765223560222762849378549259363041623278118894170002577702413703979980064083546523703755300534338883302825104564666885588010098086356679247952484929806289513100436148189717093595530572036684725898196657764098412592907381809540130673175678874404008303899096654751158663386133510163819426302946839014533766649748171540021978227627087370337254745711428435927866003280409002155657071290013692242995679627404177061085857097193812106069744900818187057343100850643483746346186089825958593909376864307069623361618258767760708954331335964335954844209133005823588359709842474787569020859420938883969804604615169739520879373171573533668092469786934407166043618222564796384518095067912451307594228947650653801025524454208260577781468432020096126270186449030616585312416065122838901313584305083518924629330161012375108253540824030694666150168338138549521115350934176057271131982468736753711017097045866931051151689416537255644892266563411152845068587738764274643120510014141615031626661054468649330322668620544945921619295921629558584611256989279613621853317028566603187061506240065390698347782344128761063363189116061423478131793416226109158310239793312394964552560287324232167876944501327847709330492456428004630614067461083971084346400166999835128024028927968701063076216269717305528573785319702725444316467270451213216649552787148364666901573945084322664107391512647396286160321650819694995822647287288368601992065998724954960486042467751150069055616243811201767995617723960691150944886840990343672756972622838939036736909708046385654296061978947285972647824186083067903743479383023861880757631444830968886468267159563085660205312100481404541551882992452030231247371344315093074783543987124729915238210169436937442488410826231568773818780374427153576868822195087950378279063934536202998418517273783349609999547556021019565567828399054142897540800739271513190176647509684534118636225588360345532887827827658652564911580590991950165897841824066958625106309569753083106892574574892916570478860855423716282655453770563194154644719893064568525415041914763479413873178149620544154232499857268817087894508102393457741710383815222096421086037738753500790117126265415805287226722043149470123206062394388204435889255579336920458088937129055596800915833980572315403184034666179673144555377280381627084024758005032057873687841525712718805539305158001149472217995642422027373162474467478197059622960186600709178963525022332747054816158911790646454234468584691979594578058151833724757709239023224082205093945887691234875943896285652608085500984145720068564460740988600329642269320323170751334065065728416669901777041661629340394336388419779054646441454184148100436439078940144179009776163391188733348573480819266955596565261804591626189500552185203439214616663352178279676504269731479148356991149883933833760892627600923868872891349354636998021575030232763697011287053258404752827102271278573836658231859262179196805127857216772621133118145296342134976298854116974661523240428048116381456341802161040116230749295928915829210705163508910583341548559546522080409201422451049773345944353770401976528547223055956952256245432433657564977254298019083793023908109644584626445937322941016117055930567616369972469084068507805031700912375755032694279481444009288622302845241967849298311451957305830525798716513957941858429214946457815587317230023751269778063396667547846921822673375152314632344971321847061759901716561829645932304399505594260008792287454210133486337180255528125482907794066144506030659254657498600223187417763637508097957517850887148324584726645731560361949923882081283562463384027843323556019811670699596951714761455289118654079736916328009588097987337802721637991818934180551692390509401670469513750823115101165685550487949768085128066638305649450081262917429317942597759697691720407818042766791764432806029682836084183402189772823315541822222276630597619334537656971463616313813465196614821366341108392616761392341740677709354521651769919314845825242309253697166281010306497674217194614728427453141011671818843536362331074402848361076614486539953057968025048867857674231831477959764694074965320732795320626253674105974070755065242295062842029038190934410509968544183079424597762599312951261330893647379324075982485657766063034767948381157689963731285003218476907243050019428023554888607444824456978212728583197665958772996489012228139210187745598650622451272185481068666521636441565570218747159715010148856156525951739058337234764085758796124610781754394140320043291101375157985883252805248526889650138155643416831340878071101426976533807132751187060166006599134017275785980893004197102990943009216252088755259369598368390243834752678476407890748807823296771935384690993007314390244935927327894517306060675066901857311445358851933092304570338988261776545062531395343008431374506754123252124997283731744960041347763535657088400114189920448708462379277629913035197668860427491164160923723731703227590455684664692419956782814047194351759842371830746831731429095561166261464490079598753452160676456245157778938109189905359172973791761399718699017178752742787454412613103789283094826308523593565224138309715001953015682580521414852151763473897143274581673373772041978717799682948397892107054670734710939388324024887097860808096942302649158274524349970569350066079760151410664866384626474919881795793057669990193740231079563112904430815737941077095270825681429420584960994368697196663560210767124856906100534185208218412530807087814628339056495184804789620796178511353718600614031644561002361507774183233545065813883139001898666459783780003074689291542390307351906524648285911734305087576497482144300022033992604249976462941236606318022845223163291926062767040424404009745174046997546234284891638776723586215557827525960987334847606081138494814191148903070878431778016119961395877686928682890693601697359354690128741601777278875135422601603005244954253890175549221828688492413994196291724078766762992067825226059697113690608176809531476006971579926866151975397410827682261532786372273917031893443868170890540982000170578540244210843426234517131050308229828971772750015529174596783185767193634503189228577074580139897889465312346568916938021218175638691563673651208060649816201826335961979313328148977237125586968327679250495598890913122046027998731426948141396855949837484117273849913888037538725580664770330635485813299843577167880517103133925706018184618851429215853155356557217540613352769604679031435503212566917347862999147197577929285889778783677371843146338393418452348348081210343053199550432540720538428944018938098430587155930987249212629751244920836872344588867611885961794901094067406944495657600495250680094370999576150150989168645662914426218994604884821308315541003183412920771198273309299883701133723662488516546122069504268468796170270799255384132230024039437160174261396898828227766952719474672075462228872289800056237154436491780257121095728463346915784687978267052481760801787343303459578386242724972221240076961997419094356249588385099987082728296613881426606756905626366744732328312076040389286299895460783225059174634569503445422401634617335853092060776054623980954810276908890766347443902475827824554843033150050173969713279943252173399264672531024056064601706405089897631783092745269543125714728014984048047483818636495459481126445384161629218708803692508130652954591730708983451647187054547172049925794112486668120529754767146524982015171437399508267370125301169923716923650860778879009451550342607855560440287689426176191700157428589847435457211406128264869525323441737172599488653656908786614185203538044246453151937705034220842056426286410183376234700743726365681081562955976528731368100525144007051743584783924444587268508094261828107675670797045174564165001164530518379897737307579168408439483745379331684734751441367204366311158569643352564535251722972423498843695042525998694028638894325583423605301497006696698045436721808007950535132839450629124612295202690366134179612045494380305541889000083550655207808840365294854586480284232921254117282875464243393052415667690574748963621067097136688504865983688226379255281257660029936613882099842751392670605871050862139874944494707060848369206737205957463438446381552140968316438166585798133062513896313593452536809436596673927730261009286988697740157928440486222287036124263632113756935313314818970138269110846266076926224002279080159142973265285024333337700763263100811403128773569050598795346541277521204385930532966240599095958926370989073117242739925543608407813465229358447616363049046024289531996102821462330357624967225208789472544210389121075539759811677283034980396040164039098260115139736599094856887971692222864229114892007441058374958335697851998427754812945405224396680839845728931032001974782199793603105890628635347938284611959089904222391048010270518618317459574253199405106408211201199699473572876609166352987698733653055934571653800115391234501615985713203078838790097019538795159730591722276546343118203750076885300491413120070783724610539376624405218317833533653504612235739472392427722806441537430021705717491810031290456113168861425476351019310526575944702024801790523462810107932657465765189496333207219138635369706081313758795176157218134677851245686070744895040641351343908024275055918922371491298592322439806933569694386529189624124858901360683255895133391578384008180782837589327968380424909286655281577812554778139887383756854972705115943095389138408273599146268506978593178512586966438237009316605914224015340926355615955342478016564436225293152715309722805887165599577233234302775850883737142098515912971730628348660245923397414353537470245067040869726219749770757426546405684038111856114128762448966649777330102125990541265306115737234042923943705072518449853196076639383561117285595791361308182135151785906719874595043895644212470616165329883032988644919786887824011144218480775856420768969713415153787662439074918685227230426205901634797400750452133538058127783290305052450824403091535151933310761796269423228029870863597888494013740223421597627366830915115009657583681863312202216676092575690071301276905050654307192826293727413394760077064811660604563945360993865952064240350855164784864727568812232942634009085701671527835713288127089312454785324224955133737376790553395169651444552315248155596530644257269729043244131087574679982228976686904699956238787905927050366377599149769641337628801387192929393707878271809437400819667138238034150095350651341102821796149846155461855823347743189721285967685756703006410077918331102124510522185232103227541192830483893904820125540371535817111336384998181301272254325146884933190880071308295063292236502559972820771423070242984726552973307836536377246373734592402015169243538835487836128920193846784338316044643432467608826768003065318035086183553116230790647061161266323264406216140448342439355108304354997469988376349132851821212286500506482905531836426210515927801082606674148527381760362134202948898820293149528246295440618153047386393954039078991463751332406226744851368949644404669334330420545286915735824709142857383215610828007437749136519398206316571027706312872518937098113067628006366222652608400055220093528971167592306838757581508994380690656748259161954679999168371577615456725423917267950559857361713025369596667356968157683327110923162286402118198094345524382147691994411611327055195001109959927657165995336548490714356127602500428972221977118732083109151271867205339810580979371505589173146924475020855581228843386847268087272610313227797780779996385194115848989524253410186315177081247936846762545148930779602705113938751914783697843574818055329653588277081399035954914594835431585569800427000970320999120331589076446425288113183102230849086665039647021243814915037858969176044133707422240605882305963094022636217541244541004926295651580724776585435337242419763127969567043139929892517708465106980273639810542580381575469238671898733383856695802611842442362943613587208538954491206510821408013623784786404781946782090296846414331077347350130529154248486594761853596687541956599969556967262409245120165472378512155732883297474214921910453037077833117754419630535922105052164226960053014357767686405533334567470828806724718437621102006705241185197060759448834301040898744272502923994995783496354950203987743041502269815452170197001113550319627345064502026369998698393376580931778443546413098693810366268062032558836950086098976639414198413364137062668831694704785099744017763309851580285221221840062039704029210013054631114589250475739811230682921188420664892367209144205172909997846371810305852196766560363838956409731827540148396322270049904458938808620581713654776942835110859749867418309155392416280796134310535312971974441720140065621464970624939630989300261974144040546192441355571060824904070482164351496964958496643628213186983590109306160316533204670541599646639159274173108881124927366925688687887729941971037398433318568013730739107640844784196840426053533051872862349489137843053184929702848142637677208264806789765089730301660814284220474543633188685158630670915483257597233033888626833932754698271546169138273894470811239417868419411310517628094638074878741098296541723069306570173121475805393821503071839820568088202934525289072078531762361341356766642066614054393130379210691112890652090245900472849731667208010758673662861973388823698167783825243071877826227714541932385598934128965034584319881338886489932642862904890875360322031983746786386347871940071126575401024287658707698723435704256688837154642852357615838954533970222030341927741781498907377756210984532986619658314488723190364585681522746216195874680325812215688922169531845144118227057358933084935578035224657500726811646672532377924185862582561496734409370826220543486801556796468690025057606415479266506474461587895985243291772701433375789542433145961870316946414289746889783563241845235713932893339528950505950849767511448759639174832339816232269912373612385627375514315675846916027761811996505950168134120476938332880615105845856168878761733294729864742983790132424712162762439700776077359641485940940809841213995115686173251070214544217207382758745933702501902715807895589115971107616694628095576041223699034169773219584537319413692106207591262853618314795012345418912171635652080429947915731993485272018820883117218917689900591565652552172725168869519485776849412389047910511538267113241640489804029804737537505561002548800972260394791012583918325827079098559036724095856361017053469150148959959754069534196314718428453843990497035545606086333987317494213663894326812151977562530178841246050065425298713211727518711773541536652791946517129696771839214352300960700199895566566447959397961777125361576351789087571843945874063015408928610223648568209572719898991222576119605627789377313836633024542049961431631058684608420552866113379880064568181346125016831849062010522649301716117485122500289803047722656157831293952800492164070614355594889250989155181977538870424359405854701044253963600184185887976882338871948824172091984613409892081838597129062321295914131792074177793057798603269223788439777342003919275238549925261695486805062929970760407307585951320945950183683362743672243397046728195556723294867615176788215120613889266194209311524306856500965882259901022049385279543945885306873728951343417954205520718800874856927870984177006646959893144406700981274357808374771529539843743428465511961167619031896470341333124808480688949295684183702402322596409687588759904240960725815317751773869903270931579841500214456852799330232342500599112710128044889586587901022217045405463664062267442901242496400377969003704913154089699036735553618453538893073137987028297351187330822906405672944733475773998708255618735154034805012539429776311445975560854913188176035106435725723528978217931125760553830859738681732461576855450693733416565251610894527818839362732805235502821592022418431037920651269869256184289811760041961804071211960832837684022589221368723558381817125179311060807734477130842044024627794165407812824465697793649872048128622083969921676023244098229535879311823705250235137320569007589927937535740208713784604183120306139806991289708729197633373124395693912511513499355634417795322435923728663204738803536722834952520009630308073438437049017476893701436892194927534589064490753506291141332111953000917120694406052657115904243648515655468702920210228664957986211959598172128364133214595268780468184517262862582196862028784195964004908930075363326377395153788946538540523528742431768539745853901396660529757605739852151052218044690401207962967225859673221820102171593267684103959862002476047136767278952346994698946892094302640640038767978574543382118725310365746703435724180042016384312437945316324601198441881982751117985128615557453600772207415098895312384164501074638215370295496557053680405471747109309653578151409583669004398547723571008899682147062776014858015456519330537633475055046858946116112787328922829057948053521434747313940707595718303159533615589171465736513793724661338079592428913039614134499259680700713322666117097106107869007194841417210818312292501204370881996842541520515292053263466288869745834752160614322249972192733631775112189495137668339928430691103661519538199690143406749391059064899991575271573470727999473570071953954597318856108348721963330594905916659729875816567712659503574130245635959638193071302160415147445948880950864100086424693178321669745604103446807541395381989833828181567318109325523158985555941652520000101345755527135287014974799862025181985055139759924649304758382004179761992790876637946660729040444957716694627156592461749694258213362354962306081422002321323874343514704676807982917803100466585793988572151128933134153378514166249204560968578868332791248333608844925522216565579413048798949785925231399983211428285504869035340008568286351601479712509328913490228359101017890153459646756267497961243645950934957187302111548666637505400459479866082772039356627107520814053308553217052761794356599699494469229984897746364402195219159721125155854798691448151080630891481356094939896240698386312053754148062565196363402115025185947425293297754443404689242151706923160449762603328919786551393477624015452577227837283747713357651942370549372027571921432429126333300302445321369717892991577587056920521103689499079315401282635527092461161758229830286353856008802972996715134269722958918341751598629612073007817390781990949391247983587477054608763231434347363431076340232203429890782604793994588943145221176414206259410115602397277523693760052069463924878064427460760818310539959377133380853676437433446484899933761288118431314771384464132923987053057686458297765000516888413163342347810613826194389389072234963390005731973454248638831475690352359859250333953845493589148292101095666064382474427734220032420206048409714731278233433546342159148097637800438229810180756414475981396172085380028885808145976808283977643645576725525465510654954299277934169344794988302016307157623626707343434572492046907595611361960672911779166702594575455152448362620218983030069690459783559316007839828168320647800295066846074898888126390996712945034033768763352101984339874813207442649770131354741657046561285157781168842988786556881935130414076995555974436774059548070714165713846285548007747810049658912555548732072787757251459130624634336760550506943689470354554433198629930928914921998532411868555804341428072196734227578738960295102609754828388718703621594377801771082553269861893599707891371658516221425324653426091480428470896188818288075775719776466808574646580874559662914185827445879641507445341283266907053799810153079933185916000784640482374523939618520032536360109265403370010189042536814149295953608218094788623208455617110454677515016264592122854806865082212420593141080233351699700075152106965382482976882865588958271886419896341247425998776279190926943205358078177952018792555299897412379717946357815322631516864425082482492790154312884923971659764205056139628069069940958508418593076538330894697843288979935289619200894737934114630152899882832384914550503667019101302958172670663028182083568588632831546515997396062183711827921179815162876473260427882290193575925759371792620570766794709013555480321630474862932537272284029025073831865273981610868839370802011006569099480687429736674450588081417306278442564121680625889480782322269562714898324084251066143641500976817558227989675614891593278977070886429297606732346450656290574934923324260489124330903930913481540159133285518623972625176715969447255839409643422759737297856918635439591392828027092869790403337618914926675051201454852041938187133066523480318248442526111623118564779069230710494491606210762242054876382866960532395096146130139327292963408496606222019691581709117031874662720321298054971133978731114220153397844554305918717487641873889102538324094316425469430974428427346678157920181961641085868553345354151207895637538015293953942404802415767722547454875222748194709032137327275218867334372277226607285199835364240962909331207483833043097519488036935919105657757954546828188625068647687776997891423806838919980435361303550036352975643180051779366412390827654373486937910730392480327663465543862766737780719349151479783377242888672894913446322181200519643558128687701845390259237283997151147718675596648419242552653727059873922825961421036295066948855052350247209173438916979406143776540521443120184212639921613357311995956179053785449122958932576580224527897556884760580552753253275008972813605216778098343752888181187832102900652401775129535415701081592974623571474938206868362742047051783633342875815762409291015394319572907750896800906412778733107728662086569437345635478000083746462315446815097263468590651230284803364947009046996348575997508670038159403050369494432693661881587941945773568356520700185491436748651346581074342802798773009920015027099768401282944538847168717391950895822558661590463906579861926397909260618247347430023929093705671908294280892221237975619192665424836433665404034575283354927984063471547115892602918915017987502307703229469793736546030650125754514470097887037908198077754469081410579474991803041590423224583302144347135561650082115351056920434248293544547920033054769246374061012297568993986203837038194160207447530791360989013043272302165158022461883962669897847434821637911371668375775540636599631832222863494072526101424188629464308254960111248638614213411500251641633841609848301408226236132348072953810574283297999605986469656312296961117413209542555925398554011162833987213417478742356212641087546594025367586923897455542161016688559225108591296688485770850315629707470575732112668628618389600888583568460566920390042648877146048803475172608014807274302219671125545344998635716605297864049333770346991651136878602876982715595087105573118190858638302172153672659499182609866265255724282144167396232073287101854021470181410826527731803477884178595929723165057358735772397296237443292969518345705184601923673424492555080177346613100141200104955085445277569521659741591446768563417865640988488581841319600390775375384169220738526607726705679010689096631815824175735064706886268679453910065102768607548292533769409184577868221924869137093306608191202337511790556298958628382706386887185357039626721307887688364774621221805975772778101250123065982466569199293911927638675769184496755747985859622392462896697787325210723815346743801682560659586150349139981459578044296380550958194528070387288274513282633678279040513382273504584793017510725780010386178041151177104952654496458516944157608368356530218596760086183976092608669355802796663867479030618384802857631089208512023635158313034913490636075856864981612376801797619112378535342123712441878297841499018008754450052328191515303003544431195406901469215591147223751694387557563511086729708335813326833269810739003334469986078047657858181174602731657371553043497755446694378285902663258013583101655456610079605074306395774633908378602161329541652741683688913428814985288495166451028977297765730102173841408753027882893311760187815844358608648222330529301187608260355398612442762127232506773676452474399725227227027737729184942539371451372232565139605305048295560153531505990383829688679144666464903800942080862015662755373121532479235926929585093799212661378966706836044768188583365309992195859872092120589734418395796718084601343950418069845435092580105543079958286611240505243310386512114032220588671903633249220911380477640518231346784436205193824624889995178254560309876958105836407108059049773603373125761927805874650018875349421829145234194743474876817399834409670652238932807957554203914677469732780105272364605025891362608479157283198744884972178120129813083865745854582754127791267874099242470844215452219191281741204991650557291588506505310939469875176270047101347096599791212073795391701426682988852665494650841618162537257127743248571970149027762929046441712267515829339375076502645750537717502574684000351646792185419886005685769267325254654465276000885192420891932104714775376633784537510476825517206358125863543630895058392635191892653320382805199875158913374374057469994931855870465936993731493497552696375025762860971551532963360204177325548626226520695113701533457292173557693173567678313969965565304913374960183690290202345156051819858704706299797304869218610962314794761501840640456131812960301645869710742393165889596717089219689901787661926992060670950546609688030731144842111061227403393471478758198625215361836303898122391096939380836198469670893444543999490096983059585078729289493747968851114618775536815607508076392092696271585090148399561892966716874608560193356380089502036905378384082094632572650951188321485400353535247706388420002451419981211438322294207197319666494493955250741613776382208220084933530214450061471425756707745800741333020023539520397359085762882090767244490330203865276587760612694759153585364582978330106632404519463309440647547735074580215867397784672962572395749533173380727843732284595492469432247508694144324110254214617505551479274802160606524143564556552892896577821162570771022432177378266499392075107101768086651336539832274110890647153037633568587447197701034937051967926188602169074998280303095872370200761200545171786577621859100620692435770987458754619232830077098057169615504280591751546257157217009522025207492705034406146496507736057335721468520998898005571559972911917213117554899497068233489222038756565686735521486101504362663992401882130066372002730134518794322841308135612137189606083055251187804670321971719663816118475504332967769685246367144002677215785743301084649434741881640309560564524532137005828061265102336369351352370073911156701777395301797564498934529826827727082857495041016477672599578826009079078347104689887411900464273500986667445618274625732647197427451080214365205719282515059296185818519987005529081287476910296396672628943610352107031086095959154129599953594711378428934727357393615313344769638484643105728733478619400654171258588014658066379208298978943846566844304315856283396469911881059212637589685561254422640417280890628003560466668441152549977895681272014049011616582673182428366708362612224741185331716249759345045522330460832014954378041877170971254293345163113875687574055402941136786786885335778032577946348951735195476136811302453786021683781508430193493635460278260250239416208906942178024818794251456947813981638347102964580172711002252282339459565634438579712302493417966350908080515474907368153279209129779679016940442685409035323538845726357455172766072608242131283289233958188373140177989318592450782348467133801409553814376647669042807981078568569449598932526056919219574774962714355918868783323180411903562970387681858727160529341874060413794314513238528061580611325156345897018435162612394976019610523196892964350625354174403536679960784398457498355054194864947178723708939574494680469628917065655832648914217522539848342661553172096621798501702462478963455264036936566442012901126432035268941443869310032020566657284548237204648635629635482084246025985792948202976343857140739468102705217447070894892588760091093815071071764685157041508244844837372679438037743746410538765081854017339300390323874882005759843350381428390037660263847787049136846749249683214333570544979704250176616347970520751014563652279624968437389747279653196809635931158028731240024913507578847070702775800637288159124300739515201845955188578198602714778694112243093307797294054258519367939952972797685751267222354572133029308324038685188164128727206036420443225674917044941458906215022917406882248025209473467678125343459824656876798278985825628456054943529972174662928847739440178724964907007208791283181957312396749754490945279784346892156677387520356033678735550500527417976596654455691948127652127089175020583729889823008971486242871257850040243046681860584395163446462746123483685496014887944161927499514376605426909905889513282303402731575259464486308045483665595693339428260725752938319740064494708347159202262515701891668502319197492776419803073930326704285232955193792937431766006702664855649242131361432863724589619069844647620379445460128978194962816366056778708877944806936569512903282034441632374146096935966600352315597952351009133364342558234092942281598076868313132548255200679477268710385511733794848938713974263452706562391842138942867330534136644727060034365322504431983086424504173790056854176486694714354481347586084419609909956934252706768084258466461941302540212847390470028126814876713928365948337307382000600145893458224287246534711857764253621671872665871169488583549841250794657678132593672603506718119263063536956246003424135934427883787019832510820519324586910965164699083190681748322735143168956159892827722943559079272325628370804424759624681470109839739259019905188196950475926839488604359018934125395934641393730938284434815555439310885282251617592392562421786513610763144614209661651486478751682787480703466006607540075689858617692824850143529419602444668198407214672089209348294213936307060860291018902962625889562071105475626583758816413748906224804760872858758396008395298379705607774751319843879185514138765601666867768232240386221038240563477521635987048909712498635329232044733694228840571685116809103147306113732638003524566552679890558121702498560246751006759268696234532977809955746725960545931097451205263970186822533686700409877318842619944894026947437083032631490574389049891496839883044003387580084962824117389727550876878256303793496063475335031060524586596862767471650968156147907712335879887996819076307639596721396787588299622943596226868474347594967466023605147708722578703799629344463599771364370934484433785113749242549966565885112575839315773399496510548154210769419323336691863601947368354403718321914032190593315770118078247812099760424515915284716241083921940979142095728577469074128660748879837531018630137825882449507748301880398766862128302892836677040091721306681048122796976378732212500679603663456920392328387716204865445747162939693739304272382652936291869379546487934607117925262092702377133632592812010820525962761733735614399440534916831038073374664715583876959995079340065049544547532076664946791164456835254513149162930443001965272533508762164943959799110832022268167823931287046927611660532686554433587953197219452447425177979021292442642741745959851517486397082920758485829153812624277722645202588184919641690590746746342948734860865429951861872525006021843991699035599577148217830082500458805169092277415755932583818887217972627713453675699856256116220006725447186189438465012443528137892940461964550220052515270421319028832482491450767336165522746609359159592849693731103392976501297670500284738628896541926742860590431654187319943063070255467958982569600231027330037782730876645928213963347075379715874781603574572925103170224632699843814590153666157599672783097784728475962205068691700734785417761756887941288120016726790191402114273687760376135526908008297494573486608640331991819232580667136547097532089114443615757699031895609762215722214918205989601659645732384614592153400248979506250809789487926800587839352323946300865703494550680071360787214005045885133385885574733054527939626102327287863322839012937176244098055174008050994000968045104440834559358698649292104529503841959246064489338663911291339339860871683589558108757793618188709235186742373230882213944512718140267279330559190946962126574082520144575131827069590743905566150486054969775780128441746778305463460520527330169293939317642505139393843510554809631752827379875657895673881500509416026498637188892039962326218972801346364277898025555970610708865126208543921941490166859607734003329598513478244538879486390047976673398853306910937878857659658980116786221982382064140956895866031953523514690804486799648830409448070663536929371328902734179362626023999351371242848973466268448537998590326414801311006023729493597749313821246774552344914047752851555531220928401640866217053576079588268303126518815201912205803335458139328197148880393876401390033013914500319370450206095852347156635226941814891380716979687562197838944244770506822500603566716382829565059214578255241980843592480363891323048963658447360563126582112927884270307184914216906340634441780751692211141146192268407240953607869574743593183311254269316924047913536645830079558449130457154046088120510518856618877598433582264307186883862785836446687678773137924901767194981954042478062308739533304118299019837755078614883280860213887245511180794484015326679716828736666609100877354205420703588062219866356602671546125542137244933200414056038210484242400876417598229219137923150960192917137895066636565463596072411517004982496486882049956026413306809520875924238033189207964935518621382887570859984157179763194067424780710564282962912263567519800243676125943268691776956752874016639753247356681617641217770528722671607689556774593362766398624513245479098919508867985262813547984393474138249580017818529323291476250109497285102053027220026341397911214672050449704392779868035356380727436612464035053394886082319255950590184126010137106399472983614891774412890041192943668376821223309860052186072030911832923088289379540304097995315029346171201409995369806082774834045865561891422737037428320126364238966611532557304939295353099590063416596275821141300773165386624619856123292562562661209124466832640586736621108787461610262943323138407776322695654491202276569040823373741808940614612789680098742086448201756949441345645403487416490611725024204002583739591931262136075718008691444268104229594138723824312142588209476419884455529454062251361864391847275080508773378793490050686334345799010625409000096435536208607921915030655484034177893620833949819942443458486053838797358758869186959859711400060523255324543787839181659609375984360278303214118438041474043894979288844560877442701537845715285452315311037343362335199745918926416161764359364929650216396663005484787316255921142901162779182641270275672730445160073502777846101205224316429465103231737403196601187757287686417903772452121690720439827351629511513132342746571994760591496062982822223670355772074949903911794359350460447901960037265820027183747326980280914734917541848390358169397198102544355594167571201904026729079005318240164722996721830325839131658806581757321572615180982214774283700682497900696956430479481699018769069597413313035347837777375231460811178551091058094494900950859551028052035786987995339030293921251654933038819433757321775548301907690327599309204975477874238644616466680097366636140878101140982755098930330908095256548095262428925724592043071102669530985590099705875887505722931525309274268625210156893063470347699061610393315755837137931961239945417171968352482727501456104592366374056903747960179507251169184338460209895964016189666848469425000188656646775683003998131493560329135032693282176132971919858566162275971049435923555140157461741308742994613839917932173884591016649913213855698871206441143639754594964256896335314733220810150089565908553388710651739498618176131953145703133606991351007329337830655645419224447918936437401936570439432788029729112985435333015479644910382489457545312230983405073049110966253906286558952546895586065425213488523198076192146556848394599892994344494373688182064392261899059190625198827130323900015571867288604591010467927772271797759647111507527905581781233556470332781016876832660308591640332786368614376386489009694057068060274109065856267697283539124913208699071229038514800240292032060081561224758918289441944774172327178971884597917596502977618149223740730185616866408846873930678059474939497213752311309889886264599812729413274687587578138846719979208965251632353333727208391139650335396305174748388322512880591231795350235852795932859538323448671108396263093409669243977641684878883283670535408733982779220074423058830233788578285284633541883767704561705132713604809480506020040775702869472232669084625234406318362745134880152830228644189798928763526920921909448474049936221804023378715197979940585693849332803349916696574593228333468098431777408968636142287308546389003458352449769931817392782351967966125273789289338796964142856796690743612066244005024709028933269901336082445325230047286785839241425568614223579032828575518316996187100041178900465935688790653383097890300891330246657255837083333468601889334723861314532830362956039658743216435529560342271087836228965540281454658139465203556556361806102304876223854527646759609032017570045254490318545061420080148764269590340501845071196913548523636318416682659009947906595824323756500761224683501870864656644338493311502460227179031420104081201783565538881082702672032847544406351998763617430207428344439555359170741216646411849680234487882750670218272653387929954334195573541920657508709102920082240334688646639952366156633281120702682476398730013089390191632495396258430447527362538455662273110927022320393640176212288853176322869351593263203814328781375928586558506887942893371695257730413394342080552430438586678917708877095861524300963094448880936140720892752374902293057024442039508946748837231949150044236084787136030723467289282041778304620050653347442312203587066979604646551121115245123315650449352610533267777789932715335752901232288063852914292979636785348150554566543171351102281169046628437503123505409360427664180796145453102265810746357783199323252792367669225188012873937009129500489660005792810159236037558152868926441483188856444876044823957275570099795294310167360770605373544306680018845830618944911021934448372483972452207032785467858203063323915353549357728964012225152971254505321533997360334630150786544793896880233475044824498007482519479703646561895267902046661524880976610255556943615388870991070206854518151266382361813982855496859899293757703707462267188590914883656900370502113474889335618182309757482010092867260421836742897101586407375331393850670456300983509134879169919282257136130668002861977187957588481176313065840943261515698329053018716816729529926678274733027343400576557436283545639371090416320619085755801298739058992569985554042847009477948306855279645771056873504453287790611575827753401577103917572691595372842818881247402359107108413094224537582515016257542360469867427287278132211658733145806670455072610785573607741777588421933500060072579434418500021601411569495879098176148101266147933260479414102166597034260853191244003497678110635840734499247619611829989151086291596015195471168258367450606724208771637918185001930257757693939399244580373859644539917533542069521268132560596278117817981022056384980039336344993159352213626908438263710769586696527162567782581406569126798982682761467743256709884460464936613144152449851900162348389343905938337135541647748313402989175341022430491406785957038372923272512902775783464585432232113206166710705465096434465939107641867097418688985664448454292359845943637414340003755179828388241648238380189193268843430081373893989108797920185569706898164124823906935656754999046163679389381887963092905060395927781291929418443289572079981698316963121724949450841036547582586929855240201637764263152734166008920499861264464453774850903398944946228346341753434495587926437159230715650564931636100566169947284597104187715707561179080874693288567264954742000131287934859496427601352148878624625226872357162135912555999348747504811795956041888738010735206606107347144784020472932025684432588626275341050174356701896428365890553428645639498605866122640459961385390454878422664258344886386834622163081175089407671534888394103848398312368889231946484854266105104004092895581402966602456645095712211132862643138035503063124157816349812125748254828159933755147380427851127592925779701904818037165737375624783160338181441508002328773391429024566709298766027119060339560521499377400672758322885118109729226572602717718390858299949767156679413542192344440843702042827548489046682726346532511279351000856261739014193695691185239735703542440531354451866939344552112371266920483596690337233934608136959042947527933989917422357647645696044101486197635853891353915300566473285107493232031445828145347227114909721174190236539378855376342182736355165241628092503114180443508152320712832753467526879044811426102574201834585383088620768549526521355618050330549335150755618204126132831573491933175913763089377233401205153807027550630724063615216324304633754067758924363455564950904103788785272390335086742135043352938251643657807803260058309088797487661095921486056584739556584662843173670256689320817819267338817564273142343056292326810493066934966209543217927174417590807709573620159186317636709459457409157587822395328015667482932964881664392007032797637340349128540867321875051051556956607311597279657969014743682224371935405143559393103611884801915066349794111423067280164662571704722579134536331861498687275551388986087918305262870296382195650576192221939384191896521838676530964500385358069324659783244228466554209462245932436016254230102247532664505880869047155832294327600207944431578102169052226758952696660731192781964631277520445353047067326659963932168444939282728200002072756009279539666117184217964338784564906305814743666408821665837360847035928110302900502183889804152601796284822075088555458373214718097238266083311569082467014704565761104316848702765035247948562374695751139082020114650464834096379552994513473343546055436579804731166683816856412340278889543296858051962137703524744909588472933788107120685332133558786987015714730583515008426638490982479720100813048003693604819280271012051775282383823503880923372906070402578262226678825412850320677708094657811472445621340950139033462676007671111509528924551787153925487912183304475858138291515178987926707533234689329570184623154942973971320281730623503098593858015416866259264534984216658370522452856766914006973629396659073433816507382783710831272314466974888313151619874210377871435799034004219116752517148629297535559877162759926565866283015447515163276464155523682176724439685703192804368698141178657038240141989040311221153935234700736253176152918347107992549195673159561935431563358490092594940244304817387438739080432484018687187279867129748185763175439325357603303955857528134052940043905759007099353894622923242593325277164681330161418623461338381607992614883305218219841718587860180210488233309818209973735386515980828583083510980088317538406340866748308978129533295359783766220925347691637853291717600258402931375668192878382259249247375971867099609213074056526693816032547640733765684110334361932629216307809543192657631537792626233914380702040086481608456021058827151740049529973584127124096300911682284845365130726149469274421066469174600720005082911823458074986181366855883591225924195444206270123842490629870081676242781645123094055915782249670341712650262462111739389138485966481024446477899578944218190006494590270238347465805299560929406713770433959488522572082097598243404740998667923349492811256402532065490027871489466734433819963527986472267268812043606360803503005220663756849964669790124155828839816978253700351239374165107662700592889591985316221871812358563235997264322330881286988007594573380595518463909051146044801112624784863918476028012426094251374694076515018523344087738834446992880747163400538292469043805274024517536803719155630157507161174553296848719416849308746470227962744166012668096181199063855350133029263151146695832425754358923607967822970518460155447138195964597692854202928514472599196468468548885936418728467465169657591454601411532111461268470251014991639226364752921205011623967473386981681099609510957643443884526502387441843249593083466450655252596640076101511002459099773379773111214083437818765049754769594177123502856326033203581999276743769801864225451193287077953723840844437841574189414767513558413250158841312396612217028192789558887402827712686484023986961675716448669990031947651597391602736102595232678006662011889459519970970304588688214392455888389648818708892324505907689216055261114287936878887737322890646558077081707159871786461570758281857034854352656868250640472817121058093600482776564226591975330771153269341916339027445567803663731940096047059209770693276052219277261292241296974567024070087644256317224165426289818989929756915491595312411626449545317409151342318376594165764023837446312081140920210081421039321144997627821919441479845288075455628774699207870832286177627828662350384942916192581354890875363097745174650399273793163994014319002870416514393526564627297865275651074038644307737096110138764129328552055145511208176611271006938120797508748156105399723056729916137083266153760594725854517970701444374021527856008392427671221113461605521253383871625168370942092122404192210409340679643739674206061559919103799527462289640861430426068128069815707669298743169907717257584344243420808925128450520236904561522280733859113845620871623420262988300448194455329843410507989417104754670935984651644033395122117894911403575349364825965498499111067164541633629333786069640454667619819327029764165070275261078157525009762881635500936021522625290381893184955833118620831453553482447699380838148083811933611712348792147694893654370266681695693582539910706822859980728365039437732608380185733574062433740609136320710134524440188741812297309265605565766743442318403747643896635544258428358621947298215513854708171716946954763469041420808644796366438599972092033469888241701881455290540503320018431289809015315709561964550778582344104473052390856311809256123699080581592795475802596140107728546315993202398909074380402353421427318557672086614562073526909336238532077178785641790304552491513551991549164888531823074358122077776685528793463484780005897135672714211596520318525895791036597187277731612046642814854891556258351510946242505917209049653613910278310087614048350035532424031642209035383291169941074352912104334346382492371537480477959923152413553486271428692545417493146643161229492701742810478984097688953954952909647424612638211490455476044036094952865948271329456298682674315124345838334416471322823232447277338951011593619060153166910526512358415249294567793962924109173146788255247142676171438684094071370425174947675517135020461939302471592719756357243257998214853547809818583937992180741185319164696117748008664573435843912235751566196088951136537138558634954967986400001595531277142118665203882413343846578212128540868486041479148370830891575445940623439524834752413126639802747583831799461377018264629409974217825414437349490657714369158075271092554962963399446294385971619932923794858694378300620759001962701119240086385782342844240895480626945667254953989832184000198168444940704626364023436474989810896851093346754671249783315562299078801777077607704042095829611045094100732248243619413747637900379516983425011090833924833806273712326988282266031136486963657354218555994145562540855143932792001649025392141491474884392734289775184662085844395717241932983218502562069811799100694981071414190993203781516295650545185284445749110164508080650257416457620819845270434787694424566766233848201696885646827601081251678327103881071451725526353627647227719917575738820743716525531030267340560254157028123395089049584916707577047771724341222733779758885806740370264483127081640122198639210321513886495371281524058053121071689558112675056253269888899798747692000033795818287688924893928190883076729045221880646690643652806452518711331117954706698674399363316062829070511768272114885872267685182685804667717393792945098525132422519708070621747451143000854090930357768657834366900770693943868077908521035621137211298426266295661851586923187465105676689381277001430007798088899943296363702421914988812744346226842489619903961442534035522742150342423205116126675235991072914378808862268061452472738619284772752275206518960452621721568868491603878146901426484807049858668790059356840166273684722825830508951607002704414282410401927609910890851522226340958637209721858526845248595296071556101205482559842447818904503408557759983584393831677859799977969595299198063660787911223796985253141700355308469345432069042221127897051852132033536656133160361144257473578477784848626428477224250642494027785156172546592437736998019848089731199510881331202356205632943166719899024301949212014400497184386087089027842777486927126281942284765973599489660809385587589611037333465081048308582168919683655224741199184719622105770967545601937813727246643294185451981094197306702750641955154684166735940648062560981194425850968617908409988317452960799627830813583920994958560146777023851906686597755919087571928991212829153063150431263223015739642176349149890275284301323489840788946871170348694784130872535698911185012445875928422924877597775903264788361282446374377980382968945144047374887827645560905411022806400168805201372042527704345485224823593715717036383163063003469289013877841565235360778632092622679407796058786039978149733193983143349637449328045597346750377044427784092661634966918437367777041825729893797909078381875975710887151679094755152184145727119379932427325041210073561509253640245355589093156464168024049018562389954261434036714952808796949834836545299518845895064703647319832993449524682102332787507086783486600952977537861457756961989620019498911345020710084253972519796439032713759289409941102869397044574392884949182398894620403577413103436641611808277713791421560905971388223710599883059784133005330896768649985956440269848666871995430382864008916504333479721909206535953821114599837608047372093327832864842938116615023573369166646744859344824882655810202710283977667912232633917309424651454591472495291646904991802998317044748906431554262745033058602520646992971067986814704698833652473502547250387861574187097900510192481710582196180273437751528756841753971230429644936430864067923440898321906146779314745868545827518496202070703623745408205030189095664942415892378233583716796454681538698066429500805472959849806286791842980378962127535290029860266212255470695943859184372943223437198264420902332392248447142168201372782237203478050207316936611880196765285940542081345816510801167012885471251560654757280400596112689781740216703816060699706487120111217226393890103425203170108492985449200715670338351851201363400832988326806603078344294886895096927686994997115936592234768187293008116511690818427982188677091381156744726111353886383616847534400369559900051683236287257298439627542786757294856385390696697937309644457470951201268370766656270682117941694437271166884213751843476451739987251087075755201790545668617294528271302251916369952578265148017964813997295890136824782448522454550383904499309475684637129293797947860155643606239113183658651988313742194927236877432678879116991572262458346619989790722330906075040810629592139532702496610714710649616188671516545653802627419596207571358417970812097527020601872085490987853400646338944567375770929509146037818575860172336617906511774964537054600556508131944568193049309769767481639551543295725230235551570625263577027233207969747620164649827337127767003921018060136991936996670961076067164534288513155835828354421562493140102620815016312683496223754440866197785716006365504989512544792865799326061405332568495384839617498889151264163600463418236141639829873718667438391103930591022086248902734149827658319963625320496345342336671989733589749918653920177917209732763150457282634103311578000319291911508250544116950616705681262281705562934629420219258681175096132683686926935377293941522674407670672316505697337892639101149364228105994454900137878141775302578783956937923861177219544845927139851698445344998395666979775273348626032459321907060087915325115999672305221644398936050161837691391248928323984785294134949606818189012896876668985000797759667133349911197674625217397438512615641716132249633312836390837423836796509990193570904479323495880730369661931374669474977472980474520888555252440344265019861992747631478042150336820063125012980406215403289300313514964632741615551990970604071094681265765182467033736246424299917416225374839083148015753465469014639067761479164506422156568830412291746019977044329194240066671840673969911750902842920641395661017795649587602250233266416123933876733975896193722912191067287485634564548475744345850068368884759587154953503997659993675003361702706749318934553401111627981692060835584882999090220710964294728908681053213854769546274180518330606039108770225695325109024135334749210932249354278413733996475529623388090161613890895878260572247541004085960061874757541233833191293702910237037601474369838631465489866075269228781688371471032607837635825019823114571006487735067184764640039033582568683590436035537049542248002065469624437793575501908650179318195045299727012273124627775110175739890866003486343726691884789564025778842604220378979368338858795312849891566560662053998785792336115327073254324402313995227059757108687701399153020034662700124146312335928001317279851315430838579618067803588348235776471297497133546920538160942502101062934403969584300766160336917122559599950474898978280539597665729135092467770111702381590101238956791445299736952162578000292121814319674992221583043410953897299924870408645576053331740918071176269298034707038726586726580141886024811575693850390225245710809449327036075194567335823424260138551567984696911377592495290370699154744605663078394113743132044122955384742448834969941524507669238553349742561225040611891997777453937536328412000262475203251395909318833685928847569673260095769748520220672548617033118083554119455718731651974469632378574453450065498673152834135880757983466571509927397998621796997466724685211787879187581492255482978017507643866910387355917570734898725465557435740797759898498729486142993799824175556685479025810336043111376428778204043725306187444625039419329171114274034986794492418549639030655262261409112292827975169831087197733562802718547450549367025851650714278150072454541275959197939534713169384120922351448885246559898112645799784052704709212148567473925870470058713020386277953420343599727214737131298781340742929082869364540597200611768244200938402437509157759205396878288564211692637853092240835335495735607578308987814009765994733894381087293969592221584687111351921133903900537707055203028834511284676981826864639801589287589764708814020683542621089351465777582815649424398297039277701401555139525752243488650046444515180160105290206920556747501966159732798518283082214108768564984561571686095409593717642725068696357317856587570558109011810941388504883172303883281117515620748420353237917862463966427328219756230727628915329542350423382450816606343283880385831598878785268197700403469964445240722531684148016772772094673469577162373217340842417071108099980452687257411284502624528457765017123035345888041149949914019016388874839999328655461220394451660228488041340097844469957706560330411579537803473999662364718221077237229668450307756353598974631471510907277818213490512719288563562192723795401379927978888316575900295190315644132356096912753337197736594876358543565185718909385472498045248388227335971724550526888912651141069021864979093457422115386929634275342395371497018228050784136576711745453002097593539457063585932263152253325485580902298801529997959805481329649544422857757369175973425803377618056042550311750756931861496642814985922981025650113221666164798047877697519002731480087135625968675053425407014908712431261142645705694685415589730517226231019383619490559837504396380207530946341409839926548416860238445488373874113294060709361279896804232220661787683114982402550287070774195602950692140324569028913269499727746563224713588349654014246442787140427676573301644735744441333088030484287272218466343163694082125339904702432657058573550490091340820206101294624595058080973258676355781998521418779610306083388576375227590731694386344150428701597779774227044125779116372524067208153873514808370583042308081464509943392717225156892255143565153476012411965762131698074004294820757832619440718478583171749624318656445566039075538940069858670727258264843997544901321356685862335666455371255401637062537798574267852761800933008289544233290142182357009681903332236552601484463499644634921078508937777601950760344025993183317953134071320192056881745212296994632102258167529946455722446605305589631643018637696662889802146596256096690082067155449802942072924766399776319895338504037659074809172181393124563325346519726638391080235321139077818930239167119462802643716737369523694327843187429946219144922554329096140427255413743911701811967296028294148697763704362046655082231389977711230090106593796885957777348955708659944807085012618231071811942989302525563280841404899087579750582935572166224086027237341272988916260758793965427983321646650820256718365467491823401311011815349736582456210344264567732374250940106483967723322989046386883525742351092445047568965656247287868034546216236819880985887378937814275090579584192403348219927815610175895990031886120987337656092005632268623832430657492563897571729716864268716657931028271786160449077105518486634999837879516745062378439513889595255253645675515756011189532890524346228977002530204341938519066324544674108591767480664844050030233281218905346081510880693031556344046640541021478599116066925379313818784368677927848157913615614709106306082780133770325987317553995021920797206351552037316180080983101581290536273171636622341686500328961629810438128905831853821922590900417608093146915696906032728117296259280761960505082293294325097278282686279780627280893004112384221277982133164416743227734051907731371530250776173923953418584199724566266999218206796630106032136734071899826515966226057498687578245395853183396626742957275980616479881446329720947981501512171218478261336960876716921670339639197833505530922636143351709939212339358646717713768505101743902826867706904028867575019720131566047608288418664899663126176398901041400354911578168122923835227285735720827935702614735929061157269689483286002560459516497751880621360871358711026811023645783152030913994660906915715076750648012254305784082115816989669217300938259194224165497716850191719153431720220606290078179772636141088931781972426479498375336649943930403322975596976953027923320972428207728729880686733951269185562132646207938616347861723539779455361120513803482487148240491713144925856852645458526792094030559463669416750746386808205324543644005056375216829219110269912987924990966829268186350427498661309948387353125808672910498009754545779636906066066310753787134194256721802694695955543660555493598541466466298398885232370165747524512176018664995334580911715012342273872626605102159536744039820810883807030910784769190646863977826315230210099514172857939546619243259370500360870895966089209055779114273459632342620745209011456212854300775927327570006571718236414800713792360598955310730564719866811991121083577898489166251525254649126298793616352793120847808548219635261938402095986258458490724818998171385075293374256889722087012428120160249933311817183168064840847389953768779938392407738477711586564209664980806124849970759547787928110812644680303423781666210242975884874448629374275633884586732646447638688728753509953367985410683480093878849294035952453756479806954684680974784354950944444235884412756974400314440781834101508093737223768525281561222759274962175337230253321411416219792170825232598822161082622318057055845695464021055080143756325517177754243236635572238363600929324203159210796588653592427221106019161200580923574339922427286151581533092645085004147695837692069742184227315095204463360569108832807725812040437320368085018677989634247931330916431421631760143274310270066171628270066980794097533513499885918944169550503774938028462178962680046993349285480371581313929566074016626620466829431573825350663418594321963463738704613443109648382913296090535215846548880064985686128518422840107716374678921255233466391897896840645895909848092844000674433542594071238333918225401002815446854980568874462981627055847026143108906087465586649635034151825653611876398590437612084239311482760832067850994238403559841281989955186533573976342603457069371133969961609014633975171493639651800945920493791832757379623083477101036039968280623145146372542316339694233553917005511630126826131086315624815142165776218369964550378175898364053772697623769411598635948302753298596268392296154252374918896535023675218579822863673152715170973048509705744395517573702243875673476348992081101629691223877695137088057114580960829564219804482141560699722119953933900062127705715673005741873338232910695196869328339487160705577621507426640167877189525604068716479088022528389450819640063345644828260125212981043206987311542745286558403453962887406932413461677633928154841537126163634189925736205506827020061047536961888542965734803780393783435121350025701512620403039125780575401707501973870070933476685783936434271268660846977947638598480747234322599988505418259710398006658753333497105320007645953625353693943483234029939145994268771317053382550073939983558195619748537483754832310236550233478413974375289179220614374837034654548728574988628860833404300453453797303292338958644037337560422896753816238342237015135718296792598230695946140077242216089128220325651907105298787031627059288037332263830249975037313171784055517027062278586941593184652932155447274218669908802637762375576018895241719204866496618902667710098324687557770178413915684907509413099693077295000204124765185194536573246514613959673233171388367611371382779284175765857801577733873215449219780299609079015128690559998894733484136702263374246474611251185734625167570181196609843956670516071078791553035730248635517823108220570078214503695075598319172692735024317586123403255736980913405741129992372706837984151621202409207221591566225096522399611805167942895937779447162365956262153047536872261212152023782565568803426897712145239241556493799878242234948647192102104651253071852957838064336691337698655764433678793197519378204729753769092723069928532703988736463099318793598546667999704719103017676932939778116803216015825872208079801062916848001561694018506645988915213807696881671435986332598875519334859619512190959574998550477742703942615373687088297542975089173722679397603523494297043236568251727297393801802888531213375212329488389707436743583461894448178120340437595102887589488167713734001583650462852625489313459541490942878459772232433903471411878032311450870411361268962262305503139659809861575902616389892583102599789223521501196738075832778551984668597428263377859938945903001214440217344338599288810026835715931886662618654230168295520534807388505548900259434872843196399655322206548785970088994518880269598258364017195384753225891836840205793447059203054410037783965467708024718590090224572648109029192278171335805143375699083714644725507163210019666838612130252271217243810706178788061655419623585630761165221319929155851905624274991633497808627709202153525418003115470226893836815535951283169927810465885800535304955714517067255803035240930273711176884449069424453027334710743406260439759304357291050152695173322936882610170222370867840603009242485795723322159435405280345287342235348858488383849785755063245931201229675269402961393749538718209366119098742088867899883991741118708298900032631461142648437394088912449056229549371829182779383482561792177020169901829222646722549232831634065232385390659957986880443933669840962193514655808276745644949485330231552412032216845151355649454133698491282448026334112321220310022681965646634618982817456886452315650026747716780344444020256780319785722956643577970404760460990970459274983394702937226986838370056880071370975860311503149728188037647665807131273404230080962669170319786510120214868184635515191429067853432303169058868663699632355876216461618782113439876182675548428832415581411866301015180464924980961534899084783281788065836953733161543348050665176343879513249968681485956899518375314755968590246479432174895074983881463032553534016523153819448855576461536452066617975912000917761349390422384202769154852080811413376897979159674610562013760535673784614510385987024283567071941501974922871219796485950332870458168256132151163564347114462904554741188966233929287347475686030042693155341878890934850999665427317713562190856257376670190373177452502132185396864969504998773100783135853246953613930081415189221152097377478924235330113386501699606583027250153301914809027983956376413610313760184515248447473476782999504754268237687556270155905675113323377616394620127350851564106847790772937320454764972541217766925555729958914630230241373422139042911356253044502618943570074770763124014218044538263446665915646549921628113525111069031454679256140019886151149237539442197551124749965060308483720497469728144373697213812577689236286027749205486856521187687002107522651272711433946064417621886518252935631823259642706985855928769502040903038571440362024619164694096218410396441297978057139747596317305082839058375972967056069436644502947053784708151737323422609578940707240575036723652092735059968497816503408190114397047699689444837023849187296912240889576320495504258906897095578436658090877635311232743252083339082871332969010251632298339134874978034752860124398642885653010903433650722608811396416274472937137553019580872238425292530639723250499736403425190488793775826535840819801952397780954420975756599948795895795989565632321869312477593152770670474103669896538533797379397103099132325433484509143315530444763005944875501090638733808525282029595496434087334244512758010075129480920388888494670106697199024906646315381308298748721541853389095313873581776563404906600848990207533761972840802771004288441728885824779998195437654029613486026658079090035759364721611728037133647785920638926887311715826529335072601486946484267469361000575929323893161124772390416786987718891888268330581529408311916263128480824182160371759255605663912969412366504771554775128180473360072947152174527661759374174253194717086627894229232006193302241273646993548437868205301274626762591711464943859064668265122846169656573356783872956281554718445105022179958410417229714551828907496020317474096187831209956579828243510697975907044795338643413427027502424078383786418206281902312012729801784392606966274830928357369865855148736931423153652850091363977658995222477094621362077927571360996106698199919605472840345390184661464999317460258756243975010094815129610213689266262286328020152975367767269036567206960618487226878892281308876043710078537245781750567803653510136391477475028070202924954971887234930488285171158915321987908052441186450977106752944917796876251542551297551386162135579870439172179882457947906313819247284502033595500825670609641627771549221682876742829944854281625018083799478210806477023134631288741563489129353092991074996569261393960266947040808034004395116065545422305876512109347652893669417812693037299864498741809217904754027111338150875987449060873619559206546021852864088703323779361558174104620124079099893190262398444459962244209575232811030833468792098358349639293011671015421721136391462994107767059927962815736837461055504162299318041553823602883591651902663079260894240917295151386657568242403986715859800292232773087022655921586090831249576059964250271152206339077106462884391563746326402517785980079089479256045093165094343763270711218722776756721245198234186913051410350427237779236308627548247358036563962485652380808400218626808750848260518650750530089809942387691203470170539014002217964212935542101559750050932117579537807443569848083569825371030439479054019952977548740495771768123102785470773265975472847034226291461999851133093167529619530483069099510886960832443596455452391041733817052507154763659439440439603879977264260182654880504277395007972632578484806071776412160381219293952635663561120012587245975406388838460350458716891113108022973264346222428498595945985837736279754064129865105964219516473166519283601365124040085545295674358205410167899872394661976964204852449207709761670793995421672706313889859516214792424076321968499265132477536967410257662604722601361984048148654998551902773850355372965382251442267668391183874298507658903794063616981237297358398987774359582970725442570458276886402071041289374088592033235684704251930980336999722916853426603735600532934810623951288163693657873107189754504394606991643882479243100500155172602780050490810292594748602350805299319172523561237069571133295535312693555021252559629089968497272053688421659107665233631329253209912862351390311759905523915974406545239581809966468814184626315054598068126129511076948331475238931838522695090712744713811741460036377796031506303250441791127366360352389976109582968024780245252164642170890545872374006196869229785564336694692644294429247488311040834903635331253989497812953657538632629025914027005812692253459258601528331987033034493876529171037593923566053254405556279939820629044414369189510183333027205649146999966000516383960673727309619116688863526414578154204223965825701487732130388316154060569231245852208091178182127755856966145416711731787684661947797489685135558518082068871690847240867358127277517374792778903003923656294132663272059745840208256375854395037338970749353343486424496492003398807781442013912324083669162079244941606538109832397733441629672723428266865692671554084932013725503532498678624526470864535372466871480372696951183088381343968452399424130913488911725844343945907529911137563183951332274708579354977618889838623268856708139630478059061451394586206867446644091395939915562858066538226868032516220172882148186409876303094240039120620481448055758563970758687539434078319638952474184225384860505300807202679648805695230671480898111040556653192209201748188036353716404785956237656297964752994877790692729070072455558236401300394609131018508260415187215516348336893640922630179061967351787580533222582411041738198536310837540680978101389860982318101594130604591811116975811053644339167921451610879363912168309275441963363273979266743928428125915094903601798735644248708914495361792900113644169509904774968749264522988426347067028101787912677122318590311706595322190705018923737648789228404624150602524639435813794589367723703052549874548855491408121143601442108705396730394645190300217963173242843992431270489129477243686321688940864696114221318050477165717419163643364580067700445205819620547774056820342693498289139086228198545964160775891599724603487613317830433704334515028951639583661304930279543805299990560366712751683026671488396439933693439829877767560110457486785545395485943167896303124812347576193332332435602203818855442728022911184489148178375523393966562093844775713917461246915487106180101281771208098744870091788336943817745973204288075546050015019383774424290463853318801028805644494501272816283580520337249864087445140866026864185704379875796432065130788533999758454364909888343456447215012308637977088994762958779677638213122877847016456443509937117707426164569015806621600475560599730534301482135355083424725351589765896478672527532680316934555289284385807045307594485217663779752387029142869683360669431983933883534417451205594331769220148394862222556664120458759983106428501769713724095170948067205860411720282391004691037462580426709908534513489809048846399402502295112951109008261543630930542889320905818280246582006304096206129795010932849472783427698120701387026633561835327250962733598755819324748949938184796683814984387387246052707519348394763403120698874204704281728268889746628054478721509623480480849494041979714372944459649876501546747825221611543660175236422078404829672379977221115310945635360701280543417225354893616749053872894261164464312547472513382820276758540516290089833300417841723672518981781950737580381242824353015029655147054021555369777855735055605941943063500077715949711848547532788556758383635216162295410693570652306731926781442754108286798308628253240202061433486404710760052933452487831618470636997914451544679498570519801649299638488205367002488480625285743449876181846886864143533471745553321522047817689620397703365031629095465270807969945726788173449947844994456986999884689256705584805830844104464159613910414556033939560736784340436707464132546765672397461374318720501380893033779326890513533939555653579034782733904823488911719493469902551987705870205364059873598992457901409063596137783680920970863237882516826296318512939464933347248401797553372830364290717967081692943389819606397274220636711629126279042893038295538851966967885404478141423990094121953023366958379670225338708504944316076399995943998362823463724259702080676496716978621284026058942954781367185963734623622192220424389163915228927808499875460130405457544690743035641781294422926114420298004421607181413916398738928059279330212609786444159512797057963250131426251274905196764319824485103969517588450188101796562963428894407205131775170146880822490868215726176819028960055146743072205201756547773830366050443993450330078989647276324931868471748586872177682500460701057875487700470381513510205570906947592295360240902577565818128482642723777556618337903136900999126357157006006065239076787806086363400745138790739860146950887717477181789538352367985165045415818838715852261638329504575481068326161565226265505550553057392817105422829249233903956903464255153434046223175871862963715444248109741503871339940713531497988548856516707591856539221497817051445702025037123943047363457712322753636222055346023516219768099849404308635748831702098033618511451478479966962223116410779903997864217586895063113675078264465902166757182208374004715143512687598635959466588058551475456124487536696851724259215150059844727582992903354659119978465934892318685461091892375512407572826824144722332240807877188965766788300919121125908749209855372622957367239693878152714500193684363793258271237270546964411531642577223854891491154551709598965298668794449269244580155785100701925797684297590826092869592283199981144421705503944342134622697678695092375477124007402668653169892824328107285450840233387245396993013365661782570038834230525297256451986313791332616455455294825709123184989377294114771755071572617428500723061915974900574741122537905858886286250953916399145373151943388393379492634200080647117097505085063443599376249405699484817730478570537873211486403513979262655346890684456641363810029904076904242120029703943995569389616643505203872848671519603249185455987374420939597114442909292018100581156178481038287401357817994088116037944924777479095182298853083321418345628855639524797908874786727984685468929800479908332969785899617340880621879147650646671985628286565762477534335340274946896641110665177151950373546406831718815004244082284020755533780075585041987874772944289476867460050246107631667164205890531708582104044670235083737530118780952598580393558647659662953530000042551202231558577480392294034688723386230338594726060989858968694556531986639899334069461386841745103377368302929691028631350823612575102548229625680774314516070569903768575288653829060097893975484044187541292253998074836680763160772562214989311074884930704236843972025546509420895318271633971117022069576948510547464566718618586881601586190378577437132428992847289069311883006280479893970958978470258555449135558270302374236271499826378296225687586312712073174032310779060988737826030849580931373570926009536324274872512723287541289268066064817248597951661957800556780557451854175232893434949387841577756046098138078204839970071249388267209389051792454258435331959037108412322846450023597472709326848328460431079777146654603073424341287594825476007224391079738682150588839309070377283485986867988986067722255279930991792226528898956113623400796919759785658000030081477300635961237387195278765356209846612572922193217216435245827166315540566213113625286207729039200998038343029327641804381438400390548463018148997838360571799100904998044707769051066583932964889574660504277084810068211488876555299420156295050194147882491011043539002125768258983541301356902485869447436906960426395039579831037143742022739958913411637774042398093420390014431194295664069959146375570960930320322360615197827348622309781069218296345953410725071182762886593282228563322192448332214539260211687513703669090037526833698187673470751678349864368294162444258090642710838235666306397032817740813886247636628552962839933888331382892511162276966102649288630912676276797447443800616542124091092621737264419493920072703394459295138225054143598808928601554304021101705152111564356488800502129686200116605078942609658535333851553297494830138986378220262451297914096251979237828318597165404497571773839634207156259745390424365167723927016250469564509083022565433307798487184697626959624673221716133659231354069010799501710988042133021048564196936383019254033831681651246826134053061408614150632423262668594760719028528893056481045036501435367871329315956015925902102586212752601188467460648587546949712763100012666494043768404494158206743395689955122493390045160180510138732613108399678359714258771428418125048299142528346623298365062457305468253724886804762285308705650663494269561102752208304427374687087523416611549866858346824733166545558804628209832904861573852768670507061468620778192344846784017229460330765328872566747105806271287192736589931312437466825932779126233744390693548193483004226759844581356460391695439183592853361928466209653740438837706963641830399361719634154770704368859200237131557026666745352921881897357069555840813167782632288653837954109204087530591267118674265313147367245319117303459691145229434861256563902054665597627373829338123052839896401496604789980934431625508950251572540604758337563003895207539333248127523193595192109017313658521208756924379073268917680216254691318324171358581025621328293147065570252788010074029186480256803937511679939857475495401571314519225614896168598890710659274303663122623466707727890775489913141829324421000163753352070486853761095649928818578470444681285603408944308018633604278864734067456184587285800110147754828379479239045571786183427379449830919027871735403956807702678274426851731069405351714065151320749946806389170902917822951458513525124634462391716500567997595312107174517331740665983131126913712712473770340482812117913056415236062748451438861785495583701586328872306178621894281593372539756984516236620510233212244226111604343050300267677141391709738257186192678740069779050050979207519982584946080482200329647472576322576402927924381295429626088548109750856924783390968352744025673560138411898617253602672315729159510693426204274620930881081034245977509805707354128985401190842584886442131303878595036432400626687427191294159843708168006698266375891475011288037212679604082902103530373026961236067029534487508314195394226558055111245643907049164488113207262228048338883158892210849934779156484577864478666678485777514815982586785961767478444965665395692219560173623146074863428855802385455659962202940428024476436527528766501020068200416742114087033174998699072752274926537530591512424547041628911983502295606826420316971587588697338292751940236947734728844927319549366533189667705445761012476905438404935855316032039393926422352269742364086430419681583870369906006782687828071461396072303026133768742194932351109021349111512296021097699973039848671440340277722671215752105137293397773457178437174713090641099365477816858194046640483390085348455251746854517853745968876750019335621785554725511538537760466516732924762410758406302573268246027774890500390940245716467884153691277561398737719814753961761542310557932759261937545639298277315419270671225259584490285143646832237239781684799744409680987758946090045320862781750929721873205285684172029715408241349298909990671122161908295775690022873153523581591764275654145831726397906841390791011859266596599569497632499456503646381076791802186911661361516144334194109167813483573929358293434632642269021640627915143374134031468863901597383303037189207638959708059746665542965913447168919748299905076437296462307993148344096461216660911964583054617013724557311450220462106895740424500193440013221909332110849295732636015497944358924627752537060772263128663416955158590741477014728574112729870587244351110292884221655065233125278118079069695413142483478606287254644976665992209606091428048880904837192061315903984866192916379869239969646645953959686906275069006891826390061768935811814653743312829955795732968121048679714068292387826915279487742943383827363434092111968582769324074956243151049666442351700146978177646152588136020379617580966001317315569336646701831489022431537319064222620948274204075720954455757150345592585447494631964448290772523550908133089520489497593724487992135415254939043850288674895177791696234101307922861663248262527552652054852437920241616265966914534546141011971559056789506046775444418637142512863192344679510648062094348846988315988649058679298573089172233706197192670928405743841487059767297617448158445023968739781263118555549461558324573228453098434674628330609713550224428921884437341271310025662959705271521119415601514147082584912493654212333250371999474905834219548413388902806062803446583107378750343705722536889458216548023894733783642791224886585873396167573590262635976591581500111005380366196792469771427086978737927573810305077307056307574647274648927815842614524886833802047255138173893419880026833759551800369680613124228422838091520212880394160012515764805871651432940261913234580006524328449947536679720883682826073125136693197254483431210220456378264718030600781315650144389360298203039872004944836470201397621539126589833697478485152486130497390159596883561938450089125304932500297647632854353466702357973747696121543391331965694723999279270770280049316978030136198957070871899291295997176629939798720559089675029413225810609767523162446517854146908451196306846970983890201763181688756072184218260694052718580665396714305030694274830693310802301420073993655627770930526202862254212556072636625562913424548340491391978256957978030350654058591007524763354432029632139235938918992653227901155854451069295255312499590457668191660152554392876363824994150715251976391297344507756824747490224551003003524597784740731511658758869407787830176419647006865050063628234118393253695225750640382187951897326392723974982510955528365046381456876915943642561384565095094476843525925187423465169565846584631392139992797823768904545362331684614735541317639114128434503322659455958346208904931147630866516739092329466466393207565532805952668497436166456175260650193994933661140767021662317895628699447315548173585631253695625429245182595196096203782181064603760331355453226345459806059134888348865659435004186504676632198968873118261684451378885518748178032682720835170833468138460120287851273762996139871758734345029943398219272435941254017824411528301170453620939708386860326815809786361629673352174290902475947120388586888274583971697414490070389229429897813132099804856411010954240797843250097595020348587026614867872150994726959541288004076165450134191873859369052484386021363795306778454204388783411584846420738769959495598254752427307444160973641570115796871364556744119795159122410634431586724851934398488418521144734728008708267998622592549166068261760530145732001549053278137992271647380765745706754427847735692509589129213566027968292197237201661064730050985981414590999748798121000518986283796720805860582941539564824456663901203861497812122316009180636706817289282547517197779269540921844925127232182202322594040182797352993520754882791819184179738284344917233938494367789832308853786039123970189637221392559387506039937477463011188357709409303397684656243039034870076007508035848886141440969385251243758093941783620086387320076067679263007023920550646559641592515003943462430251908991834573200996517169824341296496744967884806160835523806453122595027448128370096999964151488482414772526797111947351758533853126657649849641103060000531072022496005945140949033616857488674529373365213169101144517718349603430463713553007307962598194030744173442442867898851200835116679882875200710668798489517688045165985540414677196892049668904701218374418526083417916975536434398595501680765233916486391340490198856166871008117741227599500945326354450089941982594334518111856540442584405595726414751511713997053615251214517915948310691247118580352003165951871259886852713336308024948420799784768614185332763570793167151468797775863525776133881334953450269922829055685584871520671180917594319545848408080012672250718405257843752485089017676591471659770799391078369361549662332401489845084239525337305921182523180690188716263462954656039364071709661991969213173225786681154057281642369052083712560092598836591695391680993997967986096497413976867840042150008305970296847206427984509664585434509375758553476365835707251991015168734014210730759248325363702902269296969198809728217076899157434153453480360390838805245527409147675475314939053681041733448372042975528274719884226249184373422092903683641086858294192964547453490971124543385396579840501536026085015869950182504192299635560720499341183018845026066781600250655024281220579984102511817551541180276570395628301439759279053603793885023534724369909785211311419023284758356669659488714866966175713137376547200246922786445295804575455159964115195406713848365018181107381620488316215247343031522487928147064480439703891483833834244375167716471252543382604527959477703289008127542523764144410913789832639749717263249258381265570540547377405492303056066752970112435377144283488746836951028037821484042614837555244067054360444655735216648204643032903033749929080439534010391095862113331206890777683944755172714685505761765680227643495973898908533983927056444333176413945728572752967397555061713340673514973700673803799139087131212099702860835490700489596786744199108559105726042174313771957390963993054932380152243484743559926920129282453952540182581785929801021810268120688942264378915707821013632465512790819229845660731638724898038381273158047334651975199368081842805723739534246345474690014044101718935873918392926326942319066561764934458479023487734585430835227241710186817268381304261915284246230668201134997624333731529899650293748910414393965826489899957930272918990118958119856427150466028272777425970503317927592443094246268199040828150518444000879445733240530366711135052950420723739769831304003117252431409420964881090502750166925471958680183022563033590752042527269501943035348035768851990927990034210980163353568682514608225344122284674188116982463606185956730548291438792377795890430250439664898026219017799864001223349596211791570450401133287322804406170868896710388249938345742041544374384816562430775915463417640576528965346548286188183074878574189858133271669909809057423106201972532829081606005344935881763679458081930526379071256670702665175952355436290091678684858815791859120978885637167024707397676814855258758895855562320540227412416676462044015842728186228550738788192780061553050592732227508098833629748612342861576305661019690542001849670441880744239308880656947551067249079827661877805331458389965658434024656531030968929622494939424913811560425582453167282250735201763170538704841530582190836455920056349995874623719974054243742371172489044322615510976287369764707570788272088328193171495351838775365569553908142289127138001432130937313118675685303933606531964273068327025026232582424015946128282317692733921420069608180861965108181181278863050006798281297385884491864902674978728780184476072049411577037767241503431874433066064834237369521760835740999853016236861096607955268226867778135921981407561925561359407493711359970994168439566011841952286241079310783137573553704017916484846982975685383610205758685075427448040293441945890010983053145313441840848043460893415838925294670079984434430964727189288991255948930263630359687308414840608988414918967174378290855140671666798658267220848224311615690116074755738308159942858175523939924969371918312201617800368591659002796276644542575304265199287570961709376608870726318008474137735142310928597565129963901414234190454976173151805757828769403878041781514336660976843253555074342547116397318475202978518919302983816228806145611357657981760938600984733174937468625821146669446088237437356917697151549116071054443535889468767529403250924568480484684368662314875339079632914908821091766601806295482637173343971413110713004812133990514104747629331390354814911470813758131668701146771198230272681891542060678327148419318033416911899202402469610137400608004260426513227644403312805048909346351568967089097304694974786680115562379779109038995572076235537545850035185528581796388286828215706300617859354352946395629172052567930509001202788826591050545314982099788627599354466363536596108610486897535094294158860335788979251829492783350333058144307118334965698208880881079901822394380067865353235623879037520777796705244361280379107736132464904447649371052264780365596601732184800749307250684299446811058596715088671209911278621362046682847441927982126650829366879860435614763291794180554316261700818039186830397042285761276823672823425474296679973641878958529577044179318897533210647589360665505496244086412683580179728270412331776838801001390644658699515462531502451713927692657451079610575128736255258893719811582052108806687692507705816570170880929025161996547791706162956981712829492595415747743114795441566934636672723120593473499276862787086936863449342051695912406627062466103880330263815630409597188206082929162813867248777199493698208851495461047464165137760546053179763925929829799757427619279171921491231327669306140549750565710286157273001654592558025178266062049993810437034285364048362629013462651795685239973504097429394585964042931562334732423262947381191571960432093431340138497853280984355431061807064070730572433180317347485657696342220869019684402714974997309567254280564730233266716318246079152074907187382030390842286993769779579828192455496546262883275105412539523256773481263114159001990576593392496102099051320039356521033579765548910696528353306788704915402684418270757262166715064369526182325865060350258964636484797695402152085057523500286405524087914846981291251821105363109057206798118715537496859643235683264307704179583969061691853450466816003096819800884351986761237422499949677989349343320349538385548875095881962158210824197196423412917858901215209607234154271159382942316330644801425321210373749483243331550506937373431426313224267469632392323143462300546639896533923588460951784962963895708775978758285913322377857472769778788099467300537203630087314717070141659196720656528482108301106595036905920768779760506708716112337096167194267845220435638674808259435806838792959987451031270895656563511846310878133431092884082607863640881602479394644345199561600944241513039347573688682136818595567506553226689517400698427427904861325313311857362357852558791803450339074106323826986355229537646781212786194154131949960633714059694676147123841449847407875202437058215798173866976480768584800564346965827364946503505134290361126478981863169060716223116046914552882584637743792017673392988564630545917916838753414483943538087217315150111374984457997305205288336943258489196017307029921522972015416871271202940120176513699427051120858533462155885122067302053871596064082826388705164141231554611502716111031176573665225653654786897887403363762666119746070247081324572953731110292224349551973997324442604505300409540475656429438381517936699646771970220120851334895241965102389254781585204056366510363086642592556788173335608193456247543535412860490790499461288923884266198147734870620803608079752802428648536923796622411515614107177087911978897531824319909906951835861987606800634011518742130319190571795895876755863291328607805197207990843296433396720015531675796940280243141735578894045444461728512604338686177117380771796652324837247712031386305790517059070805103214917472017530151351032509185372681810262712522167680069353123555989730626301072917379942445088953639587652506468780982769587584516113696784413347418554819546244281478664026780951912772123598412642382310681217721265426541875507146291857762753702297323080056627629744309482504936102926178591479141621750008578585467080902790330475992995100352037215370823088116190424216037144066463540020658408645746377693225429040034082492333705163592266636110870513777976620468207720255456551951412082771194191567932344149303135267283681694826405855047265112495063658241180216747396094393473345292372158208500839639137515671056706354640762808253500101085876333686012279606399821746837102145139785807086496719218803364573394404955641522481756087002053180125849623015905316461566011911282198077322302398741424129418575169567363739454175598484077127101443441715244589354500541337649164145493518300400920388822481690529545851076154757982634010103854520544555360826970851743848918117954016282687657622865869646447146799306413037760015026362943010268192098335167508411566686634108036540027091598529374243806994638144970793712911076540252260103514095676617239223524792600274263771233169708131753250128612878439290068457863736571117820998059904266866251528339801608635185129662730744196584550589099414468898335935809767296871785687479027953429063203912025683197037447798065770152671892719078384705225208303551049079698819408049362080551765521863553355244157601519709089266762743607477224368476214204201266538124274131677002914184827707343785831970396310795985919818468773987273679324652552103700632020032379110581615379145273494740594353297989158938287841640760325866133435649701825047679516003796511399090023367597322830104213865448120972295289131253942502018258459071896263127943462796832981898893322303819875656416813493839577080200747138657235134872942300358459931324158171527115889720088057140279081435790039726777544108565093797367736988706338904387583292690466944223373479935873187383153536084735175795397223594353166951660144919393688742380324943605623071406785447473936899960700800187625445748257002824889806050061822643567642214530348145946469265332593418613021615090641793019095856633023545793522090137082226968367928908749108117147721450071775176931516892690248515620240407850419450744233819427841993059740697443746083053878218584776081103956981945719787958233450016399266946123106990244050336792386408977684912556710219536303190010060046279184424192360970350324069227781138494676582988216633676008400482178861909666764815768155670732398138304672882155239726342419446494773289010080309520052310702066371167537067146572722156663201653886238556755954993237740321795984023700539475100635048765874734622799695258581513614469388744767664872024089162537169947211193853545085964389276097368521385409150032429296372350251880601206314516546493178219525977009073634064757211836408448125879187183160329655254776292247915894117097232010901292892443979385229226562660717748098398674110257532357852645079910602113237630877370059527185049313930022922501515043408776874951476257160983194099720429723373140190781270777818298709254596001723525955264436187983731319345975372301266433091319892441498332853691180682989581215191086852123488820636142556221085275684387351915979348262523710932134241662101037111646363598600532671373000671646611582170871373921506665383154551818011143153382917005959956080516015541393305339698340539178501689426503485674799224784758306480978592944379521568771508542574200545682371742082919481336682989817161266760475349355714108328317203001186803620300984817681301713112828670510147888917862171430813640494329448966824865474745611456827433845826593751172279654044338018450633275281330240689707982377630701438426501988595307164511693514771430691814901459144277662062163878430933111984144703186497898439577167643729811850238483974884792210964212892228926446709747506954008296435116066288912848481585358652607760886356966709329914125603805963524909575411867550087908625176386101496976229894957541405687395358551913758218604285839324268227846226674476201357541023589720132546625644513378634227600554207330994551111905081210991307157081388837794846433357233625986627665659080345558908757271001792131071950433406636245961500561089265139326368921356266538709061429942819482496346332318042719106473878003575882159021554437919569777862972001227683379913615331136591514559190099327457768874287063602071520764168007370333629406588848168265612466810506199453858693417527438671392037862746325443844746773088238643710461167372351969713864704038366666581442706383872918921968044027940824985308584905983150583931976219460842152514898910723053692052028625848843964207359549305730659788511825640233570341316791213729987472804884678283553818735249873318611885615576199692078923338549694437241452716564642964840444618964108452836354719031593913638511526524451601729315326628927975532331350745153572455723025420543416338026454533389521309657802844165352206852866805047768653123611502104441336093502058957315233913720137290327716287314575893934331734796232924280398553510166352802102696330848496671664739595705513778043022866322051990724192615463655107233482244872234425825993765878718628614247006559990043087847834881576216795560647686813614013751988268671615509108862761772859924846293557083053176670798436195568233143774913844727753548644681058074702133482296236090173272112669080462568467032514942203369075625830773215139354464616884957882095127576859044443193006220052272895951113258701445630376397037732441517859404194333079947647330494215575257645568810108142381038671353291113873136081826736762850240953130634623402605426669295374977403840261444177574699664635954159463945863135110475247910530532548506967483929518774952853108154455381362897298545749519257990994058862463261751753878468880175208488252913890890902817856634942147882623836497764891494221496312428792054350190171765219194974092517701455690249403259814711086671652851637569377090937794955496247866004502029484311580803884487660172612634241039073329301773006698624852009991838767821580219514253749446951906736617742734587572102861230376887113623743125659018458326613046905152786419704417373138415973790599713070884514835775020444277466293237122664394676061283419490320066088125195016958701739954419236547524482819537297881378575040381218617565651841073921562905106679387392938309978041819282662271608806695426752585423888742836826852595390100928523148762514998028357613651465524965893834464287547027661124946074263463583480535830516356697638947696404712687009173233258185141574198240945160040768185823453842569372721298646542207390684855971171337734766366412671338545856877305370880315292668180035560534087684972121443946929372712229777762058589225352095649505297047107466223679305414382852934685201666809265274655344826713147189467814908695183382661897483211517453357170970801662455494455349069423476004335854209100999755775465612748242231954569642787538165588109749392709680420104224796392463280516970703358808878057636061647952274197659860533776990934527311932298523752317795101532377443944356765352943344574586062013029451009046791452385977769742579264369457363083309586739843441797910537366559953553885295440178016656326786861459273271989653498765598085392232133512700723735678299644747913829791898118783037228008138321822801885344158351933891762626045546377137523428958824408159474260829352505106026591711267913833105964618706971010951093400480071241455066931717717261994453243160584304510863457549790203924236824746999007251734208456972401320410830098541551900205837057112622357688226395267322895721477468551604002994987088053950929175129345533817353252932614460838316756503402762468298896842882483314890724573283795291475853333988019630562096527041254708572688242166963061905537110419967871296218579860791530962138347839594408521103451668876632987049169966180336483191845535247289878049484410178843193965616533040277493950148651885863647446789568760115933423311598405897605739537130299810170857967681006131239880717346749971883283089692640157425573377647595458967782715814009522910827015107872479903905859838108880996451121154526768452015212484173597994943479999967032359222995820516033429015711146715773672003456450938274370420004956278763413530792968526686210730863433098301413419283262974512380086628654004673399399491217674203892137389754730868353060667775670724077142046875504365113547224810219703146035853779914968849351811258370866590320863205895057028233621865359151694303047758314404629765587384159310055767840070506183537462713671828568223017106905309362504417229373012431696912249738731059007835804370536978425287572976556514491992743635656914445593201389504467587279766204000223707163483922770615176092883905512125934710213557550545722350512200896638246572910773399053053860215978789142176003030973213742455892808431954222328246141929477441734768014685836671653397415886446918292797611795667352174273181840273576037347469884115782629784314823366447041493496935033223565462765114454898758030583403389981108932906054992691808223035452093688390411113966709555064643635810358232865536952369809038594404638057515441484426804019523787862612198902047559462053380641356892618557840035626525617110017600826008238573019389791398172135236347098187787051742759091786691665652995987188772225662876729388796925945844605660582026563040135988054764137692533727767108862981807421397599308554879544385727219895431111747658236469142135597922021929026639303515556317753112563373560560628732059934141930821585330109188525865903839678589682228280350272968070314935807716470547569445644739701853662986198539414418472398603219142671240724514340262718918935258485265977279706785347923680728934655639474116641087530787764783578323888085141559603871903569901634716885694660966845759927099452180788569310788636544424427189522962277265429931498978687008843519966636466056734652419124305642967933426539887545849368365059555137437251923261522186939541870542260130342116962277702459388523751163121879541215565663239204007579151416429260279711157522307629256694030824743530440530387217252161824109070445817746912032808616967532950894581041823203693091176783680494399917118034930439432958042600898794093988719334249226309880270335634258014453034090991943089531523798274681718804902546804790337400510345471509103759535128260434978217546414622211866086981942832268175774420914171713659174879546812409859960245632862461804995498785389271837071947297283033133333030270511054831767181268786881240126523873961646015322704484509935002194112622508665012159451947262584224981750298385640970285854999415237070007795596776647422732511125529820260451160986228830928638638952294490655795252777347340203189337850234811617761562630344795445806968559558655046049775432622647846223216060149198136861910640752972540955979911242486538169569003550791808674003212186689341339310700080946743883434283380710187901037111428201954103440255648723809944443550966309784051241186007236371023940860196350853801913242690284671266016586998934670652501903956730345031323219285358243826959088951063101139020247861081412307980096392830617696017998416682154662331544193056611064782519461030105719168643892711908208222307571083613225839408302701932081240422137666033420487071215959410362770578769609139998261398037251675713514950008617860434131615233400640198735720183088218513469207221731374515465915190776117475322603206131993024295589784690522929179412441575721443415716153316281823396166444854823007100444895762879663790427560647062022724698647090247048786031417789793421425739775243747998655206439743798508706300872142914090465697037306726205826092440155810615795242887178232772228333830516493220906528586982019213136462771596408864344856174660685767340856847551359971856880169108990306637153108722398008259924592676401432864635060855828133336744251203068829045757510767709698225117624567710786167051373972936838743466688470881372951997822130572231682778022689103677069784966001688922031184685515013826879583842649464777308288332423187812104741990836074027630842364033219787587863289798981869752033204761419762827183606257927250475050654056035404271748019139439074232373930460539009295526249598814826391065047984574857374013541515134572940585873434641152097166048533967585025461845809066567344043105121541121822811985607403872637898982917495053383406804726326478604266869295376721062425420917529485180382591254635414187635564974056723770457468828296169515337987591653503847926157727498956839930671219240902198950892149915137252178087353621473539023315171064436353122918423300028417747243459791874863872706346773093857015309260843208621700434421324038583059685974246683472250264400078805649296250922722760949366581752419071082935730291156667885604056592140625993378495705076225425813784005044739770845896956765315760644161290306209749683408270438937326437715240025232785937577201924702638872376765572985471134128795593643346203318950940218610875276139784225417218203711193698106158725993887023738233630475837702626193133196426564875468254247481886619839944588037927721966391708262979863257040135901001049409684967672930736894498003365997771968581291504979850314843305042950391749004262586604107766387054030794909887839022616863348019293497585223831190986911660033005013406617898806354465010764869759912249391047269711364046154456418572091992096804433944317022355553048245553554892363515320086850340596500818841912028227022800941880423692454282312431939624268164221956447179757056458498444066492559555265515302016548799714286150159073228588684535149424948689050554861308830886096729576975491847022642341772816124406439713518495258306053302050405404276901347450289725176196444293487477531990208989309292285629890360605124176630225398567725733015366143090196521442709763753591224434294273854120795885946452402294038724140227703911817452742684193340645912853245746501106370418537320910151978142562037776530534793737695257012548762259414394944743932287033070619432463261922256160063355860183735566595295241039808572280872216288093015287792989492483923639400829556398038774698167116244832674028895029354012327100664605287291117338666575866871134851670395681268739148758754728250161272380660980227828926883219300226318501198825952716422501899301991237118904174263417023443914477046247428082745817193913941310923064256037353218975304779285212884116672795698349736017762435595001081772294090523531774742985564231470145231059249633208182459664205591980737525208720003239884055318730044824900014444182870927931428893413902566324399640717877797280073782110576547688377925706669195081479462743128767408108637085517291844343308287396954920731483423213448755441207125251571747701375139201348307909261060183537874218338441799621132339138155248736479879279650974630446687811568508002562374422928027376588138232590147802593694513435539243917097828487876708446387802337587791356665888195231508845592955613525714024935405928489457757695501905600455767400475531745797864969707745579896522450685811991243466135115723740155211388067848994288845620464137840629443203343986016719667503588548023813875633996848254848461097460576395747009198271123387642468689937942903233822443411343193529681121692210326730995174275614034553633649819313727599990678998815677148968385594718063942382304865105995896342993159068556020222152615235089921566796914765666043346842031380719177780169550854097561602081153998185550770469869185293346185087459904074855494626405327505328401788729537236930949078064942964901678257940102839308458015093402185910215239316424978435919377035973961503538849614669761290931785162075263059383829346270207339576578619168720917074400675647639115479953771729680077027587676079381140937036260088176195565796288540968925223819157588339633169355393861722300938537438905698081891876028788466064000121362016206610337542613646868838726825961547106570319310018218528670668387522666050353432967704728796316947520659088883644089674604567042709496851568238811199610794814633327725610967737861502372246546550408522100746580912234336909999858333096374847904334642519972534191617888556088682599120029330278279648819047114782911622962874435894872587984864113638923569593962122232142326454398037238230215963223125823382670496611459313038676378690909993908900704108884360153910537536227632481877404209164392984151370179507031380631651392921217990197366090171178054842244875815178979323025753900561939829785186044066626384563546109221916904524467223357034378842194958769990628618371230688429607569898020773059815172413702386431454402959622952755826468164550710391185006822708443800354058476294679835719476005994554310513880651893597300655114445517106855650467335035091304112026958236486141019174501610601850509337602982593163675931807867326482811553286985901302575239955895872117185154060504932379189944258069742266258345686506797076059360397855335592360380855906813853745154117330808978075882760630476795908324482770588599335111790080420176348200745684980601817814521006714523261658753225124055238876130423507522884038948723575923028248130185212181659387052555486844115715661863891442935049282330290974442997238411312065960847242235129386458335941452592382428288924380858175463034400859195182705572420689688404170913655260707200099017735076506603350363050160237604127892541502117730939885353068257792913538163263480165049617444499211961008033456564682716206157741848831935861326281652461592100602003623207303959316386722061005323898538694564818958601541520444715420378737151886734012811648057866881695176272966003268020357058256980327332556453890034568859626320402866471226157696181137427807906853141702687158922137569595595471972255514333204707093038020945065990157019595525141519673447812150903820211417561213397070494422183633693007452243740247817953108430523652792261270197211712384351228115741039765388236652835878330399910712357185350877010927740251757046986527718644283641802634453045505278678344165013746205664406309680384578818234114869457748579076022149823160536137750493625935501513057597266245992172335492961503000599201287405495649807179935935815983627847778116800529432106338003619052636087501759847743518495297771764626792804311045088948458203957938088131222526348258500616065184641874690689812339730207226492330522283360015265477408633316159927063301152803323709892414395458142356669123605368776178214892809743404419873342908048858854699328461346129343182746813912092536387272647570257860090554470281119533359640176099979267434134799265266044497448838830471306762760784305771877723623959529990265503462689571076687415921757937511689790410671664395635371633776565724778782899595514029407145492299089448863206991708465912906550211159068092958385937601981087729168249225875783786631352727918493344692357593429359710242932164728726325180219202662735731078297364004600831179075076190543565414292201616193495707209162923094673927812868663441445558986742879407175305091827186758847244700794430109762560953678393180808437840340109032787347548750419158572934931212270226966599367787737911114902125680037311642796952439605327030865948199313896097842175223103399382208759150035171873441064520361305487162115830880439762178941531179033449202184287346341733442238514179926088345893415820643952327496343247670399102767201143397052924680100923948673801129441498230968547841291175043758045871200752094894747705442869467881462557292425574379168470654894570793184895921428417793877866511275866955189276130963145008428796376939784589499734210705150885280722234214263383188400597851450526153888319405396110330534865226269122216697132306716807571303296493762481060110132652985589740320409044528992867543745206404607870219877380708930818948882210983014787100614285315195441565747920424417691114492090130591012657238072406363209417871891096179830056762521086390081206091916374962249573198293660024865677649753649169424190630915417201193974909144747966345263246148784433558864106861323614398906336204765388785970471662541050768223719948958747521150228879317839694955159272127666096079089222012326780030629513537662185109288023483590966853096539005275647894128973984824366948100186236183786928947898846402575596419318645607071868677856698943177145650191147007704225526937321198759452355698926369688044844731490455730379445592603308296995937288563219053671136717885741166975078963768949951256352702511673358730384787809920594785279558825357574904088666909454133359379376651053412552342385399359649525290476256299065920789433845314016824836183499487127016543908290784637301798391729838020225850098895176880367048416595774013414839418944014586288821606238627781532468430511311024606914519628958209470042981550747715839258825569863869093307929439523563755708512833706424691693976659568740567429319505776171298057484199019664857876092968710746833436239613610703872383281141576359294768653515149373936434568389319305422690578871314580505021394333242648078682015479893113661774645511517083412776005520756850518844272471601613406657185003386094049867892791875593420975610463153370703308276860681092798892586917282576660469738425948775643131484820032219055264994533728989761536418874933486228137306650122588108712151128718317672571768007182839009191762363769017851862971868467586802118637433396572863750977515584693492367963842242911209980988203639123265555657754394550657316639877718027804182903945340130962497209261109327257759630333522344152620985748993385768474157678233334815627497761499206118103536835276617063498273264902467630579105951652767208840415311781922442916440030957498402651400588402429565390116277297086030811154951441937854084677340380383634725894661286769422451332348854154937228277639924456010449513705636566428603848714285486683267965542697374853727221998687617583851285593346411328811841119052394819511602301868090776349336353752991304082034061355192787498599372804455262503602564368791493377624676723719587189481859543792838730621158303638041462556714403720810189797493317131231843855557291831010856892050821108841754185626650255615432313676553639962024047662729945686646701002938383427582999598037056132138778729957170835922885127775877468985599485937565680022637383048645784648059973113937648353004094671223594057502909572716847818703458846839536382121253407066783141342062839114217780687311471274100121975277003913057334672214826889023086958419393857057560972012540347406905478044285668542338204041093290424126683980673839260145664412017850012433179521670818646849038489480837915173932542007036103030771927879111716389712651492647029585289884253551616530974857314641067625658000232897926549041250438724438012615625027152116579588942465324074161341183003836217511210883968513901546878563531905176422194411478651800391420590110247793478230126700737603208072402800921081507633946985343793748989335897730478261626489955681001208461619378513388175289400587912125136220493086686738218435686331974307631916318261494193554110453492977965946540329271903748303745020049524122655966457856415507406557804019980019709071854005825581244299832037524879204254226866556903495836896875972804124350823264056075204487919424334178301997009540122683178410405454973991654002017021411939857654621917025171854875610528186638088160563270420577858921243273249426233560809920245532555083859361246582246834187145155573917640033312181257134236108809842598827444746303561854925286996190999996870646283126335084844849159815766278848242434551897970052359902435060910718602908168707122468146078815530286608735994619800419827862120950118143935289268556806797407231262134013748013523910412876930490450600821508809321952687115864645992839525030689508589814381951624421466941273949690839870727086325974390293421834167416148943875301497422275123496848299487475853357775507551833381961549069865814561440615016442539162934246752565116264242257272192190817049376596233723152453372226222579757951347574889373356518416686639358413587535582233825038751186101088687703178450754023813988597203263564311695771638246812961267436925651317614050063121077041813738257034577859993035825739217514045799400018553703635634845543056865163039280966303657446469690973062339866193304617372279175364865259442252624826487319140554600843477365633581603085973677378315021688523248245058915817136176516180160656308146072121494741220722193732439329926850507746002755749406138098590446981020888575005984266702644104239449940534408916925824330917548104320872800764069459127860368958217153127939181357200732486423029753119255644748999053513636494663112076677011852465714101518647959324020413308309205181800371674672852491242799800907385076427707343255558707246853838062699246078713099372666753832978547221894892791196219402491199693101075151907932584042845152075733511946071935525908057935112765890748466965983899750952902892178013188030027815832311020386105330726680073705809335523623019613718613942666677731493848998994145141159506772521756092189178080699673166752115020200083538426153329645745746390298559667508449672074827331504098265016593715271938769765443884267295780611816567693617057012859434548303067820056057823049494544364130779641709032322615820147777561697138917384982871417328755678991004890950556606064446686791419251990964488222856110439381447661195344207497823667013783259110652180929770018889100573291536762980455356202213700109349619472291372675951586429227405762503522521456842994297825047851176627081702652884189869521450722489527907791521999594912853739711311987601223016484786377863235283486777374730325759991916653473559585357419567111608981858713569367154279373097929853966148947510888201208763518578673696801541422907708541714305311060357313093838363841661260872736496370047362925181989596933409408834269841067317988863880448303113410315095486864061755266370008178225618716605408517543346598905429559384948751871530957266311421942443214440544948253387599378296897085234101612536390761344403506907883540892172759674100397896649263928477479676018100588842114353006971914884863316331938303284241135663283756927696519453989879503937786206954878056578436348230274311915348308702896108012498279564430498174947221215223763595257391127274582294217688424162784640145355716239529910720540624866969603024192988847720698628010247670793305923255441234290270446923415311302535243561784703317787854157170228286517076105486667289577601393633721989874042399373910592056067998048831784867677383728785588160152938663239124217314285193746225047552965651326014819933762852371043414732811954485434447001837800452139442615864209650018377537987142782926078880231191315186103066569161921765429960688512029353368085269585220504272646849251511903131674269490113329695229045009481395619732796394350410842070183126289393123336726980674611891784308111560797926872494993937365142900933770934292665284599111452174875868268993765204154020311639131998261961745803193235570266944522654827169566684284171276800877082343323512695594833392404456049747556554693691672390694139934199722410451007848091554063751341678914382217487817764962870244522264622040226749682844629990943397294567140814392879254767373052943603222914948990633780667693803940144445131135272609483382905693326602797841365850123692192681817420405395366592303378180057943696246228806534535732482481732690129850298215274997442349647535350710330060261714651811816103276495055676090033520568059614125136919960467541608452355978722175021547529888263622097772683052087274077106955104996802397558283437439216523925525025359438118819069135741007108329573515832298676064273909138889232386440309093938216500436659742084747912946671565061511951036312273815891923228727170140071616111318365037103163143113881554014285618616063365466423467623455513802210145068940263729356554175120816977541556434978740691654760298739704013185973629391112495908364815386568354348788661272107643947835288494205302264879305897886557781699920288990427555683903117392092853710670700211713303028916239446593590734570261072953475458727241499006477082517070103938699155972102550465182910331741608908478893025572714133028414727127649077031076529047168061997922349601160949562497173876019810883452155191161217358771262959798064371355888901128164006893383681198993316725328289535031007932223374454017596301529921330639709790416752147857215981815839648458656887670051141635097284037608347122095136232478660185172016124072170685708979646154536415426457517342452882888256151214106546397848829228109438101480295278203232120022099633669847001858661149850005947044016508885052898847919362962995268241391645943842764096496083131484359561251723930557069402832697166406399981195837078842760107843667042869057543896309047023079887751153161683928065581715020909412737231346114533808298356516800494824460453173458220570382103903536305362553222685000451235294522259187915514273398337522877900268973463953511899969186700643007222100115879545809003099331141989469184235632916028863176897284684773925624040021160148927058833175290156175014911182426691763345299839682285486281382966044219551234011994366101314831264401229699186897362082959274596901250221753370300800643200584676759332663911064352026716683039156923702527537838819063210121311437100981453278034007072167660783427434456877785571733125694662404007920198670940233296140436071774155584389647211124334609396513925977890218772461418431315977977340680684876655154472460194760810195002360273690858577480349482847876160919503067198251318695791695434417695907795729956395206139147858538982427048844732442685398315443028599221473313807455284346527673378111462401355514542517788073638953489618398138387151826843199008900577023138079772122073819713620060482075611217100558465028659417586854716168958059719126552144572391353951722802849638890014040818906658815669258919332533682639859989758451439287265901266310246140398861801718530637171097164614228723464821347254814601074971958670177355325465766149775876456954799479508403365613959549735782775557515313169752642844489789167028986091973888993910845338779125937077049303054786664169023736736425482523868635722498212343035010038895914542786675210912142551325046366457024604386020161639879661877111297999368404684591956118393715210951967529267692543846887201428159448741323793740645706843925968400728903557008638133994324939159747959184993373144691523861212182692457067383308583060904327377537007363088372648202243177335029735540767584898391437925972337161326367107635998726757584079548539747122384795524464381988665353906728949140859683641351704475597014184771864460971348512708922219127539982658391666201646692305855686670985609103330544588699703254685405805074875068342051349725160320608646529622637476606019958939421732531000704435272239060120474574521616806189271619420624212384699931467616007480947884091064104885178891480069640216375374465564469588624971560995063290621100343842262609007366299766961519598063334278408188342757261789922218301143745865158319217550915924519193545825702661022643942853720465088440933433926997271633853878541465794916492006255627242002222935443725955849882297032282448191357492455177394567044501768178581784389246670177124215537003970447222793018468540441973827923402351925473432118349709916371519602301183831564875536960369372279419167516785752911496318216121336730772251211681573095854494719758293862068920609123468283080754905961725364772238078136985813742743493908257650704330716784710716986656042017860153271874432596258495063577444263307398732828365640675509507026988398611677688168565244906757092399613170648374984080351594248577849364662912384144449645948875664137430432393921145779086360779966746681389056208599468322868846503149763158600578477222092763710899696282510317019996128021481811064929391489449696599080004406540476401162724348200175496160544226882673928552909275795132991969877421207578642679907587559271241013249410985102769421497179766138658714488297787031581009661344501042773916126068058579286724607045633964982437535740143981676145777608295839127578218745392990700507665616084541397109767685651866603854360162830053225297526092385531052307961986763008096817391352366842017754368310886474881521458629298441072940708040378128099969631865898942964297962547810046323831091258795228377488159364213842884743326200029027737314615395421931134642225702262957365781032534928246938132519574708352331674120030987820706911251932171118386115018350012447545637301149001904019405096706070245647119911615510049133240620198251781858070254556045712108225722556195929219870296749442242580002793701511790338084628631183905714490789135368483990375157998193651006907558832595766746472513340195709893903177046113441281206381279933340165465985398278608739161394419046301130627436940698722034350631342899298311178323010262112375847219097030810626831358436916992795678194306683052753175179360647659331236361954625874924617428729781226747573365385480931516356977380063107426055613908185452191258648750006186486162209534915666995872082228792392371869259554478897521098009316225423745101150338830903905875617359620685420577071940314641764246215758839828815603815431660775165349541185933728905913951969384694976589915734390250048579015255240258867838692269863031121803979189198038626219419725558185990004071784291743634008544076994438941832216231859979635744517484830672644613756713530793433189369670781091681805874072826048873925801679163937965989878550680076094555273128704467365333666442922561607849284014421297641387099202560711270306961163511514777400326576342807431310437526721546440202118239654331360630922550896531399689825855251597467729798971327963877609561955959747101250194966521860082662620457776702306700464704062165729407284025994160603813257136781757574824214373636490056541471779064782254078819432910939057389432416769101689765521959068520698200486423981001713205690556028729452576501705543979480844096990279133056086983968569685677128479803680324717444599277864369617182040157831142252842667571076290832783335864474161106042726840000525997056644472885482317382796836391111833777887345247292708777618906513804192064597192295169015444434418065018673627593374464856263646675286903478469958364280568961172367325195479095951811500356458825791840721737785689139493626271709450803075224944359251073950080165135905906245756081961059825867645612712695943009549356141723149353184604248353600693907956819168245274577125900468378318178762185147356112719127901891588388159563084170110389546995082678944289925772355200703140643962114624421265711436138208266555209187993435435329202316460491612224818225244413766976179559496539772409695404694870139634034572947996560897203269108635055014203417317983940157521338508764250482935359415992814234548801766162849803000364581060100500382027530921896436271487587047932489055655440372929755660868268549668846038782298617013273342187200472732213760846887549150306152711361160792368601824073911124853533199218068342615267110120614619557146668693729463898210877978304537684282252763954329107073545499095801987378493550793099000696461984368646891321021773207242258229730673019317786271217448405597931675762629403953367816750457905470248754489745138522084852395822333802014133017315424660683634797327018054909842564354789839322168451491506256332232103274775109561554870299419327313403004924556554893139603780963392538612256169796465242293804829693701701391994742392440048895458097081170237375195873183907032430593955242801545504554066866419663762295457307389663016622035485616171006134856573391618193588954883645717452832115564762989841614864823597178336497642828513593665794356971216910619849614527187583641549482220279469386294686565521236994222916374562343992987407929809398003447161790587612969786560355382301923647719943467692113099785300930959443977757261891460255671034308765192066684526451079519863302882134919740626567909171156553760026767416152433911688241758172051545318535588417899623605898276734086018382315602972117142216464411059976047848703297741822664852092890580986135422175118072905312210049858791299029158094837696393543087081677061637382513942133331581648802542415017076165594102883181141663023281658809450232009092251278938727391821577886685131669007595043300568445770076652104085474579758360033150684049366124216901547636458443183902737474426368404615744318467289792606953570059480817726332446908866250406090102788765440959054892660048616774101486415837364719320616105433229283021305454038634210661859112413317147804305916125414370943739020161810653892885087968194030620180067885885635577711435987270901814622493990981459306553718236976181537282938771485000166313886417430468002590566104307108215398755334602632216561792953990750827299712872537768919461289086735861913404634095423725915504565779948393512025828538493376718163764196093387189536677120011579084494915290897574342529650056395331376932495783465136751976626120364357382832267124782453982806318949247596438837567653049306253130468664542387066032165025335755564151694801006320420312200588836786056274105567317495238868712724171952715012490038352414200564186067592449360121876975179175061555259988188300865922768474962892748596886557871229145342745815564310322811163697345230318587958283516950561667743146386018083836110409736771627993574026689414785149906940370916141268435979469003644103810835361685827641360489864502007920169503983922975551292755423321738787735577477445792707608135186064038460466461859355456028048831912613718383729757143149956399011781993969293458742080072656586669616660143644586070498762628725707796676361836201811258613858770198848397858537246938450657566887959060267683078666796392186349610166535073597826915854672330103170917322283440014165520583312368822266056396108746876653979158546679973313145228134258553742190383735218546429016366332408444129647874986201114951871191811680366022108725215469563965173116534956968374407501049655147400783437376800533224576197173756401950480085317621736742733452649146802154846704058038079889268510648823575387828880892717024816746100378411109833616549658218039107074810194457256984137224609657244271152574750357933670763765228828061925766640524936440563569377607757607590588903710050119160980002424396184497513910592090561279721726113051694918790591776591974748535881105601489099875259785699348396638158021063581475715985046595204657352279854236582566401675479447310688074381418882378153713410807866022190992470167569867523237922049383425535280020603657281335212776558168811414814222691895573782840027076782423823800721923776679295434429374263177309955289495381441343351377797669089651328908710254215955295924779022021261852297518349227835983445378581259785087202813646996913393664540442056843235733388245836560952197214409042170765295676618385092989639584408045811169288201334600322696464509397712274605718106694159003859523981717821993112728078589839103819105545277270004343579241402294261905720830084505219978568259207007452143322744610041195435277504982735084320315592212973950331306261148277034563864733442260558770332159663547884040067950134683966943529970712791714544602889851695746559564984354877165495220235775744684451674694757553836601968041049225482562876636348592660584319688113742831000414948714738157817066244533211297254171999783790771324720542245841304061073395335152185859053258180893022799728902991847377134885315875162437116961145730787743926581644197133543477896257047122399715580124752013086915636495257690915644783763294616876445832504713783623879301017326799392353526570361476209239300026023845550032128893214436499748856895061938103071692093187656372290173376487974585110766237922228442317166611364636639587651508767262400677040100523639795226645704708557157707940923825843446501867487935212937993230766337883630335443241858431892918745786018774420714282751157109454613411995477948817773667579062486893782260236138711367434648258449964680270355221905209694132537954966874181860853035605689455070531379717411224774827406852549632690547984390808042034273723698869164812204563210611573342209896167422417007310737446930754611094207411575462329586295121312465879524966327622437139306530765683285507704169205856620058215416982767696726844754834684751550152924721096658576174738662123485440230926913611581821326982302088287587685778228189762209771604835447930485843245449630839658863558901225054803674703689318698503888689133786174470320058186103177482171098931645719918076385794785940492619118567288014131408668100057858457235103902959698710386510985650091824822453812356471640409997164251276525845215821117563809517094340594154557807765286524327862432215498181367755090336227352863381362677520499294136470153336917435145919562788549597187638063770209327844727917695190480682109604216063639982590932624491766536298957006353994127982096842097363176396605822283772878350443427550488432743853444714726852701074274826244396659155365994948660228084698591861310481095387073091401549092430289968968500441896373906238269870772476714224899289971780458242145827589696199281233991712533702911258634843555201668466477682946885688201200134557453628875924359219528424971821388628680746796606225787566580842734421794998684174311598094540170541853888999747207162496783464474292198622078965125345795807923227906406835293660861926636204623169899451322165617768659798281907804883916835442094108261564115765780627720615759522537414521088248140587062853626441901739798508653290833904649156524240242787252102108862959710436233674030054569927519945392301068464322663139393486726311663253777306718712857992388827911944934750619606029248673911214380408386155635039742931731272838870172562659459133773325248996329462266913796929816733847574955956265540800659926321568730497834677019625728550485876860213057599473603926271361217339602980753066080071791272505840634664090490187811628359289740584226948663328432404264296781144261976755745095562965041479772460265865902978969921495825934980890727500781966551505592819128239625772399075971946627385450128682786981938457808615098387697441061905535067822935250910390171427176282427935938008890906130806999171534451604048069761391114892443848372202098617968664514090271600035140639090020522170252695958874843051477574554024305949066300205601692765310136886453912545569776316439238777792170206688267682192915361466435593922692185094944426856565274690657423875510213628808678956728944689230066277163016444260562526441235221118367770042893082293017679671101024645874389486580585035168142527452815982645367338151983251702051570748172234148869470818904457661249170585374810421421677148196273156222161195023693994369628171345787786203572491699677061241398030325533079388003414717499988461169952164156558515082334695918210030666120143145626934351028746284830942626909205971288961518667011889590346578534503903168864121184989851615852585260934811903680023177492008920725531289476836266323450101212624161032640186253459259248699636561296895157103330575121276810401565842621196214179910849408974129379318267483626499688253395002141988921354505230871250921517682562676569908895135445772451230743318557122480233370332567198465137501861226506156036062117443282907399881476096336830820761274216822880648796888928855224245325072720767929327101819088454050037494114475959828912439487726505829442383580576211499730901014081962908242345273296486142528191409667444989428175431907529334594552913679943454460006806896153963755767797408241337952754707581343810147633837322049168613349335746525271001062613177621709537338738793648140279576407033102613950526189296346534793017298315799224160782950295493937247425184152057598574544011544892516599058843576156724453409909700408177631069352321563279215423662844499428967324496132986342391284632614467508714898995744782720555249966913405583591583416386206374253930280440339686317756745903860851484551281812404011945740829116722812643607384305985807716798571568685678830933987950147708267671931880937932485584489562045830669722102028769927461459939296335781156320941616344387018356943795639603360217810251895126295901244360656701222251841214893345570602372783603693856652392445736255518901417384902345066248270071130961910257918066415722328799472198087719835561241795998300782679427450555626030665367367996232422412840460702615590836022208849211610232364114700819029243969343079755617956165564437147736799086631642728059809898582676699627641226629963796952282041583692449902649094522751831415243330876400965866207451653931226416884099950697481905295357895004107889658921151089584299568042636611487899320672875623829990798994175742514592792022057354907864489964096724517105976380751936772470517911155447360686193175413042654608291374729356517511115649545927703726494462604353696309258269327071213336747366346768468495516387006869150187266313791112680990012720577333861750998291299314027120871248447012790269669949414957402257599089696003685103565078674825643895139269870423115512019291407722046858523314523193005997167952557294503935658150084450551451951344973363052255858638421198273307434630042645322565175540293666990704237833165204207908445151035242374475758887275450008264272739336739572040499050209216514869405747824203165526272728405142327199304935247875467364293091699419637472695969159776567361904765721674869283323844184934643646631988853421879667857465844513821584557618271304109477699862814545777711335253832111425668810372543329494625775437209759840516473023697204988823937123425393748017318324060009564716236509683317693303265624476970385287812376318566943646607394937960933281551319641805857911993248711222446207935158017676384946002925703126075131619338489148841005150986434941876115226849658664370034035989540276020171307100585672581430104188860473059409909557015573445553509244228907541588793813812343983914314697382029238376185038774882075880102154554773396394425178313385693094119275571061821876465896577851500816023192562990665044172700517198393533623667066091431855013624444060049920748867345090799070621038851604699635750792095047887640848862890321880004095227338059086121816371903241517015576088522060158475870459155729003060069056618410255438886964824843048370845817015240659329264181781058276597147965260430484377694523370602057746589702428835606093945245017668314522250642432815518090856320585457354722969290770671901382537602078225380707362790552841923495178170853932749605055890419891544638252166623594250869045650282400383897034257143758382715556635226142127946254998870979939954361766561979405397579639474266935281497050703347830475553923895318633625441287041449213472717072156568728976456791558366157382068993497579872050424716666057732054374049967791253796733451259012919239535869640305936455808591834684674275026664272627605285269837662713117430314250132633565988675057882055144799915226569620911716017378030257369651779181141169091260996078140210784029026526844983113454575340140465445961023451461273661176664683564025587762713840859641729989858505068943943742520161579594612523658489079340759962605885161893932529670534085267186285546710728399085176336969933805384800530219898927982901078449067930744119452267829846611579023825196107169922325126164143344315607842814773176996669675514875560444815218452490708999823140216062567470241454987183648916043277760373585026506635046911303073175673458277048435879820467310778950167239587281975626822777313183749966222105605752639607932431729266989038730404726814219042566665594304763723485178171509263507940241747556531822161004359528645595435354840763621453498366950833574997710555701490756400806029226335611125363488131968273435266748298280148486720613694236269833261633696575391698701615047336384200758745979121895084944505603629645642564134324464993962155196334474000143377503628437290803219399848489032240917731518538509602639916841749374016862312489876698819711280189139881298240943985955677498923217432628210777899340582916052255993878106510382321690803094692680994814251888738298297422708804681376336486396355745162948767270144870407143000634770254885612149538040480340571869721637817190789544580292920474989613532581252964345271122734454367765337561140315828537049667837033002994384509714671486465270856643809431889401062376387951196937674057433078951404528610316074753581537577236961539591618642943114884413121652634844736587475418377070174862483828757265015699192339143711908025036645792880937760874828617547848553978388256513414493240826962889096856930974428464322458197639910411214027960127730564125153961086203301602259682748790971300488930314721031617487240671624857724636620654099211608854064023189426929914693525492504102780610662312040378206491161248612493510491990229940027703307337406977094440596749516915530917901315243617421823438243823641348277362101999173482710566264926902515551900288781125051600531903427835695430225755589279159256866714041222015473976924389578609233808561908828535268066594264974113014311925832034854385456890102529458528058270201433293276049283473814094244430563337710446955868871968980823519864727565441643571743504699711300382005448944255745383561177015417824121409770297579267041177530884408450569094955258009715056751740576597015847420342397656573461034314489977479224047519976789483053673810577591079773154320849695265769110043427680202885803489481549734590190857928559844727151316142032595957149060599612790021656103635964277049841994213650132399093458452818572962336789625202050713968231061301894701558513545840962097236510960096423508811805263080843679840652851040987347534564164031794230908107352191155844873185566834082146105408361530369024937390919677330937568599864518795823909252800195489834386756715310108042770028828762926185860962556769886432720451161244911495180717245303953042903688706941763707748525792484383977622562371717039810501401967169870455065531141129473847943516141465509390697163405549456434982095160549126242005328146544918621580120076481534991112754982902591607181973919041109081539193107370748943491721030115276854456769733765630065554243289751003161535365936135704678715718416245688409073096231642513409205672040022571606554980894492649942081851098919633186037588090717924506645019732997560364068937477657455077249935878737379313875830198607875354199607892512956340768322143667735029459638393302879510907878934635065094284384715593728155968080135605560815369274703629955999588908083909347192258729199176881781976424697127175488607375015792545450325102408226624692401949090000121005995129325337087841949116749158431644613918040423229979615049107796540113701393597977432520151687098126339618733669114635622769637597194618985994773000654127239493029994372533487396191158276150479470108966664517849336352534598951702591862377907656247503709511325159218571863273454087534359536197322031453371277444696021197806052377414731255428065022145219234310090979508440053912258742121547860475133341008491043896140271527454970539544399243546892301255205951852812925747274285818967666219785015047988719941765259022448022145288878865081025494412109287151294852323058533478738747513425107411092608863834678807978130352426121999982328876343939067557782826708453521258646797084372096896365137927639897868139399240343714065393065107439212047379992884147042088324045638720756682642541640095249451692144773460203812219337713641028479537008407627399931272413433468465130046036229077242781922672056505798990193155468052183516488323917369731567151200284351067095200994124094112655136987298271811943666582694049484377071333132135985382933344640099005797678165563303127796704389518641427660532941562372957501992926025466001748215461363323107255328125715838215660968520074669370644342071530500047742020490182978624669151829452611055589672550147165995215328760999240966559268107061680922581761291715501140726158983884234804754681927239490139823768112870626169863277443626128275497338045141076986074593505014447891444565032738633029640932032751624809948329269608057547407342599954821512007439319450191974479600802782537166227670474754016455142131771080915836162080320554093559824221897130226122048158500906383778249163371929712685887349443135914828437046606388957029887227577113040502923838760616952020611223595094497354249639888009398828820879073522187102340601405683894899588256823542564063739533094024456480679897885868841646905340958315018316871397837941227348104997631854644867202231773968370190698514608321718662610395013461129471375783535739543626106181229917505029664623489882588722786186132593192408938393569996105580691242781803053625146055671905298421910439405559133476302706504181309726139628148647774428899700983229629685967225303361505765265691139772273904367307946006561618844472521227773234499894200268780792856564153327300019847513226015809137460917601109969242670536556126465549443736722597390999549712455674688931829850513516013116671050986270071330521344787246173406194257891290521532597619268551340150797961618646043908392431183314535025383087519553429419632925342859594445168742150174772680134841444743408800805604328210071095958976615502540182038357946683796683169308838201106436910685882578144604767513403379940430924781579960719166084485588693128507345557852966216344716979080048213660713419951940803105716705576687699506268179583494109029862290171709270996883319723083376768940375925081816906457429618429607204827098761078827317275236607962259193145383901521281430868405137359846228675545123140482493050327050650979149762058193273888952419357218575857984163893922815496897474539451634278973916342570325955826558660627961531028860722300918768423254793711845156685946820042537940116214396259106377078562550092080123749749006949851694071375105575180641467091221648057129996789608022916913484103333666295630858910167613229800455241985951375046828137223495290702439769456670992268232876225258127654256977452073915755639543811805728049896706023669791519571299620617937949174668943554969182260209730698538332951771953307787476792055225189633375299709395516767137952214889244658257103936661401259907655478465024068934859922937945990974446527660963417666410062061736708062583094043372086021272285568627036315338512781634341457653573172785536429081333101787275250121942142639123640482543974985713713879324936658092335195228995102639294732861426643382174909041440607035775708132338533605187868951948645162514152616786536012722894805479057487939847828973416899252962413631615877834422434097156720068321932731410036399709137692689706512609916761717273093114777975581681781561084552816221153740572313910474105119885903233300216233236522461773747589387585323751809525382479030350450086096003138715750792176349343296006294995295082640420931251512270233467520370788647978811017343661970841743572132505105894864756884847884379901567801306751687704524794347002694373902830000166245934687132726046364205307678891374669132044095850906537421073959251390170788256280998777995361843678527454191854465579195182594799121831515412251707532994418812600093599153217199084910276185751140738257396683467526285087864448097592626876013692746966019652626112798658255133066198709320549505789652049304656761291812174008434138689664416744537996485882578020434007310840249477603336985351165450923153132215633361849093898334418954291192886879261779402424725858380810436668312016178369221685814949562212851596078044375721957634009464110095787653475900676734814925466166458687876168206774460612863372007087444821115579259501611279195695123268203006425241858029660053731753178924902030190490362461124993622570399878901790379221819355251677313215456210411811020704265651656395264338837164829126109900607908485346230019166781276087279003604950593622200876221210094475228168708727954128910922590780392106381044677530106018981076669861213795522918136984287383782804095766416156916720572507506604360916824807136280636877676640514529321858014948164513362905719977050224427286630767432245826442616337330621821036637477162722231751398620249014522967141384359320581735425394503242035548314755778849065312422797417696960435300462972929514215122040467434249732189558456844144908327581020017616365126788718213790873675354351111119213471049475539066952314570172851303147292327837992682227129165906551657243670732624452753466009084942033094337624054760015697056494735278335375960302223304745749343080703684347016860777409632021687002524680271136841128346280110303872488278785977858668987310144450395483514914174102499821508946912159226984022432856880409404339557942796704648023665218613685738098561718391343107377192831476482327279542303310767885132107295479044480974934735967506063639007415417964889078732633426592761502792342485824268207769278771990661292190543279638805457740190278451157964619262525561564186635362124505915902282556956012607278021825979076405068986073861938622366420625681356011962521967221686537687913763409569550002084135026133098378207655464753385001906280595551884885778641721845279603983861336466581381897737228887876376558251023431006492209213687553274859059286077888318424404063616447931040041301914551907393411390815444029134920951156836150741346808163528419208197371994423111780832064011645396509527005012410117668883283782800298189160618243049319840212151993949893160923006781164623108456916915388249324823193046283572002765039085652619315467117506105259106432868293557148207951960163145250247809599271648868828052581004767643277765588372467199781071263146624375062737061010272949031768092149662879712067736579421865410673061342412409747885054099500102040295852576120279510810187002586521104086404298983492523310242844915006545738388431886576288828320919765873284362975001708703252037231513637121262953998863427129413708381683192024287902257775593630201688969536939229085534175609708445546929943244166943717588997945013018213215073841419243996299732522192767344333714039621116991246295598009792698327536567388018344331788115825990168269188130944886124106583735635537049713691871091111904694251842691765084667076825574235605620853496301859965116309255320551999397797390435009580141636420093714617968069278598940145657089662618617019414501311172061181189432841686204568277126311395963578432476952085448397233029165077173231624447047649945291073851882497669659473986052682406513499313341240980642159005954739917060074767108616326172901466555998948640912524640976957356587182328076601398837703866176325287499211859582299114950310514235177309777321698627735207965949385258922841044927201185547302108999786228655216675825062776141980925684074870004796947828511929065754038526648623994141269593038980708381285974394150895520988161230204875548000838864196404853409401240476463772318819672897988558498071182786116919998586707238848976865709055860498605812762450565806248928673673414529420161207868100458816947799077569107668631006912635438262230676598556672351871708191719676693971953839495560156436219824423601470232211268318350478497139157385783762057141245157057067719240316309053060709616056836865581037716550673721188531634115844133309258690401196396849607490973940423618553588291240418096860760693358069017539139960370442780331786535866055449413637890125334624766217648528148020140738920510489361253461139626624364685158620380550390953654441933602334180022299947741437540636141921719552987749413495517873688136733647559596047593207247540280998699013750217561988509257501476263762116764564791759711407231547882516989005573238993049597156888512055009921623182992499101285877979604523405133421096546022883104484321175985675553237049346587810946817608496650839188814442844739959265897815000549970848516137277387474482675952757465139894064605755694767518653499136924752734404387213231538031543118206083087484526482500756636171012794436019728798777890559711798884039073468412287209780859456676930442812357438600849257915284078990121769190483184299975827395804498302302501993167184298866739528264910007979772458934713738134679737781047718448377703087160493751459679791112959371906272372256923986894943956308296370780157797091118756763325537934492220686257588443655465196928674711574727726103360839751755135232499201201887303739792638967216786498080057156525433418711543369396931012116079915187003973219943008982500019796800049188509735250226686199969065832159602236573556776032094953061635325166684192403402183902269575230025195212323163097595212311875910847984839576627495179684304687727200958428096028076037849952160223635348064814357810719401549556982951654057792798112877404713732361990160919850462433712964907219816175220241714144178889087271208389819672878550178437169631938694356013681754858738005702542575041310743978500998378639672104647676181127884545469243371278840699408162330797974603027420543004353191897597060848861395601859230411971943195074147979929628747425215595278307371369881486588621370656929279376730840083201049616929518506338621191269085423080658620920056593058618561211235016711380181492334335570154169141066812990376630477104053291107542974615008961057192921799340695146934102100466164965017945708318590547400194087249578913550247937135381729509266630781953047498461093656091823723979427843518129334916328812538706785190077930236953916656133177021268498754478006385328327983962325563614253056954761684801544237439378064249673574717395798704644622443502105673530697878225327620331503767347720841390384911391204413212293047045349325140160833096520565151517094249555491900152171010359447282185274693190436010412354285600790167382401940122095721482557416229145074576781213334648188387529891004675517210047961192276299489969397584646104411563550489913421727358729766443635009790048711739705563382286260900923925709856956102317422219109746850982980501713251545013479096081924573389181527870383838467640320116745587160685370596870647347915352332681527962235865643289865789389966921926585822661827774793215842778290813189865689334457694939888147135408125813542813133312777977641821667903490160689699377460388753757522615164865518973440151532731349086207366373527321723497106432920195855028787943210379373032074391846294301605095617394368605805014601363619303212113237175448668029093979390845812044545419381368516093525109912578743055031301847654679250332875451813644475195668288816985941189987761995262336416670307103358006287130355535123236140492345754476833453761817882736752724527771900706386473727201398330241445867064560378518772688098317518514211342221418911075546170318286782517578640572087426973000565443364614997548536626598414886919599564219456031664852461562966098225653859876317536402464599013751259116095483377022629587162381194342195923229592809968545706839173349412165801239143115431887944236376929070212169680625637111272539993456648922677361911918914579788682617668133894602044161603809666014965792837626301633089957824194866141377289678020940396895766199711023464507518078133297678108035277946558695809945081219403559805136360971504736051379784477704550339470201824687698476903964151283134998068797860014844606139412198958130413329919036742702792406714283917267443899257736410341402188615330739046705832106450511855295088441815340723684630427366949975565793666452033767618769799156380120757706574285784370112676325333225788186353028857625430522981834005792503614112410667799120335303578716836984499232512385946339198456406941846074038189022376107149533696217815846480208882055320387667839385697546724776239625764536678080765445166281698126192799180193843724883556634408839108186630396850606039726800950013749873577713626599683683944866274621017246508044257916306804116581509396020633175041946242835492565379157953589914036363043469192708349606619407816457737910201235129780962042783069626746476742006530523050229046536362163374139819590853764641963953984623257386616959518281552144772497150166738982028265647787037020912495655215430617417575044188044005656664266678037629760955869351081244952866408145153531691962302252588291377519816097024970786030097183727797432313467098411259944791057432574382253846487977203234561033201100353461899956155371495919647115987852914655583427064542314823383969645422083459173484863892075164825434550943792741011106462896241514145743005628557813500160226838856562687755828984747385772039859889132133151818195976726264996526853668107444736197803618551623126639543359687779627024905440828498636978205289160909541589205730302435113543913393367419177261054022442052367478762877189579609328158792544391505537146488527922290369635907058946412164421963647248325148331519865005104143256652691675593248357676984000564203635227748929888420775596573707541974378358559039317069770181250288211757461111220510219925690189588346078919602047800515974562688041279500449033675914795446491844848898475614017420066871177754256429432977526611581101720107073600073947381988268360596836389970596880063139374475728216207785298590463256881305360187091777705057020594761124431587247304597298505045288076181014400260912536643179179641202636551149965086992452056301615636891396453891233273821494078725277338045550480211982064944279603480082268038886815753878737896159395742794747382860554471535019411279846816472583967912867358566337304440345457823390206386700249012186755701203536016112565898495579793765746165698443879144368551873156904304200726137042323445991842941366243145332825634677215902591581522676324373204103571512163465165263815429409272822828668620465573472113017027155499689580843315987717655500818288946774822706237066603034012684115694826137776284102450631180195332293907891858665853505634485458885817984001926155148176673920740419180029835433091930518120977529969751994902443338468887351369695963589655496236862977937129342663536936958916045762010703256020026385654675578418362286608234755510730001592947790073698163718039136366079465802979571577131219051493779591602279597897682379146629647597971352476275315940228879135579399852456222279399426172274893816975516666843125087627119951470841017329298988767187719623011561408428798405357667648401516969064328143832141047852358501891389236640923892314661238094000915573364598534868709537260505349014277869276533702712068647083915948868666986998513837872676725844513631222253879117107987482324347159912018075065470437702097847116326756179615408352416039779844284944175815471242665796877682170955454984669438444986639411320132480445532919142320353954533240710007333668957816981361429365719614050995880216189701246374123973253445026268051311522406588986773452480156083898075096294157363303409989403170491293488411270965393970892297211983571597001172295272791528692474106765498095437111403523569884960143311501151894663045055754096923815562845200838719332973237823092130558044091148143676398092922844563609741517941906888061280812350869116631190717335922073188869470535307770641151905378975436625346817473805535009168167953115031692371543518618036995838782597693571087533311866097150389526925301483486188930381801231398878649088698667560484532656300363394635176612089666609995977021883985639136989822521740197714265358124870248553680042083497905263296153814896164824919285382110444304522447215636109877290067123008863972791369257285050531434014273603297334481763892227515391823879928997957294634576931031611414438592099769042030513184216518650759323565577312414906408896679319621328528736167768374118425062060591326729216215501590736194303092807425946295747288936411422354446475457931283164355621040111154344309237199365567675719335265565204036328891501151579212059040316831033587553838163650480039450554485559606719535852881024977569510174846125547756225851743892326200654300965592014538193264452333728617323710191356035554050802913258439765034461471341062244524026983780004885374631133079307947060613008789270817109723824394040713116666557884311648346717188273150347611306214849443297111313991117720886574934398631503650208856516776805188750099438287934430845726358908165896408477540190124506170463066108403243983758628551921727405955432905197669605425760148594118365676753039349480150830217194173998532969218744460997459229579305528121375692206284063940094565982493544832438951457392195268492950592424852020503300888842728284563851979951961401861822175721567510293760597149895119846781717793594410602047420981111114033310083650921941229349938827170316809691547372471713850918020475685891886431242859205014895112971486495528661497521925421529090232016002258479159625195979261901071125000809311168354994939231798103657754230155426871760131813328401177069251095790474798438199624208027367831078883016762449004360588178560165823989910432378535859204993394489430099061889878967804867449321034061396254671828261182534993000595137673474721545964903878176560210344098920546084135273198439434232298425514682183470931828058408622772308913469912305827457787380917317537508559930685389905012580456949720344704392495908025036655112057207939176734367690193600395350940086496778884347097890886945470386663875463020578967141525558817015946225213799933299867109468970546458070275844800890420402620068424840879066487109700289131063723129049887422619139499118096431788207344751586177441152043897838258948833583267778929675855360814361889696977843417914066298853967159509791615481718034448970480645262494396406414802158208474975865710888964677814892125349129120269932554042762046343654497476108762969032635189975402355160531694377756370289140011550683132535524093205867344501185896509937760153875810143407117417080948419790659459951090741977577458333722469362098327217097948982216006582948985837593962188115453145473989747137825871329319575979486024271263913588112277842436678726805321623990450571258580895058273881613336358405124200429059233504676887626521146862092726628769682925858655469869154843666176458631481758370258327169860429726687731456116108801507807508474816963016882648287196332428095416607899374722649781923870785850695653996071660662128620894238944248653927086209930040155079139477479796793738948644682021270860978033443200079636236273141820600244148935955794353782057377357945020357197420205043582970541113663434321387277572958229197481472919121978610945876820160814199874217459558054174597972592428253435179819395795785264070109028523446838465759056007832217859890097182263797625512841554369262668752955014976902905252825651620269329047205281984351220012817897983805243439067809420208692077361766820321438703440123744561466546335334105305466048259551074628574761824026898417098503871962444125930554511454205896268646478807909412220620460559585042149655170223585538161419933199007702252771966239316971732244628500368020472929887312911154060831368330226088183959184269427002850990804624182655633431870699379825916734893357704323932994165251524380860685118804922104000641496660693216980363729273831305887463070902014421482613330176276700478889967515551746706648255222672377854300114918258141072570080253917374205075709957576711292024973696991694251107711837366888322686799257207686402239217495866653624156767612217896308206548531330405154858562546272040315498761182160404806554673598356429468127295447517215235040259340837172141834272920090443705116432368911850474833286133593167504262104215645997854135911545905345436306451074485049717186209112145067741750051744645916230173853114695747576274118490885321749046145441925892586482066714399121723523727464165795339581263703160181951179230745282667081032907618735188629336795016721681847305730940917978369432078604574306505605254191761420528606526354256828263470396412294306094043917618371040304376247175277612408311834427016314589887486675047831879664344563119275198078362578342008962735895576225901844029220218016736498777968514169277360067855216467100699574765084922203304803734248206175456926148799556687519379174550840271265984461392547975144196466080726104423793579169752447947438018541203722524356905482975122079224604693063464151874905620492744426408534689938066516418385305560993007269457426149950423907028203738333278120076530524693996067343506082560543080418925639276806751135820408742960818758994170828874651826551270883564765528155094595515400581205531623961516954865950700374768607522779304761562867894601790345586612215395890396363077191845359770469797176749459905894173205432692423586408690211172337455611674476784257950320368070805985209481724090492786061568239457978483701210080446856710110880595264291656653564237948276914758384479983596985562029580723038517489487918063500250815946699066429720483063926156120182045267240731237943416268141153737147817718065284488455844124738762538796378094905829909321450504158066451523832179871002351361423167725899823479308501556015391070925605392673378264687404916841982139647135416995933130832382849417203150121301831135040422687204589757260457124007480302397603121563940756591098912163918133627206967763036987165155320015868030444808812897257116618842529162729736016402343762502193884300359300274992837636604273843737310514327527571819501011846609868638445908044139984029422121656627485026429805393723333838133247718969627680509633744147040543197058476012823621246492756445035310199141562929629428080554819933003469334605564441791328919877355871483002645778199899362999145522892466706773691075642253501184909365903482264150366038141708609282650041221684336308171503324224729474689980792047817035533094654880622941894493887603328737362296117311535246925433001528310240900763067216998696600193280918434113907523632417810936153141876012642884809709649210569798211433483185103073908886700921425743437096984749687224119829997743580986688640779268801045734465187899840138698948987442126663717564440599970519333104627024297001962692775455927653828673014700781425409009841096656308093633250800279762136756310534207308762158723447372061908640715210521234564306508936950407759905682450610946158155586713629663998971779281813622584814482203059121541586390333982396179584995584909681165501067111865890828612860653715209139098549630605821800596775514546827600377658190887951569639138364634434852616677706103400734078671653973338095427776695560811605530453676291181843003411263300478224631856555766994307085029527410494048533245108859938685146284365541313974998508387266276150043770063411169167828503156963003113803948008602586723806533260969845282714741665424982816670346035055811989359536648433814386767234341005705610033640768604684264362541632508181692169656549927689599404864156496801932017756905605161296867433565774402969640010457330860351487501779624865082603082993990984929809607252108489942725953519633003397428933040666492534923264747275578589788814932852968441385906910542574855633210369280545820467011105478053667410418800845193907036043028848996712359771229331993390830134329291805684280565511565408909528569845231047660193786679292010032123451833195654997391496303036356068061876773624660273371753870147465822880791886124182592413521952094048819990743756612986544383510076721500783199614342870212016493941688689072848247369844106666155922579574466735688216365791485931284437244334261938915893135799099644643149422329308095041769757377973924626158421329321603209859943899286564811713911250083577141130721173467872569730864588613576647150993803906602889848621319786081833800431809771170549152225938383206843152845794666244285761325214579430254885358829097600516811243604247407636814234950829532318814918093269919268700674207386462983984340850478242588047670950944107251188732890484430146696713450860995850935959101440267327796016134236279217966859079860092357110441255963990321437103517979117675376434374463433453525780104339072578049290241451429486183953729754064700728075624853278348829050050294113745748559217061897815684597809566757368831942828600848454074271937152100851806519013377064382096926028876132664789935318204947342285050433700910969471654651386250801005517189615994306223012520358729397540495256768384069575557491625232058133853813735870660348092039574151217243942841351654163375416867883165804581804730953243363590869946846222779974340549545434785086823389412532647332310724751707353241579661121969166699405626080090310816574670777576852147922909403964533238170137609706213510322801728012873564796113393028823991870575208398246427987385524147624205168972849320259520387085950910247529548846669028400373254563972544398527878340958815815658033274453832296921250707411290480675942657680668751016800287553821251473024050069320220920271697944999614364132611842509387589354131651897609308416903720463836164071910873630340018427627375574006744836038459048952959444731144072163932534442039737217729760835358423001187234169609784415935036878477641345097212445858695452621333078214005419056423559628576591875487924234925408496422771702935237060711413754437901865022109655818807321976797236822857789464385216610872498439993781442726605709024777129217891404762937784620761683987392690503490224213125076758433683559766237933955158149945287566117229675864280406844101443444374629742678834751368909727681324794235042828272545127673814386362855920037642777148719451066517338163358819228962011884766184661194924805388708023767331816351762132788298346765201591692206927591445949975096113222546074747985882559723956718351097097708741761680181922768524245278037133909797210384427178830312975563014050823742441144081846594560086378192502022034964178513363185090362784081970129689268604705527819680766615011510514169644428433530466793997044209284785201738540854623916981043553862402579070987388327786612283175418462214303770482479326214629974116593107225704862153182159180393938133118597633044873812555471257626485717958693732791491795085014635197910049001624559447519948961494911035204410569833961977904577366737937777268204134452295669607142365581082191081745246899498847638058044828283145875243822384394645352449303571156351165081405905725326541287772209613411446274275310219148477895080427974913506920958978750031430455522041991159297345445561492976187660624327694804369271908043333692674825159049284315281701796521937773406444630842588919446019842080583724767407160119165080626735810275350086314379980839864135197812027565633924903421340342965495747422213260734124382732242327628925632513672492242849911314535120187177965278858707235280248569175065541347705909195340823423305664539223710630872233578115884165710082744984470527223813539345998725905895813498100377060795704143676640496987527675811443306532405919878918500174478345628186781570670889814383187176104301105507368989446535614071015033969662944466543983624624536749225583006570091954728794445871711372468594328844406984028337028913987073353549895282087058350341297573039929204596386882900291402718406395415837778994208765675927915722999809421206690573914007280407692378138754598432894655393641760597310537969259807067818814518638842307994977968147300212624432091627419691267081840183059353887653728003469407546197678195421500298365095642397699379184171081086376575132398678118596818965821400881437320887469941794770573926436645194826674937948848658720751215520668228964525522422057134816203913305205886557604793372023883446846717770387092972226750575051059738664381558984277827385333469055882034017635999183231933488397661474444907044947042197188296529603326974912574893441151487531902611571893324871381712112368497990951151585998796710316808925141679875835718164633960829022992726447082316319079955428022555999341689407245811094890462842933147517870081161703620792314989897901669808341707576028734853999609013164312849266605522021381344566822363331148077656664798663969228015278188303122793272803118898696557602742983686889183476804328424069932299799422183725685707179396333628843301254348863623001040253417185048639047805279750657283353761426467533808309078733632697286429395414068885241782023471189356002139968845922562291349173492387129062108223699381695438985508849983679730934211255365730156473958191017522426961348381799466468101402965395595288519006991810016492019302404973809369313175336692704587975248555709198724017170441180079511303076094704216645660686378743443552884287311791715814924570093938637755901576168241594622983269174442431840216513008706884640111826016092469340124411542052658434171854793086860546019033364482195722042084309216263843732379840811803169153852975118757800408464100394869705071584462357864300260543356682370402111264042180762552720871554657798529047913336172571900659735220893614392445216792813002576602749863397325652888424501276982164175331278712098458110997056428545936889916149268161028408189963386728707410565318368762204262860332587263006554638836829842245675920764933217560358824754529586546890972517210983420868336631370227548020443351452656067360816840999357117056430855051410608961889315238611459254507635444346551098484948581490036027775935734359206920448875404262776863986383182102346095927304456389352874303807377645227851509227732315991176567625399952633010037454356588699250208857349579070381208756129336863778118466368118964611313471576998973448227861535177776362301426552485741934979208477561294181915639257281243017531104870842142636801198015499336643467786212294168679611068454012073116930649578241893507118013413023312373136673300680515225998402998913181191775445642838435926578466889979554218363505531206210905818626440351258785341280487088006927734721162400156379928196583405936447420259110258209147149363440726025538502768159846798701201765694285445217439330289896993156999001119572729891081492465131286926926534353161210362870069451629265508399868252512840112953899055719261213233627404259864955602903491543073003451657812948298474926302258526534401411767892574890789856540681028774001079378281004920844284628225722945245892672241443202289979390798070541694512666504722343031532413352017476148773093241047753883655246393697783324696021860041778278178316952702472573220796132452147812833329982248658372101700751185711677401767941668673162180908900683534768264273340275443738070668845788570636228561518611439748302150619882946434610793649582373505717397353600176499492413085313703230547708590682722955302647616555533006253818349752571198858796439120984153035711126438641526253816143899380921058339531643834765555805008604501790944512061272655811544581934204763317690703085236248981715056001015330318537532245932859548243230830461983160146326818310658270864142474337813929046688039305688822480103361136392286317270262412140687046514206992303209512139617644395467212885350051299885403919288967282006768941550205462005900767512655019086104006053501629972445701878961767390065681352831033926791571461316391634245825469267637747885688217809635619009989944732823060873820111097743752606226363616883261120317725187512756370736605867965901864813337591884528690182115876914619922228867822854664209270503403085496646481721045256560145401815170742430163349007066725649578746779188894405664746825736744258927440881422981686513269945671917128600792893576022652760081836332292019038668580272261585523592635463936800223447177192281464988601497049926908468744401140167628505237600348760090607093871210712448558469207495721307567824653517533858426127449090498756065761475227312317777295473916374985219879030130862612911989933233885560989246001950915229811364617024558527998570122655842311770923536649758729006907359790378243533465382953381635431093107454804831675677887097974817188679456741598512564373634366021088770142699663793605662019992482680853082931074806480110476952335600528262713329772049523769049538417251534271173259787280261509670424818638935529775196411122471400419761258284431202087135274985200743514862779375143093025479290859061653495849859963514754850059163280324465295603881114544362580500937951954415952826411109814134666464899491958333921219775221690591025735313426581158656259298482350269212230475768475361810766266667699037295923556068941241672921855332210628864210593377244472367639296182022693038748277336566850842533187343562533869681122831751145948331977811008999731779456427072703765034379135648575643185742266367474517315400356493745170115070037911107001395430752128970480524149267622584881912798402297827040746734370221858557730057441828378842822908499707009921815172644836244230481804040675426721630117832781229199513458236847210259030101506530793623546849946086042573357149243582357618128314182443073367292358646654354255141223773865578879198134284294776334398972299645686928396436641686225927490541445400648119558615567951736296574316832841956567849310904247798911087026184284571241381002465607419010927397531045561038968891125773374888888025210777778437900949597867873152113706073532185495186846858969751816639350856599279904966484119410817351275481036330466953139558260349331373898322059107359445863800973014344100998230968653798664500983053914770798284151921323388287560489239621259055590754334493278069565491577573439684080266598831770289005920946357080105572200834388517769845759789620827246153820198335277909637807884456651966145267464688986278861276160369218580103759552201398828417921019044983062884709166926772786229094358236606530840132435713349961369905840439069328016493896782371389971750945605014891436165194404342364614225219078915849712451550076562328497837843753212788063126566345287363068667621340983311100632587631774515184050998401167865704952841450252663936279442228339911686887958138749587201001497501918578789391439684621176379539888658792808348776351328881141850478252990852942798942383284089014712149845742650801829120493829849274319559319620912432117746515217589566588242124452813987536954532980260857963133535473753392124138415675517791482561744662173043076744931024740361371091875333465612090500127623426952392015767305102156926259076876476079276700630342894913979407658811550261026150809409523107040668466871874605467434739562907352202408926503414384171299345624658155613373175304982383206017194746967642994658594425572781070434439779619281301404493190380615121798602495893488601099460955981361671311381269400749076681533200853669989851919627073134982879606043755147263826009206653564523351802232234365562638307544607448109006617634236230140617934419754707243638926866590743666260448282302698217330353054616582466286271854467018624032224104514457059942798338687396021877438154606085234341200190609938898620399904376300204032123582326742041121394467859353274146695951573131639100812590209230036070206990303850564446322554627366126175428393241027094504029371051817524370886811585041809616456017154942613096536069562744802979476144256229356182450760843508946356859981041136199885231932657547081273925521944493427916655734497838992660688794139971965129447028637786435212561521464853784608858519533744716534629026272928100820118875125817691431504274351045515861035453570044860642516742259340831261960572819618811552021053136586928577138959535720649273505990489956967225978241954674606616359239374691120062047734942394681110789243785654050598468808598719808263073673820774637941949726932255301340311590030898230806466131263986356573616926545181867605100071391025147740932652230757774730335988529024982864025632295638042074233381252204542084095925432610895141242196472468219349205748582163931109552207837412729068080864242348982948776626195436197060518628323128967749811366596834269370653567066101659517782810142803503863868542654158159395151721642209034249932311481400245610484801160367924228298539416330854812539012712585571018897008799485362743357426372369701230926713939806180590504094979492861566344082894339985324381393343407424363841191607474239858944903409444841245034431543189298662523399620757062780549102228774281964440611826715988990261846913202377314835343747545814611548628863136076994975574805415928753186782865444623982200385408349074596811633347667822267376956342699935466489693024029235359897862150128394102601558839304244350717667069414887591041170079083244376117446678596573187185534268497815590083853751968348611253580834115976812896164443635823253177728176563957188324602165115203619508730422235238858683738831218451325562063579002268345950799555731370378618838989915402263693082550939697882188068695180091333013813092886294210559988767894032835219079047817895852006104158580146760868499711176392363639422467971189450565887441362606005250530227544769987806409766867408947914863404401609840891976035834669896313099682439413711083232281151282705012200313674310010621162613725242091648474712883824566439466353255457267878955074754797004276175322507541845604789282428715509988951113858376400910713558644697485314601348185361530516696554837122722520134134629919808368200597769260058952708778050346375960881070718012304458807579573702937669183727504234912010339305489875387199160116198610756024013942109077707078682938192505743729473365276730165690145727986760691794501660874336146513502464859881964522652719706709271519972032950974149418793584430941444817138660845102550868456133339831456158607766618561683238770784174842404815329901841371774662659419717964513340578966709769783916135596147621653068077696641400381875673885724078223961113418058614880296957781292982937280503136681453386491127743730862233360650900157768847713350704908707883238630441415851363337858553802126227043905598403624997914020007206570823932527143078753668826543108815755132806766468351342036676866597961149845224311752397511334935876536235256721478960086039876876316006683934326377206841684528926054190682257577741088765812824219435624522713363740813848156736344956910903447852079251162137808816966676189435427708820582443389919406418988642098570002480892830152392249903015166053120189325433403253291692842719815636794935424826843528899551485170612019989016420028106884655249421867281092755493314651927141239429796312320365797533541938652563855008934009829217675278441556009462784293609876523410242397302854801085433442260012737136203374751296369865376476752422783813866670480877315723335022442142483478449296008331437955959295292529586014976793163141968238467309816089607442301915023993417589028096921793240295241297435898981188689572546889887609975198687808989093317582955900790159729572175364059903345373636313981640141844682597502160774194332089884958520607998780637509227502976073926269289974978361150653580954660788554476999153300863442105018096250763148378265915728174427400481718364632569839418900620456192103610775595159452437044499330309967696880458866875606368463040287741531530042058551430318816156032409000099592507589447780096533582607863786758642927633631871775123266470218746743422800984200237453654439057372206479361828356350698563965859047796858465958290728153856367905770873813260724376281613426324350163145625996873214780932035076190702938286869114562014017394497744330329978690775406699814841225177512026103488488245782973839407990093183063196661537253943630551854289298786011837175685258262346823256140022392894951232130099883960247268523094889369214109379673325526192314800513800357316991472683954360070006656172126003259829502168610203750993512452781845638584965115966714508035920196086852228975955867719703536477495401739932825807144737842122673384834903692661624341704684698828177704667777815782186319052343363287185713584610448293560642029505735912151492730613725916429335013492002217629843242772753226806795704419476030369928848829096602647043504195274333599781295362738781101467351348315903449000579686721492811266501863974579122996487606566098011048046959833123715690548472039017521127813260945831243682281096353695231730039374652327540314409341442571426164649341154074022866180612736922854383660287278388706029313107111608304998094322004044514305754840718850525368936828575247332145515456654520960439906167792032844679467608257146792060098425629890147604301001724092531959639979067194504777501166718926249091350953206548305104073662358830608776115214674378137688106459048709292994379182555377950434843873947503516141610022376430612941824169458190944563594094465948040973358287801159519639716932219122272320261273099915734692948240469133815764163448974930094040094422033132000501284949329456390141554863586274634204198135222037865005035915696219089106100836641618673729216682343810832157430914385634772355099851551213346288391958976877741141034094440342901323393924736290127159684589260055935930525655902212701988471597695946099630268772755898382870057192734074772591057007412187706465640739993715462168483205778942550597666901984757696302128306379824753476631658057803632815162275556878989839169863425155194574805991618262436571110561046729887639815083814079164622596728635578833143129730486883288158081310621129706464299081537451256814197913359591831487955066008187686103826600111687945358020560273160323213834497098541932352413242367187181787544472618137781400843090033968651405370992708910812795335596616609523130830838388653209933923022001605897303330942440488387134153629063528882255844732346452669145792869441650821126450010924884356610947547932696280495526859035786401625522949490345469697554510080136085053637141877294428075363410451854260179658623859254598448372800287930359717032841949750181231229962814526150862403152813357911060961922137069819913201350487422026598748501400332744013740962039799536316145676472539007256776690361613348583560412669484531160659295185979516708434134712078313010738163377408290028605898030898726088020883811523232205312844385191741813105641066333020971377864371946459210229995657241202206349486444437489144474489365325139522907770516682240768701463496457300568760244434026092163498967521932925398567629469672151181563537536559026440008699727448903505889751786373534893546506680642008715493666352501470599595684958880562122765125406692805770393693112352784768874854623143721398034618746503286307068428438606936287220839308937972975599284459452514409813961683871351359807594519559789036691843208266985160337567933820760588238286550149929342564971931901922846587096020050958305730695065592267013408220074489743832470326075606940504351099350407171889969655847368677789686731797302116396531499671154364597420242126147517436253991035971981379432420002186882867945013368695737167056517981923198727067857989146513217915760815160522941730063649509894443790310897273427597355634022955679244144793473366325105464101406439041407116197413238887262829821150730683173578281201656398265355375138469536906459932384769566244512237261164905095987520172988596509411918002857328738292811864899276135982652933045466558785884998361041583289112103577101974264606012924296885288081977973230193789873959371058135327642502741690709221923995475771760088291098520243775478390604664091323428691552674530601075019438925322571630938629516652802875877297508994170391520042049897566134741698506323682295938218416717680384623401390282659814486347680118555365449163639477048067737059123761013675332886217125213624904335326066688168325180100035346747551297014862426256976931878874915046927469953912718184172032187212908754082599906037768775216282928738882161904923398965359779530685481511672271679627736253176871736868240296569587002287504563852475802629951469296002878263366857110229320394817094524723194642513363949174986399380073203475132186166372279970586225100557545500032565325650113287886070083084138983683014112109859245181494985318479638976814856312142662959383287914261482044650377969832395426240972748512907414568504480647146248601562419827278787244543283691225074278290930607379827253657176278971939379557568496870458607012524934610740193871643319641900219285136588492623373235860586307174277362757063803011233882728845862966142653043402506311310888982362622389809646426453423321595589328095226725136432358518232859978121194942880667786013147637710137372849094787636786483132861415448636665001088608577678621516170925682465981232614341768253348054799859498149997519573002435495303032812913644854763372607093785186272608293512290300389729783100302061725141984067141005182775782810810193569391635575746976167427791506778084028976289752855580609324223994217556218710174749376559127800544391269794949158359004267692116967185617289304937723186015014132674418232254629990896753487935176152862197352153685800367694540244042236076829444587502246811992380019866312827830015732203902564864328695375455606879817543073401149928676768302982009160289208014293238431128550361897916572115362868571962319620622224923087764628045487036462678105285531597464908358910355053648070062749554965505633844368379918589347405635880041417586085545839562360767704888787648369088472586112422113756572612959979183241783757360648505322122311798524697896679346380264544132774282957953355356005218603818601164754299154252719728423449150881305697405054947392236110609446159674638450074645519296310494903001223003831727435226179572092962064768503561630247441898165647140582642517239032470006310506519847300307571967561398840184723662226554140161004755852041245368448197398881754350380947497080727260336178496340449864026363203574982563702544798509345885857508431138348612505047582762319432385648435149589150728397704200916550723013529255987856086870685567021499548712585791152239767856694990199640407287949334135183437065658420412146018407952024189716389825151634561355722937205629533367188104723053305153351477558448018809520189504283541514619148505339469351147487183853301356058622571657641942330743932184987412053298728628365970653079383767666533642623645021718944308898080991505703632711871814642166395077162036791154293918119113081549912394991489597825532927275179096793158531697175285016134500090821049184815846405370546803943776928860414385132360402489380214909282178954903533407318301285158041180563841241070857458734453416382878489395067764178668224533530039414607333498546284278990875434081907597346872203177625227634381993643190240423062754212819590524729590981055417319814945362888321772586749102182171103628389722762834331478597499264225533478860449886115171996597996832207202607030861601266039283605977481780002320736089681093728648198697520379511850026676304093420926662117160005147372527073265274256083790903255480509133839301217122676808663256928254159967380072043143114079786941221847324141386372314637334939237299352065701942656605604412494427962299700535397258880137047502659085079034452150654286302186298009135291414721080248361674956960885225436693070393224129051304580639123423094826147118997315957648141475094542521670757257594819205989105214007192182011150946634082598952860876049391875425978434867424606344460955082127357324852547130646933505721111329687093826101642948367974059561708653383365957773273871008704072941744167958710509316690835028322813437836367863729707444964184842886399079851005050927662235029081209166870000884260541377289467525936212883697444261228561676903855769366212157761363192052966053056221420306837887812947989061257616832627483230018887011831893838683284710495278268481177341685481002029824185534336609818321708056399291455032027781890442137667071248803722093932039856557513455697296453905288146898108537905515641804873417632192716713877934417697571882483211774571332272853633470308893519544003729729478421971135306969366885611079678365631255665067266873237044189654358423721125803066002117325526500384509999690975197145992579531133373892270755260443697008201221839368384549690709332247617529662323152375611198272465052786624978519344425583258478505709437179997914667498027052599800929841530856002769097925485589246042509704825153458211494121887796123572220672687837903686083506418170771249600152185596290500560200079871383839899079772671220249743356849696462134867156007583336014075793567762879842233306500196501152959070660345093623744350093032098095812574973423399686401598080065344314991605258724009199826852277375879212974542895629519322403770991348615485187312088160792964783464457110383545613516747985152289609228118291978552048902320986975125531812792419901691233053592388790193556052167124495140772913335754977819858426479530170260732191894675909551716083073729879617677758490113546752481153480918163055040051314959820442386392763253600265897471795825388060936693418851915571699407418195693521195674815477303353159085108833006609796945286844695427398750148556657108406271226242619472648975888943218898008026955492919810654893191294815319956081408472577163789348708444740296918828199607123706111541821665720138887025630740498692514315239002846597694864577529784411194535726600876799117474667802011235293552543528503512259868869556453523302885171373753851851321839165326408731706524489561376775558981546161968647101320443990121615692264486038585180694110280354530490149097327489148170762692413657061223025802396730342786759767732683139380586415003273584791347509275476324406524612126758557536006042575185301175475904861078218443839058956624931686998437371537278597768169542743555017374352858587298455697236692528598040523099208917699242440773386714369835520865814866696562213272391378482419672461748340075817266329200758809404628262770558572683082208930426620956657050347652664349215696170620688977509281727735937141243075045584115667613837484852105779646290100504027587302564108933167857991554349987211760126599422609464255356055086352599300648416296012711536829835268435725003239477250010620694145530218584669013372879487404909740886441407565820413693992290480495940356881791807513949956133092154009496070082062534485100159663704466697390177089561123309740277298451949578422587749292429735006886123580403493843789528358216070512845535573642862966325990768296316596983337221386606018669296714568243511374716002324897600062452303549105233078969112035175580748393529101082255425975778152380955272610872982601480777393084546485598927771940258062724513005423486634565363729568439754490675293416246668611963858865882001866525310559408383460834981736788295466967132654597242777749528405009546708577060938096988622765374865056508737741333567627569808002589290089014492392082718801346294831276423540823167321675980347777578493034538720652456853865835349656015957356675457780951266229903967593383388828557177517261886084994933124594129984548999429351943658638073925089446167820990216044743057065320290396088842373071068950972958893239318175241112746682979665700611797382092401356480236933057965329781865991350199427259594473323495300993334306483215125104806708717123246683332072106132494552926465922486413833731111065762817609762275662406478212667100017776344578686142278716315633238835537070993716112480425581399133394334599768905511558138710511910779558222263288293481755073083209820975027020066992703967283616392083616247634690094734368029172190507371396102669133973231726340016646196064482991176640414932104918822685173260629509936695194486549444560633713251926691709749643528464594844681825474897131561704574773995826949580075802532745828661079929572603259735390242717642213824799938608621373515551039089182965592564563659423791402265326450149272830136684519959023190780644935944206019356746497428354860235818101569059314818748271836710982403998355839523152022732047065856518473446318833549145831053507655739958004431579531310638109599067861889962118516769836521148328398757457632896927739730997395039127162892471605632247927574879383530459962926871364097496187662965614152287061965980708748598590777430534992719768093238617683823527959591238182610116105606507211293172539336648673516711904596237990356268326530681830382153298832979696819650255555554600266553958679360173435017116056653834471421473091191194092699436709576015786027449442777385313090109952301531042563319832135486895306977913568195471999019769777570654532594230584582226732488141389120914629548188882599672331999304046333155312270160984285466684254571807244321523399947267388708164129906154705182228541517383182224331802304622605923846241157819223876075778321290729923626738003190659136088942455734464482173189652476934350438173326526790439438535407565240147853808052891488890760757619915739360861275627768460410332089407440400827512989991433643865979701580472842715481488711163967262912528570677223138358841375517076012202155696668529786583794830961575820286739965781574920355656443859799636208537721668148822554367669119636958807562398239925085237302423720924314079193562840582497998472647935705317312902454068334354661324622799216744307822974959185550766560512521929498095214037307566876436892368531917853878117609190602270772910714637344602189941506603682537234518354518905444820999018836828803300544098036819595076359166604859392253689896789877550121905252397077730268109427108904802116257915817119639254203558644258021439448573497848585160902615833546894925489242084259331455520363524344745689585439576552436309073070032192630034205329383192033302856852540348242226094320917409315593241299759314383609026953395878753968625011945456837669089370555965354848146730807353277078001644415402422612013147633827825854148317658528970149698477025667815859783328140590237263621576759878074688802021568549671344911242849380847466584501311720009918559900527237025283345945598524203651443068157814375674757977552161773651341095041127692147722318564257556935284942178359413396458385711096067700697345999240192303832210477895415476770943360542628829924961772170168930729672095816546843238927490526182532408738768046687030847745161881680364154039896735777866354793565066815410172476640090434769034936740462193135886618666508474361275888039475901053567186720291403114083107220112989854557392154298522597405347500182231083962642992663679779340469152928623424486083878848864361015387746751640627767580469114656893687030978364824298277574012329627076388303313511589092085297597437276995126255597058848307473710639152724009540749264058234351486556903873513546372721936880228559589651172080928012483125609701004002622170485799948754174203405835788294539432182973494408952031290937393812640944902613875780462099289957944742559354335018445530125569479661595783828785587462231499937766534014470922286761671614557985530111342467845807489644831108122307409878925465701266852182092576078343228079888048325779833108934202513638452667368701217853164312450284670657132716006934856025249130995993544228997881704063602139237508168030808124833695025973680345141235785919280219543022977219944419865736813241111638790868683564015229275611533160071057309151066201328306427938229420920589966176186083444042659476479864781536594197544072660176453808196702502150086500837568657472474904997012490015264888005693414340598769969139780823076161653911137785724599702749702338540033289043386460773460334120171818572760260476992709511336225275963030412425443086099633776575393547705904678398941192622033491907248224217589229999333468012002720863023265716488775269938425691364785067651292649454704592063185366518329516998775965525328676957236427113035264127676335108149152890242368597984822698074308222139221004054192611789048091890527422377246917449560446338553668670523053305556015943959022372061131901222565679879141274576055333203062953641585064068248471709867159915420558139794029485507118988657655528289103745314004679643506038856691879340402291168153196323839872774630244796545855516654024350143833962147813241827588657060087186992088146738975396144518203961142062049967973112776325808276862080030021188231777217805337616973208095133461287721869022953449300936696110163965100273565757558918583588212292576937222138720180463228763738997769864596447286263897568116009171184170901255396843002044598909357483105835905592921909068658027151597662474239899889320584611415479079337432073977120135797018998646508898302856536858927951316817933491025591794639386379515042861731897143352905149280242177343889497579984484275510438128992733455078900825426199922070306643848599307175525392223021001952986662188033335777642089276922932340576566574881450392866357208360003539339366923284656229642037204558752587226314269334910459469765880692784399824554014758707689163041267883387370830427173088264876887918785911678734870932765849323641008727024997234091635562579812167000930518542668326491786987946094816166901250945803872116556622664284148631874041965978974457741861282991545586409676889554498467870306539911843215306567228327740076631154452606884215153177799013319140633909601177751757675922401406870954990129483730960513723219183906612999535186137446297872990734510524957766467969313321629634641707855731262992633528341200888126056168846051625099997637939909807538256951783401738255260791832463304966909508392197942933894625178680413699069640023832064511345407433935706641066545956161606872216413980281905081513095243309101120118439474809359512357569414332239572167745669237035420113517567714502239331348258095662566074683321343134207825975829622659687462602100838556270172918728290581115521163527621734625065707553904389518755131676519752330611253224115490061824228279285535095431129412779959503065958149350382060552152552927730447830957393511571667942986615647703988208936604807159738964016784261307075216176180491099933573951337124714276608875504107555930556013996046054614927686432855338496613033802087754179085602048465718129276543729590374139215843054307699864045680081418889404121918032414166605100441901932483795043760036115205495431398414911141492956477617317691950056528107136683898776867043818540471543699908048794606042206637035272791597222212290804454837806525594894344429680673257545063563012709532601470460293307065282539989060349333748406055760385041025171000131288087297170733747225122198966361478041981165816893723810219854714326069136353807423436159392133665019240241536992062947662453223353579910123794772924017062822098105425068928204453778660823700899475605899882821821984828554847171903313493069367242467563245729359619028470543635559059595365079775724385594955840805933289356217424292836436361800192679265787460012578713181875349279518709943805903716626882917267326384478386307430903020535788850410349241028834787171574224401981458256625014492128006835422229741287317992922960242377381772974694797147972025008473534894289323632815177598432763932450328236499633618905071991384673191111798839361314903037142758126882732969707940148381140462877718857774517628251214393064795654653581413445759949439527884133486625420705219133566123931635630377038585090087497588445265196236348051416299442450739112308451418343990684182956760204334728839124623752810655794527016758632633962872879653954686062842754064896068982725700021155333926081561280904639302095884718395819988014999386341820014082113014538989565285074674126052892308553286734727610180002901685375721509029398521650163126632368939897872962038415396389004325166581237220718955763349472327298412099892433968459115635144063317212168229719896105343540609210557964011423993422702937379647251914850996942939773537016962927523173998627195145798556529290920234140984167105310013679977481166959543316357211784370768843266561123462358387380070109148752279884461164838387969598680044101248872405702797115290630331810270952723705567006695805589957379870217331568600942153912676162146088332038392513208987396867682997653797065332696273522390961068932695554144673964489670488677013084444969882144731550276267334618313727189102404978680545004765284514118850259878755588419733636980534050335058241441142043609903133448548802617028750972105010052914398649472640944111893424178030138388424350109909142190345699482835082740556609079861058913681173292320940369262226716738673382879795684424284616520537992151406229761467882758153292243716008443900912754986847920465609595925673536100419716487242228079592515407129771875725134052777811420674477550241071516909100786192329890422274041662653708572939867496585204112817451279142780947641667868455359627904133013439961793452620771292796955579012183126334166287414800500156540351515967549861218938891886398852822615929177107334134388821039017872834456580775166050530178270512365787108238071775091158289304704410315803754533340711269056006016628864104735205354041336374224118041412958572960071153984062798031917153013610932776945321375656264289565040771306632208878295895141419314517141604207562643637044183803175062337944286769985119915625923138861810469838627170143692701210481144092196582176274137931421909540452967772490150519822519965626064988821008877627961576512611117670830600604111307327447265653914867890302780521813134599075148187749592466320142396743707823578080629487754101500023495614493335429623984828855593382102705509077103135485342208725568803423006258260798994137022057052833830450249751925643867987825723369037264415550501850426551348525775552519984041006710669080437057999054196778131201793249201820449706260021917751588544105502792626263695439663150708306872554564038096109833784038107399116015891722496895353098694412515160830377699178785282961462278662858431544290109615058313270640974261234956586247383729900857535900780503163243375547535926456967813450310417479978652040728958783076045138399195874274010246203620419538410060035651612820399939967713255147088052140130970428076043413301759550361540400609079249317224921172280930279784985383017185591190995045837204879055585556567257983118515392276162808991360099543518734625936854549104734338369504212969236389594211894619231602204891571156041423335733036697549807522522219877352226833626351993481463496694801152662961422712350702217583613903266725758071413049670481333042941939367041081908013483978314898919418594380653028319725034375045563351793387647753791864369644163262745723543421116170578087547822948588148218341058762453650926898373762280418612584540187188730285957949668493481404839701698521728170837943135854149950963939129602111492274229284055356587145140106172838510149834905568722226288066410378196046107556985941182479300676059880292265977500770029732465565321579174419789125400462877901318774100964871784284226632185702586491068929531481340027393039053112846063226903807223804133328615717185927133897622975721267381681597262105481544385614074620268780318065587023897501404630867281067031880641906408334216415906887723333442577659027215650807836491924222712981061636257621103191480442042079609644876670437047021906222306571900963372776407360288718793909077305929032718902639694020941144200955994202648418221503385909268659444434418062348838893189184375467317036310048540321896796074473953007794379228033706485602919511562740304106733112203890829371277469209358518287121279087973586829081068731765747914002066812598439226541821604586504416750124117645332229215866523279179887285266789864177148449613856252177284704379007279237486513850048427103169576643570880254502912144671528719072677214686077493920202385607150965084003956439392981102137709621717508281326499915709415410818789300916309711771640215546043362407124798900241922775288554332244974070289502059671486218839107163639021334544744523819974694590797899882930513080484597347212703396937292090592679481607172631984536196515230948114313392360736816944364739655994682139525676423237907983938920349529995100176660464079995640627455848901836432750517677566908013705597273919174587310624039394576730414010334665812524498066865895674528630496697320020832515693539419149504716411958596226384068053942326286941297826767772057995970441264161810149880250283035835747222466328395566650992468833577097327319138833573259148292460153333611017188587793472220881901023829363998143220111182628588725015903513852664519514488986795991171735298758943962028976437818332503838110751165432564070796472840526643244052828405533156746094369581309641647971788319454291702444860181652572455132123393795435101291147801753772022943089062329768564478731719413729100696535479679808186150769003278619245490280646828304450544816156362412372631296719976959397656953318996739088947869940046651778331806980062478050930255632998089101874455788804547772078644176773241319072863065446319509804398798913500054989685619556428458097671707908293866420976448544516678906690140366175544113221409926443716946115115165623434585296148266182762261852076883789877810130700637753143923755403327988347621298232204790405628382011459523474456679480116578808081841132522754393987307379675118185360885718976671422717307718367098846800534848863637091058271479794304789161771360839406086808135852106977537896994259114026686290445303465665277571920713812254437818820525000089073876658097059909607032021363855774929085914459284191125048253880695026950947175260876963596921633447565357154510170819032083628308625330799786299839449411916811424841242387354577198354806870510894993184159341002041892599961437984453823529024318653838810286279163037098583753740560291457291908340934328755726455148334729892952547191145871939997654728694842825034907933876011887765281734080022141780233261314532103134829505440061432629477504400100387814181054789470998967653894164234377833695668554418218023463019234369504121628610220317303522580669101156268449334695827077332299765367148994362673753772523813084003440403180172322826187235878622733799151068261562443020624938794353822649956042267478488762290343250860558828023439245430834818685279691234128922833344982548786170456102997847896060388838859173304743674674386342278242343269780680707468262175326869140845479222815877426376294616787937123188180380798438251650689856471904565285950938177077714887165283512286807864798015628340927987714460382291370995548500346755957999775784651911255102639115623600229990321745348166906144490209156590107693601811186751659141008176428441942812674100309683995126903993667587244750641119569160179606629274702312678587874606777804318020357625742611147383974208117831669895816110676226788383633169159304569915049260583914536326625621099211352005599547737530633233697743444488734052477807351821437256245766100478715155129387295682409884445589321135160414289218096600465299649031682376656125015634047011046131807562827861478480202348723858804181545971399651559179661816092536603229183692967878352153160687350216237738016397537147990011787551860387750634098140819652480103094268771762038461990119433785509163473683518203286470744494809132122128304487691265209836338815279467671917741267957794406062828651565068478677553228154672317740272911466513229429765360119238543021127519631547901314178435692651602540098138305766597407765709314543011161845952782503142609028216711396238354434842019421625819119819075493088903979090637573618457934625992954485261390934672233344035949391475863239346225298446795265512138540863800527763520473297892319976923767747191776698062222698420458742917078953115623096212584877936749363604228150134534742980037098227877365433473521662045460261815044979196621525924561412612416001199508097601076812145438326021747277411443215494385900647014788335306343747005881622653331114890673535216887725883615086861905978811618526766295283302591352651430376486931726009114613821219014380173013348925499804820705458827405964671375990136209202020936557110607248096339829136929215858532956188394992131636961814672827162946706434029176262549925934447157171700300187282961270841872946385622571011501488071833948185294152508840323308027935784446005034270773992582134184049635156160289202111833347005349543359106398787438741780004793750114247660881056570371966704132169622907598326422188240538297320112087763503939986922902061160088842863105637994225671509540941831306049913472983992521773515758448565524141733172501147130537740401220608643076607292756628633420255151658868510770890507044134658422148627224675493981865846264645095434667671133071194130285899315941137300435899553851583150603658793536739276665432740582004068429582068594391194968175312157746571062165933243363743072337327239006445727309159287943890267464678239163468249003683858074543283800421985675304145471237210127520892297495319244717421823082813249920878075484149932215031384760472734838120389953113867403908700665875264473324958555097991636033075238471967478716277058449352113777379208813230567352099403784983340365249442064184379980089351199143193930943799314419165786231753220189516584458242666679057817455368630878360003405007199862389349667686676192544199050181692226936503756253922919961221995140891422801946039152628704360451753087117409185309450213945752349662641994456441771357606394428532644240685375955125462098887555098007958074925303978885830507508169441599081292524998104193344847230957491912735586540984155380324569236295745349493755093709246867487862159483226466149556340995100484279128825525015713936529546494847094092554506003916633056740213135150388608869710951796662647606203529137254124869557280587446142328841040442171038967406527433146601871163230816668215823856258139326149643285379018440924089771413460751981420310573636570499232622513280771860115229659759219975483883307798950136061640088793398556016040207837177362135183333547654701842991689061341922217899278937186180822844195386735869378121758101964414001279024129698244031491859074213443775184094926366648759802239991516864783316635827412496486515302545285261396183651188248776965272420422742387308064603660695404537356051739338471188110402987117914584638706034671607969682600865564909764061916067070805625826167177274258613850962202945899225808710023052772491088964921923492414857678748507397592889338658278492589736288486375295308730728161852122149129364696736304609022813522012095955312697668449902966366096772714261088647951317426508513327925690035342535084398578697802451595074374908115510407760272477589228959501857731742263122132460560017349597147256825168131060785720338852763629061609011352337616261838263356011675336265168648937312240550285603288511465389257062697890361469280647331028856228569052804727154486640456816759245738156184753292544529657310973829010320680021864021390093180361367663130731166875868483703197292986447967647986562241125637408783715206289272717322197545788300508458080951420030800424647535263893999547419457386277262510854700349319311377828520584473227768690951338503330646639503469104855186264811839870225161123428597310508698177452595199546854836947278953851321119750919912345763638422428808232427317156244847512110161699388603089709037044107036994572865341567810073300363400229137333858754451305649832840387472063836731110759848652403241624117996008174705434445287553612724046310847842931262663396328071190892437952699429889988775430354422700088238019139284145684413139135706838778162968614052586706419105199737731892086547920921053644727602972623680546932820059729109270172884741713980142563341403334245783220328148810595949774393997676610610349433395687488948457702380193484459044442865861313515342928720773740537801290218168900806373830927502058526679510512010768779800358301996734565070385047133581391477932186642204614684592358013070495855279083053417963955476118090816506088574357102815725612072714423116009257790414187737708413485528472374153965597591262062062685853087460973967597418051110082253739563188349296556384477891408823591552148198767058946793320458121278995693117823279901602353293375917269541308485518444464001607514574580088114134752183978173445775809792312363681664939083000226221215479034473307575838987931662156760241153541786957282117204212741889249900690588808453592415891190857086802534691816299608669657048887192616205616592702084122458576693592690857921777180466632944927635924085298912547591914188901839080683510278424099516499093350602162099777961263278331791977381209571642554916932940850153251055258005162222909634317506407031685182132633930565639314201098706656669931452285446448827254599258437817291139691110727395619072313743827844832842029329473051078270876262868018038368782581347616285303009905199792752857223442356980390596894143564346242973505473195213337910548206580258524178652800216984704486201764145516806973757738155536877521365975602485941987499008437953114845535371480726012419172766806288512433413978423225359569736418586663127944707316646634956687431691762598266285361521076976054007171575017501722315651365233619945530524670298236643736086921470542560246036388489901376111055959240487902485056616142809093820831905564127290506190220603904258973826297992136501101233389104824913421125974341559826141149690297941650983098915062159562368764553030275774686050023627244788367788426751236602003672510787276346897310854279804954898339781208763324715408847463360094965740266960282182636961813283136193917482500947684677257104134983194972398698381355575053186046432769647356676945213354408506563955578940124507948260903294219649275127499356964764724223393712689059187812723483052333450747097456123075963091384771679388278059982554708104390794095625245796535802278509297931000303580612780340410152771776268888667004453269726480033261925917704554254284871143379191549040186935627653302230223341569505272707148346419575538284890412949724850628145065040758906714350069350807487734759018464891332211777682884629662518634765093602149708984712808160158644827921743710062586553060722099797646027403238069481766087695261241183053253794301581925073550340657516626925342718170755247353547775292516407210810947931727564104925716406357096120983764030186024470540038777287080803275382787516237907383826996077463456571568097764072404627149979809039919498838749279734450341738053081947015184276493438831531776667277740137302796677363107007403248088091805047998691372666466706587042075511663587431901015643353231299542850183168808163232871108410169203520944742466668667789117847210206186594262855486536648504049210156657267470629828003170129689084727889287271587411554596090105135153441907032258579085204278217375924648701113644173790829683876991500799222254112601149399508397327567529089375772016926459969932552211455481165186194488489901221293482951083690258402424367998808064568426980152052829617185893255199453497819295786314003056401152060441365443028673415559140675345081499628775196301485954246755269813125839675862799785556719769372432416047504882228741222111981145808167263559140692567619712972061159068227071873729231362565652227217384911101808243400650846495077373660057846597173303538210115045873091212685050459330601591966132351375228630264884929338694039020935066627096761222329791396510879143068253321019180604284152313874696319156767881423092477946698703798493266372413709089647211981799022053213735058839415591180515124666848856199398370239246986270109342186889235027356558465612972218130451419842632897178529291877543067970891871181308856091229787149593887136163372579347302672440356637565958490769657008762385077323565602613215437345126034789831457770609945178408269448378361306200659854926069896686691713797757168140670365810196305078147608059026583536813539711945862381319119399012381425613137199582269620551140550581538359949477998856856829489147532974795776981004701941890104976256760665054058641714837130114357987447919673997032304442540890852411371031847950602929038366823190171422608391748876520568508843741984878334261584300211973745300180801317454125948529393841034737380689504635905612745308235399631314123152254147793126461159195176417549003457384685397133183480383738294695640151748641982728462578278418885909423662744790007257696506766494708110893573916729632149470749649958428524905884119086242188007499472987149865657356812136010628707349367604569923578540519611513307996703699488591896732582761077511881962275814434659597323799776348523874078235516779114996478904452168940897419309857363791988137464058847032648896565892052988285246243819245975762714866259280007308593382856451382397626751267560039863103047556081581058195060382326732058505403922085171970766435865192559088194366848681809506292175747775047644598290471132750994791798176247000268923843086944706920773064623135483221729091519693254710651883313204613935441887933150201378043134230356864037674113260826894367236079652024240871431345946904032198585998995703670644587129174355747826057894137842525571903786838405194154379031096100845003194801490979380011147672269715091955909679019085539872290208620234697227359590549740669615387456215877142461030828589362982985218495059505982453283075366374682517642231993639697196221368375233698878835931722866636314735944227673563780003390149202398565034334116338457499011652315041424299604983247940606077090448117081389911854395253712404694756151251557750978408654965450700284715693972403002339144538607396140174477544511968702443173477898879656607636146751146224657324978193911414376418204579920838132223385621672217109360021272029267101678207401233196436592141388458648940713878392556575015368994079781810734420313039485720661244257655504478150023235549867107564492605578427284531305717439605767896038501168178758002528773253185898950294114221296038097060495809122651748470397561838854295377064010415594939540024292511552386850720062415040558154288913090740018696306551902637906468977579170820419627063398383811472804158141062417897060431935173518398395488369292361494012392912630737875642869572138533000476915376839583085628025117688041580093128453056237029389322842540276441516301554739092870865594929183269101929465426798122345432778018246974448615201047653804904648324328601331765956336045027018007060787840443270727779720506531888692871877789392364677203799617082808275856776883318258592459875139904866515288561954265157846893719392706805197548201700028541498171589910897953799739271881272816217817268996878554119124341279609676348963027071742022530984128740529242632492156474287533812921282368094903955051866653689618370316360725648475892044317458069546580833568411067140311628095720901102611119075874965303427146029531139561182707468998202416648850107228238130238199518545461979241193187011765688383689902286167399340750662058365728751105017237266308575181568176160094554912396576599856687418989878862963207909649764514602557043294813303249772265454968179826669716148617271494504017191842288356819732038592323558444777017679766171740716784912367243304302907450743081012443466429001823553335014258698047735149195570996209230993913511509133786838613554737923487666895497085923470855078432227931532100991533451643344083189560487334488887162107144880138225687107209541608813830507238043174269462358018067184091739760861703048357237914985956788648158329399532257562706608281998675279937336964785286439696533035505416323097187432981769896303133424327799656460601402009371729391074004990487912719255694774352344450490392025324980169199416640888685480198839032930639957538619854796215863007610433937899133782417636491216879602514903673401559200258203209711233207849950904521097330229985955718974054953822653036363043636897013286969828937390362375164162557179569870547048808837183855367581150396476442877287657063755566045961214587297379304665100778139577786350192041128342283068057041737709855328791648861251220008318796184389553339004755138702069707098985936290314665398087581427116208162594763429604390505733576870519370431077374227551528059969723184680398047670977324414816688483782856746584000407495414930887876253566038419038121122757528559536102415530951869464724769193927334939273971200990872728400106081655704353532595921409157036332009870427586649425407222652074975816624742793361016579319527513769402950960056926994585678082270575120184093400786167108335005617092683718420845575042634440624990516529926251048754324499633109575357534028351040758346579743409425897338919207355089489474054709329562693343943376962764355028071206179553846409131549340570869130840942507306257380459774029781916173509374129203446009004899993828726322920480079935404081565801442228686530996451638924497282679769997865231302917784090231315892090586479482773533680006220701728734751383739655919629940358144023371921521717942005102070420923092789537667608415386807253558367999893096339643085647525850092945241968884648904027723953291471221390682957264681213337619623562657989107730593485824950880526309394893647311269759979363471255312603716331370638400253834097092526407119710346245975536532626975145487350360807587103608283913077004935324162978778942780351777966373498384435488816144754346699018834996871530296676699727464121891579130954960017263564659055857170868191634144182284545199563811221267589175600857942593579874999166534426466939473735102965534884425287963684853145505640426810846446867358550645853231658999322903259569972374807648242341871653376432109242955154666676129342914982619017841353505643846408349501343620467539431933615903306147043872697276846476230156288027532790827745478975810614440913940323372963299238799169728204347132598331391627667768154336389234569711140916605881055796933275844245768577810287062925836628336347619997338784038361628670310021191056251300130372582593942469678829054341921251368870561461628494581789322074785983178379333497046103391212323452592511375216019295955815748302668679464494587874654848709577900772432982321434142224986360381136440038631858610216962413166547536412448685398770682212713102123774442358957280757121142451664287035757856349024611905864732499783283771588507817840259990133539476844506058123742994891329841527981401641761185964221022463299349306401055558652710088755476434188591349641928601810315085571385184986078340715347711152616919209920750475692972334775457379011865717858642708510451273415484106365182346432069979547943776895831160658365767506873758607034046814345749147124510681645725301383866442905422672517173781524190679788352257331993295126983798954545660770268958730360638340455056837533603408358322742094908277475543480567499320453004130949992765571045630359762616743105875550600378182476735568571695541506742592027648204753507406206342371280091944289454952154823280523302545911656079962903825785161171702516303751912545020471788235895367774574227793421617791896102993208751348643169281984264956147480111957536594268853181431054199977066462347774388165763327367766937277238090295028210810888883727610288755315438768154320020593832759369029518644292937263948623497553077915920443309138325284500870816817920640389848630929661217238452130253389437506973307622197798443162181021984388493245957894668025098145053841371132707099100360820182718351998995214712633328437448924312791633823976436229256110114933903796692383175453250489633298406318126266242869375841433183433555644970788087435787281723015508529992256900928152085837851857804254468514317790810430890129197242232400545861149544093297917017379461762187197436532635685165124518178635326748275509669182645895827155797831509011431474997933584304087229875601724116671652801677228495465339949642912806320905398722457754970335609224727825012273844761958795548258759773721837092771666334653799095763349399644985822010112018393238872086389754675692899781686745657019246013720211171643937769931692954981125114411376509949399748551878600958227832656868496413248967645115472615472943891310419819582817558744942609479812617833998327648113676745781223124582060334990561603896418488478105718277470172098449370036635273804861421043605482544868866414464139612822325340601476428277845608155172715674806212641916009678695683635047814516478520955773856198468008144146612042903634413614871797742482565535704707019012312183943396080311033717167036218160462404629009098032445958828129078950728349994537355256813942601472224107999265348734373761583381917135164540889190339814823834434085135672668523090587531276480105166140862024566338718517192330110021618402239329129794928743590682141014593658657729678739969884346423055330435154540198252614188991883441613019192373858050461641728451229052065577726325302130126887378977454477083914018094215144474129743254906012252227314835556593987617686052588474921890043428557306591703180618930602159043999547280054187613967651114296519191239583977806588005995855776589328230738773641508838871584377454408013558539010403469755839681946361572212218858830090594042297008563267201478853957538888220661879855700618413391245497620526995601586823540911264582908031712607771725122859310224910130550107020503513413943635261789678183852965955288730017176824453166573545250926332345441850042059975153266752062475559243674721443862270905745620029302952946946248356605793505976138845492524239535144235400320043502432379771808306663533709774775753986413647668005225769186302519878397376153396774195873376403286672950549959339321918932476134798211638586770702313080526558496522261536464781386145890225483366551501636083065554587395530367227413486901621505075252404042667100230047473315468830177627747983141110454160329989920983785447815176427826930716647041524520737199148199150352359485955649274075326074983598658688994102391689755735412941439872209410162137641801875765804317983583303544722815613761318832007819074434495076220437309798675051968597367200294547802289116561783878736558369283132680738043602432758960517166934099752445243547836373146882314615236004435479012977952834788485204488844075454552003580485711151077485529903731468645826597163538512530353822725253385206535440369586306201307162025737974320689212375267961619282612723831740731871301697190550564559519609364656300450206219942016862071026561631198584355437074847300346900185954964351538295949191877806431300237701462531523999215852263197966380029444922392427592947044030005509829288529699458364431817704519308059488449166930876145786202156733962724087391822753641824052099555855323353012667873406081596485469505959609917973872926024875799745327708628607034640446815871233490646225387663767965045401332368217194780160646924132688742127710570759033442335121232141751811235459393475894092030668234906160998545902103116351913287895465593645856568655530041266929482952539265335640745651587458592707530214529633790530457200248407627823654919833566993114702583952252904532487388950327422025177631357951423040049256645424192833713706226349849259055415253308894754332730519976971187117472010924091008045028399276645676543889427347633303824924188317978207120321158249304018255570504759361773906958559165592438197801907446141920013429528836607052646180479037126035022157954520311885315326400257130115654555500306599102997489815257175617984596215538509693629251978164464141358323531942967181886738994792279307096217984321087410583606052352978330760294070146439634465312419935902628466643628334893105957334502865909934855259267214707140556216151486904975878029862857404886938256821335321868133933484395167793981802757446834460844689719532058806132730332941317342662072792589403844156257857876594692611240273669426206666268171801712939347421753435599923503314689785638577026701979574362618821549948979424121650443289841403078706849525593681114222846144917135102496685062690948768599626938189255486783481650920803433038063195427048231091170890538912324279506427113451031471037734646308553115736444528108631015125742739897225071493202879671333851841187850421021205189468134932491997712530393862586208336310077342912063876231329220162676761047685281251926670598706175083007721364438473118780556753900138097452956644644094662897419159573297320683375625998569233032771966028001279999014480514696602889378702630637531152955094731470281020523406985871934484111643365827612978102040095561963674717142162338344050820034836647805183263717193921251926611012316219314882187646429743607343009420834706813656479711829005035802088028019155473708219691249295181630083540681703377043295573808939959676533915490105012721045238994119383651204182723765228085036851674339657090803258190645026289663329000953255256684624103773487238302150772025029602579634904435859294261434694553949371007121254186526488581295799413251573491500908419973628597072150133981444075796784155972227066572751231535660736885479659834993233587469552817489475263971453002931034738303538644388517136983183732081667942736519600489955470658438494224243516175743586995457359932877089577450560017325474967601141246721993950702002236468145280733763314464179085720988556043490665337239866706748115267372741788069960418881953819888718371272858905311962370842482095557581466196081460006449863267274653086304982694045033491099231780866743424667914769477459362691041596673948420286392654307429210474982874862362406397597450806082276942425101091072437107131376479900768670441325448756755502778455284407261426712117408566323122870197053997672764857165310855698961629064306591507346270272643809153086309127179217980256021585773723605449507253406451704747554391088414682008201887294080357069584066660925739014824438284416606351029810055181500210817357850437425088330300070805024537361165445829349745230677390659493740407181793373209324820039120695178381714525803575370148073260758031802714472598505589810747859776279905014153345060197618668481038461056562113711497704885966440438310015192141883355593368404796055192946277532362539377669955843288076625107617989420845626558698276774795595872263280212830839517327759674803064227402073977879957325074147141491865881639127179501537839221067187827377482527735710962233024619894930734050365542655481525788563834150963791353261086806713024727658771622794633670087574387860540772544527949786062548423026306209005524460626717285503094247678266406999762012913245545266330260772098138865705700242070965333970413502043546889988706358013721793274523267010881023662452860086061323361340128567164612342188166601132408294628339564672999596983636448854706926420107079995990040503224994889667631581977159139761118509520926940890612118282018655005432616793590251899438429075357971349171294202716244833225815719994662506211183308801305369251101380510974750840634966653701401736079542139580844528948242228462288973257007790131687578993774592422036101555514508315462110510643267678139574034912589595714252203109069246883779919932731252014446868294483421713111602711375299073199789320409621657246602691239789760948388581332291687792062817813223254556928905177127796548519136478149396474518542234597337824182869848252535247830852393796705578348211735121544705644574501500871643428036030940363364557854551736852187537551980424614064857335664438205924837457468772248836069535423365146257428578931464198135131977756336353661450649029184843960944008681893886312435551091988441122577569246773154589841219020200733406236615545420083917550157381592367498892112372399920331707658348457790041233076732889358270410028847819587803430549832331803203566363115418942726924117886585187238331938312485667420127396621860978047809756601465261096483608989645240991259892871764212323896134570791056743884164617287674607628574441750607501619500920282934307148522139726503699792765755459673205021702627705101028822750233930747515895111328886312377053769245073154115184072446290097705584615318392654507759799333976795373905970897156366009717556037027305955427050472344656426624519178816004282172903697559575304373750855860084414526428883444397211738455846026603490494685977664546245826169504368069871197679972670871032216459892200762205701123784220632029643330245653561015025244807330882048559223735616109071081999597006829170728901008191884618945514553566676772699503758354589923245739198857719759613021703261313875870241845371857066667731966988206970485232320809848184117271600480363666686152797781000998454290896199965532875205705360434381196745114587415104141477625477724174844461292112950637655242676308656304536916181866923780680250225977191379985006924071215386413800729710478587867932578760559075291267220369349971552932601119228890185335218599917829126204646182083598178382897737301167476147797574134922128504849323872064943163397517439220243901729143682603395415627633406976911268143492973053814378675963883682893952827210165371312592452633159073654736472713172054154660542584188011775406390387500978188808102594334513208300746772236135782025714068216815291819921693126122852366985934392694958916832768480592367660700189137479749681961364446071757949906815886233179844879769288136508329673546693366027214569838227307287548344420164590562912633452782093715138103132714936420875049885562387960539277602852623906987077708789837555844977897638561575502312160797303315505068993588453976836968872675570434464357153771646169252694455149640219763629244196787331899838961969261589837726071976351100266376321554571919580246636859074659967605007192318331741879176567009667335045546689834267674163344692869858462238523436255884055063282486365976758829852835762103156820518225511346150546856099537382121787012496953890286465945673413717018400373265221587828709539865365509207600786859565949002881124805325111756636209409880869536083907700622367214951291632118749562735525447743254851717627696558127777280381079378523093382393643428942286649785320065172620122994446387989666797321024258303050704937580968466786180867142896412190268587962228050548569367513421037261311250829426004380087204490668253034028166639747653465315994829838317301279515818951467498211501254964655933340816244539908240463069999580091029998761977645182051893031977057272666502810270051367785086088193339579707672175780398524463745185427260635457873802824259190344385440022203545140979126008521771441187061078548196998968376554159068804304835696945776006024419246419545501457583113317336412549080483821617924143388562272576989561934542238785428841396417705195165575915270374892421979338423631347107380481669334579106032713390892039820490732433965100820984966927941608857369612412892140138556718086179377381966991378126588388832024993906082204203695594750506866659128343106743617421322114849046500859425790433055021602240152008113448124779387665265958354825242059033152204150505530546834578838239150174875970000039916564233505365794840087701595325048158202711276261294273107661050609865721856903513869236185625387184379021743436966942844551598641271242330456642537605073908981929267075215103454389141579494576698500594602735433439244431480666983397172608043790966608416693006824537001066825128540453285963234484055261592406095475282184524438235400384282875990177209144407781475551802907823484884828791056389355358151232848743543320906263423725101106081613277821557816950549486716132117826483308583664787794375855197021140434917944960681715534713981203971320217809161564067676555940693737649023851955970167471227004140424012666999712688668901836577935972542737394971210548154805537631983983294647344992993530926854510531344956422013728400784687486537338777939844709002459651912219361229754614465422650194100663736907307009163356296359087717734121105059063785929334967751270647932077812426324125357410369832963736350825440081328791577949778845091658766731592386150876360066208101430268965223969301845958070356281525004576809148179912240994629820547954864903202981375720952160402215568076426511939434398410790570111885152890574180073787120708624029205692637494765735125239662499485360365267477074257691775384384400273889460491432690856899611291144604402236731602237156096139593503235238075715581022635358666181901278436512273225314410817485400333816302388547896254818739639067586196839785370966372191834182904241976115650313820634473866015986780706798640896164611266134260038723322460841146531599800754415360531618778948893831221759777571790160504089786864017313031372930811927904932232847599124202982120598436608900060617954744622542474509623187399610330227691307304930235570866849678671921144452312563857346484173654289504466011761057116315182924195610479396673404064258329404939716777476346874761170258835257041673967538910919944090888972701872282485484402692410526747396762313872160050377964310659632629418585213579127379497990424573222265128952764668678224248344771968686499967731392846074308779623965079066207108948394456295348983214778743338352731289544517685180415059326626793533809731829377137952861788233041832159012898913828247028787707529949908070069051946707292088761306290322585180977488624159990000400270364988233222734634313038299493323492725698777166028507854202841082587074982440592577724585595648207486557880002031821655403351056349156067153888243329463664991054198753303605949282307137122974470593563245371051392955632165753344614411723827245432785338395994715381919364153548368166071019706800499367526449022007915417395783544359365472401264210210670498155830111497523632230213970634170661845129659069836024156637183331191475734432775544065362523103676108771260110360439549984397582473347812825930535724018844155962341694630863881260691329338737377101764953101434231096183237101312637643910526297016926852218805888495893723567475657444520630040337464365484432465745943290713260220907813222757511540614140870756127826053286278640483146339130599538292050717088977678625417185269645056565463319678759749810634369167105133158793885868010616276619200965402132807678921476279535376880372996432161293334554529347645479104747020867501451725141491620880177228880596195421230173552418615735061970359643586661166172053511727681060908718597822985250357422954477561574755056040999542678259022431652689605490116922644037877327624253356413510250608617560426569069311793841151867435963782440613800000244368118874066046083846259714327485596590358045564758628577609120381633850110954029549724825715464692275972110898654621875478368943121542465582629784446809201551842341256578183383208265210554146254587433588554155830264182941164787140871093511047859823879301325946990539300281432617853613892517721604003650246674009608260488818266152145353383943373171336963615809376899102460421697774331950118269409665704577331736800736329566133328244748390197561727858609488482505740043655322762901628734302985807940719712368100483659317037385074619171418858364894759554309536457408774038439187471495596660425378554338661032455199906224356515418891122516624165308202984235773409502475913596878505088202253337848986843502669296839492211610174058261408139027518454478097124730844463919610362033437408546797214059144420269243932351034913805706605240064087212953383179816764269418047350755578514065587253185053524341149943182572058961166275851367775218572548306589132790022162690903033294364343188146352257401531126001037650061489737280653788701267778243755075419578350090310026814497722772232478993605804566930532646221957928248541160482516481473432877058043056826460567570215854105533821413960402845308808485971065825134161162769502578855815815628158067462838085109870219509012952453776744503165759217511481669214199037750080453834970147268679608664810174962881987825803357304337875798841574661499650089727738074493726049011861347019877697176539696214704649489630880978720708931836154792392169975300767629969821418218866436490780897828292563977076749449398943484246954074989161325442229408730822499654521722775442964838131423689120779906210062876479269719171796521932008001795799480986066050318655798130208867102213092205246725126462907545833936282106798823454369720840365387284840342507593369551592300942140976338296668560535809185535300953063065164461475544219258605196556691776767178103176764777928253786853245473772196382152321256481320033738309678454905134070217253290433732264397615747564337492935459535284958859285239293259955199589658054009547189603339981949279918009412024706928707939462646072431169264310173585741002296135623149101019033020246681465627603286650478258868832887096449576990781390834750177063059766187748419217533592983922261670371644936742668157748828214476767698689989993829775943464091076831598801738914003673245700859145594113369269829832715959278312636197558691734014051814222998754982560489481485102094556417111056915155036070460403125967941519394458129377551084179457762057904451065972839272859053039622989098872805082027430266122002321574680099930690177751820516420065136564526812167713216512155583138767766149499818747688500854962889099768110322634063787380254150122774085106034433222027829689454191546814635397885728018593814257538340248719927826795917153796724046538494191757359056279172395778533877432261342546486509988137835714421449650583376162640465833219731811725310800131302455271524804317168458613517370816471846479163158218171840205114225780160060565197931808593242509086127955768902289676248018550809615357664656851146128423844398655460341206616214646742529844433743898209443201679745454245232396850542284754727216952831162938958322467600556464487750342660761854422105643312197404154510792678918931178446735897864359478323154383495858798273460577197896581377330875439532449378943354074243379465966368885956750187978138866149077661404729015178038381217947595873231420665564722637684729114664172794598611626777971214535532109858911422411030873831150842449692638870409815625427783760497246510663593237394574487908335424374845127875601090733331182428062166819179922161465511992728392860704864964386579903568461426740424968198370039155151219378702585202226762787073803209498937398962115714586366778726768033901864675873422138792298703337999720666256701858738116773467295775461233539476683577170199385671402823058581432467065243559075395482227521766021895823921150062860880077744228659508651303784002359342370791811099914536858335852262990461316696976106802011968848131891506406433371095375239186285903059879548052276157470653330730247661281732540687618398042917992791596561137321309867039137709399696035403943014394747412764095596998796894702735782783690026930405507526215863331299866105000163589956121909766099252563547500864054404074333919522546945231020975873724846584077848817660430779521452446806299760772708003121372007771506963188689762475816985516042641272270485969959121670176714415292356196684757683850654888043168697168588077106889235699625358626965438470541708409917380843910409680759053701566933467107372485501726249083534536810923738934356816941478092417115825922404633647164174733292362712374957511552590476067885798938152249819071949688126162249429285490041327160312866616697090981221325705828940631832256272037579824492473882017304213919463711614238214161739387602280624792494784111958775345858986270364615127200835919122690064616911941843782460627225736487085352308005388731974424547785099590402383011010992009554167988171622013587316276711626240431516958231459834781381926110178633638265160076613844808615055233422235600867388079824734249842329746708449772204940302290785664816442100068250835922533903816586986511340095680203216442781933094744165804925838511821882575211750659997376111317493504506982378923338191015476003041345627629227587619055070581545531281091461769440116875547538079171304948641574031618164579723925865605526176064613250913299932810882515384826264901578283468443250038337606515922418285007540270392608517442785205475995812662644249112514850855662594920218756331482497028571386239643826207791557067620938139054466402438111738132343550101343539795841804760420629286983137081629476374993786165396404501781596120418255641853885367582762037849836646478884264214118819853008078324924555357305529352134338646001827058357694130972981449482631924460210413776551297425035456788206703309526721052148284911511185240962237626133771005694981384206773058094030587687444418127879522021507175811042689486197738377649791210499916255995056359149961063465100659040397568310907677155150056556919352882572649210401231548705012519946649947191228563316391781048228247932396665325199395173234781337623193076196847637339800199493126653070803090365995499023906989740703201615021833641997585931837861307623440793935833750878704602110205310304204456359831603169506477623756785930984386639204536382274662540911174450709827850273484735122164429699589120728355202290672920266600494939283359615142935304465113123165155041447013574880519300941200428487482306666062770985772835735846917082938568671669541384560292216729064906184157723363308398475659871709810042219197211201882502294623155590878264250823714536038831091290557252555979092550229766000649685921610173396866814268761902193196384600529788167046789212990881911388418664837871422733768777686320663957527667656628772054948123829350704949718476878975791095498542850511688428726052171116396339434832543024535938628535064539482335728020707532764071343781586029200912597098048192460088610223079298910296836958735978768531583337803653242168364380995732287234155789795239373363908270038528372682503577048388850550270461134970174339945605265754793256154121998588209759373821343548429525751960460012659511802972930762728912475828311999562490043728328957467152127441996992296262443656569575966134185419037317322711346605387525443046294679216730975801039891732514086041063821512842063789075004599927575124086037582632246352433259974258081220389106068126604084341284618703738046145208728067072482853428192972895593948689930967691345821963683988298161834897124430826777410794109577017150787820482380968968505986706683374085036617796256644381230731163027909615513669998670257815139046699423563465292682650804927819802799000446992267839838603128065781515214556926069901995993720084678067806359352289191945070035831929613507125315585574503722457416833143247284979558461504312022663690429390110259562393920417222496483536442155537893273330537815221167809464018929139460200617272586362963056832395330639128647023585843785940678777668970900973769095492808145332293839099521520047919547764136658763945371626005915667512956563268209281913537185646573318497781234733539959993305176768492936540097177999048781964028928281541454206785381869730392309313467886040400454972888744305148243485638482339120299436061097617432392053877882059287862032500978434424213022684910678635444997663745774880853336318077516053467426240944223613892098292294949777370556405172980311995150635124434070862952648656637495816802039083760453055740990972903697602877894606089256812491559667789321477629090028082410651094757825344097779043747872734103483628152829799616112587573252870224858497659106563131606827877189338433212965525465873979262634838538180381970034820636520390624745856690973916471343591434706680980347601353470194378238505259378310236588007164460243885252781528964807112111243587892809918300522212116649758493964503295427311782310950504080641762046023590629712363452411360038016636791965250241454098682122732695357954790927264447819490507340685352052928939724510365446305891807692307044867762471199722011496759325665199054098152639060516757160074316207996925577277091942606394802809215301014311619602241742462560942032369235612543017328193612287555344510156056614381073964646220884428487131845994340085682666717840075105926542624736954584987005353816407970073375433599856331302965304629546316458559124732708704310536147564607895433769284483034840214269797412809512911057516179110920592361949096230649920589851179590431092149041991846461477042573406894498056469550854060348035981314278426954719957200085063643420161094161673664768251702856765010221596159162784872025983491059642075413560583931402224643153296545791011636740956449211957389573094735790982449081370803447481080952076231913898527321055952345122664275702568986942157936090220716587241155840140774480793094416436895410437112195211133449606779622045879996964558698591689258739248331816894191842533742788977862011254181724374243907581106085536075454523456510786144498332897913668584539404366342528670690673092183001289474255487245618041526481384148336112446647925719090586244513801249499367068179226783219803434357124744641094268442343745971829174710803281306593368862337388781117403548619918107660421439766179752517514682497783569261952221271078349863126395953331370955861624319558191481882057032735485265686029236310261173794564044240505155813799209219046832410229169342786229908010614320080975900865093327701523532485484409175166056423488881670581616732306218338701830995394663957524376987568822231770667935983301272282658589856190828888481706495506830708903090617647351474024344494280778751899695102918290517467230182043527629077429815078989375678105307658785402838379554082390481293716335762306335630330022634736579807352475278118822544826700779972529045379033457825710674428663860808912937123563223623145988573946364375288836673193709520589577614084848512400905242384664384717547209600698633755095543905039251516815706987278425307607553367270251024596363184811628355621825712995624921018470767356303936990400376411697499339963388806584013914143613276595343476545625456389026884209199894531494679075250241339378945742768722060056132320706232026982905117464266370354592134461020339716701129585472500984691636997082997062252831868275224073800431162921130661348575557316225911958551980311273477260225976379803076026814961625487682071632968045952314782982128223167061788323905035660354729680278797472381193830394286798480518973771368002072204624885677643381129564464086445523346979507972464150989290187295000793533943079785881521039832644138020478332119449379342504340709042485089418826744408907659722041908606270342820491631136118155424556235770685639411565299080656875542809568548531194086174198779493009360657568188485302839105510608767437685043049079059799893134942817738746065033371628612713975971913343499929146937901514298878821789903168537348295527411034712734016815476171685549459747067669129624522015591471903490391358547558326269157337167508667790285337514057063689188686017488203683007688386865502072415632339566984167906292640087063923321513085471287671735257836711803725141392210638200215374388460909171315807374604034692938045578854311258262076299074778223635865244696900073296204505947835446572257649632648376670498921333349587424438015014545737900592851140340585879056282845997372883187385350970025253979663256579767805503337020911299643296796558269944021637419647044219192408167269265345938995788970740742210139506784406538273845722741786521494956761836738228076464067919610283208670842818315811248707160792329776068110847484035478428449508445032316939841497923254681156491266060160246435548316189382724279366541785814161471731987842816969166228425791058326873787150686414892162359339477841688219487577104539777980310827616378118549645761147964694073344365151657608737283366665955205295736886159971485678766221789260095858368423308703605226486172782251888523643752276937700420151984590659453761883450538714201390653309847731806647570714322079091843677370234999030867246661680001813761556724433741304272896699851963836625577010487942106373353813604424599141524073575141878425872670197292740966811861328255768150674933913387659626072503218950670617512186196681851957501440407645120164099823825518915310003125279369118386185409626041649961480955975847985337949197344678126320763328912045690852743007456103052909966654741184398500955522536829769333920118901842510072858246037670382450911456576747487557724999448996845340704468056257215305847498716485237890287711595052123397733595980025384626199840845496814114731100463680546544773779889596622021476102126764877759996262188714683970966243803140196673853060992859632311616154332971787209778164012480373223123689906363929697230452432950599877767879767680351866360428417276640038816580204414454078643140989115267851443939909147033135371085639955895659371375767244725947823670235009286436066251107519209987686822510682162918599806583849876935145429976609561712920633649012015569451510684009906389005782989866332568997488608411259791091240649036900706713292968270098807679169730483949256895287813701689380978733673520549824773578543580203323092792423016893468073805113862839082025619491111884138916724535084734851688801034807915242007609102803930250366069246543720106068786902503121207461523505583524949560008644474034750559626698199060410019677085667361419578279975980771034335110621796128271254444597347445651665406016746812038621076257504160976255268296669742495480685822956409811936580818571975164744832224253504481047934331894275149643936814287586512759622339715770485132072561660655431856597139799222137478784911334952174801871886478641038875428631627476483716522437544730030775935148358645496636613777172603592941308314939414445388947996752459699009325654385937186063390503220263788326935957458484353180048100214418658156455495504166270800974896347685119067495818974965054441783701558105075089640498261375957249029748402038361581014797919870260537039185363305733310700419860539859034862192023509532839311096088871814002111360982949343482348760746060843869062970161638094269442905162973741217497415563099461988520152188877067167307534796718895394358515421691158619621100759799976296499067541672877833416402538221172279596978284540313387053227734810096092801337169872525793823606113574850388717774818143795190371116080934656979821645474322692300473781225372686530012832548211101522989448369088637431101724401127561786622479299103650861152943488138662307336462140463816430007884195938186274980472898588594251805090604238400673965720433716535974949898127638177424073894817988650174068439097625491239013926319296257536389300498366470145086164879284031429585447816865955773203949745858963242849046334660044283316104165557202124890975016962986440163155297771158833790095088383022701660786183294071168254103256450925495628936119386701606932014916443964393811880944633234862793109555819868761156482748534973551206785293113547945606455620255020277052284322138375539088756508748472146847965858600909369993862957622153266948938282634719450986388435464151079107453062014544765515428128079210392660332979536168624804364188456107727962198154442345531828876766448765263717952578793558874498917129955057770351026420596859285299340099724088761949550736214884585483832516285342060139762493440215254788306860144263861739436989637917789129067081926065096988109166198905213668306929103091660108461576907012758959269696380132580697625062593237751994586934276734066027638206783232542490827629784508481905393444714930354167523181063767536579195415907005775956850323130844490648017297277791865398648582344437700361629883728424768145399303855239047758421959163002439618095428106482594176965498257966558543162250005398799057003995123784571911009970794725563987761347702270272693567966076081009245264204728846122440174075925935408498683246924183161000361310230707999988891855850879459812065367822616318167999549659365333095929130625393865555416541214614589904100687176407645268237101464464967308918518744168675282479790405632110759411088524333267155371170560507936807349539732194063041187638908906702022035235021796401757481358223951935459637276816805414633598425269298043504831033942894955042859070527440545551320663583610060487817865711117206024310627613949315588750671923424815829302441753203772752510759043913619563397511289864361454664527510229951200808129574120966063587985389954581572503462871188549470518185666675167303839668861814001156056502427453273520224329781060749653328900884908516538377100261132377045420663729950741397372983910580181080813450205946116575933461028871139553995554100632344735048377118436039581548655701604446090023828216089886383729657791310889799293279524715483409134005358599705684265416600309914887148540465171611316295678185749130252746725095018445680863490317904185967965601252036968948566168163668536470963713807343372802646314571517380762962666085104871260141481994680120002728385060936800572507402983849944498560254038618894250435394846422130941095313453036422891985579430989610674503522972933974389493370384756010477219455406162162438098244859586029979688714621596265293730497853742348647920829662493850468403641068887674340824696614235261311755198958482665822537421559831089811193042321735850529641598390974931697172677307121417302744422052078628617207070529547207107208072021161689239944055509383211872234874087203950218248612557507017733728416494929498956309212959872612375334267755971636998655290822934416644620256476436495347722538078002552701203576767148144063416889048760818887537582877973107556899091812518075734604933890755780910368842183614046278701287975628850747947897836296795155061683337738793662121855271165791488857000067252820230467593125116491248517953137244219546622505791592200677216161518334298365550088100804885779440004313184196455070802058735761669278773495275506164513435763286312916393511910194939482856634162800362578994361309298702881331363829510215077724603061500536743072037210933332831621013849643925938166237587942332074495844931376189876439615811230172912124170494945954699646957409150002700402540702890971664570394112629306417480848572974829693082307110866679876210205862087351035218625301323561184667025400121709504619424960385246511974060608399585669799382180201682993301908147898350473963885503218141618060440511060908874059175958365660448083021515984007659316886950557193746990223260801434076694177668137087453734857547121588567651115367897584152382029924995088424109653726883841017061083880219944410886314717350517727354315230131097987984905625579430123769790543651959269979922326306890992183476861262836121209534985653803183844623284234644962268112052163347381711036320918350804947404207214746777837579740239585627982734114482825116868660656459516156302082555473173968141291162275529059656714400159594013568374629459497723931834320448875239036087363891045432047964977459818908784805298545018783334787189089605814646017403741553767159085651411804247411916315737357474453141301789334879864473457072551366778903957192455880307629131654010581260236883258635009633643120339315534958291676435254471222335082679953015932989674118821681256324253022042955536022530230362721063208423756804882059452723942513146306606880877619906059995421670136498446144519555047528255936552194346733755612097602312853883920018249107524932860859599888555546327814047253038902645562277596365215506528887467239268852286903986489555180920960172597148663164977301496895308049420522980755214964081805879917748678563825118416922382003631016913135074681467270399748812183001089754945502593884766496577855285361099316217554132781442365429754159192471340900914658602315354883779034728240965707074897183792009568852255916747812711066161180201371417117728952826072253751146050834212843281902690273760130990214653244721434622877616319735718717121963463069264810972899922474087737655969466145015875726369677922440388212763647713085027530236600002798822091518120974438183133974544027246323492610657370524700165885129677687275817884200434870856310896515565690209065675340289573434051348735001358204074830500314418593810324037377851836262402410757384386496030924385621694784885773801777568036519444353158116079308679510386998748046186614127954160690717947039871896026116920583391309877255770788152147477801480575209949585182124582344665778697712207748935232299307624992257198871268586740565571143183685478091741524607837801014301904333740241734332485647355334089583129290334403801898186832046925416296109261886143530601334236997991418225979144734466527091978764740115066248292322753209352541113684694873494640847929975402572524395318176556454103504584551615721099951482571151349454635281721272342309453768938454649012031727276313819354258636493282077101011498501573114106890531980025970195938312164362178203609286539231449580114332428683396722617450725354731874429270696436342467952268108718474223048056973783750510670915773055314195047027937305987770805397930185615692661247450898806970115949988040354606785242202662677074655100753943118892077887833153293952316365477829267185484660800083114826864349910223692763019066733328057864158987704767665466241550667459123163116538986557954105453830182262592809626882099109540767592901521912579461241558349271483782206677233943466357080089737721365713291756206976353305765891065717670503636045789788460351797141265591455361575528599021517711944717809384404402318078011317807062973680527436667512149049712154098017272683668651708721981489208427422836936629493968770976721454421687161343691107193867255695167951936420935961259451611560125676588167924745595657000222890469978439734944274314634186683487463213713353805907001968367355866571741941574760105857233817213718056939098351139065431570647937399865735802973379545124462606243789318548133660075444330909036692313792528312894268823104131437296144841447071921818692997061258339074292900753711138744321134988732725019036993568201365367030063782114529193957743996008875897379058423201075759081769676016625193370972063629523890141686483465504977143580226552466562650952129053783212682231924507732131075449596454319861269642892689081862543329667608754740113417739500402250318648370809824325575955320540432346183019819828860503761400038393872008605882164278238060325946711187017613380259450306330081656180740510521698135684633326714375437121323861243580071069146063104730775395767177929012685590308982226191560839905157655649711818688862848675948916348379851672238057102888890267317501649174708613549781597950766604479555325848514906257539920532697158854832721403340957061989595162748180430018846871590374961562171302881172634056061017326185623829430986837035506650719798046837901179496153865756995125216444157390427134834942668433349663912018038851384104999903603001026883144796014049039413057418105400221064265287750906015350350794561723150655864186175058035968576892198639556329952946969644459631188126190840463406948051567958434117812076052913556383163731596929652248143800063091526752982248498377021216718915095190306884563460396387308239287945518936917564342854364373078888174569074901093336829909254090953352714418261938074784339837192939371062031834395065152839591781706582017926818945972611684757568566136423483303826987226754015738633862358349733513327279615680195734790764979327923089569000611766697637404488874522664648386803010838772289336272391719088100131449459409190695775566698345230448116909517659178347287154175305325602568736820641193502720126565376644508945914984633462627239823174230018320878084737983271009748759679516629692605930969278123750638489916263282360638637328205544798698574025998587775329460478883472428565537572127732690699619244256352281619303845993271981886867746665148569206821885272997562370066770962457461467126045250421496970932846159050740315539935811920779433655497688982234037915033156421106998965471106399685997746257948809039811225154063097494276785394364765089579183865681781952236666479322256572636768838445149182321232336243192997955210097556201316327248735529755367161188593566081372500230936464308280978398868290913609597212520301298092481839129096239539419169407684609456030441839995142926411500675826739483577290135511594935101898195456118008055425849130454895708105607536756441147440108051530865814477768802442126474730201615260822021830198265907008091374856718023231359386427888987377876518208264990721004445522089404740458588390845709917946500077206220284485755764347012311715265747555680780605257998298941170199630058506393372663626601781915922236398080484454023678619578381164979758569780034990848328479750403842743154270046671872921753872198341171964902085211473010210005626145989691189435931660970934050465914523640522896983954679282523659938639476425713897291692659402611610589191086071847733452460005491244117006849654123309554948517409909323892488931147433767830723732951676527966560047040447756445601086919706724355109412387253384109883409455280755132699962617566823284287981192025998470110098453115277689016081496667988811532330604896198259477162076488073431449760338009721528185047957993504769443728799070015831018478352609126217229222281034223505997861577978773529619461341615955103252860694737524650958631100961702759692772823458958950735642921318613877309193384365722259487863923460233499954223514328134091430721393759849935541523328426866639758059812202264921453295014343158851525599891516909672144636261636332091005958652189942272672274888859365564023222425579010141674735924371677309080437033065381308281396958249030623013227737243824736811483256829927060310054940255061686054599903652354894018732675640981573181754252030682732838337569345240013125974918428417581650790824228146266598777399404202870895678380551955514093421643275794407704824585068602549118775300578292897033480159635447763716286779419350356573988141645376559506974153765533140727018972422388469086530647587706516707168835173217830659345080869308668060701550547479755509952700702907384240322702787836295381624361101684669461464949004960968421245121009006642277229148046575142392890425958058385515309399667741501098454135575148816577679363066912081639417757763786127278668029294682832714315160369467490381129787389882477807767548775499153228018245044229672131498578799824228782962123683478328441393704857133508246040551999740898378222521667342966531369136979272600247471016033894772909440296920089411930515335504860157355027802564751623179288784862293028121743236872790874456336351303273215232651444755283678565228285172206465819426332700462974563820386036634210790932473585744535190603571076874648718937301197496505881602869928810832783399630263166438565443291884921114777695334728596614960079783138803434845095739063991251676104834735175400502847211397059775850378744325378922091248474632046090278586866529723592676549489086635192979335931550508615234239495419025537807745573881352007933706632681134433752255858315697760208056888875157879639609955172521598953577479540269398313585222864101559831731504689453180242118208524994816570947533346757421461451375166913835627471341637334137718757967023939936517950529306974050688655069913929526204156566196776318548327878987971946174196917273360137852914367177000682753596765435227704236739023502955285785416653881023160495349517158312294801518711226766700827306991618459152868224003397509492597811737386191437771668068712935309196080406848334468696552675554413390548016004430916304460859690548154743389505308711771883467333420135350632278730707886123340017632003180564304706848797667505292665044064513350638072288849105696412399030552503184892213305262734662862429121680187523833646132675287781921341105216779295229092283925209026738015190728318235230365551920948947889672519322486889687300657030728592543228366509097832753717597639625264713114910953777405346770874381891716955272865451345464113544777849498601567087375571682675367038741098742496900498995851355107112936861117085275165566247509791283390619271442875280184436030818159867121733020789986753244960022846014565317078548401771933803879972519192548487093169525727038088660591516256417176558299024671508788643325956449442746065338618594388900108438545063463189122076626312449137124832344541544784544741034500160992537164780857365083034456751546721870254819385240935306208553356373083381470286452817953464087834128592969045304193261119385190070105930214684296599313677431063972672299159239995171892069564860754644837761409066532508562437309654768038490967054670566747095936149469682053789993698402678166801982081798896500203085048724015162063459429486503406129818134771539020416620757948757855016651303003166879330497761328929083323693875825799785630577812995374283189258767469360427954194783076444033524465600500429881245183828396919203850126640519962596607264851775259912047408261416409492914834813224079545812637435479869544902311288923558908730798125931401638246052601476074890975014179438151040316537917039352484776289658860939821934840708513303992281913865996515675651317067349799020386972616465838193012593958321588451983894723426849088475403393572681184456153173762282019220434905443787632620292190971860763734728589383119818559507575464889701313607743545480623695472366384713283542126870601996505494507410012365539568803837875448458228855660457651938121563286130142474299245935109036050458948936884817355353260287377918809502079048851702654390710068927095708639700491595696894387803279009052274033152240058029445887753349006444379689130604227397856095044673848112744851357568692256710028495003947825007747802558812273369520302315930654160763302793155486435995972807597403126081294960366460023858897865210850791003174267173206836404180960460615151689271827195521846046190575991438844238249591100801805605035844891710292030660877170480108113913801980767956417561172253181106925088925594326903774127775536261405257634600218649229665554988152076668375656823512961577939708647701974169664143023601922133589323239323020917438653701924372238663114999805792824526215937058025258799650424337570740194448527318312302603543775331010092192655654187919292039776303646712684250678706385357741209568358812535309255389204029464483227828873108870767554513517610324479708136652141118666316576646234878254722333847373950077922761926739582550961377224694846140830486435933080209201790724598860170879692943884675807290291470997648986338669504034159327927910469669971089408896310339775913808378309329098010191917810286702898126314064416167797009981108431308084134359179186379576608575442066049532607704805006143395680311593409289458468603941256388993159596392258660505040384559388174727819302188193121522905591294508847425849752165774704623632467257959696656018538321056523181349120289400238367396443668349256241105268636284897685529390182538999312211410565142282081520934190305773821734824746785919790492148954389153965494522962840247087344721467533809760760927574460638884302728176469880620350526611440796787233599608336851795526135725014924817199645350695465011846882212003839697688167728689278988685276021077781026591033812128342143810334397045193962483965194705284294014690695044753845261176097561010409965674547612369580042690361078405449626821591295826297252531441479117841966964473569646361761205620875830048031069816259210532346711647241437889970253839835300934682045067483130141539458126489279955307865538147676429707978663704719146364498910323329360183248422555444669552183176505849419316181643389092578792718378063523636478424205076246518871505854043584949427113120498394340853432862760570025115790945962572699163787176099927338049063555825523597843120554232498965163988727943104754774979409890278055861741722350218078576102487746208677654231449099455544101124650789805503835128460773453418215966045819567844059143126178919895680472635454022482291864855184940290964980184783394413952619864008555694409454136785186103238830571525009323129833138988390433456146251092518235279517600201295434143073870815331643222154943584102201334555543269806991451974741992097008762659282623926016709881425664566513469245943617711303859842117782624111053868018152988107512335380210994530588813975972125435392690912739292594385456402676971443369833057402688092350471369152726213886741846962045796117318795449646756271563413566326215753533296744870056325701865757793755189699931416879392766347270259244603195919089171449557346112994118933971497319807002949658368941983880019969528876060443519046165512923015046824084619310696570297588107937527229532400031196046955413910546903225796075818880435503663832136141743647797876603973853223751694249588012399151919757227269114983596451815887640743824200943051619732129079462659385509289213376066039393539611413553006090994868521538154369704285008440778169633980882364362087853984107534575222743315082150718898358594373200949900129862447435120003772339923133474750558349764042958126298913360546553921672955943335817542514125378255196199206536664642995476305361843570283270705584398667213694676342910984618007359039240425559525185947210198331359335001290290716774412291747586313430172437608042686638041904050892152922715235703618049785224644977045670643299097945375489585647946858449727300352094758980030466455553963260089492653733227133927909708561298402943395212275859279424754303599737557799979999741441183403522610577407999061507844852396817122618060073285634589783099987841400554971823181840101924128611652353120295481707540813013474775699970606621793046905242611195828160346554628802683654126569948472984919163480565680349697723775199225066684992639927939267664086503553915327261125569704233808349667516090012479826738232842324742884238742538900701763951374377815611272711165338310210714930854682064955048258255027223254289333617055262313769749093463822897867212090178139573521320157535359134132379570105395017587861106341959050760008318255511253906606402767693444882892014652549946494112419249592720342278052529137806021058421565105412316610609073453445166262702325893821786024772023468362174343064439043901332378824733286764439331307621094534184396638048858032198499900897521362760347242103074219852634145536417236087684917075838385502749958620396050449791171698387244776574788295219534764981558642464696045678613773667350129503934536436137416373119656413872541663330396784311820163325984026868220199311754598197798498644927452787733740983908104885423752670517979916797328761921442737627772318415996679972448680073411652133465080910039044029884159584200349850893890851269460890351531933805100206920698008217336014690524626505638850848216789732967538022399004381560980225340932186957431112965595166362864702993597531840080185854147669441685794476866393467267500215911350395641545187138850538449503844397039557785990783394525773737589493871381356188184423688536922350758430791956692664377086119283481408010223659075814918924298320475368917987494456576316550161961641528864178969202554326126548869687175217431152000134161544173551578611753253712664957137712665234773369370821579996787714169601276182994017202686824510640301876452691089620347288517528486278817705795937817675904186283513026169985982608398932494744910828343886763209513998923587807061724699756201426027164330834388077249755841338116392298892638341384961642315350971182013907025169083161301863680993018298346806696770542416850326696484155528608235958236743257641766305599129211906104387645558103413416345183216727371199424977309479771023772921285767930067941170776263663443788268668545740319944022087628302439663130869410312845149229213728887624896200711378324095586679229167366659263475754317102794902686756571754390039693322776709438443358823710727721687226969468694085496960433341404136327900583612244786937254662841233551392841066121280380479414334524068739994482053165426781857596229952270085976475296231668285546165356650746868058941011301577001753734133453180587276384023587716409901696507986288195741344730865427772083366272963030328645481820975504649833250934238047145127402525716191245874412846027792462833019390715607677096281046063467753660471103301395713691262066014793247782643219535339036251860731933226219236905794677012261244247357367938039528088279484512099997188856046443769849083690387625954441515323227387086980842064287705788601969584396597437660684417842196755013589963701738647522769748025694061290021511311580841410464690091972586991710886508823037219670425107351686489675944316399943411130233598797420092560848626418845557899662485598971863635161307441470022277975123283504271730735210764397876079003766919204808283409900690377717758048918328154112835903672384608722365516095660344491099889914289856024136764149469221783943152172043251268421866856035608143578644691582027696784212985785142342155498031985699321296874039809081869863769105333454301827990452696376130321182466112173076942455338811325978584125924461090819547793229880759559992379959990416125523782949157252472827386046237957543426075992751165671672513721341471699604440643860870916925004127659608416616539176864273862949238851337886209438086194240923925623826342630163554950648199181298063135483061995262367659131186811704159961866466968674886268637144789074372695786316459321961725093345430448333407689292892845461091904025735852388301246625287363134991955399108141146041576915671699477200821359883132909703020692825251091956625024629595731975041632897984292296777898442696996863225279918508445481605840962131853935489276124338148228611606312054254829960014895165809895892765084380681202229007198042903589401747091397234841838758563000844352878952768039553420867324773840018823552529167785020785333962377739801398979340600924057406834455394965116676511451827176281838114799297790913691075437655397798370146340749502025267286961917168252379578944371205283892386563669547899426322978191308731824721770872693320347156172765841578421954993999331434874561896041827181018039760504690932326199670043406389683651482156762289505570178694320406760812610523611046894406861504693280899919067699756878048906469607660135222465559011681551082051681188395089174755161655811542486446510728369115685479147194871419860915729173916859717036326840349495890759162562885864379107804819802405221989806030125263912520286738631378336466494093136624579570262382455167098399912219502772746822796227949766023999610763674223718504715129200900076540418963509092038748745393590673187970882669116784210628263730756187804697945241733416469884530497973871666603906670800243266081866227448353161301487740379853009393147460437666694718341168223478889696080191543336608922150637684181145178225405058575884957434015231896405614650204016577190265061356170394845123858924551422935292975081774466078690765993341727972038835485067703973201061051378366122402095704994209107031192303678596854578450221167014485278653369886097261193474717510500264309918466053469724256933812557837094790157296880491291350551126054416581809981648651260589033974026615745984925479077769180257390089977693682839354587418151024514157919771529835994349778991056641899414953487571416376844396542829134133139818370988907822922113566320961120945028768481291114908073728483145579642142559858963632360140717083736091503129126313888869181376726596181447948053873694903909923129033606383553095319394288209981458429171193405473099399789148655159740828825736233571009760831242503697257332991538726168354262323520101906526901601291121890556069459757590648595217193249771432027668137800316313355988371820646678042330177838249179951208881581292193742607101381999014988491614595691310943730175955365430680681913154402803944574172866480359727721574453670443081439088398630520735119955101197477399227057689932704701363044609315698378797780086937101991549884228933950011758303796697762968025098709621793111492138422812429903396822144590680785231625563203636164498343533719418735091902015592441973831347352145645301339658151735268844493245042674671758226086831619164074602261396427410456724087196877290060799746757032647950370793932247736477876875242670794104956186122337877294995547600881759494744057383754139619983045461251015347450212322111121418927478347093172105387377514612730424587599370253881186495815235197176771391524263770312455154069901692641562045737340454804429042010539477951161767216551154989825466359816956648159925314966295317440201785242312632503082031933196253552892463932973634611260083278669497302628225317017402998014882609673508049741404231722044975780375429366545721382115751592811676574360513654605152479496992387220897125315824494182206786457125202067521516163548026846761174114315699293647256761830546119396695654868997119904436409990105949274120335248222571173885716941576716253597433053280094414723325425511570761363718726251231195209804341749501960126418499694627882439162638160699828298864383782105357732655612674499210202051575468046647195362697905987895055485131920551342803413669863106805213507601524665742151214407909473800591389362648713219453925050501368309198864528257104988413580580430240522086472208679262054102751441425651905925120190520042978735023129864978215791495977524986632184695886013685006487296480255318342996984103950654941131046733839525776253561120920308022726404745667901167254994845904100274336312978194738653403129249842672508373346108646558171599574348912240499432903587666010514482043955543131260322329606948016717305545416128753939096002845384695450643553830174454227549402004371574284179286269369459415284206116353483378001166697167983927770031813079290899838914747381472315615438223097838976943538229390212418775799561411755241052849567760996863063079981724059455656314998644632253392267023478086464380645451205216356172080752493740399309331680348678687489717383571808329871452784792646979087243610923333503633620940035752835226406789192862751607841161067161648634386286234604620519649309176309618955681727710977948575846017399893773445376361610985944915306459894253010817460483925987739538927037255776796962927128782704143244570321936122802867819630334738401226730434429514241399622678777807863824682818994853690075492495474749250029029450390601125708582414782893639981954263583684974307657686249126515984597265737792987364080204843912895422817872626020420270079129661616241581811732733901226958919286517857829078759535842435592129544888046024101554948041447066670877617983484410477135048736134274467925466712935365350863714120484759382376057711947875218636244764414586844486572543601788921786668692950293458901975565117008885680465411114186788961391017812698648487050225980169875956195972740751902121042834059886531296784342568779845934060889448097560390456181479722596820053555118483272009297613561197468666143546424266507411378832083743040342391673634844338652231498913553830590527965789865198509461899569189759599236745951450317013920326867418505661430355734224842448868938602659276349700011354297003199384180801563764326621008334275138650805225695901385681682004798268418190892021260858953696096853632430872389059400790385820511604782384454515267526759755158692995576424182039404907522414574515982684493244848387578095060105950786040464606733072919940887503943768460644524909940749918429933600851983922751890654394942458533561768144311972135588511970440534342374113739310974717154639342561055536785739373432013959434095393727342130111280989655679113470329823512003957560225155125733729728903310630478698193745618451831187812393395850841192344101201850761835887763591896137454318414586171745516163037597784409094125886428912737745577197734363778391513292418668208085834095365281942729144213042691255301130739831407036271253449232909840281411942554272946169803224246185291743074502453062069752942717951834248214971109426093363621596564639292325849452437766491666978968315400233088289129036517523515988189230063171561597586913957117115017401358709058427056098306325551361841092425723297577505194265640119020483956807403699012208371063754794841096318603093358719063409260087891374417985948205253041985252969594996892490064975599646126328395629086393308887334434124764561182003270961023459591802476433247490029135427085765655043318301437688713756318363911761919270995721607145859128889853774259595035620149269629118914653690166734723550401487356240013936943296293656010775927867987950568380264271014209747062313828259606889057483765065502475547239268989232492977212035194023724115343436063427381879568271673648045426448102758798796795505757969553139624867413678089514887144964277580535969024434056596149611520641373516106785989053008680690836266056907252534240761820906766699384420012941643836816905817656325059250932788140710366285619894162103465811067386390671794543610844492170559332530031715331769422484995010210374214972664654008544305403984398776922552159594025485302684570266368840425540900925691681141288988931010421836390167110628101101296588779787304309348171373934569769497357703922587395119763548231382647993579544890083049644020886507880317684999740487423486673063087124208711912273569068568371537803087229064965021124123806150069394270966160760454295251223191193390523900194059879273222702847585565288748745385029430587859229091220590547595541956459830801948301898808030525044523023612401617735808417130015707413529904900206097271804304973279411228316022263414288508823612213845096927809129069246371147057857212270459650514838651804603129721892171539379369482743640066926429764134925790266604345707904941792950756184802023000615394664069545635806150560110041927391958164365366097008311943099441272794333855014404574401570677105305487948544302175421087722982252862592101942349162071445133422668601608409079283091860934704608480536528718046598488168621829164178510080009435628930074134575792624638768660946000951086987086134813043711008416057116915657107084091603238675980847277229136688605678817388487892461167953446364254256233568078697392437533484655455377325642960788489117088879268901047239318112261787527860808978937685608288365458228119825559060083534475451877688463177485678257588820887384362069840151258009447658534861723795138145816247711831961125992475898773964859155011044117303894031664916050577747258772559470099035504606887508666181205845366546636180789954790037803563225527194277759482619294595486166224401324709987644689971866159152896996150103615144711208174525960802801711701451461958508465127491531732150928808741887326209285523328778155230555210507714856891237900320242448124706318454479974097049365449162278503074858630596210223531605309214434098089433458312471554106932850273485076097499431923521686901440988980401073077102910081853408732343134435575513056557291105960481083726966243128439400862426694943774629233532692173143415102561623626885712611443409225022271502694348691785102371723822176921890278625118676064275062946851186711534225740475482061537760224578346135076359468601184923418178423778629589063863137831468546542633775469779329877574801015764179663809966754525622732160986607785114168954116032435901341423703946372116563771950660636359707176229943900166940054615122611609137173710626704655048210571985009071956230700231029993073606231156911341022724275920391169331062373246366036124331979469126709504387746984158146686762412561867947102966514795532156265539170818974726535913051070175869222316999007570249476108507656515502562152067294443002426498824703182113303725413890711965698027603904102696482728071361207137166381172525685771508936548473219438096730044210282321815994371802504320323604310770838018751053126183594114215887119539289404299082891024813084914128060215084136910970136778315294425418590384142209827024442890641297355269518693048918389209108380531016727654696150302401830165251682311904186352652445435691792098177367346690552960740020218868526776278544759536116320519439977193113004277165985721685599103660669298917724405578574386406046563980802526084365215051413441872048104015874773607389111533341686793319339964873922727416268267123945837449816043574658158051398769714640332312115648733582379062494124998443454892404504974755827887919401927960755307826028282545457384365535633119119932553366107789988277579061092432077681131058969155317549945874423716383120973497557062949395454820871606120215221687216134182466833548496805243021028148249677503407611092539002045029350599819695054722666631163837031322379633923964192814797415801677306304533387318271001997882817734926435546774827676922415040531430336385332353723722506086103608243960670600601526061555020917981604187222854236918562049804147589101251927486375736724328126893172242040892543863347981372300162767688227170413224617756135078442749814342138487901751595692062021504314343851408963960473785722220919147799011808675912088468366503926334385271787301871165168451260664290141731658513902242313671241068376828985301607893908382122505713767304534577538795355507877612718790619699139993464048346081166147072084007878945942076738430963033744691674134896024235066619881083086624237651295842540409564908323035404623789795325755133600299973957241365284958014256381522039751487095879010075608889644203924945001530034254508158529843571322002307989391598820495196790343269322652149745079038124399499619113662398736314008538194617104498347224846792646271094559503209370405849814438569246744960258928269578115003953413923325773284296944005971704358687679373688678390881524473587331845468525697228507267034096848976941912007795109477691901740989869075395053325435213302653329522513716511070202422388472480273829159328437176163935558486972553877665104014598828441531831924841580140885625718527031902547968518310219144072941196826120772889371308820650026215056170614306427479249421499403246997043301369205680883175574984771112452298567245848376019191447262760458831643438919311219856715380595485080420623054150396476557182367625680202149691377447348690951041552713558628701924543709802405399496393599157369225944399613135884225007807650931328382562038802962672844463055004840433942954419985322524562982594698966762974874999085793125587710068111617054298490670159274228313393041342156822060140544930506113309141553046116316538645920707918168901199774507257488316059051662594138480310757503276357808981636267363937783552002975419372169383024081942099820639049841272203313666413230473230933393835521444224701070060819098961694717937404974705580078316187665293941104414397865855643292441667806528433052644814628642316055323012305254838144875936044576373009397925256288581298007813964628259838267859765193138376425414987453189528864349591673120609146221027078053484153173325798263464137505759031077189541459954335871612634998261351580476092394442015868892545149505859118552688521909815125885367442926959332715730985912125071670231948168931110622222942666494379924676387772421210094738070255762407496382314669385511633928326560845784549459384444422478354221476406987255626074125065723057064735143660867698172353741066394021140054471333699944008371508136095956148593008554588915282299961643236252830346082899059243798578220315007958048755693730114591998157126795690117408427142587150617325107691272862229560440739236323735593989881148770985060051295269898803090373976051106538518082847822517098785574628492858029540542660342292718888064443159508846490604680853404770357207298315344679611617768755469484517365305969229707273842549893675758997130820366766967489098198322960994414343627157071664292450450958106355321600140615203200005833144370279848314874132703642472144408413503023695627061755380992868359234877445088683772119737519716069824507494108861744950600377450355862461227724133290452966113156295755845978700546041089069512174409086166134319217425506017162778803959748295700384581382319979340317388320486010751274743971186176872109943441106090575176356092525067080536338015936420002121695458087416122270744164584576380315912394850192355824839945976830102102857736659330019884147664036274512770966249383273023669308364873462135153112680255783237803003107031748975613163390606712874458136061728925159606973096423593508395566072474872827700844483934887523719824061457422422171672586236757954889737791736403945277180640999530375763670101567190397502190794491259455200858125274903111209564132446650342494747308096980682484441340593333787894232204317873466227334216850690812851531283070086455185863979563542193869670171244110002441645693231298075711371131164765873183656133966928000839761673255884056106443754519885767678047189404113973941009161348453591066679895781206932061613795220559797953636348232077727721534062007169962033036608067685843067476258046477590770154876789048951884446711069078318420762154662084186582804971391249328564628928168817438415164210405128766411671373491893827513778452204417109993870322206343643135096517207120701897686196972247616330665028956145498370339070539148687733586161010069345775784623009605248998564822816544264379827348778090841471086942258590485743407893857056217154047934593829011007854360886012578786038554112346767004327968409635915122592021318511984186067410197398709772283361991768596966346016094371819286490743822400198711918581290686138754987334211343561083913411489052268130064380036687397297598738785605565836452828856809016855916066508475277017707670302412837191351428883914538640196284354289972629823560464503278897694748581251190664164834464791621365950709201279383311617211117409572351853096325707493427491999934788167156190201220857451293075102173164907075864175179132017903885269387738527560377516078696607637442578057877465602893573299711308397054857412958447570557030697427589794165308557400054183638864318839742095305171696038412586575522295406253743803930124561386566647653970883462847232474423864048276744614690887305960385146980968872873988712638819043979216274091682013834842621871621604319156284038448721278706157356157633889693547181545407797847678094025782644755957389177811794512771291424529471930273478009764985227937661183170573523283544752315893932256740729922589026475875016279720000520875387050029670737015883601410526050225051428729477921477672001330171218153278430096640768546917506298447521599058401351669306777177914054101485257000124919271036885477666164325534894734078863549033595625587689548829547628596726084230152493221690224034101562369994164759454034377408083000173872627260264191241428235561766061520734712544958083735323274576689365076937253265400618798560608700850124176621733814574569966250637332418010988157871115621282415974753509787947371641841528255924471836147153955831699588894115227465338380460090309014124759099101648770981723503755445673220426177671690007150916275426760729561271902119916596217338571591695445727896343450775945127148438555974038087098645914390405241031284852558273343042306749749124351746084590705421290855213557343426986108249405111688256163631745539815728943736800427013017329609137742397335516638737473891899216645676717926107247690370401301044290033707839402800847036839651845353590307007324036625985709248369669413213343640168284333361224638387828423128407982249225321733809126581987777652245377710961276614716200900689989720041156405242075169767234947714755606492722672321070026565766482964171332192168844257885787555768509704245397015351326482423459273233024657613055486697927980942641825703076877301289411864247419870994464028456603910369015036787851702127427481719176032335332447870131951780510172226559500409094573275648498391872080382764540194604975704108529354662631367551845817415951054182037814315523147395854533061183441102844296273058119946199976905826930490323276186310201282053403999319380342729053759806292237150090708198493494411014718547938995052226882338606305256838406514399641785543424862783769695521767310397235853644741144529041473480617386378976737887527811335649177325307382590431436621358612856785465715708519814623533911353075885860677196067947026903842250832584901529327835893952690865612516094670410178665428048309341515116010831736359222169164726455575457955594894783347019500855300689456173002149756807148849223107010679275103385591851152394767275352933429098497413333033990052557814156709151973821980333077180120646390492822232589992136094350163245427646014795164729562331948326953511842374357702027721978899432455435867953720303498187907530127296574901016456613580596455150419175385751350508672867850277078922884375668518216451727116028331018049190826537940674400050826803265712630394340969105826757439325172673387988354315108784250104738781754354657598926049241430742702133624267949702443866717085307455993167953710051642359765191417127009342445687904541059872707735235527636060474492301843854136183209289927357828921318204353093527222906604055047732295181680933469380136810457990538069996827566154278258266540929987809611299553263096012533311595424822602888054656130819514218697499297039464719019769959940146075525834773196813375772807774446689328115405458862716685658932160482110580428248942038837739644013077398393367103948271465946515214874230404923346447831176230801334381657254144034875296772084352714063887420927141918859162495030885658970582431652971485744590041169621648699427883287521091528209102622115724674612257178160766176429774764082849011394070377177160247459273133711010459787649420975133642708271343411438100522805364640420847285737235251162159203140903688397657507967134984302712281430016748141623596901745714696240955371502040259178442561491757091914591746648296585235588779111123526543286956820211221633676563331472307751300383847017925580595567015648918172385666505792960229738016796047386300601322685557723346930701809383159716388382756318629677733333783755848836183480154805084251677925720890747667364207254719078038308784500129135424801093246073311527142792747275850834010132623426405437387813651020284934658467760034937399226296852728471763547610013590997043390135277692035835006553973524130815623564999867546888967462348902495192304627603456511713733383596912114558440140992149665762345792781717891979259281014753031173729274670261034891326930848566195547224358876030396724219569439289598608086891209132445344107610876603728406067285600735100403615526373681558344148745180153990415992664518714228586167139703870563310924060923339920614174389998691143720608894924511789689511023987385772899264517009619036312886285141093783563598167867149123584964611942706996994398979379247151332914083941650125041772593369185251690958946082183454629007366497789329856643037070336644763629847655162613331645396223528012855185176075251745455109929485164310336196319803441038112988830770562568117097118397807570741254297167769159782523569058032857092577192051563591668547396406174739041054729279055487366724558461221623442755672157435990622827250333021915774534472472380095149386263213776735911502367981805879858356520749620095769758500980439727325002508813168504028399279654047286478831269413571794389249334736503859093450661942644156882581038494719151967078223338851764758052795946848388659137573957115775624217032243074930493320293827639204145286211446264711150276266800236249146391835129226449802157347862632241309531836611443614832143740990627631185334601836525932042293220744273431633989194114481627509915684490048232614067913045633136460804091852407454280747547588989857367643996966616825591984188365303965206867287652410016882323801593615294987000920138144383056279355242074856519678135388942364010898783810248302697987936038411584530535306203254639685420897522029509586636794289663208292904718961571481053672584809611525992255734890082766297312458944182934405692274595262526962196351822864361422992920705667023139084678245256115715860531586161859321201322286550652610489818617584885359186826194560270324502406700130638170132696766667456901319343629024379748868180378963844053888545484744096854538528258894994085606292313194706301191901926739211644497726054937486606579297400877300051895225894039906924919389026097709450494210504286055846197689068110411212834025181563224390990151214755115214702037896675107548629149768564285241745437140002379741252885226284436781509242348785829927238355534959210776512056389548789676652093024503339201371676731098079089814709302085254794688287493700445288950850788714466337763022589965087941034494230934630702261956912880720581078299564983658990649432754343678122565040036673107681024402130204613016267740496482970009152990832975213550291598667484248122938387498629561316622166940471299687911752013335674827458264641899730071163839057302495376671644919957862703765191278604659010217401430070437645159697538452200650421216076137401989946733762353938319420766738197455919647872560357594276903878473919661341972014928158093211853152172099965742112253952791661363843590152299970225876275978588678979697029523702724127571304087951333375189495606944029027258982143513028486695139125269286155516681741137584166017392491121768083479859515293675837950552275770378929354684636920225237776280422874780132504607202078420420357506488491933585407101490111986956032163628966946782222319386047448072883104053078094183869696874849721286386921842410661158054336001553233926328094738613902465648211175512993983825793061927795120023638624871619769097333535183517280032831927695538887208538523515870199693271637237970292895919337218810421873227944657386096503601330459933453148861623661661539580694814515906589142997464152497815183308667401858113365194602342862449519076033463708642655387243004031027892391978808767142717058773858071603821692954878720366925539696980083373169225650848989403167238618839469929120012842163653776831540065440948861649911699311372557955236010241440803489000411493586349447739297992858819936851980898132702187969770636624492526661957467440673405255396677811328463954370186037168480283510280525591881003082871224032548276252920782763930044299015272123171031616687819684960992368855405735291488461599907823962135987134721200199381053574112390642777092317455473353682368163073379477083388801364482488027553795328211889269984640904916370297978414607066672857816997124917677665191580716769163564658896830887890029610325945554046739725601813698809748949171518663210779154780961464922507330955650884644638837379667109767232460569128589263262047565653695000424007873949742145764995392254393817439787027999423610140843497705862547557950344434863708639725536152193579372807904764098876368548041942338014702292450498914802000521595235017226919329811777000653876137130595437453867506200914410731786889615767552565603813306337675198843495697693474121104675740731296273546618447490244621777195029498913214600278760849504292033094275738464374349552542259155199987911895895139561733673731919731851470220179844808861278062044676052179326146627334111423298981582718764822922921013979956945495912288942617123073843100619225115652961443917855845201142198950308435029808185110970903906050126946817821236423391384245343490913756795928107841969185714678406536645017629578405796908145010944494007789292541791127633457812665159435780026965255397959454060824999216781451812749222332351722856817039215424336661334119037089544042509728191096247363492124381722318482336417386312126736843976770003040097289980986568532990780914768278778137860145221490345151762729059054713767431418392310577822709033240860441681754300581590559942483631512747516561449515287844173251212504415660703233256609417655824142244825200797550013611644907341397804134143192602497706538070599873827693874481628158080456578972832611029420172241257019317031555731714437876092382171029547469058016648067289940946372178370626545437701123589010006507622832189880621416884981092265787440762491231834765420792740989783488380418023994743157922919938487334249251459986324330990630012227349111921799209418452115425045351363971162608664223539896409531990434071353014753788792029553477711268433380586655460179327197126680222720198837892142810183853259532664338070799179880431923704128507117479427728420185778809103295915174678416012842703420880997779628002108257092991852782531296332631111597569904079189164097674363579743446435761837442956755025964848830950988859120574160274817240471247808420137580157394169629312026972295030156038152783542298690859232582110875730571318136250860200634570230608365013913404839822424941503763786075364569089105888393433857005321315973442803618371138919500380243492363424179702441230639560050088790067459719805348432366361865985130875393165704784735955792516029043631203703097850285657516256903177061614639595928292134969317477148601076195578189093760135916606995237895366595214259748012453294468373996808184321094296341766987459349340638226102164749566957543924169492463194695805359952329213248886456084268816537718137867809317705038319556600767655067279848513425383886739941490952698275710477629796339740987237855624867844371335774724868060978522620315026203785792997153095783978535896924870662846798977420451478541990242578586918983639889747062361643163639144325118147422291029734330364983338559725010497241173289811209272295600651271327670822997852168911846398857883913427284902014488425646655604157637762413314217679054862367715829628896983298252593248438405170704697024917982569620606646222484695262157022253432720546664999450826434548976461571905522056582962239862586522463084183801605640313730560552413938216474779177975282526825766102641619329617392381504423695362563033578318545394718518144124284483980711529333241523723177794365672814013578271624597834135726788774331480637922684448538969398952617358335417761788376197842075398001796552497814340651534546437430327311849112240958794364965793485151931869905240043971085363353220023305738185363290791158702597706309834429983398398325756311563189827966663193144486826435567055064394686430488379700368573497202687446988068792876953061918081462334967688412904305048280815013535090698509224828499459833945996686556251110818768873150347497150197306325609526222536044182249559248509887681819169375684852598305328559053298774507110442471959123872625587630520219965954581992227341499603988397277750123953298587805420442917626934526475956437821626632632661290015079018446715400592244185712090929665841705269385186641645387765974783769600658419530739452264970799031063505298353892351926315389521576165846812938210986366040941941407192015787728364448095422023141989833198270732093310024616104151026219093277057975224876508436498225063654726229442915207161340768118067848506034666600701432877171405729312643550705742283945629125881484884411467202846948687823921877534174697521025861350984545818909782612931703672425155009026829060360773347406891534815916996886365819450417475896099030399847943335271724384528976739234436878220521717308380665636380320119362267891136810916066513028254264328464060301822512778220216741238416217115655985883035684846513325788696316655235812325842862004459324056226552963892363551765594801141499188985298415224728579532838757230819439082963014079176849049387503260208102974611908717666117660211554342302390596540649924434805390507194259961156069072089320018798553698145557389031260046959056763704431102848314410366575243120034059539767651179823871953952337666318668385023972462602849770356372141919353607558212811033768742151300125341194050946244257600360676300343592008068352650472933712310948879682892651172807302892732583005273206721275054861764358365367278095642367200893650700455445940263905202141221750919013071735091076597345862473963703541248387410882300718876821487740973835597388139260889872540620788853425676931511301838909331030643535570129383337381015465710926055605040722092301875814669359146362084589272491482638393852516852597420828196212697360124122924061965274983497981067561428569054662123948697770733341040533723854219220140800117282124441660869094872938631349137664510112568643867276292896912498656494722762002852158450168517904423878309557802244592756151949203149097414162154313174671921739885564497415400781655193425448591187838030207027517096840787876842158749053071976392460823984160336006229543991777109287991754676061375672997427082812457227119766044072034852601118537180454021011005158938288060510646681115936735389144399589647678664148185376505485986138907418129299860491846819221786242611793879281900963662195073796706433056149823780095905449271657541739137667763584959410498399473001189689568717500162880558735623280183694707943030826927504510018389243491696626025925196040001430812769741256610703038973084556136514664071697117274004606402530048862546706433243846870943086936735870084924050323469133119253980063988200594954546111903106162958953533722244819389340137959673947649015270603190742351861622881518241829295992436496621864576782637101913777778768521171405120411572871792605204090457941217962765319296841953471080056552248216454843740726800019104056757380223805253650775616341084014078198844416082007473502607812722719182694422839231415630765008694226496550914883313549028581018181156331344936012212832331566331292788335178163157674909805272039733593372454584470527443984885969431513562907008479598048095569640127783618248346633060612999851673929711562660880161951117469591084066787031429295947582692512159347297277338290357352363060896155335375278226881327573188433955375614587191558978752890127615376358186980488722605778051656823390141127436032836354643912881172150696238337431361910398664800356797220173905063314066853098875636750896938947135689611214238996094773671687440126254467706645466998952028484727797283318166704445491413196241430185198143411145406480933241569649465858941192521057637788856247494528501999007234985955238146920997790035645138559817937877831107170913135486417388084735950680668409198456310460104899906903405427086726635363502890316586633165267066991765369373508297554787305405924721188057919058531974673917124251203511576545579057504954340150929781413590885706763349953978250434040643754304952860951207049683647996711454969718207799802959308210309791812650311557547661991752848949376417368452132298127241330449087756077426147835535061759376907720285764239246354667335175481705249753982000955085229866887153776728473884601149015000129835045173845555269684523362282952047328896407752266189517595363267915693978123791033934462915166347479321111100068196904196639212796658999574617520887260534463254559449199170011580641800249780831137351949486875866883928890833581200235332344521182992748641618583846554185057027531997674732911307683267222613836602457335597068982051106371104059646229188083575083108327516345883091176673192399392773817813056746671396230839373620975254562405206815462332696153376269386805467023393338138994752101905917329194048017740127110990523069781286958998123020963226931352124105742768164858196551992212305886501972050837169101455450105417296538908184457476782374153295093058907057247778701531592444199602772599940141364047887138960954898218075244154060116765860778721704524416475095800178238900355696287075500369281374769516708506268324022786302739580387580851252478970008347123120851839023667886152194335995715950449096755280207117764857901346073296468880575102979125364965287744759076628555710496540702388970710770777535965403749261795253746466749094544461271647776756305653427200030359961783239693634321113497171701403365081799977892927577514721787573121373527512197628620058385938219269204875655934722697902198753546644149989321565454623220487984089079332111509342822229951996186882508972191114899559961166680320350544131435528438340489785237639197989579274447460377863900599624099059860046436847163076972970716312679327226467485274267356584714762119191204361440888244772155572604230936721783122481966161693921718262303227120481934389250482626903392371983920471859511689471547911825890204611878607621121566499320720695957829868329126029850999171497139652844643410286317003130802849689623819233982351866672011208634551477922772059281885376603789052352899137028616440468834741431894814963187585031538431367791149118245189034708805730634021916197103735787012637197125017702615343282618080642555629945293025620489980071905463667953189239891433231609111910928049965749571858029716968088330451459904614090555075827784003257758692300483581582632917870600634630057932516085982480499840181431612112769964888525852273487811600983219519002092888918005707714826187045309054516080111848611250427001303856435647310115169712852813612514027702396397395317107178007337494585084962300871226122885941608868739085015982943007561091425702516572191964978377025476962468345106764389025993633449203255120000937365596908501174580056158483404422165778688761044330045756887311066759887059707505700531672388581230987730715641682090059763451408819316501394495839271368668329131668741043500092580023664422375427486975632553906064214608179896265764089924735745767618171443058251368745152055863242423689586406343512825033312334645487794194882398173443574424189423432580534591375364086902408917682179592624290543787442153624926848748221163423807546610742838999225588626497361028391835319954725390185574205525301851265413065972899240232851828427695787413210272806896173404657754417860109963472235596627565819256490784613203311921080254655435917390720584137705911593455266069006597930034798405066031004470453946470987835114254667537901569133246801816494228705812982384137793853329137105348552818152542209815476761844006930240353060939735302448802790725501536751082290086175302942227936360319795212064429170332541919533879708064474808106934947190155728241183804519529481320795481437039205681843120169706772930448680679552995227827991568973663322914563401509293910647175515983036908009506103227638450145138540063413049542631892779000544308969236184792156772321456881462867213994973981622259882744782928789340600026846674706034915808490431230152332770778125430432043992948360386054425980845728350183480682079880916461460945148334818113912687367196246502375697066621855549857681620333238594694585730236231228726787864663286657335475988756795531556416034712796666652251079778637131386918140915214596963911908552597982722084070715901097059878764472329405246845525573560788562301833126421604962680186484373157148556336004257678082593513434736204127172336730606710350957283545893611354360421703086882582484054587778740470961841890892042027621993029186986152954874117840663104139128845829799378533730056952880919578192528770656694593363204153874516386814612484144838308975547154962320658601127855095455432564363803999533115083781631316920800263553546937757919168280991472834872170574564043152086334105391577382609800190146682570077164440822633435721118043048258519454974870614788799586802301863797763539063226024008158634781695869572552244484307428156042202432220226313969196320772824131705685351199321388903188432394010854374176816498443669255986502900380141289411765701137122328950717025504777769216820142919989482745477347620563191820921434841094372336360244887155965760858234601247319133481623988337908870666757790150385348552846230848606839038672573085950240982779820372614951722508362271514470351601751856028193824980338753998492383226065975228875270148958895203244700818784498949522230923855648500783563685526170185801255672948846622832395471194987667257921331002627264506155901002727277973233433221440093481118230442466998915853590515050167040692934419747891792675411873726756916573452525120560369993593554519630649812817843874541472714474371813077244535709086971512167640875212226474319810824106657796333480525293930030086867877858704398263209163611359749247968484814611196144938595239601536154906075400112197795027776047662988932791344223937390632786867791304091365383157475748944612770556499665386711898449328937582745510549542752938859126600665202173326796681534046556836404818899086153669963321726336639987542218569600935804485538815008209679731026743882667946970071166698175180197937688577861504418560674944794702362692689046445940914135900338800252190497156716569384567559147778873901294033602991380532097659099151145395430529869865572715022407597717000603601789137823029036774393541473761477941661278695549320983231947443510142732362951938862605626228648697013215465621173035976077517010404988082914861065379616976792388161952130469450670517228859040449913664563199972629865465287717295442282338009185098996303222157475806665839555552900910639168178247258766574325182389141411937798751797270264238102155825698599768971228434663538402092256141260478922550394068939854946322539016386887413146372845145376521498503048811568940179998152904009930237506061210228121053817115698311475250507359329483940241652286731017957896211484638598148368012772057262269661347687234769859126556271991958077751006764303158256823675227732426145968578367625128467140437079555162269298657776860614679885501236767699402899550439864538084329335890573252587145451897306334240106199557283159219635969256490983465979725823513168998289934397454239625761912687727155978191103488799169036971703543307930556323342968368213359201953668626047206879275955696591868310726993439896502346514237216482088907617952518728311947608693295190371489438481137253678650548325408176754479787626567182225754086734399883089376187258822942573481116493500690867559176112598391174629697289610742687763257739780109589719988485123346790124643106563385561284775476782642452888910948377652932173856598187149438466291683553796790214112269160435647573352948388191578464011737076776561427393575649098730978012836234810739651832149927181516117385327197594521303255107316783857316282485131180593933953016188959475473362053294536695792562819740773650926571711371090129261231018157787146805131231411527679927482610123630756722911949272676979720541204580889180339561487779784947075317881747918700496935266400850956637291167604817124192040048526149589122106970227117270823348259604015355113239915378116017841571273518574497027607103659321400871374761897279065333693687217030062483962708130555725795081256070501043898777387349648776509554807623523760593357319306302788016615613764909270793200943205161719067218767311964475364908448385177352886814858447999726862436644555630736537194382223001886773500649932677167203619267489798160636053705113889420995481369181343823577695777438076844524096225650696557854208293416992631319132879453747372459972587049000184372099919049055568827656681026842549143286945665909814227489541455764376434010515382284941276221182071754831308417465255634693436127889262754046941967586605981722244653916504915715536882792042387248362913762774969635227351829989531895277799237631915018969257211535934404822853178406782800982055999188177146312465046299286714715774885873131286175819975120025689371965995072049602138423498849758292095474296026261182054779795345523146165535720135805741965585746296521060490496557209345848496296604621546500072880531407423252145339553218020151791063124569458419884362787984337921629354791063930634565186478394573289864635874226205246010123161106033156326553778229935341878088042958142561713829255027254409695217284225655407850244471031124986971239684968716748045013389704293500296747216879212301455310566326527701871417162556037265171160651424322823745892670559788081212060218718307150962871306724826755690033028918338629810146203171118066363945563808585048438490445260854967476318613161143389127886575422846492743954005060163578500403845564887810440495692003663438341514185908533296525729938039444634745438101779774953364775565189422693324928421061037804802477518615653102559715534947498118262333519259230061471805476037767000625494982648187711606648376735005831774918262137114533193582741397637385581493594442565103465507829539201903182051163063762874331914694905876748777388404959687844699810922904819843854941515476271387205005580960599623074084497387848242972686128449288558319054926985163839233851862075777283752729842984248708841875446982418553434903495653239838617603876575871137305947873755055475797383562743353261995184558790420399833171663685545917527605428125867381238186145979089545248476367342502905664000020846534303713869149930353269897713803035686624787459588472288270129905614977101929044772137269461674738595893124762305955774130439706003382981804115369074530549377018663802653655810265174653497064173333032279077684825870853478836585606846573204291045581782650961534858460002163668667836924971905138368878710061249710703751982165345099264552397118804242732637443152178010609998981886053868745650343427599909145975276550130216806483435545403595295697418755036918996473111812965733547928702910927566990262521237104600201103218030044330164399384521999652525026721397031693163420097066616357614575219964545682005815447053472001415054243453642475139674478788442287225233469547482058533929800076871267479480487770039791106834601774130446820979920257929296782422087893639226151538363696947666161311317843731156877915477889867449446904932802102362065748616805801990447585278832226148215574437077877855121506467243455794410474914477521575931931042874558197462136132699926196804389013901330020155261514543398275765212084046315316822364680897759029016511427395896173443830200593341839648333936399548553010094460813520384825152371640786791532322505009003510426332972959713051845436251195814267869811146561823429282369356766241643979717288489076862955907799717264978162008120823949535670586428021292914164569684502213718610203949460965903595702127122860078571513054085356810763213314580779090067121765507234832436621756294110984269437333457523012339208086157688459914921482119616083286697351598492891617049852368102719159523230358468496687283850529049159730326053494645474965573282569609896122623986315296429563491085159230743684779934972979565703583229050709727950553405598608711980701727872965751925115808622760730078450288859778197128926533338902929481771450838048381123593032507790936031269602860653086510964889184103045375044030713776006446989888795782928961880125660232035191996941826590037168330528132568959109625941498395239984674966147838270854758664985294901349295928634751299465882994421949212406988219697431379462368136226007153877459416273163679688961525783598667903583590261731725186150036860852457796260327283435045438260991522285584543703322590058122704208804354791635719314148681072494303831019280234877220766235494817963492524492723980339377624856663328349198435690924837287016272297044627995451045161322224343703089550903790419878338338921628317648611535428413483050198197533413618083149646550145842638671872802941417920155687942704681413846299647185103178062205974932873067670305185731035104078923340176504963742559893898998432516758995733787770513985160329205270057889774665943593084476634420768147221461158096924285787739598297949243315348065106745505472585718808852974579901078778162051056994788898077499203753732089118728531244215296436523661798351178679270170813789899474705330016650586543382113522066222650587744739374386272319578203081537847304805694941839948953028740328329338873220071926377371804960838133645618475270283253027562003744189806105728932031366446222275901793040610433233720945366146073344523233809702258739713471826914652458323037475180532679750531233602164868499402655376085838403459925142997664776479982600219172265930226121730845177954972870602437427230380021941035691589635179439797437518387269730151630249391804612229741512741396631014296931723454299217695414886391971824063606754479581963239521337936302685311751178189783550217626664535195604404562216249707570096630066153163767713230920123753776523630951291585025347085879706801986323571815172320716351735345016860340623707091093968178676261539672275122577211188152066052074144803302543696995736061147769411152757896004589188056163694112847701608696301324289390911553854060743438961973205067099535179476613371335334406797842184286614608546697200689598708945775501488432478286873792570824439919330873563025818777435363335419919868517139886118064917305924667477573697654151220064328610633633273867399626456152395840961147055965685238754642050707304059053694702194702422079092549585356334228045504049030707782806577212024642983150379461798326637651102869185809757971152710411212606927246841993740813813468018781126962726360571525839378288018987608281616190772161729923709710655091299678798242447539605630011760596033293237000595173952766540275805662329342898608245470473935771974169057703903454232987626432456288865221936836208992355126375313461690151617964473094329571812779969803691303441201448767355911250311871366543469173580575722154603843911492148483801355915286895947865352054294065338891850347331178500465985677761513812266493938836076215253821716668074653632463559000413247894211353156555793301108017157624768111746742406027633383057995273310423697330954306755488709498996665860269385246379771464599984433606097590849481078609052141696376923481736760300304417019718071310743237588403324641020254584375727327897862826933856003235887586342575039275083740857864554726665100460742347570606631905768322199427455039022885091535547465387726130597696000023306968133044065333463873370819426314530444014992932405298739566644576119842683945066626621311319780238655710286740498745970892776905580538156405576391282139262106082843441139710632113881903343226669865580382118986024047612612950611964665446307317537553339853826524867188287941711401007187058170572566927931772678571259440372353374035103900035375506939778901272594298697317677228184441154926900327377095940553007539683803550379855852936032932019704060341792063380995636378559796149929073652180204630202035828559598243090085155933247436894242634942658083881574038227131699713084710867269849633527774545298410952612485736295947384039251734245254974220576426048226529675795982497853462760132905307557205487002459186353004688633319887114060545891351162144555009999031481461903742944281598601231842508524763150407954719163877195976215338627054230816360322069487723711642826833968161386410900214195622945778197146027695073143994424111157785181972052369408086974712524541931763560141970925157280467821751616218487230877051162723493254878172360541393292460361121033024963236273208832186593286853991678787087094912348439287662197714226712221480702436765442241299462821689841965839988726208924450190808710591445147488706275589037276242600625393541398241569934904098136891176747392695737994161828330790122433840433899884799734661269255148807678187086290953380148015173861507049283793188590489118004822095508061397274770148972497132811328103225069741984754514844061434637452305773281885721454899590657098631804048047030862514321585012795326197295810446234989992647233620664881012723128964166088094478503963082132020297896609234565261614726461800141070942482063561156400921103597611575484289646585654747223278296082304623198229209156987886336968838820851384060590635859828900525560018317289221646194715014161176081472044427590932666379520772300294920575168724909964763104650110454352860609485948320912271841714176294874029622685228349325819637467526417428092643181041795834593466803621755131999775410325064190273431897875547596770237508734491067750520063412281562786490274859113713041396615934073738536629148495023885162166949381143967599269090551603631890002919030260756724245981706996354981054348951196337691843666875827643678539837363083417295999195277068111522562683204991461600717245147833574072216659522113409537179947685985357122219032348565303376061224574761397850397336863848159344274134594580904294087289281892860787333520350385999960893555662736511182886691702371540556272252749688727546401988965998244957789011478981570287863360815603340382018627493742727760918241128431133026581137709866775698273975335870691269449282952516479245366194219604225783035029244067381932143232381639166685624234343488163893774622353446863819798555831170203111676598647980663921511252584727212008680980535529978901611530719971099329822435602915565716109604660525191462596901172174000836625869152873995419056458862067498016231721465243828002826745017595864622272088105690415270698229791438779163602215017076097314842006807965348530177102109571140501806445946447042565134953262401142812488912925240953202800167112693610538901494904440220955729046751744930404593275657179921682781047735248914665669069137205005871443997491965249071857806862149331464002679858791057033706685700413188752076322115727723375013444222732966734269033343210026647127730579660004905253366099277858091626081467733736657989263686883380810364437879502304083322110743960474045040986122199248046411197286343831339821984197354315284650592796702444052672037898339388226217625244025090174066443882875223047403746409992172055630690257555155518774689504113750029208572862551679744509968112888485099763570632554274660051489208004022903636846054553477300708153536081755185631732844871875916200117265828022601834316009637522388892505465247134112504768831768610023166477811690208483350496338175833576875508766804941801304468311210325907753810968923086417758650480384833397566069524888819658756770815925047355983869489163056755923772264268932126396995135532333612282358304136554715143009204578169153383393046042279596549311973719158350621794071946598721006567705268634919301628678748246351423455306874355813949330485672315056577423170338430669379157486669581733253010328234808038165521677680476021445597161435843072037503107784481456049470768354179446227064043684009719793757965202397816682694135281013688850160304341999621502416260911338273707996326349568959730674997609167748397253082538272080225553201889898010185761851575451858778127364422638909570161054187962530313592792092196914932420734555928681722879286776139142112198691094326008945033343550266354962101185130747159795584823139676689365129012216530897186111580475143887316413643939359787760859187251878318217257482461357651087140913497103134959595012201721440514823057597385463518478025823016612494735343321283418797589938618402922625379603603885545341752192173348111382235629755284468822738708073372067786964918037907212730367730202091825397927181787173861952512113935862243678891208821688495561792674078996906199255245604443341419930136057250291688477696940157391127396659632620880063220805306173160618025200279278483320386695419327742075068827772583028269230535391583254744995368661251136327701889754520851464626850621778705306098403678935245732700879311517623904037091161356642175386522141411966086988776859685016943147478939641071387065470366399898389523272577746526951478210035995308914538980353912769890914932423478508540128771138193998534900936134048838595168509924828650498047679999025380486081960521194131794483326941318090784510394100748461097045194669158070854396520257772180564118507920720568536673930265853082907020488458921266867848846394334101557748497407809026575009957778789383516977021341554297979981547147016123692115302630067327843579795195120619846603402333137487344759046254316520126454160026307069572355084502900467219203612161504588899107449036380509388469822032180452033680810811256475337964758576578303302026643679958367170122248856612540821796376633211837989357178875423311222610585888721418754234061173342295647379545784836832577069528545547832999124186938759022985093390140052245644550711336056918845895967660653128204978285474673590413985729583822621972402328636292184816021984431078403403098478536437824570285653563393757595481883880359906118006534398036683739776823987983555207792098165394301902596875868743740270733021951137976791661779426552687168774656959552048913794776268267330913692674661193598895854911065820849772404732187594311856869373870417052910184131407846098741539126272227053228690873613397120051802321469005842579705737127176281169293618014444446078461032397895758197691140222889297516416490303907660420841139051667285273814732072349475337377486263013389449670933280903138040526624769316158544804794335582333411741352523761005694267722118763495694217315362990678495982220867534107238929941011718053731769807860767944117806963497059804863385084249466321163721025812504877981522423451158802350044265929739548929908131810549881546875910116964378076456426059636727770809827928701911635021272701181254462047785270556566824235164114633571055561195598803615541407202481583636786431155230182037530660985463492443428418053640402515390645267146903892135322011754444887768962961274918853820363474104471143317325187006382589708511685001820613617880893968605307701127116892755242497697142116809196504215775468204091694820532709886542498528702452779239313039902714823624974766109908515596553869211788631146109915149103247878683472401841826586226764773881859124646006992799205969735019430426905882324002521412773255960619101327841369438631223400379716871031762867860717597885361883518938710571157615124512046263760128327889362175792849558242005705099419946561282886192463263406461477154053501506030822513927393897641605307436284803427007371356330533267076717954221346643083830374001816386760626348972385039487679090986518729263330126358624185293862006628849237906491188907029009020297812272515890208864140829839687392767090735806179555323975426473885019329155377112370787885511703624109266986464081808078883930520911995002300001388078233607965217038471086233430231116652243364499258525627670611292671771363774841306792774444208093889075894098243996121599208954210547447971555012760321036544951513526272004370989232383180458382600079270801587854388011144931560921224653053611817873271879828721784427925027488172876722120148700376900218767100581289846783570652804538998792380700309045968196935100410524420721610807872302852994865132849631269662236460831799020354196673244250447456240583065577384660291293760408673825447621298847209490194800533188950859128134891828469550153054188930155137534330764458787468184728103404007779969693576474003546570095752061808982418628230564406569336623707578979986656934517423169333654207655294027435322623688156381745008799268546681448200770362591733920660508815829692304909653305902376253839162361769941907976947749391065719989839384930902234423962110036536494655280668354196081025312631084060263769683017138998784832179107964500861182575819021912012689571984817214932117219178571951200682421880089468863722273175222544447765116775199681987208166286280983705666793678318035389427861873959397373475532745669234194427539086262152322700543723679875170565087698211441435084668226489901507722187062024911580603396864095494279056186793731852628880050206382666564668088534857882129792945685418028833806883703897950188542013633461541382270130794243223653855269286952930966985216875538510549091798925502441767255337139408754942925707848979591796863086511613184024628211984922625690165335962100034759431922097758135769374960908965310349682752712481660549434293448983275828874191789980138679059282897169069639153436506885913299230349995163289227389234301812152036626230746706349212481549514488642539014157776987894009955013924258800041710384641548172422351994245597815358920470284098631391413360712029194186095185621362323521617490573628252409978083334692219233674451457311656972289894768765218402975800457802013334156367559944145679865772528176992194697819460502016261160881710354407504399532226260534312639624742100169280940783206418134769125125968834880303070803979284628778964791894733095455636216845321279911536504461304320401613140902958880064488606098574689573417041913810854874872803726929681455722845195355111370014873550859821735147792988228161974551418407640165627071599620802846955990963334378721403286997801997089797387077200717350349450294765420335709443465118186499224815575887871544948103676170485668887242348524854472115994258283333283798457406170201548109906498172500243847680650901395602310217950801857355873001322453572997995935744532468617289668593388891697945955377600880729631436677285184513318029242646430485231386744679977444325014084253528546704745590212313553225406244753661655628077529764804495224833945380967248308616690310931268145757959313469058630685552459170319735312102637362626203370763199758445446285370521359859375647757748201158948595816471559628390518708823337437909198551315530077968697276510964756938530361132287348462453703053672310418795074686705520635343778708808548709337393312446853774058624817711132626363210771231994939659272155458275905691868451078479167183013960316052133460055890809232929630594162395388713995513026474141806959133861947246363973743050805128627122729562770736844582109827492265298696765348587310054164605801166386656380021018496804581800410914747769636422002573167445668089895301317438351882782196972671805212904026782526499380517496666228303815554445024624379778614352049977035265303721813610578689463670539298899860206426153713317933373146098669896022394435619910175823032064404310904257201845855807062618164325533476507162029009318188621345117660722564889279246961795724314068551061064796293605420412955398508730277146420057281160033321834578054114330507067776151064536413766386313291085320628134479520209420313476062205202209240014978822299457160632706490447855917945027472054299574939890250991886186311713450024552788346515001768633911256430033486592610286533682450110635203860599364479885240038473796209418336086609995897375718276306932691147720915016093350538361351406461370469790034821238799663523431802144143468731833617217991839808049069140952692548448340977294704137323641546333479831211325080252175353381287169557084900407906653662134412133296041633180901825888796239166332427460258372044581817807658799031888325753199536564757630635076989495316152433632735657095558723732751956872364805260359956863299406981402910503512729719210369515508480186235727136131764850444160487420701117588599370889722027192376536011602939953060734486570240174596175470259803093127359500223263452685192920565794608147495321085461962548147241480326436338370436890983945949098894005672066536933750787570965213596002708440481085610932065038631914919492826165507051754242736245588786663620297804632879896897576396479819987344887034521537797344631003634087151912476957575370366811914351217883807499027760602844889490943737453494201067256812258005712635050179260123475228438744236340656106081428800436826854928883861965320045411031354773407304103282928031903338378633759740257055916106704118283680402901582334711503034402306683334227187924536119072814674003441301204469343846546176440053480465970374214111196072404051870502672097809966917869444630259053165079295101374878217776404323717897871000086071946915944334465903439563218488752654336541657366669264921492878977574390307332791690302936112250558582496675499249221787825460139945606027925852307608740757208364006033623617904414314763770902337857705083607318415475923785860957620141909514803809902064844147328881538073104534191950721705662124983932531556918770257316900961633292536258752479897466672836376546577035135608998167487355392904216816952561275977132358282253557102928468282111278044631176094130349517524461794885643156668433604052066423116342019427911415255623861087370790700235269788446879651998664836826652471622224507094640437928062026825623984548369985043685436080955703276151614197751903860327259500754761716798818347679025917028779534104954744193068319617413608702066229799078108569725510848002683881280947489178752436292293585418792262142748526833345147276120330746946296613302394266279695444265407603864056935217468208352848070534463678268074388852061408501575020249299512567927992205648454138767509890233767274020460028580190035689377660122173428723005378172706733849100628567767074380289110168168826561913683047098625867957149592359779604304158700921651193839693183600646001029315866145304797151656899159882035755032959729823494590428426540523920786647493728275214501183975697341261159732601834712371179538718939394325538497395581627186403582376003462957195042352823885944077461976693757484614312171282465859566684436126638792988647002631944420979856484629621557990344384700918224295470810384988274819217769800074866243538460143442191080415006781930224568262444376647131480939033839443568875583093731918180803021883082564512744120731841061232256151463679074907482645262549432389557940629432094320598701732387739865442287478725817412785726169244661978001422472094924987602845686944391291055880283750572402199387696241084637582146103962300262030996988870415836738074375398536314353992127185238503960850316364893442009435763498284510202143761929023211322774502622009764103691897967243874810313695039010173250428988582348825169588556447631969658504271423317630608668889934573397988954789508704683185136301003388006407185285594599454186210825564476290768527356844762136043553900161577465151638705399076720392649215159898977723366509304492872210479265966594002218266592632903894521820156420336714681641799535162911277869093841640755157976675534334771251505050749111243103276989915904031239419268041496310586197957242717904537922447088985558216318123020181602157393258535365360666470834161630843712940008247973272081374592553048113308028571569993013580175727923555162853519970953948996709907491147909256035128138783778552013382358327737437225576124253215859180341137398957501324110900796305747312429543958240315689118622286188224222199298621990031830329385117546263230182398333758641698691797098902744979899592853738587938034347561611181713938052291507029925588949448494262654668643479701861577496631860472465238570045888594404437085438780615446461023929343717075071244693731770884529771232913988072606123930673545219993741384292478163624802745857843724646078146826334365895076955330330539360238758697826123502420382554438349510210669194125645995262304400328912794374338136582887349612808681910632824695518617795511059622366026921671722495189827563077940026956264975511165348561780003151394437736704402851852688227430664198881975520820692926425158822276461319324655840547467264139320681665205514168222452132752247966777946123666426068036688797894317824234850216547297700951760006190359292577925482248764019527384122540442780783219302002501163352069205266374551037515901534220697400700239387205778397861336179236504571602130154962807080296654569810443541082986363827538427909184598174961640574271869824472265624874354201586948210624834232890798814005939948004861640402845813105301435612573083887011722093900212462259922532747254139470429841374086979355395858064635355030417482780940391868942969094899861461221794963212350289343146970976438228211006393582680572427123089793805452029580392640697433391742458425034919437945695992789047216357492155394344001471440409570463083604933872480376711748452837994962793653753744079442068514928818350139183915172719686827760669843103208162068297376050764869722929096116152798760644567931364010960634668384314129822539701994083176172067061360507101080839878116708703592657850844609440153641012197721053197345445247515630646965760546063089373540765980124095880478024853001373790067915645700307457266622694957325146641594773613067749979600567654074349721725043328572643363501398626765513175903535267915628046337760082506899353640859531926882963483733755118366621448782251277139169048464040931445515433729583683354277640527142453417006919607503131346158887933039077801942355288160035417234706385026306988877713639717336539278122140891807430643855033425152130285683550674360708379647300739860598786729353343155783442233537492398006763269606673088791395419146136147475943534597994982797960933750723138126561206692307598926603431437709101640595704580382673943939728889457524733771164700379340502487592864673353921042115221975701987851933623799213355871172717334099543611269221020491546086830850132308032337024020169580925379373019007663618724470683993267505477762251906453299581382830862025665349234178390646974818458222009594798055419818737526901687947196897744848478537689192702841697793149643791341343482650267530719094707155954107756313043417534825702214148470909553296112212205714654159492367297466851628377052860754949682581285825107429791228416560756530840393124678902228078859103976800567418825954573399645440364929198188508536191384330880404806778009428898446982080045525447212221098720379154816191526088525966417860468751992882839262443794083888411579899647000128602825055131081548923625022937569621943099888412456252321597876870219070735095016021125347419746901758412179963830378743904386169724691332642625132710082548720750752049235114942210417387001854182860872679965258433591873661761289598669609476835588064546316510241293142424888691053980048010437346782852480675055937912620509309489654110385305764134040698854132083011908190666581439032023730643029137709929341246525963742915171068103653799438189789212784807924402060688685318273403938789874823489141634589566370274806687172566063489673803931852077664428131490293405559368018614855101384568545645677691421406038498225855485389240402371179969419139838857412596799071016485331676179271532642848371290331225875039998574224247773946886134163393049409145848707330103482897552979021764144959454801862071772997242321682044037380917056613215326521821965854709850950233223517554149656432307016996088142295333878510563120331824289332975708209070224227472401935823844674979200619211467704270137595120667716729378410873000574022611781665316352946415744799319141321347365829468876209936116418644563357172754835968960093478230966132169002741525566848555101264082301817236892451167681620611022811324844522794981772840040662097733838116541325519904584079307663872244062867641659456980097367573819334102737058164248822616264382294949321523944020330872080884695921372304403746266572172557512797436705563232269739941176353062196677434606258682901070890620590456862089015369376406488128530171214574133731915983255778655867941022719192289888527127692937086305014219664736006708884582232630405730158247686623606627867455412281528763032150725124512740519228155193249202457147651336494339658029419405082557020698628517666370182926158987619180894727441159249017400688996789550438410291557387846532154951569451528059005254874092748841254660075427555660138199614214765232351485343231066830877700962565567067731971519073532546958429750741382819793381205200488929591676324339276522074634327354235233193773142081433966145924684845516080642332957177346321369630302074801835432696987074405028809067510190097000603407434233462454509303467084689427147266401310995166167422386405632223694062545705322415552585128865336068228501987447357120929823962656347875537954756561126683171828241174252016853303828749914659916688766586681226581994158157306982849341101352704728981353840543605900752059090560235893161691668106712869355259725057159884761632769820322973773905703154665538827335494383181613558085208098002697293112433582280341688560760408172272602226586908196739706726517894299652553842309756980883248756500956186064159321050044383652457107488285480267295037325467470285985670900211856606036176742174450504621136792739133926129225124520537023081904348810710467327488114629138392848178930960784061790335194089729042934571575708766420748114368472152222210388937036439286534014980453914619250653100188475771557945176555523255049723910329922000894778741491514414792513541088869524345152764708104938072387170980274991782291603895674480270471966661146578333557268731710884317383434600599537002479673785058027897500936668498190930973953175119466189516624492123310742325820876828856854248171458965766808527260686421068809545471428573974459489156395504538832809883084798226650069716148951359325298143127004570017502806235436049888490541082759361211371452906510969896529209129506169426539059191763387551042758957129944939179116268147601355188358818521410701693327318276863141991114093545354198494077079164248586181683640065221715324658433517067256141320922074033600694405755739410843499927248622682561718149258367996446660832125845945408878249697528809244901625473970935390668343217131624151619128650863751995939697943856009989296544406245395957049446334921500499168117089836952978543089888533249540664187689994246988969019217984583275101828567568508847838199625264282247193676338695291931736204028101115377247778253413243242384380156975432317047987022548781368999748397541703301449473232506083847141372817909366865714045194582062058536358588306779009588737862521933903632119631252697950641449810869888183057529512163621174516352019732288376756891935998702978721732249972255182332366395852223506979944363874480138052010761567920924721422288255245959844015898193076796849977792880642118451186743880224245674126018877789964361194515603062883281274766375653936364482694169073603028170317192181230367600763909956681975367889404334121233564265651302095554413869761061068350747504350385143749563332658138595068719523212559703946310492797526557996906912298223632251598510610898501976223679600832878376914575494200684510239601413374572101413415593597346491104669749607576059469868715521014314455097625014428785311835034339402794572268334366546256477721108431482861046445315086973225746338361310387790978833338748868014494916065275906961730302957642390618155349134066704655354448710600916109927690916113828361942213221204747652127469547925809484942613615314840219828075351242711407554243988592394722743133002025654595253858046359611474207813161699851356091123719274923533005808796339570004888862328847854999329315859120169192865849610132251397515956460832268633767181853876355505098916110478830511127203887944260852008290107105632916089875373420202835799409478674456569125213974951825391462657360933947067082705058288912969631184463798910871285499476869850025155420992655987968466904779242137917501473545126299978454600046597570673048109584701731305183768532157055753241333910037901843719215504420202419908207451339546653520808122183736941917799865135810682192613206013013378902524183280602152775420498911040454562658647371311997186530394592829328700460481999588185291601828616430731626908885700810712530326535254768095071161825000523198711952447817369017867510413396624824271119237782335947783543598873840790114033889649139484695631903394528084564962217050301846923948756439888451659488143308125485187753410559623506536007933380324930769595564181157105614165780648473041137474589924059441663221527312914527189539655376703680662381779772023156370579360016800753776372623932225449256964993817373887776460989424716940754346589921258978199057813710951087042513321694241741101881751238451565479935851935222116353150304671770544036101262294670128892966760238515031871779478514572176895567444024310269000282238312399581412158309588586666711300749100140586427443984746636560913847235892701928908899535041382230193482306662933999939787068482546471966189935511307434353320083668081132768356911641822382301045865348710888961957029610390611208569699850390326437616037351121166614866427206697928688263737956524936060536800193743479681221629580541635300895394145180579643994611707362012212933324325865102927161290497439243975678861870645568236760162491594254819884332734930328640262253927186145655341369271227415852670449483685127070046068544487496618312272278454579252523478316994422953769872724962086615741123515176178367731586773749768723751148230345584656945043469393144518021386023766094729548947237143890156503253881518476474891757355556805434214504750177648794943476577663565469825017799525933300584249734531597957296498228295687060960140655590202573757819557703370916603692784057445964804338032594073467302874884482744431762205514078579517296216816856001510614180162183902907587459460252257073315910997118671285369079934691410761650573564112461700194753396641621669148680419193819233145333154811152167149681685230895683146580767712722511537209508030721841650684022621185108402802044631540636569954760167708094323811350548433566496345317285384434685982071605974413050659428267191267967055056768625877636351463813393906469953919854943008800317465234328652783857088281641022176359042617277653546081471853101351918084322973541084593830326596038051902216623740908425804598094998567433646294305918876454307961837448664038336038412225906670136411021542890613772714710733361808780948014459863620395455165376174200491464744748340943744912821633794084423778067656734769631783966338212588580670203615591598761751688903519341929254319781757763541174658121616579442664763415999396760191426116965181404286874801029889171422176029173952525462246472932505745841120732869835851727054159962917538023818230279794793738328538961496102658872117067433014957211062377192856418093762057374898339619702093020757513978456579096932205178359672588612531374398440119130765792852016775732958055921304821172897153267808116256328626741120294998089385170690965867737100916907969356654745480076528356519486331625288615356265610925580149502396790890441873237335723037963055986711675631649223431031314241809195017000360326570915020868763835360785809626594304530163864155452311908846478938355035409714139180193316297091364042102005601804363787233278585099716789851464446028473892606010223946616945109083743177838605234835579839248686115062924097444644611119530103481371106081251100077515881293734470313444395717784640723186403796671326813459457558059323744257186765928031658846586681516209368950793223772123731850625447705609713483127761037849648706660805511056096902227613280467322110302602007945898552424067432026853737672922860256504668835158606006132537798272374874951695597259898028246993757247907717213661403038779116452180437936244081180628787269865892026261798411602583265569580131740907684402691400710943073004616405162671815691802285057120431882648611617845603597300180259365829500580595785931910714093276540578095047824079869610237296601094118174078462600423277221451261031069699224594388525332207948974218361398060560100183329045311442651619469789891071443266954218138070884820408573465096431260531836169752736350033131218438786378729981270633463065178506675189808181810936271247200567008209240336739130795435000354666079198643720078218523902594615415760774928257783554077478350324604698265467625232657973043381108459421341904298427969277577119434705462046307385800085195922582978853079539181360307230081038241279809269615882972558500841158233587759873419429800066128149334119050804548428286829275754998433145200804992111933459708981289181319425938297928294609538216011726415399956358800978431182753639080569222013489970343031895452171753939795190574055821109151719336480803957882864663776826183943313775425045893630260574281484656090420116478488760792991053846724874835601068232906093364735693806551683389380895231901551729670557399988065990544726386109222382980438286684362244807075092367789140081466751895373632898782833568300934006012419207985781189385541411938902914071818165412625506329296223490483930674444405764237403635618002052835688745112142196131965020121502238411040430306380683752553458722025487666089899266965969309868471285472034300678436228020041919555048846906514522687869630277836996359449979541654387465740913774378556664101193579373741204765635527416935430089063965355065323147605885041134443920838240963767067962952111595155426230086225659262795268993801239922349704281191343188606278599854721973466501961094080443347948883796074990982377884094682108458343076951605106908973634122470386149989636616632595786531381350432461458327071999493554554664504159317070034611352112520206605984031044691403515270363676284445293972943020420768027803775916040591334232854602416345855867512129327781147341083745412489013460344765281215214514478520878076887221045523503107660993800415772923808648217764103089325866435168774374537449914777994840078998486745737242204197029312843890957541232797884887930302838120460525992248691977788905791972679643349580701330072494961210171412483456713317049181220021022521530528938926770573714024126853114682688844720956865919904222062163630270562729821232902263501726001128969470002626773989585796466279300208697200068650614272431710244697155859833690703181181839666822413107928534238079492421247156097293712558398575480037718152229516230047694619043798231531231095468465474669993205477456778025978551849746345087776039289740594016443666070933159617537997840891306846144290640190035728260156969032706379687588213754838181370683977764680949346113270633043176751973323900012974132003582787099161173014284918589100021510560562089782813890263988307222557392807179968977285969739169083895143478258581586150820079072607366149206333374846718564495589543821535870472161509030664780693559461732165213470915550123596621668656543656551887993199225699197612093853293596461916767287076748715403714269110598868251617317483402022371413755205653255908966757041440934238093247389235344860679685046698413950962377447802520187518908659736956560986317688676591289017638278094589149509763584597923189921461738740043262450866235089482202618989332838806215442962913418873645059416871109905567347909961656388286045799406094953234924203330553016457608940186371999921325667943886559599395744133299053828834368897952899292993838588487197742387654236110322937162242474470727418573293203069659242154221060517332070860575883399927783654830580409801420152059194906709402609457562004933046690067846935602354290025099048364839912385880928283534913048970587107475439457120128199220537287784405878636111971795421105975859305160329223446268953942545715382804476406756033906422831879837892363233414011229339363099968219327867127713017679364039890138027213296386867544228770970822545906190381137574025040559406363169426885341105081518077886800909190229464376123693626486110270410213370104764836880435994299722908007136044161956370933102928995722122113548761642787119296479435589139062754185173797033400955647233720757857138022838639451898881936195912993425647992478527589832260799209683584279627865461562710996090890336208516237871844081641501318769273769449577032198326787569908523108827561093249213019352934237529948565446304400642329998496792964962543504341129163036624379877189388411676413126819892070548848181591301621216717704820338023657398331746672190945441411898568197718249193193093137731965887161130462904230350026035137826330255460560726902730272135746518508283226719955237149833281971095515043519918252717748332530495794126279230321021032956837317114863513170094353574399660007580045213577719672112595493216950963975969301140003964262498960215578921545524472089664919763105093998107006391292864410889662298833296923690041730290866578698059674300996513136500210347592890298936638801572410842135357117677822130961880336636603500784327693144715212709741280659015693196150951553488846547248565265994607917250365919023311734462105973023278849756564358730370871628379107154018190538341417424305872846544603750536586359260583760663975601613580951398728632892462688252403380588445973577048896598963516070900993532517726972083441576361043096997874921780968607645164066002429448073871446459816300408763377997202548340848287987675268076676658781908361677938384450229678642136383243966329435198752416910355693212838633991220746533216022461092398579768533884026143358847542585026779818288442192584147708638454699375311308049852470964690164571268912379204626330683794746483824881245448254612910644754055136737961705440936696800691256693110414459927207316996051668708702438807891655356060263770428583847439529708703906249686925229046843951673602059404081371039516811829316145007274164546736590036458590403187505530948814342348154724045473164494984447750186990008858789576139398494999720855844703948123291815008019002179837100555078338372191798715235234249086289280871293331144160651824126945675879030334824649153482348788754884434487379690297912600271687493489702582540248861711542303213797262577199267501819449475416880229029643653495549448226514347407123390898510164303665782304897167361590850947290277155129280442153626756397048874717904655514300626736600235917599554579095913021181182835272445229137533735321101761529858294938241099557963285294796983495404420269443168638664172487142581380219821356922842921636699616649433749428950664975827914842234919561689873269045089643148509432890847953388385456175975744173131608820573684517887962791340480987287330569782450408222562009014138336473213381598657996561990180428018293928672332888902940260068846613766067825540366770840910106763263817932549625725509128734476051214148226728406331766980668072400640931191789745360582740872553002127940305148343480521789039521860108137585885697265867132042632398865664150473690447382252697487706864504777964035741811824664945329851670380915243667362226121509766475776145122331410384213988803720219286361731363759850102972137286717438954564316905809811758355323546328250536096883291751873553605102574579845456108113401862321497851807164745187759462250426044054703769194913025634425188361940775232299550618580628864220815230469506150179792993676796740590293376134121172707704366606902035605740661844632017587002158698434755709445913054145767700052314360642446103324616551584416030385600162045646263429613597393920376999384764695795008357866360743857669435911264144561054541139299311089965678263300218988888092913871969864953780768296752050976019047045134356118495414412853396045007882270007077648181468795391930571112013068216054451520662765761546382462362097583999724153037782668913954738293048239189550752164588505012769958539785530900095274970584839764772173688694647567273879697108300217907519949115264378460843336567383557868123635771957622668227207758822073329267527182548696457670379569295249100483796149013157624643643104628550770409311413522862512257169220321490070491120795914912934241870314487021365025729501134043684728153446289517275476429126958845108752032471458677586097199617679120178860670766167598008352026324819554166307871347589794902903556124460304647740939792899522049865556080026553641974187044575257456578104997412066038425434866548244495887377498134987848518282226171259146787495442340681358231809203188908034596574100593769192224138458055536267353006513765602749221612392792384019500162747989674304634343172550312843349242578887216962364496014016680950627112630591269777246337093251859928661736140461305741586360015350454547470252209995413414235938676941735648458536027610310437077572774590415914470532523637206023314335552922822821361693156306981055292527407340592389699499699555616424253700399736508657452721251317190586821847947272049730234977065355127812456238032172852509044802510407423870689279090969277924001725954079218200339036378720601650064674237683361661583864920629301038881091777797451839645597258704900093128027903321169808113424234731726423296015476011796149872654264053117476203976999650537118893315029969526129890270719387915341668131471451414715978257338498604966024461552320337347620453360264418878443275775198361289594799563326490245593330140105131633612513023457815612887698723909288624292316310346978404061333338909518142082278581752831164926275368655358624795863830605866247680496465014032643320702402651985672386073492365253493678254387769377662031949568497313659879769075605168176266882757987853318865045375591798161826942581896438474065356556258245387384248088724509873252372648032558729711995545695131643472091942159031343059264469176524381331233541848808929648234577664503994293870243018366011555260592977713630647142871602501136984567521899274494474056703882008935344176413879227682902319849459231014230641911212703897629179119758466153337689858972211980783410041853544379228017410057716324369703373371371895852608148690067973477527558645509031401795347121295088240376876445979736580154498631915752473639938155715408597767332167156250464002398132210295201809907833485323992849676967091835526035762769336495373769306716516839932499330373772145362280193659860428304395870649799753055310561470423689697110095455878456231913841104669890509961828506512385996798500542525701879718380204593831893748428144198099700649876816813909701289202440615655041738808621439970220873570441843300078619323441354796972768101511780707358319245345660356970624994606690770140909823307124836745739197088481714069676502654078423182050521356397305361398124867788493625341290800142558544335144122329701954318968756293972569806128375329901809140803130770174639392605449676921257708928266547213976684137285512957031401587124470583851607951869125355241748917612637708416957956497824480805216486671749634407502880638576743779645097356375544331038249236802697754479842678967353370909565287990750976336926992086094837037625107271661802212990546634598123137378071560009384929406853596578906855998438473235354329790150572216213666012399624135997041918765946204316049578975950401786391079969675256874302663846572873008551717110950750295760356529316773990220439077732175721985509934852952396952516063732426288206937888929506154905348840476436291025807896948866411689582652128287800107940201003084571678159744675184657781078454534253183003324373554310639577167377964624006392895221675548271592366979531520138190292915690564907779610081135446273594368426269596138587174013231606692935369033376562527574230154212552862069193698805576590557608548948835735500444545912995460878230697604315611887101897594313244091401101120984827450020648164965772306467523388524637741092100819335952005928033095849213769254060436432621428122905157481377233594688464903545306726599011945419089584441351937050440465028867949447094256865300611720708684993011208248077313226573079616022890812338659887460392028839971169486105213428806397417012932185885774806970257083552985787502740806770568889936137611592638336996618032981138048250055890268406237992736001185597521819064738805871263777573011673221305203057795844298739812918432620716666299116684416747139591166430711799615049875423084869503792738757539302035611630090247182698553575523618447422751972711513495289210042859712561137275958366447970365074171329669083619956176311199662090040112857600215850545426182896702884227301890568552329941244046179640174122546106232285734256242597364023672751121242318535376358698537766558367602399301802960588140408514437003532602832051797102957840886175362817480264181587952011127256308661143351694107672289591268865587176666574554749937949988410576779802678286083195217420252658422010315772814069375846761812749216091926722406560257061561823128390484281529654945227150929170856214124273261172281740731986435362017684341951915863861979377832807324094300827942505278561697957822767113587819340753626272201605047976489399781915572007434451391275779567654577435725722895468471005283496456577777385132697722669255228772498271533012624539690192516706829746451855802536111096887803905219382476635000838340904993596581180707902234356009353212546334176921454216982651623783101494257098394670954817641445029991062818485811143280750449046607954203564829875703129503038130788291435950222112297141179425527327802796222065157011524542887369960993864624829321788223063684485125455536253975801466102089929218021213934632974040451174275405320814590494898862449215958902356087388841733501688275416193296775378025498210935066939347624253978210796742895337587097863395976170271235047010915360826766936978150393978262157666403753187738959153265191112221734916085844102109119752483090147556992991872052612019731959265978410249309078725533466167492856281985742791443359824407713344153630955800859785437064742964384825043539787022282739768123530383227453254505335461286727703725122073878662281014425436172592205446122854158010582437492615126961304342807091322924704236256064119229773360634394872394768007448212970428996468451349220730156431158174967888764754603242608863884868076907181673883235954587319412146476783117231577674394089356377263796023611691792441073342361861106476395077442654916590076663399674034824236037618769808739184824375740360647137567307187420669902862179824768685378149124592094849458960478476458404348448868324006602741949035437216210452133996210834858007917556729700845840037300940949292814450859334898621093774900454275518522359066016051902907394670664790962717470200817023803922849568549980945143256468197231884122708966670005570271791778350482982037312938649958961448705156329711524306833238675850022586382583465452403099609488972703861762366645026503283338435381229049307277012375439421135232575839641973843563276291885047316677889017142154401045794878504107631110803041881801034635273718458586578814931771749268601588422844691086130983432349788492683374515801821060186874641985177724236434260852364755996426357083063026204642911548058153529770969028528747589418568141396693761677422726942492435622188155432671307526032732470210102810531336803291408231662347626126493878695437883785980854599730385173721992693258237899841846373399405454988157320863351196075625363493727120401074394498206649687978423855185555602381232968036884307923583389765006777595225942496473404797370884380027932459509787866698944171134316132460246659718644952120656582504036653213983286581971603739933302056585649217867272666227885978586070725850578093050981210309993141498226624239802796976887209810962739137840533125846303271082277610494984513316378939643308596283143233533924154664263015740776097874690881829028016401856608382124765028693588861804006581808907850380841690241740067021849693420980620081466721061877559306510973455158601465334136776362933916463461954719430214991502648639906907633144503411531112052478533591239190558214734018480550807080825439498480051396301747859839569986593139110365256105462954586114932904805206024963567714928288318353469758782539116585125776519875044831537538209301866287201656232889118567541699033749131476807294590055406911374732098070845414224129201901235111462785582429535019210755691331176332478492833930123796986444089257853623534030087468729956731552349024155897966759892188152346001914366321337051631608687919656869826752763769161860080460935562116359230666271911446728289997635985154049716532059530084026580528898159605575028763400404020106602007881014807096193824763391138567020967205018313730825412800648226300712760025908725604483723960600108889014589012924453387031976671131362812950614341178578466782431499907426082862375772426170959882323231330519592866780802191259427191607386146994461224282316751816677128461048818634243913033730991246785708438756606327156414757006803510344087699519275454751768982592267700099277803544046044167326749442758518985383089052865714131896077855971287319971702483853984106051882935265610129113946309547442178687982851061697731376242462480804399297126019987323731931079676420524924708297283141328502375051067489383902521532068769156847090990269629116090126605045637718832981264076510749725016451667938632823835201466325592165850645177165717298218922878237269101122668074590975599194309052105852803558881241760623317331035076923238410584477774477081717493708405361200649343341001295416176632501922725431535515555203429979118268771863997641888478208138557852134824463412872097008949253647407707968915654090789009639965637980349009104723095588023922226013263782371936562347311560358820745139237869298969675987062551572287392278283166831458418622523267438223554145090338300659588734617413115443759070683510804912124194588462046453968805816294664908511084475714932727255015089195354604310645814970159608055528951897576217827771202810947807179354860059479755269116004215192120995845027546258180802731829034243393585589750142949411925595069957994566765577700385734712329354846580891385654890315033021402073706074181653168043658672004158741357982158222668190946919862642779289647509704186712430249618009996974201727505626338106398886588823238565293595720816362452411524940475491739626486932381871779685000183513609387613594230753484200606236145572969406185178471680725004849357893578254854484776313322165513796587233444466495258138536251340885457499483507281813147387511872755336015898341914980748109383326416596493164576725613946142447772250842257649188773323930235825827799153426708453113055676836203653449753559116394150077910303822713645869501934832552008062904949020315086700439130767548729543489176282650039375804043796395643917773052024460790978698077650479889192302877511376571991470534286621646299851142351453842576861836162642785291747451470053248363372234228884938088711768970901111670083547632619706970943263436609234721074351652150201526071722059655011995019788392751008498641540174847628558160121920398558678493687843696431243905889104153043492330010669228410449312965624392290906097015570281183930557736036350780774463263018510120278823136731011561426535422585149341609389389386809745912138402490098445940790205187143573897512260210283784074847578087063245374398611396441265317823763490795716755866606706712539299603342645220469775626883106714777170189135448816746644435962885084974115208277365192817456896884613662099460907662192196397859041141894759165679049379791816384195328356648738016916860574990006092560396131755886087642899702201415841121949439500732056917471985424218664986715429480554106650076315326944860964719303668471974195819783679555860908990303205995513950621510400538811531087993957184010039088381667218852192505044989176581981612263441575914115313394595188330847505228532271026714165050537570344567495625812880876492255748769872290715294794570391581823026179079691867598979612476051957197648980363882445289439001477861663241679020403243054850289744534941622072120544633521788612757862115990998747584779844279313256154888629130619709952797270061905834758762858571991667677086532838900058402503429662190706371685477537755529735842980701939190249161981952573830535522089499595127294469500277491939758686206029206352911597325430897056409954126837927467324581089579755935877716068493666575500500203162996315426477490398838383199683347101923470169025370132125881801134563682226391504972591287270771072058638174143744200141627752407014449775841093719290221069469302731021773388005256165083438900488107350110339274821071815924833363957806870797716178280086979550232171843878424989860813419291054339072270674536028926697251803645844589292391973058658921125808818200929021958689195583503071091630866689041144839515435968346958233065868349424985876393895032514889199086146532744226003131241437978421789656829109282530973670059671298468499736264044848311158174987377313050113343543693558088314168004379390166065644886504627615176208562452697000383004917502616784245936905114377244477661177990752521012997176275517050593960193734685927504373356287780018623660259192592295980679321814371083038267610132149327201554650516214312662585756697390996721704739597654248469382910523145591393762099340392061918233678727079530100063887552664716396735514105919147397307243944905310494852587863407757100486743525642264491811145005378564076839105721184405652269158913352932223543568142175354610746078502572900419710105240152549756772895473073884832922537259027986774069527045912035161941523986933164544478422679424343203015763342470846137122717406494859407028301032371167115060931300033440259457085085934782760369626051737250443416107614845446471999882376480242639131641165687920812946580138391661348049254382840831962970998994698635483362123956052297476731691431985106876647190868465185238110711633000500535409303208496291214774266300889582395245271230596036230937924038819002457110479145382916121612875224317370043534687698859700980605304556041107341811337557255596684332669382929919550025481272970395320263323572798347804980643264724025489765993003247082772355246426508475623657057478858663204467255437356600278111975572537809377585546920413242807718039116202585225389196388042082973863863725580694200025267529785668117340926639094341470188874796209531299530359664114911949902044860789573992002274033615662552901054696452760626949604166035942956136684130989506140544279956052707890795686927026754139611943912682753262663548157172239317115701299799154641671113833220101041279262262431259784192200769257776151570280506237382781144530813608127528503147686359327735997088785957725229410598974961838927832070918392163796924938754256950789603167458232193228568638218063318576278226498004813029638655379949034828144086925883114696760606988345993558824432967146597041230108885347212924992787270329813521674503810824150187061571900608154083301131524630749670338822572625067176804058366815828044979408103691287258875386673551241063046385117357536607112427234663377210917689788720771091863273796098957005005524752721136089439683217318758292005774325223917002627678180967404490922452727114597151353558940536272527801464893403255859209136530962582349520402690876741572520856725942193859554913122036250221370128713238993093180062667975021948355238869268799375333293368585341104677925358916896138794224024344401870098574851202134709289785520442799847541374059023807792548752805241307025342062567578871971288680194036962757665007432721067586963647902549016302620831518895496388629884490606257607279719446053769698967765363662157129554549589483820514663353642267584887716082611750639215939974196740891563961765161814516040396384113723127710151597866129819861598304118346663241045798588906831766481807211716775556796688612957313417595899772474923962798782835456891204800276801779179145286920464269902271186554211868195922277967921189985277048063352433034873329481751464415030213332304052593049306622019640322635373411767031970044156847724980208903573236299142402240545665914129491462096961439172581598180773620683880349312754899277384035885395259590385117749692607427292447334184336967052919210901936328006153587219234294736566775913701540850658480155198546060493309103978374134980090754328785605685019544318058141757948701474288095562367228139135838730403564402582188992412299062587576842667038025969687923134752823876753137364774846626432271415689121722713745647951857017517277849077427560613801401010340719954138390843627545633299828617725304188496362199346244352749127906991611218280630355347976738097055769157924195711127413609384288855837348552047318772768582594905318443150118840064732066238616558334853810518154871575326554524217023078731792420016050456124311282642136116245994015848791359630529174531638677196867209622410353317244614803169525519861294474464123361653517724760489872178652666874963230102863057147936568243600294034383410735595191568004141471280117692022557402810112943227586741910743481607774095598693392647233766019930149244943574563906235128486946740273960659272723764289168483853923002937297423510276824082782831684197358311817587428736224648882236616392456546372969443657663142467118845421347698928926900835950706003406773763553113699377133385906239440358643864093604867733512556464245817877672470222909771429757951018953540739738465980755256025356385992662450416498440891447620204469867537280184063757606579334880948696121756701519244534623951337796050247279898357998309633393715709277343232269659033531382957605477208214690932236898638248431751414982980860961761215802873066962339706315493154956734194947862196404526741294221691666679902787375718706630649557041800751380711641211026098047957133446670250173786507264914559925470196692832435176121087426074735386900172543938258384645729702954785445278873953209552409985346129989478544928829541713953949161957769152632001248886331082277934507941352505323880286665625011928158696365793106551569408664550562489534635740869724737628168885963278512427166490275759517033950152493928377451987719824243081969762951278517384232548624895556242047674704993776322112548152041807048111785290551106960834679249218348195331107878337146797132177983054170254802147162992280677219882305297964418527661533616363344538956856105327953143848918855385462860982236531607784897035097468682980772699787445214000963934647236549014319944114051350669745120714881422618066570836125364637961486509650904498200313027325274628919097893911867625475404394406964871468111723594963623018449714263299508153316308689251614831596118941861554648032416898766863873616869378609732425972951943633670223735911194270467518985593438673680998398625630878008609492558906953254480157908167466369901298470189720545867255583234831544705471605861596728457904717418724021592640835069967247850562316690023780233772297343782044299295958988350223659245163121836037551190465545133676719532007759050971803046975198900577259196339168563626631916406858561743237566587540211320398288909215614201309252549908306774092570603672225706256559025750035554498273977171663572704402513840012483683983029776924078877951784107973537483227134253198576271634932288724337398978470877196956570462762973774833024955959264732154448534576533967703538600000720692319466487834645615901958469552632689629165608121668069766215162304393068216683343941510319047632854434985077812804018745035681522727746693134581568054725750802826464238099724031408418867194664493620947039236051887805207956755346930234719522807375306853584998408189952795087039345278290979458300101722874894454150857217087687915030512892031069773019346348754347612255119742369883616788427620546480179719551373569376923121113664043560556791547235361965949569671808967378865974613541036530705806325793020556200344254157087474462955503856986793534539798068964847089785905273327084965261451451312788980121184072283339219321612805145455915955307829101408259221147870438731282890205035472640342529232155621032838661637509265587113251077579149458938586854510873518104459737907594720874226924143391761150138341454513726146982186161724852600396026279670099279470089983230278154411046498280414883343909344633406182578720591470821504439461530277799571099021664556349701700681887765318904463009421645543994743826394821542359037993999071067038897821655720728647184541483117740010969169484641705004471153096219985806072645421824190825885026031239827308211939181636391852818762440629471055404320935956206301088099894364412644745048916946946397963322153202016424720490219452961381343928224291616750543894594891809802053528476209754941269096816292736098875642000718573288677746075303655005963282116424084268900970873392618963735515530484485124210933537477485771486193586881679638597375932279123833276824353535534152506977284984229113088536503800791543123677740780362852185799004724512176952638234634191758428317175474289519514833913615921404601248508868760206823789094336223128713461537019497246263941149912446878089064188325006616955365186731054169983998004008948670095819679659509049546858404281153635774092103442068534571578622777005883977138635950660067163648456435387222780271209176677713451259474972184281774868100002875595171746109776930866554544721375684226401643853602599952185897728365465778358034147104213986807748284876498633483580667846820232079577874891488347301158071936494718935071945430517394283835281504565860857341279034786884828218189668373873448555584178947269803948078265886308893442657023810688360708317987117845107332867998029353806418074343183934280917338322690414928293525137138986239435862636684352172931683999104242762385638510868553238541416299461794435139501507220299884346143158696685383444945574023780559429112646520300472660664882847700044311224614400972618037468466098913960359648209873413159500422980768331485208230841273111354252412579850564467565164923454097331390810569642602595438427536091340192634256296347742866321917409266803247046926697138070060584383895587979791030071999284530171991686665552442885856512155403793614246072017437317572486079412229712235615578254544203584003087812574091012471899438737118516187946980118212009642202583038377653626843701115283386913432589509773686116092892665541745289524294982995683793661524249280187653001816634767959104183750008783031953703574030759879714409608934350233591249551792507417946532724191193327181140380397220920288995951961356133094989465208426354956958772989809220385566242828813456040008628983441622479727483623381962455483074024153640655219120827584241497691772561973615759903803618103764768221518491006303551899760299048216473269333714586211435585247513608471473502711319297076420619636120852833543324045745647228755334315941776427761693411616168290671636833113761029069658208146126358325987865248698087684154375608542436342709875143742664004276709652076631304032217579476538019746469839298897790916192608584513982577778884607092794843574689140379859422483037794233695636365648329872855129309199667083173722912628686124052643200794673810915643414094489845520617077829065142009725764707924283336351227060086734585082483963416197902359829199181133564066967523925335279907773884590970098939674394520232402320877185360832285658446211570558962270189250841586776611467138372026146845536218318603355882894384175812028327437687543976466359391683081681357700424821193164231911118760609756585260069778068506693682372267065408769399101938597741940917053477531119915136934546181400245799316890032796964329673808399990216945484136263278285412815069566104557791899677792401367944362822886576682513065970416669042336373391528956806982325763678656098099781336839645577149967167030434960969582343235129555206169587975422998723297068572651395757789926610934740260214002348490019304844651300680520012845487399406709001143079490342072756621286067598834718779827261886465421578242151684699632646253494581285109751978046088993012341359909808688977657157462570839582208023335091636604978176189164821483535987300480846345986928227718272575584181176270082731323950787439218139142847826002066733546969762854098662582016011685135063544000649572592804509536903477398839358700025081480036135437226934147768176693081856452042688291946768494790020884091756385488328893389711042324699109682212589597738270771565038345592865214022540681755776295293285859175964076751424391853228273613591686406567422156876803783396970488139080125381962244594800857372878267046875646956135953967689183956247940042232904642211263371941354537836791852709185099813333032931809793685248934358587680254351191967520442912325582261415071365622387865605207986446725094181366757707180958118319159959135753363388080696113826978053744931907405060980756857646503705944883425328042073233485442896742147893858890075464977907534129388919110234413607486811547387892958409413519082891960390122683067386365691583256241566950475480687220400868360390553871752357223358065337585571611596689531307112829768955438640903317742624253776760255821958155052093943541638953784648463095139087659498573313658099276219325464917164995701673935971992853426434183988364889546461832472139564385220826708654116329355199585356719040901836902780544792794699339055954612682170161963642021449120707170239955531786701014545871617410772581289360058638843528261887665911955842398130256923346901453304378117530919442825904252114825571099933971489415782118147554241167337978907647156057406669704955342867036104933000732982834237189870862664403879559792786283224215693785984872525870788416405478554406754788351004109226824043752094826602131746057072845310737021810843236868693638983748547075262986001089687282177662410853056318506112923912369438232483976743452272138837890695179732861325104932465575263075245971063385275357651079982967699631322562119558958383717019854674096491723321406520583967476036248880703632232073704655429028206349956792753123475657194019485995386570609568850823534660569459966196048215411527864992160523019488144571236941428814121207225904250794755525574473268253921514029296959897810645729312493608339855410045882699742871522856164294828644796032333072843563855036708221303882075797150564779682680622955091853335891101480266013157668454948734395395004388780227052993577377615685107855162045178529790035494283849842067293239796009921333245457883211714246892001857622394038228520387403345696526563384322819323655007663942144835318849359554944489925190201379703728334925603919517162007027077739705612543065525827276957502924607030938901876883858780898734037647429533128919134815002033942005663662744356060087459280599649860133930508752360805369561722459481937956683180366527861746050495391769517133546999522688207251592156477594346285589649464085790266236869898150644609971658954510786423848643184264242640652184374611893141634715302200775181104829749666062827337712181978100837096647276185888041050364496914392735755048697962521447851061723757945562253215965205643141291469944726699444239663828928028865381407217874840541757642933956836385166279400766629299383144439417837920743515096328885319691432642409953620626333413549273936041253436131274136951862009239455457902120055985076942593516277130428688414569496067464311960580236075670922078429804368500532700936548120196010749502346628088383333203581758070054282853502302881853615619901238979827215953349660129299194929718707592628524707057210237907832139285972769727054382959033240987492999743207431975519066795405666715321010209317327505214858084754185211943133071992894542273783719590238483914322430315521082330950744627516427877832527465558696502318848458719948903170345240802630354164763073986116097557886542081710904542170636256308462232571457655295293707411129836826760892477677122941010213575914716117191016038286778879150576842253053025693259575543449142769346507558245856494415203260049812233283549504238188538518787570836672275568449961888092209545047689549361609985284133698389741079428426197791176520748017393417082885653879424074328197872290430492490744269322313978334801172408755771699743915934866181151269906785962027244938015362396014936100993605095139943012236357947697977278389498255656985238157211985550326129950135805796606479507359332430695195661819740232746850649423684669142720342213135428866609994030026256642617503594998132154644564179088844044873991300761367627076172710820142624241381665989841276905930534747355483579033636928128019834163309081281086500816045415430600100065093140671243104637832451982512702961422727169205915147420760550381442643097637362714699980994137549591556482389392016012846147205809831355530870712048813649921292211716067542982534039589789545717878809075420096366781521355050331545539533038920568217311348697437686289157472412632497786100531151213026842039570611598267344873936181684920758653646940327288493915907382711478158704869586211684915693224247228445334363929528973711797748750955837770624447896016267968507580535667264894492335673688458988854055389400301622293683064731359640169218912967902249010839530012839179525840995981435755836337683561880290588050799387940416141543950339918860436879374690028461370317592124032141063443291798661965347943766172681484113732988707949382781290642938308471425185058024651660461807770191918601969021495077207098275014844970162215146954670796360992396192828984819019606353218942931346194598051689993014075981027973679424904559024664050458692809050339153397959584939273341150533305656782085881885460483078314074725885818597858352117947306278826377360411665895208782777702519954153609777990145490374981238381079096615985102199822999573581377552451382489282048966385071415060637719592682006053060777644348924263530628976928288672740480275389389403175499644883122942560765473325717779646462046294190515468569756065467049436927993660775974019919100872525223271689280000302259417873564735329620052451423659860072234219513214456554531725504390628156702810231534587940186087491190991115608906857797156320311374503295291314589946351856353730859905294476467952574530929684305655023758664775579467227608985869561546607761268572928088757490985994973601120581572518715798647988798299854830485320542847147145745973324573271804603538834102608322628744749263465905045727470440182046136689367150786755305614118792922085686597563624883832202498369897669857881179677250106337978456309845496734195198070828634855223263868261507755798327119200321891307340836604041963249693689164174314666681746549488176052442677769402994052525795995095293572440727281990404568142596178435879858412380900309150204696328688915007329548615386000876740511153961849858466209267683657372183263617248662968530967628061890703292809967192991225561761774000447591202580278787895780653752225365937478952498367631144373601659949065855852736438356684551997891183875228341049535557008026677806893119501955010817748926935425827764871494221836526883578048733894424477794144310829467655543556984596698807043416055490183314452394350430302446958536401757950685688903468678943758254478340445909749221136697332420721222966090118853262934927615220181020260246758268599736916485750794719289447488636019221203537145871652939314053673283781436284476987368386422351889463702716572822265914534137148052218211255718483217426161014139316190853940554078070842708171076013208807118833210195337279817405961467337420675631722019004682219571974656431203182217787405505132595008443341032230104990934510617196750757825360689902683447886915769120881610016757298187331234720371771213893905893821636033769657477105872722977822234238823898213393953559492749402688400601878804006763393610478613172531756797305596136085249727764875204097902226032173485170931905763676387513955367957378160689877112509565744025116543332539340853559880064014274995083822880027848023840684501182772946923644906221984297277734811442850677446484299219788784700896576854788117992789469715580012413526834550963738155753793073303743493050615195770852081353157144045278727261145733469723001066625983674523562138915304750508434819675580301744820134817173000210582132372515200261986131130145045281044713556344249303116115542061182314849632373571508165172347672952480093622279992141502819037067287444987369658881171569345617419437799044065302387342011166221720558366647352558732679821578055558113900985271811984399370979793746474712413264694808893936239959984754270165239556796423455188630400499900744775985327446521040533114258823219606343600920221712008765547288109752943060612689974221960340805663566536159254341156098833597020442679421277124764982209614521808057671238857463529653302492567679413889799013899212360963524482170460294252390700496653186793359040870166732050695367533910907327210273402277070983740130561187601482797566183086319069204982950733625444376002639096744232622502997761654736663163219626036318013199867555973904572605847145428677167728711375020738254643361684522120784907790196156309221092729444005345788250065525247922328725529659658385901197563782820492728110434847287227317692035053208891393443873729157745095447699741219765926398683000233985816778943445631150179188292346051424257797920589344870750624842252220295801149647274730233862572216698749359640331505732627004906298835121488104783864083724598686491287699961549390220437656397497892014719496368289928142967574118800029585382922979553002342944593458670548654398165127585211459779093421440231890814975104488414954552511514075990548807782264000510697677866339728362052238947768497967003564133307359808895578759452634016879289272207628452557236494279477793943012693288278543900983492150801996076910138794700316295111635038519599249298912957629171917873759446719834152186945215402381616411240537809242649324025223386096571649744585799101498026000449936908508807720171072535606794823304199179875010493992699284035322042315648563585638910499452147320675533945124967347356496199442295205437398850800860597230361015771864249624047510764048117975128365685890952451646391394874167346188867440725926548058885750978959106571830388525622593786672541717178598685917912982373279006578830122941556722813957038937764729391697232318736927816120965836054157026546057626807440186518144084600815059326444842212092108786568638408906038934725043125955005396502234668090878901907165179390952720347193465594483475308329829985106246115041532226223492895032929165340435695486274378299903942313542104199649378408635691843489461792601187149740077849846505973796210264246002285935692675416406724177401445528605861756027567245087378028341654532722051772466479147098407462981588307861376305222747299721787668405378366092941379994421950051947459082684481995352498984683202651314357197415793385036879912358560293195200876134418427704197411647909475326693869308475686493590268246820201417866329616359090744765852194707343132383775479837278724575739664227377766692883600520206963904738320650029332038517598520337513996961630166632407624035893648415600997733835720321464338692212286769495337097895020090531955971988940005162561908682245736637390326423312512920979312993672261490255974565552606747271794202554842056491022149859533812199606229721193513946981531740613386795966826219894253598683014953137604738127714383071230213596527043689951301944289457425812197305895722981630144814745910380185834837402306845230479073017777534708677341705375055766626493265818711801576947363726368335084352393426466559597102025829604809271520903316778967637613708184922165835675874958398798098318041284520789438331064105714617043780469195642764143277649731448424372423275059478338713520947841751245905975274964044851512017715375161282809861356624816838275691291640138420652898634766055258900744192752919588882481474404057475486669675938008136113660269128890674834254075557672211746997190880213050107381883451968294577780304812135788457601496092326736817291611106888836496645125827377119410829380725178211582260746957444444335414999507470209941219747540279118904500065514233640155218844755398213813843544482608351706556196964839103063476654597277389238531894284836289778143103917702715535569995705727461576529168592193826792651673415477429238038557372119375493126388706796675112588859160896243049274568890923736592034928996336630864928520065261684522456840731212452491809189838734566693568558642882507035676730822260291215849921577324073171757225537757350026503041274245870072026954182377091377832426062943548848112604778701311347028188370493636309255570552461929962157166990092127139761456581300966677099333801058326356027967927977898253374811237675893354966088729192602353637241403012736822385879120722727951201743333114499324431758180342444454947996903346072429476466681497820697815638929501676818790354855456596148750013422791166857630676703274248975250557403779419464868943368828207305970406139124050902154142041458388929831707401477406147099477478506884478981727920711712779465332109066246656325004428887981384683821441674844822292652591990156249221293127661242669587285812194952907782217299689919521165826348454453668994314930132396492444181508327729955171748842003160808644928802776636922600966380426128013732970556752693636263539591144380560117306300723170445670269192508363163324860137006295344801776108658336158655914665017177814978436512043808879421525231985399414967411759980457852542517812635373597211303695845913036364763425176526506655103618361850048457114970570920172225432316096747332151196865384854882252244450081126746429273601616584675850618257478435576121966099568240903278630119269007640305312679800144335926958276249540381712554833418414455492460159968175255610499037924514652310917473405947839981272113329113217639733965978697753149667731950614715558781775612786302988578471025403016540823139042370896766675636724074059724125314049189217155747801482439985190143176358693294437102679407836248806682247536390014219109495307968856083489792102670800878604140045106297562947952269779256859119607213680427422906762745481698208099921604080567394571182317977807922393697584565020701754651294613008935118149024209289549834538581899575821302902148306719409274662888635526590821762375850823154525833482339117597513799617721088154339195479017494881974212993448759456839350140150607376185905330885097769412127307535436085417138568543847209503363126570435334773678222719897645475024997507752677523342709738970948371262067754933578239020743928937770939430560915120057626335130601810938050432690865015909318429212209760020345220541853362389909228235579270165830748667591244485713272745240831546497639198003269222435815422130662172566654858797813047557453212291724030050481593257338095809485846459250553858102482200249952680945663915201794026104358407372008045070060453577755116373163798712878376932568537762426709883162352158750900397927106324117801983863162926296045252738072357416008390753054679219280101127009956029521270914747718095839493186599032194639569207975087844878627907782908313546470980435327481075514575141490308621799604671459007010899876646194906712565029964693781407223674718100673285485914012486602460244201224209639838247636640480828512160431072582671809767342009271951945870925296463711420776317969861884639836615302735007859614606472563699213194575636972057176228754198500258122962187538277910055959347231327343100856772212638386390596389890666334869670697705813008884717165670157245056668934085930423476422139090905449727435609720010199289166798927260584285053853327345807199920439603732602128570215457919978964999110426517188020992315677760791414069804517057064011904281770879423407827989098684973476863513183103402557235983199608980085167519622468208123514958244846257054201914729197884107737034553296861769173253565702536763927090901057064520045815745990899418939755341767812841540240478201685193566934149833482552833839525876962187076539021209437972646362172619921203209066159732961144157844324982561477823260589070170146227338147884916032326847891594833938038377050998815697281775463037841016940823936363807894764990616495478841017276463096529632911079260310786957215801926930604343181334677411245412996142457408548186688056371809976761631493405002526277009643486460998746413407451794841960161030337473591993687127277011323640258023049330068661480597822837576964397642804203524455552674268331732057900382875662939718752070218006773217113304111770450487674940530999396790781691781984000913542258027242406002113426188991803212220607642554420830772545229659300917366817293611686454035007445359822643541707600425281286034391778495497125157499791518038339646546750175243197839972182728431821576610869958580420549472600527978749479363983959001285947555158764195122680985908595503291260809551735897990975679141752743355933383458753516995441844151810704827405551739519879253030976174657289717172138345268746177683414805035146738707743388043441910803370697524650051620872866218151058966296866538367731479377993695759546378640171492004886223629206893650864588541059106436181859777426853548439940665339162392442685548806987963132392540403260151687080660759221520944085468858383784650383314181545412966062924814658938420053598744558409448020801546322866921845970502670094914994553075544703682855982197693684876217168517637336096964009322029603251311991328110407068951379496641671493636164158832434015217458255383714165755401831695314291381452885448410104186585573344863509132173640417635888845738138255151652673821076732303980319665175405404906696306637000787664506513783932909350103059142923143134332115977852060203634568813696364098977367273861712674744362276819673546459322668361046825141384569217892387920345013356623979502917864519199859081118039330322598846831094519034047165101956731851971906546114287941594271023800964166709253143160094195819985526465371443768795859368993793659320690482759035382478336609501476390455104167738335502075064634883027055541958851025264763391128926726792918160678896792372850691495360857150361028237185466988157345330466729084148239050213377731173425011641882708891334354340695018968477112034350975130134611798708847155923442931700203878282287461072701335879620941594424803579199687851893032642226044889625338900512693309898159284146439184331069213336634823439005415353676612036272439464595121393240827186442166427821453714963392629067541026032799305859786866923655505085469871684856119562469037009093242490924855418926453830874206919896636493842182375329104229251482709158195318486303490317843317119152416265992303615332825635662369890755294643222150736016268206875316689953764385670161041264750902414924971208437968958386302313544942180543824378467536837279491030784210309333259531778804631362869162848652673341719507869106554876246968032895696322691125295241793419321709521804524075438051699675183636665089627616350252327344289893165605887209331177344362561316698062710018664914302096140878471540023570508700224588683950987009888681794207744545928604166363451041163950183247194147583276639315212663820939245530225147005045573746476331079501723148833023394185629903966071473428996209208213686801657638013216015161106966601009127368363068015961083731829380878999436770114119526673072635887328856826618510888119292945001641959371332336942838301825061720975354303848757082214220617835784235809122789134605830149310023618529950915648961971000910468088214648801198294406792541131834677640285378213624550672217783167919765229808388378509326106369063889714603085323597742789353261072813551349317441665583495015776816511627352612178000434114765890711275569972632803195635554236652807745315948536638911656048343400191525749366691460670086171130072138790253161422329335554556844709508390973990287885808305267467125900160823001057258820627311515169671195202053896577225061735829348054494968983445077406710349435052610957705133077751772635661802314813666561639599864776700709573806062271643748379398852458408966196372871844714768337864166810001991065087400416503299990919888689578059387927638366972364622760059900266310078570306402785483901137750234475592927563944406165431881565852228519687008733026500751009191293212479522349982383736914999683907226939614130967399816469312357507129683979075748519233631729537764218246220249757479886345726557471319082437694133556118371854507159479553155782744875249210293155748947167669504456574786120162784288773019680105574393447050491481800075858990266740402310422323398779821419587445603372906137976620731117588824791783342745857107194300128303124264395961303205513809290338194798349165529983479926400285775238679100005979555502481020459479749219680159905841862225275036906544749513757653556461190103284713621917146132711192195198583706404589778663205475885583835281942748501613450654307455941344618024024852297781811675457643718038919737785173618609756889225468669103111294233125156108802140493312895592397121743057322567666487801443455301479219145708682299734060620906092835264889830569463836902710907292911748804037114025086244653819799148978349418917167331754620042016687074645881569712688466298328666081271838975132211996097246888716453185565854179162574404282288071420486584165945624820983053463890191299498090367883898082091875483468734877205452806706341181727302346055244654376773346393451359029610921686561503425737068240517427395720584887316808373121228491588870174318235628773856407012231356794770848394776225315059341937512334118572258783618963300234290181074713110059881221165057630538199550165574377707959833450214423077333949348058346411190553152855571547096204725053130611859614866444758067334770960149972572340411262329378757000885381600397933841388793654573081542208726967902869321431504792913290593039939446669691103354350738421680512152664358067133327660364611541069856111042178564577167470022851720989527361338869666424315734677355970908446868321607923676343142812488973265987041035389793418865554057210839951015591039776410346666654136315590587095883189064222873808064231377317983996268690586074879772594889271830557933860522144631312091921341846332329844204077718427940729505685214734064494989814918223891985052819130948502855460535825168868317591765146783238115771879495392921453486107671387771413101103789791347322261383708905322422679852735775635571849500307662406597725150929008790192291827207398531146945522345871670761874573803429822288834590733943210421746343058620809285269175984056702577772587106296033792476146363333112951938179875807569414484664521370181438166140764891155155206748987592301832605149829973835359727046399708441167553334204458014067945166967699468296214171684156261698156081011807616724595903322728237517993415041427841481851150933254426215275352017535853722469591352051427796095370801358011352900728350234990430479229257293370826786213716772242900827153942774825698957608116114120030899103770299263654162811705014371906232857121756122737741172165291970207172611248799565759189968095899562622747415579319835025236194866002206318484740238107207730089051178821205461989923390186189564699743692980036039005575724191453999490855744443446223330927321923623921674335107459673580014437259193091940672246596019452672552528175454525826339222120492878220756240940281200058959840147601989011954277577842988720340666677921008638162032122656046644117422520771428645072165571718328020721313535263944885176938314744884091770484223127969370708213663924290890519978328309449781106273280503072025611324316290285487744138201330251872983583093642996792961637126281973038208950497509213638146272435991893409078150002583526778730754220182440479828615773855395793306504531636335094404892743119137215605196882499059235695964550058159053233801597876428927169121966572888613154510039289348543694072418626782373379748712952114059367543310102452369563459449778487984207610829184466897137412298717551368660761667657689612494761570668000421769067898535233701695903221494776900963416776090864811875297698275082670725655642130773003527159397378342742029027081202137974354799249120149995689812815888593859068469969081441504801828537874478126466575428651290246888991321356177131523032031892900338680340895310777992244299611433582970718508804014634727329626446089873666626830799941721703652937594566731620989971575132821694533683039349016390502364365940115934938923531160634009036338199453174301939370759781546480309248685653982008872317564414634497155956990736075712773792748272116270452895937850867489245962982686723752531163276557523588391535100105199492166238715531402086430797840915681182945189146968582826859670570517843878010175120046896599529417498479275237861602658301968239539673404868713054028993101340711426425998694630130779253302727609440230881770858926234895160864560854931745167567432037200125831268973604991142021949297156620972310120264498517128281688398555467735955495408250277203099612852565219671808162940352736195374527936914207380136817638778844088404867945703016606875152465006762440074404996449314533905255061912624135352599449918929601436841588855325166907710371798425950314328277863743750970121184622099320628136352640762254995401721385122022023941135555432931881382346367334710132590605936671797416940306471017704243121483407557176492752551955091605585054012756900473732368942174005491963459072279572688851070525052938772385013097195185222089579444738301233168889030779744615046975142029051014802670097562044374671602514002551412165738504402958445248022717115768956550287771830973307112469453621611219533647713955072419523567347560436521188688998254474889176836448721608358991535183605751627611225729757540376870388288396827255915153673921173259690559957547270967389723220291293239251765477666745396073693752581575006274930046462566606142840439876634281872155812854460715895920193307138796255321184893527012923088973763530209859711219150018060301538390611018509933747016518758107745985878492967973959519993402080307850053302149797345571193152287289880375408019028857838138711814648016848167392909750282387003453886782931181837202158279411366486968775097296538729829383492540948869713200609302068055963572344688529607389303619460560105332049014145081667302087570991001842684980506390256370810726005023864930382308160292615206463104214257778813208402499046883682489088957013473328932391925438523062045884708858929777248214013894812150583482074063782799525810186986092985204302683976014613021258825310369123736902837747460737092276666899993171959678681079891424888905441099004456625292801753262996295724218415316285118579821571295343653918875987757980405245147224703247838983578788908001496436662149366931673003319128270987207503686859542917175641046867296201890410223411055057251255718824114280521663873737941867421933801539079274502876578485969047659847420032708414391677540189892380393569228814340177887129932291915473910429048855174805768443029801780421265279246181468944473530673350212673752225103478105813897126891852334639152455717003304256648125813611513279497205804785740989615285472164534245515256433806956330399385024279916882040437874223985157830217691707780934183375769048003715939419086595789437925313407691839600167600961493281689433581547163855685948300837162374795959568833770361859752301474908431042057912358296490883006885675751665183914489176172781449044577550635725982762815239982002196368369887418604303174137494899977253831673994014063830757775854875195937674301239981796999603873303798553725011614026011845822528326259400981086421833285797010957076897157406320843245629757071637324947337740787684929754337006391344157042196753014153571653078783774088592049331598027202950540459031085929812925732502080495992365555810801675136291728758123432904030302488059846806306948736794882278420048721131380828937878808174406987817128447698933898206137009325004544058816197796887817998607787256762435717564974411630874940518058997588384790104183628268242260213899649608211384574619639118606035542181703393478645408620609281762721318035549451164988770846727443618889989464365006105196477855259689496361169006463187643282329560581587240188037392393215835276527457271465700334759064585273576123178429786857540691006814631983330126891260492623556405266237700338674289755175155364428910924126352792361693150495963688304796100863652818741648423415533905242668047349469009964556489656186019888035369114570410506980204064789902864045686597893859190117941073478131963288880825951034310725928111646118407847505781553685968728796919275491448453423143222947640628994469043214175358915142125268255697944868914307513397063768043299980386737162184660004521159119391482167963551908580769704310904902222918715382177193083272661723606368490855252824651246606085059466672821494923490436858361418484724158178397086372181872777630733184223196333600134614840464759410801302022979430067337391904226712095477409948219061967069469767708293869338955814064498991720539646063296570283548544667235086321826732659042973151519481962198165154776886942380447614751397999058954879496736960765556309951793281173867352490192242833100582172593480019030647276123459162511458379614061478754903730545500506484571173961707053251808041332403666748009392576724693653696581752590657961330557876169522320446643531399555337877896779396583892698045174853851949822100466607970326750944018870387330925539573302337443658007956775908280447571108740962479201513348520574649884510406318895879364902748930043375202940618873619614054203244419846325865509574761831290635377688318835988221215921206614284138448164832771789151506312920950617889525006879715846651104106502727276134369179758666372397680354206795115755982651022184705066691954028291389367362143732477859974857172094106525884452587747046162622244606741550419317729283349400419479344147054468899156046337268688320534944326916767278020281916711628184817116653410934845782883886525878901719258834356717766871746889253311566592368739458733455983273728146513196531398814090905463525436896865830852002762853199191546511368473884294734473680566674270097029169213058989837680376295399097426695817176111864105706814679176077230040393727158136582167244472798742759272384706898785495301913107815405936096691078100412405915841071598297675637001422537602538714800769211616122516723573976312430238991464376453870728387443424498458600214662099209470504147800480190775726334623738899286825741951952604689492261727782786319219900433670788403196454906850474237241489168810897164646449798082194700802568215243378546242998017406780218502103391374285245899152968147110046197555200603936169858425111547922423213625324218121690156806546378525939311916769196339491340491901503564058485818164230090185990981578971846340068560751907729443590246584598319605113791802832214868931102900326274804518058950653414557641879895321329635628117020794756871019138097062141676909336537568872227590037884365324733835068867108077960977689241323338218967632379443683929245609910869634610426767625312696004136471156265319707594875433600442787976118432362583627154261864678144997026343093840092085126696287883645064811004698527347174433773959198953441623045621442558571659416818948579856095658256338925802014381064673169844838996483034265465290072245065942217033551223380359575949103771217337900351771003349954154050777415954404351431901193866974547365920528592715134340157525002126855446209284500989039334740874945975981268745854266098994456629631394257532853082502938583363509922196207082810486667196639883333501544850098734660429450649573383900382078519671942959440711591007300056190486862423205582087104309408823252929125992919498801462538018481052859235994708664450950297013757038680795079860055256731433673246678112618296216102736176655389313812275586544795955182795527885475859907314785941099675528847209685965545236556674676865019533354689420233834497257787137488824728411963412946713329884537610351369253575464600952036579842509814265824168850954876890338771079597104325143931165677477388272439573088474869603155973674606630348125129741118427052799002587479892239205013448087169404759366432132560218352189525549784150276665424844616004439973859142082826342390321174712794622814758473469983526375094248327014044618843062093917509369407467186006144355839941457841112698566322946284732814771850970086416073436241367771562675165835555941842282311691380626655516879659895846177277090630008787960007315391621586244184784214537585849832988153494312969707462373603377012341203857136522663562670783197362080158289206673162270552314445929349594054833235336985429348302258347822966099194263747583354285212913813054233339171999030569342062407566612333781439259424363911277407482778896385181836892843042768255411680758776074853039526171660274778336824628667868588764566521979942617600092255452962712958130844905678072637315272448594919899653205074037399090937324234588459104658466243932449738147853722620997758726077996413816685050903282180669331523025507582697877224932626790496705208892246025438957687082911932543921027666575517553835100120517634468847083369808129229565770862953998204795232585517356233382863639918890103507875071324027932492588891164752946950603783764203158599397796988868322158225092600521247546118589024288015675451974434431248039704423606666694999583152175081540936218924206190559033380736854439679030213390136365115865988608451408406966342602719607969430770726985231124659455860703327873675052199966987688308055328378269166327825365769736294850404267166330183791553334836639264015351747159866409714746606529005553368864826673976151050550843379876814781230365239743124356309887163687931587677289041843554650917542602293455773108275582877014242072302731942096937789421238095088316360646241227957593086480392881170583711647686060295506775897210597039655226380403222500141992363038715927376305737625706315982363298618347224649582801210461604903394515575901676624891039025900733425993715182474257634642109682913457545497447386667093046307531026258878359793139751866572744899012356086009635308358560765011601707316357983213973761440783671297620907173335879170169214143565512226437474906009313460793001868891263761456520102771017521462395027326928758396425816588079688535485488864247919788605911934276407606412165289451101754303200674737568129900790309897956352740624268580905387871433899320694894775013726639318484734307196076315790398224413155683866781253391864331735942315678279337043687766458162649304446251617202722542923769752408522347607899995587794433000893950816073193140826280033159135633849402405301039990657636122571434776200560432053070606144569044167036149736734728409196651858721114076739873375393035733098416611461995995034412809836295140393662900936633327454027842977138371033758792607003767636071020399761685423608004401139326105872574141432776252286341514528342770806581991038158800926283117077943361524644523333051621782183772311920258012885010279745149949048230462192159061899821809210626255709430972143347765287198142415501516410366288883896260649274528379517450115407930846478622617467983738200541129503967624123913156266203985586728367074349273138463552880416217289605612677436548445659187775297566126460796036913104686598857247128241283290039011932799795595596063814212777235822600668369672840136967968796571729587159252264453046664644001963031781325618016393451566566961209690764470060128422800087357023258272700131737675732967213012210085666644140101581869290122266408276319094471426628530467856950047698589218365198579100542406170782589606850216932939381028779994292581812721803221837424826793321001126407549784524050672036129888241765624874767593710713506868522364073166476318143144349492663397950444770390360541272227318809897947599818237425159036000756394105214432275458167128906553944130234331876517202943542947066752363047162005652784927335943411496921999889200120978067030449229488791621920516021172023936317835600654998469140536413625338590666875536919779954651274483786243603858700800714700331593185614920681508078396049496035486364646641983669260104423267779245057088566405606967216888010100056153750444150360714422473303063791334181843813326289293485168389913918302603152157523500498944000129949294936505107108271634724365474937697662182915588156708798757721589515561689817287240438955184621885569636190802095181069048507477194457490944795473142801964927411380821187924516059305099869803762884663519243851724619563818424294756536150992200702782001054179534146174910572648217514132453005979466217554691210231180056389880037736741992214692012110440850753880349322664540542038952230130772748023204773888447014220752183272523804085748637054272223100552792603961503892443819735129039200779437221310728705620107101964811159128855229286759052609398875376852410705258567219094272491472600977349685569293076644044959853666939624595296803365016204078615538872568875786917582263547581408356808178184257146274474507789497813540259639737679576333829307135890271830538486417609507974530824259136437672172211174216970589360025914670635124186051505480434740665274839123613566465629987112075568396622915965251826787700419020878528798683477955159580882639446000113992307027616256602948853514070433346067638551681372466432838224927911050728247355250334096585343510295700818213259124769476626894379577338887422668834015538674687513128450804886718203054202581762679077559128310321668817824450025336604407227768686918808833101512409780403820071180519729827259482787189568489542662253844405943002015615557752702178907638105151937476167556209762474170258966787760868693573151473078123498674691487161359137281849277179641480048608800938581411991319879212667447866431433398639573146547746335185891340360474223775635255981932932146325155909335440133277673799754795991364663848254860231899010888901816437180591899685381960826957365311879396909042585395469395318873201020165498894674584514207756501954742087154553513383457452639048758701793881538510314606845792559845962574168584396449714615862183268687967327348225135851137640825874457669841258295349570832371888840797613259770236649653107580558231815688276424439013822808335925024652405378704016721285022793110804040487899166659251058801101063561212978158106100462358621373115965905729136452209037357939827876412578105221946630167676641624735804008227999609583255365556499777553912813342019628969540698048133945339078138359176446053911325351265443784098005622743988724726995324568486216201833235645758052702595535065774771959160819965929571491288516787940221093886569567081780696188920796962945878494144605602870614214802831326728307255610264140923384086754870620203416787550140626220179635262400193873725875985728471291989724063718900677215023686575125059834529079837690438346891570991712400985364489899277462071551257845488805534340730578849224159986913754269161527080635030791900655331351436089694229911844269262084602040197771099668070304763699535422704635442378448382377410858057430985957525496274386045925744610495922469130448608317778053813637960859826633835193759973464270907591967335225822371048940112585001524240390472437932476518381293607777914912827612871749546328442467474937904205156695391496397459039572222502641043386747077070654288279918570426039786628117504319708918142628961970462381690229122832615034104637214169923723091370469809751535897033039011520146984487206185365869203051217085912886878286129248192616721968753811549514429243830201228994657169358290799855171356841096747091374265565254146475942552115404249649207683017295803840930371614720862451715008983374822675003736873975201541532133811360047419166790220054657371714015491311794049026511037974855066236743447070988239922394580763552711742555608105873009212851974424071749166704290364086900701855554486292165782487720183640882172537249592548110406198177918862272030080664035576551957902985544854301445007264741595208723583579915253465507772443377670126499083644663533653887043876122440372548374469502223943610353959868362987948430812063428991141680840115821336124696933242099409541095558015605857133716438253705591150727142550267417866756980704692352391140625752550973764161868622425658231312311084930728581115130387625858167447926754266994807986550568012401141984189453614132387562183923722593497642741696310314523507854345340736020563989753863301905650597618446583637425981412442656703875578337964695997555938613721788550079540412458265752923108111989670272205713014246246882740282008002837195817261846363743600907791095889712100806298787037402695443742306000652893122891376071688832870099215474922147574022716812128987301703406504506870182156004326437765034943065542329641796542860096953781636403906937979548885887152454149481391437793610602138986774033378408504893525139792440170990764029517763475530050337514824158809719091609399562118377863480034775799302492413060858799727151722712169784367495458231443073012704337689478387977580859353837570842245787827042155654988191384281837280850511586013291873804126478290998798051873342808320577050176115468089114465402924995399473478871224907415280565743206440584289118627741065505068298261594449823938717186563949653132023833681442511146906935825937141653707043582914796288756927494208227951224299382350648153871273732681567932573194746029675240091525624701809635500119318698843460758062783125170565603240471720095079873622233488229298621026700938883757572059924354030109695205973936852069397455272503667905377373463206927726872550927785923984099385150022839518135534602647283438770901888249007900242073560405999613311891107212938851067947034002885165131230202572202945047277326577560544479658321148812559657461742038763907344120950288231360764990862509634728405989707409085796880407792328732348263037848172209738427887028868010377196822766480673776393529722599859219136069522653604101260427757726732770837495633497502440447186460219151173948943832617935190713852781367177822933626412730266999974709673418052821303708755255262619040793550324413566044606249532825589764041128371506845697313101389196645815733613267251940786604227673943824777085021474951637110256549172119633677660912628365711056854022547154467354325082146311478635105148370360664681222006349408212750762424057639685457682710828379058110075427370740859404351355258645770424141130887754807541825003439708360049687810367376834703512821517780757359846938139321907236452280294027045780806085035113193673370743956652110821507528343311458711383502675258551921356826195993887249369236344314969203027595582810572946596669127107114286577366315522117705418043758140490946389931846488356599191334757334355032128638755355687944455919182933230009839911242227183394271269926042034454411355400759894594370389973283733713069610217458891619933811589564143397008502508808138779079543317888129895530935052020790858345117549206076087774920257150704749280576627448127418903859107727757392244016074096627127883926628001719550832223691256567835641361451397352811440823774475761843996500950215116171358838384313034129324369207020980203968550180933659140692675317635579503862966751075441913397607136957902664827301324474670873517642900246599905461594730141189702972386214082014229334905047416417450259275055605300329986490848391830010743888013999391350244271636699984785292108012738668426403434244284010231872500282375520201565884116915425890598905950917666752920110631793310183133231323016776198355456233728886380854204842246238317278329547715521712238363165389802666133130026283417294673862364808717782539641144308515115792923617552844466872096337575141639709333752287078053163259773224380167418182361049793488957864246287517853447425070854513032151905164649158179099818258647411937828934309332012234189749517388071212193700827156481518036952053166120790144485214690543548571871133547736862301504639616306905059023981753565029517025402556264367765423839203551439619146200362703131709125653271679365334388742666432437517342811465859235694843128165107053092823952571895038168586804415226863966509328332473818771070177930041132277463569005889560394935072300410018133095451576267500289562915419366847486596331243688616997935623254845095363328093202764648167359466218727375018999283189887456832440202824022479774919102706885384554475397760399372769833685322813437247817578262994673392964725130702815299964815986440254598977175341837356708890015640179062092599589364395551797612943095960580859581655510673652132122309445298013962358749127632071603854032428405989585261416992041190135976828424999454246381609543546416631052776092287347642284837967152651238888703940810033805935989360425406487750812856434472068650233000237988932109702003054142725012193756663967360796571924307142943186610385322907868647086561442054985830288036502073777044565836107216362826025291718907231081981592267718143857080532344323510013687953536512058097793282716818409018101799242935002886865668444989053772626304797229026536747692382775065300333921514588857959435388146063370123964662625751786658901854449594556489282752005541540593214217550766786738639546728245723653167065431897103396325436358268742113924109093557521534249659280277161632130328726122275251020688443799471420483620444403429269124209023852108444882432859123373695599769732242524864506439699114820706696899632365227145254683208708177628523697252713184002555911331655503571970060580602018129103012372194414132797899412468153741349202401493414336204959118825359331020154202379721184852940046271616257755558242048081899647193834393228681255042772168700843459296537903894730890447690277081021411414648460345808430795136430398809444122015535826530062020482355126517615423996401088746691457011727838310624297900839089466782904882123570239526919662250787380371271622829414373559698805213731734357948177326582372014504264790103456200591459189622415861161979517339910408526273520511839616535122822154120003803208714211905210548899315635707751077140651500435384462920533123786114689128089417556676388958391427030997579021979207181259004521343694178396726768108293974222722862776895732260020537123148408742502147905721155533926530869993465224658399677808746528359461941141850104021847991543288968931220329966495058301282123163541427466486740739539713058304133472868681875033507743751669835004642071283218076732949805561421693039188749067809729893807088027088083628563711688848634108301755616221863242205126902394534808739512129826476455751652049973642763234544506516505342961291426696653884185904941874345516454967274563365216075773239368837940790527470606859765392286690931648482440599368883420357340847583863120129657323948428778521070113510549465009350928399085589211029607984262903308287052204390930969928047667421821140080359586461359979528379868831135364156464625308063290201778610203615336369619789448875747293620734781555226032855618771717525532989637522352421810608629846896910785460529802072614236187439074132353068982214397973904801046536287618655176637588296510562936450268536118761667236895874105181027597319456498447799690083951225836813301649899373685223397081879093409701968195998529645513110807855028241103238370755396657642822424357800994981044111521721471258394183307452448565568559608973931201887209573679748624593684429958167204359614678499606071706695496803824392063587680118282808513387650414689002442799107099910718743085573501906830601995668785886672547711411774903325371715315475384057150845873738395289711391607473160201029868927625888360638325411004594526255629473512068555567263024734193176824726924900612097451488500381440642416689707125214952266343638645701817780951536703242320345903724311548083786395671077322380547269134639914825929302780284579241430642748715201781785557772684709420503594647711481203537356120514418015814504671806626392709138267118057558396536115077042829809703299235436816385715139024921916263457157675674453743056960787234036453610732330859160442406384413102200006220904911097353467876040657401442502445755673706298003489850934074800930789894697510210688431098068871912438354384455786435408041785475328048473656655817673766406240433616474755202171663226791775770131312311712934793787121449173411095016476104759155990982361672314339281801556960472506744517080515403968258009877888160126888270266136278730963152285664727173623529730730100226046867596158932820029519377082465077455114519070086892450574418624732330038694329707499801671401948232518635738693193291803775014372940839606962849649138699641613380518825924046521733087393603264322181747013610189896008417666539978509149728682328281313545995559271624677359229774685827326915334218460511490638515001047282622910795916226867750980709406218500417771551365065329788108791605122432560392383723297378775476987144308719307151688497639184066687283442994131278688662506201307407446799385174102647563432765880671157763847460979597353739938348522168158098067558159944560650694677838199223842445938616942725754039360182538934643637882292743217516623789972003875226031151592829880283831695532130355901416212471192404179591410967685805630479973280564607260544325700395947549987689101302367169420993446576382095975724307450566196475392162856048175511521464047459483038663199783512883081205370263591461022383782491238891964549304159584582937969718585831437951436559165856025323059742354551656705318761919454931679209495414818155832912748802934025178307402121248829787226208434637277779527641172492650698586289768255225926973461221302825300172921735020193136525851703701060461619494466014425210323649403437901204383776598674226894986336368001264258714971103980458536469947813170443756723178919026635780689695317754851836351410428951382226420638531581605694489922346228031856916111872356685489546125980511716443638577158291632822039510549673811734021898284570646870573421178131815236875179747533861826060318391745252845120452450812508871120502799990499755390988147326470213779193298653661679096409694257046756285891312810246153705007529373935029567529147063322975475862462166462606947351388246731604381993239930086729291326237017174614587379063809058001974583876925324409818826051330638079704821381274589861526359606876022864252251353462291855992928844237485843795744281815785080087477423160150734278994427521812351157679765797842422304627207102188396799560042289467608206500486560493556498220855682362947194997541639200020336597362246644036556409986454958117378116076142218463524353411509588991103154026674093284974626355783272830209027121048389698775450865415111193425520398192057008542449151343769277460705042582712488753005686222176031808644995850082611729532630553418711430336628735568324961085995561417988786448459784577810196514799723469520766970595410723875777114104134284993377409597138111559348116058952546381040417747504768583841579266435143295932389354557637554850569419187153048244307559890135369047620464958089325429141457868746472407063233654453533758316763399287106464780730322120542444239264675803632964067253272535449794107139589159693217814456207854365841612493014563975596616308076488546170853025828790985746771888258660507467628102718779182845752345039550330380704646351533641571356374621105073668183683372864837808993173936818980258467627236898672331935296733057276321433707280645050989739320133347711367939913277156803005859221607385749995161136261318940995440329709109856675213133463876643694630255018728726693424214051459135017905750039472749393603131085393880541609459039983059582623669390372752877306813156699459878572788412302484679205736030525389324670642595440338391297454151868428997334349199707312032308282034159528004514925350100816429005838749430233989023105868729796716779145421756183148513880450356029069680957696095927078459197405805702442580508989710331433038001940154319808666390207619633206568254142826624687003727666264324161750835625981901613265194708666985722966201489013476820573909524574138498295953941310302478630027220937299475804360435736735767790421527720531420863153417972837072523133856212386425028627295226473013027521722487120620994440907979978173442851968484839967075520625101146715329135398464635182924802287084225095647598044727020741616221377909306220380042752763472742124761318135134479370643002529983909992321274395897503940175622652512547855108073259812286106870259865091236094722998917466130527878605344620881034301649882857989823733880090993667299280287421068920566268489865054438197305753950086268027590984991709315429603523137255571683693437975809735023274170224654731846115381567563743652925220885501159707336992395444207553219437603949639838567514167627130264965374426400411831792045432702088645478278707419401044334660477768540559140563804346566141471464618634156135073252979195645494048163111356020087033222790427444333603181383326437303078096762659120534247332424273653835333678327513749515103785221815686556039147481853146465771066573786893636303362020119768994930316237675110386670272250360738998978166787472747260616634193170260462450637289318043383026235993548583575619083165220611371767829762564025605102313029972716563665106095691680128253240605598748339378326422656561062628196178293401411797787532506024318021801841864108336857675319551445366287179956937113301477015578645023027311085742650756080334015810345857728801940244872373479608446333455719939343928682306107228095300362065708646417211575380153649320259184370762037708348554284647029140337005425485149244204197342764466061627123744233513521443540955695079557600467026945669261250262708413081952210836748880146208163120160793435126311542009112441272394288183171951892995895783161438139910476723148547341415940324323687263598608371476671853840150180243883291023828633247198278414805210121940052727745763473543275456517558567464691199176195711401963536953334621414899024404347691026510938282138056352171709566383912101725778158445527759807499170761480536989498989222951707312353961141801970644759112974089924832546257674196625468811488508724139361371311942245465728666055486911832800488729446954806309354188558141390280060893248788432266427317856238012181181101876612657974526463939062167673408487703768419194395836032221700051541383516872759908143403628891095059104538227562321819109775629531843044701035793560297735760240875859091346241656498155908600494850487396824329305383409904926361894757106735068213031320497977472850520402183992350552013181433164682488649681459645681385835825840379567491634492356644119735337838325881612832890819365834875576332824682410126731126156512847219280189421151854252201739744590220044185726123723031227859600615556155005930808937652462254808052272800832647751322836513774797781526915284671994084599590151289890842191317899803453588739547372460276072450625728246197960505297745112673763724027107882609262061387292768984361926915212641644987507614138644371126382403941460476193402060291267114696717637025241128053972292940818661543841336198134634391331557573841669931000359871450081296192427726060321165409050402457196343676666317324205456423645624389511020496353023781195330002384420874395962859523971852770926210839873555311070476793658156608478780685729238906053212602948216644552966220273010174556091420380664400210028998267632964862279312354504018325307237905205155068318341812317709874595973316472907551956376451004296700485198648302651528908559170373213642185354633550588982073084724385068814837010110377110099153445342975904672280935215102445052989475984951959731714012700749488355174315087346253324576524919317792598070754392477651531990202478168613478328031821358402930979158773599000090390503172583346053752855929693782879210481885285317497341870281796086363805863197646963076034907946364904923086488472199369748017142502904453680442771100024333655759848302206446029264881793187215017543681431129863074218409040557280632185950287924592836308448263705114977315181742600285910729142408726294967380107992497133736990841144808483573163969280127332191855249382048151118673286279404127802589383030467297963404910708588626840643860151627822465922385874163537860187764171824000365605143933146269056165050343094987079931612702178665990334503519594886854154971621690907371975829269881168002508897146047753392620620938040088674726926379051541630681084716393070139763165790811098520647611999156801849610295395258839535034235869809499073858216760058937167655433972881394543339849309108286713024830937666848221312203767130430928098988405381714475982890159650260568856561250255157337720876737714993221673231580525609139351093477719378437040097088374462730778856126504924422056571308746067863682253846067009262377258011002074126763104897631974446743597535857216154233720670788151558669044611291710311600870492535228621176752852319872368619609496261960397382460190583552238001227598042895683315160076338448665139746981729410222325162396877553442933960619723550127489636519365360002975385253258518664294578313340539991036819001004850893220704309366421366790723892416721372827584700204171889227207494963807946556646285930663039117286735220936887748011534567351702762686110986267809675413466095924073384591305020044198475405370312419786266132408614196916858558601627543148231823200174998370086261524371526985502175530973781254434233437526572456165835005468871269525939016096034665355888009783033656077763746351563596046864335611970717274908967511959898442177593230512525146787962372737486507931422771298116827021280773110313854167651685300941007757711271532406165007422700232268130532880206751615062506687604270576208532205589175772455068644994285397670795326133638262760809591451167770688571307964158481523083441459221656771676741338091989280061628710935865786817433973124763597887789143450869028137556013529840905870183007964312832688499398289711876394911888373138143326257250410934371961995547352943867676299675003431229274495370518904529912652278636686426061239677042435957480043646927780994766505898669743091988166973907692602200644321704603060123627810046744745021772171437138942738716618745848457270638470657182065261534531740016388500001860579797147560985087576014614723564563171480573213294425054212271623280891041641121793134743409613191215139089470893830017897562589749422245425925527212816417254774911145445288576016945780560886327397493305132964322869025435647961485776729537085615370874322832193094572262902713396478485380621266635300301255595005093563108363744076672876849010942765807529105659322015200054791779723112046975470027178686885030515499352150444923464499066116537612280146568335374652019139440416834785545539113509880007524654043438576842488235200672814169061177061483233634301623968377424280981639964385999788936688449373378855823604969993268562244866086675978006077303231301270804186421215452766842044926259991878987164508546850321863289410945264624121871453794167669808115854851314972181771939033255463188511039701633396849205467175801307102814431824154637202074033830248890742836316171289158805031192447468573345509752462717176539552464113245694939694094928244442676670870791220609725282522053051537552384602691324985304661221148685311331955627417813745334786188833552033830980339689593260001957289990664180523008862697276068979938551228728135814786417601906153343461675002490128617452643262416494296567328054329891535096341647981844226431145917049917167439426147409464407437920851514753837633097766004549314190228218487606280067819633229715708544889461117495553271793856972297828696803651149838526438839378505934208483633694189626897749270585070251188923452801320902269656366633931062585380177472052707280475815254842360943779438260771858181736136297864187543242733738481528012030337526327663812827379298546547416395759869990610310537799827401339145996883587078527256009715911924708204341241578115691065998891258411623003713950684322435134832380043955825646481200211409184685899029544817471258867386972071104545173676963269510410502247867581205602924779401338271070293043261762773999889488443512168672920327595716168708276480268246986817491018515713996500810594946273891584144015495251388508215382008236329109696285422810319079932524915317321622051911331633677600672862502623299165648587773250354863236314346212603638314043815191742970397639044127735379618612046954206440248590305067681374130914528510500480421210093681024868651892303964887678037754964072483255142875432091879742694029472862467054499262134980807441969875500023446792673046355293257908812566502324329166360686433900905293369352954289709797669419580556882874840536156115909648268262782647800140349021404582612546457718911846510479705522831291331352526707696246169507299151588052030701171799969968744176755140944875377817346879826816580502457400995978276245541861837323892841015192855519866450385752242545590500334301255836643353341169479111389592793166343426004093857161645039813878077359886387776037165393846899095333467505730754978582790920401560798993388801581100764495312897858891982142866026325277524464398630454866389712079673168166577029980668429491451599120806463033458743420134822918746812798623603423753890460133194081341967204967745360464183009446023589818669783614657194146085491437663471482506411916366346092741531680706254281979862435979162675206348451156505685461400968860744097424186440139715709925891074048181122199557506403593205323593908562221313189203369992977016739291108970603190523091167652782602214783442049254491025405238644669164322078244051486613434372618447873066535302092388504815585193159764849879660921782614353559549736707067095686697226835624842741189839329125323698211324798752331297622440286887757237873637795334267601614206155545744009448642420805475522100035711717777942079679349457005153516948196582684741740140651239389786709328021266999578054444739997191974664096684556931344047347470625867435242137341264806901001529665747143179975496786457191921598170568760212153356413277844009031849867598937947212013414649724312490322793511395824497248739680935277367326441415932498622845628653263432360159200408521064137839028059957282889160567913009030229586589671562086541610562129370171231098964312728400201077458749791944186040985263431653855068177080263571423577323261588514845325513579294404646913281233359260837892156892307641558754008002870606556619940790582408016124190268355425844760084548637251606457071425378944053664396690693558803516629581902456928673297017066624804624791518651906640634626583207019194554268085815998288366000058962124338146125269131238869439537622514304466472528496426135962690880719381693401331970929977651578931945767821695863570968941233317941521938974834300912238908004858985064656557819229757469707990630269640833916836954927914382195535915504187748812201298509679733603493187500811907291504638300786722001049855846226408101412475471140253653804522501653546022333167034095598169558916533039056031619104724014813589845286248786030024962701909792031253355479021513148257838220058274522645515514039786862894508659746577552566204679126414907891584328457588540393514055949825516895051999686157742796010700107225237897650792449942033719585220977902902157720182357832543523495823539960027438461091583476839876140864937615675890169570175138220211952053395287119158898267292536092827077120981550669652761234455809336801720024939774109770446092552775190864588558608183538127948338827077542926722785673499864562424590998224423621916015070869232807162061183194308130899710513808185086664619025208441243800214163509066608599973903249249629612274960270618354283822159638188779949692664127076404953439799164090483255198265138232713910404616753709574433040563316931510314123137685410298056680339575180235787398679740142063605779143779231206813655053085144809646152879061832924857958064806204150464214770465055480558894227999750898751979238173315662642198893396606000591652438711613703450529692059006286913668812867002470948746999174161712560916840131979577539744118274941492524984889958764441191384381681148492847616664177968368476096740319966752395642234893050321738118108578495484823499694003589766221670560964729961827888832896276718648188333840836402901980784728382272623677896623707486242207528171459283040449100468884992262260220646006851014467410565250181195283263522473263543172930685255301691510072588907740841009016257721845816373757346720789639148391352699308400142745042057726976653824551324911925613849128039581423055385435086142840467470656683281510565855811104830739229813700352456455474164034236425606675447149979927278689358105031335587014344048660459800967591261163427524550136364833998505453385270940149976167240080821152203107592945079292941500957741987518238942027196331038891002599059398369775965362782837852777025908237819088275926661507851360973480255292567431969360121325915243377921843617767322286134184475500474401195146888805346633070858559620869624967967302328354721789926993686448567584411146925619185347581181876036361478238631594073975797678013133871813847283972286419888463830897285896805485957661693761903252671910861245541040585854150517150945254036882669186066226281687133247216465760960290235305188065778101347847010194487495034397761310051103604094152708642825411534543848949050960397221675512205727643825473994558586663971758417286688322938776702321152058606688349588297314053769981188659854310904149250074844516300070637153281896065868209596263720689027765149329759769890521379800908439099360467465847465530173957972736460233823219326517157274585423180960224902114327526701734721865728731005220207422204650060823335178792448103981806621358356126157039379949187721027852323860184301256005265561533932372880208404334204191806836480186285690252294421096801845380306735707579595335474568246398309292134419758191055924545930421942941380154800071881723260100239454994839472161324504343615087250020172483215494708526409729338902860780333459997121765843983325660953337129950339834384698068178885086352897042551696998233112989585456398702764927658475158471958599331426351200295967108239696614027586830474707208394265408486183620940167269209463359334024780193775042943914976453891894729284274292341507299418706634233862984289026667266592495009346638191648278583762103361796390247816162286193656540325484655640980022634255950370255404728515548511489951172692556877480788056607033666598127002084850994401236058772177575153296930448994793793013270469763208167397469953966578425734530826687515457173836900452030941265137606738713836881194745399127851096664191586910754018013813203491855968682660145258575495481766560331861864547703061545503302269829618964489160949096216558821006567220525694728668538200966003067342372515442315450694329698148528061290282165195503030560851602729352418619914395960810095167042991793791894880258210177000741993904672521423694599816762905635024710010957064669469673410713459819156991991889426807819384999032452132936687602116226503015542894575737890231009964276086353730330221986009083523611970784977379712489971843649075131762317028282678491501546630431591745077510998751741555864866251479057322330697936188693496224063798972863851434255786203438470897935074270498364730715379247661187485873345413240160118544459862987744548778609127033390292585588809575440266413931668622216682896475585236416268507062788795105234577581664348807644467242497585697904709015422849430401827459575366774430999568368489932233051856271872953710057510679566706931226946849647558011991806921649959418664816409806844885566990922936387317700147800176677950902799110667625545580306762196718546342707034015794292052687504661262076083310995253939189622370925983142220369680861922589101229363902857197912603471805478718017210639137625772961436083620249858991630162228381221221751543008572146776406911365816359196079628527364611947412260467901603687849296692922701689378032431871955258192192556292143101482609934238768101797413446830638786049201144406160957544501651002023735000752636375545879119563225095419019548017158302415250105319902688692975478991190833895165624359190147035820123005630173958732509301331567566444881387522947919500288324196656566646260306140143872263188345618394716926474246602255157009327755390412992091621885733609577521012070181259953433652047837703761963642078659580408957784477919802902164611082384774223460705546471534179297157263205623684709722325091344832957040129997183356633607965878361847476551076952714477003258497787479537549566927203831986708120971386253669658036273050058940718284173255311488422890305015457808383985754185134880122893852174765167696862013667065584886993866600941968310312386466549400489888525478779741347600497452678461289288077278431700638479868588804225390820042337464103692531368520997270025743094242499850311200430775534476970471186598589863105170437058676608536103142164971527728291619182119795164866159702407976415421984422628636199629225349829391407778905873298756269781678569874956803899096258845070685044302975042502362271964337607645190272979829365400317541642646801559059647080606952070403731701653393981458120544716565713906642817592081321616765761687652648440354441081014279240411153147329845042396126029242219017127700376564953192349686240561643203037753960138755415338027508560201263140984737757895145541202161910284746479637060862021301740596869699266923815644762260782946225565715544747736503132568381225573097162638144018738430065689847518770035939134863581056914519264691061689547502289609986742452799016908242697553600717631014009029400498173104766529663575480318826775791586756921630827423665190156672125776317950228723335752998298912988706990478682946880883916780984680726367753011906829311021713863806217689061098420990431094934066127358128073803146359451767839092911846758669994899832295279850151035803445401773068058479740604700514107625580755654975769766517298182161165165849869546486888966082559932130610848624217041804727453618464249090532646920162169306974388326504797876036489548659831502323864955933690707003696080237536150876443605298455224964746438441201089449197180773098255780101624089181484045540844945215886046310890538317754698638140681127044583451423766612155517862206766586057950420979004194883523941953526736142780921042997151159212792237654133862787138628457331439251741235845416492870423288532261130142721487449295399403567509619026124077100689426134859479911997527377908892140862106690763649644066024002468703890428252072200890543160986118672982854160991275967782922513349658904637850117812911891511789278359059197913820799143057331251484645032551317356574184335648722223807177391135703567654606062202211563415959697777331482164127051527494760825375383364957161110675304251040534284209065599291021160225107895233053552821607178784834821734482533745489591673360183714297684070187144308426727892642114898547559470662469457094356458055042548191158360298851689898771226139578163894425153924609520833047416808676474040748200611105796171637576094696772258918363700933734905136425817976753808745139981510832654732653627527804655023504188514154068469663119937926499202662052856859163654948225110428242913350926856572030306163755207397425863358721918377408158113103807501821072353230050360237493260271220616857131881077216954390898488136750979852783195618924258510099158771470985202639674987855037623611489112844410674710199627022552341782076784923712849483547162370814270300982801223316964940897090066112329533221550026379569670456121129133702611855097533568516422662328351799572187544096576598048405494803807375867398549067920815093992126928437341239519823403223862618362950521475004208613415007097273389365768150666215637478992116669228376759840600594694646785725656334166583371252135252219263765450867658519306197099353939217993419488725488060100303812202363626435758423689264185752576317007230702721689044841836940946575526275681502935907369067696134735339331713942962366129140913598197988686928748900449814473181634275094029276452643451858351001456003168745567666175740423739610500683562217464087826332641129572552842337491578509107217421728670817401165674969137166042480539392209816215470623011268340747000339136471573769560072932423786857742711030391976204854464774498874616103960924297560420920834501854805331337998938806250301751063657979806353875734577512143259992015157272428059841602776164064629999216669110117162261444718503532623153577379984359462601711021331950279289335114399494076626867606386433463426588002322156314950681041004420264234434661634074733483864184166105871989508931565297887992578550275240852711305613309065029049794374150830890410921968165105842730675899621274862607687352641064999021161522246953659637304163241699701109104971510573898040448913599534294376239346345835441754264675178048143323171285631867688212462773836122907634788200537323951678143440466147600575776634702866340064484950355099659763180807829389014066296239558565802837776032558246420544260617922240537883523330122557285907204829451230352376977061951716189489439163886568193570946142198210674202819477818305559393979692328943278474455597374010529032117960838334184725615593060766063398400221855535253921811282827074271418023276857305363093031329052737979346543676124325160260417392246295898477438098774723728602111488621390343003810891959580627499076256298392511625589261516383980616689484115911173656418483035293314408811005448047511369762619480642684448342084720966559216009918002610249035192309850362662873508135618779650901702770953854352271691364571077916895501021163868454815761975929572598424183800346669527948814319662547506127604061872772709241078038543869564135184162293735529998112901649003515721234117836148391748800722476432838078861857421198535734196831412223081144557210330202390912451333500693795281271613895096656431050090587339177300640235200122929359215196377610571164417482360494193567090125827930433293881075596365408005803069747750596209809888707696763582224722172634413563800446017344053104160386894722285991250146678589789837463430733908935595946088738907532359296313906380820530486202856091928385594614100115987826009216762724470042977541081915734622901353069682561695385755944748897514281607500416345984838837330615693500064879926978561445441281290915069741977791584464269546000146129545809450872377071782324547819585719438657981245131215763290060195872324839586367068794320512422053150328482271336973484788490580440088240631223140541709460219666220810424499593750665996552788083191199715952047595620357270541346229505831209627464196341831629623721990230068681576339870941435487566054338080878646589338964083249981969355986916451125508193467688760237197765738724089243996562376537283697522413208531272628434778363814463634958363457680561408893916923917271591450741937092624564418303143476896042413782312492197538908887584478399038837038847442703694178273634818837960556166812322829453820030248793544147847975075871449199035501674624226996365386435379600576421655271559888772753148708545032508368782708664948266032299335705184189600379190504706978987841116403756266495590113825108786903405151687060495583273335379662824513987262306850591623987507974129361672113902817933743493246720355285537003017566337910408524138442949479899656009971123098448688032105633984709623607239614879183609319844320891196455731105555277863369957180547504318805142792758583532193088873086256847878552597821374393129661919212338153323496065928706896546716117335813730189354895808522457023006244722082099418093402356654138408164667029882892650723326228327002411652228828202610314694917277057662342270523296042266517272435969840436222149061987735842223569014774775254104227322008080669227342463542592851584211613960367803731292015726725433576194891673016786171702480951750484112320442858155215302573020559485369439092745729039532244825145612053904573511073255505683104752836050858545575344359465068656939568115533739150302366941047598848927883244110879688370043948071825872777565533100431159411857584360083181731410500174386986473207248537009987301835273707630121906854605440422726723901478591291955816467655040417271903149378134425133149892002930984968622055248816641323298437404158101343384456792695514266230391155520654344156715456806593075792042160681487107614809463388689380463095163068841214272810058965352264537654093386906071165611627702874093409264711612600251348811478455814124891585329166236230751581424666788603598955030194278308224173160072926973479890894916433590236733649420933869836335320027572032237395179221407295832197125091943919572667328263288405113086801983979353966827387816598055408767266761966479522144028762222918590310820687022425096537552522580250390710083025660856957608783415263914951337005491716530917992377497903404083458452929300815541160530270645649925974374642665590233560890835660592041588025003221207407378141351957998143524327501007607176062798399615444216392564188917557478446338053754455687482772043784009248000420850101503052597503350906261375113421233078651229585289767021356626079745841527548552210376217032845110426338882507885970647685151634585556716589632931617605043308609710832013803272639977346316022939272561866280652703092150704709509695354454293858403233213575823265546474515682657075642730442497186622988658657076665238333521055891589020515812104195316322977749806435541687341031629884232989834035574805013805293462680518557130348193269505461206578636381241549528010069252262486350028078108051913480259474961493167293129649144612499747679021679058622000131144038722903199820259036712332112521928125606095778139864397237781118220448763406772267944391203897219750115913755766155248025163717139175130360063342471212345575426827275440437602584927195916467976874533351359666081730801309934388787666928375015647374837748486318096487282993935898341872017342773375754243385364152854136481951479731366619028889266476211492399891747288307409256192146866069582950670185415966037958752840105425744208553324148984311262479702488751461875421501682031070261228729289415812531688487188996542502264374085151891874539152509042877584181542517105302614481612861745228856917123027837152043705660739344760762247713447859181315055510100643380606888466400801815524161054781789861380992120771143785299248539182912538902709675757716839984934183549013258976121259461534635254293529351038339892330079033128231003412256466193962898228014475110755523413116337364071620848051409872307835699664716311890832411591370941296159505088103978796659089938443309204596334165117491915413682980810437194131228375655657040144554581610280337319176832341146932456296009483144626846196416014445418224614074734699569974089110544500705234982724360892001302185997104260001927732556687930401254164405393097456766982084058700617546123919948728563221382322184610415326865707021091900299658496608970034118128008821367886195418960826455340378576761636270326356910568121763552974968770058620778399130675588358627790316762244103400441872948697027685803876457176583963220580576998637873440399419931573671787310849460810353530370791879775389565687774851645190123444338069993327995370173080886879440964860603049703599828525941306022820455970842540052063702253951702937198839105402445464864421108781425628739927323277720108410145043321210201572044098496819750106271507374948682147862570617884405647832093708172221168298832030177431691924942171256286798853300442307961311124521226887287362749805912179462959303090701274636429522989394453340361715826261380897751076312311230236800801587287028197289450967104913229347358124212421865141356041688333836434311985820489849429133345367190938526554023721622919798059659779359189128433422608184939900229397983719320209997397330166994241523539139058676830642590078518210879805816502128451914916348756273613883839252395356565280353282775314852814710365371385765928828683484875825252325247011277679052416001996853421420891950174833350546027309915629978549643132954661645945433628990386918564678111343055369451017447535842259382588037528950968215474025302893849447889672194911845813561511199315844643324002517971088185218180289556649703600644214081868485209829332604343735067032176137766646878723940031316600993452332326566122906145490736584424089576743187436435692963880517612967748235150320843281962879635227186907022370229647705879639816836749548683951157383752226844076876163596493326927862804532116418831969319607618990175116040223077076573022732189944785035299246029984142410102640494778877897120686225663538811655911311344306905138744791288702531740312802427346427035643699985304487893858231108983909128194776026251998745882396489672385616443747088615390213408781587759772217549797949887700603285306177266061182504684904644820317673385822870859919215595698714905699532252935130878524016993532011661361810923758052055977137043252459891645374766015042691148076900288253431825577752045739740646664501791336210992877418350859043431437495505242950161967929779906271289242759697670001495629962794242689086727929245646321459161793601869776268793549816507708507864090756722751821635428157731226974358079724786950919645401708391667671407706935386808773463738442896427555273897552571712929876613061430340893622386480602689402004870147433758521900659696095802948995673695511461154425471473368793915071836588955789649432713578365176434866555207683089572853848464312957235245738503139588413614348210612355436350353006706790735446730709296049022672401905282295689493404653957114656305126405782346847034918732446181937262227995291949273525181788872645584381419092971129114608956867921410608232285180150235917617413738218186904572446874074479938496440517726013179909443967142562892288022354140127193753975032065701910468489999074112757445940145456141324396571098521022869291981315322491271501016187853779058624934319218659451560832383907595778216685438717227621057160806826832309343772041197738114115519372875305295031319546463581096331470678231027535213768466625183701436410309268737972480224689365333097438303728892360694428265564083400112061476297357739703728414279202371408041574829902172740079148646821861111141958388540671389360156264175711333053164220890707427510143203137049675076050687384326706944219343275152668566970794804792406754451869395666208023499521279449627006064710039456029515723551689302950902747334042625181860349060034957451185558780499094222725614018077305131027421586395025894878251860332388100827033877480465243675926754578274120660360828068590481653662238506625735574208797552170966153046814888872011909212598304486340524070780830640786577619044948381520953517152932647432550565896918083818906814787846027455871903349918728590016221113438190916228133911635701935610918904548470596183242745645418466083459143373687807677750012330720556848734245216606850861403169142974461822641439394663649225349132190574080631083864129144626288216811965471852623861107973116399812474189132574285294795106993460339199797957076307153850815531624245390609061259604000202185281889260498254704871328035645598352322193083360952284355990054393817403633852135240350066405518155281527951594211308516157042087856602808235966906750548040979405019017927583527357123495352809336765124528016770427969880175025064822106304564564689643602886124786684198549804479445660828098986293731389850270907303895881291890431753896667468657647601723772499345468756181682596091554181917008929090262208483037225740878554831609033889399512491776501556871667668393546522551093663001490855144295643214891807907548087143452922017815107053754715489484339108321912020993689853412780629940524851346996262507930474236714057117704622956014278972652550770263269973542425195763439890199577128479184397198064224124501629304502050869331901096807512154700313567064903466170563283970806006996328141135751465164404713669109389931667119081887462686446741790193455111037442611883726366219003086464474743139734845270192842596479062424106560955754112917676618962427006812181826066174232085983392226928500261216665119136403674458317636880612934519312339145262612700303810644175355162128443632488773429178334387596128602641879446770656594157205823881564933119720462803550822820800178287252100048114351742422326408808503369643541051413225594860206120061425129066351837418788024049606624310968885906778656761762171322390290294760237835316624499787749119328456869901687479851483124128070653041956035056905709061382187093902276748717893078006746034649493256675323069562108616799782155735306123894275132095439956594733336900816177361093237596553970997371641882347121006183875523711798789839233498647646112601706256910057922143318506694693102602608883719301408460118517621164607884503409319882724751617402024304828220915695398200014725895269353858402510948817411857574692642845751740121946213630681202430817678876966655685936084232178161188347782569298948356614906748752595877692579690145780024414870762343468952207727768360015661176138980340679768296953852942205487477014103308624221899999489756061699040445155813203958148085692578166892874026651771219687418830346623644099304007291807910968408823124476602441355642397462299487417379408388173908908379729017243696046380274133735169230884725290713173774931458850461563782020144580782471052081887942618736260441252770522263491904970691346563470275912397238812482906450913680435246721801185324554265662281735168030759389532081150570911605987129152622304982499936123425469078771873995382805227554911961620386742514019031560468426939657797554599445521438904896199170656349188438097018329853206249263356249352532904709633797598198877363850241654155708447164266885180229071967597802301792300664143205242673003299515414592769914300151574900813336087310773222183500865795730517242032464353756780259137320225802240470885086174478242714664174549639452308593025622807377665723498831991493919212970374990908878594867569449577243030662294041694862259910671376135295046797680015346940238722370662141491861512541905941829120587963282107779948391790080553129554614135078536744070938003134225608633823119883328932346586753839639787428101396672253572710469776617961866852988431903370226163636743296138450729984711846713895374727467492939182868178339428167297914645321286095717972140070152800457010811943761379199658277279437483817730783912018020336328521785152312944081157308658023742780639707637549343654983359434861035540091923001747707932781546948157573412857386373053874416383815622337343041513939772094646790234866009359067653711987590571714684920600212037748936543032789701150316386229972767243018006351878798903696945133998039534361797745563502306834006567503495862853249980649513739769739175162276236407519820136910329121771096755920094186649192239376461056899840672489478720403122418786981091069918784133899473666569670641172464057794544926551999787379859680475336468369748265567606442506180499759446278453229621301577273477698017262960721106829210521061819408775786282412465441593559180883890413262428338002944046878822385267370556837033419506527654434504049254877988336230647094827438556158568867789079152072281458028019162564579381515878594652857251530453404096488024052752994800030383280325182386382020373623508971878768982387319897655156288777967017873590568593990486603542575948076382530325786058694696805369339593823448567364831822889425093894828457392239586510362847821172213863821527721888799059990390703291310025298598913866068822260401692358762846744873852594287517995975812928701281679648854187133341020528025901074746239980215189595709413861985349892341016177444382229901068014855799638937279829863439781444401757073400870442235048502803044618296211027671798508144412585567013777089076259586285609700776347025601208314985006755657245865181213450723290979131821749353002437388078477007565083090001972764686998829350432062399463962678937437672748795875011606879431423084997478501093753112062988529953604531703748618734797438793627645529548227876828955914752390420173201655768897787990397276198987320940826060549081648668884971995869935565572818049124479341343210384972286120526046157789660468887955293197198096506439947238599366152101235390765511163844354740162286693858593312601052421843066307008211444739125237216145289898175449274672701805849345056363733690910489663509973541750956203983765790590084007455877025177453979030532283914764603625596351382924776891653458164039469771975606498309460636847935600425633610531654946202043631890729370851178754051440138414944391412368174363489310635286013198322584718042451697116127995703804017698460534449805890880889816985774150079556750300452019622601711698148183560553975641444332656768557009948501369072282168618754793924150757301961871812277299312876916126475879291188650286628641169337463387414307988836936127126879368939241554699248757231082759519964895334288284888605947756604717060507861805719847649996078181686444037971210714436185344336649905522908934941037159267128920621673388705594322735516628127876006456686232975707361567157543790839332141176554602122768742295489276747571734467319960653259599676997239805409262004742716677631881523518147070206503336750123258307997781609651354045650667173291845870749378623256774659564908570539542107431211697010765235814743439815060680782197584814422601662416524662866437316748279125464444147500654426070965145219745655580744068726606013007613937344200909656391983027651892642611632998526959109055017921076733067632317252275274116430738982111803048586915936283803444781289418320099034972064230584295538149993638224201965611268449796665128107419874241147452439151644014360141191649120973338055899913427038547705345771361987088993791770026103555306568017320857808697963862369419826309616314267800044550943356272709340616503542632107631413299916338947892022595278111533616370587622560291111056679399006063853948108986104081027265631179974640341689351806788271006275753546792936995883650471777185151225611926049690100582015622562690196554169381564976441887313158986591758481134335668617409407735842659469149650340154528025703277141116245016193733010836770859207393364351450067870457079324447312520639065942487911045431411161787431906788005726750733856606427625147185932084511575775234813140108230399358921978321254531248783188514798651759430591535046642009200620090445023835556000237754963821165727550923824808394586240795426480241302904425696466076823970611639351353751993506999293173074019643279225395893639411519263411973802649348847193162849048208330535654079463054482287141140685367234496393870427461432684090185637272457635791085637657149318686396463877276174669160350163265357898390597963397673135854863797066234415817597998879747992273072978634074374689740333815225718151504660735250927541631326673584807883179800479726109999372070335032599922414189262977353762950215144349468408507339601290012420046232219979535869317511298836666711249775581739792030541718971576847554254801062872009877228109411656588658486878335965612300526574514763058968654466558425051401485731664170775185013601548405122161008114092745537890307574752712820733460890191324051854770433154621422217233840682187467424527941335052943303800254663290228703316515264515589990252235256174041107497646212774249087304472138433100410303657847818243173211981575586483519760513952095250453722318780840409529699175650991695858700810716958825276656681256905191231064369263248379576838142334878431491296668192456779686853664778058825701059108416485748759892990719930709180915381307534602312598588689494510975819151281229157739975630702389018072867649177830065193282647249027417424174290570160136292687597619063300804095520597374992692544165943957962264079388540397689986966631453325021866619823119447023526863894653565248983195917994841002869436813736142379313831108533097162692455349903556608733267121229240711423755114815707557916132626950719150933268925898116713138394567330294796986894626317339888503835195707964876289703201492293275777258120607771908251986862077270810302060529819001333780552251237606070167702875426898345788931890822042729131098504088326564640441441362177722559429106887586875874403291676827025315740187865656978182418165638100334888203617776017862880227383717913542170319610347443597022809834911426845542248762444880251915944997890302211900336543108189336338089263704228306168846773030997091924472129550189949288577026416389019085838050130620726776262480358993331633909213120055507703207029057322236843169769719630119775720632594199792473603615577528704538579378741916691882864061767032829083826371382981792148690457842435138671756115421662467622973564953318643707948410014224450436341859639359229519068536936738778131793673090764106234688500052084252524356528819821585564846508390010081145941482222204192213046186165098441641168999131388199745368302457728470771040484024469321066595860743335316881312068034222402627352762010171959748216297529671743888322266632089079765955522389321064258794400833595724301110746747299524465245014636343785958283195084282874954406149319905027537556354068777538841745809496124491360270217207731356114193437861385136856715497905576963419102298818961779608385977227614813489970198163737343781965605800388837121962495485265305080745768051146240533963985884083473617595484008655346437368032886438191549593039450582408441834906385944393709107944352919287330602786521861148328381646433459830034579653172412695195398448249009820613270493714948198105493350077710770654022886027144153425965393990425913964987014097410917439076179281923446172549998068474898489555818869869753860224603552894420648708500113327676522397373621596144933435149147650186385656997256620546735612417866576853355061828100502641040964975147912031537020707770384800010181841653287482919044740960570742739911122645677098326274332677004098642173798772129438153258761172526546281322449524613161409466296309615953499193008496509432786918401666827171263648072118543903336233320894202834539803433679954766386483953067055684806621963705028156250073002251558315744213046739862755708284908540839266030370084718667316251732251032890503998686342739786874741724852394753553579161576404934320544752540576033069545497728443928801598479850077223168046630166177877717214804465302987772437084740525762831143223562430797105877609361308243649692897344736277175536561361279289760606595121682491105790007581934139016251929177220012727639820155929662760998647629932173334259231197752869284762528320944672921985398818235455133510683260469989223905208980477457284048730027639768712060612729204922947361615361630243621266917208055336953552259442841226046565537289560351761444999502592481735819336964237794844133426287113673380868028755239669917590098397602668812080786858199755918217468569154396142967870991064430439269336343756189041259929502685576616632877725176677409185762203946944445882726658913947790310527805996532920316171886194357710694444303835425956364355788179597378708965376324295320030912796022045356721091800227563667535594250682899240752405461164488411524060511133523713236579327492393860230086411829653373858381664470104011232302209735594566572143805741938968905402674353763398515892053822088216207139216600617845592540438303395740529049661881955511516487819438972149840059414974258382090577620574192974107422081537875745455475916626923311016014686498433136315876009495355358891458119133090716357117630554976105803499066667073189390007470278754949077134792679430122461666969413688360634098308814046758178439911409232868454455020395617258084377794261737362539295557959052458082676950592389109792672486884320030953402619661969488394903645642185107998995115753179923711427887518400056236008102062674579200471667194693202393042613876912566963320595909538347777835435692429512026473680882116485126831841330526593045190312067139207455581655334605371989424618564199803501130044504710628368041796448212115916107559343369222145006732368003904040921542182314137335499864480476870913490511715042808683657136975148303432784009470542107025841171247108805527082277715248359161111180839004343959299971237713457926703051069162542148147664783459720456528772232431275012155945892386822621581429328784778938085616316560613182570425463411039163659561504953086323871688013213915678933976255154807413040482647815225071186663381395388572671866131154349755686215092751205588324957519256695011472240658354436786493319043730701174385330365444827392229160215482526130748766942914546417380464604041824854954233426594234139645275216592630523975144532451661252501265653385390470187693337363194820782350523396085966093503962859276701103582846223003184195416352364297507733847975103910682666672236147840042692957317198476267795305182479021267686369524203520881301468148124340530421587912488254231031120948419218751765093893472536075839930435346403835303679500658000012689242854629361510166885151103828061019091420489021823641126536780316173030918729321962336206790427105321987184682573765079737686863043131727991207787554182483372933104830400377660641770641074105950509672796589502918721046231008981370428220234458226335312605238786058408958683868499189892604432583578223371608635970968147629968674817031169309350440586676866733565855910025617691693825025753706265834112545620369630928693327200193352878450159292631897455473218213626596935338064466018113950242946250479514557604713738291949666885228468461823210818957077270390604511433737895747185887791049969731051558989919267881353151689291406757491816259537093761643511881693827344758601718769162775630167496554619086312641431184563400747014651589208496117032970543247983332794381961980143307392599654193037322616111176193591633488838208295627970139720598563093756787401057083536236265375891504539890118354190148136314287637620327097515461973408934612548400115249768551682780709513418450225948934172127555934303430739367849357408270857716559166338643038213522648896002979352943788618293909960732739043764557640943958661603379996397754895080321723206239497187484605608834353695022121166073457715642329106948346071757616420271588989031086532541184290654406578820492826613651734884297215531884434051259643927016208369139783844717113266271869128526140599550747906147619383474374167007228602632062903123894240394694969353001456079221286843055384031490157932960840001723992369005415939727953947870035448679280509632948438017022051853464804831708562619652885346175840073024615838385508846081180516274943459912509764816785738402141621842273051618660725722689532668570701872958456235289928444991870965093908968045294149622699016931206868450288389561986647683173410017686577057732419604804430573676818822209195835294903834704745407885399489278996315649656606257580068718945031560023010015670121109309843481817693591111482452333355198336909356968237715904710620277227962165728629716277927195930941844321952305595577692902070459239722325047383204294260716701270236941731911424060199921598788330317290759781534718714429448386936008149061996059211353990841726868673070797680629336886122196156623811364122875620334881237528215725037270354560742698756808692698967282663467449308523223738565828784201867103295903252824381955717115975051753350981710700275779588548194489268227932275040094991812020877871047646743659557469643558489065518505060625161054395349881556494694219460150466382639428044839580970656142001881274876223110699528840219992180422997775246380178736653446600760473072797503544067611285695314634749980792334436841700420391610007445751794627335568066380823905598480695456942909231445322948166185520500609242489387817208696390559421196083141251158170247482843446425427680870208644613116187109606643132487494277389052879342396674161877075309374849393349772424880553550552104817690893534080087497720405509443776342292655367145636297271253729752875246281254749949987769362016251720833330657264627239288609406937457543086097606619740329069066624725885573220413270743409202411763270916390350327766476757833232583303155083488515237574475210299123629741947427138823629345039703142583156485167083694643271772506678372621957977982510917638750892056201920782207644699278076076352746164250256796690470805724630168749467809633418510262299958126304048135857447929939474603803619593931280629114168465503554266542615520160363137482386263649307269093653113699611020324782101565560406401352626150348957675594631196439578883232888080770533946866217479402611560552875887669649065803892017421156687515660089463815034011694365759943825565339809013873780131686551722867546901409674824880324950597471811265259798270271578183578168640341616006414680605299202357746438475986145042796933695658344428985029150701248722669509221717486547895863172113016539410806532153578060624763080595681045135577822138542768016150828040942362687743407152993723837937368128660411463052232507033199431690694337844274238449818234399144879208739468334491152683131921836846403937748523659585151636238260735717595978769608489111909617542854931370858183101587784344852610595435758667084917797057667318518442745330351250466812308381765828002976948035167115261952945671244233032620440562816392709111941049021932997199259549871066375185548792380758004590670067646539699377838441373831467900596189471380478250885297624495373550622054350103631097661276273031501982492271464166221883439207193678154564158823039227465624507082068681635911758327492148400065181013681227965796504607020816828964686244312223219452387810243439218685843140155783231036996068984432444451368099138337243312705553437002878961681191306955369570849303327000589908595589147863843306181364829074896242207636419530487794200489943344566164444186639886954885915170115925134381062753982819518368584988261520353624634342529616721425007400162660428209079241617835478611447353156032910142187847112636401961725266863671938207967494785782719723275054203137612449019394306875674324332118687296285037742169477096039649726525337090044565399100331830757400976009238375452303879463721289241573101642215314148165622770824969555776366010076794784270683999710530933467154550910194841031796382196367043529920207841416604185686187424316335095938455200337449919251976785300592918482053846322629476147711948321737915781647708893469688720502881987471567848400009048164464435809721957342641909895848420545494230366761331507691178082055264239652881087154563049966980745795039540111560264505326115645611876591305112052350290330421814088422720773376326219558271810400747214278575099978717841254420493238591323027164245755963545046173921193895312401967012765006483676139077969459439266806551694440713050272481121808729705616519124058266427507162978185546898885779121677284332448874463608946578089505425389231349008448908277208893938401171579590237872527255258673643215167508196379049933009268435750720131810905870184745173833977097810516653790935284735533875231603912532487465515778130999573702201454147960772769471826904590612183751547508378827185369279843341540297649042827639351540886609579778917648673647814600307017091107472159176464721413611544399221010082212949549238568169226111775901405961204207469045479608940402622219144104609673300339638036903460523455493039319383892112569605049437510758642019351573364550303012943399026325054777061323255361348054923893373307003965697769727345642931511726122880389137033092081788823711709489166099337276747914550146834422416829968868547413186935159770679359300361830000909526239113005923331365556340851164999485786545510037253020433199805821591890317889511620184161865515536783244719497101254289752496892175927693502470698280454950855720909274845237365973307757969973153258651816089709520143155403757721501685111226787033492793067155205627800952351763669960281795509519964085120542636106478690482078743000136800033010596056486336367800245633773218407635963502717800984730088581528035954438858308537223665152751013304605359776048810333487867205713011854563747209484896053202617224951555581378278637338438479063760476542587866707441852842157157134955127552898681247606397134926172011914526991056919316741333019363323600543667094286012108235536246138967807203078700260418150406336147273236421528556664681655626868821270300334502761141092177901283788372439309021463363018982110122088113878666752590787190994866986247321880705121156580388193543532825375727223622768009198141313153479682706274828457993439558690584582517325847447920225457718986654307172018391332744950097231333574102535510540455252336795251850438046523956686351124313973473483706249661387382314778009386692102298577010792116106943360151806353624173100062584005585881202129737836488125674715362250242620888108206568022965120093310369404769739588000831928175914534330479227684173075434527544993302407680372396933867373299275331060750962939973514495901645852220553511425064200582391559773654112523940903526813115575827642012873252991348842931619501937667123397304255691978151921687119323323555169120163636493423450414235850069264952075786313143455418127949475871386621807084694998880277150281505025731141203647676415036322916312017090644915179670510827418689335214796976798108180624477579163358839492983978036849652595238263047878952539856077388418090658902962184081842308993063138770247511226408355998030265748265256832501017213999519160021714645631099010946305152231828524015643497505004794499078317812673163198793011400611868241606104155654806620901244251262151678404673285026738982217549070312469483512331497508619739019176526700745737517219601165807128591678947548342207168266036701709614740806491705026137261388651866442902796632524037857196510047356638615022909842739174065837750675070546856202739906558944942858625925025517481753077795032581039808867896226322164299751067066232432471973654781153744851348963367398678068761120630204829511687067047528571516995564949378925852092832256659143591515804143792323981619350679993614376428084195769581348887147422563373422066554583519403567033617799127582714289458436713489637954313057289437145656822442947953762963441625049184886389939951849504285104100669186812126584743677970314748027466196352956781782381783840977023666961346693832810040876162562947648026110441577116837691790760813450886424375497362773866732367896015950323251471895201575591069680033003402403968938167154444688222831199370343527496401681535950055974254908318039177684767738597871665436122902353658487249846879095529205746912194626162442699137465320956505403853635437873468172746150273801714523862645747588672980043383242977708360273096797546071609448178631945459188798330974774393978823218339648930857665928677943550622059660005664196324881632621318046209869345264120850795282413201113475063082434976070591320991059215548291086731042967068539538441446546019202986267965735503237255177122082583247480818538673071817184525558264207864536897241563179963630719713944265067512501009887024342908303022433573392146158102954629053007117852695711074273665787862820603698892318281947001476305952561918279612505484103996669314603339749736520200032650794355452685881629005124897815215396158757029215413799348481052892866435517614096882526045497759652808502708812929328439249908517952750429176460249898922203439831288306610079294620331759638783070323218731237121766031892660825357200102932762028791311270822665268539090872955908609713527746729552639117861416081373085890511625071233039789198177578607195405557085264362457251019403496120621024095168907482763541803573884343589476557462208868175841757202363569985199124234894472010154061731518509006052688064122854529806785548357642731055965118056872651722027449701347792772608185417291113829762021959100993804446370446490061925738050339480327787811936396100147279316807155216206753497978452505288144405102575520317011853549957745143235912271146630847613008276854268112295562121904822075150264103820016005379022476831759112272347106079574899841380102097890399089497426685518653188740082285164392334541557219695477865641014121246300830162743525631082521570503045602407968336754178806210686472828411333034312948688664284977801072144019246137606572801139443875949590212705491272398443422620162033293135047500437340580239566986331081591800849387207308203460285273454616798423844964396830574369938220305034371058917073746867389682703218270062799301752509775594438949485690823650430759924200197943878514180906410891056020750244082519640031918907704187047683703260177795316376646074812344682719553907275805821237293480995126956288573455164698354102472240093729139436301551019450101286796908184069711468721043084477333351468358148476893053234647871411293211453502726554432246787799759124505787849985972092406947777218594817659508869952983811603573979234947543721970718572936818559714100002831568850535328947471964490851158496457361657516814095294022385436480209833144277178231599958978101075686234459978763850621942741944113892428178825175052119619352512929268852460023380399074276496669373979726921444714551081207484683817621146638857390052913510361041947664074570629963508274263748821044726052562233093993007901730633101622944210129310939480095753434335218898925153543582979128671099579286570320628197792597395662196571343203182419382386042895815105625106152022437344312351764695612948236940996992900175413591962576112534565098954395458585156678408412311308561512915458788980927297470090936842748616676016830675821544095423609427829853243800242085985558452191520396520350804719259133547121636454945233306642095520663019908757459147149604364186621042999704578549025736364524485830979740637266841931239675840667751882930665498269315698134427300371328393066976144340250213561391809029553058857448981958775401115212422071529115538024730848912047042636651136554608323939136021079205545336763818768721167306553095671585518244059436407513380871558375484188468571913311827990785793166696737269852141329861810906282887623676202959952364347381058581192482994159764461597604416477218419937720432096273146759929299470945912805996827236606718878159075283796620614425283279534049478737503200303875846088444433455735519404438231135550723821170939022803298455594545114058122985560812970458882842035356009157133833880875682007494206664964610111031076718096699791254535148534758827680646440396909938781787635672548806512157881726486223028165361286286622721597980077933579890304640079329672217538788997312825542449684332040099551094502566437963082843815732534272302938765803181601570495639502375558810382468511845609559297770728021942926041006116489467463948456704788318798497789341094969348656404407072212767141153298130710403705622693904913954289074262751320489073711934368539707369400705628919491233851090897617535555846351135809193429870927004125243796329634166108540473717004287416695491877793552231755436271783845452493434761826423489749380054163148027012749239948778055651270510991916358256446940835998804024744714223874420031327233049006775383506748858888858028498057935464441073600050314911390011777631516002468374843403591659294003876995017888771384366186109141955536794181441494550172011148634672057169811965224112624576804981290226601336970341381583286468882051344638226266745255164821764651315504186489429549367506883487771433572029756569557838389284298511280746280955583559897029872564860613018398053715933669223488726951366390584416162456214410770896456717328773151865449720576144368812536936418591007798839498989996115952118212239540180014832497160282655843850067062401942518558392257657778685193170280078224858829289322906125490717911890069550536307642648419967819647464717552388351740698738601745398400722716241332904895140892291263689366078026676431068893659467176842728385372627063055951293874165785175663616836503948569747393209687822289172340360487141892096159207213454538721099467727670147742379132845610645351391439713320816189827387220577947991175580507111954456634913044964141336342325777451316290995031127888986998763632653728360960531316691780031440320830411499447759512630533101602659571244349452386791970355045810820886332461617722228477009570810500976941214893392266839448268773035376998314640978306505824936593103088318025519123456160498978294772927584167186514075713320853654710635064597131309503154234286166627168793757951321901238063009328170376060849430542851495677874712908628863172338451514504962550266286553797433611391753140061167153195197259674816997309853198813070503491713596744198337951910489573936533532959031767445228372497234411264216778148005400361547232207619755926880463759183259040362879663842734550886859747548483116294385496654705432992890128825712775305117581417322058940257676336172174705475192584133036220214557860715310044939367816530831079917635731983562791686930974004486819252347469241253732385056752143313387291918816221433039185533386737337712292118550118501170713268168441443285239004775482710859170746059839449807189318941800167612151783426013721461596222249254392686148384083499508235796114987356385256684279959842157281218172103082703996877470733028153029757625636644933313210917126784653183496242110195773067730049501782881087055056686614314193108663845127312015464268374331790413436388794518732027650822892209262333081798225998384211803678134150459838268797434274305121583472304685360330245984884910054022284910805317917189765439614121772679872960993305034492069402909924757977869921180469750654572801452266962141001182053084891559101779315047191087117043099566480945203686464507424464162033416670763944533796754523483976319209421610785468710554954193463949910735202215455628878030534753205308054942840636048161001693690109350690399638573620285018750125413108221205419681859077795680599010808005233530297305207414891407361854537057422550580293532210392132521209921125816117798413883148453534455271981671230459612327660986701938895325819188545848727309521182217934519272994052365797336413848707905736465899212337011275632977151775956184211290450216972634077559702727475872744929095620802845909795776893832292852596795754488329334401143225681412930531598934322698923689422747713709996942431851172379853546954401918007252018608074005054980315329464624121971161526421683028353898758152042160816084812713121320001008231976377951245007903598403984340836495824505673564758237958527102464662689196670303603940292216362452757518417693582844145182683108678712160162512553286841107357565798615553403708735142353412251281415413187380519988668731329149175373712248806981162527665574117736928347268581419391905601767543308177212543640655567930605734877142822260384557979522608168031817539978542468032759231369644011558821747234122800373377514338041654397882947804991117602420561809848471433050951862678737632687729903677886409352125666281911361297762834358420543728795720369442605093495746174619824387846485647768683603397893416383283097778966059468176649080940339780548759782356599101797275759181235335433451907673210791749202935434542845143925782779291386303021146956416663949327412003039411546989108124766439156218008934081608285616906756523542886262078017310890746408982873454299892780768694322823016731154577500985407068659183316819025806959483521415352686473900714118929011909929974414971485610951511836770149656730894325600512239251261603103995249148834508714242565871499151075952998759307847052373530653165353859014584334127025952985305236044771271898589636958597268196192178147788658824198339999565040520003082094012319989903007723340591322480068839807583090258176048783306398439774011868240314067661922367696017490331741052036622791680269033253503381347449776683348872584112960993232289204345974126741581010757789903970399822392661238907235593280187977964185082129633329284264418919126565592849549552044672824693264194677976478352286702141413803496239424070363372432598049225171926984464482598588908962121935970822426068597972118160030617363728420460772484806005702488205262816243628490389419050498331831783096396728950521880491982075995981720763859034477676377575304570725357816505500983631537707318645133167270599235954530538896097751413276299469740092703615905728603816098641349705568122832508788975218852519700843149537145187949445218250182965980052358142375083602001216444648582734081426778768674939734061689184476163849993270213265839682515041833126076202519467408691976555796371927530716438158697237489282587259549195625291778174904413442138854865878840941497339631349761261677997290707307624870533886511639677250611960795916817675703687827345640375400712123386978074361882822495855288998495220838664779329405462862376118183756793135558545383967420956244221934843567211165883612577207979083708502312540532437479061258938417150366406408244774288146365060806032186101034132008390147676312853312591254543364333692775243435909876377144754298563651872421831592568784861164264739968175398853813603308500994373076851554967449953648030216164438487246834816328602605100210946958948832761256992294398678520433882147490960930541217835796198647340099859590352800803696074664563582423589243961178056713870680976161791204055401254533912664081201465862000441972793148711380119851337085518211861561327224800982353798921069151867683036651157138967503712316605953554068367756418924030725407343097381160571259437065896311995099120261053032505012001901844771498964165320956681615674014243771952280196862459038494189166263446180383884387464709161657322865264091367600789403660954406024032587533510880348466843403328200532815401803988160314116064133329006781960046608792409617084257406940488258757432597442280102697412166857488449066886040547983880512046169327759014242803187576956852612272584300902881034247154030394946071666777226401876982783931430753273319074859906832112049537802500360654946633771461514242339310057178297083069021196553852297065869511687244043831885898925601615119117677928259999557554124714447707424611929702886855027299397527548182264532101197051349098595106592402564131157292930969771224843902584177422617463664111160748340066725345024128366510861934109804915601102115288817674464559013371057845075196093883541751226225881092119292084216102338276444552237905866916658036356798264841858013124639959770090975717827277990117689876336535448614716841140929711101332828045537021504812656325173812667812824813157880138333738060471159089937668937652009184830962646995815828843245149098092024929265910123623294763390510470926465009729766240182067285523681961884895767219244877178966919386944193426120458396393573799842004927461726683258829756643063225200075259354505914571707169049205928474997892974140412504553276918304137433689643782668775653057162973091413809263795721164495866560566333319247404327051069785029403961833108900910493683291145450398454396859788516953005942844111746025001468292442041464606748242497411158693645486199530979868721790030516620680480534253759583977641949887683324258302355067839381879347498182619689659022081892254678091740976826999577178180174144144725673378973040701207013751571218015713274311226960251673606141150289179771634267060861211939752677427372942723069555898744386640569955713503654410122185744838858471443639745022971818241227227518761302007922471282467387180014181338234546137334475689373889021222394199718354271660172960742197400270510795826793314844401617699816705362722117041740885126850164899970217205092776492523267248618046470556541709480521468030070531983449069841685363111026375232409366103829501379956934504861503288164475757866903197318948599870194487646727128072246323720444575534511491930090149246306482853353037619166416559900279897988665889011441190442588166158908978991694915844132191784713749322923243097521097396486048339195141801698245567151596595696633784146792074944597960233341843947139968891393409320659225161703933185061221988211233756654107927865820322334075070143070495144695238812448833739634217447323382310451380317148083589558465441830183764644901884178858431628473259505787761064003841868167401890410925446287975213514695979746813094788640612493981881857139147522656378918437729310375576399144558186020481315708092872862635073171998730315302485319353254635100489085222458397851888548909415908561759300611085655740887739798363560223559892383425521863110097870652276669627708259470774217005841390633387990627184963132475171752756144978168272037140039999024824912195620844627368955431313317433045722605640912309743089677466648872816106500754494432383606380600980824147612760307287139475149048247613298944765492268159046737722401407165406940456080463734141018997196593905058642534407648471991463009200879871632703139235158703401764948474479347129845071084475039372348573862547825368350328508391338004497514237057537362779611893757884985288844407110693549366144360015215465621799877846667270506230666966031844108625532709046956681686070788660303952173157440915020026992125023542067975267683716393359905394876753911063179908981016002493782443597990075214250926300146413924115152241888792773072446147644851882211489583700140452201614963872141995099156407159530218311634141287247891713419885033513757824842513202260294394392243619232500251279090206651802193489097338654166030091493872098384821502633113545656227749462202127026927755590304096675351618489962760839244218559134247069854755046692070119333589529093073404987292730193521130907598678865487801473745374681763910662393231629501957464860852646700028547323808634318278705677675641815122697342929409046936588397389981877797559141066485688938029175938205546150718653479924240071166412318258677008755271984130468037932218999179237468940075879573667230980748563087830148848471358675337049440146493637402929625982270283467970550135478276705553012751749246904476917710791356616317238850630234741070371099938900354305397050114642932101627250637773436194731551355554209073549111375849105616369703193209834711432579161522651575977251082344744246200796838653459785252423174880050871541887577400015769772131473487735097440039911837730269741325584334248541785085671817943761094074798464976560280010205801687774720276518372205379664056572945216908685798394005777366886042987428409898362379061706851801975323285911494946812878929725227811015170583406942614371334570556222358359097530414340575014851996364078065226816821323334614205007859228634444358054053154924692198240581690060343090981699524711112458643454835833238058623297573878447740436234573511026719096661720346981242674381775533963634747823082934550626123004099528751318555582019330657484163475156768739608182695487451763100751166766823489245758957116592323257220686897742371708640092374044705085308969353489801614316930015289490936405397349916536486398895233516179314008041387129607653879925383723631689639067906848253470156554885541136774322816461285312198724307443466324204380589524207226565577770931017255573931075845879154693923997845729467672561119660352891831255122122942171676358541474474465278739571530040226083109187866118029631076116732810731736978687089095002396569149635585391277990710640617882949427822371407199908044933513524736792773297834348198052147197033284124908309291002523292265336799795444190690023991260659356893087448792123425360076025269139980401424493221153633627984412367531026381064143773558761547826009743862757866930374409146075768252814711478449895956963671736086013316949992131640801800675883314952708599195446486087478776098429564245314061259630837804898514196309701787690613281367844149774516765151025208274749999975295962720400606156295475917478437394594108442631204141435500694771592481420161546693489134506532392540300251499101257091855248458522145162793472482975650308780603368288097821656901643042780615559437333969341480450485743911264657597061386413763587337888580643528723577985597583391639590286116263152431742448035468774318738071150965160725436333804157033639839307000797651623149158609373548668818314017916537097967736207260210157502519668039455245150789116411632105657453006312176910438073914336752546083606874307131030652857565019994481719668249210370478143332930096154137752904403760679026881173697808950061581723284183845419075266005241127061849498017587696192412524668264328620526232485549423121872088154238786374978789259457474276877586328727996202502394369524049781704592751176399264142285797309113346584536563629597621320017219818069536612549414525635143989250379420184137317836786989816082303401820556379648840593548875931725524801615764864685081932827576495423670801292020180298711635801799581048580299522387249927481783293198865240375815230151268204352081054943620997508442739432180958463751643007186692144325143464363958776006858294101280245419939835846004694660281847813453812299361459332116965494654128294160518703949071236006837981454969019038370249695151684962267442583029475116928957403230357903540206487464870623088030273357378163726398502897243360764384202694908777924131513718254236281250568052402245931093037484248268492120454896653153433218254855732250020009602371260446211761450390483458497868772771345396862452699322971506500840774332066522537456923502859103706125094849327728614660825537820011698676144932059002502561510770102474391479574211506059664975030722250521622444433523203122242662109302317097611925985686365551726054139974159173313298283978839902161328260888102207604459062642801284162631405248817980302972258890780558883763423925129731287081038631849486891354139047574274105201288247589664852239830037294679854198126169966282076784688195393936960347329039047788645301651813143187969099471126398720427244475185724191062133193850852450225613176627148583587877644602668619245867487134455305533870287282653107925256785228497897540683847156886496444435638447387119519859314973338712254322395225773698380788198205443964933358723796164778839487246749157712128386289318062141603240770287434720459486715970800262773208111652486121103089235587377138590604081098018747843650946940521720663147382679983014831066676990764924395898597880932074553071869465050224633423070732521426921344310907494188141643690009746750585200760571219721898682196866505150700976346400626517866599052477174811979088869233157295821026301343397729486738530684599314588586528269751827004760536005297571506476544763036414782523434206332964728492395279134904394748501910246858291891484676888465786195786538236394717955920213765363852363258883021641841824680996501226532437233604689070628068200497816485872690998883083457665944795137112602374697800249456227545191110285815570747424175249467898256256462546789877172363090206003806390233573705926423287474475672794154789600070758007839506434977933178131863677454266949179244889555246670439076975163001088335146376812283067074012561126047056284593360816208953185237144579239626389865414465745893974729451944695120603000986188860406265815532529620458533897260056207572781793521219487384904096489974174669326354437538414410615429124732254922291606875451817567464840066676062881184070916930067722674431977930643290111420816966375600215087523085903177197983434017918926098235732232718765997216742442004575393006280399617657333025647018016844579200078216978558173044314753773989971860701682364202263567615978457585730120013629761598153711529714758712863144121598269738943633960982073441478966700487244880022593498969547108471777048037009876681781036893949252944510063722084731720826450877001538513443941054952985156497319396122520663855636285546910016013191705015567731120851430087668195969633526994885697801424395692454594358530614782717351566378264237437758608330873568912865051381958827409174674577688235060309069846691644225232930521734904796866465617008656215611730841247946787094106650179754850649890524382100031497174785911793187602532542203345140492326708521525999625583793868916795264547557741359848564466839568038556395776053714365351423175110747224309917467882218904701551780809731807019494287128495629778342658229228857816427611466069877351447924037388231500395677560604940608336300216071586503149004219008439712485142461879336405792750318544500409166125729623732760134789392598825898583781413566924236526340750326044004840548825991026330196727493243483835248163013013969959278492708598051142453001676823487799669291946031182524888227002421315917046395390182801994006817207627281875993363728210421411463635089600034915699246830890355551047413805467543087376369642838932580848776408976763481896268211337078830220344920400074420253659640899662316674956484609134066805007152719706107281855522534991370465039101323515241803891677221405300137734621483666469658925262120541246427170062241311473662642723963325213104002427935737971401069660960888384463079151132141701935408771917271962085067848030040119439190456458440087902803774096770340015486300931926102789292195117239664137624269833543215908706871965662638639655583666028622887737498149975559264143630265933558742950530951818133752492015644138238020129020917161092462208607382110814490779579081517394582807870291854752813839623154204665753230958119048207829350804304155548057029545936554194510439908915522583310809873460660343403795652084146422751606944983176016214405018967702923537179676177618900195366575250203907165379237883377526267547787724754610914802520765382314932981153381077852476705805019077794647731393524577121296866493046584114517857863396814945663292106526426666419766893562028625687888610350502158262862249543941822735160561271044603239940427062789818439703159974003090705897827076522382968385192784470561045060859545774391604327577784253535332355935899421302224409779906456973554953228407042491744784826984512954991038573786263466254657461630263495384711662875776271531120982452939403036099705207648669156793623903801023700951423882530783252020253413146982812736682881306876891039945962467512492387103393663245067607807582991847337080465312993056803446182531822013225357912543514685907235232834401097807935855854864242961903436367670131301037848434308659095570511303354202474346749360963383388607818712933747898476974228186464194964959663980449901185232049559999945831105661389219060636211154106888478640594522858462280254435419419793159925379055901793507024106714212503921758770071881652346207761025423171494199156035929869916497044476805688136487540832686302230023963381551855302371412437216563988101657219008449227740738908498556213974080868252695271980894981586549030000371507600247112189739589555729927606737014808065325773441794903741302839609625922374097655299549735736866562096208944999206956999509159907831354286124553977046660625002478871519235839333058446282581659278998123910150297093576327020610557092909359003076566394066549364821032950813164461090848744101922109436332835529243243385096651377956695295180549088565753026266760126658070384549848912293490768548780885095811843794607381922887078064292329596514273966002444540595285582673107125180391330452648913809070817530679282700964973654178251896296709686831495021099202378099587138424747123461232973113286435226645643207065607879027372727785853844646462559524485229480448742146948946557885343949418467674730387246441700296433176987654709970939371174991993111805614331592566884778662170974961828869050475427938433887433269571399480666082517427132259546117935689984817156210124185969585851833549477277768530384354872730018779708106801832235010688192273014193278132408836037281532238677688821461927252828399108471834744874846989432823491473359126822605231918408393069389215465946690546669672292085589243269233478175746929605551266418677787402778660286807697043122239165023174780551084900525909470705210493129041496047575797413750196107389916960080616097739897398092857067475873069954522638414837766898336045242392806889475838516928352371627786857247275514475053365623939770744105489894903234014830447784417504790305822907657749472204996194270362970499374115803047196638778277913649029496446730252036491346114599383833657498307105807791994883535598105202446722464929926188573765014720676137767158978490250131101580682949854836154418005252018726445899708252857257971109757743426903493512437622806842570809682092737756973818909116341182715847467308376467778263330615225837307802461180039466838639086445682207672074030144126403838348107479739929340772330638931140549765052929967223752685279728497417700910209064800462863321983166249266895454509759128984059245018854922344608049768073839891031408015044541709903650258677359447862954270347823113631101322422327652597853063600701513781963984409870094905950336402704928399305982268383867437801432234119714200844285165555132023601010644633988993795515302168229907878905690517806727822817906957769759716406277350161535119690005629719149224345181731069039276965937370811494458261617244627513177023027425779660740908292158715733329408831166445057099046237856913692289311088028410192009261632227775141893068847261512317218371448168640125111333164770160100547599972299939937001440725135480847143791007335293356620856103251299393374400674119104966098092669457813952287160611838836906816362311366005020299641636044833353328806169582531577028975402791990974685063966481021192959295384169681270728083897729906669981943445447115028595803201138766134414290368844208018326765859942154160745871538549433644332507448238235786442812536431214302182551400266484226252448621904581923176181298979928940494494022464409957651896709160052648562464088318822440286046717083500463051348665754475900694507816835899827087865415489468596867866578428276177720670486938050745730117603514052465279605895343947745948994411024576811809973561616263075966905347525440913411774819449436481901310216128479514074067227309060749717217534138460846369363719937236769183240919373827894856449640615990575854599879157279041413610081033533236500381497463622456392934822865736523964730541350416265399401051289946487341614955373421283984502234182614478525605416019301922177099243190488180284764827129949216007134286544674078232974993122925642489606780344345034562083726499719984759363002357549341070816297155471054014298381242426725332996223340828824577449159459235369474851886523473531231180150756978448739010341821971415832723426583432199199848798708113886380509404785917675413014689921199043950644235497361260715837284268831625214763438119883206966539132000828833130324737431553618665824358168148923403764842011906297063517683424043213973976262826670030886428445093243240471546977747421681715383890842615204084854524994464386676245528481918630912886810705394413111641872788817350912804945201516157329236117857491513144959373532409333517098617969119608477022085418343169298964869211282413490158809426822050606143292467912224882830448127898561173182242536376871536408920425890623335560495386751555024324124996771747242014734456520601775669053043627839064873655953152206997812401702459961120138652305242439583437063719002518469552546436979188505995672815516521848128849003181148948790794627727366217304306522705637133903284280782373606921279503775699083501549158953863167367361935654198071648260384569252037996495227321561684029524732382385238683770836924893704803490531933338067354060164889740706579561341762195341711261668162478777886228176871499661685582832224911954050429280870360271277280968630041653525914562658092929498511270293879528444327626663847694289184273665558434608367193885577366873166313510146099201130801048440221493409793507327874539675470542826403609706310309516449824865348290231127671875841224613730068040508497777829599270283262779014834348710942806893397267847124294833834659619784817750140612228035997975522521570190044437823440948549511512217767589048298036457233797752930810576121820462034985583480836586517143626424781690578801192468997584467752938310033947685572939315099868126030168133350593732662103716531824151944776052741321832690069512873616311008494789271830353969436228318645151928409297548182360770045004163992135658520550434840632774275429937253474260599857014569370622617657072230627521185362346033647382125892161612998016524166112016966349266227540578653280503531617291435015478299751777549286342591969523488514729645699122729554733665800661730403351658757528491766284607379237037620734747253289920299719633649967027685561373397311545293580584109860718275671816564950439140362920930655910357619941902408130758816295123831185967212267342310155680171150900625858282798570004931209471363164837805819260268672432486786004420377201276560136736945144230380881629455746728782036027552278074481522416900125995760619362547472644752162958430974432386255466712229008046277249394302683620152359987102727906110658997740322001146055422687217585641639675449015134420298967260200166441248198429163750670572728549253190099894496240231106071088786341441150548242550591319863683707176394280528944271294546839980842765383556367394010448976918517223453354966481678609913562253860638099950555548918184688145700811592969945184715710995773531212146092523100262281549685381912702442505433722153501943613250520304566041820250859430171077369535529733681390313783421863132232713087911005473149393862575401008921524160712945945017133487142412350427797823203476234468497857071064659536936800175138922296130840562125784755183302019510969463951606339379627610953976327778351524725243913349415217044191884635378800576712249289279355105715534955700816505709445356950293058858798208848611202418025704867790152049257063421196891008853669741037004115885975700417335521316651537907836906268129415364809319056095945736604104964920843025412667133364484504290591100039196424065190788798923722438175106766297245163874893921290015130091243792547026636382413654371669414080055551354438262304485697855071311365531448464621651739562135259841195475309472855358057844763862974442597378924270875269862370716916800148692669759415584451028016672460681200204504910479796091680859694556239985663099240283616031094383607976184946543630278628394584404731966161459744349427903197273959388170813112327449962455666458766815914674993497752737528539334008742355305333222984665640151554421057339527129724630698284666956239721214311250723499156671241879312739237568422781128344954407258538439054560763688391553694765538930249375453351116683466434714382064613948195835196898815724580900166921339077240390158851541598168813505653384910738436958658539357791314697726968901116984207632235019089949999260079505018265778011208512751079235706358281255736965430240564706971800335724043098927894865802724632777882415945277698940026543814041778319643426210644882301239444745596099318983049367347727661406541318812026849833662732990172395060754536021930797174792151717548685844294331008570485776232665514023959502848418128997606065356765110631447624354298160860200335063099819439149601347555883227453293972648072923104532216622667219057629299377932862933600874616690999971753209797444097198791147707161663724117318710364170419530633410514660944362779438844240033434896750694243142954419324367303466794840636904805730172769132146052174392282793467931536047007141253314829242939295500004487755417908650546435926414005632211616063541851260323538536320294799202065384845590458360855878927911122656198934256315546767677737795926035938299349084934328357668100384678388716457644072402994606234413121518909052053651758921863947313291579910850459821138617286917019367004813187982416457456711301731306051014904017935357215829312409794320129302948150882333765207175980078504144539283103013586376147917944058002930112583555201709295215684375266803121161458489599111386923642213821356419892175893893046894074548085497467050453927342772600409878476355450318154150452406456477568432725452317352126619721421638714073056166776536396108541301348339073145594158490581970404872939254403045376132368810740764317955320587664790151565073181148250150340978793119247649938483832018914965031602429065859184936840071651578069613136522577610624905780148274450444412688323683517516629838287199773515496123393132733628383245081121752539759276456680954950640005722267129215146765300877295097385721355942580527293216883457974035762576492006180741393847931068293327658663604526352966929083093616676396758993046167245203075610119541707490400320341053295287082131778277344656659355942438406866969532535762663206639602833550136477240738785107428871259105625642215264751212377397449412172379219063681933386806171182431077803412753193409464949220573381850924335159283353875257242210549277286934410646235926966709979265180701322572862395518043332104557213915472901696606596690828755139284958219845605511957904145200108266323639181392105108631758512119817836863081122161826282266773598080402549305735042558448662950150276641592606102262527613561252427003538381929206174674513998355245912751050341342836934302752510600263555429479464664089775507814300978688720751710459090254868673318643762766502069151816977139818462469195866511144478498799835136486920492239521312428285706364612241058655348573021902741358955549965544424427561364936504090757398477871497252949301416335123325633043412790002594651751588641806007581677603567130436577965590401078322704776180404790066730187469247092726392452926099325499465946183307157022248210487417610006759267379312943766010329533411950427379423147947786326427581127009644857395339572151468926866623780620415097164035894973532443787474359965152762964318666752267493053303107540268104918587633499298558817691827257828302685192305346910751393611317801138487691977984343012750088795748988898427284661610994772674894493218427489100806897149780652303016633196748653249790504423460412117101192968427404359782987724146093158712145618147291232841881556412794067571133954306340556773291381201822089961705395267571475713848372999489710805911215673187292836329149345074134260479429345271397320947151027171598452097061150843153066447256008100641924117800407596963671471790291362473552539791166831989197233076859505981301232606302022469505785323531414484101659212936878065180825894010590366519052827318675731955821967297428037756542130630124900422609331731548927224604406260150465273157181476826427700856258977017470535337188522920894673960173490936885974916356009474950117601224346428099513361243056033341829471088771246972861386719065906143824590429698641528710425758619548379593243031608890157753799144070441169796061184380760815017412432191500103803926709613821534890269727509907513697835690700564101024586914608025218057614870299531877825349950040139620992266887367062300248144566358137465233093886113448297335370530094055428203547581790177654243741214563522562206070174299506072405262690504773506898262176825177028249854907675864782630303921691857691441451460771700513655170576008468466664359348144242837052733251709879456025845231911285158662627714536416555770954748834067920496240442232472604744884432954624579776786121110378570200534555598715616513579594025667946198608778786522378522435861608289410698482371522925572258065672589900597139796704395838622993977983816399920054850456312276637862658569847499777277764378173000959993198654385158992567265468763768221516312557456799965914672895654017958057129059334011758117554632855279030162094561219983728852523863400543744392401958333591874915820457817021877032744724750675005034420396650797453476942185767848322531283782277440982521048988011359420644847177798108847375832385067504703574332647374516296169066845215991678313627996920754143914381562903651965777552339540162373587501658952988869564035737706267765557525688194369777109525040872692794966416509215640785203760836049758829793128458735204886743480934917031308667859020317590083516387546447589033243223810011171291260635767047624701697223991016893084277383350537869227753725888696234159634957586764389854982739867092939323228601559717728316543020289725261666939293718900486221143527414332682852445429460664622896982062190808129855577924892284707873054639189003216891854567602009563452212186077239137312590021525036181629698480455319269173611872791833199907667663901683608224566890282389784956531697457358380075331653312935230827015373628218967048544933855174475540793533089897224197420969783205157569204153489490968617176996201842076501888376862889893816645973245800182848941847263045539236677684588292393199084837171469241549210295480548878261622059593834334356960762340075722256521087027017079969218599417338144203902872309280669259437401326359705986679071309414577169112110748644782351134905346931230437638682611608349219979110588242744370780013149798285177959065707192880967981736735037327726960499014906375493115034262299317598794391777617355026147986172690775141377504707906369408968356830259490947633990930395747916498692800869429216327002819181909252846436637505082512230757719265257773853432409653286836177926678316897152080682478878006166748031587457940261906030238420844537618677550298476747919426574120761558052018332528499632002316259819811762668378938607632857532209320197714437337473800267161192260988795065399033452090040706025293955231121338785170567262491772047423299321871168942024296988703118033877332831693836307146869924040716362795869237256044471979936197363584357509677718289277750330285454662373824401861253224351962320655388336353103427989853031670674302283529484585487226716768217071617276544541048453868387974473560636368950563880039545881004935449943569818818573599864386513367168402306802208783750220901261420654196838944268685954572485045328199031707261682586650392897744629316968954727516300502985474748936079873057834676791952352477885279095890702663559665398814148368676945168663776078797162242542787281991609960028121745118869337213662910277988545435776031724517256203616822185180710106518845667081707695125135851719772117976658825566688409979059602190212899498385784941645785094426156917876891456227570855006437562519318294102350079855784835504063998430900520045958247273095476046304833971422143433781520482854162883375869556881441969684995563760514407153652072409607482084181316901277326554812087775789842983779331854394868372361152502882946247293866826624561065191035682057948219086549001721885592324655236343895177739558247784337322005916366818481319590733729262792953318394052613258247281783261833867227234599185516681861430024113028940567338755564876916253999281122823666186191140482179891146976430442081694447075958089729470406937701998293953303425959541969127673343650709031837280847942121273279722666200183604065530334780555399185237126022082692918736669046404878247024174134043971305910355000880234496583052564324399094282698525006027808269193689921478211232542202410386808228930964366684627194935728479104967131814548399775340738190052828214021089438827621548758266150914686929013176959538266279974060059926315130185144997856633904170231127946111568379360902117895537277180632894024292227892339130402754486770561542836290605313664285297096405158787933925883343130049891972810726931785246356383041210853621178718602254794868446695869284377402307286030028383369929584203530856732899101710156500802365723104976092092247115676469835469151828592436374015258477507886334621109728730052022517376624628207785197233012336536413225608455190746704665993006486388488810155812720180891123753938720300073120024186680621863254208693055293264177007102501719513589444618679339998780524161070511214631278510080628772570240812910110689849544666038527427750773984836810405017992125622920389120826695581511048830555508298446657891705335740625368003393677637187520685582770402818509497880533280195666498100182931887023449356649332145126481637782355679981815073516359089540960622898322829932750355523544558094989142730536279415867048329118120835890328219714210692990171912821903039845255823067368049578850667702382506490988845693260900093804568182349898522729027073979617900404743678407286868998568757909572644812822388610783576289696501921537260636802340413884669759627442671568597713038785675068673969402164168398008586241035712930144887957471619333527798554134689113902134379083599213853906888662794925318670909435188273710874573575131419967907996591770680153383679752050778283497099078944682011105395644458777548509881506771897567913402939581511969017011985321411154043742447456976140220769861985609586463059819006174312525241045143763547345227617400375040782134134355004774743964877346285995634384968119954216403128540749617752548239097724564669617946736193488212801748521750890996833473789465680765535884261213409443265024702876731347724267693335740180608466782969211404170165075157667796344329670535844606805044066731216662930824265191554858738634479238145735784680205045451387274356821515761893101987490376952903990962719485234211258063843377597389382961892138983773956645250049696383446966045557923008778108141396010668584895623011814219075773478081439656101338729096168088897761572840678546650137312867405739297205418637005542813793814252097954176894489519237098780338585596614306284238408526462028346121067314096713947962911157426614028163179927104192266333545871231821209254147184761133151771038429709396753648890632648038681954650009946290585979290518185577313126346090034259010902822259939298322144149270876149197320135561491253618028850718137466680259536076461071226167943464064710455405417049769488425663797240653784548939139164795683698375495129824125656008201194561381764765864592062222730542262110669031326682670342338260911866032690772627734934449159276361506422776642370486713864870093335745089169539738062990717740450218852500800706466020555814679385763108047467886732444460171403133043393902007676491526450019620180854787934757187277726541673096032716988026414122192849521761927075897803783194483231544604330175234243716756810104026985878267449947846308748430084602275254897968101232183711491365718760526891101865665090808991102864125121377163195864300728303795516367417932538364952643949828906528517490608340024255136355924983330687712733231981282145678456826722949812792360139593398842799146863918637996253262051474734578080331987876826902720699393590629903173489121002415755717983621013255426898717655469278516778059989298596682712751697891418626573937200080968043513518599263141534371177582611013243209745809965578135417310449393358684276734384459105355699150635105082286096935779924514719171966165004499761174965719558122705362708515035246750797565969268933740909935042248619726076881249828528851965221775047163372973166628901297414363752333225464466777529008838445768945564040590707800990372428515661131620122455081491177099010771007147013786447329338784858903720114201859750624279650595877721226672736534600358461636218444498602306375318832872029076999001896386701360059554850889855248418968525247033328016520716021305091311702780471612581535780531988906107386625994895728542020521692582417292878040250396237297000455304950831039045621492474328671615898432367336665233452492288610864083949767273188505076480418166756728596112497300466644995065279530675886208441035454467894200647339155826563479915984397873547090354328985703025979115059540257219802650413364714034355419267409711588905511199910425588761063684717781403187178887889919229491766466436515662600705770482498295011677452369075329065838461533346359821345627425570637720192976335652843022510569784172101205868536510664446133984446659581595781409494030692113954886703635614930834176969511720166373991542492709300516604348547408991602788528864478929854873394781082546576065601368267272655517624497475883981993839019540617497049082117894214593554971292701880750215310033352924695703226810751748373984138204882366979412475510675560277643077858233798001187830971651198853154673464855023489018189628586138327795690279720301983827658289481232685490399348370260560127788449083018777474942489938892059842650189021368540055836309017582489154681757262233772524542349543317276049288666719172829552113480974048150993663464096807424591833117080350657928890043123057152001663513899254940352803228971153708634206641178941445128284095665917617911449490396490452522247174887373749849048556362070807890560990262208122140872349488365245851482256435172049942014118444161585936478352111142924108044501375450136937194892484019811267437719761565565111878424630655974872228760884127898915012687238138803247472093012254718992895140633317996830332229857856720893424185308747107130818927510216417367557906157900875165568495154519694228470811181731206354752286608810045601440442084144297820949453587668460736800664813114639978019236879918623629201566133352742317714550126463677833041683673805909959731503129186299379410073423752060088067888815406189139804577775336975648885165242890461748020490212065125535301241327364733125417747012238072310748350156781756426450906733731146076703208293264599390596921357620774279532604680078294896762992174752364336834921957829591724167987862899670361079017447356150198643369558656920843515956059917549423068793309757335784786748879598763629789680687792392777091750541825232096701875619355332900242824642525506918953526633972314147347335273210445284369362666363983325577385832033606361256600678280832058452431926651271020190899112486125421979315039472895613735406667563962056839757745489036352721015863576078556727736316544500216767106109104266967512535081617761170854812892562025172774079974504605001608112480929168616861557549738080051607171902535779177985542342033617913601576730785500080748798066771966663363957011609580578830530238828103011813913052850828651486768926358036126451195146870068617192297681179281214289480503567572608732923220961968920314872633509154945319275339024739702781395377009408705512869199903348947382757530426949868774874414338819941478512335268474009606153216235402479315776747115993640236330003125384920988239209732020085749542519248372112090938614711656443003975021502375330011637696968706932598875738271502892974563521468305694065405391827601567805271430228470787809274920034745288181781600437452255759294003615335652450535549246796200401883570101710677817292006108913428993020892199141380463365166501218748885650250614089358290161516403485502537333719727826944889366032698465901311206138696249744516413044868809786162699507667825729186901084498410776293065475947798364995489521331669030856203363103155051891059745756602943932480177011210355889446588588500581385655635910600733471132449594161036706013835417348956269532887268021149234914468277509615642997131942436157624786336897147619270532777673823351681576187508174499062297060414889477480186592960818284143425997960568469957064619398314959118206831140120564667147297267360632736778131919334857810236313836949381250141361276676036137661197499055467535593851950397685642798385825142288191850432597569247696132756573494346503132596731197025291724406029842059979017852142585887814649885825456345398215089446007588768497473723232704423493365826851755277754051070530191834387039764775208590016811170633895595820507162174940997681856303471487413101802442323543153021864575164211094416603309414211464578445512019891804211318861768012031247505400453213350068331218935115777814389506911142266634101878250145669635999045043908873007363336179454839373880452268173251530505679352810257755324739275193826273760790188073272110873173092394029481692420990172159452455826677910798712505048930824965768691175752141379955880727994952318376103556388294254077098665634192815527986191034112557252621900732344651091249996837448612547479295562255053729314615129240903905245107107887447054102293088226882541717283483676433877039542614557807989124073548701219136829548113656772412462201189430254916019231858701326796944848912640657600569245736183020578859660074122816923852453820324446320117532264371113590126091741144920557985324729387404782816142593758118810450773909449523680504724362423609225587972542511523273921395412744576036524162473164094187533925972762374770066509466706095025864852490606338314570068434346616179452157168208303913743370537745779925255335945252778023286093681975314263928724260171556927642620105752241859847998765422159775484062272705979999563028030311867525970606851725192741978330672152457980801438927556048910515356596063811136083179780808051108622499508544681192629344605124487248809007563507040584100839756524283152767286741643810933158090820741674007534705317344229898421928396323967676001679982535769973549317862011406014837444183887959124213173349417066497550190704613540014587197546390035293703454355717950140873261327172768574910097739464389820809008192265377439339058648603154661388303189876547600227343351834979158705191639812920930829097571121458456230086622900123352125405114163171370193042071514812956099467141418556140431708078868587107232193875795973637020020010406057683231452268116028472744676129954245306491497086658373013457043860511651666527568272033345118156362667779377829514898433567960005821179899127042749506700196790096442432659700307316307485478727399853731341433362192012302615705765690792405575883120889342383656606229065788662488282007598825195556523910355624497402286147294731260863580263778134099167074711332003333390717382379615824777823522700617526706546186202113402246847621188372229849718534221940716838778782412145078277527044944510632117684151323839700336570859332025219652573242483454576907331882119368294177073953258304943653962296085789304238688830012787212954440477901229472900589259541743046799731282281845610950756670294389401416984383151486415666390830050766112878891975904800859106900113281972957888004962326232865494065084802384531348934713821837256040655146687099501671291560774160570211596993941464210423170201768641383363653095172479886011869575972957832498311669750286885002658979438915842314667946316394594681339377080122697793994392514696245389211438407547181772573358760152724853588344218108572904483368954116224009286353697964050723202961618451572179028518929011160242902175618384938579863467356080789034244667267702835320573062844882804627224787213968751012457941374773184909168630721561719083215419877058236276502385898853419985985572731662792915197848443387900340692960178519703024270751055756581961902742574437302826888541285733284863815121089462022609591690862945441512354120588472254621484983633475700706075503231893865657698422081064270558374936853201846913263657984861012594773672960374104646476748364348904454173021889487590446473013133985685227813252842894840002818987479886045404707098743123958666747488336337381532680298402325419421806146418944713138975165946671101790927500256098608825762483652028170240002514916512908280129319252887637765459368477947933795632301427839046041846299053689242748714637200242851982362165386253356069806338483991191887661661705837543135885404786661101314145365986411854660100718154054565751342911730263385041628013115025548408790721343253220724499313689898676740411945996409786603341663113318707935761109674611745328361602738873064837626174994708465109646018037373409769237580983201559536200676166837246169531951778392207656910143462272974661305170210723337458001513904422305391499260119172369999394351978231671010603457036995550825796383459141295641561201908789850318554291273328650920797542524751575239595130628477235093740921409308909751535143270680715607304929057356094034501619583427063803875997712331598033911378740194659208022702342471156434764085713669740891113149888914218459747130885761829070496825140864652674349039165641280601926385861674302164695218514377394239802832206680793095905231483331306092323213804905661240795176213408740688103014547654294951089495355968251880633046729798739340794660673347657738326407119592730776031419971051850592909043743792359312670944761979328433929989861586666814481594268473659456034613067266317959677456408532886417619743232221635009563922684157133621322734617327377603963696713075843832884144183059736507693859606298681838327176071709719662625925634706651801206399691084670191599495842371207881856909176629852734284164280632229030648011486935629735298497983836972297738978798922380891363258275576247078116144329716661725801031477875411602425704765324300889461631467192327165276740153349009396373606514693678192692061818474629614257203938654282348906509140591382518475350394623957654864692083030682565662583622288268578933774667793144994738516097333946870936255616601004026492990570444412439339561082817494989059216697753634922965131295069744709787873166343814660638735654244498622394941785663918293795280761244007109315256588856835378238596267688590477330372020928818667870816867269785210071116439757043795949670249545563956781104352446379032096938702124838786083526650782409618695867503392390144472425011656448335590699499746821986277871746069585512455488727050389885128538136125509963074077085123128506774937534952492508427611594086144740229660030788997141810767750692627426014310687745232712413141111611196826849065796184952477220303446970709788725192965988176919883124951977872337300239007788454713603629272790999254684506248129253873979147235430769771322341935539790279186891916984655266651450284215032498388151171501272185882650936035714621745475776281518471552276941873734033164636404878150238132795836845358128726556996423061973812364559478905383515556088053819898247464081744365309700370021800936838579463810292635422681970793193214903067970295630745028962580274603351302353265260629776732596299558819034755915575896764344316406350898313233739832277772995085687112196169776595208694133830490094041270201038454060177774085611450571041450720836720014922834705675262111078450813664080667305330103372942650328987110755263477970003426252071575086658422216100032180465585549353294370270768298915865556967217841960435167739980523164624014752204669455101928122337523625110404813341720660947980370070600155986177767154088753486534258909323294356746007313479506250162314062402685685017732976815058327575784102991291225392457669204273487930549359067863876591547947311956341852740802213326978894381526196421469185295834748111703818816751630882645813447534957059945769882372279209740717578181391491480478651764979801612424683638079344547197964644700503812767555629445870021801017527460203048991911093037617019567141763348773168344829281438124911522159645699161118764815750521912939227505168275447680582460727138406292986573105097012197159061628403878705847946886609111262412258336965901004575563517709727979491210533340995236386830985923185589912104568155233478921452364758148979770961783779453060014958087060735794031894445566627407263024029089011781718930358355067533419692273746396124077921569020597698800892576817542551009633052040982344612257316575225301746124351956606641502991476192323658737022185531109604432643783307619204736763237118568801222907410894015096271022646410242989052204532071351829789628087757927271385312266894259498638623867454135498312497356951831262354118838022819667539252159215340375640956326034819154988798965671376827752818605515846054911344846382062533180632748954646503350894599452619527403960385165681066347469155627866453666404443641227340719598511690667577772859873743301878747188768345942981148588676073561660894827531337790177117263044807030752984820488004653648559963621633319534765670496612035673198251400151840050905531123436019722748400465537619104329540614538192222504076247946966554528607717448002165743358194328394578249228452095242016567991666972550176291890338786108679492669581556659746054498734311155633844702278130086076902478129660559516116926087843766855616840106137312166150210567777954067585431683739875731049942545821617116567389141678945395102618772332661020799224782862731356088605695886606126241925805745977458177070446573856538724736887416370588923160185593713757982794848992406521563354607918663933464085267059654607065608548260195441141134318840635971236850750758001291128310411449304384476700955203228136860461316071111950475603148736558098271395336645713482809078024729740619125764401940745791089920612078753271235853666726700807588014272488912178633245979263493634687840680051993291745132783341111681240931283217857678410472658925670341279848756445947482716961440459633185818990897111804842199621240768235734029218359622280044485098709407055677845710381716148456301556491392759393034042699932147619170849433800458287223294882338839206220874919745286649377949978495868226746214231676264350412623861117930718154586195245199125937839120668466390763539230118181592788969551163907095276235340462643059315421954689096723223862623254141773032572326246075556644690764897883502905108254044338817466010713451119393528513865337950225148270859004252941093684872606948378543811724221646725457405255025549160643047901768115986737702168556685789596704304914205359577530300277757951980740477718784349317246676715884096749884760991450931552041884524658973875571101688378818053152484955887604238514790071835708928589513974491229336395003970628053469740149102599206450919870066055720819468340267051633390648004004350661934424786489263594537958425614957543127282554238974563388216724656289248892801674957222833215504003831222031774625956399448703767421296374420939987461445628704147459201230681399382145626337099077104657266465768903841705952591375515591505384994669612988076130725179422277764567500733614285193199870236063792400701859388403064969515968326092666847976237633362967957896734344806244828941980212635228048668729554880036070880324074096182141649783768459300653590941362499472541164533183514419872690800839902729558738861101362800982270623579264973010237606953646279514487228983068775876068536745450615828712137605470300569522052711340917146045100630866301439134072269378948087377597299099953220297757529986773805390377180213881745333586695184599999211205060055790993216069694600078195234489326172212474210629014713168986685999076871564692130261658405158334064203947745145345221287963057710773241632462562204493927486262032245460048224953634520573164676084633702416897170535010128228696539217972460082671411272659465413348956585176135998795854975349037722393161862569390041679618656309778606245524293189435391269748817883706206129695417197057585466114184111972923638696639915728855903354951397492809009373303973732970704147657296784257176704768607694719104078335767314774938789795110806495575695573581255435460409813168750132884955499704449484922798069197486515675174587419435056869757232859127063625414949416608305514718132363815576335429039973157351421885067622536210135420668466861618552458006936821183969220035379277525850045380540865634039225484950136002883899385837985564068974456446102098673841325722330129417700372441688580228515997442152113248854923819414406089974459898772816188344989202676306018719481000575718320341727790958676989451680329434107929576454004150402361812514597849877330485650504969161485118513535636415977456640992850476875457060912398577986937273394721144651111949597090565197843630130534690123326332524261819588455807638154730933042752143720334183851715015771979120795210436489898206191458445039291769753737482503048367272986620273303362533147828037490804177961325917737846326265234873018570469798817059025576990208656626085178623659562019822042775553475435240215005769033723415653392777225431823478752836997812272513432957337206278160127950091126519539132411274251538147001390450706924481851047818478859798183567896044767379733202105559866132476208582340424547982230423983797982709693128350104870595972534144771523242918615345457931027617340364706942043168127311410553033503145822387693268984121633061770093262638967503151178399538405273019947285845891591204701381819462959519147513777808719584316831696946286753878627067789154234525212160133808621428220598449440680746696400084737598982134971542853016025846724922330275719037512696529982893521303323321339060720725102958908604874380412111156553565597952820253270915888234944036013354476463133885407317164045311962047862793682613926273878050034938753966267162009262323642815514994083171960155628123163132493194483568072567258979220336031326494273120003843758794192441580237744292070274087498921513737805610502325469183807393642051220593582962483878865567723532307968042307179147562590798087613505175466010358705041085002658403610600533246053843749128592847788955670372723513970636667541131435262681013470723382573484656436897876072068859600974369185352296051568087352661286326145933100927416653783508715864398364231865098829493219473632173205979322461469601933488471690206923857440727938593853437172037672208738614354591399593894199157314142850602232272698927607843299232365832705578374236857550408244945737965178546069899916380646341356295776929454919584120253486692119331566690378691688291026635251954866325782793052055320487989670416571065169089045187324272846174450490637723635204645114644508783457068810888842381091150055687790015532278205880258945395135612540568247457309908493523410138133755641490768143649271161351398562393745123527959240199031587606538642986022774368510871880630122123155103278891914634422162636050374135244401982169257834547689320984150460547590101547963808795021866615977978815151568485989252218678297820817698471096566724754376540103978445214039767276974426631631073901353850714387130362741039762358142800694388109884387249171049755571716843781701662621791535350775202671064497837661031079489502500571949497021565706358719634151611855822048297944089261262253777319896021242583852438341929457591321300468511135140827831314059051024454315345263467127943746657150498845571930857367365257070764785602738322934705296130518450058438228382799788083680172575462161768189718498616749025303099706549844979136412295314786612941675764126610648321761768304669788041342419602593894355868132282725143125674403757184952098841533225830735234785825318321402853922855339028386174449539176723856182198046248720777946169567952745760266773817979437346711095154700265664944142324027861673869066763247203005312183037713157093410038726761352431424233882919102428017026842953986595927516594628434049785308503823049441061634405711647379377628094389415917731215100576958886609845132454871442524520176102459347600568709110262522074375582921359013678837339649682958975329076818495800720620606022269478518442279635977303688670691319020083894757316604142619865547663038566832057165756346544963860245422809675831378675049943687900705397162323221301035170710947861977773487399030362500604873433475057714882437164757354675444921662544173569422174515191012985207133670216728667287691322830146809192188934956095689270915460792443793391506227130221802005837626103669517989603741676519886352409530986623195502917152904243376256794597681947134870847563519653865104948381406417676309643580185223980903938917525237064702971520555832956567057351207304542700890538046925107373689080685716201566179880724953402241562257029929261929396959985863548120356055811900505462192365861599226773298354207747312003051562116035879044231012003568785215775564276472898440217359819032619384774074433567855677138727414974247723394752678588898830213234348290858128066395614018337448214122025867009256295889668436348820266244279525239600193022898211435973117112404911169717060310161405464982960014867543346607648160876066812820524502527178757806717215696394990572684759405208406217756023846426930681529189390080780910444722338150834661543289165853115391942486378232019034864688292265758585450417785190465549929656997590676978796117907268039445134847840634841299147654239320411152137560531822188145412086067143992706481514737057650445517415803991892365535981367786243098833683498593620869837872153139573565395316594011868235966846614420994962657267625915251032142317837816635653405871065824127476130117373961365424663441381839983722937116702383821804780421554971838548166171581854489515888970471236896934788487854818703064503453887700197904692307842795399919788042825830608679504028914853994157953896889682383445636993846841122276875762835155239232824453917513806471553690312949560715656633863386096578688676835449651104468193492659110916992381077831556743208119982712965269139902701985135150886909977133412249885575400817050627971780622182259699499792747433663937616283362384568458216738312376635518409602909956284879411568734711186797908714864197037457147322057973204810910871832457073444290677976926420351276663352632097066708014465758784235537950715905505636863543448810961461773473535087365799832029998863868625174000256889967563875957361489025950834011719031148445043802369006873160808442011078402037813188590030074297335052688676006316643934984010160070653365220619470768711934852173762002043052270978828146207012438440462833316647467680744293615147717741772764496674369001745109148846255387579442096772838779118155917336111563749161515022400763295966469202353395530445940607920410301321724288158349928344312504033197635737369344826816966536338942995295873654783948554457988264751568934929857035188875041060542324798140461862325085955574826148792517583339151378756692954274272415039026791558686257006339753830958657533577664445640358681539881917690296619326868915707361949974889695664063075263066043362083715191821014305494992732145214878765475514297822734434750721874695579876735838857714970118809573004746613119290782307624915085288019391224531218725704844179960768891999701466044951433959972052891694196320797144679680184630201131439954512557512859312341779790656873262466834428952854092568503452145170266638241368085437027690102983783510390597251691456829020166021959010397870471116583179408876635918249193900590354663267077105578958661628920258865833726295500306254789992941287543845351013128619314447191603747835841832004603355861257833402227719623494633430628771418180853938995285225154131779471878971282190979015934489666122320654440775217769906902894231320984826445139583339506133352697108692882129879073571529857149275079466515014183027633954916340462159692377979323422389748997624792495630564048240463544583186567062529616338876478950353420013125889871931135717450564990866539558788180484814121006259522289331260444981797452224829165205990943485238952531377360083829882777986455920321725575650010801148931396540032669811784975880070651593148669920733902120057780323907392800258134946049385391423420190300686407725783720903948073249399626230527779074446831426906821138577444460926533837807833805627884871871807609364109586198068182347613101798572312151266202987589637012012781008273035912252933857779997477006457234186894812484613317678180137877724255504558869674603646968249798204649368686338948927043109895615594561870085907680442877425016168190698898706955069279675971395444252548479761958589131817773354942174865319065202457002570570669920653699265309605199262879603193145316246527892203866268755066780241304914421209143587540623580670717317373560673217549693836297026138232630216104145458165106866510908325333304087842161688067532697502874871626670791929742576845626379315185614263086238896881652875334940676673428601859227574319871818202927517427566646049736694638832816271275591994888379786482016319581681073613816610921777835674375538304099888272319438810660128036657184175014307203697980541547325729496392031391302872077647501081615413371233909210744239895736912797518599003156615015961901426984926094249591979530842789501785929065584218697266713296695794935370838647065978693834649770121397892427760858344639143214041996808855619920688746186623975697763580735953805634299185519428328391875652117732630446364644776067241072916575825480389868625500008872455520362024004411874619347644693416171718514669892115373167443721045977476682483358139846205663719853753360230212305844307636183864631822446238443992471379108646119686912185703532979184949476065759666590055139442868868555638021280461221948159268727373583167935365239062395200161003738254087873449502766598538743426608086198745412545679143113691799384480328460285913977908850050276976424762111306390826677709558599810078505536801598615088579964889655046566571025886084374857497980490090247223819468373347930282561384001799647273870550870846898122440858195398241893263936217798100438458395926282503291060062791152578175613397334782520975524225826603158416391882253439132329863276705084523381577391675492481472138418992190028075893010644016937183685309757556332553673978445283360097648727825723182557264119013870858209870264911234867373429314825421304358350039499439489623315814823357372731460252851151288599947576706034527241089317257951501608731888865356600320927982488285618872579812474644528856415984942093056745416226719953544689537250203466217851538509531200324149179044389417033407893347848658087260962006413269257536276856613220458171158394325758008266150835565249745601682811009992189285763922837636624537074797332393469121097214062866289793952683262260863692242374374998075701837252626549180892375053802297706737406674253801763622036366599118536204576593634769389580181461889523420325966534339032209558847303190832375267816417606289944620215828288947382913840833466687110888725868099860032217900807963461811068342338372515766431872984417572524315219058236899138071219389800554166795174837471977523551280866054488818936448250870912034867431312911112785402642784659964122181535537532184124842031293040281650081544849640156512617616099804328447894088797058811218165791973696176205907218395089401247454594290203061867505429834651069659742352448493944289705402135041967514375610239010581039436874400219914129483909215801422645201379282374841551386673531437028924145751606747745741464422606405328921995964000657537615011557875203475611702816845247785260181068275813491657117543734199882806575603075874257453480846029101324402145802574178998944725462365248061403095246652632383858886448980047545516476088465829225630457797833349089146195834318791267943470367288136129426545176921581754570242641232113750009063871029717010622443600594261925598449562532810667487286559152664606647019806830985376612495158414832510256894946264362855289765620088848572001673548885608547437107806657798287730188460214009096844475104270452275936666641603968439893416196786742167330230267052464195326878907698501974401548187148434145674438985187236176430108090977277312586549876300495859218582873699013099204487295545935734220018774759847148452083733528227084524243125884042568785689059201828574064206055650491738512894623415961729026594101707343500196200608417797767035483956360502532953454747186966029040078995553166044782404904977124946601373700694205275094883114489059986338981591890692467897627011962890597470683064995472747916180737978209414621541335129536708306465507367880167019177736037989208986118482026838805859039442295552038133615499484587020331265736271970801339837006691915886132859969420352140955491805059724150466351371067426885512984008067423458412070484682584418411618854947483635317757401274674602684818361039982036986385377189526952682573862594144424257514665642891065197543485122743525361884613378910828375997347085956626854690255154009076450842964162377435623183413736105990399497568308420906456959226092311195232085181861704442658548254192106269910486210805547009233614834387863144137343582238480356538123953405694933112854784602457228742503753775909587726712694123604511512071040887883728824926833451870488589790573107287025933171197954330806947194677351076541015691817127370514803330779128017636707530699401188602130927434534966434955353961748596856851155893026184928891109901562254848061429269830212314561455695033504135760662491244990000687922730305316168320565760901082323570668457913635304775923911937459586963099366099588491837513426080923410292502685166244403367789290085509886875704760759735506410546216579679626663797289212762796949399798820786051912222402865868944214537179827763530341210786556313946873061119723597562773653124520070611966410344262922878833198923363826978028872451274225081443514953803685507883221993141012198907779451767972048420496372210924067628291717979320169491081881336844444887774398373990481492267171375135762862543820888814646827375032901382877364294090346345486276043667428860284347309051993883689996443286817160992316363945568192993428338503136266861362623194365152914594451010629587918044069575932358551266825270078248263165913970418866471572743818066425669119823153847138218613720856557372058307502549618551603722492200702576825921990083546671386252359161236183182114993659244591843586139669517929457449851263535060053084404656312508462039135279235330145673115244565293856290024671143536428168042433189061988173229012063333754556017100912521978950528240343295577105222569284703739719611509474860927512975248382094046319875584716529330811556286996800860681618464018668934660147794284797403397563450978554963406999487063574935420025075210980410297564825899761750643711640188061402495791632816315788379852587531694924377848820471131033915672310853967785824553811917858504172253182235922403140537664428416761048183938754784665837223811440736121538839002967672323138166001363453302776596759526468484921026759996844250784065037999660469066221643791764857999233086615620709297909228478925803867295906154957064428184945796582112120628718482719562772308424139322677771852753095155074539372133810322551419174497389345878047693101656868040520188125166848806464042379072445266845791861327848942354889340179815030630112914722587327253980034352508901102164652989556238014588273791274318173087210524043277006774421339266410678112881445156406848499470460310750279364275818046292219957181111926928231857692177776029780337255464082802235615452588354224695522860017468140573475623943314675014449652911221037214385258104200992956100096567337598542503245019172521475517927933347384554387437860057578455822209899211966154592893975293795221202120150701121250023385188783328247108706092262829118669375004762607929875980425607595059988419475734647797374939151310292338791565320499428363154755402682422369880873425668381086974184884297332394851173206525441354369242578849035994061834233838839982996879854313118338262304328285670145051936911701503814429690385253020760226462537891356396501874297255459373970092100500277915095900483880860027745446488257901363323517210269327016470310989618720678502186818455245848782029774830594032685658136591163541258150248026694897785769368329496482175622028209633849774648728146881070198187504938981632651412487581165838719410960024050627398730142514555233942135409179232079211057057290203047486808730141635225013107535637085604092195568740105350256961851514285830373069213604107691030363061406081220199968866769023861876779281871228383307563502229682567805232980161426697181511902829126989962828927287641741073186702001181176889369865141925884353033465948568704320376432511189605346935284373721515677557996571282199756604608009707874446679719970890391905159354279707677492819836912293057310228479688804930989620277704056343492406585159683466751502593960965570393250008827611307681074768993361758329284625250366791104857109173925870055250078051101411826742121293974864469042746157836711080900776322383105141567774890169267721441751549031350218159854796890509360758342829989606857388999692128745272833186672723282364435561203260645039343464638761423569328555843136666511822260864917814080135430715913267286978314016627457040299812070740454427766155208122829743126404165860573951051292776603352590794563635996479229214824959450860256986762359114958475684774155021469212499638777889132078489344412786682868378174506935654848428509389869878770311176350361208266720586841050627423146735301501257443286686061998065603982226797852144984764020462422084307173792840224475705708715199487665665722245929981482959512041724206531209424781363776282633735826879536052795845491242679824207023771028333123093662240152334544764771846100521842412867889078539392257440652340593727687575785139335812471384684175452129912805364924550389626413241986323746858946571262825257250140356487652795690039244837613090732773234271546549664746000513234541260187394140615724360154805973170668955308924295213763570601196284082825183510293474608358392316733947615734214870614444491255531081957496823198446094606859964351135112141677650499842820475951239523600162463144840779646181334816527080873227643213001941446287847437698222198676419989417694547156596448032964482004080591055354719633249701885439553501669613826705746223242164494609465680443847320456393201873904817895201230202466921043919805771609430762327676289749963765539515587742192937999496202958775141889082976492603518555098881250147611619575268573856767146655334163750771939776107648871223877558781567200268552349676819887250707711102107857856714523010220849077879277671345596340103198950367394938109723476607456679512492866190654482508326261425472300425831550284041721401987075487152950554812011382434411706551980735322233809184754513951924884523377521944198165359869062526234735088029788755772001529505390062605939148369899153259159451120583599288406420121457201024994904945077717514992853412480077767091451075724768588769902978635196961695211800537739386381180081131918871232725169149845534252270668408685088696449578179902189095289617597723426217563782608072199174121995783032935357477281441107267447048638432281094592270983046803230903871618772532460736576271136928658790489674584785473649805358920666256858120862837466888451261751416031344412460274100409941822756912086963910588464880058909925732749225401906933273800736966217257047231190392697675061097666884937356221493961436799939654006143208253322094400341885395363293549779537931942198257846936796064313376215853800462594695594539891895150376118943429696034410511488399843732684902299487900668617202058355030421897287436656330459885459120189145248661568111200016194830919281711003236528834426930096503958333955420013230983151070320517776771976147885588930817737549354655452168625027196223161863858284723005434639156625962960737716416836701018736810361918209075458200963657290582740635347965116473254448024483833072242254063320072416428136736552931461794938738200888905155982742972609095703157907553186152312739098473690310556729168291325079140487482308301271522461879252316691248163548283583697734570130778640596124462917661717439117598777684141539841192017921446013184402846716494403294980131412661363323926165051642044257539963780576940961030998870767892591964882233662582953786198935498930388340715129445368597686417649746231100010655717902627682211134755528694841652498228437149277959958804401797272523804493435388977178303420142090760512482241302396158625013308634467129984613748701269952357215037660561470205327177325226064045808420143758849001016984069769466657396673206835471308889476279219773136686506791894606229157487897413086289723406730918578651736100891495071247567649884161219653176765840222147519724310723114203286951197649460389600406295954096534081185661126069608909443759835243737059138853471536807305911159845961385628375569312223908350892535309774433964478178162078131356686986935931555439420564019327223931945034819278090007047546107892937975880679591102511732372017679787687908116792498530778631346168166288582892460211694628147433648496500652088561937895406280035307397775286432953635747357419747029496358157620058070206205436135269805922754631790121047020202844255572613198380401261123723917195959883669040987710997854653185324884717476627983082097931461195472779408674679390487731490820382363043791971633891913994591578131141789757563856061059004433979249406859182545680112925675963189959360511116956470525632282558095448334784652475066346161166696999322031013299209199263451162149067502589577701857384348661742777748946383798856087522203176363362751129557358443744186360133168464682877712340262786482912892404159043516766516638508057949761592530446131242868339830681549464670615234068474970475408995287777630233124745909116825411027359240535530171105200235374044371349512628082993703482554027384361913186449689723608375086948961654134873987739550407976053404210582431763937717723145030638771560253617138050211813699784380122610774133931590802587668047109740095749029359168636751819968295769044790929653148107797786546674818852246917734088328048472730833034705325204928448381996599591731691107355624189341501954072434139955306511785312251792118240242047054218613759922035246860820191884499598938243491896158777852421352319946892698607411045312176931088395715645028898470238879683964203683095742140361033169265631402583688321208962750615319428039070545838604746564119347650317857636665335427801916692081671823066770886768186217834157265891813355139042440392030455348648022844194917309402977269033403644374997257993521322740521917318778803012309265579572208929118706286791437560039447944111254314775143440440006279363035981638904553754010281066706320385478938060784270429660328911064251425665342820089134956224885569335997743803753491344779278310934636249141671325961009340503204227387024309109927212580294585264417877423201030928674024239014847367835471872411029776260970703083037645850512018803053535831012284011113468888515379287746032597854177414504407584497829870384049167283730046452300812192749474436438383623697701747673976773052411235648798936090417118914289736972573514836154779812156794542836463252855065451269646544855550973281079942270108893037792194991797832280470646824350275935421595690195978632088070997047289049910254161091743425479102805836561521640258453646509263491808622660420174988468387299716400169428635288269779222428266660906350257852917956961472914187722223063508433669972672505037635999563176580540295895091854575203518346882260358248534198884058163409606468573677348652552036750227050005292875468550895951940449737012379984338672959285661441433570522622775158543076109633975272275616043697294737797570433301284030181673380989813986696405701425235722025664930766084040682810031648609133011024885615814298599130778440819885320045684744906123650197452949659513413006913856558794668556518316168397843521400495398358550552413695785980259193045658491054256405837260711885466792046368359154957739130536563618129121986967545518942801349914708434652696484859046133140214749769400609018630217345586754910097772103852053478036925375016670946670735583551778721307160007541696047742320164426506005996509954432666802725135509613095733068357736265403858867517167153050627402008357761115801274273962845982214560712370393583566858399362559452467954168191897703010241863450287879481777674717480276319908518977828326176360451153484751537526538142996255965549263303839816095121990506095991048133509685402340767469000893613933218857270437743308657117206278444012924488394330889086305609484388338380666773051783047470586864505853768530230721347258569253062258446397575323513230328454842384730398929453181726700265641869192657867109845900216350804698157238804167364143357637736276689000112067401777949066516342192946962927070550563071868747882607652145041863993144928648888370592171438239232166141499977167449009482266137397655410501642751664753624291450506333302593396817040760922801074236882399345115914176316022576914559969465397838640009574113054582344420335813724357762794666732879729928563367929871602970630700680797988383890571842671217197217242571720561623933865855878354401178059177440032879479735215453317252356925558494604032906986974289080157828876865969367838908462323771608761065095394974592231114817693307216541093010993679851191296898687522365087503071525953251230595405835301591777678613192254111347833797991047003962395207557883320674776896237996572426900978296222134416512211525305233716969741603289710166788048517765450585386609864319742702319444409182597174192060385032107497584520060493851175662624427345895134598554030033552513341868788859824357538299079444380057348090120599743607591624247315788206635212744931248301547466333694536380690892181865427162378147488196368817403270975770294258586478544425245784948339809351859144479288451499317706246685895136554733769373813271947809874047159665839754992038469014978687057511213566780543841185349767790775567545182775493953846155929138673406492690744092400991907262193316271529283436541545343960544465796273299356642334637355901602006869081672387849960743928350432155994925221418315234564935109877592524485551308118113045736285211057256857651362315923739871675602358507404938461138826299643364829151592906475226832637757255856559579679996508088193356736921262577951299150311778785348318055763481914663638082126313346196812545498938443958472704578746101575747217090324880686147313100493213880290077315349417785858401001573972170955894022307873114775851836343544398445808069166629863991878757800846218160262490010065972496087109862268125491942847846745361090824818941792764233235834778301282047829902527861809189797543527306064803714568027665423742183573864906463644823775917524570567832587882267559178471100954102919730354702785742001875195351478741039817354350467973763020893402719142278089846058182887697664665134807345699751865665962607277509442357098230391613170200860390546515702765798737566680117094174661901229686103258800578606905825893425709325579539882812564788333062215352395382755673529182850052777654196430148932205082929950907408612163249387505248877429779553962095569500373089805419602884387302831223940711687616730279794080753251049497562842145384275427217751157850854228464429057294840965389963199791621559006760106536019191713126949941100393325879749084111909585200099570851353302130855010610124458226157305933634894223934552089858098843183213689684372851123552836870927943202588821006125503436747076728792754261095002334177677991197430557943101533004925873504537484227669388786042437446233268529124592213868985795650580741190166185385570747160264564342311707006731710331026966352482917860428616080590660488994163549999302905378899885661411971144098130460354954022239578100061118705580287204256940519780750608416936016534037180784067017424510750460837710342975596245539479088312279358379784311100484782874061394929315868071753144639093461226211704347424748493969663833526532703813335209748157840910735268572726896184730592184004526453409922429519263625885368585375694969996847145741757197859158373795946130176802107971358996691481107238535718780070591487000313289622669090663357935691490978484686056670094234677698855428549330536775154289017276608656107579666929205737678854890996051234650609218496648094608231936762709260754270804875445547696950093170543168731549701786405493031617496605756503288310576163377320436401047291109536335670300035535045708363218892487909942140052987535186535611723259415566868487649107807502633120200382734858391596677083565134596160249106137956822517266858182910172868664999167787494254882198131778616171503119050095481749245920294471428566827707771364624900212617261828572916477565407785477498094668446477756994080163807771238671984713423739085177583193180099835099181855653874550794846575621538673952449180629476719549017734929889038679926316507102574197512411272789753275459444852206851800777682778018167535797267579187171253447195097267033228041579951147644673151868722030488158318190020667570563130425173306615158562990528473340719806845115319253936199596501738748369902817834977440227021294231069616925057766627283314218002119195485332239484415775686325478978823213225204642359075859247096501538512795772566896710938857004483178079785087279746057870516940494537558819210434131703870935813175250835521401618866210622779488490405157212527506465757216643330067016100072239229377175020631420124902953723293478477364627016065881038157140594598889962073196565710479372504877758361235810971679305040418388775257264430830669176200055133961689438201589272568087973034734841481376386900512239955120075056831636807099528301279707421209335055705679351692702675801123705578173300325822592233444413850591286704253223502065634017955511977389935170913662219547229714542450741241050560712864217627561590390271849206809343445059367070520119060632641820463871510239973507465931358671305422441522403038648593496534743164049539696925876589392890677375993866120796972951279474331023009050080463795285706817788100951801913050437996492222705821634755826723201585926036963395327887619614141441430345375979690313032549291633433931819654168449771025815625268858810739459216069713351925714364328536323485738087246275013893056538194524200654442951456756565146812446451824205230299183339439044152884510075278631743013114261077120469115254455320957474960399382681096937531037058574173121911333121087592894643304046448286432956945064868751887182352054868163371834367344722446164491316865995592735932278975050799069625992107666730252807138883635893671235455580624636660515883358459819581473210773672765074062349544793777048881118181761672578077685253293411050616669625871541124452700561619250027191983722205193114503659681633876079212670450710736720439219246537644514415310000798748411421701860763527901157185037963200201583583590880015993536800643204384134023723413600935862764542899075768889032559631882339278244678879494908851100513448085641647570491327235946437881054501219403679849632654736677389100590884424726174471087491745294725229562606807783990728024498643788278660844776249450161646791593322536638781771288581977904083043649220074748896792078244300982821209553812186858535317833255545438319195330217970181243322422235537620644290394295672564622665240907365557605095440665602255072041568043031971397784608388602337904592618264140535532179211503711286238020840206965858305281368110375156067434120612028268246919540310235278637689699821097273681578883192401536482035345489667214090570937526081904275330781397459224004073216121958411420273481624399283762915811437818308762733790330732013850111841938744849248156818199207987574204114341561495269031362153611255445638933576663564942166405680591899713426918790021882753832808391499622201642239230058298266023784564293400834366990591450561266192369639424938746825410982076247450092155741497973661837279703839507794626335624821811661450908410435055477729847438144044400677978744561130181268334328764181253525767827057986881909498172136796159948177456370192319941243238154976196007688384160717667762101125025317617094281738757709178736640147904273882136082122866917846594100932190344640488456482025146690240016185285956806589073466477586633745323619918794528028276667288384099512298557413732485220460362552408154102572080841549772900816224125964206927692939633332406065192226692955680114297549351996275301056579885882237795739731438057133781297801690521945283236878327669255602316780494931126314506021987478124194411007341409675835918986336979353290568165105351261419744893609253940562188406161252779529543282758536845051622967554245772376923519236718387524646467923065021080644670757935006607418241207989099587144629164063669618626017872703901871051825266319977144271914187069997654398500182045355623925311584450982400431588080759688074605445478372252098584964547120394284775368546206699979062641606353926946655436039526404338254567877370660306185796474781696418169647740551900650983064279109126634024631948909493099170005202681429141544065597609143693116894610025420282851400248943648746728662648351387495009083791921232607340218071106410872709616893706801673976059311471155146914643319942320558810091866580519239730387459455957214153033028297290436108264612231590956056114804994130132645286455270499044031625635477525732044904768442838013549605306791826148281834690740385907460508838721838456786184091212173760623009629263737223884841652961429713342635114158744290922431374604632546379381142470846807072101905103666680121486018677544086465117792790118813445601990051520563076503826079435306141265800398772155526393690339523205481141788939778961267329446581189380451224882321636068082699432728618314023243101737811790118736892978258055883540514659578474113884741805884960675589917473525362135983121316055145872691139184698479351748942040465323643679971007537181876447643890187253202469388179419452479048482121514480953652512418848292257925560309303184116208303810064487880422989156669655920537311352090909207160467168353440763410721550433373323663904856896583128674347478303295781282279146801178380263066190558845532512284478052260355654601366273779129076896185969947527067568537042802460247432622907330800750728936798968460715697070583574531419658183145634604180246577677240289017931238099603468924297691852401465707280231608933640948854159956735901512589283284099276446830397135856581605766115968752786601346050683589921172862483313179630776975084754119789469628312012411464272979587895196989272576613395569574415496956559959651847200665006410237751856288557578060836904652065988234881750014909324835279186079610166867098717444399369645906649523785038934581169559634358583556896217037291500881437680574954864252561687381890586080941869538314019083392736379696036119072438318444219741158112902824356941461793899566909108429423723638583244145688471433333842847387337232726292278787336538680386907952851898746394415817539675588010710096732979177795203995323553659322175481991231074164002120426310551717629684273790642482257517544388795366552749286033455992561607771282638582837951552557878757572863281947824040964527159705682981740938346668710664386154637071147038046260561868046722789239141302566171478783456490095018123085875337133433590519138344432868245213388133340581649563212049510697446785558500778961042562535727226693090411245642116526756911002021834933778387937389484990323518257181222912805271584179817898446191255338291952600113494368280651571072300906020274972950048784329342184717061190708686451603766933801737656996513559147572005250829018156216631096144504677316017429519943126676787653848586822004829933383112290429760584730042951544501056922416677096161265376137692502526146522020035620119125975476862185634599306796485989493302298818048224654137777812458438594574814401870618065782150523250971621726868123051883650815896619789156282031247197694807344555201002774438661341785866003619237794662433721800239864080782111556085620004339167497723306815129773802479040449619208753480580473068043890902708581640148937590668551186032199405003263525521796815911924948518699687153307961407209200263846596050791160249808543813286624273607746222483015652958443619405539159363175339713781143392330665326490401385264609565659896349534470679980698991425013474166352820387231964257653319570389956641002432027887241519737068219348915091845692164099138665007570252573574990338650033974299269366032570683231351953932504939249730226933612151919021470732541219002008120598072422823451752148056775847685030357948537340972275798066572036301835351957315282594682117280055105961583725800140611640506113256874264139178176748394089967132934092561031259944387547762859315192276733822747780812953293660153622134263834152437867981938230189594358989581629986783253604759510078206666872501779749488511529657776285488910438861971724019666847041296057900768170029833009427622957831385971118286159722329741718020008716760983341499145206798674078538646392716816179533607406466508769310226569374630808276756415447676945139580571008430945544325017998697332766098189632046957543906085880002729079988201110198334393558014817522938108341677702790334313412587280190652285626101809605984268874096587933902781721501844047542046567843447320490520613236948096820815319546873752018734386831080148545296177441874081509386666829709255248132438736658897782505877948714556381597690420675801546748227947782188306602560511480059769785317285568392712679153729386748694427255784953563214483113278610251151154070440505508504456042251874568767359419577668985882563882159210954248511706208148485940862337144474304444877253079714703087287317473700528792692396655196871972601395746010652450643881071146781022391455586585733177376376453598730563568507708414613829438818177312424219110849647281906992588780730351128552411645625657917173894306948534507611892414682288119815101534706788197239492713677604123300939972904345384865027310880589397833978390929425179269317449510158318074914457852807139366131400682185342981078589592924355605197247740348214632435042118316279248577086485174779045077365967983360232715116453749824230471830058221890432024210348967914865477822493719495029165290272389390394838037894630127259608108005001765149920842731652636444435670023163330357971596227718456515699427649020209589799225607596531585244814614616937116802086476746805868646715565005491901383004025663702619005019997485321076884797574946582109645490692832597843019637990947172154042373374268930475698339766429497767038784343937772724863650928312008969041033143848363981334572353259077086361259711611834345737591314523196252104436596505195198243627522969040094150797008905427244567145110927008878193268917861804233927802453322884838962890992764296982623899857700117562669617543931901204866723338641784934089406068121980019838917334815096404954813210326352622792475067190230545542315134262246864920959807528413256814497422266639165094123420269958788368834219215669502813222560596559464975237273271481867255046149371871134311036055069265238241385781527845100256034219623479093009252606354079406239677477594087517925261887120368939038125908891727186417289459219851550550898252538149332384443294300778025907025221193713656860995170487450404467190806752101657134419985111985799372943955768201297275076587624798881118450421908044334438008543262693130141043395787657423647563070253929034723402292037607631016409734747616633210290280834141799666740979074608611502953464694749656302246433681756850398999973236176623699442760551090665611740857143088177203225000761973182444565043867569663871378645667986790633507135491841433117719532219151692925762523478429909101833880089352317316459547021119565995299435847158709238552762149733453034659418591705220753389372334239639644797848597366526856819407719644325238945297838737543110264979687768503638069231940308792028529144819171706809115014064647074586052726400540741991174811412824918697847541912643110160543670291692515067833721435879044352238781038813715108020153162897450297534028184274436467719529955857092966367147873147641905569490017336433345602411836985342366044625036575030515390638090296211581672432391837155451144957381124854851552516002693607136878186248333795239975208616190086266443761752408633118330157613232086572049922026139716229666959414599180800632306083497593721474204268349913910881860948658918585690069557392119495240589912448282318436534318383901407513917241634099980952416552839655481653504603066628662400910495800537454237698561569388095209519964572070089728912695513712267330945887884158696599695538832877415060123813230745021020496300314784683632775980035319028873954299244473121238187615657150006829630565609658036356445504522844022807457418273109738374111614424642275041531347738915526073956889459022562852306966507658203330275158210810481135603532748441797339278931656095835878192720231050879963334529573931258751606189322008118151015219476281714730613104464328301265476974776888152487320230977666060750764269592735357055412342101051354170409099403987857133869583883261647099436223647705264455231865736214991329852068484607741042796033415007179353533197749295795066995874198081442982758665996635591785264343200087422209928978912546138700915829414313818082890400432698220029518513325169269597422391182746421308651146395412979807928062139770032521390635220244316649885218262216675739478867643265714915989076319562822337632166503605812996288950902315810848504289058214687576462743271410785062701467600870780191610385522556885673297562086467118632175884782411194031934356194942686521785174821547831282993516085232906675133601686836209670084056344027505320725522374446194611785627126933799886957249319502379225393384280996518524647430866490615767319967760607647080146264641450382292805430207483165700873992040556059658294507997039843450519372872641005715127932091551232471670754971840112769099731396204019001452240281831009329971178027834617651712866139990535791930216069677760235137349236535829406978626274733506761100396715053957952702932139911352001087459749268752187794414600716192361507010475851461747133436184867289120790889411014571534639847579081936059342446446829833688613755076899454322576719595642445131743734265600551200473856268152538520928758944972253594189139230142946415200505023418884784259041348869157151324830343528791511621803360594436160890784375674275066506496791753012742416339336186146595141209334134455446530869892217898271482280233651246872841165311152995790709136277454415814382782493267711976760151231686068277221833564366428079947048313017174174092200295206271393593105314526849636866812342367309692746873910876476354117826090988666196814736280430449073073934234086759356974537158469652436025470401630349651319395312911130219006084224595680423856156849757756796168803544847380164161731167438241155147111831673273412759665530595138507471796541504015815077163257927479272727163744356345492136284813618044205041808323609943028984763131456406608757459239914475209487731403528053822086937332100210397887468330421078255510049974761688455717554343679607981120370888068479748758682773214637450281174837095815342573523644806848022421384224416444315597330423565765892614521267373590599962219547362814564353944953876285200468694018847181858231515629490952006569485653853304742060832744772394577670795843266590871022324305909923692389814348418313589236127179510200081438164528566097847153371659572763393800250433222331862742613489930207784261736044993788399063565569389372364735907665512952612831465382893142870817075516860116760198098713535556046470298904771668537048830699220111541823166173628683798721490515995248130398603047618353927344248524322381491918946622538238096615383654149425247028828031760288518141317426947864228237614478650229475961726841678759803547931965521610981019594947000898967207118684145108592881588630296474080062691882576160187796222898791343079166889666030738207260672953580910061133436382497746138348113675413991007761115870284277278892341181432151537100711871371160867909895454499895721885131235840539175382557876778728956423723986418952291180269315059623423721642250345831341718333368982561837825957164057260821414080020456035174281047650189450582000444667408172116068092511751338514274279112762819019046009607082765642254122179742855209974905583157833947968536809377550432345975918329602952499292267470089356881207596790063511486373185624522981372257232919634970667719352554667323873652676331007923679575029889322131656872621114590336103578049731128954436975823978418785672036222621085578463954978131394983433832179667311329644122390850792913123426637769897404082661351410999757987466609231174295098773365964794307313042003111626240738845791596745599038685259168260989542327548515659430128945723230937241482034813308832680946446252346375733253344465991477947817184496058148299179218088321982991860837445534963848179252951783300503619885026236238706792985659536219693030628815661901419556721296908491368625448600892659642210943712714689329442154285474802600564738882372884859917143669025869610594159821461588385049172055397037365599884535083949620193986222166017091415480669474059372006951957964479596422916357581111374580579743334502418321434112592740848383230676449602110132602718419798736900530252615984951845643806191959370140161550987756453554093514828817181327648105424751074624881811222589386432675085719284526409095389707978740837442564597974800742595035493569966620585587240261437400599154861269089230782030514572120236411346169320997107503910816528607301702342197008750851053251504347386417916008225602255703014126524106801799331345189884517082898234719880317596766671558838398512988733328203957852846709984911092319588204590972521880405179812741831477190740838397442616294821589012334536744629427729017987549921278327813154810163195123921210479361193961337064979650955299823937219996414969308352096238648686458084647718865252670649760902725003535319855627015214953477731674565306304316969691259713728966816092983549638446490944781329124300997769006874347075085669274177213885132297824639676737049148952603687561718688974881118804813317033716402857505690213209564520941155063113809836722032565648773088806181873115956246490243197591658863719210363934851721699109673484260137326540686148163157812398555113044538286656178501303902367524668209192509288789757335771947591704820965688703625250809009953543717791357133042944189475168802263471102175489194959721443545410066328281377538587861412612015645054544739125812242187862522601647610194947318612336192802085854817628985333507214107037801994098892455288214543361075265253088689938233014622747396393691465875568843415972895689210124962590250602322550433011603896309334273377584833179901693217273923550224757244477453847507403778985165885754645399373831799538903155664411411315238592086456739904739365269856704259795019095042677704888327233142767171838102626717435825084979149949662817920055618561842086346319654858304247913497889365820059243377837709827123218828639859843223934294005012138665237208659466725782844127695832589067571904313554182251228581039245912324047121801766726729161595205587345617165056497001550741160595611535915172863757563046530785185127001660535167381876123339308850567534139983937509851288425066743005109940141268878486717346621175239566601497891990053172763951310995729411716114687810088895027369300245705130388490726719435982342856618226233380562001594699838906130582919447221455446134478437665574412638934376082586458408701146367698896704038742101466679200545499205006483192939824341634900742151124172304159952039979500076243148959521474161725480101091599530450901914402490729025491111065560862291082616688447427210993406847050141695435119994249189788003815047055130878202696914679316379180497316149287111049744010081282415726452536407035145121805620027592575203064779984533082682353161342138112347550837093077647293666318750954684756559285813877157169252493954399163751532809595112317981572425356017783990393208395517438244492069984310203347302832887191204813321595649684120881211774016468134447304853310890103729902488725349350462176564937618670537157882451043364866755830686101218343890589144332758395442940970789165287174578910971196430261467966079088596695061065284536993444985816385006434374176184366837458469044957933962795070097157691839293708460036521799442780473655179262899364237052187666123493185745103661216020964299822005285151107414290980502589804809741505455481519268416237046097563279444018022124205513288954051013781207072623254961646920240195268100545692462090767706529471430458269611304491447770008018656391161861353098641434145344212445494229938850817469346510278985335446934980698028660232959107642020697012918157204075477809866410207047240428942240289523745188469612606461669437512345755265472349617398595926060227699508063282857538518906181426383130323752587751635392444429106923087978097904886353282748045671374056721182691744686213381017254651842616644492694165236415613833941637888929929414146507364898392910515207723201889921167128319369213528835931484113768146639915391989345008851236016687363632130907842690923375641269709236361652847767428401367104337328627446586629917387621515232712191514852097039913974282406540712094493709240546857877564384776999265664410289104136463134895022170407624898411057789070709166835365131919556649898060519120869842963991882812384877397547127364868507646520642053408077485936245453416802857846288570972577883936687364728610456108890986942568623909820767491536059006432479214464586706813182458026562667518751878888756379512476775072150841535210686022272537781722765924897711696912691791978825715280815327604196160792086058133701777628903460181393907722477445215268741466833586803718257314340914675990982291330218886807638885298958023816463481675127219569276322601353525708299719762864866995350855651381294208103005327285653635823164532537053674866338919361885145824287649083374257188839689974632137228047134221526774343047452825472617417692540676872892142678067575514127741458763204587700309889046767443218475505388206267106694954518164496637723200799726926235626149283973282263187084890284107183781274507870430205152726886003054906010214766748467458255017851038358317543463039996709909239815849930115034587887029201762622610048383234356333160034185058961248280690175628610451730048692173131369085904378420338003054733240896536758893292097490159657509478944958583008563120716871660493871272353293463356830818143782785961705489297437818422131539935522266241725124595991232941611646289822153582534958029693722701694229189457856171650633274867512744855899773091451354398365886256077212456359495908542936224716133493445974451443968723287144735594342122432773891626654440159451624063289778107230815306585287391771066268893133303021831846751218649550843972719882035369643688442473226655251899273023406572473551538898114624063287776160546325281610639197857393177998607671731356560285408517861251134972795351398836249239234030720258191456342080396636188449930698277425602179980580790827000401991160763902905952427808439942611024122446244979285346203370914497600523565694409135595295126414501179272487891576974231555909842850843098939193165366465389939965360152804220765964568240434659721121309482380247871434510108193919680404727408922725283526736904092545381567317229956611301503428162420178807548430348494142337298474536944106777382840082921744093883787450163514717012890207109977046621050412247894533942417048552262678293149284314642321462594723619909233220312938990572621085188392981296655736198593681720007010301109837313273580373989042115010355195559153659863132336209507950699087740806974167884265251773773470866348565336287501136828461967150725519509687135155645116180903901683983963663621689058606430648517552981887660427190960008852952025057933088724145238081451296520613494034890373501217775756879799957535322094169361599106516662515162675527885148850819912373395362774245577608556457284718367203447724063390907518945018813099859986767847405810523930718314884006257088936354193650691095566534044272752629367513803581618422326557871115369698333139067681613854664038773628380618440727366737928216761700992571863662618898017158962875595910852666509136452155538328980921896665419974291663283551515619291028876351304379704479296428504296284473141443750346460137297979840008146489165095067111899728354026054246957959717630462475961919136221305685782196842083048846713151137632698358364331619048280447703139580345730539674006901322049811440382455947472201969481405439140868115245456135470185952423837838243738892621306453706041627362389715076087418973208647513947243758753575782420913035378675660861663653524851986057305347134471020055597148841623690176964127010847933379216334047712019441552786625477162064416228015747310508484428205532499566526133106019294741185052377673608802152343937140692775709647224899243112390585969539620091233169196092225705214759637964202214276394620653263728946969633055184676236903039224051970259006153660074925015509368552420020636937364767970728646151598430439740101485211446445257999785128610256734459898815519645405520724551522018802387733707277275262392662311076297516559325624424980747875756338599959659885309476838017977441749248622149421121947476198512963594094054773357543972228216302956912565981753212764902544388846450754907837531621361539094202441116891980825589392003405532738489440076094217734676299335376475491949939677255377645121571278702335845120677876274340260274857644001465563898737118089216874308350930379180502976653352008013348596317590434954444411500474303281759990622632544582074407900555311153604252877007072277863615179056654645368117641807248242587839362162875768412561174945829009770109769165155920632014512285584035108656064220839560534099398694962075920925357099525510623869271192549032410066395121098037903215772708769826894789187468215958639902304610626210897254450747256629130691467131015492436729723579154255443875318309537594405427438304622825025458537613050712796906016856041280115477142783483858356895799697661187044404784048090611894470295879666496874330729439766366080487774028341479442371134440898193705108143815043671392683604963364474709997433755038358955453042646185290882499132258427815373972617022835418319870740310084107949653364515868178579718511346536676413905423893246745857653505348534270155294036116250902179608200890988307301855590410519315928245491321150700460176763367353971068442257835991447696338368393167709657627043661688828409572377995312468565846072652764169062335004195665068636938067676683107004678242530221941507396451475446274738851501677370289110234832119382548456817523660829722610901974946782945874148595964447464157843931936938516400226031540006208733091847213165703741282903889831057636692952163215810064478298138605285151668111412230995132763744341934141636232060836720407409343904796272347686047405307694292579628399145124703382570585416680663875505827336350145679599571286060316503423097936361983151074956402653965311059535897014530688627354352181321542663273961602258126079518376517717155159814296184984506030626515106494901384861115755043938877431865087223991475740287511621661238882279529904781008505694577507226142028883208404800213692559525085796140018017328801996959859349530365100612367679329728466944559012537417117123397217342896961134598917992524572916086699526281891961737064661525067606936944087866038169358044350503816972425534630579782789116802357056515114209204782006450861260446766162408965379547544153359854244240076016971603588217135704989061117308867664481004940230695691753440022964529525494919999357894819440105574131482332718992707398098756200858353176229344290336697832401723945050962216869395983926353038023927893761854037851647432256389026592080313226346592970909609886246613614252533476832078081836678019972140507849270290445915228885106602040953306202451110481361753032399959027619876147638532516517895242069887392284388431429392522771024731920457684618588104249210759631252783655275991972118252789918762927507543475415894280793252223954848692823376766356735323124987319993758762927877779829418819948655820459936304045641573591830012583099647242438415485673919872056073431148730116921994983028357461870385330063441387143666697097495217197137185727022724839113142463680265288434369594330137664989774664832476250317091665372147335837482131571605985160687970071982321255392602196712542507562272965738602667737674485657867757395605888165890948399456773787885962229905847407799286614451593504383330463533776868261871536514509824227136521246185659278643786391375797601983437196546985062252697716159370834957353601449325527637715503915912106518883679313248965137056533034044331687630567531906845072927678809003034211231810529237014867896873052782388451637829609955462996306260035298757424659790002681313586235880065070932345203532468830617133643148879772137566992984841487839910975052085220675734961594344469593997048726590906784732176449901420585078939668602793202619814125703263157047565638126185669694860773190342850562576313265369969942888901160803133403847366739643899394863711641362846260373079483905215871638200680454251320694681541118073582919014293439550176180792944936856342843408261482271881911881159735975969000500703262006374914015942900035162100335521407635961856898102796583352831384778858551552231246008722388574800283865884902214046801422227298208657846443212437095691334269837705296731413103685075581634743982722404673946798000264250333896048572261982595423826559634007787035313139194938069224363216784189237773041099278531933558452354648938232418055290570194289601461362450480547206389304460246539487104154392623492428537206946610737876343002506568211418814084625679416902513408516890338691280581267396202500284399377888886657455849846124901144168070872302421099080813227025606363932049192413927170214027797342955849957029059718236959976984676220119706902704708530227335853082360952171535557857117757324488632783070367355841636375794962172493694166304850319840294468818667839636865633470997752219837356921029377498815851780813204891105511301136111126926689719047837337039797254809100051368744865453373471587519444461659648919400620997997573508329844935456585914085685971542185766632986668747242424582236272218400623129147668118797736548139370402176041241164502267899022448989805721099190784441156385428255797812753655190327538730449983090481187528266089644565918112655921720615248478103315087295118167883490352461893170008535029432440445910716736357939752281934149702985270785102460464459449686029276703913164977861021185058892724680263013217315223344797919550482903550382094092878797759709986316734458452129734674799706853042817467096907447180647985399602298390291707006645751838073639493576140987537662033624649933417485321550381104757119055083922035433366622818163533815466048454015263341970691868934406619787602718415482050717693599791061941932637051386061830877736114021240209041902042643290521629989202679352649256522899110547839992423618053881600873462392460974331472267364637846742466218683489817181526612475059324641661367103143012131076492528768144129930149786208764019077101113332022220234280081887558649709313849253031528277967282390569010780912249534659135004738556434720034244976639451238449176767426121922965112431206188080191621100483167648472323523410731943357340929991177996833839021664177399960629329779609404868258137263808524241836299872476713423444390254530711163170411547129328201289297393597400077399542013559476901524577968650323693840002143693901190433773916938152963481330052178083557656617350927737003270664846354089133167845079017768898309840774382052239188384117159926124547519348387277128380040059989782253016830065934138654620814968409639890414435656733259225275183305661917768878668204002921142179859875512225001993515143862746648143916601168650649652110750313196842053496574618373284981767016453284104571827078451629939850339336238980420784004615827973758493600212926315313950280804489199904101236191767452084631272601272360955265143237200195676592625162677342756363230538291766053005187898700628787795573116950645057648972341113988124771066953867832662508120080491603761206341814318502002952653194626400822770454439812748941573094777223035957097086955209054474883866187811041401099100952192850039722364752830484836281981364603717654958422994940676643751281269772649592906850960071647520145093012998457893462793944359368384506270501996666245829210086933010882503640918508612227328881577226959418418585644857501977030723724844479284881654025410992809826466900059392435757850290122089462315776441265045940580222267859000043310873339094422190442007361347415553920605915903437975181365874702368698582607288726523458639779074438478212448386963139143278502754809596247079144355923455359709041498700681485788492356043759537133963187261807694000239751302125731659202613632372694158226124139549010117198540870573396460235379049955440559419022304005407379463012462767131567384996757160962964514073945873099401683315175385313258745496907536605706711045210976657090683413337720332661263319971649089434740582875690261648736821368607850331242403060521344545319736538499754708085674265842770685987485188179770132537896597103146012910150734157580555225766844956745559845330879551504118722536751350817231160149198161378822384208854473229079258347675510713971612296348987945605563372755444303063517460727671001113201204325609722756014990742730771388509069046646181428538038425403608314816857929172993269357091578181371851596089452812139643897798203966389712447205574177943249581351603852960642787301452949880813592932951446916578223920344436252612687757949561193046360688055732967124849347958130147556578725520763470872722662824313624846102365616995830318772662052774802878499048124713392016000717670191256705204208010095715482810542938912571772590681497946374803737348390597021280803366015033595896458040625946069009805436968465610955460205031413906693984351218176800342362502667415251814147306492498109552591690848619846612128055106963320403599911467356829951942465717477374579903060297728731971221596448653348482846495373419970250136799591608823106696369962038208473930244882937740225374473035608316378271387766359868130239823913208413530592186231058329960522873050008465691036911238887800571747834861255355057033957825078226227590103075439051676774011799479127048271675108348257400902286414938778231220455233561592675456626535894304570934874925249106855824090747803435640553663945628863224089279308256759177922164794124273649452580667786421286304184216443110836543007643697462205564614280412525594338271033631130365763046849932033158085714354528724019811811414757624362812121703143181811859434438180288108403057228288828314227846772624956642868314234350100428121679292016725878479519358587412278634602330211627190125412005067472803310767717921280585364138087525146758791036435509260973870606314751466818753588988154373253391741383244730206212379282731978560038851365826334323231017588641191088971243642328634662049810172975031105435901404071324668053442737711070091044131369715920175517966971098900824394222951087272434623632859625938833219166309098274401592588008129929346114930299615345966265048113139595401446238184055974417617736489638206998680439229791485587412690941232801572250091994465597081962257097282711809784557681905451752065360030347591560267731061917157500072965692903789521508688795230572317351211157131678455730708190085651516542825320972864620482315728879417351526464807717887091290231127255092187590212157931595464470420115561952966170663194257077670359327046143360623015658038374106066908792388082748728684263098824567071838633993812813197342715949813041207521300510123523973101165907668423103938108746510849045961509332992283762997356405108260898314315411889325776930495118098041916011734072099392250357194441045003069803238895233908846489773874265112309213528588131823023242277413685326794977973169346669689214861291997777411285539707931605510996505690057629367597999815783934038212852628772987910840213769248292469268852981433802113145886437403864564224525799744341456471084970941385412821563044611790795063099624032364990583848894813129662980403868318290884913985346172543770640569677433900789458074665728939758453033823808783130334485477668370057746150305364100819182986616259114782670092015444524115880188352171323923015604022776569941657833301235529321306949951289734294243514864201154474929908912365250586496586758344353793932399109035436782967905296414754642377417141397973692086921401393657070910073188106261333715937147184047303414198728593470372197775187664367933493399067652496175263041878508133983478064225588222398342107505193927073401310839554277643886661694840564893697868521149083791657832600152403296690570430355932333584594074858565861784456786330794532824290195314036467364041536908997604439745509439056217655479665151808760890116750299063240251866384174236451564339677918486320741340707819338006698138269896856761370813175540240249289029184398411491104396249057642846281145001419586241096138598970071881823315533849205194628912083097070890926892186890384143431793079024029246794421389024826866842054531593896700665297899669074145194095270895485911837067121391472998757907431469263331988353449851577383383938018384800692049633162231153826069798075656992354542369420460847141805655431887416331343829335597480545321735941792480994255829446918780185838759475954627500904680056205432614034319258043877791855202167765426309528928193144914644656160468483930563094376000184855510205226231249892329095617281979746577838897730824355402684864326739526586167072459164371794670858080879721921210878767203958433470367561771841693198182704407307047219012033444862782515285310826068842265679443126482194800741915938901562085206206319948238119268950147512512496462261552810430731852920833395053988446288278583313864240373599803775643558477013078472338175298726164119130295773835053950683999388580459897697884021493148107532367993594471532310662606275013102715729916223972490651230380806169832626877831361257111297019770611187993706936491885409222589404755714644394375013928943768246860837101615487279302893587114950364192985698791819804138093813488327016581492920246740229001233482984418790072453290599936237744327317942317942208839584820587355393943067877619088507122919548734954406127149783775214509135358145254456286782960324724277991349926595805618722420518481216542476753462486499006626275724690289752599356754739372740727645423450192616522341045092517339044751634316671120554802788138576989362969750860553269498481125065034582647283152800466802140984931493964474937405261500667753550217332997901365399810743835097538778268423933729299807754384513174695168734137344127817628049151842258025907889087536486047994664642285004561071037776038748167619327462573076860135258637861158245610197502449420457767872775156367478939849883055248251552742192517704719103353354833951043950436557962920630776499145661990981949368352678374513038413076202793441292001412501738444871601753392395780164227679781597342964394776291494597412625906156403171789743800463948539472337448510727755442572139106327226034291557083870352890389569469790193188137845759781889242301240556248944395143618885505536609426852308681788602092895691670061525063915020773346868965049552504591305616845586095024243678853821902872812290555096849963932971320225153783085303208084001275472461411883030702675134541724920495227966017812535188986195035776585243697535872022882309786823181961155513147305964272142067819550984439057134167365665277148489505887535714086243408828396091185419269540633788783016734144124931291297387285137917194653042952248282106849837119890842646983882629583131009211305385226403450593448882059115842989633191432317449128451383828498702780113339715133334232912755831131695559953192847178552931521530577024715672565794419941834777549005785259045096347414434613065002858012346562535037569164929661973719673033692979120229485332568755507793779286848293620306385422412110829610777895055848991639304332024820159980749167267806249102206698736085597711394463950024589662276240798306627369088362917892221431685068225102543970229586490664260062989637515296046651214467669319876808531847087259769249613172918349410490301488516656133959746914653090076378127031267801534173697676046432009285010469725301250868178083164661412322452445059887947635205454667336886832439457389828759721215466397902194075285402661835496622259023567207176412390980842527137358536634803221102691094390561900292362336791724623448319346978751972953309647894235611791245426355840649155397236174617184566745784146155043504008680625016204291143456873249398587197360508153367320321984223164963251643637966829412442382007129554659177569407969722128306734265417295192361652852055215404616593364135017915469524589270609836488986296166745419326835863586233271069875823645184103888709814432296085743124624546606623874548928282180131121927696657609083247667455701989669908128171683727403581309012737517874265328482374258300776921899987422659938364815807325363320810509205891929731305716488056018595170235122677952916459593837742204903190694918703776347510130316600268244320076138521741661783093501631106925180529006751664037676063399162697622886232609382556950588019150572372496154146502457351839429763045471900325662523620403875667134072012821971980447416318472037897466665246580926480328900979386588595195913045327131117271492992163372903286246456910110871971538374006563627451520423624045989404565001108201539220248909211815294823015832980102748985124534330562911549758508137044730239191115163866115321609781955094443494356114846491384470536980050790254415228611560059806627683690626692262109906324824129235998769493924796716320646320253493075824259322303162513645983065062405705164177299218330270877442941477883345739424980612722741707888298865004774512535406419522568278677688386485258904535766755025683489641980028130181747984399987575870759427037553283987218720150376515630015025644361650452650215314811398380894426788669521571242407148810979057449714451426944230661942375955613640216549723112925284439965200430466185648798503808462431445028062899263407568814949673087416018829597267296869242456256593609122979117024754651862993491349409307736330047070677158017819573592506730287783854373943287862549509120375083015259962785741649369949697744013762098906795835727993064740574345905355741347943911428428963108139817207781628182469602773396235854017172402087645502282485260006349527780634390851021841267820912662859124390421928772695778447733062125491732081055022544986054696268282985834955751519419475808988918376905007566159276124205377458770613238023932041723665185181299132340527351004507776379612266755000330001209322026732756089003743617515786730076035173802084493661679297777324907819943739446812618274106173808357645590718669853411074082998919842330527408920007737069577854846551188645954235180446006245499067757347030722529578213376703450088062824708889373178802170656663946191156312260369042590425394154426419625928452807756906695460348225233186702910282939201596818074778762382456531081298605412810705633717842613113652226947062558168417975171783750605829916562721787853538112722203112881459128345369113958844440758261263888070720190530511355769536507065873168623662964908486402931656409466885469602354852807844848974332225214915251533642903061292267187491681589449078164891043921737784945395819180461165444756005384747982126058450234070463265422858208662528506099795531086686902956911452809653539193342861190218735418627738997738124419036924294667920749601734573281581176427420261557706674337285310650678472628630880592452065853679747008126865163083928482880424738914605935701436826074673348642680362800508423162937228217155623172792619375416910057494738936317681715310670105293244241946696762179858498848514216431895449493060414048961338501990219750615413638468580286197382389619122176561700189304026393982718925654372667039742890206187442350755591533970788622551183318054804146390933142083532773677829816309426021865827158408707556743333421032986743407093200464291667188170463974952887446468341927769862530346422607344981261002472627935743397762856259338394911994398995804961826573462571965635161940942387838743170753652858620836499290802261155549595830341610217583735684655112971165187442526638053686016722971662720813073581239909883033805484190732750125497317482117299885741784914491619778730865341359972637793442430156579122840221095948622918878902542851710619772217291748765683933645491054245721745396594054626913798272520173404713122476360226636509939840817324302301247068472209269083646879100893229969976131805591315923667125636067898496826278884507517955145436460244880713532638324145349371928825580100489272172992579740950494903967724545389663716436869462522698291949210785151744498323498117848425841726234106385814962252511253194655379375117702423302905832495576403555138921194099401068024099909375269404068946741011596329084388778154239957264969450539559762640571225220393472845518616774172806202507333500881112461654282314012700830468556544609424403041616977291999751021784596899636324388028532373513381686286200083579023898995987465808307561912548966504732492410970727701858983308006771125523415052345804393630971619699664961109740133619142068160651762823625789534115294325573005274057361182908815379751853361020820929611940572951127279719058219149743723605373423164054297079478000288934893891436543044260046728318299726684387889230502688643345134256253327223896987180841944150005751788350293661393197488496775326483155179230411931713538362263826307529970818995934513831841277490855953628101871446297608897393245035098137546278979601098284446472230431438038864399793824193717006570199541809355718761108381612928117210741089948243468648957613049802286289640899970765590991790655639949958929191389757567248587942036345099003914797089567726733784315392551192413119037471159427425181774873971258224168228545072931696932324800553658080758902798115484683565664021339162076615846890809406437175038060829040405062055822522274615655303499100917714315596712284358078362531049060620156073220480007549725009927987484565572999060797574638874565996956693809011874895516723437284970507746057985566589907924068390097694262250883733306104340767126919847032990629311441586737012781674625331826707068702781925758499355138229672049555063313835242304338857210645800906723729644890580040236269069271360766899258945663227000205944366063362854342021238304022192569697598370611380932644121274350300481499923290366784963265852117608458609986098546788149284672142544887814993975602325773234584270126923283341866324203102429453412551845267678366070286515310190472554590682211065263362420747176434768362204476048166035447954824282380519419159285653136872772387387442321663147799204846202377701350497304425812997562202370628836180112596407787060954400235887622911348950878416208432895778743373824210438721730493810965604545662302185359778927056682982522309529437297094697889143422855097882325606915487491295312418898583963282994423702084051968598214303978762280896116623068032169233523854841926756502574341033895468077444987509301057185063034424858935023407167951171627112832968780948796867293947436341621849445547935132557176426708432039570278859777852534992109666220303650009353456157921780735856726653826952958472617807133425625899055704873178058080398604887789112643887863780158537639347339044365882767149583594590475955812649619953047885378685495660702812358695684456983048370598285311395286268185174734033754828714296601090285555659321165956624068360620729319605906803271959826335621412597022414483871098008781750145201050971500537563191406666204796572159143565144026503056734665618447215826714986701911592478590475884844971585774052152261617642419347502728856560266100236353525819056387430583530895613510409787774784456749722151664147074830002666650990072997431740600673256261751373481053979635976156233102509848245920313052361264349626793086885585945216034293312730241290263674386604693253361036053749578245088127632335343485334657173998163332065207221333987315117008706264458666700879280395448211639739894065030282542745369079657917096481388263019026014565563003307607738018995819909447114636466691735762612906523541049492933519871309749781664149880704445746006958459847568615064881938515228202625724286133767732389748272834706897986330240920748666535036302050382794993268743290132119484258871339355954336391803030384224692788352472515408920185586388409975686456429869568200244621073459678964607362108666020860890503267970788154973131181559831959717906607048621091211639118047222008777157619375772851481075777313165164943916413778682766731578771921678111047395856447075497257885928806819831463984916669076343791696994150267051621094336295886543249327571627341466508616886517886348129175542759150710628805037122793791814023662331644686238617828632037150937361754513676849283725512393509834850359858503563899127549526903677440035417625342712958086314169773202315020083527534791522499318484265467739431844373518220920990275146205225369769344277997901556389455042543122067355664986044059018703697819391439198607251778042448862033038753443683440283411328672638389985379240052203949582667600564035745626635174677114197517232431055245049894080364119501473244578083554548401118893512667755492824137397539294831451179230902631861718008025556453074924463836648795823141243342239404581106095780986523936435867631605449815829977038657318250012691421080714537480785991465899588708437175305615288738264017110591888377596775997605311454730257362314362808992221842868326764921266148151293192046786368234225971605547247686428507905238526125188135951655458586429329359397073030223358977221500295705962630725401001006034472580478568091333945646153251512851489842546165085902618467237082381253343529683686408706750772848845910149859758541011371203533427951802777402253681824167656995044898895787292041809908476790285992443942880497248224052485835278311647650096637362560395493023526369326437291532274455867305571534951686876679790944587274907046260684788028388387023674138127733292717324968115024826090997884370272886472198808306327117634900607270454279722016571935868462062739452850477787165741362713968837873904842975800780142096281957200164864463749265583797462811582786778591574992289558628111011301867383524323461823725217039928619238409266848129771608207682806852995486516700272725698653325219956346347694325855731785942431447066900229465697393946626764813726499545421727307789991519169743139893731490599572126929026170276884862758737203829378832815351398912599666417361935057951345832709631782762692094592774468369956618359200913750697846844960585895018373178105624004639012553605422527360563874230750988446428256487995858836694334967129438837100124036798973652071747349983244034120758523225321503207617133488866387798454509358978719243514168580447114075412879063274561440264768782914838300475430490222671277265514909123699667533491771093711848347089351042691249472600509366325643064883582618301488598880205455424692801170606105702553817156575378497293944632076164632605496772992455821845749193994968238149797158755964296567289260349832506814623781108786635639902027776002832613794458517018968418726991077310716418401292254013103715063107275258184621245215203509858450687677261903104215709099793418736294655986015018491448540840813608006521205587552788599499027357434605691213147365345477276226244743170332661603070502959525678844081205056728064013512491529045383448968516092393484242563738065323086196068034677002427274895081661311212982589937317666542016894544730315805488934665144770302157376092517881741020981436672644571388199327066232452915219352387416445530011823003654944127259459790609420885927363773607613028410410508544531870945568780937619860189374194189114346297324090431250162873021859867264268767621989154849035887356890024474965533655472513486313888393924175699852354358329648749715705698323992582941425131807160919007427554962075213821426275255894684696139030421065984530503198295923788699922495457803744753985329173044946914058389763923840652475056982137600372982543984848955405142563555512497045922265510055491694537674997067884938979074472799323700990945298854350648358636456207029629752248935015809701662508160960701378548357296321384498670422837065626253527724014089685338383164666724339146630670496368481218758743958776714982054928464174640210595200499675558974247301195842730909679489309407459088877437417635390035141778222239496833992621484799227517608418947853605949361983164420703758046637421095809318178371185022733085520790352464809666462905728691176746867672608367612827421041010347246503638750464450921618380837603120244308534294986199922814948470949271637425363282929559098348957439683516695478107358603773247360961642251147894876837180829172883162090072096172909421281278708426259882128377688773557311572169955300365596177872154039057585414660370130587959026841137466762759990878766493193747436662461189808121542758388955538534615072828335440199279069840547589628812150859110560090857942380088787233246280266218617015028396153564376401951462528051579386710301644211222416035190839768409829127735168824608714719337120734035796559189446697728461321372367430756313973797997897771660121161655771538409091076055410036751941267802062952452532810819973385964967508440699215887192582510236639456656812099874849461987822855531460524208321641711965795780500922988500909504276535749406065940285869801181247046688838217007666185360147587575684858166134265425749890809179374569499114148305328464293827856485372738871608265887411230044451785177551070565467618393827426626355680538284946967365104546712278612344298210110450423948738112159012966131917087322095627042035727521046971698821544531579691731642979532494558195901245472854565814943225463667262392213699836879246477727402056466820331116314598011934824474025748624917570808466862851551137922080018414532120509733325004141817048579485550317219513767511422670945888751648119125967595888987304406381673600071520506762782233475498755810827823581000355730558498700506788576455839114194466308334550906507102781475086389299513607162445143140713525583199771791917446141404950179800579093635286234199592363990928248976152668858043809123703791825803671898231270379301838113184455734591401392627758553921106707940704507892653093089634458107310144690590473088209436810613698617815508267451226905843872854802849514402636627840129314179473758948109524238472070800035551712201919948089609743713791677865754419494317012580041313220667046791379484768752540165636935790943667206673175192827832632206772603061435407162627345267724513273245736144802905978634649255583231792227217934509052962839500942762570310994316397414472097776978907935742416613690382140900444856541445553645309389382952471720550292626605127353557463382946142618272631379985220935294223149701207637273022990755330161911040650834663829838991760771878015430069061916961185962551251219098160590083057957686267477701462706443940240440887710679980400021083745706452417334124840125522729258458341873101036704303586033529982178383431178979810165748936188486920000588912596726438646792162590819529079134738163119467078665561309997028201164488809795010239427777129519188327678575748543426103154422049014967182594335619506062507258556957835363008215610064710712202686138869392180813858176162433995554063307039283695957842461891670856018000051015100656546384024944392945196369703173726564595291643784828524322283350717883791543805372644507251968005431496723956527911182593519097604976972076347463030153307971337790972510889046430293519077990270112790565034083010282726297201578064125305317474163564202716179898132587540605629971882357358854683280459003193244949172000364807891450908145814698709249834091147142433025166488101162287494388772006600139463523381701590766076772983753283302876940217086114090422431124498570209850393072037507995975735291306990562055154712929290366186537442236810116311754908288850794270272056491195729920480116686650147754512940454086357450687352335592762615637445550346515706208796306935661879414085561201190528380476403500100992286483609057127523537350987605365727377335307050512316576874034363381629804736026931057788709009734419837190675550358473975116055736726616598114212115889477298411045904830696704894899137091436938012990654385894338242584991598419162699068404691071869981373781181469253649867952301878869104226877372911939676965916335287404698249901826097854326804765895920980644934487578135243465746757931384271901540490036657894969038350427384888449992990662859529341049108421536347301020773330457390776505465718510190655658325852499698965247639090608487795189072432233501863920196996284843255537671507748589698705709161518733136195795392110979701846108241092086497953501050677196583182743140311819114801602616033786903476621486613595052720509583256205986488547755071715376657344180376375348591942100133506180014849360422808357756713820924248885209419045173396722428570953873577751481078283672184268812568493251491514986534590093893815235372068891203034547956811307019176635089933444150153513451379458137827483405967334650941156123065204124722338335345989173411411390600400116845581647381625624317279455054659074131180841685941293836187635903924848601597007806733468262574641123630112149644294544721775479281000103022686115871137003028338500183626744815116389810829129917155113852696277243492449249595407622353781275869280873055200713779970813833418785519358355600346543894610609807837392492772458484120261879472727847871415091974704473229440507715113378568692838537171101615025070704729344033221173538557501886261148406732685936342933945711617505260156477500674821404649215215455090976476205349188579852601064243741716310224012255137883752994286763926529325976486887504564534959954300223734520146095829289126565718362593303293457439277323497337485411966977729804816588003012584605433546035821225751355200666807706578877124745652712764584063567153736302455193099090891165620201407782455716367110045361145403047453356805829681603136301385696957715228972981607121239301458047565286374902315540841399631068896043238292339829049597901128529359006734916532886911485064364532088171406495212271687067832355190900903054483013230396582107075967014658552258750875709837430056486660552971459251100241312979447081684996753973243209430665639139109851669646957499773869037668365133384498938206976898590194613778297935970461446252841258287948779338232157141223607828973278283555370586001259128824301103502017780366054891078099743177090837429308649564601580368033298222230555952712082818844464514117773373307618205468011194066148042626629870329857698280749262293362977795178978815677868314058214431419958093154064668303700711895109004857446721658686096343173838179600136334129840162096421783545263733939713308930198277160411935298832810904016444082443080771415946634396103596054046191175445637945422987190669568038318470478449967452165256286652412769271766051080337690508297250945156335581696158266408271741219827491442233885667155532931241827051957787874147576812000636752656728671851412464785829331650339025080062896450581723967096846478449960417685755904371175926298842203673942330101473562522023459266674997035023897445770318514503779836050469993927234963541093319897810829796509448021508607392073063877986654658553496746248973936004471035922469396685409069761608852089891707719300972953677226923124744512527032350900863090352137286192440970332302093754976916692862959409547109376385905773836868931884384373920165419872021548060052995283876882380850740175227099134230486728976853040360737262440757077823552382940486599123821363236237680761728178875683188548010474112801381971590935169846238658490609295509483770555468197604496468755960202044106650906587791052071601260977538193338603427797881557734503393761993617895791469116016863611225611210887951230314512552419907261251896819610699315395227956707488704853112982470276905161119547800452710197496700912213082007417466595016663815971132979864579095090111785553822299352035401921362862397503830671178816732210519243087672612068669438697397932508071699013989855053346468488554163897046987939816189342720102182127520524908582141577071359706906945646839591033072914907925827624399341684700735811001415039730874433269866014490357172465172769172844499300647577875213704684259769972747965587899625445831600536622600794679707730787125149106640347791917564177402828513125015152463086838205522417129238918653744138379837309561559273035617017545771833419807340273791953994117472846731056276606874042761555795310331404770921539543698256372426179515211919672224562241398597524849290024543204999003471276926987130745210590465473125771973840854089960207763621519288113538258665953094514475354712617948888446677666545953153429516444673323285287120863209964894324781098798228141573818425118273375863420600808943646090156999178150753120306365413397420230979753665901736218509945619906444985262553305130841954770559045431438114078946036242871863832369419308358917191472699865169809815496889780063455599483096963750561201940365996652503955937696964982911061241784448461036369980253482739179143187027734302984181000436883514543657026575619884236741774967675266545945008821302127975415561764694591410087336123716838426145378171609292688757183221311531821812971026592978443701792539083573159710877759866686555455860751696727970431113125581272293800163715873414500345200854081609520142613209612073977232948997731412207266219357436449919355042491988734264522685259469103021597125089419594075042002420335625810828889780491064424939596112200341031292939341285622279147390873326704923189598069698109112674517522870656742715004285090358600113544073138195537173624618342659555003782895475117947509240465307850909959582350444715317916005700297179837848339112767147850154483652446503760161950897980034470136198730772172788694247228412162889881762163831956763940851664066990646713591955968799839962697775520988042642475791705143346544671594704286029405790422572025559236497835532937574120318655198510361779105887699632065457927312764696430107731871000863230726324885101540149572166214104217826451642645278835368706899907488438900654530699117495434284680056157948156343702864595217226849390405328817342656670750985171351377272500444605346594939699618551288504198149122006134064875035160729273452318650843976788473276052201390376333456615787715372796156752236837500208852138469294813732908957689680145651547007114788118292101276702747225620323206871874589760041559646583913016789727882830222150808284961462813203501086385615929228934551121597513172660562253617485834267709883959808485370949563081945478129071677605252116395882271302340702106222609283604706339518716391381125418905471041727195692076701659353242566118771557981787480204115048080862994059639708992677305996175461086119919314845484021194681287007563966538066958972770855991438958983067093250289329694090753011387372954752184598805263417699967438417667631299949823443607839725542422200712580226197061122273970709499306449852721861094953661054710971948557260260028740918831347840165585737145836527197763475612254321760271761041791864620664131957065681922182544541480811157049484523301026989503485693232195132924748289374040225662823083353470435977201625074787719312665539312000089206477161606039871678340921382640001477181166150688176798488336973271077652709631386899637851421434719585722911477664758458693305698530860336573697866069827416945241372809345258006138598022725425054779227177843900973944912326519121862531939480229991924207899617617129738840592096830893296172978760843408187123547092888154258514506628629540749760894350021144491647765949406236223161700107718838818492442352705232820200820928664132919901952877259163680834300825001891310281833715435963163508632584990063935878740738870651003057425223728828164625897881263478096280209144245364310919620453090153571966340874378188118289494590538222799033210355158428653325002708355618801724987737086412235050749884098219126031084061701956654373751155751073345346462000698871316002309531072716018328041043089313846839169630079766906587181869977828049914387427647284932533312234941124023378049292174399940544668337299338385785459920817789269834875515180518880094062124562798646486741329374920705178561652647113402628925854282813093433464120607451432733060452442877420109752496038138228550970085125708158150988790749787369067791201196344158156603938804683924095612234864830951921699731157579388232538514350513195930442600649357613073784637491889551155306988621013264462251929821764059693395648814498530243392099270748086629883986260275759213851813158400109051562011692005281920400725155421756575120887269653497633474397238317877289154023785266016008672877947796600069105873122895577420803851254811012633388306876391624987700756238497600045795498336216697493891433155917113130001972683998777912913845117479580495469415868518914334795872750077197276052185773949854998223338155489747251827327297815191772346984532845447394104221995130318138685415518140205832247711610154404414025941788736874450137853416090494359061705988389032768454132173290514108017234157113995343265702347171215376933338163848601293504636613631415454353904730698898447640178255379933319203310252130410251686874772637839904538995896788203316043582773322962837953084924150574651060194968377978895600883773852763153561054034484116719237654410980225517908935103174901998436005383024008614926012637567022694222767053909734288859601708616676636207053022567801001699454394088350911223260707875338800946886160294897586862881372412633700227228660667496447959357022952158134371893114375529066160904804021839292905279299820026189161830157830840209079556112949427371877476726416367329044578549875044988405345798629430186858990773500325261605886418421488710674472675527964459481816468351347407458811290942663365798319785840762130939988066983691964599158689639690911633029220998442615646559439161853054082188670708301132367515841808046324805948666135599560472950303505067090018346203979892751812769231477434055258303157006934198544974811096581537169391455471088425487827565686967550152377263334897146486176443718176230210067991732810247843167069990885308944236751740049185475257531653685366312673014994750205864329889282510939830882948500146915265828404267041597854482591961423720002502159676591087360488676111936194560540660058354419684664328992027457434946389655196711578177030196295009166660678366669461645562760186901352964583224235071690499003835624520553460060438773291705741876861655812546237409311419977134986126893353785622909151873795654716545219157069859937449064003702486010672864304630761015300937794709693397547420037030367746906356765522852146227920596851125962302598643392181070153569031769293410123935432572034935368250563110226953144193487003351155814624769983634855882979159419632647808915759436414071613662008674032656042457799198875675883143046126710273874777423312127409263244433896583705426437351061253067470553245487692260201693357701852741312628059282760029039713392857138900981835439547867595840645637004205983069361679278127525115820469778434775629291456056332088674016546722673337248084044407387042490930025731371299426327656528114550307911803345633489967801787549319291465879892457683375194993036582471827342180169722861246558537980587061503462819970658648332962719653524983801235760748200379325486073508886483195086407903404948997041209653002387573740783148047333772259569642731938985919657988420904648443834357118438022852074833771431339682079697695562770908652360267797323004451805031022006453986482294709258760523918840203184156995664783048201918751661915397750423417033679438426226422912985396365658979678643325693597153392343463882838969283614892731225445812374266283608076167356206746654022180228990620962643680075252347264804465221663882911005568842368850045597602492325830189057041950075806593835149970503595149136383731319032936090413907945391259329764110678248413943954562144338789194866369112564013411707195181601260216002392469310031180566305566541533159314844290517623964998358096349727864782200346997341037274723656585945240289991709948013625875787558958468652083715040632868048726723639254912022097722601475573894140250030774559714042062361467379266076141748972446102465446237009504896890912235085570064025186757323919436087434527436062072992829275334246929745006231051229159353680784629508070205859700252666024791072754888499492432973690107566973983035096369705434787770447683814108598180642469385475800107569733627444130466216670503036608855640868637103828491037703819123456768563452366670777026594439489024657290750611636532534327968184082965449385144356789320957885367041032970171362149653868872055889417987649586397772791826095728274277698064540371861131802579177730728239901853786380406172997292676659163858627694724062529863778924006823981969581064769019098256638183544371041606026146059264283939459328032822847725980445902196334883984020979329741941495803379689378153074581814171011551004032295466369906737376295399071892197415616535679012583678657135320382533981309177544798252217507204175341350116442820987968458445426918461032241752825200918316334493117625002134119415870277001316263399540533277647507011656101736111253189355943943649655206636557049400181547357133996518502539176138283553310623718965499126035699519734985509339831069324593915351335314347714566027338475402068557344352429261065274452536431500095266744460693631705209812336179779188618175581148836532026076379558014949338181931525783481141347422647406458496575785105308383393412415047210318821265346597850583286833578402342108409598241236954122133934760186329022914585777992856323894703985514391750241831216304182221013303924820381701718957786600497949236213062486025046961805458293811768627820413374379232305565625996155427410055078434415808088356184640974072437304387063659758026758383448760189340201664511726653839434726389387992384144722254941920625982362115672348994043632251103828983806669455264362763649624033165135361383526486369756186703603557810995589516586029679738887135996371180297786336356158071731901641770371216527477135952659351133617872799439591009803495179236773102080469262531758870465986557885344598483221731953199302435535537497574661550972510301075215513441465075403195727620108688576752285238169885186165287458796655053039034421865576255151053699394281482002865606085089887738300282100423469292641478826442047709337118275910201825004926745183940718166872843193670460655546941597896801642353510457852271297838293913235224810695058438330904620633199800397085758088748730479458026573579286055888121591651621449760543698399247256474890186873328235678078724916838650692002704899253207025512357666187507946063111999888917319196363784362076241218417379478371885135972939565449569259121261682250146885415712127794827843985108575511836620950321601670215947506918406379732579359403193775371239267238442474290150536247400099777027222589316538103370690946433370745508895405466793252735624617450230752303136927126702301206178463540069437617303244174000682041595038118885927331274075055784259058022284234022209983480479238279240164135278294775500478757671247730508641623481748998089348185605421901239461448220163210660278483829416800010520247757526077274021833548935284011545053514446670902274219092992386095864711237909522701284701250574615943385034726416214408161379618172208704644925434674630207889779824930252749350029176423772937988543869736064058119768228826531756413111229373265802889841091728951849630910625191692855119056369189890589001354181218257506813205732773837474572086308118927950207839654546754392943464719544901116997365030783131822778061334999931939580045656684849862217876926376267101399689009958857874061488865715953121239826993906825994497396904319938822680944485366970069827423067134569676345484395969450100824583678312799240913987058845754102053847193394733932684427153874480744550584906549219443168331302837200292689329550274492012873345177387852936456887266165074508990779031355895058694699623524337372384734660478266167493529219805637946765904403962084156489607206353065443668593048272567863555403773721544382796864140321224618888517900097818400844791943053957831254439730822103591838193341346564255072317217361233523250467787693329568630912257134647534671505922633541483411497230200142617233482025773635511620733442841548039714478183994484550276833939366220974803514235751850065243550752612852574522364565341780371899382239965985194049282412297843509930944150743208956488637987219956392946914244461684491783784282050109920644206577316226363710230967621217015593422910859438737263875518378012731267802794726469788554221365865820360241243671476954687802487975841466791955944647315972948081300645835877313251545905328733367515354358512670260962003882228679138842554533275666241535063216088984011288467086278529294620582266904257760887193963265841640629001433751120334867353621284243728045596663728545102630768246931612355942287586452399647837404506663882666261488585185785966830413517147738972340952017911121654918665658401942141951939446468049094152645793169764966092753417586869644806728543835915655883268597851327347696667241499092269816602661181024396218098525636814694686999025406866222614629199546745988012063157437977887726982399084778768140097320073319846686644790056000590748790826565126993871791163740855737691477828194090647638730095967219271967135749303679878863054566138803195398998110013659602360302546237077778514722038176175744826184146640281272067137367661357899171420668098801690548807441822523864994788994212335363470332861316466292234664747566754201334645446848537279026201795527110102294991953646096234448493592912543346131427591270767660478337827237297561842653937486105783418842027109964804826874569770336178152756128340078181006069185761777159847147020359263366157077583354392425216126193979974341672458506903524742998356798824582058179398810553339271865461831004748043145535562418261908743424792973889777464068506441346016821997320420442961927115532173345093627388012819843966338724070388244907369586023408602589843400830040027643624245599760341163103376340477497738159878578816138731482036462009978650674838666723097960505781164380765425899115858828838758821997115495324014010594733323278008513181587422616173063250257245345565147478537812593493086311355721058065625339407774543372213325011410260662093279553656537555396776708905660081088312384885524871807113691155012343017667239311952853209428284866351878774696206376931087223982759413509334657160989516483236239718327174136769413058412908352843136723785099717109047405712088963821495808642848289532629209172116699339600274844550070815243644494783637048480527957706709032058944611274212037370260728979739629855831668966660952416339862612068409294392818892832694578716829906844237591666368547394311170753569612638672423252110862383421223626406252727976390440491671609977540270242608085966662795138344091168740835430242746843806199557004608973117361839636168137492135121467112739991779408891558876940815042767999593488286878577686275978399597304160914767808502803516673702347172097957049924341618222440763305282914565886423933423690565909784458398887394913140814411685498847255348148339221699793504705656045786098635815225184539408709948205918019679435368261931314028639161535429004702791527122720067220234102893618712748785835864942501430934454942324457395978702460034625746394337516958986525140395867733292496664434614333139441698146721414757994711214397153822115297386840388127365402069778647351913338689991881296484551201677680158488064954027032183454809472022374778899419643675398414331863666328073413046926274635453492271513888751984034585859744632116887126208316789909011552279690529303887308768613186272374552380594944415650890643006531709605664432485979726368350673756483943585860371273073661123039935318522257277238828621962629734617123397952415297048137988944625584395429666119919599088611187686708909541463608590440967555925964364928984134761464623049823537610375157908561978367900361372253347130584883814736661796065572008925989373922516318460050755732479907498086072492246856203831081296150043552541018143013381954206024293366996969995808185518777308578133402489617553993739299034655680373349622370572723264815715158571812525797660400069432550702703929820641221252618592906953013693075918605308406123978405214738477770486156749950653184506316343303523294312093588821422788437055642554715240690727977464685867514881289261218157273416551692485277909234235714789470035880194073125369380664533861857628107763435170006429738510345838345916134671613136684901181139491990357689548311932917933107328528852703214230460085730769111565661597548209339848625242626669445850615126870173954571403734680996959903447881362680155746116048395626981188653931756285068716055873580847394623336306486503017290496589330420765404972693033520007475131311226045898155984671613333436097244822937096933898861786104578771638911604829652763688412310640589751542827943891364311682452135371086317030147862827509669509474866145746922565693712169025313399521621259837687941999695781203084493744930676527036087479799415671599013185679246144602780422956195569075951906948344798046985359251902460529599764724885809244175822471286415857250075613176768560961300390423341316922135189985910899084718914833023659056670197167748011877714745004493233227142375025377281161957409187939965585559175784246831654568785972330759282999623508137199350531778812121357675924217323421404550852416222034234705074596046084472055538909458926442100821319819435672359791645905711325204826727384099083529229926270325083026668112351892016714427221657595135463742796140404257018643242548278793448008961724928193042494155178336130830964573817117475823667575603479506966782185037532564663813049615656305075736700153722032263392913969333735941755790227466531780741092774165383920685393769432646881853397271301035210669385980757881947734414164873273687697581342784279777934919495951530088613462136703006872191182303793486944023101593004942232114662614294172951797793899385246847590358232035561882660791090375967272534521975596538685383290209097148210458949705468253448106158539873809870226081873116015418620970382846788442873130366795516247024204762241294308785951581498997219769145897166677023697397519167176807493966287160519577390353458950376153625219933618719236688111039877327128483481355221215775418657088781548482998467020768738879649524790757004803078259531741839922802746823018766234767650950181091175469953963053070007491996325375492589347550945802880726507919824690531850116145427253801650511261979347128319080916713378423470185354379367232517074856329678918478291429304683332736241675314255759151703464647958491620841206909454065550449011394242036804620324729705775998228629073075191914929951010195461697692891445170624247942184726772066884721725677108968456179367457835171158541415247814954972109436841003553617058406704963685324692715599492335247773013083182465952420249392462422618907497490556632404523326484013159973679409724294730635498583367773802948301984143507245206241674972628796975259873629222263244963068476725237854065447124739338244962267901227869567413406301268059808345259056147660723741816682800563875896049847070262317044464457446875068831515220259457399908285179716175180739076650025123974314831345066980714731455089138094758834454746550768326076670125734139904715476973238108601311555901456948764019610853208981698806116503854730753155431176822901501873783162774547606416669674933536049005093878617925212533953205694948702827090455270783173033612794445005974112002426320165164122151831360846782199859214454440438881631788997309262774440509870520080309423648529856018270069481097263789485617477739886714777474318331503078222968373835220184046641407072087265245244757959004005527840497294423964137550294118001780880653779495903119099787127834046898280737791959164672627194157889891808085942243571972189444727274167654426511805372496337211952131583257029513391951168946508989667129303504609063004507136650631744136360174621304507946633859133985938840234794077534432128322850145981825231326274158945880757416063609517898218304693410116248641117291207524587824625852141848205727325601613921264479111399728705683171717656551416146693575830339693700200146020170149744326039219338356237359444463556511891159183054767415563144483819901643068444461135306151656160217465077194022168632875487529624313885348863049104852440131599241955916379848305029548195335504831358661038345736814230399765687932821824942486624645721036287831909825031229360152270488602175367042085698820994838819481151287582167791159779552004430580253613507218372829222167229379066849897718914204483063522488927130342556758670713549642456325681611392112080495707964250813195372671710487262574053872255361483825477672222301337813478001277232668486336441072469924737015940549688696199375317059310707251847544831356596396781924343363458439706350121436421555060300884611695040372193374048216706794413006700144995354629761564043113603250928116725347570800165118223451682206100473342843311766357637434626543980260881282616736826511897948177511619373907166784854888486927067947051816528214260400422976772043895534268336619992839351694087363972571477597358117870195960473443043903964804973519591179296143791972997762432564681400000088964115727724044029782108202674351312593831452955471516619563331651846967474089190175639821148819112590405275878980382502449678555177615750811711981189809630064395115407169606041056581956952974613477558243729242790783573113559519314087152331072147301058382037715843773662419924670120597852680505571136214487735681297393242801354683783019685512704238879864516761684462339447794057189877489733873377349419550755313860162942921498218445216025151846355025014246674336347872720252846115302385135710779675661334321274090353064993189434193916974578380818007471488131760371772840359468764000476863976188622079502792943133985597530640914610078856936169387977360360385929748952373166451272385185325076051143234611826819877309842024454157364407544418443493670238722927678026324968098738343817936779546105586402262540005772555509280082673680231078775692382317930149368683252886236554348598462093587821478590202294697657371509225453550430135220315502015289939555560460465333985051187383611816674928409477072121715964182162589746924421109974854213646436798461214898807469839959614608722027802349401412435583825300724885186684262800162623059080614670520381874614919281909320286467273041350230481103040024787024169804563874256134312875375813392719473423730768493573806752864872470235435142106293225286752148638592367177410706232594719269001842237939296764785403377557177380596848571913713332746927843037598809440142889046149992715397544448350391036817347273602763765600200979058486686800829403978040112200130748665836858241430812295746892151124602848209478621644940392799082609899795785121170559939045839456205327282239113415035659490184662401008068699610111028571953264301817988436581460184218111904113451481216981800964029455938718167372505047675158092887159808259523529794729428311950725634295171079031478126618744329828296607552146383779844535398823435230139327636112028006284277072128864939064811427832855476760659688564415909712959214165633316142924819065515395282894842922041926822629154169666022224431353357484583491375415958297881248145394739848995158868039012106676951254941737121310538174977269139193657484043514993266449061519198375259937745287226610740632410095706108614912866105395494898813207004163450954446839765921495048688161942655175311987534173522083183358865997947776199663185445917343896790744468833790113090232981030757336213166129977831716429944545057029388797810441332765213730899233139486894735292732353254616565515979079008551008296652709721444860535294548835403858192382150377646483045141383624473198433822009039751739813074330661764383079898575947366183387317335497134227758864541048993314549031809169024997256055593678744631721287926432498258353567071950224085936410200253523558978027714605174703974175562906122881349397749094902926980463113351876842634845461757844631166482526659184996634714158487448078157224216956450301955927937644916201782408694645293319209651913740608620947822325445297607257219646125870508365081930884260590098071503733027146113584234002337311261049875058472831977900966375571668426069603416547775613010994703373654872855256507538948986189677924701028761392169785838912662542726960435763236689998674713010082358873440603486488524889556731349187968747886518742821149014321133388211186723036870976571188091015410858112719848005561612301418716618665553176775974240439352836255166022688502831704822854308131619268328929789324966015036497154558062031341735044097201614888254090701516193171172737956291538728574702691409193770436504651867669880905319697361909671662442867492508255647707585647398389292661830188459868369445913638802812823878586427289917057002106677003572657551033819970715242490640669130869776357283135387876579198409461575609289260408344714626031496596624176974299371788666024141901094355570300930030598495129626352474344936625605457336761060177953875957977077337040429977729114185750809352730324956983429396017625665414060006984135438435980354120629933894775844244890320325871116063463666286520096585354531713142441453559403618088076315516423809535840607521965223100207324030660174225896492387914665854076408734746383303357605769874923382257365221393064686376275748123941183471078874756402568661637088888240548423476826391107856298391665706008863068573960449644909902838677809534920307199880928571002012394688072590707742334677968527794645157063595700984555949407706652705449793485316633588154898454904562817619196578367891672637717108851052645100956864686037400953636455363839283682575768353778480513523899166350171231254994031043467987344525745940705326261940850012089404000442911829441157240511113470911788369036149211205098176967856815478369746959786561800112423969162364293867687962197517359665356084151845712053008775395685037353615403714292554977572702277053068579294293569928268073141178402239266949845794013497324402363100291795353544309372083347107823159125704495335184103262749194242068376349386460008108863890576857016954132639287418386842875671550294699755049728615302544583907485322599023568451185247765688220548323858167374055586752404779266233795919446692823526229813502825628993544355272831685846584331073718152409957023511473992795809142689369610567432298613549968468517569202636501711039432847547413622524644004837476625481031679978424723718082884342355602089293067133275926496809549222519064482322252967647742773183583140781699445018592485963445623154499806102498028303042691825404710522538313777190622732135550138222289203896703005738515888690244664831113271644471035242344163094830061634341603541127351883678199561540118127158104589240580407303224558732571112368522631451444921540364893450705002623605936836279005207756940473338596258177515900839496176324517672827421269283578780602639833712014239224908792411321212293140668810160121554897653813226054787428284689236635044565940647866151745662581219010842462029004126212319096922272138314970505672585377893923721363778141241293282187324994966821006130398413197034648633852546428964669183653326027528154568542294697302891651258607671294784174599856889477734731799286631401626107327952564523199354708772267473827072958243054816234480170457368067519925517433333715553863036007879035297614706983137318760304583880693322135411115699546636942616018389748416329170653077585913979313742452981598263351735967927980440943432829205313873326388903785984229919751898411835716836967193967427817370362841797900555818892368192033676668606340066457606555147884935882005548770349571235475884942192885390880606900810198557985693406725427496032380717373311069397856891572525144436705115309471514837620663198495972399690020064824448479480514034370663650224014808385236830446164780641704625975449929983868825945032606375133686693056049654457065778424669205522088343289122678677516221703543060890645407547300347246175814876503854437229373828576336491370304191285947030535916673766443762762571022663500030967735738298101885160246747712367169499592264723377515745057621444387865008491438962048496140383654860895546136919775196105681596225933973886767857462632350234711021673410361992383903976938359926921580143655277673287917738984724128039349912170035865316420201083202490091284897443610250344497305177899337882486146388259403681397791461695762850143503088070681091647020884976048429072760252819471937741177579620539865094786534720811977630946547606132318213022055996063186396085546643872667475340114481454655511230340825613490080912297656449630337376399666941614806731788311052359890049620416997839488952265702928943291906412120115660421490097011352228299228257745012382812317859222554122585245440618805929494733117753523188910463201197973952826220006036359349135391837301649077233681960738040202983525800174345115847176292141432020799030958523250859303217265915170408110561839924779741597243314953080635385614580086872626831725695117186629533936334886003707721908702380757723631420699859056677580323590859951946867092593212641640813018799677908674900383992080575557772961204595301275971718008160605215504565479297396301053991791819080085349797894629797371099687116549834766695289603234659324426194427967289382689331738727830528253570190934531763388782608142254862489660857688646096938394454327098397438348289964482742734070488781039624989061306727968206720231439541440965584248618111516490275214817984236820490816741117298554129237048438689106647648373065838246202152867969900995018707243346458956401668663043283165283808072738182247707864555026619982614545588543866967311801073425564410806751390334326797778942967892290595348232642044006316984124398613439724340142421720593805477557840056018773514339583644140481091246245004260634085044974915597098986000827989582655030045719867336444091173380127609688653118847493508232432413810730384617505889213871308259735649560946246787334942111104683029960860130582819144821841138131322234035449479227487079977202741152851296108978635030026982666486986635414981847731809179590228694700511303747740706149448688225310408965061251253217584363044224991660211076320842225857821086368381740579560847995180616691653266060204580639298604030011011848721876294775305855064640923531041096691392294295871759376446719349508879473510867949853747533240412228747354604944338117332240393980750302933892879452897695743113178627505254087984352229580532616957479297655459353212142985366510221135017324405603955888213133693199654753455683062067388134808203433434329885984752638733540798035971862827287187594282614766981759796347306384040857280245918631766353659300454155510528089640600980040871561632664645256804275212407238561188599393707091462077713552190912822780107734740411343891150006433502347035870345823273143302551259606637074716846966482021010706310538994332435133842385197130930159565756632800605143647326099026152933725372995557638683283412495428203434152091508094576987629878566525987815168569110299338406421843829449720700842986624750302004981724057045643242269992511648761965419433022053757425354320915198872935030533576436489319602296229693507118159483429146253104134790408868538814178815162840514466809998444151752359061760231932253102166063022637448979562853234853090817108540878214541471695475223934919842690614303237753520339195687808557868044912473752483816204445651812060643013394613764780659948608553053124223302747047601369262467022972506583643379381974817854341934601524297167264482870833749569355747739173152449665046054768318560740390679898370002859945286686540488111987365942727414410511026119050820681836274020987661050281042975317406986125685057281196197909008918839631755238039933184925852029847839068073039859976753359952128981869539819348838945757974898899260385079876532063834220498666736773323475053089590360125273131632075271581026690924508969449718203083846477498517146111476338552456353183313666353415237008119010038378948528908049592060281722520103777738600629234204259168638152977745458240176991508941478994692325784811420756848464637217422817452647452578817440391203791156527748344921781710557743233663175674429698509071846858276562276907886667290328944222718765261903516376121331171179963201361029884701301901709820589535713312012580621277321659129703522481925357696411957050545749591179541626752387470256888412869408143418333365462489123142368790168397378750205270747224185734264892093709715683480573600184980595951079617911041332047950114972308985147551531708035993365669743731489977331305785435071792844753906684073456914285698251416836120821412602739024592665890970701092892097006047318234256416914992864084276301259235323908859083256767309191169774928009074749386378560956336711457537724466020297530220858526736443130215334998572076221397833273117118968178026757969450412458003778903236238946114641942644461808092558406030153415395376256655269538837010918323434329185393224428487806088444254870383462394706065486703088708767160324655996144980013468412563512704750843717904745140457698194097823071385665727165001647553750650667494770359252302347386719050714888960953139970089317139769525918964192147188969531581474232311911863538552366489203256594542190677456526802349635261115510119635434733753585468334952927487743383519232021908651701038428938768367384711750959318720447438607499292138315927667530493304132881948795986069883297717365098779768161456947759644638213877711637274729726339546853927558253958858175551927323622200411028299036570816531571763488942866930166432809978036708593535276832444605820536179527091640785382048921158161084702998618220342739452536141652014470292818287903544949180100091549770604677163096770228149304013720499530567790653202426997407841186940452036912031525622282664811651199165892369736737255353025229484349629208545346926066885794631044608988804778794049815480005625378398570107382636721706093615153973859528026385512636907007549921318077848725944915541470227378381629329530158508879637990920834332138168406480079429229000238347048541396339845329432251897594110345823266933948755819531731759106738903292759082628331038420124993530892600046583645038584685822476910741646657720538414480032727120236825356882608384728474147877974754587162440710319725754532598102800490106624745700774861621975420893731235145310428869666699361381785706529149359515869480053209282909724257525736453437635515963770159522621995975938764833488443383802721039217380967434553064250951241796718799980373149826328954103114566531968223461779958687259349829431725504777714751970165768606799111948955499893531429719253028257490956041556238835431411793318195243602974656399842318963500789906218212723997136076942441235266860087569370726645620030634776739588685409352831270246892402895316278953645910663029499446526647355032623616852639839260948856396785162633531194671543415818091258200211682809627977150364253528164317657861828573512518475913522503461920311096032304216747331152613709018202084020529457765348932326223525966890348316041342021203509047033743488665324593899896109592478429850649205508886473729163358268628410351173957565388933147526344735468390176231394260906721986820996835573364074445789561011617127671597920123778744896119516988348520667653810595480491277034312003112952322783681245830451590615860807221013079291685016601632387523854964876269474788726380032596406679618408263914097702615989324068208440790535753809572112866058481626836407857056231167689919519942702707247043685896897596291723744181016109215664958089283732378208340824905082958502885865666917753801259056022600493947581178501650417273457624260429528210253486726280426272788351275743620138555627889236491543864927781548977650721621685817674372996380540308023467806566961234780955302879147528870724729866303767807825255696132180333805512564601235476558080631492736700990123818743502038580496287321302549840279895195847153677951846905278652191234964362178264261969343882111937718779790362016329828298905071062562489297474420007093035455640478417612072921216752659907804661384002118852169203841696123983289754440894388187656085882074551199741576547768366405094637531140492610997810210157802651712691718417923230990668255925696290093865279741645665533083139114929961051744318545346927792637879806036154528612995759924647934983546955303979003586589400963556227519765601921877310407706444086375752658074712915541658345652404237781004998006057081387295087656705569541383740762530088082580247895771468007156445505630426771561757972456568170110019822937611384215269141181565724343588985935794705077208977597854283534000698019337218121829182847398552726473649809641916578048621681666614219664561903164298956425723112042000103303322438736704501323817062780146094776074486785619676895983085948003536601093683575745505371490936248630333349663418770900048632122817051138827897499092879878219461600282377045332508116903529071872814904263109109532954499806567216386666683216419276134230745077121819800012112097045803583782517749771022947772256004060577510828275813138578733604702239843749284365343131218402242656635496431552797224711692757137288319361953457765036595676275318725327410020836642586121301280819882404284134521264565391933709244265774024392582425690061464925694301938310997333425117902867102086673480400266737031606395689234221621664593646828933314436251022764295037499675177193851151533517635184148802440118679367276160807690898116413659991071529446439052227327271058145820473650728610424993993190907841516506399442401584640977858424725196494243400377139084074598768202169937759042981541527718748926407548907652732616232750429754825395195028895242214609246955040560751481299083789400251279143375545246354640532576741637874685030814195569921250195968581231981789886940110835745453750291035245141236953140552706255179827631069512598855450937822076576341854512813434330544455233481517763202232027806024256425329780576131475539492990349374948683308344348510552451927595564091437061831981260133604908936549747713428340540707521411887445274441710401924065237921925196259302175535939931664586297407834900064468208711167556157424898921815244020191948388336094081716086026823138357564143267703568278837729084373608482281743245983593904581846193038624940733964687380188248083402059256188872869182644684368243871789240245822839925170011905575983031415187953239814521773377728159854097851142483869892380573516973443718121292575621401936795546132734463339651098036176807992166330258403400547526040539402607225602944488539091768177026477963720476479741053573284865794235585920599611334118470103048482446462078392906249749169609121465469867289186816011980584933941836731463899310989606399086093103738240657211770252047202219653082818230354667972444495456106584600736264363907910424293186940227946737120192842523545763760863686204341571345428167153822951471682687425581625949459658501498124379194356272646820363313851839367781951666134573929793636187968464498612788200998832175770792349028289888840771244741818092088483897462848644135039427933831070829328946305324487093321601807964665914731997391066821888963278737966699095669392541223898861138937341904323889501644354895813383246097934637770316307526113197374146221591294612580926541121534339085605534092346074587597846558073137748838259738841557230225364606301042094269936089716502839712103296819925689284581403990139536564168317703013794524776416059076497245894104719886189786049312749549735236357234761513602209608414120043238738683966789955319242162585214058941590425446279677599643370674790119857728994136799060263233844095763284130371378198318005972285952851511189973077216314148074402486551744839183462485237799171679188816306320073874474216109002898281345996585396740930850231889197192256514021054951027055481208298045833483603377032631059256988396745039146739006106218911085571235140719139806679244928854938387045812422968487885367426058093059702971013480576154681200340110094919524925677692148353330297186980811966253340798384664772156149820146103825400576329610796909888477323863102369942259206190320511585914959005029814587164016381324249832571834965276980454438268118670387692727318535259566840087457475826916206351808213423441899164408415064460209663332233749148649244902694074301043532400723048135021606958665630289169882139716221582307737024019536633585048882362370996621778242001404963460243246976319695808394735042385086492788341330673733080700597725521712525340727881838804011710194490541993300944397762676617187636235135553330264892361835189427679386747700265788908926072612843333415837473801774478358018161469620079517249925359946655325309382595955555885901944774721877831125169814333848110063823157448080699712890839155063569835935911766315707593669251579406548558419519860292858274286427202656239095559646963440865409959464251229995483048042071079628162366077347851383400990472747800681148439201134746356445176787761412617017383944299298519935932678593827565706940989719661150085544300055491890936250605377790405220033570594421783091376870163947232902973947554296306236979310610982406163859866023934410213745065265861916261008653552710136145440090508179408143014821712537581815601749273437361365487589638438811036443295370498433512959789517337920557241106778512610264863723548546238766920546473514959567438612359914160333741414063028772929248550525899032051469253878389361935770728859717613335696301141615994987545208808780475613890448484662383865786181293462565437306591981969335659121983946783371536814692929398770809799792394812289075798080354279515973589945534954468671050207420926783298911314236532175378480089455643401072141773239505534708995731660722851222071555832369791813569537537056874431547412561867283572224246941276982952815412138507692095548020364578094775754400265419655523732887527221882098663607333284809582133649830258574391716391165710261360401580987262373817823735280577391893612590888164173849368892802703589295905202354708402339808250601790733325131089389024383539832376582980563578332548377418854235157395345340050576777061892100839469364091510539805593366462661358953362727921839998929950854880788785224579025571214731090491134701803290118525213105673319839409943875968935350867041551346265760909645593581890585421805500804658971265334941001585332836039466644404092777412106994325110725274416995414232868974842562159278695615375404471643172135817728516449096465931472656607120834831317820340857265873122292222555892418205394449608315932401854200057324129721121272138200173373875560803665391343134555349571993504362339529988697617455131756247271806772463765188368326639466640905748787030152868803345176248111012198179957238248881117361120592757743064614761692899624339384405984992681403300820010717623775260093281815631597320652189734362414637725445458416781726768425345581002654059959556873456478096553086776678385098359845914693604855016001147951120881057402288409670925417952262097035232064616828188659072917459726623303328871601753318515263523737332282898355292968606191222753331402589670471106789322792292740261412424950256407749352495238283591670004350877094679337099387051034679281912197821950276266166446798487131960851390856277501761382482269835401665680951797474939985994539394702514985512109068332881792921603862153750864920802547591080376331676678567867222836756921936358553650912135816458771072881551308354217800245620536036829314486060136722632463886423555379255061723177679030208776719392073697010702317648220659868836445301022505970743424402606282632862911314730726201712100661827160079656932097226021932966263013191315217654705622646508868094945151485545265743567205216769904484993480043389174709766247237517598003019368173358665081164870878565184811768808360691873943755350551570135850179612585623171615994370958872585611738017798895865180733957255957558455664583890160888398566866177291255794459200928235334055782580549812293928346070569170345215083811284384231685062690599219376817999977176145834271471595503326266743409391637690403729763562702854660666705850922386283036966377301484088432141894187639428744864019775179344349652417053114689009367558055388615699936456954373811515473642529056183243880452736318032386583425707547698014889891711776301810938027520365535293090592370136414473279575134792573481897626984017073510987414592500553275782581396075244155413168306624816338350044648860810342874876035814676792655841433667145978739136632305052524168356599938111952334186042203233804010846890510302198336043879202092386225370608689539576906557062258744982347825058005340657641147209188235556017802917308831310027462470498491660797942349134221776807745988285767426192160982781704170176686182921669101817082758028431078612187447774146568598834997751872537968541705469655339139276867175019428510514025822719024241720387328470855094359000743837443749140726800856928446510956812586074836819406885714013974402806743741883786615181434131947482195079380509683930423000945466161512547428680790478925508542466675847465218978261299750484789208261557173762448571226973638860193223869434851285169810962511440980817715901164609078105080668967651944191060442259032403393730832698211027097072798099656012795332624817418499718884817864270714582468060173136088333342108235962123876927755643789850839948524223957654300982910925865024288846120962763401251928791071738146850732544249919390194898045334728794050169084748338560689161486135983719795566558957827425989968692187114227635017776304269829827866990867792541380097410497222547093437703122384900453964215425273514075627841819769786486836027017029214375891321348957588581055229632036595095431192752730961548200619677614691117534344364856156837347761726324456325827999949510405187469359032458022647635141410535019139319836028996566189914891828050833294544587207623358693241316516031896918855252536444448716085127850318914492179634478846953586975521302471029305251728679371561725762217073559970490169872738332995568613663592351575684109986210678087026499196167467276118016411779315244991696146973028483013110267712456854384456193230271928203232215395620844733059104998898614635367806629764920107436802252138805777590717353865434401350167909941238547541474089583227877944425406520886443857583487111286296361192495000870172806144377778036592839714741306660167465137816971465086189277109052848943492161269297511149015487289863838282491909300171010988197413947268497336664134024264072424751077766807305128854820626381784843810212838381661658158667906855517408695048862085689753689980137622273732525738993349823976840653866493709241065554675188236291960041803199798171322161198724050609700060438289711897219673493063672658181863830174084167404133100410645339921981484261501501619457564338848187471681181837510450799769695493049295449996101643465284699038966012498538898618560971198037712839228925812727153937957024399578787908783201225405439842113651760326392338952384169401489805294124156131433812659073601065510486021407796977818250196018573689840254653604605258109454312893498787029760698301104523390327284217715405608931269306835156847079139878900831138421392884392830235442153603618191597911445254228078539548245956256424828134869192836155805396408430831680313080580903275970035057548710564420364035929563811477907540583543640631483959206878006687362575917527413722963174870665936490044652563913962458222168976852258096012763616750158153270025763625167787648460619911397927856001664299446758070284870320501185436878452952972154775984434805764946368708408575187702949585403526578107536605302631590645222400018236452898068268438586681171826092114427639098886116524774560141204566356741173102821995020248501429155667032791264052170351422817821111671770964729412481172211452218822476335091004298542928759311229570694555138449202227522463897414802984154258158601373119787416076961264445217641596340979150616200677104847475622623426720798488707976306030976718382446152708389415034137871843640994799418421328343078787770317796786849137565214441292018082654220326552677083584188279992425982780872490455336913593594406969293127387070455532353255230373552117388116146160950185424446771182290742825176310437510496925555848908803385495444327009746710229421669432155204867450267593218407613454769277953017961093114152846410971390765101076172862259072226335495751853258283742350796550849260609388082402344426593067277799184240964997251052240225281675099679536106339031622136354144123606335413857973369846489636458707732878973153070148895890695604692371282396886457691219747936825893526500837196012297796662019229080249971476050005355142554668908053969495635316317276938355454179965572531756984154707432709234569771058968560209718516304878178235873680488170354044767969130872021861319783130688573921000048678871113242531945933201511509102025173025356064461360263146493557687419945686795862119823686639839456422892401421942939517088984926973858989079239148852572322873610434606687484671891263980560295132576102184865804008246238434519090869431147236734043135594867769905437110664353685496754409049124085618847913407408994035392137189690399375427703251677149237212507860224593597068840316019457965432976917679413052411431028877011056755474233527863708505605949396077624417604542182597804948775702198146378121798499300984614096434456218191437076818561743514921379463963680643325190135154131319080840667358756982240537926879156038295644066214581072311811026815263184359938419702834288235294507280905285592828716343748595287819692725163672037812806866644162929692229373027055789876979443435658792909763387753486674547914837136777864231065583377912029380071119804667947821706165087373698842705325190855319990155283124193317452240240396407058154125328219402738261597393656371040661093653853936688551601669647013059398110055149057061500989880093511983349968417614455801555122425111117740053816968007415842365371861255673766237825589987376838049463212389638621370876424489241263179689404193487645744189092690753133313406458002660602117834403218110805849991444905775220855282579794175909319683003365853105127988796439852089063261631201302487225491844096477013314060134319915122905867066517177827810208262235190822386680134241770262075733120680683924192432270867053539371122212507896475285797576469637125724284680804340780095851129535107408949563818401666344072550062121784529690779048983438573528391899101706124853049561654574100780445383776582965868508629076378028468845741645702746499228339682300241636093489697066017476549669165222445271203103991168588885697372629384869785883393945791243628101645787625678762678710905421662166691602079790471137905866824164739529923623885838749453194472696847961439017146023361623153085403940429313237648713682141086913514691671341926031891068897415295812870350702025176934314083237393219991243485583210559223134665217705125833277930765330263174827149694677260751829777458559603660082293528340375897166259200284278855933924095495728198715294773801315604531484181544755441544203152018907912474621891912013248040351836872719281906202152215582909244826640422972201550973403459846935452035327026816069926737366422608572748789718606380592822261768535549924539661874365405055599387143090121565831058081302539374816044428563549995170239088659934759715007337418524953861541590486029599594806758731311490257402546419809952794622609220282182208392696105940988350579019733538479664300523485370571029268596049091073602291995429044022706145684162789738430922266448729357559393551396141721899522146231433026055519693062017125874727500742357903057394456278878096242324220240151752494962086007976875887081869085784995177742300855600922790448207282491514810148125590192645189603773689270192590252877498584565774136931958851886200920290768032041401660560973984215184639413319763082862816640672422497109690102282023067089681618093932096454418118396711483099521082358564462949354078984736777227536970048563425448031810821524292751556433346063357062067619285781060199903280026716526982304794184515692644992018071057106380783245861076059091394719936342798387041809948177985509532766908628782523387787684792674698178545197688083695273861011392396403294999281017768301510953383325890521612368370364519148987463223789085917129388438060125312741214290277027473278425315764574242199496247501895413356416954606611749302956526244339899082969460872356177642814849413530824366033061522815155217771235713655161066058981873382729266918751548679020750675652074572921768791978628783633203827430743553801605400763699871715740644336076027267136778303239455802674953340348513432107079388848165742636091627829226722417994959629461138866916920618377217567309238789040551807157570458748772553897442052716210727860644067422065753241045470399147517055110297561762372257911835382802703828642308556052656187241751189861350323777569859216057499802519914310657987140277938657004917449606604403115422310497682102765453237414859566034977892271525875612791684534440802256077824566380891965169748419998734535360596872077597243884425102270257997766669313668831237541230783798932039461716614923798796942954122555886874655149863971527358770983061152520327926445542707455360255836566291203582613432648721473611852210481412833912900909311591906743154929067945379584348514128226025267960131319030271109027889913461256974201934481433387650524891380049013588334096586410564859035439856343695486322895136568286715949558650954613146328769410211929388105015742303991356133803534570503291518926515975430989921400973573162722135999656575496961787193751549128595006577451963012652755414266480570228948107692349484456673720839874719210863417352436718346646589790336753731992302881012551373347934968009061449374477590161595444300525528049186184143766587282590222995475221774402099550865058201470314378932073932640742631460803524498820011146676056409469578210128325835733746966705595293089337057622792857249813086878680139721550806896373846606803980544114648977086877009984521202690653588399200726510413564954156518310810906851439022181222309804306686591446373859067648236652325727811753352998828961103689839361354362940061857159654888132306978916444786289351284068463074251366377689842620569498206917032030264742547646720322232921508538504586864888499364037000019246151123922407721784089501629126230615602255004637840996092399884081848695287925508806739994995799135163488076354295862233631932386351414613721882089543570803033802576722385066410068352309364238900715322634545877828933935275483166188316935295388109413876317731301994374618501349128652710985735367723721621921812937501402342054352072669669824747694660785162950476600331131438346987604887318159193152756748333990524588951593602918652199078011033903675851898557051094474674993814220261368277173065727533305320570535740236321426460331393539611610422030510183332533190185803680290278697568869813769219438841750192193895241181891101487853407380293930196236401412680188563763580911314479509114947711563908006727335840073169607501729276547885514234204793899642927223086218624769545453729556730662642299393220595093003568882851028143028373745555343548881700353040799815381496061121924459520623667786083049303301163288467676982794817635924190355051019564739540782950108450053554270275292359648114876726578993392932555205537731644380017552325174268751314244470762318624899830456034951658244673762945793494745505590828550269681043304234940108350297665446106249907617902916040144764581493100513875855830727522772093515710237956743222890094025921352612634449214707258733194692715345669554042311584130756627469672154733697574290001321632198479899993303658095845267722780997585870667330345742518553647111007630204519046822240804616654929824459117189293861878578066801461445051970610476253997545199875244955851199178055356462484635303302534396842832343541553314372286911546055538069367292600254375835137480470628707837736480420853054114948925336248955220801055487296868611066278261103802069209638268525418485325870810366580728030405669451784648563963195962729182372100306313153436873523246041556670947482318175746862807678460037314832184828457817087223519548977356075615405599877205332931830640718358464837958666135243023680338819556134466013371411068636378072753752783484134841391165701306820640513696718601871975483010337256968276706113744662189589765019220278155953173581195686524683835379182613201893111796268975619771574932061592717718912995104817154456297149263132143698073387053910688085369557984657086657781356428618915987541304700942596029583776586523565395077127194888081640316294510836374463883893490015251796668781459299365331652721624034180227305340693871111204218897811638634228511690186168542699178397768728090187328315366961193869511054415376306672860403518235785107616818134467661250509129040100510287896541363648135134138258219432193633936925021818714456197178017039615710854460900681622784056789103270575565129720510898520337837676823303566419012859627871357151871075041183031187401900719043383423867196073013025120666136654288548364669618128481468336824687831196966068012158156790154551620018481559521812933235712304952546769784348310625114309066312273700530993883232878439926690140334908848320015598048322873492290723733202974815943038832919787856966314169915126708345804865053989875704117588867587642251783064030898797858431181368304466482690591256822515034231450036280957801336574484596329979065343441681202007207957398429792248117479327413533244122867886115173120413464778301647251663460414542993090308407526862714602399224930884365792231664752841285876420076350428818423193989323953255366450353785285132451914115713848574919559945213577535152128687701535381265697434001834339140202671468928501461926867952726791359071933998002587049966386698591286724820499753527134334381641560351826190375770616153869799213562539768580338240573015745598334137821907340564525798790950967525480679579175775558378681345539893631425045409272914531930701650048203580419835417878643949848955602196298650247271983422135019471865935570978506872720479166450006226066527731363534128104009846633508471426592363635101953107170556787385294890761610447780178263610232917890650131036910478260278955074369647338875380580637087454891454767683985393307664877592917676584352462348005804567077793361993128780917923075805786639866326237987289895962055119441534808819561471217416951055693715236458734163892222701475708021381264963276625174007167807524335383552409438986509705798670707437406276499014060353400718956188693095233651561090134700034394045119893818615705728143906045709717127724511505339401193999072828003961963113285748668897535999745729219692322996185948615579164140689781867295076667875540584190575185618806144013909178663269925979201832192801109054887954936126990450723401873319678622771677191981751297801763766215798521806423695205062024923974987665798351698834673255452099475564104351437570595694575013304579999658597129419714155968983847312577044693919804303822752882421156255783411187721752934627374090936097392196188010593022835522860492219163365190311466572089672369666381144806368132972819496802059807671251072565100627632552605450487042773891230250414205415643570354487647620164252654979020255930553751248534646459167606632453544207037440766854709347117727345297072757760891896759172298978577962284739215769227020215870376244972851910937103414862464330038832854553756144512857731240438453671475819363174126104687836729811512740215452078460363513510634277947813331461897145356375486743947223441108658473486776565007846590269504875673823328010067038171249727366280436391208752624153128808803279686618570501067816191522088790203514376193132700611022147081817846379592619994872293542957282853650702818266891062417212918435864854230331879450708868301200023348935732371864543045703904925120380976184866644916466751285539651556448248127806518662819195968718485428129969061571156552527451912263834371379343799390386519017205944342473571211801408238374491986803487741963667762288583282239097124555567002277774716125188713980522879094420072449566027349221054883154706473025388368997768947036566020504577045864374524801124775386901043508044694343403958253269981440533355450351191571960200178999574422678117223554084239557013011658332484312393387153296546036739218979124193073096456301649608017763694403380608089868563823225235863995138972493907086936191893838657517092610713423144827272034400678333296352602425484955994436964505967866719337731134233835362667831000104283325018094099717515541698345297537346391677888561826972211809260628038393162406140667047438555059435302878042512220078332786509897246739143341520885887777739779333280618369005739076588282878366876677282043652894169190042141315721630081585908508667907264511087434514135545122326243518153402632548451548987915205114140855562126218259355833415935039812783701458855027231949234624636468490224857947224437651980391804217461538624265754640707107418544344625065148537523176347826360298319001342034267566892721114381287056462368370779352536928979267006389031874149568874033018296858386838291677601570320619408652631085288038436327458745946178277088458489612832372053460132999657097583464518125504472712435727508869422824883276288522732842640050487544392307627507681870901866707145414699122714854093800784625184141984646603646936321815358934273708324351286301053531085867537785331554538950808599422602837483557503306170735721778041551543371040680458252272414799495526715293994983896531593859508118046246166907184983963761819152927315637936186125428396522396504786717777974174841825304609190524079333701884076485137093340455279609512988723990238725535856507817679174548838286269319684047629054534622050591136531482649003698114179047484687693007049235998348416157218078785325144866897301455082412260864282295541273860661615837730432225456512123490946962971054582388892992631781146513603947354832536332583745158580398763329817510760088883572062158282215741480291166415172797875816055898203858948776009733707993045532528822305208205112295781109885136299256853903326324537593040740476921661900048434205448636112227784336825255463672714252768199170331237790152626272753237879093196581652216019415548287276494088919979270817282172917886238442075844925382458585428657892202288309343616431170472885954944835162196119659330696872946408317112865795195698346327325051643673405100455699409307313269981160830188412224346700498752962928927228547024045826852777321110874566195371143994825085701560905135811906574692423369813228001402354900330315575547090166309979344050465303536088093926715532700013161382857209188096229832330102146589815261590807660735518588576481357212540059034090456142923827074962575230721230177527637247496748916627016521853632174987244121721610851657741397490737074984376919426274237894239633690188837231359441740363674629426054331348654656801416271169322259164664983094318814663377808957782186573147305182948128518802907529895115145107632703819949506298230644777575050389539347198119724475877230064467431789605493456867785626430201500322590538943488955315209561188035501284952637152501912309339944018439948130805581433209898934910198583575618906525540254577920989069066255443877205128912281069828392447009372735077310271399375010729986176317118303358212848674446213162820635389092185801184586912595369728232173207403204887694019796428212003683436910396246027499313854742669610741017096536268699129625179117222265057433423691959669783006975547121439456577326155191193519816818239738041992264935772030576137400998083682229525803850683270936057913572768502477569863822610440202809169596574810680270000189307010830236619308487182030847299041545666073056205590545049746092379740384093365651819878113625328155841200806878655610611990935805728652150403844812341581168132255130950233188452247037723222272495852391001109582566295332996176670950666215925237586406088532499196109321004369424049614134939377694134108165678524848944269165825872080521576580589642526413194769399286610018555938119391928462270136711799662761618676845498521063532042161064322244310587194258828071284872638383866602979596003333562848974027602900174747123240656514561391184242201255057819711923461340564918443162610815456338523660420309028595061319758286112601413325184262503453470325464611516660286531433487212243515747140636877621873058264790114469859808084745052962475139565380779768233301416646223234028196318302798319747756738644973836952206528103397122195219566700306255835277263707215957413127606667270659561490155218439908205335279155479811321294280495480580797084479229727008992377303511026339877808067012375631119936083529797162276073920119869262772691136103959614616111315001409418547126430521529553939139596780080555024469848959420162069695263561147277113263452474216797768051279823166039841501392370635225939129799537685107644001663436580953097689011823280054652204686793737568110635604217278283991530473090358871230345436064832564436646287511844027764924015794103909565580091550291949969165850681932391760869923620067510649279312336044546669416595780820869612962997655092799404790371590606943996523508380212178327075669055909383087548659099886211864902836392083103318533358929060550220632970109700003780258151905583504140250338168995196383783544882937831362122454409985744617088153789300077807017386730715169404669483773439991963909648496392346418744898614947796085969547915436382048066996156664942079594570800255153056941791155675169643394717999262287830373432928431735985941678288839029910937364823698091969314987077547515113030690944012440605473718061650993060469034881525114510477871427576916125470054009997945730778799410798285336618061852783780403701552649824963672261627965301493715064999298723593645476817039822668391538859029126345924474374076229372422932667626369022356250190217521467658761345760512379052526361784239051282150678332354945408690920942472111295687520476958385253785697561659707635688863395291482570302539805546772206037316403660102498986617059652155536130899502596415683973040114210235315753606715273967471152552915431056948281688824847576603792258616364449167745730664082205244455142119596528733577280762012146741425980719425726737072925279065834561782950386050323414093218744877313939107670464917632309298575123387356619137301310332092028945502425811574197350694402824434881455294875587929524528183955914678999915715429304958181608918344201568493632589184774451333774491252788429651028546624036216999633632990116587474193809814322209050601187273812157608301401735793066246642955365131264524263405399250980222395290369451978957842761011769889110545017657089068480633977744116471239806534740987029918679151954275310718964926386409081147258054977232812693708640300065216772608285158929183372773349349269104416405755146742863208181246016716142247600599416925683307911477551660021206895546085681084571863520692429861599636192233995442284125411186748828540129015366396582668817821569685976533317073803902728075385362124635623091754466880098251477738177484423835343520738016731059588432131059296668237799354334199639806915486634411687305392570019441735428409528533831381856184471129758042052182271093954180349108048611132060626719385844573805298844755722479660645328194639784471440465536571108423573292399530494796464838631057245743120636423949108343530439545582026031099669333030052398474913699366405321761329262838618612756582193595741257414282022615475433828234155344268521060938975771841443728920672429148172775874348122552329646985512747681375137887894737113130426351425743205690259224855710904591548289153439171123297475280051164720583119296886256681567169425042424920067240332939429425543619595163930727059937278878706707768821325457090423697491984839725741245243619962033351150843264995875627970765411057504452635172732708545364539773494076799511896269640813702759571815431596869033621624867455423984213653501759553659990135725412679592193480554856786863845464988418322964880743396554482701202927455423713876016417810696681675152207648330585438966836894736723702774068424616082994377711565404262757453821505141110524315959866589801542185251601892111781609601332551692203619849145408284559821564159487174858992309726065474213858737793291307627375994686006737668684649119928810017997026100474185401556439643045974421729383066160507408812516542165926095621130440999649740310214499759920889948717134365306632632612003470089903926779409135235891980748730171553820171546887091259205189571080611729490532092088178112970200421664105456023361069980486876488189901049372532695638101496227186207914768964587755469288392810366873460660387574950365953003579080313458405211736211802508389158826889462177408062182986881413288208403447139580575241515165645560567187766259754265039014714525597696911980938123923246519169680522072201104432789913090878664522166439081206821517082554171602964937513182355220109900312847663179631110931452476977282018670621702532789038771844380504066082689969198435487195567689801456905017009517927936656121901921183403802933484709523594302422932081431805131692765158016401158983732531279716897138915317753851948827462416864558534224149291024854359089561958103220267492745737588790635682172517614268472296508781706420909721207190489237432867261026783966210200574040606114824779433352793929392873262467356163918181550901912067217670494319820124626295611663274324964626548554306153322245100709923923064313276384833913807536657251307559234983897769381420668097141159877218692235164025922988351352815761366781453444977875310694903847635422992448381402342179730698622813060455855715643451606112853742677144438730177147259584822446257084674629788017651503100818214633444681661089084232398745178829211343484695465088080287006993637378778309414490664359176651516788362965527436069010678606348837102450442500110285734648350835988517593452187628939791297386961152296053036817686089709360316021158386983388491530912883230909276001040075910960864549294209744538106378263642387883667762294611301064966402898755408966022186471208532745857726703808262988922405761527996756207361250756087384607925545549862865831995162595793354344552301752264361481596622567305501639994857589287178880353206911499047442138040281970636699512050786663466251850672805626351774328122825885769012596719407639056594639200699325004087197474792660596549381852522207288695247938140148081800011057817258386422811810790713037893285868912041536430703824573623987007155317721194746034693688805759496959312199588576050042470407624819225088893771770502075695947762176025950127408253036232218071450640988915325865534812382457550699146823731423289087188746952576849357899572179862373031533453202968993230470880703897865774372158903653285630942141230408989712789705795331689348329901731048180090731185665397683307454694582223220362042506015316961957223514458138572579762723707145522801117124109579024397939903715931812472796955944703173637918274577140939882562456445543998550181330606992722747021239204886890016332398216544944401811087683285467626850940858728069379457160207235184000276499874755454084555519634703700745574389645800556842274560249090407697664294028298683274422229077030565089877427575140508760918199891473241759603189360428562112795542793564367886836406597448826016371510865212810770531231737504968047759622258660904907679386754510568749753761472261757770332994391776797498066017381471818090936157471381128414389280327061008312108292559044211647952141379800119315216100690303550416531587656704990724929342715905663467862987473430127813753186022001424270335850884476544250552459282880975135193175535159736440112935986550766484377835950639048211524049704981742778374720084535535067215202538753826244860325873911821323020142782840534268218201908872760167606935588394458647106701230164850282808238079869603380422908877216621387493178862869515464064861030237770062688405634904422716303964642331552099053086391662648571527782858352930710968176113317035896774406028791626571838143929014992359436287086933004244342190529024128788352601953626438003572759751325515451816871868004889657271571432537528485078017409241522862681825994523953172950367819102872052979161609791446976540510186018340313042063586127897291471203895582227356325207168083377370268939489653583419196833809696778212944480915550755778971172948310327558459059608176229047801865531255058013500683089807807398929183620320771782771757309635035408932324704713410938086434658340968970379619673631615816816311464408213411435143326118895774413671141140429234300840295300446059172846225710633493920422263792115671412616954705400161522266752242737036470248903735684110451982023651146018057081129151851750298893912539575532635499920600561893331334511113407962533418560116918393954278313135837079577896835666872734828914222665497181343469004816302479162567074193649126103760869105509669055883927595687668887672158475618016685281097123681860561858827828720269108433233705408691292900970921658916158485391297117802727092920951765357148200037518934880595454204665072958122493382217052804766495777464432978235601997748924826558482669428516271410151305453214923565789869476705512595508570778694614205944542392664664088837767469197986658316018318453886035381795795485117848507331782307052045915450696566744260623572624335618448947337359518720408929349555832154992853822064170524383654953498243395735491579493175970670777638130112586135301281401466873355719727508319856117699497533994357795505609244287434317813610837460148310069174131765869833481915016822556281617552787067267749248080261911067154623960080229459329184837668748900364049726256026911635575859784240043060983113245323899228457583195516419659967269789040716142567827959885867347419550587111640446902663336889687041345926976999574095735879749771993130333643557028022207453081020639375479963571730238533237528372245879235723547350579077341536227231479192661330230017692676014922468645974657686207501474398897847614928826923220618429428829901670487057981928541365663677262050435225803981980501377055637262945537431055439143212266203640603188848845244069478466602316184471713254112887432287790165841166549182242365703540283848013280250932464910716879702902356159945156074849910332893195093859087838138249502698115013904527982474897594503412855268919434904811626469499026725142132630193233913174690647927144841606514387736659682207708627024439380805942638760933442541349265141420419859297194456697496614514425598386372874106657029158070303261236297059232064381803517123560304340887281388071900307345012435720126019381634194989791930544466036976647717986651929540204485303711242018775430466570932514070034787730801835873733213049238656905528967118517827367898668084447893999070759956662958505069559513334974097830500415454127194093801019144027739516362810294915154817063899893344881102389916148836823200344613599064297368513042899980026465057842956490234954548139691306081848308124839961548479254935650779471278606129013096917592923081118852035019889545493195968208040406897478186248237899541688576706414194145555528513693531074212239725066920412752947427585478372329980756292749650207879035674392548225550096658981764210698237423648946397523394457768968619285252483198717364391722039337976369235309763018480442421447173118160072258725044394814565448400318373607212969787991807265418710672774178516825022072993211132345892482725330882565902647584949847400514222045791650911830421144728137412457977933024293513662510568002497473734582692493343829238974049656622365358551033922883191766228481671214461953464289221296994689824058190623085339042857995411760129615464420828737249467586058950579421923408286004745930711391829061724021371344716311771034005438928428353326383478283697867873812915260244365169993395608324192849813671040791822214171630814755876828225110760660480055645740424897969150411349708908776104861960117471018540963791263734610117749016876390645872671036846134958563397006960051504386527452691106691427010292579525379656384031208409570359550641389770532034439753011760144500266814405291047396953679744825450553871261642457649115409130263970689983533609086240411341524081259969052498786273793393691721746754806682293172643914814726380623398034399071456628015550866839710201419833274547706112276558801801644439093893779212747335150662418990289760045071447173741970672904393877744090233165277472062871688595886949996005746265430997747581395052292327320855283490459021894345918737326722435948780047958632791818453729949881435668341839197869240559539627110753965893468176436658269014868175263305011454265050008974956161377422840292867508129742668052954775501465870453700881471728042586263042139168276029027967206214931873069329682325663391920726065323077759741975940527509262003699855247031898740209217290787003095269353929840260737169689111648516745694948261906786868932393727813837610227310055142207825755895281916846152614219641331709081566567788296923793991945034260659635726869199371760668429558875101774734758266776051869852646936436443414957395806308316547635315219190735034490760133228645294326919667943917460505273766652053911325334211920760604223189460426998083155000075299932583563687005444083666044291684859869568633303614010061067870832131999669239860488773755732773777239188791920672169998486434335134958200502348732983580361876597704962660791616205862497754227361749898448648535167222735133692150045559714168415677643066903085058530838966514985987397676850617103483380775025720081432547287988194027968449813367554513668951468483755241348964196177640815829870267995631116080663981832440721654807195823798165282397472707006739097251300238625547307056806851437925247568569743731090054162456294792420697564174075027895195395464298549082863786469338377042660845287834679912424778124591893768695910413953787824720726165900629961478519916316288560676314615034298781064757248420983326295121429810906587463668712831709658387866484988196576073378905458047638361518386066201167682169377531701611547016449736248887583504680666247927558512671520224778716236800466573084055447302637896702665444488121580645493030640116961208723061543708503307570504595274037984591164494342776541993459129421181571747872063041092082734821080519466028656237680259352607708784257073551773279203193495881590979454639595205191379780274815689638111364832127341227439140419289192828398297790281675348777446380326836181195103689790354170286681824152077546442255605467575097265977600215059723855279061381763093120189582718329405768616344706259698370460325733568677651525407453805346154251947105042943082837872881338346199132066521803596821358070645992344314050381563401367872793428109578392658261566466961887394572790593532965125761983048809684101324334790987923280925770417974308547294824616887911126463515769166387683127976603680541845799609125169660355530381587657199046369345916326993517459448039640442770914561862140617081119758240062441362441425417820508641883901556502134323649235209655214850454465568715032946510941353664202903865569011534960336908561103756619528229887161101210442638233236402703176299554736239867393104751581789277145997062284580319221118459871551920310328970276677610047082645391184948320322891012248584089873864738320285367323466457034362384045999709837810752371205300393054266249476736008201683766195326831196319356659287532824163414158197052745385541458671902057810430385336067791243417868331329025711987071469866003800868992916854439085415952987591689602953723856428114201767701132542401451372319933197970191965411817228084257841462144368918897442652669125459839285439966505339683193622834312380244938693990905104157829580391587624728252725918844744484294053591669607273167707152551233078149763158356554613524040019895135208745705201809418113785317675991101065977974089153251696811923934159615459444001159237498163795699342445045197318461348427398811099563331358992495762993727375010195495070115464561066535701300592073521002178115690581131516736396883356074999275180410811962994362096778122265464275425951412703454913367444033513232513744331934671992121045981348580453867256918383832271526397347308453098377893379512025517315213183724955816757770073238178839067467174775260533420507364635042156159720240646831591922868902493743973174236488721074116576557538848331244427431066633456455819977873525790369555521336394608109256440622538232977429517428891458889047880959702351991876930713224252960178860074260666283659760886873442756912362621374725194205035825192901694201640486606878648694606498504200662972721959891692564487853314458834921103442290745815351983699893862286318550798049883624301992616423287167377351287482065882323723652082207154865809940833345172323557163086253110731642532406022137065894390944869701373999202213851356916154979277163716961522518635900845023062907509088719314125854901662847872488254766660564093337251779856409752115122670562028895477749778154294595067258764367231612181860811928473194655176994542365907161522696974734211070346517472197866209181154374387800908118812433163352183219859285231141644598485454071407287201090464258849477999304762807864672825526910179038221784903054227705643204398423679177279552507861232715549635274082110103470544823059452536317332918961080385999239098105508191630077277917855668570548341223418949000341499251883472093625811192865184241209022112551581698252272378736868715338395453045165938358601905434702516517744446142581496928635354084274548913014382450963544266285912776251325711711012906522462620506280916136408150800569313666966226696141916214049089235086041406775654732691064516415756802463588961729280130823913513184898895861337898885099480253632194494148826802843774192845613506751024609416246294530566070851015068593855629792583340207301213178403197710776640705279241598812518237548344448739300662616286883866491578339188104958206264734863730631753522333983853866394706964274910541581910761316073591553826393316906306541019777705889742618259203509107019371214103151390053314369797329759121803126894345150957539010908071592688535659051108702926781586797233306374412241341772429004661027786255440344830036151850581139824813973914492025681147517685180256552685448395784858189641884605322400497894105508871823179080271907683410467139956235833053629023915093221308714751646336058313413636679929830919557286793993683268290610087587848369820907992378453897480523821713671536592251040139578503223423986393290495780381790133772985413643076338725039385548289968817870359340453117517243368311567508562966763152148642698583433311332960208900096980403525600023502513121871352220803050982245056474271182119921917820488184648483781545072174471185557487093157733477738543338868241635657621030295922831722162719049337559411726640194897452796867942425683400059723085300044044148507470875771081792682202228382703188903532582657978854134985779478182811260357998825105532484233522279675901779489652845205309102848748872018758249435105794041393243235743758865833560768720702908246553205590682521078116106695099127692766551564145468255442066979003029349152925975202604341492560489017666944539173739276706773895283379327997329330192817950888842877867357256375497295153599167056379571132029026715809900773634517651300481318736581662512687389880977994926521011530283171035817324894698890565055959394573490404188755747012291919264151023689174261317577105926648867304471050656691616457940951410367700038848374553238606384264866766811054955233076179942007513341890205185259007090203881633366776385764306635986325978149500379955516705815370869319873095490999410916527507121880716899425966600925178561001014849481797394290257266037030316585157873380497528755349911723865551277306604700297094318028940043649423329212448381403861697216550105324028804836227248732521328885204429317434556758697444023113790322949820962219271572892197027807442871351937513953201491241694483342950045902731802594532390216841344842518318146649356511480988363958145379968218304468704058754217216541058204417023987804046817154712892420055421269518354340001740640959846275804187830397164954772481045528550887765398496078762208673447628176065343863895352729701770272654525578512158895705378233798110707325604316571687649369712897725610261930559055144158252486561014210048023248578163215012070328133550454026454178009583842226493996357930394022840816751810518357203437470489961833175126709933562351178388876875910608246083126868200412091222859936126179722313319940465432018871882129461990215630234451237797071955703849888126001625915051025014652338309067382879504723510164661812773321244690709607517766801626970424886781472381242264149108397531716478469646341596541051850186936583145674752233937608894696413688769445199129364013771567985339641370050492193632212924358497192851528874591960298962066012747779109901424651985921772165017278737159523365334448124889080592393958561403692418888676302418334073356439738645500638100208112803090408541056130028086210661780405967581601238328136481568255305198261382326520255225688472278877857882389742412565473876280282777162256648465157616803256481597885333372965740359071719462283455478660125045860641143225604096282376803549493725125650400388151102083646683752909208436496063815829501186286905360499517855894637611740951877239044159498920668581491894544575416806715532398801668376707079170339573230033234727654167741447272875582777329429588136704423650934044334647310320915815881029888779584413089147942119210191981992481063676606350792310868381340345193689177462834448426230983143274934957933297562910988070682855022402262480995927196203691692359688835445816580194863087271689747459688352772163880197138742905343675126235454225623838532551881338127233688278502440619215132285806894238734676392467166975802077386186975654085440588834142387757571640990970096129582753347472388221126582637631313629794587246886591191877120062016121853670844000995377649971550011336178027655033013961105267805968487637851456640678002945831322907799508784738066518259046796271682376301516030756353051315258922902508930894793130565879110842583806506356484071905006607832990039053612459023730926485185895656276327265137704816722458190672774812411402522217211355212550052544929449309654371472781269346909694110495717553033747615124132056862922173659766188239344178482605651049960998235777344049703192819188649361399488514998915709435004913575707715473267223477064657242972150868146006960519114317362474097673829051447599072678164787156993178455851834731432183536339215237774644578723985907198916534428376244017966829279102262867014090237756148796135610845070175155151631092271489005056960275396224888810424278152107528247651139927023977069936906425190127068076167806440828999600544520242075583651001244082347792222996770978077649226435961073648570774642672825665319843520699253539220642113083652953075798504117386758719404240430633166334187960653946616400191505996057573917489286648826357393016476332256693337588675061148592617848389851626154327529017059399574206761751590780532400191901471776102985992078487229340242271074047031803647327224294513202615011290714909210833321077710995866402268156608261841720567519145092155885084441015269916823802073354153078973983475034384987546106709108574683286580821758970794326019026400877367660326743154914039823696479999840394137610269091396660746202824419824919494164143448320377743753371415828677686107279192063318058745547733614883142238767693938800046081635029358388414967428698278963252602269807785544313768714195438390822566789445272413503877533445402146182206545307882233083319539729692394269915840539994916888395627898109084188949555339061026009023138391035818041816934412004610346559462910638983508884276950674356322164890392862548828853902787928493288724399352177520487457441590069043482456884772260805082406485498112159493963800180021239101141943446965837103704678370004847951237201566794151984742146683237059902264042289542348337324962154043123493379679708681009389608728858224905703790352206635987384800046333844585556982640030989931087082913474438452870844508350324821193529663934395471536572148148194520204038602538724942572672629568009736064117498056180442659377968942447595025295636998352908576206690124636313888756184124880627228507896325558970961657307614378284734882319454331202180609941459823275630723379241420860097174591196134006786250749101101888000518786484433369454512466576916872709938757133731865896506445417012430247950400166786971478079277687740953115845915187084724284546700623577257437722461700546010123892585371736062678318945839129481330883497207717247537647895951946170050166704921655641030744582006486393196737930068043334316092401258956452143997526404986444458490075707409842237307074317271804339388403809219310203524970933337033239007554524629412697714697496432301088011584161103630409932772165462726135051877075719042879767805203740671786300614909106241489496472149921405943533042862145595359861758378081037076510082043343549863355315591156231671635007733688913531806714962055622109794137365596357369376157930934634506361077130936495550659758827874530027189167097664157509862657469168977842069363035081731949228327142035934313975126864138849515230914777963646883221495814711370780560293798425557455302969923635536399532771172092590395977693411086183368407947069737213189043683509797431040031324337903096315372198973697642056985602709631209821332461342293314385899215338467410658499178531428217502437359653723699133040202404828849335497208557998123830200222946356735282569484290418798771772138216613948532336135174306500794462683143045134466718657343509764934900803776600194121551589763313709037353794490682925727273123552792285034199375606667542092918734478991691339313631014080453310487391679991118728660242815126138048533087458301928715436215439675037946697179837324858543532423357112604794146428188883838452264126925607811351190558181353592185904520261216840215490533824621223070222335620374477018686097216158204075929498124643456855363183700860511909885187602198353874971066963939879493501337343572027895656350340100933333028391379032923617628272800534250161260245462517816332621099918927285004431063265714540665355031821265240402588109690352486418310740684743546605888701266558110114000366405615464752519646872801290074943550848255918352494492939672436460457834160636445781190325985340549993536641150438430424447752223358337765739752225866238853090139805963898999839179417378771931990134136142059620369125382180936827763597600015693470300042513843331974433027097962531452228991684986560562908389310039635938266131591341679654674811039729093917351509938865302269956691919567979775361422644866641611899824872883082598630802621571365218919969767762851814954615050829414331817560408721329036614855550336583290613591511676127918403462305185258064076566855405400180812810383138852238932961926271973563178750630348186913532803890946497853138337021134210434818853640154676644640063796482598391082529520886248927022191554313577963696782520441930601295175970790344943761037479976758951265657799812137316122381712420930635489935891958996526068149010651664881780228291158269646897036636120036181389770018808846590922797760369747763202618989046758282486673331824736547670150964867949415733407465771422956573658882529377313415183781478331361475178234365933750713042040243126361830526673557309758218265150143935275650840298465386805827489449343902446348362323239513529762198097318537136251462996934070357217771739759362646738537145924075046776948529036069371919155881102356884088676344994677452602134986998133648322201741383745716572673041498494062324983942670802385147616975800729904795339618063351007542507676020323392314933102288518152355160561356342039426538317032244272772616741601381472913859299570856305291973976832838843595429722910640546315081216486847944678182227136521773017753495363480407859300509821320917810144802591804200948340151485843842149980356097959904154951281896912523162277392975811120041327406232035400534793358658729371943005873604442474874530771482376896381958760169655916096305508410680662479384327680148726515832667457945836538165501139908589953863239459119356303245941996974313373467733696244486363176002110897851546341187614983814145868057528608627063869142464293510148478578477046200932935250146196860272253046861705063848408428398499055355861345598760828044556366139853129402234294508195661826390057263320001537761075622163888514892657636715000213221163136870616226683202708921308188672205818380662026238887460965894013148294223601330797385573812710661566315560142306247310092938735810714970858996999080129110936072856446141713176815352607969370190317431477012897520004815287572893241537101247782003372794554597706611319686994628057897184078172136131868939416058832842350912769945253905525684687568337010430683805687027266885580040060376326619547312779054527680674201677037926998450478984229643099379105347218986449016850749335317327239249504202137649079144953748757926555067780325032739443218876172082505440911361126744741498262612888338492043877758710944194062887459795940533993458634146261643769912448259199422830573976375807615569033530011951840564676042164968106759974592172677223743436273347050410140909132292189810201547564571847841807259007480875755567000764420413070037952235576142661240505566683851786679897098775093489314731765386417185049141492054428305267965579408288676792710725414488918475410795226837532678762483622793784544363726014475944660225742760960108931032542063933307541955280395772885263174943500784989219046509637423463207307172354265937346200589498098724604098424641858744465401377636875031713087186868231372575166862143715702339476110918142303683215931943620860533357826883970027297601475290044969398602720010957804646355136981955998979143240824265885687096307394486589051726568052341108190717451918507644750544103445106913129913211852811855256461862466293033531757259001862522232955004014079226698098332183018624401536111482296004260391116899409187566473108001280462912439442880092685586873329621329439983682975238632110496421577156555922806578765625515535444718794243796440192685489036458792305286407149713546991917699369350854735915832655477173676293589015167846186775870757901609499370938900923311061988700862231125404440654970149608995278023352616237081344624072335811230640817825636734794764174082456282580303043854570988141930628341799792860120936477193035076877354841762681388903868027790219713262953797110050550880238371702063244770565724787803858561830275849810781319827647210642498092752827072673949053441588784192558784750948714166404937893371797483746543095703336074983459106838948354539213760819105816123825520241463408818498434266917773279402186836294024864418612647667829160909406606796457381477747211259957847024855636004487485658102535465379684017882325126929441449920603559606278679712080422256482316838714054347331870523145133977068319039413685971961647050664244902683888170147420653570167229667860323219136859063113650608596283200370992700489702386869246225402543772888674340880258292438382731954396590438727360278016730888982911388452986012429829320756714520606199889622924171708318886233460199347863593600346692373928112467661371384695384808356146140280265075346538278655088557908370075631814971679881432102624644161147035086910955269879538303830561259911965830923763791479345793029378015148549671454168867090019069942015348676895482489874093174371990860522444804317253441103860981269748677333657265697383661246766961618288166944651257453115626285711685369434865827429223621989870890745608570522724523724269901480068523982799624469986307170484949696729129230429195456706083868171049673060791553038110890915079153526741304730577578328315644576583477601914724342796427851039151243559425121980755341412823124395335231971142551046149299247206547895241436129232387383568544076775890016483498989172431865064636749445692954300931692445945184688978854639165341213987561757014577467646887176621426709710573741454395316744106485379331287030448192971291406440248188475048414264458641223950874058409103516948630382368678392567581244843719014663723591946813880877672488864372268441218937925393914868453536973041700267133478134812336780319167992509742219348687214474770449135821397469807122747189654896006284038782773460699824363888850285812325300167807982880220158579724062336818343347290271615630099142963639147606216337911848198975447780496591000432175342300219088166097196404641258488043057833711283622880732061950049623608067850213934578131264373422397544905435303862671732212470430490443996769630967669623642164937957708965348832126380043475987499197194299811176686458828718233150655355861608131275670417382569435857305156117784193439082715788792796255109763760653332708142800137979016949916298200110574349978565110280382813890546762271861155264897432261204065701132981511910412569739298808129450186712389273725363053209159769116812107996987676279346547148079507058049611626106366716010890697694787734291182793625069521346834065365539137165891699715418487320585771929970766866954704874048988140517298982759014381729803834915097083584513715077430647864013960290134840547253766515381474801776368270559266682457536703645166040863869282617274958823899235857295957274132698206779652607253108846607150060246081581370155494944650693760014728912722258793731724389668315161757053041199429157580125828254261545522014625326463624400516697316491407419209641605380626497129936808321370186208427719432982938734446730777273656595177619202769555749975653221294641272227651976970985447330914657959548543578716526960583613537902131395881022616895375567843681161200281326975627934218208611690594910299863766473969465563751145809774263287216280379028208593404887268387282838338426285618882905740641686610771275033616933772655558241255159621463914242563505363720057358412886366583921672313965021286216295976939908859197048977779501901169710430319425360191294076577810535359870003778488890381404755664369087966159254145788144854972356651653041513895144210868410462205567796854455248306348571674583148095997083732745189106011494785274417999876162703700462829900196027345920000952812750417077876454465360433347556196412993347893424532670812681219950210085357661861397986615869041062424912466522031582273521439311977590712982204860452946000095384053835106051986035260967307213877427431464351615227316246800334811650768613569573877766164497476143793619920496377633673528662843837443879940471707360885947977110982774073745549526092696611913110956363522396153845891663868659272202940933669612270082991272188635272352584453131868054730277148764542182658756754948320852463404170453636554489928482448626845471430870174627501456923793207960166129106442131571292645084374734225700966073446426151199297654345005727782009766776537435259486889646424277332163580273749045170887077662732318263239025605555663237561452073673543780169724581659901196099228793365703582387557928393917099055145230784154965686394625227799296732342081898790027283637780154926246355411879698967802759748235286599646829897906150629809070573350889090327540831360257307936698887981085578948518167005929584682019800878769692873318120623789825650693422525733646986589550994343580877867022799656702583914048524495054617739123757843318247576737072928845053821495032925317443213786301906564786639451942638430068289211526478908764911755202581477827098945192409410725858093281522765150894233727014938545032976670305351647873420897421735125301779707288325135495318566386595663809617508612516643578692144324233368627548217578152991853911839339465010190078790437354360337937253133472887563390422374997837675975240690657841176189978312705050481292682167857207957407761068927579331207094985876662704561321762506095733304227431708831275904664593388221634340322018115249235341153668930858606731731491310118808309063746929574489280047719926028863635562728934201588168601956831135625770673227812822677080456445268810435097678035364613330384184013297021197882332594754952396346183039283380445606037634410798167896978474682236085134045019035778686961657997186795958305841240913309060619077529851519198927037032112479082250882095309558577609370070890674390823961835234032456931034444826582539207040487840165880926320545886256357820659918575865595371466338650849268893047075451073426965844384708142425508538697500228323796083924908352153456470224921293565395589200796113625955372347758970155908271962789758316096405548906170341800753420113093468851149059205521366064289946752964010808426728718654269711486964764588151178902608185400115361906829786210368012400530624007309968001089714757443835593995585743121260482710863846804643932212578030847878032549932318092212598625851714098231953561336596635790588036146145309089252178676003990508088123921693607486941846889919970212467483272819937121513159664610754598497607196393421452443910236810841542777769302505059549883721311293640264901411940817552429292087311467233816233662322989365898786519592443983158625056312030491699398721800263236109004268372942559097701979355541539351424421200189978918937082695718171005493677836975179427073739620133784454308922115890516602322892094761017473249244677741696614121905165937895635932852587193544712828189350766338628376547566999286068000039492484138282492245787403027486759820461940725442656426586835592701671856062294878849632356658014783261691946421022061763179023293566206251742339717285342891182134460925883642291854062059909174404954499733763145700296201263513944236546155910864925923872657272780935982043622007066477811916321576007750348249904025058301173564192784199436496147205766145761666477808436142811317419777327180232921164014918169782683385141725171789273044683068848469859398122073011506059183531652980162817989929066217884402722385116972240667872695375025947730522341958750514836915709536572382788030448135464545848661619882610047593899867993224638857208526331276384754636107398366283823372649093506166606627252104781206833316399773891767310108395508090519115801826044329588419271941450839682189700321673180899108047255712268666301339653974018740402435838094764920012001869059219395276975049414369933440460534975406929206777031512768959199757759230048453943503892205718717259808433968470258044155067626300389657451192358757328313057125253364441173222027018157395083936104234025943794350244958874782649645832987477125933953523150615466662986471644900111261916351096248204013729108959624415791876168075991156566697927120391791725391722325062966186881492185106556935999751574640392279088447337088644522191723222101392584869070281001981080081972020881505475021795732193059041107112776852783025291534275941042428247938001584111999617302300874027114003863208869722614738121398572195843965970922591874868613569247401983184157169923492847046396471114104836530932680102378518403417927170183370706029535424260951300472545601488699812861274486312224215210137639019093183357461794307048851852830107308429389145954891061791165581085389282228925635469642000817797278070285409204075540925106747219587541440571178543381888814271248508563456148800955694313609438722330717797161306400812125760826805017969539316234304904302333103521776323770304950579354502938723559818188935226859995031640287404070274983589391508975943657125118683202441801240132553309956249790095879396372870514861466572946552018377222642223234441246195247922925131711721013504816355894033287957975196079181657494708778537610994285574951266349935729687957055493294513727348454896865047732159553569492455755053927926066137310627583500242162859391307381027530522831172096325130116248218182504524218714031434620604703390918167477526862344494360288784781839501517376223731959837304932337192768185759362907488833658525895763567010740245028640848764514125067428410957740203984924939365142854611767277555126374174593174841156838370292045264609020330894503007577548931718783804095639955263070735720329285322706422251369675938599900767770267760658450500020451805519134293035505316358695929404632539150892109145557009747469284449416484669630636958412229570666131008602287483219464995687881887269588750612487704384599519589459664439872674873906517019101119767362403057923336461237810935840451499760500541766329079299829612320530022073128568762135467784161409786260689645276673780385917240468056509500069038887975709900804606430042875123538019725821502796244920295004163238123003550648469923385845160873346009724352720398680035669313614568136602820464393449213579677697011190441897938972882764371685663969959583404575347968347056080724339571757552039085972514256234773603712686237989498614555155285263699878446336331341354400948757838637109015418263041750446193674021212152874186910565298369012144638216767843602885707686132484630058098277773626151060491905163519008925670903109020686486355780865774747925407344314535469416199176052805003409420044876620862906835888812532451141093145053719215634569556629214640859985615788902061904290395502438538295610663702138129136952031299922543246172654999377117315796879534016784204673502095518050897230761873801692576109453871841753498424210796595166502096777320501319294510238310112179717019975255994105689464919499217949565368350716276152072457430050342909960524678018182903368529104282178379752428135394051689068990242584883115538883008780044011514064844622849398801231808299498496837047712372390854483025415635583722044224807512878214010945971314814699147947798666277127232511601816269837007059715980847171933103026718812677412275265872173576186842625607259410955885827104597020714797526490405613437613498916527173730700218078232730354312804130927538467068686260050014829412313187184129137141603466748668350568609703077022209204273242760043421858249787288334085745121572779817255237808880843405544983026934461691010115185858604135523827312079968696925593687340144184086048403090730093792894319732687091348041760833172050942706479663949803996280500099493040140417162412184694631896329202150398620014612778158544518596829221507351073738563752809333110157164491637852779948625283407128558004265588372300782307188727046384619289561898762589346767542381609920028817712342155223415549094133930051614125086609578208782486268412961290525112251229978452974321533114131616984237635031882730687532403274769308343301212584815613933453097608899590800159815572420516226526569465678853889527753456885602890995751413721904941177129096639909128945917623078283002668078764826465670506669968745556199510304543798063134499449225138307426784440188913468943830838630687597210408649731927717470722620187723418931394549693235652958401187584994454595870899273850449536100155870274842012733734910743634369739490347939472227996799378137639198222310365552452545850429851510932627296832627061334395161128652683381455079871292505298466707425428937240418156032947524488603242940292400005621041036762072297023761603337084302689604214736978550435365180930778690609790009269346706064068697920732474508509029679817633346484478549285142628456481660545249706118162679180464739471357405231033357337272024250453203849324157914839231822326103466738853882126465646009053071756374741248124459174231428989025416876371935477126616460858916140480023381598451941870850581638848367014206481540067335557073096415682653018680159005776039579957855686998946085809024944239794069313332524106302832353468866550043188461718575462294303297471491079991891936342256074870569323268104967097456420263458059015390966748784980430809095400115749164862493163608809191940989312711779212978581829815945760699398999483631552282455818456025031982940326817627810916850022866135223452012667538175678156366202337694256114751368760855020090057318464661483386146822435194540393179069466496171166460517297253881346850903547582701342037796913233880992297236951959823415886558785067946781108701866621180641765108389607042506721503872912050889785401865768342864658009922432201210851505873294115799321020003848247851908251562076088309780331265885913189915936937592579160350626901409970511267993795143088384595361204288515559679489118540799406104833892638220417352670121210968512278100899687737988516814218414284945863757962942011388437399790395543771750509461408786273361552328415239113591596065203824256695284845135646197642728520507628449601450126178142262825647502683333989715986241569169986121212541665151784028078945684306182433826403888889235927340074241450844703369842596715279769156045268163516200892050784398465161524722234641530750269031033203286607684993844366878537797704935439312598485948738972629197798254047489599650899446436371574685477830164145542396441288952704356883697277972069288733537579511165238842648977735221997777957101904668288961185893726974838849565486785484443968048063046615357815516402493223954624366297120618870627725499299420835888538328759521170761864852588837561038580207296494689430732214831037364917306851920922811971880190785022873044345434006775257249151239038523117625900165402777093912093561198761256086090213478167458796297336556911764199880471384310179463152741561993351483234959676614221741347627641637535170816954110096952689053503224321161302241453075083439777802564615813164746546468019131191051916587155315721199909070266648784963162260984461876508152702561118445326789053275813891153500808330723938861099266877045708964716705752938377284999017344065319606068591960227169004274351257362099726169026375619531497896708227127564057928598497192795009840420122162830914353320337664430067486092575700454335906200750638202409028985751174511655276142602670800082141597925085545619219192589082732483419749023336556144754704711021305985947171773568370165201239834322263116751098759463170259399645387547137755296216688838573866535232734832582073325579496813324729646179323865826539529264844518763282011441448042516976365266164126515981847682049879758373086342168093087574524110603925048112064759093343841072217450381891511328749764601336447207332557931159105151460907208261182031030361159275438250317429307041844084312353168299450952983561359981554366099596127253080345115972307557806459097990271484127823053115213241952577317392264098627722227911663148431152310322652770018288075554253806155998592618761422237801588779988027404872410451651272625443443584391971784964138450799453199893352917387030924603287564156064679916044455877284514236235770481870043720693753429343629776404431244731108248436657396055976870325574068402859939583025665015485798275741059493363015186455487985286381133472994608085486516178276048039993875953274134768799928565667678178757749929017725421173917637322746486515509666690930200580011339021219000040143936630778025298351424707285444165330278564260771774837915830486489887483314018742818491813296002202820764788439162135505914222724667987970867368462249314989258945120367072526832317561974346401652236558773599221615118188692194331700945857506806964648649334792343726430627122515592250953644367075269151163290018143874868695447658274006361748301221098288020904807522999627138247013586418851126048119383100847706467420152541633572161042343278399686078169735547634477908537061429470303630926135959362829146627998076232350306858776718277063597010876828489238963658297924009465821739566609233674650857501712699128857797339407483383352396274287604890550401805300066198901631904194290701853358176286757179687520880334934808493566074151429222465690420204770259698314594752672065282438333633241941232507440445630730166750626182046929189358960418618309896631381335165106437702986007158019700212981750958464960059099501461084191717387573976347811020179422763274314279319792093194943974555901910239888262396012529512847294514034372608007099292541102471657577759435666881361135956853424281399459321607929374133255354602948170400567775597132998001853508572721733322895084180011624937811942587862999447235910026498873831673336370041063543951115026125009138786348669431076077174223985285194029659366130363519923302177912513363612203660265340927182287956498884036956731418062612139202377768285572111838414952316859198729113603297417580797812514826120460103871022636533443200903432078821726014965227247494213607437688174844215147235235684159677750286796626020977026501477750088345899253295179020431109560742631442926234294186533580949578578860575345763966139551716430915466196651241855240365617993707872183926837739666453277929373229081925582239048251350514703673931920791487555473945913267606301650987266675732637644078317063091106184539023540928904961297770640678018063494781461791695363533824250982431039938014923027342729630705579611864216376284172385856582381086971107050201217433646872018533452405245767167767965490629320483665252470884837330034822216462471894864768799750854606294750401041641850758324072035094110702418146739131959155863959085056660314322197724283768128691811995023567741853419163058391768634454401077138224641907187531201803224975244274784446946930936200276642940865635015237248903892313235355616299057198325813594827331549065944558614582147053527721171462451912430369844952806229274988874013030212169552579237571692798218136461818810564435319679623841967100943565460542672946184830796577069334423275542085196055636118289285058183776908312814563246125544309541665442594129915742540557356712666320523767862510510083261533438177787715631987562428520813634344257174417798147284873183778731147552367962633333436794449282893683680967893858410425094997402408287938099974381197593857633934559175129506065933303777494444670962869173722481288726725810603829331032963776152562032839134873497836764267526462580620064514641919803122130722516458852361467494155353338988574028556205805269710690409349026079236257878907563231317731596957626513752643997114970085723659786526382319699778695262270402091529797764959512275906136902104286875249200538826222141725898092874895588474429985606298264792323979538958695381351690513258665535589965045881137469906446585909095043252525932716951757497149217344018234890899236613067182424796427237870602589333943521416126939772880111962276673291085162781536993872080533190441593903559021135441180843572086438486035389248504308999920752141347934223944483493389491146370399682496322880008348761396896140023319624185641917995752158849325696318154715849972064464541031401012948408514707222825315726323189080066557840067485319610748291905492569561842208888010889197227010167370525296832253229560744746569233497685204540133603783117222649442503035316651607486764364820788092411875777754523420354498587105284647280931327385696336970761097797903623743084724879543417779865259243978445649201570506706317618330348716837916313104869063053906488067301828220948343210825066131790650157472863618352250923602281428845207606143325080307123602517431796676954126976594494950609745373053239022982362553650557242761951372924513432460358934956166171150049393001624897791245700431541071879429164351990251282292783688506652718463850536192681432514791120802687904050873984406889571950173272350444735547248404965634937782921547888255397274414107611167743064305006490672883422217903258792044723451023988266423559920034450609329719923810109332816362036283831511339000951829380737271055028816762808170169828320330531992746462184663205940442527230929747534471808328780043957400450777793859796380645278264505061601637620811161276069461079749472272850808935533762986313651858958646616018144915683781843314770020368984828421213680569010581065801533821780132962859830022563008369126018192802671438328868854753504295571270082300306667610193400524071069806167017012333952638017299654040457850016489052527164848571599759731919297746403159380433060901185898815691849110640713700371685599601193539120064595297082239187327719417624335108885415403373991047096412455899332578981853151217738979086634021644340803333906951764716795502226228529240573697986098946419061561427696073074048026268522231878817835519723879483571559999081732689498028769537041183289372614731300339785216722186077836285764575946518573911487873032502877902559075712837887848868537882806313317959755046994277750724633235208910066442847684465203993704984259150347910241298373177226300947617800894887180199025740688369424129852974285681945403723419304230047029999851945526893011897776710522580805634266798921712967573182764997511598565088638685666147266566225545301591956058245688763817062252895710714799547666853449700099575204575120556674763990076733243473810512896829686879544179022407504288625065703212582401208247909425487882297535733379477021407943951753279686831902189819636514126042422431396548837973433858198904687943140967941709089586096029955878076491801939853579413782226284164841671576119390102566603596910216086872740491604893388227515051438591602856263602088565553307052069026601607781591758097218201199172918978855741752013919672409929575328070615580497147723129898269116699823440369589543904518576011608121808244286322968851488791636222994697245892370016819743183738469562555560146792535741781889156058375133568541068781078849274091862614624700978333727027172726528584305983052589191531709367351735113629103083736736340302827428437473299071908290640069640823660007719895408280807017054909514754148854099127317111172997556106075958617108351848732365046071478222153736624711945489164163985475385869606014099754130541953750918985929345598594610071930673418486592464762004570371529685463212236636853907093668603173438893738047266995516124321089396035216481436597191830753494579297144103659102173818462773048416960611831786377784143256244223641485386885423054988812532657085147325360323258265130535803350295187531949405616661598505601281374467266031880220748119241396516299154654287126514809288046465192725830701879240457490206529206882485768955548154124938750137372398972297293073804167565739156872127825357077699920691901011509859288732363506761943648378570988973603852676722066578565124621295297373754184643588435385037821533235569675301987198587561819404428775145292945991262957764795762915774992807724070538039868086273116969074869191785297941841978659651421289750891604569596476584421187185305607250165570631207331793441604415370844848707807030990164838409083186539066010816780259367500377429299641573029029086301970817672624122678268081782240898919629277542612420713722253266275802641439344140847093354053793156999532256864188083531943889175123459861623630560451599918657254824365644181808381825041845017368246495232498605693538231298933268927703954769086004696174861051813405971209630455401967274530341125618748463606214238118817336936854625872157942362927269786262399409472358266069657774237876438488569477247275880573892910074912088159977657284056090954564298034648532031207634625230691506815012653019740129283739287503870057249963428506073818527541675911717992628961078131892520124269368354013398790206826917122140682259977524953851438302219354577960040311032641997030155454095218088745148094821621414077469216662893058510898472744790769025551595670134997180981985602772274154976646240582209081295650010574692464540499352451234441446526785199736432588384595984000613275320283170246788758064536148498414215080539180408869987630552850578965088468847089115486440036382000565507216798386408717121723441519153442250549523595284310932725969731608444761819029574052234342637236712312130799111169537395925073997585691990121697479363493705516021933144566331334853090363977728635544017476423562720808463049462683284580642371264431931611402496610408671093788611534298100042151138041510604300556994473478058113469690408130142456062252425013841741487297905908022402063461939617959456867950615532545959025414390660774369108579309328229941632626771377672185168387241247976569765441123004772072066289175062783170260319569518717360022223091989482845943637517717705291534004254456705759558069551774657224587580801689186409773566150218525973181004849026424186910658285661012279235996188077144925259480521858479230085857675421556096715215299377120760739080576894968021396932044182163035505798378525779572463680787213807329524595479073822341611552956339587879930983460964344966950459969269471399924394659775135158575132792248620164335047221426074495124747048763359849888570814643764618333090804139567245170490447474165702619390863560497355992019291479862311276349622821037338195792047555980373819806625742721474791792950018316375178907981213778693737401997068898643639960215294219676876159066820800830533388020797069483182591111724829248729115730266131074177263358788561761821411050668807528262678188974933743134443518471847180672842061896582254960371023593394304470486768447324535035106393159775788088860883530940316809906097404447105437649491539486724111372925051115416686467738493143854158960902853598258139680725311910307019223548323919492756157582333685729223334488764756358616052638764313472253574412120922435515066635207059796928136228308542686349074415489493466699897089173597463325140025189908826036888917978925908903074983358782548905115837706464638955915325034116732114405769952982846119469620413066387115453896675914261988820239449894301267549890289597839754518945505140664678334500500216777040021181321714326924813297709768987855589053604944277551194638037528859530385064959024945718183734132547219936702254132226288338167018682817977335826457802418961465851388954073603692897943944203624799864864313671318930302533062684180366350806440618273841526376474949201340867072452695955089250295797574022715716066356943353866543705636052635254813834180188084897929410476658571402284740695625625286866655416366851603464021027093603796058508258025227139821796833345965680839638738353905922088118348173500079057955880325837911367481473085773854523510617454030429027368172508622896861419966883216502841995685203339475596616605645730711587186337482779302585655807974251054974207324771202035547198509894780705971578554650353314165749073828003933881931705738378525747647790772031581575370044534566037363069989440126118817302266316447399869418137185039607339212138373757022509365640559795205330201315915666650418131279949426021479637378587287204678756970252404055960723756102340568448394627425728826837847089156253620091049943943036140009401874730352145274023095790337377820864179742858154114486502133652576895559880669007653117117981754189066982943012793476675290160915647809216608755853273826062538102906921409887209849309728263353605248213186982144930615335397223177742436264739881081723066669225722631204351249056784442866423187974344545754543130012067821495641881278021343880883385539892342590617726936347704309628571944664480576877471010274474192411064030325992432747343587987227689397944681811124370792553523058341165962433421609497008627904844764043014338288928078087276533128888149336876129733195910872518406554595971660989068438437348674394228643853232567392581436529656182768583272984141759396411875088306891243836169505753670105161995789965871947005566592038346453124702299649160922828352161110591140111677338320486645267154875410260262426749098280796916945950222390327924761968868254075953248112726129635212154919712260606432761419673097329403001531945929813215192925864747279868227661114026417812791718235253468061564655674520526820703603432325752185811825651086110244138353792225672629949391255985454013933459817295971623363734660961875414551597178528641646880513755854226383470290476403307201250970941888988271648051326542204137790006712548795201507083005970372362500948064617581750785920761120057211062924595552464506695556446341586744686459853116087513980730534621777201950411234683175896605397780225898199166095105931828587445904648335592663913312885516258955836490737943618734048794315087503457122093041368734270820049848484912352279287944293280755285316791309347536527959004174297675418227906866063091471095355153099568832990106974503203057868552822865409176956146570717222537359678387996141336169802517747806955233133945757543199084787397166223191378458695840923579836505900052300544545307180424767276390297316286475678318488735088175821681158236539503244618620852121918027157657003673214625506492674545743177295209267245276458763045408746117782278160144097957233567108333527365458980144595780609656012467202794111545164452407285269807325689596344545899928622794271877381928232088778652757222585252618717241337208512907314804332389637099621869292869679640005273189286516907866837129670566254402334681074352288036407338852958168948995949438806821135422256976405743620839901252605222730366637252856519435216739018406614323301331051070592508209969267353559320866717911909506772899288628564696013068993354936676956301948684590386911148333572376141864586669202103676942271998149779485433197282082925120557183108940377717562076040208984229316613918558908718739753341881325184162903088959544310166248826557718072060436180469481994389572015569638211151635635739114554159698965859814045164010733879012085961706875423373235903358211489892421417848393881016857441805954593817691977820887841644660771824835223326401504374774079168648444268372581871376958268081995556016799925499657918034225485286957570038773164094307862075451409029375251864451528151998982397184891621090218585970231286197983525674020268286369579568667025488229007084660651300552210535530866641581548114173876868877728829900150889557797265847790853490403998582958048171404907898972950351285266155526459606120824078972287365944914517807339975077605987261794530615027181956719701373316332985084505597654189855150184752812705296295619402793270250508598859862214425789031041172485995415309375697479425616893956558856876199372107788007331265522969823104485854957184862183757579313922610424535861175414154700091752013134298696947466593260558143556529728715080854511637561863323852577551313926277053186939249444048464138023693252688709086871677241987168776868929382676185003517739772462948421023869467382677741924741959532314390828458926460478807533433613344849781621159246603254822265735899053776088173686860221956598142091865137697813135677245469803427697375222911965507361590826628780240391062595232101599082009990988582596251823352369468371295545687876133509674082997594645266114234031751817966788427393655926936396651634537273998131073012063162386872002229532890240453193897153607612077245484848342373616629152155621876466113151251075172272713486120663371781802217852274592688823527689555160092017136552153866829031164552148723097944756871807001598468014065584784576027549258766447062334063840550710230610659818173134195343590695759455857182895754890093498508841814396769165518916332452145969216152569877109428821881370875945695592796333965891988725954265417249291604176757325928976947163103926137669066757936114858927581947995793933113515100339044954393101088389954078709361669248215356978167994337943075891311710726612244827882589776337314588385725039202846851327913335064189840934417615077547883927017250685185847463003654693547561824181418560254325744072457398430948651964724584332123730535632337295590363157238965593955944933375944807030229231580941116777893609673937904825079261757000943639896161346057918840379828274700138508284400688279687117888359225742500987631830397568870986845882940671135427580302090189255550871640713569143963575855640713340990453260023146200435603511865114952048377355018214927339050288300925240545714549562796603015259712429988202576933990378046720023995922797714552037753590977530092774301654854146016543891164689510793786169108273334423106019892779219579564044050641917460715986278764442050969668963079697276553855792124159556659070018344462170418918583812747722730911054328249622387151164181788829772444206292889289821750311795143645540008351330905782173869636232410618332503098444702006287507753709016116249379673534955007264460656054012919470742401535375619420082364247362788705878852757797260794045560706201282229116054750012767399272189893372536144779267697912253308055402621167985677263392470721153509074780487539518387254471584322593255138339453235795573649459437535221828611249769778036658078162722506835902168238228426364120076066630672793660714734036763921246449119962030420737439230967228114312951108905016826511303033124385900689443045519378553425249664034190457005384351705004372707340662667647201390788692095244757580973807544282053917316334274274040727668220079271858106704794254986327113932992155082172855858926676940870243399542436578686741776699487677192346321341438676958071462256555044715229291324667269605592839960126399230958846917658927131970257882671201777662030345620718250975189978147804125639113359013723475436583006496877557815799909272878183047410731246106521750743261859162834933864865328739732182696227873118677476366958318354567387374546209696065838676451559491220194668145755111679489582936350847303894099250309685193650697346795570735628933526355923956901527762399299796172265698655455722405737371269250359226051998492830967982882545936284001778237664809681984326332903351391546153322870695203540802918417795859752020714438161278862906476019567067031339954334259423145830900057726508141077178236018090897309505319808986260104004282604620693532877144137258786423657999526608455828617542009769438927543060659181650693654192748217025496627891336775647261120704503665800760442837779299202934207484696118611388105930145513437329484700668368422691106557536799980610379662445748966105936213127924443181114301524447245300780987556127813865171050620824572955556100162671997610987831723748931472411976811827142785172255258895664066119401812904593917886119896285360678713558120937760577710141384435204123651391323802532844142570579840317028731665334353014288169655520072029635964506152645281373143254311841754242805099524035799100240428192386973912653736521755143248681164786132527659516275052369896065458321874986997140702814211795005979938954627606430744702266089298270066268730288959086760945271388860011526004216185129960504576173625728506370444183642513702507656641938118790737513046329864535740309979946387505157580046422376006951581252197099578638776104980621447218775376839903141010165276281328911420257866601517506793714039905018974368916646591758316356336831866358705160729406728724467264311080643986117502440197506879785873011576575452631511126961591791550028543212041030109131613432079719239254852935666204600023096532968952284247729682946555573899595462002948875442304030301695293966417236750369589425359176843912871417622593552741446295567706076897022826555516832924078671628504794204703483216031732378208230658202538248351868063859556619135491224408678627918887828112972826522312103892691521707843599874602943638785043076244428637884739487373177103899269434453400079699092408454558033574139792161654425499041061150657439022355034697253037864001159599961682762285251518166543095516750489694023898378432733364769932217603312232773516959769577042031480188643205465937212970127635488084822466736945655948596485587181118835238886528226734922176655829411911061168863004502278365294672768404596028437456975753928365575351564075545364286024696830619914053599486115496348842128775787227088742209062621757903525827513933264156414740147596525688701404554844682581487344762757069833160275579123918580798273605675197154801288754056281491712938635253387461465810274802692275111665464358562911633994309134726749225129458859510966782269665454093167802715496353031589536764273796851959883710721446429001780448142518947558118086274269048454740267727099143796051351381879026244188345869077872349294687336769112210176889560712639350863904038487474957133943613669504238860137847051965325372198693541740045130055241967180913379150091834285594416872740352642742127190166741922297028767487397650856413229067592868497462770125319027835058590678143767906357271995190422635823488745236570471156948048692061923918147516320697529069481256994392926781261929583911769909538394983854299963124050131877001172726147960185106763887566981171162757070343203536634856172222541732877444699242281757087326655680474031794552523348967369180481149198473795365248521201125018876120194970084536577137153673456291360417884742817192144206590129558859320222486793283874576449637376587260016309134927566466844514547396321594884792580685475524190903015168383378841060167721331979143446262776468987123236964136258687246154138226723930100824682227542952477090198391801976113866216703258564795821913233373703515625404036233090017102947819882372502543813398649294284474647754798603714434842053833466829873226875038501943127801476851920203596714195108507656334403421135299664664666411671081439612527590576383798738341613080923743690599296788513745233421643507750856025252033523278273043496835153931616588367933501804022803703756997847875336000682372697861173135119610539006884721799578653719205680156262757123655165618873953137966731822810328811625564106292552091124348308433287590456793098849756930616630658406521877343048078265507896314554553760187145241457257251051273108693759943481990272445543896442995622039475542069275803631614217026733648841936598986874141816460013756987412888438473374299823868584907945078992502392574983417515053179078372591795117550966713670135225569004267702877118665271645297685210165363290133817950563484242201357180890330671496123998575105073466198444885871733430740231695480211628821204370852339420978170520149853101774772497321502908993403411211959348499765012150121862047512526800092583928187995417057007933184315579731615681090922365309321743151742470781140358605461557175372033476843162865355686355198577844592193645454384580778631920301003554973165257808273750519468431276106622924101196699995166209832413429571119892708867217738723260606305705481066229709413193975876689675123915252194164900690562452279657047319144841232046197112476632781647136918449042292736201876697037627579923915491753825504585149205335648235785733689458959581403563025827856816975899189562586139621410174817423396763912327083184703496456909598075600307244997119810916271889961328246694635967303630914559617732300654823795972163050890511584543940346850214107563816741476496389641729243592330861870243319232312485615189459855269004013630708826057404152165863408612526742883188900374117247512268692783558284519404547280143018588540983619012769588224652708245584602616790141760691962491837264843325707807555925868778667589609362388273781747098793623877253535476428961530033442806806171626335566749175252040538726382071062906182063150803132844113791438978989746942076157677562077851753966110630718471439332634055634690852084349390619284579722886225973238914009079517054582969213933299579644906826207623425460155251889292582214843869298456333521305761230209164015576364266210058783742161425505159744314777314852711959454635685627719619448349058875265455546199652825225554258373963868736031527564787041471987507560336325427242635001671989505361793309700471467833412398150821871929350324938576564082302266590432843089974511864945997838628167801763998164847956858863291533726711856606792757081899822545695345376012186901031742319603846126592461935987267445131783428604395376305223950432696436800476043663466695650554635673961834585209921818506165911004592119796420236183305162818505046088350707036401013928597353308344013990926589382556549950318550328132606580097740274682114378307886703170437499563739903274375566798722463512669172995686269594383177031469391734021153532078991975767899717393150058611206750385343138317661883184638459431057749634447231428692358874585318093750063584728120908397836603155656176785439602019700486784019701149115582109269776554901948931737500603665753730164183445824635781342080280057434783307855310919753163272356903806228049194941696108467972968019806295515015361825438292533414225136381516767748806534039263962162142430166814336690013749174412224700589648032192741733697528731779240236741075695345702251296601085444878557142747349046895697232386408172498606061479690011683582125519324834025875406343979185279372989150968951563642019012675639780515772968692519229967066677101694006181037991232154792816776703421449225834130551869059350505948712801280353798836598610202114498949933322724765477513811235984833313337800932987954990923070828624549075033300221075101645969761143066029110621320582629509360761850340062502355094065360346383453251556540465259054221224988527087091764567760325278096964295058631596111558577712519852979117605020618140497410313312654095530181978315288149824580325405442667803156641434262423896606634018606632302922895849335093395706357333188148091993821533339456937372272206431167300763938768800158585128777118876118409064041064959051578890548115237120866896077316204161388163653915669019742994164274943801718060625945781152205667037409712878616691247014241434551522984919720926915853601901633956798208432182003456431732522049971088353732895018045877239060208089131292816409382186641469237081799477032636882988912612976647730223065194829053701594759174852561437842249911294563082182922927365747595516058610905700357706909362883566987505749335328705963415677019718466765683763453253537869452380969343997213919811061827951345287314938572766163266521712300703632513807277757644574238778761763779850586004924555560441281632599761849483703497006129317665758351431457667270030075351367652008964068843361921428161592647278110529410857283188335031439792599272301522487353623297449858357091482589319334825279530401623584608004923793903994102563797010488506302279172367065150837049323666350366529218334264337480486167877286069465284008490170150881405624469748552923741387820617843434844291540897225136681428093440124799791330757138858070118001978905304476193073635351942560167700550771064302537199400309543357908229851068889777826660848776003040083589461624552628961930616570143675520033857943500698683645287469769663467329827346430705159149921516444807232169932922591752369719419959846501266028457465838596470148642096863600494052307457081646687334451992603487475757541133212891947750523621379140009216066236095943581147780647883718728240836129405648515335844148771362909913069856119022083216382748138829444513390116964666719024785368002356954003100362709988792277971762584020240905249493307299300481289697051278479204889891456714411432370346271180648823652436204373644174264179499204756188126225767169819928069351679889661967997216001315182566310733351021368978727359745431901992504677525035541024036103254994010681416948769299602660046642644111005912375980232019487454929702838478134547045894542712664714172205417352647486434380187801377471838835835791582118400435055132506927360166106045586085627124892464943285622902519783833456155347438904324008494264613178820502592432923765062342962936585615824546633551302394138502896646541810650281136147539861878975681778982237752739306315618361119368850632805010807795597847532256150027552548587572219192257356018311944247312152270219465209629105730935267211488128785874915267754320328773087339022787709388324958542293774272248327850938929635284801712889469181348915804654626804736439919651666104125270939624881920842828766028340903045454075354573722747037614868904952433566333454189644758955863636502608379525248372523118071379015025005353787430139709142334539070213774088406625427087497511409404883438271733480363487057167918192624649277180179477434258623515586288297978908642461890874302736803942487294903860847834469504803743720483270336912872134047515999416545117263749484859876383537481809403579134933298370814207267726186136683934818543355898743088587287826953225645382104804802437351121224704062251782715597687302854964758987670481193347115685971746767654838510592467493567052827967670850937317766510901450877612088295307129813500507440393317670641030335891398569113792012611044970353158311235365258705581540860539318535672979948102012628763242787109062377268546219753992322789048335685067021496853821833707370615777829769174448444541147815798483985786322880770049668063331446150402713193786385791519288847429099256819965637042507935891552564887206549772494087107189365060168723852674542152046857888930852741393334368767174066415781604428034114200361132373594605908086863704909052582155859385477196275583701390728669648119397312228402772009716781148606956989111852563735987277458916383625962520621618799701489705809647200211796807137936077906205361405065519028987491464434574038967344398484926846252936953149594243099843178258986127421990243645560602139389307418135017309320310758373022182927395217116195568024046472241649112258825636044191259430369529324522259635114624565860781441330443292981242528496435609597457494367029489085754472177660920578337493794119953478482145508145607852611591609678495647611487202257360494300106191264202551173251123633870253826344176546357746984580326939431292975242383478211571766529424474153647062991465963699252911353463581177653857885856950359395358600225657967861290029677613460856749773477300302544049434464024198772638424213730773019784402997063727837354465770041354343181437004088607933132456819473359967003135537075313076782276199379057867713047122012836645580987164618520145529008395947735261199530006853918948409886514083051772301888708987819889068054319292208259626987519083241655519027344366960324926506965539274030437825174135353946259265174241374482397765703027749308123079556940671123827805299004641123796224372443508550245015888598780591995112606672299239457542925024744824721080172988358499208426995199811869830304531565823298331231867738936423146819122591882205520004873867779459105798330921799477000743373620095343062742745270747348497138051203000994995118047236554215294122371573505300574206320811243206920413454201938946448604549913645062661850143819219458477722882831484299633452046071891213721883611590506994979288752557650638570806069788321273875635939083273582944945607207238163878867919914411598458061756754083610991887340688285479362397348052197719663032690505574015963848949638957922400842711911054164325665381527517354090835190298359910320564611671260827864206239615849676443820944623426177590187189476858098209333422641714054703829476390152453474755068503100701750987730834283333418255665244529491839882767205953288819162851287218628558332473287276382056302859467622285527173299931636273592824932633437430696691387631065662510570624972510979310527361188454103932294289888939855521291495357813358933025596995883433754455867840255526959967174067769180289500718287418590715500155356153166714019258092491377322169024731000992701909270710628652570504470343513707325096958909344609519087698988308157616468754091418559088497708244402478461052582552800481895133315780365243132455060671396728510962162156445237057610397424456467290148627639230598528922963910739559006887537819754977125350379610076860543496569820569555566431113540404197487702481401440636895273058760568472031717263108533857758846531971109540571844400869547176321084477165934496177218716473764226185192711884329566545812929728917371319553688360305376975753736364017920399867031089829928958994119087542225436826171348407816269695870087082820893593281458885581223886524272314528917285851746319254570484714591669083532277645814932721181405695642179892869812879101126461981919862684081188334407262076413754938254327476044503633152856574901425476366957974446737946365298916862404813401609916524515983078339422132958196491252173846730829172987275906968745560060745511798576231545200846240768548155505521818673793677279064342529470624647090253024330206057219091826439664982207119133225042993376496217467995269410882911415603511545485024079806126535975418553105211990256089816192742384422237216134250724314126863628186217842959444260800605827622292281910317248804009047903713799706782056132246854331215741929803268924381341005661532567267231199531282661268222702416939088593412839910565705883278440779481381973872769625079188501467777334270220283981996103109987747615581215438828261431513221987277183919451872340353586449459033657839296493318016973623385182403417732904947617617600788769736159940180209467676780272537167063914781236286462155306218234023043096102200483565000755307682331821457008580034349220216599504330441473337126627614463281033104179093493473659990104494756432516845986517551247799202095287611377706393424875745887672951666251237082793513076920743037043006307487194714802192885687261937891515692365052442814400263664948788928922948016968424552921969163631526839035384131744763249697247154710974259564023540492398611291755931652534409975234379524834773016953313079262171273661779041435790832412397682004657709231353945578612968567901270997324669866946743432689745481867453246241829849018656688632925290537656132514797630989648375418106090943070840494909305011431342972798915053061255358615035929468289432878954739123024128095346871788571889469410257456355939981917751134933016185912664171420461139217609566934928064642192243479298364833822576009315037277449313099574417050279748730530579401355165204545238580663167617034055470322345064848613089637809118841807567882021211965693137166812461258820662403598956734471482678178417836189174941435927960977760962620129830888880257435932199436002321418290416767059091590712346051748584507692577875809472602987142200266056064140719959771037306516098550546043189067983512086301343257382274412971646784146976993711805235258869539337509725696710739878617565888947841980695950433085105375507531994732669479535887750459400431002566626152536750364870105003124039157084352109295284802966123538896825297551132909406488799124601581593881165334111466270947312440475066200509974645715023877247907352171092533649329365410850664175095993603386926628837930711890023969897855579436714611042449324059217973096017915061173045801597291592543132233745019223758615910238908020069763894241252349456002327754564466495443656911684655284995719043252909754121452814996536269200873351466103361735514406026024267903180718753986455340625363891338556359086257607958249835654173949083064857193701023443169653371219147239117704429293141494963588839204406716426776892244647102414813056362903412220782755324659703375915424634435761635249756368391810483379663623658694842591410147029634622297341804952452269460667498723546930901971476997744411491063902996666360749078589146574876006790238344514800948286976433478855068846862924753923090893329438283186560220617602919220147817141594038406682361632668675619006118359006179206980121373836683786713552184084643917703933247569246934857449457990927514399474155209266221419015614938311367595497047437577463461089181090374933256135744245198882779751876555860633519034999219730048378980303179810348457520649159787517013339124434778492934866229207372172152921844302379892481556929245856659037825008218766205479669538024590897231362665471107417013476083746070559084127755755475904174233304538259866699088242118032850004912971479299540987789167713613920286371802588470542250761514345572420682262133130187807742019216371834033411509277724474583743242964607957448776740206795163643750614033077937727259733204127793963582768754456335146115138575829259290381755463958174971201025818022021239761783613976312569205855633976757892855139512068919907940037607726916430169863415398391500434236173838076218016220396885670896677212514046441041562574052462782909963967820643432300345842508275593838820004770825568119222162301027417583132520727261130296094875551088535430240545569252097763306596990050332657772514672546637421390097490446475369162541440080331600943275002413500307060646744456331559965144431498156319621002988323915711826923172667925079225238783061750617180775548120093444674570978943764111708571593625972325717359107121021208795839767490682358582461584847389285273378635091996275908518951720447628799673514739030954264508725977810888006943735437653243786593752613444059441291394508231789862785908621783830690971370871851562306313141790606443185453720797646912814313582622726547139917503753989303925267892542494301806842989612742117934371583304265959560544335901793292897153367065192337779822431974018681662247166225419213459562356515379903883375740059421119016887939083922946572066529720189832899095473854574015229506866631683470802215740594989773032156291159373153276847428766077968454052947250326040202799462844308650279328897881153922444744478530126038746775697967291334461852277988979170557118559111961483249832698887885318975440285862799481400786518178187534762045480044241619299857117051104876358683105675846210600909613261417248521017962124585846801062465381264490003342613362962699072062724778999459114754340989449557357238333667443152335235605817018643174383453435865933181073706346046857101998501349908053943001883322507577976285088489717594765643173200120858981099849060083840206615203496085528314709436715901877644350599080206940682431836607010339972888585959900823900200775825838956186352589973876594681274810212971569511607711182040558889057834454400505814856332130342544285208103091681266713646996715075592306982032531670626451616468165079065093117960462702278448441651378740893716077025613109226375359694336575402498303334254657794454148495648298138901732712108651109898611091797820556926034986660496862532598055643971629402653871660340397934584311825261930285341905258631476809613242683313028632533422287465628457826578862632571879382550947336500645085254016476323322772478682056121588888180184289551958573304316916291539453192666668474696965372175907072710747253646156416101233067848892973294139998942431828852703898504689488569174665227562326666971398611318568302681329062500763000000165860705810054001774051174739368838236725261079208621274273316415021616316960086531703441038559232031190862928755390005604838435611461220581891270424769033163889275064259492831083111667014779033587466484741050919970864459382495972049435141760870258152291601191701279066845826520357637807401374161794238774579472974829462196119548763740488405156519361020346872818171790278619286074090655204053070172676169007428837633108513384574076323133537428261864159069835608421902718265349859297579368048841386028620348888333580205619046243753838272799453871744396894407969403214402481771582446548466310772984704384338101634143278936163726613848043506227790815048498112149749770172439969380283445644556013240115062814777810837877760877105809770061745379005083204564957862002544489050897160109871457755875495927730525544220813410139003965811903301960502024880298183533255177531586367881837621185913500558970588078646039917754002316149911146962860776318491215744163498020608168521204481436341125591651595335120467389653694473687247754625017200057188899151222526396789211933587080842716092713036740782083969466036054742564719420833977704565597604387162680957895496116896706880920188096906628978815667623545741262615244775074190775284141757446041477718145902338775728104383843569542058983381328298956954230923641093560782511375905058481536947893609884124393754585537463549500449481373567886567137708481353887876022633831991509486715560012084298833653928386527476804618735909658535695861568067349940022377759337657288175559429903457716546127596415104096734063003533091655758128053518513708339378683451155030700783547670249604304917601521093698169685991965318527063121841698186268486704520900370983930026077428806469052929116096993851100751980088498465121318505560068195551640436697773433349518461759934609735919512497022199326434390719031760556403961806543928651128174760730298472758604930344453489385731720712931186025718059275173275093356590988797291288367275571606891307707403428407030315438967963540712052283464815468766108489209519787407076562948528700544463355477682778441149709029943090236629853954794717071996444956224150252206469729710145298079005077938770280667791693423033176416842867693674918221297809388183029229623439921927604441905353235110948881990388627415604412500453556809282768203917299783520345135313457681442383069510719378538094136565982811836927707205922934949850976553236329195552427230846602312892816611160503953248058829151789314271035315930791679421421343186139174017292571031065248060369894220018375192917961258104295790162974890767631873196140603941403441672146409258346124553566888415661418472744145395172267680638344336609400020059625898493535819993528165887899040409883398262147161953804914659923613783316103008192647339756374715547412743365623564782641643974542012894998390948501908278952174412010115545082832317642254953534962114689316372084701976949080306893980392995802836702855226628283583422792708524070943871011844019261352473998344843368169529771411667963509135722129528223886610469212775705103221473141569811721602142731903802006169385752974157760720687427284442207863157855426577668296378144738647846719740304440916947193933057497476847253994610214228145804508358907163423583333936161312194074493081683370938746899524411052963804811332830251108972856216354214179158356341025285582787125715816996001201130296787853705506918952542735716221667138820987584754463585586027505742934091310959355111088683175313514767735951462990975495072646210779738036813476358562586317149819482780046505673681585703090404091448223897801308195648874435339771643904235967582472017401442028276559914629066580446963147054732149795736649716182372027116159523061709065815330348603170720437870363035488367760740537163176865736122015907103979627139369772093669932406139697556084425859091429632305876194706405828615794425359300348007039569654782991423623737164404048637566436770527635126638576724139562711607832800523968070799988401812655207599512092625603412607719190480011192485106421162967982134820734467122904246287602614117696436566444792789076428823702878982365948377342069527391448485210107978284989280686691958770566615669133276855647754752289729300592377548045523183079088056534815662601950670551034319684136023779823939674510521570946151540821349037273992282615080816671515019231447119672227818390322310148989159392661537502962765849606408900526044302197592308483195338800269593122004759112622118656984808778788471326215301120418418337521028723779832543705209523758857633844346424123708424758511454350043328465729722479385538290353278870771856481321839468798846392840443898703189001853806401099430191790375395196825901260598768780020504469068264685408330001090028403096078230883653729726669007218660166700153017414786710649729099364396184362785588099454668565166516237368879657554240332507029931844554380458467638521312192700860298399775238184969687220860133931993481712086985975693459437817536121065013797590718469880105792520019924189888144986033193181220359133924612539752339267578173600837384177095840669843287580908537885912463317796028130546407293230194385880450917505184371297185933287008256404678702379654989568938461806352543677476894222462209643513763410733227497049116135436260124420882489681289458186189552799800144090413662151659634342669486725610711482958083156112504094814274686593245866394252810768575264565960127277029454644074847226454137232662993809788669764806635881912557641937214930094385351726497303035207411082644866580231918362530679817825244066339937550648506536408728734962531412569845013927785615956872522472995711581637332918466888841851364768598844595587421247979080139054200360321482258207619136576405204161047408125487492095278031744252219993419055391838829035651355756959113977702862705396563646538017894855015432194403692816410516485557799485917090863670738921632557934658037836809599157518247757512263561382422211078001067940148258535226918414192375868218638938012446676714513927952304687860713461761252592373342787867168623173481461168914899152332559366250721801681394059452976121927351298216037749731165743568812178019538653575244621977606311817866499736320905696533618043961463054372169619046248100869537993559544568524459913289929468967988583734834580697034409287624296199488110662435627050354580686824200893153901419525206667332348223826128452715075125029648634535802425131433844500366116764807165989715945285862940441541996531214346607462525205143893052071068811874470068042307476951405772003621535683148098389826794009510409077917667675662513769488883512460360970046122590724275670634274947980650705619534700493509018217879762276758420932194984810817100142687526873058784382651053489315369974090495229600378259005020970712380805527865552473633702014326414132000401216237077771201908899437399969258978517472695627555995353537313996293867699345214449258787803053791229017782556477545126491623489669090350796450242649089282615607028017750845711711319722812872373232382383220960512489370370302760363579404445542489665257253491611050412022365510561684547265654352834489755652579222075079726411453292744879083586118095469917446206561035660111366624893701259534790060815955779660760454957421481337713632478764091223752999322882717231849153109995951110839928612580377178790827022728845704325907430968742842188024692478564537951941696584799609629049178260318754354749007471368913040358167233278507575433917395392259464457796375915213290102818127175477133776307982410448317812271185968042004302974177157378539236409304323661901941857721097098652968520935345519965643123592877259238772546068436138749309918647153656509438526517625865834256981152154357089561516778856871642254524941613766059309108331604195773867151942627812538112713908570631015186246160145354170364756380402761243458022534546821138013743847711225473999945469044713097685194279078899187938905798039043683005464924930942719708539097736142234244555548820063457023456262008681183443310217717374503612636340780977585305938454131648329448050457000015273015910264363825763744760858170400018166079679595076778863262252129547175134014828823621283782374973186274655288613583049586891655226293919553940316827020726491613950004398711476554781504774310497093543255167576765016288891273635888716390535753418282450113831430910485503462834791900919742454855873977043051667779753280520699658363395175097054259958963898289871290576442348661319680162587199804698343044812870021358850717093218579863106308569834980441392564521081983461414012524250634482842312742463035142211200623509844341959665018274362007450957794205573491240768010799530770980117836394707164883069462890820876301660062588406548561135681250158846813640856330812692169543570195923969394291570150532062822640534600439373966697935451042478300684933470238156412055561643289786535622757129791467832301864664568572561337765326032057876841304766370042318776280292500581936860884572611743705897665892415509256185911912462716816676053102420837492215556812748472748491449886573183656339337076085767631032960344092088940515800469290189036756725673556865497676006645429234444220025509824269713337773060976182464530714673238799529397745790487827762612821951076876404782047317157772234215089565028896239619242729866288860567423474413810723707296284887169577568433934471808856181600416522336590570686292674318068055979801379172340754164712507114569400547425369195634256147938017967296783326666502201060107626854308141085380508053717562255671476350842082104189269384151177845922790371770689137406792636035653341103949996117973625963402190708867948484448111080992057709624755850435129405574174646669043892942190803898310687368926499925728197913702717898744339375431926426109064402030796611714207370266864680399666590980940315328956887289499558548270080963207001310844605788336583644986500168345724947487532532796928775525183414268107109778773880297339149465709468145769014622874385028155892650424807295265176981172442386805847184323696351026818928663851501325850057597366521961342378532738330411255896802502888952057197695601709541415743505125715999646051021251540802185054915636648550332994805983680639686606398860016340219639683487735230532366055209753914245923709887120009579682328035969625101783794479198638750312698652439184846398788218198126543602776303520596988390927848030156337187318593938271798026770514800624068138809636637584473240778453239274832329341949862638959133596376998976239579156264765925390984164830399983617105350384649111766065982910159765253771232710839564915254304526042900187480508655752491007565869115501286369349012522786006112795449098117804328915689836578983609873034522640171278402939330069229366707576881652548552309339882013729114927575658141167636907994131166308667972963418494721983324792372997984798656900820045948060024803934916314349804552831593976062587411463843265057563782279018271545047419621536041269550652134172385646787063002397821070052182776033329589942010001918736090724609873421754699297849048580216584262565005611010045208645841242272263472233560208132301807043232524264265644234330870865344590081451736705024902808397171924203319688754106981521992157193760079606962029557118993392248789679059912049833983749118891088564165810127488417076370198825944659172948790921417144865227520805058847403705055650088750740786489080395931001304085515174396001196126247957775139862702411508694373699709404818996167548218989210806472610437741580325171935118959219630146516215524483082205167774833103473770872565623467886485199892738137828046479220055881470447896676997161275178518744733440640544000216152542970786871394945940688253955557297655829025790159415989837908298034623178046964356659272210885619390261278632093228150646155800980107833397482404165145276801040950892077815992987222315745186678534468642879469490588529043046755628757127887059218224731858214158831963973143267835737598407837355022348770015845396913691679076548721203768777965644516515223221949316390454926397532553952528230516337213535192417285413976107843911190057164784333093152580456009720141380323427295817240571917982486415664794738198772968726526757655767728654480395603129282183189737550838410610088811420539993935067934898529927038559200848891492530502937557808284875981351733268276556203144900371327020536430708146611166875970071605835650950046729525252033278412202620426848835014668437568058400124988113601793351256767708100411643636771162238517083733716818852262619171796072940929104552642524232971498877859471830600923754959618993437740022901184610169437334600515707289820467446516234190682896545396346195948406748242544775616839781577497764566008309237447356600457385725437293643595938823307055614098905459539183534824868199091297444316163185834741391522697200209755534214775004234674988148723607458410690044845270999533068461825965067509715028240931302195598808868201106635548731657671529973844032823590634795058991715802426637451047329019486871412070085661266746427666764783932998699890131848743000090185675922603616674077598616333468591470070514791796243662639030071861727143471993849514672580185312912177851444006218788788576790932497640599949694534336272248314082199314435819135251952548336744235660032950785293832613844654512331797600798979193076524380999849571958717193546384027189097059666299213939691544342486606325195605548291618813230241393113493513858775739867705397142096966152427542207027227154970188661127789245980436341294828868000307474618752353854768623008797450741554123923963913050132345417393525423332194869639797435345562154393265607584716082477931099166134115953331166479194621776319385117698991674003925333983942165714445579904431428487074996618997593918361393299549545464715492840491715590620463288513670833653997457468496940919375343602384154876427542113373856114512269113830862056632293620519093491524764138095210917796773554801330077959753406678846918021416373460133438623090951992677854744138704057581228485406344709141193574116994771267409367023972677354981577578579726642668497996349286655992767423807377274106709510559525118863538430098891812123202603055473893646827567328963358677264084031144910597803690213548510813103424644237799114563385459053364596366120854068859880294370151506407255471150128616255191446042102303181586359669503907421043940958114725837554941054814900691855635939825355089369057709712340744031792969183069999144303649112777955055977797357401570182971334834696777554418060651952637287868701903656491515398977486236968711057303029029181698233418217306705389471995558365976024559868390701715708207024801908415957295850011948499148716398123320821693406119540442938864536621490277991456601661418485787629273549170067824226998485886323698247380941249127359351193332363518095838609802236531146499713882792917947652619018980418314772721113327866939599860695631455069776659576071348021469235808929264051078606122102568088691634392936161153040433604874635291616893722498449409221941547619858431270961846710317311879702327429852420021250258518287369805731174796603567316525053056192023793836957572501354069889806139508414128520707773392008715797104885605820772390557784127832825345117364625676225041636722986388863443557288537592675660556133215177017460951191300702129083475334496469839303962412514713513534291299254982526081653583990383002340759963516042272158873867869595410190535190229066086554622981696198274800012206280538213988731900318572877451915507086625356946523091061822260179949249518398221347344892006610066458381312590441219221198817770866887292239675890965349010353871412517532458718922360350143349246683175514292843506153158966273908187871193990845967117347812208513163455011530539984984678912941589000968174222210979038308190557979185161836079281646797611676834377220994248372803375002567990827359737023799650934451526127491102383311526906498098795032426733507106030682182575099414734628652705005330422103657026494490145707880932170522525237189541785795382802848179652340964438099235339859972027191640631971225070602925210550302126797237733991606870743280683703087398549190974777137185082728454162581367455523824972131423439277635987297006829979046899403915806148064573936227343278119291340796488076212367653568742611792322195950755588660447880967791926548163839084998047494503773738185428562158338135144637473870896621973398232229674155578751029294874192712038370285790780835238843073543525641791302940119985501833985858499870062144821338726580753618967854690672024396843828636639277478605319135369980274846474961000294763860921441021025280229416877445185843539408304601279175762073068401817033906518631474031865328865057165650045990385007058449400160105491967952172171925453128392628847654153947942206971140978992883934893354783920854939741877977696097648785612578332454665375276592248569989371983647788596085254949643500704792190666702914652736693776330435487254301573487978621234565279746308996397913626640714923921660590255986786836760566437143095661799152656313959147373044492611940794658925345026779805620664579520034789829397918945329202239499128578665055023847849809264136117155451908607840445434893450144706917999177496885965887270055337676695112313234273516425343335196506236072726452392243363865111710003104887865767409715385659612714032482836059440197711413187254562734803765012628112477042119272448179100439078061115106858727569408414766550344081102893108973692242289971019301654925369402618783056001845343261453920878767012787242049689402397842717705188637808116894931179818186069286096883593577599024307974735249955642473837346906817932478102703476437604335353788377013893262476397332728890521629513136172011794676446118673697032537932934538003655715266252882575632378331060980275364991498859125890609059619585355554208564660269001716400503068198403835944310293371049802942637989438112946340015414554552310149520911317157294536448388319088764434605987307588999693049963237330423787584807115351598325389889274666994702823838888541097378502264333437357677370225716806572122301443204832008793725545930195781415642976247357465517846982567200967979259865314358013364819334000021001719924980236658194183891950006637047799403239758475035641580683191480089990629972583970000973151438333156898329143132014243713245876676225918833920518127508481161318162072743345220974524491959614432694080123923110068625236090878273680579806059951652120377982534060128574393774704119679431797921521483062608003930052931310057882662288029709061120996844935300551311287771792743206862920571762949938844101250119116175206415952597481976117990659804977874691479900424891494878509141033893689110355247572709230806037559364003011770182029274775139455440234608541468432659135779495500544688152238043287066397808126320425702159316796614611554430779148417161926558309883047594786088991249455375486138095770478652937105659367928311291347693601913513988689797378057185275603951741995442298495664355886644091136620387667046972393182457009375282807635805370649737314523436048415535629605303604418125187210074341682022172556790677497900694277744268028740790703148821494763767200441488049556298233695804527867601826900628136065098360686034278413508272039641814106398067826103299164510887218646867971772464100570597946195366348858637624776631070103533595162691101423747811097896835820743982374910525210126666537841088506838642537858426495450758408089909729594337263190673397596985080590804055061802286795243607986108485224045210342662017794700304115821851157405097612115650432173539376960387120831556874303032685513627813869434114895433969670517163943423049143100768325139187381504012446438282678967591580343198727978709457216925019468874888751456734394670412789517117401325271632841050546080701136430016683092054567834158335978549245814493703942056787529081351880102202888587465838748853092804768020338976773866024164683513122954659890877763765106285805581648093003283567202538214772016432381688382089237751081227100669125105170122359797313765903423338500600903574087600438110290631774035628588589253131454215826508961349401676408364012549283703745028310981052770222852077608646403603009435026102419144349650059931759371118080617066719995558304512813887338231815735543909984329902049475356351793317490183513159782358700923099480601298666571149445068173295177705973386831998040679628814591050638218831735976983552670282376919012615749681510942626200823499603153522216699002313096489428650665819376151075452577217606814019164478897909437255022993534260290807244453671421397103300778147282537665815532217482714485992344081530601880462540176153665594346994070566638523039809022470934517895787714471072385812490060553614403434614191915206709205620990377816972358180011704338662504856968437090001571004337741887065894079072782471570453599520540125697447786935202591856832490446556367252898009920664082561529914396298239107228090072981071588460103361955963410949567195877533637292328000030460382673825279471911569072072771494442740931959852115618351280627781629154015964702472604966155305243118718221278965244044913914035456144697331120480405680315752333525860849911204367555081663391129884309725369887536495577533237804272757959102318963183218908350147004167469366500601165004804698518712044697288774785590540227565311994160593030653287857580628641485927560238397956801363241391274914543275591641747877460112646710542322132662555795881719503031676885991365438941926596749752378168616065200875888856589668583171397971105289868258797478038333692250990270352834489719016634686598986167020457759295917536187310908664116424219385490494144586760042539534407232635452793797521446578808081999055782267503596408851273059017475388172116221253988488200672530643292779515850931023485465127300236802116866803455748741023868604259214019347643947726386438991288264346672580660004771040687510024845131627791454002100162647657967803941078108585730313781333524867575860151027835817381083273902002073418088596937751117975593076989007607793429463222396988211604861721990984856604193472311224912091635844891085463846516965974119209918073754160779000867050015789230796937605169059052010063585924049567629049571989013279776855730381676579633443085562996710770134019144873633518223010568890990276217605485032492473194192503049073359026213796996245995401235909981599759407921910889906103747340216611716696099832749021756291450921284409967924346003684353060396560905225460043762454132507723516286804272817100630787110318801014799945088137807313148748256937456200519913482337007403957313789626517754653779787183212420112834429019648142067955841451739535499489890964795933768904531214803760467734647734520945724268608045774774384228085137881514520871361612478946517055877924438592225659222861689230012597552916311569815333747088205750732073736467526618500730695417570629273314334826579145745834000843204697951101462002951688179418836377772317970047408143642175285511201643364585618531315204608200257999572710605472578161821697943936705109011540093448693669738802334067579163960410933213079426316400674793836762410516669387016210649298116393246799955171034530689442467875546916785502243689634087350076972431943294272682627211982136834716628552139985958167146368812165958601843091596713626046184707734897275886230269741172597864872550081545707690112277627853837090306284518265003064135759162635759194274188600698472529182980941111706728744350447129898531934390006577048905932543858615001501784692616326684436187685257673054109902800506104513610160731080212333708185955469536597088199451154961105217132983146952175823555732347985956970295640608160610281694332150939320726880445346393757027280875141163163320203130525015433639402050141284223735418243328961944667287032000073889491463532347718185533147179700145816677489313221902584985907154485683681525482437252900382131153405152625169594874596247667624963809949502918520520980423664836159915763421879212580953366822258614082143637976656235721613916192694154029468838767634081710298322043718457385360816431508667198213583368667601549520009150471685497603233839659228641468928226515834910575664333275871014333250423754126244951124163833789863683500767777532985471839191304223997839360605577613791429247572378290170935587534481510276602740402192701908850285853652958844352808960041638873260643026118702704714541838452116173408721556169691281982843108081588993734836050227238818506975700442618554413053241581616117709661881905388314358670074384147304081167805654216218746033549107518220711749216106955052263440993437060998773532139836193011858336079026405728619389112595896384453786490140518169087292168696252191408406801986011925474230088457718753192603308543437408298710004629254064236593140200609187766987835339159329261456341161227877363047058819495555402631104453474685759830425817756707868560542861088585787562546808428806252070205598315701619121251829304859249054546260160660792067155482344154905230537605969786728775401620027527829238993791449294908935854256899890452391013078257960228580864840764015523872177071200090593154183801596548119428765203638692387256439503431028067391817639416753637554988610146529351088904158557943714209455774285432160420881448072475675397375237086937115156648196721934068333582199392043989811239046458967298326174645238029690221493351780313611464794686765819421427180187345537946852021577897301432582839176241157580135023245460235069586159229460257563610655661719036333401734095571699644237611095139261185981453236214873588647703414138992317167724912452283912989462847819118963937078972965223779338200091375675620758457534567139357245427386500855832341170936378018190135805560347236011936447383692659647406360632537829435844692792714398865174043374850796751951907434135510427902770880694645200154076260864380391806853081848469770061282799624912396521874107193205016503366917248671005192796987481229719680649497322750327460306206465897768215773268410948799635898787045229003718937338095779416885303351806756951497369267485485763463326338346988047604125091767035507327215311712948119427024154881314930080206417211283697182993519819715014928817913140935266615275677181391920359990611105313816161517358551357557642163733298391177477292849023254034670211252801746842636647027437297316715731363996169650479805361604474956728709172072595438958989702980170828495262895210312146742804221766329736600695201614651308761521738038012988193032422861010482911918455023488696566466594898093497753292905333912660449934793915281327586972752080565327464557504345249129529509063409563700378610980698759775719564193409198669746243250847635582305367715851470916125049150350291900737401226102274520287412157205292822075506818311691747309339401585578242678937409256527299098492560827287083962217923633856251606654010612886203241034585409496512821989420256980072959056738478069599230945572715974285206177362282918297316273906942624018142752233345002328598158655626761363485116870337779430695276955135153633646726066794798175986464914956028454969311434084832364829558607082683732027167910939504296702645299319765304530592116106220719683505378256630212254921381810951877329249510452361307402107992947292262284186577920610051485353942197042317880271984244699980941661204335595788263100544865462812063695887954970486568448110566595285227162855534143944594620526446926264268078990685519432320038732804890416394376793494426016970492072006387478052526921978569252268091813502051612981181595769574816576467937721188543051471643333048251628430526839637585832634094803975384501002918225352059906351459930925016394202589197181392317150158037905757706843807543279272435274787432479064951459198074727438287013999664397404605253092943014038779447694488486040487207513897219595616204769808588326749444916071525788165163199614627525103928471052931975917001727717772020797521811618905417299990257204187201400519912214976726779308884223649849577693252234519388340407078119612357476820484002110534990666167777782793762170734188544225717795517769285532867081232481900457655498010652479547985157123795772629274844725122270171921514063665434788037873098662003043878854563583112011068938057903113882384719789848550479763584785671017466294507312200698118631851378993432216275250624953684297968413107251203283370267274270291987041755830515142462138405521433040504709620199695136872470245880749259537364739284371259764085001092241445969699817014996352033953861235368477136601519157056864862566354627253234865991831679013671522349850865343030383915227166016036817389323324730837828402652022651334055629546397698269100653582372537462687604273903867274222286273366488368065718978740643499062836053744120135396717162165922217754316425349088077768420993462309154745229642845498595114130130304184821673480371453315891706898155589530002649485125161465249476710914170294304169874527496070807537910393106956443255228451519330265633303135067394413897692211169161563368429948444056821155474899226318831538525660255546118948459980470812441908653336886661210095585475577977623008029583729835726804118449607513344281815126722721926335257808891881333124290598012747857901246230751832341512551842067172460155795967349893027150224174143443608194935209682048886650675614280811717402681833529218513122307991638222291152189184574146416427784403237622467591749058230087956586609913310907811939755862497882220520402516230312561686102208068659604658895682607171289513526073561161991238060593449847337441467334980640010651171725394546402627891969802305555602556787404969021849764087057176726543474393479351175705963124815722171878409556431391782026757561833781478848122248249485832236682862216442287550160453555438306488440674327823015665632858683466389167460117692485128806261552512602631070050738402076923097933148588267143991545470723060182064624979766096554446950789105950750704267384451652159138443812480910539364729946809169758980589702152742895461346161007701630340389879724365246993043519067260806053994340031684242188379853681088727938993575249288657078709440474088804028309162959136639808774441594539786674062218472040023480374641613255829000023001165825709742344548051716016418086468866128819511941588293722863249410953610041197148364592127970277133795437981638099881410906788265067157132161102865568024588013686596438247190103054129711021133461117281989656537983310253930035044584369464857140293201983567767098189070442349456508832455603488691868351817785020751789073497120931763126654263990884097844857005004439512583234015171748467899034541650125591727852380635420169204735126233152158451812048052001409541452238295552881182933225251641971301434810563731807581796503377248564564583944505362400653110589557086440847160734636583329677432077233122028797255071331165791322069723729792108791643955836857507655862913105301988663615826122635794544436271313462148554025385301649090743399056835206643380909808909714461090122557691531419257499348773775150152919962582058578769366065592054828547084386058370254831853281484306386015835030405800423542918336555514974543928274171150053388344223083347455157028006927421724079704786809689002414411689716225617766997632108541164296914621033044237981504643311539448880786042418869504464813163321271586805719828122431344632842564094102020925303891985548144488465018165524202438536020348207053148376006032266434845476432946500782701842683117076781802639012948647163277834205848966902849556053225123448203992442440951664556194504949301312037985633274947813876649982091036521356260741106155769418711238828344349699359750303384515821502659293492269310046865547060628990568860561593012214790087778852759738911715724506710751085622515499732901510538990830928826695665137345171239880577151780971495014601086444011006903992995798677508319411813193193091378011686326378019056518442306918404165410698438447108756744142858245986506816350964325751706008049196887556552429532166654735630982378737743893087821261295547808883539941846702745875770623522636632450841952162416447499041242095092060139392489817651722273891575106845628053993294695716776238410604489345892038173942318638108644353724915758858951326541886272908269481971640313652073865088764761563143520262778182509185273911564825405945562661225820385826707468135115222516820684445736304373374840723451579168731694739467327635075473052744827267933716088000317619836090555631445156572774086589298930037799764026362517799694047239472458514377442121561877097010040092360298920713536576613874610190968458879897729742584222260402522450860929911352378723345278931093659872761636780241247117845848184803480114737665792925502260346154195366195643838535901865440228924308405039734623883670324260853610049219889675543498896569802106595548413607653252780818346306638391913572463830886838119348193202013151931081682254371192654006660769276177318146423841996958206960594803490168620779730511334283688909377342492308371150294129770211463610423281461268488424045526341259972978986803862544824155884044478997709322693691623323661072770776921471953551552770365244523568270579867133553510976149570567475516418698844797110744469071777262982997389849986701876160604523299458812143544117969948502971617568175400115978072539795940654336880334735515732692928881403507607573082151713215259235354086833352573932638609300380734248457903695196203063505275498712072060053822402091691839078827444430558294534624447975892421725398589860824189756887501154459225679410510172898520672776076303160381769742278041815602636317732936701267122327110583972747233516466320850182686709858799362978725857422342810890489576004496636018437709966356147605324988604679396339683717495141431279210172960798387479660119523282448308289644467515780821616014081114527815362405080351484618959671320780629568778837682782189121701979052666192108744294390844025313929867898000289644070773390215353462619535291719966922815806610829968287874467778978150021131595231665095720353946333368269138629026979390240470211760618057276990744221651274797157830187554986582664248062663146529591457211264576066658070771270084860734547994191439123018743921160696532011843395778017872770337581827567427003205004343270710789197569489707196544266835608431806466853368052772550600777279047667892162775832140288362680265476974175748473825575109479777470793817240549330017874105587846104855788003053593327803360871798405216709764744616205186762088777502257551213245136117864203272456890830487225053057093178596642440255029659299205745809339484973944444459338085835432113175454922433280330272124423983453465229179264656915469655591644548668116162881249445983805472420118463882427137517763681237087166096367999793851823601072699796198057986197604430665217124246405519635748255951271866910377827058697365387674651959202155389007502782506219182342021545911341810306306571234587871940415262954538810697343691180255872825421601684968281946359500628786171344744931543993875386409700956945358551267776677832101180731525263665830033194081815570051288531628835634901019530480520389369123903963601912417945592474145688918071233017247232878342126079289259572311563942652815116742011589559933912043092804318564605874374506944551812409372099006273708841502131836300165036039690870038192789524358039603678664330778519755562258474647372092163839862837758923320944800041545847760985909124944561480377988063255047355454618944121930771197003994446945668042343974113787147246478915703582703275407986172599917738505168419286312337980797323296094087926699463782765305574679426408506181947620161054514270950547211191341190281968880804078122398763108959589494133819660786077660003370002017068026449764030330644895674778195210778566375232066623009101642660386822387860758145791422391891830092846479393216200993052733189209774594704818793152362871678525677090839396914577309098090852748281533658004341109990827123658129172571702989637129457450249969701241280817052159969309319685528852503871941951910276603045046731248096042021343085040867882999581486896739287314816306845990627751432160275929592601127725923811418730579654587933276477003965074953508113705594967763287377581935791847813442673137034761270777754697639794178844405979308427864522521714851062113453630864287100647167935731095443901420104521362997895172602136420202404939127786331753022011700055353294841133086659300854283603072871451183423532141604651451117281748064931332183930302840397993297410271691402260858965999932111311361003026979713908308489412274611239643316742481458085778910985864218524066764139373016960648492458521344830187989549261971421447513122127213446613639515843410737925163437825631541742185805550179204016666122598958735401463517176617537406807807954660166236244362943671712583178112239586487930454844172033375421034960694198299863648029215162379023916961305786217866951243803668347785734656406138276557692902558788134389414953302366301281183371308022209510394444501278328403066226173185723155335484414924418141025998854482446464387249921256726802921129191161493459707437793985837425870123093569492264433764052422567162338651743063385109020836620450776887023897298266283473715315001054356750303602036945493110965112279580291142498794399349110699355459839895872720880836509410540433898417834886989743980721292883670388629708012772027651946984456943257241253547872342159715019874789247777111199423652288106647473374907897627041449656489728397423396256662061818195951678048555350678249418579168462430187140096485386531215867071452101278048376669560656657555071421032404206112010985476721742296638965128916859534781371880533111681572532016335855889333377448015430809442974736064976914544946586316944390673010300184012199235889013632799555538587000559377276016753285006559569851874233075403260049512623600218447432781191390441865387876762647240046529147327125491700085246847819022568267421181504621415830342184677408078403224705714661436875957120014900121179754084819770085857686635310733057924216158151261606148776341248432104561610104722350804059214297046995895312836633036932624704711823522463353804626535020497827915594254301740069631274871783270036992550835782213078481645204703414940340753342543454953857505184233761926745759363183966118602711941947357833095019308024344104570424135702503662085727979281560610401230467718092013139013600416961649100434726049244537794957016185164029296554538877118843361792293748562887679669097829375945633757385366423498478508480880919648998339230969242895436309147223432467153767440025690788566747303094680501655730871801651595073667841002973088122591677777727980747291471998512072781018606959490972088880076458783432121705515202117754671265344771472054343482798177907141367702465608116403433762155257226268536260191978826260708637560557735255428191790238982963091090157899347225316092072837441366454348128254452384993960333864196086119705594707641353842945238984221922756078937985412492711856908176154886090507836498594865303618196940828051902106243660040448834543916408507064863507827808172897671188566515089786905884439014588177308019070855401321191154999156569093010364189662618801928876786952872219954154748923435604967970164914267502149948280853394840349826967075713219680487717478891274021199624212712632047165110335384285728370062706021096647978717702280825102838191624394419189465720205502423361743551067824237375543998493455886708971113252762834589397356472618114595865878533812130514569141947526902535918271810532384897213980296446070208470978119893176755679249517061241677608580390587528931432022297851167791430971449157777507014598059283417380661579699790385075865557438868649225142480753049656380847440360222244105669320294330237635361978155368429258413033228501180190152886232159953293844949827872775217042673847300884176046183921402674047152117727998766994882156982558400913153044330108405092227049320093522591070991827629956465516258242830770734960163088427297972357651603308653289163116526219489758333370825572292083342730429559742709874208120698455955258661250354699511683632857059675816158945795555066336624349183839121562029787464898936350658030445134226614450178619314605167292731967684639504141961394950172817503949164526784566029323916059787267687005177727516464068642887328128535136063230813628427566120362490209113833576931985710278406213041075850758426203254604513020320956295758120341470340587676942102101429150805512896664814322313961793298919666227831311535169663540031091974415350946257012244976853506617159085877746889789814416177832955264861879903789464206508498641812777065336640733737947124396562702081845985596700533077491194308692727516383128259513552823015612617115071555716239193633561501064616318128942884274347664966957219704254223417179692684194571053347559546015015644699884585898813442378455091462252934830890382262186873481348376231839722254941209039216369553683431306373590132115957103207375154743832471609701414762176912675713123045778323062159283420316720241839041181212992504670794024539214250622147922402161744131268231232608450471027256015601102613319860028673485371428966936763410777458564748023921150264774819593919379051297994471685338354341938289267616232649894327389876856209201590018425832901130214490425101136641045926043426461056354646391794577211256645342423492333173078893525366002031745917325317816168064231307251113118419929869773408048615403679847513386827259022261624720109467506164623668658875151811230287443891254604513915565569392442331277771512256865241836037027189145199582856655376000968214729103341839698018383846778965439004986935633985667411019636485773625791081607015121318241057863903198517738707401093167295614883527728033328559206984343582591770463852955037504018873574567804402177572969938640629987486983433060396149912341158746599464862706456542088215881227870769538358859177581439449745966826837180494811536298205924552153838770547782610317877519151778490135806778692361517919556623840860945021777359441741613605370423829101350716895147507067728590576010873356379470713202379187305767667071107413644488370915906621623618567279954280264879499576759318936843451674757825758821488142429991383234403467238410320327028246845574553745150182108859355793349676249894630513516725578988916028300014745490319949567820583383690166085421763715858622522643694039121058792050844113096722707836425751715835849028275919858099211921601918777003804799427312488349546903443975158933891483847263123029078548408479640489706062678294822805978277982274625188386910683834199635339849744716049760241297402013268079403403446255600089695498184388468581976279549299932601090111839597877335620160847045580396651492891924649082895853552986676051277941486443164097273668656576182441710243079177058804143913893903182433163777576150156179913998757218660959295666793428811916129217491757731731035669066680477263889532513857182269875909207703967620770470641475265837738406500746779358418856322148892353990334903696791886335464287870875136547820210914521530778568118614723952371993694004391081992591054419931922230076224827039598812139016486374094493828481194907857296387381073431769690172462838120300956796198344585886783893765385048413163885744909814191481120645507550330336356727836833226917242236263855756284618216456759571504231319512850465643697160251097437650109605695833077219334624192424352724592082944147197429413103737654029924377452283862554587459632706782599889685930389232347075363817168705262776992581571131920315699093518764445415835646726653517584639818322589663971522273919407583699657895301658004284788247639726618167429282010771440878675446613998554168110151992059658425892404021940530843771962691146000310017059825683232052026720565695217372907462156311891409787101467803318942029477954900071812292221944753102671362530177343604941039798615174084469354830725021047656373627162512903606805005877149810132714399042276122123457074203462383987642289855859209801884167407290539702708979884707550547794158185219498168428047641461424509845026429311051836905098150896284437494213217636715291305880222322472429818754269373119702010430723083744759486478623569476569670993405352896540320464565823892142361405176151532572289722613020204243054774840761662525380127459830173081530012982775358449257865099615252725541381007758883377383524509950913457672585576562445896872287445612922229138229270635233816281756903453434705948036769681234986662584738870437251509559756139742486513382592043585942041758206201442600224477136739571934833353387977573758166954214975794649372278351674933176482912515501307040370944897297061178945723699887225298488760975773309147029271046108210781445472424755541856238145859701558180701302690090236850923294262823558007977179182077963585216596062364995804824010452120168305611332558284403869272762372538510684050515320913687330029256729045377521371889533272645220391730225987509540973635162149555349369228999359479317182717329718501131202129476053965909207638565458757129244749700159259456802509858319542672252287771679095550773265326453556232161197658714303033338415823202211024066837935533372499459025641875704543962658091270339769705086784234883812389824371025089565996041842667037358389745789567119801055347010510117676858570607738470308077222554778738220800128520342171374601749194403104883384268206001124992415331078767208421561477780142586754564290307037888840074212673833899599536587215057744710288356923528285009242201968203142952080329114439317779708818906457442020220926541019710282274721283845732380830596075281394812336695807082457207401610054587651085415062734651323842360790042188890141183894560535227538163746996368364760498687280746180162072059289486268509274612028412943059277406812168264036112796662726197559105207882128753190631968183909774347505275570177082081631196237415668367139989271793929873725042396579729317397920474902796243263731343475504484516823690047846015183585088886462649568533835029396441272886937907995876719315900474984071115495633523152437943914801958438941116430424921807700532283661274551905184064810735664807828621941287659898202774296461468552387071294222284839641135377530982107876935882407420360606836233123559519098969680268348977796600476581421270140693864072170956250790950982388087352986913697773112642468367985524174283725989272520465934173335087768137870890900878434863481237307343427648030323212672143590979349576781347630227595511425719777873583609868313449853120604409835300321078453437320555852286256436660061565886767573300585652930755224361264681651830730413118260969435090916524912007475097363992182520128458099012276742514117051888258068818355251615693913701442781706981597661215057199552086724417509331451588999836567866563382242024255429432393082710562993417278350114672443694345779526603520178046071170146804767399431668660610139509023656218646112318087049312333916215762300038382175375366470685270761994097846459257513911494833559594347845615308079257467286614297068282416234177942343911068501026614892806869099228887165674988698468111552718638666918805803837332642258837229650882037628604928798470680160133642265133528527199831681040557346750686394098766949668506635327395470622386280276034116291158604432749828742791008127578590409687471877840384243986044529280583900005925387756859836924134556831584206887607500706332923966532312453699282995855182224952961147570327978410990168524906112765459888318996708499972088170566901373388834530483945064323917910008477072943158065718555276864332815615619966883552849606604310879424432034329707437418675844745891416765886631911979023823003381989208121819908522964384686293546154446663162854025870704499411284837706365436547420390989456674332620656865064814396951350292379984230392020110557835786202955119478196536944040956825312925034543548669823072025668472482923441892207805626025743015288992571608040929107893953882047123141409295447017864963437709462289842641263938588967253718282684888250179704776263383146543558460781425155424740204201443291972530392441212798777657122164731826138792782662523697480763581370141873895164109656630511001055356957741597542852574744106964136340803464395937236384829507328405012444690016374963456792293127724755409764203621825160680024163960163016359123588464516706741184873664014426173929426987135044893848667296778226491916504123728384231392555264994481319363371666832345766205656508776977635697095236100934595430872387296029450884151945804989962808574199648651940727936560465119120202237085203286126721952131478468397901630637373280307962625696196158971095466463581409822776118910369689117324027235870065170992320915726411625952470154145961601940330278671498352216512372510437286696840323780275332755909147673188260669417724126610810975777541156342903390909654705527209848240206616994165148979428640503760983264099439588982230737500271461962287147463623399699089205604580518361327103676047426192878699140490478832714441824866425836267487921217720198618192714760844279458458335889331529993221840334175277072969306649890133991657752774302868119845101507309804347249022205513821867733999529220668724329181102984712430779518274544087882924256263306527834817711913354259207819503897684109839206352446743668505499371358593580181687965813224443718682290758435624971432931822057080461011149519924895633241926688779253612015755396216587282541900121400289826393699277855169142418485671440968392604872894549177524959377111840336218850371448649211359871905137702043064902535819132348072481186330244182139420472483238792751610738135477739712129291568857875908698943831975152435005550130251468629191756607643329684121993661444374511621988495151282032456884555332956551908606835889182424290180491133495961930801863383138484568944355515857765766535569145208392872442026905761331743264989799195877957480420281338150243979074106577538476371127872623178174801473673477434769248077882305701355209617026694551980168571437486183208150240831541888423590135590881009077084461349007745250568644562920361411183834930311950014014769631115671096729710653407433190508511940372217405453612853103513097200515429824538519035169167732435223104143650215121665751003865889797150681468057104093217615761268550211499380134061169191154559548749735736760984205199029777261699640156841885206831113761375774787901109418171531003247783944388399569321025604832564421860877420009628896788885214704721200021861489865074793655150964886157987316977093458353281829790859890878496493725441133582887307050188781456753340487947528793800861041025817896389660884250897579828325831407539739039139381760547282290559260199183193795766945879124678284165916068481667291653749512416414412150571581672665821176908955974521785918003215483865096786611341583564218976399998699821129908587136760018009187463303918219697481778929992227496869204740522992618952944706758867298238979083155564546999552510214771696490539098079320897433547375999022371401628393386433672993393088971088902450453588373454828145308194230907775970986263786741344361933347104983653552865338280901912405416791735305446349983851383986683474243569617769594154524906666014667668125527727663270990246672738356692392513430772670807304328657467938275395089637961529584623917562056612771594588580817652905461363370227414462827660350324556604966366627159412339337903966385848210322377635879837906721847511886331684801972221839260057343736471495631912577211012196502587248335301572934746146570234733098756674142880534187236110513390850065576253146356019290018936691653967403347476262153434669441993418703692606687132891098416668935466067425477270515445626693532998003893045596242455721638445905274059725910845651870899157407200213651534650600283760587126185099899955984717018929032373876109540378245017230017818262406857550007303080910580240733117827691935433700894627141263364026612850378716387260324337339342849724480899543451387422752261135749929511562063584972511753899584670636433038952266507314552295785237242918561136656441927508022672301185735894544345681666948357766865855517619792845127660369155502188251453423892307942101117297979257195248318085134033279035707104829837114351657936192442129386489555682727777921413840933381334260376871494641913182978625553166717507589457566536548949586726553908980554003166516078285081722681776822216466319003801046329791288343393936223267174732607750000372491075666322286358132985899236240218461897109526101113493894190778456423279940628686860650272998092681059040743265431109762588865223886385466959878917957031655617747608773398840247460521674819208153061585130810859916693424736307544186213885228510171835267296015656707228266112643212929978119504874620141135025866304171855530054482058345891780187263301119563422656500093311726109710388330018451993641367074291766214810083771539639166717887460011458420835895709283979756132263353173514890134196962753993211503719581755337531281636517162128813357911027379634618048199133170777183467688108832936583380948710697994652209827716613310499969231023724934466937838365827868492112052059936738288284117862977266842543415144620488673482263761160629120251020971048724941344916746706007532543142350813888159739783093860369752945550875634577583813527107611532719985366842665596567327423385673564066551317967453020922303669613165888464324509204625123488602841349010400870338602178709192925961888539492447135724119535069728323186115690882529953225817404510628503171107126963232918886575818202122331366771133472628186256009654379345106430091012966604851383434952783074199348152802593303460810416338654880379310179749536040530249320080807141479310440692934194987270132694774032837231049837480647474996351010355513685645435669718762612291576388111904429416906294290088953462449769687906114042892553228572854116329298553369440892948830250081788519028071065573561388111788522097131770163763914252823709605562325853008987657479680391337641631983731721555418037257381168981384628497764248445173769490251175365261796673334038928896770263543740807756213607400980860188435678688394508196895399387906938993761220577787696878836916685962744026713007098554903683487103476313455473832802376081825444477479074985329995472091798844282588157407557885196350706757976695540872814338899687861227624405886066809790779003426801077169725445113086821867593973138777609223111140950363058174173292863299355314084336799436299229202639623583639740897917201404282541355228340515577521019100606843802937648789426495491702346013365118319536943288155110744196829588960070698239316068364417803066463012505254165030781194485975317405191228594403003440113177320178054064650815265479116897378552531230560063622391048393892195601130033274996102716285862723260962088031209687281231113965895770968228655423555568104620458672938230446939626562473054258964559153284531267079931170696703382286112589224474315546523411381542365720224330799126046548279180647232309631845495987850340588997249923445867152571761928366667198020144526908048735355374857960071663018236070736739491844686275165325140781119939361891659294049888369194627662900002828000705110522829057290053800947825542663821957109916648026251171371492941217033563048848661876121729111176437470669372848626543674595449406313897489593400471163840462906789447338439199064541212146880070194001161317065282683579332808692006634376037165454220786378432587387232855169155648125442637450828679547787401576987859966792355541365835220319643683426382051340331626556988741878773888798160516256412058704362723041861210953667543949261835062118774108416478097284826418260448521150824252133702735083806133971352675978640616998883635548118748899386079972185602926430404706471386145626241906620357487622804311739235534581380669979978542474803376737603591602778548751945072288468160769661756071630189785706581670626734650669636259344829371950429572355131217843694884939098056543556673784022166833474569880004764532681465506366284582553115946844897820569856849616111437643272256507457187613731413038601043464495079804507796072312937718588383557514320993424577717379771471678843972881875550627895530936881317689505893755814782120758724930226167008856685125919874208856195898421271831400852185200538213395814963125799146634601591956131247354588159290750761640058641924080526430891046205183601728592373081102989762997614752898373595750532772411451661385079111464575400821951987146444755010804006420205631217165996603129749756535507082226556784103883322720789817505430191201480140725509802372799283693928728281919499944911199806195096764439450929773741398738092462229984855707812646882803975715240710538412074576786454183857329040919194312251256662556942638468074037024916303210053467967612668605024625914613720796849755909942372658381424631611790949093008976416741620260105769326057810908349360549432602999597446654735404501052105324070574779388643702528226085859201837185866164230750069234362925999834060794092454084274885729146190131235534097894706337581150096233148415188449951756792289982255072561487047428561295929410453347201094072647805847077529223270860529518400219955505538897772112219515876098999394689429743655444429683436891227996789185278672569560337020809723137086501568649267738275072551341368545155917843442130322072580430558092426503408218120905271335606632415078836760739936921111124844330923864867017958730590811103160238433805574168099052237315325711897297676516899764793946796862121225927654469212719669461442603885671137673882682550784645024236715099642559796248445847261696032415573256042845935289003672991310427810357230792190629586719622894052457289387375444538101689339122112015011248112155308999001434734577252609041240320622297972454029352919685028349775240379892407935604012737562566116768345379591657155880889602446909329860222571693094250243920012042516252134808232346941586954003502990006858398373348431141672891921887865982349889380999587525867677018472631364677680429842489548898144137730682184746981395487405390674880673683758410402829387045691140451895018886285299922814849978161090453422749944811370249701099968114192682579797348052768114367898437468631388643547881459623773651825730932401711767159635330276484600892935044179254638368946444871556637979952029124880698629223265954568830858792168243759588845231215169758155369534188448034519943687043579016917151504557603782912345711892611339094523542845626085575721101181557858408484045377905055792330007890694913898567791277473383295753311959210480381998954875607439535251812793127965012439612990169945703706080738252273784056173986803588528772120827114382368771297460451053427708382089379643711434595950920400409973564566261837400781887764840817005461202110321979905057721756455891193591038233615846494749585499804948521168149724240147749193456436971853437039661812681700681073821118618435903862335867281047043694507400823581240607903006920447542894191565033175856286608151028699876299887930023504531293978450491808292429681371317017111585078565147020610219445320246722003779127815876946777297272538716281792264614929724774845638858808639172681200249454382356681727227676347251850498059488011995113476246820600907393476187018842927951281313629146567203627190807297747791942509503818716144199299649516330187837892990294620182995155447703181581022248002806559951254047776855174799486754235949392961677203100356384191187704040583350050701410931386265450753633837325816103072295507930332930221531729818609303111780587072942968213828523482098629066590517543648259756345797801562443231581670634992882686875556715069602805570380995724894354090553430697121582260000443398235978069360738852799945198066403533918177345549757802309712983711429262263988452507395554782927191111054689868530528516456571867203151965259326727424990182641074821484404665822836904583049667010824272647187213132580427308371082701358907638511308241189751563864238291609818508616163119764383215084764266768680431130126456981021504341219089188764774838079995742854398127202484217789338413701013204225645764819906212023748377716190228984914805265497792069900613315963601604546429031801013623131538599310317026441048511867303109445784944576706170232312219562313858820119003158409697873880973760040737044379770990197664626918429036881013386004617506922779101788727667628066891639916107208980264815362938776809575052023435623810672002903263178474093759141691122983758166346578640222421438797996757012356878688092975040867072257324724353858719337556434107978282627897187298351066824418129397133331370479829221787314941714957415960428475385616642934580316292544170574661751744597429230019912730631179728430088937222760430513485070730787357044216467078280536150024974022497405399031637278193774687345119765339457083721112487165681812310900066070050221427655647707592258659187436421805773896268200214164568414702576622460181876596535758447962289951924300110743926289147431170686187882053407643461749934626006377094571632633239268659113488880036537797299169303005436585262822153375377280741657630132563056638238390483635517197327874451612606482274267250064084385613811775168366518901478647271118417341952467296400732858553193647306040331543921520459045811698215184249213133148117997624161425199624298269922399421496959158700208841374765321254865523395791221463103870649201485306670623966776798205684213082509371594455765994744216853303925459150937706695899980974120116766823342731889986438428102281479805846913483343613340438703669740705849369654658523698656135014385593418862376797829316733497919607410746290340682474987301012041734413338651944517552708109536831816846638557701697584396617210150237595076491683084187538490242619942915671628660048713705894870746430933729496407356159599187108373021228415140743060892879809054779071344591124055616523903158342256706438740004803352502759601971317209098875810801680200244494795488831077703174662498063860206168767888773975340990874557195380083245253058679143686103857770601268869288947918309931933191235228865619909307539173762394553600231637384767290249914656449253424505526513247946082264732709324296455065049898438701012803238686814980916050710916717814162911415664477857311847762853213093704229138704933033814686884122321430991287062753351085674226020749606419648448350360492413128050495118855010413649515023913327758116047371321740789073526359452159399384992690469282093892907481218133815810251084921357942119290019627882676166563817727464182903256631362914336421261139217776754628008079177419010710781847834405784775686627455972760610335501586208743640318791108873442383011793403002406172220103663586098580903930494520539495429279081340114737219975112076927481265367056341579116045985217320512015902500948896138586573070518029161491999277405293273748111035894044901301847541878864708191185253843864819154227644579312116451892282692444721821925300383672550631501835579566796689993196875965940875733945893794099997139229883056722109780730504551226598088933674304047377016177087015600367924202897927751237322205325419164299271650057289427453814001719409468294833572357419973753982024328183014998997600765654291872109610026871730273250307266080840510287532727752789338359642822008990291155685332426994483632742702106774279339664199212307627833534338431367059226005821734617176905520780441884523101627373677683353522658203012521946375077984624712112067320152085555620904507078319374547464268206983744285435361575907528734166140409281146051460104090820216567361994450254804904825626307745848609459404899606231206903052238680163422735462910677786198157892807013836648254599712443699973321316197644214922646773932751525739838072247189928145215315595382439843376603967026883179114544449824358032578083438003618228596400218698233134754871090753903647405022488295831898425733466689850758668799687323582070885332757109381138553862191887635118059708738223248841571756372149192287003951228192172207031415425274498552535389040590443457649426569245915207585241859685796155904812283924344889686845286115725450848973459941365069471492021316899596485097571898982018283671744505953037344186549620729761236548760421994583856910327081003973278153456854796830500871320459629803596684370903808281139138649189991615591497374476456046133793372352252253993795169105723156772279771744342317808849710473777858153625677064564395997383871175893294191293415175720919540532439556800306283149206591304969416389915291717446894443848209883953237281644118668991492959109246675159778964990104962213099724683915804011404864530446026911635091542289944784379143858198002945072214020811308818579782712547831437507699521856268760199460624770855908713854999745794700290852657673178555844148907436133425392240769908083570598632368742952631080278557827504854352353031945998581984880313851321783690656836678463018387456050305727088607188327043707021650810646918886305665570841835832552367820285888930412120156322357112949296264652626983389556511202877933223191349845434955785979695789949638980725011580094427932903475362795011160647425066303467755960715847859472780841417149697160963046711012753261771016428243390227631684461540640851112079370462260551700147401201678250637011871422235663630727871429505733524077451478747415379761911599227781188966061148004575002792511261073732544344229862626163897456512968682261873542716637814635151520046481238271640202376864163436757155003385869770115857585895418600994238123786770611085737736885617804316571865545186388454548227265895869710787631518056398722084345644156363469541372735429123150244450430015655831399795340527216599971151898349643605953033497512777913214429087167671845142795743501270009286989507874783651095200464263425487742779342963194151334694892252377462469047746043708082165614171348179501994148936078364274304419470189438839097720306601871695101605313928915403274399567660004576040927606295292810126708222659755585538716311038330778604028294970556942642405299425600770726599781507047663735260792989146335443389649213901731453940399843354946386787753880871837237668601036491913793349223744970725777460463123055497622319362931144786999107145989641410438628385235280937348321777940785461203996182682040349476016738358499941648962169451820987039848402914695298047079581718749921525153873769315678704988866767855700902413341119515282321760960903089747293897240140386177394354643105343229792733868915887284601034990480796876712877835907249244434454931003127366870140707603574263998937176593083845428061009511721727424764709449895844326707049095137762234528454328094410120127327289486368737490592860748535192624052884433761003301676107231276935319406255870718171542610542942362742211937462476177999628886354599618403216861207692790272290255777452938919330605697576299634955962963322909690951754382782060741976520541208571160120999801732227616031908568916330744181970323651113916321249859640368153039342227616150468947237726864368713509941368961306662881930154347754041139240551481646558440960485337825470057936015876503093788080135852360024199108226457792253173873114839742859497703730504174751250447024311759945128442704616488417509763908240007492922349265661006722623040438928826639290150549850912138382854545067109696185272586028725722602323244398119815973031841194043205398167118925838808963717222655189224232261473380038956534074674482988668736707363234941895672619392564117890184641932268040257373965817830508028205875753423976186339915076467282036261022914551863476777292155221147180176583822199619921206820244202803333860625884415404225082988403053551740679504496149844604907839547563883680024206998930867824120625952891737512218185934623117429184401409414030312387487312474795283398990059065940565863178083981675508339578930093830686284851457655268469863140722041983517030647284306106248431417489204323918153039385891341440999686231004892417708357019999954733382204604685264356876015376755798042869231834894318508740671127329877225685924428613350467939288838548074330066659035425210116716313357518862588411170078971589694133697207284120962967928103962127998139612388754225274193404484800477773489643929435569450464054953403923190962851413691128407111205430378799544931461109902406609118044517835396228257778173550902850943652330490028208784024095896345958907177366236527029631271124755983158283196232999721632611908093095080139964449517486428919961217755369315880789298698848519157269576795100203413628836115901563058072350180209653090514407781157253730661904573671606496695385568962008814109520755801932298390229859837326621935392970197036672271277647023730142795969141004491008938217562349671028795899143039712978528131971429975418359312417809418162636774522840765560741861106896122914134383257210549566957592210621704353202894344746147283952148160821964382364047222370926654275766895437688860140795908933803389740807126248981251652710452732445432284487702333767332462277075632946998958749571802536240981432232851522690754747359252612917397776675306239784481034009972814497926276714891692339045368966033951714901760317060647605464743299831869790911276380971017447579457977794373257261595486499102647737539649420794340615141337184348630463643385461938658484847666058131549709558450515060130749582962597186931621954613111647105143939746714889324321248876951722944332865242785888541527780593922150914550292058515397987915276548919636575748524847104995189620024153880090088099248227999286843982204981407363211692358923917890288828982144172443718922525271957384191540215723179706939781838967961946154534338097657154121500344087489080171522715212221378215803001101104976204348344899178689664417864729551155426294985842488817780506161058522723404040927002098804916649920437188330950112893916333081936047989954060942667611562720861278424859974575973337582134654555853681766982889753011396302046976611573634794615146697223254855422381631476308079350165515666063333604555166264628169737146232351908954741796682567208498381364988534800390109764523887124186224692267303248499287716889772398419924066104492905969346458872333630616811129789539681600621582073764054295967082131259156847226394953754641717150501204768756615052190472197830985848113954948684046818908733622633932745323267349439192187266039026932905883844704977275322542726807172701643689969857764789130487221978501550104742598455884433658545164403322752660925362003728668377674129499954448189497655766489045894452998913560192206237189658173449623050191531859366755677945783852655129950584323608486659658551087925371822689795921508901473296698701352294891311607680196030076131215110574351449792501313356144892143314458007150729434764880775645610131220018008377398669984032893385698765542288656537242837593475288509705864368531875392804525833457285821296754548251335810679917935991192402068433982168556254666166328066074085790122883712068895557329409536237663491550379315995335885081934039683993903209410791498212649658419965643326066929114570826099483032590702693041546985798239749213988684699170956170224758645011134708189194958261280038148516837362338554874224080406181055577080804607299502568184302689738224384320731549874054269878767369152210712566015213615649255773839992085949000764189338794636943769470399212300833737716877680238323044835145119792654582690198798005041537544408902600865220188815250078022080314090438366843951524512954022847771651686498175587475286618598462859707537966593846254600025817832366643093245806534199667657211481811930038699473711371858987338557257644933278628158042918968630424223734847291857724500354858871516847180214608587535153645427477016368672134060490021209631990265547042079770927744554429873083337023711961517280911587481651086173098809982027813570092316621228759138190290361276716470275221501743451746871742272601013973214530539488114722588905451031422447175138788951834567918341363010263180501575871309907921029999477580634286253845685247955687364512126715820158603873272272448188448857279883109751546251215967750904623988569787058183895539388539035456608194816503856998875146776392337632523473452618269938166257488128391773818520484355550889800622056307796098842012644156231584194463072067820625502030575577084446650658490575318533388958257036231829133464884226049743965722856873205520823031420547836319439079004781177954197477074155178354845570039649539168085520275382452741194441882680050016492616424125750307092664505587196702012506746434791749414963712622916954202184874296301071561470398638648481651300681982736916904822588944895030224016560409522719480074925405322280141747021500604317711092824526207005319980033705150990837769893961663301667036011507038002898240524501538886525550355790058280861967981594364509773077375990524569026406343921750400546384351314262449789296371920814526451665057794355269611440466585108594173797291537591008434526732501524026199510981447869725922166206954416286398845543545526731193233048389902058989603789165465136454661380261643758075286324793433644864612315565795548015274154673997888709108289803445568976206038686193956209058604456682002978807509826409668099897292506574936156084752592768368968961123522704921643569629641662143135437178653995810778562709639972751942395746827242283376767909815434089185071887497708641518977870101476509890854048764977612410401908342617220664605003753534424164284499621251353752042637537242696939926681562739940594193799256978231906429933358089396897398201091652659609434474981305472894000642340697983525543714320541479185730482258379746787207121199754362708502149217958149378039876801116891152191013829891854719798628727077746175322957516381929425744982410536268488192215439242634850473203626549647039543411952774280149803837973751669931522649488552251867274238496712099798315114487823197761069471015914143353932567866216714298787792107048748104822185030489425006910790750823432431507932851124235042494135824345686262729442607611281860971208660981437892949436186511353483601412076920649381667963323567032259230020327281264630717817819611287044475119594356050036596850445883566922287398285043312837434249855930883599092049257152145287306808171458348475579808775016581432698576233089658851678569387816845438969594963938201009765241256838762702058993403838508179710636552746618308243016375281174158772940132233873510806304783645421645872270152465537158258285805180875969720634550670944270408748635204443035813311918989113669633686513360139503500669886449583676340303672343415353079134868548658449599176857471615548487198862443226886418938682604763333009358440653394106089760397789511072503548041765362268049149410564737474749396334383482077903427444665425513466793516227639395183094281241823173106762856946198094239945831029341410164127190817262744227129468782053377658802382410752549361845702442045747911328066404676237814550819938450366721841302966129623795229357743203054304281917815043710426841038485130970100962046254130298918055680929662724858846669067926720537478523046799859171798282837776622374684165433063793575850645602629972111477542564319352134464371687556399190801802524545526301098235296529956540202746068113820158383866099063057294490941121527964751654443800496147962784330934346808204147378801285141032522327191578318759118659939575577080764618079327041500189194106616807789579005603938215078658664226977746564721559729555174515301935332591636658410825802617107405722433343175381692056693444664426040529429672116474300212499307119704707169952791996739334738934552475919653609074816382562351645216157133880348667524021430594162147907639591671761189582198682571861913916957310405369515303278939562151407890958798453141568446325152471949901941312889754298806414724217441721894726231885700463258489455032003424783820930047748567186697867067665003607292918886224796429191046088107381081977502606318995171332515584184414722521762969872323760603329254667530011514357111862677829494724465880006404487538742803522705867143257604072581193144668588296993027164683263615168332386044422109382472953927634923405846166833662575367669836064841371766859055828892581688033986691085517657701614384794915573178808523925899928341814542332332783196807790943274493464912003075482772301208235596011914405950159373471859222677349245215875997840252466085462373044435612021702080947051659956050625471847974966178587168379427959983787952362528993722907675999465007510979441769604039152693907801011995136042994177800269114712141366012116419091185707414987020512410231415848921606479641031513416552501226944287931366333421403798854113998145280525984100280166453258156318317904091906444449609120007216009048626673669745156584808880782314626308233405158507143443321557453898906749829818196113098685327005118413833758964699582652902466884291745404951594320262704053058984835300789696407235416647746031941534102269977186640170351007078604865261870487629893492560441458599964390706793572189114900541643173016641353708405765199050537327111405680482687633408936178291416927833684710092098434925106226364280982430999588627504806988733037556003018825696108530917376571986841658972503640869381377555396618900878991184701439047755931226471579682976047521202718669743081461166019213272539952733775912688161257196828523215165879656399143592212239843158734759769662733819155539414540690111375471280238426925310030935440359944758717021408324061248239673912160681816774138396870498012049111539520089529370103662244851053474843674456526399954831635029732143365326937958249620817018764480032913849779126548389008069892157564814333867733291602255519262795049924816267372060735916169081933667338325008951459347740539259656508368882250377524141214703524323801545248250166943266901563301585439897843103636592547080199490671555808247125778589141164617112490972836025779670221898905520861253138193417194189548507769450948721071336696699305999651173009105582986140818576422710816684515589465015188648730816658512498333405232551128712402615417911107500631065488367146140497747259246770025950111374153436019501659160605017548622378740747113612936968408746781371582609043544102820727424987255179482521227772489457415772040339766221927653755778589384902979601705726968932322700574454504266695721953772651461576599121980010258397177706388523346572709048210515582467864017610745204351423469301324649169496505393489538956892788080960699305998089804516017516852776053783534547627931612091489438941216551125620463735714327233804717297809938053484571293051613727694966128486921987883772506158480697624426161531867280778407014083226057980831757241027983924448199721541421406176914328383991197139455471991585162919724316953202740259467835323688024461717409887609663494742282083675659875949234511314984221109894385612886578671190443806424853240826155535151162360034160332397401881517153978096665525425986647283508097176548590636226721153093458146928528733478170127811850553672911299860917040768305018558201785906136678748389085124853806398368892393169123404781639794779216341673893025974516132435601069300215318608511256109386665881071481595634324795247413176085702086673909742931098146322123162033724110760311334514397782968257823653164164487572619676547002689723867450040432245473730742839312290070463420167023751544945030949973888272344649126526818994445076435676957582135601789356973093356093836702157829384782677450187651925946091338658448496149238225475541495712696121225081833021908302338417222735098408262240266080910447286063143228221285705631987732427298243144526539526387491838989133127840855984666629775365268659265263605482439086480110532415032497068844201209437058358072510638476989716697011893562546065054654800674770281166819317052220364598657283225016206169426817940534285429472077792394104464555091560277353159113864496890912703905203677537047343045871653395194507226247463233418379428434873831462116378563010139052589122699729825055195435654189755087529756550841431468184330415210244845598532018668538819661993727587692608113698796086197459775128999749207962592152272444194034074192693833948127481977626485219031752512763976540173423060226080340736560214671772498816315958340227781359635523295579777300950519294791343082157465393776325334220109487187748215303291519509302836723154303493123410450783377305932694469624110378192455136640801464166731335121525256978226926365676599982240700032996464290058311347510038690231000140587898046013272382256669889007262634702091537535402643151333809447266938109707362583708965980375481627285450667674457767266059636504559806343461262649586539291291068220503118076985385572429052134012762323292970754358895596046417381644572018048161222866955423779850074798081172582302295534100242041116987501520809663569073619799757483548977323825714284146036051513482850495018744014833293772299720894017068554668110710052734255277583178155919479515089715720654246839871564896437870817932850128280555683588821419184509956463542598317208624673841235904239759167531757571897852806289141316434697858533556126508360834174953126078484407893070582100970921195601725725276051126230008318161817731931512326747386211612264335729665150147304027895020918168963967944147962900781888537285073766010439356812677018499759675073926355386019563453595864017210524616239006518357830186205106482424556570861363889972584317152433013587655026359537055817921249803911219119594510771588717381324150102376320957469980489390166084907723454640688369344197525108215390866365819392244594567522029202717316683031354099297408793624818394100875473444050516627923398595823830318707332782896962736432275489710523743495472606830937493730887278004435971438724550959534815985513431579201888896019452741968181087641304534770092801569133417951284298592612237405512739927615849266188193792688145254663100554489656689778937458474502339800115438916550805993073059926962598803667606808202665848034678532364910068410086157477608406543601743719726295210393930274041201700317021716647092652843966774296590142929137653567247763706370034290839186716570502940944621703475535580734777103334688102260219202579815946325175779716911588328982205693952038635197944056806277257350372451778151345220945382772277016616078147138507487404842311321752505071955616702767150258224520266443701339247032617107524085667774596100252894526283664503728892010556785609955924993095140788769028641648997193941768855173272181960656616399065792932971051473361534453710155340105170524009111880012249553978060264499507682100485089789792619821577506901933846333426823929160870618795400813204150173904607669584476079644352826967480246348268316023251513061674395559028632455825227706290693480964753534257186953950422323038409146134457978665576298156540767371678354836820571724934441309540580678588420847117509032379716826029853835835872189971513425612605461374521318178965590094488253385622603980096906360060536440060626183855098957948885234400574788359955318937237259195379878126068600490552015917770767739620336459640885331616865228138030431310212001066793201830533263191363242787599725882081371173122033385895996403950051561159390065543471661691432402674986695713283746446493394586150110932472184475271474080052659105075206858547332834010282236683590699187364981570537888473026830777387337847369118289148395503460985659686194804290255546531058162991603729492984301384860736107047237342380148505728339798322337754435788189643112613438372414358108017088769496536574927542991777185594053950727073608260514919345689744316020036270598291725097674003772902134119674680941705533280838503926010308124559408269084739669720757700599900347191774038119884816765280934331434679537530326175951827074549097914067910366668902584240384548984807308800754372498458972987358689749939884212064801239511155547079953363420803160968802515515918013900996662269697904314779771243260002821828696463443092516003900084066301406002934699728236788937625710864795477787568620675227076171423305491691008220148075748085135040276541836959619821845871249418905358001757931255670132048215327593125186073052241235202900951118966996045925782678068434818525495613837046300232754525079254837197400737321075986694304756664227306630037675563684235467675464069203627042414359577476182602911026765560438437821217476628997644879806943458679015433650484390172334618371067237848850707071340957846525460103773826738263906536080770248495618357745652193681396437329069001879740042601732251504757510809862306377631560063592553374492429613925365019497553422627540023435354973411142399532714367603634836671759921794937117852797676047511840233206663467069190715511854225876215844141241064030114822867013660496059366859546225155839848932397891064648298331411558599708388604782213693381286857193451506540803778131314422561536225602835434973205189635994365170899627800966584992932196619421111643662782890397216255066903546722433379773268043896384026553855181999579355577384597612674789409574059501024349550604456706569258347703007508589199428908800516920399808404234094525952142998319747284551169705446698325903254927344607750649797824199336794913159156588345529652237574873883002631170154368363592980017839431051566240040174857766909937729243958041062314780655449036516178440368928351903081503080217828269698404634049232858466559562712401677759226744266262105830042510634696078966693313173420407953327511787484368563631103499350832948494717359729138688881999560784736932353460859654655941838447461697786546735512784354133455014150003862550669873670106718690447172668093857866599908803043615846721149567266306919016896041635159420878862907657938383092789140109342087311495071505825390362864436707653373855795569032108875519208738633847464326477815389568842806415907162760095784650263217121763953391214884063715530142982587934597578774464632851037316869820855109649385440505245471654729466151263622680991752035861239713642035675407127447758540915175534060169517309067309880888770995036747626225386253261898610200781752694191921286499349732659680820690569136923956072032204183315211099948048875902419283586993531595072446104219557228817123754412047386708799091180805369287077737857761570644696978617210010562959500168670832016124945963333538342562535876815350401771257759440399515073866675406774972622017188731180916512337635440942651948923988553695781062178832186271082500966094014835154185816130926905233404693981902999180023991196105667027044819377431016248577206007430550434613408716661044958911266026549840381267525031650724066265285741519098614466713989220282393052024952600090938729668604708958235967397250464563095683620844171174408444956722820504596310983023611192033662306964338196425410285542240029885349474784038605900018748729012709006685463528949421635839548778000104468262575322186126209224502368979234011506393651718304873373991670596699635403960217723869639476104147770220096677100187418671047009131797485624306465709135405873353462775066305893405351364682060140779532575770636565888230881922559737401664029482851472538196461496771108522758741646913583235923930495805717922151081861256911056622157012392322986808667407602525636295879773406704163881252264936188015338940305428802207798830638033902628863783886602567723711719880481835620708798525386515675335622109154277720742911273122857181352092644877264509812102323410848936586513678039479778461262517479832501907476368679857858822060787930447837505883890012072030315404904207691414078188234176120609543882385290356490037706921718899638744542964526094138686963798034420034771866211296273718013767137214281040582648212725079891677608643760880353918313594557913504225571561600113593593652518637460923960560697626459336160147789027465617144723005908865821520960867251380070026847914398116555196646731747958903093287117165159651556662482087212300425836237348090619321616356141137273318183154232621934359207681366426552788586687040963091869151377424135481482811067628838155856188958146920097817466891679062704011925465629323100348561114597587208309484597253194700924084716482640952365784359889463077945817190603058260200000065305110484826123640430613443141984070502713338769276302907424668312999573261160504226487784677577197376537380445430980182386423980522305054346704631192456958910778030563941675206720435257233404479401487235269805496934152499188683493882669547857370765331217098889000751514340966668284260575387660494195925274690890619385432907290191500666031322394505715921842437482737780365802623810318714780308148666198916122858270400440020769297374870655505501014024962556041405364324411164066287770167013068969870921101169948267204347700435334219557137650797668064098118828070699984543932043743220582501146909914931343447128530253505110159163261840731024750611456244301551352254494970259625260495313589142949557276849224884421863210959396318866600703630211036271902868721206579428819193123635026739316525093989213259064489260011531938253216048047336472297734359935325149080789383277659603556118807765867162996359722231434531137491187603919164131186502707280897955775032191074645664840144148444030885136262037720323284429482974104245597666967887302366554955923805932307873156702798893802173694620442035131785076856370541511436480202248788037244533580215847033113874199832863045329266034479449080492408586911425255826430984280644082650060706393148226698157695726703144096392541639955756427231307518751120026556070882046584883343877430771856183943315163805007659368907160449616815940531837205744280903203627896035198564005173198488657252228873953613726362119596803768674786786084841308457892962776219352474205005897288062706527198341461933607396349630919166286516340185173599600387184568986391145716900066406130669603688843102397211147116421202487781253440261983642784954317896548586786845445963081432986390769457093637579911141112234806175042564559238811844655463391758561203830377866040146959307183799588132292187180698925010901288011804529692153433331103566335591736565309786295877436025246957176826894143049281254401876511723236628054972163617245466088946621574512315663015680968329332543506224530668898629163469551788052028117433531250122253833496638905927905411353550940104897106442666838766775031112604620335899938056298248435340154633811404101306129347859342619501058455302555546404717590688314662064053526179048925153151486772650562513080238347903111576362678021160858327192700656873909644784043912490857015726147124240175362636946439187720335575733434678970635513023708574781313817984100030580752130359449058200494187822648034705204930731154511148234679358761673917054550272117881126811748658544870743697050680510485440721267309756551638051714300446505482492476254364624622438862590370356158654908773760636403843055017808454277878457483423013918918652316988020735617805837095270233486346642576302896740970074275191392194648129574257812878311304163606258721512741273775138250948955848817124908585467074970609592790399910680647624428054813697934315599758811915480316131202159285343554735522807814216894177565687984282696496127249651843443460690130400017024266836312215062712928380270050847496139075678442214453428704827652760789186573749667078524608124996201145204063449696981382335836602305772262645697348210361149473403234010045248333261711655279223923281755057237098483436987329121053541213483752079149920477782325975784564407929312929297385184946579990296592319667436302729763124542464314468527108041261798398413277646338873935291120778092031212629886957975448774580841497575564026987140423209323537988453247608666635625077266179058044500146587480851015924169646050038475459062843719156512309062915927779411706931877475609793643437429897324772971922586929668820766048549398595949778753665492835045285637693752661178323417909292960661166108822170982020194266305049938544158276591437969051618170233393482528131884276951900256199324416331903867376902344025034242894218839908257144944267196529823143399333787352710338114637615651925338929393163331922210052138083040361400524153538859878115169235905680380403329286654166560764699217093980499644389095065983257385252149892943503228333654277924854193941755803422062274673913550528952191820189537831327266963140458344643744169369104750743885300750261367511986307112548801197068066755136689380615489975073721603460965838305839848387757424806031245853619532979530698887082600200304346744352888826430873876977039470999194889630687788458325523611948932526823060035306001449414231786004646946316055146171767553894454101141518125310032045169227698172043684870743231598501114885269434769497198025439601238705770946321068072755392393246824851013009211833759878590252023112295377704608707310753293698616032029615074860222847791047307246859972009406746006435802210865181883171177377874729349266914433098657983117065761632017636167579586118784287567956516730519731332970314016937318075709553127896870063983332286753063128878964315805481807260111120777387245374769049891379437189424000592230497231762487898625436071042602506545988182846835634659399297198769224364287026957670829847112371404037090274662108797374727255491935724315610736580387144269637729813838048168069814689712930360685348208183006010543039404965384491080747932041902001099781527849969521904191116371343279692981219570534893460625645640070872336576622922855991080411828013729642909885608741517989482960977225918238708208591116929510866420413654662784565003048140053217474364073429614308615971567703550654744528075179171119440661382432665144199591513810538817760153942201592954367041009969514551791847921350138148387340783423025730383776226980990966628987146515228539537781461973788341329714360342394605903537820692955545254355742795773523948963876447521321257648722084090799902926440643417342146421334017251968662773278708413728230634659054267466915181051331429670747156591091811762771528704559022802380533571622768610733932932029861377479200890526890216063441039368515427883545565733224595436967257348958284928438098667831097501542923277685324512847684578076479693463109393383230598410469625108806001946020192064235574652333987616625507631522692808853483534124683927904710481127035715749518689309406848319986380499648138266898638075880714732813563348570351671509598914643808660587412108656896303385689808050530752040880519255386571829610348540702024708480618496187605446530842817024230440202464067709527065121562880137979764576088203056639717373212671266636270524191750551771047727670369586659083043427479177002615710528208480579071166062791309841547781129146542688576877953316841476614593079589475907722414515009922441957806321345585892069000321381388291056569249382679634395268876592188247103219122386360483743749505673120729706485423128680922638565258009423696769110257529056711693462317244565108943539918440880376932667415273414754256023225484530198776014500686702197130308714008280108780819486249755199309595445191115231701700923776094432111095231535432657756953392232362174537704925283562993036793432056499095813090756054956079149722970271735770408593721515838972014477069255093516988695072355083266557980032442017341635585054916844803375546665316509399238106182149185749120139045699644498643167738625927407334570919293280239505931068389051284465310011028734697330245511507513538115621168470600338400623574900305877492240122303929785287072369866741666368460909942000511726167570983958795642681849786289788275502171916754843900619501994514209857211296590301919443830767461345403243497384768118283665085865325353332299607027004804651270983400082174368266650100003271292592476674417090294967586048929477697050879741743805272744131045365843127746144946417472535837317415236404255523646222220932614430297055768515325200027891132445266013113617813782094813207742375209611461927239807276685943179364421383199929331461867187543292965964519600497531072697938445440334156574413328598577676546379607842137158105954314959502004449796750314279401357803896232806387526444589200278423987777694775007680352804202631331084436328540251372520006834543340139259454295460390050085988652547853938946506768944924039327557484626335685874343837125914357266856806588459904822322417359954230922174245895594429965344531644190168305489757103262516237228326558242131265717845427307586513799350841096926672856491769384311006663785839990644798042014146842743691513691231973632921359225076955877973562257457546150785626749532060880542245668852513175450571103429642528695054329560366137106942483717237283794780761473089169411517676557687979162830801844970925608018356146592378525548546700545504684648554847044057682289514799528545391514813830572685672116646116879361401078389239689203954051146106867487311417557755179461764034695821561139482146985810693683405795392328926302865130859831850512071215244125564173985825437160795985382897276584818107810611504044369946342884945317681585103206011391884357489499864802281353524687375094503249112474864508085537877766209728448472241413536576064400558961999529702088389374668555083442497825504895251514399731969306556623364222426334059923979722074779648967949178867040415865222038219446255479280478709879198492728498231085012302836147319787675639852641937179971691105403501485962262723465905394863155337747572664069816832386028175145323716828054922746544507235657785622228810575495950517431065499053700850747570653481695956541856211695423310413543094396855036128606045026679416715447651710665332577580066595887643288789630701356344713701782793871161899188479374765820906505306829820089646889643116229654188442225570341395612362219669505242028927349259473201134086931642306571410510005738198053566037399117380324816658841320274116262391388097640190053240057555710363645977432532437473878108798829851750538848046143949125373174168689962472492927167914083106256539046782935403213666577139345462405834180049960180442475012735529406306700790748931977939693579184078474709764126585095671488041966925155231310312195260918220770038121974990948675934263849807253168133134916691171407002179484231246244272144255926754254099175784916610677410797148671082637607776201172504999531525043906054785988785550592034614301060406686664885028037201451103554659257529689967444978492707340826401392643437555172249896771542535844545947825068025177797747989894600748800845495922232573031111734798692092675436177262831384431588557035799229824577405056866830888622171152011213574775469935979370482044735525078179732297484014000047963635728255034183367950850782751446046821144117958179547740248310084641386205251735503687327625204825459157813846644990577951121400167687710008389882309046883161909130555691387669001793896605777683525908831195348590806728903849758537596904478674052861510154924526361175131979773251192299113369548463370887520015478396924450785692261145185886197961837310907210361729387498939762406316397143436813931532073183467715613831056166532084736895657811613107121041350970669858124830469790740362521484216659771443674082325255971047583083006625600132788109734914269719588494525063758727750367105129920860321167936974592296672531879133349746970229440169803932671045655893265598315803727055524299119107277804102838375967797266421602210213688049312404648059493394277402918351127007069272487245734336370671563415781107473608019460021925394469882226250859679892313046063910243037704863693988098073919467757335603165348029896605498620825497688407661946192990664520382160819456007874859612886290615229202263685140046637670609026780861056991917025899421655585280708508123822540315399010720862636007853180313476489705081658531312600133800355237115965090756931005785209389819729141848242240479237531730577757169663156000091606642902966152297200646355229400868940881216355776183388113864182787611379405193104798937602486140189438019852016002672950160826608095832036026943157458776539779474043560822260878074234589447824793192038075763088404659135583078663541892060697054974121119030593823198324915670667463722658339668581526615290111975813563689525986437356629413946863104258981717136586652236778716506526669557174992199398850319210831940456804149200963065891095058370310334417692621722309104579329586058907326938126399620477003570077558173669261029456926523640471428554123967752074903318598866735487558906687054933779213858117296464007239076835045800109870207723069440510920895599232070449690069723021148370797369048994665640262245601744983953737795837146963608680317015401005003997435242355109918799922052909993174128701911459023221355574313277322107762517628419645866293846920310314225169771205860409143137430314634047090217848854544519193944410440268940491121850752088247414096713758788891725824933812833176223531325520470998806768658287492194019805827723898728053306913606321608723732124650657353039729043379650540421126998852127062012690433564942805123408227256082862479752552756766507295114227138982625259829211720111972688821873367338945795657559128258842109997510963905896929593879099010275236275555338802832997930915666684154107977457961628618493071471271499667799351876729305821275162291844218754666999268843116062636467824974869149463202387322005913491887883508983754190536197690330895243702136700068279388350813978181394002089656531981721806714467245605590205192684110976778712858640104514413549215956172905338367164413983734891982893422685050756118135037624199133499617671765687701087480158024208370328269632019684164059793043355293628646840590417432015861491426898852045830056364677279519800299392566949679235803908760413545305393461305617107037554563679826494330110668961024743491970105337779019232073506917758698032868548678614766568196358612237732134694628270332578502001273468722439489976427916024855835627331652683390527975542342501021388246774526935593886137721733835178831349090666049558876348134437516646231864230923927462088800754957353182892257016812645077102983204671836398381451471853799292415261740201087679677728295010292403634336912117464869585540701198587020715558286575071143232209947441601031959732182437438441810076368441952973034654167287725925272089866268842086093242209839277710852133971657265832054892381122926622970846670103578443143667881348873788148626135422253643760771694494027437940974345825449371057227983659783252541386338052714974443164473001235248513894224691393721549149246937184515921808668384401136724373273113612461109922526488017626855128584116428677253394104590950623849784237669859668813570797770674005146412641646621553571734408806123453632535068795593500105246523130772141824354876008819953869847772285004656818123944733130842506701494130036421718213911298570465807124035567161674432954085412824911562175495903444497739487123280144484812779145648046706285159792366194045176851544907912929984541795060030424263775049572371700201977995619272226758963766368974258862152108341748633593778863248209285231441206555252413367434873789791603228728737116206851823003295815374103409735307403753697289531601253111369046510694154739143913899537809019260401803253191076215579217999907534019572444294348104328647116747297075331289220776917238215982939765852436711886081076743485926469792588776026385455115195976576690900925456924973562625346639746354585004931697246963582503543076620596622258128450921334091291671871014424964581963965185166430361385945029202214734857016491455221109703524109908634317066067677425019269890853573703632510323402648527291759861143390675666618673314487317661204440914505768444817529105975400601903617561573359660267996488756605329917102401114733768461275603947954635533141473030246313391217813388060018131812779696944434269048605336065969451768971462079984902886590223150457101976810807101550017170644212128977206934185538414727785810001172756433748365829751488984136608219783268528613493246588609923134106866970061003471734756975012140826513591155528826182840157069947810473162172459735380981284399348889158264146197279554124597608089305681149766025650445644703915682273647826034202325698128216999079866598137653362796980889558411770026305309464456936582668754419318887608976055252816530380203016725882394694335031196187319883473825950703326463930220968254520958835930554718478666608619442120242435641890737719808724624160861361676116682907506934020149099414555620580886587978313007078415904723867590774946053623992665385744906844939980402411629565954783669929275922521829790237515325916340470240336974847166610947241411496083596757281533352816086893789792470880352871782872692781870235640581630355775018762065485585595460249359022291130534383148633832548824455274316331645429939711965839059354600348902074478365364041181167726267442991709581564134894950749346611783352677043362142718921961726981681627885538708769299714260746367950075598576281094093161484526366887252893142160386810714840797693287532539807375174990214274582713070320599291163273549144592113588047316685192117003818306091875057335802008366717649687769950628294033007560887575369488927557910662421090680231097656951581797886529876401813354280166883002828591826853846869454019765642492781836011261010814865350294833099683786676484603426490748086746243583633956901156464466673717888484025287897069250117171904505435893104839414313171006202299417343145843889127057748110760889679340745352437007527514535052696067938818721084082161995015242998354237729013492992286912781252974779194693338829952762076358917740375147254643894001384951966644458931254405333834989700108913212496382684259004167572697491874015428300643935897620344176323790602788266200783142402785161711092195201126122693408673566049487526741207068280052197883222959314611740135146941679897639109280819199023937597425023892479005616712839515401419213185902941676823213459596694808661607424399315841676004880938910610939401432553674112633309357200511270058803483772400403919023290487486661359864573853291506801427611331163830896297816260992522225212336578236644154810951176197601337333505145536755077888170148550069581993038829544072589062519281239083127089561312847479715643087399274884431796769083641185282048828620195544852739184775413206299669271152079461738548794097635969494280992974804435655313993646181208205110148325137034644430751097990121485340502001055609482297273622608056018584817767048965116049591084776263881984782950125607754593827860271513805541357750577737914813508059416043287155725930672416424272626191918182892347363218097595649293450548651636657374191707109256877637698111618870262138386909378729261891533342470610475340423294144644415629330010352272860819103794529336830426662575097538419197828107057609254043166548732789352450802370789325085487191718931707662729076192095132770698012603060312071094512502149860755567713970687608739299902944523428538400322571085578554178042532932695994989461430599202212622602636269840402565637976744212010556607856544078228013401652513024978698408295833721901485364321201714473052050729199071313825558709882272919981050949505627162474788915797434052681832158720843649897249012240175117052039700122640131632502414341921767671744416942176422056442507652336311223407232675421990114680633000240772103227839634840971458314536012421559894866911722745553337655945890121929153209265855663345338359242341766269531587254967788333019322782866448043921572968170508382238978217300071532052313449282907744286322110222927808455580962554045188907467586130468980839089949866195918281904613970590678000311349550972802759740462318836695222699001893982196022512281662015255516780435615562845013675198934419323486780750655671333472007732211366934763448868890032577127765751453107795753320880318449504934350987602008696184698341091443071009682001298724264499164486232764295269454478088435595205365055075025447058656328212314498726547367946136459398165867774505584209056130206511688802889124851703774364303869886663556068291050235285306303332332742687207298222552379668397387811942016746962599638932146256643779654491098420373925210843766092787252854030485970439666510908376431651473274974483973390847737142190988108256260760933426837934413243501138870882732914241285074469715737038236719565420601860948992820369427961836633604410674992781379589748316536357589487244830091591025988254782739206370785697968269330547804897590070008228411491996011152000625680152529214434003102951268418064810218582433829304813205366273253199552063040450895064981525026721597791830061843451284409556613311119003927565676863901316657678911273523257394444167884483330573540092281469617164033615686319173389181794810536038420454894614165131919205474047622919573083318679428138086272947591206701626718445063901505194322080813004643604501435363831713898141261024227455409084930540276106710867890990330962352021871605419016786560621758081265652722371637436877287098718243108588285761733570516154751587980746060107736516752293791231903173675079026443900212602447188313175497223780683937318812702419312801229692033975770137174858914178829000958147420007181556505158010943646736495158685862014660020513981010978788747458831413855412729192640989182546698774623324059211445093228203246601747046803521665055680313255436590563014284623317198576939403920149950507914797061059769821768465500384299851519825313051338459192481397656999590832313400542951211545338672625961023409756087898236968824681473685867733201457398556223944719195489642896974619518907067073040016921299541015166586680323977646826965199056136316530771209140773027979790345258682677210022013513700342091365111381870017359863068279978025211543944252488877999883055743579743030074676396690664400869776570739991283302729916497355226320656569192531543604914474412756082171411953363848899567133885959065337956463245843402393507400719283563436084859226601480317222200500252709363359439203218033632255403461798688011617482760863860255505551279729537836237531145701321527004380097613464668811123765584644892712171140796067288011921301262173698275723307860262901631457147670592034555671517421632331276120890620765925411616052930528564858005566078149270947622563189987768356073990479309495856405078007147700066182838064701832436624666042402773131585060729689308547478425845526428159598783800221053007376971134623553313685437330170819630137725600168463635002472850519161812395234516830886460162872741786073002099675299603482860308900879766104735200918379139165587151548846550862543347915898573105004171843873842389297067286426627241570360096522318869228327205092874433277445346887465208116978265656813408813700317144613685483160133184736459018189837447744091038068718093624239826928997394753242836699191875781764205332631554397726780303317662950666950674520837631454835464506730061130317514688516834742872075439505900329278484019775411124023026679606083799280678615501986771077633263005822752676946124014918235092863800799649766900930220540285612346655802741815121534784644453425011446497342243057379111187641291834566238442499170448021480357175353715227975822011259062561333971112584163366707201870231923699862080523448265839062934714174959272061113750673270458966391514590442688964058832832333921392893853961519793647304554663600360175387171477163167191542518485644699927822344362962556032559014535998594974036583734830240409946978035093789628244765312680257337955403711497311523412018571485624786475566534097807030265758466648011445176127031865009119311512006715443830857193574263321232577302867426417570483990747587294345535522058283730443097569343327979061513273863112869936940543309679287147245794739454031393351222359099948395378638970033835160647078187739430752177198503825416432955271507103939695045363251110409635487430258427943174779270485329878991675562964949906879446590084094932268188605526095791760955362373798204171515624416156461962187525452239260492062625893274411440894738102295138499869437978396623227530742635331007722061613483966892198211833131585981754705237677442676596823504133129461203667072684131277579344920026517133424782421070583094139478001986114026136591346074751311024172795688870828900625043048064327328568127447700004188564479629229575903702256442856965259930058819626648232061147920563871483014270706816039716806425801369407928475172452023061039281075536189245621957015549401162460491377061706413962444769551998108987516526811709389673669088271338905763704194867325404096492835644750158917524413445284256217494034376939808531746071830746396694459005690274686904786109936530880208062028117454364175216990768489158011189832669423528090396650329043826286471141168553319580968019590343288954573948627747664620871651664317027361540109079005890651546647959384449057639962340479376900584383854718104778495122921147036603175444715475732773858360621328290021368523098962645304177923254928724254304846526828044112074391974277905198563918666837058145581843277241608291751854987079199678687551165133135248005429543232886768179337101439582683593431380256660596524711990661761897929484768986684828411521331369693906831280158783470878781069409347854501993668691325723333056652871563792804018033409404217202835049285320695833483104783766340514630177630178649550530412193504689616352636793190319693300744002380016427488356460640204907828128108460869441389265148189715024158955360648390299166749384008596903956582427779065271263468045686190097381216917272347087109813969535697948834745543925593284038813954796130615867296860334120350618311163210916134571905144000908907285222350410470994647813950339707969984523017986322029849481169723677239578436050991667807370410265734552238297155690880490291553078629308857296686501761822486102783531175410217288967497621678129981516344265264952392533165218147082279988869071232289759929599880078188398852100228577841355880527281900048120019432591643838058071602940559509921517105395626158923116229691291385245559455836822333238941834556935312556704400994719916670005802605715466247645672057894997026613055982751448193960490502233351098207249574179290156905341685278104270008683322753549333495963268467622478103351297284142319612382849405500702244707430816446400531185831809692828974674648041709607370706214926190244657667152429865759376642092358464167031307169212698538020337074498164929875489565299032608692609093487656756405521849666428157786590430099458868133299533975168188402316057974222504455936031050109702534784017184915304636755486954159731167809233515862244447873725561079776838830564613725382350738056696079448164444317476062873906404330819572201889646924761126678305184724826119376588274199996528920646574665178001825650237816468705889074625161587122097225906490649075858431873540357691202180606038297234514855057100583552488532249028090507900935486460617670187565968369720856234908033467853328795893771385899106716320445973681670137385349129564797607869701611649677868628028678029340255715677265679278819245903160282478922197941106621525456837166594358709669434458201798564786544806625699051664111991784498406455917388628516502639502890419709497689641970433621896197566517385379023787384128298591541331164594428676932683303535010698038418520389833983120895050269842076429130850323385474694171251777215204775509159008044040400673605719643058467475719460904740438828249593794306499776814199434510053797927495544416526648813173109449041203560987980500806774391321989532165224106729627175779141664505255606096243305185486010138334972177966474256904828088894946402119184178162062732319195574517582244585276183930779047159436945766331013059559467861138578488091881684918175378555096963773032283562480683720410425211199616711324447041450874208631042262210722295026586890362134380245305230391778914496895974848585528308200772757456798704078182521399155566709714203968862770820023862425806805146960746048723963376953506287380477537110654528159438662943667176007301057525347025805539773638805697912369222667499726711795893771309338380413658430330289959792492012723011117719392086522017658764189556032842033434813496554178963976044132860396227492209358752842959688083977143656008079964454588107172851946897302579968993033290304215052426920554832765588951671502448100253480494489874158163789664017674037534892686582890160626350431788620516211751777085889333198017577464371909958171030921236906616868817945148064066022500468794159706749926600288531384467145242884265682697777131896539689595370208771634881214841045374069467789098288306269423165420816857018408303650846745035642718685084549594413015807549671437947730809828223899441155215505392495576929622643732427425756875000734959428143821773838530660585173987832681259224963673855031074793272198986843075725727405386343129940847756062854604467221744914289222142954467961606471756735939616972816565452987173229167985460688779097662129443578986791497177484121844850392182992120923737332191761413125463146124196069011082948879820356727329051617302578546484888383602968735128386478406948888564733992897837302607089546985009762745575620715345821113537446730181248008580569042324941065514631349745194059836821119850606178549129217983257910512115642791302797757580303398339289300969539670171864107867710767868581311139458899416591909053094342502673269730304611289952599578461417645723003635641532409338646353203950333184774685424586997120009532158323890089532620848974379335046704551102222043701740553496151073318757364761104328398922169919739273088132919844326884415344522144913176493107653111298049352130913919820390739246203906646518008184218142536674208183240991761724245293404812699807225526612370554005133482598886484388690110766469619649421861023100175996904603398689850837363758789862923779847101540142284014606937969853448148989041737811447592578507871880277655484775617220171068285122145394919309555706909413417188803804982090289607173105803918340063340222679224116788784574625702203689370421997195698757038825188191037757489498372539515387061921193678306396922691591869505286512752350076398935900704236212021627161006867759296435708599914021052932677940448157405526168503325716499713037214009403038788103658118788336584611505676084595360781948540567760352691677863460849643881057628780137562947196511371832104723235139509678272281660444756502917718173064030722498038589400021683151623994612949621156023119044605654104246216142501814696790446638287314370895309967347652684264350267445556015362785695993300068287427928345536020147235720243022023012743445319844893709234672986314773062157165456480696365390614093111328839992626386808721093050558071552460065638614550424502299294651820066027934985393666825363856266138631215064961880201936485126881633808355290635665519109828184845859565987909043175602664036548643851427341671266125525671355490417069723580344787357522541998013571847483418661313457460179905424336746970660506383436523204076659383237460298227152406463952608345903289052438466239792003067843888584029550246882752476240363973134630715469893612987371314322488103224829424292793558090777628754186514235639029197497755057738925003269455923830532923364142130519436584017864015266082959229566009537563531291020505641516345422994454976561571557289548969259497045351185957983772201772334173879813298334493883749907460204407963988086189353067581549182545821682985226989575470122919515161804101001743691602959769061513162248414254960757142835182819225437049086584272365939817643937885498235031495015441593991499826403684662569532307177861156145194442964145481942252646577616311838019202102544327177833408460727553441437045644844805160484496491789638790194768064069865236430541081102444027654397215079001572152244452362422361114488758028748748637908559970330909188763413118121516642032413283476830939330188484817082565226510751774267061601449811481986776889058809085681040015147775924366264412577274790976415352182723477782362429501395397291130762953124225380472002039577444041599333910314973193317938782066294065241453627605260168715544447038851888072820467044170560480137076702495208868720746431898959050093626705605896182589095298520329235016486765123560721858003758416101963486740996144733463919907565924167326064725783172963901984240390249757951817817982273448299146862776878435019506056923673933899896028777790944161783848265357438674006989673324501192440109635740811446254237623690797212824896703328023709407687015681216922213485078480464319837211854130597464893312772848809352910000395809418408620790310060545894043845253876380667841883317451985735749217648006645946024269902352640558209137797582482703628997840194319372635992401978903150223709864679544272204279272349478814488369673956702835374788162879556926750720932130765215420755388125109252027631255651122815741926443010825981186385596314021784919883930711958450960446593391474706479847555879637648202859786023561590331621325296057895718954176049622828288332286336318919735149896323040200888379850621885814820833305486295627217752742745297565728065539317277226108264353819726990769076156406383593686035287439494483242428714991723020226512746281128951374175635686099877052163324461087652264743170897671619729745775698584494645073748737276211788223990250979289450581845761026973250842698197241307670946062546502560460362216679132539972902137250108626512450602128839911135966189142113252581191887575624870811221666555908533556034676396013539325094699920117582137216801876723940688676444654142043493900899349818232225745874220607479985311909544920130179738723956763283634181987423510542539428831981414935513293101682445094753888551178201368599328797713554241022222817194119736423912596631255721917421232327206216575851416546459753933558947154297140284856550060153344859343429410977775203519467566868336710934282237070307677798908818854776163952828257340637094140863288825363885953479100793898217555783161837750898923825567842512562651613845539705308683834896999345064971355242896369790179554060064144755670264115848074788651404994839618625767951426443421032161558768463639145455896049324765351449841671810119133963855997692105941559493094136280503980221343066312571422171080472620805186651233489943314726101878369900134930118222446693305981787756667268466908041570896998317735668232635907360645188090352084358499626444736611716742203155312151113191106377428336346779385293745296086492124720385747440179099081375298670947481306992872256812245915984997706773832202436917284301058625343274693029967998425495248769427814558042357878381868380525550416564262951378248840290767768379614776098174046802920521349495598075855897745441234248952535857406542614022796981758730868084576586979912427580806456302273678408746859914613732198856810991660718224005689557040890639661591580688549728056134355118205878354144312899868293489473616871581396590987710518465089535198032079380148451546989503749196094309176024578154656605681222187627539634185117624566339885450296350343660538913706372057234417680649747834295550855847977126627329508324287183269864736282976964624908934608772401694952936150582934007773939857262889145739858478073316926677370646641853530787860144376302055235975908657700089155928416424936825695312738649256641954600814534834216172609538996448549177462415644816751300030547777146403497179433964141757987445135856244930300262011244447603113727806511987003739379468647972637826340686692228118842948105581069815135808584477234988860659047811732668957411988035537683595744008560483637871723848942874188677071331555567376032830483849578975623552237120563089346903811680170029879853401186741042849121526427099612535891815623756813860511977064582815052637821867026659106767974834941771780137818928077144841552457261533873233932427851470693029770932169809715189191204426393215233788235400023619862098608762983926177164189409987231143296104999803782879126874692199759571741229187040548093813740025407077454486034787005334056099389023474231005214613966941927809227317306682116189625659502414648328243612522457774223439616490878004380069968136446130869296504386950893054096463753219662056293516111189559411381184516451178884547244549386090567295649021871078968026826571251954668032303929687301954163138986879214784530654420467106865469603657890907598374900940519532574418578964551487841473486151714551609764296791801719254068678856294481015706838563164435785758590662316010011039732264855137642794596574119940647442357015563017401322534220039249511277989758306144367066575574045968060706370196251562933407452989977881493637924041208162565651423867016968950401098927481744856533479632605432256846086970371525479145219646439917395805971356560958173736413656329840179285913540881430039734358455557177970312080689290584030267909884249659840005011970152801403518579631357864382028207195823738640809553400829169847233736668361922369959397809956383105113907437950523056247374193970221287406704413109593166949515926175221898105171614115443221295618726257766116216997553956995521086927358963972702035336522179625074448734620781900622853213624513543438223793102643426808104411495638663399301463818540679391680753379285453854195245534573838235168754640825300929656475375947057390926429969891399733242919539091732237696266318292857557490393244635155259352083913299926536477898396752160016974565369328210666284607030519629732665448923600536271905009271799811169464685087441023384030841376597356337003959492602446618149229236853128716749290187756913966166192038972306890637627670505811414404301742881052506903599657871692781584068504910141954690435267926341219874217578354188989865650891152894882237361917088743466744456586975575256970160525354936786364716549677991006024644355499586570489825597232480963061949144783313958017103970637622600799980098903793700259183747031006392608142394686193651581146177990838602892522920855920737922812571041533246740306649857264076078908596357688404353375023350515464850373761149094127791972816009678385027140440303598002688142496654941787893221961891466783316988937652743964255380924466889255209740586447691686181210563585517368776956967791642911740116432976999058857457356250405994688161468796723114132494425626829428737461297658086433027660729159519029859983278950767423567634371869965102149984230049003751743074539679978276288936958754697525228339580253378660868155970672866296152251654896269297637788374443707735517253361816612502652028419288846055727674884753626241178555881707505433422711270756417690085848853192942833180973134716909673749279823614146610386916595163620447485157263343685962640128292827352128126151113720966356570122075511929480617516584016220298199695819366390726367300248714233126091617836699173423107191108558254978278074164384219013879148410318377885460431859322398651699479204005193399448425534994997040975796360566701004724285327776605255220610416900210392380148798546037211324524996272115415025716276566368217302928588976935652031154323904930761588951212943231618212066746856453354147635262647618441801947737495187367784379532663255864082569957971017234795958879965577266314369453375017305608941043055004228489956702089425524302638773897488286646807015873571052376250320002397368949734249199293626961070198606933079912264400343747488076631485613878193305763915042697255612846251354357313591096845605223454024811184377965135717985005780598275258956608732132855754736351144534690593080983026460462790746453518791695241556563351498314397653562885778853324662995744283966429606967407113332827861397117233885433841646859056771389537383862993673748446818668048692252376407778635298330135071957724179957018658939659500061617196216559899671931002820498172658749889452644028905415130535188139781542695480264787670901527183840489847895679861326978469817718572142191926348655159054442227076672670823948014433626528560618839921418184761629683985934724315956519206844050572224100687131051643494817124110531650908591738033589293179059734927320020174156138425696747349195153473264040381211098669242521018264749933312086053624510665160030750332359294123895777644263185098470985477809165965570027866837596094201354396838173936299565673854665146055942492340926356032304780291207978384935339290870118604149995252142343975714905515590501429427464258859294470759392321780916836352068598300331414995502312569550142422964225276754277902628498520384166370143743239622240252470512865421715718352383294943477287599232858722927221135556508920537309501731544035840238826735878369039445347170530876237486591791715118621411391212570098427575042196465045985944573446655639484577803115330079042530533680341233101598345511703180315675896042332874704281359575095628262729527615657747836355955743375719015046516859041740456794772832495362878689730499887249471503193522889248206718415235634084217129000417145698640668592967040170418128392935957358640305091709164242118016093406803116546946526278355224126079340091928849081778421854548496947843998163067151071111790406417719022321333103498915130879293654097309666288824500222714872517548115284259540025942754403712413331971040397449916728447974416890997046474501972652062563308965757400302442905943394067563061474497721842443575563685020351407888508193445075934992947026780809673655941680706970956897585836447104317543519676696633500313943135891476919551389103468666042900520033076886989199013653757127357494491254823308582955472549780480611243431301115655547029545813426388166993383994122358239536229266473061922507879482193463638534278947897078111712062705007731516718370755352997779667633889405593894816441987869427679613369565281990977843469769422217773440598319671013276782725354612150301540073125710080619314160037181477868775416404961160978449077888708884660001242819229405575008849523802682264849920868453910417783288092857835720150265326820895407773699153684839862789759453943457898162537928301612799317478045614892629627105443253507098395042375001443216912590227086319307071490130917599524710371773946049782707186044645658461289563086765160486512146312227399463247844389828898948681766259768140148784714336065285089118339646376771474847882116591355046527407570203349551857175365543556322994744080286129193689569283515738831108715077067157067629760136547213392492182940273899505082325263530486985844092780180261371075263222428263822652262739783905068205125382798999072346665548854872667600192857501035626802800405773830264999513410189065666453630542019810862772816316608009659228950306806933007698862359048514419641605303857122988772289819142383325376830975631070070546651300860702258925356483627542781780037636030250201956009356983000276372323042742951929134084680318902611962917280623377827276898316767242972701096154501390987368437306831398948054175281553736782132960361298337931198171621171008800322591419168631106881801040547818848619982444285305964030090840857640690777512599419139568489344389226972354905648929495155339479454047469503071828204708678413891378959687504387773534194224659792954659713233094073736945393589487410941936257994180867161630351297179099850751482627575019649576211695572028291833647112745655638758601536550249597224294995436096003784774228504709381019851177782678246029198783402996001954739124724474109657906236285002542805203365069161736446764040635222278970105391508640800977838852495021558340045440968661011563840803958646089100111776822190125707814739217837395936423106295711533192142226125973918913224972275217685190331334156458126873095869051183420156652246027037313798446146272321340173412516692724991483803482995819678951430482446173311676609132531136449213285523307724702133877651435750000319919251775617777404110937427372266912898388765754112958451200034116079719920904465752072307470530655812583485557301337350273404168730529418881985974584809533634083866630846192591076107330267115003612087043738938418902680434738550600221743216974559912086582839960034383615176633733382181956818935084532377580083266586730251398417854242687829925545630392982478249131628357771758526662720644514690225693857797853237932986815752158414922167632086840198377758314459720427745381303051634607799754930165589017769104267789675662715668913863394334130533416210610877219816592306331732906314980873487476622368097837009761067093977253517622887400950883181951669213019385965031343229191402385196730270031916613148341776393692145031485380882361964845041080060175221553167622314708036294600683451802705873839445243845623966687942592495493421714078569334930743703420654751588987185876718152517542396933931849044529443434325989174217720301995659561548168511322954569028217411585731637025926626062290308982796374663430143999445632133978228074336321168576306364396198244818331203683604167842386760571512275695714322094619153362348944134272133335905911361698268882527556562414511863459713738400631672598733947795715895704725156135865667067741013747966424963476549998638043401918502073971880203015006537323558733221183770126807034897655726775302514170402895843690846413661127998498853657107094974299893194101345812725323600408557419622348448551598528763411176745986994588863480983459978873371123387198590353321821162656059563694741368069359597309432911168934401948547522490113596667704078872941387743189975739088517492380073824597860658167787206890856738509736651886288056677920993646628862075011732868720714923489392684367152650998018259096535847989406455479040084905412117437314905034093220314601705122639394961008339389115993546670562106315778679387961975041739152019072400387313941128746468142887213154933031745764363257844493726333619827977705502463610652646990618565625946134662151552968620568299139065413956072067331400018188108321027948262031007586404544076529723741109549665054947966554091656816219918600839858708707573326805615690292926755786317988025224087954624646285869041367702292660834937274752438987015836967913879440882873409630675165852628556695196168139422342741476244560810898769232513470693474360918159035706637452594763750945731783881201143128832850331462277629623351427684821174174767807668333982293885395237764676938398873694770404384663479310869869030682446096023188447190019685065181726699249173875599492423722139051794988180925184611674389052323155526462416424356539701387804801673232074463779214827388681862787797172899252520960313611433362048456514053568671462635347908427911202632250612285301703884840427225104165243031390344582707233730191266870896543765340092861382042440912490152334498924686227532682500643832306417798874165531898856237444188421310482404930313495341399614723902422292500458890017967505870045085900655072634594058884831648581929458206921830981063478729124487013845917995170466307634866425785411994478918716333633381320112667720521912121588388204727213788773784725699600935300140871151409129067090740714980530830814493738850896906125754027178793136827714051850779499321510026370634721283898761061524857423384324901928401698142911541738664928270519897248919687539680215104840836543260322943793766571185753999187530012501260438982724338063071045554885002519858073670931658168211330711231172686594518152209214031196655946122572135829769207340433454782915533134549005017947621233020651517936527880455562320780156882777326683662912628230756486725133764707674936007425371735546217277163227224860307442069162659649383795179990603083757566198789227804907352991938385499404304058359253576965996841233019527539917741073994108180410010955450782098941922517056278236776168608729890605111930879043467037216916146683866473924628471859527701448160409884603041954107999401080594450229458161147627992153208138619681430262051709652500801483147102525876791682441545478130424376388133534163186137559269367115769294556990162749211921648954777748879189258325066519714901994713480055771551384111078776211325713427879369130380275032484013248657744853348797920919163132757883989734913185071865371915255608224594269456682922618387221938869571615872066417756009550415036104439307008965556399977577790924555642993598952948866535481616211095886611714634766256336799664052388911440170060686849907533408254970479405151035570466607363037633679118141457863500376849358564950946590157358122618730159272421193360881186837907061558865136708463653932572131908558316432531751899989314034129404318169756469355281337590478120803129537980679199545612615826680698494819265581579028390550778753546547256237412067473902067563532119455422257729585011048709166902154627519750185004295603060216520828915803413415819833765134179790941878674758513403033754531823034223905942140122663766670889003703561963180448040920570958849060343162016206534318116267525472631390245824031024818329058199449715690684541898206989207386795761420212654881143351385423720828181117016793698362802016834050670229556242675928824375201676841593157918767126103857810962342195030561144332437683050497428711877266113054486153197647985511051968416763571906286701068054532229209577227079195461274282476985690109521048313877873863147937229271686795678497129411977026899143626180106605328271303219260277720324332147180300559955050251734795410527001130156440013506873624476530178866746221093166500424254729913158371721269513093497630052486976170539752958499347755398124724051614267133500747994545412069731228610012355338398752755342423694209715018045965670775178851295121020677487884517042529120366599056721091330368503973969917368429992113492068286980900672510912306558567214668157933558934744953364267634227780622099370198834130614638709139824509566955598862656046636330604395845051393958515178251655055450400292143602488316231867572942712916990981884568065444666225746891496238075738510556052119331369887312543536584651380863366066320017335203461220478720222488337421487730177055660270770160265291005164101444612833847278402753954100501272268483959596808644145455926123747406593625855715322054833024955253164360411887095009954574580349676607845713166218548284815364719610638592531285418870023331831337358605912661626354625941825023309701209117896132383212103841889487905662616171722621298644095613745276598247638343065863103118238398152285428461940517565898527930387861458906688476705685779313050734263519112648031766166218682230432611025953284775623882699193189170394756259412387017300569604135085626849389492699962655926979744072178051636052840709286060796419210531200491322129385401964595308752993197207479373318405669128711877477707014838704993046758088546561934889450173253081111740430449560894286183317489240932245644758622337620270876190461922032468679941358922382396477250406389446629226037468215453380130962985306084754305948327954233284720619134138198061487042636439144494001129104901185841838348819064730391777541425369166430001961246922468301144044925497043678420433311885052268868306336724745331311575385482527103494073117635683196167971740589617618282150394289195437294875428876369924960281225487663820434174526701876194086362096604104055528912775243757498023405850028522551945561168688260072931586009427249077826695043783783723159590411976711249204414520274205478989501567971276953654107095885041316083661536334478446639243770924811359384101782328418954599380622202168338639401028794330157542451534976750147256737665472347851043215540610241014499773416029568676628845934340721376308279174287448510461091978533886135590807967525124429252889591079791707298716083134260237164479090690489284522318141101174345331399210790463794130588075796288095997280402861789390432230260417945815933986756758422431306557963269668174198085287880595253665363818699486932145932182983998298925114126724340948634597147822648454684335953398825652679974307318547697584677112770752411910718383042888297451673286961415433122312061031075271972268671113245734246873458233922504796613956299246544526870869759571975840112308335844861075776643684505931356979993932993098058595021409731757075422496511698908753295264486559664290314195865371722682526110162893220270633833272485138225635463553887010703162610489660208364823405218666241428397289644520490780666612473391393737963988297814533959451109566109790385896840438414042018895540888870822464162417036327578077254834684740293758340557420301336336637463424249137052602412971655538662998069234126674617296027943432109562047100944628938058686525896461585540609956694262407678406402620195287973813072946695746339652704845824683807704227211182837208799604955522972503417438457081886039507913493937361728423095115767247023204100317643451118643543364491883590096966288950623112021777971712509736656278513592174845654800455149295209896308164854101850659094735618355949460629763351631608329382902951464591436076429644355794342019621097192056666822532033811449183312078303462643362198228119908786657384910318880125529520380948843438347969728086988700488595044282383326159346919526284875204869308939138271857925913044389093038615204641092325828015935925951528172791523100584976605915076875005618397326690913616960467674877241059596441298067081445498669287549970442243277442477792037585229374260900268474365920973007838385819955944536242822708075116932092946639429115211111828176490953192807186482624418462579544966962428006877533243922691389941747404405347840553989926863751276989301645759479871011252077503785606917786241163419475361138829607253308343510776800279086711667217337011291890805471330947243564075541858133882481727661863428263871595576974443721770642090106737852750766193400700158750040976776912437676020756395276595743940004564217402630187461199032239949123145541074958902913978577725411378908325134724818297428723080901162509590160899895746818075949619184749896197644109577578497320581839391703815473370903771843045012672874787538174791755823661620489953580467921437016576256968610442265623866651084379730502919481490490512027386241502399197723490827839089944307741257973965481821073687956747316393873631282072438895148305836582888288654817649729934698826634678945189379063584180199753478967639362453417475446471642699608277678152947127922116640709783379119523510401064034540612891591193616285112595471783552688316070276765713008131357950587615461843430686747443127034017351028674601460231706685334562921837605950957047035542208359227737558120763112026536425878914654089247121923469864944847005263584589080357538977162600576299794148264496886598822305628966725929791250257535886360269975481052108020540424989528728251260660802916140795636580060683398702606724458419805177433862944149970733713619308711370235997380639713723776221316096877173026985278179488867840621728315087065981376734432433797311942030524924122287074912245724401239879927839980576090155919650685547799142843365844432031684108714305579071513702865330744642984607338891598819588860721978541316385233042241770845084470011905008742960357433384009324790169281667708520938395449889110714696245406843888225895813960355962018107983999048775600016553485317963366747774764679242813668897403391625785130552161973999219035557854846092550503357989710698145248918059852153404583967137873465863468644562628667716154344147683923275899161141923458623811221355990706027382317502171253776302431050841423354030460008737395396411636157942354605167880408158157206795040743410026646617222104782424039628223551043033322573468999069055863077362682306367125686199157622934731039295106408213663406529989958104723640557574122770657544871983534547362632952048926487293472477379888669745039743844272845222890685773891900372749659087016635358862394245220753969430103117477889020369480446771811948382356581735108992608562082969508664362947489714398523173872614528519027327769933614388634806416611906156469041847167185070105412473110962722847978406962231475399067469122441550315376883103596436988186590475580722284507545916097104405929450331455391435206359554811108242943001493065365555325817230028777228163572056673271076689304398161183577370155069071757078711735123645750862593383257548561900894018855953508830600033966122464181819492141756466249804385056836596094835757443189182925951491461617361841551556225704179408930359229777555084936240200203300383190359689935999012294397179691423757635488538816983643762614954260495425315876946812088984840275955658353007356842707303008075821465017029576303549850819447320683733108827184002501342350550660901811166814156427910710171156909737524710365875784774992045255234259415373243621274721362101525300102059051455684430586679901552887108310038123729349780367818758293629872107415588639504976110913589162015282862311358932128915386030470851441540765836808022000522842254147564857197559646483257399643097105304392068137548814077767752715280863197112357418482652256856204008378963437483889478423639603477453176168048775504424408041607386611663771235046695365970051920364821756515966237434707536405566394805062813044333843550499069950266383961312872328677522301156590087128801682735474281003094945779304905955881397457829404263127943427016846975290171395636195185813300130453059713441449426769284967533711651633908753565304530247637725998619559177195184587404272597540138190998933004502630092876427853500982425443931704428185406080519870901286079394308745467058184921001971163174027964364529789916374379020349134826898726975601673958634002899487572280153190325285596058556897687935398837309184981293938565473856587878010585274121553736953433289692451821199270279030140337874052647974349362243531812489070377102404199667331666776179396202566000205982973753345296617219144971366079617550770275579863456935449423721162316045885981858157218352320052325806041984304683527289048422584659003760099440088322849632726842833025695106613631681397070797493448767254702354635418317197874627067784168675588710884843341273208086154185796959134013726395619270574952809487219280307689217250045111123721269761813466522338921214785658265302071319835464208225801534027784431710926444361153881401422959946341651579097302345849690348771535466171989278994008123102404291438446997112648065312660540041307408736581761502921900645398184097321707954141114582802675466436025100222849255089653698330192735285902137502207522879899037072120850711054586641357512294408989606737585602486993177890526995051173598295947336676173704088086043045749250559289035882917339991349771442423686382190068219864002297975838494457091475776687006267071278002569071671619228704345832528235130536845206527710837880093438243841368394646274962303293201143230026854612373174834047857496521381263803965673604507757226235131025588661415840896312763568555226323794590068774010472689596004943028975816043924136556850735572960011619850523210794910817524682180066654195533466064850494062250271781925734529072869073848689687595961399535414357209989078291751449354093216993511538533315568731723464424491755552845041497115241063155956019886628464929958943986843123417490683666191805284755450720610341969642321797543737975382156548197916529282148142847886601646313759887072432283498020519585433954159667751476139853876302753435067906256525080225473131186245905598423360650560579082479390193622207703516902885957137347873071993327495404233965175111395458281482864543071616266637546526625650098650818579430844645738798228002530577001668824085827655287101070669098188191699000382764301688900567975801984120938127416531185682046422877390634475499154906221347804137790868783915170728102332412422667754782455967008763587546197725002066278551219469449253161520749067588038675843602696057168641715476432696674166608776685500898510885602376332026280392798428318958996908223099375600675621470758466943821039746365003035147750866960199046341164914203208834072128627967283811435965922714611681780100403356409805538455009509624972132974851811953234769499633704341864870204247774842469342252923163298251890514603691428212063188306715597646890731699946045351298842417660135087529376132923521645007644801705770430864709374368262652113845740930733250075202127118008048508357025702714554524627788779838370313267082017983521347880260811187449146215168494610757477945391657787117077292533328393641053083160594383524073588775609111723402775522474880039361134640966660415351160972621693210093123805646166167748212008152748020232808189794223891480007652028721600202765869722764269432578937563213537884528832108813621225998161453893299002809174100189989282061686595703013663323858538309560842035742646595970733362464440190167625111877254556370750128507727596299623129583697177865591491655950842950638604529211870491692323046067754392068028364003049238149219495301116443809443849521130616893341382172018259970773384434580884592909818242201452655094908182221862358441911607824225496087563779081744163380510546243192342364412148484677378391267364517609720303975316114127415178195430207497970489677171541436449224116036955546167477067179565755694952114888340405558666371672594790117235939275507296214486233619967534339837343843464280356369556907275319821995173866299167489089038932912437090389444775888593013129082008431279722255474495164904957753318134120767368459110267548673381595046267350074385284471790142311089345974928155816778153795069957122388147651836074312139796138728076123008480810246805647176988785547685367537668782641524012774305719014286054124836731783180334836552401638147056406365523588019275540440297669176729218353794802015866222671707760688052877153835926019533901484748772270210390892910158880114114123619175208048222073403703591211950767272488822387663008767345556649708902291330922567974961379777677281138284628578608267533558530113582817070522849600623740931455929571028769809363248257946443438824040432272421176544539633515345967403725825062502511228210377950234653102499628052516429757797370097071641117455041251162513427440314901821600979643332001845622303147149960867258526676096865040981982590222486072653117890441681686033246508542874391063569228212186469927837067411184202378726335125477480793335403422291301754462033343965090572532058013549472683851880694307119863062226843823616949348145843196773363978848138324949492379874877176273040973820290351235301703943329244899272825297553208932415120161784139438487884188522484786558554449404292489254093469612928249253267193294543877681292279901109361193518913128351420967546776403734572487706223841639653372862316566543719085919282834991497531301099936950713960116209933811195218699222541193017360836120690428096305844818744939977428541660931085606821939519106932556406909371875575379156930843271105283215064022246183107000458273969863738265201086926493147414451443929358206656159584373822049084937794488374270503775968133736883777525059173515402741049976454419992787722443396120103064352156884170145076558721412753844461060988631138098500965445943436812226833352057573344472711159691938449328734268181490294688424271309790010784030428977242043638773260389537767142891956931336908753186399873834096257024838956645329915630438515794037153823443174018200333813033510715334909850367054977711399567711655242210833209266723721265255672812030395300894299853122947061622188367225838667637275196131948118724457402347120379857001156942670058469907468808342309112747024292001035466038230794680358412686933115465122233845876327212609004602576549873749086987306123627237328142275085109751459210692157641123529391217921026994709227615331358038115028960981670460582126157244631881759499222841686452063678148727090761351634505785888574136667649675957760429849108377011708994141850749304257155586652820339652406084125656853057987904141920008468322148831027690452142067333245655772328207953747754937887749213864336035589226965433100531105208222585048053334604143363828953792115106057677644967372290296441840454104313961249869720921967485247361931898332191294896204711202246649067674195889665118605274293747776688119949780658955074298743440380246305102852720965457320016085151372832156909568959369944481431727496383630465009864319268853136740437779668834937553383042764244049851781563164522818278484194670360065187728997012648981231964065427345226294672790725268788532466427644685363232395505675010664387584746966264612021859825613191557772891820167955625260851111149064709801289724117968245763873635344821808387393495237246154610025491567972326873989108069717280991808678638107263771400526846463851412848017036314734777236931550982679118717818056901244854138516284018071620596584073516059231661674361947455890599884807023049612599530883595155861410876291033137608256548140501058577074159833465860595574696114097129236761890912958569551393865726203766937851489847497772920721133457855005536163812950038736333995241385579837488183813845567618179978586491326700597430894211380301515327997706539098958544671171446302043922310397366112061087093647755207106840708382142677870714065772608080346289777749944170113904711354277750550094449897413977178595503221999409080871389425331754017629146615997753500142354286723284915167492017020966000266845468256449065353951569786210113547259849965396410628138175411620512486393478191008261146111534552221464800798690613427884484345590633277105626947088596859555215506978117148031535749938216201861855788638765576913741143731779366245807952202065399091571319014332622722850143060130862891517268396377876166550368089661175007278431130224324501295138138263744009227545743772827608359188730884389051696932678869845562758954788727515438047317754190088833573631437665581402830221649854667257891428517644947653093620410261201865677870155848699856480189360034713788326257891703645716219562165424544194277641937029154404092487448807199204504344744953089876198074191643658890319653083709750066684543948490618209821711439404305553665055737189975514220415361516102399949102046919828285429261200875730097246218502332690258480964822487316547962835603667428801129814461831580776705938236014674596763716623213425525452713380301195652724314184290449550702027256094351587801391181206115344370668320794532520335650741676676613725496459056912004274312914954323965524921240783399581476121487201489514917380293917043036280413598056814122635014609870347624127142251328936748206351758522356849309055238131584369402325409675466333861413708546681566303047649068533790174493173944076055998573969628656298106566056019540323333114811359618144093361894200695053022105862822041601319642997345756700386561862666442335948637631661403103782442345789907616861488014259616155753602047365361411220867635951267702157822026586341075693153616262594862326909855060997332936178157764104663144219886347379558956128558989668120964557221251231395435064769261463804866491511820541176256332587920634173271772777855420272887876538363958173953560259993227138569485120353413009464173050744309467377544465107355863945639505922984811663833228880189090540515158001143018324790757041273981124827530341405689541246607467541809244346541421770088310900906256491431292968712447858580342400871045987065318783116153484655720735766519076860188260297306899067903892846174242509562061986253618725742252110683585780958786241642861387566407241272817370150503915349138586424024276476983287658529047299584406718476050838034596729568593481644367866154834964265789176863720665740306167358775270257661921022190413837470192053855784319133402728187466311527455690998783162059509600558924993671585706011184308802554299623501264860460655431830370201026285822866895607393035658133945110393311805461863468269454195838470171896517780954551715322146499201296443015694019863726808210985169632395340183055037577754744337868091808062628162513293675000043492161579743085827254584124908181541418436231245984743843265660557987400688412528918383262283124731049525501758560117119697881856483833344076027926062319793813860216458282403123209161534263701282162503238348079553174606432974940362289542077089069655692222578465253074499841786177463717348687410012764363820967220033670202272979524071366507582469038532414120394253835021206110895074522785715895955533248081003327157140819177888648918034410431128674767442166385909153930974582944254757219115519098292900490890867383497705998614437319325870777592809837557103114090771757359789841986549280297255895302030318184254207183313616957802557981287453290515378086860860362666143496905726653587644623953359727117092597803485369574602898841253395584969849751155460056792756181837881988853214004594641595759241872380675364591649851009426535988652532807954047099482407308036833437626764494507499029572664422425650903830222561437327359513596378999144441657517081514202783791657748443143623849659141210380855662087426658574174111791650894299298883131891458019131483979004913135433756786315819649777915068939314970834772376711162646630075154359904887157907202059096697512539807539793958580392625788594171032870505595328902623727657431652072667754795130212904615848204365402984955387396806596897734136399404838231686780644556626677178689947816601172326433000078367194514235258445245380030013393398158038985815495536147431681509971313711586610561422896973848290613594485828234959015822239252897064977695464093539265633220509331089707568213563284726265347093803233801901151611447565783209486623118495193422237321736886714920317784271063116227282075246419576210640393855947317362097073300560427168604395943479451472337803351374363284151186390993150661407516496996803760195539638188182635648053656680014508856085254989458858200443734795242797654077756007092684305966262445063729458956023151140537927923167857438335564201186262902317186012956536132283274274584624794825940068058077007714006763777544910430770747782603801188388375966869800768384653505907655750164940087828847525833516745992265327020827144356518551235408238770143881782971783086731037715824560053642925421914306743893321734840952303155098436868829372442427818053887382432654768510320568648596836474982655581167286719317091628032558107757141491145263080369080850792354004826416159598700826723023906345546772118678668628491077110543079173455803967033086258252047555126791495012047915192402694945212571311205104249991426075988194016474919114602157397580062311799354157361170143923218675605796721207793901252954222073841268032811798844470757112780993830541154946591731840193006081377308609641021643496611601882848919601489319450270295975576902596211363666555782057933934217661061589792171068106377913810748297011574378323336500343059475626664671866104329906284174412999395212218956202656950815639590354333210272784170847475829068467558403104048887227072371253558723268280558197147042220868632892989024635578342372852835837996408221936727452173113474956951225481145765786800937444910466396620036011374834749716856186536103288191603891115229343868933221526685409747253284541631895849050888633291105188766050919759942918917517713204602623759635938103947274602489611156319134748249195685753869852295776274129723195812452340252025978143607322684263084229865136635385192439858090773155586123980487577556876398877668267690263447717057825151047835470503980628280980482863193888192790081869250048152072939716416455885856557924729816844869663890724259800287455341288866113822152789965573333269725072362087873164950784906227408193096161329280729472749300084453448084923533746257080632807725178324801833152392851805437637166142342073765242665389492269570290733774138553230416845146008379072197395965033478762182161501731544215978459821128588275761205276025994495784374341021885949382541603722405419850277170298238318771435906128344914720508716919354487642889258164589283635272959972217936584537302847449527992342409862798358062512824783111645875525128235000846301904758703312591255731473197912911381273247477631249155179004475999904479425317567598785699696677494855841713971022800741295722928240762429439049010743059556496785147591315065537453361253444918036549617072693928363511330264691834848802696515718057661990144991972760696647952420397130245743732001205486422841445738246762592631629664735812223189437037412535658971385071689328274469346665265435813372814705214885896442316378208892544776552046970789450593977957056906754821974159525984659661228503279779271768509128742809276132087705702936126218844480499389923910819404691578226747205528293130749426186680171283864700133814489053902191088470831051684632580728439332712151267096363194115633272027092475804235263511075043046563251344649131679299956543113834920725125341506882967990312243556462777401491132956536404751480391412863441296585845757417853411127038883357328960656548336092227133612177943735054106602948423708685724195366133399968564360690548044980173027341039042002156383534570773732980215486542369607616520943105265997197273997979194463617646231562440244696556405114014316516920927138658283851131961527378677460383335819692326025976000990916739253219975608296235928004420186258699571686803483526204784913069331419889089150890815663474434960330747110052528369889094348716573326933671367690535076687741816043229777736032440033103535554084888577375421017063470126986606928610231146817451611082159609470626646462210925755657213409537147250376635373529411899840896584287249858555675775321990874595744265559528735255207812939736635140185619503825983429232295641708996303966663310842557804528823994970084970857249433744576363897902587317113145519341297409541857323776564174414373886348092356930089352436968581872619574052755101580468211217500262177426798149528555037961980173703116423644805967778541550923006951399777154800301110271239172399575539547722989972727493346553734991567368962897843247402946657638398169730945307757350471908133319261824873891018960419596259308433253668530718524900997407808666266399431940815724060205762381070147226471743277211564910711747961405287801219955393721533217572328213161842548405914945812984386821017709135254538075434938699397404320717439170834248591341098997469436177442867889260672393135023555113642285522227411577267629685312730406079004259421087562915387192706213994248342594842206161519215249598776916884716055278111001796967929972027557384765906726368814744222783055563503269431721548971461235842654431917369168340254482562771657940762883807706481165063988763898842359385734021072346122703180712996529641738030855555038557969218024531699991378642770159835945876652816919334304965821159764901198349143884628208064644512098087774696339730478277997600857273776061923638181483306263616610691999376374083676766444821477835840637206962552356377524629755900460322692469123454815060817020672063918775913922344839536217465594797933211162695544594251152936221710032553823186600545572690345192721421554096172477214600791980811444020039870988113004833080850080222539150782014385134038018649390039305453529050959761642260219788700919850362464063360193827325398490659496860113509219292869651736834479371364393567344481714744464252868783246740076341535428492064764819616537647935707574131307502114410407274175020241012343305536099743376422651391328143370266884234804505439428298182839886685308369483880620964252467209377346881952050471681488255116968556968672345547888058684214755916262143126426449627267697188559702780842941747117188569823771997342213515107435431308225247984251919126130477886943174664726465912911476852650736948782917797588173067726376275126953793594454473490469325690828965850301091387650792389009502770942240257670905233097604495930490559552342911707283014696054448999365228594347234753916743570929650270457455141454086122452727292656309353469332684253682000667218389911341535255405358605679086490047691872499313742005828043917852571653128655567791364674227460743109182329241881897755162315407253153997471248034583621605418571570735701263630836197406095723087991949229118224536606163937061856850040006668031524128567918895990348765041062145766303564337323685116501322169643487483401253321578763680823367808036985570713734568391934278951039365801419973839169051263593308847638829842208651605678642837063417507342867631534489341490375438406712635775522498813211501105950757177135778887212255727155797941228901062211605008664317721499388709685987401217070076153793880916667738345398796312282726532751575009015551557925766924064807626045431388162741949583186147093633778392888782033253844835858269036670994157215210832864000834045624343400244757494534340704610604378865075560507995215934909423033650734427257245585504100175537114705537056730887598575096291633735046461316191638901539651202613099341028713072354724163698056640433245388809973960181939232166828492141225910289070777770720213865655397680230760414759548836890780731883008368546175217753108851960006141717251055846294893981349350099837303859685066581118973148715578136766084690344068404849539547049682116295752504766277417137796801551357302585209885130176054274069283010555813559458717855264598376883018815124915265588848085013883981710039410716023023763203983866929202097450555747397054972838909262903609594006715472439886393148877615760969054543881497658179600555939642299683056980389708563375304299795998692138028675254916459322934948035216277699052577137568628726839257029232330270287278603801989421468417569127433199534588797615760617675495818768964460332713525040875155975851849681744601067554453036240229652890653497313049014764339601674453437535014064371275851344363333387343868087240359438484756723800763067569213503758893250066344783612024272960980115743508071247006907067621628504020348072763468328265703856343137468157240679045393461077412225048444758820306641458794279008219791403604884694748721593997975265389798204367732063946642504306071958377204660008713648268428045964578371596475268124777386422689662194630642622733736250590414044854255477125636207573546214151092537395814209467123377959121986368652302914425998654355059663982442477164989858650763371380235198081402805890201656234089511080054897766260650607702347543308961487341901655691004667400567334954896552416054628276064023267213817340788493593102307061660652689947774389720874008022593238604847184098703026349618331636500349227116656788643798834506259230618606566061661659830737722566663680083521404035207672547164107492524223405479896924577018569381475362688883481650357905920886093515258796644722205211208800210418339521716689568192837500190109487490481062537782350020048938783090387011380677912424394710613112043407357464431701542659524484260193109036110612381439546931544196516807832407944578276679473683638916012314316401862675313250711411218056623765896118223047258001378630281021297605122391857165854299850601583243018652896493878363922324335461703379163280678095861145145586376355464058670818521848537386047941467046350407260054538311443626962374497225231539809461018014846303774685089200062630902037886307957393861507552849737738900522715870942088882732677453626328726079333749153195180639905375168863282206230435084553945612979348743929753734085206096059991107802349530278794112187193232414892136290789848566502123592381408356511619938847650070127843758058066551403251843689966050983691715700905594691494887206186241812658373660719371947945339522150069586201520532509041657918283181868059827022370485474927495058194170568564737980221467420240283086989294030652574140929031316405503998595966695750009108037362723172702419371079531080708274429058436642014126866728096239220318367438673941594207669977723678988898020658490917906896250462891492655944168639784601917809111009411321772896607484086800804425059894883177321768676165862253686649275794737868093910512680204195145022388335048180042569982682318842726946092776232005180730652694365127848250711684503960350508129679879857801437018229952289153102590508081445753371278077018726778220458768114205157060906331296175612104111821963284648330166796827332046891800390003124562650319261798609151868208713599640162404447305076190944482747440209946913888923028901554312172687883183658499438399136988817368685200250157281996419181138887065931741414761409497166386819907769818352737806909511021642444145430678093438027303626339380686521965599276192469181693719152676438113643814295819643600723933433791767888485202427503854995060643112378458656013499423410328615311676841938839393655655833262116023241113497511639730350782036730214125171604897243143697125316428804822194556511664652158093709778816803256759316512896106181585583715436288129567684363802730773450967540806412274025654621795643282355925493102302513806903921236831206290903207202609774032082246482274704620008784178172897269951801378486233604019983223447915762728712041820300752890704435305896002755065393124375732876306016054215520983954109664307749323574786909965315164696961927859940508097454396804069132085052115345594894080609705392741370922588423936624466840316875373230726922058300765579973139258869063698688521157061028186848360403030861219251719540009370149503273212003030334141696716363093912565837242860244431183336829563825009523138410897848912137888255089643092897292671418430088483209763042229761574470085170062867098961282089829913862397688041875916820856959780337534436348306732947964822327552682620929918602034773372863425216905531878463033088872780956422837796967885274201496290071536749013811107857971651493801259212058228062020651030592902743667251426119591854351271373021334476592404675146612140486063578794975521134412038444276857554975118007756299320752976539618857793776863039319861357288374938728442064071520295211468370314600367632356850273041376199987927947578040131822573654081080566450481581983828497541089094032298474073244617546005715865557754815731000094676120938645446927626648099494121887641975483298390214155138998499568794309869986845636219089122115808230236593613330230814006905250592278783715357449871817372847247408835585601225701319275615912846616035750554576518134159110868402658746531723469673904313176064945879198109105382075831172776785744388431903973650541687471305721083621827390253766967742856994069820228891168702220704139671740164537849535680796535897156121043977238914047301303445459423317662171847081527010536769003241726090661663447036771201772653776560066022653880328486851395636212070730406319486842841761113789576218611491559758833626631965927602879500707135223028282233156708794165516512081980873451962107914951961573776161691848804947792009964772615178398186625413628355850489937336265398975425831984491337547532733519908008981862287504109002169213105145917857581063419264082260569608011891521755734464515423268265423907420561367978846708540895682238894440957584481493615216306874766363663860136869025124012112785342493224942138300662683470207872013688383165959356656836904135431491058065263682887645874766246275306869304575055790350995684224738455563120849862386067858779101969140075032376322888241165916652571446656296722110888706305913768107758668521351424502954607567651478107508009938230710976104483631396957796128285178948258046526662666971795012585906418452033126472206802525627297056554624341062365339592106229103695155219584138085062803474818259231672141914673292301701920616999765205252844299814829631010756769909782223208326224078937663938162431462791889366717068249865005050113805475656204830851006332822066877825194213156285645448083098873782915874020932891345660794558036956225426143477293927120771957792721035345534109950948979266716261781134362361198316575782294824997263776455718499655751233034981849144547843307840640762758144458559149689018372239340913519277523648484543882964676714754469628912250984127720433838415900571147835839362495926922028087780222447741490801697039885414007311794861056885196178106618785983360745895261975015965651908147276145564979560461690064669276696849425763666333129279405278073981863562272369090872958775353159038033059045066033251253611396270199121533145891291918472968878366357162349887163764306188178764812823172831369222406944272030678738752071007299008321497135900797565675635033478308921131828003084455706019372882324599172287747529281169428415148456685193331481686434092734680434377483339954695684184055278840145498256330009394634438430831610889375888221686730733286854625618827014319719565886843543239143330851908487916414637077532810531880598666604546890835823869838847173222878411773031527153932156196626085393324706213296851225928866050481173588582863579780106021048276584855771023073223088588435678600644313625799611382823874641834948849732839752511800939237778386559563677866494441584701749776077575871342968036462025187947263224486546223656675580732309722333548815332500867264534804155160619779097025032663178824244484808107634830507351790000199149920286156185737083735362595800457474202131240169352015617591465685292101680404092588823118506927931500623315903346221070432696194597376969730522526335876370223028308435202435136457478064358886399105430202877244795746544010513973557229534604093389354921159641444820860259034337946497709725685618976315865791709976740088879827560374960602090453233743855876839895865022518962164992376999704913497214341811485126453133433068362630837401860679040861948518333489806654260151565194386499039459356824509685112332934068825105057878919134752866246854378582548836359216095070384066419367506162684542336918733889372493141813436996204827681612607383286023130190105614578317368622528823112916859361072725147558801593095260900223924219516843422069086530338403084986237850001708573267423272265943143248344622116524113726496522979355680371840831095687010557365251722553592363144406452237061049353284223714875477613157574618058088711771291847383628997114596113180527444437751803475073545039900016953198480194312537883345091033793237746543567524663356288983986449552908400193970975715114061886944835109457268630597819497284449606864282605201746432701326320430403766382778082414880325486411139938018658444541354069738863195194623481406280102315783715997961869073509405304204111133569794234837254666342465936681991976617812545155146557029266304535499193408078465412834666859885781034627922911009510629010576416270297429925447095883996534543641652226445601760911723444191398499285861232053165389907993866587785372691890505466800017957022020783783966470893367513782869399101899241000946748768749696588956360827483506809447655456293937067819819033106443491185655678070107161862729624208658090813326502478091431094346820438909745840583956482870742851483910151482737506892640348714299432738948617187065834524684424003029415753893864330692684594595387205021091271866558623689227787825537638464599427886863789541768749308549404735995325310845600523544229843144202396535936740574296872422030638984545283675875023056198350223204681128657888359584986451330001607307181052127740442047172477260909023508767032532690996427063064025233277630428780310711019297833148452329098624129713032411738341458831104716400385573360429303896300640117422868115358128408921779219707205425139256755876245835291106498333229368850278863430430621638351105501309775669693402132303719012117125468648666663679692369570089425546030078785730350292277941897551205074157597704355967047879940006403263915664281801690930193283303740093970776488312506224261132734648539839086195084103600724176679816786224358192382217687906995525503888191418603549529997572600186584138610655878370847760990758478610622345237717393930952279113217707431866806706903581160323343272729287571062135998788418924909830694523684983802510775579515665116012359095957349400929749064735038223700034150499696828769881390704852784590990804530673163197464574072302563674011974118678860933694645721685847368564897428048335407819000009260975739102371809875548550741383469118197294039045488633711084901575961628944327043390713908369767087606363394682475960289989534555010601043338025416142882789928621694480870655068742402393905694023586224526307998964239214175944571558707554666740464000336986721024523152162309551005892088244118825266735175260492899020440747166973241361971096576620739164548935748355507948178807456489052145999413797957293137411382012631933123224340621144342999356267499292176740075304893417793737439296218921940841049688863232175517667816213276296195434660415656022754706726377740469219789037537025500417919125589784602731440031420391942384004466966538553858994715035972041754376028934877932707543639561666675490499248240385666374251608489575287488114891298807399007789501362892812165086387936908560917235747868104654935702873515471153910061399452425207797754475986370912425463245235759473391462992661963707296663126144311251593945743096571156018912562167421119933165192299488547765569749514978196166889585342911790634568859685579009507603716701165086940632136348775667692328093493607016293546262588267998096139392289254995288834981456223983009964481988446967201073089816667335500101457954342236429159937045828154983057536652853621460375177399969800508032910078786644993589968308592537830445965972812077260597971049494261799758152225031081452913468950777329708330860425699306501613966106936079584746927942228595272557679613248869490810835670204666532039086264897505294678371294091894663314848653340485206040940534069376036061766059239802497987993453063286048431534910568151597602468825004247598547293598957881424537123118307555300636549855477593319455109609861679643889963595485578409313739441455378672911619980944970068027394165792825113519985915490462452780736108392805417972883804597657625341652165524784720333257588006936622828564243445228862968191882060268594971023499945414471308140365401115425435652490819890454439511052815881730074046263517256876154669302587378853502754098407701997008027248884646407624868990098521036006414347555310225947684935017903497538612038542080419079202330565266971268289370295928381279843711433337871395428838158819109086892214722762413264875199986406565861734596928782796037829441997461207856798115006270180858724763231609279851385967614038984433567370197505309940036511861171122693109984766009315976128999012137430658225396596759391027243591715467433966252351594635904916936723879273600890490025515519862399837892745989798546590315007117964782984684038739325971028319186677392780170963659005064354769417322946640168700269049734143450586722598644848914388537929212052329478864060642609871949648306590909332957483084848242150936794735465983172181655395180594244270740461942706843599264266213504893001923610651823551686285981663377098206708855804362959158147140822135793366719605096792804585173296096629651212710305789828830687977233128379959714806456934373550472036406550018447376153161250632403819674332168211465938136147095700410694786919016057271620514286850972719607244252549729065034974093267969742260284654873106640916545667229348106335618758217035983804401415498589889174566253510137837465397754662132424808740439356291564827740384062055534036707634130752587129540286816932116797958368033129981418894999742754268612861291954538936308105604356329880072877665324456297200380211645257774737892417570531768170830907273146690848323649139013176363047424644994417211475972583234802730028329108475108302190038060314231077239230321683390304717853429149161044333815145448269790351462671833348710939304363580191328533789150244757706200595682765101524503622792416476511484551280589369598258407929674458245474280483918347201846104521773585866932166186320141154475965677179261829494235891876007446965179976774542819700700843004872587855797079920959863857956813309675892064679147183335444395833812845758032061383891265788240490229413330889254874458367738219618538685541023654660313099780176898790013245461206549201186471660780035477871215100891362268971654655884957497550290161559461784401650865326853445697059633366519183686569962453389960830643979565582803958351822229165338433708613266936493816845886634992423812997362360944114547090296663761283971154080941370960170125451114377884489498200068393082221644686593070427425738984377270993239667161505923396359385380299612588587183199597642297398204590937159862973649204873363201854637596382703376265853356910944528779048486400016414506087382228074959900016641529865745058373149807645642121888910116491746008726561483377502321578651352731968231344500889061604930987616937073428074620712081648610025588102392296106318091625727533823966534616138689250290238798272146792848241010601880011331497361129781481753632589543270013477268989136391465550590518063252408591621438829475858007397607129390905906447586328579343236662068199301410441471481560229199112818871984479685838735101795499618266492527762323794033137809515457357839826050410130856293516952990327754130932092584859024096541724908090031871635379655637366055656326413846130315653064548987559156851886738845847227263545268722185856335204295714158927247375145075798865143849038313972086470638911936502268445088162142415058012943492741934968558738362523768539108148921205048676694360948163149853258932510902451279570877195175299797646919965196744741693117858758428992286867317851343600848077342341261200956822628868444457278600454002365162612675964783625197606852714131360871744115018225866997116517990515543847160285036907518915215923669343772135304244998837828166024592024719045863568659647938313071444749960257907695438518435181358902523781064705076152663901587469184925369978706975134983606250519405847572413545017794763431435047122388306128399510548093940617237179450766775499155601335412163274239602691445767064259022679296130625758151561490193411702023812321728541478109199734415648260084794437008572744488570155513925517641973212912737637862792338255762737096962567118017825621770746807007745163496695718825777289546538941894850918511058562087331232832589815879794137950074677745892380990361865881774373004718542123113067588909107030472135715600874216726645084599143124821390884520495442354038925042939954773871074223431774820841441096718711202842068211666439079162364021755689981714160657439953127041765350869128604776507770082084269409260666531529418329485632276208200606751115292156480610464271295873406082650460263582506715643584274467940045910212703889283207548148649811037142057200629860590215987963023038832607983345766026609358663620716590566555753852743447585644170424884097292952768993035818431006696185844274773046544805216471810918391046279704115488396951178452748817954625014583281921007682796245175592295303980749154321226155741456750661835135450102659272820881166597024505980542629622362844739413573931236494226206672891764331059958600203433038661673386589730351060741745664155738799950140396364638687832001812039406515870524876377295755173914654466317454773411510468756771176206483144496027821010311006691664933856614552317334713391868288323789175593718265763952084099213111155622620230227117257152843795051806058346390310871174736826758201335996170231664037729390375373223151165224239850975593938159336192839749708399649176191010044118754686320740957525384941768624444034184713156377824427852279340943929817553313687606691307142257937143146202777771284936359963935976672764693912192239423289846030259521130334419860181391820949901504272911086849684113149390546129978929294250626344566819555334527718948280149027781283136419258372632743428004164354168141763249597320471992121798746805493251322691376831389416425174483578663159322146534687944588591910228742036520020133978057923569863810625095971268472777278923627974585571326129696379031730980191322916037693578418229489420577226963385204119323746279770362548156629342054714733949880779914927494624776377139024053798719466159098889285562381190444111954905444699452336184948487799490195072263905236752980197948045516022388941831055780847965873808373652697749922215054836359335324571613988735357627166465389527326456353291599448704935363314126760765242872264110815357314892253970085208907242477924055291187325280121088701781648589870968360926617190941088052214022220079061510243981014375574995662901355676627461582910711166217654094969033424573698079783070965410378247262101291648046504609249649038873099430502001987359073774154189838151139444534179656336617520814876599588469076749410731088689218611876114341632345979646358425866916831213713883684850919480869451445355134637068599275711094210638863581389239724120980225842542754108665950635010640680217890376770087200895626573254926810537092957840039732918440027225079306075295638963573067716899252349188465540615269053720748143195201973412532781788507113928085129875379162386281879191650158751035943724137768591366253328332235691027451768346698574266888827786430433571140879105484587204288759693630330176096833359045162051619142566179786329069845603917385635408275317964223822255981724106650521963268338864740216043038815697700591519099722942743420764138220595414617738713820873148216966174406711739075420584275427649610601518201427290606532388503579722098072520158976729394857642967397966918766635656928624238668775288676354789230442313286775085897944636916485535786644335211727446141356280875304237668264664431247827105861477958566015285837356259587787327313483954617615866813433181072524701282853618935970332368549408042188796380176243762752634859800517995622807612396800181319510169068206666456015718821321358533700340429524357588263448421195478816739412494826650254839171492268580244805933700226179343187137223257993338012106037404100100051544847452362837587165150177981689518447860750694229219714410733013154949682304685260647355203429874574794142088016749413561581582909185622909533054529078952017920351174094166093588377979968255524407311965303858988255876784839868810693376352564269291065918556900286479074794974202509773838196786503858429377627945621377179112895073975449388388498187280188398133196774121718519229919740850284722070682321879402784436694985234096071738405679904150953262747882760941344549789911230917660511394997301409501694130252255314078428177636441692192540136173826297091474240883966551487297982814854866060843868450793119701173162297792092774546478183934559712024736111342097752300844944647642641099469951338355303276873811151381409701496692966019220694187489608734105113101998758305197683205627709673933724857687654811333462102903232973810888478097007151289878806579772341976291780594423436109328565268413116296277533905034416443185284235825911423355117416931789190320141651911798406592535777985712091808509717772622525192503019578632554101231363143879414616989958992478534523241793336079372890122270731113336360628535089518884264130848144945576866346360049737958129595619402199278229473874658086986507861441791681825579846507482824052680155087330574610131505373539366293266422498943246354816309241320416318134828213038671639537733956856216533540766145286195819225883963466749024006211231075161110197820552680370984373203314789138736623699695088406398960764944436052763918938999972091036024024511022208120911160157688257534142118137778797328608054004969599055007144407304226680911175572099560068312526005894668737588404930951496278592731841846312266177383790621597844851613182091734622610723989304960336311595733617491634541991120901301823460636972196430663856394970576133710755249461906995874826023080605281764128351097241597673875648041287225125716372537009999396539145596376539254176073024690443049799235255639701377521103606030477916394945675804520868113854814066724354505067389316509998546891285799565629438784631884413468259254637190957666469707989274796509788464322906034441419561720113479756653184518526100200077136842996564971015625292057698694448502870836659235541045611631618575085638090874301007425180815015457736995645300477769552559864890548965452094527850886283201620639873219763742576140580816939198359523491814587295288855239707513672997050567984807208313730923479334203170913462117558723704349012058126128566813353814728617150766492541650116526492261566519076635412838476315003710512341823890267114531394334830238973532214746812538888620598732604649058282258412245212358861161739859131850514559791727167977719713903592609518098880918323979434623855766255697854807468453523589423346426361132910976443963827598257308097018971228201500355548422256403874086373873409925064625615941807469279890016798408183055326994535646526639673485587654374534107643638418090654039333919909772599475243637869906454664136058680866082488746184445523874043469764748351747726811386389343706322265042886514004265403569226698264530204516893600669577589718609167762004942245312117328687818790194535136475094228554890860187290876462569917214684435094459172165147648707149070667036246689993135528358441788523254111786895401539303944370256605753588060423847899269846566345633863740284642774650817060129378381303805491522701936036641499193766577679112870802821354540656139689927700076133158912094513645148895791059967459733512772520947225937834024197110222748456783810831695036610771631270437099832662413965289813385583996819898339704795874536097955752653667817993164987312009227882630094680393216321033368389943335057143070947824165246900800574725207028927222120425534411024989143646506967569826255923523133261837219640099700216142846146929120056132814832207864332142808793012417569691181420489993799218931044665217735234638364666422160176377902016786563223527506502107854252503525618011114585993475489485735164048368743890499384837872287716246990824318564987093462791939253023433179956788312476644494496671735468144122572380228734542826717783431607685702225106499491045238079854183679174543278859881401167734718136026064572543841178635889710892332295644314412179853484788387403463556074268565455413309795021242489916585969587991575391339038892304015703351069315362975257916614890978061336218471728708462552990803045930159830086762839076784386520009393671756497997948146974732090352026594224115991902406586168594272458943063339316661060904786905758078482504993241863173129245652716267888924553787445845349684033049028968717222832196434695997856112048349651262779256659471005656420864998523231128163481815895699030022715096038204226223611186208153256981970796725279401675576635588613266743215069966532845035196556687978767599289459982283980331824453063331789766434685832371295198461153437236981917473895384348927018740714626823340917452883193542567300375428765615498574823462838259176898144231929369232456348184155019788223869909149992842095411187968076668269297705188684072306118336520705476058677682623323215234121145120254705929806743760772775703262358423488114352940962818275523640461447153441314823533382912641855931864885591085147629742012485741308362910837398373424653310116523265134836847925988156617435281341686075360267255736474911220117617507714096820178176713627417092832106944853027575091325862036935655441284251071090439240691892840679742989893086315064983890918235114477383569637196726722834881062847508096475012696464858464278876747069241548396220603174635276323011946538171292706160539909934629431395846173020037677277657412028386987229446453134160920013647020355428605014289804957152740267247863866112197406920387891266076201577368401355819327942142014215732569752855079155230076701827685169233663425628953049611022835778105824388908168296013370286177539832479961791406819328212409435210211941027417638658052741823866774962304688197573037515273796080354982655306291757494741211507621795146985123575858191807803442407602791443452166707862458400903234943943443460279301673163462027711295929061584747115353463258568704704617526807459805996312817099142739055209458584665974003467963243094139978850977800306934592472992429220618818421844334253077503994933631132340059920307583112528958810448810189478738340748330689147388333614826309726413253423815249192736962780792154473532904637594444747991560175663993760357693918825739832331074709615383462401366642638796564587162563877493676167264449714722347030893500400893777666172362238069001850908108803004305888621715248517760365777709038164358064026422055995571606795930340302168173171385293510325985915733207474808320403020897534225892425114913458955776290393632374128037420632088477582938134652606228788367362019595743292581407380038023509250813744828195992301637046821150015449758060525821780886522054802116326635178806547136513840612365480000731619280390055091330386520641560163831653106108556368596045023957108126296971628516817231913955801412287374346559326332978728096511713258011797562393078575994006501894135996453306598804181796827451090803476639107946581123009120212813483460840422569067333737596792385244387311115056675708064992278827815848331477275811528118252247476598098298100246290437619647944484022298336286324794986801370938051172466074809688524051508536438004701211370658559187844957231574516263248002953711446253293956019105029386785139160968455445233664776695335372615785802549833492746792922418647356374239669110104916705194903148307142833741140494858926583699163398334914469869880786850382578889184954083627478739727522716178296523993924563601409726276322243831795411482302155734433054442351540390721897503804537370820330789565016169863651103473943292473232366871849679387533024495255276644689787471698456727467538783249673337559609024368059027965462103165103528322267883120977103338335124592873456700689775317563773318440034439055221332257182860410940654500103962156609764973485991156323199506784860349869041684980208459531445386745843201113720816110412185590455126572094187663607932960126880639846752389755552810580890373520040719907518640738835437712464426907364665265414911311541135987787365364229032446488237269867411616794824884995107570590479491827663041807511733078075718520582634736726822355384621955857753237884782913906789648567872253060261398924846807030437706877050194454262286256610217931310624506711304388183394376845385946629998662873348829239427569473750583292338537386340489159372402647059071145713961211512660585931003529787908241263206026155755116600220080459866868991857356206754481604810169312695906501689287580274647692228967697354254528634810183377162227978058349878270994142527599902655368744989301873746596009696878533113583376557835453291144160047054178868760926754849518942802730325046083401163931587745325151329412199039903876634047665171932100724992415598297164460214089755146015618490572953528459920385114377677117924807594168949072805922114528559271415099322378381933781994244680104821992666721900898000273609206138802029975367835346335643912704487203593678503891129663484130439314412286360549126259201739028760783950634703496508499533387474515943007934465823786388196396555538621035239764583669637920534013115971768799675278908936418915751995520311944571377389597492622445234941108040390785310610200920353957764429273671490288766615952922222300166590668161984621357938467345300567092498726000700655977066440178675280939321553368564062321195993105236155139132353102784605486927474096624053212999930200847669538383972231665543197299322313858479985178060376391742584791694050089139734193316077650265649256126798200090028909502431511632019609757772708698753057357294893043075232564852853366645862726105478785803543117860180573106914775683553808480534133693554022199972891437172555611235837385674436497535255666070650349663124062453048958876096981035693511892274021345451598979403761738796935119990907364296719444951458819607952750201423578215002179570255109155280252817710073390570558750001888523450786990632956025621180078130519441228440233221514091656212895995822993327580010926394512493478152846710823170063239753005990418031969177940913174003973485876459323775348782276650580366942414596705902888910137523583626396574397623743616476425511407526100869762014608801577783111049546049609702906674308730453455153940538949079276975113769065245598239622887887673270456038925724494219624119809533868466165894686181192935487708798546645529112280485720322872261994094580603229865869374237405044616249984235379394174252990230738808101209698081638818912413095792590266278752889824282757183348572419508239949457500206965830283684898800855517542319603369267751389269820184589983267361452041263916627726336695399368024120595507785852503929283258207707644031464387559443167201876933370056769786013581270804377066325919873483550653512610064324923060034107572311369133631440215903134734035908745921758755473481497393385438878622875983552337594949368512824279943625508059262444420098330915300648101870523011252215217229046858188520111980232716895776496819969840990727010093858450937329811298753775163087291483491635841373294897693180524061174797182171952291899227240048147336738742328088773363224133636770659822424065862653236776255865726250640234539278489038631629003715050632407052094368074126608710562792362247071991732680406651817740951781860752664574812786259261081250453316995700455078754496259553861825631898591887934545214785771879182884035610010679055214459489890694794998632841783621736563382252982153971430781330928779056159562597634217375087242946445935112702002864603765128368826217521095785360268640572911353941706517851056699419716171806365377543964608109795606471302985560606570952210910087602772028694591651797882346509014076090281558726243332756501467381325159406193701920195559272596849136101610011603261507402298838619402331196818982514009102818634840150612916749460248014180921850034817854459654760519062085484485716302824747318179787537418238040371961534132762423437962698868652895476310711851905360646184160401155050883789410592195075223454436261508091214875392537640402946263221869930130917412027774808316329460165202865533106223223930169190607930941261733258488627064089592468597691948880881055082418435492882367808390860808185043325495165563587125478705124492785438643714609137345515689527062087598754981644697604058252433433852207034067330933245140780515724779782270137016642061760087159212525476277484182323684056082201913519643518131089425771119005792234389364949878693806191806917621649742725281580638582835162908864569992390556349758907613622568184032720864506532147593546857730522280512748480057932240018329872476868201217041286239687737860751925087606638669875061389942986720201463864968209213566960927913961489807061622696244281501806586955467279976882850863786368863299106940391101548189082246352595678152117674686376469522653300694099384856262158650426456617069696850702635262012013268308309656289061086380038573536880085979996529200638118681044297651358456785039169803392523374824585672592227880289575319974322924493948346753569210305406770070540017492216137694279814925880192106351888335290668499639377456237971619559985027423865251299112582732992257209635325214230250802769250503708383555706436829055810688412368832002627251530658074602905432183242279865217893524825043848876213142323525566842145661212427355505710671614555647159353619949262950342215705134025056290231935459233477977188854320552511775169562096198223351715805643143380716588095207246676222762846477133591200692564986421451745033834504093716475397778395681289926274802454098604750419916015267706820760488622867650094911282915201793229849350589360001631106008332973611090241822577451134677812223384346362489049462480713608045310949284107879707114957127714238338330748803077826262210063470566874315066862962150205486629571417188257983467887318145789704831851013982060702556697407344072546721014668042234492101907841917213766979459345959295299801347296716847553511338222124920032670604829286742871887632323073330967882460575617933724096227405196490019569627753356010189301956756295917948888952159323006058241305689613399482887229448349275134918882531665703810060847073598112510653456377579253021776723902721178526405389714791753186836972257368198256679337623928109452339068996807155687185216482977513253346471976188716094546824404789972174351990179279781745223715345674024024085683230799225581783686631168800582493949966283573949436645317844790227232562532580653596992946145251040839198067719959910360171000193031675207261056660065885565716940764282287057661719485676946461180191021033873301333366516747601154487958336361725561143377356650990748036263437609938072010086008125062426225565444906017227830398716003277062880637792004835846210316652885910510012626696556609798801786808747339539202595092569448068520676434651097965425419956254128374621094435072195897689568934515767069780501466639014732707833116037331780623339917440155601039436425356244831456319315408661277228234586911507068353424378807508055176136800525840425562991137473180542367453986821246737263325166316864641048658611037323670766283579187839266676247007233091447500374030385497253043760467654916367245154103228402344007644240873215256739875170810108900992873081464413293653205215262744433681146488474444094792452122426639293581407813585090343239916463257555897639694763887916461433881558370907042165500360663551347454156150833966383407873689605267833061227412194192482977844163688789760941319280743192772643185154920724764620318574956521222370230663936023663821338007115744496939270114828326192987911262266326803876207453001543857274571812639327325323710551617445012269430237914861313012182160392061972741250565771818949323644112122051477004991007048721609913313523005340843517787138685461086335903677309197596024164651833765415960176807184633368627433204785746533009460266386752457365550862007207264011051849458845574307286757464492090836894573087416200384265013556168096261940945651689402538538432251374043626653821319698081792093347297070240999230342196031649587114208004783594635082784001761442601141498900135016882039090501990658717598494797860441415818348381399800082907667125984279588143416897203420145431936519758664462096526737025970387512256428726122212148434256751567662790187685318060629752408617866443683960021048545190607400277894407155157810848528184122906495999933429746755024776082379599161925212259574531046687646496143703234689368552688858457261737006348433397481765575784556792533106179174461608590953852848461355754721648018465053313821839076076755920231973498140872324503807449533151074723868809643914241754892933884051540595772194002384479074580182986580179188987366368794799737156712809236574369921191533251011904847242097962146878514879446784667488076643808444763207857435017231400260838747601243906887097214946096435979185797441595239798415143194501283969013352885993372580583458348517667599892585603709685405388629948829722052841805867066360793141264769402038840442413081466253098606404645459423763875929782563021921330305979396791906592154814349444723469329609767344453328251968163322397452850096412058648295210857379071316833154863285084606858214908595215422663193430324222887149783089744284288761549701285568640962135525181027551289682785876575090916549167072940477849884518355435016838660755841110680709958229478731986021660398184820216487260562060560920368332914695883391007362600243566019634579340792800063719709881499809493998717055294334477938953757658172362790822777152864603101170696092640475735062897676958819255662372408387883976422393744073532346946802732761640103623170685903230190267265987524513197410303484829659755154862734588120198097089836290106175237516403970265974217923176378880581993270712520009651020337089793828456296854128832350084998549832712840542999734741728216369016886161548033715142374055517111249803095428374270042614995604350215859377180628900395035140328519860426118880872665828558632254375169389855734911115514484841093283451829870919614658938084308387685084951304386592420398736084301916573570838775518996745512775910887265237248228863378891451310783020114500181826098038754549093475003159779059783438908116887389893888269688117100550531727502466538862712440223839619136560163514258408771252431251271502231575486518603223283673121113309238699609773683038728297204486034983922193168140025532204847129306180349131031391207720173796786400382848506198236859051670380027995712297456692308847766812442271144498785179629027284530061388632425998387224349877484397853962077187403861578204839915238050651246913281689716762960130881519404788169629442818058561755038778841702826325838022525363181388522132313407169967196412509507707064421948194847827461170106296585340996868338432399732382371054562113838615807164277970454013784451374190564685277028428118168797005037313101857719914453493288023140223256019158692702837971099330403815318849525756179744040265289247794520141850812068428358568257496858895477486212204955057696958704744706694846094079860107454225576387014169484401402425675180876324440403088154223806727688121531805202937982850230102259188154912655572287237172549208016263816013680180850003935921282429210690957600619892813739140010963266546362415132594813742675130246041805762702707280364014101624208911866406412053025012233466178823663309072132419884462517907945667886026856930416481630870606006065323736100784475474437557002035294234409229789930579309313060730973399675850684543083372497572886898254992423288030956583943738284519306193452130432507121274279650873797579295238896028454348911297973777661225612435687501199295285627742134528069720522600079450090916623718175686291231215349110325690351245941790094529756040465776668749032801833304738068771144325185851601460435396574146998011417490810278046053355294493471180492347098936634011718734349550662952574178511578903703020137564103839451460952307469226028896957005584203639985998241113900782450817903499194710996846077340254462893685373645382998021321689300529652542360174204877387978178956278317092560059101475471880509235260200394835015636759420608084584139162774064253585597341764677962786430443329274438558213078149005724590279529459517135290846784450338414785275901170092914879653440089942549917181768162094878928100976258756119102080765862564881109994637718727672457203025603044603225231436462304377570457357375141945747134661469777442502814959182293563865198122675169821219520227111057736431559141617119239196312283904425328692842368432884621663177841293300878486308679499658740396474833212516459165119862893747964022669339169667528944767949908294970899442583744920709985800252879933609946311600753173342014101217699749779567649417077014787991818371495367359876590931820941714998932475714918500531748264427773433273086235371377370970113821210151426052880593326345537484347644735928537374316240711451038885869126012735724984126247885201390128573272080179174528291651039296170054142502910667410980068089332959984506071771972433774470958443941388673088980082708784228028128923611487033424696873334664540020717281497755283826694092963063148958660661662882171888260695442933660438409638645207688627749810525197031751648637077287731986615719730016279236385009903895266719025119275840975688639707655498292468201550333595750770355566872672349400952015980553351227904188903580318909442986038856413069229723189726297501076631001760072942246346118990098456407200413231107763351333119879602267563519959413227532259114731811800914646507052212030903469628512037984348766105134641971081599883816157832454700992492305854046543839798883186482776955685859487086492028471466191781233658472756348418759757926118740181308386279703444560134451458163268607512887410549351954128564353621995665556823294748764631725083205260603292101943992561340596180704150993124296415644333647089693874531286392217051803007511301391184985742458842280539588530573045665752776591954643864466722345404480902954117776787174875800674702513869329010229154331537640231285792172424553615252552473583501413250183186584648111456387294917457871104867845806605617041102188046889080292051825718886613602034013598358012967799228886278835828232972209223862472896409132099386409137996283110002532415014188295978479311029021152359152137255371478550462324286347969097900273678994895806708153259735483920145490703725261621366897700820927354125264707362489952404787550565988189047312416467228347629691938607696948472815385179653918343674130399420462567378449567729104027921644428758740192201086049644874476927697084166635532615515146665014863545409433622427434601277315789974963977485528136230248891526102303638331763861903415306933155321569798295068546571574538831863183839667978162602744346935467557881496908415615585880814641859728363322573256328656802734645240791398876152721660611854958591888687113491539100113576365124317090875279632915658398898675298280807230021055148271882100801536443427101852003544559729629315450023792859016503889195381032294115650677064079234239393091308041250824751859788141286475847241944986723212646210574746619531593081384641561661749575204229841868140321868766134800943257851341056924688286835209761744483191854158311205099609643630152374459702387800275595790325535753321942089814032469736392506545034468110014057263238021833959249790280017464878981845798100439941769701342825329553028857774297911903262811961877731064118617451386844526663054521416811712592156263748404275618263077730795359775214912186359612860472324742628852912326952559258122277874668977990091682824252395752416548896708215339470836845745522304793146733014422231348432434935541168343408919353862098256644928863441923699393798177735656540715906001808015031819940391344251278515184620800007369683460033288003222579541609367936462284228387498174367330169390793466946031951310148150332560860027837811420341287452568620271724690844849408739778483629097789294639349872415361245053322605811261929241197039496876981278020806203448310362530942281913948823749876420429215668138478048741167360255828751493856157037752576479013324993690500063795662440003285754384700637273990196376682857644124955109797418331241670213458158057453000329631288195765953769892477951947867363344577786785049174118062288184220395575729055403312076648857924372126086058440511093046515938670964109598103695876019450738693857280273837274786948914153687160548252886925139324772665972659876076471024009676333016128161961237571346079456903477915413814816326612252581320085675884728898558478889400069110899507820570444416673894775496215790258303332109533453464025710232131572455036792795495241403309471786840443853441255094618802675416429458582234340945816500431623262082166657249510915778992141780122814329417564952276270489610811536109795677171533449783755860319083100042710114577387547796584111590875337977404652066261735162704890885891350568847057618684305002261328265200116077318965814752850885364313348009467198653446696157343831711211296772813690175051578810249594729610414190512584507736326718542036496684165618212477733463152547007636366000025150616509106894939467753317610461204443235631411893718275850213226559672314618080604345919541817416728413315129090502533724978811696197827307226731961598795944517501016641191403395585717254634616413608892144872104995692484609525457221184388953622368769300700230748507502393795260036664507030775886522651719239581907232834791255401925785922868462415795094240295952636629186727491907362948610927060254756032898492135746434825109232163705586265191000900882334967538016865997026031312126224319613594626924114928469930470868830616907624656940827702193093049907848831387172022662115407748810810151534002037934836045727058709814802631839875754489877992544855531746964257455214061257673355927719649815267286285517058700332499616494644625363707645066450620382821026948755411001358671154584792522388105934743490907215364424168529450016988627977795233426251144537992732068336024075823651419462810364536535547551063571391721262350243939312034803137398678522888454027098292568957600466247468029734043158003128816295975213466176276402382987951249058289309228985184671176432295576500960392960266387580768917974640634284392546110767934949435987789856936030382337638212728427862458203935636527342726503201733653633526727366963344096188769269962831009198203348369573313827754272445076508341503471448169489029207630737103629763673006183175663172979781038844281292140443279932583990798916397480424053426643062294135587082066592249807753386683393451329612590035907143588452022365087328631532842146363314926118111827352427577606855122589228041421401646971098935802008866544257198918714705033919336295937038654221592571972796227832470712137959407103455036357010932763005985616966500337217366854728097047401860071141388452425638443087254661792195755340559420712805128083049099369645909534460706343543516335523358051340044916229399071407803206274467175436938228950472830773031467158065213397462269130970185499313014239909853670460955690779198243091249311517443491081536970276669846049035834968612925703178222697580771372607393092778465143342808739846773442817228694465752634533246713057649520005702661976717795541306498080939458302812334747130624054548673086942370211257988914239039132099351414789523298177439039958847915902084077705540123653388088258283298920081867427671155894769979358583463065029502637690254844348980872050932123705300648034958025180659577996815430734627216778578490229479027233663687498619779301284832419529491132882602452665796133000272220855708861388736144718312248822549883048763801006775521048781161566173419781477439711506071933287006169534702237014106226929266608124139954811942749248884287507318146040458714621076268160576449185034425895627918259496648763475389243982506236670629832449694785824585755375390239193318663462561399006085325680712153846584423419208135871001589157862820606097003286494917159202989449930727240333732749492338614306636142687495175650283314750099728732532357816285131944502231165969446054485615915459547469874933062861667909696071781281021089385772930102487940784195548810286760904033576884337330282649718493750203578632588134215643035339529335013406679773365697339473160133983767064888926997653553185020689645756689921257464164306142042213654329349136002869420078852144748237309368016433091745865707103246377240170224954951350586143312979484191474267527189737457577984902374385369077474105518407825765602770178899565900029776252254331016036709511493654380413860500983642836611896780879854992640081028783589819525671753763438554820260317701431428329629808796183924966201615914101823959543035201728707380475095649314480386104609732631136593883013535687501952459706946671758443912889084713979390622263612121056761335855329309469507100996691993478216241156921155666852225344968586823324090560926908018996031066518562824681888558548151294529505560592937426811849279055407872642623510485598061159167339810963083771671788054179111294506440604858818235414008342958642527299550603306809433084963954819084531388671996009248764577772283266378163217423979537846200243579470228349571185288714471896500404837747608641541136478214427330628347243152243148814547781636315085506698475666704940454331423371105672920747555898706341000165799300709294885456667949180002898715588233197973866359989318294572732232529808526185979122554175041718488111494863683632748087983869233823208424226269235794523534815887552779368512120179183204449157386557460724072143563056207810874782401211949578752207684349955452327007986350646655773818206454374437161396732102797859896828846126498572362892981505726996629469623485674057469879500351502526571599896678449292787634064929493711803648973431199172028075058582297312534480353279304575531675694378434558594458170342793144343288817877771542688096369500168011839893430347968020793246987350092097562873308785561054001588804027327037319429083824665419712053975323128970453432195599122247411763373972369423639942701947231769016032917857449359846601235915173357301825602004165863222505580832897867340687001988206551489291730697716331123468657526026550515489594945031397064072366635973869777484539047070913968356004774591942548099512545404744387660821071894746595140113290824695587228111787675385697182754001630566270677135700516147415254286205777776821234761500259431519655855899345860046547598725969100740351622696859067085372431374599604115629022390301594115190019795885933391299757460591054545293391505276206026613095382658554565601586793804018039128504571047850721173822927602110624353962623270142118521106781435586404500768557309872299593877225296087419382262693111328148062416444367906077647880656198871779387517456835428289960729050326005618878084931593080749587158925635512976263078285595712343125494648643196957153676976516411236046132961528319439595306879230915448090096383598103042320695418131260038881045062560991741313289706755258502411768100730998546019073026851983519362689483818784090238507091900093534947649911107830238990809665399657568282502290585087776875902472987101608760740253213835533537169158408091997158294306598088119099464039798851039462214407686675371069349061367333502321830105800089471896159477556482160710248905235876779091611736091609549379970568666313937763420374388411784913986028237687929213836092975685139359030740758333590177124255099413187802170160494932638930133684900241131952371990546474127194260184546436721288247998742080590761149229830058940184362446943206818234156151886035716736261866091476854467544281396807091056297191159747646296751407397221499811591632390253712257728076592024059072786308211554706389364223164782070358845330077966034553858415712799165739619275305924733176618062742994538089546964757904421993487330047711960948075995488339647267239954017564586607682948457486910724885964833098016727388680401502052828106707117864576019635328396448683439758982230976990829848551288951131641203824703985602052680625872577258125862288115296591251168437725814754012559305340446461039011839878019212780135736564934743458894907184041682658514633984151632444968801588865367877417517574418778049458426322098339889692784369336033368037268292091086258827072823127950787232599460074629188161687693139794862918925535153054921242969516256292000562141239432907751492882362442641284903968383986252066379359089633631453121641763283808752359308547308494054318938466981828282781970591642306119301320925430292836071183796000228577062342888138171216363876883669546690789715837068233111020398528432204289032053351574324147015886335373448130982092184658901921083076437438907771438773206503288168962654274841335863876281161367663466130571552694083140340407013870155318382411372380056094756577726987312130495252490096341154532767446516718621806331322694124130686674906506397999134759462191105085955057717778411096266026760010504299960463248142321859112672553724382167556544720273538787643654716833942633637875662589679281297165986072376799591716400914261351539682662949008829319526991213166060566918200178828578534630290556672470853276738019898743059306171202079262780106944796958842691571542749482903637106094249679550374753001195127542056770132615288376158797515794853778412427840195518954024240505363622058199065552115566844846123996107624402216364164527265392352048383064923919617892287420862087178261468290596141415770956752820450096307737081794907511859784195603142283583491718700040512997591563391385962649885783976310432293403914918481335107878532342287733272592461944102930754645515914014068758280250202349177215762282792505448769139034682635615518012995944085473141521455743675841997542776910524092204966157356921479634697902761725932842672391217184193901082484993283524237074588866967210525181704499436017220896421273691329480578988081016540010625370624422640124471445952057965412017947819731457924218264979443212574622059508520115006262771340570524205273442258487862827231511257727139854376358958770713285011014692911748147829497611257181769444961305423801053672200656326167929673737167398033111101479910973578504396247670739628945792647661474141598233737604018606101333030478048111562334832897901208800723198175415869877537305496865750702137751533441682002577637574461529306287767237474751202883198032462838750155739743574018186629237519219048992991890154016638720957569162071494655906436997740490585188253935518219338235938737937411441027684141411745474285572725890468691945376127180316101316017614538100354811769903071582053909634347235245973191770826433094954838434168790314509137354157944156791080160595776748244554613188674950489352254090744214344662172219767571495950763687908846567028616806637532202810112518395723587364752421479013782981979869338948169105704152622172851442912307799193649532294028823951745409031229675756052045146903041597867648202332711765618266642748668339235971900024915930266615389909894068587541747488326337950450259308833280082140272326030511830491685177914364455014567256039474459139903145969252928008247719567883561295263192596926378825149540071730297670146746601685510014647519190934726842834590630992084666388414309371695718711933773229323984242791874425378933277031118692585731618785392365417252684134219086721293419556999730736163713891197867050233027407270119962824424820662108613949815626337154889739317526568537680798373780858211200879190797935158238391619543754648880464937817494046311810145274346783657198275845189568402947133418933185437435411002651303178434993547825692117056647894807267267772029963423546007336044102696065224326176434663388522208336743690831597005236274527093825893821765220045884934969414951218797331642447429891236151532834909838431974448252874560268366196203140229296786603181378470894112429254340002518822075718898565147599542088694756970677212766148788709963446748969524366858809848336704503856723396494239857298978145729110390648654119122924453883012054239752863859623855950534777507208204525997584232465873372200225101783838544753871186159027740419547655330241803129864129598394934899514094042014232207485672928852266273685166913905616345354555398421222774920024325812355087879084862303081202814515809849078547631918086359184930221013809606989612882716068312228810100889225259307104895435636856726473160443126832274692105585869831299560141659946067757847648436750491274908266322125898083893192948028292932455661301567068892734021356328125904698086031129085602335058471837712924137473490860919407852810035490770097769126213728602442770552334486341926708778658021966340525640138503485562535881796548045936164022236959732382212167320656064928914323317362368808548043815369916237324037546524154143844277321725205757090412470909185498937303853675025093694528862013969177880524065548179300004804895283751674732379015022351282527189393804891934856047564534967523774969226627560177704114407972388939471055250985936575348683095246551496249545424073613901086420231510400510278589418808004191790610788093313323926852932575146801563458265130691576383809905364757529239726144027949770379165403094898754028802905117621726171945117386765414975181570153705156220760484769524259362316277583063466641785827094507814261204233674316350700995550417960144535261346441353321067762714650599549661282436816635643939619425297635789494964455347161931003790680097532832118229813078720543751963469353425335002260384339882337955210100116786752068930037288373972641410220090804025837898198771047184219653165425011948205234227366926567555633287184013686968562724023087873933440922244175332273226050202787779971387876599426570066322165133152608216431484917151862697553592740655902657939693481979432653907234727622110028446595423679442363109406226405132677963207192451384863795436182682397351722089148997898324917869127479745883220116675954859692948550182201481477104541358863245166945885457871707012958253246864774620405616682930597478390007709374768420736278370682976436024441882038815830194974835798072728231808467929291089863520646287393014030817658366690414245615212961789440017121167117368080508307764327631383991724103637898053107612915757162264866207434234082046008623626867282149554670062534753738037332245284890838188050014273225594710224517385881611094448628876301542152315597508319065091889816918305203334173986490048708579267019739984967498493714228032255633040218292753391732713372574111250226840096800214410670493512109338621231111659739706873020463501838461923083114090471987409816200312312682762074205147739495561111692888189885325322989174599914036661292957570558115775685673348572913535410645736867737270652056923485418565152440727630373820430118753073981998529045048385124001565191554165243316265164302044332802776294552780436763686246026411122330906497548075220048311074261260129851682677963428314361088922294062754690115652903404612090801144154197755260130606524598405063733047207452764991298972402624627222233745113935586495819789169650783943031066261187959015352866507287129738865675606641196421231734245771777930393482195542695880592801274180863386164735647611635159944060451046071117172254554141680925927817770227870018442606333545936082353249772663474461505916586363748715093778156922522653483688481449623008178304948939044486105098119652109368809928372057461512087805472090099778873596710522506230135473454784842086540767490296714071332993786296939101511266999929563715840507564678880633757748509216703020576223787883703918634883048647553502444875122936137961464841050408533807511909076316473691199561360486340017811962804020845125707688533260496048303320382705085901021640161948339263557418401176391252987802346274138406311372508440906716609694601910745766802731645783656058466508598568718756094188160759650788835309953307798995263136762216944674350889861666693165996820199147703967269717071843616246647860078812188803470217574828721633432317511149206280309420530542423222779231334330156950435485456477735653277656483935047136416289211562248167343050144316101846425207272387782707839332299454107147575089685386032206281341158332261789374713952929652546686132024333627104006366696736563900415507977780384869660738088252541473668701998035378171173119755549122597555550851932668299959821600457795832038022142106088480579801602501080153488774641724645297024077237226542581903690919092998251836902891527387701613376036365013382055561936846992656575745889326704759518905296526437838285662759129451253683353224142169203519864853338301769821673388514626911681032021447816048243135484506952875282256560178401954452707838773405002608582405058813483395131140381242057757718611438598155263281839618987944790685443563931426202624197509951384001062568686920973614429305919774886289892455258442232569129422180584916251623789537920763560979554143997857584189611117551513423397939447043920361252989004677301975832997371854271278991051326894017069882241643009050858313505073136062397601078628405710474209395093394913041006690978572037001385711094603993371258130700547809552845035241227876870829613994281691179467665288338942998835842347827674197732839796444170458341909550344330228118040569133091008752649775851388353372205230464287350070555432026210338664568885197759250842016609868211107337347015835355117517250482147550103041226003734147516693896645453444487214633265926426764778681400444724397213877733551284709923262495569584417919283214000560424687275114130090665282028529588144457895759720658270370041333285919008257640984496935357937988679963321971254127375603007598175818630432607070057628089521765093149409649498037240355366446805494710185568094443696512140527139900040324605430291630089225104852583601055569841421012215254781021113145995115860946010547477868522005281529851772250854599588669677354095003600998365831694637009527916836542253116324557067457437481617726528246253730827591802330795928551174751570229695340400153788438681815287908898544975884354762451582014232723506162655706408955918397248852175446776810037592171828758588654580585255614953985598658639838589847172691709796622520523377981642025065961548379983885301211569532163190216650881762540680216742439610219480077387167002377902273456595781478552617138784704926164471409461669630969549764743504393168316894723691404856430847695681379584789115515427594911111596805611432139794914947880664706565385194009119270077607185038564380777910680971278471955663634414271140998742647047431048668088441808129113033073483553422975535439505112406739687919913499781336730654095889749985146848342183759828734337119603829501845267843405293013391387298117219131156992593572057451054144182489814978461132012346247056189596460983064235998863917071082193432342140095122858527700634968671438079311797296451285466865394107102739227749780467623319233689729814700140827590547963621880699981615289892025303903701469487111780141116839358941503674187015245688434817831165546177494488431240922009309756005580093713954561190628070484391246820522035244263279066395641964599020087430355454346699275842867051269472148604874023172870588283748334121287161241077130433373081599460795258752096074150275246911103441892063434113198835258894478386481654900159418320601983246208981812823524763495436727652145250264060086661150589369845057100863365165452798214612616954018957765993163901260808716951442150762262989484136430970851349992544316452392325976195487502488002271050980678477510845045207782144802983652610324386905228327868333672215193514067423251719983617230707028120680561795971032676131368209146314522250781657858913472103259768496833356016414880568282126796133844673638780775600496497475307383640725752769507127484043884946536424450066765798572422624485986352630232623535219653766434006646696064813081473155728280177889429810024648136630911724589866292088290749585871503451211126746936286139404199634967468595336752581906957602014036537618095168059239947247937222710945301018319848196474749497889427358195212982297354856643197629682552124166629946698278030711137378727502473672693913027800243090175094793853648171694520751924479518173441052850539098355416787664821845044009203200458887488077971132231063105313748395215792212726584546153243550158361047588857186499134620397822836280423286688425076668537342093892639778589177689302034852872213777002092966012096641556257821497272160491530668788147121206490108686260737249842082657738826666209287122846139987227779675776284898026222554964888802944841606760991855212559487993971037834257042943850871141163707496779458641726642365903160684563776943491930086840017202735424175869820482146909431856319550105666596768601651256588691436611385168637192502771425961821896483644800833109506670631859955925728104605361087489366086909510207811926366546586425066284824136459077740212140273784238436388366605612360603510919275586818723110442289842062319976283830557829870420535193739148244420085120774789763608013392497787610294990415829102886566974059061751628964350847730728948947852291437888312674499114786807844007508097888353703833658837268882262744085717813397920913213387926039055189845647411822768755588717778361236291665915089907532201917501330459947796223103747580004676812738086046533086450775963882786444156816036755921332486754955338367198182218088835309087771621608842639937697965803232387301963037880305504342388214749578206026572402608009862189082836545894370694237501775628691860483333507997154699035073280443681290559632107075720743458940085403503676774283705687111156207946025939374115474191395931547468996227752147992180346209350127280591190467564950497921329713549492322975212152743808820809070963439507997479847155436417612316255536748623473811513686096878969544168861330665541959768664131320278483495799898547960676956798503700052538106611168700491443529311090947877013184821095941435493952138822347575047116613393294165863185250874807480703820257793873622253831902425320890979490994515286585258926608067477076606511179116653819043174160047501021969576647063792129684193222308111405198715499975192408917347208624799070378779007468491769613761209863778491676532827712387962717716525774856410061615858384726341525483143990289072557265524316156773962072071973495829505662790536601744758913532317401117072580368943086826586885159910977760007343102806282639724921086231210162124735275306614129142856158608594426975808147894986666976303691236788668538039527001481433838572391685900861393378957245181485723841297038331152147940492584041819172034352715274640527934174139755073453758905299653520820097060417884906808433211713857624654726728697407819857683621352616119474073532607710866664894047877490359002047298323489454920423603594044684706780464002275867903384878345526012121029608736462444242835930296288122121869690803809539689680124152707888455639449633216303343371030834412458551198617250505587642794271713580662721562007523750540925479118525107788591025566554589074970869771185223717455885971501862388944669994712692468603930523333258245136247318386006175332097242938674545218557122674359693465378479265851857867821215695917669535025219621812297306126389684427666879812935904547913687130821415337249482179004498277261035126766952082275856010605598300141512848149116805039566763110734681271869175276491896893194930058397937690473706873492332954556515583017098159080432679048396955742791250244461319335235862689549167515279217949143643209053868501266878105929655774037695030723585920694171923855360297731645184349072159440145369227994723916038751498347082635229358233590704216262762013133691557809756378909614984692364699709195141423914399315410966464122061592838589847686112153126819689844047626644832399319449408906576088290422247657386637548679857283808388851329914017913780468018445477321979862324829332465419246740384573676823519560955655186026234505652175303799332238626959221065754595353594109106082168534906978855847009625556203382819010203896842197864202547409638257776964767805052553632107166494341746696587960502472801711997892378124149855460289932005665398692840093017078366691660949882904082460667620167856705944676755454514333115970400796083757076275093081510282886552866057387415796374067645156650307434721915527126978663871004887226135421142179785396385594889237797529616036723753932032139552924214832081263535775429721124517671835140811697692547946639096426713224044209555178405406840373628284116826280399441288318447439395909563713454265034145229308920899225624139134447907660369302956598473577048524291160503717808525020571769537412266717448506248543119348467216192839444536351567397023268866551813638315856697711599498314192007050689330261785397287804572028694415310095203077461044394453466678384156896698662966295800222574696350419477551149462315255659849849142137720733385686156181992797683198361575742111523442704189544407108494055776903773233006456539478225947922975227674108508805313086060002883677394014645965214390522384707069223050209792363435717913660754724225419127104511558771520168142672971919446165247687360774537553018511047503622134416806290501740222419717417430591246673097483419374828769194783732209898643173185337798167870222443725971747235576621961089245227795100461988876617182906156068134338506431563496544968309335888107523703027852861189720605369767632095341600902483075273998417596732843792193561667414411045351799216858840061559670101176800423584378971512608220159650711463697007132694975744388759260220045212479669366637393735187548386397969669028091991309145355543590998596420473215357530686882562181130807524510794494999355905065095469733889203094948265111425873868934297489567729616282818170550563042327154231296994012011255074565886033488751965857261990097886461806892214339594019309952234295148753600635941622322679796214591015111336816973834900494402500308070286236877033819274274879929528681556980354289258912927315729282622207022680237229241284767150760650799078394056333796384289530365158815044927373589052588569788064970888868854193219713947952423794065273059842432008970328293564066517047564453910226834358492192203753777914873829563407907069840051732666731994359546475126952730536218524684852426666904737382420634481401361909868178783807752411558411791424031206727004349409891608476684438554143241542404826662618000043411418662746450754439423703348869051265910932645714054922290604925870254252032934706996561989589207723574201690501795825459987536251685104827472097064456577465691361451437879065836128188862114935866073553256809433927932019112402894301890301340984859028716558682962197645562662131917274766678671930414386387047654701918607113331035517394242007406601066206482816682038313546732886782009283319881533906475811383179034375622925490008858483776543899550875361383317411167749656896094346741775692200901683122350693070127372367885792584905178626368833240701439060876834680021338167666547128985711415699517459649498188276638253347348398654497415860631810274200964625499110807928065200620612040082976374186692520852366646003753702709330736737670427975934838635611217202722182026074673276792728829574274531910529408932016723026805053048917905038777095672385090267461895953977957535625165235521069553581537969227040003215029175385608693940449965226131208463765671643972507769493813240297392673776925141565212727023892977565601980272547247382959222349016767797434046058006115734866219919195948721688389909234383564775410261064652385450698519580943490986866197150330433910634268509702278760933115269142997494955916064240077716799956642506749530739656317280354841880279208370899005771052800859903780328577281901096593766795871013180964494638211189422220552357629442009326694807909322337171949897186315669022789834444036896005275554548761109904428969860485815415400604384148932599254028354707143386274955076765465990746994276226927935758014905484125643298556287964960408483569380308105514235713303886216124649913459286715445395822947556450102256280384689837547095360326240692072186375210733694529340134624728736351611236340730263355267393998005676350754333418945367758547351050855351151182710805918924208003478926511908618071505862004124942714889673692756441003129675650063493947250512440242292126321621823079256990759688411141413454895854288680196675752019296347766607313280993358789341397412583696304218411907218123398525923688508601477708293151692450618537532424524945090848979384236326516189068880683398737063826724806983438630236181292129770626306322022329831532149883022327879496076599148755315913887864056320489758363173492906373133738995952862007899362342203576192682271181458745139194533009920737914380870693219623658213117733897017812423322875135322930803068817701757256592706708921923698052620719628813204242156157884346861589803333186596482631482719561285971312214461672240812196960981768525043201812591677474928251229456914555031685843162760707689549422244860839420625707605076437608991367934021575654133644430780173425201992191166440337812902767561977680857313034410209071434399616875462135132301339962108479135124998943138579661001619006842651024810560024323422799059444095074499947706625226137444674505987409621229884079209080483393301593843486849876439268354151473221067673043602993186815584298976494412361747600722788329160080314052820230250549523021980163218469468451087442658273580376929692397673053634191245605309486435509990407263687155870555763993541027943382271446580354062342079086076569679358045680037928650997099957753871086190007392974210214104125250557876812854603721598605203640552137426339291336766218953649214522444507045048671867879122164504292659260585313885662083517806154146769262873018176497931470169699904268793074699049315442074945267305158898540009630135336175803556324223772705546126855882234610188696495516772398382833801386022913153505098505842004318622601334682496998390001555630065183135590353560456264918018638910794964616576658437782528314336582835314579527544074199416196867579224347777774428029409697214673539874720728850830162231866467130639110462916016174017553367724754513854636954616158953540136275432483471012339872307461424805889550581587794074149085155796449174137155880409523021603298585012937029012145702581927529805779289003271891486573196047478875318710133331620681135211474200731464561434038134713958416696493043559149659165105796125346465511962103840606960211860962700505292118525812062520519525324608490553919212708939895220548538094354571911617326541683486285150227591393966398295295724176940863056151952386024032747668949303164876087091936619209082357340416923698621492983340326944141761360012532646072264286843678727908849678895796104718738220135227500515326323168104819795509310012867782931005136431577084231882476130557875751476826383721157379227076650080756226765640388438962304967963524482951098158017028363637766082927078508153020286947443222637365401768919334180783712139425979552812546664336782053075281708931152565970123601599533639002893317906766541546022182632922571899532840676405894001663673280327509377386802553212058736663482285426826785859370084824018103973276237348415379666236143041198083488100819291816036554782577045389980506237510780302528597225573606356928327764788970283496733947812267945167351328323530449524945887053744337953155648439859144063806513656638125478648794044302585930308097819252450946984418732321291826708384049416063874295655291977513099357792316937235093688002569065790328381153941162037307003968471900088534236601141123788314575895115228779703906003855909802147581359303853045751694949087840906166429814825989334603173679270345006575119559698489235508425485971201397149163457468078318606237685750006620962041039371319791511548069763351595712103407161118391405491501187344521204728994108850385356266554268837804803480309195545541184777010804052751069495001094551143516794857854555543074435897756032184153866961327679693829535560457435465084767624161506190280443282106230138350419777645307943898759103587622533533791988847623100594188253327905549509914446294108903158961462855139836721365113145309674468234652629969029670692612919976922322913038145363256919725639042575228622710687833979926097284354953516691888426388875064319463687271286151280793990725367489774915425726981739985846393404774403353079723082598638984681336679312788443209829520240909474165371743867852859395349852259258377593552042699298332379162798196997479119695748975740443829926464199028993758137638186326582106939783131521682372892800745856571718087130264010662644311276462892254337981379497301817479847693382022472595111853131988939939563699675228979410446227031750307503960200971698542314454714283656856691206912984260479256563691166971596986119240693562117295919400237378802854745991131630197795799761693307991716327777158708779979189851298668774678649658849982000396045552456577842336433304161998672910433856814096696313691447971416037286071187546831511630561704719689406819408802912487430257531262745740237854299557778642743058042213148455202268608773513198911792354613286215365159054139417261020929944765668277912064316138952196976465804805307835239033217711802630146389242998301111887474696786260796675210947438229324352451071708034051746999579419187654826342342520193491112014301053623036456117104795966995821690376526544390779735263019085523479207939951873783735024121809361060616788857201224630241220462311751644291233059295041395063575296169113792514623782982864353532434508470806022392853804743150597791403382296713383702245949731573652456391893485337143917809985451565583152257613869726848188680090257338193148727743661978451150202416944486269585975889779992915745874172314552376147055756830482092735144666350862790733941497197034899350781638656705352390767927100930286306883602819183968636329870301898749854948782928921091644337149875994665048601338839716835279442014963593097841981597945398257316952414334462565392613126016456677998949005977052939200967160404029679240455246321479451503081444563502049226225684171568997968589801748433128890323623790056775640058028133182887682343221741161547502685558397126082265282717083202725060432442204101756891747862252965084504950112077151118155134701137978273147207195528365081533315849457522148081816764960828877784228901621845036076001325543692993566675092424167100689970708207240331163820549920221225966019568105718929222047218991565951214284943555077355188807882582276095816375128646827629716451295412258063408032582873758885198342205744062098213571436773526606564484304803464783309782892035631984192676991325951074492086175838230851647017858866353618589692144902252342824711939089331907132495421636720206454378749514054562238186640592506138606614928318421839005888973438365302365615291641450050200189913182940328291145502418409788403848317951967446099641429519502234590394253531272761557318176027926399563613658920562282554941169715746024430520922883325923323023584111327306396654018904007423103284794255563209392495763941672365965252377295745239652723563857264993102476152029573087328695080585714312384968455985920101451083553088620967381648482641384187337621447000263061124414219748959032455080775375866775938578357768787623906232981145245512192924174686677874590662026475312451252794950601223355725367982149979382610289362529875988968234038516564850572626223417730457463328115730862216586070162377541133174071665330237931308210827378926789872146928823364479188116656679561065257952565862045327466967388745155756546433239852235967373936910482833091816567516633908489909202568075067422733587698580458363550933767162576218443381213904724679245677475401931051171744189466748621744229404772532918303012531506099319678854163456755331419090871499281743281587399321541743746051667992537621507192475045326905474175864238526551595518828594485860476053526854544815938260560363298436391505173904631997086890148603563924196348614443348375721355077087271884012154028395211746541198669634503750953533044306553303027931517291917644616274840472493277007728366891739899498776473609803423887631502468678822168928752983464765392206350756021615487655388841220971856129049281174987203545389668090017856846459049777732048248855371823452439224446193755261187253334481680271006270029801262774235212573665482307185086966249228251298607392461984620095648756149630024878190761800116872622670137148178187626535304088125988628336923478750977562639752565431745146198417525576634665940947844238565843289994283515446725526478336187376768889620234635014145609500652944933758902283903000575463282319913508398801776528851207208688354213617442124049210707319919668577230543811412657645785507025703772342452771766067669437696263239676012055418501200043869900045215681357570848011282877434333399855097990486319737791245195192265606159278167871913108946038006142961608564272508544951213549590549689511402865953265807051550189372153555473272579900392156596786190061240896453833249822268577842718517415082217472272932484623896535817844862436961680156972221451188650846516811972428452951248300109087809847102811552906812480309965831275381692631298814380405937074648021738121449027265006796694408649029441258897552155637827533455821976138331012863193200714363878570706365021504872589904982798280632169340387640753236124684925254255892059404420349091902007942597023372661140056735314726188551050002049049285992718857093639022953666605880633443946942695289707144844372024588335994920708693857501909551335763856194650702253172937129173719239801900327937052766280178778214665182757970663107910601739611321396924101953754068995718852210587151365426583093407958522948536691819384995539052064594683508591663350651356155392636550173139463692568770377205633372994344998133841117398795533765887531042888287010261907711286764930573963281434107417267106725626684312217355372898991966924998183841741270686718261729924340130066421863865102147565518428064983431000275547053973911185099208254902298315764232654919637329987859642328367247850775589018552447432355508648156011086958736822725552178605124092948993134054988896011462147116313008279574671587417067336336757433635590815374589308149230958351238527996134740425940712851937996351388389459833618564851181603167874229009631613679901243115146047637350337973253671908859738844032776868873462202324664479569035400869106509160328520505752462923799398457082208436642433440042499210994216265749422170644096820594751991970764645758247487171035177782820500581415263494050950193283647113890012673607282389537217962884275108017328334471235190012853296650856924143156527961152025015277770604919579024145745271635116271950093835683958919452023888719714649181794434490285254529593247586467557364962670006379535984556547276212990738531616677633998616133281263745751641295334134536291641905118352053392862380736615617849926500014756359676480300191587879500594746514723604652985959574717405562829712416474317657192311708606681288892636807694731543768279731311298894104991062803025796330388322402657683882985026732394714040988563778183630584146112272984707595817792007240784308938235717509923052879860360046675493637274825956845337737821439813464787014942696151104556464667620166769937840152838961374498848748613904761217356426011283087196850376849302399527972906253638141008090796891256243341978429179002665622244159697872103772710703281358471311616007785962461424043966551001536963034727902028595610852948156610309765219800991044789467012247002568444383415083139486129057748109875027536207513642490958842933829728689970776418550340499771045598518903126804269759172259492605829743030399685811312771679246475499848149687717767213629683153274116618562935883245451392442641707481971483462635101025035909137080520958811130881377417021005954771033871074030643123946022044945207188555509442129880147433387372583263029249744875175154511293681043886669704375149389740744724208931186115597580234981187996841524261984570036073993586029915159449342728652234111586525135822940042689920078497347948768710836118984153668628443314082860203874042697102980131624882379678982624923686427506086734718461135750994513966596697400849249003729918773886865001544512266576826977758118644412586394753520534096681578015868959248058289865646755583897319502832054892584297526251683167989679230296365049393759965951004332127830684052803183641545159255884958006077331902380913502195486304348699560355879033996640405830627387522419894760580223023996257277311512271031847568497770112500518922542818750465717817858015616891051535350981527601706844113332049805210747491458263449328981968050227531139200425097602855292367493839803281006941260257018174007576179093584602659861969799648716207782610822792279601088216323779352147711385788702256557369688854631143710274610262635743133060332098190080244170934930353821951030525827019487704033809957623135766771846898349182166780150026783347701723243792716049390576402102651014338102259129893595607191225709979986838719423393356382765997370991300276178651407008136170545179566767058894304673706272353920832059195788919474158626889437982855619374557540598994699904761961792459359803747511759307436106388871013761165612721091928175413731165013673871195650518536194344849185684389374481253188577707226351555513639477262103955798250903888797889005352855758010126900768296777756007456642411915418764611453738056263483850481063814973251195618753547202446040984747120569610049432353180212801879345184048812523287000399191485913214711814020013008101570842803940349525169106507600912239226544316282652284612664488033891302150928062128142125575482045088711032851160269288675239780776533597156736702112920707699140248566208645262268854708706183012589159832727131631883289965417791915626760095542617667854765644738112349292724131781303377678105557488588616220204230536759434445174621876775756765822811532050827794140277361039812110356959774821781952339845568620602470510290803732782889941356976020381858249231521061106538736815542617896716490411142770248203633730244818656663112307315716487210573722365917446789158797499611766483630168854572459924119996261606235937332342680381943444948765605328756918991424474552705664276013661387173100122801423369366622629431395533919514568871305796845265094221803227415029534228702819938880267487988133280573190528976541656697321043691977912435621072345266313302176583523596461167847190526664921210144289296567368620695549090589377852824444805230748041683572758059203702967737663156572352089794760680058240998347323180274167105151622535736663188787162082216991136564388771537466294860293802117738882713289260047399559884434287331062485915821324020854696077144804317367878626344925304208655906638134379396618556857696097672288122744719895167746859794319629187971992917653440841330718023171180304287607061393760105916112793608357209984875155414346176560582621668230293303129802796083654698769679637955170606943341555594973201757929223321094964032487701306351499184193355454752720782927758155553920279173197629175512016638152268855571604776849355871510848445503549826556132304777525210233614059975716448445636906106693890034193079788620261479995785512980126959122899588239791260750253033672949375283307708300869053340726532049138605353459140611805576172432455091400664732408119401551737034284462616667113075074538155321501458721664772446181617140115440177672422157850514264967608220769152728652758859716113854313258038052953238404172014301223903698365680524966646199938426559845202669854013449874149640007566891947232851987542859042781180435099306092545150348309196884683319667753592747484935139299978735074628372067209781535491250365392357145903983449164320202523933450430927823599860675572109206884808915168635612724851580559686429097586981151306113277882338272656592788770450860753260441610685879979175632170395620393023847198249715162511034473567035744455652641439820700533528567232768889486833285808799001156458941529265074065766256586033089202595681004649953047680278935833267310999757471037803236310208153198890756906577801149015146624532469492874891991686632829870585459213733644142609727994667319612294902597976222825442812597517212762364538221864872125406359882741857404200847101523140150309076019891407170436176184702029435201746623714709141037070265719232952756685779784445624017590609579521867523813523298013534061436459331744137781744929945141333454855167382297403977364608782412612315579449234335996068616648616588886365099791464876781528585472158674790086050170360349820405870365046273940305488754113914091986546496904769245066354442876997801656136300562846417649448960878395649572194828411498278327648255988427299990116703997566385022892028861129063668441864355658185150663399120402439319573115846499324216452679866741114697774045874212009946340513466886144062215600305712753821463150802034409635270752469687296824963824759845103408828212371227729348377568644146162536951691330682894896728629831468610491180302557545259515312207161187127313864431806933573558565370671575744388483503075219832132399004345702715571441886669757895379182515949760956690052196067061859682835312193326163929327542990410394628729648414160014847484500740446769278405047215326419438217607986382571136772503899188097422757779927434519253045940155903810857899647223597456929488692323893681012758676655496938445739625780087880926969522597287540084405239520086398545213024800453937708628787203534387008125330276653312814629108076047751346471715941995570182375099697645454360764859982170449530773224339378820838011291484442208820018948681811135096836721428549506996796289265155010831058940816398944206100028519818576767794424428420334226312141790973325116168596793715583586276945965613842467552852052638645757427838677875414813091204433116901267164242970653915816408562496448561048627462765765139679026566373620172289199998183616924690024048423103794316628858065672140228033442748849907552363504107051453248692763224586376546114483252619775055644344624110140129326478966958211458335682450329152759768232084715274061453378678097868579359482286150430666982914254617483823218783412234298753102823848892145839729925153093868132399123979469416762473601252633044937173186735298206581492839421441098988856979113530650806065228592374331043290092354168168524244631269916122332584632207969225162726634970743052849881987456222149786897267188784956069273523230075659617523323558547453245542570090237680218867771953022960743368454582608782152637745187277451498868226261684895151872743518266542717383410007903472565144387038271352111423282516507413947868878546878185237680871677957712141165900870157114531330891769750308791459071466147036930238059401595542745993519581865408124037445163022603871784903259388861571618113528015125630213435953534022005800240853175514845791729175641441891924515008673747984892947102318723112913681462833405056377584835159824823935552607098031789261013368443519376343564773659791234239891964157013431594234851102605820495785836509007913872616835928409542451639067320913572848434206273700099470438481329419098346826522212633480272027286243586589863509232843070600966157401312955447958950898725577525689447819762904439370681470084930195219680655798067219249872705499004815447662491748853600853917900596298225501502195167638766958025624609884578504433015321816410474609431109734755431640686818396118011195643167096555639971539401281797682837886674594870471442325383791710404965934518498149495372329192449278222852428336640525363128148463145326183244912373086270251990816675099692095849849117127634743211703980681368462374160517912816077478293469561575217475855232423520284193852578699407081499996399286952607838195245039529287716206144362922405834672176578939360548050992600209407595765970044985551364553437156512287895602450631909990718661219014942532979964973642877212861690538355396063220234346590213860515413304205975272794003001031043597303195400936846772309298091963426517512941243320494746407232190539748151382777788975913874897548828997774575424547668812616012400960142121503721335161589610476159650151312513757618153679562184478666584620293533652103047668253546636025363823233332126697655019326229553659754022182942085743649779083621259014833514787611165429547910151563698435346325441957055879482179123831299815111432377951171602323108056574290159086673982053794504992262901442441063469741664790547660287402145109391623327263536881991612792539475996683918985814657591587923428523110669551727804350009764644711414623324540613838860298429824789147308815109637705154027563226152576151469819434567290094238549023704540366933546051457393382140160854595343160710095088412547337038431913469275750783409119668847114133942365585561880306376807766741503397688949506027736886791254869581251595355903262834470500043142167642177798344064908724665985257005941830305221008013248002661829400039575156129164268342104233431089931540620504544765167828549158410777066331872589105174518658263192212324736770840267754914256807112712769318619191857392821478702367796235097975523210041942030532618824661428649802659517173675113808905554597354011268546747739993997944233274740738409869023727350923503347218110457446363398621253213851031364898001554921424611154838966530812817223150535329972897291696589712764031040636056646717170170629488779250561501430507468740286262132932996018413984934907802158042249009740344878318911994220520782530990413782878689499817046441238160763412019694771903300232676714235083291430291929441419258550399122116198026697257510384580359748725003685409542380711056163591782811591026898739097419967534987782809011166236346227795481911936056665682941356385214258590400099685191872510493405491461485266729748739264736536591400538398301877395183518008586182292494513029731437475795374279253872408762189031892255838288119765364525372108599346624687015164178368643857172638276782366792875164882192118240590789505321907999946290273668614723350585499670822299241901700290286886711756637398598707029412057011428253108937160882968773215016080411129741231364115206974958140194527375502189764782105809509381753650673546862774448792160757543551398032348930161968265133467092875464161270674675186518945132691139963555137004069811918884404936749106561065015444672318675403199326094696594984049530289144033914887243455643761636418393622778716993744099226717555051664543511459686833195733841605041523734666771789887819749442176342047708414801506960520945548190621909346453432302525434259392955641069739208936123451211496399039281385703329725460454112940537472485246804408300202382376287985534933876856759688756538452043386881892151148505246417957220764215853466804657201512877106623306496540415136149216471925872264306373960236329504474855481787661462665976324440930798101479820102644812792143631921233854108410730271010607344943958181546160478423328355064133842922534899961833423855378815816334800197994221575339792949641040763217975611061242595331815491780701081881181577746665348318632755000743021201751741665968940607736132762969616098610905811300740448762348329488793460781847357979885287522260053928439133143956882180087739594706008990679830945174740627703970741485969713295684790185204098056288446507345570688154735613325734195929755350902241203664086228181865910406147362940068351171798214000551011544652558335837510121287248681605103893032675276329963643077255678968659634239378330958745711060328341554257051024224697996951651565056466918082185340399168055240683784359303261847549784767151069837269899309362687386863906581381184857113995195698759645696097486623590752418513068974348451183633953787897990662714120551478988948213841642719327326793766040368684106603507891588238640433794453096973130420427800355701867592716908413621196396083342982886877636710917889886905349429987329348351744492222596571366386206311104417615450742345806128457774591292467055918750319200877298355055149895084128273563638914464074854517190824205260286884480799993738796625487643594104409010136495161788896401172491476392413721216301073751186151469247663990648880537266110039965186830530068433210879806586622890933956719190022062907465684227848454693152777463351364674923126650135700858186997830683839825861987428536332551823135071004596542143669181086908598336810421351047857162274643925261593597433973385812114317614191685716257768046807820352714209544190488389252489525171491038886970743203946809095814227038122505702064676300670461121943892056368661000764664910198611905540505635844016873726461721548255549881946714798133590963858140177438252663844637674404160488987979503498626775296940812543030150541666586761761113823637351828982597109721819644960878244500669171207334420116371429753776321672570349646442972103663811033315796551590814098992335983755567958382850615677859447394234086695460118621269685933938371819637941257676855295390943881417228555003969060597010722576212095312399084088141171956897478240385854973057001718363092167884429458734149868420044789879227799877846668756982329909036015601083584276313801447419080817762726725423670876150589648017198834116624344291283649161160024306392521555534585882348421278791768635099646015412378707028072989614960523275075365913560796196416308817115835677079440306685380927778511448534421186971342323903474949305991132670721875681413588737544065156451903882754448943631453446804109244986427469818771024543559204932702526967953392060042991119347558386105905408759198834530411439723577226238284033403622013603247960392530290908275968365965710413922445111705169187662169183778776168712119880785156023730498715925749262328276047261934568032309303164174458412070559947651208000361091567832060129811359066866567304590323489450136763462998002638106335601298425505086609407235255152150480928253601265178945728420932261729422789656737294878404021760147479738282008777909863082058163321221397967080320111950284160412797559608438659837960247810405167856053703464301580315468560658925658895228756607381221413402851937102500964713077963513911153489171992085230738281552010398635395819928926357941156135201028837696384187219550113246194607256635550812924650894320334590400023608505381124956648566174015196340733244931977455557592694027020538555310074708041553545209826026358574008539849585560346668798250367797369929501599766408857704259853328005011762086231277959180412455584184866085086838840036448796840759884334057820006905157011236010351894014564084291266783489656481642668222229624558920659777446512475995099191485014068394573131926372584385960109797587390398645426110950623362803361319833657760387604935159956443744036863833005402086212132157254484211064056722947550919797829804745894273339219828497176788647951842402156228563309514108535779084402990711286175897798208028849541618024313998887557964666231314889976664922504252173297565888728384848382657307475033336316216795553840248565636774514608285459243430240559569064738049539489020542911100547664607679446313665020762491538734555974102477864572327947208696894231841633840121639874552805085512293033585917459497908738837908813640615455933934141407626331964601171324139703604507679259042533446560525804486197884728567632036902062345972416259982800337374553307844478837401551502691944455521600937357323393732342845285290952695971688412204498675642102818665034512473339048694757209188917588176604925310829307334964015696911261749984193123155089344241278405843972593298710620753992093228642557462710728677704622048663549662113117604755038655174284242146379955909736330809654378420909957923529372226621007039143195969293737846749043842082312562854950215017925197205343461802704233965018941635863760704253142579767163789223197760078603725131599384551366213183664734302359977387914095212206915712773480029137107084137747909449846828645093427568984006382821259121338250905654770265909519488057272361720296675273160412285549967416115364344691648259463167503360270613734997301372371386560103476349467276930733146862025495721180461294632299349003248618498022507746460045983925021422863724138227402265495856106730556105626587385753595025874002006484333638538323460319505982130658221631927624939261163567014859404624564633267579520588704657940814407347233989318434648602460481376524966185863408608263837542850822193358812440032574836600811372336925858999248176483165031452135876010743281338192659954720704835572208352316849591969994129862372049608420622757354890569789240908593789798359238854620378865345215111013111094589491640227323216128132076942495307815656088833144063556956992163406203216948431724174223171903483957774273461068913537413167205917081298173418964924655652951176957117548758820745813955898632757555132205051993721118191735258763219870737460091939638463412598447312779434768592839552798052458314864681111453478054176791756934404929364421894139473788771800797766008927183248060235335184864418177388252767555086030146253286583247016547203434594292209303721287887382344993552446260552558976427533989355794712637163048597698228723655530795208733054682709923678229601639870769620977269478939671322974183482101212608099662233828350396447039446369928169748339865076487816432531555073343407389572485575208276054733763039316668151464031445190094378723611994803325828413071951882293387734587117417208832009275245876678981413585951140100660278018111768550840520049368490951785781778735135349102250513534311672843323275422334588131511539095843081185066263588049481274285744324908081256526957032225724444354429083192725571398031196145894393683561791707192320007177501871932779153732704274669535482634192605655417796107785856896371953777285556708646389097396266667347299968228484855096865209825423763122734870950769720762121224108240020437513002676071764735921800893575604925662321801788238527543888115561044289063019581671427116911824491555532078791966202936973455222636802970054272398524436012313845988303001475777642455033529845147257674923623766082988177936047320358209807052873612866490970069276938040314216558643608646366670353501500414239315529916390199176524193381435006473013164846914854852881826543683507347876831037326277709482643068686899650337510369958195382925303434790565829344290955195610832005303845149958423794697393125806811193352860227762471510077021405349467042380369547377969616631474756319697991574257927954733904457686360316651105079849606851731008003383140174804953567748324021335834445834042588160422381828521513570036899235509236235014280783129384341912592012791290880138309353192623133283073200999517053042298889295304161289966628397398293268517770509240961732511365967397919010727636021601734263717683458240704579554637165987760315526292760096310586833259171258293453451335475108195331034676398483914259282965886254361279209291191519558123731480895964225605958546063708840074089576175766645191369849411769893177435189651526606219354599433540751990652038549437180192438566080526331339298327856638515109439175214344001171059175265881520098491385741734625248952664715692525140151730717175355144196436436278289974703386911493743826836313074439651202936795933153356830811027410402419190456374690769076612395810593037378721453340125040859905453510825389233514520353003306290007424229704100983265444622878990630297045518347899919528584714371410526967832689389638098303496056380414044585433610202044045933291024990586644580247699310391169525638828730270442549859971291640229727159070925903195800345409181548237112435664758669656451807175668032603111088984591962017123180475410057918581256452477039684240614896919773343400814646776507724771064311983624664693712796301013972545257240756933294850267278336964230788063504642126703965943484627887863819055078940619923779557221052145358551148329047724176049896582891799550405869669322586294120235727287932602416959513549327819518198727319196933740492644394173852679423101538185112738163496275162573376130274832265259234672250884990422182009728765356337134355298234120931014095504469556592690903969250335828372512779926841239021838982975402609170143906610686038047445260651212153102389077540911652904711141047900371090414985321901210955830129504263361914521455264977613818288656101741255094534433879935656665332890309230160315069975637267152226734218993062846100398191126938107298765368534819064200646484818997761886173404901134078835092096415297186132301495012944723501666571348086375136201702186610816304920310980230575177577908729318120932797845416708782138934666198109201766453712373983147109495361965466611585783663328485233154751086191176087951541756723473501882825588609123619297185836402572493258243072776785779972983099347670313560289737459234141105541359979004358457775606060600869184720822812581381891922077335496243964089447363534004308154950729208407580431186140829759497089048226252269528826175821181727200899128979780971693267625436889599341127897081502279554260372459102862427054379367184292804493550102106456158900636481582150818874087395005809290071195776337913940232720807982495179045240063694996779070069169553590697841567504378981761521783561776447956825189363773008128021640382045612735970608337286646858650330211337095395044682359334556486709608594445154398534480897852282545187079411770798983540998976441012783060831537479732624867877129604702070280146292493139971235826210050720627911409077602789916193240605847004075111945741624336945047315313407381753180675670259289252394841704975456852216703555877488186118031880983674232970327910515411895794485963597690599454220716123893301417417882645501868877439340025025458416094991390267647392186755425115140590716417782176857871214940727092817377862525475529461147317107862195490037264158220135968845979500332467834846697493528082912814370445769144607452738067426614472561610855543175246158680958917597377819537299275756368426983241764479534272421634970702332428058408332938018739427330203206431591076164352715206477604937831216733313905842044619832109205546520990979647033341930340768406216920849399357098839202994999640511368907815383027169774359385723551130998295425703709759880999720948247304503805531003219304419317535673047792040120744846179199292235949104914975100969571289030250720008071352141498352549188588579674956282678606197429780305847168184746152593230760928236251564218243116438402228957035301531930551307286092125392693854915666228996514019463256912708295371705696744561965603478502928537583081773294219385826998279686188858000097777045703511792443734476334681839777274834606390148395786658000906859756419376843913018320542843316427187613241703878879527605032672072698595761207521685945442191964152914477989441752256995173842517892709694659447723649112692238989933582661593276998844696310926156177841165121775779843806000484895956357736064548116514472220896002935950877966933701045952778913894610628214075478653436635376330636673220600459522829554087305024946196351008253798821549469284900220032922612131304953113953942798846639365139666154269963244454682459919094069711079610536904387774237219000879115888987424093124966183860875236643992554407986667104904911798361913263464497022286213648688736489234757658481728252738651949463366648157976927896061308641472582873829877618231244895163910611611634080558854917773590630792573144363344847684406878551031763798401513263696409723777498801103475093375863025379650754984245846879012727506178091598882133709133134301247844771079572358266827591375168929282032880662717768186492494499590943944951295170803428502066153443169104868914597733759086183304149589323691540489525064767822074184442348630387457967801675721413736904483512954223062836558848604481868885346019470673010626656740435489369607870659781539162915289990213913243703124250233729925054285399688575425979772766868053600076486635038657356554336529333288793621768462066213575612933271367275410583706381509732194016437752256484858211320657632609431610948899275801936858725305344614016355688878930851931749373997342279713492258489326551341908299111318028750679947772339689878633892381472243715344976373170874328945077454066792686659428963868481374193762872165390343354995784398749741678147713944959469868521386631887761757702008098675350564403983919332453167032266445371185718677875722146456851481849339700344414356844881664169182440888631647764671685109019681154248631930840108191165805282814206404402788411779526380221866997420957406712687581419580212979067177673036885476944964671285488670085842187423198940672878912303001387978340186637630630184917344279779892009811614025832180862583397430236310574186562408099554559420822925781713811734736151197364087725893925360839414765073624901234337982185877232050832853873253661939539493414656695779396238591070502560226505530793032308790703173855811570614124914222315269607685696676933623294133756512498299299204451698405392372684609556624184764773258195034919739180397344453075952548016665453960041882869956950293696625132049581055272087179858512530736878576845584483999680115332129919273415692300706385048732910963517205414832623420318794935317167959726365155844141188739377858225068972203342862244627934255088106237880567501429135660089058573307270098570249960271453835045819034520794593661243340099912823961892872234265676794711018876006038049874799332474795847583588015868124899458556642360557797092936956062365211716498481546586697158055862305637063454240476266741606889914113425976321951573671230809643275291374346372464927781572265959458430162548775347667160784627421489304544895828540835196003498833781953091717591055083689570907785161696582283857578980538847009929991606852265636883303261288897165683783045796488998573654680702569042295088444891925092853870187436973882266529059688479738658993367119757345996748259209983255885000225612714250267525685014872518566103210082624068623814329094724491744379373791565114592710744359990116193078068769380810499840693176631617833272519055137987397106348320721690722494699287507816353666664049936812568804846537572390387737885408955305540988996826357221690740648436092606728209825595584043037609294083982871985941506814989009742986586616265936674008554289137847835727966798162107949736014707776064325341694377284622781823417720547960806185241964944708626911844382229430429751993415714944137575985495449856530659630612798430646413689128235903418418909288592267903322930793883294935906860156773630610154610942296987232673904260129468108041985355473792710317419927953003468363917909773674803907029176459121575523772192813785263121201941928923433858685334842594094690797648017464324201754681837049330477826866996987666628622072913597039710660231937522699774861959315688500344157322066418822005949936544125244306783816047682507360704126049873353528262544402644083048777972213009161152226505429002252991534143501472829102784480986857285539844443159019345579855954129499302516367976740938552060977683363922391240247984248825735206035074327095909749258282748596318989491281326116572702649911923867826698950764400141755509407673463378399502893941785082481988091625809691271723283325050931649265379624576860536300274377446665676182517990515956489431028868769631698076079660069424009505643005755451439577493992024309073406475547426443464096303878437140885710676552789699389425864999774382441671313588682186918606363439130739957855663536307930867277317541590525740424571951298008705949128688164131585066258755974084948064899391357892089930576332759885091486286056146762623266979175103933378665748066380130957050292859869012951575911813751838749952848499269352217008801890280411077784400245175117608548580297657961898863162844474757068322165567246691192524107658803949239027119702241359150937192862982233680013945888080988326288700870707737748552067358828748328961922060387515459000073028192682197048291439070814363172828660235107840487177523980051261934535372923985159942319519863741361384902214209781443103904955460672444366566303536650353475133314797858375246232010465191796345242511319822320674319514982705655039713035881381856254919149093437447792377177940297816419466880191264669534563614120560526428002817007813402943629241081845746607313813044329917945079501596236746499061767154882964006222675801784788416488647201791177238173252822734032822433930962310278023621670680942235566073292825711334052858306306546170985916040069720971423501581897583721354637799821522039946510895616560613095248823417987571134447459491859372419106443328884513034755160647900062712969230646965611667124831379378829036966170266888814342370583153118694766980633582637423779183097563283422148673300173926921371981470814139361449777463841927092997350383491002886943353899583641879356553237802949407471789875816184931052736565376961444159158075255789180100211372567596095622839961814905922899840690445177512573986326775055918409460660621549319924647683624376877314396168596325008041695253597971258406574486331047709016824462183799598918626170820301473808452973349326358022450850252310986990019354984904416109160603773232201873205993406731913249370469423281467067857215162258426440426704650592571820885901252647561855656523318517098658387660461075504241273806774251824482149963984898143752028143034893607547458383237797592257013764647166018330895789712679019800998796095272759530446779908487578577763348856424881050089024228909632384675824050015106045426561423668019932175635769372189540169385154411621789965838796236069647157571713649640437846485740799650645605418906360414631525356912676159949788646858894131542935967435711547693271955352101089278076918039275628604575334511790136804744294027132299923991184413697655673578067801867028159539506525083655190063582023186349175916208608360505752091057781396809034459203290091287490263379710452542306709887569248707557712049340246674085722217173419935090016102288219895241033734484302713189928288977602121920231871164886706699582326203601364428479145355991179243789442390807850331342674805850399979635969166884866429022608273118146568254110333956613373876466195286477597562935307617760037263260091953569604560720142203573001146345875744691811722036155527074196590551123878787435866196238361498087758765860554479884749794131679232736879707982133307479832476097204759130679272146874199691646359098513753934478181369035463661707928121623820444271876535447718563375394906020121421306964215451446932518476743908470139800233915535929697782861016840388821040664010910559888080503165544793712185420093367576186569977629876827141594947337854336577186763551723705931773317651618752795915024308802203858611328360538100384275665353491236883909414843146688715095966089221348954768666520779151464334419082220343720040145859127757883182242523617929043533683767709946046545531765306028623703454279514222452985702661004049404138990566752070628854694392285312223391551356916985503936958539487919103065860611684926336134438194255146167657513578927046074312110463287542123045891590446975866020923593097407665165328445519969789025759856109950970002099803675896932682021277602884041606332572253488228330451060446820868078113778935918855064531156202257638358156472320620024635009576102443383543337838201871801274656566234231955549316178213804101947544903588891095208195129462184943958007418228955685891790469004508652673264584983489264177011616735555640068101801683369509528603807034027877627165589387250783781288153093274200594334597792604708055236458084142584635613959534790704991487744020078281552895688799526314789597023038884031249022298650469174576315229288510274766617708631634003341912701508161139253397574299631032382146629586620589451200003366533738307485700469285246136166158385519518327507441370297440290539755037123065500157947919140306406425901414511606147873129201230238170286604467614012145624664376453321683602657731170478772230790299474705797065950666910471464349507195841659341597803617227951933011864429520565142610355775755723047876331420518631281205219102731823492831034179455914644389549066619042347665293850084334352270227502545738085204526363520686863438176254579568922121980830822620812439409627586623761822043212534902537361947160789161492615778406956856132963116705923788730923226025413418281882054906855893005213430387748882698720781748985235474926032844673265447186631473787946243348756411043835809632350072427128472872766747985012886468181315519569756623614716107140559812695121165894931759656243577996163822922820932339303883125919766270882082337528935312210260372856854626293540149748732633834570878467190620232758441774785680712789576395811900166950801173155687946410038267971210337694125676025878844726361581851421446457770853612885210329396463763512721949625170892995231040590811893335605499683231203256510425963261746382885268318186855026967429006340094174006784302415898911790478349664920672691571146764203634811576429096573523598473040706983897039553401162152959138390510957545742046974415127246125832361339902212685028623752158476559117345172093579294808799097733396345524300942382244599567365974062336769853951795453332200424597413502274489116471058929439431674999826603774265924238268840642349731532949644857322995706517368430781635652116057699188901350181088498660422070222965149222003761759598170568665360839585651600531916975408709994567456687874918206166379606218468210973323616116947172618652194712879513443848464613060428312872004427433098067116937665085297368947929605292782959180554889733847310580272684954037770396234624495344139067977024350880408533510892027793499927871689679401226609160006277345156269909046317994840709896839017247549135807975945819225114861236120207239423523094453137346529797302097123553514474706259484144214964693037552343820270184662732793732385501402945756535652295847780400376559007607228372465908513613648704602691660579548191159840405922987809299857543301158554750842668472868369139371960184709526059444363492774403621591176174486600155418241316344190257741479269449390448992866419021502962608541407158407301186418046363935940118629968237654497199455790151403636087434175222868039436942888460671079690702382882333216824221913037463896055763945183075701891984338020261076585454705611501596356976349724749129852263535277107394200624305530581342344272982066469452628861442514532628331576657585158455085963765529005585629286214422915902433383753241275937432480798182804436597579653571306191073289717968858963337898652958572104781563624964137795143270521052269577012117117260610282467622616805059663287385128948207312712668931446595912966804635746668265916490277804147149492471224261893190771055559552360286619400369618767832792088200514758979473156302034320933713733050865352248087895379760069388007637929157174088480206825242895805926960498843701196767811004592424157848291663269650296026763719225159398608105605018172356623380621713019809782360906957177404425645630490769498004164269362270060440171429512057071372156787327062544453261105051775360270973507749241108666123615662579283674429597678475871394132562018872603462892443056915228249538197079821999323812129086231692498243948076473278493738969865705722025283233192783510460023257478212482482038991677864010639685379483418118320352941914338312333933380745317896173639356618165531025575130487448535196137365814106437432812028744439748178837034043820845280157999807344501243636843134201516016955963396009772990028163639457100812187504120103897553984074962532323972752558227845714674158857962049540022022575935248470928344198138771004301198211231174908301529754342398180455655628725266320810450368171847314746571004957837738430503253895453961690281378773789257026442261654002940460890937619120954483928707081002201618001875639100860499126523215942475697943286116447048698791528241481507766290783917107691632645441684050232834383849028111571222121143675766938673288761815717606643495123089359909161294697317342509220615364908742379756598153967287714853078884472464505539437444842509560261635255410471895976748001284966739244420977196456748661358352807765818537211562989726049052008075415384709267804913655324530879136375390667247161054050693283059740000813979001836462504072842858841476859381027582590703671183007127475875671880818015484330486206929993209667604349001667442137961649154665280253112157060897031280147777735249716756170564904625122429114081832973486320980720841238527528049935703333721074325708200539728304210060834693231291336748990941542610657868070759361365405947849126086515760304041561814903596146041498068571468706356421037324989427780293568346262889402506465397133001358736071720145780193926536295085823801575407027891449274612832865214477031294247024990801776417568342145546748829752003987725673813436660674327891583272517161999721400345074467161765482242733429255943505426689524892903006251368181358953786036695911802683550981561330269074703082644119293177816241354597744614297934043800227640401698099380043294629191013469051676727760678820608938350264568403115631241967906946328004759210687793338698203424438582144997156674262015795429672540646670675485894434271101372504559148014154945626616819815264330378322119582392282243037760403707181834729965818802427942961092822210550634496763976998886092505737710494629909605060459855495218047466000850458755028915035506292274721917624429587534810944541927523649882529439671950003993643385867845095026843419975564266459345081826153157900430172149663820691235048233275295165979619962707093479244102575940512407334790591712565616091742028856007133980064315732325838167255854319712132235000723506516281952095596482437156706213549973061302783535930422809563771672686391991590559738682272181669277785989284625265990889035947679958050349047778818786199184132995825143490028610845057972258990260467981926686379369933051744042583841678408049391771439060931344976277463141453915867542721662255161540831134494346343538104031074174550940782625045719051556644328539233534586690721527548709890253567431830931423829492946494875048465400539660923330998965876441436635900678727203482306691802363253003651531400208931584205950043186032529550967470777679157620454480641967124399062542638919405052172518522019814477075770182024115364736709577692021518582466638757622778452899195560091947635200582629852630301039605152402319341457391126574662668266471184881584037983496237721748241449294789365878827594736409959917913399965479531100482521933084584037228509785590448282048153460028443698043631064782138331225034052758774050591807015258159264130340120688941284657363928996193503151769677192308346173874619515394729530135735713913809653296570709273121156082561291400162221683371473964381328760270381184105359340786337751791921312673036603525288031235193295048486271728743048270140291806606215734767730453570774236939288992320900438638568854504902194529712044840356974714539613910385706766391804216833451356960149338564344159906147340015304530718498341305690139878752148069619764203784408916066533661767882629708457032735266201280035000342440512643624764673867890740903055883233330668112922755404007293739562524967278788690955139540673507985447043038016885101103051079990110469631193041623305825214186455170980824298355507126061533243937544712445789573290667538930505730763498350475181378681429679389023799314044564538817834516925690640260267941516718705970983490082063088174067084501492686711714641087798757972203605585668766580052321374585733150921846538983018853883148798239355304625016248971666437415931916983515161432811397090530212489119371161752673805090926196560183954861309798534487025950292462040264160189602826347180196752164180021214899230291715946437951260672479600616680504023194513545659974621155648705525694052588582731422391708914482794751690444378543599955277395131643933961729383493861684241839954585609678038569054364061264569306834472951714344717756191825722858262330062685871104564430826315398937968012538525838869187834761026067370812037459876693792568478933904309221134759022958140215935745746437908356375693222437286625468895271228761452428331146218271080002570628371522882496192169698785420195869523220340573561831067134707637744318621473481331157733848787293828723338300687524247471679281672351645562185748719581087427615351006678036268089713513180835410399361573214851862582071988445641354170257156387036091840853721781685647099434914180663264439342182731956350763265731768739813415536229083525662688172472740495425270972306668649613764669029839939553963066997311778299055758822727016765162769975777679723955865450238377516040782087551890569680013017716283037667634860774849672137350179728688516678816394221642443095806959585750637677631643752817622716386085140319483555633298323660119504758333470072877412419160520973241282786245702393681216943824059111302503187639168333589292875471961038814997528869434004887948639264357837678157940641711083426200491816314314221874427259805736277534197106628871668065097403818182187660592747422411623512222717620451776545317949861129518404383266038068666690603081100129774810228648365970012272700805083039085601131144643292410466951866013653889727744846275926251149194064356833885777549839693327340193015278840656763115872611677047682342200154166844097231821129651434921352113151251762370955821093541157641489366007849453415770134050288704790123864959036372532352754870228631754172520087349575011185287788336978511750930154521582795532568303952299033259825254263561211240027960694161412477864305464436472860547329367835584718410103010393761339002539779247351700520337076324382077774473351323507340424557564764965046742143416300383145323945405992314747718170486090602460672990084538585415811280767714128240958197901831649464281852760125288652659250423201436324290552559577023532139512999745673333193357369560595798008953962210054711076092625864882531084381329819791258785804482700610343830609906003524770652993859491515328407843598923001608443101065852724501978470955579009231808041635356755060704093362527650369236097260803215378861258504557025020322588442740130783229679391379607091086454333202043531891198635209948098919046910054835960765076806017793443507195733540548076767391221661915013399256947797409016794041030373141995709714967536486705413954565936634636039965525382547369826257925246931679578662220815623671353677733896133133616496562031189821835433510447410061980011120046298242647064126265599916754089254274655027208376407490006248809781104103279075157130630857866706897952864873842009951336633583503412579815627431291845390896192187052558745230156338822264333581561090693168468616655593402805819568970242710674477361853410391728376047237212380440230997258533603471839239144621587026457192667538106069293363635805145987492372369060299214280604959836065377862829642888147777317223923432883169530758931644027141927981283573632480080538127093248594012016380650538006705909449532490310139250536518588572676191199118095104916137392486370786821103042934893676758561390740988058982370574575958622088786287438820742024149192925219227340505190269949112216776012041744573999607260283695877224896915348025532301043075475062404149664693639717351075052924271289207011397101911623255016716441745627583029055320434077448849875271910336413598124602058227712245912908865021927486828475474454326580131541631034324539008067015414159644704915738582943041949430915361138968182101523548144885581941448524449632316413356379835896370355506668920766760730715290136038505272777361608626507134262059138798497809547571207744118551645586394430287833230179301951527490059026946284815537050517422790935298525381642044746668112277048485387309732613908991044588480309790037279371754209796724326964114016593172165632523123181168406707181256508335787149279163955962012627396070591172254066725866061366216063590066165474073852137967314851085645853716916132444751157833188396296664844255109158703719749790027383530637036746850278136690958777753952740024226868745733258350890052390754040251013340315821636726757182959500772413815456514462835371422366936957630728166028943555887129925278286940561809428969216303483089859816779636187828020805338860955411406726584914886744202233607644992508186858477335864153622826699441388633980848400452410523779841623274375050655197096135251241235374400901133714470745120811245256416121650136929697602823418492825502993927575433214419630339903342940954953844874677752201771731511397047620130874190316258777556768861767807255255987161940909945940810847359319098054211444752516719198948247331850371493157938944883681796426961206944072818201877496921261727299256868484369313564317606393518593873612418664038403122062076269700570744806503854300694247492398097021034085290217053529923429987854887939792214168486347174718946410922446195950705998608354441263336539238848620811921188313625544486201811560786278693187533351933784952161951522947015452822376129854413537480290739208458441315468089511821368540567138981392971096805758389775186518812277039074253011515939213487994682803022546987732405210898158849842977657239565940705940203138063098559695896909560025858979092030073145032156019869509311860157076290311803420972779321159284844708461509315034849526526191330223063346624635753368755718499889122678344292964795928417737594441926342808709035037052397264119009086225970941320992355778894436581488190827614438965689565243358724263503068614540907554552291773615449781799827123043395903952152556835291043930709343316091447266807055108983394615909294414378407529101831525456148068847711032810749401075642770633099907426360467585600055974689629252045782557868822445291847858053637125243230337346927149790878727588423500768321301575258659808843806210849226680372208337391635731610255476945398136470802141972876964635478955455131556220561113426905181434126062667880396011998418796692206058501144542516732548773625295213364386480932070541452665735310849003444191297442165900607048941094920217657595011577435841586102637300142671773183460017672178857614838036858059749630557898632806139953516618915559564240830420102158628908110404222914659860522189470991992606243398472394036889154870687585945238007783202331000775023366067424314491715824164647301768609768529760540546091862343131043059499629881570553345923930103227237946367172283701275041870869415650987095935244441243178927312677762465675080363181034778240480433743678128661190933172421793468876534960061068743222168873273084328843495371208537850023913123144315946867123993144634556940933124164823852432827267421359635642947934510884857728111938696466291304050021135977857591809816166233850115413033020466349497771067878530439782724949622808277441777884742140700319459718298703117561619958529036628906478331878951897138051859167006937686730965874118981324923984323751533400628695669501198471160565405082071479876223152969859774212498562162093223113935993280460711610751581405294174113413398070768499920633217538659028570049801393124042231969963992335816499215912851761829983608194076063099969679851827043890754412052728255743138258503789565897902391901725386939104520496711118571286272046074158527800216019934605460108646155251259997123758925391530165242335497849017831018749140143630778741055173270844394194906744330392045123343113280667597905046206686767958818316273446124882328074283764831062118430327074417131048428919211910423568505818604739612072719564197079501540336089396693053540257184558644754496075663287875268688222916715950049767231420468616803832615419283422572351553546799195370255916072503189919023784138660269519168627977341297258304345385419293287373924006376303492893131550009474421622028910891196131689426027455472968917520562098321163505220065216005113142289693400658724341216006578818496039723495446990795158085913793296327518063424937609355622306134038976247862900323258116306566720193501907934515452751783610774445403944364414939236548089549855521704271548663819200068502916095417729777102823888912955347840928269393190663593344239582455303032737336017158136793153811845644161890711318729017877856706308038218628227137320699533288434609463398254412951240866710609474117373113064561908014352377497206146488195512263647883593851221823097696899068428987343625650829674563561956245143297121525654948410016828882543573475561162095701369897188350076416727218025698507011417862088627769124956287812320731256981285761399102843981035200379154177403920064472477259661207281856678649353249340433773320620793872939349611233702929022231911008429976434730604250067810268462242468729956112843624930146689879775428704453948571946708491521548631625736677353958341806758292721752219913787679417005929557766101808339904093220127373120071045690557417674264808469915436404683026348577862853413692674348494638054382203546573363337956663306450204810256515098111179207923797214626284569794893563730036526748981713349024273260710602785719904699058333629090868290453041442917930741970092824857674787677539923903989885217173135901760707095365521761254969299675136041572374118864620849239182038908127965508538470783403670617168977317241070654523956748708892866142822368070768678262788621774996277623099036102489120323813772389174523365849643694752502523571472479554697846459976446617168824741566303995335327142996226974236271671795261954692265838390339747400834091183442393486554102873026828342719594315689491887721559907193427687029556600043716597485934439086151176145520353340506653150011465600593344742912015666332272749859228665762468218973993529795162502435830683160155214797285428059558400813492827764423371061487193393621197611980824763603728865004758377234857499180699864057616508955336015915848863352230647824411068201128688381005535870779664646020237794508329609133070796457022541740411668110920006050487533279317622653483087830423926103424576670254842972547392369948904358200426270309975352915243824275291701429840890936854562363723748738228071901248346345669184309268560654341197282893658767913089178206619350205396347778822258104837551895634481803778160943292040782248011984204682690031119140842639132298893917065222064592370822255542706813031956193703794638570151265220785874771156906840833684613535870356031295255383466865287137626203630665429316471420548882301167928153486717593455668159279876728478727085216967930473920718082923134776319255141534381227144731793559574254170519401433966997576635843896938160835564446298974732290890259616509158280436480277095418272601103224902088321718615663085115840288413867817590792450404627344276664434947344146447060652428852656292831914916910023055364851470802748036344150611946350402114259830231876254945696996324542467389193909362025512771614437123234355871434985835120132467204215655039649301933434555380812483828494403823224684338221655433525612751431341338686970638158652419183867061693115402409142335077964283405282432812037516976106571972759047400371201965694351110955126445920426897947486050541428658492548572420703339632638954032515340880846161730304978176330237964416875966863252356362408060675835676980080950220308561670448397758011674820052220256242106413373911776142400670330912366395700558859561972773582429176215042670200400182531539095343182681454833904712368598316094880600552556606280436611877315839554888843906922413211264130755486898623774732117832473882218440477562862034682419840683940054092321936980818536951634371639877542286266967858993835919739520661157940959782610701332804379891882577513364640518085866327335189192171402581802986785627397958393687100974705722836724082234539759169978446020814885518060887945244867682749226696453739355375348323837313084222968767118182361989336752019850908409321120703912212703956065903362771982147665613109773167807169407137839570640105198076291937954266172298213513852387748700546705886024096139011340926498731516318616748091838374384680450502866643800146074979444151067945785571802631959959887124991653529680376365170593084171559887436736453260690599343025377168542786011073111806332515173902148946269055359365524448859525110378601504446871230385018166624808517393474212871891372970988547196003298256834796786433201715286596798744908963961056671343466489207065253992579787426946144154462253787001144048701620084327695551999851598861398586664346271975767276024223472430955121019661465229739482816081392304652159949267802286332180683785513049240109540516706048386470165226793669393757653084104937877415151312346229851652551220815452026038304958824465455578468337204002410056246785858938340933772312341779785429164129280694392082466696042973708539668593331136288853955190452863958155545753844219309847640971579487699146327368054101610476993316196609706666962816377461336417955821546011647180720085911776422168575052443473875242742430518867268057956088483552874450182932155070558455530588958144924916298267863606561466645010248148646859664550358383002364202964141219533519299557306730047003547185585774357456686247003323257753769176408310306124140976359067284671268747799214302209454398661165700314605408281815174397470711413647233299519643417026230951577320267911594371223208025894156849702649861150208546666645118918389751408394639710819612661818250870705738496352978881045104428082740918056976488864903892457106925160884566379148467856999229028253909048962069240727569692139002299388548976148796620170336375845133435597942901815844943983751497916363634829575753867122012903972903622760859389621518988630923656781134464778657868796920600143208044511426166855143186090429000704647502109470791162378013331621089027925451805742103378486326018237396593603657433795694042880619913944470597730114395145400934585440227514134784072253253753684611235996099098268589739808655072270624218316542509158041447047282329471347663299984705017555859165000062710723511318338818516485781638015966387687467266417060139416463969715320501058199141807070688691683478992742817963581466349886851440671755683874102536751324597504060669669391606610799861232214097288784529501828414599717609791565621741054323326938510421698080501498444763649323054751433452177977648967226635747248716808103796090786892224184230373090793254584517104336696966369517761384085200979242280671420796914368577101728750601881267158863528439924945445552687102608547516078212085419098091928245466762894175703982319512853519580001373210538964107120896480944668424275436084595432420287207036472088613321932910479412085210389286580767661874154674127108074476409101745752669855661580788143982147966911235499325966753470313279493504265920390707825937212965585780082803472912652050892115991710873640254666915003473827908978571122210059114651051497820325799058434085760005766015848247987987211810488272994930461143564721114186638608663324468150020510415904930092446721401965434668509709641677487748910615929737652243485434900347032989212309039380425101127042458829505089666561216753355949162058280852164693422978330882908683669431384380677173055206708140294744881837438013683030463029556931492428514039201597066706991019569618222126950563939373443277712647309724456722249196299009031196302294164746000599776662473253850965839459792400066384472831234321372355599424967767627799596420846781892070738584971131526076540933255879393958460207690978158348020476171382836219692842171556541998638233168852481165262527196241457840345165652708351731693893809547215473474005207654796030374783624636572571158142241952244301308686067446483879345100159487709798168960454611755882044098829936698800763476548820668336767460352186826587108368016722339674049680987709118884734104048820554319476810150437375213378990471586699641313376828168378880598851435844398971743567288113279271716372557660158079548604536754470786238233994973714367326185347544166488067937628861242269228274895354605956065884016729705641539143477337226361715281151562909755473321534754264117807976213342500865994002237874952497364044929013218310602591368069327308892292256322919859141193309870396736929032203527765455638040611902166444429922302630540408297134575661938616654684278416163609289427192590436785647820940839840208475143154206390564656329858519557394671881688078959722441573421110152987746183261615507605552033000858008507098687290147620443674365879308260127821598939161731359650560703038141962333746974349297121105265201708174249690157416596338803682323752333075484939804440058463577281553848287686476402035151578671103318867019814841807418943099947132883141997053978485306985260320003485895319028193833727331859622109427229637598296336535496940815273771290609483830829787164169877709537669280257652904767324649856848367222898141140425966242599216184694817600484869194722046305273975080637675561650339633527999337320893895063254544148136690825781031186644373522565768334230739184397015147199280017554413937699721451780313793306573831237017914618272592149284181425779133461109513973157154647264609789193391671116884299670752703623524409180799916034794743738634783735231207824414031560556171302819526133047302836685762932619299711840986808161920648789456441639728704182710071456707811287695597646273064890253415124040279011276742930675311235505500338887824355430941836910665483648113579010096814332541608327394994347556499677542212793544197207964885236596434944879162953426388734339474753942215197649947648378127527041400358755848323290358275835257156010870783215702531442235770717084576502729598278709255111226723753979002122936377095977923726701721399828782940459922426816021191205623039770086253909057179546185017727329701276041966980397029434444377533358763311870764020979054170056230952870464964311629611544106852006453860363206809526706587042519523419529228585359053962504884437561777066444122458364143359332715520264348069645511513374675237067517162123856579539517368437723681896517535901105453877487992406027943650205773012165062923305578688787463201683702208400104338991574448126656460837576352774130708030672899590528944610577185729724555915009728146290500436719962767621539136319396455076583500703408544431465856610948634825963531629336273115201072722189677233333600614587964627305904657732884111300672117545212271093887038008865829429096045096954868218029891681158195679748014983154298125870331729304565557810327424401473735524975971307115607245569900434974196145136745034534578294468795535284142891317886878572799147508932077356377663885412634792710308663197440231933869483197389856508800407414022246011504388872037441560928103771462897583105439478608555833711537932954740796116883298883362633529813421338381516808642595974004355197267626641196773997645244152937970593211924877684133154876921016318523695448589072957525837065281054141160346569687723464443073389867686097504537863587851521960888535188158954049144027398450467484124109467526433682844898168965042150210731069202928123794113049920007893018965214359607998471147731745541547353015529109029476741797832924475112758706396352543093845016652763699219817680954964981409009295774256917846446005364513590911045684337654263102566322109705025701063607462807173292915759102674807053181364010084200909888409317642608895762585876414039342762145821002455412609123691343930382097342245765177564523308718045562368149548019228120596490950491381794338886008630347059025394441207567508055441391737389170909229891945920868689483604619123424749224286387700743589946511589462991555611119073540175481526638765816084614475024585463189724408622928435911037508968747795293758504127862386614431745279730386205129965833671788659457138080063614241008676812506144555640637215630433549398408486408846692651316307387173290751928750302007651903187957879498482134348861699080146798009426268198137839666187565758034328543238737936519616568235607942670622232755196785125938035693098522643145855618648351720460172498499041378918126266743405508388704395529745883104561470888381977397328957663196566005040644378377872874768422023461677992542489053888860086902973165001369981543298241924158941773527012950580026114764991612021381610415864109342563401538909885100645151344812585447430020966155687675290236570371686624916163709473556748616904951393645275757972306748122542730664107121852352472205352804871446036809724449498894643515182857877980297719111664950244889114199620930083740860201665258958969575606616308130104196492287725048450628540627095492379665194137014480063299920184885998859613879413360104811318891673293017449031014232887484726534991095441003668018065717236170578802140599870015973670698055575408270378562640677786586954016274424047472307550508340700375705243744164873817846058391906429079510348731299804097358114355609623668907604589368639973735378621235367157101783568237396732649594153854466226344901553799458959646774503462360748712514239224499816081830247217644948589076934577248661747615447509268704351797652366787456107318935545945972428510280806125812422432806208291549650572124550419096141898303543545226408924305016226912378164683914329535843676142594831785539364598673553697277206061244128561757732752326113363514770035284666352855749180664585817608493069396818827805309018346966175638124456906945915697859981118538867347011321074307488413722213227211641604357938335470048136678067961722436497873023676148954732128058146794552234004964036482026746712017820172546152968109567722801523272187726786696039636987729482902271848784745827739889731548359124950593272492370073144505785134264428175703400844337605183526330596367616492793606851236483156470101342679177491431274062091270578104501838258419774241285319776456428383439349235156428674936500761306724147167609267544779390457167507000152885627699665621261546837031882360366751368582646797392272382848317931000613794972902376792903432060995331672201106305085951043022783009969597788940868493447972607866253078510002226348214750081453078152137751824230475469804439700623458818291456622870572471733556443183985580762215536497095264951208594193433117264411793020274787717559936967693260136095860125895037839030402892101920008233293393468209043537974291104440911735154463772306819578534087175805378638353996159579951254414911972306727754893212695348434841517209295161654828094001274564885403422653143269549301726907422226114219413679039753353438362149452787399698736589695026500774349001255006070229949639443282771438551917618432383798784342981903346052267429515266891759702049361892898587898805352251466635103300338603507756201476193329677852112109036418485455955635277443640499276257317623783834163561657157738432920937173184312686929666559793075635713218108667567448485399005115871940061862005701616557971983737635344322508194730259668138973252466178741583897168303885644617921353087589255465775823399915747282113543845271773749094566606861185266831195135079471279437624467209079563547641637767941427693025135641287496246655728418495070058349513897987619345159526990508762834232313543886023742593952802969352834723302849910189926443962818254090553417504637746931458601231222462730468853773075714889764003648998764033976013437757963724957677116028872424512444711208090985595695559722965044722166976290465391961501490614475376701377177739612590126490836499945793800963397537425762303371400374234065545726572731407830749259278761618192848968602820552705915402706380406526198304505102526826587252691517600151836312899428054435891855482146076338022156003274340798209889610348499713722107747705377410746374930703373974483388254391773344681724508210504552777583083266096368391147647171246947917428551775255062461328388846519969232484058971047347709897500602707270424395007388384688471334196439657919057144764383619948554577067962329167378091688668294881159418753332887199736090203140350473224106320667042450445153404393408824441460062604914422303788106536010880763195174607798734031387776379724051155574778697205723162029815205049027284856519788128783717267110162305973525661996627715594678513341549166495175065776824310697174901854599330924375287993387170906041684492783372207750923219410175820834450732343753601777479331420916764926855457565155177116634937899021105136916567150776581581707834494254810598969666059238561652741510025883552226126113023394889233882189193882172414741678091491775042251156998555228701891923812674079120795186455835555235863492305281231245789026840647857594269867806756015316210795037765078865387228371795370421348991150200187988607837384587377237743706999442355987285705014360096563656157143422746250735384076176254582220437761775557429691886518094122492719406168893827901885395964506080812732611342292900952038443770133854242581003905464435311940275166151161347940560780327943909864009713364457228206021846863276636142860798508976769682137932909385891823669578446618330317280000675935895218269368538258048244785677114167874678074683497474241099646875886890148645786261266162417611000717334825994361698888871477441853978513572372367304964289550419277439532902797995296665603081355104290960768798672233868761779210760329320569165747918588585731901316346947289525074648744684906684014852956929036738053235495749350061695720330372966185937708706512831146664283759833870183327497323103816671000309827285725605994327247538503912478313800522568481366351117325842346881742556932138996326052591762179436195039277371470387757181051193862587750595707013087268746005519688471369381353792984172413119559320658926672831736489062284785733945629865828501746295399955085191581979003615404097484451812361762301253915604113161475776652777515478200889132264418130325266075063284701737763047525540612737890030143191740816781263149704036708023234082654385537692298303092794941598527846691125199650898381171101818924069985488327396612996281022375766908000216048900064449340965590419383471313388779026249817254439603550896890043101199217366121075192508168552575245075797352590087545279331102909009549102306165802408176999425869299193595227759747206532651802441684800011572168509201058857185702857552820504042119206541304304586187835794137072222789532710787667103686870999855904133389623212781996884429501500334070037726508832873304738318116286403003565170253678386437164355381496378530857999409045463033439897619101089746671118471339935535524500278623805719257678961294625745604841878868698242192109879655657258602417068217590274965562931831787363491522873334193405451860998728331130573682457058162384528331036412515811363525466000836432358953617889173603925313493179513691780888628703217485122815381741876719106493501418165625666401171364996695373370561407582228934439083154826491417404756860712311555277364967928370199189736617603665645871651055840885272595563646320660197221261707420985186433648204965653323466492780097682651495161045898880456543867526465169707176252722306460197835139235383344752702325261664117492870955097320797858635317219478254407226929860476878558958433340356909021538203340656296872340991168066654691798553195315342273835640138267339485822161036540749007848701972484308668267117347158367192901277662659090646215601449743223662933504634143851625895169783723410056209631447192453386969731058330202887423917075682621407631377031361604815822621224932768938884443005547882357899286541717790233091263597653196574778038842023531517610474355175075329487816531786592539055960958273485964657396553748236922195981420878007523522038560073091299184428463114932237869828944034473034478913508036142377342768996225194194390618911359087964184035444892374580687441541511924889697804769012295969410006030702883098506612571551867284691532547532271626957991721939888688265712464053118503529996960048833766514886184418780170874015207319337238053665333106562606246674848130100431982905344452147272688210385014273122291764193962134223808057075602520775290379627778746055080695404207174466487561103189378625867744991498549054107288415928531625169020266646141396564047880741740849903262336232071656091262685636897405413887002381051825234228578445183775304917015856062262337673537426941578612930013230261279942584412587431729744200714461212784513985519073754853796934317699240643529868418003952237683678165690110717715773558740493845492342033931889036413264765853379410035952997893854925374329915105450752195145275418864993576243584131454713537331706332957844309236160014849953181034585252540874032398204057818883486987370787363687237406124656543303020679479935274905312634758190625623268479056721572578944819785249844123088861428507755866781582548780812698450113998509937974137056011691870510933078984820324842398011270953665956847461663385145181853359978571938768947809909335958178491721962214337258640889568761316623058960166877426267159452565485422443465252894444013725680033267498009008740204278490532689333410089089138745975307479848903748314867629618527740039292481169335506849494660764470255429390501337367859293113254161503157061551315396244387813725654582454408615323838260735056235687026210265916106838167259653709656354804848093886284673670730895669218190692224374999197440507249067528609692068550091900672794376142672147995187637465098111813757600928762977826240891941711747957008386653821214937276165311810395508101827632777491259742164292708752082767768497967889118198384539798994849083147984393876515120609014360200512138692550050959865171171484091085386540429728940221660389416739705022285419307035880161026931271508266166439744967747584121557017576162765585085715855040992182633312769266947848706758247798630969162825932663912284276290999827781863078551474935687937601374787818340594139789930499932699330440648432997774567221240488223494343965990046558650796782353545928524158926662344115352364270098369561028363096066369786560523148443464069592435005965654725828046552861102479380392282538976322938233785152991978936099551857501360707759512069760018613578464616685167340830469706746295333613360346961957734107793120268930191799663827749915454356413734113550643026469483038718052394036090968117032742835299200613395058025736271936099166295668431669360917835344511078635721716453010144756538038959825173851798759051233681054321232390996212425011184547725448152721852589303969504989027894952241790021367474545979152448328898264892375273203659605083844474196015573679265448991556412891662387523083895153989962882662184567254808021966912847919431570329789770124674055575731970381866411342073711882589592434054200901612396871160709635910862972831892897425064867379562041091472345705443873541511830298004203105119776806459253835429570041703694655793501035933354147521460385249647311902496410246241362900851442772278262365728119640511172813653082094512941912839465223368834023218033770623018814824005433771018046981339988117000073607617967111724012325412552865711111043149142014171587901430840676061395964034656575714336080903811731210156446556909690955716741802663101660307571871306192478351444216924898248426952274956393063405071007397001593464822456506108131761611830439889964759672051387887695559786325566993042405511971279777978274992514051140291848943823650277820255388946000744147503092856062354765255570477135464825361175401593187958169608144681546465644142811839765967561858462575995841594002059428247015726985768585906914147706466794851592261425289356048191258050440778100614702011459213878551016399931467840054499762781910055665631709613772021473874895881735970367649251029203051914761812069073874599107206425361598247310991546243624962588262294088056434568737025906683688622583203254768170220268478004356226774474255564853980573738205569218061878650743017822097954366522417579617520352667571930280619265402409040449786185698391868169070135268345766127733525812586634660235230693177736349748603941770467622616491222383591675130314849183333162744507467679137275413830677647842342225375714446974454435915383157827147436870640160434319280059278862767616343366652338159341626506733202072305288141428620489709471755163729330783655822209455190791629772252715467945715420361169902600668781636582137237943043627122133052727389487438207151831938207876113411580361647674213326128770539888126163512321572060836871831221780745637681577309799915159296110286932865103166758080741422336241436323883490546995137469516220040686894348363789435050481891218315505335359196205253493126945539485675568550610340425552880149991620511566362530748042537714651291493541594407089827437157484972467379115884638406102686692469566064175284682991415928092890773133219390726805342657156456510062058527156563306951783114983216958799762601081046545459759449534793452666676932997911546335320501173789365168588766518151677218951641906926042307418821795787949075838814382061905401152575037198062274543338748922567499348816543744242462256529764758914721789931339361016887447225086700162362646193934978080639209811239756566056159559771789903628487883450410895183776321584221929722733725328186909680221568552934957064229008800710903548651993475621997799260215164363697894068987737742481467001636096298109772629934259551057631436968231549502236347218292175971233338691626012064380756731449732526736021121172178371153820472373529182414128272859209258232407902734786809690842510568079421636797985571117876135935097494020917343697434841813342083075544131665495380855025074954564915827252560075058093534623423248194103846246323037971424495410602900802906388866114330811509919042039162405788174932048951091015690906025021663823989129210420856103681862786868916125258081003816033646592363183844093357752040456255297814992362675116173746517802513112528794643588565583809065660744313675729975124201607102863995597343374614025354943241340740230825949517333894134011806346362561201952716943031852018711348980722749522928673674186080684969390679955808133463414914469310190702668907816706542380536779858285867565826405318467767425632318599310541262373054407671930477091647572457018419016227473327538955485037945081964007254462772983388817277941617437807286262087904709701007500246301171599227435312244844806485144858746997218406536272616800655165317623338858757989680211454674873989078689157413997690493091668009632324924208746896819643533184656738631403584441767298408522838620100253797375977171696127480282846081395988638780329999973230342434648564424170354267671012851210607111344072504995695868250950545105272604134130830777383751810320909122062727171903777063774620108666007137377997833503185165469986880221963102285088220009369957399840532157751275333995965000448560437104929522427168438605938477449472390272592123629264532767283967674734212092119378836098436555458742669714698853544433199515343030276675383378073473373700242150806005833047629341834004104217365088973271649709428273690876602035771357722999295480081277115162026631044019282075363093421315962949121655309175363184558259820257118836618630156518097201941938703870271918123387820867534848020562973470891569049091307185468018567610361067233930820657848998738777294620760295881441134184706539251510690103637690222931174493647271654942683509569947765363254199759226069766088591953247639591724842249584734151073889203876028312339562449619576655275119900388239404011079947172551572934305990331001599100913591143017669468560545121025452831120443990714805185106945195230763177010999849942869703897281447990718378639388193921460199271400810943154257957691863008172403718949088442818737049071434877261039202586427899358061385402502441795290995344652481839444030998511103343245328028529428152406998831416529581641110831301748043402905278917654281000366935809589915715926761696845670855002492097330231242478368614708178736664668721330959306122282091156383153899445152208636024850980891376992034467696803247365350670580103399353027366449312484833249547087841677515241732730324951834047394257484098212339932070131209416922629089748798350751463585618427730603144327660419426856305989255491648821595000844249113132235652149548889512472271894527660303931601241895177342612410452762397119205380526182647754325605169214181593449841237377198250926750373009794484551626501576638725294856166840706700914536286157206901885719059968886372997031726494226306592744133446471965913374115624634103929869281916039716620524825097527064797638129878606184115873164051681318061323558069495998569058002844703171178711805717717195682672991732702134442258516904867384663955831990514614691263031673349332913780613928939038120982959728448187660500069243895225696494876252266575972926568118403123779923989226258221794234106961172858068959159328399788553246962031078009920015006475792941950653666801623172625651033615346480712626244788399359641568204235210952192390725347589883496722763006227306628466073810442475304504256745792585744085364986382148874886811296249738976067961457912130149288724960700966073559040339384761140586069035638563866089797533859639370065000096362844585576008706645767416334485823114292010473710350176095715274697334990224191647764083658013230534343498553606040469345008655640484817732384425910986182556660732898017130761817287922105431520203497385946253146276280474012642598235262632107119234590099521928079931674708311284195191040533596357475119110029839351830727162018359727676720338045914731145250827429389950966614587001982205123181958991874769247088554005899210868602152833280880137901175506077343483134374623763990928021867544500998596655712676090223205015759226251158118607540404321486523765468209953417495198002968912758181765422243333532046383483956966293690562058422612142661428953242659889941108203981656780040295591618658045275226985703335231230158926879589285659787754330438201450383006227186471791329386603444645970503281117275374305953910671270555523659787828289881556013622752380188587853745184578947206722810937981806437199570985487679587801585432094749813252019704008463320028354358584618861016145835228100235284552635898286090823434770015933848390817556544366781440039494815915690653562277388391824147157213311301355545906874993426851410522576115832591403491283980147024580185962359002811855265953904340822259168908495754909792080367741524382976669166195511882514366760554852226116985209776281831755341609148644474526788215532548035394117101955770871726479389536075493169661457986108503924786079354763484345318175871542598395331730368135362708356294239446961768090340602101331982588201715068438018370283420108743381831496270316172096773792476747863058864878383845360507995797020453178202431725240863831677199457276525177601622100195087521263000269743057434449149581591790577180202383585317212562406675304592870479183180662674341225887991118532769056656088646130309487150124223173532193502884431960036016657221070931885992805292104667711907143622771200208964992142212231205895501042279412105537583865010547702207110583204707513537721098856029511573908674445642491999778547991372312252379918831088311160201315044675659145767833867235725038729735077408551531917511179079849450121046558705693955629867761252818726830878153920351401635612442768877054089186915520411188476746684108855863632481382600283026103514210975646928312753474513295420002996296481379906710115312952897910063057919067171513071206802869663285375865935726772858208937782159198892605114488863979941413296651762157446262319479172765202793159300450671976036338251902070871451658171787047540276490236300461458109383926315274006581301388615949717009189139527633552314525119436401972404539855251583634317350746751551804164176000576997152360162556462270811146709588521287123595661841303439824689298251570271767514625923801791318927389921292671179666032249970207930682815463991048822585224490592466673281353510022200972506153931589989857489839458676540541312357645650446838742973963549860770910075001381148540366152583386946802085752175698504443177325554069047594315447839519217175488837863297168334939909892544672552593269294425082498924866433684127292490448735762475520660509322791924690081781974563655474975957428686353081348535177555991160685149371234094612021990462220503136629122597893249465189589914750413858342883579504738154355246847490780481365947267844040491494991027873092523338001538355144342101426147299396515010842821982661523753253013412143204736618190603993863964068775533976406678540353810106095737423431351701144997117829432762236910436495174862087984222446097257623153864650700965207865041052564409467713091712224478428141671038169307249508843298112474633555036182780900995051088785819037434601114066605147994259226899715722730833319812923654881902375692202423211833173765817704776869488153398905661349835519936685057611426062438075696821068382495830447416295254238769090141366134619653309810009645377413442935195189982292275644588473627705879510376771395626768481443916541403973482532723004843895347710846324036426478407186356282720030907485851078721123796783017538313189546228896671475272936739922045138069245356793956804451553338907056676968174358988655685425823085483709071285852326830644600048839837958373349144410675885541249164552006361759580647029328803995049691104930920855453347693631903921749648809577772219217251914411603066048868383934870728476560878589629463184477299799485685745320996161140648039849138874275469792661915633332212015860830404489684066255251164268477436384640598421642370774609555160897451718613735941763014185776228084828773438448111047220169135273368182054911778679273282977901608586091893668214860622746794954251508291329720356904922685188418291078128597137683997392963004502478798421785091689529932053009748342052458389216908342291900758955934433973026723269104541437867362810643608567386510591322485346084828871086223966409416046763268737356836676653513623934028066715213005858429877949350020013222942298810030424164840351007115372912731130371043889677021884021980598514549196781340244635699432285188797427023397778142797918941642921763879583747606982034356299903787406469515331997323585679082729835064892928053680287181482269477913564534030400461700380670407453259751602268517763684810471389348050070056883474647574642045783918176490188350493109025433252343967861925490173154232802723725890435052315524148331333855201069260332930766097860293691165628374111942134709533205043831993158056986310832629169380800727282084663225685375501957855090127518967413486339864773174829715833336211783289154768774852792854030164877953784940559745864675405056443377722421499141100215937385321649566940393121029249623957447609019040527213702055276233264025037061055124704144875534466099691721146389010532255115729737841468981706686609784742498939475716210481501622873959978429437870342878058866610555085238511737080582654722248733249191440467934080831450371596296939009513241132902317876927928046180211387782907575143861740067457182254875740794549215798835266960664240254886499372033048370607111095631359018406371679506600145243770958676677365593578477004068532158003765926430128811608545952315825344953651847547283110294564594469026490252510946826801266058286882054726183214399956892443551651522135824642060534954715397771489002093905449995334633993597633569608290604744193509286411912079129111688279509311894063060690544971710469237451973200843206141256970770834658572641513965898180412546352384809758471412326846078854465419636470009667777645674237987915815688540831597473879117391084117406356365749848478123936063419576306546099222864804286215044194605985928188409209864858378608981709279334852930019994191112249209871150476614470060944528910024115924801076198108182100005774057691271512284814864853952824326257848989555368366076300335409717912035126141522851373832429102179981802391706938838269123405840658519852398112959429791671808067664996334062829355166126781887191304071280715735717893264510815547123484490970254503030594453448510970509899896250344808385220654533700452477530582763283379885505042162677347652548635848577170018005577665958237085033176759691338758152958881868334230493140489886349888616783391421443527776274452735259165276502137446933503050308598980661995623491048537232007813593148853416695051989460382158666309963869838331557321114796281470748577615031119094511380708744359420207376101782042119065843708717023041132981047546170417967394850727754248687286241082475281220133433492924354104702289503172891038712298092519525768635634378856319259213528792127485155808294437603564965895067230092940954851678950138435215470220145027841355356213483290624791603488070484146373201159336249500773659402003811230876103982390495540703665136712233014807689776539656530078880821053068345388902420744016961486035274381285788853132883049695436062107072727932177995942651624207816368898863778343296289049278974312351182559065800589757466758912236124754424735689068099951527149071826377280805917520382367787257771804293757188226637605991807092982066744719697440417142451918249675425529133850310481864830474195199241088617344432211754219186000124485262487913421467751344599634281378412456577868313554062270878971988723913337955413893691264897011546230271436569518938101115782913660688897908406919363156087574426715909796696169025881184164892948712915827284868312677157028023825817419399823490530582311887320840802462001268237140242146886614584081288596965938581964708804253573879059278910790371993640999302985762670701411479735670478273967592885822692835255433165743950026135292689700489701497851020194047835397041824085803798491811781128655454385013477513629495248653862404316542189848140517326308232819980086647095696822252663738481944949023062771567867158383409123393477911634341704433591742193369939553634449093054575812803530121995903184713914177165421140402424597237957210107258408694414842166416062171812423516225401687804540083202285901347122161270935609308610292137394284912836778884470158144818868126438408886661053450007853209909967857359502611365228987984454193979080453497109999362679879219351208883336348946426760341911015315142330391816738752070789483440074264076550579572494271930850639093409039538467607500561735086490759302629092344161916155157989430225443870522372842633900155504174857981537183128238099870571636602960671872820488361344828991611066061582924704662339332625306302033289889064278571570413307309801499025764973652838380607876412781691172746852189887217761113445425750666358973197667166448582159586644356501400946516096400219977329167488291059773374123249212914810808851852260577850196753610799671048428340435812323746438918272821803795202639848513134786456234763329172975445664415614337793445502883096513664946585096743686590432976845920979724746838605750858114664397536311483122712174583580749563132882812609026248434111060987539899114984835319748217985073660963670904265668522396558134863007610089679086426451658987616311188852440221367380476024684480877002436642983764704594855393259524063296902510375280413252753908828348592840775048290618629813383351827990004763348393664380784049140299141263906697350190762537302032108709840218042057548165948950422173757665822366878551376400161497785366252486428853947664920906807123937047394673148869129465081822969539345483968050791742167013394810756119875228546880804962847415137333593752243436277659101032042115867483608730453282280832349300870417135629880735066595646160379653718349164676266251522600275420659083367028008898371249587186068542146929648155707207522405417495244485564185317621283423798528952141346267905408113610708432595652844588229752676525833917882559010361346011403686232009837488405988471665602150575942557794151411109089593754326263432765690067493636824812029705771311777678533630263867369486321196252580589306549110496426230125825360570100109169620860226532517736646052475720324347212119292568098705411216895830432694313682244071973092710230452039630267885781058016140156821169537759939367811469411229818747864827101083353624756602747814508758113189997335617697882300128981800727159360540703209557432418980520095164685515523767655098618717021234286211249883772294521832650369568771752547646701509815079844620092304925835008667194732233689514792866837706638691763696833286880934204800976095728676331259505431854705922211733225699609465697079142539585532638946305482957980532851819272472886460112295051887915883568447820494196900784762414548757693563054016238304044090333086672578627502882169693019048881670282220075650354352241179347611754941683380128758577921605311931725170842048787225686494321564013662050158120768982720542841966845217877023184258377343384020142497887047295109694005505301848317865661870217131762030346892692182367737815357310861108971008166184172732517055780203319838955874838926117282516254663051216992074739793565917858539546728030365319743061068839795360076235579335679921309169910350590609221815544005050060244108331566079908651521364009542718887110919367908112457338249090465466633070686071590647285977347614316377998366097039309357686527087351062742471705288130900543922651732297071901527673736548734945650421390533552598723375709563132571035883773403773340646428710962951634820705668934517886119999512924925956730210056400620410009615252140022531982938998441777455339254559152253083215207610114645773765885472267497465816044763170851475794470309514420138250838245226092012198456637567751053126435495530158146510104094981488023107757369614499713972596697035883362439067682663371997586811712873731637419278976202540049220700238088392379364900695203225198233510535721486321281717854588093015148272476443597358567947129947310806827790037122867434317242233651131636573765195484730619472757355469393980183765455525096707813555390710560255140285086527838979862659835111706716523703309173487512984261569281553311103574050121666716531787393987340439139941255045954311245825194649336537953218654568601783156662796883696565138367946868019498885460772919945606959172715075919498516500362207122355100916647231511894125402095989062029343104185195123842714008205611735742460259599630609407283555352379628973800464691266733414290030279825955633611970058343695437686462896234992493042429632065923710120669372357578446818395591716579255113450352254880282788471507557884732622147416916560238686049626496775354829520481849943235311825630103774072948020990311794221094492499248985364340515876237323018284212004573186747375530133422443067796277532262453123813176638539696852709740821499400318320338179134863698992830068573066365938606721098723038615509940315460505234019691958425322743952009801491167006406682087647746414519578805555438805532109323136361722745447237117181013467354601978239469774568307444652094150358316566541679617350614059132346665208899394991349976384079641957232394004034550974770647494754154881016797006747061584442452585037866549131997153960857164339535637992493651176401120275722047361631054353665383111673188262508438262945330229887244275901675576079309439848397206942391023115634065073925098344791427479331741817611181823575905122809677694840373061311930928983863360384173093311572788829769996249076033893289562737989872768447108695731871193240463225648229556558561315674552560687787495835705256833884242168818249622972125551963199442242377789570335714834895722173725497507807773671042183064178608170545049900202917036466539443053969367315405296459873527133752491745137508972526183974293262660458112612788799744798185052909131367088626994294074957879964294741832818777289063243498112240737766338183213930490588343036056794852095174019880138511688736891908999130743341586851547218620343039014280564865025713763876340048001169243967484297926690443243644724191043131902677748593881718719127998635347059699756680004664296385200108483035649669240390413763031077274932559891771898349432266393649177770095414272921456541739538935766367944906753872533208121020421916880506169856210018274463991258937662500874499095974650412512077655092869801652959503401418452751660572792950271859089571786664303418520671127076684289192366087847186167184913929659200907918950375057821102548505605844827939610375185823183584642498844863535961339335098196921779087039968913460912039791545029682908502873412688644531720245535861799415973874160399232157126996136508265283130710101630741211329809044559436962219361713375805924188788517313086183055547580049343757259108016116881295884405165094949116594015905708318970587365737214199734217646134229469136383975794619252156494245051926747696686880841242285865246735398237825427646964093470795085872385842410127237634693293286116939200180999208499728300238041985041114096768858912414418830661516371321092141390462099841429702950628177072733796368319271723667936544728533253158999052546760144749412212897956548762971799638954612422288749823408085386224230676982896829621335180841915915807431513202978480366079980024133956155190936945617952486010907551441898282617801016139581963151964657811070411194189002590957707803180443906432301189276198041635514464309522056787588099418062112890799953369372580775916921297419722927786580146718888608575772761791343373234225971808091394077749945575018229944224599438286536734913771403826632641913495500369542594483855220743856624917851300056293065071234335799301615923855815277921932980928592368497802014784832341183277662482929649697622202707827950769029056944724659793201467410673098267113732576532001230250502137816231319670882019065266454410977478659682857741854522133403073694717244460072394734744547594077135286908434628478576828353587974685829658030271259779706140150265590422216929193614510341203906937358887832953104966870220740929411797871277050643503219668863180199158783619509102590198788207839864357851562569307951968744314275854192042225715386364914136225947678211255241940588789825590635322811926427634911258737480723408116170362880164214214190865589428351342044429236323123670569719769221521654345712135492449995979135971322291320477013188731134201609695214718907186295381273555394469548439210232719715807312616761942250706151501946078138678969357621141251359058325055660367687409050560380340226717730287447630586321229099005328323696559533720561175256371215049365825226015866124044183279765357352067044760607538400487675753614291368696050025745088992404856050876695531898045955132515949624308664452582425898791355516426010149440942044462773975570085114879540187766777955181652582527310998182279715539098225059321527544828618334344578094086285100585200781634102230274162626366714138188282735461788584106956455362182076965416626691105394363270909432403889570111078684338867698307617813271163133450472957457585175653991398577400525903704976033267544048130999684853802118313724887854903966221093085592102987105171926845990870633363153160137708548991824616289100013632558793805996095639912609941832560876244683037926749842708760024108930490722386062366688105922795514667797583991417884697478290925709785670170826730878775155923549902610024281586345896775306675045248750201578487686770968963638178549777204678833677233026586992069640123849306592504726839277928044619260386143262548041406147846958841821966805161462438663116072711597435480527616990658414619610682715053221799689273441222177102598666199643462692952447974609441714404032140386678735853111686540700639714706215196062513224899087737287377614714563615639959687556337969785664766985428424909189682824713268886568158932853086844644260244530954086679593785308509061517117939765023567518445499791508813538697164559269125145305432349279566778247999306983108229211084579569422210668128102781783561202218022642640597144261417028933229381692682110466281925084911256827448759885216296313858324676609783156143484407309939880901980997599831036645363702826633591750307474383145541475604482548184180167456504018424653868610021489223805850404230262471794084972685189434067707591390691749005183708746703365870690755464211279847802923777363618634602475870197926029364653361141267540476026771891102666469886539026845290424290669493041998703578694522920714089908887252630016351702887955356807695449118023643435285753886961595861977144202661724011289065625122963327757463548040622778162981177978660286860931544969854784833740960862821446563380965010337203812989184443490767773853077892974809372213452183401939382077154747986138122410606463651788298959532602852719953741457755138052946557542554877353892108464834742862681647773358382069195702553335570454172819206389774103870951773541322986016387639369364445055886223544388180664066140845324791240286145258532531337995260830273485744710590965850391489314340666962354375717899907934063567873087281910740739704508161303763043379441624380218759114941789945539451480372854246002426787739391670266176454734955916512559411662899799099580245412243325425013306648546968769895087388746145365485170749344029614824442798066535861446595391234457837132078181952996767430522838184751205254396703166825902343927646075814054504811875903103840629245801201835698981943662551565950838397410123841977852513343155271712977095186653704852288735605669393099675034120711255553016585668741143997795416014489662228444873934033555363589375857981740067785186923046478667930968138029566031346054804725149025291072635100294428746726301387807190693398095964150129796479069399956213026371258541276216180362808998779756536543117957671823598101091780032352577364543437980943510404987082780399463589250808248914247135817186287309672749807567446574163264567397700576156522862164872616167910510189065156030641557031208827612549486826450601227008165075542149694808040208920326066408931959622228291241707877574110482741425829044219855309744641805915808380279257622988454849278923231398959093605992514134856773549384038230288442327984580933486794390320363884176317419115751313145023596344586366406145813933427652394936060716400199369773223166577691238653480594107471398100611148144956186231174589521870079458909978311077320644597949714539247583740736979890041830629528913855691254344377426464848126183917409924612079392391415710157221824228873195966474191102333479856160350233128649489648062034338972962828653804066372068541299236793619482785411704505293650066497211748843141502000358707895310615803681400791558049837677884036070033142647420445086970080927546985046805163815329677745518687880338716956910637649953797367968256260276677148100061315315750632435602817480570167922941926069137134786231739891704502744369102185011716846992453756727590038133863708072522276277455158771958912558553958979786417724007470337469042774666503058205087998385651271056360687185127670792292774089283046965593992858258737099318054623612429414381882789928435309461999402333408224553362640222935934496572138578902593013581200616515015252944914963278842173523364326063259549656735588736264971597436909800039321189506740245163005992205852093893267425311940767162213852516886022843823967727640738008534346006388751417689294792972044233394590899267664282358514360311827967397357141210876076691221819606020720505566034975770758760065496452955124986859058021666944041238140874487782845738225973617625361801350614517526350209322964903964194062396533187495137552057902053404039226402733991703797729827239421729835175041306345386674148468232280229805064762005700211662957904115330979274254198572789804897463616654524514651054644953725824332930880031552598039271233685335977464273621135110849738826407802590935446518143773422829236313950435395619397559213114506760851828927586037533907281580062214085985426510378799122285286980827940709633024108744764494569266122470539155778489798668790666951111809239183512549535423079237239134293783206712803003423874367008482088579014486942142331623038212776258034298351009297656609452498191648892220981909800859443404851894149299461568918379392250352061585047514115244652070211544859170823395774522963842033443504340814273933615183537505883438119747626444577026646756718821556706895276030911909734265066861624215191610810265472240631414832180669076212742133874395256431027710276088081041196278006996007268130781488050484074858688280533763859129207429516433218934187121412103169424299788508158885950717025118028925537384794433421641228370339666224582560773445268969515783452558348360986241304327175757956334300086357260812895562459058682855737967139758748550486499769663318239527672549045352221025129773565798171534188966251033290595167466846922340856111023269734297038418168455217322158277221772086802261117516178495205559836132796157323988188833327302817879195935365386532470225418509653233618029477291513228688835515398413958021042251475656505817389673240303145935082897908090662556687056750063693161432780355234964792804131183105620405865033819019830517059408067171075494159085218061862553780670112788508568685733830014965487611619412987593388678073418234704447113971356452261677814525671523543887413181964952347203844573091526417746640011874185591159847500391295170351252150282715712446807995357568216476844311231464121166477440670568833722161646536633150681505393265079537199226271262293530532753995647013646740626397873087120521698237935460456131202803486430752372969845916138310332567688566535790091561950951365231547568602589714623570647295651054513345604302407649073881645724770875350279014212641836851732281655584223591303727840307998985209059615705999854377495233590702722604489754582522795238779330437229847540951091597482065221925840956869627900034165885055528347396179222499154121684920150734291004206379290774913614391608471902184461125413593425085624132869623670808608612394648942163700229676045984997449665171567108588534739936373194833776139003418796390844840760395260326458901606280652324069718689009153344876046958727280357056413489885121948347589180025965514268951345786408847240862510376270204040582404205287680542446341603941570613476098614880292177365666703829828673248615856592422309248436884442397783312269328112319537261903836779885496163507683466458550717903399461460082922035193276253875674821259446587981216404512164352913789824110112551128823026260893768868265780617559405136524574653734070379745612727406002709162257924759728757507863773630124837498006152285275839894495086701784019289857789554641612574686640435335348171869464780735680264685213123931838067113804660829986252280546051035938270286096084862000666458482049248132001494389956970219169969933201141568936659124988284541402480790009754495515996724049202848154565438503795452829594420588350091490932025704604129572340910175559587773162215390599772896907623039440831829364973669074609415172637944128718655079105158521165762749822437058580806570256343743677640730584206670959812418798207950349418754354755016885566027377746897809551032440431290510157446915986695548119653176496510626621490559558499473594392896213171346898466627278195940982890917361077335963180880350557768785815220327023561306239822523045670074730185385114956698909251241491719020661083093733461172495844744216388029447878470167535543025604930840797354440642983396469665195284600343103061995174026144209886286786143410429158961691587633282797471436070287769787145659822566818750216564218913344388607386270511393464351010934550463933327794216275162416684811663378715529867381648626697132768427579710568898283594190810557567489121603949112174423604875757179593138674941537108196126212811539178562436432206650499413940770722666650655201230495504398310099586382711627892896301753700332409209800038892812009044224338826675240719893922171455576072825439929243451151922562691023028305391605459858262993814623231686712704551340131015126032526323796514607650444865678407115061525256617038437395215414145386518245776672148214147993623407321217030360841694955671341560849037850604741132545875864315478001545466648700403822751391638339806464752953385760223650455024334496383478900056798505773836419626227941887616806441072684763042144333229353046492710374619864364114653248009432823382882461720873878150596073588648006433340640582013583323124842904422675313022457679645545530633302490446707342829885137110378653930363168262647617615171811544324344523198855706482723869377151920443737111588804104576451119655150243063918010752077062745413076065572329628215993950113450620539969606378988714285366204820685663535422532983348552738141763078762853331088509620825563405901604460972725846449780009101591156098090576344793329161099726659451768239401821759382353581798270710939831906667673503675069984094742728778448657185363316800109658403000691769193726675632279194201640592838526375581317636713208053793063759702979426013100871238655625962296742152592412906333172004813198445791810179844672120980399236381376020959232887543636403716381845293816543168510743799075340188231658427580231008087235276341481761235413641085695790639097589962966417849120781908285169299996141168532389845025649872526746994899873100888152028369073672121061340779189075914486622925151990746074056174298428087001142682671553090357287342168505344304818292336648525642020329393373526959549476173078318049324435942874173682833882757515104591416867265564268223577094383834367307524639792018237866258527451673261299602241984143805117773360419743234504577603061431508093136682134782140721442041490392701545899028358733525273897060302678415700893822186464130534647062994271694014123263299701967004816937277465480336266552152283566640130947505074212837320045083877826521650135163008490299155934235963923453592459509422990189327847416309991331019380840623339022274196258641310892371226793053930258542465891416272778520227523537227585003457351802229288552275224016614143714195954257466171184613235621449959640678510571342031525898319146500705109616515490095234260528143636762761947069573974299588067102780031829954822114681204724728660183659781393680911794911012359596056960436385456449754966337273870617766577567177297601269034825901274826875818578710170042521600808453110536021357797349501416904249313795510011798795114506453318626308794547190441338414541884173695307140236658943838396298363228840875496413052758483941311030050535915405819029450951260879799674051788268683121747011735706845795589188252352803350679841370258571700151483715642464423937852562569013831605707312289265244803384243227464879260537239325563824245809127465546360889884543525095732396639527348137960085011365184869138186125778046479997678434467028623730262422139362762238719711348276350717405509080676654769935334340489761464746076234308579430539354085430835073914903014957687903654039524673485363136403062318120900200357314222146524197893778899359421702991592254551549769962110117807319422239597113859651607455171599520833314534348287266366071157815783349239073919919502066993140396034093860744382746581548300958345143725133662395438227287367720113763583664744093179563394291374147041474199109617259326777159094805480195963679981943500534827068121410615583494697526149788276838142047652517892647420960317055895810536419854425278979843646733723474288894200925635599511653476547762851244970011972353674626432459468659085433575876531278075119157580650449889685360970977050127851974796266514514423119669880786878456149103712558964127515479884883723031728636000026943440760539676724587944864133501329420773516661840109358860799017354734537704427863596041531622613145342665860212172772774090332060107920145322568821421641216088552453623409739508343257197761204321210813929933681983192994352321913481034519077048992638597766006394137648356369841722326301503500431697301273673435936906222700101176545034224860498080891229057489742804458319758121923177693798278608154077652145190335028016105496513742781246956415541897903584874829664870466302413352726171949862413673230189315180085825877921574446635582477939520847574650485301503029696351952045511247402799527231412788741901661923485986857766268587124490648580851215385878218227830174006432477546954741290053851787485926484680752826511989893771394872997416948379768793259229060383563796253182144365726458628147123200287866899671461250771687138061796166423267340456197071148986309651697565639182021798457686673339590524763552698380697810814263882382773773029021148405928936505669016890138337728893582852740120853356609812664614285527979250024271519049085432134171055527583581912739002415419365514707887998731365561646874518802666285844341596719835546577201767432203837189116792311091882881048360031146586401652671340218501328611269012529343385539185203354526148848489939435448551233790371713388874047370443818030731539533391214002820720221704312955752447919840543778836961451368846883726111447380865056509524268123108994369203791165802562941239438277892108412674992069303018717121383629136706494829866952811137234579144482510355847410132807966773110023204820783865064007964871519417855019924151058040799955390585345818823046326602373550835419253960088557085484083947618306471960931440961838399361190480560532178878197113878213679999913329820936274247647331401248415951460104582883810706134833904749839710736540525359400620671498099802207318148768320751166218953967366183833448238529965082534758490931353260652051277431985788440243748283733972794727611193477951192155448356880162178460406702286687663062901511049230705594438186814226023633771182501619871081693253620369568669902946505585010418407937600278989555152024038156074220214611998230803071657984850434977442933931116373379971256920068108142143125027628139150773119292144760901382256387161345245888578490390184716808298280705532874218330374279321708775780890005269266852504752821341315552255954405956311009898935902304072571473514237165065232081600732082044033972532820540116801459596328258713037873356307528318698795915996779952031544535740578049330468165577889418844274769256801505463365806756312316863272469018567344638316279268396384388234697340218308417059422476919136580830946405857444058961699235394514533849504343389294126396348263887605923351087964889715538381517014046424243712856013628102849763160135483832726115899104374950676156490686885400036341659634640324503461070773534110212012011449362205892117486491754455360026469130594373074699064812291309161331389254468676212729377700694468242911855045922812034854370982384919512438705074625217699147075192532655393530627586743903531934025659034966380524859310572684752140662665291754886854049496428620626458564167978372760856890789539651646365645074746996732572817695073251029987229347599968691769949047163379757718871806169370572402277017298308392161986150335796394589284464369021485735619166722830324193351660606416252664889046671912862729106695124343516869539468468519710357588642441570845744985456809818730121984769135136426969643806678753407740430713303436252391113697381776287002410444007340788980102782358635706572346762506904368961641200738763358432290393311343144507833207500641776733214094507041381523751438114700107525091509370464973545758655957021136511733338368066586990683691881357194802554430039926061110789774632998159230702410468002266320186765022354813223987094387541345339964800967349521452201005071631661446170699272425724115719225559777672170493169898238368767277292652101456726763979456058192635283542702492525986744281299790939306954647266216625633688039288694810587347481834576071663674708153084780234818262048952733680031396932857575176613121367015180832970594910682310687982985188952314471442807987865913822692523697622572093029072770308084534750924650943786906286225546093535857129773503031466083532152301562069653383177846296421646444253790602686240805045669465663491961107766713163671344207918452117391596029451625912273918813518870594678023855763069671504831108194214654292757828488562161591538086172376072318388048432058098485859030255184843390169509467518025223325320192281359114771252272559586190592670692753943107304679266897291155952026031529029164523786234891422687451442644359584501201539811591142117326041287826005463623837598759837158111411956046114784096764287346979108770373793919848256469195949082600822664942694644432166264524815949477346697300736313491425377480475691336441500242036260729519300673482835053592135409725422250675583449897679701843094007149301714646458567729889578601774388125235285150460592360599917820308462060661657554569973816811842758422527613134802420244814730134860872072772561393434493093209818887803939062627735656109027652056092727388288090115855435577007164520500570202855722238974704383718563412082587291653892890217976074249642712009310355413671364706631598419602119262818066496823156149345208684914003349643278525727563652428599061815440619864465618722333686559434091019398260252975410852126859973974409169397943089791895845169651711378875015947064506378023066151123582612961114108871506830242592396037073284769734775507989560470797879001271206510153221713907718597267110703604050589457438678343632239045232114510193345745581392212613520575964676265150713386767897809104385290660602921040955343768301163020111623793792613218355077022526545656852433291357600611685511119588206278229784023343342224857473185634545639947036954206500849773746322430389712747577339331219234952765036306367235737340022573364327625853124776986530080659711475438949700552269518441121047560818431575646141160597169487372772520820149993456439655280441848723144793737625536740893488139670810607523400341777508164021345999133978782278416271688617683934605999356716741195618458371518493627386386939213922423411779066615273046840567884521644357044054970090919898968161664328302349125988488144315898513422400510438359591056874086484759902450526240968458901121167064717412222632139471438156029722565271298504024421839614262028298439490114431149101441868881951233603619156993893994204030950748684724152200608848354902667733878289615702100714129770377360499316002650033003327869855284321980108262751393339507606259380936714874668687592943477884158661820958546848787854623767407692121573805935904093230534321200955690637928133873780442899658953688719577898523393602108065816623514606656876849045198323568717479742430463004936469551654183889710094826560527993548391981456614023479650209274036755726079524549436846724205365104758911620564080357744713828660754535923601604121315290027320243591104289431734376589672547771246885111257981348109644223975817857067127333687493057320475915707138360040415225414682379964303945770966336586505433791735186856059122910896410421439087725210155905378123510541778068144603634046989463303083124956871300259154180222250590771638118391342185618832265209927410097342246276326711389084641849456290855957367768716216149048182317201373399671451015476103384197323506934253806502487312109868420637100328399070969295042207946731648034888780110486282942156576624893412603441693431159044878165528921499674803538147255444724091083570029704641361401672281345367607975921591647930978775279723928871324816910026978164462847141346077966762173681889765879669547112748842193469487063221367880019775795708105411831464226339364492515616834824469237691517625027446323998671111971506640741651417324470096928464936571637269091163470815018452517537720501133697038868473718491118010967017723092745830449987030365586884711716618404089896119870130614071674564682009466715567767475098805470682516076230520599502664708397000529948554432062745974390683519623154311165152890783079492279194498337905502450066477533853051433226818095000531517664613575327434922018373993818071640661230951674491863691918463224245836224491517516375020905247968988976191658483320741016425217764393608606908429026740799395654000375049894598937028201341525152241610614352542235608348808535822758422738785923551953493030323534336176201314265351828075935693827246263628090791114322133017726666647791981924582629671155486496912397560045440649941977824224416476765087516494379084636540558073618502126340045568542529588897420567893561542908736845612833825193878301284569829133676687427664131022507080703012267088091354657917551444626160322613704467544208155576013937577194420692674901514290849589392708569033854052131324884071618222192708970772116669552356102590077604778686185530900377783240758343521752572553482035975925881657410651552889108258066980939248548591168390330257765969065645452002908582797289142688691365085201834376124797561592668725797787249309242528899140742171894674485140730178516188979319262273513893294842448092612480296132975753010848602239601800843671270855564825871278869343272539136252551556920672065213845072050996458102172882852229422253942303175419376012518244973326565273280058113633315697541116249442411818321513595141442630529553512164583317202782050916694248964557738931879429520519276649254661084706390885330432653540368928160894740799691996560876799074632124154766147749887994076671556741450113542242567583190589797542121272337183668555977530543715275390024560053676862740752874749196023487182780413515601204083400935069188997958317685553444722254760100521083558931684228172228072260137132445135151770827029071838451974392427147862038015919664119461493302249532105467632815515852479719706379217830520880479691341060898735365687954128680369026082461483183533514596041842911775997666532714929529925287048846349513164182064938627609056093099067522530651322791103054031106504773313071411270740834730838952162543712961383816871150574222865477359081851231872749334037112688770675619400323414471098698800162529919510315106950007365288611051503719323009706555518861269675290669124037422722663245020673868690149628095998175476343038292899830501650592829508799584420696958553698314804601244927593940044500687029752190476555028225492388035699507492929610341557182875019764659633208052175920416783650131995378593884128829605261748042570209103169465993187116694946462211117205537362062218947260416573002552309198664862429190821223846986716723541547264845093987844317459509862991859904395829892002909346588475901364956594594521758571960249086157193811220712077438066566896634764969362843570617376081019989002731335465024843596749228706042024994550883847709231610254553176625696004594909702742914640608452878377368600209035929858484317658279100187482131707775274859307995065351205062433247357376484242265766832895063665639609915773409813151604136352005222018596526052868700047402827922967705159526470418795235412140568643862457131898177367986151436003611721105960119335852762489648881777234627604494671708040296691931634354104436644945706956732659807987777346304766213972806620239368443368618481842939239827962661013626577092481366122237831522873473833679868589234075446656922516765495793166322876169273300982117150986941992288978549782764206398746501844833422546867827859538100224303675137122049711685740228457016121886764061516140185449491763598183308738917702552681968766092901547827544909360341838708232702285001132083724194517142959087727189488519846222459244619835833433903571248000134570516510965255249249601058979760815615195507717402752954536938757468530845381202322077741870957904027572247190972158694675866757975988798214447453552604992213133509357787133510727115965831630181506788773699633724358178909779753268296773625859771521497923077705364111535319888642479374801496545196757238645420672194650654179668979091411349630368794360263542316700651565318089583326503270429409386957605064186366376958921789647559516204684311199760311029562474934820517857397611666161805108819364793253521848563673195903509185820024517949949967720007859694612825668815271916630905234987149055532168008056145228877050602388397658651957916339294966401245038116601834413694305718222854054739755222817856619534342606664318269763891089369781384405468774525640887414951298394953434267757383352075436464557859600257182480377045840279788616818576459077823224743760345222674878176211791654276183760294281555726331466813154737539524565295469534348994979749347285621264140486376235019772955627473099282904038927599893114904070243857289862236926833108837703795189391045123247901681870178189651984194740476760759649131026522851813350905723441733272127836002266332173531653253681079238783677925361545013307907477620325875555863081177916017434717448340395630417048086709616504458001240042357553093559236977500259632808362750189734657564562583834670369908211185798967478528248331366943544299538997471025008280725583757375325004788764046072601255472600073200892547722538312954913803372327534715741755807346091596173428406153707033037338484377800464673925563271884758995389824551789664238526227740816675535027739060655299692098665508049978538100406052388460562888723963176078284683568420422744815724959901768855315826400061329332332856704839795881857035298443700378365704675200252838261046252190212699341810120204995537756564252769563950107894531333693680305755445312061590164489478139472829291803194979548966079312754040309163989748645655166908151034078182919175955780371992884887607603793901098947410016601726437971269665694393346055395005171696545714051243441866127641990727637198975015502611160734809521757805939510235147683683289679418492141640436480211604109426421555845034721418372012027269851724065071257567654029979262862555681621762992471820552968923240422207719400962885633966723679589533630156658828007118714025969022261150817211890487603421561262442160380697889848577867209072972154930309400984284420353279424013385097604180860142838006350633319537593900119202821585675007918690281688345054319943931272433031636652074545213083653051272228448084181828331462774043199291317619125607969568924670325864133145863927502534306177731228253728533632730169834439435643851097702837745501269085987197078565188012047445285822898230616514409187578540596911099771427759924425073321091512160759399060345923430584305229981031889332823862548251262288538876103250258045003065892022049965829116275717197751937226395003780822134159605523346105425968917556988097178284997208037004506100930028355184410887931564033185172495049592139415904677686768935743728035688960378459911949072069751574182932039575491590994733528482605075638093334269588486369287983541856222389493908022436830124404285634890581018185557703383701751501469848825413323119004129982883294084058515295166418926780795082266988211256072921471160879774948951973360263344506233693086850901427951827801305133117566792536378739501471720743423700308157973346278297147731671078352092307324682122522441691471562786085141666051849879615847022383171664990730658232189626406992258283074118080106165424140144379787350551857492172647462950700295384535256758517296536577741980030857652005756314052319949922157024295202497381826509693013693716955930429658384551107270425929793298788217301988748726681743412613299910624498766998981662669117200780665165567304176244262292756520349500003949559059309734655728460905340301826989808722262734539870465996017697723312576247079800417634181324084759564047320041037840973078819388994646398439956104290390358137454637772748343085749550095260038575287327320796674713999146060585995271541935252090680932686493808657242594287901055165185636465945696208292386837625084432191466752171997401200202705316806890385727284244389804610207804749862563015236100639506837133233865098239103322897368957732951234308386693046641292529302555841732753535937541352415022570437456424487429703191849654115911996451512490461802398965053483793292230434213029403870181148155687012277072197618599108772734959556546237504838347191148800484698146927458401931217759325731281868734000319700854317451345422681793234626237592924759434669938136262667491258936383938869850024668089084705222758417577481460091511294519324630980274894872373727104262813475720991992862608659624643408996680663450515732814895504540634937325033792298008812902898702711506086011253389299039013027593889661897945146389890478673963095152995257450662070068453913140982466007053979174387754859168407585940872179528944072323118188581336031167195703387646749026296913819368384257737819458975468331356488034252046353293382710489585270218965900720102776167847176883676614881117906059081579561474223759970991013297097665984652432049709566248547728397139800365550565700646420113612693538943688560822153569299851397982588915213079001908534284999827275131967799608001575295828937605262753326454422401715498363974064023106691591133311619555468841263656265267325617661185415558149772372752352302527335158380177878064972904372872740114003488506673238134428684448015765319174623430479198830142707849859235191713594575022262833113220993756768533165159650299025165538454147318135484805894255400540673746535076445593934168736159998232412532189433923445426130193980378563758861943029061865247304118128149477469922710489616400516910795579142618308566407409374698155959380796252356258295407811645832866874379443732507895777428434864246988345332211906870431819915026862253237385410130972097782859984273126936127710636551863249140579867111031794179178844261381944452698884203910651607499859750319853565536701148638655196541932168742274866599700161786779893318798923975431593818797593606051897300111063531337611322335087225514828977307159686838174736156143419601385233068351008933453886878503073139594710381317964600991433546348436687115128667822408665051459535600237890131794786508280879177194096384740185233362079057143021615260860444940408463495353472219257141935530618834688101321014565141231728054227898046897580187582818641853909642494811957284674898843412805945794614815150468360325506448898332348177890015279521148688224484044364384427494366640237077104174643546443270141581960887686254794701423074720066466061406138895482137728862297408800820820749627729815806280314324431222569648297977841597943399800211097773765784961094222264577205516859869516767263718410980547855202910731190724750121266003804323329955278879721305387829551034220136547032896645573830471766234174267750444251528286291070006934478122826206345148640870506412963077756308741696869897230179198699682661045480986006227976137787352875528998292033256200614682171570083162653640948062473115022419311110938707298396271705968571006797550509870307717623860226642809683827409874759026171853200558622992927301316909439381886505519935806745052622588067463218979222117028045044136197648238185819143705188399212696454691596822632039804649514984322862941640103942293650000660053306102102739983552556936472318957658873496140129988180531223061507282339521418832347144306841889793601211790768105473853871946513175171091008032360375178150305170105019639799201788222137792610811352767491116578943082758344214876186230732807660392188263381391362616234080383536409013336977930879607816976691052188911021927564422655650548786780387531235167837405840012128932476690003984198819436695571808815273283573414116291774348725801833493650622104085934831638166145295194881373878995230494991030903638383795497926154398187575167661573243326545584367302745550367146744213274339135650221770030219956311735632181159912057666113414727396611419619809094434062208238625931871247862531889757284796522881376661884140751215478494245103542402838333229024583434223885408618274664182371757417020254698870757233613843200391133743373739528150195774314119288066217481510665253219306253204970271583122316050484187809182741424885072282850227889963481053768086092508137664502567446361928526696615762449180844428836294257706366365313857426435147665531519056743191409813384149546017474555151929963294777374641577228901359601090991209775318596204176654257958144981663792814886727469362724222702877223981125820043907200600773437474162818569768373260336020867633234947892844041251968735601618252296892172541552487547906893656506981770864146189079450651708663460071289241152332131731654257539265066002062296861264536533549992817476413874176820973588338479375333225736373923287029855338486719659985187104600919597625151359838093909091534158993696601434842285827830306790727283150929967257965245752289143224836628473158284965040745664225917320303432073030961595497942120909833771124810566355611267285120013079354859878674338225170663517048560694616252857312652599606672163030872625838156130549188507799945433621038674741013182266671543152853749097711532513219578628198607354658483225236743510443559398217284914519748888950898544864054714308515642141196189216785179586228477110429698692412424579583832435472390933091711895199185750447566964648923425170421213783655168445387262495207557088133678146944118362290483147958151206348152689665763905772069761476103856558533094413611262743352164563415722492138081362784934086102734506550378048199002573221986817562743460360096793372726207006903974860174859519455269174168028060547936748006350181292306592177746316363685748087422699977385779890934255007982835603671246805786522604108057380939612083355646268162957267355138113158227899722674500791305093259041387393687154211580409592761980555850931207108056773431780112389456429222215341652232483673468716723905785594678348176231310242083230358852784014699055158412615144676896729451714389302774274225168738164905715424863036130361831051846052227572689593642969071674520425442432809405145154256548846944311696709900284923607339848731915049027033360427160500295161391898037982041567947549342383380832636228193274261272783277979957721586713765991848498223220648853559785715685714063694259879679844154291793762253500274558391358661917118698820472897696960916825043766307458701267329318513641919657609285755651032563169370928959816362212137669882223868672251247779291854133045208763419174843477733833275628101221892336018086775525012703892200470543970921668493327943682852809931990415521096632609624851946906866877854574814842584092297041124802553413339247511407389713480770806409344239064372334856883138567936164382017297769364819702654948278965961536782515112488588272641368268004809758199497287084195947687529775455261164757407047069484748474350806067869447698354737592273188515063783849987722452061365311889392354722880165913510147012296914195239738155579780646533231112703960016628625102477066720195994686930405421966921327959741536780508564497819757756406876327491808306369359524378652959598444974254161334141964906696527240553019574757760055106971716630348371777771078809218729539091816296191503938540989269355017197610574978871877807834948538024798283664787521731317103204403960194780653513430499811550019378266743968732840373049244224615487291697789190649013495687586465898183812205638871596710983714203130781909912993286192559821151152928069597677061199156170764161043877906155816554905666354089775780234847509535585638057142436935231753902294054528957055568305826368033118535952046484108091392529903411995077451398647212659468305382889306364673300994786488574647838652183110106797057839148597423862277718258030431562850364952946447232296652917938952203462269317061597726013049715222573020954696796555047880540231316915362097615480142166081874521920827553553223668898397476256804693269575294986523169972227728324120155748710718623631318249484646324241600441246105076963428406921022131343882060761392890268903778897022535060785837740564357550854823548656076835756317561091416118293210139009015348051571837713412756375425448887770394591453017904093993532983042705516180826849281531056761149350510467155057148870550095198266540856732277672230476324890090630365856266894081766161663010539979906610998015904509495019124572417795751780218789769098011804712803926521067716248122200951855317510273724651121218401937762976563086766710551949012063426754149614792996477312595087572050756873965449358266572592498901840551550820928808941539566743160738961841219310426739937852789027776472022758145652535922723836277934604022060768019039458373166968910100036780895585896162509897936340707461073191155377509804503375720128096874899098569612530565669427002706201415560838734036426859479998462016923332467057321719228110377461101117444509286912482233332704856985241170935672091440101112356944064463037994726251628395815790500661245356736300569931980157185307225767722520261863762306442022718916959043038646844752725431391776503793621575040508816607500775543656697021205792681499085682449396580090523186022191667010998639487176085682471952509882777614362348942820773198615814540069798279144647255031930692239656454949141889858736459992809498782268601465079952861805558569878027609389860304515250688223179158099442187501893493389625402979533906571572272371148012232496466790172034676313217969838433757173322463743922875651515397098222071664034974642080872734398488302697669339744563651298883938088480398739881756271415356026306462668600072552165612002052217205206051107313899037839322716854271745142643314588062766954698318699563785441732481780896001328956527494067488117391700528778321728074659444712708309020841936588957619203369349915432781230349662588871425686982402866370752660205375487170005205145699919958094747313404651925582875883985501316089850388052046170784323329967226554492871165274454354105458030791731382398760354486719059574933591862147279059984428606401779751808908499463241295378666645513982695731211499835839641204108914997874544419599370550913904099759088043239734383746365031978460814685164992411018969884830448626802785493745088203936325511798465455378623530057315543739809481500474151691956023959865678264829804224532488080846077519428567691340877630285987748290127248297374160038732118796697316850125563819283506071451367841089349416487106293440135270463353048699435424186774798357389463433868261907430294146781439135802773192598628521727331440942058372338854151137223594121572739936535721591844340064071596319033418685193365964153679939078764806943560067030339209385943664314803054507392712008018038994985781465644416219708246047710117958119426401769479211825866998640185639929108270266839490924392496764899311519227497935039155196907351142960914264353681072443612255870538111666157071261912261752794942234944144816898731473703252751254421596249442669948183430782427380809522087291818702267683460976648911861514811000244526709825733954176800755025023671568463897133330311956538736903492502320302034062336651294042583626944678648652497965898528126741670385627543533212663354866823243228046146456569834461153606510149867098641789900390785957067794961456730103917399678840144298318026536035515095978720733927571153945428475772957207773964624492989096375221062621702356160360634659017707155807536183363418170151848505230311238247567601044815243622753794433681199677946302868416238798992408409422580770162889977130364407882728802835977367313362476433504483134632079064657787972926008892913041191926853098381749039017952087193610156177718289037015945861107712146645617882947538440683351413174419290613743753516767820192153154592377620239635823937286412640497017977798774558774728827281045196894322049440267854104677624446915675309314396948336957269727715214518050524454927709803688795935925196786071772050776047658568951394923144722337564874462870612790218000128362031616240104705575472556358710372886042709520828682373953467844828506511379126654191970538864739314826673379235436169800683429166738396543191432908912619126074975138613326754971381683171153277257564822880952646141286883321507082645817021429406193784924081599563384464339169528399908048849503653026056959501101751517800907994521723157394113201098295759582884466734475228048736500580764969860938837889027881846928393911280335550760467284961401604554787092829974204645313555835029879363368023307066016329531164813502107376245190308952748547906737905197532364623350290106795872511987069024396082809249695968091406753733974580057698099396149353121076007024174883622166569683994098569917800238543888175692518850915175169951597867433929406743405515706637122463929050319104445248121821397446486302870917877266840233519385836921383106772315083142855861199674790757127886247525656280107655862109490261997804884871845579479229330959548327470803414616485779578475036912917640452455440135546182675906240666801055541470655931111342092799404020285789840503126836000616508721784139950488379710287331524879038565822811317903949792269935378113862898869928662858271838376420375714790329222405343643568867328209346071706826686011513862088672413803842346695490750303677187944916132856289731325495925973041857288925174416110839371598126476309837527920406608197264005276135636529778302022108231066998389687058372399278722968899338475005383455341609414390304004689473903472147642715483837182712467297272526051827105969989718075075273632078951912954583606044969258814775478791543505328149911792163932639867538135627520869776181384412515481855890992826663109995144272747819738270817115557487230679784175699660637676576836403737396203725634188756318853876732079850582923574069633635766155768280125591385776139659170977012528555112436350466490850145221182548323622130573420065051654077946593178121045695907032318238977099917919272151728538162889108926514890840091506201413580237156682803832112375249220516364023059949252894855366856428597166308009912171044810285789563953350165778171743197644326151799173282164836656737190667018752497741124119156148539611503253968008623183780443803588846978397256461425193466540205907058529036682626389272889419428699315711568734984819251340672069170256656697283667430669705150177876578745939223874770837979836450407019555393362004549492733073479073062779714240719364034303617104561705746553306976438994434524830764921116686525239220455875061632527616739024294137433355770219031803163878999183710220152469507290799863010852933177309964650635849804232576660824859941304072920891302106589068571981307222140946863598454914496626908051137728363119991613299969618763754914011855749961774766768756785311607503768498035759689058100818307523911562741187643106487100425885746072682093114425190639103933410316444854616338396234542203562998023722357826375247928269883280273529149919273860581217544021669148131320839393456404577875725895945716210252464283117389259061750305918330931128024942418331352170646796112845824358690177561188161095221371038227784509180318630485026719716076425516923895934319785089496913302187210706741087900495391989396908697678379686125603221712658537925438375469705840391147519736521666258561381506203891538538486848582754576535234479323235048069506157237078344646296224398168219752678053888266740840641505477397923192666583839791620119544833734595464738290517989964354102144085408786435197684885365500421109862233347295382720078101431102506467984542095311337146443049470448635833264346759167592147734669435203037736273824524526379447716680839018235930426221916196840341549372441089745443821603207510818236972592268162893672496133053991381346340102205114419604828380860972570657034884562769347575335749528065440824139981542858620142881764520165281630369493241572332045602353654572139049883322266110183416258175172809633646349934970828210656290929575999969706020508686610712794907839084460336122364609120642182041404773560623501076045750022301038751356971440139561631955332303980145101588449450690634286691592261913702684372283428770119414920063481546931988294073989439471360584878824825682584484280845894929036558152713410980924919403554564063467101465000401117769047221825146318723636065539660090079256577562319627650173758763013635150811158835933329293770659752658518418573011982050144720960226938842229696703957478768223255674173094412776022592652386857199942312401437975408540632115020594962348154760992559291469346897406462390011291499908045891695013141409411157352777156481322288033365293953715372282809243791460639532223695412788087367707565502165438750846065805605022461904087747472593432830753710138611099271818536242581277888162694072867420678383027096855174384158563615088425317361290630417273710759353704103185896138204559983834590413577695386316808898367167096509773818579355240683692462554422293478199062397005934870952044049206536449038334726569722177494244803555697680362688649635890712329524097558677943050341783609244122715201996563490371164931241741786566639800926635348110971236792376909008311139079747277469238167209742237338191055658770376978776421230273029135473473295782242376282124812816612404002356655789030616618066141441647331296077123478478036633111710173271399933507973412974107568336778601353150216128236939994531256758153549653415663660827570156810611046716719491311360985438261996646280449497878158411388068792144710775261931779555060497617602447815395398076644247434973170990781313581264247868061586285513798311164144619119656176437633937393944019699767737450924292296856456929670833717095597325874244020134779453313609671158070298077471074631090771599904278775778193687873441350481914521763412222049731684902981284311126434788968039471223503204357068812201466770516970749082942140851648061068542676045656036435164348260842935234316127474510838111506861555317441547722425261251801991995424548329648113512327868737515430837432493484067465304109123630623207031736661712094490100095647622959987991198540748941638880169428335971669137940295422729114957585976586715018306353576784081646154333034743157055843945451543802295687821271569568447810545807262241026667021577059992117604524512480993429427598753849035576255013729855943726025162175712007084910285631572392060797021569608500931494735350103840952052788774167299576915347382455694861290502051503057683107215755719362386033418685118258201643030395605722098541906466674179692395421071749141451641151395483537901060865872990610710791258333635901245381790357492135473055246914858774143190047473517205852226253521029305839045950268567632880595017023237349421095567502878100091413450363765667015799314766867665150787835016518329577826317901055737781307073874249860348840019700659061185392352054178848078989480873268816671249780411658929685206981778368683843346490925843129697563872003688911543892395940844256357457781046399719751323472195407390359258168249351964919440386615440171796982361403096794959144403720661857908505686545117039408216344527512728778950370685878431857412451444874245102499808622844997051420473582890854494412042282955303879768822975739131198322252527238592539234680656029463152452032216223170809982101397442940085351372677784006958968504213888128895412759278182810476018823927356354829350779350660636468484789764898471947035066120803891651370313468395815208738566588165659138083095419103669349827386047159983498077351065868579177106446001153237553652422636693712718031731799319409218451021371062068664030984390081240032006468428803106966256395960454754077974173542849099638309123293316598547350874798360512397447067587810984262644119193702383922171748239416804948840551692880987082572988020256606502601127296206123807795587339897013503196320418228353206964522181516694281333928457902944473028046082548544263258104605310792163811992123255639822877592026390630542737966117963449889211578309679282587381791776920539078507904620886138896299270816938958486578715308190120654680505679131934418684374781373082741538810174053379969369129044420892153255100246445199764026329725226859754777838348262104784763789179445780528020090507649050418148929992868453904430395888673017941749897294664868550124692864628454253926852583729431286526412131980600310578487415488001655079996712114984070013044079237395776443645381201054339371009027232027846190637371206166701146419119950194817722141166395047406868120616153900317151155599898398643163871046107718598997338546676667202532390016533343469124450031126398479308847032297058136412615201781104082317298955149060160034656618697966964575236740842620684860339610679580939106341253247322188046481076780742653952283198384275075814458391640722741344925205650609785397452953907163887541858725319315458304586689998966573856299633638625452306664168360977236656567076923687408420791589382446219248979698779910755385309926409724632008822172143100868206368992731072047649586528104192920036140130171607919971070116331671347473225336622671362532263146232725910064336017867446253871705499269433139896085818358649191588683910780823918869465955659437004689614090044830310539571062542767193981837096810051907805652030940314033183731340726715678394459186011523167199710775990070568699813984628738154397438821156264250103128528690360144732596387685002749818825670199320529289158006161340889974969275200389290796505647538128389897425632086294918478100934270102921332055598688424229443023885312231124639942836577840380033133189802660660453869610787184722664700774186322797579106486943938902052710392165581445918777153829075285629458676185685773867957122733360921561669350565583572071062920207915838036568399010052304312639095744779062286086909356857022421932240059319185619793606277647703911078245473030363273208431068052590734135953137986692080695179064913195983558912415277807112635724224267565835517019619852498238314319442841583468940142956871099319371684220740724090941508370227267559868718753212050187661251047353253506646236810649050730302066145595608506600183722671949786423621810286404944596942677551254877389024300995874676453227796755795713947736859246424372492655061246986223913856888196461004057505401435972737916022110595599551063462237548967705541332791532654299044595613534401181059354969277273828881217210689560476442606968040185829100780584768198701788657630537796494492824733579586904459934321818254102901909506002509465889058146261868608593054909981198198040587864812309999242400136478020653872404880502928657869002481946332836818962042412966063365129002705744205068803243726834383985532665640282678530650218603196157114389542866582436603052976377928799981615894266317865633448202755987059530720993473523041716038816290725158896289974837623666631212529925825273042380979050933229848538294134876571285873174313538424383306195501102660677229386686981768425863383400847571895342562051950094263280415364776236728138605858769994092405826970469848965253201839433560470578690383008520461660355458187703544970262057541646578937621391714740161839865099164548638184414469078248607983484699666256780091770238325855693845659429249062287070510223358595036695125468163250692646413208043775737762612497660876843257223105145294188185007252623783654795116210503987238215055251958759522351910650250614690088489862541055810975741600492571770518232864069386276320147762936964779075189164220024570083954375434027978307773811607998478307281175966212955152765229923282068412390444774735846419128267410686786644023719082353586049886774907121764997136019078577112832679834075513474968686419771860879560293842990715039561810377457627824564815605524405348656849164536441052171312395085596257484356694274022771354227831037683030010574756211500991010301296336991686547086753913539995698057874126629587881988881765024097856932443330691802865849743087040686311173414519354951994968559637524437882525601836541608304333005104194637209611013332128709593039047688147468408254206429460636236561770844744100777836020411387328372301113925226361247326982598245801824534144748035984008910382958791418622150927810904541576550471489381690530804428430058571599022780960747998031002259828176430187605135599086341846049322326382380508926385151279963642646195562915415814465617046761621827377841496613286146886951647495096176056283025797159106894392226324988736151000304690183025620420729798507072807569285144168221240487704839626610975179872498784391042028878259776736932062367139226015797279390888055966536708311531173094453302141040659963690852160363212046547169786364564187214614999233677279747639186957750855418872288010064474261059500471108009146018051563772216248277760378769694465083573396611914584209889316926762016309335852135754645163907138184064763481687227612774761224474344467919086271973037143269339840282903784521369996615400091885010676599411468914616719866990206779445829710907833344554547203720987403277331035450685546898091597243469750060166548824647945994577830056176073781793041054980650174386856373736448477944046608285590028153093865387064043101866762906751824744356818786628574249022179614786079202790615471414467453602289374453937600218284881756850640727099527947851847132335689695622432545006521472023044353125942130957393944177159981567454243601822475178129317709127993401391165018514505895893850474294734584787449524093121423712028156640695874705426919981007401520944129463367127504021685340448064646250192742536813129800356323784795026941805160762443215762629231244958888828098707722923172392342765179796196576141126509265051124494760147502855311565674240566479656745461733177774018163726160480341824741847313054938311469930978369550447852345060083409820022222064722137534342416093609569889419606034295177723012139320237704876778733150808662669900730276019879029177899700191519314353993529956604692864067696306247055575328620424792073318759073077136276100458726040389945346201215432611645579660188072571729343356106717659345003231461837806054470660496862640978880909004690075253120791305718655290137952598879080427966620854882100224375051100592674916903058237090822943299337447513949825978609674493604113615294160641805439254441019189061658285023933521628552689641771701226111410424790080408542836793032199698685671763473679688884982052251579786963009384983530983532004993831732238830288930340941604194576405156727580689492955454056663250177034671405396590212342741859694746983677359437607835867272913184321562476484375444464139509759479371394538826789842857913438027920616365726887317730123475880241624301082321952696272493891437537554822085056280175936676352667581038014304776654384077035724715709958379012605182608881559276275124180110767330206678711162139390807544963976174537617281647915970559360994975646324436765752890688119317249360586200722032027222107244971449447767819665037306270614326732850641355871711318787549708179857884457997106984194384436271208373306519498519728652309103758277752288945916447358559715473777427593379589976669552204146756179290988941751403058489354000479159672878772277374970582091310850941785703376239422341142599347661774170226086049495814902646522208196883515884961634151556768002715302221082086817649751924933147679438456676518030551910341677558721397604348409394665159885598309603828565290053172789573659347431691405815532985085377026389960357451934838718239332438344377633934657367024669348583005034095465477492191866031961493036914596413752409472715447029413381860629201536323773172790334273708869500913881890150042848497934925684743910097037987147806250347170420026369416437926180212499407304672484482850144828451040331879328200316186133175226526982820739996468477051735952557940081620592653554822108362175872018502430919822270709254192941870492697899691819569303721202639038333440382334327499817078413816619971996968122466956425119865616341014673705452554097344033111182224636237032199649145380781310542954576960408661194188777178676547894988235679619983072292856567696507434103038471955019659919849351313532534748998144845266036750736338478017117492929601986597913966531753393385013480212481873048886197825592255399488187633502200686705918986552578531418535059717482788977298598100155655842164343525708764421580323871669138901837840678110981383171484227415488426581843874159155741185745889189192323584763527294682652297491291549048643040336885110268220723088225874713341710665492246275977052346175128494642546023534090133937810073470924044537024416195269751166098159613423314938439367924384823453801553803761204011510154799033836255030270677342007267080867758225890081485098000604758778298547477008872202203925260685037637202112138507983748250476238594803694007089914197295414639861614095955509053651639910625187717321907201513131889132628156140598895159589932001561653814777622802763203274033692404084861451562284089922749006740198135343700668087810642797283363921529892415057751582702726473950441266653651841202732970037588800290039419408518246025281940654289581320858167759698144884750647949698236913689800390233036125645388688772419179837414575793250615008725349555901068564007731811877633413304340798744530725906560624211892735345213842602566887542231106273593083695939842836017456404285625931647207654138127824353881329529767667618611048416312178327239679658284880001964380765644446030997141339963803886059596769691864774733504209955264529835409033099722152815088088689539114901314744382842389245964522364994485164674569696588366495845155016509224303379045088295329147438760036319439973292773896242569462853789449947467361810586571173648385688753545062495888996772038303530047490423987661506001548658894685148211469916665218625903572285477888714477407454211605962327182704598989532917371715605679393287483379491745848839796743652970283893047656819550402025288889276089866319311401890412765953385566271815650506602545622713584595029641622836287106577863119217904627284531713072369025705731901618437581679286835485361676236315446977236370278584017611215188282719153324892104663717912488464947297066164442030424569919386129360453656534391142735636039523280875308353538198758270182899364612236995043092593381960060772606832714874586487453198782912133662542536797559253403968528045367926532373396239541261764717903728135216411734376023301904234991606104735991768435201363074070638279651631994038632949530359201720604031914090870896884592553197843289525731060447929969061713094417086094673875615185645297635830624512811560094122911463445526618006216668528335052759820306503021853424670767144352312506386770808238769043660661672714024841434886543126232081915283319462712140047606782420179330969163526865850943833071371794101538186339889035200917803512992990409674985788986570611302839946022753856627124561926565877743714446623890060183284217148040763736978231293112713986062743936448195790744864273911630460772620994650089114469786011678042255138510603453582105904364398611319226385996493256085424673421421144809536459924979059053225795061196843767854304483162515577790108484514044411000387289914276627543047657680529624886391827244121078880645910394205560970361746690479595125422212587224088412630460820606006088320624923686902516710159054027696344030652581820949429774634648045366943899051393234489683742407198178604671675895829652418300030957056561876658891483352777262109716281807103716192272825428780334734931250132874220503839724142804272545034994335977378702031439962550011696938770331282844324924850838284569835207475849237649810786283880603217357165033367535918981985879025665319986576873994848668628856456080514632340260138936682829575796017274755300265078163235667849005617008572290033826298018312566632183095388236749274762325658137238853787489722475511483033370158427431217412788424731413193172326615539393054183057880284371562373916304154835550233359735248548231029338888989673320310630967461931363135615741868958729028928341118855978628868586369967717831701687979856495421715893585388099206811050628584376886193770311813198641439922629795969656456874152350473185146528249002542664203310281500530154060715416690037230410520790966495929400600213780601655851711670113088899280042462031513857138392146545544456849029857333420595808118415065161378919758011510246161836643257925966486132510943894270034654520851494079161196825273335580883680427143997098614971170766160111635813316120569385091679363149266692621847962133145544929068859366423001381454931460490642268354337020951734955421505832973184568526902478160589838899040902537610066294214019797732989606783409851322142645585144504521435789236700616178410477270509825816181909938014538153449063398351966718691164524597094896881257970413593902884653720674439699327969237423780245288490121376418717778393432401351812313091152653688456974125565742566687615423353587625187124165921547368240491514482492368758005287595770878024556781090287580408781208921286331643679871435594790968925706382606581382281470219142006309859271189247317486535202994661817905753692607026330218707068264613490271790400830996975302152335395307731480899331993441192642252361131175446060271771896199121139648714779297496489605973203808420689681880772916918787971956917503099344807794218433642606528057794176843015283949827037573109992637238309012722541286605445423328121049189099674224369231397798262582236990924055205110449046175404344184528004225705960181432276733035801366486687039212170911230248715171438996411708544584620672793459194434295197970443808986885089783944798037435472988142232177226276000015873225300278589149667479756139640270032870276752782915448499627420765933695918008072804545712161320291968338081630737575848205209118066454859993889247980855722384333616609870222264722055585123363961070474260832362064320720495688803194587104022222670905796556574154288436340089059596651927611760181547023365853725631594972226199333709569274484471580767511399769745630330851637168312710228645851663978817485801826166685867267300461144799476531436267148404417607107417868868896314600841219383482198633229440994092658359751163240232318295053968399659160566482773300910026015545535329899811929218610694049179815003719335788440017743561050536544062224701414428166005889683534079535353216821818984451844026325782576857752103053386006427136030823554537403424417922291054622713069910855575524435299262031204181322346267632359999209763637432307899147395718855247003833322499938833337255372327476314883322332940270235057427432997181462684648554727247608191376392980422058053191395882674596520299062435729438583567390878959000814831312199071097865807032125178100644575147108051104209657204408060419134444887300922603424952992881006057572191308773536791972357444107474610522067882043601833518133455376658410213963893802005002078927201236434446818684527809870907368212685303431154424293654573966844203875595901197449937105165336824171937466439237377083593965326085946995078612390242807174451476555893479210763207507790255822652040895422906168713423462379186910456337831674983784358409922184450971114931631971804127889792920748322222509750528781652098236164796062506686818333557821780281412416374783610125793783011540402920388511166892468119555265852947151212083358937240079675381752235027370995818262995722501656765059464126062798876158683932213221600569840487485396263631217968377641254858802877782596984000606306598702086264541717731136606848189544069236594432541210187996282356088255514320185820890681175951699787605580563912085820216051799704303643838661374667025493966493094143524020554278252244634995913343742590737363756896993448375091090410644686982453572917356884020295099621942542703182346955761479106494417816469241187903351276515241171395249724812223490718029348781554052038999654185545559623801744814647349094191522186540384060715643283713574746480663173354856652013836816865332228680380965725165302643500906760667716292028366431124870909554362458995210800312801984130787275922218549444086739239288589938824998193612910356506112127599333398464356664188771899538689593592773446560882897124509399980590453962043661760468075662476046812400621692350889631453881308750449094867849430543295888314343569527604283383018630090125243608439675964491026329703073492642101125513520597569592865950756190729921493573088910830360802654656485862558338486342550304611308294488924607123076301366872015596798527373432488558199356790943189131703669504850915298520953194486334114981932526428875428153817732624690407817271740552839858020922743632575480222339327649474359330884297766252061649817937627803463365983547847844864270634094948202428826372835670598497226910691764953340297760679146540858318167412754795593703377541904546079039015077625298980059795964281981727936898401997173090477383655181042524676006754733715999814654820922671727806671891801005763756452028344345624022142745680272407947458711156845265555632736135069993227109605639683857693661846498297144609050750994648175518583620273753015617666772621433866516402085137057704662724181699196644930789922185318152681327127192242522914153565807405971060800489013470625733379897609684588360691824608645364038236298063776782221366388847637791210482298060756510476072552542253316391687688573007139963544019869731165513680190137919924332148442278560824658703531270964797162250444564676036774376779767874102966542715695449107552102989108455052476171005439920582061511827534816221437603725816798667470741811484900101840003158166969163063293681944171250398603968133899986333188081778461189921493429927566288840287002373612978928423823459602031388609640476884450666379574288523054797009117387535607980955591222962603862683969320812256109332851668918495196224228550559835446610545506394619321721308179686039311359936027119587917355841969820836246275189972135388579355248149028312864819329978702490386240271664333827694708210318964384628337719788203194028706054105428762297243667742766700901203311516054707164834964102600812945819201965689038756239469541327922151195520296200681174035246874919933658275166994098163391738776155212404905108804934362430548482657268838845441775923299776006257910108369012404680804203183176812148689190439152241557825245600800988776338434127083766583638767741493085474234528909873061014824683758662728591801087471064430649996464260797845390729266082271944603154146556999904205594199413976109862469917371536639249535801750916076000724039294212985883019001308812740983352113584741635414456999951367654191841857337654347661848344749557885838769734082396065157548249140690940645070055759000343406291982113935056954664695700691576760579150844939939564297290030967403795678101847697121399141538187463194428390507630473500547049438095453979824116772001993052824811172017334087939340456777052440008749992366813892830251687692724329299336267155682714719123397118581383368843668564804278612798573506825305894175415511255210311944191852037628004878569320960005148496848576146960182485310232843401265756040175685738220186918744703456868053313731468943696856938728506955771264006918567166282102544300747971304163541778019563717108600890460956381918324873437341237579382630618407992375481775714812197086736633482737910580928441933678186873136667178794771128148971538989956643957095867779261830846683650469366436581879292568215814034611461510234551925538884197818967011917058820740559038795065450156698419394128749475063728008673217861600918640899930872381542421727752016472815989020143742670124079258546347132687895028470182632054166294283311412860197637538135019236282286875263214403261585876922832710013061047572513155871492337432223870045354561014306778964865890145129211069183368812063986194317292621065881309237033651963384924284407507486494304395528666622494583687320686767639086292208106937608966867131235617505181810122338474519846430482091084376319918850509902386286623497426457717785418756578620090118352161573883223222360066875386140606639780884125133187146328377898610486380405761964345071435481202553498051253879400508924635906294540210768362903394706920532338834543351443763430834506963233376514790595569633008524446217756391823739941251715625993069169106321761903804072032203151023679941089279279305439946223330112652986823453968758800438435431119803095268953627986736560680044516535172691873107032055489054713258871831487766321757182347323820675801962339451654418726205815422749244078897703785292967309739126066999342312402860997301678629566697196574735882772111551991924753276062199788001505102888983266560609800109963990231678870053434450720819842957484811824495262488345339141583438104753361688210899359926748979016028403756571662931315022222066001684219897299651438962960949177888032061457390598345204409870253846057218251934423789586994883298119304697096804891890175605401097489987344969906948288467972400294594260962352387419334231427421792012302597893847732666384345399495155474393596460189287260229900877413828459815646842318005976416446603692790570080260148400535424658712650732503254349539172385970778811162054785291474509143783444609279958148380575072865941881901376838941791205064346413938595304518523887561100746721525164684684921957308522607111298765136766728003386204163505094126967422310312549657396649376463717605219578754086098985786794244411254864415102017852470485344686563379954525539404392646004736617577987233335618500045959619876474802413160174646858268998984242236752324529275758113538430771347384713011452808921733994453229605282464005544098715580759006151633714868140307961184262262873213702482854647528433502054003702607341588889818387811420226910725663220414978712226099447020055216456128823179923599099160787079356016034250132991442675264184708432945881447804120953511965287965605864977227631352082171389691930433780961735698709886339157285268207181924973520069067553520684900862702774538216074930491518649778457093911045542912506867266129845643097279910312884824655796358517253834908123020587767084647941257474319977492383556291642999114810691978141418635049847134979808780719786424143778487701759809291468783430914848672485016184343011168125538898885747605617624168409563671278266232373869425278986946646548939025607705325138246326902104424539907705193703529841136729807275453365745026396999949806723791823847388199510738305719069663561064437780735499028220155497784858282397561080595418827772937216462918034417806785562866525567512544533877593342394316903769001941720560287744862153692053558102295663250787141004279297334162784136296380621918850904613045830620759942677571677385104025900899214552291361865131084936563112837925448614114063858274586101352095323677922753396473616384356759006047990152979836829133976976994691427937366466666647925407417688446565142969885192609084003570670734049817882358108787132374024068107377930316747207829347246891302127132110604760947246727851091623159399585286517490842359871525812410663003934548276185436513629070373946306314673568543258173848256020243775649952232167882306807932514921188996845033305164520762261903378151153732917981096743641945352498687696539632440300881085984501442673505412986104914190911511015140217232191667333588937260445525332714627307909672685552664135260965229235793546945750257596086530575518424233308440800165774048966092536103982281482333461002938724311676851658061833693157921303697259656983057296549595773160074720001878018592802065184570272930319098656811311789152710777289177159772035259736021834924554013042255513979270733931675661417738602277713217102379442933417422097295221224336000488243788515392918701523219393653907621157229818310729063227316055348739594996686015144740855711771530881976849644052045657565094588920908971691910921150103705761069022393628436973461215516805400563603946235062088660868137056896367112047156689427924269751822363780032590738944802818870536391941759618257352158686842795738347307710039648559240779071283518480642396466213406389887328853611311013535115743216357178298792577849245322774287478054476815373260104235277862424872958080276668112507585165651581921883368231763137956562109819740617863418276888176576500632875112681199145992068934648004157996623612040415934204762788769150714549776570377467117997348836813764388371289322977738339532329928756334270277340404626067055663580399986828230926491318240256630410901642140847594047524881884259189961031537549332855056694503922740651554653491352965319624739548500694037806995779758865867532990439589450555208744773948980345657018637627636240925457751941502996807232211901520119987000208635345128415496267638939069101288403878275825580519604573351056209340967082029998910547458280192343183311260502498136553668028275263172850804268358543801060791459933864625768746267718618051734185093049507614344012793127536028827312927842316992420802248055817979088048825173264060799286208145716885951775347804919682847870895969127418954507893826428976335338840948367178335741181603441495113381062450568309640608911784440770423554721948246377006459091679679599371025733743909758923487291059573211908031339881786936674323995945540024671756786121232568743133030896872050049994724237703654566681487743190150187069266487190796530447570681877807984676598078308114776426447038207495286282743174905744037289594130939854220312699420046934381754863596104833898732026310676950673222217175231254583235551821262376799343567598158196836781927889619499515613607289397853779567223866796455453233536814193134844017952818953748067898062413644018383747146590365492352518085082756214543812127494511202867368262973986100354208097551737869751424277620876433501683434769491843001116777038637404416518463263541169060271737298180713327440119888118029416251378370712879001481612914210559219274665837636864468989651229789611399728113863518684375455155021395215683865094959676824178015890072698313186702383980521565482614671930809727069821192881532764011774920118840664549655831449758147100323220039637463189149251041978922828626611852300954765883253650842970056045669071569751384669931502710777775624958441487795044851125565518594067206788506144227197731541346404905004374360214154714979579229820065429140411992538648059058040764595965557641738161722785722418772584593481026441592421008975668928607725484590996847308709306236807998717800503141686971052952783490201741401799968499998114402377111865992122687377843691332595929630407634574155163410621398600573294236663182340629012844784547470987972495335888016541996380281448534694816312058359009499375705793392969610065299760644483750710815166571147279874491266938790744477449710505902151949974133751421752959348454954177123428332726410818184187487319019883613810707863142162193500066106091818787421268540918667559833004986569259202013674263101258064642243213307201428548948894727220344120585314600795715672312656686876501627797697167718540819171222349531851449430869931708254999919500619034816964646759078855017900096542258466379167988593671375523049071348728291436574579545003116381742813113396920393465985760927633300997907344574897514914780247815424600383558355937837914905454614534253940013167757127430338067433976006382290340698428205265208544213378472719162672839644322287193390197779504799244535058352503304336129383641161553329592996910186088700028322092701396339970483396011180973541340639847168715374066129652632239020982595444409350758421102891061792170875431904734684567675369891105526223224787603951459416508967861759981255046482418415484859588783377757929119659903232997183665346012988764445885328513603596151975091377457779666746523136321218988244393066030140214101404154776733045431425424057703822031463526229349191846776225496558169137598133584588632551011251144771354522138298150930654477963934474449378536880202100395255083007505487043859805416920486664503055962374731213505242002124514752484566150018884694278001138534746047083957010551774416450714489902713081071861380795993981958035942134258448290819286486088211864940300374470694355071316935939558658318045188814658496646710810665554286599515753032725225087867716744311127573344596341545826937400282070057840459068806397753596382040467251926714567426655438429691750866164264150616652874107312496855016469390110664195992454979182901900027895838125817140986435534421411913135289790670092581129885291004858051565315888570600276003605469734359733652154675819355152258112834266623844203574898015380917909921847610390833798161368423677393332523546697039979895360667282908877553470640074623035596911200748952827111235021726422065734741647627352271853852683964801193941674771989735385312779460551806899952830837144884602693249807246806316359834005288658790925875899348776536666346225198775572370556082820644884982709311571197423911235855064289657963430099225436727128010893811831067023798208478081017021365176312506788527934679298950347072508649527603729592019593165369378424395542445560627814813464713735029681148382054567188204038831040839838501106990164302942211037393902014827938770838728751321502371661900656087796233851657951623938779208280549534378512048405056886049050678521040304927707851400541771081589077289896864719464370540444756634803962040575254376560540577506865933999046211813828259752318534944093916736698319317835737509030185071510605446865484202087281902212248567922047408447618098766911313742703891754782998185927454152920937668423847501693298739221976097342281154229111950100971887279773811116276029066133449920294462392165927127833572114870728924689609029173335335222619077516852301706185135960198427671835224512982158384091244305394371524584685140923618013685164638293845238283705019119945948788657024381446005152124541614647497685928427764775988491759488585397499676982591436677727331626603790669163613555221357586135964672145272900387095920342321665070784958594671421149795186212509161009233453600966756756046641693480576420800629566438576263461495260274473696961184582848323730653739569808149550989520468307883456145313036312889889025534791596422077273884012750157219263538391582796608672193095741652015537960075567573682233248716764302839775388220680671688980955790439366524330846993042800901312961868259551144038773457435714501510542592778714254297966862509867225176003264288101911600106745571313278860295231692686773712164710671428313633856001052262158523714399991554296641217315751278667915989413330910871900326618395828785835571482620899584102151217344080071013931859606181052428802442988803250402097532268990052342502924464810751654000423284750917640851045418927457047554965816791405096049159477524399416808115091340786974057493933697643215733382248127949359906142277962234829716842932111594646874248365078376203417596038056809843879088154212021200397163020047032763429716321635886522733568263198623038073746375477217773205818701365721262282106393778588087827765777470651401551386705370349869959986026049779142748733952424162267560399575553765958598925963144499270338257005957356418127803143537224822574285266421148961726599124509615673034890123625697943377490349765441705943584289750420432418894430803740259254091185594086861517258173941820690875441503179735151800708568611915393520834914250792655050138265645741108705483957552439870671972411688174432745804435274546510450915368274039763891418793806367498744974293619235697701127479982668113507540107270663248400701354418154501163029245495672006192398223863565794438792653692927008440936626130664986625255597500229540025751461636514003136726584134788005838676237068450414101711178735638234974147704753501999058253025264695920498215477089581411025212323960115965033007609433678782171085451369318706087085365395006369224083333039714291795744370789338413580337736119968679686242392692466065634164452806019250086350001659562073868028176299112303235082778239472889964164150710933891187152004876088827698135328078459128525037950946238200305407179334189614690132074543341519935302752399998281267404012427361123027415083952836845922800566117878663659759057299711196189404043322989605967017582209501463991408812310026962393463700946731607608684382300128643090439392913632167889758147135520057994166663033842023408541758997846332125809607184518665591866743575466247763566620050768628949103983260454426434949009593453372908371065587964255629466050728692670650726164821266954827342958960979685094518955899831138496187629768922352604828568313201604252868917344093978660633061789315525725432959875383003188373001800424811146212481481861432879905848381676303762188751755915938853248035859947992709389110671587136390719728623973654016426521954403645222872791349986327803727634090528913824573682046296915803864367446256466633344325008065257817431239558022518341441300017236047367041877175291248371027805548978418254146780790477486769968984125701736357264257468012472252935766319322285191245904215556228973999106642607254212678677527044124338623425073593176935003931177132125384937453409820474140631676151685859775218688340785710296715263658861975869848149958377209653953005732176382446095504851002577307213959165232064503517115240564383878711600170545037066555165789599476400049435318455294706626431438803093520198748029733122434979936556667858803174610763292532305188710040565068061560232182640736218220213396044715532028531901501988949876295925698971579426471710193563384165353606419807559420162486171433281426740837778700595469386800620928954184324910132094878049142899066911654948285406938907256154561654962697703408771482018904969119840055477406483913526172563657988538948349878315955820742918545116470817255297063291472485280125939561730148699825955636451054707633827473875911696181916950846807014275565518045218874139930175083799121065924865862514806064635486850334649392382450354448118699725217061906257891987079969729922583788206475092789314187511144151268866166744885277434301395487762205118015752785526642882509509934226324493767883423286023560066579659766467968200210716561537047734584760894182754283792874499462252066740653466764334729379174608459979186654160341536317313044404548299602251336429364698365140719562212298263650005655798324158484578547994403167715252100690639878733131775387787562249527656902504117028993322795310639915893914410770824331009692467080715058933709149721550354578967725254915667713123291739092139229187450585840096897116905615229576616289398641163431449299856525674671182826470671347995123111705191615291029342823349598686405264855695037567278512256417703161701971256368923921453924575545042788678267803066346633112596729408847823310051311668690026254079836533702896491219265300723347183680289788568153810083264892515252000628182424088375121817858406428666370239966236222619122906988128847422986389645987690984379374971602989862498365462031138527615074834484022099654372234082559020797457681229024392434691444263136903030266244717263290240016397399156601343901564983655261639516151036985794330789788151758712545376546201139854510416281297166826785556140737859636496497607342881652004781229016481445520898841300012591698394110318304158633939499387840344532489146795232531185731124760115092760208656524242597655068009076548668648444578639821277480448330104144435606197377505495769291020517643634807265621459575729478138566147255376271997430703288188226302567032224946376695401883691489773428746620962556948872986263360774238289259326813926152289477879285956039831900515648647205213885149991143103038204365449768078352683726315071099821429297316814735861739901476382292696664096827487726549688114353627733934191895162168566653162264156814541424740580030760048752004275979657503743509189365113897816781589134452309162297461852450042922937985712481461273627894542660498377609083097745253661104948242733061262100869461874663894486893954053933509330173551361262185294416364150748515685556640163064791413217735102012912529817450680885230671116632886227161954202177128124604108819828001091605680450812209336769454494352276081247678693874010666545962502633929417757035593480522856751107981086583269063974168911505539441183270767489123141070745802419423572455424574601474542435235030928178568342062040695396350482205018249329934536419393348113112724349032300935525426327115274659841888547941161130288871843626919787837461544412896369719632949713179731657545133634798909315966862165476715961783618463855079337048899953263950567861904161619280101914380875302952281897258991867777338350874593332350786216174311099529151032685255354164068392075110110268500961629062634456235208518251985650155851569114738931131872641411468380023252542893424665937503679717300337277517566312178578181642518901334954065043558386483468575210318755641129843882562746891405677960709457624469293830377519157265354941911813608260095288919019657687990209437761338984859148947549247285636347874238994422150555593276111646088018279657975658369011025623969634923125634520601301929599202013251752400372409800676865387876602947370159406230123524758648573201283530139107982736155011201326370098136688559465597724774908471658250847445604251752965895003574343154286405876525568391661928391935767311371748294336543881783712942934869848411235586724922095669608604034191730295509045717868825636156416790541844825829546879608097509065057338024145801091661740696243318793407240663533857188284482009272273023207633293776580233347710334752759900907677219154816138533786758663546345772009973574635918605278330605576849879071379410546862893579485575376942207122007412666286398626937879723371487635616939958419251165589901689249383659134801976603632666675962424204186697245792196660527363929851597609350393028403038259592206259621072066758883009665911992496244762254227557498790759467385711772389767945279604849590646933567660185922902129415691202891074927253625843024049193841590008460237792155087268113114475898684705208117343267639789352558010074578849194411758781557665716240012604443810978705935667426435676815100271989563853876404547519656401228434719395012190928779553948143827305538096988367354607611004908519875120902940321808491400989430056533843424852891240194915809520138996599934530485697760440440918800518880905544286421124159425279311312907879423233884255629909097152225552691901862954631620566146342663604760310713721099028639769164022484767230482858231163879722019584247725485348782422060393953976175393976097374122486899896228070120135731909552366825023714792711094912344105055729931246169766478489137877603319177509611959770381573970152203301049788938075077202863254720073717581336608914061362970432147887864718153156771605264028783795886106788183282992363147969756146762274266916881151335776140217046519274491718081641525822532195932071098757558675671853516906486816661262705242521541307751779556010630824356270387942595403776072099296668323539693914808628263505213590861833405061214000820305334300329354708223558346918789805083055315746430919336974778615081023562618462091059502890096889025066672142119122810279326835123976632214380545136559718544908904623147355923723744726174130992457555577583074742797318542835523271609628289213028114968729988104686067566972435478906307591081114275975196433687413902805427423802389670460460804267671339436633176899621227287796379389657131634043258539022905499643150121244653993888111154723806152854664341197964938458606385453055721472742203384590788373296968860447235949962999197993350531985400261481390133423706197954540636682887448902181574833166851196056227329847769116135923995370455119791395586931033669470339162105022890554447748780764960333708224314701235418853650364423215006049952713225351180203588571555743252859314661695252798816745372134077777525480332394365094542414944754036517744574276456448648873315670564691750647794785896127859398542885122852335592203865723846794733263599083999611006729900251860457837997125637759734272755367482582620781067608686808900074743424698545068168324328655018720730074765677536054068683012071640900050055891824570055833162148544364640710677094726325793371808419410916116738844438613923736981787825827788680143028234748181856945001944387784642555678392829232081809802946652650696456975556680483733927197940437214880786695403203149606766148541767490178966961374533504335219643008532430574561684090530596018362691858698616191207141987262168933483006838224072262040112809833954784693868991205943889379163223841848231674647087407075176282579272203157525733268355438969283013315603519669342794681750662988618117156345218394962558225699714647544010474538942273865751444827238643612063124547165490756491015671842870940132463812685785830186198034591601906741636763196844398176261080205944988309961643538095776250361295721986615538354985205253246135069695102666532658854030900506474515585789351453163661947584879892191832746070027604796151128168575555485160840258866221472863125281898222690414773318970706991707504060043693827568422487424834426574847375131497607665395195681328222424514349569663755331583723429709628504476322688952213310292847053712552273645065444330089567700295846013002122016265462482350834334681258235075974627754586548425568281558234489148985412695858079290221199825129052040119654129026436427534228066210706742913520952141204473312326748722676486464149759635408435451067954310525695308879238543303853684909743569306728225906503297643940958912977274978775498534496910454664028955847851597631240338102705991602597971005505688253164684119712958905007357363132638174506709385281239876140050291587440958620398759759679853497530243535396272317995901318531508097720492879118634498908654542742511779581424806972267851777871264360954208294526050604462687194637394581811142864663491137428003336334554023119838814855842066558537837015904602153047033420613924965868542807737169204705884903722095670874989420385406319522543228442645777846412628753957298878904039223202210387416752362986034499787034494701098607028361967461630696604114037274144208559614891815172372926115845418214522788788261037273864927980505436605927703619461279149885262681574873598561640298788041810025645156264231798731474210589063650354534123863972528795583600340605645905807629900256823418319707107304368216300491568264080895017574731851128599852170202816049236535128717072916811330878143489518014162063073378929335189711449659946620952319504510216046601755561569253771709397396361436880546493299629086964960721003918132785919868943017740779056619340804842351546199402387065216073453949588650855405797521655575542420304392994338083505849972219286351586825181383514133159868235453660862159813262355149123996956260214942322040956899779288695141308736935118955427357379596922346244713094265472239703777461769779558258283175908671469689961954825475336699849174993890539187541224901294305468760367256938171584156963587567757146618282728793171537827950584025519976027388698081166184064919165753422201617750116618861136750814821519238537318481529405761548708605776379872156087064568126553355333801868342209544963764276358320750941123936768244531323545742800480695832479180945421821747557633396381440479667089272706526567240784191236416811701354354256154450540805130326041701192915248907348379754440960094225625929686686672134846790455186631767788353515261375142123292497192549836922164013356623831377753646244102668891280595556565203414638008271527790024931772119569940646422928482830718532244607293406830226798106820972053871581686419297248950022981565236550021169260454999590745889363945934278464018431887967067096872893654620392088311459781983577276154095012480795292367848067443266727921332784727923219385729288452294879722344659806377705178834900783735285348653095083658851932538771705752329542399345409232237187584164702203368157800732286682064686835973995889217408761189947694288774752049240880069788100397287837205085507543102003575587452705677443878254271923019693661194729027357506797832750893141970664766459914788757928032552986201546192455643224576173883147610258365805600111687620453111908336168223094532688247929705470995189511281362739280583948104840595959182735411177140331265110928338798277931473586136607285890143219461204426248946668879743781010627847777787944911895330490756584497825497688738275138752242216942413311206502672092575891400923755600058099544788287271953204272585143274247398358405289191113444269823796746153451040758075202443713235555611256767448879007533116901074208374966424748161031446012789745463387650283451120912034764803484281435905479185570117270547560644189326693951291243787009308707098680578258236322605821477029101273862395150363461381253028084265913631778978482483082839563077434556070762392665241723469573605405182808318183794375828203261801428002684310652821793024854854994402263306735977718943299265697401009932228641384391371104515108687578217077723038444562792080299928406326370234823009782803072855156439043040878972383705657797476606952987237378075105218135981812953771409994035412033427834025798580468855340262055411457210871433779965083143045696222269945689833385611639305872004285019813228443223485044006893402288430597057529161214278809937849960825381585985055690420198441651649412427235408299456406018447236182760432976684406509337955502154188884095420007254030096404444959586870262846125206790812157444322715123020119338712345996727753352370289371334226487320104066015620037536611825456842706758250069221943768596328593034029719874318770677495728628605371588912149801966799060260167017330149543067122582574412237008680583949754374155324417107982413450925069220297927365282854450115589597951488476466558500290384547223719307776246080741677231607123408278996145737956166609080532708785193386672189135337696282397177527993332052511757964716551141700988024687241483312196970456184950794091121925920590377732361259494941261563616390234329379639506088787887322659122787166121800444866764951919473116224984635457136745333760400654104776218494070738892200764805087190822129727596727392077875612485377859300755312305281950779335497703760827349258977017956829561745851069709682134094187639252753425175103908877239853456691881577231945060237941930467729070332804068918494774688165818025136522381420336757109767423345203270922275366381249106608635302086098589794757221557285714609934156008279564236492216225712428327184838341361807552458365690578165212028549355346139296425905065590426411146850525580986304419638114331807858062587661778280564436333054577669784777190431487756008138047153713631241396620665753805939860623756085911736733229981004551346297701570868922591577850526241861972679088440865961670604706265987407346747037870374245974492497156238059920908366887407838824542972012942320447353146340165067071699342732697725349740072340562574588414589473092364161534104305404779428251261384180186295615885243026034979887312435050060084807321313769087977036914437450775516175777938342982960097297947268672607503641272949523011718631098406696405850061772707052604581559396284686837352644192331406758622020569194457017702667473360142361099193196764280301530531709852255004824108390279605300950118142420464318304924680946518707045583280970462324325998569592737608474198820388717605751018629621472920729516285661177168212405389764968726286305493983928748176418799310440334598564181555255227719293152024852697648916191983374441647889470267737109625286193187585220652890561345618869323768493388005114406002601711453988480605141273196813324065034858054216778266296159754835143324490400661116669108419477881195373254330653248013448096523058010219025832551894115078360097046647759169051082213163873988289665018032662995172993246467174788018091374371241288177227960635367920001758941834981502967247981790044870455912997936759084589238274723104238818426219383634463971723575341822418718685751629160769551720252167024877094677293061118179294844832745975793562455265587550681955850446301076259573464592607192539119401394185428409939693741375476276035123795145981490496844473209901771489687808131956425459951303036039875509367707423321146035597538864680811181824718303023878414077109902067673274493945838020260385365009877501096518133379805696602940506423329313786370474471287150446127327150530883437203330030465405014210857601205157655264652733208091742121331306137971369332851084852881991516277599051179325186692107427836735856024144482793001738016592108526873374848066439880754353168775917858260984216466938502603071557270746370638303671040456829317118946837458964372834581748960903443180771049305122111136359215158925347177890004351715138531091759869470978668558998512536181203397372582687276127575165950470124494026786574025402504763217426842793906480007741284036032213744397208175631083241027097679092838224878277974913399202885240652671987841895111297673891571587402117287731279774492732189664140967041629976292719379401308073197331444407675452323691988902243634552661096655441392369021303725169528148563520069372096184711323335704451271132217387457921165446979945783151516272331078178053734040155322421323667604046036829168312680809202368872903161710607578194198623057128719776045226194836930527100213176453500045638480078021071664436889060537675345296757594573370855226196288645082040756612382610987797855773479540275926800157902925400320279228872328248552390721940867790332051154471446185369609014493954575452932726995567912862643650652448992980079109649083737849759028238771745791845660808006889311692184639324979176502661362962123349973506873395087035762647690226662119668120344967553235769418802812525341786896163283086859562940776868839949397895458871367201496848646875609154783233607270407090204851418931979959927567863726076881767033953285961295819183888920145191758451936142929987378755480346811794819190968998501503935316020735614230178310695363186691364757569274888849195189378967218111213729551341822559801761632361331063305325631915066546936572857788974834420529360412705604541900813756560241477415131850490079434507810384441342202764765758484238799520393882576890028829060262037489784460400058747683947322975023767382270647078814778235691312675268079757715679834972285633610797267508267819669083977835283476512731022042953192466031936637051453723412150946240107626446954201069861267643808414631564938835280833710200670982936682108744476013380383029971807148512363266494225216830516529788846699638427322290970454842022518669244119568631598928036726750054670104574908923965725163943701524366370930639503132967567688536816035586892084374102010956942296943285747164615508965803528262210817250287343556262117255322143836819219538103695044013021017934678136579072577074762073988125517244031367324599352886678654587233743282453470512964100846683697889420835371437473761322251373496230385575307321660000489407449748514340021603508994531898001679473694119802811510239465497511903215310868579172137649344784732398776223472027279690685323102403235526158147632791927504528418695514281336273041816514952604028019347018613711383558038087843004967276860249757898890253494673473483565793175766058336190250067218769928734491928966649355450107584358175916216135245482736131868050715411005852546074119199849977310441035658207929145491988246885211900313620818607234643814273164953508322108156021213513693596299565541287393060454633533955205616804024866959115312985361733317375814301413344563260458933716085861627418701391814508824052600826626433088793012856378597150688339905623402492873318989195855373627004292623016703955693211415486678762578463677601649348639586015895851456697739579396507126939642319949131380319440386951795523695803681435682236782498345386966893206905357821795005305212629705134110411504404256358191499086070358463103653752399697515941952361875730627643430187945687050136331028110713488167175447702711359740910638412743819209361934351175540725608583729463121987604759630936385121556108293150899735585871905114663612272831418144231961997024021111459664965409430494371515865053855049199082854520895928766162102846284956149383757119375100084261144762409302756963148930558396722367600968905881931940394698053078994385674356659910934793935591709967155036924676861459984453009978138023881896316615371258219553239451649502643958087943049494634473570041508267956621334037777740224604157601988020679779396763772736692006178047982007095892880636383389118373962348410152895462829237736495489876779518839680554402798269959031930279299390664143261775506355955561679070379407801440442847715720512183789938474323456654246106408875654500642056185109822073075494571082190106703976564355824159577337104219412519216028671163886265689507642229379999455194778128108237434148490836978182163289991793557122505800379111647265303133349682343454474207420903274587099169521266606782053433085517455067896188197827923417944614638689865336428844478898620190887633816415853422016945281469908775596262304303619181383390299711517318784203651781404614404631628656128157176081304022810043899536994664606893942625001272080753303364820035565247435264662802393480944135080184340818092197983070358724330258379741425138362698770219280867896283725088986823271070266523804759341084647476537699561286088267110904303959262737059611202418514521202992397282899961347134609225278050264498379468579804638359070707874102660257380788087502746792803838111056558798975703135375799658685168828407637546822511140969484790929267561302538157659752252648031476694053686561418170912331194107533972195252352636350847361988942913950136405667009901964033590587800169999216785260069511827527815209781758707013836343992350054245259861688011054255163950073119477282499441194993354763618061836860304829800708735716861982082115797029267442244930217559161772297675190591868593815810538866637623316631642839236617471487202690901422559372936582549513970911119466505623882362659618284871264088059719475117876330081900647071316163181168150620692136258177865017958674213390673856399597669248236793816442005012944428085681411579621747959607436157818831277303510010847428666304112901165922176741899324837133504912261358788766033037510906753116998051127448501414139704881276681732570491429617176040366581124466873084728994923218479420295919216508682334569348426561172670790224577788398864894887542323034225598615267755240426508780818520085109571270087597171849184539443476048257901028241675742565283870807018770234413986385446003143280176962569545819607816409971603658507997580256884580154551897761863018969919700099194848957513512971206095157408689427850642015053104948616738805040123881318585835572661919405676477721149220681801597389922497699008355133501775191596093070175549065768359055312605505444980007209221336756940025187826121826571658407905065745977461169225779165682841381138778492028950833931388497520755175587630395537580116191271902558896437769495032106994572585510920846545710477819030991595272604502345339061310110224994571147186119908857890982851821895060006135969833223941958253406623205806316815433469216543898868190598238528448852042802761488093935154825703819955283665215351275029613467111162494499376138627232198837890253096564783801400445720565684270337394630952724074394895715023083316462851563852639628244288299246051878184543757733987699336318504598803980863369754232309211160800903599561937375435715240057880679028754553362386549375827750739916446746540983606323770618814889934559895622058322600332585054435623444546155986836298333655530252696899529750937036812332755615047845918777814663058272980220635106121866765103683508156238028693904532157290603521673706466466068577891681087222273032124723509667856978091442529665581198971912008109325737227511770479750836310815273238836929777102529467832945520926927445686837985205917060756503871820449058131871690604313641614025595074674185119769994169289960700287310700632548804772692141864058892622878010273242545020064908469412527282588997962741161295599353628312256262061746239624322547789565081549035702098194259570061587119784563457356208354807578119525207416216889883019092076683309992443771908949732073282288463459570328765507677423959055631035270798341205006218917040633095130894099100658425991625093585190813061737909224436231712949884364746181363463811658720926941753824838706418861562895369769084619682243852662034806230299756019457764294272259537075962845115951278227053692890445883851699559034645413286628372862263868450711420565366750932272181659637674029383922855950415236743581310829851488549616152159544848133945169285965390912272314108386439874835494173616021963194844727964497682081469598665488918540074553313407103445070199291810740766217816061378517166638295111511908994113608216103157639914508021126251585598504640202195240440657186915814027441434777787134679189243800235168864824906541156951815570163467688007401565098641438033513635037707808687951254292288296751099648679585254671527979456648099282479000221934243233639584698344836657104923770515927205110178946254776636369517812130801947856778484863637115405535474460832783993527219939526099019202868995229612078970508928727469800899490721906278693291561850950655012906259002040354651302563926131400720431486665312455279258255686265477879809474066350448560651435041604266798083104276175136914815874343188886424675013113499876785801230231944331561443470238135495447399771019802331046748272340886988986586667702731238685210096506401262678402601444594668338378350109418492731342204100639694487745992754395943315138032739346345199092927492756962942522995990074223593760547770963430746352703640869775870778196423793950566099687022488298955838867319003430344825106842132871941676300963694620436178354286616712402272447996369103171335291693465127637959164738802123280728233520265782114092924296460185597334023683350410015556622408772524430406893346923345820703522149664110693551523704207569717799100952246468350009815484930787451314525586213922491955970100041222067890529019341875237735620556703090048944672596279884041652272269441402767329798001454272470488227451782935353239266423795595051025310747301588824473063695308260568926262320816499146813324207375502427316826110887983167060399160050954618726797229584958614345171459155973652331480260290659399806979264864049191776042886863500195215442151247176029807639674667511552002149369121432551235206307097346142263023401859701206285272550336789507858082842079843780061942817459449944591042029933374925184280368108773443485136790701685256589851754992645789640016810283797933328081574194394392441530871298455764091487569810083875064222502802174746051245786921914697729376165434575171201074312435105438748284137333788760820587432114937570932108824193488454996791727383662775348325904024378915670489450043327833944424582586897959692670216553515026764960453213387774003418066941075118151677781991234996002929284185270265257974564730957077890458971648187330225053737246551630265362780430546907030342802858588733806518595822390577225198422195637086777685265351399452884897306026593160476338431118976976758745709040553611167597982329304291976890903514504317537017660684522651900344459351017052655370979047216694474685472358866444372885959314130717708035956649777212248695677663139089059074635797202949564084566711822745055889124695659665443061893381441808133769575893420980422115183331775506614936983261415710752183988455624819991675022411892520768084766242936454642705184091304500168920245800403486099800522807833670572106607385754846190778439884438555147890846533383487829663988719626324920552776610494684489164186660286184829666541919330791708221688427910330674808799945353133774286322246645453056866780735427345553020166916614756117445395542247147412588732152306855522378572706926016728122939636503648885159884665661825937566183105692962220036225078661313303850175046901885410170404677670068273782878203626701120782959768068225480181921867480677654138090988033607929804722684844826206866668743502774793381342932180475847343424147094953244392524284337898830284159554505674156223380987605125334470014039168176442312776083243744839738430309332300393307968719890799497782580435640798190420080187728137672736241372022222305275826653896727773086319579775919332297008619170353388696224825236333416487394015264869613063218017742044779693801441438211646323718071414396024524422226535904581716966039665773356737550200767271999693350076805590576350760244368494323631421573606161906892919143717492756235144573589918928250585905110265767586598972884127167659521209745553917096551545930595437614493776352596206693647554107484018760949840542295796741197979251536675085393660031292903388043327252428570174507567480060029705808776337344375741160880539426979531462508658279813167476578228017230668268170241513043532284385003884325021933404600415143680047285896351053012472692212769599052706337650809922665737478105466185829576902840268603661008673934398143161586472965902439880928860851801001271729416217074821531919073454534733826233043369702811962080955543068896053975003669911684156018039011867412655443029802128782997910716081318035626247364354506291372222673374401391119492477260207969176700240478771475903187477920730721123725509404364196606577280094947351125764240233553210957895217448815828879640453866330423747832476202158490042660899249929904508213024944248015045307101174508055424080639060375077027319129855739960618481720498977661709551862325859588421513100939009317624293279510295395026370398420977180974365080785436775623061953029848782964963278601523957834739651527938506840676254925342189621062377755299950121392643656072411477709444328164764996593256705333831596948134841292595264055152701477328087201935861806460504503023405196199792264553262280585772176215314030197647908551063263990137745096183569305769827975196495548191396550289401706427244107209653102915454728578416867641866844759950608698645425620230348062709264383635415133974981333884903441164686834647496689030383903936982173440271324259969257243394665906011304346332715975803857241430166521161387473207246169911975315743617961955083858315272814671028768301978990003164944524342710661003381510855529053845913853354442003097313709001226269733705992473227701027013478082010880420962478583557244120695301186426262037744528557344223487040257151395133734662819521099363401348256269757903108162356960012265766806680040157219114298276355468977701734572999322756353190905135850348370352704230941529819155811620128902260273904244133871638926142075767668710225139497790408853221361610324474032072118789093277672855231050455276540188712720708141422274654157759268367608735907139191314061415823233549877393009633203744291904341217569155467915533648254992272361945842037348653775433468046994186296767761163182971062178898813012702168374611372707632718467673331135884890216051510726359075127719143505807611470141746345229247373937897593361103236936825234737085405111251268511624740243605117208531685521000922282714361317660884521777325689863674088894591272602409534126828988127803196530854746894602296415773175196866698825973330060345581041830706540530410700736946957952585386330042001065673940761349932902441725985895735930312456818667323251567943123155693073936039453857106707529151847142220996388596372507480470141062619618965046932395039158351009646313076585376498813502830759462926236717574009659989668263552447432994103354366314294037519721467888977975367689958073971028574093615841120864532005335228517144144647898419304908543572856083519869271560919921712195811977413563641971369770996248538966621383215784168809531831743783786666263833593078195321284725349906312848702802950636097095996740927801351159929510288223936735184360377864373931280882451744491835899505875212488968588507416781119460367861074127520051222513680666636895211481268533347435852017388255802328644443442632854096343274139261101043634543298829378994365891440891272117536905832643566313725301407678046845643491102203596851607255485536362883630394993515377187462533274221517685586926197158172900720431182384534140939387697913462050576702444581543810750103279840172114343344091475459242603988841900533432333032525728725929801658289602508827491742940385390899133486026114754728171381954076626678338954952191717615913574227560523964162477628188504232548512498713665854444433982581399626659221594224738228605339039204598986515099057668976239412840218215519182068312458446063766205722985917349343785247948621140302142163960128471464986598757297728916727095799404319130223480834237684672747841698515039705557799596102217124310680726145197809179994640159232527352908552494819473081256982120822903127488804308232756491820521774109533796801264695568153725544293641204445756180746695055724065521708101584336784184542298773847095407615200227767901474967629467020622823393435461757909132558305914366573480840319297683736027880443401719864215402275244348443122594772298676834732663278345292972238815003325007795557287102971907691374206832664902339628511293656481585514289809672447189268844851838166575051340418179946846216044814885136666621896261950801209901621061151018760848558977727314111937738065000820461611376573611422314499589809470282874297363237307531433927250221003370156641895576878620167025351100680970957350306773320413937780493095029561166868892187881569630146818632847323356112024613733064475437196410836971287893221716362371809326303668813429658601649509455712870853729644896379150992752224600538284135558675839819498956033873485302016845302440088302011822709561123307031712918255643593175448549063194677718470419964870043424638651676938483906890134684111302786080674511122837130449427714177326372643419325205255010179801948648781708520804544076685023140802099490527231424887313410222975660120406861886921466565208696134144536414374909225224745614993558885041125848369560452593122094402999971202884958895099397747375982865151100874114334958522364614555134259655179841940633057120185228824143509206901596453878836493716347438877149336590086056056503820256182429478197620582552561596320648213736670715270353459634607955843639257384104145876632034848335753244240597323953827303655462287710425534230582129182165866083892613027501455713510474793049849831324085436603630581295429480447147100426114860669618565034129360867246073681150594214044986923936031418193139348454692472281743812570960913148473287480010477591486068340212567158921183428194124278830441763753628384179704572469716576633141646392584138381911351580365007149528897310154962743757162409896414635005926038619502758735040821008473122784207563149179961103262631364223100411091286936855302824620404371690569915147827736989337092363074946916031633941388693763391432807777548935339042909862153094507396390488839047226806027654238408963827565372116044114534594955104446894333015787886080181991712642593438398394190468371030393225349096948153768702678418839381150005416231844295334910060072135564966246437319927509213679486658832551859599595724546362064294417852801064253403583481479810839567312801233750407353888861284628363614812643192740654238795267060596160021245632914940254134601219646299482814211749373745402912836227225180433656253877035587822653229383781102449827458130316074399623484005939051227872072469374374879581535169478758032884135778869635168182344651776417038589051786508776046701706705596456720685518076261648878007380024033011241173703330814448843892906646059660423678410300657102349616287240202452223107144117847421901317563436488922020413960942921790900355482865356542005740963049631729080799482152357768697739042431573127565794858111922973424455120758585943904346858197184220015941876573126072218602251663895924475256569029062678859419514156765972118029238506676643650497497545320347555233622202947629024652469646456376302486579226825721556083261899803248767750775034229405766107273118937925163879795513731642047263503542032165655674172298462603070357987806029432824276832627255959242717547384756683750726437326552966765669326511420078328132972291216099262740594030809792960515076015313990069877644416912232652765697391207673817865537291156900369680264853037614107982034688015091303434649716158319367558261857493565643929136994226389733812061641882368271482131323558755473221948228686509395513310163252321748778017546388637342464657625881891533943739192296553537182620104478713713640953409579939376603615186927903462353424222702948773093097361630698590695315044106544298428522139212077873100502865917451130438156273123691317070871425539638313047543923488291073266251489474137552347044524698925417224270264397639433156276154223923434612184948773314097787569817393000842154159168750495842874081269355307972292391252917046446573749038460599785942259360904980196827195624197758643622296574521840307593895417678703172579772690833264684530665146380070931450573313173534893457719155774749228817502625420403790775659504405545118425468789205227398723605375325068558927064172053429779117635999120752327739504150028516524029409443785147982289084176855311533238021593264375789007322532556309860570666694881655534311368037623848199340992190379030235205163689346160368845669001402590725044227729907304527682488826972731674246159945059930670184042512117680948475265095257536698457453840904457483801659146158915505193429753168472242431973616512786960282963970833384982559609352338638089464871278737994432875322571941874058591346380849193595595104273099847570064254198524881083833247716232453267563115457367707054783379531313533436553469616510050074755006195176170427322898762294239917794084035882603380427240494099178914009530779893675981818831765403262028549696058128445707337217760911301082513862347186355436147463529929910781826203059792866309714598525746878367320909484723675583432744331246732430447671687279333848996020724949214754074338947120424432637276892259928758040543466941414721688286103414171331125834521848565663034628809559735186450306583313907878333934506968920660026334047034294189866698737428436257308193337888069600241598777616706173231113057981380706490210702052905215725510828034158584897639615317225773542792842224543504314810266970238448819246441468808864072601470257728862077558399389123501487913277027567783971803768303609756118591267534096109704290632832808080535500212359809158636287802175208981512401749023857954850186514007857376942435433277036846298315990665047118323836219828350071101769502555523004186133385287780218740805288945190706146094608601801777648319187874329390240624828193877883005472043368366135442388917243609974598025677845824538362687787536185428031913456519116953432955070676810801087717909395557000792412299867150689583028310304364455003169520418543734969356723535071356168740714826218120125054700729200907426160496964792080271646981794704224911001987532428524330541801260256721459318858540841030815486407937848615393179042404877407447646084293270717944144613511867334130551736976775813930352711242041781008223772259854000718715663082612871549133518881308438402833837950679021427423080214052840502096104509854144620546790471517703543272588287210352971662351331585138178502428744016576804558910516306119109764227104477521605440979458475120248008406024938146434467454407356512300821894117155146427886413331324676574545862480747485482048840575209857754541798335520032013372675444696150414348578936451663528719182622368179264782032004234887539091690987575701211950724212521167887617208500842719815136912190614328341782768842719453677005236904717636894578621371726375009627609021674792440616513359496180689706411929681840472754320808819391107472186656647489053950290024671371406422527154449296645557902655952397690456290017302308248781141098670751141290309816028749627365640205826274912401957138009191519144834426569302041759166141335499858607173150209388685452584136041579015706448250053964194342049774492442404360019363568377632674177654473853052228456402610032768787280401236372469715616961803009438676209007846647673743823632514977401165384464686064576056677000841698647608608322634107534859984314203330133960354751561750423218448501837353560838963836805791070003984084562907490508981173985807673978077209492206085389710643867679329071235356578648910727038975429807665747338576478404852558292538712032968798079696322707032238918640991649293221120445332290230714396368792118139371797586710191264857638953659386932450206203168310667876266571274718395910147563407053265635596523493157121490958857795455108377789083216540606378833311857942830029785447095457121697043013031534228252014915882445980207117971948864246488124888164469550201719476326541619446203777392944715432496526150724248260740497806592906242547278564186949110189507383835376754968309528120365813652918484073980883888206166137517296207121609282288196935713088248172254750413396513140293907899379628697665293504582960777070712875329069964205792561169587393954336198099987405811948869755540519749353256557731402625277553224760310684428756818590589402171067875553144027934566834997015863506998685246262963603858616389240023335381241220214171379377851520306279026077032010383521078988993766561880003609076625133035125821162000110918996309747397463450173781098496120852652013518856492531751475986932368825188148674000694977466628250275187036954482703015327231783764597045761687121953165954969949150916540954976146874828618996984906546092014863546187900776016366619334303529082637378173012368590168808793163606904923056865929125982007035395692791053524435187943092050051009393500885330967737637887483724367223911642590409122261930600200084400984068054971510779157752572703339696027271298659356785583884484546712981234222637334219755142064752603312733154794721926891927425722881458029688298131183433607223381663045813542192574187055724508822854331468165263821273546965007571865380152370825715963759204188787757418636769011789828628348151093723415078286795175456216290539831446936989624407464879265584934313954738800781412963950508520132486775565432350168253687387977809487099547601817099700395571688202560237166259923377230595463017830518091755721816819123315504169171421371007084222261123603049922709477992826875557178624353887553239728351399239123131191424984282584995731726075448875571827736794846525234418803540262595591525262959256590038437281337684611196944901819582327844127208981255647355426428492160925127502973187862006699255400931155212399697505917376867639930093076405987900139660395343863426982481715537871003158845604885578307353865414559210492621527188640952321259913537424659000890819708314317153063935481527662003788597750419158699073192879592148667870607355263999882467442649811906086282123782921669811657870954115493676130900044967679465867888939888404526781424525868904197726809855132086918471522246399902503315820235641470838343475819623756596451825947398250954936629227421441909738695044997748026703267061564505381969776846639056750540869720730529180933714923631690392904790935145907036869233063839885691587391966482162144433132921608600352519644157977380869087163829396431567432652992410380492750174661854166939928955856680360006820136063095275339905596811326580941258709742401128891675683636566195974798753671789277774957589621600635121284944793868701746679820672988083728519984610090303107772775215761198222347928950383339308281683779326776699663497442460006296434603011207264984446514443712050474326136854655311658535479829184832741832638514293488708536058447061863701284388082844477711461669300081459379139369229263370190209560834443098710027615917992187154313567514127319553066973979867311155588244353587990025007395264408073894379872723181155173597935303696077650258832481104704484455001866793104669561328301111232510743529308071524788583764996564799165922604954835349899641016896540243291791114896758315064663264247660679260197045751412991226225281742173185076000022278460509630118738756631286731411430603378601226254067275604202044164578571870051821273425554898501858620569520506381326754602465034849212825486077520935164446785963088325150836209469805172887961851173385998649262072135795843597356476694342453574834576142251586125796773608157180155083356646634376476285856679867124173875915542738508840127121513336522796269757156245482683359865891185809124967645115307812644915017133132188891153396534276570406900925617334490727429385354945228568854069033293872329914762738561082611670798280110792191593649973774759689729900029811291399657197046570711855621670226792335324412221900611737843479216805729690801142702773651560071466666603772062567345550160667332557133651669477894703356279941929542987561890648259789531261639564363002925415332693120953649838139729970614898513772626252356303456947349780495914742256925260751308322118012017908525329671432517680825139937648430905147173614379130256823580404789550491544833940683832253061373082200809517582328852452816980985849300384425670986472669890347081511435159195328066983145404730808132926064260208531916748196082967298022408454925376988104101653635043781851191850148644908816860077779478180173823545981211178640196473141181323045404655491971512844267226520123023206172039860656495838309563702820485096868989172361482541259553926600796231529259419167208799173645894385640781067730035608290908235688123967543540854979501311296834087263341965945511493686689341773676109533704195945265141018042709056312094490053595441710039235606711729911720517350884812515413269106707243833594865108676534079349018163795239068246002560305202836326165306250487159025268681815614824901523004599914609010758073261622713535805459059103038726900312292280743149771947951259473004375993871463934573455336814038389795070143102675239063031057296142235061386482438531971251752730350762786231112794944451302847650627420035181607840455112773433732154381962914449953206615812753272785026362846184035978271514066061437690873227004069301171569160433358827196920869018052462400632583732427656603730944311773624350556424435420168686488298279510234558516835435887475384061728921848824704111190832843092872297910082546790822276869536385040333381982442231174208041597238768797517633304368050773662329294273192295220806107486627008034940291863945219038586379746076713543206941275091628512508162640952636213062660610149845190840238320249901924335475360578714740607310310934014048754059428993020936449558433250228217349708431205730539019932187764485558193080646182579618961094244499673100408285001206018819430155988178340054683726950529297830182526683364915691894512181810130541845348826855343255080694701269891867462589998010793008091397502543436972175747891651222470231666756377483658234807904665027459522580078097853105989409488083092396652310079327049823193992784203673505940051552501031964019375686714521957364137258233898283331164278844650425996749859354356198081600056901281281918420854635419146973928964369009330234341854378324355748252596237850376552633966950851846937480373491590108124602006227754253396599883292561900483927573746750066405520750861369542461154245703512584548821774560063916180068498994084879138321106621025062415367861136485192883822853488435890369735256164513782425480024397743929893374082650475930918168128481672197999218411236658888676792579597607541903871120953446484717874462394390017498894447278236322771282987284915426432442464391616737378932820155167669997032201105791250667589366669983577242183338537383350086319397050626992093061889444363707956806454615781127118572937680321040460587714930882273771409180030457917219833214906000190599437324632701547843747039125159719800372498996303401118165753474442043755347934768379576730803618035760877081860244037290880474810290667954981403275135195550026978625014408679968263181324672861515329967371799353945343411916642503603524034487529115586302101878434411048840452669579236151833822439688731925011241987920433434814964444258243495918194894709130551889937290388048322131657435362007589952739475121148554339226796963772171929578588183729082992757428700130444819990736605198733349114773677714871702753701029225432119294815816939340117150460475751543700289132473490284507734547500587673023175833070383170389117214563168051640357869162494188681983166128030661457846513865870446194147809641384532988683756231245738562068466187734808740993808135727711517139804357453286553934390615776139420547212602438946360036250345840143369375039125327391724516738662554351444372149306216151292837540043116157011409209126695881801209272088732076186188439677585234569168209774778020944568839283932765237561407925297414345145316579235455082971641028368461000073305438841337415482018241568185547138698697465915808568485159488313839800054117779692405484021470638250943418406412659812862483548499939952125130858276435590693366547829179580805677236612574957054209349849544975943046786377574458721144609626715223891373797452095542300004602826562530265075123418138536169335829175068843660020608106504091574156331330161531113486749108970462101972957627469936068904960797037217902360957440192848885995336061656944127396325725062128359383823212730805443716305650072328990514474598926448822201385973478139933106503704981538108386869384707771116966628472213240510182244993704712409047215244004318746961305361832777051417490066981138753712196061911999939048711126781901234696843762252464269516613708461099288324764433746461671803301025353795728880941587537915828125072281028532799070281100759703695211393835224165398626249859568742469043711274968296983281606633893469109523069657420709115111480029892210828208580195981694834744651034426248076446378660916289082486500519843837241143756170249391364868335619733933179179883598560312591948783380632116115518671022533207444717547302421072084718776567388123030294483628375287480685070515259883522402618104635635917079316698514371275744914624327406863499298207633381686418969008354003129328744725107617995867164970402675207351304265681977739086787853835617244188599438648432391006049202381122714153587042648497174211756918360983697445657973024820751708114032674071422544645538326411254057103085947509442282754333380781764348764212198679617582398955969005825117155069052376406833980253380168607115816847910674951353785363723677398555713028299163157724066186151152645486030521453335687900376562224121817522340740638597372855210435677599181868294390088047341223022826198211221775341166983482755958636955886453149618033943687670246475472886743664692109956184543944660010306742864707749089086614411204529035325582144522170947575634012855564135162238325446149853351032690294647488518323387789382390162183757825346140726162775837888970992963126721827288589508513326537042691847298597182499100459646704210598563641340321134613697981653737309171863903409259255355857088517517485162292730183021609829568601856184594699626847772412912900027179399244027676586081951283023426391036801012055530190026365020198512942440229576475844591851060014941129352279848236303799112630903671398174829280241899930407956106906369564258097318327674359230717040893888587753842177239009793515899235002721969106001396130931159122733685678196474395569400099831675178281486528474855781302386867040575459528370569725600870413878106321112126791825928643311028641249513774566784344973468445839364984647414309230287618794093773576026004393132700109183313518651393633788973108350820563310754706234664058679889899245849557658389174997248917190369082030383241397986632613371557127053092160877120148605603149283848144921101849795986097190686729813104339743227936980969904945626846995626406115382163190424000374804559009485378148459828427310129025892612085113160645457881963726557465017433455933918934388615956560644808736889308969875504738963545657704675062916117740421705191432394954525053978880256799451120780869960660117619710292845431118718187433749353114282792835099829440353062025944071278449373952529855575284145888294091230884957537107850629041695417910684134712269526373335944632579920715517794806079158398315271633606719560488304930520118331933382536379136630557536821874532869851885960326996358905545323317230752581285796436434283486471234453407842360418782020673178248204102837281945945923219605643594902873888051744802383869169635398013501474003976201361343957114429858251844875032020209912931577589406649440155490121879652704471367292918642382819030529137995985624464599001403271034708251758967397747573550158758356663736214683067141404430180693632686486446703641838424276507543430280832757603355302088336420878637724273950016051716142192661533786933400962483777472838004337622368714591480263561468437992010551167935492365647133588514622271447673440538448924351324824316948812490393039760903862526788700395484434094038647010696711163161550216900812231395984545434988672108544052995489960830264601287401234518111625840058131252711489336615931065868097709920002187194650607851632799774923717376807687276102066876065859118245430586139604156135232901623723768347095488437656379538994799121292043992335046260024626377459766828280163721587966751614386239508575182495630743062226848107559707669297387271462316864302650537864205754121022391727436112798861321772121327350035379445092175650307979789242776143433212108508837392611255362076848060589448571332570882959901701321840277735964895014362966349168014459188388117198836945834290190730601147667896837635552011767102354606500374583502601917501106843822099304738101414327186093759738816679933164188574914812394538481178708333690338350582696927942004316729358170699219155972383087277448984749603574721670476681881491117045125811552118389547971047687066472109035889357346774895018495006427762157488597292868019244448366238763319872228227707566244996320180612308962727338831433254584556221894182260503802332115278355381684732504625583935219070400319847911706720882481254349372552570235008681382489077112693081352112579021551913107019950062698679818686869423483084762632682618121722053804601066870957846189844476196828103008455536757152093959801931772433236467889078077251820887110369871557910666148235063111968962622167779665841776883388771080624102926245445210273467837354104865812664800095364812251500817627125213453976361935177380594012693269957067105561046517833436696345962125168087075242338758380646599997002133542716283782523527814870318942899507226357783491394081113394174337427437537215991366239427612902283618422337724450272479570552704180059149747829099118728774000902689160125831123132735761681297089473664991929647600950477454352466163328498915027326380673155104992197910638577500351233175874145942665314220412175717058860315335168474442310592458512428548764722413074778571477230891507498338315302222841979555456400822856805529532300189349320740238977148439698490382044081256177516075253087482080460288112264927905444083313901964245033187075845394351215008829401173587152732081245527984094892020826102085764442898910830112994628721519507348419592236035496643672927167170846332391838208403851509255985552335294226990271978805334630422328688872802638401931331461788906424957567927324690457358222876580259325388987510508219631862676901871863605692802663825689954114173894378769456903447177492440657781770828037396687240545367261343612193122700727971344944256903190730373988629488048738962162621295550521257298349468222658861273127706475478841180604194533649633600935484992196130562587537137172055761507028804512161832983146765512594194809795389830363441730728741032877916024848097866372430432046167701451723909135134710182054421576182379542889054400060715982919540153054366953472982329568122725187925343690549758974966629144894958779424268575206948649182663486705561333344079132551260330677773941803618684187023164972593131601389588841968633370578484688330171830247855776181243547153824143704609916587216030993296715531886793849669467358919796625553394534980045353270550852369765500503640988093872168856551223796661081875348109379531676228973652294723093991443956885027877161895848406640523750639084567214810539336408028290254494711386474608179292113503171219391165547402021765697236535950795418422075117206537299775025994378602693485150336503864370709044480109856501061105027007999482159445530068840829404507975901926513249066758618161137545485565906542878597765871716929068440123432992241284333907893407358660874635598843677487296483281350276837422146042515777603575025170433689916050598445344679774233322269626971714490134246678839397570467230779110119198644119737572915087547629475243972376446129446428911864298978146736837703645624625210200556849697602451043462051792695380650709236662111017812110467778145517751799185782144862405778036798121395220680705824400059068825358549293464320507019710103600564759166694632880085124964369357212044481944957114940851925079257654125895598923875900778332220585200128263291236527939825282062561086739879877931466217096689476792837136974852704715064124935527241792148244410697811630794057754791894673938655211149142129493246370637485122809965243283296048568551294245963585317324713674411936390356709154751757728706621505101915611671794550714731125272061627299408388646928390799613503806770713134721081372616262812322164026741086676535840632400139056471889211476884598700096671704094018028007746340854746693225016126333719747054514467491482574981059284953024930092287896833918828850969833960806292039303231335253339733967277077599049940802039491260774373422472940884966252340750515478001383249693600623472419515516426501712448627920843495501482459899199648562792644099964175020592790446965347452596281355709848883731703922754555908621932029227248824661703211230269867954372934810054530384226951061128643995143758172529059420800660406278634810446917555288737548485155563230282038513848668637923712215249861251626374009053216613504127594693991697763296411084747177363602009219204175562155031716178837504372978838188472596289671205999502846017771793641878449333677439632673872676408716002842118690071240013735423546860516841223807092794675549352873214796405399514651734597188098042187182312445738511895589793229485965220303192839377225599494984919944117392455563629794661882714884013631232707649876221151490059178765076042122408859487443869249437812109813299119999838859771504577813951635719719932372738088414962986462527581070668020874378877722191517764666698520832165146308802874311646963644213817138279510476512710473457710183005645278894750557072563038956783474112293001361705945649614533074089431160063552381731937587986080561643689586135282832387873036495888750600905382966302410466133652264383550961386635354647447554328405391416995086439758183904556369192652944630430958112089062300755364978375617867313138921789560543628396709190420091083596908784741282564093546557021037953165799781671868022858930461400485142838349703170843915624362437439933446136644228899580723400494937651119291361140257360770095254697359292728668037679484370014073604985975886815288708905453543399274956795973008895284266755616331303740837360806224550292262412864873483068233933722556976922557827489959664945249415363941019133800178327662044043489178084047291652586081050376771055345331344721859780759466603145844317768537185754167862602215581566313764586187478717028651556750814609806611084414278570151797023252422116081731926304290733093667291396318402898278281635883428254480293212323808421804864345264024868417085150696095982656656298256357729390068413920123745645171310317549809801414208066968088910095191338568088316845518575538900724357597013637825012751619731631353119555491852196890542640988406145924206717725250837018989712522131457869108273589491646813263407707544494007814295466497004171290280944234903109679174051206953605013497997507336827754551223702161418222793074250709254369842822976853950553256266804410137512286076952424988232247803570913945720068095746886806307733138188656732218667577993788847412048395042786168803213254696378896193309572119942896176940640704322253720825830863079741693345942143528026472898049388731807643258083917583631923946530818364846727801857854717516240842882526617405495052897241028360808445687889701475592358010214986995720080727441230458179901198575205497034233063363140684387599894487998423050115054823019914463389523983264240528063172851030985514551399525643509208632333238276333698832486672624781858415539746219274237575186572051771322881705340382044085090268684408127443372459744768300232073336096265650762502263634868001273573273612366125491473104568386394921801995612299530029913887402356471999893758002141395850453591300440985095160256759222228938740053167582650997777333548764609995510825325952450777437984485331544838358401475094052777101266982771147116369447224697588395636053852685336499089091414753862320528372415531366550387153438262654694726786695514090620825072890494483566435243108114746576982632688531227393826445217397482063050406659207188672745767523726371559606025291556780113088866039144789017708175136626731417630583919754652379015466910229925366816440091452383445711560733592703380854816644529980044126156759668613669767517748281814656226203401415093975394026706082205418561931631491228537277336168677725031097807212190042425829898867945925992726905986650218875473560727735520814840511900756293390815420419014654459978477540977712186951319697840636298277760779868972662402229924846227115924926894749088511531816579173208290433721920771174296295847560713406024196312091241215474460696117731102776641120793693571622932002694694176506800622151867221455204455862339002507912549230911280745856731677281253041165299781915462337968257853085358182872536411067965889702033773835345570625989307021743379912263093747454522710243556629420120911706219255189892926021850567106592612786925266871517739381906203652759306514522462454493728783623465129932461165578220519282810397530770477205057228589730551663284411873220228527347004193852893916725952774486898115698503019006067673658098059768538658689095524831760620102985003723265632057760441328812298959463505468128065505452637344075332184106363907163953787454188252336758810947477455879355666061185059993778743177582749803025200361889509823326511897422327343992235696329537676455855579832558581529591943991270026104858209995694195953652547381491971237969245370738279409081160341542949200900029139939927468149520227513911464791823710520006386523693386760099756597587364638765512707379534060323145622320928588982831006193923434906518414678278278875235922804800565205123161964545341734851097054001968800757178317649651055749537962249250264878880082779572776110694333423549500559510497935904550092983731441598887078916814834392195049917534639740226486607227033714122081249739407590188055802235001451488948918690546412617505819912633656024679101904052774240359664235515769105967505783968706863459297038006841865479141611114135932682727040936631430759312915872055738354481401011241923264059963033434685690300229039038878494551202708172867354208255268964528745180382175366467429658529942243796442591539372981081661230347639186267612225898661802692518807270725618616705414743164637508371099089115628098941773921059892062734538376817010982254813856054682957061949773738641759289526542027751678829205841530196745510325144785421223145509137742256794174315725534982226040252843070792171405279445634057571946264307971931422326114713608426342655131472186496639912642665518901958688455874147688854339493286882523521180943670676887118089868190962447580040431977937816806738244666157674884853635384102602004540167852075495647616842957916461433269105060979694508068923591510898797433728410016228020468890058793948052998944353679748136538486073196665095641322324032933123182422259073679131767581695679655665850646292742325121017824077876076255414656421703588596406836285365009016226124466593849307486373564965106815978418544637425563374373836948008661287083597626704180430104818120655032703853578377394465224930675674224351175708086999343586809193492146113434731920023453337887568587544360951772790047587218130797575393153544823082000748133608218202629453360796897879838808340122285268755118870474355324359573224247138980471156451805616930360778633266098969701687542532063448030287372044899609577185719037929294678717837939057000634161542699929296059467132573182389144574716628500013822161524517903557471050430814216480844639028115495939030373301388702219462000343481484064437867266505908350831634965151890049688297055567091858287326918087497282056853350483078740477458746025496966228597083104897573167343569286120745702753856040105994237602115578198026465109951989341796434081567362359175517158948019672847847553342398607742767894385536025118749987911161127611214427887201855985938360059966284559029928786026942408290686811685266611511018469472774963901270852957845118402632470596913532154159889105840278019307087019714500624196934821901539974889968486692760254035867416327534760414366371286511030447148763766212443211476365998017325839103340346486367607541689335873290088186204705536663079997607441130196331215595295377144724875367659701687126255903548198509340112157057567838682645191206346820231522851327193270179514600314647117383901646031683053942850233979387764306855779786517921074772562708715968956162437355026319732532469083173956386601680058362842043129368733456273252755494972327052510104853385113978361407434614098112897664678226244804781793782983582247939708549563187098689818511594895039659872105516644406209180429824561575999175399068309377565060815040701616999277275725135883190604243284991187931107821549616950491804445142861761975526481103251083907412579989798736715275679281208568134415457142089952320920227794340711190943532572329563286643524181727160246543598310937039067676095677791200099024064186223993072700918310752660887109125032012973157060369490551099398582055361761158892064690088832402479961252506239498400181400809648754740254764892750207231738820197252911736766896118941990620581885796119024223514162009980293945568818194186303159261461190810432681068829675229354775691732280778719363111422139684903324695876847664994826446612183725030961840692375409720299584102684609378113173064029992644305133342975148511965804875382971128379701494109998307575898794935142875863266313764924118263173023000071134675682861764174210545493045562703177675620722677142121078201830857708296329654270911181010980015255555311098786858283403461874131925352066504830185314272570946589246213636028080448111153762407322267507628841968910155729301920800584487494145705093030387719720648414387929146884480287568132680172615504574513140254619828702378964015096886574008453636088685053669869608852533251375725797890108674329718016453019876735565248669825174287315257142732677036447075054928490782273098078868616573486701698648714066638700500237832152454961550776430220016121618927210087622399128627259840950240273132608970895411898947549078937972344845844709463557356675313550936256378486689203548855350740846849730751472105486176551968669866247686970433567711484550915348548677778369565361775731157125332451346399806201355797307556431721036525192355497360533233188621302808609409925481293495269032335317687097039715559316777802406614176070247347484730844130778654676766891407244721616428809810322498643981873324204290791030850477241772534716669527993585239470288957595564943971410810190061638302104443753391628774477723239625611837441792849441724601813824567774450454738466472550343838682266825355284973335192007229696048641471427263879013767434686330369893448718952916735751126683223121422078330032673650569554110617141215689753466812451971984233891027155762337467382403236008134286726483646305353896407487970219758335229285067177330417305870826018931912110968663403725457593226565230232629743646014087840032967836708378147127815090732266138451319552214984165782675076024618008304158788637000402290584153998322290157271924985071432145760545194207236112956460588575845540259597829048301626162352906166965852326940136812884415127874268845272006614648182595523316445074964891287230291356259743232324849897314840708750807738777814753786181947591536138829693879276565098107075307351598918771631790980066570997009107330893910313396720563324753205621100313502665074392031686010345083952286727248704328022630703824638604936179378992162246962378790176238773744979100768387736696724791560413484599457231708210936166290175452984131230314462365926229898554362712711585635521039548897244656277517959456963472313472600028202463937592452378066068311899330517585988153898526274738054119354634019216896086532855014470329483801199201360043559205126088363536049435486795613193429883695894133268442460960360442291489675447344188798892714178039348983229072669019648493284766299327346290732448675757132112770636737776516186805810926678782124717349393571414929171925666234305353509612558568079506597369148139243518138876753414676757897952947899443913169683043089305901636145439942740778024334932170046232044850402890316234697242041218861605925709547345430378294475064370756947514363221786997040342767810625841757143903839426752157083587028757692930236444544003221822720725579667587579328393769013855945659432315262652440540094274920980039675403022203420732936892562043401109976427239739043286702964536502282874138151013335126882641686420288565589096571303856205426799864274535522457834331321623183598631668265307570506726451607465408137022344304972525980577422949608075054582924969255214353975970869434529812377908846319973170989883438311177575572670697073077091606992019519627894507960113457770882059039012609611246961780806310998267095733443472150776421158718275702299274221010512240927686121140171488956872628465192859508158924711516999048937776793609898245508204751983851658208995668517523532482309241643415525478167101538712846702016857464775724239017679715994235060261436682880578321878571880047074984422292249310672214153289465300906801038955331487686192134300610082825787847115437638489759482226956493648771431792082051105563769043315461064449816107573143801942356238173772634245065453559985335471996080706342985168384977111844608942369809209767540713204876988472246871294340912981644110201960997247099686688404245444576857455809889728769177417914394497722472171681996880736557812828334203316416423084859445135931615756572577868555781644930599868978487165490598296509043697990074309159467959921707120327898658375487833747181760161337339304351044400778068053766984933587088274364467380010508631361032978444767000752853594730742990908500669218477688729855977887617367646514152588986439358586521529502884795069964640590481730556373496009465667240061629379655098753041654834405571119755760207191675469242446545213491686350854862219353646891342786030132431868715055170561098874974169947259434085728257241384178006205890104992240793732307185455947456895054911505443621118244478350044187560348231007601906793850025556517958982701508838624274021959420070887836574746330136343060849455329791945764148182048972505451071783306089172975558107173978721184932069899781917827910193379898530729523470185062937607698682934481683930687510237532136478680636817702864455583711137674834775319859491682983253145862190285648838602911169464230582182727487885392903525849690273371576643511937434916601965864850041771034769941084221541217422441322617220115129550898390367792469408442269804534652214359157044330987985697988326291128037031097891637592411887808677940698668647919400035345796771152642025296922449132304372305314715180651321833216717289635587204662860228967336602865059299149919542582473625809188030707440279046991769627998518886159620577229849438156020360076280257437954592209213625306041292211270881190355539303138654313489907312543653234904641362136233606552103787475310053233548752549777411077096083670105574546092367826558214576297233984746456224669251412550081582993496690118838479047147190373054520937019869395741952552591826286197900385735347722416517501665788031162922008589532806148830879892716087718692838659300302657158960080330020150189463277754907918710653268617964235735890514343637615592673224816476474862743500387088711052908868863322824847027506925532519549735323563530319135324507362219418082931404888441091753061217824030088683174008469131678382185914450206704443002530776179176157572411702949285565196676022204577969615745005260390676504858809654072839729858941124274076660492135771293931135456019814501590810817617511638902325218698373084556575958443624185090528019632098691905208737376143802657557199433383859646864426466466857356098134231017954526703876761486452151391558391271576449369834051616353445816231713248740824571238570605589833645593698588088872048649872814747465490935391403552839419565786601127315401808302372459915770445732825583028468771056236595729690892282107499829997402114907445847629039485230635196928926072346059942489285187031480202830920526421173945999991968135683568592389324401853064642752771012032035976357530702568133269651597813431980417880724126284791724713290925110135475731563543323531190715975242422190462870903068721645889244347321270345921815761463084170353288219294171775116443400737829117514355020735104953364286776892844148520568547309521497792820325561062774906238206422012677132463372822418426458946449428530311464234780379187199488923166178771114333090969358099757056583361988668785681268942617021135996125913764968885820528557480173437755273515753494857459270907999650798762591355021091233174694553454520925559662689445197091571040505324609557715140993018943969174234402892135564445578161177774876376851914785100422429114937147747035810364858621311252948132066439737645490278587033653719431022144190444656602998768351169262837441338420022069871974798775737510598060526687743796511816141681923122291193212144286754012716615131899169908710388160750759278356702380340135235184780189282055687161080530390607838639575153825181838700503733910680642046568027794795309497612064487205214531989053931143015239176959733040519285298595617904866163027045026807231915120287948094898699561055670804486857151793820853878352135806373494886826439767779452380032006367602417530277292722331826188104606762933827704984847569370869755827540819545705250301054794267059119207964917311055602678010662650389002064310132763233349949187642206097444875569604860610446946521211798690026038128327429879769414890141876333817345048588152466265429144237843278510665413396598414312340958984371432977175003935717888145159721158497042377413095219189178805290211342709428503181012808950659109617213297175770639892983396838659239057279342849917162439276524483606864695437359952525195389279025944003528884367534771679473643471302899167264199552849285865357826283951827199465285698564745216706326599324188850086155621962459626130309570151974341687146290362504328368825678975573260916187673069872389564285797364199035373395249061768930086474027826849737023910450138161852438772860473086774618249239382199810580309354754589398851266311102029712155531762827984559509628399998668559094261884638263762931300225148602458823119670791854593282992227940767328390546067529658816723536039987132803145699602026294415732468059736006830461870730942650648782812181433289050542717203129880411282282952331712795451085379931933189470509157149707177143706062289982809051912010570970022730509039529381020701966494587632438935623047462669558616835461243836626907504128662844218279177113607957814563471985741784368034105554082459734358745645887816263162957907210298173685378245370766392131069680631117921242208222287871767626028890797187090423811745997953453860419302312901609860469019887391225547294927771087101592679432222694692048846739379881999172804303144378649015431918161061480620977756792274764078203132364204557791660629627790798295288102286448877410858469308890512554219033077321602241200530445868127454349688190980782253168737598604302951290080428584058078300211698884197463248399874577750084529962060255379410037568862368208330123227664704421823638154597974917696329601325780768070353613002344966174684175536615974992750842820725804027953639846736347272329556720008891100334708607719460963418859029967959104290592177608111842838717480409394826700522405772547300031732662965495305202439751367253828427394086999652457914990148636921832307962872292842160138344509653736423080652140497627282338577013696242996592141664377987055941163448637721953890932376708707168467631997777766586812931426862981133578822858902597937771333812575945940287219554710799531044329093488961230971357365580826757743556777077581454521067827200169768657299857070417162434038538543153999899579664162889112057073974644327168924601739448072770177571202252379301446962510393103046942789023177095428074238538252331487855959286153396124323405789760845468563270614300484298171694701935166418957900188942230994043305990967001616292608336393476730703269956756881496963157758091605594018962671740018787935746340898706241935384813654310345931183862324836307306840291874958173268399382463678060467532996486863283496629388571681742594307873800084449047428524608669707599653007822304745293244782504616478571794615572301276441207600950528361026636090477958215698299677586403352420209722599797759164428387067720454998059058146999259999193045861314538514855220213154420320864654264347268296776687997657998214587795341178289747412499408033275203885500567108440772363360554494580694777715612215164975571530462569972762480076157482825704354416427877359535497831218580105868319016548172156089450804659827911381075483663383682002659386225453561721121324773452047929448448810440027416267135298969393615449133945269078928106373461521498661597400340018372550088685589733411255478505592280682722967650356886652299745204042313698539875789781277357766068633013505792932859900851130158757764092159322240558432565935129322888769951027526371384266017849978515286244310142362870959859561453921962010029011554842068537557513055037434957153688477062492720792175339358594745992632612655860887363776336785620793778817292160173683694296328161322136298365823913771091572706547612634829576392470418074090480724910888231021126250452621113565244985619268261876131616693840994604845267204241117236524275281364352721573670027768531884611741726593706372737620386514658218476302255389983796702638301039478003379257149362691123369943511599251145993031035730869593584131493611909533798403345508269287897380588054337614823391227732036318854001877023654963188502142399108080781451252504807226678028724918030090798980383561013377594025135175315223210311181707207649004188562497278967485497740026314416857136151378068499375091536577445892676447975679339649595130966635060149376781623089820028190284443081015898811979964570089496341648148868705642943232268520615843378799650640043832383122972040542204938026845741794485407633371000357392900563941736103900485658680230869243358930124458880655271677619804325340931070663875606121773203752594038847366774524721516296850041422904035922513577929887642647062708355345553890205412234054302927930363568380808169023159041438931905302106090993191916760990063912546142923576078162464076226323027511360825172596160111534707767414150577620021400869011021782621033572728781384681283709620343185642022583887893396330321865531756833171654210185201434925426071224810360751546345773035684483903723354206761809474722236170611618432802128584380060677317159985618428276036381377991307043929329791074429275846930044261966660323070143592506634496459815869409318336928650576320765965568994744356996402807652104186370016664850877705882577962610294641087227085506609456478059600668798828435130365156837482242587577393031750463591910642125987025827411523174319710728818131036619685268868014590892347438635523171188314606124468293820791341833478540507392317410169036029270645487649624017247407493139747680046874689165231339350050494853539200589176051100516980156541837908742110142410350142912939613591406876591921190939472126598375444953861072183898914082589303574600914012396355111304920515620084612858558963832002167262081946043902209930513816089380219455510799287870350380153779341715291127700379953813050902741360437426812078802149549752065573880110028489722525907510500972590825617779848961661785127572781442808103812115399080410455441300682660284861741688648576649512984629188120214292773741838505458085595458503305009612583649040245783139107997668237437689978027420630003986319242804895726181047382986740246863673133635931261200836865565631075085669005798285289556451155670469503626853698337632720892959677553462809232856188166507140596952003198590337972248031855840700255203132143209884295514628893730555265882568888053849701614448034911077196670640360186646659171997204170003852136671357286260388952469436898796305630434134914771053704331299312194118295177151331408382535927507852172571438954759169166177765326841485035405801463281953928427448105425404516975679443556237409940277019007205300067570807343483507286137146020244283923166757462628392368917024034879531603056865780853077580469174762546211569491255465093433782823440352967218173417565117964783287991186794857456636858546342241640077972104376948968880660296633778679873256916997731945445656490104791468125975893370167163126023361939111948204343058087019792507780730469186790624336373457531304312558796477192585248274641741800578116640632850719680358882296521137968486350101687144324610420337290910112370967401807923553099638325104316995449108074042070344193611163720313727256277602991225184995488569258072291166837324942670103277700158830103268035452313075263070337385257256173933481077959851061178951485893770933234329612773105358364545471494824011309095216395232875981796694692169872457927743485603120847247578671127383127321915728102006164388918954728809907106583565008886139360642405806904135822890888613836400804742793100082281535408358681507202265224170779206016505215260512384706565343597463785385028070791660263019680235687609527144617393325284809146973476624482428157269601068447554279984236938982019835766531091913064516618954344016925633190209524492675025958367893858301236016101521996343526545487790918899552872149390295051188249552619833441545756363477064585880174236795977931228876379051890411352362727830833179977818180212991674847726159909570928690591152718661650460869789533274300016129791549929495766856577584824398834595857331542252227910776294845728742280426894314886226768599653481336385044479676854238916035801711269826492416287168106624220064153788751033695001443454870571049739165928670320056894879289318072468479063274461205227263758450541503740475278137136737211017567870720276523403848385345864232845689697170288060299237667264685866313703752761242425023246607300370095366783140072876379377458577889745048792553130463404339239134225606882193216608756553475703695659813735561595239624802146935420734410222204404674204691657636838675087788172694220950572645058569574964991392446808932944071424815241377110918104986737736945088360216522899642388335411077063328665256103986323171901371231436056753984279750177482818108146396080283194535400472884680549840202977422985632767993179948893190586889883465768613179081025982388981911487228698276150244446161490500116304115188058514058674936101775406232203676559247939179411395500870044370303270030407768120970745920044946126943454521402477212659612605583184976697409623940493500086522536658462337436415001785193481769420755665170957843734264582673671289784794084439041450458730434529032621006729293604230399843058721929213343892544359441375927170440507031585198959756115739057171345754133283783345967612516111640620852493731745269126609545238904909156162159406963523301657817666032384832913690924500254443618690888148619835085088505635923968193612720659125966334875244296735077372773528522878198684428715687400870763318339242935697221026656966768456637843901521935797862149794955964847695947368643269113785868107598630957979718468488176091236090565310105145364615599762743625434739992023006737264409821851493738594063217320653135252694337437141558415384006937222616129453808607069368530166335181032423179400404386854537687385450385594421419079401940683688351668044161738074370637935144400334384801678341962116762189716552575218716582841083976695314314889747072324420373758931612113606106501660241940303449812206683215016867737052604850503257550892033159883316512300178226599457678683866455230476191953099806113860607339193756036262057706651937868405039928505166733672615441400327510043055230812358615407859419874217311459306110208421909306201462118328890063607883943253362191322230579955564787291036228328740761765319408662234291740484445737723372625686593530451373820285117045591171656736494656353795148004446194005345767556662985666498899810557137068799914153038456594358052378589904417311845432696707503606730471497435771550176807233156125265938064831906021414284563476739324014707055831689191367194606030374530940351590297115374495900547298664635777991886487935107597706435896917877099183094325425081054162207816042180621371003201434854598633179264507003022824380970126195360536760462865431794372254711674595841714861072203205108567424716911690951630764262621100288686578453625205936597705102416422048871260933640619514241158724578771059895157253601179531500912123672587004329504723333847688854791883905208631413684500318133706574047744507816781609370848753786040176640046019136970853396369316395840624965566057862996020643024617744053624522490659909953690963689326394279025262158231368935857385358232057174235994374612061238779953711921115716755982117557688958927806841981395601884324968655455745289912474951160153279030183183778735595277594053773565335964284659047310640690800475108062308631004276277158622300927913056600144340699706546726675514945530184496117332782210933160822039080161809598094805278932861981479787654651777970166141594158482485437662791000817179201508840212968678324082158593020421189881332731276192596649139468208734398771007293277526758741690711398091163975368510674200691195084027722720766036235557463225891964277274170060378458909721080121931024366871234523905881425237663893492831421884870659332037660504915918359326592992277889798832109849278071462569478603210449437492694264753039003976627180248030817775912142703498299211988346189820417432630650662888039509048610882744637109476453178075511420866920271184140790981413857952607131616735994589268326201011097187390015394423095758224346593339910732708788211457278357519564804762084072179894761400040762131826792116035979958246734819852223769102918115913653195242074939068816443317860196596799041780296479162602899332324343960882499675472637834296316312894116311352178886510260114933835268669419530379075720991159225351873488445245441699214953384114109852038243829806767382746463970179551883391039896539356298528860594072536091403367973865270314960669317026905509578977656239233052243423001435189583772053939201236931844765533554229000935320895601820609333137799540822358615778755664410502139014318751089811162278720128544576903164033280837813311572717066518542845705465587855656648710517756392751288016001579352875697536969154875984502043877069427327726014818862659229470495156717855959258139856060724292873166677062677309144730431814521935287959167903240522186322531612449028861553419161216093276975771197928926127106880977844436121432877044652727981640203713637701469425632974613716183477672998187066775236151915786845183901898812465075949733520787819864314283426913812981056798764883995849741445750536102863050072362939204569169172595856195538058086607717741084134967228966456281309223914058752431103966707823389035850518292132855816413006633126406804101951010149572618990646576115229845488241335353208857594667853982139248364683751259244222378016997360351773022614168720851662962471815166426343817339673585094745948954327361389208027781051996171628270528244963888703395099842572745235707901299339922146389375904393235187704613859836520363556852172083731756498667800066270445914323794457646182762722012172090948467259837724133661672071330328360898222491168025777302475287707417098659027366314184261808229270359201547954644744512469152229465735048610885523174054359077299322276908539740661984587824753961972709831075043083071805469354432144601266837851490529820152764511581765124106708600715137449764199379466154679035918607198636385730065947075873828947552598311093180860271085085639620795347472465568024147765482742329073019395289350315934379269698284941977553621534109252624517495585345247955248589520570079431779302322260807513838428042344565048190342469762649805801528150701841782688259996255598919982838540203044278366049395256227115591211372919270997491577461654608053645973058963610962876853434460139257587058770252491520193019493185007811411026999149041907895730832997254336544347034097002575991670208930021056991992264348905642950833791851689578709613865140672610845056375805517400256802679009699653113986868250102442718558923924567570509365607845185674869987805276997866058641063833363386527570343725443112923086305255023420706894707232418978486914683111196552929957213192276227511106868712897990766496710994735388847995324659274247516901348644380024045025420378661331284557675104468936749603337369266243896738016478187077721623639260762651561562319945652812458983021897885952198339550324277927335450504360055264294936663284093255919326831832715806377809924433876312849148949576851829326759469862195378017704742912035163093409464638418695219003044035176146407355940536644521248729529568530162968207598420453766944103444336283842854070449547057773232154836017059943312677407513374716133547019190564931388494394422189905974859182554866660329452252730766863195579321862632803733195131345522960268858064107191087671581074537033640261972764782714513093007137310438802781253167274952144929544482267378676484160430452162565272340125273904865897173907855294200890441865052120147773471740756916162356579757272765351438731158478900181183216790489432831272145491727989449998145813573523287397776697971857050023186062304569040196681118064312400597779459976794183108923871009578868125615481917360935420785022351317942999733881281867076099649001476102911429123918113188097989798122047976398016115445008794804875103539979702643743628384640986305984605272247403906200055498229253220631714825007021073398463737144562003695149018395821800490149386385537317620404113437737977747647500364201316974214589676579434917702828502290050385596266465553492417789689023971549972809626580222731143247966275264721909216864788783643262610895495696673475439420955334318200181104479501063879446039889022624140340226107286080209487089673007345085037612556953803083368316829615648805981609095694639940500523113667174814731763281054293813667952670493351388722331000144581196690936456292333975515930514374271540107896111233113586969910016645689661989645191263724295551050577812413284999009137707068978800691660596512648638217669006420444275180318510290828896384938112708553573875219097016022727117364382259875512954045275592747550229888355247361498096840514201850066393431907419064006413665762151585617868639636525508562417295963316689331110119959901161440398375580600037889083410438379107281212500109242591135109217726395971169409112451127402462329404197450970203405966892523943655960721212701320059764404592484219769322818118113224274590393361788593858128289247437112383751741109605417964293056057144446739761702378837984283816537104938591214407398104365261968951295500756591585047896101062673063548166015325933378579954381724949451152926591781536395223645670891482444911530012869010553673390391684863559364059169258930509455712060604987264882620433276208544938843873263724801087451729940259114625068374258356086914294624542371350123051449092271439437367124172710060853854702646369703418644917065943143859227858218398389991312504803804037038349482257312327322147267631067405932585524043936013145446809777815802514599998676329014840651260110144113772760700613059926493350751783218926182146251421399159580576993542065576489730530758526106145432472531336693846952370427595378034120698680201366425719469291898472146923759158598599818464412273509473637903363699383531134709110750865841922320523380756277526032650151166609508522491581672890938055311485851980683727225223492394962083959636120795392472946169616090753469260575289819871220754936862093489152770020977203534321013117432443454926222639692853245800522055311312641777691727758627202630699217475333830900962088241194717906108149035600563912925477271485835275557274413172931950712612101135347313396919786344630031757987130475349191218133071417698041702121618079945695155940527382645695531881356945971795438883493633252401164092058490397191823452792063643468847950798386619755112024279676957672071563524905532872376139475546300279402944266299404486274758331549528853992523828420881969216638993521804159426434627208230751621052870245422781950710747238293439931041085835438290993017405825227383951676964640636053088122975023611581210633311844555798263076628309277391919392865846414316395236126887995480618528795697581214734790480521143283771181754260957931214841871476768474144875627766448763629388820956250273661378649167757621803623942824318174277253306847976627442518780539506760272106900567177644787625887556418280580209679756421457323882135161725103272232258544389524995380042057182043811375717794527024374799649938571809179679900288052819301193477854993514376623442586454291293576334221533820073463905382623111652273111780563849509825869199338953813630982208110931453183130386969159827312846052273598500656981002516377514838179952130793545163575296799593118859692508981591268006058196527633902638128709730016621212076764512255681766798764617208609354679384106714516381848336500490500886378167082452413342754984967650412822048758112750090287603908436254764856996346149149457255063713337669145725334390423050245995015938857056024492270539961173009797405528091209378747446477078443980566277149077637989962091286764568015996480833778523689330927562835543968250409135894704647675163522307185419342459430011363441678486090798252031863860874344562220676700488253969462017442998037398104721332271249767587433196571166178194988518129004168069746099123325235385431282700770707778314529023690190302865657147627720269286275050570830000253439989694584604420778648224420260117663209672815338171492412349022657517534443562233223944357891526071637841789976873802975018359651359844706604978897114412447800177416674584672929128359165137723231101806414489551755093926715473445993792215586876937770423144282891613435433213429921110264502576226260943776538272257334836671774528075009051946669995949347822364390082563512065633749893652601165833721330371381093637365136080671753524366522703869322074497171186982971437781271520817607423237518874849771692962723392976003290407450544658149455568502283715662433474392742238788432906450396206938132845277605459645089585367630774070702313855092709533543904714634778531539058286331738391793396286481522548394688794627449945171646961752515616334624241296857241353464230737703791949716168570087907903066663049715856122445520204936646138006845722611831898458098222094159390776157130270075119091053816517758128354274179720899605518884769009788268996020476583918575167701280812431747838645071111828822815917379699301971194345006941486464742179683381189481266528297578722141918931321889355360382913801039957465865363328596535610422871156334535631192780642777117848157212821402776035017309703373102960418056494404241292920290357156744662612194157019039401547891947386085274223365663599859679651742863939213232663169905056186811922638014366594334409676051191605127071416808367789784858828381690042820682185012853982868117825659058673917175624510191866999717668054543630096091956075137939732349859216390015492641657402115430456439421799287399625874621425504504048182604476034036386990127897716571881032741022551687311381831756073199738412701833964857755451557590494187614894946004669854197770100556655377133459724059431086786545370444972252017829806585483009087840153522262094924964371579098770302876804415097168710986502119152339950054341371103844739358919753293030169784667074991877892892733111452438721410578436898515107847966450367313372875513502407847833518544348507760137323999789631379641538635590304973953951907338658178411667622318605995621896601808159943713278538529744705201505220710881617341152122639791057179116058334372674934683887503940376775988535572313222321957849795500488469589075099322577495935608696120052481069291191796807881154221289334606878075549808597386857509807458376507648209092943103258629881896231965605972841438242173963449419597054467221890829548645563567102650843496515739265758136763681442445084140682028927998064858791946221499201772228996625423319872967876100314421731009934473514991792206735858440228174952051404458558348813921642210491215786819012954918999025291408839096431447282381825337102001239865477666518571000335575975828711725990999351891578297900376279417844270910092205495476646391730964167294464037475469018056246862098190051866899714355660719266159940289724436559224911708875983404611040477608973008717540714379598018271726424421902932628952979707990617973650759083802915713020335096964428983678665659619463165478235594109728770228883410532357281181408871037342723460241890718212739938787064838389479373806054564899403459886598153092987856522000368377634604851016073142752982626759654468149441925668142285637614749624459954858129779911192028600132237663810299308825993957280431076198604408617514515121872065793192598952748317479192564161757583338520536653914059736407777286536462964299790144790045445576302660641776678729742592664826943756616192787592491329900705122329577130803722059198612445104700556787701871075210168767990295256913167485142183107115683710932023634392281172610801594346696063511097005537619996390737871560065126131587791462337114494640070893746185217745331869619682313109634762577334381599596662537013102227130594110918744529408076570041643034315504191655245020636546770335812095608072206758391580864459900977382233864232468955618710620659734397057181474644036675969621833737230567078875150160659268268179458644021416760143973076394175277686194907505021211460229198157925629604048002609541417513847906821449069651594946888027964646194915858452176818861079463596038070092579264489266275073001312726865089223219118141482222111970014977145541064295252837003659546367646076700340046342352537721538642500595163220016193699982831122286829867119608275774538957580753943187092435740928346878326300773957507410519376090997228598116762440325739196843703637227720214519721595936344052551702614723772173611641605312577598029654801947886121354758446667044426437687489263284391092997193643231585379214233288526670492635033048056472935668794777887199430056836813492505037503009453079300982641743710846830646822658589327971081723407872143899680473027862046297522393873115765258813475735500982534670376770847225215427098793889220357519536474556706596938447690192491572512564469352420136852836265119707765989225297725758033644241387564030450880247155824678351296062744242408475915952896871440569197348474675007617956097860676821549147714135072167430786566313845672468006639104297852839974157513765101463473458512246750267633625287464377942609553996833588744194051387574168399064974375780178505626902489628186252075720588043553525581005705507281502232615411821715183949278879210549184380236473267744934438133986097464880989829926053502970448379420161704974166876842130349516522797390030104727640631512726584875856836349038193018323124062251498873651395265055357956558022638570423854176515896353011405629487488095539164794815931505025414432409251777997191435871943354554385632496319324588740779333443435564290188363010384857466918489562076596403124273628877885471589306722089309751936732265129428187692999584710732159099116877084077631827971408028450014711675582087301911719134318082985473942303680501208923533841798814892605030505541846721921092807030447903688383951426927450206388248932526862848856874515666751164604627333224523797170248279701228972911612514402169310183528808505674821396566965968493706998309845051354604273720055963348600627160847867262531809629823538512966216854641655331367989485996479151257837985162966578204570640884412046329374380158129733895434451584364444633068634186199390476956168916240315816819431642917986009132294919763993506435317182557805579861174632350627272944536833963046590063129867868872181911756412999501290373340075932468754516872058658422003665684291782742667698938515593657868777527676233158750262758001351287747414425232718333735212144351338241127637015120960099615197408360955004606008597334937072182434422987263517085357062980746443835279194588447720783263645864222990514463013973135805561200729134171476104612397813277352760144114305375371110180223185089232373606857938212632443394657016774137786525362032247385715785356778826216499010769356820710748620275364482792452888207030927225698389312898737086736658199657523588517857801238555325162461634354062648378221446529184765040353681009397830357605672496696806932367713556804452502267888301124081979033700101482249387074722496549247394012521066049273251862656728041660823788460926752583516252486043575342230105738155413092061201645030414894583878977505622846465499722956200485011202915663961193706913751524963545666607756722093634665952397865458794883543705646416580947614672878143700269170586594304833078898789458333962741774336708937053729637089777629016413564342972083754553686502057929511404401919814643897246981752971769743779795592765281512934931974770673820262253962393200411656142070032987892202781110882290486930010124622518618410527307982056326881466251258344274387532471735638890319534942686827144320318896726199610206740829185456768233457963988332528788737173302008253462131975924993761689952251075928437173876381691616419109232456961695541122739644198061998359221659329602201714683227013156092493834909746251740483475947882271174847770805356250829478010668716384333623483250003049964541810778321442263225474004051310947429399130993794112258148658741818526619805647762203518860745538584935583837604122493243448022812230966524545970299331561181438844134746529157740830300299532176527743828328428359874941830920607489521151869997273845100396069441209647787080157012348573938873368654021977519546759567255499160076396111886244695807041376017299341624091621268426875756837121921510192426706815956497879363363531264624065823136767884710420762229308928085077425553405672907542290301667306949305808917734238597954304889935224629828672383077081161990096594672888298885035544068372965416343504990230703245424325440726328713044119037060598172537443486787935263163529174562697442671216393914834904563682564842592281337606087297715868764758233760224470235635057079619660609305330582957665442139929827906901437268005824370556560969065025378451410018289816252234318786326489532022739443653305792430749073674165449167735409601452792407355553192379210494953571704947535777371418190888317892037188622715305081110789514071562732975537236747617679853088480371228258632524502619925895390491641595342862941554960663719581603142223435482984125086582641559829697379731644640916737559030285184068376006964315598034700680450186112581698196018031557480730957381485918808736969509172191838782736469969648931709203714776037466641496002632485428842788392056523161023196155934354613939192845917424031793683785095255127286718909984801385731156015775510841080751877982767920404656388000027471330164570776196260421358220367885048887616141810813776327700644762760547136193652139707546730620351527488386466260898384025200851048893370631564159771590048982881874844526374771164331739232048053425990368834742890592027654152497038402707463597035688682484205222686228378345829767834328706905275700095156139430283259917822752047684425215043907489896359476623084636257235146797517274388652454473730019376240058471108502857812792141203575165843365003661280591933731838302420903504034132316068133044440540504076540969402293610987877308747463913578498508369211137943329413940010170633467860863298433498984649794425928494858860435792359124949268865224109865704349324211118051830931582377350297942002025057901549570407893261483310432513117422166234887594832765144077072861985883941446978492972445308493316710602935823944340822501705641593302751203576493395123546349433114385721479280640791567230847499925565607232379244693082989601473992278133275971014038748685608056808745856611328662095859552621692228756800180741325550675230614636142179072923617675924497637070558558004465484430910532836989545718322288944223378532606542275249515930550603054383397886697921602920701038861478778897562270424577439404040254793302317601301701168894195210035456026483455884487760427811805758334333670839412643334418663859068793840758248333635884899353533837804532384626584660355215240118492356727539627610384241428340330609940203801072986683849450918439483706893868860339114817095075501687538783030786438812059583820804795800922370306904018532678461480150980712388033127565658419413196982357434586783012653895422659499368652756388989694169218181065900378309573185406014684710381681337331131825316878095593474883942162925758734567078613477388722892504549077923565596360406954624685863914159361417964642409803597200783577047674893060434730727166058290438184731136453234328128948573151576514845871033967090229554765054215949407903961069089457668244733466169278599348971056348673588861598876943460513984500957542779256725464584893918861065271306373326664877693276478881905229864522295311687301972812366990369571932573666694347111227650738590796298368022781722322084962997936652673362481635990993501680213496662140824490245284543085053117722187363620564262083868491581315858649165345670377334130506765615503944537925705129391018653459038039376174613160977412355997679298970115921297163894161684032394475922572892417070124776274757980763624425930251751348512133301510766192642730449004633221636526881087765713674811390946247967856821591178851349114165886240112624631539128096647147943242386634626300989215392813808254871902340014786546208673551428472922489583590304877374889171335497113462281779448925099018176472411460042290156621363938047061071012395796398327602151143019624524051537798817626524379244328150823616368499422745999932927002085430496211641200109183191881133589942624390240816235188750614592839474508568945084143362404543580355786501403149524649383102509020893672830022624530659936779900808195828011064384901298205670039272050038466169331988108810467138556796726929588310929135145273660295062128170329534794326227561445743529759806446543129343895483991664573008336185254426259705818557351520397793956616574087958387093512084917458658123667617168810395410529671875975764250793918020867322902422848044237262857307614347708461154027684097219116615052144064472514452195398880810996923793322262344174509103861315043250315861863149284998542260996042265576463757064058420258206706452658724675183073756790272898133096037831677461207752395717370771087442092134529247649682976933968794214855715593830026263912064653150905788200768935851928234506769331658470230430607952964995881302510834887700408375203349824136983206696436568532149140506315881557675696773437526078132116471883630883245543028810387134034266309482444499799929843325706873034494139513022975854542181018175412142410338942302756487223956906871549086913880505279021368672998868203940745929003424190347085231577619958437986262378428960747121044247349792436573414916226240257045955690244476763855648619619635039264155056130717867361418264923973666925824673536633507166132999609631445411184044857956217587346827777203950668251056686185891521812184341802830163462333726122929724153605697789908855671963360684489308931751636301269225661728585239199939807593772605563903705915751405670665736265259755464773275295831970888528503462742083999524487013621993020926780991909853835712218545352213070103061043120267774142981872325380370076092719085746296505293014746365790590092698249523309209405633539833880031235731175646571351580581679865363817902000252965237943316730852703482797371603494572587423829116411242681295321878842115058161897578155948118930890664355069133614733054220268423364467991364034603571602198997065270840473010917797844641069385292238448204843045721655260655955587538322902927448444157794627651040549464058659549158530280679641043669413361282244400821787146607310329123607997263913856656905608708140599263171759733333293387334166046042426157705162719761882587419562149872001266850555095077590947569382722270075678763909152015456167122259902165385957998019662708111215241968730062703509006832993017269204696636904561899077421529605091208768821289665416703633195556350549630205130569867870419891112104864761375689808217075619198392329638901537289366075546280051343870662355397989852381172374726035022137997563780572006125072411707138753254988532959652536585901438469344889377152756673050741331293636514915934573324187641414758338249627348123805348635982947806618254587250091409873185944849394928434759272527956900044786929679554680951729667823699706690651737123835038294092325051912212073914387332783439587587778091376791265316721797942593811290726120187067984309844741263410400952724388062756582931177820864928099663933071316003249762229148815691108640201759832681700095485733300687356471587041054696017542439889439277915095553880656221250500379262165975623782725348124952814437969958861917153339408987521977040602315945804622269794302964688219026559234312042680400795100159679367518946044358623034893899401953864222362106958007702715532778681931086201518156856911659706495011962559567242615178386056641409360361406650693736259462668261986059705223992935514199743121900773228788341908985072663180411837818289060633555926915705975198604946644549381509817059324497232203283882602203233503977521890456733747854557633801427851472362026400507479149086024430721334422288874229167114752901143129374018871252691883467792459814231777951552980579601106919595228686566181618330010184598451814708862041152272463207284365583937936776396799067671271496937167241132310921605833849657375467582018301688334519525966693831915637510298712312844785541881312947560604534380534031653484061938459407622381262305109106922594726513828901239982842940791315628883556636735945711458215238341028600089946989642871895264870940680952418115395436765380651268896245092976223450620994598866734168465805923942405248296173180027163408367177808105629992763202059667817665996286315289918031035223581207885013455257318061203695005437106077521235134497668491983288231021873251940077041310516470149711203536171518988285496287485648435586637078860093368902514770403751829649564506749046429829294496422473419184344728695895652411707257311974794122966401281620834941372807829829264276647991524517890986676612720302482586174703836918527642329714145516790100936038687697593094667531070774290557312170081207750166169216000705571991852607791535054498128520802641933476818202305961034007905700800572694576315961254580360959607799903746828535700024059310529631776509315613712509329147144153194516188637966302909540361134919714489975417426560994845034301464071660819723117392876200453587653644244936317299838691830391580378184048048639995532412260172611853408459006793835634628669456495711300501425855043249519590489297690522379888393262297891431202130182606624551316584128301385961380834479027764473615772176046941947802911260961479682118519225119975667674458038829806712052295448600356092596927368544910080653671818008761443352057391680485372625241591464841271162493163467823115291497521716847189035024459008357100124299436333944254250264233012692699873483223839161952537643035388449416842198369988000775908085920824208469102113786132343569613119305404753577695633589097527643105408106240388386581671786473464701273978786135758218998295840445568868096279840490462348638060037271341991041707872643572837576988599634697240207957770558964472925038072973926072958198279047312439690458926941553606068103012863581648491983295829083370071671359873462285738225517055653318739752372658013649193325053219636195552014779594756667298834661706189410356101552795716988467955567818373139185122370360688723245992581807626711661979773654620130858687697573771430923757248500844724247003787077950822648177209384343866691272776334067453680559924892367159665422935206757798501038733578138749431047494757868708732532732068120549462045639708212075808157447206864013820268453277443330332898431090839694211661830277532274629938252327387607415648126793102179719375038039882527331663440516842991662215195908338108190217576074618561700272955931405147778722788856613176296742349729608289545612173773409055933604095708094158062352782896426343255542206828734231887095984079552111593809232073361565847690800347402055102910638701895887589908451142529329463930206673442128420092457155778972859747907109588750804344948070622475151613921412285228091318984991714686137742285628908092747221341161314396265877513821274690219391838825062080558936391414989248963892620735797538946280145645323129512091636137755604096543719943273331585312723087667934993080483115509832737714077645552918970801735981144608279051658876025003842936071778721222914059982323972056339265626940807421041313372883205029383869360241416092809986176631928048150522928008106741394556918639693948789159609946556368851240395528038254603612625073840632006484623062031577159317776869293683275595085612698274157848937414793175228327140798990042853772831744115353237647088764444199005856682465746840077835730737896636713295366998675056180493947346474821824721153068901494417514298082914545944590657318045279322245917784115832481248870255235699772611301700781276862343056670640193297063206049562755363979822954619597697118700714300486875053762267328720293274336455610570591129569250327024023415740643013749483041534297028390534310965966300856028859164065821740068235814426891088606026547743821916755034680942343862908123953314955926468247802426139131800055604121357384015792084937709698899039555072630456996301852053890718239756902790625907496247952684264017078704555255328366600755341272817325223004219163366183248902696131452881323994592272756607783379558485746012342693947314919495130197674081991375586949291168029841015340995119066992415959779131611718882827543940484777171374415477174560476040948226910694720621598592008345401110157140838315402055301354916938566086449780983610259612320682094431516039837717100300943977991048525342274116759506530780351565961197487923569114489069540575084498230716946270977733885267182960190971365452087943717208464276696518895867009512130732505587773954206347010804552880851820559679998939224957348769506098140096992074097867028687376730583839363121811735488814108475744018845549209363745961044064797333607936845612310105492293070699749322791509943681506034370867339793174809206445999526050537195240097559125855439417229560585460005841079856155589714286913865123673027542675948944801904698071116574659228759564485244543076062158714344305960150342609979455866872799140545052909983821272363449450778386999247432420016552507675071813628290143156309986448788855585987004753281465445476743334089683789358567371831781927142669826358400394066030576437073054819670146471503762833283106474953813681522587962396790890577492846541597751214444558355551852800911074402884140630030940748518643717960102252102042380137526854069523735301395128156274155098854846207616102363908768646076332623755703746884234003412578130285946290170348154702794780507935718429222912153699065029531761354306274152715123667065159660141479502839181043327321946302296369005771158841412208008843536041899001225984592763664784443538620415682056459336290274331987152214676357446189047419280117468937657617999297243435948721173308565400344561738063141765725573325898091073086683338154006725907547876345429880667924692311812722270741829369499513554080436158595365322545841200473410959032540067242681688893773616040192631289112982690946949895190105340229858412843155463674985059677448713773532622909810721058586923909982274690106926096804981006193434367296099059414124553536656950239227791136388892032065636880701675526190021884081413429373515972268019773654792467634706494649655949531358042673542196352345472281423858585979897031918859306087066973704326231251576952709887836674225863096394118122460190363597374088092763831739351964121550646765682217922093435249800250006206389385252852115591554727586994152809041968204925499290751605872232307004125802846011819464510408351184047004934828385061985641535804814164770988681621545463349625855575989142104548312175849671960101953901858949231288130796574158415807014064679513089238526180261328725006812084960426638934363915402248764649495261686591254884481345585605684218148809749819658177657616420959427361307506248595206548768598142714036649501221753409010070188025407591288016402155761386442653927318589084419101581881771902111855071421063806420587523144020393706597076114336177984803745041796118687537762691616498936468642305802054982470878575404139348381203346535573876204752980144403339188841609706490590619496581808116145875685160884289740577008328186977635307925310078159047876839690697641332182861997059449006350195222965938373392278204414491707351059214032550253640523347757502096836559754164104246485039154055549849052175864922901536158657861574495331645492540006819825805646053385388555998181871480699374992711552116898405565920107482093129781594405014628770317904373542812186341642361098378306814565098269621458726483275255587186768238842337115723487036822249574547216355157082424898019311520415959203378508142533945479495265074708612057552411984958356806893709481162968476461905986300590330631960386492020827926649438921670250732718840741894754714257460976697137041229911122971665713397813650195578009900054770272966695463614936399451908245170998578113620911438053052585179207296140628891751195052930540408577972980929382364341974176848275247783648473831119207821983517234094976803864655152595124042983240251532104024522124650214604986682327338456440971266009496201184622729960082990858672337175620724101549335063730809323411374494848577296787752278401310999258167892943046564244956222764096096948421499156605921344978210126347383851921618783745353723341914212234543607920402494846348337000274971797175969035448362220470880378812904715841579940082835617340045082674608178671531694627083560457513676465855463840523589701721933420304944150004862745535096225745098648002834477019408935068812067999397726774902277438058508674724342048838678416871369496912006076004150211660851816221849751132698305738229918300264716044946690661500588370851291718829968156122194712453517022502280088023460804775592576259466688905405454855525493291646376708484533398571799741047770128410217407008384505021211120108636802798922966682208029458794220841255758958866998578427400115710120902720337189405067250249080851920061057017374590473026760187134231242060396882318393128689330828973626227309827260261583169130805809487243881320258952539661988273646647466102540593474415911096365352613950767745500355919332811707765283510454918239123033526957772085629194549107875864477089054011263922362505531117456541017614569067329196274807119914613478383002537523385442071593269395475921391608716171398276527816132875892506307756375256987256177458357123622213908723205052693011748930236702758882610592961088293878422519943995824729764696539399139278486271042550953881807516089880447991594363328711235659663383078027282254584235621335164932337787997331227256783292675527949106813873591319062204697391837492504926183902637064014446720803751494664508517024621193207094174481184666338729127001221875742606196399467977021875016786409880521184445335788609834157644443755052927190944126982567035366958707131694053140673351265496950231407776726060537995531625149321858080657579381502216133919726687382627303097961100759310770157296506953482155050962949809538172821727261444555884380205802449877207477443231529638297158023842887387721170224777836613415916301173777697194231663338323155202764059598493697080714237209201433568426889307074847067341199919216254356007250120766060594060733934370881356633572174543625857626854117287814535361979559052910101074804416802208927238636241423821081233559767879486413034113516901397304424999555903080566806668793281930287863914643384353764948324347573746759066508024871394389012895922188855747423027524891306762924298394278639289696697246786987396171153136365813445331080691969297779607817150957910440933919602055090960634929235274851227501386469860766031200368915519315094858199900673480957358264900371374477104367475962363231216111613491986845457530267424453054921161921796514106963676046134745028588749934342545757052017227604752562975890623213064607293711913713420617434812087688425170039173881497975055992208894898632022802803795454463342528898531655150265713726059467163247803284537438667926786282998388529464843804546975557725124883522748484399304286491473339396924779675415373456477273108175693483311620779473540694404482842704255493811467590340667642035576888774807289761044604266604982347240325346521428113152288254471350828516078448378102192824341739265510968724372495285027442061641556161321451125120339256983706586859288469301583508746507469357609926594412041147701782887461976106059577255447936756893180931854805598305624068240218502847506701179456837012826281896744951815834273415576172525165563847582978329803714790101143198830078650622507829738801481325803080619442364200185587765242381545279212740427119347436065680293537601110298709355774696761967089440958386532086927086340095766145094822859489657972377402281901678187747757230168653974546811434142018155392201712436872830725392131999265506122507941172411569072756396015317752924121090691326502435448249614854158737910978911827800208041354335759558888575448110610785174078342892794921935359027690214460274543215769029192954981572641843532097914025956229567157636071996611766914844342986964420549478280652637150936114797784518158313661168737917894146289557352320396157030584983074474487829049096792695565974037399250254963826117863615411230721595073632027657267495908716598938136410306669198163098071765796882108238469665065354710365484139249813167041276303335248957504762427023094677121118336767546716294437304604488823681227121661941984009930398208126366698292228169459109151146056517348797786647076283757623406800617180803373231614098276635606437135838468741367254079699794881826742846971596609462081719954557216711817544672076054981738825741235290716583551747959685157121315028867719986232136994509466717206592656017555408392059261870295111709468588445904427317228111734051238960884776743098348077123780198646407229006589489735921624828232273255770692237324630630247548636048268691579405019605303383729349283544380520270466417641324442676524522935579825877184892137598318569167087763664581086588651602671666944474684586244558034208405075226518787705763005338771910688815535326539238363936585315502767552272575868945450635923234441024859581429993641935004974958125631775554005797782610148782259102923384239815715275814749723128553208858461961873023998970884022831509015883638734679285723209114188698525144286280018447867329939712203469338788651873691656661546812087712231427389959763954993436791825589815925057807974380404631947397670973424859680727991211202032086115487123161284920761182225492392524208333569088762478740551634959973760069401094487651029345877865215727942425175717331831377044089903829162591940416231252613016906173196890731998849896461102285545902993026926408856256853189749964768247260591638370908426846935092285655247624872181379772278805195963793765043342670684138884800559432218976534903113666238618449417372431713405973542013539458133507568442045049959292201858105841536529584612637111654092080515694974224942836337440389706439581209814909938176330550911471940833268685437257125520280607655921812069725235306469635385743906764962879469217499116071304127957720374008270932500251217072920408178113692936125462107338264641167813141363322523174715719766044823928755576419388846241663399286549967998184312903463894491966598510547870894856184888127291729410954085368609611996182745899766977107824899411100566644306195933539540119112815857068829997227806143272361165373229869873689305336913776714535380613715131064387162971049721554567523823800892543592750170658151929909554212904950817553082341310473588792106426312954400124826552457474939328198305711194774361288207983262319955841685627048392712642586006761104715995130497669341897867518555589267862843375842166540689342384507686691457060140078952361206690860718505899697386473757904661114152944606945197229254862631514474597315517122691808584680924496486955965040040784459061208869942807993496467988987690245282897603580398788140037416330202798226585887413936978474674251700358627039169376193144252415063922882517447105321686184404025031251963091936254840948134041283255500360564723984233750821894676534007573203060245197596131881029289162934989304960470654975322718773373563514087928619398349898903584563075912596602369963980668091682635605755080502237649664137753116481552297806922447135848646652440137259295683533476130311745033033759776168424617899951803792417182822821467943900250323170920688499816686379019574209834371152004075106872201404527208526719095854170533229832032493068501121408277564636851098894343390569065711123224228899518944365122538190145330088185470002442459376022025383520506463304474411972100309095829974721099394358943526011462507632365302262110514979092276043839242732514908452636659829969638463048465677778614022199434520185716589742265888628415945816164425033528560260741844986916850357358899474666365507032292763574894908023454538032384771922376075145044564341448023395794502471615220111426331224596974655242129519880665119386324439523025417925437893835873268565536144450617108254462319039350539731015786447727289314142907711850389573560665113784208212143884809722950316708114299001197021238965822875208037239548498722351591629270886120813444521732112611297947465992153813502240338948851192241592471042225321836426999543521318409128222777097014309262261423054455824759473635573743179748847425295621877180790098010449259846481758920686441697341506554616801911621507728781212477148106806249317303651969957852690902138782739986188041077010232806805187752608468136228495507914027554892091357932693105018481942840195634909179856024330446254072380641823268353534038289807193281930327872777365904212174114404496522953952751890250824301053245879536015010211881292015500119028513144781597799420383058499598930036692891982459050367689707433458971867362933872469920853365124360292732290122324467667164929104262771837882012922197869852250468054743786014687775769193486596430837969780703999247935463303862175247785406933842553739035457780990522408687036010241371640358183173638774486697268359443728550973076260463329758555176680578288858131673056148164832290430604575484623341791604337514590401262554817538885619882215772871146590157255564501390646819836995654079776404966508133073634916557225149386042053164372044406999444444441546312412693382616601947895801784403825998199294484974778827714067836739260978439122873555374778633900537875641104214407432555018045702663240786315459122803062830501158572948429254221933888115735692476619822818318774864703433185543429776685502952747749657737018887503603439839192927523530721301574719276087179408560944107854893281909655895145910885492869151607152786833335287836135020667565674939618961917346082788785525854257374937995630399116567045837202347104379251455581802507917869634439803092857680725875165797399384619211532205857994832257270349717542238398132382687148070220644045516697498031054701584939751293221112162062242636285170707522007240614290414323141699575722078127539381131165051618842993895061090173462026741688410038055353919387620394478413102972310865519006782038719512073216959132392065939950340654114056749352574782678553575769857948527763358460129967166176131272006829317276419794221112265874817836934553459087361208075703621022713028597581165993333412885968475283735494857721540913094671804363366668371677454329468245774030425710042122076780290899260767108876061466283716604347874447041820672772663313604062251764993810251297981059434376235257567012644883270295324583922282038672950039183170408188370396921297320572195140801743380557209896907816469283734112670248152662560062449051625319632622281323529066344129059349383621640437463950442429299518790957929264513112489271330088965764263126644927377554031374731637137142996870542183399753368501764805384390430358077488364040985446186053646845126322133264147432409466870997327318771869682367019273809716499266381636668033941970106420166258859888428643826817323240759724879278911891022033456265920917360153110135744445395594940186208502141055747624944203313804300136568053153467361345545573417418760318781310118624283887946409361514646626186090464272611241940379044549405154885697932459695647042034188742538167282077785560290064141595046328610228693997760268611471898592111941134514445177728636348845113405154624430517031797396654957876033506313046131156125404396228274838529481148289188394996981017447913733685979742177740060361070614681711036777675278545662164502881056691152526759374699010674925057114575223077408357234150962796926864093244154856680354422580554087416991605153498874270969399118925746697197242460589218876882191315739595067479718482703782170168707544975931095982578390223349929778892852837417494453427427716076131053485665702005529054925754959715988208680406777982460044532549577712484692443943390919389055692846672811251265837926403945575455159784105865934033572922123316287511837348016225928283855408161425761078871822447545835055183238309254903485227050084963385606643278146591826665085768068229774410339169272574640590191535312597296708788395421943615483019777550042819701219846242768800348945506600968609763971733739667123964585749676633560501928402356067551066176819233417116059911292124688774858151123886187843300997975430632174539798894334587899957506777641131308275970944672714236398481880209337060173375142359736185376568456303863595050944035043405254336616297101013871882933810195816376094260697423815504892888869119224902835468887303071902590619512357250954019581392875278966434519097602662616232540275733604898968787689154372281452105079572558314940947662147327140070632105956539078046987894765985740082917485756751948186057601134730199472609028561218646055348860697738646865543369487063435196129967378378502899018259284184319972001590798156624182690083340650668689197296228804546709524385146317306829785069764027742818259578338333282204112580717979204579951349353729786477605759063150394067195563013025131457475442999994282090398673817707182356256141631822249788875384013564826924225558353581603605725018259269178908172042083099256789665882635204752447757373153838317188601129537035477760446662074275317951897865967146333107825585372611899700476189408316438645238508604752402342967238040336359922323355554643585068314340737856396021268624757475366559418992176369730819183057319084217322240613070873806428363746591293864646331766003886207745814954122282287779074898121452063062728170795467239194309744953760980366671039256820403189562438554652036987161594858395360127585839366945677738245261697152016259089070374230311581530287510950868301195757780029169220738014333740611584049912830047548702731252500026743364650750066395369114516423140501901322634041931737471366819466771070377332766439938331982566942547590314667573316181975554455565370438575277064257473892592152793794147280967074751734836568599802749358256221458999641733999450484659648189405319821894966183286220664036684036160474167058975320171343809459284311663686867476228163599196559245184835998169196867435569230822590600578509661044097028683081838262797428038608406677600482921547394554736738867666764862269950805189778654758611479970244751425749633673226781011138696964305482351339477950395092163637729143341950910383741368811011634532242483234925024193473044610112770723524681425380130867958217522055702338598525774672438690636719065362993146561265126485265475690778614778362610289086945357863460459498820300419925441987763580823925853484977661788353235870289009929907862927407972292998671204087430401514201343347555531376139580815434949029112454556519725840045671711239826141020997471768454978482587528174410844789687290160223266024506123913555028428826865892055153513458830194482470539062311100990459799061260793649836482118246423846028391400345293061046743568014160996279280668689718174826682689326746787193747094440774684137449469482174937090171577718700186608664974316861863057313749297504247756312942300930683153923819191934964579401905587155618341241809089156582106777355441340250217362604090530198728034626060633308001979568898817870815429170967806904316075202133520749562655750950024261682105643104901192719679330658512967232585115163409393540053133256086195540617958281839004860647392511132665345202957582007226318154587052520091704493739394148560705834236744833998591762554644410574050216927337425507631282927410207678921743812479307655967245708187112114079325201212911653367077877880545602305087229667646098545320825741556670176380400629910842591075986910144896906845607644770765971335405383758120522202187532663015152883248260473126285952412932946034140601154101468080971314393773521210226030078009902591074063878582735971621066048207004335061225183037412877261448360611384808546153947468195342798667102751755847986406798382196645878266947343345063771365063980838403932673153285587220292588011848660224653578644173542478449384154870079192682753170828893566744161382550073312969196778470440792309037610068598157448025470454146548056902383161187414201019392668239448953897955875755156074206464046860385066365870899138436666921245705359760681669177718936762594189315224336670489077112300849180814573961871040657388628934317232565938160887728904498332336393074345568982092665777456841199490310884038752551514785369392988394739533630950136394842522485985130581740689607800962672181335472447187212074899438076404453833691003773738505512781482811060958394681278076682918963304507041821439375499954431503357138165017935839469921051232735577270515402695786240719081081343322285916474163294073372871812827345418299247523133382011587349029178207881476087218823679657958962678789426416074914293305185355677114644305120526904311583178799505255730491138918615145489588691656548374621809211622366293843331603441892667872652538145731643196030243770804824161477308278166237927653988265667533050136389426868562875656777228360188007961142705459902910320655419676365617841410911596776187422679018170187841028855621194132625331090250132687878898242371222985342244309947220782006831616139927916888237221779461995139849040773214558012660117079734963540215849513085684579387668666695910691234087640096187573811855274049647321950931573612524632052033256641149754920168311688740384568082779428367400069010104611800773960465871852128490958753934099926890285793384566106411993481462026102199345453823382976741468001945631340369424367616372151378212864363119313722085613060465060012215866758768339862981851347043694291808614662091880404968668994284448658973022895368784251591333324397037892535701695776542069309411773171980432777287387215686461799604656119977032122912459347045847928565830300267367970466565559422777413860918261995961498706377222627137464870689419611993050076650520866248924162658019975981257694910376481052595428439827590547676984402768945999166300724314108445070541305821544679466446829230516505557763750711138676066514739537756875364864078698998883716814480782289123111322596736047554765856360220520233941860159112619974720827577785559323246971982677837644867768964674515979667998306259584172099134249267262814357243994728625793022396815493763955224703757787173220550126652993385974778104699247115711440001350935835171473220431806277181455947235519298421019644161731410638495264799305827848054690190715810436247851324429682965979164960640528509893834788287083924538474786007038054206589939863587531032751821701315059572971287466583963050984516848926384633950758295894565621527814545054569957353199456271117030013676380107785019126635530673200975854042462413727797760212745422663433259467876545285387649371987683135513309560244008608423468275270851889777019758017898868182581671810775151071146785580452675906899484107543904546060049791597072342484664936984960131919933475350106012544461823887817432316591296326932690700632366882623413343065953140166721956647668638423750297863654346859823092076474846445650467040333140438368046334608812257528956300757408565349869190244269841600397618571719163151061449592546376308832415519695924286029612614088366901756020857068863939052092367250587999341042371413525289403516968975223800291733177954838716781521435362481485749983396591539518656808074285538796929385609300515649706271840041979846356890413699671096096556467508649831545377714859930254526270204455045552738577664705023476912365457480709983026762251003545524171775417065864974740511842010211521237183817878100144837407649171339708451056041866251986051969206740261444657976832552369083222156507853514947819974074265504945089739952684366529519926268405980810491501704603888719435170554558411555141228536048382099991446422605271376059965906286137409242759505730815709742755412535733060947795951716513120685474793930126249234169196010998345629416453299546081743292591718911916787878661553761272711754634358605193281426492621118975878674613108407462404776298206507204861430597134877821511948791836100633046604727454898657139477995424917481385110349984187203110217347918043372219643321758762115017316843712830645435151804736184891010251630729946970796277924169864309164947737494166756325984265651987941687005640443382321654412755359899257151052612613913869685945887003033832532640381358899646250536120567417165348966275290563490921182797396395982189473619471985916179524535612169501157066375502145202429720962446448366600823502385349755793878160841232198417619111034069562908740325404650867608164816128601852110628490146372813145188409382389782404079908782178050077840938645845220186272597251117792022725106810028744155662741928507742273780549438854438487416819456927732382030162799435308396475471759631351287708823409398146020250921361119544286657032213560971563205717165402033924108673557313946838428799105710397278224709672399609277857045967922821673200782924375487706724352262217598593407609248246420198360963544086410335115077803994647158249993663779411785280893733967789144125909225651667814812950764758592382650991494102603498076590014311108238547418037101695645244894759875220427906563362773198953632052182792293745998744685525613844907167316271463510452622511348006293730846193689314306728451442900746412962898388978616281614444875437386091681753186706903799837788266943321374580854200387724742816287533144463863066112119423320372130140026625138708006899176265649738921465770573215216636961326129405578867054038310421358944353349737565523480151989931788877800166616287015381540281724827374308747087593391855462034306497726643915466317001403362421730974239665046000925124917345691888711857977916455959718109900870285640741031698213154643282348963666045095071240683931841100304856704411594839403231737596872735072496451691146347340034135972425936456695559915630030506674609946285110502870527935667060383497635597060381730994839059971586698293022608602973351184067792903458547168967996518228216619699095500804989181227430982074539599673645411041921045821359876348125548957989764942163292992673602435970738614968296201910849175702451403613223956788722343340263454747659828364688656941668834380149088933628434965410523378654166703791358161367050930284776109647713471922229889212623420235953415819081529102735448579866966925044052508714361905311857902459090326413871447234783760070646532487172793101123311200749924558564388831252789046907337292486746236908289171851729866224304351477733476833589979807496549959085606798807012944066599351750504548227451032088445657354146806550070579565118432263248216243942675085157126615851124535343218850664506559027557894828235505498761589399736297164166325434274382802509936268714239612450645046183739237402100779091469246225141009745568323870600497586048687401697250561679399178679297264758734030435596369288765661813231066010869126861958532291432318350477840288127244350172515709798051717207519131147866977288611537891775174052436464419759069234036354342502116005175409550251246267708671593196586696263398902568073339830959921431337743899619242016705341042263243351810493221474377455859323924029246771677959286966093368880764837721105716206104426667205953704847554060671611293088196075701735760113519489818739943829566614798450731772897043087307592394442469467420406934724820512308654199828244849526215569545777318109749257905509477770916983526157147132101063451359782957803767865759828668266841302937398517611311709981838591309598035121930622953092025073595880418495490718383986018596862176830302315277861420094429745039515193708193589400962488458066646346094683772348921356115408514051210151324234118643697607275136121950001037910075854904197087046161042209984599168282994050627560651987517186329914530437750485734674944882575415002912470060755199986537054248133345131570101099587677098155418959478186986446049174879406606419090042028253935590968570002360724727015632725168160566788269402047486927919723990811704526586132340519233841137782105033263107239377029030442950459137579355065095718862205331704517703998513145495576059232394316574796688554080624185107269683606121229164010432345199937214202581189346662757399754552646573136421886390983161219948652681250720077446967750532439152113684467422381515479701261050653247816069336386160988817399516919142007931132186554531610133243934881492210582914176979053812001806530748185155802730744805627751266590000008208380348184034013647311082644652275985340457462321124684070568677067176293150862317403059694165806265335588309984996104012457097093812956332904892755162644072427708239135413471272154447356409686757831532636128277596702503097485117080481127093295185230389762934182206630462640964417071756480635568676694621897823524764114846862937085047113627875034145493358662872635843870310252178092788594931053443284696935757723785910000007303280726056016126472188496152339221060316619104953881525237494231993332611670219869082373042331995101733650571228043439194593357487472507150585043947176308454020654777618950913828724300774539628250910182558684530580177277380910199552297720552748543296269761825056710333881223160760383299060876857378121436247984785219251949901015532599810143784819061643233060599557009379557955493260081283220745695020906484238237056988172157296790995421013589726201151760068828966745839482526777999788154496219384000678904175000097557650206848531324156975197806991901504168020022110304989871022733232459437639551021432617864810430223044964332605019560033709949659412163973025983406672361304592402149916467904161456070436651220672534428368534132424960427483928911670194824869105765588192966464300971804867067552374463410289173510717861954534639723370354284431087787366701975839219035348664548607891084676441891618488887782010510802428021958696712685077950831399400084860216176693816277996672171601472296736732515547595405486456619183412771575632903087401264601665179236708034742435142343315660743715383186848073309292802268520451591516872637983427970671935207542887787545231894529547432422717467319703053679383465671782213520749388311610335785869890686557986280076412475559289357138775335051235696635558405136958770077429878413832491058579856667748823651044010252238022603459190649217033118606058121765220157980899269600614930683316464050008210210572317592204076414103055519089441094108364406564161135575674718979371185059475016625217956140801071329848209855971557479572481333161492493108688746906386468759842962723146536443653085821080691820734632659617535829326802429246086359057621931948588408717454091928809363526402945829212739185387295702711267351333876316079449698557182824105504458741209927709176920908219836010747250151277457047638326524339386211983564641540366645743625487394580782996462232545487898356930905219646544196364810216375841079044640961115710715892874062352795469281720388632841762039244053366607343133877938375795177962590910335739152040678453547027500443212368612470419027959784887872916238704326419765777838316812160237862586526388824122232079735269896329528858933078116427802342365586225047890007726502395314118197631607897756673740371912030123915164386320895972382056916592369581016322834140032116782748458327940807582792956249649473248477287273708897985261541773942717172359124105442647493405367081106509846883020772373938123733239671058288633475432170117371734017154015005237233225064801498048222387429430689802879726321776036974805441839484213743884639840964697600512506651193582007024705098370670517268044712734409044132100560315682591919597641847639775504793602467922722689994422744294313727805281150542922366829234673211895405520269975638008638374601750633784301531580240654632840456734842650705319844627085721385188020773286197276332224837064248497010186598590575523855343166675596351362680103965812230328199360633791157139891422873104348771966029378460053323251600764758662847319772977419558463849848012557744743453092808669120331590002729187194276777754914811264594499111282798062062023004405412708069720155962713676275154654167020636247078212357939267693280733884557960294000019269766372738096123409770520793297399348778107951560787952396289833445899717110986620768084359851244132347259641051371210703303740397922884965584924506945381314654544033291215327385697823067948251010068652702928543908275866453046221648322533301566905551843281733355687492122295066731843353162003061439637208543313396048222852755582140372842281310260859827498695199274641448622524724317927447222198376844963544191628955915049582071126969573495677279309495524971838156446493679435157869273424536680005565660419761201716781481310914451813906250859581086330062706703009630588800169529832943406275282084710885282823721263278982272521583910987955526382268745561483034972201398589619035383499821158929533961435921601393515556449221919118604339097208741091551580740014359182805622362569053532770749539922567851154257417017115320846596755679544654166262803179508924404416984861070004280621823015919711460495244528016547636265347885971807499783121133922465575380853349104153092052456390778442737825511217223512046612020479110137495264580353792065386205340342643789287442367266135484206661300471743431006927702586618019469029665003321729009884422177259712575945459077933319445691260972408694671543208164605225856898323778705225511025758513230986575134291774662447204688335927461761653988963811570802192173464473784696264205540243352219517522396431169139193725399239997254483184257599347371995127913030837021876791309412074845576062610106718548027325413222331022191198026260034106644036856702812388681046515987354969930622621161895266310967791221979313177163643671384976765160180644936856431648682329910630659556455786560586018585968961087243284952863361308645306304155555362297987190225940192955399520084354188352880072748176023832650741418458737936570899084492112848358353096774740571386812443363012334185608860438092212471564477935907134066213188140686610992727900155321772537747312683447839953954927585407238509382683391947412206303070566492120493346886303006636934344466944360338532888733909539573019416243494693375991876759567150466228179331287773528699959029642657093275769046487872712168822495633068851294483953257917287785198662200377490078333113470018415300997962048276909263306930516922128050612267669674378266992176229795137526438985406138742917684464706735223053816224166855226464235741395624896560295392266568647996848101430222461160158227940619121182214513143000776124305118660443220591485106040967992552319223375302308005617484914445276266820465233167685718466496875432731461978083202616932705574277415577512649251991631940616847281927282066624019555137966901403964943299428297307019548310495894619924981040554819291781813880314923665297791133798157180600878074139514522305883333104037395815113828912667874056523696945995462167096558188325659412142878542364178976426557255131869457525166047777852038696897313718806182476652757929593301368135544618015616170002203603017368042459263187339976823340082409763048910763006834763773481159014372773005155085526432731794447565605743750876456458244044904249666103020942325868246483687123720301811067602842422081461719002528779471739493862320562156618203055515697336540788671338749960016589116431419815187071187527604093573380142880233083337714897227798094684433658131187278886730631524797836050277292357237975016051082910921648942376862908879123462635426221399410410713865251472871033481869069080605141605770574196388416665785776969770655439941967816581242311217085929711605711044845959605510902279883914696955662642650963111402348946129316079638283906398708910554819628317423122761350641577244514194277639229500650759609735542628993887950399799282433134210432139411968450324674325790642020382317096694549094325256386894687752232076356864747185499388713588619515910894791957426909163562545502590162770717068649344167837866869347308464209093384741151711981992022129690370064318314881349138582957031203081421626806436173007302613632045618623413046224575637615924229116419419263032699199247219979831851167591669079158603306680147279190406783092450792938547893048849964373559977100429588079004171999592645752378614737052033083626404826924287007868638154769828432761201119614203060042101783289811530501615290297386050291640133327740022855187940683125956761302923905315677326157525180371006535924805825536851593076096925392780110752740721516341170228806285028852032437297705274272627244672356610025202717140458904798386856303252765583025267579661005391678818446950200427185374670094806891210839153580068715387238724501399397224058601479106750073635534568213968375018973398271171589546923038087023396305135520842242655936969489455121696708996345614466404821739978729709219956260744890995806075501955583153822954679211399421354590526593494023634260402300832836066082990499933489218221352716509450946122724582880492063732473695750784416676638682341386721032668957104321385791503502068010715518592713863304395713691653599107399279151130925103442306237385250588982184370337420592715789584310811416887777912776355142331124181793220865114103041244010383796822736095751438065467951801863364339400734738453541737472877372219265877533259521463571927379302326691372849794824490410341991783363442161376689297620647934993301695695093421247194214631180714305205610001159807589354339062577725406775030692726447810775748449407333596983072061983173915404891731702869069367843334406354842983669004513398358938700156470676894621931468219573032410871533271112529623269980787605381997485708841629341864216970352986433770234572997294307913619746961931091593220058601642337822646451692867681193218965219180384203561379050910484516840980353147058773322018426643891434812337137520768512048242256088706895605648184355209316689578428902183834945054333255561313721210318974764378387868946274420239602126268097466435746649270479593386689535938894827245895824162837626695631157326267344037618457328749813824072181709651910024665726886285475030070052392476991494212509118801983143132379482044059117348781365222997116145947703785174124629309290617896943069169636996680311322734121280622943657161664078830505424768329614760657790367407695367628238746057240651837273481867317360965884992831454780566499500067902400171395409147438835992463172521336459959304227752325093332714177686522787177978791847333025523974707902254521084205584366747677755200838739159231536567044193144952791147488461159454277952048578643912730859773534767640027762753815555094509411731537834393110811487477424387548909402577714205801045121299691687578346939204083090858443608997721656104514669215292954921644335839501894208348850740159831177912601567565113738024039038334191963366824105314195547170629948950718030426294628430274102841968495278426908203714494730637207356305606193342041687054950497512937428848639922276784257637538478296271743061272505680584038781845437430660752263303617386358348391922741485840309405609935473280226362277602021869436895421053059425557192265723438704746834925192711770831951839802489048397993944496115075018635146250137745523827109405188919740640070030055430813607179238698687475016517288903366064998812855774542643066265524022738506123992056224130347861831336261798019229944821234165474851605047532330640991534200790638838931314989161647684081721721037746304425310872017457839667210779885286035057566937547092746402960867813172758139767295132086975847446560546971697932109587743168415193017611663528531168588732941989574584433291036201996763283072485869253506224597445706009217951243433760144411704293884561975829422438677273233640492925653385693285629609686995406423086234879798132117468406422878170845120331308256257556369309434228477199967299563577779354005274473157301854925535103506256211424502869866980477707301065757123214396555769942772550584052261251823006309303389804558705225670325918740967154554797404805160784447296679184860327068601704129512829022266395663891708415545045124496827222975941899786971314097843530524500687533440946860425054682353903833091760968787447003103683785846700306951492422882974270699826950734237029131951064469867272672588900406628615273870709106084546780876695803968797678886037869285696861857021825942352937250537324212557264949793369644952956813151188378074253080090839454357267862995620644211522101954981664708464191919458651942201161084828537071294531012007970191797652510304148186109781781700395501467936076168992296633381324116075985459059146860565774654169343011566027791076076954517911022845099807490387570144746850232733768702764774496092071379107941328419539246566872373038049430971096874635872005763942280371870925766092527743079548640081705286636088295030507260759313014916092768955787963491976843745856087454243518757460553427400922417333405953580124695178811022044141197573436072461511133883894229842743824413139488587680878989743305361374198040739904084252634714519835306381777307783860256507512304640736458773788296076140893320870628290121702363158333856687110066842383581433226257757617101246672618968186504509668130818463519585600262128693776919556630866158749502201361090639282796168003893989197807878237865393157921678910697138645517074530309279906483222546298473532977215033669405406860940369924133783468346068635797291966044501779606340139405301524185213326560160052332676306847474740876749010573761761120952193002012557387367072602842537101072661762683578578555646178680436068646863854492744925118870430889269436402686501939899745892932273804324900054453910635034806134631346581395165805798787543520379881355351086751016550791923625671658250244680749398786610074455988435966695090496495905027993844096786846671065388967076643719183957785264688424845413096319869641878779183541704654543649177394068820967693537386929653145118631718979278481567221539303539935917926502100566458423173919580134365451204444634207301764399311107427023064796079462603846741257467857522216516476199521799056068078509510911579718349448554979434830323259854859176858167110674960840649289389792988487605150245039523516457433456724619689551538955148758451296219106539746035905071982383917727186708076964370855417185422065797613713725805831744587541620072015210307327928191804135221291175535036073176338592262731068007404073958556521485817558706496926972692724004710867500508219259585052301065858200820199440820058175110402135805038956993279196115428649935324922803320571368858772334124240680566577873786306653414575011778586297854860776488261173592672466600165242662489703584846022318279370875482811453861522890147676693217512428118676637518947997822882997320679487569217274296473694684605939307345693816409353458325322904318923863559506239632545687384393078296244310030607354926756018217418366810175319734139353246327418849427525587840373480899889184149203377002846647686656116627804613668826525091420713366841630879944648321161468710251239428017352720780878658698507538337875678055152083789362323421255620426400742875608148852587722634162749643065588507475568869614755715271776618685917639600981540291851189986928329045419905907919453770164627451449120250105006392130195973162743524861621360946740990210737961711675968899584737449142127806050018388769484640595990869543903258906338022007957072525190003273028768583004831473493076003402465847466344162103444068251333546803118410708092688954359411229064085018732310065590028952210803125508107852225491646303249912682422537231321401735169367040244523575980983130155911211630398916684724611612361811231181195024763678301801409893100354874565117875541782228454754144834120985473358272676528802274843135388581268772949786610149175927515281842094996175298570437649053526102958158397097924370883534887009516349787642518145568661384657765124638774915076792483145980128829689763703631030639921900358613308042246800491559132702798860796450709406463931349639470790540365979539812639060461599567363821028602465014683034116263015079281699904671038501416198333599627971078247212257574363998502810293923369602365971631319382738773887987655048314413163575044795063714356103085687961577970957754690696873777370789227377709714987086990370458829121046170012232635399607035297053274091564562722813024195724915756459491254458038224240615375621461115861369884833942892339756151415540432589951001685009371640802550750926502402574903855007523308037507987258685539507178620078120121431161622777198708807557077477760124770826663822558269488191498451209286966672554743427377605355710444586113102083763381854191053694338701070894070551784740263761458144988505262172683147032549617346429478520117701410975312960590528416939809188337524848139308268335081882180115989391196975926297474748339261952306348955018244343423874232187118766586262164906449933898064259192175904704583483527438078058134635184940259933948990482968891822824861583179903804010094574847115928158622926360151610315932164484403761719406978444938079032756394626051579148760608725395326439203783235064835031944114336495510023527270909208483382774275181108931439503911571135984372009252046451831332304123058219381313574146181110445303437111336551939693718409505992312414957682282686878404543364683405049570228234841187626205914399640513246546524509015906154661989787571910544015186238022354614725560895919186117832851163301145434957234548972953922964203955697618649238344176439770353952949913879769872418474804858382269794406020244097474074406308722709121832478177704216916886193922576220108068831544002316824074125615957369440688818560370346903841745958985866344322626659217018311426461301100345759680348297511166276112917640684751430507293874947230262927306455144228821394129033398471042116876668748099972033231859076520869954496048775466919772222954231197049723092710709209945024979034300935945904273412748349439538250287451516155232749413020766329331900875544077557744872023282489161376641181251034408348389854020058955078635737667555905038185467480794964083372517858964477755107946703395878734714524747366989743597689711446515897907799054685925884892327011763981270413517423316308706914110125716838013298906250065878406174141797146609762042379104289195107967657884222937750709118129086079165590001643486695441404722107957624645887708735839386013502857499046778573363808964417841496138905158239147943326094637935703853175272594709853321070667368362831591482261423346070411536138276149233686230281336512105270412020382111817197731296715781366207824170580116304054890549059875902388811415369740426155501408627544122866414082790909535946369521599611500669050324663433153591429228976694795729946856134678705392774793315501195707882028527800720342370667479859337105672002072518650747865512786838653002889611759870544027967313649575721939938825141297676301379291380823880897698657441248751993302711931104141133831567422324874317517489966572795678872240506237140586055202088870032816875038731834384486359467485202446974870022597471092856588076357261713516444432316848104790820966484452866835082703610184104865101833057609624541496803846182263513843582484818005071234671670704788085085537015153818274807827192289747681277035963588616224739602769216908915152367785198696354445303235780513034391737997416459028646535113782883779645900816192274128553392027123862011400516472109816350739601470914412169199957833907733187239186378686919668776843741549956140686166147274260804994546257116833832343401090027517321258769469615520298700089249870143624943410105160052249455369863615687725405494829191304907054788094346618216940530531846616919796382349485595766962907317572367664826696099247058139565663931254154770888568874433254709501188964492161714226142160791978615725983022817755185384486462941026636945926718087306573990731555511816821918599990871865207895126600933631143254058010079747408443537127594223238521385348112603461845157281644152897342993592699182690710251192878716059761168651328722929051904705449867406623050808021922490914655859258947298938490605816469616308862424842830877784197685062278766295077130759157153419066781371300682298881703109501246649915238127920204902799429598951247062313749664840289559307297714562969217197026015454741128120953490083532933692771325255792398131177338988468116491096637349951267762033833863020087191781184963448835352800888831828841016621250168582071635086969274228697232254875682932002885515668453819831167035870345073846208389092626113352259849306086760115160790455618737107556777714009363395926278534091228803871593206976694511155813549189091595024567500329595356769799051397033689173236131324363283051897737751151164768607203093145801606510631825343959778190551791626064996667759876869004707978383977129222156321699874548188212425185482922058603649900799094865949806083248823060080170796921921538395698642998418855555704559444840569293010541752673996234103372241819921420928161868385386776001352214525555246779484729443221528443581850894930001499300796206998596571395864752007199252635014255004514729781499686398796254032042469469858929769870828478317363306239093749970520042727236326566088278784111858572161783462010338408074052852701798661862021831031038203683482838322297822511138436409604525649369160451211804848963628430516304111248994946597425157450093942160352376902490405530852539700693563536157863406401184088241492017127593013482845050274204085148791764753114522676119414884298940548023603281150049021343745651876355766144659271064235041156565497749650408894613559917418704487876609119997792641818903093114795394384242578242665680249681433526211316538519719314488337276844633985406961564737306166193504451987098569252763639444007073801367943499381579019908194176736993605107675770226718904241741440949111850696986416819408610944406737513056464486254364314862253211653406979946749589969428112750327784354790721193643067730467536947946787206375309463677068220030495810249615472598791068279334153162748297512372343747905404002951564666441579789031710172314254453721041444946979215294524041798336680526560747869620258449597622451398377280821758692806636962172767840065310252537838188429216140619248181843048881409524683538258171731713016182308995324025637186933350506505006635890254129363655877122926361809100721191067101827359714023590188059731878065329761276578572189261519601968244270960254367355265244442473989487438840294365422811072980481817017622124657191009740724391325165142121166766566821251091579391874380223313332412758981819518460154238525685172892532178988343275235036704486164673525473460680513475212256426685531943753331902587714397126076247042756057332683193289415787127711222335966529974263914077083175603439695291516861370103158290709363583304436883225656801260717196289814622464143212469640131291092700120154320438750620118018823620806940488252882793119085585473777321725866255567593591593854200804232001431494506943339755844586564211606772082807716673000387293736505002498876671240216221779493840131644861499550569027638491343834262021825436475940725497482503291504667794255656539505043819268607268644102461546473910144199978934692936232864828015362367566817561662459600033507585335444190343271915691511517315254226339941591128134549762201519076510942802294925642585862164494242996173312907928177921232225228275664786133585821259918229066372053266423651063979224292923569695651686531612674733488682538900719514112667268404797537969668575214227815348944403006774952059366232585919100056197698081159503457198571231471910080732913646035802835269791648652974287701667782970286557132529360462037093528437171588853096339828645546604021161601196594558602457806065745906805327996183797174314425832359688114942496797409393267496444219218409615500624196429590827811065611743310167602705720357747113633553853001833177119975036935913516594937732443371030566457925819478041767776897033746678248820865797493737367261833058436948781551131526493086566205017715009067581028564073166657840950992469710823438467907124172639384993500395257543432183211382455237607754480031776946462309628266520890598838375688577119802175097736874151192950341631048515783650504484118138366690216243829456295032222380001853770676442932981172609357519259628787861363367272128632488886766455358505237902546709480029122391166910290685050223135738852922830289712380243301970394301221930084472087391243825911873496878173816294054983792293493209009786262301102776599410975288602321276824315814894615831288701422662954942849950305389869431253449027356269071837025592928515624244398409879245285148501241085039947762449220889743702501590986268023131057612692490852254122368804105728369906017124504699594672393384663775624186933892853264381448496667427689798261387140485351729990487963005902336012403207098917518298890798474526099618900109337669532532778540227411351614294748577336925870118204642868490673718837512453009842862294816479682464104071637331921033435772971315349331655869372580075558738920370637824742794896381618819280677603919218222085289171016313242641390938595486932204219034918354886183923993978414028880282661721869643119826715650993418489191658304931246403580224994590922101019909671896588338166163678024231928476729475651584171653982227250285805666881710722147728511115812450398078436937735280378410998196822447350944549102351710969951116554467108786765010846432908867082766232899682636185532621096009242077769618677426874587657982764564805628527265510015325640615668847541737595284840697482149760188898679915148003910577640045155380908043775063374082753980635533698974782812553233289136023081074284353179087897374916274738311292883301837107732361735921849417445256576004128903664166423693891445155504485759757189765368615222436891452206127759650600407712395002432976548457819753032106489113015832892295228982395179663538067547555687035569308455830742908672944558039178527925774960703006212872543848048664585938764470131506818571594416065570584632423152901669528982111462224922564582219158639957914313430927434008810547413502000754335225297028194235012250437214710498367133276150521016305514339113054043023495856226932755898430830086869476649294141597142000253715421333773663740939760974030867206365682755972126879291012385620054321319550622871423420973258943128043159827049324804927706217447492452299830638926075299318869464609742517541396976469364215945549409421365415034900740960461188800672229302537777198693724239674686120827767256630110870460918837620251950922881058147147976995143621681514468281914146578415735218739962617709379245425182339412660436877864371567590803424214639776290465642642500120964345436375783788186011488275597569562531603327211944422884469682619429841734633514755453973790284047300454921426881048699584485640243628358169502325887458574280376594110453603739149573473529719521223544959129059208170113135678309697188783197257425993417817429617138772606759717258416961818094009755616192974782173450398340794152113642005643179803859382536094519598657912189463245290047751479967163350739829355102103116677413763624814010833363538915569602698227965201675551878769468025162457384589611726188771887312037307130086029320078555788144099891275875759312092294076347888255805624260577542281008940477582522178130073518415122165041984172743229461764758808017013712350765596873461680233597416970793269259172237975053834022011007654162466573459933762919305128207939437371286185913714927087831403329386159324574807834735990946948143298798452089850024776785898348872577415732983870439834812373259644220894781061941747934891283851036275110596584570692570900281361337023532232228528587569685516920414143773306492968065852230621720590478618870340460823805992114750472906862343963922846439718801588938201590714832279045274158192911592462882519917326727239824002284116277435923596461866506077581797824000139538634344048206937862376343521325272078570902187452512258948322983389411927446236679481428916216309644918743305285148201320661476761804133422665010929688163721206438327843806487728734155634357766650779128363221182474056877219851628311792517439863567529044588342562812174530850974591513514951282511038318820681106169264718370802671160208275934843172709425465798599834717398777508467480023387382115350296127872247958541878344713293566824191463128741964049072907778343168849995339759321242466912859718742294348688286688656596172770199776436782569812111992123394903384944228147557597524122491078020029890317281846220614235325254441943274054452094165586026640356374663520381375550853972304712798158260981363210974010595874444669301566595844498896417136521375675761783655010707662863319861447040113099265816721528936679178239030711373579036237612418042716028246659334594313557348812384214016917785860542106350103793709653661789303127593885922249492030715124136600135879372675528275910556861797297732540056860217458096676822239600654229975792674586810658777280125401014247368297114551691411768556688720829038879459960203130032636127518922103003575060725881210421306312432955313029639886229621407856840608070548452647193703818366393358053994378894981784153194687792430282860504185076802127160778293790058009600319193546545854305032635222600342589652178913554191259871026713521876290300545289643213090276348705785613334994885690778358624830031668100487008296912876836396390797430966269855508367940097053567394141303856929371752770339637661683264067749947567795589609961924796951511966416334309870127054096277480124239919520878099374637056108355127377325700670959058743483196990088407385384568103503991432195134950978601848428669601520164638663478232030828191572359962921810393467852900060184028466272419967268007575469836993129094794185363195549592226337600736367207790578869553726799108123378350192036531297135752741879600975325826187398173614955746055288932557241921420996714707019643685165805918195987481124206136336955224269481503545866462981229908437926026222833552535542898089999971111077654390784487332336933301283345010669239658909902008373101746873958543148597276042975747114018797511701902859227140333779787491889792759726232819412132302623451674536403457086625510659702021664245605739767516200941052745044990676865453087116589939249762580139103511777058020693699707623923609653173156260531594325401835655115962406733873706052545831388425278052008345206588606037208591484883813857715827885970684636032028718117858755199345363251421428301753210883751505711541864307232124167673163181175911702097371907923625131138775775777191380965754118071772838637318275383071474957591920890195511403321076971379157146918307092030354968749677134257184239469928633112587841298495687669413424653555761657138483248345604160761404403098122379351722375354566640965586725851667383570614617531982518388973186988246882291889168195789613861782703465774156007423317079530800607493502872278278530862350867405385727824880835430864954601376263397386615727280848148304479582199297940611143381704445043902616772944273741229688801288538444643990588883909357120783444276641647244120938470842083018398042525972665030572646382021841120802375482538828032467743319931583979810569658007793206785538874083314728988774784731349591036311037339541397015363582689122003033852818644023404137663347159694462222278804114245488200117722180989521658893414361477835387402903528491175186656535575878456677869139531868426747015368532471556927836789175264122235039516530323459137779635791604434774255599056584382496405291657146021008301386222830919434119150176229839310793792754765304735363938394059439297529808102570691267637914901609519341706623745177825416450890953406759948862743041033091634775318682668898887627997250413910958091292889165356101003644747459346090005989132088626673254546479629906957023709237372270300867221535772083557158027161158562234475792042840715961519518214140646547254773252494176540459863139125681544744470819167033430965640978926102445249943030045325850228698697305829291881445883034074755104816125636897125089142947698907075938291059483832475368500765898242538036316141551092767373875279619357561647839749581296456519859971435009694153621854144987384740697926672464590271516176551019554284398852179336350413298253647471537522688812217706501091842704022030421830807341723336692840516408800778276581955932757691882614939883277701945419592248888178903241887603413323498922583783622613579260763978410000161898926053113906972267272370067023548057932421869769120321015168818384688122428757467738318744406866728255261064835284385178889990454322141296207217349304009489567170927032529627779407576946027939420714618610622447492354029041122917897181165669584035258549219855566628850285189581910453053760013755154637663841699202837472361722132655478594231711353319729583238412964960228155572337281974074485541760525915759889441492385650998498054027758315700661127136443500009700673870811255709779435436810770912980101058936159086601197666361423955246388420511551506917138705366378760893907834338291177446861803458573649822157094287505259517352432216700012669373753629566857597879577968823838584487873612365722823431881871175167364784884826060444944573772835046437004577894147720378609896091557700822052421636510055318238304508199257096606298696544163489232430967011158782997252574925366036968376154826471738867710199290510370315565141297834509531624768055770544617380032223295192540965923834725826316029564063724862089733335010609433615241638624845741927396819089480381770309455863207411210494517829619826267702623428234954727661003212629805727083156558508230667820752883477959840557847528041005311164574856805068977505222524348111753736555351404906266424657084417245840432074922388293194320067645565579072948123133250849794356809080879911829571730853757397370667839623104363882098033479019040455167914065341789598066637802082354520737437644592614073442214747915042517984663003536563456261673842287372912323695547041537725437733474859918125246381538331010276594344842025854495678837422813984484280733982421251034639776208521075633421088027001030697409960097855268703524274995505987466108467160244602377034530240877082392693702230984659222204277978564219404194437710961958079112498904499703381604641810199692112646947576662053384077091889774609496456422698350064773381423418427393895708750212268259062733420279358449150022741673096960587592896295036507884303084116708593751500550090656502958624136983824714961755740752887081676988643764691193939231677216049841110312629637350043958697685619986094265679932723092829593313626658980022291338393101837253865009910543288561824699101645387143179218127694589314683166494230696261656866202212689157166239892242335254775189148081660944141034547793751216513200775815683117438484829402240966584481791409262613884750122815105597190622258148985335043516725054723839120921306036751121285415312967620516024667076931421546929650954088013030902687496303128124817311631818142372348732695764884316042834029812404135230798442138676907173022172058043174397131126707548537267820899931152118787484736377912731683752995175021794233123150770891781755126232772653234343198478427559218498321135521574074364451530163679366983112757843352745416717849148415537930115069779567286147248298652382679099366680516407402413737520637993492482084641150178695031858855185148748796609645314645802657017934600685409286002528511468552827271288897829402257448601439267028912379423250354508627379265846628631227028159950105403943799045442993551163477714064370591336526242679778441519341857511837819536173887634661000321982283054623260556792961821305401707127452439313301867775556536341271157808997577444615039345348451641289075412909643555976914877292388925350375728304994036403113571922798856463180923022077612136302879318805671504840339261226058481017274670154855233723496756076041457656738899849155426155401523067363323704126836542959799109575086960882173483979125924979879721948637479464862672603240493728433062876352705197893429346624452450393730156083272724668249822361709970588804578360598890566071141144548920274168501219206510478232076634677043475705194770469394427710022886652081235185039213440633112353728478115939368002355855720817299340292144406452356355375315835366970478924570055265235346628678370500250073289415669104670253459747345234222062048787230771579696795045544759532723368641365479072725134169420735441876749909337944459262789973158784340641786552165967977500041791786993709926172828109293172500854613762623384180496251414017146119804860683037700127243001232086370531321407347710055127134157648754550816784497584546676888305793204640758865044583160939008620473435204083520316212367885979401026567786555579672382186996686106671670553012077115899497583364700507169913267372328204843093557118891684534896167517465526518103811199643449232645798735635106050451058641494408487477504222445623526703266790469145503901901254733397500681800887981891602216915893839049936265442936022193611955679973183616975188766123900468951118884948687726576568625474569124468450895032931905192784878971207954548164574837543347922293196128502668099810188030077522769139553703047742832599892949028383144432619883882058046303207610281042803442003766874309855993100148096202162336488757920994349602636822853802156035863193153593595354897411556780995283166125402545456566040373789774495344456451984289681815521320533754931335426769112579825312786060745974628943681886569911928313074828571017651093077782909521687319336788559932093517532654386346752202598462442482243058791535525161432455109385160968606902514183036373206416859392888371161639150698101199318202353118507988630652862315569566960874072104422788766990372519412184397533103826159412094976269733140950561139981935019591002707974696334781539548257975105615208440994371464989988029296033051962875338481161793709846897818506070889941632199335259380602549049464013799887607220178443393806773135580359916503289710770793442680654833130143063840200930345733652311274438230371881554337226750692174879705152904759737755987436234641930385948034246215159642859961593789743665008127104142614695418915463670275812645213738633851851942386713206475186476297129967193038483063625725175809405342574648258374994021645263167545740408112115948089946354465719098382502821631633119730030566725312651967451515323360651301414038379657432073169426488356828261905763165341288395459921273949043628100603085502136938763946760534523306239042069541060702201401860797026247456350710269702506227853047832779000298568438489687545694199033102055778083800420570376459873356801979575321736183614690919736571137275309856088483955857781832929383226978961409460702471764485077154705972624990454329646533852155208540742203112941119439217389257087575201461921009655986938635450484870945036117137257001760644080095802979907932079604704227558918728451500734489706805595075417768706904692314995466540225482737582774967157370580703300106417213559169908939010237727282675445625836683165540026507871355098032553548717323337408436013574554325789205693029920148320221065542173090052696830276384094680888591053007468728933818550228235687398557337987483917246501393881905419714535742856254030626164544911014988864739440105169522934803579434511326545716252427351076741092519256457470586570961618701591404575070109479857567827393393499688947688691340640611650955271988510263716255533617938497144296432428862660762179001620639944019102076686846794138067276465623038429584781133156571353338340918899791819015224383537474198397474214861379180875564772529800429238496813320235155134599811152752446525135929470707060701508572151011051136690419570346714872472950267062015345281053462273722774639909015362048916849753680047871077816662964059963575550484003889758522026405819125446726440641896741420334900981656274623085407749990402563870728374612830722819069822272792283786823424110648115169679265890283060811813208371086301888959722364998007500330048766975465575202473403667165778371250399382534860728178661756142225889784333246646499645217080301916830434003937724079671430948533216866171978989652366391823606151399523171980062252412542994837602329352449807697470830391667602995360831930053501741497483199847125382668795881601003956611722637112124050003268397564862052651150910845105959961502366329039691221857320588864707087839380409391416020002168375279871736934262911965362471334740876361084023139713142991350181361160719674782871768624074444064151465650290645353659460020476131427436695153639076971023699117335153479877227738793568997159971400736283376954050237186230923968689422263131915160706178444225314957844176767679052627245105856587941627794742095823647416003691497573796135183588915049779434405873822612758517990576594459158189483898084755687677414721622607358230471861072418491061539009363690928937659653160776585921684985276333427502242666802783494383087215530730764886313855995536208818212267601887470260879013242909052862775702625945205872785601581100187381399103537898173918119124990957781184962438978728997470802627087620439314431502775627550688810719837661529419289214397161347034029838408586277544508034967282692967201456500044337806684834538207360130382482130225123618985674627605467671505662068400376209488533105033526900181792378318281044128378042270368568321502201929013582131257671713369800335247046102378737904953459432807574547559540002648043432783366701683490290394146321883465410270745516312562680277944217699273271742948483673441864012366729279383111920164192651719663213403848098340326055417795658332131743886270379562778945624312908668106078071376516252809827767433877375085282947679972776441613909290183850899883580260048187838843360410181691523763282424152778147022158414399650711306890491878538155462310504389843176946352549132277079268262250498369693907079661593793065290200537445730553256460929826719895429669108821042188128394479856302185245218628209596884224919429904120932149702155257987964506181369631979376359210970555860545547480868161584421126416539750314489178270797014522715019249639246320465921247973983189396071826636521628226861599065233473403442040566122242858893802349367463151335250038677765982560593941720208708033685316321989588693409687279073477902109805073812736199493159174302032596963466986220409045015766947918560945489007987405319449147069992021758347126188810617628682922989589625543009326737421571356668795676997349445188086386233034974932165129976994245962193612228661601665722227499105945047900418331307734841224561165697685163684498824760373190565063792776741580542517759106476610853316870548280068591676932802895706607635757916328355071975678120294074463521162099252755274352564017680986167102232350081840366865888794511412665723626495314619572115915303038679747555366952393079851546697305530150767637654634713433803078695383628987215481796112725367671428653577861390373114174112073831758031174743870819443597343749076714633153053760756568555288229330342729410859686509383371580913935488167256084504389439566539213640164087906022097240327828265675807735647802781632900036765349029478028944544853733303607790291743161433104270899337174411783496123769415061598191475816564823371422087804392363384379898726209723368554544321767908549303224669268072089607090258657232672122966528234781257700953053643504531710553379483691798899749024587792270709226599282790262711812693155300213104072503661517106376638744359010799039012290328081108393363308441378320346660716275405438404691006963480133863604564186983185329045326593949913562466031644839794275041114920221356053995867818744670596803390324385441546653811427371515694457341788152637627903268832474940404732228728515886913731560904830608844434433407500813228896546793632050931912589632444199405099171384938291071009151921625041912442250440756621256979214248851544825262780401155847363843486577530955283747485342753758257846839459819375957449495421781424686389209782837576688828815972635824676667637659852450939429244922396339056366477712742261812985694745943472016955146172016248348208479722115332483717364245124434783676529258547519192678197043667716148895205642905317950207334401795946650431245660965657618608063804648954502243989404017295662999199209490341400302017241245429944502523871017776121735939564312765309911916263955546327973086653603499899063818965987423723725875231782904496634628359621938734952895563114302365659842558526261676804919317256792874422163363050157604670524095271030428532900636146384269599045262109793698394377147526670038270208814122389609631285663146637414851192089839834192603331339782428077152879734459098093196210267400721565489891473391745814080705595780404309947874913849975694835972556731177607613337034602430962659093971551247553175779108493474786779714277398014341663097182758310836964102757743474698623081357932093365373083287450442309192865552156022992034132150720110666439952315245292081755265751312880091874788895226361220887672862992560970081515950896148167597932603220318651844846261565363293516639093160091475653537246694232337770809515886298355582194054029456654904280078239414933467434414136158926059919424573271761275573561825093772015227408721850229615901535561747685223299317004987681043960809151788486368181348088869889941876080693383486029532925931971207007186659740296454850399571470765363322510418925707556390065026897180903581407883200663553233008559334074303762729653921629588162821720965926661841370205736780079815789249231439466004773291925390514338768760365963061441435060424843070406461665169312361966680051083067365677333781120330622881434394666480379910285374718306357171741026032737329974212294418938362398112766025325080737748939404529186460994433989619693660839715866674103918285744060442521248639619634332829046458343796934531642411962950483691392813663106305524658740325037881564582710918694237059256713623722255130337783914838706486361151565069931562198913955678907654732669673547323838735322846332879092596293601860086220696268457583561889859930253600533897208310578756359759036931419749249816712786973847378572413659951000422209200208089586900209002842005084843020778388234106540309210662216673330171546232436615583082107805635056100684784192928287439961518015835130558641418359722765455173357743699171359510616708194132796403227654322079200921492940706111944091532633276383811857469282019680908591757562066685470774932827280482392518950939545463683885885167402610778674357168491294159089355204820527274765008686034177184290978527790736494343395295048658383058440546942346519257903349997962484264316565549037351668573487629486242464470392639357422234754490773179087379784619182898416630510958732904609255854842745441690015584357800546346575581789936433572606988363278271394337792721288894850572261666346416566358192487236692347039429447110531152626310935609514940153773213206518225321560203346349778550060437013397141903337238856843033986884350993845779916208498852979121198088957001288993097024231846020083572036880928292193088198688196296449145050311274215150774908467294598332409737049437545183773628884619316075020534523324052520071269400106309976145568717270315380103726921832801152735067328230251705761291981558757067451797977954061894513298948483348812621037565370118912673688311513642606792196368008291866050728445745030853124681937250547520768930505812450316285585580847866370068307150880742163306349252544430394141380368107235768446372662119436007971426123784344236840030249108722273337630164736719917570558506022174689837865476807289991402670957338403652273145389415967799176429764365369123431062546938253636489218815762911151341524962658073138890794835224340961845340749136275406727625946919460998847634837551149532922320475875866329804180686347209675218254522811919154000403226965499913539922275161739191262409972992782372680018158212000281845407557734096548383790411998653446825062521415080334994305754360138946783832360376910833953958471694133520677286927992197323372819305473465208646545253766926820167333650198216854741075446428625278726718022832332365876071673620108395393422749341187021332137422942638287860193281615882592852821202413196180109866495289043849317748265712742171292062970280621950540227477888813063706096907839836319427762291628219231125229136937863112904126261663266867795220552679572695625427704888175808463689420003489053140288307470106925251385141980520040588834676909840360202196987197871016401370073440543146071079803832997590757012013317414374648978347168251041275495117839146427897488732587085575854994307742109359458518880269414356183364403910459471414267574947123411175635815345973473807358135142777109758229652157811307671812130269637567332299043210438125376459639601164844235717143290723194515572120232886897669531382966383478445348223378678303234666642044527776663217148002672809110654048798995191359527743434589477764852683716696005561543336318248291833894214192565930673980430728119058853554580734373905233779623684811426390461338007940316096410567010978914587751746437720867753436418308173610390058375274904274894636807212063210455246487005500716785530068625845824973800756790498179494703874712899849968694607351345972032950629033373598437630447138479470504501107190075108809784265148792897147725215858074314041425793370060104895350436831387656315653389467168709535484775022309583484427379170753589765175166216656697102979740779984160886987930593041627865227169975348732368220650476264781526490587589532388545949466427300764001747386014572754003778269370601105006120024401826070029429478991191877292365374060970248408372808963202288151837390160962982431994976509421557407603089684560508579913303859229831982137882775051696363435512144124971361144669695030358206597828851824505468123111462286781903007237322974634619579789761247533138101216410960424828922161898479904863697322848647466602214434713474631838554821373291535108818637889122187296966991469653964954916491837779720680381695074559913965182055325395440294433739040747148961146660211701917670020818000400271553295357133404503082804882805910520232962913642454970556920689913564957229407401350513138497934644269516879102913863190441097935417683068821646193188619763739029393557013013858873666558638534808045085046097936710835371277106857026458563869141713415869158601861515049283687980910749426305682161878319962264047335104880031673284968811229402306963210288010942373912485071540044053111726838925056365445908856136617658952603983455212764906764397420941433566827353978515726566591370233823531735939653657520789484051863270042921895601489544238717474440775784788555289700677820743572667685778091582481292099063159072627936759131777294757526183089319743571270948026280437690544908333283431943408521514424255219288007093813117101304564563666755843714965627753337995274172508924910368105121761150912449786083302841474628966498469772135140920637410328993802946380333547712632790934138256533576319174032291850025153069593909220970399491818381633541019756691925524471088597589894679342622948622257208109387178908986406811149658226588160569499416315565380054502225587399032916891054717079158884535972278414413637640813288289950334537413618332522322952285550198866274325873231285574112225466406655904735392225726217646516953348189059812183651324595725939709395130744725168977408115733965180261150379963284928658322533011808759780833153663580132583732243232830377273156383999109765447160228637918393270419067340033128964078042904224862101528117575104985279063779264503798178616963153084080912323974066436479651852775142826257959818750660922905315089441313910256512617075969075179897847545079446532115063892035257969404398254411667710514277348355877380178803304623958941832995829613802167895993025353585938381369702003582408606176355760420034357757518931948365483778998568212933047859246350483539268568091227948018869405333931719465428346261339019550886731122197552219059951753973130277604911724851981397706308612357061397692024049163554067140757301786297297133800444897004741362052635778318402047931679328545055178562375099347040508602551771160934384644377671155406202161581127338144302804604983802714348980893310527792479643583245883198808045864484573059589490355141756360239471360708304704077493196648495503640833711414546707856380997066702089980479324273841294535117230563567053707499754743719802702836557672159011672156262691126211264099180592865647817171191178316452991651391047046064807317836565248178284589049692603039936593871734116756579265953728215771768408447858168049972020379352267566264285444732365095792812940090521822532723377206197191702757028536794976475157406657912384623538329693828373201833545459999374498241450715539034705834884041836061626892062328336677759191908499856457496715388905920903871301122601067832292656850375560297152859542680765557707847579726912328752371407146108399019371300351234445085678955559798856544737305712723969668991363883878173834693502987273186079598901473598493498622994148244433771771221411158002827774038100329077748506997545775564977012972353597269536778620311532450099969843278349798605213788732042042479770140219808640294209224602138988012362227989385572250192860525325264387165898226044504642067638437969077669148825552998268604166361232260368962322893740866573096629127652306925950860346313280913794411858721675378026164712242386273256406078986302834923320294851663224851359927851602295197049192163530324465045692778043560523650903592446386868979726102559143220947678576054665217019216366177411575342169751193899755810582475989149427496499871137069214528965067306048145550366757617119398486930223727899210461748464557080527270679320059606136133878513683173079185393163199805370164969658571941423086033916637816571078764744046662673078146790127499241289974483819544570653972755224996293354408073521827836091185361524242595316958323443460246339734958550310054830242364228759140998435847554269681736992756252624582823007801466766514077039504510441046889658076067302072759794133322957187617975969759034344674739607949170588189257407862342595520869593124154535964598642412342628681755527333324039829258684134728939990019689017837626780442721979829925747031278248486006167975110981139479279466741632972447939726021251088436023374936058853987958292930841887755693094035463851075282621462252866409538503031662239946264694341775085301852370351238028560095093312464703377572097172634818512900005742633944403879633174733022843198569408832041419840887136967071415552555367922391754062662831788001422172877273653333281072393926728784569327278032147052510544352830983480647094105520116867516321212498103995286832994903602666758068054119520847694183866803957745828072133044903892127884062469348471914094657660114369235880555749791816914896919520988253889393243193599658198639584864470386149729096496305231582831153794764619015978230569538873552464935812262198481492053215472133209542377752153610768128669740567536721076480531036744157960177101878643744968988500138431071928306414582212858928243907939994115720160366861877934128314012508507072924062157057618102612655549175354800981064415266595387898035551759290797529308908898814272378427068835217454185253421961564428646891278906493923934325719192788886518795412240119200837749928993279541651968420347234606171974390787999367126708678708177032320229606780119779802971258771474278130475365352221543558362372718641466574386409174896411673451954745630791715220597899598952483605385402289080329894400757759911860546255438504186878364159819147778039710732066357426935629028129402727788299392516962947684175905102900755207597511702037751884868959718424803437486336020904148848437139866272553437333085168000891116589673476457067941162324917145503450352299703931029152647874357589843077416237773056308489639867482998916187261649569852665352190895738843804697742176045620531797099014002364492074611876711340501575790861051149361920958750350443943820418806045006459035509642630655498117123590553144149012765462351814754272021168039910377040200513755622299486399706491613314114477580068051431696028075927558345768482870522226636362490227248300783672873195918004464207998617749038408147690860113325329336089330757621284810876882991722876892130740555055385084913231584186341729166574015311094666281209124105262363972593282166135089126060705875989539053249188421132943013723985880556128923165052688351120813627553476774036253863798113017312967835079331345084866137711559990151477555468685033683888163433579439617110968217271067567772003516548423723489841323399487143681314201237471304537069225000327290306319176184629417900697923992000227925307269347422020709761361085505508631170024362077055313147170633827179403769534024721423920975552660531869803532896491092299371939852296249746776054276178402014108209100693921044282441316814773002978279639632683934068502216549293712058307771661287226440609680863951229339604241936051971081319082331163314222925506448519323262640817617976583080359439714002498405891720902816560018903596403297177933025793776328950924630895095529963887912116281345888547753310246519035044620438788576203275287877192817099618568145693836164193242429728306478445062302780259926327372564141973169270509090873043730530105821199968919708288870468649454514353532697651913344434666529086600254352503555768349888284527259319038350550066503921000274384540657301515811869110180405420609551235073040604035976864436144395210006741652026878797104451139790975717898759881195382298542643774015781406115709807854155717952473313351522451623304743201175718866324446975347517067413842319034018385135894810063991034570352973789473181779537008088468450239472449470921548480185734191257907450460812066566334897125742990591633889936724684699254690691806055493777923110423052502007160279755428712153567828892888558770132013664243174188611719252935175821779493256833540049193626513257497714346732891723396504089952189163242044837671229768152678444549609003609042937652450057364564516340236219877576100795455123287805795659104806510904817767931458144300078397290756906594548336458107316214196916019261837838744551744883971465191856241477643314426255594830077237349342143174608154579149817717358057742616913192273674083729022113197694808996528436787445432814167845885811383278044318918526048817799762708037533003410504906567746699618317544452381392139049229703112116687474084184283452875529869872904136654136588690428463189337910711587972262970382043254363441409626003561062733952203033646348997112282106323681189546122419810789268494388650682972882011289552271028606205344410682102589588133272512407852791601904479815458772972437949894968177691435737672666420748106048151684427223421672950554846891603012967809730913251651022555728674944844573459884115684820633814279977034719489780540733390736548138243611259027376608676679431638343619546443143627042177796750201873150328444981850289890483185043220519404973457102609216082906949354908622166155100862533074597419704176803105249819209182627098710721025494445519175357276374037918401901541030388150093582745077146109684650696073103051425883507652122758018475586624872490862802491882328184814098880479263347755422641834771267112403516400076541518510036609454209042194624393417245773806822417046253975828752034635816435509792390205092420640957837532913540360500055822514717491743997992441634093134641660892424679761487523258184829726009817367412424663339111088727790905170371437351023007653465559084213906195862404340744782741693882227048249852119741072238718952943057910785399294157738825248375366724400832727501537259597577888575905748546624808358924658443932878746954337235442454396715136570777452729157711487246039307448863614682837925180528706678193655906797484648418957579082340119156903598706151895762267978755441396882217486699149368735198502583324611851074346660844117803404206676330664346050679427231609513941607622000741710352216365615910221925045415092209164488300973094452008869491973308317122402586961443507439102465592986585646766147431726167450897508885739062637014371276286118877861502541748910187338903391975098845551252441124045262145340407438771927969624502443871826405609682090035755871297211060889683869805392994713212794901586716784289332420706645840651917456130088396761952159442554794765731029250215033573106653206589664238004916904109562829475453165137284373296014186160652707236651900554430017944881556744862531354674558646870469838899460116834238494815163302622239748561213536942943212106765834232165374582463341625883816502363261220979784511002617510034290467070755025126429529340907130531484397546048837470698766486257474909810826368123375390282004769638158540177195690847521960728518354094807022912816178396441739328108229986168970139628649513800202302481543051342727377451200543304272533065242694641639504990986659433053207431141804236386538073967280729503949549358760429574212545371935008445456215649670620441377582662758572265652200374745224333096682331629916508375893440037123362668373668412299394980315593350350542603092104292933342195989624169048858302851027660537378480722019570345097607171783229506267334379180453261268396892754176515834953817736022991806227461586657858979930966131561650166327682928712593919202849567179347493539882427623514913654223182236328889344749841583515883317209382122457026083829121912262122874445955781874186135162594663505193796959501296103017671816697138067055156088166359297517083315130343035929342811777785917371172646137148611784570733507196726810759783103918204327229593538106750249304407404800359602001087110470188185248206608600114944872161953342154972560016689834575017646813093630119833737875510007210345456507070341157785921281999432171920759188965486497702471460586806957057738417059126392892751373465021317878859751576001587801901157163994508416715379771921095945757083328951604193089590500459062000960867410564138623542997063724179166778529452319784201472803655109946371705652066037631638606594706523186298160126290865691166997321938545269946103333582527793831518943891490623672900261477846426001614429540423660694755536212633356238538730093862666429505386735531912459642011541100658148118819424816224955263522358225876400227827145700820312921734882160259504003547052401351067865432344612850022670019714152572260559672954046827236472970515560226368666029325628547765339981185462690616414652513968408269452367972885074528592667609034587427208896705846771433363590746894117576222931980182183872597595658754610895975616880040667159167390549941585558528464476196362766626454403138949966816753440147763903451774501317457233560072965873309881653506582395179978256428262712886647934285341784131280152423396768616453525961119465060637562187022519562740533844440287607321829180052353044197078196624333337747154777069572585561647454755983994507573145427698162445452185205425190870225608458470577910251670352088188539954558784983341768348556849594193305855326606449524333056327439734808652925556661072739727762846778343573996485437974823162623130120498743056737958173546737337345086935713019205784900693126174565912951946406926489728600332060939132493239354675874859545195862042804582815161764609833363877815705613454622426652584415750487151310463488805777189165202401835372788112670549693744817204225067590194181371422381129242911188235862857954347301943453026372492288347724496368656226953621631003103097676930093254069909323543102590778400507259289043665013015614494499266540889785698136939711303653393280946059935183281443781037330436976868477450512164948500011788427513304478480417449208980538803870107450210018512657011373118141238772179014250011026870278049493881970164382750669636860516447800555326618193355251855685640785449066377818460984627603373063331727312551647367333110287778346740804441876280318830684459998478015729009532280746063257534902859385926791833211952142273245100337806262481616087234531793642212285063834862512274977142005447907072063693102585760555701888380320655066082876553106720472951161314383841517549533621580886167118817662297631557568065441195744099115167032022121943484561233793625206853607003064074859677835012793034110849051476928154272691068534722117032638001906597486202599423537266348125869262095632817240882979890985721837049020024951730753383454185145285940055184868054973268533576463858336815113395462716438509128323360131270231756457565899903972183226039019748679045972871561472148826074560404559812755850339585564678951776987384285398101863280714117054024183351375844911414734899157856163427517595398426547624903715780965324378474892479651977137831952750437523486261125777967512712293893793279554872279679784739495442032736534701070945017448321959318798595685252022907851169944566979974386951076623766463648449027757714129586838641482566761414949175261467668950347143282703894814760209905293921255199464084662360755752397630261810536678028831454828867966010760378213957888744065441527602685310436741637043148061467626894512357030817359872227443316153329503841562960267446924346603119333706315767887158732161260548208565488121261356812034351966464239249934868259420374375176829123723561741708434741084534506375595013468828805557318237022593922998814958688385060136815771690486722015749618361939345763980198954885280364255871331960810741382071798864603887081313934118404894163302811048170718855124915336089448372824480284527092198755807950389257380864698547378879837731937196088223148536082603036925364548720786324649856632069037627081554153788802163752253525757591657661348225973821489532373371016394758039258681202284203072227044486957929340406157402237602668272520319454860759215731654701577837593451904458183700974006100504771400434191863433946882765799997752151133872682901892185508295837633407903930892171532009773272396585879335574499132739836681546252818963796429966174184255558095151832530996316778157245011321039633348111738288147365874679318122823012547626678594868486682355520715812884403500957811546914450113215130398198442078906802519125068439400737273550525328067535886047146161328590724245036665516784326402644623645573115077505227092245523970577487452340949857659539180885155392951077496193599391151233703408581070153234465031566333550407072462515870540077190882018501985160403699859218375259848719549371311956136823547041808482795827024904412922208420634019251865921922670842585313767451475025032643071058444932887702823911958917828528886529694369738946690581283322082755436782742521033280108388373226840435341606410095174017856557757370065855358977496734100761670379041151721267472843716869305919144088190455138250316344634490068394737491407842016363005075643979650868568577547131408821264440530662828438494884106697106089178686411538257552956851250500571334589123184108282152160269333769577442504245901916887091496301735246219588971227314896501631754192288341438590122373170100959224530746864519136347978603503595188831660467546540658395393272122296184903476638135972789679752822336129150622528753120604376483790846360630382593793047087176269223861689566238241276588113693452057315785379643776580584642360364911642585676567473402955587421962846765464988070862880227317653072341695320522085062294730841599141581706729938674544559984238815763675795627184576562563958994514514980095336471926555993502660660338874661624077421238900300442559713130817785971926973431324273809127837179603359549535478688316932810533980936817701886929015733949032484558560620671802276651482131566124318149712958174166531266025715360915376711053789795661823989002660750149783717670514998398045232220475517418658150765485213995229466684826446361125265547594921695868152239036436967466679463765802736902443565915967267880725638333438832982354239174521710780869702825465158012292417421695635528241874638800338140014872730387016573429646317385429688230282031784452197322254707710126869641670579631855578490932255880639194503287113505405612763814953593252240335966584271656324351820150583558123201963527860448542581978394063450123438663957227215374777986476271635532990529988652401746183851292559558436754351755698143357644304558291462422318705278410595780719025689045120727511325963785147890220180044046080551379098282547599779671368115957029094057445071124096587025354340205701397020809494912909475860568876994675900397661142901366148581196996662593471105418505933971626602340301549102080519787303622487842559039743922411969535820073141878341199007999804513108477633554954994733103620316770177836949436972522242033819343510430398635100824142547035546560373065040347133797123124367654724031907830539466375376918138141754036967346008870290673656244013810226804627590262234975917230808486701193419792996391671378138472080838111651825375664226192054178609871530644468562798224933978428527295792281638755919395639285501222993362458980662837248638098206154833435054686651962110525824843263813225875153644702574625274584905208669178195469209720889275868107568399729177205428163361110222039918488915744902824450399749094599150814998311679647063588271753537253888917598325608608848321517300776339128231551241974133682164300006945567574134906770482582643130549590897601737266762241466363008365799393648262338694549470040688804178488283475504467851121886012358692672144280122850446564814064771652967066562795475963130462254835173660797854007463253109221671594909540481564282117950485496213378108285779592672299132184614325233473344470102053464087695460305177657090380549469083167119246783093165005892385882758052476592900685179342254374216218738795215007018302860967451590054292967669668106710964068872524588958623039785996188217454861189539172251958793042526470223206324658565925290380321675361319295068891413247230695005870976914136789094068322270830747880874813138558313142285370913498387994386201057910475410230448906412594227993336573217667611126728947275158884257771224255435922181682048634495763039046638626603828419195047593004319895731509473489970331172089938752524826063212657439033826043211043111805408832030840238055711386892632050431094692958067713097180416763620248008545675080030325475668274643853170169694344201050809899635486802215280483109407501503532218182757619775920587754737265004091929605744890260804624749106595853221733142493783962397543942933770156894452686974198305456878023644255285970062542004328236574205532462317127751228935017507213145608441157039767811175760312528904419115202832101710457311125811034703812060369195103731183816948862045944733877356363917239674372128820057825580031065036230125394556703969869182027608005643766502048829790673651071237728609058074501420332764801072821477450896286910224295315472419720019988982991986948568338290249355049584725734298444792758688008085423461003448640881603646601408205511216394972027545217878758702966144881293800332552006765862232643869099498430396461992471378671894230168470905689764698752215133047072487199355468988787464636108058998514108408205290359732667805299496749327467304743099012396985478107183451351800205649315735168458434337035841497123747012071819147129336755776103997789949639277696414341673238486129614553958199646413287873233399861637181548522677070727599270258684376488074233316160487122897587255183802614715702484300167332727249310487586349180492782897142310923902708382507550432691163557133188597476605540751787710382000679378802298271243921473446911425214645102784465319539182429345809968616409149859724174355360436646170885110466832326647178940804960538553708436458741722193771891415711302053063110967911880983936831482477184479102485066048359196635049671460698647211749739262448996293853400594007434416284899267236489145137596985164689192170078173117878211411821895477829964365765709297697663700252246944119596770393679987269655393799855327248596831446444938150324203686764432978657289604193961103945808898609157299585330381750394467245056874039035367602228540760480851323883768605944844684178537877722299084548454241899339051305454803969329523769610025354662302203947985139974674854121893746983685637204755486736636547581861975744475273381622210171233110998845845992444390936387902218981477377755552827749605304578688341994028809789392435946148994416618052896685992227655813369168214370955649193467047710765353112641567038773711439015215977792296209534852367154506944003017744753665947993134415976800166273627185044962947582916005402713809590128087582150994690270400429166967540578536412711115883855612407429316027163516195475006226334404668015029982502386841088135158478291869295705493419075499599197787316581075307933321193418306291370231352027482457188280741623479746216023998307681182397831877045683428782041368286077703335441966997933361419321334554974186467824234492473125787115399489924880242114436060908538826106763447739249107855702970847599138324649194297233355724216727170272882755002214462886253778484153005860044817833495346139494843284240935128577289316287502757109028938895995301920325573472740122636579438839790587608441427947798495808412334826494472443695570266129753545481726669703139934187402625996373677895074598299213181913961630791882617240760379842072179809642057033630718595464049939592705967011983362006219704378070097711663998411890620600264673302114978305381729162326158548090002957083333665353215104540709508210800650965518645575193441549586207809676597561485673286839639813251271206824680503580161954787287111442447436149301888866800463136626588411574864783241176145002069206969799888944820464619948330845995590638240020513495405642861442281352660198360548345994488975846926392688555711347550179736289971487932493077632975425175268679479496063591686181072034269252587021386122490419631304099701313196655482190552732204832394949040669342642257591874422001991733186735699937845155994962331675376981162952562644091579799684049898714247222247715858870714672391384412612945267395737807772152500110579667216873239561592691764958649429283720540030823015359928830128220869069073235623138566359104998539704116295915139733871268254772985249236946209978194507370472592662577615196749209491842113739385663855679096246231136930561169228397296260931545328316617627494295784986408019389017873644875301736631058411372193165556108943817578293316201915365784790520068818285126754494086228218143024123058871930072789608248261146670469525914800612340314128563229060962520560905846460491111400498005598090080673412504550587653012651571224087960668237265222608907045339021850064132116768440370344043585949054520764640067068230973914092220436130102040917678964220532525859082797079062997542001679940115730249962833858905378837474015254059234995852154353906021569435863298735396680457959920196750954994698550178419010208815756680660785609267786025095962297686490224006973502889558601759643382204470844016388589164871093768087308206910105495571314902991217385394890114810321006931130357071358585990005655379347100613668525573650000585716260229288244342464991206272596992227585759983409614956062184397836336032834633710790179086170399314307268228833737034600007105892124754598582133090862384356816047156481991177630659531752359779280346316927519468191912916892819564204485731848878095903838197371133472124464436280719301663250243433361065837063849967823569642738021154425213056147916392397777571336381901207828590995324073183363285144665716199580188410898960763843922805068977006066050561195430471180174933316200397498212863365474206003179745032721316918258780091395421004170304224647726962359440400580996599884731396742889375315762113254335562733067049440880066381601966222751310581412131345219929979464456408839358273137480882124728852188224757309607588668837696407031148216757556086427421643195273600275194735896816576876957435591125762146234114547604755486550507671883125818236760474774234508440594388752242216792013839990111277401920548828333757846586325996674655775204111077962140601090366701728510855481146193334351423937198184347023136486109240593909653399871674700471632682847814385082575261114499838757060490542174400092110164407665187286768918525874100413488189214004361392060512740951965111992805344007702147474454250319734143873878689145010394672018335189887964562264539426604985926601687036044272691250294673498214478085128864870955333583550860906288822901503919778577854941126584264252245951079993732760028703914216626315723545247460692291559777703568806301975464192405298609573012547256810883739996661693155433803393619500030828072731553793186680706801242283572206627915151632755581667073083427277355446714852267160353536682531239572448764616669165218318196577530038381322367480032760208666439282652704149606413789877727039641666656355733852487764853370276402255102506285926878462131575488210196999899580511660162785781209273470260482024813210638096822520158638264053716332790961436677890058287718391151293781900800186810087732312592221484606138099346355454893160895364358320702585846421175349782747851978519256004754619148515145101023277238703564494249851534863482964209714970409336315231742118833539659727963925305831374046818175082696414476925319437790524508659846969238533811601186873259974968609854160173986997622821766747027479334192231931645779243445728642741408647377734158680733135611049172619307618093388537053999669383157509179109227493776744335712364072893400534419713548568149618468955779801884660549667898563302319316392420419223934004948694990000703386258465283797056523603593576848012832535193310110885493290247706979486831577635390553370591502752967190224831816251218074032620135443816762359798317761411284079011547592578838133721309199351613833088741349874187127252372691676153152262403694890199972220790587397497105681752875587123682532580630164093331456487349687737168999567935535135955035852898427083266247417489974092926516913826941902446113010007852512163905644270141540487415545453292927358727154975580098622374067923698764126053602370334613439120287267708365108159412390874864120670103383086338576933268761295838303845636261782579435140909620135450711001527060476216960151291724051382323995974604175988411404491645686713700037584456912442648842427750963179246751900472569889629156876439992981266061969326084015351865761342374591345047087087804044968579507762113429712912681345759435697815154316748984875888215594865005743814005154755221918723657078087119948783670760545825018358895097374996108075344982623759072706828185668163306601389550704985444090483716183894741906641814815119232837290081321962842110137466302322876401067791190636371651634307151651271231646335409625884564126076995583479833784260164985286515671239885876108775573342772811918896296480300347891611987188963253296983737578553571750407416251374705439603760462400449219452487864935243800450112546247029724663134546672969546564895963753717701617751945244845114092479187389910268077415179298121697368785116026827257319041736336901249557614672731241702791104099534480364958437060103589350696009565486080345557277687514417951668258063342321234008069538927748112598967158918057412119048502636997897123520493770531320756226940786559734477345720147208460980161540053736004601958575634096408605290745619699292594540887858369807737428076705877125940517183658505774953380595647041391468660408498364243598011080340767074241511872316417671113385831331674282553964217380222442515615328660213702646764073222636119032769735328224609680467387114507127049245797246803833799321813991317416809328166074535758731657443701865777582626389252217020595916794283786549771906236105346794690327842863470308008763916247426915228631470764682351372364329639139846916035410332292416056199403327265499590160816589878800735588114800954086622750212668121252338599657269750208936242852851775142221995944256136889662809828925889436156609346703453550933115230185813818899460021190495072449401873684789013861844980440943127735334939741606458033578838250447397380442168777611995763958548508063353114912927907592843274096368547944483635274396536250587872448278137247215965996269627622199703501013253385311849146701628941936616596008266542936748244320084920490164178204707221647587151090552536697725299001920075300194128009253056831245244637445178686370973366037258521414954609487485067669461444104083089383954242149701456611500515521239984923886098418572689652705371335466109409094236554266608164183530170619515508186527433998151548142914190575608992589679790802115000816787508347459171209714364908138036102429826468039114846186463040381271978681890961604516270320112452312194401420887946198974461689154942879711207291918530490230199370227849460029734190431979256132087844280857536998066252878304874478821815625827504419087403321952031688215507682023986197605419318571237696723059690787625134001939823435756912900638270183720322829976439661073650299410227969188704844277118042076163124929656225020753883609317972843572464991972819282448869854224154007997995059045928122127023981321730914515850476212512467817281140217029475257903042203245036701219108446428102323011869083061602120023692363613638457544135074152168840384653720376413060804034846599762454982879772382778956145775343004752481024455560610919788709120248010131059513998446739440940742656620071116100145926026395096808421105810170645719455727113958368864687554103663136497958800815157562404012430963456771563178444907510156864010532196961603953849895618528322884303386433455398631014284326245630601614875705901246006137926521595595251476435304609861456691599516846858465508208684424545473462481875250988905882055177097877437113643454042128451461569788249809533490646174687458183999306041829068214334273449217077076954489163356404342295108223125169688726521822333218960961806489937038535606007487833869424661357618614832380993689919836107036696459348569101923133268936018980798061435103716695664136839672071200477046164580123435332766213012933380943711260731835425741719792181246718996250567234024948949675426908053683903647075743131749253927334425237111453449455404434353241960800590318244177792433626650109659489487013990230852982442623039924763835631759736835311392447771323902528605352504236485505054616414849367149150857402803747321602161103580750417985882983345758857704663278554478101777365472482407949064314885781933185091408227828913251436974243871070300543611255007291234599282658478877830656776376288024739676652050171271018029317366212791191861285306254211022864267577634667410932531815051701078062689831223518159312410045179293892090199527790484710358761375905169307546828294857570136503793837279408671904183491592692193447607617661054572952419301826767846660415608909851568015487938384832161590009372633417524347298537931288595821723486579022587325340327586736345237948575274445672487184633958167713724890095100578516764031757643355080794247261479954109970273745583197935395188093249409319197184305448666423576570942852735902524722840293926289577723941988251631322126520570752913687358874073393861049640137247658581544281378607731641249322734963039915302242614942421235274595204659292055507253672264343532572665031898702504428967283181523939036694182038162855550252168421309921895013368536936122903068928650593110023473924819778138060278717602558750236472223351780949121288599015918308584102775828373520808844998758901484759048113987345054143560195346681376262079910855367394558123223699328428929592094018404876362498232571226941671966220442942428867519526790577793008390393246604629809569164933002314219690940502814119409216447426031744118705860534288483480555437261001721646134704711289593210395708526043593505238395856643737657224327074995202273218906403033462998009374383833965171274956157518523274502899524647498742347761212534304926602873164105218412539508885280154080992938909296847760764031227618747499994001139865129802141205643272915003007779230457786841255690730493129140896381584009652419928170486987773715020062806936406275351275403901536936391600955381304189678077289662260147546897611703390277060465484457950686349694986769740224076468858509702269181648625072351234306221811157466405601208866935083482637558729700263711036609928396881923880039551023306660090953751057451600467717603809170836164627061341588329271925129476779565623741558522363673924503338837675874439663475497739148156904394562682968337872743849836109045737104969400974034342061129616622074377593902261821579569850500870662536895151722504276584878757378850531099760902879244928912292695671733362158983481530228525095806362740323978408139068092404396589025746350282781749715701338032211547599686109253103269792560750497525099824714117791044610486512709128396155455661622957652485304680866101967590498162634751785165918032314473569475907147965125755605794505876545521884119498324917920289716027606781245326868968258750906962476727730048113407173227304315228454596154592306080086230421921084770534968060963541290174182271471458655490233405823254681251964401171996307717661782068972131942653014931098658295234664181608282372093872348473339863640340138000011885170292411456775112599984538773873400061012978770796362702261189651321368248318526672451658924823799803912665041246340494048215129826888234915744687322549422865903415923963990019776050519182989465693450093211606031413674487061738161582503967528972906219265805914622157475317221360505159997394596397721911584095602234486071185986036965754018137573167661804418886754340475340128602125881839377076979731065664249563551874445155059499454271239684397529248864930297724731853714587589590000550205296991606652750590133040115184010700186681168289725761207971749946739718481861390202029721825524757011385242895268189150783517016592380306968179464485599775955448515762576456281873526233329676163658640558448135327702125595090222670229206947898766746049285297670600184153954102230530468953283494548961807301539685690597139036518046080546610188468262805723947926517144167969065535228134132774179857146873018680784515708014376436890354806955972944277052705507429273927513202231011621441643902773742793540747321601075428986159348117386546227443732588349197488491445071476656242825859705717707422350372886930261695089027940012288762821205358959834064571178641170087668493653395945530097504529361379058808348482353673534250955873148292496339303037090713516825993851318797551353063126949418326613946662242936048612964592881861088013852352766357089637434119284911225927970664403388016668144275955590837968161769449310667880658035686860884927850013031385883247040178533801416019725456044703449284760579103621774765651804700999068181520818909906478577454782271015639268449667347816085172589682053648895284441220336647487998236027985901416670860935664149065859993341834060054981724819852911386841590152504688444423735115187031157191613220361519713409716964555580364162877737381245967625577846666617323423665418435153498796249163329652808922824875341201113778912796916571288487463189628142373004362275673031111729883802876151292506744223312695260258305919200975921932216365098896598756886267876552283497042886462206798165353498353588448654197112983134525612445228483164563952816011467416245863911142856436527559463173600265746240815696825393276236701120372753214930444338319935571555943664660291807779522480937888823212912115704776215648525380303454940823054866898621840396450569713111374179368180793284157343279374404725031705024991419313698862138316994452990466050607828757910623862373578086581690504723297608679088053870061375825177371144446810698581095472173962385846270524203515340430280362654977348420443135580737756867476829070104589098320788375106827534446193300963594622317208993068784421674863012660321270029824312130083834910644598379114347569068409267743365853624722571094702663588067121721344298188372979863061744237375034718698820001766304665381976471796147365220618912171843136285498209160398699702700154404967117998135416835017741861749946159529477315784879553501319268096466425844803285754352633734769523314874835209791967933468617089512847763756407836008151411153838798569723527469521879033697926290718304266017903804479986983093002612361726768269622289084639906283758819683606605002225559682139540301926992381803780326663746331809426806758161060284081813904744810833658602551918836942940211284074316552028926588661883507849395904743456312018336541545336265573875991648505204763377186050570377282439637567895861547445811036411232284693461530467658212165071067805573773646451165339322583155594113057278067815111810144405375410291777649322644543654914575481945035517210155901536728157447436966122304880087066598562156657608723099250628944791780043162849357907618370260510867157301274029069321412058853076345988536582686961578011094334301245149776872672313909613732163705187935164213848345141606943097800869984591441650154993783605058449153992893514334745216743043670477231093233424230604226442465217794969373231337801510066568280582024505556037723986084943574924082975333582261603489626381569729243550897590594471703491761824065423219519313963938121383365992226793439413986689048051945303383234777231389999864188220488349544340523969774086951821422224242575847366111137302117624940958022849240610514862294007250141186401212656658414881146533930559879252845264047028652765297202575113926875157884838045213262127829209547576222564405786558959825060884377352211117672488965924324320664611712484097700076275339076842150881566471857122429399194367468711745446173770389963664474656244463032486913283994517818787893058089818834004664919653976004191916396366202011234566638568019584525697308464315000651658461541541957469657132630687636710988142078414325328970596042131006873033393768447338071396463050648538326307980522707849984710555894686607945040477980825319205449974102883737183587621387046587269109121936324160743613092150281135106624698554808906305597235328114577907218331129514676954779334669177959818632267664636801371096325311606539874547516553868287492706155624705501367444413067004408321046777780071130464030689866419287867601866193737939628808990293034647137176672122099174970150574182644242544126335784382322451574472662436511478053978174163533793273553642343623079455050730681974950897852654888891014089035710024303453383843992404514582259060045260831657516557891103810806953736684172323029073828651889266443451380010224675359589830863001324609811240367052569138785148359483404505617107398945769424663778778563733713005755314276882276142497238688550568890710808463139552797007763867239026758933315009693152969789918491681009551026436644932197168935555667789099899194910384679161118255253895723929526340943366175199732545705232211222206790970277431206767030850354920920506279772724184213082795851816676735781736586715570202529598248990333944152899288537335007889227145571888429894840112478468823673792894745164104067274177325895417786463489637003072738391774837528538682016980729520234456992519821867665126395983302428151559386811090260093216879359163306072745072803564379095238883037653962330434963763705235539354400766649836809430678620189692787522087679810151914290629720102799473158952726949281891870338514143193941009017656680571479582870850131888185040178267281681353422624891603550216437944836682326218878831121805587916455243888123022577061320184333479923704141464108997810468465583378953073911272697177456043145082041327969275272610663420309527825060315693821314303178480607326479379111946934202160555933132393324263633741616770205542458228686568226159195063801412774187304278395701875049167737642141689767227075218226129557304146213033784401485343016550961468641749294504198037296254489368598025410266758474442663814225967317415488218887052224386924868462144892960403416794022184082285581260302345010937471639256455354815550131290586898611360445136685655121502456886290502385665201375471608434060102068093212897752901608881630852610364129046233980573266705570723946257145592124693618298206169119519342108361063256011745020542400936950992683774261043937694305180285303598665354071593565879600679355889083064928453999654267883913381434885704819640183314846216664278988767464013308529260792576911652938477356136767087360380482545578601081170325563450585203012810385875313488356089025105667228808590888939999240199211266371442506537128395886371537945643175631311851150961038569909330287453082496233733612422698720264852144876601726306730138114452756881325027465342942147873859646947149024120598255986791382560514930074487880271468756039129365152622560059034895380307794325556161317553043047827720681100756897175495454597644628128842765785724009991585399498913134309647088966961242233557764623086808483776222943539021285428108670057732029809265980224430336879334607875969210429866737553468418630625429101780174939786245816129964550803185991576444309385913402366359300544890825166670683686192744525139092324208089678399973160092914613887138385775380287534609156984459573592014835946143623647524637757991179932442405076667934759052530549595997494262837762347768268212863092125757789749971228797623132610032532985884789233874981415999642128237118010892637351331106985630655775915299800445391758975517840652281712120893717710940975565387061694509386227799660724429482341493135559994976351657412333752853171434738577667312792806651942757202441289985282269258441981359848245662261324921077198527734574819784762373544580068343231026844974003334486166935760822809785751300094000645859868141167742688155756730276946360169035036027843234803583774643663547671948238253203152015079725161527926782340314991064321547724731793171439249039294563810818596503223755759993580710022231434487590291541696176021158973186130659740441279089569057208798610847396051882507887986116919536632390584637797326601558646329643546885974703167382752545915475031154378028159036809675668380177303710516890825982145476621396462695384100430806508648730782430210399349446588821608787783764694656480693798002133538290553686569641498028195886758521234687810902405183805448523048724652146745411798709549479559035177631961888642167251474466424073522606432384244424414654323577444497441836275138490836073919304794278149310016135306189429756044661702237187774975241105554951905319840652681756533697081846837375265549362888296004736906547450070661927884167001163129921089207157430398090990606976594755876899543340685735413650255263023386070647369198139212992790468381596966806767606004646369852909098857647215441315261314123171825091189513719028436272354575566632044049099218097900569932970600036085329790248295638586043946620289010978707827024903156086405242656712373516747611705441397470067534997484102677405856030125178036218493709430614830481873428657495749260756814311650187149616710508320261994177576291942777938179854716183701228561887378462839210151784255768774712322457064802483589683173264935558110950116526789398549587801849264744354100719995017707882373627782104911551618457877233460683909518290067738970521669875535889722552941476702567767352498453200207054797119074227433205767403306298217931863227405328648855139031224162199647570135042478179586003159850355879172187942608624680567906631508780276440255869351141238952900272166319883258132253555661270094589064982707779473181374913787757507458318176516230401764311525131751313074291003782065525168178199614571571617102176679925804117529352477582333799945121993277170292467637056932470268752420165887914992702411590679464690518238534472870101420827575614980383576223348205554187025628285426210287085713008789378727118280207498194596979577747858811524382970157590136689318211726209594956410927890189466645902713963118817839684343320905215325433340370012132722269787526575047916598390167323720206445291003031369461124737924306731736807676340869663155067013501676069313468728377530723562989078395833455883460127719599544549769911376542313890785710993487707785708525441340442717480042435176369059185018492708902961118459435493737346532479726033554272455513317529469204121757401523871453306853484804503368037893566014347447410385252883097125860372042458274799514112781706785787245682935639991288203142045107544610404711207655554065115350216712579975352049779443835245161855002806458422480996228828886586069629107580783594644970933104258608713548588630469745662246304729239719077596408517129717310967250948721228276202675914263736220897169953921625885677620057219428974043816981298102598948352835744940943441993192520493415862411641137185271976401302273089892311691312113148482178030506186574368326895860475331048725691738138434999136884679383764200181210606047299501325722645643618464784595951760398281198458544779726797894686806391485128260618572844187127357205877803968416602100162441760745061661009619250846919305518698395849919290700074927561047732471848770377717669827928851193514795321096545217659289660554304986169114523230221119891877990730497686097497553920417213138277411539980178073910171642614246555419961377693972576137138613717643372252737131403581175691283743550499535392020905780737196010249089226775914112614580032986332509761110100364675776317369334321350907295898153317955300565680381221625752109731743480208948914240478237680031801464370716553920064330484143243510326292669158320369869008175334258929821932699985211074875521950077572056309273547506900372945945823210724635391806518928132413990518037030871290293412021039539456379451580791156585775811925870150725669473892072311630483008983445956602219487260680671161801811333239513408887874100245480157178490540419305016923882531768492608390783537795461869511814721051432179326049278173910396244778581481107611094287262518822113614249035654043603487776875131640328531115444554444222011059448535203569678278912902035697746130828093817224107515879039079682775671852256724639050991049133133470951224222625596816911996647409344280038375179596694838416964680774336423022765461257963864314764308676664533980415169426025152495319546215399696095917366789434652699091673501264150082061887452424135664193374070723902480112451086151073429497675831316408109180843785913073111996658993515378822982499854278390943095675415187275704228882175273264573419584242473958937156636163477317375752138618831411132869562721883491373107394582235822179538708618175047077859321219165469076426564511366906976094412368188554158368195476667836528444965641515649212751333269487354222183238438574424193491253632610249379179351757559895367034508848765027935528457105432220834815958138720596730803597354604248200247386282480377099167113275782155027434349238370134069788270732201161520339847378690652399276755746833972943605168678833746486419680069108495836485788623741375087045593496835200001025710008841999234071746901928369389642459916036676648867946775182304947468273977338083472355609635534041176882358762775086600287392573739724358828909547847972609188384340469360803897849906682948840146154114374256882866679915221332774203374988010709978580956042507001533950049358967183163116780586248933675787153296505320957946111856899054664572111823747921270857674741364592548512223804745455447712551453951478700377901618566467437864873377109953170186313609576916391807799755015824103279448391671628949393241473527991921618755711753926245927011840286687761151790327930991178035706199002374218496219788279367155398908749401859450838090837000305269938806252459427839413483821597019470516591079659148749282142045862647026517686971886845763904620248176917353069946922662524280542831516881044110955777679755250976791103315012429084478094637155856997231438578903618494735195813206819332063212776272194953101163317167253282331515198959070787720258657874317390806667770249662842685787082427284323880535295686216878900179655141980536043041239902561901194021778280661659905812682445784369312420142412272873260154360898413982984602534176957454153216840155662231551532862834695178266639788118912271504338116438082237662026243039834952774832887173845474217529283723755353735704777267688587872181742772536584196216237879778042082227996255636904549254812650734005601689060963210790595473161076139425510547955715251361965589265256217586853719480050073073253188763126788254205636393596470688113733169813925213689084813921233393272970436218681116845894754745334346841962653843030068123604757591859558859046012104782705162481569638056722397160392223278887860331698327263241023604509629865726912301595300139990816316820401657942119143105485524984741960224150483522447537181871720361483929009533755153100753219151038219800038333975306684363744098134683988244536280390490649496031352889417843103299681479971984661792678108956079947672203673174421845172907846089288545003241257263807518423906562392868132458114133073239798655572211100825174849887592338489320320292265271690648331909845734793761801480523238569031899748098083940175557932330413378638055346472007202549986157782329874792486194895413665899583626469476715339068622112133244639725613448461908552036742004289677590018283146068002484769006204129348626708430526762445968529871725292293987249799696744990933444434783412241783551481044058353104931006164355432499938298497010539896996885267146018301623207150687261595412782208857701126090387781025452210193820488583937293277689410017440492639156280874689672744335047100190246211821489124343806527367450187840095497729928010229195485727126149446372130350397249589544999696869312153500865166440211317249834971543475389291887267350893853378300784767728909183910739273765285939643042566981439900387526903465112317830621216620891064568557049322782305218312217465683378129597117886679790542576096808801969281744716813927666458468814905251395656316503987357310309076602761281884827473014485252860100703745813505397483619762855883210391744856159543173762340113194873348376487119828724290285731586073729862130034856067827840174031967161543277173841461940795745540537005735483224895613646166780343066585412205136547600845330582930442350188928823280308670493670783611635937805082948306412483361932674229294944456654527055010472294779734562918905952621636400119561437542990848842867969112757741726778641625191117973805651225802923633711118557415040730943055627832797749290317256126090649309738150641038015972983563041048581090857957139143370103741775349200787351718257111035238737622935692905237049177898656105350671064155206351380580390150089984981451981365182844796743740740962188757204234261048941188322929728646473883412484469037033761621566451964218571210368962575876152745192009409149269570681709302948157119697776133989902069056031917765607159227464303121381840799835353206133471321307399557129604882187041112804031621720614556217256131425763669200357422385739321937899288847558651626911813926374195537359663415072515138017867155824128155672464273924227543502359807667535511192708141334353264212628594915429650433656018896627378331206163526334178534197719415366579028574570893299708892463961572765287863812495252776939325078410828518575587560429286425806437527319955333681530147274167794014803189267585405488684208653905416099005867633355699510651771535756414819785934593215391472077635666458728837046685177959145793908052870763239941829677251199611617794206858978033336478865060987646710385268561846653248918937315182007726319873726463979305407818646746330122685884697269182257462923129415054211119118277895343848414791132759389255946185892697759979555069840302776726352654825794014376411554030151121661454864692557934366116265255790530013421068774303855526268915550026294061744350926376713063594454746332041031352218161437070989855751552853241448247117017750630965766854641980076688192780119296411682621513403484630844585522083080326623173725622319648245215716837572393388458578794839687022063555959830725289225974004138197060289237549987969255052863418920220927216921539093895874987869621607029161453784228386204232438106439328288241849448582109150343187616215792938851602996919884471924345460481346537186486393087945660029018009958283968632990369797724635584869431042741725078599207334708134994145891199500699147545362411655798821132054458693257796350345325694788330421383316435235743844135305553360557309132518267490948380617873235750105795022865732147138703090522788592153706936241647307413571007427838325563795501666524668497941211309691023093235306769131599589106990459107084175084658775192619507421055115971210695043562148088203635333294460602689684179845063852781649532508586477964636750103842311510201286391821173244651340845557008759424590148507058297049294836376853833283577190743382701724357337311000059925696278576689735644592931204683080557437369474756159338446101996029467895925344361565150435466618681401501749814790144064539802381309415758520778410758068054673402793982153299641047115735846721967974391676721837234883511573651300181056222375732547109750363308176717272952155885556707197028728772012229731984534833088829827530385274407296885610428733974197657000390221042782923691000208224702423252647917493903453473951953628064728770472117132146110815500740149713079673388389776399785938670193272390838722889708943533240897740800185289861862559209758804288804154488401321837206617053518361727700657477520860881469343616491405096307989359019758491401902044380200160551335187266125581893134242054919117461596912452692197758871212211753877584896341060149223021059165995523964321209775488014248151230400149584448780201089135933907529283645419336964618112363408032957245743200194916159608362115312049182630087620582819212027512439750180551042050554029463056686419797243614824982868731581284853875193347653900772504052592362629134194717735586707381311117828796857315303187052283527627807984461372260279706338232688147450154357290370099185117887466871927045211677506848960885959534023204714372149381080256557635413621495007452752635301559396473649943409345753570696473731234908261425153667376973381243611425148861167779266866093331542441724826169668305289283374696729057353853480629178358213485543424086432042127811487105142467531657902104739710872550641522072221644565853785235219869194938915111566202582155501280001672697034049367212001683129532829387978272206048679428267750212602933208526687189700185243509834321103252991095156361399054516022274154164334774097683181781899467009673767113259484479559633250250989511539798157598481688834020279734094395131720885421597293190988180624021419180972893162936243434495673094691346791868626296058289994382300414828194028411604210833124529824002051822731041709478358019866060680289786256261094192172981853896737474389247582953549239618769116242201895637166773536221644730467999026697720448162192951419935055378021960972620385097177776424808514938145591306944878056566097756211928319897230732962174417185973201333156124079078545630254262001313185638912598915180340883652805503064147452120685642570465248722780860006774194442018316664522159066789831538793092555945972844038275204661176652743111913813842020858093285357538960688229107479764466380692275733787401788743908427032906101621034725377495898474930006738267229002122042744859947414250597888222915727839562076227283826865764144540854357674581129957980635021026051614326945860580995702261183003287530781254642922738705385262642619767741212650429394967091464589204355107565363669815624266503943931595129860076338571792590354249188689279433179390822197672192585522784568014959151870434880644628923744580224024606389046774139067466474862936755973603235507630497480742273635604520413193977015664448735044423605801450301684066208624541197091543118589022346787835015014637534142424825917385502445854696672014107592260077857387627843371217457681426405657375378176248084596957800891150066534410155793175532281817306371967925701769005503754212728552934515481069436833258897565878897695840831714053610216838453145056576814003729567563788485538192110774013884283311668277582014379668998977558089866214725606763541060929604069360961947324832694113806426479806614120643435263668612935984819814617940973756403605343816700297626445978842529081129420133172181827955776198266032518001236418354019398947915588707743269816925360884973836628989875994653369517980649948681301326429893583452623988721330201804426180582436212876542107639098512411207508523729915903775826491395093387503494207453322769206788780802003737947196149261414338322570819347703626688290478744373695950849814580419011807898840067714864400068124314506997184711324726325189936593259097052769317114278107176671817673501651533575855303426424807009520282773941823140373586205576922305944778762426959747414212212296277312276372708902980810009890409470844582679460627145606898756405076666079057678550006459675011483783804509973425556924929289165901294111927526196435033136810890182945496765778447256375506890550743571110845495332465856297176144552018117688669065774722803557051372149361126642842870808721931635080197940573216964580068948709703473878531298270682115283328281664628957598606232738428675094234338300772323207129864496193740579914564587801118141110876846472750957169368871938343998044281740998125203741584675396501231671699029566673273058585350408718377464691362854464693553649174877443445241218850496317094464842079724835258672636858443385272375923033473086860889559366854067836752438879354408128815106441073690536984766776922116036239628824716057932148310549178479171560898647219272392352268794146227441997078163784129705068582450567141715484989886843112855882620043672986352096798309961390763949412457014267877232785639354240201579691295411673850065931715556064755297405466619109301659493088085405539821305268554935504994654604325865394172037667672586591032802244034878863670546425550744785820229276888684726377534485901654202524058023450516620012419215233158611233187803046526933046237357851693871247201499008985827162103813208769677398308383118695900469750076901346695653169202534048393544439526292604122863736819830576391918080556656326925007005919877008577072140150058608047829822456087616066481933587702013652379886692652555167481861463337448677015554936040429844366937516655134216083861161351725825276580382891362882301619673081784306476329834759978269972094138678331205051618002361637858739890496364324731932348840373968658617396372352267929358608094413088069749212700144824516816164131906008011520164597691749480912021772477989240165945984220784733202296267759135206700365464148052580192692706524018651802163463054753598615647079631413180899780127366178565575249124498723527911138935742465309655176812685637318157284255512031310879781950560202303479463286150674041106570159798504588819050189054556323250021961415116272072869801097544347265929549223727654965039764192407436546060704403156163774011176608836718027705210827073620174907442690271890655603263427433297130555933380470253705785327621497800312433610096235504069718311669957821420384425795256639031409420604600228412306725212207934659317155698913865876801146984421305725758204843363973778160680263844843167858901360313741582387088307201299775228775125513306537951882721695698736360722437347307233707593749420202416673773100042092982690186710448784065292507885689180005415413532582344943824294408917959636115890612616943818236226293981049326867931817891746846499267042117853401837699245304900633658418692867122789931759712232498037373614636072035064428914280324732099386981356966985556944095715356275915372311740378490765949260735100473652812389808859745711065324065751322378464869844256410310182709858878830278506822056672298730246790776053092059852138525921374996624888219221339726638994087492389060063705260628761905873323896473989223322457604239802698004423180891556181626731053844324716923946732864132349081253954284570472724512587531540454479457507917099761365121766851484427050063999041011627345910922552174714237397563375664144238324256188978797110697113822071148092176535036596266474111355758524612353128179099347083672300832097093758335585132480883446627894613720380275858225151671244795889674245968129323597044717274605469755152443422538455754395934941184614250947632842234737156523987971132978032474386974254684576714434575110924590192306469003714253206200505862964181546214539123536273246356726768371981041372131515087978281425804908560715663289470475751383366532850068187161710579108610156856342443019344724869170655052574116809275028059251457841748238139661015454005302843726781944160033617919340590980721043895725255758060037412360481328374294741265742265286896357279649557094444185782421977549590506859030159415264866755881604672074961370163076785698990825023772596425870312546513806786388737738116675655622215247948656730952695431750868302766074756088059598486426961994910878915788221528114428947250101769454531435143211431134920431572294223966816659181388890225723921737170134360352113986420204439461633755108106031611266145726156140233349645357223727293185268726884610396495758293099328446984167919477346843930846944673422023806367414297424060686743895851507809035373147033928742036956567713712321516583733032730045563561002573722521390920616433467487162744551594518990133518548890938616015151964532119115957378362274719445744925331279972823713044435060421757449499059122479614676884953109291434114998085698012483308192160809353130452462915253115241363540263621168815311563380173974182534626935549083925641208734824134138320158961249825750084773752831081589788074645560875737925534115665820216754161973884798794045316779709436052248845474670533622277295982888368952744824736349225438763170169220686281377043774136212654248770523160277146250159989907977152211703445944900206777895950378950468619194252012290815540020701486208793389699772090781207525495373615699504945528048373933099303696396857980263751532229958521055848200679549124277140437789160728633593693538155824318780088241723028912326733546546749657860371583118988618558728266445108364715559109355231517233257583042071542260538046147835861471928668975753770023131505121962042590226716061041837680303848992066772802425704514080523958567387903617792155963494568673398880318458855900424263666661634558273714493978982696102519627141826014001348576605469863612991968197789092597459497207937358083759519486769652229621972200407314016409775612836034060712592302894089185595008465216765794204585934075537599268028110582076072823586216122062829185732545433586806439351702679140270803725940905646551634480284749035739788965374416682199001339373442402672759197828399190856196094209048963275031334906002437737474784000529374426810078703536059109390403757720795222304613217344425666465113891307597636970629830096609029195421125056678072046579086448153688327388816278159170408176432618094673644482150161784120300906791396425827879873013414601673557026550503084821943384523856910675143445792560246055875697685902752700074784599418226682275792913051793947772438629004821515641260207175135755391773453095691917097566716475588446303846606656454160672902694086636677454700309200248147840223988331017155285605792574076326874162723106408226822250394140039338202607320759252856751917309533718334019340322738969912041922668572661452661799795885782474379665086121275612336976784753504598817167941694721414879291069921182211519655539974997196320646986296919438558393525033290572105772732612376029274228716065912413941426621211173685106805887075266228133895472934519707612915741704589002709177590988557288247303521900850599530214504524266824450044564704456896218315570096205237684393210518177394770346296556020201305920377351469288238392140165319626717073548010328564633390071667314658051478660413145942802993077335115610213588005865502800131433189502773518171277755625582267027918635705186202126708821644289397281935945321045456916824070152049223499524909104996177929750137730333079352480915859079696552226903416748354281948134420264043464039025592155488075473191471786161764787169400702561342223914505082276388488918457324637656128858972825728895364593576071884695127164518006791930402681520454667713166255856081929799154300864645434640596312486659784061355284185738080091005500066296653604928769430510025361244975245207473984547156358827400355945947881725241285653548654601425918691591571392855587812973735745355074637876090716136483930786988254863083335197223780104652842760628908904149408397069423311533126792968599778618560823111324947393950392823206914420451642190121432344298940453397276331127683075862625356192753685249763796685827782348865689156303547606149982802577424875909796273788616766475438713714273688628906511187171071004724650390733141712684448265868353393563493875140253958545688377497423549068172530291078605551279460459626658739504915398900838414496955491311169455021316034895852012610387373102518876536077615315948407675072888836739459609145922374918815082548236978455569885778121641728194394660587536340296466491866499949680042345721555624933226156249180806283742610889578309737150431530317994139230151002340703732736157652207783948563356453341792033675293031496602310725273992096789739883830357873667129012456394875928569523710813856832276871476204232011868362631311476924492335767757236849650585171901779885354030293387948618007594007422667971342437489445748087706545484689000478422113622371979703596137616450299500481504016550769959138515412971458247556492614706944538744342906954031518885330497116272997372267921949488004096632834888204760538066320487543620177342685232400633885820775602693413487513491241338485309040773923871287423533544731249930493934958649924966584816442296685529478820370307526733916807200646726526390783726071159966621645376465468279883928603350233346979029479864994361872310195975695350438506416095053330815726192799739227749195723653786059876302891137040081180626139039724714368426055474146398197096584626005559370026327129914145314604818868292123747406825501938268820173298878105854532432408992639066096625054262778328989822217803591100427723449845671548185502482461360912149975717897485967946008244631719729586093680601685054811665406351815590925843946471937619122307212033521062534170207470599236598026992486367778048741782521469057680711836048667004312673715823365662921134377980904285525322464221690722331556711026398664155100550886205188072708451268053040960283557631483492267924289485245951585268342869201513121905081681684961006783070711777425035972139467044575433135652342698829122326284275688562652042994641931424388398160429097598949929251520511715406451662008445803438069903936595421913046383523691114100955480135056090648102595412891942632817239881348673776848585611045104750820265828070839915836371595505926506305278606475693186316621455613990599202559796972193010447343832511092186593061723747639773694710245226487909791635102382298184929539870249303453978230216453663125766200086062990570009191004566669383898918386506376797310113428327338014968648200824626416798283200718467741855118641222433533283689839699081020342301305878229772615605746668479315834522171786868037025515046579359481271196196835804827479810921694344237154581289319935185855308593249766992183411397709704036864877313935007707167643771933174204952949092778712923175518005089378793502384887221884794569548818478572194689770640585220309695479539903994083952436801960014783333845420598827857967899311389245313591626630415645414477766608921785948948838556301347381331329897926510247431820972519030795828541383951186253272767850991968085253160344742575016517734239909528398625684801898067232266111479913110998141596714771931374054325522177963104582355131356975880993412195689192768424979869398408361025182063773786237338487786198639524110398851963487122018184908831666932111713134198645199435192917253466786076053129823831888233856704477062708976814819943242379784810484095566685760826337432439125647733074484886629465638417206125294589848550417837641502676758375435368015297925555301999056195741314783322672591809316742624659801276887648511846641094036196377634863051849099490579789091935709924141652660763665239471745854776300781429642834023651066698467781610544970690480172010477859591264323736592519957141125523307723669707054483721940039810749286401151087052250237588893705180470809924542221829622832545446288961610352923928244433245333054802842224950547785711877421424369448897597994349611020017887835254648044780583491384375803631022088370193592641798657432177685841458182223572338441494946351425248486540311904191085435391968633520391792248005079985295533158927835210897290870800303870293960300007641831769493963990512180687617024725879228756375360549324742930384970558604393476570933985828383166858257137464090803184678009571725367962417903100019958935495998130118349868418595214423908580320779516524653125711205517260123603496041745470638059338179385282774134159792578151595226867650540485111831259701135025537663418047855064090796473199314352705814084124687370613229182887256416197076259691868206326720157651450841966498811494037274798895699266453302706927719727110969695078883376580421842728730294086114330437759830636859099601593117007184373738042120078382173075407676222965076362581260244967679495013681410038378769575249576327051325173334539554224194638882212139236018190320491551175645614312832629300683471549059214572213583963381859001073502909487219300766083720834137664324120790766569105090800348179833514388900038182195620047230535181645774997020088877365644616310638545210044777941973358478369161883623297337208618052694881993292547058601645499283944894466413960960181836643879610418165391118611536536565267766562643679116457354782204511018706260166829126914617326123093154201162016154480520924269762736058687854706217397058455826090710554040119587038020654574556364547038547975286347422963190346324938328364491497379635580182502085909298309466757582638787811632009138040414884961671553164500239813173115299654362372397717963579122202354564316339054274337711937683538918428934660587801742239268274342799244632917351176404860169342936028598447863002169166721793920773049889646786344875074420160648690577796225156947798355591539562536868944354993253031884047312900457803522654390987654460399420485445511214653116778433406357983670574728030153275361227397644063714365517558464264138948391010946177639346436811389966431315042029141307234796093345257903490301438202245506265789704601927094620611321558996290062738567420379042137797516608159057130888455907210434494565305309486132943899323794696868295853338517668773716132579656699618301673352732008291524364725259488549064127336633214002724877656726543887159714390787845977633968156850844503765277467274032372991809932467466338955269093153213590913248100593075590714583376962144280482649835115800951351677167022861495409700812578063837369477313447231910115968850018074712648258583717726188523587887987642273326789300588002901593751645781013160870417814540679919709351131049410066005061341545915829399761588196318582716008894231833421611682638902727283102302251306705182409974951110926869577398132632823332171677041125328195848849455352103989942292494820626171320871522403511679346679977798286599716473719534509637395201268099711379681067857606666603483225911050002227386068967342973319793899090571588545246522493727857400313323419574605489352384104117194497370129688739543577381542356261626026914090773608147113886150460111517241886394006994246722533299180560707325020411315825770686897548703115876791067196541962351196570209030339448562644980196980969467884088943270474226266683490570200040143507923275543235629518463156461168873317639917414390165762055688906448374913528706099579651282143789468475415066421574086575260465920923168875432340048859401231501559626515728884425267154962629631385536249930281304613485592988619814312232193407987031528109153710531534150197902704194413148360473098656823867847569634182054786775681464719743698101244156045921349889898285299512591856421992657466439029586022686548624929779345685735166424604288092828734029991854732707758226913194760957809108694895914809595608333025429993969551584814751935157055676369818129143957188919190629105765381594682022987646217679510286736736218922594712319492317017572899265939236723570592690844562600111404071443754122336725945621256345965404967324821661309119673359229744660995549809177470499776927999400673459381544650329422265114717546181188798974394474010085671408731586305962558670647780958928693858871551408872783656813631775855499053268958675630183157455446906551133485795956405835736619756968922008380427442803304693046178281435313304953037222085582026392613131573107407944325918071937060143514449613194667096273469701523730248594488285540380442674916893892662856807732577900446962097180383715323850666703736600488477229799032678331862807339053790577443076435874847391983795493176037778157348173943758477275632169857794610336857227232732949218068305655098881477386484934653199469843592160841475337399965425593254128248525820134411861595102423365852674427292205374526183869514425785634951036423420206647794992502914301874380045127524965834075234173179715401505952925135856050549994621216290958872472933361218896845984352330197190714980550845013223338452582414396274267676197712645341908102253850678899752925434282628000584041281587493556965236941068880398769204969147070476062415330594879880765037228247356958599708353877797741319030712077228925482170362069204227580222604194999187616433787819031383735703270532186859157444549413605619004485179413109170971878534367712270060748781692221700023857397564838611706479398400339761546666477182535917033376186829477551928348900991005652555106403182148023728923189577999319877983478013331335351318329525782835339016646441363399941428832099772606830699345043330016777576155013191207722924117763547784536947463764338579656964457715201297646748098979213891425132754650673329892244534387169417424230620337559817103438098342216577313059351571258114357455906695034259086284678685746918359428644127708345444667765995358175852574255404914239432356243997892234216662657019842019166309226011592405543899645763564310699884435752119079865853335324993473965207944095484332435047406067662278587318008684422549199681726111325772282442911163062512382051264213317723482623811197729432399658236951706272766350099621540121269139372569495829555246353667537446139720803469561049661908423741074116347123033484969766538489742919507453176884710693964770124736348258373896735293138197664877720495729129073325345141475389987654103014086275799505436504896572543459722962682799179546549098528774069659904449652366926631380979642331576961744257755518455718512690414850089990323730083287350992864037505981987288577952721661801503404014466220396902049206066875333551196111295072956877294151898761266921820521361008533273545502525836266513803329968808482102561318594715467052001211515419617458129403754886375556443740546658549628136371794387362845707178513614827292774560650482513622711333927277270485943283370645995418675296913009736749238152837858105479731563535864604157314250200442376243595414188988067489218224587847795835085619124233063931316341518873039237457413629938097689406496771465829093940414477956082576898460892428765852955085715808612743811403525603212621631407873832104258522236407486783843154937696982253476170707321230231632535778466193119057954499580003864419538446069577290586928978386284188459124850190325742944056896006057951579865963231973238158085978509839437527688404710550945873846157001627113914038069543718564184989191247277359661490128410869533380569940424184858808616904665614450522348012870351434771650632156509321419647130524738838818046946072859349803841951616731504895104846630457220613480230575473747130409314260691704666348760830919709250313032879675990777950211253777351965758057303605873709215202547591376542407120528455299065972614728405526546017327021239533554382932681670671903537751010411916604709141015990584543546283571385818259974494670617065379279028418574303915343438705073405654287237666125521121415975251239860086717427637719034444317778845901439489401385507400930555604200132685112688449376505920351733008287959419210147019589414955434552231841150808830888169504741062959509618834660820591801101725631791764327979147369072052435159994533026956274404252466145168924877677158629597290906077963123758936359730491389063853977158321572019639997078212377248633453844286219744026337498721381292678502606743162602860717954289174211468753920950373499891209940782647085016385128594989754475256122847240403855822476143584739929645952256592683192688762339162851375371137919868707682092551998630796319188852470259689880201197767934618178474634033565516933070032339843862620227844490587922201320108442913308964816326565583359757327288223467298812324326455639256391748138940757427120267951261625909475662760948763571549612767779011071947980010759992041950869610417928529340834925401658388888495821997712223339810422516255008829552111119966279642722191160068613074916676061892244452691951344361805893912508845307967425172187909909023365398214761230441785552757649321271483107499117079301026680783333903105816536265808953998705864655437653548425787080101585826532362363730543963352575193104328210217020462753367352419447617517744905399254258254617427020297168240409877895346217446692755776336148003721208568840894110269986988967840134509391093791181318384023201741995754093007949587790044506284241355476574492009036962817072035005597050357529151828140080262968089976270551512548112615101393245745394931567922940091576268895287048150257445991927911197671157766622696904016788668370198987483412725787176053135065644042430311249979519395651957659698295180654483217519670822701481994742044238154859599068020288008248636229415092457881649238496759297122372684005830904736498125998139304543144268170859625571490420792882771379601111382292760465346904632388165943405367695025053044603960642885261757228500245791170887207559784361087495888109140262319060846585751038977783006702000543472145759217234678053433375042771594239406472687291522984157524249532115480301977269733070679587641441520056517407013411847264813238357472127719944456896990739678248993228495662851708507137775160724245186931425786927937771902134873637767935878180645412394066591106651533578408628937430090666472582194478768698253158666855079630739911133245470904369164623432461757177065700933938526174753659543379078799293612979881383255671785725638129358855687315738285000232852081536435664855900339227288670811256415967862529523063848974245126998359848827988584287133420961164400549095063625256915951994571536899873479069523746866683631213680976433062668835881169310269655710470678078994623728643273101913369280212990358869193990228817116428927403062306833595262216465341603147088518652512113740152912881804697738133359849365604013705681896045367815276701221454838119174588364395862196775554403797345841721787534190868960243506189813948846119008781283518143493557445923198036429344042770387827870993087933205198233417668219155998888290765621178195759498414087138340249270419882795334420396204495691950826435483087563558713895572744561371827583311015913021226268656756725201894739587870224305442264231703742863567548060302597627413803920369762172441341782311972112740070291404383030016817896341768103069387420455477510532641750645907587696960242257594253932934038001015070771576986647292473979954577050478643421397178511532504491515265426431966056890657586063149045507772201046287449539924334170672786802320861333096242324957983671268771064954922318725365405855204412511626398091678636970625203695292001366596850211535336271843143601610419324866311188451518157245997933202188234337483871128911581140941487505917435165548036019375097828202104084773097213639796113560534477232526708485672484483892614837378642642064701935321493266703603673549246017650698927022360956485754337068936777584433547488417530195946247407036581956841990625856836042015095502075039560583707144036027468061210663631604257394473674359664634583541476117678730447881462616215215433850691792673180058225707735359932716640740289730349252922793005521529563166603162247638117539626642125606389639878550110751622064938230070369265479551477199986077465494855949160615790646003674375754226762842230374851784423707456954124783980310020244926202947198155280548800566017549670977469708959005318149737321108553259736454316448926745267569562953847167868422314590486927488028140250628585319518847419887776529008144126177262256329096802948837431596293510014359056077913054554533925350067658028873640024694392572987770947832683546879136064642323138770241658385468641866075879175434463270539620564584671273785917677105402358283642076403612520486718921376343489687506503828803487246347798850902584944936897696284058832709516221235869507173139154216245296687311849460266773816998622264687301385516203737283328555622934077796657621078940422351546379270628097764002438565108361479048923969999410616167344478739889225015072748156026051967388010932714026104132780744595479745657068200617449807582466681847482161966665047027533402318006719375361004538238606752244444464754248553571534698810108944909696749829106407958281727827555282595710010664403712039551068946749176617213953396678733896447441556069989801590338003437129596869643739178627269476822861637428004202587741724573701561543872804297090325828696172863032216185642126673732387438304916135285535585046983385311131811529641555651893133632773996837295192576784190110925179005627554311710573296860991683528773704761670173138641941013400532358102632928927330069455406309158479825358121322017544590714615732829326006718611594593237404717244958017036195796426000549099009535766669643270680388516776019390511027300944903363391471181601698746197736958880258229941416185288287922655757432387948045134953423297583632129626848017297685217460916104758872454861743401083993446476894793860801858627955292075458302527932158088162776739666189204791802889533795663320728317357548758735010920834606686376196778709570097824333834126208613315734881707041054884174532874480837725895070573092267644333749015436303017696651961536668741654845566447522024505523105316076430669997246596413247080224633333736399931738651687541342266163670102173988975282587248377457339838781476023892207299166617466370795714554346360852796865513003590644491592538113454252420825215874982689754157852500040936961418025853386226372535799113714785834897688409254269577567432710568392479523837444761402048071969799359596314583786309878779403699437784788303995142707158693938572243821561982695198991478934116577047026583711095514951359121565199892807700854248877370072779695719840918848095649166713305057266647298979602548532419982612047995862586781581052287106546472958625884604807812885600817203555533199574982521614463132729692551739542551016747246373198917339578429425703829818387367226233688301255439171241288378051059362063127406781446693890710984566193609188161792248016132745986439315451255174825796743503029289066477158214791253747900249063820232621553211905174625981951226250093707903221429914082758478214238730055285289856125643487967351232502377025984417791340571069164946589035056776988359050163811226577428350589883347145871035917351967748285614831731710545529080128442557494585864701155279694259514560904563776165211854931632024133493751987459736193158262790547613962228831543106669635763213382149603673079940470506200938551948722865850648608618142144561399745561860403658734124503514064386788533521051880938223141739433482529426531763983568539867526280748970081060162957361133720170178542420198194624694878869694430402792316739247530633608559002791007738920902834964570913467646529928752869477809813580244553293360076481483866513249869878632166839645557318661552927756362799387126802350061492798825454481031995610169519179582773507425636814567872762207222014686892162570726695106028895157203747992299123649548050505936890922503689122506586476764343837087128677591374673367350392067732537760114370316472436013970286274828497227873832399594659269099205072131796414647469155735900434246509601513892450704025453935478787878592842219586015000515501407306076676005124810118685029309014030412043565579774509900956424184765868420994490880027797807296644401272146541519956222244935289601280333347368185825102251494555590804482305861577505323884694109464922243644577084344905281777187832148277715399912867715544006450262652841511587151024274954469396114552205970680200781532513333843567667033298881336587426983559634644571962678731405874926364048842483176392710685211625093689239143235926075905821959905601786582941563902007723429020112072585189434081897860114243007357442023464322490934982633014710896360996828502909924461398982139481843917592989996737702666373657563744265624774914640761194615889638039695074035142320024735346326023423704517908540875465592755261344658816011153085022660159371300994305449116200668943180403937664967158881384297493331259544869554664475199148833989606416126320158986885613819766965208912534660286157590409820171474754416604292238529159605248963489417844392248334368118593156906951981618735444355473251420696732670149969867239528461555745380988589341233755204997471022375212315728117015767655401324831253810092742817060636932705502508157778978020542625088465139365319079167891992162998202944524358463674041941544810161242100324010848361412653160448325062744772738412941707218659415037296274259741994130492396033124236115506809711352729759128626148291618844760378240179311799361000636681691489467480098955037114307725747946429634999615141883603830377435566031940636591167952585414238778490703605521534376472854998074167142047431196397828334881144482858682532450726257598517260060012475507123418765573198198335402180201714918525364913461607083039636529858290257434220642246854110775997436056567838220381177489307547808811648465406594513677346510784761913475512958360758507850287668903520737215373241107088005908676884546556458487177689511142459252512589066448622083251141269739283537547610138001461355403024728990340566941314564406835720329494097200111474672038182827535685430633625578848747972542547285560584087912965749048334968925810798001572632652736014273798559113026835226628223003858403555028689515406839495275587186569915574217140194067904448812759738747643726064360870728490856561384262726667138084198021427922932209373175486204633089833422581411251015015031642392035238948955640958117313212036489943587481392348624929259572314940908978788760056469933003986744026384613705366565763254321721734510080482831189628002761083106294350254557921896353051117322135014067127016083011144983718168873084649924284912074512546045957734678795812433788183766013127618660968205862295712781454734306630210903632146418843328775399117422125563554146890976556483974455955499466296778866227939836674086522202239293033671094354381427668613979407829030674831077231459082792389547234846202100214218371385918593254430203779126477302285039999969371231326866906708327454684295677878195343552957136242711297188544078405648158677853475402784956051582904050715618766939057929073625363832487201216033919915260666154349549332388793113171973139271279021059258271301821333057394078203726829032725394425837512744717570575378528029575717318894085500125737657254644328239953507727268623851081107194981278906862739781666310927228229308154765655891868016145234754658809018290201136656810275253848815771269161988873496669086885320578855928147944077563137395227525445623709363096166877474855072751254216379411072483039894474593655420274929448049968451364539109902990075801409252781761653222513728832271885750368310441560854619773153575534062697077271989559781901750386148310714907932734150609829967608190367500850665345820315142447129247475178598673526696328995540432658878627858556704302053099954596932122304994795097996128533169806589474565832497895386963668757281055084429608943876130736720218062496420068886169233254388911746588127716387142794640337755700514382198579540297158395596879008257658422423331889364146167526263999845256468137128903179485565074243737630475319568201301128268518044235614217534984553242531654904281814356960111198480511049186405380617970593166612459524983059838074908889716703344438469071588524821437813864804741474662480921672365236374830139047766876105241445824687679691252589896365871485737611966782542272906043527797206869097121111212969204787779126382849498014369840390598025822502577864249707523121012908612553965134292888377573466514747952903270194431635524452507947805348512291686709689478760013669637257436355036005471646177497546545767630818806504928289817975997340826659858174630901533666570338900500705464284709906330206703786102475932507255392911074716616483908312619732266325779522502334229983760849233515907466658556866791648976312594487700155774067332502825709012326548462982234836924671937252235619813498713129821345704138612789118148846501217842888204047861716285026517924828670305909035005708518740254090065561205457902107818863343336625138720149087748872581553665126683774926023894359055626874388420872565856361104952015357177718708266531421646432223881806597451416254195367308940873543708977092058458605213674629910068075263349598562767996818755500964544519451462329627392513395769165542523609692467337345164184476598798959906026317283700114427789001140190394726244720859401364194469723980530754487795990903345511018618492749072609796674456228489328809682796203696389562586316487187528989773677126041245731270165025582434787477691352679319710146160608490801298936968310130607565213162109054794536104777769294681231972073492081934298134851890454106508484424167641409627631862098578950266932000728123746616536058381504940448132912732460309093747515205348144420668716788783410013695251602462665147992542661065698705456747731113575825474193037744227873037039039883468110366058201287891816064470425060909577596905452846282298682277853025172196826115235087853054621535237903177744629087404548356017324204475765902200859115664153340678993941663584685389999552936551124835166858686893357402687683259776758086450996402076710608116059270751763113284123264139811064071462142380443327810388511289617082009816200201346605466359146290117531568802617014602256503259126798683341694332478066040927393765353491794653919554213588464505008358349783424533172718838518028361231167905935346847360635559857855883953928515040951083871067265082438781497167129872005777158771375410154512012036059640897059468147007174281440562467101327327627131944448116692838161401404332170725886634771001293933775171321369910736546794920761734349477907606110275070810170765841705671490581111290050280236147030256567632980830772407866032578643145732783671434428251644565193620673884801190397248116301936624677398309784043762889194656551384788518459539281263330906545043540667805255326594356803087359440314157887429759469303313903501205683578060234972041447170127205770646180999185232670235549562949257421405853697198536462527761544982219234420790836928930729414964115391214040197639365732358575021959871108841527255772895087687115051154574804534317628853081450037114079345431314861087721004336765979020412532912022711119154146299809420112750858698981615038091942461755218401392539339269308569380542000021472421192077908951902832718503795894150059186674417554944971699561046783521045404924795428270699615749824480993502577790201727666264206854811306442850048558485037288675635869627822921039686130830070841638791616697586958131895391901383597714310055141269085181374136792974261987608647569854521062415170608997505482116189895772299322448813260966704773904356676206691195926311831803981727553830726404334964542577918599484395947172835442672008335000485767302873048170640434538238334332361232058088824025575585569110494684210510436791846361678576059571729276450529087640453296250505795703141889140767548577122036784282763577876743390378511089225268041201924961834946127100673733170998490494147418325284988753470338080899523486602295238768250368029262664829587195886776132308256018377082998708074444305627620329165463414460827855208351724504203815002087682710027919802075274182152013297070125988402508407119646442100275080973992588446177887859548548348231101930631747950611731567724791015718010943386727719022180726342800542346742513726823327170575523641500397285854719537576955033923437100570778153396724159401923821189423119015040737068093204172317228357664705602732670676279984996544800409265162639078364506420571543252855621864770460641719802034428859832547870472857008781179384503944729234454586827970797572236148507338423011937124198133756838177108082572568419153396458603671066393753282660409752850098147023033962714914794939334069479191319427876484635251033287500978053060119647760387502068180962030730655710015535907571934454907827559619134994604326619679692058133674802376999661739062383598777944272960036565159073054700268596877048831335003976924083699459965843379042173994117526613480132018515702322144824651064539517290300368615826444956468412540515648040448230903191693732243492150638048655875485596038238510056912224828407953206459282118936644253917419778016922370020032881916961998394473188826581696724347851274825584100363865924422782486453904934198391207346487146509597644030892263636400066388441598929291284362211395910678383400001934026238425498457581751056612144331597837675576059023665233141178200637097217091630131825307506309833466651089485173851415416335596365522154576989025542927219761761878805664441377058091094220379116781990616604845890360985456812229651034556978660241463530932196791073440806692852065982752169693046454718869471245219318440591476705488767186169762767982876589442696069681613995907112524844223047858845457316458026390405244521049414779725650877639960769851669331144806253874893380849668641595916668304517703514397430355441028863425946683001284402562182417164557086856545712538402213478461540008053783618304667971052145417221351946324466631940260006068090767883874906718591525658826035849145784975370084807664127067352005520281543073276091485163985060740164711424706328316349888999721891443081035193439730929987361596102627206967210848871539223342985900255594037184100713681734606972414775746370926985023446391226934694824204773525568882595404089627986486342208055250168965803343784155447273850046424277238958616454177243641643908329414697538723182780979944789159417070394839398461378730346704373741436713056849500973729944388806890264623885292281091761790243467653370900981420460903501608769736383970985391626251199087568958607169974255713813718987631754751380233676888494938153972158679053831511752371393489679226704713973802125210438165370660696872127049591385813774723603006829237720545838875656225706293099304895715710902187703503537700834325099144451946816492515534537982724360078702759294906861553758753686985507090665499818507708532247497527850373316026912165274068921722656411433285685980077661786039211519558791591842646733291635933083340545528624572815211750248863250919783062858916687297283126720866752920712073864322339410427587850262201764932363215155989304230404489304573766698714494258348571461540679251577630761259817580495451381189446296948028834582323680914603766338486544608161989041836623986632835297114299727640776249968797659331764467106883788274499449046545105647792446960213135280397017154370031054337292180054733777976156884779350240346180785894544465321212230413368145809935015446105936442501753521322106673492528412295218911168944864168872612710533974238236747966765331216436317776288810408046694525025071246823918034444505649037796659593334936344266056666776193617270153839459601804205013298119101133511397659181765647444055226385021258629293795649459445545457253871507567503355757375309631177464429301826567883634236316154114938684533564901966330191224107117683991682543115398514346217694225064179289850066488730714713202275327765971856593069777433568180037012147344505568767818139494227643836275320309776457589126964244046417472461251829281018981703092295856844902306211759897151389914260250929964489614404531352650157676131124672976969413926630491335711658717245437935269893212721650897563581820681847248155418657074803213703847952395998156445430236940213693461979191468804000939227960156538746915662500283878992224861899999384307638025772277463272654810316372197093260322755751357317989311054350870423197304142426346755794347804617225792767123966876558950146829004511871749724364239470017843614112626040182718473742815525364122207968026312802571735583364392058084028399335455977566578052829795053747131081345314854924874241207423751579667671912742658032763471673976505733281203883487459596601211337307028278786122572537328218526703154223634496319315790135707750080942984522493590531086949276505317023279018995475415572163083749508899546061625960359432688197390088275152544225933106406127715518330741100080327811410836335247573056268982273541471513387355341075388219848252391486910705736524415726832913666275141546464378768925703466409620815068829492648541219688058326143699584554758935553275747631836434642037948842258104407404979108859422498311391215673861938626742296378204906099609137833644115930038835848524603465973071052743372333553916859732814554171903945788743954900109745278898948820334535968394022412615374243878789156178285256590991799418626017647922650364507276549216536202575692761883564129044198595016538478583382302898932097762303283163770998887263386681546414199793256955934976793892247585223538109946624203721835819051948454375319427288373752816989727669677080603906180274079044567404451992424002198385592346667454728116106213216181333001483918829259339305486976701833284385358963548758740280549117522626472303753222144076078066446729744018556425051571532583839790040578150398899527454979805656658116087897927596358360406465276062887902505873545601436166296603631226961845010207363748413451083546816522370052854389021007324876552746410727781054500706526062957176305598853612824898388904773428411931137461820625669302290196965991866464370186497347052699979917365184353173971496767421508695995623000844297891950802828385373894972818576621399624372178633933554119858564583556102911500904286489527268686433917808681421941035135941056641999869693970890607151049434873080552468847445775177925020922717470014826197850778505961754060364991734295640140274974879732282100692023392806671305700997258342678829404322963514472607711070264357725034852942438225833816331272812271640710038315336331862542790777825237420921406204898391039631971245827483469192986868822136635240006975382212085756494578121435604737524075295097340674259610514857342443228833516373047855093439960206682886689324419861991749834858961981670937660867716434579814940353645601545690748785010303592681480530932751601718384238607164076755821463464109386023292419057892807578408697219388405635985964610608547871389038891070125928171229504863017716965153286017303014759484273979391743305694028644100950428755128289521535225664696020177998204091816372957300901739446146224151702668458753496514520607745480730334407349165976674921813421579256168650591304526190481381505944760951811855007172087495989375362836087153553405530120618815947107976775954403510819059546587147378957614081613058892666627112879479358796770922510098769323082042957064959007020822380016274144101773478272849313106605319696685974222947181223874574701201218229070224736178652400335198935254194341724954590934414127406977300624899948403750826047654269479284874455296931217740224776244342749065348844830365164186844195666817555340644379856567369053310807248387864801566648726332236770127430579077991663864442576566950888332603627328172879301380587587209699456764942692862620359324787854744435412114839691961264341318232934088975352182782675806049859878423916835981904672023931610840053192882622282047157341891558219852007060852725409928490818691026514011970658555437276681200795673504062111224595393026471786321682842907348131831591069573721130467996163552101614314072410852065233265881993377788414226145034917817097162545341394570295259924204202860713863681620202364524400801013600068092471452537796590507200788305079733038620723130574507937080080397233149375905955342615115696331397729425052232251084961350744990115892600898982720123095439867178770383650704764853036483779464848300987914811946283850095253238410167815621386959236710498783940262771504249944027998669453430221747563925596753498712451378822229522113210224380594540776682333687143006826201589319279690570343525666366975361960662310930224387700411463133610109434875602012465646342941646178831802738095652131100097742253536473852606677580232417870940260930463130987886781579087007318863241919422771624549944278184067639475678120414478040080135168912498088811756227760482233538200581585972701038598373658434910511884100447744726248066480197527238697150772615161802325930417520120744474273249996400872667444950512183878505911781667125297697799823883263507156945762526319121808534189214701458127526566200026846981844971286234853558327169257371967145701707842897330474633150373981758198820098568088523348684513366895368451771768647833897438865422480164718034842432038162941510858330883709840651814892212314455566696904331592063962793876784253883612490536438739366761052663899746950654703509183415957242261675098773374301208544373547688214861387454132232178728890804697202921778863090172498942414284806065544778443425402833534932023846984895071439785094580364901406550961572771028968007174783137362639893438404282380647948247415667790768205674297930491417014786110276393357575099401789886722077039995848480909420284413550011191337349214434098109357277701578186450079504966967950239578478542717225781984236974687706198138353148749553357750712496423002964248417854382447912189736044219069329606464781922123579102234052619081031012811025723499389859841598782221268932060970176923860665986683961972013109112564008653863003245682746399655533130499523332966870645487078501042799978537824000491331472180910795224579719698282998058385037631148485107443203654958164846812768085740121663086660180589888577407168719680311563296833391914513883189605798026304182078771393423539421448518439336911684462721595276485946932462448410618638022177384877506692399178050898935264608667546987961156989626984431071739897390865433748382630557335112716901705489914613850360618010354551324717740562410006274924818061277130109558091548063434578681700706872278677429023979944878201001957534213692106237558175239186134860640219112287850279652452783372570142352762376109024808151666025361639727245196150876578923267381753228420116332658547687178227447818641911804406147689843964008676954773610739292583182833386777558031017385716421040456630577743460718912041603316073108286061394180491441911716823266068535129261598486934146167962453384424803890749870596754968436307414547375845020514730595652092999682278065802140247689710938686944923444599437017652208259306747931282493348175612786618687511599855471245663872877217806982874589754401659196381177728457858646684579311535919411992745039106872378952951667610087178296175808051946909985812625118271286697783671581353750816371144330927636484629064392753905809734585530838492664199051016588005599524073540347647031518244935419308057269295871505211759969484793115055568584587032990192179827434938265401367802878842127483290433984210763053233489421931272170684406814102546828365379236023942743501889428099645516855103950329936831230503280960641282209508740893556485732559559532771172212668401927434575467955984274638644328055254961234077727821691081678871991264898632261855752336149278225758958120264978424372788481300609609861754258916966494949679561052119085056370264380776791335613304918883429089908328710726872125176506133806699536004036818244157113952349256289135333845330287720738422223479913632726064447138941801405745750077115188439695970823912823152059715212302864944761627875414289732809931623837979985730210738809072515386790469881841361224716814719038090299774459921307365949898645966382250176983247104821661439217578094466738336406064235682580425271683829125799709842512808503210724525700796406103235871444211269206669754393513271048868226349823584874386604946155643767385094312656430172277871095232158789592647325874340783515060314001298746764137710205309491796979089022585259725062659920281780533906786764967623006780539620925067606396337229810333047942033410800467378672126055287163104709020871208177488271412064123988859188507619982781132989049226350722334264887879631810997563895988948195267850204445888731501702310155605841217550326274433813104457649658721592289831847374935213301015066273753021244328379537030145653889027792645011030778809832854946950297251817403484783670305648123306403399109586780060632849666417731242299200243554836983214116661819397720054588071905348681972494007396468464723942178678139910165919996592343267073403780996337597205653531344570899263635812331303578217467687639390685636170735090564787301516665668812471862875403922737818645343210777667321282955512713143131277135951075494194903737109822840603171215427387747591170667976618387178175201196731561213083360190208445845376955461072852970094871373558720907358879951747070621163227236624306799478063591792591470361687021588112070945442497926003761315807837751692322345240223583099882134769807738625799090261769577801772723688148408876180215111980363063012497625732475591833052161642218399538438045404179325275328703424266083474894753466254075681144014865837015632315845621989331973013198757498281224489843451132292469266643383934734606471810864111026395609802726157400785788336810147115415542872453652145985132753466680151167884485200523436237585178108747603871446081948989166882171957260261594870680483662837411517338706622821386922846170465350456947219911867986264915666194036577635727482996472557236443726667508323347798597364047102003456588089619036240810430610306976364005853797319657688705685692582944927329341113368878348553564924270720511672173990741746605730169611749087607590457061384477636687809994833665306259964920012766189990570856050919340695258732952860856086940580329758857413315518647102082798547787069254402136318199974930368783183114514152353062875182721760670843650500025493842671216767728034827754745025505864684305316655065780783827026363917146046215344341153514385375475097818966241115241004238892716158417557183617295987351778872501212743539186631188313768433813448152401549751564097038207051130533615232084031974811343978846408929222071509036852822024496280583975171655834689349588156944938829602760817270557449141119960104690592424013559466507487372107412561518202908733047313475608764698355920325471384114327673415509022811636619226498578628815138154818291840791086977099310112887708252690862431158433939185936531970899689134053211401559288643183483148798093219898121793120306593407474306768280008616237601882517844211005734198845862431074964671577121063076592720985586753202819961435483835174745772819500421259244551450768655591110959117932277456579227402399110732774491818953147143047086779821552216947693848374537323220254273903318721417139538038253415264255714728947615180134884673881930019678994184289245170001559510264635959911556866295272831883599291097695665943809811977668113331597843555388824117519708531109318754195560627622753912474110060241128569255398268424679946090376714600712435970861459306383604935449116929304370174623984032740336412855888302525394581475745248023424678262438784619866728516784811270960390037539195526255212242069686552862027360121175066757488021297409022710325937578737620990860167761962192856162824618516440820815894704638362201004699614280997520168855860526309338543231145930000620064264534004739688281111486056731013959255419142128123166347343105611218147199539325888948185436243599257007152769411944379654263759207564630401877931536296120814636913711046076175705706717637340687716037566757901270084993936363990961688260693582611310454388643700395434442576894834716454042964034146897877378477465930405677089708553462655602115831632071199065592729317185998436057524963886298439307061684004063432990973350415274068477159641512081745720210468797134420572998207675811580624539683671740788221085053345828583456795456992573447539819289369671616347725606299345278094423354984066547242303807625600665483533238852021261626464344871120595744580165863811181756801545517796743712522555734613304419645536844072662415499796925251799005740177063672533084714253507546090157700560854250319676445918512606888405778011554231788779947822077174525515747010947642245725306029104609063816037429093038963137217246211459542211460014466663224490796541343556645388212615178833540086630818096811244459586400533876225358469110248742212786226529356656448494134901165588649967163220636567087663319438698034028561882241827821237890548230166425322210735857435196985228844317098512972377958781944578289244269177186483736073234486860215609946097007407868348184380659511231979197494321834114131564530791090773375597279044696459317231345944475951349323920829512124402967953043724544201510965866749992000703134183757009770411168657159088905987388975068304401918585487323514374358367981673532567515712485276174709357837124977423531708157776831344423981471458848895603973592166797881081583063109071806615506701547825253466308927991387956389426271515833782580733940400233421687707592613162016572616785373805557247606990153463152264692032993414088885934242312946199484152393152393483085259146054648792215202250902265898421530710660724942025101100909104983803613000407267973954109789130262026575148803118841933481827105489623344157551553073532765089744650343357010077572870092761433533188003111186916532236139812292355586743087140251113118621969630635476438155217878146800275626443755213828711518617941135796401874491417767741925969051657749862362772361220575356855151399015413789380289436472456937744819382642174172310864167924976247830607535888806240781626046412990154626460940864718166971100999068637082812888333854290127639219620109956021826300879410521151456205217155526233142366611751172289013954992185187036695483847322156746261251384150038023486423751168507617291903748500163955495274981963206197954414088267090123203449795418227850431249099714881135584104490265068334821265491664147492107188455151701944946686805208855611688564870016312420736948253325690915357839129548401074061856764876095801944317419685981199742774722643861696638394828544059127785557687921892789078551368216154804550726702597079897785034201650089080216740148147222141275465613803215082252356320466132074833570784752577421497005302199785703816774407937112175563361453201474993429265184589906477116458047234295126963600721833753652282824046393557335317052832364290564765932515106324428125436888348735614742070633537174583109980809104423230242689111416896377363765467353915830877302954585276235400951311926721937778737467610240542442432303455164355033470704087970965128951128631437951562673827850383713680384031034491019557388413528501653157536136988818932959554049425251976354669695817585502145629927899685126599654281518964098542269985592848282382435516389933697823597909138865815814537555065048988800393368904782533452163824656421168852949842879352649193757860462532902954701905532529939568368654915507951745926274071570703241427537899420117473147830967565947726014582662695160175448298692283883484689705677849063424763069406985525384919936210022142263471157689154199662457982707136268494882775384030874257716318803663849302174809862018000387562647508981046031501627649153058351908532546842073281463213116907546215557197631947010118590833980107646031461552735764994406245574164115799053418435568632606641815539017028462625683961427239326230890839317498496551142335983168776727349811306884034564675001608804988533846336570868201461435898280663595159308316507632480892887846703981623354385034934538691235081237304905955857135851453147528106966443250444775781357766741130856242375479303936089075882406396531357982899226491668173188462903296892837540687543516065685459023075003292615312803158300255346569174158897841776585103754532538305777187760340942722314461173263070090621686495393234442695994701565336642100495492107679907828992644963531707649162779263190764995452707726052442463620128293890999177595026032385769999023361338512337990061010171355674682784332063836380913315218283102503694101354737901198589175904298322332738927238855301617587831733517643025856523928078192121238212771546873151130310216352155158246281218325407969538761623759802251404061886144903386310144081528009525438126980248833073740594179702466636340651221735098011300178186154794713808715833395756697977953205039127259689473613927205901574217170176760497247712448536463567920500838355252969117636246197023522653062096791521071285281362465303569695463706008447872633581305559823537325755471452805243788722736367926856147382468174454692610239602223897680708858993153397718298196436303490847350075930100152002649580125958054263648853499371509889648031292077515366605774387744736802480480537781361559827520021907867375231729761659400532078346519286456239598394016890862914928716223452251423780748672067002193482091193460810434758631782717431274861737378476665289609185998475777527892662829758897085900117650298031925964738319198487364542155289501832187696089193313434896434562237937811210289251844651349839005948601340296915896930726760153404603465741257540021541095005852883141232252995238547411488222767562190036536854315062824051400522639315020669351673568844941012137373976532870977385478306378025737259971396552256366519025417368817057045577619819877077556163770332563080457264243754764457206535851336633481858855922642348202810323948193799136747414963391952367418355849851621296924285781003741773624846460116277948054643634550636265908874933072165788758237421790241106613630766890472022568641480863368238332060835298966852569034508625647317960226726885319420957946569547552211051595135986608320914182049846459693905985201912186555075057946756027310126293063522390126467456820201965442678607245384665188856239044069885860469266292147753113664923644814311477517345829463302664962902606837160338697616010286954941542970338860000857840014804202997208373904787428536526967086875906734489169545057594770037046397651536818878122447783645190348981236216104112607734970050036002856142093175497240538323361190117808949877870030037566580875257883005119990497484657338160752597501284832638179498166924286343909089182777968000360178443159792632266174096071045924686068846536144071139352538219768442611888431973457034499287299777207562616830176694207381662608515926128416919678974193076103573373245941082040582681897038598154167155886600943432639550585120229959242894234097196669487812580359676035189014879194413567388768523480689642950576960396295682361152536814341860932860697574034941923453571318543754476181792370020155273557577510650123516778117382769689018233138539177252442919154694527479533457501375987390944686482199728191611593356824525070927157499451224814502966890010726841856716214463378713600780516525962251011305514981404547861697544679987627439472864153105293385409167882839738369600921820611577900362369672569647186352045461645693153438124116248576596403714800015636154609204768740493409913060822640415429314167570737207610618921945356292719668047358158770273028542284721259357964387273251170571479746187127536973505234313470231857483137079762574627451740282320917626838780643080269877532783270143782660501026069186544982994803203229557949692684720666126348676970635614230630849793988531354079640815890779765151539583251271881877748182694912417887530047616728278416300608039880166667238862956013217339254479190359810022368183522075573116358832583127146946444185164445613261128367651466813692456603183222735806996739019998156496264045506672559036350073249501801380455344864174211261189287635078462600613971897457008926692972878890845116615612828001617273547162946373421504188865407209636348382275654908172801759908406282529901066614512080481570172040827364327568266875898860867131297799035917104472923917710189506852734630360213176356954496974528594918169781177107989699449078278883223371981346905416191585500251232519266265663489211944954624000599220339281508633345869528848101353204059882311314952194489286197359182700574149499032608471875101727640719929884383639639612699373658831277256454433494287247144913398083086465856007310853101716954472093320578840440133141152404182940338567194105162880730663385663444902726997942138621656322650510846812401644006095199283068806675886440535258002393356631983352516855003452354425163331674933333313094514444432448597440916738099776439011692874707496667117030602075311155386026638731876727700328733657874883601554798107531803828922987821693220680130335856535307714317486999826632790353043629832708456924003732098230532025758555273446187226434827694264646672783686827482419011571618871632053461279391418164637101178726606791706965628338622497328219649959958604955839838166406816095766604471687597819374151551049943582190109068839373675445730657470297902859358735695536052177472754572449128058825514988071559646826897733450584428974149858123772949552473196603101591977877152448731867814898667039352379627666270563094194486935878144835694263916932136742326643035805667554956886994032687677347166103729953702206976023831510310443490228160062806828615586707078193016576304768536006812421776059916898777036367324623233550706732655351536478492371587821862342434303843319970052496623076178247818530323938695952262722528318366059822939034243773472829168003702739796305076279059532013301754048100052529892933511762308548062312534758069431350727715582554064281053529058929137672517516130661913182764780022105236259850436817605860293608883716496750681709840571367887157293349811126879722858421980275879020285623156435988080638018131034994731888227403595599862288996112494018380041129586959893261266751509069642142658847149322887546164599615221830201271183863857148659963942963280902499483532737887906465250079959795155188972440001722619355997278112251706265853989551969791936437361759119005265822423555478270452974044950875189083042614867965618601678117843440375509348184085023679965627926411870135310756362387122316659643452332487433957437475311553041000431553179083407873922786830660542593667064654718470930308005040484917400260048969868812740996415391242084619960439086528075397794745731549930178616978307571045930759272498805841793863358269146273556767689227493811702642940631534631879549651055817605143961292671723420590943987260966571222833029059955829591543701378969903033590555180097576852555252486027809133382710970787786097025097738615547343429790512271378869405880515462016729694144649808097140914161594090472049228956609387950168810622781787793610068884737599183005781292359992969498544329373965082172462001961683096462016205645072346193363988835696676451856927067815016876190320098693667616999872307111455352865733782835084594265108382709810635618616088276775301175823484839996431284466975890414616954910372023877553349398201635871245776818182294087462684900083880407020803970858911546961860771429707878895311142780934842355731877272727571942362478436086530914944496393899224030725420490634164998929702925289004611303288347744788590081968178906454971071992369131126969362392211543595006386842417751317003029592823443744413742603938434148620764528539942889321385375379911143674255903542322319232422239691076046465888835353777668377574164480264228221367796749132151616709660751071716998290456181604981191843902348262684959701851129415585590373045052386628444432364325965965530082575252529926047028700892259778755355722777098140316555945656415397148654135173730525238560425183907642690713232687761814966241832929056197375847038169996558113878126205570036272885991120848618018151729045719362738380677475465866015904917869340174537779019650522213358803903319929880512907735036565170358632250243792583686380287130292796871260992905767859159571314927062583479673198917935689618400199914748871540401616553845591088464103372157537848844794309925842257739734083669569858262452610380542061524030701038921301864218184602151530138623585492310406358986006403280992232559910459054854882870027566960544086581134473629877028381529586119559514022255476757377332772693845883397254139582794729313817331254682845670872650687448146268936038278680340493655284907855669809701008535990796156591867356798752949455258076958524467159225981084324555218283051794018588896450396610204552870747982953178800646532578083539303960256396497777260398844303248501787217244393599677754449714226722783445422701398902642089288651239804287210133417590725504069546941653406752303669346810533703074499578351926470507571595934867857911539136478410415014344663863193476238846975446318927111824783330106054825485525167775959409403921099371212841459040050313363583372017086441469705478544710878057167297123483379631034117188659242230163831045745741466453934813260431495830877481236698848598253522665558250143210544327897402566601281238922376280955610714112644935434318626274716819134908181521033851577649838106770177240442932502315439243388821291687060032553298205752582375465875185503145671174744872300282849914182651632898213256024814643651570867223669751911402616542137097187903059986184472419082065773811797118172834528517957948209628246227679589926080969260023027984312111619913036521617665016170971216096445716510105763431422099227455572789282776010422197586118760761584851388816004680758562881027928870796014837643742097095676120545428796855872371091412442058193495471559022532849512982317794995755442562907355968180905345896574386921400368429139828458061103673268996806658417342551601316393755951320232970070873627273924213348386472838947954214743358013158122691912893588329537043082902609283970710472590481602301144321718008752950037067636528306940499242096783083468742542461013547218464050479780075367488708010441104304318285678629704662003626476864346644204103287832752508630594204424810915663453755388850154169365983489606604708814572760204386963155112188399443105754678660371622426952215510475559978783677555005144457635587024627157570981200745590535184908021143731798033282098037143689731293805593730858534426330891693709576181288286755763407917582327593618986165921099544874324454471132224262740565466146030663405316911878287498607418630352827847780004695884447024871977736178990144153576672821456435038693279065565626699476484869917937670351034411873106080646823942681065878736722683598359962044177583773320835249922150011261078492513199271365297439426327744654489272795666549337648997492144818466042077631086986206685360689662165479975020498089936881634759879855258245910137667787774367226099644877604577076103595407362869085906990704235827396154284141370397482895496361079420659854651743054865615381997421554421642143113595716007444931960010385120367810271881551413181171472188262051264147816565928321368362719701407066913270418598043231807311878739248691670977932302320489254656268083216793963564613574503414305010676353050550498367365871193532702819119276418174607956583766579150648888886061848034838041000079592811748985547564531650247375502653831425245655378602549481577192775284526696428275934542272155386596344546310055468824352214688267369071218514582539124980187902069672483924033364370786793075520495163134432152279902355039361585495956374405975002846089422853699613274332341423750218722975943562261974026570530341394897933594713824589266550908832586183423964973976822944432239638096739497294595036452372013622131462388026925609668602700227113859292245592044395386312370489599155393936950326338748650286855180870049947694800288270896621794969340521798069331563757668917220581344387762680074127820259444868064972247198786972012300507376999015188348574073865305235156109683861185005902919717209046116777484666567972582526671949954991715859727134912422009213645355416044884628534035482465919927162597442916852805418132413875657081779931870903023898396551950436095808677065869084042201273952594532229859768560964929666997905494492641408003164006501564375180704177485922423776242453253693212918084451386586964196540999227796585572060499860131651824899279226794725332590590580505992832316084989245950821923462334908528942524600545364242523447723744077850511779630821593963920180881870216961912876229659562026471493611639635590393067009602943570728798064671097431267355376669583829717170669832054088842066516573879041268956408964403377255566980857394794799779200718047191716808136388254717458869976967036495350012184815713056023856896966657355818516633236739148360810661476079732007928456670147404703015519337568748643729309009880311568619843444533760697966865405626243048857554908813767311823110865689813941771720859308879895194426919261377662192707165916387949670232572971621529824178353367357701824594802097996417730996152562939046414515046718213302602123954760007763909177743559526907461975598174205438830218661240579723156945660106739303846147864583490898145528313119882275673630752952173163379636489834308276616991908610945450971027776705361514079706201292273306996584386408181037752085341137493831682155727587524978662937166637988232519714404687551115609704824265036743200464640338415997986425057597483404648806627458424624505317031658428982526479601228330418849909202728524174159469152855357973691904106844998949142549655107872965567437373046094912214712906102724107663094806733300517236105240092883287740870625144061799561986007350706917807936419212220220247438341254670656699665928413364640564839498485427975612300285231092786990348640464820708708829115279691087447071564686819247421467752428320858463090276787452896106515757882208850994794162681300668174156448953703342719633734145439531996063776312164492724488484089404420519903506859328744401086174291262504641015670060155316739634267477052548883431390047021158237946697738902140766968382005914313804775675245493319656907578041195707192315709405423695391600308812113211107095274726447337299307839386167237890177268696051964589457217507666034913675511413804380112736802693183159619689747478893609402312112992165169335214755133867937394384015060856803334297882764043298875163843093947778110187667402952652891048817509963775287360750959263212958143355471596934421668326180568470949776421577721366187161900692503688027438027426536952242414600761527198179129981179226561421523593448128692830028220353538085258562914621483359045888000535083041569831130559563833985662790959745014441408648109541245162522001856378001918955407969952308011064863521746521254402497791902825022108682272111998163702238193519142083589391722420347207690913410841186530918492120044959609254920632641442900312574424993850178819603240509929191383817059973569989718731187988293411670810101865243459826030513411226021230052619588679783678014201813020512408906039560180070750091390699649043761086136382632999858308652781180212897128018318930070997771115959147260416299942222008685337360071326401097462229204686535287761889170470125001871779890992895802131687739801935182445769712321983288938019853483057751012535797693463260092815671331032637708986642912596937050415666050085935230120049331600911684405049738004166298274962805070199391941936721512861781022124018408182720120574649086788875549703520526783037922262587331090725178862309707286509972316160402764455423648381855124324602509946867008098386611007830780394338488042824186081432958629357314970584781960715441943843392904022175075903554346674932140338316953606698640482581926555262110496205162814321667428979565625002908956405221471762914724336438285964515174231486677556305899456229910230873379688870808440688704522494471250787716509054145962408960277355645447785120798352660564138069181353712729794263043154901055889025618742498772713379195631998757429456303035454366349635776640036898922801001471263664628257956060738854590984977554329183734881040953231929355676504636095538375784883681664920222667449528906074849226190265871807804483327857953799471910127366951805488365123990508957689594958603389932704530910591171449455791556428725737937055559695658819141481851166832441563324546488320859225699676765723494086472874618177770580818928424819166729439781949097115049742550347652035787146206487863289788344092305285548273203126345746331827114636936442174611681285537082156891605508303280004254392511557361003929382677869083537136837732600651970500368122967170244261120695816374530089918992657771176902138837640767345226477295474920094555698144012961804557727645749158308895380322499070252234804046229364316568560344950320904934017625203629820912987395013566908424338732425375356917547131065431449845320792434513507788457417773300686904985428832844506923209880753476983277969633555052280533401096484103472046955620471594552187999424202968624266257323504003253233917685225725859117195430839426553098671465181096350439487284670419526042439153581435246000181128517109669124749084029317177178136394194187909714355855807798438780362898183844343158913304221307431558814648031073318694333648047734679181702554409809863401507927712357072204558019081345289235903716675972682743347891353535304246030422971009570009569931745014389643623484421112248837248527011794651081333281347894597180261025740244241865252026460214642528325147783591411725380660893783388352992819214238826329208657836517361643729036806980211278444055814533322495205866049761824571600329930352283418403741611943159054828769748471625626306799663617253905342674430147623560164627189758806793798400870046782773116129967315132824777172024310932058736992001202033522938744421608134917407036665153788514962221668510154034594749971757139601409085051434051236162230570264605663070080900162007286589249438022680406836455848394753722196085084058034877602682231541087233947383177448605321860083617628982234119892301711134843931813367220659651825568730557651442318564175643773622315519167732994319232563171963233678732011357216718144814200810384688315379285798429448883840967166000547975126854045781530993815222935669700987666665021733042624340396087910465568016654960616130546946093885855950379914873711141200497723589271340715607673241594212546642993504283165161063914299890818710914271871114451168439790173910191311862506475857911538642833732717601853086173359451178914325343526781520687966894911952198689915978833867309119385579134136212455377717452176540407501834703249227118544802575090280230009275097077926085238385282315389781239901010709276976646051953673744808472504243809167304055909427118243513483712812045573153320270771939028435553255365856864737606952419060389342514774519908466442354709004447477576972899026313158842425573119035619790170457432518278040721353190413997712132486870126599960683556991234842837731732272857374588553006011163095915614564891327523362486459336860015715534714351782803536313864352378185499466891769869477737792872205152462569542253105939262750627804272791080306031561719141297607137330879070597929649804065205549939146606337942264178896678745799374466264845232367535500420557843396024559004327800497706790248466313539239791102293480366496225871264289861198753813914482607561238069524464051361460536958473343243101177790319685872914765491831965614496358847193880755090268801640745060921837699448343053054047705969162877141210514170462926671370827572390772428690730895272273546576848435050274479553617671280071718998130725642997519779793494179504949129293453902722808620955955464171988531711640315264334580728275379185744408580762798038711221192664524121533483982604667808862846162569246743590694180874860514955897154397168509420352120220305861630503205882356531852761965801610311590176187999812429048791087211169437718308568256167671157953577382821678523525948909919902315033831640100560187432533943359461572407793349117156168677831008234469943479318002589374087051434095625248939828375226555348689780636092221102311326378699213506144718173612614874746854506198232115229251148089736512205687255379759758688173408510742707361918388557414527854716231701612480163898917483881455661241523473602681675350882282516965637013336847669904601844367098843008376469182259176134844746560889414350566643860892545950755477969289215737401753643253955783544285629808321336920791626094913258157488419027874646986747965496139136942754945452566821036697760303721107452512182218235465802106130354180856266050823560803871347795244555637159980937918994611780144360698352440670437765126916641401721591217136101314792153515839240657982038826759831168713109840703477094609381259897990762752374639124258499159532820542959211403041957779858187907635204272375264302802989781620310070853348987329502110588056250191841638823128480578515767212744023840163839525664782959071039618240981410533939939350424595777999531767004402409279600718456378867264154368947842641104326947333485081775693725039203263730368351717249744526454174502619349665292709056683869680752342585364476936250403927549760573143921162763817889040751361688558530665206418329406834818074606187889794623958101119942125574365320766418904608880534572423949424371997423074041351974406732069608245643580596451419537652730504829772801660940147171128555042632418774870533311106804238327453981847467375570826630850081719141872268361401386924766254387636799191515130338035991886050276893063897903164496084503116064834831942411190619417791788547061778592249407387491934840589853967512830085847393257633926306800318618740184412065103380931714259843521813387132488025157369381281139728239631068732864625738645397432953995663032368824525643172864660873910657805871945610666726362464606626303166468572803892530303433529806267879752708198795219055767741917278088302501813569476519850720928237780153930228037131674373701760746123149319666624466535733088901664541011209565718992609178476073199249856259900887547745457631696300977109775725386069212619655816858070310070495227049464683102959648282132924610607289055527152996501670936801628518922260243746063230786434884110728251909633911029900874320470689232888192784568907330894555931400801811965847217112260502157220382486720487066345923981473116061199780246148512985529571364212114161031152526696435543853358118452220851203818423617212566180626807393640917505081233690591421185987496517640067873675752599651619921838650379814673772316398416508818088597208990930987662402088655364434731529939517294202354254006019161486605353183269370252947004518449663452495753188677050434030496682997957639384869038217872761917065132590764295267787703582704126790454273484588182683320684534385406842889385081149219110017896975774472502439909173826785849113169264175368877020093028889628946107582017676499307127048463094180489154337021178863068603144118326952974407858254179014556853866635283122818728501169516579278889741984823526810867321673559804369395425084700344697865938071889013137937554202587587972963634054775311431980147876025496455768189319735327367184813955715359298005296706840347714857060156403184678524900997025019808128697695986906495780415338461771147070705404079329581800911401043953358840852794039881832271055777028484934845660207530149031467870546938919751497584236571418761567116844885517218366316838249931408625074021862522625084273036633545867792636802718151376471426390876014909877004361773787801371534554657453405938888698132789779985975403534952997185381638454431270215674465366110973919569756904077624926081690783834118271230985057040934859464686886746883109450638647242018010584489405081749727998382223496359786396052216480948791203834489217989552423972271818854838496386368304315622770357006829666978832265265411098037752787456595360235724549315503573188235006949593793299708812424326536579009809654461534320155452457066858865799383414728891114698332236706896905338714694292475503290442399542102048205179327952492412682329289536472792604548603397578637540983745065882145251863138319502864003661842115867835999127251967633756051550889506906519849575822436137606985977726754410062810656764140915774209523650334605142199298658186940623115243474774029211042550104234520883130527014893234013101266610269583226794268691526481157405197329540899749636439394254280594109470708047995693593710876072596185447016054835131774027153915074308648960865232680846631429460969516518267146421333268107784804806420662332522113917735868360434570825346863546585982914208977068242734529425071123803326235275586887350377120465856861421306781897081221716120132467154831563110081595459469785550905016076405406051931679804433702419061950461962175474714253449251723465805063697641540597679047683573527542888472387513829925734021542192066041976659186234001081647416999033602763623666953126325988419092993285553402813208746458637933160316078665902106915713031586035511176593446350953682787344071134250998150063006155507052796812814718878862245328325233513759210574540856192751719834401921529659105115698826618033806223125545660114847357923954727560966182873951079286324111766678498483294806685050144501598351091303561437579258085433038138329871692701524971175011547076925649734719421462378663580982128185245611366251589834562474646478393517373989552879285719913457090238543991166149999050091828792749862023329105878631957237071726111811977325980118229541946696214182684703560635734647593337404166389451511916269796869029184737355768479358897561986956947261007563931417953899491977919612986327175929766177807957210651198355397992972082620297574682525982680857466613719118908394557598695020412317671070061416915121586679284494751936811727019163394192674958850698684106396878631143768506125885523181314289250085363268342881625646307598155607894962935959683135191590925806725172196540010154167617179190390344038753893006126623539787158927503432042599094062955773235848792749181933535280240218766174588989447069047077623105359271024776741165671168736030655842420718135373348963327618041354035812220354204715723177340570992222909272239212400536306661209686485511754108137730852141151636664817616184405508727523480162433862999636092379975587094693396497442628990509140254564313932244476950564619792176425071555920340303070542479226581645818527433533067288632694471130965595773797474047886524524676441772323564823705039119051122070359590312365271950024137387975064159128941604637056103675150887737961450832992461987741008895781780155861926073040120387919866150353847200791003814860183875373630643000775443381249154843704713326533662617324488927368062626777942818543373887475085700275436506448780942740189734845382218343138149995018902147919588160677599835418230042141054345522079239966421979189545470541527099193263462894334874679775564087443789279338918861328968784941067591203868431064323459856403499421734471085658797198226428276293184569291905515863588040996037204346581774211552849423389765854496545702256415311369123342355839564476575380488270171463917958154497715622734410391270269789336929370054135065233437632716342359645895074957874474712565062051671702704433827413801744271294600437898018407677454903371900687188740847312103930253418820426167220108823644267977454449142814092636028052559754658492945636984043498219335797177991611403125629010117537945687620880646429391298880201643801809711113694124996514336656950346724173648169586549771000061281244196803114214540632246129657823737037166653708985406407643688627104706024962422829673213772727284257534272422263486274473261151052384356447098601614616672883726043055257069141325624838560101408978233982282204582637643217216872166051758409162370628609780240609093458634439132888168942953389221794877586569350155149317262978161259936468543012044828240518804204227946472945073070335590109303583716095154706611398166258929516071887612383409727335661589708675010668445121912077084427560524572136942670828504368691915751595363562390485967778575511939169292591469824154945424772240369611316398278808431622028964157480161143180248502290520195887824179532878785659425081885758112845642023198317455687297824825100075747622668860139056279035773994237651770396853049080197919235434577511304662133080964258655554839113800757684145978813478876695275272825084050398966555975624564604338225714478292940480457809710719110311819577891265854481172481356874714630856913166925591142743261076678775507462205179487967175924455104060045058026874570132823382003183548368853137229000385383874133806118466430494293485426018034320087419583582583834719962513094581580353510224534633694242377370090967506363149958073586045456597526712983875056525604140732666179271456177283284328939102392677647086624244438598922200750323196299159046136372701603725647176336685395434700648332236404884815627498250453368213114043524884100966208015081729984700316326753799886004755704705019965167087455423382233666443037491015681378926940606060828698795162784951485085087424548978621270467640706097014755147782524858877946651654941656671143384715323202029550715965846616098416477906753585861858513023732487139901133370996193468137985199387771410125651543894807612549300718333920051310806295598537429876827336673317453056817907293681777458734480726018275081098409118399404939467222984086639139887237909141004203871926123144548183373046992920543392448222001737567391324273927381719570589466712736496484239193475288844694854897958372855011322153512687131670465434409788144538181074003887749636080737343168800790844585791874034666207804033834831180031455273929753046602941470946958493766911142826077011739274782169389760395463910109990911714178353922044554366954168711798125602936265037487353464007339649068904334228564829467644845481678023394573585630918178403501620072359723751881887527616318021887483592981268598013871293081545722944762807834445110720766471598985988805805802294656477216469580250013536388071603816556992577646035005039356090982282648719304915347844366893225844124328813411490589675802764210330904637846091421139173532790408021373781128383052316302504834043960288841549716165698938217834790942869722269920797188371683102407645015009525661298321609767470580669455175787272304404656387917874034193934856787865960793777404773240137553919037994018840200213712354301147638758017759283322597581225948755908669427410245175261761971819226404457689138309657903003111825173758923474069328369487523493230359906330784713350045502328991114682360823911717365913291363549757551053051857169460272608289396376702644829252402835551137325765919123958581467014255441885390990460191784722058583808222751054499167337373181777688751917980517723724671824623846172026726051477108975846116165481962497431889522447404501004454453144379958435547804731927135523821443275492013235485246227121533775006327392157162863591555837577830114106290055149650845407261310780774162676603951908070968207422163371412678958492323634960111921044982335208137113357144514684727745823550072360902196360533062186934578689836650268285238529590440981833891982643773806999233076877388322863988679977897632651417202886504610767078154826293924004142618790682355880349189008215971028130193915546038979157305882587445832687477254795959216756671333609920968343592758941269512356679621934678985409171524580024032059802670841872535869909673296611975694831422042635149989275025816561963841310769824614848573607891193882473487211786591679118183021649912360720648781494265060588289095737318148941287259513929112331490697554463745003520877467008990695764773585721914565679957945635221026397165027758638385265333495639426298558254230629430455918513373686467791400948347200352677250106348844776618615934097207704950424200921919124122698211912323630853766194800761629246221973929262529897073624263814192214823225456456436192325604522005665527212579893927113927293180922583890222857340882196265964451331551584676958034744035954929430568571278089681564451008145771807771298069197581096454961381086612596890987360784342426941799843863837199590937118336987410746965478668786362467427210229424477984593595653198553363313499339223108327285199971682395334455808609921875411227536411921221005989557130432525300618023068798723323667867094308005047847247301716323662179207287280638162635708686714022402977772819115568748289729877806632403127409120366401418639989278970779328671439417407402734535924644041736214349473572233067190461745006773334614092899995215383197405264018116990471002183211657519094227528239370704037547175577549604615433076635087237486072729916125647773640185158745240315551562166112141378935883103222521010510873033701270827993504854275268545553771340155160726993932582191439812791074087004561471515067094273571203322473061926293401894427271291537005151742334086405170149383986314069698639667567982103055134575556837370306150070850673960770906104682609188361675062637905644749510722798793492636322709674686811172896663208103844560308296625841407481391504160556123930548939762335541823497850158762289037543446190980530197430243121252587018103996908611401211045660472375531799038611898903379421404967129467315871205615657838874212267271357775135073453030843200968840814916887294606166512657062925264702806613171140180974599727459493232953277926677924328956359270636034887528749333289321744055497138384162914415960647835940241239105319577268708658353823627944794524538553214368805078596167485475484693102515837265734803303115528690248045599328359426189618855130615959213855201232330289126187329255375028900444485660843361792141392098197823703653867967402033226385546736348063317229658323668450638977859047859375124579023057435635876643284430074191119021260476227497351985922483847890439653392559605122080773739710586908663756343076855863963760216196124196013999347866251709972423207158935902268955677909853963939662757941256904987393799457579782658723286484519536751767233993137181062789684637768363901953172001035740885270359204306262833499782512748494889460301777464865043147909215763650364577471294374774418026805896969443760541542909467198312867801734997322130687138210598990542408087613686239025214015783966827505632143955054094634322449958906640950763502398993039671741770808771622987289432568740863367962411911972775413642147434587721226717766252902104958832320175711870930126125044155034689560438645385574136548655961341650630417737681927561594953110122428649997199299207822392800895174162110815378140928828952485689030264078691634750547690706252322016078749464381384658288702934338557574428368595319399109258116422874701972481875276698164086123309738047731810838168220056548844842626704587595462208084791118339247069470335928816532301334382112503391532142374635955797403558550733109585042467285876788020662379521561111513648534400477250963753095325704803623137323207381832442879215176907414751992236610267746499077874408668941715606995200196452395894318859527330679224920399731396652890864522723077671783544846608315186098773049667080109951127801378394866871932859439647088347213757421495152199665344362873676255431567963872916226222163810767710048722205552723574561270611233427331444490966624738020864857514556636219223469703272971773497231866911804931947387954643255791232082002980047156291549808761283461446666873238280104573937673009379850766214614819696683139495350721155893126422483134753213353816845347719589702375236579537705626227827283085439737241320123654486398959186444821283896141755598540828521491366066130099526539192399659434589106295298149485540600515525392091063515381583856700303367324610109001164034636377840066572648729043926190599833260125116270882742161136083585697571217397489900652966896370752393894474260646304918893159551894689897538418057672082639800249522952499164854854120411401481784437798172006451934089709233581161594113557081733991341658452226835097219735205638528142908557416429420710633407893173984512688502416754359103754567290993069961907587591762319796359293692523359462082870934754644334665678814778331648115869177584408460942525646944528167858064898586026432725145252473549521590079176709006888634119273821159113664234381981617697044111301579726790854798578541453223168864289010229851628317903538111080492683656879259903506604881039434112548778603043957226110446879580892779348535810697257445417810523970407845976150667686275547312543360709868525506252697694222116187462736950250348728669515508357240175044368766575389299755989338218837287708234292160197993231250108065508992665495230123787707934087988040214682697591637865686490666336477438555217639891431734562825457906293377260636180417547120053547666369245632815771414454008181674290147484931102018579759791896006580864142732653770248715395435713058355244876962027872319944121451257117249807830370062707195721094102268990577329136756258105023556083682193841802998301210532028144362711355982338571486536194165243151614859247159751612223224425209736305507162583136165541094464948745772463746160652967852038467565880749769306717533465762946330085609894252847881589414970642751926415618662905841150144233815874785753927454176734308972917144231961218743315431385254191029206481558750406427244938771861961302698078852172496058982641749271683692998481755700230883045658244951290274403603879260157891731562106468764011659118836119942574435785203092646852510432270957671026344494786517071531241322628506002835721294587526120469427789817606882512748294178537166288063957981993763983694839825481315375195206606795968877492887838090583748399362593148934736442995595264147597613752739846476033996705173149746644142714135168509808114319086019888387391187193393426254413120555933052964050494850438920891754984705417900019974400058197837866685921616272890103432096878259401099860652753712548052495136652393808639727624014085584479691641101912816219065915159377644308833385699614217109931855676503349341019539669762560131785957261914456060303034567761152643833894487686872724184223676730519092363102144644019577685964361719103740991621145521157070872292409724449807208328763018430589868310140634126526097869366436716641801975070170755902120501159280654782890449560679251098797229606331068909742729947875927707199614266927876234616743598270948114454405564074123380240350156262191063937370915291849623027162041040377764010351087439350793370468522048174668528009033214253014857866223427820476072068539543120670781016766838981381459348173309979461182415778118426579985382884083974015603669342886733987087705967125377180684754921968013739461030290335777484221203831971834896852186306267080422477838277826675579690763966435745623070642657211409951961777579452847442046618174413221788302631612444474604033771979856198398742009369677934310564611779851627980174393405061898420066587792126211344196658453800585197994744914311442110952187640625590987116717095135978040173663871482995691092509955705536519108262640599597454724619480716612375225498149617247627630074458131350657115563347022311191674979061039873916368925018278756465329405072329779273611633380822074210080531289737889313422267169260972838770731706821961112289993081812361373069580308387761896746670276515165111409098569227662855984609215389615920538133707348890135908327575646248467017568903595520364261069731400805278907018812730174218651395873541491981074677104167448704714147363244301596850158113328221094836296114534883379118042764837352463638032552362003260456291516509241236837500647107618962447524935533822593336331327562492142296702057555667151075794403338828876426289365715622744751811457376762050994196160979482676130402452332090406466991956048412062161339413453871941450329331071060176633839369618585183529885522148062333985860543671336360795250779327189631146219784393971494184339779690674013365663738981627899629686243308057761409754423626068456761278908367013427684074677595048360437917493512546257983981787869202254533957326631988758597745139815476444345153214370487010147071588411030791297240827070471795084125960338107098013479209640173377446256933891884929588808800811465315656979736938510995648032333477069408778382491468933537440669076749721436388796254229121794895118994741164230183213272528076263851183403219591402790117359923535447280325372437417331420712611900887165045120841866436040406039366616035682011721174877029309582485292062906537424325445572364623018677331040360965314969406899422579047867222889167275500083886442841742465446561020678261865787846092513749707667870043325283346726261398792400426109330766977946544579173501767806898628680280012825731295792916255256444633307869628513917385509553231263307479850013268996500026540981062654048468614932599357861474223916773699151538460408787367391390437366390998021228469465727132259843277733966514533334855441594690469878093921988918544242628625710544137209428535405445775757541204672112223232741258189288585492731654982468465376566069526604111787417878529825881884061464520393326390549568566716722951766566843643611159338290311150604533870385496011820233923804614704009153983267074116059037866097997126071391681629836715888097748552681085399423700818014748398284122418391064703116271318499252497565992824219184958411101255517128588965621211065671304843630623625071223402404270722854378050699441044197813383620411736090583252605392587237036320381563532567202426475360639851132495220784089074242082142882063721434432945696899421343114272463282178715971717361655366635612896173710731756628339190107728654404926630779073672657569956713880495175503564154552323412570311320515402003101941558806261118927449807071948212996854641474281108120334363839836118362806878116879867575536968998993093599468903575192429178486619635135183341258736296758073230635002548464664644386388519350852278761226029059160065811046268965030096450498737856041785246648928503393036901945354521234946450633146004875815234924193764350023270518967201671826483928952690228728381855444210600795060818189765822615019196148044522666713563422657678569815935724339049290569094242796748804563132959820745429353355404798784431820463884974112431591138951665139752408677988602555736328873084763781737646283791019547848602821676879980679038821955414801757958860203093953320784410825941642855985773056223142470472532689108977055961067897399618265950154528221116171192144203853828909291394087324038551314654492716795584822582866653548242199282024676752293484162476816356271604680706484143165109778004044460673156568087593688026586633212648133960787546357185808042763527069609946004071762325758673010693297995465737557209480690271570940380022943203086459105034282511362652119788350966753069715122244108700806178164989600666868621282895477183164203941430289128727327061517964482840492390289847227764293278751762648269616660972889468167086988919285374548092890760438190309557729199799783883654525916372094036963236063263972625473189233987780343256499876827701372735683552075601919431636837816144745023028885724518414543157286028231847296385527638718284989634471658284496394113260493809925315512396130123029105082999998576408981736888495184134830616589969778711910122461187959986469205974379942310370982471030717152883960287153843194181698708614281448975282432917881419442757070642839423356578140410900087899407538163118730904830063224017015812313031765936146143395436518614617445016176898766719903531323543954892489442142132158231714688513955559845097910480612353628334345551293450928905739244660977463262649151879194253213932315276255102608581158021183259101296652405196078654805207570341874936615817939494747586777553759824295960219601639113444180870058144890466426870945454236902694547136952302981968600951915826856566907391445864866908819611142962223836586535122852161569581406538413258828182752692389974661348177120911554538515227749367583601974675178918940038764574267991076804344003873462894342630280838491732983005839280073382465009359272872391955244483227922963719344132087188878645207299703653773643740064070834050108502076772720226118382369379431815951544388225752914185203870123786654718218017057624182092244201110641163996966015354684067596116258099203212771762845456415659142231486494226029108780963342346959986454860834144502218588739312919202947706362698779000855242619214859103657043441037423659931936986192966025192509995336292401308855114471116487034605817771674727183286067324496696822422168200221318411813944137669759283109515639832919706814126533265425117882951995582353931512063413289964613536929295546058104506363972171577977401559930710231547830732902449436523018330281763308004784130356512875970159150223625476134642632445235069392386474035413834472818083196586569216383734817727420437376840640231310780414920078132210844375736216464193685676436785073710041537431802547780295569965296507361285444363400006934613459810533864680495113967148774465081551566408312606821872021987335172790837181221210580371879187501067405801361667962362081409130786023096958324724745576098534501353987401556334526058147117184341952508724699469587658820870682113287767596938818594186926528318652570113526508920368361457735978535034039933519025474814187388087338251988706477659743180378595857267253832651702496211302051733333575907557433683567608718553391795020755959284669070327498151281294584639631807653489156091678631495335599444239894751953898547409633978521239962871331314464668826830145462992797620970081785336042069793232182367123345398889045433805684552411472136063801579794167807436821680329164579083738408159481695427819362472081808382517971058718559991952335059261308173699954228555419177612393302100000951486969557673246656339200978454548860555070088364953811127078233668730771975304780793291643290786367221384601457993320757062574660653232292914111699053533021448146276896004560572893681853156296443981813314046309224279393148120270153871692735592602120945380217224751494763000519576754494713639449091620647184587605822655299442028541684614497687712092469824065931246299590459150348745938406753556187277560023946756575711444503729821738975087387063277366825929274643341769373716035280500687380166702071322597154391994462016981047400769631565084220912565657197159514881163489365425525566890727071842581793620917221760843213355768322559073403077943768321477372633349707111931088196346594267907344974426235468211224012875467456096595472480810756667625606566775562063300919719136201301040499414678411300436284444041510748641943411616252861218215589020909281608561181300906583054513707219788521920065980220122076402967184725237007159335573406916590112657108278995683243413627277779513761875683099795075330429456130023027512846515656938507110946400236200461432351534140531091123938039538205939990887525027067285378261625201477956784552587929201469218718913709435060401137506240940607471243536656351993123333437958164116199612137526220149674453779830966577092297540450179721207981681471218466383823938002697026255354116375575181220753771080783011343849259116731636074592102011261100441323424782161792849451869818177676426030471014714994784511422138248768142275938870851555667992731729427771818537423950574208768826091555816945165117836682154749860572241728071398339959498634944781957981790089402535978198653836383149206984621805486943476046057935135903333025429739257806730384130509399643760051126302004291924024561543415321736386951741944415010470977490829009696518205075497956150650320424522895569234755360087152610527465405807606074902018016221634969851317436118414941677006814569979794719695699035173180537785626726525401247337773782778587419947989186869671315083859448625200885330635821646075173799009482181149661870073141937404750200052259330619027927672795269321396573881679728920568595553357537009740591431416587244085860445949591600151222583164854140762382774203881539264016666603886405915603510480488612258611595710277804382789484566003772509591927532778734962165693559473407117075104146647567326309080013630429775858100989630512628940237317069669216289209525325775359156383391617835290307748163750891259254893233315269515413451514512047910027194132403564096834694396573192004830990275898420443004075558151424471881465645057872648565194667434200965800205551951638914536798163141973116724872703114424445336608457177621551905747748613804024817789287277884999540270851177202371754066437590169854491684450848009794999034869489296173766184013177889161375122294879862073660938541619007926860468651608887694352525738064420844253885811393545942602659018974084344777928038163186670365646648265087970939018104811821925612332654919249640788051633523715135841598343459640091617449830308290386641226616016234364966482348493826649263948428658326666892275923366019924315528122973758996789892590485986799936511417207240758164888301119303264423652439199482377215644212066536207165294197115743365360543343910100181880233692019966084943646881194824936254875457982560068469085677569431038531525929578519884535673170868339267555721439464102568346876680090140807494072062995435592333843695441376993115642323419267790674877300596233618685596341395554277413618063789835266711114624967404350024027808228017226237547267440852439198319515456588075457998037321300541302279688261723195584219470841680293220907099984516123834978675553725561110995246787458899353528759378604835134395380623231589498288508310521208385025662484878949267872649567197220202848031593184814914895350079283884283652590031502455476629963473090223316734924494060702807484484295786915974948242942947259301567577715918356369492427482605301544161354193612174211680089133591443998017061425283298822405639678441635958381583927285124096300671575541990848730598469588802624971044531363637518689972515486786272169994796227263712125882187800223131433671290558521713859896062328188399016488741277036027292749657197509533329780173305970220592787267972197361302297733148620035361972252297529018672910442925536376498093608945861306531543799835918221389481961235209581645306111637506807858414117661785268346128915983361805148429771362159073107027650489253144126719634110408530022665662838740142413196124456970402931608313725921019723484398623220934261356865698063116330734337173569071838459764181949526783435742821234350492766864849959781887887551901721486015288620813039923021953285483584028195995460776084036111711752617740436275406450214498193958480025428179966865917088976881267417262736304816438741173914364770354548142758835459082133746470350501492822361214888062756532826003776341769978308898120084726232167825044141718821037065152874354748962087722411465262995901074897683148138005901267820902149657670720041348902690855104105631703292482423348610693955320673389989857554151183493048315094415381415020902096978021105100921267020635943893505720740784677751563707736890655125478937520536968876987698832120238335422596288509264969728374382707315509399723754623044002115123298726435574429620412523085702382633363243088566215458681274403120600658439817372100445565553294736846840536970672403055222457265775340092114792805172088032385286046546727267189154575363708272748026869617198022026834537957174338083088851738857317845364513745982770288898371569345826430927218690855918139339393506533358705828335036667424126350046431850638621678752534896404764019146894396856097411227783127936718354505625016774479686762816293362085820261972148995676718361715315259029363164899237260451842262970386086158815501159610820193814487603645914523609130185792720893950703547775358364218388979758747373863851860617133660041719076288491633928666960629112194608827207030840228804861089491624433757474320554504525909813151425374142545533489780938595847875997664622765635850782760673690637475541356888014648374984751603100600022651675277969146154568329581008669379327093832077316725352330730825024334738309919060461920375375608780710600652080340198340037419749110357264231314075596764287778599553993820378935149569476278460943182567859322207193259927284861817862511328554433578928922554634020066007192955550510554853989612446506917324199344572820874881224645988137217338116335390978764123142549880129204812202148598937459961591225207854236556051498929325951423652157828235585269597321801370209791638191375213644924942473479788830828063267003525077966437650322717449460780212389316520887941978416056904661082031242780375127274534789804835620352294930236677973431337642494323181729654437312544729201579124539559416696039910567726117040825530904962692714481291647515578196778166402874954382345617869699701493843630230925414287772831307467963180826374348435802599137483727965693936436136042083716439665886231340417811737183731357405638280153515565576605111711050133527288508193200667804239625635652538495382253696750788484994719353319751369582325084711570418956037787444466704260989645461022547401888278329153714300210127436848756369854509806613745596562451429888601857110558464824067846915120693896923043211086398388843933932733981653679185318328036921464716607242669254109901875879751823206842015738066574067444070572375686471417277774008627216002503706591315911836270806435833550386928583431970700992970162872856067199650067247280016041944284895060485233646776505529198170990715934991891373943153370874873003375079995192179143156854539959584817911952582229904729563239678068289005514985936533100928477076377293878894265207877002331166242414698917173163687931969161350704060789673750229622507826159568376312123559320905565169381269048437668831003670254719881364581813010356528508356542115245642183249728210829875563795599851066610142794276007113052691015824330667315728034975104334693263965138593825387559612415013409742320854505341897232504128615074529355334664837888449613783120555875108898398584558273938130911310640997768980247867526378232720311118719416959403626531576401171501529789715993699101200470827998759990662932757905870367188002627794189329208387863203342845690071060520860429041822309633432606609259454124317204621365242871447178650907992108544155634081867789650589457584860178375775596609028000740612572776150776074407356086150781111595757787973884781796945080713366061567851008021008990569154116586237020556864922594856939486490804287865144210846428731017884159698476895731948426005974374508060438820594515723573252694969470408263067008130230486582000120763389769517342916873137139172122293463163578441497971389611086170622105257671285063649286087770490601989421174533221656762706764545830321120735469298701424257303097715530836888648621913482414925605270556057034318215840775520176602112001422724263683470073014427124633493212106460193015702533781074484404814191805741544963074789460716689559363776110667930406515852750140272992138372565365812808013594342080226841705406317445769189327935139963367898668453969544689829905245376346199070232521304788487534303275527049978585393078070904537222449522765511127665578633775220724846312463583257203641928329164192172279220202990590041567889995034732016550363199402661652513968084826723599290603044642079844868728067314201961395110408401332073378211104866025440968183336042253067458296913396153636585919565591598518848716268845836749869543505875080029312381932943493878471259299669433950394186315628922374513376843671033990745209541211302481983397514541393584517363680156224715989582380902154449402371834697365408040877414530966695028293355350337510162534434589720544486227063784911024130555989407139910881061308061081148031445000446806665098441030258282002641711104523018504529396873007961628775520166855682373012214594171825310119947687975064919888885603685554684367420833119578621342648202233949547398511192033471927519564120810803411916884284439464121292415116097923081508036253585713704899533089699413455917999697325993373991796051085054435300145107917790002997646663145750790974063288385795845772173627298877114428343067797193702815638977876076731225674298888954472187243559057443817789994114626703280491527591377683275119462076131759911232952523903990220860573313241728379600222977345920407374172797120949416298811390876731992994977205974530967299293538039185515480726657724434783928077849881412974364174553396299052882887105812557077542023665753481319119525660041705747027026592847753226430060102260178077264923806018392408275740802959371185083102470082795139722485770157361093108413931084686969742602344046825307799887711531745425812567097265500991392699381016757872816240120837579886243078686930607300868180403612668400129998238702387943711686510773887669447081019481057328991636752260340583801306370444155295314834249540679635147349772388377733397680201581518888355656144879073409109714334083506402661836419612641339948503729573697355616804452724978219239524170660676215650359793145414896654845341808621450423222895881355536611114978626119935844047653069459926617779185676329846851210697723040414770064887367011003516616949451305256515030311047470466471396556708576462784914305639895209678580730703216806318208169542757602302004858562728671024685479300006769810072103324205718921535586508222661183227564567342633340076436812016439891304363955655468525609546491349688801909652691887747166238530840961889186219601616591579715390024140645833186182418645845551344186298930343428968044187638399587919720300640596665575878737429270276346728261698508686026231461747597092722435307453125450669106779864441405416391369559740608203685875635789867688740389783947891693717610770987466778664242767922569806478688381407097726009553061929666853226194625142465881308919205601562088855163158239242082163770941799332597323253228519619756069849826784240937865504041724578021732660168215999367681360855500319411792169382307961965604449399787964802113740516995403491448991181137778812957364805483539503077599103352303076800258328091459202086254764899476568198302419413223654370076812771257508234390742091635902984677185626125538884356161534923401927378155310089840414688377135736171414314084754454405130708694694018335594914988351852609699646645133911617830353661960411024322648786605771624333826276315061356237614596675010860402572074073271445154821494078768534348882626297165659702804125279251621499418282559064451876845909059593923715228509440021637104556453358713696272635301292489721866867372303714494248656745175209088151840159470427713999263989944723512209516743821016159846233578039346887514445043939453650188973458095064644443235843556665586634794171398190698686340306345459908825687799277197695815854114850703552936725237141823345625414697979317653696872288084338795147998805497699104531563771573354148164367142693032449312455569529862550278312601576344852317521721018519404823492599086062174243219334684196929099757693098781573546668968947554272017711485643387343106601978320443398874301444117359406634415337522146278177150041829251884554812645017034088149918486236009127979955145184546155069525611171270607958541394129014561213476883023822786422684972108950570411432658361691751792315866201639215098675812023275843310695739113193379508297694102792763833405838465302747234646687556234298374380138880982070835117885679498092937669612271433795236900960334439992620000116136741814532316849779543000891636820014395996728524867817667747698095968420407055253289433383908209727524607774861228907445169497709621876689699587406043298683101542290524062795060306479761794712875478467150288852686654468036984712534211287270700642438129457732552375552261549677590219194474685249758108451668468976475902494007192381972971990740885087826774870648400291636729731030313715658039400398423217134502703574875682256608055492168600859304438014091344654847156877404325862226736601920741529977631889206184842322560353563491035111186554534967790433368314832089745872285293666633605554570640761950075232045615902894356676873446350571645890718418674765139787523125518827791023158074577596137594060022632938339456371726817993149716836564194372168141508260702874127216908957250311854169444779216854793828691924821780988075210304753277517155561564542485856218767532427088794727154664135303163209956030904831238838837140803326184115278851169806491978657624883760022476495082323148802925790447828550085380789973636552286277055808863693227305143870436383447077127786527747839958581633120325137967287205221774276013983752930583346182505933536061358889290385127969446984622375612846955301317382781824409163974458141698283770119316369416533231251009620021409553498692303609189656915638817463306684433669331187834358705347727466290770804525144107718022481394481832955446431128493761315576492860875863227719773098041997277648965241004143066999761914219704514205968385214232472987299112474115374707707844357936201892801018869840879224116250427682678389715756386477352213706766159838790586651583270275748501266262213132463695576378147103625494303565954145859521869737583584604345659840210502765442266148227302831820054632274251451117165202638347222978801270579228422559352077740277213615312891689868171563073807979887236785069845186019089640601735537224452057989842245716186061075298771992720869169820534179372654640763578069052609396339951222505650572568213161658688925711630501665589592094101929935507273368565113161269799239438881313976524144953373017337221960546238380295207940622768322116347073545619553503479885351058354464161149998374565954395603545058034150605504645472540663508095112548810880771302758228900269416439297406665277348043445200499024481796508182376828598551842042438041789329464114064622384799274863589483709377320153608293638247196155799986513385871980970658676407031132503085690242220582471714453028860906350720039877139278185950937954412720485285159697109445783557739199226270078208706561142272281449768908788882537327361514211556087568031281066056070097298379861861123324584245625474661493800967987528042822052920143115002141750138252018790918524712671260947898018774838399903494475228964880713725419707653530135566992644236626996957261805053282283341654458552468023051830037173205856846734276143375554404205510966606913492589257099495887279824950170924795180994470668235977078128466827236191583241137339853573436169854098485550235925419700951059575187158858083344719312333408041602524016549203589936659606426260888067083302427035052966159935517260194446158206846899659055534303732871450590533563956702980729039382525811560959412458476268844534351851299694189462164480285050927984407444231775653668877503278773717115706791274122377402534785003370385429444601462354222232604145822648223705027836533693494214575433647546113248906514922919540614273393353370054594243756070005696001785256354696446273678700116664705348522264829908388235437967799187203539879739009650355986972359225639143055019014410440645396182260168036081066020266298662532835688177328722736080519886084807842966674171572534677500865289761539669329385780300464060202921485082249180669809917728782319396536239491684117529155852523339206821517949837542101349244598811929212894403283251592529135383521041192611635494451867044970385917805088743509428470433607562696895852408498166840187590754301230148542138773211034810019576662861865431894760411847775968959400588558169939797995937518973234128562765122876884565007268620839065683866972011470928916852894138743474801530059678165320585086789080895264090104322591311141597740904399896354536641213843670719019310139961762420913830890009845345478237153415295583521082892434923936779939287183278391381463744517272667036989311978359816591927561370852806068121961182177670272969834022917545827979551511375983242445449004136867298957437443213105614752791747293528836303093520773188999707344438220507931906260299613928197886435248393196655696574498668530240068751020863214446539134841093496254293280010389907813040776559410534546530490026426856717327239441270209495013536556542319175046736169476312701434630746941111359737057276981325328298311837604779904586379952791796069129151389023549243584438764804537705175300217745478718031779959707263468296580824655820653390739359191720585899689043563814002929201802186242694528216653707756688193459491669387617695875057775970362570919928266496998487539900845569445678853917396420032197150847036062010176742444419433713199462950161596324875235731904841506050186849716658776356821671418297559805622101000447873795751357320108395903428474018553475907699682700200376132088330697833112432073207797368416435438722454971181995444065326195505133313721752885802494486241902285781092939524064505483384912925906130456002155577308739696650379871811525983831630611470076641531904350763595920752207174500364851237213399954810311847184219214523575471290965947613012718960945908972653915881724082874345835796164227957767004197484804603732925390894799264519679500934954890172537707604900782969242975329456139239345946103646395702434868188641423024164899983350902281636134846236543447213627205909986463496177192778832099697595580451579696125921345336512863755317354441175832277489679368419581394112825177447565877020175973255354199071027202443162043433925096398566087757472024976748143967666656666503487625939868962452085732920087233324080539246458689370280067821914155099754171397634930624885945144525925135683098276878285927675065006361708842078806354665885041448103196441057610581223360600141432422503391275341228399725202226470085750635711263865433461422637934694064940085198434625871495356697967927108318527955366225823349620509174967212417163110932421702907552436263306903333791761499003970798925703328432600746523383218364726403779893810522846728961172208225084814759766177772325872889698634857647810214961327966521435396360538444424234988012111269218627743008950800338953961306346313219736608243704016641762097074847897633875253439391407459759489759533186832361237078256166017767071732773765785322957533629923632387366588092241232293324434199277442594749412609948232122159453814780928390220761397781039227426817343048965488854401686791140740181289004521321865958844908046013447102917947328540605601303159493281031891743760803108638655417142473141217827018742239902261459890558279275328033349019488213462890110235759548287103089088206502916829422373939736549092558352736748037263276363474133794446183199621435861408065124300126078705058854276341728219018539857490042374988410346033973310864385337454550461951941617673442585785380570891742188933422797717075370625946110205470827840913135360382036150952798557242517604089282448231709607708589957285350937332967372827603274575229867201912507500975866682499905702348617151388109348486234412755231298602392328403340551864910397903928546057453882617465895575748774157191293287903154369589688486433226554938399345915051044660131027234639031672117880109228920653119617322389176030412426526136417420520033359336633639605238200173227455842450229069441801298992928252418285919781845273896657532935336460726180719633244865279260808289264665554850414613355955932070410225658373043271119075029557280419129454319040371554575995018279659438668244241882542772539210654581127199057901221097904292332956635017216290270906859060175091733231074185818599493901673630518825576788406068687153534836308805904059680176627600406783219355716674648931037772659029058220680211081492993262763062587603794901724669055668583256126307186273298130417245295947595448825665467986868440337367778693530007901872997519545569812403354268400151061565120365119507541012418220211099725016904186374370272004791633650838285553530396881758709071786843817084177254734479118661258825018062401372348927024497157968164923780594065682479508341908953315365051768364862953599557953995056753085137506657906503405741735633513825958738200781802138445668565522134489783555538464587416155297945441127960980962723066962493684657262144717695870545997023406150134588761954780637392412587502475839807396822976370806286697772432690280901452370066396495177243734844490496396979167555826488712709671721191811430252654491099966885802487029544717784193049436192754641154558839311650703509503550815567099295713579965793695849749789444717508947703341003295593774299609152683120109439419468769633259136348735628771213848773497220564687600751117271897680902844697588492102526996227282759011020801596310068055360452590973775048661218123238598671048549094620817516617956396742074512359886127125812732475145166613597597518754075757728206191742330123049953083803744119124006381843914549303562474924227849434956648574702412490865543937967473613826049203492578465054276986509035195721128879679832783595904226244136748553106993904152364364612526091238533029464820517938711056376261195173409832568505298558367137294043137408275693983716040581335613821325107977261207356490030463391734312959811149599834606527677067482481417855293510507975541429288888579182540669229036413505959575508220337796125141878721187017797397272041393811337038549646185151274601679426142593569976731147976861907299660165992579465269026594150359415240026313115220557823759692885296094701461839029598771746870159577401771878946693542991893380277870410037073926189265334237035369451878459946591393756811590977257446844659051603040953517520855074794625597944998347192058170978941856534644543956289905050880845082429055248609494979013371706486287151316088185200050374210689127332619688427040842680776341819441703054891354889433095206875110168036356389831573344247978613421303186876993923130013095076074172091354940604465183996235364523940796767717548585339637877607683927703371989147873183654102250857152316540031350735909540547420730168224423566004857098160434662377797616077964174632018148672882063512042032485523497409780763651419195812531040682307859632169064765080256009995979024267482743759032143467771185574136642228371657726069361111503052505145429108544846949521332392927427104178862433785316372793599503848831310567035907246816611333033054458740120395340095242803851228949785793634702491235965415143552474429494574220236760884081820028891165933002074243906407690938098754032144840959436884982722998388394976526199708940379853900007154016852824991656055847400975914419644425557365222304203297607889943545667143082118705275573467005301125107250242803802124102452140224881016053520495369657510334419698036357752956700994144848511629346378877477500113193986126425326367321774285680475091259375764558362643447647622275468530374866233548101602682526506806229807296254493369053389044350542598269243024016915941934480519850258035803282188099408505910238041194989457916940484042530212526969040964891571023091050977407867808990431957168445934649755060531867920687906951180547497352149452462435985917789771568830268278033898432420148276805419052050885551921484885773377611779187740026067326640311974536669569003314496704922164749707330068049251841755007836898564594053121047338524159702879900189677793418768397084366125672847941758938722138986301675397231022702866677423917849070053169059171155712472721875585249693181095684873061223641572076231623032366563899994728486137433615975211046905350049616539127016386401554083266183523293680006975059457035232846434285140240547024336338988319146407558437872805460193453942642453869800474726401052539470035660317426075060484556227202593591212689427148090966596274014930060455339988832496661885307925380118687044062341367291920621494097836828776640770342698531203361550650477763314917346885391867208952100839682727775952433094171202950178302200478270880397656776953875955159649675427181799308717828156983180999792296865516901632113831552330419231489913403551702940682762938637713828759672072182327819132912111098030596493808851653340595426417402027624121131144282999869351359339536729156292192243044019509707643453452469316860515538997723523135287437163472268308268991781530419647535137414726480740019271803055832814769384482798500291743825185307168168936580318635562776625651720243714612259110514807257178152361534683858721679468973854459179493018123292095568763550098035708974100769478795056049609348206000668934338594998895746686682605982627027892572873731003685261285835636184097729705002249470352946522304678951823326361331661072691665110333790535482129972150358972947339401750898909248637940022795383025215991780508792230160845528712302225390249725463096938700937325644665345171034258408901912355415664800156090356907574563211338246646687150301422560174603656487379461790579964716106143662940426511208113411160263487984157248689616430807034387961738776646043188302752013484130392250428000297361534285417395693813539141050058884835930979400807805134202782375622873639431481181982572818004221034935687955209860341582370599653238697690312268166350772155710058680975457952430859648311877655715290318309523063268054039628047886486717094971147997127210461406226882228245737894421817172620766862917679255000634910026556444115156525034850203050712072417085716500859787318786742776017591155009217459067888447524276585834721560009524489034430445257975430784598860266649796656890287532983421475153626820981494304454818149582638845948199741425561870627454860813716040666150929585911820451677100044094108330880731429324940528868028918206206434237333212787154838604493001975407319919256554010027387465840142211083765373291231185972194718343517718179723073631089302441133878622369992589938629808746119781852348321993689762666270989398139056039008338196660005238310841269385435028262892734601950825443355555451852959772847374785846640218237521572652955283811750497511983197643332398546184354319263062450020718404466081315561400461601855169527954792836238862411529762593056955866631253294278262290023800581583808771189029394779217132448062366642487593086737392950047934767939139737563911650530620720480431975768104838184323935296587213384400374718882952032705161062405735280538182785921678309009165867453332161309592363968274240640280122614039651727321650926562918652667542934777376995553645629866512254309135724955229730088771013262198030952169700951187863837684822381942661062843576380517730423331493427448479931533556910261366780069528525806006799115514533290222436803058099511839774400600499084241507900198088985734054462218419982571351302495097493167817447802733976334951582425845894304876661490374224011269324920780655037948931597243088125900571041231948986882401674169546441762474859622391830423725019699992940249255930179188536194969557941787372924885292373251195074224654314830246755044718231646926158393841077085108905579434776982811356402674065857410640645933482553179489800495785327587452375332752775490857967619044563613748330428945513378152111701422572163864448552692278747322379831044770755897584544534883146620371324258328818946212986605015801282265630151051975219261665344054786084912022123935188010103166954850884809822942847342809359539999416033484744642046711292264380921474754850464287109578970419420285223391692924207591825513483001987308608722097472288222896613197427883733449916808500676581078497750773823623417309856044984330165679564287720520485811823261887032483704285936043391932528886190207280896540216556913562078732675400654615777309414572208793257919138968637161411068038828372723378950284106357743947602728441113659266999215048043901283981640396613584641065814580949980645311461333757322510274956561060214540584705832093571057656128422687973902838981290759216029198059898463634993299979391536684438933675345143468247605574233271866145118023078379433832943935813010580357234891652066268211855046140296405052799718751697102045182034415323645485701778569716454121788114678462343991805213123878159302212613872194507325137544231821223651925070196465127990726485341980609905244291062327942174956410732676638572130030063888790098978027755645411227606434831547367129665422226221516958966850806582147486455548669613559456683764439693469332491119865241667470436901449317759627101860245200501108001130383969443933436188824943131806767549637537115938940680056760424023804573704761715524153032560332782974716571721917390846490263173353814115270141556276881443258672681334526213054966882690687600366357405646904197766121543325524706759921694617580930018020739524581127150440652582441682644768133204001451379897945407191774565484046384789533112964691802798731056138833199710230852053744271602409329202364490000546227336791338602027938693229351840556112949291140330765620924569144044679797073796565660343652755950300517969982231640585966944977035688015534178264316308380711267401207832984350903825417788621301918845203310116715170278151532365975375463992673978868442608423123799374118989026264345146463446046296385209765613615232929744696383633811013092067701186449485635826025723762327502490195701375320050546126814438975635286033305138755950956929052699149434003625459052775047225147289511949879435829731753311707851149230644590236006139230031440796482682216885044934007631261033437518847019803446531582130296263762345510656962397622832895162335214015112565984964799123786613564841179177625388038279193095646542803323241353248817808370997541542256335253366649312645253179132390952487929837726925969222377291079317766031654225547888578602468444734664238540655108415978560132390309655684584934710669680106227504343619537589159128243284700224728402957133062597408796911108010445388007310605461615210991891199060270202574699419911539385479516343948686978058903116268774416259157331672328498271228397050248514355764165868521508446962643662025703101715229112046120675735114878306999310254102325464179086784184451842538732224511893680025897281444978613594586201371863228460452392059186208157734484161776232906506056737134671895320297576554851901408268966762832983084830801671778510628181257154002006255554306816383644878404245596435950684297831174193632338517070718673911423122481693407008256280839139130808953518537029249395930168084209284057963417376950674822598477035996126483689925050138037114295012939671512736756764963840255822035104883982587385567555594434441449321958553050423435558483423257172438077670795729620415431799006310946473603464781187781041919882394305849841331928261761321272866286807854565529276287702822916629309275467617284628407364280315409860780808579166321157461626716578297889382354305563082911509920871038483093690229113005584667418106663013826593710521182902708109361939604143483980770484383794222607442117681993850315044868373093101449599408271661798310728712428082912130825698065673081525793173881522326101491777436152176022740014561661411471105736505507486463692090379332321318870616420599751039153730771647023786236594298638250467236775846745373275211345275254101157143503215639371967817589351176143630836112003770467645862130680505251441953157752766166337980632107665595577907216248531799675863105394824909863288914657341485159903540465521044641337185097970211648672371098982491105830171706196564103529062763997851047034871472841488502427649541319220813172006683130945208252140978855423652444834407219960305812484679632934904265391483499767733771510162502415771569989158744232876443668721872928624430921188168820587750065946943105605211953988051833910202182035571831040337816110367521796786876584656007292661227690997831822332577423519306918896143118456048230815533979114424848923628059251795584406170999924094971241317537205398599378977905534092544906038799232596507643139099584873320860204715952180278693405981388730508393514437157095418832491254243577165587137420437849648147709844061322737913277302546214094856357590777093305455589149703188370445439514653163447050400464164758090267747850613553892619415089789377125899929588631432726099649261783189994738828656370292862751397875145482507713999025083643340406685755471734471349009869644040500875466122817840699186581748911175818970568536859822316394663018664898521732735316005039992944432406489113595354541792492401237467382020241354170636421331482631366061943384871826540968627810216568799273259871200654886255775523319573853707190011671726476319067492428063852913678571074663122090533868373699775420774694870349633020497900728191842611608906382230681137778895386822236657143646347438854847420354463148755018136951504444832846829207495157952918707946463394546385033047432675005672206768849665533404126317494326583604883923024713129652703396327023325824125291327234894781952984486103736807323979911869475162972675339661400621048824379661499344335218402001064618364611409653293268971129006517514806270844793903594427666957215392703004476171512978565791965738909059075602190639821206820937337336615044060566645805829368254004505879623450247053341144033697342500678435608527469616160222850516444288976106720173862401374089517547729111363243114575512874557974467898540838935414924454825688464379113608960773252854562067945579663870156443009444183166495274074019106864818295022161727689370236984951785444702562025468038811996302982477082583736802659786523260506958310548739877181460869119209989810179859462140928144530539090001620412233536916948897121154810082918367037068283559386281288826306379905651047775844260919049122843499803541836474602278440092702031217196628064415344764365772833023333212664928295658460982757522881959371377469636874007108318015806991144667481701111064692286905747776497341992045311220168529291576614318340893116199953630844856198129839697560082138616881226008681943612738548659092987187664331812599271169189849110542789798558069918395335812579528994580399025728541741581630863124949267642271242803921936961676281459203068770546795106043173360692188231224948314853105089976127035209064910241898584399678489631410042377585844679263935035326743053708235696043476494843105261729747068771440072834554544614330635570763831537677951785107458239938906030722649183694453900546562192042783814663764285018139776112574691155265213874646666486300811460068051423595264537582612402920673993669602744003244095836208990400376888011211000872518089762193035610487857466434378302381907377027556272833246579640505791987817350589046215891726814093110051604174508841753301631507628662997416162589224659387396101808165552243877405838492868088163243571520121723382902904603126090206999281517389614218478204445983839685052799596679614129468856784117089659928049715800925997218382120583820490940547738182876874441432892950049185474849869256277535445749615060082507333509908471410923242256461439532206057163448000064386342578538338013290615759628448971109566149398544887357106020553518705273062053972169764676605396165867692311881626496846435354976823211273072865820017993765499523291994166256549030612222099289149139948572351251465105078169069627287119566512956179496094112833589182405264929499477324849068614482605145989760481745100239751015224453247643044754600722665414449693533934832570798731048795056860751650973738220247475131565770502646972123060128883449027711016497623077718306050899548089090892503541824527294408997190594197213496345168849599056630405030951300583142690245823784314337782404831269772210960104705237462784036835489060531042167836289479992268778501239083169293943377906588189026049631304218288538311608662691714887879491259592903397363183515149822788811325975053504014090503505191931393182441390276146872477168257625772077180993538881036503012764886698334612956496353515234148933791088331272864343961341912390766202972791297649552797906057440282211474544877915323606577070627824368131388092737571618426023600996597683902306051722110219560448643162727970887061277947064469859993350043463909349491344569436476713936626414429850126404029952353492243694344629261499986940639780363794306164439580480294261518499253958482416178180220745262666909269304626553178633761181800026445814743342910881274879099845817872084794107477286720039649967569756554771522777357443020408274720140970737572300442887395867747206657057797582245404254096412406200721261980412814223501814394446521144320944267239735381882355589265682542462959896401528424554812604292301906822952250744541081312803057269750957065919665534287031179039976828130431854492771687271882397951154393460775351267018811029619296031684671374380433126257394218651829923892881480399810149715553687466722088492339873800386920573739611244942099778269258115751112397672306619873774791203110537494821034669792680510411753334601773402191112483906353077901298866996537191740231584871017925053199240357370033373820307447257810842151565975898205015270905402956624873349200572315914187062696916110899204094978375170868443485106959374365729505827989953892455949219287835865247498528259438050566597732139177415084964315205028634971716373877361592979733460097532542114539851545421767145984750485546416904205741008488430635512968846990630306178479470064057007462357192586361820001909804719387631699529979460574426430191481259167461434388008230527257939830273009648614796563285207361760866387740923172864107127404011745667567271027401747987253400826043120554385158371926920830738400996560623047530730653658559483575194069618757037389658045502087933865560740670147449510099657049763745046883612421582994531331916411759007654321223959279835670602288638303842953329677735690537206870891233268230376337865294301955792132253640245544507478037567736024965099798535301266529543065083191864896494762618575293874773597957837073306241638723193398054595017748694980606813884282777066076719980212934336468078250246742995784405365188058944765044563927373914061175836323156312001681252185627265818023582164019840241345748210643057149807329318449495077669205142194273721819071772044053036545110325485111140633291862414359201320486040045314906088729938452180137351316385962441485624975362851712735644056109583033781116154448080595129407151843910406469863729037203242318894378558358784169848808115946599467984947611735365347934164185343850363298267529190604853680440573390189198594953099640416153681271221877768137248609225379383925887189587061609836191185718563073063481233806174140949358727556006248103891563047042288889145976112019291832125713413732603124211182143526138804305417114687732058524803025696074187197145363760873104803501508409174342726127917262691300003880121537353373405916821374031751391451178662608663002576777299048348591260098605538405277078087170839984826947236957685525513476373538317446540581384907538704526866155386713745279902778742102067069523347095526436119709817885882808344328007524014933594450594483898309523047272608714969775210329365011526097104941357497712545256917041155891856241162193022725917815303534684007859290025477595181092391542345987891928968182729530624819537678023866427868271355943173310315085576295973636107292584210641307661757727960372989646318037420701208267523278916789310256151929897642859812891958417120493990127611806633810888301788746326480606216909218945602970514401646924346088769434778579733875453573159570939989181576669896784013324474686432421277821980958837316185154484872568234379136998535862941489861202071937486326737384775891200688471485822478837894428937326386458601927440907099156574946242426927787688468682656073321494401579731798393942455387013258931486823405339177102150138506562215998021930512082613358532045683859409342072286990327460962058895823817112128759188885928493227065097436745239520669708323624566348273888120380119391406065711945100313187879334909562936018345292995328238950424571816143839327215219052897265629789546367800427271373108486113619592229354637484056411781262509351036480849754715848191142069941741454261210765625653467673994635077024406708971306741214409771486678423761193071718233006408841030333613271282522239891042006370487733373607904328196026281061360707588587541171337058016002048052559158660373284632441811593337970450353000741403138067579826940758037216713950121416524141456451230554981883809011115761146254295820350916982183903437793751552098159146504252563986051489724363786262913037370794963636160674781216351901969676052374981224533551941111848101275461737270315211737426069454128480180363382493131431708959025203449149620462318649248551764649242893147943868643881900232073438155557237027298430397985869308734918570430775448863247467698237104633530987040108711253458368815558161048258743896157537827226460421514393420088709207089827769994014651033883646608483145112509054241664084397873104373899728735187084049301106491756530097564818365681925309505868431009756359748416971872131897288108200235824125699195271997531017456299960254882500841469172471940322206153525834383624607748019053245753258611729090917393773170373414382266488374726805515555016172972242599725981176379411219889021382922423196192770054501784622000607455777958937412989898166537984232624222356470328512833347463969869058425560107901226884834383801023291819119548903028116891045308512531935477706177731641111174216039707187513330409489414465003864327478001919749284096180306715174005367585691879454094664062716314099335812888138462509814198712405283385186557086099641260388468041542429451166387941515821112226891697024571277946030996473616794256126541781161613064812723733744869509853200031181732409390622482308624558001600553699515767094027805908106001806728253488763366758948320025917237504236571958981561188764150767247307262660840069481047056568972924418447845535792123353445932709348069048648557522277987883124167477595446457258268374526327858224865132872394113616462396625448330013523493754960935115143940565585261366936101816224652620870332020651641353566280687558875723577156282646767616584258834860331782375526056977286583701466901968971169213450495052166224025701837694367798858655015746526050908793641222028097233012155021720919604903862884384755404953619943045406781978998152429821421415619334949219432957106560686017301561779930039103520691022993460264931586578523620135046122230925611154169337805770327210562018584658301547737085889453958162027175903322630733219532784110640575793503372066724524630346421256028246823999206498896663573564247078763851974277607868508437844661449914495899958538712623818393759199017212725538391914790596472182162304899313983112200906016597831113410395935791197858866958919697240073268535277930002845378283843437489345138139951960167838272332043423813866538983735324991805767641218893133215411317715963799963150534588218483251274390850709391102671270871604949237251608723246512519307693722523700347079968690009635352788956279085266445670034621416597574054019950282424642507689251213080407250162023990177737140202261567520009070661686197662808051320448649346194609075102368604171042163192838991174212394223039203239236442416408386626680518141698524838905373001711362932686666655759177577319483538684286536427358830769849183556758796874012169884733941414712045318410134903131290017113749935458561543000317978763756341134112992386768458951963347080166064265099051495382573602568814511905860032357687775654691897744562637262954533880860731970559812162110699054303582388190407528057789897832717523551823527692650489671005255627624137933862692123598225419885822829471030705945960324666532238482560184533972174109049391222420245871846350610702845399233690579835015883242060590178973024070743978928056748049675161754170787144930687039401550819589213381649429442452326291806400670061173487120329357520875980584640912130808883493129694913029452729646304496800465030116451680298629178543053724905400769003770194045192981597888028808694156572024131081030987039702070179651262226626835091930885688250863957790873568531632497013041993699518808981545686256290460704321100871288506951736577486198478938207552856914740761067140527500947367795460175931036634853759951039398243200202742398102575339893167458621619482023560277826304275015308148758924081408605377511835483548997478639988541029531630460360722707112869644331113399383444750601009477285030262304489004932886050206924484703643313978006767311111421229947158030328519356141302404628319008625462555800907106860295953275178883819679844302513866910767747359924496101490754467275887319311212882492263115647336757312192103283844339968818749037000343098809958059555503044562305824647746928188232660708634533809106037554090153521751046184148246272464203234353598514849485479626546581879661298259861226463708907371087800338575021488453798380548016519636004603539330152174288579177044000919150819781820139322085947322238775978107765214912023021340009047388998630119868546338601990086782318091194083015638190975456700766471716337796069090538442660080852468572229751253879643589280920378548130486374106773760539655034043902156473782309211116726401666644537010361935969406798327241129818484555387893461679210521883766102576253131410018238436251143704143679794002288761221262864311749660594628946033120173591043632240360706920308004010108631996811295411613839644842337370812426556334607995525191488017437586258039293979748763355906978679671078639994228151993502346627703581805119274162154730756676917820237720276200362530040722933339778724219443578938471796395328621839170443583811557159549729602037927511796933263721882166780143953017678752372865255663997235244362215188071662348532675406487020967744163016014235709361101694289513962653482732729907431512691582517158829971090760606169265151244962669762622837659795100202210720326882855482194535899677783287961740678220447792370121724589404482489941952325043097725386176709389060818205510003440890185358665252814548426697196446890462198529136431429202234883331544673828603099788107159093769795170225344253681952141054952478974088019387099917317893581494361827790783472828629603001614173557676603249480760098800153874305333305522967914881449181256727306059161701562442406314209677205971766983953353148735040087830229496171403526068815386850399528512266499739621909111826374485991969526691876679114247153179855208544992351516176248422583291308321662574010649333550845221337588751557809980227069875583907570951459863670514384211173791119430609573381993798075452870341087777741827212070278359848423887279238998950726831023531779895495851316557094495004927811251793635262416337695266279678280642396881697177018008039745875473988596920299769920658184776459107408002607276990004870407065278417793235959300454813155501088176761925829051463403388417856052814610157624731193836418185820874500565272242701154316058416892241707120092825366121088373191117482708798070641767141766787944548850874935172394486065270997259565572749022188817531749614274995053971958934785846860888597735280281856252883979964113583318999521425291567691878688154527776860383193921899549175784617358741898686093832533941252266220664301132982284015146131157347968095554478487370488327866239559988253665386535918758939177082374809638464901315087181875574793872899306589608650608321062517789443861025488079053168091237586090045411839094603704586799465136328390994325518179575258173930840747755799185982179414319102641178739599953508664366784592265731854539729833509162686845629048108690670054387334150921942319398588126957420863608757283830059311846018044068223717444675581773412912415113377472836890661083615034205280836276388611508415971449154020316041687188470999674270474296817452726934800894473490271835356490405861762362183452630464330759215156839149789824898130210981404239080259973324579819997708650611051055311745837112390823867106437050147898830801148381792706922759182257502277795146242372598918021301946509164478223640117040356902825895729051442649132860894630256462890101518228617779763587279903274427273136555572887481150156609476746921632161803917376494059936941573777979897451610159964001425025904690935361050271079349422255045425155378195315049665122687072890680789703318467721398547451124280919472946918148696354615304740639535045881197341310721582162199498265233105861596673655586166464249513519842850106783000914949163121658135530002609008172051674179514381911502329575602602813619308768147008983409128017689187035751422593747286215902522982349104492893829154690867856845524485156141641953675115531572990972091685510999949254388318854138234090284820393395434917091595313752465830092566755919959612806025463090253381738027552988521607877745453575667481780733761779728502008501050647343327190538327896571831142730524598057365029286574305395743616538096514901200551424144605875102211543935142182930831373773706185850806940826929699158385564728948762672437063637469310309095718356327929739628700679440888769282582275503140841283878117836852504278356384428352951978208425839748497122323077290193273671952948371891459546351564303903300220223574310620495728496274265385906548237535233885708755803430714238144876973021088587472883199654486305057759902760724259707961801936184439664151227326037536865735210190742866727595558068264540764241295161560818250937205361791497983749386195432070836493918834646227850447914123346341703347250035597061494557162215870846265483717911079994159243174960983009369214385555476625765128215217211494245802312633459310004636204906158034029156538686053077568303520747259659197820371735245590573959712967973600432134504755467923923846838491221949138153973789546768143929187866663450557514683490312581662876071248449964909756026053246346528176508475764300965248609861699721306730794403852480765649223115560252512626093744651693292256272966070747090150475444399059005436861856561695064190139102744634655633831543965087486688686352068650522682185627043800227133623803027572129823762920234536478716707337683969236597431241083120095173102770297547619180899791695994114795037147226841465297488455748002187800288426396010664528729532450878270029071893386494106469278769505094427041259661340192356897826128029564541734303867025525692766844985883623119008201479056942536156060845214090190806474917084960600100717610184753106876632117047787089077946380998940777395762348683792385640697525376062082620193622323539224165675008258697226501340259808113904184224097418260386852264746641723767726999869512633239188630564638358891408956039479390546336384684276928104578380261924154035654897748732866604842861164966861479645371049849723089563674988320810444111890233427393299731338208199495723118455334569029921328576245684985105375930566951348134989163159037115140150897022482259969957268342224510867932168613353778845224348012184121050701209374400697454563030749645721450676460066479117273893010730546820991036696399520699482513697192681435020226470873384422135281436284924143657798791873326393386189210175593310756045199502672856424686949340829153789159633862278682859373648616606023077555759097213935107713820943034019804411944492374102119440527870761017945488346898044163400917104054738255993189066929245238508655247437221100591572403868895083385640779944736639360604198760980840852196125250592926494649529750471828594850513678556961556173137709271483434141855287840637528632564922906992714757570613559218334984475377614518501866807089545609424141441362503573916368911654855742487070459932269199172088603976904418197150045638666577620368587505596746677110521972633168653485204233728300282175879792264419431506755514520681867842821736281121385276605222212349563331707111027800370494228946010281527561786296493018160209854771001168890435990637154959146948546332517719210738192478894899071414581044974485493305704678672905668005466180021048198919780926650808203080430132503969900707304263261509949555572883684656509778660605098402946002740830950648095446261832614765219301869190300708948435301551270897966866056344572664115461638966473949688435499768709655804068752507475470526399809732997552510857367427420512096269824027168595195919257302037873716008377313232373409253434540547569581472897184445190750122423617689689041577825480208314832252590599402704178054944489868303850991312250674186243507619451831512508641981022183186175374387155539280068111096620802456495838758062162399717494339159786644763320739650246587197702447422272527984590700040751229419909520955196379903478398207084815501792465099299957135358714773019002310233348755232330918635333884205499758782501168082216140837696977209079528531581723751393239679255860022990051182752800478068746438059849750203416566420724347808450542660035285547359621691569750986230042098011866256144178608316369306361837742133392457220740454025764380965520104513771426040487171898302517379975297166445490965122622167704864481920804616305399946222985439896415658337322648237804895930157469423676581411116094854185962560620919644345827725022592157537921481423089846148029937708237334569072877669390968830411973154081586380202679431862286475430408288238600410830350805823165908858235338383484055520493195778851650108715858290436503893784993740251629469493156870145380547247755472664270194834411753246021842917876678683904153020111805458321930432898996751608835579257860661667954425895191847815780026754407180152803659884281592553651449378244099904948497568225209006762431964755397911538517119077910536493356201684830556473534799336641156867758799553950831891972035863310438507539789404790778915020061250048500684469563949312713128255564448047527925644237503273473864526841429932766512314426277253400701453094527577880472259956458468083129638861358741205257716797733767564234690975006166428856423623740658476703105759416533765769808582187572169129014624013294503020700766534280557834387558004486147595941770957079556850604814111968002248953329027960274526476974455487386923735854553360633781591513110860465315116819802645360430335021819655559982704880109540120497865458551610232222636908972117732669193434281008789736484919781510847742439943295372188563263905999865482735107971322547253534575618928529750453208489077301550230059058610829258276326285636143636596699707205585704161659650158877424850578204417631633137063764566059088491537098196025611233121633813078105842966316527386611739389596661804824997385540641887407480805679929105532850353195377450877174802786501084434040940144367017549720002042821781337129972062340479401119466190763645179898472112879799553224268877694587729629771610707570465940113961109199530939559907967878118191791036380710290742444294192012726616497480413821661307544764074822102603721764572891056592655414402842941909979083967625262184053868696568765348476776426225541592281474733751007688460003143317601952759778250258253759267142089129753165164165927820499635375049384545378960830247735146119444769034853875594982167199930336424909734868172214092515895830592767772901518629774604478137742731516079384447316535130612307528054821733335605656063228159163118392054442202052717408263617571502577240004850792376318220077677736594702971459304321880671215277691160823368377602867034324148403243183785810333967654803110477912372842276776695037042932386750900803196495736168487862041869776060982083401445136782082524116105466206094896728829150219576807578542552041326967106761162777742367918310988829026573037876970507504885135102686823087395254092057321276467603439972496468145924918182388642863120740372697464709742836231080429876245410341091082879796977367951253808646896214926291028054711128378956863726807779921941202129465821313025585981142435682595258791403901099319421117955405862524942994138434552522348539656313922696064637548189607922079959713027669380533674534230735386987333945347132151380307787822914389017514934973871798182323011694571004284334022687859075191870379727125172220300759574559545657667457054538229890851140224967254668606563347220663376094340160000155140318109591299937406505840034019867453308824050428345194220582745476886284941532229976705987917658258874373445485772568750145878550814874179193906612616608764594535033653946282157732369581573960893837169232535660628675454490444868282303752300627223461153956350538038658333860456974844908079610566795033608661027044698047602022279558599928179542958701719914821493341818498660100461049334628596814963236884832641003533583821967643920746637790003395538947334082834010943767942840987578438388334845851712397768110518333656207950534755759224029786979335173403071966617779280433421334738289750848882422894300973901812711776519168236323544548007260483479052591070135700038815984620369207235952870514929908597298546445311685275285216070304079482384488393693308402753782519902925783804631132908792620907785416197881867350834518132120010245739029913619162857707600898855353700756482787641708206574395207535635195554573412224716683217911196491336409534079091056450770590162613874610972395745764120572474352872353242882685278295503896675943662693139880427352533853301948003446328778113836253454187905632639409031490788803348901039684592697455838481147757436481975038823443519449355445468536740804945427012921014371452812067661889535881977886990355387013572658528798766378197218011130018842189408075776811220968431644369560986520377064628771991182605317545780782325313120811422843404872174470197776015958488933598456890094677482515782201456741226882215434552125209682887158174226333907905092891054330064418507837326250842110854411151656182561927081492791213357752908031277988340730200371748028573942161845468054866093185473716725526598435571840573226673760804262825766061722484319359828106723873048097420967993767876215976266659225340397873718530263815952685066636485234012522018457707859602526382019450048966033566286959612691982422276169458421292855794600635104250288439158524047130449833559771665435992026503945888545587670896857266744333066120713017012204371448480256332162031686720843349800289336633094393422433631106551876229430613225247465380645586186894273761991772753332736926767087816681645512298838371841891338917735115981385813760817579988983685877356319987254191144282660935105692636784522901639643339470896276074745861099092169051785636611705770482484926869299596154449351636579843765013601385939209504192457176990994058966734544453864754971454027483578753754440783277823424228316400332054042736897635996997770642701837634170003164435642144353082399590799161839354459142781945649117360510884266054376429166803509534331620680418712711445149089571574662780640888000744841077154072164059515760560665809263058188248062824379335694227125142792858987957906776538665181076679937927433969351556000273902325161660347107682495364949055033465546983919319916126595590072024349570417991428698590821358616955427446095004686801100219110092636342881129933623569690326381984002739069638917614226887574538958707784408497926836346205790413863400784183625488494603257705444823965215404273490573100130593618788976901576643868690403042319831653650190143090471699367241471491106790354153508379511645090765004525443532099826477578672794754592649414847313499598482740176399846727057654414414972607564758690790557534086511069350507255965899624090497111659148644432424800663748723138150532028734773303948134270889703392705268636783130722774726262124161533609393644297655863144567128616979859041073089695209733281842110195425826022091415561211081911584815736747400310389118480017092891668675080646942124636872074511932499573227493375321866214812772225125533591449984774305361041637828367275019579575688681299494015588868117367416675027941785163183451039895105582649145154546021881375696728493248395728546073278235929410270263902767680023177142909429137748760977730274580152698088217935963607156696867503589916848264197143873858103240426872199465041641210347721735833954183136977234545900842403380951771314869564349424470537368701533093204820159502947818980777754028264342887206283987741381858479299820837982720570739877774826857031434488371851547236419910234534154995741038497395058882706543598435526635636048452486311554174006796189560857373013405846561382095234041449265579751905695143976571172215917954048072446689716643251742982708683065546062192935415786479958440875409023143266601866443072274442832949533630217441481279850352680065563415148024937634519412066244043992321989499914611931497971783036525037594400354563125378044907203080993526712133885234346533981920643989852277227137161014738835949285527203784256735798647201076775370253915811120621048846801593778164892052699817058914979601805447523686170678252226296124542578887291701505935369921142711376135805518280985417235774370461710071529916817211798628259411314985731474789232377955402871075686736130215700442903445168847090856188434927828805654753648813413754422389255427090936094265199165873559649437752907537224852678938170238787202574443634611669955116950889351378987604536149190114288636536116033431519497998435194317761859218460721737462614938467475266371940203271598676170704997292636961658265994009903825483391940806190674072031649493393124825419481829462179521337329887439499020325136770803070258724634622591228271058107855744410105083275303126761984962093077413105711520687896554465096166743756768581714825635358950693261444568392374085850315240942495422206978334576334821407509308110522361371636937165617776996878990511202064509251489437756202516112252727071257013261930114108604274630848659458870652937134317916507119868447064240995650527544762810993599456913334964879897519251646826379019038309042966512556654797280352133926169819631790304132576560315031511762443446115932223204659500098740560692957996545277258991498887219265878971820785319825363829737653438331934100490277832340374994684645932421755457577909729460906694590577693069009689306717569318767187728649729120408101213506146978532077369748277584481598931950131647921288926897595265701624491723567596490474689108088281653397188366094185650837470634736519663936389765015942090396429742000164787971901555773760073556026947912277263840695033517328238624614643676840299700689090808461257223877881984073493595075392620363641393394542507877044442423289887224774554290031218047175212652338543655845794488202791598414638164982650164052585989688569421926217632693168820493283833004272072321697214270050089166871834215184988307080707892105179756137722349417753355011772319697776688913483860484404786535367993890120306937234820662766222076973448022129377817559975405470183699929974841760536471065986677068143172307204168910891760877760079315747576366176598915084980650423776731224636192311032984540286339821481951924188522066175125271759784601310967277301879104652269743625249215768684055436290674520075468918983597360489259975804843712932432632881238476939142291332185824758389544925517619887309502874947004392268017346340110663773782680221876113296653063170331754161565199148135745836923890376605018031841517832059159617228976719407390235378925530376205215670250942069547589536300768952954778994997610193980876838779967676688989055239639054204274200329416190200098087883211465089670657903390701704958389929742195276289886194288889307379587191389560721510294056022555931469735170688109099356297584023177422416330056029103857031920723535388026233456808172126294725565768998438939939796322457008949833020297444093914646264630027461507665242541829436455420866506308582098437556804600221698353400679609300304246606845247372651028004215399709211318704249451992577214447822675701348588421616051636205545707638136561683238132805494908733461038661814679527732867162637011088608553190829736198588558698238749147567009666019697266888317740437117727575392584968253430531051726523959334974076914793183775608858330614327711297058845625742467743895121315042582155360443824228086876866428651957708635586446009957370522852990304400058456149257523770626942790327771271368682259300424848981514328986098999759344335239629654608095532800867772602084729765563111315776866367155883355003889080373983671391203782516796774671985031139669498737819356101333828219136368689702727202515888283010151699078450279613293666122505368786771311245012463072786578815597789169660763297296705912316497788779992646407814595099386587232446754782103397657947703543838660792562660404591705292888460174859189165940451985944154187186674731210991606004071167054356479031921732241362029269036839413023263357055660226216250194295220120971845653104468025740063739709396159226511456206707788884700012792322796540281987194320494622391209078322705888562038696194065227991488490891972283773916831207901476439148644936696617378322584523994221567797985806259494779501852765445714622949885315970554094934621696357089418455082168881069656920599607441898923481567217323401964774442246604185572846966788630670891515089195420715563188838246198281063497359874137219566467691733986500580186491386636794224720302883494235984886687319674234872792370737381511496064935600396831141703031292492078116862064944383725250195239738365917731598253075467807596178368376118203319303062750355231803284120394010066995317480142596660801917066344773264541314083235126734944666368367083052760053972653071980818477688696796925708738927761579414188725850590257475685439640921735982562067613789636326974264761873399816041221697941731721880135195403577349761001228719661887882311760609485134003415032668539527348547657793865239677166029220878037379591690061799208631638564408687824106011065158181544413133877291844727202811555715316325316408101984669952227978421350536265228029622572297380392727987664421548822698632837125876226148044935743682948390104050901092952327806236895361391926511443774884981027056594995332348455116404893341411687414964614657887123281330370840674314263750447041535615707483613889416630427258358793753481407291356965766234675000356488665596424120780615162857812854332700555022465369031741256743610873950298614294719666464890358472558619762675926002406901429013872965227801922022693487601986047876056316855256278364129962537926221068730541651801857836979121129294368613391839345934965204531180943541168097787337847090614341065808025536771262482099104050862970176191286968359240859218879468499240577263677653324591295092388097820176064851590829688835083550473336473612404386586881737745741745527411722294127431600730344334400485126997166031203806935092452363254048840110509600138784526701278133872193035609598193545263933963003568839042912632284833939098732831383761881433252471115101889153874005074939658809639126251138268800055749598246103078965228818626732178698649724665475225071722114775865281485814453001822964462481728058882220413873507373935922526301888034975559505275640200788499389682740184060535637574184687970877901685901055292187448273473961303383650319941511731983166309996184429632735168928035412765411701190172735765072800207363618660944219945661545681337739131495670484227664106963568185283396333005111469561308990637599037299142920722951443598752770155893455395227658372624817141719765447091009028407345521006209381167609446764433355395129988260438396491801334945176280418623552525824041636173283856636433382152908720467165324821414037290377634632414655436425007427076490971008722011529896791692014219403900407052425926348533491592506925086522249165030300890074620272190253465554594238746323109458226774423776728777209913201495903895477834021098813562420555775345092371076445299394226619513714328837831855341967397047712798103979412108334970123338732088032236152295876862657091507505077979637823256040545005418493944154113499349139449887122351667838378282453558626541201122511504024512735154496147339261477506542906912251100577719857516909300675277343969925606918910829789092102842070545070761618385092784794838880350142657972144202485859429705445320403416332717577241091157543192284120991702096075744208675905960931026805428052145758230741155821796991554796602961518376043055986115359186641136184091005661897198842763504841788788884775186630481261631355195831293727826411240350601209417218910496141303814976041370291116563572180324827295644930088611064398406983244750326870333035733674661375740241330010776799903566336039091111261710811315578820175334075477420426087943721250359125973687216733497579438442894581286019085446175236517031378439118982325644872753656065040418114293731722511983140081039969794389024826937178193831583999277709284054120400884043429932798905902228208465992896921385971347018279209259620962949039294433249696254116988036575068808052993788329066039766311419668490489996257799177887579812789673170449320891465163363678452548917308080261441254548726688903818874902022946707968574291963884060478286812397236162074732972816836391854749678589560002920403646466511098941897844401989777648554283881867818056742755077152935340869729525204210600706900850139451905703998233801894046666197144067841286622318127235814742422367371445152532160902298763352407816028092915337074836992742630928824781816139767621533776824981404150527453619110524617764147737154240119789034619581245465568086933742430483348123753935166972828541496827416906002870252990637528194096949774754110203770007902013654070121353543615580583249874166782192356413996715064533557923707237729565053334093811318116837051550102369845243883013252644576650113614293471073502929435334144809618115710316984583837992393422526074077525270280541691629055322845641400946489804684379770815805347535130839734305642196860917684736700838815753426365673539015333084978801536819090484223753324374600482579303173685443786018522053355342651211466019604534620238369262031361476092492794938172268120317395657988294264544097772276160203421512530538741680448388102611872080930634319475090798328251507757465628746770334911058955315427664037915970564016769094126675300287537829221955078106272745756631986427911911293361645874465595267053332646370497263142475243207704070214567461160233982671772253498818735587049738852796098673962849264801186952433216860610342029385139117212473744301649896423880239324148249032840841491480681499448324612857721364502556952673560994549920830573737359327754571517632583181182998679355234999694044816193692966906372359435176777371171131927765805211055435316676790506919643604777539581120716085452033448849225145639114029178068282075789559375721220450878244031091183734842649954883049305215707429073651812929645474888970355193137900840412038633234289748493421192081960136988280229545468216352004868976129988995556860970295601047122787744942892875817031801956749744537605940232531468885521521344630934263671386640058707421400323434222000210533502313834412664480207312443328503093354630174328095664734012671982279826754024148290042687773194556385004460037637463366981281809246194362675071895673177031394234503299885021967091003773523930705832400409512277492174263849529531238722472837094523661628261960393178791554128532690942783898622113019645974990331950400805072321288101343988674450815209854701974400437207040735577799940334662806482644183331805750535729791512884076728638267544061950633917771186015029350051423666157180533146054031624994380834650350674387803732924234433562347059127334303711438635381626602127027312772117411985136245867559721443506792720241751157773852805837784283811980816568719326290264200280454652161774478291829813059823640754543282612929844432328821093629558473014892979058143943347475199115903508297302258868735621781880673688578912839964241456378672232762226314416409623855172581851434588778540366665083644867672507535126609838562201580292480555187307151778423231208603890216171679911329564467198726778862439672892056983297567692810629683394040794214158672952080620669958484438077902068798539075504728243753381756873034503318770480067618095355498396971884359842137935074580973869923792455176347945299659912496937418768245113715950693973422656851947848225994099610623032043063258394332428519015053788620501855812082720498268516634258717737175424807270590462809454766227980411471763568743425178689217051496064350188828293077239314598954572314654099912528344585605856525318832691333519352029376829884961299212475038634999389091229877843427739882576178449365021398911715467950176349976012009254674433470759252969376078056470495858492453172903678325140169443740024178132792527853719732723809629740678165145576120670808636628306232683055123293138374303422720003661257737053778251887212321520555315423530453150297201511882822402030651929724724978812073366389512781827508442171572052806288015572220440363724959141425569130818935988266117723420752953288811149639884903223660019749689110986190569765541519911768149951212024247133830478625127327368573795485854849808824297196146470431449347277368051574755826852499752908569260996729896000746247551963611268561052620167774708648069012876916710701396820105069774720960075490085649910455111166450695954089807347583180214343245732922643390866132577599281355201993672462446266555919691370034760700686796330142399441191721482580993828788117014003178837694973834734769200777095059791378429699966700230817733392204049073437728698621052024038371922818874892458240386747177127090423275070668724659818878255663176258469220192708662071565713399687898658560252694149640730868221740916777667713947715748579196828205449636706128108897949478838080395785854811989009000908788238974475343339680953784273694355113127585524385488352821666119084671563055625607213609665529770019987782844012411665824414017685332458566485182457514461792892794561021437332841640037992948267739996318522528053344136737584970469669574778967520612811741318864428934709772484388104797712053895139248291614048670791550595100689548594211649237155009952154619302198596171512250060455772010362063955487305062868327583787415755824852874674236084818927594472100002033666992850970098991077572970062685367931174854059001256465374759977090367442133598687427593799255204086656258405037480578832348809983326909716447444588878697444513653511419043310691323817660757437010950545790071232584500489060321464120875522612619378587725392241298105609013419951221651911360353368775587128424363843974950080054371636485784616147507503926912969229841283146238195937715285824318211225819939406729459324816657458274858379580410678130284789508298707818591664060775086546923482038142911239986362194938800854641605116469174833998818778118830343112141051480597231235672515329097153310977350492518888971191615073155089100322230453853364184458051487678953116081795508807204076869051461776557664242627596644713079006138030588653264176067569225137441188286766210913656599304597677054272128408920963074457239801208810461569131023285422141576263773877599990349911075458635000098958758985505663238838564516141396775090780192267029130157563543470160206856936365073428086283989632123842685841170444574493265250898350799653868834664985319048650687519359624211506016135235570639601642780311893841220894950000181122892718371040818252423569992726248733223765044249267303057646428884667266140219715132579629617604664208028740107310888798544198129376453077089903356485973506221230058674762895256156283358209585181281394448583821024203333806767277682305977615782119994131349719061931563961217682580896559538585619918585158837098077982440117875516509329151534154350305275929246147138848917659697308332631678402919282539516745077704787199394221169020163467185530501518036665097330642139056826102392868050328048183198460867074603651971781697533398734525305765985376883443570612802671186685275363842076795723064996186875932910139197068020486735451156344564130595764452794871723867306876560926883963038407028682283168595194021254651036067803296255210239520175044453040115312486860301114773753583387622333503603689465328936389317171265419696803067040152390547445269882959879809914806432978627256259843773267767478808756111218591261811770579136256267869661325648153645899705001406241171193975973678993530128429193516384473237288073178511039645132207286847975577943892588990372404918085469071558246548957399073683145501360908255169567772585455671808315143231683377448950774509956931797737432468862851367193634112130274756470451411024026894393231909105588564785826474205832231191675494963965102248755438053816053330495419409861982083776908100160258377986463547195538045579721038543182551245154464730905537116764037991682367439244986028368841091326689236489617658813923031886504647875690764699515980210925255985055112706922967027496836954137036512417232730494226255073759604307168718923441281006467393413097206815975578845259565747502112390805162434793816315215603803281162719249245302140156878233622809723141348827643226438584247421567500485521657958165071678283247473110688190998169060404731160315787840886311162297828943958961564785766905546533177420448780936491030968126994802483481906725291098319664391874414182231592917469146500252437303089751154427223819656324823933392078841795316820014473408362471727395816577426703006276905156543758747237302917204545003004607085563889108539893939382730947239142078018658944802209642373339765579086590668060113463118215265326173307555956817943377005770403614948205272865926379017401749310502562375895655553900925573667889813007860359816449661847672161388414723553328985813226186276399651064086410912187068491248490161103582275034112629564081750405951059918591918984342009276642005884353582852636364269884488124038439008904512433666702180772871455380998411063006354328445115478452748738086695718049471554408142059570138772005675924031415363995024366443581867847171091385624219169657175756936888229056320414238369926411322471222607160844693670452435254126189019491559942893199353073434139429043969952967865866560596958958182506344755135615815963308991702218558486350768672790155496457327796444657714778401694889000724000705347873389016346394361634381928875670699171345666296522302897951279937573211247335079122553359882177308034626719077794197342064600203542566297073343594252402778329237044932639701280610327011140170887730568589400724036277895761221358671588216425757260224286870219488371359849553289315724046551762930956928235435778336967916588381956782404178808079817497413594223482357114970968852136130835485848033215595419156137723212947025908070876048882757155992192877423930722287232552768052137248307273273419252231523755986573621789996637010509250377246806699297531971049540033094612955434007864295143670067250604624856896193561336996757544092982509125613271528980919245507025817450906841548193624660697442416701174838701299371869056424870073168661859695144008451458100451912735663230966701098606112817981998728739944772303288279802227874070567301342921612262717452742998415712156241281480817546042218832330659192839359199321631304094094332935842180037555795760481485608390430385642867522826966061343648231334962745718935651824554469055176192579504962273595327387139197431004188960479059882176001687591618410759417907159111938646632037414035037195081727142632638854392787122735891571548944802762060198814170049973020614937107213053650194957037057115916039174299855190580271010934116245071060159443170383205595033095092437444352334752103423107471397938830059686199106050902138679983870877051605899736113191983219004517703492923158518616287531159432938231875785649116378304809614366630554507397620451209362029968919957384833546640380748841923248744941464160083285283636574159218580981206053611451668673921634765497517298612731403223760629522178170314211777139294375359228411465818514937924010109234772626518337123284270464024034383548613941266673911169630836905731792030215628362275859214487483239406265356224956918225407363358703532236070260859602054354154835940635933711706291788574987915942485986146345329009414051420738192664417357080920924708894493988565177758275937383887425014672691336864553124003367327423032170531208275683369704128535270771068577772794414636352427240794743381419229029397014896448789260848227447926696942207282683074331301144403610487756078743304449347284885799901780423024329787658071256095168215669518528505373620297238315546339029054555355438272818280889059177812321566821374912187301102015711901397420445951714289238556108266208362578795620723207294919067034758795299811376648565324334108025167346537716380268012303256259654135541886268263117595747313862280977893978516194962875964176028760398045491085006782896500701632923153708835920356651405516676688768504203830547152268236740660912519934405711111265069519838292720757063733965333981435003357838923912902536524582358839891267599062312233014477074291660626563930426685495200416881371426229436061973376056907385165693342929262444333847707837231653974384111328909534190755173332766858165122176133542322471656368735802213491238697362586725199454648480258530424664516476562906810709551327249641523406179246272144492600683297910548888771525248258536391628597904062799880689962660399835821440951118231526690573319056627705449848017886480820258678626240310037753677197870585793754082132457016497925869953048966326302152530708308663986684596721862863923139647129312478403926043058473610322804499460561763037377041859109169860830192499390515948773690762373642516284246095630122085544583259735126820278562361229993009775959590875157334147237913360041343583421997256176444964520052658215257526695380346246133371324661806755506964199482057983309926833915154639208629381020295753750933630057599981385315833340542742893398267505642850566901869102505519158887675099802807224912053429217051696344119692179671410475358979877354419842983029040477400789088717117501125073382938683442387039064502606985540138606546081451963848478049027914661355743713212433936600323021163780053540646577039135878383689227706003649380504840704823409747604058569040962374951944443076981204496293520874721592047890326124242159118427846616861850700497631241899509748135562337505160907267087335602915953634236892919300051256761008772993770405563855042486585156042399481555586276285072103551759745730680285882033217700159018864320104915101196594862440303975767156823808357089964981647341621082660124470197295357476916712711781625636993232643152328542216216328748158038211118137999595604514084199277597603512917687020467852361278788397057908866263126738335199111703667514859433730155810289349548041590463107342810887114356337567237557314394493234404493466236824299096348259297379129267388267048829150139410893938983752245269601790463958548747246732749446141640391496054434489442610551747521386192539491752443101462925093113528763987591843534220210493541900991286800334597995690665411960764373659115883588436456408445260667332600740150092149147937401203640618973073589310572206012630546877526261719727573920080726729873783002319926179334097989860150141433594775594285911954468767790410338374394517908708956165946842704034586220694808945555100845267679054113050392298485850901075499354391619386370490600268648490129822159095965307566143924856257992279976190768187907335488482479373305759625992848200454915567740478730465529886696972510729598741220535366745607080807746667690939302088494706530164646644505245442474561740915048544165781628884259998429513243666543292754814030263113769154004366337398314888979068287016473797090690845052427128445915806067699331693697076059012257813224138611005456284529223082883571524979794569431843959989871810697624391698060479374902359529280979378990986810989399764684329623171193692567592851997886583860818791042921177828669977829867509525543903934516685571644981340754394459652589511697989170603377251990742917906387502472224180973491941056189719150180759915668507797511495188460092690178852267491180060306949295282442753020091852801933583558507103816756311188468627887576087018623458750531167263727582877583418960304097825840920168970534432697528695523316098294171180518361177947009312188418855584361215348868316100653690960901134423261998187554720776129104714305854538235126759579945432477856068327715065448136164148318381248621850787779667087659662650469511279635588304543176094662541403398008843201299417804407138630776285656866084375733250937992844640600558367112089194519691404597122192469519586227287672097627162559767757169821034839059403666611628130619298546893965055474503700093806171220815897106117900352093965760893064434875848612798842843791303130725459663996562795456648959859402729481388382941114999511560959329637131971209718462996770996393132912118554631745340873647242768350248489404329801864072900141451272559813761702115221569008846258059129551323925245036645695072176454588592168931364184774123139180308011952417847798005773070737919461946222214564332917588534577362813746275163475028360454045617136527638784909359099959531244967376538755887468743456136303796773226686717279737380022768389647059212127144533374543942300375757903464786980829413087198221606630183466887804496186089468603949448884555615152464927783373408718991748151501359767140333391869855326926249303368668899387106284796738043968364028226331916757914192943609279953472153122604013962002268572919985939930814979938432212662522475651900119851539313309005675907634980875488778949634231295451375471122286919220006566189932143583934093746074801752924846662003888520694425347519899733273745674536105661750463308307221373212062080574268207671712545715458644684696276409211546255660722292759235338721324606854808442619144867481918927843569617964600968742952923069136213351378739245015559704115646935513147691498473947976990109998544082555657333324877477598581252994469011445755459591824800012421949577391364937977688786184869719192302031955617432136567564460683829677223223821108140191367936086582736576825448744006707980508127755237054313365626187551188054868389293653878472905325699862536836812300278879224406002455325025949037792164167813968900040123569812637460242293891463332007014400909103007119322978756255575286421532676922469410716493805631821443388149325938828245285934291542527974227203285893444880942311510668837424821214926091117674860114909941495887513839190400211750132075160755967070957775485518517830689206792431340113998566524544675111175932700796960970199969098805901298423911176325579036814578068098094966149401992987223095284341994232342701795845427730570928374972378288764366844662757880439363031761184003012042525101502232149335854596754048174332202052031931601453990098437545130157167587487351035359727998327129982758743148198580382646116141416306657138115610769981006292016407895525440949267294828037991064519450872540387049760939023115598044332384517438251441842853502642615457250559177137489139025999830973142000141426891901307250039647777028140346366108907338009074326190776651074451760546417626662244109346265306793804992275589554041014236060262216857588211672385035809825644248409077406275823546608597763486585864148287957576435956304147488144362031260836740758098610898619772053585479348175274071416714449076857804151875543687051141725815263401060288121554297469000774863941654095507626541120645310414386962757997890031281068195853679509715079930620560972203023674050061597434709375234612788269361087287252253769297144207524562554055417245609531557801105700950023808191579022116332440581073284451091305476930005411195318655435945591631415415249891024308280380298562023245685289031772618746872606072760897640700687877462162943953033473516683865259085084162643858559324463896350367090048886409537080251578257520812458058776438531424902440543751562202214454228467843718881065981048793932166101192430353462613656114596025600954615231680060294494078453728173589444956991947352762677971630964100894759118813430465519961132128408831457871889229422506275762687331247096985026571046149225504095164606149157729837080598000201742907107235417431817705915473050113543026079622338987290557665613092049146494069813543433033908385160714224028580485441603625735710540198385459253873663295709675288518927252846393611266755058786423623943182563706885285486944857310045113291936120764096994229183789031659571190482329012280848507677158669628623868531314688479157652962908266768258200063881079376270338152583263979585582698952074231453174290684689817076200207847949865161625023198552404780338977475230989369153455497284951298777775845687907116643876967281628057422403254173841467572564612284473147159362864762468851763545250158462688411077053037523619410513464315496595057606044528266401657759799321440585279741552942646760869425828391158177848459951641087539550430497309790591116003624599386060672243994159835856860172778118151441795665563197044481902342916373561056713252199533424915333015979333820933168129602088436741323221840785834385764417629928597916018821883537270674146514620783786418066790679024369258232809672332399795003689081464185083139194790346474440188003737615424788981013182409404773239555112670169265378385578682207232331265963479444868062840574186166313534937615637886002282935068963798959571326244739629162318415836201964618123011831285762641786982307599946546226437189297122421997154544881610586439929339328409268934113943065321576352919857484091345629430559214621330615320688795679815287975010415229150851052630179622934302339951046506503382824836824000923488263629546817722053132693185394522439368360020381511581393872343680388627689885574110113374244196237202215112092524148559984015683757618644758327188106306513010833337934759355383497787359780204426755778778883215554826492374729851216003131974355459348080573261686323852793692675424671063421468811851111197909470092740753773640930826162938716466372632930385446983336380183988595412255136019632937054566384270850958781424607811494448481367948526079921788346566351864490298214021919504006162327085921545252214698192912071590163099127104380421911173731811681922443940422623337027816812181826310130871133036842329324353558911917308763660773112022186773488841905320958243618894571101433689657377181164709201160902961349327549722376554321093049479063659340466003483931886633804129123807150893022558498943470845336550364831209178882397533088794159545867561921378433574429827834557533413814873495232577410376193587068634915075691584513130058618828903773367194850306740992518874969921318419772566125618105221009609290724206634196378261576205968731428177096253246989285033734706162602599244107351254853914162041054081213817920890395327289410035741220420138400230056521837290276811647376952828604066623804278264010420419043474981035798916636987641509752559006903146149355180211769077002782737281080087211635220377913875442210978752983417648949885679242020363167775233769147131031711537741513028211312489485584537366919891953938046903421626392077001577504031220541116110999095007134283576523778627903392366036524263993324922457978543559477254669902579439371678407740621222248298858573517858692519371498011055896550775348984139534398078370428729051235061148238238925503031103189795067570205481720366068541807560882208536160390283791442355513363939285423614882903136831133263206559721980734395671420378846859860311538587978731000548529473933985343879909336704703773209784099309974310664380831121396050891791992765444961305415753936755454962207005209553906125775128728325521455883373248155720734097764667240025978200261619657182093543349382363703511698007101382660317255093041364027951130175883355262572153679151093126092223793763031782409238936678546525196355409085231091540444409640236740808825005827684055975694001030918619455560641908164374902909862172245685176277142835503771123901304931103260727908482617916860537382456817707233093720152883835057124180911797311946786642708495686674930135247797648501566287267822201572553602511698881134537589895621912247649532429370524195306886981591758859226107115824858762622305176250610289984534062069254998991667629706679238225677196368151692286637749421191267099313248123634044727314215801996047243730454665578302605465829780796913705528187212606775471250168226235968888878155678536024991102632696774463225588178572756539389365149944048971952264448080674482222939250025491187312451503803024997276998386433048755039262619516100756459125705625541585001015862933130781195468323618073111143176900423408524249041379129605696957685149042183673698132889892484681574701506399131009515707751503121166657689377723078113486056659265684053242379215743856882880650101450043536809417609860451607135457574093331304627645607407038697060940610364762415064267227137795046732864154592071247984161073896350682564670782703735429461446704462060704859363317545365259159490018988076644153444224526272936582296167615691906258746161491372943587210046063002788640757354859354874133610599843605770967682662051914125492855004511590295774804143312066710832136151764052166631663314727512546023059089397995819323764867759129689898644309246862780129159131110107805709401110363739783921648301604078080656753559039832181875869690391707067963512569568727468065990402625648236428001713476676490857948962303667253725763771129117345328413408968259288099067825097130733563862215194648784430368131016101863122674294564657478499762480478003054944820648820688995011218317843249856447737525077592671735150414013740105040494797519639679069185596805577769126494679674962355175790320059660617685082353404022837558190020517139582020629753907027546042208261945038475567772821764758723906139453714452067744427567569362179227322480864366784429414770341043736917365192819069425113699401757506235643781983389450046833474257338241604558798833409762564740213153303285012061410449226262180181814014339720854247583519017704606282266410020094167372453835548666809657392874545299145171388102797751550754125600847260387672285243591051077885045566792857929378322516326523824235351659595458841823211655002127679792228692549305742667607815074583088962571619062163835377844916204420831785503451033664197364123913417444110725462862991210064610197303845465956325135344181531360945701319610949743442471619299672930012296096242417448026792960639703133435991926658981484698012878389889152468234980179278729510791485135455433370100393980750773144795449636838621313278512768151310290940336615128627133841379678981036329802751797685198447937134672627785381853805357283510970199790672389547655054091168299095270470858019108214512981063992337097668385142649886656812638295727584702102983788971070871570484600105259095708118884478808900105103007729255339466193610196195470589518822185349708708083991488593118862535818112883499993846040658729221339841520450922164224382644406952982050136767892656777730886646262966530568939907051375365152196111661077302523533229362933362516493217499459658688983305518619630192620507988039848889610121873389778128077287799183826485117292549624754215446790484557683734663169368768064098155824513745690535171061595416081164291285069562211099417118154280232055717408183193167377722315269280560580415237604735275413075304042768936671868128498106684050908589892950790962530921679070608714803834447328292894728569186004817496205258115655351432547685274240661208333799021025403096015323841325351183490663171705793088557301744064876493000301862438307844923419603919505075370182950002535130813309212373742179148116571378704750377240703727318684740486303696852016069777642324937679923023909953731536816157679920872461912079253876207443277871644395369542119528837977767749999892890847032022531891163370292805633660262124673209418582927638119534836487260138999625663426919530994567262137439727498759535237897844356523037683050105584067051645245660294131409244797309785132074197120855937118597808648815231357770202608835129869321256220721643352629052069896905784860278087227987856783039872697063563434301127056266257696235215390465428918009047816227900375739998592156760993679453012336056183610939583049382460145270909051237122184181619387074812508959777350968629997516531869413155917418743398606968955128108657303948278620839461391148289322966004937685546065098348884550357484911184932538078465139309210676987130965203722448146120522863035216605060528400890553478577517767301197225181000671177997288792514597119599060426554558247799635776085705075315907116172100901535638254455450650817390631614978058744166546167026075339603299998547122419500948459168094886603567572896834009946878558679876867604329942085522113154606780899926634416688850300390136705334110434735103617174914344330952449081326015249581582913581802151350886038381417480265617868454916017045183731336313802855642407503574118439817310594245254021733189900585656091129351320158223249668966911170952072192213965521107870774183605040816664376595275729807826947516839374010456152825225797967256964537066955233157431960259819954162974270635566418030045928716964119003592834569768576108083823652296943898537373708572472593683506697893083924922078030869757496350215506915012650399305116130126984938662547501770689583013674138705744141792204326351255324163581293725929900495556591214748987886610680275299791800056535888608234459064041999797309599256684271026688040976525643274640967489386704000998376925140178039127239031661875370402234641788228063651326785470123165513434748135971030433702458691369960477433578742818217036174464745694938820428071464645025502639366176962701230772553026881927027927641991088718506161831138182022336602866409441406264860124797453679475853398004141748159618577282887869624696409847411286209861736197141350445897674946561754063221213766571181443808879025108468773073056536944019826206544944070541146968034917081254137821812792871889557380775657906122270162441029967273607873072425639370075196439030162197744720793463017108414076634642520521786222433620632721355331012426906993885963982188446505583563401435544915839508693984899455006474071835394932152839227671991113965325720594535332542923883826899748649792647421506627034965254431623164654304471050972830155880137469626060516810046681235813890160190705814217314831436799684570627695561122001167353436168293068364806955831449908032819474406393789658072330834725453910323886873549402733456593931651087722173474825528291338294007610472243174069861272587262545725575632224750808540883288982336028695075201810190661315149615517423169771148572911903977047014087186662519459852794834649502397799263132696091189371299415345922557630470422454632590034301781663403336046656403213876809807066197690813501968477131746672153723030971417224061252335434414525513226319188711655398471339293691341132044141547529723935390004709388996570060026112353395150630496394773301529351655212755472976406424478296834822834429671799320940216866676981345706563948700792419310301407227366726250803799130640023880858187531907684192559622471062068863413221454269455746556603357154054427378258748243247421172318974865820558138841144039373436388887821426109240884925424380423677654193339806717177052434244176589822682080253340933583148422069415640546921845895565742799932669127958919483776550760015735168032214597624783169522279839592723805403495575224666867699713891381053885549531431439241711916321849577670508333915649652545989783742549891532152144419447765565658685995062689272660390963982753314861181026747658767612913083887446603481402473628549362102641375441912898307136494555666501185644071965568907475830100006566053290117985548078269920962966696804183994741326392603777399808380544660181561180565499459252886159390528013712666898728567293190111845024319831338656602960818232616333964930319079025085375843471343615772959953412391626180908103430897842420764803154644773508898782211582277505257634245008455438372604966715740777374560048878972383114938177422485985180481922513118853025626624930054844745474729085839594171017897132772122266715646578818268133802128867198027116038675386796687271695150560299574374621027917284452133322795147988480874371770672271282243118016760727092383821659196208025961287939010140483291800496342383597688203952924024376964438196575912616026114932995885208307692492919309494080280299560284276128183082019125982961746569044059858050158589646564139506160886028586281741675249463740016689776153894130126638305283750344802647266078610274259877261178483925103917223553787358573305868745217036558549551961749056286625917074590965662532669714285608971351349545261878546282968165968931313004825965782074559923928729660462906659365547087516673856882338324731330966951154351906152979481332555656318774349979388228569524909298639501983567141511027951316526187644875260451973538781067813945687589608548529107544092783307741846442639742126596832705291052401195246835096481553885941690988327006288451024774015904327651180753662652904046549370849348768292729573757964185083121055277445006774103274681334755008709378740156437273118586293516002747434278244738913455345791125648250821584123296783072548362268925488563536660487903986374286760992025385115870678369417947414980299637787770364669006144683965921751981504890993774852717155480521263112159784411140586714999171353268867721582287073070712979753399311295639628898170609624553024211223746197270531242453198823292565460648000362973593136594781216485832604487997421128581398665646807237347874023619879648915665869359522282008599390057922933164518471369022214144131571460558461060949573456471905164738661422358261312129765436411276833113837193224827421747179542738319195211601824275216995976638587179459927330056909804098639429338548250646981891114090329283675271143071245851450077226345985110308178138125916032084544396505259414953062618705574484385447152408037671813714387475143992350288830860725989074717804012992696338651746691111644690814137194285253652832796966790414775895027549255227349860303899629282711623129628568356454398655657964189741758553568599602831671715185082818484560764707398344565066433341036257854265526306505300747499595606926608378209481713634184739160774251890545241014060644087863335803285405947836846281636458832429437588872684375263817472247523464174718706978546744071593914591575541921854376915542741173361776398846703778071910705758395260515706675133420448146609244254835161650187609754393545340580293921328735382713177889487029286956279455271603992222674912928306281264223885247786508087450266582866755351370452519199387264021533753153538827313785365170012031050506095427888760147661200243897364189521298797410472790813610774664697614211287311343559019552077033309632611886414059001529796913498454701906289027526906453552487190299801033660997389139926536605105466588766740812379572606418485750006604148563187074081502595082810824792456597721068628109608072397938357300012932863654185183327784794555983222778573595860320226313804996120390634457577451577703088884551689222132051972368883675844521894477946840207159820245116937492719744919477657600976122220310777044887500391984207880662378911106254787841858567575555690999198469053130802158479456652986397054384037673381758067175891122710270465202356374879383616446897189652513321059525811638692103523853619913402064121698699348561307704090793032928785493697972031330266625158866118630999052447702613549485093195819751092335339356676354720251845343440009752445305571853054163383085186412098842083347131325455292872785331276724177410922160357870732426773278773773757890173997520873037198101786061942274035752381254710228847511175270922897247455176331177839668327924809493077430677982759895960674233999068061619337139289722964693907075064766230521344761643343314455336738583301750701824939607536709849253855675464266581477651611465165075222120048720257631617557786415386891382129244046590277095295188644530913807592302034785182729924057081161513302032249666348453150608291035326695197712211136168274079610478118518897674879750124071433219136136217782772235217217371063630560063144783200559015018367448379394419819826792664855333675165780685651013616648444189901980434264606674404787896015206552310427844229944575237229865028315352109294771188831072561578591455328333612017740783479701783895560596161174127032300491959954006166291832562591319498328222744447471341373711041935011232658520016618802483267165141218882332140681704763290908419107494599956036383531337377495546017927537191846684060103943852305313385431826230694885798298766214239184468323534536856235070876786259370000235056882718810520039470444098015126397273468739181704019732760177104728537975422505002587930826024819777567158359957219152031251299669616785047874865117986756452086583929724321689958537966571861933307080573252352104828009369770128063173860628559073801342418470865790559265337384831168329473108400737738609804649071679434716475801702772214032319793752282036034489926023787920456543545550567881341247642379498667168125384740107405144566604832231730447218142189906570565827593308519926860634252289824594405372453850414877578419755442227273028477812314546155705180891628143928619188899609270738591776903033222227169846948114547982208370799993381465857297033763712736744603945633376739091360075308557493670588593795649726004720073676929520195892365012451224054154165882201643407253713189090799851748633166093014296071233680057451934158704048077848370875734107962635450288885129400526153089758478259128833284581465320196910829847785439995642703519286780935012660795656745271697712127660061983551372990697743160827953513966920782769746686754011680846354998056660649839276842246005122963027480856669016593915936786029561800268544298305072046502888651607746191386131466145498673798887467369690323720591110104660030350742230507440229326255746563014879267265714332906318138950038107021760525542580964205577836575786739363674896870501415489030032144680281521101849081975301886632785368803916219245296932314255310796936849920285180645395187312741168370209171282118987698523504618612620015818219138376127093820064380184539754841866046654457436946813230230185909656074825005641632628007450568154866101598577973590030912076249203616598898920922431090598593660918107831839784001710098981310473853240869346413653685417907611909950258605793257440903722902397771855619332426084034624682283520999674134422458008071547480437178384171446213328944783598427800939774022152070957404111730004547657480952729973129678635576928797632281525813628260439217087448434720329024337340309188986748817212346831582643321094793733377097038843410264142168679851475921268857336887023696198672555556151204299492842780565583937855188417399857641075606601932316445338124695336038025664527969731769963626666756639025440922545660610075223191367680234677598427889088751697118478736100575840045862821040953286314429671598913681040600298413614820132830216840549285214462385231634083993644635863040810806334114307028337566276812373005885580079535653744291695321343841751230093559979945762871115131372855592187963375639858493198124512889572085800340069937879358375146906540186985490307704958286099366662674238491571830453768828547430290673715129086609919653532548966040803292617708397467255861956125026510400353398516276624983294560667732786867786288567077290068129556618556403841341237500255286869358189627820145227114291018298039311768278514931416950098799429365839245504980446639432944696254089266881081790686401957858273944425782612213481986528570659141062920447986758644473565664745473108281708898689732121910766721418418603946903542219032744879986619518379859957524280039802071379489187564156496561396999227289698237946367803768709271350135687897527730492395501541938853030119054188348454316712271383415096919992206748733504227652485410325547811426445285258438965098030844806104860256410188052004817408278097226564406211926625060010721222966265513738750371547628649895882788778030082357949856447388874807915291791628791367579869699608026996968597955821513979773314074293718118849938448341871094199976593549910398579162554808030097108273982532196787432475032373324572473841599552070035196441758792957727755235144574219209959037210964042027114045449512194470601434950034725053796408833933060421098381224336001305122450706867315555112867351111540817751260788926705047443381000185296408614425762320062174591515021203099850600512255805404878648018066976463891974895037835456523603018781337900580478257443572569102974724790711669557536158471809278875275028718565347654452252009040305364365817454596143969836241856530832297637041503380087061096640194100735446164599441438556273667160481779599938842772934411311749906441347538944992205140207096037920957227505607398846300420609934494687619516220122574581400699494258888758913176919543517278095201763246545055569084558557019029063654292730046970535093659089223786343000260011085342032151797764340790237567941060780335939560959125173487279259880354467689043458709483247597123482574292575345184959455153496418286027502682138508649085054291072581082292054190826111315371790527740374245904778722261826002518356736745330088663955977497366434473488461415075752184921781135046794577690869111057172763575345897101073571166002967660007593997069657880841563816511896416111050544079575597734520967938403017692245587011332766105236977635377585943954474653071539699194414804389063679830991260865738578305559012459547359857878950346915912410753723940813070129177917928006939040080338709816510348321744334543800887701474844680776139469848025402955345938771169997859262722104480628776978037864985209205339880481398346098603092915599795408676563461985877093653007515351467125645429839146847769914497849934689474928097284371115760416269437398595385712552758638415714878573167592001555503072766125177700632598670830805532618220750730652207746369442718324664532983079989202100068951124392848589745871196397120986415190513831651383430639224228235798439922061370867049174663194783509529422375195611768276235376904394112710525273107877230538332621310681305680496668811960396538744480637001722739159216561009791138288321969558756940358013026353159675418163878502183596240822079377958625309008365040129103393354608428134244065378364326680168336848406074326727771933840902353960249988030556053089725910666155489141729606383649997220072110062172728512858120413167366970170102654359926609474950004416463606829394470531727232958160165536879328361319068901448530452614630941981422028570750260753518379175811173887453836472365875978151243166377266109540130546139533853541204417870330065778810078951684844860098141603417724928973883704236607580360739291729479782619262463911928810248069941364670826530336469838358240499306238362455050202168819515440455410765592180308673047571200190218708235664240095394357198438782401238371945955898890734178056242018116722808049778687893817971973745142832173257598635974366608218953458688547277381010606804820748799536870615197630086350167939461255290217016752967336677177873936730321894674742114773293022267035802769330898511333481243646459285987224917768909296625141770667974048802245870586665680969374866218755028939784066461669806808227790008555798564365195183612981768984213801872889629714312756845026832959007146045947818436563455928322794618269493346675660710712777577134310435666512006535584666643785163519771384603629956871126597993861479962615810777453257773805960862989279915532211141972569462589449103869563225860798890551721104232132040062494542536470626438920282406024444248833380052960140490267158318286912790848331112999714065457796383762002379545794345714342190290726783456146762123721376244300205240323137953165988676272923004156431540679886473042183905525766373255898593441692770974564235151955999833748518150378599701428403004204172951365689408274092724494845865289212209801524161040596923335751175980735398391781166552259467314440168545372299285063905856907047328306310904379534242391874232490957412738239815815212805210710098499933227902509698205708986883020039212466689357169787626236419979510595341146464273347825765569737678422522268226432571558177621696868610209787731605542666023649366711295977952208969510375329772877774897100671949926677396913704670465619736712235639200798068857687252635625701452325215549531064424757268844546310265228212164394972138873778988415374465964863705536750558356791331862140479665916171088438599831372322072571556250473634377292415791151124128472742885887295292024479838628493031093220067401468725978764396061853023969135700172026392072609804722144859828839987693332414435831688487568775870730880863722919342423264832547569790144069478982653006804773256895660355755119099069445067777144018890631478659641584772135021528908882012471620919173394567769802573001703302149682713661938579060435235981902840429134098925114547555843301784306273913710254841432645000783996345266467777516124404779709106746459034235304242405850889533930939724759545166916088182482905076919910361927446373617658303512355596431386992692037566471779216236209847264378624186608331565072911240963418161171493687957282538200348263741586691547338038878025238141043147789843444176821531239059129747292064080645358744622131716538984103341296115489037480193298501708396625461779331682356735183114626101136015561934545181062554564375161072666182719510822863910473619674949491834749938101686355743985800537841078078598531366387081016516166477489764676893571166321806285349849264265350803825703181532030217480110837023417724774564122988016818256540392833065149236729137279496529522115583035373550894350847365650705347294584967134445421015414536612106416494414636664674422521924296896005590692174095101881951203970595833557946775300220920600490860727195895555941163480965134781521734839104417906029794463693908837660425484401653290363836342957851710666222662216640797493628223972010873162992473231072144289578594874357791979013824846276080139592694063248421510873164215222966497350521537725743613962803527004277235085571191859808425136702082877457599154904232935101456587399588172046922767075248734191063504843973082684599320272539032700214342453232564056547695473426830484854268609317909841676756219704068050368211918994648687468481637780844652752845192554826478698471441248875298065087133198792952784838249716968268105661022257766618544650985022189466012694283376078080273698385366186477876473671006064320048719072243484082771329899125355586747484999643080402988023743811866779199428647167627999186261018253417520761908287725642214277108218542770383702792763384761561990054543929159526944144181748871358226263192831326080782030893625029382694305642379068162170790727345948160273534797633911519195288490134587718250511704601119022429626319832831783341079114689071483547696320568729821520393397244627818617648494216291893079789694892239211475046571148926785130320732202794132693212550264177047758236598534418900128564133345196925384639042742405771207807341920424603386557408522170984366322722104213986004579007718913802869868432370136650744084895649277344095441177166588391352930357379664492742437474074733358673773842929723638845896831311925942838022142312172032484586310926801861080020420081613496509764100665854662361609594696978130261076437710650007905903258897510106849842419545317038450029211275091354219961044685474875753423060519469716241847026707261021570749827598970845217434479827420890311557709073593035782170160109097229531316470928018142669110446496875160466418731515863590745675971049163333905314750077951487425910255650368792132387423395305166037798741839205695988537418049361336582688104097926292196606475664216912703438473462378104110062968599283591105804849130234216698938976739097077713664900501135702622018640438934785017293197573332777834510127861555236197537456258823676612514525898862709896884936380757077589420293647560704921820566861099161798095627045954651144232349907680551499998199042407807910018786620455471070616583456587843634911750749687957128390527803975445194777389250777812841505468548213452617309301916670315858758890261165837144666048840387794024016840205203267635673882939445545455836324597196441412802546951460628916830605137819855807188703136850913231000951712320815921370101485558901899613990773128674482405991754265820153984136699898806664568521504334912443455217567448251286594030251996819417076838030905904578593855018208030413304050973280409797221685091885536852141612222456804881250923781304249493121313964953284695482673626738257005044462103384956764789607430208924006441907892738668789446020222726958567663247470312473806666391927249792975903190196824234721780661743993672734349683876784588282224231358226506012833977799975813540033192687278579567600828496567546756978317114025787565698110689209831300726318442916827723257319338905762466952402449414071080662595975101645372518500924867764179001568193196004720560025929478356756711618590549482916428302790373142138518268929844678675495861664102554693412873499969122207237111006749303441792504516479342067713925355807551117427107676341365777275837252714293077981663033652440470607589973675615378470989651120738470334329341424094315871975483340981700749170859746730420351571306033462305332734308144716325643817882618037608449744005663104556853129665269340075482000383319814503827718127512386233015835317303975730272716790644901550599856271106378706974989249474772272803922728657451051841528058053537392255604988186854578478895243367674295416096538851930875030021588952795270775333259974694149682093527572129887511119679148115471391978801439426676049418391792927319169086248101749528082627435946253295983197343382686979720732321627584246927491115960467483761533887756754737392441013162339124619233086934023582888471557823261752700428766322403867095517028595138945619323048461314712319327345790225680071790153691453534369706814943027076480192775584571869188658822012194179620140164326403464239100101689664407380169430122685697567219973404038657873493711959508814127527604638792295525977222720210089331992302904618978459642962796807381591466349885286407133677781795171694100985005769272547503317709862411517857675357680313746315426599414161955102594535476899571035470320286690930648242927426898725408018211342082396545759804271847428517861114648229973461204349842155758078169865518321966294138028593944701138518916028302494746502853075359404138812338276420716627022466357714882056343809018186915755856068998430238642097205717819383407312474947396299939411767693602476124747229726311704396561032671808911243104671300497466908086602039941284528352548737164016952503409157457215848661487967769092551050402632332366659247112578228236444175687235970046273215041118794171627175841973100710218477851846376744925795308135510481121582229349314318632555549020298962881189151035951264343174993905028015519613459135994617067471032146973828822522565547525949128577470263282099460428832978862515492381392621760530125507384923974072417467228211170597815919682860190046734255856894208882108164207543901742151556829837695352034219871867508358361036297420582784009445659129271748828788952027079489117246729715047761116075997588444093705564036430963250968380972124343981777261900574940229467181283964308447466055404020755337592228000315724222158434531640803299233445327395455746512269750560388152649273255319055358161849408639236902362618206226763735804543883892961935020805155500034429084937371949602264221415844069704759548993331049542279593316870321856670823488655220255887484913726294131756453924230687100388101763660079303393624252472092115517279975306702211928291523483174267701693417086255560637318196340270618680237430473499064162379697991734187216359505894349945588027089954292757999059232145945508264273018252571779835688734538912224059136140875724300237146510618077606054693583943877790001857680691734743875173909101541807801029173718062504738530761795059083657560461710409279424855750307913878113027771105129758741457542039730951562948196867960527096008084989930258694002087443239251205835606123029886752435658082462847618993685315122625293487481378914564354690362034518601928657601351848387389233474228828548161759868120996940871977967339279275187186289377548507773411788949673289649409501169876883874517414939217413492973131433318870231272194784530372706799272189703281292283973909490719857750255757425482378651500405576292649420784413251861893202088606213703880028644321318106278602480968544020181770496790710415380018928914522853938807880485852851572559538545199283131676671028642341523415840592681949529767671192358302517834688840185185427175088752305134285183071201332111667347129678022082932070129723272296478914096959971943473996102399070739013266388761958826005245710091105663387053689945939670404817712464016306826901863702104614288804147844038896385992819872741705401883580143500552011244072873361121633739434964592305815977043947942722873201246084837622419058507407839792735889415593038968813645987505204676486424660511768990841615977885456372115840763818614047416303932853718756416111640500818196673501542270940168026610288069522341505914855498124118090465247050027492072676228871453491437721183952819821694423223584470604574215942223289330273512854572074147542361466144150783548922056437843774732281504719928007304223011459435290216104664246718926314352804876186587943479422033671147363528476163806612810722267975161711878755892207357187694569754592692567042734022088235406669779800586479897514056236417951395704513790450791846176790691856972572667930434024942143785346286632941141064446494942615137394996024433676823600414344878900468170090137868874638540001266643659070483491552721289288009589794326164982265013063002052784949021821151717068856042509655793780619480275288146973360763396448069896895444618597173780799247014706710421179785772546446962784496453453242526620642617555795091390164358375258435135662616939524129928921476184540522818340101191478022773877090695635952257573618462278493497874591223121301889352075616633645733641374376922422258033180943999872732914717571223604680995910596379487575087477420083699547394705279744717971963688202925133547727314793532174647392917013017932382527108537655657819594782507637985305680323924615026080182117414084619184274532673274241296788868456865198551318652462456301169883689907021059094235092321421284040031298571109472675632631574269718046104828471579986285334826411138928270968786631130245814008700766271221782879016437204311065368425539284323879842316579433326171325443710402402573642803619501929336170919681634242121993873854660169484232473369936666428787738200558487832981894028054930877977528726167089586664490684704527891993264611473308067440176306697889645842273710937210657628542551789509132190404819661154561412891196246284810004721672660651421762154613661927195949669587998786585738314394701940959034822443051073922823174217956078766274629861486689431515907793871166664538700680486390542787233390842918682079107593985990649674174399673629615065221703148215696509468002822762097483684627544182858961755922595391771946646793054706877387548682616534834968342123264071733835926519406636007572198081226822252272063830904861980301848131424531236911728116303199253053838096963152176752005163247434223939937879676990576864433293645744628642900820674931590768951759095001272407403656594574591327721193328360988718268887058412683488460804717986111986272081116352257730921711450970377464609746024058710444492290597658503291074753644363505065701267461434342738105536963790039151157774349495794877850909282570402987367660941663865011334623118899065550403595494438362744551418477188531562802233810263997228965869733411455136910558597959765568096424322078495829022429975140753507634427358481070608373296591111961844160403588750713043343874287603418091009498794745972157738972581073562650681057724088399453719959176159447034182549295288727149009908701148412503447812781935551845429007664284852622088800873071806353663495505054880519608096523465093958169279571957141367970393412864892653735420754757345802488766778102585630121453539297770737787308969966973992861775470845508978365781695313097852170226057516024920739429237927132186606161935524335816592789033159768903346210373107936076164380829229192344148082972410377280629549921628714450381707052182209238708380853523038131394265270838288672103259925106112802879975041392234205709084331251933543259644649978770590982636342107476012423907974743390360766835783175236570770765241505241675187949677609618382160418162530019166903373282685080314271219185367268096632604073408922503440672481530540994631668697397265554127369948767164693598584247710153228035819812190257783371526021630595286035168837635921070465164880631031265561519768804598176882815946126166835265764362835651761378720612077748715074050931803643871677247748949068627541015931868294849995645499185129702122175562007528685878408698540436405343778385638187639428210638054684618379132616494288770574463810973305743423020832582663968893988976756770522758077555154965377606979786583950406113132853633792749516022107889037054093924255029835840883532312554496996748589629516491857373218513058680265756225924166355214548863641138814797911981946796050624533573684383556647592752196729428718103275502653537576148047599682407310699193630627544662721301632682931447362491452815465915285223762010286882371419201544990282261807449587663696064435563507711185012219355424055192766273557673189402456423026709778545821609861537693597280068667418642523633836570593781636521764844578467972635640408754580614143869484080237363740217518748551607948350277719189491436759758644851257895207137250262439948019275392548604527925084000469228825586462765727588685737635617544397760025798196761076103405882515047958861096536413141956051021945557473398507311352372734526376348167675004792436219030246477511916729444534510597882219355390725490885653634880402493863582422393752847123738722452304757738785352546365361384601280602299295711513834980875762252480885934129144406608922116616429608427480560268151280501692163748978907169855621278024521539110210481826382845488539225433834982529116876900253033377935083158313890172285545632605197429508313943304698748037128359311892056094535286623063227644653613997498998087405317203899570024110975179987560572811826750216544991083738423135100266996263194954037588740832506360029351882996322560799944552785992041918732715917841527286520514727959302569311169595606248231835066342207871084923966536329546122416483717325040567978359341991173855583643041124441150838925107466604106496371047633673597051398873383365019078400887595025997775264512239811509736129598952821328502292760618078997153269177325888044663271116414984900199387861409117612668130318920492938850034894279898383370206169297316966923540094398089375621967889471218789152714196437672196149823047928154700044341049254731517427089127652056317751475320952939996472395140690114415985541532352993933978722779074198055773771577645025920049803559138950265592102540551674064628531873795139941329436399713552492154357322986409161071841778680613538824919971439558291000864925492114520808070726589145135381715222035697912218431559379847855431208857990836683147197758047697433475545397102500189865260255339769507128156371907965176915308127985914082460364535010437405259786611917427464939269723573164903123178791890801781454430674594082011489103648996640476510781589090456305448197506069973379292021942410462470476183339273126487446710622574766749327496264145524516166214747349004882402953010157180813133850560912517021405610188601966590351329711284060193495156702289139638107211854666138187216138949824932144441252984862397075463735783770302462167113142603240347772184577578705771926078145321552437501114329788950532775410477201066378450831697927414570924842305682920279578690714719194934487597415055341175357943386955817734253689580195489358273391601577637486255186864120959006985746267632141831517359097509692859388907357732717638875644593837416771718990819133739568791083113639878260675117671977554322513041824225395860915635394778718945516760361077164647737971699144619809992458123680243391479000993549201249812247442080076656549304901043620932675764983640859453630917880510648948087900316747300398506429191628771820894908876212080256559800446726684071469789078182577621532292388770707045248277404369767442280406789999462386499832304536060126117909295408251098903291204578051762120736863413377967473732922996506973668293255145651693328525893315427433351745075499911830795673658165126543277311352524417989640293571085172684148258105828547594605471541136881644880236060304860010551858458258542557292284923625430984863314851460862852058013749571103964897027914177275449643872108283978875653541989625479757865870958234217237491947616426892736168857197240849580240270394269394832542695693712753247863496592649668313791486130545729407037392927473377398665628522878944809185365985115311459695761488903484652759810360516574512463075473956175590936178495960098875581535517410149941919326763941401211022427667732276570168195470995992415818127414850626377217182836690597173808716323783456035970724688808790199221324696817394689781300142912617225558744309673957295373844758742105959228121204364676095971844665922374791928312242293790213243477724743063622958629674401892349443927673246228616403092916219221960100248258178376607860031470210827590347007482163285586955302850813145715742348883543476192198352288407066332598647719416197897305063973094701838519794266080260915383159736309287126317285310205932551959442186011826471491077155157528483227261769209762065098755676660312663052008210834815929789922429988315142079824722772232719316694664198991766622177282633859952615689505819130783385165432683356319933029151105823840779068877441475035234697350268379358032667522492227360937495847948005391928436914623293613830021149970169185993324099807048508733586007668491681738961450029086424654866628893687926031708464642119227681016996388105796801346625384473132121713698375352305392097190315751180258071626149822308757739883708307421596592167156253886100950558178514560024944259022968473633007214967405614548099303155747898540019054674029107009985955637511596177231159794534304954918863562011897072979375541057224212983623219458047353445545644655805641530163579926691569422072917278205788950923894659520080749326449330005972493531857909418458361334446506998335486448448866521736257947785031150403747207124998616222636579803952084774344876949407127968913144848277211127326246931464778428136927377799722822804539548009499343313072415519531250831963144763283691479222608856979412170644121916190436465171335699869717119581871678090680059308542635502024406237067832462609131633939825612687444006519687189175572224283563360596063308332249134800262227497881376246314356594542905781158652911580607124739367311508407606545060688240749353493457548946563575686866180343491092339866194677216437693772319524485667567741332731644937099921721698755798779553425493776862646608227345102260966938039983233684625648834007993296487149601440044763937883141157840787093934666686645122932566560238051693835502290573044011076163173111538487553527208049870867553187763058344759132365156937483353745740340280287158654066065810850608941255569813698430836276986359854856514847348088877000302393206994214731516193974962122222006729147305682484714684278586203296783378688834408849363025025374879004219999671723080124903099041588248481466135883207369374505596838422539141621812833979672828246562987404819899386370671960392668445808585205559995936297658649367062949596444956193241151550361899736995823474197034053460484351446432418382957308237877875938627964438281339436670803617313960399823713427083490948719879483153112126025400524044651672520494562803956889325970590004882602823103886567218543698316947267881385341793703658894931881286857088368064069936307916199203703683074945673476424011151689412554560061652958628030936175329541700031517534186154919922257371855452132444816807466628236335702325616120222467622525106122748975933439456061260326247926066648934839828353963476388227642120028448904031697496146261856290415310698751727525199931108730740767578406355252208515977418542713173195685485217647769606385765745406205266166662330271203558782462630747737297376213311713048753543856066347335288344267788380690851415389764158859567298583927218202265079461131881999032578023023492527271887138155579072248660156724143271514695247907533276435432561146631413251867288690569236773190729209987472841655425264139862452500494057728147921040622342498786835795056855751655777307154523069119093996845403050141067946026433553411163247895459497298456295114131503313231683239070351362073707838644530144608061476768568217393110801693644229158117507378809907950144720777129138590759373463215607863316935375793794499521234326589337491382656098822166779584999862433144578380556855556398899597912395497517299068067099310114839170954950946257477678008303620483676755410412394018011749722820267899488885366358619977283455307954039334671677574611990440454419045380462843643001860830205607637602903240797932460296200742666114528734297265313526953779319982509910928622253654954277082391830636060903066406039679861538017367587340179398704455984329324986088184468865344099556707305726164151998758707117874585573047993503335309529996276357201176764065133716876290798326616954188607435505639242737692510084419412871843900952290255472391070826144223074031892829844304841491409819782176064105811868321033695654812317966900495575420796298403913170164325394194529105343335948114945309050812121444332960566859674175716364709188378604023816599924196363661733236371583055637782307342383524799021939753993618167133700085048016754039093186143518051878024630682076402086951319338926905546820295651833517530398979246580729473226251907625481578893927346415774893990587789841715629719050665550940537749804985356277192402385124141725815519759085011130785206538037408408480252074524639353094016983899794887261281476756882801103937229990291373647098801266500916931275845293443522147493820237253193137251246792853132044237224244300911658432865704663705781859048223269043464699891606121922231928501328834157810829842780094220233046853278231376817413097590205163334185959158729257444878497019998646160549234613264100759096586138182738272209971406876454803469883157457592645650117866281666156505549537527093646814690908707563922977260351389450525432763232741382005470074943459374446438831802114721419839707468735047921839588169478222459103402265595766239134874485932491670977485428450985680741167963420265940415633251810774011236780129329303161106796599742884826234633326393039282461991562607614204080768556215675122558455437263828616576907133520852707225750223175109957676217224214291758752913727489765909490622706649354527036713716791728181503385672397046554527911456707285527782371552598978857083626580293738412434703220462451539054585079690768393450564389900051377103698217153514749292847363861595534511206689846397589401009334866726429427583643760631497542975897369828409982118578333252584905910538742210088933923375886641107366622654178281005564834644192170692515880175165850277497121603078997257797706197852156726828733811759473270784405199249417024458314183441013216354895303854877117752005388809349363630040914879956202512330385129405680142173901628864286240791536597548711144684117753497318868915610964349478369387391424234220497941948037125267390195756345717993483482026939696959350565572670363627922220146666752250312949666192425471673836394297932653404391018303355219731095991901841200869984578735199604020049484290634586618569821200394319540763961639487505264207212805834512101625924233494319955809055750488417699805878179277311258759739329316308885243121705118238796143436388801443379653683707132708617364795819453482864360594664514775313030142066040854162339057757996229905996855204356736102314102313679430233961553699719932470576727531739952232951516535757077229576312178437129275400521696732593457512463228226841299396877228238937315026235437699564308866711585101865334300670965465961295970426869404690637729141007612289315471004701987155904646580974916104459225358274966689737174437030134887843374685546092803560272095154844632203052186506266467181132986844084049174383618814797933419848250910429270826682778928659033773295887271840106571865118680598589123747836171246247463616790820874942540910833070993760835150296431032927101507220256957766707469269691460816454105363242381043199508484925230840009219781390133408912690698235748634021413861679500777280799058550333261767344375175993397599487635005525170681582795230599380982775002417021797883394231733485527743577156891764585808045647892292182418964959453386487615305088598738217415651819705252511046434690721727523867947418354476710404784787970647268836555375475408934434485441992715585231897929677007772225914229256225453936753375989017063588175760497638826054731111777181331106409878762560540935898716713129746828355352654535640521030950172145005061543613915818822756462373155442186358690087092511223903081622869564737645496170720708045487428289743317503645325098611156197083363006420467024493317127748810302022184452451303417556574759729749128955637346074811764240671219353746546259689492605708532045485447320783161109669045519044180417206839581967609594574786911265975143031147660083759003338328179299395932662360026380454464257943508891301910039965556991047595666385805729204803717656715400631511169627224277805440254507498001332892785291975859595856886403084629638254598616616782882768615987545331948635316837546744812369753002626465856336323269148186932451695867855667360354385334508616999219237199157413327935502498347914371012386036019816043237226230550759233129149046247587923116031987977420860442293309181631196729623965549464791404030608733512095175534347776737376513983766252368499675448062690547859880257465851690844310038523789911067727404669385023958745702405661150137287995484250278073570625296051675606578867570520626332420777056569847240591675830608372420339073090752988542580023079880105905687026705913034247155069210769467235576959180262465282259059456088647561136878133201896056401975666347307714619824991346634998865679156066245202673884180184505252469412900540107003833675580567388799911297499296586941064611106629679181111292583154704554280574436802194046196638132168567217051464251727490992692195243195124417446239682853471973679021293515506869247297397492775644789719192565550998187439711168203162592823795761817271019712131126569491769671949073180055796330112512711818959261014753943243671784724474080252116993589761900636086184585058147480705706402528603218377407561910624410646876462456645915538822011432525180844032453246009746682639301455469853240572905840745836361604270003119359287520737022781329642660415932647908338814421987764619384977321003155944865917575482150446308765932166861567536285458908461640085495727399242967701996068005827381573402185399968679320356527297988776682653043539354662235934695074882463250222131362947412963553586067526893137933222425973249267622024664848783737438191164162405366602760826379093190642586432495110754595449814153121413948435385662675364473244135938392035397290696786148570076831637588186466328932746248881890597645979568795923362125696676647880586596323316046784883532557525822528877517034284610361729892717940597714024346009942012817811841685198869616195797585456228912565415364190849539420145179256881968718720506802289190921274255516571194167413057530618625985896379081948993556948417060841829999094328499175711461662924206845106021533749169711093488256207548011573928287878242506125275816477984576185853355713712634878439461965779980784110401320536658178026878326017161791074475871917575565305858525853993174077616608641212549892453715176998237970573207890574041972851434369634673575459982742533109853209218982428925741502641683239083431434736297081758063130539769416069891809460359550908707002411679735798933013406478149431829982866297273647655850331025178193557861194156203799693286868002560953687209846452278792198527918012077773760706525345240045435398035747946286535268359928601483011219182863593467648648883534775676682307550857449956220844017531071749489920409545548785819378308531694363959801905859309933390940744928938935168000249724169089331544532475179095454616945052582423157365106961707677248891600951732445069921871946805597033449260799948359929335660133423637542768577647760173286474840546807645073141742103948982005702257931585220289755612224496579461731009390007802616839992514136021234410387752213526485945643917998779753705490989768982546634106105210728520223078203039162848735737155830723950117115262660109237299347003869627994744780201454761101550064830169615814728246932306684160926320429052469379224398444749058123736181511435803284415866642786302890115612363048226488676420577132838398931088277106192021716235131622276092083566470917981146443490136144166561460045796102779513411524168084640017055540130210533507825574896439885788243405043138129058654670758101586221940703975215242043432719769771083298534305341241771523540177839140073378990435361654132730727353696526058940927840090305678986485004036898200382688008894500015969140966433063384422440511942945834710843897279441624306151655528575209453414683121016104386358734612737704918010342431734625977997048970450223392035691026248404304732363114439101963604131436643434047064497395752014123036400858443819225707928890017191736264185089361087773093042189244714218666308708547093349240618012359125710738051490464972721499560249787628161092054931643616665275885620512375581462173836217344854576964894708865636842754468001292065883842381797763510531810210536173711197572653303391781208969214269474626489065401109915415831256790756772505264680055631169139534070222214052147983351688203439696273417675419112402092041625364818566903425859045911975941201249454479800836512059940431864703436337292792652382014669068280978568370524800831682256159042302723962369485988925826965996404361990895791781681506627978526205041019247726472725538632418848597523073444958497837186027326513744141343709939013651427206664514074930911459869782028422977833073497187270146209682495831389257030685248201118030735949846620887392592212596226820381764769846776734021280202573725272447723460829389213402133497986186498197733887133279488572380648191302222706539601233346880722528910960448128479919712158337289950636728625712916101913204931661623937872727063202954160810589313720801239328336079113174758285391857222560641876541051743220640819748013664015193618121612013488892101359455707612831223184784116011993066890518158894353392240989117283459564256737988027808145460357483719235509915435144041821066381841274325969555392349928396052400483375396064034960986484667042277570905950208669433258067041082118627462239483329236829404390746060665005755783823312288140554758931045711675429508251873946258975751425384164088158818443983518735404921854463255326988512251280648039598563690624199205197721729987630313227648353648918355503185758571850266308711099026777200585086689370167678171788300723090001620681562899436675102405295315745927202242579198103463101672183127361331211556910183719124488335909997213276295303017768645186696334712627894663832229188183447117522577561273903708240282045451719512392680311274936099462793158051925999987202831666149861191653379159796107828167921768433924473285890801749237914336452072262935772048934088373637475512443208061549070677991451135606621086248026046214613008052164516927090834886839868918899055814063430612693524305783431010737281081659103297607184084295725248823727402634577238938975158347848100392056081962988855342501509248346968536233999894803623082998397732822731250346883329002910736086414651174985345858230493772025888709206236837924197742887683466245018205392688513159548089784411763586595853470188245052905734130496241932150618333390208415039562161340146098479137759902893302220414615390829449637943607707338605006929676824465935302004810440678223237089510114912052704675863197973694187401442913436449479082755392586651607596378185677706375879818420128449308146629489099960072277805969141246215198912694247519011269019921166740665025391899928658667699871236459673965213096240877860082394727563420013585089252223626959103115537324097025963886464650030937303073680226042219368016754684655135605922304013618407659025202452597828062778919304377192321002477037900016089424386071716739975535065421437328112345680401615891440233333977579433270622593105722610980798114629279049704721730333761368246150398672094264314516686600070536417334745368512514229413376330824547296485679285120885769249197493500699745281144903588156536762840895617713287703369681959072886994095428489924218717417947859391867244993869491782946144225921497540035789084996193110077822061081488061257068601666470325809118952831512560021404688167850735447808275800807468778676820126185283157182475749884774454996253152959209491189220082213683492665472246494086168638453462162318003188786836792144009455084482457118914526038637315561856157988764858446585258954700091881972363967786354586411035059603215461862446355336798448148952199301952534397034334195036474049465371450790159133995243497490712319336655828537801811169081453315718793649977612628022996311742658785200412101148403193551552572729865414847068951275792012386554643977947575660662626298829704199450355215870132779587663915228482693312008872813942523770866744926118495803064654604851041392662193469913821184255717966641677079516648467238227761784096859091115352724971109184836651554175637755246574295814106152807369333134299795013700909874178884860528310225167690895049172703925866805514467419458294404428710595492024036033835698559080843240811698349022234352175087541494238888980754962925503118291515599917903301602255007062091831402830285231816833459947083224199838100041953863905604004544221859506591577409334611112431225284541497495371826949506521211154405030185659216719146484526281161642379102465375633189373326096593700544265599711902232267909899180912418190238248042328114162215216834386576335526527367902399656836384209615567623561578008521009069122920683829671227068653029631190756468549733629512431073003977563170209351598325838491581627807171626885206663749945983117763381033308681138070322090212537121598612955518988069143022208312240460818166102613581857029234211882852494681580630915607480209879415828081020093994366849984542579963022001347255671623482016498988169745590469407923430068925879601032117808848255751610443567645603319934817118330517967112224581373744252065673182270966882976323754677590557639381127774163568043586567247809686685966714455422083081935349447241767893025017908131797070022509340204217489096155945645757958090355577251908939114793920471029701755591667146279165012359339089858775096325377410119773708422887256227595886872355652375227906878224043497114770609088171216274745115040868264835694807921169059503670464022093760936491315264278508604622852064668236458059559702751633454112800643393537678325683914555381298218922356076909528935853090512990279855622086338736251585384148728819618094537362287423330934877618265491698874860401660596533531535724818225647996732044724662224381501837248142797190665769527632149837681616014002032929084087599187640951481419107471362077734048652691253819395362155175846310141830647127984849927942942635599347595789653454561436935320651863142353712686855881467441956826963114112984360427373330222881932894308443445715914648880026186540593977963191076372606165428120239110741003090723106533412404644444784382411445016569889868101995540961848551316627537265710923692751498302666065994545053782749964461577763636268180860111373235131602580545832343627264430147469306559463490872568580679939435649602391116847999872418460630696193234471945767970570188254418063911269916909562955014745701381304894954979719727373947858896088822734852320831542571005098771236171899981307497126065365281897029099811569118991253704176242921163040752379233916109138321241817584370946617942262745372895757670057303605034550690761677343690765218864857870666089972611705116869395033051440399916078892731278325907381215763955166686192414367679483682582415131200473598406632097288528387590737562477518368955094750249276758145313564141057902704216749954011288952349907241841470891370244301232868055018820491951276212920575467915199304784963885859434653195775829834067393905914530989073029313732424520139051191432174950354637679248220106328835018224164759616416315463849743269111415227554726078908454798281338267139601287322912974789773611452152142715245844143054228923819225149126376245876677071697841942246910337817388852653911495300740220602773530006519253802279628882410575869175080508025104974748783554011567708561228661036053871002802813415826228691171174735468131883490325728535016508657043108909263032924802054195954820554917801478749611516394475191703596452028668968563871846250085025130536265580373157220465301417058963040150816485447797679228541384089387623084457636727669812349421723784975607539607051214762721458616399546316960491553835712732330875703748963623363644416373411626387068229279314583861565764792714456899410775773245570078665732233148283150559626370411436207882341697394739211353806627953598973316389617777425104342112979788264858865359589794553313249185381899717481803545266039566419770435882747542101060494572144735749735143940943583569802859273167955819668544835694170333459126778546872884355938395464798446265678491824760048414494943547629635720240068815112761968900898818223210935777812743401740183836841887269199117042208386189055443379599222381523914524994806507699158298951668684040464598732657686927113330870675711851183871299086698730715722241192474720285602871241525855799209750426138816353554016555171616824143773425339109273367559549876728739068843583750680460790336097384134678427768356703237266115089961599504624331096499507536714928677782770659417577418631838629503756754813091870038569534674650165781584110263209993541273621404025191974635056809260869424518866348564240273791882573818784029032616187267573689107131851242953756283568545021665506388110577920831291242526735933131654516358755248023289063175068783921134471439909414627675261238909827702829220349276069842442059536977153611575675152224024645750841430513012143966117388339238451523526531271812134739377793742073772009486135886540982101568903499231604568730528888572408515888970047081852235977503063993140892662639627387685505288999424832614421867627583002582576609218767018174955755380273492328990413731619990928198808094517390567383095391942654959436659355616735152967856318710966736983864303974680603362519569556839539395494532466277197826288986060983580146012021805946270510750505963276570868070668705725567061397361754698615611958307442462239435167120707983211189196146485097418076723667260289337944845216743911770514158614577223338218292999995977365317368684652449819401953702171761750244603955887197868975971775464253853692315532774976806363715774089411752698389671589534042303347874096410935388546009614861951392097040082704800197738148114398569847348240914238567725226900007359971602443888526061852364934542070028557095965002227951679015304265737300364253539896344155606659895160960536036031327987899736834727576615546749685486776778522964322323305729179389101909460656581725970907123915147184389161728616698854668786159840243112224867391555871324772012199789112999514048524285685599926716565876721312292635128439900029444858734689710790944165310145479298012215395925229842476664756386477540032338923033486768328834262030198909086868668288197577848467362657085557417145967717266364992549531589231852673747499315054930680443541302842424542328820824223283044973945523648596330316638760125023260699079724137027935462944369488744825790143861551418222772047924781307813267008481549140786048153479890453310958135597738687842966768280956200779372051686500071047793971661933277498604256043038936488958238031006261998375086491601855265998764237372519353546747827931988060630915207694446546529689510758844771739212811336025231341122028928972192457625893830881279102620358701628092282328888036082020752540173473712510671395638350139468405784375541086683514150054522293410132158654897481905570466098914893868543864206188754361074927707157931488876289162130698481755130556553042826226292528253290331475661608518086104957142418583493149095238580204906225626782531794336948559363979210821580924488179107606591673759594825179746819450163534180967513672771671902899046650822762933830746705668294312909144706367622628270486431876134211779004246651746794453572553417730611647341309657473916467697499557484731949904227434711754717958292760326509541045837950461518556544611960554635103846685579312389530459780058513439092705224878485346080587837975746285178852167395975933424398005766275736812793950897179809285009671485153814950970020998029286446666842913948174095057665883089869472656690668334008795101845965706362935796129930886006965434149905202150967211409746651406763320540761978520311733576871447259692272643683637797225155970652728170381389026162308940171561187373736010581080794694429900379743913069667740204574066315130757678338684523191816324124232139487316756779401410177142734961595331330048325806733195857314737450729910273574341877613424556607718330007850773700503419231260053325492265698698938221757866900256082128778789101557018464758301502006284505516509323012809019139117881417678270025357357318180339776740950314363495835772164398055205764882618699196130665951257235142553923231436964312864780141267201285311944012090410557937320722217190731186341267601839988503796557934639907777295292194044658647520781440879255947974086022938687790616390870555139562311919495306176124104315217817111448839998649256268544967118989726310217005936804910581388883026582524484533185057275977274135261995570689515986202977777233840503010807069707120478303378779543129260552066064284773773147623620344317693255535405549415396488554832579821678095578523495059392075576571219630079059846783830849812504946217332494125282100960967070642669959926627740781989293841691410800528652250022881683498318965227428194800985679870953953486126657913761327729557716609204318935559207911536480439749831148408571602013711654429331848929957660932611402021760041704038995294710671211653114909267730209915916200480283138850700883468208203507264790097745219375339009615020706955123308503122328617555671964369348651127626004577749854936769494649339209456653192588327595579085854131775944778261215455573717717823090579349527910178445748381362878341377069088763756010506556078628439873080805062360500231074051884890968563596031078745105508072446111970653538657186925821414450385048900077597104389523508832938099122700886295531468111945793603391193480852613361280938919441620793501613358571016798025175532839300840113794463748793116960203293451036006681709528236065794841714141425293480071561385304282263106383787749182009610107891532368859471308148273217648067982633781033938317160789576085383135542833661215895324563293390750707844191906168885768522682611847785334751547414395914033706719508420758899333939734919546738417568390314290128415045523960956661175754660051332814626843487099384928993983267857216747847320601994332863173453437530874419788858248874727315205924594086444137320269854270895278204577910123289593659422483418499724400018307640411002726593941429311224199812203309822783580471254434696403758052226856570660436059067495571037188632519716476419162920050109358000669906060231732664632755426003421349589144624812474676684248155348057297046572638159065717767193649829123567323080848164744702297767324679793590229012943642644281260574016253163187956871616628567805335162067587465604219783839459379242835702720860582636559862863088564714042519047837106969231548628421742189080846447295375696279199397212778267519996965586988782967413041548122438877737415848512122696896507749652894346621172338942254690800745128041977606201090540386343157054598128546133111071304316166145152591427939472312220393835927925257255618357791325687034714280354655780016972990927392145941373590495576532207079920165907813568490667328591014377232954146340914112204164965122164756294559113776315227107410294455055769451024063929919556988648188548132693478243940355641046583973751786806286024645303877324386393739880979275779914926041192772340280009311538779139699250992245448532170055030275791048414921581758536707642494153178581054087994246910674018339423550994837430196152720587728733033877026799527602208656920724530863605766882784272064056085818850328614661426889816441290697239942034972823377809651761028488595723699086321386542699200559042453709981279788703793325228425234162372274210186268838726264799712108982904142187706895072308423197937181777044010814876766897871358606012368169809990817074185619722360568665192153593369172265488037714764029697256049168722775206206679315714747886044775399233323440064537210503355402366648763137589094358560223384889946887180517024687498283073666287423696454621968687332736470109405054258602618031723856813088144073006804788410392034155024325485984538295254944071576766855757374422515674111768140143664532690644258625416350360872397428324512916663331032719181706321106989548470651922076674686643059118647046574267460882429997295791958590334956209968408082791845328711849433906998187630990860363163608750251678222803046672824527242211555873775504640452828510191178473071790706053828418373151200693743460187461501792161087113676532324533115858151858327542458167273884918864500097851315988287218457702315155887014478483700475457685244411942700937982727417220455859695501014071527423696378128038790364510474336277633158917141897965265235726638696724772418518143058640495833414248968218357543601824699006263784803511332248137768698742336614828984663454742896553812828872561729058156097837307387307823043974913423176488989398802756869398260521744364054614537287328863866077218365394502751595103603108657217962571582031842002735205517682928941681251939028276058073205744049520171705428976847551312043753121606645141969371238036936400076909900831537488987733621971258227692295607205213133831465541452561550447373691422089586941712665958621702958338571469181713074859730861934728392470802743885778606659679017696765054022238982128339272349084290994663234317145982111569662069107755052378365043987740651726380011037938233405735948619428284002238790370195040492307117561756044191279531023670345771351056346674356651421704510142781232994557504486101996588798789938409046806421906141003304879926805142267325200120077209181166084520312019817891113657363547443119085248812144544717511033998819669923271658686595194663783868847559743265346894510580780960863457098712478921892150019061811817741068597843475105304189324467099190441308662144454633670929763200996859927489207888595248805573726002479622944829077206901471231128580752469405722950566829331601138974635539347051090952816215716936074811229308300457046542603899773159692565431480822748124881584302182403213413226363816745539265961068264622025101618073955440147502157622337126499145514720416170958304994483619716983382591004994577445098565111621550426832345570187252845021682305201025420305746296795466466956549188465016095630924747381473904505682768875868611045221451639399460834287381822371866043775775292447332145059532519332103456566441835178558420339744386102346994297243516723433388122257638126861528868966487220553847279306080148414758040660299002260601879175239045223130825851776694646669076917993825816378200281417584176737569343801324415629428114559091560634779424674532270084561582197373844837413690540278036524692608483622973123282058472297676581110039909380905397825006207332444081091472073525126007117099553626444444186803724340352469279886356172847071537314335807262044475536992859749718188042344944547347506487988271949076646113623936250005385501876668927520550615381543082001616683719268593799956552744030676884424684915498643467202811311864046225595911022183248785378048714773186718169824202334622118532268412260583221100978630818399804449854889492310175960299200801039917936302993876250784882629901929784277053796251008723749527847843256471457520132760474888393163664358968413488043162476955658900750769820099545338550242833517275064520241933005936422060016381071860408008119971973700385287950524499564074153410131922196169303937507398222364643041589416828268680818981000570563866470879761077639103649378645683135275549454683749843430119532847420942327404272942838362774794004313089443571448806565432468844820307263568798643727835328153660195515361653147526968708516514626287161018823459804117030164934122731664033908957865775309152548371648407968303728180138880028381438739363577271659006709911143535909750027646462069503222045887923389014499588985412464522127706175942456594157384823029670959221108428166116913177736264825218069726398398546596210844372810166126203973568141963936002995840519477391567946867846242463674636886336161008002595042043737132725786722255857005736911363723345268116230222127095022141517770445441305965796401742513067872382138369983424661532508612785764814560788955014294475437951039834632501927516066311560796901239193783742724133136931668223924952430211392891598941818130344223777691065727140436942580309475386489271221368201484907190183521934030305158252182507619456922472071251267030655913018593471205286376034711520768807402431651994912530037416901690684411669398789957092623390951900723372303316532837618310530773440812151269723944788665137159381051881956841126291957390753301692843693755106912006811645262160228217661549783955121597067967478589289004104745595880785134108665225081663716307178923444898045902100672366629521651304916833712061256285548313024391933850865140877027688825302610194772524471785630562636472847762264398934158963135636994103238493981964644275388740019307268312572298182760799592691847206277319795652613962028082003884636723174219715766969568969026688922071634297697271105442173818936714833751779535740829039204887716289806717126526468472884174519775324356247539858614095806002740974912165788557117877917011397459353498016766948788424020947385837176156145821651141860965315779527741536505771731227602075193118066220562903760967481575272301003268878840802609238000412829731941188283427251176375103025970683845062788816173953831981144395441209973077672116593868458127620909131740002760373668448596662657767307045333803316597525831981000173740014218109612278527238373034779884255706128911764641481533113348634838112732518020811355431823046285287084163291445729212557227117166146100665595584127660127068645310865457335438128221934669119452808376092859208936310261030598957565639768608133724797875741737034930787509246918416836187498040677264417222178595639198141883257149819902976659914313857349621807816584896813493443724380446892348111608298129917234429485111070099651068774733161654310050241249040313972757313968850416381448086657072762282391043359887608396344729844623213188458530450167291343837618621694796998735401568453576378264995690449046083406769328838871093690091446062617192939893595089730858215479166862963842884036006242512950988041323200448135129957378535648824104143115354538767199271049389533129326493165065166287351837703869295894835399682452475252384889833563987213017732368336610654198652591320725117892807256225725055380062417890588945759144837873879475142964741265760561514853638990343982476107527493525368774409268150607296561935714439570101162869447326709931421055749435109989652815470372335094873104741121433121770500841296131890235253074354091768032385920551734327149198231408620421681432004730488697036864831372299162308591941762613957157306494787858302854825112066354809025296947645240876547635822390506142363203158301086672838720868573869383077728282312998494612348177530449359543539054576148118161856210982625921350724507423028565225458236085223874124189222147293224023553845842756754936924284967554785375914734194437350760340912663841157154436657802605544309238355924225949989499887160166622469158867034040020012068658154340868353758898037989899693244661449202975597222327668411474185497472251231292900108786615528555844931881618351601846054620897048230104369447794280314073767698023874163816491641483726604458941352053165298782721581272159983669613146157019352388324054291351316212544164707066252113607386750587710753592270286422440709794646731692132095553628605178406024927693956147182298791303428400062847312864712732268502883292504280095981994100789777393807165929276863734963115271840822528075723717996184483323359834668349331964221849443520284557623689130988916420571150070406134111041385085565363520256797254796321046696947352935537849032566692353727074807495894381102163050926260896635114147224736945722729524496396209888185929394919209030211257247758323908968600896874673238654545093933785119080787565352581985145602915467632672195677941642898449179820653382106796278118045041472679887716111414383825648670662664291508507267377329047953803834167738148844528440361234146016850581242709062610474592079023097067504280270706937286291487781072912727494323022866053971825181081746468252823306993493734400263218365935620360542596408467962115371467706126457468775253292963447645910310348377271199250104235327629768329661341550601184196610600563380157521713687146623525257983790774548100063876411110516457074048949745461093122393269673090591663862221805842890280596905703233265732980838498114477216565679530339969939304869959524472202982834467922265702539107073948929799186922961317256128943360385926311711866641507206058971214490996763553192658296550970607216650562635087390105981151846129687638724991348968559810007546031749362658924225493281877937152897484881344600848798554492871934328017913804417932332630545094211858061918911505377966989559183304190073497982544735078971361520905103311036555985660581262938531522173491545298895968571230760026893845273857010784359606322329200874402628175626670201411603792038467275535338530514901444012516567163546268042528010120080862494931642206483012314305164244086307019699899261871765074056528060661474503531367733597727467833801641188891943165289914636108813589900130693601168095010373800634256198790650156266072550970181389911237572406359795349394835017896724827709607511788403348190584634739315215699809895186090132669895972668857073120457740440783645428702657933662999301924260467038917695573080198155551844315393871612470874173740401454505008409149776642555653378407105983081327168639751011181716704636346494923077190952201956068887857459217973193098331935245786916512991225328579760785614564905846212303045098639877973270093715703236548905418451329779526501893771603435996710566174677719927152598544181322253202856392206226039059329707942395198361527320286044645733134322670783131593272207909462704028053132910791552046445228707677570103705147919077995866973585342186656552730198175785700665935944705373382624302418681017763832683093542530713242409111479916668669455614121649653959867179179626379484290522657056711667557528385866894433180963590034912414652258180456382698429385144643249258818255065052504524917200350530226587196809698312482357396316465098567406253516029476588516736428053601787681296163646095306806133110278221770619763940995676924009199827103181244358692829237818025355923453757181392594227069574330581920839267079720848890560122962393320315002058588339843966273740128657448572349626104631636782643097724061820034246979441498597034468786513497365325714131753547924979469563184168993354412104934413452510049951891888538457232140284357375991607945361093151890042865625818194975527058426483283797427936804419826260445435040025508832870676783963377727437672316046469399847675748152534658774796882798241827277998925364766964371043274172167760036888306028433518361299565361930228508042228414051670718582342038731209092092475488226094177072345660254852301641860958357357237490996835623297241764202411475049802779920109652233901767762583554373764433406570450222641509154897039568313262807792633930439319300264073075841855667205350039038446032072010800868774211601165487057442060266183182619312027144537789698396472445646589325343220322313425188312815298570479442010797584414072085174574028822832960042233907605436792766732148080828603099591516943232211677777776522537203067914310943144513627675115423723078891187013437853925768524853944012808874427762039407272334175957696236109998285996593210409834547969332867687337638323976991576558407767175842750806551069881303040365527277446156697922147340452718361504929341046699176129245014022810715507475017691639190653417679192804208710544471312431603316523608608316664652761110612062521574276815555047845126033504400266655532144693626949953157024627281049306113138491866593038486185719805197532566737682871975300225645230044268920481806255267669484312979828322469530796128545989575695767381578601313230062312852026798980359747160834590724689033766003232064461026097548489264562920798688077259622415537839474874046898056516565403290360427244367798224884483036852216933629575685080135377420115907095513021186235511528752443745085365179325639538714933874616669231710764581720826131797603254881104741578641041534462966524823270095781544696946780830323238446659554503083692182996875627286803896560429015724547238810043983708613314052339607821111804052249423599734287065368076737594223428698811101815271586968222314798414936160261089028485981101097481103583628262498876778752346472296151930135169997952893963398779946475715976387150202333176966351344442970903797798836808616411962255655635400654658298430313870203364177509623152221744985280436923120856007513918184814480361532673362011999487028087484513373984539841805218586431736628631131730002039643928573200834137449565584717323517931802172180570443092453160307491111415301323089724398530451400718099438042589650358225061837237687969717651138737463223405243432737309887072618368135269976669094602558975270074488755050491372002873398694337059669831540575162080626255577877386349156756919537230164277491225298728323675361320275760211526558195100747417748407800818861520766441078927578654932840115564872414369877302415617218137332932362841218127442240611980622503514987824997603657754146261090261054051564770400284565623318797315364062872017790878901430578897653748087493686108596907852837838190648272215970442216410628286159712976122824566073700490201450760764725653116215638840175536981509665209248770858696470485461990923299930673959605124691978264491125526844637399681297171191899922585980599020547845621493206033832784306364333248029053200605327167335163976052165810087038470549489193935062284339258026294778940977691057647699970964201221849721161159683078898287157499993573456442456026076983796368472507933202344764811890937539594693424355249841631487234894878948946281684093956443527746939894205403591273177473961585830932292451900133820422909038941594652107891527611548651988534325577895716956012665676975329725352117730955476499426561790722530688267472069590620964556742882336058331418224921223765046546619045336067127236526394162514940463159144856845832185283803712665131726463604128774337742480622466589864227975839686886587668035868411312436194127265715255768449437054104121888498365697768383637631930761606786559751112730185560209079038060588736006821946596147205994367211143558918039021830745801159989291745611927403979454926303261775950309099454744327837217001191916222405503933446671515891968885415336245283210614261017064199159442493042535207314732471105956925610856239772075836935278848508716071028493459042523860225843934811157107059662151262996217387455217263998318678234245606309417798378730481339872665093775403689962181895985872359152082689117304651701618128398359378900396039436895885739637456996355121074412977678276449308567865382427988089479318001329681659958293481566960583361975688798631877850515057083404962978727040296948006825557319864949434736057788094983092016374803171814569177730520781860296878214039841201726869406716208575494747320367467799171117726733359421472846656858839007438469341133919952456193835430980067027007117304489538308734476102662235525350087197492118609389376608342818376006428063667919536661202892644930977703930223237199659139191149611680985874993179618271255281690353351327872944264224767835299393496758959106635793179647049010806717845763719113315273993335134142096403090201054093312798051891408222861662899111815562566575855779679981009271091592457453095891676183431520846249260665908314725326651305740246824696618426181471537499454192374667167020644302532155728245304620555647222707079082051401919988120337490979903543982059647959194970551907375949728515459259501404318830127595284423052455505917640094901000230491006081473488066756444365396980291831991884921551051171398304915706885613807555764831624733954492716802959102489776758172658566516042352966821693606776946082894101194535179255193804571373530753339757243243531010291512168942097001105403518290883402650968076745671572025333522275693568164090947304245108210911076880102235920080036645183410400857283086628143177204169388198450421132825317418529402838374860267188750812297948944743590762896986583329141515242496992802187436856484023125743535389616582202869834318179591248628569481722529109648637793984638670465440807992617286233881645325158282132774277055067058083212676187017567632392603564865958868474243681260451508194318615610829101603773999374283812489201545460518762661131297799958945772361633406655879586599900182013258468424023337558702781145353839795564998729987168438876921378977634788846681866558120074096114482231050994846268922698570270012868383281671365728635871155673599519605084363918354670252462933409611733879900699520701514900353427952282007016943931688139158771352087468980062696577881133798573967924731597519407116481469499348247280369428775306724141127281325157623667607303032139390785040073122381975748947672034153306498063213434831589528856829620252095393291221097111004172231722306158380791417176925682802139729403555453262626266358383876832390276904216235240694469611318153523881931823111204308903542559592563931844911094261963733610044930760501671909520280445629859058085124299883987779419557515775755789548594161977586519769775013389591122684570763841002963687071068013201115652606447675422229547255352314420845022722654507816778836638302831005881248540248040508384471112624950504444229774416913809583282782279772973742345221551424203164297559041160918966864915283568587498861019361102860545986158758565527550408557985761396025132464640886766312134348411849424095383081749341859829620529055531019036084231189722493075129736425023396354501721754296527819155135439009602833809514885995953472004470708628512035661093615189968203124550636854318237874520762669176276981930404945900637389595481010190816984188799897478941049032478730580745839890933181029792272970876052136593459825457573230866923763901356808129604306032536540845329742145612203914067543493608631772780412245661788406355315901333241818411039875463188330298829101964082729037406018760167343462178105181752672630153823293566352764536038695384996246442028390484089426552987002768665567408973324404356804472405604057831280332844392463156024894781550040746624547427512758359743099719224167677654301066458712208472299554227836530743725131166539792203580609204524196461785133453508253160610862829113557721289247935243221673121877996713978904157517282275358098452683921735752096584209641872864164261617350541517449378045370475087837934581560437270664613419608687173476641722503041994681692466531342673541574378239377706425543491240592427002873169963077343298637599603758806091284112173855677845641032753029384784876597352842856742920030206300384389448936816788985291399924451797508302961333494925301406610758279003250607976786184541491146322527101224475810599645327097224439904995329248253943496248782691144610009359342803914953153461458275931954432741838534995222515364527240176388488712996105392565432631283862459425344273016009652009777446351078006518598755840007671799478828264326583305882965150775342491142231912511352188345788164918628118308648906233455194445613141070366512862546987160191865628140479848418943327607620153158899058132884956390993715926215575463019337032485799642370407605571662209873562921919444589253015368182300220391985262414734994557920365469030277731701933178314598574165500956931975711107794752168431659419167460008440172590212498016375809766448522149209277299418461566838531105594884006365755365983534825781823839165909166874250380104928486810383092928432722569539551699878074670939478949300330611480437935449294833987443717481042280673320743239108836363027399528629652599910269493310191265648908396072835446228043905142106156172904346099319002660880851532803171628938962474976914421636130350427131017470958071727862447200997115293928579275819831382691726163795690784789444735076517015999016918564722692635513944688679615161201692716477480156272872290494590369001649492167129146510479701786697964269251645645654280005279903202961644275697421485896014702683888705613686896045218199847563252330188508461968738493840286304642297700437981115316563396709324077087093345258564543267379099961428492463406205630613791694950872383329502312194731560240250000875650944620035939428882670023480635809121191091966647233461451856605009267182959928791430783889490075318958370145841956635664295058215368156856361490209369906703365778779430754898897282914298485088584412228784107071242496253180157148012704454675264077439184857941461540944186434388152615541526389230115886539190533795719749964176604508736268906610686331046664939187406486456744992739262654885698090887380167805455733043323660076733637239090377825457662776094321790394306586374363686357508225843388125159608304629635860268269075247182904319863374207042327262543959648458259113889497786686668864874134991482922259182390543497747675025041841137298898072674836200211396072486333367377450220503173212710430663369233148768781414097589141078378551474729866651728909165888742894745522351834529381799969879143607159275845428832617874043594020846340595021023460972850141343442412492029033831509088353266391503024959548019779982709271546081952452691520175092009138484180593169320511186467980086459721164003552587628237466717648255121830573676108279523413642821346638511190189093355975903050094859749728146919759859834407283827496284560091211547447580133733740820228274712535306244832571500085709489235590579969981892011817611950606566656166645488294502744961723551316036154926391077006906099242205090666839504326718455600443302711828386259130185394569330602170924723949278551466057435451793921810598772329275271742770071573619873863606036883253347572182554593930729042976963236614341844140033507295390542653229757892907937875718488822518541490441813566974119554979895375945619198157933868411181959370746552838264946913169966547564198965002635537327066077757016555903703151801418645683104669805358748200366717247801190773737848014816174611339941478386253256039876306236670634049327604799152899666446466130971618930749781406524730071948486823072090145574004308956993101446921207726078818430574633871971433223925229813912079887786463738418736572765953210498791438710253182899799265569240561616138038412386183369875482447854857761675891551128856373145353557602830103099568956270608200786739086082634493819516700509020956945409823166589810065486670968774832239833040183096388611422240395786340922910849360890032491111847546184998681647819654938502968828292102098048196247045621451259775004846899000707645827268339721281648856311178608222959675616550193588971645099455659451829791049077039446585572619779869041411412921165782371480782365667185429729346678819910725100385988944586407777963671430506144556557715906739567684167102184872468012045065780904092011304704093192498939501219602004097105669736589187361864608194240537641903461135384780413757487748291435784027012284612904602456741663851488451821206237552949238530006460861116568390113020835930194907127452105247481945630406214830238197618062644353898667715059224890809419428658866793436759642631530332918592927812475847537469786566972446437419780136063818387145679992752801972470440506624414081038318647661125319339077881757702917910333258142100698010917328811325449479171054341335792911379986051692645295961057859474735453050029353885237065501231176326053212453666133941393891571816966269686746299748413676325578485667251776701801516858213419181570812723283367966160412859669322533876149957556318826983335679869674881025812550248261061451842628505647701672248278697198142040916670975217784596659731668000444618843558637991895765740064134584604349333433495289579586104802252067738090041538599125119207349064795036505944533516302393700522772756186072472140993420296129564761294650602927561601265596029715621413706537041065275271051518237641039987833641758186993127131971760101427777196005810380687437847001540586079488038800808593821340944085048741818279685538610944921317118724276054377012268763275648382706900351749307434756712745479955587142870107619700298830018438808986537286348035504877518049931106450567191094517013799951386903112358009231567569965788343391594426776161304300022777868818330509772294801784857744306994630025969672755529330301092430488646001957996222262683605471873546937223310372064746477530602055004538692169645071279744682109428871296877818200360472137145564738375161519407952101451608812649732347687876864681412600303406185790397082789579554711947614477914934056675776209891806100348624481431395455490634755234676922836925271160594861949749193517530069877690837751044556300882637355882590781278516274748286817783194308576877450587656193116860069062106868231883002183747465796810207006597384038786716956394887778161804884042167523412802585232948178680604223945553548169876359007076462872333743267730383581319881362384510345487605938257309268407432111281973845067500385199884011283936531853572668934912061493958987469242035702379507279838183157577899650734548830457891707869119952421448940468945887997806120043667516502136164267895392176512115824065395764611876891249263638544907240371339487675235495972350560553572652320609549766410724636729252690313282473417057604563284805966955640394276515706464339438376639547207566625490075725199441325562833899841553622393165726621964497604941869357889793371304005342784345634189800418900917765585504870492678997686898551334489691509622207792269822107783514583380890340512338561191679697844781180909022676298650462601915558714128344041403134152024489440655195016810367960338581863783034642913044048595509313143549457611985951180701796736069088416204039314780695478043324119107149310347507040025049690105698284881688836858940528332622248481966722033841741974229493422425123016140304034238074771346156510617964431010155560045834812008853061741630966970788943010245841214841370159907225662414870563363796995091994957364640327428341267170393963507573067601875569759056326006210554940811960768137032713598459607640151599805417145081652463781236410694389843952816949676705028855302403266655150708542577862091171619665645638582548893621438796197245994237650800696063324590735253122291848816840834859082777917107258823033144956729210940758187360109244237025538257646523694030413601451301176776831116492581862903548781017788911294373013001213275926343875357358114575812499135215486053774317500302057241469264079488641406795720551913284101715032007349467948814956043262696364977502895722428519639784705402658609678670384039008651358936293220437600241301301231281583078985499157068438865638960228650437706388285506133966002273462175399608568256615172698158997055194685975840423197455132478607469983419758422853407601581862963442835431947278920143141417985751526412997168371402388894034824754255972651117192092542605254565682735143606991353078144625410801023613485020531057699175416776474732782591577826441236279193248737917110055850422212441078880900644664477059581006252872778273679921320733906436209804003846416852574750997746804203622711164489110803899680411189944405320307832790317493492357271195003127028887434537685210322293108451733163127497505420557551103381644729873298809119980326591284599624122174366465477682118050875100725358002285434000081706199132965320385508348493967728017812521571017978239461629007116570855889978398489129471671760034272209114621824897394190062173383195629102000095451916871822334524143596512581822838189681589220999106031480883046086092696180518594681660821127894668417878941565668737340104254297840813342977047961903088162258357898790733323825540809947740624943813388934440661486807145903284659660671842894779613448198097359674687247122705088417675054738342506508050221761354739651774261788117190830683080208226146096191825886155080627286515668084917798964005625554392399262868573906245770391004615740057440915291184499150373060915701128343017207689552062551318052116875156513277325773414202292171504713460104425648440843574412815859321317918815601656507789087530407216002768223885631693185243619713686561607334571179360052027619687047659873766987851235700853798013688430381124361222570719215933835408387315756990294428050346472714072609759732919808569331739809087823206325151148817424210617786829412004538883994812147323520957435006772926323476332677312902360167014421958469099681689752597168124628549215756481640881092749901768984073945425325747130572070991941498011465261432903146679548240911728407012264558373679628748986088253623980427639692571209959413276333392524055193773141997880623862143090557864829941558411427555437000847297233016689658442448209315529269768379177806074341871320843643004189147281142792454273145623171231372232865307361277469371395706091359540680946348962167295836354229583548332706513123954683753629230314674626466364506236208264726728214849865223482298385898298110164011333803383394884636233145659753002912646616808176564432502297350289246281270052895081350855671222072057450117880376947118795002596080136456419918204861789081743443881195060512852784912589343752013741428594315718881693177219550630951403473782785569983720404547405570587546845201700241134691561361122557995265622486890637046588508976486653263020097994464559397330809688767186830682224722167878144117645524008465329775948035548117612924118566715627095398185021962617345834247095335650303628031909587373854081633394367947323900297873786550059813127694585489930262721421783578466176969249867261246259031380395328792982251334545014745156969922707790146416803665731110065400573402054814832518822994450306327432663057419962028019328346934818159248042464259308098567925915526075374012956332591048585213120868107703280408659082661003973481420537322647877623721386721945451290880402897225799024888335177209862030700272778528792083189309360199717326654160783924714285162038920265683653201345070178645344723664870519758912707637512670658377201656465823518907840743430243339923124567715921261836275246421772555174258205007333137796090354695247808458216084530464668714731814409970739589087934717268571426467357486104928338450303315006573583176656097307320377861934506927590787484594114486876831504731319341889148708543694355289139809856740146745665580593172425861703375563526756303837942122736669735345472822840147657702028974682510309173698550960868148497826164150699138105342851637694778598377533038603673075101967598490375940121555549025641733651120744445996339867257871454595115880083859808950742861481660394936092252722081063812128707849580512160440537666472607645311770752114982267923718758963402202360993250045071166772446197162517035106895509051037057549167848714603199827604464635195560078717584168979024055813752205339480989174018323914360728075768797051787999291160562347841311015022987768674063158592990658122419606563157203227101415298674066481859631849493853594471186899299468224381576734542724461714521466487578478548583994331840452476798843446729737030351553927030101060303339271901489030265501415027295734295236740147083108296213803782974907257228077187218569428004839046103507857145283042403669644084242274679739505089554371278282160144555444065208937158650856470741981443973011150250969691429793066200008182266794567157451282357939277216794400715355054618725503736260541478041334023263360554393998778752834892585245361205400366673091730970078101589261139827667996760548969488670365188893654545607479225596582424542303050820248087875416751176597883420042172906835196882747183746489195879560758131962719593557236611235611971334409952082376970022529208206890041748776089303701605574779363110648173005927980677854227137861829205497093604741020513668909665441765487618087349799102282766567065199426297626394507263394210089734606399972299344780739248959069015308050361359299964924709859405072016151883581052713901019668688269370988714932102356325330005433511118891281933913314066526352533417287764058175189558590727100029590650365450029826145584220863602724579790339046984397009380971892930632276346340630320758246405452173533075086127488338803849868100856964368568931541276112037222689666574678308831130821167676167101540619592490290223173861549570171196123731597629774101341544613402393995398590913584627005742160316787532399315311044891786102214884383730623283617773849170789442025568254671086229911429614890326761217575564455421029699061757070919800235838261883463848440639965891345812335558686783560485462329193059844354009471010271376108327942065477124551552830933480132333180894226875741060414259850394188395507534390274812082758393620306809998356686984099781736921142527038335327392161603334108247734938580701291103476021322698359463233217381772711355245985620081955551799602077638771066309450750125433866292852808614679512129036207545895553581930760606496312703285051183889121148212787286974211909787688691361730573284029390391321697581485379425523529770148004104722809212972179031694157966356068476506965793151018429522938602376187065553651884510532595800321816263933842622433541719376500037525915638627623873685085243443972547644236117822400437298413709494952831888973512860775449128367192695174133491697726511039884542580682783753575963935376682620215464147116116373727274847177711689223154924341544316230973015778526152854712958923369533794265296552234553638947422124864685171309959644860140378173879367565675308861472323570082919234719565042366516478304531529185427903264315765975179862619944079207054932504248476841242000865688235132081204660934678181648974637658729875777010937183359126156412084573108628274269132567574577204807334356400310654596260133822827720635553760560363805959930997390344038845105388121343467434798073718283203398758322251321254299625741501497516229062967457107329728498084673388574404654128430660424829277283330301382443120459938289348026353203297891215493514583816937754099641822688559315870584219540850993732037130599228520736641688990345549688703712487809863272884517281903017896367102229617592371930325279010942068738742523235581578917473198098014534445765679966384868503883956096209072417106694766603876948753460669612556946507882854138574531784169588113575112142199763945551636406886322106811745871469236845272005511942697103921691457674041996779433702310505553581463628044707482798486961444685856134089483222724517839704688808696650568707555172703514923749817496797144077074050859609497329175981706853698715939751620497775960289857804298279658421891009346496328433210331749615637695203015147347170360988233025032224520087976549804622374079273271662778895365713379548808848040668313423784310203967708596075744419080729109138423817102573080227067304797378024864800106810614171204065843802987832169614896870688957266856806212145516095749388899765624790514431114171908315705599665704286862707437880065011731682585853014054652047293350945254490351349572841560387977636460180641445766430243014584287678486123754874952397607422063726299781740937254003311413679144455755381551286815028359359472223575099932681681723427768510597440880673749586284141026129771241624457744509393579515554950201631738671099255813401208170753961257333531451014545823232659891354475337160337752846616719246509862020341558678078498307792197577875630142066929185744231402763321159757688291623788997612506591627480942868375390590331524707098777863974440453128387926394425227946097854304555902086193516126725660424036013151189125036384711267275592509438071430360183176503111093803306090779610186215422852193772497931155596139925302390043818763886648828558936264465274957761814695624236830620210843075281441858105280862568100242036162536038887085686429243120927849293535591709077106011087012660702701091398762496965692779154325189350668569329668942766687516863681755503420726927060363059479678750502119335236657422788481344422410832640848487812567986304832636728989325682916163354654861688998637468848472320044720354668920537045884213342604404774854283825386009429196559576469944261302741492410675602909776206049996452507900658630813037748338647064231867801028998561991456081510107333781503569900769504552950838811296088555818493077824265286175726668710344053014485212023539159027291075788280841427075679443812112237391732822023783617230036577001869460643723959638083061062938201168843895958447260462356990920587026582145321829109415476209924790065518117603430023116193565411166919227408951079534302996402087809510279649443813701302518696211288600169417096383250688170815505403260563024486214503356656632785808302363712352909567013389928341525639541595771907923544328970900162996147024083035257466900532290347984799148451344117397492378536849858518373794684043143096374962363924609930680662336490420161901420748799412884636748921640079065985437409667453347404620293091739673167260216088032863322120917456759542777858023952110378133985000635411927735469355067279581621264587091554128863350551058176253707050763263196019598409641260789344546054821012700552378302598228513068907310941016136292086292272009609845327772341788646160306591734325966544441184856570559355718836632639620384297505500520328935975038218128570541508021637841671266803453676891793597790086917388495165129419303006193833256736248708023043310540943945172347267054722392271319075921608060088083549302426036875709501484936865543862728370185390914047890900561532001912213071299189482357867954975003099480265885134273666844458400881494105837016905055255323786941065576441203726073577365819931836770666025637253867250183073949225569534275733579127236698556818809946580955012544836226074377829369315413814293771367771979003578827103378370382716709008082837542598846809814359263931046854918355522878942547044997465789775700578737564408969635125545264611401374981566965640687350294074999547562373650326685739212064074940688353159585684531512383583125084965512590149585159990945259409679547393426482984540446414902533876081798795933409194088002227907525960995320358273449886181137154979527714692468513994558141643789022726112673305229112209025822445857355124933011054136625250459537314744803266974197249431339862978650853137292769554335780817673671146325262359182208366545724399270027335557414952453310209631586612619197564178197273427334454988343398217466873948579755003098830304848426138469997887974223055245580709329912042967911507946304846880137238067085502992215074788385515782151116859798857809422500185644829250947053105212716328052150250819190296155868798047337725041107612899327420653245578090256939308736697169769940249394952379961779049775450353280903894696789783403766229111737840567008024198836973740116342299966024982178862677734876260867742137783490234248199626202526187282692777828534961105754540467345003497968618892848332095830050729911215471809789151802664588720412786438208304833226267236594768743535029929223942318346633641257377672037948015206314447417779216326235287788295848570473056008356658174335118449772915636102986622275274558275451686517246655240098348585616715062852472184460655299788328032460585812854650600484134080175389804885805415548028496261703978275887310442553042523222762071083942444368833125310872702555864572717520568125119054972005907454837819835339833077463393104029861682585931226274870492178385602479542568511436996954259740211092015725725709240235366056740709544593639495226819952057397977611382195319597491434896767139894944850773329117004266549642862736817498351202799775239315322090473565659614504415466973606577973458809062417334983471188027842165974803040404689503559359094954447887792403368633115701360938185824068595879967893439946618065750789227877202266653980189234586746754236996348080190485531276869544978290681523274118938276902592642056529006806275875625874885847653676003019529840357568905286820519794341843864998332072043086508659618110076628081048384229143174253050390824477904121417218747618205925941132063766446563177843974448029970089723333528887518759414379014673973059278817936288087789397268728850546343431034395943041500568343722085934651622838366105960489549739324367429705780965730904490471298766751833142981449275797447907246903814425612162576053963877733571035131184086429034369725758105911137303412012801946766341267306700637144298393860124707601902881600256467073135127302473844871897320243972413484249453887042678154728824768436845291727468331650461468194627753765370933324210502892854906079362571633366621839381747416100903623090905680242433830534823129134248369795711444145281863749958235816291332361527242436659473285806866911065953096824617030938149245831792550375589811403462462279056724769847374766612662682222848076192291299075141880363874456197079712071871037860000816673527228112884392049456750804127492068711228795844134910452570460411960968104870316798032050312793014798646736555640142372271511098933539383265974118713171575392027042202388507818605930208091973954152522137254463047819607519658234001322326521528911501843230896009132628675555219719770793795570750054213483900227347530270644202864607650320027928476628748844568102875781964343720379336039752008767546616074401489312622409835337832770814418986943946685133631067973659868519619796006064389683137347063390531228988406358280799365526391900376759274213646326060673582139944525927264799514560013528447811087077872762639358690556372008321670762777795049796691806029663315774152937306674944940346014744092463172115585755413816882438465062705663002604921003919200082500520063389697821857686370797712132220796140154881121836058521784877409942553844883558660540481232932151678106123280481751255167400064680550912365946224451215757371342378931136390781261455660966993414811635325017288972054593711730505630530561013723873691560049994612625358245639137282694699856343771677027767051828943022719074100326941229516408258766483355976066575659311764938273460573559744838765404105775171548492617620942780202396697099301057679703467399284505295355165617620531222388564012778604586198580990607892814794831938845286964679784204670208836275294535806603927872341934773287636473575545516898347419512566345431270848837220926920484462015189199746441097843620243636818817641417433823538301464014738778389264806594008035890181199319407772123906978227800224760590951780020290825235748712621516623502853665709566209417342479309574712698702902998846673582364232349992705232530356990912139655653172056596206858533332008542276444852073948316755811060080151005925551068842735098122083425297814616371580710699564292613459945619708950246108322511415123634659380077730117521427946776750625147074521246580705451054585919938367817515572376261035852813321989945729575128711055806876019013725648115030673252665223534213491999670115269596668954962625490255533650612929448997502594420936022072060171036939841023170929300227435471189793821021932687229819502810251606178679329263015393203618510496128201654104414715083573905321901562491655148783824483715639081427368543057841583934232316888157898585146133444647988477399818456877614224143454557699685558305855914849756124504852472601772904923334882177734457371623791778695123523224047522395932189125094036459356305517055168496771747440216186395499172171249338145880413343949836596667106344240618320752275145521613626474761789430189090247886046118502309711570162476384734692498494232417939784599980313366105106760856523102145457331410942108598212458430965188600976817439304006593382446891827222606373847189348017627818143365732670604426944184828451592092914512979557178417668975716017872389381995331317524210121053517501505353365972570832891843595789766761186476419151474091764521018526885508631783561629864788930658309538136243851880212898398921015115158317253117008889701147318026038321082953905033429145501626275240900958939832934310741928244143997476207196675602540621450396167190596322853687108598119765699240753536878510688686820926142933961289757769147514791654816949415560596323149006432619760192366352713973584267373736677986373496373438720023557876449190604665205727339192696966985405173573863943129177667678679821989239318429110830268644746405913694338232367912796325169913767435747882934241526611244449114699451641632886972724270971454978799070158803789711747927407421030354845110893233596862959007739279878572210866016358181603988626997635738756591265413846261839134137831607027458440198931784050331911295569392164181644053368902592985085673815130422450195810631666496253658075917582201535422574023798516957559249747892548974433191974771505137915109130129431670876944151674813680760329087678885742853381936562967939351428637362666680360217244340999326367361672823889394382204622560905376545240327117973461300978299377892988662756186439424012300746636655170112005661545148637562043182177632402886564646703389685956862070051235489497784576366555497346122073163022112073584629778825964206163440997547646529406514235024119054080571485036292767231837171029700159436572778335385031732399923902699832253252000540573256964499978192468874830129331409204072383799844126109297221371257760493999699013656098824547525564755510410764447098418533150169440401399447655304974550884950151533347754141410537436597303456845744975804086939543689526270684310498624788195875951674550101303947181209391932815925586619518127034377962662549463740231781057859616929297409134451124451278736983793468474043149310123376946712839794279605619309011732185598566673215610980611071503280855873944084468488276961565912477931095693863330703376421857296618307936267193199247290222242019628011238761426319739241314278085844809394127033586623108189230554114974360964689645233645269649956006543388920498468398956446047907821502513824298040502241642532598068060821581892501001534973577928532426006713163048377567982711075805749874494949373905586064237909233333457787891703968442265889779966183186472279802340229639866243173552933889714470622465981235918620135880249698902243652615910524695059719738226743938270381668757088553065066888709041395625832158306690821679454088020020856099764795853127738949441255992414401639257047867403385546450581164031828259476091464632046819854232591870992398585176671345843583920466957225953958243269131163633654107517022512269426594438440497975737514125553710464178069062488873740638703762932973259010548637409853096154175747867199206353795923911994368115980204289167104770893522050364986285002928726885651418713461624942761675195812735759812502499028013683606013035311279069404541550899728310411545335896661492991900970643854949376715600038428649134473689510576199288421772408129364653230525142801899038458543909701718916206491221052140268879616438037186121245494815404412620122837360810303912249958253324457427911636565675083767500235105779290252450108291513991400081280537004382174555717125705555417859149293300515557807751438512540351912563502471272621741610795381513016282789526988025047257605712653591029137654615771103366191989408875408867180618352530964612481195935062628555506380630619051522492145123325692433375512808293089194924847100812341793191292188026323432405737680037792965323195071104322795883833990161086263026983076587673467002420201368463741609773837080568622512460866074566051077753379985103551131764560900516581004299764523194683446454082193314004897029922583020238957597780652155487071901613474707013617269684347120899284118527511248805077243208335919689339439473575066927843653844620996206822158169626576702324843073563353360826944740848422861449769119322570323876568333675936143579865049118830371842607964480336661921883993268892161708333128562166107038374807111339631231954462717010297509436014773760820772709198477911038396361757470906000970799610532662346161367923347786988043696371250143433740500828214939745546222487245773930589779258307940994045264844242390620771890721478441258354210072819206929749260747887551062112270038747732909549139170456583963946420385218491401833370770654020242020206112150724422822536751719687164577371872412989172055122733901003701132771612610176911701067533051092165956743737339304930622069057332474451340572171237060690040536621077220398328114178491474135747146232082417703660073937674458880276934971223411800648155749820600050510450890312445422398290142094195463860473296653727757290621582296385257111563652562939149918894985555390280569959491673168158726329501003623240150365453582603694061908030123932661511431302298344297106748518785762385542939287257505923744266478553787206691568324859368191222706080171228294109602378676559956685286263521366427535755368345981973527634970904836168292563366511664981760082015841764630570043971288491208993969787806289553353118043204681080497658580836387849164497898015085090125652432536392280451050628600375372022177308885055346695703170163547054390723940590626825494219317586189424807905994265854579270250387361662118532198474143667603993470067493341719960017002685958712939606116177723683112782901984062298112810910091525508358680064152467178119089907424316191848247253162319455787282913233512782379712942093182151390484003350105719107883972115300935065217985256011775497227507607523515093554264211901109874752657902180551923784114756852648400504960032074178845011542593416773336830002613883137128768886429254520735433323273525567634344055094427573048779276646190937831850228240526009776736909377188649260855045834126991381924659239818289348753226437387893941079058970282406415947872903822400549758862168065603715078793785470581944077214655339167882159734988988890907613827738962379436806849087668038919483973347394369460875302298849031019809607713378730634460052083854088764412564638449122233663585148326027020990015529654710392737943465332416888139001797307870376294475378300634645373523295981821360048723697468886514464328993965267390161920087421568007881543589888426588362224114514291600154433457939083261182069127797705649790100301266181057055807649832703312946539070082270897343143377543252785460508471956218140678801715093466462657247786794843826189663295656789872242682861129518804113824187445397863265984037848334886324466550690513674068876715312741112468914235406474514542564952970482971049919957067430957110460966281340547965289121385402356266260291150539873949851186168773289518059644072667317972202024951631364462732807549452477267909321825642374366693550110637996070609846728558537013683408564905373558293365507601123920496846049878129377752289338809912188292345310753460759476606269648742350706556820320328533690898150409498621034840015800245412937626625828154732139617794962170519726581627749902499138563191667575030774189963350110504871648459037169329966615263642849157504906877552021468389369209276626187620378858831412013691373279600933262817439032441952631418981906782567567373443139373621704070620174765250323009210738939596534503277485449330422874157633253972505997727424001372770905825149800972578697060029193185246413710549543585803787043101776283332817425661805233882839864183305936633095805887626073879944601909236622784288070724551636879154016546556877060806204203503974364555228826860280105232958042358096812644837714315044395792116204799006878207560858130213301056174944544579086426048682577652979504662460783567856376975135839672107766335728631852234836042647277230563256777979265958073149032057486101690530527195544546921150038546948949996037900222215545884066272602506581549354821083658067604903984458949231734754542695103194982124407004075829454399027806671246280461667977889864594452310375546189142201125985226946863519313579903916868872476577798308396920852074580742685161185003887839403314451044144965010598369425180712465332932373133620805010501754042773645602221553295968592085384766744691213537054172818039190735171374435760599971780001509324872093547635172968449620843225521662788335693307282664932843271984023780456974631336555081526924557160195118204495474377252837681184422388452928832685776918563573435157993643749351704411758541020112724252401188925539071934858218569125467466291067684758486150810148155833915160025941035544614470845419198558364137282438489825505225979097810494246830972736000896095424726798376670987485038218299081728546474002497447764080377849131554642498136641557224397717848930852937550467301017190062218301022541398587733996020239946509165271185253192394228276035981484463375493940565418301068903583696243198125066192630744738994255946872337218902793772450797961320461053215952003016406545187506737840970409297911475584307857620939254615450989227372114858015513492355942883268062446999521590215324766886715927105656360411279926775870877433432688414243703984078418379144914383867604688702153271597109617411403034497113804148356645455157906917170208281302066585962860358218208184009775848028643292586894082987160971769722951749273775567862009097599469313264111766561555013274772695679710915772579426170427994109055587504920476840026113291602050911933320987889146942450798222215312483662068140649633578306705170249265737947762080623070542972979366701150443774881701478256197761908194869738390309455756279354979576783791530412823311916022655021182351464826398106955949273201866745081482012656032874414884494048051781606906052244557761422696300814034903335570400449733234640931419680342251349937570780103406559426115394584580931061693832232784111380933357098127348464476386647034815489585805342722957613675515610122384666403925896694973152814191994063808133872925010054399357342373856090485815552949235813146899813676438191461387390291243779203880706173072232035270089401319014092548124796687049179732588895192706569897322208281053723622866777920654440597543303010597136620831524959273956428696590105673499999692218322315224806393363911453041437344113517349073131696474292433677582836455883899516351809783020463476997965741734394206504128804524449968077285004535251303308879478034771082890282253585779230308834846985288647299388281411825686246235100229119563358521988744426116688640242546313397163148211982225591763579621811345835178606429275473857019919114931932898137963613708709956942983326777812506571917291433319132421534421468716310908365368157487489368489517599508975561747364302934085864611746195979634256000444707507432948062356486433192420334023699091175173882161479300246091173230430974853963653019049014916637632354272236962734001925011017869723414365341554492109493736971342829265291560940357818688693691230446533549297595486132572195149404450979567183913349904989092465931104846990178070281627883380418616767463985503989123201881507086237265067427287793490848166605890516495305141855289673478295818708088874906196391329669108047375991638280352752899226534659466953287752766428642558156566822283487047156440318940344240073162001895719412599896794808221634802885554124482291978682297967438412100545914445961389116297715875898790528274526738669186954114797845265091271350759753065810046924885703842029812481049724137192991819543679017020110929005827468553513972953549082003645131804668990822583826118068434546472595002244983760675825289978100381674940911478737364988624658785204070874856729772284610952802567821465105670168238230257652552281141541086218156731074092186260019231355612737130369234803970559781342218033167591930212733904379496613856283906026105957776866164995520517327364110538706130044214652975913751833069455895541507189150489029967288998528301723893636883535084601054441657276165227764326951736051493298656057420752439202817559846403854308470299202172106471917249293721627321543746352590216681272728981967504800263102838634632341619464560758553310610060135606998873594847341978966322573673291857372749506836330469949305862278256048219676983509622017086153629392590779097480549422690332848195582402394636804987844761229668091839694456707185791156006651568625826138835457345687988140899977289812195754386518363714531294997247067180517484136637349750051332791889136660325222872962966147372997266613427439862201591148017591526861063252080371834078034210742009197680851044650681828109917633178986891687822891070970292266583597290237600824449619117601954955717076543643739590756686157775087891950360136803413068760320017881786713669526355365879038479345455282001787183164685523826705738239920518221725494228514398171130131765529479309339041545820713932748489283587685925561491214738499336481542735210394072352171099849533364456310764530240324980141450245928008135996142030523444175648712864173664527113231032378890626319221312944006989953167043470060263312434598426766775750228589688919200427854826628129752523568744498170676178438564803354836653087682722058274886248254103911394149104012962844405896831726887948686175387704315876509329069052786372873308038850641260913739767347978887304262321184905855445530790090112469101587367596116505744494478846203954528357632517660946316340264237192626149579779967622547809231620108973483468465757946244048312406139260689999537392167495859460795863906531673042553279542960514352757614201699332666807733694745365697780023222382573949860812847575314817641934020494462613890231068745617170426937770483317136143073681619071487817857862901488233464308720890613405789444904376870328725282408878873879975085218193349180800829476473772656717356111703092126080467459969892612696621641029169586568396281770021625952175137897118934338625800787862943828607077847043755491431748355300405140313166415022542091850761434296427890307292922142108524404112639150022789450531253037294917234078622563896565177884711241278915689550095620071969111791124016061665613891689529864323051711369739488965863297757133840667994517933014117948269294343841543445787665689400759718941997150153439634856602546073711367008053822124719361052241612069466432929673161102409898102918470905618796063615204691971474143047370180211513551694079783987011456392968292981564356069836014333023801074611758389523322072682187546693998777687546391674902683072089958056370728432898634046981317293844325002544470719157717565627298652531527602394803278858530076510049399384838780809524095695887492564801750880983378600713583905031981303009084442961991553595658074645399360715501368286469632818712045809923741030162752079235805529684536691302720247277758336787512659364394866077617113131845743023811089277087009292992960971322361482509798054216111598523736337383474975975523772172283201410806802078059032094060008070721724108537156369984342283160550385172409751226003083821344175514682067395846150369501102511242661506772134975774062537857612303071123012502808315056666914254900606305063619220998954821277339150927730020881889236996011595887514204168210235403986175872660628152916158520915019341090939942181085742366415483243795585946879134907040998612868941493750437234057538184496738404887460724527334325200135182624771938593167408369029923861289131576861269807515957280181114942227613300653034907298108736956068279739651863145378841651561028580246841250034436583622600589805154980635382616873421473618871212090484766744774420682423875769590283984385258827058406805307204439755201527276778137440015946938145856528815008499927045055593942928062827602200577328176658108665792148062529138763243894609118071515343382565472252197638437127058470155021962341988969608376899607375411456184532186310989791762407911223226329602604668765010953880115421396435956369196510403125464403529818097038574374857820940369262118400480330593993321686712554484332409081613660321394039556089320484313366479271153469013631304545612688530807464388588186858285389045205758388778496030009927746456474467259768000365695220207042278437617581373993703758002113408665228908354735291952607547295364137857751780293457208905328900076871040089230415831385832046340377218343880775836846239724130710946995645515944275608951415347347405410364378795177069763835546068654907747796193503980326833551924440590291485418253085285951031137548832837331825590396864872072255044050132320549996992465961550176755063348337315376737412921604085124692233771757871261027493473741791947373826433722235297024128077183404022255835289298147675508087947781671758447737261466596895191453052032590808597757897573972614786845589105406073967800902465998904821616605649261823733655959142792445575753217157226579956857194274688210613544685109292895003168650277860326003640823032547735274222839965548154121542799615246591267806163825699339145638863892764565822001915987918499123595021876199478287085439184304947618816754355443363998829569542386750637940499731697158749226612770350420461751283273585007919618765655995784282950861787910472056190660786854919918454589936241487145941383419577880269895645044542217078262519281400173944891499263085252147759366580255170305880034271779132125617170113441307252433789388318296805032872541491126329366085853180114817696554133577892741873082751624045558830425618783422032073733683010162615757789489784957612471108500385632312057838428859497485470628129005578367723156587477762228238560565846809035168593717330751733131558718606154009270041878061368586594356858549295521198829454593434652191523925573810984702940723604362757749294447702884649276992214746008423777253898620697768335031287997117061891904025157572402001552619745825445843024430381977723112236827236623889024454806108130121768564540622905107365427395784741969941289571072808458268161124293737217210848624297304904655356731167814082627493718755021320127462216119300822153185667918875344394650868516668752392365899906264999672157333444623620850061366811229689396488216105264619123603336240433556306219591559490983718751141505746049855778459781506261685379235247963361491330991118454790249799006658353843510943297108033048581021758769768029334485093442847185635981899575377962269250280819229568592695330823189445402211704299747531114072055536873431509531160692620164211950452942291385746423568106616341669425447668657378578353806945770189696410698857986371381719881540750124607624869932106951764933944502336266230940677533103499727471346685166956693410089641545835275512029118311845180527539714267459407162511543583535351345885657778227579253341265642963181832040251004239187061284756600708074837894970473011068464469072137670011365639632282705389689891069522576446273239142604391885526342150397604871442186650743546228637449830877804080567133851540065528587047236345692459854026328254094733590961222991803345549870053493688131400668165491786724154565356006277008920556465496012497999893281960047444544067408155549612290437792918155099034242643907731536850130148445607182869033847166171365387224819608192007526343816645051953748310429339983339300179581829553980641785744397576616471307108220021584617146376431306028663188682921417117366117579657025949120853909182247969984189583109455345151796305702445593256111063032440772962918861301648769877525434476316542287166865372434187389341649001619181381398893908269673248687706353130842524269949619338669989323817166399408548426746058370853011429931189108063748656830757262767883791140937607890915911340764121642610040737745300391731547515532620975840582016119605904013595823367414688676861451125827406750497409279898099360512109076547929301442457546792320261829300247931577920480995628955251251348394336653066326584222722798196251225929559301269407748583490731856104323234963105248247198094792348328122480470782077048322533270798407818274170190398533257697141777692172620913179211455718138764206949767949566059189674695743843049539904375302602954084421571814975576579404662312426488993850514946214870367357922071323974854956418335731717390835237751776617126377157389715148506461440480113896663119012317889778603915515538349991017597272271015363698049703767909281094799111810996077251964755583369803416542947804299508849821362077019723907163713058148106002356352549434502240094889651279052153392869858339586150755118575379057146989457613372578264892246518595027156892155397067415623666413949284240756509094376819791983950051008528971884410843073310285920049948134500648930352318012261634353814832875167732913077856637451617884173515732049522435278469541439526811783080832425025693158447956933340668472392054314704897007118081292233003288498668554078992676479567629893575811915869394483182391278424397194579583847319987529577819659755424240474667680891547540833828802496054911683673205529611360585568045091294040076727956125433616967694955648958469575679813371314677610877901142535602674716084047045197725621855008035922291677987755411977610820512492487675989130707576889490329651633806621893193100490559371887972641689372252289428177611350290945435263869352964844885481976335529454209720791384166924081647930950870613087520221116537700077130002441111133743495129033800111280659874107523463490657033584092915488032409864896304567283401161499559362912823831701121330415870960569852439175046410087236680540558765409935618053447453393735487169672525001248246357058523716225530019727925415271879822827911870060128060763468642760189400734707408172170245279311285547988602860629027498936791856426554054893048276011152871178307648477713132422607241722559846409098034166427460981014216186824390004728057733206821995166256884630226744229204642588820703802036325050681855430041179015018306944947473765761667196855227131750538822294365995925551219126918416684900091117575556464440274601547997705127558925279642490887420280992211063451033501670440910601981224611623167533024283173153166378055154569562024199135257780677912535122798588913625374489197817888735271034316865538377493692831837781038032023209339529099572318154791208101015054219990742655621298366514248522138262737983367137576692166910271697100920288433275192944259680126531556443816588438023137246361420125821769929548515236273393777209535976343545490093521369495404966755970481388805332446367215614895789346218485529621859783731694701427685041942935435119492200133467514866498450596602047557244953514669868779528005440968176072059180224126427002974857911154908849553688686580392056792502026939393874019907546261820792035125112409183281042732135594383081162095933828341951928567344008498967028758469012589305190563744654513396834804321140831931203920731623791921329504957536574135841958580529547348468603847561853600425949407489361552685271606018649178912443990305009948722825205923635655874111963398182126419934622309124844692111317160106265344707999389922971213611255103382401897598751125702649576883499230392575179366873424908259348849148089201130027034998339826784955749536696737703484331403991639808543693341722027075284421925824469593359983090748759238523559985499004092574607623533921630310833414419932329447996006351336237608953690684446356760324417261280908819919499865437343413935729940563829622444398444391636369709848700669472784736978615269671970887281504835569229961696507677277937359818075988953843247306431883262000124013228851111644805328443400666332538898087912114363876986529863011829807550748156517624851383755305325902010991506544342436408855525905272210585305152801487573080914652093505096732007969116175859736266659193658981361479231238996094373463736818750574674223971243043265569364307822013347137719506896028729291382087419187513029974431345920996879929275294288976720149674120762580187150186781085332356324234811178457998315926424766974694700524588979711897839168396227110481179240025917331161477167739161451201972928816392116394543148838292171986438117713106769913593645387233032081365587099168602245125358383551579936663728215533322861406493611431009985123665025849001436853930626767669586454768552302863469800553350593488449360540732224772006144520669522901681232744760642437249178594111911069973266982945453761923563496043111380724060659566185901656369574258355643303251962474374514536741824671220333905416861042829306753165081369832057103466369469604564413492019265250956085552271547112472249595426212014300456309390548575490689408020888222590519858157616252131479385918082517702186742914437572913866551383080476820250392325704505556182998955274077247388099280077487558085407041798428844312003276953695460582910354325882600111639849578582643130713749977242104380423120684586314775506415190968554573180977012777036738071168715299626294432807930731414469662187663623156496603681380511427718157536915242233355886068235297933097828832477702533282881922195810616622204118719542974677684161146496533758651646422332318727998075774189107191543567355691019270448452041557509593521228433157206884300175078669785354280669910955690570615901534192213483569139014833576148488909847265773521769784565327202996168024303002754478528622228598197713866369373834821106723678134772491718425613254691796167248281856933001665934478410497454189903986086597301143884438542106680597465925001439515082101832859770765461825936038367088003064179408915335918977068277225758469685424205741197825911343099551853284749524577293685765461238639261557800201599173783704595314371734413315713251578593937879546613725886328159681989420762559732684323110760139799565685180592094287781367395998855434371397286996977152413430498559945231339765323767669768410067430607098002590413720927783349905747626913938161428753511211467058518544941595710452002278415346474411537241024538976139284430778367838171389474660916417291835611721971752840933065545806601567238819365203975314808619131154368104259518563152899235222096226255576984923187292598124675257254298189691970313928880951287174464380832823255952850921326617299771666224476979340125363647561368975425211541736029228418257052390502669544503081681167067775139599397381952978792369237758358176038671833330507326563618771733547358378254221009258358820683717259597866666489045355598156292687136412832591116812669210436860620864312732983644536009057768210968282928999795009609957421825191602014579059753612988049188948514065775908238140598479473133286444337167040639304724764020068299296244388521687129924493201260186869189736910828752971318076416108221915881956098340306883161942279781610026542084133341500286639156999546099598173192454514200817781272948546944063676113292135022020596142113316264331507256857185489424739999299529897860018210837746014714669352020827440910127582697115039248934498232806404174960469375521528175148948808490245901573388117422967543653765499248557150507334952593785870833374214101035230290888711160474739537878721508036369075949707292683469291945266922068364460657777465284643370875814989721600698495056550127162858659752926258956461775371527961503373686948221272995691278104936933758906974134727339822000476187151333941924425509826567325876030625565660295990224432652536318793932419199568280389658048821980229823520679613861063983358968794941487891869762559455468817260141546051887816629712785134601253096877303476215882656360887199715404581435944571616806383846668724434906057755715724384763341715355507959052438589570859040322134024264549898665592054691895186589020592608719447957992143422525945857281790575851931829379476823737982114317320985289858827482909339380485570669505400995205495868129457945866622921528132984634762670641462422211313592768520354892669747256923960935491691580338332613853546612847622471988632552475528416187802768745075778512122499188395014106926101603607183676335147344373913410067245813054308426069435509215060742255420237772838556485681325726416279738281054442190284129851769704391145099173914628434847247601626900139876365350112194305176144303854702738068458979532991771592973320876789252266232204597576746311635426633684938063456943508125320129849973857231081534167914403679207061727764644587462932070362128897565214988999028776761523625717693405166237896451328317984798850064881519824831147921976113682824604789241898024068662112171044744750074339820793943438533604961082113284820361552758953431951097722528285971183394322547095911243201034549972622402655932846897476447959961987222823085515025492104026864480219254703281570171267049203270106400338997298875128049627516631374965610961160607577005471660664471410966225599205378715964731143072083644278177750859771340982583142361671261831757094164966648393576106165554977799236799562060593438933743930050660639952552592905095078482356108689005988705921178978568390481937063439221951002073439446012445462623745927222590961367297403303813721988300252974779916106901554261055873656892736738515027586222395441226284064863618237773996737571033267598644020319774203645962182001194211693932547504993357456757569772838914962044103948098403570084587491748628791264130146767520841409966951148062365484743537981569816342785038311592980817902359594960474051628594083962650504727360129656995388012097083359449980379074775426006049932174312867950762908445327707278566437427645939926292860122206103417190670097496662072577014733645973577698662548524658295067921729975131449145244782670928744824769651453025651757820147360741060871645528317561291500403582408268987641658305129335192132473854847177456254293335203682299654667225697642270949621800394635267553805811863491206601021649183443883899901600803987013347976734471786906306071604334963458661448597871265772383445476618176373797146101453780459513606789792338269724804169543863753329574390104151503752652741366662715877004603095335029710247969704166149737772704352633602828639167028719012366959221276090645596166815452300632484494059358849622500972240478907734480020280159279095302091135477434529304867754413441665667966393565110121470382985353220964335270946018721009189136274420031353339911618471446333116036366296699060772432956524009820590269183606303796173934897327961747344320025408843428100837753932793753503326423563545319731200393390595317482819794798827998444058711919130900935267777939287892975574247081826014757741200982170181882153960271258227209140530591100387783161117132435656810594540360096522535791017439327200087078616559733439755251168404075275953571950610323211342541831284441871370634681559988830883254223818493441811510876273241114777342386348318608072702414155908267656642698993182249362912958379029589823179675163344114719374056806927215987266164508089003071696357869690881314717444788478298916216383822139018959502365060237923149547858948431915921428344418702993634289982623352957697292800400153595501239916106398443765955911455037439771723143756068384212437195792608750029728265730107431678502477006850080664293570802151375498554657096526769805392766281520848620802121348815191458608041892346313821720320498890146997212223853757911234086268976510477478029366509181481452336905963614290015947895054841670272421195916212913360325285089996303571769492899161482797202173487310377577054350842325721799055390284900720928016085186911831339948611077644817587695127953036375656259635885602401490225619596629159759661312104246702093183224073126239196850176718824962262743287309491957553588849193798331144886874401623761435882143117832130860212861401711722385364753213445474921350446137738738801937879006883874130872697520121972161346945867575756699909344074379092333097120872762517848969686242655435367005761097515389349353681714701729567407999523207313212782317409845353618470906776919468011807010126430527617170240992091382821431994100751785257707117930736266834166395742702137954770294161960582158930487020038765591201707438543977310144266122494591648989720043328164374281862179560305666570787553756722185029438186129750647045277738719403998544282935615697234007676857487785901531220786197178802917167651182688300621479816164797255631813745805639621980989696386592374990736074582848234140364626977452505134673541182444561842829419604475249921903707374390934470071970657069655243254705449488857281677532397886149048158542796834016075926430285246084865625726465562167199244561036569230354188483239814689553830108819118473163811833520404258980988855915862586464308299963184319860778866111438419996971941857749670481654733433577055855511975962972599949283878488072483306589164656972118978434668968292925541586739202487671296704962532606204756010021478961255733228890082206052449531926072927867655791728081664575986984256838004259450341094301075641151388740637973897500104289582108528023266579899675064649859498713572411004703044834990977297379852963405488405040442596795169242873353586194786419218896910117654090950077534634812669426401422883152450413324785703772279291966596107284367466835564654571119865124588739130421448509072528465921466857414663365888366623906952721497978321076814771489849873072991219839919891099858180699297081544737385774022322266156417021864437704901982443245612016725756083601728732277477796642627509136677756374240942814004082482006437024940621209968514405459652168986824906439155919738619479168335155094564821049126692953431878757004819845937224097125377321278059011080241643707799664825283019313826926795107720750397306739332666499142346822915021537530998439020074436109782074846466619757770328292673252723909248618057936412892994909485609702248883075275252364083419192505002283734336484097733361984190284336982142483807089089709267233655247493092108555118155152551341313460498176396096126194919796391372421082181038836176826836949379558678002222189535167951661895484929123699138101680934616556848457842249219329642589325037996625898048151584398301760915220240598020774157652704954984109360443801721998385317915610733803042164813282166531754747909845752685645538749811352656994487806622133911358065680078257931404930663783273333515488639485404520503963419211188281569487517725515078191577289837171362965762299502225976489182117506905659601045332331823402957130685684924917476003016287420834275394392285006782539778336176335448654002982720219797958090803644896523308999592568421614277574771041787073719494948176271899027318256829667718600138949379349601170669017406134340150674068949059671507756264214522964878495182656076239440077155667712777200221655399690938130798852454890230570523944460029168946658946480498977260962920469603539318726496196145352892545115781845586370092777150586623321794084499358836690450013025660120344139935935477970737883592481572539251895103552749760644507820613601125471956935285562629459740424444613245321438520252858356888674121789137793328348216254541791033959038655185924606331179760934789004936376286239966507652388220762895073805033924089292267133353484554470128787437368018865966674461970373350097095949857892898162779642881226420809838855962314488419251355602503553829225292126969679296940482519134689620945765186673870836090147598497010355821958586786250176737969368116016349375477198868093068991849318932649151823828779260066851753747072335574317667943380620753453482213649519231768214204715121441312016696393770346840618895486593106214923803067870407473359441164779948939492241139370508256506895236854813714399149089965685528594779520175869965008658539852198447814009703884168272413103234010035882941913593687876464647888605595753236347617805429102406841641551697445672333097547240330918589759643207553081185764469337501141779446434650252681570911285810348697268734319750518634365539012200813077361094559457165149228428284572477198137626646094377771843875672828231678819489959584460628066515223755221755195494379082859466925994088058106307086441230333484566933818925846939120448491448614276053414760128619029941238445556146679901242988311788400678673915668048993634505354839473073161689088927867681567998985693613682852799969633300573608790096345739985933134278568016253465385778650315266138388750739303528149156999624605577608720468954748191687272550918303716979822127645928830933976926869990568902534716985237893954307627679889915346420156374313524316996312953378300348379259738310847748414365675756848528811810552220954461267339131071760574633414966683340307041061259241457151296744815646330778445214612192037316833988438780428264701455907999443877466905515729490511153761796729336278146544957563176046370275168206594944813607013320605804283372008219146817673648794386129092167400553622819106522654511551974975778203024362688534361452429751018969889751031011643465962391262475851129052739712377568880139193258602911073610959111033055267225518265984657619199928948072406435722187540649933577548769955801398115133659898409915827553436810682172867047724998692862267351905985528722144610034598752110800194177853592476984794946371378064795316993579423297110271558370580550837671800333493623807599004806825394316250413269105838174622221662313999370123129486345948146714865431515767865387993263405907883199120504258826417677174861232615059352570980392446329023455266227858577558396719323431683050097501992809216794888244885796812909848469746672875947906222727220949043938118421864669800860474486475787305564204768948020712698137448982939706271592825671170323416974119172587040569722674495734183527698113132071062996967272345432251138873155499494567031293132288649589119099698327931086191537164641848385905610132257983466467099878467533655736583232322976900149894558534967689350553148959263549480045276637690164450575741176783641006181555785325150887969825314351513476849973398815195787886346776024651811528283851124528956541820507432724428769428927211127189514654151175781354833197117890109498366397846008859386853894078871959587196944033009788485689917692012391447862653151574190066559250319313236581545311134011728087057634008170629710131843635489333892032307458395509576411241768578548241101439376126856629654065127693705402552521730045566425256158195521492847665216229867088798516130739571163467056131346246115659015163388700250232054024424588365860503861291843406923419065004493714161834623846901972008576555177492046788353040183296238162547717829232085199034007331065390222937148571895668008609489368362478025473781467824961099000394897589786396522339428744188817617028261381482666486356643209434670281765766539713328256704739620563720993061693076498346420302259240522186487844974269072448026428287491406011209723640879343077872607319070061949397426261350189262774997300087944394533692397163408777129363521617850337304570049308438107815930867188730221210026412414793117456205358788167217431363558162527614777441071085399818536917510272333020438521268654141091298402907276033401686801638367256889591337426671973349832755230842301741831908426681033968683960511735153714065322948693560362211699570048640855499229847527526567478092302862671132682582861145981289535729140988983886191730369313669169579319906896061658235601252822625692669473597533727769068242812400640526770951153430305828224364095141185052727449499383358940119501976315115487516610829072099296725018402852375767818347271955608553066389848476539470562854463683526634649444238146289331408653710984348345817087753551219623431908078481547122464996462711470440674259745774920216444524797607861627528047413973524543274496202080380175011786581131718165450695610970723664623994186498174785623468030115973302757234844303950862788433439388832658620526175932427201374269405954616906706913345117606076190090978680049916708964424586007681214966849037923730561907780950936987058486615243877287226983892574026205852000202833159394682141621950494024407224324237172603513562182549135336498208999620752496122540551291977171730995436570936276868465999815360660351862265533095473582302308808081519149946424706557633050396109490296748445833298192210098388864954288794827395372527385885147401619158564517716756078172490066373235221273306063790012017570565310056334599977053136502927151502121373065401302999693992100251209198232422346315310790285903043489516909131150351343232695056730418047716084987889109421702260640046206338827803947674424329038449126953002390748205580033916618267725453886072784383720987603079031084055713439660599653430965031531383208862332383599130474234542744940455670908127091870665581737513514870777325137595902724247548169045420515267189346913116932815130206871107165857330624599978926533536443188249834670122314679279438566928343036612879487654658251797943656281300373431253152849415845563123211004566337042053159825456298878105943079118039535963655897454315972205889337803107924591380695956871974807942570979060920204226802948602580485914416602956933710844104387083607736409302781162784488281910983006353298723098383211340245312588775736175084641967449390707633764478655771232902271179446031386293723719569742190150851859583785842043926379152250255774522429106750499604391715270038001346283104737229027434275260931823824286005820834625983301671038997508120102679644612205516220935157430843478846455907193862184388623134606756640630465185809416397930191906880724853569416778727133131520587640344220428824670020483535132163097294354709056420223510337400272248313238673813315346983347545938851883353628766757706794611485757561926427021068667914588089150014357748835051247309573141658280528764020483666045891295192191005376333297965604968723047673715107880460436211580509905981480139201185163056820390022636824243499339711339533558942766637289704486517282999674223885968769806597540226491435664601862140418201089683847130766504512325786406595585118549655018164400365664076536333438300032295121344188973927990607888750028061242793822305592635192657155460344956002265154734428298680256973612079896850749998141013917691485993416283318142471974899370694851400874654488442424108321554264204396048980015268168747535086709081881682176445780099772879810533282658602486952358046648513157799227888641836908977830819290391064409844711401837791221243903319173453606371250772756988888902180782074734846561016254966841859945004496025867700905871237205155570767284873384857718554696277835808841116186622176873214750633355684604413932909024862167712650445153869991054454579928544122103671008282278606741914431795420756345889163615802530249645255488613186835937275018560724853328164126428665970489972747473281836885008572996495386193704735392848449069163502652577519323039669961771523869743282270125122433074713472889212684672386217664347102592357449905255780904963604979076432410839239167871695945927316378097919371101785678894001818813323584993904081697652790348306985088360729732776800057016960964597595941322633091711897305409878854376958425398776166749776024920421692846948216318371202009838163670612430012814125226061004793666371855121074841713113214257288122250939400636750178148254820951139404232681531945488994893115299216211595943563460106555593082929742615973846394909437269320259130856500078013750497256602289743365873929583751251021803140326633488503062113356665734149221855508712295619683534461066759509058267187513103587467508502046553344725636880723069970468694064248918889437240790547086585208814285219889724496847853218327792229240801894572763234573785443138514408620036676615630894552912843145000813333534617415577855872488066747854181613553702819007570684111696040342969344446677868164124232255833899206180008666118162693425893021684432211934515941124326945463390482231851723842631082862648167844968503470909673692738484390077049650360585777342967298106619424726721742301768935247499098455184414518990661796764785191902403058143464426416714911380103342413684365808064205202412576682502268317555642116904575203800535871709749711563965437185623702963888514429929853912369206214056501011238808709482745777976427822947179228851116015251090926304021599799771395499553974432054131505457848646667689006380846827997127088111199309364883980733199826296098130120657875583424830865269328598245783268371491675043967941176112467362691863921605180515060423374911043612824193243539116005165719873041700189553199792559149913198237835001697779152488754297492307728125520967211588395979378477885186585517771894821554335079244612296930617356015671809394556382564193099030325308979172690405667829803524252831629144939945591616130311658227380104261650157793811221724330648085945249496605677197776320331557450760591798567486004747764767410490514947121497302400143228655451259737312213485435732563836448752334108766127083658823315762791543230484714234562140355890234530950064841270283053074470522746192032646562266765748788327029185046573815156911423526448364650268396608180010515829297924615443319173947840406981117009632837134193065624115448354437138735203391078168336654200876840106343336039389342719915808801155273227245482195305520234958681405851105391357217509945659889509882500916857588506627410742843573563324059347329451644277868264791502503138434188660384674100942238554430630372172618111329458021625712851307536075738257567480518721572243434720585881624704906637671792717201116071962903398306510249482297805440751067823148226124236795405613116439560596029716171116971582970413524826027538025238965428217220985398393806735013154887485604963458694377652066921032902277063900031134519230906408585437839945228174618372093007247761094278167249347245669370399676835785469275164300029658178893509501533282881225392988520408928549901317662044684307781903202077178068769147012003102240558155625744939455667863269033710249542040990831899589034436134996064440616697967140078077858823135724287999312904703527587286294734173048588604569006657830546576609961770739490029908367765017922123797654390485808996863203401477217545292058528336350099433016239578824716405319577195432984036821793552643280098684180078961913604725248373539506688254510596585887252945431238508698563199075358288246926163330987294539718570614224677226032382482767214258608490611246853738208851719490101761576531265094017089841194083806239072797638884555633173363208446552146461833907199841962594618171192142066311738421595310221350953630845813114411536824056336212147305495054073024938088424546648061692230068465545457675162015663282739504935368736782572355119947337256069576218224606505481982657998752091599182875864987119749311321728018276111323201955700368918279587959315090913916615452422656113971915916548566657500907582809730265458831840797168181768483570791313711167448075442446438294263577668227712729056609005625812255306776733425464969101546340000122248293681487893498865302788906238032132361622921424498284318515878920978035564767949876018360051394217933560260559283523311427287252918162336177814314505936930008840943801297052087084529519053043598354512710039430780341245736196105468580632289184147420182120049465980654058824559959500218836737721818705116879260437934424496404619172531858629719723123033525773220192940003390584485654958589857960929393232688824402382899149730117868957240304973958225811289633521379099859623859504036951590158278069286679090432608581025501362016879999702141181023950395718177449264584767789171385072317550980754434970616484391729709976516115675111823739501336663989038078940314060842182378967002837273298144446966054824544521386450875811333235667666919415255047547585984622391512286803875423943687070808380571182629015057633095693409562619820881105243239979902255346681527776071154200514061599689865245568652580875101575359791528851419982030054221688592922602069787624062068250858312690029094616174111163799269349367930198314380690364221389762785339671490120489460424407218033360399387398786903400389103393884901948129809599614143712702067031483127703211353889105817770892639369663214644085169781344223679194458688503272457991692746885047439467760395415121895684551052822078092775310271001484137495942412063127114619230862963254907673959132028610194551110333332906670699165185201097466088854861542200174523716970995794606542118946380581559788195683062295201536735232689188916411497582597668967079454444727844116012167961456198834455799026603927100142472406665770933332603703792603446341580262824909195413027186978148151734775588064198774213721751545420652496869130055742958609293963536119731439869284011497795089280386355720751135212863228470456345416754537862251713885632165842374103039281882664570980496958063198493867833983101604065702674066847234081049243937359442014445645115150869701782779716289899820770171709875689170811116176309067915975900939737926325637968777278585852665028528658151102893171259300161597358646162186133841940219592337616714589535098598569777987536956255403251179540897585180976444144548083490283629135578272633473018192761128589235337602852417398128466676361124614405282868104211553654866020123500272611199500394388213491914505265228147432932949178491231384276668579538867790176055489164673155941576987497167417706861502393023461918552097611428204223951528107126252875023320778133506759044790845285945173321541763442029880046694124718886511802809192741913393842981728615552913407773381039173521848032407419250733095700745229592204576511405837315354522591835459223049385717940162445234768517984260897641866236518044745344728849731631178996615644106816700516962042093297496308100782646848319100736549532915892926334960426855431902698150945398039731181615652413987482787763691912989274672576971587844218843161882957343121898438032239855354920996897224927154579939892301587640762871060019773370046304550307876937569488259987402499097810883835380461685432070054439044169365972189119524329273257030972614039256023046426770189475390889526819983673885473446383040229195311768160662158042046945525228544412592316554590237782488686112992126905752820984539257007094981488777950460035616172447697703854776909754111512735908739268541597759818514467046055438264374430703176957297980502034155444247872946528278620253156304109850571117672165922490102500271933733681681799079602684175127581575396123603618364464787803037830715752454553395077838173933418605555595271704600567726987281928476042483988317689700761384731950560224043243414935074657606303695220405833534000140853728819805585550180709444092621314592815108541122605226178369937888303370080482876991069023674223442328891151869786115519695624646335912376970480854407556266687849054358480066950852589939829969807900921361630372946451115484897878139219380109701681873462577564447491565321143558152073001380436670671343195937695768558450360983453826521016915608973904396779450551769749063349106562256239358657485659636479922455150781809157886541959871380457426325169046321287835972044411631801931156572463736562823247374464685576582550673859341358976259749786929324699734652609436600816183124702290283857222188294504946108202602007353497075165525556235800173334716113433911145717264701961470046296559263433769212271346595583567240551208532932258667846366059658663314732272117840786606592869118037072538946102223473515870434634845113255712293120338756497458911885974470970522811321024699043424523607121099885637238052902540720891898557490358796090601859234148330410735892437370258867316543475554393687450499215931938202785187476636587237389068934261592636122138271162339617267415162891528898002880800246071805041575430575418636792431717593555510946916051298027419036009097149861586480005728458248290379245579722294448557626911441743747563636823957672080347571658153755461921884078465032743818610456902317141084416730366207811570363753555153650306711875846031303375558069645771171057830244796338455642209212019880942500805698608858589242872433442327798534465925646564584889070857341676613613823882668315426868929899804357120935688719452059769599093533175467759387496905063737646542549974752083466989761939452785856320487072330528657457680070045566295083299351305027438585082823754911462550337241475339405354073768980574562699249910533244192616984748988779536471654930135760309421605054297852611295616440822079517397863123233036021214332106202964044525586958511063244358738409364727271358319679259874242972303803727301986979986485633048263606483602878900201041647391101603571296294822404367543312201196000401959251166046016031940020388739060644917725242345406747672698745879430117663498637635409872256059961948123665759489469857422338787721894114545196412534456027227675105939167976084180143215082093258749640320654856110549657348177979002183091381545332279220763502837965903546455748252735780415149352881445923292491231571595670323295138489732499778118811699456920049999240930074163992869454329973394397680512612609911253831748746518928071657426666963993669369132090463170580786169289173533716202526537494999598842920467935623264523010601828854817436276871905241683840685910062766984290897806863540343852250694029336655572422569285217563785486560290564020848441831115151434100535263192949449225198041059888049386918029598668745589098938020799810069849698640849566829383557385914750789526115117562588693421691080502259150780416421674945654894342726743790151711467012659743595414683073980688929460814290503590166556569354563357461533722565187814946712511606728156402850325568336253042374692150392433456138395958971831864575541450492834158636696149343273074811798557130104880287764813381463396926887365322669030291644133382102278539821149699015271901359079270175768364065785447960313520841973717673587214530900514196145985331535455172037380317329177362556184184832437013394533454282475253124743984592741021903557087359065627897130816102328114416885042316637973275692613702614397503784689679442103844782099526659938814448922787587534144851836517272701339538387304131204359817452691702339996033112220090999847210752148586041022861308476995833838219214636060587851561556384339349497675251884526436413735965591727192626799873744279312285083892063721925965988238256348656514626924000929208421297293248578164241230212998011063527910970965771001493334684037542691568498936692127876364219908112293734548719700459700000724902728090496800652359753457200793479505200078635858220331134187743789975542920683053773397534256709206348813914710937747000053896282635966836998826884729220864455905301643819943627979707572596899726564489615790474485001766621833636901323760341068633256534245202568143834647382464487371506072321544416069261147889398376160992241836478772902596860178557847330852857541657845103092329787698356667000883175017079418478179939343832303411787500156308920136846043823908117576787415330553414980031323723554065535116182231961350042241930445868060419455158327448973191632761965491242848001232831744077659576729257181124357216434555323884344855729125410997193850258827322849121016678239641028888457111692053110924075718259256203538758975362036008125660915445883703610929881896295332261563458005675578742350929697149164644091709248417540869698975998752026918798571277116599330086542759091086309413805706345331531014404299632585132749021598847772719684341216782649301546484524524652613146520919771665411856412134682473260724377256745356306689683164255110938342142510955754990285672499787660471519812050611817051001667792134647468508175822770027495090783319488266003200484398025070476525152689891641413690631430279175299042292880051040347073922146613215684171833562266451010309215692444270387304162732075989590405604429624499088591504010181137709864093072218998314534813783817641510010823242683267839656979193231070514529201185808341712068862248253906511340140488430143619362568983497658136290218989102764650022601357625394833030955742240079615136463668211534568768966826155686535885423995739114506776301565530978930520461248762806497723194644075016690015780006721793522465640366111528378399977618906575159164136897820821996514973658382042669330674113267621803363158443752153778688238955709486562422486957705141553948332841713180858054541828062043475004920080533667445435960618974647626979314651125114162823012957854046050653423201961220247640178986215639472455271694843320663860550287401898138399228256326206272361096682091930748671895072892120315964482208826943291253210842295613244530744573799391716800839299739803662084251076401847643658157459197249732737766201942910336592620206915790842710344911625071191165903878463726654651446543702433371684773712967065857505506224243621374697821360179196457841798066420743710662597413609112935468990216738995597831130307734946558244381227141575865919010584193698467361012430007495365150454829802952482138952077270554775359238767450965504644718632520790040112020279194978208674996109742425692889048207197637436834112513187504269061467100608649306408597771047939710671973556395116370966057425812682654943493746152789453841950257682265974368427635906602628639300075570869421264750894404232452692830558859953588591586609788167263269579748030550220007001571159448731646083049833034554372734780641927951809183271463314702757395600057934416706101097265267564555867113752099364218872032576844950078013487156688286068714860389480877091076542931699505376674496998157987028444521253254896251641643875933386534174908413224636000244463145908229357544304138364344062548340108232387955738932762532669628789686550520632513988467716172962497118304978676967016886274948864055445357237022732447302518158634778017550548964294337137858537473564764104927218046449621247148110451015829356054965662547227669895364610024493549586233149015642160036136048605675462374706392664290379917204977198065419959705582957966278419104487776953951867030175449873542302895673798476595967754032264165979299013858319049094974809726994943750679092936279825070746029269473046175717606649094383395908489452637519873361898419318960375274022729617430147869244184570215168779401351822535700714566549941460526180028265153646151522172983733055977751548784860521311878890638042021065748685498197207044259043864582365136092032447110729103674056280890687742887204995659014332869273534616301124238887670933818427802220206512284444511274229654969772016477815365481059793439623763815722022845601177529424464020386006482711912340531573517723736903816735465466483153585299817528127884193947125414444407197878796584034960516777285808636683567440796885969750880324257038061891353382234374198528522274275997255243398371242134541249865537301253779438073228446970038900435751885735739033995519990290421855742601353948101206377157501595336314741994643226891551806337786562493901872679364797197284212764769736043097679568172655072263870656072560198379445949971614410230880448356449393878922467543921915801977583048177997635193354498472851605784318677737008591459304150014913863590030425955452815432305731982173392588390613818172608748305816559773130751393524352465305311376217165339411618856428686033786309644099560121441895387380514440976626543282048959308510914439183537884023183722598920909143671470753702869350344042448281433550189196987099860228346790209773085222871863347346337822354901558525365652622188595602140578922570471912896068636307378362366044457019540654597292825724374037137419424346021180021049838035229947870888289953248320805099958048271822178599087826288538935563922927839994861360665219668371562311364797129135898444947450475791228784253171712302795525754031660715939703180734937113751218707897538660012711426493060473497162394735291938439393999446746322751175965461671659261182841834614573054989151243854893963267159322814532321862957537030968418334967886434851853754332676751861033920936375381230654427032887596197548652528119954396368057235097317521281899323613520678201004373359706702057694348365159850892939441689056121577201946120935576049652517849616731897205906451095147108607581285630709745598690008038719152090295464260636497678683354953469297042644299899484837137540252461743497523056066790797955716109387924277576810443067040112404438208825375994858553979439984333755670317609260795052492020496022858691905361609305578830105490992259827798844370248718801396683256755941120483283969180323491702849643586876124084185438472283685349089174194194071358548337107329669291262326607840962350622316839000761048141270168937322333513412702141270989091902596324934542967164789816161655715763544466247085714695264430875490290518850001234060899061818627883025026985353042547929931456924716566974604747807664391257807503491502834513444417317479108497704736520207287559139200084239376763962357040916603761681239768772256848974864688908660951690174093243965079244583481990995235115946754422465835167199042286114900251030876911562270963117834053962791838097799487073320860808309566039535983164113936295021558492636305321642916801234518066468470133881293851301120823899506837366362769207800358020058810893377602141551005995075850127678619805396015799351249594023369211694961619474285474067596521397363821003423214196282705790907003034707305930487881129879921990758323158098714683501510471831203720359205936728354360491571916185482283673641775725541942076776417031395824534011998828999024767460565486309702982931038353961376276882688731842901650284641921558134660859972331063265877575791338031956461402651292129050907828394575393501151726819289796330753990401647753786866884039081634392999745274081253640849256949958839645991361019522304540932560708608132265730018199793146065074101713552722130100240878163160804721516917557912849067886176196319947936794456666587061786238581469965379875987672935781616558810408719013457644805761760771136812674536266491413786512596711787753824961405925384854963261589360913387674767779855544216127029074953211310983229833124542402763554590472912622859900408000036538748873320718240205881214003444115218043853275759553746479788188183247806106445919671256274986062123913890678927958500475446639258474307919856138925210880228703622596185688688367494855959277717186933966985021017945755377230987574610360456472749504138777424309548254696276610126173057069909989365228648810511394121378947002734162437276015631868254612424471010989643330453877216592471212225407631406548035256762093963060831709266873653198220807182824993301071232378639744321216295937171662972967993687782242035595027307856554367827219328734468775181246158674330641864055971018291881924423081416637086598964184776261173690052672960200457733023212998919708086750737760230090380555802190643598791154094089741383586872060452789219319227006217841268989764408821771590912101028133791360547144923986600206066599558770920294478870600199255369076368945674223840054393804072287781056940771385677308868277751641630904199033536313238734177598874565926773183714646301005031315386108838966309411156242846224289703673050484270794810440585789697039776516227495015017449919111032165716456596099983308509945860555941224666273675326139494504887235057867422934191531526972358053731942315481534816192005012486565635379708697545604058619238178969094057866182800402116142110839303421374835299492063395280190953427268281173840761694432712765068910213349636920433857948089051626987495339892862755102884014828536151708671411160380123321709638713997331317007959093527751188591420249577842559591416231524689772674267965394963480620522995677198625670923323361152959196272958408745687250661386722427338923637925547743742895824499556675052577245421767113784142973309138126245964072250612972833228524767500287979965371715468194154005330591689114524330690777761632859924423972258228818301636513289975797203858992082728174459481211773635593939543561804711716547991264835354360816172659908889206670736407817665606803042040642680732118377901596884711886280213387747147239943781497291705787352844660556155130692266055269130629261386248239147654368224450813271833580068976675249206742352221260563804438914931166998203698651645059284905197464531826661831511852303748941011147356673254974560095322635946449554528515245959466169972375570446394285932106624626997853152100134300167170617657268505869217277445615233113090302972468382386634843882149112499894991920384986256300975952527195819220950359932329033460685924061402004951334691657962405211522787136377920277153001974588399636404213759850083821419354825303082378205941530299091740806480959257130308128529425530180877996443321656252487172250656984327477191784473418523941008275391118111813409923915077396744177248676945235281233045649952574331672312026435001071627237425871572528419825446059639499209928370249898125368106258145263591177084829814367641806028327539855323136699578136595611092725698710007299513946344772404192329594608694465928489232206979582919916681104209084975569642004207822963858310936779399075883169280854427531277434041595054374011156597003544665524852061286378591363507736034891869494634411100409186173300592902949009131717494004309266189408797101571655508944487736619483914445741757051891385132950476203380380795815373235340806466648264232697329090811241923940020431472900716084367238090926815253987228460833503379322049932656945620535956891444754140119108140091184045473317454699571023776189034782871786956547857355009811297426854215574512337357525200419723097168223735215335708810411465440826244945684311820254593157161658577652368889321088029099148790459510844832080524961108785605750355918582308913840328200801192156049848150061787252631648176795658970902746069577638019997677261752636218483927577301391046213818426571314420002931524755641407554548181255597389930937591157107800114434439598545139382022325828268949209162368214110522350312473098164236558562999066566558468914798602191858477357980530980559231125627069358292052401628154891404104456471930701700664562955373387127105145821561755694973091539664335536383820828989831595188895639908290302165420386325625558867263344880435164635335369127211525406623962216613651495748868439731567201483380252105161063721723269311929914138078423874347730918132401815109342337473320190450360143801720241725747639331687914452410357638298632031976345641545769369141912656299903182884704313477955975216458186299342533782791921179058790512750233637605190641318237201893255255414925892309435302434200980266467253607426714227657370308916249318349231496985182168739938411201421860444935495320815633287799422680068067897121854480135129019370382932858189189750622999363792544504588385299175663434894331698242110238298266000338085656614697068196229001059019467768162051163160619152098307457603461203956919603638033872198245011809868774551375606903070153027157435703053474727893680730794692674135223663591132143386317444679924976750276744529932150836220295657583506523053144691376387845208827563951186267823345499977825435804338026467353775730572002113574071243113476774765991442566604876931177966457815756974683473258505954633790113438204918462373667507627686716562368553654991187390188657028169186642904362259021944301090767407247327739798585666915954746454953117049103951100471087374954710216089165044856268226314345625786286869195042749390030813453069695635630337372883135468499981473735922717845880267279941508532715022203165507884831976584813988189104425201462154289134224076093451956541298713125222794363564630808873888338655476306610647836746057984586712629033367964283552969702868390100155311359453492564234211848326661619745877354308930179268784495549001328769814661789977091244009592414166594181186428766796168827994580689532289131757128983351864692406803289726012548064713779431200890822225265200254583767078159148377753113627093078818380815358216032012073959908389284997400791261644552082461408601889274133194179358249008839237915372535849674939734377285814485816773889809764198344554830228234344676536430523174741388220310654086988798863391009478460786409940399777670838578390310834890720857100726541680390851573691115249316545026789618783178102935874363060824853903099360464142442306056564952289136018857675357682778568353795815690075894162694180113985076789793449273165136504786101355157987697154468750845374602825430371478211190864241718490753828718843134041855758382569231284307906127946810638524583510265551668994904340350894623343889711339025391532475783691409202121529613114724091338468819489905720851801616090191604500384050479275396804094890104954022429637936925792317066727398206331370234150104858615370823587362789819411951251389920753667586460997067379315667811024859282849787499728762862643564514395935930660734558958172811706567102004123048742798104870036831071003265323323796347635353536799277507730512046712888893282611618477192544932115854807391088343685813854430388329186788412829053225578910631415115455510634330806646299040519237561522905371956966064158364074486136965897226534176641705233465003599597004091684561976974727801638745177250135767792437572016970980029996226774698724528628694299986062163309773021217115666487182697994815124575391594428643777005719512917659293491813012881515747924924189843677098487797708289537089420081583553647085472460503394956848299920080810602573106258517343376396102055427580019674580577246652477637258890908081954059637974345021775711283818962878674646046433213165447453491771597592943374886968682794122711727980296896675738211826444192745168416405847157342734873498429183085938420197878416073950248551792022345620604166273228830426906313484890586574712850850854743791985149497661347544843632294055682828646456263872603192110198433392941610413898883036913884803038723021208085595909824001207154431517668374256089370957402362589849357804566696941178672959493862071771212399002915370122915147090365811807133071315645321881208400336838735749504633525300057660219439213072842245512549356023205868073686344290300307404912015929544696928954695355457843848388216543536493807037631433484526052029062537856676163760872022706021546941983665163192471198742849854255638367472366694461203491154886893818218828761309864603037689866319982473378430170115720030635061534960187993147704731091908074390652699794315637798798466056487065136482365619702595077511088518250160548050088488812596822895869488165551184393414089853489713919581218152910932920929353833280933928918474886929501791866418135436709481373178152142302538020961120122023880914565568754029064104201949420280972620989024208947367377273723290195793902042187925940425964432953330860702033089557408482082352071809813652691894995539053429808764827969002947181676186649526978285907202364307917640624238584830740397509461870384613023645458949297028476364969208446812011430778065968236124420429360039153082492305482952363164416279306110222993058535056098600616302474506761015874102709726202070767621599868558121865378784595910948787836361123324611563807285326448462005651368845822819015176212423849477627859595690089071926739041154552821194719800215375177756943754189946736969411447569558697402863764979589271182214356449264535088960820830856473070344121441248035528667218474666065679701866211280071726950828226947337437006679279510946881158717074952342074986110637332194617580050550836460752107228397520531636039391545936610285968728015678561087723823538116953143862268129035093928984921844928275506060983940757106613670756600727166806521432899293521381251073146768827109091835920957829423920506924223542654938211233665976680410842352698128006068136703365492691333108678101280798787260341397323556228911828519045164572921309161218984426176956847977444159848663028612647508949313588283956345761727929533718289162260846442293883568210784987866345494695681461065628602774743385184609003600021968868320809566876393831085905404704525209621927668555621332665827151498535415299128765008111194262225038624453435610367525334998608170410502565923979222988014701476266362085071088356727603494199894300141974716242388342659808846847464246951845439337252692363850701539191285563288759031525881128830867440754113390529787279495872262518663559840755416697315790898114091867646905396727544207626313746665900282791299452794312073199869073289786733395375035253456182235952909538947611442186424863794078538023857305740240627574515293601409577903365966383186644834395674377778097559389742471137298373629786750402722120371404161048297593765146844486991760891139993712863013882746998614691540073837303131090749577647038819376980119025609443045779179964114518436411279791573279271443067104430763918697743332403737334863490076620859248610996444455676282550652950516955543117097280310550031165555417809690778577537018100004352086562127840684781065237949823879876433692059380744592638944154219997665310022795671224232398996828171355812439944929550583598182406704176689547219233455986905843077848083638587113176686332909788930102764018214575074212529832857442575536639155385558513866991134817571437382705954338459943960311720520500799517788640576073406186428887455538129039677166633472181853549026659265986033228555920059568079804029205632063640741479035320417495005438240190699376427018699886582989166735027893757665416518286481960423389483800965865469449823419738961909890037102297738189388323790148472136378527022739857183020851915210293390023928443107025618505254293330234854628848764907533933956839237980073995205934160625966724859087767029658397929557892240871081400116264661266086655668603742993886319514321019810539991403835344401332453412549210060549448452120323297917468482170588010629544897109074457205200992083759616658376454764878901543561825209617257419835157674815880760474150017622751028512649952957764079196974818221723364875206010130555095017441352406761516323671793414420690165162185529702005168389090453839631944007430759523027467019167565127441159668389235005843920984848738235815657395174627832000376915207246447950405393954531599623128924558272475563507782899399097412430406501967339287104666194905809605575519017511131263902363611418663631395833750960886480403354406322998358592581876446164004931895906415839843388266396449457739438482436444722123594947387236756660312482014408720039202819243255764097880871026729195070039200798632025540578960065485934252940669184497561843291046346025593579453147290234693406354095513723721852192795801248877893183832668968257075846413783670198970138905766028755833734999309914478053436084764522302308106527040250301192106099790145390077164238837165346332889333472490319412631411021472024525797335189736264731351358155728894482878711344639375618763705960435489317819260273408056896380639724047668127840083957115323513937119053445224016904342426851455622952928320249002202245942887521192621723100431998056646424840511550170859138362318573469293794277390129453344832263621162536177130308657992787097809761963653980218840613676569614378583012446104667513263829673487055957725821500949676481599769802689371735464773117224569998816678973088568876447744923911814957896936311466702379369685219326395327252965173564753810121343085981602706640931048150148866380031183002550906514492458279400039410525267500594162168919572110440902931346495518912476680915919436343478520698703172059623081387796637839613451925399223324611976230512415814879716231368959749086849911120326695334042911162538865040908091903943443339668132373833947507606893906460098935877333894527145314262107546669022932105115052914697095190846621747225760181490305420972352349136423142283003942340872571714613025327385176102512929918291535369937935815499419378963968138594521202116607528547224959021484492016280861494183559714437049850514628919930215624902458281415634581192506255848040646983343361905500798719731284889134147639166731941358763016596361117539411338091218123518657998336015705495281764608989605959380387871457819316448794814490259732135975879536027012138749835193122579426878343626697709455073519202314265553013427322518990838665177353460741423818728025930934907745733856296191357736908265029344976580809377225888721746605097996424204108896718384416784799312294265156360150254375573891556489817094087746724677616094606031911508160419699306003074574802001983025835514788937895912407206771427808813723607245708299652060093998276858350401705728068584456984386830444090919304310456303494353682480123946332237069053378768740687594198815811184146769005324425802793918070896025748510227526553288382963297811422713469273280679268263565274081907868749394212936139686303914075766762320095773196203939226492573563145615047329534276252087633776425473821620445298966452225664262746386227970128332092932769802699574644767716951427455876947997097251752224132580075791657474336890743451738011905603183559759929165466249721670197596662113437377025047039746966082994432004438973584830400721176136164945051985158710934032869436694410849481215166810483409837235006398101731455188909510918356651241977585777864616990129418007449926138259888286286490802046941425313605240551099222632270033184063348453213463592267391852189775175314913472437849508100992165449913343865620051473665823287845771898762260752289457399007851328047694523500437139813589201097251491069969149719894676844608819548845385874572636206711392831770712417373203163749494068290846719316075497492770137306977576883085525875173361203224892564826910249701654203048221911175976643525655084250202511560490109756689527331009702069479749530384879978998334363749301092927454593549513003458629955047830173123825415963458333835289680139574185823469721724422471788236498792608897650292607914360601956630933907505352751014048629526910154306863100915032099205754658245606585743904571166083307286057311548927072059622177120667208727136481129766052397516773494013126065283251261698378493097264465779488200520738456725072132651979011637910430923508138239349186573146991873444475243948531031970049123640608513917880869207382378114307503942905231725039170412135976945899439654549184252521538711258206321933730056905926054228641303992714591458277623156180279733730833018723341089618310843982237672242567287191433330247151115211798946740754895813572970626546898441213712572017559341524134493597002103009719832951469543698194449074314689920245170527104952924323288253693024995989173693875020903668415372081552000606272619569625101382829871321545735007627165601315490091224844597818200109945201670286527227331433760445393169675334110400254681456239229633108101814729968261289776198193252768548771709057767288065331888282206034546941441206663952873697798894195420243339724601954200102933563415406548751071010758086541280268265527370665501223972206769952687548873158348560355908070752328989864381815148214241073950729239041301544811473622689946558013633270808058787559705337027144877263528299562548878688824131696357726223046533118155288590874351522809773754476380666376839672628913425867390280903483741891347144261356566910559324195763036178467170792283075647249284345065817076246695022923943498278594937517615267103222823034410841453344768063250730410335359593334616220364427150838876578065671111245533476109755587202546753115738201694757122362607094659083860993135174224298852243528930606738690990275634889732571388952014165475338894486383082892787254395173163634367512513294218488278553096610126175769839472633827411413051439827156752996764319411906113349007413416512179191411560307458461404068582355552245588653199981348688499588735953861653012891525239722869031715610977819371143527050314933320047565048411938374483382707879624328355139832034497512147250141101996377722022155481680277511986472087472362803592799154781280832092957829949718802454958403315570055639007890153560624613308498175789830986476580448439400479229282321193983966040998068752468943336903371974302480539399198355538867462184159165965485288508642877647813641761177456505305304172173720045320205972865967760721718658848572694070450147693934892279935825953993895222220704161887090124350420055958238595440997137244130764888351284770836773422046909894249246157678699958385329342631122752661703767213873831281773374860809028140890816026731804592355128819968255375809610182582803784428062311498703383808275653427442317981537590654913237605780850074224007571227790898506609626111616983304473423970237862106472998552223798001428901333942719637168313805234741156314322500363981611149534590102741701263186639212716464581920718037308506634305460624691627369828897744837361807053265913315333173794724828569980451851014829000995742127462999214053370998260191265410653342085880146798865324775560423356448456533395192365648059140703268750975497405329653762111292055823642427102194502504993116477944498499242315649409506448217884456486119069241336095394054033314415219679438915372579206500516809239758401181012612397162035927277827136518163205524276909105873727793564713526575904891452429119008499785988671538806057770025058334550175700396607197908547159381764272484712162389058280902621798828938141081239340824450141133527809031449422599662574188708928322804441666871856946371771440525921192553898777862597849521663878590164948004782709052909874249721154873147440135562179675887136355470621838793110732190184101313043732202912056246840480281322572501276595302716914734882085406471681789487099636390994546763755649229332862686523824563489788306026317768421130021477510818059597876669354718229719450552671760617236939176620688398631893414127332564312336223105465662935779292250897343624506654719881491198054751507084320897434505471602965578480539264928254293139980223019388210369633127347329376410032207125724222911346305896865746412690970684719234306224227739335197785142552630496579516688593533765236103896617762739438118440789356907113146003832414697160707450254718871108757120316149714632728437903260761872097897348457847607824913012969161677560240540152946109825670624489129636246879659023778213941516254940269764396317672206668195724990679786180696355323832782624934146197215029271811317502103672276041196241388259538275197509367732549327153150947129576076022857654869256833296650437927892849270916728404936443935698769362649427870171146517340067427756528445586841651204958257672734861008919504815213285934704743674474913689889639404933248061514569380313608191472014657652672821172627603351397941947867154745771566673504052963675297515350001603458367859485518331853436342102106855396676519841758816133766098221302736515884677893742778340942631989838829705543569212613726736128299837918298673433332486112919953573062300178620410884796729220215046248393954418017557207801219204541622506443594456082955534413137498856138787522584028863834814944491880727856632282723570807262734520375820261118910142459794013330127939413974849991673783343702392024006289277400548763320635676351023232882220223517361188850644217838486863133931561590502918948245287499803137054673742878994488601786520872595064677108097810176098187105703189386678546388390404573707379418147870306280482685914374566067982981614490056799963294485588737745136244486151126076182452261247407579826678563712428164301095745532376052720899661794836804834218903050579246670813413641967349894125733214552460863632936574247813254471300247002113086693389131342546986204772872750681520789483618948898693972222222095761836550500259326253006243921273842260088549169973321477179824386913015236232638118165366027533817704053962193147715751659449145051438066062595173879567743400615217008159106587426782496573426161046748709740937286345701721981660381267008644396353872355448974452107625142020841406394101877356922115512602681336256703954813639117743187841240475989919061706118793888913591254265717286628576705345330036101689444447906074611079069103004200454863836693370613305013970487017421811025838879252004185449145938703766729843499674229159229710285537926431558134883409082166510929294701743852532859987598276293990825131387583570515418351632561048918025881710631826236310166276202792686580992916903671002765467424754197218747587799648356770402883600867085210774415839248143764833919095538434601135160152660379930781692917890805072337118477752458432880611415196763707473260256994027905546004595422854896683679836733769092777858698160953060676217752623513375892445172918669397035609664535221213151023659162230023270770398654647202993916261559218487303215571603500963317154408539339801974889155667624534255403645721622572768367414329601031312222012163688710398598717379461839008990216321514936866865110158050622422534504481827556816314139062698050140961017163001178629081265107756862074029313680401747830356044392557831028538200398762115273139052465882394310168958379155557254946855896863386328767117661694052750453882366662885120758701054544749217558226933998119154203810612375520078474263086609474460215373899031384014007708394072393616896742536341258993026499903334319415208400502602255236830888358359736695706130177154504796805416952709891662496242376967879763228494985862473605221355376898403383309987130640192855394267253356659646954287470913493141144164911061369827999285678252733432110472496904089871873037934483206458884515400874553260645443335290711219318406891013089525071392201207274877403903466258642061513908355970427411474622309689181856807884403624373946966279317720917830957343601302092251602693137179764350135505120227561325029365968803288709173566271518645017691233463723671391282973543122299920571041113475799760664083050341106362259991368755272501569472009942857620394682358774686215907435471017528420604337020587718575575965416730452532853080338676415007156136324867937380559739108765352537593543131960818660923295536544220142550271893546093429703216405247710146759959906815878466753192402613261876066719251893501739235597540857202063982746245469349911492110467158580642233323304125791097604798755236795800992651038725184832766208100974540079130151208848281269085838271082466491209551359368643635410228600916056940971812656105957697443052092869388217586511962682966123997295507932252304415779319595471275537508378890540739120738690627744610705026836829739487496634224892585233449580451597676066664246593049602436758229813344860011886688249036681829981720073234416182376456916705395006421172092792029234758957878453144783372507916557959823374734138121864613353315224558952012226426250158606343717374630089392008226679915403375309467447051352853122495001459759993773663732456722521758545947535908382635079306916119584815223854519977448590054284033519782867113306321085764706214292241861519922569576418564993878990921823478441627295536852471460275586192788976445538323571425787125719742187341168878510579299819418273600514899342025828817923171403349199998080106229018031377874169728244627586487747621721984825515555719082503378335466807007334014125917822859163833694322175343781738897130845914702731015389468776678404996986593228334308746871520407055767627326367374139005811839226810542819411034053218153930125107941344153996601967394306434424323341992213248194229019426810298199280507321871387095431178004627432426019027351944063647753980212022816304720018671513536722073365244379959206566128553789000579360360224047396796467258881031101705104345488529242700647841635195650056066731944544263978415286472882194198689641551282968203104802782793300251246247359627755713695274005208150284820093294901017684383510284248219488111274253696053858463089080980209044114170985922800333486898745569257961880062331308540310252317383689841285191476051718385132808781571144839294584714560923883446591921314972440490422923321706274571529735880145942801669253820081014542836191094855751751225798297350255447889011199569777996142236212035322521839855280323902081482227127842066707391593372601240280749897687776246214397288632801434349285912087252541283165933723694582283500909917688455495930505464250174309188171732545616127153472634993333776936664423480498124071703745202556153817642751764043093913012456344395003571336263214252213281785751366007411511118552315643119646462595183008111860840593929351884089519073262087683651069224176604407896004351894379920988017193798538669555402801311105383920523676658004491257833836954378725210559674129935381434131837795580670502606316936011571731852184529310644070815699710622239747230492143506795812733026759213199063394282937863316085255946207957388618882093381592516004713676041968059180020662463586932418040909477551426198802338737461199110893330833297514388576017813142376927194082559768980501451952936262052017092752294468869008314690190229829091565572962683273860874223565811683411223919416031517208953873074707234023960657960557345163640565372929106029810621214067476330127090374407198296233812984361451642420423330669346111670835393638545934541014765559246051867110969831736347998203932095935058145844529578144393271166734544460237472876814243257351117600862703840126396176430407095921830902020177735758754214869826971625341282704847923284065139020896815024233043956160869728553501886828731753718682513811309021785181478237712379167271040909959119828010273490791796952617858111120567501822986898106871280493433597121605276037772350685051441825249448114175774818041090331369040394890545832272025546064252835284450789855765495755488043666504461597536261329599742603086908371260427174672315158052412726265882382204781396588448619876397542767227771257166931411473524150672922894692679427344789296667148817224377972834316212025328872554415046240329117291384553926115745734731669279114253744801606412578352805468168256109910014296745261623064477660756806703786092736280907637417825418874752189346685385078057518830902339685721754860342580666788151456672441299430992144788327287543321042082902213325623974448746889961354530758473966837356731402994832017371585451377970418567088214711279223807169477006372110672837132597426767067582042784065444112980650644246832009379174459421821412880865905700077007897961383086577677051039314862831674231304229766263328466213853120025342426590513251079528596021618393070792480914482928411932888876873483881128441231155541634115129765055042711853019263388340636888159318597519755475144193230673854852292391373327817242809328226637349317546701530204038963107083175242285742274297222470188435221122204575687355474232459577765911307858315446089895366770797936602320103233649458403911582954228512185727210376341573814938605900180905507095400806110525117387383134548694232174689900477556014188643791307961592890371958334051521261216242006695490257635992078726934937101978188825405741165229896372604518258475583725089475207865224038204122964119485816075288252441190390210652545988278125815539061243115836096899225437478979678587007770692052405854179012874570773061189431849841634395826779412051537362628480265002331146235054744367587308599542935599049058915516056783193287352873037744798009074388547260095836634199487177893163642946243016716920024912517135810715784121399752426817262890125652848932906281565694979599338997151089103277788460931771002952094625805192945536180695346462071441134869904655395712665147402022515475855053917102655957273273921241857522557320821718629692110496125101786119370322373324211464688987276266891568922109169584532790364836045079896553401267938816395816043624622438027831747091156501145255190271307060218091863589255972832881116030646878639259366593234283684723056867528412152517272713684730537724430767191431811670659046418955916332348114375733406588701739863290042291346822450943611024934331982769050523434762769761078750530096507373320436395895653937918650222193987181797378844783840514954578238420460224507818342953794732251938112583730596497901304368042700951862733037500599770782438081679945867043571173323992054740938968546455765427819712605794824612984483678170265088551842396655481920433176638702288570667619478794220394458086736725003449977155911586059188509938040233460884976264413825701044481176301554144336567785252651918308529446868669685072662034653422909985812833747937271010647344100029147319797303711464998744654522097669926555579906254948394021653674575423511711666393300960222702331384267500598664511970604259632557026531002788215841697679332491733719217347037086647493557415384460149488245148821407355688308703149853773028513014281961903205508602070727763340249239288497196377274682556451832649024525695152425917105084866256700723421253459105188890577357405209574068209368870536868541262510281268363700795788980447851565448778343349471987744622506121394610665821422635200243860859141297165657612278108181767922494840807786220726830696137669316476261853034578100152781202401876642168752479094161922487075704095868094664337825954209060206036494262890743500154160443178593672401708528970802344981849916073559644671526919445908689514457633765787245776747164743914665762986487803212165498187210913848454364430090367486616792373959603998748953383855789047581021961639655141681427459433444856728564907815108373780430872690218836452812265156061428302535001272730015925147055116079875198166930573212672159188397719813418975700365595924832662664257184761084791845484701924210576375968721519978594948407015437184747073807097480104732424645166219024965269296380613451150317992810080908159336398978912749901231121033440309767860904300117084537709721423004449633641133700603554420819252826981502822306801263083994122812739995896104253819978452454644468170553182277701466229194773341012528893334420543246356067391312502722444120227341215445790690715223694760662432356361766691824336819072434703991786780665262679158518303988768562106102378836041348043387732280296082584966261931624585304536306991362203358128293132583234656107558850586908568163989531818476822591541936017730754861921028251255438054571594433583101616316292374740425962876439747342845413754579319611524807043904816349254819160660290573055894697657333807436215879112853939957752257781622971028287101633004449829859034835339746792584764099991046380509197033057751837015430706247353741804295990823086557373940342120165967591298336656768380457194944421399799153832535483233503805548724671452126943041527779252252139238578805614158390991873620686855996213476379117880502206511173363008492466457495061280092903108156073589298185146314356131948815726548626254045134457688205437835531680854141638068214419003333517436732013542199744643904105205896510595081085972163131189384293655715292990297924254442175308547433555330146899018142386916346121269239051966267581827622187926829782618314001307107614916956922653054454997044634179323336575939311630184410605303728940338614060800455616470468360590074199732992648256953410927267364210075301263542345542563023374659369483412747148379370351716558648817530204755535006195065734042249226077369757885311789743413186880263770372853299432289281702652949334131396592917080770800388049500336320459338409584927572520987263079421304847647424765661844019573090427990864862577199601409970019490978377809558028259622337653379670904822609133488041961737932927446060344830569936484601596156335115204943917613510968214686152875225466299695143869440197512858275925841637482361379576325062825221224213852020033254701892815992533048845727408433742056341750734824966173073603378706592314659235911616199042618865157727284347057985986101393935292176757900891909975455435477196082918504999053857916676295063119430015716908125992951971112085619251216235956874067731025676391465470505654509790837223982637208276356195125590491433342229753000239104505096603402330162768526785808744427137734609555596798822389378609757362227798828423772325278723061393189086228663390824206696145084372434223231854481611899857775166964919673408626705842532471634616392058066182377714010986721497829908549756100276576517934925293050656556039018062014218254026425432700579055563629156565109672715083472300967607019385027079890551599541680087639022700815961861010079652625949781292306476184616019220923983099847811623777460420968649201076739371773928439361105022811441824361986262813987517116010302436011851491447825798130189620856377588943869468247698505349545903301166859227382051385621938978451853231428763205070040716091325938854592310648751501242716895702340878479460696405069163753320948321479698261966669323535040275781955789787790940552836330813976261353382704846980330966615360227476098741867807422130332975151041099639407728750611439389655604230487475971333796205356957959987630976587667084064113185896804433686965249143859459401197884260647138532509588649775665829229398893408133564866357574686482733714782388471210940650043315869941534388062347730348123675575004172961783511257208709700133558689824765603466803645606778853977390706753486887702622641095741515830169328752637762832207982411892753885500773142917966821092107905344656304688348600808167731363634784143530210339803500645561383055347343183894356175305762451434479613820041421580878338328140102738306604174692084305953544915372264563501698559143716721419359146049322834630971948207142664704982711358917812723575037627659726786641661136947326612614983860851385265933342117276258177600354459211971576653656056643616288009508099638441272349892696618629089296674659063514656006192701944776982114909530822567537057936085005408437248312583771624303803564876886415429053258751794095533622676138861012108789194617197140214869918665219637934789705117466102385156970551938808561412352879814599632619821536603746722968266664188233181272489572158051898454307675568426289341100662229094294490963582632171090043825607612728010276789425440698423551094333752410229134405895327388029531005674581060759794173381735135754301346083199880785005005357637433229234196468079957645163947741170864872428841100232709670154638436015680118911579020920988866037825089640724891822217848958839477604841789274772716566882686042357846005150670437574305079294454278017458267556633807528927796290517217273213429639864810945828189782089733984533850943949361368190575169039403392015801025486886088795547008843325534901700577490177072497653826430476091763386367401177429652447759157028539845849392855950179271543165462049109490754431269062469632588818325217391124885456216719188104032300850458059247466492380403787626592215072601392338791029457761257848880838743776684648196730567528099777019143837263725487733061339197691186159196873517852076544002287432136681511784767294817148225291451266035803780799100088139390549928604671948775976581025348661943886926042991153542768255761116161386267166293314162182987989210466502373941719770961931927379516182008630977481958212925219341409553554139687394547590505564687301593440620903560257220605933743353209137379493901997746756447495408374074319682357336437906504610333243169653456213873108418165506714348175779043948246235382963856963480694284923731888879703895243624194174967927540626250076141544937983270681393805612433266822046341683803135170531635201710444639779154073754501606821488085335884779838760600784144891529231807821731238858395605340747023617632275882875574641921962685897056727767874235436537959161180551835786131314510163465773400452871523086532511556755507116077695421283296205761860686210739899818072458406913857790580031992829179391745699137386939116748202911907421348748119477997455043180489541196244134577998035395541624969278503098804398020843586242471541868982812538789428561024066021632703435962483016236177302131705298050422231083936925939184205065509455530320894716000671453158622287750415100155756616539748058837775941603507214005152116453502665593647194037619916718781350214028075251210605526570888511732464056787971422437657648664249391229870734608215331496524604385133925055913641245705144114917796514659717268135608712742759766646043569752922653964385406434554282357888514092892902013636921801440293073581340518964483357889324497966879078352074678100330044303965183285121111108780119931369175261531540949023547602789896845493989068523568919906454406672747965512175172909790664376897844053042963074672223555371582172849750698394944343975768545017202987457162817473070912045681825153480680139414416577019792718596543941355750803994496899603823843005412143613343906433472811773990574176488123875728208829162370903830411412696883374044870995153548904768852238194321587245197414398727166914076580311049579671160369418505516894147525407033692390393572444411157451727108566327839103912289950512550013675411592010540655628705241708729400417570996989269387141093502096830132167865354534334615223631524386862099444683418252224993960508736129150122543330137799698084894577992486824601512039495565416727278564422888761904579156924621861557129685452327743895153472349120027105547744772358693720748192486818811883306777175388485629342336169663962080800400218151117449316291693759000333098191388455062984822935752759596673742430859507114747142246857518102910629673372011843922937324580865624040886246011631317941107795275077040818718590237985102738508224926361856712204077556977898192730987192840183550861774944858461538396130879355759097676717066523797981755914497487787284583888726709830414114060897763209329307087437678667462744518907907672104134213235425032120515724487651633042947942568874601147695238516864476079119422396275049360210581251740365170212141641663274085799252872381154570619210557137332420525863528005634729918320917237042325094826532686136687636077220273557336015594637967524817844775155649694814959556983718906550434556623787817674421905339926485203051235416584440291112368269273595195206249292082484819724116381871170909114740167880467143815784509100434074522806466192767721724689811050722535686991104169355331915392381591243089286922208185361271937946146959777805026576500575710690384334758247521880725265181682560334319704819624087445040729502733452296054188220599160168102704484576616338365655252008849419417592539507058512691444358127416089473113690665372541215603278044910475420063786304030733092850671798490122430820430295380402801115040950425015415608718702126075041078289349781573644081710578724094182994325280685077243265867053439492480844246359261340656476717743174150375043221920996478035599598847728094149119724320867750788935388125227227769231666472664426016420933072048301958294667493976829265928864908066262944467874042211274545271858992834820428330114119587275903110441488187243959620950931657091480868882095565940888999499724781919479277389649218138962754253483474109414764424071027094621806458997246180722104415477928519789895357713987148990774182820458434791461468739015078757071918900923268531076522990268066909026399641620374816207932827979159478655009015938088368211482584027964184506244925192506786306549372388698544251237632006015721726966213272243782575187013686516933076767545275419943401306510842425456460420234411190014720410083273117315223263206022976389990423926824549761637420016835631441329994401174062556295291446267313513749824392337570994039480376035322569972830251688408744003146357684362483517872598513907939872681735310251922313950569666383833178731052797845497599588740907015503717440724291837862064168181331817318565793708523441732315185828708794345311940321884479859870628434925578929515556276447696799230511270609326038776237965012829692044070413141328556739931547887749618123460625479492079024426895282508064444790108598900575833944618878504135884849974745935349116122396435764171295739655520314525766375954801744710509792714751187023551638874994817736642033647231272481221110986824600381171385167943249936909329190363832952582509492449647979083777755092943748735937800669235989729315048629378246226485953755616600014541931221978341057418869208459992278705866593147858917592973173651747877263025603309590762949099033737525660089455390357402383078698333299783234524520809335284089362026164645992142515458376435101803901369270196924375416610530856172309022185353800864878267273001979483742439288333419629500356888804374475888036220109453334183814685976547673388132113034991769612863562233660996796961660277512723661673105302679078150429340503857593079981345770642064338003742247854581410204333218311131183123615020209759993386432982290799396601158294206443893310329783380201008999642690751195965642542150233158456273931206880960507957902671983277447351367840540016332992090738559379087901896109567901570440747970732733485661375708999357313012858923556463299562758299812622705247601601842739459607850398193489014322928790157136179398889578067721786660330215594661056499703645595193713839725197938797297819905107460631299357881325868848332694778941835549918673477188131478937546561297619280026812518812379392942405840115855128441510761693734114376534566452621872467114433450058336294302584615553252330107492314293816880111215799241936542639786733562648084735434622123031991356233444362661185055914810778099654962499172711271125161156086813554055035363403017687233718743389114991647172769332685722249337436738986302539674539643331851936149081860529082783727368556224712113876833693525303563855791915868618818517829575478822853980398091026198992829666591159261261839822938459097161736629513481315289467712527270230759084400380676702814363836167447911864611512924076850091920481331094584781371505876399036661941819119967556554342777024680024491942495137522827206029032038659408248466072899859196760398107717566607955295180404800272690503287482479319356220876544089251139484319894638928633764192009823168595576142766372232102312579179592681962061931061350609440427709520308690775837284961166573154343925716204695453874865770498224195429042897619121535919663567659412614706747465213193605452861254665100505964353594814536561296342503374852418660684322353922466805396065595650370916198097802005245454867538704980685344786192772133651355730440839592467952160405233034820802614288522806289694640675578439441200054061359161796523672134754243491443206102379149168274144553610379293705265430966558827366792438601678451406625511536033344816697726625452728937328724279149767309684336908758301099726701241506598675878455649743716622609164239568513242082500768736671297207390130593801739310343352263028667991381991192226212047615985801007511187022582095526175915455611763496962675999201380845274726479875217808781364912368263095497792169822444389668047650909934887593978407364225390523765685438253810861491360054951482673157494023174671052293510493481653018588645306093090870055211618290966720548081314112824579217137485065181354435463011205546640503454466960956975563351130340333423588266015830838880378660424326567388368344432272383401062078203087684292054205623582711654301398614022362011898615870007112667854075863792675687198198849947465504937931478478346917607733488955545084948437233942880941958269007695641146815692079476485064802280088431483505728375416909665735437150525028636200121789169905169164242615649228005312405014422805927916064562495356615036996239750806277254498922580886961071822958980727343473120082363392362457054824847927644085640008349345713480781161519062147214507405020916281122064880899343710548734356833422272502600942886605508841956992098640695064686042864847213385114327199906727606884844170727637927130502950431749383336910398512430638685306969719498120414951851199566393871444007431614899016279279073958054350101280748586614773139457482043471037765468922276773101657832971304371222806783796362786262612658418122249391648854982853679206453226476341722124618810118189160742357647797086413730960959502644878886043781198279896326277987384841453342900911461737323422468536336536558340564668747801584304874109359285088939414293964645437603744372557806123056212409504712047252699082315763890378158764361174852009431394461199166998591219904900439805638590506290044093330535172108303534480082794058880826553052251689086586344729626620388026170974269638098843187549148116242579006886707000320137141650413132436076967970389995395339597280417266959246463555674341275278068475519792424195809170161327755918877924918752473145887089865524723225695068427721920885536701242671408400671237214219275521237610325276304303514928834002791181933352908307720289670724741853000634876432683749896974879265400667562205706850379600214223989706128901350985474824500760967607327357311734804229809435668782323912709108375040165292965508327701706186429462576724975983278714385524649410499168831950912232007405818319760708595812791059849319110143634226477316787760264380857606670095215973008556427247617667188923739375008850316416500794391471427550367776683866197461056383659641228836437447386273331266748280310607866867994040229263794115524853066574083818037834536280976430639555261499295177397550876959556235342940749601527004960369431093655067989912532762539046669509495744989279670476343784115844915010713871109329757439885942868038461640559080583377380173576101721968162575392170477362500256474069118905121372570531073043122627817502238642285264373693448752750791646585380401200094560497835359751455425767150595967580903971890935817124740095151891422757372175032735424757843297015110808085259051509372935592660517533296632442280693165877683055191975166312482772784205125358402524727835345092940401167248941769737545857255646258610501632323124121848141678536359112763891971261064297989591321726717737685902334855781727591975931263846593302486834822257640133222440088356812895201914068050277311165597223002579750093971847599115237829123836014271432428293455309991721792632459238857654757073054773662669093223672234626336768249174595992529524085634485363660780109049876909804465927216077958788350949341183273923306584442946482779129750089802319251607456023084123875401505097411619704527255987533393040451498170335249946828871320031022656522317841967581146965820551444570681016084718269454607505146437357902692826132627395037987941910027227487466656007481046541788904360457848280111919338825976722687433876925877184459275886152563210825513957594393078339045760653086255636895692886425284460392348850790093971636140710040070270679428418619280394769780574784070534779865258813081978599174955661652930517762000521174729158757202301324807185647313005427141636252742394824265274949741753175902943557157122371639545711624488736632641393152642743608949254544113717326463794978241436479772717158776471654980362388182955795344335072248503621792426190792974775060740633671040366930015050311481545503533519033850848307382954780597744001143383000732718035914628793188380386855603037205031184284700089912157162098210952775015228222892528813706297099599695645893143231527081319171217789783961790293618360738064053383803415072590621908982714758347456423148855308002070091653148342106066828523423153806810632583053693314867418633559806369135390497040650684151963684792625139160798341416204472245330592865056995717007776683547390121016273035145375280666218750130810388283784156827989725408435986772636425117692483177911393129867825294826235799054587606471867388813430287415461416387778606011149582214302744243040467140148399312749508209598901310052479606984166631514931253308130795040889151258288373770189095225157658604865560874267964316946082939752845360282985504252416503021538613044605339194944940498731050385753221434618032032434828555800661937982664134009784852839670094599600253190032867466818373050735907595056212378463110738411063171119822997154716150830373558241266177430798195492859004484884977356926652352004665488183098854414426120805457834754904417276855231785739811207942779425018222865638885584287892720685638103380739954579123489686817988288704859226189114843964168193290587089950978533950742015416695741268803914694143704127695228595249461774885357343675571440669573550971374106295661238321749301931680026076926475767097523931364154446053029229854322792287113735185407034242225197478391555577377307492149955327906655135854350141291343703254627808516576612069301730151390556263920328643182250477861915883670548185130568451183177543719985678456147745283155015354236145744002934180225174193969356455849749366028985574797389526104037871893148293502876033817847080544786888579993376173475499138823712037484233157531150387018755330558235284275379142901859034263783022858127761383157037103588824781586177760778145200807591413726769481567070477238165845400465619675585769385816902703369981850297720057978847924376439540982296492536547191180308338090202037112880686366164555284421646227605063698211193413360411690099346977387257664979421281814469226772149421694928753894062622184491469323787565124885376052027648222495573138909203689343876391984384468797307051044494273459092561928722304081065631858639088032929828627467249945741286913204976140821181088714772812735103500020735258030714640803471371962124161669870674400803597488592099236509251040311205202622106091511127426217134381644937554032932767581893742511786423034981272540647703823223379319581007200890572952242248398572024089193752144486351114049022191851311886860416973862634698230332322445264086936427647683085888186254051533749723977849848784683625174152239450213199467522217790441821465692379418374445963484332931708898365359011498000143822909395767817597773159585364886301914312423615654663959940889741857959462601416371644629538646343649003070962277752835065394958346358682631688202322473044980750745445496632517523678965873536833348243894048657725160275008211547290050594070748029460403363727875151189247934801692645914990487778109860214866188333994236758052834600691328175575842728496482994135704961951635380845286492051623821951273569065467936636323109367887645893097562990717757479999607514189833527058266836333076052097687051710596932953514798981362467591153983039013084060037963894744220482462402401638683895328805359946737213536984657845933725212758006979174714200489748829070306610866027908632287445348339628195913784146784469100849737148814662404784346654690220094471379451981589824272148966276044934056279674883768821569954702431945968504053995870294318503004935563841386301702174694322037406550731166697081012454912755689589675277992184998604084217928694501561296536526234888029600195077145334843091728329550626056892174857664110523929416712189576015843437332835962778423022921969275056827801232174321539406882320654889861364883044614368443490255847186222972279864269660448190764292653256843759701495585416148125909554934391682037779418003169454108909558924227719690347932876905305237735973386262860520167638078335517142113382582309356818024184595826725613624899257632245809503082804425938628742955235990706514027045493949586880300714739918708755714956194613236416575407052206626873120688175318506954419434263401983116406743042810081052706830264892114157590619767809730403851029967479405596379737698388609428137555531388452874966928373297689018893110741593357654821946162353485530524854153209037177271098853579201500228912577596093292720469898810264786068352756443752474692577112613578564651672563141827185129500243683439222002456432026627253903476085373303880728341983034697048512941374699667203561040582534968225516622095895153122146126502554133417304162732844590874197599139014129692291814092960774850414395365056304702442829788480490573910389845075063645583843976805433032696619031431002311949179178767865200692998988668389483903179959345975705617144035694350778997411337159082925749697396740299638533608435256572587009431222157289190056667497733578509496962480857348512700525288396488220404525985019925641246010013616991273140813480036956362915294683041867539725271493355416662587215913762560060836441237572617655581456549621424822999830512262022473432782357004824560784818818587483374989547262857699043657569470083221774492089202865404075919945311232799195727119246755777909963209050870922336962525717002944973879702983999538079329058276210832593531397260493127889817486502572622459199543948395270019361317765909353054955638505866882873095803386109350452399599202846095637787818742641496388783792709024909061994588264241442606785237373752164496873296384492722259255314414341317731569285696162602524526901652077087898507512880595927569511877599199461150066975392220282875716720439294542664069607521319993911318547281393818926843511476799213664281726766229789827280973120841416482256585207126862178687165462258564269731740392229042605950858394705989953479378792494755777695488251937065128828425150358327399390518810802903737228659872922437202205553675079551943971420941446709757757455418188646200235008898887712371098804558140998071851915440874187573245709151369810516737837321820186615396331334938404865819244352594040442093749144764146759246462540553811047997133215102661858161460496579184829653484896063273411141593519726206179705682498936441099144202724130343513815624350888933884153803868666401618033465402785880719669898290361827879673327186665809527174988255304792722233454937134134633116816768801746881693666708106360495223998959391555687529956715687232733228667922845633825094513754856735491754053595734520418445159178358452459858386779698809190426055536719938017745588715834255262375527354575040364542858323272573130362458572119456333018323099916197389704105494304768395969747972632405657624198585564594365828933523788843863565870037132548687061268242326105499733810159815866144067447648260582030777664851410667218506378280146034379193947721987797636404517975626817908099202166595837079416314540866868600672266868466274412303959767721561543629236402553231631291372686778972206611739373910505296656422366815239076450891554320164237446557752253660364443116365203935024511479393174241496430789515246730580922189344689424630525925789152600317741385053889605973553821285314933612596902930670149488956195081766773790291464595920070351934665597394962235058995598875629797383186886603864909777407084394341983869421015063499195184439742340410847815506905745715269651916376656863063478813515871691035942501191073606155679549034740327460174744869013907768847306532209341908449461146519493192050546878557851238333187664611146868615191082069003472319392721178706430212441323206207508116844104904386892120172816241603258323951940371653841761169278589262776140588660934953286207872962640600818518115078624440553521368548001598304320034623585224150535907604280328125183833350795382287744945887119702831197015171493825968675547859541361703758747425158411328258214170375551083914098368260095915136530280491350061721226530603476221767606858669114597330938511496264642110490727266503982476783762630451183085065044859278321058656944968481051855641357160053371676921175388355234709634779352827602224528977766974398828474512280325111838356221827217473983642852229701456639601646627402706622169670564580459351601375857068634310681622141000074723518854991208222629195375501262564890396423474966737583120544011411480936868232132600873236832532999892399448948916044361352975028920531818248595016674390857184324425217819844392903402902628953687035921388110055752738086383876690070088602285590283644206849000713335159835097959914611939002662234677791630761071108333945944062313166251780821012054072767784532967014112403347885786565047979186305912835657156815653485969094446117074413191420445602547225010145257390054751391413086310802670527938470010399677471575258658015063197566964073874713424307342176396858450615708589032451665999040662591723753912326757546513195985614150509348644287465051187062378175108613733536666392544011764980848698681691623714230080091123378651273867695091324309776774732785766377996804121028894014631156824785173146488020291138281566627786728869536783529957527699461424109063670181664114221995172346008593083412300761423646049272813287486327340604495254637018672892409859748183262996358104064659961088631223690501923968960333328397487258131862837373212063356565732876666781675363706884788283336366076974998146671457797165672617448352506787414022177116092788796146133474601226379063425427327047663146360489302177623589931372062289007899797596242480693205532598268228755929960735832104877333400143841007180491674267737176346984263653053997652886645198363687861429149919260328066395296090888697284717520550253455400355599693243718497789589961936800990783754755516495388722250953024501299836897335962099088981308212555321422890591814306458605500645103810408477723531083664800734755919078838530077296964682630486067484151289037130977909725578322935551057126288580307355113406396774296463385589597250834629914579385393780227806516826973810681310328326969419538379808706299787252440368953061361319920504205616913024601320274852345538991835919580588832855848965756726851835521966396742355125157314489898511809807995300229698570639721553726140750486154289808163040531220712423339216199778849048210349030651908111878161290395871272953652540209765010209865763606780587661446705460026992673273834358188064765779897014560792518858705067475775213089456969806376746858180756595757439137113735654774864234486328786821916543227683505343472139645760069112832700810962267846987058619231132264565703332028982350517846551772071688886282744040715709013498647955967278223062325772049224666310436942310623195753789317977225647373267255525632739235804918933779825472322500407170379085997378366767668584860417982823351867633827462647096887959002324109889422884486101793751233711770335918109603257023127218867117535937633849780025245635054266639046301764136625101963251137139932755586225072014170991575675850117366284276958585409257079650676614563197006577474944344349127704231769129699038493741060658253469577549769195072189468326533460765107260708239617152025777098284504641647164232138990112156834144674984064516264872514527222904580350250650593579828572911974279227744771871283606354695933834425094566074429131883083584917510145244887358765440164542974145709201077167034971728741501707859459770012853407292150150023569609842538524649439502175420321520593724397098487642431991243433959118545516616091715663363819677204766257286170152937430496489976819930164560788451196497822690798847856682658383260590550073889957692641747856366029544866415308253774190783349153482011660847624513109962820230380869374458180417908555889328774971736451197061790056721533118388513098416567297363080428617967666792777512357182954958607224729061154972365758609557231702296367771165429052098966530109634404537847413397365346997293521562927443222545276033016631413523581360576431590733145521703641197040819298461840675656426450456920567640808217558967356408032437446852550738304674679891263981779171926135604484187689551815812086005452524085183396847924129225480521832400958526553477195949299064196316790565493632837472699000153493039779031254923459301868777298164945165495117807208044692294567631800574256857976452876303981760763900189068817467560809891997358118465211357199859995003088094317807806620661946128172951766605356941996659502553067911538071094371344574794402652265915452946186998119454583291357120821407013909352896540919009879763326371144069275719976392118211584970290932855976730911063918789701106233084347413847480768776126961770798148638276222200755804420307956938460957626948177490076307989025160097273531571972369808983945831192940405367861940688820833942177160900002519748963761004898615222738409736598268898473662919436291845620439036625520171616261455125066957692662058006844188761955333424875944898012640031167674767061132206473866472954853147415825983404496709899114083456092302346322313500857092077253543039086445186085270693730081229381605430776897207485818014928353886318358168680026134655666034290860839671022886048870820855605471212137100149825849867919583097061041904035497740648948655458748214597210107608176509182081495698810707403935635419260241740845988186769892804967102872476701087632135773051009990380270658081817889257055532200485961012590886208597337211162573777156281666958458669078979807738430877875341149594588308620188661885412129839864424632306550196562763693216970958317377459691497608623582873941343396101116490698190294057249498820061292163086971215133750546998821187321357994819736021759292212095731975931886794556549558745066468891964753860700539574369420124987709161581776264488766527406515937226581141549452362091720663551950291439647985601843508157504251396362568459519468114275313061034783710992067826178973879522162602647267180434835981590352820043615068064733831152725970088885575329501152880234793007544185225042418742376100609389929912683400188685158777833367705520238660232242564612556792354758244001614825017670314089856146674584695440748108255749101507923460493611378873052480768164507646852420137108968104498421259417238639540377834012988440460566441751565287493603212590665431582710416321168472117232996130325089263800798581049905956247116845128957033337699249550494951210409392717147940981735874696841668524354654666175647568079709501799765784134785093625588445562229181477823042526218360311814822145053975824860479067028689326137036321513867321457681714233338404541394566199551906798463076322133689516441663390695660373209483933084557949386011706636191459040126243973198254190418476370812472447353678655053246532630977502052473731277704094419542874678910839506062210271340909148895385832882338462882189804948874042568981922890208712689458035126433899947075959806405983939607153231362617855256868716949885156391951980485422956594827124121272046839698253008141487886131792816762258756864630068188238271565666679529619261252200033627247766130143202967212578152628110907959793761513177715116539237096625785318438006897036814354346847483659213331825524205512050402032188943423249888920813579877343156096054845460239233626778270918918661947953409507434314246798835637556698100360134428957694273665049305917766307844774226063564562724499060843042035229513923846100051354227231422251259359777715515838075785719169687986978969317489835631397675913218078258582798730117291905988874544119197141285696928612560599681431449091120419538598449479325659502438894707773901767558996109987446198502656012112345596084268889624014055707325041997351412337882514033070215403479367402718009532413013547882463525980571701967742844060335176208832268803678914943677593214905328809302263014905445000144298705242806818641861994192533202729679471071318775088063189958940063369883223132226698187199085641868166254173878614400295892447078948439029434669142197921542862089326974064783333221159275865678062594907180194835144914549717981057359983081269874228359921742575522324032291429778187082370108297400326876373762130759037294710394664494292035527377829612988823792471157531660087697795421168545940628486247431417473074724341376504708909311400124407449208643095479237526002473570163407301415863525971732872054743016164843668282751555464122167288835175121092435940535374901551371601839234009054337517031969645735364505653176686303915472387046745193659015923490762859640159203906096096615080615203689707556473664087509635248452939715865111392294983453728707751234777332928815720084132652741614427181311178045291816898644068767970576365754436199709304278130326244047477610124316086435481179215008304383482947363627230357745562632747319486118988939118717573652654791442107727155393048312294092680473308386621490892689879933192218968410817709156816199844532696884352781831911900953739971820542656894128517771302901151702688663436690193644467935008314864805955933444136704604361660927990333065445122946346500081250237025599243297417846499331253360236383356582587155312468291831704719669738937188090423301783028935843843802762929944268884496901966538365489570676076850918866575235803981005431563898582581296881842312664757698583001833188255837040297303424234802299682257047665083446107371185287116891193753447745843983782942716796357685912462619093083590296049707660701504665508710724068345047902988233535622370509802792532848939137205953848386661906484995533162785176345117548976170647828258320711814510839971974470718201405473720403105908116838307352638634012992423307549739361447368385183241142255354044782217038808688903230016012546904637596981725569430080275451638221889738627812367867078582890514626116699147228741749121992175753188912444368193449118177388854772255949072708694691813093579144052291407361944707641652194611605148887816162330155921497816261926449992786430642925462514356864822490935899268223015203909335165473262092265920492793447094126712192807891508022740723672343228516808456315680412225254550358538448925400110702547757068932389912023298447852790327259365529214341543481414845173298206239450631538566397122470049864765440263714301813700328067925921931728214153763530126521071632738595595462085428825744330910244200614540095113069214602504553805986401967745502041777713086215343087851917274610681806710029770203796330742533691630315285286964065944853385248494684636936810764025444118375929861361599932577095577714564539887083411596505926314686446609791089144074265016980239696893867247681231296771773251557498910865981551370271690700419459239630794951563151514431657999070315660101469882255232552020401518637186612855743334377839092448468959761643745933592437229308347780343862629865112142030411675762379240962247200769954316840427094007670628004735994412783558222319955548875758410616970993802225484128815080342544773557152472704474772569880459908959230256227437903739600860413942676314212271157373533882275073043118424092171155610374261810370769777681642688512413064694303700333918552891083103225542659001997721781102197523975768920642773926885928738791078104511937494210567760544624057318871752260222820568901787668023908403773394550928191453840619796052019658464622018688229699929250824175439529450011746031943340808142256622721666735289787392456241883740839553768709814854420112565949862528424770483266712773172516012471590857987681084826831807814399981955019191864478547027095347239859730989527053585326905533748841696390309726658172845349272677072013839029104727947898475635410263908374826829152483224223395318225612936439579217066132712814459976160994394050111357626791200520856005402736003840263221495988604138978498053998680792129911105967166532384871567861416509926073060574120018297969352901722234409303840646469985272055708849612962668132866284606111396197499684712109727144341298106584707243188494614822742317463583199256348577497012587585116933891901395687160046921627563239872417908734703592985912920892795353973794927644074159872263042087876975568679885210077278116853762354723753974691427414029425399290385220461504918564632350804095443374922280695494101448218887933162516856420882045665572275812946128483770682251293853500524171446852155233393911017353552282257588875856570218929908527379691275349924597219695233714968976265253955915769231591895310044083733444817389440043341242677449820637463476348364576157565270288050805005269211372103109173835993042597493926709623004255455024083294589810208469452464180088461313157346086881159480266008816177390474372522243072034466420835638198962748819367271486551842500542474811763578205893630798392250703520055079581169581524315926004893809067135690604879693706715605372984730128603244819937244225994294679904026942334958170043250255124834017864619180279877658970876879974060047829367216311115510729266156201360916817491077510782436174429829117477023129892822030506294447998806661746984583744667139330048008586665147588572874529230893446804874481483186203790460641038394103169005277982558081265882742570100326963950612995358774540022785150025949941165793228623939620616149182637551569898117862997956417030165020983472368964110365451672033215061596629918027804051049975571450559594751442445205454900868768790936754974725067644326056223354683139297656353056924971752796003223309171576156065734316482831655088105499524176487490675582378742911683462424767594869519826834461978746789224219268785195119639905126910787957830125613262592243042624908068493630065433135370396993123229691898725161524994513261736154647647167753853303809983961442951838062113020390652283967839462229247018211953254495954527856371421930580373510033435403064043404644567587712352382343201522018435488676411812610470086780574622402970875851283834370568021403822247712178333629566989265490017363370453847089218518737453124805527579999669377220129136872352993627977508003909948525083675037587020255545088334861078839440204599636549066166460947419732821800025102779687744472767398092668480110981432303314342807126321340284676481156341353746152750804427702041744066222916751908332789265748195297763446799519518072153566867916155603307340173038265802904377661021071582887870363592063869693379393707058475269837358936103677319511984895667532131807753378612835204351567553570980540635435953010549161974168547886008469655373799438347115450045334910462369521317589076699048901152718198556961704690934210650185834837660302161896936082129139470508982197315628682248374728005723167496371377886392657574940125636247793237522464173534593091539901146325117314184740974628970943866566310100318209926196763194257454090030124102215069066464812318235909311588638474744525555218789615352045047343625010098502894853725744274702475527457148181113827177875537097712768779943038560485640704835035980208701036207447444398965176696482156501231512012487540264549177820953437263927839121985106940296440863864722818596017211814458167887045708005769159708912088573801677076154590778062633168242520435922561930604228449111030807134598105794978317190552564465221440589092345474150420473350771419066508430720742550509644601709031821121177234530468465763580018170855061319012786573165537098779361748322301228131254589780796062979353247325696541707744776082449120750910162393243274304365548062865880241767199192536979800600576154146158285318532779413203870380375713731530700040705061037162783485044193776662668611079932031446644300414893923297982940701789479517804461392819791678598932167170014309023847241706037807382708331382742952231322793531535904863189617168176562611222759754732322045443509511666153531303632313055898209208796821366124433630210644030042609822048235954242950588333041481147882380352384999933067198813355889440588102362038735568664910027724659511436173615652666305433765781146161302952789454813263708176439223220231886191419874821168467433538940477508895255545088363417566641126639974158249714038923247559716109031959947218130783031944800748285428901661345861009543955475645053787278814451932324641797380566117693838581412452724465951852217749704927424319303625811253421406146892468741072234213920002765954481918894539606003849555957052248520469427145102830950763975995068568611669300698761490992757980858597283069833513479718586690143967854279413647246328779713376823228243593494681023575935895924735449612353920739383607083156442389938311344662470916989700942029314687955106664500827485032454770704306947390350009123041890891132688489697024096993243487181290754756348812095237907686106500398264877643678639402374750281687140858053062421282173047156514398913553087311021968742583796707463664315860407033529356083927481644821071319945671070891236559087238717247033119932954582449948540831446574037873083945144673788241504603234794425925479419768475134581989252370683059022127395934822432787302170762279044885466613478411033647071792149485399174054276896054079815834258659644583800718237562913087890451711386355791417371218634703383837615854806806077859318036776776799265661209342406851852524377150195129604540299640051047821811549357594708142239638722833112677503779467221772411847244360502946144827281034664260338358914433673339115088400043209574511106533058087397664791488559724485903154151141100295241920773875608945984780911730475375564998219922942116851702377876051283740076793621261698800840632723304580674454000312283809857282002072877565897363309392311963059032945640100460720008039310089308191291962996215655331039123644085017289580130433360955253616912527984222898177579424094110472761249864245764188287988662129185510891474782782998011387565967819368971224450418810505446624259886868117275808565548107275741090322760140687284650079072551567679025064465441374852136811302919227746087856357069616551791927726796745349294098140520003797383845260156784158813796278637966298116047733167870329094867629446406158054852550408664996324581002849988463439714462158033346701836540636474213692849404039511358205455440106589417728622584753159625290346343980189712627287979998186691778534125810689683002118635851365549174357045933313372542948701708264424727404261747985043630996017088966903186689525559774504374759952474126461053122097947692853807745089298943030465128471794894656415025759654434506254308497447718550420559382254760109108775349772415638375298351827389410858167295641040675855279914960185189717583807751325760866975631532386619076361156949938371568809042180348446574602525069291091758013560766701544716401506840650216743922880196471794777329779159419504619168673625207834097931118661352988734977506077880442731610212961133573145064050679311476465087195265820584880125709987551429093437176247341071749334504062556421390992932938147945383193256380802026407001859278004304179586320922951179171003359734803767643861887580488598131047993357804542428585949263695638841729836033379049226404376904603768011072733196456529285428128870123285410013797638412772557528675446632588734402627971687878447271771510597115210789647426891069942640773712096402736735191539802771858938419888504918863359552648962961333568761596382951250633038758596891922965732470381165248442282626764951595185582953800519628788825593650505692380216686378495621971801389590798136617519576491586338199799275157959181459736000437979182866509216814603888812595829373141293303368987688872017919481960451425595801656085194977665542448265600375261407311724452844368394316732748017656692448605551021850358430379578802296194462724437326845456571867393591191697886966728676347827690422528225373746033957057223701224526967354550569624429867664449483846692973910021594148494507643128999883063139361213250451559927812595102622700573932575926726180804965854584801103326152132193799332918163476852045230045226321673626976478471742922714913509061660241645303607099610463308915933583783522978914617102281696226028663784670922259476644048242479575789529057941390209133913536741643180696177961140774672575217143238159347984973718418603413576405208519152300688719275059020218639576545494044472063584043948328181230695218353923576362516244171055805514511115931896066802698602808311523156234648984030356872265486400775539420046048319537668710620237374182980590074911803597961075520824094776587287118141606506866594835070698613659038562857662808280813250184395863049508527727148195908022723602737630694294404397770378106521532108421356990861177801453952002348617834184098085290129411829552565963852151510044426248623661458640083068455205892958251587984643510160698115433965286787635228250391514690627368535234822096831170088539439707043323963009894738805206765095783387669932533501176339191429203743058762325753274688364963835507182697030233757847303253605414181291131948790810281445656391053131943136744322878685116192624172758142222234967758436624005392776403865710629451010963000704670577352949757323015094878822616147236446862764889642364425757736828926590770283938043851705536692513523886988847771667847111287894659516220737682796000635992581874354995624375235514439869430015042043956882672210567721701946446254331505941764177290199324320137622265890435886926084178966503288698943645658172975827745131085495209662862660992093861390062341337851398520107770650549749236037525864833104061515906619512138345784678477550196366489937700521903811840966788102024937226505124347187889108013929826185502545491885232694978460084248703490191160867043032164522670166126567309931532675578554406149495826250888710369377331226430787483535304630238743117665712596476038091517834609932130140754136305499371753534799622705275663067638742375854377795948164199694016229291126246718456151112610907425631517644667087204670360998180443795791098106545820791077423224443645144862831559642924993225558419764147007516131190484099809307990691091049987865260832222148261900728607205202099684569156752080171657699689800226195995179419093169460410181350457258692110085330393515566909938716877623866822377110173517737629221268959681940851054584724942631438831982821580673505884304432411963517342933633880384963919337660264071971703979606441872809879884628170410901934588332861334031152759608645671847644431423632427017502870070449027303833957524993691512562935819165595227070972392623408331559071087913847508957832788651696663144809270975111148700621815527591847776049679680685784639380143422966028579612940900814811343467547962992073376057402747040974826736508416762287456776899665037266066732100836753756693008297025678127871235305729703087367075073998648621512922303932490839340169899715564716547076464910742491165061940641278268540473133702941051461443270456249613338486981078750534342978318824813381086002636608598495763314949110377280355999657914486135662367026739493477990496576195180509945601538962410360572254943483067878265047636450861129908707831347371014832143551181337351763776376624943252646197907630573582660239243202127339122658176489881744466093235737267150511247338533556927281524660927569692933937866077021198286556689678691668981276089653860208162473568608656797734936720689861937396722448989871092523803120743310464569376809622014618629018705523587033661298563102120756762667307003193461869477607326254650295405337996107384631313521364727554929700594860439340902930454201178281416342064300047336040883544038173387174905433137006551012896960681282226361729735503125731100414988369163014748417343931754007139747641166131017211736964189664190518811522676734140900983580190528397544223929297457152986974325684233772008288406612646514005860903108302091528062171846405385883796845184860838477815261569363882151403501694242779726348646458285472899972453590150467617102793449838764608016204997089119354128814795711182729734401921303358647456603983213977181910733513996182704873040822298308263707469840229452443524941548560725924020751297338021968808719107170514914184134918088835958637026471479255230805058773065726629902657476188681435446869696988473942769881861754991333587965123921912137646456538114457462816084085944068914139935963724053069725636398245488011466235671653150279420194324897566794047831663942042899602089115525900469601026611844514949291716420583905645783523567768278108087966284157776632879002368852016530265820500242858017024047641698466933788200088675559032131649974329069206715351664806831435883859054490438426373407662094040990662333611454461841600485064755299869894227682381403443950899819110868123394903718313407352522368556414142161802124107573922314666315910636947092478863655650234218076838179319083829488307652724273761118935424622839815707247941355004734961486034549586982314475572754836157565442411376891032714814127210993515250606028746096729051995890233934590675838714676049478889999740464991579784902939244496325062125979566279953145429200361242821919062076850820190095499303692940232011031950727737069812083008900437622100551750872351179639282047272552270861511262147054889177158079718639482064350393607787516259930433271611913382245730410681731570702709231549354455431044758956182933433251224556640436959845943969729633920407869806913693978052311881267808009929078561510790257544373943818604032394964806277864030310704407554117370065795056014751928262515921519160471355003744161614709545286885544111362663710887588372890549650544997130518099188915307942086242356296665028056373204525219001827168372697861880575192421950080701123306694273739219390428138403598273934527513767127251054750732082312471486697806541381135787424783482123635701156562968151405868336454441904122862158342575161592895402986196625002127601833436379016115299356443237849670156124688334460573157958189056655085297222448534422561314272216658404580580912062110903255606566186116517912593230948074386377587171016726828729650262158367961955350801617730238407256738735994568415710086426850874474789946316670227820790335397553055231865065645200073173110950712851872653170044068120076378430621355029667123900968285664071215558862232819415660762840732598906397739209141453877228021406827234562157807586062006015702852722635778107814143473589155843299940850296003437774786666837106606848478708547313366054668129830746789121305537213327920888838891416045459316046261619440068581091040564306174872290827551386555949738830550725831517817011686253431174134699018226005988918778365520602031187016371588627983278385208518031894341940364412256950225366890620924094999763005456647289530000935097229942287813123487432943271738907385927452139074462586127163701970229839568034850185359983570559687311638722631332181901667162463886987965021584144490966636774023159684809820132660492583601869836362992114142665241980985870787817609784786932055571853292975778625374838473163679660098878090343152875976890645707760281164831368048816377046738562239344260526873351883412522918599379884575702229556793810576367822195267433939617541810462628108219545556377995125617759407597673378791703457464018350179053171804559269281659083447162199163162960073507295542913758317636614093657129864523631065919247160953640636216480572149267279362870269225356013483298323864907122018695575932595731892618884448227392799926030634419204821240396046270644559165637890170962522965308561287518038487614439830633669117492513007404481517582969138432506186060770794014197183463733075151723815254127385061696894485974017373098076927587595133990776368900348247388411455430249650268558548107054314354406937312486519011492328447017625452986919009755570047739512479972173500458594427283579876967015024823748270309563421063898320177756117066465627669311900291678714910199453125979256517351148748647235457706784305196773294757951072618128071472964351509796460785267677802736526297425864560803483103875918284517722958122517700695175764709498817551534108368910983265940431509165860665055952256604155698302211377623323246687964642607847078556079995233996045837157564343047762192239322927241123547563558932643908159508803977507822830270384892233230505530810207784792599950870228170810525251100231986439031792572517443395746824415660753279968798737857789743258975391532225794081621135669084762258651958160612486651352768837055628220162130070223446771566671736863770853462231127827091414396885547153965592581893468330345372518183344561246732253804495056634715482233952724247228193166329538305310703813357502328189299668222342992752845663441393949102874534928508675714459932909040750264956943553823176758617022786047943114906697126470591140183740177711610056998004598144140490186471656266339800617891028803042199581164059755060055275023058705399837140805679868542535841641408947717471236008882043529644213964422066053209296998098433381597985515567238146541584601128323911968749674171015019733472497235275881837299584382613791413362303418306214809862541043526643439274510835933712270909760510498087120438867047174672039075761130114356189896511307293571920262431771413196261694661032295982591345219447965188441027468161859707991254545629852953927310307010691536889469334141737084997937159522893150159560102746190121552203284034601050437001105449813056449543310152436224877687986357024409167128456638837964103031075073810589772228888040456508361909123795144884405948372324327470191415933104641505489767141265835668513756694781837291746255078142922976111999960490371536405698044249105633574301292062881094607887324851608456233517892876236042438564373210083678878170462185596944227880883955044593543691569243265042849020079711111815441640771007160489123646904802831491211955607996447395814123630650695831100332818751992606928910036246780210472963084182762801807561896952057431016390904196124552286634983310640481100501660505318003397624013145689569467065830533612403993847577321547998684815984115157263230707722332677138305985334442832467014764915831454680442320847287731565622365036809924123669655180806261791971749244157656321786132569245379436840081275653603721446878437289218713923809243604906991209111849035081586671967480676053471959065336447027050547597147435230818397311338537482041870775807183458962852456477156188530817659300564997665552503071681966336816163063551362645643463147216683357658256954727692397594954966165798484228303109100642744416332197793333562682305371852322137169552011489289890792724508512797457220711569379872656947542144766566143526921798872178649143538762087888671811004838943512494663162603696891930060785259768554414742307104181282859726351932420534886404750396346797651691059049000734873739409603837680050674112238641070595464618590460230392100425417556845233253622069709335327762220287558695831167529827211759836988447379317299725126539274570935396241609113399000701869291013454097623174605151787646043575092533586447513731219014063137375318916640864672205075816574902967850670291519581346310814747979490046591887570517996566643269710103235141874174509734414795615217201533308378532529337502320054581022226661317683133338465651682263766990073754693674544674263203759530549446184611467756978917679154099333665365486385554043869275032637365393189213852782460054951477863469650288058381847983713189321648069753773640600568286828334118404886436409360448583713660360749096032223772430484325344390144038112240559381537907332633317451789022094163855698608145583819143664565953057125658417511487358628644011413882292669248108039761918934602533589496049836312129109853159124864105014821592031966562792036651189653327936440294086457724222395584768935002897823129525388413975101665206949203167378035378230392026389756348775516449371320052209763495813674586179493337062978767542524417815744532377320235021867399099491160950380135395228823280627283371752077866197927876831291909923631046269705826130818480580480819249149386345236038750609671466822946433924948080477853383989111466082717293672879270279601147437370544081386302171519156537243117158415300409988375149240561631403269499302367428599556019621332783533703700811763801436740648363675654887311563142567881037888865503149707935398349135736433240857602226209729267738081578780307818316611738128921578078985774360762440284553453747118394950637646134524408932137430957115187647864851057903855514499473234923490814529634972178201481323830065248528249703791287657459553217913285332233333810562960391408615727317906141468450860583592289902112397622944030930533465053057357490213331585423254930308877735827303059330574046362563929600344634696066710426312328276544313764173198296009588250985738222909031705419957656028683648824186304962973791192569626308877909281513816568623105861312563057928592756244407114590367212189040150118819293768996590269084593647640640781867105723049601745470524735064356348315700853125344369296041390592206121688940365387196297086123807054565157359035504628214388066191300872004055162519069438027319427472368344239469849638749371187420804965557493101157315780142317327341694352626065220326785420851108809664846640529779383283616989850847332347175478658640962881333887687166902811747684984409069826829433050658280025696552224664733718720527836198719416609544030046966863286591572450335081942403013875136869310134034937718703044670996100329603855686472990336922246606077367771944635746218788937847571725557661986266813771671738133396208164981133841922050071302540983692241052704130526668448096451296370347842127095694109666135298541425912364949001558431488415065575660327346984980960236489391912361558940766324252692417004808112836997056222203471048286862446602963507821615338291144978353555019105748425167337770776980356061972968941106592179008933449216928758531803351888536651294308569016692523037670165792977702420038218350963511234772528230023980607486596820984721660737351319290964691761952172394360978580099564719105078517837561302436064151456845599763442230770234389163027383472816856077683701471519866516352391864377459537974090169454715075654575396946877465729939231037036021109958330022459173513439997333658144551888340719418519543123824003546858560554490394768098950198188151881998576163838446070649602176257336973388695170484778335321265613645994194650903405749731128138090404662878787656050637225688971659182407363394270074677264028007531600722795052587578345767643020620545436984464817733576337374544386814047166543499603190590441370621721433857866043378077577002473893520123138336651922595714433526040621130403983650991893596574545168059834252824669979714898138915606674659159129230297544208871043611930365487078595553653676741178760743658027383189362998073576723516495158976347344008297877862800702202102513921796781001739098923127931699547260027163717376659794817102836324774994857401340080933529967352208467059767109800958355216171535149837655544503269382230432223229458503894196418394836338728542267414184840598696813697698387849961079403190514769024073403442327522019023923453377878991509022456968407096717212844089777830010672638336690892139759735596065408091915305912841925404957576521188542782531288695927451620991123002529322771573059759952023945960030684632157381122538091989414233013167881436557370080486565722053669666437241524484338309979787704257633685760110772293654293547473151265376620332745714131296470170592925804548613326701398728497906049537154268584811660644832665377590921222836079497263857816117387899027296404152498380366162859897429899847836874495822828903917825371859217499126150356395972557255300286918316763574858412592991740309735646847600671384233898441988374516399666171699029994660831459678632074513875072610269430349082107923044057690062835414376735025182436536778426483503091211723067193023206375197537145324385496703099724929826389670598470158608152013050420076238702815197475274450277541842590497597958117530435533683541813016138983823033563087947464656852678234108110057783649101841334310225340807296935942605930877042039510668768860647922508469600911215184522951910550686408622158543338134735732795654667463853678276790709127395293720018231117809113537268898982920391045893473475377198990947536763363916890458858218633048589426646091130710826365588612379938017506502208086378673488732566393740061853649141000994015673308750919626039328843549168582470926712138781733394100340601866279031254807013628457139564094843532645687385684707017799542238801107078142506230032230738988500529220864846514354003956700591319758244532247865553417044141757665321850244382212139891824710796866387586685904258144758547110666165651757213405199903001509564494345083536413294015682235063785448641338497736686568717966505277613245916090974146824942082086765535676021967128252998112024410285146234238747964461782331697989715395775259962570115119549821278021467113226849036613659656604740940455429863105423468812227611091271267881359045409621193390588918669849243061911330389162016746247521384663974021583734040086672283046104636195986350101156298192153891840405743019155895679090021640578417088647807025714689004769424920227032190246844983946604884070134694558108676338858111107023545286024974194692894993422534918696700004786134042815249129165779987156913787511951116633646435128984719440726435900985682702946175060644195842293532726578270615670495873789723813808196547134869299086984731733545997915684850137727811284210241092452578163289814029398804179213265644197471191238346552603993043863177973458314445282149048036927209463879366219343095467040706406035719387050393576478115081267791291567759242591659667234748160724962983815601342141120913004886834387705364010107025724485365865145999295491344197619500406829296174472030436348855278979846979362486066865422790732896854275224153717678270092827710547880290054793508839314441330005263249563582587091199381334177067900343810373696905451368097957301850786501765034246871221164178791480828216803059774839248832871319933510623565089973281853901118319494456144273771780732382801896714723832488474172836585318328243031859652487318765479223232076196379317054070424054083873443571257168765029000395188366894755194912827101952165789589975889472316804956164460697438771947225702221967818788066523382573711036075184993534283153344276566571570346182262252482505601890127460205646506075290373166177694541880629780907517953400119613782653108264310058509302886092175102800448824765450509016740205314372439296005661248039565861762488879540320134455148921109148904365570457013302688779667042926898992138362034648633967185585560584925500839995432418154283652179746133684742880778621009367083397927197757967216504511217990129539197856906983761419899378982099270943891364762097789686744500631015908543773739993064588744894417176492392115556681972824269454296638117292569825829703813344889173475980369202235776837595322337725930325002072624927097861230964010179232259489274209960952340192710712746993985107327848368687838016337950635759110462843665350043964801982347880956378509602890505763817593151465414638758382835954334861199110772393061583913152463900872466117607470100554788509649167733323859519385055700033987413143106332794854565938393022253381729407638874707000678519943557232796289874181522395823927151267164733441828588294322470590623606886943407333447768611875491466529226685870481805003069334873626691145296500144996795823780201235156657948539033095013714410646454452468704655625848551101750769363511053277287174388853229281428374751998529833625560803692721107910609422483027807945323614896501123477860778925445750436703237228315632687769446482284180143503666055357569535046835973036500776390487281222910583247462800294344862708805560793353157027449164405719955291063312518588545699384114012991621564172901098457688599817935895094522427467463465397541625206728621969120642146788207183934711656919143796968318729068542340155570123771303020283243596876449064762834800816111609050951964900373030926886166603446551614301510956674845703299015576505572879813370969786443577745150751752662484972380545711530655975032825454356288074645837522672679181411619292687588898179484525528755119665189652571152771560056340303264696609872849277723953100120898194858091648744917647563279367902729679405078117197383083268827615327307278977038950826831493945348935349693493443690900206189225590846112175448671384010897161077350993854375077904936347981534820976751805946454597547040496556912982734598404780175382664378917943912019655843383219337306828322536323884274284868271656659965383791839963874572211452688958887353413866111969040683355220643315756484174118512998410557666071154542747970562246521627611554630158562697877337400914003746646599637772562442427561858845134534624843448444102538693738228069933247415325106154706412520724469676751582976545999803120387779697011236603599807685037490938826168360444189177044229386302394030894554427771342503465060355165175855464522080142466769745151393227560384549975328296453800076830311833558877350550287922345042064224202254708008819429658838088117081183631884142159040560858601102942553558015263692927267714724639283125071660664935586038162091045680092379371611543761402051708860216402373908672401828014018845188931289869367839521376413046383031332493381075845111147854791701338732578277232948851653677347076878801133011806052438769536044282949671272579250534022675778140015305776045838229223335209162754964383114375085339852622379477648982647974688824481307739714075374166482184337467438753314701527170607328157366893317856414713989509567542923043096111954206368953346273754728052921797429442685780888292474624326757489767550735269101778500366029855621274467689842108489731682458386078512539322397091652641625125897512930403415870244650777051755897055301791296523732447391965311355567810946566171096163476215929256304343958830312254546114797109757359269097940498037819489150452146369475233185644445370750855324541005247160920893244003735311409153313605529735396039708042515864087745041897635225029725271075851587383482762511861429074648156391447935637339260663862292359426473718390911264052998367060729461713995730703207414539255551042250943445691522746859711694284398747552894442404625863490499775422146145270732006696892050861596181740762486031889107148287366856340963046925800350187275740171248289360884057814507980175481439745896546174610941695124740374441990445484138718409368445088929134647215042209803880149319575546637233263135174538065045020396465099282700184092291027745685993816193442553672231360448522958372286384229172669832331130059049750613555479796057888231375627807263007147278673143135372595247518055328115992985248407220263256202789379888565067360033027964816698526005252491380547035272999236111815495048756155634608417932158297819948185055335528183307258832935317620602011069827658586153160132249420422680882298651293737631995548570335084377436556992709160665250739157450160272354836986770692079771546205245535703418697105734660346716322240748257960686658755496530901976447683056794656749298586469482440472711122391628526573509180289176145032133216043428439019968162021398084279513699545668224594154873474912304817941635919254370536999035100046549843380119711804805158036247269279296773465800277456493762540490167231312062500347978727020800668164092183568869104649648109163802469483630622073944517117744429016936201072618871290070912424682745614648164193216103556433618978045000565917798821615968586013927241865874674095760335795760370970632968428145541740087083943147437703690611758649703310819125352626967953292012542710175128096936321648079366264826443374537604848984144652645765029754780883147629027662912906902434223731452085163045917756644152093913731751912604604336175231424973960308788751697734947415798509893678141434790161113949396203939351965238658833998229114521933340732683491504754243423618183019718930497418298024373947450306538802306164698661166937249616807522242389272920487946012545077385998729123748687501691174314250672585403526620051653047244285414465898884008261366540415824878972883602558950017869299178148144957581252031029123999418507953199066937180840680522254676610010046206573668939249063094795102834906152482612656903360187888637398775502260783332911520645203736785346268183576683717841106221508378667920232542051930419594261391898242602215255821356944401489527637242102385445702017716379842141530749196695611804159946822197801188221689560423088116080780835146327190049059904766770993027542041519461464853783324243155817969332824495211839361791854517118084531127034876964503399739148061515437422195305966747543248143894881101136233238098645516267907362250998584652087682704884714784332551729273369495275412048028644904708136663575184751352666393821741369158060984898990178940631837943425346193240600629000696649903445280295940769952335045576747336004336825914792794565411159650266512900164138068461499846758769520718829085951617258713467762379321561755556707550681081963713930161800524770086746712728750048540597948225678167528594629292392197538807528744120404781920173152516208556610466704164480800968458405997407436662011239998546847097695866709546717592078853595093088486152435079932114443431219609920943375428994759757910027691331226999508684579178659420756035787964102259048942697768446603507232785733043124596754615678266872421923255053827362200082343696465857298247824598871680625283372650395821245791755137160447182055766756414154786427547259411456224353111044244939406369951169199150252029267683339918807935439594848021405639524797035184903878719771410382492013859961382665437228055282704647712719132932782063606158556763875769578021239889158332433659950358820177121517080035832590735490366811823700308205492195816223201667826701653432240302674067013681151787828319318383342452105060772394367947623789967507693346026190712790825001069070789164159479852566672359105673895629058579929734445394136817852941251268946626455613031952160011191830680905845065066026540223254845503183567016643800936899783061254214985549113938366715636072732210997843839400341514458687072070925465436034115815037769460516764668509161070875055372001639887288841270923370851288557496440102596885172924921081511414883025008078953047912562022282071574602695459009350960667726147178968999666141283083545518672633624981070359532776486022542303824375089184453156492615796013495448886037663864302597755275595966003009238800093802754646342760094891110455093020591246676547257942982922646140347178785334067929359024058470044552010763343292732940725135738647954672129005276247074988703060600476086961348043729637906465545008244464651286807018287632467439173061184946011347909547956921897092759724337614949781027266565285963512618588751625729600549830470204393727000738374219923815746644428455267389660857618558116791250279687484039652067533328245321074339691900444429140117021581766055982288621915711143804467517581698399900058177317132639663388582989691981903191086659951639751976471709646473247916470905343350635520255467384426061156007399099723746303870327495272135875786462044138273356698382569933651908724497844543278519765882324703534973239911804027211369779909847186327696203980231864304307210523702127724879774228178581561310387721329615974628929393089529422153655950747117900794142853782047402659697549539495176513393668090225304186282392528749269565994620797894502531709846717381999762915414026842089988897634424107045825101581448885288971556233122941566260384809824782594366516910370320268343468860282081513639274653647187424282696204007338646785518011496384121376053585404482546853963470933137275472939312940445468961899062263818204734251200683412154742083046648251483410158960095852723339584374688381182995981714364577502639673589716470385867714723598065975795055337372022492160558623959431364045772919930090255374539594541671313961458353362397151153188516588824716275333464605604729211904377535128952929344748491445980371403859002360536965371812358827893034864090799125104737511784478947345491516113781873696433953797075953712298277214410550942431074797741877568538637820930068298766420325948501003120491924197133055144855492700400612559845589444225374155326808184583304364012843711233722174908073233680501985613431753924120956226571343330175292324807500271821154918383408551554015644587639643216081924237214112425724312819120250914585381276251572585697036965802674610414033246836829397518884016850438872053738367217389626452071852007387830394973444180100455050660083387991989112915931994199164273412085638229173874871284579400642188187916325021548807073357126177602340525270164455379909629347237069294751254229446002931810344242860503577113759826576052246298148030689050084942443341018957428966746331767867573759904396275088343606843848967176371906903107484834302799932721278131487847172088630770437068515219557442735380202945489827153101491857351525532844640048839540450574583369179713112366643642991544015250009854056531334919364228270607855940889360204551988561780741866013599866032513331015511927104318276394984717425822686075603131000937056486026705040996213068618957091356644815140715343786208387877109874650206268570092433404560349489258148654639220395599843931681541654794048940558074089659970491565655143317468438256349126658514368465979181877239426599827129376428997529902394005183617506705688583848687547642192698890343175287271640302914774528090820419655457140600002815700070891333842554581533609764696272087307816416552565289893294515848791141497045779194387163373151629302368053409954868866996412107344353483297679452847372245415762002308960079450415836927045071079991505125356141322981490341771781306412094952854112124159266029629375856565253414141933491506633180767976187858205857058288722750277789710268144374321774738169515811803155696206168122241840699722975841315201436333323127211145334781447440461469568481174878382925406068179369227838836502300395773581564354662054487396903140311399744694073487529960292505167971150357668524557917247661863405246295227173428500146234230687920021220058601986559342306366461635905850521114905911218375412312772547319400880623056429475118393508137883322887857268351217249402019858800029897645359833186105368799287833036824568756239399090734112195303283282712850585788049713847822758872840801017007325897113940454032860958077483273490871409887773995471811064095398969778034550432631318644408557346646728305282924834458265275690788533213405838612498900881101428480645684804767244752269422882360473936027903226202972428295266784366176830866017496070866095280348204445396064812171784168653572565942842620180412528668481150609585777809256830812056924402527692566416703919240365237878394742719532365351146822005712179320060431274612810029888475426627656990182880544008261861555662963716170608164956497449877454112056740318947616767018471393221222166049145372127036741990643173250775594131670589972964017613445917464015365998676171934534174577492914258795918594161989997190408163120494347857929001476982261955941401074558851297152458913674260383247639165626657392670652428513129711553913437549873794723256669543770878354145426414122975321540290533205757606500468592478198861503029101219351859488230260007859201162947360316315844187044060263277054371918674169765183556650406576947744013603421624092140065050569226085142648324172017307881909659511308785720663289448706349963262428841089911850703190269918896147954717397867373304118487905026509404292419030445207908211359654239800170092630278260238867806325367937710431140343987483547576088404147406470792707016003459136775067941066141192563217796596792969215308141637085871786299657038768885573951691775355412417872630846303538652046290287785688810153700937169675013669952989449431068211598377224962098091139638825394576760823980275324052831178801658912088973008806714297362588876618598937446742778359194832899877615828584952419156802224844837514147679449059150999706813201380875052201508820528649374782638579037395062228806900883374714277309646987801452113072654774399923020136242302336696091337541804667712576968417846602652940379682089330856738573795054073318495171698345864361062400103724050633301963467121429049826433248048821934346249587858909760598510156116703538613057059938271055560514504064578249346720876688854532377790300901055977093051027058871040099822751363043443921094736589935688377487087185729310873922252639327143277016206393792757593253375289782563321657455154660532091986043374675074772388162868601200756657608476909379438483609406161490143007803610762864938842618967233273167802963073550125176851339145777575757325256568329251140217046761582145615083422628289626815591981829204664775041983113781728425702507015277329548084279753998976339942970101085792885984077944555691728986535563165939267326098451709253938357339711270304945750364241021507542368196166669690502929642348506253574201503114055475561111354244120218111355568648194986702070329090562277779332611304798478419244205507125015910438602522159177035785412634566625250949791687018350236269613281815705508625143236762095382733515282434097449725805148110535050065970842074917768164415766821850165994359006184096081011831007165427784669103261328196565458097979117345540176617509685461850192259413185914381055776559096159349550587923683733022573727442627175504373903413414537509356269763643517130467923024756652060526652021134849267559176442445938863867521846242867010425203993048950150521010917467493412816784152273656289054811092575630041572723315430594036408762652782706559454416175383033049965309229016770501420741671374092960210774420339891594204590838693680305505404969101807204066868625540928579020146334955968955230125890460836216005642062522242918461938940410824753495375656157911500126158207599763725825107708961231576270132693013841876054628598949818466345711652916143706938228631703969053446209834899208184553557472037403459944162788533514934747300695055562149425399791398339946527345037745503899407612710827053538785174974091379780304385475757046928247340685587641266522641812007357494790879108673592228202809563531422507677879213830365259101204417181992257206615111000573477724861006063518353322953685046406334189092449678695748381822986111040388918575000771179094540460038812929030719091242395404190052417966870036898660340395136635572274002615542210374192683212107146052335293808554412634142416875998599118402492714241417966670343169233871478743237113622587014146950875941041889860568739955325883851831980448628747978235600070952497202983482327334063821187935015148038979894688554888541934776636082471684864355305465045518936237801738315183501029685399686430395819235821099195371003189528737481185201554668441641309687976168181950786141625552111100266187669885815324170931399817219893973962189050694060868292560821044726572342299587954711381009953440128969293927479058976212261066537639018361131144352231449994379488682892206572111102343881326116338050130581231132527890790297433866545730910636178085408187870623158776464844467846882785014651717683074026619725177955447855494679534760197274663785520345779603276561335950489035005620683005772117104845612955660443737356730744315819764183215046348747794484457509968219443629162370186096567546516895932291195715744253337468320563341060717190878764072166138323453895519784519902816605441102280651122377061397540261884484286972304377007800145988800729424247008055646890994240815926143156172602250442140532831860153203668336342791131291733002098524917935594561016873960339981388022318819321104052761416076982253529957083174823862897680310044886699793667614401356613560428008149841652836330145234840022313792900555767751605962894536963821405128901969860284660545288736480341922875580329145022744869115243474973055207163505679944164719070369366080804428107672876642398874846040257068514965840231163169156512648253214188651004064474424430309299645219930308422709240502383124644420956301763844904577164396556133113264174899335457572006466011870508967056887802607112579483966221847893926968216988796492165849350161991787913514735200198084693953516608564750381238512478887352611426202444810256049271488987757696411751150078141388593426298931773210285908166040300336547444871774226145374606355226051225657358435867166289453580568909516953980906398193429050197671338143986047408433268651453996099623862126251344869097635315581959982968184939991331063222418471676203170467373410016720446360007929065062383729061962542074168887113867905027528293689643354461268053235459630909306356741413379937238650479720468315764852962345747044713986901875729122624077702522641792752678355962983029967201185061669752377668739938718743870504375199954880138290642176008012984957443001013087983543281656577728516998841438310296031917189451857927054421717089135103959382678613837549304461933368808049859315861065577620602489264750740540481972904104648882658241128752657732231869871366864724362243202585738541699610610743616558138745549600307428252346833390483454188684475339970051571064542859994837341872695896733390357766495029818838582308155183371594984657864758329397931485208643123665159729151444639723706477520899858289228642728612872358651098103349637352045198600578113104221944536819981509441702953506986304069493897483289944145548627086721438884183594348015541007549339759773007040797650418027056218766079809964310312877065904066830287353660037404573900047055672267850956118694518739180061160852471807154431368271351939059154121643511353771215963426131335857530524727581537103007646612271808311272349664910998646408878408053688043211252828573300344563186962235212152746983915195403561389187524147210170099648393907211914889547735859077128865182174798000709293464187723692142940832635877077275561511968257096492646149148634346760194965971073400940401497713806414815787273831457512069577833069559391484477217886647532807060417461307297353231038266761349590518051410392508641486941795170011648575091486055542244565859228710582433865181658631049376015583647650080726894471690316161216550803478704459635742057824968403183060406139689284307945746474304600638527481370852872186460228700783793401499177267475523566499963723415717294808213525128510670320243406697925148365904577017445085454415031980820822957274744726147865227378754187108868850873627100656109611525147143904479452414181768849403849944228296534179837816551960870260797416588088029909229270771528263924652852002861856449863806494962863877596104371891471888039870168845378337450255534402126202213432296752432025021262702577058903265980553369048942851978613663780578425594192136740860351254438250079384941137666788796906720956419412844601069639102307920450147723422016997368269191099514223749196265315065897206086956863231985990090920148089556624184575373184662251402362287916686216132945373825514516946009814440020945047712349533047624397228421725539891213197778256380422841865730092748450426345616358489549602309970520985035639854548106073703743592786655805207878497914650277276254093992273100533531339557921478147970527193256150587271392868625250342131854493040156200543778218220152472213905356313399031193905082432387393296914505089195321568093632357580797271849876004162740923430649916116278246287068626994607165183230972197653724510245488817628218645174628869811293132669814450580974120837425358777998843880355182266731018111751283951527173634595776081404595156455272963941487431100141999831350880384850452655399715320781143016806473001591042398712670771246933706868958712483269526189881611698239221078307103790726397369044177921950115077175576902343596005296113253122082998391052000558779592905923141271865031072071424942272133080491757830158604718300329604293272295796414155804767502956733088319008129886548402707309220499623850538071355087727293016084484343144034290538764793801031177854098421621955611779475934862189550129839620006820483611316318855978331496755680596068428271658914951485880031354529640199022114185725911481911581803064056461294434977845035526285415034440571970142306371872556095312073843328601901893468776500627229563601403926230056357137288725739849577487570693516612661287057209662180269538218579099846077838861463117633245833880788255552787503358660496003777136397397976488779415325579408918269894695653767041587009663299039864919676234334891738627178916380760097912286126970582442040438364323522090316429910436703321944486255616531744524808424653209003058179158433193355683532123727101522016034472318498716028310041556612971576981614975644391803047455369262735776380854766211111072173805334285308333220816852359865852775921510911652764661088376533738841170337506087507490860283646726025582973451347758333842204329798421054605317135244292098503017391380959828818507040723400757042771483551971972473462401226445173825739905566908899501418568011090800144855757078790382869809779413943801512332742060238910595151895412287438643349012959549134830008284437541397018535121282707838940126873312271717672574432436088574889837268823581048150354821644141250276947109741021578733224962356759334591714433085069704834093245701576520530562190744284011596591157232884243746746723350780209732318026946026710115762410692337514248444206267002003844009969866380738210225858434196510694225416300854223549967120806039705440272245790295927564398689456321829696402433774149298457599152322158825918030964423671333830646951684872296621137827652675279411934318140449927127966104017523117262813934369527713552511729838069503478659645151788169968081923919123679191890649216844053079907310132770419375524140351561793933141625228940256848636392460537994575323318431619432996718490280491591330275160122695014718081675148864481146169277871146871967850793805271627588048921658695030947068339562214048595358258305559590273244444667761139415656208803664527695406799632244004234908818067016306446108100126665236252672746400870298402283726443558970618026635835983225253640764912902337338284625563159038298714422611577955710543347375398845797819869654799729859515835101955021516492760236080182571688059859932302349760977520020457156314947944523286767588934096613166785851703514527366988016460198926390655086038245897002760692104594066888751045782101653095422608088217056064696781927803325576508149670179855363777331497409123872853802801746143030834897250293969763719477287481703228023044350684032851376873038367827216974120240898637208776622324837678249009040258458517111853290554218866225112218073444147534371268862848642831695091487712228635353361351735065012940623042729041417411867708780536930728990045380781787560789980197588779985896441033615810280967161867660180792974827666658840437983268810200120517120377461648503664050494662471159493726977757272934434916537376741536201700683913973792032023820871332309050254091630021867157556184036734569421357816842986453085159913432243035838878534363714471222445927275760502355102064736539744161324874404889455777538618602854360876272287709898764785480394753845577535359629550143447620146735963290260784175572448692811219124151681039999394659962558402364507501691680044805713459062356464325875168901144260938376413299294386669830090864335531721440812199230607822114383683320291090383713206112800123089297074356487810349567581946251587438161397161859906580050554796775119650983882158722879676620173243350687750707424421230945243199879504949329452943660235858969007595828205365853015871649722995587479736861621470619260306344052870751122516166555341989759007751397498737853962664424500900575798870729104186427209281461155224931901530262390882372985571213369576042986852669891302096691066049444624451544081039565137417809978608499384989411364283901859535503447866381375958224442857313656778521030506755669760790915110875278962632461803362707987527969632543401809783364197930806910920220373802847417978402652336605620930142000725096146085028187828897003559450764696610721865156014103364929977892068942603930455639909537676249069830698826731122472972494741256034452110571398192339414767144333547043536185239370363400474844547472307999442701376102043638696856764403634708504273998078702975599457972449368390803530837473296191812665163011974471061444417413588078899525110174189938622926905842158909954219122887216369094351827675756801052982723668532094197692454454528972094794457671038233458350961975767258496860325910063739133799283716341530773717062665363648379284216529132887570679788623225436362272815046191968071511133970110881081690961364104241028974319438012300175904096058848318804965341521161527746425069275759467997134772029893439459663312644009942967501897298982998281082548744377098696052940873723240997877303371894112848373141394135271722131043825890741090676210593436407252866479981445142253941644315085682951693332902400141715779441917914832109775553312692024061693182165901189226749891408955071789421570650338493710466116775416545102240406343188534547934539473285877927859884597160376788528899733875433834224416350639631244121427900828092974083682997513381534250813723875987438017531510140191315545271798225700876905289626312042386375370461516013923356104780453572200359882942864116990085197803336753929600015226300523759120763087141280194713314899681452830710982437874090943634329439995908372948488859876842342365851418465870341488838318640326870469465648385049391486270331961086958963383169188184929818512494400787862041030916866629422048240260843864386415232232598109887448585097050087999672279274317801272899579348487412047799200511551882398003799919701978664060430737631131467636848712356042561844146487557622210812143063497864610716748343434784021619166282875776704837172340905443769605810137482792276666387065582069845527241362430739212297065350499800049622491907396336407184045792145390111775322551505731936896498082326394106988818961515952385671462871295849326156420193280315740152060949781699122116353078112009902393204189868674467232176786241384973025264255412744974432637880644029474781807594130078274322411392855464599526063073891803922682210816361868439695513667321673020175274889723038339058930770173653342967692551302896646346127325081125420302879637131480803158728381564738974846529076312889293520186259906854011328495981004689322831996589501192379074047699512749983915257280104639622773171283931915883499461351085957121316043658918225504327117857330132408007181996400937025993502462840066738924315046937212121079088907978104667271308706177906828936948296996875750477655663656952097351606936643398298451769188468608156727569622930656391601603903244832270013247588601106344400861608918087818984732831199627302532898667226850214761823407201845345826672370813462260527676972224171875146083805301645253417480485680934515794101644302716567036254662298936280256821632142225441258875225675521850798143066351609313094271206872712923761884642574739651535483040318776704499541033597676079696746894482714603155774235441491361412989199816963181759772254390891519600897478650588082265876434140572005892242715208789373094186908755482859132247705069821318757989747196580406069946465546891685747122487268602832946807932807722390304553887349853258154016604190880380220216046151583184561996480396133154643713605317526965206256779955280573602794013575229024487237080476377928255030077948263678670286488533861351725618738333197562431660305324445960707544912310346581249916176608279907234338129416996400230917458234627910606751425481704347333640133032362626195892375591330531719539116672163072862444100566486765182531423367849080529300623456905867022389496188131547310011573322840462018106110869395826879710954522197350319465130429738530253058178322804338105955222493873138576396972408576897535698944077400195299716859524012413063719657939148123216857265787848806617247329147713214299804832259684614787105779119047431448465593509744546524744915624015393366783999810002938264717584473663597324301475874208061800594232718805009674249360936304290108776294925552811436700511445375894807366021240773868247786063017104232000363369226359623527354361384413433108509658119542830459123691131766565414428452426395874390801792563343199531440561103892872759961375153818004976622458498965176598804832085363767673661490787834210764324659003139900660936219687965353526905918308505283035911359339423639776838711366446476583712173302484242231904939638215197157228607508072392743493709733791728790408834194727001122490312036597399830611556905453031901166190890949129113742794711339755459167964544364340536325412511199607222406906107684375616779140757053598961692304020682371971497999945232960286268461687071366118056088909435168712097892769872657894035166440134896131139077521357051278405037902331290906749203981831366063379777566056484840358657608429410662081587565415245672815799788539407149494916999551144732840823631740550919710764654629577213834526129235417928734284321366887156693825463232579672154188449622780833166749935660991011060439194176696918289011912669921499443714124621715605191738145543135512716519773146475575974360419747967067613876642514509419383359046720838144130499837141586537447568862675487608023481632141167424979328663892927093220259052216161927567444759960693464890858150324479760165094691648585881138813606992762386261315246332391097783939533513697391656312928064723472338055274978187995938249865111507449597045364619276868674083850441785336176098792594131748080987331372533613926740384417387150792166775126657192121288970501141880212889841574773390675269129808906995216334682192866658463558759319086473306812663072846233403321098211371832533055460430646422406424788561911090824972067192397481794074896373311378073235045914585872941954474003448852823071843966447627362114428030312695492207843879279526133501318283607432105690793957016054787871216289665785708617782977601527707986977485750839995656440452437289982094160084334542861148361812691435316369230768149679460452262843948714026182174453894231069299795306341695768660038609807816766798244440702019051480607324788643511123091319686489653245551836359563911077556123781994687533656230991339945867840135884767591191268871484883313921306242903283399159837415501628622138281437808522353252124236036151411213549051213249411876803656017959153146456517076328623120416148005458265234145133221772746259698983022625082917362212033375836675900118936280336972123892372917363966478267378154380969184205107095893568141669931341271195180813692478982005635711759341621640430105104022677006070028414874674991964306531316477204285914517094176228185556087600403528784854700648544884353738863375292684970260071700230624826710830042975220065963762749110181425358635089584014436528426651925759225575663111004520659828308227620410250354346123610001502347108001131037603475359160907443475771766115543835862670069763004684728625398149693182859499616364757652002422467594982604420914836730402188574970419239763189318194340157136315778643877767483072055916163488565507595626102311386552989358610198662103502756185712491905031772668849096599994843038569957965843646241113978104671485426668537288771343732316847946558807595049705271771014858775452286080565108601508883872897399854852537497745073138102762361084008093086596573400028017879177326345018420538237391515829927290352712240837357402034716708344782926575908657647174831931788406881808214259156928925331482429368471005568848189235645957322393339661076115157347368988552000438673646460933531915398042156554968436795183489790715846477939898140877798095138818532955091027769464353194933482981176707512343487558148323995477709023106549799096600128340720015896158217224037899254029731692102396181639523019186305264079550052048540320687095440447072814061412271259316170037815464993504503015302198306905023400456569355476532849676015117274730138433257353902332672083210315106052074469140130930508127969860304563137190084527585158487131439871741670032121320445364430319233656568211988120256144112591157260099977980275274912579924554137430609781855961214647202193850234213566089051248114887807653841929237241582116785472070666125490849261916050103040925888241098830409520581087651605957412027478957255620259459811141126629957729930517770644097704398646724098120228596322460421286170909383477091972225172874707493029824972877475535615024692919273224499594381966594462323252167311888504096607064645223543077558435559998894925461421614797949191349747627454689252274878103810670540841355323554060539304793931624710548471051150773679620115714934028248467472224843265172253637817086992262869431986204149542093853889349306017485268459263976185554441494431451830262609675402479964560804082747613534538390706803829850216838703588762382550357285718311983380840690614163747854816744774476509480337284945401706310198964295044901643193646832356013368775789878055540974717808511121897571718078050723657579416924943975414547625616094570234227995157604032664732370814207256280544070365909444627665759273728415623680927938618437225175789051647284339802608230972663326381795614462975000036418784235231172156490795462412766502881841644783226892485768975401326469724187804481133665147045844060396620632028213833913571756638261906527902580355360484436296162256188748767017336621420988785670995587355073692823606851187294098530964167758844358827484168715378263911101703081183006165149861453364982781814714130021689551144037546697825707166454418975778942628261935888900729278999457888546746815560076107417796020267053827035450740838435469588988701975059487217224322032452093056070786300751681265482496146756054659306285349021138376750855224528299278692035674451136973141878850469901784668746245715433962789883672287099273187012293697631846367772347277753099886872532946214646993586447331560619419564732581971244149271032257484812313095799648179239813111352026401636060257530160940327733040457750906823503646831438937960094945392322706964033512211022041178583412994269600182115276696466826941749870811491712179945713267785394080624595272590802738544942180586489068500705176824304944244570242017447172176882291948824502157090426033741925306788763596243876583531062240621828175443231782026885788516411894162966294080567438476133908631594867946223960045799493711864683215961453742946641941660638988400743202455876891393622003561818243504434777778426719929269701393903427225748376560735007941747208473332369626475821968071999139146014308742842423333863398776131180073942553368777220547995997282893031382635300005852082150190267479406339221426421093219573331988305717400693731590591716113203183507044586589874036839137099336998785561203141615206862808355416212713319813203989615853102282472574680774165191713771240213177818114145347875955932709414175704465355596598112271384114857038131847307368941469117738473486219426240464812679218101430970101858492167642997630631042471697568405319361863171282956563871011367822357985117490288442767735370365452476056649638714981926758898966312789212923944143802573387592772787488307419091821495929936740077751459283906577429641807209084136615076175464480460747435731931877194486274506123088829561997770118344283691533827091718730582946877143541340787142685444558368388770530564586936816193742836413990952000847872611309148365054886571371491459506970021958625016808789100434926226674138528314273969399578187434152435539774995462470301395898880311819546918984858009667473489231715387451823346345690381211295528790837712324410588302322639916523499635212707363257966192034513578116897583690255231724278675830251848761844207232328447861389588549633735908243093963184359751691956781389934014643081413334269355604695869025390757818468628946568232914825689203714372042764095959331450934683747515926078374852819023403212813673289407223001286483955715352109580454264601169481029683319977477400700381444968163772479891999059062895728291949196992072440723778169597002299961431798869458906167201635369151765655970645309489195327053938879988468882184164629565195742397009767107661834077902817967727242916443896935313723618232281621875496214755052279364814088905113503004327111160201979748799660285422467055401399610176072529899507681731991849184104878953481088693825376065212714544001554822507061067075818473127183518881330561942771541239902771471219376034855762746864011012347276087926842545051734822579740016652480797075700087461241881570550618573414751823974571896569038244119475330851607644556052857657674997018840740074099827976324381925487249660507515999018659513158112275100555345298508982630653308446116309018305064499796720039526088322786521345624145490536733933065409995664870028565918444963062444209973634315796359470079372266799509535932909890205712917053802958318801020654517620291955875997072191969524991333008859161253941138983083972846208306720777337575611220008396921718770256517407534162580965338174732103374803866351466097974660308740349307729581407096396928644020169337064868821995033988576254956685642258773807628163224409180110342412594716403132825552242295621034418760694523661262487206391107343220194393058881178214688922619251042946262240836645337003981978610817150415536337278473299768204502413443002074345339660282571023035292651801195165750394855681897715720259474843234882226582146721461161354391060853943211670595940636162511903945599369240686198496454285040621324684988373489826062947425607598671519287985800420692822415940718756049700782217794865686246273569376620911635733910454864809814132064793445273183896992697350202301517389802417721648520834341824420919439975297074922812500394442785281790908711453393159345682285052247665416826576262536854821211879439411712619220982816440058429581521285583864448579128317535807766599344746332523015332284313531369996639152406460247111743394036416550111960033557583356471880151247953723577207142901179562955740732716377231759018729406247908682894535053683535977956374033921972688974691000310462493398199074333835283572840180875963338283272537197038045333970279361671349009951976875750859094534361801104820283179368039482934638628754918238449256873669471905713026164414488847807332585973699807838237215188452731992333534740057850408979558504884316512779286434892271812095052717147271315144778067263715761111410275830640629279224373443256409005289079674480901050258753377680625113061719595069966223960572388386311852063382716519403617707914632484678308588982404169721342589306493363256939342290931824713132288196168577375149901417240003514012798814243466350440253131444140962012951374303411228852992550178768421703203996717968554824576017824686265116866664872255050676955551548144898553582301081332961796868810013420037694683832188255791793023461188683170518230096144732145617654385707377703370223716918881830192415575676635232829699195222395578579691763441707108590562379253720454327589077657236739573890985707644945929106142555984606597956774615077990119983606475558222084741358093209277446738566475089955739290833455704706888748150580660966826817236284981166586081025459862286993266581837390183961312814561018457552703818558184634181152832493573232492196838592297196836090619344676283452305649217401543491621511221831540880636401059877883157636204190931358055147272531308798174617988669882207265472726006066860085590628515402455955084111439530694320139883666659888460772307245163932811783785328086381081593349704632897916097727415464910146359496810206937319805787768192482342512555053850898369886950369130631760138917748382167389681282959899774178262151726116749673784544638503917868406472358622163570877511348413332236236053667482316968029659601791812242226103411918071030141796944195216470301528185021440668206575703416067120692638040507639799148856492821309921600159196539531560057313736291638355638684835394354122389095675536756750525363763547001884100696652419844127973315973900834671414770486955354875648116445295991558132109884504989260201262337166798147251769673693902670632875834832037108762106333852166010143119011862326536691480392867851776208806973875891204365880898952562348901572189462870646792970140835204389810677534433065103247525109981848698834878888351712055274313481684084478986638106563199515469585204344955664510046804506288260839576150746425431026806026138510344868497059347081983530228264522035211035098641382598501497234589212154414167357190503835087962402198319296244958167642000628887999078252444681602584059872354316879008919195598481216968516807249630897013782731899771835470246762999241822547133588880358412970664592096233142085138215989956456113209964330497228335874006753144633307637521744033107756364107143959098806004919153155624201295814452665260881860729508804253711045995405458335107057935591602457756535930887047601428981414875103814150367971356655915246827291344955874569443268457349907929232414898363432931371779594017253023166023484163208208639709427514013781895257348435525151810914377202859616299141098416768020106277669666779983936015483446613288867081396871008368226430472238632250924457938620839640674624422356479254019927244334645635073120560627303211917225154691634347929585329453812855231599225145979670388353610769868984874003047236881924351886134512951295381068180346287773606530210013696723982982170569928418824812399766868470589931870670457537116412753987380528127503799382764297226082263808641525561316680466657682395851298853982696992193628512924672295251446805916758574038304907251634926540395672589686896563180170812110089547014700548241635553180233204293840445468642979683551742790788704589303921557456795180477866101988005820652183052582967843283531503486389818771672732741781797152424028845317064504139547175658339784811672143394451750253209831545244561454348093068989119879954697449686372928244749927799446020336914738418184567790409415078046788954688747289462434761856085977196046816346084282537443298608737927472072990335063751484918375426333118554168002303347990683471364806332047911820252166472225543647246573330569565610861896451004897596326559924622759681041018954055338959413267560422143707119207536175824149030026033203785314282592739442416042925031710437873569705330181132758305301997151568066834245648534176555331284398865892745133929882134753741616632665284887411893171162852375524026524035642786243835054952537701976784264543928069188006579678251054613994229621433029456532309748234833621127126305925217617497528894002357551251950473618908153012058912408407651255091369838429370272723828119960971394038801258277312255989899747061584612718653144590450359140324057616268875044053108719385882879365045444280404153343033193608116766830491531243793501780672092406611206949922298727903569422593017900607665942255561375909272804642546240306063710727284700988468013668165622414043170098169351822405304076612508029496078361515100599830386354679029654150441725153516432186402613331055493962143206122421591460390223015564721761350914035791705326088026445621742130691961237745025780713643612331823472172728353985638071103909082284411968475007148924659331780078126275560724155975919810169939766153962260571240565459657030785403710213540860966316593078024716471589682151992466111346102431660946770877529940566485280004672697956447448838590260506746206457091568465618755028088565001669889037297180243050074407656333677316147600298489977943286376730574963486728120321078009065419107383746376049943808371775383622371951694835369891114712403477677148446210769224988776937813907253049563844171867436091000942546530540602787441805729436527587641308127285450247316077380855243493266437040172210131743842290499622188072373387142689037812408192531684285966147338420328960790873748781524031773808413665312962621416847512273916390892362739720149741482417804211221913018754106824886251302140972599825485695719466693047004882729150788682718718967435891961185287750404960309780635575081024115163707362391088681625025460437301937716821644428313384401215984938307970522063711479762555179301978514078890309992958378727514718670793448752082955262375478679091137759865576689615010023562266704004164503669735589965384241111079251489322475823299087869830579283635209694819807644332526051770456219554210778705206230328754676047606479095438138814851532504178587806421668949513293760053924141133501998626216341705395871077903821697106029743101694007259012424216035204197311984848072820598716966103857775287265613906829406375619529284571099873775970917449391645375590876045368254744401854748808909270031349469565378690329515689032022106802230480838858694658929556492267783008933879365020052227416047597267968250901821934495569186006834643711993118180423256937920547852331221576242413785998637261863063295470039603037765876476431790343399495615475797107979921043359951795314602440599958475006782795958064089887036229654979847604319694719927330583003409418125965178920074648712876016774014887936054352187797952491915223989778638593732176220727428763300252183303013518017313853036288980463002366754518075105521435140372301511844995249535965981364168082007361103220863737258118656741008429989122067509052257760096169052613507688914489309583110205754822038612080930375989511540214318555081023120884551937958329620430143656673629200542628055531610084981955125262606957152860937007027523457706179936509958630062227381890633890728508573146039055548853575218927889130501735580464238142021011193024859901315808646172723057216962293300566215395543513620816849793951219709070525411421073330446339102543543985539907937175865442410286179921562681366494947329790638312778837205211925645181721438400847867854920746406079367350917475212132774768804971472201451659276354809247875494149506792833568986608650811096769698500875634999742262127400244816464737057096474124049502992584991440461053113620100425438545245104818222765672953189769848444862225960457923698434780462913268596810565982921993000841234906097938496686112522995588017842143567089846727240720685510513881462211710647920811750683186147146810325294257498166275536801462876242680629759697116984354421607241598291781426319610972710523034159980605194002894515462428395703772581529640350948115435367707336534470115730021258525013436632309495627399593714825807895812536114293053898585644827686864550426909250195916647458090100059520281076810787253861424290514477594655694081618993799983075877339699302606830499306423226690812974651750587679085530786617428394888713553235220013921148953268159313659688962256981934763998348523678694783339589294514851820634278527397899309317386789272312240967109606747390689518517368428783233211746320438034537046011851545879629587421547115757997523564358798628735015831006124540124551382303905478147193739722304914322547280897281635141304461504608878999916734793585504568944462022388088370450220369210918362464677818655058350700682173261108027177916805355037868474902427061673011736624373497673093576798859349932978922949543221172602037132387815650084586978771927834775335360585482633114422425065662031759925425552792252138463778424571967901984348043963858111968613839131672169009871639586161796260022069804505259746257836010737786627517234652717530540825142788073637466371633293085120362305826152277334199010602820024913364028262213727825902992835664308648526343133152422982834435468025786935577912363256662612949507949207406578636454950022245115064435686364054024925811614327072210100702652425579455675110203469813128602379201907954928527297453684960213320554838569032545599149065133295256465377137096866166376912891005487325990287463963838134481380193160797167527967283772769767804698014755918146908585665138252926107453090645929757439456367045058505494341608568974158266884472558303761664606501736311268592719829567506318671819766799500422953955702307796256573496563993258834952649181952787144687788969819739216190796055839437313213994281045555483282949252058298754357640612763868044796726662728390407211345579555156465970286755825262654678142101919723662874671572946190963582689722528800610344689688164819803015252716093280987704082924488745114228280223849906693571787439683923214193867214277815580698130005591319188646003235838107689813924157997982952426864874884250708491922263979721263174830792500738295111602898252407443215233409598348105579668748318962871159736214022088509229058128507806905913521214902444179905610438158343101271361191300621885208847300942042858705503435807201878766445592410768966382997410261695025501763125304332724072523459284040149544591575377208331456528718806324966370025633736138161767058799695591795307880050949856394990849268012126903217822090589722918890583101141093034446101623138472935164764363307283677870536054609101956207036318576641374619245405762335827709652577440836640973999867558235906352962926110110142868914972380649657193014182103535351786316423714641468098905829127192142749335975620691650831679296763863298463062290606760475223030032760106765941684626965147292671060095120898453091937262861185470788426979298827068775367195854557764783042820474257594985605890909899812884127998489418748836933274205519273583055901928969297307801504449796036034204537698786039050572165883944121954414863172346350037643438466696972447730369587464570695659425681872025325274281783902848246646056060793811074014022123134099111737410479095471109998408326355868783755314599868924656030907807732001132249601955320229518014072332263531668201430875014304380985406599956728728163448060088121768559469526074371002134241961607322557733743631908412404132917668930496493708166529300963766310497684867569326617041507334870281467726650216256757595192544382991549061983147701193552234239165343050176480934596316454274928407081895466261360548991944493762817888047800112555783961196274352761762228511777344923870318514737955287873388582672325368063207533053836593498483922368902940182040385119998608926845927579952296337171784670813650846246501936955478435835990694678879360229811595468011508719801953327719439928692929002806771983686840335243238910797010192517244320199276506249073267831455303302935493097187312798141436775691356460053434362506965330898835349272329592750677433833763543908608960143984749830769370017837190967358296044976095702658824363155754778411682713217858449527162246428346232668490215568245046149991795539544421471627929349248356488268642808781570633836203619302450082256501124321170586564950279460790849695474801207727705255970317583967413621933870508457014146236917441418148928923936503056940253658930438396906956885622698717330615501643307278479677454588221253268586614012164958341713941306038024524067785194245833871698775438245615736555119534250231665632169936984902165512752332107576882746600247141137929337454534361441826304418782879013362234085048481573699260844546204579699366678259237989262872048125390480950914684685748500544072425799385244141091852698591774805431709247065658968741146672842695980435651334345735888032135963035853165385303917686566657073697761902939091043635757997614371682174833294136965921902235494143237331013721316486005788083192108736248332022073190405159323611342954799940402392937731605329984792392603366439149119583211095623798648560211106090227732163356538550990295132850675047970124486609889323707738456923198169659112593309212277025986937725624290833584953379345609848849191473704715881462417083911784739484017220216926830644962568592343769287244215709985062052517435876564951474305536273735974310396093610661121071529275003905576892784326088742897462924298338202512927662271154486593565962091381291586662555104991860848726172236166366212925479866194565502879341449612547231319920543345413950779856199989895480486623853336011601836849676216575586873631709980849957523337644770082250152922856580436285311347309240808870499622812375686826966671780504189117399219446245013092737859470215601718753242693158201576157200505903874861008391723169363507486076427718158720738482687606053824634660230617198163662548081646405630799609961181936443738993060223174482887501100935239928878186862008511807389594193701349702974812105959097676244702700830053131705517925895734497600690035870581759854607598559500878393803522094731678689307306599640434550209675988784514592956191223184747762383959795883180814383687457037230177348109143315146806561481457540568629347087949052197955421304690378275301660803811427601652517113370036989612991059553326654237496808668116448742369785321171230314867053244581305928168245118128804980379139124648515831155627606684397170825511012439828583935094979744961118105671217516678042793166239613354522535863421618121761196492169022795529377937669933258379413363743348767203825189248522710201898357619189859698817441540223277566101916116688808085416040987864881714711043568032348304808517159941404607800789421882212078298938300183483076747890640325969676538673324684444912912904016366676734722456487832318388775381384240649157864325464004463521166459381141703016416964253069723722737548471586821332176016250963557476965707292831965196261328060588004188500300235890740492136604074353394463496356697356741263028621535063672253938877169693164523169075625495647813895723397880539347430132813862684098041004299257478760291047692211234058570452946240177932109045160784357995340859466700286675223670370945103753663116714890013027509619329930223152271251942487550851134896925390209727199204901864731140533666221337648569874748226920435690999779492642386194725615586974720929612144424215147253208610820895454164605743763410164778044894814911065978805638640661663931457592918865767642826499465295340291774552924808227308766061062229814732494313896381477465983775277923756131221549067386832197155610455625473124470511298495763110543539153939057647352869274727010941703900098495184325312984028200735854415422253146221129814947253857196714493258016738528070525885797261940703369851534788527894372630083716143231139734857013782530923017994237514417083582646887639878561973424053189501158360160470517972457689706811990935304537833051823131441927432738259809364635857073449570330666237687624308859737040673054073088413183823060563264130103313751740184761344520768100605373261063916907296915782106628049676678947945086230955811453040302542556128971980613486233144528589515938910815825933359247394084082365875279419657346285460899973601963848200049426806896577046719335343504120501085784710359189821332093104104353062972046666988044167176112853951934193636712770784146548990909247838620593576909026576717577285360810634318419303580154884487882483078120439142164151516746956674914161184622234786935817811739271949571177604316098468027088092803939356116768692970794553921447501947853122786158178344064512247216308180103178896033081810502198764221019465042028054908923015641717441734367636848976937474574696341337726856948913150498195319975721514355430352826913048021548839228169773570579038972520886092531179491176402453760148214637094628066077252988682093522207435326777710155704768629227515084379527257554876794614237941715939835761052220941257317645357744276517493839538623451305015801949688918277598526214137803553417057181335348084374494060864081997973121234993757020071064281199563361344059366658274080689784322105889802404291729439273745668840643050069441712961867816002097942466511221203766883848003234456718163581046978370772884968547910712635536525679849674505547204014170580690384112825184737387647301243099030051274054002473723585841606368518608083367141346203714428236531794614955097983820807107897575203892037141126934649795786284018739549253495439430921981922487470204254022057551966264742569292136796981691940340501126933086742885541623345504124680469868320953609380404222619302193328246748134224525225218671241888223015728232709742628263170974302295428651592731862617800920470034038813191426969352799896525412861500115967877951414844130876051197228304407205458241510999920759035606125116894360564731071266278445251902185900135000266409529588260658767791632926103788180939320751203136937315203609065489892015475554087773644535178816577185853994390974647684529122845107119376754161396770414193164405512118791590195533117678350969374297394139065234797359637302874019682623916650042584095077614914728404195025720015100418312584036178611968382311524363934419477308031609860029399621336754603917958296143012171260977554463329503622315163290346313001633721445506522089443621200428014377015538399531776567161011989393333529676013652529935906070800188295470125698992928190525615976056505799950729653857584846616129213463913735212874881999203559645115878740003187231754072739686074991966991321749338180424092180138638679602685063868793426624597411909004728172009494176113131061309698489990148038953428356820634720047542830141358239042236561244680535967374714384457845649363189086576646748974707497424923463163871356153661821335191492233865299950472893174060479808326367567142418825512797195512847632041951103411730426060221343508575608048251540276148819822367846031745414443846134268277006854435105268494447062603199139228596555936713779497620322664395750587999767174543440065008572972947675027494250366175524373532385501656041250448229427859389572161143192869406191710270359357785226913932585491521097471687717049385803475560112686524046309323703750722470896628509936958356835348841676976152774536212081709817689095160398856411955433959588976130365601530043502903675317121509966091349729527612133938538172838643740774482371592105669797962634466063916853384355245323500181000315430857183240464683442882655286247626101360682964279512139977858868123723479859615385121833308493641102325179014090415032120807392353369820783508753982629613005844283712185898012284662382685092901156810531035543319470188765915424053881712231707019357260351398605787625382516556953614929815632809536235034700767012426332070557484547777594876345054236451266694188211844145706987009901711866922984201475747663506488302667225434145301112539244320935556097952104925865114694256724905004757277313318617246436045131906899762209878840053681145308764294199581195110386771575262652004104667054170946422721953176092854434823004072511548671845535268613034458666069395086764848019753342670842018913941615741419224807251067157409758427501313955993183765234498072075967155515575061174609118960794728999721698193263821177638705535167897152180963000036491674063830174032522227830078227414278332023332362388365299246305915902729197214443530091349330165068000596356662254678327101407030609279040635726651031541345328447054321737150878393255797790924901554601962009991086772726099285738918073547621560172464260877893647814926640767695460364670791407510065060871266713147998196064028195819176116031602137548649042619348105933021275519475862102033652539958477722029882515079415917898010908433846257061682052356796029965452893145041299923503133799811870321310187680202419312542497944687626085762539997514881355586064173336588236231141524806684326719313607039206889561670038804524203580907017181131814102813770040585613526803577293037152065641176689432918794223125517891714793315658458203585140959057584304091218198898006914182737736588651699670428748136558922128882389774731911633551990377387897936084131418050101403382241248203120242487538467201088920375062418642130487360651604942659461590996448576248622451827101020858627968349497315215353992001366623343219042030779112177001703066069162821128583187790061408352271366335865801469084486881451896313658112876660232702574474153063686810809015860788071355659917475646964884845857929067160942889068274065685419569110408433612177655299438455045646175818038579702617702793449734954317102763712693495444949670042421199055606656871911321749903401113808469419365870392893365303759394063456797627290438050018927808724549442015496450437792847621393853782202358465691778568053039953573774346421414266700889234021675380972167213394547428214069042203867065009524397113319511589012439203728888935000424024079288674616649805858276905254960588154092046566624024460299027177545156609597981681865156490994981628293863972397600932547747848188780884984212221673386479145785516181375693704050045714735512989142535508233410178059433333326380887309653659537819144016129305126927012095082166011308817305865948527907631657534899825561669445569227443588327111804279744729395325288450599203953986510175306339158547646666097147350626222835639424228347468658199577583462481691883258617413449597058484784456952785442043916574056634196218226223758218131435065739132889686230009811976550752873545311137630137548333654842784944055868401254487748948447612812108950924256677332523677191787545488406818545933859970652247738362905577433807309024801260322630675239352761795514893845605469490156756369234247722151748202295185968244547340646085191076643866638607505541770640525610130364945147182873805050282161074553235177345205145677718148329411540471304003447012194627342506332082763244298443860169561952873664877616604554119441340654701768722021574783170111672045018283813889185840319720806897642265443462050006340949357056842425684077816338752542710402660771204772090594076308362589160193093478060462635338406819670721262179457968345224492238254314352269150541635032365699228167105779975139938502529997944077257601223508227679305774327334486677132502248543506516866603747151896924572114591676860019374926123574653957133678692357532542457553895921851744624294724824578886471086355586447766782768980187896683571944935117072369168192668747562925860109911745202077541335388148742369204835669353548169450507737976913615913812767745878253866497300256045791325936029799114002605029324215488744448409834137925862753914335877622140513397817921670113474095004476301870113637253019012304276728567177861195979466042557650001849727966681657481235051552596895770797763422203072809334939862477763088520360894069707269259170058555429726675924389252505609705147715739715415014549111305076312980088297814671733130955901917733757905390201280349666719813538953681271201245749899291878987151522282590199297026937468989285910891529876561813552356475915730273550429322731726632335885760070653907747147615121374269962741182289086223005299675883007632774524957579664300345953166756872553748524950505470503175384112099131433115715917100600231959952019519906224785888417927754386082779326920744827126951407108605559174716940669131243477575638336435337578141871677809162008485502994260602996847375710630370940616955082178206476744283926656630799493883399189653948057685508480160205444510328056182701060684289026956533009524682985798496410568547673940212185047728193635189067762359543214399139149651704817854317484147683062646621781347449713690206558442990268152252555626366875186256682691942677899471732506138172303684545987874640983124747640259246123040153628741489817714246378129163066215829387846024414015456771390184287460003563096668522750413846559443051346207980098455454674042158101878161379617070541706696925249760330342392868945642464082873799349999960787630801467420511157861497792160172377204791922823981392828910358625756058011467245455312519346680031431679856667323483840495016762665408632237766899590853091859453946226740210096687437430111095050512392302232560651152532300782938376834746124265452479736861041359720412462591622837903726265214116577131705729081412820893579525997406625111276461319231293105551013177327508045782182690947941745604945577599626510150938921516435259835457161530689608408707346316398899271391836685147477944173445373559042331612553816792055420247170219671920481404867633197434875850663594132790501754112495152477876668615410152494984581933656402828703234831190271768752619150971555855656346198093709991883486416644305444899571787105590917303169256319621164005889629106791054809567466491846867635906120356354089515036241780949829531340549256459291865395920523754071684051194499352379333345677490408353202083049102108242793222494864406117247389613736304551300684978117487481296624605101942941002198819726114102117578144498055244282385423288837104046137785126756127329145651580485630798383803290276194125131510394430674215638967191040048341739577648055641365132867416816227348236340460158926663114834758528305675726690271648578609874582569437585485459151565995667943100729720005309062477322357482787404099494642261940320673308225321037083403777200591085118126167730762248267765722508129810263995299371995720664160018743237306264481499015817029173585523738054367442774544978753831185895969845340491472418780091586946121195575344894583145481630953057196263368861285127163613753651193201050113526995308584756421670500955540743677965838577368240732601446814206293989603422719499877627690990559435750384258257751642054549283625555838407522537660233672809774545815464306150342473723592137187765556193518454828283207025622305797200351204554852027712545603026532131735409947389989401013334467115754303222238596873662618974681265500406867143129050107428136735115625994629037409792418853848484783982378966510860913221211751433708830502521413807615965758489572825961705939704017922745550369752936884853832036439145460149358886137555693755877307471190690920675481092788768127140899318597334960860917402810231967742223707541552192363555319561589628532343963873694865665538445689409120475665582994748127733909446419455974577939981198904383954009784765631969542391272694570875493894500191618645365909777021634636406701041579596740153343782941805009199996566203404366320025274442074776082288037352962555175540450895647671507187935441684610041077707141586309019376551563693253630342886058509813374810150069798016183262451476872799549877581641968996359435138556385979475373279285091182042071755274198197843775468913922772834099076155176629162654314149897186562431664963475097081239251898333833200553427247991605455645565194647644574685088077192695259931085274091187746705041306394732170566365883529456132214867365266471530073851888984870685909797204361899388309994552200781989430851848759254084686344153090525476198063733551825427965136204280622144253007647092435028863190779221345372209969974911202405007408991464851302603736699023147410468219964881793708095040500308524445268409852688182662829548238929944303650704855582092407319946485432293315490885984217478546169572920302076820753156038692556415549091200993125928536851884360625418916638133710751013546255695010722013130523080804407024507745108168561490492929158079046398174689232886016690463528669123886439041311886959979556027595834704810058927692636494233646407904120080118999101178265903169203333649692056685411408226249523465355973079879774750586779589806728707134215696503238958367655343434533735149798669555135182556045072548026512300539665773365453228730884401916657381427102278773373955774188670864190976534896577631849180474893490862332239646429502076370237085273612383300902832030151599227052601002813150859105731018884806591355328110728430841450322084750610773251200539918058146052356161122864014443473155579537565146118404523715666964883445852707203357760318160082174507425821674956129747034814600733436333022918679768330576228290863916954261702323094085894789803886085899241438927814211141687571321742696896922197960116152619629839166947788712633765993904800731248350123593002590819205340351326441118745712792654341812535562876308633717645147802788251996954029945897809154646045550722804105548636789027929312248558870952580352285449743727138896696708110153541640211337280249312933503732380388122588891509568650113332737391326066353692860818021912664208729802779114017805824037715691591559289837068819252736288141639054891503945532525659989796393886041487143659589398205416970880646917064715288256651414534341212287741474613814961462746968700790834271711969997209627278844364598405748868823380576548731070596163184510369296483455574094931697190526900102919519026629539528655837612542832976880417479238906578204548884508186646349505486546156100827082090634031468146248495969046069470400204901054100451591311101515106741129446109234536146259215429117423982804023935178623089266945235688066682151160805160362836368224105615795646406252386640665463450434339428683676011168670394698103761397898518896805264029875914486282329412050353535823759828472891741160407823052525885314710512531631391723765338486134434299845479740521575557164751088428991008288343461011074457121925642803586929183967612288638332976970574134138232802685500776747361544297956481567771496245799407519218017110278098171137015180480376891388482131488470545176276769518716848167180003730135633962477351330288712586153271668031583574453051054230123628948429080596467425793054656652349299477114792746720439853813284522098075865044420023450637240963021121501250551088471090415739318474286162971103061763084561467695405541955144236980273985385299074187822579607300877066045424435478524310522927283195236949174542884939434027552551489039912798724961784684211180023750527964648665474639127640746701805236638055357043390473325430670644237540379526507320910808408273222199840268925503071337271401406904608220433042792875115853814775978102088219319178570541126045036453639222297698678635348790203494280523779073447219215850506080640157753959550298439670972158628341006017812659136637980671658219686610158114646039515232874190498570413932187422994433121040727737768879811722523782627711074378036107201206237545867740183364270076642070005968241319913732028683161931683573836015294683090723802569258970155888094778024127702982868848744837465322872934481203546773939549799307080711748110073466272082994934839309273418949107883759389109912507016817215516334343524997388967075432027337265797526947936980145689326180123899184446461697330497082899708714644916439280523156196377017965540361036140655214758254030168618841764117263614884881626934088727349657189713740671752117204983746736320414024611003896129342387770173453088551212818834665062633375542749659296605370653004584314506910131205084888778996471003916786090232981015429907613159476298150501981158504857070008686662971616847813681731120853729720892183099229124175726625261276884052617769144650079235105228831531599842958436412622422199950308843660412375597239704101007323247979156765011681783003428172544845973190688057043905891292450448020509745563086831962124999256721674237717948490522115311675166240058384920655441445009814206780594754748300407808855442932433100729092823846636312525263924004977141278460643143355410123369557013408915973603192408949888701709115394646812794775851097936381595775304705502519674636591601094229798129799741606897630041483735302539495777235307119262291863899273574224016932926355804320381108483891491287804641323856444462602287673043170863619916608975064348505798994594273889992488779681518500437819536657405185101582395346863986459330377845139334389269485871163139812570424416627767287785424691804209217505267644069970450107324069420804194129506478677263155191022777945450304741591926704249264671728037292257248875530805898243594893308276463137947676456757833477996828089469614774116342823603338918443182490964371475874373057177202729172125609990156171539698375501035927438446476215386591662052273801692347441868353425515173729789612941441266299910024795005439217193851134213896753309152821021526507152135356247881222538283644081635310738029397805392677880385401273476364820911875290378689716547971845027528070850317589306796164642158270900670220380412604407729206285445805091661254227774111754207356248516596743585265391259407725440568630013146053320953403682748391610437015140537815204664753998982713269821914782979917130068423259006188230025091286475980200342012995820514542637237656969315381370314191473789747757611720398001039398887863267580089430511296066780415869617094454838501414719102770499373940432355082989297222520170976748113021013641465413441551741559126955627228878286845791305292428702273732338061816559029506871265096365856864240696904876834062311405813150612320807918456097291221009530625010293492465515241918246274344801417830670290450847299618984241461554016010398865091601348113860717340712934801272927343537328163445395403132827877705126694870437379294953559424958644972966123012323138817176399634734816409425071864726198150584071777030815223343229477980413471476259256762024918499657816656685387940240363057686666413756487224579141460874704522606744850408782151286552695862769245000019218141267449703296043224867881160746964755886661431102579416093676085409773135834208152054710514295095325702303764741473765421125063265207270147444347824099249157196921929436193365830711518395664800179233871422030669040729904738424396636763431291434094969282466039558881065678632578610204353367936206665510531584108291342861249733019714981872573541933598773623639130051471040573091089548664674295109914202951541163621226416721228353629540725603868516821674853295722536926302534798532348744249660117433079753716904171446754394299086962027138346495900823811290567309849338969390333216796827090775810540959809169343248337671755717393872007892397136757007688703782659965214744011159142187553758587421349384351905600782941070316676571311027485828718225483321719523386313161171261735796114751740761874039548467639663734610779610779547809466962544440718959556700881683456245442395616073558346111461704430679276938097652827000361920464280435486658817019730259866110218952988407533929363419283625534706993360374450761702822823595474113350625519956571481888287942831296856729853741405449479784578137344941845193400726279790296971215765198446388979581720588979477279230717954915453090841677458423879340107764765048675700825116603847275275030218180333330377078490426296245119994348222622366452458093046351547101580239829022443453707774261551005272202058039684212297725225669934919491499023549822096636967992797826635644980928066452886889070909431946815068046318325800257592512650383107599922336168056676493321296636529609570311431924333790105956129045217895153213465420795360476345968297799587949084044592262609383396634825559903476613158372727872024460950425485337274124051221269119529064339778774520858527982190558719261560821081469579904209834755503275054013325732712162503295762984528173195907369661711505468291739443694953405206715269642426031294393440996843096920728907833708664550892443822164323106871937366684526884271360838295757798511359128940517883052919525925028165098697716018563529861671681123490660455123174621099376076518835557527685694607630521976297302732663648408275800574245554057129838431630903457763966667258640387194267503183219076478161647625992390290952730401804144999437200777962007179515085805082695064215773119132116230186736921866409531908158073026227194222043274860594476821942019672320869057134076802514695861474767414912498443501928120489583679426123137211405415423428526509105679968081485026148096126188839622302532395834246455164174105513196777500500934913330186195594334061635055989792143888497037901740878964323281860945820115412436201774439580104242996058326512784559251119587279896726890931216710333968897737655071184871011669450709622379746764572773657816537356054340668305259804613182012486848706386305656259484720567403114372761004569958420458381169511265991992584618535257799785657235510192442462828503909569845730922797438312808408193064384470592697624244108357768055607628198681018542005807885456541703179437966913337710857781701119308763174218647903378848498323444932108540498175139892936230989820310005236564205283317441947069505678650721853382344217726215063131961820283629296615167240190660468866796136668911396800594255544160065253474700212206513060577851448668388461202391620217133452944221196399163178093586318234312061911226126185402764625909582705542001880957832168790688711486733406419555139035262947318745277638866083410515461482083152797963846689984967294089222287920674788048997800569126107638310395360208105642888596887892715463199899027806870104760084018812801819644827942372595328470142400252476247177703740529108454838919415634197643675940013374867155100091582127599551311226501225817043652010942441556144076204834239879450941615354267163783494393748947800223458731082401772395540228699296241803893234713816396103908377138031757632283209019760641275603472050688393550854579828379009078437669320464496275393460488621264018513449486017191622904524995037366511684587522258197025003206998634060566830447074055956142134687786645314819231297704055666568645716772745993033734322653238008924775610376351281379449075856481069009217899360398246405924614272701668411923233346722160673792663075702334333738223081665866578918025674242849796715576954890684488368253821872704302076119689478414725906339990725133388432148696936024529611766446073992443218374712198173325824061755698692147594174090587065765627220527061329923325930318801858934626221598839558675094956303239469691650217887937001006176040017666741005711086520025664876694682350257638832976877852232824471789143831527295683299237492495805414279966977800554614173493042569516868444900412376379875786340266226187920034243796949608017319662464234033517072239743559688695691271005720995945435707658953526971769717456039733204778785014986493594895416417293155850938425637569789314681057492912862439716115204163275649598820451746369650041687151957402259353652004499067892504779144244783594414797760696461158335655449902542840758932815687836703239277491636673781865565120014872359536350419587951656120602985232738640909222249242406449762938005484983161745622263991515579936569570711885022811044548977149024014505556298315793710426087989915339306827906573317052346362250378611164501217657353695508030956062014516869382509896883483551806527672534050192332950698171159069203887313993780007728504414114321285370351411680453051983122346623604818078385591370666366072876352109991486841610057024576878919894197720583629497429991072390643232391614328691650286087053110643283624438722553709391438885288163348896333513211149720832443417123799750300390720007851177758594819155299461981313669510535157010311963180597281236405403899752540489386198044856595996071479630225641357542670001955637015343489167846805597203296830934411061200998054014468850270366939684162147144085118473814689554997415760811184802452177640889240059917806075809950242014186851818036365584918725125469772466858454613667220323135476707353719704825770403289032566155725408246675812766325086877007968427529234116048113148514945320832480381483770246089062657915622933358250839490324672320830546552190540067031347733396905598320591622169292529763440932540073303121970557648630772943503295493948744726897025990366298998698468660739164505527849992914261318338525231487616472503592200751785692947811780899067510265777471594765271148155584281948999123992465819759001291514512391929815930851120364178123854103757767568451653188243530676444599484830061730961792148024348277857196282473237281745424134585911967783759765658978189227390408392028916972190080652109300706831180292824117032115218047675839701200533368859932524965581981531092766049177556332666736221422173988090991894994613480694542035367940658415918716734651287268175458124730500036830418792996376416311551447660496451645544919312681001323495908802311872559075001740016562145851067719378347312524533618369662681681275056274377492888014185670968910667272664795213460697201985077765645584689652347328931294015128673183952898212309225708030921790524429252402584639214294793851749740921809542780266337313637953606139244995032702930703237745295987310898492466339133532628121669083246041770778515478781357779811340540090081148272760780157677311591220203893511758423633843749686266987663075199440020332885770427159684188018566155722279694397641949624196042225955437270438532960314688815619281167706710225836854429709139614483398586826939832830872156950953358381567559369216961959019047101756731687619556039340154570627225863475261095846873196308451763759727542264366637166375353082472829649488140844255689759782620329878558171384347833613621116558703591582040709737622979479828150527846167824937404537054134358462642432383798517083877196541513872112451539240131586258202939654795429757906205304318174553169690342485473960446730652975443677660746406456173496815923025147592014783527405711745424882224862639406179428624485486082790644686558608618184692517257116594637346436114328880572326737239344099863344710390131791683667597658982392997557465589971208129351356641981898922834259713648091511569112833365131141563947372219426156704033983034141547651025305417880568824630780056946584040372033150168273870476133809595199994360469874425574609843049966804787529398073137637658812971934474528309695691460572705490366116754458005152729211366041536103958439021177821725705026702009195397437297537440058237136959846769537138176466216532803913952735447806494216655147080511405637625501990910887492393360885740669641718708271423367413406221299782939804203113878727243886036495245722701575919564768602876717648321968127951814581221254808542025915674491641286715444426370581942464769134119163156453905667806137226305521784741357495488811493520212114809587853900061181667863748394018045987203444251725423224264525686171138287086923552286149683224194697602483204316178061739859698585571513677026837548510842067109864349535259074499778249696719013215553622469079157947801291163834880645030493398958011309809949140958522636136885845505077966513671859733783890606223809915068957172865168699490259962450477741864587479850304983645477244735461661960129015831740652153433211795480945535215802002016066627071158344883069465047903322798823795057719808639870565048337334570466354247053651750925296714395111572539587681453823604675518295722810502635133415658660343991924263559302943576688902998352541281015252590094041771382892253156207643705700280425712296658736720379703243083467970693902562068901807030212051475903619297015791351362400613694039338882694909358265871353022882586126555319441755221343411246195791139269398806697720051442237676691606359219747618719661433454658725620144494105092878307332062195650021546003698086571988203581237831288865653386305058354560844356178101076774885325653855264179789607634323970336441459653666492623671274020141648101871704352849250828646389020601474414994723220727588453972886448881761082337634646482422473802139166768807817137104455662526155302858930147505635518965237420357415422669895237190476231098213795135801984271317777012806580134044587819589897392154581195323818742956924084689223261114611635434314131909356940765623470741325358341132330568412274802116011572566029788854457297852254696033949012395619822029342912143770804692273721326402945971407465004346538169708218913041553996197580650475984756402509378122501675036678488548194678402344775469195931891657808644191433527171464575996559176139952576254574299605112126293507351252524916913771225792330794543816901580957512478158034398277435181245257179971995068767501281941710315235277244287791061093192177624027915456335079260537001539864607372664259493239471191989424513178236313905660077928913571681056508061508019558155399522991120363898480240593748638810507366505974008672606689706516293307912970471583414523573272992292522835642575305828154605275649111840526639810057158666301079115560218467733148179095418938002638801366509647070698439631533967662444911508241207991965547333558763599443508220110629219766133634127895296193616153716830938085875269487201687548810078634395304682900313521599709716336526343816911196575375021601318816328610166598640123260415089952094091946887016249555690274525261623135092046174104066838857992639003961736868729502229247249981546362607448033460192217682866223371600177020954963387406163410739850356727410598266672002302969116291113142414840702762877463492142954541617191680631624757388243526359461034561518867065052093732008809494698330689900187241314974402755813227980370743955334796599356536579361805764724572638506954724914312903226871136435305427911704479505940062641018942230315860964656023222163536187614749692076126816883111918153035871834707402880631277042463351275278690110119687936347920923528757139617313548716805692791739654630588138707834324252390381121254321793668812531011628334567703622803272003161429720490367960766897780644019522336651561531141503042535371446314824263003301066802646471794086222445847939986891363080183056215672470550946122338183828977081677148354902359050913276993398474450105619941340287604816661930450639847988342648064349315143322404514396994274785019972973828380220687143642812810642114098245386432886533629063426726719664140793025698779212065696392064576999937372530741115743878502548254742340879875924436266371555127603900532712261664145869463999936623857974977358383096966042559117966740038458206841025760420422133039514534648529274986855556401351843939771371500812977446576988206074224127195928385982010754455459876527552684574166280667383949639677753424215058409106192770096003378552770877229890881747884096452349436193978886162853528795349728160298129154805585414405650053839255281032158750425424629835792148110958028960823693389298291047759632079330891761751822200937702299653264825070322909020923155092057264189136536265974196150870105434038200368421618989676180700812142425737353537820921357313757481201495476693959166428977200271889103022773265035289477698412234622520358968907528626144802263850706561530729034560965360900885657148375161419717445809661244575735179986592238900203927205683915308368165354045152861479734160147087840634140909524785064442571105152419501341583913813533043720925413165366811545485634897324635404631747444164398996675172883535900334346682391081830132526139960373711625747238362938381414246601660733672737664135680055178375700277206414646810211214856960426836546905851849531740205431111776276448196199749932738612939619458667672762231457457132954063119913982669071574754229024811576490562683645827513013247756477178060776339795716192492529693743136898607411523134946292185650335641937018258096035412839897553687640958986627614216181344578241647489488996733323343928259163378201974847569569419959368696427419175704772110264418167754121330840396377483671520534123252432608236000343623213483484680657599584453296112807083488991630817479061778020127162344021272892841557396827023443417823416183943040777217479806348032194955061805142775963177716923701115516746936047078458528875194888295032186785411083648461057813427999958174516188742096131483677934661674269158749787516623808269003621823962138789524078186487419425905706491137567491653865721893668903829950939564917045497188063181177652204748611116303242732120777955162299289806658922431370773601164112611692044604397246975493003297274594331496270388467413738417594510152881790545204865805065898332603342480565824633851705323372194252292398686896139354724562344750414792190989281248558433224494301940589271323719653693077120000009211469720172588340812971835206274911377928738437945048823647191069336178235903502701504346453487967004449143220266072451801723140272997783779122824285053495174212538867194474829570569716510053672339675921307900515431659903697946541442122193129493221171404264652463996397555620970763300319820885001465051937243914302974570363488459366016480346550139628099254557871766177812040384360908716720482752442320106310316391597751185385095402566551993191126781791606112369244964985439777576696952145112008687842100174708638704417118503528800848493928185509442875201335236333134178481913311818502555283170614620304357706523715111646103748791435149441833100691280217417564826571976123969381434139563923338257582094354754708983112149057510164410321466563324002618218599373297586254473141670223819267924875147036771871482820909482667257347184094143332747313693541108436757603830096954121074259373879482409020140278459431962758541366025707723241025150075891169343572731433055608293437379428521542795788346586486394778761143487914954080080929830583314776461892026560997690010242850832839335293279417101623699725202601674360317003645489239178905360805798092028324206362055605624952949620345690426320331317790205483286958822114902858916362986801793864053203538696227795822577224261634284428918925215521271295254922756349391415780442446520325265914457688606234411982856483566272598343073013843952062575128941594243326241539658683135081110234641035232982904467001095539129232111793245725308518049004950991638500118985016951041999516455215503264712212092128721244876391303008162250868731817965296284049901221144264770351425648142619715242894772460109062499089217320410221577411763398320172310927865253550794758067342087912664712595697939665406075157283217257644752120702086379540593278213581353541492034996258398409030244488835940954214955746545188124466009539502096442676320632673319823984370703972992464184652981283641759206862782367551444985449050500849822933621368327853399411237901687836015623935623846540863827871627879508288860835483466185454561451600988520378457688645676995633334475352817641045336831464399757974972920021435450648534043797291188775778281613499511253537947999605834546384728174779654795991010280764429300948168469570484750125451444093518480209246206798196226261269346717030561473104918226552174941073980256391248458855295577961427467176363525653959816212653378565338643760842914169977187906578047567248211639565191207962116626740599324377824055511523373579734712496071391242353906721214416450165477117545334405323185697927715255133893084576476522809171516848635603438060308086861700495664388953003349698692219335096145568615420933612650638240418821146140168930053983907317325528979923546205467923131898834680647238245089445301048113435981761978445109064068071521518854928114517204222524230159841248404244529080522536882904566179470873749786908441511684280681834663679012746117017125850056179255414196801158550562580688784231323765259559453039155383452951912819831703891229385368338981306704908213519523857398947384383312404877607282076458626109311647466964524680763849491943589126449172441513319890017508300184739306395632045937107027513778209081005900787971766754524986609390910780937257942572931843396579815347870491578645268217839995918043807207071414542170066086728609102924979917150630594937636572699794238489446473376471974055514479944540995593407136483724067748366337036512456225772036605500216705500825583306501050964080515493749150384415442783378700741342142796426060606372516604732391358570756857517253518977197023355375955782439532512438556482842578350064164397260253642802809933428932429780859037255668158261843443820852039291993485964397380191603426076007979148994609121763739502709245566800472851066271317422708532126238069103022562962861336989852162571976738830536665096623995396085820722114129675934602787770219911042498680070742339096621704097435166084196287218901418264749411340164074450756788791828048087873489043656810087947838224604072276819930688393074681300510101423770152281152191727304717391117797962634518342766197826973243571761529397435554934210703474779625524140144177539615714414811050211718172428564845116522292631326027642028872004985086759189156449958356771320633725249599242745694634295679550918139356587698430785572946521887122300043973387821354462788978454755795390153764172478110119276095067921102049978653577088514195155575328781320933931294886667596617310738671560019371837271104511914744983713909317885456835486671931883453594969821806562170058630923639733287812326770995443011523937659507555568190710991973652822716249531468567154704590951639914340758371088259411103969239808618136919971852789722663875432000472553797218506821719683530439258203796199004593787830514928799385237646823035578369968450994656677878629286161825161374928796818041845285051952242206859148072310729018196352632475385135606137120470858091399687022531794032054498838526620076026720209714811598878172661403648307619408365703928412595113291507487439747920492918094765534372405427680382876744436531457369829525379209331531213202948897976851958623872573467164703059713835812745242063389726890916280451635705456938102287682279941461858165155517494737394327495013399277007707380113545828428146646937080478098144048417980512759404498041109656654265968699820532408645014460242249949599900905056886307367388356709265872046900642423115632205216562888922829495240618778179468839774778145916490688439212723709617177950059411325897241551866688749537385895049982997284145264030258307336391723725124472956401328419716337726917819046889304781173717438750048109530506328440666889022059558834661999060250959175680520310074203244002684999382939763045796370497182621260824282854885898093446028637679856319792380156468840115129266550523016130117860450494343039468480326005440636829023961310309293253602630575966110573107770381444358802015372376260343620717355755137703221308188669730055514530794307017614800760848747909652921919056827218157400036808188197476269810837948200502919383204365244005481612457817036601020667764324123931604324512827559308162134120517415547078901114337324974773278392298179114542568393848828565306193731523126873839014541113795604805153231223593768492874864910305472182566007916918207398757283791554583199096624986486919795266651456229791395307696881144332524267725946667935577828678153374707746344884471051153156218595127637330313637321393357875466357109123523471908533421623143101385936817239754915643432383884985287172899606796441746468048935271311590540731487290455677214314779768995615824025575769237624533227540897843217093775061091068122246979977469107457634570925763234607157141897706632511185644046625991076014373799831754211444459272734436650903078443451157369070932985877372092990606915890831713066999662675834113978991446683505405370450575240959808704720164602517801251548512060004610988323143111904080938479817627584962709568167593871563834292004451178338800891426387241370039451967647520039449347355812191236817400411115238550559020913466880157942784145066951704951719870339692262607541363944016831575848555872894588426614360523475229128400676852398058874401556527162868479030517477963208998252151792114618649263623307877645142595358079517310919865224441206038979099468304331442133386869019998595484825978483992050454985795737085427620934649219504559848277577619089980696761840640505378506064030272721661218362768055219240490683530405320148999766514263843437542796946934019360758610168893952579233257928967277276458504993417109480801629043702159720940637219469089595001336822220993161405485718145271105271120508851463492847838523719914750223910894954176866886939327037020079330076399795378794947870664877236018031915918888706492631230624391236888480744557875095375589158918538379041665085153556712449487126110220486338112646344046802208597848249251735996144091370591747717074525552229945263815734518142137365349850623962340294599813622554047693134911287270034925276513004984276334534845341141206323901652732651640891960880194821104077737206589024736450787688777052286166739853169713427253567129860357463994906948506908921127095060280341378470155997635621165741464364338547957105832945645569842024359179787783094646825342879751210640491061099657795099776729493960282669245987421281275048422601245493378032114280640050812607447902884072765770898592761858296422452154523979371696816847533512682214718832108943757009953009396694803470930902574692377561947109543024214860271899036668062406349569231618697274821378122709062672600585920486763260880253878454362965393580268443885624439430547588115852235520725380308639797838956330113328663202348752318352930730422623313233321112335416287982464245264668576351777678110750069137282807906847800035633663434168023710575502189525177787925536904453490957810330335363786244763056048525791710309487490703448157120233672461427271581099307847471454063680122010256444892519929907619266209761382173257529851848128999069291196299788421477088057475670524012509987250946650489242557802537410710942437443653979047291185065307752525926734838997719455957766858663411168965849686649080764035615363033506637257429452120393676778996889699440801593947646499769869188733284701909277779550926943812473636461793373628624619505284858614166073571424002816003613751816631540277905141593793888174231381556211038881543491593846040459802834308782884112971329558605635783922782424881562104431147662509153757947475378514900604934924016838104009062940020412471007084068482425400880508596477119100771127146965398455286727400402458996335949176394513490090627100191648474233877615347679908689046422541779869119606341921510447320846197043683700949776491555348965369536614744443041522719409409511874480173948053742625521857191710510919949182109486779586914113763956039418989556258754855319216327373594863498201408279460607976161680112125259450283258911323965145716675686639480260329892024541972345206539772496825800301028085244625287870162371857374756574150754002118608451179893132487917429592218600599196745093376067443358422699464653187347161578958814433674050073753877437711275511895208561184615070321772974575793508876788057442925256111653151979028501742349620331368557688004590971898968074269233640954174301328897437809027874129085890305653853883245836983073736245638374691389360359150492352214897727765333321634374304252723384890033828343820677802018408051921899593479432735186701876939937991251288947949008752743870106053494126339789098989528253536564779076022359284767285026000718941288764750964311448343961022088222890359942260306182547508430744604661671967713703498292178688199778763484168961750072352921308994214941829951702719218014529412255318812793285794094669699892263417634709475264948538290189309480167402758309202140872505646215602721183237755245705298932623035078545816332497149236337749060806346241385596583327296821749840035147540169425990058171132881217093952077843671346239146266457247247657590691139466415575082887290208050950487930192810620984152559812119408237489154742016206784400115083953138805920816807813740487981818409472090451448249060765475184624340245314627693883001081381679678387115190126434615333355604608688839939690009516502815188460019337442852223108126425201657798152787226837174993300328462501194071272800078506741587041830706806119603689573227736626856056489242064894804003808777584754610485546619335996731310029748500555943114952287485626687605196292403094095807682171984479443033787075610701937494726570788754614826818663053576653996894905268639363278943736799065844321554174994275226660005471814486713780693526354136487198482235795014915492896311112886992062539681907595036440568003956038941409009157859631733036884165224383147233365341269984363630137467602684218831657087412046066540050222653606349294281159142501553625726731003289070945017108028104293980961577576210656324448057543750576743937319505982724003132343766222092399846639979388558695687743881623104917599174643534400580493529854422428219109046084652652905094415014624181212483054358965513602493902860226453020363734376927303792773079681264732456872244458547194554165938583763130201066822426033988338642799111561734359722964369931002376130171136564318269435173996337324766569342148417800446920277951291021521324382929257445695863035239300014567750997025599472584540967790531232691829546481440324382373464135567720592385628072412766661788277716252199916798647786578544288470953890652628077142659597455523974266413982423663193084896469202559181316698621139485314502427672210495169092791091787711739327911411386164415545524686552853783215946950986208082483345217832317901181354459410341686909411087388260773660974968732078840830718799940086352955100897022429680649826672652676386869841922379851952819382316851963654123314202020422846149306822158214205117894332201721329303073712592965379935150530123563686297094638545463644083414709913777491969833224651078185878672837947067625508988724308596645296786222638517467264276255137544240434751331233256583361517404347230652264405736836385363304856610572607533755906287234515168889459669662935818931580001363377697532752010558957275838605388969327908140219753908536179274805572778467410752010429408193769604662008316954408781327570100656057236302194466326894167491200505398577307270556694438303778213715883515271746232139261068895360823555409577709356519109468040691399354939195221352137409295690089450035349551421593440884043848353303108219650019790713824751007858146962421721347665986011103088105597349276217191042556440153331834803609471323933397974943470242462813158248717558050007258272175597626125642445899273433375267319641639583418358413720969665531679453103239064440688475746808231351293859951568695596265899297013367838864215791906773184698036788780489010160283104187644523507605906643456861745796514762996183008848533819282408922873431305367016382298954065080039785400062668505001787337461780000998254378234979880495587952165861156348440153897655763162351312615559623576238040399928131044567296475566547573514026660532559867168490246013375596839639533720754146165690815947172169104588036774253061716043297580275066571040217770778902170676534258595222277878684093060165012074134359977961489436947386462616109931525162265888362767255298117326635464537845703248534033052892033464292684236969467273137559731792975059907487185440851666379428390009441361695043367813959205247305794764181672673246973842943872656583799791848030256214110297720371159111132963718520271891334219882391788979717145921543971518742528032669136430068846142859780808991157595243971554504635613387534543903819393349674647002887580442151085984689966946772128833378718311652581870565747363741763761457141294352778700255977015164192582418645299748555495399179612708697924130175995307229538944291780366881325346472677177955786250866366232514811268152493768636472532896092475751936106195388288644789235946889169930948288476922698173800343660365645853108499219258041732084117319791480761879158568851708870039813832289778617209777544244418562133920389565521601927672120774654880313797301426705336692781292713053380374787680461493883715574947560722223508326404056516458631841563446827011914457619702896741395596543215966725203526673725855225318639786553128369485715649203032980067654413651953425947139008568576036208015153608879472466734825149291785368770621485489575639973803369585529793439562077137634593771535599243633093429900655170754139322592333448893895565753855844898992064958292152704663292957337899382693618043672456555972406964010582051141736158557742509895353625824649643378306323012352176250821414881942956435214419425736060730980206923824374744010558925070596803002979814505615361922039860406781790497265307696902515430325565460680247900851034948493314864515269936435695780211577813723515812466061189461731930969748434510579174829797930583944540321343983557602993526240617188998989268754016003689902704520689982603209947949986141977490953736897065621345768086292950257270962086432602150495447494173498274572990677348645582403112315952863707884306559343660716830213237876303971097519434631473617867694328416578901403940560119168515896132647086904089963195431712983599078226801781027077233339524003791685394933771226349707134093757943762033181210305428317634202317445685437685610030203871955124891121276200115298697987059571923116096836263306099106514062857208133473104930216261774975348042418555853268144694244214321856767735756735658130677684678249383963360210134816955183792294031928130704113812188212471087985386899061294500578512252859244997877721618003783289426803774240596607353619185416994577475958600511921870588748183461876090841452388420195832708603467253993452475781581227210153367894480541153568281408762512073104090253911282922838173707827458577961595224415143807338661156778101249777428931769973811747626280597554253054782098024936361280942015060930982994492746896778079304679800426845494673128674935327307342755839970562280184500673993327180776922329673461475587006410190634305147039506803282118884493559792052206460201623136573482347380168953973970827528278132847573926462144079443266325484041913077410168209574506193291243703495512232493353174201840462614892159281013921292273700767843796257779391390090767228814290098933877719447439062473700281122282162610444616227742337209562276510863635311742306648015069872028204321073047890082419352629343851306649380416315670361869376420572797582238686029436967733309114293123181965346017916579940393838040037081424350849559749410138708118694468196674467676224151518915515148423861818058283659006197036204567118419311563859573149233522458475440113927601064565692573986463304690396275942910763499736581767290048535005888993722644561953906732880298386286666839963026618214058907253503975104184557121303720496145583776992284780545649970520411091937414115225697536320733039642213340232186538761800712503445175557379011852959474716491548109619690972822749688893301339943132455007844582049801043130620611731389367361272016876292040186615141957724190821876354734334897397830018235332688806384332575927558270235202134054497671389912436014937690343568591490463155064888806890561022260692478217136056516893470513683927903824253015034406290822509226974176461172272251662583760025253074165428508551483302343629162145034532159456706185638018734516233155672650781497055259500466857404959627318400407396966290167055205436641225401871985912818524644580813216584441976129254943296010167677165602711623144186668202200565178044469869036636158194796993439642109508780277580099808772783777870901877259747321921420784859505637838715498574928764287008249779673928165149138526229340172008175276756373714821790706223008951455937242591526224337384350126316461298639876013927373603065589902165222760339884798479198414234306263593911663640094049517088581939158157291897224198469372661677565894107181564765502203232556737457641882766443693783927605150481805488402425281586399408879536481837789393349665266620663717954997144219843503670501230977959079330060516394776142203790057463513211710631204611364697350839332701604936162070092875786234699392981498615380706738476132882905415659728555751739804456469676155572700959091090922944881441130152188914533581474810266162024271322203636306480444448132493045788757591220451352187967265238404292300873853163513139215503487392674904867657731591976411207360454607138599559261087917949853376130497358019939763580200356313979858369862876440355456739581129253637499184340052205833476511443606175437384725879117701136119667232884095582708865797727282302851052351998411301681652201862988161497536519903807872203482631191637927851904830806501044307288097024633919465906973311760409704632757988912440160534547309938862406117579535103514353797239532047647118873212230969005944016716464835551876563429648653905371109021470196474705215147191913229760239995702100221994691558105796520705934072904263776954736792258669286708142230466539113507089391676893417620186589282421780533989430051975137543400610347805954699557684173408840812099354976975667080605522217710864694914649204788673041654568274066078284193458238016718433886093622790648202299676754835145726581117174724393686291773304514950600999205898814435168507513668706914788214549936541527480512547855461996165279269316543027888355384608544879726226696107444672700933139457421231313052786990578471650975159942330325622417854413972345356767977001497705133984452484667446038901073366015674691245359005384690721824414049795438559130506677200578689671776074085568582443172413450639236151719576594661785357149782109780721817293168229693807630511649994504831203428943280118765581433859914880368438736849276430615146182891059717429194594614971710797573577495857161503539834291062655110353956727689374233358758107325836161552631845692128393348572511021910688048971222390015372053369901964049083215614886297640350727440865832062052694685337091602219365438153987184040924711775972543541344190667144642462364499332669848641929439760252926564396819258243185217877867122159076293369866124040768482750802494289898275798497473579838812522178684758312943003111484683589035169464082690803918875700727396308744156992535775902610817234554196105618245916278297350043328308163036166865132184688325743757580776509734741773340967011085280181746467600197558499479048917196892089093850927187459486616809928459284441515397353647892355121311141867486151042202729041967138973918154287129986037311977833202075841833120305895435325258875650568107382538852524787575528044375703954983568117547108879426052533681444358902192682021824961623093956883967611615070106831535510910880643405733565850446751603425040733271416054155983696063319747372193983537289610361396526062976909988938669313259465098145116623089433690987623188214721056532069829678256001309072472831883087142790158952389905626610794565398797261944571182333882657936087160298524048551295475816087261507101953464576860172349135316907074960446540465309298442705751927872626911462744101550722909272567834151845628861734344436017709263791399467218393188601797580359930678320770181133274692049967633357672127373341771786327100557169282784999388579857151752107250137554458945932951170479566398934917632695250270420111154168478905312264235847005128547614841225537742920296615119617057002998574864319101302063054966448168410822710765401459777770061859927308668741832703432888645979189296928279358030003881964906710233601820770956946107446053245166697583569251196021767014944968426465615966207232832815729228823176995231562236431620906216889940390215611218820670710561358116009199324685851139910232001341201462660730622264423226655015282797634637147840322375581702001626117332973552122944845871774808748176879756018605952983819450959964861643989940192883145967416109550812035510397210688606409636386291627135292214637631454738510747077894324366664658869823289022362344035640689113217429928295530474887305402208158917476917801652312893184629288626183424145527031098554685366713679443068211934360085416302141677135228049136208930116951185463764088973647981952686760240701454835195770134300873506498484533423905996075241731226182306873546429000632228330726585737897190849758561698471952024126233650065456460952744278143063963104065639293161314662583624721339703154888870005873340255161279027795302700463164467971124560316423735906736764729636753371931310348247512432020007079390078328075625404870287732975219452354149882961178051057466170383139191308758511584812017193796811260809849461255652069450062308937355397093639095920160873710714125809288854294503629127924897118876025498081623824283164667234478654005293989867588487868645752961282627045482108877477341080729153433449923700468499737821939870373872494041646108230358602791934629983904567300746596994727664120019133735856189048448812406474777993168829576376729877391265434150202588486910046674838654954737555667102006032326767521283153964915413042248787565067356265785430632818884892098543102384848863765620954306933528435393198246662689632363008136202402076661814768013078434431410592337602710174542553527700262903722074831966710497487598381673189905535146597042570512211993325886435758070590773952468938616959861236423335838319647864002751040884854790281172814233128718426665848166666265164845164660916029205687353092902339997825587855307403798852806746661790445295918262924462588021663807941895629599309111014178988935299306593824674843276647491724768846103782955803968363190947574516228099284835995181247881764831522459216734289082794971149713617047180837236915964254262828993751070383657098109116236529336556551271140781206553797380085430071517199241585727897454600814230263972683542198360512575874137404303052675988556403732970979294715041702915474469764822790836841989059223253515245724234788176314288114464291892855338361844021541509851193591602922851221685010789629982923199986750629666857903076171826059465732746653793157654624693191538392233477743252653455921330833543202297086680877996132826435880853884388142602762482417969010555326338102766113846709329547440456061938935112795236631483048441962952980691553495583560964350493979379106179094891459317583377895554707598851973917964791893144434512532392438587633264888857119497938374725154643067229554729052327790664330253731252164796404036721453828016721505426612740949066095285901949104288128290467325354301364713127880720357620030695180437130849447307762948233258089991435252179292677074944070101384648618164773322412436826327884104264582227304966093296677519161009023957308390253859786362203446227853423976493975937513679070325617558122429282154331758946065959344698094659537448999446209931831135332454647362949775272731936821127407186180336496956864932990513852134677935872972093798668831544054320914113799918203338799246880516435870786154397050493615817992855294722346484555828110281378071407442062184674898642947411625429888050253951651526691815555927672980841098910909117487670897692195002472953086968108535495837403531077102154858837670587825133948077955555470685038922983041478226749947662551650833303256417900808108046696144490396394087444756689620510547409260663662376186684340719163564086163553099989598582284451317920608598391893947927689209155230931688167724107442524150605650595923259900671680979668928376627859934201955773139022437052160608728811157334400709982825930434209740216609196512930481989821252777075455898553730120023376267814801298503783573511095804625185612649091763582555118878187560400070515273728393801773674883402519512218626352291381957584947986234299691424719005425993937174833038987081986459932683240683824993968213497765027575344411810821212634764316572247006174383415659085128639033477321406166136629809587710749214035017763752303517747529481630602325538811837883835453916961327246628911965256915353854374090530460142624030090957225102710010423473099819447571258185364153984454068171800578365051010814990714443925746704653638938258215130047820495423000217720857154553163105485631808888026721909057902048531419622651921423544691559388400120613581771926360497383277179735873471709476078544550477889428833841233486172938052722660329111633335158381366254796683131974988131099623862409064265774638055368776954685022247493193377490887613234422515592148935649169586168932325831578386424768062918062907713509675663369131885047199047255203392457647157408535757214431679572931175410713685052153235910366809717203585408111662837607098575823522521125133118170234186135144936664289540864278921995130377203861870202558192611460278647083480092818751955096046384860630855648706687544497655439333129521594490011404124979976431872078792605142861028442452035731131397298514571739909339074541179984780751400947870819945245824435968035331719349603757261976395198630312540599162424150423253437764893827380837284924376639527633076415079000968556998598633194534417457251526823137548802541943138726370362730305142225931329765012031940966704258835851695311629631992663609741272066247426482529348675585694231380309118822214369388216292232584721114022568120128462143059657938995442203897042907106914008623352198356755882257633670675489644241251946021310678080816104841020249690952421177204683527142384829653441887326376110220778290236312212695450893340412720044695794199541657805344335495729803963498678999745505141086888695896515495244120444443454322386937369879906479385707325981398806709126131354420300169508075932798867876295774852531973052302805261280712698662633960232577691732375602922758434359730765320229964314918780956054019264335948686288603592745203776813592440521459212483799134605971618518206758539155170526581144232453664815773477576761892411796226954669233208703653493871337069153450125753682588987773318052033624526050810664560127226979923426440951246272043647015822096229777130590379926907409944117682392465823227356572402833726034707363637887361501120155354746619250309823533782254957677694676515164447032275048019666757579073728326911559341073216138586771118055061288021097845098204083302736366551413468502202524408741754213312073235238746469742976531448322378954381692125420543268390636102974140967717653682370011840240493282591796743583041329369423601872516898092303052654193191445834441295921320524335575474267681813310032921525492485476795235159159832797580514120350289882891821892121118680521148404693863154685529419335211515189133193732697015019297145389293879203088049537673916895844849457384187060843332048757621547036062550222178889060215253595572705610173243682818069356602385755993366132210788489822148812175636696693942388724673266671345996402355060321269759148884411192835136160476788851544374877553996046773555641518645811342935129287038253595869846832726059498154433110080285980717473841263475567056196596543372192398881819896677919543671972034463913565205581926589563125288232601513119299424935668195370075795496076109081532058837828042138145362846931034212021982051265448038987819372797044862164039828080463518932574595879302490142030039220343245274130062701950652173168824371201492663497946666036094009831461822493318800609612524549308297843597913117551986221247325364094419783637358918241930167818751053003711717951739222043035444857658742886302967744988162055294961832617668005570571979392425724453508567821061766425927528083850098112469739679252495325548184695982396604980950171152750317892345360018241753936868910894740109384174916171531228509264504405575492243268165085932646034936838586191845420773972833983927316445298988897142668982651403921557004406358708634168168750751503935264472217616233884755464934805759532139007111292260246572084747739070461144884397006601039268230563876171859000491553154350378310028892900545667040614726431040107909683804216980781705171574661397354431260917696467540393662494564899385593159536413120058387465787601023562133777626032451073984020780163180181913187311009708784922594807533775864222912505538036169009474570756365426978240145209692510222559436471995438634051764288492437398621773554899132512108502116393063235936333847327656677578321852214878852386537874049550091823011326795631881353612110181752807063902793382658149118492712467583203628017235343908518612926053915342271957777272190585376683748453433666450074135650883605316809251810702795310709170908065090449078853005997042547774113427102230880017811446905038231116476086359833700957846130962499674958544369475213689827717928670694793086120137990993426462399310284635549481447485694994172924718043199307276664089996712894559755622600636867421200232908772079642555166719411834427140122700851941981472404529197961064996951860836567293770949613657474014942652104395143866243605992360685123558655932350299918998683695062480794006572811252339961073256639323788233990143931078326755071234114803300621051269140871029170722598715028461773828940616818093802076877030388668777129567881589622161456401289159867860102947676529235029477605241793991546419415815658056639553487718764933598932957398158644948856052175915025483894659903334220480718856496221991903605562019538791375176521322127210899111822437235346082942087379481894890888887081012915712812177191822343407781000292858579007011170339567596607852286872045850677805520257045615450739830019028302830749079014471009369212560656906076941029809136375402520595254561172192306790104850175273999520900192535764817514285974354576685522902369935978214936274331648312766732054375422925304096216284356504114647731049846361950128717943732244533875767651163705417638453138575363106135590014389322879599662453232845154737735492571580938809242112570332141842614383557479953334926661860767489099804070382945017032277791357791399758505715692432338981471551349633447514805335137860206828709480172917931658269143657206287929976339920192638340842248964129290351054030357182619983207705225523138510656550755862252078702402159616887362068548004778353734074472572263945929950245723065895900577847044856546521765137760706992528890512289165851863718506652290170919688653564081952843999193462155169662546573468031583218974319561753117366973248503846362182321032773139470672685610865022832909264770094062637598252820647814766360007541510225734904481990194353959466175599800595213190726306074980463839499407514898835195190434093381425524022248863655260574129108018681991776852826610769588820957136020860120870034267606213941458877462252060275767818384195322870675081547170169396564389766717868994097209747591513303061795753112133972226734081747715120568815309817987259447846064824019407686551026150323890370095743384923589761655369191258714738825590467107895126816969764625114919832448318399789305680194095661214481032166676808256259691905178514851376354590800415382562422217194581022686267281659583721869214758180510558296742585072626894049519563670067102858450385797646469208363858143153609585052057081792647894436675067919192270337456851466700381210674235914652512274629776027369886939112436184411213937968012867141907903396297625133449801705326930714151913169775924341878638849498316739281079301676852509186949234069297884745561181234172043336655334142752205805789298439375485522031102910374330525222412461022414811876752639751386226374348145474089584618489063670021190245450987492472862430265515490704304797187766479224816372460625030488063470096540687645678960785810222526140240991216270288209793756571648083519700988688721996395149890286290804785133525600962853516472791692961549556583626253496177194758448888050654374421446331980776588041824435950940127577260595892154878675576292343451013482405282838497062425007399424778789158600928799496132575746699582496444422339613300187587927531574476166218491932743552462246794365500313532278017355664441202135551266537696797280069309415521987681962390131357031549776860313610659345445585351752821180851473465783841224641218544423197923664620359254727977269976753867333990072773835862703318181556362048086064655292893437339588382766905698795723493042915052474283189854985847967956685638412273484884666972096865178491051986861531948132833777422029728804014009253841853662505201214782527141082632216561704203081161729459960566804139868440475309184833991882841524910396892148139729717801514810753212678499068224284521403768239407052807416774962394368534524995183376753430109622244832449301166492999064149375518719784046287382775380898874964184890688373035141004648163619303205261541773152853593996823050719812750598210577656789689788992989344338199694282274197155361767928706629470192979500003891333058376479940967684740045208276282713586963193544245232708018945319283949021115409014430067888565729487291446315443574023409104600957647192125665937243009636665212499274224253508264002603811419766151299288232303477076428086157172648303092713477513765560883614852670860259633229376428431372547838300436381589315796142612444987035187138277414001196304101339339149567903245424606495794995314288408389719326337193598795289238758722095968772274009719923248400825517008394144472704112597700676838852077173693279677150433532753402055095005444579385621481524884500139493395591667578848850543820290849511783702443436980341645181728428523644438659581476659702944026877600486781603130518665409344901336341599939528163643124618854395056532881813691534621571849916306690684373771890714504876493071473175963408836385880559822116828367438497019820476822212058462514204728501221714475388754981483068001748675692360320154983767949672034239600223461959023910827470266557605475011335628865730587453432446142682561523653002563723248062223244293975248551042344399372283327886869817937026731059312264083788194580395075925187696268276005575252191382260833279061120713384743475974689245411842773684199963894380892745424621497606452579833867293114786720762904116027153941359091777691805227730014664307919600112590057167546921653147490028730931748149418116439433066843775662229690055977806204143612718722256445023307955250599441927855486776687111283357322716419052284720990560548395083066347277412185351984896766647470437085872558726042567111518303789422489671284624686422263025825217253173064069767356342853683916439909626829264873971614466497395775540666703963576722940689882467089273776967710925667408476301609012415008469044013784496164223512830579233670464682202636414325381310896880752365466875488643025658514495477273125268158875883849124905770456642222918521219137579594931002599258660339398055937302554432089766631590372256300477073001195943128371005118642357009355002506566924529577878303928910829580720566943405570422393851505341311207552833901028146404639925036226592961658415965987745208693735800727605489276619628523847123699371498953361691721060199426079860704697347836428640810111924719876276239382926510987599498606040952743705428032179022582736363485191446276864094457509045968887126640469668131755731931196533902981839779703599525458270499561774032895760013379336385785164017474133736387223554653402507034290150311671003028813437703083495974895678818180968017152921517510466282544142712604075755660963173753164272127963361849808248111841843152407605170776051156028331331101957583809170729705782158065405563486510382601328381717294882057887830095178680212470946417008556456899945008804356466091115938708137752841991697789010975601701201870726901391092017725103896892504723314572619365998762349682017108910894554044391145435833195245012646758482568456137461495775235336279979346011659805314002605305091790075749329942802413582671918027513839148893377018441342161270115120781926690873052486688053268689961549104183466706487539524858003544210270081675159865849242205620859562929177785375863145223257861045143062813568301747217960040117071210606872514891277464976434601610105635780671062474085215206829924087827701806757019695078567972299846334726376898164419806364597056204179472411342826654535842870046526699413777191213690920819828530807791588605092927453697462724710252873688228940314880776207715397574883878087737356728328082001304754014625957437806212968793381133814766009203028625793688144487904317375738591613799660912542905704880927531056729507780711072435881241537098441657608846270815598989376099904513391782348994425050295466321078952025698890380373827986461048755841948450323233224536233046935651802082830922036177813768965503481330692000584784045541965874492266430001759569431001238486749717298344970154322148286026460730607597844102447806654628635162221405445867120802111743196727103893225570475536752606437495245476025762888431819790003411964849732672573103417847666735610843355512335022474974168008434686110863905817435437894060307902857601083870384604165664070608761464902407894494839374581247173155405717242349661411370053357251478652134065272385665792536992560992118202489353255207052363579334109992577883413106193715063295733964576450244340615798140430793398436110298423091457642837904036452590666878318683572698072161061143408403260820827486424119192055424850199438645914115416078304807158274610564832175696662464809769316058725341984512464070341189830917294702759368939987747765754841077748675998447512501055066378732604328854242194630085681125920033016837004827202026700496671460008990413892371656371264902630701478391071458566816530517202366636729143340373653717637683274334153906812879836225339720683486418060566216728398481840060958877197647304308948885308240144205618561859262557987937816180014297575229023243056533067996427360444948236200604022941438876642583148160029596354522980597635853459263295141230207205434676844986400749580870924435807376530029726214410577698791084462756466194956793960635922600958487484009305055374347259476759961121405224945055600296881250778983053523932714419617586480207164492190175948018758946452981157972854089747580132847966235328138802087509793010399215326818864785099558090640685311729286130630768633373742282196601255387276923829178639391761156513443764176451317037464851164381647191786412712239029630515677079646695096686684218325899482851084046778854944352209694537576810649995856198175590002296858604823730916102502786819308583176727493847635151162515636816994824286119487847498074452198092475525601103385958735126540080973976424809961847169033127078061717062057138151231646412490067841591897229276304352987457449488016239807677972339732527396620954986691074186824435736871727505686822905190059572596898521410911571375094600262886107898217732176235465461338533063295259727101345746051297617477587202596821241500892239778691240798002324565653991317027953146292182986047717554573296204503548243035307395799669898520050073222288147732449131877567122177144500068610635316962560367617126223239115095200448750201183887245179556468395725476101973109217355922625246588789279371851709509191828837254718458462954659242213491255429635185238294560964020522725180590554308036891208261236892242876394972637232867830729433869163113097478952249502617202737475733765641141900376381535195246440184954475105740791757299805736417970758859394737329468792958536123181827731786340146970350219917421059887340694291488791314737842027987616066615014101239730044093278120298664678055122411431600442381120716196566477147455425904509349474821398824648104225486520390387732955026598773132213056550799897419222331074253491259498831197960657254418557122890537923299308641412436189633324610103382899142404061992044983366233660174217456744923609769113269748085337694567298071174438921756518565310256246856533368687564359955517013857394485393988940854523888127780806728420191748508549483094139456345786774406214894606721985506368644700487551720795026890527341341515800181925434386285877692156098328829719412931013257661465234108409222139610912502079784062957514505447192412051954554755817592743854157971062987883581916879103012469348895442729390228229603739376779762921761893313823331133207571705939037277127964754338551591114302718066764059707118496921924704914007690409944332135330080815251650034903131739811354796755667496360554842267714680558513071034627791626255309478588359947283062522539181810723630222116659159083343825044260577693226323928080161744312522226827268300153548878675661529855960681882699806544956453883674759921393291777151302221497003551701075997647900323980673341509328628765838254610693677460666344185964705712532276909027634955692769465169111060658357489252501448474474365761123052203065310831984080943623975350769487282054287766728590682495440396637338166766917843521347319817055032806107045112047763869353328875176920159622331637697680955882969571383960967395184721794176354154631488557159128041643891915457585502635717582825601468449167830011896225590449694729178780808154064873218906984495378741592487457808075425314371722488786005949181829226866523540284072894403350545784799558137505629145557557212681163309457108773940825117460044548775882636829709372417941405852194297393502132477462803819213118435044411633985669266126565089744297446022890197392028900510860188273559626592486542975504138519771336359736989335578833843879826369511638674141455270202534587846250852773541771042338982743025176278676574826917371583059954904150441042602173726188186035898132758562125094657347857365201990698435178796617911113831147234053199126588893661723276389309711700479830169619233551746364329252448813890894342745937018593220859016057001023211918944690350565123699060637560508156358476473524687289741605051194508139133991712815020607711101399571033351122217264321407490612935464213766631089023118492688138210383580994840651011758890711232755163953627838084035903169759993065316558301048049944062025816860214312339748066370308599217234122776444617215230860058632615318232671196665610162451609409949282668193857677024805289068133365114641410829060846422921882774831873667966582458521667537293970150698354224501610055200419671610276021430093663725497981426736522844041275803600118053291676730318288605541997208268333139061275801622196137139237695851178782836748044967314761524557216512764872859088562632082104821010345551567127651078517780857157198472066005455123094292554893342063027358817192283272636113741105818232921878111896495915936893664950779780783939812197211637719454507769486696422284163809600381090477769430943498016641884705362339594292002790569687655313954406403120062616123159706967349865296029884819011555085161193618445019496502428530443495593321447146850242308705118419964136081002063855808230479179607450188895964315010254709959340897005087751607075008949775150763830403623632106144225474779317358905302262165795920116620885037692490394094874566205698162346102277154311751900264118502192610881902510998944769276332351678977804631255107618998243523766653345551848794406540103567315199779978957306648602610546518788839437871848416954071626054157140137466022274328011562498793698862022578697364470937555811701452151933037403720092110815834850208426279542139636090286037086631316134931126614681293909925037728104978011591956783866638320109187397404275895945450560453323285227842021439706603251367454812728807810117121405918866471193286925819532712831429873050115397320095965631227147001432034630329991726650718631311241033954762493237149382748396923186002333012428825072996973788849734352176082961140776577132232565279878361173807986673465899918092775869776325522245690904470584493464682414963714584460295526069061492318040912020154263627422277278356712127554644885897588025740733474957573888152310843006694860441453593363764726417845988303904428015476125120175854532347426198016788799746135496673919105411713175605440881564697031184815724940421921492041643979573866052483124379955128315308446262388123200992921281168700324377002802507561916834365731499532456636332802849813094460470931207238018242314405137262864406147137577499389813405797699110235061664858070207925662097571954848937748357156847782011362150479759211174746001430204355063016063577216064197484350062835922457028489129274605426253260147615206492575324960046361623495145580992883213815107451919984791135596115347690015950399148471969255724776123099996647990559478189022856673225136078253807284854313412765922209411727764949711118010480957313421245740758329952502217690047485812672351821455570863969968481859964078122897027752043006102586879293872042880912480014110684746388531441443245098133434760661821082346523157388362113608566998674992217766210223183283202801051468160969479173774887689194761337000220325262699381073570243609775285123078572975574866313389746620988889816905477535434467784907009726324392378098274594836210072976394832009831530947939145982460879329566301133106849015606810345265192377432775261888066163085908314101773397785772830632959336537376540366875612329264943160790061455458447784407079349650444393186796389483536431598784326168976503361965337683238792629954480346541188659709228488503140147698168724973275341935765110242520836493062101463112397604160337338781178875674743610792283623764519233938868082190705499554088035964077969246568980365986407867927017381560364095867270635430779446153830025285505846566843333758550405497653241172641743477372727281371959293712428698741933900215885151050136896937651218298847503678837946985257578423011574273133348174375042509577714769854351184670268674904109294348748503661557305915571409504873080424284681189015383717993726380301117938551083996999066916816105352618729215516606060478210307486228560070809229030660927128822348958404437358739346654393551711722398528710464797515562476152683534491781981931328206929513027580708434158819061199268940367640208204359990642584556139339073779428143070041424843038016920879240124828627193960860272375835323363508756420979971846450913636981198499457245245785842849132954517840785900250109784880012751159157935824705153654559718238025899180405833217974051535997737886460376049355531915188458146783139787446544550902651045669802750808948862384901491638838695990000224232316311724396108880593201587477321272674735901444793701563087593730826794514230584396642168901103083054215394745605983889065948997410655003172493361948825906046213851196505250681734654103669492221972273040723365851928581824768919498959442210993342345840763164893684252317298369827045909222851721541342738375341515714896467486029653027297947867203073975244400434581728298210742890813407693543027305951855305814774231010252724228193065550591335535452948476773147463830179788713874535314923714378348842354568650838640986841412280189674554116989051730665765999432117255830737484719883379364436216585973243540338862305804321332040261512969811345719393864406363782544531464647086586520000986734936375131185146828310626614183320018295783553892639640663336128592451300750331302113041853989322013710264855956867562934031790475584755431605437184215889693488720292408881517147539813645344140575772593223213127401245760716491607142954511264789749145360195337498437675553421211140660839667629546051401674042640751290290711865350582831407296155010739311779687824548255170797963202840145833590840733176930367569917864873846403836723463881778750064571776267033064842815517522661556276207265107622067225381027555028352739297028075512860214716839406490406173241836841594243183742245486721117643993833868021637543044333421314684911245848304009914613689266923904979088882239025837706507287654180224529582188708324914844106790774579156044723200373119511895502793238656753587104096285677606316122871560914760904610250936454435167626849752184806045357924608919852115876406500646152817470022905144627306652990465513395672619609262735053338822007842903501601675525816610228209131052128282944740653581105629824967322004382470695614552751960021801064536046768029725972167183912979260026872975938714036027604620137515992116560920492692468249969622625786661875596023643738364146443784114880037050295917352285718219060079068129910526576501428813729886204274730702779996700667753558829601990781604020371992352232673391959694165976843910698132657662944572519425211467534671238634609947499135481412648154922623180618932782929605043119515496535745443719632768922736883717198304325346002224766184953156240272869415645619943584785275373209657942881931178635881710046188094444603776022136792767195676302577522965449085314097831325480387678110444495610928808882962646595493425708491052150415522579308809722985818484178171137991121699663706699984452268224781417798110971449218963971022014248646845531557513051294969644352578209295120897675035820393565867491728688452252960492345422140454612578627111853565885660000822967005692250684883169712464594915781330502187710632066970794989866783737433427266488177096194802421525587498515290802600471620704487686097213946797116572348956494112858316222192363172648966474294477422453724163805836703085013886592973946829055844801422045140409618137581909232628941183566392525567026438159082835011284569899503204255564538753926992833067876894662087777789530748191572655808441185410460986270509315130597955907544235902779637885003806939739401467184969623874957647067129392605035803350918972251805641246430502944738025890277232935905011060885429940620554863018190149704181935379308163714701028448890848302399832808598830842202463103123662538358372000381195336266889777122162713276885625080317654399329589481567486023785383157253029105404068119290011514625388763790426970154032964034776733523918319705959087085964368884026250652325355208680639569969339812225280174840340806723015892378877961998805126178185078395180802926503506684086888597375904380935106888104886199486977775340675219024891071932220089978803414884518171877493370868503132032764185860985626573494502188004210466234271160248599022941477160703771476584843561413769166367452840006685615188503212359861643705726307355943438847959096098289384623689061410661897132145761743713325110611168809218623173985142554215690018032497945887218051359130380217212554658271471218655589501567099249558935201982722058947233816004389155885733008698785557735050243790834321135788108616783335728826262787638781720270765110468248246479982428209941238151461694430418332686469880641830979387448079823961170343200551135269543695668710995323781062184977799825107682613906545582537967742769142669900117076716471870717044453018381476630063135493060766743653091007274035283581882150510791435410045350477482334299511291790461809905088670539709256048708176417684151649279370053625369178291784020208507917765542673591076143231331888766579446136932709078550812930432485733573806476236976961511053568003551597505066455572026279465091177249972819494767795878533969457882521118819343248867291263710768539822743049458703868568802692913653863953461752074294540246152527090200982829624572744249212249602369432378009477278840360949748610109277137847071158755407944573301390776257953931130411741636556290465994961592654859819356711544692014865856226750481011868538077054394475806569141513136291325767833497816487879018769563948621231398188741066693016530106019104850125459247230467904296698711178871600102165377409229181945704112708791454772176751506920870971986266122174257890201112118914406695154151908455916832042693180920366967149902562530876108660951502244568881562181941954903645807423828781086643275035889869211453958954911365091523490679245455698590159529973651014331108255977097328868513986107084343275495942830824967925347871423071622739337195305324536767281560284874397550921358150287496613385229601546612491961047545946464455681732534056713507295060310049475602964523687811938802364758471143035461310846821038528834590125670583557699054590989781252076406960782283833545682564246223768239687852223017453090504171023969363653367247944331316927218018410914846291073128182245667257456448341179583671612475200282631135553193568824948837698228474260119934368655234164396453935575434864682937732783888842136161370023796680741263246564721061855802192388966105396297788409430496032917455128594271063544708452984716473784734556745339851410578157661521244121777854277870603174276963774640717049168150048167684106794692726311862010434897361596436436834706505093222204105237408569759371884001827180424495662268636144102694701200966227043488557173011275085337986215304270855955938726030826235438786050311068300936856135266560845263736297177528803958018430812392728409420511368316180022863936249912884184244225912840750213918138926625225170597930131937564192427948676827378584736506829941375132153596484521835154755227641743607494905594390579751738979123555707425431731604725938393458628825345375455601486784960660915359669776293411233812623285009440304102241964221577328964434308134177556963003443952807230918285547145817599515843599283198790843502431877261517192251031958285777169898879175998762687758472437053384604662712814753016249936494326290649848484618131400192212165741756599003777384055322887081255667655508602391878006331157368440696116346665076711446705617869509924929443169119013447624751614619384772273615356883183673567358880897137380128105700317584946987104866085491552438870392705815616069802426905634505887570678621256094124502611064778074750582891348881961102391633670839647601811766008058385398618450850971082258036904579239205752140425203477957454950081132506033274146584552335953224557553520111966267899446339029937110533967560684321488112711644655160030433521806323106830097124515410324488709612657436607307262832886506253708358343418392198189897704620328877419297700626269773454098579639595174749354865279082912699720267387080885234892735107085445461062938894625560934759016585229358715473120210617405894868160644299842153895360767148236498658820511599293186480567187883934205665355687221003729821842950435352984001885566460760497256054501943255700915938338872186847039777611443304665635219753791321308784726484760386244844045831590856904442929831926727479397769081443044137058108806293402019074706340990214935695565611399006353779044217203501138061073607282027890764890564514629526434607545471678789030600241056594867604632285299737917009264276650450731634346463303577688543558067435421425158964892017995066296971072710999327426581654937974754876406537337695524322522505218736790340555502919352798660256758078024036117929794658820723721087336003768921490036361192702373960132647236328918337714767283146569588814405752509189922012348641731108126778374310549111839220689405875297136340266770565028658187220246802935430421850304551558157026160598052160208541756294617188416846733355448306972487491970020454500032753881116705595211978257834813801958466026959073017886039191170994592570005383820612472073321549668350863240793033173676235903918925355325480843000669013867519272228999494011112171157648880340712103809001964759425508553309156035430355540121451105693657758548314145439700231159592726640761870885786479795899170444749620529725691751706996143228329027885505104699724683271781605754796607206577358568816749162300259923540062537010603238857275518389359323975066763781024367640584716929936390303750971689956364606837538065503384552064586985995428730933707771915971677910007136451260565348988194462717392939169903066351390102895459420324279212837361191337209846900607168162966689191778632331354742285330441910597490521820905023863199639751249796595516123979986008582907179080501162760293938265432271713778613974476176041044745378355502738016305830945708188437316865471884507726865806916660501165044639293777764733888478395078527870979666067130572371451544002253733707411436273107228615878161519938215440130896161725809123979219453949597713834568145416495744269651732875479263291850989961871636423775201016728121366708657830886082333016726633952175063235154156200125070605685274768280202706733883116197990392483437897001598722195556551914446318734488160649783684249771624117685068430803939978249250305516569723010912405437544073789552685237170454858486048489663376987855992898719926404838843073435311850882568581432134703787636062092032378546140795886931088127300569128039648276492565562658736812257773396999963636938647692398714193606723737215401305750495068320059436385475825757790633914778919239494974854914899794965324181544624523858754050252929562883060761979967103365604498582234846684091555628403057294199775691511905066498247747710033334912110276416942793348699542212972357871934721979046895402793958114564677134896980680012417565870369513618362241008030757021743734662238809984928078348985674585821841510513705482056691781162156670854063974186170058096159413463657480352328398571495248556340007097276881009955348173712460224029779425394185566001168072107379483509399063008182187226050746580274326103732352210890388632534806412542617109405890310772036725502779219534928929061797918049063305170663273038835134520849146497562507742869956862380502998244564915075874189791794503317614791584882639427676774444567021408030684838717683636130601498597615180325835499469594399184188774775539621704853470838088427051919737786859629511592332975371167513341962999249929113119968325991303642552982489230785094004814436614948496591978283602476082425993420713887678564495330926842616881983498528239013815141267541080409972407764299984259203932453388587217602248881204620154839596528856363048099450740056823329474534409141005185199385665755054749310909411221920070608673809491560384795700040911468999782576891668427812567959765134033605421813991987378806888153054577211940792025045537673497062131227292432395018637757385345352812531384509372078543150545694860898535948662294479870138173764046127933970574415203814587482316580949643925443528763231961479435671717977793385795593305103351151004451716640125107984318705637125153569833182767483626803595354097910419097783379204820804920643072845473724875565836124155245913907402263563363546726929789380009437915918605017306552293722608675903927460704192801619669578444364108035984354395764694956501873514654103513497146851627627167530064916224582096310905080291629542211386322150612841029776641328477378960560689050421108287205299082516063254816337666498067267636485334339347296904079018313325165782865856762679826765692469912571045772613503740916119892739019849354742981914635850438382043127704744291418641808085594068285936919081946304729655336863560190741849709047177591512404148211666110631559370989149869074318561561498852272698549604128760179419742410229800556444265163284196181228493819925126371040109489752159446184923361013567708291919115792920899155341556823831121292031686722813344408949538056026582298860117834059940123675171502983948978844876527609167196783621841648011433140684906293456803730141694007450612754572642473630602734792145051908851421843601827726612108389310666953341306449404228932043921872911547562910325211692143385189315774150096428773937493462897992652772693463577209154623038881730665307981282497953528759698890909908313418744271277218240844165512607366331105438382198617117435615659132480851369655911803137690760689816875520161621006171929615994834340633106642620778918335569574939058961575933126662772180137100922952955519868266283505082304834956432494195619664960148751014421242792003973470187284879317031201670719587975220086759157211317920025286793331397264381237993437279003579230668490875854327610666594849428945840575465373384102152921218717402362631208006408197032031169309256266897527147656106596818024536672636922809559567326650687877348250859844925964942055734902827913252930222198857998376750405137649829982430664100058734788325703654115732831880810908511053952492953804534769397572205790059023369910894410150785759436115974286769911787488449126440854248505016781199139636842545239072170470565799086389199065813440742395234310885461113615831893606087858487951122768646564762689741755621746878287235039310373926414193929537593080709245509290837782560460663246050930199858893538490817657177305861184489426248396619144381553093063795334547236866898048024123055105474975452482285394591760713005286458483585210265472778276996029577010892321570627897733535698584742570264956013017430237203425540869687557449348085389336275675955681226859999303435701518151190922989565230574128894989351893103778808354479487037870125710695584607019863329170811368170884712826342665285593505207415642238924775682506329802452708213438249442757389019365168633038085037263701180755609331766149315537992284162526827879033211319267422390026886349710304553115724671579186752438786596813507224772443892112665552239366037811132013793650000957479407152700287215948018403138573390270142650642149541591175317725985253824682984968536215441551267043880357868839137100959664260087475796223834568558358370153916735665611637031350741256691909136037826386550413347500010494436518805041164543302449230288738087916392786321342067655156750545626472083532404414713024244051035331938002364828359322354810713611296816268230730654035535708171624319081219507516381954643584609510472547096842562580590946605208748786256680769898389496493404865245919434439187626540160681303280056930084649523244306890435659013927945071467438307279892915679278913585740744109446186501401622711876414262835278629794275776935273130948430679515430805763592774509592583098787199833747573316478412651248549588013423804330525500709404211224724965967188763696510550326305004561640535553768666252066661680523996024298151499589024578472945695929062225177048870793120382153870673712742176587345247598032186565906702882392790286613128095606998199242137031264349041072683970157885279311965516861437877368245834777773103827619254648515615127891939672166831115958775173512731748409813972618979754502676595303179073367289491653215633193815767621490293237598583519552519837525337077904724933909887423019951127083655620396046686117039735631467390955004957295625753410185020675238762859753060008915387762722094545789102322506374287415722899171003492383794611121346956216854867298050593770611203180442435286165563103764262987566828041054092527280948235836362094891935619158212289836477732881157004584722682275825464669252254786848565148055760595059875797068757428368736109756957441576748112766425877664721103799931825032572191928330388621789817345027040609303006425085480599889003371267745733549942785577644525264864279285509713638394906233744015779291156697130931925800982205935990306183878297953810417450274921872569963520674493420201140054378050124259673858439506788243089361773693808782340112703464892151255138315341512903930841468712908342987656896244961729609049787260522720426541509556112909663364408470749621795368204354967222635756820020799319864608154940293168426477367718958265844722232935108640294937089223124135863234936425175023549198162160489795935958795622569475699395537333672245354068500133555859283048670325209898250054662977094740584477646619847786899017529154002077208634277849126036802279259203646647382519827091238714647720621653228285069459662894022495947520227114979822820198691927142417177977096111444213884713912057406639561323629510028009738420233616207016175816040026685534235690045078301830339930927086202306261621936032325382565874151503681154917930366130034745039620441690163273532434803410084860517237897857030841831124307533399900331493363620444259659188440209185872788310755083038934445083829282610568328965547412122666956909259004062433607095285398226918468553770868144203007308072540249511305448555018174036702002947142415848521232102661070130698123185311179145976505271933463273335450960702640792204713325879649950199601231513644329459556105968874915335990111239831127192284100920543174794872569618216619717364892243150480854190001223946826734436638702133717064149939756560455211488214830342735967517440356281740775195950635279466230928752019751229436268274657641916893804545617314080868621009780481699872327474643029262567767467277564731709632665252567894322025806473437678505151369834770424188715892788868472755078822697813568202777864750198635990486609698042986002737108977376682576715138251588265453921995425002610542499615593852672449038778521773156831256363688668386738676072983705156967774911293578125776854199637309143954705632618787285128461196594100152166788664381790966288345862214554601970180362004163524069508000161885295259879560642340766005833647709395981104028784408662795638112952331948016116762205537759786066941022761741499511799366176042081839319852736439925409764455796610732164646874204356740746017997166137544678058173201761436477395421378575290857089214017136473093042021628149202056319664549049341534506770123666672344220251475533694945690762755261675893809940190533702910071946602860620684075631577428605068461972431076127629503589565868000608355754847385610846644397264683076318693659506191444655599173588773647726090252990766640375926447563023710413557341113267479011650090734818758386900880911660594291818559498114966828580642714181181718409506306874858168653647543972090449950925558931188381891801570074410126536846841411687977939341537489138172611049668188789976087231038085358452884515127738490699982732691818100651164828032267636102006265075209374748692550895483491790620718215612373668564048519842724052143426587546153684124147011682709565723789039051396557486126206200515341903086298716163381862964751581321846946489268063614487363555912843219889196556318324252802484908431358461129459699165005804655463789551631845855876191939495155655028267561758052847273515419541946687791203914847724449126090657203616243136017509261270238342890913849309919438354239580408940455105305059747066315364988071455230389054499381681200875029812420065401559819910385355240446700825446468718209042900239303291416603278193418531809806324973171470405546579485687260582942224521033512231076971631825319352822037503852680092911809663767280247669596971296230824547173947198462254284311927609022201108445025279312308334142713244389057559072119038694001098011651508661702322963018305480390232482010836172307329204105794682089477640099854996283279609093211088931870085014481050441349624476894121280941454836771733122444728383687907617240506187960959341948430173183265558669507213772109739638787897743615777882409375352376249255180894065086352504724175583434983001486364719396955147162636410014425940837355187708501315551537641012432579172428182719670689226881105914508051123191235494628437593331871168033200370865507663958545606946445889436602850405279649017953911367391840225336620904139089804931540864630341391751960982538856798942999728396549134062878987301604129628950656936607952131109414767730552334090408710456612096783767813525015899411396004724542803915481615581569345197320057572698576899130297772230772123639773866399483350032071007891725102208982905793532634192667067137435687581618077284781833924574137216775137499956611016922144142851217082512314633817685417660129548886076385016585383141420308872386487558668187012840145986529289335782456826578854229094502167609278628885341111910047346631170855256890681064053176699405860866644130300496956022101058631543029275992486158501549978339989251818772453049716563028359882835027279921192451594367495024575115306201050220307468148491687652135505322618702923066407354009922380695373350387294945142769383580830542117903598134599153568405391025616753274066701401236585348983954490318024299310836908555097818889119962845960564285198587047582395412857648321817039146745760924893807345615967720188402796810076301884165421621948776706897191637945476814103647130468021428323789822248456074665696566636583097638833118265267046946793779896256268522670951367184769380590805832450773431001322688998153854960668626383614453476676085207106504609648118059212003359923188714230552231570579815533382748539534172827551399011119365380526084598376225100519807599250452420501413181266596401685004466693301479846968123763296217597051403068031664049607924611339602069877643317889678900131238394475048705368575351705159149162389168864959520266105053511862925994367494565575529175300902752972542279850350468448747949964444553661488683557377008747362167336721324562816660881408049305238296634203878554780036518724002131523177260956549728633122743553704352090332658873111604396321929214958474348021394093018814781475885200757654293037432784384169275677044988302367827599908559551552226820168119346348623954701275714013768208219658878136628362344221639953088454476751947730840671091806818142091376109211454787897257433239355213320819250020321118459834770427025249586068054670463801977605616774004812863659368380445756567226344217222848639071059646927405509133963101419334436612388690637501013245308587900936712992464967076631586648929369469959917250171490682321902673339447220774473179357761572549595635175887910754086175182220214747513525176009952068187132409684418539852417655816400295806924632648027236051778024617417507176292022735509873255399662477625567975130738929856372479102719416390311341794509286917442836790080866881379890441467810758999290697627061248273339814523235447207222672835129158262155051730281851477938584706099276502294303306527929218053333108855912423870608988457763815686575439415320133166719474502469413156752777960670900577861740465352570202003186615509366575684264679653023508312374651965046676430480151006789836901623006494393052917905357117343828737973414691060437453429551159516333544377561799869882980539009046764442474128432874941727704447289527983703110174508171415879829558671278777268496407295711446925825072272893222137789501093553845252118092551982920618083475968317112757986811483777403868251029764080203782208311427343435493132356628982215621392442288941185089763233568025872489959528666426442528177439015466985567067864673424012683364062180382809416184953312238221639656507843481555839685302735802581280649439433675400600050178419103677887177146978847948589994743545929675695194628572280094675794780479496822481320326060558792288725061292309705682678004938698299824262276190525603522499327185986738810261013923491625341019506113598902056610534029454393948628595595739401499577482427804590249156782986036510904423999364031387466197992773910526021743924834341529506027115397590507385812337669593665214391025402786031376416229554373209700830908569315722691883288147817713299898676638805332426753074595023198881765206849478258742028201924116800572552247197477380977480615954560072508017024029840066482437328398952554264337810360938966688149328376987283104415266566996731166956300155092876569809448421875745918487899024078525543186997070311250168602557372418920709637757688219033547804090803972591288954406986804960947235393869155319750550585830234172786685825704652779080464193572018319083341964054613786411325910759612430963385217896063031328777609099400514609505943728405461754043612160694135890546570655612494219340719659656945472348758051604821208603538988060829495932106008106014980761042112174862926851362861860809673987466508090357292185517935410708503488705359789301414940287310931605142980972560200245271867533602930973136498136113520496973531476772193658713243327984084270632803698467506498290651001646383278193130628478772850144221547023446384068557238193061708276097495418433412583564288300476010949698503197652351468875838187637718624981503913937852526314576959211866495903936171194465527855414500045464596457608878138331765042159161500314062024063750937223677685411399730175167793005488869637896261752707097244485288088086335190727011674899233709640782762894416198829111299715389842129695948969049671641242822949972228357846703968098200028377688089888832856770702739817098487546726884702641335519998000478967149353597224435584044409702856016229333298080374817731121387623661000392385229260219927294099810668162345194953609085648413578130430007424265362895360810126748027156589857694659612594591507694480941764247219624871954406004380537811219116611700736168082367099288053797172132805575721046264315488302566987749919769811642425724027506290648365868705505787063100605960056897081198342283245472563022191281142324087264286712318295025960771323839893416455975979212696713396144591071375928970927577794961854463344246424622178710689997195086859535983194789393799854513821589310021311509473964120607107420981053436965550403447359505390266549505490764573663371289266466684779054492440327858911351936036544450765543943973598365359097277669088597900159422339045847158082543033042116115514511341595562348971589391567368485771668417222495827832923961234299165129489224375116866912055858465656762091234088645247985358735849477559579945310225355373879614069117920383259088399526537545377950151653699638744728459179638336344850858696509140554715451111507365546344616172793034927936584537996516204138285827334918676723372708768624806414491556057379127201321788518101446375021755445269777458794632484862428784227018554917789774826096950369261170363670373728419091111458519567185174268175167066987756577347200384252455713245506329565689035806069653551888777394905574585977568819634876064488491377979115136377318254039875225939415403776520802846967636877040789210384075540557481709053265819317571003785208242157106877609362986564547880736539346616720743706542772552102044475918595803226926821386510246994852443127422879853898292273535238245116801156218266760357865895445459428226043058010442969795970427008702795024489693208731096771458616914053191637449075828945811518835670913321534817215956028286236177271894176539099731326228214127818872072520305633891810481695832355589646626601431370859369503837676879166211413643497226311335129499141591576165525378104451895124434909471231697421426524116751635101885514149780580229747078898923318638356317559119055306722645493698845956814375563081377364492757612964830107644468166859302967025765140042846664475247304160310618191182093198232878625492003310189126415169475738517925487462347393418337676392792737267195163249327811821871602039809491350898426492209977757985545886597321611874622898817924432724398562046860743103346079517696760425311499342413490682191432450032698077476377069184964521811441574698435323186672040239801746935470379480996483215181796629870110634569452202772371931797695923007834583336390629707628003364812870550145209069187291179362507815738922522289378009784239341683278708946639051302057307107266166774978382358305580285520159280723093898174621201704100496047227326789564231128118065939365553132379652994051595827369039917065544796280943109277049657662696403659122898062377563309538058204036537837824996314683146108704868625559145392088856893720680202930852412881128054227194869742525997853878771312811833765473404768459193223010091320723458143698594613534617750948924287757370330705080363926250114185897691210349802534164468720177335706043084506452770881433645622809588996519963709473349922183582672015767374918747073936968323688849058309200790828876420783297223633134288313218786166206964403398001259754379345334061198136434416473802408747695298662528591453011245915216188023203674075394536627355971815647063365102813699817731653423137929403094663313852360653828423266703230387444887826519060193662056953886362771126564339474228034566659451933731526870418354413448705346006202748374248434376068470040507302783958804441341307801316773627723383340053827110036393853939672541468239875332771392913751941840349845703642057626302505136119435615618187243332576547613320821209489315224139506080991908552228426122763483172016531197267853241482399680406011587500460053965298661498031515644968642876140708906205532693855800308313274781048099556913606560234896830670194912060998579411559996109542923215840111767239774709543077673222544079106522978645054102916277253213816071235883684605062252684629412775671833305591595383766559291898822682308337131373644918282838921813874431070422428262338678547532576529228357961234179202871317367876733535111196363570318941299595794789253697294282272107423135395638092152755135547395901626603595070545317948709083152931328531194542630012279799757872394375710726378861054880365331645849464330564218419700514265039913599107321849756237601205330073944696562935608019117684950507423814869310398049491117587734432161587511278874315935439333412272535497671448636553180525290242136603225604492615858611946467768268700225963290807268018803741723028136827165380510430471323365414366700793139134307581893843402021457820378218520123914085892886007826377846963782399035325511114926225745752152411384734046566653312204192853699878568141597020711746569358763145339542325340670308363305160842778377139189738607707617122964537000122891755528224692634483082455264286023510323263377005344277111992857199283727004200952527837891773250154873257365499869752911835871078341576687551476887643793358626298727596269820813489042031563637758200582712148575456869340439837155859397648373342747858129100985748492240358522862651829094249510622211244412201350542773128360017826632635249659806972124551572725727195516377607720220722562752855690095024111327231026086691333243437425751639688176815179160282805879214573137710452218057023168244535305662736361664318991358402814486379833743990121071903384823036903654506399436363141357841337950451168672515549448130795144696562525411537394574013718747554737894638376129630685582547451549169991262051043444131647053830768019436062560900226461351305406625331556599482501296783148144517527825543308787603096645931929653516670110690843534087775511209962995970129723025410993314937919495093490836690225552050875724150810028688605771636129099335506940681279315370661338352933264724838613916131592881323984828188340855467512609655661524900923646903125679868393669083262473477069075558730281266766471681808329759647286367136905545275292273496756733619481800001960190996734569123172776633438545497079568189673939881249200490416260895311000313572202801557916246748024098705185413599063993413821730764846353044957618993130349722552693172252283344819504117733783389891637368984540616402133136205083881762320562816247352918368601566715313387446449787717808430520312280749993959886864150775146781556798289141489889362330932974297313708326213188468896573708150677684276027786955839561255230146018722350144364042202726806224351462488671574898393378029762196220837330010555664453813084848238817789312031994725531790250828783919116513409384867017850521789627486329112114785851382779410345883706277039513467825255091469286982849492545239980009292893214398591386354270131492993780300279767652310765979997650658847883018468619444061357945897817340101587757387402004111255651467336235690455922324107519768313520678758008217731642361346172907413522493420160372536054308122091907874758944913446159477590598325997198813325689104423054643666184745401099827400587573659418309350333525285686263605180184576624820929029071707087544660841652847201499987760055748861602881467624707189526271248708216364678422021035559886810764049093164126517694969084788441621454157374354082818314411820619379133649328818855449129161714201759601152221264909409037375286944513636033654042948046983758727117504793239295947032851897443872834265383261130825582291133393350032120922179699749331586644918252034751474713004110245747177633658394271832859517831269470872376783870019514672101827558275340591868561831922275569672870943722961052666404799796014832855467606980843917638588018402750702465541041704898954407090111961608798490882278894242331170985867740100087111811671898957405183302511743080579344942664519437041388283986578698536482870921288304596183114711520039203183161699246183896302926788549157512004208644471755642293036492694905985688786085226794381727377847852024443095955447422810769363159925853370237202470766689571907943219214594089616473637923060873898747212133603209350180745125865642801191218530126882776347540346858637432423204424017391850188982917232880153217551640598530225341111699732282922619020638678583645625741278382894844069291417432209777371709200021863004932456267273110125720166456032021699216050022804041573752426907535750550883235676292348199790400991512073646167551846967324885522669365962572837600351769509660841046272446285532384523372756055763252323550922795514413797435679631792970037913194031319869924771020225998892384482239728948466893446665686219289855584449096735122684920261646455495759988537178891340588066405090914705004413229382745938061304713193602699573612143637370115792339727904914457788872964304289984931784117885136348339198297011066981767569662049840056449193882900662432308538257762908117124532207269321433608490267155951961038700604350820600282111674430608805363944757546527036237989721731342160599182883017765539609429200544839044842229274642068507039999413372297435706868030640379641065084628324526534401643387181057778926640966962531010835805005354931469152640148119673375459779421234169251163288973874717427456667186910383319343818503646045527441604684180065872122230660701418274244089495194332674544723613366741883262111559423955736543390191206644059494399353785627999531841926966880758201196574721038291890003855048712635562262069443526270825032590562101945172777153951593481978594776061343496285753835689445295508448317965058626762160710100197800358756113932619040470008550743879387037575551926030386595150649362866425455563409161161826180429802989508761923445063687374334508926850864532124716428376952559875347541420486481631111862065145278843843209931618748706962476290046694551159492155799770377041614884595032119634007435898258266918343910153384877047986485532686842240720220711264183924686752542184645554050959421035102857292792885938561451957258420453338718573739233909774907475547753149085046198483623755206647009388977677278550896187739785942459890371710629100436218323721713943667048500202084831246183538495155958900350082540822641420017152078484161597494279896724022695188333899756406497475753552655646309493937281581205638006461512774228497255837315843398068447936970215637151537834737325482475400484475848611765849865699479534517089896456685625106930135534629275949974086295662159644250055683219573113606743366981361110327387368066001220107840534550284580356403614624883465487925280924996594787406259434888823591586198343977513775454585519063872169548660474775676817916448082406232512150607710337317873804624474559527830635365114731622318708595896913249679997760227143264944372763988723884980050177672071217840438699385947471709757909359523187419539222988950502893703328221048583870869545220458509603628727796867418051256688020780948125677804020389428537786172200567472734467653523666385499456202974065265687445161128573925866051284348265336526305185599991573344653735367066470850696072156479942333449409556596428396267603833956030272466467763049029206990859452642461712188133243690105976579250983003982668466186339370713612135065900849529017795848911191590669470740478587300286504751490257441587645372989438591252394870584867747704114000626569680461570974538427633025998029948012762763128513960406151358453590541257441503665082268655002153153436731639583617001361218738292137061931133741787226215666460802657215267802658619424048322499876158088035364503644309672900108598360744926288717885815855899778377944963753306055879663693955811369950323560857174508974454575265881865800103552146274210702651485064235245415239235648314164449922277880412481539425479524225046941161271248687473900535064665454611749719331974597088497616219846661461773290182249874850911972373863976199592676151445761749716102288745880360041504690259481138411307533052179163442584320083931619082699548078752528546761985644012582729303279992578164948100147521810366480399563146339985358421692875605328735249654543812814563658201136679470372048449701084314547603538458793445784787636696502832875597417145050673528724830519113536702285984413025779210039517289292893693391178143230124477199014499219516363451815627449141009846557293893958214093848574073254199254199002635408091475190459108737103734360775486093450950715342758389047919943694427405267650097622962773941257316054692144225541181788880008096927151025557116342419497547528945411959324254296588387016872555060351750578693621034499957716123024309875790879668756948732815306634732627376362751761234935594829388268140008164097793949187675996163265977917838459285666555214617450217817628168632942151232485117466867960193473472856866996126583294276559899898215974117472389207818852449067305876403771238461787935837274769086791177123755243732311877474868115033092485673664593798427139456665168757538140076151123314468131375904382738415094409623960536909098691307657892059556486362545831041616167314878722807706747602967202385165227273842088315607130564969698319285304029763040034272570961062809251128514346319197007591830820936092801297805559443620341960066059007370405123140919273261036512521412154838140825038804695793483055915503372444450478377047154050527776232178911825700844415245367331825684588956973421448650315133758792361392411227407452862696494613561734694091273265627456429075686248035344710381577413463123845025830213057172332225057930021077540192907861623119544589161340920918225350648812585731575906873395889421027098126142628510928018572126602818609943402751289386675841618414754962534638812726878561887036545410722342616055879784437695741283112383531572082932568198707387570504176479647444009155770531308619252187703173870530025162606181820556238840777401802705270965974518827125608924681265180256477175878333312166943093727929887069723848757389215355382059794532309368232941610573368922746455908745262558825848599175127810040863009481896256454247288401315794682336968522451446330102004156160129983377809049974514947773073205104576918534015753053119153572886318374092431767769337962095056637992838975124146912590015960680704503540941726387924802433847029646882174867868626487406110300264829833017127231874885394153051591741561433703790050933719518584737261495021600722640102473295055033262071009090850587886389902304213918164310661907297748522616399335394383372729883265261677263679645711984070475266393780816089542427121927751465067959432994882400209559789644731944464661348809685515530770070531709176171708704100313831754650617397561509985598016091693329546279696730430227985172366767169605610402626646340891961113456824902671282940132996626913829589567569696942481692960232288702174102406139467991644596056087255254685092031522207006518811649289935613353227348162342720431772037233507300962452782210631618769327880366267755884777100455340900342798592416537361260004501882710095186043464187281227413834979169973829915664579248611963197953088507081029607650460501435559316700417817529952749239391783458584200390914566014632777364591506538608724876653016521138940015108689356334362188191773834387440474077269034506824867902374125656090185319232454196806881193148716561056775954448478333435936023626054114303220797870427685400641703215539270634122156964713158381241224358886616340143769688528116560206803175330310405689818549142680679155043083984413115476766327509774659651479562602105078871986301674237385108330731041285856332379579185828918811219271193936351041863021172630088715117738841933734549050481695335700788543779177498731584240576945375609066868688543073934373862684595931915514803647625372828689148416048578469494247298398385658713384450065007813509945360984328765587664586971161878198881078281000653865934089363464517175307752372512471676988057106299842590862022181778809064229523369794601219016626134659552831396226940663933023804034854934347199253688582630783905255493342098795417908871537447465624933689051724246810240392609087148113950346259062801794633468859149398473514820858094088404664011836045532419120859980266350832696629357525023633101389951447009733898604872290873384290304597718585507030610736875354698078498063417772205308638413630541181069618792273650692139869125972485986469782372686747767497763026946799310846686688574631059627230825813730136649716611773870250873764032594049256720065722571820237961122317225244437804844175363313941325969410548166219862151847277677741093462239837700656377745465399917945595051825869744509052205329797302746075697194123340141022152641933892547354332809439944280861922959321643366030896980815909881751194099229105422202945111661160071966336358752422124438001446244732031357580655326818096187014412543648779330223702662868373685131246569173752961699260477131308049132682202046702988788731606135062356914615025374221414379861542724556791353769283944511321079650870273790879018604473150994037044490896257261130558122458153716117041762759712436439449253628991722341511609068709635125822822778451602797473251574529212357218615389698006939284752048575553913032123386665502524353939200940501762251856143674976575939250999052777452441244056923942536938019387885060190247160115450050820890999204090589210874581069761335128704416842426589030181217124373332442137115149794077149704982687741005355438518742790315760151337631210061075977926882047914354512415225064768152493208375242215518754393761445996513678425589459361203280737963008037836567897735632259978782600496580296403368535206945835576735266018764288703300015060405946127828814547277353850351194435913554590090096934612082540705416290800095364092132400649128838346093418976055944880827610034863125365943296505647172863255776420876422878960306768000381631160776237978199640211452300536141906593532451929531201939899470964547877569884456585654864693863800916143319701705103375802317341178972039112432327323493971588198338076565493762785342441633790923893816371340712942737143568970069879588389850963358886903672403648585700824227767578926166211758252864696430177424838240427615766335268134793237296373060390187200258547031884094305885841153313718371740608164812416539213489305837051726302804142387051387249854713415807836026434349924242644671001847917777514599336575006261017812860244924411520233396594123808644390875642323277739733014499850362809944835963434373599035254908056997183783683810684639205901499233546557083468729291271038336905595416200467620130943048247595027388489393973084723984655054882984018870227976940179329791009181418263774852993127556379615359337492901230168210574730591404587671151778018377997782364466486221155757106528488891370096889753281481111729277286547686459059698856680176306305672055499639158984964368445978950649829661380366863441559778068016139806933648519734630691678355878271995979924862525377413837989729653424398205111209821921659075505649381392195810372851673936899506265492722905513567432956988304867197919466164815329836062288771222564701580500914078711328148082502486105422505036254586784319948653067136087980283682561566178551030002957262278041560586065310855046593231721452680864506885502241390649131774454501598329276331878024783096573326430375028143409472919294935462194883571323870899510796147706255921999794159646928181781095000332035123742062114840976240864524350446751914995747613655746668581296049340871271262048719681931288327152756905823110104662190885209594518980318870386436086530666641360220315129688291815608694036512149197120167131814300865797766953300604843326803046725177927452514405461397155670473565240441023765291730434110691560071205298995098630060252667463725560621567003804632923194142598500155828954911676576388860406951676519172981303439400042270494418850583661284834937411426900636479802301052578306688981621963112957677945329996961092461395959057115576464856591523556766522863727644213460770155371885246927768286985183891587942885859933471428013516332612047492715153373261933348651866784209457313600566868786540309856113800120768030167313377019540838982335877770463379633071898293014931152160181830849475524017635851444004219872816419957906613247352133229130497923142752859367784537250162336007966379560444423715322317265002206875096698526725791552795306492483835114693518439385472180250014415471163520458981795290375939516849417606344973209130945237074375159886514365184863133130380830304945649874997946542096714742539057432138964339804436720416463561449488215132479372960754971372260641406477810406512586763675509313083811422778660838966423527549883875265143854446131374631454218701458757413187678636243457530496936145905782107422901623841150374296477862863332886075474045037737296418334862676618906152615934540086530057971528515073682900288743891790660672650926699020451227513103624702474090038986747207755052072529044017884274397601507870343461708727580045438679698229698254337890201671158952158039684065932052922191793201394176197057883862336935054279152704456137698447078257335931010251915806310606356232229303767066180323349607218050998416770507226730165894537936372062371708515178080048198630469764448201879138636571800116858335642275742471993479313530055971375244071503696573482313087917353928203585928660272827420016828217293832893096688298874928860351808841894042192026738558589058103995401405502154270037432439650249772647937840139656719353105428762139846842463036655567090638739946826235488994454489728684549868735777258164967279703918384704664046320900203993009986968930606501460098086734801879226607756211591054730876458246820804264107969634475683867608751754640553381326179737675153021756326224031390338344622995596521086933889010956957234325744249813303713648106746668362513305831775073676975740905952390010724589358668324145465489133607301135539268427345402682333720168795038046663872655810418368958338549136610402389744727856408420561002876349816294971099871489432794271655136789710233307461645057987746605450083435159827300205489643898507849817391661231306721367222932538484862922934949698202404749822977250662162604003427519670163069892391318249942159260040044381770516075231306349911422811076506036023816834527001507398792843954216796736440923699007522585150956851044036248436795026121153397476365467343039852744261228247611290415806800160175057518259116872930823400215663847873513575955696419839780628987318430162648510866154398576124841840541279415588846783056527913475540284394365118929192266666637210598795990158326378584250687757522339617416905971217352024612771784683498011457443674826142152449043922506452659725112212671990114527033251597710482231240038970530968072073943463303570486608528485898797226601521474486142629489361031226031355696487719932318103684207545265250082644975199172112508853800330668714420027107369238254937775110769258480925878949321118736265430513740424244971766952154095329384619933021264110653240609206917021644197345694604295526716362666970261575859274565097686764709482224791255071660559444581156230975622677893803373193191690498530288104191745374870171086914335907354621573360494929982921103481148217798887321529988643138764954772242934950737531065231877664314668075125625996884411692030923763933266937459258081513356776184866486237868208902285791006843222854334883425736364989517247969614106409264354080335804562777766397539711889100428760870839246478553022232539105290839978884062494660463141342589769798583634790909250632104807224079014221909351131232948933221887012360355349106666794498559424937524362419613305787284817093009339440624564460875955093626779559430171053232417239986597919199076497627242914386454972848543177446525195008419057504488547785848773513485848940587334143418900849931044723910605700148850701143287687081657687798359291086313366014985943644860915471693295440297915865364535026187948527293429701501832432078030781084748509742679740253303892323272188857165821557539184805513556733065468131027390833689210716390071607820174504190065431277999148040780405370054989957650935772866025753161480691944387858371688060006317729522405418188638901161441768838385195611161599836616095900668602728526510504499097683724901832232143278834180884727214790619045015999895557164941315391787430934108156634380875037358706311244196718497188624351958446434391812064947150355065441689849847944224322645124787306256619677218851341321522408200179154026379634973504274649265189414969233946505134117999816419560647612573114205763750113726284243650796177893847463161866185097120569421372061296800032940895368647013415360046161155225247447627869041448331812772840759479104036046686243266310935086628349614151447311239626817186773113275985185830609676639680774301512749193886261373201062041830790815948319486736445281960632480303959438439173837913462986230175304486634127649279599660458799519427966070323899325468862298852437522468334316695557050664474575701193765863051913178551514149677158264946088930050174130826751083468778267839183659283436310899461884536410539035031432227024006458312502495775746633107069665688224289386556417810297802890323286535456553345377427217639873920527146474654961898636955439535717628811116407359114266056724066531969281962115231045457002056723528506019409396234872517719718817636712827826137814489591337514762174174645825596399350780096663903540351287308810453770924610439755334678875752418725114221514946786841010422957692338867314014520678829330270322036735195123281511505571538718243446924789982869925913629249431365449193000078726619312788563069620496241968436270640829127676924614706691396797675730684289497245654670297667866699220357280729007717966410869815771932347064500258062500082486998120362364891751124417591898643891327713449774225844339840872985754851852896136693740087845916079603071194245081975449763751593921947908440848536291309815207291273846226880965479627046571453791465807564633799889715030449424729575819732179561965763666175479233574299011143986939387080456673878560529124595567764452022483146517689447242040753936820081778472292815305312344984512838875751585752315468737735292922465921931796073221050185244305502304398554921711753167251516402980875887095971040716368231150616410569041132046200825533428377501880101122132568544552616649708238891029352119363535035762363739752320430742759561196041595648187093244803289210249207696857789086566897453474760358677395545275199723259328973379301151387113389087668599755681167687464113296079772590273289752301292120180514101868857545845383928606961830642765149140564366864906842495034346405845949124962780483155127900578405487055110177919707246072085276801922188533735442168538005956696714418838866304193625938104605922668089923274958733040555361935461923106087456267799761170294008264829710936170937974781717606116601203564422265173270837745071548611495531394963337963259883602437487647558987298752717333751643199115861347648214871903498528735520292763512738156872613094073696388838903604854008885151909818463488509795322275756643288901926739260544247827500279153290797636619410031925974094936213248246759637734144042316182591093045422158324219875416966762264796095315933199157704864409075411680424925408731719377672200863096096226038017157979922593364427360388681764297265120178556461713762523476156890571029253466716392915308165071493596147930774045241630309834199895616711520619325541014855324781307884996875892482582309121966507566111527558877532555411246934878026738224898966192121134059853691996174477608947003000906210329533087586345190678709049685270937185764665222925036661688933441908488776020082505207057006151385067538004324653864712573672908582668239172560529767524432702567366061976728977299948634165763626249665680750010069611262728708431881382934835613774636486234239374809246797359425588072521279029352412109808103077841508644649843823754799537079015826413802332003379849208337708174830792599043210312553087501363786551046255292921047089704043113206754472624134761860662397706579642568365210403520679355742936352239530680289145457857771279350448529932247322052402839880909101823873825456563180927770444486029162484835748399176894521514200323623653338501923708381511600803604972880456080628814255091682763851527250710164016420908605986762374681711561313774691718629079993131372039921952219254427794534205258524915756390500383482263069091937832533174080358487487119641735342795477172111208515749287619513218556467219192361006398243708798336086308160370583509558401911534295025696004591298231993318489035964313070674042691353609070282622307416173027605539928763837066578426991036791210940677942347912040283212170611529151027488438501209517743960669266729850925498330042141896046690887084349128142118528437811104998662024701455486399169867106437599214493734975175238476343501395644705845716414730135090350364250060118901621243511138599209999053387033636897591427145742115610369666201840813647399908771052471475305306349895860209161272237732110495818120178730055583210439831682924673564530252538615525897315563948520843276426564272580130676134097960977061612175611353239064785692041529187418273130539992387408867059650886409494946028808040026277236185762750634469977160696063253200141118186045340515700640719753471802454014412876176603690977981396947481724504517823046282173708256410986697036669869945680321267278929996057719441839282610364497175890134282718902934426350485709255478057593111070628582773450820563732326105269839759802399997003662258366074745766631655418529830900844473679490888294252163772205173046232494938042603046501920989297928478698389488165932474467452252448217339791808971645333219260148622941867726435201135153474028811749182916133154531449639478879638880543209911668305345959327642566216494968369029963163126933131737575011705319644268927332518062992888351789697487842780912737705645100245253812364455422046672776476197004480274747255655849139189068066087463151139503752015889959238968807796037588959306370995790869335381795926978530504366222695180240225794571073746018798756993720515778869200283640800030771699508096475105563663984943439730308349462316605665757599264192081428762168475687591821018256843420395103525540373394498855367670891382397499110748068511549395741631633190244702965508805058375211252960358857361248900900678110766613390598793502667140504285530355708296465629453782510233913791658455916023289612567728995976208227204283124366571307604056698216561617292901280240110225408589588636982782487745500596302670836619571350231469430865252905705890305027639184712195307194896468015562961921928562508692286058848449818876370001701277769104989844652146454115344697558807953463797513644518641817994484930887169702093002431882095182882430371977046081841109829164744070856470632825496629194497383875053740555826668141554706679350679516071974328355707391709613611765053164192541771086013865310382816305690003681682558921818586702442424859284979528746707970131334527144994973018687493227731809911671771588296922961052231108096481370413997324177185360335836041928163246542037540747428196141967210270744365566587952566308362766576913497443658540885430705849115378172442030796452221649610902895641868912690636718309705880793752958336112572871493508279943595630031115696627015014830896182612777886470676629162179032832607167207265497737376839858103218316846617017992284690553052394215399844004830036597132758157816124794652052957741899823853014372917013489944910575834068330065795643860945059914522120214394849221533429333881074320945498899605141694874668988042413252019766011485606810369512645821366679377697291427695764432902664581001595847928703733726232166470752296366811161333336677694151980475247479188417977796338898556416845438311550332073059892320998140123192496195977838984231342361207206744103286792551106569798148130084491767289183034296100306576327831547880306029379173399105621251068913787436863623723119278406597775075707751104746348773682528484243727219025848353809570176287332068349752187858810387917888816846868694715216684997226383102307427753778132554779758969238493479174553602019444816780940465305523896300092095640181186442087361719541020959827227665004577785445971576057057873609612371745426417879392188588556805095988319160290111933873800072789193775715763511116026586213461276055527183927754741663054424240971914578895915124825864832906459594961473131777511732923101661865423231347748137418379879954820646042735417770763642174496467785473106432910084661836528099868011614441167073457273379863817090474281562483094584586561251734889750988863663996729330935612997563948330467880939684418848564676249036395911159022181372199303821722305549233138324102273057325299341202951853087632090612388792004292370086018779870396530170503186458850589372461875071099438393822300848018976206375037367043189058515206045069792140757569886986443402584194648822445100226944295964517199148888971540740864874141688098633330932236284080683796662296905018324511031759784439754412817182691577136798355225164378685095436210083575170412009659670767048860421795489482580189379111022627226042796656985862923798827198995326187248095793401966775736902430695579137353295365113745304083298227045298140606743994378848545628432147263350393420291428032638014973989472471945344797021388560238235992962515660884879124532174997633623052438607482442661770771404648632201182835158577493116382788922412721723749239228961219700808201277300542010783029426671886609778982445102158911270199767545378312453980845776533577664414779577687244307496208531484933265024756387866580714786134599177027315312555195717250659297087678740047725145653754758289826303812301273669736074351219776015975723993314274782703523643518508721065718777589459174878710208475600533341171317323003572283167946688341216005531775024765951760730469701107023023956959948797239847221672585099165460038117045880722702900940987031179755744571699775960751049784793882974031011036918499305258199313376551255337470020494608734648163797205093096506746885354902933503878304128141177229754659771034606242362217217196642533092645111281900930165185807362663214845318791230604157058228329337109625327188734422583369685895398674138561629032170135995383352334710280345869781404523546848242284872425501551005626260225864082481312065418249580233092565633578339485242992078903587437207472245615531351551915310413328200574392499406654436800168287310353511717410131012880507849320069844167587358045328430855443093169091454203098215278384526632332711017332637439406481622219337159877791923255174230898385412146561471061489256979015007280216451738991260541380437011469296499786439369784489344118320957383899022396298117000874103373457708997501279569717712441093311306650941218869936449179958131412126311019491665286467753493564248613859792397301790425479281292852302431150489072181642169193432560056906548560711736865064502761636517816154524480566845803126410493970745791284995398360754089970449627701456603404658592061314927960748895205993432924802938963244481191757899642413094990068774605766205303475851576415075766877540901527673487246868004507209780681115950306542218433727198510132441391850935253551759720619852320138540328755415199858367826629562772174852359817905337123033771508025976390688544728497378477447183938284802107473722850512534870421886400101762018647898000698404826449240804258881126277721605083604539780143276760434016089706676138200123945960110775245966209655180646836572369978343855451119051216863196053340268564906252139688547744015183223270497765865363659999027528255008478569169011296283180317118315926779465512843160852879789381746839522431385716447021869174388791702426707088532546172013895856838582885797366326285490748360116924488571373590285087018473587349937294378178499153865652944779485644666645609024623499026879079062832359074250413366785784800089166574547940473470175498346468654205263063604446062452429492137814844439353745287045783345503919884400243353611813304004488853879733563003803618154797459796239880720916108347651654829409188714655148119141940708757888023837186274632980001682956807315074303432352307162635772202943135638905133418062100263533074263293162441156643865497070307370225548473316093944160434696541813527055096204190737454517043336100579784981906666146620310395891340174896293975181383945137380817625252014040483987561545740600392731227047085750451184434242881814041793443490994186766627108290969394563616890270999438196691313005156556050885374017439514047134279421251719970270729128713620804181141881319158572743116338863998817757883488127023276756601006898372416746104668852600742453915058414240316104338607082051376899901660814866435379623118002597837804526693593814900937154350257101931362959722198032796717478047003994296242959268870706112551191325537353714195850752677251356796221458489459414961394785198843988801900960611989688326312414469372988999452674594861210141607686142287667133077277709332042129667394503362878917211651394606985839843451261545824326093178193098937519362998049237409661660178811958153643231626504955620457776198872031716119732822188646766791465715079655086739049504961678719332851469413211792464064508377575652979913303057546171475269870510357302765697844546295336761786020231130834279036193298338630206514475452236933098043216556806601790442536069318019233638406968057942482163994570159271459800408428901647399428826956456090072639357986019764437000070561913884244305885594016450141073515123057826030815411232812233021218002621704001502704532651930557890661233258874611649036976607512549639782253232650036369696752197769127801940754027726976906853850352168726031363354189378709669063364230949141562816631312703460497207720042133096497077124119427723379643054220839602055057037777823869299882912749710678895455924307056441911309424751499850598234689196594968065321222716859264189011651167689567095480936709250597174287075747345572520351383419276622516167023918351017626884644343572746153622178718338136897710059482373092840493080984578546315874577990694258386034976400946614640028995218722975488804723980244128601686606563049595012869293574395127389813269614950012668067082269800219558949312886259679943464421432792249288007320615791547174665719146022161303240875924279680768479438010823196314177618081531260326858575389292020425851211734526967405386661831298803119477842759734977970724304710275248732985104875875735871534507562073115876335641387274745274400727712192867921796529579555988560664818959543031341269560314050902630869060843398746993106753703701146248664940960045745103689161551677739219610482478985395772239925837216778729441872210626015689023973011352865863299297916816497739861864516943296378818139966315800967088072906003407796435250538336714771813454202685809094284555971152670538787756903619904595049847696059731460835183818542017291050674729437371336800607176906790940417229285067168872745239879649999395272498692873705119323543793582575189778079374277803713599672883756588093732310842971901550579163492583537194122474847406377509645286420086453015584311277865482964966662859776098699439989279767826578347334567504383324601308460617161135720968808463638583827400184374346609516346192196855904782874802039372275369758123947866555033440162466222962042863854163708253850475931225122272203389272435929005896820502243795068931167699780093380454349405815153031702184373145004317026972296477234682644373260977168566571432167280002172763498345082135281080933626713310477009315285985579072659358113834784519724929025365862653736846202863158815350703416510553304388578967560069281708200998535326178221024651896341624216654530665668810382522060129971969840251881448997994259001498391528166104644381971828904236389125210120460857835163227459067491518419305728797051330080403713997317273530349608704316543398923685592777130600442677316817644890238879075810681469135873026456004111513790749900584338136748115439101705340163514981016814565819531097280603846059865705840726437795085646227762422293301767405661322598130596570280521438993040088962518114986244527298411037739970794049662747070127814864568659645611977224477746730961827870880236730768176342663193955113690309316194027345565681474717872267578599141016170042839577945873810493485302731563436841262916371371604991586177213095884490320098558602873024053938419671555022533654722183777707603968487160054484280784151394928539310312448477351410766514038388186080218930286129908749732907516491020176287945212546463547197432262152662335116980401556221235889032557392632727270983320048265653465493813345600840679188431336543057735509522225387055212212231481391198836538223492982767494033951865669424222412322441078468706779858327563081033544202448089367952005592557968721214590042061752346935849125762994971695281427705196491382430109278806040455517612113854070877464240856336351445106665806533478855979840262988646616648557221743228842632992736758844649870621179401225431181216283361054910728972851309913490628125611590203301398468653385325510196199595490074263827879820054968609291517120433750702157738978910823121686728544719681154493902786054438834003174530636865204880553429416107351742418453283940784648465968265108731262765813451865725831250019746011312015022762320375452435057138435151836995331447474597522005033940563667069787615961139792546037566968939285065712279535503308823551901200919266025447378712913179003360322719836138342820400632196066558042728893081175502140445796168205030315354819871996651369095945644020751578088829472468690844492270631819902718666668167742345554065641455611124017137306934941684774228088454091555892384073403357832563161461777855560387220667612252832513976535743116755294076212683724563335363628632846226367667165854155937065738109539262992915092694015235686947263555925474281412376800106288690199712095418172289745161308974607651546071246309653246098927908998206617840164037064094463525028146809973106084233293659382016040725363248608872929412569760397894020723481712109696309375801866332327886192357966134375733828038338521228072883797974887845322721000730307756175955445127233720100432475151093867366455165026510419199775963956567788920466499887320120663273677516213558498808447325264505970717226236067011282033428093144869153356107571659931229754323668929601506374730493037337450156978444691577501926013021529714912245685994980756675153793911964643072038654586226117703174903570712964012215036728174935560112005289871798269472892461014076884550726039029977334822944714973937770140366244083311870889764002060247869782114006698933241272959167465089557488036202376823621387195701439797713325768592314893021067130846579127656094820114011694137679779202760100964330011192946490083856252167748505425084335126564884376797891034688092437531939184455094069879655822365592941253756850980960820655002748765298496179292728163181432734454971322209287807424051777245610632876846177627778213566278542477740058172597394165758761588584314298503243931732925461189807124374587250810855183225387298032149920211804977999260401593682070845450500164361617159809099993194027477734327562541843486920709003371042528477541435144235277736797010654045256435567242495800005233774323354667877284738513620524894160973051495876521945508612671293829354228797241405695211867926980394468370288606335158899046057454608877958444628470412326266920400902937932467031132535072467488876915069931788958651668352958578233760034485607694874950432507625686842046924364314980089435080852824738852670724795205031309664692141913334542848024118723747286318518348205227779217218400090847100231283774556499861971691953294126108778355772651007675075344796741698073328556822178220180564730991955051392390713150440638369516661355438554542784184644741667040905783642380609033541145902366714111010302082730046990426028414706485657446793485182039472320763557514430082270343885812958310575615964801635582190987681392468363331018353437328197002345416472272349422147645041856450819435088481833758035867102352870559947660541143129227312089694433952565463088026086466200274392555449610189495137767620833414074718425067649000886679072293547608587265527611312653260572138434723253650353817864668906555230973730706006476634261504168431823091764802430217549278890862364194555569408315567145493830867340311849476708934105745053008341231780868459628826293485871414861633895360968319016104045674944043793630385679147904260773209533016844574185558591229854030745139100774791686000586232331509501488972603100791230621962537680457146088141843730334836404831651432307862939725166579780927786868898925054748012025403076231071867632116156198331615738523841356046115039948746204248336757038596104655639616373472885971116424064707476500423700853750953107088282737512979657866254320350304750592069245117133066428768152897286044162877347360987162385106969254725212800610468031803314729734680898661669828461517620366849879143017872133621974260558853146808890005014726773063630314425551899207530133695504966628631555818829032594299503920149136468775390518251767164994874188101755009395880113959985179620842391408696253689032732335749611303343428710226176902028124639751147949648808139085570962367826717896354500118596337276590419607998431526915849882270626167645930539218611695540849624414761914841086343838110568955581531671432311466413529805005271121860036344120424121008647137484877295048837922623615495189475347869411792963515915539770591237704822534744784172749969446540315060485443646412564507512648648421806406377859220376848563235041126393013002657762525642621349461581241737207736271276242569057826116291924522426066939506893637014801523381731232288254999253446073046647250542873955293116660564738428636665209548073731550053053518762085059503024265711554832886038305033419122392449591913121808106224460811439454754858184419257408206653546614050852617617538494306059172335981585068403673427011015225864104951855030067662674724456871438738287214487372726768842844418348515983383336665007816298665506661099335085311272826408529502470095835404076103833041520861558820920103237190415350305840062747587880023006913642545692081446119131108795978181193262581072986908874390563247630050157852646156343001578569023693331250366694704146212481845852660726051332347130053258144646949997031707975291844992457907726669523659400405087935650270899644349027113563706851056172471487201083386145595446019591294348739052130823563270697649243253192400959807390147357531680086025706648858331670140743048482944505011403180132337386932510322011364969513323389370135011870077661877528668623367183194388700736807966118801411906784140291982115966424673857916084667949296566103273944457100180228193374330181904022309941078219115923630521701871427579703641521359288439002408908883781267694303340784779702896067590094686181026130441635687283804815602423794168327925426857515738302112039648604418667385835210468423517548583004485152844200064010044991699871701674620950805415448401232934374577921657505183384755919467905583441570870179343428670892673078011301753282376128571441602973929646497442143561763548325595421329893351801014704337456087782793212223988382780627673994084346499484040902696354974280529597112719882359012135021544059563263231173085378267759868415869064240461475851854287098135791266230705668848006225244350770359006821145898072943950237110240759200131735455657481285243509417909407302121027706963200972073647387636316154926313848975090165072035161700078389642165495235081621951276330155721922816143949654239299573248908215546641493357151560156769391945117826950490601381200259229341814301159836905713651939761891357925271948812809706560117916002095101886101624908454973540839380828882578080256132936345648653222584575496098401300878646573505674922917070076711652488076687526843764554535819691327144282155576699070076229476941020021104320258369142866459492656023977952239579162007182300041720295222473478471321803005162493422930900469738381558150147809022190920627563317517168684610554958900244798853585498486852325019210989563502134048341855365933705581129195634119257252787812895866000953302670353624327114047920121427390670689521564025253875022743170804622304722329552280948396532391427081690741640501320872683810416886840941000959378107027695815322683361358224869817970738464567159021748707043419554028420762444587597484207129094945963546447867829204957067317933096221983336092212273700812515518905964903373820551668085397062320132187848953021877570291686946954508773646695013600730016751839544971063548230831104579800948608590976907427890230246240107109761339811996643071053846540828974443246925569484962255899757003815631856268092250949747090596716169488522118360621704617326780630963698297786791946599389751807114338428051951330334795460510896659190919365923181214833426330856490556777586712608966626757952488491511537241692512642529915168088369857406163338329819627361370758321258607469600880664229150775537692202487379052058604885282574530612545967427694183349135479130398425707666997632286356730447739416194738830871346583864811440594851778215555368264107162955549760576666345843947990874048052527473393019533031771326927852522269745249812567313662875655376080189141212707516932928310331504225982816569776343001927235276909911228628656895211641254147939531190229045944783865336761064146163135045194271603335871374511256941813241142129204616357370249381506128925010489635798279526465154386046843251346051846000178922294197269412499013072792942923655250976438900564763593826445355029691533722759570439574640121079484027795674930775162415524145725770702869349545533550113863970011950091773245786586699706444300026104456248564702491370330692718878269759860210274998864243583068857382597997071640014602514832183438102147814517267907700794020958445248509149315215608849445607329578743809884534736620474069275857207941626872615327433375723042271927867759503367591973168973191991019769795369935777658258594456097274039200656641486358325803510313522016716372600622326225510394305755735433236876011764600719838392547441463206230446981017042749180677322169819692631159564455419085625713336722807296629774506806377443333552488530903611544327644770466432687201972517008814083670332957479639741277602877791852466500775666725871948510978406496762247847956383356609150646621342882885711652344501258970142643311360062088805820934613315072452261466240507523596776834617746435249139311953307168936096772042295334088295363569693176452419884906983969246723852800036767497923952585891869158224011137027482611624468360822449975373978562343907540154794428383837279104401769486465961195912432896628186126031951301970544772176970764841587719906361020609750107176208346862674845827458797750037010576347844392567891455118361025111729645336511107199045125067008415935663945009165669298182892480626853200395927233073416904638554071152263232580922219235214974191181283927716795847105456218469628231096825941063624538369264594262953414730370881981826913549740082856163034165936680853685008965571213333622485640229447592155506788550786626234028197322807400254980317098970481532875217563451832644793155418854386493068273192175657948809927199739324150719472472200738007776304255037520949361632252684656646342882155300063527266432708294198807275982403940359926537880426993886776646908062917350120165443641208715480003854038001205239090048844646326785560418714669248303839019502283705761618818065096644786798318476758023385933767287959558881692904456340885223188419039852965287169451100647951257545470679386952368100127018164813089527702802843078444452622138766107991092833149739175933575102265203658308862210337371881008172727254143813334642536146109714423769114351423418281288357928962394459732329774811970684527760651302523884366215881966868319204432194855562366702453199778543296990256714712115439200978174962173783283685408672365745632695799343435747853937547114662595549237741465527011810687488446451526388794636502020914828579007909444611628241642752166299007984535362951128864118833544972682942632266202523984166995579931489294206948176194701611434933403511946120929262056685173483135763351347689237286544209603756735213732584030897857506571929784609071999059841893015793930615559573798142908749540546783956491254939996375336398308453666040836381219407565983501801933312081915842313895770561829518284032695859492172644450299120471842614085882299079185802606017316054961595269862310370648074623677786234352668096592291029224824184009472177169393488556499259880584639375509362995774929410228312038319311670959070540557253253510019304593032456694919443967206243983871861285780625615795480915421324933604851525468692150782941749892212183553960050901513023373377188898225307207194936290049073024437770468643710808057560148187782473099175052754428602347176360747981885457268011953446181877181191259367871027841757273512577633397219406951939189071760787939661594964320590246047094262630602051571173143492745497777285896646341438952192842783638191889561267950654110811697615337368017797868258115555141725775272922649458010129568025678315387037598154145947693615075315189746302467112550295900660130681020516957883551992879956630462675262734009467273833095998361792413376834289776839452532762243316027800294446991330962712466877130778328541799916978331340288858179631039355572088150847655987934180440402696439029094876094191947041742566713471233099165104209282568158825384836937897995392623035108606197133088208413624439853108850277515487304100481390414768685754861042218956234391267575859975391771934116534885622281120927593857312551689460696828635629753676151740390050064426458806995767870611913608904023325723324449050324918418967078362721217182878943951665868597503568247300832924648960659337831273810237949318074306787015251408063840281328040537966360391842530637031671160820344066499448734049996874101507706222088793307103100270996064784002399385325012370223878080979985265521846888631317005418810096701997455454557631155719833844085406090721975637885266909734233370860526123778736183705289591708106489112626664874471406761513339359279359516955269830957085377694988297286701163916426692644909135863436678188428429672687548975381074025214212192157951564370138304707932452228801500843162028736260444580871840902807947742338996421404194554368384485017130453159045280830861468804613716054930690974246348648242181928956353342101929896597597998092197708286931975318833412406875674642602640203144914120960565008533056188335955204961434417737330349449196589950049888847841072234158272661374078361602518662755826477271798256550205433362728528566680406712394773552957269386929165247190532202523937284720757285853263930345472396503416603552133990560788111075247790767204013555585398262083439916186651189053990002097605644685747460109809736810643562860918357207171127302463357358180636395185867163003209658169415916647760303892592573606439761540859625897420560073281288532903950153684531627231672068639807439735691980287381103837977170996843862231252276500694025812853602408793651051157349163904928240348905866459303413980256375432415641182272643301355675871045871411262672267184894382709253394172464382334574755511867832303116011224450621303085377765055132298735614903113419298139321964756690925651744062127280236013668686731804048138202697333575977698182575770563371552807523638712598957918133009219277673618149100788734999397056658951609256870089141250696023487148495002985828346841621642959526099945177994758073327366698343029219392918547030205877144665217641762203861916617796990640452089563460608796879103761822129580125854998360280726105169970128042364764065426265518225364620942650780170371464829725067142521509868809592106515228237534228755157520134780193329833291478828371134581726575762089740058377341844531677683607705246334098443164233962060365455686065307081336424280687663814963024875551752634597628522143130133926528018832152775016705043608347949833698607853399875284682958441929880258914664817491794974973971392342000177545574451192424709158024771377722819817402713793253961670437881884231424925312884960470528405372816609839072120450974197078902020899328375893305781107239472173661662432117985396522356778185428021405019222926246640930710721022288006446868484538053766314061656633566322169178426496985261956100542990033932934168609292492326131755901260215453120672973246462177158532036682081885652415969806914888903566615288852515536850616131150004634435771161936493649704891455680313531968896742629910749435065212245953230348972376449528094965886484197482564283075411080282238660319878006801475457161124709798983253428845311015471520314022991536031503644985267521322319579763154325800543155127316198856891064529078379254514813096040364672633285632870922622390797462006186550211425133780679726117642059236564065837336583553846963776873433535030849551237698803374731228778412412801215849410769708326099071445887059345342741928336762746337463695344384081415992569864204368338990889314947910526920514255211941879342283218496173597102409565401344201844550271166885759009172828793825138954494960541081553077755918283015356639385584067382789225835970474288574610509273436867681760355972444691381808587835853282607075386792420535722962551594717157481510928627942313475946452874066441902406713478225954445850553339431416991563875213857947704703942050642682367215079839094951121430060794313003378876815566930700264861250921303592047040064638189422898090029070852674011176541935600417628908647396658383842626447681276132664014731882083642182997764322339407261528692617498115063191063425332343305815856572120175934567480818331131984971378275173988142306952919145921414365330227794189872610303914551768705099780841854655334814355177117913243447200833534558513268383324012767746674275291755208742081439486008861734364683017523695002911655903498417144298164637355485765937977094328163802899651842527027529899784180980208386521804170706961815251121854181575262501042382579178356585764390899939269516213275597269902168523923528318135134830166966280766309816434717014524871251693071876876593383164915044645650264361983060261108650950759986706191977201962677062337244006347674773192219378517502023284664444317941922311532138102937922309529419665908828832731984491779138305525128294927283825512364611788567514118016749497156260801585673980932555055588782242147486519002341466833415310140742953767202522014507262669634594617903143976160856642169984900565899409857436749642565260031636688020498849977206661035399791110602611277034617191731377388107304560360017034560579242859874388272211273920973969817486227652969306763275754810388718377185790940726357140172135096712001496189857412139198403005300307853584950327773364073330111342379678677714660977105508223717032223534490436414300487271170517641750567400930361516361340682618776110780299740069743774525690884025629473587427097883354255098950699415099238502287259052268186316748641312686900312558735528701056051944901802777782507067621817958476940988291485631382030146313285869174452722421621703216748724601840106876429152564485040493990752480775900725844183996349507067739693122170290370981139290114583184345277422735944231640752056665071871159490709790197796716575635494073544597564376637378049774545222376047825121488625602444174796483316225354590827486799883199526165843875555665331983306236380842249948500114160001976679283155075916906736668323374604294862008579231170628237782230128310844475861810148210128143194031912114215927960707085070637158033905678430437687590290797045993219569382651405892076940393447217786195344766801658197530216985728981534456980117363912657397091184020120479980921138912045377344510592869326051257202002845589240551885796326105665397992890176064188516479188236153343069700007965005463985437795396637285124608470685371868779258117990888746169993110290404771812249169684624638210379653596813561230590134253012764110476791440605976557176543842886380996776706615562808964774779005746755015227816364047310975559154497736774926215165663506890409586038524028686406730137919118629809055700846120536539510924259760642570440486427490620342562756576860842108926453942558037758435687983763302509511620142956430018169345668742699270033903734253691688785166681675151656063895826443679976519452396514679678560334998212072300001817050670704462532134565779635302193322743831819677081119343051253698009024988099253092718840462526124312732175060098475715239534727963867446597577711726590590759719592046897138730457262320133554237250239304342425817891055394867795728855390546285448800420468784346892930095049881326547988367316072424769720360191895687925043495623548456460470577884455033489122409107194015189087691412010057247201977467978022112501267658706744673322911836489294135198185401999673705743492991185676990129685153578301383082854857232756233184429189480484729285647124356707767705583937480062074601686486671486429993175115752683359430378091707241646148626503495526220932750200090148251887362250113091440868719152829720306024012994574687592283129677505790320714015607645163088774832444873290829393018263845542883582268671557980979752801122994548303263573039926078912427197039241392556089774871511007809359656764280457592596972576336796427379439697198514933476226669018937896683765087729812137329622173753402380453421724514032098387245348190920336245764942562678151576588535285856805038237138144410107427897956686201944324735823849301479237805368078025800856752038303969445428675293544006071420580142933992564129264269514466855150596131740588786818435415044267489491109457821513280624212248785369238360809227497133538514071571259341043136893262856498663987112188720586577714995560433326982477048789935044001747083184580552610604268217289873067928500346381240908837817235170713147513667825196082453870566387929026592493767846851060875384193710449083526400066528136004665119085437974650538818062231865566640183682631414466195736281293970949647010186313449055014480335474760734747789383191887008523732646793781061206079288527496767064853570205253368614625938520491153830744870184825225374817186481054650479768939093197066087434721076518660652256171614346932792629931956353325741920168747390003705150628578749736681209105270623426551123091287273202528832841402841674137397285465881323301460218554633428012538679100292193627140701434335569045220538274204806055001799013478350088802645894389871367563524777108464633765908353283637417657176606613109724016489385996713688366650903029980420045572661545218896054715598522843864964782442673556721695018557926271649654876239925620413997708460316444050329046713066758532191905536304662015567015280043706690996072261209922280551750818294856689532763292562051983186782533736140768712163560298366458222603859917531922464765088288566051767926443120825095562023085518187426305005619778085197164233951973799784750437916604271099433642045806048491912045234117876390860252652843345096479545454645297581651025468908448772025650951130581041068578610009786149447542252609679064844866968135445433511391238315787888530480419064936235942796912627240607118151844362639892009804237580600916221978853202359382716544309895203715025791870001240045116613490744369915057354475678359513529721283122955552500506125774843547692591222806536357251132976434134873561318446900962657913223805758366204544011362080174235225681257011823989556575300848879826080335860908223743770175790843046557926113349437460189862949772045219935154435615905975377361992888103790803074035630255126166727913704858776946237236586576757920946977640099382163849789865695297891975493065574701256921220052581087608441954518428330284838142076695643657515482729817198210123916697362391085499609304646046715953605575864425083887921588700499634348222399680494968842175385949349653702673836043992368265662314299907531478284843230519858669103922801342881663541837294785534074914129742813025860206576385957885231576581070611138143494441990997134420794873438735875753757530953137962325877265550928064597967057338043933409125094991964174103297044624300556225607565393601138954523125545689455789258211857830282120281868403733286807298199755306731193258905883168594155062078253366667356243277614584741025741665572316689026030820519185802775112508016615675287231259579638642018353714473820020381241767329563785950973344703793719756710071114366700975435767787916308527318225212619960331549996682385897858593519912445170476634086292759748231961217823408089494412263290377348090833207839342835462849091524457727786517986467196324228910134993274020743707208374799367456994993631548423278910178264698326514212678747880141220930997941249831267955943113454497635511326161096492280553054541882179563356750832269237779694566579096573368970134199920825866774180584590528393396795422953917930086900148129712393658614328847258649384700570191664574473688759669062780654152944555844851046694211741926484839540923028997923508772771456198279999933800098116237052995807217037955016582749719021371657593878714695683090822688206331371998210360273397512097770120037596712052776904345510005622817816369107377631779593042277069166157357953931509632753176926462267134882988337632054870637460943175944566898130322976397180638482346079688056354200094042989116638110881096052189197294394715509149938236570014234645454178907136927326462334849266794119453631086964667276380505993107126638157327384369002692509788314814381857938352787158798608469551614416029138848835051707299949776926601530146390757782200680125531229590142723777248099306719031361283574412319446605682185320361492786460324313967363909377705464049863113724881429150119909841992127324054898874453797885037577772271827412005408167628387298555076434355287806161833868679463811710948932198693328728288478067689386825052591452669501331823755580965988274062383758295119093237050789900425152970817025332036383344991533164079806355278536336166792594610090578663285445038232968994272521117265474581060577648821546825482511391997760596524340523047953682584561481442527134751512527813308296770675811812119105234751359173565741592010246228828394899154302227401583803493447626191846055592874415641829879061558659250961262792517260081791592656769587964176605798031626270130866447398330455111645999252793354643195758724881665248934075091169290989240032660060232771358913399794416657103917972078698073756088286308763025690445583559982949557808223889800455638044748658315217461925546140475110261505736823242432452395893205525315006067130047308841343744003497785423233309335455448179107251171033586625871012354142627025248310577778266965092749246514650484708607009330125132634076674039669113084342368831403364525230777216682547198297604602562567476844034680540044785988055207051728159562589242104217618493190713184239248294315980619148825176178171796288166732966556028455428149004916505753716611558200798165869263604619321199868800046911545694236395181882611714482471042079707765994299729349199646932917217369214632974953359725079946789483707150488439572668220919717297465407679513804685337456356999256319872708683063937370317582367210850787129663724296435166580011415783332862246658112467936911845015003198699877237561044733697895477932866588289930729849702312523178598411276843221877944443874991574957082088524380024082705588281632859093069919664462975110468074958503098323087974849477015436033608064200426334325467926798981171475690325985228787516380639063856637762112900263226951452328779998370212837571945959047844287703428697345853652971578273975715524444187812194638556731565052434659749342638668944088973468486912824379683340686839891873321109372417861225887697078854269902624708610274934687574937469936334487274336307696094043980044456218071387593947716700886390361376001099130286087320684290207477948715623265146306396395188999186686281303894292555331419745179242017711667010103858172058607677534178708768960643436430399078722439184819023498337008554038253460199543852362377868081879714911870195417250069160604448638219785084990227726487951044101567938492959443096411076308935247086334548032484001073469302078586109968849890353517310285653818187198096296311166026017921521639697822272387141816471257067234447775863273318895932119252091665446543131797048404527170178927906941388830147361952273895262833043803164177879887341612808332339758786289987945971982727864127509528511309944130531843716821492115839326350085981787030715356385080283680131225750261964765365445166371240926423418110480485667121103110529998786123528536393804173462561842363263374959693317520022566695699756094632105750235330059642622232489870806006083773349526418874174152522070338833520223026172207481800949295666824419823899820334546324882874082144917677471796244656248006693712223965257168577687352080329984739305810908158353598058102941752211650184684691689669440512445987788368054818182168527348416356727472149675546250412632173846105288288864148162447208918566514073972592725515551380083723530361921557369929891714664440342858358362087616081503026533315465018430774076926244162280076446878710550951974696267231228036907017476700430055346733656163688305718579512318731085208862247628202903889493705275807010855118476615007079881986154301967847915404023545035426593017400008803706734609346828008796133900072566054976712520606182800591463787849092321280198327141634956900635519675379365068105716471004398675220795740996230628500963898472690663495799197160273426659014414575184346151136241394881843592162506697022746683796520539846922274968784815235521223339730411247307005241476463123759049882920873160964731829466996583008615841748252547508651796241936351284713604171668772632931804318003653760038660540189971773909196661832154025149776650869396234664202665436507341618173652707167806438097474662038397480948995039855629677574395430562882328834726415768438425933657984038749103589869466468953217880144056382862249066188840178337793053396918707753905513064872425937655540392407850896692404256344524731528210540000035712156989366180996416140985547194338789613516688862514145841389920298575622536960754247185416100235317230662646917943700381796726848795570335199157736223500607160246114863891618564104829808181341870368039684585892159251159424311838378356280254087864056589484493870685926672727165061843182399900624886465767547978979397311705074349141253694499173025974819739116742495502669596716617113053128847525288614058243771099683035360409990032661330100634776001903722321271345198870683080983355991702128907290612513261721334926789527587844414826881192277336709773390572365706871889985883882783132340680884391479887807152132759913659987104009728694769659048404087602713385545451991409638522532830348752888454025723066618280757159556783302305944765076406394268344177446059139878876737029098951555822953312205184436182730721424064062837734071998049999045680908857764290373104933428759814064804126118741391841148946900053302897306454860428057275046472934010568105155418311673797912349600950196264098687734187595044589435643926705634256494798165225094346503153674031080375921212348197296153512828231105290003865006696415033376124636288905646781720741047437265378131011581385498213161470309124815217616117876290152276353264082239893276989638056606749997435680106492918808900003833355835930240683365140678195014348797525969190769162403941486263150831705806274912387727364692468775146192113312102041400979362620325868905577028415355802766644440588327004519995911430549966184427473724841820656102751768704449823498121288899358996382724135712598686916791017058131221660312644962201836833766863932295539597953453219890705551594288162977163184831100888591878990191812381034840833654161844015371884221844803392918665361462198861085826660688221683356731144035732932031799403918631974317927199333565385244501612123210026905470262163718492498083217734400222281640857835026581441128583115079864147918274809352910805790593771620017791456056369813158866455435773588208464950379180943432302140798353073898083583606828100548355550223598997192456612789691059056796179837977945995572413713206397090528357145301905038922115508630287276284636959693721353777974759235530544271053256679070000165846528737666881419613530564133762982745628165170237999916915802939574462801318598653141763550821837858355110621582690939283994957718596070197616250013645917576614599950905446778398592987238803263636244853239943950504224782062963382417135043688113068770901433018257692601795156593305634993203816199564809477362686826618161257181697279718846680162484079446291079042042781473424018874908466951954973011144442290670104703719077543473920663868433017686035889018388400662184948248371149429388458933343228022285640310032403327095120123618549833235202616363687006627383192293525453002677472654575586091399504638759796548522823168125583053518702888667538091731654065654001222885981695419674785192339764987466667652318739358543776191645734968037544103696870971907741028310812904878981636186415409711350710820197756357455940028021328015876587278659519096829480921346839181588642400353500348496898753943913579137572664965426616155040008627542514916414708967005306940602868561480329009750064239258647078729445078211377309923603402199061716224757055756426566703378723761789837255133592042371694251395583528779271902225879393210901531037542229407547728353225204314697823825586449376027920576291299279400397666925098941053577287726075681222376784340718741752096666925856576220463690566569243281705795691714208863823425102315990493547541640724828250629210873615731532701795604679335714855669651136999125488998461342029993854254865697005883713498893065889981666565293213737876803083996722425860802892033241315761874559378199981849193731420293193245962493567360068003918464147673044702811250233797452187267064024131872351532225714144739033610394476122379569259418566976796387718148818113818410237075070249101939018257516371835045843593768886895223041263651715165824594858546966053944081842589180838752403032446970757792160251146200565863261192404215154546686482728402204903507299090002014384304718310344765916941573758459949731227030043871118488665971097151431546333968186156336621964728902160282180159533568787646659025235785954302710856406730701905875948893098157086625576961955475394704988255876805623305599830772464059421498257277237323292458289751686462871599379814536094702061079006589964710296025915214432162966273459973098947777864994757019084013207706870085526821879330573607703635266306486514515917472211785734840111827915186734993003392734046910708940470078852062474417531917743326483990633052751262191492878020194120346535069458204212003556891842562480816525514915959970806376183816467563398266516266315978377308013168224780053035987328164403373876705621563476774242327933950631706854918858312716473944853973354710756654652591180227853867103510798325613826556303030898175506221556709313620447522224089511907050658182601362334414330001213114315227687051253803699016369979167217486901169743515852194428605995443299039060924758241083171553376742192997461949849346340259394928654109787408605569046489790236727894479465298657094181490143337843833865754291498169505446520864787733797336575827171630554713236692831722300839615224124447096199794538852371799968377473297086366598751677059764983922421658276796989830979944378232629112823795719418011917456513006622676241043019595141644267476822850311289999448915752559466079271473937998528825122799052649561464764069889065033275166605710678379482706948140359638765175282580678167548751103636012263774239923408984102250557821642310954727416926685541923155833104166600201331263130737406479415357680024639139708998064118571354510084266758113441949974925034770714389055199478647397850023349660022309952048253223024759269709303654336833354842523010555855095786897208347534110183619317972964503034811174556840333475793593942346504613547786604536678177148426162286879442881711295956544884560575874055763611561723720924679532807650523360509185664788587320065270095370949202767094086357844285575938891482482954134059918343598114398644983800424806809848153618030771935383348344981896968686517890210162588353550459322069516531890468397673246017329495424190934066602663117831403034963441820278001626087382603023456755010108470839763603815431920605717884984824593095851972513260778248738310546958071580065136999647675589339678772010865800930661897573267075651212699588944019500682721079898040604600848129868398093945120301066175971797206523278936467057882821458427366993248408362279057460336969004636929380186474675169786379707791553233909312927338693731337544830085708608597762599611073884977490939090000419544357569789678002454498128157352667652786960695961555229814618329229024464678101917241383341371137217068189410253983759329697564592058160996301108228827779106168633350259176242921039989477665934147055043637847801062680246376066864556235222506951371643840848154729648635483897841438879112124446853377888702822512537270109153488570196707483188238417024708422579812886452925126108281860177247744669796671736427731709118060273160461687453914634110071919176953212441069833027534654070946382066018850108878460281254264644752386161979552699373047335852291914933993755464457444009909935913355519466776525180606482636516567433851392297747555109828538809813254015722385499118395724286136060763377336318724730144063461259767699002806609627198613712424796748947489267442928519785166430257143439608166820799867593106714769555434764937834083429197427408276524077085769429025562166749703174658889232446361413220137119703899464334161990322161707248298302133834808296235132056297734891732360568466150270487708275494981689788264027488577778798017682058434195192936201774754706121663879125830948868932531436622697578424040369067226499454659201592186913123151002118772017708761981011279029695944134606369464695325055290343340189660599007505142346693408672832156020063090883453958248794947875391899164975706333812411434448429741992208252925431510001903441489060597269804760429343433524019851556103074634410844863518986026641019757085626416852742940771618474701755041828061323628806135071594579298123535458693920001607764332761233103202654284951795330989734259902222717396316973433183664928440039079760179351579023235933255799096379945873895821292162022863368919790782971801964274173601737199596505834209971130407914434808344132632483303785469743152645046903180251611846900286568912341789293036814831520627483994003492049891352522596355608796918545896410257078772173016619241265503350110884336382120266626922505966957543223272713696459579940618820429883211017141251688075243375310915082657076313410156620731073598539487106687467143805517131686813817295865463084096983529052083530671404677756539073841768348957168019828534345608887397459380626471858170198813629019565301554086838907798993862009740893235837897533738106216626848739534934014704058980272317140022498209472980185935054081966533276145607644192415611233746813152848686184450558301867772760535642476356649897340152037513890676923600222592530186960851235274485636632006379206057868810468708804773215362520706061513060149112078026285290958769966452405172250748878151455811373766978140667153167807304740521995669273820847768978290780223125465678215216562641752308220804352562539902558512806567958443403312754328598207707452660710004108979049079651531650992735659922657024529762436368172740397812523678556563553112471577280294875572826458988571194243018089600427314187390361673014873605756188527383393736164433613475316894166986137384335589458571062306584901331507964813177015547699218923915761168262366870006975544449080058967959582231603714252142096974974297707322688457394086285504965923494506110148328436451126437310299595927293056994200449841855408274472686621701914718642795081100836788275551793496507973938213812195013027302092622352228862521257576208209839970478555195109978407048053384105568425097192277601114993834670383157600128692477217895996066508793249418916089838994969734531501654194805692088967482648834348320728101100350448148653459869209795669022904935859567182564874451948476219160421539552920189567415422731870072211530692239701320792552388325894521493717599802121757605268095532612988942539223453286024088952849352074794082108179317374124165250259500495533005989453485838050659988774719522637375012772717113146113888830816386271050141616241982363990072547063587462354328975369839686364147960545449072052876501969820193222499675895235668505328463955707438444142630380752849837344741200961886781099364419778457814030514240014937163208275683233133504080047294945477661628603676729803638624206850295722324943145103496270812166170827260878624622966063897365011941687901662083586709956874310449541550318624764564532990051270165864507297449987156964364581672648203426516111033569511140891084036011467956418964828768451403164605863272083347426844252513744067306066126225680854804210317709487340622392229813843622462288538743800589212247831707465494143246001508674421908534195264662397461774213722349976714772028557171998463710710714898074081708075807826571004445165712903170992256701272899254475971098216312370958725665686338387300599913737888306660919263404870818925396176617905756087619150827608936862611785423433800074001062117037447367536060407377514775944706674835808433578691445061478260996167870678661309250856025087059446644439478970777147715955837004342292460038980916185819375514096583345335708211149197220215865389099896787445501411776008901117378733947875439768180863298455671907695902161323625761177964749550852998031015849644426085452594629108067176245486827922020093311978199629278026916790915110143834677426478414630519775161052382767443368200989182694809158257503566397987038664005418655371837096600540843366263730017085267850189532948672728081355101939066907192285739840000086301632451638564791029691440963350803811651988482268585481041240408025110248542162342659486142528951805049016461659088747344991081599910841477424457780441430849924947657857678777246331125440533194601858148890613265086217824811792337325931787762992540471518964953022380904528193634244138495253450637370308230535408207770207581561701137439926162790655720878954708191767444676151074958397550759865066511564425307266382677031528460340258316794273166825776350455570143384645862545065072752789211481639849381086580273525052299098280672672267077182344304316535014841077371885157004960996040078896542215560333882069985650052344588882349100886020518301469987826991560159090748839347332845680289436820141444041955415200227498959188538824383924697032711681496440298819721829201345874317910986083736172911819362189161891625917702406706660127980987576978436315374317234473083519449866556825914512339679226354901640332523104191598773852885593011459292725568772955211883691213669899691748964557323534163390621012018832260540083683411000378185486552148869183155068729262108127348400127651007358721187364211606729062221326862349755263392994587628662581939218632415381698272271377779704399550782394179022498283274657785056676570274864898620179817009253294003427320915350732101833020940210175581691665913726900819457328114556248748298724646689751785539548275972138430580760501101373805817312245816490936883670829482298335216118929377538861089266921000895824003260291280393319179351086315455763628482420488661324045921682399071418563871074359867598869624701606818343314395651828441968562927561686074233039256963424818929383887618204778108678402826813678818039466872769425234226390947529551102484308824499229048195205172555856450049798479767200996051965238668228882180476095366565695032679804495976554465664891831942690575421042720934745205749060214118857525249562024301040611286358795487265052801349631880762938725659020248754406161189841562383877306204124725169996977040060816376187296883196169771836725796888267108922099284835030978090355962356088108690135873202981131652670066716276094882333576828791802624079814303251750823117824934184372413480927876375691940971447173128781937854854107914912655081887751579533722596896225429865565946055851103695222148517628913172179483710745499711195775758352664222682313797414006282020958273226127332129336879465735257836174321210021475961203509891299857944643258636476430844537956373179747999348315045676567809706446818141948708494252904682861722148294279286721063012064416516066451448614758768613861551697261523432921574226674057722335156454069296722051885868515209715971390159633405224594416520760213298695796111697319593952242375256531259653458711988181074118379451884629270474200188578722973865447772452909897588898766238512460935999642209291767158652900539092120292713991872878630369303293165360787276619515487501967069084862363501133593346987801750127560856804087236033074735344429156893350526259919740567620499733226961415278865681816646747038995086905110051552052140086885126556931584542367831608854726238302534163085255185676297734308262338584561294464062770075318754073069648625746695598265547369336214188686553280175715480452754885485240017045938869829178200204415128451960898031175680252489666675204942082478239173638545670178084494035241090403780918083897633700479683478142727669483969972312300856129156228102631938525324803279817308489364711070608077914866855848834814748235786781664711017527753951671202402630665885298139428422283202654506941789159857416993105097043652340254427387490719756324764144996014864843153818203426187148931741845980591609331806050711715034341144096166751305814433300420418286653792841080977951778274671662234225996319835414924739914975343111328618964794049040038846281641686284116295972885154187476336810319894699834022083763816944092504136679880819404943890340799645312785189514514297654951744147010704857611184806888935269826323139498480483723395226721029158344086725339320879084925031242525207022455607412863854766799651848980646516985732032836647561293740735020925628297436948888125397821779079455781567093799736772443561792563049419416853060688934775685930197768650257986993188041413831361506159051224903912713489888473518423698061949067071049335340317692580881341667450990939158577208279110143940434610757449155175657380058090954381725186564804775267352358863089069207531119691462119148844045519477677090588206013434367121892397341267438048293518910161867935321167446367913597403928059961411604226015384209342130391825631630244873829461307660725588278270344718389745056763298504373748692230962039783817883560592436382690045976399632471065754284790880254961419471553580034810966610176876184072812609132534549512090631782510447984204204551082336590925698698771400542043753592619614786729708524550541687939197480376608552232670535048589448941682288357627320537349125080955432028850433534748411454818743578308164434992675431281611447799225729186875904784620786160179844075457802085452138622451351386488490323265158936905264841477068556340144111342596819123561841296588129833755462199590514408861507656930567667413977723211138972455439323887393037144360273815620818203837149713494758197436661806593092422054571273329358692098435498992378728323129827522053402116304452691591512236669816931178474931352122269558072318581753359740269726296261314488273707463625196510405404745168886366413395245922608963378118734707561584422177890744827438040563454466699304589390462038841641768569457217447007228994381287174576035834658808357915858720539061671682419885836816845903620694877433010091637093865161790762022380307029006825636425913240290931736314339748585688467886441368979063386184917065442340612471908897465877146434012435639897437694858406856957348375767808577646225143835083284463324283457477290056016964172597519361433067998074877950948598304098673187872110635731510982009010594428096633383487404663642559472135512511196535201571893146402035558215576752933514138666788654873006471445158587993696919541401812503848822751025615970680300555074482659962655117414075592771364192194720290115452078584701710734768639462198598011291791243139538962024903514563828515302846050129427897582548476082022490576084938295300795017683163492978736881481288985508902960363072208074363831904831720862863841671190931652447129502159391373376509290206606121902193286161826545254732179525462098124068608364273722151608601068762798540125121780276755261268889628422194074937810613309839270554028359451104103641942642445105249312965395857647102986084482057695524991503181043675586343979428236730151876143279664858125982145376545932932792898222600868917902101294430636816899962636785205432887498793677609788530776464720350249119115678109792967707060226395092633334321026882310872758079342578665138869917740907650147617674399868120516423491880907325922794168423487287931715788704661553492826908922904840934829348704371846708997551348670562371334066265508976152715794386567983081616556398950160594429421730015121895714179803066902094254288672727855868573803665536232135656056331262652063396214651348445627261553641022327117369727830576303799889313863752922532726853433020974517167983571396887837624317477583017559507943096603976972035339464667728167349510343383198280009934474920426272395861296393312667798538045201611308841752764803197115007641770397560436985397661601505551807893341313835681103185672391469576693472937171366394031448047078443765930854899213716258441616371719703200207620942848917088874129855492103963909242189614988541171204890705534516925365730447079295395430065935072230524882732476633805630862122920576012305404041595319606142277829591594213873314229270832739541258268135996195613940136273494197079114484624709911997507794637461160868714571513958167183255934632301240828277317806903104590303954934687163620268703269072565776596503518730724877515309336112764357834328537606051903163112767201446493479980902116166086783200680789744958413806499941623847557057449566461998663570781253986165043789003889258993809749355327198880236113308086571113808314422911767672378608655553733406075072870298934698637842855713981725960375251284629434286280591385517963057586816585753270866006651539925308756337772358288893665119500257234323307628573187683343085379216966295356486235855483199400028099449833604449440444632865759061011658149327481857843611090188113909874631729519937454735184002185396696301460869517290499771617274995102929606507401284993862423043968642000421574553539960136345975857757269302888000016330530087774091915770384846014817018096861516822043967922007133557095111629099122444462729759216544776328653454772981332243644944033801628829431041894290553011141642719632369112411064683311788149216041850024361115607985415525742619692346307447534887528083547955793934318489107949904491567062522131898041234055663614167600991598855024075540895374817272564596279289627997145334836506920704927736491121796907742742134658787438087298780694534156663399429431457649025430997342028592719727321737680389372172044151249445437999284230513784209162977403015083930462932798802321055315114431609962347153215240172398454473089362671329491518054743505771796173389627508981851880666440902259594967764182024425403362262140072932186914636766657066776764123546057353362555705193629190256998452982308623747647511773870830665654392688674863174808902327380938907167273364864379817918722391234665463483938240200997123985052718945677502035066415498220825490052712455616649728092466672101042810667706663754662895664326420491247268512278600420663544102576578677858120725124716071592361835796207932235705546108827082891900299049997933759678073245498442295699180739255078468352675104613295548423952498482707117912033222494004861332515087248154950065379754563551381887560206496342018219281368070598113375200134533129079463110422856374765482187214824096799545864057853920350232353670115329154695395456598762092397058250482880400775984013745018839642480152598749262285715995729828464158770887783947298572506671342085004914746756606401687699706439375185097305875581451247909056397415167967540429694535200883048346710105987275215266897119579672229395918744373127786491360553994367965463525541926557749892706677379850060494211339239115600685668073854526951937278725651437249661669984236448115903460816605405631245406871283950376210316869743775125108696615811588934274982582727464533692002217957509898917244113166981560785222416568055441636131273908491790240403862236393400724191066881330021581118484786866066826887571345692437488218561356012168751299785895955439090471280719698636530601289070782000291630815631409977752855648455075257795655583279809700231016075240884391081396212462753330378293224189639725371526404847105039417658545471973136305883282730576847980063988153899765764264543243246450156537373809213727001308140233755313794442469066210685883932263198980393582158747585849401962187534402172726969851164025024384476330427797525276647991013083329743175183098957428710218474781325089918356106059460537416006456469365476225340773461594009062068165647799695022192747075057714699270332554771725525316590747459503781040740645103659260635226202198573206683988708244697640465026148671157084412476975714778224215239336080292240086641095052457319744214291544510651790112550566744574668043244658101768806006451629833105790590664023847544600141409645155172318447670334759765015714912997121763782897157732303698353543364765606279308693102920376286329355653411604888674327811680202999413700168670698656593061263270243006668727565555025478048980327332705030367826706195721660711991689894875359856581757326114476383296803348427940552620968875151387684748644307670360742483632959209480420198283862510209399067076210026448282637792066808590134347130809176948136776730429945040298128514833686458308340532284201391621314357960011985491901615055751194216361078134550973757952037902129428097373274665262171443326716813423467648348108967512137173451398782585692303025876176271365133346715484321613011239853757027209868414660141255039025143140937680369857529554491488998166109537523244174123681708173230696795295957797312350626727529847517827248559495800461309857224399111628711303882186597725100273101301820248061447074854850820145643729680973300645052952271932999302952624327002178011356809092482928470748896851716974641426585231037722604547033691052222226526183786219307522314709121445649740841291932763958757571175723463506760535544512527097357357242064668086590340886138369414237792644078794787778873816848111740482363170175308996158704005024705420531289650869422635275437189346936989628357415581673082316929459834698924140134670701204155265788333190530219412233409010545405842203252527253647646443573988607630538083541879968056562584978861409369819905726671095705438643835541801009549993259716280412875971762401196759728417904477489355587148485428603424779397650740352730169056574237213599345577993446442201838180966144612312068747721328367871302729897577556580661034556555371463635587085246234433220201968969546355810227863807708189872849911854324318869508547002760018136443343095195808790245363021681800038649276964101620073648940493917883657387355435565842666510568706739194251059127016483000752600379147400019538813103710213019124310870974012986782877534067012964038745059229960998908560638838298827680908366161129510726061140784241502134998006771734839668452944661978097091151801271268715474963345295231066046615219648546129426038471788825057224060088822997975586776796655779955648232574178905285860908509310774861848524560025735808156018926559676980032239199740690995351835203968434818913994741482939345044924645996203907091128853318463045439092360900337756811003649635669834856083836503741891361275795507260820881876626030157258591520168131142987997893956248778381492082441336264581485974845518144127749767258998198997563694985549130402250297855056366251620975923998013891458527198799017253906109099067397327609481301265468876385974626380739608265602835234388717519401387040017525380515961123763042974519989493778523187469943381051378638115612505647878417569181924538626308096810471311775776553838228192641823793446339966504313426970295664254742034475649506138444472751486787887479110433387626756463129443105891811410580702661234979796578805817251758653447403391534926450452188790419604040190212586592479723361646644604281201049269160527260078853946195960289635817376649503039022685627231564647335500973382100333869614414208805507204537448306932413543298638159003450315932900418012503223262160550198467956749484890107284479850275412656826613225501574042120702941213705710298438757394795049130367879387480893598662870065399721990140137612474049231323237623510972674854086332082285386766471208846931811199033360917359588135014413607440320354526216349481261348693696374700256495628710517230726735273151472389537044313813248775448264833436288942933267997025053846866534409677811924413987430819474476496591630377284710404858797034435638423389790213578496558235997581010833376841481750513270895125040657225862499411194387902434731732167582483164789065478647434106550521234828497665453090914362117670792450318630287053329500830434239172640954495747000115797968822614897313058620466153487239815678748276152053442154271163037519332321935283033214568149871985745355652904913411806796841832231489289082913284964802780067628722263597346802051520668226013664071679201919855153875927042420319547461483185408121083888672955287910097457352951564557293542493236739728117311350775701078705359546109978614860383779376601214847437156251949180496217170598169809119842549333501593826948895053134307881824086126494448786213498718388946936951993393511153721368849270338610579098707196311020722432767972864499238919917772885257758826493749684677158428606134348132702031615026891885902220231557360100477786842235930584169066151584057942512142238338175711508729011858148458115383238201494220363153617687547021391387404094517079625808777590566830666852859993177966426564069571953984291256362124652611011015509079113443644971159540652479419293526153013802965620831868581348964281769993854568814146000453995027870791113509787950321261801397159873030480765680237829950380044976591850845390061606672840229890478399344468555851159790498478044235942196764321754061633507312057902806927688045418554769081530064783636806377880333788887706438340817621095764646638878246883655215191727169806453788027027382402463083648619800605038212253092767457028447308047355341833057150756618970072846809997401244491347279312414118728632039909376011671623274254681558326246195624754285688597592549516411192866573875909848545965076320329122180906835710944711049360563719082126091638708663079274258876363510028168598126072436419597363580642810413058201913995100695154722711462461336322421857005405251524552462555546896944126596532714216114022993139302858488202296403493256451730291269560836112646767098060911474121121158241121950355179148283498096302643501034956103730569796707558432465059865310390610498830431979209864557833352537246439583154329338636867229651635954876148644566364292825928501734403076731157118034189497015432062765365163164169429710891251732683942964136810666742499932146883578275893908902193757241014070248508625977142417417854348774787973238118996041031030963043185902921327839805162421360598518300398684376038659821066122625746835888118048183635755718350967605067191763294871275678653809456061096630515948793890049503046505098369759136942929192307562637096508112855757779653116392534806172895440809685863016924868003975846237320735202117301568553527073017723046269192534829170888421209756678021342659636211780796752901022218725691138881626273420131893371275667387965830282159335797082211951818495125684987540961944921223049168842500660068843107959397971675626610556059302520682691710483110481786430898126263873784907581792420556924888340667611981001931470772767214150219423978813645288337477816066579113070706231920875299853748328325825211916233461399297657702277043604790039011813645046908998060071905476002557537994554494411167991474705279744921587893627234760409898396635854528748060158887269688575662855414783880609988127079382058429638484468529894816048911796746414902621465217551531053577918389388320765014886551834646076700694702807218447296087630496566595173414858644526924121063612935664023273539527799210582170567641196835109144148095677971829046537374379290604916432120565114474514175343653734900433690826715588747430775235698728360473774193037722390512133391446871805332087124056514512947215264239356767940005567902494722265859299998099159621344059408073684750177187825577893814876554387143029533027581903880302855001818333373742764307896807379701292918570204656586796990951384887790417279817237438807280066302142308686976269715357333913070726078698722599905489988344672958217074815575505469668918555549090169043719105395222567909809364935597085688223026577797335219259811269605086269220840382573835381114110874212654131543496872400740822516104390740925466118194595560689500593751616711080984749536478531927907988431251405810735527816833987938255314416671384594868095312449555410013337204893671923990542278036829390666048157011279571418745831955870538978473765250659817254154372836185921060941737038153994074088820036148539349524696029743334525259900245410095811696982033747003047707074637086903124997889327873916493034307941767291747521332838013380921145350076404546377855493897249383457856332812604717993052388526215755805860044052447899145966690815526103034655154202949166450370695350118139092872014375836703964245315145743865318230950156799599574045791512954198490478758786312571950336895709294479918811511541477602957552794542983353889222505989510554351255990350630461483418104158272841385245743528398469129055188619110161832045740807389820107376906474307813961681123711169062822890313734139422116213891265249331597423824514651899777557549981573068957502550533959050845279275088323940229215438436765183833659866333528819165727659935153278194695023447379187199703686749060485955466755737431956569984617241259660798210273675669013812008992840005648494413250098216597717038636438697037537522569783291875579522848753464297443038727285832175213676556185520646365725545242216182893561673290835817223400839640488490536277402941877902440243048176594753221842431939627730808264607738256603435908595493230449069107133590950706667028890031344599707413978845792790644203260280516264748869058934836778319617310241248300432333011512451064409472564627697830907838275547745399496485718126025456350386180639742943447253482593094896997630625597393117666587128894908038390284689073531959660879484667806265407115298282475616834345355666995794990278858044674114620574379495951726138210338540723804186103898999913484808956747669298653446344717283796703165126413956416467651205774458926256556053546950509672793163568841101097793356566552223889161982632589434854901611125607483341067649703892722465018073589266787702481849138512362372687186316289395192973850528468276162527729529611466512095478538303774875679339032108244313733950839622865725307868157440661643559356987295818468865037615357100772031257191560038792415887649349067447320806355698902446344934734555947075519235200205194918852501941436154297005676048420442051036111158049296995048139041969850199500957490140429364694019230889453705122750440494257235248726826285130558159067593424266989290157236716746583893172164445200048528773717432675069114519711576130802815760218591930280974021124460814747589168885995041554065106663975575252805662412486518646968192109554398923751355568333705413269904457267904505215951817705587454883012628447337354499272201175313131854329536755382232856154858823122534412096095988260840047206907428731923200147265174187955823511842855112043755006826247834340299697932738977548328890663962730152590440718417554736658884898749586430380840597220929427112545903574328549370149786349923901532095982904858797424609954732759448075527738293513319885400024834793786095922973668664691956671373018541428593675114201174666010724161820232429029062896188910894746463654701085830640990360849107030119876882923992916372706552232793737752856329175123481345463445242037235028914447353669702888525117314607784126631885161252594287760668488130878057818376775738537869423192066680399765474206801267876723137839786903066015445705619033045077130068926088026997701266325982591257553364949099221366480266777881695255827307630056810074268540008018774936119711509973130452763007884859092840180657886093533805352891759709874577740627325422866334103081837228173172043383127192469260889380534807112225363644077711441453480220542042327997388314764981018600750682484502283278613438903405938376459563675050512711380744330714292143372740475611555852662497788109411860422154390614572780355394342905324102096334594478053587839706416919177913407239869380267365950931779135716507012437759604739849674929566004170927662383922345908555564160452724683847734883720116639734437024272243398984035978257652330218710530983113942710618475457254782636480427156407579736603906942496907418001552545440215405388407672341711598723351266824816850992334449732377711989322174705909434753772745105004814100619397117483753702599804974449817369767833475090202008681436871022820101985198382701057585444241295423825346881868281081502531230479339543576099751027160722620572215540741180827163474418826313096077102141056103528415424645722370582087124626210469479148027167415080324434729347235172483188221262569447974630305057724745522538138080771017431416441383243284802981917461620205089047684642855568373324262506496812321521391582200399044465719481740821455086553408995660575525610539286445673899292876081966913845858186587606832710092416742795466076896384263177715659511010871793559214866061389240276130763678702172987421633479700189414525895898867233493896601582103309623942405196772283903002146975301320217841092540297649303275053524498726076078687304959889790531841197069568053156379018216950661252507939624885660339318530864924472044273136656684223449140836964287937326077054364311622073967312470682789165234437158463638754562395239900447575630457214154623705252119141400850835678077515595094179850083118657473586608740732952656054807051591406601474626312193664168545162452139445841812671926448300064111082373095726949687569671098793699798879916139076409275906829741957845081227840173832746928611235201083584947455176731646014409997674342043788671449708639186445417825214830415778632980177774071045725314078067824046059241500669689706141886752377211212589257197973643125865765768200158659417888540511411700986853548588929411670191726395831619759458227359172293325007219140343319707075527866062686374391753570992793885387163601231660565818115883983988949331851768476037479529189401756487664653167194528655265719257262050608942054539596998921884781743861726379873261927747016443426050140938119452029777943366460860502639178380620939139474568949001226885789702245293900317979684888387582945352345334735341130295601456281127387895853456071322195659151305667282666042616293502078200481306142332748976432711002233663784768564350215257462185440928592673811945149607582147087267890644801955870345071963584952248183766302787226807404833445633102632855850574067035454755250668665183934862045076265471655034885163421879353132288536942793059074003741077345354700917095432631469104029761707877814930224583719261164966784505532968294345131332073912378696561895216780763318672926700199459538332156857439217638165828185651929432816204004643594102751269823175738944153308274512398668448784196934926268854144865422055673265101371378476812253633603716755527600947079421294461959793276446034440809133332472416251366791072631013677938657413906711441789351757189550374455291463649742098285060032880586509871959802488000790564207899308491159861311173887118850206293681245682670103722761229818731745351942451567402172899355605212952049830686672599289492668436415443497793482504361206676207605679423486656844346357212815464684060308991731951510528554220732495484701912168037891544195235604372927982230828244766034590895417304073390291695857865457463685078176830581273606309152935992623262970579456412208373124985865777175331932152270734563636710362165704170482460301167048286829742982227250857418219293907665602599406549834959844036502063306842874760556730992092116855823935612735381063270230330771772081059694434998512975724900991569609251815514783547077988406592204945973637988362882859610916851980940007679770536439110049243098726793984534841435405659104007908312412063988531598010811475924812638721723957901816341788928421210297118993436245614067364687798136337658278092124227985329422365507453199904165002990184728569301792585028479690411431795740813959908961262112024889178938338635279724058720894542724278042119710566859164140017925473862647404567483491963580596623426709995132573810347276081880182511463270297766090116653063158028519424602466528866295942749886635875746112133215005481219969239880152688382100851671419579023032420291707583539306746194779615234170560497200654082754892238736757051348639731109619107875253996378811196674321711141719676994825063009461292802467216683743306779285237678945874688031200535561211086659596696486041346033837237876693055376788340572958902091242684657530478910074000755831753876100910546046746386519886118555995309540257823926284769276291656324300247183008985919633542169951170504713154471592007611827852329346215680911169210137525442374000542916539334570156202180421309795086949066214049389451713068937530592293136305798221067210565002252810198910425295085154311573549793999543044648175256160197231081978436384968548898467056052807068324582222289213452964226940912568596422140868059042628169465105201814802501971019909707891296925076776869234818236966552701607097875629619822317317919165079072436663688219297197306669829917221632404461144268663945316352258797648929601161414513756884119165804644155557412702581542425569528214045996664907423747540866753332184022532817617211630902200451501435498857088881987604683318710773690654954826104932181535714973899523364685073027191463360593772702479732374971334130539266507721837784107162084080554795870804047354615141165869302930534866364209728047030520424017306753805202266683322647024571959891755503814188348449395714804035781069339160137848302106768642829835816890238920723999334159929340339008715604471531955455010282801642147462977189869268300798548111438671418555843932252487691341559014208104615172360432375979131603498360498914690998928958154652589153107589535053863108934597087820866937202224486763340864947461316375062983814355608534404505801228105422112512021915663089375993461848981715995565556464260822076099418893564826940629561082550242810305192744735166919548201850377372235471662851153726915386711608628975325213769486176246669798119465802159423259835243280342151484045267830395907975957016864143201356343732038288146734858783058478900578341441807686026050106054848843971501489448651562381965068930262709884619582547876261650827040081743924042549168233741677249765901794502577362316583849130742311848099968781960649335297894408427768915822442939323573217789488566484863895765479528687005155797129419849125794310837841481959196675828228630606222783760070487595654178837421551489313328325130572050552805048210600336785351488207176662299457219048118777732478555945733764924982132125823264310611132695725683754452390835761887042282198220779408703124621286050678032604869999674825903178110291047929986503441864775768622660906413107324022955747756672024105074303735251537595757032794637208551989094247418108505235222356879755753223802948190765476519984970321474685527592180330795655319765832131408563551441840134312088699128595605275435150457341704110416622723303509772741227085664992325594959816812166525385703987170704100402011313114013503352464580824403661943135343491722226156247737046169660519912016894164843674958098089926579921374817218957452976238298194516530579055403925219350565229738273499483247090746270431540822813877996376433709504763683335148477842983860103681925954180716244281825744110645603298379316309321343453001862200418735469165125679615690026538838982355128036413696593761024887562240208394960922842461814025175493074797644270171078669151195186102459275360343581621036719174977228205794442808637269403507402187897727169370669178563906568050996974836771142765767770023320484960975583487364464269331185373754210417435620880058252941743540097444660808357838049624810161671048791905559066843835612741676997380566060237942297543803635626000633760618663200371452564541782749118703639824603405336425474195286058361183998584093712494524036593131862092443895270803033412785451710218027069433654765662040628433916575909483989906686432541415927754622177455470542373398271604976574275716469552016072816103898580796378326139006782819742465176299111131553067322251478545400764573653791306880997809050885013582481544708013968960344314328340673847861519948731822904407541595349072682574714644123880435063997033674324559145720949121336574038054137339394101956715070913380579419026607802577421583391839877841969076859551247380386533659278773548967042349308664163842974503902965040239558880212594539897903130133340305604599585030683194050019854714215665540871146546822798897198544425205798055107849810540037886699968129243619676691962085960567530580151272780274266213614191132475642345413965668390239155700132700821486353166201660016299533122041180396098535486622642213410592013899515999638226574010218239227155388357658254751001342693254822609677058884788732712942197967128864223800680199951220745924083497690514321065385889359913162774297462947750893989851184055464530203979958276935287891488325690406147719602576264465823046376612941655768986860107346310866066598232119131719466488886417313624214759913242260044084382099042371357331803507493363752910601120104539908290266717655116630716391148891743039098556468877146936657832696806184066885319127634673074044687665475842706491451292023779451118948926951468594551600368032489192569828068539524091328382015308101674400261139073389462843515126506392718862207492416490183587899146778677958794391112132377315986447375945956347102330835556954327300451551975466011689288415551914068341631221178315327441786696507075165978930554072235597478155606930258857790966818973936766359976304503700098640418628228523340252327213492934576553667016070009726223253082424013111440632552560828561471171158040740345386436445560900605889900235294281974987689267830205090018121452877727343832083510265222470098626697868662595109105031497520810782825440220913749119075468610010282964985040591665044642162776085043484154667847987830085885406846830881137977435469173899551777109993768492232929474841332614861793205797504953514932326838764367174296153449642228088863576742307561271273251997575448590255575696990325312400440707205514534118747424385699379198704235089473303518341264954763916832178614829213460012771766533234408872958832756636838889245420732174328056171048596367451883245097739142331317690741719601687018691722611886377800366045998938504675515466651074240692896103458085563531703449535907826422690055448528151043387656804454530530445241360829464216574887571986123105439697709184558458597283430144148208472362723148373678039829686476598512742412146260055289923858587411978354873699722927482744174532441611171926844650354338946911024703907818773428433559382030890065744131497106633344900684689331549322013665596893463129336130189321674712382405285933794735731264727846523897269602985991053317398384335632103553499374943500780533557328094195978503291840896017592774672685575600116277473096008481241588534056154795139013153380411607474455478159985942400487031367733035006219099433841879798614251466132639557397084806542479624704185000385361169517343925624222462934281358984870622738232808204467002792686500547163131074329699021869538121983483766911550800984190057363862313362798597069228760147963213106793401348659822489233724109074320904834987009250234662696538600678159463228040985262876277552915508210687043495988045593157336051540721453086113411734383418548765980287750246719983833292359989131187698475184813774390238618513791319548658546940326601289570785584705963876114712789683273779169871589001788922424271988201553670894422145918535569671092120405082980480082089137722073136375820778626550537335365231418348500821578112154337122059396193183570668697684328731208599172615192569954440205826885379664685220008139497810054883548627164311850573360950820768049375811018891609259403607679163385117711549075768251186788813117145042925238247854238082015885497531596623856326632967065134228897571836987096910436792998456811462402356513408485481588064853554736944169404470043893659141073810500028896115088860076197866210357069481889092741941728006201523547440174218078958779354835086198628775532020184139312335716696051698501216822992340385575592021728936641659957161331414114665970742028187399002429195994537853709705051042690090599375972441267335528711106785034417269682229666164649969561715610752723758750580202318794470945676010247612392294549881732144031400024913333318749927234620885029527500146243744860061675299563989602559511550955310765113846121332862894798149918965898624602032908007465317786266870550094175626739104201045419385386025544556820352455535414366072902581274012449496442572124747229986818777195949662560939417358766257715685579785835059361411714234419227597874781429287177977463762172575980126718325535600024649149846374386405171320076380553953156528956767613417107945271759914209261188589743145804334204470786664454265088805610364424912767009668468689016545949327857358517768235081192141018629253556851605745278755352705117708874717655805412463341116806812078420878556613605589024991538828301835169831414960632483255902545830987891459791094407474918521148878782480415848117488596560644081442073120673211800338284341115623014379549718870215500786508178971585138350921986435872858829351816530114793620473675218337579007779423769857950025630194343091175098367865625850391074742503860333760735324961929740645112874672753600476795330721726830814085182679404137388996440171686717165822375388393094577814419898718217438379888780372627298399168766117892567204428520348912994984748763618554428094155471394562383531193701890289510957255098373801574642562379560171580781230853975527968158871339079115486542082366923921182514190005531896588363091686015766124205983456621508449808625837634982339943909022823618824087681678379697122764392760465938440331958586570371665716607449944208842557707823587410257194204289794240805893262202588341459989621106956756591943293756001056192144154361846138069389422120123795272165111245579936183475466185943198811674190232655032292431422560620215965320353346641527916377964335332424556632708502385777726280604072617360171839042761630582007923777332130409865500727601417168870406958730250534812899330008046970641724387568366322619317894355416754917109839921683713125034487125529649301131193427727711579057122714396073919062386285968297528174009967379560463665359181981099517584190257038996902082472142387098478924921184350715543940035141771353868878844037314526634386773561280699709742826785234019024941868744921788904154907531323010265018938740896685456568997754873010148124236204485659115201700007490388271987134972309194909073858819033630742538166508506131704455349916591602681541968873618837897328354139465427342163022105289424208543365952238738672268697324171521618382991459969171937203021212954606164874304565961661019119721589171743282097753180471190685568442790496199882119837769426708982453335896924437239959251096629731885559648584582341237133255808179790084622760653361141267103735189184573483239523041595728177467182450330557242377203009356284095574874705090763091552096084381670510994244156588403816790563418934341346267378742875417978041820811473740054962626084157484890227622194830076101896429493706955731498885283646089560210042139154198064884827644039856765814271048103116934963774280414459464043069618933094605011736573118516306368032605712686029105783577064630206311186867022722469839114644871746922542777824276936870348329678548279790337519048299056747443051401145025483024592514021019375381833441312127753890890233293581161639269033369642049582488838663030968886955934055313453631336284374349942976993760730138447950466874940331044642300570042688673309627519848815179715782070020161804149827111121509433922420387506121374107545164605182577594509028629636570465248656140596307986819486609651617174136171424271614666204222150963923753815036988138801897749863761456478752544002663102664544816464725724143312460955760641087751219692397066867277754330475031148229340914615930735173257461592863774114265951363037159420395741376316088985139261598987410428331912954703239506843368588085715436099643260151594543559537869300548015382026627618678687845385869812220536047659993572066042532873563251877859853002488278498747325950889355708562315523564494680794867142170611946782105968663825423388225293066336059460612619082524283836255076292546637091104007317899767974298817362495706132736788302774510284943625019492726016062833419099849603409261304485600141671828205303004049673794867216268653949533251664830802863107500907013137381959581160534465497298423356626690621020649267413085027445930385427024253985752047283731448073025279668513246889909169907217585582873253502864659821488787120036028163801087040889934781271370983220884210883804223029722575592181923719790910443271417624503674845589445065535232736261478224876070767798883982084965832360010673486651712324086898107067048308513202051534597372669214600383883100143306687237901923707856749513887353829981608524232958255667639956877910736986780398312825301183270040462805205646067035772511960406217379126279837821401258073797402434113735370384457179463965061212253424135190299479092019601917242376621707913028193589392854198577184756542005740079819882880027927044254653484490776197388729778722489695477186405812172498392480655754091214327686609432661501713191634603597311256418632728975373149872257487365971251442083790379161976381341275388975392800744196261525790214540925739318743020866609499085821499506550815096126962343291679702398308074582402873650882132008253652084337419370969650623245744054527944085426111222605064047618097259092340040773981948659458721889804910160217977633689879339420289973383110671948650130597913637187237731073036854619365446269547782640113145789726558375160802744560029495094578154970788095971609962304532759257341797878804911970812488136689169084672198765607728342613983769629289892850262555415668564823741116287670971013813090886461802064046271319498763318938983994632471741635164588269227593258539132908763550657168781773093750733930872162308793864429885270372332270473980398061279713583061854919180110440587282231818146583666252955643096357320172257362907674135007344266587403954316413667879002537940371378024154127231464970386678520993791598011697494744015738792220619845371541856489260350729932186223017011355686749868882400248824782386425241340596841743471552712666536558349894832714712953414078923354152208083477060693031877203778855578446714074480182848691323586371803291089270078573054323944491905087283620945147507920648087056680554926894593302252764732119700539235853282554955030774512766267493161601983290500581952376861164182280672107636739833233066224229637157090479653602633399420773717684774668321078843903004478340014778620533105042420543676229072670860753354067273081026805044242644750357971201140135584874544035054782785739935249199854997217000370376392234038685368935548918435376718622340590994456998262755469364061976445539035586600727006372098092015054707822160139079905525977811580308482087725473957953826784458697616218328561193557152695371755329475608859758632042898726898699124208340135358310746084230383682517230196300847821057351004693675055033016986075922723134818292938821097541816490922118358078286523452102022661155744803393921307704037752981840548366733336129889447424289615221143076667523413342895011956811040991576007926953265612366157629934434495535337393395825722050105165233503040202892736481856119923759947906368317966546309353846095175617967632719671334062655469124377006780153154846068823654199347584333529213602381570429045777489043231005003407824231446735000684994487205066206594997812817107764172866446035025984556896315227317777149450819188912958564769336276710128136651198646706252771242378750077744559518296523583578917273236338301545450339287671524317553898169181218077385881947246324945556670460698535152276371847556374168763620161404663158089216969827116327880042879731100229687526791697570436881598891728386337084090556955138823477273032610835206117163830416297588133753363220774572881913770917258768648809633304214278080280435902781778259417855612017733767304619859889664384069221640907468851010230593086829571582831926976330960795182674792088969667952307585836945447745630380516002973061517290586548369432559155631321973021788499038521618903136604588835789580587225225615845113582610749243909635048996097638807702376209476853691428901834364633433006473003586935042676593683020356874553217605692982760211440971151275207632951084744968905231365373832057629531917494238385597750902950185057230821268471680068549675832186986954130416658357877364316609077708209327543773368283512279700998713759979952560284668993719069010227383061632919609085383637874913116541139218520832273244907990288124870189346651798354255434659179678037115102970968104199002366348062845105392857242198549384881254207347101602557398972616045945206589479416122016234520395866325159347679580961789310773739569599637738478584408783378903730363190234586920223162465709681632696485025346649703964471081377731503360562869856700800612714375296920326039770170780567981960181325066951974732550381634441503699541201589994891856754009173711028891471326932341721212491140299545522136405242748115006905192862114822318510340682434805029832052145334631605953748097890551417760538537854634921934563638609845059115603133623956692737195909726614134573944838610352773595068072596323275071303458799669184983608301397948475176459423310492089097464807219571399264289675982234578918159996897818895223054256755838884845225853532894442678157619975521076655792853581717367184427669225745196557507530415474112991134278298671322231025922652561163373961348114906852460231822664224906132407917663469324688223895934587509398764678603523355235069102622031398014961222462875053966297441139449444526039337887895847618421184959896113677267563094060515386785218607419563389427795920201870553620592964540139945030577405135167920563726749013568252535654248831369714897191617714280058165502945866111936387684964410144303194714160509635451322979348867595392920852950563711701609052193842326638087526195847193380050168574284859777316471339007282280529948602879136890037723304630442767442702460031242405277116794091299788178581087678240792365512136337961546440059349083987065590094786915605092295451337291948711701343125513909024963998680678229226981018998458183298164438526183280025279739857526901307453135520559883813278121324669009191552483322318277385546421644057629409971194550735425700259910140582437725489048240057768016943304496617293649999713848947636270036509012160556936068578823000784409974171782869982007566037545623738523127942427773009069693471758502777523801542178948245229881156141579359537838435879602245050724625808954149643857071251290001802762244048663054980571202327119209794398693049723206050531198396751572196018053174387496613106936328790796869652759752259005107691207048030905293069492136394051109533612753930996730754301126531058557275635449629691173264168603053122539304522990112337024858457275747550040877192109440983205645885306834851440941758747638227599312805198158334114464365533605828296919328011375168346804946029369207622318948391520857509344053547333247623182729986252815552268614967140704647198173793969955972212421271156099680907234316609041786917238180430631586365063515260508223833388748458102366105657142289816993428203925869170564954074586739664044354405173762049462546281998230850001636344759831346912676336725648824514704558012971903924744067069615030030002293753323506781819081950660206469485423260172067075125418942454522865055458625219686160145614093757917097719758068900229874946904155432613593731817074902575897890742217205438812227117672060663996952571005972586703751194089705869785948364267793840840836470834439039757403699030489538173424754552378768545718048958138358530380388750745114869569268221734648137532546313503758597115229735620411083357627964583293316921160914829012698050903285083249683962765046634078246683396058253450067486572484562780845517785982165862735077319996958171262634423246732467284584966135803599709563458524707018816328082681926215366067887817233625379350786807884933919846105766663352324038172163122963706638935167797689065536085164596986558283668468816108926037129091496033611754387217465931240464201088595550843210574063112307408424302197253090637680761907006710596518256054988669696512467469007756727530612143453476776709182374264207532493398987321981500301481075158456285096180798849882792147813918346487086882691412987370038433261904304573860043076548670789083023269541586908140172480446343486983074195984633367245254343027323892349042789110793009369258649148151305202718076414961256461430110419246227352055601508688213578368790072075773599470620030316638073919770939515182230641289182755505135189894081564152754995449550119861674709934611835424243804877464036217069435112146928817248689102493038667548245184818803594142426727269046338610490205614938050552828909667550008141275711045394266642406209930228909390313238315992884811173772497360484226141971650106519476695039779766025973405876178672981889079799628195296974300355781639970503388047365112211047142953014243340626779578353479848418652685700201831490506432823240856516323990924495936023169718180396874251024493910453533396618940468240189987954238077999265123705109377031555051216573748897718096040260045354779703904532825627878944099734302869316301710218206516246078454037468276325902152561918914106814051897672633482440944346967165186449699193874359826963284918787586481488727968717541828573162261193966133872954951731723594028797180267851802864063613298612842147879374691639478682344580693788213767480135044433752587538423463923334010863230128337943314036362235524592600815882829877953569000267504594763485351859649207811958243614951624495135006149510734363152525257486448018770121523254396550925056239760621375695886754605897364939097320390773898694147017033182764913113207510495639083280382600855551676166686799899425206831119155699891656933538737492291538599713122926336262301251623817537060892212873923585292492324083407363387910988594564438852244875873287110587874228245892979494065732740578217998806286376921839998827544657615143732082413026717115188759027487932522960225244518457614465716753454239022355274222441791178101634828885637655763416618241111204657584744501490326317989813992069457293232306472168017237104605952306832863781920164322589875152021085718238689560887241636174855989071901516887007362175889737975906974297407373318838243197852122217134335717169795813179382396436621563256669522475437359515691252341500119921792448103901900184367268688382962654113601646673296415856307970816453463047515169003785694126328001085099658033636144118224869059524606356379526846201938271682680288762825892536473683587778479385355704271627479468514671392045215809460308963353227617438718446466673810339393818717749861098408287195455333510387679455411450354069977636682271974617694990558690529702324202091389824497426131056199457221806885461464163066147307036649568934413363624823745406846297051644826120552186811224666900492692987351629593150437528314503048870567268851148850620849625587754665466326967361648062170796348681408326863643012110657095851554425536992559986488646570408396585621699931309653436833430405723129049453930174481861597289222727982376450047096752274657282989337475917674327214057225197018334580462714616244543878379968463794775335913181258859796659628331550854975730436546932735931913645364868224555498099936985526666431148045605800696668573330172004072239263339452569308690577582965940959098419163237144341747076388606476932142345228048171273696700336751297621669978095955392562013776573547629471805970860152636881734751234099082155800530344335379656129887831986549747537790875252647506442093147443485718578181385053022416884894776488672723445062738296629591545051018811749854252248744097770685537803235782482419946836825364793087478020446392919378050125361122459517240911661644366484946106704734859124255802427094895830911301557727919495812608798215770584936457689663470397183327308046297250937473757667950631770693340360382661172664318798894924719291374592973332306590210146615580104850339963306065906353069819480096009084467969850972755127317274171732815875738380700570847286389044674099846978413639313013503262288735848493960532230337147574910443729818264525754327997423282953036309342393378931480042166815599974805720447699202736479435197141861990970634306906653572636739109126538176893061843255474897146134380617673969164515676481450586629782434833349822430244093425493489884349743862017172860635424009303829390464972085509167220259931952693946190347658261536394610015984922418799505387517252953026551529164655014580724781494272015011871429252041803379105712871456307307100895422444563192171801746706846823332456442093782686666363257354436415902788686263335900784694830449439989014927019353623648287189990144773234530454968318293177680462465193635056648750623415389313761695242279419411195882543121238515556745462902487621196337534056232191523488472919413833844479177538606434379678931721842257765220632088681949766917878270786302690164764911432038626444912217290266569467984930194377902499782241315141207456736120129082416523804244301349586535903926591608911366338856570724780855182851509291672472275674416917215506540171197975430215501216504202968103855755431803079189950713631035846291952902741957231742030447166690491665662785543077096974354833192029577785156442394863059195204956952082069135247709316444275916796885470642853536599863322905514199621162360276161192632481782607197683308315055645710502729845434121104012401331424883573111382296338671224605419973009603873754241484390637378942545864162258800573594107138689885341139170080731491274547090189172772634562096407170212167639673066905047274835275658774225511747260578819147685770701646053045605987128238436387116525545844862027268300169548562550056405880246512853870840030494655985848279260299228279032642496057756593196126411943587522572616762164089775725242817632100228057079451605687549724771610575349221839096065333434662977779647615263312675196935897444219629927911328833676339827152510927345956746430728302593183938363258664012818466490685329640517609425705299172350908260616127490360589691021483600655265481818616182729330421104418102415043884582143165012435084179587178074957638254499483059740056725507024729064550284932068276620099171288359176051234851613708787769052888991983459953756728793524313448248097856309993262965935241732230456773589026551481224581482208525266839329672361573545892937627838949475636400012489711316849397978598332568511078314199564137299096433498114237799377079589183600572114267759891898931600115057155796691044645645358758429484922073911092616666110631613279437170388563245739481708267536488439061162036907233728836260741919603314698964492602648294607130692872073784923296958077361767889171576218235828508454867227423071263727401005743746075553179826459300225805611763526396078821363539275238832277189675157088696573841899222379510583527183740240294296775734784694535590912937455623550846009293706850053365862897098770096760511212894465845652644505248176702099524220664504721657220905607904050468080463478805930069635759420455703443116715645715292158919750130774104147715913401939016534819612711846583490385821036182372582482508013707047998314210227642388766722316109072983331904952777270531762407135453255162740172657374435093855193635866363781354818207558008789415416292478952160461482716364688955942660372893980133622378381727137284657811004778462635819431945546531790359806963341899954848327777662870816361522701193566335804910235583740755391105702286089770712436931089313828861360721579814868168499372707116176726789053864507983714192952272039263691428507594184240222343214600266040308317482429464376728291658662627927575077788738599269209883665996205854915982628455010937129333083442826514207290532110685491071792760771090590752822530746019439124106569166324072644756509439676625442867472981884341678807948235589670756031346721639719623114912381860908218308936186885803325611610707667336133709582384142135442872672410721600893738723951101838404734285448745136626680368374847754767694562951458551565006481246933661868996777037419426199402180438335981753439308682491608237019019916464964203832654814277074116707530558585035378919037173722765145371647407355395131594397241759846986380675164735016980100103824992859276637408431221294420744184200225728246079772899352068484691868673535569070128128533053457640785965490520983498884061331684579502437467549325852471231230050304169045907887166936848368762971929246769405160545467391069262049598688288444247826167197502614057072994303479627350047082461492374427952117995052623079448275589148962732494093178080410907706496825017484106524949395763131476584506597819236454205796938286021317724973589770804056693455724651408969463501807992871768936308069482481005679779101216354457919979152569392329106666231361793294235336755996785107095211320278370724399554783180597467480197012745028988910333958879652890380153408126645196354637447578021868290386962717264685586765680619622655996300144318362526950659625247857245800768541355009514023415393711457368503761031158999954823481152869183188681114420647096279393794804591814868414463041816375017737745463383775425946152622525347698298526346715712600695199670012959046020719496717638429892988016878471656508423452537858968091249776250628613398438079502198555961230106702475543765025283971984123332310298867990041067637119941476242966836263610192595774463068832544332699881911365128199556694197006447279649325513730053134443227871880961674252490979741708400167967599636815118084630606199203737097571797409612726602935036839834916947688735931424878097131435049893272518076749098719422656225774537708553875251191781898429412103174750319021194788635295409832311220647580946810660557855269690610155683343638411582279957091951265542241914944617673865296579122813986020787673603072970793812846616811066456193649130305310780314502098949235671999617100277249255297145356443128815406227936936507227385199212207590625566652321447813917415966212223215436920866557057846028651155629721664235252833151658739365937398245389625742874619533232926349157009411313231032750880472624784897412394204171000621568347888534393536432266781837731858675254707711239757697520088544212000998227011543116682372528958576136449180327071847904212833879821942782211624248577610630817904360773201128025812067962141129099391657858300788113498746213174953033037680109573220252716808599252387804624703484687090923773022152691278315478653688574422333027846564464597008415566230612644677291124757257214130713454742029660552297328583758575662992489723536963489638146205383158188965139817323919233928840075546662826094805748640590636052650998268239057892324759131932780252850639681192284787906299224689399953609652758105988162798675026337053215649216968109018738212087333887807270452294579675683752850554508876443108551892747964682998053306017913931028615143960531165606602694984683962620477837161081856826281983909715150311588725041250806494410137057236729611062785893613454844745681054692744256754240226615055041205401096085569723175976724210210699494982422844065609062393636701358039639125292899434579173295789006022230216467135951995610761800884522187391858445560776033288402176413956895270672423333428062286018514745166463728811071041566695710542163348775098838756289933083895329183210950340567856460969384951486664009158339289441916815735120926254251292434126181566178508680510088838055120043138475545401126136749211860199502177665438579801505129657272956247704497033765158412631958548114567752817612247295578186942612387111346844442765179991293559478335683776467753545287225522833436557808604096958886453674219536346583523828654580961186514657529892642760115139751160047076253461535849973625405020790553913864675397152940688688020604632349732550146683450596959028076133747255996760486598740264308551792766048150453797179031374009666790257928835306837958435266613850113924313085037827560751264462360173688181950655655809623121378695925239148054423447640004600663790045937030345768400202755864887312037463760154186212854282348295400315909086700246567641212725415632916932451757238966042005599817409617634975119797614092165103754783248772764828976428303592553275580237111554823320663172027515513123916501076720638468065839336264679338829759539957839761218220052123493220812392461392656085966130911287184264923161871796752654412894847684506497174920621524983231710574444252283955667972961579741272635015669820161573789261271574600172231349883495492480809738496768270233472483413888760363693210842450821640812850930982233224257479576837545933786911386718945155770731541386308202805580559444188631865289855568931618742199245924570639169961436345148623155577975511001587367192742630188751391874880760487877334770098115062364752372428134000759180137617250181535629441288731570282520511949947887826084803924658463177075252452452055922948526793844913029702774713323920718791183906427169136955898841456861858682568795920031500048392223436357242380987526669076406641682426550620608928469036795674808066348305831826191794665443362130506632932563520779988186227140116344996565502126439063899692127502440578268929271970579011134050780813405891698854680703484741625299139419725151416304144866457331735307318107083527022299727626653120749474599879134554787680619309382103190752551140018879888694704362501316400291605966158594524925565169575170038600758393870695086546853409107808623007602503291823391440533269291297730702810663500329366358492738812986520774248260094911310710441798130330885141002666786644203411839784580538012773539819518197816949747454446090201099392694759910478450053300954464493196370356831743923100284111510752646728028453672334765300221554488451263272572069620820247814198197980864180170509714047203635218019963198647891945076567154578625101245457216455299540296208217431262025701019866850235706676248094667603070530925453369982872957718477488205859019254727920324415599716758755231100361859078770945696168359192776611916327309374369126763219223493797694718675755940203466334602145058110461940365302070574216095500163647481284418571761503536463983658157779831569640323062483069163686438572065357778007608157816964055506248608225524565285848255922579881817343020390709966636696815462264501223268913340322236270874340145965448552179381958554303149377432526746187778199560078940679022126762310808893029684074684868442596324922736190442044468186842178087593171043952211057094061667132030765776790329122546218484780009900647672667429738583279358366065584241825259975515101178041935829113372284246748823856891329501733009112297562886666277857314747970629623549704284339777008062966444488856468004476113464317753780490456965445121640224700793815177085991788436001748817844935972831989833287149908858043523122403240979344266664433126563175600354766685717458156158254165631049792704647993163337492539147087634477761228923688504324346808172690876106920150653208439388594404374085629127943063910908267998905216652110468965592087668084537381504300094625329046469162207688336370590095915839356847022630284106003088585630732400974492010445387407478826084770210341307900636334306028223860868658436475159981813733299555207612407633596061060771322741681053203897504317642193620132515886658818931588759996859300838611339851801484670316518092826312457948971407569040275067658199899182552583327433365980686980027776169298656778721349493509375931649701141647489974090341873185854363060670309353969503914741326795396179191517815551829144795936625326097178192745239061401210830044064513355780721612219302216088438595936238387838606302662644723910454067797486812602158940706258660711054636956236165946936938001167089291971482200179886373577092983333175185103049744806358896201154164095620691654179501649678892071560615536498693810193809149673153764731330028327787658580526430784003825667780419578978141347258445286877620419877000443180911783521681941394772222657162647899124444251443832503612592575368454786738102704720602136327693055913480141101386099276476924642889564585895405910798346819873742901575273686316496900947497609563371559301776878956675707201774974331302959718294590452919654725799721542563386194297095732569481049321750124821023776998228729859667850448267886937338278924020658280799429910110001945036742821035053133007620615654470038067187500084901428080426101594230736985657707868757545462875890253117260842799944436350507468528144136817776348949877107690825728890808016374367117686741267009356178452238069387151531707728008574771372613461225012103441133447267459807086874755833923100644149223580392425094509466789332561290398472720371906672672576740726216950388172289897542890454929550879924098061095000695809479892016331188736199826574556601561888574155929981751822755255211612657918326510325767907070617115825742097842663960663712259896632906566412422958372563009149390582948754732586547602934599359061618427337580534757929708608016997203999742386100413896606564132866297529162917937939596706663042485832662892510561791893485312504062465494562297054638809922479524286781646765469733469748610682403022777412680807762993508309644895461579279863093818920604230454978205096667296270883026548731261791440062457744634844442365389945099829490454369983288095267232998475815740820320125416909482350249771861466531082812600585735279181639359795243015983219637853039040863080990164985545558511386234840329855643112696111746439724590582567409190975077462213947895013809021245701623412030290899530588119176803323256481784386832025482443588188470748956208766110223113139684138233505572136252030697666822605048981358973999963638605896965102270064259570812260347629277575399629518995370914904020150238135042725952218322649434152319467491317773478087267113936598357262973651499833459689323557534943451851209432159625144218248485367725105729941040707451787117148216048327037531912028089016676291472714543112012763451800875917712681084933484997710971729609813752095519164128588509861493635936170555504802419755205947287023485339882332497683509453425491484470913232435710025083300839578753330494401921705037398157322848891326005036334647433809148950537398222311596756103997651259784775208609315323915972058236419710162259746882297238374337189083782392385543514642483222072053264144309034370077355649510772026477625040523244529635557526550226900693557348155918081923049221797427129613512734627352353844957617831403132007753745475589958825416260492436216982329244164649440007693795108325298629217617478911917317712803487213094566032669974649184453132712564415316240008655915976659467816462181038180922379464284235096076707985520590397936060016291566648637354415720331763697246572692265972187038817070416298967869920807333268365089958896184223039979607594432687536720602437758346163348566708380600446564859877442592452039007062012227753449073110746241801116220196635638612471480208528990168568661910435104357443271075251636910641702185628926171125466172316091876566531074441586455465088398965488348154552719419913861103462788884722059325241046412983479661827970969243216063893563701742109817865615661557192217277081397125432054320594187225310388358772596588767404083795985341472609526604511684277246060507820015234858787708774926398066239361823013406055494836331186679966535342567445451775803682335109491598737256920363082988955949259404633798100678369680156724558218133063594175684617164342131533488530459105055267952641195599052102496491524531938931427778974852373007422361364901457039868277027903454650194947077259345385766954066658263338662950933573776507833480760166914605356342092204527600046988161179163900365586136884199280166562478145409711007575803740577962819845536931766964934332672301501137390805061818273862734719552896086526832695229577941418919763994545819691341030391144605471636871886375033437794280044365556843711885743655502821501591271433394442612283875294165591900444050838988960036274774345966298500217771522978098647128875570000317564824886062692001822557862911140092219440477829677350772495973907235993829974993343617439849996646106065991923308417872009719581258764535229558421067486487545685531339263517850184076550324916428013801101541625872525637806566245847767829373640327345988825744636970699072120695390596322153730118456059201306989889475145703887047207111814686065821540534424014314092236002369443963384607315848913651765820188892911182767006030577452800229752927777155971641454503029381761113692277656793567301574629866114434985596729436064907918500182486486888614308185810714005733853685872412656365180739716708788595004204120446892004053162706861803908442532384297298587511794161982709639251064491949511833123060166051167542579172163953056463484827622732427425108267678213207279161784182867153861921034217212693126131321795356658249025007153326982016734676400222434164181102353480332492556490053732896911581955527557433482342036923329546635112337468366393995336144362233547839572050256122050914271384073163982049069114551764505935535863598904264669897874239236234394831975799248986785491932400381835563912552605208739087419667351850545342340030544614860257476494844754939970473616529680624691965548723993071309114786751980432352872514174395556184809110501353099134170036450796933308744537610829573988832834202941852717448912753239061948412340400170485367921233340612101960780777906609050686815291668637336947087158669304169383867424604597384158865105683534002959113532784877297645159080292587725747301598382743906970628849679906461002490544416053393381618540425021687175890962240068267102853715181502795810610508259764776865911709795568371751109247613725671657233956004099139026591239061583683283027404625751974561180636769768938398997741106623415857918258610872737209445172397698977410767723332981784548693281798052239880426308058070749548782060897189296672817704702271860660806373978242484867807984052146438565042898182406024348066363058941397812131306038310489349853903705525550827508638199673112120937960228648877114484175219983551712208934783770456988058434848876617841064527901081785249742467359109702436428362110072928296497889660661260339173050753238249116733294010139017422866243254881843667981082488633739836362915433753488647189952997194480917755280126636062576290194742716364439231671313163366593651108252724465196011918601052640897736111748331911728965771778568840395768538770191819743102486574789261068946124228623265317110256800057014335383583893625519583903919685895174913411289114702246157841585449993955959870707684707199197937888253710507093142823360136155218433766673593397176814309758000513965912838341198907010133104486451191976404764698960357134406160030229171961390691536702254389427301830454156118109240489126267202998995522212932639452441072246909189815149587736686309562139293293434086258256358297770330731301051295053132404344102193557718938897121910912458815094556551793231534827653760612137855843794649614162883017610642557274168672172653375589133092370790160894063950608189290918364551233535776791234903956702194677936967267394092958730915694464806169328314114361924368993006922874824649282837240400831902435027411763073747014829819248091939201650747090928569964835559186040283155465401450387214664520441855370962255219856530372987291798908181354625706077284599942336988638042012471982877280264682062656019440143471767266652385503841595022469714956515736482526345017366792617233810960551800416763839026223057444918916112993701735576491989602399102397506902816168149006869454949302763444145225666042572356673458817892732535707896910339683312938122619831935164509943350557513254038400959626431704816248870074321210081060363095383044909402097743185741914311055586111042031684423602534864525465757173141883697533827926413774054730430229912788933883748861458033391440396993175906103458456380194451219843899214081075453124958192194421384746224432336147631395043033271264127351089353610281680458756413767950991002238050432535700411730707317371698269999273818449608470697180464977242923846752246661828372317475592466560757851445340772650664109339061740837809924523537176611872797549919011801790515077744287626266668669473266540519880780785573952023535292321052232088700959809160972627767608188416107509374232321027929399379730178385377965071658951624225276936290070498151603266195819396444950265613496332279859066772872123145500892201116082087022675994028976218657159711718982781903574273935354261331878569442618141817186316044000260193042951594009516992414950666439543578089987371436324791771855263842441136837883013629035206880662623544707664097937759037495827103209574262618666367008103556508233256607723579403019739498470937704420611469515477585073631016416840641538418344198106607213853621921196626703011801518988191343834929111790582234831629435522804788106632262762464403720508311268488274391054286593240248170203566880557233648356878056350839845797704588846434053831465318626202799631133775317722739973007721469988854616641800861419618104739991622361088290041220082012463386190979330626723753912911362219740116779955755963185355157235900188249480753784878786613089953291908050772670930929566697406048603884042549382399535508584313074996785368432344668483780131932943638119808236103902749881873495348373869129405558186429940787386590348272333504843953420268695857988927186616304947824196604604656869526080707552821762714729084431220836630649291044433468615792771380079982986446338165329361388459616542019182788950404433905912059577443694143134600304208375373228721687565059246854131754452656402451733197397541878572447396372081411582379925480150961632143748527594446883737139005182067482422127856760747876666581479219495778943699430085496952527510930073200649811577495959615966143902032682180086323106063722909122535733335256592909026102747663490385554356433664444093197301796129815538989879034262412877519839261256681461343272196445266778995053890038951284094542461057081819990234651134746898018926755849643920539557117272206522864228433804680228261314751723197444855831854776501622059379503120687658905044509078936636381526769848275425168314559210203270916941253201351612577874845055617126117604245716402396818239109465472564258026016315546283313028631615910205207452431112730130252454387928418893637633898623923279639423849729756884968989456949919208421453031189491570068707723082734551314323330181621163430411436124996174479505176369944288873670584522672779073323201485905202819746191233068644752031624020430569200444455542801293852358665675386325742679631249258195397102245967531428360662342166022132573273182903281653136157762292433294526312625151708920604033366569369265512913226793665637444931356809631876113540771130154669056791240036339373840205032122680087178034845574821209491579957176106563953553382036835986756470879033309289333825933920390626395754494892048160393426582348768721958992154930885619370904727486454939227253627002141660712658028368071530117043945862733263219248247476698453387763291871230929454750543378855556755320506516116942127646041575775169739715386399752323480752255717085463810665634211975620051808232171296633623337506878339476834991544282792099573658407906710124129048326314439805591565596277452148976296642506388349430100512351144522382286370522098898964285799470829098842109420329352395772235968991273451700867057767572119262327643139643306895809580531622936153571002708181217547612471256056917495553306285064405007534116330347734106203773379436111460913512889356311921936349771586221736462422778656428118538117267339145230483059556008014022574952507938717237259057375677249531934528849066638402728797652022052076882286160677853245311493585771238065083353934267645878136719779879507352604111335083498541297789170242733786645913355952986051409045126995593832933793071059559764830291578173554042824294146276681523027678176870031283509159879181916204932400534795417584495039724660356562461726787612581283297150228658297546203901038606380851670583280001779343509272155054732853447815206997128010809987094940882839983843579474586181552027013082979356092606602675473411679880651003570235718520589867995429423400106983261178587748255693555920129650839815927608577047513835479155537022079683965701909807859450620860002817577835075564565065452908801980686972732455966547001764471752631899702364729779723800194470911982668629757269408653010201914627600598238148033101147851314749933486124894242670906851867264778186082876565046683668143231919905880879331101880187653514219832967990388327731616232926891834928850461281998316800950373195074722623092673329497770382249280242838505933850275265467251903233235869132316671778727590924463588194369506624925445212700229607920426037421251700775877120242283960281137731278228443972690856086509496482315762703167191905064180767896548446197726424608404957057539236905739071615464505412066091452407688612879134177297929034806881502049296668140777669133036761931059598296480374996695851783006358624423065657960015655780456306571972309865854354836297359671805646826294130464377670167172186274779191914956713716350775767343959146449153248994431669608397192590488382754907676180612020697785654701876637830334501833458800999312969450797865460991243681270496352653797112680435465434520494756925385114600789040677431347126961589319656712156013734835238812369417070461515764467928465595215392083256437361459422497025491933083109060926632021263680760244014234333422854601600087663580187485314442255353075521664101576087566970562006393810651905514642847819321688157938912334025039176743099092755431201656443042964625056850872097280853017338987673699500860746793048066697653720099746026666550434479355227398689271429233431919493007210796323039932452036532207078844504860575364498804418509637328718846861488841287577064407082781943383785697954241367256195722998541651161874986407421090710834797212232229404335324003180925143582087079043739027657179887364405585361303243248175399288382819939158292812433356216266463971878837933406934547282653990224439021033928639500616472077954166223275086732308199111197282897140238795030658633966132179960797611041654534661171049593956333797443474618754704157458138572688979798905655826111508401541677860654824970070592157890175271994560334780240129700428782854505440585659852889385119324672746681954584519930281114599434317273155512370569066573274761597967334821916094152718590336477866490561560082211827017444294864533896034817609535522850937871786599216846661629408425179388994045861844606515813544539352365220301033165709003826328653547952775390660335201362559148719377967962790852067998720559553660668621363380357400470817592729099677872168084400625006785351577141715961884200685587877441696846029793751909122535925233405266266350217442881537337158700755148520844290306462350946163571215449300034618328019358537371822211935920812001808323533615617861643027465185853208517009056358168806866169047401158503849120923721113626783540384257813843473677445253009270454362018022851330491689457163621938450709572677265713011397940992210492546291084575041209013956204552538965111637519133824742926627082561170769172835677581444814017896484110559672803631854392433797409997123135409692299804312230048027385442950223558929909843124980490762656375905006330581777302679451496185480889159970229626602469434926872472528578242450860412640442093825772230385018742942252131780795865050586244361209850361689646194486562124602731484497066234413759098895021577310360345442819241310904359740119230474057642078645059425380316272997100705925777124666118124570259157786674781935067168976840906046726054882551772718095645539922298435620602737066290802834430523045742752024918826123352012764961149779222124789003982742554362352632507731932263668544981886225041905218085772673758553552183098456816812790572457817097225622927829086035939411562101828606850522018778867924458715298864044836530517726364402026498223583469105066983229422575747621453114826419421564062560975562050708097649646124217469980560323536164061914512504270181547839908216682621339901680453552484027105892868936852569417160661791660607607040087351688870670017960506563886663602548855528575256109837019085414666989370698400291322879947067145918056860585061398073737564124498089229414265847915407471167617141414760791283230558360522887373147031780666505498865299127891580591959474769462063875281644060874134489001628483647922844363948307772391411455514651903110797443478573225388207064911685570934350928706088999838300984846538613787075027864518613112943903837530931886513209779385377235971929371280820847171098478417542646541793835011730049199204753257941534902423625761859651232245342770111661834197423097909584496714105049135676536447106257472441389675177046384137609039386388183441606206367992529139167108636506756936871034898561432973681632307874055617940299743069872820320602325620693577033926058449512572034609383397943269775701890902392565668178789343483727458142992421973313004625996731589241483464297706079537379296381611780421258183656167147266003868668306762949274321051716552807293627435591962076830833746749133220959542959515420907401435032103168391569391354449177579035633937476157568039125845069034360493572732134615902536233284180574226879082729501445287252431351947988031543966887697010394626179938408983307740289519423144890080333070237259301262947539520947989192324667091771634334673349066406987927943943830897300160169978577343551357219671410468761714710340915017020384066444683125151154672065287475622369528995685300784053835291729864260660814305568168321078170283848959450764382327406011705311932998731102191338079500470618763618031818990728907900632620540566285691512061273142151682841151461620824009472079474258750581065875092040110648581652446032642519266687675777727776808157064237732738993051794565875239304323602443721898408274843337339740843903562182952682653371009764393520088878597507297078789994981736062088729798557546812675514404581973573780727379816418838894521189212742006293157137258347618424557279390120766044893502030637133750611677215021065297234552178719844023964388889755737132219394915813286213059095339746236514531905618893029761854312458516474933069792575129667463461833429312702765016216506237576761332636888946258552897202708103889078811165341609724312735733906583468660730095530107777137013850441118139285630342813884090333986353845787509593544269476132815748931164365845580035123576456172789557466105496789006567487918765772868435177021967586392363611088238660072472455672292807709648847325107001446452260325928840507824861767267190674958940410990943318240545702740782400690963453271197238345620122138809761507876828361711119675399151542256323421927328558476028093894843017919025089128368746490255625618557966593738737121781639953501630048479881899384164118259253095532983784096859481046298382136957214639321341546114991386097419359454252485149990216381552645265106049469254644573049581517031767725508665403192661486885446824291950077405064386270796422226739896408447167044550498389459730434757629125502100718610160758750639845614836714749274682151146897277866422404082465141790576614489420664245375191667392780305161089043410565594832861629085325648431574337136179405158450364825417088991040883060538701156785144429630792294097845018002817782481174446720699762854170518680157962628500288488948521453937915732844681580283407189140296883259115443654583137088003059621597191081491975598681805636621709443709577459724923823601723220045230715936669571346849641278033954414781695835750441614126764773512918952100209480443239859834540901526161910487148856884953464633879491993218161351237613870696600251844350304317343931052755601240746685211320534042934574981507401123017969534724903513086581416717893668869867588293731837962768289008079825387141231223740779933201751900958478969794838694425254680156736102994586050306769220927353839550749974031400020266534367008930738439753542818194944012395967109641065464667203813187721241606294436330897720204119110673972460739552044292350693379202201679157645856197984906606148516625562293678092683762164041807168464393196998005901767849778948978640145070018349172818608362716388834976623148851210340476529604630860092448654647953116309718276810055674580198108828059487674301742330182082395518104736569117726072650676520193585138764631073441266415711409124039250111131392029689937614259443533773899773148278885072942454845302489015938186224448189205088853014681939434793720612661935223245986785733261819789957413107134521071957061912586684480658414081778155163369865926791269403894222543896667818619872386939419796205232493239720683595407634665089870070669573183924198361500531030200739480971856061126200211845813891430302271168760864015196624118291363854561994067497228231765263381636049900306258635655919522777505453041090957756304274697569608987971445678792144460905155400820838251472530438649862014809893887574681324113173008649049749038590920450229947013062265409942191089428115656319442942790349626050068252666866285413905481793673891315058536251219821994783588987949165003189370000203477151096477349541759364530058133705451679876438144147854148749173596398636275847111798854085142555431204036206816633619568794999073752441354940711233532179656146132068565978399391926941760629190865169139116927984401985862316244650973404337493054837533079282879591676936223104783281034855907656495756659584318631066910236252816915015229353916942719700914175942385013887820764179720088917729803245807155169156624350616467955955923376367524855644341148478421146701183492081304519575423307311815301598239760307293418736773000056808581837806678597374916247762114516084823510487057520346148495490106036404645331770989654543165582414239544734009621269784792772662234263310889680976348311601629048721864034959133363457131669894233203798598239679409199168879525567985902582364734720877993835935140117648045533657759775047131396271890612752030426310764291810352060112976289660551028816180700997386398122110217169935805743958627729776195553860267778299950442069957583911818955736102112189774608885714047909755226619163484307384283493988887633197062876915987585497221333302524689040925857268322527551976586044378617542767764066640597371440392925186869020101779494762578832911139805892906189809733605657557671970687846653195290704787861606603010110928614383464001657161295446358596435771236846954504224485787848120636314819234950487669682238267441658542130844340325738077321645911182289027909457372323136583070306624916067016177993483378362248750764141925900139898660626928052574406939066254759334521066893953081601496663912395738117044080589381011078733297232804745295363942970189686954774170347133546525692246437155130303667359505986974423320890992070662072060583152581740458486450104897409727096487411409670034014641246918667646390245987007869375947783090915021878207486608305544868174930690820229076502874014910311857767422648430570931275197271677058520146147138627399720225675938746441758881129865508115931730766696597755473239524209707803049716319914954298398862534542022162643425000388738264953987857828200685713141471575306677580063848223426890048112708959345680794580748225747766417155076576752341021349673986450332121758248891138335794314480889093758584177503390891085667605431528438736052965581608463059531323816926745723818728369113184389375880452527286269173702564815933235324822500606365776177977844335930669671212877618517844899623289320605990551216224655633337428895439500434552719191418988135248140907812349775848169330008323262335556672321955861345268281275247603847297761665336228249081628020669393361979483784996023958804038739481388247719420393138982926326461052305183966553240898250109601401859282212204273717373311851470406402374165261382527359997401948248304978373602358922671115765711543569201558767282853680503945640982382469881340621458020196565839775837930189986165019318015027403459668490505773987001335013590228037534816526442145597492127916531349463340971631879641653855549711342385346189434659096447165209461899785502017714750865212080596065151714359223173379537567618387953629206622690010601410318331660776736939311044059006767629115868077845729484247885568687592521734625919456644300843046282130910612645752379107687783239769701453689007213157306455151027079982611878050555494314462410503867399805069559708099251363919954538773759010606898922476331292092876169006229064071397508186948065279426770017635253788687915330563592538189891213691824327386098920280403128233370021970770340028499265409694185709384298166417373116827742033881937187296771637632195755115632797223502456807699714820150337234553775767532571700871671779163628404532561463545096149999774345740562594214012546565115711501599656684417099615774681724272017042143694976637328200039332987458438789312021612040085683583931772109960051769696268277010568849426081930022466440682647367737602833308939506336713569524748963252407634903514932024293590932519374386505470653285094570745354436294296434326509989961972376388124964706495392856519842326800226536489234687930576014722679200913986305093349332523682331198136048303374137931294021073628642526738861687282752126419771289439524014376469163703922653248961117768501922381426654360376392817578758391255607943266286522205145811637535205187158191631744529707084330619582761751002510349200360461372580392425528024949577279559288324014391140085203984017382634768886953942339362444780520404168348275679444173835870741383430342468613513697013856587473711079192334782247261868619362110338644449359539380157249513031310367958390866136442009565706064071174189664091898526934787175236375141500052149800111117173120848352322353704002457591717372810056947170035182387327469036053412865600227597163225739166956175110170770539327368609151269950737020982751637704506386934469110171992821328259182066830461124178558420366069553931397191414676136244278281199558988340557388818968787862559986958262158528500954004153462074223539499720213393388817631085643297227356086939927683264205576288140936675364202910883432321043307815452150578867342151361605244380286700388234854572945570599010591291789308736981936661378062695416536164430363086087795521014955862798672384353538309644181028956739384787755131582709175739464947882317434466704582004896643048699911449414904531746527081975879686045430795747868720614961061036308731296696088453262427017419617287296632639954142865713608017426284546701314042399498446097425964224680497674962200911064144226172505208245805290428365333177826658389596558977050792323929072275142492525108146019038711938698190028846913791631383225543282330711217275609615143989868430850557521501192261351922546625985556582133181386399706158507013402112129394629663078267293952337948528703628443003268110478044572075846870963010723808432422002304185257705534129121212218763908442826985711142454201431862899227802256807155090375676747295548887855080586556287082215855750544756320340092412029392702632523834060852541957713783049686351699035743038399563065937194218423077530986336283797220350488235064352204673118370088210322159039457914440745786722341303121418974095288192790125560084117996703658628228359975903643020708505814123374355469176876946494802466706122460290424914579789932218397011783298809262789816608582959287531301147647060823583983898762983252640657440189987961460455584829857907970030016370520784113765602120458012921648724275320312158971031319166980440828759179653062772925115970834884364911414626875290997268336451864993119142495883492243643413962126007245061914051346938300340156918832385920316590734493784404136460642865032021387338337828762873873834883250929084183522012065206822086302033734142390365419914635786964495925603598026521537353972389143758099553534833682679214661769636450442557763892983087619955960664775155886922742972717448253730625962101367224752171530365873760221645393778746467775454766060224363526300170260537110196112003361433266425991820676035343383370188628647464040774842674506813699133950599418962500142358738936191786732325853116675133858340990738955819799090385561560892064343112446406239735171820807747284822805278757003484574708464473976062695505637758549464143802695049313496317602690288120767061889607149832769522449157243418753135323693141006615164832956398550607625574838937521215718618908171686427687617599689384678083311194228379295608732894415612342964118102341525089798970813865970377428696901124361962584543403187106504924913924260604480596437827003575380144409493206992853813397658790835025972317403064037752261100068376396152966193998519303039776112285297605022183969379449946777427887456747360972416147423593481128838178336502105566569246954945707475925509204895442047764045499641126512696556759521297770111063945448456999368592890378719672161547465243424559163501713368606715877006552251919137889001397677436998218685482379027860410858611645328827947625145190480762989951714234370878785190597145173084299844669625656911641216195531338347981640817795220426444864706051040156757297543094913436762479953007764738829571569363866637111773937672492637665038159745281810612106492570602386414886829266724477818600502638462862995207717192279245081740494984478437075867005510309501585885089111068072783570633255339249396768912500185263199660851397242066929053327083571873291190077509909164994429110091639471711790886171400326637647692760575376385231776494240213718936177659780431779790830603895157210431875097265617892977395490273917622161438272050032674489627459834386245573700155189022257535192684150926469882248671398442505134438864824599252910585314925294599339319058004283565056825340275783539701263264872262713130679846596236547861227726188025804284672766903052524300330299182684871837692819863576685839093282639365202574782353307550468452347280425010577894079796043304424250916622547771111300169015766612310572731012596291140745955488798810005401876023031517444206605195333235671201235715451228604636088972512234927323233150808672554543155328657371378655589375927570909627852272866486546951118669172816540187348403201440260986084063106295245649028784184220974541571595536773674757777619240733083875925139256850864735737335952096859339545484593561882666909277844981982583322133967931647174444876615439639530249070584230030175171880553344761525451432176207146228005299708866268139203980561257568294460768419152071046025539149224488223392391376216995421772939377554016442359131606572368298588394146650542683199694824473892326023018041450405269011073800241838349127995204893887262783610058069163954259727807638621609609249777734110715908978209387771504766166695628372251176026108797623717548576841588626791848552627445853874358787567134123131343353111191719832890669151902615924995783680250165135627127193999241896242731754168359139817827264376961547305420599847066568874813622559509756705200088846576069558445419015563045664796843376627135480668728367661907824305800824915459356370312871781264324307778684536723753937774677102041239812302401275345261459149413318746973400325265839523525466695313624333244174950997448971385337785131447345194395936074651278244445842783463472335478784147906993767682742129886220926544362780722729084804895204268899781377601099910814962472969811712599717680720461254491952920296354724826989671481382475033143517703678361958975843738031392099553792181622770803299797520950558140624114548422408837641909264619053443213545552316332505775942070111866702354500170368887559780944244632414597907945613432513702952158281683760511028717906100472840627518493401116641484282298598449157064837121227848273052500304256898116314636133242785143781025509486737616820303339115654080845458382891915870984397642554521976288883805603049867137731785308054367847658956092379531741194085498074648838252934871496329308374334241101768368965484490301393385646609985855203169938930975962690396045433465084800778070397224533664438685807581340565336843746670406108656918403613020664480125511571424785072678437701850723227185132825448893293384982844872251321407260752707764458738606593064468557721572710336682033353635034378235828175078122160332967106246548367006000344319270600027146079713415165056369416100666032547643180641817841598976177090927996277889548865688217876232966058031760873040585719848110127466068028699681935017020022196776143055622829384435605531438447443314634408170765549749260739152119217614190301276485353149987264913389338457021539797950106303599702475750177371739652002507852433346611104393729445885212483469178171559238187791105222230989537320590849251627106430529312630205951540580654049774984730662591074328980379368552400408474918579483474812693584912060465038030332636677256541097438232466730430685818613413603148931652644670522633565119704659804708225424424865220262470065497341015502875873309032499618894950807095016844376161264018429410053681869678573407229962468243572876296637414348409730118050281542830329129594848698662330652946636347828431522249309945422497340226833308021615426316665005335898230460232608586712194426730681699416931651003348000777301089909035411056096831080408246275505470270764475623299615444481440683581925463568020676079618733978750717377462370222628216721996562364548443249176856916321388887523712886159005863887799093482170039120913530975890660107060657136775650221883941702581311848418825351619052395992474878974971603356258961947616914960601297453172320501986008762675893215231612157799316233003876621940685943526150072497660114652441408596152268213057489939998079367018469968134095900166699619357862347699317611851936511961913497283067856356135722221615344958855586987472568745835905715826751322801301188098627903428262836260385891834986384107050561846643089926024527871999934247393450586501435357885416430489505652532065563228246797428369903865314215539407245957070106450842859535983763634945398407954155348860858531827009355538350262055970335188947846271597963997644114590622123040853067241079524667843298467122441855637701043732980585220823934831114743351579179399179458034854821416784267013418076700029956673434943831167949382172735855318590166434204593834373379194423877755182591143327284815803281091464319121633487797561244304615647783614636448853129800825335958127435848569265055708134800010425834550922998901867115889892449607450756709126256529691205203015698013179994915927625376547521409697710065145698959817886466637743111116969482663718248556361868291866333737776163402054185929253944273881335876927309518838218204245266298683356143482455975931243872820018321481239193659177699907370370284627308281854033543948451491238620864537842221779407614954399778016315662034891193985470038585297743135551636718133344823452835670518437134343816842634642570206537801073664812832502653406221584967675206205198105850309300703902762976805176435582355332619287507838896160720781335055235413464931252035104596845126220279259048031827723272458979147675401166833736269337891410946647257022684180221591390033752265874038442178239066781689694278826652775779766640202748398681561449409569797548401283821290080030218035634096326071891614589339018868493923100102554252912347137437520769026519676956464388864544003830109232919269111876291186682846708472421250523855014998753869808890296253621099155240470599029730432095124880343304687194697520171011568010474955052901223422978678166743676436457767788841375391011184303928319701284545776531854498320654874331985239192588969593922525042507275658398373291625162129567729749176995002412177908835959808976852203379692756709888538856376340262278656599893449213520589518488325658928759998180253850868120402754958542688250067374211523861779173755974708110279760369194620545716676634352161175288594276862092379409242958706548246426116462387931923815593714341356837931153851890765549824941001782837196716545830358144736427933894326106863627845618495020916892506256234257339627295828197638651148873052400897780631630637643586078855906389025902159191051287643175793095518053204832729521343731100007360916993894569532832776746091186385394522765254994686521427203691080167046433664743418469195302204154164861623334225285413356981562918327558063085141992480478458818033327265605482247272705839307642822189195649725521363242857988993694101021136420889856392541605080198384809551516396618457958589088660055466835995362761189607176500542216811689884783695810901397163807137744951030773373948765640966213899659279371643460700013944270409987579826545788769358545950783285017550948563472262605178164330940500537598174848909667858848383313529446699767860913060786790028836286984567523361024279971867885713578288821457660025754947660795468889698804293042360230727409502797158727613491623193125330882080638029189115915870976135450482097571423848432517167051245767673729113131598642186043237398653671721556525381932074101486793605480707628594492694986453340645398674857581712928235296944899508914232740438319760069897661707273316290363732550172932412798529798640597790691538404036098079491246381694317037404224382922633611392748168003521372411431037863516816771279724873954846818562863222627371081474373607347434911362647612136498435383782358155138190480082259701693032717709381647301471835443760872310763198583905749046677238819651155832356664987416139410152005049680936203359756616196851091848831950537491123155240391013327729677854912478423822855960967111866207336211428816890121202726123783573807651755086588975447149615256744189632202282087164020130407832370468157005165560660799369031339906904772185283383845083960554694868747448002493733025479031704287721049135723775272774507146844080133499496511283808679774432009399820799845830921352042277236816110609727411260738030498763895223174706225784949637462003294868281403304040747758609566936671503947792294654853739712878329946428091114770223262379772586706682655407896897060519126630690255006453257771192993237118878863425922497838216134323817878596365973830282546294502708508041934242106260995887999168795632047774491161376648217588437311587832009386761454489407126978318163708245346388784988922464813541429274658897292921141873822888716878783619038104427958754388916661070742167420537322333290725342717831160489636186113715144006770376848391693305887721194946359209493807031683562989043322259759547662001053675556746519550831826578985106046506993594259649435091016550459281437869188107143229264806613571055162088401852004182229032348790909394312343468583881400296145183558080574647975974689792661263454641156019292974109385611269651247234837787698323703876579895380893270700985879326614100842606591933435992462391274193964200384056560368685712859717748183234316604397244247061473023560186514332002306777954836237330761441868271208840025204292387063923398005263220632660016709587553470800180661706649103773740589269246937937985438449070934516230106060442927890869588258743806601195020720925261752262908113562763147294204317223008122213743647400066443275612055151861324294646676697867786805327453929473894582485088651642138051127811773340629809303324907982735616283302323288345067470825896077886544267144784670450653471285568143823031473038757832338013921522250545648591696607958094679973103812569282346998883844325935272523296042243058801906191473519446917592894882047543630609677755825943534532026190860988065049220556356929165010177847350026616206295164924922260687163606451733214158518665672662533996639032215687752608043576110132468769764773694084596996865930102659053107516588323899361575620054157909184920008613338265550496106323998297709536107990553241744313971378744901712325003843026327561231109530952067658344775993588442599184234385259598056077326948342790423290606990216371434972929555059411212307684046555855576749169536921600362312874271987480883636343424001563053397291956575147809360340409295775908894392565750002884941893548907885168031690102739517601040133195652010189697452230269397951464841520702134370101828593515280227595918447105615804252799793333679275565113720721566562806604206974371336759253723641784956206380333866423775772614693882619635170850643868129045986390031059130236947341695714033978003484097679469036303138273043703786773714828393624465515972993037664842009424834919001175182613852531121313800039879444894337999186577891883109953000189475467560054256797930053462642906207084146604920594929180852176183990136000526136902435535233546939119504316211996126568076308518976266980904435617195873536112975621865187116265710881641495784353901839127288196956240595663899893404451865749037712712774290680540979194556766892511445067815420090668596756921454142210307056026637917146898887710596930379008640617555721977467780178660200353776734249690419246174945454679368845511457206766851753471092543835919196598671486343166378072017717774310993795876501469416304764214927600262485706818776436000385521589752079583482980992311353197488465484219383450635436059210464605005412387613606904872738470613489579956349251499557773593392433028354474771403233079247137430562884731102539765790551941662175673186552390605449482415636144278831745971041264948526706637409508327386417619772465123492855681726062590746286044457787296089919257347532895686303593923668643975590775850379814634852245052508690107246593116038633849181713567574262126688366712189828420010964417922791186614724842854309415306701011664446099027194312951136262335175508077349072613562701241857856097995103110339404422369634877649488710090653952246370671058698538717000304178784670531219956714090752486927520586990893719770963723559000689100148180209596774827828486693948112260785968008488231760502678504404400032937286476312992303454048116564564301700294815791371764867376125568707515785336469525284420979482966007462457722604480831361046579121410130053967689582286272098643312619552442466226772295482732873451326737715085867026494281939719025346582363478212520452378984216292674202344222570406758120037177882567934276508542330886314939324588345494915450283043850622805864109631254262046389549625488091296300729272231109436562004319844821875947469636792263841016345598182651505428922656763737345571404474882023016101925062752747950203737347807492478226842689885833263270760188615964991340299259737034790291737975669037472286300925194921719520641077012993236792313561462800297249054357612616652919760855885423469088876207545888584213879011732212490573325589268943023772465424502412395266697895585031091170839160215547051128472517073725037696894831038454760147141732732462968389869334070232844384623440113613795454418311078736587341559664646978683400904223650008215290587828653185971466663220515467054445826450892813644585566766541474287902291284210667991510657850472775564236659542375820920087769658789970813244582373924271941769980250947560459008925404843092761602487910523366381169432048437945645679807603092159741886822825175105270292323901288898818826565454122746291309303222347079626980289843876839904100868781615557489797339477653829714028164609170157409455841530655917927597144577987082245389988863170422084917902512261338244918769337142105846447082556296829023921377208068194568654751906686188209960085264131442578661544630842372287525463347542178186151864034733801909754668643426557514104914453971477031419682905203938938031062741165008669038074424873608173262444997795530938317446105583127022099772615388453166634905079545815404381759346642959933772566667940941177448288461069755382219536738641857460035770904382816247949610140530680618330391460657883373220046379205027568667184280999123505587942817742997174149937809536135310522035173712995009575233167887668121346169333135838222122758132259830342205917922768708237877749442244134503821250600967388668886024092324237004724481118380492411802102584764604603387219829433000249793252786373202216939182481974639119931909041522202074495649579196279521913197124372889365567220307371089359571185386416730846566230638321847442499859356406188838529731121858925483804941232665148014512958463444910699121731853782942027807330615417572588342297856931175789374553285329725244357639246980160397683533002708707259003275544068224185028307898403191796459373346042635486252589053352673440014387056795833967002039475716304908675548628674111296388353712558476188503544024043996489693995438015400249102761767343602812559056844362454668319862969599395807739593716703076533255143857795840277024712520157218787538193820708252980933058667090651359335440883904134533561490057044251770013087744264024207746486026411518516906240111213570183984081908990345207334660761772574440350014818005378294645494532246611151873894768083655762495012898729489231582547362686531254337515843103513434498963177565776373086761699007701443218891133059885294637377164088497418240353451579024166930541463480101860404190014171013300132002048668341616208713356776246246360080387606096973303409031405066485935370088381427361077515293682405339639766178415254345989161162143519527232240423146591070894210614578672085109598786168449537966025296369024336487123906250727071679916097621329945749159521013908135661610070435659719156556433197914922932307904320712702426874532532704842059951134636588124061886824226688531711646151982586113393268757912108107346193493444746025726845348859515435095376167567608601825643893378650205016293839952352324602034647451051564021863369051019020975700319084657999021654393972815250338597226822996543012559319687881878155233447122358121078637325230863916557770966967987592699277574270084317521788811613396529487193518681876698837879222598194049329708902927296956900000617471883713030619331875104515297181243524172362670883260399691416256319765968879437311616328522617177209843047036173688097856070482242193386464372075786909221434513832222377001659095452292273629244044192731449068686611424843955625220464908602646232613653978730352364317643459464642217966016148432526740240739063032276340022183153200753124701488867103495385855593455532839689058050651697463623290226303331440353219682238773231842482184129137762083330891914187381813570971829430727606359827505644246842920347910709104066802901715882388386113272284431140766648637240425178730184190667630479538045585613892146696576850031950733470754606412173986169312989583536324464093022758354813707057073125135528814948358556792995254249211423955459294387056693920388504395575268066061878498365031198290978386661006543400204193734100261355995194259142509173897411593708162913917571820190641955880659183525958422950211618118765197176971603993110093942073321440541821254822205013178242335486250092197973213662175313010150921958422459226179238456559902937733863462040105655122174581573740314484191821502724238101980760471628418356675342259322163891838370484902784909591407238286655384273880045550232917181239704794395306354046056876023165072577825133683709284122974680012372469954558851478404236983330473143120395034596474065809095760146949950647230364563421552838401004046511305004187679037889656814704155267398689955413809201526227586179223566025704823894816232353471961770597472106890013205598681050086586389626861960556870600984193613835446863359734399338731207691787207572573925324314550803895704539684872883207156528732467475621320272654944973124917944149198708706973735345044399768374080780896265920824821920492053150076200291796225382492983412210501108516728468838331600928539614214997762326718656039822767401035922762664596415843436132567532152730869270047129479191564126510413941019269763280189476427954505953061683958753643508840742615639700037166835990159435779942601299166598720884859978819008124745269054875369213982033012461901044581508097228016257261370634404685231929232156300383451179048337892798053105361563388550820966771210730766084060617060773976736780935933086269337279765430017964745476806356437984946161359894711997104883434379935056531619841521037509457691005186311727161188394936517957629870673540791325491508834185885797814127471261217907373317930938599024204451319970683070142715827869292208314711936467909578592238581782475495838614170588607583290653558408419400483627669376553232416103280007710310677217478463568258105153935000462077259757759457669539369156261501011251825336418769535876634444708298360086669921559854240658627340032052117064740283923760519974476161931017420135287463916624601081356750120853299266798010024406168455247443719449364749909528858155445516544840908506629043473182346805073823155939817103322349982367603013652575945757387588354102766710771105837611616256303733652069099394539347835246999841786815933058483590311961057842733640357923409362177635561992512498738312282407242216906515299922693536113900288811765514944071817940229154585824551783910785022994917074318164384117631433002730148266488642283475630902584868941104313898626063195073361991577271570251219349930048523494456931565619677782589704712265179152162168273793456773345858546608521109542908210616041226184752822266029430026396423819386413467399736044613314348852297507421446249773042263547392837450751514742188025032598256268291051983495346828284803873184968269021370120824971380291494942196085401469074922328150177254494397940588447573100818591302184175957577883663938956181782894011638698144132625891699167697910302631709984240709075202496410639492513105031168816816767893715866535801392470520743624443878791737870334745264706998027752823309376724608547112034321848879917391171127575477784958193745192909542533228720322999234740164331175658899529266358761485042655528960642280281773976774503560527061112124743138247983615904933249645614482791160725703318647861736653333523832949616649801313273047052507140159033353648697858417844391148206108771640855573531416579105094644292824979912426259652425498547898074177636045046114031959073600291664426696423579501711782414413876751561344549515126517045455232741923966381643944480727369800481433550638472838452360342086126294398343974425719991959356841767690283819894423504006637563179710239644870827608807169602444830859449014646534827787000109465127122241978378763781164777913814537125832750497765428273895752988778031409730274884117336521008508631395090903469497391016661009706367776945161862810966887918395594715000350228780952592707383602816726311787793777324571493541494831854530275488269043956520646427729234535527606789473183931302548803187977788417486191404582665233783896698146764976484235546739697183857196392868303678970679069107828572871778021623912471922889890344325672632397387822239925996780835363621854523533012379327749056242952040189889190445081995071937209074923531591251734957624759111098926490689638793453988852674647188227039538132442252411411869074058603846476710986627535740624723988261056532321716401085367940604847046218637798604352856516097847836662722814688607498277017809691577199832504610396398731061190452642159403655128200107132442895942882789616300253097902388786103795874418612126129841504629779039793521416375024188980260922986906169305312406770465120666852340427537530862405054234624074818487812326331074959828194008343393144959792749336549880310742523706101127566768700816021786449732400264632145047463738489688042241832971468127906343520185983158307370158797331048859462813392312023199878856407867581242340775303153444864197687047447855598497411087891708563646576302360421982875247197065023684064130869603286136133651299733639071178302304253386402090520335944561097218044095224145131270212685078575776189414051562067737783113766506853419751842646535677780578635364556050292176450111165306520022097420680873145678748112385855133802863022904368427709432782517301426477206129360555983822879804153731476914155417554246246769208713760384861078404650479989009382562406498823693041783075333194327318070392236617073474966881967544102003254136910448575064569597469082868088834623322852082988612048778838399899713370184751356091973884471225166504916400136087041288810705245044970992089619996348422393841430624055865198573421936494483748305063333927339595893326268715139767058617633295998547347198336084209421164248049124838316611127801700483298329639256542962465764824418946439274255104751652632527243926436584389359585980925544508316521195890500403745452486966899877243518318676225425191182732577901205128763477335822924209538484343554089079269254646552657649367057845852295287152477887238453335161598276018503750392415078184387234005113032502697644149035736400354997304198493391806459621820950768830015308917182091095445270091780106615902430083651405270046530522974032611077747179617673389593711711441220398249308623767929523571216018026992577247533933816018409333954416169588483579755540663240607987368202761221619339091951201463103766616009907107958853886350825882247625819845472068616326294202713641864322966870728004357729121144636714791570546727469968300641341411516113265734324894447393019908926873598892634678915807072603955911610927330747968828234928076877759797115160523252487429396354731194957935764339515119383405361453412117264093213808605176070853404364877301859050149148770712246430519528987133232790074174800975007717266335900115887813087403348586365740794192004060518410649438594504072176565638366700813656842630885536072509136810639785993088378140396455120208299010717056828828325075861017282837213410599107433693350480758808378425665754411842297288183535346623638825930821788973207525059176461584514000664318222307214256812588152136272166133157765853828599844612740110462979151158707295114055419543202004821174176965438478072793556478338076553907163762582112977126409698301022464318312080499995936235164866877811465183289596301308753025043330780487033418117619137218836527640350397890740303418411617608182458500662224382144130883294745249881997101277731429370170036603953931275269441331955493906651092435675328610109362735193103042462776874561902473394454525629965241348040990381528047313682366984390784563609427086447691137420798837332148942529388234119833131556567911024012025645046280480850614762594271557451743487670482188709492374280772199697942294504221270201479455162363113440787228040039528071420398579175998280528239547619386725711331016643160426850278596178720447781521112956089699687307068003708419142519868808459428292387549626087671110033189243114962322469716889629917689069286734100797923893691977824130857037970358598364533673734685038574919907888333449244509635650474217661904280347349075393509383609125139976571339501394345012396433138212189344152046332447486973520279443623746818304096423902920160528538825889183449661811196532121122919216202682473905548660477382175504760677449639672588565503279011777489219931540737799376997494021369769814666193956566198345338360624461496188470653050436776625242495665607923682017038938342697340623921822729380676603570618150838674981679450023018613013423939475082618450532913731226187624145481618251164054580238577701286805521436677965635110453052417231463425185014602388133845344061083937493874318665679953955889866511281762128231251063083777665636438788938187150758195411956526814645376497051306807694748269235242238672158085530838228979785748309279585828478617209093536955051479440882267874653761552920469236061841002770594449077618967270868215332983273271273989767129010963282556932683964760403963707950360614382224895116370515397458293797732898686556429787897889470224204333668717675817308995395406230170712476944889233783755515343684333790398058696515454106989523144138138908236076817919127852674047617172176189696480413578048596759943704118521154912318476883797231932432695261719879526810428730766580515747234695933505294840732836808726141662122849471368361928426066982580716033961984627747288526807788288786267268854770605935768504553922861673013871523489086777016162263495303698956216701190082380385470132608682461295018595380467050677276567832616101913713905420097428851339292180344410843118022844840551133507744138281762929999891339650034456990951733020970539824288695075006142556294390682954130675546941008428640317258584883302363625206124246754162876427833286857203711582772288348578512591080013481053720710334534848677988952638680093468378526645560881954774187430405330936540782856971841736578980060536705457969969228826636115531365363084008483351769261769169978949490458091431568859405853485931888006372207956476574232930547647078471605437512200357940902951510008287581033258997626197433348801076329270924782291548261311981065727639825525946927381009163533849465874318688811042707793249305183382119059368300271591913672798280760403714662985250595142152774710137095070799815491930197772113742366764138193704547332501122600697268135479796436741483798425141859048840023109095156983327887177233995019521127194698577876959248057151069669534687967001475040135718525986172902333759556304961942949611530480084612058408273929917032773387509597723152676214471516823748810031455272491860289263197330160023911260445183823500201842266528083375410210923166715435997419734763334946698256411985600768911937321482241106564859592695340510539192630909277263427044183088446534171441905886193280184770802271292753649285547341242696417703856415832931717327153175486627395755205401718220736835260621047358071891201670199101718391514927294843298499319504580037752556110481337847084864942535686054750088333899867255765202472018670040654579602356458752696564976290940022288485798270848503502729717462268736095681954265081912279812000381320747306792122881703272363647337303758588248628112997559070902752770060508412387110737701583625525428979454499109219648120919556840288915779790952015860104453075134106231309382474319230490076172304142679497826578352967054391972164377677909381013889269224127175689801055418174819823546968992744837614708029063886199630721761209794757475548019684152421911065331114289650388018566495322868936910468995193080925148970097377029718785256407949911319201595984963116990775396119537358465203250127661431417452210310486258529987110113460333611301796962510170688135391225530949400597917778385405683808043403356067725197599607613681524712155703296136941070459771970600238768729445986832787348274966706363048511800620467302320816421961883849422917476213450639621166118463886528331774488167501247240849833183267400930150995930097109606587007519085196817561874738903806248678951262215697275761104502173494514569840080437920438117869445296660113765068860896571645349702042769360687482006760696312225415925926876604348267747555806213805643023885425172058541377020225935554572986821925803662673729825931502924294697454146127812296069491571053001410589560994225974518596566622027927745386030910485444753149324301104501474005651349602912249078929971438708058852956225899711816530735883266016335170171821222776066398101327183019279802596827142572722578038190105205756479103062079930979142103420102405115713397611652340153791091311815679939162900101965543235114460489297525752190928901079543183982027506677852636908097202418172737722301183343568828553450463388964889218583799462881377521720813261913114490878151960487499346681905545777057942570373650195499170620755649571288457538235327747155647407771658154304408965839630473780793343651028822013413647902208247888092241003099042280607709985429012355599125233113472089674482479039295110701947321821293528979373734415773368302979986857207175595003118015367790781266697179227701942119142273674484755935226522366997760789611200175000494996135529239965083105069135291772301730751738857141136275056320589038170693141013519854811452105540869980219005969688641993483282686649459164905893554602498527641843319007010734573764856598653773265387016021657282408408575541574383318383338429858159879592844945065056123353220691603787753032151991893765097793961162693282710116535565655166332177461674758437633895265771916944355137793970738930390257121763119010145163179553793089310573377800935477568274170806105230156871928445717800373004770874217654048136910056897934539864896810394031365284727611713003801046571671500704634768293376253315961676654876372109806980641998151187022979723276196041146527114698025369688179058168285522993033094178129958941615577027085527886236127468715997958267226831969530987668661965268614936010298731955255164393717299146936928197436147847195159898841095423407349923671141604581663977991896746221509374087073823344098209225468078070572161192289244652700503947106770576112823186881571397352617611777562822954285262396321841716792486204285474430546229350266357480338946513389782755424556481546542090009392833637758639048831439163858072484319317925990200378484825987773479939074683137930821609566641143547411156806426526137224831918957302238671995251773350027436143961691830220558230919188546255892087644930385510238710206384679660512724908898581815653463589625622089963816006271375247495974808334263355410684433262937462419280418716195055505675778618771010078477619922024393020923083258159811989874350528532693441876543571494957986941167422691864459050103407443930017714435676064333577362169239772145070029453755432634033429267153116490830169829830249815442469544070112060082062395213812352194938154765957349328020513924724939698819553188979177146713477130303990548802659340746207266736936817560382754865419670516561572536255906090256887640621186805406653611007613652761878394534409714913734456079302820534920883853621782124483010953764576023537083904459114404485630419434955475989152711151655663760703376445546795155978001358952693926755451145831504342152454520763243343850391032172149541188997088374674906348608632522069417158261795575555360289126144264479494427232693040815995706905767661822450544475262995615465738302901309019183844104544429750122835708816189270092710004016635323445930946083563022496421644999925279558122101614437889969809495969039923340308963244530232074118792184850287948068642161783689510331625030849114310221453644918766689381954946654097345646409329927607286193607029673783012729229017722578804652996698875137539632897807813388116834819843932148588346475388845119369700806367280212406760509319903652825804634910290797443497046917415425581950918380297327442279801167982301742908027534625711305088156134692352009774374130664703880149899026671076006640929902196624304459888949407097650405855049201736414062410201816104784835677599687023475445295160865209822575376397982600403006296698882039106604603846307076569098124086765926250858923374142557883820951250698410272028853472078696725165714160274299036997928591916395304364836063045350183847204357805891189143598889508250265137617979376286835152189277135579302055448562840179206526817417197762009126506168625666452142495628457834827335458007366514745166618101160877654376685681868573518337457933456173782406218124674207627129666030572259868316491979578319396963991629318085330328523224133124603376722363997066575159438069319134455335507768633722298647394229707246792587998001137206893702796386546710783889569878515975489584609135676978052202984669670685660580210888514477771416057620619437407219083015923734142791907556005870691782610520315748134180712537839022968956275419800192359111173382912195907559335481332945713956093220008468751595235898119781931809423786864726538798421655872828640686875511860865801842029791236045359055866566451589502274037538505872599140125831352484801794344144489694159948967975107298197831955714196613252675552386398029091565704016296204195173606094304172058312176230638824753771486975022437875459782663958935207507357016744335317737629804839908828137487415090427455061268900090838357725372878525460938660962002592639993386046477448137782094967781979426041190585811745647793420329532639669975373445079088667728130636341738922119541042939300214959261785460725912784368482677993902680875724904826003185386145911040402988268910278176373647717562646481162588485602240716294772496439081662132597175162580561126810524100187851046715853355025758668529552606746950218698763604655212303800698718157392886257185395596648448358432932624669152021402128413461439272505780791826110043775232761148299150849774191745059266313060510780469183203647089811197418743344724295187441807122651221917109969872607399674615485303211551534417399212501999484493967950215942418127271583858125789096079789931635254553083505051971980371333399392222549598344627538035725754371385221031089469078558565095158796097255015377960016749758447050264366385747913427633199323006197017189419099987125125725845921739212322924870828941374551827838253373688948000135733347652156199287013554267652625312803585595453367801820890238929722255243980788860127115072487534526056398121954479401896997696559914123282305268913649506602035752081705720620350648394090511412156456915232888877322145447809473316012309330692561218725836920159536676020206027090351137709688826981640781240021989966513993814647620723746309619280696797899719300126917259042303936562576866158336474532859860306383233232082011360062369423255361824788700934943062611822702032410687403929869528223475254139777677354906111047839163947716330559608593274079300959965049302508871158507342510620963738085827380092195666782673568178005292101242590760492031760358761840943167752549869680953974784618957636237978182604118755554905650351861729189780222231288975512669108220205418558106338397927814755004383493835867877949134585925752635672198385881231152062091453533682492885525787748389558657242167212642909731064583491646699208339945843135985701194980317090611496133532003521799527319063660282489405718390567547493629080553611477335429832340732983618568258731001676490061582146137010316413139965023733256668866195437406058528918911583500024235177331948511077756695696397208105475460955426089247228998507389641632023903711554963841141367543765920022944492463694585258306721029339321999321538335536875172744369206248269122949434284830575325762521874576378914167197676716387495984697023405302128793407186590752112689784924585540148256096954576311376581787207317169939949940837703007411162546204476115169115979375334430077897336812276579419611612537135442864063918170696820512940986620090677397146294745709778604139647435451875428541738979354309236850728234079261907251313405423965989510262403006801679529701852109318874225893749113930220588157092648397381421039944043303094210078203099411475172154424080840355034795383021388455565114577933656401961821895431058972074044360688592138861580203032958591481706797805379532276841320494301251864341872888009606376481094927103579718769751325450417513665962703251573657091002563544668854046344235395964500975414624770765474387021406809244964072503085751120579663189089918410483878346100135336437989026525488848018159146487915736859098638217693557898402495625892865856859122668287509178483252996825378050747191420616440618126725153575012365668469878853445603656215221214601942178863109798222768977536050997507776842917916372795934622018791368404534278952770170594964341595243704009395364166849232380611578225591724682040233132076230004300822846409114048047902000744873105248031712636521156577173144048945043146654195974398651201789572407673300558104388338454653186577853294958668248152790602467343455380579793453338461473303537659614815681123089535138744398914340586406567936542076974276562333624649922398538237753840284389363110470660453548632940506686570302562767250609620781431867511068726638176520113783153071632837529875119031586122665291434853789958646351983382217485704065747899272376862754343136535758803381876889619188408495980833108824378972855624890334297473510725057144258929160525465629239640639923898962329614261078830849186344730858664925286186078482305740380659612922260931869838571857869555269652287516562911780006368524138500729325940241473888212281573181961563363527496084484101659740415037492606803368796339940097999541767305937903043319437915187128558174502785405210445912134904397477935435217980292408171282868885767505340727043944165028481900287621784821467579951142246457817578524937341030408536444319702383554830230425931184105157902358307797222438870501434531052024951189385208217796329275568949623561164789081363526271945019527526579672524944282523595359298674251480089805491781949234327891100414962385469720697370475330309365432473762541259204375781144279787856418833452470186419136786919920174562812912167094764464447285432399070985243951801754599231905415562871657723308120180011570017028387902507859833392539992921043168097294708273729600734248598670724673691156009723104832975902253161357596480943565517185421901070375028416356349125291313035446012826478183231881436227245951843987214347906959045756518515430536487254391426554908330730402937546287984555781490396995794607404113292295929461669025480369501520978726411925409178059843143923161252536311879303462821682197302639617791312331150495012959145953805344753687608476024836059108661149887884959852062829173917691394878634067936356041937591417603905232728400395021466812569535587110209578214942185718005692103050530153270462446429645244643406641222071645468955083654619746478884335147911629461379247893611713627512860184985952005662620488603224523405619136339830738307772498718077091699820742856912891973424715895844423166369097818817242183192016095428894134444273116914612661694783696846650643161113712824367247963735208315683958918425656121637304022940597827196451470960918734832666547470694186185483594470414153430235439653195916207393310232725843788566184134736304849580877952924566456269394616134690268870672939693539915473874224554154658243933562289116639227072593771580658752481484434954791381790432993326413424708315300098781527329918034771107248096225844910279942076382483923214181133460796915927561324499631804806712858521923327375141004830950020620741821921517568516551621945150760342950133496728042449427961710237799312208954712875051798162909746941789469981610730584026193133397577543341183414269076394118138287886304749924321098452079446645431664918706356058416199593119263470505156405035819309085729445102572099478153951431211215461372348949819217931069465036422111655212425057033218955883990420137993868885106654534520484040999287308690846335088729825159856204299293652269395433737430840608958429631656338503796404836788403146071649824933658059590951904267118070476767618690443398654268856602426377506539949147384826912801167502344041638476286738015604664672185483891408889735836522102064876812578388109166621133290903010461630427317650412590230846819310012001006973124941591317571856498460952172689707433899894261677159366841820450985356941388865514309388115128932421615762049433463475854845234247178396783505279668292523467498527447032298270351955019485857258851589301251983606924134538017495605830537906219708220157936912853254305529612638951403516425466807709029183497914410152916922080691152400735662725180558205572828219108256647508154944624875725296344316586816816009074287664948212305841091454308454925760898509958820078336059170589903814274480866119897024944502593929232728201152384828737860811352097875652086010663201515972772563275690417106609879691972691553961046301165999937804076033553120481493644999163290139841323409025206486976934479668289805995145961425399393748893557888469869618921787967830517574109387906836085077387578854099544469717703223165972353641025230464201313051951858279333476424797528154852672286363583962343504156578926441435694184700390918743021955732876077178093928784236331245472655125285872930317112188641930429147248733138022613345658311858996597234194228370106922814994038831905754797591264246698336152541181381792442219337226479755498368276237673198172499802344920854419669946446255193278932459264568871774046060676986782144990052772572417029046625337636353608932596151437744089729757703295798292538418177064494667806044065158215228614214391196835440167770868802790344128539900303736444028127942477213225080768525886055093591213371412974976504796182537903475337215307018695027157603232343762297719903163602929787585268872909732833337243248213402588489725562619431803735534607972383139508723622701225173028089178337485886546163954133570247159534799096166030715250105234179184492920872979353277252793504848003911515360994972733980086396165249213161550340568909963675192332050871403458226012887143271269637194354876400131601506988496351036411363844863664011925204541320303105398590704218509563090142066071385279651186738547709694456873031323052728598504663504816603466074832088216255807587575276075338087881938019360993513173553799457938922052860407886612164477190496254702262313236160138167208272296434235595231595237701822138555467802434335235792038907713312232899446829962349413947088059350649378213110465818896618584848821454364556171052112672231437184234219864764784022194710755063176322444200869256434987948712611995955590965754715760266448599731806060991094404574905120313659471288088426692414653544175484486510639590956540642037305228869584269515933271698528879879125015495482529672244529581880498683771264152471227078099907496864407542282375539767177503974092387750775687464418976687899371260656364469638429285504441973769636936386957609216062473328781166846793726700721830626939905634369637302322124392664485062724004259256064532937254987179218866684333422089145228921595316753265617093173639177868174324978894911757106738453651598856930952669753440524974270981956901506061066665202478831115653153110666324170408077642558831658991488071520972545612821128093101128572969426241585082607228065189258082522025131093191969305451951637719368606605514427049511712951485839224258978530291873792045206415340613701649986588756334746173050932184508792846067414883378409636028371861177460052691141656192418256491893310041643025834502754485589699969511125703600201556453980408026568124959893477565392393919805974751201666072690685783333975299921858361752340192103323876255177782135778043096796802754078703558988836372107490956582645558295205550492971508009812127491471050319997055800722106102577908983262609300944953491848260224215411807703328334986670947070772241125914173838445295693613736970414835093711962719434924963488012958832296114647959151222489818071418532562578064712791641749520524124874179994686813164264594285022040352245040984721615061144722976944875672182364203510461570236042613236752606464269665144332458495126106291464632450640655282412348672317232389823307672730547783210107734974908658280381861061179067319004352734540138074685216983644102074410209911811577218858963696438324353149869052856177299280461306490117674996878190958907837317364406443338597455517710512430391423744378274228471950511865041519657619920663405055011609197016421506833351121444636989176318293940282994756889985705931643557124274713489892179837934580943260666963817233446004767401432159808108135882023611657385896788361682868950134838551715610649132809205622206323333961983364060947022778961670404620311255972840383690284265400708514716118850957242883182204773233715013725269461012610755863827076866265087809783250557261255419203123935539538987791953543893550031009156328914453815689490819727212176142701353387556979950502892040511820977495031907201882018780806882875850532842501081756201803166195153949729243077864545483994691545642428373368523807792810474821745828184250096836268447012583336758864394557412373623096271608945347184680306251363533423734793582413167935754956352100545280165490047890520741415495659892661617384960109871220897656446844816298428341720601165091310618757621792552818640097249024716584807324169137796945857737990581028776052533238011385464483400392570149129407673656977199774354359566554865880503435694446292667689784985781160467604959441263803883437057243454456731985138036552995210605456912234380849481964286113830058249714167091014707373182290692866420653770829762938064222208720923510595224241851034762520730373384389804326761178435860919574029507809168147758565408394739049875295637689286411389111356510810442243786717942025524757649482012017448641621546046686046571296677242736570117753501649327922310523356854953053653457918159904333578551857778576784212197190142434943039269410419328599770510000133232522602774002563222713056462524195666895753920510960323668176039527641046919119252100837398467407205517136213771476040340554085930545040313381611432100503152023780605460710327769624791906257238074656131018521859934906793462570924780536812748645472002767429217448440382977710389786602335248570544539711883650293045040221567439207779151330822495409747870232268241668649949486853588656472788155441421401897204737535723408709613294260036243186453036461553320220275805655063829237327756917019059689187120419570914616687158621618687135215771681193071366694806052663051066114699071482383760311987834523176475055742485102863748648715335335789124603022154581987681083178454323536089122962181665664444850896852870483418827640660676016055029851860479005067971001151574605065578799065438529904145656816377424853353881159322294886732010927551380881369957127315097359926292064535581755817971241983379879421747744898028270041700680845937461603945463591581794482078169178792096968983561621011155091158448570152802030662717152424427008750084524014847851666713707915544052152377758435630460071087060446718105386816319888834492982992131066886389246787505202999197348286790972311744426051470055868306518691558631299340527328691915670853354474419098497231720003971675266537577850540726992361042695151245107837325484742590873968123071714626551571665303321635749762058223844634991169238960356706640453777560743386881826665124815242483847977747788442725466082908191742436395172158268448241277133679396634871945439697727302364038336178297278217466181516808605012442337192306601191578578077929426655370647558381629861898009102716237334007469585687757812972123785011234729482029189065383528325905639944336852170929747755352792923956909247720489557117338747538270358696300643356630370349931124728244664425373520439867378494948258524960285908622156578900005626289800313496153409451941296706437291633485185226027405854080407585694622169387811141433967231898504300463203249534620170413083363510616303102607599839673356637929415638884274132608413217996938047862801908385560934289410646329990550986278527456473203259563585293900075264876033068690234428627826168730954836178444529167768447997899476782575405069893453675963244020033675815142285851373917879079698942864926677186336992471036866098258160724946097073295892599787521284028491295566678661312329192388742778179228084370266850967058722848902228270095548736848675665119889831458668767793049351379080073194682717820349805780294941836501022761935609279538408799034874184632281238797413399621490042185897736908018081993957696493045437430465645995942147817987140618075668194313841368863956196867852516115787352367137327520882241338913335154197915696397678136453554731522679262726589641961180258633158152393767697238644647357775122394155506444540768646997276269505010196790367291948225009622175153711391274136627742185136928491931161675882719145808588968994805897135188621112098747249805299363227903012373381352976135258038887986599712918678448025060620626028988599264995455416682345458346741961611008364042394474927157369119959142085245612544701294502365862326409752041476215719215109422745452592673971863255659476877982321192067310040352028945263078716561943310741278445299931424834786471776087011125388069520034710398289805500779352735505765491662599007912628356360041233886880058057331266793354407074691433188656029178501954976113035940048947407369522458596399818083289842057382667929311261216897385402247967076282060489027848476333726181165984169662868034876730324587335148067697545588186600847264769036048981523852438550114465956786113621366820198987206646151151299645333118330798373682628240308478801109356886666655646775319646274743878017334588282484879415479188644947719680382281414080145108696297094704566267217916590943332136428176558562915776439308492161453485594076760046098121300327930088661985309613969187747155743398812074197759189338454449147289778515008528738064713463446819878862707282999110221976998784833535743297239202675360091373046685914537008822912958236215489932773740442818579652430375055400848461558264201046964735969244116736080725587079967921941692660554791431904348328397777286901766324660470447409989576982754881835655931080832775845269928631986547343557855553170778028741450671260956928401099301120382435458660695528416787484259981496316252130978356486819303260683329238679496129793499455862292080437937287370484294363736667782266094553712537745916100165067987624885382871350836292511115422820624890945904761170757787257529286252653104853915056785098900183382689206153164142484123447518886910224015350120058128053625533649272095611723455080966463018942905275327658342499386696407505668216490834259396349439010001463308527851267084731056926756948178347167351170754272980977616066182476484006465329699152827604322066471977060589964684439992744932138023920757926347932958202371096851309839544392888567176290966121243687801745015631881674142769006312882013482949144410767363151494925386218835491813693507524783769145923144194937912427878637471053014807947881469362321449164034637684244085613842034854875176739418764849558722282099118928476229464006942732754186636468972774895267792414560793473976968350774304615359924668996929276902073551944292067889549068585465529856767552043165781242900676055223417516942836646188542466644528801478934150603343287067800702555492083135588575061260217670144482729871573621841433375925864153085318371168639989035421034174015025494184887404287045111128021701362782760454008462597438640618628902420550449243553558203593968527294946821446689048265752893246922174313557402507169894927600988690838622556368920395260061231861367410044162934314681035550889165784822265127386658056575402687737769399510660209151836919463547653912410307850255035288242038394197702933938910173408731737526783272760684158941957211606566885874201260379447714612738005480322173139299931730474349546339908844054416241456932113291197726857266355979147812073841486513146249221228775857899797636347689307372931550398882198775902441620119050832798576243209147521284547313742531029859103937908506102048353286608058290688027977142209891722918145882259315402639143197708135488610888151923897221426835145380138907227876618921449846103816665358964217032681300821464794582784970780740653494974497856478731755099588203754605990556458515558146913451213970678626582128440763987228955672124713219962117271338853340959673344969218776594689955359652224162693878735901107977806865741428914721792986956532629660538092409871739844338721764206486503710371664651151604060296652146873560343810146723790013237842118715178454505215118226897564494721008954213943077208036243507969505522697578546136566292278628537810769336698082239575327062158266163887498345498495347320283301783586412325240727620170176209970590066052807190415748565263780282296478922793035809763423735848523414049761027819996275745791209184544279624796059261916972969237537697314844355286332736652416506820677075261350342160690604970561483525959010875896753674925782092733145882051114826624993866758123765311993350954334762591455865877829043728960183337826188677445741321509626166292022526252910943511780569528216819246392272328594398431999016405145154734121566652916754092079118427413585629620520017210959769273614599822818569074800765926403986935180084103220718838277144522186232880227509798550050295858578361361510177739684866177421608838210660089722561712781684091316738542984099006354145325616986131152038754369251969718601720179974733800413903323960208402965532471093409209771461423275947323847066584920636632964941133183542010199484888557814897491410627968592263929723136027301187192477905270868692817454761712704731169386726342067090393526041966083826543833708829106315134389080702280716718173828024419234705518349206046772983890807132077202203398889196886448627248321141260030638854893834708638631153722424976386497309799360180347602568503240288200689457667958659994651261702865862699353792483877368627262792885324061496651619530387568133710030305949658574530247727277612991581933136996659890101289707454439907971615179658008088954748404219339936407679431845428648748660127937039874728127311729787630567852306696778889560204325216404784293906320670523514149572198636121324362371272256792343562704394295506240539483499182907316958694636816325436669656231260375433057860545061720615956535443295235306808197906277583562553553362543317049594295707474449089272310574060400236936649819776075875894860172891716395137997954948364518535385310093497525627564632234120172445552921923146621249184870954053219874689812818879197005074191794376034729563031343771119039355099377440580005053072960422004982954581273039315712954046635862414115926963264571297663402053796138752193420208830997597544236859282494783393878165163605855655537151111922486607868025737633648629471017658637002474804495417316140376142243797068853323355343620902469552307379922656616268826538261167844668291552363885537118139670531660379771642278229332284594117458311194379171029961300825159310989804125581867017365418908267886827133499416949342389276029406967833608462329046848421417075625484746052385980922618589760872292147429213434015480685112704991791997691563618596142185294067801134720169380243410758654301651927472001759938289217332531817535518916043395599167088018173155718834985452569377740995610507636140864673106955616070962217160720436364423029715091131518257615516998183757953698499886962010431971469190983253716467800987278643363776973341449371341631224928219058040148739872415731030879139116733208250536543845488147500133818162925739482245229481478443811466827880706578912875150250944475044746473499351493160823722484214212850968033823938712946910907367376116719993738666781828635858659394188300066751200491922131525825688257820102639800430261368784849577269848953579604643318835125835509738331826090581719890913592270590207715751404358784884838062800690828459930073705154941728447153102113293176241215374736315033925313740967133324855004347524236685523654438510387347111153156285190739090274515447177349959625282397456131633119359009039453328357092356730039798261253952160436954725650177453846305350673061474174737803584285717959220722918419649811788191321049146522228435077434440153874060763238441960476495545932033896538069677785500528260773411417305647672231908120600700958196852284774517547612087902201068035317334928502211228166998763074941005008703501091778985751969672757017213028934834914224185661677121157589434938272381173037467045590034579783721814865769372469576957447132220236290456077041188595138705307024982815484837577068723497460035472250117201312659784855408240965095829132178448046331560145028681538271081321274652295926816638356215476755038783321369502878310899574723329823796096549199422075091454354645433656302328010217913667127037488471629267913025076701770533809703435473101962923579912820330710842238233222649420663592342514747894518337365703063483381686027658943855013172062480609583997255327077161912570219997336559659800645302035751639425003571505796787336006519086133878843403577778246134284931677818868406720358594825981249175098542034595177616904942116160023701246613379687639002264359094363418415387197042202358447149755119520326395646254663301512627501925489432322187293696737827871641774910632293326130645215064229358380524153424997220257052068932230791308922616260531732539019621288311551489638481057790042467425903277434794831730963553070024290701975147106137186560287418007609906942657404737749865127456318904407966513370178088528835214312166588785185038651370950090736993216305156832051161820876242231814447309326982849200630440886977257384266047240238132368647161686570874155053160855790941102148339478735531150912799625163227230911347173904623804820404252824500649722395235304147947133410120588666957516245796468665132845220609787642813653475564811400967518989451572793953474631209190966672362068938974916730049982406545254807520590646537638187291566617005050434645102246404909888729002911215981567810078011719166211357353470399379116072168696797585797844203105631246143708941593792565910206228317491169910504585519363364540670329285532913254974126469718336073409630454659486118264549306253171571239114933902331967191776236570747840972189445069743977844087433422151532126345361681593429174020413501301299088882373777786388196215036858742933628477354996301508615553172744809351868228288331062351862503201573676974543945636538173915041727803208396957543646271510012342199365321334424679591865058919323130338525091409428191059167053729873718314695423817376696840522246632480140680612276707093352180388785313596442802222918067856092024214448943158932369680086430823192382504384223313003277187572001598485976286062718906394871507795025620763357599369987601018228661157115803776635434049532196398859539957222906456242653390891371172333333272660723082882516718200259022704174166823541667240553587281589886146951029230985072826000769577496991689624041276154646016659224579107513664380086566040336523674433933277347574019886702243004248084393477706263531173541272673252194236233955062898664345235023307044623883374598888735168408821545071425487833563793465604917207569779445423122901272030893234340293256873376548932251755782635340654028001057535302535238037019625595889690358139134866162935284067831302861465101333861880988172593519158140294573977913322776624393676756578887615946749840354321098933139439246156758793811334699709187092758600169360549044312030614797990209587475809278325359976187473444322112435096484578875429491020865015214081803140916777645982016213392634209062446479252308720733354918970624285775752612502134840041812121202731408510716886198420589387492451731328770459397757362962740116571475104856889713933735417155843842265864940501199546087726082485554807316784247213690234190287594395809469373342582824722743125290043638158894546089567499512790140798832335361204410198846739326328591578658780562254382418445578600380825639751946365567051312655322008207825348270361263172067470761135824196762773690015346049764538164025550274989568799570571382895095410168207044634304354631320647070756650292690002661271663410432455066467492680165759161259735454110221092880138326178709175283756803654841845723932648635826541040555270953054896511082781288956844481749255124917909614830441657562007248666598157117168506074240661116723140210618879474846402964963925656439690231715272905234251476303470345770063032404111297596234734532938141689002393025697945472744531020424843534073389203202370114696012264055008940245372435274820641087196658615197928581943376336055762695995453960962940031585422194477115672946284793861360452005821348488040748940148164480006385564300699796854695457076134471352702873297609927791119436668979299083657964565473447562943889698791014531488404574331911184220427703058717130325540458093921687725497800447058144109753952890088720104416930396638402919935581084859655540060580130454917444768287432217721872910766898814364610239128266501869335735718702553631647807592324023853514420239829911969132641191834409232608216354672743596158004564079060668390347768555863741730122808537101602366230366892214983040654595986940286952898731607032579593813242331976098903903558239512682382739816014158792422178450856038765314682403442384055522889436258894505499033796265806573610328239295402678721387784827006002531124404189626051256180348251037855601256962363366074778211516902896996209789424693927771082142120933831493404192738096089091924174082358227357038201094751032710902163444707086791950615342036407115624341850460309454966818912239015904606484302175507553002985875808892940384940832139053360083606245725432750606663106412007661013495965227389026893748048322787256502716961183295907345178384734973930367165699272838479528305129159188949928455716622640643733184943023583665190531706916771642239336252592159561489953126612458514251860246220777620839390616555894465039907897183454912241632354662673889277812398575821080270408445769236505169234760549897421754189891738478450951721906949597083706484129712940381564255679896103100712291488253474687475666846583761328672431905538732707881919138208381284210418521856657734398554164366602647709875851625673270651247660718712688622563807693961811898564725394836525703842662332335140276858995917666335456040607368010520051365602722810250084741945251591395858881714044458289421825533782150114057241282745314187448842684187583537212371376286412379771743000398625108530439962442540142183425971629895708881999173950710989412463919131328481077697372090833585275502762340975248214522566585189056018958060834137198851493080696320154301305026967571760067434356819700914486488391199101400309170895621765349104980913864165480092322245844548550662957690508336542286584094809799505267974744896199330001734378534196128592993408769599507383942011692183250050387413819503137333569797835614328763176436681380919791703490455249982407470637159079274995110905682076819326579105775144628399993759338341375574058022479952615398509137262621472938849501601338009436574683999841595933802637256721592457962901405249830839007543181433553131905822147201791454141389217308008802698090459094782038245073399102950123713591785480459301969589670505495874399568869694041112946887748509799279833376762088930401684183215249877820740520968930820282269693219894737731954840857023417230035447842364744187749543749590631785097600127088440951922669866322127681132284182450622368654383538279294687949083233190114877228317592650709095750375618316084753799948010886465014113367539024448820274239963033662077352473733855176175604123628185108796053230341389288074088058266729013131245639126415759932214075784202875125023451769035211979703615835986131024040502088308699263325364766440631902116502589433903602868077205732149978553289696776779222048177218228872485595540948853862634545399975490334829731392238231528767230990730322936346668442308961361064235465898190978111269494267985554665748234889041324478265990550317530635787661892422478233835086318382214758029454827955247642185457552321231445082636024156668244192667447131268459013176697019722415406387237806231131119795088824380186848314285780523982944193195244643037455193830119852888377857671178303659431723100923044755547786197449014492102210186524383957298174324826192962928727041251614680453368260463513749079239064845792127433128293222317201230112499188779252871382527781120699584412804213227026600718126060238905260557362148629195531177914753192366661562962626125158219045283790808569175626834802380866644302961065173954449634767465492040640364838101304519730889589908731823329001400046920802135141807465244297557892209349187389693812900035137098461944894560721090978422292504358256638640571996255126573597128596696656044960855820553685119953789030748388763606945708930703758362515186501909815778427737444681519655807254162906992139236585594018896773493500288710544452450203684877819667799929557177750220512883001061678682805509926714180794495885162507506164198889096302932891174914241142160613953651489179211689388376288612039091029870530546662672258376705808643368174978085652085456078124806858405842430352021200239710537821885641216185579468440693837351031174898787693543210966768714405838361045770534145323335385231483505122445581203856689673403308692260901456299468470384473871979861295507880340345148974921155414679541306155279455262186375460163474328603150013489589080227746003807396158966250121828968007675526115548718029216178116999242164761956607761178229604974967442565297494507881581259081467318307689937002644467469249524031986639450958135294985945889419863629062502778139080179679038683242287583178510663783274997666164828711461254030493418360133772188402113214518150701603311467598109768772360801062314833723155084616817658206688403503863667992269523067020185528272347552744461416662814962382583791954893230115728428617132962999793323085465708276069002064599164066930085664846768297517177099485812428018901079165077459226949248121730001961042467847959252047476485245405265975261528962486672962384004697799832011870021476307696153555339137679432358356923307402534986112604223882916698644880458699427834767906162234242874218535961101245638819699581817067066560764315509980387928748133226605289339823882862144863679407187582527349404922201142644742959990397131543487190068404013601903436558912006962321490285092839018159021954236354069831776520679851487779458519606752179767709046449107795563316805758091816854562431626363114184942577289950269902711479140099048446362361202384734345855911414804643522399155090482947395314637244957854503749472471623390913405975111338299658552541311886987222483440418830114635177828938686157238808517292403069479799510750883279213078427286184138559286174318459126892588918367817023866406850659559731687101630908214253484117575126559573524912234841472258533680417934349213082566939109059036438771717117427394419194417694318605411647281286524158548211717010680157850797464714771663127852361395898448521265664110036093748239057659630749283328570310899752388344870320669241220839226257569572185726560680375789321849494024011388790340685061397037697982536130706752833664401131199246205211828127902866171500073755540465402374759919614646300067276737782180918529955762515046986618513183374341340229733946282623107501819650565691137711826561616805315570785135465151955501132682926947686719340244935548204120853435794878601109452134340208225043932612198642543799181336172818651914181177878365791093205678743317075537819055155077632844105867829113000735574885803392120207004597622758989125801215219268045989013425496569384826773715542007437862348542894885073043847186363959417857198238097586765641580813417776766091477352536602903516178298542384158513023087943377160067222878019062173897527140687126996960435082160044947374693666379847501612609324447448865356880357981352194396118931152791472189604717423793128426530848936811184965485315619562222504158621059756767411565116286905645258113912736344013763862380785636193988781284360666134385905180348786194055725671889392969187248383910648458424769571009316579591218064870107409043565383406544969104490082256212884174115548871149054196202093558305299521411249398225202641568429753628470659212004040093198900543470472612699338285089284699362347603015104870255444648844633335187518369316634817480409352623767693448390835236399322689303440328390336337743677022044455287984375171426187030221124165120585216095374751007662759510797268892707755520187547145343136436685582659798110740352595945793576040174250236015989300927044122203513478881034541057489262966637625682293230364413576255884803856595841473664785527988944058204633517528089757006878066097165104133554038322060737747935561784991667639619541616150513251948652238363686805356893260184911087755654064169668834752558500536525300541186490015514764090041394116269310091361934119147304537852120482065493465833995776035898638592238636687964790255335715141608898711334032692012742440191145426890543073588920255905918157833556331886301631105172470654408469416428311740475151685305843924563461474140172658829912682097591963644042421860652012673773412900095631449784383055763520482150283554523611573207019356591343044045558344449137964587718833454204236886737763030582920965234248698421541630450513950659868712310832010008959211388878339834358637766999642114280376870282073125429766120948330291904961175801384637873067586505427916846739714885530496115132596530326175685514661990865852065060319326859901410837988441409243033554766540426858677037635217992681958085984252090609029234125576468941887625927668930566793561620676498814989037870040497275848252095379521028842447265050986358505832257107159492302707599609978374885254150911011232744147136806694110795949404559967563784777149595661869738007975625423021849365971257523003633986866230783999432572155738846746335552175900633423436743635316776120268575331071628911971258308640143910226626177264343604880910103752599005759223883707996219106914278782865151332166891942819109064719102990840946361587762466149241260338913231695730484373009754840651248715427075329056260402263474625914619055894223628397553672338543891623698360736336771265963491676570196743061766941689845878451959801513405995602172050919672284417606596484591800101576308196115118410359598384183304604693688439591697072730274079565072654487122703431855518872203932705238878609252578983872029554968758638255579048308732359031117664520409160996928364910081388287867560985879637325138567198906571426052852435990716814867575659659902565474442225180223745909739096587644260449356812322206335309190929468516406631866609951643200826316626368587368684706267646286213233671634805119487954864613923586046076679304559345024366368301377900165530577853969563268485164325819654442989079365914014500239648484994070732803862063115018510002696131775814703489263426473823468475497729234727495061424566675680575934761296392644909993473477285910920807720789474422002143713203175769937178737365438118221263041855770225011147752509636440743331038266908183050541146843520724188091867250166693603794474012475104891434971332385653507887012265780182818284571249073807514356679491192210334327437693216042719943835039880185389941904600863757202329165408459473334291960943442530583074322135752300930793784989472139504616951387837566033084265813892000006664822420931961218775274136633157202648178008745700377250171297032707847670352966011373578337963638749829117357169857653517483662969600349337782858342341561853184403379742181101933095438628380575558490828421802303005628829909781450133627835744599599193474875737739613872348258759453781406738341638611003079833495208598188362364728450389304213600640973534195819358493043460871909279490877523994692276245199742916129470537326897760739544971394585423376501293993281205607821034346059121813298487928263610952892304069316763840604937699258772783483446648491916899361015350688086017151618730168484547543464380315965720530526176913521275049518052473677901942047079203347089021692693553023257196604915592369629174937340688684185985177156425452563972763039340122973425787264813731238057063698352946662897178915987670094253112663085280329203485379943033499847886486920874803538450450626556586783366709273963606666585986484302214536197507619479090048860220589147526481204470750914073053373281233330640033764686099336766400021353833886067895823632875769878534002500851366706875398886028348380709967092754276532018783252395836496880080785703416734079372140055414383262972336690799062595365831315979893467303750968954572652016601546442317304720719564460219583939445978678390579870143861599114869343263721561341260900092733774560563836707512196310604759086486069629143638793430439204528661230120857321549120170746053935583009723941144206993259411361443622770652338220182664062900852095820730652653269315549919823975536388349548634243778605172001192625787807696261873551334648403206926983407477453450131725633635300803536677757213691156993871375204998599365983208838961757419399938782678306186642342386892149603127764548917701774193502829046796578556703088030252560346055113882486040372508564455191094248927990518524878511784049155422875189093255321277967511522383334497024578911267025869272709767980495856325842201228407299401908206999202297771828659938713931771989550527305074845312955416301230621670425446615509784242820887871808473106835331307095961645656693870674374411110394530507745777421300082374861233621915309894144627022517686175403261033054577400656116292389671490493191908830571198672034589615148677258942637138891947521260711613568121610410743690099934395583110984055858777677470665850378281440923522155414268468716431960195927222653729901691402094271711561979087613147900331453788844554193619691742283636699838695312585760481876368591657911058656358301223736900710591022225485691202379898390954103501984546046913487870161992853728572729083871097385922353326163685746041621512130198773214524433932598670315861128341823268845338021828525352867408571000726139738782107832942883948885298481333607660885631776484238522175833857950327775552238916562540121987587062397854776755591732381340616535667201979551407790722248081415151689151484048828002702757154221849310251255927873699102166981613496322165842739000438108725932841890361988490235517697580244970468145124437707468790799550451736726851906199439217324900310230398696112683110462421657886173666407826736524942528000174814998078420298917317622867021469293766356763161633480074948380485543951936696002525054550070022694524824041453201062519449190398759059242572544011791544137351731439313029049428340463701390580053349602450531314324408671985152979071605459150136618043618370889786560636268203931929381419248548708676078347112682047630293263572596007862474913671483295402304279096812274457217170031458210481192198959445860812686905543904285534494088103595478143817403531599818487393968740665113050673298713702976565435402408788058833281126994806464208616407508289856578256543121376638943641737362341425379067072799172942658825630438349070391513068732236500297778870616975050060533065721727618195984693860409977176870506112704802273464217130886368070346801684236617478556725404612715615430586004182960228106406427804405642655211444925231514730660936530482182337107683463738791571111699539952124039346909834356008956091054819962455954427270993833623747078559672171286065000884207899387141520542581945186679811500937733110145443697631199939312369281308818345482825627327565301156210323060394226141800384412504772002631283287418249071261692691728466373420805665888837616368608849139819472016817733860356685857448065778539353721316172905610484367942378731249992254195323650318895635263845217092897637346011104884625040931430877550152359142788135522861976535334340884468905227505404605932706914996507394369278919233219437708396794164637060002762495121047845300130624418101881769826046144757389020789102673946029054193534130737256626642733588913183749927519320393863233482192007895319577088777948788639142890785775662288823406174982539286348034729957604747567040192055367302804775350792237972999948665933841302186049385101068630629916228018248880647010855013669589910615695712146016405915572187282104809754161803312458963338770778762779404654637446220016147030514662458953487705348672422142727503110719613034058748191087681501983436269524493320825310217027416313342689771630970494783317856886944603193318941738832282506480831324612098957405542432022471159643333991911297217602897108407312167144779683514443140823225939397789875535872297421729025519971575066288165229427686401641603411305634592299050337587240580968785142050188270840502709214582869984429605761161834227067743306635488636984207908339935872779961346464284228964341335384907676241596559727617746921191938784075049657291890383583645184474344558400242319792957311463305964103782634376956384222422545403180745506309878985318948927691826878080194712309267251823536116154308900569548377220615095017639561071856879619830553461983842230087081471240972199681460092368300091640746528930197215801826036122673928778170576090782437504809936768280743816313418744883975592763965652369184944772585039452357891197350966441855101973107084929292478428134840293176098856023953872346547648729697142486153004113848035275360249016279968063544134737238136135047264539063160304739204229109670583358804920263333069437641559469449716360817632696731090108301153736919599784679976456219507941825772547477141820589574302831954970008754218376222428142434935473884498272892146760777453555484274250345638747128918489489976119346935413432666372911968220187844848191529725230901273918668259959316115949401751708663209277602473363834194233210134462364650739578911452653453925135495003954845559369689488907593631188419255214304041648794140445821171927086931725539753722575207735601347144324510586557338708636931404179327460795130746548435301710122014573340962859062765920026303272191693253665768744635266043649047604563015083407411857529245909684967669657518285758187250759486676913224676004706384590155880675544099938851468962763929775354732504750980573183022285462459731807625776612739961750297981353509949360134248015911926970071298491995942905248875095134320924336345056219758164746988292465853438428179184196746722127140557228660694556583725214214529530117504507976145468986387615125690658483770494698555043505950234474796872165665904380241485512777599015552663695685086505837130931105800841410919550106417907061081591902660608976054930096421004127395278538673060609840284683513791546176053221449484226372542132375728515580757032467268512014300348013281387791080689472257171573290080933293455095972030525484763038373346595655987346876422596660490942414620885789505447232970873759038769557789213538421845768647926305064808451104759814863535425469123295998295168218728568052450552511508549601727675468612723596010088484409657203453235720240596315597279146669432448392347562258088347116439600608555449028175492516359211741014135190228486936231746726936974522957989993895207276336451640041668427092029486909635721214548572084474203956230202092534484185117677979279201620321759311616344910727570439557507271978955692385565098974760466319914192146426567756012350736657938327286763613761698605265674712024622479394775667838984637962010929671568284858041715085584165047396488322989826906229808945012345933315943405059822711300873737264100174007509474972424507504673784796305520413351807861265344766258443242424380186753840412441178198760767380935393591530859344067046933827597685050197264162448012950863235652219684245916439495582950208590074499057632744263728663885337127238950281668941136909350829023453059729778710731488066432396003926431649014167224524054448892998141082929821381206495627833602708558933272952155976439728218424505171446446360574587743921974628081076387079537407620766494529469117015355275867015145488580872617391716882650209227130481846121217077009123990709537743181859115142936472457194673061945413434997777426658534149022816620971731448807118217244406801220479553144170520655670934052865064432326324933665099357332145130942882524275199025891182173233917221081178707062161554034655675790622227220299498201787335757834317921780366730338737153157222036359172192494044271699592685506825177784615774613803009678985126980232155330724852043402391126191785300323105608014155696352035149121522466331585580851526194948308899073006730517885875648156690803151797962566735979544738651438552623888395545924808577948699703791866508830898650595659077915041180035160886928674383074399758682965592866919610165541922558555096039462144951031602908034955980727503467040165804629769305176627765177223994846894317554728610664434387151277682704281402063073107258008158407164206990727712345071350550594826712401392841561676979399778960536161452062295012379897482792729398382429182787525618133204188623714776524489067215432057842461306654764692401602978230046715762501011877300208550024607627766616784253431352623635258058366332490697110987751170602567945473534741679516747861255892107750516644985935205818734650080566922130902957425765560109004808311255780514931020112043873926538028562965746263654886796856427734471185377549715113540012916128286220809740434969118807462360632956636568404543639329711120495487030655971833982346618897224229829230822469792935942661517254089720046716280893525829867137557250098927707402637940598513140984121714195300817392504106440913100115556110979763247482196565237572335943473721336245179015038237603115611236437791288816461456030710959222167085171861585007704275542883614986410532949014208324943259907061093158793487187254936986016951660517026587672339853153202252902733350091648848280872440247655196444588853111611344811076296913467695698110843012270602431519869686853789086325110678566502262529783762421055771529792874284891858238637873790193264988869888172186150383440265374979825518490492533354010014938495059193923827891116245113723708268583093386303711568870321404069556127748268811907068286976648100894471856275839784534408259882054086124411039328866564175383911024576050979590404943333608959767889192957344418069650798207362552208564488036060847540271213130714294468826319558439629743532526223475659372371820687430787260847149610710642820961258646238249593376484687559602433198701972497711377306889837289789381726203045859467605117144830862997330545193930755239862871920489836396905279991015505066626765679726022219156977811727750294102349094255397052543303948041713056232299610379891111764732221180095016013916827894009673662218678803413438948332141459977574893936482470397625740106407518479786407446158420135370099639566455232302649346716443136376231712185704316367798327474579503607969149250986912402021396281205472921221716806248777613005325411490708954400880387337697968077442100133307980352976267170558759061712736009547377397707098031130664473974061410970453521844558952419886801943379344153059367630739332785764999341768148358635573810838258571867785464739377316833020428348835369976382127721332312619210483092981123968855691690678615341140264679715623222220336036001012200088895831003407722762789717701063072713757122636542198070155254065547745908325355680148528724670176030686890777163513649351046676966677381738061924814841981035880625266087868022835928781490635627367467269987847987658440072720668865653377492354283061513098505281249752336010504809183123655876941149697280555332638404668619622214214916655342040389980802006429142566094107215973800373287495455376576982852684437965309338474033803182260910878325019885557594167446815139657376866290133628119275086960388549834683665102543384524826010797988828310298061170849911555698828396088588038808035786378353554500358099565584921321156495065730788383809656832163910674578821861322221225652019142851460204197453649559841979150561922386135904227120001610922395689077895251213540528605759560852336030253425435573587593045957302139716523823092007785618552577546819784462509939666200342094814022963221326600953169162704887688706400302996584239828462543181804956490264988786761090602561418638238427239164990637511199291657631072519024726766616460256127409708591881004794523459346532478302940706182257413265031373582177594729494619425463394634879142967255118417523660235441729994631542614855906674183072764449202914314424264443719447991367746926961044093642256283945775664703969200007722319581913717891308801082499813609884114861075669335315173277084673463276904844772457894538847422131468731408678913612362056380384916455555212205553545009669715806865533098197098010185892346853400638766970158035631737926168603932106167866389344161843572345889943532380539097308401269456259776143079457643950389554910398274530104335818651918457254960175476711742502638365937792591114849740601650735545881299202899130136053352973395097490317754610408608267917431227704411590984794155102974377031803230252291763314689263984447564762396182549649495860722298389303554713711524832848989518109044242821720898368844089359937015699214011472033532298779784737905552230099829755618921444039153956962581707372996140902484752903275129362703343560022379752393367259479397655799845340327546506045970973792928086561610422500741421957683145408139386261484419735278812337489524193988653470873383505605479233706537076648918006431292647127253159760749938806809258514552570393251742326946423709837921625925462970489855083793186066634061743486166808035399763119047840780831099429543530547046094644769933655187738045686576765845674035331552491228839341573458165781623141412513719057695594572468007284814469480379360924253588764517649475408989792088824528119237257708139794897608654097027215080112859550290955354647532674041660390368396627976960055391766255964688992679385173493717085162136623197035323107173263945239306835363747863175825924613903890973447835430876913295029898819666915808717628636463201330754441280960354474255304032901875354981593824566981800546223596655233012197516126406735089245992440630007499546106522827748454197058228802762078039542413074948869950849992817760431455642265987786998031239503838991598998251445885087649268824487837589655572417684848770911818017681455551004639830236992179164834972449308008833902539712569665828857586818281571729603840989382056728430107514313032716332836131620867093936281805986665595708672472272336620387829755595704755333958533459529178126854410334589589944876115456547219146309267361885285804834527265539786658852365599283013032417640485635021005048355929775832578313841958269598123865767240836766993222872313477071919471179680295240485154305179018007944340157559714194041273256566131623751527101889577168268383790359828071249833826433154844451885138125521125764419083688058809756709226220458774505233328771558865665837395079906271202721598802650295690250478561957385000680444711858762102970059413211999746780564974943687259613230508974754404388078593552048968862512565173471379353718532993655453068407130244150139682580652676007916418123512762516143637393694150798720399523361728802660258752405098689692629452575060057933952633992173583715164053605869170974423168995760337682847712140363760504672766351166508345359288736802301537964732593804500899832220230048149944486048727468111133006238515763703177553420416821669552990145705650819757669025977079315856063217025065962670641946909638007126613288006785185982112810019956108702323722648635700669109445198107560082827283888175791522118553615275440603177848893674436638638506454808103542418617636506394044989863980152402491336283384491781461701771281532737676110772147323447584448283584974123548525682499108698675400482114547087767540963708807395489104596639452803561528051538185245986722542447396912048009064730822024490366284228298964193456972116393836893261585655189068121749100188169982038226353230519338790098732858562864847749839963755925832042520761372182998465625864173378255336825026030794439267717523756561793994449430926694698440516314000813803245002963321609301036211741767259941780243038149981708805791618072511443158582677091427882758947321569011601461882441045251894205160430989492989598712344504584778364831576962333702135867888961238209476496790929981054179571351715371115797118219100280080115617596908376815531930542890718985307015268671053890792938322216170636692351729023276569062734700202321734910794367923605876488489961462374173562923957172411891847359370038679634297925133854740413634461752189124238024461614754871745097232480948123374510309816944264315634589116044300861338136341227092716723388911227221647709880847443976620159989126457428338050045480291570776479657607956372519269059692821800332721064882475358749267779357829121083207769211273326010927618540176850753177111868319331494178480593440386703716440459868158726632458894848136711565913684916927488697986896231128904037024767156324598512921030576793146470621008618026035508726027623002341986521359281030063510713463688167943658058999205167660926829516305466934604401698356376730617082783255368857312404161195334291525488409216089396044300374139667603945152318244590231074492265338584942884767646001471782734825197637535616980745134107817550010304963973554437200657910714355377442734074858115562733130490330693285152502882983941450633775266470277635646426526580538269578720436795439616750601157255763482211368326155551347963626824750310635315128819461770449978912990818753446807260577650955048290860538229204271878691142545869831422037837312115854061894452014698798769089249002726009459112131076566734235635341383777536408104822565655166394883944682776451634103552696312606756731119663423628251011494206449375430410588358525722760719786191565816074584959273706480947801349737679375012871846810856588412791360541993096505461499119305682180819932106470909327242303361601421019611744965712782318016895680242415002823853856498134134218070726312732238662581693223977038759250931906295772419127403256027872569333019468987249835709700207006472058363970578856229140600143000060738388068553718971598925007903234275273930023054178377977005530426198715187506133730613105483706436807005843293552199740932020485800229347110431313477285559883163048467276903455712702290277230198432684361367061330360946653938060552475533446286827924255111918283499449192765899933213449341794135405156863950535692841881971300581995734487736344876211107149990554430871940756345981044503916339004582020296754210405105747294348849955350454123067579086000812079528824242113157243118398556010242624911231575791937804468491295680439367860959070402879198870217263252974713969485427322382714775048690101219064511567934424483883609169521155235351424116423566931661826980394180020798550887933831182216691781338831225335403990686421687702797254357426591051760325847468819281681594624124766763756165401092853703379439704577443373099642129853700278269512571409488909838755834118734806998462193098956247093414283919648077348768980450398461400233087199011722608603549844383069602596149453328616635538796109757554991589489555026970979382988192886011876309643457691314971717518096085194734168308061363468361208159002231118845623150203311012816726770161525062736421140159543498881272767020430714789459321503742843734139143408467395109213684367925589614890638913533305902578446104999489480342699888385676796773491589136906518408245837197634728833567204979876022559287035713478633213837372663604249982174440035281160767446822441514713146157777182701606032490424978366568512304267345792961732824782997082570279173115667590841914120296606170959368641917123307053964391182669228266210466150964948987161461286888063963754299947271179931605997764746971784931056586595074300245749735915824412521106126277404718640742829769686890827723655152222765288392461652423665775919123551428802591961944177669883419832426565746863794428511511960315566039251578128054438955240791501605184877340115934780495227357036396449204380375226543759074725052081854005863609720890757528813559504040733493363083771453874387687124893757228962144337678581176771240897348748621857143442169902495167195369936230534037951022538918233939393454418278867551468380199667454002455945049994788624691378589683729899599594817400560795814291180786572222596198251508462903504339776422131551929293418543990882218056072211012140897886282772058460427466967177552379539845266928323688039133231703844954743926752402107087988026264246195604157213603627807852343292761390784133519643095508986224109597108355235485227317947367913171593286246967824862680917366253429217961108577302692275783630107802534801907991317427418829151261490469847985529827204419330051252022940167923637418382530094940774451932403692530769650875565414653051808746424262846418543823765860442412073944305896040153722792831849224722414869208362657230219469279743745170783455315363747181923982704414955281265268138502612343533568246911756309401458786108635404084513385365397091649792813131650731497561675614013751697975123208128955834475807937216307984251077109802794375515566908573464756974740414337946399777284310662131904492280682828603396015249735437883715906805413027797832808009747466260016682766293256185442317374833721568697435395207749310638059771166218168337445192173927699772445219044182227958851930136823807854966701779659373253348871171413369395591312100745311006736228858706025403264264251478781472042718528947502571502600031998639834246734487060895130113391769242935248532806945264891212583482867479292665686555611196828204754907773545353704280779324723044298069612319643877202176792397327351984919090544944013636912028844471945137488738059328691727813242653755525070554590396175888121180910039548471959521435934888352089941359481908492345083155464057861890356439162806116687990151404920773843307417350792753041572323784122356389624506352528545835693077458661394826546611914111642351722599678362559063451792747768144049976871959873356474278005151635577623701528201979906071201801065912448500108259216418904135037803645991223087554499395370844559080344466742674759873780300528104574991474631696591766670074433574129155578001367059640893892997584844824411494077540219238284390503639452204677018766457853921840697477427892176768161763685411575447237419756862763581621240143062645613850993383756937894606067934072155033907067276278714296707213968472896480640916015931370473028803725315827785831131278255209638250636564848945904750156372500374178156537455019300589163600352917910954294886314200993061719757689027542079560212583831301399913941576787298785865008770020128973747105937322671304061472124213479113158244985301167393904526369176071651559214203761090431016936477124584767672460423565372709169832570864813840171770266095884368068060380369226881947106371955457408989494893197820516538282189801595867008077844618643191146840435866899338528008200632041430049145807142460992954301751953316513252853661866976941385201205572695530984324787417683159987196355784233914554932096622405397597443878801209865374576378497440360211169323486823112726798777089374532945990366598660697272995311763470037877048660133840269371351994530245178716767204189359302392785342823854240971087225620358431773980447550117754473695939328762339630948178387601832437996037897533085985608756709029351082402470332844124274847589782027193561656774855362062810089922324647476615538759668465147227603940899551788151520815799105485449918423314302105599073554914829638960852081569126884704603103961645932581855481567050510870405680285273661651421292742515094365792066339312039320688574133651563769037918963215869310868401857126104323205218218776006748655769554138266644140996978347616699984327126475018328443128379876849432938925025280785606893297644703298274426804023512981055653732914784543038101980580201692900088508951875807699769569596901890493431660472126181917443307522315949943877754652969879961632578142576098771781350469331150565111558837448027451885482342607693106390629134115033253819041457206876194976043893967518350726270557558505711043186303479082744310409595489323579451388492587787698049183733276615011934429072564177482888141736242976248144141324966767306954613352045210174514926395599668965872712820702690381100014534120334816285455183494420616332938247620084587450680098930511423880326637677185830686199717736559785262858056203706885008153073444821773591417144940721522667327353240424998672309443517588367729534211546491269161714709922488271762733079647662824578830677243276665593891734675060587523238419522146197667612183151890455783711350366077509393220170309308133798135686473347942780527060030295019841391775177450573033049394732605518105137842469777908345752503517256413599890009905873927566441584272937307238032253767384432732934736648847015759687578145492212378352009550890138274234508366199232577359449610321284241294711205364984783596280053855775273733530122098449918041329497723986270780502487403129349573696478772353619027571417213543087826820313994856082480382412752552839607925885229967193161450970472175262878202323166815948973968847038835186373695949709263540285434516500538295900567432322835107321697561910931711007648594520549968348707895654699235456460372157380609075151978699402445825648413365215089389163466715476867016976973558965705984886806742084550987744842575623691155760451344637558448252314877366496556000418866587136711151213527365784979610992581910093273592196628233708145771673101702002135976844852059917164747487376442934355994462363686634081337522296023951450174408477283086113170469242217166268660132503405557207623739992791142972242821238519525807445758039140502650947186571329197651987015252129746892488861643832401253931774624576583275552270470572728407949175063926144083834198535895965367469903042963365270990442058636279454810351178975170219082801899841314935251231404176364737481677339294048870963816017869567409234620636497951796017582852208206159257703191070030151646321077633370798597061402076800511068974793310227635762206981774660332692127440131931054224065081631309113154272785494392133755951225125998227425492604750029280364896348740520254920975095887512014256018457376516493599530641878205832846385037361014325396062478551263090134152013427300949913742086772413945005589919455032019357756533458815714568861319706572323526575645130531759306899279554714092305932060416232647859742255064792708783973192661495927660689964879105134969212519970139919328216102383514240524116667198715313200453266289265262351219585305549878084005410003619672566918633102055861541487321653140600017587624385247614644122406203053358096068576792145329393047440583271894388426956084766154145283237042843361959139367147110234431976417582412215885267369629794945782544945195869220524291536659860922359695150742712921551316264374283417801136657196458297321577897265527902762470565034360133567176602101539744830155296430296435030832703771701396217826967107155389170382481741245049365574796860112446559202555978532328750900547852362125004146087453419313298809831633392356431668178581934597546101042595167724268583007799816658643089305063897353066005392528088546189860320558589837762020188706530064171232729527764838214866618220717416132038929125325009234357145746755252819805737504658894209123514316659480035594545449166784262866595747859805528408035138475265070958430512798404327382142503279035745501411459665110601653048710124303408453922089364033595361299544704483363784431867028182006546866851997057919467258015287099488609997339634173826408392515763850878267431755704407759656836749961043428587009365564569100403715626125031907224220002726063777482815541417015443988143454445531102843025701841848874024903018499798431457558596191101461047141313127041697728897646602076181658173438125063139498613335996275439739487319662449436720236820946818277571299930103442590748396585180948977966984618081610727461653167304012596934559356388175144660774471392658878005148394054198500779288000153851365487102570749509040417339848931253291193156527552034490902144684473152351555894177799423529902230622238015242621697475492954505680238767992381779830110924413457406351159254368376895601382445228337165011413639076264990938659925161847438216506407295576069673291330752895857334286552498287757160432000319159238369339326897636933953595566883100746077777702331642296042533623150241876059496950515657557366518010245633785973677247220527574007510566212907446822133017296153433637610613702720448789461968299088029751501878568561143405862472735608995513601668909619926595450362273422028822811704376998509056620129175322615934714562936685330054033569307245848125956087969476342476536025441897516121131807561049340815227326571614946901088217153921542531860956065458195104245241995311966784177244441490654486932273230979085778019075833331941595000731715702392296411166477512427213212335659607727223492279550887020671007302307144075778253034733445132531634846950491861192166349822534553570070712275994389902111588686822211988783059120456987130928433017781447416092765820367358053405923989223382167616154067333180630867222354764748129566520697678097169537248437068293032015919086329670819932855721965459999431837467128821299728388018035253000509465981185828852941671372033743427868752371511498445181670157178642622069349090908293186391197120537686624070503894836102413693164045633060896835677364953548430047810271939923524351611552558963432790315494573820169511631877017804082124385956457103583499607501909570417906236106270756597574166717752013487776669552437128281726978927419256430007194163485563952231700904502789289779726418513459341340349814047773115681406754547632305698993792434434200991658083376435063727542849749764665463656296246936215956015243608353391889298052463382273353189441962694116935748340140793692649011225295115924094143757702385625095886986468041335717534675373771420339205463168931070229491350671254677172293027908655830046150450092571093300164583668245539624465075411372320775015441985297693285501977272805923683619161769803773848785767629408548625889533653683575068525548255376733049518270268624721956967715581390415176118182006701094547465498511596385005952660018222590906737991305359406022275792848419322747887889330060767115539691115597940262031279797662169707050689465398734274346863487219129597683001571833767754302394206901575719868337405613489331619244324407058810298545969497864713961973706831328239514576640461811095991627033575681024275118486291764056817516658486392671896224908617496483280904412424120477781360618330415378769656788142055639593275771340307259539693735299492842415714366104711202950493042302875686129349691857317936727693712099947754020921245774250772551967000444729798259094217847640457132309624740515648628423093393897628018621149848268916723159172541048763860589865960342658707327702895924377838075820073491847266257566500288976792019710664881328223672973621228703060324299333357859970357275882586308424176480159699495897465345291910042656633799299063406004260833456006001344622519446768719966408916227579266687091678290190571362047850300433491535405263173393048441983473837794487215606777231426132573304664888763328039948608772651059264873270885802014408009259002064190943570985172496089077365154672129050631066999753602969221357538064043860507586542330601502355482167722431048322345117659860247983882682667586451832349181088519590849649498084004447639087133208705531941276480856374744943606404213661960440542143599281744725987221343344305725732515037352771487107113286702601116731136936170941434528107456595266062524366331089092888496343066445798678860751307901331283702990625939911625726840853390626855386614945984736416028120366006748114715206265049386000969970765195679194975835811357186999319438978620857138087887671349671552455371230644946099138767463861331138654662651877588785567108822835192010134152022322051127625304246611375774978879588753436750692921685777928477719239975521971528914652720550671978991717342255178209874054929905396488974231580783868348867648278337333712327772010488536741094145037165745927204574422772235087526809608465371829587535128319696195687397988688168559247662241228401430452742958339677250358045792154932604307325714264363687455066625850042907387437289948295060367499650588766369912282394602460587655916300985469921698310782957402444140952822259385417992804932893088724872973766242111807045535293045611403010059557837677238198972648587255749098238080455650940815025467640473500519882720767395245849371467487422116998049407901763715466753771757314500766678947315500474016883670460380468431705037411321739557381027824947453797940899522532730424755394340894757438853362161496936304253589494174991131609986064407097295182076213860109366630682234891662348101582729764505888064805672432078863511425687717687906538429793975803786629961461468577894520506882791917393403822797910806151215095155043156984550950478388901249934255890554803859666936642331214175206883338969099349692228285139871760927156159477750029621868505622760980808544663249531427807994037596969327101998106922586626985460525893393052335944000850839543000878644970938295546760469665568350729830286801561068681178118242097081752758027681168726669973339325609475174611644141365823064756852283659749124085588531716545341939732266805673507443912516375393106038512076016025980206668962580230003872933422858393732623057077855234942898189158739857961090471000671138532077878845303672864969435502668367820619151247021035595547887655852268148360723257876989339963239585874329566676403813398546728790524876838218728098167617814042103768237761431596923695940834521815834563949326935563487441305536866158317761944309359229755214929547508883320487896654166400974042000675575994713934973158511261582247880491559287790677900826119934225178398517723846796214879997086964819546843444766554792841157852490679521823091238108866469987263657850749598338638797482848575447875795005313816649980801557866590633995347566665285349271387764922072317854528156282723220075937843179905375888463198069979262724363803876858728624916636857867973882160557049151540567264003902374180496022749972995760269643919817446662665870776611444883076861471877603603354534689832470978873381042078498772170256019348640569895073273628957528658318681410182985883178764341860357062900172211216855491106934292888379703153512738123611033385613283789866238805620534938344949845283917047605713891993447082798763408778844296378094575220213564026532790535866877900155830180062479351441113127974509939442199039183527549494586097844147806418009473935221115826885037240256767412279595619859492333937379487791723316714578686055925718832069685114037520826301245826952025172352697922884655598131952599413378711454848211864388136189733002310193271451690522256933342136124597456232021361209175472467753616383434868846159730275037744607858808700158922194555474077214943079606539903879262550803247141458588405556845466066152448038415550561991598160253096615469434277615893442047867718460215742802952429378577036937404812020028245046788759155106581338577539105850422161144618877162835274722912729557612362001369236025049381553743937384324829008682280599405357205859041621871898641120891313812618912318346096563312254744529667547443003358297458191391282453273091693089013617260745484570217024702930241321936143265163608200255922657585452118075207022352178846424421557014209338172697725011697929240802351151088401819694937634906468348959089028161317763882533426021892569779563631159006689815828693552003462427704114081917705736904299056502105753687873428576747053583958691716646994950164430613750268073076292480270001609210521422352512961734730716301671479082332230047323361142565739988677434340884142839531212323573872655842335508834980219483629856348976278365957054322000324581534479454386359263585065685649224999862842166935773968474581873297571543298208509614047549961523991106566621622861578849884613823733482854331057226658804773867569880877807792619613260767424584978799383133296863488652132674275181034534476993990968240971083543804035566361070424502633449259403799239155433410293440641489221978752817886916708675682302755379953267099666908323679419623192959571747251040564242830286392847841640969554243153464584125078144391476434627498829894408548315206151632742983219339967957967311129181037902069532748540870770176601299548354405777272125839048333939914776615759487013151059667637338188622600364344577902224727134226293574209502699132891530539415947400269968576264636011429933558593459403739164508708594425082913118957651579715747292329040158717863371811131605199443663924468736851705410663146741966487354266911678504281305801361515021008994819948358609842806088887029492168207304929221270172509733534468857499168607813411778183416111708682051730037509148471926746407562298958857696116760524280147735736803071934578409923153386631822879066886970582193142845743066284554392539743074227801694697971125184788077805296773159119807153078159823418459904674793934957366856689861766354344567783057495924883589490627053014283826847825998580845011695503426040523129776179563538558094550834229659432566590907390877735450470632802109194100543659780738784131304695029843361855799197870465090434674420888158905659507449662012623667532947151984481236056338067359213751514475261378466609565312416580328502875943798732620519314545456623359969151491887046678301989942189782921418741120283158108820858542844132843609455494551307270514846348732559383282184979605095368391291537401432049309998105058764424687545628096730383858565303008260692207627731559020111372540705870295450192482413143140470366051726836412281599799991552494768916131947709821981984433890356806826358053272131729675606583824600673666436698122525378115428584847056799685383388118513414643539151858090769712379982130368748382285580529885267362842430739291688474492735722887662140237430377769176831427486115709158854223958837955515070101365391462433415897158386550330796614178743856686487249101677128838803784434474056970668581419380269800534540192593145498302300854335557535296246256052528826687098839182619480707463511140752652689924277306961700549238617287222476123219600530365215542462784079235190603422236449953608210830579233897051869992973186828269882965827272703414139967915011113663228508236142264913520963386464498858998112837992053637737864520466603313557583200554816236265788507474482949135561941655429754366486194232915329404677299721785964344632113946685971636258757611192698869450875729366282818965263940001407005170991255602978144926775965738573938491655731296300641577137069510260724095747074773979390477430409115224656606579832528223955367451642840125258234377808161561756259592928609817455048847598386343944751665388174551160120961003393497231992117854026073264815443969808053735092920200254581689586443190500271155030267306566415606627790708941716062096561975537876392612428190493319947398390313253530811218123275672781653097867454293182756370287637053826229894630020557051866746882293444556198441778782042510741192889274900607927419350472668934135891458796425518988169451185325639235816727430721044818370620043973311263407232478951242506898919643586185635152083754373930889665426967254889957214344801800062472949614175610043411110110908468958701920917626663912352420905430600612469360584544215609807955722075837656009324216699046999745196330497967130321925895774474075428684179994864839183535964711721681866670055682881270477913125371627293672668734590539626020921262543111873831612545214213433415626343929203435616881322344689618584983102217308259949755698364382288515664085770070356783150077599911578244411850877631593336713868100960906205058662605621943448219013925718081890101989730426762184007978024681018882796837040467744279087804782237815078229231152309611318992709289133127207617874619106740934651114209537435199742990249798912014914733956188172489170091205956469311921341527580943867329420533491183820793068301252161913045744275602640145647686242647095332366924360435672099038849540210066188850293125788188563549233936102302819418296787845706173883692866243291268684088501190494515620998397439456666509191135301802296834538546811845584858841438309966854381326800318915114674554917550110231468142579064343189589110025443064180136953482920112044880369804185609103873217389614476677116057181101788695273030501761589805650158158837073341303025833224205410503901979961695861776390680466059337144575502610944267929290790930230169055306385092517021338874121874195977312563045658487561723747043356379839234042661128762780125297309463448208049852174702066970425765894743166573036355452325296553493268573594234900199848985466983806223341729040218520183382874044870106803216272483788101636979836419271006150027399537633633879731903989236692471030150197040146211152169759137804754415973819748749410004644025324677547446788018176226099803933355805337100396303667572044089021135876200787438278425014349405342148271654513954987782199295826734942155252442932602246851829993301471611411894166178682621360907233762971562725059982432756076170088105600949031276272207098326516621774377621847030643817310144864642562400770801062803854011374181825867745134810818438240667031135885602636372622990781247721014539730501506059811839531691209226471788518647793671367873483857876504006343842928667251301655042613058370512796685066685184553663107954268626426687627962241137841818173425092460317444419712845710397534649353750008783340491047717852565124096461423639485366568044989377677953658494964176937650762948132250100772780025494325007189757076761322843052119919866468634911176749182181333678628796005379641467550972759504035204766317701262283685296511183107090724622447332202171980931943219944677310453142553896429448691113567925850054430647792809500342710779451758459085209562955056270465883498416195781870949691439756377312214802940408708511711250280550448255336570862259053702067340275860391764069343190136419043955028772346729313837266865054180355978073962349687506107962027957848874788426052008622313307213843383012360187622449078076308607420661149548553721033941620951652838457389314806800174572078278879998255265249253358649420498393313340130109797333988258705517147337652880559209630651065042721035920486905367178681232438112490053640342442241224682039647236447881452418236417863644134226902838156431361291724826133341160748465178760569688215115097275117871452383534816171739193258017921310282641532356530514753413333340544106437075057068950097467908324935128521350823828115957101053259905990848390205142961330315829377496816960148679708885687850770416851274145379460875346334114739554792585292749892533636237630199090188454312214877200176229746394284505837984636348233828445166899054745390905640138631951856504491387929469561824860545573497471012528433569290012492077313154576280284567686654699011619205138497783965269126194354725180975318094404069591313384401648399891308207550695132191917562860692022266094699398447718684253398658575779674759408883679065153132540173275788077290761819306793099461290071199372720131104923070168872878386707676956028027640001996565261929190579903782458434435222131887340428984880607719033014767966068809526432279301449841773416391258977917223361365478597561717550757689438750649150158689903448685771714074981378573305103415004278957270481212495073875582419462603552409916152074835505317583577522797936933797188457065612320173069729338465737327726000798599829842657974482638846200017482726278207897601312723812561640716289506428586945817258236735219080307778525764552777118641159543510990931880213632338496928717446203194075350085660433982987836787693377946017918135617077043350702418819373015230539288229093187903732575671235999975188344047066022744786424689467735673648420557962180280786246894578540058189501667509718876027670987716674150988305238148679676060557343655850873117528536819444015739340871643273901691376488254524680975930083959842080464987154982115930772662702511927347568251008708997956349066222952325430635764426613131940620518773055485404332779259316851823995482608392829326305199826521234019283646267712063479970809081240720035313479240158336123419209327904278118341434875988890759295857509059040204552601285456428358542647160569720817872790697327282028982640296503279960570236025282616393289142969997717824130600600417694863421597957447941234560163342414089138788049317098311629210389298875885757440729926331692451132192694490417237617310379359722423800530081866043694969613930710316572372536934171695858343104011427653384069989322398766944771277363765808593612758098225030123426502494834392869087019240015104261890680166957057275810030524373241125063735655684125703085864089192716842361263075907504600267880023900429019750740178143998318683042190473132070835085336793457606080358205341836297865059206187709841229600421906236363246996426345556614040653747296290078376296522339181724940346114081484129926707299320725282897737224279693130384823625483787773539833765878140664246542445581380390410217359727568238721030725685237489068878272209405081365094633267721980315915934749220335691352365049977164304193559338224444944159866903077631841769982651907301827024268926326204920386148544033588050074617481124043376777644134442468788794899016738451683999743500983423114463115371503074195010407951263882983002269902633021094581390975962384799477961444295358455934993723751573831687161604327142676982216306860865477255270310957138389628051091332426638178283763464727021411578963663090039109942143297940829837427849835877786463519024303270652509903320011835511476423593809049055356140616588332163180631955641081998438079940996760611600451557148314611814189925667178285757834845132088393883413022631907554687268532005258655910662547943285205538814407191847593458977480962534274933691895860660036090078834071595694415601183260668886751043806210727835850625338315634203711295620131822330909818582963283233029286918049729627142598492955235221328667132142510444772548254758465895744775602086182510138005793867392553956599375575368138647250709996925683603831103150749119930339895394525950239180400845431694238635094626312835467141898305248019172078727981592691969446717911168146100787428603353277319410629134200121898579121193884478775300583627306543276197162408553610276031041923967193185678068479856880986906635285744180636683571322028144067785021983538893792649706197632894976184498139992848532909707117779328539828640676075431481033780351793478640595900208193198045502765145868266366012089287835079388417318704489681421990281491048704341512040649488422694061030718768877726663100555231784256030068490596485066116866559658682087338865867521165029211146957954123051847727845329467066948299226060167135160389162962746585474025927176271029449128033252298215110817531237655883211636366754356459205500430061262860573196938542894083001090603302309385375103814452549602211244714010638059755383464475645372795494323826480173125753649698465485093062900181203225113001810445227985855115514151863282673954378102217450240098212127163875454949857691358450290535580588444572876273212621005463477767370822375861882457265157275389874302752113869355339877459837472399969069403947578996821891152906996067225585747459453343809140613824030060462976339341758081456367691579926113569129931496072194408601569414779650196672316070172188500057627716622933137260145673086639838114862724510133984720914916701621799805730877354583697290330350581698574676925555657129216671708594531701484221622897341522552364154580695230527557274460177573207090498235855524830695775997211352835989357267860456548931499927152025921031352967832409470594878116822115500662542971484994867018336330862272567426474571624002246997051978518624136235398768908315728410808372191979233108347839364904349300772051972044589100396282876955144239727066594781339575818354947048447340785531666759420922115597826268287622048560653410158177064951086708912437998940377561083361998830337465272605752242739964839205805114260370932842424992571222848832784904054237820887865510200162157030388904847289537521997093716076119178245701479143804747449641937376957372791178327352702565329302372072089684333603194527431377708014675997632663189408666433169855209185959868864144601260466948967493796521820656032646965376277956553008140570939545878498110514717144884259306933717491014273329788267488239319537380733925336079507150763140328526908259442364237975068963155158484519380307215860466566746857752040780447922822593738937798520593520756981387821010011716949313144434317888514504164954127835973281823661916818089973067797188456514238659126696978250539101261079106963039640676095819108509238892945012446307795997699365964474646199242065350864851348936966193921671794791921286040511213407049011651938140611261400843504223061606204439014697201940519024331353918407219551323046298819130276555070977267332791208680808684782000125672062907398959047918023655655614401112949560475483137399242300560755321448994505462171207621675629782182158719215691730629721527074970795325176581631777333598395407713945636721287061412604766526969132811766659650487084006502950727721233231295967784758159953858239048961270105691142679613786461299176585603890210726380945961199373630576026281451647789644143185168858074817626102021095985237544321763061397364359209754649354513903536961607003756021057412388504072903951401643645751667939172157296518703168256645377792927279861732061689041250799893622224142015555788153683955461054021405269737359471724614570467853237524977112912621864399143799085453761325250115851920190164929485227815639191376885060169273809588711059916397877790349364030887816942587296116134962169082570318730163208679388963525066080227081880445778224980706838476083638715300706419957678508725835577734128858106153470932728611607424686577002648027188718172719132245101438592365048522061143917296797749129831967258827848220268118908907793488787125552895318764786333075304734186833522341726818931245155311904466071148025564995788875639301454137918736634856161181919585631467221541721748059518622130456783845188323129120433033546150640114173283033233600873275566541275082993961192623371602341885235034907465798061498732260471180989968191828895152096977197533159620677535432047832881799168882640028133276700156305013348173075389640141089589237901978190642143475128245121042916927851482345029031459778694199090120617770801255283084284468005586416287980474043354883697125643837883287984481508401959663171661464879413841098452172843586671946079205587811553898755270098318915605442633155367118269303529334773568947807493905352603019474003586317250408358379142031339685578369275062451764387716655148033470638089925678181963482686688701073971400138556688685554582516278495286430498505812412778905284041188427482140601073644044254372743032224152965437897371161027676175737384031804875417575192986797603886451489114439359270870555131607389526186025320841411688332649269243082799679799387422288238448889655767044271868449410432782570000445052920612548186314336303225819734991994773818989731001245251109692642443349246396045730228155706558450374747781340675451605806977290909150731702735507154900161521150377293106688403901767835031220647749984341662470691598189402733711515693863819658805848402941870863431327804419871443615337484826518937171755445991139213015902940248118905810421358454437223870299949618608976143537891067218399628869622700520139965750488433033400881872286461136716492297622147344966416941271497919953538251083936662995012801455375466403646231320493576911363776235718127994323751790989682440085875267736663385204296128984713887154995025927866398032473654496613099181955714537371745090443952750389965989131459639331449744288458978747701192129286641868428641209505031156299589087187250057005532077736489998052693890580325739831144420940444882876817539440711515912003402638846863572489433145417926152870834438830240524835235584165027479525222909392247112676570219487086393571288315767446559568197171938508484416850893696388017340667064017100173088457240769945405964038595396980451469161565955387375829333946327472566809929349210082514306337698200596347582761467029585556908169476282587845950041982713451842997118415303303068373675581701852859599585503315048237771347723691791861581170504107692862560092512410972762749077326154631877187353539718008986571430069027138277772031740336715761153879904630555694860944688099075902598217808530656269530541602399505584817476937844253236859124068700202199877885085704189350263790508965584475657327702682393700691164088034298469559819072954648316269455636492283457480645163313792009874924982119856737012418033336400225461288344630805974839356280089006480315556386716590125824060127657977135309973212618114965189946678337041054888305860077255065541911873252174044194698762866510582113836893698330671101176063770336707181385598410372610489124002091570026774928651883918933923767197323716009467558599233922299572840727288772593813627395563107841317139601246658442601798595084915012916349505454419609905313493940538509087208329287006034358066800796764527438192750042253746489007031509697613012565690826461053714826730920394873421204522285748683762992025461934509345921508739237779768511846714407552488081140790727712730937429515658765816755589091085927041491559783088013932392471891557339083247396527951678517894399789710228125850951632191727230915811529454337800993925040887012527181190170220659970059515697676111230592811241322294649509452876162624186896099261499300115996398859240289381761856541268539262023246758631728056714689739561497658615294560149360485907040811507800790484140700490535814694992735096607010421515416526097558317701306056729728662822110005566296334644599339689719255046465611809064527257145538228608575510390197317380892539854280550238249983170046446819965682435472226328250634181078552507109722031693054324693547486358264813054865809068910624282861501421192232099181085465157552810620439437290396323250241885522944659308502519528320389546111268128695178637396590169367418856010533632797050859578845647372002584056569240892278250833756827672438838546319046472633801177997398230586349961379327805610693381644340053497743269515992611398396269233447028134632282652602655680816799537986224305525318294823642609461948103973990730293450924137958753616331779463199410707005985051988121775039664366264346560426707223499019900564653189147665885346112708794555163015944078623915794046879581537242123122504079555705546703159572456455773714274028600259593059240192717237351538132240783554234119385443565116810845746484096897890257350363548993840890837555937205744920578279696006979820309836942650645597243470137588086141149048950764709717495448907617827464663785027286718383568572125485411111452445642807257248254435901759661857292162245375460853299944894895293773805483331313176867495639829168143738426927385882451078325101126970161296299916083439629235213443229277062507366649536176074449619413035080039774411635066504202617997129950536314570031472364392488614115222358708906053045014966548544972320339796955416364821404137838918685911484283686908671961109176221059981416792796118248890113605534463308087227553812495771840441711737613850044338311107821187937420808263544363269214423553120737266566933759091123923389038103843874752612230258744014913383052259490066034508034004849654528346782373043830755756070533879610968657837533146496310665546314007199236427877448316594291155202069951377692270235722180108325774152867940927207201427081890657327544098387212273499399200370215687145360558570540807793451113415058885763253941859299456428179753361665184416781823984347755416606147112535593399179669286765331464202885560850685731952805460567393500731277975606956108999718753648827805883284856460945817981532689025585014339466302456946594788786531902976287456047803562343318251233825180738234288382969389899963050548782674297870157032790180971816785747383774340693298332346214937640095583647101303952422449238730484970721726325409782118292330914663649425849309973612142535311318253091900251218634697745255187636736677641304594091311263296061418925148462955795134407254515057860068257025006088354108770474815939473439807249630958963536415249089821311797907868516772028351941668926077831663894459208165635896038861660626630292055693841882175899372608322960827391888449825997029329653535964190675017936412301735506451091119646719472015562818200466189203766692836252000328853387582939342639420493740367414010874071788075447424773364376106000474111889922264478444590296927102675555801409017361843419213516397814757818119921602719380702601068322941334912184368090971763743719746597497711284208453229809755629286352430489496686036985161876681974713887822535140714837426101491656574057941512190323918444391675631486407594157826834913501721984269500979811914916292763465901177186415247701913250772269545339203331800020722454403680442616890462984027928155866235325250800727500531169681298430128889750392739834901047442151187208218434224021736536551906665599116290129000638988813208551299890372835904130662688227106321444913358981566347930126999380309273979362186573256092394730577258397893556043182810861054691986212729028970038544576349410989742183501603437454283348849768142272589215973169612331745057024146897035995795576472749730829555111073385405107780571367327938217877094651150784713293556067778200585276537422716239433532421785882928416748787718143861173414486537538847219786701461548089978922119810156471969123108149461874822912050911673848572764154430918306039495127631697892948854119508686569094957400850472871999124311965791388241557015411062259658909065527945221528477971253337505532572908369023231276095483364298659600431023756268002247685014286657549010091763438079975178611512051987160590774695276497996382004632476235443085183759016209345663127119438752016411061023929535776853388982821549584203399448443402804169665726298061160330390220572758796083910569859314597199718052617936488885961355306012781703997680464144221281571496596970727061479577174533736659618014689435211748560849410684179280397895159563280318892482322824404572312279780356382420771879976390506504341506547977542199237552550799508832606213139872639350821069594634484389166124740118833606872189848746950415509918838680314963267547146303542631984814604550147961221305762878777511318392658439212217787525471325101093391000498372721624969547334559481552950315329991208714430791661381537340918428894544230037557952769040971853734444970412105636506014895278486249311430556855763915517342362628654051919940323868213763023408552295292086350877165616565955606100454054903296288198839093759060495721044403126070880515944219747424475112020111667670765262551832909830364233683824469134113663649845315979424924640229678935745817858784996768569131883963729715500708875636017998001621155873096261729525858739854304186933321644642639415650235354512051115716494568940844305395571760009188906677367713276227329143149303952204499102596173983761761748513576316891608912269917486661606786962640357623091393746185368162019113466771615864808507914297899456235148858635116183158832846249041945936903895210348143701425675326608039245194437918164185720817296651659334743334610046741470005659425583605718095670811312819044142668308752086485825474350490261155508622570949124456858161644353365203521224444356570505146224489273836461069824174566177418101933174285192121302677211643849910134468294579544035648322886402343545846867692003470362817449889790392164560632958575100555721841666991919255390224585935171059366551169270686919784062702602778265299841623913980188428508567966857069752393987715522826837229362261552330810475704218907080561316165209807155000713970194730283073583634442229962880780706520769661889281335689705298979279559630861267404430048328505931279816857262613627304622309353069371393405455226749217653732153989164890917802165615381283110205439838684216175035668683825329813340292654215662945145229333918746346740280025221154411006390226859843657183994314763742917087560451952120359149823858220300675478516541266851628262928474570453977022407032338435661275076193808599741416330612954949718825674913260669775656775810235465299407702879158931100201149448458036017597609232324244140492846851983177664947046023098086345329906315895799267138209945241335703788233512256755808357157614762191545207658676463447570802417031786339333842126634687046883195297941417820401131329001540322360650086150425821208183394322030644320312236423674563699784704493878389136861128691404268111834279560915183027951184033608428230517670614855692327767281441566116438516792712001028775189866353540745644394473447672980283460791847062934558893822887123508119331880994725142395169329345963879395724271184505148875862305887800758128053037733687137785759045232417696395064538675126663306973150138816798556826729527419702689724778071409796889531962468159174610180845673665285795357154513924473413758256828802105815518108411447466010043683698198149028231566120032000283679367764791880755241635463737191614084503819435805833938832756434033908872646228750556117393877169003401386789669742682469170553698923795661558229251262590423336846548252096664718494790347040861920613155481194699395271814746662892458470541921686229674654503416981619394321375138483011319502181017816226864000560670682196607367816469893577588000848464938122620251135007490821649955329087032212905802069711760400954558706432945831245612211050157731776470815501148729188164823683325971673584961486909327902064773000414428393316394032943111428088598413438015868607606661444280034193143850736990635715184815293991822370924735973429856689261179516109843486755382330863266501509147421038749760261176373183434402880932249006779519400819237477290610659743829625882112348262643984774650888696373152362836513170735324207824540956759237976618163984990099882002020726285915743598322368141012554737441179258370411385005175772498691702520585904232149117272751624793637307614724400888700463525544004569153462711752091759851028224587033604822558299418495295737018393817513852751058747476478211763454095388253453655331214943639004305619624715864008728345846319383859461235137102273278833583605822798951635381762196407983131790127262926648943574175158613266370390605807397380376312419825868770155227082149563084704870391851163874110617731629200335811761785047619115784645512408138644851780879585645008981761307835177036822083378370407549542738657020539736264964763489145671652084258542718672082010198350458255299707603623286049281785603085133362770263437170831826790327093326236310327178231387417275400386039175201252653731814393850466704142582467588772097439489343862410938265097017442457079077636943495926254772830986664118370185371226522893740715070853561340349475037491443184078542082877316092052352140321613836027444034596273950666389509481594757382450409573531770025060969699632204939539229078841237281094126239036807347997731841924241703645773731346430357657435157651984669763936477408241578477250632587689202839585690466120844102688725608654237176912050841951242020245092761597549689884087092175402879238449700481424586497138332216952521126120002345293805919129445811488287062276129848153086606030023246053611625705202494554168214231202283808797689095905800411584651095929524657821170580957119916049619556088328080540969971724817494768297227322698262273790334381500332174137961026580899322235579315071567190538929995287599944128645624937129434208918208164405283062938650007092543123053384788803418614854403307692191689907082731121421318527211340420625782074168066590784917702308320328936334084550649843019457560849038074511383983609463389086146115690598978600232851155682845887273492840782059594738680705911879187653546188042608329775036799478828848397974865758576983327277196423001447094628910080509122071620617838884665136463218540892828094290539616688802836699201179951915839887020514856451567627944761570971873465261362187869612069879891900346089554070396436794143281796162757438681618359224693750002973187836429975282332831343787511103516799313577592790594654710330017157105034376023118003872440597584656606882223141882788038178767056574837586630381333357499625987857716577875439850450525189349375393612558532628579005462701976911273726497703421091149403568688680082619218726715123383824807981555342730683599890544298586699148671547954512835906442458644216867726474243618998100058912759311486232236498726284033078567444047717307783053401221201095241859413898646681260831591463166546749752057441167339613642606687095797315499757812405588028881910740440001832099374118381748283547954948978649398128700680564582879990424075302145370080085620454617385010471121196553400560763437415594843471235474600333904057189366143040174719860811513961724544391445209692282201524406849408329592366320334467164187604833230741754100014450735855022299500746840625468908954885498560594341032842592945684666831493151529186010248806142796629048919197573303543653577256358149990845062376570662228949724319024176817215630791058237312792412151950578795144222277583653575969014256388316942748392882507508548088732261185204438498382133758355640266003190381527988411621679112454292852122687386057634365699951451243508130515525877494071569072002073234217831697592445659801273979787638568882926347622124573577023812195470053251764606767532737041725379793886251864359439224855152395049411184717267005596534875139981801805364026370420452615011214135656380581209360655275669861836207916054955037038151370535668001068509578854029182232818309602026967611576207422236162085613072093923100000008149389717684436876439854692620383629329888446537000118862982694166204330674649871874793617517053365423717835160079734195006014399318636664590449132140067619586785281621806418114051586664166091837651585500852014595369656471843401196758967230169132755606594055702589102541267390037684557804223108216729762627925509368619202452189582695157834422423787905557995108169287103911808350811121128587959066393840361160549985489333680361033908242361184972976916775447284258178436087660275015477105747085487769800130911014262650434585183780293739964974349799623941405575820969321585461157937429745735313759130823455902516985408929697049431991799447662137057506481431453798027248024530576940362045163068621517010528926486626325093652492381455194579401284700142552595244084472765077102263591688015595648677890273171797085177299454168194696338119499350371519650860887652744038885590150720776076828910612060270393172528393163846528042690933825420182275819007919776239830551335923620000975054902492999899988762219194997302950193540041863822404391963433512123197743314613633458516374759900575584537146036041831336102462943912779698587281801782820265431551475445077868347961910930824474700857659538046820143285319233343318829126598878381289046482357106293569427551275473250702653123495314063762328771899014626231621987113025448773566982558995689628082370210999564846949250069882112136104259489041915512848009434308954002231386134922503766810769007303926390737910427624478368909370234739837148982998190286271384543212489288067129494143381412804868570693030264689190875368224876713946564671862143155728055669743177506593087607719507035946844025589098089149647203158461417753942926623412066548903104391025677885289089232329691425141736496945974961009713696258452397755583271420737991065409032281539088247839679739787929858609175491195470300066277655979500645134568407634989964829446994976750278658588137296958293961182437894705080860813647642269690670359041225884331484438247956973808189241047677770235965062394554590849927039710105319309400597417324454953967633700514794030378672751353810379104149961485122915234687594204487752686131368516486580884557327192701034281567074014136487665510232625220470655278919159444501816438030835062022792983861758328532637493542364294269869805834255740271739177865822337371875105599919993831037694528930482865791421615159909743764163663648163797187735522720369703512306468901096136358456994363623010452909978837051471105997102148723610714096333403471424851098893061525010296730845210695520015833954804551301949610107755419447531733154039493181460260080092161124993227131704153040266831569151080139104792090881607277776538471822453850967835171119775081259184160828779694723383886376597367340446466834010496036075063836512938529365829516781834441481466907008664186010021827054686550705954601927836537789104964084699251078226209496937189924684143941710001244974617950965198908918296398064445556174195024305653105587246351036004143313134423451309805151286212336744623047590114828937392341502320271937768185848732672536247970504247505710056307736035771205718070842880114806097954382948823354223366823193089092501453606665579814245669846328911223893439141492872011470308819435557929933962943794988973613113916099393191002489551083881825289712248251318264565616308274617209288299920341237549407836580798482483507092893994549344366784192195669137388009104076719278606796518876467161094873354169720957614824619696122135081171470937778252106036891371873031722701275905783386688880341268735291538496532113375430691473334210614774421690282519229613674302342280345925834279649309695607311618704673531736727600673900885560901508289141337275897881561646580861318477296058225856870414355458287121382611020673639100509273886722015182620459925599780981013867330596983873721539258158393585087431760793615359997175183595426001691505576484896771379711393441661772901023063474173558053176192229400469149833178982106133489360040613718208702288331436593680271025007050854628618085745455586238960428471592391874054374967589349615825466320631277355183374883690822561885358450444345271679684763419604189114870395848486104002098921638125154841003658916973302354678657077337357315060827043239905865221204646469190447193951746817601744777469779156499917720016424619911707476521162452291167341659013010892167463676895615927290598373347357578114903120564905307874548510916734829441984883909034068725639522783028870897137860810907460120642991905338033965391969849234205657041314296738318891179394220524349918766162711503225209384670187710145204957925799176298031084340512692826362128755834755277369923020287390998996082557890217748731276670300995710453366442343470012991729766042775577674735943393927656938089829971497190945977406834904158761237810583594559460252796611054509436814347843614093818840020155618416481552598836964678115354330392645597041121779006100071512260023759919050278800241374050655481215593614714327132623342921132402078987782943201201470316108842193209141552537559343096696295842527495251582177790221158452778190754493739323744441257036171304061777070672499478394205567314768897308346741855832990068769965060410892800004368629047326966425947845538601806414597024610066738403558564394888775357050614186265099667900165479189458240433310567945254977107098230604063463712230290877873098690177601070027318347987141784983558142567435662847382317068982048733475029818312484592188771130583466674582493150142929786249458088795292204428482353346558633944509738457191301610108097028319683581143022132724427049926393800757927821384847557877528791527369058117313098783205596083306389480880595577086118691147594553202204345207905136930730545287346253390891804931449783946513780372780069540990859855240501671607079498312718229281353843763308667595326023734392676279958413315998094876539347199943438522531904672173465325061560290060067371731329421934214427390438432594333707640413982739493369422537664228541154259129619187786796746966740736871611175203283651953361742294105920832192993376310003420660118327937220857041450123869446659758783795658542588043730507356010024592411545129044936730796573663206842558276959692398534330787765645284876838352810013783712806183151924160066101087388153333141202087002145971516653404976279730584876137207371843232599318868413706962705398599921017015656769573174851374752433121957852964594701431659261241682382540953297097015068593576676400071032184958388258378955979426146340438950098792750655210318446025724764485879601843301252007745400879500951256867424036444932306260903641980024451141607679208727474349995218562813187212374394501121257033406991764518569823657849376975782052776176982359601965660548451904438829026085730794538694121130815514232415969256996305308400025119599945241908692772625849826332836790729812584977727207486288512542944331201952423869865371937155764665635526592079248537432087719887944077634915476360691488882650938104220715967294307432620394297390303779688372750850328948626862624243982277593859368011685557192122778256797238498062119967880939103812094985555087972975284179085514102933236691900791270581234846973244106275911880346321820108927938860489577952516631245738693844122334846758063526926220720493417671399496964574656995231540856589008519477347952091336976324016298456150641360379794930830389729126860940100576441006849914977777471556349161894178321393385847857641964998496385994770839942551469817527209850668351590319255063814919702474779108441741531540198840227341149192720523784888763292920325574563086844775133459228132466534583511743822498100408992888084529007997173240260819699787033999460520307825565113529095470499626776307950386483539359466189012432481991044580715471087313887114070252609190327559295985566298710970716349502394282292136125277039329883564841754683754279650391013370763107658206182520888341941381205009829654729329638051730792201641016233846046394450230637411768154757333576559764432274611867063356932073152254668741809081724888540280518198772822588040504398334120344988043504751590151735685765601981521545744589459494332766675560463334331816934465108756151356286245758509408394227740205568276673707652064241371044051874396068827835228065118650318488810307715211310150329750569536172090571709128896126627107198342343271285286606112191462666315095553990992483893077986372472741154647347213159544310912085097538248588558277079943151126142910925270342825759872848255719158104601523429638820162874408708430566737815161707689428189995482417116982434993001531599070269672172474932856625722600701814224319085303944054235342090505813615577584675528593575059260669545893083999299882423872557889984406136010022249971626415416153155928606293339365704059311912124534007630172220686958704905833875879578596075268833893585460854430767759316657733413790126936384598271996628348412663185684704542824524304384644657256787271237670747602227621199243822298867953592768961464327385054043146330943685609690165052120142364376317712112555616819921808541533176512486990366225246043142645943999719242115202699268312731600996550832513952428694771152669858000617071202660953268952331620895931647179323515328313536760075212147248076475848192923286509291203635688739160252655355844414944034918374391698342089086436229616063115285612838957881159962070847806145143101019297093557984680132084945506758675730805955571860121900719587432668429552814830756621599238418216931107499639229277433222885386593228803072818610342499679691863867698416948820911628596186359195629854678458952820728617700506657430433191280345339596493519275362472783965347303701320510538703542032458938086389738849513457042304708556037438647701360853821324073918434531865864584421633824425603663173420793846717388698398141975689992809879395840972889906072956241433363990006491139666280939548162046919719050019397823084546902716856502298478583668336384507822435225266185870287732668564363635872802575935157952416917160676508685050440098184619978204780198121633125866710981362984295529549230756961617792277931488113526780021162717816350389000013904866001109739593134248053421755428624375617217886694141742371774563838518948947154342129594128750788790948866149914093599328815914061722641413130875365906776054733118938572885911064957724319930179486060066564393477970402149424575903210762493841783659711754779961256216290071103964503576246758555788824485000493629155278573854777018217569119934670830279475661466768242137820933823353697606826571105235882296085957791520153264593372828917008729276129370565973112157750951864531353787641813915617873638563113869427881715781263676196161107886619688217729420102346395672803528007505454556762778878419235478354976084319975723310991821944546367141137169228833627309181751920902972843748371699723815486441205219872549669137073147989522345648581852349339812799976001222910803653665955324637135585425699003124469466206005494930215461833832644613652080389132357239660241417764048230499951964159561870611803935064276852653434952708404404337453789872773330589351756940696893313421152152030184429243982390678757675881621894540197619861521488773867526487251634073853892221046522874629308311596063150821540113698908727470993270825279227356338610620545507432496674578811725870772178270313991265788769998040272525969534523965465138909350381021131563925076605651426399179583100971004392440129135257911445535267427855788039704541546834317183407669367786835716537306284003956504633747049187510090475628640245485794799735680443255484484603505282705363297162339615665826944873568241103829046132912035533472190002561958561476878021396909536270574365292584883328540008847101706463264914252759380905361108380569754216939044487011435579637665862934849138843933753153432400430555760679919637314283148439503213523893263930297264891986185754881609372252476503335989468003079699259014463721289592768000155090080300111810177235793265805270439055078889849793314669631721756999873132611092487398207334710156221582423659588810884972513863119828445190375378185945134788858687521059528100433855122791395871355828112107954912313386125553961094185244190978456446335964852304586319398204981566894844522429902511245004622494205688294950304559095165838796659169767413778089068002554592398524966215327138408876255493984728842886251279514433567495168621713153436007517158783051981001322466636809626188390202003825038914015509438737202475206608857899616968802821041909642424741199917668618797518187599314286944254267235273887299325411680968347867087335606389458856514113883579638440408550825901229368576408926062860390689787492137072382772981767498921275511034838368910535528959153059488774186461807231277263937441391949884782009880473288844172565812096657632664349020642877050452232541409646811244041587193264701218749336858221646535948229852503913634781819978463991217403500955960805954287327954079738689286458056348960570640066332113068900556489620974357597499436850037803812663241204671048346116634595444012041111573727547023820567775268470787753814526640335985040307426587969742820088494457331052169907071517933986855903823302624624037742810895657419197711566784411899886429024428560330584823921443454648797674501430453998249018894320945369396389810660309393386354205773998558421264536499030454555467966929649560854109005077621842720156498145177976824450913468479129940075068402781551355217748044198239797686494270554948384176839523368180236876624481689817772713882639529266972137303186890017686270561429587321930834132527188686036225579111966187448152119165191614230348378108696550697998328992531926663630106447406486624932638587329779425247735737603429773398763974771435146346670132588938152322219363597575456793621603472114531771355675777101115028237811083110220401506751842331585545380655278272735878131373060142197446127794324506815137938339706681190291031129296112994201909564948228035972831123007941269501853577691528206714122301396322710558048911113289301033855987128159716384420087882751246305577679850329526899874804789208084682563103048939216314681961556980067332692042005351606451298894006440047481028706118232115549728803950367013411021301480888216847658852422525281884686211507415079674614424067883225084498111093962439694023578008308472688267037730240136411129459901187918543841857844160786378559908819851055458422714950047782318426016246317028017957124216058366035955106309414026052615549157548247632689004806694472687032081483339339024140168832877801096699844341829464750154517222480563192327883338669227396130217189558762579828591230979753884892581446112984744185231955047104316703826969757150686289288955488383023626113172468743744182594059011483934199995046991606604411539901274256658550523745767545191067103878192646196571021589309632336712711053270788819805437299538404930168058003324243197242087563604471395889733190348369825658657712279656787668496636759974002267187441404846378391325294731672547035040425160114791307739386048369341523425591899741689914719198577994772949095451738416921281454735051101941944370919684533537969461386481478804991636789063961925945246965434405353917784271449464264022287716518291073755964200659964629806673659965929667725472734764835530705156799023900842509936236734324748084635320535242573276618499369484767047318690009014795455674080997476251618006356509138731406371285901666966573032367345189912851632015355823176934536272505817282866382508158213509840658151663831551236228793710280506763290040672219298175412785528491649102386345259502995985294777457396134134915547522203097783812276506170385635213589211654827173744534366775161562678653140368690657287974239745206013724482070357970041967544820993747541929645164480568002376739195009102212970362433076080436072358582446408487569004352309195654528868180047560656785302749533454204961025345159486558324170402149576610221877611122102654388117687055507224343909630389476628657477686694310974273172499672993751667815399724125303477366579755956870079587824780996316242707332348888149563297225273074403007126236510434448721655690633230427155622477445451559237220317837982789649866160985690822625156564663372429973019961283234314664278086587355999728523787297278225573996855428555308850845407863513692476363546516744858024298974021187717379701992212224749797844583516164869146578334388494746668012748907960155697717196689925650355175143497743572834642038446326588543854526965128703931157288600335771540409750948553959515142523530340180924065941627426836837154953151242571946044972146753619307357138143280290517992341674011122999979653093968636810052674656595646547259313669982470268904987405666991402377018018138365030528436597339688342311316507742410588930857086385328129561729497581284378658356862201628600202748538985223320671141438799106044897792465373742794747925876583852732415154777930375462426590626668930339676200768900460210716269665437118323772103193311413228295855438359063393897711040570662784282137571977232857200598672941540316036772250196001244256303559935083085082110981189999450773858813265552965147657410070184969507226065711441003430568441601592883603400349401099713162749441328447319517692220130195651254135515160241186414133203907675657565848469598202993725926028349058791085745212562853679015919097180788953896481966435415761522765172951255672101812193582980876404150329711071316744249280616849377052292109903691770509400050457929446309303343236924932967542092486012095042662628175292988021815480957449987006834917882130491289809462128035655242542396427691278565866427267335729861848175202135987104872483543685846530484939393089014983414661387838300931122772091720459926772454666896795019301383367414689883542927056789470774611306232053873705643100556903170229530820251006515951114866344591467327075612459418007428972096444166440567022521501065590607317276202413765641336314058142852126497990220363709148235666818908586475665534154031403276017838603250562935185800341821449905071889336078461480339775960768182722618046739852890969526319216490357161525480022743392723196361515671440998195597089559179505644081845341667899210903499237028447321967998698772636167769059302072961637308730275190341984760053593694942314788416078780603302441331195340083903759893339529343433521273090692283461362398896401830845211877133411353697538005741578481749502662498641365186420637392054444567865292423708522368320070170469901713945854949326817460162159815361003293550264929291057515165819116789514780108540486679750698950400321323174780737237011552267799058613212351057200134973363180086764128741478494928939994441718471661117682450207623401259751437955193843725873419642074115312676595937654272602467710594202425625119052156694788774409326486288449942119205754000149567995638894271382573591864728364565048368419402815692073517015655938137741185293595264576045290624676942367034808319467864558269451684473767234073914423839639750300491186735454199104028651800104479426477683578161810673371702943547328248710240931476472521281975520184907923313919563002472528843159051411912330196149107600697976073433487392086962647222603714065292556598112721771462494373691215233287385021806685985631675070325124809078723993310136249113436263955557718189605424277837980095063713589771903270026443240522484008583640053732001038227135122975373598900108621037337313968445080296359865928294450743803719428209207442958208459465866382099567696816924042061435384914303541948575379811586457072566517990267550489939959724060303891462329889900838192019517155390812938863918464802958522344732833661948639380886845932687072831568755763338785279815420019583500284495291960389926796882069475468941725003540740067650034647858608507640441739348770836912297554737540924924482515023622214210388033432012134652638518119534256782109618347298522735999074670075012845446868325121190826521220728432441305884547773113466183215065596739460565967409173933351546757229370472808258046865421259782654285475118710185562627161435678657820258373767649037768341005129144227312993684882186763218753192874607258210286020378157974998688169184892451869073595217723188169733628882120572695938402236402629590267816667298952629525969305227090537572286086817733626458886055055232120101852384844297724152832065322025513550381989528034422801643652457599923213057646148415723072352778175094499794950318466118672001163510398515485715631337074346006661141599393617300507896404418099372062982929040156894455463358264247668900328263144222419218322368872967950322774494225679150517786303431861583859377843088931119163393375603806864103123394374672602798702521638547314173857885119544889753362845134625356593115508568606640665660713348474827076376158234992814103809424240276945563567047964118092632681157150036884215075383116440453455690301148361482118406850076745177105609294209642924321375437559372116858688643774509087350242490399241664686534341921388490856769261572393757163224819539239230150924717486966583699436757670590141796055096748719890196046183295990685851005309025570619765970405372691092139218831238472924464467336201521746539388243996061626191180326470837427348462875434470656004468528752281838877848867584564942428317518696898958769880493043481723297970403812275895389286149542977353099486586227583729180504680542895850941633887324024280984214975837635398066865470892537414383049744562192088523910468351546460907329351049177094042198800820131024540937647133956656088827157146976983994609280551393092561390135947019776323972162828434356207246323999073127438749163853081906279380597946574945695934284763398691425837609221598977496437562519492295189810439485030235131430422439728111723015749581142482487996888133272044209994175950515337757119818001765503263477189500695217248735232475393586190867334176585612858289770259548935322071599380001420408891306845304400163281653366731227920354059755083909656811155829121488248450727358681149695753470066913259603470439220279978667941672713162086140101203003477519747250541860636237984727653716772265246717795950925639847077612386086685089563615658647450562814073205711501882019581589109729132894868266114323963831840349643709277263796078834975843552484208100281296574493082794509714205312927078800821212162079216303456734658745884664225690357857151543374969923906326667798617699531135120176303324382905048457818989837853255167693452728611254755077410520094204063750544384150625698085656560208594940377055052102448681417989700955997492792609261571960399648799112213560432382425963685955843081767786922022753807466965400954413903607786500353487280193863671315897776408505079774872040751337620220405137945483655085977118509024295307677824451405796321462616780784414372319233238629391875367128822084339630096727366994673403430465292027880723005323170755495192094679186542633227178481757532136208026492031243870580955453103355796386098416037394956465665896537729265256504303514473126521535330933659439271235905671969152937588834274072294105564603186370554724413517361608954732695959076325208062718809768849360789676271425197160512072241591384441017352013701801886647550847027124874485690588451350582948393557849682608995736188191777301984726393105754511961031271973083943055011438898332337688153226765110512865155259123618037726685716508004387003647566473779023643262680566324675410246548885159047411199337727689408546574517096062587419519738630965113103719375451196151083303089225735613730951514411751696145312141939076517538467795047387390802044224969236380047040671053467940898883135649399207529559373355350637768992691900236882747766162742301407776684162592067898257870339810351400301337522453490611957086123306428736805672341647179541063055467457400632938133264779870531432162435966999007273169878582174215085043306363600271343813113449581366949641745059269613124891920801917830582263259136454389574250381287482353472484501056162101750078128017610041792152440176334295029668176523079040269411974549395907284251229011842490545909457972872402271317711989765673893102555039954946876051703880126555505365460201151458428253317739476047640882991711408357501898474463007379938558973519153483173859743390175104828096796232932994780319914270817629005995054630662009629944025320855834348495752724406784853468584198473638396743847522212308796810362578000434874076518192890751122828975590171959864171997703245456285840547924276166377742601487559171312242375615781819740321057634365356413607152782034348754510362444140502175269238663575868225765460357883638609495509905015757587830453926775191111894569226697763246700431644046249970497622157923578623381657915755325867128526630620401909559948245219579024304541606988210136042831854009756268690340839493239860483342146424940869460150909632788646664794464193085351193824489988553248034742125504862941032466377159910615851884447848594844884423887942160711996973422972750230358025373979436334993901620641883512083247301510819071498719547351324559358233730809985447342348061676910918702180103440052444407172038262350116342271835652732912752388495388110924771688485490906826476066728830418313041103333230215278332436640025761891011815041283054117854050890980714028145733072249713922540033076263407249088412369403303108344390248684150707360789358717168915994078526012255115042841964396730010990991492377152189574580462439149636766293459654828629012757868456723105276184277215390742621021381249610950666252949451142697887363048471525178680191823662922384093512832267376230392554442586736649828723661982270964269703463721990154260856968474435975505841604067837401885347452594526617315378808948602538750710665339048297201052870670718169611152932881986500275300331532345743360535335921502811605383630511320963787404923492262812088914918327440137691093019682599836388461038672187792848348351676748196499627781527179462018249620295744445570776455901374736149022045751367539971499720563531711454283536559922474179947762200155715603845370842390490098551457960753028641489653752264849032538019303777424162796619259922406904407250084969134893083581807018890370779053064789340035973992512270911843164444521273585852839119745549198860869517367144852359259124195071888687197931426305717402613543568762985565601907979431263496315439179594586424153560267265640617118185450917825674051725283446301574803024104546754284479679848895148465966995268799928031083957078323245074398134620626720942631765069300894151357104108762340638276038405147765931232786356892305515200506673703135840823340781278926146934006713308593177229585518510778212651042847766242793056171338131520009815767171060910295909934566579877778830566483394135970102343799795542950935877152454631258226171767720689290506474802298650830961588659086071561761032741215142264020080067076099407210671021889424765140600814107344961587251917198989767782025315495670405557908619773977356284975530828858942073561108030024659400879653231489851050252880842622902728926904389067342478585611656229743535584569322022794178700619264477823727246913875227555138734214219773450332616607993407105044224745618012998307066538195952026164434672883420606134533991037015148261834877528529985712031864606377783036664258018137988883718554237851363020821605357251711051894159210005231423556221307144318472365314859156470860472307396920649574814490464019419800854017526818519068247494738762195934160120432329914077493405563218622711797589673975612146428018295449308895278248844932101367370674516438225142278082310464374806371511083974793395512425365081850582071787210435306622562194326432963595693480069560451043647507653248621956902473568778071844153370700309196411683831439910400012593129356647236905207968845239850841761485613513947543251507504448299656389458991229883315511593357929422105033414844632663808711197784514335747005801467715238462309273564813487771138731477735409718201037010824021910298509963178918363328311335237886167710306357874874290156310394576977613070221865336260438022278206190808662033009884094543352014192463133350395780474198682349963704502006173493883174658382806953362523564446243239528987148835204132650150393335614930678820300758122927903132336869969300401799958408842638635964325386864770696474945860355590891196098077354440729638704211566421657510427015128011664680388282177289821467363817002087357305545120138908773875353718864737584323052918478776130004893540061978301268443089090111507795619123425244739684924756816101196421836100775539762042324084967001165074936319149671711402984768059889742438651933968745617751555098416172719205392802928884916114244411629042049491481951338385315019769806575165618426522708584729498201511388816144618384358014677727317575889520525514588387941241927561728827047744548245883221519536738615279423311609186807085449090254943599473077539733177496592955077767873791487977331403245913524985703378382332835655015460675710344687375875734930211054314164862519583053426323918872334167396112804373674418911130510960313960231413622405866901464991037617136152139866923828637765998260411806028512139969619333956662253018737919754929042519382860680726018505004514275042769621566318515218557460595777873498896404585552377683316678308901429156976978912137436422936731955674500651957111777137097033586727346898109293853040350839642740625096168868886038293693692357533738074857948123084881277386037630814606746368638603952501009741135395298420788137987751382089270279182202159581739703551067551005321722913466797334191417637907661912041287142600019673076781205339546750436473229096682222894941761324881681252570087977317691814338332715446832034527153341751219620622826133534030027654225427377505369589305175497437724361038618289368566271110740719792164692253353108494264656599804629437213155482476954243299104023361290395722967101645668974287165479988484365727450841410282882764313071991561287420634085615649067137356755759155830533444643243070129409675776563744415007273738619606887829648090856505909795234489017164492746696950275545289780536178003055741646824545496188284700854046358557414546578297819627917877670492084163797580969741318173952904112080994420876634719614062636310822526486672153402405209830245492465507459375256233115259446553125539277676272610369367203008675429974178518512858884816403111207945734582546414582845372224850637859141180842803837354540184140668447497629188517742492555301075949496998324328740276667345845244975488727191272516003601445016877384331110505314285351344135594123922400643397115555796247149162201538176420005465879707053338450140864163958004175501384663497037386948364897254856051457845928265625357667166016540674384573868264410348493966053310414329254669773826399598337850063026767032886875574048564944109208035539917485817742513373679427112612957838233521915978879342070907626202442955153285665610535148324883430903479275330010271487168778476081904140077881133567582010508750901527363639068791515257365861665074123303234826589661389002369085541731034740565489613621724683642929195971768577742317508975959106700970378094189781525647236035228989300424141804352923154399830964296937098057743762051893619726985550243514356537101182035243204681979479993695095006463108208844506930978801918866434699141975834636878233266810356186788040242627647584425215709724936768153383758792395442218719126541117728026557070251398747998371413943536628690148966608199356860238594780677356400896529403708749086002414028938906356549134116774496175260217506643487887159015451350969276386000620271896532959411690647220102970783726897681494439667907647118424727307278301610843771816914580948763003407929975664541406681182964797922914809216732003292803432291684971131857180971602012811729508260105898111547298772245731480409316706685454671664365798021285399768585560827211505516596627888414399097689430366549642917942976305121929340138778243930839803125194177597725501683284995333794475341497651560500838133998442132967613846839419629791380399743701411490545171825977457875605500510725516317803491940602324839122449881665462010787866136527692526990071323769739600586854394570026205338251595707683947629274425453744822019020414296496533631667197754979960429237661989136728433931203978413182951840202091710455156011150959626984956698430675234796686250180470150069818896035674211693090407870605942359542487596835093029636529138828599223050113343852555458016043300637879788730508823775193630778917823412133071539742769915417645322082195237633824272335263759710750224353658920095258671541557018024868254544752871819272589418946974850510029502165774340146943181617690904206510244375044083931104850182305766142457477550854340282606009815384203492770301014758497902664355333480424845938724235848935093361219006814671002922399516083744301386134283352531137245022379975660517359110413897454493789124514986802172820386128328593080271383325500677833934497043589127781879431859305589132102589145452338651967890390184714671695654999666877155657828999770771211624033214750095024761932396700266940960611716116905127714399149663691366408272480065243817456724574189044109562419907656880728893057206028556488196511722510709641181191876975869000588825534487526072607984443696234864133473644287847442845068203825976680749746767302653571296336090240796674926240159128462105185545414863581016905651395282450179416156759044783464357340325346085764812325216705939995252699127950476409719525397158227523697854404334011115090478602341603825193587291368481406797350590858349555703569730710934048826593246181601272821986808368914157272202039863424842381192799563824407686523854489102818675486406679616767212077901510400761778470335333115696580711671116497561079138331478441275410559006152841134476548502735092529372921946396875955140323220751374153676230045613930193194614056987690331388061874432636418740374770464962907890461439939802682271148924912077373915179088312740857631744771642145021572554537341840473421947242841044404800029168069001033531046531313743233399450958601670095999268549561786553565719779908802883293974377233433771288882816064320910786021480777686703949950346731550342088959417269004272669337372024760726210088639006940000565252688930944184877024232858595370759640176616684400117807107196143176120295422504242371225702439310298933824591251137423614259367759578486217005793469364945167679164969908499705723457187859946480347012779721145399979863699473285355350765695353082324121470259456327023863450039845133586300839115797941462504300536719000514481978079712925158560506128267925907370335581569788187101422184118424674321787946578657576884471267790778584500122564188195085799265432732864862332635493670644189130280972356285200165830493966621571384023605695547516314643929337677846376164795163282902886570675140312304218888432705382207969938703853073694869186954357344992784729073672787529246552893368694477150854735597597398206201420618593225481976046802405914999867475169517565629493581277618996906477268101768823825150256099192840130778787950882892842512783296657216521043135445786631753903449039643426123847482002318528769007397972465747473000835855532258844389482735466670528834245878255588814169347098339578681516150014095725169368303599613123664786613228669092010327806775768864378493461700139354866951176418797839808791703566302076263774647925511066046067143584529028621939872540901003890447660089853470714215359301804082239261832942440194245167775068529570765243738091887639176291249635196312871211661810030750718047848058723461101354908971814614443842105476157920773583134878214451777187649354746719806073924909910117349483432145657819476312193803084645657756051633057836609138001775022219871950733264504509296708991319544411969723397937365980716691771015528227759237061273837088778179575996269328102777418150412798226582381737037623105394047782111587812407927145517099921426974191343516514376462085400338702809464177097638077356102319421492451853673774867961639532497482315207442093991426966760822120682407696871757895304862008713768529725419550763882104760534438434795860450502156154862378434664237827215303924240242673198307955677963417256003454737163588779648549470281671988401634244611449764138482153275114061664339620703417335160140250489476716022816415342015927907017667044766364832816015272776870099016684670627489179234003576348391990128966536435902883008732939602408666925793968309641954059247674324490712198930960090176261672835171567494236094548000251029747747079082333661762200037597375600054645746030852686624038117591716646475372175531080188398255908454477603442160490925515598255543396777934922657669231336877304943151889820435496249841541702998745902749271502796061668829578075549472416791050188218303542414779380177734066091942633467399569727908551994481568464509336023542418190326662280552632500377429495903104690048617006591110379167845150848900219180646999329383902480401057228758635857591226795228596966892738726546437732045799766847230000723970495496373491821444253861455985151062792729780189843727548918714544756272014051600836879631617186998667114360169260377741968485542438767605503318350262268921874489882886359601880647559259363071946975968073111965325884565846268123230191550409322407261693967954887599694427102790739940095331598722227122219332616770143352666409329065979511563547876622845198433176421945617938925317008037667170605361597320949614379278966989137326143122403302637149559903362297212538864855961657787628215809536638896981779919195444651719105530028611624394058834365043044657061164585611114289709145017311192987088308176236701201838109301026335115251877605035273475188754039289083506327013361430656205965572526511645993706494541355749986378331389487870230120068073652313396536915911066771925103956629554832553748405154342804544337851978041424098536785528818355899892287177568047191934443064499264721235136491980603645689915713931424439290714202388829457938076894703123331078729827278495853786499576368662642303331654159218168667862080765502037673774294758397378687293180486943958624126708763368543419292203738094682139688002663981488175281604983450957257790830260971093574183179443552855492850843077958978406025867786448081020305944628102830917681019486178610379977750840731992768239998444418605093236722067860757008564812761939013023061463366660935178662896063355945237882732420503128308853140896454663577504898035602022601555439666915063774488053652981211039448900079322799736484564233884150885697705892922355490395979211481346362027872536414447231104741698297669153360173418213793988639510707168983733730064854221595129290438225757301531060244512494888373821736116502996530767659187090680171971415741082948690301727586939404543540789852208188436565824365839978523152692296273167369589789013216444776263898042590785808716891300037037918727151056582202919005115260407691650300778036488882076996862006987233148113195550342355989759161826737598289548452414869916925602940828406268181964732881081947101412298825341302972235408810887581809478004418871164863067677465130177916494364792330296350508177207710362095881646842644280152863419614305999367266933453340712904043713944686472998411039618143567472897722335560111666251782023916282132957997293212679670754622608007636729791416145193582723223787904373361578990705982767244870239395006071785984510997573081625464060715468256083763593203025523592529199983082280171845720029296256326274576318615900564699630664225872944734119214293682533450928571250546008994759254966638756550093739712837867220261428945992790217176203496046382727074991958439212113405502526961216942626143897434141763810390804453774613715528141274372193689985865244333925188673382901532003295553719554652967371338434969437592318086277560355281162573165743009774599510418784446648026323317542046806428792237133129035732172468853456238730337492914307094144005527495491127831401189064604757400355495738883257234567777924022479986484074172355517740169836116141396476664138008482626914151568283696349150699199592214122527728649545775244905992405466344230361909821454208389928763388520836754743183530058827075475824677233757379550339567761779902078987289741537172019176925725037634792469710711938365666999145823009252738881269226962781561537780253726655476287046285426132988266234918696378501927256507459537954459277371275105383618601929563499998377621444686423384012239054965940513134154434005576913541397498275814381870522836286371589239475720820417894637917905932821675351320864790818872823943518879351152090298592728817501388129781874260806636222147887147477067162325914151524512400809896409286823870429851662108141984956220207333476950274622135056495716732912862491643297841869550893996388137202183435667619104141274538592995056554246495965061519121996021630828807582834009569683190431224452059748446088967978193186709763321586801417887704262690869048214782928005405510426447092686835454180504773329563839145101119994818389002213807596637461708547505162747998460541264693293032125519482129624611324400518438583110359447850395067210168531419217353310572887943736205458081153967474272487590792459310580077748658747269550201944192973104068804108423332868041996603600588923731008059382215697203814777394429359586256442037752561392691525843224487408884379160523138895539619093772696782115207732770264663386798316936597605666568609487313481694625260391498213237876023610081856270417359514988504447060281443961765547006553266328675630519747846730593034859114061367415999655046172383781276442936149931501394141674641149561740595871453919836527402172728324458629701224526130601828527664305944573606119627146851993071360086845451262140522675964773846351646969726350548147488462346658625591523617888080127545200263782077677303714509603798925954243105364035258324956676175844602521614742584841665740561328090465807625767049618341803789728636300587819842250956326238310240369232311823529962632800137316886210037809759526541331924645596536105019098464361349295783855144828265898638552025188702265415358081216792030464678054987360558375867744316898761722550515033214368542920994929565647123224827083306716933078353753731791376334076609134514474987947709096497383275735881130416219433113354792725353184282595912841642472189781577256643130440014438031203301684971014174913569012957025833958695030524663180537499214218129890456906019406383329283968219303871084042623730115430330914826435611063153672902053824481389269333486999137572907421838201404308309561434244471086651824976332815442693797898985869327553401255778296112027025102056690275767280876304403020866065007027900801213807516800475452318937313678649208112435081796297708953414823255808703679654513892947727916299291951826117486526710275565659096781017709079351968033479637094906330801502430679251127547513505920732935146904142141954061447775871338794615770911349335488869503428550274553563674843114532429589701025273004627201381187321428560268157319136832338395895910723981664434323469419414539052522429555598025046362705780643956211417770034562759065069638025398067797575332280526200806660552757222176184175973279129181853224679647115437886564995314660245036669593853317918499582385762427988602812058262483127280981026508695038354131928837056113916946016249338086848093453833727787869759383537948098002266716496825826455041739357234935555002330918573855948455129103996491555716626796235613906503089031600563066291717857897103845390883366593097179152357038210077233031785127762277978748023860167573320033510584458294305736473578899777558019610774691642380664858529389388463873763317278635844940983117849510983046337454877787740275068733826735804386328937016929153169115961862645894230950989579826213444012623394005103677683585847752655124594618553971896977453306015200663110593524832013196213027595094921405984838924445540930804759902065626751166772874291713788353097347123806161176345751858006732623339731135504585531019400776635903428669989810654997045901859170607231713164595040672551592846961885709704660643509841853158013191751852413081846469389257623335918163903558581040587591652104886909219350305353988961500173168894037316852808457674751225842760617791411674809733069650185953423773927794836392640235473227682972130167615453185792814590007329606286832923952260460566245701851357845662717202373638518209857765221789465407486248224173921815362433269250941234793264523779606594529367700866041417222555515053344817061320132208261490554061566352584114748509417525484821457570861811645611219083581319423410324209280252372505056122947610155504308770443295106606128296917590178934427447522254911457890885967006546992259085412242339435669366150303382286659472549667744204276354014262767664538454346340485803255216086051149279414571804551766795566806147822310532469885088855126089871945062705810589465198009161863577969295886819746768451982814768129452501418338408199725287768702637564554926603883587152292427061499223894241673385029330492151676405648722796734428269864478902661526442988314591165079299503346608467816432032230891007800252269870370810032307545165923655221064073008502488584827589194218291058462325803846433608269176909178582109826670515584678701776895768696371458065142968325977526337337903244724677221122338120350406151504482691764216410398051345807321885404740058138442271365981011032296375760698663756297354494302246210121054739564528406475791260243487265951813981463676762301271757339169949086819240064216613719270770210720352074566695342980172233216708961837330222259971438399879791988535295271524423962199931310903208926873567647569392773791752615961351922440829027514881717963798345803346522186293008629392095470908705016195803711460006370947652695849586012567475366028737362165624955603531442648866722030134554823624015007730554163511232448565237035142951327950249305429146564536661183375218172001749362668866154245542232112218143571567640509908767300038590968670875050487869700463391204270065510633587153077036767915868523649120061994946526864521857180276910961810773105539152172108977133449226211880965847307832763413758030465647728787603432972082306327709529381992559445427427922495113563940135259685556439421441551710747227095633306785967434968014238441740303043472611211021663825093623044217159595261213057294093434216784028906871991352885272956979930400896954434548016631395878994207527325964370795917453690687419901859614550981765960348256660151422023506740830516268536313121814343282290528314484424202013726543736625867646644250225244327189380893495268788259940833691881297012744756404037683602837007204082589825705778476734854942459582434361102930489960119281653348544670836465381495314917547879321303979614280146267739466102152563361344185661305766328638412852607110911026102870924884560643016449483811815973447434871287974047874397459230413194559934392987551412700676115402448447795272290147740875986111065581477366044666246323334330664027346390537633786473649024499540706753893855588425809207357949142610228793274571233758542921142523055281782200254042755276357462494886024160467000523751016890562510206586065645807182289228165075083895372063728789018838638539849522771094916453240168095433198690454872016361234034168902783071604017931432820391480731450366428831519553257974306517423896501617692611847393695482155796203243628901984881675792315991680064135338567268072027010602236484025478958577818571207064441977217402760658411593742662618407762137252566820843258645673659261063426179152188627855463988639500225746413819838611249926848534184119288206229328402713514630557545701923532072759299193578498833440633190684072020845187042588877237918113333512774375433341344482555028647828670208322290775449427121131490982869109993502821060124882934420262910298341574946967046111646112786469578489763289175502473063590623890601041650715101903950782153854963175522253109875239433658062157396924812173801621814930463860106179093109829649456209654179972342140083512432863839449498416081318823473110767935187556142937786049510240005410530891133556706162188658570837165395153280190810240916521801103768880778493264197621958320305342765287771216463580182695102209354678579698130618964941159754200497114535011300192660043256251976934760186834199792484955182085976366993112183098654706005510346519330712369531066756225836195054955900605740338228399782346448279748054867761147814120103420813350227750699285215155219937345248438241496151121699126170511457593932812794047442910635341746093612193682897672279993856765798413553262426695815872821952427589879736536983035302488066233630146356877187063643654031634745582922649982486627806929646410867880733621594161012144605168655953863314662538300730940573151786197299917042737651806737913167682741016727358347239659645944132031299915015502108428282646414217720472266155500304102742685922569025635190471743754921042207524950219123494487555777470983661516155235481322723132427106661782611773841128339423932490445443791404654602813970559379175112743616994769835304862747375992720453581164790986819878869062427800465217257718445115884569580168285410079396640403885546856081812567366394587187555462973089790768830813848345705094186712340228597728231554742003372012960745714230017578114941607831922287708195136888760698715084573366159051538243409118780385575533221289684861620864399821425387201333867906502270626651453423934382155059964159877063798025103813853493733782512110528611056856506966639575497268620112689187243034477313060496854694418972258077574022401449363126963369601687069703587157227046727787994804897896201084203348219438351976751641522731905591987182543681867381947373077618364469902518786026560648837518605840802117044978042057101728157428363997885020361528575099762986539647839340969041258212524727749668042805374558783110596569227519651357117782584230172831141078357992082773638222473896502807505341326258548993990503185034265306137631024488804451727427128112639959367432565333443139370656708323239605519087128905892077474290608358438205712659698959931711173260452263341043025020173574461661776292766864907735795127831257490590323311021135273210851975117128852112793804134335807369936881863272092546066109404643573655193087583357463687212131390541965439632014519013303325550756995263276838858544162258979205319073694427954502343271134243745344394159116360699966564694445731342674406305576534380842049948045541057834873633234503362806418571001622762364396686385958166447608741665224714339043790394144745161786889896518801386229974380816907245179018753115683137969897585788614115598492076211019857689969895903785905393108311623700426712701093919548166040647697328824294265674090998640412589401803199012617153094499232618027264174022679921885527584155552383234218486227213957132904194220283069008678002725250781331655586897672846731056894221160301690977845017839668114373672811894938267792666409972039712640200041074334657842108445187357071593669435128233002211011771609332188994893118020358615848061188733982411602634087693701000573197946506029593294899798047075999121702964914432383442988824228407056243373589072640951774498176527292762215112815980023519458050411376804442884524260921402043818639936114584279936854241068181312471369920289585986320360726234069035336910481705000318959969572131394631922725680187589031866753912489691425902067597928054027797008473475819046474321702758856330812081683882450557637795152218745391518417950209677179733266399365242170572264821294946241419523983813971103997344657753718304596795435437049067346405943422240561828237771637702188010963555216358189593531218543639529946187188261031237791186307589584118540592670299415025223177843309675257930762231732073581488689838649061096888081390453381640439658890818157318407999418084191419031481457948108093945361450124442648931335346630472832648577583693232937872093208952872555561837999581256810382472719163812185208620376758310257660290003260607343451487390195346493931989408690165164650629555812352595914160170822946770847650417732807449536798584166593411740255538897926418310380979345188140331683973907139265154637856091399560076280127518272334787023268531375931570201355771893113011752816333949732528479483313594893197616876016343673098721634293378642092757300034918079617648876517023188531185561396085647863079508465303561903741412692036976751270317057710769464354773162212853807602605981419860428049012956260625763398044727854508121131407668332557492550801537426380637941491236566163801369486007976559319668300771366664352672105006190262869715001420745538924267388190833254916716033453937245505464816541948890880385290965989315370509115282642398547798148096852865179684392056577005837886822300728986563139992605982433440840109224425769770215405414039103780637475025500355831551975826673053335261254369299072436691203888811346203077743175159875957612041270529581906343338981355955310051949227302354121345760464882249120992050835560004502285589720728053034346563943647418303002760103558812076784537978050159670034849555784510839052921203786286177731872811940273487926917391252087140397593979934735529172671969812530284032061411082999455813379026799967091362700028621542193349361886935101041988143837748309707880009804644213450632625451886753539076461918491634630452454971417674137702313756120784223657149647067587183089502942383166350009005488787890696647923792112080503548724097371730599792887068242935087009508893696527109257013306166907598060200027442266099089462361448524354740048961308202638333558422000223093712193871844294857400701083110927450492540381201766590564032754337139391375037398824676360712856319087855843961185949298827981091732137986164403647782641964862657310087541946847002572833156994377766567510572518683713792011548989890977668404298111003910591349443110290017682595932444419974497064611008356384749446666636362828047197821855419063468427392282896979741834440462699846858886394821145438386328728474650972532617936334112175688715640765634389117593686868624969881963580789425063141084414801245639740211735070275080652870908555228312913864766740149021679357051732908868351363958847355423793491913229185851766670098162704492059645016021777510559920505842768197232879646760416165249369626255955128128285161083192822923554731038728904794523167048620642864859761888270750288850021486469869557217622563466867028601355667105763681110217359772809998665286603000464397277964830930070857085466384636041821429041952578389229520538692744749017617880190298775466834723078274617524092415200897255332838960774339404679607990541437845113995749072494220519138451353222337521416205984785890173308233730674454962893979983061435936978874140020108444927554562269601214982470154364503123922887525612787901939611637902368532930254609816512469645221562311540270910253272878916312763440365032898294427262328917118865691884720943354692080559067372449008722718693011157540313535774418317625157780997594164393981089432299579162335316354419311446985155534286206838939247984855618608012059231278476805890500625101286979338445591263524221339881287022454253305973038339449401976808446596756291925569561394991733669711856956910608158350037611461267741298447890073744284138765280991846546261068936194565440807124200600399460414330332240303034488868635231229086300429975947294585995385368268700848397778134733209448710371260231714339743417765071810993107575186246781618357531078712221453901166799674855500762298029626335994053734660568615442204046770649347743337714586207166518113610252703520010787562936691460067004218706600888503126352007837983028363596981730714994548518566068276849320078103958555560534695693108283122211911780934102807150340671341453406393223776629145726321734639504910156430512949173652769406403178816845366412871097613458414135497297103575686096984341160832898353644697619169190212505546367174957763552879622269010061389735832681957726595474471611910407885027035386113959555180529381548099904167854708187098024766598216762249194353197487962290301129278930199520181486532407161599229914578547396504729805493380344269380048292169628889447221026574457499825458298637214672564771754300176972482704582039954402442088160212172212305848106670718678414490069387003060834333642377312348103726894464337843711673155012940180014435194659028916640713146914478937095631147652338089615629828212123046962400323494267357071973454070579959692264933296551823285983440627224150983202165382478028393311056469994054302933134379278810629848416718845325496583499788965963140888381105461494776539372501453486318715236701802984245138020734990699502567612288217928803115320290054007623103225768196996612316019333072020602323948331155626278905673564108345440581374394684190109915341379131020878942709950759790862632870418193686562993319256166179327692962511061318373542884731011394162572196269257102377622867712811444406110095780902054448600829408662652830565035357147693618701292662650572079933667974469036337974018184778097085533533987515568106703695832261165195112832405151781102195939803405142930888419769236887775965885950883027500678380573343393076529732267536095005153286789652408399937312704873183299619438702238456610799648464156780935486953795723552292454901315627242511746373730711511296706181722179793207716069004147556037349128766322569172187993778360390905045301079973292106303467577651495788639187674045722314287767202675002448403559461234954119571285421053571007634526841996858295203773169709043647709640209303328014216861492968592100334486473991665514072368767382621543462135710248480852192979904696190378784566570064131131563626373367770161213543894052780729489310644506161868935576094563805556262654424787533406178894866171269411897935745425916750620182132901783321991001348038208031936496759116244006126264835340585409847892813393421499102472172746774697813732872492324477276275879328890982716463339593522411529587348854704619164107134699172385649427261663881126055264546041382738599295801788935998783865692592112533843120483668263782659596660086727380454264550664388997147089032953429146250382990755145802353052851907018894506604138904341825651810160555315881702409644907223632060087136678768034408070127840105172820863581414941506274038839830996890248211054934128671431071521725226581446669091491400555890613914478578908316998318433707973990401949298511264832868811680370476024943041292874592475142132761756385725311782573458422490576343634981311791242265279725008582064309510319933466394398046959340608662863542443807706957863154930307239186027438338992324354286876432400291836717466793172918182250711731524021602827313665785042239687703408116671198977264346749462802543527354164182752173849864303500634324481715447604890526305530056517246808608863290890912674335797377308986136054064923126168740108597982605326253488786675622118955750774697833993396911009893937635388180372097019898757626069733195663551535268950497144543893941175547750994333816922409213688395801649566634615695518749458253315048027447859855326616702292249287733094906126384494892891576112469016939782076360441408344473039867891965897434035368225202469331019266733331953182017185749286333528544375515202353362364638466885326126535841793858585371098275961920027880951622488243037562357607355348423161223373697432154054143996004548173577399334580004712435484534854777597723113175636355175300975925405410046133051072446095986714695709992138595450287335218157616431802441354752134957497487380056972841259770566529974709399707059993254345550473190983197554254859187999739373644857969543069381170876656809665614031684435615528455008067441949685828072035846145147399714520055869926787626112234337840017589357620169891136833778306955163633711475804544958127890301178869341425005730904907638418070596846818493856029580146131985702707835045778207372603325792794241110460876036514792944463834279196764171161516849913599007492534924743472792144498443631406824015452930888530115769946134321545369869218668870033894190762937005287137505312692253862815056915198345993304387618588268512511233743670741887470459462124186400702890924973547596559642587776290065118803214789330135007185417396254179940483779418947814991426549581450035008270851183385632055790478957011368667101198195434001265635833556959162277177008438520766859340417242603913391952921045526419948969752789469049931717762631309534503528426549661499424685290133693788826858365226093531369376421650307140980387673458547979971717512561352769162303207976611578348456225992360926357593963528921793629104749596814305771237957943529190931779697021205390713788416570931286147676605684979659902381875239000298157829173972083695483383374528016590796068323754094106671929476207832815271730492802416985199947774427038962651727605777750526549783553530370607775969259943875781190412472330425196348228557598184748393151250891106000395029403688426909860746650482708594072286179896874859767260819925756569837803092139274951678824525995994429042285550563029261399188649436950915871480829437929290009638936271692326243431049369744793106759521218398548112388600935026858596375795826043521666666592504271098314851600148793164681096315789245048252800843185187369827415719927562773907327117507087974398681587912024087441150609503017183920685314901080798433204006092417556881370889160055732899766736968267156296384529282316348607179116314204944992506661628037396061424472477451218533313368375141753744649554867139861325419145774496056583152447333809524379984302834521868014940840690062771014907620663687109182109520960762395163335107536973650287049001420353260523492214464790249199986915787524928751693836369069649430722610813187465054242589274755379073570318461822573560360764527745877525699126856756424101117023713613043932352109410354218064562465104887236936833746163261886845251746065780701394202627233239113401577402305390164186777602790536918755569946720891771231026538791864285202936062691469341182655663100132541377180923796590691107559762344618302043899464949447403069991411227565680477711429093315586338154775607468576778873151319973381263755213578868779752541424013800909384405873017706785365265800063527053809219671482202437821364642245329140579422925140201431069742045892491022875205810612418119489834720744559503765141416817373225286462814334293641173308877329448064463973816620711588978609048171114675809026519115926164136602907064228396848797515342771389881091956404163915879403509661723571802161775306238230671180973468262123158028406238579046237863706218396739918976159829126180064706652342237403196068103541314094447722877753688950633103071816742097702450800577056931345486469264098630283776042644735744949922274434734108322218291782602239969328585689147009343908860727541219206396690884300116566325054966518622953367969154918688235612431844042766680576584207947240208183482356046153747831380108270895514468433007726066454316334381745776997295466850301114476657089649489553470201073009322821509262202548480943714216931699670331568629127810884469157783887001956963922717775468177134345268811881174980414840524903798345566151452209602886158238495321019586825038502140055593570070820217968153547797650791516463221885843875199176037668048175893719359390599913869178315472306268014674842888275178922033321621991474076097493554055275215422255974955870461534900948808660314760929317567875990529687570199874433031943880252590095003798530351461686977156571589021675903572175592332424852888054886936308098758683423828905946137318422545955137079892019944887173332898415572101274813581830647131745505825980019292469538740990876048099074164710400296008223696688816332052360572513349002621201709160541470454297376657159455864545434508082699639469079055416229852680713535979937453753778381610019535704944974338268928254997532215560723279749637181431506115090509205803241184409406410858372176451145571335161723143126256087238371154172162424259373131153859877979824676655971594109961012455369099390175295141288311813381522176505050561353207648650329303684568647516770079357519797444583668172127023288557597947207183432906769442248235746874024823926671538512064394121891162763426063400552433269396176003278308909316570004118445664033792280608470473613717170864407445372694496684866400210006634599420068938030935746313930012217764882172141685783453548008827334461898627276300464324105653436040683133142094485496294460145292609601702348724422212042836333636792717212854926302263369109034459265544969939933552830606309146030814043465859752602137576080597236133781334692288037057162576491938997999238899216777544979399987568367781798371338617099750548884743139822082522817526307448061786529257348604635432324063206299972952742712804464639150736898600455254967689288982929652488805127212363323214438358580781986380548275113001438185587000148883297214090999833181653419548310793894257663716812069881811927848216101868653006421075246511109262360679274168639519732143414849924343416295050698638644733676467738846842428554818933913921613814732477457197017507016245255242149417951654099535674812590653266172933013247071740753470040189319416034275419761053635164172076233977490490952041975616757546662583765897567778626002653213904351841443060341028845343194327600296346134368253906120266692510905922123269931087850136218883136101693742769156688891614340201783818115052408896117357392537184695353861576372304901888777474548274232031230830394792571534282871454799764667051969895497851213303630479731655230008225813805502897730145523518093744259180116012729341799873197210499194662721126834129555577256699418399092360526108250231771115125764826847777672716681729391962806423499167598674111452953448682631709039027598006248188355662239764726404539838115853796263142389645590207502693990200405881091948307017420403385739883830635515276318065178943993969173072433025146218884993636445443828801930728630540155100670680578147584456179575762927372447973180808445471824762380477431868013939248968910949418079631151169387729152302182575941270958215815794895283681326686844254796280908787040981037232739251958035006775373014758686268424033192852586420751896043337052440518563256412974073696549976793146809777412888848819193420744061624547855050626219088541071317774665273912706663279682290798529422198122750292827424563488481562177288400744080227053127906061431745235450478511729861150171940667888085179371565484654076255745661424529975535591625046033104408221365476448884551809731652581368967903556186732177632665726185435224600361064934787795437184419978916957411766426590405617890925265459618001071704492905270775288170426004058252898328177531478166159357696268398402529192290542322982150793582175300397048267497520691542661609425459896260903966541103777117379266156515932820109284320100234785949733460607677792835461166668921474158869161943214026893062874188573252421529132214985689855446122355205756892491480424968822679344739041949231970630645620364231792881813239786040338879470627749844667193364782578597437015684251908700311661732513995291321506593825038587760292135338699125790833153513784738621385167965291083506241364282176761143022831168879620148251676391193343247697281358011325669160030488016102342709312844728332848254473654101096616983404548487401294658377725638603955661513590310302336135779928285472082114142525507476903826448166687641082005303277181543109702851722136521685673843148015681959559905261031239214784986670408496344172325488547839543278459317317997762558182823817991298336692881610588078032153152491291999300560847755648521180588990241069490550229134382296946185545584744307760471250973058420121208839568461393969173146749410104967954696908086870248478858417830992833533526700025889943640264061004254537211760714975819278776240168573402471735331068947693102565381144763435817270942536485818435464785149243739281564538921456482123274160906210692461209138236304507839807296485027596405739267976876012637196190105072684116284134855968142781910625023323778850204573542354316537171073612323231161963245968501122394025997125662636926288948217799680126210722394717865628785707427596501190649490099543347293156300454103654576387036059633686894512195946914625493656655722555762753097266080622095616247721479658091300954145800270532956693503629913398024118324868762191250440869707116491203440707184803319304853599619868197701726485726898589918742528587747175392752294695908231540366213022117020484515660145885452257091950089439912302285980355726612148452319877047940887734148836088802957432272478898708512917574259779450942892867539487124203262723365731084306273379779762116851009346210185476715398819393753226659468617123892980571641423541416819600165446248508710187018161149648167183969758034913574331316766416802033949442769442162170457296852671358821145713002932015331013363222338607647694800424713667339512340120003315559637128942072196953804632344490829410111745951874389461617492974968603770799982192371577781101366448995135979102418977773544156802535087833555011248712159182560371953777841300749820661260394011713775346303920822719721750962435751859241241432793763756860338853405053915546036887610670137947972192756467828062848066776655674259352059077615257974505752836959490834756486812255235352892203725995527931650722477819916888742679046392594743942858054612894931575519479817440046699540237849121867466698143268812682136199158200021125360559846826835772757467558270965484306520650090033719635279731539876971007954521734202983554848462292464117759568691462993512287276403184712681655927587509478774424483977918463012533263952583529350599828987678781675497553093993657596648858695721641799479658066145943949464676895362632064465225257594887844545387781061000364676261971797747530671681603303908487807006199505825922608043975269983386721881825275542091209775675455667852342929481568933513385647025489215394842576595142619299058402806570692413341004640619858981890047433631743992371679921855716170256539023537653768069848180582745268688892712492191152935654021581834140659067913564666112524583693508429836892622573567433230089465806405899153669443232998873159786489069068413710383769328692462619330299840467709589151460170572791172859623961407328873268765540164479687408224296603129825292382505455262278572440977306829415787297013707363605119841146554870897078480186067721718316402934642003907996257491847995338857655745662618694791379956991665220080744543988857013560606585190021422344692995878370125195826530161773788826350962037069552649972751522652403586284207614662114495586510164085991505833264271828390194765845225728596430500063726810665814213604924467147371675283834620138590812709391200307875696184141380832764610305692701227543613292841538778922095975535410774330509315666639958416191173167455915501535245627220514590640056020323002946393298907672290370850099948630490532908704143477457495908131316953308442772555809915238598649825087852910240789303871218227189243315521658393307147632127648014362106321768210077349624498202428031012416905806009847541474218540046768504335604838900303291747009169001531062652103135048029427670524488725185512153787169884788857184023591544153474100546693440872391972563551199477164060215358298122476582550076862261348049200771741272412976417071062134840694755145330398256484015607731309969259297940465488265704320377468807706636319130383430050273875307135241189361742926013304629490673400826873789542379429657151702434577890307128257222493497307830261791823017102179283988398999320160350939741419877358852807644945014070106111828367272031355141266470664434221557868444110618366658209664603881616444265865681324840077576703541810369100103056122561692964249036616565277103175601724182057418054214488390555634998582816268109751260186303752667499320132829830588546988457508716142029142981744021015356951563726069326479788185421626874203242382167582745052403015242994720161538363515006133117542952662429919159477062676805804016165140338795349778327803889724693573861691603060703424387735114905673606893907029316207531721160806153703041984986999981422096697861644483544984639770271764362123870328625747054688898388253548665754623816607636139583702309922908448198803839826831550595484670577906509762412390666263567839531366145951566463682518864114825684001390830823756042592700198085201645292415565958569345504743934301129922002428980963261072771857837435060547259887637359397716657412279596442199196515570142828239680572436364798408054526672193118221292208522111481207467160159920015587092232119105942468079719480971096443302144803798660772801226938133739325378072007842246625739713742231413035462130487262103364451769498183914429094236802757523004260779747634799177170406814876510683053700883138918251120231799159938086540787929371289447695406954123183928673463128331153098340012429799432753763225460293445913805294301337143177936930953301631315285397752354686916902229477377013439104598521827987121508484130815625673421843902938451779359018985720213836821117126753487650162131264447581589878754194953620485601672795475982398576191928921031907169252779528767091379804365104796920842878621410899707978923664742275342199545510061387539878075093518116495367675633168397461107126627732147530672746653507945592284053045258434405489182321177102680820183247701400861977825558453462620472360145830799625344820839313527140142468655342598283343599908366063795886764956543057794282824426926854926698861837064853720535652973729732835977900523592133620166953277366135312699505003744873360197763991255160311809926241277932176494394974456362727146736016721973188418746677436996977568221763752712209515573093405441826952629409036700178423626768734380455658175950731563108225778147890794054109682199492870779739419184270341927197394159292452536395407643344071059554598459684096082918910807354445013218979108686617879735670386413830805283239588482907130108949595376843524371996360452589871966717215121777400005504908485194425750318114005277379780247453068866337158087555921192646694230667472877491815428442082023903939852600264268661976811120913891436129051703499634110165882936583712102294270282477685657255363091631990255382881369248171846705290370172560302559322542129834047757731678102171318841436731794371925766947767028844558889886142925320138004447000734497537260122655928637218285320509728640781496787678514173052090948742400642789808286302657951823326997730233643532586172872780280463058282510488058369094472899915110247827379480691847177517416603902951578098085999507355234564787565730949358546966989002479584616896083057920502537969306734108951014109749163760316837556547420244503798425759386198091161283362761883766955958791855190814483832273764278202525542618798926770479920505015548397605889027421875134204627599218820508419016056458983005382363941014720925344293383919628996715780939357840510268977471372927984663669662244369171736370091808529448556167283177785462535733010019912825289685178358615211016535109658584020471812282251721513935173689524165825922338831571137629134572112477965662291939195753914273440469987497449760220864363606476339304614548922519974249218694498106005275677363266255113868989139321471039346217034999996625280103746359002267467797584799252276839282712521801995545299825756394832738459501931868486036913381360229449003014687908936646463327757047909362415882161621621796174616014174506430280354979343703535804517437420465398885201431438863674931008836569136767513716128678055320972526005355531150710980732109631317928420384330008995938668613421349972300445464311562239566813713848493321575589171696095431172527484342942307002962851097462762640546888126526246751377377493039201725853060774996986609816949217146037023054823029515090984051172819174078560357626869346366217016039324132551391076442669376143792278938317709777944762874797704910972156907352317861608136391836969627315834505246538386318954105932572609597493032578425475622883978769918521351358526205297453998411098575472647121922841502551350114546587096724417977684996320916645805952293441078680868477637281864259443483176357510577438783962864403536271485386503075211594435499472412850979933104800006813392614618877183859329857779570001658276362168032168091481808409739016366929146259664670149868257008446855150864026142687685091448809479788799855194241104795540627616804189090143958264943492423987661754418171410536088690158671208826756572352175742289024299554716037562128093852340068013130393205600357142924686516175331910286736188612287920863772819215844321734962790400524241149380891447102116582705271975741073940580771038959480242413179943886476925487611561345026944569988279185167822845788053117958169657908660858589430650166949648796268885958661160678129047601348706310061018722815933434960725306533069087246722629728468330007295754026882587236723632182742937042529232336941090241911548749029569036970314496574981389848327768364383774632828977754882739056052389361183890392278747592482879443270133516919401288918894189661557669670513622204160750008142924957863172962281186216649118532892833606278249362048379739126766771972356683347275981180020228757541549854311274411309599243128658852044649965694520411692028038914085056405614762352478742176490852167701272765351858944728249076433135499208758604820057387793595886048635937570635780992397936270490047315592454067649907597534318668165284439344574041662095012112978026375916928025719034325566880543344008866747401047576500334806360228549825020761538006353778372666310061750140412538108957847753548726830292137262787528876833743560711259225709676393140168287247641053833781524459000549822055466143163727383291715268247488641082323547000242702119388879197109029539008107955933830693882119718110129222060450566229397213901366265552307546004276395087173955386512177763177404255051485664485290773185925442167833971638713414949304442301682869794175243312434789125783588745253905320175376856664626898117777967802488961497461409656045029674124393702652324391762333036193717935172133947789493127808624106355976168829819744104818110176274175299939913134524699975050050906207041811590059834437673776320473577204526434201758102921291972505405628809318369054696295656977728945700812825873441681212787998677774268649420918561401952898075853064160029513925910772854632062604589468725262720455653623283129769163107991202124373397811264262552847469182583578533735782047670952857942792281629763070919249182782029586613028060301058548527846254702926158727257662283914950906088336830928527525022906091809777940330583108010200795935224872529916194247719763517381381821765067351908233271804097536314011153954116006590052770739965669396696403083649494667047942906954331328494646831949279519158262722201614845904069180396879265592016114942615276447044710269757131786036470856392157656136146346839423676864188772148008426080358855925481886136123474186521217110096363184487999842399901283490725544192104181876293031993476747843021735900614359757220931689643183693180789003843647770344696256169602217270634825415447229527243608265827473328727152392042476088792498771044932641410631194910311055714885542059786766185282291252284241729197704752546949989634793928190873280444230833157512905938729240230236508087475388938091309694948929421547555433058332039599956808850425614884879298146391443459236466890539037109764325883538449697752774040342946162962024153777883593755964137996759584073922186050252773165222110886950598406371023410355137304684740690928737634044372903871526840803425119446656027718115019856489071749314738102532048943975736847832081816981209396202479048402263833036973109292973485978689316663370466859282678799677114716777893934391015273110563275096936413589092750841044530483741584031072458862900566781312576464314117186959055791720213928782309302126044919975153451713546761163271782847778771859589319471447782534246919482710690469206765978083353393542390957151828179620356340853157182255609620090503087745000057017254134558007020320649638576462134316114572700185057240283913489872806863538270513121734780264215239797589516227305333592096962301926161703540982946856454754130644422004464671059773470625154929468000319988133328685198440861438520227064038604321703036625810394578553290764685240092302702009743808052877094388100636221799653498838692840891718489388146328703612009312412975410354181488990500525585733756198688060608887613194081231055633226939326892185380315755044596346106061596078547221195527779122337449093237742670254192364709364701037019881868150885109075229554700726317075575978762230861657995784030821213316345410374351232674329992691972525976336953425812625988290923669195224266905574427687833925933065401926241852564757332436716070555669083328891316756519682795785490504110696208566565975213849092645974335512492892052914630776626202972142111471592128949493521929523732560868740387539225638801769144193053493035078554117351312556080527806764411399421651338581054442902398226317949273221613249867961209167184450852865028804419503733905305448782751479182142733582729071986302925089426830048762535222708165460453226500214931430489774363185817782735937962149510182149754493481318116291925065210706400221904215047468194284634393857508391540207889878816643680047224039352681779845202462724648613497128984427242513533464627303835818760293858564471102263908992034955494678479861929558914203182193831635065439018396218759827350570751005815074434285117123358394237097588406279733363900145564986291170292581856206633823857878583815917613602807916453816753261205108730815070992614673045657670619481153284788197921125926915032095652717067323099832488932986774615994665182016802402070634798934957146238756329821322224447219497013217780199840542465336981864228083114270608891433007732985768546912132513193287276195415110232364192329603949601641645009608884619490125991685890236210634841761339277968402041069706548158593452003864709116986743417965814015407527789727283107232865127007185405626523186916703156478373846848495059982579082974635210700263508277695941667262802133306906180435525041288029617923090594332688567444087513164847900070167895810889594375070885884601734049611060640294805981655234252535206852594084822623064864089486912671852858568996795959146519510631168260894323643899887395296330579354479646077069675129856471350409389114858094126251273032513058388398983389846365188507406235499961039051762273459060868547811748773525739310381678623923620953789165331516467070235947732858408673839424526514668682082970278813694362563816536073567003302008601874516079462388889562125677776783060985185946252420932910638860931226547987407540093201653486045404820778859642657025244712563900839123693398910045371537607531282438018231794876635193246760802716694466590236302537387657306307943778458871671566250242606408879946030806627578958575971508383725013916506178875718751493452835757492305629866851633462475065193119776491707722391842053224568051775650345514802999728763184568974272381828350590994994258817771259680759874618786597430359812917276006564375103128857450184472421639684009552942165959390199854358538715325622688793084026905983873382909712231120648619309877394273043448100849246979578033280805286978712088717141352134060532818564673672132214304228464491590462327272529134813922240556993760659293261172274329196709131594972618091893740947366167741463639885863814673292304097431716253736676025814044543959396069077742962056352866923667717315742987793984300073740650938133007869614122182581860045392915760406319142705562091714268730957161896728438781116740106758218590333169438843417773484575987032941863984308799048304897387831639431431617850452482033230070572335419314364917264810113717847620254126419015473338676649136327803312252342582990175727008723249146173575303018133982844477518877955484322166347834038748346942499270723727031989049330272919736588942660816313815842834631690363203072948344480082722858640043899109259872809613371987773651151711189661386255696864033836316252380215758431627066108990261900414778780430057390202302214696411027628481580870190726495138961820479253364048945447926549649489642121785395346817689956115484020675749633984026644084561168492586998232016013305161116502921794491687200603845342595024366632870799184693442956574789335047444687110937364900147416982914903915898750296891803244959378371945683724914753607011654355375322972988067628267374864542241842295881074686732127517337280200477527005574511256876712476809825973510144089923314968713097547675847241817643645423335031405763611602090594578064166053369659656726098642652861930850946702778081130686124966721086010707106625614286290192798175392488668515195297510875853873629838396400336022918510293533304402815934851412264326251441528095332969460948861352590383168252456809150415305581879567897483136406585328189900773429088792834423527620028402177855631665051082679130226314507040177955489090609535360824333823029926436319220795158171395249182687138165311616294530825472625920011634303177413165852176317653481616044620501334156022133257994745110713741946602490148689422016704325704426676040857371553774783823775992679875875135921915722147071871904430421148372426575395682558916765231907095392701008468590551245477359811106120245997009270480509524678292935356234495500839853195277944777159889039523852107080649333207146355507722159985543431314683061799287972622835933596214029662265198251868086620119923919521271459474082068461621221297587030278833940614685150311928862399709969895048996420128390482299602943390460183383102828508083850668842526663985726468736639294145997312563345262630369345427812131225902402452093370089530684724306680115151381539935795434370415955119032368189945060136322160702048875795818131078252833313338130964855142055598145669320030174182432109490065928066283831380946070841306689414796837324748882555707080731584344661821618305422783511361624476391891099310399219715681115305695094108182424819059743352276826125419210486567250080242870376661003679038909476358753741734577391838441445811989831051539931886781628829800979588874602253909420374520919811158186417676258273968223929883238927235953822624941750650919647810379262772637636652466635382750565929364120748713512777961655525997656849846775130861523924042666715329220850523705787065840596625009737086218543162063140497045291048635673756664403715537238137986057928042855979235391701058083534378817948884600147856911688283992973213304083566733857947302065051741329949110920321739401791708627019076163133219964319919641409153206502380207266397493345383815207227046044345120081941323224027524616770570952814370707852495832923466326342358292243603055702050642495939570571565186973824909020133744014640495958654430375265818181839676702337877921757981174244632006853996814607209870502608679851678776667659632038424951018086548254031718745344865172316048655002530740353196841090757485173739432784901624620969555549761237952746229152861347177951186058358604516477137697185315690126563556986914517553469834843907953227204052157201596870572022849159964292763611948519093621050731978741412623727386972769678988668005593318101733611026540086370130242663721595303895215164971688791436525293970969123211694274623818270597732365606517906757808138888060279475463604920924104947754097384110552394744863381681787582958016538627523853990688423922810258236746215106671027897031663774796370456104930511563587844858313241480959416913521567883969349562722745505162539597331631841704505648988959832304863027012638270986919665975799822462129243598017780194815871158512535566299038161455969213109272118648299181393822407985949173132045072602966218727927170526914404481535399159622815242953852479784486126631095683139661203775905556428811234906171680398090672028917535351568475781612087362277798551781318346264209900448898403289688768496626632398159911089311918722579715679642139509119987655964839110831807863192938027067350285936111094824787554261451475011444405818028626987585268304355550378453643508801187583706708201323905254429550415711588912004898026366589557235634381247059381331300945345846289928638746978716361437431189884302151561809161849503166347036126748142951221854088868540711339249636185980349267744175497666864469928235814927902308906895598792528445862582648258110192716168785673048371967911820509241390504601802135443213668213671218946444428218067071483982153748880810276523814864216862479315635693081253895649878405229317229998540269987046241753238618655157368036085328504716443082239855404336273239349097873137143272347883752830452326413034142869484498755064363231948160864397057509242864010352620229001625716045536962145207708291927054461374744410693112727105635403470095714317878268814885162598197628829452462096009767207237506142770566979648479793666422593179834644784485537890580598979181951674330317087498903004106713884219205451111789474402446731839454874590621481805581271041215478243876627879940489981637204686708054873126060111541118697157621278871763274920095118536268527147537687520697880657533996997946842668706772966826532353073331267210781695171737810389818842975668102924121955172968069079608445877661298472305568583564479701285802902953555392480981970093243929196452194707134931508784499768149951427122359597397464194058655984094588510430802266797935117416777530897187704943377320852884056174988391157554227015077494160267641587056386635921716059507330389364095788645244105690509702496728427910057612440962557329288262202676262769375931991185539131062606533087422387721948321940897928960147788845978291151555428046124163218951714117063379444692590837278260861980564942671888248052828293989098389915593265023696033062534323666097643882111586627436824011497908119015619299825641125376528799434528367068936629066467749945719598897317484102652725721654351802550400081934369084220766876688086885168692473089655002674085446748618620695616216069859743111494343731363162659772854248289537552642077807000552668582635404489635011900931984229191185796543883768634091222568209112915010143564709094073420943773237321817163793516774079068715999503677436072388768966946101483185177984912117393771564860928283810882451904715160156471596499489768872278283039305623560801868084475928393367023783782501104898546914744940448187477370197204028414481113462098490337583894137906068199523417142603008216307809267492520260743804300648132793440097517026324682057088925415160453863234706780251301465453252172706785380188680924441749390838341820335115180495541988675934568201756509089288457576898213673529153399268182042343963100515661603860851052442033203261700231736572872639675469856500885782098136605043084303158171897674241241157330994420137332551959688587473114513403120838886324853113183335667275506307369573820360193640803394651875090626462362746935952841788956171798275405938367142249699567001971463402280133464493941771972110521872361032479261805878185926408242288797980444182914062584208771264966674729668644394823913996866844990284087708466122371234846670982908407574428432638287098480526468045129103086065095974388216033323899751672461970462009942505647745518358054939913483128681055087764080976717352120922235341970702534227002473731313238012027849968966863728427034937210606275294036757620833856815100531509266581692041089056462456651483404196279531284756048758714248777690578810563448285307224211482414885702852592972150322388254676693133489716290582620057226647157641813602757074204443361883745787039140848215269316898190131104968953820153215013239135010937791426349527364829358019443922906791338224617372413583897764372405722208903874068325367265290541968515948206346591836714813301238061938379740669766783286371491690205424467592361640476806676497166370050850708544134114201154290923312814354733155727135810599828221427104564918403204688883017735202396486216692900232985211949234034049401125993489275855957181970023784630177754359433229939352994203910880487838646081491747056505117621403560046578422403921950239827935618235503951830017230170457559674527663668875335710913088616718937195042211720990618410967549930104630487026341232341471105206714985513776568929372728275301682058726106665858378113987512492790509327001056838266821948329019435946080816952863093837295311636570639686638362430631020878081795680314759903451368321877477399583319975278717233498718853741930789618721498067690222095417667948249089697876390865393191104738436394703088621168200625032621150045102752657632218216981381097633785090745246091463147590711174049549794978174821240505258326925193072251094921601069129257038257317771688291120284290648554719091010561773530856592812769392191862628127529947214470652513006162656067118000174966509874738131117619679057178062225964500984389821970565477875868375186081851153418491710852516734980666508495616916933356027676903092595436609646508075867401451968759220623307591625789992159170753699363176230040885795776189238884777907291661606863191868282990746711519643536259273853170889118283705474408551522506619608485834081060901831547513366652833485324328416041042639932777039073521344707259895923569368637316465507323183069633535589582935518465222144646959490580021507490003249538970599262890987623313721506872599366592683516122519500584038188691467589520987797379941685039061163846537356512341164177037281102887831043404917805535193042831166408378941705774680598655343080497028839021930442853520685454656369216703559616629290400954572515545130537647896602416577385492826395384813602566849729738554165606671547296778547874093681487180840945204797001453324951071716318634650374896185002189501331323033924329906243012528724317544949541647826817938953616678909907625292490799861666276969052020907520997401438185845441562159332279659279506257579310347603825813336823263866042218677872106622064477016903507555631351407543245585732018606997817807105896553800816154149740858108731914171421704537553672498921732547137861005137020687148471070576096452691284251977935405301924117961798309984665204964456858666007877325264120314101968728591053187377505817835510679119702725524229499423070885253067597983743502836513445487746455841150269090554128003870474251174899800153772961866754756376961251683475988109457264367570976309147511738262938695133466681280406575337380211281422145830705684793779817885428469248659484476402462747558127711040508011858927142433369676320644096021924995420694315710650454326056842858626140452170849084325021884919153806252429397056172304205843757383085911982729922126100226347813809356295431300859788370808651510281663005390916605025742962804197312368585783882237971503723268636059784562577461054649760339379273017598078990977149967557839335982134803443919827041798674418318099982888548505438906993131389251994384387834466001965549139603854587640424969926729627413676158927942492047248603640945336123961085221446431673036696024802655743986545869681864490332151788886546180322333951709365240295400472893044717379052102103014486444892906497319005940737128739796449775225401776755244859088332448745229486576047821431325605253664469670867024189892104231341178812136378431886025939998921238121191564620396404385846610836336781312874609747119139241303118018620516527852515621061368508517739494145677893611648386862857014267100117193975399433419079700079932645294744383884107002536301229408941510848241615140062776683950536535593462653443723748320717054653209175287684911500582841568616564659668944244251256302621594390899855217545606831572679886650450573514217985144940532576580112408661896570345292447950519256646809223613550043839967152962645531266163531286056174621797214731164370234882229368137833265850531822845622410028221041850269173060169091602195142856578271598934075605319521399332693502525129985417390753005562438352402303173570266252558368897156497666923127045827482023123806945277480638177380550039756566282566055297457470729526048667609239384327704756510268725468859042940967639296040576108392230640989606740378809614896178983624900566218955130059115014451350445494761811722058582306092464885259955259333846184949576151261647928136843379317457014784612208913072175378901446620966739114692913791221861093790712782477312687493611584912711044514843074294198276955906704013999470909423470869003744441819188144858524375487922280313959058844483043150893871557047351228349954906246225674040582245416068379124893763111704214503992047562792710143152644217171150021710262884296036752748266036550589169361200307341764589746985669116871231059779702822374209039280618324795082662793678126346657778654904273068763430542722082519218015568211099624012384387792638546845604884801260573957329313481995556111077539848740915119293039920195757368225662921293540229130900876104854911627923948883405200076105181254377276102368626402686071454518376547395752033391804622672142485508105752413310595004701584597463507876871591340412001440530385251684139132305876176426117247014585940125080874794676333119061387829141515170381431766595442244291206415419109369004066875582772227288724729012259173678192190176760666677862829570384865053263203205513722543729593729877748939882641265802362886360138992503551354686474082929990601875149670257706259190347075385490719262059230182172002832804990781946381013299577007749463386290825347178023418194983116458005379226596227650481170382614178089504521062939627793469944464869148961652163405130839085097615514191040786716101665343117968778067001012360407698403965877840421443127197458914227560108111552997650002214420944212820709411573175039706813503808268426758112645056513056366809805197926538324526102221968428065342598112885407529923442549356112827457570251423775840440458660142993420295454179631678821993073671338266940123110561134634334382467962059267993463314672840394786856654842009053712131338005469340328032726094875317055620700944429970782923482838065187278078923588709276078032211561748166372205398053619865085392987433975373154617058129516233051147350640852068167888395189206071767200119640523334938359041931520788847750258069153533348171504914129139726665091769793807639268695600270443099200270442253357375455384400109434392616585259312935499278102884712961602514068478819746587704311647415513533068697158753023945573876020539437013556951744976379491832297528179337610243900490421732434007246086428217046750539927421687746347526624388561875143959507768999506855252050021278616813573737861609920105936676071075973146400633670911486139970815472755039206260472557238545981900731538719028110504857762276884220828457518483487496614037291170003250788451631544977591682533219550229754184559671936570559830636196504952333474832436465990089829467921963222383219790219893254248482712985054977983388244069926316412912441540814977060933746805429142253793565756697377879895150690100770773764923505739780499003560451422006410676152080372427472236522209896207646838087734156829733686664885939000625945639531205084824708425038796157272572774432454976790670653644167790713535180200780682711958050556925815180269334491570015270333919231437558269518581385839102251116145662966845444695089395654274852403332081593324925714021987086927083106540451804651687276007603273763280265178193995857413045422924894868022368451632796903207221450111854973700170746777595715075973453787040583743695292678769706753429621517275044127268809521771087022589695846697223405596516369357862016592370517417448978846832478281862363956287917375318964855830032887361584580802681875526350733119206006742786987225425772281582450027007363893372312825933450229457582653368402770382288760562411796436579307732052438347157795283018933324171476086288841770397814460392624466899596327952116167994771280812313469011910659480840113146137821014279616214016325938398897480465472583041604560101987775743592654037392462382645976902512236211170916042145745903625963596607911141495614965468149943760687960133089166435697944367760848206166799635254506233326630386186109960368598412949047956009875161524147459248816037898701599928752960735209915043389486253998411666578428162762737026798463216417367795826806514550292072673788674299659494614311833785040723531590341941647774736341998808137740738266105834559912795000217284745622722563623433052941820772921147584182168038145904832341442072306607070888878888914847020676605630531480323843101729409243294395164656638561568002868237011891376393253882056447604330555458337169017487333629118956118141027171470442144017782121334617853864974151472295184993723597293874833234542356608352902511726842417705337189744930470549251225860713961830462086963284543644627023341347796128709422229974633164400279146926299517815828977185994222060386369526676462456268453919406965413045539601353990688929883329740008199034131896983306113874453993635936244801361940027064576669176683395542969338046263009987116370823132072748073042297791104018906035618777538277601100414074621178817995796521286696616625792092600070267250833836080554526585877167796778961841720992692984005669965942908632138617917412616567546971596478481138855501118116569019265836299418583884497546083099493788734160483357279257310865747918606277485197764311094612778109832141159951467568364491649716396355735807296472462271723537514034611009456575480040437753761934478249231359240861052585083684500902448533614789499426670360481537578023457103789993408676025319224685827081606630114712805910270181278552134455549444504378187393032458148830033241317963216973153902606170016019510702480114698392677130620421955737743433049762273029648464465515916299443428948880277921768360833511719162044853281579549838582299991422559070967393855388417015218993124113392197101534778129346925778656253637656915047331042554420302791596205535323169769997368015359438414513379417063432117289259634719959979184170198131578406954403901854296596962292305951878721130304210215012620601009890705834386409899320510018262205435028603536379350967903666503201140190913706205717593766206030650569998132500251915711996027059939299938972773294857694526757564873998666341384824109421210898296393972351243196396059128472147985556484657975978646862581761460052569070570855794110510416367544685362504062228136956303342136114545502472900084839694627687355524059782988418918429070218400137480989304169572660660614254491228867497192089678908007650612879073249139509765556227908207508178230487045525042318031510882649719045640187635239346604466860335907656590881435443823511138823079760945246235926658787903582061211085170751358061674103992722733115095582723502224412192354197057016846997242331776083881605801157766506403273756252573999392028283953907804911519682580175786770917305439652827045398489349961304723727030624500740485939396759849787583898873930255691913541403042768342371319270589108114174212799686744464970032768389572131098282118365818319242600342852472061827119127626862293972174503157956892035709140429628937179074073822082373899274353028473547034337115460522536424811716426489273015115608798770873884047281271471485145015936573506137773709501596128535303123096169750125676836008289644901639938757534926423063927240443315092717175291851412636519023842430417746296473479689095455276629555666435984620535142474875810415686024256266180725169990004312213868810254576510989113353429955811495015973566499982528328841524673657408606634251548790236441864366107994658628524263066161143582597792721238669237325112391531475372602128134293863536444791028934940200858975198566474633573714804349101308506661783399492232465192340329226438379537456813734979219484574495536244638201058438263514186229923328930005339413674645284908229375421240337086076941555360629210978309907285148925564240554810900507361380549703974519220077239914952127534881956055305177210967065069701899625000829386251384073444552689227856291396572434313965271957186895181960587110145919794881033217263303294365576361461988866104040494645830897454030448603326947173252392126801249092907059762294639666615571977463530222341184696366223661985128202806429928648978948489429037910620338732562227374970174525676519013406649960103041335994981833565154180247853561286361465152907740946448797981369064940339508629009257680334344854752638452990582653893341661240070045213132264775164662010792504816030069434254245682031434531153834385197215010852067666264939297283802483026395964327047145592519714617374305957258222383289139111251085736050433207238296030247433882370631844921976763654817459600831038754833463500240756982702810148967150449998686765934106482075992039997814731622458553697614229067915821633302459615311918490814880427915773717531249824363543888109264857129056254823876012449153124197344433678906414487803806766598601469655311791600012841036657667794796917850881414619082623731820891186180252047003209624613889273358204544386044557374530992773009549746170246082645983986249248245337229611339506425915158365555002132132216272451499650564444475645969343841702134084747780179280460200001152104465039429524442094051861189238200776577268030468474015070217655352664607070239929952454766741356680732860261191499572637223066686069145225863660160055707440830259401448131544324707769888786316316153316032172372651074435213915668608090007623959729566917430445375224838499219027744477044149674144612638586390139489893479536511184259897141333197624149656957576802045382615473923614124907513994679923559462044247694661113935388475488670055642460447324596108462516118550530289135769376935887704520804432442000396122594283006628663891534400184414293335372716823438594474073009430065042907864774415737566186293643474022629518469603862313396879301153268495063038114091578821209636673317380663666315657888139887257476176731643000421925151972461856689867022624304022390183519153460202214814919368495403623502777986920189098889209064879257429261676401690398741467684818388520976307082096366126296963715438530585730661776331303025916676903557026445637112961444956840846352738065951892549764244127043013930915716109758894458368699306141105437198668248728880815174060814382630647223917918350915692018764467072253846181427423286035652937592391912588118774462566160990039353849402022681550115107610531129854167751822747386252745609727256569978604241407152088826144228388123230664609146707771515768293643434695415549071604561210116253101236102662700370108767094730731587748255663137915670419996849982520644378516908063696889337446238803995124397615474326742392355854828994676955231957745641401339469559609728108013791241408484212245610112081846818423093148097917766632534797462527682888176931084210379611491279744709185569947609018156120585395260743285293219597050803457611104096295534387955068345392319298301648814801926908032174329750099168187765119510710622249544812148615081307907632522883704547179139672949689363169326772797941421084257653934251172027051369244984399111335797787975832176872540175059926300373544945396156919066676252868468360259341692908375357943365967795722803063166917874809811091189078636810571139162003364198616870941752649439696096004132485315784023530991096752205251733283707046409598476131754466697821606034901974976992902302125165893084596093883691934079460439278526302669861317574291834603952326104845793163373217655415522623398056485905916017659339531351289428570308620504299339058723248195891538477899364640298502304162019162037461158280695207212450068351317672128550269420976224962690108317565929803742940425761301630079759706923023293073976109557989416094084686364092513501313500219204543210501644300149557068561633180023152077485338549987662684642473036437000380581607722683604202771353437508031559425622994881461756406357397698995122453224831929206453893505368877526807464567011763249545652775227867457074001236562664639060583194823413042842546431890284163765391424783413292217062416890309136662200014337977045615333216758948436726925397922542849616245954315482012595016036291924242099640087434842003295956428452340142867651169097270071650286578027995290897346697498121674588725193904714872792180873380789839784806403152846369746575708805166985318929584390747654911263376645951716351692979401152179986208997924952470162232601212655024457749447814173592316101171315546258122303185668473052230276261974763628139006390854323159730251842122095957635880504584764811879446307721688159907020956665232757072564425055530926193644325778361529038036276477110212639646529677726481373270997416824981655656701220034716972034203386009860661439523032913451615445004028225407507620909558082255373296955269741158815012242141927909178924580055462129158927628760413311183105587260015507651371462702355372914613418398618435464656107900534125092841372509665485536030576424782285783754765729924975306514740675089549834464343114761078631626465068087036505859786763397953468749570817014872040495299964204088000075312471606536213281724203178670833260035111717482526880878786304011415622982863030276827711196252149748979844509423641842531922556002429593270489370771949251541829697269658169110258885340179150095367908468951026204300901564848223004935333633123781749358741246344160790851478424626588456388763339798366183820769275393653941292407084427151476922339636156832376780172974863774523602060953019246580157571774712117599911221857444833885250710942745091426592831884468705305583720563957801682601941294443987960174615008520843674388623825303675295911167611133020326768066851458148105063769916727313094060147873040443510159852981975282533020078977218907957657237580806124456539906479840268311974873212493220320700610670043100668879317858030579253996175000914716254593639261035268465510395373995390881728780160444136870243578286654657855802630916796597565408721393998345372240508926658011215133354652528323694113003186172286487768476512097431920590101338400938314502835831886935732026325052535564716819005036924754435989830887252376076584009156807861836706242938453145676370822757963557769613185651374481681749715757687329766542456344608172695049612130712378576099965407047346611105637663817172193549836801522612664080804154799349730654096279874126499404711665035183128901456259011657352791961369762636377401881463790068968171249982888811076558103471976196396560541354518382340209447700738504300551321015183716532088425723506084279176268794545791702688951449502438199554396797712722612064956932884312433052805575329977841706896899073330610433484194084135066954343641712131569318022217784347169719251532009400908031838710221351070470167608537449540118556656489808326569681675692350516200550219807542597902543885001384343162898219825039281550835976220511681442957744582221569044262712571806577782186497918075904919909426178327620285355163714464027716395070905947150124049593017207641193801629747139737387055704495054732082278418752581873796510534642885742785785194941023499371288009576264315170527212018713136301038514724142201473367715501324541416034886849069381286237910710031922159726227193086446655010526689702603535845308917762367949637756768769474321239209492206051756371429930337808974762038905323200966460230192232467390399992809281070715661231785882947224846618263972131775992188610410066642768003953683284143216995615161357828296696255350741675361038249335144364120818575273656587213843743420152025317134671644713024841453783463900875985159707051669739988822016961587322409402508294823036371588633411938754839093779157069904303266930176611243363092516198089052651361137612170928762860875265482382563785218305357314338760421732190640211906261243301403519632257614991339132585497958973859692902647908385939732059638194339896719830650445069522565805628214251359490651540367841783794437527452306361538737494096598208739865894702561287879201899661567685106542539872787916815698492506724401623829550388603748972678533655099465156514829029818598567610011687934558680011414584842031037032078017529186020882740314781916652092604159266583734946160097284930403659898946698045002906221320225934044716621250637313214925368073043508925474255014672579268022855759606101473370916672072542674994664079069773045326900311954238540941246320165477670216189718674070106597601239717799874589535594290267733406989636481800855686953267566803334153405210896270208080200232561914065321812300459081779820288783653290207952199312854117712668163632224145134881571706166712769563792882221260329011207150296864342666024672198608636258820651366129448235981914585019456402015466076571898265650309714628149214065301040563904246089283794848038989093895704728480811502701404761416857001080562829782795433536881325741525482549260898883743334176743561230004824812565996449093849649198732181547187858949906164103138136047214887444046084215552671771934130101958233472060210676587681209516773048453343893443568156810026396932973829329560457309607855599807200664889701926241790340018380003138195944853801137077486019011139603621425214258706693096959233810104853132330577548548252360731757429452182272829006869226705460526154491565813345626447571153679203584592660811149299111661234108471059140835841010040807703656223920037743182075301111613661416050445722616646088104641979525435988698796424072895528528682740874499698478216946404959810963467969408744513476246940316416747856053382449309324745138908879588644008094490134316393176497086172775584098415149367638065025257900718278628956535684560636052256597629793655182131270136284253428822182936760119676306165651166695054965361223113258911017613659068097217833459383493389907750350664555763234692797749005387958372511364635205001105951379980192872395685354993165531146509007639206802360421739480186964178354903369589960263218064388604025482004794192463518826200602051458604208661867378422762202282195558202553307094714547417547176630575023341834291523585091841717889297137323138062520251770435002605212701494028895699630649950935738430144507794350582960848248908924017574207259536537889561384040337711007865135300200439622753176288221353643756703192213340638959907386518613503381219494819678343489397663314397402925701785609991636063449667401259939452279210148170328255716724820984443668864832113892603137636891337148514286526437825049966307478143825663387216224207234522233737008599206550404938890269147545130794400033634583636130634856613196710762079311101453252447338575652627235795733350359217521930434818186435501870445663003149281516461562322408535522944484795194077517590319513622462256344486646115423292998024897885831507877520547298998191911344314262126144726211465865219514566128393671509021263314882659931740787152992706983837982888156679546280423416988752211026956158387419270995211959501707846555628527168558143874338274392550001202459982212297739454405593495908291710993152120079442669467908154753352549420768505645491695705296938742661888310049199813714804924132965753091698247133645076842653069989237650974936962037895786766483923335046910108257713928297229151320252197693264065329326295535593828661658653063638723729977853631825399067496265551533076135112548168147961731672784897122661203149788972424052227811185958091167236564900130856673596407158756025723064996974147971005070831239751187498613105827117379167679986339916777908714403524582004390648122300216214354098388414208502419621594412843755802739904293225153491814644925868749110086857493843956936087232963339773305873335203632284245381402419953142203954338452476156300405520291135025177862313912059343823488360102693833029028962927809450096976235864521665340464999312437949251795772721570534935807866693376993902082963272345744976168009181955451954944671707977782434578165806865512232864651352993927895306894136860559518457186567371687392108640404099766011583596929464683095994681567935343134680525875177108767751815463745774230236479459603510679575879178958092833884133220340251249691359813366442082342398674538704201256350094905634694476285600835665132323056039882246913813830726097666087459488952781548686670582782565988513878635161262289452705567066342180371091286018970090322550244226535103290530907950079342339919332210211152789276411548132957823605080991060305313681209527986999305072416417245605783899514963010811773741345604584645414836559314613551885449283497094390623752613199197544798607031543263393732569666604774459411376272932965599196493268054430476008668234522313987845906558870549631492630612279800912876061411919981608513671797342423169317506494734176231045361817201746167303967635331064191634485603683229728256781723857310841390288663828126817263586211526780857745810009749229144368578573581208329403336939632694051157059025193912413830092040523321049471081605925687724240410530493251675805798963003683622769866368493293640896799424271436008550371836128064924982241915473998464897633542468799238224964473975287894207195032367018396649795961403112848680633767290636197419626128926140927297400268985846561841400218589960366918655075256006282652328694893506433728337821560911765248243613196436373187042852016259189520506005102688228873525874328280457867108301850279491571172566495688354734880686157376149659029396538791366792353816763366253041864142886574753764325442557106735897252014791934939754643417444611657190005850758097568429382202284656084286681228679673074018138907853484629138785251656762240023764377973481922962554830185547831635203972698387894634430443575756863346784493091123445305330131388574950288032537619447867117660642560491805963747434195550836422606618015817184394953439182275847182617327635917872711428644897884393738916007457358234762134178617833443720281924281412201993426476146190221556594629710780124672424502629841289908335534735866774859481488103588400208488263981774858977079964411078256558038491947548108280273478735519056922480559789234425628890555238673845978902756535341217005113580400129312886734126080396042033907137261297088603794384207569278766926140594335059111741193952541569024000850258332240389785337643374595918537122674261413076510058432020042111102932729784764229508012034246763701907348200239362816125136779245548239228879279225267139107965960476665930124936523231512632003956367257849141552193228017018818283537850330041201249441853225912707530261525544596200015974874386638178187074167615190649595913509443591060708558344262090228569765639815688154792583977547731843423964778304433032158668131833617650841081628575959639892926917462895196780443623237834209044740903554412628418454231369937981195315370836157871373999375883282682596493157101813985748806335750489859744385326248191567694105313812300376454258797728356965893152649351298900742825835715512017782016048514909188959538639826990879404380082142445640754249689036074131909476242921551281057807352052878194780796654350759756745415473546678630039185025388107753422243039885925051186260108334334484937139361548678938609723387517943169540317154822193522235007807665870971517237348016244339368243448576163089787156904106753201313349676184401397405803295567638270067985059934100710666737123420894683246204887141945143277890330050848181445000603296743342809656332458312985863778474399978940492028879399652569830548385253693209867188849636649395846496679302086241029188068109961587692982009295072667643508600215598241607846946209485893842881465947151070190653883062419708244567335863939855287989293924820539648364357604016537402571930020786789044656660005866972570411130549068217412104448905591393577511979836473341547081039742226960779395874467270010081859579563542911219479911928189234803719209042903163866346178665974683311149138105939604640372868472522653725774962455145684689467261050195163521061317702307655054361772516268995281366130894980306494669647884519399691314666644408948820434409626574774873263573766199082337520648251874575623034415729377783585650659015696580081630124924364790244282412931146623060731336717683068442768600224892700352102808331553868762143411239389664127349275276110733269983623693466955151417247868325217765457675931526943426310683821059410713848209535589843011972236216465213893621387099315631493108510023397705359592331473104854227107462021453340747198920686685068627271782289938771803009764731566801036848738786500506378888209254304274588683685097476770793388833368376946851399411893215767944335371533181137310719873143022366574835181943935623604877155237576933465489697579372460489903787700237975240380767729437285484085119495943719873919323247754827332020627713746465925808963701204615354656993905018025871993156758649211893334684008088795785492541244437595934313077097198219255867079519779359846666527479514782058314447918214089739199459137363378934838251010841134610149084373351554524934476126706365216629374983368818335963979115650195527174116697039710877882989624050434650195335401946718412863288885021787155578743232472047844185207058523619083425185814835839266999183187106121928875453184324977778951568044445632037528736736605047004784017540967588322762574916485385538237446434540568476741336025477696870499206382130956587694441087620087676635026582829133289618351069950686103574025547062539261786440727286218163942070583621308031089147420627878033632808989835618258826199206151357078483562761628857623894978404203994977699538011734381576339562567824914058451965084836555242751032215124734897377986054157669923948627432195526482968089961657679635613285274480282510286605906703034522443988441547224574788966937946113304015821478955881966798014878909457374860925677914948590633702888435679876102028564123183208513317572255348731790489568859971082996987490752805875310430163185007229152911369889230485551738468400567894923844959959855130606245967812764806780806670600600185884427868445321724645193230481925602059885460925950613665332529132890136941843073464552231864873047318565476067404862591151455718584285000141378468971124568386549671172501274885548335810563557883754906540078759904116873767249404151367130314383424609929748131058483591472164355716440360982770561559303142965278650814622014969968337309471153831760210497768200869868755642240417911215094840608884750649132306594636865704396248830105421766424717778178448868995096692688721095048046300868467803411903709650250937172161911087482517205193635779931929849924737068068388536992992496894196310228692750061148079245251355646884888518717743939060835284125460656044322066078562625296566161577546708644153491990408796381670833160067223081028051244053215534117168447699438323633465705621579052317326642060493434452593723980803465794693329914662881842386243908257903050204181483434086658927128973928667279669997946843519422437207292560766273751334313455446321570720217436600811059103530940023111981851220987833672675540976333126020953674893363351844236077423259490084352497701437746576049197105315313499339201553633085652268967297034235039889722241458407956360737997647911417437699014433373621398603762143388875838377224232839918742993088570263652800525249425985505853271558305170332260631674068624461274060477710482190271296345293858003486181369289851163526703737877705097151858545342993674384656230912371152519123990205400472951121582745258628045541167153384605671867954681871804535671927283213726722073243636879340460543430453034988901869271946908364445563586901036405511811403412177751861237581272600247127514570033399341507573394816693662313598935506429077572203039490479004352382458826326826436309389130050522001748912460864372383457094510195045089258285175277344657566978964629376207809265041061613582946388605739346742417947477367904179796675466452489267387991422542083207821469896057975516504305761337634356463620219985407209662554220495302295696423731971605064440817137806162720062542805552443560369173291497697312740487503968290848965789126523000759130819485002701447467757829610737436648617981659842564318649925852335824984520889786570278217881504482906210499630373089598665479839005786127965671744962643298777422600650424215740258499358314297068004584388778785589687172166045369536618636257721252661565515470742593791287501773792407802626757124299668927858961689831105279438826342608998634570609083745071170186924716926734379517354325196600864372266499212343280550746553286460184865560574216852781127352884335322987597610114876147887293172262274264257969958495143693839806358815528929133425152290124958073330383130516974280824726510050810283500691121008483160827879307622777680502328263468373277010748426939772706191207971414328819639519204119963811548171159807720993243501965013229853906168943872165822824570662919832764475126984549998571950454381414231201962560205622656677277584837045313871307177847785403416807249621578245719910262847303089010445337765185279248637391985133084758081920988977583412010160996348746237495800961263673227778096118638795849031766916074532200044649921069163382246083062287178793114034251082568862813709045833401674772470471521935608933993206176408977935453422120590951138413296831245527707345343208339152935314144320348530662500757093079724546511613274743076453158419756583466405171464040564441958671587665922745282688428974135295408330471175168677266299129049577753242514804031770408590195247284274124191180330594998645093317251037928590157456545685565652816671121952608603235440621630899842969395155001151472845747056848646505059687603367025616301667965311796558786561454932311659070802777503339771395716710807739677541582632504766949198724782181390687920853724667915208504642314686281062236208313239310898538351634805678299987025435580976017191477534025433509275124905537593938109968727065814217465592224380334089910462803928164841334719714015022257158600581843778229533670558916970089773192494938071321453730813649726793826810762641947102948490213085837093127345345681429365575135362663069572281263459582730450974824424612017607246867783249125927959751167998649267149279285871509859123857195856642934072144437348895811817821674518969500861160353805035023035338420432478389207281871973304087584991985746246259632777866289862211727736643835752640991305233111330091097399620200010818170806825761472765306109282397838082798180061809573806925092504543604307935700915725749507155301460451873643328559156155336206863357853045384005365296675925674988050592870569836760996942621223297271502046014927998268708005142136351710400821582983937070746038212916080395369096894992827215618276579676887056540348384988774866646663514779435990643551005744390970714050940717977315358250916348153699890590716704425353351468152098779951065569772010583287413240269705323144096851574512845785819934830282545174382744101491118184928430484808171139506509590281419413653132633258868743078357777816254109616513540143760654217103416000083945730668426214080364585195464257231021705656379514526399697117895356491619455683635270514291410677750660893146846512071598023809298569279095879664546294187544306037346791045036730647958527234378628553748805932340729442702376326348760922526462221565304690595795768287508210835870598397484522742946182935254958150742201028074157956532383695830116258760961585783901228280528276211962059897710441266256047225302254325531635117940228907449562384338994084889225421990820855736592385001515264729991156367026883948747242177980019643100225137299619457341069984256480994245289109016270349084339615800825691451365967462037890992663355122934477680603172316067587557455520730908665733647726523495981153069592901499388170259136256566975740258626101051355847304503410501881646574159480046473434066067557627747235593268695593311563096988006428761851064006154672132100576029678978175893574016621492646885695754913536259939816572636255001967070228564310213643372525534156625065764152895668138771368644140578711468949111053640514833511414699900366457531093796300047840996787780601165590984223411095193585124044309930102126800223853943868895799540160509381187985611743787294315051924199367505594336505879647323969158612774626803341513035001860788383470913365657169779246857590814390245520520032793463853594385860818929934711077569267313429885856931480373164154757270376365555521409562448038591706920690166078089473437430331102623847591806678858105734340927107384608220845758118001479663414542878743121852398629284661281393893869890494646465470003304089915658408004035398187521243431614044197646119340275405393578422117137787786158837263517270437916471110573683856767901149016266870617911527575281095252188747316674933097293653996362235845780829177896100681008219865914704345514845682412523473802656005230013341449650693785740372484292690580821943940977028482456430496749120334845381795981582852280762614039303157332993232076484845352883713337253359030822342468831674674278557330236092344858803521154046111579700496050925514378499136562245439338986705785632416211005504925322057158232769004969657949951229897466372570116085367522057671628096876588771630117432880811234595551814391003766578425850874363835129070317662956059387528444832063494150757253087814899631684917423509859732592885409731449230244594721664052879024450777676632547748933396633615318347107816097640058753061801000855314753586563587947576024454961149125710201109278176691971581821290760990395896469130349047529821683427859935322596337698920814068314229022572088076898106964875020470629683552948637016319197680285307484140489103957998906793337895423883803361164657251810384405072701697902264671645718617821649212159173852358308732240101298686427995955039732787140778965779181953212750390815287712824361683124311946494670169378857200205653393995295760737413297176572565712289699014877460911336198826344771741841197906836096185757495079123243037853095115974221439159196372126268542961939777210968626187835168327459676495782852115981702920287021533609169021216236943081275596565476652633559178312105199099469875554285293792791674502376392920261130297664560770880166519170799309289955140674700673144905826556889223578576669433299656168326737938765085006704087008666692690129421541141119282027223307027314460719181737325626684419032248532728613055321069388271920995345669059140905471278698899325380005495490287131786462435318672605895974638255457334988214901737219942477583276611013383346551048330345553314534282771997366473216369674034187036828143021645758599841794374287580534842226512724980450689468407723032085658068063039431788974319039004949499386914931862757058161568648225070114108544270189434194776963879561644802348871674594779103749066734028315619653819520142079698665707621639643831233051714878398955664412452589586465737852573425266010006478769663727911091487490375244372665779980996843724179210169811062597110285088557096472046337195086808894586424453154112519111271357914263262116887163409469212931416230826507635658067935188915176166434096177692322243363771773034001588006483122957813835971478490613620136946304813177230391631146068394134372926445758988402369996785860910451344901485070882695117166816241954769802880056054854331325912383632660540873090437191010918439780681197078111856748409617445378576788279421427257256963564010949996135527481382400545673811264518319045831417167356417812612466752622654884386707754114036378122128217310596903836316858447186654316810147343667160280573126219243252970395409940461378593377138948085211829600882977257504646007550016061647192979087254881505505211081532445112390272554098917049120692812881591184283444118313874863313515243794253361432813967869898400151312229079449112345809631663626833321469379843767489944608239406569279033550969208818740377860180350672579766240736225689449950983252313870876162147464718380692006628838182948943490579939860967256808357449215119300687769644438859740112256672045205641375079704831436409928862451184212129697104785228565475927077831793155234160235096241367945199482514928448446470922489067036451844728143155235811386494618628373781927784398373412457550810883257613711100763820680524278032635802080085857259832470392392236089106533754090679680992952975439394914064715576144492853293091158069699819789359683614103468930534924383100365100791294545076212629062033180038950110287119422904982093816150220770541283997011281157254856758057252373901059426978406216885123610668166213687940345156904244591470388336917740728091853567915270950935936485383798031689518696570675658492232248547217044277222207463119266600845006019474139953373031017499704490159704907684903461782932930762891698124354845435259380060479480636038583129473016328893425416374589280425991197023740650464890364118393174725911919970271547599089237171674284868372818030295549496267418123476572732739271793208366113437887639918457888857778590098278492208999583997204015158046959183263372644624953441146791968003878876084378171228266365412437006005409582926669152455876391817645541133004280784744224140352579023448954542957005243165468497670692691613042478538062731918634876310778109181969935527608757496315309997324978258843505734894670088164971199117364409813282509362649231738549649031960972205962260554686187589712789444318019118052653505174781834485161125946840715494981653506894638906949228824741983917691579593543397573430514204383519952547308929911615862116460703487795795388706926133150635143871848839452396160207689270405620223157794986378667453112100763235117611599647718117144104109798863326418881740790631340178404056298422154255183827978040430705918815283481612757630700182361912140511477728322612359402919604418510838064505612657240909449399353928244416439644169125427383926254103090112549506633588350987882704908570951223875631940103990140594754984808144529115429595650482523148658032796545266858027046797150020045184430358580558507952658791329930397016234992097969891828746719483490938004637964621940876307211467972895081938541455533949766984249387472578266171319404707231325231902754900869791179934846224874321842169005031318498184525863136328228308724240898221592371302454627720631324603239869763391958640634868002838108990806845191055848518461375790888408004987238294192705828686885208578503524265688084792985601992975888071396666394153773896306975859710218289389609730715637573944056952255669269568715162550769415710949995470359311854689557459081143358094319816198192422038023798511810968783834209204988518343440966909534953768957359979096294632549687363912898764813324892818880357156153972514949449435680661619164747494930443597031598349874792363364338650767387973993324404395989311193641827436957949664687855871555859608793709700985229394467410511879409260401233194483480487948605420095583360211597798758340609099485933322071285974461084584931649533153348758779985791710612924860862043254331435791022063093209169413697071522321767986009354578766970603505763693191639792703738974090044533936376167347299843061857772153179471709053922502937078479677351888912517246855090820171896945214082738030557474069205998052633066848534532415118943131820618541487087448473120419098333045313110815581050726544764677431502477518349999853722972148803593676433557421869979147697928603121220602879997065629122189524159682564693922605542690897766750762733930676937820978613783399104321897923527135346902865525766559759260196534549289011317863416086535208585948138826856028100652840025679967679778768165449914419162253784628960456523339133261174885320985576991321846672028850093574485356032805100307915082210668110153867311829312238425549788125499403541350004464136638335920428952930129290702196298137843237813283995970750445766776410216750888173857212171190584731951942232949150770630380185610721849352114279479707278623946110357983185657977814447470866566455920288810140260527133771683381216535089033835173263442981025292676489188456250825888192342317932672874025771243311083505110068642227992450082096848899331853499046935500865641194914054732300359097346170758813212251945951230720440204202985365682970188333203320517779480075260428571454938619607770564820881482426032229212845994670098649909699613420632455698784627832849253453154280619248155609919200821413959749472336551662444672595334699158672915805109136612538022129889323285732794624545378438707300932068233998758788122081118365175368330948195437780830988783529065094181717547851894992013669102281879558084944041750791707751633448173667657538647854519117526338749609397942841395567414944057169907450486887391875972724078577412595737864791726353535119581297237206726856984592587299777117768493521296459182526467484197440541107462829950395065579317853600016452979722943237381690111518061905066699133125072896689110933748578885017803840897473118823929621378930323559437257904326413963033939161016179492691821702725955624316532463763533950007635163207036801078870307964292341587038980190014653931442025950616778083213345138069577966880428192744254682978541676183253072542562456287134160805745382430464483470151220256160850799157760847823373368794972047907177495073617732368714447436318955763167137437142429302170173897030491997306444259819398805752118660974770503470787420378068228947960604533335894246153593566219362548730883622564338556877997533560260473797864973685880397124668692815865396725250485803297615011803091951956992232914717386161467700140877816640398243117640723958302939602823660794730115944959327268652181562641507890578654883366426078252520972434585986012478720500634597868062080553954559761420865287071453901161894058556449891797744390717794319334286078125418649870059309816222864252939370687993940962833460845701266871215138884480961333645519977158622374942980206167387482004589505689029425158764237863853923279445742382058332314695604073456594008546305883619319030495737063025672365113578523010091430589130586841138132168495684534900255406982914004227208256845856729492273780609638948630957175033188900774333611390077856287069868847354785394836367660184266070104251301908974818841225137220249837547404142825523386985726977365480695246108929381046992922754614721029941296501334844466258460685709466879808472735036981967382662234932297256966475355480425060618208098554127606674298092382212534296556040331326469852849312744421592230239113273336102599269733889364578939260718276302166211716939462499908688948154418786222691961788892373395488790573189712477103899781183435685589019692276779276416814571931724966614740584771801057127582513429275998050952001228474434440134785164219889988597816463885107821484543621072707070026677791381931074981090704412172777587329558663927912915826325829400179473551378651661228525713467258448723769139408138556005686678497906455727846071539868821026888416640086654310042858580131391899881913551710212856805672700251818232852510903282119155848860884636664450785205138650066520263130727933640624052812589157734757477885137934506835435628446780359277759769237571136245856253506759593248015087797670909237217467559207208527655296657169394477276463431839542557816846960433146096646025387884721861638978104496206997840359075139304068058351917264254191579032560938654838365901159015906146812557214523213258102661275668154831384416789704025714045875259505545332144124072084308037527941128932247727338586657517613192141061759592826990991015885124462255902130114193468545067282287224415839851509272055579565532949476605208453510449444696166933585650959068513995830734116453544047543434205880338953698839338449247485946219343551617350145095639747797803222909169108480681874361634061760587226539139275718342175300211683333719520968900249085158102901346673060832930617115610697794738355470010071446868488468020581535158762974171722392956955212847150218655503811465397270206257969300623147244334419543229686105257419880378916613803500330993551288823445733368244738562962757147893992662360659402510544152670357355956049460424013123069608856149477164165006100518014997619018268486969474191789429344831756706011914450121717824668954258038078540898851789992717229796392925454616970489478694345683208400120414063414633476515278245929637669317168502395774161527226714343276733897755248206996914540884515545831729954944989304534805674088354365176154170781755464104213205730535124500844688348501868105508870220870495160846740060460932911605581599087109859111468808229771335926915344193003036517259069120209176487582132321276630561585711046380412904519568866742573799331828153274951669143786646277755769877355733731947536468991366607728815750681327021820219508212630123390306622606625290928580454229270330879975554063532914061168399456281671342920316768242668703330327856814099432803670078025670810522840156347997838049397118908494108247566848997085874807611790665876166556482253899250453951143233536918690946631615113424817050529863753792086293748318619618792384152414760526695728951743143590736456163784285945897713868170506388786521505874803046653920477552279043935503623578711997518946926926685750813574665889950469453989509655596097974161724351280021672647947129695324692289790879548379015314801483242677731106623610804832979837594665396086657518300178789241625370496204088461447641673660382093422368049215221184873206755529777380444787216062365211439940769208262701831449508426701391492650271892433476120095608806039180695965995563815212846860269194315168736301384419118611547969996312442171548885612424497468225682832591099917688026864545710405991770487017203635732406784199159652991141008049997126711322401774085084223138623915951171678284228501948038442294110738315114464606139424172591823636959812625096066347337773764388947037230644013642133140297921260848045768017724672284321300683546995814668781824042988477075421607951558374548377567137641739071192209309482888427582484522640643022498174348140591531850677649322490909367128463591008349444535795687839808425814827470507009215071275674136550725032467718626606712410793442022507947042997435229674763491342343974916451759300416119949808803143897589383297048432606966091065520779124138723374286567804386103977106527719597297849130151536752177782938666333953466864306680727576912981662418131443628034243338149962827564733546239467634553715305515758799464098517595977392762902626480033402237542765795708030190105813151370023854476848108347850573575707613952007518064586555807629509915161059189133742849340788377097735696379322627347884673752188577013899457541246247219982632648130164960332884892206646640211960438561395555402616580348278779467357487027670738903817038840916399322467019030651091704573657645981230028987106948227076063236091347823901280049556527053153138462928601390169833302145440414092953801604881357294129852940237640199892272149496359087648994191259961502649677285401262304098083821797180934609218081416260901309843734592732503842939823792092695412714929328870963095684754535912992974937347832580791262529112722481691739658311939844760617898208011456578682425920311026633837794552103870533804610817059569672045648159958380605047389403072444397085865636570484814287956292296245160873764126112701395638146172707215267011855131817151120374689336858161468275217727507786839712446012336333845452402448981638293871052279804167370007660838371180224496152864170506271620865129998837574465016605282319542938076186035993908825533147150375973219438034995721888474254392412496241233590382127084170183991253400785442007936167235080512514603577569613269738931124026810160544807945561226078242077118698134543152771538201865325087894912701142182749438987825763759366162385070421941168596943996580287908941776517702400166137793642607793477947474363093033510601624470150890657580990841649385639526650437302385084638369817270063555673047186378609701208964274033430233741961787675208959039280316870980989646185220628765963543079885726602709774004477405677001042349744747687039532305558980373244620180061744237016710381407276597434144023886027188236346348269278639320163696356254728646160808619256853476576837354848003300007201246095742073105796663714372305171734992275743232519709595030310405025904922591728162463741070756641050358995128424678350736686608761401433542831109908370199887618631786509582496133360806500235916093928424758677812012465329178601997540997042598875021228915735381513222052766597086925872434903017889586749417606794724614897992361268554427184399351927457819401197617978692175371315701312687747007076858883633170480935780151175526169221280038753738491598664711837198600360693962419677364271599984076696497103899403144145943847238740349190109233349413605245420431996098046283528046825447033067513626351352137134108863637137025776965194422566200255221716454551742425382493125274730838636206839025587175513701466260308414019817963176575867601397657822163823575763319304506080719800691291104050066312690569394067707266428804242771590244611401313519291680985401094960223640076058244615574097878737654144901520748046662943148844409192058816994986323420747025906041243233249728975453586149292880916685912273841007684953640727517761654423380011449642684486179620784827086714091210202109795458934814787159083190890911361133251028715076213124775194664940958405075497726840281922788322300515700650942387689529960241075752775477098910852179860477537853446570719089611490046072592137238880187206845046846139833484991848112582376600398346102413510657401203696662563517143028407029503691357731192521498466320494120955686544318182905996868237841145358483282233083921853295843980259133083537730775519099649744209015764454691057406699212198951697847573006395790553925225672265198859061498095976580326117988716642063543580855480762189056294313931881942245195519089762062249333057826973413149898917207376678464373070573136162630173613037567092698773310360977292795065553209601169635232440984925970560453035309272505553081159269538941458507104302076828397979829804025010320613676562783538621257293284628125752720585910090948520020911573596541228058790402350432593576127577431908166975511653325785795326934598625055839698497510717264716883262322360408045905461518076955160631077905064020286683255706141278671036993654155886033676387923168079586276947830825501526921992077709329692667359887609211160032183685493959810899694412912635860652064663015370864452657463721971561341872338437215631402767446017547471114415387347633945481268499167861212712554291418195739164788200581680520779575200434737545003597198726279871641439121992471166635950005793276531574194179901764092466727625235172310628930164897335672171438324661177399142219420407002529206600468516191998112193251356272534307957224558611626049851052759789282315578988203517625588071398515683167801966073633315859695579867442341407827996993747109504768407468270840582910908950028972988272145778780354860448907504466112652402298335558695648421371906256729805395909015966601967730527508870970216451678392725858321754617640087413941140390761066758211974556288338236232101779520926466790116635594221235639866968340085009301842246483046124906022562880564255514569402248148380078839661559005757035321989427054876505160555488039629775209536280458344547662301097779571991903967695901670494870923000975685312333872506480537834848944573064751844860109112418049373772079439058476070136623757150504961353983116571143574515610265859881930165377196205620836426378605377856004885233301397377599689812162164644957161385062215038995260000164658918054147191216765484670325456904585582359635885188913355848359367481080213852323064093850868261648164638605289416065486629990815604369465981012004259959120904867781764170669074701081456433992489616345296629109393196549652439255154561183083678832638268917363039584038900779871052828228484074601748696429952006592820223867355004975170474225184193498255473410977273036142151604714227494468252437786766128897653124876737027720015839372812228133866796499103947725656120927508191219954120415568847112342189471551349547405123902085219991759127530108588680412018251662375409277125984087182740341554333385967158353054588068540462440788071392684860153916080272409242248760844790993373783938877658850880940976439715886379222651830007101958489968284397203494635269266232917667138100059544781111588449136915413208158454163957752406126694930369380890715826910931409558510400457470174615715721409492587863730519977308899096424436430958115038228025829754206023071321844209890755139975257999002401484881837177298440338880546703482016287798075832193472229966065003607416749882311238047376057265599190597723843518956745984148215008143532638861421060663848276968577483255194460128306294191716504333647566741621610251040449225260428511042352239272367339487816244822316714514763463068879426557855850282215310587445888567057297336888416867291867875500388991038145528172255398290471843423887262005761777099551382925843505378465809052932414742077995059300100745281273966647944043242038735426762799736872061084172852462129671935061513754820174896442694132893323744833656805092501285503769620699050555267269405468735054027602931453976930355919608528666566079260729925087310146807990987937889879652510870434628337035214846714095833732710193902057640598810319504522040018946925680321132153537936238933530304853340034695895277841202644551172291565184630549345616027374064103873874488840012135898715861370838809090953852534452632258397040422468489370474970400687491083887158675479427031707073893930935641720118226118147720445062837024079360989473080008532382969483813422188306451641498369385147781388265441275211487984685472119702548366640668369309974807771607545583288523612507400927350478703174233755922976705642537693256204889465598188865838448964126131844206975322202854726953463992652446900720092318635953513333012847487451449102753403984811518056987893773141196665428839163325288208039191771326381355547632855691220975328231100876574748079661042087598431243750747345244487923964515130798719874135603763986597753963817630459978407217686159660286123133622865467198209241239850513659200875004107464129685432069537621876851501854756617351171618573676471163122621545339735250798270472649947870870369790087921223878859214585237418520845468053355413477958182608270326708322601924864098223222922794020816277710864376620669301345182614884975602631527426244582538945069476803313704327686146143165435680089612606971669820908597200306694659024711261624568727069403403554602686202239970531548480674896033280030070063195407919826829988029812323777326738618607940035655945698662477558043806451885560915454472317252980677853026927304240161001956951366040293434421829079368518079127997933346299606594098020455773522440184568955887500153972176583873389027142999936469417935410861014581708794645410572345595806675349978772365610866007702598258358243353713550045913430682183308484178031278606813492992609204146467000806646177203435357028869936181612139981546455643700198031771612810706777492208590866688115957610350605170418110803658025289330309222128443614332026191993626607047137093461984712690917597097263276952473183865610192205367521597383889768751226164445331180740207936400805317097522767963055937707097501307486039024626296866660770958711156741112111225228596430455710272172679860254495973503412340574619509645498759776850598156315147409261030538575146987559301573291871737324176083525939544464992074586818818812422726405681447903037978932451274156765489840643402828921135485331679112806775349713983207783051940766937723388198793539066388710452870249739591153871587801359569712383469177017958603019860780252070544127085161460434067775828686422329085736790323062408870837746570650477462717848304048682552984670329318519816845135191969331585279487503325733697495889663033549644171377937167603309752417991980240892694922730734849152803388817235587827644319553970074299965966718562899378303037516113181377214966798120589936012671407553533159475309391629544699433345563360479745755446367404710550012722026890240894183391572354173380498171912384464118320568283927483525714969053770222449339163337350495072385765636945283908962060863046499020425371055264282436521719866753962657650370516688143736286477114797027293685971469457764152570159811486186947879405970206119829414736253906590876538472558046990809248953191643786278177111647738402959376014309889632527433307610445414049414367266087688692866517981681720958675281596743343085322797103661257451830336031961573142066163913991164790884042378698371112994341086015981719259339732594862950187411502444752739338550935269377751827216553726498924616335030894177862821125098087760407087935524282249542889848031917787085902645740642044098775141730778041771547711248545588733039026583410074705860808630518974230800993488218769460877552857727248971564958045052408024962877281840015241840086739762482593251312432024701785289866000793467473530315000925603182370833806839968651387168132639177420627219790062038484774294940126577171858213149298469736488726150528197628080430777283882573439885393795089399314531393468768017888299672638402484206013825578015383111148768789271438013997177096134868497572336912169908739754098719057298549859890590672248813476816167948292851050847755943857057450995448004779852163193385940774112715509868337408075913016416107806899529550319290530671051410741400684508136262394397474782878980408873213850738405719593980342893253179412285969442771922281741156101977224251266412077549221449976132444993282878293639040151594721497548657138889295213224197834458130517593013805693825636385124222589305053942965069249460049490136314029399756107879340054614085726342712872292993777499024309155825548746828441874624036955511249572980150745666476979922641301349009221768616131623085090021789212606526244127664588708411208020281686566491944736555469428703986469313421108653559232515014164036791342943875108540733889345632584808134207355347135446497138564561112628361236761556562704140950951889105309291387102834304878387040709217362673279231224261372332977291995346409789384679492877742718948789573949627016357107527314558440156806742600397004897116062337183826630646113211748957142210374099209444986411259415426628569748013842275950736321782356556128799862426951491371003565357521787504441148382736277222031205518964500154501927727323590754761159636107851219875367426888726852918357003372494683714014480162259084193085032701917441893623394283381173081301074913104843185370539981989115122268714067245571632599151018356626850257037512690841442046931241559653143676034287579800973431838767464626638559104573971930467783772873044548589199623707584801245619498735478645641336383746114899649599089193535605216056772226136050074784089825172380867893688067744373833580747635612679774663636782685655035525448938476262636982890178984893276873125996918309853546954230352973955934978597538528396271832940437127599338640531699491704539315906850049938052422370858505554956664311797210773793200686731911308974812738510948179196731775717005971336122136853898515803962630443198924820242411264261631226138684990681422370814289304221990686937537108115798600783570654284904266937800615358992059756097253321812148506177312205121866547974277770936052952903772086000078369482815998762236501333117213219399365263357491138241665409165430385809082408120508889273193446451819806661641248833046996677681600707989753501954827335763596594848847340104215676504317274730046130876834305779542492365011725974982131565465314153740698294233851609024948908814128393008756837696416187378560574624391452761123671175615987382516827794352142600930415482824709054420962578716029629861967721809723278426912355229018816740525160399266673304516129713508345824957000194028424953466547922626344491738806811420454890238896876382662908648379120118604020451795704377177329552702844127163502807373677756866213026365967574985187629393832796760070603431017481089400956635496031792689516338497081727890601380266537009486752461335380309788728290231529169254331991270784425116659848140465891649839679278649735992890034842775310912238039700911494186282553616395177076022782256572219154555381940144541830957700484801184358647574139228356031370446479194606212576713781313853765729279100147399377767786714121192179902799863366960405834097154617057521340693720842302193681761954671055683361183489351592338163183013473605337854508233838284396314170242679455162403947178290623667100466192925666717607222675841179206521727867402418622378153357793685919488042433767377387610567077888554247345831665922330668274102049562790494609664701465018644949924250815620498146799127044114895531327892823117841490943290191662962618822184057733978737517998858645665123597163807450842188178079150431977527189579871388476228943419070267930899069222383071082325261702446233955932673834843956273681932882095731419963404182970586748018643060575742487667027378497738187744210534638024640746397488017328608228315694012976124012206341538902283250330954999582463742902089973288851923560491786074281121273873328560306082804996498717420283032501553350990254689764938493288717173817325490535016870079814956907951683065828717130444580840327741693295688095443726917926912445170650808009836370054152623698874191889457501604461693220228459504566563420655743442641773634077054413950651175971310515302853523854267559472380158993022202755042746638728759588923235878836000845660280230019028897398452582865538117503977016126896028447145623907693434440667054352608726215170882697322063878628366631740260261226736958105310761153270698174954432709001322824625769364211584637200602088652267229397324789309404380775482119597301746706214959809628338605309791573841899206053379575157371015016725866961914151291026488630544178652436145785382252414709525650586762025916972763465328494851439435577282465707561728582447616384144912835282199247096126529217761333073108933460265380864035721689678937040569543280591188068966596981500192621414608715805001044896492876207082909391679254919597370927770294534684348919966227540857206160566445707397497741380273247652718203581366081808146225709670817612914620897940175733471859382272174457866140342292679600815602822948871712251151124944497971148231357943574541966062017364971238956974803724788607666668588689731341216514506334196008081775580083148996300871677556188051959731315733464911548986845240000012802900045162311515491633227922058885276831628677988271217251342183458496015064431599061885860658570061174981629299015115759590431189410499733795530526976395216092708741746706485837748725887378457367898703831293240848737799867277633803841274706829163641263964719307115535302166646133539727081320067328816305560884871905182712762069730424378243464544225896658559946160380197955851587457989297696370361571118620942782893956818679836463212277303236058348690173877498615240998858919911894779826954308532684821053604447038247511650825983821214266954996005699349994118780653428893412351608642025252601391237086335756040972920912557621409429592133242910321972314499575847866838446612428814501140045719250257602199112757230754344970306116906256542605955491083223813853587237090957131832599036828026489445601966934114901745951387537400476885939949117190372034133480550539244690630209448469292064792642160934689684858944928681212014115456000989146001957601751736271023459622877316244770982346387363659839166314548036767770147591037680153426127581440490075063622873169339843102934127597422328265241724183266715766526834077113113896741019677919891347945344504289357170429704344935938400885333000343359010422896965987302816973145780696393891923154635816564104907236986256503929354385074783135549854949689547334406283379056583814551839749848175180942360003322440009757315094749586260900678872305876685658265575238015445358095445131966611272833895079448011538144362501028843750870777100121309775826871179313269965792672755205092045667408485061289338529050563739531619135671345710740813218040378303626067876272803639880853882460987703272654806539818583838548431368513758710341823446785450713168471234155369778117473633827249680234310660482721882784565673108052807278757435187576629342381192571681201499913190144622812644356931789324284737155115629013198977469109680433440079559774658033171415537789151454059069247740469542553987061520195165610436291711578456646233675007867233652662592413530459708964293829452943528251428979076498452536093447030015080109059274896188563042335791694267007533320531623246064323124924982998209980593727609840410781113595438585473030003181741859789619829434293627972082297984169264316559716703737047162001057659811453226665962096983105239023744144471507735000029583252239119114200360068461509983793320334685665782594898696175908052275579920322401331859042954320842933706502484808324632543885717629304461270313587492929180844954334722365000850741167923898403132977829621054316659752365185788214573016728059273279445130461800347462487932678148768201978254304813454725704936956095557826095696096123724919471084092510523086064488078821564007414122206297285359791774376063950712611777392711064484030483298325125140507611372463675491474323229351279028507881568077227641962348261312502894853471688182786283944847085169297656700391775450251087400940217956196964036876777558052399118562970251098863333154612792911534160072134030550210092330397421496366065854668022127736888904022000645586751063474542092983871743086899078767076009272621426058363316201440789925284685145675773454011840392751345147879679241798297216989290098464923058485185720906030337996089563680898816607011858806560074365054336464145385925233512690524139549016564904576253233960304455829162258615805514724839501619805302703949522980417870246287055158872726922275876903014627459786854578399852283105811525305727862256129725960016456846142658148670690575184074688245943813436478455054838881993204465537568951941388733515795448549759216862995393004798514438603708076049502105312812406526908725212364201851403056579975730898494911180485944374054578067953113515466119671228380282175716631403222995734017458500295801399040577680318986592017864326593954849624361543184405006881452656898063043939367581864347034414952899136442322718480191280843223703463659210366510323237192005929302123261815314691928519259103214128173452742457725234172150323561438086599181072835479593517758482563685946134419975688250591537408007598743953383743828189392183706368267061497597903428629348101853683570433253138649271948264698107658938004277833698578865829532375173422564709875776697825815430545059076293494965813643557564497251165135313572312426907327848335300388990879178651663979130233427875758250092957897522234639238019431864391176923358178712502824211838193696247693611265042966591888958970868789465147462043968840074492756756603188983245401870926152249168001149229771258563038169622029613542951784370707758493853133646890108021810728244542990798367607057769494353756497465129385800477741571768651904620214197488122954913352447998366693774291969090207894467469855500000839424309171184902721688189622796395496752826098402056780071514935919256291307343897002772425759548945940585278195050003010052531704247872768733184302920447464982485492314884296754665501516680296371383786395919393124432400883252316965032958035383349282520990793619140696701220669137652414311106638139734812762251977624236858569914405534541705291728587768162319959094957056522387329896293559422944732930495306287352097805137107753941386264680358208596322528389219709766370305247023617595720217287519850046298463064324572391470596946784918052498040534293545619742612442330663587400999180491024395274160923929320632840083607789128005105545688087846506980435291069048769593703770086222040648749291448437930567527688603847096715081618070686552671468327396444248446999252177047561997294655641073158012005629571551158837323137008575175699919260666556852610051874320103812779768308186143670768841387670413568328888586847308305000479069840879214175230400845301549118068569474650830620178507496730470767798222346482451556109591563682186782365954251379053161014739589914562441794504024091455159397468667477121237910694955638150522932774101867266831280971662696995983657588472848437019398898800354826180881167156967000322693682968886930802752881507008804989438280738873557952134895141596995952157508109349468158908188804497556174713747910345619800832811358063394839061281157626263213991622339800993357270751016304045207381509401688800021223834125361225322032703007279352103533804502064341859491820313225350830532947373634593129991693246674392531548539153366013820303569451007518826888522266476691889799676071716770720345664803139431137540333986775705799039620325709847724672214017881179802594294177787970694262282371967392346619355157644840322148616445209444853617040513548629183603648349020288570618344422047390727782242660498947366498737035363190789491571348098063507840244445769956270227766392484108865225252830199883127911493715905200703844147905774078143297395634450229008914736451928286376351023097890229474094324952153866337725628948325032894078899024376321031281127670932949567283584319590705385888354043569703631289649852706299948357260570151142790325005482922334745278813075263904132816426182478287829503676701546630234045229258989479639274700291049980719666733855283435467043452004816200830734564761298227017295607988407513424706897141563314406837478753928761725570258451955746936689134805380197772247271721809347645050067207277665443414209041527229288957254085945947018658483884108081153686181549099938506749727236882093906527533558073744786242687252857006142318966696394736542818050546372177064976683704638562232707114683423751794624280181407803401814873028903202327618786251730167038240315120708926261021139624806680002250400215868364824785299305664352374305275511881702503546789885433784055662038355492496937486905558913806748980341182412580377977460835368696013601481052036836594798160924635090539090886044619128053983222254508438080926774303920780103399307621655377803771222172779098156046552888263905969861508644019125912237783320045426370392056369688086174554830434069221658477070316646873158390760853307822639718795969183075269771700383968789720043416307718935936434635993173811750462833967851930706445391610830156396168944957200409432700097699937086949074478019657285753528752156341261745349091367766948472286846129492818889360602470825570436414644374796359289342649173678804906110349505484189867862273508958319096482850759917672438486208905028149174514847557133672684764301008370758100527473105463691257786457425168076175923594949649476156984833609652918294090962176137171068806061338733002585456649017349430563483759597373583951136622007031696716137464606515929215693951581289673365911675812145225759211126795346755679346991007455897255418207171519805241806431242560391612587354694259411641975910618123540689030847839845401720193138928225924015611732574879982089589857026333482136534414363421182513982003250119590161621090588967152338746984666337285640302874024412215755720545798008933866274644165865477033238757670247625035004623303645180410348441389810028718984823272805143571903822436193327946162765587382846074001120418046015618816328308895913187211077640774880530996970620316302213261125704093887692550860975216657078816062903542872973620919942688456867456362453410068879894995087658903479368105545514212728880563966558042008917730087022056031477317215914035885410816968825753528143119167377157736241818240435381190603169338957782773047732199328867662748294714342910300567294458464188530928677425145865355809428754459428904222117856518759303129866930083167868687498112321172231804345715823554070910455869927760164257065231157787462870609450870494695236845891095152221554565345283344785770775572426214773717849250897551531685184180189428768003696648231589114195371491604555985131228340544917868411773411415334007617569043332195892236483799526934843164673142249610517890265281039877031541586674129096532375467524038416674766788653074590740384905197356679534222329446428488987905699604766220704451272704651455738423303768051818041883946566008364134337725202409580071758955633105700169912597629348391105591777681960868900642656080586170544550463228563815191226347386714160255287130960504090292616280033336536043275595715218865653176371976765540956159771165930408702627120908403315412767275912632743967989294128261322632347693919545802214390961495280840099997511188179479627692217665201610268723162053399531030966785772745747060605755921112995484617388823619578196942979650224700869954922102480564516413893944989026642680675454223611710997784978750821756736742105588603164565813599885559097167806058608465407582224075214306201644494757986488677963802115190274680103711866851013376475297558045858469470830243751575197534806396697453364885514630649258201676037354156590070662507792178932455691980094720851502340307027442344678774367567573253322503941789119461307214149593403523489719485166488548995769761781075521091139300675850773127721775775702345356106450442105342665465288949475112569744117597116923749008483400859835280772354631054894170643716915623061727690431304967285647878060215678609935270754091472653404880095322036146314027111098281733032072653686829291878501447164851663846567158376495219111855038633441647691911661093551861567389143688896179437215829680188701061330860598822859144723507522749670838626424609889798208367993898940002702384137593188392241861447172636015038553083908290358738837270198811944407875354977109079050132161055313891398208950858196020074150750326606533046064530802065997307025700062577891817527625087433415067626172141049174078412500878773864214538258494202696564614346050009387444638705901565595038141395658836886373124395136554396247841325276267816035155063975520003371957581677185338958619663696681092863280674686024981395238134163889561379889709940832693026642431007458752904117576671896697533054414952332438696742190198666198076384923284353490469186294692355492847033876907907241700307669100744750366065292330799721099439465794557399241655329995180613876604131184918183529045957013623945895796411919851893182083385375802691451463909843208369638463790125523978960097109452931623306516683670044100232166518861002963658797464185858528243546237145569464523169497886058515778139623663576618891401877465189360896957658164696749151243283576536146062669413109993332442991644143239447721952624936147794975989618688458148055988852319753199614854267320642423274690014124489977629528255047436103200348210853744306085101701669533325736605651796618816428116460757466345878829205857459387316114523036355121043818631366666696475823863523677224938087322923716086367327228663994904788483083811966984675513958858287294103118830942147051141462633891080219344505690397959726797036567969428101538861013987377906974134870647134893829849000565578730521002015951678094081048160598522342523471274866708532369301105046768171597929349078126115817422384094817087882061702810937370861123369942175760930071437029310437874430104954645978442768000456794319409970691722082338837271209496178772007248256485611221876787971488379043712584677043496819020780067103986491386107822945545139413284749433005025826675728781363113215256760918907042087980591933880397832495771240720598166130243783912950618865429968531514857139630652730661820611326070665247776580787037222118164527366102690085116076768016715530989262367213430613219309798471008464712720099400558153557802862145720239439995905507238621609774520660247593784000639108368229500222001297985752200571231945915015583259145243304320679318595585458835149989914609485184944421479881556818464561417936181773727814927114269591888435397976154382675077016285794468487423314847790477434241212709995711353322408633986724931510432486988737488016622892993103491500219853536029368958358335383923964555689442968336415816643569980021114731973227007846936107883218425163649539125194725925605828841519759734078688027984877828604911877683996122330884858837604335066188791786836976908676454644777198128958097823157993121718374227189982461604635049611826071156799036170834281223133222260434049529637247594239896865561233911138144114703888693313948167466773523524285292074097952225774737977474430747813472462253237870384514072765182657499443351367862624534991950070602753135125018446959020807160669077555817318756013043049806225233023169748983852364565445915090692811661242428792527575513261623135071170646295441126390087458723799990976617553193722730815201559320218390769952737950411274467316474912010384942809260211790279155949875926647638632944529990014963496749909829548874159948414918581505117311196652916039218068391333365428044561105944844187853109201172066894934397544086699014065358763571986330184642786141423105253903872813549679164487923589215113816311515525959443554424675931794585196466042848953301707782219621170772623846872153139923366435877830139894108721706453765778695022962937226216950430063041062171694663932250547845971218260373678000717740312275191091113869769017119003482255189838715522184369263885775968887661488828318498450829249381503929110339827654440174764124252166467258013981964060507832201521181303548988268913215513615034441155203564514139416249898802361451299178340948933475961899136350203571068144186076468581017575414855339463251283441291455697803086412243390575697544733676136968885477061371202659039427226887337417091597888991281662238670862000236035673372235049391722189597904468025136775705077764887128555271175383578364301173680706737168597982281671364213393065237626349129667554419240515968585222787223561961385517392006001060920773840154810900634492604171588112973270405472707132462392595126513185807424502957098352038761982582881942030418620190823293113867536668100616874625325178398743664886700678860525758071106531324054899185864698236324451622724748653770003283931522989846189260732974204424703837693318135419151697418429792716772027707900787163213331500028727256529209261827029198943505127241019134253644450958428955076594927701048103589052441289285836828656825798808717325328485942790408086085844585936095205486885090954135463365725903389420699113713534306523069729516849654413904009709469452106499934825125606318231362942907357421784336124885994361886856200229016192062960710388940664170332807682505013740267556837560838889796276423593173663722276123936888085463521526106923392775936967435085527077076640586008797373085778630955572372248793154765338341766262690481940082179080530499821720118630451224064442904089787974217392718646559323858219521031863484596517287515189595551706174775779482646503733526724409255984642620606677315971468703855188261944748144369451316602916168615457658856005220167060549211039616179527948807863646112543289476809049298281585342007235642566038899488577431151387222576895512555302635940696937128068962513191681845062263428280464441624174144606495001090922121804071502494622113444032182366496637590274987690778128619094248515929476532313546599687845649030942087307398819839262195353680859316124621441626912022098274607983427991563881347991266556032335835723205294072196667294691474669788985820177504281661116189123113027854379289478049199965702989093786155352453242873612147713866075018327278480990119675288914598839380142373657297309874668774478395447987240406262674338118186426733993044246707827328760834809926777401828801980781691907603707669766364059293517235735597584255387712882305748222241070802397708860069304218859368748194175984320799229242773055608701721302962294199020575759578208632261729132927561207668075099848512438702529472848505375410344498904496962901073848101822200175893602727076767564889384754017005556361682918635035758388114248028495053707373622222006277346502654791298203855443247756190459855591600391717979146711400183915226490980903243223126713001200514274111783443574421326063187488654284566106368867880627246711635960059245698197095557016882171376877290157410928613557321712699764079384902163868071352494471945309905895502650547362853065364379956883829928206715406436839414831857949695380805706298256658277495857295325622726762183109627407894053371918193597623870949101861771500918841791826147372312399538353193148673525237495460718142732404185643789737657773153762413031099298792212053669988689447496920229686179694077756721455525882854336615747912537518800516761028192940150027923518315600571991198455748194222845262439516367567865808087302447173925859060307332399419803483936470894453892466786260221623756448131291242116397520854624645826472306832683311998158890092385526148811707463744418639862829421610423893237316731369874848675589174303194317109822686269094845809496146235424653959979369506767058504183707853487992349482491231241713042489825865542755931547662387959319028487656057827003799440030884138635101999440211214128600337786136662495615810387645128947812580392095014513805989985494033199465003923862260687670611573466412409540981032510176605251286437412556397945197838202087998143724617575931286033779070439786640289276515583291671110272803253408483164777697885346988999814737506205269529841709768182771864900107244569423341853975065851340641304266947929488128903173828344055739954336877455164830511380369283350211405611080247171998780779234836663798343840354204447838520107933298951703496538940907608492021367669192143478360144309220996003894054975727780148795586151829442000138229945440493165505710405564675554503967162301318416357954615563025324579885338928381968964951042288382581309946508822754784679381487256555580537024255988738178864110364972204296611934506832447522052713214850252096975672946885323268840315672706105281315935172383281203861837654007615596175944370620715126933350458520329706036874202899865541842262643255507248425472978604807367190809558922385952670574198103591820058212040277959659816364075175139842651369042237018030018849295755918785557524061233879228982230373495890278765545653450797000762609621506496671148508445487796542420505248810867003989708163613518184369986378700624246564658175622830847615442035901378866271088796166995914827012555521354941564352423831968324606874275618532530018341263299573930677676745517719446299959576249623777439946545276716269376458627097570089984499825513788122796808924807250960662665300461288976724501121226229729837026060226957099536694136992072330387844890737848931532215905362812155613540950213754746547406525457939016495127226802552041979169117285372681856905689845766849099122623697278880042957136654774129813666915513751690517298838370098151040414048880168871954358499404633194926611801118319624923184262470651344456858046217275753727929003633018556212143543405807844231441212782987223534310481473579640561120212947555396926473559254838703885884888883977281817343602396372650051068839533652851088395791564037754052918394696134109901457306871679954386492346441313621724586884253403351287355643489114669708400388330029730602095074151820105500964178738046010756475678638213611614769345657765749379939321466647350149102021211434224555131388352732279465365426789189941793831406020929472677272478892605917834626645906209558927221460400924602022384325507825115638004020804396887533181154014551445031573937315777820155644749593732375342483170856468925762163303250306431567323427241273160089715978260358989140532958208445194815700026780388414034547386348604098302480609010030834160906534185516249114246728697924843989780279100237442946756408833835572954945510181014802220270669282688444732400093395490692298948975784071407978046987494477050477633456516173525229555063807309598790759893705467481504356236403080782124199158504366305483946949299977974392715805422384462242920764840575107415059880108768261163528709846712158379530427634965079390186452976689227957417539124838685399451797773458198181854784858924353793744212320855510941056243757613057475270111176872504272167374672805332331995733826364814667443070372891629341442523980472523941936926972934055736479497132766091501657598120878905669099496859769924733237347093263194150264643191778760086917411336897126355192064607743409987100337641690283188321725286222434559055253149321411664469352823121400334129014484427010957184273405089072934352435006844219600926762757572228551603068686796336547351268910241459560441107127847673395903094725105199613409007652242326144494952307054422824834917296528783807906059394485006909296989935861346775206349542922279899797612855756448131987588660257331816385572004506573013745581849389811740606110566676667319834206125193143411530341899305228117562446015683799122805470744575310395646197055657145367101854007111839482718236033783759567564619178831778017028714676946022977819006900915824829776102126067158530786601353164736900258113211559070387632914687604054480799882886505437384328008206528882418016884185259753049768158871727827380238806404202581749153507245529764895280973294902705879076681402194106384525937502371396862358299024666875518770109271171284480716920723467551846833578842110190395480004488112123815290014185007109049106535051397881895065451327419658160652487835819817478896822345123541308721820789485051756422625884420024412303172155117571454069550989068813202571211254014810461425501852868097155395590635303284382847390418126380383016032570254120158729126403259670593583594139094531056234020205220843195437010950441126377086909210514387532078073757281568161055481038234882115649726397083445168227451214471941259402155816403353464168487950115432436339968370995245034165860849020152648742754770902980896207371036832859074893188566736668743923112066901712908030436308958065428374216832733884334378623423968830979449223086457822389409986227092971981815263472760865162674852547246043694123361951428857652412444813757617254049768685305341916296499780250096008673825648050752752226073689536206526546429866161900754380947783252152064031701720545608642926145949259975411627222412060543758497347465402504724015662429781534494878371644692126124399582586943142068345203487499517578079795149322710107402950503284278432614736488871316843307560303333824087678295971493944034696634399887591476700384850024388160731514786537896451091425009858962224151065949042111237862202594625846138858988518955330857712730349815872561022916736807114336738727270756113038298885956667222957231634597651924999256226414586110396973376946394258425226408767754169258245492455727264122015230713292696889142709840787281103647048983571844737042726395895160496099379506651567057349282852146579462210968735141567165284799797826937135474502587866658655603165529872320216324464261435031652823916270494542352327217732515149340492697265219754418933006104855709347912624948693632857846935779460273712136248367772265338389850587634502707829244816639825798451959812836226065220497397287543358523985999105058569405439933832613538341808429875852282317284338764151491956808131951817743700191548391352564616142660452314845565565216104542934273782216939925702014577401398582314878194547209379101700695343654720651201297843360159603614656951154171442659783858667093588855640800274913298512643617815412976583215218632025423890065982670579268790248002518630968967305209337729815177381158483751907010891276525134243802436622049554998459137768757797850676402657981337405940902653716078299567406050080824310235943496754863259327968384197200911028461644116876297805431004274492077048459035172971270787828283650879436412428337134431559852555277751415164135401478267005041983588518491946909508605110362427154619164931635503037030678136030524969627698602337525162519779642120286301091830835077315614301944531687352581751448295351575103786846407457490900278427150698706672488540935556056916519392202332899000151770871898371988839847005634757686211795604512305065937451077726745717935194295209091753770429191945093529097156222214242054513241735847593115234416878915100373641001362525370650447826204132305853437771865209363036727088051097930922715229203482036244486372121446099397116926028954777775378914307681340437786774985124473990173054182601933689721680788894931444734952633569501839461005827874219661450690937618639018376490851086535236921152003290973608389246276479119462537815036556610832493588476468873120328269240384913696822031895897030086250807845194086374088239667180654759282853875730178953634157984140583283580337481654799261709288921640335567172557916299384041628643533930814044266252800050031585095403958000285949954480502505244788545926032728369144402591826473679336052423132952438326004388369226842342302533519496581036692785806398732604196118268090264675863907889968620112557800423811255436105871082807439667756913590806726621527249252690422467002670544826738024672084436649555256068221558881685221916601637387489788458850396725924838767144680001666443236248881610130155141754342146875719976014106532029305034064092000969324105647543417521818087956191353875368073797647928327456885945092146373712198546141695766914832437421599902311824172941494774182803462102150149124935920703879587656236417477357079921502628394854243741927589491451868672549656964565967384074360280589795245007636899479806787970119171197512071666087373354556229542619973034983242478408892011947311692471258098136056653378303954891935865373528122293470794276456012261507205546844379158078228168301456434488980393102212874320718114714504778876913286942863767291037848575029207831960219055208442964787694621733043808193445255727017474728329849178795826164384873980419770439058836754100271256057057240146464897719930754681368561622573319956606838509955402914978759881301684505238774045210788590183737907907617371403912043665200627549383795601371578290629129551841082214334384460658890822804887300749574672233947793279364846941623184697480179859498579023087331393046688113951833764923781693047694484739673142557863035454261112389146823207247569253336494155561129863591068492028220827085575306937892796439157872038513973060131916897636455857637653075251528356787795789235315915000342374761846450023951353605236798058378837347159447431495842171961959641778847821855731767040014688332053408709187051157018898283894425904652560675324101834948343882739422113607221231672695697857585616685683018828326671155482300212437179192536281952609799669979969525547625980926820820431283717347125306618156034611589723786295300311924693591363412172977714269443518935393231669155338098523979702209861085888375585792828462252549897052335471538075655847166928576696222939047336770497249353411416767293044835598746710722720923744985303125588114097227020130193414037597945928410175089433051048531672361120286585059561445326922097220141704124730749876062455182925491556494444323822242941235231714457955983027799458552046370470361849866785625539955743163703903493149182047934726747450647135068079377349776934295410629886514249957535934961381886498332375079784889571851882801962527559392264280466040319831280942111175682266765589526049618073900389215705989036433897076253292169118356077036594870799669603541025129459143261644029591225051349110323117050419194365904360185345646433757093911429658025564203837508254659697815209528631480892883715725655716418842569797754969312138916617479698508907324239209893641349562568550430511289205295117187753775796048409401978622978875937878537858190908815565675277832299336389280766629870560630944201731387707775259597922055621181148747657229663516133564665149200586123149804602766692837003255694724407501759602506177054562316306606933344023417954145625844411710790393199635099442363226787224202142333778830831018034705684092758562711234085861871038746885647694038072389317967497686572897826551443810614693771014280871496564383298484665632443445349767927085854198046993133424938472082498259589800289554734339944603472657329645492633857737388719527384681528445725474059821325945892577489130857673087783903896941899246624388236825460689545522657107205351685843619251117860277783678530604690157126026883883746744165176138064850407341444165424900870513466135388516960555503417416868096833707580563181970356089754485318163725304794790014370951724867424671744006038421593698829036896124111382039578890596514729767319628739905514612652974384938848618115720817752774598605648979109222970641200000084717266939462406064651750042223284627613770418742232970089503044647253817482151214605738974588167543102969573696328126051623632765442939404215318205372073947523281356646819855188233535792291680568121546100941155892846765801745077099356371481118942430086367964897515909030307488599520758588557632444948772252379857555904174761819654271449047248140938927666112089846211970792825290625896096678787071662630397925660214700891103126244165371066516653829940342051363728165373937099058630299131692131203966704102011276588668226129051887314923853861802418770446978743662969086186461436631096785396048451507684660129386663285087320591608724097367104648274667185778372131946002401038436428391485182498800774706681384237368215384253174490954299827149063884772205202283597210951023900661582450340487249598291058751828618785557822886067821588816236585357592520500345251987735556937093775913957979456778817758788752963860411717576451707775458216053118534488335312207215895827128746941880728261229344786154775410327700820495396010586000401868530876190847955294649395970833020592927841030525484554316336537137910949798536508896428309284426963824786490919438437584279169306095227084272003923941116630209552072274069320609175379348254771696151005438584034387664731674119729739116404271881986423262790754360331787718150886587111059512070235905128657122261148896009513844792912775333609608920835839834876785545161638873601464998555866313916838656046327016166364219606533022875492971777536358770118318047758168668489003766638955178412267683982292567060082980068163238424098899473202691012559248399006816087894429971842705445574570242253978147005330720818015093452056120886682061083827498109107065049204386280590007722559572673347488914563437000007122502941555097634094321532666647156522736930360234682915654202052720990819745515271942818970110831316526403907691452841477179874998523069812538324946693834274314289581238468660496541513495061342408442912674494914435417464815569959793738166820306581243461892101700824952670854409395265260897002495478577489115790480341213134756246445032943607209074570870808296937438037354849070792054272100485216530056626008362513639541200770380988041044363221813281299054418361685108259167977999405381798721772839940834446577326756476315399315446369723968185682181302411472033784507457307418367292724498875541368437496563518101775000581824845959684595930273523018219491682045870748698897696688238778248863240999487016449294903320556393511281743651168751717763231645883014300297978517099212581973677352027991595329193393842269070909141224587868163586990107538094969004855618181290408880070614414090337760563078029397101623209548869031522291551770277035701453453390398910125816805453621273224045146686567495042714985196941617430198214923007259840440333691891647186287247179883864513011385123519851807506246406306906002638028561763311633121054469748205796310355806625030638750994591427011172466230073645221541664493628812763133315690553460507926744610382037264385270795449486441850711786056103443754944752633969261169928810119674804864006272104100845668851414658240468237428574806710245189800151327340883006478546767543097203235758214574131294398422119280090669400455160341568041210294553789110750218340914054648738436439624960309846792067464732528063137495678429052592545822675095906652982535593539907095070908561873935635272981644111152600619319615449625693852521190320200781023823317318734414304252082197244266170458095097901575704484085985991426107724157394234426660904402373746562052414011688168093939033025432934264698658170484360538367070181927552537320672813884043151327641442585427729538045468957285092036832300836915368136722960076911536465062259936880107876349239257527168679667919118312361422080214890891525002782180212374470451524060774242026961966578262423976553871484804121388488521945131737673788357603301872745102707482078455305349483478656523319585142241988116924080755742394909611764277809293552710712393876487272489279039283331677127396770020248845638529967460183632664079603884290263923503117049745685056616102669521141030973414569708139516218885575539933521804205492594658058137266744430109314924933549302563033101597083470474512861859647502765232479283023663284788466448699644842430333283235718804867904077891181021847661763900738934870647289866221879210268348261944304014686386316873970593022650502559641021484364496650497037848734551842757503815527377058185116503135710655819727503547659726353637238400575100005596339256284774845334096097940265604197846566132166560246244652372359808156557409620534771796176679681900681177436294335671649657045887473154817654330250435244365416776833212606715066268087570915458859252881620487643489315913211317569011786243940912078529148678972456107947110581293880071978511094524829127055368668722319162587414338063384081910408449605577950557500142968714779316934983927522909548339607416251032408202669816299775629552878096526472705636479935152117625944914108280411852816657741308374361069212865324769368857027644485693435554534996300218600422728045054608965732006178948159186763475220026396292124678630319896137442896765015869624432951906617903926955448659279146819943148745801445014274380849372875306980869494226747557659237180142676193300722751048250847035210206807676399867758670816687816307864553846331831678979968246347397938440196844681257612491922571827084637793729615357808440436952723272807430708313157976239911805712975016365253830887026549082292648695605426003281109568417050373864036759669338716088331958017893977462051506799430304571244490111098719926626014847192286476635490797499893420182447227891347141814962319382066378741841268651740718951064066331457841026236051980712633299194101206474157240513424992967231699242058243228741811575351962654821929690742847804405876165339711615320993035576093453948705539279347911599799135893359832704071665692369155934499670627567957427380608849333633642182117676220069030713626811354078809505525147252567205843190223011757475543713465987989966222388966497681016935201794577763408754311246025623097364790129519544313575341815582443717243083079029914110894117805770121983771398839852325388004820866170839756070279835035620700062182460355164889048296186457615088875852464062652362783404196336491386241882890507991485038462686086585530671224815023127640637617670268534314646341834207689815194173701398510019128982768910395668624611943054217587735734713152217400571866464276776962773109571559120708659772362857502830977972816104672960300869650011908337034277655169152980761986278785913620546661433837102421714104527264170039114569227708634538914104941451456049827155471152632697568399278476356377714024062116052001665099206955908980489973198961266473212003215457776608153760392129050862424163132879789146286137698777366115671632495303952234229361110451454998957227797499960446532513735475986203329503831612123146783863722740325545785409125619292166506047009993947225326153037338864691510115206855981221422763882049449165421804215482818307271631818204050305362147950652898392144176300908173811133495917778446162368504208559645595057324828355353615692433946957008182427786735977133387262839496003615873223210073202977055945209909682294913349423287936205027906479552146710077014435539740445201723846780747689098173651796659791468367565112298373904274301433020754387266963459959167267062546573379276400304084909231638143223137353477776810157733745400681133371519529695707253332730967057774663793150849930198474416236836047750953309125535753267794888776143321944618488309078822876223554610656210443404093423502716149164756031913175013778965845161160621445952998777212363916481150750321643654659061316145127820272090550432391958536741703006274814148868075141370668158944168666646349637542609296716243904133184488553445315036405037204289763420335452820978089068356283540696273365269798987429712057004076291578630757393217960324670413077756184424555312279289830153408271326839935956801141206927760735205480674595258228475356795953581233774759845099221005157078282183712862818488202748341997586728727181892186616287713734161229656015849990894708662429230580242554054822313538692445874247866081006282952471199751591519002775925826619768525862274181129284556879549019999486110722921722028711569624585993578098335829590460002131513782949058308632388665567108959095775860675627131187062448230625895084992371738375907149267085345002698140747197753721760009992549714871886756451032349187765979615935409156301176833580131427879693338141388326846213234710688594117928657089841576351574670652169166216320729606299592273204178036227236590237857649121473090326731932741403719769544899661666845221077653518093613283669727022515521019878727155370396345855672939082337437694163237917896419719091954430428737772042711546181027100147430549510797516350581321721962345492279182440645756375433923684671553537724064726949360752646497986067537602978933838068369264923851352676765979222975616695482232478293174220570848834823098698018012936168624830141737201249787247003278679883930004474813682134176652262508494029924078913845377229524084744173009767060434158677140950661669557803936911708225667581356653362729465672431016505644625490927845147314546770921308103702197815477264959609301191146676793913717908059764094910729050697612104453378818978152709192198217204496388386149756971219245759212550527150971766907803742935408945377184776179332838402218203798110916540302210456275120246638567392094574983362472809240577541635369785066788535715903978304754554833991422800149014457501829999753237484429772217451440089658865973820223278367158402261567469689273791314174469728623846963189511377485509329612356138499210464707316095924801640422907195798061484571153436992342566042804776231223688151538719577527150897676843706078494375437187382069099422112394341522918754762807141606828290377859682152005856173091701648193102902255746781523277326524855840361095041981935517485752443443336715173621713272109908715747519106708279228576313293405838937977679873633497407242959090114407910889637405312172071583337804276447334788165574749688364051724924292465563089260907512600534211420238911836000508267848301780124873138311175626567410660858533379737444835300327612243738561910794586185828518196645507813517407085532736953454924207512752906951668528774999409026376309374060772894140910707079771828984866000470633224235197683775711050413025267066003406371342505965235584607591440941872014944409861176438062950135924804418562459548232215196555100940188604737896354844995467493027667014610473121677716562633269398555104516187075145422567916267412603350272630107624973380156481085281181499268443276445010675828978889640619534383167534708256184982870209443545375552432393016702377662996868192200640451300502577909786925107923651648446607961513795303217571856755292768990647940568010131322334653629333187744001386560943384936986104002235282883152742764607583984971222468983893922549604279223516525469613883761892427078889936257711254419275292500683059518070720820157326158819117463803141914061962892278607601181995942846640058478898221458444498224777922200193831679694708679208051399328159550887118230909263980429844828492562865201728544353065470916458528376911692544380136113296192675062307832994630920265612663357198492685342707372673146234925045858002320875616321250483161386571892863564560460839502214397579233958611848450254238034584449997995409478421635381451066278702603192921730622675370559381001931193220221389153522682106937219980749560208055603231895912067620838924423605593143174310326377834029052126626884154683856095543998150065283666844012731543924507981662289597085595254211179296683344875296536947604666700999159974369434008920749904386290335901239199651356494435738643795256107185918867926925284327523525058429478370493906818990762532433142775728036968711999653692849604135621525904632953591003410094120328564658822237888675905693741730433191558322948185648146381078771356325703786501386439947171747982122241906279970666788620734679618984466623831545559648355043325421412698580910891666059951554451182032010878805838345430327532414004119641088574686480384914724975599913413320318670815938805132076775896212430525785153212323682452759733702121876079361057634375349001351809251108988858344253089370083581290909574780627011619006572036142169623966105586780776749257151575702831934429886994047568280670891376192124694553491665405707776267088169831454223865562039371219006670517944530021470499381238719474389699197052426187809328838918321969157136593160166232072469354647732033626931821386147055746183609791211172187217715268340274755370108703678625311295044393441198643805790262924010965160183525028430583245678695346345363876539289070141999744845000745489283488539582133370355174331918775221403587362287148273424598202050471797354663037067459641046432086592790319030857694134316856026741345264939612773043555610532329778451485177683613669483471682757014124830603718968814782239940427642995166076024091268636098087006041661722532079065028052069693699241579554098917517267274850786423827319435115957278363885609303907746216184195902502166163287594018719668085194304471675483193206458792559245014978234160743939529435427615713103275616704240340378553590314880625406594895644936219978044021564519830849686315298154391629270884861820763514611474945747189383792672981372435571068853889274071503441054850425326994931587252539440016237373570720624037721158298979602313212930433182439003264286007641989408233900906442736811084470257842838661283618259564902200465493979451671266134320149750984390859027340043081597687140760372414836641817963129005897828050774604193009996434091869833407254700117890197092035613726404793148322558873785167133089051907096045614638253287783339862039113872078209163262389245893868605850201911131207471387342135908722384784284304060717208855747041480217779592139401123648598034895918815271407715450168173250591080866878545994283124489051303839720414354309359519177130485247708178325365978218837626959768571699231928704100173927368356730726657473994914345954575805886373052879365945453483543803701071638039863305688600137396819625844571719817800593471889747911312602760784386611684582577248550228779273208976521609702841413462852434630902228362784539901563743998364922437941851289035570605348919201346539995162281571500565838116349314036937702311223893863881133600969946366155691266649857776874417704230941876635398078881390795809102048689572713777220324999353787196222932215249420609518135299429846248104256176750597097044370522838915934163340048408403285478489707182886931289088567633291894884823532651748389514503403234514222896238786741641323092050699253931976786265601085172324522395834260655336196485431795793716299396844710719649838644906457517304690173099271395407155867762882007254505493404494223993635970009423894191276983971822883258766471744609533080440200260711117198410857540158863890308401693492079614872534386822998515667702628000926788931903210302100973224776348914134879545427689300401961374155891331726811538726731917791001291163768911420251814501415093526654987335719640085618759039679860063977022968668293854276247584221969877000104638998725082997609906909404064410119319896379016669939401768623678211786509325969844652486636834925458747984282772185375515804725894833071012219525862927318236383342159947639440598880595374176552336475536421743383016766488256921879201096042574556854480432120308378408612223522936294464721491758032228990252265261296452149742180345383960003396808097359558213238529541387376238805638257398487067502107236221628206327281703682727214710466584690890714364361360553339726195483278038452672533412796417987335268448879053353570857285426101906409242055644550906603080922271948621518150722422400432232985433373107978215144547303948371485505753499859124549068949872604176221491933453095861416047764537091955527294963911969402530220810198386468627836843224949999397019510159136094731335994283337189073764198862511992335940939855864471869863336364160024849881946264178330950809725118822724990424297912717490493140555192753385998083304223163326122314284287288171403821500372617308440690660609075768448179248309679259628226078698510464944572549979432846373980862379479829287729517315514742177787620794369428687948440444792109527578514473675706351453542852472162920922401888008789880830463788138432873442986712227463001103223383489432677722103849406195080005575250033958136349363729077263817305989882799553516350295847317234158138890249171552288875027395786250149288539623752381385249654832232771694734299729424886733102742720363597572498789606141544468169688050305879335516252498971001315455910233529051228251829495212930036664830651227247293698417546129242971366215496966572594625510561483389251401898291295835962294647986421921499196405778868982512242229906617818637611222086234822464573551579505476470314878725313156002546435538526203690301555174401313933828504850222697642076664298237000580469875602751225577849535591113838233364037593554109962882925828005101383007582895136095333136645835560244211992306599858106651208609263409292233257411928683170226218478094465103321272419464928394613582400177701347481816378269557070066687520949903037231776806614533307353591143604516062525081947468471732827099089511352609673321534615725646325025708377077221851030304712025714878337965536703373893060747508453922884173087087148637318946395630574185834056105634542766074531887132204793510098294073038555440330216201706979956689740082181365615359204201712048993484220619760677422412513887411350104769177379773454879474403894164007915493938392332563360476371355618344161972698385279883826835746643369045463372717574451328147532318587406685222403659572006290012987463380864798232194703028048895029772787949611036889175167938510082490460173075486679372214158288122110476818686279924834610235044363955087778056524040960011772724740578395495986922154141135628214899229330208118269439851734719409816944562725244910517698543376073260639484085320820141476716355897722900013441760655738496162926046638660853682339510434524601058173761742347960526177715323392366046683880578263590539631456040770252496044734311157552735729855553375715491435371891130319855354852057034149650349153203062706301233480112813708089441247751463272834816117385915548513213165906748195297522063320676407529322625543374159480160634347213219418935496589782664024020230985500009240397971433226634024961792293283211622235617182854501370684101737815181299481576966340587919656254792929890925094741351902843154598460900374228580190622630345351040531754621530247352727976115668907403017258534851119003045347019154686030485648463460062047460235612756929793991633605552495747979024751188337246849073273965474108133019706867979999734208746964705130304877407379870380990713469507668902543394543558777058267592332129711754889033906526156863251150290893311347952276158754106014524136611040074275704701975552910692406322656597304954110674238506188134728581574498542189141822692495595448528243298190111957938155510876180058311566181544324732524807953529049823956638581196431176210381793400272316273640822058597148248727774638438806543017547096072251620640985792194484904283473726480366175392785143269756248543183128878495049001410139856447353481934008300995513099661778918185341853256487504585373179102544065542887645799107489075569782465550049017367427426174641857764539933991218683216419994589874984364330767922284220056463615578760239516353217594575614224241370795934655205384549223811635744298873019766056430217575075674240367759002923880077018737472224733304172486072316990524750395720267274220728586572644151608863883737541773399578890204397394994752593650258208945020717376232451849394810751559791889684117317017950310027989041425299266150221194803508895683272216431351421002035785086713538899767020012347401603927825102789548672922719754273459962294283046362700634087858215027931326234246694236470741891854214202063673794116753365188273185286161235430513977460971517553595590443911754590680324134468557718426024782362201026140493003372604780830922588556319453008089484300990519611278891104149140486157256423217064260178220226343546029785604253669577761300219458753630264310146431464240795287532511898672667084419569802087377410672464823119424792369033492696436000693167316803385746454008392046483029859890841627505075243464779539764882284376153760637686855838025915343858825685153412165553174825205254104143807592233968511074709377034483745891458873110106842538076805156672510811038507780974300040687899775241666642259952916926095900336551079845030202494069907591780601333609428996317124374263324485357261154646243497059117461059911712707520434942303994045114297749477953074029007963844480371479118945120548921113101244306541066419534240877591888078050185398651222576709851616944098331151733654742165185810666216345186447952054652558489834910826384212139808133458174814710296535064359957001279884963057653416309918067347107433762570498347512215172344163493978983509221080624228771094058483333778349294979164130145887975569745673933777913068870040946355317390199139285298508438389624577470755126752586748025655800685084427441326572690034198029767502941070451443828690430549402381464957100629846847388195092165267356574106169579467162276167827400645351385046578323340946385569242074424657458179545364062937068462799616705506124217433960504359828252753897019276682697217559121034056180631586407486363721801566940752062510758932288985214599243982231003729770800798254429383434158865622471356208573848693844880631639849343976675067055119822041049358333845682406944059049724153887409315573732017394812479047997309072197055248721255678823322163500605306461948125445920606531782637891782793948297706472990253457537912025928481850905416597348931709258698331751964016172090170542159979441628127686001443988794172832189819552141375986612867134964006460818922875485972737251832141269849536903166368876799941825871506132450690544463273306822492791956353503131694878406069605895441968037226981960546912282385589180171514736390775206903549408459600333833251316644073794985448306362453346069409082714967354030040551587796857380031726833346640860141956868316093228706750031441482754061428309362647050115257785456156821788437624317752400428118202783418239571159933061577404756625090775103849753854314466061802162631925361132890934082261683920319892678115870655291020553901081587657203239910557101481979158070070435702705075147752550573003629664058411221345322335589291035350136537413971460843396885529393422455137120654372779227733951849422667849708132189137625315236043955827977636445566709461518811968413957456469625192032184057506191581618479696026527951493124968483200556153262498024268238025652351174100675389429833539284952112921629141553077915486636068308504210825771214778155557358685473841701380268982219794106842574859553107544186067058480402187480198852634831507027435774752631469563909758838145975132501471237670741213952966256331631421829083472376293714216022022625121600993612471850251137645478597819755611826606355060647188328517287769317032368377939181421800960000007887891983889390290026515560542027464799473977865289192059027080604306137988453872325371030102340065608690872592046179941000593267642073808382870234154900802727337367336114643060665288857600546496138630786070322815079044521583424274718149136145362019613541229640026645650560241227935315488558310219685513665898723465058801353146793041667943913376491280298227788112271723817757768213767648257238705287279748264492522945320243829091487905630268827481231458784441251775675410481850862374119003687648863081338592882616015052626911829820644275820495996966930813625417352372975162588102260853374593829524089000713380150688842670633242996337010904533235546888635060018525837028046908046873289846171937247266423508758901639357937652743922089041114382366483739315416085703330874866412945823047886410017260413598063338201962085090995309173381550476384317342785690623681456825527949451078743173304771049188022364156641186271039338015271178970068942766794304234288122035412591451209792575950486904975481560677345574430779005937454547721920295145195837627651779620106465133696403394684264466530353623107082215115816661984116911601335618523444515257180186383452366567899423173458838323317937161689272049823411171877577979352406347608894833928993924138519713144944953645489043751992175946829897911324467496772162859587601308534706592153643377169016542600839773458170483436303380547327710418851209461435143256050094722236587944283515599777607095918154365750558373939904714789240543239437833081539148827768152030419734433894057777442606050136563304266836964680019866546928514440842504192528957169114073162589712125809869601957084522773790732900429755831767934863926273300655203135138652173084886733524473297392664265532518548371967216091640418082778359353562973692224383541953177950287367585147087118813003568115505067879776131515043089742335864636085113662181804640717424324517074240713715664082565865717291782051655325157798009612807773080170408784138109054563178709609415371496131024035871437152522991258472388571601821130798015353046903301284747989736528622897879039690715870346575573050453955114333981560655135639949047394256926374267960639679020400168375823035156007690209111817394243122636646470639608574510873687768489226931531780648937430338602001397272427947616169481839054187904585970766048021640341112828116941374809650991693758018328706458976270210867782624845949344632666664792941734275509313003141227202063317990362875764129530585629396359928610967205971828419857806118523819443263207470314454189240663778553859231067860781363080634244081602658024431630194645530100258611041444307091092907895938362074846213735197820610133603933521078846223555675395688010515397775489737992030112953921735404735911758885622409144981048502306501781730936391694757048619612373932137238434787591660615787107178417350197076768092625831065924950101088789284064969099872341337277624146376435725103436398999260401798357773860366578079473995224156639800948282061563194036001246397361704887192938191273976769959263371692945130953007404347816208861050995537037137055499544153624345892351594332765219302979799615704940157041624025763959239309507321644438097598535955238150154570031712363403834641185001472245437284898924691624090909465050870942404989635862020819785629362678003010756399172366979458210267168804392550780958419436497230334797048726686345046651300091393586148622097922269185465144454814548576284840350164063404469882888543709228670324784980720986820513920444823152905003664543612197905493796325585985896635939915656333261242604743297838305568719061655708639276594493687500653007586082680326110629128432017346536536818161694991448747739153907650627787810843255475875114405238699854027676975986803632524530162262322366617217454226472600717388977309419276750963661832177537563401318793498050480597835733104440485708184696539022659435961893559422300888813587399712538484465175048015732638512074021243484239005490960692764522885727789036849008349122172629515947442357771553929530807001423522964491542495047037565006611658237594838852025186019007979654088406368169790649275516748232160249020924441434945620360891750826710521033825158489135122868902440038890300961894236498888623982711908075108918708456557540990060022836341064171190366661657075438276651039280573801321275358489128256229246577426228681068288789322876540569803051865991555427289318222975135480019298077482433596029666504065710592165259191679660108952310688697247893930013680866185436353603752039697234799335521953426702627120291780331969520367331895691953271537956270291717431419062351841223075962681200111142036718076163121967469923779277051284931848398460947833823027036195531896027182408733381703726288067954301239493793511439956878186288828762100063081277298582224061708521655370052334837548777700990075728113358421663939108178760347952541107058227505823121269762998274366780316052623289322543334134877688226551654755735233490388378112702254125917565073052358915115396318140233454084698990503836460000414364860432245411364100096705199185493079679345065570417415644758132701939227778862957219242189931211867163807091394312364329604470832897676017558924272316822448048758813892806389289086471397807243280340721256882280900219646348052088449989332438189963011054918991986971816304964575305850830586066849669389074079709022039176574984695331081032573093905257049785016692456792518535107597031702473895586764260757220681576197373832291530546224513678481461595269741661678474146354185295403898983899363485926064423791187401651186085786198707494120246445910877577822743966506099755226804852614313349362867836772437914145177664889355608325422433388947756879116112729478426828854726246760363355250697560666245580967976473028702542539634038534998941475215435906046378704312221856995415583316693015915382898640204455067267310080177813705878400481458892313208716695058713975987476405902174760489441111989957318055153244570430960417453489484314149839073285259200913884189489646289809259885429416330987284965638363559996848051072768578472878823001269330219006408093540233262922536745204048730938249465581291610587110383388972078451615711866073126478684027255462040152682684152668869396827973090010987256138886992484481326093910681719299989736082218149291697947150500514594384647280462416860731205054572617946436438071819536759226433299340259298966249678461563295970216474437087207620596026945226490804743871869315718918036804849204397468792963886019234816539661917853509410342922754945874662101879168230810846066741103600296444477025782283164648258117708170443435018297695774566234243389741039506526572795999817618478237270311659352861368055082945161764216051624599480385341217484745445375833299660731888855484548469599846310539408244638662595169083349388607056360619022544439790838817911248416357765035011521979108582173158320921789919340725477438650608290607834325978898604447028147215376150110421914172449987105568263381091374178098337568513509058061265823749006356734837989212254893158585556080565791733929652401840656425011571244300769449738227809705752050297948176372225311143019055576160752529434179694856913716446422369295781994967624769136708210287124008733547182741271140862721872658397270033788247215752946671368079909216460470937750558976597006644908432892082238384493590098191063303539773697118351610041974618642069556884118481524621579373834182222391586898824953539397317619246677975071982871868970205825095859842142124020166002974167013835507363882850722437054285017476010004681073340897228338753066051820137713814449721862953270693647349147908322018090263220156664171504716352152216028765992764175417271400139547170576051066384440204766519359202628521055955070524331134903460850820738434495090274784660752946039956184322347762984770410207448515128508646314592303260734147597300099270911300520193548854626682328865721269773899315038845687729631260070148915008487005954567775465909524414866308851593752893888509730468339879010244786124033286195074184170216587778779242927425694687046699795663618752115697001957841862731582382034109673947015397980181421646709100522752120026944305681716575534975650414379611499521970433622613055591551743653629778435934790985807730112169309755799484975150187479011301119080129501029696852720816978633300160383718755588195209806954636831473081976213542400128225779746255599759626911396212134885363509614675053202462965806380580941342400251753846131522746756780280906284661450905702903585480980126841586849968299829489212167018295168384368744936621236554876354008532327559840508690972040813221009402669946847444740875564117153555223874529388896092253595861363565969231704203936266915829689351950054722028274519776610066866199489946371958677020674401171477777468330163964621803905007194780104255853601345163195475550650838705760237711905655074536539991942635924883296568174816847355410253349367532533829116616444890925099396358226957153005200208171298351540585857227298477562186537371748302080860052836446396360078482117441547529890351121208072567414547096179575159969760323911308862298094517796059869787850540139619817504239607305477284284115706236737108542012601774496476825569554738845998050867643580797777891701414806678677342055305880197661799199926821110910706082089887427097481630555897514955324911335529156776199616627231301866462552755860562634172672458302874187746126220286644136036884253722423612645568137764546558692128145027784107948419271074379178141850400964934082744047076229044310997934437860349574690732261884457182519169602071367492929457079967173501844542430579742054504096369634661789665484426407039537353330781945941903043362241408901935967430189116877555929442128039351144117606590787251960030247145974084278927431139903316693889544713461406671672980004738639867496789086234536990002489858102234398622470886197130396574589197674523726411297611339150907622274369993193319223190210430803200189451192921099505487707366795457173754785021101780382563162754035747184628393213027772520198055189200723159236433274669407583446553397922865594066707316707223047759193335827089079651865402506336385285099973989830265341625078347930694061379317166043758730211268933873124812764999977487253921366545701150898982543945775300964603840188638401956220002563674505408021026517971524129166090183548614470891750509664683883274354869541610493632324039061899554401046933104871519461366118502548828874614861806401236936071160788182097128437019736694580037999853714253019419958057761030534511949824113316507498260554781923153957051854998378769992202928395188900161393404356729634290336142514826952170567831539165545569594531346328111152446389862344607710142141068890954191097723330593931141864736019186639248744714675022581984886437420968931394244415065980857618584391062366168534380699694834349996056765151243309480866449776599951833370144344456906911513490016570970951025101977418090028755205424671602369761806438174820223384344601930791975956953829840109953512193133325730238650522389261624973740225943511911879923193883287225641642673018636340362010243244520420935239560373184009025361465070358970179353678823363793748637096964315331895995013594844366671699393795087204197940981594453467293283067491815525479511440865162987929429023408389294530746136646519136583387782461517346136327564162425179066002429143619961720518121708502108688384213495246543554887919207396931855077720206107144930742691474135406313203287948628263015363730341174572212476439458167817166013788358139542020136121497910440844798016505897714450988210562124770401250122048643219651044333537959734291906665728525909356551220428154340561224223202777558475727877249990255692963210752348788213498700428383263422536449212668018312406394130487917583221112890500627175426498110414557597717874802242906667277614374693738348863908970024653095694809599123533347568577286330920114740296189564868596469195159638280607017086851071404539086788685283289609140867776365625298891779725001988169368819281214509718188487140097357885210284447415048656303314525591408130772726061737913541008006697247446507797058230445192203909039436874224432508435360443067930020124473810184315222429891640197852315443436123434371907625991648973057726916257499360372807782197559672664981300087817396845106024583255493009275444812226712154840805756994313796069404891815365620195521976358121454947310193924886980001572467538335675862033050137984311457646772446736155519005252726959803923190977447419525337609807799257461222017718846272807671573992213496368251177959432945170664753953343512538923299283704121018609456379940049512038217704732731342001110849949507603284410041145837492914443154034002690527262481666539102798845494627193708775984955981464716449456368219326140357636760783842671324403753930775026987307916921694089803340471621283790848501170199335898215071213768680457611038138738085654995648113300340940402493908115402848072513769646645675163906661936721878122887793412339223270809647072844299969665611621092020745566544597069544493482307419717778491794817646873742128860416031534862037536768054224896316036364953025026248418401385909022214193004734678475522844029907717178709884882898088471593373116448857391552879607600061170473028405931658417932470486665442948633089378201935926413563085419702370157085666078106833191703404319357019468327336854769252100523673861114771247115801135570532065712608828791637480193829705527005582482958622993173815000559890294039159357533422581287515347446657981915765828705317380350399928807568018072710798335940594626614509202798197280776312387947738748872020869764727519942204799165989298742471323012430119541233679263790183686985105117991615055299137036812725991334422759780124086793613900810272505702517335757865221826419418227888940583693597703317180810011168280569904718889115359638385532406342516759327394195607848117470622457844099838853102739219134804382871255993803135745264255726578919296894409266733604376200931568844477976142263227962198839151875548916179727189534574380252896388844814943509338449170736998330250379657680113098610244706382135763261299823017596282675093862987479126767063812759781767113756821676099016706012992004783813709161389078152225699549481342131687749826305057731918745850686645534196300986598500185139422003279528777987904758170143260060291965318338024944073846768321007231924162818739618120818597797292969881186223682926629034363854947966739378273658487549346100907490592220095586082061523085251429355329431357178907719953262315395266253989601204171442367608908783827432450240730140860587184572308647857679229442239570403168377292461446888892041824769151203066025827333477382362568265773971187060377717587412288051374856602492445059307536554349892056415654983001892800334750095604400606437888745538916241903854618690782112881207408874638279435330553482666692059449069001687368704838334884214421940065399220106555945754506159577313047931746678258226337968292186314267585958180022124386147987676675913274137786309902949705852796990995441465932493105164951515360274107789603845442986430212772273048962785471729878399021567866381530147311776287566215531085114416270027274184268825745824663254990622287676442921702536889529098349494172167994232349160768072629263464677600323472760023510662332854759684634924986287025118361692951096611982932642184116416361498268207908998862411230877424267537943128583603373172127275080104796967267249107037680882918020405747247717560938839083499770519413800636826895080495239645522078963484229698351547593653511818357528026138243472314213336198235150646732270987901164581014888961112069788561952025296014951719575966571849041464400002726194912521938790098234334492176317732111019391687769232840628212886714823922620374387953172102603857181155384864586469682588181363582860124779532105489396941302595821645466966263549807726845528099286308553181179136579684604537130647234717831128123801243206875843396708302188954516793371542105297119403708794179055520968492566027703805126991517623387621035335190708553631990099096698870039636714945867112403321808070928337546941785060719133722598952916332548276557679264531266341841993391431683952993495404303417727787746866171422653067146142587288081415255013124961649287674426059057651248280206085456790130462856177397179997055401917505536354946358368887384470362780798157976248078081359402912847254099433349863983532205689534131417461521106910047711748195441375865737243106195084327523415392509029130376665810488503657066257918162201975359731800241387117878834128566473285043968150354638993201610731188336043953097411790724884240499962511239824948699387613100301117700143722948047918632439742141325741421123245795008892731142673427941207846930907981554880209056481233143290850522568320474777916309244245886762848130723406140909127050145479278177300113861763497682954392070418146593190428513730546167641764502126094525604285572524296139236337217592519437302920125516110172059657629297268481911034476209727158940839228209077046586256799270742570386449877611355877676941331419858218006088271073552770477674690459122236266362062206435713371142765738070007827132767288058769437670849571691535204230596810113495135771533567037606855322179042154267541468146095568135361904301154387879263512328885639698606308055331693517189279987143500966716993038132362847533736886428329785863120352431025347476984614553259577460435551863291810554219236663587365144437776359536033364471916343096433039684012714983927194834317125352833912677964820114686426400994246927685353743604319557578771442421175325578036335417322997678506085908173003144623575318593455049356134473006146495664834978187211226581047309012233047323154072710817675563457309118241363712362706017812077054269554246854201351563864008683032999501154448508905144952334590856424607144860796734597654045353302106209954377154140918096886129435272054383904637842246750664757334624886776166885764032597657023195716371192925659125660943516984490073063537510038671516288295845493343144093035305939406486094018000973067818779613110229356656778166087507364129407706258689717985692410851068940908999269018483241360037513131797124540189033212017335333656047354859168569933994139078284041864253138971917301129217414509597433626876752994567436908374239672877714107357968765785486954897599986061086883606886265714836567308303811007048099302253530806061919968641463427020108935769900410856190419198279354101846641773687635115435892408202330219632044950374300684225612384816347132463471577732996210765838864190703367835084785534111550167340887349409870144094255528576128637411475869368278573715997398506219043328760808880665779479656563577207964034194020708190423474426203553287927024719796679993170217941775432235878613362570023079331673285572276513987934772783386181841657179354277177632804744842637161010460611391127934315880331544479965621547948057486413830647306066554228018861890537460055629340946540229494149225954067277417363399507834011807171803424445018455459137267523337244655200978522720480777551584026981944603929925878155384388408862752788859316180518255384301721141752111408521265731189083258290461312712647341036314033571174104861983880941446831001588172753703054059028237243276604534986830816988478576077675859896329542460421198836078953976496792640338824884389499320382827390222401209875472686166534962942964073278885054938580086388068307285026514796362788324523616447815739416865566197089058646243887495902862979634895149522140099967448090270215359407903798368682619981133917652077953906276933346510847480525259616541807359497294651146933200761895766900314580440614603515922547630379116424056035342486515718239702032379525367400083030480965197892410377602958677147188372823932629477586993010870647635877048557570096226422014026428183666211075358066423775366885758951956159856436467696523208120069823288744704848596389623173129188662096190930582954083778578897253060665422580886114470879395878483351974758785360508532271641827616607255242935745842502885374810080808515607884906689927544997380913235800371910975095710041938770584273723726952589556776599130797965869546741384125234541034119169293691316352316516729449711640402598759790733986063617291179546671622181087942865431858729486041071225420079347518846855797397505769258307927484560376477842670003488783069421001786514099952975389330674556869469636265473989357699141772515914163670288498863574785814978231709523054479823484641808480499378139391324179495282139497760108274818212544043288093906475929716707217732714075264726512956700291577484402456256792097305967842008792277996087839572890884806861485661123130614441955585506007826630467851187741276288528165754102651440729104854986783271680470926306002302173497980968325072672483222994323892687818239398544267152479305302898384061519433556809237089153552867568261617986894553658888593040335326275500273734866161512724192029560060147152142516562812383689564353873675529347419547030881622250089614390200346907285890407610845623017653567129081204579649068352308687777766410656440398672309355746754508811755610036185220120259410459733027837355243742717742723103221333545510502518309267006165969917239806813569940022573150926127508472958282876910560071461753446305810580307089513887568146191113550388441431832302843138824590134135420431341544507438458216426194146835396888225358934044780832795082141866923930443738909761305464875510376782618342462707064626225252605779567409298719232348087209884999121001747306599582276961687299350099701564221893701113398736105674213028768459533032738905048132998066356850783282749738397247108552459307574157109731638401554053660520831976667298131795607819281655204231601416848987225751887943641219865533060868218502053955004672526139031921712709529239289188171773007836292839524994259649534168518823842279065006734258544686501211282614625361639369009281873584267325187154595028567547372451750333816229520206761242415986524676531003452272225033445561390258368158867971937719589682160844545977719603049339643457420813523656834162164776696367116545456121662040575375868986751745890530706492740744400440540179093747463542094530320922786223739933622758194554713829262388596698457404717526609111620654154740418081219630458747981157044081040812473489301191597035104396917722348226022779731898452810701372603177142969584533693138890305183368731802174232241032958584192185313890004529680032201998527324324230622686627315437481147902950246873576420187720379392219263437974547032124556415196909172813574312882346533621311098366916136419223301954418672584429184075602537738468097008943845630353212097147729882430525823669346548844875599183356667850496751781040139557744007264716327507154792783915676038180741019650585527441138027092758878348283445015524506252324970655890677918331545745010919032720788916129283068670922286987183413027592315355630593636261462772789640655068368224788540002840728430519062244935831732938928250950630603297892077444356253005975600039659319435955675472024384583450857841784515712100362023128502921016766717425439839869496097282910430491566891592572670992464826714603452244760748021524886789882682690539924556234915448521508436512561965325531737780840821257647495762211575395188863919948905610382033738930874416275249411012021711737768082472140189872175353989222083498410497527315665184424241572775767395928461093105815655535916965910683544009864320139860529101819361472835378997986675723678196362967451804009450805223831125700912438445296785917181459968126064676856002977426864738039054247821459083761067020699520192664013564489689095410732582991678821637101954463369069682910965126354624749320662019614318198797461443149886516401175568494072940865964489315084169508431650239095852885090693281599574765136513421548262457961406308162687772511475835069278075936972891634337152375425190501622330510091587810758025041458446489503695569157511039934313724692373765002607734778821950071109279392990761436490905191218610078405018211920749257350519110799729871711017229088758100356892326107504783413410305834863515298471947464487779468762496367016042593267789347377286416941017709409430297777986485588244605227854868932359671529506440781247073110121590842229751724594567563577429984885167677222027400068147013342495489582924108061528338779453397391649203460692500731386308660995683844017658314206716679259648132710033205189312025772324784482975809861480854219198836911693446667855135436693667030024420782470195023766313484776499923419562009862347696816189922524162777003865215206501546688527372150142582248851630013026174999929197441188165284284464592065282846450762424433181882651418030717136818340811348320066455984577532290373325759443362460521580534797900658507554069798895933987778467470367176177837081136298144455567840792577647589545967918537762625878088429770037763755439454073966061044835404653346499308449785256496631858739046390503946008009443476439556198780975583392726841004233412310766685584330524572212055285077480491897520040874386076722657893006695467527094462999905322659711771797324108854576637837115883566031875282650013395451589453363080101440953886633113096137229260762463472681498416745231556578110914580423642660845358575469540836411679036217182677356444593095911163919883033276809661713462696370068098734570305358955516653936572254659124236195046386056923162061727505242193703324214651171218710061226191429225811650700735698419357138520767414046366352508362543527596903776860392265705751348506787495664803589389152094668332994733691725702559429811505651416174033223065192719165020941687699198083698566010682314125780452726393547630827625111133766671080987906620294339137375846031308049627376969543457618393950621935971466972062330694872421189159024517234373561872291715956973562781777084172757331930753403392299791956779911897886276791584907645524315325880404186212051520230144209976489476371647819053329533566057487198448002969791068497551967014306912609008253888164800644985544729160612642659187077360682868730543221634064923834112899308493425273568154977576853867470533787030857736584560368189976728376159460770802647666442252307449874671352608431611917133066966121695208227650846900176915905482349148705940358478377684019058294835065378951317007147568263452231011826122793793353588685820102245678245696752360875105062644335453410153794253300173102262789051674410478299989791516232886260973685152520233309627322005870250644702671138292365392329924911763646443754857213430950728640465322398854455618942015444970088015212707755957775593370062730061735499533826591584016682994564705186579465047984103294422597961007627077932281304991737492635538574276032775231788892932602234130109430219979365084630939551019323808223813616773627038943639888844232758365427154811146858178797977944935699547900945506234660746414215345095345822888262656737023129441888429596671871190889749537111448583847013885982734574019660683080476417096216463803128333438902441766653152917339742686501031825216334040376678260616250732189851924340519420208101140950285571939214814231407312808784612543769927819708863912976053761834455917704322357458996751024884376331700501814663094691113340249262590346602273293309540124712955374065977255699188714048992791330993286638532858502089257520163536081780054271505295563949647142963439205361618926280835151554953304472784010099489675157741827304371831461288576452638048110199395538291290958881115286836041222316198492102941383572343268422476278588178881292410875583370641010554523925332011266777295758946601127758020169369792125950692079328821419960133021216591682045781891584704478784154096836060102838205700244615638685835790285895002044660617336251029670228308727314379047966491085203215441978173955633401185858164042074604144704790522432956248209808845770106880288041520196756517237192389797909028317243948220345169913610808897772682632892320940519407118248266994429646985921164882919790215724831865818608506332570771448287629586945964586649143413437606845780747129076331505279674765908214426326943247284656991099241463487186332661372520013711897773930010722406838250122950976343826589018562338221348461675766593405285289208855895979951249395836817496327102590862056689616463803541517249449463395048189589537217004032619572690798956347119204271408764435304379990446301779463188390460493613854911899539881803967405857248484298996674455679806144155303153975433502984123106173367105659480127659679778490581040177659777602904016593027975145486201737228835583406875568459415567358226981353014677065447786343604508793757288529997521864962805761095531000474923444793290116966565812911762578182074613620253903651766998488425319798372367319352307425733549480255785666875842049818229108438220385050241234722982341501980444138774900294599896885224699358797129651116172635202062938461688030895595540212987564339408585074116148524932297296263500590432264851369776154469845252550917915068864908663668182725195455426200478230213001677240338528632119595466191684763694299807995799299422192979887286732060981988383919991397386986524435920552541340208646294619491907486481947641639744308072627758872068873658509801012213286552622384723297985023776646206950912040440298261607331914974706971037426273651122710567511655209750215270927380994034116056639311628713027498060211936447501481013595184015595014975787289548456718827765559303278296939638335885752210073916086091413438618153472534112239013805307280304107178248150554364471758674431211830945679768637528636936412329930093521630716489352269188964284184234001039873851400266348333603171148280164143650162416650738295106709928721859293945139054286941498670413436237233977450034870098658135930358479124010922078690442630055575593180478909916293384433718704891908355630867162155892919116220173448847220637397259004200877667536079365014984518971020542005456508126368499640473580799167062155376438094784784800159705754825800854303745513811922845725775621969585917616492048660979509883388381008869629161938726740601014590713627594924112621346369273453615892985695733628210822329156833280347988806959584016415995843197068398361957231076700385231346757450165767518522646885292272917782342042777864611207443892719784809207100132428284633211589736901167151083617186356236088007263271505012276312135359773377798112449090494223515345231707327371037239655327267662689166383337433964196725010636573808884528324935354635943709458482898114871178804881661179965615699075076645478840308905986230297186772453035541953811391527180616121748740240430753152159916428699753983796730890810510332818863366521872689232294785385850717456955482101339809520067636879739449009185314796522876710366598735114814067669507133304143752647099442126601964220593465077818498257827518517352820130979994675249142376049055458727259533509045424895490895772574533536205306612125429586350758407778319232524273065965090852024506405608603723896706922535446978270721913165411537162812036371046040673853596488961592145070198196623861180755795606766843993061434447376133044948866351538962910095491041654969477603618366487674253865968125417315268800738528458326273362231975206887066438395665338763107164564482495817850285988209501080187785464788148295022203721063631980379912338341643174737044249946011009991786454298047890813173667149840948639450896308129162013338498609801329467615348518876027924781376706847267149425784558441607733223994277668334080176019870406739779252392039049190085035179530906579964952084359589795993067515218530890250426414460385942023964022615113699407811819632862810951014666377821211232122670845994242742484363556476934534544150776604816102208521543131806068351160721698519969880778339053268723786241440823715726968221824573302591589613966560582587424149297070315225961410001077252706638385483167329835781659644696762735368158821315805479090302194950721285246104835239089699080865383707410790230839790284618146832540389704319051544208566610604050647610047156309972560123733820603566848436194411871135222754466640322963440760625238142996861350293954042459533849516675458019207967076859534466784604634574535997953219241652996239058903305161584728754881404036303832879427322754476930643312664222289897428329486030099381316716233336052079166193700850441246192974854249987845339884264083693514500990073526110020161831274930948302530009313262352493880367491877738488324762233941606772005444902926006733383143838836875749219542795634060810026134711018805944599629389605383208536116093677673601238378879851556798311662183503497273943408367513958437514928471183014064201905315524490441841695657847376802746259785094151698173547952738161550016344985762418757393875071654385157879388378530315228166930536823732076987742795464973161647610329651721371233325119002402479371150562441595330005728700762605732976053430054132705712755420699003725828958488538029535444807414224050333221257531516685322102819306095837405628334401214709343199687008961283002659693295938714018451024242262624945745740239645969705997447728983560657614759478902283990869365296094611543722623529939215254926664363125022155570787677467363105701982889269290645100280381166530550837156594650788675430276951282996533549517611066109797073127530783967835413131860905169703231648318728372070288738123772369519290930810590154277881140508410343783220798973839301016630251393082434179907171343542802263045939031410680918902621452758813651943890301519493201042421277791044642639686940078992089311644151067081578145863278921848580500520875750745952425003502836714076925393143721384380251311769657295159055604414781972537121521222193603944591752137625594857174446887604773034096169375363619071200937432888825669642533060715257755693564887341487902064034561307979312384501464538486139825122180002263221427680817159352879192414655260993187983768398847775265517540218110396839679468918463697157249063839117041418173145785220677242608201109128159335732085826123428193940298198753325548502267033699490429106832269126911149333353923662013349845389017422783572167947948292738424026706323735631212560055326854169510542104125781912204708308887634168704255388456172291804907924892473181440759024595041617147276628665344171172923328023450840005414372303955808541932541886658818701048397042555324019249737810524394211398260541387742690832042118584237275290937974298846338977280233177910550449916629937594889387233783048631593904218641322676220222958216335240375155296181244281173488005992197561785817245598348167749824192564223120289512114511576939727756110107098599413546258811269853800933600299821424942053697624414788478737246379318383908332660679205502689151975275302907881500915261190672888270989081620028951302552466352253989073007385789421547891196951557706870867498678095952381624092128888531376772802736072945985724452151587529060024794313748870622328597962522787028791395287859528708306467000622396886801081103633988595972064839678472518966765200091866583218198616192257855789614892971326793990115992192090724276110627524305686582786973775239310215324503960141862636417515072503656956675349935802221377942469861187126069406282440912264017058476295106708330367761033163294732630788869718407395282852929138956698110239492900712983804770600277277141313269557869140147712797457283361972079327316652996776874395977302087077332286858954283530100540221884996207926184646464533411490746628674468241694837701096117338682418498626303678762948892974952858892270149362182090203758261301442554461502503644660034189519171367696669470069134821682046221953820130436568624996410943273276676255403201346170964458569127698865985713851601154699663534269136561543788775225396641178684554740102700524159125758389777439475865271556520162682391262213047610046179997916555575062138174610261695916789141524834019881882446422627790014346068755387677588305750721501518258733357456933560581021789847096383409691382628991199722730611673323528986193161835733627244523401720280455971180489969170585795618378272047364351589865263682260134064337212259097606194465479106623044640592585938822344963835508484867476528141326783139453594877656847695149216974292913501515087946920113462246742960267960968932961923457330478325508280170702893098172002023927287662458318521929514293792548834730725745509322706412266072982556371919005835007698355043867625006324924954502016979446535076438445391938099183164120255840340888963495891451940032055145152337651612548717515939109214957741197527645060933178601042013473414240389212029689417120715449704994155710539392831051941572833027425396272179662173840876951842119294130350913392887617819239159898446120044507816611452003352354228014763348613654228491491071860688562064743457038414498404766088939137278137002291785399560097286884649225085529361569197149294077932289024996160145047774622720859983961670828404792580589227454442170005499772582271645844562794025190878274499405989649909349558592630656146012124947034415015209732055160955990040775938589816635139349473039917139095950023311498575269725267201944956705032078519486684806056052803255864330513971314835118850694754425689897087787896038208909450207430130995394949125491117271347953302861701653121250721709071819757935816978856724190587847713737366928213616396671311233213748598079909608082012896176479980054637464302635819744286361004609005669220949247572144625232021178832317452537326835295967040139407109220096060138958857232867869579910883826308952988995192838090179877702387337424876218825759853442817628261315693530503936758899613565935499654466654294930628565340403107208080855371033100822774475441870690803601957762300528952486545330585959264619058005614337838961445338436301777813951040215089189121493118910811739405060860208465301994919526137500787611042041760774758358298587166687631932430329114277647009555446575356194510198501135058454774570687756122892506570247653821948851942309814024324618409218202843306567574845975852158547605366435328996323573681745976923207682159250365182643302835088744637587829037189869565229762672261429712858358503950397983176377639722115782255585025622502844683008588711869930747239767868636626834017583509671643327889896037091529592481654648842785895760380145099256326490515947038822762368945773488107821909474782714717971725129772638838426014586277620319585564751240621898159224863486729959868680499640391966821052779892025244123388859616332777556368029032949030625174866900532855322855580724494626494341962543994530612660510377450703491580189893078440400749544466619534494488462850656018380083415318861101513656537970369923850514995375298813418834168479624907715204663059747250888187979962287184657967020277803685641571146213181682960839267456635543131445064621325136919231949448285777757931595572836625442574148808014438127355417400214365714506319599617790803099950277146955961319194363266335510535390256600711325405029518123601960496521970864654747141460998765329112398788660609129164617867051259521219861368235877574909544589777489681684730827152020641387225871838684844957943950986414981672318272324512255010218434913587435578764552985869876640731089206647925808356246518210730950219487948050908005141374950959830336834903535168496673122068931735735451097359397310704317739050495860314343712589392855007010605892481779883278890090209700397685115820147839594629127683101288247925448987980901751153687811496536217726592464012272136309674392543959937269692124528959310528382853661631372065566701795444156088640688288758853749373464705183590209197995718646878594577843444716885312142256200525113504753572637624382037404392939273851590749290338064676562693250111307297992732775035261656509192668094692058743091701070354127701095621089574078431672833086093967736164447526538616997721325811465032089889507884513935595283877265425586841799597064237218093993231983246253364626888777267220348790960720270152739667992976457170225321203090464870456234246816196763640194657219065642297064855312893655125322407342673164915800236215035498773062744542043469663078681540718096773608137117126532082761474655470473008864200333006799649218922134913993534089463359684207627438867042142917837697063866998710191212795486329495229096025263975686640910936868541591918157573640038470073124398873255044118884802297819436341109675694639714545276318769814674007046642207791628954463237232303600583909619700098205954183644623149646259238382110169008061979072236623426356450719634185965451025981542885592753080929591342384441422298185733653953898570031368187536773707544351866992588752211651748756310930809863283502592047753261058660838347827325586660611549766959357817249523403220269035705443157705453199193880801423517468876298489636263142578330434900759213581920473345752969662078550173413470043491098037823722373387931370029226718772342560347675550197964705034947005845505891668465687132895547490373747050699650826502383125068127730242594232543967190564430220265417994230626576489778893356586146049483591967231581943666426238662851655958307452753087777556185386158850631889052433524720932255979113282650611608721271878557890658239251918292465186754224677793069152063289719720208680916019614930749698345355876124105403400980438293767327271147197776563815558635471442658415764700114977046216456391639599499952668948228475660733335761208533694716876535647234222847366416348316291325559017120831472984885502846753410598814064748193219796890237915477646859127654745317747662086240304662559086871953644108787887061170232583253280225891830978569178453225489410008838658293596999949335064976913955553938621909473742795235647928392981696520007747793529252058239121873005144765187517233538661335837021044596082113407291723950649487079459313633716509651502182300328403082688561326124400470638447960639892800434038712871737057704627274531533698063469102424552329865899087161722798246401892456519062382140997054918617156529071099122471367177582711897851917000134355489025659482320314787120631713390880714298479304570350599231698014268765387519566681555391579189040477916137435895425981624500606802900949311537663420534290275112411638205061030359578868554125880802436402233681780921829961804318129840516637782970108439942185326236665636038512297018242986912812023199498731001119433125532332823454272901076354571483480891649675316765902424746229583068914144779677091313615736639170354285053869036335528413136425652383144212425640242240955518486997445194589239393121015079002570060589440176085293661545755811260729934443256188393473727222607332771176535137554237604851052598218138066743159715611286655975875671210650115686713480908559090040817942671270951093548205170282996214283317310342321380129583381339154036528372448869175111229508386900901345482417596360111679019651072787671345231615272017722953005571664445225089091796031167047076582497541778296927257967361205187081988658894849914133420756582952864521998467807772844605978133437030762705530179879508394285793961616093723608238243148261046172812559592941948002959029524305857642504862189064457350558162337100309932309453283126745824351407856410095121278606891134112890926691953693203406402028702326865551072149891981226287067021149981679817376209908711667041354693819071519404445311948872374615511644007201221623943517632862472079672654439944006319262752263777064559862624444237153972676384710645162832689195998836373715049549635248108585731816343497206881530472707728498919365737879591370697571423058090481749033813885686031800732052926933487828271539000681698234905100755994771131552256255499890669409997181827535782235447450108975137298734253017563088062478661569386210438055035496932356267309832183705730983467791761455293818792238113339202249398484619219193104694468625172351070853736149124161368743711650115777262595715906836971244731410884814704612339934213372459493754677761952337449461617031627379479261162533252002622440533906444011574513826212945610385028737729743567740975916928453738524770721613341398004585800592795383071551997393938064178983127067564144147971442000728928834387610509411017002393074559089106843536127897845404950645476514973397120252565738164017160986029818698480891304487907707102467699425900664100823261652587989619837571370617778975997823233355335937419696861502286973334705604578065275316164805794402287081245898376618179533842620800370944796378501779149070446428385713210593203234705216694298088573539264381020327221764927821493462946880972848867018214681416092101068452341158669503061641074436242751375708511264752664517133195031490738316272807235101077524972836980213956711783274382942220613097514550369275817844002753450717799864483571910744017001280687477956729620170743755327365945345776288530466080240846529843361026444735966155904119760888013842126380490856742345534566611420800881715511224306494918521027282476373144641668903936639558695520252192903419592370194359718137330077089644937048041184823918811263339426800096207274988193638448346824231975378506647204788428156251975688803368395099755098650550154124716632173237022297033788279591145484514467448516212401703815466901471560018881093654627927039263336082469027274038851641762460973561074826804606646757063441830154885665318297114253042448759237271149414300019718170266752982394529757441558342203559199722896927115213052234058058938105094189976362399157122201087765114834236793532956248642297008334358987685380093938721465376246905390524353159606434785416558315229258735860130971266245091490976956950177937766401046374448157817292140989852128471826632353054329849338194187959687632506203791047962227515038196561462364075393370365386378906913705442121616757040299334031510772488831985676051181379694926954745747958427431480156943432511901120875843140799058498380375703752980986588472429193209705298168169011312750557576578962862658305636013868670252053182602403653541034070702224320099043491444518429498621147766037480813062949949236114257293170804615283850430682923678851730893142705582891103438944765697930018384296518446618472968122803422902832507727211886648705881823268143104815517574383470402544207953542542699407665261094244876265518831647034349354095138769762545169453988132315247415792710787188189136631309683973291754165252562699145244230173849763521126404724914698202002908725772361789030856746531548593829736670837972360358614771732865913751303608724370415114819988065044849697312077713748812921216868839160022835588167148703800078299326592456055941363672589900461798018254983901408935772293512644482475419325111145538351574388682679392947646594099580530616659107753949797401989989375002991360915168309183232466969693160915120925829292301601357861437512638967026311869876373489521270314429479721457248702437281014228032514123245791160777584323228474906937732370808658706501906294895576672305887271368884328631061108217446611658803404112773880331822884142520057201390906599096085917662570028107670430668849634578538325096926722762853755322580525761104204164767296592695476643721371932746332663213108132856036057170812818171695064716032955071629438224508078136598216133919469727396127188461780427873681652322667851337346323305191087196201662512067508960349572959012021961265801633493234592043386650025127776935122513524742864932441791009419410941754491738115546699522408176538428675064820551748790628625637324628259017173360674433778860868730279637589989993362130269780446626621224019222727278837414211268273356361058137283664286299065097001408850140160969527121425829659284101482735920693784379918871014577391446498209493031235745626865333942848926311299024197997551461655838366951851708175431053818055940883450231614251214613251174445101760924172382809311734714339981093272202882630864023493506794307418777957840139492692165473832333883113310958399422397011853917417218662222042803940091669595773887065492990444812425227325580891882596226533312634612296381562911502764544526789697529504175059081611624111820352650680875797750088113272765892763850821567550229337005695323202125022857759669607848739428428929392174278835534161119434980022394833117063951381109354371012370742707233370317677541151042832393531355768164291249639476296659290099425265890386899996954105418382947411662798874787119724281843382141013232180509298154553885849906737868650863247067796835582328713579489998405314415555935258234928625661311800561325195876858018924260726893930338442281927919873748954550079767116742229464067197584775925439563984969182217437405674192896693109823855007147631279162389044114324026960074887139197694620496192600354694898229349044449989509073570161416784115413583675704004082010258402184389231693028382750446726803021548633250363982481955901155170626078340954051320485984223750298970457803750881128742019085843073437227072563985750072229049217202132798128753745856326904594667185698310534265231389828499372783516519882466783443226671196558907230604048681986508403166333038539098268524316897266262231257304323359010453923190682505698647839310298101750289310514567120391463083743399892670522779981126295965383451928281029244871208277546109137919882886280887071530020773951740245448960976605240659479623544479387364938114538665520833754473707395172963509034247727298319254429860924589282668094596337425203520344238051646156808477912322877269042403480472013199933183598735050948065035043329873423393376413427620013081124697644341119020019423645874611723016079054032659085417407709276526330248110450840394433137547706458064713341472855483037869573028466026274812581548239961841163152878965520494135121316964083834817429180861867872715583694508717083774912519834465081680418451349219002535084442743458322376461501610619553306929969263029509357698904429031426312261942024579621693829160550383440496911671750757285978435406728987686991120251719743799000839236024698544576652649820114663584903185922073144546812667031578806667582889673063064613847608982279104845625510025310656416028164917076844028131996700802968475265419064811722522123284117499939046050019654178917589918486943442740456295300582192729587766394432413583633524929156982864025273966421113395036115071722510959556268419974123795485798525655753496713528666874438462372805559985345244921393791865737641751687494505370992420070877582155478424275402618662931890821304276103717633689780385712656038542416559062037563598771552003179432007694262029921097592053539449402623577667487396256245174130777038027377769768434206331943978564730080268190657217448325639959310737509392496846801548286437557569431239285224995429859918548792716579186577886013630244195905049167810627615591339574314937540437141504092373829883703533036467288529337661826093184094598048978517819901760913822309334723418817110995657994575354407159785201535959756044902407561499571602879781124028965699624666153693032358961361923612287700861679613943809268336075006336106081329129758227579228314912142900745990993976942553052908568681486954233845142332256849535569361366921168117700602935657095126422465193023024495789636924333165599977891456504759204408124218143858219786695973815788784051775958245446890611708500405259314298055527193704780613322262474377232969073024257944708401374320540515462546218243064395321600781156394166342870739757031612416853627619952612106304481901592928449291957057889974992491344337393496735369549575568600055342941651748558286155205138262957883549783521102369166011711502940104981370131117830923552820359661369531519273386062495421019472248765559379698798410198606101893708137274793308694643913486916932007994819064645495205545042435927181794216162113089562687214475728491435319708827368162778179531882036704275281681941249445433712306905385304810236680862937125359342618526060453079639645745096124118631321470309400623406447118465967812939130115440151265850577778578966616858799475483183389384092369766763214763120100110688245217323583594996123581700115761478192886276830537476371591172542401742319233397808599615151804760227440747755015233007828458419530701529054411100976141365920307504145070085926305865902796919477573458650083770080134524289975707368945218278639097848944186212343267465527773619666621674364373412276885563504397118037074367048399096549189706164847957561557320458778561005704354072580766850866100227314962537074933375352683127531678090503297510037631774740590579646107114678067186434096332528034428006335308140070909530007923625157786646989431111353115009865237524470732844627901703067590721526146889070183135701246004572654789746206076811361233354245442132445118873262902137715132909403502810089631213251961771946719018025511468822466757682921937014546794002281524393607047433751283722192121661088720028473653951155452465816621524131231301983753327746211355842908934076615598893350322825989677322370632243542473706822473708732091087243917399357433552094558708726969550749754578582028582166318406685673141702153236083762983666900498036945728817208120574536235541397028967045719520436736470640321666784048731192706866355981246751761080660725683174177498499183684486765525166213239189263449264040984334856451892557003627234611919512392821142938629767500914309051194426655741274648098074462452312944756690693974978405640699026616039056771312108864052214935042162569423236255386693672236946441699293426732786533342587426760284358328658324342315082404624921365174652482698752310339286145962635645849588714536567073072410388527060252679328220875185273116635252260196834327260916955578213458517886545432587822300573566129047775246947359467508615895501934712777962981828092463101564147427009490704365458333285811801885727033376509196785773521118834049029761223298143027586534026016449938908511129827637545742602730224739297913934703120621571499855799737149551351816525532416781176431952934913941456511980173751614570603034117575090414922022702030771678825872365263556183191884764869773885578136840594392876197219076163584990520796483326017916820272377878238499557044260416893862506316316901404341622253105247197584113644028311649127890645011847177917203133167716171851973279045323523438633210944860408578790410964625032750481261041203625351673327354762069432513460751628676806579313238755328190737788641358365290167498832253071367160927385307189553015866308749593964799334652244145146521862407237136003877376630445320530771709134474126354250927973468083705909909167703618407507649296267672159073430303486920538071699990754517315514251445813992092443664127879601577469333641646658826332311418987293737793046543075789779394267335866165388207902147410717381828300704637504119270153603247868117650387187821239481822290742687131491783168194807342504808660928089968735395223213116926347477264417761479564294969204853735193564809404896737681117707420965607146203432054392988806803502855009139053966826842824786763863419796287854794200324145146725517960239859205553644128517188359751649982683115105472048499929952265061970002874532060745139806113661575935623622702468249083144867346411759701660491533781553933771804416363183290380049858241732604360487626016417800685619746357820281241224618433887201850074593052544637871670427972680081451582713756464226232506774225776954533490904422528711841385132896150898491298129504400474812907100417300526852072520434776557372746287927293677243264594751753117126481577718903642036539899415518419313163362339915197752238211543762137481174073706793432914825612009035320073034742441628518841090876560126820990708150381150958196574735972903271115924108157115566537498650790106816292452345121214765063702466391736802347652648054863324174360150943922765512003896927246141652717357497779074930636970127129354224033862004835196400626746057365795732199419781678472088413223577160661783389118369257641998109634424707701494793188012496589719258747354950380476473669809139211568447080103916655354510417360743925210927404814219253913571637274009754383448554033060569397416234225717855087235685012087494747597852972463239702177265240303211259682001850209074937105802666381137666758682537067322876557285142975168201559188560003209584559002976766972750719561330752349893173396801454058436995554341574939233219978581207903041892847595557984231463363712136930500657880241582181395128413987134378356767959382050665810058922570627391151251982533479881719203044717166194695006395398957062506444845100333040097447029808299169305492931150476663376719266751560244677256621154270267471358646506462103911238162583474173074613741408496088455097140276821142323503920462566959921749585686760415573517156954052293452861893314904230194753605759685522035185705550503279484830481106390973896000280873138099972257044942847116401706812049537048746736284500581060331196343448123043897024729958540934343758205654401623729923976780708112267714422076297644099826626954564601485227522280611711944125127544282572889473019014546210360303796696346555232391599312528241813339938638023438236357899464006430603983171946989949395627396424538516565194733009262864840035073068998862359166064398809497296462233500930317988182001558932706480593599551101288399910828461838764012230770417045366974759549878699214426336335668953337048953136918808194649249981295703314035576238022389115537797630034202926036466151990140667167424816832222200097730282225323164939450438642948528932716257036243973274517325777801932854930175838813151728316351441664664965166207025797800004223484879936756547807285461541597387930267750778055868172626477664676865482742743522060487281228577278210418836022864503411680246735475626737031049158115102245143650603970437335804251280043523314613482526893023458092608367453922651279161263730018029471162892952809762135549435052136372001324636844741508751466521670786556664375837594265262855710320227039675130933801267705446134528498220769847275835281328707652313601806153656566993246481865797336070274574290027734328648215191581907090650391173377979582091688223709243028541006869697974919334888991799564928991825336589501185785345969282239350091694215549821340403931042811793645899099462355096803073056935776460819684896698422901042438577118377735912301655655648545311210650044210860399189168398027818416030091175899666279656752923021724264721694413116856017790331407240823114653205346871583089326532132367343291240669848467221621456651995435592855742568729588721885475496040528472607202116178782475951744466291176307536358054392575748397194710328474781205950626199074645314748447512392080143779760088914913950211992901100372199815379868157848456567273030602694171111442103337803077363345538280414431205465937714551224695063528578398323663091284523053461147865897350057151983672486457951263287889593897342494813106889227259997543037415713925950815810199059361828072779884270255955832262794572003780038132733029299124823608690719688366071566488721620478868379612898074854777005541569681113440988004902611138813167208715800751176172636539504651617226704481312239382998272250275537025507126943266906225708656378390322027686350363121567080834030304622223190768685951776061442844262704825153812292077802134947880198633548565045423769281358520241974323541838092997169274187194556220740900226883377247551213079194113479588064079938487812307228860524155552878323556383576769016089179432674857476961683314542000998868304103325097338383194964804031868612239343510957285752682765288401227276195016518068142452238491681932976845985554439538093522178996960548977663389054481060250258425801764028468549528605362950428714532636182662096058729825974827349226848009587538544281461825621511227451115819105238199324730033292811456470483548487194268867745675464542335979012164340444035318840682776969937103342257034133500404903200789234657751686891483940046818734692003591199434958964154842310483278018809381569205178120911370611656313528128907609411409677735446090950305181744402012540034934171943992418711245868435502111640960218675679206173269138648884067794725710454689158195081034656275394434069490070071737609879137662110103470986971078357866059976793049318083117134202041276886704590200327096210820620932058041248511976400225717602305358173547554909114464902254156484717370267947208592806808361823445058404529495679662164618463455306800362434610467210745763394074715210458897083992116848055295580220373328571435695032448491105189651066181593921617844869853897343761922659047638599770480361546819587947256009584871100736448604271337877868607943789917761307471365610438886523900594731233631741296279303793080410164016063524899382953877472783762759641327746977884660894629089589755422519844511722935146500814574533995614555400380580645765729691249352917435881984416248987168861030187582894739323503356695564366851636655552127423715503542250484141002160604310005635396633577405397678202249986176884730002558996981813560994599515601078581207131657424076700179610679630231835943211578585070808462961435351734193142499226816258044438683639778584813544474065726795470459790422787308624417054909000880475300870864246777468368802878813414046144784261598617418008602634158991789963697838865632022578632483035341105310099122384318487045515717109005384144066325346679132389555708071840876973821765676781340289705626889840874514493499093857371512402943715897709381557163177981181934908152909037002565806257000614953014115131835849894600455946722987363045708514960838418187518761262092671779466580769102277610089174518572981300034973234350102861057336586086161618795775914944306278195315774145036187217092216404462965656089836862821369833627498615872086844261216959556415441111214582191703868344553023217117674567701859294942481505520365082369893651445885454571424591601236727174513714942788750319726850755637825533094302306997639736860339056800149302908446914070989722082621155909370075496520234040317684701552437870845822889204490176452040225000063049019093827885930350634152955635728014597311913485126800031454361147765561759129735033956073529415073169544397802439850582852491587088942876306554475917110470247110320492771526955026240056931915053201476907690336278352402600219616066037299095380717283703540947812980982883067139535926139712308100630938424244224331666712173032233846413627620918674732658648747049646356904260163256994442600524769577525030231391932927390455097984345063870488975834197110987969716148860122400795849803588022124153416632571552534215389201954365825564223543148935225568594381442987927391224768056367541788899687407569011484900533950984029144651964295624026347616693751687007367967558901087768379099859446715539550565878794214627841715027010605633374842990551721649079078628686374738122457011401048237009187554371883355775555450696244100607527083264683990446520519995972892300095838528101157169693821767567651518922068362586612108880855714850775890634317706656981009790295735988975064426532955586068537577648254790323139570909917998015924746584696363758364045815617244945083916842262719112822580413727813420291317574675427843756247883582625824282787434310086475861191651704495834964446625910921944140537423627195101423600319968599965504586110071827410001545813683175778038693201611759912014169734071976072893326226420946865409119751015059947924631171920803920618881986026869906911517520587159165475702816294123160303086122978601288616394560799826360365130810274919725130256199261270255937178757974716868271492637346610103416598547174498986848787068663425514518275427137658178474882845679767662788041010234151327397388566223615862307646511055516873661384047676486329175782767145566149155092878967201593498440608967042553039412550347692073269067221025330153653130360088418388198287429947021594596581793729531025868506541630533347488045599186314547333740715605237699720949594516179065174046695550042279309801014117001708088072494445653160158256218023337258578378221261231698039644681904010241556313968763444657349327475321047311117670191832549601640001421680343941448971124185850757778110576187289022169746079900987778450148324323652800316397688582818624896658374159250271735648047906707146095293726839890263834965143896208868616773756502756353336650272008178557363528613617812176632557390099675928558974759298066562701102275616667123090095579626948208433851048224864074636693490941432872843944985725924450630927885814427060216188931446918643489682323203643528154289247343458392905718139683619097023014030386512160884300450470775040140888778767551487890484011735823649410259270201649203022594704966620759105286407402035752427045854549816952534115242722852801170658358005826959424835990410438930714865596415072135640427218273737226055900807636848586395268870639732789555911170034833928991733487719841047518104440047405719234693168974760491334637301361280157878954214902927977266246142349934512586532481238635038136344786163569287359265399313693347300685236441315559463663788253333875031004170300612786266539521409546583828435749392845611662909475241864879006663491165208770284715983269646247328379298153400330810233129803381304920820578811802820537818189846938434559590278521753887020604668310491007883887435922401837832254390603064741274207380233070020840653664785408708412160174138932511549918115884158857477235163217544681175590461268557587737078915357369628504723564736370959128399944088664238173059708353917797146356203070553890444948461077545550596160837279888952633384868686524474636428293380954770816634564577289635974931401186612964328544938275087503209910977111096118776196081158376403490590665368977741631321247153047924739024680299066581898290647814840327654541106959802553210841505093368633640070419520582302344870142016878095620707036498398972806605357219313246028857856088867383789324812529023313921693624728841403096442575735859274508892678282961246215703258483915607946919338318561247389609358901858839533008022784739671320347902323046447838088532240105998151064213347568614017570774837363505016508858878021659939437054885875398703828678114427100657740321814752245590040348572511787605288871506327757827133670760564463818483875454395725358515881827758990650749294897730003248436999218281752540902833750495896753520833262631608652601157970214917041017989635827083638467439702258844850204542924897863736372638110577780343862978557944996507854079212155525309309692613757752001693782588063402630816397315458448697968151048988094335463146986290856590242132364919744911940119877001887555962851614835927978888237074365916030128948703293909686296099834289148751713886424853976328158577193185268140673908672527922986684671266067423545224245313056657172273304561822969434735431496143729907851110367243840203871021138721720495277543574115306385264522171296497178465503808890818791183357559326992049395125238704708653400167573021187342154276035110677158347326765425212498804508170448356323152092452389474749379360167193050605754333029081579177202257480265686459151183088026553287452794106066445182599748542278064572410879367776487473275713357138292875351041903291335211611136930382424218565174115181487917028020808941901367415497948459209453808553825920312130785749796333387789155586213468814057929989313348827903257393592293235137456785825492376722833977150523526907417344079061416979789407146254816477920239281773565633691064966576782710715564954528774290158158692826289496711137311784514525554072853703685009017823521964729834645392878951914256926421847466095392941305033137960157882432909593676442961011905858669814872931321561795797434836903849128517224056241418347481578723913670496235593916538637220582606528525306643631571037186225158887385863671906317541887560193687136608826138193854614587742552902220129732177802371618668720503635880434706455979999901182622416014661061606951461271981957535848848899266147425610778784568810563272553135308317502213996514676670754825171703140094227461445789657684374744817462733854647741395501473124108659222814908066183158107629643746944460901919503026657419122337277491061878233432100887494756257653464995094630196622397822957286518420754059341339479718923123690112273953869295323111217033500711455659293009234245930895623991118397116221520762356059398390382219204347629329790152876743473739899986265588977856438682945973462883715481204178991638575875026562847244568568760462385916479067520794271071217616913173097222210577574206697742769490779333788717996989249121089697021203544790823614076718763939772818916267625001057751645462087165237501381499263933539011852283963960845528630072656502373949398816162832691441317723922226517091631562951750720741097098137147046544514779714836061224141364790013358278948580440206725951338438320719986605041181994404856610596105735893756824561417534847767320406825989757059375520312848096610052738207352733639009778050395958227008796963850300649103794756857744157991435040012792257595232096086414162579247729666248683146629395490239185096363741448802464336940070000773811521162539855036090710162756574151574841990501067432261866468708179448680762569684719018808050513074444869771925104362125021242971394705542401543743427601368440208344197802253030682614022479278268605862414562618290230245178143188938377762930640627390988590284953133355441897530040422653016467541982158459015720616704483327930978020588142685134626561505765660871728587493829599419933723066585213822167935166013118939661792397163831228067842187851471835597110009973852124080378190363232901655806021177764182398228594103726759401926006361525273366256700874520822394548438869071184070024656865558266441681894145859925618062937258220681877425207054625037689319704132658193476512554715849761928655939027200543390789986167811679486178431467534428360576332220729743495972951502507408066454317633168818141923019840425740553377835437711382115943936139549735892872515285380971256495103824448994639023558886168273047018493181211959307653688569143561041856823988464518619245143028833368122775476724956669629677954652361687760205982154496196275518314345034082412229903482803970989243258094260654432420915502073051000661632168550410824561968290999702759367904324567252368013765646098601959722467653755075029867037271155201266829354682701361414565653825124281415877412047839871588508870788212593224424473952170158799700314659138788640461336279840615702464912226488418025880196799954671616755154665099894390978429099423640516254389821587865608620135091878606497718578227601648662832203678856104170976345262464688785256232214857691526018174264441454319855029240984241221226460733540791509862645226113923172642893382999791751383186877701655575717332685967401666523659135814360182407339995074010003389483704230569450269848165173849280668960611977819071547560390834060284026327938359961093926109020717107474572215624954099651249982740322416560497974015261063610226844194818580697904037265845394130700438201725724843295840967982629456700099187706387171531470982820568321970543293209200744493110172043026246234342832394210459224425072022765502212028721191398268957856454859069037275414062979959894270199958648812097933523077118910431905879869984499914007313131339980222982406034720454044918143206884119481680521863412979791074669522682943547317658926114599089059500120021220944532216415586312659446009650177973748375367371412119042298582906423027553259645775337660589712798441482683556206772364862585253248290997204277806916320054619587122319563584154591346986138989644784776608190579449507292239918150087351653846657244115387812717128667795748542573253440553319672360858581021191343885750446378295456947407511454277026658804565943198481881492963177364382621183127773751150062933446410821317777201447075492801717276014509337982265157332869524458824820505213513787787898555965833645005471358935306269925433988339767168738253464499693528014836361997190604430418193295198387932136236019678854048711008467399988913495158360109965410709272157341563453132475836682337048727032519017600817641400425234340133168762977912058721939582898378585612992283074799039764068897922111266642025723898214627909988435804565656707947113744942086762902568399011016645424621595318083070290522993791133191957976255051329680497937975555328564647902799909111158463498868047694863529497738130969614705491181649218437555339815486119452085669026989867564737307992766201890894556573128778464039254623072423332110776992844771889744594629790104210149226361888694736104790205410287392240241581710483459029583139948384529459823540855455536102503383675664723731241643615307744236604559377842445871330284594644963087252430722296924280725131902684479156184214247829887018342885644759183533338018377210544689903190940767252486971147530531717054923744337870581413080150289472845463880328786493424813925835150591861513353273248950299484028679019841952708162414640645719351362548741327148289407707844715969918984193843555607652065983836136904708653403597967370197468758588919578286878102494147434427005888234355848715988132480668429284546751345998426300367865157960965569057597113004764045941952779318880034984595167256986050293487794497869481431361427895212843112886168748055745457417664470004342975877874593765766348242562905324914742766323960689199967165341364541978795580056775209349368577153658579652507502166207318481506523390271626319345126016053537504392557333312931987978675259526286956994406219785357168933168060839468042501530170174941376276441902520744562543057365512158410914612957014462246281745430128177586877736472417723745767756292874197083300312216836006350802276214497619182067765559031209657550038847179916053590607835028556005179787705712305732317002486965480067575670737885642227441639840807267318498428269251592905542047387454903893407358009723160261144717085834613724569155501147829380257274524952918647565316590578103828729707639513297692295973417205947521996897922064293331874235226935136242638452857009318363125514662286954542266925691693028391844798593721512724879841991792361327744132903365976542950189515924888054055318473965126083287144933584322198213896133599229044824477379882427459680778368184386475438092686346502056398074414902153336665254371757476211536951563717040859236531995684278640516703552398391980850171251994261891729435756342079462456273892629002096081041614630872537418336947337519299587393264582345930801847956399693187106508321134206680307981890306776022743877899290160251013707324675945823030804153970166521194154954721719420132853637011788358480374067061611802515705481486501150477446964571011246091763232029049955085993841686579841822781685158078586586056147385028310161959118494253651071096005740134016647250381320146614701759854963509945268079751595870920061400817618975787952544802904610808704278936016813486945589947945342695599882397751461900567005642021798548242703896422793027010168707849935014477156471959669069340232050616685017721452306323307089602695218109233727574425569576152396967532321030356945866285622572807942882952708493463766679816192728912592998425500958376690489494748248088249316692119354083761602293122728351543663049326039348574571434074773457091710378382363949243469513573326657503992329068603517398830916570539149362058137100126276928254067193330896091417582214781620162018495270324070184607875131392879345875910417001359630312514284014329499198123197502330920807658128117359151013333407667402210967955209695577671870169355820366403559255262085001209935564092191350117150743387431110898424420512529451007048088626311757156257230759358245653144175040172660077647888672511311480618223851544006175907086409409719045382867951983993408448426327261911639905325269649993880905055708990323360157366529825135160091069431629022875910195296766277270185356942968806839660616664599696010549586572492454952830747816527418077863837676823513494605046784399928701658293732034605189276555083055000576661759310269391688168200705249973058860338981940969708764343338237769233558479377481819216634400420908260949872949034585205066476259167801565541564118613920143107711318032864091628739139424029330382909584622738406589730487333009354536539578342958078040104871308658232915288370314332609406252399765276040408038305607899466480235920365697033617230557813291325825721110926050712441283833392794734059599813342554080193404637622758208847446433532021013229398082612013663273231295005430082220371108465527199968191558884767778480757070373510626945354997313738785137130331538627269810750882602126136055148566124334553465382135790897348362859421573929157124941699294621441042014972423276098391757958515052064262099845690167170203067814825494470800439880679366114550578705088372447001660253448116910262121976661370871982648887563094806460942211467414186605258150718103230730137740231506963127130518133442829961286517731812190006518181979511508877119987725925567265919917785764320593229614869392090174112312649233975979936690619379106174920367408038919057008526261241263947112090804100171071051785434034691885548325647254160703145775037547198045314885946249562979665680236441729491125764175130013744314531411044337541910886784646383548966520881102616400206867941664020440320358830068880959921970781432615807151872882768114772734110977084989732515783034120835099322361799039464309781484446605892718839803186299120457109246180650475361437725219786318854864058079378327528365273267653368603029152829267753184594199856342909585468614090348462316260440644430889056137893383967014565701385439096540313233733659081689795292382437773469473209672051045390454055100343176160655691189473379037217397822328798466267166330686433490838957165447453187929209830054890713289205768499395893426784826451112587867123409208063049275089857283239194852034519133105411246991313508768071591340604153653957248828457948085673892989800692270288860780149221106716088589888862515364715464846237415226013111125570754298317313160496210663117150326342000182900044900121162886429408848952041420422788759523802456208081886003438152785004424975369152413927655350115794313510124415681026539869455863470211787205722177464013941035837437056195932186260429226015156266566235410000535589432816418426641973320887861132526224938057945148394416432969152762878127269909597097715036043397235290671378096160402743378712241868887407611297329380133176856575067315033795144215257893716222548895440114306250697764007610191233631235840301951618566193492851290489322561817529860076463396906854981121625329084443012892490567794290452687418098074436094696736412891592704149758847306036453486282759516837907510872956907635422198276150516583930418029189286395000636701501254733447301011804601657077571601703548179781222594280986550204027808803980156816072767456678743209927074161291374606852165716213050253321073415580473891678280923638609261634205983774466833654586799786674155483674868571514658221778907266476959074259857653888230639171547392842921242158358767120416234111573695075069358235469711833595701553001827093530749450779640976564025525633119734210539426508076915714749195958335242212040227355637940436625505549286147991843355694795624805621622675331567435878394865666779549476719023155034720160645360314450676666477354766157824805237856931648126535424992523443800784797944044673404633893854768588730989912097367366016546781381058044826358615632478731896404284741360534575511723767152381283736765516984741346794246887348682329332568350060238272445266604073923892397021989591946301636357597337941866649125483698752483454499485501073923313170857206492593723306429802602020801354875770704392448971324943428519062436765910033908137659308606061735983180042762036701587028543963128661979064303850273767151274820884704124769666193660643285518733757414580865791180654964036311634844591633556954018155241235004990382728252963867330834119311314840863753684669615407941245721616939597903963385102985262129700818983983783185574960603048069854234722576163735712291081925776752003642667739779198442729906337861939883550436145512206993380977831537723287209508918363578032422029008111731050711498848069953473321275574254254053961620802157544286509396267505223030049844094183091840741056984481348413298086161053992497277548360208456114765140204825028210677979999339028862550336615992648025908030340425512379073826546265466746928823363951774858793295855933267558291860058672269740311090182154480866147777718564037699509417969663412043104871436282899847077180751989722191746423100381620427334417771606245109625221582355874847402076712002504589233366191248163977364357545236459857362674482290770138682589613749021405091749163286251380518689164251310321273377915419695613036746030714485158915109202353714621476065480899490292600989656590474577606506292278150760121473017166932366228043302108737843687752731383614229413270708156572285998960671333266855284361087152537290742877008723538711765728136576676077777501674114917685903833778793706199520301715457576697046834012444756395760842663452447916182953819143493876047694654795625534756422807849582874834588741563398364403204201439506222730618770326753963726848601429356932025530524942398121283470531695059814456799056820776494358357390820813463437771261262226292264394643713210788702046944018082302702991245311402646749651153564008460011916673286371346493757945650353718356557623219218935889252988216060887183567562587369440234305701946392866726546608890702331782716164886762215271345531884340585843393881200150224541084062761994442548362070467240514352752473170127557918584558597812054843560222615746122577331165453755358607219703051079699402462008942719098314244249659131732284218231036847341936973330709499244763037594519421077207045349592792842363822880690095239318612895078420704257669692713848889926768514013390020306257944784706617685148599509955931325024425347933912740147874066938792953060857369988919421429600106675090326841970189750091454532848321191261499123379725114069924652692441231183778088938033544565032262373663594618993644703858610832602972726983865011219442464505481467498696531370979381502224624224055216468149657583558226303614376308743408357099888183536385966666378518913180639517535818564537220436398355931394353783841297848288794971368500368457641252588053451453919931283883384265274000767508840080569656387432572820573981293063084904689382374501778293799911490723443515977194146755597526429466446658961288664034601248336004506775866916801025778203752441777654832958626877157974286132748763745151727258105753087396327680173126258249967788675300856172658476929676072516967008981903653771011781433260195434776731353350556515085882704070226299681626275634919378499415791152213089161274684620689001903262802465749566411807183662874609164732347856266495427495724511219725479689125971867916411416939383277360957044263350139239767927425071893596841436902731201085015892414367063023023004258881839287776250745452580023023771237900376007465314714201431140310264474947675982540945967501153658197027787726703626058577526920435123044743220402636172341144917351332426087832490032780298053009110384785569040727679508903775429552824811183249008992800222160555979693357487358841107737531034346329996018213467631555559900563454056726193259529494999437488986760743092618892779478883090519556272058629712242246607492870074423662800093062810427355001691053341716185067684378941376304234387177239500688985277669585184315615359130246715429998461997010659565345898126062531348446750443387364335763041827208486655812829890592874262860809216845598235608834629410454713123097835211357910130398914327095833337185209254096893325691938271615800386987751219267642938596417881544373537142482588795762519330872848080302657455235698011380844515381667531150641763426096192553493855177903322514947909949307559392656837686700370978473255149351159644299835923593979664110575409745240113073889354995732562636082226206097229111374051483504675883389106036781729804216292924605849299300311656308671506183857936441598717656533667274672897773560382537728830860555618449814578821307770139061953942430882506168897960377585324467477588484571237838895444621617702016108100570414425287827695173381278603153879208107901317612340044224153167863863683708898426736064435088336118946757527477788028542360798192992031320696348641306650760715769866667899335282307738429073283878609665874839218290270575127663992132708145494596407060338456252085653003555525197675169888072670483367962160765605744869955258158715494032066595757695899554160941535091007839299544483048179025480577206604745992539796123468134732829939885931869122518059556244317473937300458126570916801924246741729345842843946346082353082711148931564622783347009246132481418415094145210133017060010758839875337821797100689571448346827593137568929252290499609514273125410321646657935062558845611527366477713720804136675061140437516317515559821911941691185840093276218842611816802826039100245593230659457488119340221627536502827267188578105625201645624379297576194757919450316895025283450354242578504970391254289073656051595228554358851372095832656688539042735383672381457545839964920233430008366871886626597852302153847634146837124839974700755742804187350994577598270964782879961566846475116478006241817605002504817096977972467699168110490737511944774272701857556997538453063825511199535208625544941683675003862352640767108449809054071892245873417251765811150980958372728917456316895097927542795714288070250180050327076972684947886691736440481546486215809854315105767916099493797445967951697927496346813964469988627878986850056940769475647573175573261290467593976327072242287625363679862886224273066773487946952712739194279777798533288074297632412025433289482058148465694475076111698306607162053925977173000573007284934549109671699944177067432565168963685274177914921028560777833501079743145628194034607043878368076177368814494578146710282106203133665177920379157808487006422795533264283231484839514530714762772729412881160304335945245418058757056059100297094362411662448140184216451909126757504632346328798771745575711246521331837620725164123481450598532078777146167569358559384902336855384600373919848687642691243773378021409497241541669170933242498661271935254903816989288419108856622348011795031457093682809351465757339878957292491823806686251142839182687555217588973455060402973989091882461440531536970041217136178730714581647385505287846173682233035421702018151386513103299762057651927065330815299503376173570762965204302139090312649063913946214835371978059082949429305074865860393196302534364259306328966872974229412471474929928174950366602625730297404328801534437845379527760948971423408242991373751002793029604699222151581414696070766046246666642397106700245141270941898639849726264239336948925337105733611016144542191917897950430306547688806859836210824308555156176600456975536878357871438266993337940790873384234240969071693128406574718066407430065222839117615951299944376161984320719963378500620655192966283942395119498876717629291811408039261307547397912366371566987673504454727650900536869021908850885050038084941389635662045760904139182332752039665028827810544474662238881616588428846448029144726943750623023184283602310905219275524635371068981308990633479817321673500475290334844319007454059386300587053898458071823832475208438586667477905440454725625949997455673655317545024376268350240384736855272762997576178125831099145060561313168772167380604145515593204125437772760832263969416998922996902551895225786399393048805078624523900474245903539575884768249799232362787515775036491402444629543126261198490437897712375926658440179392146305662026783196703818730311213095334691624534823078450208263131046117783644598158216053480070890571555778126601369502264509587599744728019586913149188777610216959749844965078473970535034544901810303432343717416709237074454138453188266467787266177394147321591292929409199560017342378979390611407291375833853617099813018488774171731759681554401386101139904935005956827223306903268023163741619421333226825757407483435558679398334770535851447945378417195444062101925461473897866102342466418682855693512035428910163121527939918883683522139127996306843826096210116892538130264552525590355001284457594055453192218812328634154040987546935467959954266656680601472259273939519367451466378119773450465218151008616361685935667349146508385005103239473714152669623985883261912436492843178578514998535629064743029338611003960845469192141499772267769570737236229486051159354711986911925749209631734722511879318769312347505853044594391373656821539901764286321305021827564978783654282431431741755011610371301033028108290194342478344414272782474721024930421357219586419587789690775768607143285947365712476032745939664248490305551236019738140485349603065403665379346634859825726966940854238022258019632338986134374402936768061176698119482581532865781449471639309786233846174487958901575677035209771212487405029378404801497182505336735826292360621369504439773933931347359197111594769275248137988792636727866831755284244726920878161152756023005239389901696615224038265149423940974419086046278715979051871194169023458748361762708369047719932236008318440946175527928867096314564644944354742551285201272396526971273341922254116553269864938600279908319394819060680148675695358010572714453505875313997878202556059592844924585870856717333588205197084408668650164864499042007597391856297972297056452250922419089143496552361466171634896028933239295917372224211334491055185258134141772396423621475652565794657254493158949152336699830457100569786075148699572725972222082439198899042476957559362684694511341939884582598989575143469803126455537206300923811611635154681489616920427320370816175699321535670437659986524440716007454653807758792475700553223547876420445275597867412078025050950838081894379686415360411601148387735161309494206975895361604195116651893220809915302521646617852205364861464874788834620149057543916753129758450370148029230433970571464370914968980206320451699052407639610134149740580578350688602843821181948566104661855333148272129152577771539006294834991732680172209074798144438476436835973348924521133348194362553314849837807841640818113499123946576611153451856018722282723505650761569789415127178591556923986709203464819081103140659138037047410569242493719004657010419507382123546446476615236896192189640036538780113786494136697097278650243686862593017061486378654971007725449327576541259494732484814451468068376749111624621487520107007770247607686798064509571569655522396426885562874195914460708278369612587163210572364064239104931635806237041141763779521760819324540370086974896429632067256664734600641968965993243499167298725504302590828421366202213739915560677747042791064183591624811107163396558250628027828308599649215983302752728990797491110985516588939610406586891960588647082515723866360774754042175003474311118478714328718568579343283819074720981553021393610127054722823496144826121668274702237708354412667253456671675556488996046190587578916831764399760945168220909055337308765253195883230493115443663989230635625873309613444299741369422168591705648022507451849294356478595068835119958568465993454192913532548194521437968763524746517452853863149859565971262379961719798001441345955060792214209192037602982304482411454059326532874576068430803364976658904587046314192370266915830540123015337936105981904989492707898891156108129573157773598719909441435829502437150533073414249183183660371994441081753375336332857215574700352210101528132624151358841289719462070496624104257303345142326145206275232389888187722440436569706459354126900009988191829513662768259305123741765922440971814510811208256112091536205086085002571110165786644511808970777841232151366168757046595671100790520620262003549675949672430027306416979502371979451129354398595912649210451499376338106274925204285403053542780093032690321638542589025272097699037013499786020141680505060687674527977875502844279904767820482910257051802077268590737630265668803226053084326419844292184565652450392519642250580357740817531534970160396465320217688622211775265339140153796763681886199540640025421881112461415921574903946749603966965843593240633888215048102448070055843155048062720381303015609970785710115872782244932422534564832539732135746499227870892558510669613325103684607042144769116972467328244006165308339260529966643357603926089374406266570804207385000617825447730659919452952055779254615613381998504736301038354961464569997285768522326293300141831252138977575001747834734116454366270386826003592703271420155607657103184061563859188534846752968422457403384901817195556503908674305133226146681350213375525125724081814531853585130311520965714503326230568808044634061906002129191208774763384066936607181906422162925593712806637554304986794156093995766962016462366662220767248974002656971726116343519958270335437249075657767734338823117747625758697663455982090709827627153773640802636146783411774504369126261815459538141526515775363408099808837767539613362311175092162593688198980510314268801763316435855595043113929359553929393449628402328650224436230917367507125509184787904809987895679380324698811625415882626168412387362121689448560370607305688043429985174613340683630341122154415727614639209697356807634333215000461638994211190867453924229933773314217547654549303076806704507292402058446551866429903035697316319682185177631686853010492324819277912149092884699184778567278799320669964801059544073561861292988744920312702832195152886570970002679909811207960809832415606490508968274266162146883314639180820625987355144896304964350176355464654680933340609916020473589843795017368331741690732146349433722507533228923702444383796417051630867969755630074825430575147309863447436127153704465979209583395579959562493437954430929208987065273945833757553091280079137322775260869165858137527111291559446906850992946879112798794317793032330675564321129060328621973711019732981668100771243137722049433540316366724675016232569962789739780765837998635539278607617606319279774734512412263716767506370933766443840240171779065314625529369192372131963593915823058954408192548150987961133572395648126939989034705703759254044100707175694681083984172966713792099291785588217366425565367198823680988890081250584785760153293528311321846016690564371293555572758446741819768471871276969066027378057103986323322030672705418307915281201421792494266146370010827830180113374970512179453860124178345250800616612926217638795946708591239702105166474763876843450010066760572921322322409231126554863382685859604411683858082548970571295335552525305967947472658550104319396312670404906747012211625456598190298988763291983866356193694627085335721059119056135216601337392906494014553551546588652563955729304294539398114000213740667315033111045464863365603760514913678132995614506222552335505354097049131478228250634120272130092152891859579357277161441899653062876510225640651221072415506311834096702063546950783503583865773088772586093120652806964989700483316356047227228567477655800196703358101292317540284145348396632413500073735806130251788098961310026521437410322355400266749673839601285633453200222982567768724014143992511116101937359417963271057563458436050681109854677018143269509646646691675834729720867139179016011268433585842085797177077986060383596745184016366232075677670855745458104503296117803794486301030260971821590678765761108620504500026467674196956383199852378327048451168021722608919717319111902802083410274886378571662084398284853487071097267876735290179580035788490325586913703291442782629491296995287879613988827859295013968645938059023598677470865087241633082400228971614662679716223951282785108481300089960750334087399601677888054189540062041520138640662868583119579315299644117071326824832328202573049773903133834367847386582173472427114836904003748228339831482259545298568557742020711691878827646094512282156740413782014376886444868910310907849511069533858305749570986736405912935134682544268627716709618639715518474990872131879408545623924011714657133653507903198763395944709372434531641592213386867703395338864174541919412305006387667835193447348860006239027903512782429495290698436975630708581500101774716129098184247783703874541547244832511022839928718809556436524874744881683458523276507075527496599612877448480031593965880502771764775831574329522472012345719082199287641571619995353123614811920003216033411262209732618653477999728251774781190091416587962924605951449024584181337139911286451313238466952349366444686928010502153778871366034946138485084103822412294838655579550082556926939126582525260642241077541741298113429342661863729186850961023374752492445307070642578181756682872702867837411243669420619749083947085820167793541308864001466344711997625705529119401154597662429563521643708647660760003563344261523445937650838295536313869704733942275373757833183975195620921054337191771753485355117740673423607475931109387933813713576712122619821817487917814188254809306563126174685332134295085625418506014966122536736456123004543098722989441129137794109508796415892506705319032850825468233823288524773532692486849168636141361382809999502858658396104435599885646506937492618688745150685954541131998563575476821363364092560488642246211943623836682097382441321809670480297130754011185779317174643706685312296937358182196185638517243023327231814701142526391405819948527654274273169741160227208687678969563446620206306423505742742721887202978331282806326403837276588445141142619188282713530321087139282157608945706862414102538795224027606766527322972306932357180242867511252614698881075941371611407769151613651831277591855723775811457930110793504676459236947635976043938741805613563827186421482892589724654610488572952893232654349402544834486275618066597387012532892609901557823773005106026296477465176115200988892185102296241647906858318047635747544530198092116089721052063816927304615799508167802669078988117584785235912269290649005843351964458127247476743428268390067345830236042485386394210370746053987004662689201278208040603124711800801252677914138260351753012958056433093088133650294786692640258127250582166217041891932601605303378203483986540674337499338531646272976871904968507952928524834172718922637273213390968150905278657527365096317426230550349711120426068857763094132473507980339804477261878945667759368726572867600616285773993721241308846016013284557117030935904389571918735939218455925165433017237772073170844483471777940971377490672183564186333963331477735195103807923778279789753537240383436620528765463443097882542738419954971018695097998752509434038676586456773921741150083273458368999415429120956432712237857428554881607609598432851033871517668476817320159408278651461909353267318472693177295834136426463689320717490422324094873624118588111122758637981273150564472797373233377071314041914471362132487945074711620442323961096386890772712606662558073490895406674614071429731364891508454312914386044058568013017464043427968239288716273771552840206525444724166006734371979584558239880827984660692894904913586286932289433514312844883792568670096061444361053345163935076111503631431928237233389511080441542082948565213748455383886978180833408536808296276054827527259321557737860046740537981998228958383536886269467993058815581459043678320246357527801791450597149283000654630734414840356112922501800190785267567430221111319471855137324357414396482723735562177512070380240696479807116921214747999719604688364076576394601077160559808999862731499124278603966757742280491277140244138148052551587025888850968926213866114326261767875624698111622309688167157379057953366695228667039675894263265454062548040959622502239920845852242886724735114800138986674074280640266639527117204746676251342553740099585896125666926218327934209776520888631363501789863007675114776801099840281544276360275378909812081391264555899305977287325318322297299507981050070395645941779445959702751530611119747380857199474655118938560575557235566318347366146175684796158256880889321720477305983005827057194114747112609964993511992062221635038218993594587881883911913236018117085883663966279580307284769628598924758764142094738346384069575973026288463551380851317820932265854355582068400486022505793572291100800821345101657353566933097902212020354215601949327645342731021855269913838329603658535595836816829220303830238775899542401920520460409773387259498319866703248308304043026992078361660767012692031311363308227735042199932130189263880236875921950084029590214442757635319892823428091923434524083421242380515673722056319612118388259543567024547911669770358401818929813723284290361083827439997598318048555084849096335716293160395362661540117258735095150165288894110454862409548511027205435415227960941353738707238651023525560883700255550318729673489498260748670198740569690804099242150961386544772067554867358960138951658689825271263545501871429527397294012351519709282660637242062041150812518839162030510718051100023998882315866734751187508859328578903834641201155514835554517503012749291861357676421352737006124880652460240367194406268965377898785741873629122430304974255515062779303175674730211255332407706271037422394054605180164724042173149655640115541627123094212263330903053887151832625148938832932509648069978007550549201447123482219056013030653082863909054339126542477402686637918595026363613138466968269921097633239236532060194078234223338883122315028007577894128015245851378961588871481902648988551774704146158268641821323653517809364439815824899215517745617557689284921627386327246511759944073975566413108162020975831120847289097734921210224020873117146752099772652866795737636048522563511633093702377493065799498662531098408566882374100697845215622479817881685775935340538584319147035527306454622223112089783698248309107370011233956705757708134082899603372781917364049147159893318989919085473519790511717956326480631622910226806096131156802276067284199610797380440630660180694925016990076880646038005265362819950187351047709338483704095205065885611316632953254965424560177619658060752935708542785739874593150906875483128210983870546288426262096326962342337207943826593428237692086825718757335245052108378420602649256915272138456166849097555811444749422122048614134530379863416005718446810841570968433311103818273231828815896450939195191938631283772154633802810080241495411945810386598441397685618386141668999626793989884843406475823769862687645901812921996760751381006218137916414726787794494448537232936166036022086975133113147095839656350311247640417592228476890623048350471717433703874064127733309162304537314670440025522757067291593097741401485897483074348621021975566402974444257605699567102124288862823018078642549672425147876557904797123303579585338353712292529586017665046251737282057143641502727644528638369899911937586029909454587245361780001933931295264097213855911214558474648925846137030375598651322785549845990663200341845577930959607811243329037199342997807824006093867347209095043308044507612199930131075007508655784184869860175271462887258252252461908267624207560497154389838527080377495051032952742878526038423822637701650847833586783765693408587663516453598253605757863259934526231528239900642886659826353065250236783588503990387321825214360652632183360528685777850192334195075784650155351487859920076568966755765616928184410409952644652471062156793268147315116624503775567432298346085740313665228157128284187068920189873396302568655368115333018390992388861007389116913806023087610918486111062808601481706860457581895283581894260585658845562503227324719591475136400382314873518176101685763187314173828211365804580005405163714695513768715154063839480218977405075255633779136395564510804970019884886006403134001101186362613254493604072535504475866780902569233451735683500027844788213226906699883844840536695931642933954036617583237264905886205996895027031728704560894303507962091168919299771419915427688779408335329325356487090196962241210879967689141450554300141245579331219643027314412390631265892449751585882834661123681147378999087663844459327051935182281477145914966053468897718821596456125970042303513901400628362541139713010043259036663847430610062725688101879049678427701458190111171406547485087793150319306441045097229888474336779788229900433631613097615897995774467912726705147580072581621489391139994204481239462510425999995421316977903453496055869975905257581394429677697357245183646165116509059723556899099026516967980937640139735796943448767194644521457674517686380631759482992930463952539187768454703026341462468092896723340884378849334829019920503443690825676110215162811363415269900308806986418037931502069054257294943120960036883056053429985649316387199371259281943398732265065050420548233637191738865488115118771990919368727881274743661557984250014514792603572992253344785597455952528855572946491923386386878790379676520056096793157094646661948003874099097136940785093529396911553942257917361417588204486458865622076921885898252011970727811577004348590405964498114928376039603434009838037294259512550866606751930399514071740686043386873688364398801362099799552066415023131102212756735441052192652419946020627760001093055034338864843603934475072662546319762512273335691931183890292801517644842686770366164226230066209180462461146545156442814569698265282376763284066583017121427671120488863100982270385926146726481748408466206386240202416448224839488157158936064650988059408236208909549532027647202474818129902180499234839315011401313039124636564657710162341430696637967393190398965534152700929330219933106290246378603782091821301934788584266557200133510866559911751550304292273313028313652288892507332590250134376730561607184689394514750703092842722580347976461726277426091443990627863262926954886335788607235349229858807770171376923346737086242856544118327699864547392352319074737352800274486220993025377885304501247898187156143490586529492715329518808448454100228373735545878023960957343996877368850347550048049386451935354824058130172640176015783411818144211733514943538973373038305751208828227389032533916156353712350952246304733429998975755304533833650998188866852383938048434597764240077769798197370252985771581579113691453238472007403915198233839290746306960183659297145517953676101616079361922118294660702986986332361516003376529581390840634749164912881054210324818611862351125916328737158314021424184930318031348513259067844741280655751034326382637173263325675106776672447905454741039319695509214487519581627123916081758744624121000213190209290299453332313008787768180687127116568088356176480747230426483792895453363110275087447650226074826720582480325727860288485817537176090832136373220260771099503931167994874506929646415743607273765045469719704750730289887252227428434582930625645716145643536585736427540588299968630276217138970224907117746923471612359059753061832133488823495752441173919333340657909481593984552595972975600620808831659798882120113857637848405426544916067775770505892793774703742308794096612505382537823033718247218073553841097442558146382489496288314951168833799962566603134899568134983124042106063621884166099903581711135621081417988439668961337128480049705005659041298143657287590323065258245296821071497921276584567761801754415384045985157979329545272854318038387516753279894931607454417820270042640261597400509582675187184925392065071664391778754637099786957223527154139319993967531095766726222730309162665009448911383720604564194060901732226523805386040943032200840829283897567322859200389997424925090153484611129560684549202349684310788614007758634251912275747111007803873349714885869895653748018152399084111862991889085381935563366156552405593194282617770478993120492774561242894347148238350234230095027553475324612478534817964032298361925475578696716336668334335283057911217420466288494390309667248791239711594594571764575058291887201942274902414737552916308465116823118487168510775215696701084186987478744201732945379639525786676619522714015916904040441346761974400255201788597016023215879614773193550578285569823144914477586566206018255371024656729341337598485372700105472675240936549111910761675692325890435118646197959716020636809368897821027224906238960024757991695901102562365528770349850427266714644648799349645668690538447383458935746103559219026642555895878735838108389163102624289332190427229297094744878985481165446962887456230579564288461397143106455677618303318850711851231431734043477724400996356993236501745546738896926452171520736782248134435848084470507536821011067963331263650349627284687242092273032487554769182300717598708257426148804186471318194868896651001912288000555621088472345725737472065968031771575460719425698723148547378479885192345289146514041101835445023666753187699503930696747683469596614489102695098092603824851516670864936000951388006061688165404208628060836227741324492347875952052535289467480806482943426434658133073775219105010168598585552272124558639882094129631757791942136589228117727632832741223684825439591705457984065811054855056836451767023738500742226914663537639030963498362137281147265192388169340658290480583528875279188098766401484672423076089023510817104626036060862005539865028819446028021273925053329466695463258997167244005056697829738429778393189452092402556739774423785804225555804815882603345691174966591554587414332949417633027554119446473201975621287361901402804833936102758823085795616359613850880744449463092522102106682299929823526744291447679177043552167631007192585052362006987957092836817600131287656503399510030764407030446461255510854961529418129803888060723269487029054212174876996379339391167576730686598188407198807762561709265502179225922939066457119914281439103936246524530329633275677835886853444012942310584996284064741359073392029003096400072726971654531107562909499917986331622243742492899089798567701322278740422023872427769063320117856317058858889948325467772572145366013409852044922694636560186392045239443395982682701501945138147391442575058935905082201519523744120384157224747884864865546580433435910993486143056754497531827542805829262976171125623921265602151919722275955518684407399301877091791253757012929211273101671779980202076437818672136439874076804951163974692705939885386491409892782318160019927102429554213797233006694031319153898514495535903541611334494893881051911224897342864785138282319559907085531266636694648813851374713029640780766561200575772787571265980914816655951386322819712068930436789197862413701611080756276079751520725024989366882772543493977476833438063974772204574063005273149849068665814291105950116287589785296856637173902678085219080804421134062626812313946849800501194878760473535145172620541849526842643446472599945269336488615950149058935667257406035816600292141804723551748794165919971332131166348570129586965707759793052890776394162690077780320290014126902870241179296437410199212523505365737292929961503425901075743445540821979960077043525896463646921662835607820758475317702823528133312051536526321749262520107008100441875760232029751865211159010903302405074101610283310183665394902330476597168524415817420447258352771280959749858422660650707508318011371162304235403268111770913129308216985376549454109793991008280588457309124246802849712507715668507068070992057712666351200332712101300023044593383070696101913752048193727737775185443845078254986383657246615653492462255927586620682722289626081144943007507364687364109516223403320286751596784651186579920887404201180908079733412525729696216531385925214561038381927388125207079861637425693419764248170998538717683228452410179494959092777089888487808068557396131769543046980444779383663345357481095439667008382578382101399499256192977121826458629063258704738291798006004011136470599095106722983114857638439168991487514873726845861490421807535536813803015904492026872547797147328322299168267719691969490786517857699619213199269431283860150374773854974119502750724574312169405939542778024833891648021432201182249707577424009123533383462751724172180331322270134296256318554370338319424950991822952345381521623735866500003418793526607448767064598610718308225795537818656309807601921211905490378081031188946844399102599586155905198592672998729882448787591137792622676649860776887853739910606194009660071068508111188406233007175628535455000254209303887904905115026449654044155992210859138409700065730648654457568236617630094666511872077428228030561478353680877351017409241516352939065605807143970676225600249215575625975032440297670424847146683837335982861467206888356699852846119856013814341820797439358692832040105723430132703653245199748009373752546512302735671813636283465087410015880166123193110484217967800360357663033555062787930304103973864556437826363760897089846868573439496786230691434084037484289144676383124918313529829229304766928571290882882131599137053508728432223776736464202702679409522411591956460911593825022515804394198364955030227410738319978125395605191830414175819522229629938805361706354190418487801647492746385824127006033706790519446081539536451149589652853135340416056211914083619768259682945805211926456342774240660220515117794675387859953998428801549009046706714196484086327144397135320087897181104039332315100375149981873279613516266584381256153716919550286431132788962010459925457505113583780170502568004806144218314019866694943713629314659121648794143328618846677339432290025419673655644094389519195273418981662010401784014218821772461382426897142271539755536802329223137025541292827495495955902929938021573846505377144433986749569645439702888202786985691084808471942719376460987631179508102488146386706870573255391010345306719402720986316726814934742504724779937200823713516270555419142980981019061827411467108132274926804533861700512280239615248636424391495549394927477184880138604619898928639012334487412165160237952087392434063469018654827234548720424222162954522904411052201879599918541841633776761177887923800517321357668250749006693021211705633265540605734909137903121259719146259800505890889655255509350341333440134995676666789039034732947127132670097919712582524494233348355254836183174869025176032094984267542323488417357613616013738412479976725497316349483867918360545335452602659983758091774272002375254636031146551261661696902030549752093542711408468475589229302563697403310263820829631828877701007923874091953853741151600279833661290689449737063215521093144918703067413152727456058758862305105408033993326435183485174795175998358776267435974126784996515837864139487702079301470547876341033622494338332136469754441602351333397729122354373068893855241567297890628088989455498535120126155282014477448190692764757917855783526322899636483549368564537141176314639305797975036120417408708582450762289617124021914720417169694759675175989996635021164220051479823659087239943773773253889801505673110074433665742504871909174418405319788581320576736889979372629815992248880935436232560205954273842553101236483604752261036680545118783809229354434218247674191119638202890539326560834296693518811997862902897104614004676253027040179432190206440298525966539334070473604006699126291371985599225829059795904348543115452442853885372674787010677130821150997183962848605578836119516368483769844775068702111797459908616383545489624684555279532360149862031041577418054784565568995231301579746197231253006464096121029534080682878001649001346726089324482477036560534074099522830179651970107811284353427570834084101593548585633602141192352834484875944042814174230298669859496713725166080149115453553395932737560004009518501474352838520276404499975894680296810676706379810257947822732334300852481568834215074419961388965107930951682729234460188094349480180168097550464213348320490845653281110005030379606531351808017826226463079682127316375221102250550738556532387733296374747332232253622954260383322591133419099093532120366129091236843811085690493799699762637770356133215147379766041747918671064822399865966926316493839706790087249510189015273249371233628220556108177372632113064022004045173317484856609060923534791476451086940984101873486762514734116015644511146789326656854107101479590715585508947508297795447078602167961769586843636958265196738144970977882541907932530572610292977566897804271113206672828483287842698691526356173759446405320751304453661458290176176792999294354716493659583220602682662968779710776665565161255770331913262968995686531778390620278763710737826382253885898872490089171008709405921054325516559415654862564080972180194954299935240521708848064353729595935038628062610516345200324466293970314198752193418632885643491740677957956096117595293603742382772764086741069545740142932099352825941108476175437952179322167591852306079421138501210946244488234569319566732057600733389925574284833789338560795052801347835577857717716845495377232034032461170152952797343817482513677526203905884539462527863784796452937756102962254703597098571029047317357333339288144829725953701695857296019936192645418728592396797465000854389275946484471212985531274848796570452601390601206331689367718237602326799036727457588850573633154174736880235052132370986771771976942982366399670495140324110272510355432592535332486541692188802907979553908212884916402215563500004224144165359449902083786070251124956846585003350877781949694541668469897749646652203275338643519930348564515637916119776399216760007310521000864863290881469612193286688649597201509994481482408004088262711111739711549248668615500456341933356115797914274411734650259788578051443091773670703540203520818384925606735023224931943667677490357381776989453056814225396088905556056507499628672785182809447612369531223743582053479239118717973746393880375457418999541615415523792626080630003770491557011357954833903230708169084755330844060989910852740445155386701417600826544452219417758667477764109511009772765193542157340604875729058979384351944627921698392780436969778082554809979739397486538305277077146057764733431690564538603278742331156175288310371324027461070876248463505482888075864071196201544240292608692309729061937168357866694657403391442649042716133151138946732846077478969441372063638097269234387962104817226439841200331479718605195938794156958802651602108530093859304223415363629210714894955822272266452660704066530045981125731002534889700567750119635981822291220651677207940879114213698312532173211560135008548900380722717233023455223522690098195640818797398203375212648808336177251880581179149003706269588905860869013588774903479281638154534700450482141907519248524248834236540687255319998461762385322149218366882070115425439125985299603727627365734051025270303701717958279410782555884257632714905088657096651514297396641556975697227783383467298522323332896945752957331251152483332774410105742346872090929397153492175356647424486382778746936079183006290493029541396610005721509374029191817228105519363964586155289582500286978039815043529564067175215306115698205132283436143162321218814850946746345184976461291210249311699028141215905539387809425818608232678971055733479926737998516752892152953578680915817796939297731766865233830631924911685336301789330074793773091341332245925930952809650465146314268416812462077750248212812004142927916316621016361909838734993902703307322791884913922617995895912812172641990497617714201436820177126427135180968791448038973122054421296176700188088862954129141703050806916257588152246917593180760350924824025119898893970111861182494749480021373875572283145765852835817699255272051435898918629014013967723729819554980462605426989531759955816374100470295380979130788307001747529027074157069978951238161266563276132252376608338077339370088082091934549252898101195298712265891360900137059996391352537134245135937521435266088280193703497510509783938683897515140750514297866838166733702564559948226732783961609557862345607120917961040890973641544365629068950961139195295910998026816491163993252053179658819001380773774123052926174074563010742173669530136730956699122991088397536332755152532646730969268569380112786292704256654405923554845642301730048691766908313361339949041599400493391837171634301383814466516542360724277059598496227491432787703456252156767950150083439413770438338505464420402488926847517121648758224902195951034357281378374559586982276234376505580574106506596391969684894970634031860084298418674803066889832936382588512786292003393712756286757469429085565982840057762991654692364532557336262201809557143712407809792169031543091430216105102127405408147517935873069784028237147288075588368697750560518300796338532636234690155628348911329827442960337308897789521472110984841870870438775047648634869046041330307980030099462111147211497808523484224398673608883235592758551702316308114185248979847537273981311461927391812373122374421929244967490040108649649861149276703337530376456721513102311010559069748986485083849744185625534687641574830262353050009916347127029568187503421563190908202315948733175836698422998654650926060385838084539175571539430699235523544769034532926403425865353843351476512068080814182244069402587217896640478472321922903749221990984333228399924062570465740582368876357061565737694555305568548204277829675230639712738469631929024012661677053085429573525782813945310040210477220368891124287931560291173125413935502481918116234883790579097696966549453875008806867638556532455442595462640285978412695494196100498781712575991614192775351125291050699721460252448628123013610792775077707343029367550192858321642737788400070173336594110380919250234324805363833765296062538967443819832442981750216578979484512584037691369254660936167381034513746475485623472144663200190191719637338120577750488786173727322016427218689311889756157717353092761712884219751133694287944977438507902302624925090982954463775191372977783218105153858832573660165992703512856924956577290943909124842514938991146230277821158812466005564982080551574898691278779872421636266935284903325312682147641217469854933221937209562275437762725047536316856577756125708562576820795849800862914617868832439883328028309973815987667085649796811537384919144645992885563305187727026235161367808166159777202819967454686099725610491336860495305095788376411809022633129599542331565209548736621136441200907695921823891566663207878427559811684354410251241094003001531733397734991868960725288556307251763012941304399108517332664606704525234126598712177576321166581846895991696731817399891348644762578295086912541041317370390818648971249435215833958458591900368959697920416047173662541200417579248240937660679973897097863806355952786999265940440859247683447663787939186141354832611888409546301331733873397424127986123825057321634113221403814434408320895962311642257412626394086049552284342947393376771211496830072582966726409218795400421106027712691948613296413412198624439542978569705419851575714455229583625410882803728964641724543390427257264966692258634742172645923195491476197112168632517526059242453253831084631984345270812777133686148834429907245373287009319400098712609557993294216358166730628301673036230697992819388810349787567364818386462904782008859301557597923318123518751199551840932720963564921857509321546809387668827123502439426524641192679268029465789405819070721611217971243704959248509357981904705708952143388609054671326919784153198567832376953890407761858463652632405172437935403999365880914569992932484344117408254808064932021235417694790861557068957082774520980208196373594750052053860804335532526014937913193950984962020951330366466007909983192105349250597590892932923677036749109909091401732634804184454364026962602411165386621548829063451460466228469680631434628171589546971999642907552149432893188901386189403724067393659906853794712850590156905988606022791652222171794552440232918403955296866189907458990900566553851364543091753656938246343649662660709606467154532566491658677987782833639264519898038486205556648633508295720286348847504962418473743463390955340257910543169144039336265232063328785982934310314581870670017801618191589345136241665787119332185411789938009595892615547696907001401150870812880662844564846242414458643905336058247781852899352661903855135712278858905902516118111465025527125766528246991472399353418519570515192235983804234813378901720354418253699290488446370387536819101417296074566329234693030770031751470698402255347795721552535112056777270038017769426677001610970705768614980353499630645205140114217152667882247485539121233540945403346352106680463782609175758870861399758792701884879974773311688967646276040420415454232315925827260564189596509229685635724633638704081764902359269932510808611599793160078340379384365656353660498525631980934049129263989715586634647256377513772850354662051554579877903159170353849863762068364324778261518570312633379887245306524308466619915190661462983451206539120654465289428625174721482249792935532791263824122304244867650599079342365541133233072617744320858375158276475668175779827927344780695586709453512181994309903093363314765353543667383072506604121941620901631718509040968905809005738232172888473390114527394302579098531928974870749442242126773839993763942190344388482437133785051642837334673052950648644926604138111133331950624979513411343609035521139007191156501582836589457511540365754299209986964883532764092024600291339397402268544414326550034408653234851123421685058705902597929223895200046242972034123800281270144377450371901533630262385977166396297655410044560493719086133350047799377657318492600671444481656613212221827166798881942939622461528655138644498840997262132970099706532833679376283579841347513210688654543499090476621062029574188339562960536494173690761801374398682844984981259317162597607299999748583628095730899854981306376590955396526888751527400522985561676402568722643110637730931476011589837329580547645763676421927572812957957735235889810186250396508908175576755788346289661745814682833847924892295429127478029637872081137796402729427358271386192983929382308884169402084882306180445049921171768674870258550666490738222103883065776396803450672411936878145608482188993228864820958122264961943684172968577030811888210093042265911668193854580954806322990477179753846344603780626583403579573501098183493727159548060091793857678458218173687251802911790190668675226853135645892772366530171075684254852064847056468025665547177793033277993161469498847686658565683536482284313343159112191833267443634393542336360646825029360343316333482183091517067385004553826508501617212459396746447978360701236906424402659639565200693395645375490553569202872541168105042136870228756414451943262842646954280414338744133267720599274919407379073691749358020097588991923841725207905603348261595661743203115940217938040088722310929192805441824928666495722456466793414466172555840232010565062593088391791195014701361178105174398455751578851334457675205062619437701775698958168782344191614368732083965256979016503694906022299115179362866348340731064193459918738750752082920676116907979230819799583293714939858026242900929623186636770494566430828668686243459073237281222400655434973262055882785234902820026643374898281026810124324598945003712834677277143267212073459610712389499431002362640006390290109324736090187708236897944623775237930882532501966523403933328799947349860057150832613603034247905150404743491198278515051453819957758700398306106848022554928580841279929213315262643401920183942136483994113588139878321878579513662540839049629932884015955349355226759662124582976716515015625370405325248006316520490486611628873326619780326145947237474834633953824742653196191703863731324180693066625133550457171304782510882114905223426519400327337672703857450609115524315981848526706628466295370138191950060173862776495984245090148311514160265779815648727028611822698396505127116275256659721341273125182499745991346382245441324118407323101217076953770380306735381351211281974215321375618581435112213075736252409531852536522392309411983623919537314823928065428919464714514527965546422981534451911071913031933807269251863135525534611240078778377305899843061438950432404812280259708180782592915223099793723908063708779230780408462655621985214853283761351263068828227603066620289011530634624669289339549616915599636400851320341697060085599436903431943626039114697264327959255554224798960572550096262609211301983671648739252724209483296328353380778927505957343859840796888650552852754070582613941501905599531252172454572917762138249905692402105499067376012138449376476272101563670551265455651982058127444294412313862713223895332555944662280142141769203929692380839293268614393293504844035034179122116452660453842906139516874871980096471053620057349927344250739271892461073184073787662256776693902635238989040642832379368170759256523088767105920636522017339993499059533049210498532225805285743372435848750813758716406600823990502901610300427470801413304565477190372137904405645017572163924689143670136801584735141576077685811246526040246278157872096594323113650665736678416156315980798971650201232364260413717564174046761235375134850007338403865382893585532865571997047913690109562568409956327784071429668327886702397215943925635816573867647932226298493080716162348929522526431422253253659888029666223905297088237053620578186351659150729962071694239224344404952699736468737806089218091275762279732754756495553643238609867085291970500299351893873856679576385723377508277211646340623025759303937359493379547740954885854975203336052365830808891241828991079304863879175891948418861307718066672031321159788727057254761012188279418437974846419744468999584734728221421791378839437694641317089104995608371755775683137197369401339506958524574624336925515893567142538764313607430139225719323309298940782848811604090708321404376367904699071577846612528965437664831681925278545232907785222147124314992570905520297828833573242450623441140436251640278741237978830283031698952892262936704754505355613160166001642964591288327426063244711403144075741475199658264863577854892067333534610427162004676656830326181150331277032574450507322275897597946636594298040514028835597810863945044893253849124229941982361962834476708027727604882783166821539731109256947611672218372905539720967973058242312809060006100590488028361485445846654311323078268880436461064661553439853560617155430261024493998744438054805003463168843117862189272859830950627686661190146064451015186627483445512572838911857101424021288397455024912246722971152326664605149260751459297814913768326200628298642843436999444527268260031603348786649426470637831506496819961415818122037750449407441740431018585496288265755131267821513926756439247945189476980557088683967491467899621283062748445285788916290361206165947484409950339305227166238094020408693325192594289740381633553591478224865594136633613960084238128035600232423920109284247489634879558059743328348586772812856388392147274762813036269892917982723841955720371959166897314876177663647115731570508361364142416149441683910549417993485151250204894961319594984339167339360199946898969252013952640754293995739265303000531639909715240309901375304959386703737960302854085947518391313170591906962136028251260399724064184467013803455125811690748007124766097782517051707613720139171903605082815509112295715853751330431971167129193017346600751706624276297021167494124655787991021870018450877682448916799312756819626310831560297721453698285708186259704764655729734614920676682546883756361601742063756064014402106418538919143647539020911209897130857816418325232823841578662226758464261954687191110727924848292787622855943873756446982939597653698959933974201330489102528151451027352825485371089181491730856479371560818455529259612268065435056904906587508816361701485705158838046367138008077452785073600398729219722904623694021935478448333890843846780072349924564601004840183931333480301549837981215908170774153188658448151974041840301532522961931138801338515152460539535355609589145793866984068591889369603584940448344972948761742679394536709266513787881680477846756169614289209700729719149046761586843303918376413143132114553526579621581940985843752645549212556934959209132197143297711271427507991786919217833351538063758141076732278889963166085240590102914004442953233260596460228281007357048589721756446599558000471138955044407845686363782045502865764928279803051092657015586457945320226972807859434822184380719391130751400299668886000432166232569844294907649778313016621032444809136870615256714167290954866917611360276593200131403000919191634462477801578068216264358422360760730851641091424085487564444185221039139178813009920266341223868629982197091742295862192488507651947499866393940185687142082737096716412398037683541967506448082511930466189885323901341742480502728601508601337739514950370465937656208560811418073536759146236800708795161481627304114592576340965523790149129129600266697310799315537042057450654639451074331575723198872155772677680095021551665888689139962307557167163623981655746051631047720845503827164902081084025537017956467514430152232119309538694352338277473246500521228400258383987029151377976975313091155324734128670939284567096466516062418715057036584529147669415351884615693012136430341661269031501795607419561212600136992614357267789147620783827691530360095694743948448409544988875617210452317902694965028415330443350169992683749164715071671905291735950953168006219344787750053368006072618427110432378090505745070930747484528406772389228774222305011204811865529297469717911402427471701070024038031130469481002979902041143385300591356706869873305197195053413955969203686596456549348703096504828519547054565180328082034054319254430142979230041783922433707841198412030116752057950371042249198273372414557148070632554265061970053233364199737565318998716724711499123757648175103776352705211309099696742740247362898600303608175188722518398167980176428091277587626231830179884384984428571033267598443696060395814921226154306217632209942211952755349971191414969884973404573140605082780109354075797732018421751643693805451970529264766324970207299022176139971617265174513617479198892326756753425687024313934545316476857843889940920187555108167438662671252278664082614961666108786982421865594621338309034182637449349948666708591139262309050802297190736122175803878344313119636583369580938847703740320362908402074441783199965975108544262762534745431395165432357380597154640295236154500342169586392161382602344199411124355759655682313892096781737763217127511063540795629998435416143183458289668493294895360015771619292456002176205745675294634109222383499621315257018821645033646470511820382196424313110033807353884059646507823934737423084989609151266105026236689007053405742578770325216971319986566223176608728351257807979082540094772337059038651191844108283076549675895050767240499420054685324466241342888952685239377784250520941424547249107913085114266239600379403512009758598106386483570363730030568349374413367001190172652189516144212991669502245141616279725243397669915335084085191565063005469722220486287189569968874150497411525047952262369651392699893761770475035501661562813523705905334137021673348277977104344116381653186206850575029618841914295736682057298969911751500084441226743029188941255626596700697889820720061343642281818462740107046379325425815743735866677053138210780461915946821392645126123990349029300330491989980198068892029314975521448077046507963706850724528477480029757963845219701237731986161917815865393264139728137420984203192260836534552381135484343640634579212361181503842606733168631485887536071953337109090766902936460077700828056265330443228754580381700473461742236669374353372701742370193716695334270500230262793880449597365064345186819013712126128330681144351844963267409704721927337654899539890589321372550130299744770703826700170192763551182940176000578458210351930510356191427874697351583040723533427169188290620375203740014316813517136799878589672370457834242821494147590475527490232143478245574838903853396353354374799846746121904267569150717597034836429015515362343479924207306137832384096552587397286494402083146436503656258751873740438365777638402454899655110265164833137306628732274418061293698248688662238250078059319093324198222738498020943580857806968789027557480451472983166118889404004224837304549783068513630625483023247927623016185909871811237083962212595092250213899368660581957117069609030134628692613586975543679683677933962328291080717178063929910493627940185024107440350695076766012953530619929150325151348429017255920110499329287157886583726667894024329127369117292663234007540846906883591106644095204525492798940492779510144740651500992453942697620363749333526245894545103432993497626666324156611362402886304361483769088737931854178962083775818525910953547244640458175767248072209762300399381483969866509578944748664976589232414232028255065390218575371944438916437902074895825019800007192445941296519521422801592795789548764847147597749253867731864963512488626045050390163874836862310124227696194201134328144656750693175266003100402275394886732832954460622211323569167991555597022516292461512061973189160160326821335540758943968244532431374937260031396738480497818959869156872365647160324187702705901451339180834803754088130111394023652562365209633637186329602727427669922053137742703446299875618089451696430076379312181049653861070694085933061921970671071305689842992654498803323641679226126717761740802115215677648584297555168624386028741441686602545752078983410964113243644593999907256288574772309592445197358070518025082584084129369623970587204209458792769441094574513341951633758902242528561363982099337461566512382226867805934583137925226453240103924569258947568203101056623571820671511852543541518041014553960257749812538037113935889251769704100649618937424186123462833622825509120191710055549349230588740037424866177226754187864277503954399375596272682505622555984694992039266958353294710652150850187337636984706666794040776093531704855578308858746033983555265220605057985465573226350381648534424974587088567983587288204627471860559775735699302048316654055938370668455821167738888266029409443000696008217594662115491208923235648705522658062088580841099293837039806688975646680134313328613371334591190884547861507215582137002910999715408443702715685157488837679087598990582025334814856857619911391081704142484653837261604992031686687507634077780467854861805443786669608358448708293889758901552796766478855337448281857909247649009066930514078135274244420856354013668703625664951249628859650570784058084048037485642037840760707717801301723233806782918771179411270511886140893050593585640835384297730697776426446376466141090960701766143074439028502304968501468057941680947842546865640544884751305657889951801063521458527328221778557593076054508612163114317971501190519234033155521695795757471490320812479985897151617582146452415785346196762281406825076339219758578847170382638271280915839702689515575753806760438508060836325757952600679687459993469251314133823097201367440096375421507170750143837796712040051791176507814639512162647760647950692148596729752121094862900828639796990548171562501516482309043846118919873392208984076174096450805462050661870083301797922186423577347861120497799951512625768172720105440126825408642147779440512715104296788035856445434449044335217169331025352431177167336550727014809741736279447664190591030954509986411076474204250452164962777390875117462284534857141643661217576593811401630995615813057578675173424338033565767646685780504552218587369460468663511650742794748523204065037666144864757026198353453679402939747659108345015683203608396968219642615099220657579560759574245303394646227944322629078889324195851938620492649291961412581738704933734841692552873018202830121606027801935395166482478652615136844542684553004997305354726893286313250781625906312290649480508167115980265057748783011891063807067508417374800368060553898961754884552398969520478860667451067927921126045167366047439898813497735156567322193046707862197829198789751382932411138304289163968840737299082671887177901472329939010718715594382393209757443625344303551766929144155805986415798221809198796913377144953494939947755746692834447735791231744422616784033098082243364386386214198696893482730301174586636046130125108023954353463479649151498496002305040607977101107563113934260652880540151404032355523671633841147617683134316315916675121162181799445453092110332398505972584777797018553822236013187545816715966541772589641569951898970124350711731250371864281120349275591204819483173360356589414115675481589657509296647608522414155929232909392529821300747577703269011787896901428653715846026636650269019952987219035157615877024690157001521544705651475182669725867010591913853669380756035278044599452784043990472602759242956320726503129869992667680434720537563731140346489911445209761309873004871745053904303300704536023835539988335820199829497423934755566487630274277404815653964759737082922382859761175007752475857863137901476879198669139342585583239061859763009351193362992261120298063977169460698149160968391145079833534602641934458235912968947877450875135404761839714517528959271514783316604206831226272819519185410776113542637092537115153945544105876743577668318879829307871113024203904108979351067781462564512367997590343776731444337468747720433382034077578356695867728123479381649680372545624886617556352289210454149409210871482522376603313066704553630786221227746981831945388474872840722875705045197204630299485088859438247581461949381567537292103258163653728326413124245423522218169409363014689666168237629237387028358247652855592038485040219763392264979758296367344641993808733403186533443041629872123398254128347789385891724853105645085869399247562961743271359284794638357538926469438321493328948890620502774767248849181311243602415398185784959563755029710162111632134816678574826389431430520136751891814279515177473821049321520369603216626439887337091076205780365317179396472270940801276513810596609982779009142456261739232565167276341411928711833559065343588501692793006092451877753085969562912051117121788787758174444482103074629145526721359561050035429553642144462011571762154536447112667641784957449207166040296840799811774435809799995896892721449948558200874781878244358915258316618050342086176879084800611933946668982159128371995380250640308059588370354914921947857700583591988963074687092706578976332372753758736215536704858912819418390130749972244536540644956083535879593829220151422454652257916470924396830126591300462607187632151913730878342935268265267565556888687986146802756266582664470095833726627954931453543883809736227347472355645364207659188109775606885829269974014728857315591265348830945586998502054449431528497640710666432584206595126180049275783144937873666691963233778940907018202506303133984176444601716968181981860212004029335274582501925404467162690087136788865650602432477014163188550567674746741128963894969951041377518524650070163566293500332367307579088671035163716331422512435362572928788530188212697039058756764794085246251536177800823591384770265200516048504848874919129699734141821655977040811754379003391158099073954236314933960804697861312250896117539127740087360561303929746781362917555607154457576951229858619024844639572257730838809894760419437242224377050370484914922560234074900958167257654966580725653722548083160376328142734408445703115369160982719215099304462537871602943985312144354280624475917232751603924973592761982080050808116039282315045487054524514428192593602916441278991294805983586824169897555031587888530934031897168068476890248360931316107469722803117914992546170232716906052458062025350035699990040953789666031267283606941157030667733601038348371616999636303877589747204003146711686937975295331144931009740983104537819060822205058903515975581661314280837911122094772688472431923172297695841930461665170883369337865989732395488863686888806404727434572317289592565866357656025623779225952244442262434030154747291954493178628553632089791286681867668152118733716079990361311481343235574523508856439762414963391868273367793496292932267395533783014777509864529664389119155763317138572869260843566186031880457852250121163193556033764157899016206782562248624405820787883105723992857504551069980460719991551958013182780319561455423331052800308335381849830377114596096005477860829982779135851471736497440021310776781151326081653868583843088377671367687285965704667362733973619209761589877268127659835530106832303779084263739211169189569225636974282834494888401707498413258433056735427180700327235806788349086345307710877463242754682512326811346544536376433914026163416962637406971489907187314003315881937151989762515058733794407401121658594668637538101230849455503737704353719625191276435288444037438665679882881910668500705815468796092786852551709160446720055361668749208278493404441759483283672220360199647537225388765453530108828695992627519451223636447120734998799598678007782518490075132591264665780590220785472790375939904139906545369694631605357291311916056986128670680759870407208904767626851334173261246192983468248815674975705935775899298034888986912221343241821055550633462682305338107713040697549834490909735615007752233041605842754472495307500401658935732333455071558974078345042077975498266406112661456505100080062586319789247595297972329534074859033344190664724987547276168101996313406125287794472968174459064981228986000914287757317187013723452105828896280891403866005944732799130770908581097381728524653249665682472273917068909929200097210305544911638299479767412468882841921098698889297507984992747051495753313519796812194662857892973360339675136201206522571700795377810893547836152866807892301631602943974461554008533953894855901770895985019377427347669569168132657409955866242465966335391737795714787803950362022462925964951441611738661967653944531851657926416307632713771245970441057850426437111667467452537743068389054611810875420843972857534930255976283382873358845619215662251055165986737929193644839890223297824837645740870320416780565279693326964209811601877741874512111810105112816100039853779819237465458318410815330886749691560451679697903296037008349247180489065603011491216850766432077569984266636672200949747070087436293113391634133196582520895283794528517073881831945907634683564734585306653818690655281356048372752352148064997749362260593604098164458196577626009625718488513824601318495233760735999538509560050927859558292645762764238089506071191367969077444711145316213661723184751883135238548668406382088534345812599079085257246679667838466563417094392859437470247615275051595626166012947018688562569481046442047529184155981346469237090846186931054447258251390262032874073971563164494085459992667329246479982875321710637436137334889275580622549293680089807036356689845086650303040696202401051985164227314647007822087773819234528507111020247699835901749972354061834358465624401132437061543643584800519052646481083048818555879123003490531838417310835142055035545357664493592973538053085315924054932811742309605190062804541737876848847795387790389814208166781240565641232528799935443930508421618062867697084182785392723161066929191141660349196799155187675049551633278946938858608197782274740899307910391110670862984990046689714208910982016078540512732698037416450670100976002449199218307753110914427566637986376346021082127934440338475414801386755942412596697198677828060705321471434625545189966677266610214647309191819927308794701805443629378916035230499530283767154535029613918676358264636491170316286912651454105551591773019929443338823812487209281864645175454849550507203582363774329687472392502327459626864163285825477314325470262777240294246838989209880114065318333812918608598734638695016297101982200528870940053133385418290992238177076487741420025238098165569978880609865093648453532107539896249370020622851279803686942730767221312794633576691756360445222754918657922921205468425799689609641301630679847383708498882679484568490935969791083543273376904348775628646414298143282398601735553356474320211627492338597737823755467688575359611891660017116601050822571430221650368422476983830590081525542012770701751802812987322186070575669997305193291079393404596331712994930245809471437747181680379543772215211378926933664143871064351675973672960230829250849715924479686927430434066080703058305078706578719951610968236466008462684180454440609398571207535920692475801611448118737476732958159095061997028263606406998859415964969342150677535072092414515740951124036638819402885594104262107609970156707718083957851598464378655241009985758778077480093643056098089727036334805215222235346681396599946721609395832375133179463850870543864880004015557206209826852040849645838688497186981122757170577197034487692267607210881195981740881554701131694627828611030738475520257698042403987100240063680403205784888061104714654939818310642825384174988864009177935559514929056370188327968741253120276908850736346635285443711246325426787479083803929131638806853646063403228448287484798630004182881374970302650861721713725481310945214653983333683152895126219728990705452668332111490200871408546030301927995852837262679945479893379438638169493794719405952819264787898568593079435495070029972309586727880676990247622741429403600292875039131680829266658477998827526174300604120999725752728067497553271658986312189248786158771387499857248890394574238908338613238037145131435264238035639678011844857714626496636140080357436847532432198876885737158088493375416983155467745048032258433747212503386473147531158513339669516457937301451246591116779825094104845250942216993000801368800379503042436366473565629040320261955583651181103699932535986520967216118448330356592024280874031074513203859607020168366220634392679952179363578938116896372925136561487748349323429690393860423560751817512559322055564276456225244038335126590649293226200425831342723969624004689023744071580213438613411676851440339672802213634701367057461281479908740055751652920201783399796277032409470661385281529855203751773772184358864625231020061388553580349672477526694019467302915336157634471061404580924172433490654477366197375758594842487758672812427276741203498245745728507321130722374353735498425314902593097649077525978547825574284540432658881325070562474798191621456600926281690438131700633496864594796915971184081132558448689551830276973275717563298747740287364713181827332133744720273993985715852398107818703413899069430341111434945595607044717507059740992109965531965220543781048182614326835062198371645866969330503363969294629994417325417002065971485262649575765852711609204089940309489943908013447694963949095307963973870315598918425603401156092022703086785252622578769937761465321921412262241031135062061155449292877107150903032631413621861088445453225875883188054927945413609723711332779993898685212860175083256934993635439174317971296144238488069231727592411911927462568553008385214840821237547277734635785733851635079631235871529531803316576344091650404057240587073853532683265290027248843556482758321048430030319270347603572565995590751687606947620837838236902483518513177859749984323677287540444865057556979954296606870337747656961692522523520512707194047922867754489291818865507491987523166623432962887444667084558727144595636758485056752217011727156703003185131283840834274530490234392600597405643151320553276414837316101472340115521609625517744835523877666580309588491626140750841150298498716868913428972260239369093360845288495092431078291456027570179546170824453259746876225530775924242597109232406924595976872064290499052407437160124799053518031501117417544450738582167209931185287682568436024716456235645002698528931978423010696238146801186116054425790180699548122283126489590489273687666974014738923842297747603627508347877554306822008835843082068180275374921900637596045178800544635145168907956174952793227619558577487518729263364839963905384409278189236418590763233523145344747643096828210927475222210278825125580900114650284855181540770436927173128398370910337499634472025140255356696945667201409550804428209748181721603675835305848078182525104220297659626348671496786530693406444567096126125809238772381695233404584271797225050425821097399503614437160325989007233171190965864884288744414187952220618104123023564152930523005284463704905451373173329582683085085951000289588275714269794343882680031988848001319093634109108547721159721400975782615817937821751096725504492210886515656025077519304670686270979471068029314878170305955211657139806678389617407555275150457365631031650275783455587243302955611699173409382601053202715826432206216196395803534594417113733179268304874209252545473599465308171559759680417536948815878837762093610336175051708351579356300431338971070649147110010955261868192167761610203640359333523920107820774620869033198398654972893657265040060336702050145865288803988424947197104613901953038310871519098554925866241091788140624996187345922718656023205823402858085443606223316183081168223961668226734498902911866344022949457054993578351268873865616185760822186020826790546565906329321804527689604986149785846476353921560363972144920536726674243938856910902851434816147773730065928671329661123598796546537668205236869724837135106164314402091371066606327897808751225423385949668802102735069339219451419726399429054942716023996822685146980559089523073982539557754962333412721091935723286671754624206505947569877836429030300822481883884068278601360589536773494521451645115276986479538987650099800330478277711575619731337372133491239252427176649153987809457057775458807881138700551440118820148902461221503536436847213692553483363133180650058180593630078139401452702361208047309216746891523511942036661519822763791557540896655856376410873841006833790729116899925951093041652150236973098080701731421009855149694626023389212902885473187571641014036377644293849997431448480761553759601284296559038835995734546909490060678817794525354247587085776967313851554757442546441795606872804951144321136161948044027940656882339646172900845560178115394539408546159113372790672120913856905141071243778192232072118321903946819843990565262570037335756025230782532432256436698649045406834927269944468929739927821926570873426628175657625265018924550563937090278333799255057888029008149089057794599240184462527958400503364290259688688780343138618788659742460407967703229179282411273025867823345693307508026561643125933813903669983988650832584735457650423243830293398783504406803591679212156263034381100479731399858894083787509350456422496488615759961027487814284583983967867369100753763805386292893244498112616769020310047626611899124057398272330989672928198046383399604395572998841738349601748642408012260099441112123395482219763630935506959751290744122940923621089798692226801157882848461532276532857047482480211997196111720142338947289176364781009315930662231613678797168111051813502358809924558270715441641078225889165457506412285081695627954777306255952969884345302770552182800393664513440334040754592260926418656180091049104858281727932893379985384092521928814350793321103095022382882659457101611962018270522279633679574112079800860468728198459180457860934817739795828839398090948774713854938827641313412602001337353363452878744350711657983669112288317557995155858413656393792325327393250213754241605283163603922297310819942048003942528860815076019670608437328696236762897966143783319254532806050179699208528404515506582441300869883040789905269699676902913150027205858055221853528725639657246194180450719174828994667032302591845368736356634109952622212510941392219783029932029576377465750508153075059446058770139738332352189168664854721701453021418226164108971509223073478505497530066248757680381941897802639336336784098768557526744794820451745908572900218567662851052549836520730384178004146440227486597128227205308301599008246885968383870330021771420666876029726429023931610780378094795505401118741016829126863036791558040757398053505106826335854887787125066983637284442416758452193788590021551618271422925143185109273317943529379685676685585606708284956819742722219876942669612737796587046207511001232008916015693117062617638312006499092172754953269361305194068472828396906370216431674815139096503676108222027847139492221333873738992964344858690565312649928231245212139208954365437655999117079855591487674085448114773593660703641932136464302867085896245552210660531493062854055956129035483092646259602865982620601326273564107051641501953687668578790975443549399377111312175092748040284956781609468939837893662018898239027273669663015759634714364975709430532423421833311460681850381394730838444641756373026976286697079862160602638655790987210172489887989507426164556699806746422082351865973574451047745498126662203991665169937259054710669401489980130630825262984493314098439275466100040741774674079837729844252984105261420800898392692610847261131837742256593761608809551607664757896417134593120475489082881521477193012720067548793228912562204245720102785804451233483631151013312780937726564403177632288288206602465995394309197992500737171717098744106102161277843710556920935284054062798957201809071559451373094404205635492184055812500154234055908248631727202662327627915060881097188666679523911271444421674783718165552216055711794227294127338223034318315359855804736131646972409826032613680526735871910449408190662625292352306922656756355058594911862255761064402806635981030788814927158426333088850799902700566043039939112689496057981402415605278409683600808341454373161144333276987304388824874737960326864558495355296709252782064794979358481470399027299566492530743260476901118123530098704163988487701348140057170953346800315777807106059243476403862038594387598900260754860027885397355512311153432797817888287984331208854191805023041037423386595818973956029633340316185423697693264850000200466799481061525926129910244515195381937489889100850021151067058726143845331741890158672427342278838961432986228127714945773290222154075548921007251872126403303527141992247935446704507977103256018782190425867732811975996814759561441769556441499439117657698662408629745352152074383270756029858884116688912627881371853056316723674168229703396835032491204861332201665459753140437658511511613740331150117358903202262549475535891080839884214756583121065692964113532974276243442940011881981106611210463977542075068096839107980619288910397180097150105996602272820095512927826879595401897894708527824674455670416853604225067771120899387451400549074272452642030517689629148263250046010079813530137953544676656228828512880936674815454782414713557262529811899659850112616004952228011934686115869364088289253903781033205896168374698843675173908751387778095701452396536421052560723760031409146119600865688504519817378161990472869142354219279001929235482417533272700100948876422577632866870388199969545928656537258225916164174449436342887596592301623822336602778072563589503529669372137116222364179472899978582487782000045295031351143674408154230992064853711476096629811748663340482932194531107843068490854448730897224463533706875759314430838982796945717120370701262972564106258307719059548743026094154346439715666125914156696436303287680230139466812139385108440823034526798232245909523996158699131370842696230447016757160451736131737754220306944439533965505717859544944262523303108932147866120607158318990035441109814916040815372796978046220982892146538340384357876006597258644295122212319526870847925557560750788448327140998298977642074522698673566218425794351775659020650136901506369106231321156943436354510941557143392424869704625064023420127370806870976933140513036854894043832864445758494147011790964246416845605733977363229903032249037281291183837927919327545897830508185527453950769813974287039311113495428383436437644484577189621075187448806052020561101995281752133151412324760249309418224757548498608152663658515734359020806408762318066163808710349300227354645047454370683845257648107783516685515237271307430216795928258293582210542820138268763030810595790983001605381541578958979999592315751866796298642305575846745316638098586220050508247054689003749004524284834243928107405571259279602618119561300972415859150380484691660013913645717803979737739490910339425645365474247397609511435477545671776856364252793523579819477784709977642554985304333774846268883454180792080387582678303282281888463277276117959541554845284328629572686152444242110474284291353821615073746575880041242185315090532172393103903115228152904021991521346533679145676228055690157916952571781297313123194121475252557448704628583255525034848936168291479231279062907958778185348733253348610839246800266130934153727368238276052459706415114210573717301868181257952674009515511534434491811165663544077807517588559921465415786015140142845718340181401288358194752471831850878671254322871684174668678653706706964293870227152627677344844591538959713020275040765928755022254854133717591671032809934771396782370027328706653712925775715294658760949255915468117977508822650742285454490929706676385696528387036656189077974200868250602437184218835217048479564766146713846953570934310473383026774083042942835011131585463868842810683215554470737344998747870624093354844194987972054261988678958791375517974653075412768681279624846686487125046059659624562995813200453136113879795502124863766111764929467559105843538781212596900523206950663048740280793561892175799597725964012437432720476813126720950181648366819663025691763212048044415895006065501092238212274239876409546055923526098077541428284574761309045472385881103492444269300348190684110867117301136191064145160760177716590720785324947540442539333602991940431563819149949194831546360026077864044087290389656826126451521246685330102274759424006923712918291742356780565255302644479491952684827728323851977840573418253660527278464565004641840230683255322435959503705308340040467376316507299212891431645793296914052224224014871640668023984221393068452412636788531143069155323893551670417135923862742344244818015780343508540567551823598712776900407535264803356700100381080317679058229749617077954126242881659866886551556409808969062209442334957000450208690927525734759093377736880462416341759782519096214078751216766809429701434833436301857914443120002391540240381430888797495581038762518435916781411210730899919122279888905857701120774021595488327305770370752934336751602931821316470959624191190839853655742625180677235576659300909828218870425357599741412687989879320538462268609682167360655206576928672251944898384967681349520244232783745219944763515666828342117875661540586962725268867128729514347733551307744469706741907679027949798523765626438458461904867601934696228064993595233534512656022345880855315459083514240301709240538335835270772802329816878498863009376154801998417745431933966267544237175929544271945743650388548143506769808083065255247423446941783067229453348901351212413687502914467071714267762834185588982941602631283842002746115510769617650446121802069257338868961005882666939112867520954068320100366113498554939624778676767428121370986248049555258502724737791434528888987326621806599087526308626820466432560912995304387169840454976536518388026232245287179385093634945040414842100513579476564261681794460649930371591158129847716351652210497254640896224842740909777279196580592567093086800634834840385968047231457114632883355050202602931667966784958260979351037973119430656187853549340839409258082817597124968117355296068839640210547944609262595893747146729761796786352418270171570168986207640766457751369079178545428943375152566690707125396861900465511779613520954697732896291618289521783862668545583871455512061725671135323395445150375412298359210903029272714472651847138706442163823804038832343858380864037553075477100272849074454818058301986517441030803999526743607901492583656827151586141429472244167204050594259182889350361597154506854723772176843302099847701165500208354807957363719590389840666753018153772911241324373207062233058680046979625805359584751939695800685011515273670160305537268568849179027500890703058557617699739428098653051087986086616063501870655565367423927640162513927869262419095372245071689097268268580994855039119246446817800585029551332714123531549915160768508478530619101955556696458718409822155671933347891608032055394316585111722882263948156509671694952147755699321730718812711657098247426265760072786300418325938664712835420641363219787211641113324727757242933193435989973617002988821831017002528916817906501756677907422898582531557287077082877546195733992769156118326002221562901818462815460444742924879173867172868553373739795058246560048619481653022017992431128366942338627508896092529747391692173657288396971265845105012246602700381229855430153808054670722351190660661497626083819584892602216088710653380239656508821140269233353149486581735936744736690015464582511893493991261845970615692079384760426504063912914212842765639975389980001373698472098035889155963193994028412824681082703121783281660173623915592408013705850806966149351336196259781205800550442611035764514011680794476284024890246501989535478729166503348050681694615931447631063410610620835828237991268641910248569473751399862251103079173167681340960267240351768353442141481360728497036598947024067049645197652335754024521429731280974460693741247540900148412218517115970256351647210703889198440494303700115016412944190648006784416262920396140056668364078743587032949679894709438302313914696941892246564002951874113494160209154895854230606336605232022037421587269779646528537997501230070150716625932168531421774432727231404616645348811832809486078596052670777878157697724808114286186212562707156950886848184062076301720926127328766494966700147734511060153266456146287245284599193035158825493848592886086114027973556504178847066934087001668307878072506982914511545553065144155914752151556833790899796095101179705586326790894997528591151984977247627788234025011053691700404622512777063288259762537509981491890230872028084451102980829291857250601925143127328453660070694496830696474784863560760494960287102070765121357001991435430284971252045749515244211794699890386040220435648875925293040398447737947297217290802454312685757876358849383040465704028601942009432655211318565727099151975123297888545380939786709401110388524713667105176892457185495023183331945679177700592976935379051028139493553587640813656694763450745851244144748162566359414864397372304339960223272904813698150749078342518106905572034049557247627572347928588738752205229996976951955227788762263322281492477891749474617386151884468182922188395145454712055529456649893290429387367357767687349355118673220516488803257944436706222252005775271161112740585849211766538351774234599843568780396222875944730865435188647617480144353225377120118660515255379775215281633503745804445231040473926737386639657292237916825436118927575056223608379788460588245863890779322941710940560560849632153249193475784828181136333651466798372744924198051475409966908739154905047397353767180638658155146705680034584036591346380183061659010966419087125600071990231378703238133687755109273836469122479950912205272657593170776207823939913702300103830216438502710703276172495325066692520786349539269955518723664099969795373760081253591294208964733951733971486721749555117044892059678697714122359989729220762841101242212220998419792680650122565820111465139236597298517936740539633214675860315580004586439694712528869088264269611926499271416575869149584858816335615947519665620768795898261759951380370825146510384853887381178095481399818149526092459086476936820964901402497116827030206500658046772593007179285270779760126727420917063057528306156714823152375427980420427853178779741301862583400330511348401814553740054698391351669139994981626505185862074705136580429337268717382751590773113309219298982043743442558874212607492337441789801867697894538823241389792175514518313762686823749204825840731604744799334820901133017567273309964992538513740299948514607244492959811885834026020899451091319176658579270201339594053302405502382023751831529832216560512220976740894550369300079009047380912849763930849167884176198158634934877162305970406516183251460186788390140192687585571041208892472109523783320228100635134425259087607123016939010268575380244204606567432366457866260250723466052307145436232546059571244040257275799072246144499508406366726398840034457832681361716228365594950461746314701668964894565786988464918363947625022563396428450686427498764245880080137414752758798483599298287526101594699584358454929451703011723407413786069511432908479344843790183485153218977590547312777822943650554279745037296319640460631218518181902867125019540802033840852835082174714602291853462155798902430364331482737869149996169471731937187274762456686651525423721993475935142309796889876542411836931630242796250563071401518179176428214988411817512018856475907692730797787007484822136056855450582219440789754700988772517688426650998080614660866277992145153939172045641155609253874132018865805996441460376694456398913644544536766322102681215123831039868241294563924400204746858069297696618177200123755387192053419671386838457947193149859575786748371564460980597026868985150578928996158193800647113982143257014210427365398800827531995589744487097468956239154194418061613691324203376261172907691234925273118580195178134477865180749966749003771191157331496364951822982548577173710228399399419526125831828549560051445453681297341625643054233259504984117177684611847529329507043896596905629957517792998671264434159194177988812729886884979552557207718358588543610636466715814046222925558405988826594732385784323845377209751140896637096061190336073413461406502546759679204917992532998110923695102656942987387184025375504906918046710121113163903570584968357844900476496951151368432440609039909005852452380026081238252844876058640093773680400968260498083756499364464708507601403668628183543230402025970677601167725420223855571764054132638561077949834538215237988750149090393216434583709148905199572578311845481243731231057286612381461278738098131703292853911349174361934917103380449595708308623670370960171540818654857950607652078924481161143441575514420525992556895613294751244242798663601629709219213603883408003890301746975535832496834435747735459998481337785446300591150773129106017152163596280786538158750211799134290803406929467403272106842704730774979721357370703494466330171785384045963982046461711165440940766390742991385447788575843380089649368688432825594934504541365899235634101617380141914888035203984146077679835224598923471755958283366072802512718862482657574405883976344591924234579129527508820130695223852192022121270242956031578671137720076912488192695441897077708404802320015243959257551078196149485193925474390840755952420327757133248203395725620374747937637724084093496655254236389486334244432230694590555491707561290896215150984017882622242591771942187904516838244573303318098940788045838856580562863032572110145120418938543824471156324692616369017994159873939168153337055368040537571249779249465930755050762849904323240375013008566571356891913273963637345670814247752930334621527606408081693670079515235328909140441358805232369182862259398758159910303580226225517035507540923730297140635412616402223984675151356609353021232196022841028720997192417129347254924216521040201328909338441924535279299097268831937253676672660173739062232114151737757332002493612757381021618991436961208102181083682563132086012436108789952074117321528701064390574966052010625933777957135106272780333523294137142848467457689315178366952448826547188102865259640769321693672377870756451324744602507610086142392408268006570344720000566886389128394900148251545458336166182098281276852373974680136596742163629793226438220392543066862906660126943952237222667441060875641870867962638675041699024055370883948750439079805646792544707829818021899233632050312137048755697045845538150425111379442927442227766044601615353524212019530498369259833610721182693626404217149823642341694924853872454756601607700455694930240912088543758209338595050298884220273548971725683859287773111095675650246764839647781192207455280255139875482841708842193183820309579388076130828644756634126431715409360633782870458885703794792205745890687608227345069131446532245641772729026914280804970643932824494885506272411621558030736415336767717497018671407500290551261906635210673020937473047088327373415680730803311583342682752932551146144287744245659443943674681378032642893434320414198902062081287381587236007192413944652087208914873834170945566767301095566666271143908828478651987616433901785372169783865410452376721370851290934489302433066307454513279055549059314147876301103158467839811305309366681933830623657612827341524416441395135569837769990611158620014275327228744165153590844233520872916294795724449741310023769827376681712983402273045322946095917576000770682657083343092803774834611549536685799507855783554590181071121334275885706927670671965280243720130839757819940412468039282050979190421134351691473671000847693050202743857444451413549490405865703771206221443783898366963899304662972192057209977122848625458657596717811869953488832726969078434628395104837086927533025378649039702072366003043521598599805184712169965676616174301912176352876627299245387108262985676813334563585314096975915378490020867255589429584535493937042282442447783705256975605129384747391384600339597613475105202059952167884865080264099325017564694324974754124745969078077941369997270808655389413432412709841061728925127508045891191083921033768485802218772764429278905006777015803278305185462384803527413133876792353316055462289572181945398056743795221856544927360559153487501248084655298697541061087202039716315954331722672585079584718893598874123036154175722058228997250350818475297092449479605136623649730205267637954276961086699710269908867549845077920144621902187855278464859680008081769715623233539734635454708477974324557745465990684726034985089053773170350819404755473553118169271937433957206073814416160003249056659234506243749841487735126627184412900828644025533336525491561889563803932457625719730911141378566875846266487139577337959840397071764659297246386937192855656777324166801494336860192284404562860070827529954766001726838737943108520401292767389516450586881818506591523612025980950228154066197620848996330634511840148907180665532030457692385324483772922988228120573577942864674174564835398304353112382127662360220535743245157156479211778197661454080615698020937105186203720071319895735806323418846311771709006128375793297726698639761871881342610949124124425395173886917448546574821390298522962608281885387751859437696513486308055490600103983694696896259740716402228757099217495488409833233993709508732009489476724802194887912867833626401528700823780863854120608706273873102416595014565248307718343516439263710228428942236261174347596076277138391860162796388134892948318789980446602744757077660942556707018267841902631623004231454481563787713536834337566157820039106302519008764547261899093329780464958894171469717136250406405092989851816438049292120090698484408540800338858744694424021341866530487676139377609319990387454124492296339101367658632569466324384988102407800590460972101834189909215900841549467064979281963412428028419493753170159521584443362876299768065500668241018555522082441045024032064160695324066217268031388313894486431143123873277685571601622798960129799387822982441478267659818262262974872529312789364836451813253099753434953211401557189065762184307586392136363686444848705464596942924247556414212393000678221616560387874048695599619445340985442791761037542858007864077042649826764927035506118851271962234375522127860298107212535466547887147227708297793923655312158529126258335565032945952489830093613410423512374879840001781781029883032216713884171166245718565825204041512197823521946398771450167426328958036851810765220362057889246999133758906992687458916149342096159800648259068934692628750451462165907959006473149617246817588774417740382701076716795048398047421886641572624950240031512495042904060624013932399549700684763180471420352788929001453352892499398908078029517281031659457198864955128577509619323982266784395338019380389844296883542303182633514782397508789396566134789767945201728117671783674352541741785146067901836940237076458522683650309195518670014193183268628346076155981169489477374048415272302054195842405763302147004843390714312680319843072047210878979691483273662473191533849398938092699619641198771226821853995371990065115430000474275472068995842419075584777082406199102718017726167310475605575932662086201138221182406909237792873992529954235795134375879171434325447520476935394405556177598699864905309358736929111870525713299118235763857641602015195284775910885701507357523026044597773203941866192033907800055407286249896228120625974349342872973533493048930651435171188102704948214902963825639893738952009940294007031529670173458683939315211975525848419938010503268716600905604110932056899822278202715236927593539499764622647797451962504483739281297918226059250124188100806855629459845964762544411470299322391741878633989185238327734274710706059236102817882451833209676957280228861843475346183372132869539691533033830540813721679906958110769982784398505925470445615531200641127425564995991842948797032957457344088383634095415770259808366066350053952802321367757329920017437023945639878926729980357333127460908750349138615716316656941962187279271528599140799017569764988039895189647651624244167686150487043703749997802507608684736990904983242961124334343910092886848173180124025872273530860416732024957955780747793955512716550018606981277090669325496908090194437602760092043733909398386968519247358127562481087860385378518028462868865858146808362641401972147999831864209558353565322710201280772699544322376345827219786397017125406393563235809485304317841698517234729221241673954161443794875778925687424999808413674252598709957242819243641310144329950326022891039159288243903875266215143406391795819082680431534419453127624886169948323923850550982522791438574306932750164861259241648585484650969427859521848650544765399480934491449753448648968165034833606649066390039649806798707164150845076560667564890527048866960859095017365729188050861288795401485873777577826938821880836725774499547737999241053296199562215927282811154059076321470289151458021690057220826572656112049997448253221191531595582063151284062918310056269529552316502930778518302532981546236893904410045982813848814757711392864344763766675060610896240167659971071178651764025221580122809663148267619224928161214966728703998554309414233069247886094007860870284484972932959791660097187481392313594124213115744141146534901890683480427598973963271900194049790129460737252393275599261984918882264112296586654824621971918965401116111592060090767349482680441893237382946639569961300055985898989031608266187628807858743573814780100556040671599591320342531395443485906909809762144551926796047593039873479558152189457765612521040816899165857872316141286871197625583466014543370840489041735462391319255749557653437664917395081076272793072468717650906196854494436386285983864414325038760136899579792158761285021775908125325792732502288792801469764208650683626684494519227101770031525138502798963642413979886395643244058266140975283330515844611644585251206929981868199077538229939571285075741988851048505120270712583676212463439441486338891514149857249826978834343953145117900679617882466416469412281909509523322766380597150180126110693937100666427358064130490392077882496836996582861271765397722874823030993836341768106604154626756183217795546307657828101618943055360471642785943864041305923460936367200734614560007213518787299788239512438721390743265379878452907507191783292371398918502803448964051890842606468772797781007635140718116244591543888155873973956417494765057238966968728180114885290891850366388969382133514661821330819007095186739962302100413093292085255103684263614339389358946824105402861528777612864139840708419546634405848811909025788730145295588245922203551100452949209622479639751604900511911870020686441887142784524902016579887826055605042749956634367829084018590078024467292185919473379713343755620608499582514270467360692270213865767010767816410060092562574796590681934269928655296345872513178475552930715456406662326949972416488616273329193985769857119136105768492433923314972709974253292010387829161392252672197645578973611287467789132806663456025142265592913879248489249029747717049214225541571647520006965827162907675817391218240182054818807566338447778923888422944186556389127012555314745839863433140045521236137735821027624626587205096783732165182510404072139082102370821204549798825252842728621247518668659688300633419600047033322823410081727508893081356741384549041753570020379020671387347939636252800636338295544121265375841091054629359217315609683612892871646686169459578660622880918711516878244954719035599213626363794310230853670435031377127499494267573405690621691719208292093691919436595326250636654770007425099880938426986001248153824603630365590478929068184458284414104256882480710103522482601299141432481616724949980039151390466100480680395050736384037596762283548971662351611037916298508419685479822994149253424538835927252454898764931899122817490186578846827484691127550647501322382596141736831472174758873518863235381365428428874461870151226943855923098080313810308498813396136512459828536230655869481738375528202878950662003335166226920735632037770432545352882387726222534886288454801123270659030147460990212471264844020263626470240523097353008154766424455258844180217389489459140215775667834847207098616747313265006770733492000353020905301870248364096955963078186615294083121710259832275346499129296366085985282630198917955872623765891668196026157352349307777325344776373392163000079058100776730206830801243211871505604433817162203163609012372290386207987697781905597528999268234868543357862657543498064622972928756288823356033441028287790034910972206140752513332241822530003782913224731152749824542717638140882404376515076456269439573911915529300010552638903495486196175194335733618220638456617735810103694137161019492128265201899109824536461194455573503282285189772722834200475821600497371792211947131541654722840752231390149865716606584264494324620118871427163622756005278120395913375746954136133007136197018579185348427104341470537937014229240218678694982119320556733517015043461048194765428436990121947147254843440378853026118722371400929401688274674950351467423487732613084265631783073088953432849799759129501756123841533633105596108944217961832203946167889867964843867979989801746007012366765942205831851754880375860489646042348257004427865450237249684707742347239921011460448623577220123968575899331668367954795806929145207164714502318688726598578923435034174358172264511634921135755118780075541126846281384224021720174100155985331211286106476999066226031051746789413023423193186678961626676305584293441502619678581978856003739353035414362998978400525272366952272756755591216422130598811515257842405914824120356045755558091286706834379715958562143750289193271157506747238023866586003213490422453771971276441434970654434739563152582485797223119490921352340060423049666553323147773835352242848259170351279498835705680342322436062183283872296483503574956826386537280747595652736771400991479114190554630793750079362572237868893602044523890199645082442606889762731944221045732335199648438893412274999771929599671289195913446373864858844502833414192868284419286707766490090423043566770232428149654845414761126783546972985988691390686155116647291033509278361359756713356407095465917000430091460323552163366301445424327328794021936246203282755659250463723568695603391860205323619810742653553776978520525166174818122201182937080380924128631072877094063425547980227464088508895987746724127580924259908051755316370007394000842485228668695041310391694711940049189627561243680431663693848146466612945974653747583820536550890126665801365175455168652548302403134746752583011893502765026481582499412454257692212369656917774554452957741098177310399314019712046153630997145687671345087431252918079813123214534498206972875290520461916732406525097799132589511337471468950818247089789266691267455538824294355214454592937425021327007609274796894734056944218308324287161597613690730846787114926532738393212818734948907773194248661662913588675767894131542172904690539667977519323547931117589256996324640702998003602897135063283112166677671811331044561884284904824037443676107517483776466398532003907646175731278582783589265637783908364720160217200079210110458091924673731288055889991827194708176830239840581911172997195362592579020850865027174040343121375826660741471938166478809109176598696228333981582044553174912822557942541892684067141680148952369739696871984255325646066451606294122414095199664795044495580599476731951728047167207838718847842678262196066533154545833146806595184802323949060590890143218927295935749937809445219984625054307248800888694903684114093640575390316820318932541896194645037173993348720009561925755021744962167859155830175160149258423925029962955038804389879051541945347502156448765069621368691631542817021549418535050886429945824046222582621132265425180035558291217357726534335453044435961216369100503097135975754177661625904382746451835542112597652504499288463966867183310045002041089797315589013370819885182469241224351749107663941892736113563021057363952459690632777131325798712576585130390142492638760475048371749220076545680980280967719685797515124352403748604870081184155783796036621643380162775772413119655351726625631696171831213684522167227697374727007944680048059876298011399505317147307247261622205851987807042660916204112872008633619179254879959572046817664220233848383019405399050985921255159074323528175870351158360324298465300748604378029639426209477882990822414573864526739357148647187300084241618086180302485979314914888313961698156968465909308625460653775351024471402216752919829359452012012515470863217996621251360170313580916245292316654994711843765017332625801015264701193033130250619218021887662425267910238903211175294079162497684817247921656660146150716147980352339633610769847517522732996013408476083993983171073364948781825777029413782706774948503067032384610209967846763432419639546335533918626910353466986019557309452462937261390428096236439488029953751047861954085945091782715132986912981069752509004937654927144714341152369823387182480457230530613873146848436835701312348534360644140471114019859676608470063322302953517720007440353583047380048533764790653109318660683982476796737292133381385098181361956316192487774074431754755460862493629974819514432279508478844040480196356538495312388640312701314587173844101653247335616917749698712656368262650362927723604075847196181915961125190843556427753084015223013850590914393739173312490558750645102658227621515234915041190176067726300316878589596793318198660780526940924313164721526773666606545881170349576876906331242944434150532537460257770680092125512789020492415978242255513430709861808604486958220487195195225574017430209420611131835355163100295937848852592499255580629135668949303215422593336200679642635046010242057530880244622537836285776991010242485717811378922145705001819833276053481804800202468177900764623029835591486063699457277077861334828635633680325225424204494215688818195183918723243597903861594201574627925534215170685927628714281814386938262116225707615346419673200085503328750831915755808205718314031322914941247501209352766575323473745453658975238024731344798817806766005803733849654608309977245479138899844893965412228066411824922734637137332519042289218320775928786999779515826581989184537065536202464638220278759136133375990232913161294339311164042339422494065404737815576129695991989264952048537101377414380955299821185201450076872092029612271108095409718556452564732343829032028918563387271818186830488892458947313909817996755721958847935153755769331967031203705646576589435356655017838673925510339454043304736582598281860045104795469408754417529563705121547032279874226587828628432489166748203572936235395383159218579936474403979708745985972766258638375899685937351029825188024653602317152817619843209869959681466209939975615080478294771058732181618396943713574365848396539833989895219374121696645013834515120003519564983225485840928520205300773104841410515813745777165060345728611083979728273029745533473846435929209489297452419599462502104996763552944147168462968645747533591543674596107019842938702259539247468683830947266008504135766521110225217214829967186369566720606143708304998659702810334894477927193674352160358220592452984826094770283716390828812479669157273793966420029399869650220490028804575203692111442095255213713433748982954891877392312067955377941891515118894870537823230055501388798624407279465921394234267098605607247439384651805245708560262243704938777789462398090406581573695971838539231640464910322606764823668627410525210510796264704804097103098677857915952105690466245000327552572239652255352234900619647373981716724234048871389479684359742211492875298496770729788039568985419161786370576260599897235520439495037282585402958450267414568434561850025071156995544082313928237792134431233212516893482520166275468214134791436954125165026922033841627522057299626304611676741426834853169949496980690126051001771944039560555804512565860158891583757904676465185822873354993948066207455379482401367586143540219859592497942152545541410094933500582623847723316761850521131405257155580032441388249357285293519596167768005328343618074354588029677285028915894189680955892138538455155524950891257230866916522384197437474110753218556753675875930760865946947381677493698634404502049033117292508721144970805635820840475609547532954328166901348597413863622566044436528281326643590086439338885405946650908527383902240826046433047153488606408272253620070990842399305208309339893901033732500760852644639955489357415226398587966918799426599861099765007220053719228744991294182516812911563819883146854093772757867060431115615518690623076410118478316936077537063886183566840653457025187149954721987026389642879631397568595283394324335813063303731158569448773903182366543743201574139170598138250152660768538005196424070725694916392812727520981767539698380446958443257316093021686050100370440962577593805245800568522014475550680877073084032970173472189970962106419217574201915507874115797689962295356365422867381660460258372516498422906980035189392532735242629227459278471517274700096856967944772978477703034015213324903344114836701590137069811950916893985166446360201783552647586614633308102301161514258167740663659482715790956325152498902347429290656725905566286668011828918364613212597840807997697301111065435021259920490477755726509564297440662097814396674820622600306616777132024915766985644777838560028215554942912496479579233167857019459509242271943424814052047739839792964513733182562832595676393543695158919792292570535696955258641538411737701708518235157309482658426001404514428946236389045733997071574349970685979602639121068309919231628449997641257856042688896666836250171920557786011349984340731147285306286900955410817942324808823715901741763738602375520701689170222810921649201277787667240287729450934745200955510200215321046415296838671900878797412611234085377994997800263287186812016055506529286371964843565497931476136185021372258195430357618928179687622151666840504069828483040740528110087598302018112555654531034552220355061433089090887534582175656371420917894663377650628672972778052845230949164590890947777963722601380762247050553950140771469919957621015014828788617957411751243184798947692022184665396669564532956105533917024061664214051424549785514468431246255110589488524829914651884911301880031852515988628472373770613743340633147230003985393809903036411141825673737328606563719227321539323049528591432323176895323283366957864899417510106702305799749261641173689845525259075054009546970534656066805748945011343397429160109849639415107878950668268919834296542336876573126421948348192784034790093334526622822019353486634628625798476568272468510888902914465515166054423496629711867495428313601888801990014324886865446489116093400358289552516110835080221558652260328304755070452862590675159741579510892149165176794719802643000650731210680897626999067866737031395088538722428617934368821946869796443433594615797760785699002235879324216766606278821447843086798081658261964138997230995064757936986643649497123922253799854849831480854517078870376076106375794962298494885831090540266202937867192400386048429464816645295533892379051983629680639265557198173829360432868516565242471064718686042254400127951600834791321510485664440881462116203951780796989111848837610677086822840275935827774166076984003324619120312345811359316321710010730856283876510741330077879126910858738013327489586622318581415785997623371503742570189915721084974441341167151913376012146841323621979330838464637642957767365693526644142389105751679415939160594230356113400157443705090911332469204554776145971292906950818103568780842860876449393232614356340195622408305185660568536807837396511432053175553253313119127409917300718584386771717611038201639728497935587362376770583232538080282905087089773701787642459215696401747908250288630616311386376951402536546640190386856927016316487962845110877162854481668352893281047580191622832524589323481630267289913652202507882820361038490644864174823008304994907482388503991566599351621514526397347827130106114902599400409140098696578560190283119379574151854839237906324479148843385129933323935945532453926872935809106023476627393374897235872713244185676578970277006904474968536568866823100177176944924492420000633118075994612346537016445109321433595557827030607900942616498478007628562074127138783345690472011791783088501927465734711139707472838113276672832752211072549145913705599985148661441480646132009127474205588325254001908771194923635667209842761159048146152474972526423437474326074375228431846993562523859349373535905243632220832123621820762965598550239392639317196748986859551108488779492849591422867478980146138104993085410282049426841746996665334297935391312366239464261408686860765376968807424594483328587101159023167564964534199154974456130057256808802486410454375903475614701330438978093009602738189069638331397693411170629814163306606986866593393023354163745764160686660703222422655336337167365562434008101188466758940366607288910585053648104882362468251945361738088396037233993230942963400076338319111106521952443921114462248896928287051968846280995164824515116428634438556870463635239119004986450694674433435830585157852636889471478012579360579139264930428467799630310086443802051406590717649755416852716449244226351085654677129609560799187976889433664608256838645121434980129874989552110159902134050191112413341677840904478124774010693350786492891863978444793860834672641863098719007881333925097128536372089079240259390272259655364456443339368880684327289220967680922768276920847776276544990347092551200289937990276492968308196657877006534730893722957803673019704076552085879266848977742122971348393991753584710997264800650284082220945655738392164946103012568154535292774699126370007225501377017731985426981846627872213444219288336470420905747359262271081976348148846772217510509641103695827693340103735467994997850069759394254047912822034125513241454977569574297159591871972313333758467895689714351978881614685220874827698673973198432959372434591039498549663036127089732302774554057354019039211340828700455305504103508850053011867165386425398405174467683961362274219683622161073790725149933650590084899266594790973415765977872091791759594817425413016896987226333405106228451459141867125244218660236494619906036163180026989921006255397948559983176224809261062662295981132629201511633850019834447914732884456692379095217242534688524655222266828436723479792104910930175892428619819547652577143381970139968523103120415638549614937840195461405882188631277278283629406130088388966608074125117711877796768790197299443951947733430166142792080820851433247349942200549004026531164918730465048644553303041161477574809297908604237475004986615988858371848260738318892428399584481461231252471553595342216823351087742943894556698832426336843167434130450881730592513219213083827515116448043515983314533959127510078467182141577900579008654234221400477655918545112035262250049561737461297388659665511192275199136760957369974765259580400107349009245795064163851858083359682354791705024838945904215874677425029307627726386794849613580779473447878483700483246362139441487225295435213866942238377884190460128804969063165986830348967410507268202231927831258635600520390288608242073902173175100205490163551535542533022330494409152078404651887124653201027096085263628702788312692360408186013284552963814273126724688551550839432191787107622790533132569567021645448440094361635624251739424972257702799789103680965771169092858340170484176843449772737078777865985910258538063574965860918653693036460587392273194028232791553064178003401062002919447259482576425684647173074873135269586258239518494424515747172836814193040734068373759982252922791639195954954167407678766986651779411618840019466197969987473969619875564666587386408743813814685551651071981272193148351830146954057325645635874892161809345400298210277839456114001370848523758014148296771531985472675438470837242318515637046035443285617347916949194352070516023342651336343559132127725489253300475264838545881848168364195227331667257197375909132612230730674862877072001565783126847020676179314476364609143234449197776751742421077002624218565465855856363946161277583656782949181454169532950708046311378864324134744100443655522453596426251055768621933921289287780854893377065211478620172863499301429011845209740131855159888262341704985552086304275588375654338084670079879368155216612168388162592274804176303719304730097253512635514146921746895292575662773779716786642281308636896322889797589760600390833656862791259095293468715483617768638610365445117650889928426589964290154199813789198591145642266935773747314740606156169321112280322460762289790144602563195880129139183482393705062780635404886112470043359382857576465508485256261374725568046392186116868447007934919995140520666866300739075263119469581371722172047478155433419319226569804040772591437877228157867141178984168501086951336985844710783673535299647815740257151579363803288929922881691321726266414381777952502121365196024770434723417455910763631380004402218643301412502880853607370096353451842766739795759458616286309684081887384783181772446453486568720989133872131152751270376066917645283040532002833739812231471388400492809458153706966832827046184077640176144890984310022122217008977131873012389238942919762093606119598503879952936476116490223354294484717938749323557512591174065359445778320441762378777608346783916149996123016496405471641781677256525359947705649993881521606860738947887062628020049388598898089819092229434203639035237744621988065990829709367114678565728331551507795911257556376660503872585988001442609215974924678122601448795879260715624604117029946684394633378313602959766690060266549761770654583346834021838065596813947707945644690459727485823749584288200711365568808556264074796296066681138416146449807633256505944370325323545008183314007751968640402894214325444178018586187696725996407977028837639323181025600261374386463404995959976161038492004638844461270200700743102984235891042376847178455820407858648080563972123380823555011767016428094029629432566608613722324875983028135897408136636210488655435684121688952460471915836663068758621107491246052684177102663954870984973211301043720885296588246652433032327591409807137330410901152014008926467246293064999310386807378806301404690968254957310756992197240069141033421187345239671838090864901541166934771728831976145833122926860657572741911023145600461692887478236244080561319897006008147113801575005733799825618718403550782550660785989052843769541022102726794947824586652144614008350053283973967038535053666949533848522322411705905000497618014494525180178147534550539991471111460585309169373125627732902427310702982050180701941049595181310701827782329075820299847292250771017652305894321049786941822406671520349606434820682239279107995963745888940240117195490451332043992897743211229048196506269985052802817866633493279476697473734003734662992111341029243490382395560481065535255831697670521757812318335008499305301021733962057429271289000922253043956159580842941951790580761373642472764643030726723146543858837559439401253252919933870436591460642544455025449757694069280447163188488874526902795110373512576877476886546691553954196431445323728007656605973624924318288634856449048560732986755877839418358308271446850026345974641819090445689904376578509052820168240063378588588968291886334577328860671268549413497686109605704479557980313398078713669313502929993410929908932571910916784402983608756276978799409334550092359612371303356522956130612935255985142849874795491640836642082376673687880669546585326930077486561998992597588609072487892113458834765413266044676249561195681480916601012057662265422734099932721462287349590564880899064549893928351697983888562740363035959097140448772398689816107659195022310160387404821002230626062107048548918649220004842645769777298856477362632944914740716591898410814025024876429042831602814063439591884872384859419308833268357595249969891633677038775391363565395809161185102473319482427760274564345808609563670278262876858211355398620688484055586978855175659301106619927241615615969699346233531197957874435645255914474102244804322846271808933158899967241467971811914666947369809860814482440777888090286578947231199945063478903416946384363573857370344929967248126526852469812986574764127540228526515445765901251292558520328188111314012014193440769713360168007128456930513050874505931048207647502040255341461155546630774891290710443029140103917752218803948484111453930180787293838502011953713784448044829494854563884935411298100660883006547687215701186606443574000926627273853858142244449325489544380765638374508910529861842521224102821471221553706220972422287256178556843466451765986611328232420104940522312585169702359392700445925641611363618402730060166923693598828479390978987456193867027449403566388645159091776875049687484965957674385358505440418014543953131934090507906414192231341882312543216962875315985491570978095593339416680519009304851811737436068530753600190413982482717517900175018681478847215556753560026354675828141733271630360492083629329683861385888552570947042167928458175552504608579309230530840844186510669658771137497187743303673888826527780792890375547059049388468650006026118987278632556912242455649467254313333658513046283692218152673570513328880073324115311243294885319991204363469341997499847504860206888605460593172253440054970712064347416477435261272814487777079529377157871826443166897525746240732427158082900854403132424478108842488766515966630105188312844140848980656391952706324429254566404148743437981717674060673904652554186852645975246773035795725361548411692493636295151205295371009684118144302630671396195514706675227030789779370822287860186195170147458198955849660341481467038035743366045571170544954052468262087710137740677536088224704651361993100410445237437898649552888849781231003142555178319289517329103038104328157833050850865611337146911270746204868709803975789707805534522422830250174636356675304258801411229586026733882236102235446840350534824728421806191660337902183668018992619617991388666217251435345576943882536421380608166744986776646726874268918982752910590568147264838129217512121525907045367931608561128739066306091890536516250243992440913201017071531457784638266233819775375800611260653223187438292696317520107878654271916730674820710915074220150074493122882426969042654975753485123533531324993604905709912538341581993556258641687964621489679408342159400457100185693763556239194449600767049154550033282487229930009572254079913690424143610484045836806534045906948683115739631764993939417876601379349919003427270042963795161922256458559751167837958716619891099204478657211352771245153865370773588404138366410196463917114703771734396527275902231909809553094947934835746687055189077051352440154718908013836478050348104291769721754959613180324150222621349795939466588460557391936425188112844865719218985398291618250591540698578293210964149181743747554070603073763049617411210578527783418383926016439993032322756596891892603502582285308191591939930236952560508523523603948349085318741521693019962412368709892702833892719419354440254295574174295123296472041837940609201065716193499065606598240205391054305586647315859658494273969930856809455338018180285877619382633238669866336695272888713430655281975365976568673441167081984804226665252166255230957049172872796143065927265946919456915912887449675248362544681590183710047359541956101427916839877111545099020165062931476577553074586724182190406175457681012458560275865972899760040559379788282997166786635915227806276619283188062524010846379711960263507139677416802682227411187970843541963617159961778531185098621436088565254311332351509926937005746092958921703269796658452276512018485222295171184118821982265098553471648432894990554772396785912030032688057009568753197686822242009569330749328153715553237696758202933115164649885438332749533995840959874755116751259386453861878998366181887275639145279993583377303877730830930537602227189467457459697228197685625275201111066026985931010420927821026936133225429841423519874006076766736381028546188909209414362710667500823354674188806094382715056462094366328769854796805096666429105308834387040698133008136903870628183503704984230502661294383283072523009592755727966351070003899158534434847482610731694806771374981416893180758485536497653800916667227488118493356947798312998304124546028294078247812473169966457662539124109639792860090065061401890731105941173566367107922545728543425244860000624258822453835773142219914548095265077771982585400806604427223477687459211881708190743854282366607822413564860598357443709376368368934108564235259362099862566735087924773326489476558200137187889708503334497333443438880527447615759476846135788351670614886213461157343903338382083273091508897277643382585158227132393596586052838606001424681924829887863100054995366790961871270692975751600631454337879041112546805726803860440244402769674556407543311343168442237053804108707545846999830738050831181817345625353713552656176662471191561810556840564359248288638264483421182632055467060253545235030484384714567024710369330104688280039344989654822382336477721440307703537681687762479580014877246017767881106691794295747581293416799896247309076518907932955297599958813804371093055426785082073452932699973613554809688178712385757237526427567515228599973226824377287261260647834976204574215112410008025962923288593123723999807833870829531199184433944337165369249370127268877846334586834170307207456918886061447570082865968231946185542105933742065845218134038862862107964371752438627753730490429943301636311879378136022918191062340538499613416932965310484864176931332535552462534786856876969533177915090054250216193038081058646308046307475723084117603407198795895507072156711847920270091840004275445073087874089491465826157571298016579944755631854335525441274018323783151187340207374796226153218539396942306518919567929438104369788407495168802548251739957597624937705215747423228211699008186153351479978744996684370490050866115650343004919869175848511421778416725671289463023165144108959813703673348687046783350783377441008929298624428031885201378419674122523838103822080100162421608721717230860241160064556988466058872052649898931968594026231106213875637443190928547504185773829224374513566474363403950585634741649260331016038366994119094602162501492601322876965239963966693998648025421329175126441957900734902012251818636715907988150107925961915618931546548826229464629158404371056779767440154746242496506815249733235959969812703975678987831453277956037094811905531108817837171136071082395740335097904965656741248719724332182623879794710289045500461284218275830499907968146974992880751130636694257449708033991126178314483632540550844885812228237621667175386254408468472497139687748478298797575575151183188890008002150700822149272203302322151691046607386926581097876150151236689726109553448744491634932805092467666715860468105951563949029251594904787085834265640313639199566796428917699963506645998301944736575193290895325953800552563440717856447714403266801836510712555848975297176440325723839692646793981038875503066748503140227560574692178425195110018379162384475281324049965678491985112287231580776235312699250873404816902353669582548706339140517145307472814700550408812333330162955571849427249716460348083642882656731355779062934214793071408469437364523961772994282373244904220200363755921641409768172813306920658691671829440971026761029010155694516827646125188454178245379688802837407231764552779154174541690982826985052844050311076266616512448093626846460188380409396318883755024571422347758663171657736927025122625422875993350913259757086455875349894077771538078975070500257507169875168025894663262988131992839486336644083466066546239429264002496345863860160829775933197196675570981854939760201401162367892635982886346132541302927854274592900305062382626051725904214173407469926497463361283977077707227690096341374647774609550327649934889964490657769237451201740202675137978220343587943084959089187536710290942205108685787793898966650203803250818340751081471825975354719567252341690499142958918130469590848146338913532299075852725698747856882254697575682356761439716785236345644930460703478286397529756686732375872914666356061238944225628446202883494120441733854562391565411835849814182253187672136373378599273304068369489095065177810365618689989453236337119265569610270521309885721216364159478059675220039970575542257961244961678117396896453573760187205319703867933384891752325672465795947615367701950839719847139964944459945768077675662823026702082071608327815165708876349881647753185793768483469629786060225081554351550765245612281506392537907371414663780021263487404196793797230698894841867479844705371954308950377769001011593212441160613913229762647145522655189665369265534360510008980704124016645751008279267969198954839186501005693485269358915950630644347372686652823373480494594935345364411146100829403423347681428629422653553178261830265866478690182541386361841591831881999237832813107039637088284186688521619985394313179424774776695343494655539659421189345813336752063282793766066662661716267411100536602344660582127110395789070859824289853582463326144530951245232487937001838762009919879070237137890734046162796431511258763273845645700299136895498437163616191659167320658789007687017025078079956571827966312800821595261016585919221056925686439071373928070529826613764612570750042927957860621458903059589252526764663207092857304899459059250929860853027032056516552763173733356062717281591875489380629784899381008816991550473636063794888783707542630674656076351331473885933923684165122915569108859918584663221167988648461521854137026549249251967908065823894774950867381069388614187104856458300087844494631353640310351056401458035305003958515142647301998582777090049861945148861617103887432821596544686219561010024482056798938682969671226199456634791996347434282582302472378452625325052878050287191699774489710214869896602814147741906313803846671398192104002399907849488338054589430739231015593095176392305080946945649098662367868059207201958901304949513501522347387118890912435158948906219420812278453115581647802863888742761577455100176560344245179565685761024257707273752357647426425053010900362640313669834297771357221018495685224436666013859290547368109773220849201102478376711657163859445401660030479537841520761240128515769495035551331589485372341723092085608554066563094578131572426968435188774940831718506598095899159602200356257783712664146556797225101736781944669595782645626199985602795096030915644847236489044757639914203129933322741062104042640425113062427208905148981931847100089561033739613473912848763073761965376135710825854707834779825300063779952256463428686718439000707406385324654342588512483917497546048270826727435102348517685926640787675432914073371256628088823548564041084097965906353037063876502584742264919176974005555748448441345008905666301728445452778005706043815791752940670512551905000775578228693466049044599950897999222187510641568740626385387883588156707423756548120153240960305813639309305033639706543922575831999840568771303120616404846414211824008540457637585896607210001053679452322157581868096658234512402211292175619305248303754027829428732787761894450387507367741440445689079993711460924041639926629514578278644406884464067128314044354541873237131892559219959360703570441466725031560194480319968906034577066794231915531056880086306870170429398404171948178567354980349404506803062680298150321775133410719028336563674973949669728727479861106937700834084963466632429284260113510506770794181948436691223971602211309381399710064675475508684932088182548468907448903110733831214490136387846833906141973556539574242640529369955873793516900817718940644095541776385445026237660121685579513929214147365414277599972309115551086428038073597547894420267652384188380753165011221177976845248115422664722819286317108247423199498052514478530262406943871472629976229943646702467978081840392795531475342906700290204753399153093969462978334123759751138319781752897605368759889630029589692951122416259548960904981432798904140431462931378578413487915134396954824735999685707562950347476056445361532410298139818855170179708696957194180859324130096483994530278798177620900128372090350855019999426402082926289997205300962328579013639725221442639024904627861886630682450382811147024742406189316587256328555560424118992169932864935633543599598999257164635632864141155384223341628946969562895561948540967937409874475934632429102368900475216533193927152961947854884303880911796409187799843119834952765066438748908748019289580309419228286737395978360473409325536353082199856067534890112633183658332630769040941073217596508420893641518755196429382352414870043342301815763752579230736499485659462805992564071011808939375395285971813612764780188018617787213345372373660187801980248513664848320235317095955703755702163643077833316824137015317909507459979685570698387795684632741901934219324769428300802804090982138201014970495664486286547340394951630505579582442658047267299543393257789274343286861929691639433185546549605435390548361620056154404059839181933946223986785516048724095041714750340776579649997695078227918721818355634985170540831682635820487284546976070787781892800584035274813595483041116884789459748278943329378388938026510081703043710059016512594121008239337765402605416784691291457880330260662359213565022468144571570429211769273254202197583490366198544606506905227379244220981595208100242791043403422631937198659007656313228049954031358859446623336793523852491451859614857421080578891085973218893698740164614722546767663950642150802931052886643677916223982077398204571141318966404736601521335125902809186951094372124406685776701855866837073218872452693608774603378181395105003757037337139873635141774332976270072425910388876807047318404809218247191990155151068532323067201878123224334078302658695086397105179836548739913075975916809993216100768351521329927748817494989378744964416210181615800392257661376677195251001533191331469668457890903115087696844270088229590672739444441090692782629774683136422576086842184439241544918690187725132912212537873398739582818032052805963227297221431188514367435641375393571777123878877980511514077863070261113437835277630697635013381357388458951698487386262684386786068787567754880518316147000906619458647566344319726572759631982968498180805264071390860527167399108250452827613748920733462787257317597799973189145284810660483520538170598410187991313438934476305529784774207730080761140557126368527618395768182704096647222947174652343473871654652235149206712571910277867867911497975424800877535370813559834451616484318423816944948969047503160013815352721874341996155032243478033102005126413838959850006269926659349781405852850709135121866626188770471966624178239604838053016366706495928296330726552844512230386431532867679562136689668217210701958239391564566594790720987248472813184920323931322601955626476563129677191457969743064115767883683362381846825367219257698055217258596612960836305864274190206767469896800344474477394990530148701971976164779227857730016849448281475430271428534201700227009884624190557109782600207904181411068872476366482158860314529572038567641054360101463479730071857188614119437585279506096687267385802088007993307618516318251948760198367621911739980495902731558964022210124703085487877853692952269794179053918443577922190990147565447352130628603663883334781338999062042077741371803286214041603851975494155931235056706898565623123125710949976604440713150284941506499079107927336386873462665396295704605422364383562457138821606569974366450771259478380777880293009305751265688886093471058639324275487201788068412890235320528742928228276374225437701745180310266111541619507845516324396119774934725147726803101110123196589382869308637590590341416221314700839396455863480451707279147139054683413322623953000374158869220125967037304553319460558947081375909899264587202876093427142237290646112139209650832997871382552417200030518251553231258240479699187581264593680461617466141760226893915656888678538647183049647249911499988598679837786036597956352593749362861062033789707465735338817309926801767635873573533944760819383439896802214844550634908239802615775823117337847658095472923110253993418914298449819111464902755706944374499216471285085888228689741543228132603068971590068739942051380304575840685133335257535106864243609972875902458511768250653321500686356293582749246306531737158885728354822003393075211757230155902372622344235361683390261708248462604829829499779303183804580165212939929071761845310772988572457294117833888947564829252580641165676841021067141371974407073962227052253051423783738125903303068660557372090670056279332972703303500028810402653075120967952256196509644713151680511974591575190204661337203436123759617749677115271576052996407451164261444391259475880797719883411288807734158351120231969112088311378450260136924499675321359664052239574644018038863879690130844832625495249430794018316564898021073285418752912633050253835619491472994654817790696641791193101613150386426595334380551971943319054426361750925399291720100710785211380016073212124212643212953711862160902342803185617045911484298086129870791860807869767335976465803798205897248174321878517283080798522007330503471308683127503057173567633684768204660322016662366704077199700584908805948920219569239735059744773704688804750902403780205474337378161232617044654546930793188915161452671580186729890155148378961450763812973075795100839660950823922757472445466454911736197701308630677035346152551573691214719882094531998211590594500499894796076103526819919296097907757404179725295977890230197694217687645031012416013798526807253172375701741196044863187028537304582349046421577881584604672539326562301951400072290772098705079428039916979922719752415987911120006855307554533964586064506554852668598991999235047639468802817935134524545750770116557490266484342922166036724325908063197702509536095694473622997190401645320108709090540524856184412735135055513212465993179920316794200072852973414837196134990449038484030506737038855480555761456121691845156726395207062424876542263499055088354435357593843498731314872687863294330916789302275315237034959759968454878559212810585590107258032732574246026256222913058747761624557463990196776045188259238784724516121548577869475171294506909290973159917571904954918055653615533790518378573319483572854678889673506800304950217038680898533268945509773435343899637336913961998503670212125873045489363031962269880468447744518542579683827461346097630145309143411623612467427146418067475117911414054891315980629912875906203615559815694534300720935149293204622036836482936699142370857545394517620153536033185497502168644461552188843176060372064657507932929522703278408690023989521502363188691249926786736331189188994541953403032879432961371950243640140179964007467300477734399970379453357615316619359719976093279107376170779815258948471414355593042323077570236205184068397610127777940502189722694508403388707449454685390304749445167611861830724659569950083523668349062549795295846228779140692530719832843495563143425243083598649996353993725017770047632855104894417800897750197061103742574791976729371029887932304522895634621115015702833686214195110172666560760777706010614530155200546797098508794600927881751151296954624402421682481804735943847435562591400918370517240069537799846415267722230842879004296436863782210171030148915220743243044399196745421185332585764503369050277891646129222990456811231137627426789775186185078145974479111207393928749427750553057863767201957936872710561957898412369026248326532809616440636026496721511645922423174671059281211519067253886475282147081542254538569799809930516570706039953474690838765916055803149872029288545792295695746640294708254463152767639246752731917149477331179055323396751888769763231411304547378361198973555443182016301288354665047416565365931366161236936892459092476064236753065658336517616627110441197573618669769670637804012292077802077840369635099245931275270424486487272291488684353305400832263345340345612372648844361260061483340059813310089531169709030330972708175376378495771539923431021021603843228062114970712500156170388107203828183977540910599842193382594144181805260732266022663605735181551426059763760035690195065985300754795792670881842661231807336986423087470358428852530435976738652166022155816746496521998453290628818290942240764717831076206640334828270619684989916506743469993036549342270566070652822476122287737467015571110118853308828566975799357219131130207418151847053100421904659281386117300832224486139680861087980536312168451914236804087859594128939507540358094416505885838046969927796782165996280411039135354754897075821639056820973823146697773565538321110991618289863295585907959040172783214477673767359826317528959674446621930680744097153205015903948466737699825356159083655428148958516949585745084293759919901489998597393092954613798796702401636130349758144058320979245353846217832527199914526969288977466114429974091341398966474357499525236209167766453300752911808177482448185661782246503006074476173152954042859707601337143814218780469717094439937920014722733216578294197382410116443147259560643369215580182511806180280617355078561424184560758215800987313252275009755500319388910297699088101652672561505609809898015505309866023448569996003395496302048697228311230679056183009905306062314054433992642673676044227740957944471600562947126341510347008557701974384900177100965097776708453270555381621738794221572714275290578858529493409327795855600735653949406866602366630614150978134122217912805754016408655615273822553323170791953544711606585817667017820726943934767528496706040149558096110282404087031734072253589006349109334856716981345589823917895740951797469691583449461720534162044644270130452559981167684027277248468862457689072345335144434462233669870374754278642792944888688469490044979898720764491231889997712410246385992594610601724708291713517012072390054504264018565243556936474330050079943320056380730653237454076940116829558006510733861242069143963277842944327706479096384745738851300144880815686255697436187664056795934893422251798811624930687572827746481193544363743581045190063215983766514338454566372362809317980363549061202199184490639629146727696612766576436335008856820149628809719042509876698068325152902100822991448073025692397705161765804303312789912518999846342366168036579171934179148569357074184957591322348185380513412699829890576061043167245934345472542416694570013278756829974027293765639832280469213060201356010593827447610628460875276039109184242353627313509072058754778865539767526871386393463870023292924757983154424098614748537652615969321046557789937757477925266670348689838906749437866302878200272095290983512586854099681599495594988458475978895915761867659705958925315100899049767758903919261704956875242097803956577597232501345734444147287864469669955512618844855038469747087829130133144839107539897465432905303491507949225573130706861835479051297200993939932950402290847128255836415467635904441762215568023662607197004356430176491826601951348406646237104163885849204964838458598424032374610231988320468199337916001435226839845515344015182998492686957905036527419642712742618432630067985875069432919038080830039036958871881897299117281515234129465756553245169887042971930035738146950848302400470644011859479585566631698565459865083580807062913268810182459900924370212532541813026316632442216143442405389729511834659595348991296833923715595971628646257970258815665067323825627277981066480551187144583607275483472082234150471836404624566574268381774667847266530917294790394923546719529690583176662278732962440671788374092528181729396860121559739863866181672677049450849260135638653300914658107042054206375282849966712123990406854598371640958884664901545951229679002092150741201359109007356018726151025697088047047618330593389111885456713018979015732659446718859439195365185838876414967393894365706954312173796970088608709301184009918438388700926207037657303450977404980766076267260189827711761501744377156070296849176225417680771801672065651076848802971640374922511903031561332421284607035968247460312239151485777143646253505467403527818720453207089958099982317900462716513756512600633045883133773938326443084569282035237076673617224323362429601648543086233390662443919746601435451708543466251039770157763903011179369858573246065552870306416919259394468388280337562309802612044543236174666232259270775148881973385077289754633904637864830693518506155204884947122055672084147268659936968836108016196899965970156629342438850019463846204204740996453332329282869836678341296458361279762943380297412387142555255235544098450123033859168927644059223747502576800493391182889580689130509284751268576153622492638224103436386561111380477325299184522060375227218493196824824229362088227421720202688658877055727737146998684914282463639804922943448093611101345989862710571526563027406454212905338160127348231844956076428165322674009719107466133824623700403143989171015364827456789478530848291136728267272926489963690807530500966225198611654287234982848891295900917933890271110197361588112813077467746962212101264766858231850907468832255878831910758334792610563693786037896321223694005814323377642766683133582285506773773605838038770116057726620462639525936851979463364842335197712242954720970691674601235939852404062773241586878921643731131016626144403174487340591058283715034225615266025162974316215559019617051069365044495023057433036365182482176093033214563244620081324019628327836487244840185156430766613713410282319973717398611250645939164131496381402345278864837590869771798281802923153628252761221521572193232525410461389983054330039289895300567626025413703805901926920637534367106442691721171344297295328440528980761576215427216738787276920746802358200212366328223107697104560378058266257717352950075681674207248668690604024455701648756056256142785292803793232725568961222928633883050029171137283667435062735665444610007677656716909072345574232781334509574192672722020720796490668383856323346955318121470185642912410786941113891476630505446186296539205418353089729842854173511401290972121915576693684736520397033566429487712337166440480222431955806470660638942737394374968624595948155631098924270683572482904653779994266955274869287207271616974139093571996818953917795819746066670863247788549683688050829415501996876882916369335589009047699446888648985655238447290982337185048678649622489928523012291369187783563549846081473563821957289852857434327893493838335953687207938109542899783448992220189756956240008549013092583165527799405897350875528419158587565525261909030324941859245029564021172343792892903926508617790051308320080496991524129273875573327408289087073707598368032813152790871185942460242538843722461036814550204993186215438491160483771685426984905138070009932449995032276530978576266871893510724682514853294314431681333284001759711981001022430625199207338116238408242001275493799695300898554661656760468100810246504242241606081706631359374725032143841043697922556350497310319600166467409142196025784788943959352887444791381195211965533264864441569938156969236539682816590048042508759387716906423099477256761692047522857721281460261061906538912223632455483039689619578108009762328442303467134630142004450098692966031404963496760526293087883669110918379549037050771212853367425004477540817073543934248098605092470901124335854247170308184970351981463425614635614836960775369194001362105864020118717666902150100893265736446575812869928759676456299169272629309278712536116914347728257859778032197203113075409882367544303862466134451356219381993087338607157752672902528458898263270716382455299100776025941748054650441727495061013560613975077885646718501269285427658048928096124091146591784562617950649245353342550974087892156601062911735403791400998288552158012452646501760243124532290573936118437106467784782929752599434432641119345283031308581125495601534981140857475488117816612152678538468022899513813814802030002325104976648242495014879770803627749988824120531836536357098192024912422697322178891865224552858145513399880699173838969019476779109215383464158215694892089180450566943226921321028253114106121372653648056910114614612537167554323935834502811313593512831173613758257329235880112006134544396802310328130215646943987735789875821179720275074597477785437064014564544402749843558649629959366292835967747428292730846176926088890788983938029927987205261356800555081042436997146668134959344841457040691902212994763135070653049436488727032438568427933570538804194101956648465188235994519128959834992002150024513370105478785742077948313920147468290688224267534244067414931711525654718478197301240803716250619703467076889831894622558671739884495082112040171604536433052037479941377004557766677051864257522171342496512102907380112670257093139323520878630145491855131932690509761037871619489753717400225523413142386715506117473386016023873027117398228770531762495484781384842097270976791556918873868726943088389598438173055226867239614966059374699167320745595640137430083687313597378424991114219442511598919744154557576651648556822846749445827468335621282780815463283216805366001587678928268009996129199010161849163584288938288213371295563621166832151974398254083976422413315146974395053840565930141573787494855784351608510660872901345497771079824295866762032730581821740284314842727354984890833398600447754317717403093500305468294316574601834717720924565349079632540983808829672062084775183025869603894892799155282987086696618403357120855869230761306623992633640778528677884764355067988792012352015830953780129047842781182051665269332894550221393253609605332138714954465997397007224619753703466481138263535735353919428927198802728218082315362656052053167645904261939731543940025611578184789212974201961376517021494228656292389302248674882860348784231330205763335400396918594809532842640253042588899365646131202385893007130755326836147077049355192943696222959988884865654374363395639174253238240066705478695786116150468765477738025910327393539985103722754377301763055211234656545515231348190575011373388580736579282656690993905612973623645306052771680176567791274805266114954113974762827915046795342806756696394374854346871950811096322006449554987489367684547815663026134609327969477486539509689843517321633127568284179955589060418492512225355580321159231170960039842850568724537867757298140629701488718346380259893725501389836455747779048424367271352208565489325932121115319462847993534655619314716046440521747215231288837266280135565632766408852651627502373182005445270037858697345022549687994662173148610187473817687792088808741705536275535913099510224107644102456117310783518298384230764776163724472788897071593729041543909051457619309169072101060866252539272349052400056303632286398230608775520864766749221920597940946008090106837629012243438023279530329394869830439693863324252192331357633932242345750070446294705329359829569085003081663349755544547157689551075662223850702692925544526257576928911080530208514989228816673221873859895656125036855464833955528715635557081987618067374284126471324363187708334287168697706651281038613823765110099766829339830770322659256602423970714880530207820979027361465930205846790462515553657423326369157933574927414092843499364808544064999753976395876402317111713897192981617409973152510442905814967612541240161896210259821153863498669962952434936612882237146010401879739820525355312832705819395545345044169385402718339800255253576321457575977770627639421623585149018090476181679433077601230545630379752212610072435782586867296236960449773623491123095370233201464532442576151322682823646959543180170819363633748635833698459663098523176436030070617406401985337345314182816743630628807415545869257386847824026955511266087818203553765490810579472426207638947558248052953086905760177719481575584439241076047420397095891128971658292037423304100710454814569434841748727087038853247230478516575839012295295694815786627891364333335162803189401750497885949549730639423009735646502932339962411728325053775146839350360718050500873643935975580182563558684459197995801714466110525063422833937390652944957732291082234097628240082541348986010690345635954097131837279614587729020165714027958644324161608430428169886905086330897689367708473715378168485778111213476142050506021233978675601459805057971225971936312618109435425693399949778188070673166666132580712799125067668087477806297909814899137656238108097106671859840620691950373799919209776266895551347246025233558577087695101211438704177045092666457938808808306363321595838340531253507915674455836068691196196250162698706898498062725852416322835735727482385566534036181091087660819065491811082564513408082203902660465673284364779985401605791395863326616960196371835995959676644352674370347945863098312142514423832434964441712032004966915917360414571153807201818115563206921549404268167299835409343121602011394810561218251412801897543078567199502648735989011217284049182728381482952840082584083061974663738113874932430177901300207423541276032894834285733866232190048786732150328400323249695968806561751284439037385075641783512892340325810157113228254954574493480424644845076247934874791711282408423747954131616898059259520198898364003030239018101484242095158963613423447543145256530811735467551662775596072168836317169298576926637558309249618998958744152447543116611649151336721275686542567180437277529474752570805046166035622374433231893103978754202757341140906337657755005055411925616009175226908781001029294641870779049300765685980320360028440172186751951023212516175797514007779635628295503331411003801415919452661916000126614273978616880306083609279249222377242623876342871132904918255197586818177918404479394109580694574374021799077927061656428331854683440457809760528071137990505610071058676683268621160590091930513401328877533253247056804412428820184545295189479149964542844714264595020950308917091091513848245701471256814303902295677343296627122061758618058768536826843072162189550584469297866473680600221193157736407922848623700651468271584580900027544254067948817003633043527292618236763116688194743078651678846900559682908743910235380412649013639589529552720476494659897096539013200041409679331205323092083476740658837458221952643919661833055168085504384410940532519970749182632797776467967151167192373695234842282745815492749691410600753288120869673517676648422754593334925851225971093769890485008308997831741976663763208192380068883430271298729793863685405823466104602144343674980869507540056789347595527159216145133010020576994314441350617032113477684376753960174564871546505957400474737123775846692230178009929522350881309314771846314549293929294352618470634880906905119903193745058495422886296119382452317885825058140165527835296307512325745687847984949968294376633278652746129106848100172363676599484200615499960673448226499021791590636763872244272564096647172234540079936002535613548341834054067005617012854673336906940429060329207556869882920492740966410810395125243838944003045281476572373442883042485597904402739177393863372542085626683766578141035647038718652283081731680565659076577717522586178023799679272222731159602564020791627634054128504006836243151042726305778823567102262006174168300437813469428909655242909709218470869355655984542323704497647364515375736597465591111738007145043029551024616208145078862194525632977954139412762005154241351054229836865804446867804109876188298918874576739568684271538975485498290502534064422793557022406367686048913977881384046375705453235042693343349635039102870201744586773036203246927196142637045068505502065321147777041691881980245757334818167237132809729051439731699352108529857842450270861597628653513428836213678669587340044488189967348842183288038100452483543576959500121547752244855798852590231030986107330249724439910853034903599121926063426664531673332116070956597446487919014344861799703257837344668882973611878160903117281626571245292188465229365799375609892493342628321548662411047712387075194618497202178010764063679045288831671911111765415913466346119464872875536125459798950402389587656960597648095924266294861032193819667711731689989368255023452101821685977653371854155511849640677221663354945339594594545000983520798288368560471179445888771009454491983565596442356281451523562313160123400799450859301936759961010254093155785761297301298990224389115357594220706390153082173380511997093875467316411227579162252962065656883645212197191455372727380976689564289739987348537844822445731074105374217587426479810045856306158432640703113169036442668913775657569094043943209639417492860375822964836300226144205236883815888545678458874554848067708351351635916002782537380493282224585187969445095673900173883510497341767268289393180575859503326591855576810011164152319705421234579552645674112782568239558592741480229119278683949574709603318525611928858774070029167410247175180317289936620882557267764022070235328051225351967692979073643219300318564304147202222564501569068784922949219055014168108664190993450794175002821635714762941892867713530747254030898552424702962158872515602619201309605811473517417464269007217332400559643595348210261490534712881766333905136077071145456586626610485662153766236432579658591024997462843740221757387413067888301724892015179147523328796803535627401874711924958442538127830673180633063586963246686716755225751203276497515528499882973071196360551987349105994632671838480568121409705621119554788447061204212835035707478106826934524473935603939875530291134141230192681303209723072701988931636667305774336256783703733441205687317866709464061386536401826109120744960561965529438301425208417961685780746842044274363238249028270585198209073454562395258903636078053982472965899527926062099984104828025874586955743089968878657576767976238587750957895122300139543619540760848407703914471080650937148771705174068814274941464201248470816000815775054415115594925361111890390327844410697210817155087952600037098416755093085134011257068831783219027103503144019410271992812025762413296390243411836884504448261488659579447174324899727911081596114059450310664290725637518924521567602635914705864996008688615559945373795091641007651289056343887096857476694800737554124641634225775314308843616090143931780551018102686932753831383569655525917550277000428500234517965737187655395760118287741992232362125001793292283706794765415371228340342286753313850950718117096487586954914740751381274247697422798214320661101752424540989108190154854641115890370725474386955999752573569263810579986122062468101747716345752498513044174243007498477336777057247975505382938519183905376700180410883609594638707007859835555940389175513101095538218512946842263688246305847656844692326707081108695433116001992911478534240553262861876766291963980729509763675710043199990443695497357914444544876077287972475537129426644677800512779142235714031171371385767690582538109153871299184961353341681152675289624235248292806685037511521022617155815891928660261176174918972884912881072516762179597012581126110430265135836446887139720947682747261157456034371455113298348746475898815337819111565897751462738884367753931044202826036747524395949059582010235514918621977003864582058614026146988100762332889922374144986616923410085209324204601766753852510620639439486043597346050243753961086961787470496472460015126101891841974770477745335905199023578172352117014649201623950887452221559368635857238070114828583259754947310508872923732607964941308899985383144691617430063406502686983265383037173785686705664199471321859508336289482577554174771478522637600664468272691676973962370772508777408883551602752049429078510841089460331993226853676316619479027007335480937746511699150210872187883397555116059311585925817820717323305331870121672872117005362755103644503013411215159278730851386314418638079384171290790653390998386034673314560693227893129003982590567771224279951050751175960016612866093665260654358287303394210402130149868837200086226820733425669104370428233803869382761481746308053948696661214027767948729744254349814685018171718438905115634197007981096924630438946456959596837792516069360120107941582744700595579927756688276250239268483940893245488261393005846849785132149201536954727693939413119204584659732363141626754187636728525394710638458845530398649250221646005255428283191965084999344886310657173254875816071365401362717228833737504198441704654231690974009580206289236692097515042930687936064376333555125151161607329079094850028890852648075695059882561044596148941037817779730062869160982762762002921233086285247806068261745188332494161793211915005543496407408386506376486485379023056023232392859906081300346030296468893452373286625420817526237381508453247985666898685350316172955183997852814769201181938824500984723776995734714073478288038264754984736479932623566637738174402955231582495287830879774537472882245368961032632302212306469622299396120918155021148529397050655243399490470678934379295302092280841651661858043367646231693954139945415555994122450707391551227905205607240303757602868503508276410954599794417645592430221999059422157684902578179502561919105500703693528787952864774363243397594943530541457138106549024588214253997334086482114903095255877697571327792967884079349625974375201039662222675457268980289318968723789981962273481348915234933231749351451743273814271682240293065189819533972819610502365924874476266242832869162798018086593696823032286289552755473900573352235150392250556525423634991187269511141959418273914451949080824363464826704585846132512519228456887988843077797163447637927767069888678719978494021618406913729607757289278045712299683850723643800015860059581447408824638570634674828194868225834551502362013992168244157943308223195987931602434894314584703352631774867868902703676797775079580242775203306559727698917634785847350482058952620678329326188962246893440065521394570500959812678252847903509045466227580161671364160386879331064206693111314364125452009395877983881571505549807219996778954948127886730237520765275681430412551362612426715523520106875780841929021689565615776927796928027028094324429650975429827677356628516737421786047517024832548102186996496109835699949064769820864562541154546980486313517730012118203606287617264328394971994674352033372350533160946603836626112411290613664140130675874588205469605859550240398450027700108973726407664976629584392881054805256192871518785686856792595775363393667629930050197005736510013777298800947275988679521240800509585497062590091421389872943772884881401226295483403218230150687309398843698749628691201230949315365942976339325351788237308914251227478884051970908448099617486853637756156874865506391765789463327825331901327535932522682949174840071585739551652150466934394078389643096839312190058483176421676225759948957533949419753888173856757931196054334721857378819327468094722135602473065787275564085714911862959320461623533220708504727900109607035828032887452502671874519150559041745964941459431402538639604058333224691345709460454086608556739754546039865717863051969026658800147049185005061531930250828431690163589096548639035970771113133799332960796199072326355869438442374320425679384647971663402309170844352597609466238318396992966173265365233691178473556241632884980553638303798416681168313366640668113969106305966947416869563582129187159017739792767627275012415250547964412833131880416763226084238320685496855620526123783954376253491076342176530287425356839469690233302043374917184770472000453050584074249603109392032619621700312815857138335628844237221334962547201388025324593649852675040711540189122947228733050644628274585843021735304299388985781314453165498500884932772353863847740508090799448984677209911352274319869269567007608604354596252233044210445626258293790272937830435404116858732875581997316313490451237066960719309787857128885196620449574785958379116560936681873062997510612956790595938535831922582480296971851732257632641674244046518947980344278073288734393357316066884217691620171270024424532752344887163778808608941184168977225031415022172514494501818868928415140234781616475588375923669677657365001794234836902100342762623402687261248807549872378112631309431527662101895555303835686308986598601469635613695152549186801441441093578781964826507448808232589878628590588319800824373969359244823207042584630956538945770177147068871351717270266884558280237055169681463468118249422743275471672735639837825728249590099976310718056619460396860831071931796855199525486166858465446751908478248145737001986178337198658353029446306016533575864811043391956338746464942223298562704614814015072731878862909814341833789671513638739062536320119498750276029457107619762283276238486141436909478369135908274811283466696585015654015308739711507299727405782475236080377892041072825348899892462439395569189409678503363500138320030989278647692823115540643607103765318037059859850724475972008952810243176266413924844053429498506544749489116449793932565421795055016254259962383491309166306088205815590874827307158716343638944537722676018409751476353611272099231513128373773041223026368945230170131155492157789000686076186603451052153350781682257362514800617126134667920028056539277346252540951885845456376726384490096877487822381823569106749804230991359956557270721903329901805783073959656716918200854596529930415313367248508303036217058949815586481517144249858633948617385796951020635224463072236155155445366889169717041792185470737280123806569457827823833487793982398157242702013831535810138756253143222143176596544549445651796212495743496000300607748912775654980037394486645863288068365140245577539967444464210661966263797978186498207382278510215682701222512540993138989487856779740583110038435575170153644665501347490004142184691752472558468496003377656547099806987151489410581411256137312241821726857589349373703573102340371871328941651225618802613671166697950320715479346910751006478779768172818102616388837640399463663977549344341561166956598222007200970174293049799193134037550011073859508717565636470767526295102499125970243149102877976018361570317915938813885950792705155355014351534163103856418795136893482349557964163968260301426821228908284526090085449089188316298246963445281240820186993798411645082713928718991281217392711171107859704249730457564397779300854729387082309831399429487925478118652491705632779790281993751689991810144282742147542582054033135993661294681396524635631213036074302364499396770420675086814594511424749023140039299102713810674322447510025814440166736439314733429326348650603419781822539877347835169656831684415428546080103537809246265890650353285770238860646827752471435583349439531662502527016767517166127630655954642468595311771592548179609325417030421497749025234358238269214709683323828227372088238678695971582085434838432848975758287419742601590554699979702143166840873502328676910167036534994547071153517093523773924837806016270871077976210064254653262285601523989366241401542408943521495650016542515709910935945614645547985391171222218141425904210318258343189404597666378712765571902488476712082931422344438018858511465539536946486170630106063677263407315418040732153584509136026444613531635496067771952829062025656341118141992391377037146164050685840134025010762812366715682106430478036873859513309515079247595446936820906713917819325616675952175914690038053871326950759524392112168287760686656843299325468296720555111572123724967321721390639863270569043283649121669816049166790894260256093965204490467677558400211672441968625340076604985472580854003791204573023579293129347643799113681496346530491086114061223417205897645986628500518873687259738722546261209060114196358248367430925343281157710326080609768535361286081134985188972719134974792121930638077013674027797815044612978615080628515890447102886484048252719972278016996468571955823920545760410112958370825725887623912832840589741235813243159323940813224599318741437851345230845268283790406992306882960694278664614053614523943070408367376818307688597444266458251359871006083534539947024842676349896474995671414196239173757726726216317105897513463603094995170649899748714040752166091047048599528730810878730531898645617567055734829435030734470344656752906869110534000092927587158466528496108037557581825856807633668152688295207057168554218676831755237527206334175119553528436748140982715020183957073416872039548461218093241902439062248146934560772029269920170448013123608866940424645556774286666469348364214470861331923755783009483682061409513374383209246279386222227136820607222828940234338425211014862639183849308945301635507209524588479532039178150156389005849238601221433147298645983512946417193632522818792233529699534972918065035436695703290242069699619228837717889589132680106968937304213390820596353994094927620964886993986705280138605728172607196430899958363569573087664256268885111557999582194735199826089046724834553118772887703600626572350745675208081472022986716957459476785956165123828728366681778880844498684123121084077570146134238793195690673765383624974800875407725944393362194357286320026225999110902342184728197041326938712253566638020677898519709913205036003049363006114539878690148692809407807256837784500777917985343166517071581122576352101169198909055468187634828748935787620811795789333681532406629115110305536679494456103221120175847222974510721013475823112592995920112826297608958172628772628669683142212008686964208502776024084726705182431035686496120487075457325909887717884277433552813155103476124996471556216236360262442807674761237739464378178674958786397399175718686181807876304347929317850478949862057843934270980217985826123863681062077876864252940929724856766393972145719384585277402902509368858939305172240900607545433976627740663969372540104153601153001096662143823677415866229806325718484555582118166493904549880486459615254815194027438370621931765345088735348793563138770999029227482070113516953608404548411290818841723755105352100150282917499323594702856757343329854086357264860889248078560551156516668559933451762919426871854448959416255202027173775066142274642647699297993535826589276533604533092179074868879803035348261577936705905185988046017963630728507845784610958674497746169808673994866741630378575108511878553060720670663727303591986725812949428548656796814207446776104128965124795377751562055037343422017613039556272959793701370157269369857605341283380083875902635711633702423996711510304481286795915901257184621007234758503966959035311074557944612431412975334298159585159792746208614943269906906698204047036893323361485711093882430834662468869377768605957968211197117819012453950209629639759063003298859533360616636332725496658848744222213887350503500913874838550532636417146693780657861993730188420278043442115741352821220344587703431735378588838810302521217646447279725435411254158262889591348819389626429361834985239746160097978641877929784434240843908750020146226650147961481841093143306851188482861520332973671183665349220723394908387331311933514495533971487471712670249942803936426014985188086399694639415998542846072900998880571042332662764167109583780087932256400110953506319733925043707563117149810875816750672934786821039339089961472047748158021272619541491703290785395188180871700347441487884228478766224288718476786763489994048372758263871443442714613609975080332483986001630356094578039177995609577616339509548702625160751353377928786538865615617594447886864043181331142471757994194469261683536724948774462664663153952238895738785981107326298178682824248328313422695281428841340223413880961887957699011741489580963518050599924587965781867855634362359939399708779950944586245674334896172009839414040282359930751434026596874282844863754056416415934363349243527055199008243191112622393884047967220349498593493895903150080698544434040567600443711178635104923642505143606075184947055219910557970304686348482921511415606374901521522831121231952806270229168897222722889888173313239684009252086160909711981510376038954859997065651176420863086534698042505514628879885500600581033538912271278728900531684396854137180778122819385834883686704003664600310785820824733698293181092795120978921841677874599346426039835561087458026451574437885369794408807397641102620013937088050190050877044078862626512892679456786100106630506999034959181481704519206387789069619765448381724568435910839532905407007928266144349219667811836656299531101856740473306116916728816829932374925374813063141753532520881561140008487835601628443658159776682966919557166804481272060597014550699560573713140653314029019453841526760119978310477679810185594636325700809136030434279385630468548411415618474853932540548879310405694231554239879257116211186143956022992553240815036807790730068244883199974265323311378511539732047896718568534176721629200668570529189863759226960772175637382365735394743812419495680148014433866006887271116577612726297961936023852311871674937268045631864658930932868693659522434596786525164947997963013355556239380476361869297871953511407177031687841652057724709273309505993600622461098061054191903631006950611570997740759178030587646769248761851563358422558697458717082546216511217832430051271670641396374920905044985905554133458375472701332232456100204976756224948958747738365372783739374787062640514700679333652977139668024704019744311929393247912511482196005609499990406033176995753635118865587108353659847433067786538002898351259811102387881230977917376754443531345174027304450825979140627523755154742941691346161042259059401573391561669609413181913592137648573496300868563903525529893824082700006542050657243764468545984890418234636988013011287862144337529383826950870213968325962345541617229733030386215942796990856131581514508987427367426110666149885773562834974529961136839401023101782724006071214032089913557899807989795930736065250171156846531366389596424781695855605213685984348074531170379176417627486498172982237790280626482009764575145815183967964390528674998375634241247602359214282623786725719861960704181084675679912100540668293536468896483735832671891222756445376844900534225600739489066672740853770266005294625569901750439419363047383576611347905706652076733790133276122344744948806679618386599772893015083582969902293503025835236942927416734757245719851800895796305830822966159772446044625266774512445949883929631964275303747277736721237934722990368712307615655754322633084124266060558677991249407858214963885467100619412950154949429984811142136907594160928118388898995143942573050147847039371795825432595604972349444599674940030468013627840849466676453925835802592589704671227143451394942380687693227475279908270303405179921885564716880539651592421281939976236948388729572931892598573973536527812659350525744166079506293024997717511466096668256024078933605218347406627274435627762187453573054356071617152923508221626858079609044021473246104140599978959673680600080891259593029694364286800247539025895397881682646344732819239414688493705237152786633014693452310667545997083043123536876934322282521185783976144446709416875013915453727720410595517201442253078210249141086333431987800750961309950142141969738301878443119633009255640740578132907627610284856564311248002174641962857875207867177226626853732460166584291514261176733627447327776873171498785413893442427418447995108970650466760429765014786281160732574376692836312189924197241558289702831992314143974397499252469034802788014060334725945377296334657709974701470403696945463124631111979520524694079193074964808252081095774305068461330197142643421661765537001551085055850728072355294728227280202363075393786808870406563161584071796337252637369761508367670413440159894165055993576381156946830698773617076926885735175335744553075066952228964096538368154512481030325462025349466742336099420899448339659113051907368599930626834326772062941062093161909669664147684061943359823091561523079050291627485485268428225495569414258075154730501868279022698450124652884890529404005879480317286584528887342739355852841260029154238461116484535199492375650319294514364723865720757639625186788525598653654815918435588994094779119566407460555859368336621296461698818994293125516739106423573824646964344812830975945326249803349003842183087488158270707691636889564952329762797602920248256075802691878428053383711425149707915502830949178399117430940178166614743358890727348664825405828851623412740798442132433065603506361776139138330566732897732792239023309397266922656253788335400840299172429531744094330899301726466107848704217858574434712035963705058337408904045307952927722183763959292450237702490714332975881232378764373019538483001730607953263357804861723723423953441407105284702294373433478244889009923297823119695009203235213832268941511092993714324672057986948177381590036089242925133535233386995969667176981674289755245765225764252365242478860990400692462443958794771246402906473438093086379575947927186315253812218535986670110713318781986304538370723494417575019511205746118230856320157738177659351233572952851371451389052013385909492507782697377363896801984089516600072341910387636014748162718665424031318466825971071211477725830927283681789613465917846554784807016761617923858321599944985534735987595527310200644459369140908987311841281511480318769650171427061555533022417223215951093273467005704743414336187913550936518124385775249167883283144989902710240326230517808484270335575560135529707104871615277710510249658295440534987961569233526154369670730590009961918353958653355027954269360747209745270052818136644588479790939663629364493039689793384172813079785764982287995242552471586495406648178164279564075285652383684490272615478772653731211130144859520176364057165146604943137995332134609971423718997648755808241733220034980474186184326426150849376617266234300895788333367036624463046379510669338282494817623305814345556181045923898871870426788403181698426263060958172020054059621532155675500041422843311697675144320842942251400277100362118420020309632470472472510389343342192431144412148806453745611698701753680375841867240088733526056117548749198811291080350615752723381729660839576519457098827791329484724501982748624964852441957347168222727872181680402475964528628818695978382798631097731142396021750904540001764252645544409010415903321566329566213301184624636014933323344741307752572389702331582023471448220479687527642825195909520223985513679894440718951429014043844366555884467116914984236804283519752397345434509391204743974129071553764829129789117237454995548912160015490063545832751639701744593034548679283946696991404713614666757352945750482352305391427746539502644833159468402561579189475476322741074979550325143585829221615441967263652676196446764805712142685195825947348879591582172121820809903616255896120152668602879765783228650646108423659914080084417567520159418899116852099192502172946953972971171937719188568400015242948122222818999052754057496892188564262757303211412878056073439202516038414198931580717295595589894248392156179753994857255528403179081529277149171885970627178785382758022349108086448924441643941329369151167247307848187246663927441719000310971126364391559094018173843358498960558788885580984524400630763182673113654185117871164822681492893246707222079895890735358881025100017667657726908535965484388399704955100818241586985214173852951303284905142346158227754887730099678814696120581631581299468704005840306622560495673041916663584332618362396857015391711743733681765476580944734318096081786229174316750464905207855068145415558766326107005514768709051824185086180395526862023961564692860030946544190900200630135260011202148885383242526688548548437209495074832282110045549634492837040071601237084896644897519651981298957551147181725606361682756736702860656478488252551200779020050466019316124560363503280258685034378619941588690407786199538173602423432130962631299254212176971833706360616506861556685374059613161370477265325992349041034617466197401174010824262419832209880752581404955682944938171397154544300508338868304611027439699789767216584330631986842325864616290867299748173534613442243785103306808148554583501471817638099435137326959153003960463263549359907406993113485441032190553542779159450661166002282806950278028916654556664001031132567055075939070789057422383032124101831887724124936829830054339985114159821911073581117725901652626231902426416656900956739182033822538172114576867283972610554178495946112345770941922803476395000003908463616260562338358593369564416797680865912148664683003035514055058982528125035685997193543600822941013102260824061405451133213985267039907339225649865808579678013460129995743424205521141401219326495165287791318940869683254754776906190094967594396277960576832473548125520948156166677968573793358396153133670638135352427881304306707035119695321376611461359841657903520645708603440461027544202990908383036216738967357766442316557479506903952888344875032641527559767396625637069070968951672860426074356110459691598132778110513074567572887630509692067178991858152375531296913550515676021463497446243304490469257229042217010140533304943157808139975000834914601020522551172640812826261294018253650700200291323692997326278779733653669954020384919042115542247240848513222762686610778524873331531503359871583429005836033222939638550083860163681332314901982441761658387023382995271251520731481672019397298457881863760310704543733866571357737554468283296523292175560729029734181901690352189694318252552952892131758123000967045780339763110485199737171330972578210994760490107136329222390529276906333034707322215128557330264277630408930886404860107370866925510907004827742361411660861864885261547773092184328425590947766066534237705235947516964575056190701840565774724814185475038397558689583049031655858035083424556791420352068071444523469301096533658647188914306694949075428458440727067726423526397939094360701067911753593184089937325378318450439891638137628652683801170619838448723243517278054989745458063490501779930345870350653794494128412061535550648895079787441940232936893305109040012779834096769749659744113272474389902748273542359574123087682541190673762472088173186497117152216274119900475710306270702407924705548718756949070740663042528958125526117266912156101208175243167499874209210670843745466616909154377788022983875200682927430465459828271519095196637047393842917286201443864964547259852221985867610853989780206934563455964989273405229201126564359162743716835751891904739702247612234853916062993883556323970293823188984264402836792105072479309045500703563067825642191490438595970563297350949985310185591696982150783476793294995256448890492006190514607229132347259524640830112494499797713138035584513182023762378316370207941391464226726738729731044214245950799162856978643109798170012412593979020965672614588437285374639984732388043156347415844505028104049199946729686502964393919698029147545088545980185924877396467286483024209836777529468997805568989581085548191477072836845661838637481728006633820314954956108548884676814861555565889066728296687271729627303901530090776446608837379319823415606327636662749072626571125604504759586925408659989874169211802989160568776067694285552005560364289880407725671328944003262630036715062095571496869472919285319598685038255811075727174955178817339416217392295468421142979539179950896207777381569266477505078664588563787944557962655855055285609356508457185075973613725518877768967663683715314727439028336317917835805018465579836074336360644377471507176848966717794169471378596130637072631221488764276967662065561779893222915555800300367791162114692587576622964758584200858263313871343252564344694820848955045704012990486342807884588108707443658247606720949796790743330364758798885069312738385049241481299563900284845601897678227966114729197974905746544317286245354186652254873525387350649908482064606699347079788414476265456558797899869639126613948983444377909980957216663832737235728261743392304656239372818371305243811348001937039960214761137656178878443468745160398882406150877983510628759758500411516843130258592153051603225409543365611182972042136436483501923370912248336282956404380194918365639064413529997539887185136412090178271450017692348042048070721055626273789946267670066340541935075094605031168013021853295715654548668650060234185600945642609405596671120824191671096681053687701638975691342253593608380102159982747380928062942155391804271374844763293183327578266209131875969928774206292660015645284114007927492784919102087269764155353506846891101984023555248918138707944506853504948786250420115141364943276671156839707834193558197365655019912471832373710323247343265702814958675805560590776467777277285471019409528661285798049963469539190730875329326443041457754007359497033339928353025642797065141198278663691581862919396741962523207853668038521811567900033680048407806333115762284538205653486111311290495749972851936157415540683166967530699569828340924464504726078449233647092637106440073107498990585759432688975603919616185040850176090611154354529035854982509459827931333672124493188583998927190633656458384932579571124218448325388198993730748974266220937428752934577347302710541873125791434117254840675455121358871950636097084459976271332754915867038879319806558305313438581687119990375537354698342916439927865372469422267097719206380923044292525406346118048862675682732913500505599435352446225708612140423298797576344059418943271071944184327316118289730734287639197828851342089250010690697476100356168096441512512486524168052179768651395212377596210139969313603971769765266210979599561388152768974493776683156919461093327716664546994224662967129306050496260072781922679705372111314619413820458618539741931992268993796291750480908848957094497811492478124532102055747736850551749948293656060918910536416236088400993848098508771994266420038504435477247424656777207595306292660757061473491163004492827834177685548500650130376023828219409725691577676641757294401221359554391987980946408452186201360455403159357143930024467001321129120136772275250923184863980820508787811804557388027069771410215246778484554262090571290936882591205824356390269972583576472741721406714833530568708647609390692605258919665723281402782292544360616355171725407312747498205937294276162104261515413003873540959022037633286649170913013660946505270580901395669923532084383397063362520615473406945178208952430505432873697320462345260534669760028839529157540893753932910115702527532018704540862461245436034706708338117291218323434530142817225709708640971487297683936259135518263512837586906310046893980581310622364432231912437897019345900035311204685175835668965311734766885778985107029527684076652617937101404130710730799574734596531565800225975471811385343220306111512455617498849774886835931563653080958901180704396784355112742258763046121017545526143616027282501578618038074270700059170275597824055074879114993611121342772386677918182467409491353568371428169908021924025706015443489136642830052546704323312770139703358479006838687585419551751343930650424419307423394702255001536177925241443179052696474392285974029203032243819968101244374709598881529365826065415494228170185269486243461676514430575382704543858868990913487654461334570999633155437845699116197119875814355888606651032113795983203834252814590112732603607788760923379307343172762327599699573898705171590009958375454091244304864931366923173202713610090394705877553086367370583430323365385015613740093096030598325203007663178187944565559682054592303601978354141497612341930006962120545998753713786326483679200889992141395887145166272403546340047029836500480249358770302248102110014457120201390899265159761971260521671200088622744845834502824838788672606153665605771181097741764870779408434415076221072870817579036781423473507878847431803564182617265000011969912989522493866834467185413941791297612171106894833343286021918696625275038294149068238046780450213302949111772028512340249007911603055257466615610304122402216995570192549116048210856786561671894218401331385098788538828919428222525213608773652847971544211385854247804141622650311501279693827902367310698208307095651266268028618355123764371801755455339968725567741775470143534185682312703341584720555473670650181602540789742921228915233732534625218164339347137080209092771280993067964137313356293072930828881457430698500392178399391516841351406835960542708638984460998512829447089738885878936917000668781275042307377352829500557146042233436885339504640819791233194611513137523146549184870853211937154006394080112952188894044024601198152397871845263822290580140344212901954103396328563478852058989873222092958009329121164200203946465495784105472493819975770387123876417078906967179213650570278168283538864968803044045145605501823188251685843653676939530832463161346176559630363785822299681395624584095207455999721883200766181689091337530505373859222674986559990828084739082278230858370587475271545340832457506933940792834481088728371370826767029690062955624404556257731929066370074014443491939646426295182725195916886799065277262386495439372237889208379549341027706053127545799504469652126234505052007697369998744574874333927432941724340842917712395986943045973000722551196619283365553906223101519858925010565449570538987215159582220831058550432492307170676250807685262682370200769917420169020319679315257609019952840041396063562177197867408324701271545675166109219105013350924174237066456215754751766225650936058720443714024872893821924605613594084535236607090338797129786780727822643000070626905177635358027678304838209982759732396915119246112632273499634839031591615374781337362284185867057872883028487055811422957716791650127592504703889793008896416483450665598139934985570751485959136677462916289894259642251580411610702527762054063540644508494499310045264393581583879335377242397552819775988691599068825271213008576412465832651178871869427446296804742864688978112891740937025737560854639460928684434857766094813012066521406459380910475047112801283421573595490601123737537107878078452196071464921445689305503367957697362243324073251858694342180637736812125837471866242932070278799981039132739996638324412178349071742498526055683404078127141994647122460175190417947512559962200125235459488579315819705825989227025649329886078448482953351126659362150755113711066726728251127697479410136662567726323856088042532389113868814683475269361495466931302235457734816949766540064730561994143915898100867740211903428588960933696633641935785289603836353171475140431249638266170028047078509211679621188593398695521225098022799776380438258088827601072328824914618227729908002655098212699996472480887733165884348901536460366950384400655346326710895076976091738000911247532389507320376138082645542829032263582073990052655653789106624163125072906992882624899007990561727908856477052125058767617393118415516851352096892341214496579655097646404161778706070229929576538507681135413048409316993222092229649495117191353745809312838134365711181868598765216248785430154216795894307489664170331668929111101433140242891335472265411411269210476376427908414445897905271576596525899400211228948223470657774028964911051141495893205611264139040353761405944626783289045197383568197129552643642331822312754436468922641029281444242329826052526723419418442506284413504969461164789904314919181210927010603506596407138452099822621050992363902600092798182901972944133996450594140908487189933159458865776257106816030850346817005110508876034674488959319429763351917470352098001650451875136974158708132286920455372956976718059070986611112160970993847483034267389163051673797153914216232305408898454156393789291586440790391584146335665538136933949494339446213520091467409101063985405964481162763902424498508047288917004854343037943878585477652599264364507404797533891744399282204952126080321298641446509393080416276215324950393909857694536177253793740688703645047709020066697635446205897258199253980964327146854773909987643807855508262844577848741137115185593031785472969866600859566267606445697922505234932560463583639187676762357765868050545979696554811339346552527896455711770666961299336650631167550105514505663387263973517451256526212345318052669814688390713070700141548629091031077612075245249718057889388721490584203721498944752624274039202153860217832044725365323684319618485848020588819624617864389040746358735386118084442557688977450169945864744420404282335397940060616738467070325987829557176080404154632840643445993614022678283550010007807555690331567516688846750660794734671897167665649749867606999807326296813913591784763260009112338830583364703494873083502789839148059753242240437510844292125936788875946797513539490734803315783850461219075587837661902588425689485873532596088019977353808587771142237646625986017394346003490019668735099324626903755114770727812578485254215356474590096090601312862553191913640172794310786349264218001194111217496694715723638519462480867908742247689029085125710875544141146412200330698301205319339103260936366641285543018060981262896162215702775714656872431123031250975150873124640746626439931251370699782651020046659244720764494298654272387708086592642695472406765050836178355833068322459406811133843947007585236779547840430327198940330548854533664113779734957407879844652664278930135796279519356040199579938019920251959715624133915138061487229311992124191506052919315161358781608593097794854155596217605865696315660719286788293656079940360613035698958885987374700534743612461000761331176667397486406162949853321796871029605465210116136194410281092820782081469942820088855100295757179055459851566315008402398389104594030244924999770826533558974063729568207531782244985353629343773301447292618454556200390326000642966014391718409701948573298686448671280718570014559549781318323103115600796257406108585840924328640846850044374635703246163536145081625261786745427091517440051819515890955290707293930383091925084789625384115851037609742721103924443047556391578516852964211114718638181550092902153256627133553731843892132787553849701342293070087844635742428576735398271652827302355506525143603488287059600477790605068919220329863138640534251915791637935651698935723558877215938334022942876689826215621237663223126865400820684822297739838047688730506304108885524189897977320467228774228251038604423486803477710619681398864114865135427163462026649518038687179727290663129290626233451816237731829094699421721854395822665158796780502746737259223102087679235583331449769438152020295087405505261947132778107179244441229081199307254816502489028658199615661210708496792844935744332404189161927580300767868505950268827826814019575528707203939321918942006138889608494873172111042979312822633113414410349128127867141837844363509880470955280659002173861542428336836961669472350971955954347416373981202652499786576400379206149804828828527922901990363832801260545511977192762593010711059464177483245427332367967458388347046726659426126854481251751242783439514528311033729384768834875621541710374105416523500951078537398139434386762397975128445311258155931701044567469863171905577793700007327971585694415490692462187268083197418252739531662521004166914311683864894211182954500797756039145121822894964985750335020276211611225484746753478309129634915499452358042807008795089403418317253460198222255984508278681539481062908757007646454681710076953559039551409163593941101358637105656055203254614088754629140274264862620278344432505052111177216316396795292320909920217918183860319622061982821362852851550553305943420160360411199859292265767580811300721300174863045198333307392632913765167344959415218123792738293199731091115500942242212332992367774055477219434962448966956322601681119634615748126676387732313828016109480244080956020291892383764098794906263699302559637194730575756418571327661986081526960998454263510010468251702032450330803827648550056937591816389095510039004296262674809906929201016473523181412516859212864113599239722702406373102721682437960918564974822141447009988430371472690220615703195725680020505499744697732844108823082965246327625608200216483031724314698587094556907639682762995647307309455972511106582836665495512332023181246918467399422269295931596702926738259928823225841564507993682654299610505512692391641949809421981178192213195457582630382367613375562128638263513221926565976805193175853355935968371831540554302999325402540545451752135078543261469952396916187691949153930399432020930556604459172369250338252240373842074035577756373003637916668582117165143964556932980553774663996890713801407671446729635527018319324627486180596728004728819667802090419503581075603743413936355111017086822784891194346479962528801313543370378324513505720940227874452675037506548709207768570246302420094328074264958211036821736622947961911207067925343410446118152710755184593709032728206024880240104488764149867351495147004942258964229908727844800831711121914764893147851876017956453786614534831976086659260839060303740170320468142519128825497491302410481731913053254837613838111851036729343059984443829117807902916102129187875099260533364038047062022129166984751264439146799577213782576002507782901604631151441776521591636676275784359997146287753747217963199917516680997598674669165618234919196319151342901442122111050658587718059016650879954965935533597493823074055314684866029453696869277485645949053412061868132599535586319084270977641978202931095596987149221642079740723545905347334891833261961529696350728232673959973969383513809300932953468553205475314578875742469679147799528350950780549873546426924757526951713797420404779899885915571079465516292352287001526074435708990399581201327265185706335873376361734613714995747409718828945783090786059921717236829000792801016918163278873722221749383855546902244289217361998127623131907164952499863366980762998646335355964032564064956955919059514928216779744786552205202705278356461505326412022500478765501440057481089405794947740034233453830971045183241215191268641721006387874848599429269341436053386498681538872286317564525145702375093341263163516449356368696090029065736405394722968085581500985247468700068287924033488662398075177298385117269756595487009345069457742102932831553174973121597475846249627866641467823337573126714057397955068183464871563728634169325673660254971658615375566656658202224176023895775543925871411363891858736116644800600223111198111271827200600058534063388888339064180365164396277520623399017726624154342369564963713247008721559419168207493817917155374518817794637952953043637551747135910297317847774952031471263929149760747962881618982224733629780273908192277356485437853983796296949345262257860012177950031648364727453439595160826529766747466779649591964538006778872315740714788031827651679424333030742724786610724669223453307849642126131295165869087208422631716598210502639770953098941027038880747482060780305782528670506429161683902510740975855359700050284170892362439943141191670104508469349966179224309037844454623392594174940922314082015464538992802867509506578517476659666447380255219678601615635794047683905506924605154023361631255755136186592279534410960273607817702514665399739269064510259644520224164020701637791271262225304825150716899306968395210843924231659529830195177243733073462811186920032419308899907944241464175228582401714946929704815675316342770049833878497791759023747173449246112914060588062716117252848670751038386794420256098423397630853145599847029373306790907651127627805711287410674399660473128519033695581666691522441745108322507149678403636796053166795238539530802508930701620271308945150033139493990648202567109521552442544309426444336853160653224167511783074230183703684195675665598534099363365226853934912354547679724181440172503429446561376823144845038788864834472815667069497293020200075743066640654244415212113614595944830007273699131245050953380775490853301495546949326691918027677118718288262981288776674360829290153478754347167340082473537117524222753193225452240117761601485954054458995515740324939957741517134936530799403420429196548428546062554774151602648811233512050464144284453278089658029390008199122213720581076340821341673218528017803082268871543897301328198654046442684757313725882859951909958061558567154352997397290378235023170976683351052617440913837535980216310351386253340274519952616881672369115118357701425139851216991134503654008504949075002493035848684188531505627186223738158864157429309213711297086565842574012344400999495916691012929036912657405717909385061400629992470137483312665782304913137514403951666143549155298650675638490997122383511605711762694395854310863527574169227054409510995214934030291653988416045620801981225810551523209481704489038690208304053964378325534310573729407646240340839210501464016112685388110310111116998164304061561556444578749454208559183174916647567867607342938380645251577213971776139188719012621756413182081219369740475439295723468774782102778868280553315083856250649594041699371572801404780556909328430322705964355166382114937761792399809415036603904724919223178818551558942822836853788579843203110575535938587515597938374044178223281632644454993370130389087132138230535764035262894563646485556521850927426476596055156433949168372889892138326043317464862785986626473786592549204819544857150008355310389916032425920680636225570009347300021108946204276784747982864134753448633466397398385489423785890726319639026681498538314064033867997120732542112321767897041185696916381074276532032774119315841972284779136278559444070553825847168636500011216053557872128609746105678121186874339590941087622898095217310121554054341323359381732908745247180166715355511659179675449628721210368293102270951051601796380339411908755955379028186302145048074708519033222282539701300894045064503462195123035068913834235166542617377453040978003779001973420419363854141768466693783165467863581760243356176254937378069778079106945888672287009993495669935934602465319336142149611701898319755056431700503995373299477600295044190114562448261963747712140360859391597680164822907191092038668623303605702927386666420374963969532581255531811917942785930347068173963986287233085180582015663944528381783949947263305842585101435981002156230105192891426201100476427556796656655435808508880877048183608538229023846695348280978671141262052382372751031140843364002466842514213221912323008604979017665526707605004626778015824033788771607609542523751384612470001708016969087853854589184977237887058682048833930635669932185041958887081096577653645975623612745058989646827202534440621757687118786173333929538087806295062189552824264987628088914286945024921609591510558147924206615359685263271540608327683979821228699370705518764065488025402231215526757601097698270825907907936667544721531332319960562333205211633490638333347322540387621403891551314125690805661204541501001523093086422257958362461308044292677775091029634659797954146687920493721038884068582678851986723893606629373047556063398085237758125838887805730067360037159854870919124689444113724663981976288781920790800182175650789256900002533291543844562016130967761571544459411687226658785989038997227585901400229266478944018556572605142783968877288988297402297317383522626024963916013464567272103304947460925904756739969502616096832447825978080905658644996510741176409328118401076719264105530832345571103972046720900451462826741657150781606763041065883048128677688185337504533198055507112306032756883149527427057624893070481049555759976929437408587400672841554507039501609193828398096793740486484912413822677633358110711651104184172374149733449262367597591684527440190664267921149957908605058083496180614148308170296592292304694428734860198534451448813111483363533685710848497215953678521445583574399289595378778088553584736483923470010695824945951030902618156343258188099840746791072393210581351374465142808463926720263262742129697803494587582904617309836008612294500251606161330848723979395895241609809112248939902151305590162008416840448496493542240995012526323006454435054345282296121690111237514699881550401371947465493800439148942284883929737323200512267489135732973022812161872644536887098578946064111705412183229974616690767176904708123255020382975458767184440008163800629228801554952798325449145215102308141161091593895848048758473303635701526128761762830550425828570247811242699143037718109669560601109584905070887635851088396424695161702457092499283645975734771665816451412889195207535137600772517298593750233449208517214914058902833773267015350377644666859955085141196662423956426277613624669508156426220130730244696180102798995272957199265160771943742017790625979282196985270250112140134890520491194191081158380399585060662495233738132764869054097950956923881905898671021565815616909754614558350198699980652841369920780589324383202454306627733844117845403732734882157312369527934880448580131199408779612304314691903913652761701257588432963767052379278252937211753898555258501182656193154597016131706631634729954939071991156937676828577483517330830191506275871569274162768041832668337180248567171178093301490119303183168310805053466904347072202859797505472156813939008859309957036010112866433910847683485691773279616289374164414474596496038060388574617520320093634380038837388090627980797407465260676042443136417931569410190579116310240297144177710045314139955176511115845008976788249656470370855726167758877027853425242369153966510036632085923010364019171565254045943526333592555023818544342893876312016886839257048849714494773109280397367878437746340361859665685643417867901696855588828411451810662497055765807827107694917582854431123504753937391283541188263276597020229111218356202953151303045232670873032057830025961724062783593608324325446465310368454356345434584865772335344992795341792276405309557010460152119248347689403982594760229744499275973000608142805774672578145653575905125816853229634428800047564302750715955528443584580016218818094700576749298582301638660371835901114124934732645835716129344251085319106513871229020799117270085897641961019123401449397770950310563509169737863555778994896641402385349615789910933103188744950894934771740937334456262904619795614167061791718648811399766089916747605715502050983527525886674215951367355963821081300419969389798334380094653954613505996147246059901640009276735473106587745686699226977767796065178907503292172268786834694730513871705452343215535139764771161391937969757621562048705022442988376331961538474487021991008288900619471228867559072739814428412818600583703922371120536239045082071356559470901076207493627149743755201010318082575538661208678136816551682340336563903304012145039673220334370072382018717308734892508920914359320907851792964836159118835926444724909992137527566473802279084504135651214698945904760716811704557188800354493591977332555302593741487717035693606663324332825635317912263419772599385755123040801428468710096207388617705164128104462981681001107524402432548127170846430690806921495701427810078178121074786779788762492640071221420931036399549766582139810350492692635802381812346318791321432597495612484977684518503528303823933424128960682165332181964325985918987325796817890374786226462532592100707955802653306819253500527966171149943344377837344248479848037570442507715800505639674111611655905276452588723878868577173850775765272572991259585287910907141123475702532354900354277515576403000013231121175717459197272248903914923313854653105812441988791875891443925549739583621817411073440262722869626196814610704533075006990539573697311707857653565674756267772429160811970005274090022683305911916444234954570169058932419826541421569050992102772769939654137043139587345842079046690201747628620508403336014785255141837233423351166210617449552088705376700648216723794195102219479368928529729969202748116657324695933007660334673828685148817538237301563689611961474708822164964828577049213295011399789559766285637899378370314019580718241568226505753787829767048388219825762992952554711573324396266720034702160001168314830101324983675050370751898869756630486656825987518112588484284380188836961565085238588423650898155438235166765441203118064963903324729560554500236775216651689086185162548161338529084878236199518130480750676853436550181942147917198623029990700436217801466069376753654700950047247593184032885840099883238193899303365010628266082262191147097153120963723768352230893680159308747686605296739234735634375169028218613971181813369687630562661064521682028442923918620414941409297910180882062010852939707562581725816281308055988588206277585076071945333592681207548251637545441116418321284596089979191952459852841073044239483261520896921988245311424813088223574405079790207087937251334444162993036307859202198902182097090850947852336826367635217722939850340144658108355289241917537191928046225285899003458754548508460591317494981759940509171697748784944560173313631663461710899982063270117869061834516269217187598430241829131856742740838980622560091650153551867915590738050793986608430019851094737019629284961014540717133631432480933034700730266768766191720572603938956405456139355771989125111663895460268001283267064427866150433187274174946785220024933269140673226441892552565074239418997733683557281264730174129742592814417059602919802305291963973470389426281685194970482203886616921602973236576493765318348541781906593921425509296260252015029823839472959636578582315833326552989487283969075651129177060841704615886409420295143276890045850703392361786373468866759546226606476756785793307733342386208779627753409188808628660964558440678775469305666323838209778307357918901026286442092507723742684188432102496087259708629135749579477600236499281656908972703717227048371294628391587758610812500484425506217901934603691346140314831703782332128038797847791880324757451930541256590793646964909982597116850691077608828279907180927023479455485635857709066999713982171855756675937912338562810679211395448627176568911724174423525527111793863602748985117725107425542092842644573853811668317730253709752981005058086046757228655193195012404819902902479238369691827799582588199263767207755808898341373834990840952189626881883394404060275056475091964023145716708006896060623665305064398450941347197178069972996650808589563580137444136324484192170182919609307789651311028643106402725580144355710212152160270155744221571721556468113316106253188624665836518509098573181553982213700689194244675917902099072332603371505830397721110285798578685739155326483700427885961153518811315290675216155245500965511422961139122517656865635340762764659710380468898888842888865440120369694224156145182770197368107152541724940828239026699550787533305421278870648829623039319285442476338324962111706959037117397279046707662868220347082508960938700315200188342651997501804597685817771282832468200985511784881925870677547281038336017827508092633500936056954924817039212472984503612255173782734831252543941778263398400458088057956444382131155702302023524370024075153867327312365756689637345310671286799778988995748322822099217510573656885301398361662148201235656820473210516676199470785417341190015673492120870774786688289590523154975874862717254984644219887538959581584426401280242390891653251910374867346889587945657647177507050707524642946364391626795395730519432115663789027300102273415422115137112636899154181738460387228329572414219869538997759071363574773666871842232834588502497709486436974568755011556229424762104780688046409096424498228094017107796634468254901569788488722095811374848821307235063154874416750681546126174340187636852562840147047447505886998775293451967471129160074233493306005127496586775878395777022560827258097944837336216098630396616648882649285858894776603640970562082624329623395771254137165197404211814237349415359599893707396928227167098079692168147008457603249174967278417800478951175269327179245625660987977680088398545214986583699317889690757361759015604437312980938746848805030460556302154454867517653385735733784665771014971366261931436195688723955200745469328543636417571332561369504294670207411774321493107632428925755130739778429863981077302559860081683540541419406793928074601758680722349980774035217811042745740316248680168345071853233199900799910120798058383422867444362895034479249285600396906054405548369785623617346594976590184924487476728623223024584340411001521455608208712991523264084184795921832363654549146922771031226335578505443417993925917595523382014859646247423022977976756620058676152195978813473147937279671258573069975457438872154263768031183192959529798634168802381746773011682946352589595339306624829409774685705469315702756289296992475934326364724306117107944336415507048729653603689980118143003663019890148120987670963517387450378236993248700455040357773393980399236955657289315947363449357918429577113054985343842009094707818330580940365297360764528738352129865189180459739932089728219391009854775595058473019600007974391749835790442082027308055694769431116602047460794569608880729821468524795674046032021162353068282254009977612966604335942239321129038402156053778088685885584330517391716832895569809344797652342423925244970412973761142482952927083631397435284707327757168618793344144852741749573143973689532459729877812049298375494664111344628135290954906408979843094975096057118779039675544897745597096479220970135948890160431723648341693710878648928231429187423281078361875233609207423591316329564915068246088664426268951337937211849788790687333768485505089967693053294518038380803204664029530049506994158591607292594258386531240315819774738636830039251039147939394640916018873152144923234129089795333160985205084622184106810798201126577137586158470701267279171063144962911607824776737580196887196954086349942085566214006119862102815041413403117766595345854155142877830071800501705635935036510726748665683702343725012917634703451086796709456952564102003797458368623650577343011363025180444177811132578904260942786271929504967764398103797777220239978119724183772117246748407000679334916677289000503453868593407653525200252211225841906717533475207034089545258725756199055650574340736673086411445942056513415728441710996052013822430542268554102772604514962423854147140618212417501255906865621728231975974231825188831043705145230926259196626806762263988488241405577397902840229503542334606090284727638787334448810453790311481800910501108933582539231740147041237300520616720744990528753355189302488880066159737381140487845942349483188876131299468828484752182773463274356873069078048655599396626196283093116306091045875183956561892969079309899205335932830317887465424110491665998290060138542756737964246095281349286358984020270251794647633471649115130536269460545195705580196503449333620041726163737482260444518500025776269698723658296812748939595141497004910131492806851028066078003648979966690265816002823461331066284024933154213835056617560882877821632275576889703448568379215394433178586018336626270708515808903097935044849369216558030930837898239708772088581651323688688574388642573390219799501408856782332468193788752222002950446214929512372832461383785187700289691765674742362696763414922263797575326714988447652075876977003277490995040697443823839865971011964616044885075791968491520529725940952489488290362064672508893775646622447767585929679436332965302167259251565226574739188764128498097152761429112703943116908968627341490067955649020464274759366776248410450300344148680349404683600917042972431275522517045024296252405687607483566676648264177041762225780092520173335543012642155494845978447190606992910890052237699570082223528924798333737362560402888156352649108205716549260964539800196579740945031166820459578397626929192553822749662989304440161068269418657025585802154463439201515878734746943782742215148139783607753274303856394670771385209812508612460615898042343135172939060260119504967385485759885558728412549594386192662852499068842114605871081842881952030280887062959870766452280262246752188425655166395799791523597887826098986525928648109404309802148586486866666244805405472938729226006363070841902466981476939461915434194417484719299393011019003547135140872663631910757945914876720733452611238124643241221160860845198648587048058300872841171684162641161481133019115883449419084469367036964736641337454574007374043797873833099778794485914324938225202423899732272692463149627580345852828383726622956690619741778363962961369103751139221003113224197197984336956146471169527965708984517821977347526740023139503871972003617018604192599653960952808413115922957410346489656327080536752559019461090971540673810378294786928819417273054836711570493663201483655828414035718519818430731831552893724714803878142884587592894764649515354454890319289064693124767649022242115224561920486540967460448758409639152875665750222730366852798574746757670817089231868253957407000941366190484141627628585265601606905107352742841591436620839689502419008422484690422875518555525545435387245658497284308190842957724426028332488223310079365648412471531137647873590801347591830480695007649108635271119873747703079972237602243053158227957853102348586155742449181658654581141172012736694823344755947578578689069033991309417954812144961406629638290428756277271171188361715380379715430828012891035762316968436639414016607071853292546286882283507834886525522940811448302755638026654042906895429250773464499354717699427189525477799564600009845468474469433474863075461711982762666227197699462994502239825605685264714885424885030989896901943391360675781738961195791747948433697173102065997935432493647442183289964699209667218678560659837215666006038314469270389702774849986594776740624346292620041910578668764396472462596449608829532277761561492013714071027345506426935442328161548309532517303261746317442370245887089648278515254634169695546366471270702125622946756038855565449744493574089731025461159500210696157664265710222009856558449034206879212252735870436318173848660300622946481655056703375248242861488004331469112464552874535720792215308292436950639635066222786149583622099908445422243207460241937740971518882092546577957189015654315890155655084456309302041673037939203697894119509698403876803495929729141610100680609627670331081204561584020974384084891630396437901938581550163738241891742745326983196506939378812974090213846821136877660054124810102378687192788878756334331571325770532100454895670319809903330026299291847947016480025277643722984783416843831661109652392391828554439775982991748049931741813228359384247349383763101603146548195332519376359989637844502742374064092120356973207026855930346662311329266742016135217209214306868115142736160227285747211310790569827953457066945662120806753569446198826563156889579857365305835111145310242732824970244475855992690089054303005321451997914187467652854273227292054237591553920656312434438631222794805670359717006849276681758408257567261888141403137392346866082628357846662534741382547832253914984389290831255592373184454768926785807854155578951447463919663191400033720266889730755045286350487715164278332880343489887596609276633054729034525292726126121443348548643006892344703995350737890986468935325107187442190552789142658457052056773418358273502497255062054828711550089883232810071412229032150266532288235534257527298226431458917664518310995794503814876901401964838414265409993289855383842606480858402639491136694867572435065561926516124836306804437238874371673181532530130876769642501837251279473618441204114181716645753870803750413403850871539947771449009306539723271695213221545195005103883392376519154517731017066302876145625047038313032699499589484747572526105753856035519803324532861605825220673040124468374085210827291565486086117482707623013087836694569237730496725001780845464954583719795534701704931731835452162984352314446845274926378573964991647283602692310611627959161381739150317541547779999570748728620177945247603049589630314732072282184818793860483309269852630141023568990018466352920177278508620848153005936104916777620696149180097747152583839607222186850563782695475607275547557700389819622585419506094276769479851057110325651594137238469715544006882663949106323974535939724262018361764996662136265170073891456446515095728481990088930958176231140519512305167825369572061385211666380336735394221366619769758413920647729986213483901164375987840086319133136409259598901074347822211643514298502924824634454979107265891935533055707629947531519154624435565735695098938867072848156124739999201235957556866855507442019791491122690093771329038805803769425542700109639634295430014324001703892542085469231322803194596529850721457757155985573922341765388818954930351846003106310342649482830314029409965153356822311569301175003432383557786387856582933258051376813082206649489642918631700816583964328217621586012002389800263193027137950243376390965979475664109161850045075921817619450869303723842934027095175089807421175260969831638020083489128554062810871571047449372966348131497431117734170590657648815712671417326495626924328355572628507688847319029586294136852489068501067414022523469078691766648746366816486525006505617996072266758359924930031562975494980070882393812228353302122259485173248987456343241236245944691342853585543228710356391095231742878812591125514243470343784294180030095583585474981415695347209737596510768783186591764665604130346807837699524605671336829929464344481840252542162130345671009955081968009812329732677637266248237621697431491002140259441238054505258355117327076001847067273311327158137067146023874428975010643527237954323442621944352682729540850303531212713006893156891712616936358540924577209426383572820765781475411218213783626367221044145778973802013905677576025737238924549719034145523877638101107825697211761747496744452734359719048171120229737971901926252799904408511968325932468958031999284484542402197335230600902966812410436639180024297699003544103242179249852671832782427182648512957599583351866295378894837582304742378093310131532390386240885000701082196965940809495995482237919750249877492691860709875776637846478990271302495710436405787078877500500385493303040766842924243657189283402878534276500616572740688122515770265105422601577411497080448651305485053836283307167767957531321467290841460867704713845273963807495921764053577334996077640714573137705333987312432793107880597942207230089875757275440435165187089808463791556059093724434522143326339576018208433695150975529633756112340821907185506664337418596899237515878782905379400160661309905412617951738697854816286207057224555553210331799048961143816156745973875294141567789074154377847370703843023365209494754323121505906002297129270517406520051362826325315505050387914422939301215631386004330317728218945467207993555443711335967959975027577720008214578915575799557788975987155539532751302421401769355210514243442278300492586286071872195692856236406840639089284453917884841956664614257157647479325474896771772439863337407022358341302926123657214182106716778378062342189306005210634871438385372441498031608929669515006201707479127600988996512480735062274816846601839210431698928045405549779397415965464869672110769199123355140150347011203782764801606416359065554565636881347952727736563621340281301944228076427981739817416087024470661515953442604445866091624159239136097533003743162736197962543256453592427496378693415650133635662274223927657325054647844048235713133909653835902466116602164920457322266281196732255620449188032026511178975993457428864556620560991516632804875225311786290335127568846559236771226460853584919150832410814959681292404635104218717613538962133362105621654293611550260591874295019755645912424054601816210023847141135403762916765026795573004900236065371060115417075219648439535152275629947675093551250837088060745199802503364675802706989382828731538851989479315055509094390840251158538127275492816240774349750626003352181785096046939554640789679488614881684902733464214962588791666363739845262922137244623591910955059026889168484589060715286709338087289196380519836972446173314521448376467763044789944689100175979272603384318248997447910719275920926587620236744700151456063596117414479854946232436248711756734090256319884628535215990340182580965976858064133300702909019566109923196555928472009567804460187742018454070557820261510037728816772162119501241074117270301982177174879585140524611692315020982349048652226834610039459500801798118624021562427971327583510504826494067833375381709481996415291066266080694188313769583286441314395711641110092500442922840247559450490521692437816060878634984503287755985374194612392769424662636305799507858118706271881561105388626012317014172540807708278671110944941285336601518684212897942541859569138220605454448071639255378902834946294733735538824350214995783785856085855308874129949584843738418580884440850355551149060039181482332637332484246589718750900939601144390584037229672152511493622651064974679238533364111540259887734957922051807041188623998773534828389723694477012440218243580527582980239569572794082707301878387748369627053873060861053937771048919500911667323908095039699807890436093947558884718089434446804064839828771872445145297188736250118179017875311854111226723528897021789637161682729618395832389909607776472458752298897354850295114510409159421824582672574336322901211742546140095001947128780172860491365837103834912891306116252286511815203617644183948147613092910378761741842314611106644745255557219285073358706181167412465281673093073554722583401697123598923856699037812555388333546395183130074831859485332390482531275282661128137239196471822970290893932589825325896200161556490796157413146400153288448629635014111290231060959831615970593559791794220049336736062394949775564516000997102255465972763566308624060664251130603821090430163736377190161710445575951224686175594990155577583019300719752075531154310182793099676409326850286955766528351807929119704901130804425209883183741559247673411334566386382130745537912530852093032210226963953479584848489761620632606769506930279372855711231020626040812316852893232536591913177206328933199328823413659696638756153273970196613777551919133511664115884489569050298898322395507085868957038646984811867892884152630368627806220874557169569412135833807169191200462667805368097012608857455699225308797755921530964390557233265879119869432543841955430688618852094791084220583850765992990313536804586794593466277004730595243262916658800935706546038964927270830481316917037613205052397593450308490905915005716977345279899762738549603150471434873437916172346317315236073366141315842518917342107617246081426805619043754678751946520001327057216607847224919018000865381399799823844092259117410961178412057911309183876284229060897496370555957723577115627326181239095072620249447987371693706025511284616107046863580429974065391430673502650011217816037042967316053155352880163684307779995230277305587318232536610252797459390331526974444733674465028914508036681935050423815508125396356662749947587435916054362160986939880718156239826508136462346207552446480596342294281891560751326761012834160755645616118591444669325289049305892685935267201787335805674317553098207000983576211461854758886451277464760693166645039846174845240235970728242683254934153178358250566948869974365046583617657743436482631324260244494167998898925399585217077647779511015589826906746042499335962842078775014652081779085671881440269656688173263037047669915002330767316143547182528355552100907874893387426824079531813490720457912345128234046167626148508651745301963820219981235765432332989880463218976772788651006450885591852986217542916814376631013107950469821681280502403942640068869450384008518384414935278902116080706650426609995205801057963488588240374874745145115354983249778545180719966898646953600507284575021127129251006626514121887280855265239749653228570248043215833890380746688596453684806984446401891240936512594967478486318278620699202059198164519134482644046896916433778877100163586862837026168088086729340945955778248323863889356806697397657045553226368635560494969644462547696072934602842818121873971807274541388457099120853785332508995511567187540375527651703595395293281747129265576244784444916562674608487957454850666677183342795481614578881694153771317856886240234092951914998808802311964896871496202179437701965737094981217321309423598370741663403420161273690749626612075084143733626462224087043133193301207253921596109720280311189352032275422451035149412677171569666542766373278476600309457073303900984897619183149934826499811230875874929452412793976212739962312268943588430339344718287415561000063471761044832749643903075816150519356966270360197270596040730276348336852378555185166960491624865926764869029697627651522283018851386028695612279967986216129214091019454307666554076722210419700036167881893478674141019652053461350606494205710798036160096382462553692916496970146434937808483256417219174385877183115716474554805797580360584960188574968166669783914269051581768790074552867489183696786252969289301864234423515695471154289466303242537668565005815175430107371471663883158007827963120924508841805494920146783025444504617419367400154341351601102369265260489941743770814619871645535070242983513752983716628009245579454348423443829953511115556576652243987791234566482319322478913978549471822200521430529832696116446014749785969322929816773485715930533666863479789486116770409857760484643040825255187583767056234167049626392973031519531947174180645478871953185858539922519343633168818104614987920190632830733013432188441381546913283423213918238086542539648970722905088856600677903060677636976821300874073518832102499559855531478669968085010765743407089655227719749788414351117020025144448143458495293090057364991970560937008873678208718072699718559109031545812521479809332610257768604706312651911984782637152170482166414988152561687500599295713386593608557656889621404845697510241388129700714194048355660367491260780199844353216822822076744759409633562891170075289504540848780432113721814126710203581185246847151941381433409532975751815304264132968612447053149173646839764670623567872327139704031206469210704533519955050571852606818925130391733491088603583409280659057998260258143100963065432131666117685962704770413599192748605925077623692582650270956908481304822838727169713023861279349747695323794248558797940524515293983060955838608784011425304681395415494292971135825810043798016226027050236439211993703375843694133662982705603716739633884723872003732390895854626828306152441495242187050661488433762877552429774260382844870379427445591586179654303072487427240094607248569114019416860963142537285424376410074180015341421931361744601584597750149320272137145341740514550833726799038310853267338231012986481067484312146855823175124702507956898158459367962620333139125519673898292168403908500786325663827301996897662463806087021254584209990529391642809132188860683459204869985956031247217148609896696343781669086013877653125082650899560413266119212245579069883308887413773780085734048563396889092320863941849392629719011985899247762902087927593282605384799360184156917967917330825618604893061037079455120182249181665922247263980924332245438440776236906531448968719514914801390702310386420496636025256909671717126596925779763103482432133842296516517645321764009142432388386741261271945162369073690597821791564674900390348139156382199075085741172088992299297874703850479989198798244006259618265062540508362749498255798516374836278252522895852756041594080473729868887160665692868285709307427481616757090791527622855733227552647584447794407402600051423496134041573643260774432875074090139138485038370246778521943385782394528035597338510409241229573225776584898813086397936468823693915868947746774296217615262013609246515747927712778449831289954747314233208187955683795600936617047506713554021472382664239220262278407319517862415741769309238537031625123708781740482121032034080018229367624158039032523634174541174519700888614035987276222067158290113037269884590747501743693158899513494161834635513017467407581615509042575842550911904112980068308602734823951649360714152325800894094990146254243102168384215496757474538659863402308647027742955408253728917620133045462269722505881338555751034930559541113466245550263789351130945359577290505873844167361557708105259260225205589469729733533859356959948079652220862075033835163167839458667611647347623813290086473156919836623954834000533851550559650111831185676374416632313441580318817412337075720074314973147924537968237453613070073782146549892810674060328749788445000535824391978245996532086898847370469135855872756316224528445752216908048238025574106487443121644015780032767401347534270303235918111784299936672068019687009486698432209817168473137821099635057759689234590675951151031526988453669163572967877161915642933310159939515381050306503016694520194115853487164893493986583903898861488714707647392782853352484773135194142348160933018580834665336576794153787757237347337356000748125608340696105838440042768527382586919939585407892136899442802120858687533238124703761673906922536329598651331930836487712397830298197452696333744121473399973751029738498428111047786185273073607132841591754253010258697480030470829726033053592113107564846314028240113851476037642520053842720054991345254580234920253314935820689148639350438226954468692341891699010314300089642168801561789673454232803089875736302081980708751932529880679213779776506330064059702280994964845341929386771725287730641837697821464101654488582544392725788849642006188148187511424353145055083715870432520195213507480518252788832877105479477618169129816581539115257048471272312651483060022842547218443273072816381483632078754827157891057199441533679022186080931063173659148786220841905187875898804076519264865305168328435394543747216210974492198535976035280365590305035734625713859300812901780861204064902460705669648244844516641963118038350999244328386858688960761662159226443709743313494538120082597296072145637777739316937367922554093631588382515989813343972632547728827452353450918537949217518252859145824821041267110143383563636598096577544013928969198265887742392787322645006703485727473947106109055182873659863342118346701096280234059152852913334191898832736749451116333677196056124859338274061810984095891466374834576688032870627291520188925876138771281607116862872342957967804646914483207057527042215809319403490950846205031127938754647471701566874640025745940213874869744356234939556695648353956830665045004089442424863248181896120363801663648796186628983331800218917833573326820284696089205662878576786344523469419108362628157411098500799611034895588954691958421753489028514898357261850529249975010912082929785663100974429014935982728834275906757376333295443814862867443185325521918446291694493763575874027130831473470851096847982045796742517220305662731659455465216019902101849168287081893541853444270390344619195478489027826386524021830182983631312244061142372209699124104588159186810181954618882557867260008517873933484609458888462790733169935809159639343767279904792834732805678529934940014100905491778813040615701683219122534889157235636596477100026616647148194688554092537460622394376626582204621782272928296042078066615250850084073222619566936515542064539955422946055417143590040417729679633798551965674812148315538162005516365840930533113539360907524717060012711279292360616366931695944143407393643099155087938751781533870170111906058639963009428584468926212992021060608276993448734236655140050991656453732482076393987017696195937526914991395012262272554307068246468424502342257534459029577273933904172984620090260608336290369936128605352674277899958686351927234935198202000886892342233910894265166404969084364765483325679372468462005795447119353904142830799230359631488227613028539932077791800479969104148932663690552794311597303303603441404275706218427979811891327621528182223705328941256816036703885846048644627719354598873703778034632093559629295010352543509099217773854346022040340954904893540713280865091873482616637924079480555261879859114793601654070776791520925140100282340163081437808311357247780227075201726278411540545265337684502839254883466377078293642150082977520852312917719737591362686822012795675707462504498964729075316780060399784552253879981805198307053585578592535707323247626691366332888393702009893097089479028607736011119184753212040573292435590971108031349965932423257233261505724241672228316378558032131112106607866002603397530786670141670831816443456683929727869689221373070792328053267112628971935515470198269347732851962181683741719808407749268010801247810702131623737723459359512700898761169108880383695628920048999600363376904089690643196575954243346418440845143124155733752870556766420467121954615970387934024913307756213451528100640756022683668939176322746223773404249666141722730446523134348056751757750265433354807162664783870512317992907339874146106038954571741398660638605940258392506830235309445423367823240906150057824363615309886001852219825264300648922752677776478222935631206405732895578950226850585547261466030307657897301534132983329257264953274672880431229116057025028470553806050254986760380398284728934695748749804618487127366282442883009413020977073347233373985111423903562201411189433706294235033849920732036039111675179190716586190939474889137642092787281571354920008650082885012170499822962926643477191201513468299398851449759607398206091096958023412595182806561689540254269623353512533183342297142911380385338659937431641793936235428794644841717795849466339888621785485113231098871387714239645789738545161206720031355978174152165463184282855916362497078506918863605557315045486907854373532948223459068440801917938481629334585961147514771096120794110551205149105387170588488054624632320413031192464380462855194722915556691802868973834945952337607127969144370638544394627763315909675637372716046554002927072216755184749869894888879987124339300874861262436080909179216519592484484489061496909351116458095744284611052185275561691804233565431139573422280338458037619355609942296396616422739617074668911454238619615371277223778837975500076276744464599961103482141668436521203799759160933777658093493680758499938272242519947430304814092731291310976669664568426895309266984296380052248552108903079313230614897529350659672844898864599658356452906944043581618059183221816501923313220458831455193032188324338549038203982722904885208544579545579554061410292007943881036478735872756017486893714694852806206330925631078183402849774502064972532164768703607773466356108824971970457854534912950966378455918838879364152330972595147758421747318350656789456277759618285006455008746155356665998724338048866975248242044554913432961646623964709760390403311517419616183388901826503333483003699157659938093582621403464340811337362924197343406852003269518004772048318188838649986947939529684799770141141266370668752177895669124825874704850392238167992543144039478663773972277627959413547422010730382316848718881197171006871221066924660345677003777890204143191804982043130331434901754414523237314001253956383444768822444494523621333964231145323071002271286303908617743549484209615868200041723612258055451317669409151185840336282726017463994081470269775198609540721327719235178541289152620374775801338483813218399785998242625106204491623988453877000487078447497649496022810043184931792726935056221855983982326834262566909057332153503323758174498607980664978128944744687281214223547692366815169862877969645360996958833682426515884726686199324152935795235089305840335269669206624938054006148127345211436802916296279312949594280242125336796727866575931368459166733861296428767066800374529579158923762982395560167416885748402859105932417511874809139002010578912415405047289559080395182909237860008977143845910038986172522641397027895640578413303514822118221818674270691136248219869226355217447063392526564189851894464072289221831824107683602999290427930015690895778859854975360316488196833325050314289907439674717095496282217503983347857637452460464818195313724276984608966967195153852824616430259723617756529346607569645496359460235253324452001941410106267847335304622858250735360641974907933567563292287638505470921837568299570847441118256185147461486315327453366941319930822944324516221169088022076623240212654499008107951875959128987503119211235258829350869622730653946326797807441406853646471268002031848605196325411375330234300623124154813502602899180296759355844515201124549227227098480327545492833375237633876212594706638138502922016475042056949002282456119985797143107356428061720089352963545845235386785090916249775480679823176586895999324318012291702080027897894225955976031509520114731077917311305771345953660936114123160453044923882634926285295106924973602869062181931678978717512954244218175226811300140780543653186086279720987280045479346021985294087520585745974973004570275231516206775113927613269355766604605234382488429395116830599696797988149953257374234206172735318322549359842054488217693541534476775522922782644119837296594231375015394904822929742130444130581474753791622378452540096276167158746018740751433468914001776029608686282924196982342737624373923874202189971202678533939369621888106325696627986806725428036192773955330359817338463196715308405125292151950476574466514867968655809681200601465813321894333461720376699401911614910822579166061502911894216121733273460659736965368338075438992433190445510367506366710933019885937804299148170994609270348459896462449095780760520081580710903835039099251053759035057213853763200217859187967545790166424837871987097184235653895973564862168892754360595481769387848382402010323590083745678082110500404897989556163131136967347331433088453425631053328353665529884199287158541943946458806114028757048758969714738320347907033674825489176993659385750400417315764930897826048988418488233951999568576846090762113952324103993270766632906410589767269181109941419380738532183387849987615436380128538739635263894845290627030324002382820731495647096263532178511234767164343298348693817005782376977616777277472696795056788118566778241957670182665577068176548522457980873431611533221691628275117414517226710960577876419927232976089879418303515656357568936545939051025961374490068113476802816811032883977020426822737620872306796755406488054678817735267997576586976011464585463047073402346548856388646137266120527426645851882483859353839367624797136810280761874314345922308056967495793599852942103322994543598906495406588319767372938572140679407266664992247962332482274330058931286192237273141628515578484996419941032956375243603816426598360926756118960981092049293729295381069178298957823849688155171161218144989707488653887363182279791302493051355478551492092582193519503035930616246602111177955939033867093681613779074111896485871369077187926787907232921857126498732370124974868970795154287738967464624460452926170466618878081281583836745633437635093690544430100493624403260663000627071000818421428480176900789723697906977990927053269378709446552930283912906539576480228334497987236276690096783910471395226108232907304878812125763262486672525062653632521837769458699742343337682433189261404647344917601413697294510030304187737794507652171367997638521375819968737336132686092287758480531577759268418927838415054507812878252790696378452492312698776899497009495426616969609925630208416915559487859498674161325385170791954198610026367612658337723151821348778896385799321628111072736382041170936785786586550975234579381705159066891416302664592807038479870508606369016033872217452844954109362691662849943465949068782740312895354065879270607095243108725535696592095617746311050606162596176089011210605684558540295422535662187149738577540626105051061213867850614960289025315724972466291839897381234848683962447298865265055726209940036446463435986308083464844129435083856804543952657790883894695366751284962829258658868725237384757331974143474332357350303797287917960661262934173759462603298761423349208991951512391752962626116803023177520642816129398375478638810042819945310573948327228890549005376412407043351934702490604006414589668556249944191447750049302926017456697412250703577960464381623520315395315534075485096659269940095556844733332728087633481541166255350914927559007528536181988958092368726822826780265880283409755873460251015425729316730466395956796799415593851204822158725444115379223721716114766976021048250086969325044314933437418652896012918136573763694666147488831954314786193564619815475810152460111840730013772266425758384912201979980497451678939953342636715142933565595163839010444556947466739577466826609842144102578970612056784158947479981477178127650108791371882500899499182924374608625046618000804733943861668641459646164719059673538413329250194370690500120792895033509787425001799484060747461470817612387234300839134605293762281777022598458574006048084484440010623452192297456804683283784546027201097993419133585531244593086281193052565560790048420703415168449115764625141389945254514333650907361051975095471348484459640141707734261590338951818663862985177866743421631821992317587514194753342496635352711844337029788707083429286222223068169626163341658917560053074651388295257439526605421429880144025158267287413195915020256604641777467961902786073731086990998625495230737853651848490691124902080312260107849369305411649704399716394696801440824200846671915026202538819288315264284638466021059096281567383313315851002166413721075027489029335229222199202190378180575349703531613631625383827310181819129030756226746318550586144349998961085209048927107038114853096408476321588664207612336399388955732197437299373156807323893297163386283508666522287527893398768097531763330762309472656737479733500726858702217346830115674852496863299245050071124219144968368228234112154605203219592556275876391874016921853974666929359373837449088489945224648136494698485176786829290578473005698670818238671295314989796925182141371975482725275117556014627413235818953487729684790616714671106798392290651980006562210016495829326955434851750456782830594008521687300047628652268245872499346233284499284086297475429827746955484847836511333126495045470771122443007664893949629112499782858747887712055357374279454562567937370406972779778320886049196775258584535786607075546089820794844042484577077129443067261962919100903847548651385106855889487367173918617404096035907305713425836016401826848689076664987892447520424574703567287463199301710893379224893981777555949873495640279814283007660095291833999624094556289808529314676440324391096122617251233458434420855107320334196022664037330033098891437594329362624850503474823986295321045190179928318322075414898473031271588070539654297835234974461058802731380649818595812110134101811822926519171918620445673136150778624027519813628617374103325409205746057115689030016345463992880804774406570313182158114376517214364649402270525985976152461007462611524467480774232358939993462415309531129184336070945589365756375275007725488397245890288360152317607854421442056585074151101286006638600173873741369258083698706609789239371500943098821440253831454821226674148184348774751418273584048928977818106479301749236564239287380249364472767267755351086639076844965765138675594768864356159874460128779641697049592827445859428030156035342290124920671537164994876258826597025331469023927576846352755528150790245404859999377723216354309456940247827903937948549521326506369895027894708945500532782088408842527790490203275232404821241994686446741856188557769808790754029115866444411519583725603691423097341067497755381037231461861932774549379393798791413396817585830940739563949120737682029390097161125747483184689930780400054208478835191531133748253322085889428703530468131431293355710080623834911046397353400727505464978837077029576391336242645490491750144384074188454053949766817597106172111446479412476978631393891919693673436759905780838131103915320108261277058674548159507443790948349661630426915791492834580289105957137736345769495723468306306244892424080419367372953004951760655919075445760354977588375066416025262988348640086202154549554711344757569690919763835546950188621665299446229676558199571752596240965451727020762411463501016106787820874248537687599812585263938962399815660443990137294545796508272506552869514197553255824692820306650515034339067780957097158304760899222790956870829297302752462364989915293260499167658545075551854315217321206711839875446679553805352274708764902469601721657595914757279809816190980642680761620983066149289856865568113433448766946461417371410702617483706762088869650163376979504059160554646293747290537052079916532556897912039094103341026227748256964578329158848552002576508385231092936784962381588087342777672755653064094191597393539964428393473044880538442351721140833350960450362008831232093813631704108429814277823529333928488521840372059180484921053159279161383465618339044209909445923000793477187616706247553697555518086270891080334516425050184655900441092805766540878922619807128850605069074797037143434420128441969960353389931158791967246038594724544123427476603965424326613698307041712771463392585340419705849062641099630964403964053745924697267577502775078535102801223911312049053820981091436930177969893672887641813473925976243742576522063143858242055420187859263873673002746850671406379044830181463315617839880635552759533860840099812300913009285883681842064396695076401481145224903543159934744392269044327234087719799054292184899377132644255518033775743111366749758247523083159464358963413817963955329337319950088682639508310998277500345678838006986694086584008413372272398184523116600693781886603144631760485319103680820529614658609831567817762648563175373097002564283460276705018831718348349231000947386169626322470386533413226345182181955362558084008059370806005064761619729524117550162187274256682901815526686011984222798383692459893000278291383448285736301507570309704914992475693384195190166295744326393523929655559690314098074173997848385917781186471947907940204868939146708886847100251665681188676861166901664564220523942081018113395387545711020768998743028298884271279988166682816787805032035822718660728236776001899936793374845107437014265676054926234050507656577929254340263536813225190770179380357477596441178404100147311296003235492575270129194509173212771455930937195852266256414794319028092177246757076204372936044866239038492459123758223332730803388537813538371586759819222375865245392696372645525665915036784165267277722650837216624294050380544954918833104662991295300971224496570478004543938281839155719853854738171521377926085958761095533758596761851489435229118636970820540853924541977761192312412588485698655330125268946336294754439957464846130067954607851874618766298428637398989169550113521042853776020455051217928567843978739934106265413778957491882970788954666044490585410098268626750925513293272381233091819689818012673617846737109431469167390979658840458930594796429968215413585054249320462655914884678278235742413361891441434498913425493925155662115947929997918916056578159541162603246333623622093064957266477454661479971164155667892251740216758942132733409868764639891394954066180229760942683739329598307249880703427306180820289832545405846561416932630533808610901017272427255698468470688478755655636279343880342171513931002384107828959423907547501815812882940824572264955371339634568790274344014498360585366310264678627897601966370948943736202910827480869349908034623206662635803074395984597091664271865666953182853410193121129684273850717657767451212757741034123792812224060251369488421929340298364512812575193973650952336201185009449605615997542793555504969556127437832505581335504873176845282448971914709585920788914723574105707359720735539263965857752951142929742957313002581432788386455630317287978181316049049172218814716716745357103249516973147392008666813891113104973240123256505861889092074158643025818299836596622649798035780761219853916813257683835517361763888558654059457507300337581705113489737731788980774306927705488976833431350989917434229507918926550668693025297141889276703386344145188529423060550289228992388011863428459727507283061634105478929564899386858499998662507888614733662149952885302676029995604317123304660379157098507540682712462574827088937438233846519637592892226926583890229367345044272833078534459173715780979399468131261342437986691819697304724489242418636610671939370827664961010406472358893409450937508918297391379295632745929760934836559274773665985976937696753259356030541060941675029578947443901148068270626929034412488996887244136711431512097635619381207141463442688989228452548261886412195823710105366847919638521048421597090176098050390127635109916193815008406720905657553739257598962352244823686968291911234632818904037849340570470357707331778065595790528892591287082379355520367170026522792201612279307097773898894799418430548353291445994304077721780232747203644685977099273138559485507190498520667334795366419484990121635306087618550887850048247256544898443425278769476604335728102199017085092542633896871002334913337508163567340467348354120013958666837736740565978041102920060829493317423368873891819476454100173740393824155479360250873194399535292872023054748149238887496296068470532861211867273404295904307658410528153123964755611173100676487284525667071099576947625691554990153441238347532073946564408962597208940277096958629132639846772032089108168381520502655913134488731203135814175584279435987140811419544732714136747324631950061712260823474922904350779492710609007270398613645677112978981036647416347680657512271765049232033021172425272813208195233215636860493039020364541483988909591972140317886228685946390290645106045348642163710554500467082294702922918174747085043546241616243519401245393719846249229263857268998218814112948491736119472626515543400146753040343310041364405710660369230031912717820491985860208022724897181947273049579399429291996209549265173198591029203595451041654212663855937398374535247797178336396388282904709841007614940728656445705437249806255234381250152102933088872330750558954358318108023215411282283752955861719827736625144238911171725425608397655586380449177925058255537957662731122168986418553986640104546311871789613334262327206200724508722060282280138060524538810973056214549068556838550701508391472861533593236924095369721440584085580883775579962837280104760386283273898799161102390382457414341901826019107307391497781153194566970168173976357894371454925153840541190732856966002454576747326820843206628823872213050285131664813649261285646511225265491821911641011331404781450314254882756605654410461026849710493838402748801901487093059232464005155788225442502264340834725799073967545889313026639495512491281489921617222294715721424319930668143793217164982631938526399771635138063825408263357168649921572045929609621567160009296634606765206415597051829999357077732543918527067045129929751431040441045472770092952389374304338265174723133864344204870278030310228342857228373464528510060462349611435881374470069306508160815880619738692677143856381601982803388633319858850322681661511208906897169953939095191723057124073676066196295501331795849367939778913487021495809979073260449569065349005473885452848625637289594621441024675799029394842227423765411894036002551809571811666714426273431379242357417841898718395910980907433739968896939566842900871376879254967094241203408428201459867655926957301248005946142528964068266038114557966400377412578775958897592401187408604024163014363107494493002503045485724580574037280239204963772541890503158582931844815931247831305969825670802094378041746733943173189684001843924958979630274055232440687919378418953092466760541496850091142489749618706206363849033874168823150018611550938811806805405426321485781592244302566672104827591405147756649919806666256357001313124845375669378438398256279534054210197329391141016729889721147245346920171145597544487766920500273499235726331713607253364202582188548535787893762428638425840662590411187625838636925109118905485136741269032386160446200108656657411675367476159126903049582778366247364827736639196474267102191233076193385506721198448497444072242281200421235275699390687320631913083306221676150810589842538106626493358048179955138477293298427304797226562210555602889673983908205400879483053549070948611941471222552015584297975159841321442089907491374373669477794387295576957812336097049651075974297343080718719041091081535173334731901452590848405612688114054052176074006085760313220289599463822740288794906219898279817271438127129646499774019003261283521775456208942216818370214319018100148726629908927950322475844050266916445886292194816368527183321272818088130691471967763806216437229918464842382509196987916081027390793599688405335412522887685799292565190529727778498556329922791383730637292893877575029287791999750880178951001242533236142935372913404867961248852681795479695055042192390000677366554618998130676911601368366281012841277889314099709404841583765922131581259793244938702449419799603281903666902717330712930627185708015090088590516962935126335410526970871436132663279258252768731126916146271417067150452463405043658141547845949490405416884678834112062429350244918963997942661790941583606015074295681248463892141516746008897257365750557916975191919234712584353502635446506779867718409678762488934310557473907910939018642234887303186807242687301466045958650179007106953203210484194333161315185481068061646830891876890203002942197310494597362723132487181824900389772066802531694818861787170927840417251079250249568182899873222963346216116898099078258200323783221028883137110884739379742807781714045140293771353980449808976711018250857022034927805057373345219786938182609409318309463427827210759395154439198104077224636158438298944275475786590071458759325363326490666614690147306758896699923977222300224798062150473764524556160706354832404268926939750159908288873087845761907470500233125197656524931580002080860334794588957082922771220449331072000112360726919524823216228733402121492207625462214315013507619384334044203867103923910932503011833023047649572116793406330784244199545755881091663805470193717357544867928746969881850249185949046486205949244197975831716670738023116777459411429857316441226185124673495885005727056511236092008816021088960176398957249410444703658165335270804942278943031130534261941216554611958014089395529787336942735615578246519672084001911090487842470091012349628227592645015544046718447571174224292128563109535170872495849313248905963934234712450448298331868810682531025344071637330810407997742112594614681833273289145860903723663852619879313577979308029773627702728939080775417232071986900477238869170054172126349393935223547272705283602810089424162828015305517704411270307886887684046648368113263881355455117248565577919086575733525014201231445712800711436640296451127509980953927300725464206759902841800688563854620525637250914630344722812790820112472240781590305525546676509807621763392425421884604157215665137758185310776431364151580798831838948125480153283850374070974136642343412263911593930140199436007639645821585050552989662325534371881363794706521525427070201738046740154754593910063447999082877949879588958193804427523705069336954372518538691045856658044391606170073040632754250504218394218351082977723919624915001611777108150411802462118171851519379222495080888759556810702616397883617115830005544764647831223020860300931360059128115960939638938969843656328275677187032679508649367722446316323312223864697019547122917285589912153640218253170844990977865885556606174069087369992722502511229286146515105955072780295535962152321066857645795294601686245489855399044960598574613975944570429450067425737719929600622315732869022897796118788722529291573805195261360316073182141628355433659197062125572268566382432740555076223244005047942141126218650483392427062920550003296255194291831801834292091646321394809507806677753602262642953801718905644500680300326848400390736067246636820783745614477666778654012490491677183053879894740899645534367543473917016220691081712880966781313767189674270463818221211359154252912887224859188694305149964082138915868011824956106924592348272052072912785139255463002257568797560152900134729496087956933891546497905027694669034340643403215723477665529292104809429228944225972438721348967049881337421316749017452732059615980027501159006423301617176533421554445823060108525456344476792810726353580908232858661710857588989216258903268492771281438176842422010212122492537334862128834274084004783388567544437600476106584568654822480614391302429328929833159487659646240243555131760324271186835539506433338646312696409639731432744159496067700753521860004258057478680990699385740305010926376628366042337596162777225333137976136629765260241521020751839163389078347469669402865546268559032901154038218631618874213037330135634451858770867318386839005494854897808013311225842114026990889623943448177358471358156103927958688754409516642937422629457256091505907622442613857195053860632254285660035376573631055441476304153989337006092891879761789106900652159612908999718193336647136208746805707226965567773243105417506850006564062466247562182830146021944913315432510290639494100337271905715932646270657074859311356270154900127340078777836439200428583495030192493094751697899310849548315653744682267181056561484697728716852196406732377001864372259547325452854383712099923420648433697966993632684284201321810849218063632611415678788629311347414102692436868346612385047463235990069124476956628743391058759970045519643695027114836253917028439280973041733292429232718054026874165545225598888937764581468309675402586645832272557323959957635946012515311282741072405486218519090075716083854105477586500852741644764657287312947727258837962107398320532873332326772164235969542266144053881861832658953138266109299202723791199065390640439742345245275526875110347944135882260171194603568604288361713857495399102934851373041806499583276323884662737794186439192567165134375280586191652243781740482589639224315256518582167375684933739079588129919291154171127394761059516160717506098164381404149146019194168374942385843121865078662784304257538727235342820415253864905509441083599027503749784949832299608656677508281431907654707992086025406788585306729366387290285214909053210749191833254748052287737507911906455984613054727483088446132912195283718428555330985280716717212541951026273098763051341410604024195347687983119089533693303264413508753845466946873468288316140074258417408457620995041595858852945768419495196855012698845397582773322870701219542635639775180409643525952322497664271324903190730752832600270247245006633611679418227894487061839176971388650172728636440686812685371971071243161606368643151878694495603034670712005100827467702939411165095023669302046636876818736162426980342524844518058904368781030326971747400250530492388847238503298661453362890958214571054629616513393132824809332293254331805659914641476965893136033657716104904874039190261493542736065518756643266824176648383930093872723633804553209279172968339144333265848098349722803257294912805883089082438981959519920118053138619320311534040272863369378041957541717319669505618513242421859425862625949538312189837122931178627214459582805705023202696209009194096362696075640464240375330870065322391473535309354640879993312079221524029807243759173541229002868460277644377357001702455838632014877589255604316889175966102403762087466775186563564815552858731174102322908077335922203670726308720392845897117289648738568040617627919408367018119609669156515997593916912335353110102144862661351548313242458812091945655498182979148402285079797598769241303884607736997915984942209879682863814258416172497909277763715284095706859394615420089773868955575214390260340628022903461712527131530348104802802116806524679277702669106114989941454163357319373978968626177015359272347395375803402581439992946122070423161511821082885486006230227495572407280508853297950962224501742565817739536508663925749844217579999293099897784231372759131690757761455481999393507828100394699892689208946107495195368170785102458682494050466424369034617208433680351540274185405929512134215130069757905232497709694895839183329961630044310907069015967104575150044062657467424448531066040836407988244917129529118839747686483270365380696476615528156916622373764052281671224165760874575804715149678465137983652527827969651274834996422694199661586806017933910277614686308798134822240544472471002348693341616573716150589595281179843798483934944392056283697290025410278557403325754239893803955308533055830964245864676637709683605155686422610409978674303352397306413912307276536571400636236718596663405729538508917928752850927427973521800391388924852497973910212093206335945395150429642103792702236522643240825478754558744266770949223556046521260664332711528341654186797945276890886859342410217840557966281546845725918232618924905401332399248100374683043385907624359642886276736433160004696036379597934309334438422958704054062548343866042673763312286434059307286332976239362482656954975141763468340807867435133914750132036544164694358332617209317303056204452522951613056591677916608683805840215964639150275742095667293633745047696767704774999816501882282927443252475655497540717577776210215004251518639215885228737346047175377781657694619439625280896135580437819222991709478156833097108312054178013905794868444006495209383786543155830202965560303142644457534459316762595733501577182522783902764235798604906769333309537556786734412872802153581337813781194023395687900654222747473140841724980482692419344103735141361492602855881126382717702411720828730806978512271282345731804482908256100248072866334283525874840295551732739136702649366833078148708745982196164502772511833773279781379890226698966075050422681747192034428445274180236087327266965638491840280873362505653414688445657824824795543535390087231621230655979728930151955983888822388119543218028632488482966171565912514951700464290162816081586582347310723901065886081717736273224662062532076932643053027792970806423597988018452012118071483186277656158082555609629561470215866364300492649936781146159863819580376398932923211612402012464779921301939843722453877242537674599352323256378837075583394097491710124074829597129469270435054791584319220487654774606387168836445898991279067718817103536710660230571494453516419603851637227816865104869144514777498034977691620928637816374494246891887452744718329817162415915428612748626455975096252402475567919331554273417882603894714325716997356424477679592061944844064501891355614924016980465982627845506122349250351396354549691472220690245204146137935732518322761924494470645771341218374260513525264032890066806458542435867200873186200369566582462394792885528376025445656265989246125725117886343355709998899907764694953452773355162517431583432502549539348537750365375537422871908325023015265371180659273509879375408244034364964277420600071280006580347474670483102658272284949458034852584474761807926691469869561380613069829092658946044758595032970347710061820762282989047256974881849153711184149787089168304602871588374368311210289408656377327357039550828332252764414402904847388335425863885611477814394948200877011213256870017821095472928199542701077882591644938566187013805409199483037573108150033305658744101984168486607887137581387274117099709872132082542054134159956218812216382434380954692004938007686652239261204521583470504752255129208515360466546867375992648506953213978337862174604911800378992946619199142183438767087088119600516062073211290110244227429375639275898719626118231059476412581656028845626837821379203389836056613452155668464155091585447703360509328408787403139356977144479581850178254942998251247478542980570439479105794581714248906470545463176734521765891367856126142593677650663430497672172081594645990087958920607902150635114355593666520133940995665812143754785645258230405556291710501599209128688905594585061192793917393213493495053927868410339847572779139749692769969453541479511260204655287234291830181317646264831019727917316120783716941453839168657321456993874776063087929272268129412070009928187032035803341637110310552874355752521792170211285521789090713781948746431508230142699446867192324296894752738282701265193494290299005181264701364046636781005586536074438748843316937244915266266422715496929483347260634089675096000126094598210496377690013817645973212573759184706754551249067864845388172314807387824307796800843669177620172506175619840902488839901881292783895843896871055459624719773846335976052415531760277738792773984131854916423855408354330397443582581229387510101113597266693332724939765319889799297143239526139437890615631363817116902115572439356772466320267369693680254776578131795338323061324712919257416516666020438160013688031503327078523073473147329893824988496525711660284495836117447115019427361450281548030689027006440100370343542199833598692727511399780885087636379991692589152409769535437475412626222631347165318656777654305703511193420587368979626403031045147739201397781327047906817253720560006444122742909219247179657586485682948381729733406432875738165709705033405692565055837340244458543101870352795161255180343605390732223083772209570097717813634231835681891976241189606095793276611799187994965589688928891500017444670867704448245490204724058723892698822874752112679063146835022137584995728365144833146417633783209831067031210557820840675727184096877866440650917285021837239023522232586431843080587581765416060902496544022228686174880008172967966989302578235618908309055818584352416584035312281965487588630649346903488911753072113956360250076820214204223342606362751869996101960823739735807575363079206435245642256681043399850077479081399189568954777452877390487345754150121670426514764550200294327299062549559862893201758512573111065640687355606685271694808932054177021361298978069323657646987440427887772829508933273119105780223456886277628076573289293771095702795641166701775922564585012113465235604561676093551145600339091134774623468243530334491781014680629384867658517804910615596048769191695239569805844365528843917699061311407956399911002036483467270692254901896661159776773077918691479397344984123571680107168156719203444914712709421406646108350813822863547546821574107870017635637228413810682083719514431735009130146735617193404590714090314879665797558438974773856932021023544322289994379136787250756384936983764402449895166001223235569512005605375586130870764243312906021729664035681185324672519620237602145156342870284185739615539604173272473286164200745227744871974193818570708900665425250078595162727578516929118262520945605171867417266779522086489205871751330303017163124326130300455471902799090623732003988384575504666478641538348588150665237611726000368220027886842183256354782243721143353105613727235089059780898855583299600957570837257258482637619658630478398764555725556861046602536457016011618899926922703264389572344904043356347735321363562572742774379514394124904539058885117139106916296612020671564293281644244207635093302865234619551871542107355177330491385993208537063235462105217284291708628804159127539433627265481699700741383375574495488691611493487875828254701564491682558229952972452525385457163001533901194580737564888071329767618612772882509451177091543086309698524853576256825035902685249825176394257055855855010236811257366303857179448764811708940851968202015623890975841507532112847894140726938995940760629477268747430629976915945285741121374915405728599383205592440601728276962974243050934777522188557585653708935143709501236826553993450981628857518646906216265267199818439832460135319638881438398743304865579556946077436423122341665088965032311039288753132756031980454512039903772568974645706327660217979452636392925515482821959020434124172098782351866546531353700484351570193099770564474551955461084827324679627051878128436009963484063110915837351804635841592726418237867515486030189507513067193770312085543369007060250049351286282967249006734719749072821573831655766733337081177374442541192743176537393351607784679979330216944126890283665862579960787048553254894360146073660255626538232070048962904408777825344023079904998016417225900313202041398177660482120043089542284889705631788650450340551257269180474671759623405486522511383659289094558443592820386081915074244778255672045360453019332796079581419195227290440138433027808581885225397114287723792947806187329436018032028540352694070808863712195350412307571265455435745266562645975227797478664180329878263082717981020269311555514684405148682194175242029484868282116345906719528511212797686183908391075759485322561865231650475155430634101448009278933371836295840504412585419118103594046892872629033372200743279367879183539735591261112974279430319331590145972509478918380793106245802814879461694168121109909076169442255838438102724957758628384329673900893510827851470636473170090506187487110342753523137833681402869317720693326364439526818377305412635695283475002211240608361742704732797259958157057500041011885219194556876432787736175983763225547087835196327007656632882934527310201216612538731300473446646272866606210312529037285629243539486190709829980251524204409581231349287172126037635575022687248142385454401934708841225986932877286707839197492548789659481098179693199302275871883695026995156411731468473120892333777574016548886195141840340035710155494096302571514629531323134155755186191806833303900829856099982160364511343280636686018624564922634405362263513420047026483156435181241811259357302926359992820362787577611482608801423165391972047513661375662172006803888504180529474814350181774948914898299098811149871381171676162631602943120729742134915260809459052407868899826996260748510451669730113471191107008326193912147679844260801394547575716636297483435477748212634025716223398380728330972949803214294588734521199940878478287155744776347778385183929316024678168330736327787878335693698396276293656313849812763671269651876542624787043155452260364144234453389226086108038224559442719335792371937271350186890690545119515631068740343170919586885445738474633352677808549673018858999833636390883245224002306839239332620030178386239800389844207545331732197227743937132291744970241653028525445422790737561299502764845184107680606968914203221806186589260117490067210700077665209053869461404923089054237334013814405930208474676266410976883051545757614362740614106057128229661029480580112973689379771138315434844242021818444047454850899231414135682047401859422878252037762452017495510699079400786679295232979672784376304330224734380789582654001955717937483902612648572781303254249482796940405202851487537860823337005975576127131830573774814966445094693266451433189712388417383283538699636552368179943568784312501480552848248943366736847595161348481999631357275859555211321153462070517042777403275089727749246792084535305116178676705048377575775926144094764132919042637958672668523662654243779824845161541432058573176384959456633980456402093242221556442324433942013437240363099957046267102312828170911788775673446470103475230947141192032188109327366959878685928413423738002511345922008431091361459128141200406793166217039305041496137737205358779677476681252255940756680063750655438666476500989274436634429660615222034999252355855669731500306517341078353456041943250558675886760457062910838099789058603386634459164621532689008524738725140578612464971523028870031581454260601796535977702486814415006139328547487583989723433164035616158159491750118960186545383578757065665484747829809404109754447216539214671654336027732143572747127974906631486001150310620444426438665905797390316066786170922062287134049633561166367258134785361168048120402172229566610957541932159977839930072118608864671759898029893629871856638093372805106776875544954750559515493901169053391948036454759811664637076031173738925923409459405885437174468094856156719770028711268447612858916210828708069436300960509895192569802439896637844204516637074088506997003907189770934655870494613286403739777976313027254734822494744498223323593720675323342012767350502916555514195654027115613069629802507100682556683292539988841104716881043135651466854492517484327830758575467733423464769736058551199053561819144251040554516428921873770860295125667317930325189841970166567486192668318979723879118476416773622972909053810264072129687570289819442202112606516798899769183878038667983042967333429109583008449587334847561451896421621455568289382397098199564923783220823906494341404883752311142818593312396686982509008350402926492215677405928805952332721046206932462150014946415993365674802583956083124978100783582099056930304374791756572337771861911563786774882652538459559769707095996059670012557522920842181751290509254808820170846550941530451999707816984628323130799374374598759551863365061478635693122716199096370551908075766169687516605971484330995928195646458790752571346176149086630101933267261279413713263607047778307598237483037644312664235400485531435616473295752510349528175263680051059491316168421487221887870712032776194551514549422725866678416663796598636341946271319004635322698457426577403013334118323887069533362705494751693449784459713195430603273879636815110083365635010051890771551995054028746971655198542590753930284801914961537003650690659097597074080943494787386434578165866200232291847675386491424122891594629830898660228377488647810237231442672424675168770456745945964289655971213886651650192873944008514344984101697009327759827060026898258720175029668810550520087214670311889451753774875993832007258269420635491497540140095201529167508281667386025282931228314358858664608135147722530097531109637138994458694702674176206574571247975117336268683963270328254208609760028840599333296240984376702711578882725306887491143373500137752515313655658417504632827665758774377176683263465155941218074964167330839621800410361108130612993680429536922895312744937372052878879167146081965559993484867667261180759523042391747030244094711651292227404614481378045021066523094112853285341792655039699027786275968167549840318796783318794130402933809364302972397621271061623084263987951869338822238323019774470270144242955908846499570806273983965024089956684823532396144671914073099638218629030831291043931756456278107415739251489164354821120786724393363871848374094802923806794425052304924055107107724437096638855413196165537322833055564952475284066437811731805503096339778792493795814938375382888008522327408171859636762239546853411169607430421381824872975982046945693600782127273307298400320284514034574199397160607847281818675090511767261224946723652633009406578953742117333950747434488493922248989333986730989343477007006341506219338341909349774950747808967069733108984999660888992433527958440113251355914880328076130411253074447909970173841857398906466894887948570810110627929823804162042234733327335008652648444561505340911367241478831469207767204602487949496815615217258050404769892633013971204022378949187610937767869551042070052068808628014040354343692352642288575273199239484302191896015699857881246536494030325205773941513190434076700920919055500407659886150372350490635980898669494481427862155444929808206272909946021454201559841308421368144083396971060437276374154853379819784866499687915927233225449408344554566516458037413882260487145222281618544098231510335806133358912990401773726888021431178803366972260188174887791517312214863697297908310626921657511793254212375073188919465076311159218721492537561540597780943666254755308306028395593193556373375111632437411459650098798584995873649810902627049145454315228128471029240422012457546854771683835300555270386933193625336539449641270589049141586026640937486107612177788050382859476210974034523653800393780591963030641878822433236826264315692248034679502894806928942115552219273613849009670706273394799298325641507834193032509309132303643160911495228841904258214732039700413490647591672320388080638028979166315079672599334318808229858731664802142360134268021630169602593716691335057589972336071282019853140959097373759228944683477747386326480622253092136161455880279939840129115382949398156940804113364030163706998705515416669601453585865042291875335335736354828453670539436570867073286782215637239645363099559466109786729072443343442791324576159517373583218098967576670092543482962772203520626102674842640943358194102546248747045449201790699862653810054059924021955684338434378933672339546008465851516112522975566771644842906873690635354942144884415757268793954813907006612483644738514070015214110900663847558738635554050220264929956646174196594338327128948443181232152694943360076827145204850054180726346047491131950152887850507652257016568132124276443760269900237307498127821530993108454675495871561634938249367095022656934676521895088877958030091794231963544825134531840720231644465919336588364778651582269631962918200630309307988962291842956408956298323037642055967748265765180616830556926109455950055625975040482000382107238989758868888171809808551595031899409373984637815589939472715074560064698078021087366300172515689382090205560738669285708142729835105500596057501504277142074738287729299641729272317609746033870509357934629425812044317979841456767809070810434693245219020853217608621817698318261953822903382090585116135740999022542220058385238465618702109563857239001374251755306133438218675039671747445147009810574886180589246550121382761468739369464156217471238364645754500946302421765236442881700888066267949464743807518067352133449319832623896221074218487382957918230851739394390667106788043303269895397533161627514518662467266527787682645136122952944539736287314990573705005213112584413888208665938956268248887035165237750222818581451753754243442113031849015106675659669104938310881821079392615003472795060392257309203454754260374879610107239971668311099463817143094286538609510656264333666495113187891860403738592004182592818369382192946219525434465124094544726539215842519356627210115796182761448379042213079991494111037478313274504334070114874066189658550442930250357237009384571401936984127661952122653366799629076667120354366112556726575417342290246678272628550244565798269638779553301130700204460525600969343580873276674185636626031959317397453345901484294242746585157867170725267744018968333499991428113746732676770594996762779691572804148910955396056202494458244125976581710927736967859171783791636549662821980704116871359759026892804661329857264304524411815015543933606872557760426745913997924740059948279154090089936813829082630918655575485159962465631725953684412369703911899968627122555859168487482202565322624797164352821023050311116778751525467854694042942637524251694910592509538771649339645965805858973738982334015160569462120966761486311252350699973585077541845210943904703294704639347431681195634752434680529009020948190894893268356169596747896781573446741998117618371356214137166876823904917100065620933983844809195662651159419354834843229158429393096111978977926049836386724355131228923031378892328598463203290911243621806562273397217768906086922938003397584983116031814577336731680994343394587361743461998889283556281284985290247797446495490782226825385930305571681891555351241165272043853749815123915474885026262271828540664399960260678373997381556921333520322525138025829334466128497656785756241348896845283174000887129087779151842640689629845283143689511717240510948625191560830120079547012075108931940566316203220928780478259746390457182991453680686836281549311331291421618067533675392934210689825766340525823152583803116155825570798703451258453112612924131406476358042237964887745066168960187617455838285922912805428823337006299153625420794730327271324109113217367816605327595407923164597411655856639271065873521230935745068749426412969919657288216056159563289413221419511061359836152746694518028332011537088644768035193149335099656069790094578056189645476823483337372045808039486356864377781705089873287229414238364543033847969215500485884073924571385049525517280828242175417616682753685961785093220540589564212979932467980788189067150566361790562731832536128785007688272349774063716426773076686129742183441694564053117035141017252107958432704036773722946628313197347898729303088043644236332162634391066191006216058784018181768875456787908802210057066962828074679511456525771744209173477693411219511505064198882856845283392831822587712611102724438216011362852830527125203090479575290110750408179148209429302792585964824258151152779556762124134085915680576372414879100176484296655197434342516653545616756449873067330658408456046700044257872872797457229234964240241979837603871689235410785890300085747610611372278737578397219511203815744696742809183410878098646716404463037847388351668434828665563574285098011479469313906149354048824510456777153712079051506887704376304882607418608852544728712475516300904517431582213841778790403250628878685067375709389596808306302713772196683104642423980790535861008227134647838119148078809274498716997637344677631159057626118391718405264409499435055749359148708114204415909741365965392733175796015684379653037438579421534195606662347270841198860376158050029061308138199081286928528833331365247877179404665670132816794532900524086661265728368000658604216822239777400646838961205547489311429787272155460708963529045473328208593243093248201610782445992093788021319162970438579868814280668890566238464037579670613400364008351039912638290319261823613661302618470585142993328702433618989034500290680118244747535065172601595479711143016425500925697908872800327105255157164961830438764818467751781225030005794998138044755370629395541516278984755876462099104797306499762471798438662680114396451542405616138246027449448889387892242474930606334789351040912140548702595609909974276208735197719007149349151234689761461647647501204930999186289360541615635297340784383452559409886313615333016511373079704265895372001237304648514300986760017793827138839861014549289682304623964375302725992785490495063203052595887269127978217697568764574093425555096311234673990817354114078665192883697085868068084746061636589994064599705007947711905558078816647671203385748052524717292082982465349318665083036534070011142059836019214555479303022721430404532001748943048370326041328356182166865857904813078269316365699299553771789604086289956771214810187309911789812122087085938075233398539192655400012118810054675546369183916744332422411985094453908385304561246222755653539891637676409605789200293981590695510941746528845624167135910735842982319549039248294643966603469719185361788653091617365664374153258074725030864698827436035558165553702113410707079684959851067913986120023741929714501843857442030384245887928503417830804611180752816810242290280324065617053346610712193950840442654036468296568513648671385872193341932121891642984753481283973043223560290689434387198637199277051066810719844070017145614058256234928377649551539693229064295872607177448601244661748626857523662660603068057417577741686571390415352093459810919048497218643172695738158682419510530830093155323438410468103528889182876038907165665535632693255285254167298201512539002383745135025572168442107943497584518498514447052248270370331290119448966096386532425027368071823391498552765822393140552630008004492293470655998912277759905425138677252202386703191789600502823291850474390430610867732273514675335128875841939938765304710861968220343014452415947314847617391105802116872996942997359543987853776615560024422286059321136402963599774424493312418835531428492710369464094701346428265217778354559262275206189106315151054475418627804843925805877799162618181035206804363501598206758055081407628387017043728892323563034765239869837469855710284103947623343925695253444338580410571511663675728279146429305457756004537269677831328111827873962920878949324356688025014812761683576493245488234785987096445781255472369863347217284546295322786886310156759071420738219248341147679852745963642578192360191667187513602262292580677867146807802407005155055388624877000769653016823948234226720313244799941836702250837319435030206951381113570408989317669363724471120306567492109868342953785705635140308765462888573475754718840575479045405099223535679773064611593046662819672202895921558963382656583885623303376755991664507839998744822124422524569204924727783783271246970901867994978796195769634415891175217602468840869462743774950717512486640178552702886088838017335067480851046134958388897427573954962536825575384736210262564408381377034390181295789827361815017915721542047531187403432238001863810099101221414172203251714603003535233468277164368061067916915555376972697948223134679420085765398723988464930380791631955157277299526709180848468750837107914290703868785443611182923747518857607787979732913010655438401535673413707006889752285512213315260387725239550261544936128587536873333179658595309990792045328541170809634625217933852098448372745381478439716321112266477538913530271796096860443028941739605660092132014716956797888627627238183119699506003608049719930360769865692452721213610333870266819696620683277822735468215236655528977436078777269043014061689585557816129479784558122643037684419631959123886104627514671215397552014794238062792248385821734938490432497113947826670864026809303273701894352790995143175540191539921772894349970202636098279028774252694804231644747180084904519043859309025952920832701046789326621472533915627742091805096775036229745796034182647581811485793743199506964476643970286826989620568355928344240243002387117373203787430430321566696164111938879972990085604086412390728538533005200245685937192663883862070740118114959871872237472382735038882961325389046578614218601360274189345046799154247382096371304594562282263251621614822719800979616770740452622473490828079308060454183829996748901771322862633642488727288512325808130916101752906658795232986590089222319643208271788099641128293746448347408650728761664538437610349592566476044887997923871542550107555902976858203449296850530046944776597244535032723424071453225644550751851729752870651101029775470868383802522381566876693585802429675534353630989708322796661339064800016378616730664078530185320159372936117586809593530405805730439583645705350783090704704806351133796316255815575431498612631565402863897013124399280787890855065079011534310588151430490523539720254829913362712959541228987040423795404633883305268387733343791398159726893639623838611242956499859029660317180388936262584745574918982170967981894415365619493156641053706996510134188633491602401474673046439021164222131770926471660858046878254203170330418896132961423539360121239018670065465022751215520264267802573595450434063911625687564480072523797324398002357767030723790334160874009814934865625496871131456097926476586407777198737605161546371433054388069031303643657247298172408351782373001368043543098275843801918252033683854005361301990159492053735253466647683792627566237079829021859698511843956912858615859503664578458455505123831875272618536795425154413186650494543076354450071824875516062565733300261284445725742969756925918089083898471686281412598262011066563990141583634483594190217829252529230308372475370262767555964831662761373275569628509281341863640172497485468853663099781548787747075296030512501103208023237839295306529986939555316167794515236517642970467628334533238472527853634210269034005116733319780454762289262771342472357876273871522964710581816267901442735650242166801802099264021217147581569191599385325239864253324639007273219971765772920825683457666242231439811419644955842032578320384139597186342056064323592879813640207265777082643366544009399649208241176966513897536789778547253320334117032693314835083240340777305221168044328856007273156877191188310764155272088759849631222180890943247860510162793575428904874422552636420090790706612966790575070896075500199699050167677164513404771650622003305909162805258598925936427048279506672535077127494207342366544410217161696938554209604166996128539319629979841024733793827383628467100062053644145385626130264453715803930166637394908516270757122447338136533163753913816802658088742555637073576193254253596494555159784292911698787655665651427592913423455755008203279687882378993985376928552166898652366449754985878663684783280089704127064948534087317062078124957284559184854848995265343322888038062379704846789734016633015939222653982554484115867347682583440994269215709031960221331173966911273410983771639576258094291314181278873413853293841512124776786850328942940880062115532651896369793775977650482616911804916938798337232636568968103718461632618711615326611576338939532315778112971010038558009752635628007001068239857238221810547507357701688892602181788661375097400042522602961622294177818799892167370941856110834243253099464091192361758731184432938101161578409688805543839067028495166876287399783184451641335420295022430603865008206752419551388378807885558213041699838872101158403424765681156080813818207864936916215737972566100748931065166876217651555570869765128810166612606083809657036413453995048737963931718510681484335178909714200404245810910288737223512202359877692835203480394795154915388420896857564147270152742741776856780914932452534560364134991908034141068256103191204525909351364709650258562723678288567984841292751485444149580569943626879523653598233641755945637092394165465928715645334124295107223442188468283638173627390032035972471962871512970927355686173981270621186383811505956550745758021761388696755641108440891038827308415434229110844522431938466466291865796102093648036775197640522629098324940909598440187337836020144877002292684502590616158400028831702655058769031594419570359811742820069756285407633147584288706070631060499313432568755386528441124766449223198583089209046117207213655288866482192578229181176756583588420388535512087510544612814285760229202162837481218794037294403329970279421232508990357701469734563401153269253340651988777567683737138226466122153524464397833185368475449627766553089076331061814476272887450695228240020511332674207683070407603960007777084770732550110896839013311133739358233755448148399656149561347028109804233519819019622581527026524897097169748564908822564189250710526069760573790852609895175364196420540418653388365433512787568856658492199903696807594218192268757621024088821019831164893902283446072037978862520285622391392564693972201817835779274491422264615321611988416739251096803364190474041117609193277197673059942018146658185250175628665976689053059310418172789638121516945973506550552239337986679415036900211065585002487392333403089697681258285987762485348231664871449944457993123647622847732431164327628819417440701461088293124786874281994600593545386195147095779257102647952924427430311844359702067862416586828016927957286182087093389153138500030273431431971554652957934991841696674645330148492145532794360054147376199575554517896356913675538218557309460152415868084369070750284748774624894161217905153692604093069470627594709420077108240019763726450733612893328560908774887377342540809909017295437444980294496494451460853671720370874554804281730527117453365862979197792068192593829727776007775929048063107074262563381847900761302403156306754489844709520711997341813208538399018636566295631297557000115441799856071831920882125081423246832536676834384575580224811788137052297387623785595154000377327304589620629651282847261872820369129538073154487469037377541023335142136126255694392039699326273020741770141875754886545929181029145249410392883644456751798988630629909642882677421826342723872433903708654903150672981331158243099711436584545741246578598426291053053369648006353953407773398498815789861588983049142522148549229809911813673384538977319075586668742926251987690680687498676737289373633986557370519943871347507290526412152095021066787005631553279323055557006132012553340107775915664161538105844930955597908026642227536862950638504737056548445919168422001984916825613160004089509200045599188717005272722175718928045697740239172349267865107406397060698663624572441195108710735153658616682491300238045841763377281306668379950628781541636701517471284959206973607680263210333811594712838321973354186575379849869779876361987058422403299680948627698170894415864928651516650350138783104553380737185264372461043288126289498898168122572365316128680376406209484886779201403105692053664865958343257155809782958708006604436795471424483218750904965843269451077597451551726163326331877750248690926333410968533590216982294054434468920430955600662580770398763545571910724927027790052717357176427501477356938331482565989915062006172363011382591814322592108003556177558716470188239973161508078653168204894871734709294522925304984331738172129485640830579216041870951033243626044066395466803582975534544996506683474971509656042034474435605089326292475786759306073715027331318863455816378536801484545579641314286152158070518748006406260715008089875719928214967655984748469105626206661990102913381510735079031535143590514677137414029179678677910063466402791228476113647367467995114887444549546614347495482530868322339701211915109294462059906215947813421426096014246305653266148392600813667985063319276585647853963197780304231298998001306235841258561375230732284218001709933261525110912564321523196337641820035204665966767012718660042553007715828995565166703680350665270831770215438203081266298312823281598318855949282727357710401436995742624186952770449388372718613943959132714481293764608088059816611629409774373038368696182482827128473016377088180404365578154775891510350925700733587248014007890041727722126518556884726441612955768986699909025942146508822595396706302939029420335847563279570903018033580952263504575114292817811778740660641087151925301611309232893356786754401630599211078186400292070258268297559696418715916902508803468670244310083140013075396841323382834218396642902540652523581013459835187857937208648819238660266993337847895030714209032598648427213816127901477244131507742285571521732214914554062757191465359592099307586455731047061160331712924829244394686143563835219720598898943638607881071650113425773959822138187886019416335766644698640719949330148085481409551520393797643889082884716568098304491451240043410258579594092621087045185717369065984277215691010356171569964488357979396166089740969127671349756541338451378778087259751009467609112083581640471832254028920490372207796990581567565158430742437994505433828969987165584611762511837555274558521703379544548366057287164121861372218121526390611306610188317127745266340257649652440545994700003026131086655230297564208698628490635996926482370258980319577262128534191997190870898945314851989407343317262518959868399700852538863345085507940244286188316138289614106002091737147142766049384348884247543714416641871614025831808291434634988317175129951879259174981098533497175607634538609508037242226716526151521852057101425254104063285022023443562439819933253612746586385430156616408284257063271422656763171095463411620953166863297191089477693129490331786454274913774732769583328412159904318197065511596678409898577766222921554265295484969222467077733672896490168946029679294088997598283116240482983258289433629655789462830648473100053571566966621737125619874438087597276725208857572757792021023850236878718716778116104966836034073590222341246119367612002288181190389613241462526810909904069277714814746599716370695899700486799738667435722782349550026578030798590951423884562694609519745673089190728478739891368225658882876106311850133498937256196061359360458909984149822394446498395767332787622913867603224657304877933434818156243993356326233972518609185716169417642051373638472377954183028070653171445108384800710471203239321115557369615783674108908752985781387074086200734190983753020694598022718505537097570685303863104160271839778365555513004776184763281675131758502252124866744813151624551767943327181414499021165888994009342518824850489978389911744720142106215659214651955520080211293398814293505231008495978242023796478911807021064463843475790784604605633167220677987080355256740222481187784204649838116431966872873330863203169049935575940520292104668704160302728748774148565872336267765810802441158358753236487504013779197695767262306676843211594623431993057410889657947158476310043612724174247921523176700900815585254358976519372983371772019091359928823740047827583673451049585711321519962961392135251047878953731297053299807439753078642675857062462773409515156831140918752389406008529631899348254314964288839458723217267616369970234792509533962706688363107105733603109010153595739361123613160036003899380243636083414181394589887993663770309859033136703621751717767261054287835530796162692945787364728812050484974212228428281665496420359821290243006784030895162571031859980258865804593646608871930575582803561822188180197572480599587154602888915724717751735074682008632593806056913918734321677258023899928611350923445484912753357580635699918674229881550273253554100149455484849559766706692992363229300158206743512679581213600471768698930527409550473708323398150956731705502395209696597326991309752407341918534234779869674373528684702417794327783751536810428182744330113913855247622905231276479659496776505766506247165666882676895686416919430339718088429763794100654752707013401945947577095549503489147184998308507702832246664631985914312339481767786471873969542266374652095608443995985957385180244265831696329707754900394212757465941142928853542951098959119879621203894184047029326203181246761090186407533076653630753093109793835361113280369526414155613026175406342516961435709364771495771130179094745344148428708296594577336092656866219575642752030349752851719323041048565711660291196559440574892526439127323802208839553061073997082080783925442344533081413394106890254434823935505061547577244719570955366839361178361364849959112235226637728707473065632682124455740520056461556462322827085260442704580376526536210377214335166204226614071053455786386751197632213795288852788992599956134842009869430996134008827930391772016241602660470048030229563211184846088685815551168375330236214340441787211492077085760009923677775883166091798993381126167805345914860009539690971252630714738743042177507195269323368060256470259396759078811962691158436459967053950871919416250778689571428496263575427856401377149442551242212156491849480748722782638488045930042321410681713335389671988081999952281784678116912835095839580658562821202887429865469004610096973460812296537795830640479000678644124566331187179503058824804522232962194411387026708589970245659852402509981999668489630370417556566480735360708277656165886351179438624675157502441761724950294871011262285581590773285715057728447678073506812028800563851209763318435743658130711853402120121461536788739076606552956761695607562567318596731549083077577525574926063084918875438361947358309584391965490271544638459409857068447528765663089591551508973041393834420765971343334740370317081089821330801179312980399855577220942982299579438352613750767839793368798373062771077795910617236607481119761311521449176196556525677783523223281337360510713585474058019423115281979996437287091453418159095609424624155574828067036086556220293964163708219932223566881702686424354111510915081463416690479685440303355741487512071872633315379920681604427451482044768297743398300154878295601454190337621452711502646666487874467759204134118228563987811355006431564690372681594363405806870746595012533089928652468146676126032959340100575197833402810644120309581372039439527335968557090510199295186087836694401834303927426165606033557763172472466344447764070591201812229062915348493125840858002154701341440860359071070081322169570737733528026565950927457460597790179354723383555718249554998572631935560357425061738835447503935413558233422569209089800876913167346730859819993294920158252432014289256329509865398884152020216852555341367213414757332078539225150807834305571087437966916818024810783134283430289523807250497450409714639191762435990795998808788066050631963942656501398918999575862232435337638901086003466015408827321675510677339113067815991324745595067080205534497393953742462203228447021460445027750820870752119624730195069987206438844664249782016567795195521596357155599726738629113494768511035669710621031259363959180639081557791257535126739934967780795273715116377191254954779676421898772608671270599279315129617820115344945366815396806134008899633858782476821425337074758146674949720527696747884386061984487216056301234949832481641631059703825645749677883862809088926957224461157735947914589785394883436833398336075743009799953334739190076998144938425136687928663509193455616151789872851919715348368659057796744562911183822769868970154903772956756440923634456878967242552113787121498876858276244173408027918755201427071149362135909822363900502028354070472623054476477195680623466336586909566319273038410338895995540540731341594411528778628501842104940844824115349277656709232119327156848768712808823696835140903810292321341935629955849363377241095224346181958825211826479825617565645387207503250803819721510774964026634610786639327432026859547195434956954557946679078655285452001004392443065367729155894134876591092050510109271294790696226366876488699257545452464521880939294344067688099689151760818077729909908897399266084942773182292257837913840522678853803205824311085143584512702526638418842127832683315417854541222664075559381905978754669957734388196991137978035948973033075658562624858963379221774822301356103475904738272605905807692246682162246382953683013266679162560358940212693003644052146841744747889667051289111822223110566380993989466572368679869161342194535776172527817301579570758456218524755650410216655164516638871564355731425577827034740566745509206648251279186647299984245627091835560131637338252550474057968437532012598745912980022114155879063253234044449229340054908848242971553014743861414934309862634417153787085429504438068223102487182932958092783129109791491589075521797546331172138131913750845929998455246637577967544226406999515075840672870996479321471093386803632650901100044247635685495683645350573694507007510120156333426582344177870717617666333749921251585786240490246567473850942169408912886832529191147682771927724975550855963736572762337408534009007886628255885683944507490567933146960670727560685539905374408539742234019877579046585592962050495674991102585772629767184918432577097008471888277017383266519708421224184103029568545991082992363003234513033753226127603248322826338181306504834479050105737382815992627477227750199952920395722333970999125806057187879413148598503902643497667966320720914839198794856772036647976170756408566652966428772197530856033544903368732655863671495505061106644236362229776866218852618115325356788816836597819679075981309008722142350371404893356635628435985822910337547322706307812256865928594320888062088213805042349410626784694464878424258500682609546835230077363567023208717564453386380427966435437487151269270308698773053884725303455671702368050609376740210976788745119756000208252331360258360740463631971884653456541211405849148779301163906016773230944273202532969043489531982743396292476802354203857040107131245090732349395934637287100704565237284018137175369383813629216446739901872691134287229601680387126284040536938900120085469001462339367618926519547010834847241399923479017833073279705701600694001131877241796898588002457588322960504978831862466375793004734719280392890931144366968781745302959842267850753928585692306949541903606648862590318491846509735923247640883020364159917438396638485473803946804445850979096537113234488721838933238396126927729145294754745651963210790639570104862478513434772725258987880363727537853372473190885682764299518832670080920556113022195367784392650260262558684705471792654252594155258365697639315589640893289981733510315818355730287694045155589944757480091585533518734581283044098863540532305603749062126539393296650938450714843352748168798124375319998596886829961584747048623435359459787392561782590766260100542404393153084672557716500642803650977353277208946171921753448656949748410543264252807854515712872866143391741448024183364603266507617110509947058531259212245578536212432449320081580067284657086571655232035450909597421191010182661626080108764753207682401004050560427994025617967441116750122247700719538420093784283125132036942584219559357954965415669830108031691155043948614318479089274911495942226700103777613459221262318097856801837985189733987146544047358040929453154325211327637166792936485354250055776748652354190645031825543065637219100247593542233370754359874700479409499541640315285930235841249337468967359595323822912576143973812238836276737246503937730075813543652929056362053599275701190782410552210962906431779497395502901635004579580570491080306061360151145139347758304413508793840005857714927528170465679814309042626634016512772903739831338159419224774975514000846093480352940630197198485048091116323715560696712464443101424851747517783329780927787480642462979863633992636797224430745122078302739305571853845227595768923698429912802127838699682540657557667113683754951481403875428406696651199868970556760875584187110259093600632189031497220538134085884389222515618923156847418860476595871614331440921571375340592002284996784324426611606741890302120992820707676588186991251356696718026979299764962666773260715117947494447407516330482064530271464404595829475488677486784749793442573501143336906062304777948216180322229718775549034513827164625235686393035374634918175459037723931878720761124458857773221235418823901309050675563023149479589467173878216980220486766645952896247370608093973337555062429687338673150697602586045729456531364949079358313936353497962504392566407503153034846492150817875605638244511170105896896419222481780638573012148810645419844944171231437410584653045443478580571221466954366643194754646091732796567724864276238619991392709949641713279658165296335896002332363528550039942844236864825881044685024280321342599790907784652864000417355365580264721905490943690543374735657891094244139013191768433535834508736603642573197445537435707434522034039957661332303050382219461366217898226086281569816966870645432204099432873745012660385908647304418340245392446170676874573705636570596848711009331107447890170631240265614859067120356129711062419134776017872405916127587403316185011934759419886147126580945966641611886146636281316038454804530649653098289595835709180440162983346412950718913394601518596506993467385081573993087402905818576190696804564705406741365455360475852751866181471904211612674239126647010627874834660079362574591087343515414803655810802278631541641906232495933615871412886218864967302214621147878695993110198863886515860879876562164319295780693526692210649243538638807343517303929984895809650637691940845796215661726681474478313711112069238724844161536503517683056054079960314218604128670001367008013260562726217438355758921616521718279070763163164079363906969513269643184637640932675526091315540936289771333539200077506491838128023158583152592130753575551579521913460956843025553453706778231049968504595878699352767593891566880356621304340350047613535470676014366324040624424516589621161580958922698237460210975655697283753726318183343957098731339042502233041896021495612472290448283975757296372620323275147010390975780804792327683567180792623624149230330174199033822024506716696380817061851591413302467510813308125150117619794938593960593538859517818612664099247202720384284106047323982297470998422843524302170731949287013829746723886841552988387129095255598532017311506723309873079802388833569354390679225095501444743814670267454146636011397479261694373807030982206775668631758995252116926127490919894482316868216124527249747354302978439580635167560348132659699245845646618286434289606313044004404453509163138790444350571305963122474178442809345135916700651828212669600896493696852967291017094291090172748720488990902018542405677468683869929145489741912056941388080904566522657209831506876096954568539690274051614964110790551627994306349657920257352691582781733991190228036521795888765973124529900040494180054935433853862890646225076906817591840861246882793531023415410177314816281078447178880891628751825111607878077674645054691351843446905860184469922782260969600776476585077190094502970633629227649846916301303380420367189909605452222200817225827174820042216230791666863163537398340192408821142009466145172863161749970151858756513090872519519127935447631925438257309360973785676623515449265215977107168811180161589400874930643123215743298459526259256526672843027518220365373309112149176248869865983334505854121440327707853857074066976854062429457152234831457793793554519338093732089903297084028988190014244644244101112587900630286855048380275232058205999753607224373007433963930258847399778764913559000828683387148218238581952063663158704784957197261513830863239870094374518151686623175323156641241695652617989754905382817490071055912216018216007270334757741428920104346787477704342314639562920850318804058143937117201089228490007608061610030989105576295151907386435812522432820991865491595302211699382122678503135554497020658739972391999033128846232636119266211059773593215409674253217414863530315011838062422432414398657109383054604512258433173495862033764714605185491747314567965161400811411206584541850221042439760010859914456211563634579323698213748409387799119101678197205468082050730668309456217194077572138858536698666386380274953487988651441420026073128537528827433478984195758558335632612882543224161113658626653943231215538254415078680484533766314299890344885748608711454483887079290564925975762850444054666755579137449187912344452066625632027258673449193003120284818880025451737822195703539102835570359302561313633563270104314925150455819638775905867572056475601801318503337125872653861092504965833572681023578265053826478771040705339580473050733311020636663984793568644636830856386459142776387997398656393994976137268941574478247704392748099456337813188269594550004251608445791894370546716415299057235746627236274122276025664914275885461978596712862024407974901381990600706539437734458359230788873146611094425213130146090185042801836100462370911817095734318318966020650498802667956486891342033768290785047423259481403458890724478629223954686497159303244892883830553396329442810121592853431039572226173233984773519384549526824039997936497427700264781778749855201316811348605245982054872228365802596545679350745067964178982626881344106321622617590113518977751066725123860215615050841970105721923879954394885547545675381271425627783114997436786185657622911060036452690016257187581578578810324235372666392845094812848809824541056730485307705232590966410716732034931112015906883156796251104124741441692621003640666010121423163801236119650713217334604466950726003988618902491498230342395874738063123244636159325699012873184322720493667495125611298343217894188787447445299966955299856982370035234858082734631188802435342893841192068694537610362350168057496081439615096262568298567243778472081857549205173783540103122308117042411318960839985931231915631484088590325903417081890188216836613874268635077309914451388528945275877857179071665219598388636194109895808631995506299172538212257934777300100768534632320329608313826220606402594299816988717688249166561119186433512590082667500279218539629335598627598768385475431114993913943854111064359349992949356093954371894705424363866010656189552262067001972619373397073829717047675889158455353590453803511954044863858054560159791998828741234211441036936748627963999879148604296289488023384694492106645254490033362190069370405370393136701933195214931414425111254926667997704534898884812755755140817021414196241465627251880856789171361007742079409037323759767593013021353070608023378590033716923012323362962005594033116345719931096553742856934995658190791672272945558395505667316036767790305629614681348799203237808525214422257907241207048819253703726444239577023718638230392351347855726691433835781396653656316957498526064827815625999065100703349366888350546894795061523863203444973496463817279213955855033127369927578345263993890738699712024467636237650341678704983535074527145311286224760126484154402661521667820967447943861962579421808718955561007780049674485362043919426627086072408245959760046097930195853746070486150566401372586591245880263897141814587980072440730876444141945033041177007837063670977867307287806599467230117341626804217031249532537640986869080109520875617029124728310489139036155677549353945279759971506035472311004064380825225968318851578022785963174125864760443875339378032383688920456712007002333398029915130630202184867297693837034461470511836753221410955552459429913556384258113802274362615788076739281059851595978224051060757453756444636292056920214912274602151017543821896418107061795740649360723246151590198522263970506292394055825739056068750535659438043958907903404840160357687825989890144037037842278824153934014683939678440353335451297470304933748086784387661830830745679811272380136244787796058134429897032753476291713432312418057744014955485277481463423382573876453961120585128628158011069629975409240281912400290405047060356110816283552290309824017694505194226491325217573652275410451031329335585422993644067305297564964817995807243527108343263083717433387417579885039010698764111482286906206509293637152361185195446197724324824655261277716140243453409452789374164099042583154993363746115967006779671358568466698974707583879517757803587013961157489231207416981245450269355188284039609779511247241723584085302298450443030733800892849221883508550542055097539760894526538025556020769721865379457778424474890135424376246648919873432802281556022733647008519005554484363837196343061588947405793497367548906509159363895757863517038532305758938293466080469922453356777651209258544171628997391525800661131757450347969710586767883874010010589944233432134898699001781143024417080230425811918746825257156411626308092244972838763232267321422079024812838156951733254261834712369592422286982114451416398172176582068941794862601277055399719994148129447444233835393266611967224346459067627383921011369450533863537888450086689685868190376417078556857603569568360160130567119707404189394352041274480220847040378184687617202888224439349605920591642889794063359292810231334791734123177712381655650702705235249570111739484186836903655746139474087245459588368796687800760148454894289978652000764191301621219077814926134384002407923132136147109681395543727653512552386399623594303432972838930708036997561515120438049178227603241523211028627871119252176594976583435768261940278365788612846994022013088153688530105435110608662769224449073057326209615467422196875516749654405999375638477974066390353046130703457731386884475690087366962875766103697114050797048388209778695297112851743516054766616616164508883169328953897936037896831584517003569597331545281462937335768976213658137512398270090703905577670761412496334080423348150327366636686889304648298965668998792314115529021248892981709394687531864105827741060530682222087315296485417649676942941058036106840016560641626252045359868781036477212797982176350760445116837223009193606756579667986903577640204300753437816459148868695468449581006908564684179027361190435971824202175543679615576974206736534202536182969350548808414626114672171464275567741021668126448698497782688060510754021457423296558190672631760609363409140252221745174460143355612130291690945457321942254453557442527971369514031419253665578778396973920580042505554531850051048020628281709097581356146801882645526505364928368684813377939924612199722741448779835233087730584656678460900735881398703644873135905791514633350156297111653307482955687841015269704924108193632382523202895663932800682220703444559397983303776332211325201071223309337937207146098682925231862301799701276687376718566488167514016535844397103410886747602329031747259838965299772117052826686183823370519531784798657170120010180220239704978797568797061077424945697632826727967199131866987594425134378221347085902204318891821496013051361838000155152587027559039762461122169494195638512201579495634459784046063428070249096447845470255545439991701921085801615813438142640391561945591518754281140198356931749836713021863961631520156057911883547883302359883452985368643667943989062815869988016691885755845787093338215583750372613277971703136949907830654047107391039005231464680976607089494717883060182946877129620904397569774383278775990666148724658622356730743855597589230344019121850030151677994936868088414248090681549314595181671587785666640059233807791354125101018189135691296530094041207052382004631347795730882336676537005353252127149992775950164751154658143357995969392894938877019249999593326755618092668251979112533152748893717512647169435539764938317773133181546240770165282106490952444004389521626897723692102053537349134468358855151904445134217683040066967294711541094607910914869766420602785021977435321230973554517465851999541024276531798283721010368089266163321354260397450833594256395343939496877034065477154108563526402853196375917448269756192307656573493132692023482246832525272187562566061060973388684603529892674187553399410713783795790249764117043805245143751130069474807011354275723815107985196311213410089830871826104969905805596030558312258777316135303293989940698264291736025082621392282778826349553033641178382520778116574981025304596943064563030370524275981226767043750845949052858325198686032030082291130857255453048130724626419042964084200215153458132124881361531992748831932623592721571841255440200493553123403842043986894492261077550916090099961811771040964702406572760683929681287253799215248582544889719644091363638812407221991745147270154467848489812084426779414276554161176355339507870583317527937758762479663685170009230625439381754876627554565831304957734372368933918626492222134365978446547409730743230535498322495615064368801933617840504882685191268081744359645888738036579908713413764745673453367942634855014497646804626508851972058432486587546491388797063166473710631359749642116876516013023896868814030375166838425877430825402980119808280142160791921772595167194896780622750695344317706571848069049088678100203563792028819859382726391662959517269986734557800990443349609700847488201537725144243759562996499961480127137027806617666146548034706025859519542613322954682085100131557878129520220081475854022912386299426904762257123525398137552249031018572673073039906819922766884345423535737241506098986819907755093217493810097169000141039115501008336969193627559772846495802947703557508236907667286474085743428337314328439005655287752401538073985907845393737889131492160260456094580621322293442972518965341066875865091631424650690043874124646379229202160743494049502756765054145232899958650188553760504054548991266638040908968251439776187151033994480278874037706483552206917721492389232448585262215201813635420816520579205590044718659010770159211403923115652645814544422216372469998055864506370525992011059626075890088851999112107313162947767912717991591180062251683718699299616359864801064819487667192974576602199785643866578825172672767499384877218294423025601630056702259029715326053947836062350299588933765352770638041445120642713675497588542183114316942491190322711845266526222635836724170916247414969355108012907983039214682422896929956818448232258957618621807618946896678223140802801391421374762974641015597067190054479951697744671598174859868519504406414119872738664500062622060723263363251384903884249174200465265038741251151942287388258251571374991520047015372154287605731373712813274400526777018109883115021322664268708832281729567581596514734197003099052706816828677721470521349238507776574864817096214119963324573510290239481803521176007934616614395935324005477691420524780945950148414585564008246145502982682230589550451443288744452115132949238153398550044704372365752835306234564248327789478752039944538307215373951472225568071249819850192669213819992437880443340917180234043834470697084613300838061947876235254603522310502377651400224633097627282895087460443960788052120178724636183938095629389361618388381061667933270665889577747106098792620537650207765169276867254622245954735239774129101641234394812119300299262458371137410359700620580980050634800537190747234073611016382707169316581011751538595800169362429906509656588539984111674776351946802391043992652986519709141484398203534273358075858648173170134737340676683760691096322309432032373736868436594625859585246849104746652729965675906628280403968764767448545972350806112316265483401551800620335250402563004654118966652799540801955221641622853108377842913993184665221438897341068218851843169788143138403371574529540291482612000083258337504022330559109341127169137652731070592138749403059862931006485605456985738888594962545458013423594361814196500229068592647744348341381997956748287527343363866575651983309917314251715361319991978872803760679770816066294957919628290028534402651465770952645401976875739254364531705769736008990205644482696870142548647153361419987960604861023379125077322281576526670329483237294155228090992793752621553263417281562796709580306102286142332128093455058547190038496491753123421208308112218900253860844598991089028416927635851981470205529372521754924626331235008825686012507042279387695573106434335136381896538123482145509668335411217416832807057435318689487743744572930858524479539428748343080185314828755693322597954727242145047216312984641454913530072340557590179428061791567793235889129248437294438749982553406622617778829906515059899617704189989458915826972016196495380112628582234298993580049426552636869409804465742103165935174781027494054509132245328652779694386067768462638138785706504987559598314791394529498541194274374348300016158381786859308381656875197156760539349022555044161739703782726192568109132657320094328910012879707705839947485428822106062782577453857005129530192344075265078114735601496840382377716944575069532315299924981422047311030973348236337470208838277445403562170198021544312546888853453335337133471264292462089718533281142775917199492382005089433469473230489687010569663409893460225225680123965009096778521365529485621067942440753301717794448062820797332191882118816157023807054971511195970084646245949641735736078280315058482821572466525572790217913834480958460606450601641658677324441498612709965498184273860010304673480446475187271334340057010710499423285718569451537411668439943703004990862596653754551902540275236836067984913202451938873178480698947387855913148026083404049739909042464233568317422756230666467803842226233500091477121931656153113007735348577791144337211677413279491908227273665711515549104521005750868314265868427989007355249352707856242120822951685385399064971340507712007374477152142030995356529826259922834025595715770523099058396224714815635506857739542315541535599599962883543768887439810823059939296801715711643145336466428138953795582981395255152730428999080849748308829089117713275555144340098814225959839722880857195154017331724109180274719208022914715819349020951509485204333698719939517165721424404639909188833094196942630212380057298210689259824850112747490693614502525900787444337591001443157749327389069311027090970532469195245182532441106730959888861537990613180825716496652999254138154469965838287550861972180924077279624678105951394337538845609859266596561158741770832758625630286102437314955871860558149380291339733836963476182004777831886265222056209532347591775952489570832387840766906605359638871444506551292308434395884603589425714088122485064430086099108197847061747352712325400251267988776081758997423895974035825426172709099035222375975882518091820059555130276156452929566736312537682568895312168555216611931623245287901639064438994010585556565379229384898520481810408126255525068253518970272725959603211022998169860954659922190995121993491880035266485486857441200588228747885958384602341377199044006277080261119403225574166520712848641246117826306441473738545650417237974161392623945160890151392138487469393263176447069018644680925035008725761343511784855303154938753936946261363927476903251264839708675253511995347646972504119099983182578149472924515923147308644004278969836573642745206694430772892434810298826719665705272073101105802794887785113377397943743994873325607451266496372266849021262809677378757143413728268599835111957065020215506850799655962726027230097126129377610721571385546721151581285424935292584690773406697849268730033311075797369402232983034887794283356764192699733288850080004015254324012291858443010240465966266358222797875803244573545115993293183766335926295131678931199885669635067398912824591380617291151895846468031536170362931357290659506992353379173833958538494824271941846669834253316400917168418396987931757160600583729152845029090472140849572078032638588200754904847445036741950638008476960748549472124597433528169818701173492667528963658264131723785145735126334709959751777895216503293241806514704678815745013603039749273792741020464424617665510679533705001355382954752343797073296801560816637105767130358563252706549957499139220844794140594619297245492556184459468866672048754114504455991074962580325406200018113418439238240551782655536035348045527265573594199760703579234972701705341693340357144915309577906656573761728573209913542759774706855273888661391754523628032268954906979334118067888825711298025048225095537284584652119331751466807591247261134202293692273185978014991801951644635051074085926382516309149237346100809352139763928597777616342380579079278652611177186147643518959929247261197486413643363316421696537226034354215588104394930926093481651072569579538567367532023039550810192413064687405694641045293420457231151390905549677380930699598628462541781690565515250333252349311946259064406411454314929942944160119939621354247876088186993040396537218427527070331767954997586005849403169536580929242968206950303039819481288995294841429124492761615711325741632120968287417961845995009750455442067699973128529164583366046158166410917967289697408766770332007781529082228096241436562108496656120995851187238643566747290756987549525183513484773922769287766121539267059848628471969892788682548567318213733258687759777605351646977055616555413267254132591953723325415878834838151303954244049650250551623240998597078265146511587504876828419390893966088018265572542223639099177704566654843455026872108070198047060930785496540948836245524070137300167019761702039946154325453455181471614070834360433956566159259052954359490213731823537811894022211274114216560462589427902921806238356439753304236212507003583692045607280295505811098957248947152753756197516185914732172058624886188158544155251068402296798670377165419876879977107609712971736519815818647799183263839296957452887610659942703058459297479866226262020252631528059067702335500262653871087194580328324012490701985842603776561702961105239656561944483557845113920684802148821205588052487390218361064203373555144113483055391056365011933989632550772231290431858984748917612406751596324265654436229907828721671154042917564748593679886661435163515254918392478890233429061948053941107404693125076257431192341947529751971509190834382256373628190379178994929620528338897060957039704380640238703277197479836897402695867031838843635180031304401740259960946603478432407382059552332604385724373170274924899766275347742296547574361191656748227407188198048802845639729062874893556205020054926661940347818347851599680236503350684527056617714707526359671454714952204255747995798755259967883899243229991968339974898834739352886984383180596349714115304527199410823020003077303758141002089866076409836470918720103440930122385805982382498526377950703308925710651717882217910451020991616281614372324601426588364047191596154280244992111926324246456689912867957265675449129857221462859646053367359121076533850183272367237893524073702914614256569543573882638469997330776975420603293987446593891027895190994523452337352332917881867510559032641403779455186934163629125258335661990477346869377848953302399596566293617789543747491866674128096635322906809341485734427818496638620599131459196933889173132884889450559845573470562675420051930328871354620423837569878231871280014242753535810148085322898791598767506717113462457386174773943590161355169952313679114221028892610298067386684616212398924823912240888533246012725093680924806509074709854408444493769870272510437923036938644228247508266619390467222870320718654802446596725558679876490007821598035888836785971745825830767792711798361159933779058090178316459873723329203589504221833841228352785007440490534229076437112369228516092688546582367260062205986696326178000345725618275756828791223575242689285767504519144481186717554834851558015963507419897459823385123088319900696947536833171575406213100480698048774731798838064910959556947748791009166628809222963364088567927261265931057160405060365329293991627436576525438984816961653644176733095132359921011119236072741497672033946638619917834466867836372856071823433963101788333349579810377844989097362957866573490583821543018762260746296210512936536135476083951538806384113481348765697045199128298939367738721840021558313832417684700481917186759764021875088908416618309933142656952342071915146912465594745204491198329140967225425207325072401048872303793002338556943169116057280843307279307726687486591934387855983290948052301840567014642729196866849758903505242545551593732178786420644686156364554135629653089624096678515914576236753632805692159766681070320778449214689489267726770350237748920621027905613030071644953524726990038130104856102197010653185106796733768712346359219573726288711000763378438668370109278505911395700639966157266735592769877909591102548644410854941300084058329870042316764353694565480632408877934505590106856277225601481301004326847309144994347404296058657965322833634617511673559646393642089436406429844784195538601810008065795366014954336875706222860171182119438549200808548332408876785455399707276886397602772374427900653506368434005844143315503171212675603957050742835928369629817386737324822541107427633885788826387282872169479663179999949550169341691653442084921178932473397037590467261553264481480652494795203394933335791997315204564923168448585634744658793772079245901501304007153158532759737639952125327104944120727605378707651287913051535658681870869666719673111888553463522268003426078079530031232726607619851933019536020354270118450395823140568592066865080249766795028415262550919770742446319247882744754304177072900391308958139213216300785228652900599791170177273471090479341429923768211902146627249529965186934191081761080708740906089007123781028572420038281759051368664921348994224822494369061311323822654884316956271896577174913166948041249143226940679608797447680441574226616310162763546244911920789985720653076261279952285347362973709092786785868933545174962014340657120545900928104066927458938849956369057691898889401540317384848059850437460953540110603821635209293035323310890231679696324101777139050513773075670941080236782519929410386450792324228907346206611893015799610273528840532256043826172734236362379439738523920915526892795864375019400642132410398047382201092539453554938627384136305518569523105673436859468084420603598907597813280075972837258993132796819510963768108869906048201678356246719579444492239478502662490320684386164932242340685768741025831939384892009667102496528393823382517484945716865683701332288055364431868872248590459522966822979890138582249250960525023394570009629492778312772301542499011840894275625226478916266147065824929523662916409189541039548998458389239921600810146585684813086626109288043066155967687472718940728315522087257317815535229075373976031174404412255952033192432316818209075116352228465195213748183769149800416850866429793635928754516825650691476051715996723435313706021781725161726300979737180385163871418158378903775314941027923825858248012434271666259196243298751071314860346337845707486765089525695760234265235837880936909640136245939192493317376469475540120162744098582277347302667427066824330671596822193737768991143019450557850054428375019717044913309158851697891828345607214175930067509589753972415247968031077189662580217900825100933495794786782625394750298454403794578630732580323483661967247880320579316028639983487306692309634532560108480139823426217775391123395511156885210472499786723272151472637259674876966382542430330024201214842943404950789181638760215169120401390084175962718327880574154158742828958430227757824195352780658264388410741355920703113485783260153344811803431186962032844591248287882616269200642838789424482897737789717282688282212247348788606065251689180846394142656552610284395445341927018638691370268722233241880095448227654703985505817256655528169022686673282105625860106343561676472077425330292823778937304859367763201364481843135453168237107921082692668253043504776938287907585656632332656562147376302449169248240816204677888244404635390994186482098008659853358504326613152737253529070763482386233035845513185989583814277320776869324282864800347955267227192015484790876631997421955595005872951895876378550869570258376543272837443004939740934643014626127295664637337567200621019478927741766186119634282544329350676818402621947777734650656903927368432107922949323113483262402249750017082345245673375739667700346785788762140560223211857561654940329226486737173911389733399535057137587589125142571482639328359789205960742323909410444159411895858683486928881502976638074597285703245614872199596459976584836416601934039592390327770289939262539301503455686336784435197976472063539192037615849674706425669924774068183290308849853093276029545267657793727125031928421018377878507386719331671911716128178191384661287806387277346392672031111734297063947852576786429943524797139892958588823056058844232294613930521902697082324045704589330688904093333758078867607291080640307049907984506540433301590657655485822888176388348353093761229320358591547067762891632399119703184001022546354695625267057337356896016476790343867108058363941558217271976156352049121441416996183654921239861238675698751251762871543395938398960564756225945778067034678830893124794646810732619141788222435015839995332496787462150179030423527506351824258567004581490917452433100371535984474691892698387169527946525833956219087893649217171931617402130264743497595006517747599971456767042217846435322693152049290084951515052807384684391314390155678330826828252832764890286580488295742030508253773585138571972929278180601040904269615801474058010328730775335745159070326801010385101621861827638449219111271381440204425185420158705838150147829039982515732486693466587328200766009887751898387400481519884023010813544206569913346680561976490363949740464840974173790420000393907627140684542797429059090224116626258178182368543648914396414606942607333802581957428144951772355825787884464142954786581817885566780766742939080059844740262498772788908685988689800975428836048163979277537283397688026224209320798803247631982442868569920038600962037124956878747504769172381017355780335128297273062119908534184105100557115452672755915635219821727472585736838385217896306786654139310221704947763685161984884188709293603258898563945411604691215723842481730190363715415218112584091894667350773792056738413302232110750326568453705106727961964022902528507244288486309692364337182114135185029368171023333244033405295189261846671920195165476541918118792968978220091045169046488170004198561621455178127144487018861072327665287284328838631226016345787609941191685992321948153764236571774149766882217797200440479285507450860459866479342953134980625861507538576269384787357293530371689488807968091240937244755400160202873799804017747149713890924466332211518068105822180313921429978677331299095927675545799868477313865021333385474165786441908734171169607538391177558938835461248023227200740988630214734237609982238187021924204375197907671390943503402985297593200938515305418248083129882146321889186579256414918693590631750953388022034100013793884108057431629581016142213493752687275228661086340872605028616858370516408179088516448928141000049008588175698253545917782426682437505194316341677147503699139415797785217614279582014960376287246908691598535561831402637160829482463115560002362434646810762453563018012329669796701894705346255323416513298557768355054155822062412069303979327047946420709463108181963111854674363858206281602153675571097936486544413467404850255725707105688156172515726144066736017597850513732638329184283570517966695857922728748645571481120440284729391135962898971394013271156111153278455557531169683258884015279636699972699787144537163654135823607377898089340662065074300081135593405201657150780503286030305626710780270205616761124892943101757035363348674057038136799076798785249712117978799794707563799398532132909103154574671860804116352275259526614459448790955817459536744569932266501836408808308611019621853150295988111983066725779308780387247224130272379037047003375360732266797728663560332464807265348942966718461528929664378479941332093979804355200792111996580365577694496833888739648679128963372257071834340797310568330955631099136659643483686015958799471343190397674646395993142186702410429279577524354648896519107652580215965226413883838807783820833744689960824297257813050398073412741158249977294863258062618371823595079042722024370320926971144968220452361109761973674186933941140677677533962128165213233160052553303550638747583064823048856499655736494281701947979952179279188309316665214029330301993663819324625163316013164710150041548952037899868494975068198375511240271160202051601516212882640175839470826905247114492319964675217869109363858643646494450407418436886652725931163271976345474017285437117025099643941669601965765807008916861109953746796025784663574222280263571913523008830610903944072331285882163942100446853962667478142207021773419727941901681955617215622317194238049780456119932575141291785056877000630718302425417634779475121709068053548023319283916934349057936744530502104291091737125508551835472804655414177811804096205913718858169929404257532801248112208985741334463834790320037121964743255065768943936220553245799229494046867431272259745507758826984023674027125448676206543803901270169881487453461001545697858474198414989535303137139915406459923277030499143600156221297474364017374004736844682135218190202262527375160308604295653627015252158178213532807539636041811480838319649677414875730852528042051716451943022898319447887444060753244756868616350988490685557076721034444069174965855267337006678555840660180291430434108233669917487302769554291681642324704982281975778113507449195066149097230425753410560002619757707532159648565846793770937135887521191151804384747639503164142112773371847649016401327686900545648564700295396525889548158625315894226211037854104210044231392570071393595524616120843630605282523121367171405091810506953915675767764482249564264287208900994981791028900211910098217610359007963566406621407357205515014415504931532393137292505514296035740225672698932646279691608173683401272321704947622365655683736719606573982147411102643959814755550628842627299067607782312689701148437469366329865482881452357103250118402669517940848241139120406561621012413144107657752415117971778529393963948177509260311239151671525528531494739166324192403964508447009127451686148886931412011068968115396614236495743837904939695132252017715868105063345043426192750992804511831630114085937883505045311127510468295940311752712480111249761410056660277887529910173360762103793178716691469548824230297467371892044079164876021980801427891092073996083141446212707795368029019695460520978315378769399366036290384784578793117641314135451711513298361322444819224805891502071122069947692648885715861332915841337805897657312285234545585082119763624887940795994181816399352288886333144279548558837228712768177618495369849873670491745183979189266624762740709273657564100463794671283797541721636279678407752842740426284844839978870528940467381890244253154735008486783617028163545915939437658674633602889525896467712488677636663505375472435950997383889459845639190954032269058754529690070361847318183094121735146623064520510949923537148999273447304616424307567112693246345521644437542444596231923022229353640667530900301071592568145519930148488106657341245249048319501372345690400459292606975432102453866638081837802909057931908078394886196389358927649424490849806280588519277460242634129024357729731908376978341973117258491488952675297165496531936522665294762071511917330990921664934365406636852469466627158391124281121537079173879320697550677669357051949176157749686504000519938937766234785044451896079778448393970363890239279310288047341383719885973470413401289812544821746779657308036926595276887284495498402603807465118434860249284534833900853398794125865828410606369455918134497944021250019110225057739206101987213430958237163860436334082394146103305852965896841316156242397896895580246308209652885364280056754458588194150779961308083963817674032536894322489262518928959691117590719763023021784399754110948482261872106315115695764975643994265691899941505480538653213334994343308954039395547235611128366759847453745127899356389562936236139594948514569361410888646869766528269768528670371251905852001414562799688257236693502307543720996246072123523871996991281476672777104862513582804518049789855522735748915706409839709748376276224548469550226244571776846164918573616452985376116816789377487738570802906082997097281329771695833148527178668689676859384307751077548326660596179066507439950676026095587417434385766656500347733677795997385431637736810751182735464209747099203297618418970497791667034956020381141339108981474296950915929110979157741014698075833787145515215601625762248190673895262298996762170552429767349181814862501509025509583359996795649662275859034802331039868558560335881194461322693638248086577531154205496555239770505479380283473114256448712041704387251617168203389830359945629780880301354993556870728152752181457324231456937970694494017776537221467221027201692117242455035534037088269308277320831983950707277952207665778424033703928478981174245869739525358356728602880799182016232134733443627467551260442470731247738956416469620855925651496444474040996836796322572567115160596739476310114164582254888660386239821334245176741437592244814423529307168516658880934615014893882522432461491895473609404885271420211092542976955166377002802536257315458240623155198458268898398748114469658872374466305975154322127729677331582663470513295654302679469133011050992967071798804638591794665884948283489918779430900591183816671501610205833108642679296680940953920456936485672263219759277635546585902633162434931433235690695409664357384647523211773133584514488985642919019547249254732822905088064972184689588429633308448308082824269599602986379145343279373022194274843801330691017608465387817428308364520116724636747484029141814999124537839458352175058246085279745923306858951278036694214528342821510631347431506568601569743601078344180924466206173676770770255724488129377970772236850738119358137985281444768020482986900597361365437526362434264829666043052734934124770447295291060679825513906355236050984836035306832305008449786491261896611280255010680098290501625389800503289092719243398062368716971421484647142699125409782307691075387972041023248634078903041193259477636651246810204787871800696461335391304797973170425588503773105541651908290985976763866285808095267513466974927530190703071190890286024076357174070865926877791691166178814437084192427455927468056263966020540525257085945406367985211313106504080044888954091654596003712584825857017919556102611186293651259843956069148657256432911745413851501072373583252060384842420867374813326074871480173605087628711094799917585553563491592527786732252376808085879132263998128646196906253209262211030568417110561531792746600598212281183444319310952948033218828878249828543780218219543299802421639432381957798521761300978263688280715604832129604517755125727129892369591475480660985032419611871065632493263186488812629750621127549592807724811677794168509546582892319978309266382924846803576016908284214842900476410330854215183395009298180589275611670596040090730962380917060329323268713572368349916530970287897753505371053728551995120013388215832408731434032549314493726508627190458849649471916583462133890581731963225532544427023555560346287435222569627209601180766168841038668594831165013072867670151369158079022659665670116314635722979428529033435129730055811308914611164404612101455520313372499961759722540929028897845076641880279089169521532101704816293286762327624654890893127730725997284171166803844003419400995767577708493276813981899576761507586533745145800578581618701247290425156503377129733259618300159259257641558324970244661324347668358082428826435345229872526478092098968794317981759216205540694146987650487440070751206293704511051737943462064902814980301471047944209243504463385246415688127764482243807662173383992752810415915980286058893054122488529214337044152297011211887842932754722079468868478596820656187240669699660002813527852469739144505973935195120056481220963233967465071516966717547177218883408107009507552377727172876620077375434489684712465001154127138444637743061955620851636960760851562707529462625660512177472647934015035447534550037849099273719349769785146419223716627876711423736678713718779342389558407985333792229086186419636697284547938312639620926961949280836239245896534982425043147760325697939757716066764376021938353189888939420620900353107282479602095245963493706714512438382834474191605791597646884940876002616358503979130562705995894178053454512009124305152950725825107409684480324989813328746675707103641586466896735267517546755107470574529675760313391328372344027577122314192506707807033469783975141870436804710061306085489703212038849982987151933229432192066907419489618441983364064534515343233759983425246951115698934965087724016433302778218433192144031463095638717740592195683979823916443748841172811551853496604836479175814989121584548315277412825653487928323573022787144680196999541763125818073383599666127306639064912980132138620042045877377693910556928374673127207243740285373318825518289802011796344508776709477377478484262658839888801267492905410870747127724527877629752767024850609400936811003502923882104513006492187881677356244828019889374380232398474334143568692454734031586982845227293483980384684612041027899163968363719644260646969008722661812279895978201949809846381928544498106948748802468717229097533952863419085427926278440894703683039252347371585860845124812330770255245283819355054693358059570860059463284774912826141984314631446997098414006570260316860596774359231315902016919062251301455955051211054373996112237538989777349677387568438910920771226113760589229522020998616053078151589112150379729038298396520808562751617874716692639972172125461224541091910805660005822040135799191654732899367938928790123898383870118831297297606773628207819822343547245891743258506382500262708743532217845399847091950410463839003286732453577727960506296348573145898054791826822244169888772709426383102963667621595010060467011687595757429672429881319885457965097041362416520450616562937180792795041440730799597752230123489046182775357962085669918594769688783946876783019993230520122443316297496653089349211804159065351644932672260117924760188542638111170549012937074400755422062382230320482603457605189608791010560688485526452084316112969678471397204075994126717954966331411687210873183315622289251281070521346178523129732809229107929494490480585164996217546244830493136345114246252782793726436886247606583928169303444472918190967700066366970797128644333108128467200709415736767823169205887651824527744977523215557926571219056729571833951876667856376869335517686944794892155687273478168833804820076715917043692339902620832683038222235498090819438666853113378807323487959959808235705526423088665766744839441973319587284383864109684191435311908974200753124921925103470821492800319228151256782388054726454855863772631703986823796847909318164260080849262668289646745341569502253355657083592652366176336287031217750584916267846908818721194390580296723884226069023033660124885205836656922136851041909622995002679997812389959108851338272172597617069641964180051740061679789898383740915863607409092267459850474886094779495775104833023914089168325779390554913023008585632939233078210967969339076530177700336504029807504989434772234689965550388659496153129790950036995627230433628333808531367638548192422495490603664449274286870861371790110084911688877080692337814233693532967605343177810291413613446777149029397008502047903228786849089596686999278732360873786169730892333946370136242662139186984603265676410262798093941255968243571840092374869357698228916362863835594267496975467344711987621102527769856422223964603881883962117037097883948910976637314032302047073673086587491616607686254997146491048725414748097079767776901407847610338601660769630723774211428051488631668599160918949855831518115712476303549193127959146212935752665538677691691495045611618409241927480831632310625746903287117110946921611949839469288349712107518115395070409478409542090732669540396290648569790262009720904778207068803110305970860345225154145476609370116558719138683000728787838134857343760646243440995718607823857067813768751548112780973236979088438251068946675014830487951824541209878364761064858258595905965844811780436092683861104710711200436105732026519633538820287469815714944851859601146669643541314662009282346795532319063588694293394986069082649082139653199292038916865606787021983686628004609109711553158717973228686624081347323768989468578162209338512870580444010604626116314197484185088645605222495009772864541057392769687022025759831098956560582414956552597486625981641452662616361675644496339843835401875281290887077836111263215943777659144010962329333289889147480237337092372409356115094620831483374166536077920877680858660054178855771122781760652736470440777886081610311937804022189261693573221851257983018490179950001886298162679657145798517806681692889897596769369566523870202709025069200778487193082717949804824527452409222996242153878420760263114075037871919801658623413182224749261504510012727821346075245022251477336712431339303355830080004328051621810713458422860752619872769080752676661482470408882350695930030720669062541764956390850933237158430628442941095657038674802079276367607284071374142436954926313004114695533980177183419635289910491670204306449128281028388222956132604802854089467881587999691055104608323215680731312075930868416463734503539382236112972869329537402471114975530163980960848327628207590605223944121188358376342598297740873618714470328105274431113093328604343665504364110028084122260716244458220967368483295971846761055769314348998606127314908365380208961454623407433800753089539041557134645033016688787833465602470212216848393441187313750682357034114552717951101302094626564732220550984770414368098322110944621594953078919124469555476622557832016969541563135712366492836004901627332885942205943262965257747775015531841945173329070424438150659025005897509366170416023600132947631941001007738792074228725777150347101376955658857390735686885462061601667517549941988637701805430337929927928877822323436997922307858868236210817206960300168840134350210820645350887631516527395200155440971072960694591848471369988092453026741947552667081710679724559536753771947893074515048966401977101149323747648881364794321477573418114241616982560365759926894089971930877740850750033757308004988659658386051008628121921509118837481019556214497201060272631764886487480311906040111249695574654170214204915459525040370913047223977624467849433642191011160476751532193302110437707294143896603516914779230141010021965388778105828465970290623565202044478465135835673128778754322654561240486374037711469003654330527232327059756291559165449427197551234736290787178063604342484255552167918579554227776898733453335316925381346018786210281701920953026850150916959168225790924079458188229589575732125758685075733288677577056009232538763489840755154887285510045978638230378262117956726935478550284946266870503172163026876392709060542482744680081244851561165079171915531724125269406126693086524931816342327684530133457789644204136257216438657484923600454567234225232079413474694572639430957444270372920962787363737232749899702079238376372220939897720397819128688429606043053449556687354627166163616522641830662425138078434688259864964699219063609762283285334182318024884336014649565129401867316237959396764380987871642954158558712641591743953374054106470429766453309863293152564306933362177568355026536938461837813040523737202589690957242482985138498095253681889453481924541217504399452095888651809832747815797619111521068167302507308101860649412601033064022506397039625638356497858205130210684750366962328168592741231142860827939591834232679675569417147157092314603809510106302276092772892563557407944418570899427637953495148152322997481948677281939461226693933542472895551937194734493212325050409057200386907478766363487269209676450423054054170591839646122325127224621251292156399715110273207990994278088691814812987524490281922734946240373434785323206628779125851557584729062495720157835164438371397602664129559276619522051673078997833194234270055222512358207509748653093074694609508580129187963576006396284991825557754038604654894713234793900721528392592991153715107733557424165990720197590435703324874220988906349555703115004053742481385658955171460136424392903867786885090234854073414551842208273166057070871026206194415982273769509196963560546419081886173922781246356862466355484627452961765690855964905752717422419023350392496670229820589669278494964628761938950394895187687076078551792234838876082913008869735592369293705935330517675978141124420099973384981303655191395512349690167583128855097325347848957402064343144524851956237586170197579563287153025142107936709028214811005982846337331414017471134827479338524151862947562690213662336155862155898008233589982722519246649845519222820419084409346591895407568183976060706863522370119188572077999692768318043327175875218085284427060261784604829955955923994921217878779827028731944092666339437858391879200408107183677059700214334121455170540973577708808720284449020491325231278845889211886678091117811605466753416274905500209832937870474874153638792446547832745120404721629602848159125706502379321231506265969994787987469657376046864962879003017631116237931072152094819827207373557690081699161783420974530081256922602696848598205288142367371348911554786353775408985368123760737767501263322449660749593586009602746232371007928751753206309598056785250471104848358086463528795303491728962738317513587065636466287425088938352637702450084847815121054701343107742631534479315949030563997493016820977988400110316361301442956552907149108639590091553785610000935952815888406488401023310486323831800358766188878605392225354336768961205380826879045311733404631427128456331262174891488261036286841121840128733399666494152652740122968960429023390971376805863408339433215885258502068593783901097059758268752376916762232559288974930841419497215583605184339037048908625031458351030404422191403091437367652923652722033437785494109569505900271621891972342304340450095613431523684374100332839935578189237479011292307174789902574087549180301864732288046109181223485576182002572678945961233320454889903312413898302706596592626279055908324335133872393857581387856530280373686759432135048641602285234360818246387423885528828715133851679804023765866747682957932200970630069680331768474475835200482189250641235222585109735673391376295338579226363869852406265460973831903279294710134202807908970033527324406428580243633969506948209338536404522549082188570227522503428177738044211989680692771741870832811584185854768167169000117553447492530043905291528922130739348252376250548679576890384052708802760323488656702940731071563286850629923546664669383559755729867675521138760113749234248636681035233410231780752036396171950622470306988597833333274397533935559265398844002042642718283349134201944802280163090592149144930315947133275682535069379174232171432581066995998800337018799009140953912980831399352783966076814626949372421972073288452303196499917169859038585707361696081389334846475962150896840063388377157835645439209181905897030642248943830063137518937317951465388908766640496848749594521105735068709797735574799279313168767911218175785435304733367839100798340237679351289316440917504425181037314398407201228660215189215230261516016291638811554502046354345202736829843638867004181694514923539887398799853833055917844408665556546740491037385471572568804428366436338754482425291855802320993982215741871518023382811531144749036578427339990836349865690267252460392845672914123836194984234580946206246767365985014550126939943935595969690021327025173587757672090626074464981479929600320865464125479059212892918616248052500345265359480804126325338641722390877183913358080152815129187496893173798662996219123100701545672880341733584125983358545450537402142034664008099110117117213993814065280499448549047774267747102686927266571656613768526458292917774455523214964300514106155632768828703793891076817023549185508247054414247663210746553377757537158288071470812581337158865431606789058294963168489750043923485084126741099981613282768161639355514904124646850779182799998962630679676281963659984782511818566387157482807939199972208134604305301006447593882501911859291249453295581521424451777354355250248301694829244496167535672868534399654953819974537580977918276611865575063736886644477033937563264234867761303341428894121850199769987029998230358315145052030672862835494701813794338434375762758147987979855962488523480489111216437989413419467765324006489638273472578058150994324769464365074764930566424648325334517892252066902424438125902003118919277316155830730555588583066833265439361986475558280624170564062398048662166534062662044522388722841859315766140831578417060939139118505419558977310813730165850240116719233535427166865232181817882185337934597864720299761941071739917768036630130656605942192913562777398477391527163419646165730305571094579138267680096188353814183592970379590134396120183068057836176768022301670133075655342991899700383785262447427788348187950681517487344244254527514616508722365616467051231086031767293062892714318661597354120175324058907066678675050782767559841475127362138845819230931598408911363679580766515991614081881215095176393441696691797127572226478412936887037348126539406960979520230584934132940189440648494070977561206417446377348353468479487664088421409160966397379163445607137074152965500123527623301753195009160038286990348718513769627078538090464003431901926865828216013899941785339381845287409317153436787528564457250817447295647593273836808369365393940699483879045482986738341756621081567291703535875622682657207631897260255558413031637774132806342930652980005539786345989885284584428429659228539528881193536244600721015671914480544666127671457820518195748597541051439962135552022722430219798768882897065611309846124923960704435204540964255540915351711207033357290247443108620629849114984348526502722818414537538313025237510523359846115011055652652440390858861273112076059406100785310168448222379368116202992055198848279312069573321959151598273045418645341600395342206324408365670020548863900108548831365652638535811185117142547382649976585677631314263340385610794028287166043163766167777792062353603844980159029588057245432297382344890282276443140322385261617508462490161110144945149538040115006728612666319699075208838515486430592548166526254276271984857952744342106552106583786987688967874783770815499613162860821749315613815812467897268271385860186768257879258538893075272084152032794243280908891184112298942985318478127638295032827433203676524442703189298304172547233677746885056517740002956914518939421367882604173237927508805759515947609558665054256599854779873932110748174163976660952066760020797336182305093969322438216091958389847914205091086395992014232865569347571308818256564941609406438592954677137775424529972994218611656178458671072049185531619482282506466248395410391517787842778666524646972991705333956560367755763686990294808147540014833896927666187109656187152260950923365110121439763871159187841106651146327970432195282583843169397586904977391846566504895468422314106855659987073780151264543041019365815252579627118520637547359250870344724438144410061115323880121757158330032986580938358879899550433812747803158813512591339403973128643993253887398523172763960894215033304363987779399747026360506379378637361973779004125122731476413297855668458109048217118938517123071510997672455219636802635813497100081583735639035749905157861933736869978633951254481290807508336172937969047876755260710577316656128049349600536181273013554048261684341171080032932160050599200986960763333795394013277815613891857567102687690479443360639312400623714867345565246526430095315683211719715614109624300826968322309738552352494456771822738067275382711856028109412850445548316287599202049917456959626773550531155885022503253906092687387297523043970502940033827654043485982784057395068428750574314352963399462972682737434307599000481588438095265485665397412270367616911628944114821886644047664764021900113395521714259334513006251429102775008559327343375535333070158205278891023057807422921924062972971274415943589660901667660469588447527776317525397287520276799178511347021555222212414295794723915370721058597846976689546448892953789781372459247403605051289162987524176009392712714559398862947999936884071770651562988404065726702309275130946097752793784174573783210550729887619096107604137936720123683283070127820762163528272262965371251329188632592494931853279440308903992604347561555604498920361470893023496374244017176219207638081401480561416730150275251190029386583411685921118945841399172018498626358383178093929972190179599189614854666512707852913904514360610202721673857048693079766789102874000007661054555889611635382396439605230843883924166793559210624481267990504627444600366403733094767087858988198803561537942848614960154791805112385867662278348277023025180947995689416720347201869227165259136139531882508727630959969899449730010290909268863255127577790716292624365253478104506031799308463648277592963473007757613405723712195051064463768418455094792215345793226388727433736721677766377438874964619987053123283610296816412194677341427190279714151316461324285068773989046365334504748165827038087794654012495708245625232934109872527797073871977928333626222267199672481144871931873828991260656590361453635637066959457694327136078785869934494889861588944096803550339366772563463495275797913887882718642766882499045713116497991028112360385807699914140712613909945184389618619860265461817893035446836986277049207572104012823628428966164933427295887671801930466066350990985905924747968085282548220243592006186460689745297846895351357202985009929973612514950089737384810631871372570503360178667143350134715950432236394213697960467741375487258284000825676913981400684464266013171082079619703095247246332930845260338099930546988167262241956368160928854903054628354221701036575750160974551645743097498510749279763759729718348477662839054893487493101456923579054826806369334373138851245363739736962388475314868481967792160085111014887921983687637798916781009980804132584170207401475972217243367682707985192983041901499714686657891138098699947738321302753031331762917782868388189603647761343516252535908872893222477754498534821587468621326535599716603276908282100249009399896671835920441866505747237914656170976093336524886187726738647811418981495863036847482407412874051568369158894014282813791419678428542701428672524237284852837852440336428640692575383553684302490169278224109585020201034379588101511322985237358675606926306353846693931475969862001357897295515672388281844036997745446102072232307433451085943353707819924487669708567172263796553845648229670075155773621737721827263229216400549098154681405553387201193797383501027684369072191766311105627842753339844246680410704407743685135667658378058104613455020097829261350024508351644354847623406076240927347137580269764304019379534367011092091330791177593146240781082327417669980817776491668953252958933945421512817361731471001971791299680263797468875506743823853489375269218456034811711043983959146662255532807877835180597302645364900045795657013549855678185186979263302797506237692194626752225317286605792223482612137694601870935149696497019061841179101190072452074736808039682623669193943761133709467460490577214751397769521868773265607053776365955398274040575717628933403402043407976907111654135808668062520472940798903499774804368660830530517525959492405434053360515691085457421490761637431305582431144008553204157300872225542597636787600257333979397821518929427007805185322528989914209018602386607406460657343624673562382508007074994450113803781900412413698510983022485062400453840877874195298554930719454068387914401548013095662664866374538555152241237123417561705037383039155637813512974680129644022457903379301149169109490802211748108194265355699720034635373431945588539538989821079748345782112589477567361751908527301910613609005251213807651167761971146653930451094637719554164915956373639757293374545400776358407951810409047576174998140449237815183461793047702227950028658956813622339023553444398053157698329897741269907982226163538060447892114201319797160549078531927457235069582044670332295608307580800564845993486202634610469040264694911352283620300792832163688722559155427534978307811905148864245158353283257401017593723140660480904668022560579576180734874896969890548096261515147177141162374305099901653050453708112382284160928260678916061421075850647626575444759273947619401763408439761558370681529105234122469909683973496374948215068428013010068260186726201413921679538165366625349131159348090078960680860415740612938344266533713896430134610659912746838670428818327886098391124644354685624622482940031740323698267086173353930274391411415564807046683662156195117005732283260133394615495817678674218724722842833788534632092822219487757691820767507852279600901382369191334379376549891573613300193634041371894050093600479531139278251697467623036102047916830044084952243960680408518233012584587762380562160373098102573769421842025507823036693551406461842350613018334373896622072385335708870098442536726028168405059434971276850809624288818648515522404287972493098086553134292511893561714013087805716829176058036980516397029289107158798620877854586887702449668847273397776437848350598467414816974066742558992203956073229790651359677801099225961843862279452813161511009301765399128265215649092147005760419999142353049123041990345135293162484100823266089362483522764985933831207907567413243693037351909147304136249121499726644820907464293581904651610029475514330859073187985123750159054335747669945337852098464346146363211302295628425967462564747845855914994936156713577466283929898850431902671156473361731148626381130010459236610951027343589676912054595617797098151187393138213519663007874318764382887048842418935884647177030661034068706183714845815425428628794790894176897233428650651851569335904255747109273074433492027090231586078904956780946417411662161974685140090458658273226694315225136116710308748740240759947589206347183822621186198206245626511897802937020288773782019232277037523330887424511796292571255386635996770895117731148804290922721272231598627589863484191466053467691424278669559619916833242729886588554120354048040775635107226123967243769474386780546021968963863363939470032933759173122826009198786620270446960951007665591676878646618078928785578210622946645075544296425813609862053996726431123050077052383723278266806642762776696895475756470336342944524596967644008412409260237290890167491182395459489974447078065157902544229710887652807788029359655047390893123066231590573744597364687590210999225827650639224213259597004625626472851481706269158478768946386339751464230116615998598278102267322936681911983531048049462331782823676525909105734238747647576662227927028500045084751290215941841009344831281801928564829510263236679220592632869363307548439601451218080573664039434287845724540364852155953658289180197833669162671746907201056483808094191631096225358632471862673431771370279989650495327865397240032760722820311285695927877216946861769973377923489741300585677014875072533622283306507587907044028480273075918499314610240963116209582078637971246876237448702063673069808745476335527985787375774848737310364597323653628222679687293047447018510831783490190559562321486464920265306187682640620707834020097963450270424034433031293613032915683269085639695417824134170325473557012117434292285658619168158083561667389370227341617006435586074075824831180886835478017715155558423952130070959629000807360115099708603541660324592010128295244419727794360235518793409697977123431808716684174591050908404155241322811081799093122999706576673095211888836264209264751015370079949868521599091908030999968316092925330779482170376299181811208910318148273087227458058097365865625073077470755361836769157448579688778846725775364121103085679214924200322182143341922811075253517307790014752428462197722427912324005798467489768702654924987414831875064706000174712067095941115324733877545139512175632788715038278867726886294834352138570671316594202818968836466240221122019298562578067894155473732175243926849913313073141142392223988113939344374079093885407333257201016832809292225217774950460422423881704487275736586289238007373999287877840291162031834381140145290478492303596729117759877044880362921515397416745403200097575345009505120696661383218162263962516581947980713796685836601365439504327334297073872268980535615826843683820057276663226250732292450555107226124369601007199059977035541999741130076037377969910863732723080009647140134814878664922683945088496690565495911321453497243446132564293094485676797495019971757473512103985726339723094578827491005905920241182268903659894037534895340857593138261777072082777443712543277859507576156660951681810977250780598104075528803679615607778502371248780669889472841315645660224426931852587666181644685799892140555092997634177247772297664448669440693698782051223878719922203127902367650233926176368640920278797419944893055841368667610308865972420366820728234716339397987949976507522146899424160008202840064548199691015627334942931570992868570784489745989860555506536552017361563353881926350837634359355597174709932005021291688270028698949460487172022267951194469186365057799664969893787194876100910112086827597318039595475671195560300208969673851806488661693993387254797487766211103295920933675992787147777034302978164494260450294313995215196110067323112157662699691373323844605596681149075820173221629877004592710831249376826486239421407517940595704651773097310716245137001364591617076533993585448451845190987780930470386110343084627950146267366262195226974727146855050790393586589646908734781996560241359845676579393993374255814234707479983627228930895296563081261157784874055674482963392627133740617630288587051873428882468473545457705248034782675244294591611412569630107088876349136742489390989336511061353828794267687792893669381762314844638983850846905856806792588312373791403318633367675699770297594065706532824331583370132699729428796123740421058338380620580665645208199166689681689392019630502026821676146075163088709401176867407894215366389904638479671995606299738044828512520901995752303933872937245089934335983748152350887091033542866784221352877277265943907336033992666562566618504031796497089997021611906406680443034654869202965564424950255136059519731530667999191470668874742103685149167135631700715407636945978534529329328735482589123625924585165361428551811993120949582021112982550136433693656952354986793285363821701276000288559187105368812700872172864111765362854193672192628413558853818283882738300808849327842976557045273877335069169309499211882046588516374802024534162335326126720481469647727410797987957892628017230924554651369309932861701186138473195054807997987262966572867793080471838606122893098824117409291945430497870061680602951086073124575882986181282043938118893408859034984730032102294743815007276715449718095680759827627815579423020109013213601251828533357981929229211647667763103867178516311699577694783912139260485346840963611924324402957759377334296796271943029638032046717212748829169635611176006494298821506807547794212112830551837123929561183591152194267874034273206895596300448210178162789213488165521385184174543947811064865760993724496156151434913016554324981736276379285602624907073475687456427345959373620265885042360410389941698944671823593662065619773630251663052894988112598766873805995104889794029165674366451366419540364343288362286840570981029365473747749271896366755037502892892643117704480416879456070021038836255398484382301062419846808921265980502281973596210766036778943859362257413419890073927113304226459201542762929756877747635405157958950486814982088287504589668272015793315143859926620179171433098399727092740722774057129231738322323590342177485626922196861978687411539880772511362570809883825571096414071975200452600627182823936200717738045972678465687698541698490083352534823995980554115542904001339521434479768724222658372477232500972316478681340212112065293980185761451638814727739724880726421444148904352906473259358768943685945702978625131650775789415035333208948198352412999321115197267255008088256828945083894358469400693946633518858160760272369288931275537895364396509087519503003972692722057964234737231453254521320493290347318736914936827519506317590378011817236128582051138771375346041570726193714112883160907674868321582603812288642615147413929962682607322504386577473691349769047981114391704385840454216402817122549743935212497211463413638616806700888021783235802633168594245310926499580597303460094290150605969108597955424011915888787346871221142086859845853599430260229797165186022829187949433776433276842915649062859427469025372431704946790113444836354731367565139822490118023806166913967541458613999187240692136092752095104472480013562699613881571361255263005142733856366341399863184399127176624817107820911814206831427362925674141031473292699731673147683466817853982097276970701399839607313450019008748360362196133410699415868671347418994919614307449744912394707796714647565292810637893928509477612445328553004489587187553933663034003091423148606475745056005770624805538769684496244610553011723933908504428992466571361346776719000251778685533403364924897595748786998648028286600749237253321344363039225748616350080119804580477080909139312494616592625600822365279334501459366511864243974275065713719712240086760500615309924343007646866957254555260428186697692253895170117727822873657148750242153929405273474952080194927880726683262298112726530550155234996085978214733196997369783002971288684701073877505532004808613469909654519934422317019195696073090297201797009241604673398678237308704503282246826541779955428127210141770299384308580804263672374466163436734539579192749465255837309782466647545480039226263621354900126000188359760736293341313553809687120446471433757630239826030249897794551724149983778646435825166028132121993588998922927959692749024768257486287931499561086622638208219946331004044351468090094970236790607184468531055963919170324262666179170907989493336060890114341741180257528224209726605811765436284227217760389747298172944627019608170417576999746378876857641871140434467956731560948761804215179275389012781398253370181255370339136397069664048557859058067932487738350663231603119721020902086636007973846125909330363269304461621474827095054122633433604638034432109717866988729305763819306167892296166802827753313590517400246437801067237056345533456425333914317426980213973518448504279226817264008819369702494972281032966827706328814913276883109982609727294044922473770115966087057947230652398421765737568138874099267005194610235517005764305809797015206732538996610022518706608875819566160362327998818919024701839135630885088952080718690393470701492441133943484294460295369044126491793858319242093919412979293125361581674785655304801675155073807830440425620459866873113916141330614007000384270302976018126947430841574485898795656246886131645870857769585373505911340684273900346200761507540359517217014497721998720362821109429238089192511041439140037311484721563567043686631779287778044203849862396781640644894720860612059314510688976919419520792995187474353303511201051932852913345286885048482018381240248637755820019015496588495773784369343873331257352269330876594292164051264387316615583778885966567107997526682052414876113939051123830033522537100799037022679943502065131586434284486752825270049256866861994674618319284417286790641963142427533847136901805012320177594526086142012044890665561475749612058197728885365880657695162378412173175961090270001645717638492384846801874031777177738076184851845912999135054785248006035741648707402823208645848742429254233482412650825814336208781833513361369560135239502908526393700187414040107890859570942969337176603062933608383589038186132607410352456127711459180371261992117867165552024224201022321882652112172232655808387133150670228473550868551379828035994274076615825862283450417065894507204121685916906827005120992194892721014279307621140723740803142060687404705049980562979543164439798764601443410912248682832942642830212312882002552478608191749196901474594836466092550453061982565691335391117529774247625865038701751907565370601485770898766338336659632829062941647432167490846790293754949494087159735898511343049472270728150781965524651772082664697518426505545707893639813313340614783165197213068195657539970844830994808142826749673492031659803645804383312238814585555094734431457794975223276857902937123675939222546920253316674290663401784941008762987874364717541924938488331983124023695881476212027570081730390007143267194308768346338691852321503276883764309930759967450524092578212495777126748350967944042436032860744484861801545185176418454016970992933005116626008421672607015822244709979945503424757058666646923914631100570286461709501367190029307837595635011150389157213532834990895445521115809170687003433819052689467456604665446947448589285771713290374702022233107888033847009205788823780318260413564764089730297515966465921638315237719844003877864349643758200157865932288623839233570508897406886819722309110782931657351547902099242354167401705782079109745665543158501131673049342462567969719117615094794020273951926209849554679031030735093209984598736251695895783172186258615708212913036810828397776799927472547087417188253980240406576578345221601226312149271877217803299132397490244005336566015336377680894956650394980334333187170958488603928768233974611786309966078990013953214506910623561076350496750216276658543534702712445720649875969437008478993664412352564497638529321002353607169060041734010684447381097589979719418454176534361877403848319226863758186995769675182147904906825901455521015602675634118029457428175750009221191662635302310274865606613525398006662440680653119956915720394814162030690706909741432928104489871963363598504456266393549613250380492387063639922968985102293462755273149955210489274243676029992141458216217113010847617881715544583929864353347461676626402884360825134142003886274243754133505628669323015422804443066063090898590063175415141038851076877885955814182974950949176991682265362185694601935793798292231202232260772773511341442589313765706442986996361238608718845549959073771107162096175420285172380529422342436976882726580794617582344604441768942705722277465778917336683566514350008347687794507849351170351078649101634898886225981407915669289797463001130591188605416117544498569369070173268002806413891183013588704547406365638100013911539015083885254319715146586649907733904296576699683205886999469789061352086511028479589924460383194718174495618334597052740204552097732413263885588297737094817442985021614547191163044706991910295044923874585141333701948859988416852449102174798124622846781716732227833949149038641110792790573765157382404326539057044234161852449646722720760287124770779588956537727944348025574123032733395880223505307866712333372762033325580710552374186038008011518654893744731471068465120422787670268691135590230763316727181974073354524218930285476852694140244372825232271209794054636975677839761507015465392233428378861948180924498415543673074415717976004888215330574828807702559651576859353739620374034042021383129659317223206027993010258032068867900678256562938666641254396777461692457925492293957229460491283988146738281931071197272558486183292074025783601511585044354717720597628845827564804570810410265402988085940680962989504185664760019066602032085053208666370068740347537398796551754248200713847613977319750323419027268528433751708695994764566559817586773211786497715748186671173305202087536698091335331745522996874361857199107145871074498901818123251612418681618722187127081420443774286799261481620887558278553598072170257841756335126528236432948038850677292550528888782147881210576621393359564562290777869997431948933345354688180005743069944236622227640812010932692763986140888906366623876499205721132565668476445849704162094750733858195194073728815172096252456188229639218708987600426330030153556703665924205346139786401900734915523366977512813028381605637976195527950456255091879853624711988523298110495070520138628957260687556800235451906901031223415451638410009193329066647845549363827956675685924368286784488553540156405545338751489745130917694598547392584283496292895298553442227848378425852193669883490077133700490449664706228596347944170706282524504011558952433926043613231531790566823125919770907787334502799866368163518717174919797148482473729170521563447553122992142470204788283708993530423693387032365545134739430613336846475525771089084627554704444451442154009222106832437196324927702755200297242051406045595251397138009540915454933529946357536865832504447650776725964297925837150999329450535980768944843632750298244222017284045359577259285740473888162480964490177031393940069084459492432397061850041228143048580872165170022269160610168501585669655379312280031558291990454201206927029770085121333478338106283205877693295084912976111351441589652243012500639948344201943277645462573683795373094890402949181416092915631157270677629907564967285372755861787776628077967175825299192537780667230345342471555516245395240385370954199381435752043666986207470909308486341977587542303907706349968274226179554937344309422882251535196896298289755271089741334871354774884961713562401142933363926251451633483579907794451321682105335689914184330379458484843909370554962130329855793822119621878224759029610318409218913841950178369750460840763660920953160554739599327134443208214217529907294134902158892721641932696080736785752635734151538334082059080657397078909688101067529592862561471399702536668168554165879688957725001130996636966282256565100225800362673832239358763840471174064885805923123100675179792855723752906380639149630068690329451419722190222236243073019475229485754774340794756257355973622465538890586845549217748577751921840552161989623970667418839629315033478447989763755479524756639247211591975380202273863354396995706859182244681951694498137103808273429504565542330584318650541650497629530690307262750428035782348061068099370535206434369428698426163255241308991508972378914778964286757055236514495308912719717555961942452764773354350659518450973721302964140823062572163478170439571434687473641976604813907230766961658809372714952456761934448267500875557448516133888719465539353129632701981554590181428193548257630497275468238151554427133573393930656122383714560455593222147423797701892010792289365758078899296600228692459848808466091999098028154858219362587590217974526675820488486788768902812291388096542142585107649063923031603359943197962078710564474764950990374034228947838168140921967899664531692804861675174211976803088662739332473938505242271288564170862299715193627896190637658144694827759888486497478893120826926762521428265350369141973577622401387445122290494831623376175876248108418883535557902675305838558331088803502519847044174043480418391219183759993009409183284488096698625051536110065550006610434868221661780173986062273734154991148278481943640112331989297579491131077102052212431920594613645331096941453525612962258190094346367118286960060826127139544838974790736193230387338077758294597938188664481367516289427646777275183361624812843449299290092641519738872369669324843104463030083802208223904155493593716930344941633126103041237509005465304107974881146955448879464192762989796524422243726672051188639553297325893389163165095895174123992235290880156371240837711482431624488374849714048900398964548227815402401710345640523773914753128936697193311407857315862109709772391729994037508163504495624972457675853902815212372765125105944209492116902969727567314643982817544366956564373790907498452831490225421778414498621133416605035018088555802610267333381874893653473009262218242530299489524931895804150584973321958709152450160189938485432615828563177095476267149407023499752732590854472170733628935792781644924177037476893795741321437018448754014251300695812571365255470613037276039077380037961074797177394999681658226639485494551538205991926474466139182233443431442261680966457187417061003987489363276776416085368302510975762408289256816828499318707424528558358238933696112917540243262943447071979883195482208505597927506805645346526858904206348181616207810030295931484120509615068899700344789896621670706719887148608262581822406873572293239525014366333106671392488663871443312343911359301526869110881637526590501762616422953568645480685452488905484645898868186607257345428111303854468568338568711871985493610143552046170595335850813229687246764900595533320053394619826661211698516566110460258602718302874903396042202862429251357352821645107924098862122897900711707763121339603561215266252458726278602005688864711799087712047934080358611478683089207034184480859739410529723449157235431332885282623475436219654129665418908777781445769836887693723622972842170193002213692432719339047347873684242251040592981318230780777995536043910957245758087740559022879901006000312243490868511038219826371788107342861418133548017636736781837899180242771728184090902235652588300912045396153524194644859264186807009689146030896177754706220709768234243700948949964361221305722972498324558508751937091180628509758179855838062834066570153999948592205276200236680965592913968838516211620126079062594086073209401509522832297464106189976543555142681677667290530319375177960650658426340118047555174367334933583648495315409071207037779677994402392182044447552488730135577908022361279436775598535858482523676183091050479707056647086440857666961853686989610726424639580014033682196667705878577270030596693539263939384483068686618274428479501834068694882545081523269702971691155083317249892022227593114268225100301770975713657709201142555328694518265298003046466780586390429099548800043976617202502122280196927929948384173069336234434464960071433104361339861882276501656752190772869500469353633022546968993965965955412780293605769074807074846360851328689386707798569591368589781393656301890126412262968563358771712217444569474042495568858131926789692056712901388023449558999787604745262797929503081571583209928004086659039554173939844324470109834617117500388067130759398845421308635167958696905396518390543427984969835608566700424493163941517458366438679333828663081438612417544195266560831214688284088935401325087722374690410300965297694296099807211434485925443396499140662613913160896206477574805126846088623857023834987759629628818572851293781234557521418347126901296965074439163831889248756297895346343598589478832745622036911328002298275422246588494825079697969176247469135773414497734626628642632674855397090410368586169006650482469356401182254973871085423891212977482615250023533289413324000680033661789780652112170912135856026070732241675064258431933890828477662740303545125512950888258079402473783929805097429789681117027550968785919111345062470583628464910345584375922173779876696915602422235072215894869172647291878061034541754002499425179799107560857022822885092087857263252733475251642870807706844720113380458663032903510785661738291910704824544079838911362321980412048369643740572766927495689224728522879616628340104616473872486361420795711380205763521296334670895251305786271400873966402494624082708938665842582540052990703251644291479726850256863504633303823842717712477204902248228744440047552419333819409559049443808570080817725704322062257545036754572778670919863643022067046478329870529930354997421909179992544212631106958675600598162844416959177921485385499826101505607082408466569186823819162515646414643135444488786927261410594806472015876107407271606361216805579170293720649866421922640618162656559860738754723084393940242298547928654079251586361880163306847905431217685889499726117443555005519505014754058463172099269832017755761446960799554552401036243757664326118670339007424239465962333655401215975255427956140226901698788746826779692416378156770958657591379070477575916699331581809682826556455638056804359686130510474381459816380914041442345546469090063008151940757679744270465687474770329519099110039648190910093262665048883539038279451467785108253996729906811464339711616983273717066066619463865401742114037615728193089306600581820232343927909630253799217260944321030025888335802873472569150285883267082927174745084773356078358113652503718562649510285566900321983652964891314576998372367823727432886112852625862733229890691136458879176571497576823137255492781393817442519706306382722606039274596862674483844633983656579616204052445023119465060086530386517375581626124305386965130641440264724586664815302289591281934205742748246884393358044767145396883331262769082703925468162636989436682730484743410523068937406276213373937924280478330283265111223305574853755137079248589106557521994430534809773959560217591778660563087494957353403940028441491989483101203061195769238689400062072354891399472774992704360814336884730941705233631500033409619353026458292773456723736145414894962099760362142242624266999743590253069540453773099036324936708619858991286484788767896019697244626951610710189134008033511787445050829066684248441057035053561300499227822776180460922257621930561581461592427359834471582737294234245334108415423921642827831598664821525013595222110867567449419765679471245617504452275001539099949629422006341713336360195313313377138284307201228853740800447145693892543258900618293542796313837236235678035337934846817644380929784873994943890422027385305687602672059959969634811990732643966206212790915718728250358069295357928793761587283840819738783306439494212525423490510364611105374954860287848438936763278822981310583938787325452228930234420382758138745648284467256527340734492699230705670445052032531836563446378570906915399128604695144592999647758809836522474662271279958943737012973922419533521462851020736456190969356573852613165742018097454543568930160896910042778505077161625871391998179830776834035874781346079842503001055632434621898800771203899762254334970216591816815530249729521272767111334235234247842153330068773489453552788325740631438556500463690158554627256424301618470329597466312889035221831595504403718307191733926974754462489706395134323457427007330636231914278910533103690670277031261136643849842923571344964908640646383603543091042906360900805068059675337522574916455900721595801641866538023473046297690799916854505969857500377611322562765336112952923592499165618084327347335016475792655155994896269634705731955993137517855547516850592493644917733473946144627940630044550816550676046529872671413875714360397065380856512444339990791396079795286652376664909441495102156544608180137830002988566801604121977937300295748462862520915985827096511575997834718086767165704331681845588716246909259071579387456643610524559524485319945494607953571072998139221740307381601501534770525189041262382722280446496962892701346066918369932914490605618414887106718034503353792273481946228919917105098020876902567863146890224459710090246847285901479889423387660072488964053782789886439912512414861147523683066631210524063135383050615423383679675155808991293856460315328072003233884027287296563070456445670366559371906578482174812642229556214352075400524599797805418134536462775460117154537914556929868103851429273426621191931195448647559986007301805448835571416100679036578883505240966273862734864181651791038793182332612318957049583682386152951150236158147790638890602879322798109054372400156645153231817612778960182675910674213123716311435461226333330325012776867674779374176242555684965898902445651297028921399478887780800752976431680590608478475710936252331556369262684259632432951289575533795938553121533960439816501635059775589947535904086075754778684855499327644897666647968270283447140279706307469477960974811553249825173669303162434539008337776357828746036273311777523810221189212230221272062734923757543908942650103604685766533608797817708758489081288237345802890238935732693666107785426761658868962515092557949904538851452203677639106039974938064089330976869592355531275723351058921286972824764100983421973953590745123844807104433094720741862571949498651735726286160949654642276115946977383148989694127055418296337858203594750818439295851726243661738011985304531735511802653950028106341750912232685493809080935824892192557370155224588075654406193229793661256666523518714402258633709466112346498219931780225380923020280293641905870213127647305901117878260851487280153297542555326477620767337625341545258826641778633015487691190534901939686035060493653686137823638144702297679722257275124223794596804340394971833051436735831162964946165695375496859745807334470559436664387906558471226292844717223276007273619793957175067543867749609937079519122852841200284757877477478665473851952227471695111434456741240289402073542870266931094715521731679451619074938245507492507627676402493095283030270411553071017077833160841868322247861898807276702805656573069371069864089129635626212923640657213085675317497240326522894645739412967411591892670008383627161972012934599707409733360823101404882518957835111051612782396615385408898795336722420880956516962266729312149327273831310169793073157693417634889624495607670566059845324862698029998338020336437263871051022001202190057269175127444978953842774147892163904744979159940626405807516624389376074117445441766020053013312816792846094051856033372757905031178647133871681902810768787903706693642858940812459609531581614233087656203540835727849548412752329439620740006792886282041038783081381857293361718313680404565767252803784753147353477181305776581883201217811920446089795580584916550196445823808698442819227801997561211412407029662558653784506882452353744900893904789312249933532249262502176520023420032986761876061199082952655365018860521287541727969472592766131313702893456587055199697768546436002052507727780299715648562917302558553954671711406181700704830377036595305787981760836391114930294076373747540872881379089670533235128268340392242470598100764175260004207418826954603145124249945084112982195839112521676603495618543364950365681675151993784138147871454904111398768179719697921313246253297704361916141868090337572770162880880296359989451040388663175851314374673277140308134027816054250699700172837035149261834101038262657043085673632782675562221897728792095335423213236756225993361293736833145745818192198561756070901391642413323302676939468943583823446938030954341799519687531853575596293075656326493228162088609993221532995839826703656280994106791318518481826887122263686340171775468747278153815875147866843465148707269713880552921261230378595433132507572864745913730545219670864128359719701506229804637557107724654839052229055701230654796391961139673442538177920817600890273832840529984644588071545992787993864036399894245698639912723534610523766645582893320831328393426870465971172942886933078902595329587274025866645075201056536001036758711506928874940734780065162415015498573413358038915095521301849589020380712054392192827996217414975003767067481498748904243820179349910270855332742090429440454570594158595815178631420146414595804296448293438971605748355086944906834434161175905825019743396564592277763194257436459971535402811622163544933750974337030959146059815842469155794429478621780135649066161037236401922617001105960882753108286655476591017716235583930734948497676089251325867380260134440444663767491452825059484023549714091433086362708434311008974940843919097239609168864244180166203574389244162413136891207815721203584726715648958472037047997125037417502770892824344513657143780723444140013498395063635086029779948603782467239714374077159861345926975449219607580142606929022351758551984404333885271493753734006399244975601497215163544027941894312665063600954364421566200342322613423839214053991703378225038321951919232113760761506099479931165745512418111098282516251555812412331047952671788853010170057086945664632734132457464126009483732313346827130667010874669728097292023423782727601533358296413190909153007139445615922209572518645947250480544024930152585431175574545355430016077343855781223856185211964132962645959756844972613948055694688885621302558812880567564050311461582052094904626351706732142565594356661931703763761873716488627977827599804104098813095465305260482287522705548084021710044096042871515342729295346602928233469281485073863507652111190642606493151695786758170161608472459848176852400382730824495159189363226350339701556110497960358801659519179890914879557627131858449318342119611115656015661275811710228639612808554940831589025322773969209788407199959932696564859913736001832850550871903438488423960090287879926206011164380969929189530476130557761637119951847104918945461814302898661115772021520257376942940347343004964187693544864655808867490596610489731911145417630776571877757289471262516038191789582495027038623065410224538828437870581028988501028392631202051525902124519417638279468617809073853031229745437625205841196720978127413786398683134733848255571362332873120057971328425075234374735157035094074276783022558504117503007436123353220945697806258022270715573519281607118514235093556932206293755408875484524681893044284377038660100488102172466552999320964996199778254284185446145592731258384777101367856867127891163410182928316668589426688036036997789343453920893534714313617811541197830499636623073906256315677787416522213197213122672712998269149937285260219878325420389765555103512820585836137063989873599785243344599557282245754839880866401936425090437048119347636569066480296879072577291733509892944563073758368564555177110010132943476950260733766437576572844262240248695498873964355549914609655029036449103931360898077258719300098015477069693588525554343335262674727980333052873894202099834816217102449220969862530648191991274949867627788809349848693907590368432523872909379556219366327151075394354969330968516974064683526612377475493837180346080078704728372788349742361692651391616829090725262063202281394267746518239036133835642498592785520334318904906129660590822892132792249886049871031229312566378341332199557816423344129891676249615142198324405009078341535844540322507476395907937145865630421802201991505680468644890753255468748415924567232511525122419343418673573785587659217282691430513904931189784132477060525886843890635162473832577443248114786939657957525194577198841708507780067671573670041748248495063717341608655511467206934270238650291205478113376812500299248497799703042585701749252329680760481467748880086248122343328111781062142453686737642541041505287449204266852242546646098908330857853192022156275879758172624800035132308182131261944636451223828088711148290805355411878548952018398126262042332810695081827146956848778964623501073767059309751863452580839924716954529270568307562086721077371088936110074581742008720142644853139136949215707495717727594777547662708984932550912628115767994228887391897202095329253623986921588761864294649395616275310762498467891929480357065270079140865162471791594674603785373048983427025028618599861080627310084122282549899710897564716856309703512371237093411243320102941526540698474872269945395660539439376312976588131395375768007895646561978307673911555185475092921231477866979093655303168851901248389336819711498017941913312984064137915867864831651175952186613953032764375155325671453935135735259513489512602339471574436975086723827258962291596050390877615973911027881424722627246995585034615208668836200701987335573200860881747845225356789624005286422617771616037492687784838385560209116626950599767415883298408524691808997300921607862063782128293533755345157126679428930764121503369962271205325912942986707357329409901748080687338917232043260474625427685585039852566240120048691400302884794494796843589844150042172519543106252472608857390678739772730707652741393527136728648067055928642103994373281710275740886335039995511737414900457233820403658482648618125222588616236705215022687552581693367584047881359830309371838816841874020646282519425744740503317682536416204470857848856402172037902815020179578216707611910792724406468155791289530928688920698944596337045792546398014116325885868961208024654818626822902190448136141659985097489149469137328271970048644846403931503840740977439205393120396655492022886474454792234514455905481152498270126499310341204778181457522500684785105740915863504460609184105020286967546537106201748255609987940215177190327832621352607292147930422651072124215133737299872817846792751711580675733217613411395725642498013558912192022009689300897965320922224800724198357595027563194338500231305430343715799451563404824698025264834453266755311682996908555090490709624549090140186390131429532016813068539143117944368246671667011813266966314730860698969089317708908640014482850060233501828742677730751771875967969186325181270858480727925576415127821019032295367129121133398149351692776401006836015843233469437294086559429085491027859441707962394478651354055321441921289435041200165197564037929304365763047940182452555120395930868200349740188760466394791876891874424108167144500899492451941627953743257706160060296996397249551379554988797711492123844907008175140984065420773665298507422342009861652304362809322071697802306673160431610486026604217493401870793067226909405436253222634777366183176156181683266593340716262054405517912868966974783445737269982066143537993452033139137691809812359316998340219464177137358683608984590899308588735067117966573918421050495654037145136681413195154506215597290721149730595356623802743809733766605752026329579188563370384134905158725167192452017313960568055704695789250765213214535660011946206034827360378529868135337870049112859289473599660254770349176495888252166090302032405534900376629012425637878638409690752590085911858510880517972248132553717887097126929719121388260683132620139987017465994210663990659224316085422423005801672940822867985549908229027668197389791041886421328672358693747196740366030046416991040100460032640173269662476437564754895198520798985618777733196529581217721436301243321512705322046634005940783274978372873842814238458453079403355399326126312172881589747609591582016514989065232181566418578920072321791375933884323118468539484510959296542890582449046402984371756706222824620585319622023485136557747546581651753247432658661279660532596868828420753788518833386720205655145444419663491299255865399554944983320347527671681900385047623353325411140057500850054284911942077712085669848041043066850520407496768396018903079351309318341801619232721389147978239337621551966371447615106244077072570752003202152811369362950524944997116189799603339791266006947536502488155515743181211839463776556797519696487598281578999719258349964751377177505591679385102586473514260189001459787688940620508844095955110653545952263232682149513599309340529072529992090330426652460456604427572158357543604958244179778599182816256025658488760127556111691018625048243571375743654563294238852981947693810792371470214937790401056209812710187784170560654384021490038863194492450567660860344475291861583415867189405190379731144120006952324615127025689100831697222813316435382332554618770424371823288997004094900211849714047938724357426644220623272355102456316080205256390642259549404238174038061069717133711842351649353719591770288938177468474688953886028020574438688367728542825147254619521809218880827090929611957146005938329417671093667765509506405579337826384343682118326305617627443699156868517854741604460619973944338372580475833934890201240804248558157917908988920334703066034801922189378385154312919990816245844293373290937771559517295334721849036710130305492390193579332670151159794109947446283617741963731145775559742029937370635219535269409456285595088305964940188275962382286503678482122918036917597774049232773439251412028089431495036250325390418659663448148292145305091546278994390614245896076663077252504837639609772795991458759496826281161635491406478336136719526834007530369021566643927738574794289459367428011677340954162023675294893662900167704017999802413574727158774929428708641636058911689588597948533618716915506918628239948545564668690856983730362621335343044740489766600207102813122693233491002660787724792083215090577392540127458501685438437323895476173867990114260460474072072600328158517686002573248176630939234594667849886853011209493419476788145579125918131312212732459399869059978215532697651619973281591387565078327020615563796221519682043459226191450599150145041174488824852623607588926157346427266000628729449684890808854361547638948735466547701836604688909113264767964414679846240175497763363099798568467805469203909955900972075702054095367227689593488312420538589440586246569115677158543745218459154119258024250683505677878750830357559838473648974311528547383864261941627540540067568598699898660982116972256095219026018861545803446564921077030367198914854667833476593656059002571028345398619144025248362937213171003687050155201254034185139800160353080718574056651915835629431481243966421547031048252333898675345384881976136964508431275474116381059573477854308302814261899871327417769941858676196272920637783438841935552512936356834294706009622260956285131092240535494968106378260251357134369688655372591445655767049832188302748950121697775642534332786582857009771347783146904661321531943914822318466269060170052737723372884184835217574092624622877264321236058589971625125434910727215643666919493073223758342697481210303209831669049706172193638385614311601398121250342946478692814403285561922435312291000858998311161556059317198233567733407983908735311702599808013038177423003247712524224327655410258822763889718957676693624897039437462221999694304452871042512880141351607862964914068750682080598896339702524597577878088555905683975217887889875996040250000896911493234740098635340554421216194387975609314906021411133547451006462244877386928544948342213487310347041134141125812505176434508703030110777240369954962109321562894268167205987486021921143832976637951210638922880879645474088620096887011662693118956434698344351416879119260683905753453423357382272836462217156906710342838329436653558271989619035908268249133947187948975784405473531958249403956789933584429762854351886310085100023942501762454772031208693780187013674867582125388674923839950848434546666316675814221388181993278591627192795280808781510576411403609248369595342392858523528883755584608091590805431309582985775646518442150379973348361956817988868095945240859178043176258683985663345828914000164222910226610309470477597902900966373729690462499583316813587514025997795257297994404221389709824756013024688180124987968335602805776440696697936975233776945975031705669106543707542634287997429515093929618641053538700829415950078980973056620626512009639333945084313311745720944759968560072118472184226058923043870962054598338391817164218969666024962975783587988423200528790986461917196542153133952570441019708987315239504536070891030822560538596480494501208271256985897306152734833924686627776622138208302690656642100713006415417060827225153985450716989578756709650974874921248049490413796763939228515422584783230268197811202720908033180428999579873134361613891529435615073515535687277950434039736498604345883152515371830235096099808145383934343516701480766865042858938169397969250327465211643067072401827920282218395470732203481991465779936547020690543592733475030414678592539505582535729104862436949621339545636038259011824770452540584088892287692059538597136317649467610873348581179657711746928876799507038633574355796378188710375796705644989055220479201990486834736598401620804671494542995757534147395157270191601383859644017420698054974833389425930938226500802117004732964788023834363054105328128923977530977217503886562394036942157568914861643370589348169313938279505667086349291991477504259398446769140926619290155706499053976584561622555362858549340837404801375963043944392525395112808092671356527566394158161059236638509089712632240757336981430622484430795472063422883327334398498811589018791563749309912091126430939081532769852972943502905463525961483488702856599349570468141045791044326667056303184967374055023488464842960041133166147120638391474607674424553112871377838598707553972668409834795650266111697803720378401509754425983225617091572951389512823432519418782862222252563670302058469902669055194554198464049696086612569793645792347279966802203655225855934773076906874369716087837911793053151596935916846258133795986357889445714417260215392972148906646700714078899836385351653019292404235066735184965253417056079229123933357337603415769526041560879098427593492012122128836921457583981451703025393844095147673633226280120871760326652974477809908705223164221784054646016744044423860236901542987279212839234152962821307168871121567902325695524786486611309591997557597769514349937306971018696074278933814245466747355772220288894840429023162346303659539400218182304911966167510246273208109483411118569169709877827402537548251823375463317754575653758378251812926445243954508890966282247478536778496155772253665640947362110010124071363792751870256295814544415033221739271121146079156945064755110977378926847953060889949147496692232887736634425720623996488992268667002433076034156482524420428393021938805000789698376171140085308257299352089706930490159674774878542266089673513135944628818534234918513946750985541351746857569883371343243727488052526842411222502307332199637105274664835243521466234616560031872489920258759722030455902579956889520581333455489848967024138369086385843498629086919245881229513669235554607996366243997731775387056863467607002253765688488723971288793986377509398226861544213728511034896560905740387120729254264750521580129550987333593017942191463243866112183305354693047085902954964003001029028850672431792622434828450850986883655611237041619273935613908181980433244875352693427368730396738606337216638367575214492770405121621109318788893360204102202882057842079697677768194818281732832068136723420318023211954179125510091526840616370894636498854075061637078438085227449540504917779356228148265227518937759698885043827011643373842754429758308910766068129268897638608880531769153467809330205449208848493090752399452835884747869423040954686362040783707112455768323010840824650834174424856010261734283801978092816269409575670021000285584853954022381020775926255576314290478907129905915837863625737292371679605326324838597203491430070131311725777660626707517051693941527221966839356739460992425748365800309305440412910637484737511246403670882517938828566970639081212354831274634274423307945687915860733048380508740059353803588713531483614328058797469263845349541691130872268155134013501036254660336696287639910537796382860114894212082469345187522010717239890696665131164664771193018420098794727784099575515246315781977672242045023736357151047485171071820458368287970864483027064010186863931687717549365557260839387157547689489058001817465546906180691414609286392846798817699541269842612825916176962813017558681897795385941378918877974541613260475562952811866983225582616657203234702962050788307917249875500860126043784303903122435223579335795858184224212135240230368800567863951878077002492502315217553724542517299396610437773199553067407930868570186997894593180841326329856621718241638137093713835156057306725948774492247398861070499344097211667815107538109475453021711387262307028029722372977512527312258638866294886854677900863009989293619072121628180375850173480274801302302839715613527029617926069382827063227512178955029418883490592566769760723523125391152191036992018340922885608801085175959169281846912287264919601125613917457064250422259704418095347842090396972594849572348436466623492048110543717857793400139050853170500109803966589766934596163032568222958804946174188435209325580651199651322440372533685861988671637782277516158576466167359454735756324667321281970845299475457950424468505066816397363631000027614500145414437692228545903786215857681636094621423331583721694425498401002213865545001938173261534384593895638219848610839977669719253009864657619177956736089256351240460042373623424487368385814675791433490917442927772629998708347368291056499620698382279528608039181907527445951519192617592867443652325177796521859414311509017384745410327183968717960855531519322585234500005991191035119931753577269087705734050880799568818678816625244414926300840056125147500081724183596469431204007333930841791225071734272724301914831815135857223367053127406148063528711994025640894866127387301038139291434155761288072660535651807991263564221949359859624701537649564220501291862057428980454208170158113895853662091949057819007828155629666000393925964091394403745668269008503576658591474503028662836454469849685204210012970674193971463275842576413634861557935195763007220720675428080412489123812994028015836679289038198495560053297990654631148452513188483967994186522482166568683000282274176093903191379253251986471944604570753597598321373473310090419917251679691180800858237446428901594520202354853162534268121074183065942967626528854316024579410419533505832976165286507260077108109701456726453324329423197428351830306240849225536067707745770430821098989747876469673850431942311596092418612039812022125806482095263071623593371501354171384881723508721828778534465332402486018631072352907244704641476981824543944164737257898849076921406365898545269099923430896246303210921826433260826980510600742868360106522396729159387523183667625790441057467088204801697094727258124250123242667010194013363021758241935432623319098223977540912164169157588619550870756058749607535686182946747345073798359331935112987154501374657417606835911818991553489827913471330403530091269693272975630301763408728078705155630200413797184246610354042041644816588858058012431985035258218609315764566624161263179786451883253645503630678467473198775677805711046779521884556144388762826305034647058127809239150813041933511553019305749104425768665078650963401910247072070356871466450260185435501339607689931669523717164192264617400214546581116497205982259376528568580017161639461095413757758549979821803793870829689098055319913980552863623775130241057989060430353006410653769253136804423848374220343189557139069773647691349345695488493790431022924318721919481048678428595667321669662947577503886863984603648358575129446502737848529199534751324913787450041449329415907611601225101565516280579512163697763332342910828496220905139405030556256785563554852145391442340782251495465898452566730787644553678679136561331163938235460170909971162114362289977145957292363933006299395098507594657210755838319841223185254160293883766730493046542062994263934510846058006975457766130187076288958847297786184478786143299075924557087686167808754502191045229756239298055629230311544526013655470382920444106479349726112111546646985051850648493334094432443138373018556900243939570925084352150900209372175294439983869294158105724530783147269107390901389576995653896443620204859163374785680691506503284939927616012105013564291664095186338760624157468266850548828252651249982103150699254912527111778543615591635903035350848362800488836914994687169513023401865007355617909604776883517852601620506819809412459944086905487461636455353320741212363481556157041237080094297148766001872968041089174588413354561615307400365989731015306958849177266161614598468072401828777371037252167792207204330919234305346131604821329540062315460402131072274571304445414478983353489875221877761530843125223362291563920445368413352068985528742959424391189732021313215674785160902621642757757113825971223140402190580811403241377273410351353988241101547753687418645925575807754135653047558489324355356627997819276261843341559302696255901387901983962756067511719933383448828545093748230804993274056407528706926403870178812834780631615528233480363763915503883475859605459301686869248266045996955384949458872877263442731225354442573912091391848317925701649777721506844186485740187741278095751939734998077053192813903098510472471968357862997167569681318114754849404192621117333427153508018750608137655242614507731068789445300952883583154675554757397583895305955049858105209775245465199713928055465124844278070746165942056749129263982007379663182292028742952599659908620324434601572598282594248770465254541263718791243083978864916501111266262203856482965554645579778766376430687918802140574846269414299581634197478578707677049505684400079563731201705535332750426730912271688898066825791114961945575773265880857898758968917468873146045197386366475846269439419957661411345374045450657447056719020419313401374030559510061263206160524290388095796639674738631540688904462757987897551045263704373352100327243587434008948079257199219127583157697729102575900051280793198365911683022640981603323932104056770444565748928473508012277286541944790815106851112480671017552645905774827481494925071080166472912237131425517011171598603273194049106920674343835906713199424420284964060365312984509862282764067535985053258829777981294573908223460868375995269971307460367281008802287826279561250106428163416735849438822202860389043115986805177551445429532252727266660621792415960403595963621821770566582335860729455874083792333521009231470873196173933462027665850900115400574140070787930570402550604317772221079740001628971951934381487623598231799658673928364480519047282728409870075787832850864943740139335257726781306882383437478068444225747169742850012244727675724236022508580726623500717950338195495095319310091129839593256281582583463822064317681021737369679230021440735921905457630408180349829350096082982981840632216918925741958086212014478043205365000067605470923647553450909905685599323915341084212179595230335852759704273949958606078660846007172198773408044796704152455993841176052719522851562247029929861440921542354576011026536848068298769712026426703489185939156953530388505221088727629356031479442830703055437934390967106942255652164573005467561354580462964088691673257749336351715463577257609462289281933903633268279797431146353925552552916569947491909562978407554451946627230214924617684567885984451021197163492362557481691221187213319157290287456873046791406409480350233841374962345773604315708209811166582791164872027274346775353953036573146485966036574979062664743004466540487043914395352959918145130614364513212800561546935249927644592940192337958941457894119140327620788821799868088859904220445373893235986667968579495724739089918075914225993265869673204277981682615834628951689173433138252647460748561759867925585532896619509314183275146151059883981429550679836141679124702665888065672630778100659604408245139799181339166863606832285512396832629564405423011070246274788837665270613274547612468632056215961232380358190012758918382622432658771322447901841210353332703956267570271251269822863661142632821434851638489623349194469802750860880157119866041807993213315876724917546519146714527332496493284447585477453679732142614462233165998466372510825451600894631020350183269397070357496752587556094963956019497192883806111795735546715677756850575640875215932219154911606315815725566409115204961594292828089714550815372126505185738689423231649440181694461761611013480764113453036028163737254670709432604266384642664958734117316035432526098439471822318929912091203417297963930757005983914129255518521642069683691749693981022465031896734684941680176020116997327868454385262706341470854031178962779453304239062227234487841639550830969741813504723035636795970901956198821254638246576301847702376734757935637419679116865073510666125148723945401099138681977807829027339695959212792350894733922657457786290091197207920134903087087917960934313024080442836993537735234070770209968707988729447326349427888635572816455569437303392350973254968078938827799513419696876350116488048453498516433230152924759062279356759606446725639528305034026983623511876292056671684261114146497693218152899963038940770808159182756142126718987903331568507162480810009502252087290915909728622324738749461160769208103010791768782371904220426450764259478660240669809041401183386182954911547058722659559018177230699377464864730051855485264651470907174727518727875535381340106225632119010622654089736827829362322493884444117976107821282016656983528927445994684375683727653830447635420919716605500962363343129277905254843063130802686078536244040694895458892680387807662116590445225399908202791623054207812861365308315157684982420954791027763969764716471834768414903310930978768458541656741622891991804371913359508261541868588021674255049979878052798526565146041875626601775551813745220184849758286992382524955520554139528731257963362191927752952884414745408838210328179719650959435461016876893459311476249360701135064008173343637860844599195392071462609159235178729977917818579633769356629469147001261054488444999883700599684599005088511522869731883832060642296739736493701441701534748002213544558859988839871592479554015250579098181185777830535009689337092297233136285123819231671524132052927920173652478060537186019027664605502557148073909655228408439435307984199943819179631639244214341119259436064483049447953336316656929585159512124134246516992834461544617662002341125612349721560273216572729608579697849183914714861852471886542878794373643418386263768191737002880201333860434922580722108705518933532367367314833029087793357125445021880623660962666225985015674665805263177247313818541750479423517636502447594083024901424011986733714707085169444404619769039305173783186856033512146483046895947599724730631038557824828032678317075218317656226177377997815249060544903213744005873316447494358827936246433597199738191903810911067717621418797028649303518247215391966697388356655274213942248998834940251995800860486098157869903537512619648379944162321421032995196454307892241625511830532958062037412389479317871686262779835472410415680696582792023281172289915237327868400055768001378386608221553764754279535255614814909458325955990176818669063282588778258450559931059348014742643126201379187222535705594351181836923880825175578875912611372070106174439375569498893545223063862821466501771638421349088350524815416386577073116283105923617290692900353324644094716655790794367513133017697048369421031525150073264377698356890570200047212758530061366707440266077116732305108431239883823730653629695324528328966077266158513896256136091449144619103406201971884529093226911039754768298810125223305958195498009745013926300166065037553516017685923199793025904147549412814318241766606875447184692503753530404319459616442329519237640623777428263872098439148971750691332840521679555100815407823673894076834024327589458629842484912583434508564716503544294135394305708621234091055011392165173032506029341824674430901789094716442733162929636294657854117336963411350847552283445194696722885555639956488137317922873560576251813285290187766317293822956328218996139592217657559838806544351006477771192357163207753867667137800173583504460849782225154025517846864214378485842546066432482561891643552154599731728325030269916269631281847680038202277308538582974595198991672694468861849493181748168397944407974690047297724870277446108923194689693872194661490875513095524117751281322625874203288173475024454270351698771182059022096056545459025189051601389891682102666257771265762420802097884227205717032459120563976724226765379520171891924227404201011652403852575353834551466241408129350685463517835359994017107089893890521016312424235493312293344761704033450019965836707559353560792868500243391820252568472176296567492045868949451822025477685674003022367772896091288051866880721120085429206485353598132629866843813337246104214822248399479775469892973380978681659571981196970634065828590262341593544855155164507544958933777066311973403330826765690813180656963680919864620196052004837824378936729768785931531739936992614372509756060014631675061410350791994822700644485434839803622120277271958066190037543477157118210043291117141534503858134724991014315485415404094074233622077005635327955354690261462396404107110594199210289464889697815166319536477864774586449327364315732246111827609986544538314309245214372553016872113158606765145103971525988968795466052109244759232470165816769201709290279957852850634156260978178527436830381328772066567689847439987149370813653056483830874431007303568780111309526860487797231557055257792345878281529859989648694679717956299256298487141716395014723661657382099379694667674441467413961638610779261431185818334983668575853725198005000114769986594225741528970197359150716554395012984483001018175756969138423815403962583230420022214245867647877499936660763874509244731074433452346390695049430375913749939349177993907372685779607980885942414108156563376081030816244096309701525545323965672057151690170423401867725148125596001596483729637377373936600576902059560320277591937253905111079438693420568647916835288548618359326018571815622649809767877819323288139577643656044862947923047549113971371078637212755034815797302997030618676092226951208476943179082209409642287822588033732755262112726039188101712474645779633470250589440132453199365613522664129752958635510942400997403335368187220977936690672166390470343868977999997674937710916608137563517075667329821769528347132912010025347545553877773478159068148387724596419791262557302772718169779116332448531302770722815538863554204268703618398499407030676899965217249671203224915929710072248792325231096904186040301595194909809774256343650478137536890184062575558305723071249701095273188574884050235409743520838227282481281788965619963937814985374729530237775661711336693297961128888595517111061842865714669530022797504354690437468828115806177863618138205555334241710787133246065677437105639984392221387477040550616486435248945326649984478969254708869998626008242446179118142283403232279472915594279562849778262938091318505987154519340097387991953523391954414233618793170860154490490147645774014484104608830980221300861752303695368125404823286879978989809570372609204300210284477008541111942661293143486993965077824442424507206793085188669896185336124708799825885083407087885573461470317250519289523648186788884101825690152037764643564936966676760133289944919637564424247684640095270398853365429025117205276368207083880222900899113985955730030401563075338349163526410245946357222749190074486410945110945853594367192085608434005176498544630122896267882787864000968980027936273185943822009680510098575089488863410736783983296535188768097861353994366618791498027422075372340718310785218535320022033613087967631016197681641070909576344987633915213891467375429195928108523759509757442037120122972858823113440720015245357359319023600396635669981192221718168983822812585949649621121145834178527439491627737975323893860319905824313502810414463334739543382928544508527980393717200023474149915254354151808871710216607175894558177062123889433000697266323311935558193150156091149094371913630416455433428236482952115435029930873696612814072072447767644763032154526889419273762191855782100375366473600785994846600307702606863861210380982233876584652909349104248183610826880695583185538900939579077658525760969797825554808777941218474949734273927047749483957552308180412657284957065829644697635495365214680669835495389818235255487521510512474813785238093432217798384449906736724017537424316082574383397534984889280699062170755547604801347714222285042822092542659623186982974123692219368830900602656396154775460568057165223168175783797417329341209166686195518293756281433443654513119531086668199153778324230099448513801201209782313150883599275206242651248675066284831168427101155643147191739236121992725670984489356665463479445284535248595432457760053473249410282706783940049893657991728835445739217762880196332899420823841716883016420710930823618432928738730744918225816251677534813638033708355797476070689139914239992950245750322498295028526211612315724847799517996229888173097554321832579021584334595117125667543593764626317824976395776448702061286710075479093846284741633127492350812398777010186992282271647127685621832207751245504713588447879022122813814148729376206672583545440549206155606686669231477592329296027464138717698727810285561051897064346822800435909376324971810223022245701987408378526999483089757929504895170073193761373958474333099254439347525357647907605744194255009606715174463202797366492044623599946457791249921101880413501276925197517135557142038545824652100350805876560500084905874291974644125914419926622819393424833723337006905803904354435940912249270203567480517417435493315284972643517046067667057602918792051176457721957901891632390030063624488317241550376556678759441244694169602470673439261410893934532127934082928325486859572884137736217893133969928236746562156712579179626429746044586081503409604417332970492751237117287653588791649623374392720682798978892102198649368597094038217476427301852348089782519603589794246375739766484651301717678558946363401572309672736929271143582678008145819953391830351949991230495968450500878632144046482514195155874132571765348075522472229711545942538366166107598007543174745551564315251994738315385380041344677100996577633539675263626697710741589938927252603224572112630507284955910002687613621463713493069468466860489360712088732689553235771240545149035149111128791851907810501184531651732072491945474665818728875987337899876065811299398744175861282445390236592813048773127951426855390358427213488863880311243237651053510678843680970277033962727893204799728757117136186836601163629648978606472786164083008899962468525838539881420848082639777594024598386726814051274860991450142317214206888105790960036746895589942759659221114402751807293280911887097373221406187173608083801734113709076657173453649782486161378506186293494080931225901214638648715743880575469758701929081206456811432088241460244256500822351697610178245758024649321882642932986502117932519598354400246911099544767344654424268043113026382554475175469660706262245963798031691652516000849829638444189949327918007236825019409625170693465500401168281411641332579081632235114278599155183923972825366665349203408863590737385375712152810517353297731098139374500261148153713942460727935232040162330788226894617874351524335797742118190945605798312081493202168431989145708270453732609123518719560297998280848026184756071417178657379233461698510862879771898045234028317704167371852056022973050717386627529601529404415137701546943978849359151973765446603857099218016209473871691223955346746670708345217776127186643829286228183480432516764866890348206086377972619534430056278590905023262995267305969144204398193373053921755246020847244552115722247679132882911427135853359969889167196506786689504524413907580230674432024745086160733076699542528894450924543429157331547372199861147207349511346057937164454137166846660989925348444617373297109337949417238400189669564701852108690888391955315184515145569342851577546581887595166833352423188323573347418926681478013963535544926299992663458045592168121033972797754447100541795702912713541657494940074379927828636949688769119899609289750581748760455702456184809711437234024403040378279035731210936948447386477081021580229615165617152620479611001553824186531257740339589405008960910397893885776411329053637500779350077163279037992326464343556637832246936870058291676055275089798556739442195321389815582485573271880973129436323701392033737795589173985781153239130193421869329950917238794942292459695354295224757717071075893776070926582982481018659422616116677796378302447360174738994486826530219344837989020487474144672841594373114076024308322604831213492848080730303973697256524202624036568881817360941463590525931987257563873054356803208682745387954812230390070135785133123606283403861515915265823665127564005620018220481439368764774889253694180288258908616919795696453282185139930971842098868829977053800182703065124527210352002694995315491065718877624494707085721940230208419575576728987595519955260815277268246652866617694560622470753833384891530119821048621799454858052971098569207919528805571022806286045646573331889269232563180082769665677836324825711637857846728125746778095358217587640861077400013858565777481435566151549338778366924379104783797978406743159502304673572579760227020027129483577108292272692584562893679016349759701400618908390754722148373875331511170048022059552103663914915533581163080238465798429212342049865559009780871667751970532363731543776632103072359310712037806271348248613173116496021829997149340293421042570585601770626090900837461975610446356061064767822498726527530393023479037730763113786053523079538576834533907707157682588486583784931006675345869453065834229357900344639320973909579418942013685263385304921054466830636820359973372880682857358201782266310821214687816848024163959133545798799744496178961142505783179781083154246059155158075673635578216155171413218840873360398011147176063215183782160223619751823515312281815533541505665216360574586876458422506823907485879331139917614770083398989108539456194253643060734462281826478581498177520435272389590427115381096137217309983122408404195167628465913604705677491766765017459771972574140542972728065065945025302629623426559863404602489964770804406041294045299707446758451437538953452607188465686436335549340785441618646836859704857892254250228912395176032438106135697906681100166405912002500498736293617259463825399651352303010955693505605588187319728948995315843718135918927006865615352698152846302383697787195248653695533109241366877375158153646749084978374808092298245915534942594466348261094843342860186129158375481108957949696172944268550638363459676017811298871919037172563211881873477972025329924694510505736105463449867167169744755660191135686511593704635586638846483341515397558541625845705560670430322231637417784794869603436162671478627868984333262252193829703237055132695131980042713885958252759956832987758328837638987739004834745654474258381530802779258167223932384229586265360664982387796699893411424871932346813676545345776680177280949622836367762641107950360013783160028878866989580967298638802733257233075672161371931788256092781329033550233542067008662168418360767339397924998853890341079041861126883659335608084395464422243775988969297584291300011752052651168875742755582260588687857011465150649791660017058071647313310778927298352547494416681993223945084681306476832575338792371336204929923566139985847169795778008150640407825484336629201357318080958537201692627681868964342865423901968135353707309114962478140233901199365061904674806137017301851957448550785912745115425180862387664865418662364446352171919108396001137781037639511397576218824341085922573866039895229085705322589883057014941809241567459158828580367679557017592525563867472828819154413486936685293091214516782739099291209413718357326374116574067511579943457053691205175719366647703933899680465878218318276983784007380831631130698033070185720712114643407500598228012190330406767641782172786623639382685307075263483038854921792931482151907982319777206690025758218269510340234720699057655779592603038677967555486000077068517447603261753474464397794298881007123026472813916115096167654319753175666627206878322358384220176506004215393988276855338740313805647655966919061380426480269649205569411951082659429626560686259262871649323713685267101899294948353749208511829294446138602013633747129800882536213844531580516469035186518656004670550910362847090915398783744427890755265958961359112685342845720551216504401222879484618630236097360145102481264488586757604375488106870787790179442455735002667523557580437123432007988751424680106429710769802456519028620384612427977689557566629515190970735241547035427997553243484456485489761108823425084345489976371085561178116568573464552011516971939558065844465688631390784687965963023358769851482594037415953405208390939026122477477695501289709747960017051327573157081502018829769409739397098865144913174892664075803131798738941666421679371143659479761640477399222197912134492201860349355973697342990069986305477191677243597100775694060162144025219605156623546865035227397069910511605136245584053106231632038979024454678659634702568818816995432255636073515455135030455931124254808482058799039001656540976356825882246703544489448125190945233899553832796088653679591905178241155158866359317201694503611233285665977639322652034411791904111215571497998886241816768921372885227365940231764488944047074420894864448011318708778331208438497688417008960225848208861441904203412017171888303371015876909992615499003344162939844869206721106189276180006510318742853291849188327989231449330966548040976739123157356079771985094773534437260317106795365628204298878306950691189719973086335049993071718838098598536959719156030720897578795262660251258684405551394674062315789348677001033052008280171702302772627043204663153854835492404086948028932046546555399048632902286609399567307639817956141434288368114001875052559465750065537068298272897938792781190698194733672219004949203714987507136256269828235373276788157643359478552440235614023999106460646114588517228887168091461319170113536877609786430129030939004060530291165968268824436688741976663864485171730969506461370778340365486667104373681652025117433116126677103855192248477839739375635551053155716833175196517597706764817420260336933766138546042508157690191526384867647443095348481967814671055902038993577628099191205564869155224046835017249745396855926667089416735513695127986608183264329061281590951265312144943968059765930700945839591090933540333639297872501917304744981182581095063274613138323716661110728685203986322724417901481280608121512614130195585191963929601381415161135587863461293525512293536467531057065452351758676221864420397636430133723061118943142909628919437262750256371915420016594986220556031552126270445019274919605549078346382008023099820189968591520872769983150582152398407657129912965607556476488814110427869537052866675663018457479954347560330211194022156642491827252568662566385925064090232683256586190388576870962590321844774669877246167150311269749328705857404011209234036189830734682277128137945606560338860241999157213862120628189087621696341788855828765725740954629060882534602652786125678367276405054435071513015320227424136756605198026422356531694843095701201302922030314322163807639995638251928079299558816665600498196096640791251254152165681204330051688192662100738753558355803176848889924056019633810088803630762160361470498982927661855037994265686704736894035780641983029241752807135201295651132887551987212571654540900018262513811715429462784561875010692152643203242444809631211167911779772613431882554542540005663328558291105136982918594904657355462145567916817882660898271523107487261590556960484847466138151225947543470419062523315312461542287912573801563292791162024653719719022881668038353111556870154590116864323011578238016145613978049004732457345433118796788594794480727509491018220127855825772974637697607538584882371484628280265777522610196063576110233382315238157723221653335175852156387235663925085484941194734933215130841432549550474912437633897182794904853249754233334783645892912585167008274728724595539739795849736037219496457172128535854382578550606087203367639166183628941126222066232732437890544482394567290907870790597330743358244558524541516130126213098438334250496133385703651430871336447088169985777651739842522690103816467968262558384046088898315626223322667541135232323654831069421319994047456772548017053974370586481546862167942796039346690002439149482039402668876964128138648483765924207317624543202251860971992575720405214355111458691347367934332717829163338872918006526649216998901195137577322192289241452626615410190957353450399217216540600878254497686475768673409347205726527601331211809391555940498517356208725817948900644724463754620510703853418274450146529641451978179383421564755289598780423026357465964315475215391778501146599230429363423662095173713512931226363604885194543654269143975652595489487550848982607659426763220180951154561769587619253583508326227800518210244109279103520888816439682192583940965723601819487669759041700876074133940122750236113486653265147755605303861711168843085466454580222824278590456079875008804241688997307608722777085320610701673248431030819137197004898239602240226405932389283755833025238827569880172248850083914965466753372140147977008317022471415145071116548654980641692741919581375725042398222408018746990609687444154162548769615002056140705726219609280762436851004289260120157202104753848440028217839779921126589838837618915599908384022051590238407243145407894521491323192992943141705781088874717539323575933318565405185035687386258795105096992977607966093051353268876655520385845455270740526928534100201436886609067740530363894642075749552615440267259889912759569508999442539857627189489765385029243964432042207523631092680499584178544012687210532566031491150253797371212040664369000311016750386860206535093249536851040463488615525568353657229843219833173785991161649203734476114427323505547061286623562585454229343445591254937832068930911017728354228437495543684975357822825559333278607050322909599126533867697312289219014815098114449049569848421734150008307337641399265669630611827178415391518163066930354423804446320668968920151374532488026011004127246885721377535069431005493901990185230650958365325776907763481500264523406284105837553749017146217477738954542142818773106939475258670753597384927199451874369395015482832724202788755851045209731859081451244421839296227855034927148057062297935888643560537781922511297339219170344975352925238505225398884893381811561916326079571928913521538508162285075256472507583683571424712747532277413457401200298308416633580713319559707410518013515167534057525617550874320686041092253715867405363504722121184295927973818351991841414025513427163306964125023237259133597613085982133282889036699344560501089318054167672561367040520574071652180612713898652282013983559472619288804001213866801869451188903608134300455045678862761408842265098591411102541183711340445006385551242727472475896957430695425883780170226564464712415761011365396030002255128450234624613069549496854935748786136052504801364783255487777484701765738352300971834751453930483721404529380666179943209458762759932360404159480989702420726724638593625220421527874296274573509325943225081590292421550738033423776787177233975329662932348165989453273779777376034643353038157968357362846571213142796621365452242712917592457289587456849562401014871856578181627325749670286646992197467291461950134851781152069724962772950267590610661938324956053621510767953770718232055304570733531082733601377394682286914432881282868646817766033868226239006874769592933006128777559981483819087067752404839866551738872805521258198389611516159028862003620426872269656188057794281077420031864986503306047570418642151218204836783090762800974552793614187632534386234013766135980300348247927039572493346860672364804606331906180470952533779238029806383117683199048718754401237581825317668339679624633296697483384963192621529862571199185137549779388523789853254954384611074195343378492110817615519538337261832107920181494002292713194788907365174500133128691649552465517259049950127688610062888980585039644443610267795355293712797397479312339022936441056340957075742953230169653840300945187977538913510195340049047874400685582917354741693482607539967386650179458828374172483081067965024825541037571448786505247481955647917013587582633740386550943157004508848517617559115837436238165069232333103132012925199067051856373808225261648123304932567665227038384142390247396116387973961246624734388006923868632101161339871252418534722415102078784154181165696653635575356344689383238190165164124772977989149468165588305466686600397428741954508540759482063082248536819562899690596682542612833929858343393732619894590135810124259574887873577771656354399391426532401135109116189777570884839842053457563162257299846274548600895319824744784866950858942042566112696521441945234684225571236723617436496236296691241046149421819279139319073881846995325493273239112171121360713145805865008288225810647887477630686597288652503524515687968947957357350972035763153869454129642687857704945844230204511607098374312646920714511419025200845396429395464996941532084104424898606996199881865738775727550794284354188862307184366780565982105153470368060292084421995191620863158346963730741483290274861204074668887776231231669720072068042101291491150351616338093967658238319984043927351753188753817317559542690028726717542030622098434472027765579922288300754225545182571459252414919697424830579590037142876940044895880383982047004522368252556179922072617262022278743469528858754936982223082717202352142887527931104388810632732677506286816499622760065814495822549391396112591887846803533379144443531154246003747062115795859451670725029156005487987428025023091227176109215324437604644500934632425578106140177881990011469881915755988942070945334488596853061254223447177646834819434387366397002892403073278749560507517657703155735576326495811250556978570523522267788911955781227611278671759541127906047080121447693033873026470801314405709132810446952240099084871615439416410115344668317447542627439346931394479032194229107081690191366357132539521386364767086729942934016178147659458145472905093602738899908560265215346492063658632856056239573594503643242993237468045528308505855739217895075501176424483165617141683449778407036180717031854098485914115572839782033885218823340602935617301088082582462181952807932127435975687348950298798274457671118259406071883383213795545476626947495084154355403834563545721970262502380785816077498729318168984416447110596475507795913280793040463417762544922799322688949654127125439416315087830295535652628988178127718840549009654472079709087051075748570021055499012863392855686112532004433754929161378454212883324838863514678173800085172003961985853596636214619954763337811759492303652410902647402142516770569111181786715531153074672868124641695364492960950351374779802706949734418344944113137749654805339879089612955279700881508651278616448625596735327415472432836048516588125917291609568546155023636011040397116121754088396125292730904206939305828323178489019276669763115508774488257179523445196991449555528224175123656299412581974193823845335019851150763389566852361271867419719415263276070653300018662816675738115971193755870391169954190938483402689858949872927402514579995271375795231736152897519266978231894789553221857395236873799830730355794658234807107736296779643288851874898391131522972899268180743315069723088309050104989160599182866193457392375464740047445838910194755375914059540219143894752763416535827799197913174008252125010911244027599569626426248224539254755991889775754034747644340730503255887521993818438111264337356805626392011300878278335868082387464055619218859325006129132283805777584815014124227687349610198092066423476516448605846633092688159421508504945834903638756605505250496162081824877219744715180817319815403355712706592394322167762806278449179779579926112892420036251309022275453847354764323705660900733067760708985244408234338991218598515025376057100006881063902723278529430507070164746881545328633255304289769446368157748180943192434978284696480982232431779965384885575488397205512800635028921038918601445680653741107990958900961727721646686884841244471861980262486372003654866367877398900321700843121785919727255026359194721260556733448540932438754392219081358585030537771003282927141477742703237813698338654136954069551297183909686767823117033650471431350413423697217070950154541097405574373356723027258876959274960138568932383880746757132082871046498610855676076025239306008721612859907336826505911018550742452736997777050101197881813588565238743602680846431890764580936116717302480960458457143285892659787532456732142245992798034529179426406941497078812048990968974939053511814859326891902662315890299560050003030942390244693211057397807528276683898757756537185860755499933257260326095591155557303057053401523099512945869947014042143449590023801728199765358872957029724884200252267971944875331883073880937338680454585245648812560396552435960680235966005531044568510647396292869020366062379263450830774761239412306207096457521467049906119462437162405245059760207104096844507743199931696636342557765437058965990433067330076662977988029029494442111514201253343562744782561508405598934867396193696642622357017692014193788138861610212925674389904494670098520277249827995187133031824422244533113617203454835409198822213987747402798860041682937025922807879366303272686320779923885300168766970281714707512720978828962359338811209180821299874819930324374702301735385069199779713485157612225759485811284265553688511563618386145294665140918897107662035210949608613692927068622255546054848294262267884028783101651636261676589927976006117120552499942792040467648270137492075310552014995247920657491843636536515821076272638182514601744808935614156544132812470111799972387545635856429520885009296301362614316729233917417459564351249620368195873105517566999435034531266920510958496514570761109047964846482651824796034696080066982788123886378406936207817084556960315564569680207240044419720252845734148926594653967156843499384544905745408492265500457424340830986352114681960488317050603359287531063520382813359815021724148563772381271686407367177731159207855030845924282178683587449926459156365194434708711148139937456771524867375600716830588710067613158529499085848572649987793459086179351799029086124861046506059401429781358245893889968312258375783274495126299074021315212059301070540014298063113944881455569324295377522162975405435300918086122236784473953983862569558672656813337981467740408109664976784518337920841749283804376914833808867599046761667462000066224212446266226844576029342393083745361060674790606981430471621087782314232116280662608760589820194264259254475003806714059800928484782169623850851934239571659062950624778388240118941569416942841353500939124832619720488911036920181188191391476708249763774914280666350046605483151177274893897154270423303578066370866780912278717306268563991165137353123398721833411204481530935109233593321212680235824434331881853821397270102601678701196885027650167997890095354534294964163974252160896714762772042705062072164595766495510652655970562075217721148526309477623327515348517785072232102898150583808314460029076691389014091633607707166657121192064893971885065451829665957976575559782960551338398549938661804958000705725836005697626055033012486035429200542755038911622592399103519061916254052816269173170790518483327656998302111828860317391874987842686426130854290548803152701774867617678739107621728363261162066106101708045972873552442820927137251836375379533282851450759736401487919687110876032490286263919705169210197252979940081147915352094965687556586466181722131449505967312382267014171932919710758373001514433103175543471354977692114177442651133899684945561335937323343482425928239862480819818241022696098019850902561733346858757779288539924472409983785553108485964754683564769758824372260435562306101413194240691496952755467789939809833591626974041892655543127106939533026824784726357713357695025871091406516192225050463745233261888500338299583787604479851557916600316630320325150342928835151969214027842854124382372970893836604641773075022848905260177645089823643372679407157286627358920669020429523139910598004740075144473522416705562326995413037113232642770714773094705844522572202839018537614504320218571396419970630500093122875115722849416261846406342111443525539251767313252314158161328957355459830347182114762468736433249716766061437724837855526882116385351843586854526616760420469441146945689293161025307585389162373050616001813029191561438282397341913858297881858324942965640915193941192682670632090788107694153202959614581458309423046561317001288465393549216008510900935274431800606232114109845861089873441061812550265820548612566206476465964865158992402900336868949223538034841999161553834054402709604816830511457273598570873355846568547395458400506438077312413662295297115660521026491517501699325394791274785671723780489769530580903254868502024326200645052946668387677296602952600418767544634576734458598270207864470245078006950772451564950586535791189260364218468340400025847935116577199368487650281010358261816524163140035926195882630499203982761434011469330363995220840269580879539756111143376362798048723092123520563476145302879280700043871230903028740561988929286154642663536937985160534201395499911737462279143209024263159728232249640061042282286946652608493869898848887035779067847531009796246324462530583160480911731225548171544202615721306021196120592777341345309662202872479520519925518654316595853366417238851421122961367408624492414918303982691352301618933225673336587321939328416869380803200108219172334992662952797120401863641272531376208733289604867413506920952597549548176478984307993111614276059727790704185291763232468761083638389466716254501012522642187389286150119019309470938217414383745260734557978619228119848507690205496510422207134001675210894187236355827681422420600865050702695123986935332618953589424799795361741700042835943552573915563464857599045856292483426541915682323694434663637324176537964754996055125032458373999729524585777726563144746780934570947810391603802112691639733735781105381850640529999876449362803383117391853374600791039201873722938128251796495545711142548593792225098382892519034550401570750630404607023785288848255432529952803947378051022342990962373096764616075870427541559042180449798109928792925602000004597503485012170259454083312964777616215234824193120824405806330912854551224213111716839949046767368509252333170446531351717729165356792035537401983604866152049491507249840136716012512596318066405775418445558647253430759123461970626215242554914292079729418767325915405487856864116364334536031185984524609363870547135365623499663915715815440603938659462600034239972403123169251694642768307149433353827611256943850453310390132258571250757723035424908640865474451069972515310295283015741079229386164345902488614374625129071883352997014729808978421635498949034669225511183413428479577819052718745361125291554313918861533431654533174870473374653984314865435340449982086621176545881262199875946553243425886535903045755535503106394040045134221094537716347177377018851677594017624414191107670268577084852458260918642062524388525291915836992420052913812642573106059542831542639868086968360004942064103354138274484717652593906704410071628267287714268655837087888306062223187809637108140422990294589623806157884022021053761299574290851572499886001520205371921483233869535558433633774429874018455448709872571927736639903407920136690913697061476190765044993916475104886392875104371699354453755525617435011837527012736896979689710217906592012402987256319064920606248438930479755119955983751913078088438824098507236131919645507464295430680101034493055242658985406416888446103614739000759739008796154260508788514026588710850464535562791527796644818952329462216279034703995717732601502125164254732428083184092131706970922713681670386022630556232475097117391181940574589356543607002270461780327490307403869947974277447342441466747039864097493731888394447856631436748017565860253447018355757609604086624297773058865049283291334096007735080493914907864915019674477881915780461525921387151759476643602109780646518691109674837010822738714433421650711280235426383776665642406172101501847646687424639250367770410805372402100679226277437333759946173750169299904063312063227178112492330891837222277380809883238433431278936287147283258994102379094168115049718205475981069970844045774396897596884078286707122087298390775507377495015583012636073114628631439709358053476048506319734645123759769051373385560515285770541253344829489694101941406596047311950025691773570350426008218652297699462133146003458648079303700654207450965283782745566957602501803164982259409785809090563230923375163264115880841328145382050377770443409409163986828262866247193812200240956592499320326070319022551035602682506140614687326670480135268668930179058713727915427872599213764686118306329673282012001804709813621349661248418436122855608163357514479132777481434493343298827274447913065869498172904974121563643466772397284178022679589404149427636008431371306664632999281022312400923419700537211630962103990249545127982619710053161995568203912095175031878305012117593638707519334555504155825588603130694857556502259835090191658688140794433846175776997530065600709496222702626041725234566019687278688341714682011059499048645330867295904367150022855811296059337554381595936910663054242481653076525388623019422720127998231971963790762934486849509384811526886404495055063192959146998716710216767750747761480004012090706128242516578151048050096540479585424042401508504918691661967897994055010517045964803912435381952276828477006124491440765451210702658688797230026453533725776019176520690621276595742895136408705940076347951548732700110260653444833209916225026793009414812116264718468438063966279586308636249758291506069065297252162690293732597663752695467482586757972589488386250400373049816205104688928215768914967470043281727100578977196353722634344905323338371941916120459624045837546221236699980983622056874341033060742343838409012027342120785598476011387588375986848543323861847956436478487748829609499974151649332374131636423794677741122774391054919411264346941720192946463411290577026093110985547814741126671251089462104369346864040937644243744613510320653649641085427497650111434464353260758426247295340785259923522178661164527316051415535863339181469699964791261838062625893479508181275207257612595268754506755706294439456467103870996170495209835510552287344994351175600684537714939181999419307399968024593738959469945466328417309698525990452730281658562618623697866121929187590628364629722054507860860730515410559017378690580483175603891033635157243318186724274430457954014965225211567049513635639794986268547498020031748201257886033074380675317428147499148326416677398412280032262304339577218630110060660312014459921636968739333635693047119731237741802783954231631872009131213619806387360933807564310234063765206907521018275988221212697607339253201662963048702285273872954919934001297903898287670274863869800224088852879775526081275567534482097927593070931922517651898623367903679418926831063932282840894940865748013700969327098369273090723943550239616661843573697173352439662228701771495396334742204585438266298420819051439590677480142688374717767181828320358165499979364875663054793572956136689334896155714275293667302241616752931471980676624558263972505655361052233309230518990830118643313742669422102250393790106697170751790589287639748148611802492653361815822086009040445190569399279924943236951916682276154195905579497925329163900035920570678977399593998258642070083238003453113576682699735194798478137768799619339090471851012890297234878452390491314058006304226082225508025517119355204474580935379017541200069118012826166865357962437405699790944475475407381708937731250828448498435439734907405087277607189140248490398282827610375339062406424021323012941471534984884352082908985538253362316296426157310491214007583291955325147711084656207120896264550788597348802318968431242050749449318201831798622418384137137621653449609972190390868084818764439367123969172488378484489633168556771764646399510019423395222419097518179382480838869477755429199868577902222367720184696813815798185590101148126690311925148238814858431110973145166718987960506209135279708879906147163752169439959639293121852784385041012023411839669638849857865368916770973285946335551938537177812460588282654045250019285816394954051712742742558118436039443903827147549450111460639517891532633557611863838247588588539602141426843306359620705464969456114645678040839780387495899179061158701843187894638104791563468210556800631276174405546708143163180661522319148116207721300604584189233731349577237653551346934463125750874255406405267251126247998421153944769515073304519613913679014576795216705448611993023076652537792440278274532704511389728388364644283186635906061262858355299910946371945708259337541523949920915489303812322561106302234275703096063991209239426410088599342691135049416739122445342678203938224168760620043531310864422646261924561608931060848019488590934093125271299778797167461111178789340760369677482569694874736623194940414498405965292867080975663713296437368518988131639432110960769643754798574744483948297148789933504592823707304693685061962300268600532108406277228622969992573707275186201039120114847435714566242035721354142720592153108208204175762566723089410196699598429859694220877896532049482215248500859349030653212996411434807026450816299039859184679772905362734472822938796612449658428821617399549235758176720225884130745830265001985638453090767233223222663479438681256295038767691742189622912225623479508669693248128334047609926405102081046534506193377493203916412932109480395414867821913431492836472881819621595623453784650226112169125208394609269600170286204276061705756765776840609086143660475247365071786400054835288233305586800477999540118783795509173750300397655632876971876126476278287893872267802000726061469176572088108983249243020886229282160112139720808838996898463782859771739253862533182146894926877756407536686454938390532679730250156416119673740269072175511932727798578596225055524363530691718486119642457040760570108050411504553061628429989160583141684770674784170265261789071659693438445167327024040542172193232399947426245152738917532946129929572394237713908389476929760546398751046149775483049660282946543290252262427933041311001146751759569767086794829533744409496570792239223170737860679040289094713939567221575144928498812721360866099450020541578714889191765737718262653615972705325980773442513771385291822066654627232748863330090213724698515895328153735992514726128328823216302619548002133697655022372921601604022102232560862222855741313004089020034064627075944629940127601685679658829977735792634873718930945552700773342215516481990003226235408946091794396605503544188987364058034785834335354710469026248458917300053619769208920690720591562004802048202260388302352654642097021769870747490933900645397061892744542279184083012935427491744277353575992258793451048052893745153902618419779844137025087545781055362321328431570968987988555648111154681615420522019393915267254569918333919475473871560258841739918175427556537862739632485556432617502929063055517833480943061497206819087345062958240987829675686295280497320147078420787440307289356935027680283340687090292323802206855169551488400212715068387449338916382002769650043267144992653614494889860170879576158269649100876095702899159582758781489061453910259265228281566228796966662293682580236289402967420643787097069999322358349666198934132327029211533613695426300836442162366609597468974055704254926166178192303279912240857379677254209616133615533650417185335423991565879597526562729667070467982043872604561301644451026308744199999263961307185648730128874190023633072297578036168127589009539155360269114658022417887220990962944971945268709146779279554586440182933314543273812360088745112570256010691001597644607639539509968350897124438158903437666095833246645838058384896242821745236541694284073049547168630729651956750946433458462945051888366214544193488657681699568189683927564524963561442877094614482796065453370154245527552417287450785800718224928742207334595741803139208526894904855196021330477525379648221737355045053534790828717399546363978713962838222299131674298473491401967415920182037223296538389500087902843729016073600310085415756690729303628550336703956277156870719241730951769655637415584629553844954336842962293050285664382125170686038968033273774911839380718326781880249955528221140760864801757012499561736815532213825322781474334062006502266031543151510577361190356514777368425379406459822481534342054677609553076720652650361470977208688885189635909662945337006818741420119728830925044462071579812570224261911638706832036434815742174791401027714022505986607037250001348627946181018782383048993111556814283174496665121288508070872616235037067807555748742698065597192385609739348336295715015369276690462919290694487696359178939375375160361665288775756544130788681338179241351508242145204454422432280209039970365269447608191081769610888899873912604695785347654089488749622156311076716227205860724849476584664253798714125110275879026019375825297481171658950862911664454381859543404228398799909377235071968390147432006519171819076032529855407247214879082739103028833155730868256347700867940346248390309274769140154078504737858796939838708696714259458963351173498408995806768684287866708325682435673069113934897823273436294711832373926810234087179874729029491588435128586948958765926313308346243393167930364712950437648819269199551298530055395237907429332047317340842570595691771137979280560002409438525516909572597336026245171689960537662288767067010368742809848802548114127588734213787753473518071724376143300611439514894315104614860141841343264464010372649190857573977734586197235724334132165972915396280641378271938008425096280822798772260677513814152538928830009490115059725668741856446818615456197523055342351337497540751067086651411740349931182463189465257811442227934422958684991856317025974851116998420545736524206798207305616597701030944441940038093594659529512336497361587570105622247969075741265217499950639036194972733585342514377460253055227161957614730718811474706798389696658070908566501055984120538730103657686844873738545871559944194583650839866795981669094724309368019031466802436981388778162154142280777140177809901425696927993823243171267792014103540811706989227650510121174660507497348600387521126536358258051947294568073050295126059558023430425661951449544032642669285919004579173173476394138447011103891612109362549522942230526391086192813898229407678829550996614442273206518763420171411826671296795314684824968357875119447307801455738431353097086828277292109479920843418415657031261857509823088255640544551090284476256353622315286587789862130461602623419225687538314372003438196844293240398599489664806333471576380401969443608240466324972462048574272673473522622133598194929182047110420236300321008990415123952116511462147822856122912807869923723640323742457265998599780278934648401451972856323111446071144098396725567296602347888616333910283529211352953958737272882079680752117158779640209990272253713727423438212161802105252588687708029663880842547545032787755732776690199065975272579402444607997817063644390085454875110465474657545599031899219353761569293402056235958457846735894602917622246364299790351014008261043198587916720826688959216123193232159600618650968425156486268834525619068591996009857150524154022419203128905923224153252738494124093291828705686664433391376760178929638427430671050166627884869126578928304105544475674269760765157126514386808399055983669979504848091110911919726496181606312122495321354157021686199501612980489187403853508807079405333842345390118778890258465362599423692523458669310319799966983463705553845145543596748532643413592209811517360067813214163796775624453613673432315595709991186019773063083623844620734966793692302844946022404843276080596062910934224959092230591473425022245783482731604398683572294928193288306675568488486030904614258987898193598734447261246375650474095968735361774420859667675541695653220235517026016387645606829062197301627326589963852017091410210936975837565414336489199532719416330315699850781054638050456070255387937463593380386387104067162139610616310071181108176048981545101596034728470155387563543298188178619731768996213116915882161092410335577961691256584665368717942676320682268373794164194883067829073264677411632564239256341155010108390453575014769408467369843444133974693234044943073712656645283807301896157375099568639981497536238876518894172832570705502561220680362188471904347225551806840030251202219955985997000337901494695603834527271988413654278379437640166269051702527313074917217342589763297806876528448465104374848777914088710461605620902217368237853452053770026942243691886154390131438770230132289508360636962555650928551218405193522565876901309199544352491069087857861342908378262849776260098708498479866528838148588098062807005918495621630902029138032844280400593381377947731969596191660376810857815507506940448724030214527573672173329612198125179234939764881558157656840980820130220981793442310567176055543595906986289587582766885535631221866098977181743085989267785754486547189809580033237856725846215519381585234891451987167322953212312915920392076603903897072920320320546453520252334696429639944818464444370829950937092103924596627026593201570120546829601169106833829837941624892043602320566379499099584636656900313617573495619806012878671998437798675454994556513150133692320189508366751133053946228804931390424297387524143935209528228946373771130950314805500976295287299994804309674306775238488279384386264437215142975650316490333495288775037871099024690410864490390970728902614050735829594989457269674301354875446953741434280939534500238897907340765904228389504827695247831880575263922436308863983680778945828033725190799490313693895581820319063622272452909573758686058514815400690617540190236379239895331185152122086676770701425524085561431365814949064798352429686282889802514411198994294187433915391552621567951999435234643652129924129608621281275317130360891801114782270223311789221838087921554117961706144653078834754381682175101503196670972201268214244425398992599606904283757681764530874116161936687221116638681343271243454058989840893612608424116749494009249476361119067881858423393238623592905240217293884595093771974789737462130021441117391019661219356363616453730280575930749981789450067577121956628929505404480304123909848731825294909226127207442502713951985139963303758970095373942420340953966521320419124610097473902503771355309764051812516200079784482442513418987801958342165675056659006595720470705739877538793452058476924343766729758979125373547162311005490333849022495962750655568608678032710227624345851609166096900124320662800812011752040118490377238735299213406902629519416359702157931151588763790799876200868054327434725619147432543595466992463809603858311558229413057643107951765231321987028286580943933985017337876638964932491282847203648640615011123194562065883153449868652129284469849070563174560267959312601548973180213209451895639281150820689798397371064853298252067714425887102678317291101050113509966522806950242322082927769617457908933659629918916341479974581281960958620716720162940102560367227385562336024840852168469201700803321099142661412077207075920593593679943535715963071609601572692663416270372900085721075655748121452949146391988805994474523200126650082196123841043318820733727485924333887932218096833206472279363495976744846346301386526805749264808096303236311983583637102060088982976741576118509288949299304864141455024224198590487907237666933078621217447210467919764598593875734136896174775251507359881317592966894171020321186223759680990936891482352332400215862109448743191052406035666188608753878466926463074326620469461236173217404170308422537181042098610679885088107866134384450227316580643059450118729668724337760984935863536370746286068625214143575385016157235576042514814971706895102393003454987063491139129794459795210571716558651897122411840367469672826555112091965573913442404442060401141749384949987739539536082681294703260891445223192902700731389041735559180723631842399131122584142821819980955370801907256868581139562944838452268924264515985681453117797032609610530571934237948988898083407916025105141300801444180108557700176568830546470372303225867106918267869364506072922220701534393026349313360110092040295855861565314044069570655652231113486899153774761839495531810851314123018038638633348831263372472370446283189042188955723197554660460259511077267054534896410812878875569963946595782018935096188422362473914424149528013232544076160583799345732356968800676362778261344413285115229070042635660521143320063676584880714463665660904657163968622163618988813948180163054149233735266675732880643376226019449981926321223129308170679021319860649431493278044509117951721963553884772368122077560396965685234731625960774111033515506466187235482579059735189053336062699502781486756474750536409138105833186793269194184859250172368659980940934509041269830860579316784694897499670947850497522668627207988577788879635633563113477828602062343951415956787426117143115773574668146984146737287713445320014553960263183181206210034898939766399425268378861500448977267526253454332089236951970234781581777135148726337097724440236281662433538937670057416141914414665057723313019353062871342027628955944571143131002252307979170368002635047114331468103271320576149208633489950722518170314736914795087327044179158794860259962971320013956760359726093782754336894246529018967283952294533605897627827059923704826611344061216776652565105919329329785656764535241278577905032509219570571303351068363338075565751389542626719995610903881189749851290520685123821153782863863608392138000142424419896059380648498842241630170162393541526084250804099310895486797107728688862025050994449656700246758806648049674862052310730766765919722974510285899507422430276573547483333114668730695176636690181671485997166601593032810084330466979709300058272731004973976161589395484009589114640341063032685729495819950032686472035698572615981009805524387174511125505509907064489468670975247622995449428591281303091273146642309194979119915458247003137754169986621599020811833918641908443975992802224007892028070258103261089237828987045251623680509681166959469927974889943567652575147105800122243626777420117902353140078246043381201399864426997425580192602163977926580138522480058127431472306072753355297218670795383895718210100384627038253467170160347607976420626427057232171208170486831857042155461961392782469191019872347229520274945953159350047146094913468254856236352298876075809327730716248573463598019883188849067060687130782501415190840839272391682084162507441319393283612591121895744055326850380653544374884135529066585110364818732895558963720286212948417834475802024088036429537432622265137553830151726561404388374668516086757143278745908857064116322073404883287310406167806495691279521067663328971398788932169313997302797708311570771336817847674026510461927018495862081948271904652931803569901402267127103808562930704971658262367705583547243724911206713280663583748995351900096451224928815464269563683265971070868650099695980749642157336259871993597180786224373525010855202043773497989464952772239090810288608822075372827329860012188489740030248661559733688281962163457563461279703637986646944295010442698939465545791154919445421302647761683153711309375227846178829377317796221248360243481243850145813483828207659405066496043885611496556352331043617955523944809573273154897970794364417062433425649968901304552514612134408533438756166650391817234213193245823132189140288792401893633614236037087819339431351942636758288668981596861080299218809557329943227416384480990990662174519596552047641016592886994093251784509873278609907957420318664668312826701524860210178438768434568775448685202612015134532219317113389375262258619703726635693848605815055345017536146247124820037839921540731348971370718627839046664247552674917223696736498946556053312414108136197893348415620170609940341585782837796652575934294057183464582441320100040792484461019195762546939075078050462356671538718614709012811013583620171358820603637146038337599996575794207844754622750510362480531618374818420128608604771566603049119721014567496733562688940105393564810289755117689316702254305006770245063409030380484659260095169778929067861976274902824799465872638504195293122961145187846399202023804892449010853476531272065853843056235015131617300949194183254835061700870894340149625766376511066131360720972268450912276339562520274411633323361958061218055558130792804833619025337862759633205890438451432941334260993029540580883133467148621774042530180480530858164129748511596413036290547760292044349369105042882262861575855161786381186273423420542256715544869954283907097073606671376168709577877056626444504466209991641720494265622159116375939114481693378462957917551385724693792142276491045559069799835405202870261602722172449523133468370688685319026524898672865267883541498124568643224121548061168552604398600526457066552712495557400603293002205054232339757261832180661370887395676213087965879960358100885443415369017087308815813683941471584485286189603888841711138560046004422172978117351415061691488686397365473686793787892204866698761529066679880870733368071758309103124399522819985915437448150674180709846804844684555156594598815632900750335335467986660748054547733876863218357222510114544866862626872409028769548761929267823747843410791235126600846522989224042503898585921421631532810635599615070031232732701166471326547025039173029501031802573600610085065754891458223536932172549356404915881061222705232938141913358263790854521021384535086265644570706522307570392862502187326465657084197840226973335487949291058862996904935834181144141689232254960567450601435372112751334280377510721389284417161566181793664370775235977140654914447542478133695728899543379083505955230524676420693721184747058758451411489108143446824809262329356794595488057880287281183317287983158029366461635782793739566577410686482952174731070683725274922452688551615553486615689513916121893480988354599685276399177274385659048731867451640554410816660530708851328425013206327703558084911444909414813447777012519913352904409155176127583702231884663490407444763945469365522405425824721969154916656737258912391814190579823280526062228808122864785646545516139670695837211431870925784358320614225390316524427033342421830543313985981216837734399928238164337890754563686089955929134540058523596981379435311639148454018937463675911903619857224651631016888520887680576152833303765042520404379095266873045457645451742940897853383028356705645813285930352563823064020933086919637808853979860283316787845879866665863526917255869497425453217451578159138716521856249698927587271993851120657020031773030463581388395862982840500459862080358438733547434031160338087615805597230751449963216018200532816996799988318788132945378754292792888060203435901746629719637804629759764247043762677784832731001373350407454082191599545761162542014823145132573439626268691043367560921779378838619606646703743404698247976154034950776181708532460511886330932498227074060738966466252654282514464077196122575082695606106679294811441125615142575442669129654724379722031381112583281868824596748830039383907285883807887082860775478958163926686019259127900111182436838337757188644465229615251718692962629352410565634718649143219643193630991876673217732811204134215725626545107211199274007935046736824483212380949391613157626196491570179568611983131045442581054346179121441287448180855610455869409522013058434549521151337764194233086621406946713226647424701233765709776282942945651681403237009478006757578361199456995092537607718524270003128848387837671705762318585355131581027462360285779352552183519986172756606794860969258899791153800775496008699147746062614310105658332362272871137265935745141617377412830489228009676357128506109145642306260053601939507850489808644795989459664020752466367589510843556763673399138975273358594030048984474695260218520301301855284567371373967901468937639317652977476993637172152506600900262766047097235384810985682212177813437488181223286466764817155250915007518381102680910665567973754899891937408701885137965928006257269950497490800174230599891403173699736572217190387900455444821652133631716819875472729760417453613835910535584838103930004585209673323770238318828885720691137862678579631554593766423735892859200572612298588619302311551799092799227127733426623024847459894153617762317176555664130802538052369020013675994621031402979474342353327400780530675286039117281962324297163556367429074216665065364691243786967868782241079024068882056140768651465779039352804562445231238184041795371654486332328329126608290355377090239120194695052598553854983564397260146072455120276500046349273723482715200859571316391688471079568716782055062465509794697611147035879337151134973120162583976757985671547308882493566236769034929899737497443433093152467744688404592883857019301848012261128209965237185429676397527732248188728738796529749057080106701138433938022073077362305329320650190082392627746697550766070230274340775852462900580757279113821464174715043087115467896937968069547900580708715942372241303001962006478061442894876720247557265977218992394600821908970382960622260917056371404468033384933150760452177243712392255446177737147983556099510589990703188966225082685138811937613597276275919466425673568449591750719986775547390887796333102976674338697882934908592028686254977347278382156103115302850640466261426773166830945105097499108892758827025480575426722949212283942478480019400042631357700582957499185687234768766684130424913088169218764923543267263993124937510569482418346522297751519361795362566771457930736533391307873950690165861115094627400769198633445890896289210343115979581070589294498298945178618915812141115003994798216513826413112604872538387957233168524444764396306249136586516244292152329075752113892337823786487585485909684848096502330498952745644397807588519811868816942840904804415473729252394847691092298016307567839225231246505304759191567631468563342629931844909377099815504992226434034587469256116246516302557035584243539058940233872984614393902448313198222948925125662303762354509651926289531562637920327592671909380553576373684141855845388008625886174055607847113611831835685952969121250832171364513291462398129409662937880725146200859282148403517697026760921228050819718264754025680126988203815692328661608913545895130954047616521941757686810515390841330404775813975499503541611947706137830085684130552230737432457389334014171405652479378989911341402433049764624683702033864997230522074287932934891193369575105760938104460866611019534962169361551592015770391054739123642899472269876382452574357153840280763710283107029287067959193382335784384159774540183921105150648738724686909712236561999552061045674263556424052652480136956442027822340962709335257171128325371393124272197858074425165619567771598356609129085116729454371422603425112738921372376393612895719621671874475310684449188088663295644977009815161714635743224883256543460071730499950332148711973793047672865353442993710750704077115808203255525547625038204560769804532329361536894394486820812064118725478195216490416520107595678476730494486737784830228453410398748239670093300622991647367471411727019294767271110247990980542050669671458617215246137066678313826843804824718953634296941219753469701729167788720726961182049859761706033837189022019032774203933184940623320578593360661979401391950055033039847067605905170288099357558946350287072667334921949080075757633733868989682871818561739166859075506866890664495987324922157084309163446301085975967268626628387186873119971973158919136359705337240089812118933712364058212862728089948909680336382078450667430183669175754416492154364262996510111097639734268959521568439486049701806138010250949643514842086751249618166045334258608515193220710120535230306187094820544730158776634233027069663420156171333414939630309353523942404870763384879345341419984822983399556352137238912338225547225599367716528630783864040924642973655163687445843248589335699077078714745582294174438199861395546634918964334988083472967042053713182939620937094729059577141837926228275134925861025241281564573909216540153878976177415450419569017455810259751764585584627584548534614033682169605089627862481241441127524668999424367108819139812918994521932834746196620658983556971576691622472440712540869433944510486833228998162086920708653135831329079354855681629764479616003710864602633773557378199057874877784891611467332033694356143864833897055489118587003030086769521034920577579796423652627979042467799019538106539892182907032509158462345254825973143724514643353547506994512607470866217977798071240030141465983880193118135594943194900409284125360577104779802293863693917816563250757368452840501155225844717781520101667261373829982524230759500263148137335155556414934827846112747092992879993249660081593211779947104934281778062540006459623801717344069174492818714872409170823734677330170542232565040937722087959363560021298543712721403100823753838879394052167177985159040824761236982229983954989690902933609163051431228447696908218903374486869297736386576155259187352474425004092230210476967669579024100717229679077575979954716896860301603723953709827875746106756590309168113273611425788391605492676991626292234445711792600109955500734742947940174331127343040373714208034521453807485546169395898466512963372333219738880985406541675971112723532515314745106529851233942458607552824814538430718273872226509723945668141991903896769194904317807221362286157211157682544314622389449273793788374562995063942653939812121750532963266979719887009439928153355166110364252477374102895769158203633232057034027195637048515855691283689883381700846320161400767474460666478943686634360555085101573369915779067178756105182849923110651187692310591663140295951385122242030873984697482709465819069164703881502360951981960974270369855076832271862848417871467021735670470611718147562816176171403374239248047221572769633654318949042539246903106864003829720320869301868010317206002130330628229742664797074078635663607356189529473694274181968559690257339991513583418041891920004476370261725666236159964107852820382820886674730214532268691833145571477619976330279907754344765377507797400743588956137080251780609749334761446263981316563278631420455216395789521641485191798236399442563719172595330562523768682860964780328901508598984942767477715946819185524661241461194678790961631528433242859390318681793564678554820314162242106772729645178952928141078664851230437232013406298079759072518480891119606346944565880128349829646152022969306519569581817478822778186038673764310197636568174837912024171098683157065601903621771816977872336273503665793101077308861488085219719973218575646433691311656484841567152440331236508888320239101896021334962514304365159962795338783574083368825455330581212170967966639859955501858980696712324716889760219364038371815467456334964546406067732035687073190914041514755725253537242541629501702495921921846039448483290697850794384536142759063358328965683705027521591058524475774515659957593010349588808548469817711795795112981382056557568525433178715107986899997829973352131163629632766596062905923564079882949442807228537781528978526965310560979364469563952910412610128286921218594769745700708600419319019164416162311945301203720133626140569530483547759830901009463290393237743737924925098739761032351186525480410373710685260113624095585764997197248693959302082000542330843252042633077747612728404405192903746347552464111081361430384884177321105601902104749431295394931682754473971041775231012415708503572050850663139410994568601387175730934046528888518616384316477744598853722303366592329670962751370772295498574332824454142858456727644451010312284992487840436480809895590688726848184280989863061170078117906464052075606480858518159355869057562429027848701392182090768728735474078441515080294816988771492997892194965554914880261013901721577293303423039500974229216686383540543546628210262016141856875642731203293358290816224561938005274919300208292255765238216895252720872446626825989789317754545602847155195381266650102664372961527497070409210999662006778618323720359536567330689204063496251617863007181764716371297414969254507156549368042063326375975894139328146237131851316457398550601964929088065398110538309253491810051317458930302709168733121935723488363113681680190350367654018848022474390814758240691022262089967099552711799454588767258733055691002608185224524572011092373251776810183344237114252563857066333416367323519626620316949896412098973254393832039773695981918648587931050472125232049516417981783323453096237859060917591330718690796170512909990716827854952944583499487531344532096765612757093170252253071253330308371666447198578658653320458038220157428423447579815414726431419607072653803298444049077491041475048802573682800084322453428581941936269163992997335053665259596909948273501764506482517099199408552853020722660202218438024977292714563284112378711044763872588924749861072605381559805755363123679110007843471065701460914932029357667352614499520835062582631409740315688684819055621406024232705796964959294647475600853741502870367242979121914042124839679796643541964003233525290467406870023589089030349733052054050854785942527404776056736812608842556581975437107306800021097396041087863350947072395098871152314355495694382356970079803894830609880692465256546664380039322231929119200802330421329818243402728058301477933733793602831885851782626968118022639317949978980672677385810730862589657548804734491999135044037137507336601341542397745985375797471695434451791656295257547573328229334579154061019855102218223956487416381487211422813574812300692322501339663560303549991018185124639344517117354055906026652905526303632675990822136572409561673255003974173849430485518168904366325681321441984636859604156397279125974954894561554659473623583730103041934414723196749252463220667845975094358867393071707216663340993318748563534185561711408974546740315224938897425901097468348445581914885802364646814166352508276304034689574022063295438956732204625211104324699288085897079441771520487195440960274858803627821418538030651015016648625415283924387342462331124392418675324216938372721726397125200974053828692792876320894462766353014128468024579724336967877733595927670815216705513968086720255002235887621132573968823011814336031105859873512986447197871061216912890224627715782617442377713457495256542564137284362064672184036904684314685307570546766516668167637106165955507032695702524966929049114128939121864830415448309771007920470629226639928463404670186595510726380908018011021280069307052572785590927190877350428566704369880788490539282574015845171200266728247114107737459202279611672131323821964029910911727188044848089993873018298445792409212784766707772479666192098025797744967761593676768738715455696533162334189150632607115841034063846198996649926747023096635682554955206693485141341769906011808980135630014334905615144079920183440705386215626881077699160373500455359541800651084864076072160160216110677146957558817923233101390900693153804919982769901708309425076819794116082269639577015545632961901606059271607668953635143698554357308292570747595952915293933815492984905202150491241180439742514090846526487576657147638349252171968500494875068001204489937947479730062774426128801475949302391228196967794992467779774135610205090701432286082126434005313730958918470681540890443368061860241706018020282782849479492465513815112845859436986074154820902525243156978664420562938346354952038502900471364096492870125897709153935464122897082758171626022730477652314527000367075248592360563214705108474898193791663870100493809215233055548744868630254580909887749230310295384744089449208770362012335755629122802516256284258750055141680427719064200602897090816549924591855649306719315088973628733648155340233933748742012387400065906518871009968269095748638778695071529338089048148072487156842891029540525716517284600201664610885532672396521612924992016750179342742929356262933423598456703673757274423266795754518137296012261514842582831832983247668899814274608602617723754009847393534222532938707769613914474460145021513728441555997928825286694285690029118023273056632935194402833035660137204154313559925133226541643632688800828581400307874255724287764368599071924996378016886318254017425878880075622670967235845416832400690108329267772571614968146438604543509954230164435964411882111607850151847374118847251023285999433959768664853422591870741151118398059531453814218894770035498468560685370982863962852370566211722482495779116402354957373198865351473190766523435743445300191990485402615336404439009096864729498850489684641767924021559173321102517415647676170867644729511323721708370989135194728386130747365850049523963853645240614693543016861686793058373406675366138168064692607119987640438478905415125057556524182253184111609644095882986683154932564467368339819613815606673322078588840180976651979772098704197722954926477914082380756926923513782348086491625632887489463125744783222418991323356642752616242032232947690785361597270635723692842439459168578921371454882660918121033269922744276334465059413764211256460857113504384430736033791850400697647936919683189629207172187896933764855061002461077935031731616853714032983428009045135338222036292591216000755761698089492749678078412716120822528411068081348862230570649077362046007131342379260373930286340426398081296625572017453471995259100335250586661248762481736924265636397833172767429793502378020598330835723493996068497168088700028736354857009939423507378839983690351814479634587542224588603728516087803254539948547988054811321033449193905572108681062343888153667477097527909057905287876751378373792210749954049553063204350656406122238628925037050118684857805974972039099201391696067853033159107207794398369948404015039490884545229602248806973017773914718322405991425956129197243218830573501296692482494344177345103488405000870689094541852769837274949517016966403870147645332210348290196689009121780192303231514908428190952383842634163371947404832668750910549694494790446140273560119305737284065828429057366016070728631820018773912525681132272254514683301533706355156113434239785555807392886150922212935970720051701716895994311214005259619590611131323627118372424996940382600618074159482925937711083739021027414589653654008261018994165477017345594604847550870964684491342045999073840394159497591496028828097031990243031398433314293972646479287118746389140312894685424654764892221020708662622792585409544415734451484393578460917004515179781499913090557464539210006566678755970203104451228735947850704339583709604534061789854929515524274894333725807531993781792821769433582123512041815501406020074238172299023886200735832679360600467827340126466865494142252498094876219772395704229031275928353723164897968353776844966488860871053700566543572994974441108357614054973964344315076323523104455178548096162781060060987522735170562827582355625046934565355534467320354989203871467705125203659258954367861186610971828615526725777676826436546078927164627060237785979719162048977287372583784707832205869586030546254296069458754091402714393173274924821988708309748994539384720822108180015708826407412191346443826667904145730405747904540287537309281939488952817721922586371562513499929556006181434558747651518602879128597181575894777521404109432674378146976252838995341663776440782462910252084735003296154420260533329308703794938601177250273338890477805620870661873077640122582894218250574730980294814853094507976064530905729518312019557676662921084923163034509511781147704518312123071812201643085066933116064269283040688528007405299644385293804764573778098822403823897799972515274409325587208619488019118632163813407142223421455357843777399799261062189529285031317683863739786013532643065910064415942679667336380750423128839078739286232488276129712781613220180066550515345864199744278894982894516983052285554972357024913660702469639653742601133181543212697447181781267744795672240873719241707580626387743104001868455649466268262934105436557583937022998453438224459295441387778801119162836247510196472554479078055303872172239560559351099302384314331711751375470205313276214839272897766995396423259511172296373861426365612389342552943865542509819152801460713823483485370938418013063035960136704203642046141857365709259214785178552364317604092887502726494121734324781228478158564870545394621393486926732653303079965514508136859716094585516338210996817638904547710019088639022611225930917750940323614849117901463627974216557680274906538661143172220234373080423781803614971701215308636630731595040269794966086355367079273348290031803800814200666778077593333192294627295958354223665895425036339383807904212851514798126335484762733082713636134427744060332518297749498518342864627033830355089518625267537044841520059931831043616383653376067911102343982122001751045502398710340153695708184251519322385990916769079546650792228326169792809800188200860094876300714776172603171409501001467435396347767362549085892543678942637103546602894015494096370618595867577696044069965398206356641717437042255941606730969989003481998525758328916116679461256623140070498799859707997954260068258020856264439677782604144482118746015156579037058471548924473813193978273812188295568504008709718227008054006116508761859654396881194620260461446922459950670173601110624734135228707806978655612973089841756510693958990212095907059636970275239513789020034578766178545610141445878996976163880681397389945858165981766672351407746720021801466660072858866148641476471289346150812261405710024973096711407368404425987790598269439756303665139898175261045528673798917885511271629747833390834039481260160229223207516337483882046293428143239591967308498239508236217692312877125699015710270223720769337532466647626564905816788305248214962477668149438899901485584000584451559232548801048460068818754648226223767665429740093356578429541880620354397109885808162010760413668563681053379132603901129231355143166463158047373631073731269254075063955156318474442143705090730411348899150399819818950336535185924851510230333403905734005433898745162819703688640764065247288709892822824045058214615006815811862287768173888174249665947898731853583066166396112926446360836603446420489446479685571961581452515410122601163130930021154286737253411392166856408305355220797904445603147855755922180468321629179488219710960001289621075083090179573981517250355602026139600608662744921266788200946916341912031621147724372888854277900314084628357185265503879772819493246622144635790878023054188172959362370834796088558339491427433270280965417901292595932321791500556135422955319314844699530196012992684193721041978286983886524599154721184341622213677006884787446449433615782513986222735427971382124087774955186779809867247406797643556911990313769835724730804102064132818126724953969109406227569316160077632812493654972211389218369362895769451287858799598310856401335854715965744758154102957897290303421331054289497328426409363063437983341065201990806182142357152619766133487090195171694568113836883007328626505008913304153655712081409488491393629268222599269097937106971309537522983817207784247229845767000255548976242516639683082637373729185317087334046268116475827277253956219330373182826383664765645642049520913162817716504889019933346159244409972683077235626367241528629180614001106564479129269736776660330618138309419023864934082226992707225563981206754322330116798640834411535827028508660788362312990833392698954769106446146610187696716126403315143567345318815994831089666508467260161767842534500462528535046205534600785949779398909623219096331816728272032511637308677258618501225160642103523711327854944808185893902407559096127752903222178699562338124872639363863180150404548939679818227604817197950391288256957745716341356981070480420037430787180800461755153449183443977613825789298452117727827749032335765852353993394530790150801861105650639074231655590592807117582842133704586211257771746646874505920398451617861281469343972254723190092095739975138450687264670268825821575673327055664502469778440493405002556135794945659157683553409910210910653093905915005714214990814846149651671109289628570469426059964425396030375721391118832943174726085032679903188502734405030592394937077752390526655198663807149636554955687690936580029032983285812298791618569182633193226811047007734660066651697924303787120456100635024047184120921670135431190387915808889622747299741548479374636033815469068608524111483226112330671827889408728250337323165023410334621157502061526405052525376051217433564317765433136730376496221770430433891204618945762176085161679753367298546224645398733866748311929930668152561319149785514405524094809827899720211595854380855612592915660257171408935461386059585428043026874832138984010662268095220265342202250966838803548333506189542435743572615319569331682692075067280207391582126864417240226796456337684599445536958078355756838953362713144103869122667180312437392517332216074772479015431244636278378851818252079898974757342092995251611364815387709094073442514490184715044739529576002318411592180794403937149047847754853049867189935311022667371675907384966044426596185499083854273257951359192805164435276247785358458420541270398449547818722430082667822248814329555498160390057325048130258202412203735328327334031434538531022618427112291732974230849242251780080908603956913197631082412623938259026788117452990785758598750637046760381202777760557329267312464111987910188626447482531107922120172480931991282674729961335814859234841180323296392501575378850771920141612319313893119612634877108519627342308608906717003621089908529149901953382018363871907524697232646174374456459899872526853991583784405801608003027708244789618432100581526147957526248741434214865542082216802396198855681614824037195888221429323516438060301923983274141437469669229648118248293806137661328598775027500008190618802062104445682793354128773029099224353472137469910123010151130716299766157464445599233406865726854611110094847763768586276525129853084508719116982045261647319152054606707956279784518596156499429575226399767928824162614255979596667315129563703298030787559668894891153995527340693995474723425408943195479087767947635821572808199642760006491244895166107392171335168232685044674625988433970272370052810895230239017602589081255682764903824465451213960559662904326530314370622987609091272465295451231229103802604764575100652751698367660538341920340505974819208858869991842612729300448277503218634770587183373680114862907442067613243470918971659795040136416516267423617463274675931771346415308444483943779786210906412750804536639176233394805827303292256932062394709784722084147567815853349583621295431156473174992031066055261457091225648720324630791601797466414220227459014234822990079253656519184406496632138211001812516299219927529406879386286076195905382078728927044117139091417115570877885415266591575129554003068867736407562435891911791282312426837970659851600313358441249057911446124570794292435001128466370195893969046218192859004241104336176967131226407915203231802497476417421561097320843288596253299837077582956099108239527062934766981359862943124503690256091777713206609298767984843816175072738922239177324803552469769979110506640533190826786599265916323260185948416508368911091805963360935227531421669371995360537885321554881898868082903631061149932762860386376721713537165298808752422518947790665910982840339128488292407453310213363060648893721279545574507125488113656594335160834379327590742348494718512769409008284585832391371530768784234364518363050091907838351873480069813105076450974642203317802302578550584748540032941469815931050086480698106427682323622802171664979738488598866375825554008017805008844812335513534354843931854038106689909232032865270013201326024039668859291731676647466811012736472658497809089481181185654868006351051366317409137891754249083766697646684638327345487964310352072439852467649545105158810732016057350110603421475954705974665885704071599578271225340825791113330138923559386249244966695758771494497926534183008038454363331017358436731315189888242066657137816223744081046411692869202966524684282155706627741732500726941290818687996137170625691816344236612538531025217506984814186223583008821418535093038114833393650404506913886738905434606011362254730255381193701463301393690150233356225138228681819756146853392251361381617803678115251149792047152739457258177647359242567530330299105072805939521033890937687643178450658683519542240880091038639020421047229416574480703940848881046357961710900484293114538106020076815634430604032200253209592567230967388742125516063748150550007108744371994102755479770592193140006480608902140628717792926794701049833892063647348886230353378390844850620318456070669138507633668546780129900123260622713265201223762619458947920760775968022028199788991206520287360409906414448137050388976999124501320535036663187188537756490669115213184707400085981668442188263831373046544718744238993067700775163864762815618952936515086022983630624422253614404359064908599339458220244577606889182774385782909452207946332231907296766362645577217906323852447545774097558471041972996337705807962175949641560143205743132973602946863722125995122641743430613226490652001217280784974820023665402214105253752912151325081988508032421468514591755059233728951820397222739249319889081522030969687201677751049238064695786430820287791257209808212162588030235152009022942374556398677917517357944730692465395425063730501513754450704363025351071551887143231892689997120577259699306279827932400488025260736525006257901959964226332111961966443476379833913793974031323285175963134300633579847355363097932091631454580539931963743598966911145343024405673825728310091964509474009232269513117783563193718288762245187601462126453161016695849904499815387992941814422349542349717629917746368153448524082033664904192226352121678630747185661084942543288217278515244675282578094536908210182078085763696826796966300373035242974464550876906847595371136908061138536421619766999113616608144017237019996741569283452240588890520817807818284780500990686817010437106240985319886460807777665453430922885644534222034141837133175205241444026269722586968997847359035560127853531926407596862653160815528601865642055635691341633236385986183734468884210888863304531661078045578085591490787303159674736117003379764704853339527870934235839142340260303257870885667018062616185315911515923623962623142231952165226271479823175768117176536997482142853390491979685573585859504767364655044400422743332636210229048609741379407611182752604053313999701125744329068021542131258760798532241986590368348594024097230841569435646789657328259464618689177569518292962822438649868031493431075373702098912085529024460557048388377463893486614783197353196954005942233590819612940964940872102768702311734627742360968754860428673363362797988325006136053191720178616844360547232099887207644349656560892313089275859225638207561895304292829372462685459180544062950820508962401933044400671664159390887607116142115225489920415493853455885262286787824355007902214500226768820059387293054908831227366666176734880681527222226872593065803720925463119681897853760445226914970116770605557497422706611025271765980543878707770333971415944479401795790169763734580362784481719631976192293463297531486722903347921792105146168250449321705797564741468089170700976953006100597409431861641938782325292219219998596404441721350611509332523602838096050149203691900274974527705545468216258957793959646965113789221683301631558744970301269546809249650382617575609224412088012427016346579278379549625264948401375910695154288817592272095809692458704681340677197062823988076179444879405504622575373418520117222799830595991136990719091041555214823372183996107643298238229459385688333342220660581329031970191622729250087747395630339727474056010133051963764237528175695324306356582090138179121617386961564180191109202481272509135161489462033663960921809590218282172919452734728317997796847625105229456681314519194355349425157266364122780941526596104857909901806134004431396661828852948003607541995637553648114059654555097786857421242921522391321211119221527884489108264930612093168436625193947187998553834278257915106519215189891528508033664794718500239877543544447581044117538840368490856603958850873483336945062669256657141162617969172271675561253651692478439059732494803313315220144843543965417507760357289944909944432088003221280996883074355636379505115373411857121992897097213576337650264051406888914037846658161019406334407889508128429104459275439888666388428619169907704518860225983358528567762609856902914102722477273335704454029363765429774663397405175694586093500840072125764033889932957271428597133700798148697756410532182629638184957918918884409782837193691361223089521159563630610554033354430581804766193592724252095023271858603504232855663283195486163656155784756157817733697426104785990167414691981381405422322833314256651167689413791451620055184086523939285858918727009609114984781089208576639831274244180672760574985918243010853401091578235484049793577407239702911573442934150610241266922008377431077120702511103818301529923094541128003669080402378800631160798781643800373986029599503160664568202977569325367480614983314732089245995064756320564139567017746320883274337185110692742053559200277756760515713305030516272207596365736389492967552447367180000722731945901075424415047760642530001635116883369150221375376612267466359948232398022099743843823974958863363427880861227211375382251808277179877903440051077909852920952341003613892135825004538165092322958269269716555741633281005547349157761703046425288229342299156850516442293599644111581350281909292953200871340713295469348563852258070415703907277933657718454776079969260242019087524938497540172821902313229315467341549354854975785656738139049839496453371123916802242029757097652891305806792705204056571051659748458105772847037738974891292697649843436650789690152863277643389781509410961651414984943037768430067210106665186379921375758423023525534241446918547257223615972885217410423735459661561342475350708330784037429382693631476618780880930408679039826326829446812242381406618088826980696197553192282330339483598714507236206653609004019895591450731296359473460683591048835795528492002260352547553943816890798970782108097077552239114979873841528372922952936699351363824037074845126113716000072698159007906319094714525284986872403825999271880582829644671317300023454994981016529225403785712957178625484933647867328745871408417099178618825129737467500478367101872998187552956386309286458380396585466550697363522412706906949560519095419114082220834420427397157050103136367043005445528134261469806691645084913357927315257560085828535228534503669712467060747124075194374888286079541873717679884556264956466354785226112220644132721589728337465998236508435730914132422508750254000823475128166665415860823495045969146136445255872825046151004378299454513319897228665468490002904157233887973934881114354522992221703038359300729586916264858893012477829812077279993885251563137967351495169187072392979087033260620276657679586352869966272860419279969035212104874954464227653702301789239364130149175188210270209034118359438696003600206928596972264764210528791648850781129342337739347380097912028665363388248515829315056723958901542159084066226821120427118849650197825992201335316518124671320208372146789325844109185328522255012113926383254332280893949189886291652723105202200109800576074640777401418117075963435323881738835446027620220146251940270633985217845177472722077106138702510443007383532689543323819187805938174240180876382741134411243071936491644444616791277412532948115861014395713128110643631173515180978365382799994745697746494688767098907387968705052555620682459308424018947416621371153030528159865469751946427766509463001757361643310401402323958273935492077308524626687005730094593531826942334075184830617184204097987281949375043177577820289132132690484786693833309175731686304113422764330054026210766810286871279133740320912596641618169277328036032139556331264165140589058061425499274846538975892795854976038837760913794423685191934314549784181624835717740958880321205527753133534229182097945067281724538775709926023938594841617588363525716250534171718826746100326531963517507624718141684322185065550600327534776945445464763136767246431252809366550125951669356161969073734166251338125769764948407650749188800567763902865910216315545004306733142692822433209986640429416326178585244830292874355684270213648415823245860403021796822649351597369402793285566886810425846134191044690758541093908471423154302144605440373805823546897434938519988171499343045225968641306518238406914143357161283655979343416848388001042070725601248074707626189321647995581028670292824642310155377549518752074342674636979992449838721882136381716245556153497919751868870628513034806335316723253933714368935265035335339656888353076394230988715163376925706149147356015869822472367580220033517916818857013142777309840871797081031852828446281880986296710164902649665928040902835089229653889766601759690523550629509661905545977533335340567535612638987858575865727632860357968013531687891221655893172080591984858790912842411759470246690611210586247482851971605614501701533132680914425444361510595936785579407894289252274165126510866949040876425476811127017987519473670403781592002556346576863004975046730298849828434575226305816012367718434131319872233619395814169970479579946575851672258703543953835809438819431725604393444855951442985937249447497098632148440925597782165686673460154210495062727957644624237094513044158561491561632512674204254664762248166403899579056432135749662597874068917712978965507245146849042970417685460208387817019811776887564398779622632870613898346572302220003386915350255752703440600750519078376749447460484090755651447384662091288129814234246054306866232961275230607338953605331619960490002176188664748721738681129170018592420432935642819772371951643285442593261054902218975874849202121183337818931822810120517170454643165484329695404341537624996628901245230073719532373152725803826755978339386980771711175006450654176340070906534595616875565285613191776736363808099313008880057446250624688422272233291739911762932349591294744529012072343525373500232199552697074327797623621922429460501925016432393614370024086012273334491858773518218453235439592825637548899823227106319507895208505641014922772034540159934478141143079503483477321338564139214153896477571105841988345731236115782910375267891042233011265113738133626421155742430986238985446109879895589385471948669928927373324886530199481775719337503129020872180137472386516849822810250156163848006098513353234079840618724104814200810711448513169537258256544023841105164922891470434357587102348855426356160367688855067533789861967206280469626379686655028567350730326174804828647877531827851097886612846907997245491027030984681850872383924486335566830086499358834948235084852603702806708473713043428888460609453441274753580665580993254721159634866722877587062568715148658083220038106626325557804758076787054805081581603149413188602315665662699852436944095630125503013070509375713485039434838747649450259603316258150929501701821847755693718728469857019431901627655510501996682408389309969641200935745456940613457277723233499752079983445780413703896195279743245908472722753459630436230472791297599277365694543725655155706580498630267948080613125091391437191357367217144225818286842022147194476727671315866066741027231663353195707777725332035134145457763652907747717366806613435482294638847159185837458837050786685428930557076042437263736066879141739895405071933365733844554318348413025875121581953460027303184397078583533597464284759047650490022811924551758924003843118250467114180662942697361862193516531261467603721686670679592970806482337443411916431773394073435513804890617593083193499832600035378447060117318539254151338437919466288679793223182847271376794680223830673795357622672798367383566816317789560373602424242691758201650956480135318094502019969528822706935097768883086065761438856896838670848358994788088399285017196873037318623849505953200186940722855841861711243458328050999589508211579279266230249370712221092303739543180180534731855582302131720446642898798641166449328706153506767304938885660560611405951531546063938222731632066849083688914191012584116946323128632662842768155519903360205197520747004881799142441959613888150879638062769351200269810071003738452267273539064084133315418966810254135819320787910983587754812696925267332879155913272044332789863315702015250305447939505003713150302219284002339720990429728961075024658135533910198286193826415107336164942722947996806669723798928355811786227466888095723165825710137131117391156439212000443174325278026323383721980944127254322205686625089072089430273154095748505768387032222285582871350714272439592015944594208450173335574670207656227253734848914397650714954010782300414401377860906569057140195060879137117708011884730673707468599662722683642690006375012204468489576858536215020951719184916687692403717930806574342962113308890243430897502619960737082620473365381725505371747600006645435582558503474719388628016131247432210146360083884500496688397126842620629499904243004967200765795572728268642833669373674823994175218402801361730327285776862344447700220410244182921084854336869508612529105022322514399074206371560256150540385936283453597048589118815264277175416049194749285247415941255708111395306527409954660103341547162961303026908889467447591500168183483061168685794279913973504115704778465788798144533973965368056826730133358654230454438086701466032595846582978827813197529623852294233742530574168308372364396289379278598861046216708718113928569609123954397157248786879331181334020202957133784325026683310393390506285696514589014708215580585881897815557166201212630340856636645661505341865398803901022938457502960283238040932540202800492763748744789588323678018021868955670160059624522810275964335685460169064519889042453430660682552200418862985190582759783586725268940947313806200381695474477936136691637586853461323021600837772323347334069498493245675565275436384364508531564150995929186048025232185683998096328629953198326156775496223792429781208012824696041191181364073583935049099957738541288915289190415648611364210342767663539514515843815876026960294508529376925086251609357810315061908050704444733508914299763296073189719386954206184076709935279010744120256266557146029784736759797547245008337695658044528187138230209917574435895772743310741359234280019922125561842184994724901016551032052190919262246509617049416252461386365799096944926127726325858398144733222902633303342710196084840574900345937434562653830686991806305050820478766072581640050925326889538020457616675625784173708865421968681009289420119655571558827022572909027264856089385485108428340418282442103379456294166395171807960853449723108221246304275045927000506545760038205172817046500874041017805552354374552363547183777271771244905180556106256856787310370738675790141477213529832260779807272178353369509859581596519526123738415520089255124250748355032179265116725407623082709729240354371684521853089925782962714756514835715245324049121322182923723714372095271546749298240060846933943005272151048382613183197734581915523867552226002402082192969851311871683757226354779326423639812389129915912383017422149202985922058232136232668970411420994902806393368723704560168951669099742493295050009536485475528018005361822397569216734262269122009211532846193866476013626175462089599168190578517939404508843335039819987750408095164065157373497331604920642254088228078094888717281423683657957240878598997172562452603203953683209534981428658582750706936356025248898235777016173721891275749566912455350211739431414448966293141019181967956038293751185076004644762595709304882283916413886542370133161970757302700853961466795187041067166687337227349858366214925164629848258136215496089806489797607370824552083094636798170652174332355784195480288048320443758489519193378459086180722510882462270158354323624621553541797749009035179759624909892593930348653266995220178081605433373595232364345479577215748400905306060276087856382244513831716202084689557780774782026111688570068534453486961301997967786637749454681071728410089205172853854077556566158504229733048071724466194221158898432176923462412285463325329727870429123467127198197126690362820615104939926655250434091759172293345289718407794303302877552483995502337913147050219201015360993135885379558180968798437235123386567506262442473473917508281070870879470624923531320573209068993398464785288318975517796611632250975091099788784144377082939015044996476162629400275440323788133022503271621411522118445869449476913061596320147233045943337990724053855829892446489998550324685561901044396001034714856929689001697484221274749142094274699358882868917385336196474056567331786226834371739069738313604496354783406842142191010978545271312600577161522590561129303024230905859349411731545934775394398857758323862081491068541480467363721778774339353355881346789674343629409716488929011229519792731798288293969056420912756282970429532041237640263646157258884805316853523984411843682702011407745223923928962469164892583143943236565869239668445579479988958103504644138890902585298725007307796223186349128121446771480130158587431796319295202918237076404703811789885251414124612810899072720430602296901479472118240002105816593812279421586143013544591213124346655383824345997385420671062106852139681207554039981804469753215091811500774193007776351379322959459281942350017597728046450286865037444499780742736348309687564363482562237472398272075111820017217455205779576004497659579244763845121385151295150112574527818787946563456598347470312721628364679002886673446603037071416851344697284257849044212269273980856055861097211076018731831489286691977264098070703442880438095036489290594542968426609155693294767834218904961064354272761992600819163533777732025890939825035594652685881469998641244269189640736017808575813226582523065966825315069587223571478249352635295640858469436946960139204863577191947313138651085086674599559743880557764042379552995522819415559444776327498878707613561512984245270115800500956713333336017648243990314147244001664370238731595685217527540908225966436645539615846417850896304881368748288027996691327383868967497858832730666404795247604424207531816341918940663166626435935235284017298472956741765214456833132144551528998063509380158636833884527217888420220604951917690050527953197599562412371051799525248497460145227937753344168653516680724756298998632597557630138280952867370029261625909555915722047854630051459459327912591638369910725425375231497475834324963429891121352837202175650182743160682977217014147688016511678575724320884591776099745936341947848545251061884330072596136647356551303088671306899233145733009313843791506959360668453913666490265692884359192010767239530436629550391169245735842870269429575760564385806486825802964301959062322601537954035418545115850217876719873291704105250750209988595708664370509755642100252103470181516885270717885210394425834331079920413059580982098030254344544524207453528807443250931338831849915679920115407475957299478968419934412556856089627042180366757289038864357946850223498868357894604079320655015002033014259373245689973920704636385667482595294955423895401727879283747069789405869093722208463213135183843019317622184530976193492966491780411968725293584889624507382914752864363791610810186798096378289022087511789761470087334916818871598092657687771282364051682451727162995151858999192995875140480193312934252493101378804250086228348147248008485227347812079377192465307534115968062053546109267753785946312196097142658910453985066050679801714299110145762646946888458086462365323838024794519959571931652599600990958106358561853272542840445718150696960630024270583270144386071242468734977545437093903472350134984600356461564128807836097951283687373914983278733723934816125576938194374394064287435140912778516393434873839899970156647588085730770114790916365112226438794629702264841619130576300135986540839421427120946871536467926589134776405443264303909459104375539232431645784780101995392686563806080310370357574689538305149673836993404027236212841317788318837239915807649903616917437752818701323465950832747793375613852545761824705507427274761038973807488105547658160600012281347331795747020974036712750511367374277422074320368018236147133432755761557293760501778198704173860888654465927250608488848306619107274530495763068457137533271578404542138709795159512990395998090900453126785594412502522296554593588016425871347157771667865681767258861607101220008323077295819267630785692592789685167599653725507625367008212840065654991272379102671948835205906261049317380716328944564124962597961244909745494967040792323274990460734987179221019416673268748044789540858615412455742195860625595367561535084749294409296229541912127793225330219592007058036120072669617417768147639560060517427550689820185081563806529043362538652099437680482907360508974156914957555607740321914899429221881305527041757441223689245792234351294933715935275305422097793210399853637934626221813779986483702580743123301350960744872098975132497528737809779512395638991536866047736225084189870875602876420564674178024656830985648727366098645365370455031977450110467129363857364123942652616097510086298183176183446991710351547566226671053771677014042639377025148570704124792325926256181990606356715431096800705184646718486031573547142988910203652698682061533038614476232128870280242404767894469431385404606348387756176207521415148924783272295986781767499167122580038013049740989301156475050173605516710488265432824320064702113604826767904693953129574946738292073490258050713441625404331111791537760738866174393169448927707932594697316703170419748687285642518015694696419942998818648334228415267413696206695530198758776269599917552833936040833658216895055437500219355929872637130044913222263063997247885939470391865059830237030751106491735745730762205928287802680432232000044842910986044341265182590037461710342835533304830332012972376042570524910155146482337876738873317765810893669617257732583252702501427593756293947934382293151879901844395647864229821466801675040192056663756528754124245142748382403864796224874075588553201010394839481320269904439201426789410093497373752877722915067212474114980681877873213248457178777997374323464988237951665312868650663618824048500288083559109658092678219563445696710520517123520282513770626179294311410442058500444591382201294672895822376054705121538638458408518423475616295584169233709214930463952392437592876569319550838732916190463208391028102929636957452522169933540322738042916435006081515225423983230334381716443030146432400206301609541352793372377261898056063791491113862540192326184451737133280365785692179665857202117039262668040254340817047623016922049882844796182161751336291753707209212185668753255435248441860796292703047541858154733476768001970611594467834176166456425106346795509893933236580614153770872660526680983011871066153841260018161900240910043812159444697938452268715220485493141481127829681108264516065933198766524737498169914188601577461196067689767144319497833778649121728902702694280237951317542541916308347755607314908457959132233885104570550117408456857165988632511817511470022887424752791204149365382269577001152348255860603438973810145149969076428206430143253206408781374260413330951055867853682693329537483772818684392741299464836301499143289937055009589629689835792611541184095221964040632273695794996048604300418194327478150934948598837591243550261723397963591585937286741530162228083678197954448522653060332194721305810414062914279984654799958018596656431756382967400176965653929772842658920025201926950968979126431772664139038532559758956371968821775756036674182571353782479775572891286974608843838447016780745582449204593772876563524932973567146138099407737332768720647595332715829559416494554896624701362735966088589818832083079219735237390471570470753535202959612028873678765139301648845712920412899122179556857236259421788459195795938148685669427745434939230054518922635434771901292209847320772364847780295230524551887580629545041326650383344283868729172188419599874818737837289695620988784898292361556545935311875102923776774556382466504733112554998241281834172803110554211163387752337176448773089285631456099579679958038770663838607186367212456102333873174154746636410825057148832325578540178549507676638210475228453001578360236073964614081563209239530846530381786572604851870172441598871067606746896972685355343026143709827869335085350948779640397078802515155607144948091150014924480660401084794218523842130996207542495475675754231231489961186945301734779043500862174584932676590654155293308836622760232889313866285838838834861549995003161480445419702475337257180110049324570704985444870386300654783231427804785019562300031860143906776633314111360883614643199528243080891037761620818684352173892007872192633754983032917044491576050737756945885657884176668731660292279898205357177810242723664042644213150134681899234387445949752215369097537720895308710072383827828508576625066634504980470174283936684004345330825680580667050279891313235631095674144250954563048557992534706267930040252358845239155726016988718328965090180747841743047048192749952857432957878740892704864620298989751908355726149029764778600078871553112208714945108758039057291450840780890527409249639259322883624746124463369036144484866395764740376293661138459504706903734736580416909699152887406418077688679385561419912565945956207282230812236803592883135698616197217399059847468581268540889200059120495584783136046328944663615664930604125926119286096159474108717735977913680440677524988611015829403160972372887075551673731873295378155165247284600232197220152364368932234256313276661244916419382331836806476021512603710993581911478946453170641150025872235297683852606296281415700188865513728989365055327895839969912188993240451666660328065760612982448450485705505567982909899125131922099900549570046924553801808227050712312503896198311051520784978780071966732768925460176059233601436042774926549365779844188489361043998430311674990525817597247604201155799981600316930739810069002372129150527842297616678063321650135282205149272585291582280699127580655824261119696121661586842390672659522390812676830047493188371092422908843112930245006769249815433838883181138428291020259472317014744783105786577890819368681705279728131941583485417577797566435139560759586635347310305430699759955393196463497098252564733017163938257095888882320900626069433673238174099556233234110334787758567752810964900723351749288591854730631587687061318675512231684749915209106204530642599031595914119920493976196462874387318959376845729834794113985619563478538160353785243491166886043990239065103699563182120068675110233618492238376802601605588211437272942964493697970314986510512856517298891795922036561900082189756528877916468574340161324913971934283749051613923953687977616599204121616297917671605714028292011929135092933677386783389191782050996653993085252289509098257426830011862192021512517236461243486696964147430039672013665136181561274484777079422918915736720214043120417241945094265048913294018211632249676925641356839741032227151226418005673306016200238514576440025273528997191795760492882568157420119104778920320965041417061867090590639623774327920952872746265078543328434750947645089365466035503422650056565881185694070234673055470391028318846316519418441765800078887566755454999899680238620199825325368134388334450802123562227313796815974621922556343325137595538170393647127046866293318786028287757735902439489085238606260317961916108264386593853100038326223697831037597204901646694035227541918615144350054889750576071944928264937147688776636992460336152495267137568892433345584598526808793981139919717881171368927232412668234460304084022433103617735099051586871484971121184700320867832672506165533661031516434063784195057010045235828471508906515650456151615977392050563290498407453300920935463744382284683564273559848888842821830428266666135656992636601626219249417366866345956011207659076406026515310300268938741750848760497374298622903404034924538852645313429701309377448469706681919933573973148945521829761285254906725113215890289885807003373411997156823266115438524735297313090531341279038175820051258535916592925710013914274206490013512218924565687441492360107627151907608745867731666610850352970596325632849766270448737441461881762598427685005072465548792052712600357204874966515395153512782057313698616916552815395792444651194064930287319764601749291405426827254464051192010184077047859372676576256683747443816394046971161695352113240870040484802778174910238782582623712583319636358081717716542830483957128443727722691079839705627079864027871865572148522371390090564179972674342116365578361155882884485081528773694616798776167490372627303736723996461902903427090519213941074752058865651002135550623382138590718437353785603136191521158863003361670126744126778652959783880686357875202826721852134413869625204585884596305661732056616228411837571489287999902626716479701585119520859751021831705855346319440376893355899462309741002342837941565856374129545253737343484511114899362906050236448398607046675984709439832299676007761109974476382742553848182909499707080458838617556547961993290427487251542538539149855873401514279923182832866592917560593473784926865680538009638586509441748381675607338220366083420493144822628747554665075924237962762750170880133516629920490130537860937308096546228992119001036480613834448764047009455419735510350432416102210984154610702294214835354709296788857427797904011021845959235333281630576624981786637125278890565900290882881461558235950041308427073326410240422943452866749933684290270446468652171048182734713777436163443748722455960878433918348036583674800764596943583088417826678148775059749488577889159521240998893639159518007288836667446465636127906257102771459220188527182678392975998333714870513613225013242377351661399803754199103372682531427747736657245916399286744982448497180888610673770975199973215992726808730763603350657245363375222214808531617845742337959982790754153645470348367081921895128386795379642271782058232948738653403257740833088795819811592900469648273501154147646341891449377706800338219375278469825281942469121511029772719416171448869900447568256036186587949799944019372309717858736140025550517680671083254757668704000104752230558090836957873303787330348499770621597198681263923365626061432866603634265683297543698382485513477502557339116220826267553086513666093216494506674600398301750809075861653413020943833089136735228056250073981658159496023824122860792810669504837416107134543349404135563603802612136868253644666067938162042298789490990227531849976104381629466321897473305104515328209999732936551224922115694430054130428959423400119748343410177692781504062683273435668168642585532925623207539128372714369135075573610883092706749904591329638119449103035963574941786642290930130084855367990049512671958399604385299181403797320819325768278290609709908196768187874857750702356609005741890385104427101065488656550866029589673116193488020985230950174620316327345611597059929083808775020285088138922981950741155953956258717023855091285435067174668052983929410179207644055870139107321710752215401059537651608961377036599395799371674866877409853916369756767044442283041972243106500413935253045639875085717010998879778231778203612477372575756653609043533887974441634031812524387182459240098020955156009415573389069461720092325690357886690812299826156321590861273184292201480565165475909085109090527661819541361133592532801200749123248917675259940199927247295544981756985212544549735434009258165979484157161886825785319216320388735059008906413258579549557967436619993312485870334730217721445523202223198533634956613198614263302921265320281865601146355344000131220295993591711207075333682862076606545835395248067529559294830479644527005069010774847120801854213431152035407531842104299956029389480064878245203157157911720834741452981167267103425168876680454734834844884112815149234106911463110257823568228297235371668330842322148808054896899868073413018246326523638536299105843142764873119021426520068763198379475253436855709115494896839596803061323837267374843984458833915516554419967730422832867863954916174826029591217901690695521897821357699007698399343214288989644936350485709713242852141971752265433147091610210337112432686165290555667388993538660533519914713978640243535717895253225820385673503726697922260667020023254350545951885843986022419183374643726719881266191280257982794161275765126785099933211508955168829234667756108905069251530093751890997820464968934944803055038173832089747700237632838118329298827105315876246660484195650020387482213730077911136823902256945236502900026534070380830309659943331056290946017522146216360268718367317846426196950715650064816879796971006081324519122067248710391315250306654690176008598783523237356296877495386476868531128140276006369521283171419612463752953868627760205262725622789940516625658071158785231857081751901114585348955879441046460910605823904137672868877192389770322887980269586261473790091287276853585225187292805562316957014603004307420323637898852654286943613213856943946965045916940954272754447033180225748856031668812977545122473599147156503443975251103441576531202066289267968238371021034799349407327448895519526199754111185865466221426908121352590968883994683849424953741849522679435111540535338403185461010171123217407482747743662762219349805385133933280947041044221695535170357407001692567432570915512161673767837056288326233395550846180178172551606691715663754185528807017821115940618225358678650604592776746324447205495777051962533170229251234561289400529439765356945164549683101005432776509859976168621535309869955459285521220357548568358236312897053231742032058058310547158681205643023076329312681761289577044261051574726664524599437568118897619591604346974199217400154201272824343115114388986162453709920226691124401816523914279523010612680805139352303192614917927247777761272475056076233756246701584693432335331406521637340125671756572450675693895233391372991982282708895735349063457149280694593817677029406375297610941635414870183254606836109487453060858793712297700021991993523123213684304126375801931754421426859934894695073603194699794344427356753972234795237137688393767755463872360174650000088811838632323349678296612970278883597901962920874238039258021586153137030893684992691746635430366482303571466817006265903909765631438131830416245676548889463725023077667709618523754055902133629372782283615093300746725921712765482916168885532223619023985883741136604639930452763563851995867276898026209643329148059822896811095717125723724738198537761767070088402822450700139031449866310810851296135721240743941878778917871195258122587724548349749329896964076613376939969702960730359361900683101048658556658699309749490884199536936027197431529224113843652022754741660207864972420853719599536554694603692053745273300488035885111099044689156859573373188925942395898025283629225845908522374688531004458724673540067165819304963688427387754389798876937200098419971373962627374311590035213537956481168518874576524503288610095758628300393607461833569852025601130744734448874308680495424272073680058284323055110447055054471650928431379605059842189257623148638336270506922508034132782121634155212970192912940213028124269353290706755977552616776851750177650620265152554663271750785298160439632738217002855082343087468849322828336979978343334143058294068542941405807853595045458739113140194531140146557344141067402084222531647196103856080839745165741814041956068930294334541941452618588990364030999230785527996491843182106431604746752767530206571099201722177875716046251121305272518624998473611580551319814512952635380747072908926995138586684291277687289877076704326560827913094372172969302130435381023348299261843804143591755157614942194489873784311532937548378430407305454097016620992359663094427596730488678934109431580767862788011866615898353329513626045142076387900652123365930979896971074104403849061711122945250897004606010968284681801313499251307299967803205511104652545504191946055767632963875710643253857623443174596317441757315520289286583586701782196474167062917887134915886491597433229825360149312305047321630892864547645899537724342350634626321940362941742722539020097413672861908303357465423195450421434843619869496856904686904858489349236783213017028536770714545651239014964865065405577295226861579823650637048102877498291160838850219287055545153966417129527384047556981015991637382404188378647140598844239452428198543026675844334923520665910427662608918075525167639161736446412935347323037184306246437396323202944726661109210228492035308555577158872103209646359776958504304726329783172728477007100635681550375103146688694586284197487935968600816625195997022149183099319968210280290406829638812487225758898283670482704924535256366848267594726106205647208013867442049091034777235951556915229032486117831230679831176886785536094625272487735014047440490011922646602662294768513756549706769326611004831749282794320595090879317888802598116150533407657784979497652249097748121745035899608585035202896514510086512579164259261738971853102751546205202646406474458533092512241301879861915271281869232410681903578401555169646120469172115205297431944576729350934541602365244847808846196848472088912850657306075256520753133768363778941350294225350828064797108145223038295464283779570566091737888036382972748584845805296293745524613157696183419213216460434314234465857528763201884066718956505223179355429482478182577059800753070459916355124081452263462553352930162062648024555400263104547769227874282777126066846592680839731863225330765950551027114547431090739500450351872173030358155757231932590165399107270422132351150869557809953983892642532388727658501676289028483785952840108047085555310118905706650557295929780057650230649619116061764784013393066974693434520119765550025072942660190117401958203112174603096718052631816425769826474472105576147673393367621124257927895611281895186776933511390070402814567638437674125439007328658231256827405116067851100081136450777772835598895482662993342180924486558976005969797546447478140077370558374525392346318091763429621848603032728520445043834443060391653499885052029633752437440348392788656373165895091120747823934960842083894843476660913892742694823459948290664704727087488453471665393667079826268815295163312138449562942544717693270591179567050653738922557490001367340771444409625262918348618257351804126773555526780005175233266804028670544260588200448897895196090494020096585859085096625402868957607733595367921049082272024689371881460204019428829904637511105845766857205262382665350602325785587841603848140926995260817380455208198600880085605904816874466781583805288842880660040670967039874518491083917558856368441371786686231556279934387544895013561713776338179618759670228097146238717967391263727337163341590788632109883825770745112325490996937834852017037214815416242093182706866104163746995446856601260627393887402612838640805424881593782722777235482299037117098101322566167531045217085775707982443401268101448472346099972516105008350293483098129660372981752089697248686235847395532029916687854425292761969122559725437511953411778500861670559659536156104219021455652848229087081319830962583851278791491841459842196886381768618433441172437424037367305718555390502263929781785225143975575568611829334734473311447216707061614156930113241373708405749144094784003657308564382311259436619677211638054256526345472252759801563949448596755236884934138183784908222892745973924537709716756129863624657902043574404550879292413493323912615836806329474560463150557699419214800812983406163344798963009613346573604725577195774221095574775962252631745942650532489592148195389569207410239545970070693706799590394880651754341328814323854759183496956323190865437026254706387279573226224787112897337704654206587832607265725306227768441478669096224602143768736568934045003598749231300793123347791884596938645913396644661572330528758930851730043955121532359763828938751511196659474521040218728182505567457913636168007253692343398468973915666171623374731102615875040899450351941991973642025636203151583731484757778332122169826463554822426315024350765071490571527991202970218167210196855592881529502803891748983026439782779573933976497574828965317967558810052953123646247820152364028401846904853528655688777826828385682365371656022076759759525314600283569954668463801168891021340680834348496579888413258607527410480427838612304333191483942034712884014091682862677601836338720116724832516034373905795480813106315083019896051555750646945113590037753963316223761300344615788993199874222396414989198931102571122459495591613533424670265922244088039489538273278384706600896788296499467473416917133299176316946735128151673528760237617191122944873685710059879585060990911684544883299131800424044895265677047340125799709799892591304580466278570172196021717418687405089175518655164040061283031239955279073195014726264637739487335998521940817759582294714426722906096564153337787778808267143399272241870508533814954644884377067462057130957429870462338370946379559030742775165152914920355704199179297758459057467370740132512345334738154755762065547456622511935962998573990524804248706740191914400124887180626397458197662240944556199062607515724666579217562329233652387555825134482474750820106323515310641185857728777879054700504192691744896640231382366310446277174625260918099283194154709087039854034920499543187620006964803937729475137170753253565952234826508146781032289220843635363217411220235662300981021915387985643748325829529696729256996735774305417847021980015799090630184588507768161629092503817663005230594484390055206812793934606255544121170319588031660940285952441036861490258689132684163969645912601238825731577844724772839160340288608241327708043487689926688585075604720396304119746483601989805976256487003795711745097257980318786724830039677481637009245873861251434074310520163744901840194696817110838413661881174901220264677617000096324341554825228547341309544195624054176828893221221974940106903903868774578045421289624557631589798329532947101943057810337169013493395092853512349795740025296496676242759647951717510191224375011830571131956461815582577086420684424448526873198982341724086920176948553913724515762057871880707615819948722387124970295450036161804640345647872916145136590729551705278903126847137815723498292568995893072374735844976249821591210437778626330004736342987923329196184058141164807313972401033477149138009777252756421934255310431203289276868397950374533891469827885534829248145219315457525841986471143466841213226292171669592107656951934674463045178928710023256569051962978577906150086911393508135039926566014835340947296693116759633247381129980145722752221197563907392694043800570114232196490299973289807729559540520264982552769775986312094706778759785236544762766000901752085728001395741174026009547200849193305718911185815056673539080573688603303303814005436414238534901454704039794406347029179153591067284934225354350535777128912675100147816716166424693608298379638772675165001118941851013459037847326190370917690388300079062747388388319960287029569026664338569711917557442663379680178998636194352470323562445097913762569824464326436409932793801754269056266868361187633311199192317539081479977891430119621012438517135139338731221243980934186256826870234208187027484838424856243985163754484019671686774764203627772222305038909823449711487042614137403011532979972494728918213814398824970834800452094490170978861633483751645771825511760339610038273168764751708012411056945156694410149015899470604647006194499458940323058617280131116529976160904039282723200295129667001067416499651678026288913160510989667110292240093468246273036741186581885374811942773289965287702275895041410318709398966816048131096290269256205721932796516119284796777487396447945404885658851458263412486226487025944547616034601876583636057171603013129695843581157937695635355519605322913052155253560633460227224794825534425880020160686149953924884087966650344011794354601366753967318323468448783084676056659099811172223950321595746109770072159690572874674854284740515400077114056044011846132320786527460130917485889605271678030404187814603604226290146100682626730793696002288768691688706644278602641418535603804405668565832316261017896519620483207005384319374485960778342947516399741330746399036148653825585598712174237039609577891328649182618803167472781376335421027715228977251298854096288068023444067354994238395678490264627732621975667377113993368034534496780834154607370540152322116697344342490301029756995206195478196938076424612949086169444282458375984243310013006068344718323409018030912570488523863626816698195462629282200686307797519020419312606119012238066012543008896538886751613883995471311972155622869981759920524165357744324070602296503484995551411533595033982210727633284725757488845119989457709741894639512771582085330910130951646320074351207066012439067467780340188433731180293308836867853319639670632902497488667780902159496155873953051644119890731777232147129693455793247272544285711241495192812494011390808510139643955753360548885512912415238839545894041993899058621832094995553056927902163487086194002033892713639905292051709130314880885805147293382362325797192377168667840789900424833394132242443515517319859972773560833657319577327114905852474288768692963744253514329488002425552110615274746669842761818794521861189921075250824256503798587241853520983528179651787452868513524937887439181166515164324143097652707144543554219318133644920759143045697577227691320380872754220131837878626487743964479901695226796921510012955008069752676815404473731657640065648626619562078147864623874296542607204911362249665412083175715928415269834941615725967417415242324382584222260295003564340460924108654091618801875781481191579928625074252204361399103376495793021166325099629419285528866973641134529251751755551035548686734128483964183576994159433734335020460135574555425900678202532410595012677889797925074446749663154997049862802497630969902565496129569400211540909651341496485730554680755314190504414468230437102554930340012291686370462034449879704009502515280592316706627580768865083260810749595432839314437198967419261360513598448662118742414984980525646174245507708430140293327177250536219519200928234238529123529698005976482287373730242676263506657836152806032327320268750700794364923596356622898732771662094689329468307048067837125268477811016327027051021609310292344329561837038473626917881636452499826562548227074400278512758356133630932234718827355891926102899600342412934856859194615745060920821498781816410535361550388302236717897037859569520942626568965578856001006325038640524198537643469244398718790971304877526261001962013249039120301264943650948537832331713205690552479265244280616985876379924625665086389926088315082402931379707319166982157453931448182940879730294181889629120943919489746585816175398765475971995518930601236200804148942130420005813228743853629875154332236291477055812047164696653153485447283446177872019134808038228881470832035721319252554139985822610189350952005585576679796225386651725111389681951599484214167724720639828502447276443462690349866267619091362710147284369595130073353688833824912324381651658830482750250065833936717452294168357870328697338363168121321438283020797685601595920672174343520457253354004847408283856013745139389250829612696830123323650441909615329589361956130236833213459184650121927669039275254013503130306472633409881429505876759085250356327651222723497513798304308189115323160449877587178643194928202577338739336780227572905435260551295774061158903661286095201272616363337484041148336248341888359277517898218225417742988765485031470802476771662660308608000643444809346641097218483119061447865119361247816216334044676672921626571020299875741268682007968798371126581376192059229163586164504236568784923578271839962644656757033818112385320446681362133883300751319271437323171554094482292400603173335927504931855222798156613294811974429445487525766858699596122362422416218665505997000156268773356123659216118968799260893536643244257198357484964709800295885000666583433262402131291790082299878643814771687131876457113146133602536078563553912803059612607100369712968572251943753493753838835935053209168598962784940447520258007598949245668126672048292067847285325644640425586199064456934850613639376559938806790028400604359696976884959824147737355792115840347550186808453996384428345050871050800916002020545803930151860291146355239473496307368503178608892616777906983151250419591035248724334855126782395627722677605638975504133272165157064990675356612484739632429981670572339864158709666646526495640445227531357840287983297741003782900731020885881686398091918463470693550668854392786574865109096363818125615573059996750434893623321189608555559312485460696084832235797596275835172702506318258513250903869044133188328805589495275377747749503702537745496609874923559730140695093067358664980445426554895927557489670430744033323414238954652572062996764613655360150249256644205798903957310070994747114111831631825926250950661418736762965197409947326468811792190748280240882932597935629637082918717241528419774722641243230274054510201646398439729510704630592653551453413129192383077591705626029259256999599126614723939126987679020670501917455205131243156861807507747494789522134316925824283993054591276662174482864960626112544034703527972797030557577242992089488004437890503979057079100404071187974545753875000200040729608275908840419167519499497767426499193862062994754180829507243027021032038737984928821789342233641080419042177058781732888356173587386469511395120548864923070215572522459255939926019277486682371012598398682177693109527883636515096846924458373755997077101980955838461904299349104542816604343152090510362729990462867446062849711446909821162225296208498660161352931511666868318740933142799139751642987392697018080843631058112749074365345632344393397365911463803262007270802173284429922228336403978270119045560154570278590700928622807231547332150669964064337986804973094156333030007577372537787934655334562988201352252561334505540957156385902235189014217818475721475216223875165130985329298482929465075053687198877577503348112643429611409280682842263374889459196409217159914633173720829122454991221999025451117395074376734023636311082985481863123404749633325419411597824721544011263828422217463864688570971696096418942004740930731835938581233121179764574414382264066287047715556898087884708103122431731173655112222837841576705718396224349719277152062863588977938624055051081504134906497395228771339491329176612220166511948409972045915435589247985483483345366859229408244998259273564160970637009281174147407730825013889587687084664614703544866263842436331969174508972574894593431173022432333781226441894137014312635910771063784570574378049906764941521180977617734312191113562246855835517251774974079118266515570972299201779707363667473869890911012743717287899322879075491327257163089149109081388514499835757782767955793431367424623038339454730827064396278302043527961454370987134424007714851517168884991747129818138145327783569599814928959149708583369635459528014233450507011573902265328068065157581725717803683278777900958669956166616679364268329050243847683206085124280019292065732311304579095766735807848395954076747066107485025056948345873046244278151919018118420246957133518953289020572722493794426652636827733258507474800778898443123825421553324689499903384955829951773195155481843269891050761754828822103368620648885717212855200514341870497097376102235600980388150295289992912983172925591439880361141990570614705941641899294694237178640087673590004841833159023399550305376423111968912426542158688848378546710394815325167623160803914514896533020434718138367739498421010824718610877124296473088380659622646898150517226650857788457739726477101108296404906468537379181835360114656987647593331813342067461508621900495055955223848979307714522542978354608814655780484061127616363427157382354350027065145729963444599702189131155796692191793685992499223590892014925764315371619220427218814431642193818026337274315273746942438707510529849527204461865505027458804898920787833696363007896336037123602118111254280434021823247272304111280730603667717491702327733450155095319062353805410165066154067158675555383640153594168532595480503068201000473809624138565786614283113940364809364945813103985920509087414197049677811645916848205995040505958220919632586267915988702518870738325220745487733719933266711007013968242456667182883846844151826388939274960540735749294261275133924641742293486926051173229883992957498530215210345156741542810997592513538352396494282839171248588459332016561105983317416607992293952497400633688149480211392128111917512649802474398919501261571738696613354652182615190286803863905632942487929102530961617181522904833852150496540460065399454307901579759358134128391771536398919504696719835801187442193130859098661092955812226094383643343495996856143455871686252924550318095531647726145386922601944765482271567987424117220363461430055653759807018686195768053815791195507733582007484747742930191747047391054938432951391203047184823908156722280257841242542395760920006848439117080627964332562342856848193616505672478099517112010826910678605233527419167438694242859184970940783966225368952733963454897646807477182019624558398340239023926112827815382960079270610848468050040586995598997374194574411724886553849496845123362735722454984880113076913350713223690724699513400342321305483809988278902314042249157326409823589107734689990224291146430416326635888787259250208384056981399465843766448329703584282100950582800278807904171698963034057664444955308668994326192285125729640364740548198672968355762453960408220398820717794775621051557268563181759702163302406466642368615407389395002713858205697371423853323202525955525814556410603001106418431079518111708194607595715766341115347803873262972162947428117136830656255962664861109778020852017603369131935968560998919718629621764860525718590540362754873263926630384971726624848604543562472246255600658171100852877436295243700911640683207090882104200016162572359434145940477493297773771813397207490964368396936611954303264399848875611323045805660769353276668046243829083636245931990583072907139803874676460631550307651892634025391519881256745341477884959485894401179681937434892183891183963876458813140522700552958379793978152272781618155322521265069857970497450579572474454050680510349756503794554586061434022753967292996792162000466421891073349745043439249248822802655507935273048203056731030562369810775145594172547748768363337101535597908660690116256323155566883290384390294925136805610628684875256855501705103106931507442264768012963135325288805421806438310662462471916269372955642751699358731904876754846299715245387869287969904801823672309728383217507918717349606236198109357094181731600867399218808884378786701706383965451093428337505954480373123281885064700398418665009903519533974707583986229431801902682630616635440282277285646101093690445179308631050390031864752960732919990347823247010626892344560126144515967070859487260839199470200430683362749496429078795057882164238986781646949650264673977321324749389623727450222451099625812974870513860029521965529519585917114422856129892144347642918388398102587106465440600499969860919418135093644012914927276866595770062228110279518059781254744357632222857143052603181959473161842462196083662993753623151513283317359273792235268245713559728297663735308806274710425777172559934770025508389967876491571989458141682953507424533158999262483299245442294099390677492360307392755702341405512279139289196205768454674272572664854978132984017474666890408444936279033882765631030452186029559679712202929428197902253379299741131332250354138293812315856476284278821567667323896889692985095391062572032900022526474181455042866377228898481133809465993062222288082126685287438343790999593846654706009774813204238465994431934780506096797350312511449832383686985821449752267305593936320356876593100653664309301826263680465671217585345306468544427078679234842231436290103342993588009599855939458823593803186414400625456430594957902938076580061765467785469146590668249273786337210606161000750422135790205190721147253314769874349136642411001989407515470429636983296147313459989536204475356165550727922214162451309220698030576764551129090467787371767629210696905781130461744675314900610289049033245583229861565178367420966229306383967865123932904194096121358805465006459273785591549980079267451821964131849152783605669751851599398590637990958686265735680797325631716863728671802282555477208556177189405996349075444524835343588924812472605107878229476720692904094984795038730343173490070626137771340807647868902577467121846982088422761463129889241091902963309668980334260594567481265325175658712372946120911455531334253280519157911361393003978990400437884111113541726381565757472678546936533065258511446360763008463888838862297955147880680488906777733120778517023805966243862117048388487034101896133589020596171536689343490269744157073035890409082046859445880861443196761579348491135891081244930658305406061581150715034030202581889413728444281149208796973440271268605733182476883354611890798864727414342020291072539300868391594210693790526292208227180909439155215294472635307129452581862625834985681092499835374461079861226948643123436845650681924495128417049969622549221101997825500493116013164352875647206322138087269936467411796770353674402794908215739186423407149844258034653447465880494723482757043316103123830626654566544318469298365914540458907657868884356063446892115578923556804673553624822822736479518302763009835812935287887394907991425257547195811463918648735033029538598101124051560151500610373121472361485452499584220196362546483954767208797668739623869195560179375197542516609984038054898121863173885782227913838509872356181566641101478576096382695790329048314358158121584048040315105951266577189431353875296622503635603154065856081293129034567783143653829650094339312728890827787922669161680118112032411904045521460516420171197779292806892519961100402014382429735519314178157895729982667058136969993885138062111671660455273024483068340828241681581771031630261912986188737660749653236919844018592319558911168683168023812702060398252717138961957759876530945809904490585172006272601568622910245240594693058399599109815280621545541694884977877772097624224974310662233757269467620302606871036423096284682080524069306530970880780535458996980424615959186154732041898087509943759035291032336718182730999537631293343150048765382240404100644776107239861513173185607899577934363524836622397119338253047539278055344379152888720744154853635131357770037152109954118822079457312640680436519019691486208723960078776669533079578704615001331861611971964693787306075400642568742075514274406618889395310508176057071730243438242637813706779913588117878777429660454907496897680868477460310004401787142786080496367732120231544350540978101618238244195622847918883193107865852901885918837582486854562537544768003292657888924690055502041736965484872763819091675488525605943332905486648679788668843251972987622324096472517839799008411306412146373579489984851016972805673241248917331806240010653032312587921231789000678387733987195371764193400053286926997152491795310539722397237064516581507618283229095604555474392813002750833302889687081762385771338559829842687449681057117852593622574854467763767610734408770026664780743677859108272943234010916926973115452020247709642463246606313845539007823025553702548204830679258162386438928725670207454179852990651200417904594391532750585828581225851284559805401610178401679053436647185118561943917222122335081859753189673256136061069197502095964340870704864012122477824522477954013182873449247466257584462396463596056235604884365426321800573708209316013390120764530471279165606395557602278945548135698950240051755951182886814439170483787890824188557599904995658712391727150590099248053923047494755783110529755570264665165524663183622327189621038021643803027611723249473861965802568206683294472082390503038229523926222658627475625857029108253768190534301751674817071884188775165937866822923416731736093810267588241658631216913566187060317146239557084265438602851957406974376450631775418342438692379681330785926501741809934247175232346384384039318337443330214941634911344823743609840645834256040431001720948035076986169047218453838688292083628080058344059899168800443913977744209363935777009007353171017759717644193827516424458043372230881549961828646404478569779927744353647005447005572072194184805273276989779232131774786504683617870761738240298486422947850361676358638117553079061911922144608100199755044244410568687750246462631671316032368031417821185298199995507955385199486798567048982264710881642463754884151975227403556952723253310329761616970540798277277634802925098353552788061258128208264486127211631280242364811279006103906244166755724798763580554790432116509162817915242803762084920965585617105900434463416903456852652615190016690940761624457412534249067919795685691985339047964500712126004201771092211779271282329474488108596483749014461233006177134194435653372173912598984088932370878093879988744971909536450310454271961385215142632175215919852708514020999289205709063914042371491832775709089559726265324642220376225629042396431155627187089871712454698853634924226143879616344748096268587388684014987234343272908752400909337887391579628438441838052082870490192001563928497401292202655872661755115062646364241335402994793134845246676958875426474020294568547685910471330334688284911403652016166396618977932497009344142315621275656520824227396188143912131330716559280103475782217835589328986552032303874899737143265795889393558647489867737220124567409200478433246355934538501546131205674280546789251587733649298304575025652428664806330489217146520619314157247338283625948190867209452898857126570731868407902162159488223157030818194278707005147027371964739306887193922535484480342787142460607196882835251996656045272075934000279842726744402269566191818439407452732781581832013237489627292391694625090362541656844925881246874128621836378281667587386452392444853411149876517105569195821975234389277290974348728269370804790306066604083527307285447077177824825591200486541873887526005621728958302133576777377160910178535932242658194416158596717001822598312723362502191319734285188568750311454300283175899616198700879187097650598201937429859559083439014720075740309511020578267516097908003460573315826346844470955615018243992958475600102183427488979759102830729553875967980906281062350334027254739964939488293927808522614552390372370213791510627753899177627751943122398559153461726984572970122101094796782558182801619579353699657275994979137614722354164481531966467532277384576490764996533120628444275594790484601039555336282017606579020037909991318449957501392115002579189392034611549021704767008183506741556060787012103983091227248008752637335702547329410013956130373799066447732614934770738545178433030356643420657710633090429367415565718562414043579016261870636256648656531013896091271688939628482970133750002636688664336865600458490121366965901571557919194885947044352901292046872492706015532509571696988154935297734859065643445953806870451137834802856120649743313361498343671355246174582292968221434401423892061771499959609087651980189044909253506079113114222846132349628078496141976217713068835189271660142074968747806916318701029688623747961003245407917476110607689758379438836233628313114240796371894681621592891994887757254387909053549350379420071546710307727155095012925805330287854497864850672219477201478279201097286647330750395292452985489849573751242414254118118827022954365518355755561518471960997884011415245257535389232389235470035381765901910467781010109911960820152592590328080482765184091437507935297933885123320901009133752793960279339693945119330361506555180057912310397684594577367535736435723716981446358035425513272914504439505813644772334907683163883343246502510112644926736993245442006772910824586990352237435392607443690595086345386927737838179101457266875034236994117058108086895028086049764616113454515783776461399207258887543631699323917657935271067873060456947637782515500168381908451788123627034980995151809570191267561998469447016380440131737901475033414981848092798218143146655278728608712078864345220004783383427127461466162441047642978747266245219233678373491302656963716615199889811736848845829692002151720466672625008028833314106724548509198576427024372689698786084733393659853835401897802043930920233197182455367996855080427545028964566596686396553683316324972076574872569108678410748138610475673970563622515011350958780896398711819875321852861403514972735826983304194400848610365349937280586375689146194319899508702055382614951628439999181858569633802321695268271893736100722866061462640658785465222596478409725126586210293388997184055633660815378315362903179444009834138721877881305286968024064443963672669465682132897815191795741480373659015410080120499880682546911081545507437730303132312773644986529406585043999719270647641647540935357587140498949358827597560988517837683243160173046242782476686551358447598597689142814986787259644177537891822021388319206016953887754743006266175527478763650678401576000668416776796510990339766788246885159897428635652970170974066510769414342361865629425599331976201588991848803830042992580780635552892805180010607280880030420360469696852443302471974758942402593371457771586388860554510678748625015529057467726496294013670443097648580053625509728062047190578091749410171341644457358970365844015177053423778534074778596553746893115426430083596857865991555635772022572451804903864350696607617514140027521105165361776166934379434758906908610260343175651113808550432197543152848381975388710348586509721934006758245261160731001712077023285092758963180121405537206743245092659262783430123299684772608205115789436744839437787470795190654488857269498433684275266638594655514447066860531597790650901655085649557617425731323093355392456905406184747984052572859604455989521184130321742142999734372196295360464529060429866693237213640394061925771345966365207013167109038807808082269324438374467760345718960751430810732330795747984021119804710071920745055799016988874419145673292813611220013395966061850858737256596311460343296240642010715933277938536581970856679194821769000404974921492636599548414555507550911309914780805369415824697567199603851616682472589138341582366647002186536818322221296653611662990426248407711817816194564218423072769969806020035152969286777274371073113520934394779091099563773072676413743192319033196386602804358843838731517965267369208007236470063533414376967621989247132837795204584551336670778949566982766225278633213322844599138754431052220044982757341116878818456387651509504967076460809221960309415437013245695213958443288727207920868537718975670947565921630099417455281446146450774126486357930327645764232869605798314937824739423128509904678144703001628845153363922788190173830060349774184611754935469827704287187939569242488065886256755123713533308696608657247624106193456088891516070390893810922445542940273395001489268699460967743601491874525387359102724745388523447403151955277911000673231549391233492117503939295523497332841930329178092738490635936755154390430097043457741904677608748659397856154053875934175740148029468051648861145144651989252024061752284738506450919622477715141141746390949476952351989373665743668586903900567086757135583664431788223602123859815207440609682818264081170098612343732931370719460247443513810573608912534537021367042779512265139482164232105581000868870045311339916909688897214743188079979685033176604931073543747973838183067386739750529029124537608450954721642725528318803648247655023428158975130048171111390233046048217123240738405909497510926449897742729379716757460344519057195385248608211345156017285218934617223817979792366354266775471337470370621422444866513982873630492715616653949007859627264349962293596163257287249621758801470416541300188397650730808798818512770615776554642624536938883023045982517941724096488641338350520857644575415198231453605972365187229467514171721186869519034074016823363445143369763009428550887004550294478655701542825442934388045323457104422925804932170266051028601874216121415265108739159127665231764443414371699414990950462828649343626270524106429205555409634541322364111714554593703573417274450366504458254918418889678624846205434069974926524568058998382123121365200253409137828954810628004106573354295776618129285286702884759457754927585418483459545514763352379757042151949901264316233223661889567677623703797665266062457016777947393989172047801060052646366185903893671145789019792152717166170249752404536819651604842085119189383978771720031286450811353442371576198462933509457797227837026506075455166476061662493195279117426829758120380392720767970874990456779994105940575818594827952382691771295763050512643579825425915063088132651163405115476974870677586260226519399709857141175050148585546228267360355742956750385187120535750667987294507673453573782803264047520029589701482442728736607363875964969525330365702324219259708102909478462215918838677278847582555835294793932894644699388405089875103252353250569979168856602962419747783483758496727153995620095621033709404276647287047494189117346195924948570685550022811416114992582161412450020623778637490307846568644383896671317314441740871922758667369001021123769661376352430830969019165557949326261870496470617489892080630214205870200952505438772273812493328864496737223414710964149176637582694828797592325254439615467682438424820766083581663967120714482028080851408560193315111822438197529420810503635331794587579859934296849338390273394784429383563492280791524806102132682129554175616801231097953571334400497666166163648717650557914998477366943368817039652316407159950374046902525056554610673553745870434465677971909546267830791011893593117945274992687753059609411381707354550109263393323349408947733683512226876545279885970615431112501271203461033905178367439255385754868241222497883486965179874155921277063729453621024506282384948364496766039311152179753689370526780536823822986143766426202575234040806081399494629243149089916114954863246968592035517654646119931256622440446953025278418383290977002127317420623787505466339265303163219477241266732714580255935846514160155249325422858695819539075041193649112306251758497407900220485107438468248352083453696883711966348019396312770671886527696629106260145733719369926909821847286207568175533528102279793988555047025383725169524914938567052445367085917103157447174421824209113633339369951725955501129167939036691989753069462106982847383948697290533200769584189565287253217266108437074972971647716365616545159932205201440401741122604408019042519993149532791256188073654249952437700081912805529650762732282124185813452735102018001795544919445896000735523259513824693815785423226929019155879351588084878317236261184024259378769418541321115576500501327132134943320320201848810816081356812435730803186001055681208723857459161530519695610426713371872032255643317868691927922486584303313589783465168889661236443988110988184824451395597611034515405469021159498783985394549884596477143230170904805457034682473994747421145291143887660146679510671559451354807813778437989937011971353624149188364818858583044521034721607874778000336204114214551138830544703653988967810861230298651067357547947125295563411936430050017576449506194100669527636171179140593447613068520645585311409265605067755089294301540359124891809055214971110576127541607777575543111309922243091578162816416440931215020099107779265419096187597474952592049231592046763240921341079619249233388484653452916152236604051223876839554433261219586986080179597151335447376324810801879569466097616862456434840349780672898385549338582370002991309775201722148101301737325503585844295627079308591446796119991926059833145544386725625098870262916490636400913530074685116786257263583251458195900057476827088951820286664468553040709717569300335517836098850387355177911623643563859678911455403993250381266524822269877211862718692688352415226391448853548617634153054596461508940857960907730484671833211720857094512413543030458332909318946149807304257800322094984207829167877505279376394760945097681686084853712996662647074949188392003389795300091881223178216624582074165635813484701734063228348503244863874330684866974004876474931457585108460978699322276014831298276611185487748208737784474574525570023583369177556461465942694494943678467773141996209914232137177853446901813293633444510133394962272941499723851498368550148156173817678893733918113656559683078376538643784931579908229288828869952278749970920638854858894327413635360922618619121179654297512426757931755362899315978255430197221039432842657056439490215180113023366132239524517658523358805073768829936924347945666112882334172213031232640706276931896884945991444278608037698833383137386279609870265791130909260473608655758229286843419592903309215563822897793887075163787569411029195200415527049649818945454387266067166922143195996895997797805826320076488194377074941415194667712265924915805605326771801127232336675766065848218632065026942069278636322860967450423662143700619929307849704966560664567791679036691691928548529933169782173503457925759667108673864087750266272265421234616733466599136621793815360950247932394911216538304376799367157521005116830157283414342562369119653742224332760273953734438258233886431472202446829413408480514945846066148888684703412538610315371212207699608768698089389501063613064254487066258011575072663912597471798721853948392023401179811430442072232429807808579864979903985347874766557075125415772380212706546157864576202317934654530969376620902115001120121704824201250369036567796860792192160108039894109702246197595336340419077731170391462754122294344943894586314728080458214130895075987668610715422933156886301603601358655693444000815673306243225998472883047334523826465420694455865690171966266999744999635489360054269029974999582670758694223605972754155165834298570862858633810382404266914153575825585073878090968259908870691228185685426703147397612045781065942479015401681228471076316322020863210153810364232938075645783834926068550618167720183243121203156902750724682174818808351132586545465711083038113479073289123490499495329256255294483336871981309366094997058925873417991833713835749222025853605875521879024350819224010769527928473406234261391726490791480105243609566215394468432935037750134695577114536734559448900158733942386560165066360401648329158605905482279103259091906742242275284403430636158550057131368678764676271510697161865902399223266259867513363164645361552656310364004950187351579738711862700448516446803355936876987367238561586015785106695312468254075856594085278105732812206695305947770594313681188910550994183699125658428856061125515455129997996578516728606120457701138081432950934454882740116764886083170040314126443403658603906440573595303057166436689675743065511621227621624824390151476707539225274402079596101759794530800921335548277873719454176271107910643095986967844440915924567286441554564238223349115808884384150927580437545311756982534264121771617548793749455775347751254316346260550762154635645795286343865722804222567935614436702132614302859700308337843082394456842089451065350040284987726487432231571445735855246247989136515485698213896355065009469322890122740770065906096071488131079358000574607722681303291764463410999868031011738966591454424212811869607195735654373520190649272067807581737546564753285345648152801101870951039263025413096216569740838041016144666573635265801844696944647485449304994949279782890222313873419152184266772460927578639301263651988503679855054872376350920193273240122464509790851007711199350683006679540984978856353030155417189269039779603341135449223056299714543109486224787333786528890342985861597401770613567855607549116420703782855017107305403472655373299308299074063502197217607002241913239219162534760750040113523675158071980151177971569044393300983637597883756155741041760126466506297536931275960387970958441983817456731798336519960725291405158847171111184265594104411415180812455189263318990308355726242142359930095292106036516383672008672532238421458668080855742230678161607971839493103210505113027691528722720554088288017065225915306304741800564274493538895657767304760963444404430419438714319187697189768847666852370004569992659619015191751540574336085719531374753635959059682586814629692675612930404937719497940155087494395086777097350652649589732414333316945396775445024885991618780007950323632215568256532040519654778899591490337655482032812482318197079600160953863183438681417090995283197697748726003935492374604687992175447535654546361055839325438754336507118591226341155025338562390977277799346024956741695720815769543409343499311448944470027102358562216490553102224286382312962593976759115418163248591493006753783800828678194959183415880391874567987351552099037488264094261505975236062778633701619884169697721934541652686838008451066722581238914019251960190126712106073801365020395997562686040606320558496558527591338961457128894599325860275463325825926266121199531421753472719954002459719017241582266509473083677452188976004990828483537273250051356036736130824253304505261372307656406141049916700445466366055713384380790963870741138536481045453922747925325801037865523585476462264231558017504130001382971030907588250160295099062247602258787247018233114511855931161614108936318695797620492339257282382197348069302767682759579477054654426905673365884344373724270795104340826368456695087510274945074785505589243720937297724607547801435742373270876925990573768210633491715856012698272579576564502823408154786622845736343461747730791387714261932131468841939313876923469396329873223972326777665483376254584193134006422493094098313929859672989478132794140148794093362329170034446941002322953082376185256174237698077462634230280087713940881109412409944637209114390489391042115260771671379203086864039839269626122527583956864037430834805969392319307691470927372523514553368940811133756786901058329472103535365085835890936457391952406288697060163335467291076117787036161331495658106073193011088010874525923757459960366806089673907331256454877860957136905793523557459492617494793406748763051589545223209723255622677343222398435058153362731808354856178558236261787542226502411450819858131471735318751067018782964565883120465900211897561493576451762547853504884785094161765153915804386103435390953068621644671182548041590553642654464629478234897969712947466789108343657644210653150891896926702831988374925107661477110614289356744877665835567538626324477604680387837456068925704286783366663524145522807007770797414034007455000134480582801160349050374364901795308451041722434935096290787827469415049178409358688970761540318867775564263775301446083821325519288019980287659575519994209671428074171760839192980428233660569440524902362048679628669805995992449632649399332468109771486438119442407143353950044966373874879385557570359294310527312323459717682744771928496638843515904001169889921275582907198155588944604758573080457644369558959843680718689778269752770190562657778286336118953042048365390136416074918601884168655625627518100399938297102856070025700307115511221057771168453668704673376227000773225264360342769663664744779731714764273938943124951745037463660771770308856450047277007812009097657254451157845812494200163527889498720453322923777332247522112191989447820387405043921774012990609764957335651935420933971607808466587287920491213235221456510657290474146773605751510531331891017677606170365692950378580242269355830916004321095900554224176685753663299459589171025693932550040230064217456130210762309281689794306480929992318146151253976026117617286664906920401486000650563332186952233805244449024855038429866382667010124221627225093491738690099918615092370857884550244633388234520646216528648483299630520370686138705908974279638501533620930048929170257576998311406771253140171286162476541874033707833287041214809713096820770436442932129862674012477012394280847411481398290515553730725285045507785286306912387686760617466278230185835139232323282166541837027159880293597863556492303795241731464791186890971853879196663370365072396231072679131027725133610357413310471990687988958857078841733574195101009999727422055326342868737563332511284359383319278344432578710298930097368438971164392943668960380496281298082307296861226702206810413139061564444150743374538056388576049872470186884654025270715403980870683857276102570844459807320591768805831900681426083782466859314510752952254918066214632499292966743463641578655486548802566477814176594221103880269791668452122650860395765677574477070945900782140789504372825297590216302095110284822906208417798491784220213816686394241390736513161835885144402515302949709006233806415917543613171127649438696195894745851042444719233957882267522017829649193696829800219227065543795099949443394525615040971547049731401540548600095306818001366662776066770864969762466765838394440891199455495151818712981000870312764791044633633410986930145173064034329976086392413725628082892856438389367381528067622750666244694540519020372862178148342672811790597972985438381216344915616203140656229567655854262602777242549167576355037924719500349212461700624079711509294988081962955109397135341917787428148001089088168502165113185638681198584466182240601101328085213006059033484688174624359386013667988068404419294287095446181433803264558283773530176839004807282901005815998452730704840008895105596003733345953645278108370985635328578934601946929980282569386152946904263680615328672841525038062757774002817161689881556733389349594208426404816939400835943794155974766609498487652062361991649598832693587208105268360368332688567825657792848340654859002761050458048994141676996301323784341127450407360298908781955596755121377733197573045062834486870671257515329485078917065320769383465974551997188410964162121166384306649566396580974320402228294456708541787495997829793347132951028382831882698197661203717085281586079930551051180940565506276800553436585464047061973402440660424609198440506285784364347246367325398765403955313968734211549404198335275079454277643469141488634816120442533066871478873873164627268551044927193484175418849963626458425956154005147107013820603580092283323514537774300891417928484360389323705779973537078606606927554712106606406274626153082910399923582927639243921384905872271683694150193351215629156387933413227284056457413741121314017147208659604571013501150722932096576571616351362069525658658970972275192265241992769659966989150302061158067455024213977794270726825220733348116088639704860230326321842999570083310260580984699455152128097164703169006695939948912322976566157363408537789603142682917519268610421360436686667303718236200975509400632798037827392546846876278472901898225288566887874763911482105471883507863327413861953686773590699424091971981852896753171945731091751712157389809309393324956060192060173641971901606381897158244513614601682785482066509802859005557419889026667475243468527053153169724471623344528082710403694428746647701299542438738501431610695461704823327628385744634914351716528217316487633729814177200972034033689374570456060986883727007315997919535592905657052970222279093883621791061581816704316355365652080169733911019502046119331502142390189721513082613515370403259534031555470675675783959558454348277389191712211133705945290369359986102820669472755100139221203269360911268779637451531962295959391830087372595414138478034369613245078034211047452748710918150463601506045045073759779945925326532575765784112848122127648599648675096792415046105440569251330149186063318054732211595007783968959602956364764967345551881801378046831056266720770987589391851692809087299211046264468871355618761290479880053856090277456908026016632954898576785305878967171487260524016615705650992157083231410960525652694079708303837585870988707497771108719101736067372986438845248359953395920529409159648738206721459216649010984694677472475989712956922758252502667807406119883723298767904854462494620626075428717146992366122970891260931959128793179654969828510165168258863966887632376788810903559537411234296971248194269694939240377076512387438571654179852004363326121863135261191936318480474118024076175222562516167027387645446121673242302146062766678268547096842503427076457238331509726997808501067548804052955703582757842336557174975061684007688247570208277267740481996874240699460282699781178591305713587075885373224539325577713003113024577823733125786089882866546154830916504555001813500164915958563647941698721504469987846242624189131937059207261494519160383986276016628045401983468101989392326791682609440425318426333093824803193001916013207101873452145289042268530306054432960184702471562879594278964641098230682094385707045163996262762113184773754701425269044524956064015073523959206972470370965222907514246034460783176128659400545376576339797308544278469947650824248481679152410724632051742146732527012324748928222901217375971985757826656656694647776281696713920367859811224158019315858598001993007216183034738610227608390644193761619942285746416509620730471821986981285193892259558661917976473090967070066196154813592489484325207364810131129706963499789827305586746661777520559508273868240477728071106759199286288360427684847805662363456240239012160659692039059313624451703637900509106044186296882396772528867988156924541755395931027043890784733945487227284038500207994355909266933884460318056169156306835196111934725511565370043943677427928244314528376747461961815210655367443077585654143976296483138860617481911955492597578448074968825890738810148064477564684549279245967070221673077794791591334889097918487054777411394315742787322727507698690998092831597521411779831766705711826572732001999940321213157311169097191155505924903367516940575339970338096005682826456637460297396714981670228296908350345712341897992149858173605498670011343167687770588739990746946037795317242308887918078774427057685613146506869210807279440531011923783022455739429272990135019444847660078682058829746444130609566971554490472735762190129699555852522351307183897160547395203066189475769010742809236519240225307415019809598889243933164320409632371454418792775257269277870118945463266411223522654169420967161743367772486616106972843338207009326788647844238204899902387240256400514776185621148762299252247222686586336864738029818084951675356665967064093813000035360296076066090921370553041732432075906327515962613793044505647721476684172629539311626563661422350323687151884544297726022040285467084132363205898091822648256170950310454138986187801339000875506674719847966813488293432195842619462717806378784989238145513017199123878370426482852391441801800858628251903251739346735361048232191777632413525400645232935010776629875458553714875424168449229461511606806500899377384682740313112112589843565086553967909358062181978433303782260305008666629231621679082850043483153635765939592553364926316901544233444190323917083403023483591783444442023006720031808672440170331829523698394894736309952359661729320036896707867478657881320243984447586287290823382297159577845006519703538826372704469917999872987048453397232410563439628119333770442413725371957215662221369551855840041538804797238951911883894549467406602187041588341337231647222423264194655545161190088472358226945631134319017117071551988433047080902616795322543516249728039098950348727254929468412351047469642333859880965967309473145637477415727056852357092366872804080676445676104692045075189375483853058518076994786948393778782756343742820121668357621165569846029511506861579764628230839911441296575542417143826064442285747204502311697694631281798345666199279854313581926080199986155968986440265190018513420041371705067992623562781026616429902976714605747533905066417687879901469018489703105904721765468732403687604629145984474545095419633090607219749696161327019005245741389190085704411044712446386227959425229256876302437754454413811748360480377314560595485713619684996095403623040002802086175733788343971084811494327145623152896304035110779965692376606347588399061920996664245696154102879530037409614609574014449771409697979436195041661800616893465478916323250737658713368891871429648125652363212783089794493188909059067696854183931758129028599822703732649605257948554471617005320278328404825057441619968583000837378602615501949976342812125028947315099431453627974329298658181636789516039709700500503092791683818248846667217306899162414189526886765328885988641418920146274386212821076488543809036573463456327097216200852985285721709306540464865290979079393822297215627847900456935250645079960856204658025859467096930827589666507577312547860888233585540410912347634377711880251936694316157539216225132647895537634265874668730523540772025133853891130854588940371034364130139575450491263356123749322622566956635845420744950819978367890051090653647609175465618052217298239213586046234274565244453689157080994110270651080170631965944452479974294292808730734374026410291249739500955896115524864347475727848877824610570683998584219105584914808896515318201966644760218957446292737120128815291173554498206293984421408301778258325507707872716967853685250461330611727256221602711658572792844129379100994008645627625021923895053387844907331163916788955132048354166620239501437732299605879775924643665057572434552162248313136606753246684733255604262145656089927654962564926321359635022811103771202018637255473984569333275657543553427770003801367888891268442580246370827948857022343939233511172885651354493982695309601393952017645213328076377710719484859024601899416354156720724786567685363929583682495590354860238479714753224427905766269045344961207375686339560701710335224965859902893038868143733934856329104080012491241588084393238965186065831216363883202511111970683026718677557452916939879753423579256191762694887806540959507367956206390091690613742087175078776347161402852041879537687677387111754725229839190077242061867520620944433186797359743744880286211051005703504755867326845961098801348403180810129305308374767674125681923724379547899941732078916358681029738784027754788953937911571548569228427477541321144198041698645640085072552692006264566411622789002895079138546474951688158966058314038763530638052145149680068443114638529934415581642103112073933003502908842509950878903858775524519262005263232807191979335496901777383760943244041618683481505157603154520067279066585027029439147778804620815921738512273589716146481066173402263197936458610192366759164859647470421082408792375340193173234641007947120620004180264839095645758361761260713039367356914720015259733048852963755514734990128740123364274866369726249738763576260560812332030357665808730986594456599859662498384084871402926759044857333709530966295209140913849589168232657616730411205537134430176165476837522019532566414382949532134090280550942548020609511702059729439535373578619268220809298291881541288519743536077021835510366257858391146171508431411440303815590321528340643213038665967456700548624852616556942968024509868332512340168782894714681920131558523495324310437171943188193633229195316806857812336210177463803105384892425941004968713784445597394064577237215866282300620146850947649769452267333855965251512228906368252565301041396020317433883569359602421410861520928469810600360718290095775145492096589577583014092645192248377661330121737088844434769296216272819448014426162178488137391232801101063339497752651329896845032650223719595519152905259872165760030686137131736613942058509863074552875534301591226870162832759452759601594197251876826320269213723250351848073537454938394730539302583154707624672275816618200140291970578249665358123412271742301315851539328785829794763145722866506798478462721991144223830506691423449653507135575503393165486560942569718269262694968331528219968167046716958908635871902461906436783006850545322200542410024275464578434476737711330850709361958249919115935881135248847255057287320707010055902357758584512550263967856756910282467277679107601744874830503957506151941009209963094678754006924143615245345933753250822069645507688867136583371863557278193653282396403665708527935815788505509204441445296754737954395620199004902602033826063248244292014518461157431715060875927191359871093278663873838758859173953437887328039927011493544684185346210929400633886000953880120400547755036141302913480482950825909852715309438389713061988474515089949072372372205140706680415764047294538298918513014824403251201786550663268543350450519962545601850632259953994977498680745552338325849286191242624101762149336031401368146166550068338014276942348407114743908069263679823523500557305983751831057302510432515569333581299532463631594483898232682867610741476853559871037051324125426673105475434816275836978844285982058898029622409230354765210758297771602976990029817278782181249562631995193130979458937712055100296596247697821226605981844995864709935871932328607604554737400060783372107774488829212812816466409333906810574205003223322228884880992290756280704537277546499544182418369988276252191372506308502127306237116270180911819799893510948129243189212221895501024578396993807657908335133541728330775065809259338852366463440128521627796838635248529332307422853150428609299535852443891960485814370170037008201855264639872600449075820405340796621373338451233580994834131761334451275577333693779416949687461275309847916328349525411254520084870336784579119652624121762919858436686004349637005555261205878891203385307747952359143824599496321606696706081557131106060604718014390358081577992402710472438530543986195834928408027164646593220334619680393516599398544850026880748500779364060805292715742347339214203353866964056662894033129907229845467982547952343090756035842566528775024994919090835217371824269171163128268208242367630374235349812138155150568364029604290413864810043500252239792400850740615688361707764390383777271712472636123698152415240268572967338985792484149259509994374469960759350395621695666628278292319640467041085107619888306819226386323017812487525926885366464509659340391780745583437718501070446557295747615622536365851411818695715708108552200315487395685884355382068301950650096651180666662804802725497213607786260459523504296620817665421325696832580802710943112762066265814405884589846434858736793750711274186628730327804339304567451674190996387563837838889072759122375099619918105985991116934193384975449963996508478742351045163445991763321185043644899527847760676624144531634479524526692303589064430951659062405546355739592113685106771547988561163013768776374502075174288694216449741244846519525113455786366585685222231177505950213119359230827109560681261294820155693210241594025749109680241970000933504345455853894783877463144896802331386144157714051748938760875027815407544678888422505191925466084643129524584275823985274903242639594567626513667621920196723608711579399566401768121448287258080464000475830968866032023766032458735148249474065918214313130156261890475095487353623712394206669766319181879134746747449316870897192397158656218714411340277939142300915306338879546926891510913560237525301904354421713865460321139827406317234849415603800562746886103691813920648981325823382022022152094709046119837780857186641582835195675158142778179942448591133264328378836351955015784876754299528304934277266130334818490786085814695951184526832496603832161878918605603146835406754437200967748521449769960176480846917095482003375084744476757786701588937684272654966800304007351595313107900055090032987679754318479032609439149761217387392591888268321436733506559196760898280788342061576829132990289805281849736883733053766732520585613933514139742132182376050911733689674672158799011125063563334599251320061476946700512736145512488475091986584595012381660647320040294678595494431878398055076083945950946173014054063957143262758967401331954575475641753888626808291089173411462143403377540606048662453599262970828175603374677519788501522647114736713337090107988876382006017592668529548637871732466367247899814862897617132090579423752188401263891308610866036819419256695548536738580133959726758831655240292352964545009843566068910802631418114671903312483278518342173110615894402617146542032007649921523587560639574999694171297668667845600630071565401359505117273251900065713309830780608503373097572292738562145146253876312959515375511187980428288360132034771928504838780812192983677334235106733692090389047172721473337166969106131898764522842814611578111747465815943324439878396378361332165918408004201013503905380086406535016419880905481548686893313914389077962216830245154160829046952780089842770441061127451299063104717014829336169461757081862316875449420549382829788801967653517586888817992075320895354841733274804609384294814229955323647687895551013451117731315952348395557014220449447998846534506087825072327845639056901507006739937575618298037473704165592945965468215856496335866230497865254411784769177461515766609840164378157571844760867618541777212275852701492188739128150756111754237730727626235228069781492372872417623632271597179297101174364047936191637283756322292005865022932501022841539151424005554172909592725009215187067087712818216300606001920341736475815807771721839623770909983247466378331918435200212107792986389454411167166385298707559364895875405437289038509823715104564995005824815368871996087891048577943140851839591109596201270370943785484759876228440100489988100106549897990683105280061596843270861609365698714334513463557737419143776092621050267391667889205134114576240473966048871474839423696671370040042058684065861303761186278210013423110088462769350130392979313665119119754600781929098982585459577351219866410463448624838430794494291167610202943442787439301910415028627956828508620478037783065768574361860577891576154214221928784348326866035023315271216619298419568548137560466498145762712966901549363695210615371611460555638319969317077705179523763432326510669339915838589532931933523452234040589464530286455038912048156280967452770105639620825849968347213698865145050916832325436894867555080017373943665315475309698677728630051597925756197405954051945863487441870950238468192639262715680795023950765487510399159727404950350455040051647323735522684446260950398323589544508596269102815107440157520910646624703005851444347632694370469070525870150525137116733812910924016005991852414350412609891435400609214511063027302058954791046251013359045863557742722890334938489190346773178834929088040565539984186004256462051333684193465116988759910992565346603904620900219544561031764381954042803877148719992029581774814331447557386912155432630578005889164789001190786440844236924620478701181105059247647476325671553193985022978459762590007757843884952175110028358498187369803143416989409084127270482485506936954152022834822130900361937064215009943366134359871905193416107067868017836042125570459873585048716102699412738925784797571836017436775497712576883518690091495406648968262542470336658206575104157862403429085485635786289887681685721053421736338652729682188959044237549069339767645938071406765025835156525940515655768796215583033427054372879981552366968607668512059868014424688138448027512511090968285356723005888189368473168346134000630737996735963297054968095026386386583137221219716804626896570382469382520882600848808769005008016318913621808251643568418141060068301352271289175937089925202054528360931651514764399906155250614295329789514538128770016725607185113100110310126496703560161393482106433288533459405229222530544736461490004039240590071875241029740606882946485310538918022764106291764335417714699996137895301176082525298982059484700428648227387663948111048230909512343265612180467079876415485901033149532797587529691555243246243226688525650314095459635343815682431288536459497841335425264101453343206356727900282607469842377899267062742563380788890536455355002099216390991582794514854579805665117737066485760345472566448627127777895328927291394105622716093474729812012983154223239175934582242400081124048529922877545232061101419607192326722799792407600909085513589364938982244113576223833776282270816207702380855977068034733439488778827419323155949781832318485246919081888647261601874107797033802972053790946409033179490849386923816996886381381711397041073494556927739632879587625623877251678501772903729354707342009229662036141145717091925652035354344549243487558691068283066614083863143471377583609859790907493949074170564098988670073268740879203137546014907186236009588294379289448161195403844777632461996629492453334340643002149831197652967014287304193851803486267745880468075779673189829705120566014267856607231322853393632807090026988110770511613112936217545376850397302287887332933380103689578824755080141997998246166129483452295676232754467091010512450086082973427689282091566831665057449284059575786153964744444003971321079639124654336117080790044648243156922508302649788324287420505907135165632025742089347858691169734302734836011182925470604646375198675749767423505596064124804800847823888561835196702341134237768922094879968702814799431807633412908922463198509962436836952407925537875483291765591415140238903896933308955586732902678563411038821375462532265577202807884773671907464898669746888292383208402798190894115451046843532428561843571787301447930859195234358201984013371284262843753080724054821403861881251891608810825032193873395562344081160229066573567784334681393770127567876696969609613303494742632394705319754824691822704411990050524083129483166944703498130775330253941748270745171878139810185654736103362706904730598466125919462816584640381362602075243371969910839238961242213343726047534228160388915711950909582838600879398582510087933411263818489781462008961884619194869893235225027964919605061576519148929269536200345411017476282126737824356260363091817211417618150502789130221272441786334832705840708579834348256598848541965820523046603236885281846695488647339409678141315426303115058423215392129114787656903450364480098178901481758820354895225371283050857313483116742941644077677734425769975566853954614575167823348673366389173218985352188218470256841213324467466190751007286225862379899864067475317159350095355244734755897546521080872485149872316708619504581581415011951002821901849674269195719578578882177550651640839053017399969193707609072227984709179601377267470308718354348541010142685201372562825450767282749803076670099736340660499629422940424818103721974171163697540826661695292164636958436704628487166470451419828181860533378966989847320189078248377299934011209942003331903397263553069202532520102248494399539128442909785838380866926367713286841663095709661821786921433933453168180277730261099180855127578402060237556461874737116039645970050708599591153821920113698951137154141862821769822772000117584951915292343705055470904132399112750567972843472818174964426420065608149849340594731459496928034151767684092507822657594025370937745260959577093682901353027643186998437110853680877078882307443065038304691119533489314946076146259170112572310063623327028560161739664263458245744802424852367721583528029220364913311148150213658214107502703066778836721805467469547018534089596569581271068437241445993348548228267740550596379056451143656395160877489419894592733041613181513203617905608808053964118335246226743081070725361281968187455090180748561971218141829797186818156974086392245972850480508674788932149559855676769883665505285388129094918578275030211832756974207346577392823750159732975841713646838595628471518610930771650189435675754325951972197865153604075115207473415345585250263341853660030744366515279494022193099416696267341688507780591374090054161443047320753543247222280787290086672637266430855543805583370632616152109995251752592196552089753664556146649293967884956841891473915199796783806741841974020158166511004946362812926998286101098868178276783018824200006899826594838641807292248069399518123546882042500101304224245301536907409060846088080795679602526451033912411029505054410226219538590349329612010662993425428337806171516719489622208355404592951868191027204531199985036592816876444460581398870501489079370553303110103884637205046845721416430753078811746238133893558412073498088277238973159233317310378364861970420129664144071885090287621135460018952366969823751112920326969824757234773709705827844987417476820276634527703188061283139120227494702600421245626535442735399477203889531018730063555388968071907840014220246161562092639243260827635863804415893915677333446020082681715862635276065016785590122506157516056599341386459194207665275500938499213965866879755344976951234199777092049661949932872887862283981015401495991266707428695324472605483636503014608949519833293742596173352677408861375121695856993472884773900777071179214918340203099858402725630079791811195956138880274818442536901779339213132530492506524107046026885952627644946805020707676758289088656619875446944675664560803093892340282685367032103578706586887440209518994072580809453873690928092442773763891191492108523203514120815116666648553408690854954159404520105591693583645109249754104699234945201553786862679362858324035882514622519970601544633523363148140988156969879962525988579322473631338577781538161456916982969223160621190691280197987658758315601373936007606308275111888998346032446134450806292783167500483020855065256867670693881426800467836268850042068696281115082220759479548366377878245911161275057245808963046790735112489725930052178932873088351764230752394821768549810152237555735126034615820041017525145877159467893995366032263742596811955150815540861513664606914473767812693137817713390032931641262231984566210330063659129723683534190138892194766421584198973603303220822571916514322793554999440668207823508852409321533636631389903915477666556135730151111837979354421586551643942795315006132783753502228115938850120659498111928082833102588877564138796819792390507556340810091800479274518991160886803381047600958828602301052579992384055449336597353390211504691003710980251617952194380479892139291478407822326496787017705135834713368622852203948423203785942997094868456896489284329775911972757809862261202600233964600748415396305183072730028445124513159053748698631210648559726973000551735156273586864809180673608131221388220238007321707815854229233828500216033419808135134292637809921421134821851647679797952329259136355496122343208614757498929204725527292637972729784357735736036963616415731366683967739201193079813800285747113761145951128213944310545376538559418159555224770383133060665732257902551482901403256673949259265987497792746281464817027634740434973190397546840031000617544596309071408873144981745323644589368981930871566481051972967838275486986919658313509788609540407842387131385229091668168416063373423612051815432510579183796017207901658943064871254915944691148546285693466286940362091472199619687009018623134916577166280951912719718337054946500880117887485317112365169666968341939232490233913484857677074164259759728124735206463488660348965351318252646046738615719757953057223695296087112757773488223475395859151735881386624514650938137158759561151594488239693183619655365094889848998959329979173455582716680174735495126413343659860500380435956193832431011336791167019471812126745604027666405209254515644557781129519870143109677552004048887516639976543610972015687847121205812564096938376513668988842791072150820866385201076682189073747651435392278034181657203579622483021997117343405666343218203922634587604447262291081715742154031289745147690674645758450132461664644753159412892435647654086727313015574923877965351601143769000905635093321927374276210861730261650677687786493050281833738558571610281273769473635670453813093231746259769552189878550183550149509261785406765775541763919223035387856554797550054348359333600988751712603036907832355245337166655358653618057070817713853864173040250092993852753163797136563395726464984887619363441892518712888409779648904158650971082387283659064380702293197285165274708988672673635340013852322901662278777283169073794710720933837953399984639226696229127652606562057011899654948578394043043388378876919578419421090849042018776579443648070513775096414155114775972781525464829133616952735160000157222459828662456767865429530809851860707811521578163220752915329938569837476162655684121598786286920558691033231786138560351482761677693559172083267245281126988929335500808470009378049226072739303710901192021838470682861651945703013976023854347055583465652766597191801578778382286166940603001222194389721188566738265039999945660973908238729825660637189255028853114987581564631751491154398197165897854713437133157967395712201912603737042542923014702171436664908003226520471237000630544857078819429267304738618925819815163779547068585899029609184543952707223623590124541109260112057736057377583224067289007794013703583533221558186548934745687759779294124197963293236923846281713522394221056028303890820533403424215228777125793362586579842139597866750729908694091740610455849945196452111607734118295024841388072127788612527339756189957837143069118457771247343400155503378706527113364904801797435831697415216298140448105109155564284625308497712620111819679345506663017466528505902433609559323046567038769702704374070829276133417081569636299757305305317736987163912626371507072939175833278467167094159420224003806652869215409963903501484528410720353037811418456956685868177685988708807799269246286216805361286292685799502053495015410221895211078313322294837696982810731807941531150837747124867684151020465341125415168362964069143252009359278774128793765527635174961734513274117154155196741950295066387684366805943216212011128207822109804659877163233874978712047400747598308621769225344485085285092368143569303111417597924238188196121251645914509173122234790202795062661510823663764049072189022871413612099345772703124839093186467732476245234844233933180876782542747725168191047541015819685333767814716769009020326840510957953406870867331982789876515909295395768801284116831916449797174496206547103386699333179789759571462395145583969903658986111091100859768205822178431824128658153280756706314024251804522085997093697210930084503419803299122659215678073224117761098359549872022705376729536091642841213099057034178865158019397246804706542847573117615328781289119107230513472513283872150293032054738531843165434300764281666134336597660901948590896420442178803283767507894715191638927721650218753706650083300779373196541230009431172570744859772325144982682754353167067156923071220273514040549046987617432526937219101054897993459700070145452787171769427842879022770840959147697250036074152388309330642763367299946293599609344062173882865263200398427495390684411273069102969493963882286817132439630863778248627474734804820540673376220752839094578876139115971993795721005273864887609550967107565153767054219379707758518367290928786664745601742037965792527986874818549334361739139828399475258800370277444265586308009257926426996545152056787381253957773369995484760089724794385599948019341305828183088757444035714935965431696834982294297543810248325167687931799288773745233423196439319807332337057731000568811038555772019915692900561682688734644749547943636540617437595131903866841588539947817701587551373688525063372898208631784504985805009134672944995515960899329910933601531038501935031748863908389682921598069553888474265316213866952924490517558422868792874194869389194052420157641273674981184873200796853215609882991488208993172830646221870648334821462733399857350014261862593962458864590039626266073603314294371898680529352346349874295198387004934659904642498321796198506842583902970371351395985939850206639842470402486815461198243667506990246369027603303297394552487279351541488892610411718634247568859574555384418586118266030628468797451105295237205069779405586203948420007565497569150638648146044032431352969411469125599905829405454860604512902325278434549620660728991820119441840158696054328973831053088573705253274423849922893559206780754262973167849874652471983514855487218623182974671973255383004069463454865184832865527567921177309501378395496739845707096865695629202273480231889475653714742339635220105705814480953841787836168711137806966045365359459134442670941871864513202990495684993684179772021574998624183505653003978135138987069174860276254607000892459330351468967232634151071770097360328370478161370318571232021845571359323529616603231894782137730887310522401552420541148726294930971554955835005730454053438866097421442979437892767972134928955470282886851326968665260435629900293285041370957711617069583560161488342617104643652443729955423430955829702636189555798739506051852217623229859713082994184264808736662093735766759723193637983390415981441550223647979753147733760566079651545137828102925831243208646309763098929018107757615278484082474617154147750985424477053597538053303851461132938899632465032481960530569466755705099486600850712148495826381629255858040196040221890312641205099923589620145795126772792224854379918219638994458747587917689769080922534515766531753225784169655729229314490469495225914252093729694160661865620205234165727878177196789498799526341513303499989038871401846791222040800984312779621533897604548547893833089190941722555457954098579347340594114904030883350078303173970939830173338038000384766221831673776500439242686036388800454249242536503733555198060788160648487914337648822093306832137357494211815673635311897628207154859905681622015998613684589037184050446957683600658048612031121401041511073887469642211886274260775830099903443826262623290927746044713113781121778394344076983835862652498522569404104189814657671571768651330353553569925462830261301057410947405412297473252560971684191487051586184393665140701420187981526418324785674486272402861078695731806834362815701758621878956621453472897430567643229104466952170973229234506706565247298164476677778212307329394825414672701688583746352022826468848612517057608726611393063262298855779360137290585334003502190471271175507341150945952700369785402740311105174427272405677175745842429242986267587839283391938210605043257628215438376223779949696020880933130535970724395005264197301764866045264292886173152217419859084353589230133690378579462571409929765495956231542684819390438824250751049788414796905324937654648010200860188315103421284122367908298177725354982511304976735411207808991470197655076747074731119131758926007271024759992009892918369011438963424030025991476681571120079697228612673720211389584889910720281027953490651179474920230779178586386513018892430842179221019352496615882159505764813937896447769203353414698052958263885020401255544247781711202354692726345006620241037196081576803279806962382462495867705298151634433406730836527375300659493142474777767169931737122009311734143887270146118935579078402542266692766447192027103932365569374231820827846205593667251677471478901913231964967445244017656741561427617130443507723077452285795986126282108220468748903395292792946838056156058823129178271499052694040023689722484653411483254197376783222919219093486703172981406401954036721759275510209062177930562042347051693371358776213654777704312078584874347634421855641445698499498717676019353306729957316821781569196908820841389708106319013670484677696112005357605486412056570050333049729871509191180693943773222854595436339404834781564057871882101874874269240198618134906545616631628919944793130632087822562744328990746479340918909233451164857320974160386150673964191844667525013966081064681935027802264670043229481897707175448742957974606156850770232513483927558077472354816430933017577332161965357542171077693351070167289509616477618485314394704531677523714744145070101613668295848185125124684891131735000489198651914202441169975195564552972198196144442169385925805758795640866436066493042187990569575565821901105790573691455683926856329588453734819440494223702565054046351017580854431784915171498854730523040704457714241031533737682235701022324060685140938428173314404411819793539643785993602778288401070016771758386529751760063957627044605429146519108880596046129847569686851341847143842135450563287943597647188340173761851422013632217074562309836591874357328297188220763424684564859961835509220152354656865025935154799683003953133278325067022130611022607274659566752140305320914505650996480981473724846274984118774390513148523328532243470352027476521483661959174567999563317781323582640868056538113250834242123833144320569541180436308207056110144488487594928235897152719729570941210086118490972622527471821141017275482844155232699640039073650670595930679325086818929603146513720411136312085899335251390800546497323513385371158171426764869593529358662415609698248937675985576980888655118998269665495936291202485323794384797450616390214432743257274850100074934275941086468459990090455623209947191319814779038969244324511384795495889899040385784440714543020752652828245022827860193667050088947995485576756507981580731750663060829825281746180854032564273167542277044403390829934023050459755487079495555950710157367637770829347682527451030142251519623886406487925735561133728474922767604549036721182626394275769693692892872950267533375413419387079007789271144366809012875167978932668998717419173188766787350743954200000053698019550861762331761677002207668438708907716979847722045115355287881423767597711181965466601978006181289586132271203937351887051827369058714374103617225912460289104629420430575637550719973739230561733670269177283842055806969012566825578458286453302684967599568041512085146690305865460468107981595479107761518972943896494863694725893795009365391882637130795141218980366418805608367707956630692026535866530699906922515914968892278842492098583470593090823545336043816621690770072208675372769348962577228155201728471343815334374515437070673773451509621234093146866325264072952371084059971245175791156920164223685155580356864951132808437648088609967793334742027294887860458517943256312705506112485123618437348964204570832736947807800172943890438867904071574279667387747181217012209296054644812628890725365061354097268168069107465588379687116770444703831856888172168072262133700599717519465601880657179752486186147245498505494748895774524581278786245250207098327697841590397727643428389204762854499433111638724935588355133507769928224076078110151348274431953702899732303159592702038590246925369783746708073527432949906485315451304604598571928388735511900325513051551514336474780144509741192336399019934609669928155136222553104491490824158395154319618435957832847132602223144958848356754856417043212690730195762145768213414478319639566548490991837797116917818638439579344560308200457936254574038208484319673253048461576698245384631877536674644849883241183173786691566783446161418268626006776167788902486286907581770088463384491521411048664643923575854537801948323231223215158708140214875908112237731048324162955870883354512100745528071133539201481357832094544893341533695112129827422157639570430494154207504174254299262930451986536776052354437686252645573288813505196678633227440949153721137072447117148978187794312359473155447552166746392820305006404410670127578915194667565310210398190618976212743433133878774747985402479566797319778381650725080526864079099566089892160660575708643128344260566234583248322888459735538595192841978504996230972365953373947750868350431923683797345616665844517131071343677601167157821661951002922484887661564667049151360083244050614997235020279573268830062551332749806304689148120358300607010546740429868280363247234663217669076290185661246557374930688273486945841209658608856709646861051997325445172837038544750160120212937887351466911227481099670740557088411004155458988425108905784242399585145538246354442170179096373432332027018069881257817879687883090092664508059264748588982917976912917275363011959119360436447693148857545590291373121873669000794699782114324345425164096866372488480906976460581257085379367810327351765430526619036103992850688971292761626146451204120432649162630468311421831196483089329588438896885933872748368722603899081770268708890018482679447972044798740746823448261427000605218820808498578567707944764918834189406664434735402825352546078867256277213095804932928520932834818483393595424716340040825225608750184843964596981066333589209358564843373268868845429789398947082571404998850233742541951390158212918792803336682478150710241612497364491395641371131314519377902933489511828193935562220275567064728935529890758454263788240275951949600723449200458928874863310518937079538345329025920083179262146663013217986220171837091173808370837114913088554943402728548136448659686446553529141909574161710133170564005018181819764656434732489368336503579772739090104157604954831363150997640353847530107179099808604964380241866576544920571610442403596085535345829857953587829734009456052234732711780379857165109625623292956070516210437904437126145987743560018888702806966537889130328748031494773672583699695244487598692707016386204230592898741514351317377551730016148877927875474298375521011958853360266443559898705902148869383289210744972617442268640095499558200590994703537606975163537942479940052640769336344093047703247310478444155703999235995829919090701441062805852176091009094914629622803538588909142796366554278806596574435514392595322559634963674743646360287623414811387298180617542209503717057248103513671524197796509197308406191725767730735735018521350346043318472283076718557025607984976427575539097215899919643378383026238751814873434102322286702523938024666715218315876489870319836930922630352280325460221989367736047532710737645018689079083271618029440743420025725391239674701725573285484389744805120376827971610597104275139790460497330696659658494889523987882142366474993861734987149429723059845324069454577079363439306875067273745720488617925252160384336893772667861997504601952341271688608517296571429175654106551897888475409554738648104524423291521430129761997650462548640983716639643611652983856510871074486215944207770207057435103395579266476351093138900859474720039846954765294485225315195104369740658568496236056233268900783528382857093714695558615716994184336190721975661791793831945607316541071378746056173887235997638418925546310840245802725497579763916341881644131178843031840042749711150092480633262076893162352960790273112691413852974824941194265935552339796795065789991591707089685308991481201222392852042711749915073753163838979982177289721295704479926551048248822714533700731739449915735416201175975128561734587459558528511758660416912905934946766386733732120774560026438018400019269564381258784412780105281378925531602501318912027142174917154862100677071011760088277282334170460749768158717146457437412304314300009589571955695537740366929251805898043711921503885221990478501207925728286144692446459970466415772831846917165781336742800513770360634202692681884166760361268926418265692038874329942121358452931535463327317105373533431564850373141411780226815941280315573220445271695511956532783241724732527725229744451047067069433477063652380789244133698569097384591698168246247668061286419634069877674211983620034535576635093525216163278366703060436303363495265787445241872463742620393669550943197947630924318160716524989536079898830224888986546688385753531973550427477996928640581530363762785144226140014658134306661555477229235334222603724030290940569123000461778665905310204326441953131852424538698623439786444202085162579766734081038652174928078255447054971893808366625363583566461347724024795527182218672215372190622173007892860273191629239394624163486686003337999827562221021473364393360640652242452423192300235646870006971118373410835722896872421672257529406294502927050309343974321348038396470396069390363028505276609753572331879732948584984892472371394543387698414067968494815132180940482028041877246425890591519158695981524575138483875230267651152603882069507262435664713808952367294871230893356134875610307257634627226811913041800051775962871829178169624184918088063291885178024817337102107754651711762897527764327662172123208055149906340338617697197518240300373218580877735266749543217620298993976826634572796945274021764270073589074745847716899746598271433815205752543767633155672072709842833629974873828389449270011285429954548318577731765289643192867008421520675375770884215155272623439994710825564739919219656080452466661775984594430290224134847168791325121645013152916494225009351981916291509628565517415823555172817153790027152467908651362402951076831090820981611544839264157134585961869862749630668408124215750577934762933998957818807753006405619633221646568875338725469883060912944793819911382378635000652198806916410334053970003023577397512214815341612475468941038166961044924516068698581056684678983566858552455150853475000615841467121676850004807860236254968352871875091457673209583692158014916397711572675954340035726576448272050930160518783733321360968095460853051842659585037218455149065402660951497918744432402951868172541292322071541075417948197525252373602219966664187345767908681941156834460365806701758809488954455712094804950328648758728135382427113050973405832997923812991458865664993672382914485230139355575847946569862862249719398311817843711285910644717268396612933265488364809241628594257505759708272609611298703562936922359020588865014283501222554016136714395354940374394826610699284016557520535427250235262939123962480585786036761846250544564589255309701495728459116225094868186976812083141092950176603751617210117320433714482973157659835951447399521851843014436091384380232214884200888666110584541672378421013585909512908197003892888132805792600125585875954588314517426964482195085129185117856036006284465785092682054000644492993000176003441621431548814708223429656874070763258321840623802843279193027443430866998670172946038178410048639774838987637018991744617817047760029457021284797226337557916491632047643665080782860643120286133197332834175523853974462668392823295999438965608994992616887155009254658311081466018232859694181628479851755703523262851090164542494812862371635076092719466816183747079657289623228490450345413274001941970930960987554643070846803693550565396264660379923915401778947388605618736310415998026437913409118318994238066855102065697189077291313964261498234004106172170985296118521844078042735304113689130581120576947673093111312860831327740405294745224802493178161680708488225407968862880943644746438538676188862789405479047276846861865197265471894210977674197514623707557832405932705703865221798276660052349639442329413958862272657969895712303363726722694696270915417163664423570369338941475376171418035486566166231076238401139195776615019911469999748983962499545370162639061008435697047140591289040516957163695460702880897179876311995047872117200934295019983762333105672332028360112354909610732101642861467892011726951100406412581399206505966993922321664539122752069464283050123725733987615197175179784763264222935448981637435822280322162922220624528024668072958023354697148429666140811801122958370998918813421479737984236391159979584862107109686552934752418849382221086224574951319318005567262419147120302475616940410815481877195025056102312199358255910219949508497266463350473024405324622212426972381730822119835897448531116895688823128656626072186892894408148387284820303958263179411693843437349291307053920549556373800907303255262534401584773665359305194086664310934833528737238758308068767302137426346082814605287640926376357985433008716776008693853008728968951889574215481244200531603193763803015987089122043217878788174101318983605471736618516311701953298463069432622289054037029384554485690598855163458843931836624560014738106672059999099858461644833418755080181580248946436950581275839258045519091695676547942416619938864006937510270811802172900663174227111904696842531416687473725180792800492243103681042802542756999111008845629264335408166655973610170944396778174634971752604297434090300328030192329096378665890712955781660922373355671219115124474095401609891805826762378072797064958745830170732696887593830541460733780778438881986535987400846250646505873924366779768498753126575706470697329268390028955496768843234737897447105278626107953779685686281329763818199178351220744060105319505447343425015176625453327721757869277397070105639757969837331538048032896793116434880442713097460002771159684789826791954442615513318481472506237122703238605539646281942109929316849789285441065572831929186383329346988022615871398139772102294361655253023309599646899671477211859350146397682331745087797500307988540387417447763328328544900366436438185392773630456994306377655548689673664172904591965579868681133503449344295875412695617492578892291754331032440806019875360392882243275548522199752554113855812478365818985090848506528895916280738945179614023845337638467175819782774012336952504813665816905537851033258339381812470765869026564444000473060198337786374770547110827810002844184030351343975386848206564866129999184687053238101917206567680427945065393599652995088567140799863965265857909822463993347751373025383618747194366652677625388659501006361626843869417800049319872015331708862317433991765845841030537691504174864662460502441492810188115665467745268043949840558359005773301681520011177804434076461932831624361802234610900650434430325442332315873115235523543877898748557009838484720387561859077048198875203418990089192785322520650113059914122151318226051074157591180067314596765678538171043892060005348223088851999743354901238801729485237477361400723649667615106094444835082616565145748154519012382974604436655350352690141660430257071394788024945170774867872432867975579693597760278197337927357738943346855519987288328512366294452346537454902341082395066543424778440367218770007797587420189439815590719681216301849176625017751062300387472830504165665504970628358982043023227165809148363622783390844511099150814273723334683618113600776214347841378256127132112819312769410389745113191189987343569197391017959896345746143850835194961662395362880351629873696068004463625730183995807060911868837957520313873624123922941474106377987687231617076862231487047169995794261263012447081112242673579001497235759648944649239354713497996076344658603967129155879956240695883468505974975047962246773667950772425007294106343834326395305608538376235044734285027644592045269072693503775892506182644120431972158996070552418220266439307863838395892759438575785377250026969857252663670950145747424178946210370468257249543685969564564086366936564339595745262995955477004225107815786324583208723112633514281502856447166742693409610570606149510401795425567562637731334161222415794710274084512224026970121869108052028994500125932942504274552005131481346491752399496348286673935554982023421152702229128077797391583624768232939469595788330968052558094179948420816305822416246139428986085361210714097127119023984365917998585515736905624447951617151637014669529750425052007497205295799978597903572257502156333096475370165856736235013916191688694298883461081360999431874115066781177435431448376750538999480840235818463101714206646224632571011652796893912503325830445086550100248566096028083070519181766907270682148981758320002219449961601410883378708748171926875324785937499739656695898688668229697700378952426224623628291322479706029341347437944858129491302334953563902861242526280482124456004626314624337631425028806321524385576799323462829941716926472573301573134016351715784488682091933847266704192615912972761447738062401999525811539788991806243883716292917235483523691792818920119266727724798004049094633767809155506899119171807262040087265352844517031397510251383780579278549322487231737649603108870441360325367907900102956434386140073798520940066466467919577749888553761594004636687658232575615171784528071651471752615921602280229966472231018815295960202886564355983585993040410291112897884450040197745873439158319801174948080256172849986967970588671662188149939192110871989791347299228694129619909317372524472442623616383143971086452281197403746653396910351865863761564106485053840854452459087881585413375466119661547093265884499147066951497576258673293490700587228111272328881648697476020009679176151986817170232864846926438569627476423595250477210010076293984865430515597945107988575516338759030287535627095666979546594873538405902630447571521609555351221131671531631495139193244403978204144823968923413782116332652220219917182051652330536248405732238490134536425793132026217952779203849956918571302661669821317622867331118689651468898520925853264818263225177029277828260919904040290549342263423586477293908559507238863180384939942426676146125634792661038524223835331110155308638853695694995564407856938548064907793588937262112372162279435608580947443270823899182612127713648177252309130233809389528398207068791823392600167101115504030962515456461173030031557987821743367779637357300450301714796158328465301632535049149070864631511150844845655371835606034501397102169476702089649068966108625958542814867876311816230036783560458523904794759410574758132256938764940040572614984487078219169119676110092966733661650914852448562865602178978826044991762050763534345460995784982266483026052537572550901126237798353652886428630918260098311381359160765721707853576817486927617144847993584013448314171127036713265767690579666437987544193014298627485597333870586462444122030973091550450670458746029666306337483460133372169373314342114284927245599654601031371431779739728019402124820873348596440146187688326968736564812509357518922122171818701222757853791019828861254008961852452507134017173233040753588933084519729068089927982890031097431892344311752521230169320157156811597230813358166802948361015570347880486160479701883516768607840982012787257425988007838925969252933979147884069460765364309581458562093724475423978794567153620889523958575404989414772751198416574536988506576076291144412837587512144016182189960965259671181185910463995319826760681289415578668925562940285371173789313144874998875730213286878258792414787174599243895799318047809045028905943474494108923947488285395720087606114498956100599684684126881977317960091143889160345646686139048883534162088311721143587785799750053700823553128727500978673106882310627507205542390731018008737433111643706941989475880865836006510610681881292435633361291229617540935123199538825031669429665081235599853795789686204751674149369624871778299996852254550415608802335290574362173275215853206238584024030729938899514866728004795992980864127697465452332805873238417337345839275213568967059303714317686473668169657925400805535840868466301195649690482407568610726280802926632960987607784718624679499309067869373391589890466853332054014157637683309475750845661064088618699177371952899787319017309284896058839386819689353829162105463628403030413305665128955839042032545127052316280772363790633378244762017642729454702683086531252975018444334082693611453780602750297163422338710711657735382591099178101437986990282901075155854343105623672529653522944689465559099089681332089572431929369753027215001562961217105544745012878394718618957010670933172147318592929054910300808711314379279051316917604460386441909112905299397950061815726232372382557083250406885568849705095259914607412639505250461907169940200268282728531592531562754178382942053760925273873783993602355000471553364633391676385475178882136010032255826200571279088886191873469252481190527823630024638190368855672013950780773158491141095808628237480734894955186268830272176945631372387193101761923769487459273143734882029560164218968021583103295968758145975355809986022923169552242824508126708632587416758909883048444178044317961620202870488749170390074776857143650438205781876150979620204113165542493760665922363035554531451078629727231646592512554655584347227500680291631534895808027780620658288555093446125372490630899474938446508979683617970034933398769289355897371619746204076780764098691390231060932078295497378861227998471690775853175871650925677850800014678960738529058547290903165429006810503494926953976920046501127863662074682470936598639488322901851310576090932976938042213172974380645430899067811395320185735173360975311764055102871136238822293905738292162367852815265695572285659208724507623302148278845117510399943556476732183982328503996984427823431645107266071020163737315467486154354422234267303629194605911370624957075491937614192368545754159694683004484531393422347809539683606435323080840768254958482572875320143185057787839301754963228754136251828226664608451664527412015858401927263682860285820900576672582092625764422451233522190450846056018435032590543475778269364857999131742078967160868872572044126151917248952924316172434880639073030115872872802465855098816880110044764945376327928295518275467546358373961861125856279667034390870738905827206143434666571873987688373294757467945112699848492734156801438175648109502866925675024848937105205879655565480067813715886876454565078277444873843945977452242982441644630145179304893624311275188504638472955309915644974090669680290938352329029628902351265445828328177691542285117548652568877242253801026526313628453988483902391449494279322219564954963859051264429964334989353590482103242980491089732345194803914604308858120165019576059294846105553053509829679116954416056911862262841811469775166302178555897117449277836768719206740562691137646868530520563378933576409265197954072906799552890694599248452870099133597992721390393114160524054481433723980291289897554927579248754807908196557766395805636120460610586774310239182472199658187240017736016506935096525975126145069643594215934836379453319423996178119645858689159893316100615230818676473558444800074558164167509395577297345935433293662952477153165960234406505851484002805908248274048463051474093787901401847242611249113661509715395459046927128786186288258031183676595632744532938832409843127303515639508873577340483419865934928590508267218329007372471256030936817673188439341810844167994937476593997439520899846419999573084776453467294415558647112016788260902939635593791093081963454597532116226696794098420751474879304772975966993185388733881206192806812771328294368112770348156439202887956198999016202052895487660754391988254374101867341066075921224376654523404562519025554150767042726301837690718250650564892998858017684726626280926173563111466195787179393298065823875545289343552424967489729019708756501508110161551113951942091867725652796969657086281032694577211801087047770215665241936821492248509579663729469048314931262200912733875032172080826098303806328026168849024470204782250771731273798300586790477809451219619795263262693890208971209983809988097802156738248422268526724361072938882951263813339838642649221716570414786384818887720377963664537498529076625737846250887295096224015437290699067517111914688398235733629357344866990569291233431787098891962659998652550387130743390980742205373421973935777961223052850284852333715464058229613394123636444181181586700222810244346473389744795622047139155022327452642232485582429306064124593547153332225047639188343788750490513877973790545148325618045488476320473800536595976748552623373523444179280156119475179697263949140370819535582053050572514176643115264538128883247490762267558259986607277547240967596800124574348503835475409781721296414469104821924296083803459045048038782560138593403551306022430921048461729649616271009907975341064450159111050336553201028649045230271377961061237007378100058914756772848868471803207023461650393774011387021771970964839493659994019899824947132366855482629239933594557142781943055945309993144364075057237836939761754283659535207358898251982735166638080401354139744352984236845456265198136642296074580607576477911189655184653538762254634582260904434792794942633306928059164081424236989509004664093286673292527387276708823287407665382755963511360345963034321919226822083404980205465357218796084221761499171854953046975836341057528753556780602731981762521971133149466232278860919001731072836695321177767858173141570948327603338134284858974819913156284457998332647479747650803265546746925102895090069359715880657337458042733298949318216592925267164071255168960920041302585909909613165314103928041583751567323141711434373739074119619719354983038465107215688669164738361549650034152062108067706586257943797916478040402834991200763163167590722223797228248253180976990197321348686231844388356450157136825041721603787914043265407174707676940151551595036636966423742635698531100639056105500123997644371132955752700908458869726829971157739812183139813712237552550315172589571107702339566989641416129732743232317359575361605102917589620874253102702770685348228948644767629948103867821005119970644512461783623713148108701973306562082001265127504011384689179747659012010763854432685282886480088573042869215222052938582805778742257731194237347591984439097375854261175233637523331172344655410266476578301273764432514011372337717119611210341190714556712369360408478636561135270214766576836964301459294825529024449582553802105658071906203863639812018532832590661760965926540275414862053589245329818816793268767561450587973337637513036772735512155560349455197635938273461715586091319663655385175055718241414542226590968868584251264653403322306691429659013686531697716924311520219971457644511859087004538583236599955667939099856999359132926313146101768226539219283592696279228288789587061897759990981634696934248274209664406827175326672995848502105124989976569807952971201534951926032552659479562819658153893437674191069980573413591334461401914765027465798160017644503168718477489497381430056046929204300536354132972380262788130249702171409314970936628132441755524402938461981166790790531136408752057387572532582404858218070211239514952120083202545896363951896148166695774309844889024614598926232773820277877300093574642176107277773957225692696944705752778573917515501075340903679067750961290937883035882967929421726328202926955396040850991839875717544317341435103177050115244226624213290199648545712824005055682593648676116543715761562910888082746816480044576306197781265401154668757132222784055887835542954101185277538090218289089686155150766043256627392433551164676694016555392475481776482936325793562904562509701930513331534705260037248970030619610761110513434757974420784718328758301789871954065923606400039548211671538805856484789629891567217545355827600479984805550079274401200218950910603205294242445290951724979436253977726287899972416693161500346769825783829026509975002674457606483492116427495345750779914439727456149373646603890053194943116584849905228713756610678302502858238540944989262220620778242491528214878431255255828663969331883723907339953570153468274103678220507274628275149527244394828501268113901716557143246525978656993088015219798467630143567816724555107378026134347175489394051287808109034366137826551093900550509067981518885837967402834824324275105514210772365641775426804689814864567999869140362812052043404357784107463777243855115262637188583948220715784901944366928209466344420526717378790089027894743533981818105131846879945779336721767797645849485458687864170172447933594944688641892322667771978196137176995304803337431352226087160883961736005201784839316191964936727652929968785791760789498856936000887966654276643215289637946988321991791973197464096271454275191916224701401851849210611350906339212717244860754907280961247161855686495592005169682987254552836496954393381901479494087260780364573071793416697004300944918262913858582423230804712869588751055364012021365237462352306519839098267169017437769974297924665863746996662516219929702915331331997371608769147519173051686434108657033097839262539841880044381911989608170220332510644095889539008858322708608246739616530454250226448488203377746070591718748433489153856642876466478650421401383257490399076414094276846331664760949512256814622335410773544305339684911753590462122018145873075835603210366416058908361739717788769390341909215214420236672663088860337808412910832432848042134498415678887630846867748428920524790520197972457905011757164341603421027011901383937712077870361476190177071005731951853009505909465419841304901424261076478009656402067717673687579779097263672139579518382816834248613240129651578821588469433051139368831016659938473835755614624281391169276580283088566135907257598497631660326582451477516972353191244167806236179848830364359188698495002672269060879674297645266989513234474935050238061969269919269630416798412721397280551864334632657769410257154659522147568080151453125009850250215607018811634240662593172688555252346955886217317897125116874217872212750565110579160821025385896814052617829315381716895319356132734449679737547476569703839429147126193716535461948748293746153085501956627478742934191148978466124661883660865140243287561875169055734118989794665744361804650965137532186596091982647330289774709466372661043722506812516829118448669708161803568390107587337017534463172084407596399267468111871758277111495360874113053110452272228909956147881646205439332521997124612255019420156753128368578766559512000493087738156486666885312664313485834922654716276435876176310774393700389977488506296556873785492375317297486872578940327714680514429382819838125199062459758193702105891306123605979048536796910422815894451903693903460574961292973733973245494933815121649389418577818632034199581018559787901438035658082532305034315018318770129350801912416740542629477638129879360769486904090454879860839633639233457599602573671700100457121651447268623785305331379117468727258550081108887573028237395750941379170122175890683036264610868793949434136425599152694138206149604632621166418952702165112651771875923835944836400489750647154542417586220476928485210406400561011918444014085452394133945545156077463690638064810693072745081034558124370236955944418182196422450222368628937418359386766033007319085399857876206832062568963635979785356169054496652057852524011015939540433663930849448897153825476131315774351333911308131774776658889856724802172228724444573240411760121624727004019283992373769988538865370002400925095080178428842386898012325997655330962894556372768742361511202302130872993620060745978357262420758278003279680174533527856549728789932746167478478958051013056272357529321278381049975940527716635308580460443824813597937074022014866621523030057742660987055062956217637375774175878173370483632638682328005368205159116358612262906443803940929520141539426133347678203465270752787437216892465871312910095259410797476915501001599351895348163353608611749654852133813538518090740462713900696355073383043506647400160639751168864974340589617807136188715161896302204985160227764355243091092479887103114057614884386027699390154014062967236517707257759146337580422932714135757851203966018021711101416985519130962605710616601963369487229586350745413945636195338347309363791181712719182387150987973253883752756183014680113367089566022276003665750702408036484371692896934694168588141297155624574356068722826012148993918161975916456817834413982191744115450336060925072641134447203754979332481656036861559835748431219205188501633404860688484127548815997634010200398558291579040366696334108239982703553101969626393340288099573108811499034934647818308478072475667358206682598936080553113127537475258352801968583954648669540676153266248205241719348379191098270160211843965416800957237166454941202546541201589287590570743646380640219457907597733285127869029642649154165895360242043183561816471982475715132865877246067997050962581118356670490513162115010302813542670072179481008539576371433021684118122049393258948498013951489288157564081805928901790524764510915165357364985250288372722955930571779685955804179296957034417834028126285525636063186629505991003579180024706826583561411741441143377057581553670379060220912135239204257476305347304740362741516030331136677972511783665328717208446854802506524225858844954076587178939750278517807374831213166644867439567802876386293783310054486491168672576767718652028575427223841053875673681111486488701409841014244586209824629911849082891394907685289354419312339565530416174511818738394209611953142865125460218762290349692335655631634515359053552547489132815314682574741889163959864797564368630947446456850679971417922337533926899372437469120732117580742134730578260947692617760488986836467831764247473136754388678887516782270433640278358761343933642805998554227196797185188964428156297514627678241516506255403627038001277191354094967815685102565490919096744482042841241213460635790081159377404126797760183770064209477395832256093045186840032418013097214591045238206423466027139706581176798769037088472239506097897902456616717533868259773097119625253264298237785957641686838054439272087645229644961225194652307039307967192458020846685470791334779335175392145308205346302831614690405497910491175262547689403830452932462182108594976340097381692369087855112398550869388597107299831013913096733894373988571834527420670159570742307089228938631159532123363415711651081112793079111189123177659360767618001503696528629994276966978341955219664913204538072540073497192090208116402828343810448184110260235331422909386350266628233603321905011155624344949229920297107754879608897829590421941634071353907484964191164099743290161162620986832937956561490900972042077741264197726390515240632505117970586826813607410211481008835549567405323639391462709596839438993051496254375018290825581892420617633943543309614031659701596533675633585869667576105084843917474038398945693196409912614718015975025330569526998336291755838641437034971043262104082942310356291013394594725593381178061957475285174475112859720530363183746866008912467692204146147159003908333333139938087156704025071463652085325602530158451198069476465614772624843680644312106063704206583802683684628738977287539275395729044554782383468571794852080346068510612629025529580577082942452695695929340735425611297204922571848240126656076071842636948568784312225837124875067215281973260639173224877462180063796430462061791663558003365731520221372399942848317963227769055869482149486129999132980214143200628776315430658260997275699552217386821837583196615533994382444087221797505923354259469041819733818926181721349425453485207744720529057798321752938351070528771019253805858851865924602328009991150929662507658647478827977428126127209773189067444384315661779003410096508715627411848032893769094644580710024430072376836916315633463642949995131385350528339984082193902091461535163379549665673107094214271970385012152103340652986190791927964255543858401356606539176244612234333025641145635975317704156611306338302257107467703738345330233114371081820936336729544905586774488368755237448677790536022678177022416418294529577685233318637979270021502107344290953861381480051441784560815283926556096363490079548645570212245748545925533576786916967874857244232652250288632349250423118946451360554950426320851845933622685014302550159752489298757720410662863992216670126073487249235820598859902925269232889310397764929313455636340103938297974172174419991419402978879274863280285952426874902015244180005828300177466879453126480899050386829993110281752930901202082027591453735390212970774307182687843171904536935065665544200651078128532864126900740916755015057888325335229060627784711037306348949906892128162220453856449701172047621910832863497488355850082605436409163399155216258931980969214436012041073986892414396840301808823164721374089936089694132239952996474288696018067829490944325686332038656397810138746772413178457782799340262534576862182587771826065715850059834561044415857765664982871709067732098486348569867007434238274117157869262758394390886732478972785901326696842270339524202282741467183645607008918185100933470195149075808668934828202682829401738148696699002136186686733095703963280148610233989398600300822497172819025199968522983772506329981928068771575735212035495090760153689882343218693246650435874860652462615221353009335440850980396701363968004303731720200498752961413869766764608901124154775284182512775521607474496134905272929196719681502786223485801909616780539874830393960858630603969549480422930669236750780715608398487680536241439579284014198997396858860508971306182874960172367827278498237459732822344820449832661619730432022612038205933073157853167615793729653886754163915035285725757340825275213926148173453464633929161727122873240867962158327483842408606660106933401541214530354120315238129694360493759867252135474168518135844842771072487280723336017631240870629532660380357369931585738002270603922175674857388690389122521367679988785479349092602294286231323572934784377637051256561220460689278976134556085056827415186631596463056778459493872789946718658326037292178092310979231346385303821043695424049322851926031044794475876956667526570410644497315899157915170933322798481487276973392484611230201824551225895063594096083470172807567596715775719471684271727811478595399163408571709568991003484054760014519397337368333358037485482414868511637598045518544424301194469428204012316592970661348838923742004289692937176975046820745839912423587396758221691976974660189990159186823467582967590758953250412802651570027712902602321619513185821288853655029544323149681533952672239025194650889707248244059327407548862079932115655639886961021426287821669693184797547758013074020872121199852003036719584924205070591290312622097065457530339256819748733626089645545921507581002353274765706772159530862451986851204435736652387815931716353352602211968822332911574384305780874204130320022782505371292677836666214955768438275409524598530152224568814472667390967611897006964166418873449801462429769045656909821811041421174013573933439664150805361127922619258130655818173499395652097781599636172690052262929697797461280243495357022772515853594019411507090537050247382510957597963162793390485383619707301925293075882574360154633426431528831115049712258255529808218108008417364234545265285958944695933697518934739350174043207728246948358456624649345034005525360885536889142097661825191787489411849448816279261704134333921533385958988072520616869330503463560983320122316899294017985103371716741535601850330529247853965013777968555435892599488990760821496596401852644870765813466183176327694716730330847488376900747252385765074378535466604085787734731429932987535532668741873695491604925164610954627387005295675772811084347881759224500340477443881801858961306722753874577345388334377492006147442186039951550299181452079444032046506321580136012624466125765545902670004991795487906455750100098979481295896434185970239407937662749780189837111425069894381167730057372851287812371036094356488348950099861585719129025718515754511124687263269262629787581500109528690382794105434572974989187025832821455202281519734592862514909681715671043565550537125726774202724277946989297196262878738927776857776668608231483731832913524672328908057538188474176633534193951870123939856062600735164724881726180029464707827959907872167414747741588762269679414850533500046066094941795218122313683444955156382636717926513840556080617152734278777323111184960554367408286362541081130031945598595732414206464601996189072756994970835749690012647976042551533442185181606539761199057558792083254465207730866041412895035153292946634176450094891813953827600220626352053838720859072612264018888847759733228572250154060659402030139392784816690361072554243567306195082955417674190055132631091626145018497931213161944777317974774043289019646624519222815697953532030841307684745007086309498288938986903869985645713693160656637577657695477707242395089749536305599330667404777847614623001222282598023417141615946100185057726824312410861044938603454030140849117833519570551287133355692252483620582332545819175798052476421796431259392221222449683255785067755212106744751374794374833272997796971587161133439497272755262085800638285338576457156620779891222631294871750614819698321037956219300041375211824749823969772111530986235276369182240143314414560454579865226714297912094102708482645219376610061131859030216922126567134688006763180866445881727343277320361508566653872970519346040780590933847211518431591868523179233472351515902538312694299845550127673482644628609051007084803078175936617921021177582781482073752993680869156428879365839567737578212287391532940903142488446654702822394642123091021112037750654445830189033421495087912516102097514594201095239543488315646795606670434944718681852939472997838204809263529556658021363222377832421453581230971666229428864895817484940814068554961600146148428485295932857291411011635987097636452398146109633921595650864712265321509344987250294667176477667057595763840742089712413498695838838656106528796380206913523515323496372343953906154944577147350741490017113597835606240025220063923845294881856048378735808692101982077789891417214134823585078073257342084998424236944187957911286277179188807842126830836090425949739598906041104799360575477582572575788336959599864552196982856381074832591582800307128138702824792256406627902732615443630550391140773130183340866419685234754358810584548933660698317704315505025928002974576573155951907731577579852727282150356159392467536123765715584961235940435534233943675083682549306517726077294563843270221942733553330920540873401112741221761098210559379547923755533571524326082846575169169443576123574160464155064136560125166845566549159267179633117052230657726066150159285826043721654872034325788839105377527426350853343004188995774977596898208319029707773182248586768110942633834624526794445842572839458929433595959999010543793232599326425627700177223814413112316349451296617466388133611364981029989209098066095308738465850464298644565839774149668569790176775577124365081887865692194764164995055261300953300970878197717737676602429954891308102133084496492064479212660191432260551700236338490698563270630137513996739013542246337329220232699799945168856988888637999883786992848558816588112851815392454492801474096123066720108829358570108393398423838188851123243532586567086405597397915912016233853379003865170536865548642957659954845164820105524852323437055637205749434209655206750389320572946399203051130362278004073285820746986511592804190452086300282290366348785459043583262107568630075247988028658299627422804120211164751929139758332257094446784669699953330988605674829743568633908814281786221763983955040656169805681704822091149965281776188644302280371000143269891485240703772265967722295194076586546047678162475383288447269331632899686106876929113988338909805898598819873435171833737328358417814704296600123999959074527950632485147463120836844410643123763315665880594175456936580764618135900065039335815765983383468434581347314593211421352393872605428320895953331956009951166769503868426635381291431645429940587647629923123631414435272853124593487741146911628302985964806467149732333105855414603136104874010995002972075633078478694260753262765016685445753689885692970521240413865335241520581088135562311743186341333728764964713035941454673693865706552482772713194943816982302608023821505339402141405889484371281209048264910122023868817580612351215829443443673425616587896543838098754943451480489751253094600234573401508947501652401576704599456144909265043831979821526862845074090923147339075875482325784444252990539489311019230199834315955278298019935439534833904631961736778780246660834349904631350212983151055744917902660928099819314955824006055061698378678073955745787220064795011658141239417087178839563144874247846755896654689081076455070793147721614287411132356590575126252422488122184731203695702042559783832771546671561882939061996818715643658457242119922415438009590569558910024365475748936926913059032774813568716167629357871927419283459576102362219132956245991143913836841999682856970035029815548364712488999498709860658285719583087529485239930843587196145159434502556671176136490180222645217558331346391907831284758249240491559716961213943178492921253925675757625976452482823746786998278409575293627747821478781123266420508918129516137798136738553675791304524163344356652785186351252759295377269549179990321127025786861536338980403696534384782371410324671735285612338803536985837019250181590651608147748948448415036264631849567953112712083375142231407938147501266368603318729771793126977531220219883408712842142350316982539018647710253533039328062357407116386893400657492012197732596604365221368763047375081040728254419504908983680642847616587259143211398583563874219939479898229908722800578872623502623136395757185652511811901001201357523080976309337910207516270729720333266686640606285523172345393257174861876980651123055811673290387820824546907927043038710687201469509020174920338753789826084271856668515321318226035742886454125941982202759114805421465113179447956748530421350390109947755513276880573885483502282778005876341449322720712243997763076599221718672585178285539368802758399052456108124764303379469769329227234446565378158823062002061426219283954514680066906735078833341186671465379555313718820535855109579735952230774772834443451962463196995444191145365447016546367380618921324184418923164273857365347187601157211678893658810152059237913802672276179393748152952174909448157438584604489372916724791009896322599627926246417862969703537953308333614843548902335491725691693273090589172010435123273751728710468380248443647151774007675134020812300263504674985355651919688714008379660783344036563096247020524322749935532455048664804785804382138434666816064420369194280764847104427082027318819334276645967887745040659930209135749516053358197796830904705068078104969651392162746646405875089818629341675254798995251529687107400661368973992974993618515861191615031057898341483461414457569607492206813939571820012253328871995281064485040994124716064568314369571074952313282612509659753174116528687859306872514264628203738775685692681380301177948198030010459361005215465861528065670759512602188205006622734870554329060005946660905155097994283844202407720420536580124357077796234282234604090031510079711255816022654719442991426793913834073259945132200948743485142055518826835539915794275729844670110224289424624066108499239282514264404905725159205196112990503003123945448893586640472043501847386919106885340160819165884728883917052564999355498266413207553244949019747903694032832075102848854376496791853938340478207435142060205519757675229285976061293306762285093059186074584715512416424681899965528862361307069628866109891121193474875119053504822576846013018659861672067962668859931909168262812396036664038932766693765469960587106577250655350871785046397202317768214883035638225310138241678414424217400420325503341604210251817114269158898157159885502518055001875991793989721819031964993491507372554230758222384846536486585917703920868699981050992669461776829305996645897652751727142631473573106549618898348935525628771460064782718830047463690037557299629431812534583084877884603873029349859519850505721905969273270142739572628884876105837476404951580012247163519384356166580276041791688888197600562674065118320209301181070710845273590360895975903654095647571776362755464596640392576335166370841217746256916242778459686660963997025128343461310612730475653600867454264471953931818625429524498565830578100047895437514651220428540766791532009318537160318599796771045530190241732599076118490197041851073038740982404074084601906774662678920013045220071506876285412340713421972881715942340107777253766023776360678337117484799695735291249919717908150450727101171440745117070199077266856959659980774994618644749306345251307072528232445662259282954670885335030756121385944215139428362159606015853036580534005222327881576197113269482673673412820639919079874629250594721603789485774153760601323804996857442867667992722799221344428341488088485660479018874078002277701380998095571004268232736505566954490260979359163629118530494943089036770507129645827883972182722524672877093118580364227005903398030232152103832604329106926270054162588803922568388398457777123116007424272995628113817859201410659135875662209915495584261918135334655353770976173274201100616547650812219815762286710708334775467177415582086153761632818428210770302079074242194965501785472326721990372075156684602045607159083575306138262036347378573532722890264441612563140886790804244064828265788948036019981498599765926500154898199277887246570084523153308482550243898631944436007012512382563137222370653208005793371470206698416525934137350501273652427359901888825066709514654175469566289494378926741212416203387986119516608831916728371782867844432388130471087339037294527420247795788867214590137373955796809438393075479448589601954005544636587198563483724763894241056855733888588366636126746706220006645994632040591960443366279234650975459991117156898832279296372054669841913980878464006973394268225864150151699476797376666622949286041336846484313522245795705129898276920988914884384201612340513688199245032834551113775748628598330227122610068790525500327154833861162900019341070740149260454566965651943884949274388288697229943622602977866506660728750164989167032734866499689265379834155786867911250683759044813721264151709026206816079848117225170552742969893597743735047405782376608766739505617581657629903145337701596770874966782938053282637946546323750508931463628157730988423593966783906939405007733120103215589849137418106846862600673436318657638512740967163961324319496128145591762769314114755612460174568308873965488852510144176820395773457631257030530781967512297757381925379985837324935743225035851119002391021847439548203404242956382285032414299310509100213894364958087278409314859479215342788402298519998866115915760203447515032481168811833568877994854784864599915481574598344302216810534443352082163982315944335147603263122566843956472439367258283949023452811048871074694101992745628645094408192735609681257759025501678449322568001694868403927886315896126425711381688432782813103436095018962084123557487011045331272247795830069038307974873832402732013479263481251878211384685999270338944833810730318761452504638304568129986813262123417261769168013562274640557592961966001986547044335554288272195100345814008147142294121309103490941451522870752287447473672002428761314258374771233175830577637410585453888810260487821213443822190875947839170783380945506230544626174434843832120468156038894534305824514094225228351921430883331047665758962235185412302419823047812069462152063123051506432369550380624382106123852364159784424016940321041490106837294272877168432831882226446368303686149723335483939711059349845675272105315519232673833438433270782431001576470559869262210053782880821370657610936952007144799363247618581197314200655964765221737626866662888531590177828757902958473794850244671977270759148464861815852527484603109111293914007799244120392091740093833984801710641267382861535317182032847531963191188823286208876555165239289055399268084960068922215973912222871551380368086254514157003128652816962635776273640612443141226659843230997995619621962507480376838943453627223022929827840837229102776574666366402806595505975360976152712038690763888007982706036037795181340408759658674808793541240697141182663015713222828810296391700989344402636585327917402228053259902225242336803422427625269562782473118842511235964427766323982733307552995278955683094308865122867987762202297501456256887039600176780002612518960681438439952879659540142449520326962428569879259185663787822923932502584878549212237446582361663630361178787596504774179900604694297029815414965926883395044992726388411036983308690152636813635471161672640029027634223910760016472046374910148810765069238751831880401297601145873947637582864235512918248398802477533692241197757713991230930691133533431753389901923552813227854117939552265169617779737612846396442139509010026044052285444053246122086224436270450149157848878498193841769893058057817319189303024079079500637818245944474047170839851615681215132960055214313660487975234145426547306013468688177249020821250805442911732150405555432492871192323379368097728914086773214410690077334667187827567738707878762691170619596392180600620674734303129868900543970070101528162584430636504152514241425746987778731288206875449319851140345229171223358625530482744510711485745277313364558089026804785112409056783836175415750660233878358671552015020339285986686556629093842740251862374610861245991100389788753298278877272357227038586619121962290177663960591884793868303536292000043251215332642014837714766498127367202764933139983495710741828938748543812147077297923553166456492692303898184270486804666973915134519209490706697657181934861068568896846333927858012469833359893610633356805687541163989911821514509370754653080931483562798082155478977953016446075450731592943944527088434352648012645384574262857841333244205815888471742864397110391150569275899888141314055605596606472554917962226976514561507228345337346961587436426470988783002348959797655727533806854331926162198460313910345410849602700773507233412110867801178114792917487603937372352225311376598623149796863765340133659572701740270122258784672662883539743760344028416089534546638371707949104835167838558542662833014059912612228288834087825429108537346277866801628054316690444920128423927627903050881601397439033613510867828967061326989692600301529175966770182313629262307476937796526478881312153048675011179713659340222739131323309944517512996855833064019593946062087378970166147507738450573764540802065859228058348049716544083178564050749481133483716309639152965592832023400986298672992131072676869742276547339848767862135944255720963030124219707442716822226654488329579261874880741880126993522838208186418876878971865426375377422902594511550635700266248771393313021155262245974009532880527706473742178179571814663628219194232532820776607890382718676276025913361847932311505511477327109685125485665682541958033403970644607448085437811695143524098387773456404311154330426517716642397671451567261058784426378541481405954818388873697889841789858441642395600613718375273184826914829030223944814018179952305626875905611662874099667514085870208527455020808688617284109463126911412784946361017852832486713229104909285428394542189908348360620101788900260897481713031241465167500777398266176852120213483223378711015351165215733043785260126008060772804904184152764795647163461563676928695843003634209607185166810213581888556961042034358045803579998827215945405438906602811570845434858282092454971718396698989540532352085169253286613912813708354765591588982193133027215801168021581490443298066029393506888887345798433208011823148778114335013481879758472004084129409089389686802739854671483584914972394273299496335543857409828874577361819372363282270077019501420662598838459615953570576179987864010755962952644117859447374940723057019205130658421899041892317035954349927116785582078905286999121768408196205964559561428047901642250000332826720202034642490555195873766331486756983321750466891286603698431954115085267157042722884482840116651288345841577424738490217510291265893140130137471574561447468606382755734092915675965373662049190759809204191948180732597286203590197337200928073679407223371463887315256413740781515837032317294831053273726901013165874580226340497700826827475096437955306644693960408593097317863244011948113063134607896686665991319284514920039327989050632624872840520220240977732033864341959318363139132977383485486097558971698281957927813547983898223393560741144336292669459809331615499966273055101549030387523545509575936942473116547049307676039736634191250273880139639058307714239418552781839292717856299679738185582575150856624040375716959084372569682902890978499347892625512735142366539913230885397781372180384774172992587633302811908815476932890378117861226364311220046348301494209465646411438829365464946408141662495066373988088628465580118162125534065389793572618286118736063388577905203194508619558190828849304618945084700875862022677173251345331656234816905575109799178099357671144623636362072814387734647057685583864191669258811328850885731115749219666408509417589041685054692256419082962080767044916554280244910789131250929796332896234613976362808163768986011374990080377273639657196246197548486110390683599150944852523098227283615938344479435804007316531281479347625006765018508762497603030593739338828167476439711240455943848558072438248342424628980675155778383156521921938282394216401133444941490824651063009188130999012216634267118364224973102309158512603329550587451674418040068750945127126677558313661419932943240424094305684753809595549472187424132625390414197342454032079198887070064804187662015024348764936719595100821307701017914886899636435829011082211722235298731187589480784265449822938351579185137579200538694966824427384660598574734358677962339198839140118872137482020003199350354259814268867372803070574033254291525239619830851305465777692065491011227782412238455809562289509573012523338482608014523734241128362449567092283392660236107160263074358199028366474222330627973287191701146933921330141866457915809448525800732034854966662475239343003451013982590382146107718833834359856735074881733608771322184162888313560030446897014461213043706947595190302749364225777565768235383853760226362986480711788287038589591982444955014499901360014599893561730601410331240262271869278787732720884049666462392685735235658213840734397729254032337217834792476072706862693111382234139936461889500706701955506829545637562588405814909389306853355775719438901505153872893904074332911783232739830002896851048572929787703628043808046009092718870369677901928861371965917312153427566015969166592692854557055582162424702209996237719644430383232691970802914951394933502908274493770029824069163258100551726972861276323744088217366759558065529348627790234550328448424895976455387769703126216775288211296425367875702934709564259680893151166825184059480477720168533728301296961548467927617244631725412543346254414801499488791719468024333548123414449474587504892958263798312220345524883062625524224201048022632267114333851031404871750226197749200508103187460142251545412229071289889019130164643836208649149600580078246880206770533458190046582661868577852437576631269916681463057017478259972053736579716452023026068383489972798256424364121326790395995016982100198046091939461529551683388191386741302348452333430344170353297600329726960103085873001798591587016768541563861673271586708495194156625050942584681094366820330226309086397484703603758104465625894149158371509680146335406207032365363963822513746467715180060142254121732107820189063991912007879755675204525044208587736369415508945397133928959084019473574572998943933329865733501401110991567109857809700792840425595928059860102317944602004645268199648085661917951303359372960772423666177763596218866910651539766272619839770364961334476770259086619838835426308582360070879061570648059591281598522762986052381646227466338174917292852318189785886878052366816125142575180773804967641686829019381575346969692705249362063325569501831998340563927342934208505366610249651788724983371329939299927231998874211245929397691064562985997739517976457329382624975489404305685097080232832902879044084729131124104341147951660739886659671827287316016195774598397656322741343235150915188360451967544220745765180294857716227191696877126761118589065399819643063867881454167098448430198301168660830688770976225137154155430858950352212872154479393626587889146606151390864125791689709123693604292409748900465657971355346627643823470606633278033594979186729829572048122503666517046569854483637990793828834832315364592990223790103769513899004264131077287924302146035868734813391374394419839474818931687515390013132846139357014614107758311606360933542830173955541880182106355997410136411541282099948301813026018575519718455173189937972356802150928674982218109606658043286407844341533269118212591738810997936788503164005821823064560039449864809630397689448510649529043506309174594007635379450680328611403746967102275549350425257660406861343827015229848791594191904441236329659561716722151784245963960019110536276203358157576721870374353595085361901924562793153971382177710446818095154708075826933847684646908257654302714004381243951952021127816425709348007704551938249406978646756860884877984310631405376008036133394235665348642937996944276504236481447633513726080463198302545462403341479583543956500753075266568483787925449381511410206787865577557948755141803439882695268680813462952713174992730198355456100423295484749292144240307451399440667170096443360426969433207735138984547435990177462456696169643595387208541792476505022971330423487390530166013760501101333870472846552792581899637616994104808245519579124276024567621645233506730702314437494616423275146877000916077794854703413915548892596282908926631934834885204152208764651819384881467759772255795732535373891508281146598479005773964620878674476060780036162472616664062820636486882079921438276964679688513582837514206156623574229232896841201851189119822221865179122433965335990838058852800083775994083530129575594423826929892881353375043339753283813114762529007048323247618841465710533114084652765257553415513387291330933875160107911554422465395040838442312426666263474400655212864562104636352395315565243338892218685160370868119956812618986879336861051725576499902843164377212200255669260764605771227200610599133673328085536859208838215393369154468887864605437542603323137913471788254391063705175388360268595610543079677814324570300493927451781358824418330984713673513868997149507389923206008980122989139125501050092640833942338288906774838226134136504308010595270797562651456314011001930942752090537174564144191430782347827464325953468560584145951779490839643811730841814440625026984386895953780182232304135289757449782288815739854491303923489593978453016628297522251784405868035756325492174155791897218465109953560251685278066015430872017800580475436038235977070752662223913747941757290515050091752702799943399653944796025995225313710755409204993764149284903960057391000132145547166906138855019079556845696391909087601151500701270287671610591851786615421527275282086993391589348639895038267308070086747169870431970273273559858179358813643202747238147453009778151588258234832934908534091689481236167401692460037984622993152148958090894864898922423464661020753427670559325319377337263464198596130902764429258669148801730862556618836930170232330489648459920702724794402070002359884397322866120946830697983991961133798676852081163585803263381170406646784563155758630616334320179577490039077166988805758715393831943849008757669773707561133375877906722656772289103510927310971460731895322701073869282699246187894031246300072848976657598845150619059255170009809125425549530388268102887249260778962770269267525579146727113520641550664525497751126658890172564443348115134051719404537579321984055059695942142661262720896447109376551456502981192265710788221523979591337178452649828694747511732842346710466223541156319652535791499499990537166516295846956723649067317771742190261627719408073708194123356612402089889338650481782771952319322999163258816114734179194784568405403951857443974811519176590097898833004936085381542334471230849559038877605924442364652083549267860749031614919256116467529266813925792004163462237386263337576899786250528635097951676713763559321219667981254686786216348867820553312468057444152587736841758169048115939124166711495391585734415638843974575646216479614448002435163614051941037339846593361749084578932924921363893181281701908173659227816096489369951965439281179054069751051604143829877630015086674603469098282156720024096670042337027683191241997599315944403744320430537393147536978722138688867294471744810500892453969024330048920572581165483811795068259820911503686963645949806364725941749131157224118053111088847828686127202593345969406256246829340436715886143969146256719142663466646010601065513720439107357988183849637379336542495577967338846204709494827441785815931991882246494720609425904824225414031750937359487063204629769646690659600013899579992038489899760157778907264561948541394391263597785649372753593657676758643526883857528653958934573985119402464460272808151456093871271873141843498597177666616515802424959337208141617225843990745704268641938434790111055183589822886114669074746397123910946047578730066009791643930118521412920788440152206199127765315516423763975603895107743291550215883122930027997891411674645777918209985861049074813286427016227903773870109408581603490877308009198246300213819519679403043270180570804771082069137614960065319026346941672688787351542663598167940107975916991579656916406507565937950423814218104468196403956124788728922653444678443062605926585276188504482966224215199742161167380560324083160770692058416908763824418766542052063595503139748295457198698938410015003412983283108488087939952341499134911414753058056903916906023747218654928593100963746743013294280845675173022627735626019279825823083725267899674566772236113585607258140650878781297099635975046481640764307493745502388308642970825098884499902990324176477314648939652147661515695687878587002715908595528033248128890018617798596480008295348188043164962905096687647102289748079393094481787482068260377805512051761234990570931662103522836694301908704231182952799120997040468909297109817499918261872923963359468566645521915019519696018904329804164372340545061572475084831328076623318984903811645689369861562813356892427467298976255585331398704298540793815432722261104268657514863011872928495344312714075741917106157972700365363930996790083886982633138272553165647144530723861242963331788872312449567321034907603770094997901836142093600327607234209248988020770318521362707097938127274557511602557280763211063830123610610533301881036009736494752389484646897448809135761746554216130797600340905903021719425394284447109052614885622700969938064949315290574211643554112589261304043365655934086315211058993169163596676005198308778672953229458227244168041426710573510264343316450318523125566349575504473320669807377770213133588983327481112463136596104973462665559140849319448472252102573877976283031350146174033373440501842633465548632244394721211801177847157603691793450222225522605287968699945359823448611394258144528034371046580636733753529073411590643777936465063694838598833506226249073817296561234821727182002077109220604134649331760329674254192095498085313987329132326059852508524519460547466268966013327939135719991995663511195391957121285508852565407711150960341738746572889867365996436072614199196565777520878991884497508659386230504613246764290219638146678109189824810891636109030261844055405733351963134829261340525673358334690399140684427753927255506274845342838195086717185601055475908110607755386331129269193185637962176758175454528882183596436682508943925816457901156869535811694583868710127066872775479911439943418948258894942497216461174095033216022391959436737552993719925070391752061042719142083473249579084259256546372425573895488269052171060060052067506151883788899220874010692831701638569710568824705914302817580012009722334746465867249709738657814185230321817711213400391486101333108110843166425651146825523014087478173265968474783386002307141577826022484184226772300893517144333089164193099368095608778034815036864647624216279546659997585347106506984479964969897587985434641505186654977831277337688872518428022156414585955950936057139961318622555818136151734974153173124517339044328769382468534213842371910251667598018012458970455766127477003243040603464206303029701876358499060939577773369345390932653742637885621392735249929029372198811478205763734438642765812632667000706632941953934524470420434085457310994999226242396838902517993771728360261174818450489260046019472569539440608712381690609563365025743693606915718907795574745432412072209392592793912588869633370322363529245454991977258970902777719732892899352339326077451747354137256869168401634010377829328389506050055686989976338524130969698138364716406435486878720192645421388457988084639914710529600121863038827601589944656187312382273051620894998321573276357160345656662472185080201151291034610174274094654311531032198646536119254528003775127446501193595594875539179806664180316481089854595553477027701537185152319829961696249107504662733811222006938912927016425420973160486542286848501617232569991662130995076252641686652696737351725535588965298699359640220936490720242969917450646221249359017994767943587732936459298318969155731830823613633614834479746250960814504579305114000068261756269498860325981219105399958853949664606148299159398821948100343178473197302046093586313699507752668504124511413981860683540215209395475939578630435209276991983264883876414617540518330567299714924735152457466626722411404848226978422955494645171717668694593329131638951421839201082111241165371664487229043685434036192968239145013235977163144267696465712384376727281657233097140496338414959928931097447802989790569446798343522248830124671692388480072156280771978597437503904527615879966126451033523316634807993857368552500895773009244971175481757756759684892337127112852989557865267564642725888199015806706490767569164720185486015785569264289120667443408107684453461657802470756663948998314145390485381308125477730419031125214796899572145458980427956887094311237035875707879829845156638085481115526437455335323585352604411192164551321139813089620869069678321275368370375881591733509817133465853200081801614517811568927459697452489627826964895672602128790462373675027271664665010058296605319157371415843394596174759895809694489830124125725692806532258782804798594536157078585313871381410072033385661120338337617250155506383222210413127728409459994003675537683168257980123399510173002253521950889678217644128794431359536225466906200922772163453559834222035415929106176330730017077159708568977807773916291012366831087815058789075123299408224740717160357075930056201526141904680785599668528293254999444104180164892836266190167783890927431800670938471948104050057501737369882556571417973253539725063543288985781436989885040711360772091685893668272599544840815943211906929385646513130210340067199351614477941733132516444469526326079905308492488666647470555166691708835202025462347238441236972168629246404440932636396709608903321645082128578914634372525941957897378816333429271406902732296184282519623104150674933597224634211391063612882509930615361200303655956710966561121296347059253297684565509514809369673804285189865666335447053677745201806667702592252404540986138860905919317183880101057747033122235179511427621689989018237200386984252947916339892267009138486861470172115540891813761910204130303453529464506384472997827401340354757143964661973631280320839033370730971616185697579333738487650090808850981223921910964393593069136279467233095053205828899147444060320239294299805115904648571920634278928856706794672598054875811202939493775118634870533180490484152211333687600920492929776423076252390374383775158369682472550953000831657808017400094337638239206411106935712049659988866015054308384549700928319367930733878960144359084841579604109763352835538065634351631631706160227206139191506439684022358194912256045305808664645073795846143255115124811498740336900798521113431422074006443468495978924923256441730811754167228419292836659642004107567905404771425887730570221257079552805824667808661016283500013702626025837884460517623457885664103503099450263057203426237645927535645684174218725565773866995629060037049730276102153485788379221265880375712906836597133475911111766226934891275578856373904053970524333197104396121433490880992934593252714282396986988463757127557420600902541335951404498500020970989612456530186073051615421062132527445417426031686312470059362416836616020587013014000115425683179778327205805069570763457161666225711940076247352440309944287212205518108889569211563153411890301045300062364541651931550648746452152703087777967627013239805528984851807654926533097024445098516613126864326437046461700621011558180648343248219461033676647755937285032247601364307299959817818440601283712324803267751105070775129330761329001101920247490065530671601727373170780414141682457821952453923050641948518900731817846480107210635079538296281458641449601383336750785841954527272364089038469998813537007049894099710513439066933873225832677005749623556201242203131420827775887434891126182456086846698119378198693529382364699275897610453080016273448586050679527418255923981162556050467529289510045103784198117419230144793232017554381879908552764889419176702301081656518018221656353360966752266232691595233182250519719194410199417984240228997284748371731539009707507132388678599748926485456165786979502621042797249954803934775609539829393977277236802023180809892314134674636292917673383113496069584290401653589039263358705121202337291833796757832292469952057585000985453565384264255151707549561972399062365340675798209172074288400637443633242670707907884011322537195155302778993359052842532468060528587382839315352814337565281549923553606271398158794386814260463731320065374573693509170412770756424880450862353262428769806220131757374674401250151579110755546661985910293704878494692788337547678232646149386769807117102478430271661191566983825912095197345080725275551234169494801080521101125551216822800803835575432795251095467073969178009509397382699303992414291386839605000502350772763719911922425035178862669889470837074462301045826473104281241601632175873671791073214570726475946593127737501355721870819010062753329766575660239073143191306110976532317405273105122865121129621124975140860562850010225076380917398635909001292702096065536931545830293679364765799561794042221763980015463421995367805548320615027985163233582153286947380622236868427978667495905049201601014799024195218651762111055553572064219497442368304531616417616424345364352893886939409264428316739064047243030213450994179393315651339792755410650804836615306789771382503974316127620890294215702577593100412424829270684029171161252709948278448862819504112189030026833085272996113749320415788491944848740861406999650941764273385933258839019297224982614309723045437577504717852272117883283641554793153929845626379493370471508693025916387914622411620995869761219619890921807433976187155298646518808255492250036443638245876994197779371091782266641892864541929822085367512705979675659270015304633611698834600700839192357840260147329459526968911994560723932070679458564360377185976828304418627062510669876758214830816532023057162724718583034943321388324005340821646491002385074974294376119310087976842354395343353734915041770467157939221082190051695572518371945609390489180565492392575250159397191575234186406294678782228487419527101789836296158450412641925763322588610925247063648842930045591874349124875537279000344226154128942345127886380650579868851846808212031599851065917776745396137970900988728835270412591406214534676978150488788889450996139942851115049250368230027944538239858687947135429595175139652560359066523806602394330625487945032706005972676448687896971927507122994718654427028383413406931037741165756907830804506244711527957152327851158541221793898108523727512321257457504346424596073066140162226843092968239166806943030273861520305060525991487260454958144336716334000399476179190716290475740306257113277347160579402582694978148421647469219082035664201500616929932108896667728109864695786349435198479986807287339640650108075875058509865790374566017558023844204051847254636327231008264162453766563973405070573786144334128137017043318879178311870258182716647632869290684901845926052787258990808068616077261698452993412810014808157212719545197896398065284349121663122678831322992946753900480495656932545489108954124191188907180475953346550200113321969860056362149686373585953300028773310555949229177456359041929738141760795442630084450795927549012310446735580760411049144849601395155061759311313633638285568441955675400748514601055934580001387309608490901643145620011150797134168606058607710668226985329656223905176657738670436559742101585402142799536982315082753906161648592916927865490223831833790511073676544229255947291300984584642044603176508445643719236593495728947813302537010132927094554168938830155088749953242859061026132531916091151167613750090705826922508579881259551803201886716085455524983259974853098222267317997813673909091893544108645287181823095864776455275202688665621840528664437708034208106000104412410619757883203264428300006784110769189612232192162578662892018290983832203450950621520245402459806534490359303118430210874117541149449680643044440492886574370503553777047844497293126582476429834772564193709721704299127876123857551496481901794643123835285723665982869727298914785725262752212323030981289434993087133667194065572063914013787253240212037623625634339469365659120461077010104903720593092523754653176357549157562363011478033786226388384651867072256266618820682704353685763168247149849100942042149222958114070285949471277549174364743497217684694782047448111985699350765617962077476176224750941579820760123344555769212328938146647452051765386167540147924992639591688596147738557884316024874165645789224497489525822690784810827492232323184789162487539663051499786618588573475361315573617888595924704331453603935770308087972254893814456210515742007139523841715648699351338761417454825576249462921878402386730560593839151059414310927300202600941620650283820351174593587595814344672861599013108025322778958552425428660413694062179621636649259422233605635208162128015420100569491761824724424002882480803853205944746783647053344882858194108600718858264763275976320527626835333825602707653419209619895113754568553433075641364656041519607760800601307416132360936778103840611973781750462048577404071520531523001883098658768938340994685952004570656061432660006051278911955062472680492139879608113481311759206138524479689539824003066088416023095666771039320761991301524972682109974882955405039995151482340438946542272168946210232478087675385175869597010464200330022147267425896035408922639470325946563145711302857151276201946602455653679814555437430146533434448875469963529625941794922730398321044644045741856291742360568951701723663205521694668312907244779517716225947755925838338682121526573715515122510683020421730585404837989760514810920662389453538822941300216942015681438407980534443881600022555592041319367966966399961917712485156443559571653046594592950645114440690592784185982310710876498725385206829679975233551536717588286037218665699511883890556801896272866895390109190552701096031236201066086780420916386572869009067347796761726730307719366373976840321862654215803740023044776572733603852726249176566417887106823387012556477405341756980706154482991169446390262177958958025990118179584926176841452740864317801847684235562332548993850955761361604935660715356792849464509663967324562178656047435259919293996100865604398109578215185418052751223612927069541296889988844018466137686284780144735096370826953423015978785247029521315929383337447391583756211443374481263649890752524927998562227693584995815491378201401764741983926102960796032529149380980552819814910356414510069916534605252138209736816206840731235772612359768090280961274569909228637590434859668844967219809477688245324010883692716033394939644420157504316031374625876262024496225908685172760299859730521752210066727533446450847651953197172872376588410510374604383959239776268460496697905031131384752812122938895248600827885257649679140362069334369183082489292633169385460077390556931897389917944686275760239714987616438521427456832468722193851971976170125041955613782002830812201525550129747773388751919707399092558816914250983352405778496706111070609523924892227268673141140898812715025037013187100544284534097682127363731105491171818802632474586948948787816782989777151004942759686487350339521824890899842222157656470775064133922034607041105505543816725845265355251117807405473146794289215135452829016308163130505253902566876137891884255473412671964621342138964306075996893874723033526302763730640683163383149996351190803635177780425405401857517995076104321247240372663447713625591647355351782944621561851771996027438834505338119746630526728393657432257070662763595626387668608744069709691894169943276689348603708529794839470588563547388603254129452258748023156510021221086211931427370222022579082594178280586673818224748622466196398041008081660194373477816884876081840311672661168412805292837725453147150221902744256273749796157097268234625129024802164171280274129170096912863355281608036859470296730893953304960679788669560458343207569481585023606838223469291778985930062207265068359176978008692892582940777850569425813537694117148513759265443899719571880926220160430204304688439347234873932267240834151752259140319799950262798868318032245312430877535958257680860390737400630975925645379203460190120198752062902602805261473341906899002966338872467900955663847673863616091517302404660409105153172377185743726480773235493683959164158126871185264068096378330489308274898899943392565606916726688534600261974401884043732976415980715064360580387893956920481064760633211289172139216423367562297430127956897077930024067351169382697834159916191292373384199680103069588218643371295734265359250465300072247954867234061328104697043509570254994258105478556750617904306612857181401164076221832373809978036512766875655826656531411668354326285479169995234887879901018332496420906075271730045382258696131687413674400179362472431869334026095177638968881833342543120756523365014991581674938631647183975092337878275981562407885604204943979873195120902794702691041973025159828845632164423853178227136670918791514353336615599648445981478367357789543596556849730305734924077284636559880784502119992660156928294875604079022732356919621485509606982626140979467617533905398409657715498748921071651439711782161258409101193603575668178329067272336894009720340853763317490952717557377982107935074254572656740167231922757135783228187912122146363798315448270835840357803690892895781627211553279477077404331631557216155958028756674467605728858250126210391975047961446580746750897355485705730561270591803421568537542641849631542682310905741987263743322259005770653541938825343990338329723613995370540138345680237580575037712939035373316207612309358572041415947311125732957894151996675888161843715753542442441596682646421788945948922160719765827119601865345009345631523924713984468690839338928912042318313433579174133012139582121395436313238232077470117133330914723254998068205432136383151496133274216782714454756655838540462682434355247239893084366151146189823267628202573528167689458483805296522788322396991768364245966515174372724588533797189292693247684605239885101153139870571368390076092415592504449468909994716809994999700923304677125892878746434449894268857459074447230074520203869212222374748643304393724147637840502358354291172086307555864026730102302173596023095424006837572834652464456221396498824712055436018601103865813618701922697543186028130895839171649510641930562663373258586496986754382518924884764962368788796188229074922624553797413253856334749940926033831784762169514549118876541547424014714308735248859833128316669735926165832171202560294910332670994551029952144649650205871001467303896629176051837893700121541343327018432440293933064027558996969826496936008554169179756703123481127375692891065876882486134128328581043057740960865933277313735727748042594146112857355494973503106676447846512171161845386222120156760801230465335474182056751242937861663249710407392989863107139371817475633636632493156335457025106478380370888247823899273610014007058421090375643370332010693282585901713917641857816614452581449571372646516079537432109806662949966050193397516496622274866924422036040289144933071838896748744582298384447321121814380241065492109129328338201087117249135602917091320962584825766199244704706946981081832910302617807477808319115669716465694265037087253507931549859351669107176565906134306673418087641236863109261428716947538986543075530180197286941792544246035525240325796088276519411313177244230806296475309382390987787141992144401472132161857809644543842774102547798246560378108819765958110871989100241619621140564095070198495076401251482931018009534981529587832965067066232262888232701126230129944928498301417496267107828268628236996833439647192257065917896075422366234502165146242123537997336257121662935527025150679572114769522621940951498812762628743061927864762166882382406718096131364508193743577157730359443545318372022670643163948722924434640210022233116823363143227675230446979585316221165725577734637551120079107744717542905998999982074697764508169646716496728945334539268167261503688882280944661280948346634335773144409952756350095368209047819972889065533356264816218148295231621709815915631119151983710740101921100438931783341404589472247448599952499984612555844675030090115005246515259251720077376523295458383628684498878973244801564234597168678726541003516337009678003505023412245314823567302551376371383346784715199313339233813525021101369732191980799089298340115507318803814397622344066484586359456387508765098550951593761639940327379606041844881660860098365451176185030503452204096066242177853394874169574229298097859141054687463355210042928509256198228033366041539363395799632432295091214481329387535920695184346969504073264057699854509411946046982025816257088645538194407258607258189096275058661918654290349503723318251994799461396197131926608545006262509384344761872606925433628318805332778265389538913471975265987805675516749201805586764505943431014232925801557106772832193710604846869812917717528080744437643461248689577037718691161753238971181189767070691586711150501773221472390204372600957144116849575235573312008357342163000177648565325332045611087456899752070214867808312892721869770306689410449738826094928251399555425795336315133196603727355509343569297253819764560951562341755315680181990646366908491377794083926136569896649660329866030444886835378481398046103336062690318562209939892071133818933301736191068636006765103449163668083387058123246257909370657801468320457920551203625624331015572436240241157479859837890193714214158682562916454093596987318547276191525756116497938795599400521164664357103364750331167274422680284155956920517565940717351114101416520716545316733967382919489782287943839570211772580334011793685589144789403990865021359174560100703808937301231520259293599703511517344772398570634849126027386048007259107627896148920054324972674337963239009456151014990098153460550275096934946284040009457048955638212747278210579466889096461888580082670879787195417989530399525192004760375806230673997757399398099421069699567160772482395508299547733752370969589339150893912551008621495066802896198130132343514998224071758153440399164237450572662771906624908357329121125505344486821667256303436944702361930496538829142762851440115978936646999522175951126555298930439136931891240087192692914154118771350233032799372361980401064544220158415593549876700497263390635012055957194786475288865857812824260153508846768438733457195911467027854243082266510508676224394437532706919227169218874977154328656467310857347602042544419888572645019681638200489009827848916126223631468955377140971829186088079939482389753100113915099066272723703726285105106388762023657765049641231555535208119979238992992122799738862460225054153623904233417151629639644858925957216908305135992486520234058987822542142838901359891760621437828136131080213355938605563089802040194808418628380089592065714899092416372336572753779449333149511222714099761423734012149063071300868111604455697448640390586347838621160032645774465480223572205859293913066950117681316697928926548966609696914457469644286146904439286831485405686859049920443670746246059838409765863664683278701895490090761597695427901998982830017558755135297530290301046971019952091903128067243291908131927152255885334801874586258461900861301946526822149063672851526458610669751973515514338434165184807646742615836648142315931294891127699275930229686636785673883335157594021609844574691151697641796606237325160538627102554605642471125155025910958309310103496776989162649497855669775298688670073954261838674429271837470895931618153651732073613307409241583372399758360166883780370445026611628210436060888639821296435483221212546073976987481988550195670324532528938867701402236472529725141977425992051241742619740639655992819362530696413469173311695835572419790105186931610327455954419687890300399835210213780526037549457436262789745003393151812767983920655585161405644168150669032908225229656469492084952695281400357084006383281849228883314355133820827317847718391015913806775528310810164322199325156909783229261746169881349976601803498914501520240310601359562775117242727129435300950951521946936289295261659454271031236184047573708047955313139470696550500251265092299210356737459704251570566399088767833104166090595086292011182132087583523622336384965154136431129501012089506884924191898460412315474031706880554177584195591313479013801449726603560275599302647608560235541416150189710621336913545840517789559093640370643034451815466647039758714608251463772594981671383069839118474029030157806330293626145010090795118095001075600366468338313303885111848554040324523807919560196115332743682318707678082736387297060346186373251440069757558490891261938911935027707567102012214112813427502822482557173755792034921220262555725885983211183556544855105616571508380023291790684897041184928343491377320725921837566289806722996739417979878540671287080659220844931058933214390145889307172506467717092095533861325653699760252720457959819010031212124163403628935193194750596624270622904941807354142702883348892124954353502911717065245196301735530786503660970025274070231330755201193267576990111316563428932973749757813562467334694679666200111513432334814909730930884666211606599278702942481964353059535988884307274707415436332946669645756569580571003365665961633918776169635224896716064069061693674083907881023244379650730137330693106033552710022626368150127444887715686342656381033275449410726717931448445209394448360180181685819738256333973372001475534151966966484104735064830037903333039886382279031627654681338469429107239890171178848167644638544127852657767781414080014530519782967505968143325411402485737620492242900723845141042482006917794079968145886227858678620322121289141337530057604871119271436132603646211255496950276432681251773804850333724719059621236025645698232299338018698788306498789061437779273054423260521370015271844173304019799374225251896596103902826017775240879935402772903275849173882810804900118642379842701816190255862025630938960000444042593019749059720994954664328856472648217233273313728157143073901693112558145240501782248074025091032790152468481522216891929429248491336645215665634949191262041256445166869271664093736783076079730210622314859990095764565731919915081177541750401940146401797990412889568078797032239175914138684417846776687959254400759956314624284458162752481648886185356546432029325841938065576625996505100766941934884168500950877363061238302551201193524176898173912573745453923539581616159779074653501782868556783025222906069565704443389601942780691648260478925540783631865509568519104469839956944115054784229569455086071628790339519287336647610920414041872979530300626140099250169207644677607722013062008844182624213750731809646165591007107449903381032050045776240969961452251054440214941085592923024629105958387354477935172333455474329622632909711867036630843713151471976731496141935484196794692127410538817836682909281853060437537160812940547125949245486123553100456665601138741944035359216856385794284750854431840073252364440607505086960388382586415189823029055107739571910966988285085988752413654681315016240420390297251552748057744554979199520301551538883108133876704289150710196997123445144270541597200196794292812880277285536238094827399871302303972304800517119730846651687475686784312742254289134686219275153595053466166619243154712544561951040879583912656777671160535156144282808744349420923605256108737650002602993701136736150749350172416845857470287158242099202319724332871444389652197095819004262037723148979144132426681320929768281351338377439790293420319792631884911674148316853089837103561246057981010187794452469611704086447694766457434471979194140213551796819503785327085260356189544549967737507123820734409964329309715292768166919372548619340864762354212760692809592796576002134088478082137118910753793686968588721176058945848091355551986425230661290717839589967784867585642540254266771292297283613661653098081040519632112716869433371737721196107734520253856791400844146591546769294651418959714080908087338840037674817016865135777799105337928407182099806616972617231728194081234717872121257008010421328763602724929285824678873007866177376401198895317700698789949057988688114193656577691380125621726696355884626850259833463181841741229048177331491570315843325874841528728384379888767959829723177427008471454525455001840698364901729797250302479224172265817316677881935699731259818448948541607534965244665644102520050032238326959912305621878593686569220748162329127346063588264806613535801892627358784197591124101391676834410036386092170561591962449160226245882722722321843130166265785953634032373236541260248525462650926569943689019140457284602124800605536690201868290754081834759204719384165332451825431998543316490728051415652071819799971042012720170808065827533301979727584409819065808673080557426026633953104817159878519253846314075456235851657009113858526745145733609566665487114066731262667780535076178633472632092986277725785366699333288130278945035142236581096214404048217933881124820479702341210310304097172482028637181511093767486022767387167871587506793774677967193563595938396679133230734070843437810677158970138959471297456411019811505208510312935379769292989301631648395661104541716693930375791619339935969164870912517975514510052033818337418174439417145306710065296840706246941303087562942884008942214884976367342674022526851943903396273867358893704180636925386779581772394163012771067067477253357255120187154582692147883174176511496984727548240027537854540861375061025171738190279808412413318629149046438338213921476848737113886749832801441574615051803053195691074630278011780172006988661758011728829156780487757683150024038200347596309923224810104014347793779151596181714174772416620468066586246602070959942132176922109228263249619329492337207222540666532714331383381304410703307355945368589770688242175040814935769743586052239961157160762780101506444930000190278048576117889385546603151865021131422733889205337239448418403330068630266638313641240056111307625577739543250819205640141290799102363300445582706253542317722088846661253082663185355626933864852224515222486002001009214700889743790754302273219319694550504190437884739596665795295973869067346902465153248332546381865833742113129986889138729197661534284773539153094772618227248507534903299487655593959669116103662124426939527924752791768605362060880251056873822287239263814698769941748799193491053321923034722387568286456055897717454768611243412639366868388984247521270378566093150757443536183800119365473320613003506406253156483432966427991740790308791037350154281248407370041005762438479121989628628101057628729824619650564034851427991615358716716619436160485418641268377412996697667103287079035359092229331694009873878858409985398444392067446309084872549310663596150647966290242199678317172777382357590030284936743846244423219160587992580365815588484278724324212971767203337041766940081267448622812105606590979525433856520465948453636522455645024226279591826137775978490755387775809678963229429059109804505794127078319686410571956139865375206009574970950137775444148921930775252091302115145039042628905986246562236553984756477373058694598075241849736012588895912709015708849058377540669068311712796180378113680326848499378517686275150398739921896421354835973661751181146781096054891221093063698915035854410197492234537216167241601142818211725747028229317354257415321240188602420938884391604661580383475897451828761275217215164778828216624462276165954481963872572277918676647394846977711430186003412448787741275369753709754112287587691390709649515160604545504207197549972315004370994903959695979642096537449194051473450485306011035663071499973549372341929918458407411190303061379913017903402230139975801492851563173325380521100198709403315385930053811611261459900081924947765126470683362608727599000913034869874431723736829250188117063460071256981953132444421471842283937418063402020335681427926169030070350238513976739875090039296130862845689271413288420491392754241642605207305489127850884950555382108883040570977786405642134478487839743262769053970367462501990102791651027965796745325855232627791032151854776242273439212134188500482286631325655055562913895212526284986667351675824074712450770499036782084455105037488557282989484042606097663083451587917634371264653721048440322661085288044304742846774593159417586842632386763783966050577265623597723131224812899659478750121119455953011149478617630517156484708196378137863647652990578565075639406718112099545113223330097876329812448257991547841977829667126527317101866812388338284268569131612321164591067151883111386152338369123370400092400813687839017352416440884541710652669052100424615669137644838489236600496381456282380987626277445756539472312250725342679691252797745033180455547579072701732403463966161673537290738872182815949837533523557204655003170874125028254716171045706368714141668132826514514115333759742667723883087352962887793818567179537546440061287629581171852773345562391536776151558089223413376643714986316545045593995458633818730900426837754600870164674076654973210006974513180027485803539835818787799604770456208997274090254468380575800854074703566023497429773450767667428902366989765244517113469554388110838500237830379584878760952826723292964590775096574060230122949245538225461749150131951984759731818910333252891800224160724383348134751804518162689729163748305725069843779714125097504608658131331243797625766709616384134273570720603305618891449374169319187254026603277504456267585685427172816453599400747322303655348326367862065252154697471960178569658864103499189901607777421429685067116619663157836284832024026618687906773688741923662662344580318060096583437477082122402732771598279239516854535778814989650264577043648292051579546542682597625322540136835823899675736697227637965165547364220369496094657944063308547016594680069163023932792241278184820145371405630468714752760285562737609687467079831808417495808687695806230785519977140914320296388555365610713937292063105393859064652243796226648113561581922007395586916317206439266669832433012506431611206388590140311804582742326628649413054089453423164232540526481895168661630828598923920357581771490034366794228008265151552028656962692412071107258592548561859181978224084873618266826786873248085789178930039287991117612644076037661851552571898660508036745858251194511094823228940954092560575262867022905332730243079224749569955601596048670065104554868403555429338837064243960681602554724308456389295963553363020198232684738768851230739168616349261768664977987280688622723235811583031149802576259392489422141193058005758668246505797172592887004417845165991360440791286312307374630273583341750570468273334714801107922998695264707151139398265456703037824798639542181560749349563549330059251472233740595097100953706864202704481364228349463014246103531469390641214890035599144834354809381124511022449974467236211638332499520105788167065178439791037935149545925924079666452400835986645234800205188832305153470149944870204509378396611456044192263960282760187565008736702950536222643515454053499213895353057325745736888700676148117594667166849763041339968326562534862647738098805996712621570474891105105948254349965328714234841003404814367393784309408162619940022990659836132857408198230774638390987432935157180133854815715223809463015928737042469290039016817620246099949811076804519766936907954949388426530360236807105921964713382880849365774299867705756767756719654267656852879704466158896892737033950770520978871221061033997162620345820445853478323197877385994961483361642550124997370930309586077142929445435089319912795240729654520651247853697630043263124271033187563402898342226634333895298799829202014794037941990581589369485884079826238300012540093000998285986940015871538135959774465302573225626030800113555380427977435072517180889504896465817819072179800376212316214054012668291801902456909742961704793946151445112812774579731076194255841559534295763075945144163326561244663208919484558271296673048448234574034495467341371033364487889125370351701479075087821894519123880756371726499913832663948387248489281091616182718761070788166310843391781136384255988016502221207267395584652175806907390543012222221479793444940649055134865422409121126032651851438852405437713501697623397023703739855191359680464574445668412050814906188264450259490781606711306621359456261724510887430933278541249038248533681431270633492481612159494217035176868340697182976427195903360424277508902758204806537182399979795448825603407459268614873246713865516268242207057361679832115934947570921114514461529458012310805818471203872901689096813666217390719441200913350978165009634559689569296035904662818986655881750603143543067109687332092341457439967553883307553061287870816523031263082986475237457996820205735677187010653797235396567299560381657527407277484936385475869497784345217341910998846494883248696469564347126989080882583599986630120177149378077066754469392661745693400304042179889329227852457278216961063149732419016304951201012786184608944089084155986557650456045196568853107200641219040118975725630204541992212861809875266782195955362990854343491814882699679946100761522735556458877923264280941846393035808038367388148589988072522443023732199819686133222855233366165672194879579228673263351578897165075231453397047500049102812479002223682620343548009379731215387834657084485976972817187185489678796381845562533195383461047454238174146742451027249023865842317429087950506503982595898251342743002283522420558779793036462381207091932136219453678648697827090332303523335061273401679583171556853972645656962239618124901583932313318357180485698078067599214130293588255458912638018273098509099558553617594876153836133263949297517833267286429193845892166640036521335250374038993224008040484305702353399451430567342145632028996387499496270034678018072387090181913187160307691169508918536012903597904617373360899019877614135551108796047950588249304263174856553707746778003702372081653689504504225443098711052084940537361200592871040071208421153965874501614787982040014725463320121251871455772231245586624156729891403826314621901703847083171066896519472739747802636053376291508148095193967536359548431845063000910557251353079177492850535164569891540844507995578546893437710981415998521651785137964321095354263272635562787312470815664050457904422906811789330815014437616423181418768608197942403503334958657302054196991922750044666054429871850576424658583038973091701425435508228486168276381018204999116742609808509598996691670574539857052646547634335226581653450557501387758119488083820864317618396944609078401524774176295037107712283969489638254238352896718551989660817562430455710740912470905540721585714100741275360158751152486929897315859488893793780111974304125614454849168176820942174218517200002330889587154901581432905143164448603337747828098552010924582345968785423388108322003958381232264367999110476417125465785772990521952132099908824624901593132383323971366692077146155562151544044162911637842931956811331830043525473380484499907291395977615781526335366915747923930169200797382798592988921226152783251808487240181733957573216547716656839054965546428092920438229006809807489914178924930275980762100273987075836238092734775406394178109775213107793802913448781750133768419315670350756961081845551408749459367673583980151522871121135051150599834620637698311383025463792334581780389548850521986442257399505690367455059473863752594225881676598847850159854100347817088079301036612511060099693055913115813988581089218384202979351925713632885139309455512111960909131971299683040765254733405201971468465550650378987721357296802748986276424435754327753608106811449370675291936003664733619495015232898245211386900037993563627945808057479269329955454252109102131677685652879244258363484224684614447683038971520525351423580442357906676553785456838081473811034825059304518398086985156485442745313632758570420404775337337708047649340209683455897888968248029319237861583905536215416314483148269230831360941421255537073901928928041430943305449457272198292561792874614284315866708782550981773341173861195972445105290151364272355515976643357285876927858805922771642048691386007809001977834243094234459592458185951386201166317543661975710413869136021133275762414027575685677964495156263602018260459574121812188996896644125862745272879820461557333413973941816416227233125648987557235509151711777358366747862024849709433944568514316520949467496196798314718010129086878813272863606889057578505507212401287901723625485576334349790314990209702103255454304104196539663556512879753468083201535026310045031020639883893815862682645043089615931300311885508762047385812502663736624332910470800275807507467691766671668226646816213437781536378726182211283939758025792412660731689733994381671577188291900787061004425336182880414711906109950298014355000569665914895461739278732726258523132571368083667257833790864525931253827650983487890887666709530220750090043478315573717678846615914437020366152809217440233914232465928002586675007012133421833946210880942568940847920183742662884500063916429477491564221193488314041365350490257262343258750898976148551648920844741427782658117356117725743151545547848018263052782472445280836704049776826987547990532495316716085783228914815642236018606841504300865461613912485828094533745507864118812468239078632134081158480131898445276372029650130475192543844897506096129387807878248359529707324367067877390784844505164530547434206353139792995047966533459843235670873710809542609665281766026957638228166741410992007530425115466366757337528284152970465551871411776854594105658777070663823691577890196221782045505596354718874936358739631292321191272443267485858972402587370954824723307330297083093436855570623154707044646871761429944434606922575227894579731439700696045682800508215911601915119736481202091413809384447298261774374758456001784258098715251001487980337050001325402515740441486647899038565471643867946542195274651048325236220821241318768679906648849657984987018824319269582101842009119350206092631865285486322983536309183728149658539437046113051567563339779644741151624995228558648503940342533347070355603719029283520607839876649464877098680971248170502516548882018720922135167478484991259754939580998280175281094101533730735750639066091091867137468374735428246180721501403414105396398560842455172595251369243423996857918127008623572395937372898781995227072045540491488259338515491814194420382343209528646482529186659000149185013495910639491496542834973099215686948619510857026938826973568042168321147809082181110989127863679842818785273715873855157782143979567162739233257351248740438190511994976108523743254092019727985319497195779010637471882946184637487800478568029621284779220846695633434643484179560945008722602708428367987827344148339635492999307073076253509816451783889732352141478016179329800165453850299203315717319724963884282139515177290129209490845916528001103588682433008410445703640502412442244911338972190381323239144651809542145217019418165103486105602846845003184892370025631251146026531774380825864282689689795227439876948222657892737598034294721725974182705940857648779521095034499507342487909896498932905150097652555160608216459562964502247606276023016544377229101421207101703508864101696481202858409286739763510690996662907480126126288869483340625086288307363140882839713856456907561808490932512293180687892095480654658119667139761169412076471648193066459280969953002800984804037111675172569158442347364838395353653792004026331644733105755243328472933334408804616324698961739152258303062316991681038307711764778039500136146533759004976812043791733881100407650586312441530147287876358482746350925985000220720054115996298956839023200157750285834560418691079470412669277584867656334203193309191732811902216574054604247448238353834071784096560592254472234419245783873423631463017295768506796781859650347240478133837187638859142600774796761950865842768346403662014550608884800556185047509489977576900718185618679941068901761880623935292891558818148921840145608525640203298531529094451748503241625770247706540014404022703153293896346303540074372905897801607511546671612754437307341100451468296072197904200998980664793236393202608934261124605282487496583478830344217929824074143151172578301489944356770792065932677691243889846000875956306139491138042236457883430519523812196192364745746110678003484273832938185844333127388194820532129804945861352683113342609270615848948114126044921556623824466410007938163049459743468119829346236379190182630254705357796579575648387454668430963225684690553338503025455710794478090905806953038854527356367975063754738409556388195136441266673652579724664377656973048721119099322052966517254417491245397322179039351726125286952648534276465223468292332312899185890513981644676926300019987228041284288608650291455644575951103297950676595363223988948938848458919967292230230502154377324842481822272403137563723150907233595371240961919345292219684541504879149516842470515846594290441417105934735215642288452143505935065793155620376957328813483156979736521110690649405529567434366395750644978836465751144720168827799562742210934784721280268374245479767930560051700097726001905804963349707948858111749867735673036295002627529517038290785306406232482038367811825634378990803723166172727097585492264431902603711762314865190554254677964224799966864514995341759890247686532782760007655678285712396679422435110014547938058536711749525499463500556268355803876658049784198899877199691330548415048856771181565620313024039803292962739378594851980079599169559425107662702562694871122987950382273090958103287116002758889512684393553789789109851474589886784826886219932486171262344049771105731419584402172480404263757767274822403625360878790059613397504931464077023259224631146997669205162481833681913297699269867993451838978337797569849042459218776187402989151964160024227691897397418199550283775387263423348502427518015851748699410674325139196317499776416465822958306519098332075124845379918687372512536559850497161143512037572233065387424455828082208317240950496218709639860837604749000025882203904019064858556739233033994806302513027126834835417110028832904293166325710075868588322024237021403298209330620642656308899319357289826160722206609106679323332256704671155982593977444518713647609575640733281497893104696644513858614944275047665830036012411261249472509050639147895319181290423023400678837201003712099888127216663406057875884295797280383788308779698681703134370192053912114900444635559464596267891802892951471105234313764388152089105148805831328293448625820631275944646844700732370387737996282858169908678042792239544931678366667143842590686748092617361160791001695385878115599022798139847005444660082155123464555371903007765832622924455846359633852961110282811561713962648032422363956638759693353886115225815115799682012420125165946560758231573177907225055181176197186169089354340995555214144899342213984639843629160059783415226154714303191913907284969300006252267682813028459778297697138039662128026068868653452667626183969400283182315534110849425790825895515837117463963788380251113037816411427135126222670969055402258953001266727872050517876708851264025924405212487169514261037632121771388460076814795403775932457627012375423919975078063575852408683223466821710228112188547940625453774713959241510639994544800939718383052223339903370283231298047806830093927910858113394177040216318394316971234125658912991500708704124662835772976263594591233538202191770080784975382274820643810601894586769799465757231624481092545146105952099704607077780954576002978687457622496009968981151999008474405058865934595999730626997900349427913200670307534434502867224318971196470024959794045145603022657439303628761268758011827472108561654770274788013607614512462772570853561447886443322508667441199670933936901924064156630073194934468053514718565955895462018858319200438222934083626972984767952250358950907970957645989527562388409779272558193360412771488952589808599438011778019884538460866430318901095845621970080797260471228908192925987479581674861097811731651373700164792412476324010462015855907919820110464769025808167352795173017472562188209209456724280583076523812692952964979336057368474515030059257380861336425832879801376858515135986951535344040231054434269247067019724463689475439890101467475998438860242506612621022637467092425078848316464255743550895285146303320591866913919351449266194373380316809595983160475748470076506111437262801839532538224951031250089245116488996538592925602011734331785514928508931882349365832962442498796125960470176531494750577036358976987551822702615182751864427824568613828995635240558408644582055280784902879510591910765015725655720481065061360685093778231530324910726610621497295946637212405127229185611564585480222323335789038857876889377983472812253755765701698169442716506881885461285697326317345288145152207439617658198676711014568796045126311101464563282129852268848234367602077277662047034183435172347266766524306562135060805308355027147732453616440078242689411166294824192036982401604785303182273129028238127541163317672923990169600301703784075200212630833604815678318044223362534892913078708786417654220027305632070309003412942633744771656774151299301541076925290878487847659360959154868153997484835759665327706897361229879565879371936756711666624600063013429628283605755262327155893603571805810860340441250390359663432403743118895299874454364536141151670211993566749959933081616657531355539332044706843909987311950245270287628166184058937502897691602109937899468393656879828377803236117636895072879162863501215057165972260563784114106578162483618597886947077367314617886100591700536523708638288942851122916573727411550173176229470921044460401914261768637980287963818675598682940957322357787094980192662471018170600205790287185236376995643345278458966523039181448548548938353360695403257692884710688206409909906776402107473794645479087013362867817013300034195458402109501280389337073062511217722941146708976070416991576148357520495808490110980605953043621572345601498052991185103258842315629855349379758049661449647346120581594801180512139592038120995770674946695670972618359240625468690499195723495328909235726894687611669610037378317426319983383359119538492266978454434675087874746574920960891625397309719995900739309415609925894684154260657765025631979852916292706285390803796377456502144124123942790742765002261447477547382590727056765525376508226208709585975322385433013406404505010197358912677662303035565144373173767677071833666389323434561113779860558428822736598485847657135760213781450835641366442918986601453349074324264534404096611301287552644507879362078437960832587401821978037245579119106184811060812594171384910540448931129992000587548555298364347336291563476856019213314769332795866987339872328671728920769146870586692306544320911998558635967596598713187772600041183766552680521605261841466138863656447924497002800389960997144966330602683270833197065712273223067152916693973429246725771972774560749052751305772213631479467975469427340869793589179341376333001993862916531003410604502049487362832789852512413402364220409747097332200907898274112304979603824509917225220681816365303238560760783186751790506324268282869039531411500772523922377041336300548820759493753835917770287826791824789612727482219887182157684031703133721063191339925161935840996077342367010166337512698054740618500177106402080471042327113611100168085950457399021069302441739915888632635858322579851192501151726136057404618976486436820925377799028899333184222604130110793378777688244186946441283951506812748527833491312771353638385489139759498861614378685581387665791407226524835326508625297956665832808105711783537649309967911224447837444752950127791306054677568482830753778734526875329377560522936416586136052546345237992571947920582557383687706658539190232985058467495410359400655238010910927217242722260842995113995269078969184995681231959273682293086498746471569139941053971801038001230995304020975529371315591283713138177241726689030021463910610447277805448837820309226500052297560438586042784433292757961553763216505766016943932351719126069560976916640747325755975780647033566026822815119856358899794714328518368665582952609979554554316891630097980272221640019358095771535905089591308953042787335358993776176557434650239427733593813470127381192969557480331727469518919490271195629103373512349395906952581623870060400653651648833025142562873513839916133109635174273425105666988859768228896531280870793711787959671463771068249474689556434239248126025077032901753170661402034021910391865584116480780953068660095883698520021707128944679455689210304885335205767084618172556405676104106307853361607318287017921033974962713858472581299886490183610995848038579825596863137891391555208379129033327124193677608922794654739626823447976471961263722174117567491996232046061888824497332329700634332070055375672062705380269622255638346272764980755692133253237027932983498676940626307338334948720132353160619831144509776058943433969185639642045766250058602656365645339626758431700871883528788211141768426048167032437402198063338086041901791979605755954886288266413972183514985751996599361028857508486034058290336687997929305397686069972815435588933883642149041807290022353778197064192308701551989726787746501602733378594853599792042280315248475907815328839019339366566817723503587420999225133864303616379855446784100546371507946645594159680743269699927970168104928662016017100215868046225846328414597250780446028665668244745930957612161019843685603798853857762144921446238401041681975770735942890391244553906160766344975201606756229242683213017795071764501714237169161480260884256122461787132754919314477522155585233478101749440797832001283636639544925911982800076152606602420518950515631013474531834612886906672498402695434088863202217867272997466745833139264070639564997936194532687133506116060498127680188314816169607112704085598654220091585348173752310594634982763218028533374371676092279665717687416042010769107549952275394728609963851182792055118732051503109769099133221072107116140516891149424543290150320941476630869129540035518665552310923382525265581136799037473361577926894624084250799367435631444717133167334334378576128238054430280404274833904060273156614349466719209944372597030521490908174114120167584302071568876093782277631003231175333644782293565846932310420683771381783743339212565204687708985438344432439802942503800351178925801858756128037532518981426517099584200956375349639517880003547270657319554910517396176809867917484399361386501607799917346949911697068823848542702304280786934940088155136510155001660346713253418972880839905964465872389344963449427270504075426585836753285284516192208146381402605645068607819941841994421513075205605651410010858628004110283735427365673962790455705853753094451923193279167349331098536680494723280718720029617804735976100788969140014100779152239193460667885126141936166550458420359575292658840437075128540951015592455652922611834429566577135593333177222953371566921347547487028521336478844235538888751771870692761591906089926659197655471205113734752866970418903689658752019755267650064076034429422216154907308776990573769389569941483466923179349183233582925164022137192303963201714704642067304428875546519186174758737929462670518458815068852996319788213610311565072200285319714931483039849941889903215349500444942689283688291855538727350702042586730820657344575326110276185565033292073056304390154501447907946922951525322764909478923104073052661434494059050122087265469311556287771448939187933936765276543971318309093675300289104453489757602772612319223595212034012908537631877711071692028374175933462374208468470969436951095370154739775751305148237523193113482911660837266460869947533538457752515404764526101206357604590054905123934046430375707489286756180041637439556759565995408994365621125612077698219278517868494681545186526003253082885976159288483872378460463114607354296147269907338767709955560267120258434286205347301067764630441061393771747095165103513122845893247369958178505708007136973392920727217951270253703140105491477066977101448321152105572177966366320892902261987112237338049630837011861986574997677206280479824840845761485711874941323656263088496994279118452217165460050737996411784162649761520959239180908997699049072180673263012786960210256371413997537222795063341561673610337830496831582289960232927083812409354203784415301178124833685244698640072514829475232764717211259151323200677737563507308722422739058821761888252452772250363240892375119473527680268175714531517421854968868360739262965147433736478513003811472261927925480461851774534373921363141192293391386161705991077697600223760356638471829017642253650036475233910849578595431463724627774648210852606613465219788747836103280384807524597017385833679552117578246884905930828412680979832809690929858691523603809646485126854627373838597612272596073829776648908012858147390704946981089534245346868530681712632925751571823646144269577493586983455152668919036863553289696855680112364708038256737677820208165963019127205257031579417886458460965446241963108772118505883120488615827975918778896135243943236126890398045371389138275361032152013256346798007537490425373790183713479232650441927643030291742882895354478626430747560678286092420328312553354062512681517055190226375566498820673618816803509722101507086303909664876369700353532420743970286928435205805473986051278058045134934070304380949011396789993076396905906988444448494630318319986997815044779584119371578824888312609040942430906110597890680135585715143843381264305052144862571100725787453945196293689362130454675671736759578728380590924936190982160632617084498434085627819616654369225300745440481231582584192750694324709618267105886163942765628613119617279336963158920948256226566877401927777872204805280088842470269859876550627874795982267083004477773619530555758457684491944945217773580645587357663848278578089370200158671776625081967010635390391600314594025045863738689948308575550250328238493847649151265745461240405062803555081814916522443040643279147132382727753463719307707661752044007305824462373745957522692094577467496934561820649511951361431106400171180604742931026867269528082678069937606535994356101456534802146250842204087671248822988984555805581826596671892620567598064807018473692283388404196284282465321267691633132889693235682319500813173964979241454836629619989099998291169884032378250951661901729283031718864232442853945224182675617023650817567423277905927686642672105789611418936391533397623019486335669426653709027782682368044559255959713805992510589988050274057482047067252478509233594995648474758789730713544383362762793773245789364107925514993261747569628284898758431883525969646880898888327363084055120789194558490648783099590058695056618232377986940844098478990125686025322506178383653922065146444879671878660976184256552245649868731796082443267780462022412697788688143350195114351614064937000869590098161322145406502855517022462634103850153958611429176524531449620069786092209865924255280752885461597801698603249131434879356049264686752419225110062597633971317527209496228210148018643444538918105553941742645804156933008309304797974067534320679993340901237371538318304972952966813661734405875774699247099189735383820413106573444617733216976097042634536156072597807365345912728569798573743961392718907726279548933607157050994503274685603359191656712436895796428325234152953886168834001506313093550120745039239616569106273503729935070045707511771265304810141009444107948894879476924799729777627665978641293361818187009285528554913368918934733397415132144251930468563673036318409043996816792540048193494154352267397775437240808002407015713995343720020615211725603135008119823627505981977150854716785236587519711691266461394470832172202951195222324050684141097231571863227477141504183840516694927678623415447004556211000954961020498948976990915363889531848371037819093675739521833257417267967621628454770362249631363996264535609990595783559711353552328902440182207238165763409979083195454974271911345245930309716168124929184903308355266542350478469391646949401548546407394981219907071015235323959120125192292226120085959748610242050012370485506418124029125758203525258850499236052840588157379585732495498283790154104724600752142578806308732714920805160886935629644218913677589006106074738471207246644787230419481816488295612762331343985823415573890525655667415712425433356916629645204706515383836341053786457467323778929309435392620308674701824693293133346719201231749328938898774904748489247315825283874339977901895717416799131438489073725033285478168418322849939872891321472623493802597074021872089039552152921461584438597670424504740160376111175686909092831438123135220307713677081167475190090938931524157717004048711069587172112260373767694960928506799436968099982967566625319103560886408894900258069773520899843553968769358951154076786252520937428957942630593766734140272603225710606413137599235557773228677128567088493801491489562084704035993593018516977917293174314656885322095275001415480912527636846201858158716233650680335514724709521359550722410291222401865921606125036942836354163346561550180991721971770161242551924911513837306978730111093180265563910535836096994259914989408472484007107249989454923838587448268940338281545741488595966184272128457980607369733406808179614993995589561358659618250678755188808552261699070410357190788613862738250836305236104760899393409388209900156051404262131126004513675561935704509901926844050999084102333938831801979932151856391377062228722829927172762760789478960466293377867566355202396796456797609357069088074865693981902168988577463665626348440873932577118414655441737500325766265611865679898536656851531505326998094489837932264604922763391689192072424753263374151994822020270899895813468850941990327257103073040801706483049882107822939543677640432021199820958815676435914398691122515635927240443976902083243080775061033846640859442426980605330049300654704297530779586467373615611138390366919757171419367726759498558154062047429333235861181831422701959630956466309496215320648286448973115860270974771526406508538229366021589282383715953974121817338717638880929442921797694198694909907144974846337345784495136613762710729983520273552026999391580784257596650784900832529366539968537803274230571814672741458165315953014865375008814462482449291791025632601869131960171504617762388652249818427445742153280110790111313613511944005177522942318833160867208476980830328087410300026166723282793194959463554138064212803074750961160323847560465504868675589535267047456128361553523569981391664820546063327122816099997283519771615823412775410625389718536413526851601257225340044070529595387612731715459072370546548936581626781136116971560951768933127225835528831087318157067485135714083347401496140862684972227027971742423709101830856985106480294768835984458413418506314201816341245404026541278970666306150391068073619059928555049671409696693630684840697320433614404856009380106099682891392450852793520492624540328434217981567872821588752882700166964653609460389527754258422328577063747782487500665418880307743226467375291134405334117809744208944893933684181866583422317008120482959071372588409938677306462913613783845406909922743511506052027208301842307770670092209440825339149174729946739582148661705088111042248485816778038405291875971273837694613668481833984020246885902455150509439009482754070869572310768376487175125926504121959780230084287085362792043169241594446734303854866866000272122111015659139139637315328525875651249919585370214802165021151614165149013718236809675995184967341131348204204816339370018665797871981650276249344987586981860726205270878266667372653930983430112754662974198618123430019347228624633191450040181190216708717914498808881735426879704672347292000711305957083664282975958071793592702043228188521059324392425241901874399100136285081148828368874671960051826291233930860672525728588533778195915864658044318013690940652108072986791394387135471445130408616783213204100689691561817616761677738583324011363360937500750377507856919796807168897808089350337999140225148104732225618748228999189975912817909498805033230519325832660636176268630031740914656657452963767888797933083512037765364464532796875720654634427253730511678528456669796503300714495288883552612788908754266419492818499215775936569796880240657142955461150377097020841187015391975139735123352527904135019455448294048963322228183219574034450616265675241205320510073826797713697215452569307081286583744098893537634088452171868463339958753695419670319118688627311569073176616605662291041416329740284688868795260271692181848599232404991728612403904309852699904247878287057690957645933059109800997926130831279936557493439293624934147891118818910830882647844632472606410406952402349738075443842948894422787361404484813172239472309581006217971398468280134649491991894418309194757304195633821749673647376288889279130478661064165274593739237453589398613487038707841871299517420773879464417909380469690944378395894051597393242576801721259739531058445849118342180197786565194649697869358990575090817838245174110256687517464781281646228394048974586412112628909251628613260348360073646031095395998145049546730086272556013110392268589359747617616582118600301365988936624619861675023823121096750511738518011652328241663120597295048287799972232995923415848714053637162438147673299255147168664074720433327060081939324604165065123412259709592034614195188808677523181327385532243056247730066323347182184397694449342063632027957617463307379422271044936925023640234385928941618718198155249931478283518253237841618712767174123167345730896828356686756525065944885047743173414273148118962620851626420476450551870329272227068323613604759958120329939032613654034364846589861248338333213794681079127905035777800966121720275024417829638988783964218684179944831007781377719653231509289745418279680026504943469886585673218910979552647001010890627642568985811990989041600727383227881108602181639243376330703076433858301025704933851762092772210749641365457868382694645006645870078810454688302048644846714285581356008628151111224816195584410798339265643706964898165533715241961070909613805745352760849220935294502849768466625527145001594313780306745231311297285763612203603757711139283140844760994345842871805305365321345621429272698108148141371331100624162581242070760602013845408934598022996020459991798734085664089122815253172980439449652794880006457806078152297562929831298987247157395164395013388678948060551786296897732165064866615304671845510703054093387167380507384293059727739747439954514725520197984617826789131967805376363605239202907989465704476139627320293336643946750367275597064605052018092552067953025439817816905996063499336275093687395357466303785761266909049153408825916034136765642718296486503863316298008233830339986643523305793806448060856453096819906494816618434367231407925604914226279435090784526795036882360935202601951606668133419064049195446659925021428282100695312006012901265912950168541651342735460353924558898548114196160810782585399363114269445659978770472281496336081497599120646631496965257082996054113571176620223975206598285775532352053506810731614999339520364177478598055710692516421194106214504883703149466566810427134352938853940943822852960232902967052269414491150435769677406583447392496765748381529171477695129493961231020634592395461802887736975388581788367078228399757561117895387609262924222899755933072650485741376944843025456688401802809057254829228333611104187716022291998145590954336410075621957803978880161593499242666533105405512204939002425839245340343155172506601360770671778674771896043613730666722685174393346658770796207778691881843597014295783973461731004234373956829700854212960316337494680778753540963158862079580233754476477012668571590026229019123021846587847804557664308719674269255649920776632110507793628821962907107488921996619877986628008628858053192767027183441388144043323511013283896588798735474180630850523031515444948747924850834623188840221925945319738549086970592490817654237072557641713116839212792731643419334765781655087876058389121223072566592860402837663831386696209670635186506778697239655252176803048009238438786923420536543615010949957217841265970168779696787591278414711495885989434532329731317109191741858208041772271630628953847929719148496259854030455360530379540108909157202595934174852187663521926854760500048068613360498177101398134441314923192825739461568902013949361673604562314822148391533967263693705850783657598450665799732000378475908990692368963627789002220342825131739717792497145672931858169467351509774558221203837479171287238104778463371436041974493220824680238614724024423396449847442849376657169039060546870715979993554495077736401521730590197414920956146020068847768535493649172075882050670071164929930816011644811829222998619440413965802462217470998739492167552454134878665704270472436861576950012941487518569331470080657977068546943182643021363461641043080927865453069770124784792608686970011425355337358333564863640229889087983005836495202520445766061192524744843788692637096301316148843251801383205312412540173059696210347077440815204777818400324304180484364937742265072326234744155537651031535524151283546582394581005668254819569518486572379350486228187404594572829582021951317601561568153975461850689693210512639944039740568675601357725036111799258111141088027119210365310106417603743136575858662394658344953770445242739198286416142085969980974715724531992342571071259871516261585845870643593549908547924359642393131358796168314562383991925252599729367908600709051285141465901263443288234456791313465951683710822237345706321267580050575315255614563607679410440751155728155884275119497964949506879725422366581475808671142917789640822183401490920201218120791417539926901684129558614155187853449689990879999462366174680484869989709969529268892177878633196812696136323558689368112458366667098230094980424516828084382426298081495929386086227540498489293355748102930099167916733247879153199953079570245677082172820719117405806432951287190528548968498097069813455921654220583888998314256842037763108193577189408223531636862141046019474610988804074460306865287283098661805208654710311374631746496530664297208008190029041754869446159106561530393046386449581248556549718616246410175853275928518898545199897967373668687583729304482144870017402210454600712697993110833490415404926415291706169700082048252256083130300565951623575323407519036475549067212110943011427712785801442232042815155209668424223626453521725878373921736735850135598547843441525787600489823932335532829682413860977586301279343766428698370765435862400226800408991929974214969521903599863331417577979771713472116930936782973955605317001305179524728239037211544422635451252238346853794684513788765664382601055899828155217494403445459337181213748483515318595659756970584838827030551959517437007762245109561980507518554664996972386251555405665735817496275304025273465249667711746446414993112967396169838356019654285729822525449135198509830830515987830942577066370468383611600034891575262198163358590926485293951394646104590163882917478537685616972872164101119357019627264840375311975167955113827297355652362272032364010530832193588782014067639850775391779547023820764587848557872219049439465048002318328159821210109189879483651929949740032822259436124469895541420051130796448170198971242548203592879206197542234685462537378014613788665337652357547685634762875612199169957008235507966914970243226103961750297008440120578512516228619167967648180323243488086366717468081135666128610858539597513434677956331452074120224887737778019792160164244310020505063828431751421718444138982250242911100311540982358459940719714162761922331716233000396579403566886464393419131908769239217434602523164595028974570521867876455657828162014529660356262022992556885414701094885858610034409779147839479419941356898440259249209930536985270370890325077431368918361996759153875501431122588501703148307784676493936072608581958225437832423006631627883005979050476577213218013409296465996106990179423627538190507352466717078615896142456595144444807114035900375394285094787589738812985706593894891584023485037097938965180803191070722971600271451492443832098114743373367103329541990968691127269370852255174515068334837065874184260641810033587949475652818731868574952225514534023372251419488122706748253128596195383943531336209817589259939672885959927127667785420349041769087593872944675565962356529151577124051773983348602597391657978430757423841275553564243354993113549615193923034528958221312279877868490654256481117194763096433481945777914674481103202160134049565826388639203979400073292348754783928259782368885820048677756539399784670775248193978177071112529978892516088784182462070309814324023042078844380058145485366294390423074860700871680173122137745709118892838706601157058001649792145400584852482554756986247525327399266969590236721059800764695284351141230120161537008548016907635161651934472007901314183679383319722460584633640633605997143616389293841618486184363503291757210548451648774135861669644180409402336484951758638495619058043356480797426190492364388656635215931095575506952106036759242781615895451700822297871216352478405985234556859088375536016943656378763936758897254584166355823793082879922496022950685743998182151809486536397062851410512088159071646472490880068923535962144292904303440110988773162487250429081463347814446384084957859322151474884991427267197720195576965933893549865218304825009217726775615191350873203874233820533718006263358959017473613657586287504791642502613734127704027738128544680362432280844297596885100945536540432322123279545291702553031791108614781929584203725762414431626573765078661389809881932404518310633553980302964095419650164984227956862505575966637344771849438826581030499430641590792832788282080364652849252596920818129293208734740269869900062411248288847225544256578792654851086976523340615228747116205296760219030952316504363449447944764393859088668848575989104874353957340675190283226067466989272308767618545199874407474830797031931795250591494173281425025475908004399948712140888450181630832903623948780565875443656063994228333231566342432339690143915359840667215488504487254108231560655053392226295484318012488272623763760889699280697654588213750570417566903251076240486702961322309515565618236449163027102116722573797957474404564408471659432585186714803400912149510042163410135605004854654884129187976010097913213884760976027721907158851978557319774294496505795554371929301392621975728641296537208724513288054521387788398369839899799899015653404525882358862577818838080171363378506370194225436679417473923473723956141484516656860505728128977828244510715411089808593131253532135497620811473628649767138230621538002578389995738276355240865044750603540275331671371469190611998031009451910544686204979872963576424472301850482964033986583002467338173297468142561477901205843080313405243720670581882638027290313766043801852184200333786720118113310273098887414054343166718783845248378567694436522861298942409097027393956046452602489724906800632442929124887600302286062337018222778942800140611462972509643681953578285768141327850678056877037442478081925218693679411577057821740563518098763532297435472418833437099453306877460566372797526600526504914757434704117343074048693227487043600988394597272511543076504261091471291940430898481628690973447134793703677975319752217827577743026140503882868730494549312480169675010948683663931625693967622262245551292598281022506339902635381133855667624939412138055239596110196504067614007109867118278630534195468246877601034087588912470639900828046597330874755225105770607770068218004199302645944053384682950383552847410634445632317484447995018621824941815879165594178263588453098681439335298816025986948295940130936421314132265486958383937631580273721997865101021071579580620287984113363742018761826727631334047834165785526017817451663663137239163620768112224925786776494722728704627893588955796005825511466928627140574991692048744977347695347672319372081359142565890352663634923789030164226670457721900982596696842696209863717046204641958541732083590867773688771869395132846893404011299251340652734739832830365088418874436689637913355892303159756658311082289783097458142995856936151301966455528455308277293614681890892522476534006173302262748512911597980498920064181367886115144410920547076444552654486789920492873456975314283252577380061531868448802534236115660428102520272814349305355754894933665857330195375947346749924771268046363250089513821158483782358457827852576660495366595674971240858629668804890765902938746337022477850618043150953780101629763526419855521230997233167871613771834253412521684370249622865128797210841830733000819497217457351289514628858432456536666339564878015225651626598570116319803823007950148834809005697677404226083039013963537620284291783318581540252580630657894878108081586258230755218838308756480266890855551790210433377138981424079739320853459254179327116335850657544528491932269454498835458005082922969976710748119351212403825749614914071200306190041618834385637113589837162686217030279160092316815323617732070486676308158815476246436305379947512814123453792008586943658575840219536166641093950399202608711477558894021800364101262588495599451125091964002973541029574005767160623165935589193536435790396757481964355981252772767078513880317277062276401052638315383953014156044588724098599342060009096870821520198869097257217658157871384825264554435754945251223232681733739494075529430589169470639582109226568114919358318325935969441807683106879044191229792367773717169619310200662247929659112522716196298268508345154170182598417973401654303471032506713025315948568875545465265290847053701829380904745771901910312344041322618686249177217790554626613064218614163175244273050890889749352413800105197675547173697704004674391144084653665139381860684176152163446667538195669606221981908797004261379950687040880262638107158284806364137118142046883617798443468655217150246739925024595943967633954326834457767320803979046355684483664886563554731543623749202989715031374170388792543834150773848276699576742385049829114031109576949327743766043555686567204820193208939291323493179896103083351054809406023508970479371949257690550769075994987331877650367206944349018362304692031350043854431850150914770910236436327664358348699920674327433378198554409237295461466366554957028113919346668325102117568596175319482693350880959866761558661905812342942112373255266887949123241693182994881917391594044346036495200403035070453361799599837903914483780293024968173107978948343865719995331230513177894424504324063122103325706750427755545749582132140261203413632467172401611992118204909563738170158082208699489984123640462813570807795786416770509970109594239391769562983528965362780396333645920922023734426670067683742690553208417724346003934089543024489950843691788197130422469734033559283999741523227959309925982536523155963325797298808147903299260128811764527671160516578027852357576910574274546207391961935223191730892723364338393177517626665863715608043720505254772196060984127098670929463092176923584103424797924968202817791478458197042891346702074533406679261292768440893534817371954031782864976633028659059466181931599810327039510979083911942598624764349780704909010417645524563132896854062961918991859288044507077286996500738143650011700669759285802500642560480138348791760736848888319011496924948538287119747244537973943394633521463802887334114871818892889303485508484235303159123621788919727158385772553291689386494898222357936055988959765512012290519451645878718666765175523529001804121758043938483600001872563635540190415821770968643763419650707876295841678447512565569551183487909248908748862389790209362118911161145067532488997461785445131806104266554478907958049884139069448932231597479436122357672536226262944232574473680812717336486354071915937921704689538762474588230875358805370926779723791069624094386240250075707034900137431463558060566097272529854717331098960363337828639393954531767077803850761605490969345820290911883754730934989718814030747795462766431137155504376212428222029053454937940581770438815640030846425605917742498322077726039802418674833341319976208331403426421044026439898452121097146568149780660356926990617538835333256210675947153091071352305530558137886116336150768812996886623538323488760388268729240993438045015513510360138686452107108381031379818218832019289309076573143090561579418620702293296496653921607947307426127925457152866415473248987580001876797526416850751644755624578955635577084071706979294851320944986067415053900088084342453723786083390723359216011600752669337206411460645396737195387488760707181406530417961206621980492805851148558705212935911057306367357159311449767830618163118069050989394844377063969613811223429809109017701077460345443336446501718857364891895151173392574889862094547784381956945397941494566452819017859587014587413055979650782377276809826538887567793444184276414630128984334660336409977087197824147988991895468296995425974510898022996917330233737285392170703250742865910152254470882743479871832724985275011708793964631544864652701070621642312156177418033079146566496005212886437222197522021005383468444401220307489276113886763595706104585081455526980605057880564228634883600752849236980319484800725467472742555785916060194207896795338392526228896763698988950325686099214758067121469729898000142324839433693907790560013891318326957317664897999799730378190367492495204631157651057753855258640843088880581995332733653596851719600097453870662615165039168301145451405343253528024004031464658142860055719961363012282129943681363192561171280042135867258051317231232251674061888756736314216438241830525115074327074914783568044196565243830280475660109553071814857363873314358188928034118456861858782886410356817321168993723865776072292102171405058904426652434753872594540329018203703802202871194549579879792738546795734629076692490118486156422636500668984032420001716012468226943028469778911901602043570659323564990896245010407305251728761327666626847948270633604218666855528927965457761843433473046748152937815354535253210042355934028135088803678312187515917480847088805048440813610654222361324683766458538567040171011798174627982254072500428464180406816566426332489410002097412462420180744657466053452647614371400484645916149493143751016867166024152051634784248728623887588348992757979414613555245117215955344622442716168286107289255134679342300336929132429904828771199967187432650269554909678933538695169453947609270706591698028799288376005439615855094517875590210064476468150274365710150917182746675128180071734165791713262825981798735610618178516899791967995761172727827891293847741503201191637096313712852807202269869860999662349021060409965167560962106955718243790407969871381852650709017300835525827296863417199648174477443324228199812603416558532981358796430924897583366750201175756464001486180391256701779800664876406074369326702744524267091819414116827145991238040606775583926912262713164259453857216845397551691061344846531167807679367399188097969612527207192759805204417844324009214698929414751952292323810611165567186721994966950701591396620730423616722170203432650015327165041001547061020431944330341535255796876328511448594553618933156016797686938226700518576401342535074805729755596729171328984924420031020689144555152111736038900284223199181051679690728957710276958198415862295408014607207243645644250267113287091504593342698474633453198872023488729900863928890726531802796777437714645030465752438977069050418086578506049247497375323395008649700975737571079040058307209793916041213473471806933003206000196013395590489537288929629836859176486871522081865685556926069369456671722820288278314285126248699091002621991521904943505520017170184116091016780289153695541914054245368016753359299237618521997940229722803457227518225441396353702524631133047273328870027352911022737677935920296130795358563378153379873561792696881757367414981162540446037608737507516956430059040885365047722285687393344673891307027554111735959729226823311331866120144928591587636305143067349054858414528452167980015153885728981808359476295555639070018503991835780304737789237027007181946897773730893756016280776742405921385473350946976165728893106913161929211960552446692760925470446347702893646148104981611602642491482136906877979108707833806877665792023265831558942793275421138734817334593096344721798751436486150013323531718160307146207621956093725533035922870026731558538485123713191298879687234486834891628650425383725687752842354424162572966593812348309485844174832729006366457754157893194079736845104400060869781329398914910428399106911435376552689227560777845974141995571549398259741813306011276696305280441721167042991216337896793512337554855488117170281219124636483828215510017497803155625804980529517173922029967094571778186195477052579457540212810278923040744469047927220798294345827487156066825024492562414630914783351609256886311212943221611312717941656793872202579652905408462744388513476433725152115124536065845865399438545383302409857731964635147168863059150184717558356630936800461843664775066974670982158125433776810655801660850346170426933322573901202833370280118989946510056030853580297863742116941833784258491176083929546023269104112917976478847196240332143257069252194003471439831773601846494513799423755092710878542129440123621150794214479917574007730999773555704693592018440977821367912986434603529984580269122614251642708734695133109706843091566609648287488166886895947053754793766881530843251428009881895532465780363266214288590883801352626727636929267317959646534643604692500559963977806590981662515510862048985345163674337417507849371358260333943994156603447971832149943655031686123016569374372420327969475627620690236926933478769854115084068508126346806775836440239888291856190367072320592378056708491911743443011791425995028995274180373225729488833724413891242951599791717990948164332738212457439013917815915827281549763169327478939364507672978262524065782944920161386181461405780929997088329908485329746137791949911549310360419808728852361383001332991867972864954847382093412429790085171499765024085850597851823881909835013777786731934562568567983893261147502277393657363205994734346575125164524986235027470098501247141652701855045851244877487399511129442427172679702872883490956418814458902630452145285977874008745182410953649427655603536453223807616733921511397502662457768916184580845463484346426650427087287415432969007809808608516490349082551686126642941076549254826829786977016286977363202200668430161958008427678282089653654232746929311158821404662739823541011111353240294256172732672498949344203373506705621542988126884331500962801933935996210094150096224313742630447162270727046186608823441279099504319212965496494508544286045359317255178627257802089755245478403793235016256040044275494233783804175711380785703755194811435704330621529586222865961404191462400563380545531825912624578056783045019490920614382732786312105813228806171520397998444667864274906267131539188044782103681292393595478108735100772231753577620886860386334377791761988581672161332258006793345096251158409666675214535827754919843629077195045769162798906345491991022702894695613054957383460220167880594696095416962355845103157515593237445225192299335133379425422815762464843899623474793589164430131883316431535040149366709039715697883750157230248334764426815509410430714435728336727060199439229116961990172022569880626219136941725074688571799032321235332154387239336065755906257982996266998092657679153974740390237509545679935902377573766963510817952521082644265954239208506257314097185065831917905564836157854633512363804253187518232187945538843918847563033732459619506817609962614346638909930826634017075653144293727931316284736536232514753298369978975537650627570957052719425604874553309644321105381556586637337625513448940784043157602715731515397368047106894965855098785474324284432369406099228440257170539372670661865373108286588677278217744947723300109031151913708245719862475491535628233276718606839133191524625368586356864539836905505043196651576718419701594197124483555266269434424632578568173491336407616299630040288204578646003893630443397766707732498415194789433597969280643012186925260745355639299524791858165778765196328660591135961869847211262526817258514232589769236022276149474365305776914825664766074829856766145384949962509993983983578528805859429421689083694023297914934198970764965158755458271355973467385771336053003531963690999587504494857790559248028948498308527176553894885045732950789649887908049959057167904948227532062824867414684625310812591999520818653852989973453275707297937591614351275332316375709723635948170779938969083578568269588062081006221047580138139729866111898844529737000314529426243647539972950995720213022577283659193394549608575715893787958583520556512544219492898307242819069380048268051507667228381056548635074650929194862459630915276727038144242693110937243592332319928025795534977815686866970108117711423729903214154055400441023328659091420622655174250269630885710906307613880262427777188795079944494617132150519307561497885854093786423986961996220607081160399579197841974422137834339730586760600103602633056952269653816661015587052668106388438764865890316068406474794152309263877869118558772599410238763757227872827959950196248394961093727719158659190990679507485357659630627823525444864646801236972575623456567432643329076321738189824686273705041597166130850802128198957075171689123316604321144017010780482537417385850603320389544844962597150060742369973968815623271852119806164005047692570762380119020647768311403919022796682458123406867665148563081781967594643300174015377289696922612010987582144778249113662173566999966683682621336980719597176505462348917703309782375693231069487903199959856416637614837689833707761375537731743055704053537261342475053807211502202867866706348778832652794333900295202569067322700196561593459916205330093994444365222484540067334338882907427912496058950581412157300871636453862756454019557218408741707985066519540219946413099626994572342223696574107344484258133061408107200007535340735453881328785979893997788218936664303949387874395218927713048817996941778146096043930666678041141510951649371099623279420017002737176892178996591540471902576920800957628357211898568200566818841691645461105674950012440789430448295241248177182250684553134375970679997891352456826682530835644864758744483029017262708763171281047486874904120894860720139448846945311021599726665745621839630327842801310375016081725152181042973276737692136482376851663256455910156602238352267100694225498445475805635759013597289892895662939638732685431162244379796267810756858478344478252081896053765663306192218653750763364635735379022624382068240026594989370159470698089487238412654272368882754698057048831306738620396501019141224719758766007206386775023773878507355372632290847316622786258964554764133733367227421944599282369212160321000756953009623423734073707224427767151238507792140446921858631256559846320242935006424113540246973366196931279738976232940679172664804016037320619026789058219434090585690907514398251170704053512778076567604112853807732416684183456774246985751652125789764860812736648976294078474087558888238616887698526530383104538856022687488308236267210354252893977935916544593953765899262725641666010016158526210356588281713956232900347451962417280663041627769958343807493693162984465953849655926914140793421543751838379374882926485044685450966397291145421466684499062628202813297430112990555766991113511797769552315174613293990439424331501703297601324125566582458352440783823304888548164190388495508484600857416335027897979494875830795944984241668826462320921325849081339250725567435074023534708444451313800644964157919950452845449451311762288126991091592325958128847247375145625656728284041439995104575755872185403790580965098897598482460196372663148792200312157154013363381947077828378335324816279157610746049820273427067123760525938727318510564445127226246088094880710550134371092810341489724368168443567614368207082567105065255918038325307459184072807201885369244242598848484927564340083635279135155872200374249752978198448910864586629564251743920420121822069217454591117937196412780624670766338320097090446359146200732314671872155488093433931467948788001227722299290337261468438832234523571378397059501952247251226106319295993959052103105711858595577883586156799608202266610920981617981748705523496950905404645572608367589267407717888506218862600279161299384342500947152235435407950409571363416217424990293250871081077815590449475157871563241318360905929130496674005943471816864419939350431639377897546159274345695339383157030387798594396106378565499858423535041316516809824830247903043132058574291736227110091459964014157547953097456977972240544793061374773426844672774218605005137111409546175907720271848114523943185602719113926969173061452342346765815904087832060350047154859995440764105541372576642288479700125360832049821954692976483702796943408818319370776487524196164643637489156042673537188392598825061705055700960489197297721140798040370203924405182119748170049681074668928983185644928634013655746165614372202361178037975625738775572037887445324119448701568225875505628513863689408843608022496242934116304996915900537243653637358997071625927258833473164340571499912132491030820624856677286857875476867761703603571682074895758765406715540635807950506728751761965852276056202459138703514633946613621692029876145847929568850822691422886627966701109759665633700922064826055001389980392221952681897354922758241063401418222522514323103405414780698657524364135877771207833278234425885258408961685192086163814356817382194921294495994358273272578372695952910232786581715651043796253064810515602027327188833253778770443511758752400677365501659830300254656740268846319324755033589690637358432165383868253943461402522958661588191208596900478567482533948206187807605003332595989577028170490227738884535383608518643924561740228305382094507528761643399543414816470426116926227338970722570761443501283266749258242364513797239655572284012152064117573996159463902149959659743100662494171314435435318925655049580967289108061574556868524596710922940368043606155376284466139765718684583633515234853571999901572838165733811071777428257016389135490477414216269688922170966149954033531891689536180062784278248448175404216889890044279465682308168956596627011249961820912170697826543795839423903720431377955059711974195832604906246582395019574808982557909260188985758095817924471395467978292609024909624013868320116930428853069063904988945879708808567347284698204605738678108188292817378972529808197745038865678500069143409918834941954073845614624991707441608667586734987969783651276311244413033362457835992785574961989165299414503737799210419845110069476886614530121022844945300570691992709519075918381061752084664339808102810221575418903466088940035772275114091718945472359607559753647083916032766654220719840118356969646951269848520597617784071978658942883493874442037345879147170266454057050266595811933763155611863284234806198777835208606273251688771808576403602543440679419566221137932259018890100639340247555851556301806169249876183603136212878991749451818441603908478687724753029107349912618982260849682556163133310686491079984244109996567383041849501085073811072053846484415856541117309727651136524324872076055365007432720366990258144384667129954252995758383775179535999630746242175404449879535616884807323722439306001517568480640754968509805258168443515776578535609717676505261658858117189780070187483146794585794099831238555794032794310419738427864026348421783038860660167598398879192465334747292780076772386927725428357176285422762109059639343124966820132443803343619248919447908916089382574093336724146937274881964183627177983268516915220634922749616170795794784312976437603171446550511045498068605226806707111036184218769010616358126949641065740098456156161837948140029167815269110890405776379189050784761202142241212705473546380973942198268827830992302762956482228955555012041242168027563309276379073911752536227423916407289683467907049194618594640743953910943689144259938863390615515410495838946166453729857501830819003392785045167330150109085912431110966416538860486940857317704184450548282828236740886615930344570146384695349085411121619440361689062227403479194206513706674207664577570763861193231758800675541476255826989401365705747405316175080259705686108943961167259251211869669030144941718708224998034733775080837539754613336616816389951206055772720723095547732816068623946449537091222558156206107939588695682652936884990640596885293084915012877984118180167773287360239897543909444550959302329078330926183352444206679190505504297713718475325243188165608341987353322475614817813718846043644715558899274552405481480376636028548632068886706857811576653704432036048590690817210280280365666291992479272195757756037722250403216701921444599276193960280773387327774911488502792663424886100349439238271866885825221349218671778952220191603329946420965786283519848935668877996661670054339510298239375175556537259391136354035749261649446219092736670839547095366459922015813855534988185660061465993472971387500307276427770647275414628751136204725001966621712013226447992039903880031770143910746720184050567790992017686481328320961384647845951038165349765523827945213781442973178263617678900794450628248453304420940319328413180825187487827221548736212456736216168285768302636439172081969630155050729915419252994493063450219554258866967004273018081638243588186878726369682752677159734340491964108383812400130141696460454592087855472546838615094726278977405102373834849106556173281486541761214620005836693641329650967565095609705651740462013696101074947881548368479970585806556745814649764556194890919443162399045772802719430987327498719510803357694583525409112568094381584794327735221595767254031816533117928425208569836202535860301022041869869940353080054400209724680706063964082776283862974681769603930157780083048316121310359671912765848655830959124110068789019759444254147215025708262912366790902874576702930071096485321079815327395733167531740093697368273832896417327509361814108652879870461660417525318417802100105018288278663794191750251728697857173368439713752472586185174700127819847019499082236940136138160945000584969890687469233739656158917382544293246887911996812464053385007069616905151290298006387335830251163694820819694829124699963721098849514860383842138726909836693795107284700762208472627863135320718828985706554984800270750919900186602278350228002699402024365069153791905341965566789663198219715097525500370085818459659223480404643866457039705639135323229109457111324614938393338059852145391680597873841801773373778275477663905790342900000802188423843064844038945584067461119070019372322573074765350164225221905065013652943374072798506111929855823272801837825357347300677937250203661621489907567866282269613747824375038398239358537568325111864027273437704277872247664417307288290270579459644599382307741313182729566176705326543859495232534254279908517118697176574049533612860389925436308457725372612794884955575055297342174859147829291755118271438410089073441347277794234105531891221888557691342875882861760988759977257148659210071739782666600498212365886642126373612393759788472476955660280004120010902196585707112119285049732143117194806714768634772205768965529452870186898938126405220984287439337442196162336299925895015252029528128592004455896843782296016897982804732884070142785891850871804240445334682979535264754416597408619352664309656953832527384353939885308186427218006740440749275104514236991205999642145220304772946705242121870537335872072583507159584420918516605923312679269885736829619529885957171812285531233788840405772279075319302164363979152494346001257144779402898619452602541709627467273846598016487014433807490838719006647307627229911732022658460014217933232714042831405202950089535898315316593103984485800508824335115594687586457421392534562642033033128102528076721786454772479021712699843255318530747703058138655833085235996784799080442076867637714940319089116223574431637026424155519191386489007794361131029358936559075407805863248303797015913326217754683325569594642468873372816145106682644531065877960767788667873272632184060660464296653666084123238020459803863108150483172803335718322350472867605000516077937595224261562221773066150193853403839045038636697779586615873311095012562452165364765846289403285597423638531227885113060662205047726750837747680078255001859361066512966531769515933116145481086077107303293935904006642436510049211367571607318871652804418993994153744125683467896813282334914853074452904617558514623560563193507799067389776940445463832880361403420288954170210337145447385886681928886966048255342444581443261846500784241339672655055956607284135905205772456041276519552324772053430162840148087160287426235077640426714876762377188687469044080645214689605580444122212977841623791717843885111169873824396497318583862371249535833329989595184194189733597451749452822627596021593780533116614079632692283317054912396473690635803738680700812033907521599281771165879724470318803344364012617306360056748116558766155777259549834048057996440237221995010974055181503758966313063811929796898280205523336845825718062780372354302741078099518229519688237790791651046427046127545805132992683272312039071854868757897661273027787143119037169329118437917157617339749482042875878392857193613493650237121968136258793169236172815861160137333568248675760569551492804240760170298160911991333936940640927832127508193571048046644132998588003517391210859229746322136335376366729800498839418457772243139175475946539143584116441435749793452530876959998644657296752567736552072177366369230015747328649476168346038961726920010018049184366019509884841672519379414337514120761998163950404733458470647514230648779525143297740300788505622819154907953969441484213904112013515208782566295481901025936177810473130151536451060411662009985932052570272092415405316435857848230004758261699770121358019778253882366834289775709112572334947376444069813295732612168530873102520564004880737284740252449288825417733736683309694971682086641056382127571390813470217375615279750206982425453233322346567376755640417172203862116631499436546421871033882289086472094499508648692152860144293207726192091753660925119078808347023601739806427898731934549808761983104929891670323975963244642963014481035760238120338269396015037177140960886899100189184927969073093646181571509420303519823610173663490277944424798533064076619324460463031960441891672805956390918220792751266106741725066877250258173540347566508856604409455167322667088032615282144735372548473084569017954640296714458266334825240330796507796034991232109253662704318324325241001357927122031845017890529416329062444880242318099935939282601697165055585039299025556127999022860441173590666374391333341348131406521383038172054101470177109720195774631290091384336163016740854183947752409920124547399625780062220527809684796752394002404604980594735813481907045885715954556664503666559794257756231389773227366635414926626865020270883519713335882726725167644204242295212024146810202700926572789014807321161243670970334775099288360111464304256734681699712870831907942422264765930052993045048648151988951534427840567536679245519054954596971358285437285011670873843913543217738274458401331565472956062780075303920877466920370745714708974346292128491186295301287338009529636768212032256399523509725769528891754425591271392434931844419937116366133085089614735587769266731450290425702043558798911692339980813566060658658455012718810163456224568591178915027279914779936062959304958962828520731710319054784575145219363275863833380602088963535146129742846984319381752444336982213997306042701301220276560444618325869161054814442947787561900393032096738516469906605660216555951344480411041848740021291629747588702535157931858082822266921775393183174770667691903849788851208996086994980547394010865786137355157125461874565382622484514204045175459628545791133791238227009231966105464365833316646965938707041470310895453627334725760527193466534551183753119562476538487730649549846758165136949756075071532639804917471492578765652662922256733658805994861691036434114330217155832944095726511582328232957652332626806987951396280359445700353715385073067968759825206872658942039852694899724642432188231867722471588253322026708104729821870408917518869084730633799135295883125257754212017189462861029678984704397389578063699109593696919451557438319996679488726374500344502042907521198818118967360255393659027758454934905361752380585123151096377670045372308895504896758075378697293545212017449711838269427000713724166420474745982870310876719547908518370838077055358385612602938840257903435403162857848748790330587900835190312628089122962448016841250713670449873768810684989959253996646469448808474512341229823388594049185375414832654302308099878103349359399335061606972678964967687960691135700603454416508639191670235997141437168179970156628901962473435661244751195986395861645141023727540007339252901214059548104961070752506419034410543657673912171232209109195456712535987706842688833272023974416801247586286102074395635814330972926487305190805650877558738049401026214448812175571203616734039005283011890954156674971529683205982942923870837047343479809640223630875634050155445621744548241777470699023750573940362175653811014175512280523172808482002366492769865893880438695725103820189249528639926555229794857917292939143738768074183863303272355380364468599983909534514684304725950378409921550831825704076996450110675812885695869637851616806015235954007613473144596507063060522689411080115624365731035054339640823287138357908264973874930392612810109983285499075903087142400698394134723507267531053853543560357230951971012888029521725905747118996779100737428340654926893992457719167217203556857816879540751792115498740053900820378457462101991359995373015804629850955851207041846245726327915520471342410291286301587287223861458342707222314593211561185469041161080760380371355715467963677065477386567015249877296528311329596997088267741408045253921001202246626700399550369947773604518213262921630024771884772672346197270506026836550787281452298936496053272286994096007999809772925537683596468289806879492336814947622356621154844169403171582491166762057376600327808257552659523059501851664548478822721365404099699245701896643707620394303810459064997812145547649207668677544177951486550875072125807117141997469446868745582853718644557649340442397878254258552996640709348343569044325803849460592340268884190113211074211042381866463560023189992483679103611629213518758968349453395351984746482422890248509815227195866327515543270463621095545615062829254698235098337803997961910509843491969357493360046502458617485644117335031871553087151365066819944452615183740852017206915209505266971523637673237794220502403023885071582893663266391976913928873655242543863825256529602362787081884219796820199766552296999367240682876961920214733758028706683492318966379273738343997303586759779804455734391933122476004011765366556044115661269106710963317375853386884968580251210461940704066426863300002988933476724741450377189858972709607644647874409007367090543009728143620941621793322795974970417253115835838945628653649113943044501186259970288919258393737398361595401286230491114054293062300325645468142850152717295265307701820884508218216139624945242068247373425982216438659824525401155648765828962189661988399376061985959695389697624973245328936491567593236549452069931959967910455472081980837714146534771776402023743378540002776185044331542742259311906927105552902776708830217149745863213185794726975541009916113283846155861415510053052589901336569769067367661160582935468530917929878086740576824314399066816274185926644325629288485734446982894576235851011084389886856262166171685036462378406939534980228147618498527393112257700521346183570699909135634984138045882529564453375994502159216391175960875772267304604151110251349884862175468098835285902375435629082891059250690256394067042037283663059661029786149174935675062013254287697453045463425018233006356859414124975625555919116975224804545551139706129837674947685651013143736067402722178226673184958551451137555963683945497886320057878526825013870768705281410408767837298047042756761244642501444813566737347469223882941740553189983968354803525333738572248071604288449984844039766342482160604829817991033651912793344957270111709086369867089804476580116645725087674848306874338812063794172485707047206275048249620116196670826402457097530124036618579377146839297443098403706817763400741677437469685495863754410567444938353605009113943465012640915925788689580300698185538790302761933240677755903813639246021080102348917044693839305710134874509815347359466048182455778317164664370340425743542349755355089975644443961887836400823079014733417220149793816929474434532875466978818978121743815765416501621722529718246894300364911769653118080923091037839570625249955028947149930640284121616299442573125930644439760403717891044079993169950911680775311544592220062413307589264406082811984678943421628536379017003073326225275655411498743541594999333318620952639443802062826269748213994070390181866384973347393291871155306008996604191104993063851621946500419307699718760142717230909384679804365807453896026412704495149227594155519613959747553499368345591404661975399404734119885821587393132195118919002929459781737965051181291683231849561137154955021498430155940597822388985327666362114358074194031987040537111350712830215544947924672926452134363694149691988043082958994009792973722589018108919461487750204834188399434359549215119008776404467844685997829729387586093716716425095045847308140241194422382381501368764787389538659268927867989398675537883664455733769295764009246326046252605241642007528792780684949446379083616392142539336288169443510735233895615551575245012104659223659114733288331759383207897662293745606167774473042107296480250982639445113529075445071358371812924998594254932409330194513969320912698311748246973177948744615231945614216853625784097571022795111348920088619985136776004575883782542685390995218305749982116753307302746479157822133416003863922907403184403079555173171247550177706746415542482009216700934926380235874611075536811653820424249283462114568558846080983215961838609106686823222843574667369402533437401950987260685662636041852092082065838869533371770525848377608221209122169959681880432727566862165132969163006101296543580997718324058783360599998485969185648747093924562583143144161509632242902312922482415043255991583294922258026200952463111084847233250047061205198287811909445535928113872053326549356382682623821268020527456318379262671850406608090316130978894670592855265060637323286684476028685123866201181194306862564414769654337654831755630557043330784352839406677911834421719248952010226151733458207802458194773206787545393760753581185190544669096980132422999439774884177172022183114167331282019046978094880230193255293114245459292819053137282847270717983659615774584826910919141024649726995471360685723354511756867277920360524469408815866242764439467275944619181292530487669584462229258624217708975518840697077309422538756285840073434846521570897851178889966250151655541304683560664054669601923184099447729651608566165906082554737674868500044276255470184938844538734905271275103599308672355024469769267001797501185456630703388536865756117753028494851868395818544196072233632907196457859750252051991846026653560858510587116401337860210757210262489027218951136220884917370952931919882076869775139258471422952263966211842330016479246768359216030460543357408877786244225883569062331897092896735220348974627572730159585221807056144013210904442578757309764942226992062317143074636516262412117591882984573237695935371435331315651741539426945529259704243776074318548035942960070755220696287672253701380983364909125271142494219947153309253043871443862824999650835711714625101781170822748181238488350698550352178123562583620006439958257541415813560935741470847624274272234422100409016619297802305071330149448107054387276618183938816039702100434212163037986037250386934652390628426792373692587667878802468782916489327261137066679729139744128773119679771526468540324079589203739107225348745444241667678117769509126545602835415509883200172400463773595597057566885142549496328727369292764516023798777103790745908296465537668512483813267073631976771887853677087032447084093301161432980609915568134638740713274524079868548892480626321993881231755182496776972680240640425172906882308732933954620387531570070490091051570828160621111149489515766300534940098699677846425205735342749445595504415786983850555461673018567202978333961467832852736538120240862615608023616130136617045374581982238102052697914948793771214250528725239185885215771980168798848921092452761533526606309251321117390609498560443934465757438273106878757299396084359894555935313975893747566930450516316203861855007100209088899989746852514932337844612207356415057619167718580698369316877156291717105320338735795852977667131579971948206014097579049925938548540606922909147281593894699091654507087452225360700319020504729155333003284003774340008317876458962116307183461335435578855341557867195657369104940094408867935116609518511228075516889525239446127040311169794104944572176220388557812080629613252626187251003506895919590881165737545382530214263297265349494756847898103431403739560978603241504970648624079104757136728307833519280911233375803118885661251718328692483662990795553293025600339706895525434917597713757885239076812292703297628917969314258561539137506977856644903974943955163501390254531327979434221758201420635100003982669368498593396510197264026783864315688329147170279331385045133547749419076168982128107780035028893529186234626867990866805612071542410814432974478574967965554155321640613051838289219771516900731277458761101906148258138974980760513958896080197311489464577922230825211264131319004951176447991036821835121780538717763956719021713199153755497941479821332351236965638145898483335792191560841132119957561454039608852578292338942684873782913318286102608529687844060750672211815270159498956707870519160667881380901722887804303390348121067459721930085511696008305976676744697559353998297370603478682084812780024214123414238170828758515659743637208451393352995004462105552167793303840475777162247144653011187563392302386971436034426871470619810700176069355526559637201047723187837583697280695464313837919518602418756832321350973174807816327895526053176428776898615066256059824592000168037317147637067685230858250487649771108443933749625888673124713177179918656579713985469186910651302741410936214429888752134865571837317835413993671153758539268809361412425434374724398882800295193735665061727701857273757402338530901310518464483877797804748412829162989549994618410359957756996631815409134926095991777273947276946474588026149895113569712515385034048610190467085316160537208760491753124766712876300257502501508531829762456300706989396948528729827569670078642665454496962567038662445733294130553045103851233353546475935117229431367452538271050288751078994244224832106703596917435335694180037177891000810147211682496905527559712054003776305594140334658590964005968711386899508329053397398201716874487312905023630446453429537950292505984143151657177688174272647401374324640300014746442820038805894166917527605671075311670746825336414087132945168229918446756348343685269133356357877786410029757222995539732359566004728089932703336010903137847071824232641924433903395740002440635087185480158139146556155181429936068141162502743980244693869800461834217782255019855908025869213706228731829800950876220018387497202929878398075992614065706196800842226057031211323728512366626692795857536553438623397285730590862347564772061104391465717353975779416243746884274845150172927362936944542885638661210535713853706380203285731822091732566605405453200045295179677424426966740280863111353082263319940908692954693252709639102822141975689857182994253058829304729153545653300398890570214201200704837603859927450622656462851416838613829121352104146745726295307825941585097327504542196438486338040072182890452932381557531885268640257904822263768787834892120351807313031175371836209601273015457852775413229945260493232070181437758918854622366370774624251565501578920297582342477798318535524742854740715772908853893870443008329367830931631271859573813322930984139702308051171188959124730051941195948515698680496330397270283058794533663392146306140663261335454642731394964936160494863812807025798791929865898014145678700774296080241259578442751855734594063360402654278797663727584220898681104302351236300112571511641753509396135344976680712875641701446701021039686765605547558905469082819793824773695104227858828712494601399204246283082573323866407640110495501346161513065944529147849373940277125815031673405639027191031370093139039802028287370936385503835123003650920346250845787274266160640774023986906794807012528469208776122864038487370664350454506592832283085781023358615025407951305061931712949892988570140985324085910552940142042154531130254435199915279026078007557411824068088509293536197239625345651934340365468422491364491944668617844332450636380689088780438357829435040890181130352521832416927332872370830230840459325082212700165087067966039115510140337008085045391355388809135014384817243052700342806790437725874970534341227797613646365276628174900816453348932044929858154357248617911588342930598787467551418394230295270166353155027101722123198687101097315051406007416647017756306411640994227877398462849907451205179593942766801051468117860565176493685576476180909611861638071646002118341394475961703250188969541640084829893484116111065442371490305054837727708406601063418330571456695188287341917809538874270642781695871810096693613159189142695344704679175600106938534688676912693442250123125736898356025138796827514040506608400818293037689412622780036183815500538558330914648990059964689704195699435956565300948670493073111856393500553164855277965229195841984533544990987617348379831733133451878197166580650085146632512592408752373017805901736896366246804238826251681068708971278414929665538259003779541331624259904453611094549924953243060523883946064268453775088136847552681714335411711693396158558039155038407080060159356543685312258505538250326781531232741793478946428329356548808445971900213354030633303111755600423362690310923144114094556233440876019504236258970186391119291983194275533809989439891780317521911256446724401950636537189491626840269515373169250032452002139457719722609310150320117206132627354206350918418924385253329320029184607360699424057302839384737654129208202574942131957491126961551118144460739590740421516475620040017288036826286232947084357086487044097455464044676500983594959731714273121136108987897482819947490439398709148881816334764994753400897394530409519712951686151820157141639451704480691717957063238750554543023000824088274528183129074283381140831895007501401178895729535041341678977320057777557913209170933506893344857815426737090991078796085284881953632742448898874946639957739294528644301163206064039647494506624878546447497199963041268386172910592549168452640351037010355923471917470952316412757583343445860017707037468641269917434063319579891760222897388565680769974811157208200475014948339509085152922427253874505031646741997334933064438935995604654209134617489254073634689315412652299896808142919032837164131383995331931219908393038292597764562594891345234901827074562342381544108192420277865010832986055836160643441195040581592477935300803672366198946248431550329240710216374194088351706622647865146376041088584602128496004112132672664708407113481101785611685353260001665043317103418475223675622912717061281500503014603538907659057619849031110425161010136373372639791834725922136323753438475169627799784560641691422180323935041643765103648009456231376267375831888171679639587422751498520740533905387295585033035613724777703048903354421394311542504410786191577717059550694761297488947486839403283460433956217578238753386739714929773183521018473087968015757294113457392023017392705230606013057715673448432915294835247148696426403168190789746783174596345119842323867042468580452755813527931035962294533568784829030452250029935114411928529478445583735924894871982392667113075330863656047890714807131057523989369777894680359985765764891633323304249804956345088649613041629535541226468334021876045014338076253308217865046720779999334792696175903015031186507426533395298733301215870429073135283983735773900851729170880371962506140849230314718012865864470081692764648548892479067139652340021581085306516293479844269314137910041110894354533654959278144606501033441648822500678311485442763755636687420602492656085921913504771096435068482612620680956249698507204043214582683161093580340826086220504298876857181830196723356090041805968850620017592731867075695925457177608229606727553790932824383676990370459874519227281472872608992889022315646612970825569356090564734173308851705890812130093815382941452788165333522399973574996456385525506000419017340352105977282468339263921888399105088593243216944925191177060375682130720996758481700460815610740509294267429495043131619264043608998702279225074456002301675072037645017713496201641064776739720409245944372942476289721753942040827818155797107431062948984824478314716661510636016257757977059126061868384446954416622067784902771592927639653231441098416743418085832263696313160410484175276906890777684200567360843442114948425884044913546022961406724256052322779990045888853425290353846316256066664475268411834547892254579839016626348643643597370343439677430748131610110187880925642361268736150501743002731473574392227516321492815823959407578255983467326478717035198553108316977691513996151053048621209985468431094894339343624698200195154394054423979611807411156343056594248700647841843751768922125394204593260758618871227496079116907313971873151165928889286332969546214821587980184290572676492955021831476224812140351795349883659786626395256133583841259671135175998666994947114456009849468312550075261805793598356633382827418230798611432224606876631851076299834863138331300291421042614360215489787312347884508155077419090451997852511242505791938717682867577690758173548406287696326178854578569123061098777383455036359873182074776527401458125635904367428344718922570400948816606909725210576524402033391871338488706324275534297575825539478319741554886390605046206573491779276011705517477651330814043023729213293999257845353717160101075311525241620242005775578422406725418551063544676186075034698897699586236818807842431085688143781490588134525293813942898089494545782346450438315391720687477569829694344567139794770103963916580270287663690824824538274612948733277724203486856019550572866597964782227226404564192775732101496894516812754956692695484782763516365885321852321170393328873005748462297397154040161051518106212025499690265770589824065502222440923374492992295227045092692637747558345830499821262124653562204131999304456344814434493278022958581401505173815796752257121738430641318750777941632477896955649522666366131828266649056553064310208170154048803062097178476613072194768387432306043679898690885172659079056067406109202627820631631366157917797226264847767699888027712996793492944325496554152840558930610291564118982135281364749487166043536587219397358176331114601352413848650472269035771869954473016814763552804746618260010283110506824955745126284830264801277470421133961310839828654851837415289042003785151483235585107207210873128706406350144240332817722536885267627765248505929884750070854698308484412195134266512780831619484755415095218614397621641471758927351649218944954214353507061256349817994134553783424492078980431859975164797315093305047804541718556417607860565081540262522228871628828425483948970867762450743404437236261496251703019913628332856006218601515244060256339156100563997994923076472685671917768301347697432584385582549229834983329648000020861160989681943278094076160648039018169804789057891348320858742571073373923534342009307300077131938975368605174743423556645576239350046325268346003443512114827141835938524358818896621765686539613052233943414613308268470723166505120951054585576446495386343173904498424502866270118153088313686973374624803413899383327732159645222296524901678371896567266926697134034087282693135231048035632248411262527848475866179002732956135281517906635983032961152631193833705303075182069385563771022307319130480505172760152845648120955067445730140504232999544966059425909146982607218726210597285002805077116035028292527121562705273366403074718485697780464288625327358101863262081788395078757349567947109691060211936911332024795536791206556900381594794071284542570268986407648022747453732433775738722075302160038779823497087540834121528752449147926350246015496096999181756714897452971958345230209914702127314098964915823314120319546936036069129636874901160717425889208122013374785204874327356323373410542827213493903945436826573860890111511432075093485823167301126007034374629300116002699761469015823213010378289375412884667033525320988459342523454045804678841327692258412417856116287180211414643071351847279868581363957447298540299786465032573638783928513156089337013713106259720313606562997150129177716785264787514406417924863303322296888645103904840060249665097661764355288409891713753322205098031804094715211615227433508033614853802464629750532746118203026514063301559688645665295156515694916065627478003971806313294881300908675369654655500598809523427214832082195574560810015431638163971808586359738512631350452359104145818434729376077573694258607776856985395962507776237641674618595564517917937687754131805522412119360897394778219458056262080312499684083712338565676134438911705079077641100401452844761736062193931731890650157200097816810246948965284627786563068030891243592946742656827493543705469817652168300878465038213565414087363101052017970714829768973353893464203430733560144305324766691354798935783733350842070346785630438556188938130770968380099676437775255909328120820256291423947459037993315131420810155706256064593248773581480728960774335043908321377321833267504402859105287709466041026600602197417876351999854062406352187519846052803909944681829777259208446699765806676465611284892047870709515120050305173375495631211455349654165780421461577002721464112604422347176849232374493644897848280178218184181435530868334877231028001671848243153014762766192105710055636219270514064571892017017518404210423229076555184574233920815016120024296623932457081461876769008068652314419073798735661303114736145726579571792583274317250787941698939518884111442289457010686213156191927019371651636093315643136477666083793696390050471605963534990006926125837379046029458061031437494234914315845859273560251303263032954108963551900806921952262378653412708229820190435719010533906226591608462337781320858599589036730874024799117596700678216657928193111723360236825520968225872631638818513005872323636461488216084158451592265735091152092777145418778642401003197793749123707164074347168472323748259625829677867392752517248596611093145822741464539543289182830773243530017859600195969787407564656203065406898730216450258927346535238583353691122511658948278935487042541741306157097807487542351937237271477081835742449561192418490437867163205557589403906245104148967805568210250998445165200040955837172240884091467100847003159023327032388425414232526716304032919073954642454073784652025244385007715374593817904831923090703060747186081141683639785342847643551870581627346718875981621264963459488066612761212482448421777668230429100442992056187324418217924117416910493867636562177248510562055192312409999722406880445460728799033924630093553411723681453466979928004700034352447376430597646187015169529074541036091873858980458137184584153729578522676221751403809950533738839831128269209049654833567907037864567049621216087324903069825285064276746803078801804008740185080935983170367785715264362145965126530446378877495298204553502564726943005564705462962013551853506375321823642163663752721335588319614646293972708387941842888626014914858599597832420028844495760187265540943551516432201269011504886416405943712212303990966432463698774643235069080054033145040038806994180908686275592681877334729061052190545680436075958612442011373614405952637989336634205006080472997561721155673985962193500121096327576497091159437810513153478056322707425363740152477945195851851259003621296006279192972356624445063986538591782985888610608558562192481496584310232822456439465565496053323829479237217453569353436032239893708711617843310357562207543064452410036752229311901912310917910268971587444529799049203520553402489674319622214386100874746199835933285825234346209153722029171238694859003017010202578667630136636645687202484592108893154690365376089801280976274570057183200191610471093964928705155119960626816937437474964877524910039140240088932421453216990376392522676778210759361958043353132191308529011405478843738742584282854925017840521350898222075789120809728685296797060220174660568415135382738929319899285574174241266022365490069591130397250120092861458703646563591707047728509552833777053770535155079877651444514412341273490434192106494760289314684915342741820175544862147428037401138042449404787509165290375832336595663471766582963269236822552745958760834499408964848345692157466892666119920981755772034535209224573258503977103886525225489774296324307655790004734552274095165957838150645606165391089239426732113940357469396652963050119949083336738947010916196485998974777565262118641110845945054634851674657909775889745449644085444153421410907577221869296158637446325476755247472401198387413711882905268032071589121078963288427481493142662137724898471244669680458136691024635311006183813820971693989293476290633096508701490453351126923780611128728558398000748492478149917208122035096430591423271437328581279349575137332894075463591194268301246345699904576072565394278125623154031473783974206420748516548594634302127080508566609292104758672671836866796978652737123288804451396528834686262348536123765488620319709436366510054030226453956229230820615280303641358865955455900246382328686837293427718415353596794205779641693801046499006912074808594589770670024963493189362330676870318522051404655339146973216009741468859904669587738354747138637298759635032894527225508370769310664561849451740256255429528897919436509053853317572635499928998560923434166595666753978617522146542114995068240982293171376064602773742061582685839541631533196626067028825163699927207946736954534264201978550855318528953753578463633178651323532608864913477739103345079131253667961906930636907687164412410605474521087300693122476126385947241648105072863193028062700003196038169701403274678424611491423906846571743828084411730009985789492008224828399523247541606157288942710030252647781393353437447257865780001847398307356067942157202868228841911950000695625502357924878993167364933500877140392418331102952420337010875576480413063721828422738646665239111799711221971000995295841371893076211674585595703999750422181415596059264760032562929033379078628262180799897570595934013819828666274255397873315493139850129472686937873163212011341972342172242873344280968897194839631424143217242724319380613892966296641015997462002829124757664249194821730575037466998803900095075786025019932914127077834097870775634098414489302316539694325233200317450567126435408858726397838949050377350530161749023224544151902948173794337354297827551990047284337141528594237271298771190147711789311129993846001208266064735546535047870384718574366311548672163947472281099119848043326032837663800486777047186716054878479082852603956100894104390365950294523092433823421361135355677686986603331823141676445957645590037923803517136083135533465671702013227569192350589076385918702756729001141352340183095968606721667053351721871165156769492843087466505622257719223273297217171743900218407886572419771617349341574204082056938844543698179874719197457007176360468464076871391958694367890308926829327521149178488254615165212898553845866844214938851297845353973251412258171396455119931255925087024928853264997770806641862455929644046136740222747194760839492157664658715090945643634242958048173622492609085811678618633431603364773028257945067458705550495200260549952002390106105883425967802190686175291345392636576334848276772952965353802027855836759762300629960266526791377356906606053973619628254953254709471298747462779450302674406187772163673742658537624589844905660055539637374739935046194564337215568559310255082504050476759854153875385593085295773781086689714955318481501935358272001379416532314372165477059514869026168112861180822774183167310550451671269010264475193627011434210280721826050908983323428868555014897634637796480509716788916252645965052774442499855958477871175603473272337102281266604010881797690106441618683205315788946671818199950540889028619045314758380701800232026796246216669124047944738994147023166867379542849723404654957904811793584787545210415906945105168147262920956189519881055572854564707031069607221403789707268762191806610257011698772836497089158802028559120440927968899701316872323719296155178034348737684681611645098133633876177298077040336353536794204073432296226994300878184715034701775386095927872083436254626673159346240062470305537559485260105752987826161029757396141053332023350277329706969948903600837505370658576729905420662035357525091292824488096504451725776361317254326093773417919002914053692488428170887840710604210461478796153876100710728838409864485854203597962750222307531328133617216315886645258085094427266835886626692336725872835372877639963288046331606089922029669423481207581805319356912687466379527928924280671112916734305305338242344560130847196619389684149545254723227759050848833887706641346591998248402658646558290681892443054523452811403072074849002066621632267126327516505737954371258227140342150180066184956263054021742412637539094890329077664656474426294761396022271066803300117263354752179803028705981108197861103613093242973936099174239911503029753270480335981802509738112080784126649596287694081013769812786201683823937472727351923862053050847960413439814395097834390808649131121792188729081959283607765548254944208423440280597405625521621699190696733153005271036026221029909053101210579275262589898258543910378224018030857082586966330170346307970785798544240165332788265616658537815212998880292879187851657395058202686772518743075096396897735814532172304929607033188612856824148043112386334755157591433141965150446934427571237450740179566292480820628821357948232015961472031797355057336988503066590340369119153367733127032244447485907838435769000104648282865011045311982203248190512345685459042164338887237185213517886393293647401261883077988294428568056919035782797054862766151645523667142859223272548309541963041697094686352769759677861683616271819498062108972109471470829057313850624507445010165717223774551362779921517219810799053315219612695450993183776606061810823060399884804224833788897401107042976520490907624520334282148459773052183004676616542115177757259896695293736566576283448039885029414613924139963756725440939517872818434791574425328762173718308604917408387048441191773571898059927788093018458585083680433877134005424993023744598296615505496371708366432147192102205040192082095663478556142616826253153688037217840404985185800513277424179657030534637310618890959858639163729263024330213324249274166282850640777399425590670258868292805353240028417169103546535570271258770440300260108403687075563357892906291942560197955909777500874926607772364289124240463352049657597037162339739483482681910632056562870157114009097446382132007596934211401618802309266375475920840667582090983593389037217628947672692937283230079726904006463359391260920251106178466246561578480123534706608824149287669063894705400949097058218875594600069996202967894133274708139092670559738635512867696428637382329188048827922332706354532722969649937282453975998120432119011139933633777291152599890583420795279235921727009695751958843648531843659141618762461012433080848497810031276157693741435730239810007001537587544490633007236097362129173938437815498054916040268348900679824964457148208633468598732547306420482860407372339744754948637307771036780563381852446777099396779399009906280912869830117091288441519915993114859729970699170268753300363425023809125805073644710184057703865424797563474666975292596673918474166530664284003207834904011423751199747993524888993440315569736155420853871024603206568822963888302371545120792077534409563552037276370198732844613823234981483484879212945355750911382403562738996456573674703520368202643689304372110357902299938503494007664043722984499243354806938111827505793600971962921915587423754069532171164465174867653455842152220595680996097197803073277989504979846446436086880906340411986927768807163565549319203834160384254549712790922435919541775364143189621820134422907995841188590315517505817888251229098756899587248173009727292446152648085890875416837087536553649363712029998113265160805602499742363189139431886199856483068340666685306599090300002457063287776850477626902156100294130153628187129984167623582542002401626751984211015506657697735434017347221155592307201588529833617235954637352677191022110585693807673581756530460523790082608831513098088219767586970207330395261340616174545533628702483802806556618913159171100448385987956476149226482514958236898186429008041535979886844278935353066734497297445039911717113543122365282175079053749873064931211152251373332561157192443154209653080610860665364148118817956253698736684921137945759219542812199012677400268235124441306451770920667734814320061941621314630782626535084794155462249281166927269941496840480082430646094720863844898149914330528508369204183876452851028268244014649432946092626052595633645118369449831911094584214273522873974790074084078551936215866372065499129782019975025483639716214982801147888855996865760840869126831558445605203019047513859057985755185854627437597114148324217997900296875568002556953642775726544986548989766540069210129482915287246055662220087690531262003440018789236045888481341429215536583130062989343121584323229047407104399822547063623752733691569220911371762255593494554718289861542383772091405296281883985199129822618649469371901271315281671891826064055307903584654366163509106156439951631419804043850421507384662709562174510989122641428875944078592113962335599720813149013807174301199185766930207281097621856570540754664285118869229129331668689032439330299766036031790892750163424238598052865418338861660852097276778253426465595451155683584233713457713852110260388954052986020180111027249148725904363343969394208922758852449494885512042632616476486183792000407709341022766287774525165559799485975950128657770110150719195529709221277792243595526952213772052745763097726167412376534414035534266138263445909489559582141857520689717635334550517418975474018354257417183198711742236735505541510127670789820068420341422855629453860739937795153034665430987946618492712598748437899017225837402061930548526926199206081342259771800685546805583692783546739143742141824957851424028744659428827817254107535433902819572927784849045745428469968180150289147609551417088594663269372879150931667824103491220824701871140710736273209630211794764547713593557944184888570346050217957007448310511815938812349633481235889009707820362421715754766173599681231514885905573830455316984646299880907034835331961876728335831971699402881800043549601880742880047377095809821938312133432544881582305857853707806613259256785777018693334219768292355741501381937348409244537338298817949730391831469576933746179088290362953979887182116059478226594558330130342688284792443473678671096822440652368407254014640074781911777708001868442624446654771239672756551637650198717911699026764923717037833679999757032396311593888460820590469481183782486509898543240760787136610839038057556823170278815879319930139346764291093570906007637670714265691626602411591269036546925655395168258240956429636947166847680062463696059454558564865112802068642220459171479361333124694814461640657976320225779257696578908269470662931166276633812929956100710347006150581659907691329603347134835596870116517641252110562126908507069150904679466538216656459910478081962430576951501973629072325645054950145325207906192916153657023087474938599382839888779343078925270301358714910142234869099406412956310188936315519998529377000251920349523013641020002254548502785503276340526746969495474098396058655144272466028650425538368815146627350904460773329236189733504626507176298428978246652980031791653829640535875621355445211794209168986258503464781197097474649423907385096677534827677482389438076804482657418940327288039521219575321136654202274142617238864528711253936705093159216610921051436215910140060203956979808077622504620528722823333874439106077940486828856491105511057917275653988944695274403536467650736959691706873448702146830234888481614966979954977452307152492649516859265794112503853960620484796047385671853070576859170313877501884588773868100171025146257053049875722489523292844618894825068451879410519046980073199824989872255807917377827431467579036720768015464291473951361901749345944652231302121348969709785453875304191722872820170697477741523452435744775146502654778114761491736804905746051424792494433549956760016262641144132368704480170201401989797336847646014856158651419693087020624642423100237135312761073122514084870220882685931695003034200917094158559456565641023489202566270486671314284689364955475948972054001722277339819110815829234379976857401061601735126847737417856747548883697319647373073914536490479374287463302588619862046933914172694071203078974933169171582580546944279358225931430715892725837161754377701765412693259780066512539643253903336159898982726410546968123909702909428221270744604978541178980211352977659381668621167761856679994045573577464807505523946820503495910047829299527085633342102742053166087505691216834002072809553837231795636665951682628893682973082990082819552264927374251988791723498373639717539667798353787555832067663206316446097411070761500173730879289846524614368780066278231106066053448361579255688649804384172686623965741447414192082091310090496881004342248102777150399658798005768261251541327981832079714855479183972336938443926712114151029331316325889409427747281646206159804642846089311561201434760312040294526647486917938305114983033175131333030530817835260472571880027153416152573831288731929233549771830292760191753218672084497096854318579476079451318599824230322253049064325612556861398946846835471743604913249743035763137121059321761809616790574829800959368530643766884832297325882784666243448068271375073636680548935102362540908435336370109934702897946269637764149765350574684237139006525057155891577818275020161217641559840792640697111855266069335435611574132944085410457907156707655028474404190185490134130553577802367275128296298665435416141585891142124014102830617273695803791825059911166617723451238684988911795759224629775509641431416263099790287404053836407716970809542819339717789174214433639503925107892327100239858306822043819652076944192844026489412187069114440510377581350804501171990363844864150335687649623693180643134044160575795215433297792068943880940152808859835052421978331872334012598380575006331153676909163229820057633721505002915562162072882837975416115425109879842656691571851739812808005782874257103870436875935287027844870669515014656498004665606566487773230086432821139876153220847521829635060044834355272206883201985202550068819785758493052299526988992856321244167151906624944144090841514151587105600323970154710115790489790355008813551234973032309819299504467259348899656637604820234586117980612457219565551495067525483081865854319451360669801211803398162279441326297380272210568349749092388589064035154987598914851885991193983531932982502226004612228037786764469024261778976383795916421925199780402349017383429827839698456988340971760466893058589379069697086941877175619062092308317136772791781300403276069324137150060594915956229374574784003649239666661522056643438462028615828359907000941216027044741259930822659415892268565154721123401361736131593691520108274397962297007223151804667043729734555732162674347906701404512255839485834414889757675080895284639538359480559579224156208919351714573734337632924093926256740704478867842765115945300875671689690942573994393735146835548703671295254494751961266254335544196452074832812453404266484049310525536129793886950178051192666150970813136535938643691066669447705350296128512189178562375578826449655899042250997500534546629155944187339963226178971723480986868547091716363240965508823636747325847138745061835905302741250761378810790872975504496602593024156899462903806914608203040983541626141130646827521493569841707895758838321034421668850450054390375086680775840069618147153998083649289097803114774195213336478113387395846243620625228579875089189413007889814164162773705744615110653161442929460219460367009515131815472471926092630459429838826746137895997704222167119443602198287203522290818768629314698619178477720324215766238216452724959428826278370137929443278235483630072026617580337824939781541980237864696968785099454408481279021696193505864330168775603752537191162314596515578172771712998283495091563624880804315067842466890256229673027439339404344416033004502375746561987463938567108575424443310551849208276142885192905158906507600260543220270225427118517852599563171079705495800362047552439075944297578927897057116370529226591623044724425680871087980441796894516832542694948258345765524241181793877616835651042089891771224423552523730158626939390780317960302512130506806145073507739235877887353146835039318741720612351420411291088929778711551367840914540038244443018639663401906163298745490988625544558315843179040513526678064361279966565418726312957589853957469684564282647093528980809279820075083614662388799894842941197688672268407068388472792995003990335658852079874650206507754562405304711925514033177867909873619762223907763189317100437230730644184602686815263706580815566820270356297526163324324329261745940299856938620849672335199695863617281383107858821835369424473926663409622361789258028220589957950534494623346547552800853802947123625460458594768637950159474457759913596641377089040636675039320097082701632866640246401596472424773400985161260826200308685595047589237857648960374736479026668457991348211638924467316932358443677944273033437659731134779217776730863175245239713267478055657705254078182143747604310255946791752528786961581675788744323283563643623469112975672699657785988516249022102840947961326178651102162355057349624279527458242815607208213629262888865445743063519976821092581993974096968850543485170102406577960252709784621845678267524886340010949321558769385505480011271759145479541575726495796901633823522374280306970905141511730853082365426835500539062192902664007870250923661276142167628033530896765275398617488915449996297842954325417998167637703402058056016164337866070815580940095919786815305330979057208439419167044246474208666783986691971363633354079793809805355406261938461593315070555388215017479901211695984462823089725600672039195117355852227030132819011590943094449987502728619342748350823180709741956535167019505397705127632097792726553619281848419479757480616081858380936337510530225354272668437831582824125474762968850843663101734429404785600996275474559331054497433493991020759816172256741066254917042872964296584776169078293320422358972128388027889873581255339103907319556912808434486805965260347811882605521045312570353530086689531866911756809488402354320479793878311460934497545599023766736103760835049570080920979528636858438632601660043904901983001857487682175251103955095976126125273991630525525808996252314370823930851591031159981345866996825683228186399579470107790422444912983921513860683639882600922052209304425944811084832519453249361700212572528006675661420311540095421897812247040827241058697691862741945409183443220326871557243510008207272651412293080302881747560324535110491236341454972083256478417740102235274397554481486833756845558717707039412166669817493167193216866776471023352466896149350794134977320722454762230177830292000232175064397424519729038033157751572116616250634453772746300873849684142084860770530162221942995582848721898742583897500322181071013186206268200016170081113138991591108228146740526150166509888273338767953930896320156711612354613933912470112749218186333108372683905166966864859633140888047524048373013401117805048289437408261564998249964346769121909513626049243682012392735531906745181978340712315757005357020448118089901912276038183622207841448449567714247031855092879578281603419254054690259534262775894779077132980587324252320869702766039619404390082472656519415807999204836588864843758635769179803033388219547563355324061463512414206194392627666085093363905827849226810787953519911110436071295609178173648646959918001825070879188085924522856038938339219222974957574968683849061907603582340859219674094205274986637413569999138038200561296043473961068511774114541916390893533600102917733033853260356238774051320260949080924289575786477321995647965098772583535291111671833570535807509864663734317114364874686428071608379612374003579022742039256172390202490037591708780313470980119216443367038554284725784865389391778631835199343023155183216231485449085008771169104686645895708057832085261470118808213969389623411695288325605332677605742941225326244963309842726614111623551465638861225602397858715295527015887349347925908307858116505385910607734272270583883605229477050483034611883104569681806767745247126077336765725334598522150476953493966141812316324427016704833232946449261434301093099311685813121179083077311811419723158084012296281844375261886852279402525882026673949982359035810270030823184570855260892684884669681253950809116511104742684896173621854700689969495624636881687304913407231502565832709155281260401359354749348989366754645141703554068092002250029695924806936087521370041226465013840023897112797911343499511102175736438166418626277648017353097156665035517730724984226374360140878213201072142351914716813168042501663455758622062828693539776761236430761884864646281494276274514759044972805652125346519645697888823494086113306415123925821601794225385063814682576629638779647495628968759066953428974503649839369758231953550075915120797967374307052918817569006495659044625741201893018086950652530356908859826515677013770848161277597825529962372857977939054300150759534381336222416262769368361328720421547051936369871756846201822881926047714641536410932755817797604751367289557715591341531612000581186668711642540748473956185331043890325728629672616819788790710555471509319247619578176426919292066559830953267808693219363673067936996969133455216453419933848905648032285493952047436468392864879185284212349565331189805821333976901862260236886656028410852117521967537817085862696380846642315661748560868377251988856644541003805262724112734296658700996848132874012875962094889515396149160453472600157201652041678864960480897309568778737251365033575440818800497037987167648710677718612083515925381992195294203048202678373920234711959498771574851793355741545883687302517135697975524912334768054234873176304155871451627728382893813837930422336366799043716493789733817935910804248937551405773714824476680754851522764717037077686636766815776590938529035546108177937005646006648349423301974606390817537184465579358597560668952085552255473770783989199600745275783759602880476824967644266320456221933166601972680607247826713673949964425904824794268224271344455016692995196925716305172256461110712065359113046582008596019854822235645896911322882942173929186366495678523172576001643823650388715252334998482997462848759667988224970634035101721753868973651103659847097764987777411232338714453913009557038929370219669545747943937250653807048722289241787533275193970417885632327542604630871119820744280410851131318020547070224617822683510316794738363266565751477141699433667721752951838947358022264825374667045547991817614340301609138761762242570704470082218806031195753265517128766839338048527689265450192361579038902208297356200781929584039471100167887568174575178634870123681243327459497352503519721836687597353997071873885430787436148008302448439142770668346918508418912407533785271055251483048715889427441625108054029485789645625807011341953456829787782555899791020700171863632239269452109668392317978658794616179387728777456859976787980364921334627290288453090047523896092513994517684306656383834052345284373746676307694973377479162590381868425083194023940118715262358458290498995193025986935966039417292490914430116004232427135319677240090012010485046193816631161194678459057816058127482716776598630895407956606357295144353204272360149841416254812047376083701715859468783339507342321669950857772053656870360107618013189610924932776964619722360947818613938498261259610005243752283647289048927269366824715288240650188446338301202184859162417719074898233737886781541850770758944883328913574151630685734650677482011946068606529805769008250122372436089520538295504997854111627544893390584398372572579223265523256595407200102374654977660505272957762813527034950970670808910917285662918262377487154657551978370361792211404321955378904448266625958249056713614028885597140220421194671109271739241892522065657635860116661808487299301570813032617825796951312190393023764160453651905847446289361585167604597599533313771701992226589671412425671021104919373216678436930837989639549776642388751508240963103600666440644038803006434184894078251071578526841486454314871553036830862942309742742424815018944998281928736316962161302573527565066871157999836141945113431529992756023096444449986903085221619366704672401186364852678077156223630463394329859531123455962651865641590037173241645880832143024311495420154942707488372670392037477796564176920541458775940315450490897943947917986521564957129998397628341239069846677603181218908017288734153694021281198491779579171814186192540146973060891937137026993435354722501379626709150781071317261335656639430138521668389617537805350695348130668299727657197039117334766844705345124051680186873897021905743492215263899046155998123804654773737476674913221041163028822074380427081564592325882538836850576488951298855969140605352621921649238874267929013317927791891249313723810586507065988134590900496503461281707154284391945820212597571987509359940923124326223273529890463230907278789453205539810362238724294740499723996829559928279316689630155974089616218691827906766883752916127559110305483132860680446230891162035323918614946579907950848308282620229161095349987110670107476677337070793522803775959462993524853723469007199576769890277110190166869220623549290765724159190278318483721200640159795856023578581546197626643810488190621325855603768959888759871410200841718566133882484567638214040894169325040126281878554236685596100276142431458995845468126990950446222326674956470896522804584824519609916530074154549281298186945509058836016117606873423387396727163766046252512034602694782813937457778189083760340249195973673854618537679536592611384040739995837290282222331901389535789775206049775886404390747177359919289769070243225105091395225150602271636540522562735019574232168117131787085253456110738597060693369043483198313734484966347217980637647207556353200616181913717030068029275799215576597373412306536748796284638311410281798121868635758914051579601522165840163048783058579671564497432052394505513649585250969005903928169048174532428984266647074639020956199879915744584264132396243979507229280119355261419414946189115365808882728991597171394206053421827987034436794575081244574282016999619409530368238514343680576697800975917466530054056693615695982758130571504676899872428127073119100550424940331594200684348314407800922498275822356340431080744513470426405612018517298561475809525901206433798269073671167126273606681150421231746921195038129447617924328330633620896017390190035065162305148584867923967616693425768076670918966617339413046486736954225320596829631654097901950365725045394713913383809807521075115298207687971604441198487564260772513714526976500779616944306194195743750399781554565665772743416570775842447084248211892821118581737781736108565468574151499126086635308405940265515930438139159761446169487957799886230091092045660617261137087995348904589329614162624893835357584930018854376542436385961913513183121971121319703989073470478871744707587976870283458850276284908474538124238526858007798159032055295391202854353005054906166179505122640069329072559051315113736196802685130190508258691798867065591238047996792471913521397049564986390583708810498641888883589361139242150972095683330100467315766511937368508391227171974736251993757688231716638089620964983061299842700542258065473689991941916113048079992099225598533118929520641572588954613199486338060068153702789221629423402700728825437644400995812034743169952114170639520101195019300428184601030442055396167212941241886816069551046992787339036515066372124189493207467954310841575589771068725909409197156311737198416608108058450462539170413947389024867563678115766358769648406531720803729023550098422881969145617160352815176805030063848457635778375460381407688085373583802401097150858159110942379914075451981755038740532725469317292812972039271032776258438645632084893408007807274692978311996781912292785067625894116614180523078458136238315599563528817513744165111826835849584181396390353454767494516906980603279862912251741694682098240809223819227803390702194438062668567806509255368293829570754060674783239004110986127283767861833258933236401457386375294616350571864139250685240628980319191841601649050988471447779527206326959892549270982294983121361328852324472605285134030317469066691407785303756253948457521565541881024943521503126499849320697567229420155892490994680587853195020652249691255229092687271190658545953857192149692930507780194864012126864863595604642413421123050223889902166682836632279145706203078571919941145307206685559248701207413922653876619568762260745950199001463247584486328372178015024272996116493690248517675023173020696003990614806466797083318471875517571259237301812145119114563532959210580183139367228468766571176616006380366143956092952917114244746841378999463801462789752521312139234990947712715991536358168799467617961142839425602963489274637892835854711816770210722674454718445788944587558271166212859753314348908036485152472799584723789289595077499999578318214224757113351290500940531479508505125884313100458136103180861264955038163164062018096936675999719734564340537670219980672552609458762708689778097722247209639363052109451031557826530011705544433720918979319989734225357570922567290246223400213862776876355657839148351702171167473841768202364895572187101581460322749312691190281758518955232756226208231801020498608437392697089814085599774222630438319274401310103387527637953141292167054965765571500379620002583153113130061969937821180542065000716580535018247757776648050612115168584628338663940939454742174752281770119658294770092902633953148654703623942993924767341774259583231515883537040666095352301084089177049669851603427759972355671739402307407449444001821076942177869903295781322275198383415282225964167213084110739381263744347328782762542825220934910471844347145936861578858381882188263982064612665343880664856117539001372172387151579529303484178186379324636144251289713380164318531786954512010236919252212554277165379228171501923642657948672720164399579529363789691249852606380717802481874009702692445362058462022240541964938611845693808613005080142638850243910909328545068973162356542552604509153320155042882587219938180782306314592413709222407170607290661901030366015240512997296762849302541740403152865585658337145914540352613180240222303434573137559461368012739603078613465580099567769961636132961128881622404822701912469816297858224166206216889738621693550640511801455161116881973533238346010718757062986822564206773454783905620817640319823331313977884752773185696533092485239044069982678872553783902520358103383518269151823626640853178293305413522045407284111631156847852536765293998805705760755309026383484093979244698259905123768539732338280037552538337749130968508896052945966152700005847091918437857847605976705765184172701066777722026057233769972757599817202955570254024666189451716738147363807706083244301937018193332053798530938841759841660598653300460665886769625774371309947457795127912222808190002205196863559793550839874525895880268470475048797261986868717200501351853886509294651846320061282315314222719168398227316159484369543444489565209004170462867356005767173847985149122052558170702952968939870852007991464440165100533184204250642371394661352574056241682755623627183708979306312032037181344319604661733933592451956695442019054162824935153227989002419925830513234139322849835872062724939976761840319532778484867221695267004673469082368379282905471483308160813863028404151627594639804724988807185124906029480841153015317289010631181071885982390493696114386164769355168060533051704781725089021592071354968192874979654776059238558338960992250187504770711578072112727261350190344998404897019174722933848022962877931247591522624384141679176424946026435649954213208594032970848443335641467854620452993168735437933529836245669280816206791254068955139310819768444999573055200839080394691444447898002513723836520862524308416403095862730695219358101888303829005720446621150320242025949837504658559841396384835828640140163783212538880181251982369570015368660910384226906595995480766697775911620905538458528301110052721466630550406734488919616533453085099746334256626957981205330498750450330273749590579216226922136660005529350613987223165280002229818968240217708844057686169479457115363006668962486234951658618524959913979826802574002141618033198388252208567803493489698725900699134837885373560175356776848400617193562630988999517357114077902399683932165397257703739249214756199060288254418656690142062482079446336384998123323793394820639439507033928817987004054930366087252252685624784028564809872620176371161277389070920459057688023941335273767064963039476317511513793054160952007424884920321167881963561041823307859137701580159875982138877728622160833754621202376345918215730317005062703978092178850042621727259828014902365858543088024642039074239973697865456866622562370765193948902498719586915909301853183834457482518647355091408420264818272547901608357636667157581384159338653016824254957621826160157911712461211374175002215109441812400886735114075739466450633546445689082555234677659567737805403654123184278046160734177278649342901777881743865280641479041789672277648306504454078971818841509569933684298486305462816033951673298588345498692530129863677866636033372602146891470767630185415909833565254567137286844059748106137881104392669480391966613921815235194318023514192233363532345099719172224862468154958027242371210485080706326282867631656897984698668111462627418248867068132672258659005804862745426272695600181541176836806213654002002217551400627373469045838151813049488303805967748834629199583498284817249304709408986377802176437036157277812256197524269006556122802366910977105320757772287713613223073889962162692797252227588154573054603684157663960408870149612189599161434720404889884831302636295112958187563373466582232915244434247202471513546612953132254425537820408036998937714154782460102236962048679000188676910057412197054482023774991338065426238819059406571955778349595879179571521704491345782450115668520039206182717516331613304029648274830021084384900965647978450893100856982296487602409192508913320351969503107932718020618546691502161123187090069719854852013110519978049767231954911189921051183916064707446021569010651705455167891980902344688812344491217511886024968563266420494446363951346328843176846366387374932798044418096080175069399808467033222703567188587139742344574914919888449597938580294943351663848600504915056640273272793037231227140726264497290673260452835204459238271705601969022526556594216447525600382253911722313929485170888469691643859884259638523376541880891559945052291874047129703666865907764977913388340167585710448914348889309067794668827031332490351173776133767525586607206284628386369298309762019307637681437128377045272617594780594393920585245914618167886095141135432981824605128013946052723230207570114783676986050814930044608931324479890530311213349372339318045431092540949922792756687401219251616830093792901619685909088456584861515232217297636839240117756157534405968477239145447725726971809734747860738754396975524503299779723131483672015706974889583063658835182034710306469182491596622023967230046569884751404797985509067552073198001099051287316381317547841138877130100674264969249457144017545664272719175129340965216025599410638833736078126571658600695427440432090785342332168434992441465397439036605592529803951040150536394882575142958990271357008142348519588953666115842675164155961605818629512733218990957779434034048921795494057735471304592677673565884452099351330297426295828990589404309143212165850519901058540256142140407061154959862806994169002749529527729698316375868707317130406610093973377240480179854684303717612892857992788459605833186107368645662956830763146682878388373117402564935088067206791657574528009034051423681124866619580471876935191241085831425448591167704891740856636077353832916350108918925484038673279298016078002123247456816498698613278922413982983136646912752555021185173081246521049824044735306468821933225736588376343475255667184591294454254829876810750694946323744756879371046986777090131812487778699328533411261690156366115157061566686101237280097593827171077497597846751688718180575621911935536384389081496386178086287431354147145007370928618286098381838465755137868792522754502421106169080084384156783760761364495848700645413058272538998372342449412061340972724049533457498431045126532647951391739440455697412607123404737290116296232743210636305130604039652645710208842503535263983142793539572210955707772439896625136388684305556428783229380963373194823956973452786091395976332099941291419788057425273552398386646859965740393696317391662746754816429874692997050711666654741072007231980546589306112350815940311923772347089479959430233923493023578705363042577878031907000969706678121766899435629508185584577076352028906916334321931556987269577813737410747945420291295848672582283000795502550370484296536269119790600058973138740446690830465647387801156211645682420657872894742383780873304583179440049055565253252527802907468239898377335041090145784158364412027878978619644356314493777473675767087769267982521094249938479014188615723304893448078814520320806679722804242791105823848981287173325243271181772429250719648543780207839401711295018767500277454938591286917395888707136933078111498814965911701577428549766438777182449849888985144918150724634571750283798086594165693694126544021900371730821720551083310384352938574727803176452579285645473483333648798854942996443255412291866154216684205895094126657622953478624763320058628235292261593799914973424949191660280056629232507870197680258121021970172329926945313305945869681735538800853530992856913756689683329293172468292570369514531868393813663434506161467661401082502958208544687018931981697240217610126744301939593701422994514243977955071024706943125525323144096753017995698350993831285541238829799993507139002807893773638324763430866045165243030749710642918411949082174932269020843971771671561143919080435562987863355783484449436541047483874701360085268861938169441041983171504616117760722287264459208148087509915382513651736748589259763391465114158662706742296460808253895247159023627544351308253137421377051397888644820375824290227830185156099734999329665211137788284626893588081522236540920578459143598935228002794270723626537891313581056031288810710793817972215902146729921592307823429260213605475037723448112827214376207636813717051511416226362924622697061467303571216181242114359304771220091313321528780345762226317125805516375466227890672784595161226365958201635613998901749002628510228048281059116530815159546158179585468247733555259173197147232157722349868390401699118693656164220606119089862102402646914885657603383387674772308671453397895092543607091575337186800451880605085289929684678709162047540489165572308943078936368346563059735742410790264388265072881780059359327526841105561395036241073064075165489390374238369823099042255374969982617785044520866910654440618749204726020787259666534844277986528701605616455306745520359136153087877311186770711016324647372713148092379747395880832891629373811831879224341775413374739868771856499913131427226861084100042976839008040832343069219531797327589242007198825936135765639812582572136688670781273332794638309684629948432871581008615550602364656809512505116900568609096368808803594305955043301993821180062156303660591663778521759425144703154584811281720485599841262654035228287971205326589102813151440674573411065073239688603389240879312982522037095244680154661784727543934543745957630566080911428886550305346142610539999792107647584759899876966840190189577022964596318902584508424676562385792062225508552414890582294334287282421073182792985357125003622569711443211700036603694009778703838375166522213148788647666229121588053235683202299578444737672002437936390687596411776314394734881961141677003226547870142598164643216493028447164087855046928007075024223406275609757775539687211993728364069135247727469416557633256618940084588757463532644096390789962128363888957761292170234778174587912105628555662759546625471051552390960268158715259570268995790580033980061405350890184080786757706533391894786297318067025568900837126901048675216439560489780695949436336707596091846457380308691917981115988661685325393863349023313542032323680212071374634934492506309052117133473884656104867760704348241372254129134580050238780036658578184377115232707340823893204384184741057679431095781961914061172384730250938427440179151842785692968041790031929277459776272091945059918664663282173454592860056913988096899076281251638493653258973845110532529287675942310478631710637806201532846396634327901463809195309597537621283441588142688626867619660519538129979478117955218459999614388920999001803454106786059861238582448676264766405970466701296384658301821577659938887440577506831344075703101277902367261164763756903343043217898428802065851162099252605648291136992746253679532203715465282805670059426874571293381237161912767948251018059539516063136173348190746612595909988637847761642903353160679832407394917634991761486954206594067380867345969302390721054012834158906971064598682062600338904139150390697245256460412688084320597598538955853033308568622292493644967659840867451457598963049279273637725691995678811490784878472509716419245424360453184351824206773930379595730654068253537889251906002808585781879454030712752730635243213869178411214395873804181895706844291014434427900393401847369881457355209835119357891873658771607558079716500644570181773218138252298386436961960689609391907029274885069949796810268103109733158037849186395822490118102568350694259213209171960820546171260860842721882933492587158994785828510088815325395624125563726901573928579160031481839507171497313141291348839733975460244434724560829458254798576729682612608260216516435264394803356618205256624114501207749194566358043470201690595044978341592674505266493651860533588819380701963371372173166133143097739148695856012587139802235192477892918172608530283931881128668570027818664154525905843592012414181188757168848185673069362332323509062118763357909813275658344181138559701893337085246559593271418219696747859371338345988795658691709950075998804199682643886933160927747976209477405928977509624755057979798944090030138551511898897130924603685519810519822542421222396670557198712532858564678337792605430628145430556343909903559077605308433949303978850646458310342049064651106934895709489565377659539103826898546701136359800927999807299334296543493883412562514796656339339859509164579923096841914371614802123991060749632061562029737499805661250102455594244980536062866049364340858876797785305037943666581004352646073059743288791341322892828755031754734153092652584356824530960134751893473714217514500832594167257740439547917870781076262913430836161530761788563137542078146720341554363215500897225359073263524453182831137908686155300826215184642893354579948523954145770645086941954228346126068367343433631983380339026542301600705993307053062622601914117492629220865696898458648986657577688008468923375612593821511949283371627735283654456551165119639146429935062228163069629214345347446030627107815059164303169855709393143383008006590143243141502471389367898982028485403236279073859351095795779672997541037654972201904872767093269961044128974232367450263717518074973448464750857832260511702467376796580431537951610343415847405634161045806504456052600773749296898060740886585314570549958575042891773781905429894109543535477873305134968993356960197018766100344305223188959093910951201194690970032350039335815497305947430311040241660023389428735884515957134336195216780327484403906564100829254116909669318180152714375440265458131321900226695171186233923294897852862836083673912936674988488156152606256462380656920029015478791603307427720089429233083810759238882216329546531996735440771310734148314884215586335630086725585536154142388091009428159466384629408744301188143262286787127903403978492951188200413383767724378485188848261784584609879790041740366469503199235908958382311969553226951619135389906514989408804030339921190037644354800203120991446016079641264146821048752520680157575129485683007431420492540672728687052187066122220794914812176095910573965411782544028504687819635155582646692278704638212537920890515049663394874721551966886921374724660860353754554643567925981606446161799939076814386701291053194706925741107096648989996394878124350228522190942007534796024611347743818713719015675195771841603830028152168535259214157521675183892726719630014881640894943382335455254877634256275229272950653497032587076425772241356959754866272143817976307166053245155144093405865018426103025705798579691360791979318466473193238413694927271871547737875885514354267728184912633641363219941246058780411967045192191500740140504125338350642954264170803368054348554692609949289612452219008176382847895065971291235364782042111387308008460812765215147312470366631082610714352573926227759159894554568606594382401037236130647674543756138275848696991137824108343594178870314157835241178391835988792575168205199889261654143907599475501563998883449402672112230562408553832340200072665940905645286154781007419240367251065977683281745478144688247497650920835796240242863802675082551730452736750445461735705524808204053654254746316710343049795471325802998008545115509925544797605739980360573308671325920527292955578856667221168734757881167574405227941515049152338387432743915663320853629995591180388171524885431804127639848152151301342607576654668160525348396435371659480845965247484766046279688132395275189701717766037558876210809636225830780881808661811710754263137224092786232804098957868583208026558905582530802812551397766067697486394057372457500473897990986005572911371881213306288281722527879443274442848488603206546122094655581443377620145859950029344174581566925924248712427340525209796369176178749321756681187995968969876824737165119942497944109565320486415066695560974951088530038523864560921936393764332183745382997106348964541210739214098825333877409482969123627845397267199970488646260125019261118552310246193461806072393580907636176107008082353063754686136951207842376168390577881575349030330263842484233262690605716885070308541232031191862532934737453572499431620365183193683962574835670903003524673588095897323390215797705566907711950327645050079856289387108386569796931552012009737015929732926155297814508575178534497811361077174492844059837727001782234813875664740045115810133856315146774625833014897912896824052093588898921142855379747368986889003851548340491023797494876099986891354286128313955795176672095287258220781131225478455064608002238554934327863391251385108433174676410581023536020020695379158566934202575648611870790739177253996913292574860844118017702784502959781528756024668624741832455371972622889183164234343240489941049227765819111039735958278929009794346584267904871542162846695076255819658556366503407855747440778230337627400979317648939238108162586643255889491076692964694004330214338513458404025646049490137057227607089335173069984647592989746118937571788927607568892207239662126280949320712574605438446950000119321739503605179910154470459987381349894282200376221601219394851198635196297325848404016282283499416586462169679720192134549168253804886074455734667752031372508310705417078968642332222171710540113965760267130191351085213072618121142227575990844115740790926501472218787452365361141537343586922019268491324217962516584812814980470476379319196834126105708254635364382008119364306659065733556193703656854364628657082502727826310615868330934422617821942401300248979587741420993674648225071820056640131268789409862124938224883003389448489912420273009265863498913370223838133873113020886870097181850841179390411922584162842569002762284758026374026651190907546904816869906716142451026101732247941812781870098186379384808138139258977696950297071295779244315584012339868854222352768550894224865781194154923642974697144951433351763403376945067666115444855596832868642030425228466190412847463723389805431066347659788073458449724179957502901695327412922016780389127815693190233232720069708969055639537501835301254757395914810056638159760576398525219034140094532776236409869349337045793862235915671784561710975196203791582358640954916634760400105293642556464823170563671062397821736837751538483360957678987122860085996709052264708309392148326850817472921674612376857294243674195033872923023356258056890319602793871564291386829434192057784349615425313600872471510137397960010119162929360299981432541252440990297504182995976702663037680823459197932378666646540063730895906489314132064410452923267781397393030216390274983024841914919125490904467118304041536950887198602874267630230811594506185116659145843493164234614512397982905885014124926533845535622181214240790934849551032304270215900039060784213606381890950548213371947088210609561214163969261958965614366578926295185366425328106629211451696635364213278835773351714831986892476652894767515394963516010309914866205194956022790102475847151310615380159019352264886927207209926163338967771619863753329801988106624941075356090809892228567341947718199503970082769232064176865952159339499463612034794465650160647568087579272399128397463083687370888947952969516931680903860407552393443713516547999801867259005669857079066220478139306291085750522626458118801953505205465076326483433187001144509104738156066868713949930074960420634287686837971977695566734791345845577700972255223258193133152185070088870483726614256768944396941749693150844246855582792266848002391423940389005518285259130643839155873866832366408290189177472464675247821929177195764587889932121306866889607908461229792071005833261251892016491650049777924788952915116680330301201416902788079535172599088626206280409015664077409657228598593187077790486723620890365850095000781374704442028825364100003588612113094749995655919134414972687829271026200085027589456934904384721299719648375863758295101101032361396245824461586050462034928286594536655452873648813657650686263815477583468412451964721766304370731434913283323661617905359131857686068066967886909331578310989408393830094644605330939888868260161943657791945245355130263765593047413304470255520543250605110162146653777538195923382607435103454508112015698811274534854466114818388079417805803204957628528674453345894288494140594942430283609757618666161384140089172262861059601727399518274464544408689901829271956665498499756685934153289655316796694796059436518454696712901495104848369821242201984053316398416629681124648128272968392225719594821920567427917605343884492453641215189757379699940138754932452679841914035702875397513992205882620404024551055623888198791074043708743086621478411147193776984478520725100915232072314322190443914761643042921469470225788341694859877954039585449058886286889157503413312460772731815063368746468414629472287958622364342484742325119972831949937895256283704284216906626598115465420148102587909858660098239812261826828419508744375875567007176767711649358950779581022697050225414452177658362799232287811073680297847965645636770378233620305553395057670794211537621048563197777802157068275172382723391378719553313931366701053078301606085463626434913567504266357409574796542323729353942804466780043922025388796048654416664743388758098516592215133683067192134877271712896742058421556917346326519955366268091198187051490859870453486333401480205599533041648362094370309803322043002115432840474311097870368424881610016955435238743937128059341078209086507104182524549259384811693213654291264973783576134058537498440338070190073247953337505576557213607802477008864697911147737458590839362866529390960553676040358699338732210917566659964862017810604246651467971217541939388942273556160992578131504538596413089313583209056414477292904230513340241074437332825991665202654311854102147740372544511215963157516466943295155035101165009079813344501500618457937802186915251637978213271690932943643745707400987863597520232656721832832741920068225178227834298627076001916273218828332913323368789511384726013512512297082925350870349515456206021796557934023101938182104048362618539552049944236009946780905163820850981689887963162924489783673131203848249273991012575154153430317325922213468351805244071438022210869482410745103917107847504134686861527226000364137794811789501244260983131777706461850250237536334253122146210892173973493614251224396409000909224137722872659910770857372886082317089995825081962421194486125750172688713302517812730829300271916757268338623946112467703989461443848705302755287495302067767280175402745313156266328807432548832252147484935331771444643242910128406611908257154943490874602607461244325481495132291398218774079372641080578599492049442132945723505356124495180762747199549626118238453998297817618640746084512517052751717469460644037656488290374070797493328561255435480366402411826169183797939122849127078270652233199328136247832805188909530428215426427300264329646387051430563438587249129110251465470066294012845845037974964550152285017892179556254645733606401546819470280369929411866625308909828666752432995856257943446474630937281986405422294496207803187332744857931369539511533283872238398051585422070404596661328703410681108437875595505120550139914057285651301090569211609070267423821014086376110806758135953790814015637792117462129838921022029734116241256671375491060582109675511424513253212007232661433597451148590068191909758777722610912339359061956325978487689143696742451195123760325001635495119774732069629484042902575776317567127279096064201387800333082703641352580730535219014162205062790387123378284482018102658031238973381546300531923111298937704715617703656609186778382816579647432364489254426465244675815365850516421307458507823129692166498351633813340877916419226114489274839768472068443127123571860789415328589954565446209342717163023601350186500650508603895393505283007126962412015378409192922011259834829560156470327690479325668219201446020619103358635087560937903382553077726453193720523511751346391665546036584945801693098602673531037427358799243733615221816293439081365688697637440922045496320666085580835283728878588437271422007079179634189644333528305813927413830111375062521380165676990224747738493803587101121793358247093112634751533255714926594467988884920156996340117404120901190619204426653936390897256374776139959873506044509250630710321950050504926519551882923585746701320969482634522818227867679867532763200117181710894144182612483018412262636143319624180823438578463548865392093350165790774357370959461723545323805024833871816408772117781517598775871427682090000590002802590415056696711237289989767492951153662797761362706815890915163111812631908477098423249830111187541577748876270806098676974332818478888098065595050835590010009930922551331728800115960989160242585952224741156227131750503554765882314770441196359318544324250415673768318401037530027260209885233533140790943015924506555714959017819421120272889371108442208555216143834398852774765965475320209584284104284628445070506606853149747306668345002092517981779166853243625737485166057760050837123850172577385286852733828205511932054431720385084966133326848850773899661495107443183301358859357487001920246503296578138337639435564876359456860010147052204633068843539327766874360262953238573167331892986979247400326755843691968398963902867982067808959379419984314185730219376429302155915256985969709302163751065281601081737787726887918473693477253023102966621636434652716312400230080134559540345234879521282287357996033998856500555016509053585264784759203342206815597329410243630179312304994284092979684927739396365204658268330590314402495137400274608752024910873119930131071581965160681018063778819513574501135564502870471978516709379938874886910219573516300292248636999016151178841223283631809440286510674307984411242474551096561625178342293232466309849919651839287197204790584416504134789851884567794167625871407219793135445763828868662372916690535724745982142528389027636709381594816518252441605094004093509584338120390908032009181181577063379375126586870463206073391137020031227876065276555788791545942760271528556698193082662334245747624783436925960086075993928414584506679686472124146952308227291228135888476094826920935130104826794040527533536484121331733343247272193970035867056833689844059681195133716422674625162266588627693846473314452706824015313492321276320428059280296497762672501766067049159412996377297458827205749832369807223702680438128555660970959556052409950995979585238513539346791909158056417657292485585566727305710502155189824914673677684575696068455182659457617121054648057079746855921761978246179670799288204007335824091584041654943376043764713346235457419284325563061355514781031976699734484450457461787260547157529198138110343778398696176170964226211339739545631233757146910546061930369128182979575109633530885553870422195587147417414890166984649279375350367761188433718702892909115713391003015720154470432002811299707393436050547817715674115760114069707385206061769066026236860897189871079815364356157615503188403297494167333145593479306793980841944146206455571188539777330306152581284065923978997208366955052620409751334510030736173494550468953093438225720476165801913577566898965390679714573692672083259471849950804976926255246737121837069182108249895687287679887699245284187893703552323449537069917482970881198342714243473513857371236193681807077580442804025809981412313039842394583958702440875894384922038932680238402750325965484607916645139976883209446959530532682167571157942100284524537251504351376194457535190865047950228526797369561110887511335428815549594886064215562381740209053408609515175392580621953248417375847388306982171906684887547780020525736673581098987176073694540343848558045119561444467354273501235964554538606357560149885100892675492352386459281765980762678514294801784597050428547829230006604906574371947524394627574480008593384863882143868428491962832229222174156596643166290527967968885758702648190974007664299087069649138567474805939819299952721743049570434498998544615311668300309064723430436707939788988497328166642661930070399498081422336491448096931420102773849435556781148559077462983321565344859691877549798665656361630963054891164440398427632933286359506655226452599328377679601070964180514619312941798884736353007547132069312722179582526351097745535770735194303675335603381660270459595914503636195637511314646152078527658027781071472739200136194158149026916807469344755713405416037909748483681138501502305757704641035181253751627343606990396825279981845057852202741232128140000443106630798109869999642878353566034236933809607244195026034845865775289446447806944742210992407153574888026731187893537124436887333216086219878748093768222398645818934699377785219527369402918070010493348781915527159277612904901173540882598752393612727390910106745796963192699072396851047360436389583694141077906608252403713837612402634371243720494319472191205024992932109218913410346153255060990753665450888807609345449374042952936197020676524639189029201821541154165317762316485799596231925043064945081709042008932519940332500047921667021308692931082326632014821218781920373714396492223183731107773194821839287317827476352279649948897646653463712245566741609949425679809147820374080754882613950691061131869002564707464007581038816904236263356136088529914087695698185439113262446627932851378066631907533027614795592413874798205619038755861955960087798738660709610925458749983614495273501115883464089233338473486259538909422805434525238667982898968534033939945247630666101580428586695504115811226218321433913433071871160475635658927992583955808679659583795536643501899946474711136275258373154478350975620527726372348538504419529656863750335628301035494224210589565061996951190681560162657901643202429633138476532969548089448300902159049422847699185143668099133400174967181990130294173559217540170940040908905902354195786292827794050401318963276359946304003437931164528968610925063438882998938310157715716335054796120913382322800713357286834862415024469109439896984833633303090433724518842338630194965867558862882953966093197072633971905437627931284222910424066394132138252981983082014442734586398871697647657896768505350425229451934122074384108958014137241703452297438665334412979071926693395690213510656886880071059897755853744629080123033347283138132924822409401416546748638320275782797467093500423218969349387326272867562267946205808000027840088736831931410854025104861061038690492411074354361917088029551128636152021101041215250022012385323655446011888116482477013988325635360437487141020842776435133568440107012931462053622469185809584580744663809073106628221116922187957480861204465040772252051294338865408968794283599616091174161040149738604679286213925768018991766261256754295875042893685620263509226712131707358210026424795789861914815982696479004242403554177711031013006220125760742428244330809063221555994003798470135617890986994806148658311203821313218174660651885596206975515203776973392736832260054053066389951294169019892208224249664368104887057104484585886431979303468448229939032122971778537552249696924542896070690193910406495288694610906854498891325504134807792954803427367500790854614229831715784507823388694861235905138049878393870448506105200178785084441511555385503848080991129021985022095957997935707868608675078173385383847513842455391633515370619134666283244551172927801402097864497976161471745087986122953358344850564805325053261824413753984825370877100399867723075111578679932008959495316332039485385123943199947038949961733000403457872122264589919871882384641326384077826141395050843917057180036137588821859280814081198389180081180752236817855709932187526166342109994951369668842462423554576687824232489478428906511377646378291134193242778216622438387408982775463142839862426634940384141102100567921318986866220547519383360529703562972693343715396685132686588058347154467663456160060228821477195368274127392550726627761135242597202822150037285259849971575336677445256724528063779181840637745868145264553136325745389989024102515446598397108225112564979270086094558680367427286229177667004994945309787050406649668185210917552565611790937896148867610972643967421954440563693978497228842957395696679757145063754561690302177295373680446166870614574759749749440493304299637274494220658763164815174576476498251411481159709808497311085635183830859928752855330137474371671259186959214247592682542375885928860389067300978398911619174640480306601755973536735034978027712214017818207295454370097990198861860555439449385824118218546864964691043717473784532836920974161883574923467440284054814475867674227984743533520899706221397204331432795506810515596025333863343034381822674955706927663553166936169856623506226936906776152254260730041732468732615984053449910473731002661961569258287646006734794823030565365318473974602690133385444967825433006169771415881097118760120813851529618548113266370049255535432356375620966054013365682057569537443741980304091519287543200431069347865760402423491029792356425512219708423408926604823318358547688712509549394005916570603113282868060118748793311948795807965438744849727617938809889107010951497272454392119631032097526362978241609405364760507184406885408763674225335704127115126868606579363636673158629626327002542974898136235074712920988916859188535283960807048385333452285283900934686817142733377425099948036045521314938267965064622698209640723206525719898592273313082343844129192338707173725902037923711441490322952136740977496913526792652151219258040503858876933567665793066688632276290590794342852056826331461209593790076948706856288699392017614929253212604326989597253842883487216570168751429215829434908857457006262106959257142587877856134783383751034134833214188162017592838782879276929204119602740422596195737753846178016832498806826958376225526573163856988613459465954984464123564612796613403896549908246783857027768672586822182962926085704039529302097903370244123936678112865198646948354855617950194757848956812164954601764646573452908218322914662306459038769642600030311193164705339932007172504927495299001203557131240830177105484605893227075338288843015569674333468473935777294997470597514915552116745614574571740493676707402994313518713075693328831001724215436810053634109955282126773375079420573717520649651127469863873271291279966057391706002832446201561264519247516415500386574760235668938352805536989970789981340644749724834716658427090996643833751474711540330361158504154653421796277108956803394192285105824737711953479543328528457721037229260629166477935591030128296850848027235482109075056831395448787023497233313398612920122887969504891889767490330718689752843385246961405501075371325175615664307595470913428898278185488435031134629144973704728090584882055638912014722923351835452445241256491946268148213218273786149067322423592428880462470592680644790552970322721039281318694246629087155929222289729093916675342694970780999349322846103902023882617881352344448073954293788509400678911574336716836610892511201805138025242435924070574889877893316458221183744806354687358446940058600333400035521891944847333806963141072475730604495746075347943943991413685359189050538907179816944064313245749872780372172965618726922909826569959315364724368051102986771568887419481499243895880035729069219123124729799714519619584413577525468737334862019993656198056935236899275036784359118937170544509592773279645331653990543013094986401912486701962256705955432573450227415254189087491781690755668727050576696339487038969643953554736646079192204477601583392687512375315144790768702377098620710109956494218414550705411926782771006927234129841089828299892680695077071048173908200273446964040062072467738451660109179250488532220369774096340080267148339216752430774416369536853824335880450402472315825776214821059154669316054359117656648610132297975918406033125979785999200094354604822518881057653896444368160016739524934994200136551096175338509468883517440638581554580140275153464773566333215191916157181361839826937308708381950158561361125457582478804869291716123386296170933594355174051997198069185854948206719468664007930497038014536646456031328401220594738260253067929166405789750508604811139406551052357400025019376636937107687766540033125934999888436927053611106474329260739342947445730644226540255282877801091406873996207500670956069624422904239755927440562824464787629389448527601055015117545338903090502459414276844048005050905892943447400437132289920293673693945833891772380290056632547031676099164004273437487247406168684904376492295984695043643930060003425570034211204965824013271206622752009001025282912649806564511081165504866557247525424741130551405998787406106797593440222947341125123419631819684906076736714537698187532778132240481499057886710298992862619744005041132588501240743953284425233035012241873849777234983142484221795633821363450500206287480567325870025909281404343967443515293487229235692179487930971864036056559420425263246254937605871632297122309434813798816823557097112833332644271193255247462447894946444532381110736004376697109203359739578334385738623922825771575633779990200327991728855460696751489424248330842153938910812168609123192201225013874067696460702418870506939144065803185363800496337558578194508698602082101369623126982165232374008518510030388594441613355360762615647128246938547027384528325856145585962300881438700538792622531533135326471442555215979827933396046030585002025314585748157744574315459845965384394876335944077072727641681839395620712554462641447945500203942798291233142925097353279531598285570261031481040808523313271839231683096399288431961126706198376296500273285534747192358792050564315245257167632166306914284625716769663513936649190152813224269775436195526451235420344857501698143661133227925348309435493763040341209217193857751844451509364431129216717983241579634231316519791727272766920869477248455451584420668103872774630948222865106400294641102144072838468209735244529136901824890514699520222728227872206244091178622191883574660641443614476242305440303461925615376707906942431918277066850019643832554368753191135256641898142026177602855327101053096108606853068601047425196210228465330283552659837536886503300156466071831040741640347871101958824875277481688685924320080941760949798166691722591589511945258043927650284565006677464097799843140129248069579897606570289279049545748324350409298188207260809504897689173635546768479607849290758778206021268373303294850296326299442194589241643428571615217620130208396599517181551615899631593713064969840433077241768320788051538126383595235059858698384585528195447323383415691349211302823921504328858908526922015098252872444883769475441507761457028886534191509421150843808798131700627100831361756624662888034175721147997922508975068629662787449210806511248948630753832403860545776381127417935276614184358539919077277874692311169669044616341295499610917532581806662639420165906294071080051840355914870715294222455444375036700821091138120722377238281797541033780977918290802056241071730301427184608968268342638339338547332705614535650357684006094782831705814233530477482694424951015233221241906868425481162494667677725701284686997766418541956165518826850154821035253475019228642465790870525198101692038753426894568241767277181301299006402028353542082449499248818870552975548522484600968197052507362666227808943176470028619294009091176674093113514290492862452853770293139246719133384093991970498956893712281507172648108468546594976451186176982800633474325451777920876523381469820339418575071269459213000231186205880916472461682534792040525048293289334883193955766618760292844966605682317482593239149094131810578189171042667318474561914989757630188126352811663413189514927048893672622584742354421547764503562747707371417514021430552073762252227589068110585309976144395758501363576305605102838606330610315786894619111336712413023506394283474704343967633323399457905862243479642774159425524959407065542928137261776119342802856467122812890091013777152529676575891059051403004286671548239619325198062267246115585647829647969597639733198717274143379726608766266041657973985616739401262874687956644759269680639848057126192679325551940661799930628703142907051224540091143317612824457682802185663265626023958626278279032439473812473422041639976172651996116244963279957953813322508174035976401740256076601523623093479535050023704219177195791123349024145998536375309775511196477188108748250228469793288655170765585882682467373032413851079962696223705153209455774659628239168465480963098972281097048381183324624997961898836723112965207373389033202457729980673857023704507485257201336151231711876273729335395090507654575020903581724885757944179783555111202668901405067584335890477553979259833686346339960098093162292655247663349582223774676156216558243556986825529444216508718348476519167546069029048905796651802691623789649176193562971289778872557068648385438403931940241104035785295541070776592317524446902007958936934095476821233220875747564991491630996883551700474380578114777536476447388012305765549379743774333825734720446922054205234789479908788247636501719262657675730758192040269684842041461870648799454051917888352559130952933375944758170518264910887961529130420844180022820442605994584491518415918048755875159662580827977886662972870523157981999318637521289761994771118045626706686843517223507692080799170282915637157549414768973124111740967792425263453041718798006432478370209057139163734834270666902167883202644394415873090994249046219168978923671322620158978037537607493054231573240412319124717730655179261102953520862008960720985222528549103534681877659273042603206543821134217915316664975649683070974629656173586445878544408960551379417014221018264654649996403517963831027256572913393624419667445815585900162514578824543340658161059281916174240185545800101188059185451532592244547800424794859331295370831476696745162074649475947942843307608205590686249553697428203444407763889158585535021026645829615207071488178650164981989448634440968674157890964106784889488265843310266761507076461492668964761339989641714133594899282622417285643111009041540100446706571386988165044156760346080715341131192403583467564770372620118767695012316483177218966076047563774623540952755659066349225498055795178325632018911043514295099162846885163608474227611419631610420171379047496267270638112731449505208514990659973607352410587498059895799292553091290713794237694989377022308868926125906218757650492122287910638060264386210792510941589210268366765528848526958644553455072502201427793039906647266511454456706661136222691334578572608253038174936761960897563577226933957249338269896556544345251799179108988694251516980724404724245353115546669007470461872576151626985255168245563975840268557446670514938087542538221394622967059570283981942045773350912379100464457802574246687528716888010149967212077337593212778475416399011048316202461052539788844523838764225046705706850234408112481472500528869479910638388832548948919724195332932328248498108623807416835364047551074186850691280451385216421049914513019658272607987012717606318660074182889318284467520077178555541749879386959846307396144191468072080662754370485893978116337276691454248964033253108133804797282057343097183638664559682482606097751966326632161117567329088882822913726025763565782316533432715602747755499973632812256900175507691048316870198270235144794656196066846747713890902956948435110330077497959013809317770865979872439890464056525079006595333107541284725712665836866564368866486298673614151606019739614991470526070780421194074772109371155889836334083646156124606763924118035654987349231636301041456276334736821597408310889071413259441582196951833690190552524823437135831640026378232632822206910737807114765086627379355612921267368991451437972837730030322429982601660576027658153723569655136267772759131629521503532199738062777875666969606108648050765302760513910909201169692138640775047664564864780005750501517001056844456833614773904169569973810558603718469535709657120547931660962002304828332513082142722806068815988360098975717844884787440554009155578086308547042399541640972096184977040453745040161924600637713070181303735403681503132482098396308143680521380956393762788550830645077161479761904088644118823639577289397795089841592712683453537294024582736695030318304093648006142269906606544705194049314132010085830353496244947049795938447940517743879572346619351344385062283151113962439755339927290490810336428742022106556054709208602505704783589274698464215542709735114787468323618301972338450156743649684646559860427707302582578230773097942822068638935258082522559400058592871955717874899333269032732361295287355575698111882657795893279229792927338643452470852440907129075136446794592767516820575812049648794932075283901857767212268943233015962041682821180124925233054877082363051004059221060727801368315951379035113333244563017771065148471450421237514671637101334083109096899303726812540844603871646774038732721754455183889157057968271696337439700562980952519777436226504685534648540797192100116110703014195156829737408835447412668839928134352676371914792605916194029051081270031923999104300186198444648095669505511921508409910795771690354069170908533536430482804385677401533026918897809452432428663025605476043272024847173821517693548126982211690796782603767290763466403888897301650309569212345503151056673956672251571061925161057975350943837901676525850736727937621273809902393233955075151390189062451644758212962466186773417188646349624008865745296309605392516230136906091821180875001433783253221381936257914544504312389364884494197842302201008143588381188502949979076103179328568644276773752784894535724091621377063292666430727607788855047904536619339159455280748670942681114167233894366076982594053880059132068874834523967829598345307080388302006010720249628830656618745298167959176084890072182054512396788471424686267938588924523926845722798159719921087826332624322947097385999704305028093017796211142532014567762028563276821914788515735681778767461541041127870621311996296032282388885994528336980534371059536939126995545435030799985607412510357680111299015810862130355548543849627329595330021324013257849173720166543510250298113945988581165310274276652217465905826470682272797774873626873804803884283403675177217087515020431044477708808568058834911870071576659551327762103089945660069780202117929710436370513936695799358444789547248728156074616756206886377109443098700046790029938482245809719551160822761869590868949116359489886079315466707293770318173129129650113228347821853960776948096790002093966066475851734084260262518675101775353490460703851806073294070212683242823229339586928968053801212478854524785715361700318235624525481580312620214959623446762309588646148932583232718212109394676282265802055910276391766245922089130839514019021870131616483444280005524024470829606978781544146599102051290216613351937070576990086245588379459459607011126998929774423663091710721934228987867230082085217258806184502181050877784753641084238551188662367606602589229510049242997832225572487211200573552014583118322379177620731223430163567427498749414403321664151517767338075258700899724155410303951732018098617914668006430299981954299144744308560949315210369466368144758380059010127230150131457452761033689965901188900846437140559752592758620019125562323723034048232266946949364014152224311789760773672515916409755692277212671464224557933663899924194190819482969892025406456992079054852441676658584276694117879395575053799587580225966426317079241682582943140631315748790374096542654770347435867168200392592653187818819253117426062970547053004490592215668864762777265617412357560648893704908881075193243736526518677436242138493304547581636757906989460877098968491766834390920399940844089915509650125574333635107113033798277448228921460474108267715724219286733589555255722036434491565206611152477482665760146639777955894568946371081218434072118007335651605863933243558438397058430920603799618595656562562672624846939786067234768058304096215676708270660268474220421438117776240821234793624911050805834883971920874281753957354960514016795208688947213374493718631516425328006058191538662157052647691041940267751781140767496028998883586940915701633246699406901702950870856833041152304286437120912337081976581091386245296750639370040548845247021289977820409370914720613533759183823988591221918938215209502071975234995914662643131891265534387118788056392898137888122477842431367957119865962009577524838709871585143076957053443535661933343666826994100153870807174159680294617814385650881804538659416911446221976269185780195291897306909599169565394519643426741847933745400917926933950332249084250921452255835365120016871957059299526854104404691104412528281057907968022397072250127371109839962227228144178058774511758170343602856712591987586521185425559267446186214968370923316305270262931714889241376260004171653005347640579853619999748737850402022841567606412607706677357576745320094441802607378087383460524107698649305239405761288791325844903135781117529887344803821820698439151777604678198646294299337458688146040086480815997168598175684482324682188221431882042202705437184938474846157507206905772439048317797806358775979628232112119433758805532125376370128925324096305805203022426329727762231182892231540998730651959057952334319471686181993160718115361237968288529771276762160943368353850185993924284592010368714894207146557099745143888863451657332708528798296886447560456957801049296874545831134133625476614870669793656855866517663571962798481917464122334448390775030140474319231735648277606622086462447507902676987692719296710327532214436783533462969784286250011725721628791639852724761388986887810992066141612714048786493296133209611063600334788910964591548390991649360081127631323419276905165354795945516495757093743241667600480156737749339236106459595562161798776669787743010107008303578436459753230657395659025272597472459967310131788409167717198026521784675938975247023198649266826265685799600012793885184791215802258873492260054569125049922399986387741230676675285741047582945973998425079920661309465010545902806113136856370837562345546356507997660078526304463821669298002163590197595079845787539505673991214214435270283720785305057646690707470565039746032491237651219635467940341573751510790724606057645478592663517226624095269211736450116415627737717714783633163963723532155156632439248461518822318078194076540718493219134624982143149866549681403232360116009359767060952540179448581979714336015841464160580365530787201975874469518680944982944755523384892366086679250377610069372653819233059488170684049518753696659033617221714490887626492564299552806052788443373839791952738041193859417614381733912808227061311791082144630621743141490515567108442132763938107761927693230995229121488330156547441962772349065142002939159417578647153760218214387534509395387838174672606980107429018567246191609423899216178012083472183839971562567017780685795739352742188454983484746244669397188719189950995881301238103131788114849572657468508302264225694100828847195406111603066493591819818430982358390294053683829704837255606591370590265417262914238489018037682864507040379472911607831700435990922415487079417206751086694567383357330947069985979680201562622626337208933333431261587462498510071260548218988542579151858631745759994806312129751915145812124164069793524285470842400244033184612779640131498048946739278900430069069261494316251299084802882357495483897653710440784024779499678753140559177567622629967810286498414041995017888382137363896014401693066418019918752125225215584412172343463712802921955194265554923203773615134547090206421800612330535763156265579135811552576706416630551230805013472542553826624616323576439882910537769327139973484202318593144102492718177009801654696149448094088763472601406795519182576953690853578097656459301005705198882990639269631991706330638190601070324861440808229761868404607833925200568628547932147556580682744631132819678096709608564979431824606742280579042794679240296144905886814595092855849983443310284223824645524450716996684194005963350510526344715241817543597733121583165169907400940424010747907583834684339706257823175931991768697205470922075201579363293342040370486566255809725942741159356270064406274699987220382184058863766955426718716921227440937139846401769727897635694453005627538066021730614589729162145503325567973586059567553071980235663539323924304509574746026614458690588394760571824785183093125408904022154417460966476688952362773753269221290841268164090392859220852953715500820940376516299758135761847769365106978457215785211952871595592725114124308318618621503640407347355337886939992179597470176211878365368816952915702846165355898392966587736692949166968837999274061643353410675079131219525496662419423222859221665503500793846909012579220838373035511051924438548211450502081661790626317299961702152293592729733540828104010907698889758999854186035677475572011323383382429529975850537555983906262488980512974999521953998806081474010007583528889855899420698779898899375216000940819008192457993382712278393908970625148752483490506753476661510334784643240659360607961895838715719949166321255201342854687613368992261766904449334517414029327804367534310299375270267200285865699513432699601296980197809790583756847313305161513270674641351824126213675870480629038616046574870890987827656613984863955960694418769413183324104632069727958286883717209693188498830030691779903461497084638392603155148570092796327966559780914382632262572544245606529104766032929649702817431635750891531486165957079360382960809548348032919674268537730178504236958981060275479840155900588676882792746666289710701643155065369289116124678448418981289113171491463470514740282387208295283970629559514990314138599116816391584032731370185538692959631439071652904652066551084229705512302632305183687755909835663306475861373677621909205718443500281221349021139012833026424565196325600134541682157720464638296337068603609834188984817660460507162596298789907404387274689469185917519619123194824237471170701468118701088916718695262659234794161170181843616506819090094749676155912126497361852977988338480335630118184494274983616215681789951563383962122117042607246519153405099140386678563296945201104482186915305225458931969665230657617352008364238758485706544800092936102899168525424538903356737362118269922768947852589566986836253759145277726273084375156896638970496550222441964413801543614396247984151531163312497620118499677167316750249054400497182407561141577790360095988904297936540783578233792595611056915693984438150515692276437144600851368165833045511031386290332314348111969379909467115158069025883388321431525193695316215192130728075150060693603307915805593496529268616615835151031558814964519834083488306441096855732661009923650964883282665941449329948547747886006206805532380211863448197257987659202842405087478636060405190864060636331748968033227003347634769391289981279259427291745316055029372490051087749216169197812281205056875855453413730075488839086574239886734926886762141775979300255032393003647666324818303276960003726749331782535099519118484391769517352895019089102970030205077801530732386538275422268934354605315056892191172441211076239933807116335331192065267016509207504185820225631369200079041487319175285431962744718028483065409293330400778557553067928991978469144006611466074792064027713414023599076297020780928884864817274243458643231763545772733439345671048123393666207878082814449323113071045730911338264789759345323455556363997466424052134807431202011374932065357152318027472292805394509746746001063683491378054615274848764463089639050132017376090185288416507733948318827992134799368470179831231931999702619405437148035500464682317390603532613539804203232259587234464542570052863650577001810582596622576049844998573551868632963240381311217509711597633598869018010490864034320568766856108388803372725729399071896872590898402392809649893182637660644314468904167904653337261275972463782904603320672460533575338944055366784522173285869485256866029360179659153996075659613610321806526103993941321721490102588443298452859479474305540877230893429675504960273235196208693522186239769867347332616265682941766641268749888700627782113192873831689803362330761957860294423840319351858681643676019912758530621254478437193813068150878304311082655822271842938809228015527373676748577067509374492658475305855350145289987560330523344995629467877915209106704634481767141148461193983638364627475100001820582829431840006679917843583096975336443578285007518988456401670546414500516872577645903120663643568912490909485239894194381191858805472776392004199808692226164873807680095485404063069821982089981863382165746201151572720441087027185066786438720298937966409597213974689930062421285236788259869547417310722437862726666694857707507153445913548458072806587478802691656461440686301917304598171268864630913036419976840518614198046519869832450188771849895354683426266982284598099595159963322849368685974380563392977167216631714089590684253016704152650322236528589590663596164843427459195179297215909377835553237889502970275281692305709029784224328877446364842199796983309348524737915777090861967989683506085668989646009313196696063016922623498247209715940831889382825719019264343679794671328797781513716623641399953170285426716910437956562341724898107176178423684422245003044038286314329008617686765199612440612436664395562772468977248085096730732687135236298346981365158831103484938651236717217518443315730226510474157622589935631606180399037409084371926523248056847744916803290385462373590364917572093051668320415908762511158734326254322179485000510318404124510902359344454893781990772648331155120068713579296181540736614051663165521206786036566541900906910728670508384245315769675720832809401426166686329598384575484285460267753576439111079951773712885504615224433563944541384812573551399110642662201488434974626432682095842834437370106702911591935150907534540877022917365265113982360551432009097211292962618265076710757097381618168221328664381071243059594782200637016377022712804529526175651206989277913954778550523206064087986766253770049754567807388031085333590235229782098821199715771486125982537718834741721335460053587147439935575268976393436587809386751337080606890484542091970928942943248923086031670800298479250266890833922398777868628540905603896801614438249310010217970826781087522627550406370215146617719524768758595654882475917268399567015730810762431230682874016838706621083986168924424680687403690052652469200009770437137477956847433144695062205423514711743997180530047471781341663157468173825111439430448036811963056899230763749716329066665244993943308609282874684888751192083758995267345290984003008885888522984225750805267059425094180521559185053869849030640943981389816985820643557890317170255151531069271546540993073699214249475737197230811998862528066006161305010796599868777856655768440125770340858182623549688947668098195676268685592644954335551551380942956975982617805336517167318637761889582620250665478602807121099396991219308825101267692620678697196195910721431742986212907559781727540705919362382226224831992313902538181354458168124974204477211041999445140782246357101370218882987537196988170915250849803060029984748152144910837694926943326504371990793677847464394357064137592037062918779012213133103601665744489836338855948293799410208295464961389848240832662362447981385381666136498621066551637805012570207837652019336615580659801192270528928236313351748376473375615931067463747742984811696928842447724910978022255028809927098481784700510617300690333044163360357633561357407398314114730462004609279528797122453888762516126834501221610167149884369621087444507870831559686882277137940340293802561450467429340007841496987062141048148485770259497451348351109077659642601440715357931234973322795044889861122444074966931485221826296559132279361425926352133480171249011478866115180098951074286086678326727262050288521481356508506850057015556694974358326841957168609748785027982749212255385266547261697261575016653275073258227243730972115474552715126973071380787677589326383139172190544602471428994429896836180419596039635264739432010377650484836037343977756859870057277594856545829037641218963754302548929175774978193809774156269476564933369860981097318681681528625137493725413382046304153079498317582226943910476575599048048293530173976700370256574132457111324394799721263419748730342927527136640677445955122249777948138516165777799135222020901299621693653649861934918627681718929911580089244632313507122473628183734016062479179551323579858850643042858048575917397291607883288406778448434523554925144737007936441903867858045695567198241846260911398648874602239091829802646858543034638378469980706790727813240533591821561391842594922077172867394627512438137479385664322311908737118109967070499343397655501452309185292176734819290652554985015639029259879799007546579048931215199310939649661827309367849648566731468810399836666039471493524049477972100552203835112784584285139612072189987071141558625541896852688835154828310065032244826359871407782803367986943942386667413196488342464342483559256770926040774260861045165433402839556831233167011949876135167702500430757051354723462082832411929933227981554088582142793063079298226700266064173593302850888275115017941845948019563321780311144279501957008918167914887095949970309235061851316482714522695094684888252770025244630378810573325624922614495923630324306779973184002593026212505393739494427513884938045043145265125021007743300389033933298316178187537137022018441945526436587050566014826951243439712672290588581326664047814820323434234428331945763070121075513048120862532935345888354723996774872837972355549873255507073124623929941359657700209679975819090587462675637373627580111857177009835438725585809593290032940460668750876652894806590226777530862322150018661295073929128414876579713634793348940124018602207343040750512562175748070189376596751453987658678238908926086282088611163462150689379242308501238634660476351574555931852642634985706669097937044386710804819389887981387096633293303971082723256694797604656958802875197729333498679743432878844937893757499820879529740164947989175183236297670356876470061975267711865744518074047875159529343184133276576555761923468018272704011646434954396965270553313385194037698898566337470721928390787576727922567730015662569972282851722394542164491862937242462688492293858803290982480813192959409021626524913163848640398666959246672593767160277431179317077315553125364682386438097733779201662257535430819906476149708892970259424688581231106600470611367067280448668787548058703957812498887827472719943789826379581423270962002648737272149476890034879026956366734636791329511006342183201153235115970493333258385066637830515630230275958739327699229357595177605914252651531901417166896189392335807273989882767114623075672957824770788194690365054168822891055079198073999442853775359812282802795106919704075117058182947418268165089031467207741675890087044584793924429970386465958918194456250226187529061464622418311733261901307556529626973431141481176681501948188962509250351308839683110269923289134146616616141501974170345573517429055043245439434911065645766431434505436467374413622385761421016345501987113369948843284829983506991996662086240085168494113410850752024991235922013155723075810304219125758028565875338090613380888675912814116911956852617295084525749189100082637770856241966187247932473777254909393320882471075267501954800372037898763215928642215168067703038485087517456923163822077943762320279288598967788019387861750210634057306621369513085870154219383384562146678763532904247373500261647054285025049507582343842206071130811799695265241556478598137062764412640708377301206574140934860209546076277204199678058396506681047635767382792527090714341265819396686844744821878506684514529772933544719513617204787680977289811413541492562200885195502760978526102162476767696363082944700147443138871059755973330089845513285584792513893900723632940784630322398263437558317648075252070409651378873032505217426262634057013574973627279461251925010586321434846565748238820134910172747050218802158724788708779132438707388423869347120975642617191237672925645424808707464987022564445790910401003026562351142066374452958218715887999931474798957478448569318243398939431502742120318762479264008670051075739880756828510407602844574629151732099671952880124063698770333713100549419238997249350936596448026937083053303767093049148228723423478522535255570416645123302610113043536212319037771397421310744230713475445536041316572313864029735434812070428735228641794841314330523827776266192307315769247684187262690821022148722575007981331494774566868101625858502417219812762268383446121476210197066596840129473506700391676464970229593926501918929164569493419508508097120413705582476729800491125760991439770299489251457328772969717128999097870138196029399570149501970258680883602957310933877594828501340720098937482870759727287272014293624776105349219106223083643413523240018549495008263012588393348818430126297832686863857376599372287298972902628401638929506239792302088943723462102596303900572534971860898383246675641489866783629530714342166958242553303153304945022419753408241466232931197210880885579550068092911476820377463419273674708965864705912057845620077995743299928664103743483770418744471472811524191557369815000995749046110443182847072592120231606441016782918112939597278903294106981356163982415711771454753651017492652020056614987540304351350143137469583997276720054656336767428135443989636118855135006178023134511912104411598585204339326825345002414217214538858713103896209783350625757129464069857038596528268022079803686020605816590805169119193375609694950235278389637728267957153817010376153524699216078064359890890068020819841054142972939154762037992555949802705916636565628339044958421465235401136687301802138597461337139351544993567292120877892166295124070250903175100102123168622565519891173717805724462549890565873270803794184046021517765857800347417842728873148850962406123475486055936528458270601359290111505217426476453763427271486767952794097000902743152099758461648449245496982612618099146855264535682803656336014141615170915351352195412474332445897784369428390750692758895195174262846777256738227482605847624275090508910689321027553714300280868685045611021757555117944559027993222981590883524511830744490698628851267740704262380373035529064491222246372493034553806490099945990096751745225617384911400803687099309521417649111613629727012163036607123943453804917154832418109015586041362082203989768242686913455977337331436510694258134545354963872890841096856429122753163756477362199242237940855689391522044424940312760383612095643771178856983942234221067741862125348946035200392846676222558815674376563888528688660722820882423405440847813491496783994728470388525344949841474040794168347277890150975400455470335601608466187696975809473603413553056564525642840663883922638332541161105003461764337596014096998036258552624540948330348510583742860744801091565307723280479770199332622188088962697356468782487963689026786400549250605454252459829591929991790829254875246992493249952268452754320469605263739315785904076676292199903910460711646754348660248194531662492225040206539842894148573190916075309891765051352099442001804325544049695232893701801312502529190181523733845749664117793390417880965649861105399439172739626616930550191321345091894477058145332613139308420285448835743565109306168871443638748161442283447078353970037321404864133530608880274112352269433636726206307081031671205163506409518818619891860336564051276835798382058736679532163287547946013757857757747016200085957367757692002512095234947131866529513709685074444252808843358569609049038123450743746557651353278683270602384596579413926845677570122223626218551622442375738069676665885678018679244340366886841351020304758643648407021299824047028137910030434768530475164605631682540569681607296978669652019580794030373135057568475190458124996240398736583463730861179562354702920093212079203710509487834395363728009701739132150504325606970261514780481987995852063711499182507477607981946784117313963949729900821664618674684068948515657299999170542002781995246472401409979220846225449487945336972158018017896068216274424882499171906240260266582972626469919662237740621787750128371417422691711056356775126033240810678758375116677007438392315225467658726155408339687698935486428408422647140619533762489553068202909869208605704005148862716336858960832599932990197199926677763987000642460889134458752857682355302174161985140948446740089431441299616961619626035852891375276992644740458129270380939489474364098583478347985726463406063244470123525697247365943403412889709926061883961286811463532513241414940884253771947768902594477894893701000282772709079910149803251925197682483566273708531083525149425984872814903645600097891707746234513059139494867546417157403419482307032742619086174267767887010032170507397671115566555090952839721693444057441489073355056770569730815890937732264429726521229183469910338078703538582329190873247333129301430872796966998442275280034175959998076385747803530003417015426023167038092451552984442836782442745898023571702885677718085460061431329522519912882359328229301978110544952532978566369816195373189686361388485970574656891398807461560921934119504919533455727207215396876278054393204865149967053568581785080913219075559652063530219015702054352941305357345803344603347298542180465629746514989050631554186959294764441365376771217188703415418199443255192539928927399403691090012460138026979307968586217233963232088381962661582694179980005276537831280206751388680734718514037985257084870205670234460147946327751669001175272985000039387000524848116188308715109402587470739961069773766479434986047303798595670898848431574527592516911534424259000427724261250696073128466992064614848892806802880405816570353339663094034489535634551218249787263296151960917786107373414331231118896679248726285454244083049909908305566560202521308148836532497095929892493418573732528643096712888008349457220880937350922128601843510243617812450053192318118915680911544781037365304797734160235083585833666915940803874934298060552999830019456112190073118464621768367054471517450618740627901090784665047252792857481402079468885654309090728768007928158231011038431390122753889138125707754542568398913642363431760584490267017596339113132477415745161909988288870184442186587307214804433697911100447216381295719098679360907858202457987589009144590730642871842792916909027617992115664776973990921963470816981659733550250824680787008266996432962337631509885069235581824007008016357561558513729243158798189696991913397105819338440610936620192758995745128058343191799931095631630375274784889761504555253237378208964319563779624731404661632897674569725737963837280886689143005548901396383810695820412924020808743074943406338096642858393020272154041383937050748370307340832551419891201401195946077168703933759981661032826758570099454834457839266417571717809993144595587650721806100312221191885653441124641544103308483158356664480229988068685759218958618190561975190037167571520285979410205449122321391515116197049194636420841233180778057665263450608704165495974831777660173500122706758565431385220046924486786936475831495373630574218366798342453698390521762302639698299915728453230999641753024701338375884902328785064301485734907070871633706709822826676444575990657404042296527554498703692648608041382044864876164396507905226479089163478741382892684164242161417140275707614574523066506172391921549902590913088884679368270691671130654664305980033346042416748609078555199177218077998479509755183371378154519444407473667467908263485816303081765744403175000581508869884397320735768172673256011341699859245834684819384481912801261111349249224921769073063163905425856978127181675287869135070215519910938570729683810648109668741968125829471141226671922681446414451974943076023699672504222561574036445637233695152203977726541054373195354352955570279939872599463230395628113190541864207368722468644555162324057164025636003428479387698935557291773220943399960081559967460497387248896688361548475633377196580146228592165616697091207392876624277081916223944320954471124627209545551292412654529927423905138443701016517869341439487708338436561188080945259710626078845343993027612046266658214859141331572535173441194031399283060129798044093495710740893656096895140961609601224434773544755516742871458728927279349125594302959331202541365271542337045333689053830714206932464113478719122441950497032539597900213432278985146993462501394493744084381763923728931216025000075159714888413140164629222410113283414390554481822285852301243203389283137544704663171734273188216444254247809495369950773036078032618135878627699092410311735348973364024369704774588232246293739841653475740993715135342702192558925002777798502735592602595877791457592644890318255236318485993347694015141156154923601102889637739114547748890729549659445001845470716548576650095667310790936200220024744337625191786280731200869040551871678974861356384570979443654756652997802409401197804511481193022805062470409009321176034628318091905586558314053608695440748076575551758259705613750766349123920652214274040348480263330613758302433341477691387509891195875811775384916776722315978865238283065894282493875787963973348501616743860485907651336922914422581620222822761442358678005465552576876448146044096235058734605398896411701033071547889698038150236354956219690642419068913422648292959014410414793082936461607069495571938081551468272482904094225434220272057286880961869232727972898459969939068266147075803823780347203579496434987368018172521701612814603800469016998858515767168247418488875536459635884358157113764322041058999985065639988103451377670454578321348938406631315244024201322983556278682044664500391891779308802012204170718474140726769287232458314836632473223048911980514432712279405414559062583389701115284858826918126075752216287415606117655463399073955224782875384444443875360295414162956001609034295004240089772587007330667807305107789317052725959348197644106517701141647979948563060318958073864491676234092732727163198681649868051825922587635596402228663415179501725689582438411982624600040828292473485912396671627671196825911925521635562095577614130087686127969416832340401090053363371286967885386434781594596618999611791677137051008209403826974841480577873676080018431225230599831734714814746063781110579981764182762756319400983439260373277183160709642151148559526168504923755063584174600773199060572534676255835512955799240563635835855182227680373332174291177289356947110589584699205798109771862462204881221439700444544860130131572682663041499627433784170691390246827423577126665043481016815680846196735557786479218072229586930869681002273954608264595351931249606942076333224312149474105239679954995635701673228676928938478272658354678783073900870774741294922854452307814859546832485820163710159959377581412243277810045347869709429379498599822177619433542863752710338737671270797605539680221945110975165408530824058402814324412393037291060434894567886645759754823878177827456843835284429636955107127851302584925974554103002005199241313263450846556470600313628214036429073761530964783081716170940570652978762454437316465360639001825638576636437240432532857527737372324198566046312001665109345237388214204611805406944971249350984320421122759741114432888755367118249486719209494004425136960695388378258782645381728651930769441662178810244015325566756605448546876618236207810847526461570059255884404146932611576720994791098951464302503405454465579653362286604495314533311932038704476547526054634715771369112320040825820203352299415649147281442218238112295263457476439176587785186132430924548694020514388494792160819690203220624359781026415282224726990264842486400872213970367505559200016263590708385525776121779373984208964950529030275583872932314978116010205312998785651645843647077997799679371854673169272766489886487113031202460374792711900186858284776326206349147919142968601549753883091458955296183585440384521865067895020094409158024776182673841131143244093770990613299480825653742148417481033869528959750341518031435262672483742613530460947659305257071643218003243199287576440841426336420503360569995466432010604865051839502422955172917389319685159228435127970111494461931914642995731343759346053098445470426850784394001555435967238097239785168982755458827952052826404777328322091390406135813645823988739167914604178573086439462358036364422084989266966379694163722218120643462330771101300066398890576892516194293124372658921826398309116212840135736705997498511568429705615468350696159066319887390034171051184262461338690194982314139117596953663329186414541970937032020629483026317216578052393241200964328375051019864668266391707181340303270596978609228579575294139732417302512259573119143207712249815266531883242334223306899364335729821482777733358851047837777047175436568306225720424555737571801469888348960519938425454141536499602022641784540965743435930989637776559103756972584225823180419323590952881783872627125920516380953665686468990319286391753221129666041357630134353340124276857582768201159259052285432662083869477143433397829618366798368832103733698055355535596925965016970077227406796011656529384114744366623893365379594376801164326581020689039012313656306149612837902213465052735782372257660024649032798440906456279121186622191882444895945787405826351881313031278609037458234364116220632689060766020448820595340371149214845986365700431358538200428747581140301075262188909222132853344569535277565918706769475387092832193203845904647927092755731623975423116936070761595552885533488158626236724962097535603367149468516930262331236803842751691903988053800239300321544545095208924548019162475897898633114591030337440175051795247374534251184694457737505212721071896469349042722711918296848114378007782185524170321712904347988888338406092711133043386358259082869141321376468440984100101024726851214209858149814446874747418420732578641055364393173221659387020485856597763878341826369729680948372933434221510130086217708544197966277490527208021727962485043011183714350099610793341506400784636368392159880281673281735121827225101818383207694018373795366266561219752447413789785716547392074451741729197919929919499720722250716515028024845874652277107144255446951562805772582917749937840876546297603226379954143650796900199232167067773021226058770908522325467907562609733614207986716319140700225445198305910448308719556826066429799354254059555990725121626631586817556130831349242590510651259122613049011093279008911643391401103960424709049606882296471172662457356989522392869862200084027940037659723860689156748209867300316713295412276923295894340888075344377492169125168318243683332008190052064517147856656784520916097240085926386173100683515354770151295507386327123239420050726021813176793425983377633247602703355030699205005844687075751528530477799377354098845172496548516201783124254103936639905129712254523256432852726181924138014038393440735244101291914317697642868267144935830674934187938472324870813370985342274574671545461995518831665815589069410669331003704969410335622092406622818862159433546246312807303458093614399715500232803573344685513023746125603718317538369648783761903586332215898415696584188878251539295296625824147955146058772422093355007656476271973158795176214301154207773421293388225636860391634119729744160108710205070724316370182350047058677237848860772289949251238970870526029525298976889310442418388659360899043774353894287315401694458862460838937182386655528817578567647188597787643110722999668782826173509684711284460709422194506570220860746881970213029518252255112829286785791178935120364443717991102234530841604929229325583118715899776131002806533118899393512452486637174186364730749791032473590606185970665476856012303243038306092057541830905337961883359647565741374854324519336259692893025339608298791501914187590523822784411256739122380136314966921307832271735406624169707285286500029525397298048636238292172286396311002591444565480739080437215203418868848310543632880102679524267476722006727761557880434162162985305067614733030186324848698564437929147913963076899471081099358789522196730135786175376151921822877934031116774076833197031731250939862806719563193475028745633131746691137431780869206093509703313732517943489365819552568812512495701005301013385571825907535792925651579478102350595475427803324025674401974646304835732231673511782627436794172499315520622410570048258262864155795022731809936374660156844792417449183704120770327407166181008622335990872652326816220763493327552074056283667684305754538677493536036761714379707702878377715426624980815838639440161128091870749792018609388408030550648213142187280839141248280396506547616102955163064268347951080597985469082447025006020179810395055864447844295024543770308533896163532257016768021873389995436080242142540274864517004387377092522700543697385365972958798386372326525014166777142979730019242510046085325188152168365092979128941989465384650943772452006376248560927556723000987811713502831282326331414813076296572501332581303195390453474366167607119374024681994735803864435957748936313414023404260079787342117049148261347035642008258191435898678819680295215053256219470001448994866784378910716717650021285729741914254749414689350041254308928301322665915131372500114618371838247423876220641411809057012594980393466094557441192833656039720721003613174927700355285347096875350582247721438334127915834740088454503555766985328556840972575785689833913427523938056560950032572757032439658084235719494337136437161927207156268983629863481832528391655114568404478225345056744185978796966376635627606435150016574929607387466925276879901478439725677023859598605890783504961925545143676835151141583626218709807931507984795647685346232609028007126392072880689205349953295822147930195208697486827966313132951874045020106103087112984207568369531366102530516938926728822769319700783680347141727931769636848856392645867779846533040200479004854875665036994220117072848071300476840647650767255203269562644211734802298017186226584849352548103752242498747055551662410780649143685844729906938103629868503503224243951044745616437071579180628520531733104262016043130121138419266274783862448032171456530884305004233808427643584852279240328912685671293723963742869857811079970064785671614985338336041188169591535195062351248751772016132873706172280887991348199419428613665938298820243688194729553971969492768815140970204424754033235903722486865309055056713620596351747575908635307019062559449489300146220988371475950142730550559704421624072071238485854962391931582435387590723202135426443594438069716180904005485164621682015987335636790119213547041064058515375426144649151698639360496666413955736212870219469513557532828972866500401228469491154791001973423219763325524832743794559670451731006159768180455880186004148726970256162817145812416419630772972228264674495986991794550963718612450498505355189332337758421855399075989996736450380575787022725083184462156446790295031106284142624278949289258548697548616235741704021311921910695335625209371146551137043033700079436630186121373012163263318141453352116047695571607720812703713488677598756581193314342756593713986478944264913788444121237421609329900846894617152678293400333885656679303787069138200673452089365929774116789374374777163930202394055809081391326542491067058883590902354192806791093118652219708425975796555500310759905499094758710430863454948513146141009136282945535728426028529577298661291105213325691781434362770501910662433120918453593384065550762808482939753299583258177955418894804192313744614834816668703868099235297192492420172044756433328752404897384887729368993162556803823899479148219123961285471805384898886352296313396249826290479404333436854583940741172886875100051830945722478994503241619994964582221180693470459418916787560998074173452708147372304283467832401693300199090725251752616317298687507177543493275013667862493293717759537225410393179495405056257010914457768755760930013267017760730193306243543401272022849127887379448056439051259323673669300932854834430683522356642083286325514940773181085478470075829288348844973305675704192458470381229571785173403752518950616125636314195592320604465019246090997854234503409867888169980639787577823296872177089550478655150579926419472623590101672982116867266410896114660582768024137685600029967191794126446093821463964657299722174037734927090311512470860120305378505138024651032989888877570326022859783119969252424501141807662306809942007694217725695080963464345106117977676415568834065665152587333972639480617103927793074483883531557123055652946837079773118808809985757578588065845730119708516474169922886396999934412674730817789627181915327695327844133594128426867165303936375532137109812127545033167720661345882234005169554276310604556819103561856942718097212808540035775432176204986778166826788535797768067262359540555727340420008034768406999164113942732185333817329628909582825902373936812091636447733874447740514146231171377613974197781270033794263734916649530603848806726730891453265887733277346999053207573654777872035074722440085855480671504602255415464085267256725254823683823514419674898638671482854200923867044427673338045621259092244997570880698067302284917433198993189654627109538674854783270561010938050726268484489520231254721663609704239248594292503137867991671109359729575119227423645521997358287254331789465176840118006035813716753433160895818895457723527703421066942242683814091160085674743342787010926600272515386333114795545058070578139438533109762088930325202642905012774234232725271990005559067199426931454929042874709330084957098499082184813781295428729453444548838163992351144050294049842397916514971481658246588146697433299950186098028782402060492390531460716141555550399028368262921918039254181703760189715922410146057715403960968576535741547234497476052359487118009162438787620846787481144949573252694201294918237370269894183730920665937888889338007761983094053689081812155053364993984464193168953401405415410420310276064626569933682720200004461511266602762456004350339147876255114131824561690504035310697137649027591721040611247303989387367952390374560337450838288601684515685690665411829660218232671467251058131634899822647128474850851155044448395497701674897265047434850702286854036242947705720808624671867465718961745544545021391467189031561876310467037840652820871147738326262769197793306517264178892413820685345486601340057913622394451600635678155752992670045653159561834385801682697093912396299453748016398760961878908207307217596682456939346007441321225394772827801902983317078493654344877002043782774458454431292513170262651794074116902664068128078209053760509106397005404321844418259467394006315772102112827461006166047076905544146099684241778285057117241894190682507762812947404018232965339316935678264279253053324263866939582233925139637746113786754823236797166257107458219912189983820170154475881529535629564379353169481295002066921435956400446915287990780692850301052557827743965454832991450253596044176894851817563369854815281764273076305675608813398231113033371243554045355786245507446613601518071103296881810530881704439211821631704708298370717447267393384040120246521721287268419252359866268895217403725204992920493887729072889918339990894357087462591359246567161451634893252801776162085156481470981441013735541671931180856814349273714386351888277432688047512814474721064482126417966346232235363560491222438209806684506784627984653130275741188299025965809461932612470323961453855619511367425970952822381617028703679187163055268775773323481046037310011037790932250582875457581945244007880424813469347487819821320971865691479354588144205233057071153632964567312397018015768116722366669671484205724778660941034783246111217603124956523023979417752264591616292763322653696847249368498534816547969603982917479672184921233820271514759982429896213147077622403610156025883504581605925982022477807812683266541064220125613495038543207259055034357966561441671696994367649405662793574436326903462609366223468088498949808310939688135721618569898188027069589847789344677783392944200097280137807003498302613092652592987804237766518734427620071259416117752554532944099648697134570372923092341399527378334696353110596656221998350076350942709317222382177629502487610320242113177310553819954733230791890469090959410052169971747745234883511944614093874171313949407744918331618272141551733935339240914685382502808076821419660743035339752267079586296841222051511920534219464682287523965918940046166962856647065394743473150720658197431501338850458330881612851535733449979186689539643847601581028568044360096521497314954590561621917872141272612108169439292678100392420082858880067633687228113738642917339269928967292836552209321463882980937307806003214524105347808875464433375428346596082033658261966310229082404278424990065608079642597409885520608859938059699333859259228440201214756480562647525384288627302710275503204729930637565957839511504441357196587457074265472974373513441538856165283978437424342709127556114682814926081114338359451954424448368754907085001905757591653589790890839185220234452122532146179498546342753242389389862103881169981794205246109652585943283570236589317333725692669147493952265942621891386758194996116834690416290999115511329669943726938268706777141169403309635435863435228711925689787594951538760269657598769692554389675118718242794741912571670466453107766826772729569600154817596891375441807204648663621223653778309231095696419463041530143167848550451348834468490277772996143737505110299810828385251963627348079588132774660865343935031266883631605578343898731232662352636158304586286914351439485390996679107048542082099593601841850595584668709181467895033279434179414758076028796321864594029159237195569059799487893292326098368485717030332987082134631453503873829786417584228680632342362074199801708756211290093699978096291212624469671129269619361378996417407872378340023928711029591676527859346884591686415730344339132159610905727627357711926546128194325733659769604160806651837748107800674579359844012992868111194321461940170117910761321997131997591425453864272373573985440437440311094497591156926795465537852705062830104935665578517951749134664233622422857891343356105036020074251873872489359227932123255483581349970623879580735551677853912190026489819884243880609390642925309322066781327880004919130316423914740819974679900483510784589259057494125635776148801005027519229053870717495952208776096084865241276632760178315783454015662992733873155272613081649996365696919980884804844196766598020521245338351449341205801990452871085667128004421587413785169708459644306036994607628622415460524399981890161492527851678694436248676978274024060107620412860258857699886829633023506559161581582917297182497891244746684430266362730747242551362623430222007386753361203497989067642111621213435670871208630547392807567191132408044933377039049307661642006253484341731711158161315082280204399628978999480164344867607047313425756954427992864090451753926381448800422836629047654386960842478216543395609759641815373324177850602246497029203330341427704546201078479120172841653664727563773315974151322527747363000887531900815654240217618875863866328683875533124355849094673446914400234191000821848199061870562058562094157551159140583617596066181252243681404723852990952898619580170988405890871164586304820542323764969852789203129590898871360640543298409870688656097012284887272373633202402627497813929269186846433366194422024223402408358084435536936823718609877924494989208845370154997567453215868718161324648341219932458974842988466725654245895429320383165207896376949323055911223038137210525021983045372423318864831398679987280440960037421114312053035107782768225637577641698400428642300411835531552873651136841348407893526168206611483649250715883378741745479614001984195532428853112978380437865019427014559792717588483501491566780975472489395317037569129504289458541632149701327077842749705846540795269860600881702968654809111731984397152629287501205459358567633436363564977618906919862569696466423926590601287247983692864332410797413723103756356847363867342480395040718378164230642957810925821711998443919024575097400975222514306849802130229235803474150218112773782266241593030191910572406874330590849967541890678964267148821522829716110289429764189768709025430483675187993029028100738687247457413848379365745676798136978469888798128355973670376719708106495105788737791720751292241148504776485403509514664757964898966627167757505387849425892868518188636065198624318634764860996626920787325505350665119615031170857845771139628033829682676556398038461255240570628937579572585098451573371643029673043408684356880304819578991687226697079930925663497205532965064404235566819838102850576894341062863945698610528284163393007787667062313190327659675974964983410732636564391654436492809402877158604421357699549978909919179340246565305611074256831020612930459988831384458177207181928016003970259496014865496324213396732406670375314834550406276841127480657000668059095736657651979777204599388058147320714317477211099995010536629785640522977835576303544978181087542784391121808425726037281433912636736009288539046274671273952412088865510920936610407446109377457327236786491551257513667546239676540530799111111776291235460964649986309448969397669459655822533719786003543754898560391853544953307798640370810004555021691829717911579859989430638729439801102926262779866017921374238844511176916863429566086604876087244937991811826272952009035956566030152903867733361199827146395806588898511071819340758362750055928439788382457369627480570984311093851682533840841028947381565861842576821162585513220758008932184915176804005417340358770230344131075696173934404785919443959755101905856541716070552933458204484921934547879974915411887158618907891416812787834232855163018295266055444702901798083584511968138862811181587569967157955245603969014000898939227831705500816493206086116015788257098038305227581982589875252891396919133711246279564375121021703359109879626762435627967815871281285523421554120556798901699469036532940817663734120794090970597680105520647982510046199549917504022688555968341007519942270788091587781727185949469189256659070071688172437989017587320075984971986050897602305663559929052183627762004545464842770176012162309371132129623302204221210417570120647975913121443038701516744117201800247916763578731241285931986774269431993170892090955077687741995289132545964019782851830103928244011241263032105979782590846310025859074302304486870212442238656268982442514693525042724655223958142832973665209897213205151108021200305471161964319716416082864516532813791823695753971741435627784148405303322210934435484003075234348561919725868479916586959507189324793726187362224935497520588810652797716076896751574586818098794172906620892261126966026919407311747351638857703665986836986749027460325064416000269423014587040196968162469698110813224817261569958607612234299813252079769111582191186301585602216348760304958038856913319613636644305230580868654500161890296190747984263638289308357116161916047164744265550050130094965664927088573637525913371144917787850408855077860476053887422575983601922818623158001994268021959421817470727155917096366416698333800006004246782762355771218209478653819140344998755149468645990647250712914342154352721376926635231623512279458547863298542997721177138068287467719496273496777624141215199594459706764801123472617158050210139350038916882099356733950720688674712392746967808659489023348520110317912379023290481881302180519901248967128307672231783647249217130402688166070997481286094183825858633261697599274135176531964144093363784040389158698781487133235568057959001588105825461650358736056014759838283490664791174406094719399041948285605180743445225441517546098819873469240161125515202362119508065624610604891653770365952553630293348957676183390144419992769036789305416445859750552949631297391152029216057446832071785124351483171721626883674203400665568337002775719218359116041565451337948661140988437901533744801928267615792000873228808349830755725654712012047785650378924954629637711063515399517364266207995619139271724010924055855608695644744080057078168103597445875940572881489798147727168091696123577510885271117839294731703640042337490848354205000336515689645677701247833774140068295653475417882129301972547415705698141823792669326429889201562286681830334971825274243160048100660165572873804507500994913366360750852686330426121481793534761374954189599872785983032419565967326718916940130777977651825978133799971095112211388866146970888455266139705512365972665484125858676670213806866313730794595853901898642559749163315234841929355077558872258482271708588644942861791124172429090896217483915179099605187080141721081273357908791733754608242861540683965911002256584214096817054666763639275606792541795271104149680357107000243748260705202086315528342703133980756956712439690038264672154163516038259102611132815787497222426077149281827697775285822668802136743922150648045082524261815200322797826891054135709716316690485052335556579548136284183400408875645490168802627982562305145765214880740800787794904256408855194207465073983370128293872643132245268201880399061134280203825140302598251143670815715262828404843740839267155898344886193047494244514289150525926045269024553425083438092276237309537277405815906314410604439336620208379062840998147522082807681549110038118600087021121358569667275881395088447154108623582367891873789410513299291553083047046705741210984921250148442148927995221876838494366402651072947969303161654094060192607783824002019488466639557300171523799307882010356383651292943730221921446206930183024838634851171999133465081496810483640018755788186597835270675418778630294684355952271323271668902577510774075142424736538584238059025047468038217579839080060726118518295533825393179148876767549864782092614927647080882868928043739967492696597551700947871914746241689092909136473577307147221646534193244563900953087425467000826896908672099176734527528107295743116238398429011478328937180920913829882193373970785557822662176475655499245699050141585866260848108443578911500610942843429661458692421608465679829055293405567297746988118446521495620723294324391077178333650004636968222638028812272752227901614599854279806856722638099178106951598769730347680857241960193850298955796271886329266984341719168607683639852586124660685852479256187770691643674176389216906160454591471056693382037844280534621871104300304913911349462964633441439921390164051885596508010901401637202315112375346062349932093214350550840490850782809901054893796439808084063439682534654339093214622116702323390021791939087441501325522648370126373422326244286553819072384298427288213794888244213114985529810026761069566594474067094003066464124447708433310152954267394674192610750447495602301848462237518400405979207964320785161423728122437635448541749742434718266778659035893793685045573096573339780354752977049349111831409359803172129371238243544101106407598552371352551488482298042155322943277453298578599057867288046794116701714659294518898411196807550939425574037286285037109058388518683470770725851897435063602369996900790150557537531897607684414356412953779463771551525213569039534742038179761153166800924330792315399527332704527151347823589044166016422426707621821766861489666068587149729795762584600052060849093223815853218242202665742082721372257297419375190538959817663349994220050801403820833367167205093642745804348492465769396262956793712083358065928803410030794457632125797650537931329415968118346904925467066663741453649179607575819881804688802733290142313454603106496981711458293391136886697939246280558946689597209340414412596562198990797075514746392951595554193628066228044291739441840087346278115827008338759142911930261294369695985024037365810509310486636747626807848229964231844208986667465377805029127394050765802925391776355904090350285730472944099242732995535867125609268291009528164254891813766025465385113929936377863641974622810713165912266038766134168962215417231543150549619481924160745782011155001677556692503246430909484517973582950925550732146435389221781868933086175245219178210546063588144875627088360873315557493004997359121686125603054011275298013395332610337191080723760840745791051379823679263429280656832658767413155955592511186270313678429154565078335221724943960126472951858020752575133394910391788923124211849065489786869401424132971815330651569380799765414183137701528426993974475395080282979605996242851322978047958341005502920554325333998213410106297228503405132045747275184856322428388300536343439351824512021992686033978424650803572313971745725549354974907609710325849800056195920385884653377986177997890192302738232537344206610718658699726391689374379710875859200321668812842523909939374265403408863436352398532426849346390253402807389931956236818508810805174817875913189588059209779861104691364045188951399987644472991779699795386284929880754712467446656877378058812854399165435354501544538532555712020051216592467535944339372015129658626923724171637494440630049390587556847798349339072281295346055857326472911232639238258695453979401425465009300639412993288550964085562334800127464807516732898733558551034972107566497824109059917726888732209429658927158554384663665808783016174246687960755358848540355152478686987535842535046242767599765818074599204797834424730758172845150026697791964464013497071678673101813311835317636202923984842868070875734756441574234920988527574246116477962825663960991492064255494188628777318841887616110265153954524537248520668460750350431311682989825123926649599453594061342734501323475274574510474605113146519618185220531807263871799427471095270904651179690943092173476626699219789338022626068920414928253537871644838563837203842622192267824616946700540589617159792429536614080438260782840484692454012327298502501383312249834750257702981851434698121881041281995347926849794697922834043697331391698978950039564570710769677145339305461142431251327327173007025067790421170510089568467116876867451795563677112032933986544930945336808193359296553921021826160862041392646112215001154836555591949075415688550782106803864782976455402709195476995596702296034350138485557358796816585340969664189166387404767382177109696057025114467282022393379723289824665291126510368523004135063428044152373065740479242406880943807482087064879433928092679137937654701499884788494338010858622373149380509979275616646334307941216701246292614096718433264110057182240912210615680746788293778169637823039503828942097608726070406340312250800788971693720158855628235136435163889485636054288425022999796489859619437587328280158501964725882302278151569728044335757530986625904017147163900984903230610098085492043856073299106081380737759643279494414005040254107514443461180095576182502437469787902029419362322073469551821370465839204284314544366380323676429689558538930683674482503804977976787278700677244003673594196984593539670345232350075222363027488988902433115157781174182383764338330194066138732176995279939447790181862051809755778472386615020540605654203861735141047310876436799729956689486450843778502397364122300101103045831379444116121719714215299094326214912953995071840526048717764580261365451422125312691498820812881682822061054953692876560958774482315627760481040090619953320088754395362546625939793249085877416738338192094273534207598802946596383020583481310232864190201702649192643983775153811983609758288547548902599032498513055627869793219614832206487828128760831378179672197218003887534792322596252031447197670295220533691621242279099442734777860243738692961060678962142935972946777547722541173838828346838097297595353560905552275867968206356258316731020320810196446749672678201135383625186373727832442127023316326034821720174837395085778401582940313749601228227878007851667272866356647930184717369648153537813196597537561462753561492737036851476166461378188579138579190656799156550117022276657156622034561522227494898603469865836783502291032269985077818053012125817885821377466246080676610195891802077186995169589549854713244332876241395598756639320829363169740649696823149301822774567960704149783540019574411156125731819704680004277303964362745283652480306324712459254802686172864652604224671457264523047991076474518335526881031050247049624334315297332313618750303068957115381137669859511440086253552141977169674677037938891152809673286420687255575725979914713149365530812481454023430267522106622980220466317543259283184090808314131714999053214083282813748979591490818599407484864047899313899042736081123086809031246273960646379541946314099923283840056032250514359293192027000771227340654567754060152989400226203144494815044557683178041176198438635216931357926000350420449832437066415391088822485561029114219140509749558519881999479243501746768116200425663667836290072250818051340980679006636870406869076724818476893918495850588634255545816657963919477486639202411927827283628362495489024450215138862227762419971883030996053456915774872383959533460020171090785710735383589416671636595555718512727478739617852954322114009960171737389044064022448774291493149286598413244143684900320929976873031491054814969935605787527543104194880130203614431724036836279193190812408636739309492416252453356681711269566630877838378598765082960226059411005157587751175165118813773061142380869808384377701497592950009752330742549353952043121696138441317792078803250546050924925382682245094001839912867722676026714795081354887342114081113209451438691644184806677195757962633174739727051432392218365563896508810547228872600506932264928733915627116959037728436297044126045254822669207302641380768822885171556633122013460409705476425365040226577776146014577393624877789997561231837188593136838326314040499271545252312217236354017927866217224026009131456359560264934976298812184206634052557269510740248513129972398597027129136067521245125783392005252832315238965546128394340016861631263013255279389077950348030158013730265054746729054974456925408114430844402737182747234849862257198656853631474328591502741231421013969928096437035202849558884130355096890620603716845057192472809905082489326000831938451909180179663688354859255888628816141509714723945402760322926723539835305393016702853739998620442794134772218820225537814249949186844352561395191606615284914062699375949394584504765784405291367981986492429032607456531158125177386366491085432622449253423993099717754112270071296067609708719654623664591435965164089608150280257476715718746907804237843679613428906896740436272339115196860095243617388149505853764156864144705335210017902646112249316157782534247918960691822949137732500125253029070678167190977154546551520760541875230225862377959581918144893335976567830050986579402830621424241072777840686851583416787844785658178935737083703416788428952611981547063284723932937613466007498411347057212266697007928439574894285901500888341340824183035969504947526877099868309235725475130783642768235311648083070502165770565929683526938062270849475589806778671543231227704952506590044673204891178154086759621052206515914832179265414717811146238514777797306691301500500097599136581224979916738337941523195603044625217154115845536250823844401309704921368597532190824385119090873891752733060451386344618904004565868551926709704341174960578006947644297470654819073331964813740755809783664672716638087978624937809607439545192526428380780177993042211253480108534399028479870655383424368078596973836200701398168297331939599869877177084750932679216887044789895234302289239082329948543154122344666609533645925498427874565114912936042202218687294957700858958264982108165105197818407040401309257862249479081608334105922238409375335829563975447871166985296133411957205883076569739766501355161050505198120239929176977074348984425442850526756381339220421185655754741910178128737351536473112157394091110451413955611253820593621094544440916708989464914037679621620525434489964167021469816861358884388893873461535858818008944777378912619484008132978901216705895496155284689015784799750050070871312007914062198176676136365976400425084555279713610638216103066832683165024602826765100052602693453711962876286354314783831358856173641083364822701573736580176265600524564464611295048996319044234632927076073951594586947718164167308143396853153946962118181275762614997280873477271239704373200113525641920879145756981649931574296077000434346147634097835883465476755858399595691868530829615023006576178784910838903863429946264733577681348745598233820579338711106665114976587802811057845728542801094945232972762993017102459469561909311013682355727668886605138126454194340514964867793239633631752768787779351787592868322481187966614608289519640578532138551185042191540599768331396976705838931306456532107158199649380482685728118078380788309695997246917153425690830865912745889618736476310233690632212006028122067228187990424805046844611240822064133796112747646887798546512436432372272640847686968551047027813862216745256720316763691970153199015622724334693168035911563694029178324834098425273452521531901879364248856019996247625282007671961122495695775678338415660687857690713519176102950785935020999909222511764781418119959887608560550278130871664666414014743516731810509555633302010158241628816739009554155455452509016463034529835636426509264875730408871818329580856057014412818949248437915457532191655341091403621269553732941694670323442113653015645422408515529582969342788391688031390186153755621414760442834724572054336618353104105570886908692835177459372847595261270909031764826278312040600360900215238737716971266890767479037241563299357702226684068093755106997333012243587911680572024126325865726778674846311043704222087530584502302092974389398092671449710214160425314070427369639775756787465462560145304132011982760973553473670746900041216685091197105143199306272339044056809511384133133654157882000999730192584348657618871080642295701901473341031611694424972887715657787729314185156566857554362526055863111298150955396194775643239968593039469205564430403342309532854699084912831687537163120347716257764617428865338313594516336197923420012547061351514530373096454433041126584577608333338286642329365271122537909822284060564357465545253147279754869336833950100873517526070604021093084551173281308994268073176540162606876755386563453189866159543167543991978572406644011347167428960854281254973112479874054017122811388869755059621992169203847228996283202217252199248062977340139718639643726271798048070655630169045991446472254120870653780654813939534905078882637877421197705336851146118000384963525380252270704622960202131475440417716492769008407230728659072646640209054554808641090426496703468833555654040230489753475876603766925071206072074834477136175561792288885943131329428013333643094405825164494412116580605832767819743392393727956266110806097776191312129502268705378543438329400250535530617859261646846657640825330084699686974122143796070859651423699881096196543087521431833495597480054683719863224325280297979967899979396830746227401972542879560053695900983453159263024692983935871534610427173661307892799034462562633909960037895261784952862274900356394233738050717660511730826810151495449189995410248674189816210590420801681625799425355797614580995839672664861946143269399426187903171907094659576639556456792101149478776002065855190901435718020511634062351839912435851564145692139853927040828322544618821428393651734840103210066511198996941692679845095972872711090721874385619568355382871818046363722948072397549315107075892381249118433889137945104917012119525139114335332738627280013579718312501457687636568076744606874106023712266724850057135495644830662323850783918970662190034121993146154695437983815855350889445516401394777210638548618264140423156399900171668415735797259899921704418267793267088582379315149728585328748663199633664945098372507369315674614602310627100232781543851491582379788036896699907331659898319147778219365498272490271014462645849978881252736165020224446530091058000333654364223828531044255384652912539550828752326824120116640893316603222941902365634103196024097070388622867695911853451021723895106280762464384252869707630511458686662486480997102189970687081406876305346859427372878768244067417437255150699481689179046847561998729402622980688960698304878694258578674997381446881664934517132594818920938864357922512157425811675838196926939761778714387074204903138910128490138830587802487197863512363880593234553572169137423602675322015407951578823752683912179012096069202118285206033008519564898462970887857025785033020885047802896917267646467660012881385099887617823566254360471817315722192724471627726955416438347164588848165809745895700701867934624889250361270870086744722814218878761374834371072206994075116657190974225862894557433942420223542733962605811284013487852165348702083168985469362051561584460549999827484850161165658776663716263046641908464527998588819397288373587536853012793992234137092964218817338696092896987405062405812316148377522091346689077864319090279327535553007724382005497333317110782108319062515909318918234309107907308912391042009726735317660107914144327170175001732403953778684430761500290239353161981127572029645946494036172617476697688396823289061475965176931224183679604865355535168532519859055113692984628635927667975217749713810821015184713731670545667172027842659940249551728576925097964142314592727853476695825944932948993802797865402438957110764788833276405568486994566090466266739619580272889558240443926411435491552036221996077241534646597132954812220430106719642691187074509366571016764639537445532651752723507227247621063212285867764076490700082307726885315300966512191432426308224797973187536727811295368962713147113012496709696192431311226483622499819665300295520548496155441607669257169981457315129287263810939800436008287443844761777159918066872586775132182032816282880321859078639923067797476025582893510575826244834462328099931310329342330308295760911354408860913549217902723549388139320426554477840991523704816660490114414567104080305069190180449672472396262364564234376493581994488489145283205780381282169558546474899275441986852935074939619365272996176029657687668721389719316404938252312778585421913678108478686173059368748369538769757173744190776258992604282303144035326559529715737453553628348522824720802106217139847675213296734899841108790128491008003903189435969182417338194858342072100530767742348435852939863886167685906571136827622145403019663944773916086007166957521445267006112282951304909350591606760679199900072049854565083018039508124488987277186279473450032731771832810280505035481557238612250853447266685858662058244637855635332319455173060816833491019761125496654470561487718178846943461184665420039399497086612385885253040635444653910969879423416179753278825356099898605117365057976459796059755697528694159453333036533840974464690804466389891063560909521960748036581816561416264449902987100153717138219252357460395712495038771305326269380434664165738706562201947984979002046474850661861073983598787266075990186852323038705844725774629367952451983577193434097602453699913919132482039382857501316863648406212909987907295226105579922244815311804016968710205864885431727425013947301208085713836757665799987353589877703322990567987829875793863716660179973315753548823545803215070819784454981811752038245493174348551093636643170339357588802070305297603774674727019719201680270227027852424125926251013079040622255227609212365897729656752580885446698123245887968746177609130296768339898924834254713388215039167895034834641662915877521004542432762982392978012363121479030291244415949997785688229186823351800450267453018019223045957988661884070218921578353594133188068960909455782853339874448810758409548708598571398601283284096853243297092448172865568667080691898821336742314829914105977362956315076727347379030535489829532233041954994109812414513813589647600286277967814127541244721622273093251151790271797800996512892394188089627940777123492866285619952064043010243300919704413358656874108732397168469074156823678290546706616114515456218195213688811841796122192697581005064769247483584872520542720647046475427548528578981933861282114614383588485036223247396446663812590611319533015047560031044025776471293150291670360809371889055556839454392043345655102945728546560173868775327848854199740502866695671981959323183715095621723203466073048935090332691019494588105271318891465422938037642129157392851926044689065139110971173615715274241613729644961149718700482971491992638162505746626937366488356220327779701220695857141623554319900764184354828280216749394616514437013901551858446254763663190587409826637380251009389714289010665249279275077084475913114204675095108357750743750781913541038304052951459837779353640763742872698238539250725388503431399499653034315076240512875485973731831063422609838344200388831636003663720220897408170033819820845897154901902867560000253580743845322366065581003322017999725736148159853300283570148252116657229029217118431491023403685634239705458950508613593046768115292144126268975622800682200306429091379633681414138768633350399995551681865590595980624251166694433497438221415436890119485750747740632969270300672667950955011144294206579653238243307385160075720781897891869414342384943936703630825773681678552300876879265982150104812438183193927947162308325053272644123880947061008547031165239087247151405274115800326356775516358603255827113726083978297300294354763020960901331779984454940928337886832613926380538263738297083293400735956501220738561744134695878030178596304539410797963532792542755451077038195599285594808432549520500229107333380896706729441207810799444935863026955246740173207802264130812696487676454193491100272601832267667657111301491585329938384188941910666514901163035549183957776928975353056420046150849840240724035529262544327517987812726488347981112099848248329239053176762113368448604153172143867782621352694847730433547048850228334268586119303902172787547062459727985643051752713444130288301197833121460018521875831535922031933896765155505486737049636005190162893544141552594036137930528449617944051499252605940934023319801031688796044403393196436517126920483778097787058395695993551132256276257676228862290309789486834114625404198831833068159072845015025716725174250378954903327781705466991505825981000543014823206798718853518804674969394503845208003957136478461804326870335067522707814861647243937429751209662078628929907440730698564062739102248465366780158370191933647090879238381153699352114493637627313664570040765546122543444912532632621970972060618329907891566771467359386294027548859425457474538685273275681283687010589335345526617520896143963999065981778935026874952600626069456565418055164000937044633856155088839671880023888001172215164681810317073445174718749601800327575902551962232231059099531210382270499066955180940513020186794328261564447932041997147420010402050662352469527267772547040816941567740995259237626265358814337028604875142987048364002525987910928295478786704698306886537306541698749055834020709290736822919702246055221211235254779850440490553004779548326030722126198752106977849418751002523603769798429247751385142170426381872932567592945785697089066397942373156471967189110389444418655843831498629208817361411700729222284954320496049382086522129161815288923361440239092046512212811771128932458238356103020513295292233682069553544196175798513489469451929922611035369372518611304833549916321587627811268457447048161178037224834718742885789833658664352454821942360637427028726583763342408280418829411341735846518564639725405185685354375172252044734384162193035669958469375145180083866434001433080130256064193446457481770305629436165264874611978661606519592232430454626708444484694590836104537236602663049820238061769918583035603671551694577354568029387621650198988572819239311131831012660684348612664939199229011826157128387082301852316711275725455512017946447627740126033766843099811488990813085924047334019012384810606056123689013313110567757173220607136817235184962251570114829784102357884351214219944638589844061880215083921355003186255929338583144037944784203219315489036913820296367426403103576546132486480183890904168500574172281704311056151327765324422683742105349362281098700429943661800755775475580542741993129442550639644914930155743935297011381380475346831494581494139624517340877292943982576432390394860705910490550110812091679136453182230115599990025813153146737903258739119639846881282262703312292876740388477310744799922996664314119426703430349306176682801869297827673074570251525026941515028471264385436279019250233956063653401903689077494008412443640776943701931184860018759720317901459997668546801796186443865932674433257232238375608953525905772848874775930838878508517465752557928484341087477542208369821115377956477521626107049224818215046265454121827136073033154818388778432158565494497104097472222705939027996803214497354129201415516450887956554863908608975775180375957159375533083135511690981099965507283699932041015667117113227702696966075312677826073679493123827502075406336015546206251722402099314261677064798537527357162198110043911187984120995888053596789591712281851008893620370880908056456792126713382014168286351739585638961159142349440329884993626080746538001966341524722757152800669332822766237766294577032104091276678788164160835723563004796753371269327623029999522199958404359928937550617219069591005735663618557528160027036251701864893255643052096082353054468501923345679428275662352508209337131231353316715673793721935132819985142357310658190700709659986849266750909196283734510603273444332150030045210791256045476866778534242841895825195191700930272722957992611574888763420703640284038977044395712109962855360402244522433882608741040494206035301885334251891867206457669467499095892175058673871874694038432719990906814298026601214456580238461032763662909308682580985562920063544761317430342032636496324813027083502971510340811343016621509001870258682396371778100129864769130894303365596239236296650770882644072066431914363263892901119716220558392425624574639565717634909565867041718354030932462205812179860973067835048384735129318079033787780686204996178916183700185228341903777096268988338672072531307930609714909199702636998691126972937008131445055227010997569039617975765969425459461382247436582658137700783351456327840000696463322263499987211238596688964275062967204984253630175957263956058891634586721090023898004186398974911568602130496006672716176713502109804368766682070358114805179609155224681280260386694358888281232342841336288037680539938353316755910991330244894734978847713730521326633813958692042466979234449264477260040703694068876856522989707346350112099340651257018106227235969019367738149864686820693319583070418750107012749657637450562248886197871462735019970200138846291238847025461551073332285666049040569066255157504357613533662429321747167019312235847359897810802383699731328399755839387495723169463386001876132496595684071995308771154768469054442020228410143613472579743168093377679212706892734803350428752032376422054948289939633051756541137013855073181101946438823208165723389854943364831554990721881303537330239057177333725659720863720851615873610079588163602256073543490540516974701581485743104183824686502837470010361912646407884586101955837422083384892430685918989330020644446389634011916140636109028051562777678770498276496773576434893152921132664046504004313400012416396474280799949890390723926581604086535544664872280335727371738495433727101601603235199053994738192371887915552549807312941720294045852816009015910910338546282041774578724815465402807860846757766988655794587528819470456225287160155217285925059833909480454277793138118586079669094193197835222529506879249964915784584555092900498378539033644576700301488658038496183123987059223462867475240435971420200980000146254742073630005763212069452142380396206169136811495351985022282762705300307836875162299134054145622514073261411044420785895258220033282183176136881557452609500658921720444216304844698205035211072548606439129834773055211184334181554568357097470878066588587337243260494565614136068115614829083156530762210000953165837177279168204507770118716793447844290684726615474491228462128401048625749310347567191426636201252476089690165399265371601307785529181440835442436124014778531716219460150323795128684579094386528200789158456838901424927325977130285579348365110320535821879991925286810874321175502373976683005070230119922208190703670949680891773181941578629935283156052329288722333606862406184493391476708630679362683962094487937248984915303375755912483823374675602275465598879469728952034084470903828447193572287882376248456371299269474763052984476857386880522355177401490399023201642563368882417534227687466978985981203397701366991169083592056531538628185240494097792066712765746970197062044328162798400250728668307182620336289503001433252709312226290845524249581068212451256616312811316837574736657197489114703334302851575038477040717729326309204521157406019329447298987397297330976971532479519758453506811120480406679330411575300424542871126863341590264427403513437896021426493959805531821584286371215188359521778303064257083542477199166848189359033634380287493633606266626228242671139066144541459799456600488780759883268186844210134528539777002270816706939114448347530046321327203398386402399528378083535849336843598406291355879669321494165446846822028595739489992524304760540152884716217769593892309474283328441230146537406119676808478258238475434219757511736996295487544218001542136373791656131063788483324758412014808275538259893280795122060820067096369926454396980434754631910601534366611989679909507243377862124641336630105901936621855583203531288334659043053581574025939167082455204283534824347517924954571887184183381772016021550322696606067067419647056008647875314621332232086853144933680473402731557734888265281441036923958321133966903632095037145735972178181440197096466601474834424524062852565713992795413881487491195698135062726102381197627775258557109161195570618404808860700021057940820573644784339592818938680049804707571403798036609737126106160305873385587936177247382242275687523616863415258924978303484525415935623509506688573501533540562961894995181522340836061071460902728614100066709743504159184469021288156350731442112752385446619335639936072807762950200736929848137492297442905483898748182277383837245414458072646380185172745249538787935625830274809777617328270227280200095891368374623279923934479108369302752880919193999504497427669910590707522714473778571830020534791507807353637004733003130585807391203851912201913116315148279119290400821332231456584136900013268820157986979842852896363012555565098159903152472002740057331681804264413823787420026858279372397482024496402335543555615594028556421613536255119160336536662020415424828999268941880154193102041966608551624886638563178992108411958129795412880930221198336480679920564122961874278140510359642960699144957488746721007320922818528853357901420466478392444649067043767783157009347955984259339110543243071437070861705496543629249547674143781231706466200689370282210602653979736609685423924150765947825248042072294137521829761611024018663999337539017087084950366828430467793223651043388469868184978625205586874927867354527038772050432353052374927748702252839154221718484852633169579967155535752246959377900924315741242948677502883426956572386109342065376386830660066347368719189458481179930687126339777616811957333647516849537801227879964792103022612800009232811416628683366261663897412781266421688801677092423777130915372956990014888983840941889556027848802397276679564734182944630436540926412693283589533531673750010663703799316301176176899039073978275986952702812716117002440369302245011183513412797831824696809167707576106284143474853547432626305109806222165235987812778931728103960952474252376847011300526569437656996189347391124864441136618707647593906763302775081903539004140469247261691602086488670958443893320292464203865359976071018669710909442996803228121723480498453546294867397133011750755985838624636094866461381960542560185553068390755357130630034174121761337569893087455815160747437738215144857426498507566099251913763301403260448700723950905656819427712590653474654371762697204446680758950292072711945398474474534763989606600914897070198547656567967558211386574244495245456406213300659892972321631079717316140009315957475161638912486487499746744574166194268927545965488620524400610413030722879631882214854952788220108061339588611196755406192508432527837719464591149522087272943611677484911958015529323327034512614171493518910821139161801050162488576051713884596784976440105458333607027869071011218649462236883980862094971875294521942349474260430162202354484873783487100016771284168013438035047872984919953306414397975802058053695761155916432355632379956632363204147294506353955586136753146847354300262307488065533045063405102672309525858839405980335994364312950677625889534888528104825878872879237535361188595307080226755735476195802578616255438737234536257737908622928063623468227531858207257723725725621335732354350219259431535504150389137362129843420387088915242152167831135972926348859832923619341490220098437071616368370158566588180427122451159724934394638826420138477029311675458034451473450601654649500351826137454403149242657886809458743861743296377025778805103218493253213632596963760945244756031209994398196062181775062680949580850710272404272110387927481784478819144909975491746055706427862537792997357612805018761015484353786860805898579096197978992074314316569336562642345891522111670326663183417678238760679079133257923335885052544843122013472699606435090580571918158696472038464274581035247683850727844891523369039791350372313735945559209042763330694856214433214112099670238485623494497657933928378851978209257875448273849533282901731850908023440834650038867761408552167391863217923206949442167890087754306871709885202015160033722402949112330632508830760408589017301754595113928998282749015979629364230006419809721078615362871909454718263021549360037092716798260201932309412607444011444709030775965222099050854356363090926505690980120021112892759284862906187850120261749863147000356573584821783821491677648479261256053589586544068207936118078156870820201900160321581753687137834156874725658151699762910541797061216677855966798366628297522648550411681503465093840565760926222628697275553882451561769341759164409315843247388370600942680059928224387651368216577620854045042526350103811687505313103313248819868059994280078723388118241576330127630569242502982272407264059752624465232118244044091712645420957718991140338093967774125886217030780709541247745644630295871943857813986097077452847347844733270690305290916075149317650969298619090758067050472041947421859895157490588998913989437747687455731847236576330708304600375516984896052705690207549607991429230762983382814375713480308059245868704668044314283807073508349127835415527611239860780484136283807181502063365941925467829179145590646413063134843740886700677101205205574408123465727524301596861414757212971961786872800400162313989486771886731560852494839843457909977100545790430560994053434748872632878909720238084466509225375788537303706500554357871138149266075748804221375342967630107625255409636099879239901763925768755917041937840087957223426055360722269457988003104134083329329207219167915170824068217929010888623740687019853133900135289004099905434266742411929416335410935451150839584404536974560692347568010496901331941626714094027942085038938180974167410006484060142996764190049149861069113887163285131653318091619315214064552874616008311306872783931826871945114239961654938783785685807550436329198999668789966454264292639805662742961902006682499285980913714781560294753104941151203203702284807812713111458282543008041702136451962317336621701797853991600799956533487224355866815954610278761561746698909228056686503320853435471715804669363867026741934666727702921852222465968159183231714444636288008452886372582555488289045651095616226779415904634012402206434829136385885812643496175474760415591604021422854301544941442452212940240154352695717618680797057268753088167056578964598429322955125353635474247409963319836849223646383718905393615914126263769816743327338233609988139887672207488148060995838762044582029761226624684485852315623274074682262576957355410094265142755699945587857225177409623536485355929588997839489560770802573461202455984751314146219916512010035507789702741806813980872269079259665889838239469103524308118955117122625974559279097796110511424839495146725876889810782107939981075323866955156945732426757807374560128298633900010528458947027104375546115157437650659097150295273573218802396082835676040496328562129087758207254080363198480051877989646969021635474821043103283238216626361655704492675308287595807874700202038226912924879827810603129695396780712225824469139139249023905065890404974456102109927170387264348005939960111987930035418989659708584150914796979671639041102335143341767925665784043500038737338063038601430789538249830062412893699457197674078824637322830109539901630579414556665231327380045611328867717239539855257219375029479121385477377973935082838029212395220761633733218233406402788123627644530880937397668181614437084165310201866780320904298402465193312568093842634350404749627954639534889024160685561679009985792563689978273823422774666403495518354100016236714198887325088090628514516846676063768119109245477834124428267769872286572116566207377164194317513642038574395857227518560589295448081839400599828486499769146448096317875452344682984509204804425259358905232178364247926162342696815007750275759212950026126536918113180398370918611919802939718437898985781403936384272705522064003979013007117009174153994927045547929100207915802063584007486861810138069386303737243060352806216179012216994539000457229155246323829229250996231622331247862609940136307849692170659123627746712892752396745635923382539727727917077320540579284119814518728914050712773539628295284519850872866484439370294640434942097127604682345899162069255624540756042162760995521119780931425901719303777770002580051146403771658085131596648046766275820822011983105195270917838782322513291434387622952406375682534005528083219233494697254504577898073784129874266788249642396001390226163748952015855080299967132815462172222845631250233250753293527667084632082177741085940062953729529823807734719021107196018584652851681374030015463227097328218547382742487885969504318964411755639054671777060467012203484065157891485981527058485013620588721846466792826090683671448081797781061076394584705976733717959138460922766711832227240894256324398325183259658608347409275748816302174196944002558698710515017313189210815248688586314844531369604657768311702641064614015330640726815480838031670644710666004931120429847594520592128073831403390721306568292355303627474741165659865305076769374144651750902469505862360816818593729051520603580512357831541902621309141073494673370112829342082105281307340014750074682024636566357779312102023605251332611556089678675265967034370140245658478777645275349819127128429426764312846058378854008359656680970986420737157818589341584262014332080355995301511373841722771651877596356232670257591174631102492032927617818441540742043409758942343835629395043488208353256933844589492820534287082189173139803414042342680580944564639817212529042136424877014090374529421524248792508157508876399338583103201909833839317726606399690058947774404216967540918521340104835946326044450702346813908800288439063030488656997927577974510034085948150632682680849853277589176164603697273512571610298463115931483180726577721181815308920983540644478571801882571283939919426557373288511418434845349397572282409112300766596141598824090877628859946140446397544449461426735136338960128205340282914899732331379410094967306642884641718931587688734174307901989556374063555685910422512407879101106382458434252810814943330582182440360921114224832174856203459579236363821301234424567813231860747855597118407754891238097017233393712153208264913994712524665864068375931645935971960299566529174455876201927453487403130085976460904769347877557477234857846437019231872816439728822124937181995872371942538361637266431706791221537594458060665782544536353903984159534617914114660097607221850702444493661726311000462156018000786422576851216479466911312553795416691201296930215530336569610251657371739282579744535761337897805359965201666671278665604052439404564771274684134029689328033637716948752927888273708887191454037907417029824091925920719582821246156043645717570942390251567446473873576150775827128080932762043779363278208149424871977741854550308407768235506433577224146401118561581559444756076428857125733068646329423147515304022015332354355107069530455862939614211461461851335962592908647506275232106508129643491122891336906982835954458980802705097891327585006980815122672955192523565542741694559711444581922313734225669159906303028575690934384289389069658806884790157199275273171706346608247641952306182131230618912619045934942461798280495889109471110789049358219463995203370072325604632502420944081944532764305497133470703547712197926098199385003960059617147777210502249993802104906714015015399522563305521478238432038013307313727805543459923520318186942096744850109921516561818636975133735016129987475324662005324763596490369983207867160328483483602300469703013753144927929046697374522775360332193116911482791389547827529579853906641492256883819476962668758558377815722161554585552617418354803120332704968228840478183822465332561388419285503845149855798540102704722513632106402256814836376811690819538209257551829302728392727712148694899743427152339379615723791122186088556024075214410706953023418013998341316916368765158342047954332337481316588734213852963780885101086833587747366246299598099230855818062272574038490283207570723963695189001385184957627191955211255386012419688448105444181296129724976267423465209856000261922343894133842019224692514118969080510995585227195075430561243484022523726422871254060308370685429105681484999656608656822158806595960780053601768961060754157636370020480100075406613918728318081860285856464071206860690029106907840002756141241494109924816622651641291750650724077145915495076873727597561340763323297201335364290188165295067153561948049926465270196388917108258258876256418834112003362956713584052080910170710083909109907099430801183207532124364716952157585771313435315760334999859654654659044666403455038167886525583016604538214996358256898592741606026665020361863394886543940816115714747189500191345557516615943294973746051356168991194915612871554843746797528315059700855147558328347337965365241659058962036532322776618740751715992738368268819978389566099486828416925620301579308446268599855600816062286933240390605504316710901046880827317063635674488147642963609658242652304060310270575770027010536652918234677284500434622268862797987897086947222982727473296637907751733571107422008550933942646137356858843401900470901229253984534458862840465289106310726395753004375499075045446962191475384321424794965492920029066945690165837825776463797700526784336298228239855851448372372391063112059010576379278396890607952832395572074383540909043070224155482417552131223395356764744239441352555815548139194246637002216882999699757351863267464826849703351847189471567722891344966578172908755638078214191825223319622043539356563354495371382473848600913502726274357490923906278681850139861254445712030426898002140084327576337256835239190665703402525407988763210229471986667586228342874003803496387879946466860013805099052028196020401502717378169271827822690674847439030927110889256607184825511276444633479821624762717535671801821259129000067659694368975314247403938279763206625759115279149495026561807535551717564276218680132383040716633111937726157581390570847579944601167268967450392717569493079786700381515575755109001268532298966537797476338932814140255948509131806071260555712543368830724023530783825715172639883117374314949464824792581999966682836624697257757038031678217675201075615360880768289485355489345943412188493084759039432809083370368878103048552997785608729322796968827499491724127316787807596876709904981072121358994136384104881030725970979003891678757971472445312029174395766355996470114357064216312398234948254133572660591619301887742830156195483639156573166407340984035556144228083086861412051027952223684301609338970575906648358080196548173191569071248105424971864090675209413942756055324081406501221246544209378606200032566779863369756848266301229969236329846499588560851097799663689904825410379057856005594004372700404878506431194276129419984104635165830673601412745746503028866302062041502528866975549593539164640206729225260029108401306710082613583154661113340762424774047511815252674036390399753527264342319742568955105831288272673554088761776903688547497870441373382668236733712336424930044038404354281393407995838283776655868733259722539851611931917963097366317592629351133293133270981762640464373707533314197310591581398989072277300119570677836856375038267937977595433235996995860720590137186041757049931324034529949112830938061160018320679148913416769396152492063157864758254263471383734980223431030253655866873238201997182422000568567770281162858770008314504352065415906972535017217271421857780686532975368131778567883572823617381326723101710308131395852412995659587208141736648536120598311516616967495484574602026111713779256053471715092457909572769492517466276335290153690020536927747914108947652317534359748228739974665923475790841493003312517436649312249409977843784883902417040687025617056468594907199852073837274873958314805377405472472429900979553431886891615536125696351224514781978996570886420465935274428536559696297455486746496582265870014364360191309797063980424606808187773829153046707440818056216131786979022453714465156265716653981320349173692309225085603870308837232417179937815033387894296099289023700476356152935029226839550716593231595826052747911547361302837198085454648769140893668403618973176369925843949499148719873467556749866513413939343863174561136539688125043771737735395953727113430341067339129231788963785405757544887895704807343224509367350100433127213683723285174417111791151574727374430423490396836170764915353273686048297848215488758244467151571966099668173360299766374970079781962861492980223191421233749398991005844760013190299995486828531076722543555909414730270578702827609096303064926811072988950121241902211566669863873472241702903902358888076251123802376952180406259572709008446633885512377978098226550217943926045499083148424229663064181899311360618394975914266753350773787452651908327983248922437836404645892544332080458702827127740596780411237195546812404992214030744498134758618697211407293649888422439838198075026195891959155032324775904489278068125935061314363558639588904027391477066596221861224391214878646050516709508762897713537140711560393923717442150321779696234249971840719659996946467310615983665347174584411224195184064626600501865254707449936030149481148821825409212606274201336648725002198994139792268889572245664175235353207822782210413608163035597196884285301250247122306621243770485177755647138587147372998698744148413821747740049843360751582026757843302181564356659614956953332867829290043874404384581396691865678377718118655649024654912565016500945923256348278084866359488273193442273856721295282928421240711828900835489557050521968293736990944689018805492230770363917895846629226754382341773657532439905149990411810679238963594435495014899053291438468724964692294007491632186509395173095419242800486677123066722779682636922974498412220683406748432753530789840167576886495028161047877000146757871690848465153723684619210158720838647791200838391116147647182115539813502233511085101527135370198085357001994362004901166207787713848602766741291060977600411349132130295775381171438008239120698687782022040164630712804198827501745848370525355651698190512285416801439356821688025716391900780232514347808125535875161907186540946311180474075778155234049894453721979754344959193748908837743417455897556146410356408699838406289864260835297488249437104655749098312120260558269272530389126497285872270458395144929562496445548918300806708280491516175313339317852161051328524752414707004329166126483861338627071568541890526201269578602783816748862732381113804775660778447507701105524471847725508866107021395918877712505110520770633529670945557379202136249118175998374177192701779447939056527938571788997382560059215904614981572426288592257763232151973169837580924490817331859822626761545094749251726237642256209667821203225427553417455467192375966332890465252744309569004697837217845759370958020571740013850945177372137242449035656610747872468501771360256183092716260390570883300851340405186483189829547857188243675265877360048929382432222334135214984900232070112323411644560636806988347062890497157777771072118534259327817346515772921541823110953602449949887865294975744965184588185917334403222222568514416092208407345070579452900290908455827184041787779907974122407304452656513010150626012705743076895489373377351017405248220373609306556421542102047370003248421724202237418219722316398418841902716844297112158377537722614619385561192911314861113910287706248728741044143960532851198239467304956275342184913114169557931763252297795188884124950814145965691607259282792703778598162934711342869155308553758860545604455283265905453253496221747534196130801875044683794800314952228961738091996050697548256325995379369545519709828329874090746363412377748863760141111502256829616763257239100500806967880185156720035943514499017067552922616558991777222943005092702100811038059898218754847103925027582956455000702180283765508306560726164628550001209127399431470120483147710623516675963327492468978834779676269810706330124105896161790796442628579889563523278627567251035079185503210184605902098211727292508233637657593894899769219502264898931282817004290607210262192867110400198215058966614905328120636611729213773596182333630163370657220279876227106119824497165573814094000440718074077895911091364854059722558347370493795171780789620082215936064973596631641228304672514245028070765019377644714217948564721288132648919839981137333957244835318684337087574447493472283703915114739203526081766834378380827870739924780689166520510826047911197731221641484156626624518877209530136696170392834127122635863279414925337754378352723916524530281312442628134511120391970774815652994464064814606137261506231277372850623153586058965713058375989683802546170333178201982487492712287026909153640618623990898622880163301295561212718992069938365447202615524878833327081887938773749554015226255076245812401826351713316499308608834585078497245103091548667012035364703728885595619679422826485085640331627141721028949636468881360777657848166730596805326043377117781026491793230664233656707064802597517976091994438650084566747886951660614283623511730808454867888769863615890419123339235952101433676520823341901338120376625805272578531116441380541421327350784076541635473064307142365205313795783359547127452716546180149616730260456548099487647172837272291882266600582975076180750919182611772942818762518041030917175082909226293045276021100652431321484718670442014761795205930535047892850614917722103599049674088275212168475098042944367505387710090926634355564934831042722273942287872758666966801794588449278901182735024173926789269405559796618313597881105344366967632712920496692062190517501260083611644778417060691163021066443365947275567140928851027863930984937989411082465187204233807507911900052980140748215027118767927237923135101282800663759563597722838754256706199350832142526148719239316128052789094486610873832492828273482529565031931637215733912624499535866678362405393702187500873133602804575239941923587736223335434951504011886022997496071335371787167857529809259754029844007373242897695113978544186500512541571568407647499039908868222174194210427845956732673806324873207615668109938780768681862977906679127560688346803949564844489350103976617452497856700910542905373826727314471990641117593643372422898903802313954312527772759894308027694641780111022411021523551363096494677578042944565770716314919450614917870648325497918327245147390113421681795376141761533697547695148711900675172549102775936828170988661886772516648599718480238682627099348090318306508574559171931789873976649460083946527382250298072741126435272203092017748660033999172307732678128329516943390937082906270984509878030278750213345153366384069005574091673318758196950358150072088315624826661781493876901944755028582763830488610684572777261635273367785593278242226844877526578596085108141109187521231577574832439693662249797073836327415262667436808672943008711861746157114755254790449479145396661112724650174359778290411398977468816351378909835452888406303592435059288978396965741169514807937882659602052403016443979013627312513626580262128508349150966020987668233979529395300012361606824501651546704362715896937429752654145313151132854899131993710829721084396805110851034945124342997873803986881186634797228279947353673101525050371641457255477960825093391605894899269410004529273502086873121027250865532028728349211094208327922867120869498435196093958790236163895082967558306196511143564145680814493662957829884506378453722368996212417375888338052081913541178158970621791438534592258321684820038441312200427409308866366588493088424714291107035848554671350710261474379263736940324802963713740194339164137385576463332551690222926902296500014241019369873448260512600589908732069241090677625584861051331716511618922206092305458032324018391716122524110513960730736360093956725003644702935939398485334862993329328037625328638768873951365985500676788020663475767765781660385088427181409591242912529575580652476763263164751681560456804107932068240891501430772295740137485053059788149502275237555519246338102399846063015907137383171305048336366186976930593203837967383606642316764770441583936078760391680700964190741679353522386772594651455245984930161089652544279767675804050266879942254440333811229240232771755777455720250888505500123099575229973892964864152823100100100522640330783444186720335223901544386466686317354139162527933058842361250436845586314636302982398959553968498537211174425033818990010056248964574160652635028605999735145040505202222507856083132037097953462572498666228586254943387045298286341762276403173720475476425047730878713925503096049333872783962844332712909144153564461515458219038080134841167694946479179974363311727735553456721880477808186602669482494833381425182334726208518078941098927076469576017425658099875340156814145879472725225313429888502363397596788049229026334166360049304616075886415945590017941197385081430059152505327914788198450701882913154503894906937435806119948179032775198809703939490828160489753362432445015321481396957044396582651492147996368247897468248391173197730448464870018941639904156832613908721450319325718084311720881226771593929487024080014843787762335775143898561704227372705468719171886301890044481089956456501531224591960899432263792512677998239085802269283948637115156181959650489392717681804528410430501548114061890119137028673441039458168008835208030587485202674247970228956314314233091621890708947540655290106570276563455696671041871176294138630324600668631466530114687393157190368670314073046261904322150445145647905764751622537723910093676752482275553984340491039690112656434250612860608287812838243488212668771331751166403721757229562628221493848275873234221078559680297761379695008411128207899297887802091911962727118619518417571639469478425631601356432143241191034648720357165449763715582429917350065363823464876025616520461146083610060565898078172467978661968903725123739983340786346066367414580792922656749975465045489669012092673780045042632960579368399753121519904046946910242881582746421061231340265731918199126460295866294591732530869349265007794655706299751538222195397164947737231091621246727447416737438556272944061149774505159188694248767748066784576080971903176293568008029033618224654070776188828107132528741100968419349946233558705271442046457374254281219146018981291978358696424748814325283097609777984079433849387841300242183749010191911697558716726991469155287374251071538229324282412498577178430573237095353491492845177916289721344771951387956116064716786182563330824262622310990063358207138529453296806039885639181686316422533249634556368725829601219945336980146662989243183013820640002142074528749411238415074064708789657446564317946242148701440492944031730239989362661425501692786811658172527597485846291318916752373994892792074102564581616629085366230238956958522962141097326005465720495496151648002576748749965111865585740967649666574482519599635780801747466531442881266402666057501630257720010404856575346545319702682950126479228050072645481720069290298391812214059630132173576454841970837960047491167486041467084774770711416428881051000354541470121223196286614438375283929308085640236530833614580401867138030707904561555127912925773410257015089508259165033264371639030244801471761116962857481849122972138316476087493491022525150463332271694725013057081929681956986862741391266813775887388384289910083785579752646858996242962788209050443661398199062145712682671088855707816342902348845067911144639072889061521260342260561474893747518599635535117331029445976537750082737210808985302031718989657878633308859580105701968816295664065679982741151071721513489856295470886480971637097723747522979112421125504166047211479161752271446253318362790697520517481869375782678318175992210255806038652221267717720755660425688062631698589815080551612604233648790478471494814820762622917996745540364836151513309966398094898657585002749594696657817534970765693831016520499557187531709464414701965857388377384759698287620999170414726243033642459503218993235317847847392467966383804630473507226633331410023860735280141963768092631576849224615576887924062808414977223912298977016334422434232760650642432081810448835464392456258544573442478746796886553902300300074289624547202848292725084110192431986237647375969268978200912096842347390232720159913012906996698265295061747279191345898462970219072800762402599446160746030939607329706490574340210159083768380692911338524519052269691172142730622006980556543916980502115574206826322441963636841172442635352039269008067450579358957270517947280471287950118118934605516135113538006187962892501315474178010231967565170978211751320861332617097124798385873948488155836133270030664967364280143525242236166296729834266046570851381503281599415268927111755270255133763685375774407384872132903982481933667882728992299643158269677288196903160041730127417836980715133819529841332949070539827310245709792328082010096042671091513653244513944466871173963717170407157733610822983133288256642878881517010546745185064366355498919883989818247390035698192112183000199264369675303143127722141914607316395748473338199129686434521424158851856287638573962528053315600024081519074521747046968774008866206444776688705360975549537983996918899111621962959721794636469708039212908424328138138300385041583675460061211409859492313891898581607823395895655090542975622412628105631554362393643876008933018054452189869571768577215712846988747828169774942562532829247232946855867618337014275427300951688488637232351690087558208805914704449764647636280006514984878964014538897385003211423806481781771967847169220038672316346804501795049773228282137119025202109808541624148395322395248335405941493125377403321328716464759625658267658033595852491721901360186358001961967586516051188117370172114591108469655908023166168722137712557057474517916676325154865319386805104595068451228862909534991202476069731401694780945259771546484675277200354323941537874440061576119074983917253488640367657778270533963915704717544482021399923160028467720363033308460056780548630507174351825007276979415893821281180862702209125348244548021994407101855145999563658907893354464395969162536299639829988811367564077862495245277663818671195493450784198366264751211310839206930393188541853245135639569708555048571018091498416402393222578511393653995154606600601909252581129824874710388059543119473446994603763175176757542044510960271499333161734145916822414523986634737627278099263909768376951214693657666410567270971732657379054882226272092801285208297213039748265794802365347231745666769809036878916711886092012116666100528517382524347534294025978724207701594199000310919332863817024371164984447479982556158442279606628489524662227235383446829741071134869217697663827698620066489484008658116538127597608562776259718792778145374328017853158285159441303675871341749056068743609647500299253510480288528249519023044135442906695979234229941275169977110451809301552780233206012054426295861041404732047074539205889934674630403171982064213325001928317270811667190320840008124511610067407055908945220808595764915898584887268672942044276192811100185914767463229382115002725103542533305428724476016486979236397873964446369865246411388567151902494282493206225938233859962020044008688904606396536853971342222729314336720926291101281573679833762574998805979817969540659645128486406980942360056327515418685994465196289328642364688908440668373471445915605924158094964513811011170878095150992064203323100521016563540416266179274935181099858914460014111195846893261581674439574742957085120303636789557655777319346626709135248496953271348672862229935215153977228727288956183957717954071822073120370518188572688566630457688553885197042731513691136821141965291480464106654334537562433729079852834499095811049144355627249029641900385162996376154025587253930790285314574188313580476044641614163563183672431784769764145432214997982041525152963715222235460329830727972815540991075031510347281315052808460477017700761155666298439286976345557436724727821826330993823548738884027955481850583155686127170024621961540145443047226809418407453953952122753884668584294917134260545732337966976843055753331503546522758701093894953808313452025859402906078871299714336578279946230363581676911364197230390061065802952564729402043004093519927303683418233832004177723459920811306564890921997515902037011120167612867371748890697010883988151686785805348247551762517436563630964852564606043714679782869043518841364500499020809956537830233577145606751975337201796650422432542492315723507346912072609619615225647784923742465086194703477837554124887864714123370570236891440421296180105604298708885135174564701440998137921289192677752616579984285984973431821765185148653709760363647909184897330166205702619849127087931810311489797476709637978641843208679341683324803719082465038891190928283955323151335873025657851944046416743289576311762673838578394398945551056083336260676914446002781251797579905733013876905463476762396894087248165887048598463520896436986012999274663537654671540982536958682905660408083499633787564400246032007353068962335458768649400660619099714219710028964510700761218220131695429582723977715032963090706861631355414264928270278114706258690449948079899066091142916675963096469682365996633360065833468281703323624508791655557244739080547497932305635237274973689948347511512402312561738866911744731743111977333190441527958848841720142131787146781731211260619679374340486947075282025757189919266190976488035240128333652370805130844167890805066757087051791578429874878137789091314782164488436617361183399146119651894721053255947547465750244289244870824096639220977558294012416599773718668198279160289533896928563476344771143349174692017105919824584559876899442431126752687885764262324768170565631912560589234948035413576594635271792576472024687523751050691899301209641984717279345506917593229718677659599114161320121644482024469739822987893662504955869119739133911639384719273608598146850006080011566354594384674806720032515349939337306162022810331058321218688860019076479728321050996918044398117973918545369159943241670772278459313021192972978344607358645922848005537672618364253761783924012378069432731036286607513934093133061850371668638877492342906938462897643633793646882114349239972356452347460912060014272634492828503159012125620700858667634878808641456781468294220891867485267955488512480911771225481311753064106681431254249205324103308273997807740634584850039168047975494132805145329064711966454197339854779063681604592304237045517733667635148571948495843811377351328939041108186166714896062772462857617374493612737557466036016766261475324993654282518428428952533692148676196162437939886383982589708805200274968598586293746368887831265125000464660838496534836373084261969970724239113964294264479163597964085015746847565922742353382958602703156004556942377993185909524926781932216598309334472070954719143366135310600409319006723069774944894221297510344750822916415410969890661380858135949581084366293950845472139254767703041757847875263314832608444441209802177115297682300479325455685503960615203010017234106370984385998925423554762701353911151043055062501111487958270956881563347649817353524178775034550244431982305252966911556070263018257757424563507506890890379817283891651876525110658492333374417602256061274450670973898394595053439872395761292508557907188888160964776160542058230279666037298808775176307386949580780875613026023534787645741702524251437944539931906857928166046727394218415564970250799136998148542284021297872780447948104157921406891889094708111178291922855446360982692368685363558745035411337466762620534629462352649191379391041008384492857688635506462930460824435008106301969570305840560484610022414851296395451904967850382588769430492595023943555915376116426487099275416667987106489454377022164855340849818050840564795552552170792436968539141623820896435278118604692775651506223793170731151373235247249407576798706283419398157127270698869908278717871783377407316307037264610669307621840467063180757379652330626267127322947972026215283988984174707523108829488732321708144255467678919142643174509963955562569297812675967900673216762168608385094556053372561720053942485722772352204067190047084978551961497285946907880137360089352093423632047467763356731582875880392281784291080642378468478496492354436142961433692993115495447731835976976931062419411359673811031028408358608107060676692886028440106154065704953525933719637359648702379994619970567702744717094236213209541873608931217850244916364352186241276269150804197693537673878665412575604172590417744899311615638336838944605671154116302564456103511784864848574393464250118016909044376099473860746829426369022824831880509836473770047654601830403798847430558465567902415372216882555930761131703467742523882080312300666995833083419786446718681085758275092567178344506852892064784210038471570111420566648021062047014507832973212816229673659043489220100207895775192564331911711915467662407827408403247585898006901558027114861935082175263311267651644396384955349925179276281294754389960813514993316564549763187784193482312250748941354595902955771420419718143217754393869286280141121479012960148391529244506904761684489818473030210977359398243741149350740352993964303110957356389503225991500973203608915187878450944031582583370116999776899618959522043688833205855482714315634777557493611492131409161346455337588123037044572301892012187313116749123760467998370493662366387901989168174134278673796425340007721980739276528392470795112431278178795542835937257356879531045713968906317012133920497132368198791380834527112187094371727832098040192289190295671025649723928134373299056140300039996670784185036235402482281060075034285676830388976913111011437325959781251703843882243224682257471568387148227869991763444958930167743116892513920212088468913435394572761750988417386980655080970907185409031523848479830262073936965153606375848600159588330690964248548289769330312759995219371100100078260811521766591386955168347911114216819483552020855431605461795055087412671975441900748192799954946707007198507580062778181178884977965889336170220721691983013405326689857273511971171307703305783913504471912205871359184402455727045686780691588118247560184636773765015500670831828113476876362619412931041055126408972104044513002545280766497601158910993121975122112813519656301244178015916490715988980128232627609054402577917554472303153217349098375040717075253231247256052150309661358654828909190804995155706422979248094081274191425038102575220419111341900393157476895571767331314115056816493491727771866823504204611280290812437239972760906347018596449275327544677847080350529875965515473431197910774384474772399764848673700241649817699338550609304173410741682066070858097811013401997697552715694197316253990598242574724650633439489535246558506012618409720556285297704635894226537137070537301530600411790192773814781433338470461746648539624893221117744149981613228837815570548796412698088743587052580176786242554223773324542153255069798974296995150212280146480289107427622050224181967894769327761150570230389665810393903538246860159239950277554307573156440122494925957833665696457181644388844850939739179033966607650884195494418350993570610733505692200208725355261743183234350680508524912842946687965807340027226342127268595423687536644745503758705657467348195546643922679613000434591155848202503247655790669610626192692151741180382694703471916537279417066316158645483104750861013442415273725331060696779678100266271726471406156540452658340940518315696089047555267275483205972090352760433470832756677311368145525970342557896150542722872055018203588049636348996724428785914467054487117277165016365835479355340831174221882325042030841596101723909068380161995562388951156228301042664941296905340549904183315065577536702459144665978847492468689800360061277463376699058927648854611627443164984197833330317834591306426223928172876312086864817218986837546463324541421797011106626675764450901686848357166402873690288790856410716055373809386619577416900117240045675316521322177659299670515223149747785745851436153075003005825214476512343261023861674110830180568401881864460789329357687578892091098791879702416608601074410069148840742583869955416267580476571702157766331132979572151184339468554679146027401121203269228588739740805001915728616176714259246997734822918795204101142504571981373490397580216305784728912563386071076664437239860684693622869721455840257874188593276319156500886393054914341501784577169033344566901878156138039205322114459574817190217991519464721251471161132946534264283757491409583745429141810131811184505994883901449907053510624230383009528711397488403034183490138254343561071731899173907129420574480533969838078488753088667051290808418986247207663183372220456768024938269138444225953761052588645963674590779819106855437284613860121913232939821202127696286159186258114026236187528983488744395221739930779238602991738507926609019115209038661256525575608342850531576992805626587344300826743155299818618196905271425910181892790545661117984392747132124848886091043159130775102963890130858924722599988037326942436298248329751150937154586289921235853187258380411670164040907317663351965553390281095589248160513749675417342513471327150615577013678546231524157396003150886185648246308737156374250342849908440931096429100241958470283148291072792261911571653514222065409535733958023750879563725997136484245485830335566752071063628947300155923869004842933820880750960583785563367476419209605711272531796376814238638604319769285008892043285348409041506084654452432592829957763314399820033876995272789701139607294404157301474796399848309976430703208055318405615534803151863419423678463006386881190335297620542553207473556476599541420466671302296395014327993482114191391793803484004533294903947736719868050242825749229665331259121542795875708754199586989170767161892131125329263944369659977704985442162666041688480672451096578991233505846043493710017942093967815315950286212863553334202840181585424037624919420924500734425393990879645741886914633738397431465068903821429011765664904075524506978476172026455342038526405936906083061617300125386650878466357151181806395390580063195734904352253250106944922168137212223413125933664139740889484677409131500044276176642069358585449877582659085132884484232473813899633649376125273467791532308622688671985048810263734142308037471646532488191319742375393457267230328214798872677298365052725397983256971028409536467286197251693198416958836273589598776260576571206537097274519213552853172566385104694111249460151047424057713056694116966709623882432420607791056842870596320655325270553683731334485672936160598198439756599548560189711470882527865141133364869025203763532063220475563638873141413492360773650623804125198233590928806194782210242686538958753685080583621881907281744508395583829914710196307054778352751774566002298806026411753068340624128430565258184086860868109867007107179482989430769072236278449908556358122496870391059354434975217111809295050781314208909537068178518580825896495791352919749869260492904547712183103655664151184196610656529310536542776839064876560046024731008643936842664831646202263212082249120374498653004130849897999447460740286008225571609498470653286480218887523290148009809957973425403517758851425195862530156717823925216982643526223476716031573134022200808045613346680424715226263398453129653737286500125027677444554630507642273790322905078500302289959992277945473333901249813776801035265752956322789187462849053995999307003082196540139743071270758822236417055461628446942770868321697252245357191250831400093056391817637860941728651760050486169599646067306969544636673473002142068168382992488635014619476835458016914926942761023769103654434120773134601905788172224898657232602184756629070265396455944375580025779862340985189201744014831293056285114706438095003209493941049779506576495841502503071390295561793111538940517922295622828416084457463505895852325943214764146569203919414033405440434719287286901994332024563848552438152202215467817944595790241630421949300256797921671164161020960211228842570664739392152589093070605459043753189046808173529168887052665481887093703848344962572106070099670050719444137379835304842032534178795251035070323812785625878189616014886979351002030641190441907292389656300963862242552806148516468245089561454112773002135961845298329773721348369854884072993240921322176410566919880898101765649806340262250016110237893827582819939871366793908874876165063960264964714469892129494503631109339146699647506826699045755145559610842589802759432396833939150706222892829232294303791294496062076832240120313697614699440018709910421114555991034540807971824985762553188354513091011562662134807958227834417626572658707006624624934046264281795283818457582957747708015970010647904307619583239871185367593515956783614646607451513062725658076510271836788226588146576863434209462749203567137772561576726949138259696689056330682732392495877946853054644235720233444769371888227258335804313277820479964170173873760278230307479690231372819866545434176013045220220533847861273095028787696077333169071091065500162761518638944556341791728862516593746112252956497967737524535410073909983256685221773347126441495311033890931235632190587073548163975500833618222621658103676365789540783917093520730540240566367090564904692625542226297867839210275714545864481963541646043002444942165747514310064515739915559376213627092354501670316243439815112419575890071136416459548188807481016469986605915944384371963728214046135814558080190955555872454448351329006013084092671600758265545926050381900579779733967987260448913049011219580037555854487798094506140466328090348981889776127395835394628663539066515164173253124692149632401745603565037925776714824248773942419217846951957551455256906874362631446752227730277185814590681692880354997980494327756261502368447855004917718517144238658600415051552372597346790785649191968018135199817361996075658549171861953819101969754752058182725937534429898970396202778207359342240143179941060387782940053785708801099035908376114039735578894640683432096033105408776192534970807707778625490835696111150288618076279999737937475833870986021030711964913271950721839607726658786710048720416296445948837668241526270379392642417609310488633764198467913350982710943870470736988465202396090985929338628382856489777431787054746834734202022420190033419909720561314827255696673334727885168839741982289303804629559906573066976996012384780744946607670224234323560521191037567699311225947349678544348988293433565115138948860350460488137036554660413141723772163760444572094579667790935983733942391634002827803637821388416964260759712861036718578730793435339151621081989435412923498807639938245939346448984084523076545613571472343263834714070597859344074845339789760980854312060762257708231784122592904355508242174145216573951041493292150636810899890999833803607667533166060018331271685986429489432697546148369510868011824697498161976174287194614693224526449683911451739031716925334135547910382976079905297478682459596982168413125401368578614703454439267850821747166758887500704582823545921552560948405620988302997305828564056770911452580554920679928005610995485198390740153613962801148109019018101539482605520253416634115009390836158867122178406899014257645174414992360416444116774300054401490969231272813469017488483369438732983618669481766333940444420694050061520131261775240054161576728612112301554070210873742785002136022893282184452708468033117075260433549833268533728040848392255247214083276108153048827404920919641851881154100270184752569122489772364373307336336248130095236156470873913527712560241522947242259433897154428907868231051151545018589037468898175261459293903434642038308637960950848335436202999224301295628731964843981473325986891709677759979169722692461066186906503061987142260575505011927727744518159845633685629750951490152347942060175361317074943468259696740775553720436582135025912612445066941531184423688764944822673104881513239666185625060494091187653863481651889401486151865880027540158423387699024085281567528989135048622631587438221664534591087152236462853521453833082164705254370252205206060251895764100030071500616022671380024912206776340147795093570909956138109206668380481568285117651775467300273271891200909270262572939703926879266995661160345853327308596055564322036105189631757318247660641410324131016762454613190462980981812999348250936731962401943810184111593531908134330133756370714457825008655030285227673917596984889005069329050639516677156672429345225710278093733257950246885933639624140526464099614882301723361627077722768401032776963009350844418297868898836547525392661235044768109637723078634306068384196119096005211095625144423304496177043801148417752256671417357465281649206784864329373083408303132142823194790599795868893443431798227084459558068967579977650753352745745172820155874580601820173433962865886211867241518314920590822896918020950237002225389664771834851641624243755751243983981020783027096837918651430025501896318591932968202588813757241335795261025898518881118791428683195398092386237976969234365489302777276742556642503327345699114888011114580093124576483900818081269978398837139460682536115965672891788569358998035758806902216965837185141843823221620903552431865699152086589632593666937244344062725651171552744665812057097369241311355354224692083857255581033509600355338768377858887495471182319689241302749994926808230170231639811844618429779592177823024603359698832681434467153875683922878258454356829970656563864438104720734168110930819313754943986770365882935484462795211256656133493561312269465080152774637048560012693214328752871498367901090848270639905279600708703317176438875927346703066953719963678736134266204763665791397379547934423757702973822990311645735859210548827450826026165614620107983201968711529280733183956343067302294728546410562868223630815750673105538299282498817926602409845631885033606444738197898005785549962907776185399441969385119046030886120765171679471275412506707991890529202058111446088055090428106768732153633166197344230619642151153251597281256804855917401233149595663221781632266563544127664769592540352851198654117767947208493176713245248784705955613418075294884765284269821375662707660369324061493018087932852883351530568112866249207048307242883803658702745528079205027370406247306910725552218999982593542242457976725501030829764654682549497286231716922985704630965156942381190743885387090990656368829972035201615027761752987541448457055592839110304914462511151521117672453551035994318869810088682838471632174797497122389833944319226493289201143357229975632963640865743223458719222621448440523052393737613925103124892860797918027273015133945218888429515235185863834805798368466331759942223782883774170048431879048132425209680095851281430384566580284018761891995781022500785390447815110372985867107766201758209915549988925116464193221495491176125502245290705494946257190024060027983420293668454625342046407628675907528305762983654090597844467026267750027895382141755882163715919678596775161970838519297988797313506458585057602316823620503248095888003913202372684930804479991436093453773336184686758394119627747928910606108325916489054192319871201129599758577718746807264956582640128348781773093336728563687751166422363232089261723051027145671357224865849863626195003443898826725092694278082096081989177817532161598614464297234025273849655605866395632132009380967808115399556173160569023266894018852395919549453530370560542753222771882129367713290167030187083858902752315295630464851937353854472953620398391910543997770672252776845105354981322554437735504788851133930734025351514130174251922384895030055780217226656995658579324594500063237215296459551644369529287883599029799598575835158573142638935000277827921211575714314462480757799804033760558375340110316099247019513886923187192870877487546360518858392974030999574664095751214319482633962635849841213922892978797638783114935996179769704479288944955194847789558956796376200474336699078611494929543691766887172412202069329357307700443348097125832417884151335750343810867651989810743462502328678984989170848400776848473532252780935234454957615855964541168127246784097186280652474584189337910496879771481995174095767040176008636508123307195504007837344722871173831979483911451898168849145943334387239117549201268671399176131962088460380046407265735101190061945273442097306803164863949833923572096816286592887943948356420698701773060847362968254503447862780085082586655600526211511164405520713526822571221449904399109568322953191180682780764562268199297833196893447791402339925908470503423897001167493989681251324588792298141064638891113118179716000700645715207649133578529384163171368984739909137770387068489874183214515196267963157514826323546756540619972864670223033677207036697108847215012484191328779586059063930417563420428788676965676527708536449408610341396479895371512038672738684828824928647671239272732041004923974091075685697148976043562776519664994194504291933686917328323560618410626024423726061860152014449285271298233490400342447797399424455520337408279467308939715479687814217714666287051314323599252302386517263979099171359680440441930419102497554703503308876051095428759947665746663475355707001792455459116392742614234767927074945983609481576303525462466075976513185828510644563507069997327826727268680991017781695429759816019758321324610381407079656085514257096730627462647656868351042556132653205151034010811119109579278163553691110580750261237538995806675718312817681074590383078859409222016116760711593835561604732221723559106148227107753508738906478989397966507046171918730348794389289042915466027128216794533318070721625086015660641148624709550440057365318848897782009244553212680960502937196404552396211545747765094509149991851070845127564804342143040359189376813227663354933847840008396533642637081708209447632282079358092799170683310471789665539285274254924619691176906275885126125245803407674756197238098481144983118111248152229272934559498408686441298877801650510918079379036094633816079391223440518642806657496628237660143015897740195398811650651327748696033397584743373352395489196396305487518019271903266121990585835746643012655653573822516688318458163629366240530549939579717925902024537105116626916817394468797422618894099408370726008817217528415570127832354299838942538616490655743882578987225167420237342557021569943193042061319905571671454223149771628844444683137372803703562712255122084167704370332893980393580286195726533696621742177111780495300130967734657808324442404301645600591763997859332444520731696534515131054484984889009587751273042316896263995985943147295977881472626402725130989043192232411383491224305605552556102571098634429256411877431727700884958939559168706318211344476562109151880360385709863848569310760185846939494927457045464836924495235690852143406259433297116365964460289854784159940154376744627587905436600594551004065773523917480519484569782412788121978696728527388784693727120339185122375820687221444050175262528397452433717117996988248284843324515218892378609275542908545651081184013971295923814924906454339074056030883820989694748652306421634938351779318623963348924468767574078327950096913863030512704762639297258130514019718327506222448953690772682276451630129054839323415457901660251274508313619280918879764832008549244557731865416553697510759125456468585068437543953586715917254496287694869496150630806900026608664243779943652972824877109955698724739692280137634891285323360116774823038606987491860613718768342609544172870530381076148315896657500503946261938712108751037317356816619921325066645588572029367884093907878906747824815599648208780124282852261544545073992032022440561345735743606789404400329480047100165939989161343395667700845172104872870058315413188973018700292352099753741068169506175171976022641331385288598049037701828007163885371724066812182105639878513963413298375369937667230108576426083595986964501005395650113544963709299460812107869752003886890413796883251034608443634561875851940625779866972203092899509119253121825365102550476270236992390556698175969628721250032128885353303148476690939115120504628880500414060620090741829597934225163030405712880772613322991020956856096204237760847508440054057210487095567439862909910167904012471939322438752446220051239885294215084510237217291382505053706474640215123534048478269347083696446189108301726352220872929972639782135849857480895150651914420807502703450309834302595758994116987704616286436318220261983261676846023091606221641959302177707269455762401675649268986477477908679439119274137190359055137616887674162286717293210856170968288802964638827594121583309390687644471863984249778395675405273897622370352677833271290411332498698292255912597990174887462364440174158994183349737529541325032367733674920123828267737664242018952601794396098537155310081901483496267138946477437963898197098447089783559457386901670065728072462629537606162735279883442414484930302668101132430561908986130922022311604103804735464472588977654244227493694579500083138195835036803453518419132096132253731188483433389387786163329044128960823848797871574842429974226028286807865278622380438027637253748844941150885274942938249646632924050003400814966353901439892552105581836205362709313746007457418319917015712179437109485377195552907797233025423894861028102568297200944923670988024871024299875576661043031201306355920087051380644232605172132320760672582457757189020394087057568582563615828066310390707563533958038865790838685165833192687935721468774341297650344038748011879212089008548400712732006369343425778774922588798409318879924018765595632999497879064389019005826220089435925724272787232875691265958441705646657649735306069131916070192753448079897737245869734216846838246276599652243180257462073327682380385992539747987941663248312639201976090994975870869872532089929682124907175676185653456114117544009903657027518989012463523653427184215631616445280806321346744553952455013613284567539918502876656342860137767141922604810913631191496166285472938139029184849105116487210651453859906833743053399512492675466123701983855629467624032286686184916362301356623655462687309046369193917694429345258460513651857978765338342125319576996625376673604750937307218425111599334876343605941297578982188985209734990693283565882329592292996073061238108857611655820246672364893387833626820604212624744653365927866456440576598322163189185984781227226154253509793448854414604052274888546530324696966890876807688713617366251508949249340374292666516781944514951743463692291915139973833091898068239321752890069444410519180936780471217033819571024463592977750452332686596996474305450059498313570212611243821880171204770254863087231935483033605172829271363233044987149557000986754435503769686332024338675842097130032033974145989009110041548224097628342970485590761900769802398203600239300901496665685308880447400297948931028211872321984975195430624335677299269290802482305135208294304332602919413958593346134043962910218594513987951736784757526444500607312144064113333536887798195938978725851763860691701755180070136688731727220922236054465636789137995348263403385804040926315195743476054111173659057486339601634302843250646346151593358389410948096515541372946483479493478662394670152701246801603777384774660988076579052929041564680608870689961356986074396691756317996711054834938501271780526124136049329544680222444871669739676383163850087150824615088946898382010539442758631515096318106093247226490115990480566020365619974450766841796192753939165615491016498601551587421341663122985620335056630094906667737596281457132001599238021118659351851917928989220350406547850540223206689143407391178442954447912287566910734916152756538681353497348188573839974848795817470566967360609704620127576702666420340917821114795934778554458169756995118099773265806745229673012651151697851329190276072479674687214582472433150726801378042378621185782000434881318986254142504582670136057054000542004141568373500838092640188696337647664906348132113904062139966262056475399502146686147533010942112950046958424466821520503538586438037631489900055615005662303820714494069634769735886921487900763071816972085307049314782516520586493421625521355258294472274809549083805552513335438807423377296506704380166618716234427481430462661286396421151829353772148154041206908434944606918645068471003591431470699599878315237290560058599630430217064963063370526009880799833130415620678871760869470267169245722719635981466182435849606505227473608801120305416906065730990913760990290039521471822633013425827226322367429054373995021058674583935424250918168311146049971702339305498425419074235739857855034320364719652136272605587627749280647331180232593801883062393004478689274359809273164216117096967942025527230265005740151850888150373986207808061522416949643155037415220390029329449362396745095702600862987243610245309852612078677775847621261526695163666327402511365663571591414423975854881068034954483059191611391668794010281589785380052003300334292819777410068277471318197710719935324542493441642946603618374693387482440508800799914922714432292746598625531260714320873227605588117363799304122569954317022526712248418093235081054315348132819935296893924935453687822288343785044150137810778826731972281309073129359026188644276307088138412098763214603311726112047502398444007964168918699431310690535161101057989191336873446168713057042821139121383819153923577133823226425421128014062640932875130584744114676037153341782017790046537187484298681917580494480875789737352352292212850845389387721106289161511335618272961150404530617688059639508654904677038046744006139448922490543670546302516684145099284998970770716236232213771334697088142422765359130655456374738917997032965461974308735630470030141984457670158121510330610227671464509164654550741712519390900251936143548951014088095990425252255097877251220564879211879458494815793494442848632654133959988851504062226780325870753540523389039088128861974585480079351709830290266640068422216686205113239705233869092773035780780100485106934334171630753134870189964601751181694427805812975304545782299034488400250391184560826707991635563059023279432493307592416687483011875672619453732076829850527032729376907033214084655669401824367874854170892793334292210571186827503036709642957266256373505671599679355401771709168720221950149877209973866525768537562838198779079947889943082958515918267650370950450619098349910073105521282531676652458672569811412898772569306521802835833584524228180822343193306164802590264095186576847809036262400529336133921840506711132887388045840210772486092777302572111801337897771075613101816282811884890432435307109784765500130676478453356640253509956314282789084318194612572386433409767359630908442871799783997246060845477352454293420720554704343313103426319227853117908573535107874665294347270284680136763232393584325097034849473418085127830001737127105257475608172481706460430702920011235413069693828249808445314758222899339623558872412253097217745073569994536377299710051394195470788622199131029832261017953335422961514787836182094114394377813971121230143172331269986324525575798791363864393161108411788708839598638902683713483314448740728694124595891198529757702440089240954933204888311862705945753485607270368540502228067193906997291214319551652305176071488351489737918932084116334468676730730127545052424433967229610561299890417340405167337701955967338795431510749642454312884812103896169743745985615689886227180757007800836802987770300660819118504183447966879028298505728615516729463949592244783610270737777126894490199698850412423592046209489349992481467610326401610290321272979956885099215022888110691263181024909549742998224822341278117384416182372351965229380866517715956114353635079349059925552264921963432989958006426894706546342763457785849657687973886137452348779488165980519652228048240505320208028131555944525485543424520913923487133920252218725253073761160284071945138180293562343183456660425440187527944080623737627159699419168025258391414974845329857057368535725450065727712424317806001610729066191255225502943067577552977999476110876260778421571924508816265097839461578967833203880775077917242442124672863030848057891671185989154523373720626458529344157458495294804552735160221897155656139873170921413230767498640310913563630678542813150617731984732510844726150473780226098733612424691482390136710839521940423298176210990224875119636476473606205472406437531492016909130196517104712825005981778606553180960636371164892640773630416750323682505726766973307196321019444179745032425735405556242553777235099989382328630348950921139844858900990399118447036266568559547526245353098798691072954192280160069713032367701102194533020284169369183361136141963553693415135724480844203354578602968864099725505729150516130354198399934326611502504761629813565783897259768685706371717084876539005246475445017889775946456692337457173822491897976227586029029307705224455865212226160318868863542499890246566391924019712832532858665834739211765247996785941816986077956943328217879040542024881974373146193798234990875653450728944411678187679502324852019885709668460159642512116738944013527870522612840583505462586946404317938089010055230442845803195468000550614957542863314869689884985462350350028909891406605110054242317835277340067156754342429466868843681928537977704597783530572740004255029926875295081536466198326966178265545561059532768705689321289573648446610943752768582193051434876800162934103329090519992000109946627418919305791613829720447434816393648305379429061176669385005395740056869195874764948501471845827400569724606554987702493505614972281298986923768148022815912419043555633439974854568372896514900622836639133077672326455667382959286488578863760791977036624510062771555478480667284858418829612971867589035133267922532710571022226027272641180954256581546471985496056621713543188580301542087581343661366989639080511814401144349266730463970332204299555132299392571404134036418579291806502010292986985404648920638185244683904001403905583703058864992026657293639038268810598584997174463964674460258525495071685785346509265141520215563096050142531467545731056786907361053922110722293179426123753383081608794247486374722557796162205607128130228123297809053849693095317538455244364812093247844623918387603901650823985822922265472701610395395167152037206068095064654546316317696798691992382829112151633678787116057360918190983690483144676450621743645992440584780964766860130859092503209467780018030418776180307860443023977367372224071126922371136510267144274352437904900209505130291642601802806245486650069417160428592377630085837077853890948024969312782784290895890242355566782350100453903543297653752139415653463156127871936824020807263303123618215044585726689732712947833705001472913650943105327964380090627824195048952961526025249949477957660150021785930335343466317415644803512722416947213349972745438552756845552350795217852677940647766153337873706196748558349115717224742457747733203384933059814642064764573383938168223124602042284759626270902949959710066630406926346600981264411502541582668241697360154348221953700320264140327937576286977183940261548512680161021771545919702829543353802797836424349009039231658402417467766904043248736049274859120695145467656900287861015983145005893290079781654023278095196126629365145176256986891188051064259486643429569020471229992302013143305297105073178784699170482975633577166996417635862981108153422114106503855446508712568690783480024874145003884589112530547982074831157443053260987910559233125891568990765884856508233657153329664211600454114211506865290268112875343730385013306004930321498613459067860618616471159521503485316529697910191541291945406892765313983891369704541098298001146026999181039969388982347084555617894924509788336264239426919309221695377189252584043727419257519556170702761902143230300733946949236433425855625751561983914060972040748811718301102062957585671579936679673477583357124772819071136949132231075106163487448100635332397677042721794966735299578720119242638076855356480014220920958699313661000599322571618446768069030854441048272437988126288653042650078391413182653416156485202429604173391424783723789453581654725727873054852891097651129192624390971186570281990919815896442044702301495721368122693459529491989361375921608206884534189153081796833893172498186214248358535736321753988208043454086506329369671355252970898798508039129404635873928729001350818497762226130935987504030937169160913499718256939812990131637370802901540097614989100862200872187400321124840917640192217543200863487777175628700627342409702054102382720999190858185242292881900725441239179087471018163840690548506289150974058027033665144900772087736703085052540754841488288413129760127159217829012196854595305354138290495431044376655788056519995259255037904820563327934521707358444847530486834649250580760586928983203955333382885595678604273097060452170622961743736441694396937230018763809854938857986511976747229290431240158510221737895711476107473947353167613369478092743698459843684278829751154873723240280501889671627300197230964288550749819889841873455326450928313800810973534804847173223335732410048923551027420878310731019956049893353260903339916381036419826771835435301156921815770409686452984003691643233398812500939277793869035806255830300840057606658696074039377440329718427527528235999763414687284486811801149743911680008866578772826529752235069131649520753097674945204508047629372222463068110420032775056153838757992759825944606845029010896068705777253065944240697702090294170536900278464595671902081307766106778038906132953811843288226723699435459442409141890741541114438834874267640461341253441239871337617009311658253929279618535477273392656800488790360292416095651175246692899201773110447160145899976896765170677920719718195686989174532492376900590417414862365488531154723957745777564320675426636766065325977110131151018372130362249509507043965418037588123379307043951985825366601052343721766383192350335510891089234903113567635461628757420036536500432153192375882975722485544668892346653266559386554840253074632410250151137832691062034538342057595155491644621427807121568221917096851338491845132480374375460719215558427577928510235846083418040396987687800792999217963212376365950017528960970210356066774644628818765911018247999539588520620890745883818542008189347635316789029571947133528985174048873493569213302398809180680512112637421457770197480573747909960567052731508871289196772794371207537601148693477910109890536513061207084249624813216508243300166721538220913971683189750514772602985662898816839771957760220972332621389638099476584476366891751392616297849742401930213367958690489381743077828698390863002396501811963506112039820819954198616082046697690434332538026757160713323480276597846025690021954451218525380519009509710652040830800771774111424774631095467065491420133078197109023753932013791399849539878842658288576687926525638793151250819891025026215020417219640565297446077185114836323784988278127554520124124187087928350784156972935903553338352790168468178119839506468064119175572317454473441859330348334187153095762010510005459307664048480643718248829648493554646477296933989189129949033074576533181030469618834187331416858341404287485940778156648031713071510137829294857828377116841845049662551514545775422839925320515533885671756669255540413131726710055566317224602477135854692721686745261545448607441135532913376289099025549659107264650861078398309148616254163278233918570929713277885841297142699077757825225943234523997750142704098999777721067396740845857884384180125126935521230342233957529880110757592250518328010272067182083213687132525596715871062224701984410290347627525040798862231317742587935546686394624088405941537173197500805503298839840493329779318223940061131858888497591567039096259690239680557031851071611081794191432103798408489536890451625418630423690641760799225368820043688676776774686800700038626612626414284895771534945569186816402590109409323733795335332009749749692614423629352096187001107307665470728642564262982327071151035691784112202119343033187997154462610980897647921324161440498204996761213443129615968901511890860918152623839829392103826065822229743515653514048382482521062764331746328280394450415525010160398349710150458619247803131226701086802770525376890282388314500859016240650116708780182904205461099333443328384684165324470348790026048056734993435211761826473478504859371159232281618965873960643404246318281565163546896607810675024242705407215646758490008375248364195679312329629382123979716381380460701838154773088025150722049049462753174954403627796097028181768934862101895550630060343015617776481582202898665269538391174084514939343396677358003144480045491854337929935792646479165362350215592521585903026502434146962646689311332574651691634196024766828352166335914730765958031547706865242046572603048342797552862478205853706938079690706791291302818519638715888429349405285929995641225163292049818505367078671152919020906222862776878033261807095595211187113638938302058785849259924513557110313057715586400810915658433580075543237304819171479420589720824067989440317781090892848618042798192784940442515561360924418289178674551214029133129798944865780541199801946202508591871216028466622008978364287373613385090490300952308347160394841027427290383805531509073973458603640708023714108970308087228233905226224872337736853153716196687193983939971804660513292121395739537865589592134835502614508963981805133508519548779825270006412764314994936055451113233258049370298329193147894334390600122575873877642326395959823215528621759700974477384733367338648179317063899564417126213298382917190900050407846198910783952057497887940457812069555662557001541234392335600571908879361308487985679908958695138065564958221297356724060879596265420848095814163225108409287477916650207751117831246952958085348982096482262163501609510238470302314402875709786256458560669883189000925772503181632529706345076215594385167713978542873061987928598983696953809375640063165338107976403391937894244267274992051771472875785577126881349099059694776907826272579602784769370074509891347820885975184270759257457503164092708104942543438365009927641841708044992735636969470203654721436962445010492360463744942729908787780752199891801742701972661618980956162623164078364632391944576956321988609157397444835730243185967568267866483843399464706326880311864244591362735162188673001871148885849521395986808490316904535901907347523820917261464315847803584869079582907616386933373699003024361547077098779611709835073962083353362273915952427885442391058934678106356305897710031181154781373577914152121519534249182535455416655266749437396763398811457274303509711126793387098781003942487637098828024586839901519623908652398214563529671789845646082402487470612020066244267942018143177849768547001906884447649276074938474328577728728157100778502272219068890135392595763088801031246025430986290339136668417998803428041545630316763342545839334999272626993607039105059540036004228156230222593761381504268957968258890633888933529870164836259401315979406138596960562787583483974879396243566436008222811365187879513107803433408135771896139737789295858870693278923279557901097029358733789688625847490210432290714143859966636658026823927378193302071315820957412798491243241608363076306546621453749958775503413176007385070510980751856862026511809323261206058751123913007939491899331693726706508410731545078295424171087925467146603235194005385998533963142788262804394031420072769957778442421110078949949978964859295853242624391219342338907134069622891044258638486306389958150431867833026952065383994496817379815564413614834907969887676817229133809535633397831546116153802258606144675147326038429663996260824101361825346005948814046201297307322339136193738441383097472302028129497651581521010464850193275307217754221430333417879144587628246031427505621754387311043338063079236971434053704482149553277934108163664391187650221379657070693935847192967144931736924473422923324505905485791742623054656330062446697988126657513596965992444741544502576360221280337142991736834386233278641971551123070052469497184320615791329530093592387317829490182504921873698542794890557001430159220586074305656546821793797526084472670587448696516803437379576463717637868744198515789719507428370392260253193425531304228154255441538244034736330539263134773475020713389735891134317041948020353232105396086051864344577802991792282370408665330356794395757098636697115298320038766210334254358844699048768730613078874855714333986015719752755895794425634714385545993701437237783388616409002641527179527740876792981071429275257189963060559384842587429873332786461323545779689952259093486213390574512184417596410559478183685503493687334289642165953943928096990342385943913781560388900658580077130941370180313706353663036394518461107701053022515808960984037021293380447541938068486064477859406027775682214450972326945669102983574811809819714830420156114559444685650355960848014231674459720208492441640616120439704049351770837906342858644410182495849136280387788197517141656283613659967722890724695137923432551404532167483313233235472072874650994113832283752858358964758767874524485729258141554462869089216077329269412324333443122533258638198499198172353868037476590277160160545962689659257992888162351568415329316163720991224020252758124275403659900388749974978701831513066780968178366485422889988611738701832032143499017673443751092608460836049679854359747224608530840748057527066909564491792667086263530437106906427359705174565882930215918853043237275108777380289087490290944903472174312937369239895489575211422320578905190534224558773865549500166512074952871262490895658045246635851501491502286792878642327692388985810000207399481145772014553849740301982517452241382459119025104765659894373833750341638615776722879447577384070045633213948181296187177350450458005328785994290164112396787170076465726353414172859891687650245523924839929783393909573373268849186624103882668717355570855593524435980573481749471290010414624200186846673926225448287782877040380857803185097402134563407499174433818668101087428137530824786960233499757000864627803749839217512711384338248161657399255337425867947184833931741815565412099556126023885679005815869222939447185606489587603591587115665602381337877880235409338302467273610011485499171465687368632178141604732328819419093268611847680164318114207467919165026417055615046462804733666581718359144239956302618350852758823814857242350879487625855409614184086913012539996676836170659867639397104815727576534477934447011705356215582878774496440418467100450240152113774406972193957460669165431613636243951658406422267672364604653313034985432048214825034292296508817814707729101255482762634420125006686780081281306417959332416634492402261252840551834987084193902873010638048479380069218986695608737485403276399259957597497856257059448446353829611872239749384417790306587552780338139552947015763672606111571227296070693984509732469145269833009014370911417177530983723454967004760504105240920503163580116633747603962804663318520641360958805261170781290291748828671920724987557796273843793292582268553652079497956625341406959434147437204380291347419316162269487927145113156477624090845433084295768962212435234784572205936742658510499720866361583150387391093217698862027678695320029408891258906775468428119571498693942983044804138527315286698745962838575491429704815534383602702932506056252692158781396071887653673106379791659240252774889048937691190910588604885184676292652744295300059968957022845378526589998548962977510148179310790628816891777276965158450215107200482230610493132843746297953155594448586042412499727431384830567631575064394291856295100512036587030914713817107002576341927467199953795494697037800526503966552873098816607829782437302817546603466438486240777593519215877374548169740369880248953488484256145397395111939375669727243352152450114391950946114597552120440183750726974125410320553230946201350300002103220482930687294720939913696191796815279780656443453193241460483365954060738110529479027298631185894519073895547135826759534375129875256917616604819544746707179348788564879787694549043664003545363290152186833542052108598815128375287731707336761307962339427571628498441420091280605886165895758889620215576565009606457652323639320572397321929380858112389706833103478368347143316733471158008627473663612146484141254220161917002494272738460825806398236955942181316558180686026114104959396965993271603757737984609877356042884490689327092296997035668788749593654920194171605280352096414406055632972726290603279067429980793512549959492925921410141893735415068873186980216561925177864104584050755422529912071611496832971178886954096716229453144587794137845320843350585356143870597121765320381041385611298757585201469201708919705790653793405190576825496368445581702589724341567357476345659969063790750255622111686838447102950642298595366703414985044993994744816885297685749973655208521694167366695601662199968337576603317713335850649080417571554332378164370948195771755158440900796083395774775318171919218988280374032700447746717022720267477969659913352724679940881441056834632844546218218196592377192187245252964175310951177322515610235147852157508144156162204409314855190000254539729617380975787803634437889950453007050215618644890262740442391819131375359006606149785287655897233259816919704362967049406006209732005435773570035187227412273626624769528805627437095401730964182634262350791286376649294962732375695150234376143977947599406138801827359316690015741781951492647002873667798599099837123194869150448074188415492803670949659602335118805018092596157213863041624134564975758208827240526252423179992228807490919148895085432728931547453322992387294132995664346831830234686050420450288207453177313223048292940787074792506294529868720264840026783540910128041779133347073705525012132684312900018477532238008547038625027603369066077592197709427726919975014263718210691869096908855987237564109775201602497880745410791849051482119595595534304027722192582908111360860330138688461354113475790146145312108194936556826014383572675963843458978346017078358059147567969080375128117536886075125466766866421940143877421510283874146659810880566686051458347747344177463786381031583525274871477107260044612325240672949847054431827899528348308059996943128510081685338923538476497094686156993530258923041382824436235198520414491161023216751756152687370032512495561597603939232986321776219685270915308100457021807357497263866504189025061423124675589122244164974482132909253259333287890789632251417144698457438152835696293850182146249152561893963064335917720867201881060184375002449168260191730937385530175704658141519699426761761881763645308360796594527557363030153487695080416969024426749824209247352099358699622795843500719983561713764516269989026915117696077388531179253348458773358836367720485903713571489037473740211400877770608404148424029051734053960026991305756740631635939282486599095538740146709850923287031601356449282783618613130395541632212671433587864811789490847578379826583681314506394428373052928627388967208300513842466381095201324129840337608242273712989485591424906910380954163785568866881597129678707351605737388109441930805748673906648384079254545658356669327777470289049119120801135778061385566354703399470418591074986046557799415474226515036527602278975429217405834853571701639832409006448353532189605915257738147519717668218138888552026863350939513610659111632828694781520547978434057677874077022505987356752225895089001181624107586414309203174677785705003338888326536883660394132541367091302798735782864714865539173864709421141792013223894224684204875474885649117799973681830056990034069721603011153324570312121433625378681384884571665334267841505034997086781271046128271923381189217905420069009744320554715470465334410010152238087014966812623943733469601036337390412689551112027616575804388944830911788065164940589724800142235351768084681179040996494788482688642983380686561269632527781716250804681102025942334131249739909914358820892561483330684214822012153688369791950206693011029274638349843899723802212688732631922854951524846100894338996171893513070582534518680688739190761984184788165028882946257694798822275092962853286056135465148914369708738914949994052039122818884271026110549664803156522802410994113691257092683202853704681371670873080151330753084462149303252312885558930003293683661058540853607499715377302774614108403911590398217634411018883903961933639591343309033686770959302700046457932444884061458862324247172805311135624203761468384097244075183420631886001445220808169863289035141738979062584479010061944287980955539341726465143096636482397777046362004831568832289577526827821355709258416456472797574925426904688591949750405533430179379946040640753057218909512234825439284431729186939429635354283422863919408040061189396665028168130549664609366417641556356970840638811556751995001683739206595313006873501568075864149114658666606224488042832654329862986745219290768391131460774158204845959391080832707067039138725997529540097032400343599211114749743550483265215273701616740790862732034225234695452371372710603349146362343255475196043854321913292778425820886022755160007090147834559760085118947628577502526675932184498148205354820046352942263338955318255555541537189502008738471348687705046425820580687900480680850185624777454678670675477733330442229573242849880880893382588644483091899797026830084881293733681348567018787420022126607882480536103641505459065684329177942505858900222456606348337259117019566316427203644977394987756347391310354142650940637631620896283308185069421983157604782502359964285333179467209834461339763371024770906901541800332272653201710110411704434407919366857403451364905643996273795179765796075154032068290246564784255931333505657906814458879438726412422297683570003096688697880399035353268680383740882118000958196605859396446688430320153202428916007405252767431624363709423397360454334413636259037312247079738465479422570083589496461107959433031861557415808294533260092252946502550238282223231865805503969489508485183693881046477992870342262550826551719889792446936095821630615083090541792800378965389480277163284989878110439133867629532119541480100373747476149481866738748153135242257015125448300753649219260717888347026568671552971898856327344304522023060608734042532972332391423900507129384570827149359101473210193744284034084241931294203338127354083285096907868233539268356525547706527293333475991376750226927856061792548497453173446515887145206194982059803228801583256092322435546840636818897734753925955880169528886219755549353616938060647315665538334000374433494053846311981142153671072628171981126690689636335882609801678111123045124145751355705778804830729190849344887739966608366314145711199461104562444362972481956191090139160500720330044888486961672945978989560829165850161161356398083119024941901546165502697818036551340045490104666310569128346993541501417183210352245987541605091543790896521968060321380714508164955195215812053774511530326048283867470461193393942289651876785867633592348378265666291712573127660446924419418480937383310179117606259156465169387185527680871305254957440506370697981098498655001340439964316617966787256023682821271399199652729320586538014513052012190184420013828457129143489042638090048274846654520614956778732574910971297598438305535194473138260214859706648400826971679400518293730961188709407779367847770682718415187096719667526608615567051119511401499251204186143658479166425889559742058662723096412146784106370406460881486039479860338128493312659051736732865778974908374946394252965261867563416640874041626654041126479161426985805519990795862268936288233962533744219406789675980523692100569193934903473116840207526196285734060317239499111618868265283574050138529072353230877717787069938941287091508741698631278650957198149947545545258222532987763820505562036996822694383216526339190052277312657518283618319232067280752255019840420300803215796512603707493781059739548728584096828662125270974310956660924795526754833248380810064010044206021155915449554078440842159034437695996360537584731992296766656488630594193450196772100335312292224727041312183185998027890297874902328813817886966322747725970408528547241419997424763840832288327395052458157759036784633255682853294962675045117479403549648999541832418778627635424234782423448749039463541981825841455167534001047576339584819266190600424881375749647407582871011638455819808839436770903637326808708964424481399501889132864161390637301436937080130404488593151754161159540232616138758614952115569188090386952342178657872716343444783206659800068206240666936593961982823151523865837981008831424561365424001827234755368922439424208914370303663277283334510220036466391994198645394714750983696379940507026496607354560241961447917611899715799335040776264643169078449297682398648834524545082467877565461479851866448950861082459330961702963380769753055519511547009362566123021003515222318241055654208751750236220864233592657306976186865828021018019628214271049574198174413344221898142670679064385902556910518199481975259159185825625212976499635378984592698673079352391188783156838837297042079995229993986388849239865868224580567641744326596226435000765732848538227414260279405240613376690092229500438537930508642319833135006241588795745972322250344573111768191440161048884660475041851751400513010049840986470335320795448560853816309819588442682601695570729547197877756572515364238305709809088061339603860723155842268967709139410324207338086042681805573046458576059455045106407754627422864415112923835961325111809517720891860915385086868495915409590925513581303482603875913668799517511167753679363232203204321600958602511921332517514603587556283897159877224384197925233220929049292369378383289311757731809132279159962894394804358412380205388209495277893211766432958086144888367851630613937361185069516894257481214073894216912029573051860122541559409138143606262274445301447530018821756616584770115804194733359018166356227342321314660910728036930478806789251972152659376914217068034867205886825582606066427685732427555909605045097099853837096527543330353124500840537901225437245156564051043469240240824774773052570133799618338432120201843846455086463083436017602798223470033181429904567852388789444663953221695614017422064710918596853203496501270674662263284231357333473808678113999331174981866447245144466726206688682622834075223736105400140631217176165763547447794522991998054016483169694735919377998488180277178702294841379390564924238293816822950343499825488398327826024599884160715087523836481547632245313301576254263113744746514471818801456155585202266261580300051471587389583693083514114248293329056380088631251536705007466079665338900756446852802365536766570858803470729433684601538342353262006369504276188699802056632869127071893361977244920155688608439045845106946701405414323814737106735074894749642052761193259645010561899704419297607958222921974846400015916265166393123545344604123529526308690853774939825905554248624374037915367577901768499102929610164575891879853730010424725828362228935129483379399433008295197159197267687281904382347765909292564395832970840203693234727317958828961848379211538376994714145366470170259120091261635874492316009517395556085876202517302616022568265851995027593363293206601733740343268953552942901268497136759917528854191860048479830362495007154611893950785163272372653224226647614172034282155562045780863970207859718022321169577856433316403450720011783662041702674109947132607204899477954865316014569122256185123565052118595980118934532870210545868658624834963712340568197886645963001916795458101987469378691211222204111521995259587581762484090862774373779809011011855489968588718671248005244220568238743630203749345103652483567072212521340784506376820988274666294204504401470464437040375505248007013430916574017623513556969127606290918086113190522738837187983437718893123175267999207164887640703915564788792194566684951461200676846523356050941680133434863783274736697245635316461029087879480007943995066916162753332483888705834101911379829386320624504466817154409647424461461171530631377044250731318029754991529210472852476458506700087946481577805632826556212513243866801654633696721689841619860088247278824188615790708675000717065994272871122864168491165589803426952305294698492590417042784608208751473807522575669860495554433209583512899083285225419488752068067508950614788678031570131215414859925929041207811759385729205091737165004528011133029533011930692297987977512624939060745488067508600374814819418506578048638008371353451340610924861834571667475509405682945209821829047867856821454622562629888184471063564418257252229047005047765411498118871455851863702917090388408849897165518333094714322454546064495332159612892434079528543516718912193287808989895902331509351525237850281929358304068814551703458964528080329198223694522569142225873076064551055899253599778010152082997825793605422016451634590889042038459022482899475735215161427918443580409287631842839687505692467624060460105354489226418707783925036519983434684720276679808154697193878499345711275375285205293798008788105663029973631699149153739370591626343971443636012819961502680842199546048146142872902540236354632449203505711524067682631005782342228213092497066517698416070964449032306092762215926586822948107517867690651514170263798591055609969463026802229023839110517172302327935837170484280139904009446758473157199793766137156637528907550665912757449883142721909325669228971779253621211229936644571606363623793701533171080277753749748653627893901060922525218515374313130875319801559018405915396796464613272244245188456086276070845753938102844476172416791901247786978840577151670675984103006481905864497762100844861083478288937381324274637204280132504527481067765690161088197114557958180464783257575042168487793891127685930113267408982080243341435623699426414808859824506724635697547523733312875381648794852224702832087815497058251403366106220399073428068042956432249997828858507796084803851570235283305550930430531724380304536726162736457001008295134834696196781454960044530791425956552194858222269840723202141272411435202706918922638746752316107885772443922758633963315641983536427564045318082042622724859240349918635846139457432127379466931999295229289217633407131692878672409905355634402241383109369943210772018903129268748350877981191365451144035852455342525512388563584400271725146519977002733538096569003067860182890023486857847158062013445639763021655636978366619156856902695887324818820006341386511331269766159394259523022283531788959944643462859343549046373973316674701499858249633843131717593338746963684780654829527464477001524102897408805091250701425283706945836528333981924969890541356551363334211733848536504753834026474836742982599184327590936062619242159153483845888003087094706229204662302949474245155055937367219991563173104056833383040428230960217886234148904828023675996339013762788428423898295175410906357954379829611787039922893614272258794071668762005005599002010588974125103684260824292461850357004003103483368045619408154372146554118585878823023273344959508411414153972127964864756036464246558657059508911129160034019862461550463710192105845318245566034279056604292055467534884816454333597497633646063999054673541107595838743152017463935380120536034997715480781013131385951114080186654947856034961900504146566844009281009656530172297826430490216706807282447559515759120319929636975145338386555367341452697843407540426834559451357396589620475594477453971632974331218935442734915541312726963497106103893655241780229794251983905632855466492646212877982614878932848327245563123585445108143484347082662975602497051131869789729253552272873262315029517286413064418492439464577838019269911957181614280284484134033649863443473177682529163952623372623255364771601877075871390826108080484606065478853242057615313037823809102678411018982848294433648473738059063119108870361900631246399321779022195631425103642429210899702457189085695609982619359523046245783237765688691059141276344024242437809515838140023182804935860723633248386684453823717622571181211922743570321880216478163535048308662724019539944865876753184607204288315157940988601083869690648292251770986057900104108910447085533631589700017437898932773239676160098233134591176807462348619497889399202245029048933634254684534629202937318112919011588505817132400923338321124399613592082810072663785764005769812074424975785841126146861165381452133434312937449155402459497249271043910172001596034236454921137771267705993475637538609577449120103795600208241043319569798605705103280883506041216051127832544717556353610508926878555304942991995563441346950033164369232089755221529084772234912806208199848488129245974513252354470849114152394573262583652839420994564757335036822131476974045634225916740791988547034031039245663042507640995302110119989926232641687680433941799319782676799552194572563988110552967730130512454745370802101596927672954116309551465397815005806550857985730966307518162830457825307562592556076202858966124320985966451857670798957162931456571605658855815221265116613850064890854171320588317858053743288172728002532229172622608616040263024957853413657790504080630247707967185900241817462087402052239769057554405342720053694918220559288771654879535824147771655702929107167740778504065118496789142130583470088078309630022634666868316063474781752735407295893105941209290831180702024727377382772183542266492884399451851744846665231236024291428396981685023825014040145781745953644656086473123681556531278986570811414500519134910890750701803784522724768933185224236477167397057951594106146210314050861669592903114478989185610604134974945349973877851697879533698046874935181163788236488946055937375064869032672513696331785907224401871945605939489681947772845768007415787691647807505544784484085928810423490128590416087542915267431872809239643332068593939400319094210143623056208739171655631176043137762354607867360429433668107169087490801353563116269244919365760506672439636146013306243337298852404173130704798944742927447480928402347701189556894532390791731880063457623317273079314259073001857528343667292706035411315963834784088927533895155340845104294880565339229921488526352874511119926774032041671473592939167186511306243893029459163220838629645997004052986497188777621381394958491793854831926571547227907729079029198009202328733354210507933030717432503687609354195633721567016091034732834502264638202093626878478179870329275893373556253123476909948220171924600385768772677268904761519510019406651857730751692829624161198499980726195732070222235666374766309825082238298094593738528039338405544261678245105562624378832377768177751902046376104507002629706109024760609520869304401945720864889397028027738238384142679585273500654993389782464001729775555543374560842446771389236685959015005001304511809715891997135175286309222790497946715096052475068418009748808202570935893948608094437951176526685353957581450624870970828663857415316274387529798018686888303588790551877755953022648614553904668659820256909652012169314959052795598172953835901686448625968747967424207787471328314059808288996757396098762215590386561089241522670149279506604793255122026292491438632987062161855717002293483806503974404276893418490485768061362764052505826209385413993184716704838000195880429394282135935785320412970149844454412814663062502712818486434426118909520684510742130682340019260242202359648846006384243693166139955487804838527181651747915428234783574732678910440159390927047888298065231797888893160798238452956414744724625024529271368141039717690592453944145172558526531129437943045611577843717779002565961528929116448913531044776791093419145909013827010874412939898229788794060857149168086932169899548093442596177419765500761865324604145387286975654120352672639195658738576337942666546358917515290198001072637647184670295957082340555205701043495347883497871239286626403975117709112311879215509365557134963266207650552744091834872843127333950947102399177992387183075507951147218888409012540816809650675130021415129446516726856499590009239061412363568438284436518835841161625682592067359135263360435071941385210232073028020141720929802787280387864967006920541428781640110820093338574088957320700764640001410326050382722031177548758256002327167613218761208493993918041496209948227430785446550744077607697461939752385003563039049152456268491704365473611395043652871611175828853592954663054100097908572610809769016725105717589329034664986335224261754262346086576715083734365126059008391996559039661990064374656369354604371168303870903589859104543953580476175732362219029275869364656899333975998307928232235798789002121434654553182695001977556019962245821721375977097933349247215321558930744797598062835123597111520270328329624518586934916254652614927514436467450668622370778374418794642268776852272811217749399552070974442049289662970231185403369658327581756412230014000135340998681457807403543095268402166541954704847357944677973553334424596726118999186824765634966021365671970319802150174518256943475841581171408180747621375040646942591058699206989243823195401869239346041555050992042079732049214568734118112855873786001496384413956578475533305490404856185831938209219143115299169785223042559786784133501653110890303877672453753131942939082116688857930401362918720545010454743334197823630532841192106261376079952966999881915285211885293700277188011289871861908358403327366493250194625781561730041677400158880169063579113716004502114494749185022552372511895434064753326219531975292325295888392922032030300405943997728436640919143562710134427505900682519570630297814996828133337802968256781022709469465753335050770038280942824686532896349161142845700946154891240408222835390552088123537121801736718793047481724570719976666943872166465253549678184488332900284740885859380203436906245861776540521679672212233680466551469330411671477823333311593857652604588453909245639755033169835376074039538826821860269071307862827618398190859885488364698508493885848843540449119850339552465704165314722804621239731411325540325166085976121569652084419620353374476549627003174670247461276031109384764149804180111287418848321596655457850237002547457218854056090043184513949580819552436317972960381387043267398459353000301647390530592823722127211994989981686301589443882199912215612341348766461981179807720982882993668796978780291481726033119557754801959766733417831882516025318022711173592437928330809592847817785132192312554002575092207666409211188967947057658097460967917991921976942653664002359396326503908282644814183370865917035594455781202204172826757715251762709085240057511218826125386596203444972463473998883564544051702240739214832109999569351239235897798477807803250410098905830097617224012469356369491134492631252734853591586021087183336365330130600718284774135117698606179055305851097761450739309573993232971199672259761516871425435499016820006548022106133747179753122219697210271534833793064780940431233252184055443796349181142774328049268622194819902609253045147983301241333751926783888435457734784374824600760006542806307586280458514926803700421892611209807857056845814701628494979302886869849202971138721895660801577478572323510759807172936595657472853659547886887004012653736026256435749094944019706133490640120489984604946949054264882392617714509932023696048254876856980008420594028422197190136595051306660090383045603023606026384860211501770272235151551496610261493865270822349411145602102013035651596598276257938441453588283889216978919180149568820848007782962818892293587980199518653162560515430940909072015263162984646952552964022083270021290241176434680023037939146619763350597065398599463770317351529057021021190672704730124878143270887832693001457787045681186827228328938380223263779675888166884400674357799217856641096027362271964576948324763446235299701040210170407018392546286331910382406296681218037750827079819322041894729762657444523122723092910245531281165861810984412608571201762327423614852453177233023947180137133366373857646959451076456463380475129499107910622970518166920125807047561970174106860782679954961503257830762043912166848598115531511715332311672649754609726933102190386294171572662233743663220454073024054528828248906887162011941943291028473294046654372684834728372431387847173842009277393072475461255731213287007962029683134808799200431222838682286239475874064876183537674552903240304295976378252945816941353888555872097463582722549852995472891604447543845681060855462783498909193412084869260637998721927307780004446540106323838832569571058734046333023596765483634403829113882888097868351462923374873549905503879493750132143912354409944199343210861373311575270337911154178612075117445527929500620566156277651204665519302623929304748128470921887482503377387556779586339932925090367429334411480195787011161239783616487975918477168114935683395017387233994114004916367615102547773783615024173222927189544946931470273165405910499296016370507602241162445274221742919034060271484508738891129094759858105116486408945489815936576277535471043093763364553693718588317564608580267367698709454408562392838630461737082897309598346870625557217552295068035045082126172399613664811954651809384725629524289308454618889395144973123905870043684197570353290803551784881026785952177659987256317494222732228061843772783431342545573778885448284828511227937201719676999080845411204742426279684756743293497735606948601892719682562668678815078171164442586369913502990156399521057686585794155739695268354719168869088081147368965565872689836170245638824967007897317788461603933417220297123152143174930988308857563553028065238154576134664915163027898960593571086278638787049531522679934047855673165648585514837251339931294738175656197020094925804072330232882683422954855286094846147513752806015569934888342079126368629138744001416871586760634518492357250996101916446083322606713744703223938450610911230953403738457020455732532869887595694972847705845418870302075765342987778738064980079458306231581188027792812629326339137505426591867420313686590989659347924254241164537394869326888919799744519759022500064990352398227189453514782822652834758676180095788863551607609276971561939421574964407338755642375026895258920849858919443730395580196671298522238187002415946530081163568166790495592221499151577517938198721812074107043382555443190458663958097669315461518992188506468993797522204840895142783931313758558199150036992288444098922514015943660912541392572857720933738554051821347623342140650684531293654201834610603524100640505118633820775734020238659905187814318971356049215044391941531002190472550123797644567065393836230418376963365097441200125275875314931810845075623057711259158780261885413639356254546053727580709846538309321584763957157606285077407176883881276655581706737074618026455209817839074357132580644170091873479456449801584615822090740930994569057193459578024635462545332172379629291416676301089411427710438563108394470214996379570770216194465302884109211211521298174280878743449171670972689997124428740461122997636235935971567923114247662712888779957073844185434777120435888243259424518096906056134323773225497627731824008055830862959372565522885482832473260326528119713325555027980412572257045842410774863625220392561839310101731972517353331940897642311583205594975506737452763110623543838258168601189175639512080535785509793618051757474420643208833007433862913505270535120873454371633843345844254434355233065359035932955169240473270316310761383800424216758657638263675297100981041770859334783536822753860452086846971357683539746222465165576477454479216104933951872637287737267838400062308952724577428736944074567970109808230528351843478435976334804678037349678671223505912706340065854160897955946398727645207593239365958257430135089420452519234381780729172299260076332129780627463095177610209506357782423409188178581568558660619462667612426538621245784032307293744320722852562459871835211304747720386328357905956490371300928525916625004601282051908620345536279145250852130416629988051278372985565881856586725962479282228740044680149237472382234195529414581057485960972773784370602940793577977874922795796346835298059661550241239213231509068447011390035961606026370973611924642961242435872905528706994853178018121641912308044978489816382729829631693132886148182553390798990309584944400709293884972214052760088481626163156375563801936407630024207478588539083818202029258743961409335628957956930217117040255409189711544636873644995868298418147391118862870521498138906071747981578555445722568272093442815817520447925438971408501658327978674690680971834407774086791695520957088748032520228426949787049034693718162210202641819799737973184631876303422378743589339110138122629804772048135478253598320393713278300982980035148869299696604275803391420007650270264835121131779698129576455549358501736138949256778167807992948373698333440007747540294050082191847854399048406479823952935110260175364115011944483844233089987447769801788581034627492751400885686399086567260581371320439870716106060662190607416572854928095160523030962522119056572277096876012031159562452098688477957783003126526104639868505798507325724144722733093824898439037613941559960731013787189304904287474783767349429177917543000090501434768261966501527248073903653733653644246676801164243258548184731155558200861700601130173483293661219305025423923665286775265059755273073612335738061689040568458119579383468202701051882008392689779629836325416087986561918258516583984563856326540684695002249753324356599144656802132984946913842933288713676913386962747751642759868663082714256086212142419325949813083971361100824883003720614589699208032190019872701688674061992150085836681046117412393159192110030135532545080960700762533036157498391041786689693341751865907665661009762506534516044186288968464174857545273389939647139653427203541360714687833381190734187361518876765403531672834690567399135445050172213305622556142535686787595867853789199258732027822197309164053078078903516453283655601043366733818895781149417326199932432339754676653584598600908351895234562022602718779623686487571665564789779424651683253964507252140638963206088342891281185591123154425168107445297710865841640871127968111211240889350655827154982410897718524228015247073959711190084057880072172034065934960719726826182417388518060891314972511798082869438222251173471799771393505357225493129541815762843416111218886617766395394223702551570611520512478754342251211936816253102909220171313138773616432064461878776358157421881651161276921539189023446492980768220570493175949726432929735732514308756170860276371664783888702569899779008068229391877963887077292210384264085318168326547843703535582641415548053473903802211008766306430566626847194298010332305740813132447972686760165445979062637793842076692636826737634652030704016309337262552886952362906327067342748799434872184436124263070758283771796599085197283905176477829294289231984427554715562002799210892417807806061525320084831042388888536403983308280288170825470267675319544154271907001026917027526342298329468791949893387605040548945453536344140385845450279580878349093633209707240117665813149920300373715359108439433634418612938066500830676290116844333068280552496267580646258102868597590154894780730376806453466523722242406370930955345802717988503467892127046509358179963811646651527796741701773866991440751072434783986279641336388626773304198674434090004038899659206298520029909115532399971601508384600159853701978894557258979006396117740697710023069759821364611342876565997624751088737408765002028065913285564911267876450855350917082468850843837054686664093382920265257040046399942731888712641340837262071862878450329351100129456230135229936975491408877877836565929717495903826193589240496915641340690533103577163035631125690280135342923584290353317875412095748509425813464677324408443193293247690216395746249792757555131302678885072663324253279993312496038360036931488274591212022265259768284504816270239202296113706849772119548841613183582552301423173196167256705650421649528640154796159725339637896946138810991043413366263011520322511423926156655274565231264978609523372417718334396513630101558304036135694743429908403331807025652354636715674900792146120296719123315963025041135746429315658733978792684312729499075796372518654618024581718830702514606271243320308741668210846470092408896972384787052483273019077704765061839877487215518808797564179632408104245242734427067391805844122369487586216592330924894639970143043282127554046355541176467029993371204230796602663269732109259013803413038069370980742786844503414413362850604153837441144689995113484656400756278942148507554788619892034494022999735081757670744636683930378824699604279678014053833991785878779044020761720308118174545190028686649446045054712473203423334476307761130408343186014192821491512556329900248622657681618605114135137745466287393387007599105672151182514603582018975830053955968451949934025625015580448312609753750297486162170344415009464069762770657186568970309008232967576528372633882122227505649076893949233576906398780516662766781922989092232192232542813558075741951029897272987358513960902769290740884905453182382031084638672046834098595369940728937778020932509935971526516195282022635119870411890101312551069826862223815008039326720398690742431299849142260176262763719157209839880588410601868044282413211915295974725175835488038014249718719197598158418294376400581019340499920240273038803312266352301140263704528432827370286380020555240987205524972439727963660152494010890475826873560038563979016309171294020731439164472875430160435620321941539878880945899863970261246740792658878290246012432743421041407644702242660101004524962637295905734209194711396006693395853118587737029657779403704520826745648351569743281851290844149189922115866335367075925774738672201470105798260486903785243074001436928548086812177593947462321663726910942249283729628569454157948111672012171575115316260746495901678412091194953169166281152567743449977950840949714910513920422659223490679011571538104430348719933447902224610622473205849741368657849527007196630087885141405459715567322339386782460491114117131472775060308621164924601631356210804153156877115957466728981934007031276317746771190272107376819671996857952538397448500627337046775885140209206318064402780182863361977255306942177091279746370031573022971076598114817496720693419670673501211917705979946242298824041479519826971725133063247302939102309897837217397823012646442708544383156204450001472700015848587589835202820331401747561472246391931674573257901039689754535707188054880186950922995183592552356478506823777254138141906074818535267828022839666482363113034233155077417690344861009554781616007529745477711193125649965762799795224237975096470785382333396380840435144734394691791769060610551597486009990408484960003934023746503754857380408606947119086921635545228957111454024679207781417872633736981930989621234783631963189166376487343378696576070120051371025130056851763747083190113978349844536240556376141057757655186253969220206401856003125432222163289297984615243298135866836503552142134330611542726098310152277215932229851763594325796837473795662536143739628946947290730265734033503564669808293285167018966689160735439932837824677682662132208046293589844428893507420629404161820985894455264133557400432897752648174296027976977109474838466335760183793836314527098661702669760408615014263839573965267819984976398012176469641886752702488597712566644996585445614826664270061485957108569361356029745017342780607540114504730530876965050961957878106839040190897522966313905584628255447656172031198436278521461042541308725858314592057813249016413224675808688539223607423360635800412420840222872745653477011099503769462684573374962071580186359623366059092426808884917638970801673768200919806826898594614687506988564645088583043996159892752066524465327392368264886257435400515940529005055720727954113171656371840157361299920623228348127206083050160985432073942182530377029715615139104301850807043771440277319144669858498184038271003404788948740342538388530607353849785423220613588691565418127072053819293707684369503418418374955804366012495295491514460834398184820010241639094912114434146169921239506744719076219165145164273433571900946666870352030873049196568884745554556368431529067776807941252795831360152397788513055091230151119568477079976979672911500353026681351979061260902663923047317275983080586791325957349047679893852531219962558541915320300896280369053954732599886162389962823383079895450535282267869380651443176898739824094870993822038638354748384818840771540580907720184770087201645676490116853048129122945985815753296031772710922969762192526448581158935466203680336592937361245642589264616059167913173741519261437968554883786472136274359525320919137480347462330237194790703876945364838989379857983336157132346127230214107391963164958619833476721072620658838756875539530839645204240944117330995296173795164254363801063672337020263173753740249101824994512020662066498857839933966875719393291163731084345767303920887292478590075871781746495037371242231324713214305188298877596217985516598504676474736019188406199683012945762447070672277986653102137733704099442430079576399890494551084197422994571847018561918529889601776811557537889180270823398935631841225091171836586581259306870765378852559477298166941454936013405422619888915598300738932065849569565677147291837847006710060796179166012643753718341473023780788201515550660225833377973782374151199401326383010776264566754381561520632667917763574825802184227948865540431972045166108265723971756184452061545808847946243139510746729877633947652586755147723999619107658763018421923987048506015449342229048890187321716060461448498688163182133479319108190687181897357797421217205086453383341734384263775323765622018826082458414822266300970868735343851826256251332222563285105651778336299408657834178117493706937820753564518569339880385741551535190955263786078601191369050462815243682622479273811528065075459983689098951599971820512541713933317452892795323887051298026823104206066228995842236714322282801090668055592268407281521994362133424508905448630048993339516713274874265536201018716634627543163849806349388077865254136463963947264851923637613233596427181574964534288754766995108728649028166944323611521105283464915293246288679598198596323642571012165450196410309804256556395173572181672058958916139352176530742242341272178106946821456119055845239202677598354342281000666996900505794975280395046632278325543392830278307638454731977821807341382170097208446790125034622476171524441011380980003551662130253127257072626984176160934138162989489487317172558205375569753159911490625320226405535643362623753387198230981226824990341752426444930608649554149914566678970971084302492503499287443510077287334171028121094525266817260021561326496028688907883029666977409745719644715953845076407541237966863826899550902551444003205550680372309970648669504605145589793648956675306984874211213887981562411586328952301362292145295227685649977309975734733061857435994671955938537538478604846142584188766278450698840821517131653923906410240130173131074633312843474035312590622192765832070934357916165854603688189044898000336788443612949913803225249197935544865175515243973588129240974691912752923302118660952162488273016424887694289499855217515433772967437331366079118097330422554028293828770855241190443946379750058770831131594189094340782788707493409229195954263004296907999396049019267866441491078983175990550740900686270179711876818284160136054324582930316415165333040624026970210343849497479924594438197590501527525892000024502732447373456411846491289361532183366491318513449232605534036052797342362095425900982911712416114521525347749215510002817186281783157151727758459690203436019779054683199214344383700235140234313674501518457591311336415854122564843126033328128248710066558694263219086653495723398976308760200344220050074335376448299102220949920469602433856971824083099888741499015283680779212169141661402601296296962739194038991798066729506884520075557117888196620674349734545051526285043240370456577734281203850287312968906046816755470150901693448937234293655815009996940085090973033960222733323399711855588726934086228804626589171640933826248206799253626523585535153426744702589290312325901524394145932587769314279776336641722759780576331648865115718037076608784130842366413374460473859818912590030208483941621328605975404176916905584400006728123523999111297503008737404703441954165060037435340807920924963573218935664969567512462171321783721870652107120607095998246507893594235517897184068235195913473810404426639402442449705234282379223383143212641739542084725320111950434091253356422576876476730132622964298278552916818227798165422811672212457157331156952220439654113675943643715406334899432562608969048598006049075261162324737707584100844712047185226410901746400092157975469315610833243901064545788951927763531676249130772989986028170934804851283648665706832870334857626480565662081128845251712350602265043293067321295367593634722342303454837819489500625460736579739324190483716627275745659041388091303022203433313215375651826915950577574256548125156306945312318624056783045233844755443696902879549011725670542755543499789579317610259240186516260086796047452361767104648457744704807509069065867500860654560577197840653234384316594976870257195659445767706629804174356254028538601904313572637781487076422602709969329161512131904696330612439715570264940635638194574228735534812203674458258048396885538794724471085187207120812765531220226238213285369173995215379403698405896439575938314663433869857928180853455500206165189773423913913086028089229260659494775048695247566525319334740440699133357917496293038537102557731702664013500153886665948599899771276431369666300586964447836273774433064343331440040746099088162842134056550782460489812248209399805059272897724370501603681428742026828576926743799478592730691129144780371174660375753145501092145812324518621992962069665515595156069512356578064925408974738459371394124817440014248554483863320000200835119969792698916480660261518920760480843119249115205980932498310011968047060649289474350935988244602701996739148360202799058762422531387999070798162862467428636479478608011172625974037201314935097321023399627505758485753466828610018408307069604376458133197183090531550387827354675901386178905305818762046776090523066048633049088691382845003057000143796404647174306918357212714012089067151936715149269824413933965288074421520044777538770979375327243475400896899523515454927385650698551834440130118073660079885945551963825179456011532850890240621520858976442700266917160954343290486682109416960933777046360656350978100695640439674739327789054455875435895909712413091576826640274193985066637367699775617189988226315284283945048948622074689319749578365881223776803934178443655243840715737632931050363858970236031414005306572590592833591207702332511681717924627680113485278347112605828086396883729932268218848994564674221541711450905017719559889937107613225611983782598819620248821067620724551835223611449713598743204948094621698407899067098696124123703020745903702305290882010575785283219977802885510709443881057645823055575546545228917961557551655808955361826858657861609312697099305107730215721128347191425723339554800601236091541057562830867230653727149071717509187349529382129772640355255082017740031358136735716671516569932864144426257554674987486760272571373250068477471393358721671373687478888577373210085931088582734630321517637323043313379488094559247877685621946258450783970798474746038075909928964718160714194096755263259846664306007920026589756396675869619868649286843081102954700341626554009114841461387077539382419425495680186406505704945665430119508250313584081552178425262291029596579082717076481788678503163350511904401117946839958455171414675381552326207593373570323927189569790418897773348445379672511092408189615093626816125708454715173596331417924656050846232371744891158217980065978932634045285727161374165848825709887694462869142120502337681720759105039714589584199741534301444308895714623547737576141348046875727721195696006666351877773601355956823348225828586982248155431395940349722272616606003336831519714496508335969304251623785432354821788463683482821838973293399689067551348621966278651319880977771993669295391432857959951949685991375428460245965664340493755793166326841950444342823091615405803607205740686605616679326362893567138002763044940076578039280641674354691468143585730012988695754084969628404974214371352673836965470714938050537626062031743838166253909622466223300768601574699979632076519363772044563123777687432101478452437524807761803828335898509149485587540388385332732877933007433906948878190295789908384399150141359007157330421647734630060125099571940215632315673372655050170090647233204063302523989321063459016330980356021061874188983594354165437702807476018782967805190456499993414051694818790297526687206093492022920397770537933107535912651373437169626885164531894857593903910369266251931727938065821755949165581916996244092921613843969038902644266591841513845081798276594458278556731977346875289823502901743919219426949117079400320517004493284917200523203463300852375204870929823423917771134990036445239895255626435452589313311696030635808643829743875515635294070461869382936131878556545700064478318660611876736715081837638253484724561010779286840421090921388363321097657177470594366380907881078950976582076375009111838989694873212010795035971925882803645339988190198649579435990339899343801087215436121298110547293015171107346914673869389942933497597761011342011095934373292465237879248128442240393361423174909964404329455879934117051638928970704948872129445654953729232902811406993982209082477424690885217090933393674371621019120378484655982913766717263021148953275487183920973418356816528884152860071412529533261808900965246482033545064779579682784874270513045393097708904773789439821623548650442101951467637794206486478708429844257605575923688791864453980333075343972502263451076046389989850133436204362329476078267950970527510811002131968470228418826141475328364801780010916608570743991991345381842080898766652938318246491315111274749407377145607865506563388278464861513703650575560013776682112193219463234338624689392329718013087411003725218301898545211538023926834985794381266220252976015579333972216941025736240906076979912026773554791787583798517937367083068466894666943945575497479027583337927755478453701330858058468471684889138170572742986062211172624306594118278311320860329029176928634420909116866690601921462453747048640661324504654306240338859072190175065932663315412064611566530854859452082768364121290944102296407338042855895024102328561148716197157976132760929322641225141224138649703867535960060511465884252853711344895191382705889405985473056503102689818228964071435470765009726750223606446044154829210639700759679282960542953622500084187327858190162251338765293740096575341860436219213859250578946377323826420323001519449574413287389673984883195874725756748119682016681050363690737106515584071300872050158277836797064939761051041327213158869942390945427375520248922524618522739887218699139278879490257478830916926711764139133705608493476890560766618019191569301004888231634521623900381965666331110258877092370477086526885960033439087874686198144566528925093712629052133808821144616985293216778109351068838947271079074185584750191448315531823071218636485947920524087606853287998049054778510300119006475534956013368065235371669783655329444223492262361292125381558078572849941242550560156983387102982629507740682597129708136830429317326555990621343523909493716701407908926098637442775871678678176674119621635092216610741591291713783192535802983967176499400287889630782694510702282133515515394136053690541661891830341669286418748920865058362855051152058313995946252202107746007895465997505011615467774736007253635348606566713042471954834459379914793108009801309374335310912952244559948771916784144827246926532104070197658997227041495545867211796070686649492925369003939563655742735519918530849134833578435371392240263192316922172708925558977306947628063822164673075730448443315347973203856402991631644562775179018621559704682254323272139116658124468842583895763176942789247559130923601632833280157517741575316884029820939618175299467923370207437370625239239047280174974724666327986478860675876855733297284139899872420657652662119127021029713244906091793229549922527299274304881450288404848468229966669723357309752745258914760878445236300942331404359089350709670289374227532823016252826072155858770140867700244358259818003312032151979840105460554804934439784344782164958529824998891216101859262237591293686526862045155050068431223440654520057810367688438994859243666726749991235441492832467423903273254425739809184750696096621609025959292833187818251879712670803602329913907126376542455044537811199786392463497846175120861011297025230994145042314054849325640371972298689672122784056415535429398836262279035802859770492395125951750961369928351768930481906724046029921494180824384605002750726698326808397331650709466606550769817046702457720835863711715798868043038406948026519962490768888035575545723596432021915923654482890453285667538424360243634135522136864650518589201283212864442369545905364203090736388714520267339712517684607065896858679922883655995300862271442063956267144294338861100194112008559751635557643300344901446017505955763069681280590925573977666937358222014717183908582504145531711131070141117628015100272597199955264602274968123958318359448097984402579720385406091015608149071779300694622852302044028677093046010837208319491750266935601400696809293835771828642811949224010043938179715463490301042309684910461297773128661669915857058407392612584659987687664672278219338730201022100348752823194358282074446453386094008280982546993264949447633567343482736352926560312928501272153207912234317935543542221389041890765871549945502279062273136024390437539339541210393851302618903981373977258979204702527206778906046591926317048966756512821416264903210159335449758671406175529896078339720793419958309547893901238373828162698978565493231361895238605516069392959674877646447689720406278470237247473567135978177732191765869973841716085700293674181844312980665602457879471152209313625810619663931908103536633837513003383448190881696758284862113814981938082001815425995356913939660245325450924603949613357588760496724599920510162149851912582321485831977607588378489695285533655767320018490566525319156297043954120209612827608600512457212905037700047538981605505074959154282138001521134633630681779428088250371850673166259877318404886068534490707638540812442674050732203572886884314926827545085192498039874069758748340042463308778578443936533275532993428866305581868667927347561630196936680743509260878431025480284466588041472304713293055589097347660480674353206820595106355403179127366924694714659141777131997855001995294733924165913292977079361620477945688885464113613528370353623541651265764115502116075673187326037216385660650614443341859822633925095844470034107742419244761636372891200810942693312355213134693744996902675581761131665731045059197353627809976762192093718073764210910699193560002757234848470184334093355504406959203461302548022637624800182064514576843113075754929522254509374277936497264770785892398629307682830428286372052284216294667993629235416418835922862409900256010142613895774907762982015659469858853484982930749287854511561120249710007633266476720119531272780880254525192143708805789047436084661819099044028337068211533233570029718830780540442690644994375699648003196175259692607396900932832791003227853862728906920595304623726422575506772011030031288672692760812519457274706615727468809519935657609449615470728690085367822948727669779256391554203344236682373751683695020550917805427460185929597221886246940108052658296282774096607151032436221371014121406045719093806959775930017167359740132198901063957169277955424710138905616044154775404586606856156262238849368606287726471865941852004898707539061707309832138243244609961528141181735292444130456770479497842493920060141030032592449777540327296354917621213158462136718596115522569295567804787054565004284251289969611490957632730164045496220067977676573260502562368344220275996919742651293252710067693221356226330506065639267499432228379095111835265128222428458740691981516531612511831182237756939492988773153292755782392572538356328572495704447899261420038680758951007877021516090262757505628817785421133131124441352426559799641503764239572085825348248903532003547038224045865289141309248936119168497619201884401225791791927663169078143614006338621657629928530737613470638939016662150383008903939390317199774133710183729741426339623867537109716463008592773276856612812857906849115918257182746162326619777762878810754092886309104419741874172446037223789539371970136860240491732704371860491496219084714879475174219667365237562955878159783372200081929580951423060245761760483192624619866401018082098856997646455586273801676048960254485104233043448320859520909409250334901443565166064809891108755706930959223906775889285070754324427751361336680208285837491314071727829457297538553201672101642379224555568626836017644941330055880772545070604153347322233516014440583643268365964966563936257249993009548501198116616382472620862387418042145288659387872603061641781395841202127946559689816149161870586028895727089896962855173228147423111894774664097607565193320056372545724503781195644160219104130770001033919184710649200754723681973909211246102019477728464766582773090522779038584124236548992807172052976662671226765914283168795147717193179598403155357029540930328166450249002574952774381674213770762736392353028955934812537692807906890568036035733931021598024839336229188973493435965014914457163473977971688791000859619490456635449275797551564758703419042166743684857717678659953861971232207495693643462277949186304175229621774433071553691523709592044154275152757743545506285278469209877165415166882276281406305433384888426467695990326667810155276042562554457061366120272638362950994987966820298174634949158733166998395490175141707031286489887993698376344718463197088529899274294547770352184015873842966770225539546005309110347897003295727394463754999177381114635837673786910108967637409546971075222344192814213537569983314039542065184354705603409027363987902533024823850751310179938847444790114095522410385287742548851650991939335556638607913280311405544615507432421949034715689971568150102573848180186331898420369496766689043025113141624347892981847963551743466923814160172373083231375144645082129930359446279954989317393527776117635908727244653644715968021806167187753803185503351069324434364570489676745713519067375479461200951254834337306466016941310443741326212862230761325831992746225245021823129359915824719772883959233663273981057789302563697698822629514880827191881083589501709064868410014770020279479468236427975698974983546666505946253393308849887374763038067956407411298820577556966856879836870782783649260000534051651510155860128737496356896684767996050253769280366561162821826988375107962827125854099689876348170465538229723499111989861732688621258748012001206238647680009156722196600123618893630847125715228155682420902638309839145621138503952936577227302470341115114070650900062001402666099111171491193823054053369041469931183168916618559185923675780125030276204431075785395491294820920497135638261945783867495072798387467236902635946011187825091936152755103741266603405106582896841449082539628444527011298407339010078862660426927811787387113670508811525452176281146230514343626785101097218556784895481529106693718849588001466571013554891191876695235207823445583303304703110804116107246426831359365330815543047722094238253938531025565473237994700863172411214222457378681715474789780960229425192841386098639285120603012160290923246959555604929310738448183573113948049654833004504618571084602758651214376727090454186995190370379695771531553255101612166530141081916431777851025212801500394939767234106274761150208019796835123742380471323606069138873228315497502327142729706413559783896316129091902675587051554639597499109107145457829111459472535686816268869849797041204503359420258338624227386121370083322513983038199007756198351276744110399411103890760345444499605941807049652346166417335880321406506997544663140618679314712781266146548055656253419362449830604219269353099483511616744617652425374862000472364971600421362086179211241023401664987608477953481800244378709762401844212073514454589303285867883746330306024187270425606424628116166878537278989436537688707961920095746337184632548947452931862622606119667343782408182374939806650496660060533453601523948817466465619605528131402240941362838622687465241193512144379005656397481213367783831072244622529069599909660767254457400795433378484918444937482833267320275208374942121962979499954235678892209313577663860896555188305634757894514745207108388825232612905455437673605371015898844444651631155563211283608472911078596839642123013335991391867744703225949531149711613193728896498249481064071351624205982911185083126935129261830277427006952000113524316534275850108512479346439421493248219928877274416263141688355166733677395538386214969919308005500753363011302535927376556422720490944516589049007093014778452994368173731761694351025814878885573356742189522979889650325349733051226009602523274901199270163920887315455402643979292266105722453782424813728477624919190850891469327572831043926995242878082138363961210092792843370597932647932115095801498544408969671319868452231650140470686942342607371185909590342878840231309285084567692821850891895376128645327289336245063565875026813934187600840577420413394236454181158622313808284643261859635148099028913844331628442068786833365291234952189472528211785299577257199754890375284394403581949667976627938234456250390690540202726396981405625822563284539610473010922760431679188479754920380531359653570893947063676861757402426317593203091772476175593326704147233079523430447569524582375439334107744186151249598987844205104309387449073804321701443651139189478550262959466373245608654073519012680542101246075319511927601695830327395255002503752309102470464684907396074285393274521364109903733278263081116828803221016508161364917707488297555094177508884611340860296711146464392257284193428517236717156174369083077432158598360802898002081535314043036365855460849848196677507643662220001051749365070168746738172843587649015867285941293947292940196881657681475704491341059555673060720467587329099785636165884181356961221651191311556725431293037443686263101580997959298133540152048236220425285016502605401448519350169156703741824953259118064133124723530480013915268943686047733234442241071818182554583691830230279475086467549297176871329559351951726268804349636356999493348288470485309279042979321742030325902517377533261130710189959466410136594368692662940061959586405110428856524883538944374269014745074435226005812145803373233201630470376026359372105619479184940213075245666933401520112348253691076019370888820788092424658501290505736828198217783763411240494550183123344874102920505344789280382396572065068287545791469591610536793169771035484698888288536520675828098156267001376772040087884385477627004156178774913269996775829010501732344981145935939624956351219960544693584710661743052715159310263158174368906363309921725825490291487188617165652552731599106294085196197119423206801492325788772347640944140960193026442625237541815904436764347676250160729808915962691932813382908641240165309725866579964725818619661805528772507273090030505177870666793529763893167322836867473487228784303605663897636838260342780467036881326394117487984827309404953956335589825910028453938825952698308786925534279887853020599421330668493107058384977648653800837125986933487339590686904015357781868520670026606343334498304340681060470294045350283483283685816627507451055258259290125026203852707093998983575264830649526237121568393097836259998751164805740815643057078406371528349430685188996341997355169473497847590036372809379579692152110969945317767924212457582986928925533739316671924799225308422343078780815065474863620021902329575880655812417491964832394392703253527000836742470530075966301871649118372214087289575278108930757923664502099992447898058323275895937173153161128655134466693759126177277456812229704392289928419260597535368885777823887324902790302783169957858437051174612937208687463053779134813470358842575637140504546233553471475929813502893024947696325367603578717274966683545136956593596133631249573584071190634617281861768748411701193150404351038142226342036833798771460636380571730884824852445184507834585365205992398497160674095126430713299833978069832641492122275845457324099289463621208361175239792650085368506265274354485749566115057298273505875998002152069582874379963799068424700145624380600528149193078478117042888693584717351213988091694098478450508544507231794182390027479861724864649396052459859510618592393636045937835536708063256917989778774412635109477973998548390890092865470465879438961340160884505200001588389377410966892561257977709806131115402938747812990926125235655810006752548146804333164856779871493834762601687810803587572221988042604080946854660154925612690120237963612627713738628559009527596936666968262703948130142810995318398349069697720553711091657764725074214637571563272137136815001292189307957961752889889783256117779722367282073081761085915410827298687132660813059615313875834011751880677267531000932682787747749332960931322568955231275631517068989286076151384554456270199878105622562559264404355460009144728456153997113147943789329145526975738983557273430434858278876249041369577821312244633705929005426116973802360562823793071926438798934621623191940348112989670587498405707256410491276584472520148882636045105277048383937802434782514651835039916337033614349834205962492597459071342697475294402482099090982578308593237089323826268117574592498555378625230821099920615158671247802130196521045001660126502552051813297718908760747775207417924211014372137250207030025950419352487792321135206418328703238929974657943904892718599567278011367446471562565337702548578217243348317157505412270342147818565869623771389521848814046900431235321006303446605533532425679463684380040611797951714936176823081306056629374636703312294766140926045743012088489102016732153550546605820122731342477854280413290047532769804364133933136805521293634423231745924512924383891376626849008085446372910262533154333518829020578146188821597037341162295020127149344953830316571538965991627901803097007442334085644738293834086556327358646593268361790209199204085796901315651455920750113942905400250022893908013766605467615575578454616991694693634990479908943055599069711277547822604574610152198305569075804056314148427395243800809502090533388937988023047262892327406149161896984471846716541910724191325906689099570040476031538244745321801273470475485914407394787962656304808049948613324633196078554859703900607507254304568213037210483205605288445157943594722671283364950796880267887362530614766888728330858611085218702716527873879232408994224278052971631619618366997447445603735120306848182327381508892951011907637219742737471980041978064944215753349285724833679016113373431707000822905699361690779186878924127454726121255123927783264433806705796801059963889845093463168517714946215184033660792564150709039623911209063530248085514376331530644223505379967827245110908306529671932538825034751879111062439675830988388768492227680673823072986291551125052793970202231582680928050712730757082319118767586537840323473373051070995196589459520170342908178005356381388728614600641406761071245563142055824624269820564503810508686061667316315532496503204630171396676938383426760927309341708472772980919181627668311571361314920380883000467472785914574283391551325361218084395935390948233609258556103911581873261341790756380932549735034879265464456953991218103674759962581638244123219555032855941876102336273957841242315182813496494119427214876253656049421105329730355900084595335415048906183277491992282575812093796174898663097998363577854339087305293547840146039625289062412518939063196690395951601872201859951349062250953718915725929690020103874174702977624173215288623140711284827853269215822257337995406101223990623988853137650517955677748854830122236772233166924714862220686748330007070243069214866992069025736226605452693582804775048771832582521498041917486774797454708790213178055292833603375993352453740845857308098319309732268208284069262267936357338474955556350343617923307943049932110944843697137172490561851935746478574668225126581539926861159078108007686380085784213368746142501017602840812340619295442238282446846274873892362013814030904635116060334293525836290205365230344819382720153848050831911863789062575454068907497589003095241722926055949671862275005430337275013418614657116435101665623006621800754445087145811379035687529488567260194567754072993695262655171969041013836747360962166549766114960809734761205121880327164152406904175606857713383690320670280771228089896494911602912641570993503335994302413932035077429782644078378131307269945740060316318707398579501378638484577651233599339550339754412727619045368721309046590771457406689091128482094402225201584036761485628397107194205967250062657311462148517948010268881621672348153502901430206419284080612148957293702460624873944653858287314024606809186442892809059679715736797076498399410696279506777419573409512363801872907407874277592442785303175401102282017387635557604956758387768657282646118955496606902161863995097425001926023586988422286881633847819801041309383252265959784961333988801083674488110969696370203885534851373895734229006927715305759129535799005220616973810566051718432654231085855444914813071262206534963803302598685976050473154036563279635399286626524434783143749056722588657130015975586343393720703067711815197882858791868161050750411243059184447518165243791474278878606104278500509428611551505220011380286735691844378856866214897425141033301045265782730489718271274969192866461809674078176400360621738814399318431742358213208404507647448283581664521845351426141724480000955920305827496311670758205612617389388261844223120366786225740267875332770887645910227234639389569513828309230850537787940695492774153752682953171416105485903926237468045426476918424325704108256976555895238490406651453431218134167157095081318280829660661094860115022800254522471872132825888858791820426959188793562979126399439574389178915423033060388025356928865564045673300582891526322887134385130668605639672568477402121121129899228892079246981630195190153671739407367196211317966210110036496100271149010088181572532869918598613588482007576160021556213560717724172944411551263336214484099831814258349576832084114424718271783428323533171367704771029457048082696090039844611610682922530589950215002041705857469719207874652590427783255889784680692975898562747706451712858469378114282682182362761028681863853390993150057628796869286637640794793422520297661374425827335166018746549755371060328421178759808440815170131259314340660136476369657522514487288248563656865141295214736169068695380078698092811128163704068325368251201774217796607112981248724606471186495862662000972990755794491497604137748796540846419364592418414810471190780000164243209790357858136715432856471835533670745283978212375374872104626687896417420303197209460031855073054845049734659410364247812069997143569011349077787260321445255405848635578097284907781976734331674093932731708012463788166022209851685543521757206360065425130324513145183464432053815525343061873459772969903086002620690486956137960600925210339977366371725324745007448490376927667482232672459333198881896533174890375902167935258316162476492482952316179870393918521211299451688851827892277020640875831311106051384013976068050053466265757202233282056053317175981861265920134483068546909903355811722867831165764512296156215208475469255279494818764810021565704086618640637206543222768058143641194995773479002048592678466501494386928889650738006710402363738134351117533259722663966619345713402412585459039500900556205355871318758691672223564553739849851718729581218853033256634134080016448983291279648410409066414232358119741225579414030572812065470493578871324633788099856379858265490919726880650179468284344123720681385534725516208448082685303783158963560532981770598725364559595775208851696126095750147105682610426562588003550356551649112750472131260171330013778259775796853447512115617304254926305282013743869988969617432497146146779745729907653916780847932101156366736965288566203229484539212147603010812122884989657041317841851960409376863020544369014543126684281333718696950903138994263229178913085262618472636367656181143312571121791622055529742778615554949313301987153854377528209806005739831728043814160137879437512086656639048478458843002137671386420062391175667755491758281408851867361464887975762470673643774484224351781613677547072056515993382070075636551810846825733427637706594514041699192300899496469214378059127935137845511009316740840000205009364822532787195218068066800479619630030290312707694396827867294263317443924258979808215406192935974869180208267979599727619304562095641288219918497230922298562916838748413172647679068752394886110033472859113043861035001194583360595584031794015735223366206284740679987326290134958219136551560236941970571047160938262755002924814597358607969419305400179494375332406294549292453332818879862301939273967950248682646475374328738055010577896563807851468668800191566016474595180103840649946927282671285407641521725549700245798914899285485408265135000959875455851656772927136658956704269204976185183923098152660174363067841362963996627746223384451870126296859829186790907001734610760553996824337587965444700430479581051662379125504471510392247177078208397343703866072354454673335287987779856798473138345870712669142878747257665153663853207630943619367428128885182271734193994796241927865860102064898059089047724506245169123904137680102241231951338273486592492000952280987822454156427036574112988470230440260498267156417256373545232288960213938936678475108286651709327508245878873573078456711655754776126366058887464943076148443505402649707792318437412049243411895474760870714875229036331220618815433553613763449147268523858470166621222568119103739500802906195687401533256272496459261884250525256889754751907781170554455623749617710714683093837343934059417190449558657777578008459699422290193545026707487493627543811686558115484012322011773845729004359083539708764966049050391659787591943431962862435386408432311373694809808110389141351809174796218724940006418449761229475446651595810965297934197300735147645288586350692461414053321382434191366083514360042607621275133020190177994255648993870630192987944574104130106100074301657084945160034142709831701885620329380370632304088007498420002312370932424573846662442315729431459141201572930274279867564726246913347580129699555802754316188299285668115354127229752786142557713962000647632159432473970952472398132412693571539892280750359597238962529563534226937805356237494330323508388787106197132497004252757929455680999242849306933820008993727882184550842636486002653580309751949409188083723004737368000632868035211163374218972341091416354461588891136204999798943901549199252861240401759634202159640995218457801224630402323589997348623646279818208287718710130576000182061124230227594956339044432592980634258337838024029727546550026621875790094074496095397884086984514825358180838592043538531688564796499035704915123204460004546200580709389490224928236432877861870977497762521346567706120967860378411068495837417976520323035580530098189096373328527831180226036164187350899094074758338292562102475435095910229389556056475385427568559914852286804217688249923803800153455706883926110174415463345192104888915906872708151140541054823543868481489458326701552585418473991573741835290455331081425384137442229529887210321646959134257924626234906240604485302612837107840685373141840093508533879774491613528503221254923047454607582956441142056482842434068065015426579097786956876842392466709930392370129857593232118389251244152544443405686599752033993151155939311102918165421284387652108842064311973092822154234059738924174848656860682336003112339378074613903064880087867229431641099004177762161469402258921835199757866275118392056620786401725920166807246911363153374943716932621193991406406664069329391392611686360319683941239920665648554485722368151302235494038900122445036900819715577984615097238669532693904090302239957835623012928704306642588809749415066091601680656910732942327820419538555626375821619607093958296394682715770794971689890427394322417632356736427308360474371253737288414762238568316406541542258914946111136766137154457767826454531242817648589505031780672017177464293070905154395925114712850226728369717790685855511915993303767818698652854934514503031022987832187384945190195963352848614369020417901841096113637057305657114033048448559453078812847293510730797598072617154966370502430167387094222510612565184534722681926740845373714155334762767216979950107330774847234991551209910727437074805126154037132941668224270348697885027694162235590803617747146969369353717378228001525629783968250335300798442786806482109466595195475036317341059162569692021523486946204355017950917442113998128083237679010617651573017638898606213462338211347482358459050308682899384307619241478621947005781284703614960499493834258030431643369556178596587276793931544880796688635871752132118856482521566080210147064818966333507036640339091614495138696837387118492878489329315356283285364587754940178439916380254301121338955290463650756111608550118787954193851988676054002690562991359750605830781542339762722570196318884816494566663817486692941323365054617276049991397027006625395831923559372954233464984828631272128862110243046702870598849847420859344248022194280773154211136490755028150970573699805703932562080291759342266068942066537576479712499860527677246704434251561180966608740161512072757290301376996141796025201774602226833140778682910739439125870787584943554333885056589777942573432948974899096193822303135580457354080030266836348730335273554873764795799404273742806638392571600205431629530590224758932787227657183671793465532636234046373751442092752426113805646761729118218057491420031028654167961842594538429128823650636266465096816186429691850050007846232292993138545371843392021685545225089580130765563746391785271864216711031495942872393402425035266646575373836861638900654260233181106000587699459134150611266427310173020659764117926544231441697603951469384614340772184214164947364256572763926339737371639610308656289887755219744907478650795394713415367911779154534042537504054708228389833220864072874101067735395404891219742272337229166441823087159256608361476866034944910874122147137204917034875918532560731888865628120165752758295102104795819161130479411397010960356202255008590647904649349809456552763375570413532235058484114613717590272124744668922582072137510597787703438013211132990907646682940683206218588423020689114508314909821002201866957180220783602555492821000554122953601639025115880100498591053028267305524014262523098370807917187181161241141837556316600668114473993086271336169264887898959932515809966388241636531290205205674853636427663556205670910269696434700425468658435790382857869456908071816747242183567695604132518407344140312604788132277317975612744321609723583384956466423798188304195993462749007603055615740238789044203171637059603937348834090944849139013303670440244860716566061249517658554569543523901754379410752754152033194980203485162412941731814016121717587325181063719545559353936646866742494386268828062893455907651969207935789520304195879489935988564191049074680213812344780016090543322962435183480735219849066027105854942141440746591874751954327197049346017457834995742110966521566095804660650790893121909697794247461096261215090007096544247654071312321093873738863280197044954073224525305122672042226758743174239149126816801344985165793726266636060109717940505857036045224765412455559623221431132219429439244233657503815411053615716356021541158322266378574039133713237014757103671415748998569029532236681702339669242135673361435708029247836177773780504445308542086656688442809770361991326136105890235221998821521003501026659672005631440545114937205685730068994199944677456152491593963756744607833503476245691905818186570931898169247769030109197007392541193086488569767880824140977939697697562151661151769824036059399304025720590899998074866968565607834238486975347997107299391531198536259277102848859925287086301726767753184845003957786819703175302430238760703166067646220703111703978786997061796850459059189620879099238755468518702828233267406327294304325042920860404243851764594454674142181846597148732662767356741317526675122243435394612856594907734072254109947481065201566155188227022602861204285985030632446759535173892098005075146002155098765862540513037906844998914871659674632562280941159707799286274252191600561689871355608253619364370559700181141413147168865226410144714130489361084135763974725433438946316341089021142942155204617059529339029891515910296215378374375606457939905755435123705293366130610595044070485297149003086328193599242382175233781764863168545046047218623691308810630588403636088825801507107831288063894965397373154177871107727012733676951729291039207164165854534563407275013582289233505017743241105407960475081052245849255437848913826225166114999505149553755410974590825723907129306915597360498031000157369763638625349741263536804417359045166977852420555524317484480681879840847664991508329087171446022260402168694559461961526071248485285368159191750971880396440211839442164761782905505564407881456535142100232795853508726959826534124378441546582656536468338552167945223402096269546617263839100754888290109965895152910070086886592948405258934630664848840611811381476111159266503907229946744837923690463107351392992625192069454985708623757648470846403362662847374406646966911735765152130848365895995720008665310565341375218472387237366783684594747166824803767181768322098722296006206340786872057322556479601956702316027577514291939821548023545067126413188001559966882210918078408357126426276753372326496410489267012115673688366220397881631159573750322688274237736760374170305982523521955664805530167579783107959226262945994819185517212666456383849537021610813050064021319270772377190536814128976947118572906608212034089748086510834729856017047628372104334209008905795216377185145283407885519109713491229027368561618608660383477046076990334137070687447186230374703268096932556572428762044803464556981026331312494541026406977468844279997144775426035228501787864248268497822700758657600774987120677296022690835775747650314895524547686006420150768724803407519943799970966076144500451727536153705495453127916896104042160623754842374522497358664660782012520731066275387532171825716124730436425345452696784233576737816766972906968259600720167368481871564686555196629937310577909290890826555830611693305772412069981321199638373666670256103513067658973750422908944728577937984703370150549602203079634534435147948112119512499464764178352246363603783806825183021769569729165381794335421165290889705410755306779697899227146535829831546461914887943045280647356039768676392493245298281107332635421512601200401268985695401233825816092798001143989106525211495444721331098635878862114814837867849861993737074006878317695439342282903454756063355520004632883497945183767722478564512043151519802227324556600485110470436758635078442679353616900565951688987335837809946651423217563899234903364462438906220193180360207797706113709734948772847659694584308967011945399483482220786382114061597346870745278222067514921751221213442074286838905782588581433682390536331239606049309522645686545638614774166637513714639914594051748148641120191255510224768587764345196256569169679563809818900768691741719847099164124968201578631490545190807652732679249081055698054436215198713453274519016141622675880227024583867213309632792641461969281914240841668608080822106010972896342429740442219593399693568765439048052935841433611459257733877578226430842535791307268503151098172102548047139795315129895173021863018629488519409893542527764228007592394686441837315885025296257586338151182407048390770448833087674903645235167399892779321926788873347790051777237760218452376398975898736704162949102004994558405196886514341482685397451670159794488749630976250596692014914505238141845879859698460500172067405305193821335299109617480169753841905602706949349841049146653698144868939945249180752337454007419186062420781212434013644870480764371103068598521468285363141217980467597102147962428327518385430433394537206874775477094172561269741849684822174493993480503807858403892222830116659704293790417032631443538926651421240130047994520494433043780966418873627725894978725980652392418755200914962398640008909517872553615946545530063531295208594859646554658108509973607170002427628855130999116182449818668076414218312206911082377704139809512973139906795001083164738981462626253628399268909661984593613152380177689283449747554188013343420382113990049711825758506331596998396299303519521187082485205989361279613310839335225148654648735544009880986228507959260484448651199906229740786127824619606546108992966648984945699583102847972617147632457914486703656921517041552915172611272937394688017404876547733111737785354585762920102125228778412335863866357167139332150294058779419441152295509275967014850230254994050978337915864784546903674168607553414359909207278190130045075389809832107453422599721006276098357737163866774434838648051789358491697540391638328422536842819947522125136546806217974318357179097845120537218230503440424712196672379605774546782515705584660026281431821818524652380000202033811844013829102239969189645574203560474415334602403134249022289035826081505358423053009989975035597920815429401655112909532833654624648291821380439561951313177651122157191442445936682135083037053602031765396371761142961701579290161325802399203653772205918575391298909289898661644048297452650158883358163788171281880382507878716684100379596533871615492312939312189925222764030390249389615839490942702528540025703864602059469010928489585203424810311728582731814104660912863116655280011031567477899297345721897766637652242329988101084037644318008847489274435092816294069826002444512686505694356277603603304710220020571031437550832661743904438892888556073294460897734893607761633566717769340195508534394180708192827364041707801452618320969005035368528872993149334630769075747986909299496275760657694133964253821653554992209714733316600871007392445557728135883724977463751729743048368291294341326606181806168726233684010279633046830318918540007705376683218066006448106639995787910906707093683164115560518557148994806744011998226330931222692974805546147233904132865400467614202842709914220218936163412742768340395227944076493448013821787820430395559101369370611874535030979134067844794580271450511326121931272915637810198196261837611587627555167619028703176734554495649428405424331217628823193777526276976558921010733721031660416290283451820680389809807876610739420291077938788344075100457414032478947466946377064481067446633935863581535151092910100741839030227432472139744993933565470039279134420133545458498168716375482570388053859029236930693096878263245307375525092314369776154568313823956739731588462086862604126187061165287706476849988979932325612695237864008510016446343482628279916707688877980899811498924836692319039320330168568595513150403747081631774487709261723068229574401346343580690652482419251610519739080822976077594460109797929507889926638592650853221997600199616440851621613504399700742752410379683548643932865024981989037123047530812408719136339819674975903439923314010839405161724160455855614985370228083488176419970098775866060280893630660663973496944262072452376815845150596914233511425611092184624473626361767349528417510403868896979551966764215329680441957796693260386696484958380119715519215837114374585812473175459610560291885440044232571253646531970577709176822261871652427656627317404320934797008628473896537126492413028101338111648096486090850004487759520558519967562515126863724677768313869877688622408256558919475457079391275065202519575842962091966526367441437393203258058171432520702336154194950588112305266214716904916833705649602603756101165921810166876360601156336322866224499673806646469602571102446977571506702453487645290245510146941312583919951803776523551870006175022292119610081248314775774568128293439225545504477335176247502059174252596502516664733444156898821188179162437174894894210011571257498334692873834762492716223048289936176398450366118197800768514565783787227951424187808749162517773850556605677678180895499880721053346691723539624125019069071157004674024022546100535109681107167160983391484031163078077289539000452545516064955018998546077857074168738114361238888917784252595610809969399137372140924969085358548337017012694656525384693475112103721101879845590465014126006355581847857460556367532563972850098606660557400840537882361687751475368614046561150345842510533550068229008501912588961157387633136471447683464233761963148662295557541453831334482455256400201648539005085199396703770686375023655168984450853229259689038784018211533770669305167786836217444767570204413315954380336252730640752509755679261420409226626972712670824763516286640883985426785587485642570297528956043661725017188334598910387738678347903447337402120246178480031054524781499666876562859273207433953010141939739567248272821695625145094547341967368582882242209630380595948255216714263230943289337111725530725173473169723068973107642995361769169087590324714677611926978193700215462523686788828466068812694364741315718232366901794183813076610757330811949974212695534504885671518202087144619942368502989985298077361049890360003074541866719116512346346390805505512132514624443282985744081090029695969445001815514531973247211009504563538592342828559832487361420714975525815557412307661928975494296334859455229497520352285230496484436576421637100606433907335455948206405024637845772500713277634693446074923348933017720361739276278760841708994396692336246583272803182564698844709400298840602066729454573694903845664568939446343349915198494291216483274442973031930128806291474000658605984740726276593511582520759379982532136477504136915807389375321002025978492793493219133541674994501491036852231513478675995810159779771567814602605370574256034581841695375557271423605255316804950857766279416454026327937806702892696827499083862818713692941115254920542479537681593902322708914238003170815845048505331832664915202504249189418220721243558252889115122434154820350070903831474912617060115968975995827409183462589642285778358413433654641295738045459122239168352766460818278556553106808772773752319889219541682882964669892787761277452759651283735201678744692498971254335748685777021355528549675527562315893416341480722294052828097097714425674301799769006890021835818825209801546036566320572562880374405672846419543469086805157827875097981884621256934822512377084466197155535971487611083206126629210962719921215530437221809945807927906623550737266805914284979957949937588086190013102154272997875001393577349607066818649752558989803268613569054298823422660935614287171503151577312137149661850552838279260895907254967483617743001098946347087229768234296508818367442873562820597930650612535803859992893133456755873689063467842166227508972214247481243889501557491041623018380979111039013128967542752788366222776497912425590192619234825992941155172740209578129128822064975509377080717418218262781504449320249692630678501524805178555843035210141920915150665151343151813684782468581512630750245237664029507010867713511058646053678582067637576242095267313534719808581942658305444249560358266552227355645371747269009980740458288531238661463172895475536515611377221935958997975901288648331567057141917580008349772563037621527163830723686914962905287077427158365126929945741080261447164805329797221210234804576888658176672433252077620329582459245098708980893814853395202577325734868906868317089308767098677915478987504139512028351074638750288511545749303344114410247321554694659808274840617975523180589419723735435407768917390628737483253856422837318576707421703790212516320327751440707782578011783617478258146696381243879369123451769597209744169493851438299882321414276984802529117883669747169004498538019159657779769260795786894508797655031700857162217792696611704295600939159205949000010941567400151250188216853023731740471580447836521436993248701563247305107238354542471800725252638019907426902933687873301043591563273747767919382757923472059610424743497671929643465923201863663840144000066334753725702238378474889109463328770413424199825212375326837948545476196958461393192589383305829565597327363967472038036563663646482297719566702958649663186189674518511015047137930878562468453593984593784515634607446664064503081659134586979180219890294393890519732842702946168833210535339140452478967649290713618402575238926437916091103454313395182382030438808239537392889845779550781964794027051566707076843320786384105447399585834866243429465488613014526836288440634334388138539751254819710524476512066852303647754949743472446929433592234725533218010705825258995673999791295929874481488780023336814439033763599712968403028596260712547338593559580365933253501872620482453674838782376619151314985440897741430453329187933267357856839781016156733010824489893230322995039227475733627752728042239852227977459912483900282688020185446062356520847632037928780848921185768594182726755696337687000201682475536566290277221601240174779893313393654346107195043529626497583210826187278108797656080952244723577516299208817575944408823051428887140713288641082243985754465224643946906884806492597289581497405198956101784429695533477505460505076624021393412241847731799492041349144556296937959329185365580958319789589866242838798263794783558683919315767763043337620032849558257784766084601407726802167264807319298401236393196007605596070284815765195096568120420975873683717940555306226697005898280121674766714267468381770950091762835577455298482799373404686597705054102447897519739794248618480011393710775516068979810705934348048210237224818174297203113610377083921361621315719558398936588048282934146521402713432624849483788566831104856064983345167384749396292039782315996685256338819931660720746968924211927883523520707264665407221268702094541295486011526102976074204772081778672090700003612260975567344806633145668391581750978545065921067651584227742214303284580694558265317308933248983716064412721459412656404783082441290368756832993981843114803408873452561650147734642815182182765124052134337565335913530760061441906035668632845027543752547012742707128155871775243164937887631686754720153706675619361624682687660248782257657107164114340424688958427423515467723989305833225438525500068261179438015030288306548084304983187189473423201922324597772905739952321374972281551382354514654233392008782439157537151678356579422664078624604673327642399724904203944614324747177170275978135087582097405171620769939599846195163205342332327246808487507044707608526734752752380186457087702017377827588270248444860989259651135490362693814162895080702359645202333983824802499947769422233572421727588917620357506734156582790785411206131348351304668517946472697604013639363798371420563974120158385918087162438933992876843178170343529075458262975740082562910555613199473719242655005606760483824201436149277609554206844752144112157323959816274813071951575080320355758315121316151564247245145621542000612143661167907125223349014155585923603046564971392127601022394617992813797352010638050163928320827599498545914556263374447392199537345981472683268843687366689612520552534308173761770489104842814391334876499384611889575058438115911270048294123518568740656435942675575201242945738952772570991344792228193182041870868929713406146498216172381174358344148358510818471948244223249445550760804640507906480669841125631677283236441838622960094511542456129756818863932350261623903662152244065978401247445488353742449739034767423058905105334955533306910255745083613776468641598293957390262268826890281266557643160665778105240133589114795710795178849921689694927734114026611920296111717837575371599787048422582650119962185359660479994576663834911100554774094359239830737631818535844022243993076955814000884409643384153347498547435582537244414018852460114427946255338249222679358584017525597574413828159358937899062168685396969742500726314181665382530315877317695147408844345799917776191144085472048892841083542077305563404911986828229500624233344418707772681918850691472169459673727564017760111254779936924353496772501135118524054248227779892459085721167279082748130180065474945328979928257442521805067196761651397757586713375723850370870923412930078155562243737576180214336776572391851060571359744928650354506994347950335746063258624753853500589083169347269427324644143995123257757985220117737019700286050684623998315670764880673771796999302345749111704478078416539165553365586002153313511649683172544364944248465819253679113674969019809206375348634039569147870879426650051093067633223705222019125045846288960604798404481784712203585597012795523814632057008531779637412579892583283744868374844791009456108498139334277168753108865746462284043873994836910736748385115130293370564551266254667192951075461286478970950177649846606351750468298864819002178446812975191456507189809306745246444631236662076988250590209206710063859105565713239451089277105688851878731020440126125079687938062104901301900009666814539935434981654119628809819685914327058726829066011783947070273700384764622685404040100306691300599614563552474610771471988839190199209772554491699039873395101471782360111963189736657789136455570153299312689943772579560173138661663182205840340551134948310122230614376382069606902758460032379284562959013586477880872481717142838681517916530271099220849127533504142956856022967678618682057602181938654892244031641895480833603082981013066340169772089498734049451884603045301709407020109772976323046722402428413740743377309035229401987567636720650028052698697998128572291407492623584634382063105494079972252744090003759753473698032702289930826474232906264232577205639888607106931979570987008466130945684283039995451974312408935499997375879349850383731105099895163954299850286129907008626899061639305264935737211642845159041759590772879557854452591116845705056870983751596486898545552964409939547543454516909805267487063393577421917395298444835891132358243762355344361727313255554535718304504694649220696397582479493322651688001482424005003246018913189128443765179126334753655758030466251315251018577263068618986750600744286872221531377381499393395845948371243475307094084217196387453910393776603691108516360520815509593827512315158894750201805108181371339812537249594330547419275458359748170261619416232533951025429314524952727927503825000039947794247747659345454453029571251889653559925409151486422367575701076559759524539692810047886624258599181431563733234861062357943513606265515447653188098631310000536480736114117148781856248746093211413436258912662954899551388699686057963107144993513264984303444019057639328653886783149485389968062008778170195802659743311604639597782008241001947064492566590328901572553195190684865391938865720376845818761145004933857115589045910189559753420694309076178840012885102166007359171150035462323958330760235420833667253484624605389369472251406746782629609735069717342811106916783967988704657509175958924331552113737356032158746874109906143256752863398277623896438122445324334609309361795441172079032808795809311143987265685520443497689797457050678821404101063067013958303799265547436020521163324650859093949244257238747041171853526266217262286962122678023142115752239342675245142746642577138802579116183486121011055803993919321611982142729793046264820865373922948408023341387295374762574570786814446555605670893476415006455406531496384187372619939744636663237077971722756654966179711284675031679869922726790495152680597674024972476992774044571233719935040817498071783951467674750251720179673036298905814285963765587204269191936591256787016305416012979359106430783993360127062756128454344469687790577904201544353025842699492642761206301269152566249793041854587383293436805047572908924804465695627203792036276801020659627192996110320046634688696911743764278181741854955956074636722179996261600455297398458949178921513284097271164467598891277067661651735380628736846858839834608555231884145187533740988620894638091567243256432519044373520363489292185829372093038109394677204869231600699334189481654087203200988249669975394831269909039399225717664077632902315506295749931129317432886354614592300679653604751569309108423719047701907591152349845292477748382426139797341225933953810904861289584516821937467307015354320505313003836319191456271270356073150283901502314744002144379074727609556969279094909597221008598965392272680333421612800450859797900085684982970319547903912494067271163932918113873317248732272470221025525411573682499396779643946849751446964142628174187124582606642969480331757004344399688755803263017742020223815601991097819774841360943970743062443479596724718161961142597405315562979237651790122802821105088532674892502978221165810282711533173573640468149039021278046868337982283266135910498836761430838837556627272541638021452052533408820305188416559820531216110152240261085396690558853923085059343247336399983975764062594783255390300876346996661211788730148413895670777132352399931568337196706370074713672662404749359157314127657885391620169526701169851636367860490072985787306041277529914474222155694948939780958858691037003208281042592702264497122918727879033686024962362260342193962359852510950912668829914066530296966089070213553313980063755308484145785598260434889606101678858761294362703916594521448968761024241137128200622657614761779503913153064651276882655281712908336329704711073583445546302845153905843662244219618506416353749727113602079465578239210711828848859033656107103326841547014574717483840962134369584857534452747442661939470671884046791760205653238180138587108711248957966589825250675422343231369276920531714962333086412694036709131109854854399350050955394891902710146389826694538077074994841371753612482719286507472916510811280717674746035144636409281878642506934282326541680943574755668824958965720477098384838301571903678639267221370818078507071976949089122760420060481284579309289325460616443479033533450534863267148512852711406948204934564111060538208269779157764310296226174294017301519146533565747092371290848207806490231565648266761973320061286914797975559030002367522365325563169766599158582574048905922388085215116770902723404334132920667793096694681919433435757239641814175782529563078514586070230996761804183204801679401729289291881085076743146622931857440532004357568242133981456120365587231777886523803155878312575321256537039969616913554755262481528346176181829919341962020803166090273289143424167346109123535153043352638342623793736726220708544153778984406601322294724934864923448301745075824733763970159814786372077963980490373152084790261867013438287565503955598364975486878785674101824378897460977199979028725839647683634586495215200068390529065595634657197042171685086175563872394127336420821862868621407097139805006071072821690710432483391898665691779395875043232479564089289327053602541097007760905299147705433669761618849155124488803139671380342695359428812881675922334353655366868177494155094871281570488265793605009367099985104641025031044668805407014382349689225162748640821944620586982190072917582932948194965752520115782105224633960331378967893334706161701370559628636438312391906345938117317104668914107621564944826591816518181545234703989871451466603608100961696377915982736801321970777645116286338972495405486536159357743108822407375659898223198817314137193132341793997032370191944459099563701319478586749198191814186087737899496418849206954753685613586236615931595112981252812786787953624151714163986251355766231082708524291399784097378224305120717205472320384481984985211281418261889494263319993294860321401535776595011556336696644221709879039689758595064751840848279568037212668485573506005738459692144163527927341436410186517063351736579844311769135002758242372761930850508484776684537513176487040531638777292716803863849659919611188397734978157362209789624775634265960645163449478476407499498065677197775913214494721844495263772475765915762818928984886921359551837871069912596353800486022392470468477620352782991375679997105668030327886838975738703733545986859297546400774231324686427403974843778813885150680416289512835874678685540655567017286221253985411746537235145183568606631035978465761007234061302155380290015457589025949885746069219108075403897913905101100814192735302931250801581591786391558573771982460442042429378811682431272201710119731952152985961189548650609307698538107869633949215250241316981653144879756096519610839705559063303713215059673690634172290430839291115613807751299726785695687893127344621181281787161504445947836897313010820977048716318652616587761327859073125446007586638644038898657574929505703630789978397672397765817670867123240523796359259321804018249762872629247742376005509857655541782722787501446474367091239427641315825102636028591828936972935417018275513647499873396037325286503236995066908424526075022452717381956013807718898734432391782311826875713034849543917673384258422006541894612027786416279505282752596023939755842264063980053034840405681890579637835927147773721802703693271886819859572584441486528232529008384849894626694257704155156775744170872284294883901556663913520372596163405678672765313610332842477644961906491662332878456149044881973699123746267356238041919340319364344390888455113407071532993951565539533612240385863110591240885309519277352681026658766122020175786800980817263148811784588808009734657525721193008918009126234497061049490551884976304291602927091163417368180536948750675508704089705168258915773336131032052181860126761668952655233180022597275240325955179601765951640987819095022814609027851333402052753493437281032987004116863014578312473378678345128277722925189612959325048825309847132718815621254504721112533942718572993570175534652479405749692205395325334253058243859547432963426307911194643963735310997445591349006240114728499807480781741509521994235324194721994499999056399984681162825424265325560620019012358759013818147184227906813829037555642780468421490672346191901800088654911894596586510506235165163662917471988724730736123107974325457755281530084354323163512441288529311054486915816566022718233857573076238616376795380617737662343038739334838455190094966902578757381559897982510747752085215014635234003671685681462218555246893114593350601513705757166705411356423340176635912784928845603961923005829748901946517329770289672580564013998234114397335232716386193726986668376437984911400332452999650839423328547350803668071775243839950199400242853343749759976323791822306067146499921654716668076478232072264320189797391383759198506369662090392027107138211038990867164558834430996845992494177208904007617278273090431343852600599862025903810391171982797005630628805070277369634459957257704507489550458866122392685776575035243924800984426476482828233586305750978623425082603921194369218305481167362753975744720366237191418601131231266450891223289392887768560942170384343826545405015741790490682709370193758862655594535407635081293419653249210710974536731227893630126668480444134184167155379555411983709656278696539209245236716445582161914421763601323288413036893375667744703598034318298603284397597122892706136471076879676643990214029795698464498817140246502055202588878514392928296113345822642738620878582148288621883143763229140483748312478864556064454089599621327185565743292524884496090088875045602868926233096423166401268100241170942500217601458692884851246210597506086636257872044525694169740457586229177960641690702149113038629278775178559255830376517565936379788427120724034403355352818379316871821729348408017733687270578819939656521080791728467821815868778443717692699905995668357211117529893602125857054720380769740050544428139782962443135926415473909533270604456858857643943172710380140246098450167751980676182667508580459881744069879244520886039251776396792307494870556202751733164909885150097004711864589875368210322125788746644628594900466642021461301433976624164226639588717892205949279674601055059000964424145313282764975271173514040427769058417840091081420803592449128120710450786909311377971451985126616378110801819530064452871110853760203713729702204535883687450218311385157014852306280254138207837886378754279904087820569318725809246862028973058077682172801827771598788814135076060592858938270001001415321384310038401903668225352087589775916092795439040982272335735990813311784935045720076801503983021276324134097296350350309937809786595412853097181795469061630459459411319820201769601366717756304496807511469712966736966232562380170402643346348770921731642552360671439712041343877017572786023287038832339136782762718831038704553884979046487972160335174795926283572257634568149419157553278620841144182119147837112023657996232480423987731723013421854214234904049605477540071256323543940006821292603207970461486672979930924772537369882899238620376709310945926039835682711872899438470363812121781977205368864080415462582739033916974402122876293144228485188638618135222187994458790129663700515905622170252751311676401412623862735711192451090051580917912172643364681292872674762792951962364891854197942085004360750521571945210563351217674032880741667012721321043670303572738527251560878905969620676208351690389667183126985516190837789760110177221166366971982244407863735681208933169885169512256339489959653076352632348458582067499619838519514085729428881803148253224732667363430018170117994024796782492530726387883653188348489843488140341027663695246970709127984336510249284957559821944537680457788487705695284733495230805524410437300990403187517992953225845571509076269722274508571420897900271361559959325018974681684512343813181611355743187972111892802192364528513729746433006989949546321373945014843165910977972446127930890649082193366650074117910568047031233376302056191587579337557015657632066622248302528577700293132565244789705630096138669477316925629692967375762432243451285911310910902766581555608495060145701011630288959937372752448639331140741938141444652660005234713199411264787686035861538051329271719097440553423296014671288481470857749194347057909457230487352849202299149441514298597882736732825664012046957379403627561579168532160516964925410415028538605777202732449191364080776647925827517800418756700728580355480214793161745069520933026645945620170080347066181031834349748355173841775334601853464783743519915996005702586531070118484600189646130938119785686777252675120904907104016087903978613726826638399775848734430426378252502351839017004784393652524634246830139093635117860856639549094241136398209556607815596675004157930350219879374083192297921699415841384628776700316165999974683874891758679704893463806680315234225421634882981524735389309423222765885127649497802371811060068670301959598451791533023154811176127311532311882801914109443171627583668646277487515525937845821528383835226225334990710760912090674826325983203989182195800591683420919290136007324407401635597655390605442958499041286815587026563616654337060469642322070708956828957826576658167637501662670493561176310010693812541473378997517225871059445984049798317140003235505781878436507388716341198220811885840663924862918932814822396292004841334213740573614342899680147577386686392170970979148676750298195399608953123879980620942590682038912872311806762429255540710820048064484343475667750413232400262221291057299873879965442950390904474116093883891551120850506624705113466495506141696152431312092715442122535397488598627637655013777370176224207498832395937793926967504990000146653871441268874194095389024259532128858707398968430851131623265766095157882655716730453491068893364013423704929181355012076140218555906210670606508677715319169151559697731771715686424930308613293831839190883842886803960638849832379074287403425053385444321857136629390105265791554567369489746284666137734217211842000085342080427058438509246206723815491197350261364077744560034079882878120365185367701545315245137995728350128055288892893431703902028692120250300812889162491203035434450491330165955267581607110151887645403353367062225008679141592857140465437366389161402920632711814465932418140495393460053927658732596729200874153285961702358614408439553093404481258921676806274344745025587504480055056025860672084695943629668469739226486118964142728034345409073828033409374096178827266636979308018814204169382678518641175699983343216098970127971583525243257936973439765468291488841525279371022822399471069529897940937259353538095662491531242509037940099700382654600941584113808169082872244739429028569032622776519320486909126209515000425628965821381337682951630360100681877221632489949098637305553138946361406429647332355281568385925175445943649555441362880855187688871271192343387611905319277272473729442238252632846589756823736997782150512225584607231939602881678415116275722375383716352257225213227782394710213056902890478436098707234253120522878834212138890466989188858539836113302033848442445723405219301227291587588126146777839414761392210990486220102785927153798712197736307800302029596505834158394661970254977560019962739225125257967096794075698193131060459162983173678168617280138725203878751531372749100398151270556809535344922750232293097139507500228399609070883049674576319250690571496942765401455018072367191594375011422211222216651355320531078336633461071573507986442459216461333904683169224106034132087799451354137538422541531097676985659328090030886612836680277302118441360340255949857387218281951692241665317804053914069229999678170841689884871292607311983077732848198740872245598853763075665866105751441763536229272021614680862236100299659123929882663077211884117413653756931575579159534560476974879967030689157128383712240753534323757808467051406087243827452144777470431223864749096324395844357398123001063162927527994152024428315629572180957026525931495951223025194583160916422320685157625701925590243909385217084611754583301754318495490337542808348249427261716266908421322508234877505238677749911490357889774941131090196781009296303886370444539708641931311222260883416362977465004304121283071612411305649108393891453196231606134138699217307176799689467964885893403642335780826918580474638414040475589617262859358915593054671256440364528742602507468337777456688452943396055410416387220854858686241758970871865859562085642770684829066171919475789619916889392029405193119708118659927399004611142842181967490989758160020573465238033146653038726652612492356519696706644343348419272719442672450970943684581792260901492092762384205986976954502752031499589640032984552133672737248158367993805166892121033343197340070059823008162185826765324844741618954714477986874444372288576905719582341424864885039724908692877344520499627579502198562794396960828183400470318908383143071969405105629331452862348232502460900459180160506842314206409590343930767553791535663824313020161109251132056727178038517460220798437089718352298195475725983266681337376545153179663779091926915569314924966040980496473480325183879377573630169868406086079252904519466344290115981570716137669835796842916665591223978361683616151510763273920699955843462122234822717315749374825446387648675832961233127054553553763237625800614774214183496319618587669972131114145031222565237391244760740560798077516308518238922812384280453944517014220512252684462577700507833207501412245038447326831937355330325315253056733251028577782247672846125495770147254461141367074516978201938040839027914950860619081815029546512541338441533513451618902568788988881919380225598166689929768221384299012073236823432085713549869592154489417124563998325081422323923931722054926007041775701208220088458018088794920635972150328737926599821957758500704399425172387769514343703473901953259417925810181590243610232864862283357975472910686391657297551275917328551477486934771323217690503711148553524910864911140872735974571930690455325504666053221096858040202629911334516594081744156205268207264772936677192231671218726225382611118986011710124048005016110344229445147102574019151632452769695805354134019931363994854403511891475955099684625104528168028013592959846811638915799859225787746134124432122151741797517317712897314499936812130571815773620508496726519657949134758366323656305609981073042320911068821308789589646387530462647003624784635145260321762611476271565980791908124520960423340846771987337017940955157139584004429088664677341341989438231104748018015641340082353261603082706947042174946207256392540763709807603178648426789766520457390493816378403239774392958200580821747474301699220672386554463075568736200118583511568305810817396396705835317624028753582074200972060423775871733922192910934983109479399119889650946555539975146568835877358283210537983143108851536598906926581534064157892395386001071551959210787798980476598055710967333474651248027257105004390691642541838140525735323134473385458861635614743552094280756678275883510708432114154025637211440255139769832243160226801752466881421575369470583096652684557441825579727821908640842659738262562827614897929371201343886666429313570486739579741203335416984554108669559214468289390151000258926235373168005738513193548170859857975892092643026523960876978901388861649504757330563848240480745131671442593695438263422885695845767777293231271649687965674616530192857566877104890400990669203614369102296466383938172876772734984608690840871902937602889740453693143664088295014530136998957405556725511528026985230684699738553627927847991851402093734872080353318175070148068100872711047665839471521163188118377789686462805282111981463617083944051910830815859165309612973704643824984690170583179538306676229048186715580722644568895294190609850338494795627409712683772745276590322227906217971529880096990963732739303481918290122108278258996730916857635946896761353375057467889765753920547436644905905677748162198238348372342443934040895421205889347427251940759369614825525542074097970942095804333192333391159000206033487071972167570437424957773883766393558550022783998899182169047796790163957626616305806538077375242512984514557035814987989298218789826544544641062282674308496321657981303199397754916706775903981575934981952695401275156267306102379387661982220630941974455857308686187767996681643917553750454262164642671237551077716334112686134400964670449657219253873292777091469420677807897215888380416122182904810321712765433877776071122697610978299797583604518974474463128484783265096982779809695999747451359442972315017978550890431669554600868136086661690952784787849396944409473121369364340980002384095119365307512903268284866424982894501423447183474455581241018261787751306979387737003062234677950585744530143237332516770123101053886627064878386180080401405890878961641162904240428611734770002779812316477414018270130520991535892010839630050918400904226035122694319508638713995636503130013143241876324233804194872683933033539339631174866406608982538761849717727396156460981694560778210008477678437632106928494827206311654932072807727059125746590861998086565027820282279252546075442793102218023732564231547825066148743006544663983534259147189548041681189500514662174861988988074489298490561182648958415191614757766866872590377856225274429469059554704147562182271394729852199988271397593099049859881869183263088066141455660743320537524405899338586261310447952116675041115238873654997794673333611858572340028839506078005744931448630706209735934474811770553999319423752854192733950518890779163907848563809690375208936252553537687846751146769170014104912310789966877903385305718104405883008653581265524285341366560374891960264845429790193902641634746817069188089932670173246507308313182646560592211096742188142773286330698882853006846773009378454839719714635545169594334215838174924696582127576300962533652323666583263101555097116161285939449151875081342768029249245944054466022728326992886768674479224720499580146043811501441653221178371535477152456431514202219057968088427794273293157172837708565994577698062281140261336753066548983223362446973996595980266761189368651308821008503904118824297176552655991148529752553801283263522204957308311592008079005041690106498098295330850106283160141810615262232613204068860355293800836298281794773520106639941416491618979387792340163480972928115610809150089892582002055060560717043654862466393971382981354094774969619667223672830267761181011698323415417145587860793704134157029140987559580175371788130029757100297241447095654887894280804695299074621909643525086704363571829033532611348546344348772661112084574329096586223097895539522919556027549337631806909446915220752771898642843295386276934956339296227169835614096599758228817416856750121059346106444738049344625590727302688342969033342053522241026134349225508159513636192395747902522921706711541224043089442143325841449158225792112766652190640013677243946237661244191353131030053752802058664329595321518053721104623202889627300824655215119512994033469581153367659643687946432501875798786359546555893519583035821903434468502210595862499398714311731400491939391582283511328751835506486401503156262676641451733444469416209565495420086583378489538809900026037946930844816615008107240671879116414507485543633269539618389902333861431639382450194789796967848417886890276722585085411747147105790712795873996166530283110097160182659481935220553209911702680434381310011270076875340865277767113723354243159436710623399177957680780601295329338948678693260761065898634288394928722483587760046919058411085706516789173108293578550382294103841180089345706236799448172210189972867331945270767303186050366064656094163507155260855987267330918834585537981806034368935246769987558025051719963037976904459129775532130077846282186647294103206554660628113503453984244519870551147609315241862142620286869452417286033265896831596798809617721730983714908817270354010360703990661156002801788684183527625478183877678811836191393354400115247835153803342640963594942666232466216502053926030080616403802439019864069474413324138315080134160121906955657911764476437643116386632320361529840268920346336227112459304300779893419984569801683390953244724771067438658607992121937601768397920338371536308667456323284025897262048863674558497608546869547076968606689355914792428924396707079471096547483787910597750362006313776503074534534923233255901913149622260161363825327417472207060914760354803612276277997231982179436602029034724053829310239560000173479803870619198370420757162281883960679287989258518837490667237028137111542463270974146815893488618080222587480058169792914289498447652098359038829875432130005133963280783265733302358379285494364619157809870508534792881221472083100614847726306947817941330387415812493614565721920356929740207849086725204741878963605249684622582307811636380519747579798182224533506780000922640412137876229459658770974679792046275365594706293221777475022597852083820832274194527687708936906085985793140874830615264039978890377635602084606156358695942732303359839308363027613229011014891005417039370066651306930730678399556678759525404727662187233069836462678385264220920946901966680425200237802532607653812999071244173862954596078733736119791987057814277294323957345448706419313532269641176283210577983856884013339666341283069421570069103979819640213883828127604514630764282870820189724106689445408728548791478804448570980555336989103726740087992810359510064894635534822605115092780171025060087023686631077294793078286817758688054352643433454128340380135450856630414281379817822176327354269148185660926499724438519099478581167830430149932214769060204981972732110674593066426290409768156600691701265712521810968996189928052092744888614642648909500923498396918351577719405115460266475728658395588632174145870490673325613454683884244261156088190384779455810128173606982530264913722948683216203402756459849531335499262589877739075651202019855494903123789371281515162334335646545142756868556699053476742082960516682078103551393971923802077330113861281946964703311009346875128920009597813419824380287636809025167933370731938367024106011633770071264444645560771013646303463751440828852694494579386230310440785158200533593083287682129047765622980691752851785485855115326519715802505677283681836866078600584335628567144125147258517679166897708935928030374704025606170639423103605175289960128789518488858597640270104994503035513165855142541263770442011281936079303623072842342991962722057500253571818469188664165527249532046976635661331536676127944074196922490078971246322124444511083555717575012756366696986814797679430726062473410590352858418597483606685316362795201186065198441366338276803885700948602425656528719640353454963186160852771605733360452951770996601446171223575890225941574104805573076405133767312430071061246426616237921137115643070594342188114124386973244507157629992314996940116109059888507368536708120374756542522810483137503318954632834521183630735415743171318206991221240813180525331227927942414437868314218043938422518934099646706286000500291821869115149287900776791219556712722788394012964712620995654424296367523010963251084467372165267609769582467589140866259068435349341934833942547175258950178966477431776851919920878398519023014841370510847681720675430732197097752882838181380378662329151773442451782848480133878956322128037410480876795406143736576016165579393533081157407302364408809346700066102450253630275567736908966083795467560144373924651611844912079166930495950393785260975014315003144915367020053579728912522752213064986319677404273268123214664328087558855074937886447762193593317429374814761840072769342133216575085725407801674306703882837438747207863276914006289183574143739113437792576369359595143839933671473165449197340458709702050295160257653721506827757983600955684818014029857008500024589278749424329381964671844268007896825452764859113344744654166607761970249210496870136666655800451674057003632342834652598778969153899738495138955826666181992199648167419463301579644646099680219622176422300789405819624690038992003888806377877480267754853324536688507447554417313711947092433069407231708341144403157661144964375381284318994980705540165586434730325156894477689210553141794159535276017317675677358058416706476014271346432035267494821709008678842953864155308014569225936961285158220422021112958182780126075689663494898098556406963917060573949076917758643829194812126878285588434221701019639469342574018023913036095297099432790992316954167000062314691197505309450024382058325309650450605249228642206461830560806485547532489336608713513294170202913776834150786939602431903153383124615646905706711242222704303910582208776195711732481060577345164196506466060322640454629898266297754663441201997902132705875216872702830661530981911721613906766520736586777163106205938822339218753821212990840875643506488031780868424567621782945145201978424042452644690894039530038328578842890948139126897793279112667196123442587331105663493107325645239907012906009968686107141581845511012980770988448951719918757659684922269344750754554347163449906397066029795825624323084017720610997180819962404155423341308005790455513307488750656523966181424925376521550041219246988341523132122733065368612455618047073160297992349994852817023423904093494749648131324040271233001357241171699093797217054171684685008196669887867996063169521002042206214127093871179696977717402895580182756576785341968128021116382773001200791375683580988040633635452756525776325461148403411669688502250887245439404996330375165908638875626108846801875971281849601100727680496326912511220819385194966541959680097680171680828050822741174230447577711543305720618291888516645691796495382204580056176259364316331350234686615958162230568294172278372760662716748892630157929097827720019626368976632067939546214618339994718190111984535855647731240999071618863083023862631190996876279689054493373696818073622993631137483525009922180037498368901078748976053800052528716030979225237980686345670684174488853676833702311764352314736618267878370889961606857724454408338652976680909904603714299525112867790846147149186016898513067560270668324461358433981302398738561966411482670510167127003037677921609850620125060077964112976195970966468804771910317157987131227542543399339464214249079658861350358112318211711713244724754255054193346109001956912819824912547406322146451281667364961886329709352515788055064912559306098338301334927987020926259853244359751563367351647058193760808608900759709684844678392950604669909027542032690329730258861587729383154111212210782642472466259006558100287245657788171633870972892758205784547941332390635033479449477746073206207705711769114859699455997856007517830392734756222255871523322902076373615037528799109829924826054907912788256692029072818320385519937782491283107940697113026034880572200481497271608560606260933323753372762167583198356866559102453183852860349576724132988352187119948289821593651305570158227855703138430432602440041830238216251179979580294713120191312340128979223365880011372230000391638765347658585761893449477437868908806142355086441986093302698395426392484812193779925374971674198510987552972522735422472192997907354188646531659555329355667659485583605597707820168489733796876654878799213726328605218962653166173549753355234555746242496435545718988231433823428993232435728572537198625371456492540800026312849981043243871634489326287008435689388846019960470531021045072507221306725410949426285890134551704795161293634566419703213624585724186769643892369493056896136217788717476972716415003155530961596481300038222352702551669181311934933879258182857212565123061749826420681776641439305879470770591657716454010240959039820750850040475792844191390984203937598418308273729630363150281508604308917243480665392766523826715242610545264876012765670572810116280103333716880078393746698157768843656890010324226473597689264529737508156576278117037212047424517863815978279351214458378847267611172985028597223734134973562341626483964073347016697165020271002805448537832716191907455955262172555014313269321262364293898792954459911312001579049553018731116405137293836040804923889719470895546096478755494799304407143163865596686069827995996043073073055714024138549112067426466548773778762520504833040925189988908082996816757837663282752661569139088220352385257356359634479906343292589277034027457605928012624584886235064389529114933254171192071544977829631576672255074697530136658092793643077526185989143928251472940504235163589773855281658965290349472265662298324403796594196257591382173363138177244757418441515209087254479141846749485710189830336594534327495458271115976198611779929700938997994191413899292657329036793346404273836155204969330644010945981794933458904852105484856400321697037476758526956287946458332283586780146633346393818656611917114614363578456608387232884670885551023601989375524922440112857094795231746990712924500844140374233571437788130358980933920406653544911374757217549087311060083908946976423166301148243042359471685028659751556759120062143875622658419326361090620151506660846103924169094988819073555201957648752562508508696132729160429013871533684808227524923956457798484951278735515520184879974642816088313335543420346565438729043863501991473280427881114779123119129120252397343963905549916002286326084818322560200763462257701256353466884429076401346866337668334447952131816106009423665889230718261866669431955622784925917020276065188977941851275747412113725024564985611206267025339149670189925794709686118435971496095063637956523248096285887305856518433748060924997857418456902580034148397260267524727188203143658776069947329313418797888826920418158389256869988012118117960187128574249695705498333667176377094336847023494881788734777505764039057437514540958130618496272097301360650416287688942102254957666161073568713816290307677550862831678838106536968897245407420134754917879221785014112529450526605606676148127272499849709944119519825134072948729733244632622645142244074795582453536624911664111468527811976767867807900199013923834768744891522993388377050409356484985105422747583926733261609204057280482960771246877874318032580506631409776834652393563995716249611915600567012674197841334063714897077010914173903500520952453467166883194098735909625759562198227776252521805014429304283633303460215434830769912011880897038332226049826619464232841255256660592440147108071534710075252296320627712480391292749207473102065664870631768150962852290920229605538251886501399642477217293447971767972203668647093321567887531448197293784376121908989648322589337244236270878199630513939020864441062708501545110682098943651705785944484265159497383760056304718201811306783313306822394856007007019127615926326913202068725672936396464209712292995063893040659467148570823982844214039870618987342535803480228931292960879986338738450696290237820132588252342447636914800441870630014270507492322317593663112874623192841995467893756552467837192391304868258124633208526861425596015508361250260824301573104606056934050300204155165446674469660995320645060981325147266251297330786988442731887228383081026259099041698554883812169928547426546119711138300263272013999158515456944848165329890303649136007598129554703572283513392578499448909279378680167059184803323089322320458281925953057779407954856759421099154772369623172373805508361723815974082113279121751043423950615488226574402130505692097565183081213159647812533932855547472096540127309372329872480148441921655062047527141583856565350290769719706775633061518604243127099841956701080773463349516793480782187457505039623983418084897549048492029330310153415249863900713952262603969013574266839947429871681924205336054780124591898383745619704092728474908513319491925914766813993118223723402569777779974662975736099707746237768791696035302556048650181460199333290213247676795508660869662351572015767130147629213034071049588794467175985422313483776810434429915335743253920483852231059485900037874203103455237736607855474177692717173254027761963269230888710981571713041035788639571871789485552796216996592191246588049991383702594335117096438592113728913384204143525566190320289125134604814381428731919351219971718204735068011369975816759207916301833547979811821622682481645191807149086887965455162710772735642672964588771254306464445434844329770589831188311282656881369083102895343429454513284433046799504536114469814461854491094341749229362949752264192072960962757331813400804375351107196565242600400926335658913177337330995045396889732897568254055285519040864658787803057540779624222562125188439096501791179411456275958289947997290395627394280759523754358902985139782751354008982200273687384109928397143366777679327480698946543365041287014831387647633728340224567370868672608905618399677411870509451403642579442646168029798064338177395223311475084333630594053127048783306864251402976398236945385100448792778415552664754754466551787392554856019013487253040825129606994261577242781120281352846713510335957813268125717577739154187882282869170704387534412969557451983888345677273628959840847758292208091122459338831332469199145189183788225145485930044666155955857113724045127342322987776636917001637351413010680419459701303965788610127124406762102396654176104352740661333614180444680496569337790405512567362006882024233903986542236070124756932388324717588021906187327932129646156713580553193666283357915862899147953335410608484073937034673882950232716795436187670518728623785361362281345798441082226463401832405382722602242447809546466255231412619727281395130390737371201504939841558691141236607424728403606544543986972509403363601592224162100056823647962527277255771900071040705471841959767256918865267430118568892688980415282306665106153377480478232764606232198413623108722868417426264648073946122315661391951628043424992056037540792180537622821684490235081989720611770870555163540085626501259878368785305837483007733398366394831780820382720101100872265036155751422516395482638775640187818278817414478376123312473709317577234365364280655228773240230581531336238468138063636759842253199431204626996251013738643483368410427424392528179765445718378468032111839851815391168789478461126722473476395537447401836707263956983087792017902923692761217814815094948264892960254560281208902162943479813296161064481446040985897554114004948671643288365234364135814246933321618918281367094010191260496506486885638214871291356803656863967329079615377084701507063249247708220046501486298606152052686522833353676220917668764427618529239620967459266914193096617973463353545888517349421242419344965771976499085349899060838072316089089802497912893122048864813091868418972642256628482231616450396537340308705469797288989024431203037110897049488424123010504714870501933947577341324625542557276895148983190862294008574916890489641839596694627353616532572949662995736568751886982208724261079521113648438124374382176400194587582883439138651520004840112173613306325446796907908404374621064415043148701834087308795355849525658854202308380293716276866137585605977123731871249321627391177329028543450683679396105289629705644809523220562040691920722969013293701258113456361557930203313254754245112526995556745346147342588288391178610825091292687886440621558121563212896719251923014910410336575488782886453380316362507530415895524177905691098917474012720477650762079640608526395849640757676791780834001847812822387847640264196575314447440373152712673594431758072051867645263820626086159276542135139031973245289406622970013899680576735305559306953243770042481766890758019468863358886235377393378282217603886590565627374193058689384779560963864014485543673919995431798733349561868693889956083584309268516432561218939221277558141586079109512950895532350467644610913232531781470637490233125944681765396716224006955557180363626429629852560705126650743429096721710854283099819726257991228470116977761224616438973240603205188388887385307048515673635954721359263615674883203808783476490492411988229414042098209032342124868842691616450985467486048567283104272130018780731801070528250439905675289092085725484098574771039605735055687968703959258308511196157512675511107014433836301473091360945347268730632091442369833224786321901192517868770754344386413027529886341329821259659926860302805638446209181307439480972625184470352975452589900614293566365854889810866637822974225981661670317313461780614756177543402801077543077808556591784980904868535702135337873656179499475790642148002511092545823428214862160082761436053426286549366468837676164346884544309230381232413708488638628376978508693550221347433117299849329613346352013682311710396885733299721855667268695605080402970868082894394487419061226154919804891211205125537063184988973899747584128338168824153736122539161828612267965217922071746881913760062055222735085989952955410634394658789632866821700742948295391052281603351146583673726057755318571962047723524939919402251718752603754476058596948315395323394311695018190144616532480088630143874589994674523866674543555986464518195080610747125553774853843568831137690070075800119147683475667826944581531024770354089350055906199262810211331082195777463145083865601185909774790110240337746483177628125047745078259722796693237615957527819741828238802251021555010039632096884599329148066417143678009524721784258376210254290276402871238843812164384144461077072869062192754451547728435934298717299747917615746498033292111387575728812827860191129475731858332076561524385341006121204101253579869994858063682264199080602860164938975190851240140898011627928594007800505979214681233759593534968980783586629405245890229521891747490268571453766928593882378393140299683329264937831446934055094398712215306151363397322665122389013296856193056571525716229319428294476214475341011078782971463462635078076111319423008613922669828540203974683510270601899416992878953951527691280608722871399129895063076985052753140688818801384485928815945958019706046089934748401525345508990150076011987301122552240744269563659746605492417030485804061351513046235346092271858783640257708598491999868977643020305178719422609751539060757930205068765655732879856015751385530711555955206647235471146362839619524369346615906416618088410982423858374266035918493926451045537085602636965816924572460671448344974886457522056961554109536527742604472756954020135604863776541797659764859253128927804596246142433212933433078527011973272820433091863385238985350666465978308891341088629789285889404621957095739258519008815374847948854473248476821777912800220118154229007562521768171575241521481818056681881181732547496873618921746355206369174990042682775562895945002292549229211275822324859166823829805183262578547440956046717625079421553633007923985164475050416304869523678599415930106560221632606250979920406467815041074566280692924368007006685489020217519140072793785605840520883586630911907553018721213475916356515311439835211989914455780401993531691008814200935151900251711735042773552823320428778564323320766397333411679661055380362535961058051607510172924834868524074921173080422341038612682262669925921611963085514010119771757787865659332356937462054654738484149823896600698652525993880522009395013420241581986159070831325934859483357693651246080519572799539256465438109057199975950087666280329391884968504956064867138635840454762134241975392698550644539202436021499467528402420094311825668233644657674906007484350955773169663364407261261290320256481281933783869893262162715721090491832043083242573487522340911762845718332105136196454735740136695624189580960772577380300237829127790008094433398055629000939641181800197533184975236473727694810242129657617166203212484494380393569411562175100246989003895265329447266138332559697642574243820065193139214472073001216791521722476958621633838452579116250003353089305750590008017443599376169598851795243845975796139746581897657011435004349896350317580956333955196584526208445894121165012013909703859097839102779894631962070048638804189127051869130992199166565642660181372852543517635815046331915447125868874524165120775883254960301766564110818228668915174442469046320258742934603112691516622041739611816348627527064112098024170174542512885610764221191696229638836437879573469838272267477411288662152209323291050348414877689902705340579803226057763895975477313552860137845647568135294129939956427628768681773710636922390767130832726557965182363203223495562094898989720184841664433290997235762242278593506855710098575917288253366443158002280774559434131963513310555374748989783294287793083107363838695060537098352578025597011487264002196236332779580455136465635374304194418694101219472498267366119233644396549499224443007241637919167476464370134738470174337176091280739529676295886851748493902535153003588553046986689262997413834292834389852240346353934696233695661265187090598428740335220575834919099305751196169866519297666488601737799046039431631466982064473771507569032989028366882989292577167096327605615552646089656043815763436141735342248575507541560457603623842811884953802952755558450663245413952268109070178243933068329081160019689846730245957482717753082924428574374623556407256569482621955470308211025142037559884257487492847878667867774642491355797717620624695935697241540377932353671757062698322452525541075443836762210240387987059765300266677675938042931757989354760502636196296895596922659192138374483423800946902199174911190405263655597625067266878566129365663072077692190081238699535585986314435722593026708136304139539369267835300087034496382355519533527348538501302961261539324390851533279296624784379671148237560037714636116467906004235785279650407231181075146599825210027057062299960040078033614710496158077557843127329520455377257664747906125483712894125948103285494124735185767683364826403646589587557614695155451666195266417025827290214024766551522971131594195440911441718847404721580490891149713115646339086629709691005979605952787214280674249369438974946587901337395918412481149141371403968065792035548775998950194851652707197757456857198641974243225698867657365833277524224723693993477518926737109275424676001258829068610227951394577134499061997599824612150080772126675866780310752000841170312505149162052477491549008416010415772713562263086605940013560203080013587374132015661497418770310267416568668815399754454614407905101873651727968885375979459146041582798272387049436045024640092728970678206628850753285620356998788053138757284134781916885724999472777256787398384863341404501440051399963821742904855024881997946962496608680954895774707795221030217900353028702682822376287045057522502813775756138628080353178212571528778741621381696988682823556471660505373571556768404527067029065498345508066474387652950301631675903673343678747885996408068520079014003767781371445946713566216245364779129767467366233170749943145026958852308663922920779935244517037295377749583507359957911400248216328403855291752337009101913889572678359315907401809849033429092854609049704704504833377191531381689894236696220382145652826869362103270461053171758259193293405367563594058439764568045345618765730985604852097914577157467843469161184295407116620026867653323405725008934526613513013140170347167222647002774711222354231367507319207241254193002387157637301486030442886003477742566476335747948988440314952586397858160799081786063773820211627553446118670651865076478863666363934918168259152331397250807493671377355234629438325196656043307861413414861478547537368303748585295898503662769810292987742167387039686874436671704352785276563647869528582341018154041829035342423127638434562309204519857267777677945068811494319610066981489187881086169657771936043714166937801580691956254628601045667593417832967224401571953826759491548367692692248718016402028312771371997891149474869171847668862480255400337761631350683476648175551772348501435853523224316255392834801623641541902721110615392355421643054768446995957111859641366863013724277369773286069058925737087696093414357337236300086648794161317881785843670201425154153988245027306933484706717966860967068832611439298779066696085089708956028901388357935570425176729654704200170269332503414231165633129459890407026120200471197176563336753435484616405048891812023708144031460617098635544992526692447008171134158380212379565154146333284388780570809312660155439643634429734867700215926258717130621407911584280005068836234552158248949642713296184622802930380488012520954894199337962134849743771546130166423643817939866397543878982905247517888401398891468613550553127031484991929355925714997636212437070198327507973981575625220574819118114698710962979313446098317911485237590770000636744728122656418749599933589999103862298573366581683669313326462866481109156245835173251792454718847423153530232300798179042112852381528966175976607539188538587473817946639488685999615042419514963014242728511819800574439471350977750676714777797205928395321754155159176674488934162168940974494864226402792094935159878188007640652058864748236616693604832472955726844233988560600806939502038790075072373706653183687756684068952889127091950919016383134043131104324022676409254719192378976619606373270259213393247840640031173003385360876471832610176873963502565891289592986368498563890351519367565369495847194488393345794858906318405507006635967317091209348285714043896258046976422850129688350348284509784162804920830609478505812255411436027647439299610453546815110226717230614785745838269024162707917849502529124013235417905104729418299112058481805899212973137956610014285155879366468558004759126055872112309493276599688507413097658034329589219150520095973310867609824093284490563518454567255038914357191012659478680808528722733626519951135130781596889478300138529748035537156993046615598901577844735105279701396610944835398880940014314628748923337466507769080210301350135000013942224377200973340637856362681179928524005770695560748037472801782823956723655637182866420511731387601364792746755125964696220677831571919791801719122425031288102942767752498248163163195777416306175033814495368028054752949566795589414603267121484113537970672953508498057766742555544727324690303311283581860796272262935557962849839002222191733588784434284624886560789673357318620490378599465075922396435403694931239602195582904585432188628632018357929902593255341068103065693610686371219220204890510564884897501048048690353190174010185250913615920387625041250671341075770969472742881318383605859771596822539621253518243922938312831746333384927500769225807655266224410752700216732182563426986085489773863844013535773785431187199368363209239713188112314169992636999498963158633296091190341559625555748720152504338312514395385417793573387388632577601006041793772931007941391822334755052463920117659290731991963876827071495378658804797010620545273959404363743006881668919953665695228736229189557746773800798076115802459078494922852436498520071871095547535705578201272666031278041468522653529144043382568172300692425044816122504689653051986629868582816146426077999672511464370379839069213382955721687517445858383928002173908010174215826071266204749445055157069746544338985683913627212076520359792801371934785751336761173821586379529838787544574417204047108161190250660487587848616391830645368512325340142585124498089039622460616171123116509586328240188927379570186463348272740080010987628232826306939338742514044888397014209814633755325281505328600264102440164814606475616632097011899682998937568037014949110686657126753897014453320205669333858106542103645354014277932704184309528826532770419123802104527928540175745080838154700465694787460346616325149711748544541913789831161084673115303539959437717942216669649034484608344959059710128905896793296243189159120416544051530776509817413389178744073045382636012004491456252224345142293660144421016738772162884272783992758818528332368071315677827123512095506407068131870740109475051622038061664508845606145253795201230336348401569432235412336065421820605281144981712922144802026459041658191590077621732979717174142928550488911615392139558102942306290767457305226184840355780202302373509682298659754098855376281462900073839941954577069517451041652053893718246874529658729083802295292631549390882263063160906582732725653253782173914261437430430346695096195534559810794384565106231774752550204174895648280755256778322646435471191147704718373297495372889387098428062590768727057296881466682197613334107961386498347140721969666647285597992859360714491944689938656361595908084028920094896604048052843621289620715632477038941258585979842371864838600472299993415547338814751271441297234541277483114935169494061371506519227511326341315586464395233141954165306916016840834041642612648943049535410939743087397362498910143394360782553427183599635558788440039540503116371626687616376426376515790429341796534151572451187304167146051664596147652723419749637268436851828517944106541480341367595523584524964797091763602632548875040494918674440327652034246989043835612418796757117436447245333059640937325013964135287442786014663048359928121806060671871998792797950318163154920125162163197349549546888776188556425591480693597538836508574948082420633687403810977279605788543640551880916567665812736575537520821229846226510299546810543946507416030207042303951408915913591830137440161005836570033664712924755452975172437712552894597179589440446046234390008474552759959812450898220300860259180254569805942465969199043676970739504566328000641786645298075348937196151016021190889528704889026443599881153513088789435074613759100270106525851312438683917376086061414638998697949013012090377148627043158494256559714124519550019773616667322114758212463296213556857053838370729615476121616935042253343777521346829985975830246388929721413582232727470817883010960032603756977024111496161111658349501961179074960524319267070583851124440693436716469726555799052765935235320797372690394614702111438760156354528033517189356640806545113878950693249058885203090295894915956857228545970681756342861739199736895590629985629909379791533425580545804479622654872484142819901197670551643741468417064705975538772286309834466245612673174535781209428427758507720246814992283617374947387427924513756871817201335193087236663919697735197848206457157985723532247322530605145135407666449918811375694397749927549198540137662050199550446331748552733402605209783482674265172951550653180282133125457645284597132627582544098660355697672012820980099241859626536114407913265097703555343719074223966822690856324694782914644607756694059646268130784590931606966303963737397157748538999316283773992418378836982787090790807301347810648812849876120935955737621997032289579625514811608654471284670666829298067332056615766683674762450826657773856693132550187073967314126330919469542743949095276554179709163926380841223230723601549290881567846070628074087262474292823695921387294502980676861843172686882441480941321252674091061809459646108866511892091289412035635418823036764929663005788497922850598191034735815413950861267657584293804913823879531535919889192585734762636166937747870170004022602573153586813223858077583459415679921469019122604809598800155674485146814419263462611624842682097168417149639573441616989564307148831296924027047887423072995005225010026038321054102126592905653363714451902210592796542454541879664329556713131411337273067967328365659506988780617681043333490888713311745051933375420262553329421252780153841536759634767580035135063604754281882343204328563419799684461538720639864473635643353529859095667595984177764834139912995488736852484775877239489620526331983283985596308189425440427646899585380928035552607865578376409397577230271262030895632996951072580092600252257142526306392174920263312410246311869451174746462278324013560335525338863253925548193811783257545256619783004079282433928131521016661675479380503710274503580768347242462928128177076756927293243787096658702332584955272306092172381232960745992348271916652535481681202515094292280350927046544946309059823472248855615962495347172292777060861944582692425238867348254988325187157106086703409030171358802708782772388626552335333329100998756931710037739105927110221044076226418023963073864601399126078833253193666534648250835043521667314473846650249152131490853280114053815084011757737202836399687029540788400283338981973536990305963356441594998357826615238512825472392739055338753463164443981854135151909511330942406021418108089124847543706300521960696834066315295072057538571854020882807599236244152874820218945963541642400244024404054572215061122843283128617946997999449969659367541313698488624968946073548595053956045696615912870770712768563518964643133970526971517678168263304635428582021425676935755687405131032791100688178379505646307128478046481739275058950428977779312177591268057181143910411437401204909740439197986382181103819762054281494748586613701818114146304273903742441588964145606128153848288634716730073483431498878382380029197991873476669564298137017737380623514036320781965286873089942633391565213656972880933760561055734670893951513541182005524243663094138262203703045208924136978147010744648323622101265702535377975935908033450697384745072394166681442082446914382943905457593462484606269501383895049132022339249409673852730017541670478420676525856858708114640881882331698400581845019069157587055467979985649226721905721633385033406181538308292911768206378202389002624720735104094119528312740172247379860413190923573499056804011578802166079811099016305472945096396651340816911774764508300733387395223286987210328193351800166857582929971274915532779392330841007496443274404394209361213636465590257743893118266127129443960072281327750013596525868689778027961164708751115400713508669318878421209474691148431326430351080603271629233866510032356933985419381336872626378415391095193874992876820068037467146737408756233168950801413446592342221445801834839110898819404159500294972987008448518351771799307255663176978323997482936974122987225570335851881349841505028454150097412482971764407938412261662241054130080500178934047807517149862592541573165164507757772045782038865751152617388758071608556861360129120968608108268289217840874068078532719206391540371534655382143208154169916095516513478858824230792098072785910783858159619017368466483810639404767915839144942039841823593013550522885830054678992078783779005261049376403179456116879644958424126944716819286110353477349872475746579814552696209919235858613882863284132174368867207580926421656279703169736112514570467455563813153597059355694057056039102484296022376266090926455066909658895038071340656020979383216719506107155435284198917804760217096106035032949756949234330112278430050985191948009089112112966979238594822897934558101562912362042919214435483115247766866028449883743952529844718218869165717431598528505522140527891646223233477692745408375859432481896780095921590698815660617549550419513252147985038192687042197371845583189396240211683559608573386940064889531356749671697037271193405679699114354059469856281251762085824080888907642610309500511219092850553534836438675953343470531840620801678300236618833874107698687652817412500158948526260815780844923533019155005742997329234182394922631899786015255478528524451149589677876514567218220598093885206836239521352280690105072876088938510776778686394300384698058035054077782207398359935189518495190522424677658150472530513930642593985216897499330716281746833219364072990052892918011489548109251982730216461535622465717980589287338428822656074642134385572838536954606797209223737550286091826274146638230131223214522998994693009915199818685739529060362589287971237967858284248573764669647654093601802865322235881227917988512312619573831327650613241843575348983185169808742627455637298157479164711915024833332721395470182858724469725828773731392516325321212664507464238791177743133106219356413019665345665570445201166380159644876186822548266122087965924306031856738233899143792013762106654513495365939393546930096534720085001634585484953173763788906271770066529195550958030289547322471796943684071965014231979048616603324998421446128164705126521352979278174434227666965780785045419136667282305221875037678569359456484448697089560082535901508896547332981445587300804609705788825327672592280081267263943351696837499516271518187883361526379442691218886519873457874694888166574078057486307914834392601120468990932272542225392188427728793795393895672939351480131913289199693097021588049440042814379740191459862578752264522577969369382032963867208743300030381273869459558235473802072044227140715071339884169196462461914824951829567315938477756444996185142191062369491198976498164725927759988924175807971259466079473597404423475546361313633994924019009594742685479595447792808942976229582502531804927718069644119073204583032492042597784891449626877241999723309964766675302347716312926518557904093197328769707948570771268189274967306900533494573210155714166064171435949683648848591196507042281214462921686037550540307491846510489084893241283367789206086107087145751704663024490840559789682891452188917643482020733601170218229060540218913077754578695781408123918036209618587694966902797642325806413879877376666828897229472010562524619333186696692000488950591074922378627927233825293230270261900250986083380455691345365103666853833923047730760781246829663760762690875387108281437690797226181018510864366964061925244815682548713213721378255704242504148227421412383446611342475754059602258784522074151745270530138223409198062414594518572877779860930731844594314815647294442394146787938978033008938983115275701213569025792390506398579794420537486741529395623092241886988580888696813111713065405648262397220914091588147314056598601303305057819559092962145781456862624793026636132297356028108057116719965866036941016568202625245117203522698493553664209936855680429898749840165693462429662239972706378295450353765287940135424425711543479813939295050235867545120400041173989077125114546812473652073977150254535068696368109630811134001566457945695247336791528868170532899763362791634944463072746254494163967854151624128335185566217198934831624783162830517133320516833307879851309551885602332782423417939871248180315755421833903496972452966785500610878696116499848720297419075883366422012892026164166371830995280067444634998852061219522813580206040750361331148490771604799063110332944394928749857997599665763593381565876764312698076210770145030894378159375145846377380447319532850136968085679543735762768872303919676886728742796281615541002651401972438271536939856669167848611983226584158937486611749342593828522446046464390387793335572649591021312526367461642807293501139006684080452574319028219896144855419214535946152497021931952580764694415738887715191091045980407550923884416027955294764815237307081087204810933589625059445736271980136383645817563493269998941983596055576862928407854216195949932279275755160946776746884978877848293916649273431898269621910090256612179493234814137173928881519849226576575951981891216825403521383662970340082405425447713972924645279762498796408332223696313447971445165133462197777539965420332391314085944465062843380328822266414325483294957486573779218368227722386224004884935411369164091440525423989476268942999189208761425675020555260925986001569895239478231050254066502801989420405679654446275625386833850863935070586528690490450072027308190122034380935716404508763620948140191656809944865242977087425126302733942294846968396072778808790753037011908338439024822621796126136488167607242235045170250799423018377726774409026031722855540976914114287366019773182539060714495972786127158880689149684690592728168360763133957453398610161194894999668932500368313272159730573539104045314018124277955687663783497250544796593308881589653802913572133532841235288392872549567352727626930206261951740574110212362105830526777948823818734911868732787393339152474178451704571101242991489265899095864546845093248417678020642519913340219725382492263211746797218278374052733310223914199938900653849903330227242876309864433040366172908020283334355879544616262319148139040540054183035465868467764172855918915578496836533850446301946879338071221365942015685570771235615859414079710717181825964795009216475733654676884452951231375603819512182124443717614413118086545098975712239060784104001998994285275201030127550054379318249949592055118195467902976990114440653513456730207068506681210051545036167090632969929577289397514850748912849616828554615785081317889485357161306044403688308881354084579695450648316720576706378854433529135682936320267844376444853230937729453082208551813271848230335157822819335121120695190521160316975045107129887913795303159565162698416355913609439024181157242538613866714628181800989991438059446412062215483510410286756644542582779386384131727704460805168862112152912349088222413148572256946066685478345246158792347422546487691137315302702972370357623898304970045864460751780296348757303515329607241410519359614776905687705324393414125194145282063829167910054659139914273908508169440272182962699519799904850410657491451017909322131595383907924848164381944411927617356202667236840186600441460274778747993247233272843453789879793895041625995602393450993798883111010753859342091431868151276931677210778453263802018541416287979650695097851881212197500299737756928654256852008543527347352825677805095047852567166215222181086693124978554997028265059065295469322155652547647328313536786356897090456201411463228660169935172833984256176703859577253196366599087729399944031998647178406670939024450392659970361293810976725144134215928543902173343344747619982460849017439143693286440196295725185803757837467358780345866640801452531190267497443507921956632719412412059663905005129654255161112021461869055973002162828999918883938135783741820396434272878934046975083028234154973371680106177127733352303474915106031747165348340815002084481990229596147839267427927878933349305202473775375519035891472789732489883688629204818229788193010983157345411574653645935451586169760382755327397133777996728741342989842551875175131041564890532381416443101242689497376875104869041336301435262239600381199563995806002667244931553621757156292064541142378376791005071501273568139217722972177055321791526833888450963793503180973428165089688159210337331867911477786244964257687816657265290526222929770787798931497355669724747650158311274251483233748609984993163936522269832350603391681588816289681465369694817094540707596145755693425512878033232221491825513632886514806195883717451673733787332049111961514026381520425582356131025655721017491389855922130663977180988112711703752940188972565266168248185506346354985390380435327646210730122064964554241887143020643149855881125350807238963299821163684656952780530318782881887013101763431711101310233717173772093990041139454765958215663860313999097290757795511213775504205816982441961568638996046610102564743533361014170554962199281088314781232648974937241906567796953291533239009124636746145233087293396761920658939092959638172271943470195699698293230451817992198894114252737465208414431254152733698115555889355675961774058711319781124765906868143173327765506302947484862200532882305829685806538740305784061037401279229820734774203786192071519885853210864118233726943520374366993711206971129343732706944697911541187542556940475367503058759988284106665690587856650974649758293182359105878268744711657178577741631880721331706213141060054932771028434793154947758447385382074778905542113739843085773462394912290032113967376735310491987286573062281310183666724081969572706059002522690391521989193741989207121829432688258863530564924085346100836296253459738602235438687964982487804879357545656728041558507680149419523330535892324731463604226111712691324673015347276728992207255289778057588198223093867701872621835925072654342007347899305612912661998062466015215113888213632096402403711220653133676187294754041135362580733521277661992201581245716125379517280223915576623444512430916160566808460312856945847230203579856198723199373771733630424800454027278211165641215175723785974636661477950629364906991700800445991209244248256647826308272563907204796978512207871170415144258034492810629012985135431319067844834593908982295806671539320657959645599178071471673124430755541270772827742513916534216265034058171984463543801942276280804490159373490450388137556827746828321421876127035016994021778317698688879919658558095834553717858305861298271444546035445701892733908950361692807700479981180888915467246588688930223555203321269872567510825353108000181754778822904332663943604667215667801315572848573899665456608899976218219788970340369081650770728930131957269357052093640867014610938008123989421735952507944365864350825302031371816058487710533293158180292622275495661779668159086149641526017928971254858416822550256927295539264625698332455699563771846587018195184225844971266827878312933401586792883695215270484024436505401747435916423699093980978340428326654396162216229018483673783341500592257243543029897315478095298004648361701681303463150777782879110803571083206271247829385188603553015210509655545186016221386608358652298700705957498150335732658672876851390486011006842551039928351644898921516129544663083113779401804581921359674174543548170538949261123913513013464750946812901246665823069323777973913347734165647952074192587050915443333005640130852543209200412551373513086953986116409587889245992614860261765933646145677327819743130740223298963651779726543667719390451837131660369165646512783981516480685556262444708781925597887138610222234401449680969464545176198212129005960542262012350838407175362564168306828460445439236255809255291215294786877519049675732967967966213854220282878759814295008261312379930093521509839207839876670361725938094017393739175628843008736830123973336656646049049066826467354942630098575139139849021304931266359540754977098277181876336289007782685420617255308022693550163812413372080933352176662715871255744237561921637228765011453072560272076254148594569150476971306725034152247090680384981254644643959830220762486200625473577186777091507446552679284190752799926700847915910078920116184909938014486515302160484897566351330532475336663743190644555243307474430638510334042299205116963861437231217056372740220994732690545319835728224678863700017999970843256824052421689474947660499315518545566201688674235005454703889709113095119905443225353382774293817107460111780183215956577881620021773456027726760158410712461285999097473815132267104659200913459325571178457801542454727967052888623881136614092284821702456326339305670722807443483129424529457905135716728474637082227908432099461731647575134752316114241631628065442517790111519122254855545984740278182893146599922771533206875958928534180795754046193211414609893137437426122534052611755167660411519688158578174654342755364805866095669758105144727482318082841990045860484280773123590734225084236679358934682775952575128708239639464204261140706675093611627231702757756299894357600403898512655597765504099935418282229759578575177566987696404783289694584855214860498423280624042675521612042494894927755429802202351495255084647875280880661245575147562489473151021653514283293231723722018593923077485757933368267568717421929926467946300838285825347889466499400259777276389111794020655250816115004787908371529936249842012893788437012680269861723553902210325782689502810770218298157429926769887986669544656985453094267068193118747920920906669826971585839820350255395232162105242933770322885116957969832690819391355296413021256357552485910309102966302427631941833760837882851515440078263137754956060655018532569539469704519276390777041604851973681685303910355114136167931865242463202007249072745712457620382762457759034875028195476415829917420255043223218373055866867905262424062930956424743841553719330631471165246892624804318918257835065804216514128310420593342087659166728893927646470997843109519772739215855943146501101625521376074170812716667171937217985150430639744063073847101640886444720938072145698127153873088188596078151518315332609648036909285602375507332078396977900885912975595073585193628670363357850592619921447614046694298702060455388861560413512047270063604884796948908606967819421751373886488917956893273354264435541462491447992367273919963686300130280981188048357184802087729442675991550950302833494023092404826807012068287055068508035316393750083715765665220833983015487737965935107825947513279207329490781406600627608922016782013934424200166170629710310074039707662787281504382219805571885970412747554034282857557078859441600224116966442045195456493271293826630986500917489671363095123768649966570535512423944355681460631589641144605863886470027130968879669542171218753893603872092226185924495762505958027586953505000594128546164348565154231134369997255133695570569457671191175264492514842957642416878783101868882910557818875904587169725695328025318121861438028869364880706860059006047771441300788105178729277658014812469468877304573848486341589066907849777659655555723475687788710131234976654995730992272832930495929376459447054597887223669721089788999935403237839678845003954751736629267931641508204415221262460410539155495016107890146280971742577158341256356763713716102796724572053156578304059984356279470987696349497891914029973790084520176583894020985189614116348280831148071525764971037056901889237713558861698804571111202500096237349987649329349192829269665380913162100660942395032394817175514358739247509008599906160315191650724065410004307813644850853720328404924366578270723181341420354277728484212859183366117850134646462378360891760243965908124984820228107806871476377766255914997825678983789911460287224428340139932290275285215736208667428821210621383264396510850539246449974899419730245227592894877421925289264131118036638560045909385564401461825154673677856328693351704054178188863805041242272746335421663180366637714937803901826914008397685741815848677392145087729678691860828021410420131158191909885134008905324840787053870773006003198237256394003148881386956169090723473232951602841605856442357881606436898812785225178541186236268998599847529889955669774295666864592142592391711905292629107663164953190466060661303269052081088040749516091269906584195228132655525779427585619874884527151218757885100139178904901292792469018163104670045000762841001238524986044403236759049151533011601257557371808380191697343009386103045755544825226769657223081404048329376774625817421588202607951977163501142814528851455828380441390552805128548096346008242410547465960543308164529858968931250988657458412527943683123742846534524806932903065314487860221056429806167680539943291392246372065737620368476617035077432087270578629978809348695201850525772588574456507058188400234395099765300905678809314325054435839986676005598574823657410408648310440564650780772629378235754009444367231659005093502531137372705096241406019302254894898604007978885425035973272208538027734760713079715538972022070691615958275295535267954421215711430144040077544256964781790192586738862713692492366844649557130838666175589529645867322178923836282344106115042860568291754244759051530986771159372528777624639660564844125179189857314780074580836862100409267181845680714032903482617928028550884475691080469380157551904226701168077617907851835371376842461008023818115166547746231563935051953815468956296007100177126106847144813756682911338908786484836460367401962998418855826750548867614111363881391459535153197303628966163404555809987206912919189631341965738568168331396672993923815501749914137187786444563212062876928118594524202839873842267384812767133914984327981374775902642278635449849280736213706852619574159581875611525117167061132628090337983116741304591440125789924041324495278561556857107020494603679324976511452296361365885719931437979315480818599552999454580575692040819905884748190164306572049800781285908434116891610328794951054350021744425772574180070914253767102880817496997189065120553392345986704421172800574605124122247661522504749647173153835827821838375549177247327368856282827828860906062181829384846002737225670493342364362874832063521878086663325694444277237744391567385215906857436345180441982197729501445070482820435629295100454125452068831025184967425819718177381502944009385739023529896470081845162155128618224716924557392537378174987300674758613478233738179131620791674607102697229495332628655215661781640570777282727806286315105027480509697752996917548199983731653520531757875917158836334624827157902279697168626458234616197834449079483074904406017563275898678848184053168183211549135591505953621804660754037353120301421738143042988643117631384416827200780455181418254190745447959695956110339746713741071397952591247408569024027252984463562858612191693615442278279461108508112935707764777007215026263874336061555130050812395732202954863343062409234440285801666667072708127482965724430914505590506469233662832020241661878924220056244946879824221976976473496372591539163000732751861585829428384858959182131143351289871289543636649215855992568834968485978999319033547022272231463894903924514795535891232011569508378269181835929249271763946418918335852689281428784883962011792653762056594614973039284581501015095367243242753698346092727261068717380503340993793617962955815637374525957290152570892876153309163317667568665883697279782215106173628022564386602209349107902054506028535089296814851211250251951233923533633359604829541865906558711284955764878144320325390022973272079745418937543677764667930763907922162967651767888473195304277438325001781386562105638181702480269408085874959420874543469132812147484720242240054285484956259909939900476463317634294422389043206899147170821366212007234083497237180996068266271954166738545992325963457456702055388442788720941808478610487078554991895544369725467109675509748132441928970423966062675774162069721693585389534520370445175251301761476132963161091006722470779304914373952178495511680017634296475303236897553287315780380567470913097874374142944656186567726081417728474217059152883441587694208958414907950187254455024100551120267230259441212823897691503125886205880008929526681128824790674590885794413468371648189948206832088545824442496570153798639822016729147363978723839393798746552714653874634717944432979540518971838452879537044275905590415979929531167854659365862118391830539986989026309548796535327372074254753475961134184802569856701443325045458517220940375508552680060723578377266087437681236861177314166303180455624738763174125465184587226656175848411861268602240561075472190653470387638094068556764961918479751148368762597150055068873734178547615738887582019967013907032845297220749038223757533355535127609487751432456508242769526382363686705919041624172657115133786533831826779861497664393478677086078220933756231528570558655118643853130683549978182610325325911029230001940490099249697356387636941565329116964060125419430188976259566303166171416142196430948733685663241394422691133134898461484725497592524972534002263262248346578894420669382410192669920100209444043949444686200402638539686507200482473263863822728080768346443397021800402247144833611714065576752183290574727137167430630931407578137213255752925036101112402915628987141900397607660685746456321452946501628442110811516376368732194762840614554569463908869499860867975292100403816075037006056503407884425738312923579754584302675497498341879596603370335249094433896511863819463289643747987688298603594903545193805136858404657376466606106857295543609565432851323279047235293616456479160650991854579158954032667456274321469278249197171987611601663411409255295353350779057231424402172669576381091499019951354205903539932277365459368568037392105230919079312862718004357041850966452904572928651730326172177568602759450488899011178907972130575937091196644396319949286419447338353546818645708861320998248518602938101610660677121686089017729549974105369143697862245277191012852300161067119424797250826217151440944208110903152994773341847715214153203937250704273421047076067604355468318305138251685460167107405112313088918193507198729044288151214313076196125336411994194106525897434646073231854923943904761145670541201818728697321854939222209177846391396004667183811987236563858779236777003722392221830349730092658859906791874967912547435805644002477319730857205449257861030393127377975652667669131057281348079493303268894121581000031240279198753380120229281771361241022430684864041891014181524384555542614179312592791758518301491376965014183796159672355008177613111404982633598132049837508477875471656260176624497998139798924008824543914687258762843723800761404122654927470785521579491146292201320247709709562413920024271286651076371334903047790310934485113675823322192868283716857920638462006954934974760639416952630936633914685805729747064629135008091001772592029207523952902688544138772453994374632136408428722840325347906094074250499614512656395270759067496152265799026995416256344522973310288428265542974164108707224681675077328704567843461729877677790328509941948851454653991455159156538954999564747786249832362690204739032002116247621155175673261422015705450284641752464452267827489816201018965249934949837154359241083747904107314381443347714847042773902319061007436526964859168300978559839106099751300972968599340097483939740998788243300395727050387181219233983083797991267677346841004486508098471300520243731502822410036571079152220058655327156389117341789097478085511325853346960302792056435782251965863976936129903456286969609520533808989875716831593754015620028855636600233322828699697521314516252742060668984794254734848422592367198732551439905638539560434153067437559086474083508425185764060402103238131650995638414393771480665652530269824126454514148893501284068514705680727206877195233093860166501197843344613052625212100308059576788323944004668324157112716551211488309773365275991933879012562331507380330987266370272778041951882291743783182692212854665086103263362163401320254951723026325443877189071247264251277378255757801854223524027109902630522541722603291313798187443032627231393446984208834517296108081088625097507425814594194171658520252078571966533755035806356063832024392474572747247423520546458423164689573317493893819939436192840180638551526013099309248067736249526645057826786905394010909039091535410073235325552962633261230101640679524599574458968884691616063231495905302896614224186897316843479549988014267374192392654453168426983768083222811336121328323986126373108395015799535382523565720772105276446384864114767183420219407041359054104782491292438179004123792626839760923815239352500855816568945730866413123639046818960422613916529889805255776793381101058280206820922156585249462974186102921683657527479815828581951506123025268648507618906112894572066232363341539227480964497823167056908716120635655695033967438832969949643816041043006642533296585433436870479725347555577957637985065760968269671268623200072025789308577032245331811020362458673352924314638623226476733486947043841900508606954936063687875840336097459506066742823473277582652186596482024840931273783579928009023746150313761178286417994255848913801267622816722102876025394820994406810994292565023991566288004964036979663573874049498972468490522099727511482433557438058029579912070311557087965051258550817040821184055334895545421091277826890226108658665003888929108676497371734920244471325734656789337926104502074115205659536765679721563130010177279618543997642736090853417106488484723811365857130245924630900411841182007570930016073876365525927006960717617610595285512900743939106074021900019835839802048250358162249421551498474770253615215799094757201711053816003421189101802085212122328776593171856423296544995907684415511171207929303714810782663501717040055007536209847633408168213227593537242635393958237175701138597317353836135228820336442251367558141363689296920512480501835173756885513934078205371570020876899392853982951271682930548661950834712462596221724350568668531743830904056448143262313072761731078183903215895868660003969659203753843186639116078982585202617168166829787038933737606652205592665651491572977150312900039017943721783431571519382051315671480041074704263370953499847218340235738059682693195755517554909505941759130732936878000291247742516705171231210104797146419942033761659084954741061956579914637681984962469549197253744220799493731754791788073350257259050642918624068838497109692772749129176927567774900133382163577580062632871212019343689293995265765473717374677543763188424739362225880137525764218035351036381828924639393643632595669238587586897688426401243390485687704406576780705874738923823706079053098089165985976689908987553431811631699391323514429397163014557600317432423388780275963696030286768121821369885425057800779386515560917810238748104036121471342995940502034682778384319193043848182513725575952315019079228443482077286598840193905534584291484156844949530187324458974844058229885517646039106266599231037423405268962484512826254726117409525008289477972687320634667456273579988435269014084587179783596754179955088451777859840927780187154611858197485392714072127022769001091369428310406047820238056248947930317408951462836626343278880908656051094573867068064909980816969679083338389700847405319215149476596320148265531433252900398331922011701378409380321673171669397994633048338296037131673005784517429116893329821647467534491503271776688832652386060965965065898340368193404572111117110298859635242177127731117717846578237785213127997895392325824261784556106636817486339465236682778341827590033034523902999151706075815156034443280187423760961334148055589601113422168310373466464092613935565844526998026074866596227794053282983542099946533199404051665443607534130467833043758484921583275105865784280755395670528213591042679295308074053851270369441355016729643878970781614185115568242065193497163168507705920265340511376796346198502484156885713032119566985352553501314677517967634165746773701413278662629847870108161740093204220242318297285644142565996805512209180280014949472173542265502725937589983998599964887746840279020523024347870847557240329092892300940450462295305628833452898302908714536045065472060793355517437860547746000412053941152202851817631950779840309153537462216696619303555499787419096386535751784667184457973349556882294434319099847676257351565078672112822489156664298021806151900403080977592874638591308224751839733600059653971436403848549383444242814613435940227190510095063455028324047892659685488774198709756417617376854295893121601781990666758258377722845809407276924045136390860998928297692154462527828497596533368988243074313204171878573304878534093009121380870224260181491263979589716557618198198271393733937280396977681639042543470422994703212721814416041914811681843337673100449493213055513517008810427925061277565170904644925332477167951893400611639937083777551342764457990574423613803034076606725795808130471904889266670378736475150728348680796635217836499015478853603522328519719261099529713014754114044924303574229649527204066260723615103936840353321416416427422203010575287910761046708647282345611821826631245732596877744388567728691693390899645013206234844339842103478970084013726409150403190375104881748982359733536898689184342936093757996364982895642125251977841256907534400732085247048673668128927760304768599886226035101054838749959262480508088663483335238851852782589443188419621537746906916825011890046048763585726514979388364021103287847799011542432301302909155684946425421632265053330358016520199067993023331089594529738158593809470646142351642551498240501183521574953069299990969760546619150138849348252078140817234485344236144442409396951804029058637476670174990566419870401932087291563259309297193785048668564924575920991031767266840938248922013790087990112402322923981178402500864578572292143378756394016020523290591361361064401347733094929598959967803210470844705163557560385438691728069335435053466808261804808563453783830877079736896189708865655784731542084263198724693787310011385543357419600993166581778710239793503692094652921296138870095743046682566870643344864514786111010314180680161991834645465173224890063991756980783690939826859357554522692800557297972099817970002457199691172482319273454629186807892187659214877004680676761689733754191721051835148923399276408717337939589741717902692755973212604884997216587188088524358656247011397395445215047667175527764941049240628878655596987866947384262769324688407302170593119286974527960318440279633024854655099112655478773445811646649495668279834647283485656122438313014301326999878700460150471627692502366702468906653159574074169517770803047277521810646588915379994683481429593480037140972532552263721804199207517117497385809776496249822298019889899615068375554372882314190707669743650503083319200487963641641361348424260424744141358539804678573976627870862374809963592502365398586936481690347667232879101430280221646841245161850080422934439308940109170410309877489645983986288746973096041548221731868307812531089342236740651381772402513493158617751858453195756054038420659273718237766939123303714226635783118798026581775016149994726476102842172977090175296657300864753723910277627808579513820780625839958011951520952911652219750866013817658466757342731908290391402474827428168118183117633542355548878382826192416524462048534295829982296207610046989109570500869209667852958096842245331573507376658139321839741084845163027373386188366229049953768161103256707752991869885667161361632198586685930043673478989871032147179561558638550505723716396279729709354623143077255784046394369159548259742557608119883669693128464748281445146581978658147871197053602182859625026196203577228743761708274087164222338550151145932480961725236225192143530901983315466334121975843346389419456197421849870859133531971114367703944436372252939541612513105509194322074143648238882281613140236735979404266491032291151865632090656462676432210653603634650097137263873687835206906349433384319382775272666578569904050150503970162308283745971349404703826613492932411096728481977444645413317529448342565785735032905857608601798375088975177943108313557639537687662534285122656648914554784391745902182035293865508807032303236487962887500901421380146377313745611495026787642976593843383181684960074617230668272928569482564464857421352230172951178315813016485115879405465948667572057026814660823736101404091319701700957107164605090086363850619072631635832743358012226825641611115428364029015258003962119732692130636574395327533627318315193091746059931127355618865317371301167525392563745785655863150480532877857196921193271433354900246345156359208297158065431579634064161064777073255118863259110275472646434969918995755447107996749417365444665619306244519159203625236279147760041216813027357037515100758647087006056202576722075280854574219528467762001134876348886952514799220797259206830274216812369073679805427684440993101452471502038594496975605623547007376078053412270482832536672181188602924983414549029418727053060053677841388355032991841616142978083156116536805123442451694653814067082792663911035027242410346735800954265107606831029054764625371706056213281466788814491200625009378253148383977223782875626146758166541603595010199018202006510081233964314430191369015075982669115271579113094424206844138284271715589898907669235642987020784900231809345691318239265763972688601637050933107576950513197165658861543496406672313122704723076130354230266057523791922256840163922548328030120432476490730991420764503470433595509881728718512405656262387873811857170983752950314434497647672041423783840710743780606256141335473381788804768031526286254739258774467032647000057260021808537263625488875359711928117636357310824529437903631361637854016570340093940821189944195215672853913252899367831711578502908976472915709836928964083598461188202528507355960241125526999338737364937158938285657897632179483902875291793690254519301957300332573858059451390732501994570871848639543087986276805380330652791723427632708757198875356243369739621226409833695192584893266742382938306292842145517749742241345758479513625654384796879845928550441028589588390142927188964779987931551571919881742794014633235817046014628976912365268992014778381801597775357518300030992329393726299000490859035540601691437183719664768504237519629968405827865014363793908350833882492525687295894716464188146141890279515274024558640778013070989030181191461389988598509239188975834132787446845278248074827306566032038736808906554723668996230550012999792412400261423981927428907853858721153604353835827805318013206836061018078501339794510655818094384884497700125890576221933636406318257291768635258995442344426568149391045928430030580042829260481914447442622193110404981665216526676534327424269018604965171342948063699458044082799228950601022475337452125015521565336796567376548533238877998142436857665349510710989594838854291810643803355436636469665944665305950667209467345713842821989347601116377358687378300280342539857695263303457874306756467882997497394796524001412806775357819283556909976461948929219439845272685820151712668045965260080500925358143239226241388346672289549490742409266648825633304876946517312967466591362062177324781819394746620357099006179629902060424117164533502010574148520313630594347140196593870011796191925585820702181405579637703571827127969549536039382623528917423736000240448036408959913332952208215064848157855891400210939828679902672338491400556013607454593080546071178880552427352223357471931606012105090397772309373770565833048444313697987170588198611311167321875947678959421676193118007453521162755448437388304311687350967722408450250708706110910302241882068628461014985651711120652006831992924935132641414679279821885506342391718039917019103596177564634966095263027213976536398607310806167809586250250704249437357981301529170863606178547253014003742004254585161520274906190418853320359244690655377889706476169050372774959458032170251673033618785064049497854311700155536364587758356180581304061961009211961538837737484555909267091314266344241954171096602654242731145714012822389641329454419087258259346012517867237213064833034642671687200134600079131868467957930084208657907539792032415038778695096922971414289936839109079778177789441369010906650796275681229605881230094289280648082440172893427374973438064265363751660510364410688338350258472134133983764694218778219335434803677608990045238210037622127673205730967902769396121473572626046529057798332135141258474123901001044017306053900047566167746156816677276521080250679703595523739008009063870896087098326519019881197686125935075995741110362601745737397009620966684530214728920561756703419234687786243290389347311165619461598510203068951496236593073814549055902960307140202954964871123584647306063185028175477522550652857097990798014546310624245127675564596022989916868505437680355588739496358482039208973234134745509960145494857059825963297621824610575388136518005173892513056568331815932118228198286419384302914474142664864029986524566036367239064555878570374638231753718623357235389263456389960664139056550940963453467935275088063234414385998562444100487591181116107449002611790872776471988823265163348144593144013168242845561114570631531009149473130551302988317184871233252140010840385772823148706117838067219094465098828732925427851482546759468548378492958498644095681658005871671426914345143335459468368929513293886548733630754400169861379563754813068494751228361698743817390969205285142128308753441941084352102109094166818798408266079622945730934530342372456669738971775176096695113834833915281446528628744439102106736675970530518632409033059524331122694980476521776445191309696577730610999313051503773275355838761649330375672809139962844285477890938175885407546498807359856063905153546148403353852823538923962748158861581258679315422838287116169977586348571451728782959209786801393136167751129245154579141320257242363746970268862782677857916979246336133311275053709230105476378059548026128178168039638803395077735850574590465624959815023634471261011684824728514791285645427925154372658624768805641320824111939246003544216901643367243170816587682381540815270715225784480238281612590740795748478916778662416639997753036642520956895267640166857998391178309356666923638158660534564839867633126721779342103901877263579347907607842031797301234901993884191671347783073927339944830809208465779306623894293735128866637182048275537122052366633476439737320389776420716017124589244028084120093763177542911153135400018955897270784629579725949197730900292597844518649971291792541936521000117984011803405453973356361172876486639212783897888843567111376095441579901092621165662202310532454595090942908144911049579766019756637571320963738077476784531427977362696484617993317145870008747237507883818395207778149422867648198124411771969923384801548824067811743210444037252405213749067737630910446740323944148469681711611283775332160762925220179145572410721979889073097619305377047911261454031978785979292878096701839668323027908119384553117871389637594761621129653274718091979341355895771681610959727229778287591368080142295008151221219717987729600293924615568187918897283017708459531095809908030591668743899828488117634916441084561456922955539073056390841181891474453587861665136970361159260190657422790032161359657593680845896331332527667920168719983045127730216095332857229254619486473711663425712174664551674171620762162126497982255511811085317519381689133846778679991316455551905655203990521203294304660554426105062144671732288444243132720508218490828139965202496930960986199770911338858681124288788411758716265383789715399070243802098182865689522436268762634233841246409739620853173923131692031033441940353786869016592698638138124240303443125403484905532457595007959566917935159827201996787731020909295389411954983118651527006964769949840849528706197458307802109615841074187995590406125138132659646879408767505371520066163998093653449707685760994614691521312302304395697008450107970225356160529013248590563715529985548792585364868938761847815982737650425969369271245424574718288823685708644628852541017499782445625878195936532554986364169442777970418218474850088887304467180027707560047098668568679319971254550999030185415434723318785241117686516457404210313721587540483554094556897104270512465525702140455888479900834136125084329481806189290205355474058692057205013282800715729632124260195760002944894046347993919334895301360427262898012057223043750969234142935177610623550748561538397035315201924678674864460500750450794401739579333208738631510816193087735916230129061366798499049340632185118032926129924510195008152710371970134464421665749396013791557003594853740933436871925466822499386719697864818369300882006067351118791844208012921417554514406622093837672183186843210430028776330003177724971423902288104709712710598785018490922271005056312089240137590086767418768139355900153890179651064895335692943187726566188681430743976800148189865614516283768743564934441184128162119156870806416962286011725037584571546044888811377918957274159056402440405816027347650573464316648453034891852265785532254992186461338237573055906344881230789453033341988432699752013222521207380800151583799198048336161384621516483905362660540628824018905889349584289166652080506284058053753287020430776939716028584904870625858303799584483402751860120177475147517827240107192058980044749133009384873723278983027607625707910817975230072560631291552195791659248069658654582231825790958065566785248662065517793647385634079533360381099997258073610270807175645742567926180876236186457378764990391804454157924622721400267472578752352182157151556574286690674061401397612427625344779057610186604784212274623994011233167782948238361016368431761355607360916845891897745359515415112645046145598913172373811082575054676666624747625475276793123479319031772161125327303147560519981418961988789241761106028341494196678201154493704953594757569452955389499686549946873735308445435249681700620645070092460669512258380740655333037487417739027535747407977351574611642138775847001789910778583908942962812469022613903690323947397842052395844951331723204917376086871010777751761801101055543438510177037756516292609423137004805873046341054879913764265550029372813938485879893433868501642960777446580115070051986255028544478012527887144378920150311317418008834026692536613695524768475178423707430924917313719661060739652892522243389775021168353008034498094433497784218321284215851563759364821495422260199668474162538982287170873804974167326605699014867737602991960210633494866496632011856267666680206958311764474880868255909856572040980907913587924894713148374232925369878274790920301239768778432805578707024303055525338821801220211196770904293176165065464084046464354748866061000876192863543263527220548539239064521327739009505795131469774448184020705393887720243552510210595843239426706787642216679452755778973719721114433544056435139939593811582533920768021644669471805798825207287284788424869213833650717430152600434408696536368259976183658895008711693136572707441762482843472675079083378436582213832498016028385650083187983249684841199772737999847984489902057566152779871778607618973615782672617224046834700708930715142001755710374620023129281645903680203555383701989305208062965664103317868736231800330671014615178912874583566043276574170396462261801353758448485893571764067810214648273164287729546609711205215478669126939302213234880898829539715731467806874623673165086756284885443463134673436727039444184853012846195476495798204704636122339342851530377143509194649484108039310048002910408417898603221178938519806635937276487330772324261177172194745653876710255218618472711435543896739106590051855634635568263835378364366015966570937334098125168008763341184167467272728407927480038007762694289551811343350527662081267623600448225764168313963199254116928589539337107543927606921490191498329889863150882176862022227291246951893025531611921526832276936375726010315485069846120625313993360836815206097637013712109645444591487711549722941808888361068540308081425206782284351078517649641232590625358878689682502022271362223093731972938244343514948146077569890045325789939541816010344399873546079254472077478906746621085288833097426771498357347119782302975492039539615516206066373899575688022513917078760616742847419686045271299982010846845789387508387519362717323921374068404943365616427497659850668262471758076351447193079707449098799965205746935643053022086778542518342868467222555504192777469542890749548786741186622187473400157417009105322980944214506579054997262525897007848334085025635217389449454805414833957330763534957435672525974875494284563180703604396949506892790955024323762321331913732772583841539234138788391960568625586923227776724398280084518299880235348751580901523905629168989005391115154602473075002404051689350759674072238135250956003766772186156771715253582565615458560128495265269032196268769474853130827924132694739382389304831036347783907518155935464185923402624587139483538603351542552996538054466540820920688679034296552596899647591129945084652515836742529767074503161594147758935724928019613081644036579159535000996244324473763871489316642957779689012446079819319076287242728560153471002390413516759885404593571965629660408134696405388953984449719781672389633320800647736379927260035348292104912100615612838432579046243388901880471250336395044751040069242193584229964041810280424375085050337081985284799016800485723596607821356918040603352384722148879445181238709345032115364891708913747977822613954728850628810814176466643313718113960535748765479644699231438120366796405062699020504396557577491766558505967646659619661990559335415913365931567270879598929911382043342384357453631841051655715420753559940457067443190324653998813337373169062798874889441516371487193085987578527286092418827954755930693309923121191220639766631711238300983316221410686295452855306651493971489630647431689582817677667779509138426894611664958024038452133332206033716469248220254745820274829275839138349358367908472629697681758590726791214523587945100473937686256699181040825499554093921055241543575450833873933970901276080992871864344589917981279083854434164171788964291987118577002886704501073736486192641700700678476643336421415845527301090018054548801787034488890688089232916233235462142705906361802599196077102929040202539760672350972501755698510520086475721557709339830263405893034195587404144923059091652124525452055555833671678397736636139403912071041681090844902694464666335679557307705465700591300419060378094074012538614570942388184733573750208462201123449981278205521432496777061058541345937586944851939909819802753359308189562216047724292205857097377973940332844860740845153905188602990994331856666397129379800582538162683525195923757038886113740265638331443271695693228787428145075168502901537027559606990590991911850171505535475325330766258864074577520622078901752188769866949929459136258218750298283338558207568322633695821203593083370040512103471007575476238217508122603016548045869064743570422435377756643526024162058465061784113158318004806488372758379998642033103530303279629632370093906730884645625414190932668987537118359757168712911674935411557727672602532706909477635929149790442169497919580594268322609885293702037311730962553238458784018943213099233760435127543293088344973123321161370453097828034735576366927019445197247355619584997943635055790158351467388863804103092787499550251352026223229686796699747181837953936107309461207059407908323802308991644597476242990355151726127419404945664704909324838604575888604315407399420655361202286809023403691947312844216032210697225773391859427601375272811591091206444490963877919478230800383263190398585989157829386439820204318477980657721621418467610950829277591772289287835428782058515984107090537412047808096605661678567568012579828922919458908554712565470100474625242877083841931757106448844412725814804398754213216600505490679376150344021235125451293247721291280555615015150492868927478013150177421796333359417070906926910819279218598905738824845896111770556719342783525527982783383232769396038190168532363709207012896155544818338659307027162091257215417713120549229018423142209893947609685468181666341373130307269995300763040029975878343200796083779253538228758069386461420130541991382760589850248243539865904785661706057010496627527805684502893474757527897886387396110964854329025315562276549095172248870932154099960821686216208558371647306953664669982943542948200510790116445160878022286993950423931280366531873384477006863043981468631803928678849866084166819532412847477749252807982044565308372909312062210843100052996304082665855404199508202502941653271197482766898192948913356029952149472886542431466248510935955116410345415005818286615934711015645511556149797854385482880531627355890599409301143759860145962419586686177502758623927707530652683349440370485125447685285435058108625697198572830259027403159837845417611033305581979377188759145273898912103988372946922185494226992854162870081769395806037813385662943133388254859651322191041674666684213578770670275044382032121291741718903305135821950351441731134521424023599082706507484074943794327571677933957293185132251607073567846096071723515384866200315653146015663335543442335252512316346183237502932541246319211086519519536637901105229553420812513917145649732960114489261162482829572649554174876664354771352168053219043661408367441272622548411142602238365805582774841448219430250487060908604651111735848704881227784344130616513158613235169837666884314246993356004157286630152722120100621255559897520433095492444886530282064745069396524710315612355409865907817657498927030811699911380882096540608880764800703371506716840786675985198153743892491836061963631019738476273572209245789987679162135648755747334150992987937730177565627182222417368681900635006171442534925369580184298413716174159079134441711786998486617909743166505684687744738541414488358003302033696179840902108153132239182175042788842759398638364993725865618378222115429704652423870259121176532369520916202547365782088001960452955713206774559029418062505594559932255123293142093076887622629200547933190807661278764259343881031576331549448187795291459248288959291750219941040112975318726901399490456423868561731792021094466648315922136882696268625103731408084106125774985683031573941136291617773151009158249994953251120712593251293381198938711896151207497479525381188510969964560762428967771734774095358053096331275286453337305769433684889136439136354639636232586492294218008384342511054831121240946010576803593090694110319718383469892177248988953462400525195372650940394707711349188281412278919240963887405948387265967513899269412117190931802696519836515257592771033132312907861956154994563579062342116456150847098521420538117854433253958422292901200918117926050146323525620512243187240286198991428313873257484797786208790286921178038477294356952116087164220644624728952260353301334271971426737778966398224114999869119159657233177961107967800975323045177467275016597297846508545477945439177167494266275252094665280041738744904587375110608766050943405063504072749056627834245118168947099107782704103057250468179013498973404320465754226507355199880575673297647548421739085011115816553261144277722933053309867067463742057953641528273920280875666756165384818452425975248135631322032782840237698936431659591734711676244045434024271020623936156377414265023971453067262376105333558118026043200072933993300471067634746462161131307896505472005987053734805667892847883932881493698113804285719112431773271166674628475214809799477271566367817880917165353918788035351468447496610828026088256901653048884086396199390942794828809714716134343059015314777259184066715086051086341417324646665868672788508831589497358059895033043546109737329806153159666092300645632962056511894807502009000256931985414308496551339327916512761641822786523968016197211076825168933520060831874097699807273463029382023949762695673098155874535240851311480488288549441582393850466058736275052046616871261903010661248389210714217121759510459159647150282683949916675123835397841155935944063041662655448252657872490907813799726474815917838351965192642895516674945157698080873284400293634496209876736143665305265989314106386440650049853534513825044392549938978913273006998482499904200677896442207830287477937888259605847545265786256410648918318081932563367920466050822902463781308382078356548746121359977872212771376526564104106599041830343324641666371668351185340632272715327999107867667359933668701606972852590533856588752541021349984179365291435111184824456496802154995452244951021094073266823299604404536500031227407851606035416354471113185706734808214289349405714272555866854570629711380200094656257948228182188499718957521573525992135801411604560824482409558611117946370166162260234802423761833201227781916045436035869625822907078958597820758783672156291308222045079884342073760790411021336683412392009717374848113762019120607549674656950664154893393055297336949377684896675042317833173601941656000844697175012518858462227792118344571222836232605171604653615444351315262092937341694013672238997615494511119456381946487064500425864501658450794650800148819491216204282877414719949764922465968413513175931811069122288871482271504522326748281592784572134137687616585072410653745941937488046002298319569464011613371615398356728960962625594232471690112401351852962798269166462311584531118350412449210877873059113353462931486344423113879118993903142473977000594991002317113661486070573248152420698491361049079540854478024951540391544829902821261133263324027188759095336286585576920561652685810816185582505641719541080131304863540799734432861408935038130549901650859978507373530537441857644270976104537606215790141557996359618053535934391992237036591270707674123591881537717302991949477280875128924836481788831953285223126268559448576785616378401120943880896037239331051884458623220452955849732585655372420888488299049668273790393032087392751971700132339837164589952465436794427636673713487020979487965925847052079836983475778817857075454852703149773160205461711398038703109260096880091951174433617824261582459013566334700291669175843939124061473324955748897837932091524394579527927724430195068542928018476449626484264780033697318230360348751375060306318795727908130258934457144718448393854103228335710539507272186189135618340903299481475308169734166483951099491411843175439100709578241659093675003185618419639308545119520814214073952709641458636184800225614943513176238509825688914675426878853292662685601790385287107487592613241719473959950750585954314328860657395372910980449950030247807317771159934859178588578217692920955546605223738056182994658700146905013631274198204597248621002201318061530740274808389905912600063465914979024218135973256506328959437883990989011762418554438557186109663544249316485164327684271686625385236516925209359748295386966540442926492573789863647508049432387061028049726460260657157744742901374677807518386957537277962348328793101696310442355259338256657342350096105290723901427082656277558221700873268795363366807123237961368892865513657993399573811904422347097608669925982131407598092067272408424355315070906410676216206300549093108539593196128780206710210708924262734288583646852864739324967874730422416723598621218568062503893686216876488471752720412301422209388175351252258159211264653491624014840343052000359215632207820086536404583215341225053076168046595076123055514757973844068508314999857596415113004967250580261681051687448419251476949665084907320164617446011173639481656227480719622911548946740906939350499434357108466764372697181196233253650813449330589468788216385443206737631227213828853995061222546350097777540573999035216527668704672160438782346100231533555722047439514054411297702967081186704984373248844844532650526801774017896575095044349107110355676591522807885336692849500012084674721940995477999225047458266268587578985182955678380287143065006212459124723552223434677656163532944800650918357885149874317380678453595514177430302727132243842718178167797066790154276498773217829466824311136704290011851497667410914902066466101333947223872638644664327666337604787651312134495689795185225440813118240896563768209366388236631476905488580102890513477122000053698885660556965763131359525846211481386358700456655377121688869073702824334106366653607417835733347109035890591454967827873222122160944180486063026232437084620405862292942214745790439736026769752218990372664367563634431415896007228839790676616721096347775756681950203282817598631860511804585731216551272805804394296213296547358493544220673565066265811424977899684682426786393185297066835812265638529819490655980080428807527873888104993632668842808038410764097869392388250043971000937610277989556601095376307610705060371056570080308734716408207187581004391495315391020504269890003132918405806067838236527293326759401740042428526325543166574928774223755891879447507630092905067219510537869440919453490744796658745867667103624895282669576916459256586817514864697001368291419597590508239796814164508889300073061897045085858490446107000619117312555430896940667628065981892029176166593588482427264010132874500316788394339771041866740413881483532321637637330823382529107663800941653492331485058349850951440330407273879550796451366797275900868426873494002482691435298887987254825502804536285495044818714440585574472844673903513379112476098085850977979134020842133462123071164542453783236603892941304090133759270951931805732212617733659871319475382636580726138048487643949883436846207513680352237069529337097012417623150042800460904981235664993456376323419165196968760041734274739204408942026789870449735120328149985720348820305355824750486581671883604081271372972747451766680748364075869829769771422425794791890265760150826727470510040438794155131425025195337970305661483635687395968656639604073899415434043854329230425914130958324101816049567416816178579141312662775529408783246515856068666065221755493987416645485928218611506408908249616781731844313489767035683781613461187805215883717355428646330424674780084236975425609218937872573153222154406807742842974525309277320393013347197988266768850406283718190283630878057648584312564283324413628683273784738782598882453900469052767614270390859327887131782562752201946877368741830218518468925808198563679010862157693634525339259656359224005732335120972275507758203246332956076821679368727995924981230660445092041949889080958434651476938162388275510954434008529490767749541242062303929467261100044153773351250995348338481532552338975691001275747223080783723683857145455204560832707820030471054440412766913815611254464242395663059160417600279615700056615784632838507526333874677297784073022418065133094029811614121479747363873685948935814833109330946096687623933470669297058263223415281282499170354972955294202638810821602148114858165737952971732746389668163172176724231474177605132148621402393864678610625059892698079933701305065274457833245448730613062832053000795605635382264427393136548594460888093478908860391101599115883238238858866620737833476542212236279408730764087877810974700438247881877989324732611430847913491905155401592174802184081726910345633707017246687736413671697924588370944267679051669671013920643622621476232956817004246924401866060668203034525202822049744651073925918885238166039134807759735381674667180611024348691292033282427297122344878546507369412949936956244860817392730246295387446570439758941192278426847703855727058370766265034539460076125821280180018333274378827462286032645072144872758930779570673938839164771228111409244934328345542932987023994624557237000934547254582758443115892715675373744568422814552661605682884159052125596569697478263924248507622647222277084229577193095216297740990616828481706503441227358209784412415660811249618558750867449903060914218510689481264510024611706794886353088145440778701483506542568633161508277548720538432857731626034127096762918283107713247827595627986183085816561040360928946431304857387062266207919343842673336638150280999094321305295423972029533482528380508286070229625717207631099283974509878573012409634812411779862953995020874629713222546177750782005998378101280276526459315809974610290917180811897434082902414679661840882146185912813468121161525984894399947617544802878064902375567977220006831955958033921858234097829375013789902442716387742934009323233222436486699784107091491818177451424071157337784087821200150745323292297988165331166396574587305313587201272480675328782094707775972547704551839830402306331258606423745363959926728796066635821587781125769723182335255040130764630314319516927727393260872024964947423655728967098781661977980019638450067232617821404367459750313031908649224462653746439382310713782507999783309565347965817658105827753471824296472818222159115449443117700137238522637719681085863617707623856490209628466871363578910655831242663454058773004812167861369600408056537313533939509145320587208040412888223390698090394008569359654803339633263699318144819330235836675881398740499888849063516561867360678875593200158019112283136580457507495734904840992701753139241187802195098795600524914893111229107770766789226931648807071134842495453003985726182741292557384941714566356177286542314686185491866674001605016340130907454904655874095789587193585642555751012752586417089563111007060996532882670723127886135093754283915812581296829810640772068286096952216316431508102886189242935549032033739622602316682346389664674410625853905897780366524026464563034715527451009467203824926013511464075898417982195752102311568195374471787773729674972698469097094990780863323758884281326534205446463958654521556611414351809477538632464447529183533175683776073793615240091640673523824288218548539490093739933867153764588662234224803158793794965291595471569964195566002739453741240937376427047153234641911127378856171628963668113513760028834570625756627949392664574094088856660350853983880418275021190239398600662803769883565055344422223576805464214467680825220051989269996956779803511087479234132855049812916712360343297010960278482203176739212879494534021321077923213428941570473166498458342538618900121374207120260352990458738144285124937255354051319906967489743962538565441283282881124219174549290798306608781938765770692826677786022291456838369648125955327436944101643880315114498266331084807501592071702423752596835389245054702187964074374313453207833898657912354513686290327653685710685163996270406632308957034225807909358737541107028548533959820547794964640308630917994637615799917037064706581466126692759001250111250738724373090538649061481172877503414345278225876361986564451325673333515190431789020469430936509635065032931891342059685202710951949179957313819744978033366621957490848579684440060257848071007177463996089510220384537609345147695257707833873455497939014902816650227746868159018739034696348157398011570040885206953928276772715740125597802029318565618874823315662040766474373836422960348724853215801735251267676731408455528549228446969030628640451567513166758256789465091272850073079110757525427924537286616840822597683426931420670697766714427475816313012770680955915525330721850278619944425435265411937409358475385965056487143610368291572310225896516891339700812739312370547459032258974287946238031257216766555679122732543697021202843296330241817633525916062197890567745665927341971091702923540519027078566950278340905729257317613021481904731692598162536761223264759644417463525239274399368934275282178550575502000226560041351713124746300447767351965086959206083729394921102452658788430054598015113591867972741730872374240227781968258541955991219004740593872801978519493448550765421557773851826805671946078616104826351594686674890978381913958023950410183614208606751809234209332191570351447030690426635070602310356396211442948900163775211146525719722140474411591945103059628089269636267042275795240319351978125785966917678754406949407060432775443955082060376245213210361404675891251490372392103517797545456173353787160804832983273188963347577380427955503064302728434752827039060994089099958454816609283563554955700907874490578976737061358122843123520264307074769711255355317857353447446753076940987629291581416698201609309825892548243255682355780279692346278769691021418119058790328849298409493808890025605713586779351624683242967062828378928560704067450282461630750788503768997107059336036676459921624785140177508947611246398210240806848893458619059703125174110419325182872960856801756534648317204601908580063451673848395148671909240384700419460328304632401130206420067160872641754482726040419766168011391777152503123246061516564491076926850165853162027508052791387478870106419141506217376704540364568332093755208176250061515528499561530333400385869548207294970821014291539848836998728913997754339064288960946787047499142476737252414491242579302554990325191453974732297428824419700073360566291323526688535828553864411496004067408033461003671436060070275664788468492964663280102822033848458117733790795005525470756380426893900250543093318270589599859127792457213470379062080498713576150952125488618552272595785068925562579619242423368791437409932626446020890696434229222469768636819173916385636612777599967176183100623973771301508334609711494843951510320495410600050554824599933284333422812003810876084707722813006770746840271649238639770659154402091717388224950099841091461704255128340188397406722677185721443126145075020928732735438323700039592372673135013618002864470671500450196707113613342556053297571947731417455975430794874248543617207160392092474362428176253971301549886522962585747047573556305057649830395662382397905275169406613044629585934215999760316777938135194645149955437112778147101656044029790954339754098627202715940103426994303364026716524493842125862417276666597498324161967657954559609374439331009458485055277935917524424028969786580043941718957754635651863238439570256200114118490343213115325162432232912663706836623268060349391823318111799307372047171004611331314657779588663107067279052073274704304814426545937018027046928002584499351980524757445556202768126980406246414484214791600030373586060698853580187194962938382324833709105490676829745996036848288825185256897520626000997631801541017582108903812603951959612450131772053258333419282533255440962556188352419327565727780227659939654333545429063180547244970639354392344575352245476362915037052203385206139360011862893619959374420849758947863365083503029877608085240178492718562689668016042315836548644789295705445226430753573635060311271206699268003446708021865151011495468267695205935571027565077722633349684432226188728871141301136100994249958944146105177474914425140592915127158758929437503794784099671141826586618312713187852637244736296807725279677811750369238096822256649262456839906365537136266199052105272958615942789474315314628185600659991021067858439094516037447699316354421738651960187719670593249172833816603526805653586541269545728020607496429883378208506457649645248217021486680232052950308766087977500866496280066445567776894192332744212359529098061098529435441529568430880792438520784258691897198509964924106304877522823691398307143408537954221500137894724188366779788269263481969933023246427020256807921594863829929418963798688221770768965768793421349909028419877625475972578868827684653094937212266121665382862783027538762596691670578246421121221446139432303404880074353375458169864363473644328916016085024340749322417469325350951775260505908658019075003821565502032246499109894591711681746195880178568254138908900116076212476860466703095064529960792521403653142577686857157333971439213457273848002058350618395186198952332239355234923088701652928857242807159212809545635012249882106678589259369777947718304279890925457405477000415447149986883026900704786938380375728519395091271245626921273801294894190223480866092141874790033280111754352611058256711201027286950609607418096373304102004119186734753226535685965402741454256763413311234757332280765743634954561198223214884345808937095326761742838739108897459832441582217898518387453615285788863699483254857728583234575958731346646183223919504264836399323495987697363281531849106074709578329230011956943978603061210737648031530042351761356651828256343157259657271508084980772158426976404066862750014749924212423954172097445379900151365208015312808315902194393101008849171853436904927831856441959002826003085686016886403504515512568979669298561410835517044528858906229930349833110323381042351318580391021865327284131883996921843644907686162597629640877966148521885198120298811229712205560670599702846357147584786590255094928711167209513125338532849321352276080298638346126424070878925878377738884651705854366579352242265423731757311733846597256346956054104364552028859329099271139384260981948217079274162941143229668784437222103229398802667597021121470491995711717148541765665681726403674218276650249392574825376527280715093045296622383850984747768514745340103825204171827196892944239054275186012883712975786902274576444375640121938555820265547110615788428146469597019727129736222377728566000306455392513277522052812527826662779894922130172979569270756926124797424127890510010036064224285353986945496832326450478768418157169020156820476170865584190601701745171373843896977945086934748913639853777987765410637555059289201044382125901561775293306863508883878546031784005618156089402220991699329585633551201924668487104805409412759253758167763883921068902806429057556705735062789580512014111502328037228696841153511944675403371365690426266034393057521374979362286656734408765691354672620326328968996441163850411750469527547981539009588382205799391520768856979712713547919642983345060870693381509044803567813189347021502373120745431715933199400148579475283255987858505286154261426479336746866238963212711434834869269560622671697229421584693991874254619845814539740853749701490405785580382428102739555289560306986704659201506130594984237210434211330308369955296937915567053691885718284512847627813782638468212280556935219490265755028803321194736655671180544021109234822620027511204309633439003314874378091500785450131562756626728937597945968057760181601363317204044931090558635723384419448203665189610901844429361326538471346379556287086877286465283673877804479168714163470359525117533022743489017799658521227761524563792767597474008181693253424611307056682291712022353547972992358219856460063385743399095687812499591528916071716726804193352374885408613905672776541152116921829531749101974551392373812247637681433962803191856013819637008939703197502524062554114827201398770939038760679625526200242604654691730174000148590053269481056322269224417163923759034043772517281951303311291055397551483983871782199194147147548492184496111383519024148552062361478553392254148864459479338960870718245485985014439779963986513302754496723294971618134931220017296952029259066843005572981807671130431677089243421342859359318391704040148464563280825929391355208686278465429451365926538146689541373971254013489053255293064519749615129855576923532801248965196313996986762975072782067253347223011751713523676802388143484200779027237522292707034640722751393428064539161143309490425448062503844857192383469223178845111313161142745919034539375157254922640730065637280567842089339264461830318302608991106764192974315704847869448724635013078917548105600770325643393663576811948431841526775381748153808081397486531538711862836035367452746581343438523360341712388858979929955155355399484416936430858287031080584938202270266396578300370402390130462098283049532614613648410596344946907187349253992037088189450666692486025058273683486746174546955694932517799722634108328548109141297849454770235802821487496082247667626230564282718559920015831558108260491777031980783205709272820760445117907537930438498412612095078142844837073153402329417968302517568641485859043657068567405945395544631129301094262294100509506536357624700747725971565003212548655124712971432444612356191220299523606463662505280737804065316603429340601826369972642928031422360394917277286399701311303916079010427989604262253836283151717581184925455778422861379002593600378651000506213131703731776285326512613038838744863304623021700702416606227499609848585517690381350142676932859244885514951294048027766362663188019708202152642779591325900074659186573785108902042349615231670270658421298981269383279842737687202770662571792431587648923758976414415433241525066582667693957474717607666413602373686320950098145850374271400203029308538997456855581127926882248236752578123804138342997258317577207841268810317042696177090521764731223726019681415331412904071761542166258837546108087615148402182936632131283776772698069505271147030039459472204216305241061456484186462510049813646298607804186018760400938059910244673388202660477394410053621933194499377903782082664852959934450617029616216995145261063937054650379046853751887288869884878131864767863006928772051747758813995200899433259352070508766903777276116229283990457379247756656587751920339472069601916811879027131837050909074582425146579284322003459737022763429836864877167725711149572209558960663840975410556487519916258188635810204521515328738052552198803840865017751113470613457983656377497124106043017956478913805121413500263768956993308046315539243395244000170318043020703504418648297687982768397449797691961140544704556243395391808573844169400321569650712898830593486266653141917104900595360327781136068167393859865207879389736863627911023348282468692401706596030657012168417802669894765808921045541500045689299090695392665594797061276366111586417296805336108402558109323293025012868509664041420471899624482638167067046539931096237134033558017603902938384587669696379711789056948252001918067442433665341212406733389468202214269093279521391283532428088032549960989316787539408416489812430879547959299447339320534698246157964290580282642454410157765712774616690919910695186156761385463146715506882538801559440509499105671862783021673290714227726372193772598186614159878792502642505719341921105068020405678230338155201789022144384151942962870444839354153697257073608066227364960006613729929846836632982521842827110830008769767041512237767351283443667462580424640966580141890820135213788239423569819003051036690920060498597206850089153956255261226880436641816310843476649450449178055176846335072881902402956759447197306208637030588113402637715096592308475790182181656227266720044311670722098946775954226867039308187463708973449729482141525247992896026053193798820595917892112741664324880798494841347765317909427383891419295442338318463568147276896146204931277199869840156524060907245620989480119065315700358382948749424187741126358123098595687678314007647300585897962950602877894054755551770802736287779112974067073428541127718679798055774070361023253868414339559270874443391891458386058031618041202409161935745099130657236111298964830600998093950227113717687536454639378599074729073275896539208011686388768608538559351213831099253462520515373676439771810906792788727415482829313948480672999810951617346157841587177086960405498379459794995500094335833441805143263653197348392984334970590973504812401129118459898463606077615059383841306734648813511180535241296066104248056847481863549145883987185021390182584530671227462604473514620956598927449787066016428230051041598066199492845953186238725632475033364295667379894678946540240970882679771115563131014248541003836476165012727511472464109448780190940278398112372096172905994682203361277882133970165483408273253492008502731967159731476175121368206058288014565677113731563937584964134217682892904845008554899996410545609942746509408929570223347446282375157729961266903226957551193376592870449334945579426036486981668401733615573266697745534231313986216847756448786064425223182370044872880830680694547874458670577072724912777196081120110577196308116625101828535738975886682289821241158022253893792385333916196892820188998832371991864881468095266615449081136683050467270360071151487097868494148416890568713293854122657767040158906609469804597869605001657204299390840392392251657377352888532884888855161308826205985980736249214098047272619052431043581616012742328002676305969138975912944113351729092678416025583837488555482740310956011635042767176642214908890999420107480928368376743984212832430126289947127486113933524063633426724349318488990211367187532155556516532100026311524224590557296522754368228306979730684421895916445215042154386184160969846044663714860889041778849290062730290497065089110134196042363188331467924600775577838984660583605201622264773287321275489983409171037091565486890774129028577966159194662772836710693500778037231006543449247075414215005042560182921114952091798636145812918198580730418087437764357891312051711160628531434207273665916143487437853418112322732026855861926995786777704695187246438792994456915215965870287589492834831491219803990132964712155820797186314184567219835492736366572276931644451205049455879434809770894259444760874380897020638579531284497961083335556557096033501642881526185315884860555204682206187389052625907115523062923514413021997289201048272981820356615320357907982014647118567715905428584382062026468337290201216393000618852594011303712722365532741158028249993734385926467636004471919173333945758142306929106276543222382728065139894828452012997974568275065684473291074474144872203307456775662626412628692409547711366446556262673235415687292107751985752756712368692565912766632798396434288923086713304313443763177047098432231930917748165342960318265857591902424903335004404324414992167400259314499205041001343892000856137838083794320985046202431187868607399207063910859586274082056916423405466452096368992928501148478795524509189338242870651271834491475586184771536531731355272865191259948314683439669709567758579217396643424407929131209839547555906325102036668473935001144810324765630971920179549050535588763520236215905155128453696444596180173413816109623134662945257443675409973854018129712953728080502837229617380772601809799796815520579966702803682723842506087385821531271854215804402532774739476576271016786639426703234511421087834017073049906710689283942728085863151756081631392043560333846248719690478435798138655393274360598079019977260372400780221183656211424085541865653566092008464273476919764084920123174030664042421774492366389483680922536461224222930228733643682443032260936006709017137322511922222413000183166719381390357194536603066529905337412604372799057007424274906089713685339643700796737470550947341597092978407203080069503558099876157714884733899055122070475984171082731859055004922999300273848035422138813592607796997999612614674419690090081286967713927965059313290495669639979116465884144735404898198610497687391280983587238390449895284791027849149455266661098314603253532531006169592194192843403323112172483603918456533071050385655329969496808506698282065136693275137767438968417959585915754476595558393009359649950334964413085163569970064853168720374333847017941943613869510432179634619874687937810042569977791237030948137830859471121428713946850100144897138001967273348783463467406030336342734740391012470209416438729148833390025780522343177477528862994041500653904425988396267744846149052324162617859913815475424141136616394157362226181323782687310515059915492211422069364330439054463306019364794843259198177246676928532451258004856976877791129728238707972049609843391808939110531067953984926834952346823427129801840866411828060549308510639043114981964295642106663213604244345161910402069208181000744787432971219184846749221096017193360673833830610355056606217424748765358585411632389407120507258999997346689134203932477903613772416078376276581421565995040984702400301797625779150821316102498129446322067577602206529267854809779278353293626611690571470094245426743440006115441982719108138426843139698903590602329991295156740012496802221559604990411252610583690460587238476434149631421747651350305696008524582201438319814204691638268464369354718891379413156618158253363492769443639209924491239903118205469683699358267558818978692361428409174099835350769328032773694059917041448120668955089160534567396437419430112626685096996673997373466954319301795523203783197671008797631141908216439001095462028806357259825135917827987482959609222143570934537855673671256028357529129301969182037760569866089305792607404982967516868030574724194062504665617462151117821353818465825459282618750119550210906565789902058831619104308045629305306611942855015021171512685894058831133279773374925345543303143533616336846941511960885863316377038793101884269985885585303380455986013266729253053849305710776443365883474190580271064020003892434480512789079129697816520023173423241898122189560618283946689093009981712831225002561756649516616058895100252115017009270384330830872920555165862030221374132672448141619512762351058600927210680214564795956390802790193868210840005028261218265210560572932461143713438474500208047115469461007377933635786880642237629171489769897649959468395112286323339622810808040350334145571487771369566546603360463050641202126242556930831872054391349249788309695546844664561353800053020876027511657190702128496737695238227979398551366649415044442352695113766165324624750989022717224405418586301768366116606320608967907382231209061019730057654392139131364849194108044243798383523463034496035184781122751823455777977616517945002088457798469057939063405701222803384686259892743259646875142408596669944195598636791767674422041487596148417739242368535584472266154518252226723635909270368325836427902662307770805228511736701410420761844377759390031053942699031090117628083261693504803063300078980888401002910013157337855798015370196897117608847830213778503009189424263013275191329182210317083119922453832167523698193774187883280045840886665258481480584558475484938559105539562070843026326997004763579319219901873099076262861879395140290266821678658487345400573696958490991441971735418805388442725207130888175095858751879143077190235187201542321160829673201140996193172621207512174028170071288036563755426434573665802100734310784952728780985069986403498382457625432482824772479636969734800195952884374066366221669745591983828221653371777966395756346905758348861311120907065736893492161371348181821447523962721066076696033742087334391694342761706149836352718616860919069133432821290026065005770773903631252837642756482526001138004854197963781589563807506664362446903890422859872525966716092754028742362404096823678427879343710336787132409860558325709554806185971175621305674245572507577050317778398399078426444291855693374071514071418971033084666350330523519895014614340088338034332805208858051975351607610612675975501129857742051990805174536674663369008183218146096630416778745700990350452253683773243161431709911239155755522899453523867306632789043934020642805101171945509863699394968284616471333635269346970706670346339834851229735674307198981754295985252356956057616703133840204306951550989942573788196138858306659630094212265723465088768785409804983798246976245151509601522335991010753680398270872814413353351085885103556485435556868947320438131187581472631815441992350577313115414809562854096314222139560242045385818074668324648857484835046191178582773122589844934375865963555630561205957006467005029814752273750619929204761157524793411522271841196845378638963419089634992855278648378740926292655774213729060509144258811289711459852713647260803087625062924371614714900728605470090190133033413457352730343104456647694532163809955087842476054632715728955437001116911840292884931539212048067985668924047009226654251236505875867465388876274358794871504735485279991767140255765122079184873171289570638874721053004723623806671371490758423779736834561793986435932989012287917186620860535343347253582573796076601246345879557078491624089526771759435900151500418559810062765890305825141221014491354334444081751023073773624891983589619347816784940021175353835650107678466019123105665612402074972017788521991179071609522659818913700485543235162889513301638757002443699956376205189808834795588249695737669634300346689939775837939560230489466094284557013424713590187693684433587669983961419380258710695796792807248956612051785103970862404998029611847447701826290399339547111312896372619576476707479322799445316886300424393439643462749216757153538199850583300130020539939859801508895025809159048368194664846395883233879496001657098348412836237228409814252217149326360891273273322694732031145649160896957997000511412532568071956609827673998901073804844435887381264507263070855178562062199831601199880776246466307716874813076216055408048441790490192832105944245947117294521276134419624750957316606163462924788150493320843791204877721720807278558607137356206252132979422206352561540567356546506570297753242033058640127754777201285342532874743706978834131993170195259986870003864893684957841113933717090599154609085116218629415762367973211400216954055235703925205204230661220854136771312370782799278787106747459132390755348135142441006213348498278302383224734537893972895833791396347697603453532891028036606919692819544392705389355583133360526326805258426687529244217272918300398426950056834318143046411812106919071327424727696000405452072305743990255588192208782583570825146504259150956393113943878398216730699922237263512201998808692308927588800892363671143648566941418452009927833557231840914149664085593470203079668102489239655334479537897666761593761025115040017383877232659176334405265212551880769617090760608016361416020936907065955064567380631146264040963468202597056536189445409337938051283991863414554965443330094715094635401637418592633827994777783950402493358099655652405748167929702616778452100065528732793725537897420990618356602448462178332233728913701967900497173998127664015663894031925155714507255671106795532188759758107362768395638918897820096309991570978983599481650612945080801912639099914884198136182024693895322722590703618346125589136058092885564955069291229574405977771626670709062614064696744002547346567543248610406899957492517248998096972722490743161799326495164449161327470967819271665410093538810193375550759723915477043318722133971324080281178523746455383913254038845593897556004616666973606428703745919934252598739174495861361502863591784973681893998393993892511125264341759248677807330540706504097856428901228419012370066495316175551855497567979368219730019727294363284427041039931653252138732837903107545746669520312577101831524371495030888190468105734544691006628952295180728753969257317929073550415453443141524994078489080213321773985314699731529494987917972795442379347867052465707210621920820674246341346662259403005462873167366024641181991723676422282317735993200619375481455553207581667135313984162957899402148824881265161488811127410768234087746197990132282309119542425464561032151984104878380123484180145041214265153096158232121642961345166274848906069864955093141353156614613345898805470972635567389268752044617232674443207561030803297126899444579716177287966504059098112481888535969501888998234951384592510865450432548631170369177200316817339904581390104772255337372744291667260209188866699270188142812341510653124639662818352810932096840701525051662910321736083002150569135277182480591377787519565715083507750688179924114137633529705456251359423134521436621448632978663884705014587271114375069716551923743142671476123520339953534424286359368650750398301143712488250356526010617834550743584458202647585676971162111028413952250453128691749400642897424936311411548041668951832583434337821029168344010799716534564899405761819647325962503746169697075880468163413076255466125920340489412106166706163759046932935244353449633819779085085526483427388205129029819554659233260632222626827482993337896638883474449546731507848491611914397732762477106372562025919953869779024200022548035631091512784607897233869977883512810060099448907422872462307803359425970151452592452013648393410977935581282276786553429431449868137262150980830454183196695034114245876619806893756400666810284527268920250213078286247453696933241738682123573423260703762267738222771015102581114027298203020809553738940331500204619680707247706134589314486963278711280308723043832371125679118208481581061757640493318505516772914520421264938115750351683204398977377167255352510490552275873566872703317266769243267665357554146519844954072916207893728898761340078954860277206308392693817098066125283354287161079602851330312633609995011545807297450784293381208196152452425161255278375763505623732478336663297743332827267686049268672827875819818919575906827856776277192725446971814761940243049032735601525800438658397042455350482379306520090270797212179719575186693629505991215338886790685806679657013403640312223412523251311710975789971448469685345694024633180159339469512981754511859912581271212824901503486159703998887543191110525544357691572397012652733342896557405776329500793166972209787026447423856054069624993417494991092292101222896937395444368142016669972986734116495552435368425226388393951452767155397446901174631275211647178349693145869499384762024017748022447597639815075344886676122670557091546164524683499982526539944986182194149930199051936784777776849835832767978475503684268495069008914100147446978092754094317107176360023358130310613136438353443502142991673742521666683172918961142745006683491084657807669256344385113187395374211085823628756162969891647486900348427378374652642508646280856425448406032181631870870215288171628656964732014107600688855850723263892959026647663175229280404306918536946943979359720101983644601498724160396016956537917636263334286374330330241131186003218401082531708458422657329185883566743731468268443136382142512862677333341777529490984025454370756559179518212840181499541281534507455910625722838169216712564646606431746318768396488110093666495438770204366224935520965416620077420952233751151609564874268813170971002720305259040511143660407030949346617356505785351400280775598867952245434566188472184769613456292763946667749619213064094739111615614870820301998571805668301831156651594618237391072257364315742119529636474024539608527127211227039004692683762065991128044991446851934448037351760023657074427407875963598074986560254391437497919013466623641114401245759290245305852595175253824661387103196400559846848247473973341051131802771658603535027683982182399865540785915074651849835434503583523946428864939921976092756146915190317789756942880733980566545443073070616097225671613179384282679972342014893489048821510821690814494450681929336090500823565103765546990861575586360042551004743281262796705383227627700087984187407368535985645561038640932778137204625041007427920812490958441997326334301866275224126347491896797813105089522180086511584491040021115093638451507565813858828794843017135292119176742739619763995762297165723622792468662380655327458235444001656142007611256254695797630020566094277846802619986579273616574517777501048532534051645430104103286699249677680273707308519175647952254288179722971422889185249310517883148832239890201104571117228645255523649523546909877299033407164107671010569650257900278933048051541765110528561357669583910892290902665282994386111225864544182502385806970293232538545010764951565509118688510418783969303893213878732103631117705884917033684263204233814586972740129629789616786510916568335055038926644825486835249555614207836701906987001136888840771614116219050779376007808820492366180672990789778317891460802122390924839036763653430821307713971637632325452545346692457366363628021807414499235081751105048826467918298793375248384782424049892387311889880715616204697285977548796693513849788704153671268545582994717146301999531115353276816097476728176301092188953988296802915266117733299574212873022280976226082985340492755512191675410738580485114546820750820439918446497289368474723178525029822363309897488135074219181357907235922738956985888105188632984692697948136956495362850273593106872522593708623043627841658053009173304330898787823617488980519285796238715559202547771926392179939123578345607612972108276070514343371400819101242402737398557291506026297505252696217065418767537339290472817907886848314025820685383662310878874791365441519198176619786608169551195497598607124949113517361514500237668240801479045697115214785679262999008757638193637564083199311756213001017559045872990778343799583933766274040284926028282066407201264807699780581882897105778250214928439081270152341073874855022783377155274179606353056274091250939762798723251307381227859240667433258813458284555550091881271953416616932731727394605562547687896291849103030865673335957831665140079667136538718728123964096301465801787050963050261747451098787388735947319170599993349505117966586979531736577372070301461369523979911340806049365191573626068562450602055035229117654263630114017734263900511210199940862920448325288183364977941818290563668902942870705226486247555483999809754024097801802313844660111799325285910375559433446239746011330944784338773748631639957895229034150819295516736430258783602061534135331237904228950217933655744341788541445920088506138016060727314288945665908836454030851693156949522734398573420028012496849676049094019930410677196868094593430897771428683667407450757183323223784905188566200050158576823585635284707825780270863980442110261314461856753981158452813926689153520527520568388782360689274507360896987524349774360764596797041511724425943444739306626330557926672853216870566405599853314667316882748929907445412986864710337445936917925506723372838519221276623527302843905400276452423798295731664972547397951693954423493573965469358626418689433719768147016855549636650388076514534329589324375181125070542032492821307548212793274534002735521892379783159590243386798485989395895744195347188063324948040854105744406142048861736641205234253637860846936709212866704100427071994644550805868290380016639220825670323421835708210110073573008722432273072534940262775568229636512213780843781291799102646385371532460836367633019660926402339901732467079078536192972748587870039910316711171237901147393417766339235488277111717879118554081706980485653860071998353723034071162560455664087065727744652056582986694328841737058580099249801341160963792744462090464532003319074875954545304370999163230274973703692755091702073077251114198336012199582139067149043602650883284166616118515648423803872515238797272514663238163671252440699625905461497243448385101854891138090470058884656792634174502436076980214964849232229791244657825961582456918524204346961096147815278128864004180687631599712670030009413469024844313736158804123395416352303921656518969200552124354646900047896370939400282625415789448340437994116082197286640497531023237426207468941452964955498820769521111025049838510770178722286476776328000304282614042603347951994763189565186169370418058246619744854045399355388973960892456946814957471658164379663091530345225430366076349617868551742789082337040975551909847790614307333359482259181659204483451408876335422149923384274801016200799341175726215121126088475816822295339666004871110118283181186625976151302550958953491173995380419949605917087489779826905953380786461790007699472081944398242967535097428402429795371677934399627593469536779398493657369848864943522487763633357787417512531235076362010177083210475286911163815783722602867129499677040218768071355530387983464191928150131126995501485105395575377460048166606273661990232214150293835371459902150884540728424040649067237353944813733212068509805965621667485490871796510907585951964497685625861844007870196437547582760183110175091058476624061955567910018177616306662031696245864187383837486161496228564247891583919422223263471547253058754412102034084749974417832088319398508499255437919781420041576668786956627672961931520569335641762395965489293196535281057096272503384141652846776828975822362044049186606420620194379091848546947404860055880634930629321564346418313617383027279879261335137661264309832001369932741667853887409933947668891350861930608436016779001223115921700479677952874890234221226008081657031275189886377950704089086266052476773786913443166140023284188394306275972307615124075426639086246973909054049273882742807541475194858616284286360190360049327222180837565663263610691199114617680007346122317226084646484126756004591565268844982618657314142863409319777286157692756819029285010765171000613747070000343373386490840859450601843299264382941023151035182723957457555027619936806345478452582739726204554932642026255755120925828559333436913051879714852241038530079245198213330632477918467299856807813556925924091032353059827596166480890162927566105734881426552071196829104975082434623102831103800008016493568321768138661306266411597700077980711884547007916286894568075216718219303271883406994431596256304893515328348467165460810880281769994173374641602301714258474906988977277888871532393862714405473000137571662465311661246688023360438068949497162443325648195013455193148154027245173185787746184324700149200197533256296980790320832954956938822841707505144241527288328940184067996763207685258181222182731175031187159372057655666284715881865532919277609721704445141567334734002075136692738845459621968308422134458812334305696133603611461745927917443395932076994154648432695479856190589483039985711235090540988481158391234825873329452358220169580827676675236987989261726589420001209591081820556335523041759070547883214678290735575551386520266941720873277384303776007860043550136759658578031097281076943718287430400638502179945564298907848115940778419278793726895021261651711207363793298122590650481509796603361540714138817177757387249665638914173239239041334172597858514805932492585166776060504366142646895392506824479605632019069474447040375435965262166441640964329226285853139913428210880606314642273777704567054537633238914794800105146089759498406133410819795760046965551211399611033611483408892516737344947144750231216089075008499312482729240696822702629392848467694194498396724208672144888571708458236176731640024728933505112810726938442416404962152886575213490739332873795665145085459411404567682155215196923166135422400063303633825675707020623990192055738172372907563098778336659155218355580370815158593328813446844621508694723836565463628088004719163524587541384711586220365845013670370210516558027753562629536078266376563608084632270658169753812605904401521494891316182221778037075609320081940591858620589557080379044107080748689976361076644558539704267105588853094857122337698175559030063236746033628187819577112888966269098736463701206689024808173941942320443823691322255203015487045443415554721914902148542993276502000167612743969911574549654098772793368093726037110524859164534442700580514913974522114585571908241095389527874382924013345550174627112438841066851669120293893126918805848559871915800009631204116731041861968681602180506475394297732411024995985519549655968136503628451730746846054224353111738638110210029747818487966123537322527621981105095729693887984392194777107126512210854385642056111817433912148562595611441607545654781527123758643066914156040859300664222588731449934440213559164011405155305814611883144187254915711277698577567861634552754251046245500724060056972536496870493033726342851234389571358147418975047077393684763203541386392190791221533378694614244495109460676872887565599854153057826418259859117011873807606111442143058813050553551793894074386960863773206973520488650019782202191448162801485025035914295025556963246453978081298294778963094727789933386586197021302131708670885521693402769262836334443513584181494541515138717693107371942770620630958773516263980262467676749468603093241848132475579313003702644513918226464332178458397544509551972874036755790087298221785564944119328425974661058480919812095498411247421502627580061707379450534985831677540593062882608124442767739532930834050181904894081685584404440293317959305300611239656555496865440362409181597270805161518155265811027052249356235870304476762980131938384978576161639328866885499870058936085970436643428426918292681739159600269120337422630449719884806124960972400030916822815244023059616806494341970057143808809225775249421166663315863960902897855339885803168405937812131475565030535151291413197396517027971840915056228972309649015579721135509474710134095591857537232953615774640799360570499293996950545889634647201718054995867778458785964273181805237497055140296639227056297673676841464019912372140992569925379884502050766375463121201541850044406114720214190915943206371044581954347610441110517634856698141050773287610653036625428076642214440923485620980031359446535825341267069815589219671329739907000562992165069928592298900923242705625124553992925283693201427206848466533184651486391689656004929688324234835780637136829055607383721155601860186053539957116324836830773655200739291119596593825135636324531130466872163876691539342047152669905390897210158656391134018975983078626223046639254576705276747310484210994197034172524764056394246739942510064742299859161996713545503644657151955619381520241341400677758679626773513611940109952577421755742463002388159171749783002560206346047712028053992366940138593953587675316294469872287043855326175632768359460023121618343587539848653987763158589381599739711335101476361644280421495302294644798753383152060834578802285536222697458328638483826177301986901462237806996520832354668557104829471996805220678147707561349089719478829073123567036625932908280899190017247977474148253037022307081414374451690379861753114201269858635175209181518658891585558617676035218522026918053228761712962127108221282588716735918409827702215905492265816226649548693979262859033323270435075015131749618843040688477542542798873709199248680051532268787704688877811582214915161211050332239238594065933596579169135837066781032446811651961794980431632984893791992128683919168680304688211948197851488997218065781551940674005625712293875122606956284317974900443916986799627225614446680911136221437557793879222293307914440830974541457300139071229722621353376183613811198807517499703687701564997092040347971036707050187858685061454856422764001705604070622120375233068725412625692370466317417102809301671335985056960224614375399946190630891607875202189883778164232102813698613724885065025062569746048641067314145391739452671228680761255009401890109626016328363559269411452194256626950465108541105778633501918956889046781963661694255197766146063522676911992176661311946503525220523322521483146316833323581378579709094290486148517258340774911854271030997105107298688219686606910908873828522989673696190986937220837164342915149796815944198200521311222614176743081091095886161743734860869781903785743481138728151727424788250827402837414841514412902485670291608513686898851150088510614291414045896285547312942955680549603355903977548689918575682913937140399962101695493022819573447425224280605296474195016672773614548787411358459192130665615597802743194266063940471639247384615561730508854774977871678035725581340760852664627082528713438138009360008487547417925317739987204556106458645490014384412691029468738381698171532619538153247175149814277038704532374842413895117036257879082465336819237532915146551721873596493435242249511351054562567159366158113301194442753066706986445744552370513650414174699056883079075885664664607483245166831616382666114280649104524040334033334662640532676751713170657764883470676343587896354828959095741021997918623355219332474435610979234518882520468809071191008533420598953020785083651317722073122445983401429329280700545976649697199923447076803335619083779166016568609681440747601305043567703218563478559903326543283378034951840400334122654187189987759118980864602964744313498633705520194747712231277086707775129866038873345623345174893854517649730665563456998395009419532410689633431448139545808596761785029520093184334363653779498622612111724225635396274098031675389859366094191704596116671334138736774427338003512982547440639713893945748557949038131387298309968100471160492813052992361667112183526880244160975204101273674676372377437783010148095038823807390815275648995694010942990907077446815926186915992248540419142957080259198044323743380863278389545340285385701753074405996512803618997326957871714196282540378105575433804923084185319248619837552309143066201475889959360624831520059126325298580104108532350669237258117592599882090764819307105152992830552183311543203098916709874138770339409461623842159287348128545627886962033224694728414048563662933115213171293114004339321228844490178340588622102511782516815990778627978734377862060665417339918421467949436429161136190738017292701513869818447853049110356554655960342147666621840599653558964796959318978132224504503180987964201600816616761386459124810478651236190256439004171762842180424245891901244469874252225136724795733264097166761224685981271468736006715274168162909341220118798278376713297774444826622027159172480657955912653036440256892005701354002883030979967896666086945413548979337685320208195836334340811706664551992795868215717196022326448550720060292254768790495627031651488763710223573763230546614769084816164608445298167377112643995684475575753970660197571575698337344167905798881072675174094825909972663956761141387331288390754950355350192265194322626326389666807197154179587763213913902750018815586124407955970189039703593803291186728883938022288720008724325058642816762926210387997500152870055588310271317731179735057265776039585927128001428888756328241663709421389272933543509460852945659699053619061469934546176336794708825588022202610285213075071411821762319411548556200596888407024593422133244391203632970145561780273240093660858902244206119561739685082057937301046818752432947610277147818283881894940809966548029301776784252687100219863644178477380866175624860101835453563253790234649770573356412474586247125503076090672209345507860089709860554289518580859237693603631724075405358519807834004586498918115638545957702224987673590750195516958896758678414466329925156620170721393410462796538720137579334581518911071800318088309260715512883941070260682003142247511768565477127864223975091039482959742047941760905727746252438117454628429502786460996823022605598794704013053447763256865568934247219703005016475961673831787421432863637672581852224157716123611190702495392504282752846982763967874435775930110576727399631720983012701046870034782674272992589169367119685070212213066068999930890235376541779640315209588803185609031515441195093190907703776342717480096617720527341696427307820025773688996290434326385187312606598588716586613661924866293034572300837679738183658899329152210318858502279950073960451085805471818792203457413976255122998478147978991117509904695059381857741655983896686311174343295955640001689041109479530181022323373036068405988954706673012889051479582570836534127028563788092633258888944226776983998324753044958059692209119683897373018613115387636443929910108403851775545228986467092484786578151499749915600992708607119252644590702944640800349513556366760156470889260837062827307883789120624617047262410138614830601485004548885045480499780664197083404970569933806152620430570407821754727216648148944985495944797602277291985191250078016873162791050042484484333604811970311730384714341379296672805554392955511244320496741973729460815432498188050641067084369973676678017379765129560039618361378871858850652508184245800510130095010238142568868556911993302724500858977466291884501897376369567283597082456639910222218690430373666761685195370034778248831234520723538182162986513818250562119907068143383578924251204161518897582850866406588870304322866331687726921706008186087223682472793121748056795058705002018211896247195998987533133911459348372205843508846942626884422871824926955670673319671298455216447551506486438168501649194309949494901056491846072158101021025381504233774592604103935811837633612997743468148925351207421716691971740734638323006801231593410060272271373142428979407038887259781039242796974347575775914803091874659067361315957286368950998968434218896059821386809375730439498343107137220972028206002581711034134625381708892727143475485581776202471231139080198356980895203343229757234064285670092147699583765054355806291729768109796423500227837684840696458219528780070362801172713121696452204961319698664080092757168199816516654018928811102891514371852417775989439231307431764081227187730065685510390403161935972420530160208772829190174074225728480618597592278892600606004857290054110531841082055504859698550787903133182205890040212650523191359602610677157547894425563001449576960801169854327019511603711106857360339752826489579798981873681931786142089111164020170049100944010121362125144296690534863410657293935818871835962918417093980194993266532117839181914033362403543818469988886454993773080429497859122501149696311470014479757207404699679022228094194280187114638162952762312285390565179945129384474993752817856878006058160292631813612319202611147812658321121856863867809208574231254599311685512300017532094590015395499375687941102252933271069022069526017955779648249134034688911899952396690351127786266928864530115430512068350796606313131156087466619869296638595634764630311219638461766228027317311246505703252950523958058599652477887743433632155644748454208719319661353164839268569967766256659320442953451077720128779647174229778699396225859607630111077859161490518801601516578909275974786719141550768523144472861681099006193974114604602947896398308719783907583033964785588551147610162330113035575641555660250723454389652603821248181759454794677058642597286511054779264044946655086748984334282542803427441845731512231656319170572264208030033079121297438735591621115104232516854233223987212609090220859807659927111139388980116047679372050475471459600535787773497269972468791279310255356266317803603961823935459554544712211297630648357017769584962710797856610474725813470499719248622991874466701678686686303230961522059216179242151268183372333402611419074261781693771995932286996523563564625585045284067809074309311105785280866695636868819936369207344310273718109287523834338952343578992929613964273546423234807643909519102687920834757424751455568904162372980256942939282674993856198851677381659856468223677223499811132683338965843753714992357530732086977868332563034684853047932118757134955449754001969331357437971196491165565641455776948040320040428448036238029642827097154641248853927575380563120485545529952723014375204219498100852080355153341353087050846353342157512639283726798643593873867464808660985089763647766363133180743363569376529079669642743410832894192328150088671611973427541301391783696914288425238458394880801864408249435468775703209683556605102967323725603575079759187156123515885371227601301010094389998284271752433311169369796110556878330458224072360222864242293121063864705612453303377890497882246728123973736227865249177233671989704995067305267091103654017920110476265939017574983033057000016442994974477233766973652021572784339240099165096548356908495134616113470891259550160297108401473394041328724362380252445492727509280501062481199886246000098935142048011786814709695781198731843300264180537191463438783813417753901148930571950772884122086578864299617456865506700664220967554444079663605767938140869100162120794307535943761486001135319909686988175395396998168760014667671152874988252165341131713336764221817316571222814298737123435367796858212542445869931305385615705930858937853693997453130168306925666249283864023687257920853827158623190382464463351665593709310446919945878778855966392155520311245411022480632068700217636802926552036631431189102242659048220311515501807707865062738123429729998154870630132271611508183901988806921671965457407090301930839153870356587247949293045144631017385126041047473471373367454095658453908071478482397681167921728208056772863815831592008466053406974053452655278950753363279852639148268762956828806365059830340068556026812714969876210188152378279854100029431756950814116288336411511233937172613838634587917503824975769808048064242357900519171606351195543520585512417310203653197453972761723425715368351563265989836325109766794547128314949340012740742658068395342097928515696256585912420098629315704533416183439928615067370858401593619449324035115813136682304130888903509897832419174310195957404321841324786961595925411493676185191876261912342780808156025260603112086772924389299980834133729883756560604790145579105639277691126825182159283480720552960643940032216238152137381039421112469307270100145363624033539610578794996905428435715619552871102749947365506443529939086245578048798298171671050582925611196490978672866508341687382267857263232372620265167071523356323317593771105525760565618755861321174338665656499962221714843595482175960420384344131576680887170849196486107149762437258887954636132955849253515733314977732381816997669489117174178214689973330555502189853933665768571657217118487195876125671610677691160202141133299204947101068427730857579343429540332551520782832523324477711521424453043276963824387481200580014184532330461998465065498103910142229577573827196044027083681421367092671892469370228029377529790774535775387594109086494034273617004543395349221468264122070034164047516500022125380091027812233025493820236942720548082204920596248446007304528726469274738358764404799483723667321506891792848838249230029184011042146446284915798921304664312737713795441785926499632461601885150821770494542640078325892773771669180499559053881342944948159434517656107839088170000420342630349611974052905620349654034101412295458567857244854895055611224735334139157277815455121832154972850098846927601273571714796220009848648434004682545544770042847149214911707667738696491321531076486147561192916346458350702898824185035330266207472373661004746000857368586201199881279327555853954259699497382788346126823515038210494538960507944981806144269391868696725244345015438381121390506699659224175092072274517370053430017009301960320955108335571465555207910482189640879204942997996061936704612097244915212619593913079546247242720748752721282830791029327429277481146176844517697498474539920537223155524859097176157009417035631923178602816438549705742967649521779073415055645885595132774935823033083973977152048765561707381888947362288139752028347218087557146401791053139371590067791373094699648131435248110685597436229610037877407355812466691639525711887344023303242496259817884216503258866803251103005887249956939883313897833821363440384293415970060621428088222548214940244663589897566624289455341258093103790352870568620892053015396327705627184080915245819016019026365283716505616260411165710839210835568765270298664395013352845424232263182042272164855731163621957893448122129755116808852185400950729200910592898058520812395626707572443669150037133528248786500959465377262729678020397293367720315298856067596133570889007551618005967436546308631389432410487642870122386675129469733487689149841147736631756771901170993421816265139707150744961128223669775598026099131911124336706654697129749505056166237348149411707067588079421317082748253380477926205823766782873269836380819494681919547995428800511636439380173672734323937212409581157432452424268537367142074008916325540718345192835348103252152213465370246996633641415855224954893057800634563085406822507155831478162306809204809293142293429561576746749502053163886217228900544152979527054779927609876872298882059360490679216563071798295651972724918573923817473455799695956358196866137134354004554821798935044589593719789882729376980798070868059912616533513582111832521223873518138804788705322490851616598061928889493505833098860533296133466286447997102041880964852356825346300733684750018195142622403779817432475132329312319352226769009004993737414564255225716851791064930530252751745828429953685842851317287365674778709502328232915538678592287576684235651759955003393643502191055901497321907711565823796254922673416105738664464754887078890273638744458572374884698888023335364430809294307518941245749206736471264171159368955219274852415784273542504181241206347361903178625247459339574075847646417274164572648438159975607579365670079615059150893232098608625994284247806289171192326228675049450409372267512912053935909321750069123087243499284652316524001887042787839463837069985342542236441524079274681164731130780434470433218154196316402623290489463023348020968085544004251562218230703694889129724751610863282161675851117491806392587644400069640471147111241368462484533734034718186568953455687399132192532793619145037960878573645251703203109131308392048445341501367216583768399207320795111682144071059261904564826238824382860313932730926661364888094875000726497150022844422815710040477883318999308076307810150203730231972125269854621521240513648293164638741430677955635888656681924681187940898400206150525098001439531922298021945143097588994648866275573561923486791738880746337242097293889231968262525535963246074843051710084235815375023264251392719028931469483571575479312705140450716464997314735203624896206171152597740503339388269639581026008970556151258512987995799237921939508308832095027145199053724523811625238762990214296170644621250032909469345603567499659964740381958001194699278262217845884296399784979516254281750661808986001160384827535568915197351793788280173377964623106464013803385109709567154494803415236992593232865793954088410655998554351517304483690805350680286028961424046336601914214508907210603665546697921228709536417565906425974949755296204950398905345397102441874105036816658507773513058995017320849634118732454936657561412562112802881835250922030947859702521257028228768094575506328410403687177921943950597972447545800732831908470921049399793830995559035903071120631338699801575507375429874020526341517155194268307118374685507062583844358838052138788250665648954324258359103381903040424090917289742011068556960018657154089431329807463059020599373001076636889147197187106756417333696842817225754514795780958454849335626419249862806845523442961971039938807770536436098160201215046626196879981820674571176375601474083910243235824757889553167411316908674130517583330620995907186510348895115035130073052234260127157364579777136962737262393096895476217425637225355281838851671768166466664207839965303052546331077943707980143113972748583559639144867588204700893035896731718859508883808543284302185731156367497228046330974070096765318784758162684383384823749125888237876443802161589952843758870832492356568233718348445684640905013822495114988753954286035558217755275417350818491108581700822730711111698992602370230496291224127439645576255932364405591892283062703884999243139521169379237822472693156977689044860044701350473789998985092344813627938613361799205006798819880308732701346973303558085701632405394989970560757491317581197889823715352052024839095240242579870737788861912792228772164696965185522352710067342356662810952718907075006391272622563179196652852856947438436136386563863890423090180682028355293398244883858649317603856875294678565204762834476958079215350405840288983149337727303132626383935994174658299551019472875790405946901778698307249729062194191030195051730553909603245152719948881597350882233236084876936412802668311558583778103759795309673709059977974531315941255120397325779118901190641773868907384181494200166435233919773416276137725241287511778191453009252756341347404908088538971370761806189971569689632138824395198976144307130502561590404108845066616436146911970457180699522288110791720800261218772197074622525824163852644545522395933933905850451170213550093034471185347720004806857946266711341060091750606835411965963485447737092593526962186713297337060803641819561622848612415474010812301723892609493342502518548073467774562003922386099118556078196741792683522976615845934785567590043421320410612983630277470682547751702582316812849603455955406756385823731218187219151736524972107118807110843080235298618726269050372509053822360333511001643590215502716473099453364434605424106096006289973115674144283023419668675337122768336537999675214087014935061730913868693958540104291351419592183913925662160008499015524108915164368813409390575828474921347589584979680832006768860365600635296413541801943612571019320626740685464466564338875238297974217788497608480936914230018639828775533371779471115798053208240131474405282509722263635515396546308711461508022080617929366934052722152174187722389193799440511501395260529960590779955195561253348701999239790650060122253398639945834030473437284304067063314470773952758729968990519095208709882116241429124029040726687006344152679795938506369743862194908705731657172321277777577381859695184300548623019915521721711740231788912039149496913863703509897718841297255002858692069707190538125372677481689822311475980899399825159028158300269047422723995557696487713819032745297483677968597781769486277172738636453040164191329395589889108501566965965002099614358124366234603452893590292860648327293862327858652372407762294484810189585938546700962040767570750342719570497844564459260668002044795209325732107180122169275905686898787822517856184989587114586948786144879495336978768260261161241602879986147057101808243896908254389982194459646230824501843930872282651841925040717500445140136305162557916927065517868929191629183404456810449948729834612667073206290383855379851132482644001340813555821096389270369427025540765297208208588976886359779804646318712229986518936546313104778171348669128678420658295228111724131893196408659082872792252508371019894623158344175999823784047647212969669137443170100055776572836308629790420234038754440504841405617358763782238125113482259990937994199608687300755613232160662336638803996704408672144321429994067886016129283129230667292932217834818421375019727840825259700627124901352970923737279584113399572988917148901168366161504361500174873356068302387112644267395006769059606221852763518806611237273735071926047035380714422609961888044262042069293804144931715416375714000917079703726651369835282585678531259122538487618593844761417225372684134031950221595826688340814601809182813150151051779218462902875336578402678117981344199552024609818462490739186775817698194495960418485485811476367621448468039569452964828943188117865988185398588217973921588050205499539358894368443671766548020125119405929988478919063505905774088959717411210893405712202930077083387324114104928408255268489943043266918732997911090303845218512795726711886781705473133379773118981397395621961329398285045362572445408058799745260423982921086056159958743969291218830485147306297694880492057110724426984300975856716998635360834441399543106375507838795692264763440093913533953353837630339885292550221356069428873277382602703326978518572525596331964957437408762978920711487708306634392307981155523604938836538521823356743412137214854044339385436578056348560146810386088381749740535947704057827805391757862417873782310396427331707557333282413513039533242499601678660925470079740102715261037744137243333003809954672441857907081509717242304058433183487139409973860039055625857290586503233241817138945594216271157361831134439029267747010956633591812106067922123078585552853616720660575767988738452440699991711573475897989310382348292057552147210866340480015203080213750288088813660233441652443917277582553303725018301969337209170843007275753765405443494217997160414372150668812124378991973441755907129790099878770638318904513705861227422123890119151917784445345177055304975826934613192628151196920016690008154797326257526156083782807673381162485911813753800812357558461487765663902800652601219894939926975229199155542874451433068120428174915637603817148338143597554572958903822604954523811829700089942957565860544762205465427380673605596293023115650024741324500930617395572302099213827311597889414131445607411550245568767474776608811285308459409988309614307240183308951205283484839435568349084834713826193126498698275074058757953987254692142667330772743040127956452258009585269190003256457370041796079511894148490180679760271621687283562715712971360342982909826592260212328748637062349182840814219566622515777148132510334007933822028639513230792566998759325344546211725706542574520220057158079183030716149597973564379136553802793983191438947227669536155382995569314134451929000765750851500553327089268585265805298104170039835077010328361883495113750834677346220494828726516984864550282259753633861170029720578256749946751886916890974251464556897466617335379937813928704650722768074944771080999243829878017682586545829750523531145310553104266878695524777045028383175878460611582518741702404173462043327452930700288381670664021097654824274856840004731981370179755709584006409431834676423838476711604087345589002667836721177485361063676524352071484057328559922388641427454792236942761424805413525388753418320248381642631234754590035484099620250063696458536324560716386014683710597102230651457665377631802608954453440725467982206284799797445470271809356920576148601547848006083227091215216410272553022184938610225121313934452086631661303136507813776178699331892280183635012750375923968607150982557030140159050719237573246599545598119650507935036876554492197059128472868098870913598892394457700036134234900393753387974589049956142798211620387283311681288174208605042305601590002670448330870685135269882001516168455162380569225098562177019730314181616352247726265227634024680328676266937811357467518369174968702520007605386563750514671919660372620347075094547118103550964055205906969476916194076104048974364098049486285978006834388429755733981142514294734824058258206944117594211377493231003105048833317742154951327498131175047393561561766581945426523734320731680351057544510833803224016285341386342614067900318385416746143165388291808870223806060776843871624088565557237042014926858852723910828809686663891879884968743924687809538098096110322077174166336230783772600744799202514980503561944959023011689070828064042045466459459397548545583164051590523821554180257977364665114696810300887675826469778263760528011609786029388219237896457176864668183390929606416748419117771977707177421535387130277964300974581819928956162235483590436221675158749704439152535478405862865055084507609798571876092122624739371600855989003442992009968482079699059074401277370717025918229354811154762450460601239844548404236653847511367763063231745002518798989996442515809965906116903361080149742515531323812440107372739181125572014039371149263857359661245008573187440428626464802795925762901505025791912049526934962589967028580520438151014903283995447693567470262230696498996656136901776940572275968480433046001356450407866094900928506051723122118353002515489936011261922443613090957057898668718988464017518083312245955735834140589146143516125256680878778113228545503244711965939062856790732193675672563983531300427996622836327938650130572542696541058994280835221804725946302386285105856982595483706994708649354001480985842748750882105624864614183559953173394466120448221600244098588948263338076150372290998478557209773968668112301692746427749450161484218375612524666357659426465643689317220881711829687337134699879104061638561343943500553254952116118391617876068511969485582718025437048408953526352704987589026831925888527906865087853556115088343747598611920052068430717889162615244029383555878092916706491188608554652624815116046605544289852718666941088933451168118459155677791169766462574052496184835631063582883418101989183666921320020790221635188445607856370233891779609649497130001381120354083783138271465570976792359725278327774534552681958660232926346418291884294912621590695077027785157803580678100203206091340580746526595117315865992349404747147426998237689324452771771185982444618741019608052415673072025248063331188519688047077443448470984227149842694402624694393770065669707328284723560695458060123062507055245106861520202287936465905247662312142549991835580625313908834677682337625843689069835011925846093088104063522192047446342068720480635330913417084378569880865053245074187486415025201189698280933538818114180932080779676389356882346131659019699269353122494028942396063160127387103349392301660142804893542402444847562060543315986902135271642269966301002790308213601602201540424314185588784557188084815887120315083772672613773330517485909005271014328399827596764273457113875237960001072577535067537495792680986690118948318849400179899206164579192268582867070484137194195513797041766382596241315350278011102263543656193804632927377417592852517896649119030881727226097285449439669663343201747111980439364675729943957564053877870289841806800392108865413638875509959937451636720604899804721266571073850006123246967523304649914284131014847654826724287977812164486024122239973074729743633206692021074924817707576051463308334053617025709488511777184573981549058474721067961811658049846067518959649493337414228559119482820622127073589467853817907659731675186082573469959445493325927794853366966377844582034555609796620628860629189201303630699309547850692499834357290979008487981457886507430986354284943754383353187860978894336123987011735673161318696978022427571477391304423219266228408655933530548402913671058133195569362007396615328708182586736250368639574874444587633350077788796989104089668904570791438526774358002291431001461511326111281924458482750287323090166796265156441821326313587985520506979785263817108543674255323287145877124484156636462237057718303359628005890057074328233322175160181276857255658363975914729388132802277611150708773048758275636458768019312648639400485876153479004597088392756392305438778658452639921262546085494284598708734955567790012655135515321820240615914063382018368337761763381042441199389307340068625761768778801696267480771507903873030905780551272888156251724892673764184853388206306592235270191693486925622820489726954846067192386368797823263175905939829930390712023537912502613783418950225953748256900054153370216534071449614582932715342397904983674728767253783883998032020090615272992520003755246881265429899077814870010189343648823504387089092675124951203717762895928477623810684350556773409658916958986345489540501444094329930902446568020351589645635433360784643869240147430907047770490804418618743825241928151825652292082327522613168588477698084832776676176260415643609960737006322093209727636864367777137330035080340418127943906266992724691406463544649359749936141330017841822901126309318036919848599263041025691976172348982328709677314749338695828313851128446630334771970263628733992005100862208690844408426556945994674719220647030680173057027922886374406887384483218905715428776539965344295356723511609350203521403783127089390665076747213956949893226261509077473973858020226694278587006040175729229919654141699580578831473285314444665460278335774407190021785316082133350778727885303834182270031521238255449734033298628786718528916662987599040630746533866460150327665861540775762748143051705628769942244923198904007829153124167019678961612879016063467278172351220559583736438069846962644176112497842068749098311478740971003047296836226581098862808415349801014540545500482680784681334471089846814858913477274709470950815950535921943740232058167789608361174967738690452833348580334982559430923115452870745100880032201082176963235992750070836751895831477319637250558970344046463442672333798964878874114048591923395314744318282575760708992599052020589344813077091110369567667195107088221808228328345449259099883182884224071899738199846849053082080603806617216593103661308396128845704113084074044613834182087044438841830041921439024036642447556991167813539471311837404380480838396437695615835003949533428075542616556076432609898380981294290859486131000628795834580069101183208263072752374304735698218836717909628087192461586400002442551146748421833354265944529811337559157095747510097734959255830340009618305721077442924001240455141760760307754050206651486195728595584653562675275474698425895687722626042376630466840561158418483938440549101793903507093682673409228786997808271451465105835475248389419129094910951761545724474454292072514920352116262437317941587586360575082083234070792806721374743750889061160586390690058549404383910760503120715775073258359451355390284861126194084449262105738558707385310238165833188553644302214065865859346418124475234958883452006002423421327161835676542250503337730635687396173909810643378225095414427878498934556613808329701606273558318882452606502329422424055669988155887203011238224284271246646324750146708377289809651446299387580661746059893580031587418410353375028097301886900040647848211534418020626364679219491368484951678292898882549551665203642607091069381996963788731658700336815119014738823736637689792407326627838145292283115448134326035840381819027941231953732551998168730308710048437485643991665176910350499593559204448413009123890347881585833535397628740574366201868747544535975212787311270689520242817333051786283019474517021311390637357192783402911589260755053975731527467392207697678289656383930225086748200750982547806790129635524451315723142707492414581586273282055679945769383907409437909000029191670362682828965656972795669454459626986112529751484633058485625643171533075208818014911728692032729036621876307124678170812519832827068115463367712030151484503217574772759701898816402905341287168440827583568626736065892173163203033653435961585296873397257042896010564677148023825694829506664763932684962810455481255504559072197740032170918200814929580954064383409812942009316852920209877624984072796100458956559039691076198062844761131853020277282532654183494514114943656414976772633884130762049124919059814331136284833570971422952873835328587576615189991581253531322971232454929898744682858456816489982608265013869350050116215270712497432503504929746915677322505271098029523959182068419934258375664173081103607018197162179508173916941705622191416125776985566024627102926436053402309397933468695453104440897657679427139550000644306026562134144850348432634084093804346355728576293293789236303987721597230101440003075316538319068640638886922018764110676111457877690354943156950963627239770550497570919429023709932069429744073007511215135985720251595503875245781884704225067049723168656467508437280923359518392081039343878579458584357994613664534498365263903473518928008898416739223450985929901516262224776909547135852382512223470037667026128410123556007910205972463732667351892293397207264255968498142580478273131570243239702480059954803081870468472596878715424720989173365687625648706282431700802623021736471912666663787586834242901957120981365893278972282939452133997097708943725733340663463723888853407412178671414795116899271919603361355439625195738915696279268351927819320868166488494157320644466765355086111355950095296013216063656722564737041510893921544085565410852807103617038357060573504611791106846451442932660770296129526697034398827729277806951675228264153694925505884504256669292164440303596007677512425185339061314868760015941751071414783480432252631605748681141800702786423005413939781029366235188445277274145889881846949549903576434351091315459339562928853728598877236578644217513373487141112677087266832383382063412327773494901401259180343388858466581455819438960797254697331412374994598770092792894690618235197865529062788239652186651170992168013435838591550506652963274441015583031413339492264295097794354434396679448075209065553338423123085959352251432767295653814120288151861756761989541620688846556245226582936423940646137566710974291161280450209376848779678949893223975068399139867800632635264122297335256629306946097671516915743623501881941280704442435728445022034570455145719767040074469180207644531610911743174496707135277205328501847797583390786467557411756567488797512621286153848675723165535400581882086103660863621402693634328365102785809858954307469521408576405033969268100325634771175604629299161403138949699109557256001761379413070413241067768545453445720757925573736081752283998185865812835364124449674987700646716584875523478221748129087509141247296753946355021317980861517506334516187255523543525310880215342203125132557094674293990919604650977749679935763255000480702424712930032655968673390362241623407953054253839810237064958442049907524915472358960265717312315555431082410377505609435112047957107849130593399729525615692872577062027628693463820044041765638512987016621567170728825880569957287883545614782560516464338538773097486896188002735606755829408813328759289393857707776397056811768718069089357853874154958385214451266444259050225637046208792393375611460017772402367917556637523398886619927331893822283577623226802467529767337327102067194537414595760719614213420365493201621216214226325607823365208109880085080838063587361800810113827298567187670391383597470445108606119947759876224336058648088668996636962437775236669977149242375060926040778464582526343621661467857443441023276853685277367424579287257287728560279076163197003548342796206110170380603171323363258770166783261595051577399439609158696905285606887445259063896562088100204785573987100459837836586698952470929398577332360117844025219278924098252866740331758520600351073229373194854523655758088967246708122972502467372483747884172710995386816720774586008793498409263641488709302502508826862685250249825790332880101796932708985525721776421762796310341154808236545788812396001437515542798777613811731722275898802003024645444119855962034115115443183329781289674321763694696589249855094697417789050796440412767826004741660054404382474543198855478075290205127760853164711338033347713102248122897997939212759395552562766399541354683964047702947831744962412372805948532656612513442600071599873301124377646265384464864904297904631575874281061281292553601459131328056657798941112700698620074427378165649453553462908203695859562649689453185154215386915718428362271127188297562594279742655996217681777956107834557679179485937817943959548803500505841721297382699212592856844089523560298585901066769353835300689520415161510495005067612556669805989624199998582627326284807726815782079099904254092670775690027588844643328441256452049405218222415944945322588713677163354466261233289149740671074479591085350147022292160102802114743351949217923230251001282189854389452051337004641487589292874375844817679510794065257193445515739602740629092279825110530683912856933423105058959212133750130730135397975656568536182760785738991299329948475298013857031750787609645599765832594124568323835541347926052632882340023921376983483375280110614708850476720820814932937458362136260848976575772022293824471410250358697723927070135317680381922438654385730153959352972220451974892926777772602040232211569063716691780718927179585083020376616566624219064146987482727106860852869420781711916341250459235575807280299147753957438304005368298063203933254564522620678580022155604266581488583321625779707074735694309704527941092821476304232250598301721800472798852035591024156047426480519532811651503138361302371515490826856975217585204987875884760884048841046519708722353696436870370608608253404056953201021205973340930806729539267517927387751350976441497490594148769750206040564095431239159409891150523507504296782140947613330555497645034433398844254105532740970330849291881981701990144864169096030652317314648317119898956622183866560046985091598419551748189698645784849921280254370767258951675516503672096782341871804022217427828101800986455388899402085655390512654547815973334231153534922674454223054535786060714783316772796028743391632671647036047162070954473089116688862825568644452576357835690622323673896591786048004397346606953810507882514194273690946403092550454475234536854839365807099574261428936692967668409268471596329897302760447623964594138277435943778313631977239252710984549744630805446181684975393575680332233383653238888749547075408110556147550217595206519083805140348365877833328894064956600886904616040434103737414318898829234175398453841623518093470284038570609354471993326316358571588228613690077541457462820195062061277317853094031776567091723719034191575787524451760463563090228683214114908021748846029313456072974163805238435808018193754483183888894772627068462103366031154211227392647497909369074525002702509385660211727011911127521630298630988702809722267457093941918527171910199293671113126447319042008241204678038714168513521481015295144725065081002054024145248163709103311631931379167742683985685919677143722666892105950839850984086785493391775443788411005007226807304120886694190771560127277714228874566033540818960118509612122894584481593009630810718387000407577280247967017194988577632646277186300797022780521021329298558894870664027460576833720739272785437676141656254877755217720440463381839184341949877158281269382916325831577830472634242768281192181676564451585954597991074060569881210697280901002210048609792167106568784909373593699494629646244326868550009636772967854743963777932852808150314139788379643234252189824558097110543403109464643240295395846156572281565625820761110100888458441368037909752196549645741802374098715497716991985851167787338399163197139419560844864610601201465552582319319729969798579902340898015179030879476288821522912407508593125664587561464163767368788901165729837724753250400582808022380005131978399689880472660356578746272563413401958444080815401446573825892749160557991718094343773665955651725271970520437927677474142344379638459987940778356094076234829525282010223763472591646407275475063987293723823518487406785717746588387746670397615553430596488980371746249095395022362570103625015611966628396731693355871285648627336991652153371206233229932506724143100754923386148888038192893804595068635479188443862422090569246213014312272505412886099717909408315834298504624369887350223224576157904769941517139432703905936054688897368980978996208333859271935811293226275809125448313501737166752341622763269649701440948713212145304690655319767349309180606791425321171823505385374366246377800597202648887993163583644149236228180253912723229467770345315172772739001764010174221797092398676397643859411711526656793554373046274030134377833761220013854980235723056026308890738465940867350206613180619477968219668254541529025366651431977857276109885822078755397211837599909554955282615977299713742744839269280286900878992914312946776344225118698178417671673168608967570874484192908320991137252902493858745854868621376437694956406077439389559620547916429300258275763011250590937994184551917589048857762104221818779975256686150217250678834079235068328946481451533104863058407597140592352096413965556091889250189674570552663049788374216021127502060609619048470746823156129295038586227165386034818882718598404313921367905921964399978876217039752956625843180539893350885045998203551805121147378038933304265605135034411658153377547134565101775984123294250975735051944336358203760720595010432191054102695735360087296540565501198451015486340879038370045899925803705952292656568918678591677312224780605297744795382691168469686362963052952188534868585254805051867848644922140642044147461242626567365879434694181303492912067342746055748155245550760466939855318730700849141455799560970571781348485193144772806145209110505997228223785319594666180813640525333965769766624339357691854466572462896393965191160543392695064326138732257778751752647915510509083733136658801175172904163198319254667690944286696461766769656563559515615891235833647130097882912230678271852691892704107830091163947662937449568239388729170810753553627840624999887348339980988403057179937811411481789482562344322759669629199132837414978651720825311861458335762783323460717333460373717618825453642300547707716310986231724966955476032780376634596801341621078870572911793773656509003410853678335448262958810593220762532380539499223396765561796314806701582235203661443232227243357322382444535874286573669642591642638555551738433556472759094370197542536921523249742845326468466268828190730415317418585315541304471082716672091769201993804102123203067873160175793594982957158566349997179944294806964561675349943898883198792347717664848970935728699655177448959241146520964195815412069268841728111768011850671726351303879149771553307240006243019498251181379758219054234108829461537279925648762681956721658614302217701607636838791654161784629603521257698125687097403612429039789926648074053196736273433048677923146303485866884835481155188984671123288265723932281724903822336232820191040892522890425319938383078679801747712252376586053195758460628054576417325634536599166898656962679278844903660781263145525892935058513654184690429822771965634232492258669441097353640724155564859529115052692426473938825452570887444294263005640235996818452392308223739755290500550511776703538983327486994287968413759835988730449437131849109802402972801082849419975899648935041165045247329344654574938301260899230817631701058166319261050624388674312930029215140061626440301125186088513652708047527447707590186237339573528232172852738675116748509138597210167651845353326988318371457910076831905573817355900492216372434934984704434813554823535279472510135426568102102571773799993737957344893178709814687639174156056650380245068234900533715054284878505261340338659484829995886535090636053012576292146382229171102386809393214941216926470785331776770403219564579228690133847626488530995268121704621615749217081591715756652231890711623373693645684410220056710152895838849853937796023220847233632024939122797775569754941458388121475123235139070294253456225259447952512650483965732347230502075726600003339730036818561930468396019916955870481667399043052253171684883035585372359148867774141353252968285282561323553740129835769950257827993732407474099289171324330922990004477847792823459463056029213188950768090316921626304361660565124742977037482286144127941509401903548972263738931316255643761031097819698324237797934435621579596713816670331840834929265114046573247338947782208998486797673548811749480993764894892574041545458224167465757601180338481934866417105137937043571028554460752078620922786809418124558212597691428149222338437702402769338796662185935998290711635973933641437798058622552442128084146609075494555205407588508393331153128813759533054604169456597854422777352097200252250061771690951182013165996285045856659697789650124207680177497143797684429700532054875280952255177410542582170743360127349202719416094276386222140052656278071570822091470697135901833776231187209654630781290337997344398608728429148239237067987324037816597280179459445539397406310020583921796603437821303367307261499615419134958081142690091503688612894546987446078275403620993543424868730153746266720304188994102755908769732660878274863409906848509499443300423394997866124409339420663935193384978807231046367315670385107565585257160586219146610000375569395774710471214325964844622799394328605921032815757866151347038491224385939590277625893319248463969110119863290510719870023953037423259755599048656246613761800212082994020741067949649449996274315936714390530851999828127490906026549571866417250718906719356196923258296806842224235830118674834871541377345488139591637849930381189636382825039191769658086219552531459986660792540612209856293330690034720465450766869048997694981610670930314478590900834446926253335225361821555725499169625633440122774562372722256778135642305235412542793267952693041069705577874646076509219911375324018512182618020331136947965956876165379709716334381785255199034121253653775616521149786673225979413982629253092203550157893564222320440544852857490991905981885623164032831496210363652865717503733756928251999751383046837662056385548410773829775850603426021079189577356562542672257738590474335067567907241394665371873255595914620890406033035737697447715473310073405456441662298566020778285572132324157186353629594928827260418390967319182044539689698097742967709613197361443219913988641509909892945150421251847506930039011118566208301077768747279525748249486164808781044029851642993541665963489674174356698148936325434496849259816475076613420383273747399160621998809207253679770785329598371067129334020713678400238862527375600373704895718935064716243328280533701386671171414401186649212772241994803976403772319127320268122195324237671919588102256111369077169971456734661300621044411392794436384476122700562387829701087936309167071850167739205788366918356583179660279324041219515547309709472615610612696160911895051617018152809447855667462256961784534553026342752750825037478443826788286806079266711642305376716777176729495886721637148858006072456715249673050672121636705312251604500507820898816311690577649013947996825525769084297405938465737278490802276543434095191221714608971731700649399063102444684520879119790064644062141490847428394246187866629219107152272915655228805912646314311241347693434358809286775413359633422917535556230231743093365789070491156541593577680717869972647256224956369580820040224469005658440131420805772347661121615985058292737566945540764712255708173198700792482028301526898389509559954950113989028459650698482247508188679225916084047766906675806138784288382205851107877106475843831601272816484398475411711706408091146478035468960182798534573129896340351814709208355388289734090066690716945401436319771929228092885718082331272357382960440177784130975634224679230416078191424437257493364823431795031389898341192373794691387945454215673085491740216433832671004044446995581438014645809519464992709746213263716594276413735171647313659061918068938057702166020538050189413545273170809032160678580505962017951001713551629631843339790575239998217554819000682088154950314290463515941213633262914092288088994818971050607400114075748815063898212445901090061719046086428356506245633250821290173095686092737016502454263218197874994937984249494870933938414914046405838942071341051396319767225771881895967457525137540589193782979601475685896029703000772492294044056027325165675198043503303049809252010180143852945125536797557094969187599121337270494939532982517793673372502871276559326764490508823114429744422402045033332523014826906034893755526293150335124224579038994095581901876667183097828411102635116812992709682121414700953081862433001091269995591122938696248233463226477724856910320497976725497016071174934819949391892615555749906571302834848537867324193051555999311760826664702868610258503654358019359562202458089628263435680401632398326285767779806121196096714740672737487534048118768731225239509367804924420399641630495501216228517195401187420421844625485981411346534777409675185601062527387176956628278183480913108175137408631267224443361485686630717077087986912831895207016041671643610280974936069459228864257969640352738340680093123184927766567231317669163293626223130671759210042227329858896352967238380143580257105730930386280608778181561597571810893889918893934085566899896081678334317063836802060345592223266557423306202519836459375271585207055408416307052974185851781651871487560209419904261643282742395947334640437863521359353618455807787127366507181815100800740141002482720360950142255248104998553834198219850236713598718326671406686546895005426509259845991018656058772951821208566949063689212685645435655942590557497781163577550525213163204881050280798600017444610613910930882272437531781050678005973351453986972312584846568659156150626178811194687876113189909542793069929897026993697948735143458164152434728475869693747444483111190032545308199644372189798070121296053565424947416606325843701661131250702451604075134944787860121058117169353482428546489327851119636733611551003712433264875287692664888798901151644295635516731419427183851960334949190263251787768479407408747921104551449331503683735024130237139916819798250557437777020830892251648134645403218668056431711632600864847058620978513143994221380609490158742508496765709191216729688467456972914162732402337435491717776770972546501401240832317799711304433451364104789997155199554622296171762500361138719123790577302132531774989318854929336579778021965060954147046006399562899051552367217032849900090143872618147821698072993671072059417414768234667111056017104505893898549062942150934398967538047280418860103921188388618722930390027021482020037967621660721116389308649234704609198534546936140338696577867470565498709381368215066855914909966533724890861435462171072443853170175757018825593271073117219634042512143538088358974264472872238371512969924932249071896363653387874086311535805496390721903500770985691308427168207824464296447197401563014788511963845342498510534180060926702753126706588466834484056427007667239556796668743799671999990096645678911854463809778876885684140974501074933117738601829664882132806965317773503557462159235425717745023688816615001816892747557429828301283317118576996725340462282184076369751495065908789475621915911834070756037630579466843426285564785145721595756433714168470811547876522413571227228622788187128505172583374255307995624270413390345035531166810552788599685817686591168807492281744186614857672103012685436575289271386000873337964480956040784361708690138496913858791807363663514176534194051467379487619180730951701911382100937671067868667638618066022152869639217326366058839245659688294228293327581605446890175719567611439805704129724460374334736704089669508889714472640653379041836428030720525306958926374199238712780612422458732193113540000378072061235005290903079645761344861145303190610443174933754173504085645260229499371378204264481028327185908948267791184010631412554532544063878776885889690984300535701779052684620171679319952891354924692068425643900979338040022275463377685571901626235315415714723044929993613905780332186289993414990483858994901022202636298585964294443458457651142377535535502248311397215159805809127310305898311317675758179406163751308682370786769618381877087596356942530823131810522765002243757279003904905661062511171594596402628376359027993041952536805712998360416902002082976745305520484835048014368476003578289691741372033657568648204273796834449556611477950624597599319425766261265889291506094977566551921323478990496406669235868550678853587601847082841045566555320010352305589612809711894143241162462897829627118076496072533572415094798989379431984609298632093114057119234360996682920733934938797015092037091210353569686102495624895375662886102084082933631091236593853130084636682385523721868652499739799532548739483998954749722888749979910942047342321820951116542389088255018031135668876800557225282949419668839491738540287913116252208549641541057754785375080479025737472740624447681172816944117706836750392010945750395956084731667394788504961013091002435079599892838551089546021568985888442538197153761484434626188922446303889430763928245477193351969284888706505813920785160851927901825534356475417654842708411421992244586969467023722943495951825275770195905738455992516662024591195524842645551731048547590682773211737880465961765970476617738556142919846226402858994008524014670110528450686492763197048881901906911502813285495779003279914052390025389581442780010423958380448388645795891115710919182872431773973931164868471045428749627789306872479710745165092841480750239156678972443086955663530417348793653376353762781479563827157009553521377673190747401031333227637084368126414529601038140424255185480383792353702646424567635795004749703744304890791767432856580830870063207457460700653534549178961335713623476410148576925495100440463480447518535641710728104761748643160451331051349816465185886430379146876087894709466819003176525943284018205024277760850440579872121079561496564528709908484252842438871478912620995310734769662762014629287300198477062506286828233256040918325323755656513718859110407024451669089788186254322413019368865601324934602780383245678236022664988125680498843629654209410846384960806425285573975608087148150180381666608934021007218385903084458896213518090221473554644720660152252180420464370820198819558729563441340967125756654800691462327484229921676042744164761735065974032670602856746998000800750340650778738247472198803916184038973086912019130521677809637467161973258894783331866571692458453384874285752976305679815784416018757057903305242666484425018537308944824167989886849499171126890084135624193283525193756673872097669648008866872006118061079030559654434079861934616712785504971141789956114864576111931141238817295976874798386576002637497919850212551409220817771831421699059883547443186519892092609012236118951999725326423682906230464619820407476836889372790891581508257994602257779132199008999621798757760642820413641423122948487103836818190184679925723422109925629776380568164919901055778809150573096964128588255570710001727028256263845887748821593058119592802020290840427492212810969443528692233915765555921106270323769894284711603857686542445416623351290105012132497951151972400555720390583787584831722089594784423312863172431132213988957681915376747469270994698754595078152399713876672280192784815792191366933439127068126717069505200224417487586638706564152483892968815791724808450167967642595509875120447394048617597577253546647101357413778214076085894968622462871521199262558970887178354578720710020551367904602261969382793574813939268291650742158295217382438810566645681541226762840916479117850313304030416911905588401520419994995034698227312921451989266728248318346249954780357617313300065764007783883352090039535483874412232968659543824389533199867510134195169985405386479495124135037414400650251595085507014120321599062786530503096015687128855564696191531287556269519055099607546305764926926325317660911086123635843430519522705416194190651464305299425440462777556982512681373200046534548456685951103564426946734040881756200728036092017290767955584049281384698536302244292557671918639153253660492540606647796255746671128146663690299864446598219391226379449241252929523955994818581801182281364482580143978421683282534270399661650464993553676627038705087882931700564454780086675153302316793348384014317064630802200549883306946755292246576659287976382374674095965205124413375547101066103015131378989561821687362233555434703497210499771253382405629293864500313078472306003333801132708160757175840240467551672673478555457971747631770650366861120132475425491610624688955213557912768135648965551068475067791460722498906441931616362084025424603769543834553710719461514992418340468572440241340895982883686507210849202266710181511197639245812798956243788239890275997751417800490154845416469763847006544993586763425776947360916452577935003547055553618394071054844648415839916064458426267440362748770780650192684069246064650160251072180488739814796319530352896669066054579195144186374939125862243700346177840021625888093820447552425676445347086370660043530751556971261981565423362230041393097827119232253679045664355290266218651263681415754187534899066307661790004925171682159661278284304748318565841190413581112720600788884193886688018122395159183217785255348940656688572617904194405725367294866122977444608920294551903333006447894666545409875306865661725151211023213238598455848177957796428293301639353367704945692537700592842530437843044113215516699303331488066626597396687502255281213890968858559743966394837907296976427334109353887445465621545763895628246337669728112561126707443896280517903788993829822872908091235464271445073415692134921946052398308188309415293479870544667355899347585239261799390214189931034255103570510941272482236503370620361340894649404650027054455949773051975797111088213894634170118638291316800167602652100640030667330493312987638171199036099325788689555222603228202912328747675803599551449614822585693944796814856002746433432718587354411918247537001291105391121569506255020318249144590924192473349484268118738640460214221394724598997319046713362338503155197861994163167760967184946401976007722448140558504300217676762018761726164741876518442647386773036287154109114077931179976768796922052642051712470338282907540914859305670137588529974679985458692293046144921253277766068208686815074962417634688697479943024318205815305926109741671592766565879856937928685478405905189570571561017751561269925704157729089942433901176848896526166913642842375400895878967623206753921289958586711010727267692862438037321258744456726533552698741973787586973694572228215794068552293153475973237983065028852591511725521471931418381382659069420905603466597951300271025243621500288496759501863590607840167235057520037663397041955593620992114915490657933188796541021916286811936984080487494941639621831549837190139199969585402977760454495015077383706345662551451565402719913795190803039886951145963831435531682995516190833774489079171735775068646849864362938775517762524102009427631912493320266410340047979628551819928241281766157481275744710606623234746972247963534267767962392847878134542008173030224141874715578799009151751429972000645233603140508371266542400486455299429194303291717729534600657963972093619435261438389087466053464417323161580904642632802688715848570747671919651637484246136522917742318234375511499078997412851744838838524284713496708569932233407414613320886967300393084600839215752120401148482918234667889705102879820544262856716606001583889731492128454686672157243405533361792378180387755220651213934976429366439230609343842797660226757848911128860981472743613036298592050498118037196661878105393912722374688730630294763883746224271259030839015197258218491031112145998894171975657547051193218201123003847388719994599952158291042777574563711705624067995253793805185830914372538628249624436766985296377172667309516351079368355670639038142409054414321060362936439300641908545890037336222033477152513581938583890995379375947282012610446079066581258219501090571896226174439187820334076968656315393737403392965358437503625006739601038511551227392809669921415130988477841855178480299011009740051152778310801737504546305215205958224838389802745306918674606767928339098668101170096344051602200282859835948694619452910199265095676385414568337611813399251023888613559454240284805899834228716185353282952015442992008159819093095519478221232795474940308659300896952268012216665539208201925291327967813526666142041727025718257734360394890622551740166885121413069917595656125366351439871415272423681935581494512843599370302918352803001455859877512947740132886426727386569246677417791072940054869796737410067949067087920507975756644784145411714152274799603216342105868518562248997686315381963564794236847881549323602490901194336005209582750987254364836827080935256147849886345461370566558296964300816603898480117356399441064516734108822524356717287794454637912191869357021952941154995867055360237965380665844889069647281499792788725644189391542785345137311865593707625753134103303398412638360912670453214423814478008155384577721484488961911137701719124141559874710674172722947582303946525186188513450424299205377731595550755618902694764058996666233884329644976469901212329216732062359186659063344012900213421126370421100656188447252908807448889008789462734736071123569231449730366561827097761303691766720653876318037232680743976368105455708660544500706731163600510191456014077299808226549219898685236228547541918936826752343035594859268010011689563915849021993530970634586263392575489101520228819298226643969812849365630919012268184546091596919015920687877977710840482708493179105146353851106412052656492369140837364098463576637436263015856687540467596165281529709445793640762494079342034067309056106745715627320202423973951534443310732497749932817383013137547987146320254476987178433021498945639258742659142033294491417627802092307735839767516300420014491898333711195586045810313088370026371689124580757752492352246816482836063179466130189762658204562968137621022677518264965361497425290197762877359637887968432333080851824498281923552221460429048991801942590446619708629504070109028759243357642279028329692606164278690102468220460982920159760101351421115806441253855870067572710998736705729357857596052454623693953333742906256355089985261875505181050464587474156746787974794280549265977845904778102838856927217802719327230758026102913807719016960943507336864579596596037312483989015630477355761081042703233902418555641675957747864114548368304723924475961692588425583871016727533428105950564115832586764859525922247475476726008473589680315248701112062480203592664589257780726025120475750445506511294953051608323265053285552127987396611669359491702196396219169383181547078651483545571276265208934798003685723394686179044640718239955180575283324274067571838465896397969924432321025566440265620776301584082400374977208749973360344946529349770201766211086362570287059525707692740028696555290437877470646110960422199466244266548830980264238355219484567234550823433212396534040674390558581332384810608359700382796824090905793436291720342717302350431161495301314443691209322719768272637441459560345122276050490775361007510966868715694784377321509813974841400063529914496901919717306254320183465932757828309878790822373174042158856374610983019881198733198755813838085028540788448557129496712794539002191016689775811303617699846490157461592816925135404751693317659157697689073470448845383661572398800899933957895270199985631660246140905431487436284619804210047363025174603534620501357629058459996436925645565892982439747473231333838459763030067514534987018991939652574405275065220882856570324066613092340673031329927144271245857283936271428969875878228457850954148053952611255069431964729317006144664415567170073722501458176128131965424416953262006338284331375075646916131683033427759712720124243201231228074786836711930736555549784279378131513192633488721652032747429564027707427794528198931243546540993294702371718101521252719478939343553405337504954404599671238747775123764840985409271186112481760511891859931143262448241337026244274287404087160423056060419378498178920992656118592716794219064715313308478744189226276695083328980347231075869783625286344824423198778278691162467803442410877986568308265887221473885377122867868199563421328167375250356935544485250302748350210894821401963398401467294053201619907013014373091274176943645467769026748631908892617568879284420833895599136385726151441132719006181027834791135187315945417635205516733551385932017712123751109066354130530205951428719863414176669335334732953006707619235570440352455794645466107435305929432664469952956332041572230528718557888001913525786993640536679222751099322358785446983663788070253673353327269219942739534244271169680696578207725944051478411920454298137674881317536405468600904176615345400846781456685143854518606322917255944114174464417515511129375416783539049377970482375783522121701055499149278666215469765876990689361108566484154525968752840788904819308985389347123285298499637739873443264603290904668757215280359852408356785516511337535335942034023177821433094433646501309699791571280987832447380161163623565245494869000209601509035744203150662249181344990371627453231273640660461251942742466340028915198881251509413836339514303629733397236699090623825091892263770545031503975266311305809777331773234848144805419629068287806103239631682973388744500771935795099213916078367011482701500882730990155020947770470058800451189330300830823354258557607662030922191593888657081753167541086009953167297833432677254370504364866176099833561824305880360088026731073029322850754920352372898475718186522250349110692112627325008298439365354340506582105774249681083945500967366133758703346372849505424222601862000286855190598693764249571952295113706045376018775093123082243947599199088923263260871784787741491414651417662360949713990850192228728383035050221611334117077281633580989559577439142565968981453848161871034772832792409054650814288719429732789309857158128857629347771968277198022900853556725247459281800773619954087865993496304980351670113274684024374140575073636568561163085727149413167520574028174362415249380294744836215101609745763091663851145226465383301181100350798909821189120784108360868458105778141885484705258501658233679624030638965737623263661259970953515582732805629662834328554894011533110947400778498918099148498977619196996027349604160125835088050194704238015873933993473305795444371335221262433742431810080795922672891818372388617585518453996319836867898407503597821419382466028108750990885957992381683422017262718496236023718715543267798106956282680345817265218248832429512401222490363245637927156101544187901785367230644271356815842184693490910180075674162148356858978599479175436592844626330574457077852029999479011390019515628311491875140770680324804997177661948786568749014221987538411126677151297744477414450707621384574921367827525022684790258702702051791835210184633420834204013333101256537045510257367743297279154332530355496309093619863972129425304793846427426125931847506335916668546043983450158416276384284483332396308122446754653608589042672928778632275907437178607957107205286491212726860765662392221313840306770297723833330198765741758177874331056985559732806217355482311727264763030636671788961813170811520236367408635420435328158708684929938605350140607042402494096658039912966436996914125076466953576173118161678430767209725356732844776446707477426472088821816866281519174517594441148175370735070448553880778545574097986817734824404799055847082732554897539484458111456878204069718139357347857357390375402706421216483475714964612504289584222257179593709826179215561640453308695752635833083715428497856965994878560980528506515077743035453430501835530344447561758135672140077926770400426122146077587843150241551734315732959669012104146652610621975220896428077469585219007756500430688676643272049777839479868198614267628482740858641407484932308653653157048829221148591453515235624980824624517440120110341684987157057170481239013719637659900235928630781801177029766452771623916363598558170148759445050833023155115907606915780138813363209049655475521103353667560532814470784268799254203615465556734215845196578541904963660849292124067033896875973503331047393901401841323103033346321237506240865798056381110490872542488430401090321319854567984772734046436123287274531470403671117776292694875201947527030580561833622860715342309451619642556153784996360906237250363170002672389842180385784162376736217687945380860458398440759380288916331412164957711197500910933909020500134274425445362273958314010807020015894237850404271531986275345464757722111068154256882971253982077054811548918721003592690343162911024006671050262243579923600934500888757509684285117588453978678386584735146110986707573578230881823244200890411780497081715675821959857936254813797655784675499747337811025558899857282499171470462822531097809294522243120228703423966569477927963915638490186115319970435477502990134081620188949342911466895796656914528975752504847819125150591657969323935632586222150556578369209929816635428902274458997400119010651413022513112465036363642192819126471481137745617747126451810153245835923911237954124024625990149019733175135927032043669042275965693585402477290686925029748147850072315413234876062449501091504342581687064600037408901289629702017595565558732793061684306001461460627848008423084349562208308125629792020063621185056101317602550087694502864168054739775105252078183881566695197619025916179796012565081246450882194747524821946664553468175092580474601217833026468482027448849737337372434191073461258227987474385348370036052344415971002038629716603267114560566652848374069960487577050126265834934317719462723136232350767768323817580386580746427171893719359564754061027344356737747166929878008751852780330568614995572005351656324977580107295987781465483026133510560379746617695371116392668067869949670160113043150394143998063590018817544042771001668287243094196007603438270681909147726811642505838272560893521660866909314776809465828146613516061795570447847068381783646621710971003827716461120906241092574316584389808163215277696108485244292840913286854736466539322468985849674325423050472421470769427462227893736265264740300152656941138280141184706994764413096018975104761022555974544692142122275815089053719500439640071070110891417081571569752101684366209929991919939424861333831761623649279102139625404288521953041090605459353259153878391641076654061189225940304172244224289298058931855571642751159457846233510356615377070645537729072222883479903722806062053889395272317487639888124001777608818103453150155469829264913858708879835714848018707421923561395689719428296403884334398380522168844007649440445793603021597560907357210214736731971005022202961055696779062159638941896190237144114842955991824807909445813957097143456509858943728555449953294848380422826092206354051826845691838182354155280570069189269498895112809196731299309191451695209376545581087841591805475885623374245807145887754629313835806533110085382617521558032967844172942479364216690147944014319521639318470611240192057186549291511067512407076848218010455171016021575766959820125601887231386155318749110596224257541705751266068886898643219133191323458393825240020874954097384699326982481939550825355686828593536287005460471758011378919878244712439617142123161405475009308259042872360413359021677122389668518730909079918389797977937517826736496201974698205827711164085375331120701305929862523044538641862995316199863930411854356247491144588073285734007017183330567869004641555962466008237518255104635568832416867058576816870605146576950292499824601224369222153324428172624261132660961721750623490199048482820560412509888123667705045835625546024020685828243218079906132010466827743892857757682044934931654152021818563776953728133364439084755017019868564939560539592748142061555578093944458664165567201481660865764576673288578521452877108724370797551276677051261635800738378107078130862876943243292983067440344771241533179911556019781047296364739498960214645242007233878530093974462880017605926280922249443119025769605529137448708610321368390123200450855988843066184596965502529585338375198944304790495532892689222315127956854607943767371005738740115301448979996330745272666767527013884077142898518465835808297410005568633411827852937541846767350959530550595244857890520320205878668958281167012252862458218711483654675367470984420506145119873829998168626942850967379101778871633308020509337455612252851292830152297252430710045407534293306978240035403685611450438280790879885066313364614149650572442888530975779023091017493582005377254088491253825328100862011268583804185596101319865459751349534049166720386411637840895342971367070624260700397605171651328366845585028447870141651505536548106438758150028332789232431335081018952159236443964498534989071914677772446322709595311926770603445579813999436433186283428926131645881396915637980986880300421163788852786225384229507725288608289443020179285464119629328230646204530412343866887071407226889602717917898218323892649038476140180109761448407679906663846394155610151288464590783576051129593905939846895272519937863695271434542446572758597886531237555437894000816064556027688240010833790067809287363478813888800478728621491792179139227276603486299663446715785675680217301071187295968512150871778724493775043337486742952869760796982197837853131190604416567580638195960591423098624845602631262699246517609800882279508634931352457971249447173916109430503210792139476005969690565404973680634691939838937353639616421397961586531356813412082048920912634201409547258367599739444941989768061377309307803613219641341474121102989879040130779998939888103009063417340107738020944746895373002683025224089181898472684416901852953054549093050148684527567150758423646759144148450364137121649230564946976615301114746571578927605206237854995923425646081244322217719633932656949323503395131790652220153691016794540194336072411726514403001052334396701860551055889072317182584461425489723233019361431868885615791528792373655022737145797510865390707837425541531065003466762154258419526630459488706294954339381711064002800075488284144683914690095395103256169053865970269601589504605631486520070726503530436357197418633151608516941667095210900918150374856245009652445418744761236130419264195641444537464134675869918754451394577857037666388830685153730407777255318772637098990650092289935500045024101264026133175733184797874225084176642577818372639228822397032130881303343821334503757445670487728059219255365706812983556716065311596632184016858177767679786115632618175996077558878966888389201325480010404709894840231372794427652657582247759169603366004640468747347059755082602045873093070215534764385741445492579164270116769851443801784413182745347064652477623060579073548014627259541242754695259690432736252502216790686769676506118261026607674210970859535342804954159476261348733766315746186792708606185516453145336812857728709449884964002431531959277212599898900820285572709543856780089964209211645153767261902695509252808074855014464610722583165818810290362040385461699338040267412668551569805272582176701226037996823780064276884790651459073713103684560116281815322180894471721005649021180633402253345417416840210423017594929791127951625935076990322937674625111060374597404276066480929224060480167043544153567152158384485648777671236401946318550820008021184211109106488565373324714724190782641544597597323903843665340261827679957223460877123545933683331997559301564703475136123134744678477230047375359849748024105240830642145906590887081966243969068164119760672541493029835593554892309593291068590929427208478930767366549853445091944098956949588469713777525544334323131432779231894896567215329938468845510778291153420252288539263668313423483455219716348282493927774298493315956015564915866008270956430489997916760727023219230897794359830244666848832743469600537810399747296354214480208467676067143569143526965383150538290887935212629185470011655481156113681879431159835092188853664358935936005355784553068131730666200584624740516593377362653310580181618953643919027680465897455204788022545803897105024016424916515751290694379116718216935105803488942400950694071921234187927248630622732384911150876268239846078310997200421595352359564085024544743361493679659312021596117445722173558338107625299906663287603751435290962617918080236872061956732516204950702887402531319243247291004339540504577351400540001192253904455360665952414583148522274068837456963187172137955930414731760419101357538567886845100219768044079979364584316478049954677206092106068514733804836186173926896973858420869143349099582513139528159577342708704210163048223972224319616314686628852380048962413726470682797244965177311839603484273594722043388026286296356484723283900753616457124905710136719489070884655986119521763934267372380416151886490363710781818467721231281306006136193368141245191038673944962113785937934913111679447054181315450779398737088722202303233354051102996502298050917354222345600399729631888781591009867008956812110228013863220541289039514160411812961724693011813404730264309161101873005499148875764795265285706765659668981030666533058866014056358773204391297855539696539368714161586906581608496087329215527922057866168196085574744272166602260625247196396835786147436980951979388126584958200831704757646258305366781058235626808774000991047954201748990468760816581163569412584269640856339569517336344476025601259831177166521641572439659199270968596936246441787491140072398328947849339796832183768290735917991920697029368266928776290587087101124643543822748534444062858150263251538215058062170044728676324893165497710137423832821109396544290801881436365620950844661964542886072892152905998236319740865934300293817326901368397109167587182560961376175708721710085216863755673806005410186478475278265664445442029185209615495180999334413490632964516290167909703720045151825519425102153941469720842196687532727910698445858870601663231698917531875381642014526162807155192564828064151878446119300420022295719157600420174381303514362407716281096786778040549177431866328060773262417258709074299413755574060804667915304401996119436967411724554471530276206453467977324345155008467035572612475980507204783032652895965256413291944231664349639876669569114444381722945457594931647927143415247657029846372947723587861799506507588525591336503364756572666258328325611390727837611399169642977235662149550844345042564326600068081397236292718557353789656401799860113207504153167421866907478736739229276198939926498500367415052605320657293873692302046082801742923556032308276837367219972254901368779470946589460719106790741889754299558227229425112388869487522526759942140984492602763940378841587040992351753919846239521515261086735213761496187151032769808676621227446430336521691865820360865754838989663894692603402146519818172150415000009867503043959616770931120407907475226813637856614342034139066117367937442713171584402478238041782837256254690405807238717842189613233604761361502842195071029928257863589003243578260690252731257893064738150452930865880812769515021734000290953104943886894856489659071256943438723625381808454485823702407681441295316436839831136047257471422414012644072380197240984768120353010973406605951953657621954503527063474925376273497713015640350414611254049295660158511437357879232237327012787291280677558867500810132701723193203626199160067261657092747318563438674195898941902322095748354738310143924721021582005571934274396463892928103961406004447581999811124643640659177453782142578396003482577355369057765150373610985179187382286371834634722744719110608590120076755170422235253322968420668659191632532297777817002826175076412213645344376718529633173687726987086396099089108960275063219285378019278603586839454374057770422322101579984058442212107469304566128626988319868963515394483658361137271877489088647284493115869644674444134088039941843639567851458414313739681366050816349106429141529996900413093904755335802967747497771941953263582759644357067900987029955902913768245904198120161652294369801430982314678937892392592860998159267256831117992410423968358965742647078077652801465359797746588549301541842122106997365445096370325428954183295475200789767190724802068290891469194591683221665973997243332514900514838839815916116175615868058483410835772957428226508203838637173580142277183667942314029970929125692931223314741062543357765246831042959897735761289322008449310281024588667844491981764722302941690352605063266955071751356170453384367608998335112624756230271316970573054513206362430488921706935204772706564223224517258984278005125494894729509727776055629226734843681838175919255427857272667720225073078556170317630893858184238507906509028940964541149083107687059207625521886319369499824858305520455347982912737852809062963067518736489657759669607700940089790185352046964952847450698113424263526724536384649138676616065629635476122379044800054386304899631814475854720455659326217313463083092218958392189127614473303254576868659771568747493497181736331165480439831546630185076038441687848669665673753070931588899620950514865875793775275649291845723872618731169019961836252095678414549632860103011462717441154952716432530567094679954325349301437837600818763351073404374973053886578866236426693678630327506847249844405846441210295947264632444076560931859426406144302198742118322709931697314490370766035430548127780197952170661292408622216167497647069000753646784042822065410028117640939992043476514843631185552140341673877559570259290160371528149782710867088056374369793790217591047004236982176475710376819241756562239716042171626515781430529950088450899786832004620266774825209766540682747349054914678125402474745451020584375116346477276973446144560010623444356173454490528163950867754458912667495446243964436170289247146383104464618840848047079787607723586211519047839271065739860583728846506949300199598737684577019496790156993302274257609419055658532115274370635180947315435547747402550793698740849078098447764060921671281616133776769178515999805853073823647526000333530179573669676395804573860308835425456136136690641259703219591236180168777058915328769338977808581161701826118419478702677688833406643675288653480331374229369851447479521644492870502227650272086559157517149988952675381974500437402461146402988294454353394027852186788559393739722650489042036622482672202035333183782844800360041310600102996884150790692415403201061450718971098418516830567038699452117741444505257407783428928918540486110776681253717277251931975703321105574414389249149115912024784496576864352174697075684115412672081416283839582319052834793120119575207609218930788230334262785808561450345973336062054350951487267295308077754769436074489774176626293330221867541370765044190461487228053402812784100876979677145216965511803701757770894216732443502223437566841666649917730819335374887693735248161715133658038714597570081147622715235470230206655774969652124112992088320806422636841212563388065461571346295679842529672393047465192414717306276377510047752032475511647242994561087721355739140120528602503833293747668294340166515365626569127584528872514668967443768929340225256413688334282089045921901946427523316455138298824704641425074216655320694430481114904912321443911204137669328011485907992613106996987232772686463545345843573316258919905273058424616448418682562144656500817750111702185525435958070143409455327219179560046431803889337289648257274814392799565418460406468567715845309271055371039003190571273564694647890603811401378111704327888070001395177602168144733523357588167003600612102617892162335445025675444329974552894870534242719713827603814415546337892378795843910581993913463869171943529787847215691425613860831334685842974030644695660973391481470672896489764797097267476347167802964075291674343160341606167963598046336694707741383665789091274449834619211743792661019344285293652745854729980057770396091940794267625936921299768025311567965074927115541147725251823265739185163236309083969295360439527203315176910554170661944036529443090674592225386763162154267099214592438714905469579724139069849444352405246459779162601277935069367968087727051783873658801755223152831446532056933166413538413188060938467732017763482950703843232654452771774351594909988469484543134391093354790120085144459974893713489201671449446102815900978593891334277947867835654116830119263076981891174625828305052614480811712717233237613084815184426628677525173886442659391721909731379006363006915149133090351042286907877449710262036983554633997384386302653020483489688222721042460439276944821629917690488687410968726032393699034384029308580516637721591028954469660732964430766745940663312949582111948524496291188229756889181620559908360956379718360949400653992885665684256156604689293946159397357511129238982487072547071893998879704944391973585293420254295347788600427846484343389004405093829007646282128520231869121722143217831573139162383118059950220188798784834171549555460124295162444665525715828901996030265595293076417854998233271736839537223783817256552299864154334910038141795745447553736993513870991281159793378888964383650127990022474638841144392010983708116224629941180755464441069201382945416719539819729793086931083217213565651452078995953844454080173235640876373562663239026428948557988924838427565115771588601920749951911148140103238197829772408806679571460957269489728003769183928411131745721355211315193029432694127943465157165802932377414265324285514517210049765885542405231656092947009547885569118761852803652854540484804738017700025434373506900597476453805162705359880119154540358258495905073899239404245280257947475095699504571790496531981721177668866853007967247720487738089149692753410317978173732729939205797313548956023406917247996733060043131587340675868565714779469793157352115102139425384565456903868583760661845472362166539141633265447868258093229777050031578111564230392690063850671410944891091485971503966223379390879551859252217453429428234018063516471090128462774475232291302154037593692975442282371592902099066013269736546803677148796319964645138630961739399822670469207864579480555768530272228376849697170824748493461030631707786103140207081570618244006803919756064725784582191574222233806751766649853239952001248104637741923781879590038545828753475679810134428304380438677840334758545277365960855159358728058312298093507471669336603621559447971465510921624258387958867319373618855799969167430027099961701423851521201120610342364574292285014771738391414028418276028239390361881902530780335000576892002147730035411713965587681603755538886554213607175130558472653191304317209251463384267009878574371378932897732436785451802140766571201997777774886523434608422805860434516600260897222040793041571413688661620546603512161346222497743984234315797288591856333204783809796428210083595466353229992270502407381730809470527774842343149986592522633905143914616196324062287003255042487312335747309703127540987582879302516157323370707355429574191842491188352631090020748474463654541106174787644093608655120922685276721732626179604825302097540474911371298677818412760588352256636647618546486060796451442211005108824451984180528100528707092471113455813413713850721427480431371790622315974238218238151405762061650473443641726939550126281637986916792915427992384056093517631074652310908634719547424412234170417784485821839524677057157781048244674507120471519994399166217945879323036998602373626084432573323760290636390121303183426547504781150265675558030105990913950470567167236983527009237927234940101794095264543473661835171665785802019160244247515521277030140265582091953544072666970455850207595139984370541649073905219693628649912333086996276682791736529837335557852111065830442574214113071448985222859603351113583510184829671893658415159523216106111007269294303007132955111319167178619418648648837336589817988402231937458878569864736715900059614387249136435260716430494875073946253645153690860916708194629407736768064397580044079733039832317496082921114550721641482943196867974559481826349479856730814173402771995093475020166128304372932350482424628087710155759867582564028105548352410025460098124286855244176835778317442931371294268472866770881538298731683741543846442138326540302130550417534263965652934188151040817797367424855687986142465752942773432213426546507622383246090097528548878596803222390736321142786846746828667923159455967348530374942255427114496155405772396904361629399065268055901547580484292615142432827080433038599471986346822946653858327913927799479962591704949430281070592761668765585994708883976130821477557709936678809927014871255028038409639407285815684063990622210170384156680800431618181307812766571178940355725626982737958332174549280682939794414689062472984363573473923505001113037933960772620031492314750027829203691511728143555623748173239227209941752820091827196196943029870519957571461299543179831086502639545439902044293234248988381321080530843453872968704413513039337638209375128112730942092324278692858302277066989067469025745893759380412826768251637267731271933909757227314983661296004969439625341524688032776909261316577751863069547368431901205254917908426276089786944815398536669339624022360782234986433796547172366921336078990157202801424687528363373912250784659037745481781031132307218536697299884888311840147828028852072657410258605208743053793159790616053504594482226300460381003369392441477258552611653990828997407879762950598351540558726101872822366017289393982256702562350546565143725164964444528414149406165270255719604942611616159321594748019726564275273383679895971321264105235723570705368539597664902621696241645705090090777088098693648030328998481183117885230066850499473113860889191016199227811395368840484054514648792049048349465246562879521433769747347838215521382015505104990281111788163065826474787860267897672339147963432120654335383643887881387603223056860152844805489878256974796399682712617104344688897672551302121942218164282077563027048097333040249046749855366372599863703082623716040295070660708775082387867163485829698871842961837935290258605015817080001363234212734413776721618277720347576642851072496566708364899288454095521591476653393242499841346546444859306240352954494242627564768818634563509225721228923530259353107919879105649324948669011708145988994671239548608735984326378004603402162357110330811545457650487912307379689747828595933161717031798184565766716867314549763347220333994813786281721366015360535399726423890554025632046977321519530606262304346626767331954208254003592672958398106501352464469929018585120986755341139603812483864466454701119773921937559819578906926795880757480816283252861045044813047683315150070888600728981535562850972790633516037219248311824293062792523497718482349808992875069863444651975162392727791735061539846813620452343080431981605691987644902732381290593250245531599485066300378524926181166833930607830225711185772876773803509651381080506583230857146663064428518292974049676851328024208123369444788563720838061460846039527425485794454665046513587723441730757501405104774800939161730489309663291865237391344181889903965135083725852046475367832218519600090482301479282723967678440384861057641955618567861667817851840287119933104167377999823795721855688290544569248657145580343386555450680706796025490167323181761669755053417177279071819024995952125141338278131059245483013515158584358905154439115782918352733969106623027491306123128862135284382300714076305018437258658765877097409117648470458412289232345887435702522822890275693567440001623134369861961677936623433332946196088944397910483068080161841615027212345752310812465370293787874040037881031751548406975790571361962469635965763938488283109710367907941595911440310724407008263778014334804607833185701144991703527084127062607948593536545450084373397984565832066395464803668941715784346273354996306834515782876263056180689664059334520036071657972705765237577702472849250023227260858779238975213173653558228581146568034802520083641955425355034860138189580355277766388965083817999135645340703032587417384213847641162973246555786244767923804253399765207682751543786922762359267543849127368493885458443437375493109718813157359660686287641916612304412470537328848017181084471937502807369987363443089085896153328044541056050221814781697298313160940363098009203178747799630037912190410409065059448197977552298673031024708157358220209019029035160438185868724320091867859409179099618172446188918014928523410989648803251107086557456588501506135867422676925802589702817485248681551297448902987857185756156395484409646294075392355550768150043506608107627223554495777923991423918540640378357490408860291522225505368091025575636766168850422544764065712369500074251776302469435035128109485275300222794466535501830945951973464652386505868138030278411724538123826168558480370619519770005654458732936198650960622573159842418154236223262375983239413807121381527455364132508942899952437463070851623406261104223104747769395358968231979682308326886691427848109514536707077779138009019958665943611835979268287751137523726483786539561042851034870587448035176507299020021463204363712102589265073788983501040103553837713487624087973807338593481092217869291162464333652160841005025971696356656524764708119416611246596579201001340732533106113935605312010341314444577927377516265756332396437179420103737775181225749927981094105028574590184474479555946173035573679374713055083459026514194550303736736538273113850376161833646496051063623749173655876938114121230181105299082130546645969569183929024766750836086443574331140329471574859285515395774566728722815288656275989845549850929631049395570368303740318704089230305556615800810533891713639430360737541317267189727155064738928446985535500301044773575033577890991379734484606761655748814426747679149811461090481664338480112067039942438870564062768301714109634943871176813450410258294820026762812852681828859886270435319441024876415378868481930976329421714643790811912735015368253392704924208990142879077163007714001945790810394016436936301375417031192603861606724275016119620099906832290075822550036679466656899118144067321984311414917482195579707287098616383306234692329937558933522186890757438866020120313743400817913109327825357328099688168618178079638129937129346965251170955130984252877842368719623334369827823062263535778110387456840248146566371803421930200465454818282728532847972958322448865505414748178713248813137435497367891947357390452398618498982808306058513469077112792392106781045814557140826916643782970195477845750515084764807537583612906335279953360897948144800266878504069633255273309129890453351538445080449691950399656455043447728339593240690165685151776757305719033481683270499851402124389523412233419737053029622991993987395471933177253608220455890932342683839064169464435154460026725527441879182943199014117096145065490168562896526611335613168771690888597251065100194843657134232554317739826998936193301101040861905980503045033131496058710924754475697811452781231380694807826290941588630647222847878385341092889687574505862577997835319954755227216705988580081416313102411070148119145377975303529769058410931446222757339621599621658026644355994078319646852117975646968570854138194859410678726899868457810961196930083944744092189721156374631053123491796593225804540948787698616749843948386761640005932973104572364333476198140417802242367095334836875063527275712000529818356323940907797454434317820878811738941693981844384534047982000071977403119073706404977048872374146018685044475346560986543436301554562749455071729357867063096752772157393262547322311326399091890607167162120927720156434443036564142534462510167366837111268584015824205713085649168771042539222986288620355901966937768072567697773949765098050238497181208362485435303877494918323963597799766984895070894178449852518234720372888752344760257011288279557031486671902725515856899691961844588742560241752293973495514329698028810444280786099193752058413017147464446574639491164990750978598581571767917704201287062435339187756167344777647537287793726980631831957558234098093649742844781189842865777895875790839059635745502502290578976921594805924469308866073030760977337975706882112679439852750439856354523598661483800091243106756863184971532929920779350757063610547596426360346423373537294550033802758801708711996609773862903098730163324111978941365089958264452699468907454544264330024988083608269454339092533340764441106188454875498108481440703463209174049299022958271728197550760758131085947741048967498861145272263360278586488152333054413296169123678817160183427153929079644477273262634774940876315503382463490896588412243280807450624419115111305294795739593479163595366936198073705021827520665028203496545854257023344000629427188002281601868323894379915919219658327406628174915321394219204250605054242756013337519403745056950640243991618221845279338779768150661184903414403790388864011201320721998659873712601078984213709800305150426435007711306109281323487322548630804477531210437193769480529720087585467732036958388243764485590072700571081417702825367758942131372332612375940774707189165155070604028363450064464357172408678674485366998876811906311342529785289222650173566072432139862556611711313845725591120756214776774782595935949221928422319151798119271853625962314529312852594511875178106855715031433398324983600968201006685278534026264824149486567356617074800712635041440100526339612131113828856848257723322037495073171558032732341321488006165400454259712254815491395832875489081301127722447570392517305272877554026546092845025792372549588300757778775864095065742748244316274499183573344857728078554621947273881726322647105292123523653341946559421576920112095945420149776988215634932568198199897768828109008059450802135798601421495928336400152382280629751864714037714799020227027388209257032882890352951109656009723145743501799244958847983783834337987202715595713275793659666386622190966984308170055989942228339963379041462234504938641756121841332206945673444093837102900480954265972971820032852784467947622816621105117290523742897141301227679575102494548998809057910626838754808697052103158885119365715219974853010796983459149456163401923637781231359738374624900818477276437491044235211141169402824456746394325070798954125262138242216346983144974568609279404842724168367655861549641407973860122205207038331316276838468559491101651473659608390716287013293768227149696566337575364293805463204680458887638950431888997865697200254688108002220668956043351196595673257674095009863427680773480966064309981310967772449370370164440042757182383492467838359385299144382566234171462362202640992606460225663299604183026540354749383951813962543523710095521423571589732883610923758460634450170436141258116977292761528689308036984853450457352484384982114262346086945351999190017635622652658332205173066930913822773580252123496464174209983629525187737018749660934860506487731884665843892260321824781178258921967330677803342116823836267048806938882491917631099372775331810531205901463861120782850611593107487711729233574820324292389685380074170654379437819833098620331657782703174617603977862088895179423275383315571865788437024163380286708877728558631623969165359337016181617735049725211892919840036465236398103784468816800872121946576997529434350797455699389820778381643673093730265437633462266240842148507506843346784317151123256768462377849241511417587420976393619971614029056273730969699187178307824852174235565316955218255561419699051390993160088197552416416379505964386425712318518205857026844299213668589567590139545793957622386948501492505521399351590855383502565215385801468399041468830719956900011723683991320657206078845008530623838401761053786355276157501328299940195345089435619824884542941459973962493321058474916747197226475498546305913579253652822805051235965731725684827761696185751380793296509542528864960654205837082945643764323408490237488785456464233606274798965334142903831247339546121858459397129940379851390492438305339733847927043191918309137862521269666274368629354263391274484475076075348456174677904114058096419777521014467311513701954268364682370828684466858040884570081469659383271175128372935337766255375649502928461742205306744065222862494167811794366516246208626498008109666087277117763189027152046550576926153413815513816863885783429020529142521931467028874841999784654186719665239149742774042182555644288367240897300054466816476749804141476579595038114115011276365703983309458952647829024056976310513164112510687173443251993547043310993062746239074676500121279510299696225734575998112706146602166150310180425273726118169323611200708103822942000806137265363408931916070823511018025642540558180042590787792524152517247116167564785530858120462415006638111813761065619043753300425633539936185828370336796891427045048210074537164360348323800473493724336028536556460316567652730955619797108641759338228705774241341708980330756036550057033368275607608960297989169319069852279347816000427279688639950103610423637328097035262788233822004391007739142633858496743203637850615437190058563328445837538389921755987410984061266029228633717850618219994035716508434862007428827224888142525248348431222735666619652907033457599929753897953798384837041752466522280877401512210866497559899892515996829183273222618313184266098877366640798167889714484211691080398002115500025567499449319782870338485789844904393439173588818268571162223515643378287701287608183749236804801467974509035591759073200247230026236395183498939317212399410448660333924426325091008495248457844031324485009079254839374562144569361656476566750315393172861990530055007141625558622590373876804662174082478058437670260761605095277079561261978851565986141836144325205825292958775346235302434390866108893241481709125832419345751080282504753938761574147460153863221568792162460622134219020334584406703076048924102206430086690181833320198410624352621519897520977480904106412461205968118368252534930305346323317888966059340644758141727180982276432555679847371544261447926041022555324419228993034345077695198297755914326750326875300193506346170720332273451579871819436657029960120792613212957169188362562430191291791357494398660231726528179515729656854325463110498940373156225356728566403599511659790316200552954480000280447102766249150445747881409407334797099809545404455099852360077451192325938029957428153116790241425448072998431538671818462457519203266903011512691019224955393964002135673937814781612072535604068343702942628601100285044172827366273415371070213330127609618706417592086807449622157004705138286498416803406973540892242829706020453881999286792772898198492513241071191741260749549646765661790185454250435127397988358647630877097054872963086921585759012723755535016492458961496034654459527104800029183835908544676449404831692784787111601650694603862951345687619668431409629591539601954765679782716264240149177379680144825004112209712493370136282841853551178732031330394326342621796953390995875554047522010779853491726627482110154030450594020966012270007226452749568401492559792450704329835893027704957622943647345844820539458469051425498373287349084173285567273306523108034568649529872748403976872612328075293099303778740110235370581504153137156843442650081458105521814281296432020219233836396393357240236755515719901021328802958647486563662185209772010518402172738587197849410768111452036334082026455870701599266246810614691410610078640402560879003101665950006007667214685547965679194221086183932761116408715541988422160756627835422470782451721056947438051264509546390656602598073400797933342389562888570024112591640909042034746328210883027135926550862200756820110563408309917350268535720811541657066706533033578949142287630758993581290579306395282547402330079749732486823842987899885124262646557643537195475479216100347132504407537594339670353742602339579484570602676286255832431114419605981941399222810110001566595133846249266226059121743840755213255677070023929196896283674317834096946556155666482334802879512717331031751469003006372230918118395604388129668832728561957161154364543405001290110053216815857832652754457706295611744438465780018630466971464052972601122708352548344768074945012767337678697337333520263930110458614832489612986595998626587394621305285836985790261789237042992733844225881321747456948955714477959401075168125633181757807441543093807099468139719290911777083019614874191438356344038141416898021951596395371474373519221590825147267293963544858159567665403089270081529019672464944572275735063819721099301758646629801086292776141607910583705336865975940710945664887074377696702545596322950839625162029301274002810018923524314479927809466225216709866674650237514212891579638796399988090512103628119649967484516908914846929034918173180952152379219226908262770023486841441904573912481087568602984000243435821469149713558626816646523876595056534856409744132875876442997093143909737734919414197641179573411733257550329892177273951206812284602629348704336969572036520387057756350061185108382504113293260803618459776707322030177085860031180032705411730002296017198297124230439506689445785906974647580783750013308948021739336525433373372176690982937979968322901089422649139131674063488940717541371247547392902789844203862786239317384422466753502682056993652361958621479839756872097633061780460601637450173589902109931429230666124750868770763328185865410070588867250956446723440744542916090695301597275301895854578984051467188621461656500833271690342963347045235365256862088421199898780064197603753382605892816890505386239985493329610696051149272901288143796528956397837563880947914968124079266952203388116156912558612600574797089715350420480418763102224735121183489641303409987431040532301137966495961199183145811853028290231350877691308663717261668137033925882414925484050002943292451453923045248717054257474017248970090909394094188998836533014966948798231574912311317078415920212866931312990877505504626677338418197964279075182414944292207028638584082587697000252464069690963854961176356848754505123171511567768980157883854027847889054026087399452415934140532604907804084063019240567869054533941584032450293330935044515343166301408023107321839314667692548302225574135802243704290804046270265997417710054405638549292827708376437650803561662341981640419159690593469529112723871056028268843562219986326786315240450431297713866131096997320534409640158354116588545092608641021992178533815331262035819926315166849549846250438849167383166693257775097821762856663677624618371031831837731757775668042913550977292141340053227905410564711113493400236308280267252572031871118637245173240875089058048070796381944583670759078045037508484466207729542709967175983236683095709051703058300311246022546214121580632119880083810915488168863438697127183076169224831613426958640319204237920033894287431369572599558793205102388740179698116992420063892417853975469451575072195382092213971193403821412515015950834120775098505247232193097976520134261393821377467587315929175753566800563092926922940645867028347398189234397385496582071265480169000967626064503043005316589929737782265613052439677374974830745344807308524846382863699835427089778766277806594617422072151712020494123436182121785980481650065034110584436131518692434147314799480440614386419083204537410265298810392980855225102658933021837024729147530215254516338600635123433086499348806889850434151297460608154472583587896550520838336133389432542919016141970048561492532546373405008342005659199057571198318626819085330739207584996769285415367235281589111841360567158077184592439021591860033784917349102806414718131725501890119632220111631861450655208616290332587552732329766442218352870328764404507505980631558999413100602859814636237109349577197865128152737123974289791906572973531117509205951840274060935518939945415777845427727104443741948264428132465014311469480658127108202449249536150288813708276865027543249464571905932810924407208701766057842205186013283156802763926213609896819680299696755366053248368050863434499005153468296282959434085806542471394260599896696142451208206708454736187093898698261297555048112788840808570537469416796874101363892171847690978686687671526036176695784782435531919312116054164960497300679476074439109053123003480464791599302323641783009637184467667923364268547695300069355369888394233801857808761494999805619974927686163346679861549554525686252742882073518360919015326365156987130676621353191460777881771185850153462040691218816280205359249110072852049352350692709555762332366461655685377636163211646126670834854391840797012870466473293518773094952057556190528868835019045200649889926353121049708498665112662985165137666878824565867605780059173210900263157847644447919555598309207227938824890556805542094877597138041271635781435716978536030369670433171766189225154150509500933426054208871694608895893638314121566677776640649650978073761590785890772301242407574187012386884387484530625891609708072590591219973292533178216770506997939840058705804588743782806914140722107359587352686977976344749578866986086859522097924559754081305452247302359681091265590965781824392847993569608653945683544931591231469773026655650565537793562667446339645809151709778790309084322872778746943445853707319788459572855510902079516726764867232271950660148223371036086398861692644117360361872363453118180251752215952061237080485843049826872095302837918168406829183330296976845957101067670456547480691145153687910568023957078205543486695560479883465563677663866913367469727567692528671815322673439663418536838393980481276237568792102878550061079970937787158917510216414602193109630410276464518799058896077739714986069805723629176254378650303301351276693505677202238470331536595894456149506595617292076598130499590494359555415098491224823810691926202326418011685052794146271444567371173294545645886629561631198653350099424125418872470722734738180854478031875974538050753659690510591345950760082692076295478392946327155696131763937295737818585531716192719863557619730402886042941983013655461067549984896985374659996992283659532084427404654847833046367807438882054412764697401659930982558882927934949709135327940753138745816442709775854833082803438158172312817241811546030805416082272016476161010055511335844484869833299252059850121641148959719534367164706984382119150520060052884990194379027184593113963935336756344555803563149342158887696837493952666198913614826928175189278054881724420765421872699824574697102805567418558602037554866194768487876953226040922521405250384304048831579992079393518541025221356008823215757502964024912337665683999902045282781001127582493037980177407078180230903440355540309632491197603084778445784456190873787138941904833957143375056871200098195532602219027515786180939442416669505613428443439935168652675071911568812415850381806675664419451006416151598599765201334844841845126470501189545257712003944255857121751418849600999844319754362006149007716821896534989328201485883595358017862698966694408107949154417084114808570349848104835659732103366758584815474192420489825752058251139199181399462528694295715938900206682015245758077077712638613805428718973895466693765611265301011536857505334591305456406659707466953538003327202590571062851366345496402990938492683511453640187866218564298659864696250789715128664257377831380639635843316137667092066623651252962295221754372153186056054735900711852680368492438458588262324141345823648043092076867798055004245955394774563866046822326941827653969764214223641669455996615629482905909693592822640271701680723209485547525586739003012170731863036181161927792125533827334267001973082419492661439752575885582918325962928349555679715372544667023302452039650040986092979926757304913540270219608887820774127261970790554542639528602351331172523318901714168952535465972909442002788440083769632004142940428268052389502868530283749011769201871560221140315400203504753354241123044976919452536929474463612539968160142514857811480955818162770853285905738040439156154482020382118502308429084731713508605670156097820696463412600313802900719567700212624849314637566175922488779268494431583022818640400317365741538741431767378086853849661306162725084235663655721407295782171602728259739301045301579050414936607131323273407113011270323780153752629080094915951220880587151770780564548223851759475426615409248043754718451347763649704507222049137828017868918875631018212432653336062913743650094379076991050899998401990803346099807951505940776775543046000995765366432722811533639422810437950235575791079875384513263420124584403058053953523125151889001467109051033150280021657605725202564422536963753321000635232974427413237367441998834256754643278687096784782045371597192238055839492399702155785801729450157439881397735468109308819107642691920151729282779615039319362244492514367292081150025765298579527932069907273697015240465167624355849705815979678410029283617895839612925304433549966585343153648255500064702049064205622892321062889170368665903368524715168173700637809769523417761774270393367476207358948105374187207241645439469491485836488967836733745091905965931510147852588607475319798325869530017574857047103697288127138463115767062094499304644141357490001419251205945376120033163570605055060282074576263294057656339484005992354606864205585063327283190630295010219505417551326285217027645239509791789377893993562687841658083142281015743031543736165600834222623218810879410634206476627333157148896240786494846757292710724424182883194196604194407005819821829032842406399198570782377608691683315986020716448016319654635843925522380021945167887581583476789861427820551727643265970695775665307476320975884852800514563416973720941017265820140643779477762054326893040559393584966880926107883688486640953125300646237778318388798472589581619261228755023801041477827142633803769968388387622652243090151789021144302216024516905853712082326743251787862878410008992465047833067250713331478131046393163190230575110868642628405620822539340971881697598598096451545533034955323081526503424862395353767749557698041440627411352485622624712365051836332523638141312538269754703757067115362280064117242731715378112249605866885519436515597937380081708510698308601947717360424717738344626987866092185857097276781167500356188226607001093935240549149581485116763527124935822036136811918406462948158659691363104130687544396455551292382670046965306873846202769661650573925782271539942485637521862514142209355773440897572524563620083921793578588551961806316378756945076632397065532035642060327266523913699937574349523020188637722979450548289615819857248190755419181632421495341413485735589651369822563110673907021435555149283732978637867493741344318293119127774896717501170240356247022410937356123369692571821948381932858208237327728580762037266898726503450725707108985829834168447136696741995228155677040459089457910386945006039429524030827249788139030762668700832020186140483545625517024780307195019201538655126089434104024571730927568763101131544816020499231590412174755181349766570778498073887296778180101980838814590447039868727134104297771378422014006551054148509042842815970752350222963910179964133687672009974235366559052841346975882574227876711102202334823357263648270784203110897500919870586271751900213198515652312908669568794419491660862727711321317515017633337080441771273616218978703156732126722176340654530433164906074311919897701223050032624871981938676665857744860892110436758007392437389818290080437372505781859967833425972816650328876169681254206035592998622674756905739521180402914285788752143897640897723794271192914621721090685239740893454364179869373885224894604289344130640610969655153277617229037572397862827712573643242724033995552617207180884276547618681605332437642681905626444394317776545146011248103299256646526390653159362446956270090524128122518805990175220645130477961078265981796978521273228327645943004594696929723417284621197589739994612758541005250224833215062313245517739224138106843194442977541492912919474555354317804648522178914903796042333755470022054888401603445365152470916914106268949369580705230072302454660060584798453427917722160058990016073227251176658103811322552612945290023407902553131943440370240917104700564538501163697489711824892383096767546240643611831695243172772926411369559097474318310669891159046214446094283113952107386624494693618674952199304256174974631495073757516291401122183757449790108528234863655611249751328455411214776401417478191396115275971055028120570282024823479893567313690184902856401605348714412227895079048219899718295958699709387365842167219073117157042793983652030547646486752168599862107066434449619681087405121261890368627414881411351957557444648478323784478863506976705202975170286645683875919098906800087559736566630006849157312994794230809409302704854977448456964168161110563639044133737359672288255909117895204882664181459051719743274780758231785035594595997871236234013078786617009211051222848404922842123420231808681093429598716100687902226097660575993854361572920729217922493835843509293792186759529225336808180566832513714350786450735685370530000208273533625807882009969080093622335398442077730311799684024057830352735569949731151487542438522928835982653750554953921977622390352052708993545121667931016366600541315359449356894959824863006396757872442226212391700457081925106191347220449151643233837385548877806547965630641614801336323553368548324447182252122895269336129681185410143815558552812825593000017346226721981373118841229960004134379859157023919397432095161040051907199903199545522461037624213096331919608087762777653596332653770358934982322472335911586145087832952969705021411114820408915449042595800340537136578046857320853393902482437528183491495712314179225538352797305557638806493295548029678787435304041585636143651715492307904778310310397875337647954871511469042519270789752153611095023633755536948172937436329011623734869106667980426283900237769256563319462677655606219355835295405340254189008830294358430085668958806050054858658821237111032173708205584678967587223146913473601080599437044101195422938820873307089714525037240429416207384827349612212037588254292117859475980885070659136316670900561436353789464016143801264907233554588312446302200297723016278318012870332627224511674898015976461979486169335814973161926736219087499230978713659084410302332540951181121528586311494024060635025199876770467695096307447336212965379410983027720971243951347021078956383769848602654187872556491067268032984912263349720157730070506015768960266746038927995045727416347262452270058082359556997925907707060970875842212288196016653530310898075784090064724156647817922762162895621296643327155565401757952635427989157680341419548261023776839837006837552141678918496916055697008667621534370562838437879801810869829486553906551819362272285475803853389149559354560170418959104069806410467833214368272495661374992083508939670660165466896581586599937867270598561042701799768960643223531221792895356951203314310335526228228441174478773193250506850189989309171968705859028192278975011583896664299309993927720880145689353379323107761996849599379342184741030256837378698364596316703293065146522543776444944324260806249724977807373684618813934888197093476893265514053684281197457659634397326077891895452511424466063629422916477199189827284705227822551901518505443035990808196718975440878173074778738651950186580025896404455510096982795673312239515401002975348660683473442545074342992127616213730252881419627126344539966961070904731134451263847190890718106321335688900430188682372074027375427712893543846363883931721756649392711943110489985796631126969432326710612883653220480952442928230804460965321661023348191256758720471104379042693942415401037979413589669287345875197188201740706696709437527179067944901131309598075472828460984402749004002359115932088200418281428858574259689906506247176457447991106449856826306075318009201785514333876648778472886116405887110434286968455380018396431734514274264551203042267972039873984334531671980225014694118649257995443906491309176851070218902771175621626296870217601482148410968128388874371295250231390544982510728057101829868112078883727135271023236804941052353721163132282298765011759556213749116106828937602199572270351759089430057106231995872568417669891288160616892845928571845093039972496870347651228196216184143230645960296701427383735930477629861864153328122803014023563212287858445595548335029996466843593408105457262375277833591209851604740977541809715293678480841845175332826072946464595514659059251728026014843496662507607517453542660885579565977326657389397412943723116104823130576854340391254106067699131164613431136872572848674286163705820020261638378193440655251901103752979738867044163594280080031885381748707409420564117980764272236916395845543188511617424026586517973438397318936982662867049435685993271655905519578569506185328137116252030790391006334080839635742339481554871376146588086756281759090947730741974763761008607725759857200447175454067999058663455704172703852844446753727485999821725290499353142326127097640100626424394144442232681778215162928940478139036126247391666288046975687138214172374667427221338378826734575545557847538066844847030595126840920768008348907871216559903340224680697968196822159131186824073262542191189111736063994162363152642989053860043095340088198566857259935274480783465672236665882969104582325758858877357339990289909778813290631880428016788307514385148118613378833407099710403343804524192558814747130301654080436648097389336067667995507405657772449226783423817813216769961211872894644949950224285952636220258802933192631154770250020055463234267119602395071647521616954684678511512095914215608515386104489985851879199836869157259459813721545304290963785673931440979815563917819866545052048709164119396456309884224879378820096900681440120777033197669725535189921371010005715596959547640530047137934449621568061088274494705016967142551412828365394325263055109386149481732598865479249349035061319695100984769937994126884421329164233710917290832064449756451262737519837637562503535840271407663125808265064945627745377105666162203980179311773299377914316064988666277997689004796555465537700760874737864733092739300661699871378147526340397295800385839237568433383878594378338183064529507644153774363522447741888048788460058002297013508987238944414523267472276951039747422800153567844856456782596854541104066784186540607569547592086313107081396362028486339232254885611877711187742773947476305418981663451674938595292572442951447256145548069554666347767577109053513324128217355955504078825278002725875322042802076095263336839892748010646124579356514903558586706801102655258812917400849265101000116927474584369228243388999978602721696402881617066913099924269337765304626322635879497830292858047609817776312213514990359195808156693040592505485696786988794230128673629799299426119640181393318721258844576771068393213661871835148383990794364280962338137124698860786912103759570888824130508890053582088640606357060855144863011555963978455474054418970628650420821267868421916672985127085682655389764208464690612282923006692631581332323855776318172218707535433899395696764755943998963073450064280320540247974207544655822194415388547406614828248838829189821464979536467836893673484373251564662711604159571952959864178236876537208298753675143762403379889148012116025186937050687548954490909495869799179643111253514369853320577079018340553613052330457377146364249328171009709590399562941659061086428047933487716434436489001902283191244917753871438320157015264014822104190711110760892835966333145584411100793276457059607407838115265565706297262110319440003597795386668032176589181827202020490036421519412686889981481940219837307284181389318098396885468496826266359303181901969011098473915645194212118399521634890847389359691175715704803820745395330669766306052153174063436802930086423293901174745545531108015701796147576282653090494935683326145684755882633289597053029204632276842833068956861187348305290026566961671813802780616558310865723294737423620700955662476814748937895540353614718995198807935199905507653983045746604344535741352295154909638498262676714420325032936551431053710874768475810978322001770559072847754646945195123783336893351174392728498809733355139645846650837267474735749526557116119221455982315886260685711702317223602643899745879657815017438593522323223617610223002167016960142093627722618265985300141500642508155173288583776340473165445196263141757107957639741675387967565085930733139555731133542527267519264786575169720152659379391641358984223041023686187446691618344151252000713486841217561556693712541155276225013349306749930146039381616226844294613609825633185500181573635891307169040561709948988345207815938249981234077554144464519707453257538419702183521995551778229203266140935842855412942962321843254602643764675993094237966753675290045101365556890717816188953561925545596340980221112102224246136182457893858310083299943304778089282458338026733137566691299725446044373599616575357769719965868228882683845085693055556680868180415164008616757657513979844159889859385030016340679239275157315968343058544067929663618224404328862460250141009077501026851124663328900429989820068467152541716126986122732973505423799460762471214609696603895826034802489503737141604257582442896137525813990518436863341679253102337980764323446320732929884474645650038205874929480270078792607358911793243213460812761795022079810476762251968616327682894145197531485416852030425059386410438210266669330615154005535692066413005872558837398110974165692719463375208789976294126591484613901417100284746100436360349255754658927564262853162108880749236120464728007963924836447210659499603167258218257909976427726195083744891815697100951919493774396231170293829231783542118370406684430380264781135200823134384649398095636334163322606081032880569399216922118313776319614475834405988788979987744933478294871479021576278197300209367139253887029437323419280157019739727575220387581645552194165154305480532914361935966713168881046977673616180993907807895992310911820393655870914610521417724419618697781098913592726325969318418565588155583291513204680900128695330704899035921106792129139923256198325500214208025417838641109380886578742888605225795653306344476391664504209583465457179375726315497011837118923406811842867598526051235007661442340736662418977443027226331664373443910960969804432428240500259314094315342319052093604775289470216459097208378116290363305003148695415456239466216269219104418818262758756923803010194151970924491163009138535098433285019051888194007409309372867712603627711280781733350595979746453089843645040549134590348477656465453869168310773271608576322802595446701474496350089766827095394590837564058659313761668100061638975240401038112045333958602697819433950549904681862831709626711462240973583426427266772533745114803050153892061419884382984316136267494012194201933600111330899913348736731632671794018600917422352883919862912428918165962803578362673032037789531907655297214968556162496920517518720753751167507328363102911032376704105344514138821597347152142296444339726655319800708245215774165636515013646879483866595569916936780821627130081988097094469150726823997624800366720036948194813484180512803843770592881076217885668131627227575926132940302631688003138755851966145545934074762854417129194870327425976738169273912430723237932745113327753483876492663524272588644173226056778364090396285162655477940802271505998632354705329768478682436952503666927643837923440865394995252494292470730468824076888424645114826980861792964719129590934628386050008984418959368219855583736881152015609404289568042306221103650458549933659454467795947816800557170850153649061709766177024044242775905870249453590828864677980201472316268211584908695487299270549896499424386067525648956370045288727979638495310104408140808358727540555786742742940665007102096385471309689725453684198551737818050461343141527489062535532595169104348617381290885117403223481425967159312989854096654442890212001592300920996233897689288059186622664247484700770227296302738607364652847017161111441625735131410862318978602745846137016404773883557052518794374684664905376561195060108331429261928853135862515157826530154737208369948957333020391052696419824288792391459537956884472308824509328798680409993456219529894177395123248419275453543722680481345967232761358393921383833068575771844420202899536865734844456893874337632355694883276601753320515832155421717272270284259960803918445421334594386441372688987711820108336471687537390301759779029205376230596958034841686353394896731404176047002857050594900564684376770992418549132666741801335803124541711079142635936164012684901998713319701473862567637866825645157493499063256976897308284243022223009756408898522752359904626404397128410555313817661058880989353195079172559607259294694593240261545780088375079726048162815046469075498467040490032357309402654462741779486180643754193679831337735524461546302061321258421128478224305991391258902353679870611525076644165582380221592804350464883473370934821269700343262350746371583519601286584021221117562615364461173459491673715380181482273129293678527152764867104213344530953070149001456087718178955500647501553947599747097140636147707435557257074348638299720391920986162761876794435834650200385918298380826849477072167978029775514819482801491129331973488746040189860216964928533308560633747550575767073020494271226538063072415564523656990752139490605492483761336962640372122647115541353155221237285743949706363426995531690595912959765496779598622126485514882507703836422122638268704605310895258127240975576090035521852464921757141536125422008754454468816958976379248393522524841131112633709160532927135987029937049942567776895537516943583863691614776506127584419939507882276225395576515377142851170767512692376800105268963919786520564958942970076055481857836271068460863537045635333856618666734775939224544142546167881104740006063175613079971998222369867625993814554531237185766524296973676339131742999738637877771714328133968658503324877846469641740164413521456296719949155285906867937214858307035571270701356334866050295774583883048894231124220493415929568431263348811387717104648219607071919486322351107597403895198703693002742234349679707450884036956573960402901796683556838552726558810899073594024607802736299006968599874700995004443980173531093228259912878579434332522255522674641410702466330650430794040254548698240254047968752469125206125778724281108149454605299379077935798104330241215630684979969018826888458574319747080892915879712526178091255691201288930027952388347130643572758187076996542373054308652050880513093789135987730660278583592426950181871855714870269602985573039032757576125444007787685706929617258168094981761974334263824122628675373933645511084550791213707055945827884514744535561546519510094198097932819877813325615012374151039297603811903985630247313819008478153852247614417940266762578198573540670230542833013136950723978360490453361722803772725514414400044573779019297330442157438752440501954926957813475579536786893626840179227248221954518997919513980818056798639153305610965111284787066305332885159964085434899636020287242395065251195274535650410996933999585412282773627413480067471347118419229204282745501690316678737362659957686587203847867303856925833333278955536881737689565959908085706172669206768243886657821973166087137733731941530370531514319579641843402543566700302702011641721694299209203339218436976743833395274051956459866452130144240921299884946982903065710155712814758020713917111326738519294462217740365194594709840668420549655076206767902348405625114653868955635013044697638468223913629391499860743091485324079871408590680478609354673853434116028036941648850701083364245972243971809906610696275962489409795322568389981624835566955950015676666527828078489430164205587946862571221424135798836896515864489754965646049390482576584845603050426151398032532715543158316886701158220431492986163806499298976292913395576642829867801846117336888699430568784162433553955935207278764649311039784613358569271345406167292276080226117112516954163263662682188788084692162460964119039225463198967751936798000296438897676174047943658782029957730947837178083301495165725275096120548907851453252122527851403708801027275543684338794305741253053292086604779136071306542349608433290986006818509813447376996797467941602160377385970590421530420053639841465123106190166017829025768220935573876091558508136558424032104486806681639374064366175838290175644236247519140420289501415769234258329501649108700854303739416848868967641417117682567596849276027228294052189082101761519764547607939285999706143451654796408045182001182307505333096247585760595089739716814548995453260450044959133749329280217206970637615957298510966033656617814870095409143975418235720396369948853709823130708363111844967968432459343837814406622253140205021472819292060054654349904501411332881029481579821765400697999810586498070385224770325691194974655710419751589874431036798539967416328800190797845391446631844690150743902080228627124941991831800186337556801450792426282620017712751781364363997794198537361997008509267417996580131730644360017667474126134012511826293091449287456521084542982556320553954923890112021522817675011309052584403254618177080359686321798174531830059103926753569172039792216816651794375148100653656307889958500270085858405807916629820988769843933814467235651152305813347244349463793396227886782251373468225754101205247295438027658697448473831966403465287635954891701926334037659641811405345157375607016481942027124295856061558076994671657521796335777033260480344594258895446813738322192174143383817128734971783933783869679523936797794039544849855508548466577617359050834937415976462154994187051660976594657371378254524943967123679517966876980034928673031287194366809430600543886385024247687911085282925381308444629600294312348003471988274347999893560244460596719694968805449135337671982851849801603651010676498845543285055605701827750972523701035790238650225427880464813392166187377406452372021152497951465588814641569273674805746917124434357372335775946626017184743541556395727253782242430700593375588165752258605781651439817573458613850142901899806060546813223766992288409233243259779635776128582534611919565384125504401270996672020377838447636107879660789457386675672283587063322536930007919681960664232754369737564095375432381988590842206662119752849722048282316459991370248135074271332722300298057819306319691778969153824393749478251977181654086027278227395455612613089032673425975397805938772389652905540160709090686348772248656223802613811341709260418717223255753451349482462180846325134830023710925133807080197990553802020546956193477797306568046719866091556642406308237426682623525769805235076333684329364308424307065100123300072941258354948936446292873857933184925769855742676799816487857418771318778944135437265588404788256767613186107300712566712521839657815722077322064884485144705548147249148735606358693937668258983117420306682579661870566048808928604513819845140843229359704011543867276459500084722174756948843942956098140868030395254391976539686034522228772080620115193601672503936890505287564890164205318320654263180577325463403035972205527740742006659492148925118834256396990197703845210065637638138421405673681746807709577600105858850064208290130444223840622375385865237807228324680416283249261897438528767010738177706021120994882859811915978853968467953712456755164887900596714407218865421343793526695296413075034403293370165337924374014790620317780063567502188489501379565244923503256865526087866113626268622629817057187648238490867584143188572515515734274738398705535643787967075121224101931440049414202695603474061855889948366871872700442530725748447053879663663644704698604031279331770511736086319193850256003261650714696262091353948978089585372154978364618948024260696301900383423416293139364582221989236616161394407281379726865270304992276709511417508522410722850246150618461565039747257833968066926845924150621554050793553256174759011585081840390575788282641341424307742479459755879544908781024843083805881323138028400478591445215505095606419029462636169401936040846340332077242429079530696741735481664273881912479793148127210763825368886255229435548890010877171208821974624666654242843622736175182539913692777753180533119190348522632500632959149441513345159905477510456227505855673926450777350620753074158423410956171177180611934389375182947226057333865098566912941679924622194129179745162242603472592393399110810565434412101959724580597999382876545820190203094794645978755354079537995345606403626910199433434624178872464713302358092317065132913911427772952576317491023851429219039871747347300967674121250590251553229718365837528550264454805417344828108887542896580268224265166478376131600578886218536520139188222574373115097711601722883044545875860915843600815871016551150125867103835347634472302445791539075163341158228067304808991094559242877349897403929991178989824965203993181282282376288440637108176439919677188539539787107942517126219824869839634108413107009269955217161549835783210685494899431489880080548151930174530791819527736120777530118160743983445070152156560325639364348625125885014047112867259717205716821567235994655940683623246796540898051067413615245678766320803590003715418515609871555455102364077719027270535338138491611852258242989959111216377635859573326486629424724572132502191231850792989567013747330591035127689216980494039903226542183633775642373149307536907765284788029822280305329208195638629039692634327192976588405851438858891026870551830165221129370098446439710567175221970848855575312505157886924848215012635739985530789394829530155734233454969200083335122893113368406479135868930201717365263916481227812737068256518437813489345084231952605740675593426441609624216799538302699687875678945849424483785862513890615134813522773399317077112450561705202782386815990066695771755092684002714576132146352122397492432743643585613873245180869496184319096482159117938903122897944442933792224878395281466274023792580993996735983938830002112494891937612584094941857460486156908091311802446252523894046969534621964215681646878371365114039553929382288580371450483717247205817174243830724913243959262103921281018319344990822341041598924213898097351190386856810701654946181591521679449121955867235519866738913648240250449372191944701224287054072418519400109334066534842200764352340553388434753023493343034496141869694177297130012060033311036593486215297126743480634734921053597353443722459753947817783898356211514961871431715691452908536472241573453774883073068966917621640644652072578042583883415894861957692886781468903272067485747701616284706894074937837689128081330544779586704100337715905199019067312692909137145331303274192573670770981452400528312256904920157290535537254715237613523669846752115297890671561274493545863253635572921713019386780805505883185062757930953427992850869268995268233752958966290905599061554407412433402695858594024237032836111760181086449271637520105546374559747291669163505161769203580867952376012053816306226948466109536693966525109688763594386137883771752045408513255513790327385010053241193968536832800193530397326528527365799249710599488541738673342326616553560928265603156451827131640650996897622173799653444184780830308102740375927378166197587756551023621616610483822393486251907470177483129593899143995266634000859827466317793163077803177528637540086969920478872491548614424497186652979243210231204529139048790927036695946289416511515113477599945391387709287113238251555971285341555841730304971233365370592885725265563615299918979025883831644593143137083126946789257040700470352201041228009620891221226654732411098618360295731236914267908589205821661386251275501438449553197436028009986019444929261898839787923764800730941731336388581413186103737790862895915752570738194767456180398068865887120943747419246673143867700705568800890877533230885211280142655945228372168653419201373815927618183999541924171340980930490149260385617253557726203763452636567744679741873326187258501739072309688082675495867624298088337027165420535660101929735395536726725733600440270431792598673818537001148278619197004376588266500210678775242119387062126857229656165751628262740309442239407985628068663141250970531084559016344249787467162701468857263232820688742316206841018859552876815964641070709999379725542570169124186636365560403764583169838110052657281363437433529040582502425446299671123891126151766841841782465589697619549854111936526972818393705105688319724689169313533574261635652656119053625665455078435225195213072433409405138624424401270962145166233176796256473373162749146840884362485861039569125043621605195029767429010967105468270440036037419122206909856070109104955484492987177356970832813986573575904951211415053534657500017754482810949583926534399625728543297692041349139605667101484653343455061248792747168821504527135098910706268335029430771772986990392996435797821810422763120730308608720337256002206348017608227351571511966479355962101524326933538002392073178201511734003682000178525443325120427939358732249695173856014133564074546149296356696730859917339397133840702937021707716797049911385105075420988358012837472791669085672028730014741760925176883564404378151249778207468470455115923069341154987097852232891021828059842228204833561319168075936137111923170349284613339145397854465838875505127576489676784003543225391226939826599837104343114722775456751669932569452654839479283778108639098834017922953406259826298686023577765415859673297764185757343667202477029102906809142150004339806639487548687974523142475242844298668886460687349818125761594375314453043914851048123687131857910621467521420164717516646732203728208760563670699059637527699368963765566518419986259904567332129447299888559709964350229688009552511521868052300300442148573510032478078849004417071776560561978742284006101181382161921325434041402045121700020738463786689395030942169272462483613294369992688809016501954622166760150182259912895695018998305049609374884858509457608244364020480358231027930905452145102355259880858281537586487612504638939443016149007429518962392472597634025215133732405625474862652906675135271839605948466917555372045872891563135837067041981594769485833605742448059202324418705667922722404100638072390874164908227914836005750159449794933813433560745546088846347660565938347668149261325083194345828259518681546056678547201507541669216250497160002615434694502606349192968805406109766127557823445340468772449495646522578115742279487809243273521635815438462747342803456225649103176783015316999601818993879892322884825678363473582261934293069374233901684307088089336044231693140201013696037497612297239284370222834991827481987325503662652016516793507514258187790391063648803006841265227249934156144240799869349163080132798655781870607766303889010512188724244211637698841473824291070191118519570315351670443928033251408848356682045129430113915193100821671983710218081058066610600972443753178192685917467603907948618068002838499842475375507788913365285940713451750459396530473198517933333578225848404600637825826075123697884819295893214676868162674905283708343693131587449548856817950252963289895387426440621958097860373169134050666366487781359089494965281130946461392966048945711134713779561491050936305683504400539635838818386158962473130947842411696958408808557382361700212370460174022551021212763740311842076765761052580675319207838416509235576767749875789290600539975868370384231231999707783124703569757783182140116278741931920986067120377006158326015285662199470001975462192867655313255997521689918873353731182085352282422138789327856728190207700462712850051336647004618764624811824962897844443097574067012156118955328486877733020846522946557986232936121338497205431480094633785832612958634921522105846806111798257468221490016807962334111293551869371686810315488398333783901604735556147477875532307486310068764852940067711411533289514219227278064592895400768805010756399100451139144462919090630774356057824088677474074692919233087939083804619797747021040508675767506972602309367711768795041845009317279911892150806086675183419612418030026340175172263370551672714063504473359203145099344919776955443053296348176287627571078052609035027965253701332062311923499817713543485525824718820032738348807801620709409884343728476022774275860938863703436633876384930181796696502892972270148498310081617889837433073722781466703414234797191929710851610864947027326962676135216547176653913094720378325294842411474995875973905175952073721443617356205173959820998365254240039820261997871419619040128311116170644716268311997111065181281294672227001629900916578975686856987372564006494414984937396014594699259603755475687510314665920395430828553647933449365421718557464273677695640926219509820509172572807377105620299534729987405050065872488798347726668744612459519525804254589985996322673311739037344553306201040190283238842896738752453234469361889329568701995034885278868625211141245981890773279157536656485581765936101435932603971719425366081529386797246741090827048509816961609089835801534345659419308548410750005379316141647451276496795560248344212271238026604986342203593136325072189922425574233695902282340864791688693946382038977379578195118827727231869174227841974498398522885842449195146590589652504328340074489222811335299554812127608044186729037668322994566531677797323763403174052540721915962456866206831004486990859798567700159701087297943015232197290842029934004911220401609836012973608554913112422547714081318359992731445072453341261835271370723273994670026358711640899495758524888573597820682697784458066334088540558089241230462033090443526272655700278448772326270398307666168237451990436255571488394444445439898178752750597608139928023214540359010091821564146582006154869175882766393657341716592703573003392437068503572456546529184231457049476162740307223145266427303859697761648368961544899187459772623455631921035444588109085907135302897367632364504486366193443414188471334686205510111063622460697582011102797377144052761806939296720029478264223484044350366722778921694098629003696440119652033344720910761665260758738777902917418678389869671375939654272129382594127876587564001425907550924921919231163687661233238978673587405813057196959867374475076417181073043410717747926407599248067829146334233469719008135644129200841753089805795105680780382587304579403805097442871461882148899312475414165731530995255008664332444632170208270205088604599159371256996009627007909493593661934308023404887264206312901517292233995083194634880056582364023025142216886288900949617514172973111138774952438199220712211815867193535643249489595156196274839333514631883225350913327272799422193026223761803583894094233237390463196954594424557039117797237531316067316348107118371261304587301721355321110364802793131886411284692799939192982556010735527926497782742435653933998247657232731141269102992628247813208097439822088884327645046281622697811948537458703827643410668831877930609503008877622999991762886783338886351879481088282206326299876693421597086969633383320973961275671310512208531870432169209622182525242837702431264878572738709917853522834888855267786869854023852876383314121624284016335967305083792363176409559246645879522511037329685558590831879936885441142207228135053140209754376357709423668523091441881813462248678739468957526346014915021146932763535481309587750534791616764154721599948735143607976351078639986021696040456611174591165300541370142005244763859576529239854204534917499342825190019958743015993391828241681178247794686162626179837962796341822946529357133217727628345392864924958101620704842754188002792731222223053467678322215951274134819843974770000442441429923396367947414502700340857491532157318049003150307547943594660298398807447360676550284215511615029735324474430745963086412312137078592923152627460596259626818523430370491142121208134173552697887313304691827775158774754643465255829723247583711935596144827911103352874305908567353393208300502962818785345516832289027200820255633251620577670106615017642354319945340882486637162375911002774362767716124596802509717750435705905760865256274214192420667694622428839054015447263109870415992731624717729059255028060178175525945992997097148923053052615797064188679848586623435261245778756906807821746062739925971302798692457516567413424060146404142902344323455753160859559641043495900461178696511573003706379311078696582141801114296219784267157007556266211963140864880156821460346814267409394087766460733709715594353782052307159097698216778646899932156476304080819729141111666480244898201214014572534761911956440991816372623104714810465016582417778084302181719166936165838160172241996626839815850613729433387618175998994027793295960413225549630572947990220872259711990605400243379396433594979688062832384987984205137879809231724445337675567539187753639603199822544523578331983779330209053995067186897751161310933908411940981346313174798295707326708283087891726767643936987882700972157011912252880736410648519529269411410267985351685789427760600430246220262353822536356743500871110023173943138301450241686330370100567230273069283173954246963599403878801994092947308176317754265473009173131755234077224380212817571310770960724133378284306476516524588579615674077237599542319703294346634061905160586841484892238402034964179672748634740001456523753596763085564891673909296407187311506324710084323218905356597316249824336675723721634911686003805263864275327844311680591501927517114101767424442638793995624091772407445480173683972301510915757823365637147824209647697681315394299037793545211247399561947101686706053085844566638429069368976220109494995413211949304116441562306576737260319221744040792910023658612821168109945880565812103231775037555461981220524624674427140435984085895799951032163559169268448685977445398128173163096904616621364612617192893648506502749962208119679919513279822081847912147068353579572067424724605665758984211231935108817884793738123766539684774283550379606514936651332304982815604324256275847136885823697956578142789596790388377925207659994686535011598634029404297526173560237123718713656117135686686531573542945022855865653690616266739281467631447981163276389424495086067909779078268785784715850279439128322254286765575738829105375616101639317262809249019013186663259982928025351719622034586853496162299573818964706664775618282609265553313732693923183864903363404348078222227045513124037992066061131329652817582007319324511343016624591088881238450133770379861182505967403477640818412038542874277633213913831132582433882450098963674395280021505847486003174110271528404163410953433644214415256179291942568308175369643092551793176817695042876098666621200755328986827263772884425540702262719616358192864355709402669875104181187384495692914312518969059091744461276172089458167067446114016191365855563591769470540461978924648734659663102960979660692839098155268890018190627266477867875912283018873887966110301579040651331204015166713745324152693431057305225187421507882028942991295694648568708405243777184237506014553402777915783657788699126626843130724875516715142861221163172660026785111638055887916522492211401807337016508577679579742832175382283701543823424738635306364496027677638035540672466432445674847377183226816809822705245711919144725886768358920103876314884191496090714323814251229253599804008423435146051987580162059473751354919010946292448268960470773835537121756161020668454251705520508082965665083666607219794601144911087737548030554736392590013141004802384063947782767272071994523920294425569546345708366452793350465344853706821622453297009611684249906673300615198199293861004320033773256582078996975909761661779241806826391685348706575152505221709696557911631695695918938553143008950812062772419792123050327703523954714675477197134729300162060564916968733615108145520408851544253519225755602422234001875201142846012821123303314008351905809803501384723481911858618727783298883862448904688576685562766862713162090218782017304726018250424249754104313863704621318405801819142322213045580034399077105826165840442578881800582297353763606597651516228423471336554883522833020214764545177455692105200550453695571570146618171051183676108091636932151448382015642307905817585520052433827201648692452505005281242092071334907458265485209555301907990002151750740536406262321493620579391359990419410378819800218058555986542055279498477065919042481921968395002950320877903657057504961569860771009947479352457225264849034104602241404148832784104040017588902637316885594794249927427487155391977054784224551219421998750586750821023983896609880217016411109299101790669652696490809305143415047148487893112035699909779229763156136347142406512282732012772284909770059179597310951459805362232468323423239011488542692277221026230459523101968271179912283052953858006320693637354581320689634028732570957303532207082447353351282647921797800883964703564028728726400982311256037188338564841302787260286944454871225407945816602282481328880499779848418483460505308080753268866689933056586531510977940881667681728624574974262192340522385562719577725225265395223829614244848654394848764743119761589252586882717192551415773348991660857216226278647157522752308105274473859467085619629019237546288316309569180168076959095504796856529675355318134907060062501976446954835260714105737946365704103493890928972466684060533904123048841931951338033082375205121705134729899586985137263651927992548946972389746871850861338844013149684862564862568121586787418173026928487402474617816927050303627409116439855884809388618346923922755708559456700641274824275654055716680765033328565830646798465757564352560919085627127964200071055559787038085995538284369023018073645399767404528082163385852712606831476051110286798473075575138278945576616385456643150139790808412992882678792002981147647540481755698783214262348180936560511488244052162567473821354764238951204489735652393727118192378265744188727118340573930671274497819735908328710003334512806009934940042813701372463299394181626633545144812055273801920136510335378715888140415942536737179314508635043158157451712565315836844616661598941857588265001455974342212225899352280840971428183359231841772365170440519915488471789998032258384352804782721685023396915560083892489142220100456549856003715933512778716056684241553588579663440832412721844750267601085425633621034282070721828564777596330559003096638025630646812957016090770321045774215300754408022850197078820896051815068638467168905068934430895411801787311739815534840305722300164713197833167264256491204706768399025347927369167949059340301695175464611762036777231003065156049827858067158333318751302571681643046835544012875146901614997479440768897261062615975268106522032707834516156433804419431407338527114350002446513389613825590287539952666985927262114756886793760893709758583684252354671914959070694262730893848821038480729740874119650330918682764414274429752403816668624857737214203616499923061693485064193897035899137470606887054452104760447755327750643367896382023605933734210448523291765709101178159621923075418211997908848341753384118062893755851024280237427457183768475593529519623441447328254130322493390145595390187137028974342015650389331719024517705856025163046253442933413118210794207527254336234529051356947338155856991442308448702080238982666332967981903589700234963983924088535684865432163828980930932156713803549511993136677445026114165187160540028327355009287581804227606659074351178445613548172081615205438123098274957213474806933937569183194511248854901633469291136591191211796174316323733842028589309819644979772055201805034795137999738923179678059767839341280440018227986145850373919443612716445947085671811626603118992885464916387467818788432924782930374656791463287785263333222492510860025909354353513739582489482081915763005899274073236435079258695379371972308865726800245478269522062847032766915562233420032303306543735793881155969966229906828745509837862248520629874448466457543821566027980294914678731695109340200304613118277770596081110458072602237479910322557495491657197844217676268142880157832505843448403131960022943663362408906776968476730884290288837398222757119208115524154014687705950223647874772259196033087381167570164660788702461902427984181941013614487698436176083605691391676968544311142532562408301718528418768691214869707041264722997422054443750024312317519842718376792813950564795935522875877583451279786604198179819480149709973950845346933621232786248052086384166030236021381242834715920469291106118128549515041857889886381991384681310580889621680244083461319169683372234462099195635347228134414140008767235415060321853548897196213009574734438237101186110704139320429463544196721474772058620681218482015607179608972019756929906609041981953472337711498928649073850212653272741913265037547466748918401796202015936294445151112661803468275453435234054722625505462360725747865919756490882896303753167126496379423009695199242048979448891638056394320077145874420722082105481337928787362878351100164986148544916922036568018043546465381994059657911332279569145354780697407806170753924877589778146685864761049206637040556196312089079077193777387184075823412290092335673880230565688368171331259940725240603497188658203451123856383982662837996683999977274539826147533803441599643085685868193044706798819124223601518454423430222121400212186431008837962514102533472648091851721317633485143450814259175598195703024900377709153676931203791725154079762792615466973400776937894809364876403750029318135002885456352221910339583894131538188526710168364663217353594265876683797992870010850174810768988996181664056714915061952561751824177562372653580257102543149044096930928563029396437660027120690284435277031791709434205647978323093425200087301218371192072895012590197048571343083085058774563802266870918598813583498883794057700144012304815015773352119060971122904285059004519264022064057971173457179516775576181112581824607378191151185493633026123047846474362924268943808679208754475075335263768090264787862160285027251008602914396294565898817699248089838123836461408458268794771746642636337712430764982204917586245800312544840469290371812812821067680074264608234917328545725913167655277050618366732683024870836922869825417880348111630419978675350531427413522699762973495810551995010879992396948171589416167296404715307412832596882313033952723715758248179171275856200296597778697668243128322736819592795735303634874052624041065941573555140089916346595341847577461764481106919259951853963886375211064436333045436982752667062712800112182617606296795725165361522192565790981627489408512256863473456824230421193772519548342623240874071686216327783452673614671611281280067615692186302551678446980456143996000008808321926159562691188761663890248691887404766865624330605439936401337841504053477156544940218827420923733542871830428741022480626439393575503869297899667247944186160805994984500597893420752270766185684691593941156683448269477474337325907380821720148240898337383261674288525477127586397120845430293712093876684663577038656715301109681722177659391335045840943954038935602760580492883919669359697409910768221575575688602914813836445105423969109461720465554323932018508799793972129541103141201390280512432826516341665092173848041197705111089775114811069739708847863715402820453495203026905242947078455683435597331066800035814238925099372695688683237924557376430118391833439748819067046060510921681453955523656154553802768154323147368084530981166083106696097408450614557965837111202542577662720748932701984026577165657822022876001750251861907818437980623876366313176850953975894696903200386099729626032112345594366053417759379642904942006525263927367114912622837998372314351825992825799921171887840055879967065475264794373585959941344099690317166752651909828618739035809811942137262983425963832004118365235375947060671672376896476877631631334667522781727472209295869133089689801515534306884120591465631552637902082754667325030596359497554563091675609954681437573333929820554514592773367244666581093399525369850177580006136784418653997642416076785716773614134733406577385847424584106860367748949747210845514032461669930103485425355943861962959136276608013286355261222797907149737981625609186641230722038304975413767680943008072766648113068627146816621786168388977607545514074108434864035072167320697098671455602977569811186331217664621988733828170155517590029705974109610225180282764504074163739200594351566084539632383217692248415997735079389652464723993493289443092082512760971173880454725773702870538717736083352077562153077540349907847541717964286463936187334340833945552914327669788248581232441074873612496506814444498391248454672359204109126239563827254514074012742088708659288813504269685381306895670260981880955301632420559684727917590701487121681598795868776037289904892912314403396960800252284487637761233248168514314641950312076019430517065975848298934377174899309678655869213844527231731875800063877487348705148940008675693777188241937058735949811707065961738891656091723359010071204163003678237796860218839926839098492319001928590536367243495740876982655901741599505352390128746713566047017098164347551516435233037469363924861957458915710162570333454068809452735483151355869623673725925575949965098609937807363845866316454470877396663542702401853793817081250431531670185328834220955374426188692278197100231760208280657958411105227606100632365224516645855034585708982669592970393991013704089855167817459982849887931985387826176167684882814021425602852163345121845342999166276989201479714058401431075321737436153417279042128877926315523984710635369065340869223518805397157689368644313402186035736588539530064599039607009655023092924278143396507569658113883224210676034441829070946914828873279435140013780325821969424085230811623517466468024781660419752002974174591484868499333360142027766411904539644664923201766278971569769322394895844828872078981712165093747613074727422190358041010757578642634171554970867054235752932568241904760206735691052716876131973212404717689957932176045027945956496575094407496183281743659565506085295653390227139950007117205574752368952952335563654031808935493119930117033039331408750595523746241389560797183412647005041708666050230227960448315469453763514775130088765129267350138208869512977359448029846117072911700186385206927711279252388813595776961524709009135314913922609659289092334658907510830126666795534417047864952387501114182344763267593317196086254823641083269419084100490443802877239966502502418952984897292305489866860389259092934982040964237748978410372987371673504798102859499541585929831911557801030809069458078255786451432868160046861283056705816201844277974503440206852913405845821143503723218108181028076108495636276886777906288388972874197201928421280491452708894719962886495385828167905843812934119928065400221663875250061152813703648142445055170934931596468181366893601705276610836964172423603678904661430679879262144017691224026387968105563036051839151490883603262429930344241001170419671565826027609513345119555178828537913179722550219680275180652808625334150487764502416834568865118032862000902005791268518602404565161799180666387746948711554455863357941513894225628336179734916996690009962572283509205303549721448825526276239821000680737556244463587209994843640073726617774548443279048213148700571595305088256564946481085222245510477674366878449528667224695155951406100257518189697766656166491369235531512879857661500093727673891794906928796346799673125530010946083696620505715841746700449267250369099544461148599407330314588215700852892075939837162497973048130775911950673663786256352791031990214644689239672459167749465930691933630100641341160894954164584532110343127057656065733620561812711726168957144337132094960172312084910902838610961785388683877019753687231045289344614453611255179969971492099826470955283411359710523542298971028591630070894152305510886787708717684876905881267706868661458729934913364579264914545776205168499212905525004629543235780826107747266605919041757311885446837635194879280217681221185180426200328344048140668105233722757305920516782303613913273101784285691959902665181540400087691405869138245286103283561898423500121716099816368197704164772650352420705371245080064412540138291886031148965938106172606073459529591219253808047177686631635400536509262729561189136794686237534647623600050876646378990498811025395921758787052240458281907565593879686860451655751616079623069522392566275152052229577060052664253285473573092434749272851600243639775905718002173764907928035989081547690361035345471512748900945303620531521694250451800338961283965666078308881530403224388466103974050262943665921012046275192352826982650388985952334875616208523937358925677696059393440590841975310414424753288887576158011002849891587081651058239274653675722230857553041289874255353426962120299868919315192845900419797610114232475258698840314883982815058465744695685943855514195829849737496690798694394448032672041213154852235339773076257440869937790579768989474836044242324157208766561388803700614882269467268518659235834867703126924887009051195693559002636806099073655558783284598555735461788534507964817994165851875762484277890327856701968924147871141795749571464192790550757947110258753223995358612432554617437334455058341638339881205860773350020336509086730253752550511917407551528766737516861823881437688723431668286679016910086396352482315570039979401605588403208933827765492917267995466317118424851358269245791132708928274027556391731041613610262270801563414541798554773733521024885865279164736460249821773447713263829470535826546749254411049197005784195062188239055412984767613490745387227414208194839971545939017941235981017663507742003394113777172954819674949617252230399485838581587758520908402804439828057737421609320246004903968253210718243819442445168597298721442010476145097726610257501007441539193598305211639316205977575288277813069190820333889634573626726146208419256663853840860308891771322473161415532564151726375993851691072768219351930586250993713389296686350790114375977481035115106429210745870381627147957134011615828311780891856280921225804943505206595550995747114509662221016865811473782956763698868991564264854537788227721804935188014157840590189302694967302689246351653712109526345692972867748795132561927102158869168400151078017395104049555431502608973474001259491191182891428968522011565684803023812028041649607196923815165369763181957472030464884797835100015978063464836743448856968106896183494590837756566273401351695515603428169985027614476506604577365653358291311463152339184260458792483744932902925241255687968018960202613714941602076008323054777566465067754197601335150404092578509703641249050351674288837185739770908601298505161335129393305399126513076638652589006088389748376289954772429011158197215694226977027855298794114891406945423857638978014751813286429701633945293156654745113960731121282124382138065935309647541719266599854135784256243443915142062900587283640911008033371105167302647013866577513509368534183305368409705958995445470550874711277036406628538928197784478407167933006992649464849852090425190681572140062378849399009275887625461006984316124317769801592530879874019546094133964713686553596817476721551287430979665547359929108347768480374711552710298261590411491264235325323432811392485824487930217402062237422369630457773222765765866001710957209681851348936472380384331569326485623437589242391875512437184758439390106859155387177010650247339657613243436936809089380485579207382286023639056680093560615688174636929370646686578811707550249390917395195327387166292971972474209910507509838831794035168923370842628994244365165510579999944131296184546291130718413843902939038281580354353300375703822100775447193851459938146287497831971846535002753199422295973367040875007154712207679822274344853392396776185218200442438767774578657005506754232231812411323740728168298361444055498652473251570725046001547428579048357914283057807551340072988526010107310342503899480860555437261093238967020504219776993231514908577772706966342777668282105862259236900717110125924656838663811474720762864344035643322635864527630724720205112734019595056432257444514666815142180880956469839759341620504216885776280095089755444043051308146703920245702710304820264443564944816536454507114892892427836465628329644670382881266364858437490219572637759032920880306670279443762438514582788593313912254452026320676686969019584494132020028729835105557671449914068553697109132167355189366478142983253632354260249075238829348404710654164032808716891299832385510155628684910264112793085166180572210487154235706260521539367450552756293195398923499343932130950760554819884677543754477075210559602542824262499374682307780283018677608889897263662824982495466580382437674038383919931159823180918936222028800586881198597118096235074948010294626745054181274782507174783433465631787541541603577027480832192751837774018260577691751623681737423752185380459334916382104620206808174048760991575298526277724530315296094537375306964298222723190881309834465297052865038059883761637348420447384052384258794476491390104138930739711835066163360455797526966157021778300738189341951860641787397581038147851960985030259428513993434731555299633017228736562029626977062983098160312778307146300055387447786049974357316937220802600090173490527355133150802210101701979530324178078641593335864581699588401959620054276864726985190662495087188547380440624344074963985868747883714095952565930785061642198263197515175411799213218457500486050953262819790175309466537601714019638283402549145444901001883159857388028146084563210925369839885022659412247095586872561533122048077960784988282617989123372643505512182754048906744722247479990364154066221310449488056052243924095739248631306301851938279379373341163492952799931789699664140621866447833586200641311754126394133957902783740259772816705764705762498891888388015277667023596632721418595352445326384512753495496255789726824882275419929593082943971985526295169914743450828815248568287851392150220063283717314935851939492671547033850725592289658483818397796439322630812375639183890452308159852436592983099443931525384244180038307147792957989728701679315101331656127998728833076962538674728665721111711020186997369816871871461728917116757629332095858467847373221759614645099616823893280530171610769603444440825604976920251222676378079951340798418986993866565446834790690907229221586395177446321652630845107533140795219285056992411834530860492691587183162528774072286559877285829657369341868681119259288107625485079476924066901274494106377385262711009574242553860491604736219042693619114711553023757376247738325901510305421098069806346700013607365335858276657219569434832167021197921092790269369727144795812526078399378702411024013022885685021744337394546242128641791239631030897816903662449653590014655835873479316368676949946659316003029336617229925873707843776325829349697874899980246242304211162825254459336548732327085113363647453705847744306412507988878301800287488391490616457846411462603961839936152295571420444536199506913471283275372397295455371688716434527693984386445378456279602901637780822844249902609439923062723457275978800635840903579454710880857807090371275837236211805625225004835388966903794554717949822530625382694248591449704228681056588542291362505713341108937896894157173341938129949082344389538519312248355081064856881688048176061431039516261060514312727735841482567119850495438094334154509963291932473209137580322930611349004417077145437076670132497130776624179146011357516576171015821294224226888418255595920799899743380131317216961512494412629779944028509299052795732760504287305712071883866187578070140992299827451447466445852999645733677410961534909249823536503965210904209200623371129341325991177837391796786279333606109380741174200488958800692570290683394273318278764290466346546269859164061696751948345361671114277110726245128237816309916823045241671112719717389328978246455369893401470339127595424545852966949230518865418827706876642162570151518917320201135019037315617551100435419843308916861949591888206843491127951997333984117352847112687361170442148853069983158377669693571307684459841825157850392525018050189062357216348749675292245275851600499125846893196766470091701300279172223639191690464095752984792194085958805625645567987575859590013265043029132825176761506917215285659950896367427246087710632732024154016833239530950618017478996364921681628329117690417386332122819557181472003739136546310692162353209632596857739477768810602020171032632480670250360618020779006301163564195850288372213111131582322065710091736160531967691399155845472942226373187685052201526387054950215225050988765818986257462461394714699177546722308245290380568879884425011635272660466696393755888735128218951162688832468104451183038238467228419497255441996178874145821295314046777117309249386693466787771235439938017336832339275179455257849899591853116931980026361416345219782838295618327503573511622970271598327941726148541468547835723185752586842611355748396741208545982396447367205241931576931134123771280140155231208555296535261147175709791751060162658666328614518978368942608453068515129904390236768488572784619860576734423984332765922560168142039830835312964488764483093174577970872778845444097649550223895152553935937759523844374003732182941213212224644555033610878233158788972877997632808817182417052881565037686290806051189501480030127188516971537208158563846222762694958229141597378059348848908519961459137421894889566731843951493850434617157753088287668726176959752548114322100042518402441436343126102074887848361628935047585776705726529153446263998736471949054939593082272763278207506451619140809313409820187281375197345813582302993843488287037609453174161890760207113251195614089255577601972699873077005238838220211662928193510748804586444093601013751885619499434576733999736076155646012607952917597360374733439022215859887964441297610488550118145399072083284233830782560469799149017797168056110656916753739610242483153650139710790357690281975377164642373176960187183633195319596409068437956147231979737359388004691950400322766950333608745625469512591372460331106340629906825856254012933727416964895670084878874298979711053905163460053996673134108316025204458438787484837909866926202678327813729270741152247871597054106192212476899318028634127164610730190712847614241916123226186610044820161745163583679121258780455073852363445794639723779367467983690132156718459686592164200938990614287418907657710454867440526035344874009354610100560434794789792707372857926240496413970514324191300753745364008822483790813881417143053995201529567113211229096407693295222813316972846537924748107990509807705653383041942625765413934515621626325616112809954841242446877980141678224014177220546813498058536124140743861434403525789812137029671906858513473737190278440760675087442793521533732800436483118356437921547946284144544047919869662691362800699360555953756047694061041976508574863246107192632059040621719338525867986204804098253553423963016509887165627719185832754918726010471427007493326766877632512566128522017829024578736459219817421444227884568259489030822137780780450125418926735852003743004073924684278208142113477935177198713581644969561783448428285187439126092546888549338802186505749908214595650993325273176742835139109597571598551208496287534659030302173762540563012278978865482329751397630138908304764339344478062566969445916719539955816880401262841111112074047335974368444903051067641193300732404043318135450071114558432399904803625304686529871312087493221296114514766812018469676210691801351517860180378878496195171923708489036277362084189653563500890198846101195710434198919878057405965167482017602514815045756099841550924824413609150858333078605006329511801016547823726861390987988994355066691649509284448975513455130990657321853670381292007742535928022453432002077379909934420721947263871097624441324686404015531963458009805128580499502288706493076946494914458439878692417499445901195314699659010675012240956554231690463793791228228928551274523959385316126817560230243410963578474993939580338041348342559666400278259323793362464939909161269534996116527362579694557233286021726798283213698843051076101547193244568698860919054360024870153335458265829403593305363375170092481156741894906074632430969262922201848883371658746903916682860594822032780605705555402818974667061547805240483424757125363940106562274630444283380377250082120014267312090902257718446459476499074436200535136489917833544837363922197242671746081621977065953860878208029118769709675121657285833285616581063826106034824512398846357161408984569160268375662641009990027303814782607632596974216010364457889207063558006460833764826593070843638627997695308795812873317764403941250079474627980176324505224129831884501925339815391745882684184309171055890001516844672459089997033426786710022991872166211650470177941819289732815426406558085278937020485950452521608309490225348293654544960558174818606724274879244790142909657017301300323652722136310285108149067627503154465805136211249672877328270472786699640900479243925557338863262257535033243668590914154184846997662459025794605901531857280798578939505121197048139811510558831426646567952821030674110114989681853227899977445945970639923079237135323944947538915365866144537317887574760134820368036055475071694757397135836517363446360200293299486499233037808940341704260935194538627387707109667667597567334659774954523311304569119614763492749719296277350094091124379339877786259785703244422484108362116685868723654703488512672224638703377530764949741995764162357813185779142663033047956912112881407666827258238363621175185213768731048655327667138256263795971646138788593403319361050564559990608939249870132761978063270569944611437504198765276322557810827620261868097615991737592632497493190384889578466882653971710109990509673383720266046890361899915630943947360339268256019266597537442081561221189884116169576679493695737532240675394977637555964997049591991115168712542394765200673167457736253953735706789835551842094962938392788328386762024935876955903543057030868704918223781707467814793923243279643940737043866368097189127395845800249363658902794239346681422934702281892653937794624879069848734665749363507850139319303157723964641208282120629037096073467998075947972382020390398651864589721266587650288559262134765897460237000250645171001162722382424842462331849515828776291261531112187409132902011191984845066621649094669778241664200091085621528705146590939534140688934823152148546835896794000247910365678246332107185382053455353205450865551854691539526845111805080413168609923630097285184984103489163980970193284913507836040992295303432473517856519404050812558842908456408621911634398226184390192092857109434419920816630072150287450075912564999174972542815502590493496343152822507003381470038407535841965994705401356123293980604844908772767898067199196655609766352982113647215666243927801798114919098088979993193715018628674038538991268762535108699741961087752588412745237206933660674234667637079630082493346788883853368335221039591202967689879557952936151680543614362251668113009247029291232866015676027008727985587129022261500772647699727017506305415390561025594034816714332162927588456598925752803628901470937445789946369485811472245281192372453740877014612099494126933671613934630608878096234787093789617603194836493610456556306993782015827294413107206259098043685483370655542161392593325220589343498769173646012283773362380178233736295536120127073784754918656057267300570449055781245623730782597761797952109440191871131074976888570947995090099315071537914797978434226291881564028732404875243607621744214933315486347017565157179277470526261187268071437178429745295624612517248415251157982630635775866939473121906911567613544332394056663750666208947671220070515704679824236412101438677091617488931632835801736669776952067196062182284853780951347204311526065059723768014876297573574887993648979557987880159836109584202940008345830491725251185327999467967982013724431722906816525604602175160515508203621006090188734579870446613973733950042134957608260495963798123508232633570146711331348740142076687442689979720675073205141930975827209098962347762536926109200608098152766209748848293065730451966775487544888085070340549712998523907158013892597355072529804669049568899894225111233108136102158992759966869561443756011347247505110176948345277011693580076173007699033404996382718379444107409849842277533146223744411945972389312425850718914554673068082354921886308000494000595499056196696211488196599358789759044697075659541006386172366698052543830419511403190999171628081869126080735687289830728667837755963250679807799674624221946079320338493733685582948170841712094418464153213300148116812128268897577652292697153739135563128970129538626777837584840917025076257201460128679098408603241981933312017978001755495000114148042036043032620704241077554170298767690122065793409592407169402472774327646707807589775434542515190734506413014820421554436700116679351997714446588980922957330047450038667014896922978363120348866337537694117712965240617409217615244602029192470743041241418578723976217304630378378691580990866114446443400951231487223704665706063974821560821235653262831560684763204541972110903757950702160348228208137299948621316871502129851077772070038135186001707522197261103407355228874161529621784235046831516153998868726358274562395152507682828579770195783122214597113996133025323167945547794696840818724588260770654727568260504181031933287759634792282091044584069570240844942859623162548034621491427170067143631757406847238447076800743210292867587134919425289131595047667453585142173764170118920178912130598449767773112476879882946633618713446181038829773159098112363003805183956906498538087353617381846117932575718682869993251980270241531471454265591691347259175696146056400400104656547740256970382264662013996878639001020393530596115386411410626001900573678615362173275885719913691923640817943643845861075950157578152718982861184915210599442560677754265101633083354352572346212726516465920907585437642108674659210330620441336818182667747578665477118921722361262160062308852364995614054900083875960003745552930852622662342171934027289639238930119076849705594161550378519035814532308225741451905237872378987625648659091710303845651413475349578996087018074409007296618190174379548145029529027428397845089528786702118622100800862643848842702200809645753992659656307143591609008967829685855791919157036758642898973919560721179342011211531166445307333673349831379872472537234917076730342974243812833216068690065486562859772100029548545097851244938511099236805207973279363988282716264136645904900087184933775322716221975252760041224238575948141413851723736062976075357782328940145066831514264910906301977839344562370994642447129323336574841047066168452384441875536306189523734914360294021407263274661181459054285932567690675362541268956314700406385013865549444698561207727917616041992889951788371068354200014955174665034012604705216860944612597874914379607384348886106928238037939159355758226392599997874581851803973065420984756871937669443360731723733270092828785241873947298723836842707745668882136694791835196172528185314289819588089172534164725607016437865664175573549907170999583818861049325140124279550033439231178081254644168558476814072810795878777285150968777754682313013016108236441240129459731379895869183952511202153909956468239508644810822691764850714919613436241623066382783430622986582459550211982674181621977740023919257310316089027135924379453900938588747150300524408688244716607438811848555847823973177724254643762728754837187711343542180940979666800864749860655158882603386167857404729396003600557276386063058976313551557290159954618189638338408721152785113848506393740562858874949312579521575959782427590464441887607539878163621423611391237890313428146210629770916981997953001529273861176213302510414465304377394261036996070749116837121661270639722624594184432012032462568456021038589795546571154424762500458515032346971814075164645101989205135694088225137793522962119160485772751266954371668140160628945194049419598450093549698293992529637555551075557978141291397643784082890897434460447301497473805310402470101484692567790276212923881582372345376942382733677617328708017476211840485003765108679214056386903503704513779554844348115426650476518964140116592833959140533609393208576113697135302380015104727098905822974255917818651824756776725387610155755212275113397908519122451127233733081252461864306507322402130385340956667907971499694341899224586120899943193454355767069895881020280592906835188572441923309417874965208987984496782134489161041428508810819100840304251077981532195386815806517590209449096157897684592157863443627606373091310726564859689382432230867193348658746091191529793965734474464943419952600412447400604133719269535825291030391074168615427943344340843458630867300701146585369078131862108918534475207562844229466735644496033165089517055539226957378672254775062512220565845485885211454421687490653684115110108051240127056509784864209611895587554333237895957069691836329262112596215605544486455400133123037007835998530765878711567267675267778546338871846786607355078236850253523151617783135282741314616828466540118724551869415094453222909630254197246893801214211811757017097768929879452220981161049192302349616563168288215102697340788210212053743901778857372872502985268310333970790760825747651567254194745718818532711081952601410945220895406685254091010723188170712008954642840375074647870798985976657020883464588649324680993742275379578726146604518193366759438514780134410387683784561303762383193382867283490871128822235529275772595975815159807564123537258865494124994940921994579489251053876945298620835082057754509563759398114272748709709485656116222522595505552675920063305236046624755072603113592487500218906133482461277955200202300740021378970705036433625416406747316196514570618981840007534589865110492227899752482377158192466515050334234710378441964428921435076674554014531332491637464018273641554824297515735145822832136276087201410306096403534203783885483550863251602933497090443840870432707818560883198010790102299505575383093831321570088879792727721663104568410209074131287276435932553915304399680807928070551442888916375969369652658643976401925840151786909394783481986554483998671314071349932305304916384268507103125170046349429332376858020274397758073583578023387632168099615009208347182530853293085800145755120830248472558749680108019223593424447085229006947519178391601437388330366336223548898080622548107474528781916810252964503067841204449698218762359083882264738035562805710402516923783606470587996439904151702895037898197701830262781757924754898735301883597687463147953839719536634045536141014973310237296447551034764245969449311529606860103408930532975651673679862151799535721763446174142476896278150741248936391452115876362830487458568976724430563193622070351613780214573252549528072087733704136197067764873723437517978024180394819695767055955512975460199187160456114647153818059721690893275327013831996618191454256689085174037579871079544168592375866454648155753130088659567393981860838508697635375513363932407921074944885093946144041280502917447870934312307716051912136485679137955917041152714279197719395675516310034278246411917160499627769686708251048440189649950740588769391093019480682399778995647573233329125672121780351200918754143330913343830252302026871451301163683268188680345421990521515108644509753539064188169607029122319777468621141823708663548112931295762665178644057644672207057208427238501284384998990791946977333893648735147486830702693860529687295283706554155360402305031522030712096540955857581095972035007623320256518203006677913650490825488842751832346676978137390145112432644315053245649695154272192593811820875376506809630627140374875733029846982284227610122694261341505905525170045862649997235751792379391418246968481652271766835964184558189290259371392442341882509779453087684274416441979105319978701978426355823292230822694598464510048949187970066289616226040679656163625840644117257632956559001086851738881923233497911316064132220615368141802266759376788106530418773475767847905728887399901141963365176652839141129494546856296896209933155238797733451732179114452862479882874633661605755404637048152399692853238794436983732732907002338708852200598944495773349886861956569925288399999798407105594764733111397608172860927189946540290821567253876919333692852655467201276450214159511830538337946877458440408014748822125760496276606287476420997553393562423928840622010417316063189007075197532318269608591649766276033668340130251887047015235623212303684848985716007133997078756299477951608568033055872800211740816341919312193518618815796722155926423650812580437727295607041515976557157623100537394027039254222594078074785778253104202945610341435215440073221902087070425517876000940121805398247036226189639878154393039788157670814669945130811659978235598934183341189557625842204235327396146743874892325605798664093466649297186975714109450612937677643215123973249431127798598238580229633526655866764131122652457781052446708601473465664298199283143370345275508136946806598962841139829420431721458280195179193567340571965816452286304907329196577201154306136619607677064269391867203464017016607640860191165689354701877631164176788165948918754051226126407649505781943093875297175196712322659466764687993746973158300155657978387787174826222083889972703529646044918278318541168866294619016682144756541080727755765733545282823230872912400672463027993704738085926215577221510731184977760831290397523131716503393752631006767782005353430944984770208537963033731057166968112025936417577335156266075111934769144986269801022079155821531664237909441857388277607893459750178656709585994343701934743365086323914528810731747202594461518252509822009538515194503242442060763645590530162747114572363442349915774763751634946083188840618468842443457120762088830339404543026868635586496562188425944334407758514202928653942321296315977999120706866994441540457228978098561113864793399724432875600451560705571646435565825155156152242826725826548673065450433895165500931186131052665742050328364182910590821744282524415747733992627306533231765148565094815212464394590487168335935536350520734900718991416641767240760834632187168099823013305935813451099498683599457464627662221667442540633047929745167854807713087467457155604869940917022771536692801236985301428532195892039662915985270304287951682579724122541724512714879758607447028344805310881021293351498345404559485604082677291487679082724142227532103809099108333284478485859125899014736562631350811161664787485709185069221243812301331528646310978248792360145931294399673773578969452615764194425678977790536653418699104929641773825962577432513317469796562932912426977024732692953481870540223894685014416189599381897768756187601752134034060616562231243739654358272690223159555220173877656715921563031475391158589867200564486201949699951736834629783179564274434318445026550038303384826488448182097119648008413367752117588828745148293872070237181377576230545891827868157048977620533129106565316900946765736011751166340925223243346700912939872523526977409217232928149870660966596853507692093634686727014267617236963269958953400705528074441884531524920073740692886500850770179923054097934290017409108639651947424255043472179154796821563107569467431052851819963960820201058763475046741864920783606650813159633642805885227243220356424214973025690640934982139607222135870777840541117536790747200078239837851777643384977775932115153336187010822044663536371743348140885336095883648256874688525167928721705984780910099327721433519939248901903252574687806954779330072572990785201089698021917279146274428584964117213670569180731885473347515114712681518574311927832183760057463337437353952068077397218938303876271241790883158537860961403339954195856894337411628736087148420351504015723645202667186551226599574449884957364186917405069882978584652339607926187067553023147456246560041993046779635813657370297529991756112407276583999306071676501950737922797553434563027568960408665967889612369906178859620077912402008886132222480570003680537939266663435887822340025411676955488344979155972255077842737107015677843221792529824014628729038544126231375435012108903509830568596375185095920533196104934385753438516467942345088715751759559078354305132009855024774297822679643144921998231872099173523691038071193980590165078711615163207424150675246209189976832818618342359338420890359271809178552343294792478631062365426011607675155196908558957022873990265190977587994047287453512506123584471735507939656470614198085196605725436330125455065272288122842528865316595261971616952830812267791866304689879819087227984982437911397957792305983803773415564664088699880696558631486845158074904964768153633150271398037806743091613891506267288541127238213940578046241322421795804821800350054440039527918651866905016203715657319411549945826432912302783402302822366178062224999048711138907269951300895012490695090444118194912352541822384119102063750063993718528499662044983363634628191493900142645148552889279626430378563784389663368233650029883057849346058394635898208075766399157840594900617742413012836336752104371080686312785446375020059616693634007015597322368828495559162390181930239671076108180632692745838674172685626321636384057400499690450196545348842465947914022507420340736996754453136477359666011271595778613373193792873608132353417052562160680275168584686553897849270314659429807414303541516344175103775493624615180973070304178581918682439516069524770672396133808297514913899067961517729497953815465935385700055283082411228450813912535816933409398822460219877510299064464455080843847541450364117782664438990035767019673110225404492370442062356618903264873934519699489970176763765714686945291532022709120982138644261474292576943245333386839730330883734465714771454590881327396487766754266302824443911952019710890346747433337191780949436768750122678521112570143192373594242693120494915030110862489079169528678436710292841342556253458895871176812534936679932905267332425410098352326777557869358198013931743425386649857743812376003894982476534778467673127101737219491192954327861197746284325601148096808439957044583881053237121009270791932758591703040900644157665853527169791614824799378172265239726321750875174260655680948507406809991477015272503950678983955683630459933719618796953837643606952871389489937537609973677172147541213525537542447796420743471832678150548577705562975115645408834394359871700307848276611309256975406100109701890352797938825296768682341454149192972878622716515396686591437690710968991303741253237938384957321553694195388689157735757140998550438133639400458188051745519258969957175361320888605533339204013446983348926693701457483636802581341160490635887015498871397615084282266570093514696075941237156008033776753390623197725956511715129047719221227299241734139620905223838136864745651295292690843097418258669661105849298038938338719591486668781254554210218405336436173978001274280090502654991656194197702121931294968461256984799563795226931559161327086879395210257847600338910779213807976312653946019558550796482319023640756565595223250179578421101154030582134319826381419385200843668961315401395589056978079625657899708534136359924106115444268967727306385281706812507957329306200565091878458042651174966223231292364843831904709883846888696582375854972643979364826789748707167504074459555144992706139312213526887885996969180664709006606487752223489228300665280259680399200155904983383804486714817592482140692211072603164671229065341749627557674654173544834102805305688791839749336816604969203295983572554423519688106067171869913725836442160213412018497867367315352873993034946056093892099834401152236549555520087622575610196727212940927777943690697477449188211178637833381228038918152021499101923214807124877772408256854691028172736788590775948216983018181344654084085005114598595949484630877007642471242781209563125080236617012303784551742031541308359414339943792188043124575161898274481216879244466894559383327316926094931545038886816720191939607086353922906487876417888880462905294260145585343436828030157653990175024572477271646477107089063975323608820193569492271028509907945543110905069465849953730228992846757196098052183744678629827560805242048547430527106801048556363315068193506504416233194555524639365550773179323890396197509384801898872440853592325230232032210442330479724134785538673310839942578828854214846437912765488437220035045159421330630656767210051771289077422745820510114994565302856086529217081723935406926024142497545345356762136008856722426795110679251058854488947852379287622891064712708429047544754907838299475169446643486648798356220580842124386726916614268966001601496895539270750861402317939025591368140132079622345869773741865809731175272665257342248447659501768667319602510906267527488503245326535325169273045714758681066246930701617689156846821589252323534795845975862684860010721925007516163986481207059846329479059299308150058368497274843275727065554105112921143387230465379263241083169062023123021874628941825433321359807244928248933907870505859056040175532775537872087717875551882876258739550914539326523646752506840264900834266863395658613884560250843734535046514277776526278016919906365826757760191541228332867964918148954046663189696852609361998601890110416300483517491047949919015749540439642897172719672084459422754344635297685559759978753519223157916280191323769392009374271714592131081390205592721375648787322701220915289825372720356289443145565369713163177582858839428349147597523726466256262901919166787379686830735742451144431167027884374343830738666131872097189782696395370884730355227093014558622462813734716247690651534453783097050379600648704108691694026713552834047893285044009682686039523396162054410205704215538857510451279481593138737102277384479500813870102506313905570219629328203996684342299935185857117108949877749223906974988419414661909030381287205470245829086774951258426570453443417469211379493738596493969954953767416254560475397292365970136992117386046859258764376122921908039983029295656832138489747455033631793234109749733355664090280409379969324626154837292276817885724375953697950709916281289340304098502967197187438925688197819971385122629025166217368109581423903736781822933711435133590999058373548182444713147982248317723368685084120134266898990967909478307925416029221719394241631063599275667792221721413755313255970093555134685331853005357269805080242076294890014759338612037937460527352350631760005062397709788070049638420542141539415928925575811077458761783299168633829113998163892144905978365539368151928520380243113942724563981294390587357629796933663533173135153142670884320839795550061611539436564426122124776766192858030077568065438735671413113546196017149062734903493881181306444233781899394507179222172847770538568149695144689924434791841224231374266640727201258297862672755662991549221794604897147730924907144878703095427851806200955484153380505737377924260153325452106774059456179504553131749341995639229625900938600991424868866061618029825502201788869509834723808244275893602553688493328640298680049928099792548500848238773710292421123295643464060289696765580104716500161928790571555584648529156914293799772249819757077978909345844202089326130858572972109112112866612473587084431553209423188888552478443236250039610598107532393642930556075867855878977758053534335516510411783529563509636581660235311210710367657744714390405012918551984101436089182870952908264358106196870512968793516781800359373079884557785501196976113962526504287255170787401486249485973804745153459988003709086396479814567390320957888572441095570227091697142677477591123975500867852930059306774212880361295772306030330910600351519554496233117667499798095386012830305427014302949050034826996698985425067874213506035605450707666922835470054365062331756245054123472031548744316114019150612870172923289006780718791444326434495906267099499425675147957697486136819204092415201371529659869494937027480214041870430012392287871513469206846034346034918769935923433582471775922069850462645007344224313170695898161935840019366268599679532242827083416270575197438806920829329145728064937440191336644972442828144079477225164150776288426235738246359732243780741531399003539788170969225980955858919844536508957054847509031990689665522531154616050945781305143060099661515472169935953846915083718235591561229855585158650262111571115071880427762417368894282127826645078254941848790165450223594528782510906556998265343744159577898098239725641727808145811729367230360035500682317980363139256870945230403703079497550698722822537075047062884135305288177609419521947292896820576854918750529055722259226109310508033654518008262009540306764875183709379717123321161178385745345727986680896859215003596704006174482841930296997161817056183757626015247806868203343112410227374748781720670669245981002055797676912024328476046048183765706329249276292173397353103122934172293521292592966804098800848775640184884361599841255693394751557678535031266953848321788317499142288330003833053675561634856761831506196789917560817336931441047168209206693445591694911569627076086793454271077945281323007501356721991162635676000908494087495831845071376334035132925859141918494153660936161717540519763758665284549134328592267072038222133354498429164252331990549554432078960403578202896477117089166062040208097094088395886589747494765946222603638261586507629071799284239891755574892349876963538366767789937067652977886379924542771880824412824142180353515354218828551021495208419225940793924623416910206568309347256213932877021929282817295658846999163183627898863312020136851312529540341338656195084748715580002364786885768613602567029204917666395639275032265047602661363012579864297370762717428119690603934750504075383169523022385292772364684496162651697536612638436255095990996299012533415710513148415886804320981656011222805401353919038432424622998859839143439345992526466365529786301798407541635545448132158879235552320356929059267649608001486522386615666280261686617666634838318223137071335039433517718607410134913884677955375190021514577150382451211034271206162066237754773556219636862100299457860467020326096245061387611081342011228355172683228248631826944245859687261181987644458189993537875926600978130191551131135151076681747562314201546481772260794116286080885675059301054839889015962634778445851293825440345451008741027976970200850867491757924315166517580070689305896303088496658172384124892815362686809957797266689441076040809403599283947819631965462713871557612871053332137732055813706553889624458530486995017195899689723176088818327632070242527520296777292680910257951712997936086941180365081331739090340058650225828064012786170835598077257346075672156433238234830257386996497149059242750544148564634413607518028018696684078477620410072911080831498015294103032661075465111379589393537030530833356423249027789797701131273274176679315616830062564407159464744220332947795704672438523818005414751911420934141556249447573481770581558109854798338050630059658000777921574713881346261894783778540516293903498240444110855702235799669892159065203110938535417527575772629647474612105034200245986014742862721616742573548316491985902790594049740388023107575600260921277381911097582851547975194247946573277454985821624612787549093730977624019793095769041609042424696892336038422404056751382857094492578474861934677357533018695816971148212537607032764608950779745403765608507504478043564491306195128936213839223064245781407490914491669347966125079696515956498584126282331483666609644043559220656979483241568980465720693148073555798578844062488155356675554608936073769451907090788991061524254497553042558821145399369543410519059314849673550299607302138629056686062494864803822090562952432962150717638307454182033216784437110133166799681185500696168018988308971688140655293350101341292442424109390194645652319863351185471075989814200780662001005350856341021403412708850605411263786077611454980586901819412824344427381428483650779787418808595309852050057027796803928561173051659093400742547700615862861644441248569028061311876092341656689640144558493356980349739982681047930799187315186513109580856723509417968790919610294001567322530875497209280716773684288530164159128741164880758948536420333877007189775029708423931520182853663228037338607352581557072910684511775097039457042268397995699573312604985268677519924683540741774143282391389153173467250755201750851650062829538853362909037452441562673104959140144763149178913137736578086438869000175895647066705861488741386886593259845732818840264927699768454932532639209250789321661196495726384185951145018017414399257612611607557352002352185807913232861579777921805149053348739720457339449853696107634898148930453613194753031581208164068530582575315221834274517650215435762572780840410698179930627382221269788240892249001971296999550945841845718466088955739152831815702260194519425770317488842986930451244116009753606685751559443405462343226930438727116540986719162438356047022454887361618435449852236973084409148311949817269162075939354966913195878171216635930892820249619122865344901953442302130177764815749914634708809494220342178918340208961151744310842013964469065640483002644321832903779846914345992844921747465649956613041897363639893843760061675606329647022973080023166995212388626731954804716329101122092843693844311788389474702423476825733093991910944240470803640142579378032553537505703655946392333399995818716319433642235265908358439704589912801404633002439801865854468124268468481711784429937921388383380748905910547599507522632878363999217370550068340371089035523147226685932320793067525734887247724935205796533385496006579138537274364708946427148936795365453262866866010505249560557763829484068248963794292999892740399980635201566449921039755873040371787309564826433224460131545791655671034969739109232399809551268380350715298821788165800999825696970716557109408947299938343975794177667804993657437192336456714663023815465932682154498970742007848207573670236255726036499046855720848200969135008221329877946809346007326594256267439187846356783071614814047602386335842987518072236730149766284874180585771752015414056684253005097175057856566842120546169177845998627395609644666098709076264729740932626218554839659360204896787310813077631555859059194878932154965393763123366077433623090291587457713381677984561959347040351786252145159598833278950829924500325316504346159212463916337444489552776061757631287778060858533159011850948402273276727979578260326696375895213375969264973830049159905883558397602499103699582457274908466393404278219053506849644394099728148138255838913891826850561027527715993814911016479561003211747749963455515268240932407879430053414648658568341177749980365873262757674361665562228305554740900019538724912043385796790280320102488013394607485691770722422246871298336548362264237194726389249718431425606029822183261985943068055562390016061197590303315160891492601633384742414095558245665889901953559577405447998801527859746953323328754883949415025171893528618909052759329130007885658851896820224116892135770208359911278128071255311783323918030719211412170607066421641262886290411776256323759067734379017832993973877164560428373427380465915096218721667106878079636801137525994240513031016873429132424917918645964853407605094675649281223228170983534296795355795266569137461601778986134137986792803695056939198493863336801288862036699888110872149234342600055546468770986680206290464447832838597423792998496861572013277602004024504806140398062251078473748700900270519450131866506399938404428720755216970688471153514361827165381259793564467945935617694513499856316312100579657427458559299771762417345782788545997805045523448909448236033448153272591606595906216258776593696684763375722524753162698784606728404583076173144957886744049656167600682329760534848343144933368346426745945361659149814185684966258109918534925555584160162761666702227772275268942638065459507607284520510256177813562435754889051678157108040771910153162401291932524922152644390418451312183814962337196617425946761271744639938133362642228286289591564161187091008947685394251861410265871871866934607346341240542789842252530084907605866166012526538363742941832411138591241606756705152358684113874329303188545556603243806853863150104653384212286479691668021746851848423440557873093797217691290190525534417758868181591800808031061591240658518859346312784827647714059250445704976022045929661955836144793465709857671458500119791904303090225075839577561514554907704327991418765606646625176777178350409049616295074323482999332784880214046764218085691138160223562880481207173165067304158758697660376003261064942592019355673693553000783893141676408449541090387051855988976941547122808405855992493640232748968583307385816836817840433678077969343908077119452207759553657118918930510030929005631207623104184742940317056480619954381071696122885532353320861387377011214271781591041237472748686841390629987315225599248935623845712756264193139087552980072287277365287114907042285391185828311601000987443125354346268366976041002726817506464781061076680751746139180650896985459770318342515033549142259570906988058453821579179556879473106680125457558790502892827452735680709455259444313146661442676095019832460105765761068973666131167786654469928985391349595188183388968645891864656734055643737426486920293497202356635048071900645139909039865296370452607555246422486419617492034305666923655165421467290719080695354106833821091453719803832659976783751253367991036755385538863270135031392904178961970162318717700743753250145816502345763899475756667636730120434203676648183314661651308427292511310015725754404437198232223722438231123858504840676701545990143535099968898923135512900951161917213321056913632350333959937687412271103238254010360829825102786512234016013999913731933126081191040075189433718449929090609303181146188943354687268531746117849311597188181995872426759136785318053551415851737990045787101468169876254721828054264178553470514981411114520764892150706451832711486223012679094917526285873348956826061926359649819881907026365645172048754499294064930302900396633691512099670069589639751018004032901316653184856127898483013825171811281229678692913209715942583603354964707770029669607909345811956403326938059854398124377051189429183384733492865129776528310096285422363449865251960854756602319654154745866571874298151355933890950316128172961356972500383361828749587747665531206310960586278623035769027169585593847763060191429503981447345491129764400843365892182672163168221174121035823458317536728298417063588315204900347767787042722775136689113315154501540838986238413275926794654474096572958316579584647080745296158183403499007860220758092968373328817232032092060384678568173915444125640643447448625997292154068147862356952266161092485832187479964116883880334930926573422838408608945037476711801324322401531313625977461611733627530855690375447159587231452196817829747494648266017921923866202934656352953637127527821784848170444332137786283517633788707209424625379131425313939963583669311759184530810428674270531294355992362395552082098548890314915479891127839932251290882215647563722211966810098356163487273640828938396762466400617639770196755278399244169397654966218136398947612936737498667084137092131498020915371697381653385259618002906314034433761966717506204191226400382200669501592640602638267275077399707279801350993827780396340208009013643651222898717828271073399991913701720444885860724634252950003887108294211993085015535092561655559000653860201197052132915851215424995806573347931225968364233202798277814997204642828309203636513554330392058883687907112573454620977476426350509163740481918835930154535063706184891915025363142510710246120957327227590932864196114631653883218406490225310455362044706312014141248455383831796975044251949993082560198773026707254035473302196243437539889078458263345906287054013812697120901895276678359107208038816687383234938764833946184048291404035769940869401773251726076106386795637661331364703857782053505185923078563082370048926476789854691649787976998353693808496060684889174358864039116035816456318377156255136681824144909208510741953032188153880850935209371879539202870111833506345131797304827201488729274684717723624215069212605989156085120044871257777087096976624510326370659434065657087949290304218637904720085739330221922119372825296439076688067617345063306451719393663988163786959737068858536334172803605036142085482424699102993356831794682283546643063105486704892104280890090320171660765529540897260574917321261989918417042047705006977958877939619930938467616397747935112262606695272389542349703056516291730922528021931536281940077146676951581017658026889258703886112815058013838268562238570789293008222541150502688883381968458313114098370993352073587426171296730906749259663379580061828337392017093269417942615515520828543132727957190489535032559070322028268111053948155268253433289040915515603033222675855003541228652255242452336703452219163839309931233039768448988933492104249329534215530966941808683162550624545624852934833083387009832915485870112731137092535961692445100790830522733714952690834982894160227726946531978729352045877437966053652338188904144990136843468784950388249953908279046245627269699177203652528918798263481090974717121765935254706999500859578675645311848892026620356554908036218330673556275993650762323412419314678132580526099605446883307502817512850620937714497657374931457807504600333405559255608145047547283194050397188321949946718121686432863958806490773781134993508954099989337555089032421445696626630015423942478751307414098760194192715146859691109113823656532186712900664729395694482688773083878301280542612293678030822941640645284921301142106271236612583557437681480668799930729483120654158367851198826242125618380438369230226266878259400681385691418769155027356024078301714349699717307407290817097784272321070700353287171696757242605930398722740156512317297670418968746270487419302849666780659492021002341871946262293716224814036798257391779502450507943029919225357442329056789375145660917711868437710487383246018322501436597544562012152080101479647168733791220902958200937977119028675954070992313756642742372120421309219150726486364351868077322715499566105393434540367877931536545270870643026393014471151237313208681639158203354877906291042356282667230150465433741173945908567260681338575240341303584843475362774124105295203749819059307008318808767798964707694195390888830553331665013428399150172522505803090436933832463383122427252580014911409077445090732468184462594106332433394656937588613524740429714914920204040121956905771577294765142642473745843638686533106708729765716959463824214374893214700315605821519288391030999325411757447794971770965684394547311548823823558732037546180625350170963456285033232203472514422009802419162190382700422365250507633452920356963443136636655876304208952082505978335958525025754420079502252663509414494560206250776179139240516959407090742345234590390898276726355001601251249052124575391518024883874589305317166043378391382704586613910016235477424771255620697209232647567615026895155287339299625452482080284112912936874108334686149866609409041058222499121803166501486665307516840657911765061570807784727357753330363101104358337648893808387547872122992065211343956674200206276396076323466429895607606304268597654404386476271719211529429506805074188019261313433875268776917999912597401597279755598027120943803641855087441236278259972292304481517217723685169426388511920232319618625978522120824528880705842590072844642401077815081003238343070703379244549790708766653893013601354397725236921199314019136717517759691279442586086527565674399089485247475017183578965336409864697185081935572382808660469244067515304670400169842660581345165404306027194740867895112275308380361805478671769771187312207416939068110833911413436724548131947968927222985067550749404714098830941221310426426593871526642009617701816373199349515663183314865922804055108055081068703652747207598429730292698424903237504518724131572210771212279223577391975936547689142672538603505803685961438860883670460663370127400962166731523194228258450871140607027332004061203000198464978148800247097765748205362124471011919612016628268100682885000021814821213142154855670621413827934657069010857098864496233464437734318829322504909945403002276132493052312744069778095135131305795310761636220971360362219608432190432577946639917440347154620024706412439082814161351277176415586067744217826291988849868286321943030835241711358157475468673416143238719253186751266971493136030210929524647583687812341958976798762291861230453403876653891855216455840439793468660865072462665740562289134111675433100556771122751160816454944710961909095223868106375437232448918588704084572902548135829420775979886508664086147585677435540193499427678455105928203930029004155935932364503595925607269050505000575277147415338768584967782525963314302687316819131425273958971822058814385253553802396669845354897813046969954011734279663889772508278541824236543829769759484358410506228481369781826789076890532826533630804820498324233226676028584565865734106360258546051640785277100939921326091636878290771542575711240329355354169857490619445341308565181611974835710187824870831326065313366413992142010934692070520013304833326256111977472447638419262793337248075279234608036760071154945982767452475592643963296866216326765445143978988904110006733492779811452622447874195492939149259097945106494998840632136242514686251224636032377397872007847689062003564711222482300875207102771564264278995802259971845188615219678939551224504453014396691527553072972701288423520290110102499926686433568072156449633856544169717207036631264952533172261408214709196083588970786050560679754447975238174099321018665939962452550171095271044228694493520737036298603946114135154261299828290301361499731606597944843644761775235499027108813911756933081983420842196893657753250846747765085967445867729357465244807787021150985452411558693303433871957895544951704647266946623506461418468503062481640008443493052619400190516018677556956044072830043039579206284625754821307832989383145277378776352480720751406971446679513226678888711420891825127707451820498011658174215660038300271942634546643065855064589603204756852733156034334586136382114240985469720404723998621768538602288152606061659486284519997522532042051098660591802598255057931841855879697587578345824911682630134058481386196571157666584414911614834189121327425490277140691514893429270747677662240208000683950519964303331573608503497726856736412910744178033631539548552155943450318602603860771501761378338300642270908352888443913401876966318751199646043793120303075185475119136622397637777669793813409484888301389480662393423346032731470735406033286525368584295861478692026468099823143178557035521122792866811852405240414318998893795023276780124918839493409481227586228012326495764454004942086836409350947038246454403141219154558082717131054221929592979251562587074824657325940192748221287131696499020980099077924580938151276148164603234654324624699491775224798846314426829962959774657242564791187754551694703701311640453561519538706475100610963805808091750254171678108527059022601943439156806285257847934001500035378437957460517644513987383711795759888370767883040009554852989706193099357081911349755657910730884894193384368203017416414477683264108034432137562439061798766398266576530597890016344596256915020416616466742963820834521887971884398022924658462090229454987325883860592722280765033089350523164270104056868366325077222549770361750659799044929299310334937865746471301125446877704093380064312679686231416428461916264811513887184745948801810038497741334785132272031831814448105307259476706779190902265163581682553156740195861140107119137838575540162970432842786324284409100251705564465491475861859503408202808910218105483461869264885112589083298439398284207574894165778674686144590834620927292666208217788503144122112336415475898122258565749738973748829106706405200664071129499697460705415798424329526688933089951686247666708021282158374252847907935917484270040351832053457208447611134257061929669002855564243576389329458664951925467116153143432162513082001616288998196923247030677322645222313341455916725194773816531326479376160540581542175412484127598927751683636009766314744064092924574823687457026609182905167105114975681431522050251064380637827628367364505043198418900599185011770120056627157412684567863714381415679201120136278265473053343779447657244114697750554480172539802748639463840772469638355441600381565766940436315267947388469632524141838632216331132097643989994047079984062007514953863362323912963420444536963423977931626391595255728005928652241985524279306655432960105157692535525800154792711034966230121453478152458928718243066435983493930635472341493325247341699483873792681992289748488262319934403980740125948058149561696465488661562001638755827339650846865511249691757543710230904916979016725381082128684280829151422123741786046084298002748393738479803547118410682858235981452005052637904586920222356298577145446032204892242674103975810509291368585655801500697468370206913902902762824556941450813750920392195539845937922028127623027529198525250206976860856584072919575739064803540342800809348624651854139323448960049954716010034966054065292392648316007443500554169530077510441325054466459390474444886424987047473166159232018774317263068507636351560084303152225338335324685856621333164899732019558652071569032351917859869594239109800021408870160775435953968373197233776478341564031480010404802208793515289359341620098466367531948307164737112400950156647036671854963686159472384652452024206171895410071264981891433542742309471440850042264706538639435523859098615178482263695993726481133859120265165428196949005411936708005657957369083120903886615592379759430084056566467067136240686589349856525417477161571316464418451591580199405209541575581171171731587897721448552554490962148223536830156963233992534379142007347788588136114354703486213097263636533882769766641625029306885213053480845971415592596942071188870974659903664892267781268155659041702870997322217329953661770491432526960774376233372151334155350019080042840956974200924143286163119820767097430207565529760973444982069832718275810009899034497609875044269344259475867421542830206943125338920035158214351969235475246061513070268009101323601143241095206360428113878401749823446075204065430353450763887846980080100604596005786878881490423658019756334680957319145290239207037558110534032605158648342954462738950341402267772190508052103588650631737444663347162665338284066534881711699058355452381812130164659093709601097510702070906179408592807625567174236996694353770092793931965230864106122777019859944690874273943152306193903307727461310250652607143787964933914307258596250110081178776307079014586289997401166259941805520076809965451779621867594695800775728263025839539176108642210878177764987716926877496398200269267925367575530848945593240982002241645368453700640990353805610200537079533370208934577989514758715318382702419113889035576331791260769909409453746448475251342980415631044544975577181123965553534055068620373842515615865240517857955871463907782287420659574874771522908168259546241842912096285359313024807516714654034140092074721056789220283582047767211231446877980338171283685834238202557063842134482213157920468956991548704852937496741157667689111836603121880826747935708657652342898011320929132238782837433654008938864010391126164808249504114903669680686950122331090431414923539033898182420098775839514028973783054187761308215176859791178083112397302718413288155674238351727019777004818877251891687718981232054751980405641993131791597091822310467365824718036428443861028167597481057550705639781257665709374387902858863479186032274277980809755044979969057967206679051536340318582768008298608321849274951427151337135621899976226586966762202690490963089255364541694846329419015693693278437087877345790301999394808915255866527534093346338066516132938068770732902311785886431456492451910802137835943430665038928582815093735118444807651798633305895228462314097832424464529739607631275834114352916798804459421730357124280227739047028256510712056216994537704371290671208942389970714957637259046210224538011352572037817183252798708852109967168753779291871623576552874941247387344888094220451809182091938483526987154231410285254834158581232592146289461647536977231178320469887145656482756640803092225728135390672257980439662992597197629019333631878496898163391396794945155799614129787489758173322701737090134335672442490045219174083874333349425452943223483114230848496529506815943380440021178460063701553583604527196477310239583324207517498195444881353185743478620207460398705314189411526953218489748717535534076479662385693591454291149366515476381138190224945793447633573351313110611904380633374936458159120171212725326013587617064857517546189792487402559530252226805579149472266607003127118332340707569477157354049070744208541513993880897822260938320941460162723024758576950466239434462544968304173099025549191832060027548969405311773784167554014472300299979613181863662381799320932513227293377609264994376191412667806577895812972555206358108097728033430306472355665931549262175843551098794981183526278540396996040500029516749467028737784733617127241903728423535792758405379471229278556052387662200474232848302802837026272984217034799013206972915568313934060662167144534148802435078656214649152000476386695778693306065160939640992949196011504728509380767456522814450000247616924765168755950406069282775782338457701837880718857597842213535156737883906558923755781891542935002116213279225584737453994770221288092252499377093304978496558953599685934196665543467220431526823776162409789965459196012613454340800371551689936688185260218969131062909772833839937385846995341796181635477866302779041589716168135269468623832478860843344780866810046044837137332971188672885540384181001918545892975496144140231611975719467347160129072530009293940306157459211086267376600590089601491934935017173300171192486254641489648529916871674457007925745300607129452233601528587898182776791577091913151343268094863415991450413172195383448791097599179015537279083240016394899254768265473768686895834637236385727576807548954854004945637505368786217920923882127391605415694053910924831836555511691658605214901282954756627305429439575723167847996844014718213504558037373766503040101389617133588181654207752131592889750575471884725149448942608731105086340432278511621769339370781965774485481786426428446147612886294485542907367252903198504697375496869286721236188553648784373021051681611136442109349356594169948802133003024603330713404642559836780088860672699116655006815209747452087818439384273184755092549616260428241096803608078674868181322982031241837244323536093446226921694638869015964815250974674734187053399457261220633761405895458189031314630054083050141348898685121397658032730989192118712578032668825974146098092595254160502330663117784163622976502070123461815697373896284363080994498505160288353106411821316037981964428414735121352738794718357575988002841229156180318895785234930099351481106118035642568817525937815899598082451310910390742166363752744862357961591585346684340807777770852974620674368855679618106725253075927718754473039473435002769183300127029438045863414772731174166740329710904278073426535826884950581768444868829951579235042025095538369943672606005346236714474303132190937655482908656595600508552147593640319762048161379841184600174983503700545326539702243342717495951488312326967909816917106443897975581671207050062224719872016071929639054239243257006013193656929876522357135591329014343437598015867960329881643024303578329049322942075201600314931907974051675984765232051722846051015012757486573835186989862700452432640861640628122618952998317489517347475938533084538724972836992874123584703247312728038706131402082809280821231130049279795030460361414115703104096200268779553725512887588981927791787638539095737772433233020337097642824105737429832651246006858762216118390601822972930979431988384375912960023964705277470618503190974769486500398152233133346441016939959729595630399668021739945999245283744686788931157274515529721391911642432321986722181387074652446987126673345350610441009025572987228586810455800469087627661868157763743287480908135645131330424205414736348594095538799779536477924317496563729249082513718957329804411652945740299444015487626604726666798799919559324261058175860626810155253951755567153119755613779314155393085490624154561344613676808126465846175846556991403803843452485939763961125988796929644916821590079607726118683901492702960525104739730655651987507678427436840105937249584639000064568266430778442822758254325397725768685864860515580246128278865743820218908075710314569222487785746956569474002579105158107155307637506946589712887255408082495645314268383178522494344653393661627634393006047850722352154914633359574215135916960161419322598821752666236084574487461549823400215027513308654160236775302837339856044562807660261790459565082080876749130792818566800083095162998043286440819338619862382242728267982534943523082107187963678976051433444607141355667884341658584675755028058414551040955066455156144060567297685744895607229222528203546106451018147703059469500623965118810195313561900959886636836835624761383108727678007949935105728870610605334281066694705715396802322883081160262266925462085713232432084041743449850846594976448375882421266548276670684010236312980300988934586264286284558200574172680482884938513016350865037706355408047981729275936971070502043011690733233989106945600793404065903063187619765227154020193917459982797077627838033877136382053424677896918735000968725542742310136608804604569830866947292139785202544501711819264846512318096986983122410075635181773932746199904590664401308369390920646901437971753010790975134314582216686836848058686192293508033090974119558727791318238965121707957462475743708385490902291993529217296582856385249073495238187585902919340671740871742076442225581420808306028331142773342931785644765203609828848108569495015377968461000557421451080313848081567938132587866665825653506518222066854256006299132657936713948365656080546900409902098664995363508554407748048322184809621652154031204596195166896191397183367669548855921706338284122929463443947206515346883251578081670041365012994442616803364537387121293575701615890963413174939027458182606744890608605462311533336252666119198966412185447028154600042948029563076784341478169881971916894684916301018720621534223659471700729467993481720600496208276279777625437476437921614109158842140235371522170670406045863135977391616624607782444556123498113568452850620008116930393602083066301297601696140981130246943413925586777227062083594874090621033390585096403716555006411122156536704813395998272958605378435803742345002766606314271513293681695025069964667511856141347498011963418118294364518969856822458664521416087085633087625204522011010123457619217641299742408097386291110109583546735336075718940985027018252240294966894586244836309001845093202330602201074472428330413873015080811492199853052224630399029715153145373593703917787422997432544536758807583950145679220766242352977029717346576933632015624825362350577495377644079024349421704095828931092246110723842106889737010803993508188772994841440283471066328024817782629904414805165860997952075089287323496456860498643502921245979796819277693423074409161405675596759398745471983279092823533480142636676951792390468727825534350379959050288784501360636102803916072754886565458844114221260145883494226113067309619292940489232457575564476080168057940292674046335365715553358956956458662406560239483932015964449092629801864974673516042510171138464240238534382062153066363515446212782008270339269255044690982575928839031975357121823346127725838989668870156117230533798726379266885202220865473547004008117500873707651403451125838835934286318482406694635926622914307746341002353764807218670349264007252590083699051523451147599654053950673933219842640504099850266209691103364702096582854249446376563808565030636740740124661575139077849216804139210583790051998476580010299943382338283926675973566667618571435595689060807351839788160747204219157463016972351845207067689577909079097121429542777148927411805616177443359212928005891078702740488475543909171961016608419641260530502991723065420945263081218676802019126874947173585030764389322603311220327014950611527184486437952983663963899364435289520167594646233561628217899033145138722821324840075186500116504915079735199139195333039372602392036323080308316375035590846307411228808742554560369392734466904886302430749516985329990330441135750393619119869889730591132694094875455491137221813489518741403904282957839875079029359328589330469661179860853723072926005501850356104821493195094805788909211706649010282412167465511797313533794450153726576319079856972793209131315150195964314285906977768497650568849080106799897866401093103143369302304186693629326528837202133043223905784389982458070777997417019915480628005440248218585655473358111557926980248139340630252362152651255655896976917029296361821600012915408573899875183924979211159914505842870073715520213595544033591433835870296998326404592694543742417934785373471490506106319682900175509815817664373320780622928268316211046712948886501313339526902653920178409419403144257658078929686216684185623428127394247042715897196707858068397250691042753578128155707754580658576598961432683628580830789366149150938015058763524331355281043684752000043990847877072077222464866004897392600351542008596569263464998859879434857844330911594304938477652762670085717595545343699274682033819361641851905900746267357375057437531203444801861132873109415365708677151663203601027390541078208197056450441261942733703602559265488360146395135173260306086200993267719246750647745334604067852806091795827848116630770613259754018024703294102499532428585374623079393442556035677912275284207448528291237266220082868742574553684968868488709138390961512840285198103387668457612639666484864309413142373397347758494850358371360553790337910747821212044313525264152239893113797526645447670942756793503453971114690381180651091067889011863977479223714805433407053115705508261383283249701588828263793226505801523345700464818745369292842778649892879173653552074932701166181623730543616466191396057700880895277627236954587265961860748392306667500491090374534032880498248048863286617152594465082517081136083018748314422874356718495404577472367075526203998686729686387595036350009325403271135191082289178350282167634597599772768353389686260054665244692492941960023340216721015898456862636025125362091092584355649391209541267778039367788193326325945027415163889552655628395482979446427887162506897660841259485756462148259475088458640768570578046988543223475851598273773035023664094166880196296446481116439055807130620310989514355684082209426692742222338431111011214305920272284893788944778852901602223301849068980269318793353524441827406142229063807007910294159311595559606554352959443912335799300303074593705831348512706137937199490914030675108088279962865681779355561245474899247983251988087921301886999884967827057744174752268411880715305953885476688585078934331731371320423927049023685953222811035049569281936635630139414196739545224123159981722739112227755343458570687282730711592324597801832700436558949951620360329687630180680047810810906165113789696858277533027335341443691989056781146514287003217149878100985429507517443739181750371143709612817333581647489918171162678320154457983793547091332451627445519511189635046247814005701743058803099401596930880937352024006297984443223935596385897458620078872835520788193347403375781574503440822655153919540913611590747388553806151138852790537514437979038229139910343682423574322404497325596101096111324909236569570536669798389043432289316538979264619094480708800474293474735451768106214194092019000790655773674416617157767518750648901647531078382617840748286215286066242610117365472255078829831376979949436774447229651668394859850036068023581912217315449501764219493900581159675415825776569093135056508741171577157926328712605562250957019322047435929036893636677500433879222035761170635040800357601268106227024823823145886850465334502813797076182427894049292013697238025463325613340275575596801259753394768805457436221778743322926813707783467696402747115769013226711961025649174509529380022023825635080948752989240900597374703905726080374905123711987965720687707623915041721755372605028740151788178897002517281263613966788113557121248211600591032753652121694373094566601754705246465653874002226696451590501829547501902647333660211043611688528902270211543895402676713478145884550698971770589368106014413627141117311360562277694728566001317348019267371680607187963351987536453204486631044369970491243890093813210990620444348785527161644326863386059417642815551305531905252699463644171753653430715704543978336422803100194006816171190144766038640945546837650387900135339655024141296830148686938472245350697856243060926015464775599525377674342817813905390097486797602605005939754019598295835023462344988241846028944146003054419254064344309381211081518946767529616195718138674579157889406478408195493676504059863915211755085235317764527041245742099149255248441611828898731162861083904162836931055226558028295213979454005535567313136233146107187255774213055929377059078749645478291104411238511607525520665668433097020443107647916583471493574394735899037234480575314688983507996932000061863540856449119984854121803605216402774394103305549521511050930487466036656256385039755202756401045219588163464154225781952556785201397291528351769675111977154159160452267740268532199011707585248913318072064620481257573100351445918956902233909991486926836840229263086286382191344031334620019613593989067849691770111424174309378865236429292225988501785289984989082599603232868647231173976003337666420918281163668321886380577039676969400529015438931339255811050776009566241948850010971100636185705748461363279315774501452815520200548572954842168624592004547558968056111003938595492992313215801332716932009124028594702718688451214377914089212707611588018666804552349611962663893219657543391945572478276093577847299442789015675300692009652302364618938446013105812190766050865960879866929172969543328023148375086936080401704194425873465093431679576865876880343060014878324857808506078993020475392948737174780292893492320515982001820216075048276589872960529923668405480036076389048452224958936196775302658826510042184793950673339347179082793775735451490062950636187774763664748172297041001700446446321544730287864950697572619875059171998005143918928822826356322078524552697331298025110018330993444436754722357361203469923883003804127764477439953254320081309606122476048718024240545246190827866103640957511045787809633472994688906033938114394478391237370005252390025697961007938703759036545937812017315166638959694313726050186281410705371534250584618717902119647836866026610620222788056228273157053863395392875794051404019823097239140609531116959961055608826146363569725624209305149462076241315960762921435090739304522428418802832524858361209443659628857848198838021779808815453220471133918368353002998600059327605222779300150264683338430817319173285965600472524717259923752069885156889647577915869567990460793155244444996193151121163926449402436436199853526631278192135491496013998915572889152620004005479699297826731933028927355996399046758569815860466099055571466052874808449407917008139909300751269098051095583078220988282681334749558541335042591617489334204293503741686992076969032843481231609877324872468100012673602119728735570047319918964217985165609503802240795011313721395977859418119836242254051660851649749038395488440088713063719855819399978039985935800369419798602604863274573671883227380432107859238601622763258865971383434758655875330147696814655337564831143274284305005531960221927351914106724811016094276880514575392406103451007176680456852026902721182171621100075763932217373197017498464799120339071424845535196978794434040695878372291446737398377667756070362471631605589141933688597775682887046254750664665529774966304423490748988182120774895970002611028403369994006969121135155576848610265390200412846619538403185449128184041787132300631740558515994236157908930811976103771661006988600438834111677651375298987538701292701610010898205998993628458553738360544479020182169040207613181147669660560524111508294893362691376207799032732237786134736620197456131457699194442995917205693667525340413306069918930070661579637582798097760773415598677636681788871186027045143938066258304994632976516021400831876833900664295782321988371805691477965612148454818695792852158249432138877631356103537921113524932524555988221695227946685694136818132856621729361283550253035279999639395387495711726237289082134732652836638143824513530405121157038471725532684356682347116542455447197116073008019106004306706908681977114501878225714063299592130076276349057194846412553753404219647751164204623390624095645417511048050471500976356464915637244090407261973210691299802747155053265681444426782641021088683382005600564965734133199001347020761656265766350391080226571949096113301347042921702225801899443238010416464274503962661259085166946772109178614812920988946282351212104032228334988183892299884013480505819657954305285946310543789143389662901531466057283999866596486613030514582152037606839968224513849020579020665303037628093194497851605815624437678866344803293814862219788157519861234916005872507489862666100204580640628803905997999698469152239020279610313879226993571965203149665195415183310057613516938529281355169582062108032098467305137567433941261714512716852098714105733286283546273320795159438365164705469248336410469987496054829098779362989383794786359198681998302981796266762753080316295489767007105838058451599545318333530713241606232276225278490563336223952691789060827459438583454321635312596283775306717747808922571493664032359015848580669845346202630815714143592675243603659910899733390737075525829681820629853347766422271583830800897625031429776625297375763513142074349261619460694169666789048868138523746146536558567073800695413422501475449318033788959875668409212190751597227422678966662964959638080049040753446653304979314627839119169612695053266518095178043955685198232726521606430733022859323147035263369996075991466286522798214584576634893546252646649516868422679981949380784462059793069736017682243961870050099355362159364203802571345170991444111109127632302126368702821014627534129217709284690078217234146366538139124659956378096018972400120516510571326325229798942431310691823853310328538240758509452644534841644654585487463269005665662574337463471234602977201887370130025177375775053685310198082887956002879836057347798397564063260187111737333786721502842249768920081234960032077825203917964895560211331315739793671699250075813740065221569548890771901916878986935272725214298030229641375825773497286791536746393958186311195686271837202384826618876911840592083680547273483202853501392010842695003684788562804708004673080824335475859285178037461359652088200255580308289691733132726774629434016875651004209384779036472172858585992361416703043647847298609556227446349851267814689402182286748158498063278844919336763747161591311434582400219608996524887339981951543865698995691136981510075734938917191624040320372364301499055156308168573970860505988399550167639886076740902235930730753599610766019866670102884372048735695321700692047390997672745327407706378985302620702259521362002434423991249969862909154521929961954027291988270901407349159887954199103010644863535426843652085010138272367995840621473235607305410689179964968157708076129883522335020513841174747161690733127787736409683881075417529745961774107574904667382390055669530632161383735192795678451858849344907509040581389937735933801248251742720519453691046581602353465509478189973068425676701964003062880054420115293244049165739761359830138554166654462848619578669402861139759265735930821897114548892848124199878198958568965848455563003628963841084076231057358081448960341610548776858865616285682863798431891838188538516584503963650803378761382987679164907525313894392469808439357596901194686331074445365706632626114787392936170559899719608043559654496443810618080454314441421172996955731408447116491483475223567952774990139735903092204559045128098133317455025349381130077602923428883097876345518156824153749794095588638262012700938816425270208162358684298414419211182820402937972704283448196676967167712011801907723059412937419607762853758361117038599267692379216319678651575286244986957075046689793141031693842275417140164843299187750971670234022614255513176348207274002050269543993748144631109216106146389219299909467017613674242235722238461708540646628344165661440846227632202452438371458301898563140529647337279890343036887094508602671721943970136591114347536930878769541828253704136825859300028142229382863749162935231458905650767324178038379977853544938249035212816411338189523185523441555044587400006009433992326452680417055652096342192027447582838175097369830687670734611435404843751931513754057555633977201085755911948855625295656437806137416551975662380448099235106918795520130164556822655716463609050395669958260690532781462605693627789440131120052658507454407007724312488756703552736770444646230358077787064574808901519065907693313705441420066724456157161600261386274497588041127992100625850510033763995051104664197656550694541266704661279728720360882290110237133710394245693529315311711261186024364797793775180343556449583217545075094841644200079330696201330486686615132046535409671450299323730528230625311624302662067889063272213660878892672815386579103619919298004606017018887899916848032862974655373170992590439156004704450469734111988746678995959604142853504748039953924723380423584256136363310178078264718393342623436892920528399637065958374694826977484263352808356350031681559755674893388308794660886714927113670131482118162980649898274260358711705806885552816528981730683512259958333666991842870535055410571547018573642943141528387463157267788549927601058747457615649579564547174088025862375025977022017948103436192243261498496495091397305346752496102821590735732051672628164611354876349434861849297561659273269157140401747972351155449586616359092580484447425785172220381446705428156195451386171914219820190759098443928571095375603398035072587700165750483640409228972671344291816081171541143546936770835473560429801682417889604135748795624396742405333662998973797296009345558814720115634653461205708934681947852570309258916841993105595406147789011787125396168427767798326822030121047325808477199831978418456319905670487531078092881680140310761907879834997852310079500085084969146068720303721210555801311471391239836011718155033276447472286456804611329509725048644715274180385839274706670488140586978355010224344246664443536868984678016278708729513306999980609360569229010995575642300275518692383415820253575298266343150431047161353807189644386592226100380191179947386030833101259443843257774213947235630737948315668533728132664295474114005059145617880523350758479794571688006379253455931080941349574807371196432112625393588852658009755509446830067241781390306872699176036334887142641756089542279114996542653432735237695880277614435061069461266889635456498136801636265616973576136796119436579313604491837794163388218535549700412995868239919304472227831284438476131224737331784656765704918040574812036964235106288911381915967126639103148270290624283612937318990119246566871748090411028788257133585872841543136935152482575660980691092284419662587161935689898219385496533554687371965708217369036820484613148516379495819985519265425408558037338030469299734097083984003940042840682309860751010382437483075406219783422129919540378276746755720306906489995082322507474100737797471879164844225142172179280043021163766113416938299467830381653872753058845569728365456055985380259100814544082903148143141133471284144465989024594979686995494253065326024561341523057166668521756500637340332467157938897594495560312263710702539164208405196750543127955681631817468960556578027243586975363604186379593539759289858355942355250223545151151398638476583462922277681848464272014310766960599617532838984963763375392644825940746497495545051629985529246830014130997730576909974819561196081132860937835234640237271534808174346543678325326087363885279168237214406490489672674684813809993835877149488786216199365601349406758765109937527419293229167663744416455715806710963414777967038222847232062353662404376246593223544715445914766689513236662709890989705178249035433037792846657116367284039702143319165765074516071374962124109965029062304298268128216592075415143275125107008894757539292129556858765006950228950172846097307948367558471638805047420742782481995081237360990053429708835716599216863837939211353356954352256391720170666102772877389461799187525044735175392699611836748342812523467924875577783925821563140280975915654970256300472614191059498967640437915818605765602652586701199145940367253218083450578234823928023337274659123072195624895264799014313625136676920374217160318154318638583080459086578432768511720256222806709244547530087623822947169127218638239695872635181673354053712408309930477855822395388924209754271090866710890107815245714293154616363556232005754278381181837970398056092401712297415216111181242526965705981238667173885005363023631278387942203313130821810600087237579842003873005935968987398715544454892965199935444814949308804536056941369832732078075085421911398070096072872155519488120960666652084822619637930439127590295723671317450355403121724939938370801516714710241994268957746974734255114549810782856033924555099901861308298063715052515958011357114784007677102287436831017050105279038695333219123530037638894310616593743497543398635758416182032572798224039672316524033057632744971814053096934196031312659983285946622043037405127696177192479715398144917576859077034001216846379137086827743978747227421936730458439781436374688804507013412987408714312559282067988407586377015296661707717679562940747328719493765710983865209717891445400847328353503229382667118375586392541380005365533896968111699381882307460449450821288564486301803969501831807970306848753272305698023527040040826822280806673760336301007994796174194386844903596545437634272540911917115835550547392133530800149015954580801558091375154795296045241163853623225309882046181325807211210069679064563266247988880709221025378824635230142772030613699433768374062305809471445226449850000739461235882272568607669267799125184078114838970864856883570004936008231051006393735855551807781969291342047510256645317799986715436517164973259447393501500358083003125263716021078006273543261006275330741623254333590465799998289931880189495161712589909688075192994273809364002106429610448963446073362031192231664215954478758916559129654472205009340213929278817334431496582812600293930107392535801670927160262183857691169164575860666219855257613961159302795586624693239896308174169154285713592702194907366085391557364203454762747399461977126506230985843269723195648132580452099038928056837870307453436914013399439919114884731427264310724105850263551484478444737713535422722257297522297296238736621775282617873790499665435215183112860593956791130534500200025060143244980579549950967786942795538768110570448398842231933882789559124527661430700866172450462356380587045355219206406039896240232508569453987423950208585268100586321719028479295168820635580471901044653546593132076631588884723291558835268811236979709929742685634608899749613111035159878624034502371293295205099002334079573793497363814018268636612450496591020923651230871873186294695286631258221535651909280018486552340060940259827965279385424773280290361214750147786632855543077401016648245573886368896939943699774141425842537450971762778907177768729021068996901131197563980667610017271574915747220464839018414907589399884799266821011944961163036206114784679332008395569476871446973009363602806620227971008460848250133623543844177545737546496116245789271710051108962128258341775505314597144517542092561655021120114408061800624792464150840533730770133767598610071303096366815168131128677508576046817028460007984650334199848351684659738363668484271097870358174103320053733528941356341601730648488592007852352199825173746997972496505211278577150936406922868752032174128807208109936936549948991862888053901036618539683842253508401450401721036757599044371138930909918494290311487822703375935321900874580790438704045791292220595324382292731759870559480269134237585717880162933894495269097215187675099144417667574453841972164691839778266349251727789550612017430352155099323124571721404957711160219202560849550169713290130621596936266838432453129476115599263926894915576205070202248208076600803911404475141785327644275947222369515345347292036030899332182192917530746760913452306155621346427107819987684315255943945386194449338723960672060730904121748162728573009946302930147537119755018530548032764174590890622446164325295419274113912257582603401678745211124651514595466249025603209877219324359131980152754170524595641497892667910143351771061038503786262560158312910223069448056657829974116303471457106798897460103977306149453735865342623874470683306396027064417919806956758646963902916712250914350738469301739367789272269941419632977890597073201889117087549372599031599929672027386329168826775654474536124654435054149285803011909269223997268194101760046400558746727303354474998765727183998980691065853613326523659677508542179583012052992021725523621661597892509244638811317053673642546716326138435840029373873009814086534922148004270717106348424923711502352795453810881822587982570415087288955485851429860812541088612587206110170697218614936069932247365909234692691567708698592136916025791787542215773267535986714646819433655533676646117193403010417553424309790705676199313405689926231669713210803108761139409727575894518106368969120176451606344524309752418526685074805817435929854850077579892696862283018701104998561525531177174381584619507639240071389022645526306599509628913612109841353026504677329761275419552825507750962562191449805488820845479329413107188767409585536018370298459492507079964907871192199092753630172256843765731857238588238308071473284204787722457300317274519558394925678743256431850357333128083752648629876893064433654172200905835114772438498966268104721952710509882143864445130913848752277075004673096089647526450366344926771533202046592192989495932658067448357762514507910776782942705871391147116115779345087914293877367722470921261131059779210559321875996823748406678110063050444195850205004375526673992079274276030425861297396121876680937093264019144562724386628178336662955789487544581870966320233028037436399320363557691594038705864490162656808841916545783392114506097293164122315354298538100437370499378905987941134098517406997487059157467931113120354941787865249537967364250405829136727779420096526631610466135259848864458363567836712019969459797835649232254150611845919063236422605788483340264552789050428670382564170288292735192933467087965954304040092589198322927826835841081632139896514308067617665717614162896775633523216032092613052600253995290056421068714561945088937176515569753232861604182008807084402537855111687498217701859033263887653913862641956091702200613742282660291683107557129399904626017022176240636649763169781506282232082597076748519053407347241338327822576055902625349106252748951172213009503734674049219951909928346533861950064880786342699769584695771764967373685103835857755328362821945824981470310703257564441172927733954902181759495910499792961004954520599228854837890039476374379341888860469978023927612015954607583544656077476275197687587584216761296588689908078342340425107532543131149362129277664119605735777736050152245051624006721168871331639958822950111194097021300685148564618968342467509402137001024584421553459666194186112188827536411267654283326652637956695488888229504647825786445116287767231376848385800735718448148003432666921334964740435900694626919811088928514197080422221628353216812333540710006542621390995804439287981134215139775696196002352387941418030319979834763452418596964787164377324512299449928266552272229027207752935885788027638726887475198028050196197061962760995902807023333188337976434246590117649002782173996570366150302394881388739167205353995325103027888667397970088529538719836634233413714160202062951244767671408734415687097109336709923133185910214288313336869363048896116633762158710310105585563597774813246739062593620534888106568853704287076726420901412897417697036032247146320549236641299224785285249559457962911481907528510355174685188493346627599995260900987297750102739976581964742100261656249257560057389354438457154034342903900372455040558736245537728399616199135981598698846458021377042405483877074057617161028730374696014845583460529517960908691978154400162538779428906918644523713679753681641623877329048461053003918535388239791777936457588851750807130929351361262168679033720087223458930111286170483954238800392843241461781509523624179045384308444080905043693081340167604644885894745779497600223983959041360208325446634546710258401086993088517667233924409041552761538140790267508527201626491989378196419270937318520509670955440811888885937307567521425476995042175751185673800938606212993405749195602097322372696186309734937626273302257278692957386006552570744424846203884232774735587221387219440471443694594061180297064119827786484407612307507690632042882355959655693013475653547057560984983045095924150864224792921651725782625544632142349416584595750054532548012795863451826762707608119727357799516559669021517227966196524608759188146030266942589299690043763207893940931117264195331800129800714098895065274014873230068265741228219661334903677666921971885354713267537266622191220421598290509468956813767221040124122144920735536203670834925037520970289179915302326275843417403239887017905270728394015552243217696139809200608689143524265044901617301382091034337453550146935319496626489901046643960885262541981615242854953944302240599908528497096594179945600038630448573275285871988951613248192336309486643270632622376662410605146209844649385803470551412528355481203645137067325091485062757201388551239729443335204527824338878384300538502524510031047952129239700440382386673445131662661785152019218926619165114114278384231378378970279568355722155797223787266926363312718404440828231535157201133528985543105884499906438176549916089646116946665725635259612153992917381691572119349295607412923124467010017466485600944605190462708251636716960286398347846962744188139116409179365356296631696612845870209939604019773231818191730006604326771311959221733115532365799335681966996705410374008427311889256786706650565532940086054445291975780124414049722126868948511040851019130127335725311094158063897563860225869945421618354881323813518630052709223837034494365225369140761071917621244291436303799227310604653833168239665282590778160867024655311772910446896736653062180369757932923221588388020801538001459504369988465625759061712871001260075464113899681634525931441665520492397495449652153893876567607443891834910409238206336489600057937436515453465406697556218265629168555445650324989795425457204113631091390618794244710704927316922474105398942624774925611361453945265655240376446905596166280437174350777919610820918714193848974770785226758662369281268024079530586056649464979459492115133371127703090578632499267032543539835116648371760849161667812435342952117459660049377581817666703716359670586310186082903438000310044147869011161583095975590221889358779015290009156571764865489993221835524003699517812425906139855494603935970118128911531818505331923227766244838327097625346343902015981155887973253598853854634392118763849517107866036847499206834999290192781082312350890832975213058254970226083984978737372713078139331698067565420120964929075355178263304236845706331224731807459073555845900399224856277271557841889187908007551020820676454058884393084611767260152818932143746205048016245215685673383528715211036156965835706725785800182284463039921164004681104108234564444310495658603862207296456112158066188562050410102764583049216983830555631472247858502231183958694303173660166483678529747002783182872524272806023260604989746898247196576093771348733626356992906191782869395323168837061406468645417097009982312165479883986684982490670925248653937918894429826159322461481465180593246721296023024887486327929035909650714019051167498100893021170361905770306697203109257600203392886183690920055814456756454893253594316524832449553690955932565652721398343360892960533091234674695081458753848992425310926873719763711842498193698520420125474751414503719951894809381222845654717841991695756049654893219686758034724424628135647555051868914011782251686952870283258335974526244098876509045686135581383049430385424852757237932530367904573133058235996630503316501377808212447697736194334796046029884178537295784676410551015146673502009118470561631416372133222870252456430057250965168883594450213816421417549067548212173392110258829904708906706681545723537215657793789719820467077205072931182882142747314460002647842232790398742317817423261331981187111479395259872490226781733796929648257073903686216391418052078470326475237124653139265155337037389178092419737341863539030781621896685885270785703997793046951046201035012685960271738814919306780051541139455445737222448444509051730917872123989335856709020041115931829686458131415036377032814049129970308381903607226431252206548480642049861013589252410852780006529214609636951563645620547193007580214964804309478605346120744318655284181377694520923203102892492966783436843827486751204305536028227304346869040319942688189888347633176764565581717706062639966713800404575225482093078383463304474280115962606081971916904827013678204424284972971714952059306261779275492162806851116655372326683994100172512276134640633479908514612138209488730730155548238671269938159624213230744617217391974506742434327503508396931196081332404435468014067237346389536971805681029746303813397235309503572700774548075871745334883537852613531021709804408559135366753206897208104177348879837167675103361387824500953402430256283582309918797292895675134254444792206183873003071885017873261975405799663408211830433749637389466091262829215140099843178764715062966078172938451634847759031145748044467310146369762276051621771626316717625100080605982050926299217213222565605990832752646220980031137040485356442516546777977746702751162760189871879368788367657687670789286306046355060851331219558277140511144912045321159388304569951120139522497269104532813418987308095562349667168322666683002664328748135784681596717717728339342585915593295529957444354732168970780052562097133802060404217025380104058331720438352314505768356464195548817993862732377926613080988010497941734696340357715141722885225002246754711721014083778612138640096713347169076065246875306229838996407134911959814135927124859163708578555747102574479667517337667456645390395831161661785054448766311899078662801104702913903754869837817505472428641062988496914330154863039979813142292063097151373175351402833930476789016983779682683546615384682577667012271790728579080668420645810475154394233896265324777151459164356854451772817960961794117008244196105372221015483861058270212193067701566338805612669936764743470395584037198778738232188161894166227267566143135311309299113448430002262394161686358387157533559347394116197590541832282783618684070851757491008145413290338650073728296263769785663195853757834529041045443862249612676326768072424056534881972707270792396257855629003650039625863872709239370704118048438835774962769856561225352132137137114625056104421189979548957305950937705137244255846605967725124570314879799198609430453254396718945219183628663920252852809711981672279955683888199236003905878511483610298979540266470590636094779757081711419426187457533990048875132263137321074241576244473221313004729163869664089589873937260117483951769931996928198326870394829902722661474983461440670696142141194816967988568471867195519116213323303813151158420787488648646293881390527655103488262933383855974639564468751727978712689918754315482670832829255010558364196461703114823872475859964797145017693578708257106235980302512516757900005181846694950613402647349607978767675306669886037536780476628416555820043176426331465380351288401993368590084982717009006880581912267507441758271151868661795799195561856133540862187587473658327028874362407637076350275423978491862927366168728047738258087909688054689011864669843605385942944832117821415115602333470349153550275905317083796679535191832197731584831426391781091507678839076904168872523621451394506623096928081871278176617287464828010223055797036728672249761335988215622274266651591489242689957706818363729688254492201859466279137304354995399234931980115464078040559672419044392478122953422312826552642956153340155796206670753894343257047074034643775215158441758180910295914841328121593919356617927143819254525433298862632986553513201099502312271407602373651244086004565459353538602087809527102265398065608862165302789847131520687575988432214969604965669891630219560532113924964573878686332161412686036255169972816472304683789331405967165405159452191696394712822563550800952581614786796928076352154938612902306000856163062520590181756877724935382590694011124898842896941965584844384872941056722002147790740694795859604452379395399602848054257000072738233328365828664490560184149568305349338380571466797227795898247220242890411869444430725507774487936543627197142347381809451625570786261729243464809421755570751720407719194317918623536051161356841128533374462895411358614425144313674032170880158038004878054875229342068183854284874759305531394660358637363563877286735072086872443299902269261165735427513096410567996817941409537270133434079657924610977187281642121161066458886052802228146774995209290762820969718020905200583716324015754900258858867688676002451744845358654334431605306764879852751977473463956203293099109315405769532917554236509083091396899059536556392851841996993523629583269867536745261249837913974100859775828032661331381475227612104466641348688728431551783863300559325326346834077529402594813596891604990969361482485062221826804724989464670833504809549939803849151700922228291858030759810477711503430982662605211289049740238308304261166098236458245215598635284292545456760933995037302272547450064285048319831496684442732977401436246461565023516249811754708175325043737223677691080844911283674794788736769008691624753774118734393458554903026104589481628797017796758995940599645167300878275686735008212698076254051275124004958700290329709250410399094194548388812058513459412831523619407673646237340286910381403535892278091711298722659918604163715633464273361985900104395348897037940252638774202600758901204592535523638368226822083612912295977344699027977685428612624079837164096418066466838251665086126114397740794020054127222209939822030458608132168601804412416546715269490334031029793469802732064648806666701651873442210154689545585801196373633405127351801568994848445948408720228285148972126031329707237763852734451041656130914855586920518687857717331835583219306976976374634642124145488755163106790704759442307694216160404862419891126049699760503223407508149091127392280620052383352263516797521629981819983909792939070723743089030647979857445021198046123950578791456136334242305244725149024001815801816908466990144435808860097844095957966168332459078400566429288622771688592611005007326741627740124282059891475429789688257993082591285645536984381193392757169255539598219215446822984308815143564715805760374217853983464841563175912155443456380425711302317130993961664630813147517767991353120854494571453388086647286189143296234756626940685484877262423738089877562239718752716470689110562156029401587638427193124088210162588317221555872888195150031457218194870042877916134955671129185595030745271745962942857232776222133277503084792599562449190128643827878336982039917258747662777121914767839059456428612820884154043868511939039295711943830864856572485494309200958890920460507061708963050694458545093359181178774404360338099071032837574869181371257409726519664869624765735278610450068355632557227102617063761106137727254092299910552750671653057985051450958835482450666944589346731289846361938890763117553702115794956232792681745637749181840343455548695218528346083633804968905927895530327751439854848783620506675294774591733507942111153493373695405623128896115722810960639413533945043944692305035016651576380683058955358071122160572041729346026705617240395693594778390153367970657853012450579981321260985207180874410836525249266829993348970304649295209390711718357713793419170974976577050741832976763354302500365159381637246040659152450746115306718096160581992024268634193224951971474036468012396494535377277290872683506214821851298301448421535896257374262614417123750856492029064167157369933489220841239489561057379893755589167772610837632160530316607167171623531942800637531705883335550938591795225074935208420346575014372969009986386521582378084076104082986354305519927526751677434507063654764227400642248128197229006444215696104323944108955076074762723180020445692635555916065955084064277727490263907167476697847396364117251637575550904077922359164023303529573572405235344185084786043394768516140395461876125854193350296916347527641574273030229140891597699462169640774396887069222160447069563400519437361106356536953874984947544658263898354098205734386284728358391779096741610388713401065013588432812962231502941881314235129915223297606268200467419354593313047930578966810782553744976146939587043934097065562373424517666217989067823037157486610113224534497318198868196272022870426138985724183692840778963797299474527897362999922258283311806775650249153520122408575929702873161296362265428909281918250802450133238500143905327492862148476872718166269735136891259289862564599328059843914281095858289388180868770921207639085478152976551390670586556087593015883141525130855995542165759702371312653416871824604074841949181760565764522300306806614398269330783951260407806200703368074361569926841419656050786761954622506953233814528950047522594490992528574249328117098134922840481056757703907100437309464216324571979024590300406822517100735941677890679508668186766260874598016179172281819191211374842011635068287510848593454314888006086410277034839624994771275060652238870090043748238335833510039940371356977642643992656303917815456367503145222078336833398054878585375203617851597624950846993586026804692374790652147229807032008861473365964076755132582335550357327236762115211111579936051357607414636227291882801533949838607661530141890675250209250384348236712028807843843547014749070656978570970859330636676357666250033164408834615534653996293095445988793010407525877842637575883154321170964227827446138569854943383676766174225460403912966498324495714490051371616264950353299364057733506235053117275399603193756196913431898185545190108630466244578286811695676516743206035746370900300462462045919960166220889601109685096698800499612812091410022562963315295601893666802026864499288076482651332341290624507171647911091954989449928325324333046512787021027834141665252747171200886145795382305327054570466371963709540338937922150350919650035480318851774108505045860935817376421571544232677514522941556519794654634869274469548769768941685778847105718510068374611589044912234335542657211553790947640493292910532822526066563236573960125848659178001180666582855898732179333474674678767065612341437009770230457633915566634463706440955763547463575758609466468052491224605175634119254656368713789553412695391337229935828396416722094424681182242798849800362477079237015954019699569744110575022161359683008327685170162233096457903313579923557897380756308995079697473382225266523981944697512905418490294580034894602230319708621417369992237226266840083451713339278825342069960848200555269838797025010074524805423749242299521177426615521251519440388777776359686678844996474207099196146535586639749278474252015344012199227771879047642609433403832175505242433325887169660465842058160931766306505077757672041977595521741489283199912911945411118781442694451666896016491786203230806168233927869924214825042405592133703691714175856233896414066720758834978495934561384762120298674984138415365213600210038922089838743103917806373608526689481257297950397588985729447343148312255396160812905503110829786553760489043573290457448593538948130785280867952673743183431858115799597758086466640137422347979781771447204844780370493917094682602678584321747089254556036720152500612476580428909296208299906463713385164532355026782252849627963428002431616741436668669199048482934622460594622297661925489444740150849616599478698854475354837874931574783613095957656996532702924271908912139851438589110536998836926017468042232605386879309199624295214590948536209610754237892219954477059325469619998369473967610023808294317530502067766019528566562174607568231584891796821931290870672597227975534757965096049890917485063834949043057169620288671596682670974108554989335399700930514379641267729241575534632586088784570328807727114753670390618424215188784082133749483214319077394826339443592918826275922855981325467824305012210407371882704014838678712165027401678740125995230674777871089824955914312563126773910732201497042434315193783957148072131445542744205836422118562910046687010004324910181268052512949188879729723501300941119341412782363406687126154944284487865892747434497003873874124668339408564087119116114098158514829046936126274431010765766575008966112349713818023766574371669829130683615161222460608211655786589357638586714555919009109655715606773808365649328711565069866603044280395068546374564032816335555258956434876643598022198870797631573297129051666872497673197818313041851571587782983568128737700996886908928689377913190667539868899921622205730932535584876233135040451122952998906924803058873993347079563367249011909675935407030829263942426959191507027197861007080730077902287773452584538108278807484002220590186275239835742329687988049891799453537997969237585313682869976789165669331393066179974411870010428481056408795716884315339538612198642229217563324713824618930479750698415989118608900921906910223714748036550851568335089387084415375181645449355680574061070480625658319156258746690305120188105787040986624976083131666490701682625599189329996134600855749234235964272651719835461907298660401199079609782774760807005674112017039598181680306140943316811019833335214517071457893829325168149997301401282713365766500554933597447186116415365996998787192473773074049753331695348660512105953145671016171835348108878050948053291762066474083614744545863948714713575516582429452408887029650092718262936155582207406808210189286221787897542360563862020716312158679922090307957348021915773366056610990699654735954514740390347588428162046042943548270521243859089174948271898480483732244975139916008839432533534345271216579016078845718363023996097510665301137729778879055053373348282218518109581233378930256181789708941021072215221012853704984087453519601702337039457769912263318603877972775139110900242568694929260338114402983288315342260204003888047345251654817800225916967965997794716811259068602531215112112714547612361919622217582347753491027916379196216766925329410755442704185310885680515354155860922218112341320226238337149738647764832727195657732815202668193825817458829654267841680281268570503569040180792451199414585203592607761397979567066813621061824493828285735583820586915594319731482920293815483726396278482708442832358738543898932815451105644947654071081617630680014782884093091057241935541709222957065767090578173262090340801480047294742758225846860581597353309082991275433096032379162962988844819079923339970271804181679671459594958679463628035167666661572354361646473156907171027971382892234634585698061816692671467258902297767624340643994733843750138977655786438290625332759837319781457908552854994950230755342551537649691937219808360744269885497686003243063062657685590457106051499169935947854864642070302869493168453793508418145815997643254984418810116698743692975013859565003761169264523765828020909674662192091405085049164668206668176175937595711066766903260902039616147846713487606111188440050012554787771664876189214324019003522995953460451960947587888644787737184216634397217258163682258998719417004743557646186196423104396469413618015599629675479665087221656750663183699071255347003485813037079224707561083706160322313691140565819989251706050675373455861201998809433142141925190573659688028580868644231198971425512701586422954592819767008675856054991625861859592348399821461999842054313370017687074241888154979663170346347535252672112047344438941358294802732988980333880964500050261408862997983137214864401434626504404682889396518040257762043832251706372698587577113246067678748346948658793677892975615882390127046288552147043129934851843122071680189216302236872315261019156735973085783247522769494254768864292330430900598499081448433927070715688956570492883783748239693923494836501608052307778439646242744728364140151751223797557908596443117930866106744846237743853076875529832903139430975101146497421656750712972881457352013151276735531774781762548494911942620995525951056775946181309037956607344086354951157575843239617392873919731503458117755616219938860305816239408920052351150294950857396415748862685597320496505883943082340765042610461210877537938471689406377869443727978013217186846869025062942917275769617318668024272262187364474119094378187511314697789834270135467383140466121384276731122089040294187462932871305661252059685443291215931536891772665270729633774478692471364125172565086095127348822191126947036072259430483346522569913089992177907074607679727840581937344947689429698149540877757723940688691049886400883501240619379193678475169521557937193442785830668190759014327136942191200270138942162820426920008665072924156689111826313535301671077089205475306374004997275835452877440739746768925061552412456692293807357232405888499817166882107283553691655484540462649671592648687790155089815503831560233090304647161927369908490452920829355481573046606982986588861922862227664631560880432121320033558043013373332361359619481916318113449913426632352482535818774544145855228611996447333480203250444922885435256681234802302233876620849254802851097585666789558381141972286170489341931005439743017265043939060803653145031659443608308452089480934618997811267562551326436157107309347383781040189171129604863348803550849448047472606127238464491613436389977151230490628911124802711530178560421861834671212634315717710628974010961260021890754301417287581898825003163509695554177995688540652331766084291394595738551882933807724194034870620827291624474601512807255236045660488535256797907380309862267709790193542109625788944236921415425294076479004113157679414867771116505255388780651735211014600856610575654437712056555501170743353236522413173013183671297649043748563345765126522682560638035139692150946817905527785088370710665984705791257243570866600046149719377920324839428337452804678462159699472910511620609272249434635138277135210789822153427772827446679969953948637364170442953054768050076998817502058426902830944378375103427340988691448624438612096632763439954697423939179390427416139456716808534711315897784507624894683629028041308814593182534471466693316565748411031735972485224878079839994019921563255710835580608442248760045269438980790618606398982275413522490186418933933004817143332793657606892120155389633244692829096785233824393851101486792026495720852619705874438335068937310196300035847024231158054579972575878506185157199725669589818825149194592490397831432755832711174516973897822915674656095082123815382036143082396462495627703285074415715004547302057349725931706924830393617594771795101825506140753002340389818614925748448853379520275378129976797132560754539177675320002655419573804475708940340991540084798742733017140200774421983902584810365027235196326706411707718736053783977676434371066562963825767336024554163405423841733425629317785334847926355967582831019984456289913718101638675284672731467213453936257746074596875581264819271899897910874793591459839146580760522459439330718166237122136791375880102708985968913048741323991752808026166610590456643481158675609656357960821205019147635096408439025059064361070074529312043717496026111047874788490237380565891203291473351645095642994248454117998892102954291371208508729068904799437506188619904816028598040208229511381606599324473645774164416123145281081397388210189246815720623731343021465074714372814972476404836902702396983687530776326090670185528320369105532799979000888301677650263183336404309113515293659905175407187649589940418495451389977175969908534011457806034185018709744474743239765451195530329929664223442478896017622664380977985280177456726157012051170355241456222618474992297424220773170184169109680647187183414040444178354698986518853656791889922287002566390653490596291895243106759868185194814331592104674717462572288324539621384673564329299098511381487050712177329718255758088785714658594106639819837180134623040803546768120508974675714801834224922034413044481532080460475059139449153158488991805104134229680470995387466747654527855908745211809819272828386549885701866156113379582549344939667419234542596059429119312262285084352291245894509880587058819363573908458572443659332305469061095321138110765182606002198238027409661413609910170029148632563207706415348977675816956074041694167111782498231407600613113852948672782006661621192548210553772473860357948795716473539153700802862975271488634482395812264228934537130709734116203175713468947280332916082197602209430450623487264347912983537068384389849014316956551332754320119945367931004900411768502436911809513189535817318763668487535725445329244928603189154990482491819180225682607756365569610200760843646946617735925757180262726525169624810350690219669530709090391675461114869224645080215138277978739784714485843605402154628162039209482657556661568449739350200961691598904457772292689244275832166413930196626916249570076598518220555137139602592757667841131831707353625410572111151282922768757083831831803295369945198922255005628499576673307647469627056773019576230671204543952428498616292946521794417003849099262731201280375347256709325247435448315654645058949679902366018034470761306945260493593740246826937320207679352382195625373405524983591721631289367486874564897145276549183649992147706404005497538250919250603328875261063637231710833483067949406484951089547559570873290214364782456567449641784777856757269001796214614125150032462404554374903957130328069742309731128594598625564961278342462021563554015457867956402708841579904708673550576444757568374972235516005656361124343084349643301207245617026982405764373227327029006640081688354454450399467101811070091808754656556808614462699410812068888931070119544364456065213126595253530517381658378911623015108039393839173978046779188572159367339912442938929429047947563338534801024188324193822894783480453409596870814642017303843694400155325372185118913819972803877648100134493110234613980195267686648584259970932374758060938405495788543645038672262896930089051825168355734118757157420917582907587033535594904377404347079925581320894700815117658427128239967963223163467253075865771652021120362272288943246759474800180831853110279432845585614426957300487941219233753053864285462319833497603395159576946688842045104550239580212429692234988381224512673118891671109574972148222430015463347863427376083306877964579493181197912258395457082368329675017307383309501806343824510709642709474551248871328809525840485966945216716804398152994481512616580481335977559096472232905839153164528264053144927776400358402770879554253466166888627631197386828253964279691426704528512010162965303595287766083533541392253555463097524843062203562266345240281752579038480563086110914355960088594558887663363548112113643942099949936174332204256587714063234604369546160583517351543051091388103476831631171838560250113472196364878522824493983865585765383104480972943830797049235783287540322706008614922922891039946038590200077033526410914576370368637612970520830540877293006481462286015518841454441245779098301936989860386689714369275962840948725647446319620746703004354361470087474230784875065987609836438850308468014641856869511489429013141231156614468616088493107949993699947951097939878076264789917554407099164605128708055177069511098263020628298802587109243687957216735667051874210290505649621812409612741723922812823532660467281759699031677146896144173801553461484103296901938770296838454659159793802466521057613874971217063133248091457389937200450313700806789476284465832743691685210626343128032562377233578863549826702350961404397296121128812017430234352404603040310589129395459346329427149890037119143190693663498796360128400715341249027632530090461339355639758399071604052497518962740708424946899079694530616280821939321780134730673776272824123964854723805342433986735386764731239143826366999862591063169346893289365844548971307469784364622500641642782802825797700448515588933091475663111909260361681399729508947659053150848086797454422355495376845290991478253318130471032248467647647613911791253599389882282495025787864900417570577547225167300147351106678042067295855692705154064009033698289185788959802839566391262354995732011867162737047357371719715460892018637742490636440225693250127367902675329813529925156378585248978027193131478194998518952471700436704358164589915583622839979151907295456462709463557730789244085621700247886061198651412770617052058982655248269865382227418656673703142588162983736261375957758190962710697093597995052588518389172377670003540826303778800669702155320079191974211909195211508256634413102997429374393503456647886484752037693544407586154602418643191496686318492732111987069003484952986683371485826979293650927858939069028384645573097419677982650875355654976456847036025024317804552663478957427448849907434375843748436786123688842337453385937950732908214518725967319873727841856569378273440135790138457602934269782537595515831246254456991348546669006932053270566783188529608939094864634368178363961064413921365273713728221671378122298096160181381273005928849756521033590527695461974171199417663906164843375585753588664763908361983513908359451311238870924175531734261889660327353127252650044904647600407874263256975741308810476044173908399048184013084978405228058850133183909878865983005530617712051932287212939488284557353907894724895147925196365931301856097877739103398725822522945934946219780966351428148365182251395875145178609811796801436966672262278816546428285592334687728998584682937858387430377910177670101961314373961254965352401053445523294871324863819936899332240954899621618454265399562278641568756748128476206622463489556308331987403266658348997605123215477315738502239712230120958388280530969071926102833394623823356614734993848038521248825278760802448949478353933652382197640831653909473192519448673382446977881279084203394189295462817286798669923110597701412379770575838756753173382652207516987801461279526932946608276620611756402581270845821152003419231244737935458731745600123615592638778097062894163924936536566267206842194552169970623751963833366844840545499620119008332990576601044965753756869565691990769482617772060901893550554097927549356442965784417413552263889696845000553167682413547918449791396238920147093716914008799990506738570231962054989735634393891877884330740457077922259230534858429160826300343402178034349932896484112643790086954206685875792809989055681713553028951902800098630768960523070351830393364336435874545132147597397951696555581791795003931430033389519730267508022317907284491562876497886616539350877960965480044151388942284514047018527756035599590853920673627614263425497029590585871306203564593957242004501464503149616274557185854636758571569148689577593589636761816240202116828845479912887441581370548051179459779731030933845889774103268669111162772893469672288279386429446954599247203243431681542774544236487942098129540396225645247189281168850524379576489996765394747179406867635068857529219103723061387242126922481894859896305573675295472980318469505541994977198132720195144347349658453437110196843919663574112571835623099574617009661106678315456452440852146069226588001761266316822052946991292626993067637334147826646532105910151920042382690663725880054457445444288741510107200405922862732941267060741385649828683450393317364737251294236326940957124992117360200752244501455215723792813617423411587794492630880467918098735904115486579465528450406330577115470463876349543863557918671466851124256810340748573210849819071614344980692920699561740609329584714332722232742931440172560188114584919374637590623090994002458323983729995502844981950629973216366996705925452882444802109511668199879065416473444359895773617169197434798184000419000910986835422557297762654684144782879480270169033880973039308918948271741758243933868710573764210359740133650597541927883550443878877718685421332760022946894190425585889329338046545958761680823474393995195506883483773990943697648081830399926827287299674246085989430126988873214511920206945622870008687965875887982341716730082782159897578305161775715361139383941615046917072642467215718927319378379282779894344951754174407352827453642619907862853817165609222702206785585565329891259650398016835318786232698532533341459382817553376778097355806202661164686088335552602239405554488294652556417278405348536482095986512800464153891075208271227736051400771242044414351414223428545876686010714715499738667976655738262484622780998897022922231064453757066454779670679178943043774843561491106452887332839824412766809051678441363188740338536153739343862447843801467011670200371316223717533311807436636172609429773500648388278640485614704632011574939216123362949468565780032788194338594222812701624524200366960563391984088356013225023314371349198661166308594785289541427405682122343779173076035297727564314171176538207505393404772442941644910487682033999203714275083864263751061576275599605065220279785787490706140011316297811593918091819100155803936198071606543339599987837935094475754946359313861772615843223486272630646652477495828046230333091874789957503440159878279679933416598535854898313301152637414310919786163318182887670166479486170831195132011392921064905381490832795234242519163451343681074568040663719027814795673184459161463523847554602412470048430663656222419973432752190665125936917699291539550504629974703593197132955834659011328388826780582406869802768828840680783368162015911378976910025035690106989711412643414464557801196434517045550382878030273819454969925147923249601395574237009905735597093057224884027497440433488034834964915649006548417473086261159077829229923854749833647961945809524983280414973274105476449471643374521568902219991382313540078822175192683018590787349679899186592273975995628907310441502243730649156053161088489652469996952926526759616592665297574588785104098168299360343205276918534825947909422256811438278314126554825218055690951054510868079439872411886756414185025921940006777329232035190396964516674161692812507535600088959926658779269699934591325588756165013852595611405983102976841463603149209238955948676483930319119372714791785672477492844111645490905488343574454481233221238475995003309853703817519557178884675806555191041831457901764015184982357214371697422705861560109653809193573922118821435660622128412078624107660494114909878833689693733803951265780488459277826726879350949337730925483905493633907662033005532408012505438077883400799559489181111663591070324982978659555955116277286495736347074011995305838400875548746271996641696641904197438302743891423055655212845213560325133062226066531985174457764943097440454756757045630735666074295728135351877331522339513987165697362141363595787339504338633446860413831095616524222172614914875454144099345860812783212851760645497427911747905958430276691324485713617288931812459379377075158886970502966523018374612629274653006665563605533333018460244881080745423156323088634675988584065576592201795487415723387081686590660111588879866775388215838840121076416783270904399260300581100546169535479448121165433190286726976387178095129051550839989670041501796072105168162816237114920642661520379067075581566020865931205819123727507669210750994621560364772243834958151574414089563710311389920157195622764989271251155966201263883972777514771325252789403144243226057254811116305618143743083421560574098629850694798497924286953325669748368403153529608916361076768918260494741364245152757712895593199457287680689659378816551466018140901793833181884897003180456382398052917952397851292444434677998935147429380948084610702026088988627046916560904951275089612761231709165373270392249151883363323850183755577260931096976597870810026744928939725098465783530403862370470030940631476054191667698512724896088168244761760872838271272498532574761090214562416889487540319145800343492288580505776300145020967652058591513774604614505668387492843127529118373505502495602141679008045473778797086303475028488871165018093179967834183058732211841266592309691707911685471000267916428835685167529306591018771659736317366038454174336811545193123796297631382496263530569111664348085220684366526154556860140285114680325513753119628697011813469495672132975749399777753696663288121829950857106987420168825974769547646853528404788674758611152135805095952377974469934608996479177094951926536034739608036177656208661499335384941833184375109456862557481936758558556175301449422150045638419425849160922832774515174540655625915408079515195494755894168619975265873952491449499666417753258523165024086621988533791908568520272802370803510879808773133789359731585438264944031279965317889735908641164682210249073096584770882598856849946348705342621583066841981735228920591421728322226895008306081144595992533468979154882631791800337829888239544472618425912319737862862689611131059790051133228755132063038714809752424461277184195507173166136413766887331936524936218347552837617804683854330793638633712078921229891246219463568429729434666306776194978144103228487667329771887444117618105680075246713411892756054511329168019825990145182204703707545037251021166069574665215846193366427521468507405922673421350893589347812967636143580778454599705808105694534026292837185080235870075196156279586712649405847320333411136387678708100031945933537494001290554646273170365318073880934065973053227405433299974953686040475187396694599752232503431879364538864104076703077839163089452200204751442101873124697951028739072132977617771729730160924451134096622991768698633412833639594059495717905228841818266679847734316007236060272452068995691963172807942554169699877708902897687644456552119414512841331100895865372395190777144355888361408304139364345735562310744175161693648227385401340679763870097599976464410692349987964196455130489598232366690821986961136982299909308965451742254264579408520545180956081469590476972771514851748896537058551950765128411803782066199559928930574049665029303351338062311650667225987199778940342704015951039771890189982137132998091397897310155035132060118666597543511385947396948150674876585870963238891754982518618875803390511854554348587974857298761687082438740777326033075485378834142771634770982148545875995432587359720730775768376204537380709470754821589297269329159889262422034541431897943710621508710387876251963570245781593292764915506636422980766175953135268856652189560253744099047548956651339135694411531369013726719866402546030803441204977432826832965827443182606447264645790892327471431350076368845095979494738896605973094236366953028971415279495441243354217456890132902298890063867389923198431891748030154898052078775634462768467846210987382576955380158866558460420127221322359891025780346797877312545854988284265072637622737581718978716008197795137933072578501377482108566403096591247011821214679356545166812185380739645089322637520589181575337130119738384999866515259377054470684261323517014920719455417583440262190331334200089468185091536374940498179855357114164244860318524578823733901195693743087436046954247149345072611680252408155083421663916426525962618257582701790362432089489276553585555788290881183329655606701309610916294481903736860774643523644621656190423606248370321111422015245895775273952123018283491734356256652786736926795890818621976099953715346236209816886190620898685566100426108947976238510798817719945825821193132768866137688379258785173703231740688328611124465300160780154326214372201476224229429427951314669914950320306643997990614250555180429203266154020198980710126537671125896998306850093766461511528368964895068802744855833086715859431657640371603616085683782171622097059364648667086975070580362491740110249418076044256150921883988514748825831887168352943960410335254835811669991261355561440486237271736465520687877177119202875517915944964259297900488871429736132201933027672513713426384840720718308422637506571199309799587300343217266081778619791742975358195046231118914934476771792509596513708786328600431220962001377244425685454021389375111968085996012422797015259920743298596285004354435011484712002923124430478479350646259286995959128462134561426651774290804983283945654287627001464257706391567603849814250849274245324162329241127184955378724578280003607888752435328932323443870090114840125033764448720570825370157498616181438861600833266584584604330069483023814375225714812122982016492525594881909904522114714964289605189531345456116036857067735464492278028156320541717693115277734809214308742434199838659033943503964692551995557201896502242205666930251605979936281717160094984983843828168999321201816699201676456670446264846950902075730359407509232694222896042859722243631636130689002950001739332044626192495213342559805352873586691020901666820620349952291347543417063865539088912118343157308990410456960367763653458099071282188842314314341152003175560813095358041280687185350394375752227935628465975358907998719286017113889989509141684679313515674550221462645597112995074159491870040738454241850498729161611963884819343369074051696603095163956652274530526183750396340896290287764869544824629917841893158879095480038963535892512769200439956836423824483810303376444116695783620649098870982876367171458221348469916627182078567856122344379849445682257723485234326558065056393808498856000992612241241360985648005278475957751877578579696853228549438503466767142820814692805547681231596708810449224478499721795362460289111436696488375678714887330669185329616836186116052549126073377578971818253956070579275959905645239086547678815513033783660765612461197097564014472112339839215078197617497502555250087691677765740284165456206767339017933535930025251492605552745930762767363420542114086511544248967131749838410418923434259066886364206984696457773505883560594762941036466192736572033011242123946804466722942531898787473604705395627063257537907117701043439783333090387855474155729058895672234150304130062373999987459048969025057092101163509491239099607799507543473525718747352755590099811125263443829230593603833662001679608796115532531527094983058616961544639556740023320251791525136979299714940010832068151530599235560983868224084879202193934817978424812493803768212642146183673467784291156390383193991918353532760217472421248920527055892647153557545767555574235318302132081379837325162035472412518754856272046526658185428910417255460114535474839012376993669127286633348637463089578379565403973875337659368271029917919382815841012782248883865448985211308442603929909915498552773600840293956931396971013010114938392322838619552312699728447270656162696938438542609749706765039821408964070328309593174475198052256567828117339119972255670737533985517745045976690570450928954672734439702196513435635829042267016451799644502175793655903443114367588795394092969907585819497215635067962378876034387388447918464985832543489076107292154178021046540367525042410858251713810306829038202282992750582833994418972427522506444928195288384862592299947133567396665100201063900895569346018126474499678576117520459434650690914707926076358823385426582422056290077889136778863264207360718900994564696478956171027810551368310071491180923192614400711643775908642599684821493309774172070834400561229022974777082103977015131723670610575156917543563409307925206310457689095658191028584796388692948781671978566158575253166823139482548905262865253479556472168457834136366573916243485246139402085354942684925411056677569838068604589477388853168471891091575095650336949823904026283616904482951693695373631812798655279532701345148144417868767921556316375217193974732641198709442227140357696149206615923854469251120917387548399068451745411341559663859920169776966735519794276612960791380609156719829737253765527506122454662064339826144541217096932303410850976079743581155406711232231054973889171758844581339877579688679989641554781636880729646225292361118167917272169831883966738515568533309907153014875991418127302088464734860189900615443780871807584454278220312996114542993366083221452027990765604104443901422694858593255718487348905030137242621331350368017864788340397365052357629737675726698209149234977791857460702425896233486628706443313647731937203776131383638486904318561833543384227999396072096082319060942005303466505111714725814302377848016383643379992010229060897257902757643162535960081138479866511590808379010453762685653650248537657073206118338012349925525423797365403954883240573742242454960417477402806233839254678831384439498627193132396854078208729455146038001821335246538028516938299891026435715025277042935937729016422644213479938880477530665603059962020397046665751931752747193763534495896906109490831480104014526239049898806515495563505412583398481794849539199238594153860433290979620637312675622300614867787210656179387651854678257342682101648615740382027911784480525202381090237141411801548118560257067395725031843447919917144437412756643853783903771490389606055392283764328686617134501315288060411172498759661315633333745781858179651190068409035201597983354299218822259619653971767508402682814618531459653327436526244538681197076972792470069167720129802221280767089620582974904436136890812234658780550193358396680396375647734001802662171066827275319195866693815562597318037938730416736603498344080034718446370122496826021440314261821765930156958819369715192252407910084325693406013408351303192721932690329978604118172016946683330807553527688483660264185413499799263427719267955763979704874879559548516691221751015006578554601488927766128172289305550273779043743453388522889108917058158320095707546678669152943840875393318130871788624827456645696269110962697772091542467500645856455944698428277331210031275977156586270522926289884567264614238156822015054742152713589045933899288776044228423554601395456461488013972762779540159891682171889056973622164999032355617569145485930799419657427462657035408019297718604444088207875855189178172380306396637462978139090993867041287762666107163732063297741132917512091588293664491361008913567195572133133904879620184273210096688285579116241013388104255379091961876010734739307499148791354566871961306834090968844220330749434592111374820786300695000975425476883873758907950506711531428468330986112176724907445859498881415172020979167486688086883446717932826002218707334508980152449114605060543772194932387413372673732442030370063885160421476728327135410294527184014011170337339124648913200189201089802075370393851102800687960025867419105459864071693139046240321301114323181634193959050982887330646779859680396815717170615550891008874689400984506712473694778520339089055480124406566354220222191703889298608625823779408899563699540374076263443077967781951010034532137115043471940103085820271073135970654130846806835798583791316719483157160239104165338432678452253860418521551053567453590988345155267502518259295863839744332478561378679195932638438623660453813807134997600359743908276077873441717597624752906168514396996243348658790626735729011965193685353656510337721867090432533123503788365008297228318439084499568750485687359379605120320170973925921275627844254875821877260839329599606553937277163799761690110434061324977944690898431073496145262027000779985717772143021999199968785134978427984994152999838880438531693165251799543591140448496234742137008112429085876660984920406404854115693230714929779084636707387885024132289852832013532732151682953730533845748585084356869816066287658343485624037923176966241673979960068704727174934280854084193277192062326832587275746993415377940050027410470079849591866193669877278103026894875249187243443024630071863065527910955128256354945367280129331153196995555260830090032105136583962915550259868961307874534389696445888896531135758274469438144841042084677468926076995341286256249444208414185512876485984917817850880529538192557197754313649887476663256599302784805525920757752603223700332453965731366843237381754283227005083060521553465756523521167571755202618977730234776286178296730439510788407337890142881588653188649007224469191867009880240403796868591306709251723344037122111771087312781768265785843429475403524803061530483432241374886622447223243959484503962656593439492721167046736439326819905892711513540507805153891305468927833322637414932013809792850235731916685032618161600186354682688854165408597728368810753517857889225645521779204897858887456638209020337411088810832899902284425407289936193350185193472526258752382006622090505308122585766861090612174866152962394821551753875724683960447920483125326923350696664991446574562580508829272130352791679263936975452476066537929089451189999691402766564328814540583078578541283334600419229933676246407028126541844851357175469038683016092639927642579842842647681056500802237140813892099925783890421356957552072167712672100676850481742189542336095572488439185122477387942758139360672926866783892417519913133567976516491061501446452028335576186200879557374264791394046867303646238941455379921836771522377499169224869956381488557439629810652976214319475163246239896731010873119911612431661284723775928768599517365680701021976118137616409957569362563590306663324505115344579043738934627685799084010197471885945400423476516547911088318169991366264009984781632754198521621321125798562435835093699852728516011082850660635410265814671991165599485336061860328045018988190608558595259776313523476588886564434022310481797851099374338092748825342476798718742799531543805460130061519462606581368484731742669534637015533246980417550866982232700419398923301729423013019288833265532813889849428049972105120948184969446115401497117312152085743516523910965207900777344362383447113478700461194827089849773130934522272173943521782416926360512348610919671277227671876235238172705771512641454435519256574546122013412653541860920502052283856979699043188520447999928770552792766117608967867958360917259958982120694490068772460397918607121726187865958477883922780219542657964348927874941362984045727801355471275496878889287792652483996757675877447395818933243090172455472787688276140186533837006854727040709505701122970580710216535310305571786817414428113675027647753633905615610225895184154566083094574040401683827019798517475454875536634173662913305380946477339047889422991631009119932937957239569524771771743500449524972477847118731244838698329853078023444592301175959585782544510532660812860589079471175088056584290639697256935703728586398456454384444005751307324744674914771921885014627766165253582312041315153860374310651838963697873725450599131530807800370958310119653244994956869658478283455243931480049486276923567857762282398580607643688337773266046238143653727392824249117693589420698316259018882758745749132987500516937846437053079432037424946106948283589636221213005964174981812722566511090855255360481609300233727751331164021350324061549538044441018475323381705673495826621916128231991390098282824895016623543807602692656804981841560411250652203453857178918908071229846927938625610035002026731443535059551298209848799363700563478269748859974500173505804229075771801853646717358798264219128938053217990047995404538168869298160348858507311099392215756962342080847587217725243009553827132494150137212596773836382514284703080310211668208772210103657693239446444972297372460726416599423872617750245574673074670592375291185167430766808100009561993716055990298449613667286777771960633220619334003611982035105534683411929547031643692231167420975427534715075624316718188918919385375656018663799602955868474545458430526812822572219814330327210505800147802695486277539490237036086322851720622931520605884763815980609618353366569354707781562382171460146104025258127589687842439911180172233466727036591309731834133391925474830721869705655900267247106532961258951237422251735440978390494698268437356510228869410679039757305077613669082475991611242735602766550677195799408679680498327879996021432995041513139768418054350824885448293522368220970784938478975770855110913380980604230657479214496099404004821619202100934005628059699912298818593110591383289992103661259385373284057791216873136042343645510458630728995392187953216256025739685982130468470171136011245874294026504243080765622372730097496944579440700039258620687741171738730738946250222285956498419568853024809045189410415171017088151090269351237776795368077435146698947402918371427308395491755120939125567141148775526696453990406693169272275281793106241819238779309602458341853789417980357967866521926393976627664249863795609383984358461075862227813683125771701562293362423363889223530008538793257489070792182466520399513022017126886986436856906729940255015874504226751928111361375883115317547086395089711686382377661863023052916304605623134404311175930992260050552538598186655203496952595625817355333429095677144728154575857791756546566394489611432205174987670961888492775658134107541679998453739960428341985693323362945271626238960689624084274148762366288986721030743002913512240402563794406522878796145406863560920244256700977657901357976662100322312384367989065266055539914686501492878920522025782529954720350765042302887615058124560262592353253870033041217683276522737371707407487015736210343372133048152506747676458271753131919227696659929992367720052249609746352954959348640257548136487347870093369527229398939245595702058891640054529440289849194851922536059164134223023125122179172041556924047413607422912306340665674166961111217534813894016999276205296984463041702643020271508438479068615309936864434002820267616850120822997058323052099351619095866473724001033733859244366666942800218279192629767689478351442439000271510871327795086740862271321927532360843000182686095514775702510931910848911479674988596810655855144506027939087690077136449018534818477791095368117422492298408997350719451565373274744077016334305478457818278951716635003879849944213550778863147644500138077552508552611921634655347428224929574780542509073445753088221371585649160913657609316301935585320708525056912818299890098910108529502141409877438577837998772676267301302219703551952831319652522793716400416570628402416472648405122695817670384588124810066086638486208399760375938311889117785857215605880892398292000492716935749858668386002050631399536194785639798358878418216580681609787856536257526945256576788312763827801300442420129674697487973693478499972242043566305387779059054543103678483703584771576460659757175897183475066144893453282589823672327653143270486100911878057010325189978154358448296068858796117819876140240051619885952664614310606635739996218260973320248786671183825010933827142490855651729627568128322820559675796394341633389645125142216924656614273812674439256239586546400635212257561806543869373955602394870453442330560867033630659575052700157710831464496093262287908981305545824074543772875658757176307018466438287246934977725716613576303045034960106484702073937279909900255461557960584453859575972283008204091278460713583390730542419313262830793377225023822910600807018827728083369726035933042024575812156484130458650412749937589078336907624500417077993942560453576730048975574248403263161032347540314121444569301388760734622577330338339226974069495108695157489277791145984696543523326238887906732334813319574658085555642585348483796719236398781391904161641590001591517904118453106739488321876560067432404982364638721915588785870510174407597145464739975283883796916112753121056343210475837085793340065199020217385379184706699142146172399502135698540638941929922838774784198918466589975146476632494496256824032349246162232068762840064361005427823173369604026182082355164127262843569328248751545533572940672488075944582774541576910519717249451115697070389591410290765598983700930024759689780290929594651423914535754364048107659938209451798400565830073897929461008059734419713616952314248193604172551868815186739484333711014061526869107336615052651095049110216842092034992042368232737737551112711986102782559109223634108023087942704852250215160593675685714510971012643511213656761714162271865264829668777455565946814337206643373441831726555785315401926151224415377901990529538612953390829143189903784100459483443882033388370923176120072864266619400398222792892206777842097658642503633252403824876771742558813403929259119628442641338582260387992063601876712568166358799148111247405087418331980080623935884620259894965754083275028515088765400926432459490848076814759918352343725347023093701578654841992923081727585907701738140977088659426680011920965060490092472495149520725520881770897457389272191699283251563188730488261420172420550474375603247970447022789994076597102344890906842076686488527600412661218696161998554186345801497543816720327083643753984749527913110852800281839509633621058010468454696463693843764206591571194869533274579535085779830845958425164058127915700760716163524985264236889009272819056977689684998983441107989249560372325526175215382802872817675134847217929602859555795057232988191192298949920949783705743811427694190019720164091347126626212455197813745371996048761638000226404487392522481520998905791646229931905123931611228307588676317531595411608925650862561811131128815806582787900042932387436647886612812032561425135359572097915480272892142834296362665159984378662890920574529074749758233982172243684249367566319160284346746062467659388639153687155404598116046143646179676575435318852779962841504317042372839376339425931118216449814233787912499491962605169867973905186015295668660388431918293524590542120837993475170981983259185750780326593241840825633744572580182516840886424894648621482006936871072943136711377717049598916089039508671915736263726987980268801408422778615273721411142720808535922934652266109329206253615273480380347944528038722650622600121604379418517205442228609185790918920597460370362864590344127427781926861563780465568219740325849165591298162846846845345757099252326631368150512185852653642233961485195353110801170337507672934389579641703374272370577041027579378174200283024272003085967553910264897887844696311143727542568032440034675707777395685320863723994253492835246466476228996914169789567650138763077813085505109819707304770308894114660365997448986565446370657069849452228845808255015882805758324712740307230025014523471744950015489301981787888725700026140816678012312039901977952474333594100631498475558064333314213824572519623541427436565318794953543588556521870698398384578828083208161526444031978765800686061864774286509194542752242247708768373191340122499241066431875160861873967169836825422535133810249245579342722132061154236455608600906195032675200662804387537526613643448622094223445696769418627239315528139007022515705304610883615626358394643057155911882569682960371263142045351260928414292603020611885111060708934165194089888508007893478083940223081190693923543507237457371925488778590826103599039433991531837842520539926504504674009238754097696416011275628285702996967184085874721739793944782724559700570187741074347083781171363823145459973806389498106485290738894513335244752297982646739181309141379893773221089900078982430831946277392434925364921205597087037702600309075793419672378305163301885713364386519419576665264620482403103445902842364213471748480947186488905021110301293134563203318916323845684417047612852628625446128716470172215135057309688476660831734264603195161050657728472353811316203139906056378709720760377379016402274604637348016876274626165260483095570596153909725096464749596217655169982069410470364413545813265898830988737720930084829659958609288577158021060505254864979675589355318987685450257974116661188990685817512759223062449142618566216836403716911058979828586960244194143045933421159623183819242602526704989212105549777420250744594104993780350721041282249749671036232435228191439995360034964478948804199301564275581767189722725800606262383822821248971860412045986758649698499727316216829782090942178907302556152225737979293327662272529752423957208362863117912266703842142853541361174522072290894592047441701939955712994170076974327100687175059430170978760963082234505886427127426871431866361884917254050353979225426766437670058081966994821455500948390543638765263913185142800029850806470339666358357208361124478465030274335531724601035776788563227120867005774909505958080460521037312933316461862954262897689812748432304296056676272428554659939064195322606929603102973935871963937744318825463507208665238605803851612121334054106014399032169476749461896425087299465345555079172092736128857078271866613120468763247674784449581020707048794765922700403146606415625354427472990401156139800003588130177975729743407974295823829736746262367032308226655574141312952790742206627788677471791003455768579287691918800127257067226678847682678205639896680132786492291366662707138073504645978788533604179051304197842321374694775833081816638400395588965351534674983720744381803479106375075928901413208139884536245008319499238353124587634529048690585525023195034810859729634570949898962550578371635629148205245423034412931940791896687259516780814459693731560241947576473957596081996728226178449064652828031216491766596916228796834976397791591084295841533207259328121598592078466843452941252083969629553063637880830551841625132615517908028079672362479039086961555888380011306228809928515971280241261595291445579408234838500748979921169709964883296463262145100456255979673016970869952507687230338941577856279065519431028069496982614372597723327208082710807842191165145257254027944181692548668809096891882584228563268757830591766034047541077000255931176923739298349253438833088729019036908029626032946297208868749913085383780421310097637456059618543383743873992567983057643220618810209927535655114305656813209066041984972423395665930140261568314463232080760833632565229722412068948402170880757787585538954034009403515567172706423522867828985726973829471616578817950892563000838797766310683644818167155129447822009616723448713412906697248109185691727497752289570792965053986917941965725079707773097131529288248717913694192020431162367142270400115140505274246509998414186150203850482302980430496222685942903592465382465724193924364072869181662519079472924136019098014038974535585727088458785654135452817285159644975490406156966048358229745304382350245644199534293277444458521676444471520855605282126770777029574498744725547495818199882569010217574552945493097907011538394549741435894007786316006285452391231465521835445669848561255467328759304630393571761232593115944584224913723123363478451480973954727558884441014077947691043037234952017573270982461019213509263601994957125682130909196032862565491346352168615333391699107587285120711128524254968875772384329112415010894448010659147480864567555204880354650702601595605671226650450529695336067024501528236631922832144500073302915937085426307777737087330071051589287884611067934317086572741436923566061395093752476368794056771481998942863853808651368229548018799519519059786834423123244332726925571363490313976879920788921078427154205962129094353838367497916713495518640773422008686493724934514085783473477726738115986004062441491493883600845427647413103827651633574545620019541407100485016741882547169413472727018797427723451283751118608556933479358738808302703588013557071179731138425440945676683879032305683030902796886637027268168337863173835000296650200016170834075669530265740634148884785146222607104555744084731479174648715414535841710936500068013441192295463156692853809101789135876557012660249671022475968618280172603556943258830337496054176670044556072988368911751355540837868091836732470719250328516891744948984107710226133911470828560790737163507580640451476105313876635394035672718110263879335313594276451976530341300707514579032899288130129063662783624227866251464950527443068809730608438153977256360101711805918181855770138972687305091529967122093192559880640280526315050471512642171096000777665504332621855521940748302658218699081053162323075064836399980033478015739148406862539474555592584845384901690260088326605511758937337118776610790935965005536192363874831026464446359688584759536290085265722467020887031549534538765401341583216063949884850837867688159210979589522370244052665420708246472329683077962874589331509449318288967025056634646240844051199086225035528497305095183300690495044616062253658886573336863794075614530175380916274383648022120546832220953245356034538568840079000337766119510694164327921254734521029075882612589104440532650922912868814604863719605446252996422635683405106305380793019675510210406489424474351605400994694772705762631004391481944471109447458561161400811724465898558361138261994876554722966558782643172358548302940614760314424025713408997954409319099894778485673690008216059851699777325971125292665982807518527600287069444537448857675231118818339762031295317027673631724004260653706284936573648436600606163912366520226688820982470616736554191363302812522240206059211205667139553274353975073537024714534644466941643972186316412508399474786523677854385676433412756064355406697417140980900261357982553757047470459041746583689870371921089712803409124659545139448282355735381200230208723458944800175566463244650710104827442553922097318202131458061185631919129552488419542981500611556755199932571212715107775228440903773316806760498687279791596821095205310655538742092116359165619592591207084462467163462703772533304677326061990384265861642057290391242044522581734672847269804804631834378318089539103300470170833790730845392797094853806709020839552656821527794991248628415042356653844814469072760511708547145342262792420639297270987296162287185186186527306413365789147317232040011066970594399611569205734318139375795496393941041338196034821275183743276511981387907055837595030552965302773733269234092411543508901802715505451672429388988254041253178995576039242439925104511236613319259683001451345456547407758422191397355247588741288345618928169326560601398757287648407084231318486323718341942704106815848677103114177457176486478517088651320908929775732806371304989342007106544290951082436704955809621832759202222934171607159809641386298498826947529196871073168751760705563212679737577248749764074929057455625089349314225457810168489138984062021966800327969282455041743718393153218339492956665329678091689272556638281039043721373080882700315712011249119168778214844400589304958174048198774504160554032060235467807668732217271495140596741928010583704216320849059096783546590326948197073760880346057595980203226774071546061720592898316385450358595963895757528689232169811858613418800859225556533864457589488852613750749457028500342994638484526569912797419836353145504040565966089388665000175977470594720531291157441400293538139979846469500975582001130204580801280484182551913364371182414223626461519523252077483999194616072692955730793369366225634918240057885590310209539810929340332956494836630773704526760004687528194236535523190410396831601102407495852040341519764088699859120998775051511780075950181733433822609595413678371785342261020118438799494393227825335788600413291959483838518588729829947748028363954622829167978516204264122979382676487869270848409768559563697747897473290099966803384151621416352164645117964763475338634972884763266461285817538554231517272590783953147632868025589292483305587384343056302527491864592740002740728829253687846460654317084774786310724296649064789691835347920896544894122799258192186078397262551741288924931282978926027725314394913951573147750337628849935470300199612768049586553344808878463988678339930999823467830475018719162754043504971297219738090147860635566457923704570222275528652050009902367791696724408462129420368640849966968188129904003073691953156408915523967541665507910457156341058530833010924629753558688643252464688728345975360152726453790365964357959135018082907558911128530946762166635146418377506237201698251615980899377160130678837049318363722699012845436198734147295199827116535414349928563678913379685435458123815424420085234106314529742159346286832722191865806621260094180254718219145845689954945083528122543673434583548362545572856038451450561477389339566790997935421109649850630819671888709950367555346208753320928388765107259193501386493939509524972017632030966189423504215671857448158582761448290313617924882791689598948690556841132405629056041574320638259929540836988704215053901191278681739282329004980868633425098094568551536971795656508128856811327734196070312339447909620925092619841566673293383845421699782155106171454772873424301947829612786933595913145144266046115635406190501063546799257800572154605468260691339361895495089980899617096804887964257396511744972073476197284500736129126189643490935122818626322649533851133354531728192967243415479836565257669625394451490853454256421450366059765515751611800921809129643797024617896483005634722893073789709791748458551483283140894359526910369276009022850327330104277931992512140541211474345567887920203480998834550964982566065573389258378167631162582378110091141329883361901428114123550248538686523800676878594243920669468450285433956884574051709357421409767777857354841568593306870172940240276352023862060882188553659628917648605896571963979592565689804784718468750075776978795727856342427963564593525768859261534277616151010651636182711028449540412466736801527389586552680453155863633618272200876447226437301449968605902182961041951563686354131158895090035676410460174353628771080758452638768556120079556219067818674931017761022930656929579355023466342903629769296959458461349381200807470171737171780825708112247317998036902775772349947036540435540173271736862177909767143601689835461162891089144334595578974496154895399641709397579285031828994087313940765984837161221780253565289905215847474414808659476585226448020361036961824833100362782925206586655048208293252401494662730283167479214562579908841002605645969846614488893126041781383499351237990103684454415218226397029351748098494055736281633161504212083890486038561311584791450733581449958001821163814131714460516241130676346536462181840604243535906248019003688812224680421141555486552966439590613047473563253972809195146388141195209976216594953544866863083117170313234256583706100166058818897123413578716173415438073067300398506559231199003648061620790336732691318573320216971252303045824280101563670590392840338819036288599292759904805711201392936575751603020012653105764270856939732038942036376850972740563030669269467420653083681375986866176382131948327052960476932275359803983358145660368200260941248145321434180377797680679892081406385518920234713178818846627286020914546510648539896781868514366068503631040899614256943260927113649922466705859227375477151843651642948815219702363549262042087548282025210220201497743427931180600401146201305956374673416827402402637829645249993848598871755318289143491408532931613295517788221978160029112348425354324409495327928739719018395876668072413098139803791837872041369790548083852667610588746783852464307666561161004216637948802137489508836337750411209141774111001200730231695575162598077075188544548116009482887396086503842237233445323429951272078967295758442426636346080348092739168234567185175952767119701232192994194157301922525407293234020328654826694353267674971530166242051731314499931242967155860022286347293486545426959015591386367951059585950135586953390704032874184931971278568318384441797633832943697826702270382651472483692415832788693222946188674493003041984148678788402523912056309353559883614533418961792367344374349018210048452925734225537346339907732746587823906106909530738851527695455903429355333200039798979060903057664850290089867930360691538759738077764872668218975321860824844061919147349729805820723249000067015235798698753877683587528236254275848155799310708967005938623884184968358643990836819814941973896832056384678327540382269398593535147721088405583265389123747083636110067511516502403978640872832538061033102077939416940999529942228487315384029726325886078736755559498790561883919432223169084288405181336635515981699742359993707264445443840522409238344196031408885897935736110956259670494850387482468174650700311119278936333201518975367571709222151095243703773597635069348989722573760370293231490213635376693973611623986717793283617931483850507395556011533731246417962651581972649535674755410072112206339689010846832274099830921079237869663382000880809415982903753415841211425519339722265862046595114647289001676564555163381261353179963126733018110666272127099132188859792925678161319119421773568192896468467703661252420197702204158949261252630405781770829614862580434382145462192020700548959601804652451890737737553398776157524039895719216874475777839572433632798849768265587764930575268751931222495538341151425301131959026023514718323317933109340312047244589598540947534388515292526965035719044862045898195354108569705920742620122334805764239750521719635192635738114121985130993153858118675582731173759272238923672760539418961973815168757099422981521584336433099571636836331194844408963008087922817541765031818118105914620524938032401994535770553569348542202222510604520947136176020026171377163618072188967939029868714316409333093223356345427601367075465945761670839646481556988761771362562301019732691091567798733723722715110621330175290545847495429123657137649079132175494890763860109536999802075244085754146898449613615081951681638676333412738930608695283385354574284982539130233760186503007829417004175845004555246784445054800582352818817446816237353651388106013155970583446719563551919216047421141537886395828778985013974669675791689475077597786810923832483201204160884887531391535404415149267250291529735522999126813617530385189194508947419606677218740764378951008752238959132096732892706438682948610492986458507124859754316339565292089321793069495262917208616022559605958252532469289691032971084339315511352324860352016284866174193819266701981924300969161175165678134339014673514466634085033116236126290814839834094863738350482774918746582015672934352945198063672716036566859426141166269366397165826815828108732256787114095220450834996708020615391788071423918269888399870779638868340163575696280489998414099725706552880523297481545038291854566827824249486297156361409963971242146218280996420497336960177114822269609962669278622443754349953583463441221819000167067230979190461303532831556340134942214599062626702763778664534948557221377866869346617138016727808840217237887150701146240119992146688688402037453298881376931384402642137619255018493243827872392908254835042330794579397854720605358168062017948949931766176615814748836181599260418510577255635263328799554008534271105996936633270428050526183455795513380868416119169784125673258538780306506359216312478058670849486543997932986940723683441797751735110811678662278894419322276698581481301446658423980662139628597216220431716377033897521876154451482496113521216010764986418339726918929614390772631391716382939931356164975514796471508331445502157011933403124793793462276532160527940247217293372969978161434982283816936071064635845606017999223565357006107976675651406269541174260673188135563217775262762806874624800179824240796485222980441349628131144657550874115838035349643223014203949616039448649381821083114541241603564246560782072062066345544806342780059964339519001165355035394638238225743320416726317459041970845866707427779482508617804251301701013609204980289409175874377832953117455053152635037814833706656602885616549573588325106149483279161857114882722673277825098152380383158208333783020181223938045803122747154668156303687136777564964676860464228188201102328693324369366599240708102773879540524567344970009625540737774582043354379288676336584495215638087374860444841767807938757610197296634717740501848215503247592771193210061848915311212533867643953183196622310105949500619748782772536900813265327334938752534172056754537407415633660864188864060016450410636085060530881437429090553396610566328087787754090013349306743078536295862649591015002568370105138311456523878820986713962042998029583205331601654172376005970700823755180046498129090757821472041785908674156322674164602643251838262355356154992770816425338594262052285709941647733593322484061740235606394043611366887284603773098072847045400257168961841777175249354907975818596861987478360223272740804701315034068045933870479244598076858784034170681646250747795072014869302491466369556563623236435144672614517231522307507603484118416921668094095765245503279500940941725233387783712172117021945628832731705012926794299819959570866829918030867753246912295297426078132430055841663211972047523757087116663460608754180658709012904310666828736602445679760131357034197696297573419121910074442684567470719962555789137876076276007952687753460842436703980671691437093336221830853358984433278985204652810791833895052072128547548220202855624477777230213768748482806260152814399887173348452925429640572806483104529584497605581755104259101610554765978952124455827272967930011074155742514212622497963315354413318639919919468595183106808701126368211021388278924615228247722747183538863138899335969860084157647595906888806543252235417202766920279688407479599650683338723630575345031691956820338161622837285842255592085465838015175666582388405340726752902327473369890035557564466967228878742512986945093955575445915496779528026511884469012568151660168419101763084488647027521185318890033865827361614530249299474261883318540829517625764391587959002848444603714732037108718640737177961424103939388756073949253820002807543741701568166642362218225889497164038794373440691059377981854164555370641761643137741351578241623536636382037962726853691304609246272276610248135262215938990324947394431612619516286935112864116889248990966448658347944205366261621865778019810600872649885568886479869416333061361050415638662716225591889916779898028465102152835363271864614705563078415533357387262382813593526769511653455495966171973259853564654214124538820211762290319001877341039737578941539048023456692609398990884637722924863622105948696343618655383120133484084517311342991743351681668061978713838591455320142702746202549251830209298085560523655079417921890678048833737031470981305465774053381686067199905881764923113819922213110682037453334642016391948483098367636754285681446158153710425597136815576783058142944987772871804317451696348732284825257125574995840127156115850061277421239097920307147034022630368703234300640177645376949627212825612623103335887173761226416521095596383140983773111656756872062194729969509639564272458124387479475464074529539285794265009484109444744548547852750153477063080149706699663850289083818362732886519745347287286573699698179705929361596378906104293387031528490605351111268721631569530911548438955765027928930946808020783041411852506453567553255365371522653261643188775495426344559135169069212896238389972262966628082127102216019657432068549046776491505140103084611704785845717444576868938516376122456018330239194132067080447923001850726190848479550830164343832327485660294265974783281804174796697320159022957082432162090422754343547068171619178082021055274853545736914592003248187481769851954594136610270458429050232329784826760833415724850930176411370086995697091519477028639970054439822408888706435280515761457065897681471928366125661533944628226551183618200851138878614728143294927610295546095687426196452393955257307830298092189900229299177947476766763310239450208137895915272588069515236340602471876880711278218521881264484114749373413655775966275450306412925924611984517770339295732514427690412445951563341656235293585153524377938894249326698584088873355163298190920046725039033224128522081798429924521097503132243465528657452140432591336652069373245637793379548483235771515681042803131531199047042336089351275509826366394362023267866659419535505933038896537242874344592462270251754134131852114934292893134465786639792088894040964258570300302977698900073170164292272873718544226449125818754604283660561662111362254267892749228539618701851267043378585108119015050668262522510642449167183063081141448779640329293343999261030478439202376248991802709365666618757289232630703496006501527629406851674597090015654612735295670317157306496650227544967299308858221743744748367635797174116544578022801888072963753848746841637670430642455840850079578828928464304948706816236453985753068062773955496732255468323130512543809251545084121530543275098023431317284907583502250551379853523392764348099310453219928723123829579042220014892721820720723414041340502952997994183117600206751789211307245418581300577695064211712724406606236141616047051082121724579841874193032718802971021225648891442672650010655393821551764809442666696967833822278283109534405396962290650485502149539302427798068975720114206618352421715543828659843096299120806866676348382515664937593585770992162652419974016384584671708581030012705622273147566058821908529956216604220578416344640438578905210587124356554336595388165638704368969051650400423651604991780434219563922360998011799780311685039012747072381516180055494507635616908750602787024945495026302597368267581021029460284686907764141291033440728314271735660666616680529526885245706574970210555005225674420388844803100757567076369794815867218786201276469986448506076086747261917383689499935700192185125076847406679811235260373117503277439438560274800666519180484945157987234105459491118747007059256970960795065738605284864622660967178269706137309322174578658867978582349771984097364085096763129609700559683027231020519186721195843999438899065740596503346828553688594236883126648908247049264623284090008719444597260237807425674275090545706658932688732039901777431402397499811821094114857231003491840553935579226794304099388715866352889146200484516430412791888811762526175291837666400507753796832587350163985855963304632189822998725066032782998293167308686053010836845582272171197129192781118189679523643218724696690687936559637146927211654985070476860361980875135696085878470700157617953390371535910597253075130175951368671824391858131489028504161838337826014872054286149751103658220628559388066777110932661304542604144675676768778060325139709042514485793157808907605914506315811696924776277348487149536642045807856692029272943355547856374814401445579095047918743018563566818982862186760890462129120863901761811165628916683306108787668535755060952381575607923755590167228116166971780748465983217574053014937142646794984368435338327561539777734664788044361129311333983769192140771217301018453113297145492041268827704255485347781795492161858706944558527425104699523418066728884886290594855415013459055246649897747316453146830998483468064263073232916658330955274266816522047991590693493483378151809170228302449419415378957254935419311509774087826922793659322026728060819285885761222668863310795125748323845715832692932315165769372681497627160803455081729887108649043839997589135973153349713356329753652239939373799584397652225830738486806987997796080112315424765949847975767658545126242303207352916178175446851304759720134026600618388719878979457736488139069993687895718728565281075329874872293448825022496253220064450584372173951403762267095595017116219422580575998684919567234273111200790193494692664987054693496795068544532004140686886004784306357841702557484465625528184627413408573925604322408552658717108434599820747920362024704097811292739139634488790218936631374493793760999387862673120229400035385239431005680228968905556227771057232901999489852902576849484666285988895264398459916601349348170071898657027580960401406662642831172700976645844823927761873766311524650200325273105244610595176666496633138717552712858121558064857673162232764466001285877226222059107597886787496708457235950064486572954299769444614784459263487517279493390835566849283808797424463612997322176051843232511006579861730338744620130002198598909929568524098820928240365514173054124856365909096674029066593369929449720020492065616281338071762551549179017940288223265194459151522365946576346704000833225636441795597831738245768281849631753101948209322061984337299006283514320130215620994183500853577999511933246198511205397012887069798813917990761861300441439836843412333886849981216767527371414029681280069796969926335349481137815288395377714860585231483264733725648311456256886373062137067069958077385245369814101136570452446398164062154991362672133774084870646196512972621025056795520429912103283431876120074295690900154765362054824928062905351901319284459825425138284375440320614399025114128033987673908129462529477412160836137373064407948075815681958223060347475775196520643577860078100111398681894049787140225341732585098150496284764764028958409242735838960399991825655563258647361686103231833221013711410178849218315536597818297056472083465194227755889335797111247621575276965201386530374869610127305938822126979999714294343149367907936624392661552890337962523980330429033261367228156348991265990309840346291519791794874746613142625657730537140289361661588485250198239900359330270376965396288224043999152410564753263631324249618738013329531673820177834494054506913747896743191234541316808721472974838741395439274434158848741241999885164187228266744337813851956164461208095629541944007442228548154686542130190894979360639334476288256125761067437074917895405641365477299910710393742111519201120324088742876101264896554037518284438989044755773825273411101481972399514793127770850599252772050222463832636280657474615468685017616175808449876869509682600949704912465590662784792615065857546012297359671445671364393463478749306426791586138004909975042837095718263462926146234788019892199983219840773259332347404799450429351064414023029149389999432939821334115680662557473523824487540035616777878125871641130705812480886455897013146380015412513228780350316361503578608664566090453908483947965566710695721868912680975480673840790063313237765585779947545642084975915650374349025741645471371650593275781572861509953256665153372726892629746224356794975466334183453514795614192461629622023278189663004540050926251542544450351933659930672995211273385810829500156115960394622294574452321541676114468198942359619797473684817168816227669643919719274176349701364922393361262025364335324340571325583900055624820494464332820834354073605786883355301418653754160444482959876400236321542638084649104902317689562154578464406617424026024402812545545123799745002439371387093486246399075994021423914756999769748333413817150846207094304415090876311836157243992259937411321989954840424513395914213138072033757165861706942383225516903148205110655760613433620738587973520737065808362132012864873027795357888865842044174025775567664130406801415924787705336057675512299127185960392492066200176856870932783157625739423000587273353582822886058993678918508719027125744940684814596819263332819260013029463030447691163071022134148370169600768959219750312950365654161079772665000082073707638735293922897420171084098911144550451844938118217650181742591712124553946799153743261353573880794910695567382863405919360885903023741822897332170969816015565887020543050873259487611065848027235184667649354778871858812500835624596499130941586241956346410381341888101546413358772735465444681946508894662777541449897964704634100362096586880503237331552826813004495485460325427433827053183228586171545244519383602026295485602115709957473465738833293132784522618209487079866695124169184536197354998578199355588019983502958491740232217934021175259338570132187976476234915646302074593489759652620329382375227465001333909239878719802508180035185445632610259970048029226616935647569066568139009887799987281462235051440388839188331835993411730947058775879535347018082914013647994561010379259026939230065760595615881691562695747786371385660848870432789063490961240936922372562497979546232901680576989426448718961208083902079832165961402137503472015540511297720126871166049969998328185384993921637598791314872919438387151419804277680220115651452993934255115865822784102430905648925113668580162527441667816547048939408598305618565531576625596312778687749886998407364068543699454635123274126346918087480222560464752613734532582583735176045388828299897222658589812674098595495188837832140312802739235227961844894087332570111372376464674782509201511809763065939575031248330677215194622259780676752164103487110588296191945394115752297869356537426862180794944378961788932378948098712138498264599812465733927107632794338657252629871624951954558792153054450861787019996330754478132158083073538260723718230015124295084700182311735096616180834395731764908744565646878251995842603651507352623656908009908932956192283554978991497553221259495716170509139021502510987583125939496856813276344376911797413257853814331547440913490725764253616495119568375804012703839798332805373396954506700389614758598898703646451856296215102742285420396805493163552508414704222353725570094137633479816667039624808274953225033467851891518089418079351588915833498524962622425541295939532632294724522890618799400032922269568920851633878071654374507408456123033183095021746073702948177725093923057958446303732770992941029072577014606804628886917190584293242575330329877974657607953320006718284855605255234388695308396441849059126373659870028247153215780501637338724244617748863652783853719872981106253228011963765091368954377581226379696314771334337510193507354024632871585479884687085971464903539687229052588187567430093598220037417698529821530999133849582227607135319186587143665802325522117056980229555437416783370285208246675512614374324388364182175941511555269118831330484009399902340789306262020548675784267008931431076479938323831951615669620470256946235388067620350813235864927609272878469962009822888275771688126969671159998071912705204870268243793833398211201470335453109336288172010987395501879602753424081926140862756388526816114099912540865334437496573311082494433798530010233555171119218466151481741864147568445250416946993455820173559276902035835429473240935290975404816764614637580684012698516838604568168202207602833228322763342872566226897115245934731387757382481138913202891501791325719586502303083742865521988906077414469702129663449346211216574347133284576982951248666033090899654840201035286933501042724645167621138234036474219153622753268863116658836819044290080460621944519813240193349486498025213660245809472166722115339936775037869989722096293762683952660909786676688459483469176330263114351591928046111003949513760837970642568350171076838470654459295188694943708846928122408907533843303490706719678612129791304810661550926641498650547176599062230796558220456093368181473033113667925788963149340813344765175383486275251324345846468849194783674433621378799597586442798490452180434484425244381352504632864289937873680554011478082484497216794524737807437138222959800741652360762466550232718989482392316937260676078012140560898427745148530554743808512449624973439122344830539618823934795671123999889147008859781048522857952914096606599965572462465190453631885002585612396103689760958684014929784482306459101807523860467868049962080670514601721942557120292320398601707355273303718499944358832233938139880446316637942390858909343869584589520728341098879598914918717597482732134383371444337247142271874763714478161373822554155983120679595262700600424998747874966280917455024798548298970826718134578988715749157253556185999023850260893542280909443997940397582839002692768193365486976338456599740230666746151224013797031116894138350121930350137099800903538988525770300654157497759673089784420851291958010722898523984449875925647388912405772345620064391853283693865917586641668868832605747093804199837549134701991200839313733646833773329263920658171489135892348943383679548128497314545551241937623160075157486918855320616547762690116256087811596416623675796823068928107540450568718129264457001784023046457681835067048531985797816374548330528782161315757294478112755114051957250853722588869371678573793592968518449718383767426361237376678902784005434771713496588343558586440864577526795581786374032563959910141666152371367052466744952537218789939528376088067983371489101102079589736324908540869856857368233470645446684058662681997726935710540103320238229617383307934568291926491818631269623570491153936318129250488475641797693784063934120663681742681897124921172513434773706959303723864794536196100521346906114003079496405975898781946355478291903167184718560414802362892816331098674202954302953665576408042810752868699076802310801187444079137683502555432950863919938602860483713682190645956064136182164027720121746527277154871106771973777347626373010266796657124849286295974570475881688497220249463223627194975375844694348923097922091188905085519459167322649365870474626640454947397647622718464636382113915305971157991993868167147632033125866954569506572094972325085852565709337623626425252868941656502550548592304646723681607692471596265403890382827640224701686159004917712699190983631972979792854924987495399714824177312541394699622956696350569538760492534654982552805560055848300085707198612126682873912281411783506667586475544885466935263295525298594173391056131847855835282140201432506626180479175824533230430950631088374906432378475686333001350213140754353168217161034560981867704984740670735803625901518930065307785363984642038577228352115710680940106299850490386382752216446664457338413979741567856056364869031138670307619111521855373935830077190196887581367837423156554867460763176097507841646630888886026404339503037346012925955879379704347575097908238703867083892195535192014418562971062616896616818587734484671791608068894936942980014458070836033040511764565889555814189893858049741437634481328991795323455293158759142796530374268113752365931614570498236875857268374134633807550124070137281713833029364343058393864829009919486899521528451117999194159345087195098976870786917266883422257308935798225052443324979253435384097660543821085931353176874137738145490188493352652180025415265058177653839623813953644152644882455363929735236763233775572273341046503266436712109762827741137138679363210531759719919804789135579920818951125102125579389878128053288314208626840765257838846948082573718051852536244718552637848619870724773016062259835282490885905497691914551591770167805368282022887021332799700914791654094073831724761525447689239779884518546710541318848683988250778586990275524558339605611828896743636656670178294595748425540887815273156975144101089385128810336239810012214807122635098102772757625054741704048920814219106228112290172956163958178825975529601212454805125059868971962599166444556955244311820544406325365114318784916125976376741541467750741090901303384497309760748956238646430544121239703799029889606662030416859779188901777707303865516062347940654843463833438874375206958654179553934279752101029737716341245862683236134271152193579183386830708967447203767110799842423784420685063499733029577202565329775264910263856218325825616537640104529805074080382410176245435905213409716663881707109885014565003394670403509622023879650834216228105368836900070331934508607121228014047767657419879178337653796782110802428754779761837165937611186338967456613271463232537558689945113670823751443154637133110631768417198959583329341802499467740645098088985834914131011640817526256348715775494424939503216724048588377429289510707521967550362107969456979730657128260208731976352319813057253319382979678019368605095502441362439645791925973754791399245737590572544378517490393753924516312948725042579332282142253083466306823514604812055488844584619114691780116989328974054844510965644704368225764747183331798467792874122817674445291263926838972843504352248375724466586352305233399850438438379439346550084532585758162787170871760353298725229472100790335481059016344782699318877810542630922430644404509072179541514604238582741659814780489329144327696536904179273535264727755354350808422925038768791368339272094577658995667677057561137593777417026311055453150858616200562112809112581732913374158878123689779729062803351924027859545414447258804703617876400001665163307499662055326225950460307364574221789337894873539727623076528971359019918251662686039268215104246393415398373623495228345360342626296497164006161781873408220489992682760793196320361985283121474590966726125436523132528024883344212152009508279597800777047171666528312303083797440909496737494308441606488527053153934777910975464573896718404965384043597726994209298343171200802098754766087773857972532929913590615988349081974587669415040815500812187696913676767846699490786597855757870038702461327250373366171203982971112899850391110394624038680429991248687483785581327029999006628521370259000084188815747625624471623073396986979474873353871168224291046501624889022168366972480944277260210022589969596721793198761724916242694162880514584152643700010249612085859557026246734040136681058533570133688358063253007826941888459661820913466249420758620730721902680611352463049317571206869164175488873434228347115253852518803136418159969894657785184220522199908797326801753395500810620432526510180614482202688071350682177267192251533897863655816094059020910105824987550684859401886676558903670628993690966610046979682545376129447681219248556354977829350104237002793712123184689113695573396232890520757188721805946573350187639951159110656961123027097026906181025129382699342402234406794247175053988839477717007444631386964963221949244926068854221873424576705845505298053613280863489987200962653587077355843166698819880167757305241138870547818731973110019158181484538350461029368411063182244558458521116474123675068017609552760238769796454569437032779626119691498578156395833976376278285769428867205544681423915550500951543518083770233316686889991340341994718564258237952010466203248988594917764479422305900635708138557548169117588481944973890936540145757371114534860302582286951691275406419512066054034547638151622776525757524673162888740329446671415218490225551492936060929254600202572843170262892693785622221482384302510085468567173518406922191766994459531333076617501062649527239980729025715850014837713377377671803440884780760277568610794406605098912804880424544257728354874620405252724891282745867157452973911302066025520239339826833472514392283119497094215343474475487963850828976897407209491689583833504654095722664279765526975622773227653746897752771667853902290178560883909539501300561522194377126569403689061827246523246446951298664693644645471258870981109035212716750967513158626504416864264100049410855778269478995252903218519288371536529879200226630899486874957802250721421706445096111175792183319587064923509947059895537448087848129805213697034207194888370458473224322691300227991009424031011920854288638500203843641526807522288705462664172102214775784486192177931394502671570180125983186579976061583328205712188119585295880767624047905132159627910294483842616986094846373289072064705321615901062111220525937354977573096704058229987072818638086248882151876800077719170473192288813741882363883603648513299335459912151428039374916360237429916051917085417283915269077138925598560466189125708134351330278553678674969389350604819747883465720368783735582575871276539654212594860765689789143042085685336222696334735532436921774031370553385124075615724807254079989539069046593248354641813470636194920859213324392996240282033987437178686334549700285845654640447842797305355280490021503536729719416675511867973987844175605526898370885933366117643193029418209479192819128882296231045137012904800582966736496213235589799273009982999525397443265994957858756577789917893950709590680552510397177621350757008976912202932566892491095597049534676291776106539989421448782408553375564577182304053092231452203768062388733978583366775521068929086712599663901286871345526901300926777946743602900408119740900399781482251741885956888049730769815739506811390401836416059270187145705986938586224880334415076594896299209939176815257770492934998354972627151913405580483752435233770587025698942992408756988360636418472810680620976220798804948460590450021351650244786659968527428798206548213179269998520293685734600106565880906591516728527117949681717684506478302157740905333074852552021018753126636714560947863108658027347947076230978951417542740328373076018675379653811118785220636443122649578775239314560464683204008992193341703591055668117497977939733961664188402462673120769355914536624595720779754318271473561748944599439559311532984704523783862561544469837694817172088192944502308436401838559831122317820278431043998642603323302675096039523166176874110140449024424297823165021491732895468170654260112730416229866399614326511520736263570483202248480733772835865808931065538122626643569954046655189928577738990024159286970057908585851367260924238499234435270590498106008025076809846627276897582626961891371077061027981198652685064450811828800619665981027008708183349140656786323136113979758235630114185938231381249991864360815627257803703342844987267772213400343525730515764620259077460384993771273505369271501086236209681945030087653633296302764979178511683257100942002358135013737192223427188336499091554027018203688704650816990394447469872858996452507509653381022955732944826844196304383971478164207759556036907072740829725903062409466391142763335382064941363872348846915260180133329790799326368713280983711345140535626955181737612863042027911279608435548273106091881729387178095831685630338181768624956907257347599761040609978905564053476112936827584634271908720460740801702900910502226187993424125529922568547896196105955798218474438517506509195007700699928452795245313719578721365575582602057711744361434767567166333190676209375183777835318807575083964669711778989518928830166624307140083083389601320904786277000530329387113369557856621780680335642233406747581254805842872680329988252275894996266605624590432217811688587258879814793317117840656098359923293735795906766081770551826373668491996195066734676291831885738753909966487912474373510074734267934586855718819458383276207991361915506194052836503760611688176408026381208864973340359124073641950669033093942643639042956461705451403167349410173779485834814446701627435160111059054916539182299700281189358391079809046921377903814228417666905084708157513571495219414210948332713110808955733212609606071952261426031224547682376286462112874798479239374024646654176350264400029761371193370648803826765612572509222789063806300447615423736061558801683019865980847556894728930515805773085598019033361312338786053822403387800840419077850459542462825501636699487036170017491068236028051544854179132027551164769377876937506547263387828336303783831173357370795463800738600712102411586199698626173035052895005537476560182803137325710210159944872532501433943524571854432293548724938868427626757185945650080914256138752914615736725038310483545920827923116658037932991352671770268890643017367182358001887380469557988989814770721488905638676582223317731546043512686051011528883640649942367388040555881641140483376262655073313371092514869981749474786321776953795210145725464816822730657216776104290243407037165120981338265175991430892011298841076000037037189475045248277523603360926945885364931353163967814054707407375344390072031050608465657793148723398926383459702092970531744050157823108952241314992021186606488743472446932696276439378743400238829771353778307593796356577984161133456733024476654733946223879232587154808855298740125735940368150230684280037757401122594587074143541637330305632860394713398798723821299992207108182504995662476839853199397223224731268151220855267583157312963841094279846457663991913410478466104775526053988582409367820217144225568109625541015973521858496169344616988586351782496472494521850778619794639165367240545101822006267184987806253724713844032574678369889071723192590939968310113204642457310868743697974755993410990549621167784694223522062481607252802221684508935048877771926136325789785819667624947655490211014705116341734945336949962177772897298428685560526733834448873391308480256817845689823308894038166986284936477452435192865416767429550658561409226051859328691345677155166206649652595723521202020988945514242831370701316823147644325162366221919441569594040250054668240627026621999702185526804517455255405358652725994247706568664838201616624428733051503423240709874283322046174195012212802988907819819646365592016556221524608840323955991352205486914300961681082917314393478248677951495591786097180406447445177263970024912089323609924548817065518677359955242927029414591392170341809362448345668833569875469792453339864564118322457643547596496916717608494122261882478659257571338379708030560343741029946528642065858488686240026955183256347142687052444881781918182228278212537303385182250966080887396624317281662843314210886780949895643283002985120266679328440974841702788117051964524810418735750124589782826549483467384386066230709947275588282793140768775901779562065858280404395865309147910041425349449370120314948875847370860026426832837072199261018494675460262983124352033622483873654076535475645570122695774832676900514806556416070653589778704008964344283405696937946280781738125481489790245363899811890523202605740472089605216719940351106641641466666936173851000821654694850930091658494051302256562623938669766325217154983263058839111456788027759209089993647619266253300110355756412532913310697370534341823044524016971617519179052310141572312930161873108206335546951731731876221040224825737197043416095394160047257749947925470332214133012447190467364683799761810612223385293475583901731569712689654369499794476274527997313929667820150525671493098929761862942508470969508059216940308050095333125870756920745292001267087083947004673384914043463909211595154814724091978214205969209034021157042244887140923198115958790917669549313809383337805927127145690800021520525501166519595768573815563259775296678792588858463553596525626510097357772814888999153023938555088237801199297911831672008828215571648083354272057306000007908422872919815674080130025767691815357248653865409605963414084842361737851879781104166940945008372760908674751345305865568054981791201794167128535372278327107987426990350004329341761482753622558461741411092477540620401322762596768936815791083880664569402977365331400534019768472527696888423075184593646695091672565842359480331379976160059793338188581894807576823212398228202634395656219451065470382448645433874138349184955458952695461879359685046474357062288470450924221434847264336746013632398538003968134105659365311406246971321271672402704930086721898860587656273041938702733416513528504656337066625868121947253402856656417527917926251573839275448584262576831763742680223093663878002898262780441752579704236145442958812154697481016777535489547005363253229897691834808541269710294768024457027571872418356336526518892164226796203277052754123173261128772650434125636021664298390162778775799792598233569599988082182501022591996279685790139546622043169634640620553660046874433575612804789393255204388200484826177642481567474854489722331148761017154709128961754648929616039232608321175553805830250602804285784236953469275604883610166766008768072414435846715900227292044926692883744100153658975039360309301423052878105033541581769142801652537012889366239303905239522100196265772425295868831284292577414381145129493407979715082907287098902821711449675738592979682903344016624077239057654566612030432280347432965038318739739453854713848032330859669853410889450966163415012119017667827190140210704784417238685809688598835251509555302598305623699749338971680593457969135496139744968159612815484900033878872657852204854266794631260423987098768714920800586264491571217384411571613277655772661536796946145004719818734678217215432654433533791032109162950037453956000912029299086425595852341714604559111092904635896149568360700137473932684415726413508077028426952096521274581624635126360504502633471789357971130953489807781717189026639571042689580113395512900853918099360013327272349176912762031136399475087997630252934285990865295630595633832828007799183880582613954148306657264980687753606894501101318222798961185150568803211310458330446755126705267175582593484153400488542843616679844562133385020494126271394411351396868212511633241478283646644455845898747779675843212735043142459604605327702755081524209583682725211560149151268518129502062268590451043495515063030399574776414299267291260377053489190874944562619659901832500443142766953961321629182607632025633189826526284487700040707682796274477252859054876192935066142543351843583231299536796792312309245663816535169740771709102673907729219701224361855322057361916798406977421161877292159716621890534336999676156974486540391246474465866724036802888066257135439484503903812767703215774309517089962439348774272999730505763606276619368092668381490616702852519242737366115103306889989285508399054755224226039550889471081058907589488515678667114397310052711163098076124310455884237057218997388715846133859618914342607895503704274928731872162395897917182880304769290911142980109765657979507871755878054432530298710114455142747820248550731921580542919177222938299511234962338969249440722857435498403976800106280865617366860655575286302410095654514995942712357219275329333039931096337597878747539913129197788542161577792505057846600926830567119662050330254504205875012474430669946763764233165363606993709942344751354411606082805384883586334504795729023689894915365727437621270802690878911301752106304943631695456175669947073272878174929313382519985789661569805775745620492733468159060460916664750722283771376766322033313271657116942578386565082632851618981402201179015849902939243427475278573790896218349888428871133830301141304254039610672246966905589620666011107027100633117946573118521746540351487135629385625737240681561262260127298807011182212566386105161817772692376448191727461835999472808823675163314352998504439283443652222304894330864719726451285341960461542258840203862868642112467855701492332739765113761992619349246121834926884924020083436937856967391601420694081875784657979201468162283981465132632612654477749417502728480108296099552193956075958889821421032524820715124990773857439489808352593380621763550310226082021865719427592643639614795310490155698739383265937798582289576822629563121523589959319169520101590740535300455463235239427735399241740269775042233086797558108665264456723138986916985124960180554268386739703678378401961294698230161852764333812221765360182474716076717702687379213372959679926603060479343146483675890391026687275619590658392029365595509786920466553530653958355978135479498954233807208696784217022899607454734749058211806380029211178757143493802544796109410492194719316443053861165468808713459385423831306420333068559684860477406125150322078885789694038904816067941711647124883022078032366772838551052144433584494122333632318081040704571171878776881797928911408071508048045500038731233583543535315756872100173934058236325816003714269945410811609493151224875342221108791643319922855033357079334862203118393962621943485849095831759319425664868160107175234225834822329610169555875837219348113329473549667669697564848785291754318551080795480530349129485066532625086187206047579698993586940553987613707481430963982668714302931773091978123983895176080878296756251284010045985782303393170875063790709559151733796916284678781709555219264381135611427698573373405281888134437885464735958698364575244520846024054650982802295681368420206411287055922054248696776782392447259696506510891076088387066183619758126799002357972183082888873232225720953719584489621161981628510919759056372906225472568018717568832877935930756691348258800194300435766296802245071808872599215442554560333635138268810622123262876549415200665124400538969460819626042002278459467159329863382285669873114424804312866279418632208815012733376909267285414301278250497408978660731209111692533027415514640627765604053886168406526800148055447476443694713389804102253518399045462860969499730267796255472940783925982182601063606190631389259567263737477192666074221186449350259721200029758458716982909303742216513686974741253622825106631926328354868991040405480906430449996127915296433144624898437293483657169922696758819469342405301523743452698819374863161801803803987022673589903020378999816817011243974274410068293198054038438158067682867602154645866018144288602884996473993747604163206592608909007625800833428245242256670169320355811718131606282206345795864085679592348348909751708063137952501456268627643920324760786832721444830289599772319738254764293441778138294457816603163352042242097284174302330374975143884237207719425227341779903917317251787669349761288159106074539633574035449337740121955662842827417098739669915421706114444506350095435472961367344059621224963297263656706809499538591886724892770123656106530391822037085208468127948838232325416070375008912179668077033691168682176100423689106425489855718673410339402543323350655951767517763889848873801551786824590733577356517205382044162184799980769942937177424269844962054486215093163353975648154527475079061480525671082357520144635068195958282430648114415627529372043736285617277266155921461428707824225975350640665621103683748102474346748565119610981052536505230464562550346672493442954574246588356514430284148992277836642914113186329894237761832037962739126290396346677873141418821329664685474520506222921802327039163173007863814071817180307711118103453634960483425973265093405382552351477556841638771641367197381701403816930756505299431209003725907281753274870018857203977494624681966215660643108218420977588344439043025077721436004353919784419321135812475615895036225875310450129841523779675910872011659937796819476597378004449191300275224776447239323281508402561639264589050015638018498962144317093417550430603847427696456966995089290139596150389186383110484342196782736983387003948259911245473029355282734524773630151174921872643740772316466976214402989529291778055027320518398379259728179056573093717240817362919019158369708702816629980811585821549180151750685090792370726295371632997238972190004920669105900699092830645385626973604601213458795662144532332952944901992083593044583114554855232528678580457589882230125797355943265639719230888560537417706184040236746642851745405430666419800762307630127001386954388378419706122559130133873879467829090817779007147928285738839537343268867292097051932926097174095806063366367029638020408733303687893464263748006272632320381296043767408185790156307806072875005942732921018540393475901256830118407881925953448801348356316607453329292416080945103924083591439834714282609229995170536133452540316273252078788406211929554129484036324303847349311769131496832721012460007269871169075701000045647558506496348616884402465612756264258334437033137775465693480354259333567424468975487892293599705510971584091328235644221844812486623087710472199738380270846026675207342711319684455680811000728829728933296207165660319685261189091164449521769558311574691262841624136836190522209195844105002068418036797905159316786255706245985034845725525192319356909784637186812196653759626229091925663152939328694847619860960160220037448943664900620722065634277175658695757841927996655741130286801498505953761999249935468069028429065664970171789740756329856526661184721540815017566317649323294527266757688834547846229480023134738523381370685161792144001873698692277827008105393207554434235912491867773350181862282912783681601026056540986521182466610736418208793140665518281589134782175466874866463586676265728896513249156594351178646034981578112899350466715596452940964621577176353647534737073289107736033853358182777515284733187723899541067473237585967608393511727179473638677593693241409977777456396485069682854218159143602194882441849902128920748327826772111969464859397659210403388847547285975874176810223932269873373533243536092146963341131556683297459930836527336618547327578840706364378266462688888973505278991218537586476426945192086516670442043686682931353754624649845325310314454410636513637194781183336896672785928677846573577076227488134701209610787880599337867523950986075501300143989245379051673237451697531416766201485075585823399404972390984172662778310366156699868808525487412116397197987820327542677190136289173648781630974070999038339679381664168259406280013685533647677745529313602493644016500131131369554490784001185252288002414576513768887812947270411482485467784505239133177801226532779753201661347897874320157682081731807101082123632726003705590127558590068275081488527274425649520137424191619412114854387796793702182580575315182447235030698022865838349537071448175803569984024934692594369402505091824481720989065986120986611703106175153350925129741066765009392490773930684985612532092926626153384427989424508681725649044675654091589107358074028425107550733018236064655824040310065958869308000460754929126048136274511523322275195996103980780005880827990839050470112556523902942129789998101741946573140233476891719088192571671841488318729183785402483653612334828627707483769681031717002943034836710362469005489037822787371029112611579109743845781168214101646358845575568241937313991642805694954543431962190743894531191481204165413269891282750665315671740036000664109172484631119140781958337716426697817330313169237290135262257646285163298484010791434022778327098989713951492340657653366782246955431780254233024127844900769135753163425757406628491355865194131328608133711797769368735138384258694460523870773057194310825632221277513665011975468561462414603444248952191144815175901026405959118890413268800641971408433360589642451792411368654086239201479405836120144947689065435791534276742182154549562508061576226192986502707604783311327652800188592363186175669963481230361984657474180268479602201219260330013389317193468510258486471794207134563370665205287383078431802749455744772027218881789543978370821253571829783518581604547818086758629388067189341717667836512720807551690567805733780926447282615915838703454893316610818856728035616032189650028035017741343331884114091404771288499833939053417983336242295532593227239294315526931269775402062055194888068419409620771291799724893404013372789422071596660622141206619684151703595658579110041832917547473184686866690860909994936299918618287184420015483009511239547617899924200760814475115599334202280703964388706891294411797487689499233832606634695695548575286898539883414509751219798514006077899636320729640633431963151188624343154663851852842259333548500320963339724332500207762434911887420278380327214621248318791593554185058243748368197047606309711491017133665842635366685030219746278715375771199727785028030136828724763208648447719031652434437740596816693515271297015388894834755132242577331501162548407179701942227746562347291057297059209792923035537155146546525967084230464024244817242808467239169966325055155742139888213565246306836921283857417560169277674879181159133199931835949430432980915926326747577798440697462061737332141834446867446806401530697788560371598306824353586435703525332652266611914798332205034997400793869342377558646518501300066199475820428744628008932523066038514603275001007799091702021930284773456317077759358460458175161563917997312030504354748509838728905120114164914639860321355022156163609044007052793187449355558125374793956276684911125682425568696461581277708867673595984447759966742620471092120749985429974291939627726844324746230134440812666909559452853579650506350746936088156941353270568639908882768371560012464670537793322337111374635819300719617437912170759238022058531846586065551744541316088687060216213531747556265241934463176399172161586822630698164931172296129651698011963719908591228802162159184374833351238776616579662921035211373485697588459769706418124569889076182966666448041949088125507324408687995172014120026322478557797561492442292037187967667749613284187692245342744191626117090192930184845573079386625105248840385108044633427071902632401585174097337534422086346305903981184551288610884666395548903741921348598906442067242224118357085942332757074764991693008364340650226139848553377326234397845101424682237137563057361038710474254364704089575477481300300576896018387771740176942168585399493918107767388040164392886969493626178799542686300477236354172468560376624689780085714317702367556397684572840246438876325635292945644837870831995477631195050144445468389356250420707118896716867122590211757224378897050931563515802247770243089654783100674472220660034521634705451647592081717750602645726453281098138285025823127266003826668913668193787806180174687308000464750230130051890763253313458648307361522211017131847871031050533975173744835049638806208806411385188581419736415556826995251008703093545819646102639278545900872837469031034711211854013999278286522599541244783692290817401326003175434387964603358988308749105366063349445345432289438529938040130369566777525079594976911192173749369693607153841919813331752372514187851645584299492842894939198285006425471634143075552896405842181765729737049845231314664269075658991064190164124336891545563161507511166007917831162555705490206009287697775799050364814637856648666500447304609934728138381517633329392916757171780338661194658373274110989370383571271399081865125912863549454455160463817765434410888048265881120151698374006609191075989790202706924967698025211896702122380121580524893797668072486191066912714889058397354085444801632711387025024235663290768158813797551686882583662549306163969017390309485584520838776165106394105437284678316770480248054690943147372289456678966071824530396429043523475148458719471041156254344960246922440523973880604050378298146405512521084578472535818703836434459769333909733227674583132890170327326824408248095869992024365891658108684622758670256535870503997254589356204480601041706033899201472748299288167643804859875122885152475613383344529101000584049851958286905739354533564059586354137295980839706915188345399689222994607721631861626507040222126918557066131046313561681105257996222223607783788759684819921458728489268985924317585167961794584203373045095080932171734978560612532212678164970369532640460088675556717005156978694249932899692816053826795164979826886889567467082338229432375063952315709144037070779022095642808874621964398477627182739705033549243737495460402600474246965227262091176904137845567249140092420400434450665099009158512414135789417231486709041897801323038857429577626382738681560640832232026036142979049302016134716577064076367073826680080879709399628876114663339710645307684435488488439166748921246981130199434091868206756015943636168449049180146520027627892438891896617412934531483298983845549032978801072490017828455257141372984603735013540888350894441970445901420242417105804183830305385623833112449351422321170290124335472037190683150462906858530430301654051690173305069308845952336438022616348986340250644035847624122207028080055819373794184600301200770418001434971127817242353948656963966615583449125860009057663170926288732518691118058610391388532185769267506377185150666665566409477221981240427768801848096832486945092615331809635963448793967969676189234766732774891019780331150892566227618562619792561286079223647792279797840685327861974088061367245240076962745667868990230292072030360753582188174363622628350785426182646118382701659938255431005563472223937555688058499016891552510882898465597923753869625345110482094097300408463742758322356983033432795972314768918245930283712026325127319731593430059014227316125325605329098600702625067914460704064929544610436826098896953478093325392143444061013800437806361172685921333850942607087613996171704768864883391002268555050741402024218621366950279639130090943583185559964168887339445088683861190143768033217214975256771614372646883036393485965865032174794824785148801366177325908200756610515621636446732613749103378488097226671328545333094274616635723976641531278173471783123523745307366893147930087765225185511986427984769270849139566538134015745063028367289063740531964403646679752012125418834897752227600944785267258802219081568370249654526875916099396350349525196154975742792240916665044025909581451480289157958301744804694022832683226626782131406395675989722211329410907528181616303843471533170474401171425844468967038766640476951843586505919805126346324217179771471815758317788699181787777059328563598130973521308278059393896519483453022408192102739955860353468899421796497063864623549428961866740672025804459521289924163421595116090994782496539063367646564371869167279252898794099819616049735647307462909753334802406453861307856507672089103174416305480118427036888632008745641949415160674856585679523878530390313708969033451809963687882448987147975299037985437504681549592098431614687818279011370487961891517606786980637619442037009062952820965748533697527493969152208481657404379863414378839531147833299838152443298196853598675255832617148095461700614780221213783130909243364857348516241502825282411417876207720069331877480014038733762998667530110212097223601343893283605992540277360749887967445129575872672855519107038117939784226765861644564711786446149450978231089771874537946285169042736712802111532681439642464745886927129138680128378726947014448912420983207143837625412693472907019326416610554583576963358861566946690170521625242497360544466841907107615607036621416866696290899214688817584721914366378356965996474847967745888080950684532437838300003181992717513814870479004504406672822486890737978702750351416890391787374380833394219891957616644800615254235075728000139702095133224840659143979069835290193237120155170678490783236593988068739320842573337713319636729736478677757360865211776591355980189845028842681215988177854736369937941382315821204528314521097353093955747578442314060707892538548623978147523035894145992747609432304195861596754802894534882956546859247795564079567737605484876663050776432398778128126454982514310640819050389324625477328386762446724132608236118755321844145925899459702749949942452747888916015642561173120801771260075169649323960827227142903609173590964501136090474417026885876686079394720126214119864372232503332372644420692280753207244138977715740548131781044071049111017144290226758640040313220132081121790702741243206436665635068878949828177784393188622956111799637673014504688984876202106208047403841354925801196202337027190665119681764662812490493038217681976383526828130651707752909699158506326958024946884444138901181675901541935479587681264790346270798478258228191087628914995963634963847058208363070918779022600611064709078226049750511367661991258075882331736152212190492923102981113820678297390239671708738482563901018830251803929351795585484713437081873816320246855615313700261558013713212224528452771209746689746675322930626885743101595752871085465521685376032984120440061643779174720338408089358145950145208074416513895126637642509791028741086625050315365500814491194375068214327513399619653100856184136225799947609988833493314883666000602031496364558009949671127006628588921113729360753154051881386429457209190580215625318806996296397537443661547983461746908199563674676869765418193226355248823951393799103186187879455317751651124591122493793780598938057122994319548241936342059046022509807996342638243858160459219696965652311089150108253438822379266085869415864053023470533196411653154927730695491559541336643454491015386688890817052139409961035148827522873799087382950422988301109750008289851228922294554227311927228945528707614292285019564005113185909757915154741354575205450997937019066605982540021155466087697859086381982934439382850511789786275789652531998360487955300135384916670303678232242674881506888709246958603173915445842851617331519307577246594261557858231601491709482717657630996473272990184594800482766428506569224545808456854827053933784480841061959579804551964882336274724522970806083872807161872546993163679626144957612506407829319961428432182630013482248002033895136486667531038407489460294657874218656127297129265789014123786368615886902048388115180609749814065220676563302365367337125172338350366650422691128096519633492575517386978864208281465218610608283937330121970457000128114841991252908471841829975876655855313209143205671988609163219033982175511787207726967318218608704867413580025595182076869815777366838273653671446428714460779386430634441171797364077982034601194077813060323507606582833901771924897513670884365159553512417102894483910324199748858535012593197977277803017076366888591085345912711502132191042096594310756637566269575625930793323727193541752935933011492133550117745731110840571384980818537286472418718107463212204042812276407445873729308568341960593910053971394230788791907090992418012423372545652321371098800047588840054380429363072777500768987933393078772455780871033041561744664700924450020044998625661861293154327692518798293500628666576937359429934359697130071290844538215151258789212687424851474216116977577610160665435806248271733406343248471223823532026734035585121039206857673822965692964553013990399769131865969232137677965335341057044696263174901377647430105793209273218095901037840520228748909777155625202976264669954804421177813387822508700378989680934946106430623204033440066317187809006629340033995497576675142826859263542003395553140343968196078843695388580321217774383661459195849440666905603574501398514769496896848369821478724671193198807233445187315022934863007183693777558181944244086759549688372347842420525851366726442603762341181858526857223547269844546243300030017066425911608141489015126104460441065640919119673622171117972758247001971320385181941845508372015420704356348237704478115395474361711710035023805723170165726239669785860041451232412118637179907328391427157000926932144272569586818271432204008290550862348678128957406961382079822179572750517800473379950533457442268369456694096122260334994096280877402075213778830354730533947926941699464046061809517192346484433700952894333061517930667224140524381347030017374813455769761226856893776893179106937365542890888142220085671933548082144033831817120094787694939425707839402398564677851442997232210510018493542506614793275359792948478521793575952116560117589312591679607144619840836264462277863117858078837019335132721593312088884168224718076130936531168630948089409428195422091400756814397775233219035185032980994187011534116940091571519990830648579257380189585419769155062830370300932436857035099286789681471857952773858288282052362799604103617086814854482211265625512078188688465373309613277768613317533528787712330211896587864037399878035360169439182561000722132532566904916656179890305497777474165742304756898483382520553686112147373670122335075396369941289449645090847645310423663408355826465017294102729523271990444623220464445098429488058144197848553407432576144523244950676286552253383086154106879114928455075562475876669034149371900105565505666481504228116538770350731029652244496574052693175465737268234413147893093881122723278097262416611984058049814735308423013542399948806779943749171976583771894993585763584097736387182431506523350763937398670935537671990232464833063329358340606282642962081553396434384298965835900923593353486678386088257099402219863753374870163592257777785129629552959657248917016075882230434728897856058756319254716130519499349843419640395273745412681483664440192524384989714004434829198706926712000546088819720907718300880505195070531932996994846640813884222019102676640965217955341140232905441832395492103769415187765393513492442019893702853866784552189436995082453394005116161069864626347548415734280060767462755740446612154556375211744370953899429136945939711185892963331930853498754505650676931118408695053279755169558344159162502226459362210075963729530147354406258011630362546225362998449872896825844017933294559832518052878392940707007350471829134579142383739490090612728908049129225904502371807425413508851523621968036440839641545239475930073459695997980172775737923122944934096387228257331427711547108891102015208707087556671922591632062156730407620740487977215755377665458319382588473784676042740228062402804126001312196942856453092395941619381253808427196277355500477606492931208042188714139194677700180776027743004235917303557534754376025797495551225006334670527243356216564057905370807219898055614945729025119895128904905389709345122811804641248304993798129991800803534251356198454337576805179656850438622444587177908359175184114834818353446455701600948951012608973569638843455846076836035629513543400556526433395261416646488366348633071248488818583936261665560058985687938656236590367497036682056672139850391388017876775926530814656856982289191002077311021243982344858499344893892553019971655535412098282868234380729340737677019378342948745791450066109771440795596329478907867015099920799194998645870520712049494299892575209483075712541955696317639630595445452626356443462494290663500864638973810611049173162907462455308843793880057904817731946020545203510394717008191758718766990719166438342094556145478828391851471988530710437091226613827714794073021279513325361489688079746489256081689143269843380968915895787973068637361088220782689340566914512314802985361708707023338361035234489215321447212073891345728180900921963658513839880495309392967701873361078389293729025417558729080068271640252116012713957180610032956104617560901783896714392945844708654908192800238758992720496811227827275091103146982024274050440496069096867702405534658337986996117919746764005497602354742214672038668323441234067952128686056624865692576908438801258156990242099203154032581211499199269347455803165368476773945569732646741078298674447927200575772550733890914403796673676308628979955228760802030446932507068323420458334434716914122242457584981533593863888778392871704821362996561431195704348807014343856363768237930704589656229484725920031705020052472617556667552453813895725330695119586456708928331413220088231893096311958199957121434683909405089117401663348591632444437242328746436370320720792033928235041390544424420602439240837256120482893217687050126592297330047828463720038800729507620851550970130793635550086760399285122106186071709719896670321742557498220881271886850318953820661050872567853851192794790172061873106422048333776348380741245203713670406539100899986623256261944865337600191360530224620775948680630091352264861418064804799105774404164566320172906266656950279712639260620777067379957151514499133214711467177184502596673144007508312691002142467885963841915724635592072537296615709501466386899510378799155209206736660383520806138238537026024381450829018289368966237670821898951541047893541178897601617696991995994486335736050001804175825969750842735011403546539800892882230711285454043440255531441802424188431788658216584691707766355180502161874834340686480895984673159016999457711598927879719192320056625984251361230730587875909568737471739875703558835387409134475284866659399587828660884652299680310768837492293668131145462459238308469486353007843962007262165658602608396097534679163914619939021032346288359390447948035236946785882415486333605352349745338185894111835308406740343256771910282490793493012234176651906329049528646996294856205881146260956836730682059810675733058703264283749983823692951787542472614685364869115207714918822262823996211210765364268289123365101477525079371420279564710867770781173738138664222029913321794275967292463606007561491308648946113353420515889615248523748048156034018566641360730413605632483124141584269471572048748189952295252098308022300927833858620452774528838841056810114074664308502792670173998708991151434223635084594619752649536920614524541515656275648278816979068649236188363794796068422770125340602563700451028644130168403469649556956872708070551247985262539983777497525203638291534950819567354562148644501205308675348145965194823470788106094944828802214111765562627831933635478485243516372669254749017251117521523563377601263506111177166343868683094392580525707236045985333380349672032720952542264665116697451560758968108414666326398216490882181922549592357921663127766742158140108178098550927620678161313268984502469617269333139466463159068358655921988006331907901712934979593572406671600097678653474115828662745100678912001219215081382044977401888270782090710404647665041535187218475445356945922614669430161572637467277127633793511644787517649429974798165553800922155960068886508959168108049739999800569149957268967501686551308712926123441919627783163833884188354032284940424183831213441249249996200574430387906332942109146119712896556391001271534742905314371235063584595825246356235650298087113763812677847325900835772588748924469165320898581499893768893839064189667307158672196506286823379082497045918898029419874737440384907782005495792651179356375278439556794088786314699029290571049786496361166733545619636706990299973224283142394625961084386632566720277589982235861394822246337685284563042269369312376477802931242963217591358673210270410647345518179407503836901641560696938756777425238234192927324187305017636157433534480046337723566768311712782179687441540784786166043350110967480853124991212872337788135135100887944812094280086621665092319419064189747908513100044195187887486940091712952135547535274509317761393890991771176013912133896658815937689974359789658472275199340112934894819235928733198780337666269474941533811782472749933880753495102549186531448355593304987468077235355250396183570369986883096936653363673004592959874605048973639838657053419428594138544016067909306793118315423054189674673120585069688103992355749767353463940970840149411275795811312306365455474904833891238398480231810605140222598837350009554547855747234573545530522182653712559293378933954556904657881317129422777977532354618575482113917594169171207343267258567707719392953847303787415981961169999062517898724401111773095670125302474470657541347556566750078209524115513003445480433066129846822032518260354821179534323865720811769195206103691713393047953115105935595972169428697083272416114915796470236242769595623344645848448887868558781762067647565963475438476557195130473329317373153200602546566779706422735965796450658341123214822670031667124510903081057698655654424448435901370901511215588515715711057927127648614699566718706772824317076866466781165266259287408960950878322521103788201227242147861781186732676170634256137912056045348527041840487042017847074786274688026251870418041129648065097831366954345938953718157276165712553242982322975383454382221927029635732704513100031276990572261289703548967683717868968733338358952940661302434897875728094704642280591024558313752159008778500451714899027565088544248019697215785622732780325057674318215745859736724125526293733057690452150014879439247964265367205011958797807503180332581284467015129540408080643315517549052696365919832221887502676868373382698915376716837884195471741665969125685370255182553633377576082548057748705989081965735283312887795472481494470035585913985707862299555581562225830792675653966236269538517137923673798925908983426861036267225614805288467705990672998522111489976134668896313938253732102962551874338500044090136619625980668574903866681388854187759500820046420228084329474598020895769195274206857342388287725800010038427751015443039099230137026725709526758590510939583251503242294891523384193807445888951780609560459697672843799855151566957835222503537820817323075445742771336568448965054628988408068387464487295742358650559212865299997731133067598787151161571528411567928866644736770226482752084563504787322096640527922163055711513384278264195359434151759223357902805546715513567255979362239202408946691450367479426504416818216599114455444073744913628650408404716882921704329795119649894721136194198650164885565276629659776009106943268217886314118521307269195455922972525233145543042945268447194069690012625711702067557423420607947510382991461187362128741740032027153061567847325648215998223017657923994476765163485667817549997461680202854298584966843757149527875935050905298162952945863983350007600858682684053202336544443351560637806150865327104247951489895413515034178229639589651353375610413706339178094091070687603281105991571658782645186626163667277149679379604604253075953190734104060612370239277658787147460306148069413952899602170273049198911873517687546785966544455705225503648167763872002909360980722245271051054028443302743058259750679288912012400065717952596797695176359595025684285713824210281427839892223206179522147632811363500461606660018396460464937767811404029223472974136719196661930800548268978591025921596771228670086504180874910892061800549699464587428652386417060608931437502943757632021807835767015552772671514016495666518155503603541947796604394950436518284205933925893218107179008372272960534351653133246871467840696322436003891806524155542046677597833921326990073516556527820483765073888972149731487476451036534685748352126969358663478105145959464831150353131336060433530342404359175324678392697274484366965251538375154270967279437765489220141001977783207907552568078592773235502291286046641725492938896009672683527758897385760148890660150529026860687213712879135902170117077377596229528024195526869580331221888566598007147328701794119092830151729346795325205087001450051282140726489575543966462329167923803560222388587342640831436699908728456480742001021037532515537084216486916103943352919125537085725051358179619518512517612641412234661057142965403421017597960183079546494797485330189854888896462188603182358666617830767901087108288702701723749920362072494521211136885057987526059601565500154045863405577813312790132138416028234679009060431865458364580500356716296296481999843284048726873680488122181665897153056753047784050027221134331578918370778739251109559339403387357236255523805215532743989863068755439319358746389582347059396142024030711295823119588484767670663199164332057466269614062275922847029124837578905963521105041650348153638980293655036327666249489812649546846033167446620762106241334581002647324226457335621665558482535461895630121960928334499508014788835371972954300077519403862515528530076659386174773658233268206589299892936660486303556371519444051024439217398720294472907846523221172522319750399900636174253458626682379527110740869288266482759075694740644262688924385021185633255148206139692799662200753684173829364312024833218076791914912570085229673182117989396880511260206631432778374696064973806098432035202059977019776678530260072098459052838787788580949443781710809127684643878193764596251693919893324430289603921577311741876225916593846677789661960587452496035639815236281038849402270099273325133860238548441653009083909635120850123833133245049916124377045480670334012383917199536059516183101083713512189153284792620681779079929343465445780219085296338503781831168672628518887535255434116493858663792568937064650333008562201306947893078565279747635032188800128525784852947283963568179545877856268656543444988157545968152349501405392115301153445468038853605155820391569769851992260886683330600072213558803673196941082947473009450869793011429852619082564168403716884780940451279678266081761447516761122427513413204960134206842103318737101075340569852559634659492446031175549726618304689315640475360132450955957843548022621766198252315483682296556205433062971661369790789015683734359121416683076707321477479404459345288518639073902276970998770701558354741557387474712746952969987632113358002104821141976626910853588849009782395586897404422399673290951120309917827325086260098397446564617980896160311773949354545452324911070777043406439074103163319403388552876781054447892665575256318047839644693570951840150198849521629738620069112297485869562049645774026421782745036904918861360097957327197007703045814845314863777951839243174017198507525204499674701808651869106200026859081819041790986482978365441715255434821374957673387755834131721181733190669923393357831953999387859616138079780282835755135761045649786007050237938636919323748501680550599898664522025230824111205983017480402160768816480600277327068954400579597198321677219554955901423229359293917392162772027478730511342950313600129057418802533998927015191516554257520563135741324028022766335186545581109509065585190666388992836166324916305150326096130348494189879088894143905328637742409779949074845699550171492666699767207585972724691913963095397829618852371558109667961571053703960829964684525467760969878791686410021651848282391133756685646121185039860285087706596578001468426244793696181054857429272704757540722401790978661278185195478672753344492043806088388870166977775624630647124739501926076795256165928490545053387109985268467475438331985723394553375040768238613586851897284691432690065746672239068485040167319991963854287486661859949192319662983007475035975646946328486151444081849318348679597076201036125098281640348733959272225972369715382937192242673053029288654493260655310926343185620274217277435353237143191244759199487693028877121122147386268243715440943780252992685849790641283938498706396503516757662176491924901539804771488872513245816490683091798385394323704122082256944986856468390127633253877076136655209067474840454645261138209443013698145515569446086784954809805499652111170509176354906344769183008646224905588690824060695530262086476200865628516076776071319197911138939843176892052875421892592892620005276671766177073041809526391280323329881612773141576568906197671689564654576640445684402296850054372975790163831844474838770225155740713181915321534330472166980820340711748526418177812509961262107804563698126216020718491008307661368155501123956073818239175792979604267135708588584884643975185850551678170629555673590591025408178002647085155271400201286118061240778458337916603879547344976012860826528439340657511651991584393822914381409651994075309909226332576032476901414743550473729116373976689665871333663887998993607194817856760503822144325184922556066970565212920127132678621951814827243837786466222200874381523807276582037862700258888771053367881410614187204243459179551150205675918170509599669865088574258816730746269910433073980169603482741297262918848661798723386852173239643500645781634988775771438388187731190179468376939233517384176128054672974501818924865666618295133881978763390373706125874091175708583283485351940620067510684248164041437711798161720732712965362307980942373756271193701985337287470768241218910634644980402895895459340022148594597416477852177238009490679673437509346723220605191083637670926242273768958275467015936305319984435581743233082130851804540930092595946560665908313078530781410758554418627415738113425482384751858670704267625103537053223258499116591701184057501260131067559236163849107336962305975346510590384567965462015181682763264798459822678642468700405121387767107130942497586469362093661891536766537319679297725395030834931782104073932208746059563081580782401759307086327632092054211342120521984977633449148584375810554100757284730190480017178671481655944989992456035276411509080921717149794870671110716195350969537595496086868697897971402408444786125341706554644362607848392343173235709573536625296750675521002382236975302476848487946387486865835089066535139835353831633769548377406287656925785905585673473481549432365907283446954982625139980267107107911697958597837719626676864787171489462613636722752785004845731848137232609606297482310226187585178178275336643781065945920184087506133289235104125305775370531625172790630736439912120328370766512358381113249544270617602950551317468989877726199931079923342490580012582103585771983890111267612861430379205994079407352647756516383666796308663699412853005175430394446251315645452926311443763004021594972812923587289578093080188676713281024466399459677408698165886895837481385119350697961757228305239990716272296580911873508867465449786353668205372539031214646193222581204697484191686955544100508393897407756491017314945668144504631847684902451106476040208661705329931973200518020804714229004589027042725249395204685164526549829388988193495874061590545401282462982353608494948678593728522650037327017371325901742235262734795750989908260496583996784954424425972374080138085956445448488938576347006790314989893080539408484497844761635025377187444644098670662330278363657666882929846359419830523096762771370065622822215945055144428901166364661211847484935568841914228070479987940922670152955625492842145457245633923156093675964774437701279970018823076527347696654507896984213765462468174511937106085503260591388871072423379693061103269899433591362006498970918063786549061596348222717990554135659929480538506468406854370531456232029669489571203944921724311359140517391860894434816075987801133125844470377350489107478775856448597914338383925105329748280670243183143347574862543546386232380281262802365152724194236749584396172726206425545781490722801881385407051065008746669419867899377705853030411917785415481194316662982707007704245086100269829105111170353766931727167824685631353380505337462885889737223718216377793255058167115692763835646419016926462090008377507644497635404564873658769397705179503023229021085905257127346523813706568898748842192014748850696772855264298262906980076453462983652703915001245862112466771828000409184178962417573552833993703272374622794235823721330890302385629381130717446892756063201162700825926644727969391458172311286484276576576074588787037631912614263574307021796109681947429858945443771167895752981681694586109122404810141722995582747832989482784254440418007326393342368699023083502269607247800682141439249000198103091437482950042447153999321400738879427504008192043196639101698591082966695944109829907635386838352909732801229445449712583168204210286099716709809008016006157585710372462444653547887957751580239777402744989440257956130439063577882515439173872125315484784018873174701210734437674833780964243344268874563892138518601779294854050306116076893461269791076605236727564243578467168786477240610569234765936567816476152978468923207828706221577919688454597211665681341243626377247976674510097740465099556421507352571430370792762175385349701586961659462316717120595224774167845306460533478358644487628541718195485156569954647640994597978453576311451676814387723784439714767064905808079158169782429750522621268762328195303232532539482427636999338695755300761922446904583249427731546077506406064728648117739827931799095226631458454917739485526463573775418396233686274511554942995889643398513714084830002347259611067482912960743025036295685300579623989541076784481161304708425047034118750426282527646979726045859929825078813842760429497059109088567194472511505273402818820653428884370708395559255833180357473764331108928634301779761673540731987727058276144118427508865580870764572214720800207884093809518749241536236490149152814490541111921004782671964826037809467904795625441172216186067986780602912003068112216005338029705740646385232644100258311717161943931783843625756080492756788839996026606405294458296065855625288942836610456448065604151872918804366730100350226991182187931943998240788427506642263273708656325727419695554296263884038480494090110935739879477760566837417405905722085606858445750598861925107336686965734172809856961424295836488103316323903095963946203683553840487678669782290449751625090819016314329486380328185793618145734712402148799334932770966435469048550427022725523479759939917928116674433916897498608753056979308795840002446189327629135153646981947472685186835321293607422839576620117436682496579330362694981628659793923473957272276549376122218852947065117084536850074284581411138093818863969965967758939353631329124611309901020170973504256673171689087157090674378979943067527070217068883950500618899963148602147636660109604712661769328146727791800059707892415474743010229994801888543812259467995232750271200109235602599526898280294318826052955561418516536484443969024674776001078091452447344538963355736326244769956777829289755668813678788151876970393390868355512816125455818934880110649071112635396201197172846502848803584828375448558338488517159847299450298646142443893854235678177198437110558962641213056736426401812792952668753700706168433022106163466121291875648286849213491205862941742254587968129218844853809661575332467019151547768194959027474913059913301258373917321377743044475238289897035483916709406188579403358975531668184065903429129826623636004727211285805540529811387481663188586192153131365198026029117760608747716490320299953236054911681785657301943539608626573841957409964401615996650524139978612447060676616960211330953361087739116974885100303113959415076171868879018536579546539526443780580705229104218951158893907933865071243825946560963691085152718410020788303181230474064266829813469063944132288985147818561458260625655879840446365015830320665292020145452972876728694969055728498995191118878342741099712428319763180397545471857530473377244610495630775931358054618107705748938089174919538890694250441435492251623623227372834749580694361652656445764724312126616465800883138392365811722138410562956387517336490787264313237054138040488956636369305190023781341299438729138042451585141761265806429301581989621463490106885168022914138419953716098339309060942819408012201753434845779428595838611561217945557533315278248041685604986027796773401802257636472691673357370979244549018569194023620229796741618680408641359278688753317752543843989567271035250826843823780800540955658873686785770348649011963655323020509298398741841256212420479886292988410119035428898919603952343019108123175822240792445829374824860969816887010587898608239937376747939030456105768767686479365582981117427627083577194655119945073014633954761599009429588539626294350524941237594111780738188443040080672861169897552422846696008733793862340389902177425469038279775530176663633984267366095401039955839688819091489817873796487361573312749791658021435415584855329434215839576523536609566100944920780189126919607544862862263859549669353835485837054734284550555260347762743006427914117047338079666454514229814766225694361201172436216125037352644696170375178466895860139945717990716858189993907184477654127042616849263116912615666418986539944724171362788347319778420025129708337391765324788887073743429530248463486171632345666638626520243458926296842541378239782881132593454243187500013777642372801763950459244247838984419620750136297430838895019620798699688558692276079037582431653918144914853531443261254580487966040323129590716287971303634677691809944401775712071609964451689911801750140557077263669299155257662359763331741534197506827547364692536688917670257359454345864619140298666675613978780799388172583685472427960066498890318306090748600905463695427749373944416756817281891613798862158358495939804233619558064315574865983326238326390581674085147051556330740744235537129676295259972373824519934544506991253158923911365552125862001845102608390468246557961012798459796149137009459494059301886777343365165871168733018452846038477060674815944657684078130154846427675290859076261761056499146442063446406109089244699611601682761688324607618747318239189690322215030900253944449978288602582778708355955811000549705481626722072396445133829551516025383690446502587225355427943928177733198830244696283392524958151490418457964226737857415197523559229644719147176461361718807252394898911296935708047456424144389560135698692742947523193151448266499397539514794439469646684332121077266096849957205325673093131553060399792365243828333834278607630094043913290328563407646506650418263384921640593259027548698662836508852933517651136693132088081294270788882908720533843537005674914907112779224412348015616826975501698300994652454056675563032367498825633940780723072606956268295684044055497243030909080714174262961510439408923152350512394697010031607043207706717621653881729032612655729289310677842233169712343975506568610187120448557450264299670918998500515445032409062594150555935011404166896551060917473842925850771786519891920008154706509314444199586722481881630467491862477871355782616534970377296704654273866472389383372671661830995747772050391409357782568101097683943457122605723144007910029803407034584595320815246041664073468151911998169071380254405450071047240630482380961633199156800469617109890949851556726365304153351465714200053101408159917059213189288765380371152485228847507965018261486292134651814094016287483930371128640552720203841100544833106959653651097582283633536752300382372815817356120722940775353208023009784851928353297253399815192969441982312212989489701037161296155431219700360872880593731377004382876137575337180088149630302635187030591432335678456653749144507498146826324120871482904316087313787867537193228950715039250958910678218587085002196226169058451394058834442225274562768401478495759593478602075640801158216011571066993968302267309224763007084067609922750526292901626392204743142595055160614975638494762626377441277780868920480613916617142649354851187281171984787190133772414622102217004738725975121357448244464534791089412422131376982096580452916229834451315097195047317041126253450257225772988172921824166448343771265403055529962784895977253495556422493205799426817850224684129133012667715015518795842393755109538414499105184146525218377569334111002849213193662306666569631198018683828642615269586093360489533930733724827734644823909950464855661770243696788046814289802342144147642262934628776221733279727554540514730375517502800687334563454613726805197391446870011841730014455613385463119581273766146236797091575247328773471164821525389145283743267127862722030141256896391579844409513232807763747715955867637767453726187612551643368696492132740280935347139790224401902403058278123902698688249022335075298128035918865750015946301263215327527938540925472090319622204370836781146607142233861151290246232061430268819989661927629506011153081777020578060676741469622602050173590891021838764705156643861483309580697095276957056239260148905521146263344372660893212179211926894855399093795639782263253425676702414260671204608322234913002034110914099434513765672280563607462361411250905060903588151030725944797541428245445937553943281872748751242556944767553832438766679880299544555073150841497457508549162488737320837825545795856079440356617715410141095422080820005159080658484580204492386276731800241745880709203278232166612445908014604179849263074417624050632875721659095031299573991007307535764081123238795869965078025219111841418502030307760793935695785155507799607188083455180729874387135729900898341233047864112694940447278415916174852409699321626835865490307486760390900577748706543059013319047441448518976105737723141799173095790414745387542705241144093887295245010900941392677677473334583467957327091430187702650814067371003525810711049271251311728980606965359865188950242518396692631797253010990611964817916001277430113907495086883452625669651425895212449828671721070902242523075442597647196902631880205676625565943738304710395149352553172914143393739254366397768153947044664282297979670759430725339575081744452926767616568017178377034311302067652709283715394006962468966317825136144337362691580977045651281335854377827942235647390595905261798614380687603782549034047170396447531092664901007574117730677036504403921212919481085511906094772385215354518600350842692555107648964648028246958283450739440515018179864641925697359841761572938680196588196988192438992737269519678099961975249126279663319969200422374560370002483779414478269691305206744861664630285667735469999712407505406800396210522141556239186392564051102246765369533831281105379808429604003957458957997708188292237649408452508583418118681526564067910918649985625577282871663187999639691975297797290978638656911567406628630997263115028180686252631068917977322994722506683635872427715046672768291385319057348808901233254403674887769619305791108995453723751002430039691862884316928650831818290105984830135562127057254616667549648150301273995909031017006094638239254842705342866665032696911209502301486732398733616459784590207714395965624203017167325729423324179558192651196296604840732960261453469541494657616654185622953244985343202356332273596483841075935825188361623643908361239809281699208366314890314378553671189171002387581870026631452827090148880377532821376278144692377917270675401167613390081555623389845505902355217050702174933890487085751704762776564541478169335387751385180752831636578288621389985864771886700819250504627058804525181601754446468950282341748272904675222383485836116288470073184363877368000774844428970048824971913095839695959172087292027487168797893943170105305323585947713553998026809055072502253157197993968646153892423896896712981266691348417784436172449056762974402776766390661844088443369057962423760566430855357002109300538827440550410646790182148527865259632967795238216525625825727029066382550619776813290358507266052440390514027496025388321713875091455332033634128038035407390541790028834923043649191441984570164500728553621884622388340834307687792675494123030861409596898817624668439608527322085757160700279403066897569452099964581700555718133699400739064753622351171326595675018712941596038716475741916682196968858306112972752912520250878745457808629361076084110568946193162766435015553047174513541745696805669545234345986553373601528044687763241248744796917310582226236648153749948476117868249621833897839721045509332503218136569324855059482981106507588040885329984270414436300557445106155538150298853305404963615734505213705839151761359064061586840750314058635611343550076747294061717185093241891119478849416796519050973285905797713908834989858979033152013390229134764280538176650609937135430704447804916434290236697278285811509864772298534536579861231540535256396341257179553395549069720413162240426082120498872108923608368472425299631008388321003973887438692834872500227562672267251468120997670706295253462463066879014512480456159260093048644601090942095905788676627361807336451422030164394367257674205881009860701255877865953154770922388401233257085739469442617553800539121662520972190866842629703518597546391005204261521774347634393917084660340870209944953609352415823293616521106239441777459426642775633825060811361497999464272173169582596270188915064167104536921706991574597898336325390757188835790725901794786512824514789342222852762771555126964703249776786630726926049594253077173356097603963132480780208432413502433730130957093992201396607152220936352190798911257453271012927907518191012098832210852302558257322027455179355986648089134431555585839821721562055751276154226793176728650621422053512203890293110640968576867809947323161890219740297158217099934270917198958115369716054013883650721878907385130410344943169771683303399946339260421655799103678052718357071700807494916626950945470417512555935910842339506672674695733990774216516783816493369030814930085939780799855752657520921709853146324656628353577245045725978849367314213795322679614853753169577440309517915452056519189456044123902979688819495625886295284917671596907209146423505727008872626426469466479796981423846391112330871737115229995664238525540797732063637131003407836624740529689974002301210590839448994809359299203881741972332356009039369434471554144758686498570136139522101572031707953985951473621795258730964497250996936321550093357820477320336174284481633845078030376176297045394945318400105191260385259634382745243061289091629565801760296928904590394513959331697428321039865602206089619582731620570542812488827274174722981315012912415013373338036029734838281943333468519702578179973724123222352783628388205389847398464625542819911239981330825430202348768497881521621251100778809528587055011333454321767498322372536856788444668858811971315893195873182343917569141788855633592349627768741320175091596525718505923688798597351039533380592501713710346680770829077915925573492661851074586463714699283422316359285284703848618035866605805583167867222640623964179315017679690553406612765838676431968037322245157110305102182592508951111305988904290986590490732135691255652126615442158628515406302275138404262491750513531396293788827308228370236613868402716580362665368680683878780957040499263806724334206745656876562729690041298543169384008820605919731647742277673250853441649452162354640400042498770830792133023275557602016358635488419596733154417259830374283140286339170971699219962975346140847079767797082441213316349870849424992938824072330030598641678177335000628470563444943422189593920845814258776437086808149266205278700891838289232765206519562314369033099104473409463582672660203496286257333141639457133157840854844417678083248728292595352126136151982184593696574448889567777068171773611204149173214386721143602146128483268262925987887255614115223134149793907483369071096919251463398579045378066565940140120479622446985040444629108835144685238883280047478252222347100044090801027760260058399918736488532106212085176727844263539371433883507446209120609949887364701623285213750889351986543433381028860077590810379693019063682033707484360716275248672618377594835608078912567826804513818429792135228460338949345292127867356532224222221927264644533123392131371038669063942616723089654160753396665579841603177592649529354569042283898018030342998490363639134654431317376582208208497255290096654052764430282510763054739285131749058178487632001268888082014486314742436702487370264687858152849777084821457087018301603453699028319876400452661275644222582022147753273747948600105554954034596034831968274298264721644742009357299505968472767645660030131070527165815214628321030051751634917052139158269251229930110179145616220193595605475821131277318738148076113239895790147975339495525313381377299673564233159113825758426332390958126740143710948893091143455396298065256977069806871792384227387345496659609389883626296449376922547212348351274363243941639079518388074740143073571994845131994828046662420185379196099831220322866006292829604460742787065421279024270629591890346459223003135451284640681768884065613901642699498547672123073364914068287025410140678915202483316203488924561784178121524146120402022778612385552444776875778805006357812835898319951151101149916769699623451261801754557875764287982990479000129574493878893770343943810612864755953300579580522108625877849168629175142376356045453151901574461253759852386788175916439541668917980762410900157407733710633005734735707261741023691026456881746064446945945183850892449526406628533155262527686682284289920843614813079268983138979199581454147064333539404125366881980414333537006602943685238984136443628460749014934521955555589391263934281843723847310449821279865007452935331125795666971375995818526427740458232271722199662932849868851098472902166597445949132141716212273485833349454918364943000473201233808663678166741386415375734423353284131162292372542342816737287241818793719457401546601123311434799232130073246593376731870174788455553789248028815887760527538981767938179200869420210761741879300033549497289898467243053254160120983019605038886960143316395685657671505734493856662083839600367536196411637926800618362102051248473060856429924800233369384774434601460389614991470004439438699978779117370309348921003744458442466201273241723056300857991252581325048683507828701475160174942911782319523619081303031668258285874708838058740865746793658506971368394244587168982989259192142781378428736251040357242211386172012120321284696563665439710336770899376531065809564700490498872793229097550547766781806933725529442248535170115276671178804361060411442134954379910405652892484061225468356568784907958338937725532617064816834386613637252562179130365606976707327339504616369967527954140369601709289255913916623951799655634029888579962498270312503791048089900310911880163467215458850217630866197543326387021296735504423032101654614804777464200223226011801556096043642138927305641046625036920956271594517882479274506027064014528042843410064893087000888302343591953979021544394729260912272519987428425526466630184508102060219541524048125389916379426670153935915426938564176122164141907198654855613274868941041201824027732011932289201108698859995612577223444473019763687227229020650874602275083994267304644456709556552669343212242872774558186333963595002195277235349146631077367827529027055683484327652573478449891258807287333729156224419944714724588331237641207624261392390114948355888189614046418086631258706298122873360214672163712563753797847078568491680742640219908256557732553393293511841520735323225049368336808471927902661909159224768476201408015047326644836598560013713745804757141153418750806765591621983321615699172575904603306334457864838289442365946310529530586480791216426433274419037452674716786481775691444789959869253193696473468883656412330517371488904227248520786463128881923817604660995729888860459786007840609601159383559881056327886258948224537834521933915647454928257790360655018742876598849702089743245728605677229838642063745876022910392395570004234431586846815044376514413501404938568008381382403896011595182975953300187366170610116067248161966583660848759968090298919717762284202477061444976698006472391867302614775966686584574432448480600778041353952899300489765055490365849105999632720033922780718570451473316056757750888438253083035620749776119300315754069754226382974682566993161600930201210395490900290727943210412126001975786070439920727869604898506529309650576663658125550285498868957443265361593646973237375649096036162008605343040772109578140152066889941088422510780096238048321780404106215675141490361909572471415574929067937557722499031753193164032828803479100740574047549527637395176919212031625843811495027157678219613889563538429161428299738285900759311662949004432236205490117867676390059200669135598857967292283821820444240340248441315562795373774098358502772923822078994861153712193065478992278761398648123208718869829999223198388918017143844092853707839829194906746292701523128197019284273122564983012803491288863710218649981972561171525193440587463807589020810934613906698037870516348460268785445486804797601856764410480089232338361888442907734660371380225409024596187387398753331156390414578385688928857263791261251592424580655009665468603969525603866727143107586145389659678158924493208329615915926176041991738060712579874907474964868170670595021355486858222913279281270395002733617476717057637404685637477290678465661068466518609072270558830752513201255703413422710487100755489797022901248356738110219089813591446749827913513844864751623906214722476929677188012852487038010837122488766508992766203046429810147839305737712392810997630751888886916134961828045846098580995333030581506393196959074780962995162994293124838374269610635424218226153300852336611672175206513547382652511350757520093262928930097215302596416784683858430485581084663568782701336069088148693895514519370386384409353715171997514334110752844126390500750446079965078906698077326413784329882141713862380644687599775429651125146136246506536972818156691041326261513390712730180472136054726891825197608098037078891209358553830290058668223856226626323496178282977022707049502880301761696022195822089662664188634499179695475197426469230181889046930016257242392840205487129815738431916201057114286458380667993598552698897565224252958278706641754218275084304066453965306541314620407701733771004129443359878241014312291516304206727994999431531484505245612189561901758288757266641741677258945594284800199520209967522897544233222061556303588233025824419314919190339238974505527981980872448301483357047344201228214451369426857448808238459116941825345095007465175082028608095352487101891721855314471828814587297410848938437844512336582875191287241833924496220160845020008852903934105420374205249935009672894956232999682080219237770527902612340857885411557356600914604026997853670073304411734092854920097694879253278376402687715193546780464081523221127775476253742407915516050558499277453796167643192697416124592419069584266111840918273620458211469205052630132855436092397400680228473423878813737684075952817654161262975830335782440882755809549766780748212115087176265074147582611763231820705614065794943543222300967864639215131176131374498018353297823904816431732216340544992383462074652125364089472134930209535804794365266185671675675358637895591858701707765542143234605903398086927373441044573473055561862631268728962329619350614004732579775476095330841578798020010896915521151359500574463304275192905117855631170815148489549271088768175802053833039414959238249235145892541615675827700401728665521798043412362725714396886974430098437678732541614975746832199638677417701967201359795175371303347069173345286384539616874827386278161208585289023726172154837133960114696274088864858326346734233887013701331520927020878367476203862147582910090927686137145631059110117845143690958979014628326304705755317931082392578507141014741941705836461061339324951150709878253422994848148678297277710840826781392098561106219907310227498557362217029860352513509991854150146023346179514370959317271214736171831755865206688013671710870287957247362660335750586347492822522192568338306607090843505024947560474549355792121474400162234939463769825146548149446401340433725583506762962918547372335003335906755628354648576855221002881237802085605463951521549087460528791214561034082774076671319934374547975350704946936802872122763370490339943242163355566542478557132391133928102188846213454257256691369286308361587561435723168371395138751043946192824341242333034800062114634479811839298920802978628030774262861021521311275445074690722337695593757625443780226247913946525861490040103401693211423362848000493485814356653503853505414938464598548731622701703537529766053363892375275051988819357768309415391695345111585072086230196304819025574940052614938000739998082780081561624099169908017690555531953307533728394365642981501272608410530171106951760935615542127617831779188956000808979646104503701588927223834700587401477370027548480927939776998313533785771658247601943161408723163754597069878100553661803172031577318340045203086307179967794909178612722883795315637804981265419138061071660742826926107989970034917451682105007496441873127946275952635322320670460368951841326415639157626038806433422557622863298488305095911401350309502850985222021221835022732704134369680858315241312818459332052180322623417476259985361707390412966708703015645048418386144531745631238791404506887725901083089855760874974658858068232990424789310293230060092580444434788051337173479727211255769017257887846718826221410805994186980943941217912046043909850081295201352512604465976300464917048277826436282596958602797281146530837779790652496976370977557202320580273258087344100385895986340025473948896738683160310922265938031247308526874390046574969305836036198792777783291998908075758432304556828709099060292372859274887338733251167867342354605488704001308574400754500304629027565559221436517633528311056515166370226710782190367687064731495393112539890831739501656978399183862248925640576870680390083865579942980400758457965159851915563317471606052365558948716008402183600553828926718160398626493329685328884550919982126681900598820019721300162125758889670489962908459050603304884381985230570666270948241463656304178647998647526866277090104811012031623886541909840586927108362526464086598293580743428274793431080885508119456372052218042509830673055943306142196969209416486719297664264085714325878883878180581599088954377319784726510827478062361880559709440485753086445126715188309233955408934361190135882396011820546237672255433462874365919808990997604505606396444727197317523347284843947884283389218221857607239628027888402634617259831153522332025423806319728325020872219631372967604852813453546091200616846299312245469302045730898644377837499588230768180811613649025709854193110546217559296644908065796848340046967783137053645247846245500440334112234938479625430109363849556873659356016055120473641571250160389022757229742348322813359785963060202773126751245532363335401062570069025281149656495449423720090063597929743510656763872343886874630617425933642323276557058627569991374705461472883386936327363101192044620123409778776516691404752120292967990062783632778785254516109291116862375907817301837891823464410704767146277773076973238858425908693734886419320658838914321828768551992344958743860360166361195692345864858241820657269714754974247421424482090905475324499831743951649282140865592929772052307580948734065397469190433605804896959113489792505563252155438925049857665566316556384711904003802448409254855042032976330822711736933353720813069552546031437731183560517152253187217205638777381571919167866941981375564740972344450095299554510666119283532285604705485819934619476254965423076918494745340509444982878147736809061731073482629613584626696272831727168117007938919479099000838192842893063428178737260166211950998688568711130234072882780879534487117245318117165573984642980613394216123496289958599148232697409542339682162526384465331483788905929253301865762684585820911384902574846036534030726893368938525374054226689223535752189323305950296656366523312672034914823023099508668798981556128931502922753790270007148643250124624764372907884358372916014914930823535485907654742402956510307629082573465276537651345462879163863975412118210099729656069990572505429459289937630691483891148438620175216359346432799804365203926506435303043342455038450784866971415097417548776461444328687176740263402068357452549917943186555978754631802383910802654127212896131205618360645242969038850271938195264584361887939914345593583985373161259672435684965034579320681002136942008482952579530678163480304615523831405654987634885009431168245436523096486292948650781797270737435326574310479562852364054324462883412099980484770210520178071517090818397986970565896283647526898460602936442393162237727202378906087002202461837532053539004057286785060482167054334462694367563058507620284634804737166598332096231531791689426536366675405074840454760823744495691577042909818924083241071343389699451965299314378179809446859092046644918440609194653148899475744181863944569096052071324094503178546752258237872301896922040118060220401936252401460502420249312572036984017764449340798155335252054927845270941787727706761665901949388517473115967982713888209315950602392465419860315725458913697202196930053114662292338892700112222848482668090285314201133791826445847403272644320089457166535069799870299227010624159254712081720256054864307380656303867751392757951968887120123902017670263216013171977482896411820790612639643661257917027059282665842249410102301685379827018810709242710645050392742426144262191913399469945568259508333271499016963802751355355416546070326237620278775945902623647228495743985367970646179246119775218421340928909128959398662760176163564307317313219039824285920689775674239390517347390649900063804534964428468389207887808022608288480318756873758462327974422846455585922281593523312414418184651632025588965444523312614002130795527100206738840441703267441209389134059027910443756285644562713007639299561531001544173075817845848917851276180396831117128177630915600858799404273405121351000805428379731691610144429574508257683312888819784816807190158665406108970679446087831097850505094115573279331503130015744954275205403536084695883007744681526758461390349572814687003243941705617897305760192094994329942903967113679899038835312117177231588014389241456365697445916270883144386037839051344706428793258737260438798165791018376258071854895934053136384480228329191202133910691802514963160417048916363822310377487757489314717011298773554111617620750389549148736967872392050754909007018361458381715175093829035799937569363988041838561004164179439583011055051794860793788237749163155969872821041564419466482070959224848160723004103214338455246649083324938857268484093302302193944979184822003817165174419554997023254307362777738437300735632653438164034751541845467490888019598530327407584821024549232407010541969632162611373156564871488521269865134524351764758439680749398353801955257586338693258356707859156625540199464718051137354156857418503207519559712874056423396157691187335403133411823962977318091962348295056999945948298412967820315478500906284584953529349639332103703873931149436865916480503183451618912384846194825914168259399192349132892191579837765084990081945171649513272483422786557643930964335751778577101092033124513497963614737380618926925362613002775358690116607033404533095085045266938227411804347887209067986621012965128993448421718890844510337732388069134446551362863167107916282617409256371202223772538178865791910233527788496139941540206963264899106407578026605504540726153060799636426941518732647577945212915827033313649509628925369978140104667251387128188811913680345067467062960427397872920935549238506387099810170240256847287296224538580971111998732055268846179469262186252563221208578602567755194763058685057139220985710081352168375804575600071756741816976062641929717942961721760669089325350932589394270973530835512984539937848459902321768994169848857676721870170946549995700572312914264852312368036685881524758743024870563952539570636159289310035923068085283372206656676673815274526636752699685516921572098240464827318375981369752205293827332055950341850136825044029706259401837959276220437745572253014942520790921446260991885276683181745196197191826750738922188688005077610946630760006966140878249680310481715345973448241511670391470694941494038633283788923327342630943955007312941540482474859433793630952022184525918738606517769474884293774677074332695468950001747664673318535262466712894495806593276115555225689166942921099895051306815293841724843983811770560414913591951340388703781895815071132711170816198395942305105129702322819571617201408230151891176669620822232423077622532640517759413086518903103663880552809583381127815309079082141489051220987122539236000682026659330101031685171806456452344575555260816272005838101259368431552595577344976951693952197747451950975820292960840390636133017231667193262618657235106702398466120660897115914939880466935387113879522115168104163967390729887067330159237113801820589682324147267070312374567101434611044992276242241076908809094869666563717422526679556696935044970431467867860342365803259971420189907437410024967175866685942346489038586902952103336771961381685115616831651789443276501067814914101943263543112562300851954734124434890766443934738835059226082223280765664096945042422178628560411524082256145928620435577144529837291039313416214375899624675430452111767693045553166642968946455242552108795038063932825919045906130952242803076459551197047529533822684851843820962496921403309484004945147772163323456411864949634660346200350603808056126809196195517163399130571934699664261666162793927692810408245082089019157973529768453427558830497646896977325830479750268941267399245767980833840025439510727483960783209628159433869504332767597077418466861779665638998675801523205515992694915758252491195497324870987292564803030905612924481020220971785164283499954119863534696006799951956897673854724315769270127714642183738264712640697505893375824976478490522726406188508504729520066236540061912822638759474522616756789773926766678284655458505464269950637745850335467728628479199140471966238423981349017494785611436054549536402225934910849743618897495433885687911366217360566449536617643434690891491210983097108859320735982289309820657962098082125766014393120333708583045201449474563698045412656695146603218021433019518895194809044886832139032887952121123806011869505586150178440694898217523628952670988882433742526646561174819470825998762173639136829999841105446307167538080554305399434496897727737658069241410414511187722821610455920323303072854572071297896866186506839022317220716163158984844636253787149534132875507978213184110104168074796493509685996367296358035990783333644219553602922361780959827537046365048185723340513603235215790130664379092631265422775390106623335843062163087552460404530023332158010566808451556625640858182652451742618855163730283037975171051090649812144975769415608072548546171196292609830257285050335235176448076509275392828231481406842809860125680875675560829451299956097470660053675479431483214667333930606345084771917141647547156026188230982325238583450548936279689862894480346490195209388902453538221249663578924736304777522874186614838148383480129515112743852640486262993375504296771577752708265752885236114451352197222410106148097643585976225790108232158223359373859303030427953969608769054106814790740178086498567604344576915799696461636299374314403965919621858063660133897258951782152218783573900583584182616692049272620941909215881275148821122859520793458340286887476818529811096508010081225791789252320397037138679037618552677492749988509068518305716493127093946052352815635022056209143528636216375082540974582970542424202400884181148230803838791559736665854657532727209432426236837106782882175185099417022333784550140501718819854100198144145387936144218231790776899024467364608551786658425407013621167209593474652114622615560320962297444633720879442039893727236081129996817502886225654750058082402298852445822821519787066247227142469691180443586824329201712535576202411805288130888978676555220628582232813099545253138970642990897024555590427521030888098461707712534984805518743342216784283044520583754437608084304633554639468897980041296051271674484268067352015473614353298025318658947114346570943704560219485674061357756966155884108030143921152017443166841603029957960874793462673357618726812960398127269433602956381820604234662268408608740413296905016361848919459351832412396285563526918890156918973100955929525633529342898707548862959041833862022520978314530783169206765132856379080498476058650871410986850999433988105786536148374764319591093426436152513923697665769859877873082722618017781972552305818184311243718214150179136208063815890816674479607041972221335680931393666063636978353546335092535945523948862769110009949128884256498600662158250909426195580681432807966971276443553489519489143290679335311738128289161833978340414035668132846210951485065659470609961097887356019346339159647764151139602307711175688042598225369872431521136864338172587962083589131249645984549040059443985531716757631822314884259664289072904897693446332978356205302283124940884514927085027994078728903122326618549849148687643128217968863102193541587290493344298873586399844112041475205264372008003705185261285543558761781574958485599897559849784991017255301195715964153114341162169748564865620203948508048916576922215364434794047172418584629764766080438273328423774553173097195433922460308314766823213040492304019180333885244584037733437209936245967373142296526176887113203444838845255900674027797139501685280633250250416549908786529686288230353053838350691393029880991659178589851633981563011425695425667543998274752750684632404682016280539712665149531327207543006217879658274693467373851028762718551775132439633963220066255513893698108150629831660924978418592084973198708571610658876768515208752213029115969779448650813879098253544964727573779131985370581370628800704836066304949827563566229697903171888600322869115448783700231003422351772055380214636361500917046291753535619629849264611991284182203619995448414793211590282704541749326293850756676236280316284159798869304304141753773614675035407727107093959137070641293982145549220686456489345885756607917748531287438924821961096713336181116810563200588962538608791678298443949213275150596835958988118716470276774883015798183604618641074651943810013956432844571578685277908694465619987556378878693259156421012999346157789289550463804405357394065153453123908092529814387368845705394258666585314024950878215726945547360017591471037538493610168395059558187949046004060438523329596631338100998267224580951009466013302644167459063371030798763181592018671110700099756813011202012538550852612738647702080317650760583847357101287555066808131294603527398706694713246330353852953328785912691285876098731544644266481170592461056298793158458764547635414528713832792645696721501637249759394020641226121770162277156455661018609684408685425844929099126148484665384630698136830638707685901562476578742270802712268318250542816359795726986105888492083899748672309047589453355449074496998986934704376423649181590006187183162375656580549997648652991518507487380375975910143314358243799151779442067313908577012669067245273523729858173204993271900385326148423691761048731772687522786225438967061091671194974550308293501085820262719082610890391375645967476023073877429202068599288538390994883511635565189175252297883872725246825624520208917792163292552787582789910380349244660545379816512513981813399194191943551869172204358984564540182460352625270636107764510307743365112701712924732856399945957298060602197477553493465233902777031714616080838824844766421599851426672646445015253192897161568065350644543491477508345272020724620170878413253037131774361907561445057177888233347013732554772856417238972143539196084083241829004473620384062015777979669188741125851731684216025176120265346900516170971031413057075630716317745605746305641597352218812124497168048809192491885144786919960150178883870160769754276717242541785337060470084181659253301845391655892971757484815360468603972437550053406166394250780687987027814080733750039687154285891524892758699282159474873522677735843869372826677008291949152148406560374098695628939982199547867480384260382335941344534871080225063145345402146699516219708444349849690803176564473703565144014838003108733877532792346030842077905811434070922505054991149818967434592714544772937457047019585806357952586108515605259337600835332677539363611532524485801920649972730502413875054994959839201604161257240920157329825023356879292031075955675459778139722542151309203331125514688666737769813186481739054629637173320471883183144039058568588872700612110310943375189631525842836503432756132186220463992688411080143088516891031696829064375551106207708339448607340271591444640599111289745278415416456549309657990759933946285311736260460709384990194579919251115772120116997334647004649415354389421531747746826831280103073375081820237993708154223205189617965404054950028866711213820188161331513193554218111100525655215935995023281675775649680051387946243698845965761070815173034016692754636948182085844546462057011580049997169441429966724626482068448264267300775385335807939704600017559431611163207419756821072570632497131171626092973692187312113805483072013958537426799984484439933226767989471177041319715108238690183830156974124155870762506905145831681441680543380356331721127311592536250290002373051324845838241093158846359939232633529044087609931124321539434422094987132592027074282572980605195962191198285490306883595626965728789734145338645542588876393717222103151536915327633477010393769083038314103029434646507796358287915485112142287306659864085351951952137599242820318291375779397226342863497937992474851846163412059989040116106520137307020928142970638591341854785233273226901635641088454703262846569788810004654777901109716263212375403768693472771100930862797995361576991565486406111522605741329312034887819080563105400435958561632336170884910626635037890049154072834899726695133880693758801087676294965158452006457141580581702071350239202480021837172245380499341804606820689005286382949322686867426030203545097864481237483026551393234938983220070713309031664984920910223509022503550029805737454668040838946626433558860981355672462324226627126049197826993453358044242490423162657657325710886598948985208260903126989525103905526675438726455085257322356606764270301479861969536691917848695996581108469621648495635689486288903573284390327533566183993304479251454512694936342535622188584674090740753810299773153840525397169042843768089473928032858752046521910956358457390445622267240084395525170491779762579339764874379242238120444164750453518187483425542442426766006894590691480628721348670276102574576671111183328541398741859217699572153467548732585277385294901932322164486922439459243095191862173949187643116817899020450497633004502595711118147353919673369596868124996469744437237426593366875961762028143824501602895934634648316958051761907614999057582092576489849568519988495495944294602581015847982704526085905043776423116660971612423788063669657667343119010450068716902145769396528218484037542621153246394332388150928186092241130467697833133257316183908245154746487007846127405987824776825926475832187649142080794401379538096129261226926086292458976634573745529477213906984002969938571508825943778327627010375859423621386307756755452979635209327777803911273118628408109364711264376625835162425601276496874333207339275603904032968060025105631265201470476583457921656964124730781215571756989914636559652533392971754255254708781091546688279418897982213714713568255175744830523134591357794532758145761338906857468481255482355049645095421950777860887252276366648929667227580009984360765183106687760347617479628591362512482947571232963718177329207403559404723067697063646581953304120968206694099849355353255845876009058127825535765161447745339497162118624320493295197690229923000831777317038227212918219504532031210437935783589752226823476584608261206388039326218405083518151433180265007048880481083298943373888638489955875434345360487325197007812533165080855737799236863303771069311367443168910371529363370491611489366578958905740016900194276191852102696146125346481280657889406876339436101956048443847739473174370314783264322985682403666446764077938594903152907885229879339292267940225232577972692226026334008157647357452409256647373353508624348197735330911792324976876583967346656648895146558491564224178440750537802062200665664211401544336948185748506619657686697591235269977289542307820846003903689482698073681652546238433685942726019273197629808582857254154338618920071168133184210169344083322817695808872632071199652038532949287501404326219266278829915416098066862813128706294035381711608997484421814528873246830676435447083787545729491323259970536089852921340939652874218039183552241938362817494133063785054431951462397806818989878989107539307499350553051928798681755326003619707671731783587040785608904727344736849213758049564672814810319316066638793479209317831792251597925644349600170371629791742021224885530336237610204598270468489275463148666808567395440933275870273079859057070146524516390521198273602394695587775223604661301639072490442303446621137792838935790549914510487966338660813612753343149813641862357184733528499629282723208337997321304247444159533615480973013114712610492086827743646753384959577043026528088639523996356707706105772973031483056363514527769157782615182043124628325621829096910643017159001838802119558989445583557681242688872799838050387815145989746020102229091952931826139048937442826470454002319890359091780623479363158611966545268414195309891224613076525055579020546634665603651173931326401604354462820287841381345075124489003979405689291028229196071717938876272173415313621334923524122175104157899497176775476049731703881021516141932674879174254142715607301664253337069857967222735837833653708577055354569989859623850689041132822647120072058249906798366347324832091688932411876181349331616381509952518844350389874781734174315525062655901465027306245053794994530870560376783964733768204301698128351866067604757901639587230770827524429252852720996196656067124310035684943918619244267932942108477979308821915150320025123624813756597925800289601473848473056492891699842969972487059917403715813446376438405054765351601057400896110910537935744250252756964371957747598809676810447048734968028713133791216308701473109037629233341776312950445406259161568676870131364770188360737540814078044345647147568872571026169378477826680772521842838990837555781011638827017197299681717534996811511728242411352971489247340836701299508424376038274909215954478170322589391947490200553164059659116168390647187162149883597180779942185238838002734965173273890140657241601222516596975595283928343111801776483732668898572762997385828800543914928271688166217647179122742556621806561112093295050305736978625906275834490697177303502805393869662245453276084200618888666843570499292867206759017474428510322462175374456928767288082570730151416305173212991469345770782264651522805573650507276067510439692316459237630203820015558416341224308875308288702652434434538496268646464203563731965683590163357263748896722208217482780690479317232977512938996757040482009174345119946349512133016319983578998564658935990007581662075311392425857203942531199754303289751131372890389388576075142208875993292100775982219266729401044601421700969193614998652209714990793878551327823344620933925646747764618899793691885965931785892828668244285513155149204152689034135625850614044866776519210960217788089752406733529531863597958892369652414654971401100247705993450028374996682187835859951494164361704963476158654184230856435096319555785254315809307292453352630710435392850069868877316000510760433962394138500329936079865033800918715251123537516953437237319023117651110583035093782539417236037930048255961497041159382805157778799296878886509489215019319620071624879182882993906759954306776021156175161575226894945825667101000641525703024657692555439695539475114927559775101447417140452786481458538974240998552994240772392777899773530195770347979046326045807888701863458599699620397905029669947323716822440234824030519184673608944081098322203217270237403329624522031406032053822451615142709556695289548053178705731711009513463016059236579042907651365505324345301929838732336506821980394486230160517476692795965276062990482163391360356895990281653834047815144258971966633771204676276065109766118120074176003391995029104106546345252063943385210403044615569371237069284546003486988229460424147848980393882619033899400155842074182727366183606156353598560370687692415348374988659838291166769136367702056032653985220216741664127161870716204774643114965401352697309172660579115713364328969550065597913163538341642529080694783262124043147758880469613669633470228224880321068922364043011098056764079579389320618391333867389288996221714174099647157620625172993967386902278918562447552108534178858343387714740956995104867310957052240337758847955988753594659055810954651473817375581359609160618209064551779911006558365491318339894740352922745452447713977923319613958184452540663828456686828130742389602064630881580682856894840394867085812122895722572940298079829007275859281938424137873235400635044379249799077706354124653915066147999036215953586153460429016731238962030587472234886469724777803501983372356094808305145848329946078799840554543225454742397088412662633690408454514588959150458590550478846294083741986669123703215849862052701897506075639513808969922385353531744377032971594543989555986318076213783362456605673740787018796948593453899055936542109269856397272398352636101877930378312988308963668628781086377568667261008009877220501700919806911860747110517167674354189170583870700019535315009920283375004301401139717015483593409938396809314433739351347603268038078123990643923407422623577908239133229680221664336152315427601708350293860854849648275230447001468904170488297348110692301726834276796534144654092655358442853130596813162407423986008842829319422628482743229679830668913393710407589460942783983465689489907122168384039586339920121122989382956177763189464636190181666567215116712938219861892680076800496547409305415309836911950659350665955957963287785840923620883054883101458051478316351350476004476847926817102152356002250161868344138871938152283178927883505549990817100625169286644915106462440208618188656140948831043580676324975744800449492569064703307998802408477065067972728715488181087008124849647676817280957465164227916457965371456999247369986275378676466739779683833205241662456816158795381327231505164322134347312580117194683431480760644263643653355847033103722017457319202198592050818363909010651565698686346715472094073083818145521661793899467693581992593415816271876054715210388510879020985699467156338688691424226100628933911161692795683683374618941630055704429512754296713753984504069417514707318153648335999099317573578453626036710466953556290182256554747832186472860649155081311565464714751955389877558978489317225415739180226155144870222608371580338856315020309053924444077216519557072631806761062426225481148002879715988470369163233509872635087023219775109797606212814713556150225011084518405981872204905215079248716670763990147620876598020830913254915971352389614756467991411378870570520629854193300519239666965400614188468087802393848427210983042657521045953749588392434049164582105978443213346418637409303017346881395774849697271229510925863759928676254483411824917105320184316533935936471142169084159845466142697943304884443747978326186068173660596877985273040503086034083555929833197643872961706420052710552649464127992517945407344425493725467469482800516001014924962245440212657992475877895846160196165258228084385446662777192826168600867122526233922473036516278369467184460297460123642220226283640670333715642267922470713884406716294780455026708469927797730749767018244762859104628719730028257679324802661099834107863131440622486426127440641014811713625948211515261920877379982934361438494016737862277949168557462603651004793276803496429822151038240250518362260838329159007002262684718815850836063691341928220822153031103010036785183155964021668684214910903886031770062953378603450178829315886676721761470450022215387134637886169156084026274885092508192843785511810752901001330038647505632861108457558080234669750294422423337073700758856666427434276778237652345075656735213160463054668348201596606263242464518057855429373893213805397012241625888298988700408655044498453054652042602057808636128561977753370606855679595663740102546047748243618631003684158234062624845021289533191342265817043870234158997384906820500809302370329437540760849918439046880435576525340026025387979396893783479539092683152998584353764847791929447257111714448998714364774430107161415332023716259823404314392389487377469337376814237523530245482757049528121588763599978542194711088301755849147996573996415058682894596480821495628786653639650913799392222289807567489894017373213031724438149858824050475190121761947881107475500467127755460054305330401546442757325359253509911589807864077400856732581687214738218630242338687759886761492426162033920710247331904081593641020738188169014741532715504034237308388660499497189971192122320847560943691172957879786900150425368474567039037491499186562966647405887592245128451034543556436506658377999921665425631240969311742490301915760399138991736456139947504567027755653449653776171153223427477914288239364108719337891947472696083927829184884451918694436462811551671881672188901538217287823159933180239014557165015396570522310134087129238344686261714737350106812687612591919297499368286693278054843714613477090438620716585708955656955862373424356859130640208746105781917013379890788843190117832081059042882300290601550110840779749013532486286516218064972639395168641407371551628685189221812362843298251736280314757852022659178984035992173246855787952040302144289490096713499636611755276604005962168624671699164082520571788982597749899762302534408187805759163461597738758926687143203021922605087398100667635999662624213668010456854581663827668921285321544906238715482820407931891425378911137009872652872777945127139442120593895870165226260965622506225246947151321547235050922676861423453650420713957596478316112711362595601622936407989388760902300070926403030784227300434314992416356549588540517273833453448133504832907138748081906772259523968948721210574410663778834377409602558895355217522544097605296885171226248141453948035054060690597323691103350271808137416510244482521104989927993886054721232124529138005539028229485894485733273846733822383497872645440600580519104672245804568709715475302431448019218754601467191981150554024528834703683925588370312156776614193960617792830186971048555634364023114320492237545509625327566965661418487720448741810778464174929491726194081381169874620234546431024725198883389744497586087697314020243307887985470595273808406845661228233635070501977142565161076352784568143362096389351372513620995024822076635429548829119575135869377334097423612547613968284008205489393380499668287773486277388063465782123892985811588558826787160265231889711915628413043250590886484375448918126465195559661681546745389946052331102083413383780715835303562716424826887951527891182657695809537746295219653038524222200565373305126687041030151714973146517593413320391524107104045590149435371811776202613143976127453821569307271100081260883266704836896383290417090229476797613083648930649549247629726711639341694842664858892753260719245175659416844768025031643014802933905152185046699351325462340994690674680532101951203694579072484318696269978117445301127917220056715490930650586965865880067696488585787624743835074746964650884556370875792601873960764461283796005467556607663575643489540616601094593775230705986211796812212432961172249198522939015347524052208327320064467186959924563638590617646780596803994335436596183056799033277404705993486333831163391287245678767163162485406662423266026414896519331166798054970556888540587249117412255402666904899062623363595713688882256340120880886420679292331954413361956794342847928237345469550596704367317937546406947612165211669395396022198295512791990509181034915427219567256545779937477337006854235607989751980493654155965685277931207272714171210609001649029077481509022943084680807157678610220965258397797375355599068778101812373536922321712736918379053514894851161690273340091964605888677586354797125755934685675970334687913151397959071514426305209631885971779242443849911230692107850344772675467037253669622286723644395032773469643703673382021582555154053840369789408685997704517901692641037592137227441981578438603874601828924859402095426966549010427653276158309809088430023669942362659264785215882652817919730753114897568894402910751628573531063581318148969233783660428225004163439654266557628576812036999699538360873076608546785809527534423664300158104830315882481432226275786634774076333434092248435369704476667255935144810912497512280969744165896466527306262596755751779129345517623378784338263978278872962761634402077276440797240502307019584191120410986039093866632319503966267222252697602140039373781118828851658122618362902596687580219076934138225060460465433409335893617695001846476675079112946563490690814328812385801303552639445707169980465309130997203526342828604671833644313446661070609572427593532947311929286285981040847188743888452464058714418521318096639772184066493648287477471123420299812967636411823610809878887369388666150706247943172497906601487560522570192520717419209463921044358657410462737406813278652269941029972954454437753106368172199262747107464353932413677757569344333551344292723656867771130320415313890455611110816304295816758996757688501744037460905392969991180386329782668565241626826876658682475910223415858402183434977201039587887507111930720821960648635490506979321745678050073763513699575887037657437322099773334721644257317077607246634478686234692251860679912531001250206266697177425087973223689080132311491308764110702726648408752711590506334357907429289077720810821718682685735538772007541278917989544646030095243180838653118504259204379168571183470984590812891645041388827545981227763981647016744442782988081109016695729888444745133095490043380266108047451413092016329824596686786500522828415997581167095858711156494842458346092755949105085558355294908293534256406006311887667935149704811057777640634800526950431056465902505764551465702469327103784755424613465240191456910877958714655770229410010407679720287554013451443707260943465545568533525205052292504804983838837177459242630791745222984087978152666313948862731138048466825459410644642270923337359703708771341675763112671966776096800309738170915548730184710929867102379595112828111119651637040525301067115477673921129392972957554689741175000297806446226174075829107382582494498749989659018637910122769432665508496841529118674621912360603879011722977405791821318858336075143121409598317774260444223214310471958589986486704492268342925529920081479778585614043539323459885576630774671562311207843476795477515715788974364887612082168342954882185243413847393392845226783298460412697701283399922155648108160564079895307688141524982913903011828532150409091429020783176261387053028488957241575469585583933677914606071588880259213840705281215079218381499116506590580965869785375076412837798900383837299981207948401279211340313861462307312858768194945381267130533106740068757951769538430284033672749906752926979166890310696782308081296911622499609499823170747897673078068021801080681079568530500011762385828843732141794497915897643827683467271609093331478105324700014284983680424419820730809646183850328061936449494648735957402261213793797374856652678461197683732770238558302918407905113630774189822447383287833418554822618718849655084914757720796589316408992861431145123076625231217515429245427732426231063148934166763199204544870703541743182465415128274564739840552082111991020468594798084673013958824242006178387663254236796026572643035002330032487111875549675125021136631854522803156737270712819491397948377557989336474525218073712441060266657087398864621775242005707096993746659493830171792729816955776645470944700975045419072135535097056379374632054903894682357476413681461722914774821993229379789534137109356086199280478431046838762762646249214808055010953514824892708340647749465558814918405600546376543926159231737437153224750918719854738402639959632855059886943288583745958214089310778359503399112827302047484674650637437666212440510073841150440806659840238114328314408617792128173633051438524144829313640318772890570278969751922412673637710798832416204220352795582870283468414843711087830430004691284141350020375508624707184463908017336784857144878806335491082391752585736950477785539514356587683274810349690019511677772489366113484596096372857959467843711784434531826306643945764169839178220851300197660528534525021973439321701299481225307781483114179022644272817329181528550958249867759774510887926074874753955857484129460610802667545660169076303179647746605968472816695942408318252891755887718737482969716768361479625572154570443380013361717812964234394755680060381062220662846753726755582170319666934368977666119551217134522775941363005002926386152520293095195443456988818186055055096227912297089821920275555021278145181963628756988730455204332712314400457806496454243053156370110518313925222040674515704554666604739676167016848393330303995372500630582430979153369479009483839899444938606408578375464171929421167378079045426076330184233050762110775995481968662613477475504827761205294561432852556587961170123320494625153923263388668202265044429240714750300818424653035290905465017440219987833136206485453440062885627643676379697052967595399877905147784489859515960282705228754229995719539943361436381361614821277973212647690409086480708194069536386762472075328295003141804089665616454643375835115083612626867869924310172693512936991720318483516998904943171214501631724111366611279992401943330373902391583552801022191152523366115648176978935693726690599068327567622968101952265941296756598728019271307477562585163721947265870852951396899360078615895532361606435309918028475146722506592320606584515912409892428170192113226558002127690364201703336647652734593931277028314489099172656932055861423369826452503826560225900601129937562410027635270927158986720513095777044547029755531558906622064969673246458200085912840191997706629202704797948507076399354768611598985939458714044068354741331514794864217013525292246724801856002396237999392855336910308194926183334090026138579171244045586493435659604057175785940679116296517665592707866555618018782910150116014429177556863016383486080676236482161440176177371642697343328388140273452679296935783796433059368919225251489910216052654995545031542105071162835709594051317225686420911840491749624449644813785920243037893890259917109024267164978164595692015195336721995809287041596771468811870154712751387434298172272437804257682324840187916000423381558001441941888825940712336551090364622657531903741647464326946838790074573306903935800626193664027608918668124912442948660314321195684141356904128032226693137402167731298542914640022488589523105846879677315811358056244600390228908564655343942056816773890284129234856615673456404850881294161900896552223803481999400434231730713479502378799719513152393914928569178337902650119085717838958793248677625414742730030963616130856099166765485280242525409414405599248008222361683997401559910076955556321068118023324376675153111644856065594820279798258562062309634594227158962912405537586485102141700699248564620191297661171769180036975290164354677859746948356111746278382520065136484115326153495663661541916886543423480599624016550187260769863667435783538819618696681587203117573945988660146579527824863053785992353653063890133742821227242036058319608340947040212041773633514387513793306677722473908046003957636829866818440632556215340407816671785556689968657889468830610700269835743089207312406946289173066415455836542463760144715821757765696585506150253963590658258114121729473323506587611084890596565667535944981184483743755824496764259219196396241246480337281739330160074152768905432042493086258240318335580466930104762051615052235121132572550598277849181062972185673900071942303004811934799476034320500045654602466787571132198260173314583210198226817648037767879805978762109324292649039869049031268722655579189789147947441865622098940319471779027137012577671496359580328723780596465669169484380504710498790461970553579419909525666094504308236437841745653087327404445500899424093944850174344746627392782520270144316743489229715514975839596923149440586852472070377660077342524642036959796175734500300392714387221355659663935742851711997032615046068168066552381608087205344855270637236580407540842124957801700662586652094891124740637368863721459711309673455519777091662391559791099725207754614019616437499276179067765437547839305754024768185697434193380912714756754215535578182532489170330441831958988858583329933265198824398788958923378490946800743457239243847213577389186722527621465671415005979579210965334648400978490002334141649586148055695008091039144510845314010774556866017082995641911034168152329460477934386927254489304809045348307146728817257973525620360605776472652502972067850872833686885300096756966469943157923607442868417748685129485531707529496701519690766485252271466156115369061000856636076228343483814677502383518014180171435737954430531535527010481080715398665693777341022808291483573119764178073991571043070761604525919228553099434193459418239432336578178343633992352797514879852445671676618084242176607608645897040878810778958820454290832142121558936808526770530523045207827004759408104054414553947418574758029920220306197657716647845075295103206092630814479947762786760137087308677794592984622514263317165022636199091093752406650127068754303889367895244426890979116576570948831504412656845482504162648431001281523848880834935959549302161592900819255697018318359664173828733243261640147827695345922885745261963205616996002847120229221704914152186348721289738863031981562729362155837620852524773415660994584345325756584576546946102723315913330607712277004877972199399322392261266010864447999345277143191079551742039627462541031168834686774204353976751730422033306682858346788991615515601144409677041306057260090891310116852125850280110242601235860985384611424408857903801568404065579974354958396396056174762295063828354593094338550130196691718951731999174603630279342246214811937623929515193340827102926874733222666289170298765258299703455831748880690523324262027844608011783014695973499220106666117432263576026082220388990186347456743698908403305477592436467589538278579076331822660932063003303759195582133279641497729027892922792725815631823811597636742881283557918837423886555510434412200917706836401685079601580738729926713946060163389384284649000863184770730865206990205484350056938784491613544486399612656566213601695832617749340073499728984867641118666666984049558424697344350844204757534187173943702780595245918725064417876181390547995509907635504291437454898182883812394585003433642631336660604864774234409295159432337742946374860202489934750354642079016889505467043872574502438891568915102652144272629598403734625313263556483871789674345149303084665803765270552960645672373929961773116365678190219112372265086158189528461962067350192851734258260541634708164973257271471691662931588354670576324719162663829390838575264699337454579357111278750347939055816775374432268398150903258387665797224025801428991046714834220076062278301623092040973752338722285319079017737058437468434546327191364028393410749972626418181063473816252242911832974281436560045892817153978376232778115053231527376756236520496983054564430704050503700711089393047067562058300224418963420945623678282821385542952023698326416834122608373862375491396988762827869126724005796361729217170667183866431987274197080095013389157820150503543447964960840830305064388662757339165254585625591297338300042536710106529003437690457991727956476025738668693037897441451360813899351064272707898361210750483882158539592690229179753052764920428239171749782899139611323198344750525424277537849386364777108134142319831132103504377595404648345269814025614634921588600164148612663129732709365515625107720978677529789045029962532382904449186528704938494936191747418639833727630147614010771834550197970460037794656110248566349046813079494090784525362525308221141788699737433499528976900209320289565044369427923962797333176575458484107146790766370510618444516589403909055605534391065529760510342834861981743343725511110306085840984223227547899179080349249774863956121524364663006676740023706507302674227755305625250907447271853158097615666618497847533498822701862395273952871124882825846363660988634665242051298573547080783475043807928897169499028488808964031932195183356567331462566917660097946738092181698736625888973075253545958894299162784763353884979335628811073872553619622949077780401836206644584713418536338733207690960898603447881227682219087989228975298293918731613868075129681934329540662000128654669530814577656899427984184570417134635932007639972294042464816036790299928931460672908863404669532005208034817695663643702252653128111964823355698048769974177597673186919277834127854793128292759910958563917773319348988189346834115469007244461519997731202184245872259823256896847955986022267058124630430207635156604160930117239631655238620622206538854224995515747861793139190357409414426592397797519177292484477732899107337732580445230540026008333571887796434285678389534498340295156790177973207106425582354844166775944478331283811809230500049056826684435268997585051385135492967771727206909296464235949509310465164852714764999936421669334412238505558874111225138068127100861497799533211508328304592712771966617437102650388917969308640091197518729343851008466439435374679382154454814080595903052868954825978130309766749593564188845071141926026938401518341864729586462417123303985761664154427956742465039617836986903074286172785231152236243332495362091280128210289491134367619272972903214807912492877036262620011526370290283945819521513254912480614964358285742811465924677527333469815570462469763960371602456489081178758324662801226282845748417199145205614926735731837268167539591892057643664461837324739513164642653878021844343160300910699766016463785067123928417116873018695013831308557240048059396262288858125015976253645639689752501902550367717032951988597914031510331152731679864265766796442085349198513832979727574218921892997542556580297924763588717654864282327651615858443784523685641729064800954331825155035154234744812926092154188524505644379711005251346490479392968130135483559093083197268840306292351809575661443152631903982011116798612157133623171881780097173964115344177773951391498489163319541211032614671258901103544891945233004885667293712884313163866296728744634999023334264242432796368299697333230553215712066685003708345005696965640241645781757839219305145968030976980326600618350214737368173232440916701618561193967761242582314718615384443719050484408147689049081272319968943169787548674261732559232998112386523296921691506104589798859786424739102586545767774848546950550232906565540433667676880988110834268113277779453414575828568452386901372983760438586292776987282431063426653244857865285211716652298171157480089036405253323220610730347175650130540162861540648339868291263083513747139474133731495689557092911481300940600913500356604867829233949890553588164012641403204274438894487183693723744675314338834694231502364573902881159452557140862325509340505304966934349415431866766189695852120847449426971375023241607589541619958196419929246443765693210859947448413468675615073147609759070033598080980491589895743199830186286158132263875604965791479151180661499824547948940739203322736321841327378990108850774930585225867486262702670895736524641700356315919781235489209148336911789191513352920109998426508832713725471003426207678820732835665749764424705692448514953670567695018064642216620847837260890958380671222047481998635795873416773188949106383127607053050138012296260829319971492911632194054907282319851182450926262997468575794184790928223477291040171775757740183657608827785043305114191184228474816972409331584590106284029275108166961940153218919501373257600631204686935608903686081599523686207235283237105044210385628880759561987906117767381043353389988871322381093811196755370723066775068786340895845733533277120374080484442214439263618169828594845864020838074127863151399515085046439548353488003204540596610972765574549095160859583739685161015402057277337528488224166387017295031815714885737033758678303322127003328582565089095060479074286504845385499830420241972202999636291158613058329555529413349716902492482397029982437892126497728501353163722776263714424061479447458561115914017343766703289254757876018233096847368444200207446072941938746749983413098498920793669745834949710816173401414132842259242212193453271847758136358353839713767455232828649445594164122862817984990485254173921570437026002888169600255974109709994786878157127251799595308263964546733782726596261160280419908606223954023857215212217275272128850130298540091712592128525765133864511574895048572350590082481473924802047153111353414400543051318002120755911574410700573865505852214563627460723120760142200668756678047790595043726187298756272141060805738339376377279257523407733141894547673365390911914626730130338827936665994920550785227046663113660049436241831838536575713549778757658415054819334796892332939842342607999421163551203925627762399619042381746150982175355962305601558068391209719890421182996948614703368082895023749660822707777232914155112288636275898868230851504902780827518481166241434678092094575764291913418740037916113634503447183384246186617915191347470133523730919657187762677175235195409760096408416437214383028046384929733076946762583773160510230479592901422750050620666848321175955162499686612374360927097648644477656012037303849303456443023685264057259210180099794501274208818786527649148299208032369939856925187962713222864696582848042744574411215256263167422864472884054742592746704280431511762342303292169296917201540665734139443379584212984074918653238851033108945260694531890347073803138045276132821534442823775181877970807200998058340021832398904998643775836705202734704097042337351991301769148408425459689491912026533321229903213761185069198106884834310472230816219366397670139974348745068603044440190070821487511942516213845316414650562752789105369196908887948158037011283119705973113984758884206029454203785549812827985702470818175391987808767402244540887363038731582214062543432189890504793448438444038383160772019996921117862497559353647394642789523608670432668902069624910646762577005861182112748957207988414346097383433711618534743336146054063799353329960904046412964778770166756796224269229041039164355085435017974113123423160776989293394762439522519621455459514196118930565743479525261307547458097125929318819816503440162073633251570011292738859894406857554737943217143375978122999202189550977833551698810347744881681736860696170599555306863393726282599204761335423090215345912250633644326305655604388133226112062704153658628603573235611543535682674119584744235791007627674959753039647932924410564568034497427037361981053032885098542743431524505452995695471137549241904288163682549396695569075099722008469615218688689543270199427420655629812795900625173121656554016618895314028941291961876836082433625440627352933127754279547996018846208516800766518427839643944605269260895022272982237002248988054844027541684225066878654829063487289523262287938007845776667786544220600079102431401939437232658809957161408697200782870942297383092001565256576780964156436362703414849740925211343046882492867736147819132720985083516043274680036952968132431687126819743628681829511089400038028716044719478018897472804979924634340352613307079756275288451084236072729077258343826488282497627187588480838365955013766882103973291164465646079699546273779112848953892530445069585861424807235369824615098121849628193094016408048924770022432783789177224773431567845370199161741278756711661900245972593957845414379677618059604594202722467355276192217947470917060333326471553814962717687015581719016465601417333887617335461565355569914816624767582479401172819890628041113499120192248347949078727070378931683466001993445504599035047754299949107102566504144341943002204893733387014302887290135136500257432246496449257794114048516090554609879671168767534904781560013796264497194011189238905242741384776858260267621433529617031851932046981478860214306054888978291778318765220361610412202282840827559427920185288790345157450862315492088732156541554242472914269732545663884680076767112921624414427750805452223830480833040783390833833760186439938741325376253232492508342733044326171744220340061963845190049801231041530036261648276141614228467799387799038917895057082757531363018225023214742339779284362056351143521198190752490029153611364548171296529509360755570587401135320848287581279610280744720168113352151036231984469143415181733877756760873725578609080126371510310880469991460519016731260711666233759547817320138006072856923918192500489875885627717457478991633952984909887394132392035732428030357411192110385890213807276776381779180536341480830862286087557480545450803348533543924293345023011020859240856062994042452607256275329574708274705962446737536762134024980215540931005923577943413492739675605021818272613734469863620048973842618728242248138349810691890396055240465710739382419897089576852432761252052452778045467211190638821070550207437953905296327582544129558562971282710434235835975818114207380653419916629120820623723697827924692408110477806881486827173799788414919905120145284959452031107364884265866068494466757305769753987429529071297088755221285863830963184380883926009253453610076930566011939041626887786762281973143937988254156259344485964550608875572829784001066512768649938004045487641158848950529288742613728351646246032226981619898089779826347439989532146846205256764980887669605266959768919098908658280660286272705002593056680427781037409862557072904206256708040681669582851044592633182332035777881312367718535036597878184299792168750598228719060057524904211306640938289104279268097110640939664549556700994908976922988175851761022377573900047123892135745371895609345964628102644369653932982157300975106912274834418497354579636364553226428923390699880207434055981569854809020674751919072512899984282899332489650367304869653711709846974006261500120605796909139331232018787690952554242992986725998590951372623438232095974363202371594499481534171126351712152672393290475042394738238596884890330447635939257399552205718578850559079822398707234794905517178827063504921155305843282220258765321581435335674007029669841938836116121059129641533084985934906020366354093489087816383711629898882871117090819275580855158719870182468956860636533979250799931010336332624919333050721984259653192862359915435513216092993549417113177845449113902259146623109358316811783887425490966379245043385471075968477046085397656970545887708922452115907558806784521779491999034156669349147777000715221881630550990561897174025889391574877824550440103002010544660884159347418088131312585470115116569404924599727546155919062822653492934694715965546552179972247613681545424205458811266184670011910765871990055770340867859446467836045186827335362513302928730888719574905424188397082245011890457534126796511580182405774860998199155889250601808919164943094195212707498433265091136858169120263335364473698431588517200226387669528404381317789202355427098859516739053849404812303106942043195632418529830305227538600005458062791808236253458837656218544642018762671720460527678614063427862380563049529199781354356185550850262095549510282203856551302175719807209774883596850238866410208303805546478751443259106965256335233943027881913317629201791970795816950370651418043105663823205033754181364558010375047841552674631403575651356975485556768108892100000517618218758198143450769410481345743201348814536079976802270386521509621822028860670840104582465170984845035078027083739236424605530910353789496884811553867994551794115131553253347645771720530077265910202240079506370473795265507864266029588171096502310692347890263163807929414982978472568239435933942197693275281185625121669986197144539148937557311173705167300784330881619631992426641080346618723901739154890039928419399086437474797449220850015411817556097520040869901267724637517911259158128090878872361354889783349032943303450887696599337807112737662750035297090443921121058019218136652875364471972976540866314040685752017877117034561667361313377165233718869245891150500818246799373351054240992708581814386319641973627100012647252489173695216727070859985991231355667204558204573559445865800677803539946787941408400980243610761946092765635313479862091356489238072959565410184870638694327161272850629257575152569718650549726250785464249317133036013774347727591787661975328939362017066856851951064595445977743053790992020167679000466681997843847886212511466658174674864652280313663847548226048474508542032755921917663687548750098052620874433646834412036053721277480697901512030431358906975744139202089449976844863176836685930155276335935768380337976779602580643496498172834038277996643528247843066386678734470235943544568343764856982921788316398917323324902502579068987614327481233229570228174648043280264216695778073806291651746981731532882355332658530150420666296626322080396851816967289060480314219237249827949344623280536229548440631834867309684916548609244749285860540946745909793290264615128100344974345267436353392627480169434038832683670411198557490900753771431239746992775944954450038253152528987418235100973197669327150750349775911812290313820799242124081723433890881442412507428281814179317713186643451166272238221787463192392734647044136695699843404806026066534433338342283222225786860526723537706076743750572842017750593086371046921258179318134505357662136625062064099481839381091224669670035160668203827936400664188345496461328544542295249643535322117402155397777738197975121019749304818649278092119882688491712909150303143952306340177038768057989146604636914775739020686379688347977964548683801133612158676368595570362389427469573771893590265318816103665549444966233460352521778375551041619519885392043833229939553584384784196815384784781982458198479066161765067185147370599348998919253223399019182909437260184232038048297972538301565413251541802003633214326059468561666000592814588168234250318182628346869110855495895031312491864742019832669968444911557537344908027608511978509015718272562398815180950977327030914948401225328087327410514195476982696837465321652463418131434650508399628833835337307612521563361312972872901870705368775576222641315587789184378871954197524739358349568158866228476528693321684863754793366257931175691483107059127522245140349498430904070259593306412062882966516724361038508631680903360412730747725220349015219505615260521705615144695831200194017968791235860884861562094159905878244554065018354950985637821589987966225190330609515050093557992251782345095887866835758705799158692273285891049995444499760555246786728566996943187059117919237216471761618582700882722576810775842248901906170951876647344259615430252320339038858857830475304560859951239348149399600416253128699563180296488649448409876676339469309022415050953495729201600880855488835233623555122815018686535746784402636651060993704656838805272947043207455933053066930051291777338839245998898713219355236406073357225508816126010007478216689717920944832409999949059713565244236352995167165141503922551272129817868649321508420530903300968865905494582542427056828433473147392974793500693299445477219565827382925357262081210617548691308790244265005558054612493503829095707356491936497988660868772272001693806455783838174921064200258264463443735600430925212092212076872042899561719732632741966731836168378997778816394564015583612481166694062103094027388957249763633403680921292762435811394089140143876887657107206879735019973650684604187812119010586929693108493560293054674485988249540090409930154791711540585040706384326579055001131598609654164233495686434383937634921773486776025316714248598817839315592678395791393330403355800252367863106963534721085307814442570773785567056336398361114635119816370893478189312073581747574565086668027833766250845116447447604226971792284641107809363893893912228166901827708707765656339747824705519201085312379331280862117467876640090427437837295523217720298189197106164750233126374514850987071493307698207326273337589179947698476533476510241223541283265515344405351760717686113264567974416054406775555310233985950015997669432549482243267358489926425659076950140223393104892979222387557082444941863213499479565978340839187072729122648575303626755300379166772541610307503904198674028977068809847501799753587406806677378875597192740283292113472765669738726097979484241075352474096483468660333226501318025737108887077606477000127650292874218678792289140556242038254053914048251145902880397490872057289351840855183632057277574038975343136878820933968718944230372336886073315183762133553000986322900383084160547828645472921288476962411891557726421340450226623226943112294507260131832880517256701361627112762532563397812224652818360888099537020588056612335632758813270228285568609136539339413809506326910480638332519423465175661967346351344863971753802518978976151141336590036975511013080355464832204776036662686577310683247836782802019478922010645018541797846006561879840499201551898736820298301179515894239116037857506240939024504878417494554191296392480818777876975006069711081599559614027070885112621439353768536974435620236864782253379476026930741680566461107892438649962550561118092921854022911964201738662150716134602648052139530323159768393296978440353130353541894431945763948838010543631592602081220560127235721870061076505570103204806150538172832272061690056807589377032402267102523776473509512609092693493742784837482903370136389562246416591643171008943298862774162565748816393820370681447336301424369662394896239244902829417068828379323314514974649084854814721739478177327653906292516420151871946880253058863634002877657050400736528556672002849720780904358303569985268967322471510865529153109143721680712554452385388233938389794504610906807739062456370305803040254700058495416195283708751029014384450726908213219120163866328672571249027389014184834744024140048306354755453591849128455754520962556845945731096545870339324131143677116811150078021979469787676449085969471943982765584131559490398052603908818754996050432645279222425022378740647126276637363873051968728416745725567235706030635273071615604938181096289357516963638404650879439010039694005882414056071341772281188754782938558849090753439340708784213806728612227266503745351701925703945227144977087660036610871460539115997747478644403599005171110277961076237844687038930994571684556856387786710488521024132672550793210208364875779389745736160906329502040382715078214860558899835698593214056369228281770004922811684114111623433343906379615229597136610521175862937300378773404836642262800474905319819899474212014828951642087594833096277848082894817120864232624521303544027441097483118808010827485471888706942666342647257655559455048661113944900452306915498826375941432416453936273431765079376383401380702627780125337187774376519109114488095724294717740479466204585571254790865070619391992730179264026181711686990654806728034627453921607463933540227236809576402448906370628808706987323255326775399645266784648355287244747815740908232754597242940225303253789529226000875800440269863755644264986801753536375575054585135137964173220735245771201469876991720087254272114329834093683392023103973094845880672320967666352113643773531335966814617584349193919363087933365790285720326156847629346829576536773693921819276706976282027173550973963153985723849127405845087691595147493701644969600857036970398322338508295721685633949393054609800197601796406472711519454649336175474747174084886544038333641471861815447414518470823656186990559828676215666158055497340586945129407416779067128246924118447783609875183759485994281981893084563251951494047718361192919024196788240247922942518779865093745462522486780211765389485098569531329352010947493333279929890448009908823347586342925758288287900259044194662359474880622194884044967925928093044913289565091629808868291619010567051298947403190091401821602813817200098038585168289835794690202518179190805295866572311587769765560064886743960684401237429067589776137875716975422349921602544719014905192870806766337335226649002668780148461917317205876122745070544084329934371594398542199847363860389830035582151596847520837667104053097000719432570585607494905298240152816357297176342805987958177896265906212061012390179781145956045196619199208243532813349857101564948658391165918523381171176693811505628835688806839359332192714923314549213602753451486324613244520104088248613004184006802118817463112119414530728505877565338339341978703832315716745538342326359748797841540454569290051827676444477275959461097821999295011087833854810144277545521907013528968329958406154767243974902275037240035184091698006430743958373330341273418360646999959333170556802476497623474229955430243619816829425669081036291071822376514563792310666110597673750254661065284962719517326603725800188854246653705635854240857854668423317990911902659365046408782504853433689502184836665103474855874340008204549792940182272411845382282420489519099334328502823662903947016798879811589830312413902836509972943338360574528375396570710016868013221211790612746335364657750027046112017228629402501807229625723294419799123485455933829211490062642253734361963545120057194214988751470847782000458427169008040438764011078696366482630991323356558694768642092651394395658247416237266519262764240438658615773646996279573641788627816352135140424022925298348314913766429532190944344745266439437472511319986363936972401504397467622691146322078425457948966794756845802464277007876789829423794899509464926685153779410821066862803647792354116967578949396569412920278457477666981374500161880818566330113960352404085230011196113161943278163358243135068381060277695135703242788486325719832071439963808033666670602099591792777849983647345808809968987780322363823554530499011657275333662875337242609445026440331230823379424170421471560861292368080213100089139764116572675861191920066282933937267234984105569678254705689153908294605666188799244735250889380596191838973199515695180179771291450278995484094928462483386094143523718992329137485011713451637929854029286646581336903018591446093726138951585811508906085881778415136428644297838120627212168684971263376935028891828975404860205915759288340313274626145553016366735680456127359696641364262061388793848059151433851376451486625311682870298822096517219022799152014129806833100581217051268159295487902047328996151330688830323818774506241736021438662709976476576566385932283093256175675640874895693125198900592929743067441440298992493101292802770141878360128237023714456923870320803756103689981476044092307024909730659205700757951416547593126779023771784197027459211325162597798865448582405338481850257596249410764031808295656328338234729414133387861544416098989090819612217031487273853191082999770402306840667720563851676604483007984717532157404974658323513371085176627329876453989133829109042178873237465572588240162516010513786454102900131288852181511744026551690870806723681937212381891782310683070575276253580154346073589915432646783227091321937945802157909439460317603110306644529606565305296461427349281283695805564471521302778348761451417988937405988051306558210445514301532887068139321970120517919747837486151627061496103464228036777280014717104668617019233794769766085747833379236494871966752020458331452183263731551765114940533281350846924310809769710679929164549545881671655237284468013815672991047060554725439221217254340314644906010842597509420907015107056163331820821027609314299814388673303844834796622318606221451605434530206732452907658477352374533023575766558043501094152452147318887874737433175973980261602531018828858318867604634296218640761331942168169471684699683663342667443202490523191454560787480186845865901535715891475905220433611749123225456208781311718569792552134522525915589415860135807534823958687266041634018473028767301460871072505799592816895988597929973621174674473517694708056425712042442090048933609487032348063337398630795102035715757093509823671570223856609653493687201739524344139982414408457184789981773845958864490427825372984931275015804144698386768341862006947777826794835840578865315191552479895875961892554020711141184212975360638137395789789777296024543017427418606992921238534074035785024844370086523015539763253814401782219249604439404741202559611466975677925149344164590789864967501343264026132958251442526157591293619717367004692709577014819469372196255684020827581559116179894647475498819638374500203070627683453921708697979888069220030465084042513710592353948488683850329933116521442630786027869255467721623809220645148373686706601390575277427742023243294954253815729200557742014232162769091522314246308442873791776829411792690821050308958126065690840925610014398995640364966763344414975480277607881343604811361238883860725615940001874324658633679225708086974211491875120569452646814744907918904442772174784928972621297902531988718078753099276789702769137129669958925486036145344205850057261133201259649273160794728116896865656464420794266597458641557517273437072613304078228417522563227005227771868474897957861281182518307331216264917386476578981487610844164328851853376204841753359829350734599632617138329225104223182462759532780022513547284331475318840095945542038478549139040456571342263478432317328247008017621997044333503124716541609403633312412352862771603646838873124421718472260532280173840226946239603391785301563243172640069826191284361110715293922511370147070807071723194267875333974793205703983864071633770448051109375034986309895212242179681198750063832500835339876738014195666044860218320735829168689328325732671532959471405026065277389410763769896420376050079901257086456549559303569587595949343914871357236029859376530620543087660963958588844136369332404127406053856619533269062552147142970282188109829976711222661692802572748188548411559632319400411426671043572242842086754832614328848477300027405902848038398950250152508099494145918483944857913019743795955079955680539492072036036845404576956741642665659148044719107349602252087540172409098486399655700982266558873851259737300519368515687993347799089153392195505218400870470828819770006933356504953043730815172081292166509549789376927513355436762442588778420402889750339271645850334710990691534702946538026196606164935097469967163256122623999837801476136100866907769209580514109135155926206731558229097168366683186360475154225884443167282566072042453559917727364575098070730313022922568717947186073415013070857869335485303859684893261934758559275540227437906430124387721356923209776364530494480688478678848035662180488238471566388211890675991929799242674042989183640392041299878731966958428804744020819409750828019754370551752213692046670758999145889042120476981088139662250308909290565542864173579927673383497458602588990641523186541768824782435535513325461637229113616058482741855457313711313643004539309518315033382681412932319512093876006231975894421211705374142382612196644996391280998790615067762910624008008066361594626090830475358829939524594825240805351019242982274511227505961588668645426024752875062510011539850958104502902546819222085694163870124907961164572528801895443116803497216406324783035179903253681794328845631653937197004739362826404621888215852949345293081694199579947246793415896040560142201003683818766712239878984444089251235363771342268517370367357416447027869902129592769910887848979763912841617623781959980505770369356512993074448095710972971555476335140664259728107742429986104681407002459849367796809823747774901343044077285919695542556152343547923149688280414111223050253148879011638893436264795165625737151821416844900591299847901356702612012059538377297556247182770296100189193141087209983181686290381893956029635415877036512566396390361487903213073504810376607019484952242593563625702533503040117202921918542286526216049659697247214942601467426431698821401187847930620964499803202814113084293609791417549688196508257220708328268809991626472788332962042205304328875802042241489746710803564630652994168663620526582879277961494737974142818447619845643856804081609568032597550311984543833664044053872304182090154850842434420652263701018745609397014551668806206573288909347479858092947833612807789466754655881664089463150296741663163650235733065961222560702665021317455717691849188942582818927772689023717569269859350613942693612013433175863669790487903996393320149840349048160507871805316327649603088592706556528150208467363591603196510500817794015156884304944154556768263112734447195866795236112843882015053747511422018663436501637014126032305843007697183096870986138830998090906186430769955504830634836310393534503634026473088057890256689178242577048325161669955572195861696683743235267382149952943856340847008307037240423700572339169460677691442403503023768875506994335211246512171032961288931586018331110859319281799668675576213543406547960093692881992688715306179553920654237359328352979496956043379491055759425224641355409333457148571455658598193108410852340643519384669001363917870248974889102876634619532737804418177858525212380436494542385829038864657503808779942657262206987359529801180835426943479132668738347132769778099147137488991592013844119286237025782163557550760047064518095604501618433819808767067355801393289672806468607125793118870962795948830110744012005537279356225031451198592506747828530511682625750158555508941283429236286130136273749881183930464555876265197057791253597280036970487350678004802179826805357805823013974080481479640609992183846920517335037089364519080743405435736853683240275823165917432992908236604235970390728408608056163947320551416325602437928552382749145169009651246544581806243726190256032437351601154490961293814723719985676772078277497731303987424082335080788400863949066931382081749553951658887246512524190212880942196771571240021007331170929054821937595625977507700444823225722725401082687425298124733090476538575379616828457510747045026902023702626787314315655288507630765589292356823313478399512731992673294623641386764415453744295241318019663151582402550313439374445409622153242853936279955342885535369222085046591720862222477009943856462848021637765037483645605768480253328366645331534562644072814962994506230628370612437648824702866682532282396905177904798206152648568202530636452970425507365744957452025462987222404846876242583285729815288590752148188747009456087861123755647807836321641556588535471922910104276245249591824435045242091778699650067734208879922615804307877005818020573507708242056077540653046608480258251513895663575351469193126300483513236112069915623213891591096492730455303556972934002743081664309399841604173410074072175498764762884009525077661981171448062403104841032670021597199204705422620207038923895444409325895033712065979436479962888465264052769702000719254616497891125875505942975636265703318756548799445667020584856607405396896757622969450883035470026631988400108666980702362904667525821821564130427822481155003229599341258504911970075205063433935476083681546225529690203345223784256272313994318947908880578533475435414409320815886836742095096422543033673022938926724287625185500251263694256250657024947492875024861645108484176148033850639328704340575985594171948139499542043866371238569571253585969035576396218259552237644608758022463211655191749365213900896053006030520829560428823408600675146678755385986553087717573966462315295902987416991232497269905075854403504848923474664542716598531720139707898556184478110621467879442979733743955950665613244722532922837151587439305511990887812632942743103591062796704792342807747889363367080216806052486595439376096795478565611901348785265420522732583501407105295685784639964633401818533637124633504826475367135003808868336698683679921111221478337543697060256979179000143735424355435544244778344205660494928456322333536553992686868047660854907650654864684087227797520011447506648554744462348797402359955443561696609064926296154728625466479843329742087945175341433095408291030837535853997019955402411772912921082863748132119327429756076511562397513687367104995841631937334298291896409190372799557663250598298281409109324738881063607182430040811981728324409939911741037032915112466122643877723624236325831041188207070446294355876828272632034143265746020966959442626962150931851711387017213006215284843148070607498924549517988902613105945821342722420814336510012405860058537791820341620306544843301150196133366853474168153845178427366965071808497125616044045551450808727959674855822539477527498485038499424167947020571892126762047527009595127973739719616149344921596981041211004893278403860069558821185849563683769358997696010224232582906293502304551032441847017113235003150825851537893024560734018447013891689115417890444817900680907697748831062211837576719671213168268030122351207991362054958456621782693584653822476017462387458035921390980276642573948064743356665060466464531591459151375714321174053760175750077744436433023154057132107459177421121108455589526905400455854566026280356515362883832364911957803856120729181362476977667773224012178936201665463004587386459817070818439257480728080516364522094842992068064960852770492276869408427253793088672653787706927809754839718790758429211537380927807240200765490018524960316233606969272481635824065894844318457409067045034417163849133619862216152528075483632809090627213324905560998207395303656952440135699666634436332191201041893504368165173318730533385156501595976049811707546687369427924390949374852997552107443764842922513280025911296859904834138654048703390370431308077869769838969391907734258186253021937158675567962379516347420929478889125102935142588142126482751791676743101386380573394435321069107709630980921134510070732538823319266329993011582823408614954522434814089166168351162804327495433285547724395565840020844973722600560730890316160612173733841294230539097242412157418128416186002958056029075028792640242760379111253743334290598233614641327682961947687692723875602990260493348683698619527825756392671705830876859265266708324980829959551660348343449030834738125983091623849526501842604268637235838407928234358133247708129111000710459550494959145535875108351071170023967965081012773058735450293147772199007634403994825570587398315758129359207075173865671584445419203626665538946413005838565737834559015342211103862166134925395749723124016283709894505990123018437475607907796871639777323140996565803180125382840130519424404113410760839982035214962899869921841292903715702313583571471871695724550025582477361978106529677868528798924945005425896779680488167617900964467273998306321473464640203819401975304228585062977542835618436818138918710452763592094610803886888006516815945192104600876691134646006869688174462375239217400710933174443345720476594658701723550786124211282921965526678448750059534647807440655067687589028392397289873437371719164513345842269249663116023014294985740722673398479329919235027159124100470915728050016598914671586650054359061240161619554334465217413336163092746851688250838793043160240506807016885468228357854293224024322845225223388497840041228017836457980543328063924384732180202920130792839830834709123976654514431246062183077999507633209534552158748054729872227316458225280100818240306292381901793408534589886951102970298612532774271279979887613394097163567067233543768227993779625663759770417460685443203143928256758736652034826805584169807422390595535022525615815802759710772331337654080916180286794700855015045250726905498104328755806344242962196165955597236179863875529615456920490621537513204905833318256543624774024566205377670709887276948584712331410671920720728435951380266500416313478208088388406224732394963955939868195731439552972350414378885801052961494432193824949891629048234675924950272180560406157974842940171690942500967507162583077303598019447396561706493669240327492574606519677589045099085553780606508358108187594463868098644898947609179979358569987124556214720344328266044014711647665159991674670077895600361308077606434199451828844934549597145959178485997805822753689676531495649237969411399910334415765392932864050901742989806865768219215168571135308140837541244603090849210603191717741880492571604223755924339205572317608506500846313710352912417976915986794909930578633192945991851932315104358971211392299201362983034587460290160514082424977399547978793331407932921029643812949615403135969344105431894005560783148324620669863722904206489204666103411818925804822068043694595523823772481776486387742347126536018374329148169081934903709784897400554233141721421591318343454763489502078136261726558403568881992051443424564997120146642498847773333132128707212500354358173094429029676769534186591721506256505183791500702927486270885165484034859789556350647808061519972655079312347678452368939376167331895315879686467178345972424345451642579499046156790657390630895609335670944782502787425399686013589524815523951030117296556805061751634500675505421457345439265931542698987811441723958587725275983037267051931307083337299854236225396173964187235974621060089532915226715229727172479454081138593732868773062004379737158372961799974099330682562456112124195087817131481799790917396955128658682504795788000573338022578653915056577914603235132791773725142160982001379076403129142455167663131419168206845333788608826190145622765967179861423224303751402602640006018370294658344181924689177790602305727628128311678267500473037781034910094598343349171689807941653506121805373564100613799106733517708482773070210431834857088078051173493412724957309922539067229772287844280925462047584489876242951239938982792604010440079200173499417295038843036390058679539700207985694226166983769969429946464196150051637378293087252831535246365616649566129423933122178289627424654882272336471608921706556769401176842370364806933245460254355037462009773394046341345217722630934909924880614675714749155696096387469677138241103512632657415027932564893905438162719525611708680584410279402506726874836345738230184506011296873962832462933063258715726137598487106088750950173501378196833935968817862132679768486964209254088485797846927954084228025911962934104194496624096635881508168182308300667520610006703351405429562148215546607756957993027279038005894726838814918151358592730079353739847115370550523971234627945988978471319766681446771796350633124172326081069666921070285559366361021439279587450244342779012347905217282758218618521822523770947698657228050575967469280240289532203128177246615553539736245595472525538250367876419820185550968217815405783645556585588529596197908601017693581803338754500622539619691299286192882752818223119766532624465780741015599514949454702973460216655419822758683942157918731243993547346778811247516482616229892909865503620689065713544346740903552231089935262190204864598997188642864993722948713193753122103140103353670691504531614216397261861791109858546787016658300489184133386650765268184333039813402721281227410588834189023340863077874005006280605421191257444033925302243225771775590314308716543922031263671501024892609117846852206389937067383385228055198203391318108411798797368797325728657061993361892610423879002560710738001041914339472668358016809183618558935701443118304626143002572245341959379215791428579327832109498554344352219439719328673268232376194705017941739047075500523065822327913702477707729919050422038743790893034250059359404755955499792964697810192067577883816276907457888627121102957648810358576930220204365982641537017716882935839349671819805503222068434675553798927234761757336686914556633996366965971577677316477790053705710816263709381181844290791948206637501602695818620760195445160140720463212117372487307632038611727658866489581527698285561748404938944422739338564373956269674089972646609868917127025712425595934815658515393309568228367264097533411943815595980965943797009270871846628401893608328430596641245406716680783355456358596854776503584131621722929506102034822760099775667822436962390070530343036106707842521402135576972039459111333605871981962117420067740216903065898048742377183735600700724653275011789223040524299137650586438692621275816086877212154526122954459681438072314045387776384360316447876564462064270583111496510069899917039314590558372981210243943433120501633452246720388518996791372314333036678069925459188275058014643300182785033874440151619350803859827240004855467811259792655578432291871616445880982929761340017344406285951093335802502509445214930615855239528351302577181019346398530538031791239593294904656820293790352110889456170189114565644873164016165469340527334925934470202260176075073843375544596340392997302915247761305369318064336681012439630214573160487006790558607039731628519308314080384991543351175831911426034165577388732498947626730515609637959491050574935106630148371540513840397239314178569365300029620332644612102874417135799927226137186858745245364600120777193560269112385500379059074828951992930240761747601936450380441837346224766237705262162079189060154212328963560371399976441013386330183788753131681971316469442805587120066674014113323093321138795903577942776295192796502898066014053937202655034973364804117068154217586506991806356240136565349049613706096781701559925343311677883522654977037198342628432891840249517052174723733236960242177051717934977508696573021800290027108031380313532628312869856129329044791772253523606420552081380414923986345793686737821485457740398969846463599207232578874255259893365744765636331916249184174669412868087917189640377773876466441617189184406451404791481970212375493033692090887203231430572948147160891821458635683441681576154315991348255772903622726963089435883692176974344937763360135418037698142826810069942984647772534916501199702539499782677207635599817809365526746219611131130719500142260916741787613910296264345484308241849500030745826663164748063506493407413728675022515107793075167270413047310606027881768861833639515824207423181154024848193075006090174641672091981103063076836842783242277091867194178184736215726546338446779992390273750313907583689054453133160124929307530261459288479296635491027846179369768055827598306834044044027742671996356824996060558426925571691676196229301309659855842242585733890481241634767666318229328064987763558373933593135999022107642493358728881092163053264921489181995385784169793021863366592160307399420853695586929069001490267293403070537726561219188668314660008546019742133050716538964776760894902274319581323626703548547136070882014831654101060845501988216720442071461389824389577860789081346794852234352655117662963039635284660086376060250899063033164401443146289544944011150743800090602115938368506126806008822775546368530533042696075639891119383177083430275476499868246870242626274491714457729595235590393306828352162685297814605289089949570017936721936816367040885229872689564569191998239445989172268532036520646027703687773724757896614295173625060979521609527091345156100260808938841154206168179475696403314385379636007313097576771855395043710168215935022903331762213097441046881637538774243283319698470586659179359587971471886663633601245602751560406655962882712569706570614387622054621466432977367273021119434847264904655180357683048309574934555431307693685081147678915797556701357553124728981829925718118781909324478482567920121065520644364979070438510549447392839346790009112178492306616516643375512741220285802798614401683983061832635113392490045987980101091817777949448436124622207853201395293509965138217928064370118121373005826417187124467684499929432088005506997343137435867547811029460747022087513211859678863752778522805795175390578199315474708023869008307915472654072260581598828865595255081545497380235179730084844093573909368114078919573531589890646968714474133661800969559627180560126149783167675929845061977182478432821973828140334599669702820487606473412056127847461816933431037045457229304267348983981020148648555720056289661429765660273948691049901447156800318195120790974174128400315411833894828972647252185014503143995387563349891819467838280329362834712029355717078844789107993198882548370505282674223793808968763616484453217678046198548075412490678715347606956432803652976039430016880972906940506923577424778975312521576866880257428215258622157820849731543729279408906565950361150580568475185085970536607855864131111698061532378711997568224281871570705186780702147455288626284750475320042083153800467357549054807288292718347698432255772781732092410964786549934529361732630748220508046439468773287917456617216465072319923773818032373123278642066507639045703355111858499801580034155967077070322754933777387920332678332541092636173742701817976580510442750271636207829430645820976324273999823775461528639609837941003327141728789422062595985597006611841152777533119255450953529516112512108554207156794094433701688021622802483619081889432646449983055345272115476807364555729838368193916336685451171362724492862115523370283446912949624718697996614607109697886506967268468997553036502293710570516274603781673796387297237939838278979891839232743824990350129973098570653811226581254776601791255054960725635485030386979555343584070825740669396348123480423854083777115186269405632544778655835240376002531440279885178575238199533532246741698462867857455216750625469798251975741394700275524543375534758333401691433436456728657886059007817742879984888229914442569676289560678346488077530280416943787366360469051858749922419804681682828608616429289328435998321787961516280724784058824367477250058788988251462275197173798634961550609498007920211733110820008714723121703998356914964322861134073861722972168566416516485642774828738084077805178644288056407830233814996650659208576103207407166279412955802117924405660827159715441696961441587809187137077302249909992467234392593868602031076303214345102461363274618445631153305513484668693836451320825829481156253555824997471837784632213090028329278226271345750738481511671352188151958647033695938041685551445950515902289066220191755729227787895221733341065523878016526258631001407213644870843212850274922841291885543144489976877660835073706774802895937489910603203314263917002798429441087912899452151478933385276511690853406451423467953199906023863742137755842281891502277667143899741135776246709025252241826583136511727369011729899858632079852092152672915270255947912264378726349592005906238340771339212164851881418111288265046354096729492316183306348210273341482947954976027200176367053260716954352872037829377774535509454348593502044176820187968884467791796956276033210258111919407152806024811353852668632270118983829359545405129460952202587221579295534721143556261064272547921150316034251297474462360151482208644886168029486636654664979791952075434515037253028681900470569115492923373684664445132259283918981662520015003021077323920517028074699812249691296688985312399704754062532099425136736800365894013805280268590423531836021161418026859840455454910457360768138761682659786804013351109695146040415035678938093507009914883840846568484797854504440921710054329285604116970646513021154310962348318067779642044018960182264402066574665852245189967809755602166093850766416422796430393261594929024955965015810862701486916265192757192713604776837724933105945348717223020838206502593925377761421492351304083691504207286789068437790905516115914281675421362721034228384484634543749933042302044040572113876064054420224349942233472458319711065609730939303826599709332709600297102911203119852227881772153497585262043817387541023644648768030857594127579802920439549231077607668836842720701848725889756194079526181353310288917023079379928836252858182892519580258244911845424481121530344703616759263654462725750150209095076935225988423598270599290536198910948790972559096102639045380374143364440431673139915951166207922755068422357176261343208773837373760166463726603800756859066673622205953966119075468167511017210173465068413494556391838165185206170191347356430312408190871033798798468325859606999723571289203112561984857069670024573305415392918408577719638263292920764348084623540074880715943295336106798993260392390364796387069444476973029266200558490500593312101378145896286188167214495783882973377023004309120604559044084560679414749245452031574275754060977436138193974888280534861488735046799004752808516186529758291959923883452665929916231699044148241406990867496630945840195710380099631363894876552216101667421123954867701991237822144079070006762099729636864682219198244684474339678339684200670106282155640683241234783043499963384538967185562849678153400894052279999169082032445487866009872917256052511107017940440545645681560627557739523607652017154738699714736475508247060555334568238414359121331232949099279604099477620756019836805040196791249824590013104442778034942720778257712458516390845800893056056841633788128681866677962061365524390936398239995054495547898817854891971006558191894404085019902654177281398153093736313415325955468212220768912114764973366250196830213846679223650833114421950863304789862806825978947247714049167698459698746768842924202500554865177143157875630986671128701328664763763571632671047089148132873737355378361327596937150738983769468924691664325639100772288868071933496918465341202345542616015907507033557040262844193651843901517890002199994746538825809465851455854891591765376055937297428032612718246613210545015387244213943158433386409711641061588521515821607172805934537932298270037435523891299508103518870177151913473034214142238417749799011388704445543261028409823432049984090387061142107099852112475361658674250391195482899557716328192246564377895925894304314350779155827466185642278713504154646692434372123078685099107855481353603981615270879869168629040235305341604990258446455137288238020556144532306632836546680652578771126770250759281233437787002334192595509352252370750258725753484534672532394072296282705847166799845420272714322536345345053885295721289550092075181173708591106027365991326041630199616976623330184975648691921624260864311511661127015739655344164896349766749683720613893381450174635496086640340676497097629552042381106512971128416010897907373531203058692199010849333865482183318471600388096674992055456431206400513814036169853072579164657174172006283047454193274179603269278858855391490707436249559503531725281960527454051287923948738754902604563889830560904541404781562349184544729102265544823872683472940281999154684671308083955192680839905451708184048488885238807015827204310682279044411359618875646332476790685957646901062474193470729475669647761701328581567370009414629912515605369595015764505032849975270194832138416305324182679068739758623812003349113253016950185233311376525095912906408459734745981512065112576845914133974104662648485796405967648717502595164237241129999067008466459238079435583567070395741615247441594174393233212889269725003444634231746171433447111726932131912745520643158275165117482379244905589265331855625779862240096096697801481685022951288320617991212891828369049944114288323287818676931775332696558616261813374980814493265541296525738167917956592426472907407671229851183105015755897069626014358488143849154788865976160557126414740490253637273269726876652302786678949854583725226635893570631622206654150845558870688748835265314917223477515352836769670895582705656804170456251078903877204062739186862337288788270088804270733697526367848636899855788902148190851712005030119719014651109828989930341494250062822081600952144396757314667980558699819417278388098956229624141031430342966070994379017370986166075771001222701638483690612794577166073628715485503317477202943510248623176366786570452674133281181268106342612689616620500711440788640999658470358545563348945437170276339567030517881462948009624595251121613573853428851390445470180909234016933118547937701874337205776590971504630951258848970717556195761596035675123959670961468753992303041428914684070613790448918328864011604181747921550181431206872291144854813186680058101573946249346470099545012465301093154899976761436093865482732603677034455335439136236712225560382590977355311247394050707165588990669422420035284433120085233038783747313584228735138320218972574279136943275867768063295622463879463357072862686448936879582214013066602233861413477072663451707029753677649167620583344475054913002001381077967427854209252352648353746427883331831196894806725450819035713980461361382850597943889724158957832027659537168781840327149334464667174908482419899471402099137654692677580511618538457062822247846431150370506148004273308751378541260675067734683297145965338469843853724320598600277847913838737223785828038408358119580832421374914961375028779357950352211762176704747702472329617155618359571858432792276481145339656212644415640441237982433107098176080552246454586672287658132001609838628701275370876085809412437518162128052830317621713306054367556516583189256486488477762584049512896793251225851626573537731555424317331755394430783578083659295034285461396049648888132956537138792892072518388483521839273593185054586953961634127726248058346203185341360699443408749513463758183460120392935180352404842264576673961705829027405844764818147455182899204572491707204352491464632547575493938470143617329328502641537727177203535303620477098029424503669789380729500863122154376982389739462825148877711690186856889574478461081397362631806658798231495457098287526225298193766710933274058282606941288618658580016942698750188617327595925922603514278627095770140302783427122344545819305070502769366292992601279187823762664105924640800499295553132332472859058804169147961373686742068192750999312108009419687820186473238083899807678340269538224195568130816606678546523169141307859368806430093227099451871954931390032911775891309231391814907919439991273500914891089034091372036187497126915778865927382985533229743088629098520514969114427057242807282373871690771213449827417478225655473986015486133102210339221319813729444622836441050169215470832567116179401774990393488206321438403510905119006947496699969431228177149094752381502601072681306329092193241580406749888409347181451958838286489731894389178058270499487060503348884061312657095943642933231825352633721287497594327836448786730747580360234833198860417159084226732149643406446552158629091214640516599583483224840486846012131058987344374067562742729151914394425217028019011653148999331809335445868569306897322429767079263148816654095442651440442525993633972959502462991772495821714941866541518079049122151373166113981468680492842334584518958097420132816260695672557724196414056477869437406212565263497111853634635773304093792998454149862204890839160548633746034551191572446759663648951946497964598514093361056031905700915223401198447855632980288150383774071073209607409019874584830798553551994374551184012257598671670460598462969145697189644729182282238128396252146653812329543556674857641094859386871880423143392760135499703046072013581858299908192905456073953621385117888690770062682217388762917985698963576923074501264985418741784668193149779256633928202270660471412799774399240507244371474757128854165686130822886252670794310714406596518330009507557979026899017001528909108144507196137129529843452952730160039201221980367733276027580864475145086701876327297721876430250120556587111982091820686144651394799906418661907276409536722687445892647762083735024968341194136098998991729498131837395316898194529795764750017695487090498680410179462257734216271414340677325116687506627488974344182711584766633898744941581295456832651026453496771594086336020068211317136743095533657764273996927592550219503119090160687297709613162459990656352591884824717856335567341441468105115347752008087502159589913742002964827718493690765453252118899606542028163652761914024685363660998907264701426441388479715950681520431875472224600098234038889956288512604714713160897394312781712193055025435730020076821396281332323981123324399912545522103857509050321494734922728329804467873572502618166342005000873952663945256689084574632990746365562854502688657791574719730341048484394085394513883157148238781810384809590131978501103343737225087604413013980471504948522914608801145810741249396720912309350694175185152713468475279998431879509581180988675562520552859631490395994980149474641382631228506626745155987526484434628958582344499131821307301466262932242232847983612623228324534669365292182797082330404425031617963353247581946022205112973127848137586657496176840443693798461866299954950363404864790886207172491773321100346112174650616259637081097705015870898274630314512142577931588756413144344102937888732664578738941986554018917161934411645381031035285640277738422581953581931721186715088426412983481263235380233987892759442419630572086516810232369422252622233711754411899385764804029151194819533841382196273164949254225082187070349312646192393499475551192065852818597699944566757491312999323461683450544130518565198316316547978806679268166134931234877682809985353598757015532916331488882385921128580894129549877555585108888475809979067871129635314007134259419426349261190529741668411609891390710141378136602660433150459381629409599863995106854917799430247596399116595538009061703111631327462286977654746912518408982533935191387626551814168758152672614393258132886874205302826553071805296210639531636249332404752967501854314283262970066528428160574473551961708412747816538727288448417458623085908030896011422126863277253317520954809585367966369482041847487868823292578867098951247672991038910501177705891311415152338187491276227133444779434782638418989676022873795145039897567849341774500020086137418478378955386960853702831925676056070695311465576307489532885028558598466346719446323565127104987828059005686574598582723335516047143530539184962461770801527739476658117893096199385008296498441428863407741752092185932537120273627414272129915552349923353869774852539087090077634947232286268081949215375743674499886697228236729320878482055669297695831782745388774071270136677654884154082051690253234677102801132352624100257819191815441101418550107504107579560755950520859250751620068047185780342123437247539971893954333191248214387513326683642752368901606033219600026059842059302575615545579064765443462521915439593255761212285761229912003242461180537147024023236264683752328235178572361935463652955540768998478570193077530688574896983510334542903813627231383247428024337411527490455390050305084373225483774063770711205216197567329073446410593432774848264532030933688492418823254763979775986462899488428857298300267987744670334278433136593153669800351574674306338888045600631229413147612349153096743981330479996660159750282965090635749974156402459839129688467793743210851741097251244756668084948272242955877470430952222601380498952560862374485714780351083375789942415172813596049304028049927603679106703621164709256897612296856202731828202052266203409478525480748909527211594019842819999061828392127789237841899848247249773237015511009783581313431582611685587134425457866400154134725306524352216767872239495197978778908575126103568690386216330265208675332825520985107636523176683766399183441451218601670581655016530189081817724404506761372367759739405354023047959730260878719433206946481009006568956315778989628152481139911316214261765593663469707789850735982821772870035995520572177530479155379421053802302853047313845502026002740725083712968360916425633716847502398223844256523057507604743530845330997410107988895484444188253798571847868673453741773575589702918147654213570425639060995095040520030441680485043371354253615716290558389795841172451479831228895737593275737873744300751400040490299963073041177502435236753090753963472616028623669488036457186606089869574789490269022912472361296155619705951272942448454518119386828386837281536594672724696306437794078466125786909800173096946162535729089636463548558066246425853245416610959362405909910691831924840342862695217436561740001743353101968130801234560485110158648999057077103859686099264387972182541846763137683597797380860761945236886440641818108815935156057945636458504137659307644710825709079222879105608033169049042600980991888275690984859204241662544714502871245251222209103722397906778492080128393686489925442135048744370965303094855257024965098489643949803500253425024704924890477933646577855145424837007024593886059004242110647862780806329010344577701662969732390636637919135623019319901171215111780780626898895487843878489152056196144267903608981336173129019093010486200578276865091609244074220956563086554021845257900407400419738315941841169026019755305754212561774008560251678950466470115139219952543975037954365208883235068425081128948839525608363844774773985536758707202944096964259831051361017447274505580125908523871857036158483863271682437339489994745008072538302236995739658571140339404621092751140364343412096296869603335160768030181640113709442499657639535368983929495028203335825540894784486990414880367512862086924528215608789748514117241177651742135670957628880805552323991269335019785684847786057220325863123247604158908023116284783405800141540551759553493205666862881560549479971105738575715643577995691225816534173721199640402459118693259807096132380648699973364423956446473510955398441890837059960611476527082376357974714872567497412567766006910844053692612610205835402687946640517099569829141754205492119623268546013118461488594260332630907383237887802596692973056695136101192695345901201349248216970177492044845515095538604183404357742112646039530256570909770614288197214890360033471431005123366852260104925498064729881337012875542832907448054851948093578434595300311339299052230886682694845139806927184375723170121301685398080848333200626175089053329034133785918553642124186986238805297968217104821035003459323032197163185877162816921721884167676563052443269787913875164165547015610652330985409778813575012529266682339612042725617884687971021736364448949238883623111161311482524543432308084725452595319520418151101227538527637409046556027349243763715806377485347519247654237286698250708982714358830585822243460984001437675072018908556327764672687637961512821803026876732999806487490095225414713481048362691835528735813282154473467182543337227464506132213833320710442565836827224639944348265467174296647095160611522931842429341692148171703716650996576868589706277455814990848376506753739347969217833481158791171433817018454376715387571397445812844524589132922771115554174469621473017983081879871474607251069220431921349989386131557447044622363987208706322525487988761631383285761806334637013924129963950240450547353180477339618765588806520619529101347133471413859274237424999676440375316784114284121994532743950655576336295972403800566135480880296874865138780302967618774342156416807989345462905097284769747641461266105812330476970905334699450921843837101193337884660029769114928780065680530273769465730200821299123364225185554356627243689467606567982300335708650793117461803133928499318387447206064492952162187974730116655418239899044886538752899800386891952911259561846195643505052439962190833956162980992457717423071369074400002340597407623678578974418350145924414962242143473389914408843628499571062732481420224918429513577722900507843678067891534021138191279283904720034172487213739303534283598454660198448237579672950112417908463865107909767479680228449076505964947992613421918415378373820498722661835008303562980065092395417848398897013462657530089815267926790893564955846262514586688670355600153723829418856882683976136596331050109021784202706681954834314477996619339837032142182076082470339946349667734413697526630069777997900603651174642197349507522184684325331350156121975018107322734083583063089781081077633125767257509655376648174593312407062485381143313548245045597144998176371406507423265150593285785746393512154301586562382855982287170408794711263470231919977722012876156597482345516527577407953739130195025219405366895769236324217583627394489688657694094930576995382547262068944090877432981648336618735891575395079692280208505640285533627658553642654835632281430849081808174293038547440684621772767083501939934772266931805787819401280992938361473099701311649233311425817358414960774068098152346763425535122398359292204915863853587357214878829347314083794292104210974109471074431446755959208916913936967600827642544658043786606490571915517705623129880880153141290930978463446768696425171681314847618713866368543582893310257248121185854055072461487542737351139547314054066854193040937589749942179560330227102889383232733527766341019944620981737125437124574863112117900142842179970644800276008323731130076400877623038414469233141523218722662050139223129743557350532543436209409229576367324258673027126362696931588952368571850789418270434895865098076489710220877854474880549616164303877174812462322029761171085277933836237592952614689958587311841202379300221517784881862743446675942828395395065818284140009579173548596419799170662056152262433090986285248016118661222661358037787721317909852327695545984061476689126753167137513459025445519322354312736788426681216955138587176529842100857194720547090028574390406755367415271906615808954966199949517161360623339360751173506601237625065057912945497879400340294395423137156309769120377723067787446229856995902102326622358583441304368064508027817116617465876834991793185523151248989832760829816257300495772820049123563237267177864350624682615599784808095745807711429436523852351645093967983584247818400068170453158664287143865173621541682791299510978626939863317730819798531184781967448866505244329652310998548452777397753857157730288073624577242718124398177050381575043017782432510260218696611077504730900450621952376586931448399473575943116929427639653428979313697690646465819114443423763247848472298880928420524243686810081689148970969136059792993538537692246615607324992787162061257992883629531471892989980028427488737452948527265480517765438940327643335012237932481717919144886994554822777479491867956421142693883491598056040725381425361632194609406161107101804443187120667010502754761773229995043255070051176148006250220617146113467834597378093830009572908935439097346308683032856900803304208692854802299050213705894177156258887787015751468545770367783972948236729386636023473601776600175013252078581826708872500393500024817037609491431265812204445032662819092672689049845975659141852653138051601641426751176459202907140545058626934044287755718516111129151983815841978054357192583409514508930876111403207241350960090023139928275912723175285821278892237678672539595671693713757418206928558874717892507930063778205282927666216687756663330013643475656689521603543381167911784439297317220614768015942912664126388449765531095994183552815822776951768225204545411290903350745502938562597187557881490311148675979385488268984054239380425314467285303150837513668757949295771862702406567194504939713308648943474920993773648753395553632167649080822480383064647656100899547008137178162092740094322240181702215431277023962770284769177684152244565127602946264034046084960165466171266165463582931801293945003724033333402858243144892700019579991646723385548942805711336607608679919684265173290460508130772707105798602520353852014093894206575685739129790338670950732955326843457476819670729910094033360820797348223126550582325083972493757612085334905693494462434257721352959739797576004114424953641402179414463443121103160822090085422801819000916727515566872356820439020579574197070888707748796102408677246352915507601332247182410088881977296544925706418373566109121869213783699598865398946783334431992779395458662521263621898040542849182150921060877212754156935711653847479128650389856946154343643079002955063705428446225219754235437950934975919533781011111476752168958400614912581944112710444122113499025270145730617018056078344877954013917700081476796132783029991314073713604382710824881987087461743389316791266099541256064925221388624584604933212033559311286696126236212222854293990410578153972948649963921524658015835674381714495814641186556205670988781791421787298223443113394003049584414726079239724294692880817888005888587257523716660059045154528023786581139586786128247129332130592128289053277585593345161222406402266067592056270028666112216109544024131803262916384785162248987958043928419800457949669724077177234692183885249431417468712265843855837553295745996915627057462235030540524594404581687025380609590271249098093363649949779665436508406059815642869279253912102408288874397011230502108182170753142912129339370045846173895559784436588973362677572059717941814465491297494585251118091347879425057979600351276247766516725226501208225912210810222613984242427771259575785831018452860292238566705792649425257257330819670894125082309763665797428039949608873123591784888343143902956097929745327443281704315900179779823563264967605356330898731701858140135834651926042207678275984959830165066265688465288764014094234685344011893929924014082208986406108939205918140628024853191124917866650525152572640508832349405591801803453048898070989406683942738314949282183873515879456257727528765668750948435188510735985552627829993749610630368700280716842701631578938617652538047486703990797529113965592733410549044204246119998105758322385699699988667151176255099171873455285506499559347297854935641713517323205889595699448938488115924247106252892380078888504097790242642406993894269632793741401233436844862215867459273708161500146857564081788415216130466890462579389685444251176183321631807198029961506224287784170295918198173681374867766661062798939325297391574988982735564478797791841076976850250314395045183470337094956324242413878193644342227133746354325115764699217301418869073570325573725007348078937367656411297933475203436177931081871310124570845131640088392937229368749582693080234533902318976149382893225227485492250359438992979249016590410365209387119984076476490358240741269101307468050513311921611867747203251799990509112184172447584019074359923633269567010499649825709859718511027153235871883510723458180932392486844472803748488137576333731047851861334625763772425067763311192450368260148302645264746853757966516292628562809428263083231247005641735246847181862766553039441672332808349356354423447234454243757439857867672867728101704954171395258104829293012741328522407271429694812875673653233493651670066900877519310627661224568943846044894028005069628415249576387751410469932322647549710299133685046390661150639207611309872075634077716952771706263389310228934124743877145348047956217354858907147396116132517056845949481581073369320251408680204429936298698861620753221083353720692917647747684983587652170079119544170922774197149883126659007982754982800121214784663451300510197010652299495855342656329236283745495173030662851539929823166230998397860463715230871751914407607223622583530340371430277135338327709507479683200811580026270526284963759782126771591921281984253262163773669724490907409623401800566100671791738840993616999607620884974742837621687280214443936752141150603442867118754097230767837603837192481193335028483323266491960332418748235803657740846464103385150795677114391856861826259192057644207253357723982480312851771561484015040552589757049896301409636096246500260726494744566244439414489390530855438334726116377384614477450526319416405748925984742330617579576656994113921796178868254319635754906673810619705272250935884210625960266015141628177762770068787561115687318179399659223663471563795852356389323332299963695456040361321496413134781424873379532748125683880478325053822171806646149897038248596936169908067097762143931882663987695432323384882829215365972754126571434722934174000843126138115228862988143910294373672507296612562279187171943790878274425331054822450025221210447899476560749941654596866000252427889709452107849615904459558167061146931666573925428167819428400447239286452815727361730901278187644941181137276614595310033274776254755877151327078652909461371380637704950782359101222014520562463518541606396638078586319735855023485213210484171947345356300427614006971954414234849681405168035150917052528291283939691557080995958109286752495696931585957861931388960124131937132398007024257946413442355517630215611863633920191455879190364393451198031779525931425634537967397999652861683932743790304534450750750390911025009191672466527089435616326550328089118584957292822063450843863335779588276551135106024046370381583794575946471200153555011214846500409771717125345668925985102504488888654179358336916336569099273735504200178015408220815203556877627614923409807326960821187832354094065493614582715819050726777294315653691864240322904332457834610898933548403033297089976947791126443010299740566681543299593459369081283273670822756711560709106717761485299040289933559277858461973720752158268446795357676411598558082405172829057416231550836172308381472311340137847838370060881562756693384161249497440371468305869156688220721084586053230577697855057190062765525666686975289193034234257575426778855493126849618888067057128578736430955445086687090957551661274579124815617097679613688672914412697205569313834192039335458853774968647017474880391305164080894736227744082987163122031737836808826100406359345207744316900154928372982208176932299699361688001822603581387966173515467954295611249306233318565676879915768858854631149862938740091443900199361405288713057095500235555849156140569884999585123311493450683909862543852009022146728316441737345742626479320276771865896042133586759593136926700694744552458759598879128553257028202181325000310285094340519265313657420014009713406330106765501246874850167325771717519557457209432509542186687401810745285077610639203379891573023427067404444333163992659974562481261617092064195700537242671659826154223653111991927775150496887051845284543785861770695918337209826298812095979205000859113063663551142756237666962015008292090024571640464209130532978355921660532708749796658109717248276679758564012182933003162917648286338887135380928911404749310011584009467079898798315349535329196942348251833914966709903098638669511658847217387534047404637569466591392443833200927854295494784411107300213381087192987193214236791785399755094661846098119259671182516618757347605322884451274627448817130662531041652992833737245426257815262850363341912052285809805087893232311389221664454959329676780132606937376600923608017964463032185282849293474520118790582117240372542312674733121172454067373124879353971827967023737345825376480112963757605289170215513124132143193782331068622138296669142439398830461087223422522008610864355034247869083183304231178088538951082398069855170885437746257709734140416812870298709212606746816866884296802432061433890207141368952694197407972331043097512339910441727420528665407650985610273142769786268980514318600913211117497003946031220333514442794768530178543618459039838192041494916360023757814865760774908877615021906125341326319223728348298841258863009538309469397764186215637538574136634232576394204682033805338253799610591995441330717810565267191216775912967684274514268536756296671337901190068831816510777450958988496935032437438655680889550279174797323918776163491712231889516228309720698504429449332277339641867964982956064269090152008160869998275293773324175859459053259563403090990655329683477071383168814437348382816538347319633042821220710696993005583866078013858704380289201981979288115474730741566589450744383009013506635356694682633487944699024146651814766141213973268188215812679350025278261882979460887185247383992927606764798259565363691271888518832383313483078696953137944046580185295032716752084909675766784000965479901848365297715796584262648622089167579864693459332586037582947701339834767499832627436448067123993881151602979668420867221678053647837556783119367034618318960534211955031808511456718867940599843430314222259585725439701854634883613597970809526788463749931565244060063492794784811755252404399556601696061726221522962554330057883569006929921525890231225376548208922507173875921079187784940843862983473250601623355968958263060096425432424575370410830800400472793550262161903649315257987868306519918814970618605272407837262260776025540160362122974431567004935684439636299091370381559281986601230258313058188597730121914430967089149886182306056411347144239362691618370124301205461862720481369270183074191771855875611958852105647394050144058360339785609549250542363802989071283666354711685643285327109363200739912563366410980831849722161121177754141344612602888470510812266674384973287454855533502909647778213455038265771626942104725014247685121622874438008692087614287038551315818712251093046305996554438606898248615366679856946223400701811499615458868274784829208253626636641416300498339973849910921285161602410536076575602416021434103464498893035510052527344556894670339675330833340968824039488523886695270684677199173019771215062685165622434575035925940481544772957279331190366202407089036028381695820192775207608981436527845425111390777407225431489945253860505784528194971623387203299326164434117168770084041217040366076243311476750829181841623170079327928709253709146468656383919410421872932568717979021966309887221017573103133995076976441253200190408676857941060172816368640335998116865574866556860775679328098328076044494346421018975468185885776646526363722760130417875823123341820315401718606376428871635076930499610798702525865812689270744273002064637183877366305088151661816638828836885395989678048552772684190767118762683521485812859660072481333750719950569604202615607857040096846408618737359695011392563516462747633956956222813491440984194872993114948850409078437977522402892080296666980510220250475636516884287630400977879831438260343006131745202189667703814395590775553734039746716769419832394985899040313032875660933502008382778335200788617815201327649235907880448542287321577261574140185981614188882978763987633002679269187519900813135056206952878652980729849576981652943352157422574745655756297591298899473652943453519801913784875118212016699869496355977910307172874018614267353413150769212727134320161728486871566112660299515215662013179993656216276197297145970170690939305432144577565451639086838008411764978723544043936537770937755467214688155591985456198734861785831979731675367898016916427805760814478065560178855588102214867033358268967169984110876974718300397658842808596228828008185470408479486946663701515827639438335076013248498268750025396846110999480732208316884881215040316312813999357042486523127189853011004692331678844931334859719627881310927863275100255397477847002495243760167917882131866504520489677949206663248080068441962745310009226303824116138902027017454689333341357423586972232957260408302980013959262212097730743600743902005596373346068903170420805380263006928349103708482087442433318197593451809219226364825808144873610000271062231917209042743682185241499115681124894560160171957580228701395599441685943389840775467899334217168519199805766501328896441784863647758644244481298000511281083222758686769084539446526447025944545961973677267915634434120105593811267854095218904233592018870477382492054563053360178567117926924445247161303774152407042964393401898819783782795499934554186722132404456677785191713648513741305076572796279168718064752607495257649421731901229856121484364275633482261914366206718094758087015786831235117127162182517843442700184957595240071202537936075105446921650253632491184136944951919346919226101662144292076908753273575866472912481601323719680827335071773804999611767488116524313922814883553108605305076976910077844464376018414250594190367263937950600358411225267033444133616778209860741093266389908812089097962253206321433265246235378179778346026057039113995775441382742517603222847663066405191981262253467133193442854679166453182624015278266276173561270174328600718270800168302851974101140156470404924837433899808699868796579437292127439113249177769855006705336198892262442656892832178873767764102422100876490024066986044951289287527255895768988810342567621455121672711102483160342150732903692514679173146069483786335481875831503069520324294062054348170585486163355318571668806194927183302954273301068408914289964750556540623575450657311040745696748749367834096431398258397445774211101309305520965356522808520277463214082841206146399589685208437767640980097074423380101701734402883714375161001706562516625704144962467444732909188048929894954701718884101564087278888071722661130460897312735581789159209276031471209910314727580961688647031355143034019797149865959946354983573871616396739506768946982246352503640323442079455697541253163211783069462354341748641141752166313060208348411182916521529467218603245866480234538229992373100594779065928875247471885393809700150879774539489284118754051202041597837772569493275130295743938572140917669434202810325411712981688215744422743352974601082326705197708570331835388418513887486768805557787085871155407136806379561112843314387019528035844568796997007796090369278545154374502772907254823934786254402315348817754053334785615741223119356568960292466605728199418954024574135127613381687381390798171885172831830867183775887870796229248774539041238227499603574717976638470680016252610558094089200701787307024344720527845658010137113682031484769730542492756776774711531442573571125626865413156208305690494074813040678546846356291792474761425032971653761550527187125596257453989719157830365061448948271012772844744764066862860765574582706444408769880094488107606170327026878190838803388723788679773317936318942500525272546936310186680496871721392148815913110546289206969840759736085711995267373274018227666740238801198270142582069476543828508419213482033852041095629364847697732904004184760607476332107194249747183811411341269709882994975426069127382938494653700928589900767363407297357850744822461475256709555473495310093738433088194036279198703887815550244323949662669814692026706853164721766648702364612166780691898868620539614395604779283429127100223739555685846588218602456323963772940511387231737849957231069059169901123073895233791026915901500951055015817668037499268999490690018331279671657146987211049386751124550115145636678626912043057953601402047812045955193861255744737962346581306582274367066884540722728373281897436597242186899129995426225457508612584473507724744866373410069323765318680198336396943397930300628630374832263477026707664244608452036694579778877531644108267257975961176075198562703155435961754820457624378692623701674291220695448340916683045098359436378675807414502733357495379530807297852091798351917755260136178140174975290712917661525752307180864401111516858866101697020890515204548693963428782629217288866505819204137643301023250284586905478552470669726104818413313350869925737783469705364281132477461974060918983556872310673435691606583673192922265984023164831747413417625036035617290727961656640864110573884806422358708119834533566725356710553184832732135419460120604470836137100899070250328842856062114466886563471919890644347332231475349618853394841276736785986137020122217527417283623160072885844618608632591942757795963749840649189578124964345818916025382015338540431179551728636195975362562705796871404028609832794942913142106977336464535816426289708418091573351629400398419472178594979407901656262726904100552983594936397908065137087075929801432743416242881513485463719815123607689679974003586482192912475449647843609961391280203727639424429162829395987036608005131205260190471247815032839958946161154574712693265632774678724106445025816997839200825854210894617688180172099373464975731432412525593752625457179104628274344565001510100969691221869093937338203471474244551313514241432216955902259806055143764064051362846786078888850820536991498580999962722494988609981080471542668347348222474296154138638063631357890630970232314491609664220780266353571452814515795555637259820617706527857766349605442579510975553531467976584282059933223037381237943853219755454551009075926265870461533240755676669631469094339663692618862264722990716310946871641958850225603662108201251859017068527772020695026384895487558075739287044378647075560032041643611142218720146814009479885914862191757295502851104412032187806538860710580503851044037532157227203919230664833104319167568609277495498973354980764926637558917475341606690693037359312513214868510514090871594663362969605198216938776093648017408553553489521291755234592178785390838855297703984665757778965167698735350243723253150360736512790335763439786020565952732779638085047427494632572497808702740279894984669043182399441122661594805931093298653412586668668913724181005954776351992367013821226994791871797028348943099640771723106261846506242054899812146205837584309980565754684306915711299148114984686646899097798295877039209123783788900846528861452280923437793722333348976644543552028534250532826890266998328086879487500122234671433178417209858439753402270905783200271775018101558989874694614330293975575360668142009602644536120602605095136415104679825314657842507479019193689943262305446710227255600565700332979009020577462459137353094921053393994159191632127810760469953015158397521255598731504317915401055413496030581501157165530936492373819715100554039521961699094256536483748138832306319507108640562942260054063776931353826807549274694385165666064030001184682532024901039875118291490447869792959482255107946067258167352949596327768410987716529590837849291857586056464603480443437405763499422570553902273635602115740885213235635232821678672451719395245459180988214736199872266945941991940718525188696461719245227913802654415511846406854181136178591851062405945076523488430876852153322429649485302353390688921787856131553887798682968535195238676693522824079201342938963299106720777906530724824809549931841949109302046980110607280648386902173384016526888638315502572694831856660711255372468151382924191927374109265815973302622151697435668669309920083023476550119610538886033015735374357549786977198559454871538366066687502449138890689315675403111746272714176797489319148954138464475758438464336292572293545970773997979896845268136714516500645896288114730236637384416525255595077230804687158046155328241483105603461636048336477750492388015254760005337325285539143938264927289221578134000921100725608968160108379025188188354360663275855951645760912924038827513081551723937100757092973328397746352534598576424953730508853266329695936852555740416928569588545678207131602296232577436174773748361058804197587432131641143972893818028763280592167298271570956550178215569230294797139515426940303546175705105411348897504473875940660368257335040513992575793518139060902653417453873088502090189529465135766484263768804877693919495893959243709637214222892443264081608430808088192414013374427460535469902768762925582735774253680471034256590124494522133968832739422606498781008530734612121512306098832133843686607502013599491738753787001905604708059350095024813681625033759464735691902731548699570953647149578051587851459888342042339701781431302142071045806572054076359837747713702830367999858840374107737287046885497714187974316026898990222614574067491257676787468751365489299088696941445907529064485701708884861665517732441119730764380190879593994759271409494698095186321479879006098430968416332278311704490919274348002540739486114915340826897972183555142540454925761305789177862576331180024380921620238270742236028691016742941524684504208864039909388183285056021084018866597929922912007234728023853721008820240904242481571437969069455550925578772157849706607320212897750143666607855010879951373858308856901772246000272648622972804450076816909792038457267386460422646362968470888403077432273167264273897577920839031150842329734525665393697756850846432856653938834428353125303448348043369713177046598693499766617144292802055232468298871417874880987896915786546514662810830289585791862887914699589294961066170805863924796441229838416007575396050326143726287250711263856178334461751993777821541179188603569151261377147857716411791758494797218415399471950857337772253287752038182655743356851710705255530213495362100217230663278437605955586650261774183743589123772170862746904653233441812397832657059249926690207138436077446211597277414863170726048208030277322690917187250116432012334068261069827443027151544533150101409601742192503067269136621714896351144539432388274821667433802289341494651072698688471975587860114750484971832136661829956874210956196790062514704978570889716930875945848145890504348993002193227646053301035703178126020891272943218697688501218529188539912832471989275768705455623046912916520527900420679953654297456280531728331367454485270591574233902880227603304725920794222412342965587711990477856673338928823829665511584762390394500293648589060242543225256085725112422103044264746853479369028708642722568524621525737508412270939950927140464994469013945410755732221567789431944810521590288044767337965876859393633735648244717131728002330387245538843281494972345844271806521619843492592081560991695621762445407354918732574868881752632162952874258203673505852438073322999995504816229964358431812324481675180685051696839673464874688602736603306847402151079864562247351502594510315041604784844379859394574368350940120908147496216342481967384498904236723492841515777001167773082048926534058069274730574371892496292484881770253467908714408872583516589048105529603381252272869474141598574917031120678082035484035714611368068076100865338470729426941075587668140102833116892849518377696199543623214016141938154039526946372754534212993303168344321315290057419498075595598533873216177864634596860948007382019249034857788247449029847534923351290983240740576813874962814881854141631582069247079586424603181279137914787593121041069691094175489711635633604534545431858932125784706802347026587447180013734641426968460908628446059226786160520757020515444980890700195980509028148131263609404625684584034734297726987860474713598791498745295647754381692893062918658593990842312784342397509455636136821809873926695422793794161147361605766385927728148189519673723260724525790861087146863787622229305924022018201504783684343116721501205510845377334780374440305889737695482863906962802283654628724481783586454686219692243735828193194866486335241255348755953711679909847320073017508154317708488267234447073244414643321071257350177943742979877219521027091045362447914216294960482714856793694902161552316517145325825711145302152618917649248847924731883080265185424468713425279506098143624631247823665066998007959832245383832263118747743236470234809317192013458685615739911680405640672721067926218983674298410781323433277364404039911966924009866863834197025287369819839760360543634340273740556047488651147974413109273829166412460665954625036855165042067220321589251661874960317868872024587834148445531048409930992592259196427207297089055805181036792650326273799823070927546584844129336725934449734787509812329124287095505258469706550373899830850926377995265491841576486772945421990781764042113897974555955835099640988491412616938091818391405245625588644587005637112915784438098002118899245607239408722581998864022560561589312597250238332309501487287551718937720048955274144247111483368470899797443794423629998076992424647207131840651052399803688942001731637275350783517727937296691466404222500268227037914436838592786215764528904997177185592572531049140476029030969407308240300010947550923792800417134888448554256691146478686311399040742085406807661136329373467016748239267304215720356311630783473602955686553350591881670729128208031131090763107617639624172666785321907321606019928232540886451924568187264419337571739602522345537801816497050942780920249630072532944807274416496699240698712493213316512413611584604836526057563094421165702483939558981141302672255108132113715355219094958755644402976320760969489440056789176588997836694137010450923128762772112422808817146999744072471772844032775661627024928104903104075087766629645429700818784242032908525873290260277900136332601159014663631218715248973276440535546326912676537190638940907871362585132186954474503135243449320563027385766935574007218561654199249694364907199798268426802105655348711344335419558337113592230324310860055939545503449314175327606160073140190123174710603536135091531956950486177137613275983066500950200431584489376681554538974483217897979003681701550998952021020376003121819437201368568848239283681403586181010676638079284273785922234065151628787314039126201447808293103872771057038620821325558579550973150654180627173045290541555496433936219380699195377868685792955951860055711653496120778664935301816746371449437881056081664200163886080273308945506724820823337900181208795464731992508338945719160492097957750398397425257870574090643366629798492400538691465144432842545726443472046533864520447862693566182650914877933736061003213676175920500619780112218441234997445296669432410276640487899941988107035244303189520256089736962706451334524491836069214290164514688339476067018890285957078428682547798473088447270890568432344967300428883218924744900445957526206321094548368477634117780513598379348477603456343217995327979557930129267554199373014408328881904168107844338282479531214103288094935014749951637410829243539192318031916085189204000460722934675552544764304511419105187588249604339282594344207052678433152400989808866871584818368003707810359346536854627508908323699066115349731198732463159843277770074910347140526356908993290792187709978254781470361243913542963905596367302108814160493762798676040913364346995977160047095343769793607697681692909441252015018020019912859302040594122922331587302461912508798706735575483174463829187014320857105811715708856959033967260855223330078781580213337745550993403212397598377977026502995263543538299845211856214350260962654946304223524182830762093101231506842132255890510567046616843095766546532146398119021629659110308533732835055147507787669902218315541867766440320783831408268631657164592890195285757949619425107934310974045347745689642998575791377180578342580357472481296082936216429700621041127583922497201010069430846110011037525958954083764951022760067857002593066461847009180744131774709824111903366510537649082856496923825392869233632350306992005744326319304207424476323595174646773520960811330456477057029964025827322608725985790023744045915022187059085926252131307157337843978602596174184979171211151423713509180413624013120213524460007711358723474801142813990812167276776673415600937333930106861326104644751906315145508285512881178385415681956202900023515163914140759735259484495095427042766123102289200497905326224859004191523078029876985119309443341953350128297949183952219174807114439443373375081381720752363911492647228181360848663555222978284690521618890243341010706195581153112874479084324624900671599079017649614952383871955256578617016384127831288790126850631239442321697964485387435482743906445977926678219588686805451090612139117735047649873319861321522822513163271772654369853443040440273829126499612387972399434062564775450522234445308350573101466469620278899128298945844758410911906309465536035056720826317441847131317280420468576303354464962672452988515151647384384887934584390023476213281938992300251063718188386645669594428512397056434188094910760362033018042933183449621087334937069027020839757119961568063380660581165864475581152368796050857615756810729298775773958767621184265435153868424699944051058508057559478833373437339067069692477124654972943496316408719929345448250501067887709405103245357331110677269353443073016741785747721836807883171087324959060842051549816323392813933964063610910020292060572488836425383150859299235152729200683525271990895687178920671465799304670513206125894986543888959213509402623037598679222280651183659168567888612337911255556154160744600889321555467390888492805170253093641189903398791796139008535757404112429777809440383965930594241895272921948906146020016028927396646469607679041172060834360477610266579417679863084590504009661014210769243942915055473544966418190133145892358077605516964855213237189302956986267161009900582350994957350572387134736708099760696430645305309866024088808629956198877038353674974921640692455271730637202985615453580464809112727578754272681014528527204363970063249923458358394617125849388184347747111226100168657089756248212024865832167401412407197618031795945154197909841914356155601369709366424648889493964347639197401285509696410468229170561923539889194614400738605903938514311465960966322950196234373419921734637044927216056786166028391547762026932392681200821416664550419562248322478404181674034358977804955135039150737759811442937697969728386300308899234086328871396878407388769421285289282304915644166873541951321108068568634817858622934148074609544230981996505264333775585024721380320881509457123007164894177495207322519702466904247738297409679648640491904478454268624938998186740178167738014065303053329422989381996760790870733709672686079031807278562163262829223667411960180861948775111539550441699552806193430237812247395841530377694971379847745793371406807648508052566880624725583558343178303808123461232408364870447511822912625292113168986451294464258662347866592040532028622917689004595739882033045768986078319731137576334230997343184974063690921289958420489466705389791322328141972938004788670758156650832459014412231514225080105159821777220402583111307647543456428703072334203438821988782761973582850718566884364735768219371849909625515194190343881646564501413517658068345983242937097745722611758982568227181166147324694979329400777748292858413522485267172955084967634705204167162842215347310153007690126655215821948386730847628890228701838003336618068008519930468484384297253301828472542076247456518761996453544020600992511864285828571248710303236510793005266208532674427283689733971142260295449959009434969638187511842088907840869751404627639286682786687322872354563788826871208131116831269393657798766684495179851439062104615869131819887803097948814321801121387938922841778199988442490332134021193519205783295713474832946414426183830153480430661933823501102206653622631609495449270104587143308508193377622961223909522797843177425388170920744419150741927805800920192042788679353762534849933127600893826528897924441078495651612552088876679402501312740778480416426636056887094673175347180331943526378603625936153499638231446599823117930926532423543374886976509476154088597684742238024499176719235809622765527106625623256759781754251768166679060589445920380873184201087734617497861405755743970561402357529047788575256300955085371299357104043951695304139207438766530961518648182891124266590041896426259924329866190362353798996894272540435288552617861617169507248514056506011055234679157954529589109184089509663742652960251871363354159944860232198454634927452387156025884188773259360101688792754769306611927335235282777830454753211375519025954422086111240666401471220340682412029082954810128261412611906563504673113352542164176215463064338986830303539117100418222851599484413273756930157166130938907285964882469119587287113789336111738954997690983716445562134394609723470276720660935567657968589915221069079975609596832039489143425476065022727353636142157401544984548896519087168071927127215757141412612004489871593881334464028099366988899980457119778621635994633159626240048837731036421098545586731728458712535844414381281936200753260396796855272264241468637323054177659868003558173661437274264574285556220953318641704367047616970764484753428930895156884148984638438357091124665482117646310120439149552207161494314865100348310076557755190511403957399312026078876600833206803822769663838230039954467422090705972246164283290983505545687375378853783449086711428494783140837382236146023457764221718957689242851044126518969793321703066435131949756696553595922932616036864210792828944835122471367816654055122252048759747261212311720437075407500995235853084235578781906310345357145594886967131020627346367255560146958319128736745946690116043873623792213919843035997756929867506457546494779005250653424120891106521679790824528980742866147905526621761058731584391729211367443660941646257914287616168554870373495086540784989025487200528364395816067128664035910366507852209810308288921035863766649635171560256391306283231487121966867211314545609353957119813860881788896269324789363254517472581344592425019815536651132336862643108102573888556718994399451777924661450559118796188273512602043761418308675081643272433133441711426428254314783406679415225478699501937629498681716414167311631835382720722758662087120181487758352705366708572724754543345340683240595786725606500211177836238083119627446206349346659014815645652251424835100129727069942990349856899814499393725031816020647519262014038252769671930270906276890494461021932832367274479226068181865371073206800327130036160964708624338341776174388949558410503744895220551058793939063757097485487421699677477613613724261218978143616240709356444510765356722842873714634803559409429212467756932797175241802964494961776142722276199375694234359598113525630419722687974145221117147258041079808699198381879911640514237751823290739402842901875244263373061438504563045990259997206764274132105317238562095506828092946421296039264143982987282402037756273119349223386526468973588523097412049157707781628300768284781748030821904438279590057807132135206491292759760264267639972174566990862384793713507780598189882591846371409301782288970902372696265043171731477537875845855374896966101238648860739798691725895926742578677393674635142144043017841014937607162332845475334906330954800718594675543410498529399611750072476078186962133078002738868488531348522249883181010951555932328389460627580457817076455695245356137109181002582501510170558845657555473465308909477481750347890730129595257808749209529189502911014936655020024698104957504593423122017719976141085542759892065253523633140749876575088971014325292335811651589410428437304949244818119877163320093545572941207935108654011662505161307650494292773159510035113541755064722204886715489958662977346323105671603526523778383299278443264990846359111663033763186765559026796224667492471716463839514349973839061518856918556836781738063923364517163788528011800593424985301993722302621443093754067192773968245919772526361559728481779633167909098235285087572113689600543827662376113195064623433926805752700432252247495846677933798348224921145095955920537445319892477828114991953846539284328796677418941695869737449931576345838882940363019135653260633381071410611288134818832328537138308403613711973768279013714022448711864833351448299292177750151624966412248090997816026013471531409837273695534186314461167720173158703484271333435175535974080894673669999411073320469507688029112262797499754138896539732938681866204705660950958800298593518314261003325754782852725956850109421297280917447562890675390355485659235458504784324443785454335694412310150956839569729511321804967037156190944604743792997836933640153189717002378205502934561471133512746941976504160593760974042052998528959923074474686259952845299055994581583005512824501011727850936880834715154482408260606618671409151918472921918377739600332432474329200291014252580057202675022341959131869071300533340366411421954166716016693362740895929761638551708119458807710967240190330316966111056727366836098833131964797533997168895678906213236594465356216668612159285402627837181530228185610599617276671809285810536087583225364085449638236898157808100256597230429323202825926827767025043092695175453930078342324571066745161391411936478632799834167689846103104740175091382532895194944308635041095141656709814022050918196624587235469718138711017595340990547819707856149167045448462617843159048786586390149278554944523164187628468575837567084352098362476913642188910132096717364961569647311060769593691731604960325417140738411159051748164568173413701107332334977928940265365331452544920264520726410831487153817213757628468464542515655918044132499100857185736144573606074663247236976944418739672256419366478759922028645913372606706995420727844036153051341903358348619208613195536530638852346579839525377823479446880568577836015850456998568477593115793976095486856563396358444980250206519135544743156819344380288666861475973064905194181729313525393881966622578519362299567723290341001255193609982292560085850967237496848508842716413327406046625492498579150078489117603104231834757845655198724077588762482524408807257030886000374044323651620211681214151720948563488615590261513747565256879794946536405576640632610522516337040290065258943317674465605363078081506694915575810267255511320154416022987963704338173531801138486158330114171015731223848877158310477674759610765848257344324116262186752619494619861764914406940432428090952768237681188856506914589433228170777176614999470884128397727219275010291978267113451344900891558326555273165041765775438615051177638195186313306964945716342278502815660936379684876887250059590869540604511506802405342130606556244816779985547087495210215815026573844214088787825792168926114115579412140077555805633560677069561188126718974936224356596155479984988199112402160259467169237737939636792081718407936220127047897616872777568952918570508472885991226462473987927101931496433614227859254885930562337020476247107475673550693725331914979667080663371733644033767808554608685572192220929765109872257094548350428613175973281523961147714560170321132796525291586095151391860809693429090267198611100650399956378540647695619086045963406497180743095390756872214578581523513941318117757382356496304785448174838887991863243652064475472700296456539972951807123350941549425419635997405567156535152102271562291132129478968908049130601848163178836020317988203518985622783897757456556679696400986518788481167330673486879831367195293683504997881664785069840149834407502706951865038102346074902401582824237673358484043832428778996410394095933205046634975876510569037456618184655159363994466385236923892997506675584085038906166013791280120162753255640119943563187935366783621655481609523219880383191353330094145616490230889557298000796587421043222525415349806222399436923737819886773192076191077171110455625174128825914107566510082297883595768195699751516896913293266488781746468919228570101641774347496161257747918058760783682790504162126807561975128294791900494788276868737755539277179643409468078925060718732999082742464776963577353501649298039658399671013299059814499779356802722165594856716692286427018069355652249930648491408016346977094885947199731889686040352031250394135645446918229843548402837908385409910101596697378200068139865699515230137790171120327811278941423069382643281478636453389567975978304153824422332104726512845557556674997169528566612717213206962827709931134084900056964084614254904414158120925926465903619211142340207053838899155126209646953711580290128907456170398218422564609879864467321573111360263391794757962558380260011141032078394234298326356992776395477317507696776216688052125014091646492493363819647104358519669658874995627464536942126048124329930483558059027495897184881258100617392003776477299688291329491112629344044399984891923008475458015819359587023625277634116201024660774782010296162632992212933324972399385946623401182060975306408745268804568333512679841804082381421955453202395960004433877027608470521194322783776701016719844250108284245431536274577554510136338910919321025077932188747562481453183764030840650032835244703490606478981125280844022959662135086976375750849223771298971131844025392265175245350059203722868835732542503167904067222635160929035692475366168508902753182067360156973046169180529966953029389178587332152704068332093322403918308387080038447334454175701435427816960869389330296590423735554061296193803184479707573267357204469311249077331725692479526492805079365684952092658862804338449974127385424474551989276927251604945762199273697205829542478227067110614826797633195099798664247098119124692351821024413709377588793996546229356294421978147081299008907588487466675563503118001317932481720651466685913297598879874096712252390065994530824050132354870282531873531592506840905091033422260284080331412250502660122044943747487576445740328337426708400448994770317231722514504815979141236887947081496338541037867505687192833856388475108234234891106622217020258799337988449954147457380723556056634917902995632961306372517349875471028711357284924415061438356284586226400565797727455430673588743504638536442381982174444764782416174448287768001810166114533337822617090942847199012122991936336771150398256490628898006744371998439689951855930840875923259504945370788195261674918620370132141191586791887707824720369526088608157337110488497881708763358671335899228652190172957651853205381092768021796179573236631216390238134387670595770097053439050590156872312138386489747670712781881951836174667700789102049323633188007545879456363526155153589703364865712535162442441979370567336137542499810617496756169272965882427382795971280161494179462076233772285841086665123742352364402877541053164565883546308381914432352162125102808019701360897001375959051619882625423519299949476009407310913100633862375751873568578654762377412863318533160103374367919846308732786094937491615202714614979600784732776175463562190205477681692101586618561514396689788813443500300559391817720300351031555002724322434319214338223406804514867221126217845794165071884988299574172366858086509532560171171352935129520810405026410713412952280862858523877369992492871304371559355251026696535048337588286704114207015626955711585765280304195678693077699056204963798925642847896787174604709320839342391142071398910747127461471767990133407946692789573426292312062721347359420302396458868081619532836629999724454128747118692295813929657151542187622069137811353403816790611669637234686078902510344305711224937289302391000577893510595910648768979965801751027881294944668884375147186627250139129515338546615038489902261275981384334429277450747750836077605360793865558304259699038540799933098579996319773702346232567597408007387085924333993654653928601833125054428275899120168612411724053182005743764794820032678613269691902077208090415986243943797947684173109866731248135594942772358108781392900982885871807812784107126403190280708126583161113728696470242141790764217635958359495760317398118891903917190865838808953464527146178598552934381090665478800247033922685217961772472466208293967080689707396185321206695451806736514818339093403071176596542595619461148534136302893941282964717445156710646490594108674217744281704318097688971255985303876719838600859075417291065586165698063458337920825034682628386816098884913712427879025138068312274838704413193162558118907704973089973355839228904654668015955918197703538044126008117553585837205494838400474355297617820603762682021786089800855619258772735952531371231631798329898497683556837357160018582326837316062487396730886474346438956919748926901957089152926766298669270811190727835571575875143490355825769137071252318850132054433764000635530746597306006990731418675729667592905678278102556512413842507956396475797437656743020693703382008177975989652804539967733075416003207372593796447073386730103280248691206544173812030164720700599881843647531461192676091926428905634531216431898638658733980957869918091405496556256846561693689205754062375851133357743778965839930396121958582963788516686468633793296776686203684312211588656510500424505196072888101055139012567694286403616343876069235257001945624786313453780876018470784306064493802786915808084174808037289555381652627996467348641986119903222582316704597776023794074410807300298985833652195864798075434466895265854169147621943556799049985447221255524739443086249061515522938007902861138330788356758082161989120892520999837226387132292078088130380637758497763863972521447743407160424805286869885494959937529616742078533013780856273076791891055933366767085694952428567888972843441027584044315024919462809968079026681897168263833463480560492735568287973460969914060851305477613655528193805608665365187468158843762407671270653965018095989681413410931633452667926401860849585447802547768542429427786503843897839200904377803877723103234544101407929040237493230229004530473364037433267181533238896724981468806094376416434819720056960846443281569349984906149412570672119684323053196506284179939685824948637034763105700275098254838837025752099593375660482664486697590959381571375444191512597013423595532018404830566192695645543892242341349804586344057476299179940767332401666948634043572941437677073694213936791048304222943878159352552358941293430415962136586875654276114960211732728541322016496725157584800814571039438267724515368928678885151055271726903304002328815866626920786712425250759271859146245996192161475980153069133749583062093798435262915736576650809225150962972281632673284772104148813177397361998929340019284810076075469775179631997081313571481645092858221696956410166788455268742203982977769934992486542755158579374787175446505374190086776504106035900482059943445516902364772592612368798488814158955683590363081112825094411498906652831058410181741978405836248924204257619457421052594133929193836049911695503032478163300667525117708229734925251355250590599746399456306583157729213615665358388053931904491589837482998436506815359096843856716044953301286971091100625150246253848988770752473525984572808418344138614284555830312244166095190276936627306264478120373587166258618569558609584243561849957716459827026581511000919393573409252761148166145300129244927019367000868942307548670885039675011924888065625941580594471408572537679084237221810107645658702223983085282241580726260126287081849614017134684130875333881283426423757194386123905660967908213624526519158398415104731391634262816370177065090864409115751339212481997079419988239951188897592641432049629584595249363496590426132280704878648557378137635604839419150853269628419500270395333828275197133555590741433079094337583295407998739541892773541577564500613543053833069647329315729855710778267104101690976267529267932266695713910363558448870530456478494623057644599669465209544969551475897219253773484094486788003920551337538647877986088464206801606570091366554431063736404592022903332748159008763838400767828195246232767329250818644291633090919621026995594177649686910002835622271085128912195966823817426000519982860839253296709797602812088850920963614081249426057861918748068624549045858591395758318555141965675237641387140635361144008115729040214806652212773803080619972806105489099787641859266681264659540086974448919355979424435784371848415232180226345622762194124741112471348191911082050466128228169065741397204257969235511326878598025670096149456542761971026424801690101282157421831621845198178679987528728086357418329343161690454947901902017603801478643713107209399223120743813195750819647737055027051577147278241651771880015336112074304520319190475927414381727025142730116058846899532406172619923859768899966636205916879971945693502537140615196570172470645601951650825896494293967268697823159086943265752861883646813962467203287166124238285967732925238726895128107176171439981764060655797876497112419443765016804025843361265293082376533256568418833475743206542820672693409432423234417519269943752170010532984985698268704674996404589418774452292843006669996752738588457298602247934898344305139518896492051616652952137314912120650234196369185714817926721307337020280354018355223624246126090428055760673732310022556845573498535873616448800879496832818389447575346187834194419343421260899687661135349074336264494057968023685118747069064191297911157819734608107049815862769636920375106823276168302854451071311415384883903722356252153871932906063406983759390095486476141298506795754388882643356480551491443970809628362579757659748463267722188962663200017350965496553185790328294388691326005624961257096630576055330015808757721734683822674381760493647941440877550695819483508873429164384405914370842686318381066503508040141474595897309673703173901662850693351108580239377128903976030588549808586827717571172665296504185820173812748600602152595045846963002650940200570998273141385881753611939676009745739852329797530964720207001578879686088691283019548064613583659737574533121070259893119293533225275857306125440471695463802619300953248544679076778037160086421181809537473992849163926517794711308525899841689184787568399710971240265614436104352886624944401678201641520166650526136312724014962805671950907262549714877811319126468987922353633942188411598182113210743655228477954029678225095145357401537747854312264237096850720091609429824128749870496965197610965432143176783806700741661137040039164658179762774481882567254105169578827886211037938359664826738633419612525399678067879943323015108816361334036707559217240302982392123386639302995564921379203973911019070961113888604993962169008369432202565337067886654432128219166067416960481779079516890159818047269877852654537885190149216675255081073984476427560723871882581653005242962175668688641071268298199757026458869359868986657586805682907316611975271410542629682214854609009314007927587610158792136926818200107883235865664293782797307773492127478588758721345742632829347570104261202672104938170216755832874771226968310321589423264420576827298745745632527560212921455600425190720877775630418940645581087591456985514296035682656137354726738590899697972388469808191008270641127599396195639091398721751147231470262634009905572687550976022939951209253319568612562785987002461550125119562032318531417821826617872107594287286882069181470374281232111273656917315381129999331453283083134890928319875107285435257051464117061820191541808702874771046185563222179305131163023076689705474920071969486574206592225709161584425052020687702602006899935558095021013504211237478636482618877459199410646422597320771345356910320474849819010397461689422968247132937504717579581228010066445917935435976005160421198064599445614785509408775070143886158917347670600728708687632578212898660041280974376614908510787040776362035292758589071067115603615587130816601340270227484759887025295066601948429158246185707300174908605365401869934151947036568968709292730565106995008613290812325469449120890821496484071320033608876717212260499916328939503399198710846426222832106401088925827546481580479117317122186602614612557759629262515699666111520714578337874964985214317636417303607830557699341431441340866956247577331635693906696925556488266944127741787869673719115257262211078364972047387609815805964887948980168884026201862195395705310376007948628108765021458369481802275429356925850071156645836021412249530923981374827714899740899714143078952559141096619648538553197174989695517399045223393379845462828607078351358960990098136867055396626722827330287313538851009972785711640648718830639430145494104485192946785961729839229177684224004980445307787605688045633866313005757451814784049401238869072682224871577375326294727893024578740777938043321266345694518702103723333397521301319595940480107702639249819855855541919026432845868529794729778552265233233235204173149260784472348359170645933051177094151372364893223195750728740437220961105912574972793577013513928181474768816447096885066660131289641801424058718323982807315766198835162372473271764475094085209447001999639309758601628544270900029164543123011471110682431137004074741823688894401206424322124052653420548472411661672066197250854414001393764037103280475771682728542735549177895636443511678789890307388322202927762840435270565156077961862004820209363239352713093436881749608255405360413479235413490614655016687861080567433424269864573475933955567692837816138670511059546317999528096069150239742342054345264478591127764200560348246267581511672735372255051552205468882572850147051884683249061054468267026990471489632283505675241994029037677212631688393489661616212716315063521899218516583921681159499663835182631468970683095575181620300131786153411634741230202442490234044117443821856981190585456204275187562203148252634496732795505195676141199294130355111017899046641944442792914882042792130229307015285679443617297672244977872972226960652880737941159928835400458872035758867040349505524902545991510967717528841146122677933352356846283596582579520094884000229420033029600660247405390366720562254828668454100032861805755940888362884825811954405675842421544445380539422006660256903022250739568446529237032210843777581905060789028498986857101486101708161903501195618133816860417683069621615496271451874436697028104181596707235343392961144350273786962072757524079622338364519242414071805112986411685613203132272721411051570613086040156663353455182741378507780517249700635225477595983153961606583539593145570923140472224762111058679311089801561063668916167309070955532000532756905269285156352632273301281942068708782987235040876457117645283908734643000650113957517450768306687247126711820337179106398715524255915709727986976202523749713911953454449352961735488646641103845798526896928513671365441222947099322041745693811812715151347186040550478868834475309514806260682701351543609825041853326623070468634799396717406410219908456112554662847390143733521061741784090043877316691593018394963206812239067157906758242402791858868737375492731757371368130710945431619524941055825021002911482763110423927221395675873472284564901223447002757784363734703281512421433630252396608108745452032724878212600557941888829803264759926642003349356741088658570997864624475326429873259890701489259821319428952399330466072392022419861461751724422999742459435505375903675964257272802814482982316823801299777031384826686055272386111466870897202014018843516496534660495623020163124274360327746896804587772226593001760972040226172609630968245896940706497482528496505555076575096097239294505578606725160161211668145878130615381821490245099356483256758424821043126647931120674910305079891440635630789660500185923020208006283804787930206745231020651407892461410959715667051583824291065253924255788947396378977261293883992022369091719064650519911169043528781514908641337174582875349640074310857597843864232474908516658802317497599004113316736500277532643557593845175898516097049973600404648266783006212646378896627065924738634132649868106568272216089808313109834191820356367454604345313864384921599202585175138638349699577952707498802005214438240697403516492790125712497064023366604313216946529024084305689795079766219458104467114463631539320871940462338549350334880293434206859159177681170268654849187456907563092492886258315381570402916339030728115958084312210084743435158403866054416767889633790331530875141880687889955234031371103692678750815709620051644165564469901355605272082637592937203489327638073979795361615557514490349018251915482744109223948936916658617587614976467602795234669450829993076216745735741451249013316689706354758218750518982170476225544698654294886548985977795998021562652779232520734374127720479213938832661604900189571708331588902270298621068783168802732264567289994588428376761265354363163364780656899909272442155272238677133275608484872570616795040544341819627836887393216462984084344038978356301366117711386025707338714823178557081663496056829421797340107943904375968568972674580073101182827318660275250287137892537100182210507607543352569530314002171156085429249611352052837493356916099424528619356658791299044383555502795369087741453853847235002921916870823412578853086522755315452164010308261299952394054348036358304316206928422091240330937699816076100385037756332591454574670886467207887948268410024980180184806506578732382634556452928940837067379483963208715836357059189101420098782079987261925001630978787196022655551810412073677801637378675760313873936352824648194905561845812650682970380768606162730707367124476404573746666275046249438734227260507742939079081901636745861799304449202772155848624718589139589139745865787929812856321211245389729056085752828991456061426700703153422586565559883758493865585878893744060502590488329149695491851268412375680101445685659347707129284078939650314798049880129596045870892192720612025227367426404108031558348163796561816149842400560321152929540989162668315877797781421896001742625410670361792991807208575423758949458556727171994210311324415274514916614285814984418605794586472121381461554860423300528249970548890825727802785230103529086277972523573508453580498114172738341907953808189940523490610514730986977735499305911838331465218302682216858691863365720298299559841494315162982121814710366318275864727439712574623174969958085622013977581382717285507876625639588235671228806950591977782080231963813733883916402988951892855102037330990448445760091199572155590353048231655328261044716907780212135557941907272442102748780970653977383118839458658517431822584865335824791096748201761801767175377173302942284048911508155277414486061694394395866115574083989752230775364301357293255807043572080072074089123471179498105127137713728510621920705164787510244688078116196944817659428562930771546846469521831865500697943569310630597514308622892131794540345158890742410612622937941614065133665850300260242309882886718384496223799559268660770548911037060641694884242507780506527696398236910707782495723813888185434361686801779880750825275951486403784855306484569703049506542906501120505348809558515827952905547077263370573864676065231270833843398256912195366245921592602397054248040895158523741699515837854832362213642707107988964304363511066087523155715869308895528350776961288085963446278765493756088146868881857132099618232236681501170010480185184227017058400080237057335600571452144681156309361418400229684697248021716532406385241106524115090435278205115040557518851245260557441228430322147642690158049013991098846891607257540175663411438739963844528468154571644211869571926618640637240285324003046354185427014696008970846137603119163461704341441380649972923154156884586688018610183977005202572046704306388122649157100606208502952804292653798146519469595688417914537270099270498097964441575210432262559616386556547922230096589472164893679527731973140574298916928777708714276202059028506252783268582770346329870690632310159484683783521250934582263053802759129348048129817270102624794120371344852482572802577371171034662348818849350471519890197816073667463302009392979248052643782217210810722341961011430365051188200702209004034573272927830991349929173189012470543628935140648360242646175732924551880501337394147266974476409202484175708141094973874633489067579097672690498489005071214222378328264418122095262804674829424892831383409044341318482260748252679823010738943656753358411281537644490699078800658076302966545461079910603291102306502669997771462966483437713088703037888624001840018867627933448322951914461164021529545983206701356421442389116791300184711144644176184876627971594434203479062900796787183997464369794186780387032319289416273571955251380985667857425818983624428489468560146007461903781790812806938512060593932030956159824266771552685933723665062747921656529962203302916210614481033338083604103904532089063545164331247194547015483601689967465580619230235344955126002950529494389334302681528746989590964164823057217148624149699950772390336368453039456342900664404046121578062354297089726009299055575541418409975191494890133751907702251381013872494621704811779469533222454653534321687509791802841208502225448530058504540032370159876486697355931365510605115114907719600175851240183751746433829876583622613766683354612398797336292620957943164540401850351438777471270831817185497930462349000936869298697339852682002910496561021223843559010561585802547638296191272958522573277890519751503273823088408226342614584320099730556202449679918696413396047511564299014486695278103111271078175992725062015911681116791359229930717692011566289409696297095902925771633821922447824555166254000422728951487422236485523468519179884697374444737467320467113318827157281810989888799881899727333971181717798059527247266505651034821478873293370291705066887195175169083240706016188815455949144070267648255260769950234293692023536051531302311137938808621029681798638479935082938673361432774150038867121206897829035248881103969958933937316323470460020254783475776920934144205058877520385021071105835419631074681166125782103236133339539395058048450674858392284196667356545233623963498648174833223515972661240485729638481751057127296132061451168256415524833075249105998074711598046476759672096529172925851471151738877944690154142798059936297569504411391519850823184284727789592386007121071933686685158877718215399482531035325683211931284759559179546216427527000967638177039681538127033347493077197064828881488241642732344597970256989743896442708670185041932963365216508439302455129636855658364245076165726534860422901667822510632405222953073795346607025367168222643323054168352879594619003816839608870662152257650919282932191189871860580483735875090522853532879688385474030928078674950383066926551918726440143631261833033007318687607025693505223421392642838449813962909017316750679058096117106966343408851389907683140461290640677350605913572957951172699467517428313105171069495065980232674509593922496999742431890929598354980305539574045749020509058172848123224478878297118666901879533641274202593302041111762212180970045525321487448856578937907275256042539904847892482021184071832709068978484956430826532039191525878533458011394283244994150706557999645137312536031008458565958641639262523733419368201682242843963618415540369052095420731146578882450951063339664952857311256889549572468679391532272924801862273244891048492487943739107099887172358713512418698943694280164283643463922797228832978849458759773765359413290329819352337732930667836699033444990509039422712617875926642260157740772540867579621423371662384569289309324966811678481243199427119993322137716721072460885027761294307673360532967524090011549560191125173989098852425357761099386245872588380298189576294881037373504554347500835202157582077445533075995681303779728108530136320141389127673065535960403578823247470492894633392286366133078441384509844422141030355678458057046965104054968085486453814794092633291745089047157722054652972711545586265460667364192227321915540459675500964136112656064603211765929040612963032676944648845242180011735252574672791295451151570128465710042919959245079034240165653225865152127126101647278737618705977459379064839216648065538104766066739363902569773689540478989734719565215257652047847727192722452014159966307672874231256916688350892922024791181134329896494921996316453601057125179035425877922415780741549093901635629619952083663303844146589914135101439927998935233821288838929225349233895246805282595768284782222597862409060684413699871055293763179993903965597347465759080635948471246695909360516907203465493208291374431624753100123976205527275209062867353034734227667620230814202539193143549327646617416735259844556521014949286833300846190126463103917994488123210229160694329281469813652273932193349160911764859895397305121923865752973593400895301652506392478152311934557438025964216239039023750590158872284041499436441072942068580563835703534918573136946253466422616250518782248354359705194274018836820996347501212556534251266035318375516541708532557046579190671872599215503534596448834563278614222941608393147465220784590531619236777029938345627007998708026048745728592341082475191948128129072112491524698337122782573153291874231226157496022285258229198004724485569450617300947994373567139019075339196925904807314377376439884457705493419154850350031135069010034461305871229418273041828352965929741658270980937272406782837221590961667551208067404361809957081777517405876710325646511261736009259637037185003806977338235084505756710812561265615623326951641190886718455877014660908135888491769561842315956451447003836929781064652995384768515115248618160445041592212350231426798139520584456909369882548572144594942812994230468087913995836952994893217119204117367280369049805448687862308131995158422482426819395347390812427649542055353826158951184946055625673138845104228088265624543826282750657035913989231326257948434982035090384707912537757926287066186426921837298582021152102491201996040504386212462083670991664161264533090118282740232780408635816378915078755004249025137180081366115541641685814519173482413001030905636438753783276026287352134488683429278843075883192763087562275861113614795800152476190910540796749406473440443731503123978274978287061992349130411496890244509836735709628875103449660164719126250774241347467912688960547434650100500011846713457853978632161993078314909696442754524637677311055001379723484704593421250502937349642780206249050833517763969662570367593255467766341542120735582808373679113845184424912721234342520271760308358901800240575824028792908001069962137149046103930786538629054169377439448053824568090445832999150611399744175332548178204787805354211325807301947184681323319855126798007827458684349769713873940277158807226758356052950662450182201485528828989181496390301869693120952065353206122437920185628659302942773289356148400638903144512262185926210791105203847643187287916428054227047859713098994974891400370296914148050642981373720272656756383023668711339807729834629714367236973041119755050998999110510715544260527168954958436707837831653837105364613212485464400296543408442185769378412347530298383272876648839898159714381427097699567861971093800004736668498646340868361721240813337060907547255983268721019610552243490975554697490670767181980305378363839520119509446561057735903542808987419297884182479119011995904461410207161463717670957202151258363892924054755209222795894073767182156729360458220818728691716423869312232179625892661488985475322486549891432701012707751787425306033947331160824440536412651483280315321512531429812958209879561989297733396618970577982464533183590778797660024197643882956308708250968647169959507955647741557052857594790087630223525178044596767507905094554445605632357933188651971438605127897295894944975581408441134988040751643028085038993048372663603805096520229324913197445864162076816437059524958683135092413769619935350713897178275148746959510039722572343076137560856387326615314931536627601772622189984806673716929095590623549598919925203620984391394954789000144226881127653202281666809488139575014079923715830441989530745087483417287718611475449697782268976132884522391198825425762478195179371177363808087794138842583678502295047037598612459588666842259420630881227851187847547437290579211417385747130749569158870955769178101628942720801312793851149109930073273287787549273216320790216169718754134853108042100774566003263943180161906799217098166407898337329505125368246413358339751623896918557795346510397426880806588866599898027389428088810387631672100659698294575905082742659204985259365301939139585643931400508405194211090982804220124172676549255218223597408402850933246071813400969230280683360538011302872600577868759260436061041356571220363723409973665218677690071099862710849813682012399160654457010783491439373964146840134599029602779238836046717461729128940297336006440770839139263362092075918768482975518326211756524891989123790889588069179696379311505058644316746456095854404014820255023407433585172701761381044528564764745517649128260744508980422338403023961900711483148749883790073169115570447364816987051419144496922325499628245520358159100926185246448437887138167810055559962761882892952444526793040402162829340516292429211977604694879765991143152757825286137389630905572235755084530560761284241064287667784858394891310044839439959211880359644220159056244339032130516911091933172762359057248958599030384336360728487111357223419155986023301186504627469617970688436849836538817294582233322896479466969213014892069502680608027658724973253464506164622758226767220994095140790002490929196636705831418660330364505424971232532323554998618259467442390079875319790637569028016440953903423491336166129806165701556377651846289975495671888004067779868501490946010888851342938987742443559287073752917514311157338464053703012404229096009924753679806385324199588926738893589752330039140309025791556850763235113628258167504651185802683245566416287698522252176770082833013194298420549721854074141174298918310520401380722005917247130552380999000094650287738904888839513330921812152486398142747329612158476353066025052983576845939727277547250609409450544052807807332355644377938038659174173120036958348678296826188068508270449810380724051570488758535538964527754981424997776508641836162028548225551913218607148416268916762787998315760590970158286170552565943079988746735825907176447544465080073394131103556326344578287288889968364155302471909348765516399310157989012097741092437998991554116938061211293406258005790180248737403513439257737520418292753703656489788124991324325827051813421712675120286837445582070621138099500180429827534920197942596422693183257130236627649505539268960248484362187145407032816352187067723907066356214739829140529633599766881150652097806594896303570399197481552849495390080878704985419382266906915349835772896367270330745124591643725155971737358753234297502675114722118338169740201331018887464143853606556743230142399608104080760986844398305463443622527513265889625461682223348707271695101174706121737090581618931304248715483562695095702476090594089390768889970135714118168631714007146667742320996662273420254507010225496113973504504470944178448843809344803552578718421533558584681498216163912943566375494038998671607365402062205678416558678662490736885685347509176971313094071704148975632414913187851705147152251868492447639135274038209852244735395853822153387366945961925927182801506772106848175082907311142892874975562003161580317228067646467118913705125762340042308312386980589558314235133001098061680228422987949865971461975292116418596259209257615690322437131344638094499234088141828363837478919266641964269636666682222580069524208687775762663758586388411694928701690305346068575089025157188108263422339170273891433694081029205997034197984014562837532490626491271339225339172356815244366849600243964020185339342215586976000757756423279748406408112470906469198657022673852961398446910480674771594044306950811467661064238708592773623068178302567411662167822237285979766310180540328730110961858476076773613957203401305173600742788511066416223569988499932659297055685271248224312513853001051696500218939070530754005542901979211812115208399498419109088074164738791120795805956800776317210730495178183513253572941321280594268336486237360548134860247388413782569594927269087572348564072051335597382978351817999500213604352701431501658995935543353257254888771439927186031717890976960105219129097484434642536740101522468381122886560810987957737378579369993371147640469485767978281036346198860921462692033712734430460671321225495315041198433989468107853559545662416295134203336391242021497267141678129265313037438721142454726333512181394014766378833581780785592058693488774027063271939710121569135823183008813007202677447500620384771661481977953373544051332832668353873913844885714064370201329060430463051432481877612618264960385138525888100750423928485314657327106257624821303102950489354946761283703419131175925650194551252855681106814332634977069750758075593242536603724670997026693216642032053010571082506891890422656368685505677476564703100946330710065164340107134819553314493600883933596809619114508653559479277699191722357188580126555175369690143325028695728146936204878551367959156400035293511484026731239071075575430436224191878343649036263598690321884378885445724374481890572826648585687158141773030983268685643565887810195095423780221842922967823213369715780201199779837872500861710020381407467599655991779699465215753523119602433458424082094899014139769138844045036650008330089930358046068752085535304560812712323948647034063266512836974711003735335679151961292918159718767678544668864580748078644264201319803655125115860034140362732210567550346778598933906095296484906170854974359970296288505827836707124300340157202264385077614653702021469957034946505447339645305483812447326480244018904155368758522961880583864107528173167670752885025155660431054267180534498473332289630988786544103223820387526291043743134717941705486660829093565722318783791136423257386549161282699611773558965950311983759579511970645422550559814963081315760979556728886505552052366717336398625402956430192306337249085704135839278546565403789384579744348256379138165506152721891487245269471072511669471787508042299827728073435292275193785456237373261117305056751288166121433475280518385396113228530332429182006498140519906675654777232404737649893742397975005405112338076930341817826418959553602784541432168086433685911822765845811904388894996874233325557398017640573137936729557654496079153248982820425814180793643617021731860052949815618474622763699839687144056678115926879446819803564648500027358113460926640563925873572442566745639903537440313224518761832042820046639717251859958420557061233235172948668807221483676082489657408846628429936559013868636534805942601315473721369342213065271564544336893112833252547571187539475584336759771452172188768728049469541818944126108466951206927521333451454597218658967631512267465727188870257880556901671372212978228823856452634668324402225130867194216659253493161197466740439303382424228435979618919181966541999716602575215878177174774335852618200070487100434357636543066856812703584702808012700335032773946504782478030511815865073678755907706126687117968280816058188038730897277009397396208686525647502903892135678991797152830085284163281919508669838660328247533755162866000936427236683700726351888374633527800194044829155309126972379750790813910630613236495014219391667944861636613120643053201767661030564742375135031830418023901857394279024053440107176796779496562372235822130285120440247251458447354307169905578194750228106742034485341544694237405424854881142232484243215647346499842007875515299178407055110771865981833320731346314618613711589852538749383756217801587375557330247356907634486207333447053331355055218326599042371579467215273265938445765075511720289168293709048634057227008518703374888013250648042407988233362704447607622119396345844437934115689650377913513245429290109012733513534497818916462058369895750608266490792490599478087115020941793562027806575366966652026625983465402618376226237343723196407663419015965237417786703046256699203369073762139819434209738123122363970998480943554826181770375091601640557118438156351125671972556170329723561963358553974772453350300713459547639921882441547561395767352985956159760608280784444477700418954756618437777755651199602319270740443969520569463614727012090107450585391585917600006276575616551524647332672876942903244338986025611924249236696711882899986839526314046979045344273520777348805607267322620274421433642281023488073595573922414037173081708053967956583038036059304831174515753004860222073950366511139045185792318018068357668134484726635904729521279023932958670371297813630938622943037636648546923165145785885717463887031511315931657360078828311223089878784612695822409795974740541059668180275843571572806651532817231721472884705811007741068266880329868146576020370531038994106204815571831650993710839398632107142880921597008107774373652438746377048465402855831620123150827857465638725023498519355678142297762980946050531091288202842602214399481336280955489363312293981504979727669771849957680809818122705452347621704406509720883111045371175472628330214929605314920685753076893048973152760623084647192839706435984245460522711302014648340067482717573603521011530383350934420160949917870035905023494281850741875240356655083734874444754634887157443952317516245390787533810025986356622710052136497798258565880748306032467655820778515835130805292465000173010014848213092650557968477122545545438527898896310049584667362521862288654815462631083678904398324275345805120389127064845515686285106084529163334299343677161831431290818881880770628811782456042673601970590872568461607049109223871189607671731959889701510402788902083035790495541489914041671636906733257306489010272689197415108436434017308819352605022265235763100252882042552493165845738132180245016797509304443807822123220431465411979245560572503475579479683653732048592439130276274430981440087519428737589413712645620915082108232617881348510717675470693334403670166642288132927741230486996791779122389619099637562406900344629664973613765361960328707779579689489412023457516551541372496947234639268635058084103754039288189849425335227438469911634114657810243573121704349801525252755536533893855908299214262344645089330471819701239470193620288387969422346416320909856080032750720749167767055239961451928386987815852094322968741671619882681973160061259761022257925601540868618542057891794804700710145513756636800805376684891916471897371641832119758231501138295709429126983305331236996176036569064557193364162254677054430999783274457146538746528892462777575320276335020919068013081189189902026915757050618309043991574461151476568498027985378507306493891460164584288319015332982569796506976834907213481078175900891790811029187358839512400218387651196277212725228333697698024630088259413604061614054248659035466956398809584032935869085680885404506418659555488647529370993127557989120709028929648788779312365496863255212938089539482984063774631406295025507157224460925547560459407313513178939900976767405532914702063827845969457778715201002400204603091426996839487134990413205971925725867288761684475576790435126055290685246831302668495155813967486331701875634337999798409897777902812175672627858972049651084234451217922217664070555499466951492148061132491486068112826710002434976388884925743655526636066938337024347745725959861712211508386973707486157410170455866337105223673245539888853147299138260627999104352666465588830195895011444358150382930907664429721001776200768893277779337878722285978122982941799184974743439402837555300309969488842319394991345014861942213191372630310312653136259476450060044611023971506331595214672130419619916726773875475163844703689819989929645845935008530869745293429267317574067809323987727860800974785208562952828817131281846144990656826863769855696029791995145397103926876870821937638867375814642443332351652864000795923118772606610710519073165355673777985731888904899052449315621771344154097964596605675075105977260106923474671196480145838865278502386413932953344667761427067402497487991384310146257335847390500730842459217963103968532747813340359732183534006360475062651483331031995470919623856806039321018487612425185286706425994434755265828836884309111997469973177297371207124497609467466886907919736955827473992609893509472855524800173182949790746093894970007279583112643003006797439039705336123711622341646990332697924097995201725221594835848408235977452865894206093165689780740708772077383432726930572023847533673081460962492378904173169237755027234262571813871401145190130513686826177425930526961511257904327294303474171739854471839935333284289185853759797179756133873878333405306364307861627742608085283375947240298509443076466191055121182371113559978596034635462795577409384563829982722050298405850025598902205122234984753131045180916673427901688337055834985873092214801126814852732658777074988850490036354760936229422317993754651173920117143448025372548445887046004161204820110883856853063029099571124443680656700837575342406247880981483129420356553101014832682199900346119020160157755668298250858932433931263108436907839487774348441034760782806680488900927849468525727265035479368914477108010340591534485274495687744851344881929702971836500345062692816691392369318984741290916685899414311453057591290200751496264964834341011678531451098735657102385189834558760783535204852887993162421192489691232050793241008248850159900006167660054942430065206614466298172445751112203457491341305462369413400159873890229512711343574407719665614325570136696721083257499529265779337608134415959851939400946084653286921785239465134117731312699083108332640753187464750673562742077100028251034268372212316461109532141242528068247738661614130153022336092468572360719429401711860664980976425756502673292962568385709781509095384577640140183632260345228827078356316266450644797967155992580847504105648016276513675839977082648940947714616021861922648980636360799617721647793860423005355741773990054585770528399868835246424880352267493253066141846531919963835316904855475715540258891143459824236397658415525452601980661230330333385746534227090987217893807117233763414115511161603592342957950658928389465246517538664340606542177173244634320276241389342605176927435411377784509274639782381228372520712554712573819949606043271615956485518416307140730645070858292737398151252447227676900091139817650504487559388493646444324892239679971158793733181024835305970252332939378962671738048859264615373892491378668422235602588063446663652113446636127212645210297298672512308931061487561351068546245847422803317092963052598758610619196771497294129186917936753331833735743885014282755555278559151372979557875100428387370768647011957739949154413061027246807269406513130561527725034401194708023996849307651013600956671213731220575879700576006111862435537013966219328989267756096666811287665096320122402647426884218403751217115638998853670063036282206891941769321805297764157046065755634355571943797523522499323409019535096971548641446128668001187558085736173150505601624076725401854773479124186766127921057917769500234746888897724418406855855667896494164505260875551527379325780715604839612151782753840511838795293607631133874696127113419047376790476484517807128577829488628895336789218135378579729217224210055936470520181254061793627455901497970427589014978417022078248974082665125040138337994808893887301427673168937341947795256092404512511188416453986952433869473594971822652749256847539844710227380076821743707444863884542613662583344075429929420473029809101131320134429329059568512976664405867827988853064082134504189386833764315354447987726340855549895132493654845957366479332544605139775881240911395264158091235131211526874655626639484712275705835849633503923044337137314189515568590359025389228272906078082514968052815937487060914131106971556278036815608694538757912202538813727440484453738729461387962827046639031692664656949425226964079718363253966140951013575332058401653793227476921820423637816427787813472632536305453118270007011919135915230340628106914458815085939729310747887385303832044668806514522159789487799218250349288892754610405755302535697616785091790459636518242078926447555721875638947654805359501038499181705346819352681094298455583304062095665097947997633201105174849972329380316324823565825523475794281459464652493869255927582688323341410232023022967949960227500417869057373020927695019516640881996427661787184204581802512305137370809339656150734620199493760408149847258434076905748087640816855270640301425366927724713105766122636185318586633082503447198178189624876493301093278264848048234455432219160690495172296530662316720143723928827576562983784129720560241692375460795781026015255041896719978081133557555925976792764416165850134785706111045343052759870021751702949207723150946671002396626515179824220291839512586454598732869085481823369763568849573549379878044331199145786904154865188546000149894344394022931231983728486392504735475028373779673619337750567909423947921086601191259189527643006881516129104953130039307709737917290844990654962098130879413947487022763379299275527032073436920519657994332603278938963884498163116661096717570582201822224891572893588126412964525733739689629550633965992167850956905898067451129788344547263152745562900020096346661425857924844799901622927247833310408307799494426492095388449977932606324082546285942058390605928655103366825020653061593587948306477594672223162641310511521778376462940493331846467194446616724309559038788621943045922276796839495296771246182833470043061863429829602537439450923627168308467758916163574865078757750515684638536368290028056676336625942287483578884347955180236731943678285319722150150570016069121012305977070841353645190041272870077917151474921354509966971974981315086867388961360574540966494387400263916547942248395768730039110928339338250788394651874299160136601801590487024588875909551576669584192728568678346098852403794200153829846860440281339447016403383372445560188089963355749666171052606127122701747701812437715736933366214327941688015236790571096135517090572092682276934246337506948891430879417901556443981633053107551416569090583799869761334924968529895430743740113241289875516012451071084649118526237062102597868372656495137843209951312021323076674821214117159269279683295424851286091279206977285612262530298903373631150411741075850715380459642588865274099228914788770063247996496059683375314588336366960329760540624607875327948879750004257825023921336230795696120201987787176276967116239148326789355350578816794624462879840695908757205556441839030220947931214556109937838105576516104597283251573969362673564569978531826539135185492696159439147497571175196618218418337375940350228585258889389580574814111457389417074229748423891280954849499848825997912020298035268662878043194918771192853893341149825269637927970368063022336971268589778928488741430397211032972766317467447829900244591016415198382184688159600989486669014685607883644659822473063555464299252886166767658647215386359350063499588272005172852381397677908967373133632957680899234082478283005187091016704822416268351749254161534878369908057950089941622961752679264773656663867654178668261437474727833212894676356314589207924427957979052913016938932448266630950445867995990132057614667525335226773621993141421466113047800335250284259203183589374719226290436725751218942134397678283512811372244430866422573210140667977271198512820011225461932904966366016599230471317859822744370779072861380315401519507089287512574382068723326420879569526392621367564510206934677654394500217461759589736500157868888956471634186126925767268808627109437761290719682129675795561805045345984355825251748990455201577411534007522547919872221628456910749345622749818069133946111571994801110171301937867817815548822080400783815066085235783908747033984571452427378509800717902341196956302714955232463316843657171424539645328699737348799527999038325684525283831642051141853238521599380765028335686042524010354380328798630929331587344783262485679495076685850466713299815222621061926359287684500251782224066561044795139550715649399066584144979422790843937266690685606635457811774967867055196873841119414907425676952054148680135823631946651059225430804034852228315486757525968915431131194156878157160303251686885305126993047464580605148047623854757827017215626331486224308936653678617039377674737170701232097083808873659039998705520057908497302149911006771767608336582471997545310008781595056373318671739894702074627414834256237434886624042298000834945492007070655565605585263370834136851634730698057396228364217255103906138796435164844799030203380946373250963433364825569036890581152642497979533978907504042465798637777290448594746519074828930443047133757914144074884143811077198394895239820405108119914132729280562377015241724090313309907281498705429428567099295716548618881831223244465237491411937573850230279535823924594727239840948874944585854577557938850629928084714705897458136237460167618114102029286366271909919090371515582078503197270786453541116416406908377399934603100004641228946969986598269100263973682826514595662537041111583097229367314758029721844400290235250574712041972078798962258864099087447307068410224999644496035308463243352331708869561996492074444454096739483460488080910673412255928283949867217368253214532210210242486005702118058713255853711479080735048888950099259369824685455206643607926472803773063365564249294857299585271686505543564190631584142259645205067781618490384613028298450710149922530456243668739708938923390550175206407124340010206508744261124269432181814090844497728293273592249192177892975219553335880924476784537330912398397904408322749284645089661938687582562313807503104533467681851763243809317498110444843420608797009793770616983916947108624712395295718863774674326343770472817891145425147506787056115074834241675399797595215751784627343279815091232746700148034725022222047886852751511653839204651955336671061933685032420289700984286894691057467950051440158884341311755751091903581326013989126178381433083752847236088013939790363205491068393442443028402739982170009261807150034771136113737780711484900123239861665454048823136281900666012933240358641517122942357781103522237267297414741518216202102943865207580667874039067221402967251329783641039979898586798691306198294104949786214530314669056195353027712269245443115273514115114825659899612911883820697765123390224587631661682017151035287408920935764981003915948376136151272826898735957818094742416815870138978441891299793669046731334670238092932968541612364960012740454859822714984104973194837571554212520088291862850221865806504014539160646717599705693464707267019182936667178591957359632989218421770051785460992512161331935346726801925174907976469754077293354159733164992128683498636206883156033064967875993173952692807710539759187844399409775350344353288623901202654446787789290129062653107882469012430799202224190016062662167904889712578895742832097718313167590848970839688092936605096815339329530767224543296198866364750214573131681596706967088561970101975492469089178399646779711444034730443981385256665272244297293769410663732234346496661989879709723037902119939240106127703241858284408114276020627122608875022062375699943996794023387774129024963771699626098800019315164521053123552560246263877303956922744512201618886249242871357072284728175012794859376490220882396174378996951125681543285511624786386476494996362344411326989963819583316444004991525085070139528961601182152701148010035623917106170202724917758253760770247452417719637367865224227046646771722744207617181073843133628739855183947468338625064452983336166913049832909440912800747048530226529428322004095607738084710402313540454233843019097112227473032667877508837946200365012961052272919068714926794215110585992056685452826800735350253056569177671254602396733161382225378456972514593363129798567532977802167569479482460064134600084836240016417727443132336099105201300820962540366844504027567651775358854134778360810717629264541403146643894647110646808959960762536548948811095626943125446100412738906035536633520992373709372311455545875737878076899233914919032198186092216859295044080745354209793649285868656036040145653362999747517377307745382899307869795119836861051752674973743847982498147198865124812927801284225870076399663651095614341086567852351005085011789877444018441220420838237854816598371862425456357736110968338698623772775331546831171150426647143412314152045511132602789000582942312103909179073832162670676945531744972160564041876093920073394881101540269637465687387907304762075088101504818680629133082601908967708914637879161819993601032886624142240594041167028376203421214954141326392448872018301871895106701363836061078351888729184962164482711483468908763862734934935922597635643012250441883021938166728481365737167958430282625048901371236209042292002403307876352789925553687289115401611800536691719842741338089889554034432752699928466506963787577011876463922072648373906779029075699172012899253260691028556424077804131620457219864792540004372267497221559177800084077137304930412548484018029270502836984755299693450926927840844466742034535249674605090058773423632647585495598499039739161178742117694086545822429008803030150288579645980174817997168439841382888514164093424065560250530807849531384406945522901067643041656803872324091647495712452399537526091744570133348578118402800389886166561383214595533658738615636895798509408485018344974540778029595573681315951548637102835324905056263076580604950973518561880045821275310685768392477727026693509749760112486324095449476777093902050418813563422936778443278152141142787574625490335472251609374818494853471751464449749082355174121730909665858188596694419777188412528403972142969870715516526925050488849111037237335296057795411135246640306188683490779268344774911291612455858679248860521413203196803898230890829482922343600627825472972594424246883069930953910153807640070524545781989357296984524219023338137187990264042184169812841482942834309860325407368904424877282687771383462904500699828444448262838418380548290986622270449107027425037088755675020812775538769512954785143458447646797801813664601969034965275801386696931977424487524771396593656516938029545151481426823406229941506204771296797412593120988462345407827759761537316404376167010579473777174481556098072000048789325629947782198322871203785947972606927738899252009261556894148104571303469329340225959688691300641185999269625125165661970080799243456001091925564509812641792804126116526706491625221688763325758869692469235155731183886885029675765984404004633521510436921687899574828224313453488304553171913734844058842332580261934647256575994270493212353715507410619885289070957968761514902616897129155332795200750022742641390846137891971282556926458751322308916687981699151056797564205474109541171503043880844348549112915058878796932608425113340364868997412710531359134283938527131325153442963753100399788297303724290430609330556379207708583948487360492724589331996347161867105788466619686059774750662785715217141673376899486166537180614085891274120169026701774392259214882203717192164218107447128286623743470908082904063623537632659335963879966266191261310822153764591969476244848153931397610874611881405001762407771351440495122422805125309730724746953764337123295147409183769240415862820187225978803972876416389037812832716941415406057174372349997077529141513652673785284405934388946784479726814993104015937350486679025560068976522160625948160042927265229082111287015335690707087904173310213279590116502580453108048081385410343040607844334219334926224103596152284192061492094623825000295573857286722927994371101928452500130922122334720202391095291056516929182159825163465821151957614284309409614086933294280375335011601032542008058134062258692062757038980011492823328523193143706565817897412241090251800248411220953973261702169043873260411404700626121231812939008420017587785719000706844343308018521665465023635617856980507849642835514279910498264193606209153991893009122996651756078812768935360500791612755879288985218362212095972900916981886965756626078821992523636547984077351577410690928678811796528286727331826866497966725652249920947568105927872947014995893945026836804129049570047621156029078679047901572993917082121036767964157129056930968836672061486014690260309196746027166923488154550093845870229419846268039363343186522061682501536866718114904730564268909695013854511268906665472276887878962914751575225867751302616562640571993344749091038942614786241689784079717369497711791708325101202455153977144206068941154730538778542538938769015515598992550750561444487464544755743945686769393353665360885516920162002722641321520718905556511289180251425890961111178788666645319166897396897374232017184242796324251980320743204900042383106060806411887997481304495743777034138530465745738994936774750865114827854204144431260338492231701248424345888487648480846059964468228790684459541966687802740268062630262451121444975677107647630722752221549788371851333536532164477921998131509939416732592908622561210566170499749442611829141067973844190398542838384029753430486051401986797830320097214861980967726379474102574532421393153588703079433528175947696062252037157940826872579631287958085778900465459847166296960715224149579626643461876749904764282824257931456257462122971261638205043636936775964416223338357006363433049960420499119926716765597325347954876710787378548004140820890247005553179421830541760210490441212439950634843676511528626424249366684827469854291677451923431605210368080723410637372077086312751487003103653526316707744160729573976483761972887687699074391408667252803071443156245524901363692528804102797589775598143577601087964461017844460328797376242539212589370363466242755585146733081602977074376870713402873549471482518408348221643195855360704746446621726068452825286844834069093529488462646112599011264496545069116948132132770852557854155371429189956972466042920819475147765240877712787531732921558590500616927953629706545661131449013677267985764699584024748470493874566161977623211423174175723409559376381496775122887750593878861660546970156185812196866864627222301775736351467967072931898254624040830718028451494987667898861384355272652669866858068473626559422464442523293430969792276500181585639935316630901257985927361736271830415665715076509235303786011795952348548161544811963596435743251126812843284205780129210623079989298896907908702414942849920416833950013306937461287117991510872486067846856388629876333689719839528481115011949090024069875712004470666976671592297638293861901091404910167384613429622767504132331425310348986239120273531733264496422165121031324174597155404992089886190623336465030093058646466876061441091160959302754049230667566999228342583490813006689490984090679542147947467224174390590441853280644284047954508691938281239707999924494179720719223221445917237516205586046702620375033461893125490489757603069515147583170452945444733705740641484346272589475522331785757800679042041585929352623142779128735435357537111094345381913348065934448848679172185928815615342480062405163662667223372486836229506761280024189935272606115177845534819348282267977732636747834576600249550735636980001181128194432719474523481202418579148325115112656956895459453658735093275810164543919969205769449553058010651504376278482330270821462617318164814753035186842358710689303565920204750444271860888531738260701580658505723462188668472092901663437484861477380631599903421415771026017794364401910453536346124563575366391943187213544324411914636953725271922096145247513271452008761016386471144443822898037929607796435760941245231932178483240810557405865189852617310673223436477336282497588197138675359394703197856826151190574150138973891324048380983764313087995847458032143053469491802289172451907156208755792870864175743186160326788396702292866967778131335584936386238001727274483736708364609536369807931639265264535223111116718157497073357336911368353773183266924427407194804283262217362446869377984192968717377480666259591883869425656473174952867407385856424306018107310427806558634484750598554864754931702192988584473417647483304941209283543401723644882091270909580322175881456278471823841738952471060791185750421556723377755286172919630136194695699625572175769623461772214826377019812609479781316594801264230978554438017244540937205019418877656845257687231968775980657170040851466092284602948642231007100572313281415920770785680540554524580881884125175772332830215673218450294336588776630103332864193790452562845393551797995936958712585663278597833302851950174793608596232172532059404813252351538869008522366268345544908379435903708712383836204976748402421772549442553818675515291648183119882731486815945567532904528963162366488426132910423245619423421258604268252623457734185744118418087341930480564756633921046891823661069418129666587104339670426968461708107816894923177307056690895931806859406919909203458990850166302569206086087956558901719584353091246677579170904886044022852370030176256995797437766562169724597139007159371526586851869962526012488859833122872146239208610213401349185171025570375344326625976978520529938087983030258355644792112891598358453200826460014345137161816752896921229253488440327377388835139372621126030359689753412749927115103086487050073193025710470803994195462905539547552669294455286477424941306370267704898175064258820700261956921081370550595328088340018720278908685062632431778169132305840555523061460542260031351472426859983861900393289143320443416216571164128501641800766234215317205970537800881271380896611738747273879543689798135368608028766006930330679222829085544803538529645496447800689791745118675746095803324392255429348707838325957113507750470629555252766569832154769217174832186792847517460103511803807856774573641767800145108978048856932707336804924127549071553445666037643753182152790828856663889360372739629258704762133087690275555117876661546206698039702239779980856082504091340775457369364068884920482867163605585837502792250350728226338897404037864229473065794707219976750263951076713582869019656179415239036451936261502264887148851000464492266573014917626169635895359470454194581469805928147389763974795055970278445457569816820629786167432635470356082345034158650078149310047728862485644730835288773482542233331446688429598148818798021577463778643107234424931210752339609699695519196901008606768526896808951492961773496794329395721287389679077987393162205085151825441864562084878360419752647475064934396921854780678971401217924720847361528204972985086588647748246844142026854490407681397898580936481001224999785219039404928289080117160634131540753656478913016538008644509417278944378873013060015991227723171157190509905176827965393669172834739935029679427471733112100259813566522208277789594098556059324549647820436244101094353099402640128070336703388839557061841138854271947141275976719369535843210829513838734068346777604055154428348698822142623504947712727165080231964020654479461311868038127260316718910910482290765311192012230629999006383290207921972358193201742311364240982951180535755531335313469107129962848747196085534268685469729762716963274805817379278843209981947326100578243340880063971390468201237058875359559646768070227231353442554092179890492970248874199002895420603147170400790197216093680998860833353881704934072427324911846773316545445914915812578817612375400009435638818792408254267810264146941134616506426563943019848513567821738355334780117880402760508917928522394710358965546854562543026784904760171645256235786168061830913268887164603735456845887541722965142637093114701925850763192565701225718854012916160405113225359850056907560655150313337220480685465072191352588570801860394913955968404740898334717506034361900441676720498303100380527838070741231931072022111844177769017809599949863392210716974866781661567242055010407601850716436913838062236505596444267832394822299201057944387637527749499127711478098246812230542624306762957416845411622011366157276264517586335195144620800336137596951971732569482781725556395743375884749119127907446773226827585036573353832436972356431477926946011314555658822378207364911065787822594088418349390875195578921622188459088253432260186454405830146740848995937149472428411542004019017805051470528518779925151789914196862774650139057630418590179518799820562375643889907045705181582242529618052503326680105932674664449413647505373197096626216564846045608616156709265904140144130972628908252449277892367118659743383162698800475402792419642830424780509627571680947224774688753631846767886983333273643089274362495563303923676662552489609548196663394826995202162942231909010485528032041909737137503506168408240933747336328480267759319721724406366710495796194190996606242273497556874068698337361587650373380944453533984536336402712009891047070280986126209038668542052944474600280305012546605211060252064410366194497777391107195028751587169978313316475509028857105319369800002132736679168545305513182330617782277264216383244906809070148721058044925856828423998265146167371370937418732356492671734646180605249797109150976493127009582749587265031742505623486571143188921821608108908523012163694681565863020731496500792480143728668549994365296986164075105589417132781845354485136921854372390561873079313136104801252757830329935345291719052107128586611439595113573853266925231363372925889375288320734679950387615792584365938076438659593633351988765581098204643557376502853426400595057927133447889255160569904111317411215976989100811051331968561143367377488295952417056125195249390149231571330224267329622214271600630665180594602415307156557978291810479113652955375995273621782734183788846354283721842526956386033526843986823416517247672566548545198690604473626565497210095140652082077637111356817628216198770974893688623515775739212884804048961353414943181838804871034529991851289530881287844401048460187648186463234594363916918505794036591774459970752929449461195167128764107091980957856417621854341775423449569105434417786650732718890172999182141314507125528077374368919752472101526380797072991322515724042241089867392931667730578728938540516792665518206124965243454146287966302491194594446249410392214873301487582508968575558585005333299727381442743149553133398104233846411527012993846805718682969940776810397968381626918959171386199147706243346938592543769370322894507596745750084538260514678468968720711043016666430393215551372129332199160450202226691910807395936674601522748620979940716389514119901328317550198754866192295907709810571460879618381606064456983214918014341444434979486176696849325948767897094373960729827459001470235933321849621193790663496568997060541037065716151241015700682883056249323561668857999701443819053016124839214784715901211709203131110019153835739069781557961214137895379554998232594491607997088235604520018181256893895839185739938900893821571365091871733665203821268802475348857027297062026029005736302853022267223742229964388112579027685841932884148035506371487920383866870325331509980176308667272362782515285821249028117934587446068257357483309497686847797868647149717503837702361377203143860932490675424195251924792195288712470898418267238986750683362729945788644711403091164380857926366862810540706228185879248695144807079948993187601968195230320887358579606356406868927981733283682647451765915027452533589166310346338187796719768368565278885050737358322985798565044735475700273977055120937076104633501835596322915852296313463437511217143126237701927497298308889923589864352306614661395097729302970253722656097701251723171461853081232162418660649851161017543181117014742331135180009638046927586868041262809130322376588244894560591306376381780345870845214630705186658724005993642593951391697258979277067147377035346433666487736637724764784651625225275457546017457582904777755024691231164182984671170441052367252419055709222422962541975171621503141280203065204628974790527796658957426366315759263509056747941979679598620065058104994073791601981519899979341000918671448387093862559060961571376761903641171523051964872310890309932923028166461073476594981220712361293745337746888153238604881944127432835949647788320869636463170349101441517444663818641674583769407270945866564775250093458029144734364178681399391688743611215140278932362145567615538770252064786011540777102843375673238108072194112135831662335719757168721123877654657365458529528292645222632888733340243918370560948475648531410859863034145510780753996255972024240802758895845583268961280617005329543541129709213929805338660696421218560570868148789924712095521890012820776355416628635086695686188166786338649918135170073798126977019913406664667500210170632056374369158236007690353090532314064118597348757543746034648681848477143967009123165341632970840701500025660837114449040882824587027214847772917274071364887663011555341153587041164831257020158826520626793311663148672363208040917792295542907677016381079651156317901165444272424900091595246421793634529316406985336241045128317427996474209731226434432421609458639907235548827175271792155762863056409932489187563531908118018670751676699455924163658191727227903368025735376822340683708818767499081140211570373109003036589842153481727818237069647306774843922316130767454054280068279208157389441677046191295619213012255893928495363786474417565468706843333564040235267300105534493743901478854353992927408299199511109215985508221044216623897086482657501453691355448936967264083301376193911897195610145782234657164196855685066267727832132103497508573271607678949842563232978944437273063319989047931039276092463845113393284786680693333564658809216906707097226415961762760428077322250470911339487445873071250869127168755218503688713813740041178276380687107779119193001957611723286140368445372222267343541193938506605690622563229058453183510095192951339302954663246271081962120515757796671475732964640964059088736022490938325569472661977273972877859988968433113156594106542497036505081066793903051306468905030502345398924797870869943890812011979964687415895819042958522593452316456992740897709662106246951367012288398374834111371665525538318542451808170683832569865181624028499405218102703879858560538258099148431612743346473726327057569012047234859413292675413780555289183056937937501590398703780454724722442735318375125935454179166237603887223888533597960550497399758417057849437746142877303661301600373575734261355978734255403818346823373061164778390030028212751055686012600300388359513514739110647358591018803281990528694854688804679108881898856096386228366227361390395981311710392458425153457062607059723045019950759597710020569356797886580957362700581789446934525913856042351239340874116136419864816674240892796408207656621584426078881080753181935217080184858895572561298492077955791598433730554505872476368997310384243065332149587764797388503800539764134843308645341493305671115819923005121064611079906393614405702960284469415918274169980078787179463857348869166012625406680533526079313197003129229294137415900338284068342163648241432511396822316123046922684793933821235886729411748766791412767035195053961023559904619745357074603897705425784069533859948844389273215076073704226623142136975679910356099475959968687686597852748354677359827933835713675866879597958269509582984380910799250636532930649647038248340753075420882018291741269771199002137465148049996048389581493150304822929529069169654633774589579761685093033852755079394644525575396125044978007061958347861919548232754538299573236572298992903392523942819440505082042556543036546406606000800576310152593695347579970108986613057483672537227830960479371147428180428320487449918815481243391590304870334513916294687659476677735710104088620823019675944625309175231421002771076510453003980446566181740632762571907408860308953602132718741843745906506102982387286996958847940176502411579345698355439456761940159476891085186663929515886902456596432519979391648887329827236177263201880356419215126747815734663837372108975864676009688438642960503662171192317773817495782041418119877650237428496205174894782188853016575022104256626111739803002491319750664220669895080428424918913730934689213914773639457318193927950801099420721419054918080127503619103709832356671071779372900644111767337821764673114440797877876994978557939539376372379677209980312585723085790737158369120829799165180862531025782314520688921026463349154826774928631893579456379878826558471215728990600656307486415475856917731985611097796156862072951257718087463097247200252707419790614003390598647852762872898911517498507969101816077551491393212468686156907861224644134543130604294990987453485975022883012945297954710715406748079265913381222971480511965424664823247828390126520298317909076202295534826908262453045176327916520825150637073140345845831895553719825643441733825914028627187192728971356131913000105504140560319911888127506593808293268208549030619735470284632666835172344426078820710615338034409832874383356781018289704943107779223362489930346387750795664299676279218967147552195495535480464626652852072596276835062737112932292406696571246558731102581901550676860993394186020654724210489631044216932323666495222382612301310946427630045700893872999346597714207517473060763028566839789217043095745556888279779003417647713045495009569196921814003314870696888877899993227594078577543292149783231312177335695216587133514717914436268253066533143624458039263839478545118692181904103662214139901779590178247564104182776466991595811066468325327141951669167053717526001253502211801652054900398500845508997951536866309873982100612629089596989294895405422077886992310580712251945638655445688867476020836443713606822937818030666148216180697277028628748620343567565213228742750850647189510714709668539252720650278813055505123811694352457760942216392018256696590202038821835639012975700469000734983996714864777515204592063403532509758117442667713187425842993762838425483490251466907383968176306984927494869247671118639372945239385168796289701723132942857321956720699885747774247708224664215589822621725097574194787893930850078723386515352342535455301686106056460331146327470059657442649867658062837108731284165807992547201675617035681427746366565329486306794960828900824801105391328391802988172434497174067165289294840172399198369088645161166222783597435246960159469212366112152933543962722877728094531836215751950598216478430861523099723160455482646508332633534440167682215542337955195268778474642742309042804111164234151615136692524618869454704721713088945679147366622282401364917979771938875198880078111800182529051655722707662309996137590424399492986019928509249068338337131057840554960403146904405895566909953435751013800525481950669792629685817296391117743541372443919979026764399870614429885751001205615667605067949503040460506364088281904812920350447943921219429417434432565022167367950191554379069939792768316782631058265376656701978687288733739566818565008036503644479121675558625901766219566773840937214666712292152992432040308105077506377804551635005825539836131569224933772017525307088779451761077723677515636907051476458260601311415528704406605236550560575573843949493988729763078335512545113336010210580507007752782471870246183390542218046275652981841440127838385763268890245467658521258108330988409064531599161377046737269392716152144600304930904298656551021335774705708359281814196885634386954271953488506011226012619518849252081072592650037139896167018015319043191023963513966543595093946301741003674111175604943367677132846949678380752656363488607777593838542836401777095906677402519852628591301182688611067611587991296617363193408854325479988044376072718792385148769377452542285731309911250433980676759518804978901452867400278146068801606392654523686213358859327722847115409268014293513632507087526484223897001174149296386655326754279577229612666600654131337106656400099691755634083629620652787097544030001119810587261042624861503212537889253616604487217491741437560529927209590087014199870935225662022887702248806367498817730599490251506936144636908518870625894687540989973709519595455275793540364745247606979577200310438208301757411698573112962446582229401082538462635209796981583679113531209918154298374944576481896279545438332674865981360006481040282444773081934246609751110008828264847024511291860001689903415197872644975823898491569119107864056267385967592394097199558248912996291784941225040327840770174811527827972755191964815172810432257240844882294994396201030837627444197616287338912400672492706239964110807957305250990920474458216195635545254155132576013043086063751779591805487226558491490782027366091365690322993180532677980510983455546778027939460326777676818573847334332477817628324230268942844193937067726680849847461486105007722585019234919481876058784331238033899593970173730658672751847588521728168946647436389049586937000514528575159217251521892479096107131348082474350525184332789778279325265494688683099914996822590109041061642262426390014795016120447785399759945924672148016243408596048785986670484325936191531603747640834158896534081274723345930403285316115181900664344888734457664284098789986593684358243117621534638712486645719233371081134608260606594581082469298288521838398101025312290868005584407676669434899443715656447900843066785083903737853319442511294635668193559245541165742754491166545077639346522735115095330329021990959894218280168284873102955346341035186156996306691997367447216700391963009565261308572764613333051347836437906322813180444524258015332584763102399027080986232605888539484821189728615058041801637708525848707172640536727698306441982763724086407587015282454333966708438778446628416149371252297122557001274494516007009338896978090699144514486297256095541124957340231067669915458597842670905440466571068816472071904272666709189138458352233782059316426493969491836393433672114372534905608044886185974624619554612131662140126986972162398133779962032144862797933541521985035187432235300901484553816922270433547839316507640427659418149831433920026450581518635517347641814407943115911685476405195528381615593296446082999632658840660300736664453385947307206630035518469722915284703007399254774693764297570520740838280733701555606171987847355349200666101832502621660796612094912667479128540086393722466892011311976152201135668496754790448067944000917818362940997944280344362179157586917511278489427698958740893940819679249904295144462905225890969701734203786957331319062394768071182705546262331385564346733101849401381534115864607281892571215896180879911702047046404609686643356502753469539740998651096010695578865756199669713530995018904577358356151736712847692033812101416189975695239574002996641105181865388800112343292534592367023962410493112212677093107965657886019598403705988923423003588941234002142429447487660801751138472194176153159697595852274520727154326716051769941748073497390503659016398586717173012941542398993424724019934744214492537409796564100843367184437661333394519704739780259825881125356530726091578377236419900731106161536743562921064590115594651409791383172918373377853720790545559529150419728137773045690108380287174991868780062574451693148799899347508784925801481519109309151747191229227171832371537949831782462255961925246683401084513361603665713844818091938262373973753772093430774088624246345053724643084763529146540605945031624777454096131881537958098154930162927780769719515206971230523702626145463611885147815990184726572434111095776157336097812900464424503430344230429721259417089964753950395767902145113966099128987992390238438308988564704724110704979616889849913639110971798198146158886444345563685458583478142659575721238468946041350276480940216885247874341599292581687566593361544363379777035997358583592292904334670007663170037325720695644470867520099776943130533258037980161837224694311269243837727205178316881768744436787727154392575571279727516628348987029270013343254709935887529035483162412135161880100050490110524166077710274188697449473740640793736829021637557846430954130692981992569054483698419895383592390575224054518200014741711352944281579112758659991372717320555315072016225918016632085631087126606336800045519967753991490580152211630492143735743201342553758053520267033862766739865787612717901990284413123971819010581746819560807396571375197390925452067628901985449868214997845311465209895449375562555281210841342311448657283365374968856123255778708624641246948608633993265616074259408265642413345990172664970884395870737993430474141661042905822616106793616401849956602735499208464776537937972190688153932765029799741189166760897277782300736892021009641413711895315319356243409385910566907901310616385046634594828701558572060378812269916613997367495692722815162962387641530106874387027175976709435322767015632964178369044158732417852615900344672182342936523139365632898433207184454508838946141818734594891063909482293565086861669865949444387472943685634821869049461140720998181599525623531716328089869409130431267770672198193867802863358952525649839536870374669472138236228139257784745007166283669669471764738263796882196313335402337156810554341603175634694741346802349027378587607880733829085023118712663927727575904259686667854797443398197202803723631365036847156836227304967015342191928156246948210528087609963581696393624664909138415709469933538598006136242594960598460693915643561305986099572704005442466537307209110602062606464037656524190221900316915003860744585763918387020098431711417255750291374826244909097375720601142031550730928957936425173031656541865108539471666390017446248495338379956685719313147600759306900297927350731046399599726855444198416795335428413780258097246359376010273093946167437801155885621838806672766810270791064718961057109070894097933096336318233734868124918204066379560534499138153622556776657787266258644671007660040894689735190835250469262213606182737907124799617427897006705432910469927007522651361178207560902185626055700792644386173283108184252668628657225485156765858055336168954788136868929180463242781890487523101865615352411802846519780969941460714691765645057718718986776794029652759951299957170628665593298265973223212948078383989176691045390417153307557115927990909457213370368125551315385148717005286979187372536075340665309124897069610427602938328494130477236033608435468847981182378745164739086737324659670630146143715161857560559820706145561938590492600600657468441072144604478332740793114416839179417749433167915721563554960806577204781743684370901212455475531072229819162861215864550286655523003802044908845058355400468815380052231960487593010467113864013443722698058348556682923185993722224166472345092392404906396748350727078283300546671557073345611542072576273031272590043215165252508532811964989424775575902954935470525486627453138061182722275671520080876176149902768700930040963722593241701641040643298027823416238348936472106365719833509002763781827655294501781226106292663536774685031227741916666887537279326490681944800119973027203465631368199939409317410628314659270065749878578271297496388734765750869433011637097926433360004613057108227422537591498925633651577558226107121652027686608943551872849732116544527785050760953865629411258757283888461924406816350028837167302833360018214492676495287345702833243290887946869194963754731051356567196248729769146286355187965487154181516858496402774215119876536374224178699964819066252799483289778802969774955548872687489516340389881247521904352956377235271184393795003101062676150408780255951194234768876373434065979834722590344501685360147727474476672592752614153558202870644647155961716057947986105811273009766196881411201553616731122563527175764501960249444638054519835707748201233075341686361456350573955619361205611931627654292730698844650757660755872152742637050469733347404754593823704430171570164960864214532520021778651815804404475843609061527399106371506228388567378624713978760277699383080236468509505742256536801759455927198179080989620933359689061988642349031601713059466330306047524333175121171595201916451383059596610357771958397153311615526246313365871797436975729244654808459591072450929477236569103564798242836942487574758310116288058621370170584584888676052809480138519676808678177743177492663856348462613328042073695604712761524441883487796798413194211259824961441274410221907725889653144548649571616879012946564579735891396668545757049921924553276544212168672559470209748079283662203422436152050833643403410201879784670957313477946511534610674314234759087881252393550612385044402554431943989006163266150809233929888921459823231934954240567408995497138778652319795137100527723725879759510373998714472883899841000264096408544543721283280682118561539112962645436501447260578877937470051990164682915805037127779315246883817194061569251882282289373260226175300972140086472657185185849249739063363304753481373886033236665035635062380461800368456176389212455507124577439422005097600413049223102758804592293679582677645924896555276038353287349686114163766057332631283444343182647781894880303193449620285598906863554996747377109175792089045439152745243163563575287851074717793043826369172438988629628685496780753188785501943743196339775925530284918894090672682149947235724240574524748145202704827910038500976813735296604862208072141135174706245530457500701546889449057822186474574364722189251940737757772822672458455896746151483555238395052007155078119930659283378546013825413105935115409964937324470340950898031465358781985273139679729786495465842328817323193402549942744184465790988515417664586101258551856820472739045807532734704185027474061519259365256838202985592560105585340297037032374437367506451405937963890785662850880416027790270958177974704551213144033322982964901935840626891094604489031209686573118384957592518660525233515790766179157888411598978853408977742242438340590018912072041750204971535900276381189971332082725018480063410314912878219882267525368555210006459226089568249170714571637915486345318450057870297250415536557435358763116470913276056640121900525801058581651795121022417463348145482775904492136282730447819216357146049884688139279718907911728347613283809038818841760807039141855951875772417447307812069584273789054681499088373699427501323756561393507658873305717118415905301861843346998194300449084083149627470762633438279497752629238662424377996966955610669263738749193116582754224841337585676292036597843079400714712713926486097451981758693013308918306793585653959328159237110580999798183288771886668075163462936515601003295682042201946380154532975653128998103268200421161498179736876655854491747323062712694225692783591755929443479808611615065644640750572643642300752798771446284128450905957987287803721070494154218249438542903679234978548391671076883719897304310838345454523222264309406762721133889744673755165668232355807304267891526206243272596160914297508447596263737226053824408826553620643628682814930648580933399504124201386848136959183067660318069293822232348727639740022129757761411378996138013477053465486797177482999955577239901214764010313961069852707464568236519802625606957898468993579520571951898916538195655046353476943207979361036350590568305143806726335575011590025981376457556618553596328722465336338645401084093210134186528887931453825784751570714094667072887074252474557624530829238141716236102051761411445928697246680700497069805122119337205905201161129359794101343351204499246396362492165333340487086180001130386257038179860973048471762350808231882584152851437812109675545020231255541444790313780337051589962054781257646909976905088343867159246608478642905186747272473092757304184712730204823082156477465879169257356458606180442855513722375927598288982856311009817459249831667072574802472719867383053659969725247495709483881478186691083646857189617884540074152521167257867827164733133742984641321702604886590640632351950906405335577033128035728966242312337956118904427337641606401630482551790400198344775120772759782795565623670921445673652934316500097175314671422542601149133401369149144136853464526888841133544355712002781685721803009470588349050343373646541258021846272398197407272777423260794268136072034232071423283218819320046442181446365716885466179527249773950107796702879241610839577409164636300305337636064930325362397466483417290522991051660910495321813343497144638640173401900585456406790991949298084767637118502924117308377548725167626820927813591248068030524087822959754882245996636437675864526101287293862630843279926281097696171892838558802244559605000488255960862819918813664663270744216486346410338472974823529998684055540521594046453846999378372805623142528375397635380438790934240459290292089094298483228615692732057396083784487312463257362593301165454946286973278862158954276503430269568652302888186463642981067755079424613987369238526826186850466915459591983376128499512985349840936564093233689717577461060018070082714923380023712792244391607936285132175762223714313468129531115795038048408018805084398388958692046089226060608372811017613544416234527652383184707141476798019675428982914829261133053689252674715537206138021123022338965377800964844222224107162908932392616315635915462982111940296738322059342168459015921280371903970392809276001333246080935258468526437841934521222302950011759887299105774998913410901468774918795463757634991825024087185043366321613549545420049510232637097037500581595091037963685399008052635823427476304647616934293127981080682531644094523764524971510835414296687816743154936332461989492215431526977068457587350952542698596895660651528135330516093745252508505310261473237050258970379328394980520707655038723520829921938514444267097121262718177549568770282769665318715300374573286491190329278688855049466235785629973509987519169436148349563508982273426606205462967059230458547977646038846752082983703266051356305846225951252625448830536882050933539877886571830446134470551943961520471879694122797570544908617980872580862782791310096850975972141113434551460949046983066352866988168826054922962508399953780152465812332183874988772410178187184665337144106517234698731713721750166233289971429110730425503671319981703754529088699848027697395364850405155178766956434375051622640995925922712592710643220174577260976542014947623748313280901865124401836133886821299934463080645484497050827519968037002572963095520880009595023046437435321333561813711536124444760218370377935890024804081985759500133934979488097098616252406992636701781671180244636983970699320227290521311530025824274812752001234789585445607588543779552184280046852702997801939968602782331330793214544652997922120321312324159360895393085126389056257846092662720255707109555922374919724089298373894209026750033642330876951450601847159106176442628823289158505211324536161729152549393397113277974913349940639620600764450823966621094616644807284994865019178662484354358567345232689341878596096637321375747867876413599744983708470484120711744095062037263704895383789264053361305668655407447979708567130763619724885651545084405561969336511773339598929318294864031512471024700734169153338074918365986317169294352565079359762466517377750261592925431899905054466598474285603463293962494400494826777122638655310528658463792315394985580846521633041035068707619280729348729862779766820127430366020537421642643647503032363627473598086202249944868876789908475600516312128873785653336524254760722904112599415191001715705479957140566445870740260121845649688670743362192015763963829744080851166465515994504722716915004985422072308266600141851598644159389575879341409061746855361606465181102185290955734346174608268377205462873102328017069588651326911896430099480343541071408664972257868375462509769547314128662534098723112195426629441002946437752573357493816756774949012568684987322363035388080041993808131510130905556849724357426607931565081584969380393551102326500145582573076531827329440942647983330147904032322037797026986676257945353387968134195985296781734777796593058459222983474480276012936136308210985638570887388787063867622874443314724950955976946307489084221877214472782073233543352268975632268964074978902571125062025368414594960054101612307072210069152530297945521144034785293320723716556183044118429415016944848180828557966518812509919722942266940658531632659692246473627104003567870570649491589047333748942759588586446383537731326528671674108096551755985913087727377328285206210340220865260477673806153940402247291900193253004906194506897932972393514200258127166520668135322180741485853097426671837447417593315259102029750906712622045215896346856716435167827323239233880858372713729768873697650844376980755407013983952564955184596508108019487080393762456784609725340553467199124512465363892213487953168946549175422046943950067225961474657360494796935766700417340125236144011235478442543820802164552923294294480200279660775732898104942844437831785039080328123401610333305108494675224721659998447279835156980893699068540834377018511762506556410522916665180301128382868549350766871809327501084185762644034430316833678683175075581267354122944056377557996149502869321446164748654540912928055172796272887497783296889108488324945489072220047116522004456631678621002700520627764528299347644562312389548121114524273529147462954331773337579030609614564446176633940233994617693430511969757680485892419849397507114848259107683403487256889678919120837912054689168417248724647569253497355594674560456307155350563316854925862449501890023642241923621563023773198205723352477145551979897006309799704115200590980048259151241106770176222420443639926174686088490803296855002716768767714357993957953280887320471302490289594787900191825379710583373553171077174817809810534172640097370882492640164911272618834484444338069700155698491052782730683502099750562687242251187695597671732108196982719682670264253026564239259739761191890626425266102112692053126920006213277540965907627073591659921167099436177120280309225332100037467578619303188183504542880557642139303727523470010440204547851363109333895535916184632695728208115131516620763285789815286121849031497639691575080440302630874768485459426779799839728068762657004947631217474056992716225852625456895340301998809215006944141892925996329483059988609756467542619861458296701602177155825781769170583691938412108474554189398579262852623360997914067067600429958848224660808812098591479878070921911089490397048712046065575014579924191136968406539537005930251239480056759621644512664441786927537657140914470968577684694351278677914353187212457215617117657609183980405499171177030093648692864769923953165390555079646731147572001380123590216492914209380180031758025792586951506013878644460982184783039986837293947307704669346387480934415761165138059807806586071619675773861207372711667856733239002291997760868901772445313068333675982916412805576244729934480924719899655471397597626169000098164327462784028281029330382955587520718928351399613310174546601251437569119602672127977850168595203996826284120389011516081176074673393682087444199559182836761256530437338114688841723498988556620091812925862214753298518496525704911375702188691290272730392449005927057761560641334334744879891624610780295117617888300510421957426665914420537537416389402583527158249320655561612480910744690329268965738767842023218521995569460528190588514910925775558721931555968747214582515202219978098920608816839875119584309966734405648903759982029331634617212861634167189577981768355744139077288263491477379839419462863755894941563204885011609199288379311356620694486149190128156683247362043111356610028671811465060828040955801964580586313753567021025464845362338428337717143448053473386035567778224450192846485104823964630009307068427763338735020702137490383654308822211988290505935011975274017422887302939209250778417366996598881386706190452533183869345481509112529313694723787283344192428208317999209604139681855989981027371208815699751500626429136084101968742649947424619313943698419576361340607426916449431943199171424423323497163529240268435483861597145603182923208879251246541128704965780992731477097305633921721649278741232151778884388043469673698355719337887710463216515846365198392456094471796413501863163308204725642071896357312027741156366554502372229537735237071393454759050000673565892674410165707779498511537656894954536783867066340996912438328256169132849534808890284150129274139297047922833154478168356903931947992390985536273070288795388200559181742904374399444099667902560773407796757969940083626528179554574601124662008570884055200262794655003184905809834876638711411159017846653661403387083005957909668350545005078039529228041881054811936161419626795413554496092408142694460382707895202406848226822024237345791712370918753112849909016524304662760768684269413465795072828453403722087675696931146797361584493289435118357244998707834968515256410616566781056146762538394908413868575988625842559107805616758823415900218535192277189333550071654600183513708212262297109127033216393572792927544811343880472811232513029584072220614739304412026998586141291812561005781758179055499843650746418397849280059970528349169942461891861755169112463954561738736564513643709953192672476770746949779323566168709668818444146270287209608866265172712031798890863519962540798082408950598814853135682400078035270530012592116522438195387685072016114643398943591770225092726563357148054541738672411008576811788775578999938684503576449157207759928278486288276679620027336345031794243430622479748783683633782120926049793510865406779867256661525367891853676550170340675028658119583929184092075647826767536766236405082688404448167203746189093389831762731683989713726309565497125294970257692855827062159515433010014528056216141891781128848388466944256788735275236045806559768097136616260340340299072195062508303141873527622965955506163494516748098280881520146600991244861823025482780354435864255366114951356823973659126333033291527860991634219297574729101240632349731102015491984152526980263766485915214670814737318852330560264858696093460043440498616166631827741208364814078433343663148291448933468539886339809147847042318186756328125990342707568318400776784906460401671491237722263048699163477994814696904495675740095734300004187218516370361427515552479275558888315994912415851486531875520031596981889579482397216506082513824616094026153113440163661686972067923738277177051724835682891952093389807228599750650959567843423482771521429144948101514196497271870502290094733818847676222038174676694379575439235582103595814491812135932610870050272398428297413033032079868460614784856778498658021679224523780670714973323522533087767637438517700126316030967793779260484122465421336585031275608811338765590554431545934442962323685177178286269133658486102543871254962778337610570616265839231460761323132894297555834202006745246771193626318006067139681001365922783507824418878431713080601788855433292172981806357358546872713431152862196564708741549740478269136757192777492111880758239067987074147884548268487719716203781765212746061929685537871260995743221037421156461628951891146857275114642224433212298534072679815863743493084549107592235616177783540054473778543003658963210980161958235705007984536752472776291807786245213553893380216969631266412198151251213883115113349894109172917090534402882585310050974321437565400265754073535200921169681936911274226067528151143952629985072726161269015808901401817316226865510614717012615959623334564472245874317341032625676937204214696584364350715275318773534373498593231578474254955530915778714026781669694231976608830519074066144630548775372202914859818845375687728117313449123032745570947652385363261088227411917081619993106777937576963460628514410513113340821698584687361669156393259156336086311856147469870837865169827160454396633160431235286492677121057518948073224109748845211104410211349951040643070819474999624398869836176692935156247742275266291073198083676315976572293181513612092595254594529711395360665520130159847525666689915259094806382704758676147939624396269845130857147345394644534423229072621717266394390517073622165133261279323318596981086643459200141941092943051282441320499100932134034591987008959596774933671865995828592563213937846457050955672190006688495238856948904554287562706376125431729578242567519236246465766158699857851807466369217804363847933708701747705678696379453530747221884925439694127256798975665327691567767525676188925018608459396673099022258956435973406411209983425289569584970816783842885924457730648223514327063704351569583993621235261035880923016056775254395889451502152986698859230014347197973077692564080798493337242126679648758951790571803813065760021255913820686232716909527358735835998301805383137208693993570294097271778073606235068201790541903368810479619822971897139296539037655450912794563063986884553564367950681005533218031182634131765054013133937884590108729620070229542867080852486007768498062651154814632603003342603041580696950446915769791056529702762992656568641951475679770815750276563361810137515167850744531453142120867548046614956647240933008909667327446485639000465655711921008991090597624966667798850801505943398167361097241921658089705662810029453459994028029234997892730380642302442764316792872778582546175246059354905362416897073636216172799230122898625772602491012693195964862135614078112891919593863030358678925246573638070086723108046258825403065358471464454996737200043014587009520387818683075027713763456581425048583191302139419471750237952514241790972156153522929675149412039404495981216315480416213278245117705387443648760368804092673543047978244034557361876198153832208540747292163110289404985018249813197710039850271749563311587849968582418043693552672834501992608303994909178042674921189520446335524264050132786730556021596006504998427764184445186174062174399671893751249389838686825683341628653568474091528479355288877294045000391708469929302962359357734363478179027170329008506210851122574679173305709373593392363663116899777931971265096245182660388371366191233739010086740984469867210255621985269304651688610384641941451489343173811068864732831526434335714004922303099096904653678500307472884748454881449904762603552815479585804754290742421390963972271705322080009848151516310657744343378037140144931511905668970713423146470262938000445333567474499252344220790474455591342253455959309812109560093377213445303873062012114045626901163729593456840094755408042897466666352195495880665610903831380819719195628415532302944180464042111215816432194966009256912076741554963349482361253292652522073430210315714019273096476263757283194588054356317908213289296317249471864152186430050132888084424065920845467791790593419376654483292308993916946022148888175628512866308324722052415200730297689685185439697159976992833143552940109001657365075290689497545282025918879954502600154976220186705525452177814023927593840107078342291806207264414291443541322110956860003517225454002885895759136771051830847826290645536714458663606561054211575083281655444723748369107848481692369265639445090746011680279485483773927667268100509332549121092136276604450412528221211085022552757256648220611087280829296800374362845541332005985889917722570590170331710938964052140309117429429493021081635739814674398019108750489065406768936722338035803027234691874585507918105867886991862330363385074481723756045266030146678692199172853252962810778897246730336473841995609969193448668142583457887459488742818870898909132160534314326313232380033130871944803721905483562097105913293971359163673083850525045010669454861292103183627335566522779078077675172719480917544976923689751938975383070763978881912307703932249064245837463407745928860958728605642735746411073833404975117858291091656212401819337590897061972356055047155172796254584788070410127242018143405682388517718737960943825909333016884753226301923560282433870388334764562229575921050120343778850987444763583286178623821102761368626992699497035065572361219215828197205855310814150765071571193256875414919086727288483325688186398686189605759228170092401611116486595150677343365808856298252836050599287069162767979299867563558253732334635867584219158988215616025108021513744594659930911118696386248605694306468464479029080013736868895252825526719215759709217232965448779168400870079085772376438579963795586808843610302556861445503544015761555808690363257093307468928499945702792667715581572807157138351199142791828086437864394384843293677127842275946768285292852995671123172051285680017617382191706870383163767619985987504239768483050616779552036212853111735903823140166125667881513123399226070462035646316340769201395593771469706652279451083234407300705270930481675058964253333734117671109908793578621521408665177678045941294300712509463612047311804062007454587965744956791358013003226659171667558593920548502243845615840587587496346927197182837887626604280266455817707164182073170447884697518681837206742419599302688567658057449598842477011009783038720738498446774179609491344120225082654730439596502087661795677793607542677121573404272337106470399268837280275287685233790632729850407735882256451694835156179696690658513442576483949800256875275091382780651512754539343316639753965985209633827366273881944623138577077967742519038062884876309974323431487092214725257384020213619004117811985375132012503129465708417712971077971803219512303392219290660360592652359116148016861460186256720983234894921330970188504340646274524800899078847863683636829825225756705292809010355792473251896259296578431354295784025653080418907848246651410732413957189580017764534497592748498541049720777137486774401159932597636146828436165005026152607288216557283497078400059935986463142263719024643643989861052123674503674079252245410095255756291312956977716132758276583866053854440597329721963407494527566638796706821116842593768912773644413666446367277903310625401261383119083537342525356854046193009688380873490344913550543686135396568714198021725994123294892138358607738077156610989680382263226165382125210657509335280484739395492855556155421787126106413486515930161265700944124518148303299843972497882135546025623887829767799003331294623639913093505000607436014690888687206914568718691162091295805770898680354039463230247076346644352504837790876474481841130060537684110622576762877749326750074288603417844215823922541826446337288817864845358648745260524474246466973168847553861668907047235916811934425139054099275620290101292877647502639547422875829082973953845377589581526927408178866914491064096514064190227077525884174891906162352155558936221098274731360184535234979326721204784225131839486386003618940717051185566097110242257584538129508220251733957135989364032384638583942954226294411299527785020197561063170143541757925608502488561809138837532719719113918854643630179475592664707891709700754413992309171054922224242804909320692344062308251681566676220505420400246021854550260197283396840288947704596524762124082623840515170559776957191157254004507301702768636167010184669196693275895510099879660483736804744306585650567638310961875000499762332696217329992577110256539331672636809452107809275308064574570268097436512730502131471373224129234686130915198727241274549455222952985836246743458221866644863391836877163640831977002368870569924257935078922519103616639171003915512477239169924487455672719775076483626097484355004021691385066104918606030560003259676049705679200595955109058033936967004115120162696552224367082443897633319383122282409983677565006191682985027390162232486902676991700260921670702965849714226535788140836192172094755438254874188329663240337897168752072014746277056404329264785585328486661140611225448437665051119901709757541981855191373418784722168791525036659931055974421712749498189409203510416802596517611727044724443462532791755033978228575136432594539577990504204105021788541838639443926594642553813865497426465627654485572004689816393382762786393046940520278856779802449880229483318686030942937756000493162591332334442119472759723446003032259678751156273483444539648037228484230100891753927136312039064137656057401833712967259761915328053019729547449657346942609346625308986453994226565487892642361425215761249261769165799051231026847123060204736522974649002468647873044107394205938863549163050665320898410986093428559965829960954574500990239453686593555005756346059695140418624959642159091552474388322640893827732540521185852927199652633371674115986734974055447925285994604306472139782057066766581557808692717062936600308837410648049994824523428573760241525750918984016944043070209580070530015526538170542843462640870171111487635598714220201231072185178476471123129049154331937934116924637715207386730470238364562267417010232244659368887457297673542050771215532231238338755910366306245415594603227099935120152248998692658364328148778808879048057858556131234958029209477418883120553768844903851910618661204673716648706891679505138889630537124704961291464306152467039389425368221317059024275516623766732988715883528412709015288862072783295137410726550097436955547059430238138689363915858445291316643128597622069966806302806590300473988048613351427365987022945779832645168465431311819077901203198143126328487331558678142365579674121496227288480984379993991226980696697182846233510831968171217982935902312670407058397358547565883233714031256453942595859143190340342376572217997641421764432347383504620481507932515082160937437790176772181056420543303099837276997637004546487796519352857247811374791650173304236638995043346585595245489634296162899615426748582483478633246774557958608020984096470181948753243691066416373932932139400230098407924703334843627445793741770166858465999183648465438797240797440638997429029118551997959735644483568582962726730941615253099908822953698204643867635615548564699824282909412369904638521549934532432696025646193107494055646953681785077427764447214432825373573189875898565452030150272729076741533026432185647369172165325113033140682909659500747452406333507153482830490458055270638123826968632337775150752538731411231211055205926767521051340723393727344376572797411672752616164589972104807331117828355243390983353912127920546269075509020205992686659537664830283964654854722755648739568039803589571361971511954584719474442790294367354764307105632848642097554824073414857751318537795534742555288222742745749556662764062944430003963350449310588795575042453498285790338684139205366824951542476843455675471446580108787731705112695713344844449154635707096274798486497386295378679948740009546874881477743563588853407176498873875148783656065983981360176461893892277796369356026960226809916794560610557491166036709952410216460135376390957292636403997907581588144285634878912862890009692303192129637182420583929190845605616939304295700224892655397260018700392193623291553299708050094160676676165540394777391829316190582601912373653335084162805695131799544822239521429238857928279212616597203330417964654256823810756146401714448494464018971366936899020978848318135112763465200525552370869963191615901864857315671464881447493315110732140056657062287464438660014068959273032061798559128613198390009743463229376842344786689694393750222138327469214595092533768438115518293252828520540744078841138285810100678995134360358747400864962241572186720837556898237560335278154442397617899794933645830557783205078178499571239088913329303251991765899698410459579770928302571427693863942199589930062930548141559590967925290081388685870423132334947985294071572928571840984729123641920347635864264465591144873466881826476201117769566263555036085176296268970195418574309417138119621483836079536491571880384032426671428969046629358387557799630649575376714002477423382339293054423938592142270061717219657296738743789997549970400341790429432704114693491423711512321506596696361678809278472706536696439013507254147547112213023342407533140477377908623966389136564053361823355895958877301007898958260716326055288187358396311621354262953659845786516359365408423176828197044652021369376431605310639878432122066018584514049681212465359604694252678082678914430768612051125456452561208308104230255889049341525318056347706650609876152222687257125968021803726462700032384250059771936104009662169620024410138714702730437862877110864079670092470621654234970857444781800404378487153997324201553736488852185376302501984726529079917770855467150818028909177024419039423806926313661390400879554287109150980289819906242797060941832191709230884417682599215461013855932075207129558024167351819946864644304661233929802248831345812322914865414208553770651883497794093245588365775685554881935155013013582677378539801802281198571959588422838507192480801206285082395430130083660946012671267090636551141786906991644622037962447662525616866825377116848124168229035562052902021548967046463566323059846678918871571272969997438198869549639063551050095960996762901271695398615398271756341720512312203312296024926354595497312350690694356015863410625731635603815566826958524642501220541824802667460112737923662886221167558913126765441027822248451095014367854964719251533334445289173841853923452363660461605355924555160095964548572384955539207867892045541249655554544309287563133416408026260268638494234523930378207810066307642764198181419527184222141401001592402794830753953704084840015623101793721850157301394359465524244574523882911010080435140363711903017405924146776107926977705021959591470615894064881239817483558493607428112081090089773550404761269375363064900511368221203038155680364309186216690894332590836529141647787913355668086307198621975075917671252773547824607251431603260773552721721623110561065798959754244742107739699647970780936557829919823671636236711171251193405503505479474300292646709548756330500689519806378510378817930665271109631715343156682483694481758987678400613825993167968649879996708730459313112559149358894359770870666878421151067471840095968379432266983727515437965635657448800286759670943180137640246070971629645988686839395049092818232062988822162266845294063192523808971411320910325270934162160271497420590532875766031651017378116744848469910256444130205018327649600728132104111321261468875325428424095060032407652639106977117680372380702453416744262655865919791329863839021004204488373142910157208243151012925220871213509175700314428147601207802626401931575299058819420113642233360386429053166912729732535207813147413840644534978468664644002415464035565900285777228195547351935781146418552066376918383495507244145089696483040099528496905433891337192017717528424354875367321362981707332282867025522791399339556918704709043115276735333153490746139009626226038381820390164066846574087515852896824084311954068406981332193427567268044969218771148343362479288002722020394758697410358079563907718597025536953938659062491955527813023888187861802712231225001243748725673189702519151910109563642106305422443985019972994180222814680779047840875032952256373713708743762545343932582981423280730114184317926552573643533869961847525364232641606311568325541543690452157567459720723423478971262126922626857550096045672015231481689183393831001106010902070155055368307911156504304812116747722679112861731098439375367911006963989994211307242895254594952125662195719609730377624933370556468690507688003659441345619794906239440905573304604015466460796719463471611324589986153582246044263255759778870210406060575657849754800185713239785633382350905352842614978185853828518916758864998815965273404193382028990347263041180503591374145627135502273856214222988415309835473885209218344786861727366828900870177684292820833018596180648125554248263673743291510820786919292947691388959211345214574309733049116631728745626367923117402566849369415173488103458418685983253925594677460259971398716978477288937520232086011875897093244444807016559053105371831783816598598848575872215807563726994176679956789609498742771812020984164568690153282774779642614489970632719986692396396371777456154265985145659542554562561190791060018606265741458785032758693662663490944611414313903950025432329308003268637121583989336247986466403642592931561347602477580481527153910653820545370472914795605123736838991118641397559985250131938342088731606160168857390399852215218897177520309796866200190487181317861624819736652673382093874057423288238589827183992276208802013211744761751139920181587888294512585774215786186954132147244021894770764929223024486647683866149948532123185815175644554169391890634873873363578024686535917310812957232342955823785399505812298971029171490620609981165969525934370531181638191088926065458576481579809165250705043512393316975739709552357415897126547080004254232551826013708798534699608588503976213067036996465140686190461711001429178272230487740962874677471535663702207584212464578375270222410569669169892381733834236301384068538444526925605219770142340994854923475556144838238996000421760326229778954677079522638886967581966844772635387192902415363878245868161981064127396090680095629922351235784564010638841447320169938644783590884263534619701701392392437002600523352011491853350031146473035892498124103239066492263664160982858587217318172607176458360696939778478660612433995801409929627386361330159136125047670031314551815269477719028298687740022852390339952044425923875667705175342222940616504597172273284265549321560156433057983662838649283203061627908717364685104422721672154667435321450612899741172890332793383602585192995943477411539376393416898938421379941512938089959087585977744978108881187555386772548597276612204702530503385286599919304105389067461321493927230196664099475360022400691795722054344705194378081821672773277918975772647556446519917324515024008587216494301265352589624297402927204467179454019615659035516172730859122587780936747489023963141707244577994853510365828061406833479911814185761195423743087308727513105317510480094671566150690960481742289981442235180412852390202130743997209118040437407134962547822796466228951619935427595023408534703387642915157596278301878373823189575154274103545310083126501001785284150003629879799568047117072069883857135274613805772583784386732376261756881572781324955579418152659268249452620638128497341696363347817056148635864106059804647523365836100064510493660219094884102120173359312588194387084728589495376474853769653188865756210254594680490902073603729304358457292084440912254889197382336999783535552946336847518857414280614656571744250301609027031903709603348871107006661020316447169307368054669992012921087763333839553321240783319040459543114282815611570387436476021947487880881752438609979569219919409922477066490451691432733768692317750669276334568798275575202703610488891722347385767079752196495817562904572330330117010980510463258874842299028168865296971813809998366491456300232084338828002766073767215498437707602048255538882156812040549001851101783047618532447019556009777619639643361768300034479516678207030129754447675760955232676991655544729508595295385673180503010214483820858770597503137750146569671954133898668904224131032072892938509225948819880616770031228486199365477556944251508446993281315322079253141647916937032152087846868652201361623162666666824990832621840095249398641070813725984256577067828578818205411300198671112200584308676719233059153345183105764427962096072651388988720292780662465503326629980752935116927249774928773705366152958492647369052366097366468814281346376872569017917290219275502637865572714768233436713485156321192418274908549307583347126547978109117749635385308879080658516355507605490080503674561503754465978851145909944289884974232640684306206047259373663459788404417453723580946694070889213550500138487390629682975906886323395551055900967262486009148739221394621905318503301991687403084072387930235612044213714594429249147359986281557297928005253622795708770615705416218559079481389881798259588388781438835792943019061728115212093241614278630318296486773244343480264853415073100914012840900183113853766937299498106826959602453526864028555961021953691230255604596347893623968685064606157239870789751798466702521780177190981370535752920093261628564559754751751755006956915531847308336477238408012067845745851934463103057405783284466049637012201375631979490628848833418683156903286411442424561803289230139242322392827430464478264612006698529859857052487849409523042303425804841086219656031876091725897495689431851031919472045316264820122917007405161393709235077951072381336362502621493267093485643992449781729677051409619269287222363977809286426727651030230910950958756274620191611829545129384387098095872753241907826933697801606072210497503314982249770757082118946881973941159806395992764353166127354417196108356545964810163094568459898767054786339064443299975408489198401947255410178499861813044743655243028347656933546155625108163653739587068723804163885185189069066163754461233161280218429228443508912009965191260146113949130355219439033884804619776882223776567804147776372743505858299819415323657525680302645954634235280062701918478164112149127152763924646359697422392666317973986434005594393521153463814838834375586431782138048609316855514125163269335382566825199882715957153643335340413699561076502206256108440361725770390487825965333582885418465828404378911957228957879010649098320890391072240906193963988975596503176349030896114019668200454609268113571681333304335083362644243037328773663307767005729056563574192056461370339093041250946626589769108047078315002340074235574950355032407095239500241212928626727272069539216334000113285125129621732971923533821215363797501114868382029047990911014988274470932638612461175426006298711276525408433594377599303089867379305557752600238093714284010814378870937075851560298368609618297550023699959338420843340194216440023339438252296942814853115971050544840503344221113302189291081755618274342972106042888156429345762169047954385919373791188352760980161081273775214697245810469722745624266116971353742814997022270472085008027295590935588255736921010478095927967080966631676924724938004284002026952563924450388216503172322060079960513722462148477186209744995275887050095742210394046172070491963553029375192553349527612942760536403963856034835348768560769749661756586644746296874970589378531089635613338016221727097447059477217608098226138441354290420659996915326664869389174981794073878662708975580973595299158404628771039106832210520972326182645773096946907279891576295593035451562871370180823121320232868505984058063576933835581755152548974745926283815434158340393785978204394097032537472345695060915337570810206592908538692745531041333368208770466274594194670126315759036614879772875613026604074684286822509742384007325113730143004693478978902432103485742304431539520636656926898586268416115087404060196799920281797051591737970173170829992702855814924001220007601833479966205374575397221860721537387471795365164646805060828095292080002776737759372182577941240569927447090848541369453590683183976042908561607184173948316583263197931543296223336052341320342327072207530953165526463645033355522432602338326854513779258470562652110366014877126666313094870456631341121540866639825315512657818644944661386673307430021225710867749009438002761092112223944565352534863605988361590205021218085446505694146931113666442134213674768029374835412105626343144368369118873873579254567074102891534098004051385635930222253707346014442025812705742973455618487138935142504849233160762412688854679144719245531412251631781645866308451027650958322406272390940072125936587162193572738735479221989947916128476875718975544473358673989184236755946035157036658628938253261192309692370078620884318448702164154162625755102093953430918482290764145198044875021647383543504149363721532870517278921563092370537518796256766191642258264736312247492525353051546595445852686023951351077936834643405033750804348131859830233527389461199048761730491085340229339486463386201583310469813081544347131870726268426831823570011044133441509461231572985082517923007181434650838300658216079780736895415982398434400471605609015589029138015555253310524987391050206016165811930168414634435828736151112709600340471258012690592365709798211984322023488082058117930284353409459672945976004745944994251276807787440600337356793601989908469486282667804195776639953401416152779851761076596452552612417293407351306344815310396933434428191221850341615863050375172651819207432852287509637346684740250005617458609347009061868599532841301306696793107699908673716227003542573622113310085770884901433668216598017418796681746261679658503567475663198074942173544128104180571039575138034923703923147361226136985092337948053735033754660522221386620153693546035424591032729238317303181447244379059147390315650768960787382796196998486524600127980099264522901533894053463432959586601483241370418610685638633395000986990460646345576016370391096352278887961588791150474200269668312150153199213290748811254918384267324006959512063231597893507500073750041933767111654836568515053118955716048040470862478317480660794144408874967343788892230803084102363417352244401785872798488619497896266061662070449131487099558712016290274099313502305697649728349278075523582002406017935232680039880957757877290454641637728815663678644040266710209048695565302312608290080891282937990416030099562345075755488215177424967837894723846327177751690371798188164487996173913382136275546471976645415922377982997990809735595217873836548697767460334106967431884586663738641907483913527424636817792569066906176318709685100229338166642405389861912933056276324972955970903246971787428663234741100410932993240133012899606256144667475966792951216730818066410535723125811660016601004353199768131122702771521614444794522845528402132477463667204632145522844051242336201448051917545028141470797487354780116351026261351533329389162242117163248989786026304912324047558544778354672394924928442657488662179349824132183484820246539063317674754548684461917792051404994880808308030163933318121740420687672853315854607759175370861454202289474538594254755220009233006460620010144575699490074807317412263025718314235725439345869824450504969224696394761131617594409536728699828674596649707263955649666805512176283148775739540347288757289279941127526828154845989821886540776354728049112799776492088339814943112102003569104064947333803918877799625849755975193770682628929523660159982630501976119036263661705994215060083453060847413685369055024873387926727714370106850376910472259232274801829446323070954330750788835187897511861161447559353439146564784249405687528321991026641039580048296514339490872383082150367978310479999533816008238360808998952976295721155621109264197912612473474905990539879161294756167936497558738353522109690293256886347304937198527204415214687457236608853149508028945825769902302093645622712742811045753564807528253765515867257984497993046632732857032433630601234648657433998008332352637305525379995180312851653836169009702866118911341208809955360652478040945986590286449196777598628930265916184306577574583456318092614183504965169180356760366926333768628439518276434048874587088313078420377834257532426721178782301465532424316816081651027639465266413646581483473913407037119734676993025020196071524609741200789522758581182442753150734000213477455873254366202741755885335806631583606336056596636316464399727860625739755735611776779678432875595047294122349049753294339390428343109986298130573488550925982193643906562329573410510806968819617779818906001977585569628261635635311896943729028488199823324803058124023565082739628906396056247649564040555577192385618928554622003900025628605889197760459594612248419550482391896170519299340497269603146871165144161154868898354491991933133766491532762213121115259428536956582744938687607249624683722475761043596028825595277523752832781381302717595420622347267077065982825604479151055381918965529099957024026813693190660341175793996067913995621884955374793751476519707786066660284251104873274803876139751628232863410427260769280913664832836494684304539704718065701776966702576881045417058559610859528871326926596535690618384052059527781868827116007256214050425689681631740179400879810335344729076395252678973272928148685367120197475968289262178356005543316917792413678487205154583064362332219828975625245127896702404036121085358325954642313267913971939343572609833375717952074142288235644533862078511034262715215799985856979556152679759177032313122616872301674009675407758083069409730089989826314765402940595898823926881433290071256050898073103191391181341203248135199750405952002407342448758597676114059872932507341932240140244348136224210387843271824002880223665712935851679140024492138560811942002272369657689704403917762582885736346276600587007526642202811849017292601927682530164323620454578446167155049895941836448085541114756368388920569081005545834056896917572911418504070964487895984328397840564736054755337969347617286262217347000327415479042098031163388080108871587139735985220773703942433412178613408326093007757003309690324550627840255961387192299875777250062753757129044676360571691620921015332455793355582253844382123195135403854933673192165181796505439295029893345839214170798090835916490757372367727758486681536470440557845772955155414782062290639746009240304222344266873024146044344546068084247317720500992535614755973193886497781742832230607216228961081277987665329437208872737172976517243604831198864032551564461898582510017730583037530382029472820888422497046096252086135562206757682517534402958864789187120335604659736121254994364243135198680999575399750162321106811608363720083218084530216701646874045216490841130031511380634335112472005087557081541526870577326244889897061570475467868400223848280101652058176105636972619418460153056101734878470701006579839053137400941510191853379873058819213768300740046528349154866687480008601263673580633786292626862724149567682588159024312035772701086419647676064462600459285101500954351042593215123202418175640535664855788232534337614620848134641236682807892366786213508717089516251634962545769205280148430561219584282479805408851304959755543270101600960108102142381109804834084993499377480259623702166395667495879346770380700588697631591562838509935825523616243028264697209491167415063668428221175199980206930454593167188344218140595811761354101446086804270101177512744397292927196449157040023437161347358323060492034743628063050998208343253122086239085561417238055841905633418339963587500008019189598103472489816782411664224505051874494679907763962728801045176486750974472756467598392589056582862509571367624316035754581436896824037254285460568383330527369969456518108871238625549879017888889912062780415878517417705437424256507989276876887316593603070753686338176688427790624816968409507027101852527205951896167019701715957353904761687863401749684360444554180045370774336581406690646999760497945129633107118809905675104414619783567641870070485906241060452374103984156505196677422442940887834645672843398891431157169721835855876823864031395947480972875613328984745822603344751388376555147080088648039875664006361898975932620341141431466316676471035623718900578793447676854988446565871258550015193469948420197804744939751800530095745014802397111923185907676300765486478811911578083261776694743607244678100337994908774514327665180480631725091133624212071209501807229387925309652542681357405171612994510822231060621333594470582082163497773944550607249533608560293659337547014712361616107218986596575368650701446117171098109175383557271068717811736758275363375876674239539019082679134384129140754747193712369968924938138684251501623049715203420797499978210084433898199656181146758946583100158388658102755946501934227077655385356477062747903106607401290257197008073622557873629574541750732080385367543626812688718006347378373722416056720715904475765953357790491366322443658236427443927604653294366338293777389500144249647227132752040300051240303384523533567488425725573725102819696875364039755905638020230683762641679015894568088076840640702586492801426426033289087658241998096213278739985264519684945364844536523744574487356410604780900354842679672428158009859247775897921661263222516932528049072248878807258179764599404302811838339623217985227341747626982209509587209825039252011465989850525957483438541152229771900720396431398293795634512478284500508003190349033385387967681635146172904129318063927604613737728555502973734020260995154901654256753874487901372046807207996307345979816791234795001934197312541673396922634740349641776415832736556934666107908690391952944250081661860524446402288011371826311002971858224338859669462431512384842040796820964516032229487586581976743832196163919360604999089855675638058349374500879786302606067476048599945193049339066050041912359167203918513522665674536516322480177980264196065169212086886458375026278781559883561422180269497572204193771926347782886379264152299414924789966900163654313153876355618987161483188534405304960282801333183360303896598523292644207068217748663048728798207346194489726870425115345573354394010662655999470209833869261130832455950702844691934986174616034367867485007245632565720219624305682331986875070764533771484542292862969415468126945284558212191886773355252023194834268262030261521502291061257796903818779219332965098227976442365792308039877209639613984668567456154493114549741141303731465923739802418214747089654323826955101019759569033138192690201768096614792982870266631082544545593959069973294076969807549942176302570589102714003667412333531963247298590471465020850730236906381104571837791611703206426897148623458062060795851928784264021623143689479741196381098225957560894526312525949975483750030335675574188979561565637265649104359220510466131216929234419578655451949496614946352315510149556400409747003948069924401435674369567563539987934546292741717433195020937572796335749827509760257221596548158492439927404229492609147109342209767833314337504118930275802440387370540214381635834764549837244881894931579426387929911652935408809900584380190869217851457789642879530785896764690357427204176449534653362074097391100257780683700169459972081032685111752736473105195274284733476075815893644634602412290685944666071305713082190608881210416236808409960287972668131025391485564269436532397686333845027431023116644648601561853708611267944014068625787918945274621931766419259169085262231883852907874488775344335231186467541532221216538902116945758317623148596829264770499887829373980653708084870568833821083022846054763493399952696216730071229037980629420499619446407133843342089853044326190510801480681745479184883116054914081019933290344113671666341123192018613671271166732733699174864732051812736703722852215855751037809112881539257194788597618557097661242920476628568247111767439838180627071177266567173342910442179846540062511480298023703836694449129092865032688928131549009540488575873007175879645211515888801382216460428400163294643134803711613620723673038407048257193220054827308563559794957419727726482941907884538841705719193316304341632780327078768397007057313413252704253853558639167063642432622443982457746482069624795754695152170261326231444088823221001683095618014190464172377523224689833280561792903428437116005145845241739680106832010747037099081079497290518914965465092419789030520842781248801457563384607589913847382464974928658272941529058114884267120170543393290755677328975860795218490850344623645244909340644844091794699986043407363631033887206231820057148728027184466660505874593343852296956600207709158844785185713476721099677208716859056162083814040531382031699218943918880301175163044446890321849197781251829314022260085444531995550741058679323819891893103621688917711902816574983903317250711522692001027727761129963940424923318088491335484494674592801712489755035000983783412535405303209054973754515090596569081822321013422035792369286562865330539180388136105044008944720535657096128986059801044747380623824146240102106136744472908933555522465495622156413056090823105401157406362166170826464281967363603863898577730471358701318180805160353060139749942084494206249407475455447133532628363904163548945374019689092091904275052903175599710675633915372552210416576105157749764396103408300713347380145682936679962044566795511070727636055867914671527349660323455669358778778866888039189767795684478474559380172846815594401509504354038141826341378207856797462360039074650429396041513201059907557687196363870501499727097669369098460050801442086661925039501734151919204216271344324240990417856686834950378995880178407126243456555924855643791632864980167261315640008291225321878542629649674749616312675481214192109228421909370510330404572535036453324605703284341163381320732779669357789945537668837385297563429448234793231068906270942221006282060423629052326792764783025479409249042542875350098248480530921825882775653676415272897253438417332473957285913877747301284082636007246720472376636223621755026738260713761665740738259515410626553270131556523717093702091325105054276505940107470899986590703874701153042999695544208540906108922971548785178199112770831526811164967373073859948464227635559967137587182802646724282043472643051974986754894832047610903423309737612205849747885061706973115038543148075199404110976739098022222558367135327428526887542833055893963709353359666499769167701497088502872166104587402271629252170712414181131883959072638118047468410534296960766561782914115473361461694238297107402314809637888900776164350346400591765934700502635671406807514826506278726595534308595598282653224706432947618903113990119009762022889690727327854962602617621271757812422439525213823881430086274835295117604367915931011365673710503224833706712200961751648373269170793116561392772348911405976854378473344823630017699743707128973055635637232278381384869344652132273681233212961400839130123095337746994538652462509112285869187802850107467574391832573501783844486897398488242953867891575196413702942798180861994918040382097363821520371505478288767694692228303795343480501001324887741810057527905970472097525672813843201775428263538972895791308600915603517193357152708810409653279004820734671533159297099616887863076422124769258324034960351604597445146841219158327813242114903869920563263573569225614874387830471689191772653337755319806389118429903122074697555711610290075956632680300276568957955068214035849460501943333894915764111403206391958543466690162732042835181420463124677872767835730904435571338106409052261118056979715876220579747124759749945361718479993630915554500752514404603510912731475084998329685796903197794413827177165956383229094328505604798661702736758460355416907286325223208322032234458176603765146036713023319362858071719861246795662378130897671113479856708449666846084717627949534884333941092645568199773550334708511052076069239348125942573753187324468493627829598026870579077505221000981378406546423934987862205912843079065170776435732664245294536450917588406971152798760466285537425574486899247377982883724103975525758497501817794779920825414046420709255687459349033359270745266793667931103852938022587314943894175375115046942566277331761519271451309516332488139445962097657271169389182346685484721095681673181200081656766261149028050862605297933773427856759095589507720329262086165414513662651173803285373027747610377764236632208043710586159285308789209182256307461077785600887718938975746754165369283091589856575333772111179368179174510671142913894842454001159502790043238475544623409195229945777168421066563041974010963271364843966497167109739231777844211906040285588398043734032623317881495291773429897181804191505215912531427929843856743804083149785059863761874924991264632644916704291047126368417334255901734298714794786095735677439098674601633444992600527694453100977755066406014432745476157558463555124390293752117846716716864594231335414052950294123072895417495763857829180618792331414656202619150674749607894473583473487368698014999431171180187194324700535626743850350958251420085021563162519557733244696550568418834502781532105110763532821481944475957586838488296207444409278082604563856417550443207742129220706174110489493730674241793949108491498969708606840522353254262601959512956944655277908768551750369436829843228810600906117210271277343419927427527951053041070821949203851771533536487562303890973051857362535799505816782921400537873886875721365461264898576703043155268749741129993538030936803307688798489762935551462098220350771807349774284254087329903494663122071801729486397182504991827614904027190257357982298370901826408100306614710050870517327492604954139496963954043333274147015581701566953723322645767807941454567396328517168288986186044096079493309200833581875126113357948114133976834667564216658540926596887785243192453567450259432137645750252509467966248755536462302807492097549066521671334127712486693122902794961878590000164223721957000065782657914410942420832730143442152051944835505145939025046975512780230179948059303901879528399675825405187539908995354033073253743527232991809184433214416985168589945490746496384621299826721959127737121638657402274613915338027701751053815284848449795201703757454029492161869846877566530114273684745453834882035812168000547006691985341308094100728662176539394155610706579894657580814928725636758796883967963287957639209590555280481150157162687151260228612945436098283051814478614954049568970594600826999210462063573124079921095092632819200696484464016203085656840899548990363071622588553352440269146648027112866794764746477256779722915684738088197875030990061211708361985669581751709676084955284190002185760999236634778960548714830523361357124290306546245824916897683789477538043508079624805855160762414026484520783916927666193087261351492249758099947036991093272511885436535441031295305041346496610327913738742906450810633908840486025874144530944337112206367860207549639217491811025384048032816913066798553230848199838552523881599068950734479998698610118837776639606892108637673912455530567162007825898536749239381599751159725165947046287805020263399948216385872394795471249000530885825383929928085322933325543127854839768259506233812153312783005535773974298487693353389558007228310404098698097993603889476032353684176867108459515238313779602229518400181489622589743510990906378429548260230853104999783866173788451501108122658710788912504429465581379639765515113135553240282370446111912974047820138125753119774794224958241801685558026081273027802077487010078613308827844149968127944429196409333516410271077616084431711739352044027905873994379024276409970593654836292299204949221823887910153780433963924917812684508491402452912906092672279619771755525929407492076393550349296308346776072030421631440773118033971553011746233501544672009384296953173579724066791405474207411368635959662329997855313796113721935868812308545968614104644793908356765113641583508993973055751018524870478283223716643228725195422761639722131833884799004522384511073974840635875207824025709605755460388475605807060829250275058982093999361239038728028054418802708119838873118581587323162012508333923745045200083505508490872057998792176148442254075184606665865800184520850384711444435128974108119948205537573864455954079498050038305020783440878843790383624004054696741896065184410606205357206867313147562450915935747065231790114743201582176948488721271777315562941144929155475668011068150551722658914515914062366478657004526655251150303537654795575792338517105831110507296719787146044647408036555870735930951695647817780593788294778309500262308814314482548473368663732533941440369238233450468144113250397097125043915511510405969369814710270137573841299744839494918555133469792377198445531023283635026881386546679742985948093809704003238619621908021786907815133900876335686125590249900753910576339455040410686161139131362710546718084755161559877915416302659379133524824176880821739912298889890574123317343872520255597610899021704671512136898899684449027498516831932162249548854857336491342173617329628517909416770134595376978003425504896014183413789424039093654472650419884677063891375891862046308217717674219879755169529198019875076323490816069017574042020681102534017856883349398636935265344709484496951243738546553765044178139122666613604636002491810648495495457516679813113380507082752842467107205679478931445201908751107640908691329607871453037124056085323356512057833149282129469982839642592099067206873541945743873046805920025744361984100920405035400591986951284406183950027459725838844692781531171272971410856578514488291196545493921970595746179953924823652631506822215714252417117166833878477868216200332721825713905420622215410252625434276693771490235390143009016534404434679573790614327282421037746286368100020900328139708371114098743485443088759108846170894773540472244390194741614703122397831152501177725335245755382057334241898032969756707877187879346562305944165672680329697136802041818510882667598750952900601464478166052621479355338048803753244610850900274563373695987015808714350304285229824854052039817831342140111767844536002134825849884421198136352478502228790046029894025398716428656294990832077312385689355542320495169351079172036884910017954708589436377192004034900861750699589400046043300865506699784438674806750346125177022513882781038274712012399531807854120244650101680284151855121306021528781542368927547797095887462330716818282544674045222618386706611287826643128615946243916625408707920766068113644902957737602619379721493661563852391436516712866925750218559822684493141579635145933635377368565586682139394112924378890555629424451840618488829885298061491369857299712702128586574236982459734475126089218725324945688501600434098007137848969996477049661843514118013189209519723581769388314998697728192966306459248955790806346829241185124077193653965608176707959682169691945827191478729381356431292684283413782127751323944716444297925489580271266940372237094849216623764357618372532635600023363058190988331973051291641220328533327858091170378384983723811449623872673902388769375672509230033406634332492861457344463806941433004309919902207279444397230859149647105415848997121765925054756326845113391168114472016678903928396368442035318192504885500381118464684833312591744356057225925042843226136514869626180597125987846997876346406961554782103609273510322132029745442466478079775315739720389372723231950227901386614022464244453028567658174489647793502798239955984618576429141028074848627878813361110140709437515787311832695353931641255380332994739886060043886609691957494208065641590132270284053494187551311999927342804375567276181768795783842044256094033518516597246525370525320756892197240080324164050182087254140701614219038752487631847580019027467410723730026385283531808609747826077731325202795325287103131905551162870570173066927029646288919254015824890321824563330145429481873300921307982864179320268670896428766778735938592667090516504195689233163107168513239766922390913369932188612282965963126795008593672567058071718667273457251948421285501212317513694262296634852175910147440723422752968528473583211339100564407305133424230881709415385974432465150265290514263265253547585800835923483410764300422711692392504298486780471522571360326589279706062755079932039525356408693086161372954285427642281341290220026103241899803186469465960617959777192727024070626601260462339132252129889567787148790002723820674302339435743235959665825196107117283432677876433843996907866751688730818601124555401211573395529059715514920942922831301886890911567876154077223892102158650685613078043825573092031127363041580204795097241415232920004300161059221614407471757234848005841970964684366411312662419817730816755248600341999030169779124139607222391230138120444117180024251612157673204026964161068119060260847518649321160725365646828391858781598477741524100838471167482359199230505273923481112372848338596875598782582811861641575517567848254575668348049325709093769487021782940568497176346908889489595459292094867076416168207906878662131343248890298828082825833681186174092728144413588116305864525271510610110286329327907202572265315502383152264987181543828453691964699190791879223707371849140588494732707568298895306176429972827198296061063662875220889702703201654720043652469909062668232303275940765234721506480556221327279608924849352905483207210571703627749842026498374134410982864115671433899730799192350938540834763198002496374514044092682555153235192766654559397058509914755166091423239403177839170460090726025415331245970992143754963252147814203571551035212440937522485928665640552144548418509103923151217837791573953563648238588995223117290574161708392377826893874445001090154349268593483945024190614285168806278920186151155544395811283143087184007392305947744411526641152346663706639601245718969960492088859304672755387015742488034518652981985359313201533098930174094445607256551854196258775406116632957998989699863599446405269050496410581452262350533210566989272249829271673469756905703906144640123562560164126008974362325282846360842449629906851978977261891978685917394983088278930868341008711028905144235429913879019045850594348868372612919465326086933103698981204628118080687943518911416004600751027331840958179430131110273651101355888083428788957223615918618576421079277861130909054344431947733628475065510580440701469904396811320684835775208038632870303102138378127568758705454755541635492339987058848793425556547882040927409515831272560299449748995596914614606115836112383248519932844616023150966125304592059121822930924555542217507387695952132359227562610127569757463416302077455171303189820891946121281711613485146215677460657412589812521422912106238764883067333571493646966744901044693935131144270917182366252951423081723030079313766000806326628917216570373318789268447813851168263987170683169875178039401743135493461047153907844414010591317777581303785162739746181693904916892024350632405279941033127002245371583238326938326405126736069358274705078520402795161749499817934674003861602162907797456227539948460072221552506374817343132710077322864665235492484780232199647557404464944616059490335043271555683983985910306987649518440429294375853961988639435333475671391133624870356928986789593066676608426470842182057385678598394874732081454069850325995804498748567888069035549318914770739657567288326023454214270177469765832609642074281272934743549520233329144856983944120625644475198603111301510981645586277541025190900853565337341383786732929045475328583089047730364476249304125170399398050452971987890824432228280852189539374353995809451323075046554229454345311330032365884421995021757047510040629212053755136911838753834763916210812910953665305406765480826821499486595694500865270845684180760661936736924562588700382326235462691336878408517997822163469538988532559974206574092615952544282456596460948671382087857604864784282966425666496979139059670545117422653468073237090207149843875509849674843653975782331152182108389077285883971029098779953755130370972455878385976082477751614412025347627173273409298068822942434289844762726097036695135047056336941074381408322456411096448592796645870373302899754515157927890888581864679358648846666961399572117951035966058005213773887079611958631134185661720278258212571454062331323014931070582408040158233417138505255614253440777058548430511211027426105603870977247203602539245776293660874103934705437359286295582535772231632192986586195984803728401424252627528430046032913867919609047641294985503139712499934876267965269447578113868417968198969053817003525551768666758361765871891862407468779743939414717042052636467999706015892445875934903255368917298187664174454981533563312406853192036581761569019720869961903698328032923598103574039787563516918183597103429800670438056528077301105589029826271722716541170910455171678989594088563050899809098058571692825929573988048862740952424286430691249629886211320223283535525163174048342606303363511679509628454599212983935087294196949090077143690687380900968593321723473656582766709415304665090066308296943209710023052460780682151666289030243191721749150192909011366581836230784779252170308873024027144124231245171326173653277315221586027473417801327076388422896253951851643261656687669695489214271315025085436731403999768134887154592573492098691193039847588802896386447947677979465979469609653193954109166082360703158411774917132056248203406333855480990821200238740592038632404391096770419057690323502543765951867030136924076686043454902212817386595474783354579959872366591024062206987575295647781276200834543225023283682117295346225924626657642667791268893315193836113944960524085380656760043492924543802508859253814932501771247159769022118229258520280587542601137704481620948246131931230877094971304139287635265277073098402451085682242466700778034851075470642825960052692932637660299548131310837425388615712418990269455442547221560374437899121549691028136456121319376455809456565850094325178027156123342023559943396506354229116311053042845151218506198223718463684857075507051449808752149027646417651122632142060191985608282562972844308580118150174387497715033081670468255583894241665702971799273947332953957433256494538328951240489753117927262060143725047670155013296593121053828715758306758493774962136551765150141854588158705449245526940406723932016997022627825961162852647420463207660478525082323104051081369829196402424290727922181589708773829368095812656543968777425515020494069320642271937701520850350282419219776349145074435838387004531648697321619054065462866394369434614751093724806287544495122979331233054267799469836169828455225882298375956702013967804977819885976200228399317723692162568451252379899843047341903674539178413841508476686899143957271996610416125262028254938683569310956086029337219525614986561265144821713142589189567231957011354755866458238330862571814201017636513195276503177439682288845207003376431685504693440555782771296179053066229545634759422030428391853424358166269534338147429957339749874103665737524023057800175344732642423974174234696923887683438168834305392604436441772052656635064279914438369163293927641125169659276341763392067722563068786289950219139454842469814875189008102115191498651556855521073967756860366885790009495212170705395515013691889765149545602332360384366288434538195003569018460077792497319389617265393411572348685100079966006313573251525752572513922859457972554178221962935463289950762339342311385856442600340510275193091393420512000278339510147373598972235806595587087017636885575312871930724681873620635260519073747977604006281062195245517204716148557382592290341928121900986698700308395217258508389342819559464639886967995515467092288376426440729715117898077965434392144425883807538065020624084927820177630445365839957283251346414434718786690072356150508068538632885457670771517091027102823972322768747158485860729987102379474886864119711620546198968422393434546531174214266455187947775978216230872939667975749829554626215910566580516706858086830854208142053121401763563631470734185588579057106505790263539471789335284236032272553930163112627929035066834256066032767717886905544969586314924291895101046394989647913655613151003619532929212353501369102075829782229369265205325298089777442049428655182987742781059170121991043120735840829860646231622584743545077935019367817449408890873267793899880110011643070201951010633006807922996864946318066751149481708912579779327929295870955581974598635208900322297951904820355735430925530446815090719232191060347202361986545714921433296178610317713657393705073046478523775227594317853634844504267432881986765361310340125685682825253338999730796929304985969407773526862072274198114774750739238131582746664722461398739537645338876965997416848450971280968683385401009554598416502123768072497179069751680622999952347413950011772111586117678108699669139325662329011666913698399446155245047756609319509307296524814764569428001744036760352330484213063242713262528949700962006114674480352949286190874855406377546842107813431919220299710016442753206999636692986646773940383117856073095492891849857672146895182588022202252133654494584284105373737676969704829090028831217702195275369137087960261284261937893306204184528585333897352182664388267746502057402259747881744528630407577356254250661845596181053954512141153045425551907160443333878965286925376352898452131426964488680288744498517917207828706287472282019934878053043247652054644362122439892172041816840895133829174944124536742052864409345954945874457119493360781030300257759768838578493210561318439084551263026362632703276011504799770324846807586557819250601544230720137199967125654208139169568786461929233475874166053080435370410504753548229211965840082249232720033961639612136332283348637272229883622694205066138453103477605004580726446336661260407457186510987274546678727265356172835672432723537164941357960532593173906371486474786769564202535551746667153287168226641524275888422480421320148895505314771387986015712095520032060205630304396732407322773785465142511011958648219906848584976424248355964699999995023030674117927654713033898704161538304119066528240575431229293223745192336411187338487805764829247356736029678341782740356202214115442196678411382210945836307956253161413963131021163021654257381653069680781506691397206827241566611789619682347290409964638686151734586614554933507748018794515644310232512510031806188899628265247850638430137505288708262234052325709356603701453229946872960771420317665933594432113374377184282840156351719963886330039795571685924646640820948243319656474957726891995033478607005816027306397742050500561191087669557991814133335375045722839228190958782051164117661286251098322232053408860825775036710515050396920624007148348489875774190800218118572228319615217750647946059126567067677160372606257193002289399021724915720085972829849347035799046529398905532644975506600961630196584148482882234806754240036903046035203034891472329651515691735132127469809411524121469642941167760286227218428432150943982730577548259986769689833818826666287592991567361926279681631518409735537464669160987114618011260461913611011407604932199906118772799945023713458141970925949145016502522969355457147039870711460738958587861164102453022320031632052399318476849522895168838055745597445220407037843012255804005774321973206125529854815779690178156395696348569230604847279555498811389408088491758321550272033053562170447084876521837315930644634486327850594310506757354584620159998498450681344805485117961368798191776616814319463590463609612307738709056415551130662899474073740686116476634196847129389545797321139415450851682679331293295253692367716249311423152283317499430750807113841126092462585853116604435536165295767044235306937692495719119024070009487572038039691957521960348908653700729242287393460934558249909311250425282443253516941804079870702219093910143187313408499826298338872325278224044670223690213574232568046795257637617177883929453022822300876505310974514692772288194505106802905766568776257400810193687995130251209779435077968477878528153306838046536698413642601756927923312750015152368244228779983420261994641435078990216027741656022433565657951425541491406765691635306748157368704063930333207191871675666998460211443019573560928873797468052454899157243225586699187284896728764869831195903721085282218709882991384460140811731541880495759267488779942752876697561825750109244650733678140494985054577365389260832999817044166876505530619109901081920322397238689359096130399055691418565622029310051967980791255791256950741588057102502973414425713144050886749978594121724047843874633245777796843703348010110996857725314892329566169083291823949908774007705132842103819564530599707271561742655188847913042609709546988544522292235283597793855698365293584591413173800228605137255635838115834771767158358904011125103041356901141274027998225074886048065708869227975732999954569667591579798796419837816910341869220049363468504013832818205243347886404454564047667643676830307915603800020024359385860296549590107693891544336253776264348998453538213803130201203030914144517998670929720336989490525201389522439132758887872892000421580572190592576613882618413840699806115609989258513043071201754541170251527556357478776849534216298833493007383506178032808364588355079042285695661374041150095150747205248864069532598093199312897932486667167920120458992375352504598016277928657745990239679514198552488188415775411855114389579188526557349080262108322855309769844556069708134509710480513742242060899075265516727692172993021711065437715528881601398768005987118871957630844354470322428735464293023985517253622025644853187833841036586773032797701770017641023221683171685565836493241271433238657033447168172209895971503404988541283781274153036136300236697691308809716199532226286657645440025196566852914024721209342470155165455059913900007779932149737465258162342819201606259033650490525458744813953847036320571484622383217718228912981140997571650607900304287517513678123044955723939852367291894024809622095614923316713003270006424012461155285692764047284738956841672490172048791843051771981189769499967109432851883263735450042519520008412063823327134038599319969255729577984522599249863818919036877129323679991636945598500625423711837947998589325407689337942989185756729060390058425161464042983172461114026293694715797997648464540730530551061087502023853646058325594893316302484216359308770477330183502734775414805210212959564483635634716449216102323102765317297222329634443628225608017495557253734077443626641226242704929257677610230688677546105920494298297183812862672960837701326829750447311490185297693668432379579122665798414112799169930380885720459702449267600626341461896048475355068955243144740472722521471285789563567809067361560674680561733671841244863050560996731596193876294590978911553480182856979662484430114209564684439776079386903342960197888768963303784292099124609872832308615899783707511243191687248351216707978417810825134435671241514138033974637679885083913512508471642047684516235613994529770282257640415306820556630178944820908987679942410879124741765564183760066673129623308158818159333368557218352401832150964925917350387988671628487723196748624650396562709069935101381356985195689928875572581215277270165092160112086995759719594547322884075102851850751665824368205127598001551822419295372781469621096972999440097594474187266994249753255081655994033532002727802842354343048930237497258843318880305301542857960695061727701515513800129925763494128436770502552529013540787161754804433819835212001696293666829467735079662429367153448761913714022322977300082175041473260557816394615475587952992262885422227273436930340127360444736334372281186865701021354067632999148106854400254659913468786797957596111918921684698032620082231473700917564897143443057654912141913438983650219643403603782281124301037805341123672656361474930250276928323877390589984000463438081806735700996417753569910399385894219269835355580361730075005282027709670008668971616067630410513431551777447809220234339547695368521345784317095771540182310093731762886482279177441624344223553570324655777694546319882751043853737559641304635307743258192513273670213407176525818485227887945900251340804953084749703349439692966842030295672590863733348442183909057909692764068365614850647332988467947621950519440676055678637674786931356208835134924704148002916747104420691276210960066031159111468294529936056581984385272719491878357114243337963331315847880884485423935896478505388125884008897930737798857348487325077564773307431551350885539580258254905022933885302612048703708964157283185776458814619093937805647540461320769640943453359287404490959431172067852892509501525278803252249209999291354575393790916074431388637928060606673150654720857711526944736214847045308475669697299180587807853737058442073399749313445861402461346358482326676546020947218163631946397100424205502708786230193334957380304264734451769047820290242997518420340490747545551588811661916134857148107313201386342715923975680619302376089392003319737163777949245525826877778382457602629742389639125857929663734438013642814365154481202174209641932426246288914682257099532360068619351147793329993125313093550773421924584897944305789472157450662423410487427049607973261386078242984015960514821072026821868052332626623559651503959552358119143211677311423615328662148390299034842389862468077831004467408852327387281613346133689368353107669460087452932351509953887120249539285804673043848040392210461549112218669873247231993561239122657977775671014749538980678285531596344520602339554863047780551501222229194658265187335700421001950396728569703867477166257184127699451368376624946436118333042236269940787955878707384720725822065435098234327775401202696194860844663204345568702577351163401515809096945749523591950093651696403980954471708942128872675734280967590451110326581552897663553996190512699949942794715588824486671710845904769216070268886985309031231107270483777065274056222134707065501331269799169418497322034422035161682297851932836444109803284122048112800084294334927819868347991786693609283379269718148382384952001809351405622230633172340600056109233862190845024496064645960804530683473689979937099438931277737299876919999258898332098048985030771055228166346601053968620254620182561092846977174380017520904085299444552850264031418046694350112053181568783718174996636463085560605210126893973457275780172021015585240481280512720689891415591735507824257431340288203500161859333862576216203511421672586015493003572125959758089824624970835944492850782850511393879401626382177079182655905250736906259211874742475874099042917806267939517227850169359067413986461799404637082446914313639769471213851641739348271997682255170412417964995158804997824815998271871125369360474589883574247083100336843080279711180697982353862901689294372736854822672548641515802150354018096115991717590415519850209434188617518897672203516582570278524832816882974596665963426186606907619830575896795713896808427367533669520157004730038425781061621766574644072397907934764326671759179445859028051699623288869204913138108564844647853034388189363455262773625885265992312650961932255621863457004394713562603840829427370885214086349396978430749744687602968376128443327186809828999567905678743654333012474367318871338617573440094806597119551011179108342886459574306482535098958891351914737113413618224702834998117115061301936798008336863327554617217501603753501243124903452228999261398861111520569167438604998946509732659258506743524347434997366043956055734580391490685770668836101809641712352307721712680109044218508728147710093062466461853858199151681233000139823726305689661399905128551033953810101152202208227379650812251644874493500111646692223213041678263001780448863470928711511501354823522753577333942100366435208415528660223243107347103389444140182068810362104330614569974770359606526974127433151446931726179375351487379081212018797419670359263518045653895861253963154414637529560457945978810961474118290296455655942874232095502037313341788178716169220681113464379651147230980708633923596136359891079451008844000679235302487692330531250004748337925638145802602622769752831287309607063723297181169476264420435810696290409985652921400728901218825388260663266536948192291077020913999770447176999713637759467836765343803503198959451989148779189861473537369457538073001240884012434610101174812840678844312439807981093914710689334573581781423030580299230609420275650574751572394477867091749756725172030291201454107262215755550237419352320850807804975669851458286902717259114409262390554597741001333412135669873371942189718780518418092226917735517684477100422698646217640918222150227824789106844212794408345289205870387658568477578322250971661058083620504839055442931137973162155523676520332135606980664910329764517220874320778628332663757814698140286474514238158120585789398114573136552099517294169179003522397646604402035312891084090649717354496943063200164203615859738198958965517107392740378073789205460076714019849778401910893391102474721199657316299943017689936112077243620375084130922169980695629791706211429954589901629369939651062368992958378374891329202098320968426714816781959271637241861908862026854647474582509773968799682850671306506988321084507822604794065627396423240899105013077644752346379636927290563304156612587419830633532326571811348306676982919669256497456153225389560774905549344408642170171516450295168277504280567406279396783748635065389939738150976673009234296675058917805100990723182408939705263515287993038244398359960799780560269634755434568333586021019147749264662137108626999866375108329090694110483865817795943167372175285103500038378020164981729944859002576799425330170400367177837576128619811069871276547649233667010985800905484276422999740546235637012320031477113547669767735290316743936140864895362088163430021972204780919667067586305920170432473667212711830729651941628061220633685340607907404531895052130574827229926921365330521107087813609516205946619937893790256137070537376433623908455311548408020350119890855458512444832592226633581748384191407163634531646849489660782935580258447193821369318295312456736103114751063310538667993515494160103105421236877986427592274634391865693262177678871874165784453470232357986832446563892810294376764430506192523878616184715800488061799691703330788713994601095520031616419105614131307080998608833938612871590328607284214970354722196258102977412243357604212173407165688280677697750320371654160243734689244521582694158035231526467689022950276118553080238780942678663909413516112601533696149657574951043228406638474912896996311922246087427628136230763413075711414994462759341245982679076425035529944008751418668354797234934096430031965845819172731017555952626711861402660745106231831307486417723919013334443246691038451848103491436089832444340956540576219833465252444414324745954364178965744650698065449288922970955967137381250640204351418882427986700887107968284578577081673327060572443934839233238269744176828324551849447663438750484872503916317624340299161694021296865606621033460018533736115014081565015145801865812846112913750196041885906062339702283617895318520893171221689750898252569666799684921478333634696252855737602543090966060369120202395386251329158835330140842581559924286033206697504056112006160259680012275591855711979799953309822155799922865513449715972532899736996727124217974742298930202419724514615211574447521032066913636336086120563547497155806062624867168000619489601495195897599386398769781889411666569951037336246897282638576148376887167067028559099905397504656192632891223633787257222902670204519177899986950932614243091648324690090596894094519108475945535847332346382262297169996943174938628017263574027744062039763915039696050794745576471864175090598610791121384315570723180710780131233838630310574821589735208426755401161053854914988357840660252438384649353180272248581112426911563025290692690500162130072943286201063421806292330121561492684035344265184817140155025890173218730833769034568096158106497772509973922131428643855301605018937658706253213726522565029668527627509911826031830325968231712207292655689615255758939642440060435079459553313756144848228731605956763399828059899343766968085682409743948210037037511452594217391092795879752525104111535358535716072515584101130710344148161074146776061935404700960635300802176019280290668647831866571667900271123175025375487179003244144824407356331268011870030364854770777059696005529030638576169985754157045766031619543105541565222461846461409616714918527049757938010687883468106786035118889894350421159826078353252595714944356347902797199354780337293331811105054056671947074543785380595736849443584222303050549835690953169072595392890651715017241270543188724277797569252970207378723904237063530228563225425624376729419761550821249595510016141789063539502694771289082909910994643958461912092055650206000503128763429033399265150576767559448819618251016675127597912084079486773009135937312605157499699777846771013891262015836109917547285230940654047568204771234607030560670909997682223811310868518834414702001954436785235517241000693130813636958372072937582420459089139510145189616087257053505544946496418124136790833549879957372348560617151203058892507902480389926853768076074435766159180114883291434468581663486877050759994972197169037808187887486737594058209735320365697400371640976804888749330874687011096094039782444734463697836938659640700357682138069312175855484448281597511688134144198962878419919882941776972248820408880067155913627820931343637255796150712226543071445781943383469197419093519212981941247630854231350372063445451465882876668601179903685733244433204977222388101843669565389986161557834209159175276995939230120770551094187098041786607140122837032202606417800450930655286240044878219949832050677428577353537212975411147771386462896609580536798383779348694485422908240733990829488650249508935837435266872492381889125934257835355639666977551259542834000389594233303304959348963967559804083455548317032123396744527772926052494394873323373609349961487716842166779677940354591559290803174010962721184561552550646465449939216496530912582120080890399560449997798845000678071599347868824580559864124918848655881399744310739078369261196507075631652867032568124057797913802445583527861706368190095700390643094069107653171835382179723823109419941878662029468957608798302524515139209275253164234014627809777564853234103389023907412646441017006324979477574210747279496586670897093036232752255409502242351353602841085909926025605763633498497834475179222183946740823083862788176243176844138445036881313832709855418723450977428795035251758836206942412333145543234586184700098618559261121332299469181105822163889365859774189069066606430986522922580032456536047161755355183842677281621150565620283274399465585433859558352961846887700561709700962205494384123418951946003474835797693994847029445720599915018454495048595435625030743212595043636892737189027839344225070899984244156012065134224676451086991267898799380907431938234393300663648801215505853664852066982108112563053846685873055219577360472512969581253732095190620894222862786436130147432791242954141177988894714297400662434279119306034322421056460359042594364491081389735887497081855639283064185538003535056185418678095114178331686313030241356884960986266092136762517373107507313845601536290128975281018069285957282042235133755818105382051320351236294728992314286629590023496060630223710546817490814311454303264546372142187378344509006761759293743026651110496486258857755660325770345740240079164745897560221882939922752491350928217218991453402138321777065448060314474367535509555425786290460507929177202935922616337291071940478781108406111988006156334124921909118071321559025215891352321277106206172546234106568561379133025426842458434737733620545407447713893165911711607186073824788715266609709598738974870858151946327842951049818999021831379938243500946908921902547763822925376971963432193009681792835988047431173698178672866296397703219375003961747110151790780925869192746142868734971981033746015902702410486320730854671625147587149203594800182408232125553121800717563272485631012767089950142405161131631346278777902969551859360991278006505787462376662431419825727866076104096978123597477777606039912157960574400063569094218660173034912574197867123253427920856302937966879153657459640802133749575257913432671969846087071294535341158375985383585738473878637122770119645305033778229324793032751924792046308804492909306190345505189225918290577752356540926876871704424819841355313924852509270975762074092723315085556482025613240861949952478906227676994345464400896385315993256754552805573562836000940004517366985007687590958883623363386854996228188002706138246733747471690635158693585379119623518888190809639334141757384061683847126706130233252135710529354715813357681531040071825551394059969901544050595674843501374054590717300613790188684116930061410005660585396734055296849328583369210002189178358838548775055541034545570498236862334478129650584612894290053195722109191808950377091489116363673285383507637626234455074076941750994855069749862793591558012119995196298594233926062595182610379639479167170781002991385088693878256040888431459464805551905763661209611202478086063204097956559335934235257735852061014950683354922650126882045226762968322084803765211353029144574740940841625467304060596379166062693966431356903905770097141636525730472252368697914615542855469304432326266703413746754706393477000312957985538623516541430056328891063792845921348681005352362255654206049627295139135156815717123764930897183831805994605227280430183022685181774590071900624141564360547531566057822559841119995148555245359089851443229974668397695560331447637805015868140532492341387316506616388132766778458340009948137452453155892653267818534500182469972450633256279741831410903006305434413097802112786735543564439276202209704932636776811337756973837580933299314447675419839429714728279734195838052578164649036550457211879503423050895230018147763522595547948130042097648289800969998338568257874418815138051217451113837039403601475486732815473357295039332079633743043348458376926423603939756204480158508684823091141051122952892076477471302514319176415541182604163166237113179631718588065965767618416318871579363386674575382759659601740639230616305411970011855730570519469804361270588734848616982251679863184906752411085364619072084178650569985087879830171710609391633894605936821117768257574002440612518586347903463413351165029763934394441080418097815352701860030325327126414894835108572183602500531363002064120554788774252288238313621867396149536548499626579322372354987072210382313916909048595204441630177566816090619288374687650191279296462091820701046458670304682970177110953822150952851462723831307222635430722634901323985031774620971407288666783383082458087298661826043495726798164849603960955662132284473930074720676149980696116168130939638849831660071383430600293212665102447643236944121438706275518076679712403945349248967149676404629436117610764161549406834609042762408121514543977670225631440976961547479820565544529444282018459837785290405038379850451231853131810022529037001612188723453165266122862667618588960530889274000367742607166093701453389199035950512794359711661140924315920355080976840997890724358050091876503030705839281209327329746912094435409205713231731375608651866446527663258678549918172343116892981953825912018717078835588949374957239803922084012497643218993127921641005632179744719573469180058651984815638763134852615975746840243984854220015573305772883312072749821808158161236991609789053916537738603376123615179111984306618047716656100563029119139487461277846556223673851155280510284864990565265442228536739302478932680110194016606210756328463216052134763470298683608106203963844979451949832045047834384478082144726297785098068901935675789035916624567269792997406083664241251226983928220294966266269031681551555798129624389567162679249715824886466117190483265852997119184787269860256021722579673728455127373907474057335512786153003366995606663325380871978369464376368213771299768214321844916283812225910472250639547011483981720265709274577504887111055013143902399087986066171777974693726879738766323487121060392889839892095765506995111456565030169096784834908545831105392652544311067170102218403330403634181681935957929008881525654330897711184557755327929666313739469978133734614765177774063456441530447402345915995465414919178031301069797268449154951351215933744580134964680868622611325838859190170332674070500950180018616774904877929372217376607782107433577237566983130158206017333390218823619241924594767254374734660014454064265045593772000292811482252113166274490617217150483170791581028278724254565792133328495028232255020096787582535084325322332278446904038221388155648134835306286979629561250703375536750576560190848326141727905364168680030125480165358736864119556394243539152930807126994262503062905060017810827153077149621736589050203429480816214157538073098515321771685700413533132088036456388653927127864677541882228680468955902940486340013603020684491803887867617464878849322390071907155343929543020494126237307767900627117081849065172864280168516951617767847449041905451433750633763972551696638260338741827255130368377852820974897748351329182378218381328397152492205682054068706219007013731217316948194985714787580490465288582528513152086638397262154394211983046581042064105619659513579332475141650864053982364433972382834508118203280284858392585501519424831813908568489724044230353712954552570441531683408420110233210782516849553361440275924337931743937086654718030213628210334254603967775497340983475370442700211870165631047026071460679992085583573328293108247643147405260158629962814498507611075189538054554319811625555674308234556724071183553918358615622328279490723818375713086115682021455260316361871729467463490143914426737685473372252006479391491230642697831015190921297483411817296057000993519394047459916799421454005758965177146017445321218735932781931743267556513100799933872784112764535925406688267143101180187402891315259282510895210584614138933525885596085255760391543677289434282112410905771640209153083470390565312298380676791127564838158884915399417930168084294361705004199999438605206440921918037195463155855922661114771571491445625459035526430081493223059202716800191184179628919575931731132348854805717952488121985280700243249159976049905384831887477120384561228770872597543652827374388846540170644668855774772426804461014206822810520326086745750544836877580710810774461193379028413767747893438061539082089297853992332689299818371407869357764203271509146080211024699713492930230448537724121337785423762151341767835578715064023671470788414650603902626934820748622451193093186859238801861310126418078392370346382164124527157848596574626189249338390118340304535321132071816440599460007836367784946365828151347302806839321793665226721096154496109095843570075759694896451462251149817797366752928550107455216260972488183458827795292063827165837670844801657342867209722889787276995061454099178147759937416385444843896398122853748388688505794270311655963908262135085973048573513045556295129586698431490964103098835598208461671653986254270853187570194704877236823216652611677823076168169582186437741296711053532527166331680809308185834095201572590934556093286292660655127606513027336717100592501992416299821977019285154411527258369109760324484431427641484408823960627036314801627525850825062790358337088814151533760268209518354733459297385051716592347169188343787371224093467324892335271257575097023912897614756700892802774002899090503147159035491520204564595062271895556806243655639630622168147151873649221665184945016183712563054381113469380668772481174541366164917361980745398331146433344247123445506132494801842763473927559411447304009750817651042437706536484076528527280006816634226747655355569960358425265392300398678215815925449597693926408315042651520045541319573582865268197598866675840579989219012354042136159550912614720839454094963380480819976410671335269613570725128301729500108501262312607766227325420390664514835597238749638006540239620661294031485140684200370606185362044141138998402390936497892650439803043445585630183037413697774699861196178989380909626456014461435118510290435802843423445854503010518867417785585004380124787577209413383267732123372709556363983950404222608501778301252829333276342623142850186576947882978514533161801552801675527913225907152471400665689128399362360372342128292028288875187564275909377292890311089453053208497157592677968238535047788454954854367165354633182804748454184989387920855167881104008458319412658763775799580150671435264387873569574114844615245307921710292297640424740307915463443048237771280041722153607435219388127563707687650121670933385489460279481181232554245354833656056242618789819316899327457697665248453055038443408465163133381951355799780282655130956880303097463845842334142458520870257344786795295224944810295068675376328227402405810935478659428648868878689804352113729849736799188239945827225827705704329106069669312886971268114539966250160747556032222442236166574561808294549681658028309095670775864554403772212981453357380691351350395038371378573246368977266825440955542335204002313994033775007193430382016923256619821900695937023526932221753884611423295392093207629513322840326275512574682349384899726777580844803243126335766765977951166448521448765459856294926429443605533453098770383593548865984080872374413805802841888917001246424559404024244485419335028458139833562957278459603206140918169052420828266623494578513370088368582152569600884880079653866737396956564647105571088812225868840940837207527714728434589281630796970295361802471826351155857204424342221964947120877578150686220016693950006993885654343574767993488053781568932277787569140266909995710589870471749521179359239025495037080633375845988607465354678546996017117829916029016334504344979472396636035084877342203815960962428994206446610468948136020441431561753070831875995634539699714508858395777815917825693535851643796801608681816484867287388489529045700293807280658320177637789459075454568716297382816551131196978480891812795329420211364786100009091118310065998324325400135409647659360979357013126654071761203832043734116596603953417508222270374248111656057654371143204169613914304732614575399742363879468301214691731638765529720932445728107641624442732000297239649752875399801590302109281543689078466952546201499038842466516184930180735130534807389446869764055048444319173202552029334118419474266414433288243410215805019665384657850787023703220935206681630967187173162157349501189735832932630536009883752153054206437542883479994088763237010593006771846481955113843995238618433386545482629325809837577005335168191764353973682255964778121044062582829185236147692564221344220735316502540506267156185211970623338743991290158121589456817708103439192319870027236480951663464427235259346023994603258596668053197093939931720775733171139234447843518043403286297147409458120344893528893530996986105065691115199990842372507521823308103212662430165133543572686334445978484610568837546165701596716354264266978483891469189695903885849623090073515015502338080951247299471198010716354613095923397062683483005721729343561194382243348057231740633717150230773160245506373696093526012991467098045530597763844727781188889496950370192106542276391340663405097277971959852792575276452582212212138017517275095739522224804271807738272937553044924530720334355739673575868775099232055572886802055145353815375069359473995765293963555135677653914511447875827483387598688790174927249478169887394860906308948848439620583421718913098381821900620290577392310508601308698436256815274081513585869490206985342119714512898929582331932640369225739190593194884548180230963090473908722167239737807890993646976819000942150273281620409797594335193942335940146130662152636719178739162873800824035896090740752766580736202075769448236746863934086408591613938917381769159432854221311613309277655942856302168727655095964370485325997644809662812765703764326542511563371890320125723440363417668874275316245918145322766561172725301549050842407060270601016875398547835337842918187499992472561602117701444265564988715855928642214593486938698850226122407961098604859933700991451461517425003686584234063515453497570241684437630428870406816089019252545151432525694403252545987081244539315767237126178498812620854654666470887080089988771823081006996981929862989678956936385548744076858565531474366273184555513741746507712104744606632156212762128970898482416291313863325069508965189015656010258640939668486582603372199721886624530904666353382944773267107109743088964572083998055192796581890219580845832404634143422582271436740424658020221745446329892577021303882921294879412857457629046306293893393398749961571670378897670722304551089809814902436484593009989190529152195861825076547509735196839245679122243494624681770923581240913337299526286293447812490851867151484167525232077784829539456213946050672618039481073529732266423181691949807338738312887304500744207023981278607153141874652035702849192582251158359894330392624712957502018905007789564716462169217735494267824522719503177774801356230060505127234437605542064822889720895499413956546222029097423132506345651622677481578064106738173818978547892231117733246081423875388516735577209527764768216374637777651688409297238710253747551285185794188873703917374695851938371588872852945553579581781651665519683646968174215221044490051833157177597259997525321187435932926117478648680407042214920190008260194885110151613117061195721328794743845839081129336362706330479152037153970277880274235227262347413116502722450021100073050783236265264673726180913672084538271543571669029561396337578561942491192593975308256009517746311049073077569084072376032250497224721573783785221153842795010367943123958499469819211696543260440174708135549107457470431408481010196945301204089567448885593706799359344155620713272442567640880083381021923321521486793610210953384483651589851092166902925878922355357505998538111623902381361272158044448934509311643501639480473166089383846089582913067836389753225939398338246301056947639646788127166338255777728805137716981840041096110026325883399508390042555472689631462858719857881198448447361258305125620187817911625790881761541027539546314240019850306805573146110938746338474546215733084503427576166768738618843885908085430126107028287522567764112827020713615738504415462833374550272902294369355587772574385182757770092561351393253947713605746836954655971440107219722991084476768282739723005492960715414019435706023460353213359432542698441123683398842303099797677508822561538070881313745822007373897708658195629832011214226072895095609834083522245472601773748369096811733425697528010258972088166329914295483150103828844720870694245056877461169141862832866273764308647279598045575293118990216398166596008954045997130832990215969506398988293683590570912152228676916718724083675055833031887831793583840530720853099274415356095029479882738431759656065064339809147627672751049162215085556700303445796505612219756055325516237321374042734645475016746632406775636180542386611535201579740656723479367826394555227607762783394551193827883635580576712845210872632237958154835013820337811276404593073688174459469070548390273625320864894761473173996940266727210245459246415855680725560899380004795997466074711228814642580504468789725850829660034987212929113959245682776223697742076503921570112963847865251005925542400892376035065399814325540239424760736892595929423937672681127261424919564753693514815698953059693700185793660701019901912880279119704877192548789801325145607709929604849581664395141581528512072927527120108380261324413662538437504797803308133808403929454152981229454385658910044788881873784387562400360447670237420654563483310297136717427634702117015787070102982067138659475959570914592179867897237791438935786922649882821461143463708974074255020673359903952615908408906116888055540106844487092434094028176480092606654034577321355150677561065806534776573837684894731386379856289407603140113834101172045706173687665774940690234658743516325856270542696961497646609531970542296343298963952814375667658038303562450213868045244820962735645249084904899565923068402830787688259210477574224094797157621599807699613599445586050852347012528043360188063538037164973235854260907865645442747535768877657351131850426002772333960484639646618182034914502157117299892193902212708696580852736323025484828213177741520719692893285366691606174056045286533484741985963567055135553992988882886675169835798981330944264231779627613062224397722291964503234902843171264100678909685815138188404907019244316059428190506123511920799949957833501188214233957519990550799043752086026724579009622098204611244815124190598925184819827497703945161481333514956471824964344930546045204100214534965425696722652980900149392994980970371240301615580483913013279143611476781867190129710784130484626950744337395346047924133869063198234928061907416825287688371895604295014542242713839770581621159431027014817528855877134195620270686257314950644961195922604798518816166822083984823051839618675897590054807582505853795456630899659612244025644118540336250004339485922129193922551997010242027908440397132773573399129874260540616356296684297481307455579644261044307683947600720016894031277101903938674042233780537615296095728557926834460303444465671595804182649208453065831076815881282427170654013387675370918988756963671327629370385182919314357762434407880905435615757994626287892892711236160451242789815948459047693573464284183711439585719471202362125667268874814098227011872204596412503588106366070978128341964310606462722586191417865614758909602776048640535488286273495582444040377445243477946979907452047443211989172026160711646637973804315780719152569718092224045262550682969343190844232981208397492843126642200592435732897046494223226051353294284858731906558011272140978971315552450816605943818599313731342256377283746308738658262196244368152197616171921914602732724860635663789897117975308921055225284349110753231732356649083150000937607370142093314748137662322226841305308405084329991449247518072636133781016737137396310955716461075084405242210559656647899213145269363351871067724909115032916105249377888442011246102373239387787244951953191262393102586808707672577525562221279351275045275673897997461726383143200771770189409323083942108835051404174507743738127395268418091065327923677740916986809192243045117653495274777799050330469700071888269531222863660920861620927361789177772642391891969084621012408914975502190323942796370726697039957524765256732292166471267878057809608097074791785941259693885626902524731074191890480233605975967551659039186395563400442348044016688478170079411502812673720815170555401720007192524218595874289655948118633386719008513338037436963094111977843900528390654248925515493673613814650023744616701804008433944583762393442797998493830577308516276270493727372186858312563610614038914070508431142146352580826814392234272109834565360550094041362255701842984357265304800942030607063700330922796965805158846061229718634371300770570327655604334748985433214041426214958956942057462502012618454258190339685477114438915163987947375086643745583949726997176350034500636290065682705737843925474453028238257297132841874197504931863717436211737557272052872156215064885699735726634394362191476361327590621342717288147325711153494689289643657992379029495922282159281151868482460751238202245530487782471500061978363438393305855271245462340166666942128577249523052299022715133496186701251327673347441485712018896017078836636096063919690657453013757587124645425057632533773573612394513611648992623174848131501727336245443864719875755496076919508540212122579281493844692836862507137655933050304707027609173930617442824384196837099099928940511452940058680248933836793942528563622524291608879074629691544935307163978948327298735573048567084831266743752896548143213220064972032041157229950312515654746246859999841196462958566032914254323742792988987755241670591136259066504172490031614773901017533371103524088516887826915810609835966950973406066275743235411837891590600654866668291511034388075722342025057953629778388045333321992087173319022862871990554150140234475305918089410314157444123603364641325424186345610722688848555340723590654232534000902802727274708902542658202033398030945177903575010066700866097447860615124564783853689824343792735166968989467398266637930895221319890578891000418615402408272372670766261965324763972862712020069432643481456716850318711451591258254366867192734703379205501598951206370684096496223489923071043761054575254817085499344496947398351837718441469955451455104617886768620541780251662483652606569285154486458645390250782557218192070051978073137326241663049508716951145992066013265107972368077923701187867093622666582756879345646238333502238321850385395609610691273993721497757645445835409776474156513990978390522725095420719283442570034100779048574007964218354179562613007607909875518444755114647597092105088845194270373346797777433073427811912745399881739668360365148043199499357502147956927077973592000508212720861404451678545551703921703295978482290239463788212871489891536201195744626640652840464558517188071849256578964834047679589499141623879259238566922955983298692851340701252091662789561463360010473471856429317650329913898236730146718229183469079339183167677381373076644116420507118728197144427153480873058544478434832246373765642167888172643616540627963428616224957772466423065947622892216393522934173389063567632022313736623736489296927331168244119706890349166117078919087218459417661573711053108294806698839163507395086701091298603860530428619632092203167868584992187873481970853007747417363381407334459332782346318928859986328244939460514976369153522662537017927058714252971365091010744689207357258233722811197197373990497895857312286506224580249626251213019398823246276113976235670784082286312901348740104137132843757955068313650730290655793532124221066040612547093494352901348285592487457895745184285319784677197888378187693258431406869897127445594552380224518488451062537795784964196595515050674573038091730377946896521852752428344336391287863280895846076979606739496478187339052675670392450322226742147786699803846168886529681106689806216958667283993466033070544778404618900624389063683316105154373041042293346183466638457606851933181734543492162094142756024022877731429285514249121569819693553736936919301718770582382507067501571053434673055719723398765843605793339644701162823116698757648504065806619329385914516811086660668533319075450234411429170919247562624027305211852440039532716749752264133274431148932498098190546235839873503758189681867637221984687526579648842843861803860830578077114686213128339689597282897669708107492927640342585203276425864061421131056866123600717937728961190604283625137171283693531218722847447540351041150293226267038463516746618122838431942860362251946626039663655416487880882675530217196331615217544591182105607736157023682544743114366069321057533063883991149279042129691701905110975047582005695091720022075020692524159728434810284880245371314562921923958600966640750988377985053182795781697382142236689792503201696605415581453598977479507184281685184975808360527816797095475499514396403232403549918244279822246125433852456568053349329384215327312734008629736830439422815545391127920914817076428966747965126637965709094330446179120954083206949214548735381426666658176290795661923940277175542658623972829148112938803457656309357539964019226025612834234952519578876914831862941364875801064847947690450767045250142760362252455029412383357256068405975226516418114080151435174532791837615912870331994668305681886690068418304666265621870046249398280894842638439015783506716284982712038003760839667439764926249551455752476342008149147668363765395291617254472302929265643141755551591568941808678831721811169834455451130516392012306015575493004126410509051388427709379799128506775640097631781709785748948911725512314713889297934292703961789353658175953215594784777563455883762566514750352191199994238239909447582509512162023573302080618620813592346896809518097603475177265069296059434991393120567397135217361963591702919859094771884126045476577285463941992929676971596665320223998408612619067286811749334124047784655795432849089975304727091883145860943464115750535413713169044001584286857724847608895883836526034710295580021847180417820202427246375921316781926240742107946937301207754390514103535015924373983918807893359646108082653865654026405824719722620355619383074809548822201805663769953312112617437301699845139285101031864957174185372920286664600145097079708248611724565015253761682443571110856257065804604465632574477341072086274325473233055077573177689190622379196029908948529564128594185229162182028467349903935655573329727485820066747196926617808416432552435493202008200613140638317635933448705793816232387888489672485630170563867953625410196192858111633160358243250472526440316131906054359939117521326734886388513342156145242595297189108555053045239186896426882995098458981994204666611156470961897367424552438569298708932768365576794622435169191953597806482654629009254178290293189381721350408020600368126257611974007007026450449461900110234041083957596059259362445703961099349466401898670225769256207806469259831285040125143183335758319123778833395516034943440137148907940871449116245276734925858458708570519186800201440140479660222336449817861178820902899374068556376051333009656137552974805446947593413014679697087762537253671091766309019650243982801409182060832294222068252527463655208646133104930657278119618608564574994726163036809379949124980760474341325322865851951635789263161245661987367494929885126685874645040661824768817846996677853248233331799349643573930046150021956974838400875061147794674167263279463729139792041464474071701188429272473998459351645593764542305877890528210683744993015976986051690873863231061279272255451077974851577442978990358060724289418360501265598044714525301676416111788971782956192928990034472863709069571361025518495954721152640124920141073675509141571105458743412509085333796971354951828071105543429675304996116869639825532244925532726372329204805390983764538128820141519513686832828790245583803618318689900011345808182898244718925072673885996600750881921214242187082762654227745217417450092957613957700679191781172204130528535031096697016324051760533426202108794849758970929175283160648971566322513256045068118298286741891886102458141702553894004570096864122419669005247113525874175914316416616837937549369393660804375316053736711186656700620854879985428682045013546356076287513692642688937828727584882152540226070494515911937508424895353895902882084498520619038879080764144223971879883046647033183166876071438489481055571723574609084370212589332010541426500026620937407816533401925226151222525160298954411855884535797064040614032241293268372017124207291462462878275159283410995351834003441845230526246697307500767359740848798488435764498283813001537160268448432889253173054372763403649662358958835875307542615640036036866845158156202593033497874205528037580527921446789502259214370110781378676514232076402370595002902812772225046713691714733044097921975253193002095206357601026114170800771264555596334893451949542904075025409297049963411511971640008703251638844135859587957652553048813065364467167849456449567564629675407182538935490925965463390413743355015954091289605849913009880163022374434112940944153991629584610259648134277768385939580068327540527215963536170184737578020689537645320921501432516688230044517934526573228614460893330518334355650300192356094546623115488645379544408283257050256102334673078948460383760366409368843402925230605247258498336262068104810088661859071222679757146893073316126763714130057458129723461398961903126610493250521159584089827460870249398544302583961157518369364080301615461079986652570075627019885104050546467939548311145957274373490955226481432649011705694005310862681250510070901824591496521557531638514761363560107030785794968464727426709424660094415711798959632139723603141150083332212042165466590171566617705124454086342805241305759020549532147673926655625380928969894033899345648523062694437025624610197353336934999319680558988529560100253879385794380878799736899204289728250126181656060079555057141820173063101983276891747877958264861004933678106179778232565486639553522652598344669822190365636489814359969629544343813553871076148138317810343569012663548948002441747924953178537355412130115327279299720429766837594729541591332597390937193345572213465697629493092039124929515151987381079966064691228154744909933134087953098424533861269974407401280775931986477450248706176169075990767373543010791972595489226817781759361219985428748311717380324197132669496826765517078497455754015812294020325712431089117076156233012039745751246501849530309818380657033170833990492181905731271550083338659790616421076484623801578666753135868738929748952662014004264095151204080826470767994685849999455232295107842947462210066167271308333854288383191092247391427422854387177207075925256073931629184157909538598232527689653727552689757433266604193126852086567787684414426061853560291904681439439852497551947657999413670604231644695299594235536488758557153367860482708193327332606504646006910543997613743042257894882309186512929081570255614040681088239570016771768253774679768401249677212883859828459163583139097354273847398424760469427177149704635792268572465949966134850684385511626299769803878540670091106067972803436217270711803647077898110708750257756151067193571193330476782366736756730175509966878547621080357278223120325514041964794011821590068265470381391618906150738665108728575613149539316306097152798839834199233855546908712409892370497713595988902171232141185048366697479250668046697295168062659278358917847399945033421417185039034792172399981095973270305524945893780263152036432356319641789038450757202600357859916399438270901257361009107685125002690454623930686813212129617393712591401493906959195104530188582157194678875506313831212149100759616949477616604597856864230862284790239183582414182239186860894321008787351469083809297149579902851104513478870615261518633583689196099931581693922219460080692413326254285272005465934011235104850040449304040915801837595226949838390014283631167189722395926177689099126162936342048863476098893583572694484562244879919456420599799562658219726014504061342233671697046997478880110157096347344110225213713824090258697268638135523382069165079929196917101123062373893080236379250883482040771955885613088650093993406615107748329048683483371736392713354918666948526590778005599172913632576859627042986996590046491269944875442721280934541155243923984944845972071460129279548196503713761983110495493647501108797585993958850450451948187941738293757431620056197993551295565333067021978705244086015244269471071041898596357478407100993782073521101372642445098547728232370116600393271755729346352578625865627453343204840773870060911181322969170862489686799041428748758830391926603448047579965879393579379972122729501011202974065225056058686806473000534995490474659380447114558233019823144587049525183082874879553598363945937126856400001820612402263632351190598139607392641993913242502224361353599175080629779542722500817970834215174238181244193105926277423379740236051840274932288121904443599172089748460465486275341666624985398888902074491375989187937446282533742554303800370747428082587801622029212535288155683264592032582487786592285447263222396244333805602986025561738627775748901741907039677858186690587893457686257606018580057017330310269135759906161888950417953592647705837485305330964281535585410761342134012744282287686096354398855183855752374281415128140252703678570239496060423595787673620824007230677223677280602107552555275099092456112621549542551836063538108039480377069603322165639059681632637617844027186220310423386085095294740451883711630503040447389441319169498656315284749695747895092702767962666279465811460135341865040039342208583070134951227811836386619575096568885599030239040976510855467545498415432299330947382143820228554465653210292882553571357205485454759913298379649147595603140048964751982765202934081132898305548224486502796557414265029608888978337774086741066927345183821082009399705326338256663367117035223574900745602641979609897930370309422153806887854822708875159873824366326550369861586107794791530536325633576733207147681298353749755725628638194706424177096804426662778997348322407757466702106456422699270431406170791916143532428203243050047794396161379282692914035803879583703408511673484296840607949444816174180350486201521385126188531308796054990515447857754733783438275422832299241711717047716320899569839401963281037660859897121751977649121304649745052090837834938682460199224486022436464274872376650291585315885886121972944514482694588635988003206556855386047503187894191037905457451348313568283459734320605032316229472868631264320557099556806769679247867714153898332482305959846394885394776716516989999904422998686939634849876210791238977431211622818230292363477505029651518163731028136087954150783560797918631931691698033783653004230619845524885440453304631662799156217563476480938324708179796453731335901737801060557110014556387518721555549012910465405057210742984047141608977258002880780008826273567732840607683969636771505618916371375881660961092322310080568464707259745834563994032418517870328164383844976808652017387242476247709660375146903970438200289802622359960218746353978084730012634533932276254386644541721304590798085219310157308975221559798343337178567414174314697742922480644569632342591422167209607294895202531255792335955308066210425452776455446205635161467659458181325207984828707638897926902375854510945751642837940108646414983387529886310523312204582746943715307676580110541243689453421816252685119085650188978239039586035565815232745972861505719521785735233193421252714468588274954488844873787157050396073759542966150163319370930128296544394154238873580043222552786392658932931939776865807452681646909990654437258973207453789823629577699246113322991127347890175534908728709518630135041412877552720573564327262770900071343446413947615138944109536127902154202573951183314176997502716588070474676353775907983467706886704180457889798417517427663814137308020833455370891984807422527810179028605624253390730973699740148942524808737586398562006929181184818229719270112034522116486230973357674080290466432311754599291914457857040021433674490953516282285440706136347031307398616601015734872441356737060232158238611861215713501414581939356385272836064246300208057288199819550217370404614033137008162042038619438969547320174996514265718373551509579756491610849047014180265237748998810186054514898835577680492229817317053459505751529898222692652543303353829203546405641728853282902201877203384877171516571360309920884978065186362053067390889170224917494244812184634450438792623984255621350535467125725503471972323686277303433474846383070111872192915774091567028472275669925567587108630585478498428642831092573323045825487661131862277180589294692054153106057054682084411793260670890401980306430608596577914476828989473170905169569812557465577281604189782807739515953634034450730699795941449623000280882052962228112800207895554708380477877414974099516088014017965592546994242890531395242551691756375929594638993465769407936525023609089479025297964362176347769618043710515886343346844447078449703236776020615002987799622928251830632334967344659479034520667186093682143009134965080525706882596754672572794672226990585231838564648041047817627851656309978345073354311677110491117507406828688319412427623203685091831870594682702445118775867753436980595584111926978464906709003240226122402024352731945247877013697863155174650061672803121425536065453336227668454748713132428935140364450540060535281386082316678267154236048108914559033136510397458575090108895573874959739759244296952065566563435937315240226233064968062351778452553549784451336528720805777204619529173289036142979670583986656342090893408322162389811772382951483749239344965855327315365871049158531362175375432427762251052714164221598135865961771377182152590666952531803323871473916731977856123043469837377299711568166873355713197169225356625050843144868171757620969893430982563926973549654558303474017029470242764557898402026557008922558135473874998421356667672664112228760721468419804125767126854912979924971946775919393505359872943973650360813495068313665882740317065422441340296756287326395956451033531437153423443088439715043141778799540717661587266463072251147173329385135485379384611223152677619018698257749878089546081517234336474210792485066794778914571411839265498772438421593443807083278637686773447067800693591742872466665555989110191985159067766127813563971207555745519514745582306261657870566536971156758404112489517374109625854229655866114407329168776922427404086230561332022098319204967093369962684705638793751167539016899302536649725355988059394543342389129546072476852449141887078574131730232116686500299082026071325419992457378241628225730863628591615251254069842234170262048445337038582398283780319798049401370373295962702083212408942947097144884556550718725350990875711743773666036722095002802675417876851629419478264878526353193903940645616452154414406078077094078563811209582792225443312556702838749437575160812870114132174842793956422723448220687167545319012757905111140310870318472808023935730310329844186718387256334585156924765127200937620031627788647505336378201134137620223354530676506750716954764113557373526630857453379054694729448433272742216463788694480498344319004913215413517314104387608037766439679850914665882062966906578253700244485668260463970436552937147766848672543330719517638542667284303474650991523644127366888089855768503353191744411156763308885239584394453389108190586528594375936280524235937225176937799939747075172273228384021349358784827033218131575188582860125142937445682490406055341894232413356216668077753198063238988395349088416718681791331084235439305960600572998359235122115772900665001594448743598285998776655666173562657974319146777310973555986107984151193835205852204306955148009327177995054327935812216977616729674929537775345501886766298453274211613660024111189044739141123226320999945179102644257323811227689929530226186766064299515526871807939932906665844579896447672618667326916611355158048994117337762830599987615828959965179354313746843336120953571717359431783382976501895150269159421217049441709267693483836047134167308107678825014208301514544937439358741860601767070164670338749586087399180784524626910484136895132669703036313214745866114421941332379161835050269671511140433025302834192304649187125729292158826408342130200474027446949827780910728220128475273958470933698667023859095786357454977720894801154220454454100826529887972929162648664056031260675754476953504755891713006805995202722214713073169107155114511052277855693291451745462787513271297679140912242375369053363313390307250883405731273906607415554177703088720921922655806687859005320554505601430394083007651577646200840473887052064757457235497179513363202922053715505828608872193833280939253413347555609407672223077469834692639825030136837636276194422278810345716341706016577924074102719989858737982302406891827459222233556402425191159897001318126609124541973345416133141785662767538940240166218673685818236832775905409939017162695382789162971721154973224443786520553023631200071771076258457325566431177358087104503912615628850066682366241799316393338896027409963163001943407259139195410541573917777077813880874744881353405623058778252792601989116828334681585274096880846495815380469086235660328150475251401080157788823687904333231902157856069033422223657472121049414100065782213908221797257815548393510215840837253861948223740655462584142790373343544757698128988091786316752088543361065638208534328662685421942935414138744442967888171992597586634039972071895443787188487129018040079143305670507258739891659937271008149608948335203517679879833080561841241790663779048370376863780541913697561345935415439574909770427664691406057547728333623077029468838218678106241442598909630619447807148591603569779392459971529840584459489881823063180055912823490319837413062629516367608614592379460994715895591258747790732020819363972966522762016714032326235477311333549455919126025022075146554060933126518712799751651634018308889899968972806045358605872741781657596865423474643402650658049149539353853068689145977970508925403367598206415650115936545354199706607484653647080672286106483548620016605242409843635777396045239929174282848640541825280550941513351278101702945137619469659449699152705224153303981194426592024334453529305172042327440980552469786484995887897890931230894706278121283236898932316679010573346913966270554710952676194226017185297229227955594474530293484184492686006006063569613670922236580712074506720139907291030949643850931318809723338552227410690354344231835124249735921912964226652519240831174123144794949372511400003759520049555402020207779373252512287907554799531324267807990621467448194149764497667370238466228150005530626490383975865205219548147155215758342456568257788111870892758053085758841785292042544697820837119803172206352203115824187449807978490191432463322935026116112030165525157436325011007259008066562213922858117671817940647017225529111599453843614776440175460855563315647980414379661378728511273261924338544212602165017825216435760991529183753022014310906397196114705172545725596236814918610531445666705166816586530316048484338996081898829994034997851887996063690203953543375984891378421353854049405069012640858572350992801051126832845035725652974673121919338350454409290089908971320028587232220939215947174998850083766102771488440793581364705706243729910981548060992827851838641543490933471292466662497876424652517421405997523003576910893570133651695549306315617491960109162194576503923590896832765102822752479741016426626357815789155643194368679202542771711132170022989458868174545512350495829386743084573564411350086858740852325776347671091250667184059919693550826455160996736365183694047449087188652666570339434762908980225614863149610013196070235229307131841176616578674194468355063461929655392380635674414338089962017545748905386597992842497534251300210242385581978609407220515141116161304343314483654691852931977310798378142633805454082795758122120540930606423868770132275490384742941578727333120273725799276040371976228617426422977792643136798713026389404021617536026575217938000512806489836845003743769586787786139841052992677007971965929981816901910969662842361977250312051801458882037685410396449481752984693134172596967674907940721481936380714788177178847130904162063084918895712632559369426351934595773218036551986462589420389009370231153204463589527053862675567380578146499689988535677150671286348046836522874669450787158358881347822087568535931957919412091057959170260709882928743708224066648350518271421580049245644176113148041398195412527767133142031615351658023757986771535744292874699389103406279678198751951907525374184371360830934963647241288913943899396396289685280885695864765109345031227888842500241051992950135180650906220362616945719351923882150445783517172434652944268392935511222530199083823812557353059912334312158897932337441204360825508787419401664882291128527620047356620693645922028206839102163407709671459934967059492847266444813598744010615335955801884745320740277247749495744180425681412035528839859487125719233452249552116499464254145282065447365611533120723166346219888819059581756819396261555523552051013693272401020597055496944315603287881457724134574124246520922684666138235802080922339166383680588767240825514825351134064188376401065911639378373555264155062294324687553152415068359230944749565321595145793281515597898781444470236803044933147402872189036813117929311064674164457013104149680562839536676331351252897722212163274400310552919005077899253959723879819077711142977055019803178409569827951070606075000812371457451145800669897404088525994306265429031292151718939550528495867163511583712306610779846973940602679616936267221215481639192301429587030938245139793396377281838276630238239824704287415480048505906932448540957641140774702440101599215622604592512104204036233757962110290800710165916737296272484308263590870400583352326179732478179937014214291592535592319893944329108694318531721223960049640689443456706710555920329501924537884336433583514286995051564362142212772160444092807181837606991165708287571178374954642472899321835477616152372407015184980204837002280857674553387401273100605975974903657245240497326035259868244194802636499056836519211755630741104441100260209231530481409465421593587200714772508680443471870117485989863928462987994782297103975792528436936647338073510000520342189341560325566188373480954208719551681954274542801154850100878848829718104122645719191331107556621074276652948991749027648052252267134652976797238377379900154803311894351438587371493097008492818333464764196794992513238625470505234993509882104854219763216689516441564922398417039981083683260123862571355271251419004186156225633124205656447290140762534084867425505066515012186183653431639947961069537132053789147188288589720959941616593435237540559078809610681774133689957778130897363945772910603098562307052826838077289131159353405928730469797875684125020709277555831657488700016415150411516702714633345749473857132700551669393182790510111512318881639872185708522574844638541859061587978556390422019733097616971207021607650002901564040348867740990101462787346817673296107679576610127914351053929676492981571600509448003870031134531786151863523291246698709029553126787936441207867731405542525715409310276341270474838088860443936744926646828287490574181603368993118126907923416884855179763232519257460081902886009396349647327258795959076986765235726236624946640048609579105211400509197203394680801195345174618854400980382601052257554768626062847601750547448314092906377614510166612255425483242311968405150526196391294106151527241844179149061931895986478756093466606498818866437395545818688449921723788897914900080124939556748422147038698571583391053288167178310833878951076716246524077092675728887419784352064525271834682965168224290493115997307917680461712432553013507096787499995579644954967189490146097609624404837850783626838254317744497210748634444962008346701027685683857248641726445760364560113654053793112997218179173040108921996215035157369598426315284888393646761170018204877346256502555286653106610480612518422684897098540389702089208188946546235113019452044914812300140095055489276682543684513227281825201698794465668336093018208249747530553367037890499260517119806544162056908620596498724280143343290832284846963497317270597701252835318009824147409678883592645502860771518119730306911794974383453810211229316205475821755435277036191281289805336783191869584388642874938042821614962782240361699445737420169945972437137037542463714817226002262006085247090164480662586545721169116605860018720272185937458700129051269512481902506196025985494565542168275383268179839348305472640130736437823992396652604804424991022896860666606978050078563445928422598987332507829067397297856490538062744474752216519169852888296296188176848948169807706012372185838241533432712257709176422108371217546181658904420724662840608188427466808413178538303335366708956187073433429199656144719141058803939858254619916855430798261029921215128902645170454271011825897969297407383414900595674972809252061984614030006845959940723265407053434078070174660331334902694322308433290785875785029333558414756978036786347468277036933327888392886778542918780637581920625738657416805473192700585400798919386945000577421380924962299923124690501676230827255130987166585509480669779267893285580429462086076559191646310643427759945674180144817455851261362494918688163852377241255433462233013331630481143833157234254799450244476609516037602301385600012447396031592785070379939526022768497376717323435944412579495725863113291776955081148105568429170910172552395823466509884971590528459280944688796715169674812054148973971804312032645799877641983502627225176680036738057421160873516026227115873592134430729446881362183787603072700912086031464546935329098159540382651863880904531512627672196206774029215769145297175058078294604991698245615037393323764473796245860815605821479883377537182381813279105667362502710550477517398085826405156570675068341572152553256630019779500153807337709044218533288905725779646663300003610777089705197693191591998117747557385662031061369131705314021816924240218631743414056091792977807767166639659611172142007253168284495297503549192307830119358428895089518871512075474225810529104760267562670882944801145334135713104371723492578534791122784764641521090666175597284689393771264523919085075505121324010996076160713164963604741776732275150110792821224287165237546665715885868904611743253515495831395150435597160159589557907330331405153072445208696806648277611766088177796642671434917954075037997841610598639086859838216712132005357941249748257156995939785018238733229866822718538432206512534199321810880459758016660723162532955631620156387331440999716354223340389913769279533102773119419239562341645094358659404214012144470873273585812923116341427859212531196534139610758123990788588443940776912341841960383702531357198388276136895941075729929522929869231433071360013418414197339022386993014401321413842678231380904576585365811129273716782236401546545432934720344507181107674165764759679345886782075951152018106080791758826234379172975417272566728558165244452999763885432699864081318509855667908317281274265671140718776653435138372396135196886690936228196489278683879170637970727434828311365597196875330995449962837187295582396485487633391038505141371670259716903010324277620155596422025838720652738514749542673623309555692148784107738128579900007759681936185452591806982811222087647894598715391420625279983993512744962374421378063264186492093780346499130377049713473806101651571139079694267509314777523324088437818053805721236481856540532747061600575849589515169620010958748461491072068263742172968960177940187651978078644547719812188723551136089319281625022190801879597265679372903099398848116699736715302768573433009442549436537606223260201311195071182147897858947601002209120906056408083310883555670483369122483770949502578590233345310060922458471505931926178319552643991994416269100292156507126855709592451877444658770712907380309222868639194935986511928359147074830121217388539671640806941904544202249499398584681100217801853921003565259645764048105599690467209955627155417037324418740928493418514257005899152162543910302118616179008981178724493075459674209818534619966016516653566122663001947852385728525008770208103757803544495602267286959387684819981381450374270259826666020652941277833300867015653995690639112955755964760968311065002385475553943140718313665224383342890231339096501981876319542592578409314140723685908212143750426648236997679807950941327341834842582529046760377151990407305624186510866849707634110723010869505183049484539214647897969864766601803509610860098448968839650372713522586946507591334432414471162033997175850249905058342883340672750146346418583696644843715254594831749103389875702885953839626806992084512459019130271759809032937902373510624477496032546793894109658679482238797671660160899732880185828290955613220117594179110273880712826471836409456920732537835176831715444789353222596209099248250693798980765115632743369547623360436006102423817254441297516685904377358828256889335198008550201452589403356442588699378547487783922258557360096962247349088136055609564063934741358446617845561196850327510303245581833432036811114436911406601105651586285810559950095428412018827866421217791775384250008848596828130645838965628701983785463321651996778007070784001228721639398367761211554109064647438560682784347552511814203965263972169736439694421570697004722993739398777939241200575734274315665716102995931430643662396515315309420914596542290887167391263681987236857277468600998028308983875745517129211492636594751276920978937463830324341869949903158085831219224206242918628477951406011042859226451992462444828600242003683091793713287919312868197723693730359134625119421790607018004144793161135002390180482398816886900168326072922843814943693781707897926948940074920194899106874958960918368390648993624481319760682513912925080883922296063708280035553450712172621395918919206615726977715806869502180669919519479876519793941133457097632713569551455441123956518183378025726447901407293159809836617130208262727142537381338399372608109048877366058108984401567362759208623475294273374801626088244451295507141427320637347627447730481552937839966392753269545381677956503123942013501234630569010206685474481642402883475178172362309367771876191903699416486186776574389043603840022060730461378970683890366459174468479990469587897299206452775253961556713271008972839281353377860483819965518057191300470885811398749245182022414346506757296999713417683164300371562015106443264256579198843928376331936056553644739125927171654674906717681821227350667966555313896459578954641601965498560319798272518506722501254057134545837110760574279196015279027508349251686686281959018036112602020437101255387617072419765559182619375584874382574478733323526406103872768656782640059867273493122562367841141086231222119650231877752957763659673489986749486999463841793666842983620525205422107698266108499793195266667488566900781092405763638526299380388975255089120104788530467271469670582485914435126996611751803019077003548652164365707967006480748776026657437471261488009422020595010793161111471566174755626956707807193944334223076599293088431483755881846087282498129267848103312832213089340340065319751184636297602981599382050991290046479894222834845877248924796358208465587292187195320965552807684055878000363542543098584702809995956483549337016692311095707642073616785295237399150556472037193664854179079460434320442410683610094776363222365164102662847626614137859083805516027739929103907648045404065897172554702638203462010172152108542570086792799069537187947428900840476928830681535347704762703852871897175718377945890998758864994242862911696013784016582333717426890669171982724188489830340924825008876722096021824748325288475036957248463326626833184187843594762763850461115864002809837495269674826507010720231548382760976999337447199763780395284384203198186676474689792507773687460906053133186446601623819065774713186545847006569156463358068896405811170198179863429543460336459289946527111050092062759571025933194442505294115643666638338690914288449524789142269503749142600639753426454845012789351138760002666240440195731730275025719514518861170067753877965706911968493007145563761572658157792102207452379089273958143463641098903595839346034499787996901395036486058469196508112753507035911864671319354603926043729897126620395956844931334418401240690174706906568708362131785416328149083712996281827458888660655922672392037681589209865626334289973875110233006351762273336360154924178107649506659722759834526791997938978729454822102921849601659959077024740353024331544904875219523004423265131106092082460186583385519923176010271767180008964717149474705432067524162858932517356616442691995162452972891256846132871071237776932720585909569935529830412483761341597191689973575142628978318397185972259335453329649774206272931706072612303116915771048500253146632750302441845824089817906598779257994804155441078292123043796757079123324454198351159895104693316176412339082823302322088949597052749127326406108511153814630856299697782781103266175633703405574868049294601699784634451902798241716893782128602229006996248732014292113293680099989704742855083195501016196556332433691890940167778309036076181334489664751168273441301858122298452714272316518525204630073588151183044918892826211937288368057859728989758829715796524609920243628320871654962680646362269142130564237442141601176381475798615566206608092866522251836938826393832640405608491957170583745921335130850277224987989026569573427370038225363921902683080771897476227909063290104807817876378216894757253544521852131103198428245310806278385948623134017520655758375262772983625851530475607459265543516101665832821356000674081068577058125269875621190897442538386130569245140684307441443490579018237817424197365904913692657032187535970925016239830763369483338334148849616765089634655638446401427575591730866521920328258914270521031632874283595955271744374626541923733664111835857063906226341005439761522459569112979116279290464571296404997453926761042039874736704932851394949602512972794762725087806873434021354149412613914881268449661290106857833186546359717632685365249753621552113173247741203270259683953692520201518498383152349978836514630907136147748385058842870625495304056292173599999509666669093898315939372837739850703906671210658211711924808579455147875845422854601716115865941064621252897957159635553429001470509921905270406728233403833165365643021732250672851812974089220715679790735235474158943133807732189280251852881914315657941728117070333277212478467899547707002630770807826807909340321649006578055372721928783325458494202308282248860642853752549655317567816478302527549641326416019484056659483693193200614839312324563206210987240407871317105345448595761560200604061661963683158787644779724016353313934594378067411758355329387127756964721720952954928089081353743596170983024503730560124410508317603350981864777967773800689954352019622779316101069346377612818831658572788448584288214753762874822835661183312793599156496075774133968612823344214727714533530745382514645434384557243924954919642348276604256558779865364768047155755512972884848743763928097195351238570545188181604038663569775344345070369282545424193542439351648591764272803043721265999237166717074019499033628824748222342310921634189259722556842361466587967224513100631702940530090226919560358177503279932831859422305156420288928885926385401604266947265504516169990845660281922592555720713220350677951599457240749960521584460728440226091778246078989474007614989983288849541533031409067385015546200679199852465632856669695064271366002394670412054785790382449607330162058627934983606461157292631442783178532839213070352057078921038986407721814532307408090670739017589069471207848814083983306643627664629889341018723086705999389341135978728629322486860108003397327283138665654303501411832370751781144217488220841807954756300344627121595069303054694386013950904536343021562932714491701387532743365831354954469201182554549693174354186328494725885984567926529515232046351982839000418598119730131432305327307744174642594642950256322211179520267752403058930410826529996443893812942891875416518688163060499817178525870515229984390506138192550831567619510168731213500410378955189679794640746705712405398552143448268127134403372924592023411073530295719060148320261341437862462914089920206502988038589016920888269349645067720464162670896696133583081210753703499851690784953106233649719038593439108041441114547264030711673530140424138438772508006761465188353411798052203864973604534792963106344382212595182325290714442427112898488129428103926187614409467922075766163532307369565293750073279242362356421850789185032507136909380705193469348458172311335012265617398306975924679997419391301829823070473595849314485660792938295333129427198932496702828687596244420801613407377428207622216811623697786950338839571753468221353693913967022545425832558028511617999457239610895785322162310984657940048711297850757185695334821141895987877931667462148830650585975548842973923924894577868239854288440799197674195916018364739104565727915813388150536300424577468001643745541530031831232817991703593666585192832337226560173823478236778760075516672854653445850447200261102218015825357430151174610268458953164808193967538070461010023965791799154814207209362436637107442534484571354143337809323835563950564833754314567581208852029824073711563818328429294743512736498730281946656229722475916713888319242007166539996849913128688435845588360990000027974275546142583776913868382577058930879531515736255996338765521132262472919513272180918170568073489260510091032967473715532566004288382654714550125370945419503203155056220138072877606801650032727625994441598273277775405019044899431202892406750104444826165407431706202044611270557347108926878071217113515792697066044189640728631784830140915008954259713013245000017478910852545497267760260661695830253717147337914538024491747866263278005307588657915143500262113546953166059287465429992717570368175240027631171497903683210770966301454085411933493040171604932388728898008153902624461712704180609931780230372266286030787671755469301679117935539151153224344797468633423388101231060007220545980577440969136035805982349817360815024222910089660151947672519741405267821883759429055585441629126043218107881495165280745464100173664344789539892533738177968608196517108029894911724486366242085872939621089148917213092056583746830590798303208341550693727119155990194118306234016312511112607517282390703464779239282163916644587149730647122685008736374266843583050009670844048541397711226528302624175018600832775251209969709764985985325341493432375174129720040921238096445319732094935841943481464604651678541295982762920622543552900838335074691176160666953260392072595186300050825764829120555812460835320226453450736166004424630476555267026575167761819565644063600994092167986375154487752713708893853587770767293870847188068668798916500291452076284296441045198657666057535928305333437545278052173919366649625500290201585862967956972679095663449640639461785897325353333824994991301428202391782206521251727496315994355382050528754977880757424135731242227212607602199499060875808868230079622144012072469366311586421578745738886312297656437825744874747653177725260318856554817326726327239375774210330395457607411125653168761786177063812345700263411149940994443449896551573293374222041166235044011050243063999653574857089286115129842771582196914733418032233849576562604716226478379915655878086075486993877830193403903431941080481318285031098588568107258474408898649048564809525789548239084805330444851081769736485538184525841637085617905665392375700935622436519531150296240232847930709238157198810835745886134443934914325835560825489484460436212805238033539452247126940234718801498269664719634457316866152061728565661020911910124540655263213181525093582566968216329812279122816869692104485456103151379601780780396696188927147176868928992993760524622115799610344785609614313063530816748940573084592764976450565490385894716744808872358605410289150399997126314336686556242875139745831717529083296974419175813052497684682544985809459271704890652343890818442314454014792421101060825814350869355364541139631231186564896807541538274976681263032759696962866183188955818659771494610332632268385862489525610534836773654331660406726615700259170516539181076146623519315165373807479578496115444792088241129283195189274816285551505282826645663669507131087242293251230492047067968660391160203465530492792559400731146993637197732178035672480464046412314116187851133185475858995647940294306565931418533316975728935427807958386266168672816070163037611355755476775222142442712140181163378665182979223588754136301204822150516112657993974600124654409396080568836771384525746838057773763141693478795248911218769210053323098481312197683140037220411526673415046487869900119793222198976118532398667929748151950788589406311325786757296834583094857020805871704916067932556020141114180857092443960101559480276553307521344170393426632736998980482641059893962367897516857811564083694706847511810131925102174402077147055256379417193868859141662961730142425639353058759955614654101515824640246492196789668938032586016301204701965577693667591688054371018655793537151557258641813783351432236584941596409489831707233563954107350710342083650589336669720746489318913894215171061400407627626720920528039805701047578950225653780509728999303739830447851060635889377887292470655252658600364705472501394651531428069382983712915691424475195783435674345011777924520701052950194562298166906136625992595827730728883523318268501226266553135823742195543525444673183368012093597167349320223693195757732564624001636840283233401462971324943204555046020220453432780124848935728042325095764434355238689451489408244716862450672291389823437021961978335953440063909211385449502663510887451822300195154547748628090866844241026770126032908843887523111763065137343222934230779518477892884020836806753751683542121776117715043193731470122170435700299002121123781098591311427584012626094312408372866250708099287096175905001277818905101782682620761019442140938715108980343647654686632280407135643188454994174673922566630271032993706848822534629803667553788239422986654817155626508075639795092086790801189742417234989274707708656310466154281052261049781057244078001360591428956647808348425102339658551499375011344771426404612807814340086337940821141119775949861629154736250452317361561300995159954688576523721644391958938083318057441617971483282037681227505668316094496462961876050623027537102088740705714764390429054294328979271925131799374172674849782571213503894917559929163973286270629119217414796431781155255694522083371231343366513881040370869652311970576326045102755520112580591245370350648615890009345596977770498935403943599908032297228050633191094275812055979605981315856380748689965020313499589809119066398967128836732836366389677191036464945575970048598189480515231820099649307091347449934494144788979792802384665422623602651613628555349066833031285719694238077105530962997192516526684058114720546164851674619786660330498963995655147498302341663665670838888419708228262685723953666978285585265604646358438791945965049912516315644024767253346197049880555210933279636393838308036091322352145261928139599259937096584260676555815668943260405733803389370172508617823800625072944406361804489760708965700699233235757148357074874283166414498172877386185177299107277176868403929990111287371741751312830404412707281626208037796092663444588938881869557094252291505273820475582891657172650238902333487673887280060020194206174297202095433857102084695410453687671992478024689819138670224640899698773830533351084908704612978819344330283622118430720027928957557248669020244637601765673372292487089413270774697909517808639665521610391324215551212050189090749019469954034388946972906372242231930196821117789524278745319213265068881031601464316483430370288276169565270321765506910533487544193261225667559323831260773533133756004714242047612698286975911851763040717523714900640028776480394893077707106946108769785321602940671533459227356853145832078353336444895790663139430710944205047277715366798646579258087552991108508491706333212898793194036600015734157026994275131254650661961373111485739332400111852745172133016423739652318771923846785993194077010945069209129969698500686185552433577887779880192096732426433630378996649013061679020320980268196686904433181521227440421200920510531059528023364773138109160525546754123460506166442643640476233756776450994896094772315220223346235172699287466850568835335359344418166367308215614305012726851960195860059504390300850884300344440860786724362113942470340862619423025187665661297726011180282565055331819496139536538705462026814565968245169092588142154377153391893793995034917064664332797718213922911281714534376297013863340532553972396764072322459462305989396493789663671188918978645935923642771003786456225040525398313726714123521122866744344550962236507166922442498755061051697747609408168719968244175155569758054849642650494747107788146729899973806365301079716193368845437371472945350196743505257867026575541284033961300208043999212659044561872009434452506922669762972384016828597815427679577443298236333829720143424848442431528024612885271144734821894380516026623445722806054511541962366247080165999534554904992600070149568071374298293803433977134710425343539428165861984317951724696928713920041590671959558770501506473280926890551143490899901044043098742879493567047208026111792709207165101431022627215295241910904402197453533761881372964067408032153774305835238389457958088888654267327695335886270058811933718424978017815844051597301874366392003205236016031076068796618033509086967434929083848136042495831084243072075443311878810323792099800200176577154365602741607399846566185630994425977197684216625143649981384517803282457229989955456729827362156485920553160935883009578461762297922001694391018650310879648971952611807112741374569212834372775234407444363881868968535854418819206204414888322912341143488457740420028102053399349629227694504918828361740038671553800285375742422769657559691896560088950922774486862064337790765603955923925148044553547467766003066607459672034098625761013405806723367181555532489131933480054110284751050418230146858290850353344152999273984586917079759029255286780080697617911724413919263657590021371695548411064654993907289832143525605984852723582853828779125949331318117609289383626668948826864976719235920556888888677424975421094161818391566439421940470784378600571230577466463874127092312980565626867884017971230754541271463531842566377088784308141786527219029872065139562667871838030131662658882271469389169071611236111425354290032391596590727661684367460105404968620478074464259853385169525404666425478190494212443057875311374511531780143831890012384387646334178276605711687621862699297401552490078730500943581063825561861026618307394712450188665163312499353908007675557271915063463065197372968768292286072420875551374147529937827212280013827577380885877841760331610131656994698877789754464098240783824014959969215770011029239050148244362514470014332591590277824209581849007763892158537242559462211825744106164648600858323669187109388273695932996094466830174019701006050969570679801549303247784237304313072988448343862957886375095085957258365456463820046313264955693794514771963492450218870470430168571947806440467580158997236513780114410681852976000143326531098787882235938067274181493507088842106184171037427049333965634310838485410042731864116606916122739608747303482620790319979800346459488344505528782002221393647074320796909378921412237227433257619957869227000820188310614547033839826827919260765102719855676424186862252534903912088874415888453644912425995044974597906423929898685964112656554647755905617276848050197240916395289573703940494319367381100541259073274664058307547664744331956910430241927144446135434916995569686388866713053094798094190793374653964494928306964858971941818555065366654391125804504509717594675015575996089118496020658689591398459682700451117009329324849633002292235233039987959675999250186433100352102398771734454704099271955103220794030468768988155901528509426970878710738777235946128090560878126984689133167320979879203980774457432830060793033314543214564617890869569142907958477060752700587779084095665414570992483035976000259563210385492994776758734263231141396558559690496937631674475192992194917644012384255946130860119203338937429950327426165862407281491111836238534481872977705545752095565001996468476004963008151281059661705101895916675400958329763004303464105629166532465249741750605617987523319326467037246879655699996677656624048407574369709598344531398056661922655861463462498571039495928348655937175807876717140861754610043498988229800725457892618885035719923374580970479017980922060082683417849933726239142885164036891953080321576600704764771773038996237535170680397502606212214722116522683965412618326466374186448836703122514416529322707758051037665605537173375729134621253738259320582984871286731853949435571073181124936813584593393339586887060169530502465610298671134810044966276536481345853641156040943581986711936096904475167705133369477152540463289587046219000642019118632261844036824997325543742840928624987015866956596160203868688388767021818305073453689412637693301790873398049827444065026625030640489470120956781043377809525270667059740993048712867825338940919612584484159326023132243817064979531154499402594748734999735698836356654953530803919889311256265243291719306759356255458307356181410718413484473293193571077952525611338624919100744632039491150509282428264869763666521988816209550445891663834675170841690245513820643162371837749765000909823947356411238224124608463149060600839431751213280514869253488689975319281407733518919389715588118111063140630929873885779456377777772046976902048311303065018821795959536691353522121281533125525279237847629871073480526903429264412243394084155928551693568015124237177841382459206730180981637089242061378239821919923715560253343445520334023584446383125003279846061572944628305199914144428268629583058016401796390484459040434410901626215224062108011625177525514173612972604201111251188415292769120810732251810909214821226926367616659228129700841847393010884240854442316360704266827323364355384469788876413533508723166130251357702298175190088330354539928559768515542659452703911729853191980393055239858341847500225599896542902253634891073294190489106007118089952921188809502038562646326992077974834101744704823257830666469400468396156906472638246147620037034387389325801486564138757218314578755730937310192700530414120798692839652717857962269852455740647257949704302491537053052044156715914817078013295271199419381850136197219528065034815031611971154611443541625366217256725015938363688723785050876151533056995092521827600467115147508673698279727536521031854007083100161656266808782352989210823197258421281578483863137849993970765246243170545903252611602119666257346657744621708436011149584971312890124573602447865662798204534483367931727483177043817599308822451594345737011897916546454193548227759720466562684925550470293558278304544401292631221290849827852848023680669825103709812140090782283372691782457266450434015726551110687196622371040296272070911182331185826210289805525397647453611828592643586515044662800633834731815745388068619441675595365853325942206842596273622535933995266393627096503253372329844798506273950897553885235651646005517964723385243091365723631682865833522284933037098416542251902270902949353557899943291168263127117184696764762074373108807664581145925855645372277244000621979228402345816346548439844488566029324878222490696656732265736565272089347379175747964275862507800229267529493689430385011253878016409679951468907889559611090513118144699667386108242233160310741689598560879841299202712105415058721287483415121023255418882036750953191919425709014730743563145112576938274785810580293764142458524854048149550285559298824198528813177145844590189190291404112987268859050957088252083594427643796564347572496857926432898849118697746478330077163488250538607727950704006628250959159574610281844586999826648701340489618923046239929392403652590809638443129050824964160760263355450250748489610977129662082922758312938710648254886482681326156885572663118819449092418222173126187169149058183584173408138321970581001194323673754545344950157484774506569781328087703931612468574737563438207488117174238250318898770842265419777735034296899224879129291144519964777760020301145506185502886822986971205949519820263435998055357028737060784101801966722299371811790608015878871144071087723155999133776429195870375076374959730423807211477634141499930412436361691217719930432674339793124872697279311676224725817278450884060307651941451773716925715420942630628523261068777776983134747414573250558638823248562064429261069717402814196503990318092867198718176675396172809860185833810691199791770013061697827447793095355373505815184243388713707643351128855956873867252881108137750255419112816167067894328477823432761151694218431567422315653080548032803271838529007964580049390541352238675692387349682470423078060654233992981360737193315872091821015813309453819990869728258798360769721698136512487070608390249244688450129228677716986594262489289621369259616489043930658675240596445415017304351847508443403779467794546177511437470472865663885414220574499468032544087308554164826328111052368652749579431123884611243320247287370997359376368559361538343024892343553797313631362879528483198828480964461049331160474373792525299927979378270945397990251623347811610722134864416202521867306683467238791375250056086026521683089511298952986765059531407357761768113734698745592643935057337551674605747194282577994366492724940456319476025065747616980375165356459894598249112526245975708847159456885586247570636563216830139190132846396431104135282344690921085881832949276917733727370987225021457047433938180243239025923671849517499794704135349081451645886173034365319749341108838689254527985947709516022843470199513787908697358006875268756380609248475106681659229204696997919610757900117926403952915372602036339861090987364769800917972049386572932424905031514918611147610566041903543135117343789393153691513742005032216083497771559465896371909185938533849872014479787864768288632328996480369555568135959381272920890264154309414124094617418536860556626484134183402715708449596436771086157931812477893381247417000552285763787055863165531002156329692674205729791919606347282376823902024836934819464636061410789746759509176498388798856723800501862714118870742640859096155754814223949772703557842579529524697620606921883801763346928084656268198220880450662467237792922015434155777472819818576239219067827501844388776679314518975857414494112796255801681378417812860727269832270785300861271630494886220741747406313310275377115341404029060898389727987919610642994728810434154124898402931703381871217248227931442046671044399141181627122119437209581402549624741309009720085722603236757166558910575090433452233399882895999567249353359779866873022046408158921904590627928181692001005343918006068659470467278292642208251906038615302401814621786299156978121838911806118116074236621445456507547989540272921558170097050611642616623402178019476983642387583657065176607499713875009018531757895243282742103535946296423462737455018054134837515027805968055278012468478702820561116190163804568692077564988929983060790613691492732400238733242118060055825303852368773708714114571159928200914117650156103402875080390858638547129762075519026350367659637208297203692065663130653670730361156648264127274056093617541940861424960566193886776250792728250917756165376540238460878797774858034516554187529298167009803499050216934164030954455589611693240072419745663570833049313791264290554165970532277370677453479969206676664334172180174447865001520052051911046633397966613703398954768197760939950801585463317747638758445677126999036529002846586329781820969951831376817224470416057824730902598212040043721936081187219254011776806915381687728557367652234144132653553981485266734356233848853958347067575178290081471132492617135209230623249213735017370321757536738888464831756507465065686061640544690766736056286357770744331469225582345691900697561431630433657518470159168745028329297788805042541453783449149332166502682334049532193019229810712179091921871633681086403175820504612344294866992397567411702758579887376096867230904949969426407823195835742402013066576144828622901890381816284560610319086507632845331287436656520142652933677242529091017287112598286027306052354184894396385364751927321680046091104216322844161371134243906506192613345896183041995150910805689723160063541010554958596302066550817749997998848198649751739491692622049532432937178534439275449037634779058077510331882361999030930341174688016008565508471108127861835173379526172297928636492366493321737803543718302706048457523558099889250271664315923172131116276568298709991408365262003799862065160653812122740779979129632407016119581997533290832886743428138041788441800581694883788282450509227318096205314920533520345181556764801846580816311471666305311741853842087574137601742201451236805684799345743518681985659938355003525013709063131656481635980129352639422947716593723873951937373075904479199736378664423051834194916447021393559143746572307779195209474518787018896529683012512355806466779288584658707265043081618767399474478409414723780951816831061546573709342828117225313052796177712799148663311996905905288740759606141699029222946224189981811494942112933525633854519506918191114828752754277798804677614476842488001340610123316942234359559239205480782918300255680526699687912411577202520475817505195973100610073303261117001183518177797919788035000071639124997337243617514265428605290547018975504131767176709317694739863738790115049396060806094611355886804030632465951733393268101295558898991177812566902865959024935404268604937974137270657279223291810364087694758295354034413516789188188320150337026705197231338151048803032241866639451671214936400543039017484275287443143126647847864119674062410673985041388775221219096464462005338812820198272233944224128027280074126998917503298675744322034350046030759585298788375629200154712576389418755619947356192069870319017822992624254547489402981655916071267185446672791492733257583755172068461102011196745846002770069410037280579032011763677305981466164095425596794236272035109467368641137640099762412651875355088794274854943337481049035284026527670622758879887000825960433140509453994150328488076490914721503795049218211573613877137250619265981918297869652174163984895951735939529832456380461053523217607597693478510272089504557804606709578934871685134567370821734088293680459924856638679899798381206929163375519411916751643026418985047672126244576394289795274143292514288855354889214127746135834899583101214665222068424887227349359131023997087153950376465717346536262996895911068047609715975071103593956174970849613992485747234849811326599729816001691488392271652092181252018687768062814424471148347003384225913899454306745890921788238778933339764208139624556717461904282277984447801722932424979764418358070236766628519161807917899157825513506408239036382451646397603038443544827058906807038262705433700687434676367653090850548592272698280040945968569943895571481154250130459829853906661389920136297270796016265306296027104142060231509948116143175253857328532737392167698873074933191514009840514561903723259198679079847210853970616363527639313497297864897210897564601140942792957973585046777138144712810575117926854096837535740359481000481506873094008615391640483694050354766260539341666966885452432850143097067055043276481563087325536958768879092875506479213653369018430270344678502155671849115118848299233103256082152954895790592384235332975880423836418778311125982146697375454281042695733337183341517721763781347495044897344078602934268967195259165848377686756333894545720788999311028245951442081855817960720046649827600208615466433146719935371932297751199091164837673395001061610527404586185402809018103284657044500269296665155641463603581678214958884233450502227950919816518212551815913057883053090002488109723621484313651130428604500449764348751910571982750380577956327303290549932549640080225496195313236542085423532417996222051199126133733192106865528197477631985463993633986012118246530024055746091256448178155981423073132850101732339139525185749333877558044073785765287733234485737486220250090659551259085147602166900262437655600507822803487220780327349069032205914026151441057202543534268144677979898524225254232100569907217314388223154491812346057067405258080479524121844190125922969694477756165426040091646727622421267951373974059937215061835559461531508895725344836136621844772200134762255656145939985592994733845644097860391466435451547732063406753530543567010313420402544131689989645663587190608088709933664908701646084344371567190257115767455421763061950925363697490364030329482095219032469891617624887052357976614954087466224389659023553261275785522046769502485534811887582387227226933902280728798934910401005460357332249968207016517355200360773420676973360564173336660191168005099128838329287022787881198577426938246076170281770882089335158762493889999888238718624560298559045791658068614227418303336125551911641857026786739283644186756630792973950069612703989647307041699178452635827643008662701371921175361257782934160143087236873542196303399321702492113554807180676338488605619534324600583942279512464568935007206863535794340442667006514953397121578221182290990462259721719735730922964156551972713805407043351835678297122537490546724529782170140284932569527775381911504104432138577315163486749405535479497808312339322753245267435315080530274140053574685767731195254826660784031394500624616573936143683858603772557313412798749977828372973281815930651600209551474305212988045644007392087729523019633074470832230439442728564552374853980826803127610919276479026419615364400955930574125863116377862138747476953396541128330361255474523670503496917645545499728646094519030440007408996671238105702641949555509706567511252470260849171790546695425784646086890499959467139226597194447315559417845022426869674692700753079570126474812453268786219486115155250499850159998662297143139799857467826163163556536657063765805244651513254697969478600916263200833959694131247305446438569309639827008992234636342497417241921398342150275048180660957820014564295347967253732575872332539036086513810951931076921189533836439185864528143367451057747372205573888586568867934491507299208358015899557881624356721273369818761732576453567504479670757165697122847706684121096573758694221676702234208922977822176223987712310803058902010312815482902793664110360441637570729336291492219454583358806725938607967940353070264414091689934781917099381404743358262313151066903126333454165283325867439659013872618292936705963586893419989690327094896719609152173461158291254087028813836183812256763411909119312620649923130458104527479444320580256821411094969805127222997224332581568658003569143748066101809108478760542279220566623450457959709507062982300915543837084866626622711155470378954008747746701854791497747758954333599466613210482361064411746323951308720956734512014772734248508567378965758193973052337071772085426666757819902314103601553249488733327770565533882554839723922683227211271219758465429305949642022008835530595043276256176344222419539785731724149455408423764890324908220689010373208996460604976659794312525964474930444605110998886193848478410579820867457381301241104628916268143520707090003283945858449268226813340167857992880204281487464159188428179489198777192926239518026265487458299158296490007476550507064676807533859628046562852896261694563181280663116714591865199211258009902613449569448449832399784602466752333458469786855465932037584167000583982277687318640119345259746134834066877652301166643400455269575128266390812240227378170342854444058892154913045842054144893525500342806705350614895885260802522584693890987949897096457846041418801193164232808031873166762382490004364704852646853621737070711507962319412629168898144086051484274028825207912355473228138895000926065298478212073924878022425398169991229107347567697908691213642817248426070762627508254843664082976428755616780607299607792951424459886661830473787889550108644832278313663763474288869195952414295885160533159891639250383705302564800776054656885979060647206808033099780550806420726794623732891877638243404053104308938428083889811358688480351748896633074967217069138410120149363937130598811498007544375112684599820002513763296027434295403720195189234929392470547859933718323172833135257547009757043412846349980542264328774365277626271204054466917466163298106031720061050809486363640016985367997286937083909285853862931200851858574332429854916843232439773601288336301394481600449537476404660408382821789712594061540756315650807176810280868449014115518011833671894417985335806110074380686971104637742763281969126690346993648632730173155043914878850413388366445756835731032808136045365317828933774233068666010322271581779344358202977782084017285450468284991406363243493890837938396356787886536821231840230945529897687480457109096483725658864142246201275788127314285379543538432720065758129936069383531822783958729298947107008283152930897498040873266216137871315920307495350944815517177078886914109321669117226464822393532585532972842508452005145150840573998810262210959935042965546388964046917318524109487075581907165421195812600403615339536370088973725365915763375454982448807092011834153865861746292456505555995129982756627250416983839421611739841563902065328262109754665242009203833699608155942196481486637410016577122558132915223061774576685613778024995167097025566016405272827277063606958628038281185473344504260641216860735429152173476040311066680024744358037948592675938529018964559953497002418810594828708130622378962401898407951418512522196498000417102591270253632813910314356031489259752735524456525353220443352869698647226911267820197393643467017177016528720765792374863448318824493965303967979113229037837368870588440308087327619700545841977968065945609909966286008233121755237015937738084005815483796465708491023998934271984854489913695400429996357286798705709291590990804462264667059651817587767965557850217553354065475444586737626917051078066501891175638571638258868986865618244143521950705729108541142300322970484976572632488238675376095602336591704277909940496588032573093053443704382476018806892990725268245639889566890769832756725346839047869099903105582874089604010475675784070560421475263911899163780499008473218507849432423476548374949548886782973078182812200792802093648480745534194443141213626631017154796161173626085126424501500428259603317828659902932221457665587043289780620925726613605788958783766230943669521206083828988072457388192986594376216132548142877239367612902828413117445463965620866347752522316697554902238053562835743631719970084223331766570098621817978501695869788202023954254472627116666027675129238679923782362315064846541079220348150202730080983254364251842601776952913864526581662344597630106208980205024936544917903255688528141855663992616039039827723029568205254361157613042013232018478464128340154880041390069444416040628885619346726720099193433082675297316860483277446173496451513884885156491689543575905843198336828514510508631298043850053440965072223782646353210011266057133470309694388326498188509529134398586025278312924663737084376698386097676280352840367696534567705682736894797866933119992993594519147570674320302634220079031051761017134234005204893870680739166066410464480399355361256248669216571684009471544427906635744743200593268999232888307842300213282286417493196764240497791017475583867171652794508527890492711662091714395015470539481853373957117816062358255354319393202085891497240910972982621273971137437895580572759213835957903367472501987389278087701189922944167009089734196119593439324843428444071471618457472859601434355970259211220358464566945898339231836714924706517268945896993220150408602689195199601760225030270207936613269011319414276186827474973762395197450223451774155610520970809886411249360824979195387084846795744115528750467824069870256229358578577555157082180870763818694482082933728014864185689989724186443480990646129694188207558184374852389914223993345061122405526021572888495905593541889431308012965481287231789913005169157224153626866295011736876572524169694253726685092681325199755658153973346217203205719911652007322272666082438413917370361729416088407862990235832691244511693094522789077269434315336872952474383970382869131353693002144590812699921182826221606246869371839674343430315259612232658236843782234161423237855512750916952608845970045279634297167604479056576760094549856339669613608618049672968678169513626583699248319776666649673444261990544425272251364155875192250277706078901302705317827607588078669500904207962895753749598478379805928513765196737078039805846269789533123090992424782271865172119871469130969435254230019346740495786348195097556975683650082190525106151202402225447134131046487809849153283894393001182024548130580539844999583080760797523416704640045560867329300793080771605959380255566983693794840135608491683740180144150116700595875627774352511996249181605390399097301302417310026564455331180626182502884581410917205989337780262876385581949787324247228016305191999034071396834088841681577882686846712067832143802465623435158222211722973491371782868419165680439616306559244910783029020273815831066150846352647548767727749278669169950481717083501108175092518017407335895695013065702281904299113969649461505478363829431821307448474988066292652439119120374722520929115586345727697086012849014526993821537789530515277713905230452977952668249094191571831576902287576413079634216438292758129562674702685646814207104226513081049837604923002681680138993788986205233486013045924148849968596110346679021111232127556953524310479589318392002195649255519899053289474052618300185058881501591269026274139603463346409926545884961277818481869656608322984091456870946809172285711364160726691936197837403723083996056655094746403362404683438671663241991650852485400372817549186814230018709683057185246762871313703647371283146259556550727158959071748435924341320323389400484556049556411945445606573968314780900053006972714465729600145822832701697843111642382177943129742123220400346790904364373917210368620385905184221508234577603942309721037677252548523547997319450148171417655940306657762405286957927503487070308322134208281874836025111625795021591616165524468858833327380903120963880477129774773517055618351497396863387894993809734757072076958431620662288639908702612169079791582863177932601338597789903704819115598027553391561866590475140322825768586798186463990574240030953310559494044658197743096386217058088907729936713579205676328669986642600574069466142310019450237454349281199138239037291724350347398216940348993361350842225944311669837560020722497489544870289300248795774157017923835224675572298598178292671886546745577073206150603756973108683773849377119887060123068491651862232326315837998228183845946777482229442776038069206134550587414426110506651794234376816352402000038964118017663646726657784214510779481615359443297644658390479759381438598102746922455547894048616264487948078928261560070713104078150981442182891473311229225710948511663082730017702897106310638318700810233583388959676847032509304657163154753648374971902712464274460005189183476593863010646226912723543406441557889186614220825911820713348956201233338149273348939992094531094344993178079570983321042298839543296703050201877815474905310673670404024484634069414638406398724312560975952949372090725439137363668278109489980309233790614807704071315257128930641888675934750836795798164818479234565167307181427626146044088795863937726817938363901593840613896768605372998454026349117356966380443799672138245038417424562484788992597138377617784253289362605206991265133169089594411607205751614793609796838301868917609933851977031468544535682380273563085932024506724325706203505478648451006292158991171699374875239076885664420315846451007031629036897481524812877459376220361437441624290806745918118543476604887506999921724992025965490263282532996078074952891001634118802286530519131358619042585996131503554233206878384868831993778386847487996209054168506377529644222945934477232768827262579867314220699025227906973804735641503321163446599205426999079155281956212538530764396178152020982111743637027887888930193872337652837366604987894927868683399631947144408338414246858894397595272595541335556228839282554510092501609412260387263830500078378566363298757450781842560806415710686523593760496828941538154278289227660667738776119502713584676859736083421638696164515997661075779052456981298676308955541075787591959813099243525529699504772513860912742457987661334594435332670905535082365226025046577966671387518378907085765844190330645236620969912217069016644751672737419441728087982472806656697888365179522632726644827110993445121738254856027192323820012631055127366316285196867401888774753834441604158502790233833915522891173272597985072554315202535090037282216744511140331534899488744293945839769083140317598134938711110846641498365200094598299670776045638365293122796987164144058450809450321754157715010038537563944468523456680512877652344249438349697249982135249458675003469810298635002405221209519729060505271933176170156746962137318945732887346554870808190664935727648380820434447576457333414465401441911011970260227810903159133068353719116695564064274028662357754119896625355308091077501847345131111118625950194169517473593290042660075097931393371530447090559329289252102000541528657399103882387346595356147345019110799318720668210925988650679596571403197481267840008669126712021389472591890497603131847967240626945641179829986930061748879616082466311343586626762686358630719415000055741958489375702052724160852643752977411735161641644695185548188963510396960670960901257727262064986231824907554859843159020697928423036919271764428209049943463704293938898338011550727482158751678468840573027206747091200611505480741572956977460106321422513003095564272915278512593192375474019535011107159854283895619500015544715965948179571153882923765067951896173277575497816115719181778542564996414317242204610875886923530515001229929484471935692946858813978320249758816952826358328066266079736971163492073198765644346096124824093114894134871769166427088695388898511007963121593872051466590840037802077432458747535000273737531868537108275423231006806586073631312850481346960803005643186045431447101940242027870353559805790249549817617910921322342138045923070351407622568547020074989542700747596908638436837574871038677940414952783243478704877058256862807470348345803480466674174579598309336961307718744641042799124907151133314905974863538328400902970755885153336962944451722931068822338683160256380077649002353290171230067580375072838463391832687801459761070565334724513913635676092468377847052707815013897665844638387510831146351496353471689722553986415698867534154497525730082602071692267819150702513739691335350935615506538046221455217085198708514969166643917517478809256302898043924203757393841396834038216496504748875136218951350038406263421052451180143390130631007046203691466283180426861981580080566562347941892348042172269227228058179948361852553742624113144905416656162251088800347758186321529418307498586110271602987388406861283383122727005685872519927316257512276960574443924155691955103737972950982040913341706114047684614420221957120276521239922624464925200393192158185709832361609977641061344724728906692445683575810039506746746437021351854211911781939255602685424423428462660527119877288127167795968363953452882826062296201926531614368406041923437726340562754878863721007344595261464634890845963084705396537963994362689814128147538855034148845691901649909058113515015554493422864656531752307815498524818011835125993174178973521475011473510302060563529908212334876847027155035874766772323644983271478667995635731299515086084496959431128849997752031579857243813230892470347047256286447035692497714147263812830173138263375683655761358322679877663070330902497392316549433014970503047837131429713142720982459998851754634978033629570301984231740712710290366500796713550641066353083508479625725890079210197730707500650986330594683001342591646839922085896771739291992391911783011860154014668590513919620553675842406106842034685926839142211715784827994403899387862618413456499199173865967634951356815677037247478567782025980977800107196037070509184331837390089992488989938048401535391308738706038396076164965377549876218180886413277723079573962425152383920405058436671123335806427941931373819574779658311318258357822570551728984908360977098261700520554878869608094920182981944109484090157668646128161528265769169971633652776898825272859145023589628320576051601516418779130364724421214665624461902978175775448426684381730453472062657771953610232596784682931756504840731844302165920229807666843533653339571821420528928109343972412336492004374317396524906460344918372640470316150507589155391853448980978728258063559377832636039152348999874427573993592611901817054007908253847602260065192094410186605940683018855395833367035622064155067552328001834473657494945098719108921257030661348266022342525310911966691409913164515848554641366004482082280659565828296910619886430832885083485020975896907587624215189279086415680449174923446406403525212387837549397739496868020742157805504405202573893424707793459167795650784984817892670763540747062457056050452893170308217694376631159416172071630114485200640980960222077899164529848319739770985065475138838131507007656492486296382634099994485316697691841344218400754985061922794098456202340075706179000489747847469606734636014558539137954634912731808527858984118506677883307287068513646536403197581708771592814762879444808882197656277095699522549765733212592541196576966118372972851440764932844203888471226369471144846122150411024033232813178399445095450461701201139846712847023255880093737114876019699940414379736904240418607289646555443856231041703145155436030894610111296019007791457364448932285192065992672252191054617423301950114160266348698379710386080369222004942414014313008066593424307818771182945321789692179193756824169288772807696566559662468355447956263458058590990234566293547417873215746090844174747110175292458298217783771574027613831844414442958388814204149688957747219719861355216659345906361262730449046542824338236365770782842471218539925480560801606443556854854485404362809872402042133982517836521746203689552848269052919966415900617566329338437635936175437421941425892540801689701044494098894833443550761568125253047520856101183765479062500185875187468035609594923850104620301504139167650954612565574349326138891372890365105078145061192737307402264350550579815469404200086573775389647046976638986725509378576583491570587481060710986590604664006222512209373409350861651860114233825965435788091973303870973066626226503678319391522324932924087340859611718414064360668501333626056301677357109559563717151607065247460235748566748897173320643970752688134303412035442778371461112778625764495843192463163349092566425194687361799192186142236877999990251368814990815321097770229133175715218327251055436848357306134475720796521005817852570043680726869963973391524877438211447989722380593710835448556315228342429401236102427867859865770865972015985937065980749647400859856964416812174140060340024993869298604309329046861594034175271656523939742204953571633552351991993913713417852299810783484023026228697621156970641496355281403502578586662640316508199184001960932212125664150888619780902286553701439214712199803897044504311470613499290972403951947057102646092798993214290115901039679272086466082534304926554893303849758224175008472809026385238827232463407040662051737564385337378498622097090637073085867970720163316630146859073660209720355151018369254108022314658984976504638266553551545658114717860424619962216677886033255863974830132256201942073613453697070380285412231362665243920196617821063800519392490183461306905419018310039618341758127736164253306635319949939637470885521752885150360594558373656029284234899185215900797560835728269914793723800607378454391412031701406942759387531179816819391897367677417269316022058078810093302832984454619002682080120009714614939457930769793621745949448077907937235245602433829236100438870723039430910727335882783359762835623236421602710621081089948665401310996117681165377909088188595611071724211663670483327700690755557356396192172707801956712966252362788232094090397200120878432069525238369210747558517716312870987185365027376475269283423686291888541442907169826770864820766254348573585076489786684189744731936659772628379548596577831421047473601336172015687075362798854554234833386064637110156436748821316593555362859397401685036310418325214990586841947832377162097182435824937252010237650648748774166095036343573461812854570706271980622116939410109574352381825736193078358798925105086718409621040203505988102719589870425925929532692689529272757274945134199399586864285529175215737680223521653526523939711497376567267793390491167507454999638421097641996234336017171548675182130905344769298627428769461994366183062322714969074372902335410145023320188374141242385289493343440285372661256367031128052740402247838753793602151586665359383978169494071744391969066240269307748369219739574103178903412879248992631776508109433752252525518295240980967474897823985986094464264523287825950400367207958016122206439473985381797071134699180184714566444945462521502094895987051932704148387344009319589077985070206209502887248766036416416311317345396672292991668868738714857151949415792597176618739896291945872060211010329034702988478011673262788259618138529751330532031346376900266089431991708262990138440100660764095720925092478656672600166315527122651314445621347492499174535498258347321205879880152519751944626744632587396786165939124120621331976623745799814583751118655808367139099022167999033519490270297268132623976744606117298429340003447237087043409730501576207246601462940368550337201082776127482603609500937057450327188364243151894849472880878160856092847814795575503250482094037703566776305242303539671355979442963439283033155169811079104602704150668430262309002076463638207635943266023448676040773739480613448470077159545545391800673604658544161891893070663808838238719121322090270272173909083562557048795678955752446093244436973003110292738678394444205310545251993222040599365088329977576450136192428106592599944889955120827043313596065972248604463659674874889179565763925537922181238066049059814133733376809812154759680329136008336552205778881589261447628639815261536711081353604560991452556177688668618386504248590108702407969436172457658108597111111874493114796251919693550167405272474543829720238544806469864341492656912264876024024520525799646619328183075535652659100450187141724969542828081984080276467166975502387011746813074026378010697664982556519800961621565497798332126341895522129807174570552541522372151806664842408888750817568393891561379305946708298217918157278132119874252431846481769601509959692618535010541022506439554477417731357779131885090784027168522396108372983462205956482499238895341174834539578612919810020933073175367723532771980712254744971244368667620716233193412004434473518796697490810699099418995025552758976780450384620078767237274267351340562481761247591807821259727484651003816349952740072461068000381584790355974416098601481649074000388917781168679564050562282327822631699228971549465979184840505415564363760182661300302206808096466730684878181261008017725128654938327911455036948884498441720104231109834699556649887457774852830889159788491754335548028685236195163318603250742502966984086450168774759330161083924563612711225076758010291097711200294758679932158618327453284942444326458013699476481541009383023112397421761634120503101847073337447437275565855901258343546099625086505515235628049580408371777372420327506407039166261703160242324448181336568663901842503548028609501315501518043372308783972273489371898345242281401509683168622169490227061811186184994050405676037841150794166731390023866702210158363986782910303465426454674627429431080421216022885096252309290699925866057558427328885071721481394631602971438297928501704448280790932912062606608481486384986110351627575717063973217283577217901345288517672265335092117718684796409419436004095005779675575691165969454580358052310476731284354466754824711267225315369370798380696005638289269579775242626690447338678899817211552898977845796187143469393193509575836263747078927853140851730349515795012745193371978995152169684137400979592014115472946144277513090854307998905442096075652767354982193569583623362859931530908716644068733044320615576882819215799684980308612763508237978596848288590906735267187060883956533507168691536791691496717186930592072647015964691262327760528557098783732698698406295492625063611647383780619622146690018507052029115981134706859500438644079613205738709229966828273412868435744705450868943676006083170114234255528067960983239572045831795666263264801334193667764038759051227036458069234692934849678338579356538731883974238078466225934657179658541171164327166924947821219262271802109292945706450701289131774213809934257020306201194322460776453803688842763939725397420584661028826689044441873687452328206708357635337012414720760322334389846453454935679700357198499224851712638372453468548801974221464885006682864342904777842206814390458862241942942927240487603887369852706350791587067410444936763113717401300755826517713326294233955497509312704272381073858174508233290456089972266910238986724113396048662408763872889474203008907849771365277145398329145446629671387534291299809416117696002710725807985131299412729322073896646839994439647007524303918980799667006796040467672380854150671573836795310314221990664017373429008854881459211562040760727013740742840470516330137284089720640230253590920821987059965705963686914051688515340233191994391513896825185450746591740425141723330547358918303352607114284552406698459411403497622084123179449611191575728806247103092699770811967446115291749042292256044743210260948685901234386458718981248504402455762527956662436894241361682848172095839643170214517760390356466630502702272448479751351990783097090751916390429746764596331588305646141215805780908601047154619032615319639947857091642536872700865262144593550314489577356426924618439816975808147332186124777202630253604031748247376625663629772397813908895326899348642367528252452007214452186070227339020272564746937895243489908217911924060132410167300952734237700711291470954507880003922986771985812783242657836509490326850989449973603981170647557797668588502851175724607597850870821885044688155553210982830178764632612439890970517705742408377645464407099637673168817042185831994612241450205952685443759312233352813868022920907569431704526128864541066438012676003814321021921162613511437131918275561491081543530337332665106013345403729653193941046476546150054172795099471593306634340769210030185570511060902977379660070241318449790017324869018600315357082326482652954907211561010456001879332415002997572551134382664512617893893417125873936661769237344653642509650218255022579887347855746839746722085676171471669208479179366921302025951387519244457397145538790042208353754639252077537385848534440495382817580747874963980335049906636302671710700259741581911994914471635036752851486498898663633196757197082977317139796400717969536200239023954187523170712367599488976338237653045064290801383183472331665499131268893052346659044553951763766501305207812986038569475535085488343032419177954475066597103933787379570870265626069503071628926662705837236864375104679401868847127033353787866059890518494487376278913879262522375983347635247673390390430959619370407810587956008716550830155702261744766565420873815003576736966423541781782340379919930037774072937422061098685756755097347309045922902778142537326974735581409359024427714731439007383096047582703646119585406165777987834046655468767086544640875609212605573040498423697591432539707183287608496587307283629783614544153910088600643068484169876340034417692044769964654466275075281906673663327235044165560090860423883775904552409467713637106264653193909356942153507240963890228111995058293337473516691172821913397259888875021010454565298894445824005518102934972105532488199498563792091035186116712294920653668055727927627464216145246421654870706975130992737911959955355559625124861440133139688068012619316066867310128500572081140589738720727150215927966140581029116663820962141204239635517655196094495170127804047373232555937846923792315905932273081820971152164149077461732033718499630531235308851749353116341814450231788678559460607467437882562907917613880764974160728491411828457580585631148566500253948896411261751597374146291299956462243692094513521043567636622728438530469194721417318456253884070659489207884965794024489770344027123306984959324013757622499186058456256495211992944357073577781810715517147949914846483941571046365904426411516598506719741695640875917006595465826965365077768019338490496758881394987470367884082169014280136395432549658304867336804131561593730785967759665654768757773269825006013503102216516683069923634860778098069627042494268024414502570990347493029803906287142970801236016051769339661864663074333444810424398596349587098092616820063713749255468714661876257932440907762996064920188268025906499692071576897935197684833752080955381252294514272941122389829869367373807773587519533039891579686927151260064825408384593119289961473345683308873815728268286644942963127652493455218092549950695320473047044042474670583755774487047530390818101451265634951736725941709793523346768427724106157077136839147426817947899956130046733718425793580884185585009360103985653368254603824503506927100328867318729719608916403655293868364190106984584130182390877738409907712431138828549175626530736050246616122770485763135861269349826097459719731283747749636568762503697657112124608809446150663872414867658486335141651323197336866757972242893182296820545949818398041942368225738640578225775611942629470655441743085014592993974240084809555633452857468771452650694994994921755248315700268642734018393356716178654331955999862660703236955746225606242635642843762425851827609286852424619472140440651727206895916973217825026086256586952555981966309521457846965696669281466424669204212082909370184325942386614776392823794647808585291807868001236697097499027126329686564600504321169191760442211760038973498984846320337620910360438256365783781790887584163132858570659716917360830499258681665492532665790464566759780336316133444520400431150120170878237758511907340838908293712747152856225998893877908425853284010212145582386730100312738195794047618212104452169202520106386027381886307589207722245643786740895394211645037983543685828844695379195752415272560425739707787660707059585969427408028033132703492302630746998852518101593026178830458689415057687446715709599775957603333541165772773797574523906755467448070235441926577758080103180131834687063424792010647438246477290592901132290204498727667620930469916943646969915117714374492926126138220287079631569068081502625373019904051675495605407359756057623030743919886967445641766135592852729379285543153970139096024389391853759584747086884000519988534903343291696892605005428649728469780930983731244672647645861640816551511132068918276167333680655132054492141809037099424897670908669307954050750862220126318550343793346630473683500388921457504739777128359074933598109974272615576855669405067275091786258090512791255703634067733363834914600136702965539576968634278233727539651264312459932889928083617097841958737938129604298031256047989524107459075726952421015052217974354005137175391352974401623318166738725864434293841962592123525746948295840583506962504819095721962719223009982293819789089478450435924194759725022400759612801846557974879454130514896865174577428396077371226895529690242503854859750672013278944853266516755476087838435739830549764799334049333814582794296071535950804094294099783267493621678873323232183777227587947401776679794885596211950579470969293285285721215040826293485826817023409888064946197195718825763065803110424346423952118177001712758140167616673444083367914486432665246561208206974917357312803499927071387289657372586855799912472203156960119340832594779182337090396546697665557762496474271333998374665714466312591435833347282968866820337183077096792087531678911694289886887858797222512138936454376046522739394221836819529966807308959381248445321759611371139283806029316694260304530195700528350733453831706630384148530590249773322423421902959392046658477628698725460155007078011259215371688297413965397910573669212478104375285635685014823539828032368507832778635192891697789049519269309832165535447134999475563617053989930241184238863829903317795991495879536669104321766600962622176949890838800370987109667302919134078588895417765118929541199969780433522090018466756944363467883971512512286205545982692625393644954410027003721408447728237347470045025092328805198023996754172610661152131334793326187793680792425086039123649545795544721290592740850811574878011707034032559654357357133143125005294557382055834555228020612796963284148398687541940138682418447213659254448889685769647329530700271115956073830608470647684509406581352825676150630785608097526194275369512178714524274117898281087815710014641341591642526207499162992243752551643356950471057709361064625829515094718618982289068097893888666859091446683183185314244899029942908532427130407919315631307319652833346586551315552968421395907181487860364168613094203895279303763826982569437562451157932230451681985459605533540762097284951820799216572574177974713139195130858649299027806314218732815545778801794491292916903516396615224091809390148341550099604818606321126331779754758221203140132811713912172824468983544310476362993339275590985106519103164159867799860193040527344176722866099168190574066559562888537537043189540113116352941026226440547372287007359592027298608188636847359392053659341206840694859594302388381193720091564268456985021065429839143044890885703743972171851671243196455447022436019715644746330069194666656070691685078319071296037854446721050813919227498225276785665067462022949231976245462299497711016475522966619505847573876438516842974973816374643678169959475048591045050234624293736504484967130939558574848051084914073387387478087993313907575790869823777120464236401697395224756208416196518818687971542693179757084941221830494003287067311259441546709665913343070848330583426124402220905690263881104162543525610920897396678919735060011042323917473058318366128104720872130252467188315641362237125116238758368306263071007417162454509912184551181434181316115184519699204915452975772997721063328164087726873486092519241930261370716120111724365393950020297798970260603523286894570165566242839740477951663649311601494360018820439563362623573385938438150371258916656967534028623198350476799827296961497832265514135993897812032907419451474159885105450575314776555270598299672249567835468390328067786701735724173443278646575778607093230081435968237597741676807335343965905490380667597003430223188068518984233381747991939125906510529030699784866641335004411156196958417577777262593269841803140677021634756894891841125415547860815591318887697808861064387664266042204122505047944882847747438029316537533041931826021243143216359109917461488445524055391937401183406072860523584976406542245538314569329784733188864721848546972938283458772254388456531347881495685667606236391522690357378096591674520894335736691501797560670522553010503760551857402562377816710908694326816818878480543843105621143046477489975752662444157613203322042373297259510997147576499044332696043810744918855652267113061475901183693673039354759477237606226277690771541497538729807493837884532872032628354226392933126662074544887881745702257968015659036823105342094742997334829517584729911081139336663916791096223793741325642283889539653789385129072536439270445290771163928587788493363185955852518435527724409760057248855772478138717984603363867589905821207660216467885263867214703111169563211140987491235919366341936986542561119669097865225911247481297350926583329529183365532231255545425620521807403469164246473122903461047300751695816872409314625570693124854764097662833429462335624255860166525523338790800742463925376371404863738979182444100248077021153181144476112802595158938264456244801411484735698752686930187063750560716239926416955823771645920356151456235197471215545687963090984765117126887886879849749152555464527063686436343405565645180148810934355798963395242191680054383937385089060741539357244296225493743397662913944107973645558283000916543487235699097153656065091901082486905760888077593187380998145850695981567364795867080954336082685105521000901386344804849733596496593716192831014003386936556885839403548077917774247227910014988100750350009568255837638107655954777955669472191400162257428233280852260262901266927975597493229763185420060828983633450680654187868224173714907003581022070013884084385741041544890243885954272377463716431038739340955104633791935695429623958542920687671155875527072679503029088284549703299861435163177548530394445672775011680150637701562282779504497358850476522372383070065178758982132369812558160159933798407695960532565351201935771390861710345435038223090576097068920418637040850549524509888775365200808765023487577816325620099110072826317183913209029587906697992002173339919151071702008040383951577235722517526645158532422299954881779064267733739935702823009476616969949100567939864769682484069039849085647449256626073941861874583141845395544483118688035634290619712359407702583913624008607403108134122577442634124850962764913241753957049808094332768876648876730068978599688322801608740260985252981609461544918738483227300762884530841744723014797408710900405941058806124221918497475638057575522513486349329594458568129413369455254464961904267724506850512562330823454017726678899402163968594906265400241018859484936664039121320133043969285380024987390779311889977326090151528751555050521626590870851250597401989246263524626510591936600396393099882689973039108669020057831693154539622289659015678106223239374874977250564141457508510814763818828201427535876406953004206491958927860383988891335772612039443101698524996927304848296055096336043895202500360170117241125764315117349729221829199596681308935066449925219045099844203987593290907734637300426133911131831903615286373841319883480611860200730133578619088853854307823907819916273884874748398177606493486644991456492221256805487989909072039449777281862150941033671885353411565052730128730674861058214960220915112675317825281031822979269400297643120772776841860738881915506091339051979089453015917390585874153599871534471010218888725755058342057630070370345838754520287158188816858621463526746755655379037032146193453951374011919818637504518362465680137675866334761961906858109493466957861537756403056538766992115792352424972498027807455680345907190176750872823629579910627610223413894090642304841541671190278572282593282075296552065140290846658465083668532962743385911011264502926315524869374123993400573508695027272420411208128723879122918070532370987083919503373976701876201574272922845946959417055306831013438721565967941647918707806904055695448899735783026747042720300040687754271797588213011004643735827993284178119368954914490642330322196683956584089353712979524391557707523631720885446697924933951980990491260289539604012698306334962473084092486343759389144329107621644754720825231993485816672866785487363691338617966164222087725505209606384557921929359102793759931177050004641144124236305569825619305277361386732623227907495999961735961149130936694382937528374910501667506697727043923532999111021647418135199020337090085799972889773910165702421283355158233665860932232118276144990644947018203722021219101575298788398068465444150454771257098753612939036396466148761256228856309600464664620187444277881265932662959549942346058716788036070927503919597575208750395735997251831058671752225904906045638627085181990731018333433933111493499423824342601040868705434363338308477149821674235042416793173361699951413370422149763732990339743622941215364698829345694491444488434746691219361764384897749690020956660831415965474463833810477453940167682482648364537487256996305659075880141050518954767330600564133314130743465546778910061531508562395217397040763899626935386454391066567429200798830124016787946295775993279683316174910558714491366789509657487467041050020439935510816280437261894037582855929140862747540230230079137377491676571264579318053097094142214416848551505695703871142297657174639177389603845213714508187990806503199892309099308057638205106617607140976161970165600105006564084793815506097373719367806628430040064453041398714668865561105175464371462795477784051851109017549119419053171038437525129874312173794316004931734209156561631305649156157860167889854733254802434130751800126605503568588320773784260430702765601880512518070299670173980564338630121528423398542799147588719404239738017946238972616222365965625148684262244728734855564987235407249690910062817675239740551087806501938170462644830375582986303907903785649506791894705816009143872974317692491652550586050006318778287546928377035184538921951446069704272278677696846310778199793260913320088896158566143027877377770355853251864361139566714818670114720443771948591832820290337688048260864773220913038536352684293326867860184444773764379428097292813361721419260341903135483206090457836182040167683619745820954477835105513415083733892607682753506510050663825874933795556868392825968744159538171793845307201712699214921129973591683791375375360218153857270908916202414093194285786802329937654679643941716403296227268446487204530243800108706420645672019860835285105445700594502294862459933905855925855439580666847036463894446098749911402522535369968067438720920471447110099889428749665532507108812875359505996827216782809059082393452305659263147674290129638313243334570826622447486216963616286397372543276999953098742002129773979290875126438319378813251140191599868028519979004521642529099462876711163514203079497647879319103732797769931840159342376761861567331571662243155388002221504959895740653192458278045590534598282316611430544773689250372645313969707156860031041702779077912731301541401918170775179824314364332228385782613055429923664966082677264728321261106651749969075843423114572622448669700507140996159051808313536730296863618080295341409065165833699236632035461230321095359537852483083379861842664741685537569848740387238106169844780805400042961531865781973709918412876471651650271736456416995153476484085804784250789466675866671375150175091466136505076434881934347346091574614051313441971920554852039512314523526387058369237069388086010213805721235293356604636037362670346529275948637928828925650780500329944016249844368749133931059599761588561067728219954540073811594027600538943824706617520111743066224733829849459419265384447278708180549153114718282117401142392514458570981835803929636703904463265350517301019949674397345231494563193872885535489768246854356440832058838500322610566127749137423880712111768729471970714065123800669852406151892890961854498623368027273500290885022877128349974294885546322657286611749212369205470251399744780434921580103945570892802036711612085109394623421118607609002706492443594486509584576759430222159774918634906423641549944412204228765810683961029051476090792070782420299279335162040861771401979352961051596607469572503072254369097767682840770406868972574639362692605425186444844914984266537121933906068319850255015154681518572617187765971538249380151243771695538335967632903949266563882739075769787766666440714930081227135890567331723221891929445446509072181489206829010086560372506370097057427782048811283697306519493421031936892876196365903677063933698692361733997702034749151144451791136185755372101281965548255838965901071720428824986600663707355743092572844370907708047337274696316016779389919501022244091526926313526400954184481038954990938033448391306727703246673830558387545781616353955861971957448672760009587418715328831969690132480550067227949339614962107442160671807859525092366371256912046134718516967013462524396890423187706554879645494395842459191675428209934145727357002317543161715478798201726016996209360310327771654171940382542137719579182460199076146750113888542670408071682637058147175451243544294772558382875550256010619758501607472281078307451577179869983834564472508105202671908066292764314667647042330263317225227351108527112224116353633303208023072869856311035231952161077833711972529283622596473614024839802552619380589897628166441743948140288734658774865799132244193749455549737910081713882716541554440060495224538244425179460452476828152138707410383113793932718275834795157286870253681865438517615787014810480915989505621887962527292996075050305453882179878175411673371891085031568701342283620983870808710587837624548301665798451612565661715356230897534812118692284099427352920790507815352273102791789542863614059083114868520986017258870225338665731348302074913642040640592045702343722477041588383550969502969411816190802225815832100666899685370062858877386117173085468940557214113720355988128527876366380802112014765500972171930548982739403477739758812908920770652659194025384523424467133488682628435838505429721918690116250408852734242478577187941946488016129085502705442857974708889405400152885678342508412484465053035530145969518156028493844036534252575718387843870141516952815290831688114196696743508530329682716381060660713548603593494087958472584049055719511735630210800591522048190427468582651669547677673651098373063387336641080953862452569188235887843609392243925039797160216823188346016197245971041570595566091489197135409486565506727641072789593002821032550076670841499522256654626495298461466437017812380807338137885261212266740184851455883235240750044806251609238824099150760888276303565992750795019167514844460639000268262799114346528238245105288296568348064006692860849849404901012632749706838697712302020464756374083690705905224485252262186437672148667717638520561094387408279556726671866748902910657307399771726392705047880922585676144951057614148267532032403711100942220108398492026995137610752562548872294387231709907799562387963450856016372096712381864634487657789494581758508008289756435507611375454526710494067579947255932054729431354212313406803634168186201002018122630445290316639192083354688748790921043885118192023870825972211918475516395269846777600942946595141212295261483683591733557688457914160602132582704123188878732642438583637856390327954467391232667743303150097119020989498535639438182467182187449069991021146517041956963756233192477160724936419662402941568968841766630263805127841817358389230679413786198633495215608676941322349434982392803681068551877932403739866373895954661458316898865028080045732349606994044473557815373095457799321204340278742019223149378479895791237657628292271639602474241330855412872764469467826310383665236918854999048044023919712738920894961967084325581321909462488827636063633534875394293539745793534773358200838365498855744412321424854563882477737848726318712681164975805294621412214595520483808649116785144714419709197963967695069607560411009623188294753101521171468224449357023267025505628734689926049238843483274416568841815147265177608197548706034580336539765873647565237982071332738244736107143711833197037359227835347917503109064864658511297440645145269981589532882983576559275975986848959055245462606446678357905617609606258553485336908528103352719163672399846801176555531247079267793932891916677335646775003153173731058118937182816503017277835518011137809565800004265436251709757362446817532034252985282803121918088971593974945699246508912531380781867575474743631676195909930698055254153455355790969066289405882782820305193935437797537546520477592962802017813160948965708087286494468578294600662891270441860663644623363167068889320082079549942309956730189433107917168431841574465486298903620532285745679358207098850231370740916375937185469884443189194156378746035955588973203220313655020114528605856859934399426919685206764677021997727863256259196062416130514614134752553303052625818547672519715094095634335682291426891566346542181513515769449607559111503613677442995988555994510612367779323740370857278320333215713902825179824484717958719276357931611670161934217851116587838276642098704771861463409233146328790519712372413640065718537156629705420499795028372206841181966269723844821673641410666139277219420501270189786051418309260456684283578214079401451731914096711312236108653425517866595797998768577247926668702477216406598465642983036433364850912229426290366553148861261974424662316609749627249307768396697258200936009574060842201379267600764434801126871977091106087065268732921041045799856193424207679353250044190295238037436262833877220897691937329192274903418965305474048044854474073743037893714781948997299038452327522451673041814959539220925419829994922706594372264847519345557841792221496605590868140425808449003668997963258675098740726001638549417712082616187224969267342699071987782856244075555046549637031287269795313544271205215840304448895069308804833293883918591618415368338622179263872842207181778242435341467891574663735559835376900329915888962349442649567418440654102311365246524348130459301578601951732487670969997405632085101486913069808138616304298585233234403343311870347066469536565252967168087157925119524208557979430889810264558307026617869956723741484923623600348350594714215977705187941077608411793217771700492470964368395181839277979807637059047671842790650453092108405069041607961926164496413135066764297243021639199573814937048165612028648494485894984909780559057700056650348476855766020472752979188762895976211464815337430483293624917446441323003167871272993429665550317624961160609101149483739319524997667569812473221011434576978233984087282443354137048798651673488929202369758033197268426185267800964658139718902056568451329568009199003016861874563154027854388404185629755362506534861449483333953738399349343658551105511400942818068349493923844664525412345856507700966696821532773645923570494080405391790575291702557878979099253139253576808399902539681121181469322858051776656656760869429578916372250707637560152013437101997303219081253597374845416561575518798845606528701566229139434110127287281443390588950139643675620685151114285872154513402060172815964422247203856510288650220929451369044384730703106780612208674343719161650098038116909655714139184518029213446095807248246089370264809525302616235532880406374098206226937603216928483704651690555530255410003730164097695714159072779723742054987824942319436136106235013121852919738246366285157951203253204722916256295549874280789170288687774796861507153143509462811311909834393610023049110947132252188757858251631645225169895828371285108953266902453055046269887414949410803239263201326921026431590855597955126671647418443768983878891178286142504722745551407045541277673221444815649123324835939424838043139476185762062730234186611872318656272155618957306576856868442379031350322620017089063250063233712043018370125239700080490431337504159548621265438412727510110290563986901136701048164068601295843927920240536238748613581100916404750393606212725770700655941997328408746984257223065065072748244544538217773565147322403848807301879183356784982109825872695124802802398480723959034112746191018795275646764424382620527602811566581192235303386668689522803644153665362712356191346439539852162085920469108875896727352658343362493341472353979518226635983881009862663760191986625340737477028279290752378422245141367782812987246259801745379621009906311084252131032045570415878546132345687084611156118042666780239865467881021823537097082598764199575939834078052436126579833439984715363685978984354250596878887423400935792374588437443231968727485290705409556588246158241758366506712012635684257451995987711576756479545372214230676288485742224049303262204391078732020390537222669158552083965564519651707819517131890599709310158615284317295971298942470519499806423166205502508202530109079685326305733541804234979708635167164629242742901821648572265700137435631850861828911840126316727260368621996825937557710951464644902000357619112438171416489826811445833215243419580575369252027716413118460051868345125736534202369101832817020117551011807682921311917012300902270148554982660655221962443345501339928487856372637992009571179196656836197297173784085903886814248849464054684584494953489444567765918464312958068875920814917113916459144973280503181522505121058091225360169890800312301043572147144938057726029723957702470324027311206377417309554380363390486658902742000675064214584547175076111066248704759967371236017024227063095771606645737226916063589724260303541687248384222869351183355832564680860464508590534702079746786807345546155590183231325649368403291635346578709774233250838055845889948105002453251307917242031799186412802635591412437428871799490532494093885343707967773636048017431771905972848048759772065158872380323351718153652425323084775866707948601124253653298051715652923595682554854891029802400236299875926867808252277155659663990772970274200585915607633866216537529422912980422432648900272987000920224202496226038387432479291321587724951272235605632370151234773001026662310350109067177747026509765393224516130696178565860055313625366742601238329741845185810720124600179939134321358651389339598439180049842511236488948344896422867921134364683741011885828274909127611979439413649254009735789634409925650013935114704425879696577193978648703043352609441434091911640535949572640756705382405624871931304619612543829635626635921539023014917364011112188299979368236718609567877631697016139408241974553554466944101108066605969254048482337298747971105110058481727584302128978626015731802996185492078511371245388368513129895730784418719533631185621888143218396175488798377932548389189731813414154186033033581421525972843199441253760348010401534906568127029511652741168844241362780535464391275426095423966114445931582400545911451264512401916267464876900115267998415627585197430261127068835947678181139022886319534732987444442122321711603733186045689489637920659157943751943430642730634159199068310450271054815030122494768963151826004733367158868627978258417617668189847009973193667667584562332415502804203572810092488306507294922954757210208234410550749666526016190351296274290230528353646820968767854869389636498756648409097825565785105885282369831648335266306820567935168355402908282447252223446121787713169096640269316589994935529206351383679641185098153081530528518417408265148199521814313245133022493299293616781140989199347889501330155951051818907409250892142717392788922584251251073544680512838253705797668894217796749888988861204199491184673284321641765065186753553161791303798584021095928645309950938625648234799563741289724800540830917440267719570557551921185433665178548227234474037910818317309617700243509889359583129407175828074856004268791375193148400603701628473573617033739975740845475034854483315578622491964864936903282181123745586604429264596844712311482873225674207934050579457390752583947937548843075337329859499290637344155492674081274411578436068261839577679171707209166977753358897377061272081418826574666582859643196955289956718544123638869399576707357498527514961605807755983522264976227528736117751361298225165702728825127807993852355850846889975757453315227922779970929373703577774724633362718788624445955245860394973619319596174849864000785145810164039946805951962970226126146972059600405841487018462408928858385136761450927703463722484241035323010257322679931221372209954081956368079303936423758147559785800889696770935664477084308083361117070128225010565465338573395532908723745716351591646982482134800916350280508302240776152333291551031545712624793528033554728846165697911328345468626664822851906605030694810873348201755603684375454910548919438297501984645066400538399967933193267411979115495835872172679958015553362382995047473514605271697306129646533730781356495831424886312607050337784600169582517284521596532137862043437009333131765016939995214229699967483317373200686800944311466998719572246691531928346215653584042304497246640511167592415714915864437213529422296804899399912213705206472219456862535694478678790232026429283796846598323462494357783624917585738201790527331988365768895618687196535563139125665364445476281117842489485036622023734051544406764564175110410342063814758022022234352503853551882681961266642214615175947517378557257644431777083066078022524547668467796081475372094763388271454424367373140518871369228730926369951284749494561236224937993496117660820886750270591018731015645783092951448475579510872751308554732838550665737694243085942889581189459164805614014703743984510722180598511972654337839861100057911172209925930809977748682319240386358186770750843898001185853053371286306138488082479194002672127998499380723180452503341291438721365932677952501664826893842121123126692223653426525824657696412550108713842081737262425170535298431648775386445793306931271874306552523124906866997905643789513953137229099099133663357662578801664304751947053372586138725578212046968086262189501001638718449783485892683152275772432535199959920741599297252108851293682957717978742492165644733006111238253732929822147829305675461273605948364218206036864521640907336374901658721340087401511749011765234023938193571971567968619817765220895794201212797073807099590821503970473371631596763912646187172088475703262178015205436504827497363901700218650577835813606627177668770533698631240802023313411603456675763249270489146929431708908435663807427229698440570011959141734392848645579540969246835352562726579425197266499044650571849882024795722551128447600910524704915945283787796374285964937724415167039886285097509975850636823351944461261099690146957446356356723477153991569089410297300461406502450972371564600002180031871077587109843560500915621851236318644576332193484134222560424980000890567196042257115311402628262514832084534280844231896384327703486734061197670554991865664061939848874494362865848768136025561139189102903080215332163892755888182742403623048242878221785198998921871350143328527076028410072246133226242934768589831807166655424236385546162390570159168137301081782474636004237281365724664291542604167218982571621880658318219615260290627329790530837610098047924035656123526842538231809499069845010861035538227998576414409243297175880157475397629466210321646085309970503176778669281123609638014940677370654815279861702713815242013082546053490918735674469327619767693840719001411174639224490208094957849096155957745558329852841639828338793291138312356298654541668655106274683856254888078921003576495074020811407020948339070217445186303216958237815986884680354743211877589785917581053279062407869597665056202451164815316804472895466277436892308101126943113267295877543761160313210536785404107089981647411040994125693237171320345594070649297190767855557448053381662692383127159097716305284678291729359913264959584916595391511703794605410388917571787361988130958342203733406802410690229618348847261420647229153981670020865620350022153108075843436091300807447655909049153980978649992065176352524521067323575761807331448591620640307956278972614806826452834355014186854431062072242469359846580851377860690535519403020222210063119524587009990238332820624465365525355368411556025535032149728511792013763715565897163401139946384445258776639729306116664323766867505203548756875844914773008110914878388547022375364886181329597912760913866738464499301105550250233253326912137491894458260947639624932226822258196627955545291486252627378666933144579125983868880874130622015659207909304080722625300365939633678741790887942463856185748176813703906882367167284102693626608792204206967119580923663070736548352297009406537495922803184687724001571051046284637871929228766002446017328450294383118066295677690993025880456958018016219043548079505164590733885471195055746196816686942612716680787550232358053620679325764520175238008221910997350409558468724911628147084614847612247682027845011282381804653046160893278446088934573011013789880200186337055529204987934006219936984482033251538348419996235500873182032639007025202175189012803948199159067798051122399881390213238933996630649426681711265903804710714669878113123993651386683055169641355284211169976610246635417072322524836036774460223743144303270738014119487256861852671073640266848085764653537859534228140534503295600092638237719497432778531396622515265445665418773201728836183521641049370907789124534642846876565777568193776598937595735191623197997841295615981317228834233226458830948641279220723103398809908961408486817620818706946383495695067005339688281224512539079929878645733925548749086521283357404384126767216551839303792830264186647331293565561197732609150722297632181680243915695514930493113166983672052078743007922522973443213215798021590225854778176958260396769980734733696492204410481569964192596252658745076666066002415324511891932143256904804200691705991677438924893295100523895044846744285756141561500444637233615885685277722484871734143211055385340793423682569975355138996027577210610554340958783019906767229140689463484598696960808226833566372208151088678539045165771450917717274612421798971045262720379931189798589045859292878816479089800249361220587712749591353754979487456813134428056705208931467433050283681178354449283555818176219381764145171904273495355596093688935535672271970270899684586958532623725230593695133041824257808148609910868769561004698893224701082928172908330701035253001468457160293398087617104284251559351188145494268354039810681656194135747653628729961797170258289687849967000889318112947454066824007229128619631038870226642346987729108359195820727662405742674254569257227986378135819159254036162689397072574638457768776074548581686850267212519445880953602543485449381856459469894285948700742516239021111491706357436914842845781321715670361800469249586916978951586400965565994223794538255191291880886042878648052479053788065803274889936887487833616026286149325665232891392274801700864145705450845544001356637679388788997758441374273338745228971308567769594640028357034206317303630085068849014348708411720114353386544468001982947405057987101006544062605968841531315086665524258616727200872374773198276704177124463969091258436903175983966884644622241713800964356264791895430227394626081032069359469923446272808924485030826058457961823245128142706398885540236717728559123849068996689039663655273561445645548714484287667718154134231966490000552537407681205743718160160926779320388700501152584782364279409308659896933128921423402355226359303204636791138071495362753865366210500247295758080243951075418446797887785319246830290632432761133479291955204185080795120561086500205091199869492289704126576306127991710857428595418572970220584259426104137096640281478142096929258809352725652007606922680643129311459559834963723586931633509076225859516827948726057946521335643359518630427739234739039719554771480942552924908571997899454621774079159756849285439864085797304647167155653267531371671335762164626362242159997180395773747823158357668144575640187222255881813861928697572824596661853128242157853473781450061241039400804109302675173664962466878238695072043668407613204407824318453070383068397277085794576162844741786491940901407411067972679269216968465424617812362254822903462901785202928639050558934581766266452988129233569500747894168894290974258441927872019917712197257623209310826521398381058271174296104137213515836487224744093074775343945160064894640485130878082143855734441736208158674647945289957093171072024033844767963514003332878778214870995012537603892394594027988682426944306091353422887386817193568976774935146918721867258929261784297825196017870718989129218798848757702447898127315658463267108259689899714319656322266042867861030693220485741926454015644747169091985453258728262256869803480054859278234321185764609875633961252465413433493664018617571763122865804047889441161868935383761682900998530071969349448007368768969974504757571796844528991945676859315025807028482628138165927642552838819958153738898229230837873719761303284392319173105109585424702543022866762866177982967415857552295293026439267084283896194191052660265813817664410217033799738090834786804205513910355410640675648672044736313852433099799814703282547684980283178158093625659274396404651092184599539586857938599630509158409603721371798456573475727823951174708848799978487034286949837625086271907296098099531642721039358348712916641076937103689504743913543139572289491374862244242964680964602716631992208608201390514469853264853939631982019414456714820032866078038879607293090317183820060764439085791426597969720257304448390442549842451774317102221647847465950978541481731137109170561668925204711805676303016952873175814624972060645768359423483425865267753440090550021814543244695813321993482835993780884364320480048466961026553894283064195348691647534377464924222609435410791805972432727363757621460095190329494700930477998894005407271001816263827635424963968156755615000865934295537946462954822602854274461996002797708632371513356816707856395357290125340842435693481620909948302160927712613907775011431580971497142068509541086848257575531641737218637938096519954977308701482717362453920983333402757701000572616321823683835427712647278145706494494410694178275465659978147008004551135831912332641540975752009093149618808090352075745086101729223801165876332023421660967047315779798969634370622236439264310630770399571539619587534571278588396023099764244656712173086059821089995629662940788513384713947829790470493163919272020237220707011810720430456036189973216582461286702262646736752651567965007163974852861012781997169483885896735577687030827599188928063462134293115256075913149471463427902733213237239554430374498633186767337489112021799520644658905548260083322646329203961022778546028731713374822495126899800951333128299080970297012519820220345730459896445796615225211352554762581466016741688405694420918619560932526060993354654801259908663761597014596682492581572123905984329391130805024470500555615528348439398378553261373359455817232411085348266286781113776347924257427311346195028343249639816863031493560498627708642724236747122987251232260034082155812838141060484751058675701794609899718864403054950323153140670019808231381186496483274771486503012279301145415253613795760436381287946683610096568543159143082392334666246752522255727590951214776806131863623126529623077676176517996695202183670782429616800358855167334170852603720159444834425564119783077904706971286129276721205338707255282265210226551808715942263388155804620113987058699721266207230719036291826810817165779702531457159790607957933180955889783532907654650099928641937025664044545702760318329794847133700646121715205481936494233264531678987102090801173907388983637627666703425135960497219596502964558445637700826411276713115701273442162224677102666037607726898386940843163675859500348697240267117396255955595554362940984439214144115218027467934817147851756595606109562715563087942622351883895341451377354583464007386946857310171036266687162235604554827167266816526062213759689447464345135517504991476285781607998193704955059737634182478668912127352851264418042604276992431419898912646061639802564156835544713887460707218237784251102044846920095200552990175192195470856494828039104819520686746707811773157480408809038947093760317888538143965641188808714303051885060690893237400869678873822150568928037329160745349889104895248238856442554587320192905110758634696843520292477237751669241416913804264765009638958384935421287115189736624185247911377496779822436141197624642559385583067674940666611173321374152724986258285521355927410518523532920211919939232592543541088995069761031685675451441572919866688791967386806453845904756667902918341228103540345466252889854225913193689953011561758345687233685557605272806940044150612735536138740257348327327422387873886633249550481240947119602936301852950254658177512646475632244369207746768880209829952072079506758226221008935445954214810944173706830020164052895761664184395483783490801426488674057410306461340837669769982844583272456345923566715473469134671213948088618161540638311192300349595173002446719625822710944878803005161441281685523306897780219104681200896456518699077451688354824396280124555418611752833545483291618300898854559193878139236470079462701644640849016608605002842306917070447156311483686807789532339263235789285766019678385701716259157791228381114936320411405622478240310310885097132695198313321244204204014308453363298505159946981201235833431864666409887537574895685998402975544899749235888166414372829701913354919548855036154545424625537728882817211586296379653170247450869512145220033848429820591372872002554116179595900816204864126948117945394768828061492127275137456360151441266679644770529500067528512356165796000217934069859250344740504976735435178496245262694096722321665676586552833524456294945388856145484982973822095405418426299281938001453303299009341028242261370377074698999903877789422263142627916380352497180643444800669732146921982687035908404031524460777287650013985626445342629223849639769542103115486591042210014956422267481765408346533043102407664401758299610392117493996565211745166287965337847339106300417645413932776104956014962358738056980077963715550615419602994297817556350071453229599815269922589116681098694857942161190647579115791826406705674836804568972622825849477109430929978001414546885712647652492851072217083868970309825329976754334571785848536498271162710411935291831162124531406565203874259315731046009806751387525692709695023769226555520348869930621723299597830124454224075531681572619069941915255396534863807165403202680309651724814363680205756737638438485829451851915662070411503840921941221706971582229993801682248320716729799646285526711163087675084560503011506318542860274304780428265298872851790036189023162686997162530642072277941095011812958866601143537936765438539008089201762002603932164927265791502051086618750028740683478486232768835015689657607937386708519378456659954408449292089481929490606437772925616905516504000790327106794804590379086368829562326844132467891240918738662467921137089984784908746391460088898408219839006436971821195040826138327706089203024850324266722641827967592266736765902176209109137362393507105736163191989651537731430945037429410102732527061758338758379160911243662318985861325343670779331984662125439246487741983278819334269144274421227592384955627396148918123145031933776100509718260515163960844878335104393272565525817812874217834838272403040962447299167300870984915369866116799111219971029333579748055209163622771477637748077213591022192993917117769147032964839210063279913459380822480574450333449500006806970407638327160310636425150785587707056985834892969454345225412084428757558886260753471349567390508577348658329374947386964438208762707545074297357880208305606738288419231183430925875188516353631440862410397388965716240963824763582331811249614247150788907673898173724572048732675644203123125682030596506090293084001801938701475789982128004783260238403927404034453666185179628189928273002103288082227725713910208392460418997735487328455342645487458417924864166735983093018212842608638110735661486411311230788127971328554941123157808375636322785751194628503595494554793226037165567770661008761713275123012038043244063723374149065840352855435333652136960002165717072095231976956213916981391061753492708132262955300627584606627514935481798561295185189026603667284626017719431677242263466668406791801571919317396242894128831687514356975632721491278090203900569663342223279610273216871289675536254602283537811539569539591994945360712421952961227945907255422147726324109801079746343938843737973783485969549604995184598836447826782146829466320862886219181910122554157299022310809733688506328787883195073879281417133103687128367357395059745437058373835130214344112298984730142414030728364330873955031909682217314866218913227587552222194256415811274076534737146232604414245921301690772114981163043759761642458021696759957799271897989595397760567739484697486192010158879239092908880511184151192737609974683662828264637458896707871862139790700669255630062781523668744379063316374266898504035137443837704377896392132808742237531591169999011178918115758022468188063151842866674692130819262015863818067549862536882438553569942757801041205036815875581311056941429458146587727524911221328169952775512056363575544400384887993320286199265643117816527698761783185243820693533199614531803241682921442601494260932423858801636534290235501158998760517372704120477768268271222323257058825050072345772156247273488200141738145510088711660354086275928385483579447338633329710583984946643005813819381915940329591009503942320867880977682941924321982497484601303901007637041503844297113582235041123041969629007155883397571909752449248698149055090721045004740548738912241634779574289313047268897659558524932600791833909673143040019083868216266677341185727238116005427331269602961118656939548847050298534254033544885206152815248051061219824133328373881446858866781199760000878429607834782444561457247457688322435168468580205356677104977160435027801572579100606837549065380446329489955653682762195294135112236091379842818107321966294662619272190176400737700385485810744723414379988725494525646489439413258798136920301153581304685558002970749628264180081394229024181839541908768755411102014592041969221032652993703190561367214520908951888934590150731242214669901406469859242321615852167116211376098030574651126815786359001649806938331873411228493103281319360090477578074927431728539962988575973373013890288964720998026557066900305779469533646832362053332810628498347730514206908365846704378998819174822294111559418836223437199699587677488447138605335202254384096060929334974058325515186571585044072973664989293812796220090568464368317277722491052402457953062594095944933492223031378313646846478268927623167521064189850431686207901590904870014150026607169560170516333026020887574913192315632646351343726830786477267929126499477078401675880666028456296823148443334391253465420463229852130851108785223018653700088315078337300390649387868582126613924489959968140484516056395123698948908875693354551925344897397463377080953752485684625109437726711671950237771583223242275622101692380416863119703485904908095785040685968552984646099370483390249486125762932123725948288781827628460506640195350527128194839641114009834643962108425847923055329925613826404863920009196700930893271176407959590589646585952564905437065666724445442096778916623503661289576893041037426444952416327089091015442683473770792147125129480890375586715970394648255903808629686059467172333427438687129222931524469665492075534153658820798077894350965552575632832146431239362480415548531481839278229836529760349741120102100471243549165727832153100331189946864380051885534767214200290028103152522447580712194050965330104642439191625256381582221932721331771837624169150538510170454762166560544491568960578040412152244097995442364563481511157325934698783708241316106604103686853781013472793019302744520286675522654858983100423116856022428329768443088912751218965902749433144822228881699140476700900703452889574815338420032953500589014625556958894599922289116324258524543334863068965583093612435242728044959569019601403559609470685448784093812420317431740286921678878107512644749527358844681018848395234562167620886296131886087111035910519920138381562180446872258986517429485986803229028368533930144485953434654242581474066422182006905426375343005079002895288683544785093139711273212757095942670465124224385129868685153987560502013324671155032348735355326939310558906570521716506826554120543765551538015838595464861594999919486520019483307106667012023975965724311768158759154993890214382486108887737967176459222228712153000766611200452151145050965128756262589443596155888460809007993281130725770138773484816215398581849895243315248602145449519834470383557208260534624569284570999681277142588654220949397540618250332981885041380753623295990860350944988674193108521249895179583441818358943269202722866449690859147073591262547980727923446900158219045751329403040964685663342310145564569605557183254596257423238421833468168264963301279532485112053064092395016018739346239220998301280508062714201778709032227978730378613015353441476206014005470988629689188889585980422053641175948571467755218288796068994329610367127632500203142402052588347987496943008914141364651407004731921436240585499828316060508193576617829660605078017263775106289560938550261321747046349931591795051897832842596583438281435825689417248127003545688274370782819185022978886053110210306302972038120154271663735852170844645807838731326960622910981022800086378358966252033053319827146506056474464042825152506755600340526684299201604258443524816229353608274311672027796430957453767519356814504727912776713330178742204967192357708369593520896865295448552835692107050750529371011778649358270944945263457553622532656073375606869153932274728059591748164817817969922780423190685693359975737883708960585533172522869748150346775155158556935143331200803330805382512949500079999013840670558607370848322776717101967827552656784814161721021085310271908028153246187869706282564280481796673536495463809298571312978892820163823712841458144727148913891726985093722964015864422918233722726027537342250552058603771849900391533773351807993406856269083783507706031967791445122107408939700407656156305810564074615873548177104192171109288590226569635260486255421823700921755450862047976469617187181035629523457709844291567273704513409837892968806515053767693217117054534710220550654274794741643573608219589701427802038002524912614526915780985662693808891042575390132247113686284108902818386600623793614779106004118617293546621086970054278436302907719781631527626036716163607369959793203334086352484427581208524039624134048472833369731109238975572252971137942664590196297277266159401619921330619842832609398910795322297435283267481942155271485140758818956613805363701242888872708393182518267287571351634693012107613622970644474148405465001566778736970810331131564097195306619712114735203542745636288663688312929566437106270071231373018753963067576125530022425635085967261963881418875299817015443790400076395858660485680283801736843155465608935338378511811700882765658433725858608011183428794601964131548008389630975643839086217644674985436180145359271065179719899573060515696867701654291293402492508402914105882201823486456323039708539931755108229143391836830224124645778939111386595340695581773214637400799487407784394306269436361429719596881805564708673061406773955645034461517699925379202652621072498778780605948099252659148896336330799612502041977625137317046240038210659826637587364332108693393911526657419934946983643535069415800920463212442805789028680936906730048339870895788889481304962433593920777108371814857014811342174816060973279827669373433170153497951495699469667365436575999619670835479907618832965267200906804383264615601368348892570462138819821230141126636744912502114700603559096234922799835132042460805562425701251112447697375854027865982180089428576332077726724037206680693948329392517961255693158967670596016354921165606936007992405483455111414142500382868170217241606729728730991840477263760530305623528593617132107134589951372140161027783927184290648850104512696913326434110923049665814005428245698758067702797417207811037953033254237568289242075195684050306362155694380489911972950109910066803301513571076279900050262680644185387052035155135089416581387548577686134498602719043734177628234187520007163498657189167106385316281840194482285856903288427958808637171274374119000920021727784052695312774834723428856146392824992770122816031502745872490747211528753990075472485507785437664842124833389417173079002204473805654222462328008692418590759828952346742385742083604610140572807670924751412506466421503325881700432837843416239654470625268274473204510558937654009808958170480494405024964677345785578494672617491621973498388101984416270603346533638692848901907936092028032090533911948536993975959375539329128500359696527537783511045917765605255002802773327357612770350130341512606800694013397280885007503383289945587054704739577764607070996338183896433262852430735340826556449618938995006163791980440556118144388290608978740391277799007107214678403145546480538716804712669708577725165622526875718993424635913392275167836995967663702035308179791354546842612788614491630242668350917459910372885085988508245115771405259125480155480057346803338337215820197074586275792441977860916707314559769716312004471730307235462012018610940416117676990458677983375667102943090539638981068673488165402452940890033554380875707873114951570098451934193491413892983507159598927077680180145214408069009645992832430846802855326809103134024262898680913920242906322113229029454317730066310801754798675622789149800310031635349344171155933126078531434869404280137310309505440537465918322132804388217989869655170713551844045182503242100711888863384427284296627533808847573400593680489971717703175807929236869920085257263702326953942346109932783106005746703150237995259961110847144942459108977000102179661614071361851743912394278120207617485979041689967310990074397789726277082457980031222005320090193474194251448092937232834554028783783490432669443736560749237528767797156173723512445480742891946458042484172753072448194448467919962551172158760638695687641098922400917397110022897730804690697106673010929568855318300490812420816540434560973601281804569289805857386967130710520773100081919895205092483525833122871244471346166733624330769989506459789200047180480296202052154638277920132772885530751514963453447872940029834748637980301545851343020874959098545524068145643075982960597056695982519150188137310541742142892594332577226376667334806187825328586096823656043825482083870054157815840260789321888169585369091042112369672875624941743311197013893030917481648656984129816235009295627571868038646984839081026976520152443398206029010949856440665821873619057366365917524589386240516067165530867626147440800886953066433000600426347505266687487795622139039701739878852327400153073880485492195089341909443882994711225611845728238842660246279200296639212204577107707884878249881999069267656857986990221630786272072382907534695369191413039791779077150425248649250396976107127441597246985161232383967448426552958623873878013341773148383730251261620431161913538170995033849324453182975829130471265700511311571898896027310837549949234287580065908040365767551616191208376437285598985468902535059248588612266269470376608988918195919171277437259521890066146652748962829249118751930374576029208924295107900850927516359710791019461662310068928041991604160405183831064908560252049357706470906519813071364200424484703443643354231000641789352378319975373348982036730617406328904658767524656420158221659335121064762911394592262947670008892217104346097060316414749509968547322595394898388127520858625804176217263710640633325248058707901286522130782789130332639225395496407553573053228519172250566956122213382743035878390887065843197047301688273728224179195719349342303385068043689767029417361713772443532491573108841676679420613802524405622713805439998127506252653419481255748018947816118609406505456950257031064557936244133655993176540873932856867566597160928414224544018139378267421486850012412221534324526768099190600124329218670312122524601714299370543690900431861524206512863963743146516657514489724999618203087716570213791176783781934024039660466515335437632446115904638230323161442484464360541344294821254378226155929966712969669070704497611952098443598262247267866235063521989095373376272768978820881062103673853844433947336745012993018064390211493710149305673494737655530764510422633654405311264545938940829730262827681054085419912292283549512404493968082284665994344599644078102825326993166430234440097764013804433200375684782790757686496508386257679167009835237869223124912004456352079893556768413888192348781148781911525944023207749164312961519813734169543416330413429976558705699001266102496264569630621302375404145581793731289842744508925936516761104540390571250577304028982869295698966467095772037054813345385219571321387399653461152920480519669406439148846402056290611015593278640670553599561554766401478647039912296782868629404036337481084666307570791816130077154092228153472276389017994972734258297337311124060895625070856546910254298490196493671928296929845493081098638686430567791158037177874182810582642143800652003740457088339554004932475304266053120612248587668992458116846309320084186624373353487850486446034043448612365514681616975151299535800357125202310192346318734979957051223456938664187996754302095124941241671934478815794213370044705429412002490170558662784247436936637971105615675015708205463004027417356392203480370666986432839987501546157825625498590765350487678755318713513151188125845275150385239709064299720226212889401460083997491542614488915155875950026856996291154444763059472443637825412620385015870164028309484608525756808037369245782935218098232331648640930411248929688612126695267331277912775506196336350712166855437221504701059519611052780822004449843111634694965195327951840682581058976086601823545535917708743519786001554445518426437198117672967554032250989480520079007600905444173055433607918569887558276562234686866796949352063358553890038635220288337122052074532770652223838415633508130964847576856884558220307429169424994936346423963970626995707108997341278308969447807837798528259445390444041878819007222568475526070418305475077421809839305960802606233116072882829322918630448999276453754115689093156041238986435749745161505914374265209098682976186098540728054615378548907952218259688318884744992478964496610400443805147869552223643773487082759331739529326776805567592274659221589814006047257908034752877458275552391629164439088486709128535730427728290594086765740080866536823910320998224239575225897103573026729636004770119181941431772826028828503802728519031390195937648975996806122704274860990984410434407210554221220523158872133891806542415421278768820119308682121485251814353990419712310818381536451553811401147714187968113728886880045480113547597280180940190128366294103746417152041369717701428192131189953247591963269516070107684578982293340234641103267578588487291738874087044507362596732923164547512622947487540611880473530114221974721989210134722153465130309037811175571782533461318364537837763859743184378175741151288040549452929665136333573858386359703704355710193808889998954676485593334758164784833952060310735147225641760990998993616359368800381927333740667138920710633800712080841308935869151103503843345324294823231809067348170107766271456077909924134796047345883553934946115005497332769237868111003241390709284835518594726341241733014644473350967844850678673428708298936564433874120897629374642862192574336485375758864696332012027827609199392539625614241002230093838550768401614419992222369351263317697901539096966918041772860247262723299527294054939666788702917001105432952313042790974122790047554191106773981977863975590144167369725372423551369906952880678639293462312900885930814706143177645724435078518535423018521410873406802469660679680033448205004149848219956723002087761325988243162161351077270308528883448028448875729433381828529113748997518688422643637098343395095672964545779957458707414478880829422743932418081089419747132513005346324441683010624704781332189078185772340190095824675716408282710340596416984204298606856222600487220168296433047031589991645485036449044374910497542333709557695079990519357409408093529705921928109708764532789951310943920884811924562068092928149100467066990604992396474319179336175664288491911607596747155110029227589627159737060730425481553404342690058308133386867822974750760436844925394735347106346729067251362394647466454903436169319708763694960089779897093817685671648234185096880900000967070134811582185371886683992447936232047989502742821099521876490865509137182205900547555535115916245656827414551322950465991293705293005498460492113569399144214141846345315124087456534018099465026075052728311807204813230537138468183504807293764532692348137436479624194403677056421336528544087702505931606691928676662353739201534210075932984508410126915827490508313989633811338706902520244630057820370693505858564494044563236412743547206645543827139629108029172254433956078512384554240056415302837721089504414414130382324193528482412213906555687632480013135126540886337487766797577266470050833973663353582874493764973507716193324014233033991786982479957357978211078533657500312907028939851491930237273391053393753089011439056961408616554814750418871976698164309550448939961510987171195250447724001167380585549796520512591441084129045970958527073409069200801327987145408419039617666948673922802183540866089860735597017262258423674803397788215190114357875857600956848961097257629712147496265276877184197250216470276563714181067346389382294187995114971673249559068718465860040522520012604233210055725142053992880821384547022486623461422330025833165532891709764620777513554363580718466489947012482974631410055587987562670760845916929862093182194246256830591269488904684220740703335778635176294229066335142169987508627953101384707327439061430148509010237182203879758915970122694618726302824875738970038813387776656205561233181142305605271499875331742064849233453523038457885367308146556507579843965750106419953490402393558606459433109742917701142655412065997985709800919919759016013268284176992014301878794838818873328681806159616039931203747667753899607592968408985346590952489268044387825938769404212914443133655290589414449974734036946960027531476356923032327121280943398693011245260045571727962624597720762571471918408701858431187424744927805977460811908329632006749441768705201834278350184260148916028118603594546197438491216996783470485754262943557822348361819454025303867462865023810827906079809368605417773174966128919048101307864176676171952842927635646460259522070965345907091738508643012226605075867086003606487335473704176999286291215318581092819696134829178785875343791958863505479479723449541324165221429477971186286307617187336127428742091789939351508181314749169152494595508109516313146049715416716086065540544902046661086251392618229576518292747771661251762038393318710189449466014672249948623775227728663744097324429592632937491384038202452548990303528239271516904191329151004387351322012410508052648093392551968412011542688033035533140105590273321368144613902524112599941234305018888016462543971456545618885662994738482731436952050194900644747368795609061209697566001439772390359099942796428826054237939219847919188411317160124431873602358663722919027538184669128262041520252259561514426834357690820981052300816737928495400023462862060987840643062657844783690836962277602045142307015287244705806415940063099010285843139607284247166815751611955197823159884263489651288325998646057032228840679387817872943456480334971740694184431888138035093070610784759689246508403522188552762239226671944705610130902871394909833419391675856794363290821632965683909210621712612703662531119422215582478870499169821928652328106390866981191320742770872147225887070620129933232984028240982820357800905909081253706751445960763336133691468461919332527694333954703862894106733501661802519387140087275726836271663982590034778325132101680788279904753212440589127564171604838017272676183334230430982656284014316426652568989816450502251690822862318170275048464871247955196633700229860597884968202397398063711604110277970069408749930042132860712462050247965556035313012281151733747504448078625463835988982327792692112222017975516537329609147135311449991913604370628952272459593046436459537784420455114027160354151114272749620241403685108280596776520721193148139605858717663481653941427712843789821324592824165397579614649734587087291637556716931497899737059661030148435213418641596001031524727855633945510280729661608365838256467659457051143112920003762450659049308772286345535442551473734775833924786534061880265558799422402424961647603783702321992493018956188869913053016186978444583773038821699843849383328781491605857237999273687407384781197293714633701050375455891003859468204223851234511714651029118068594097772376421998937070321332145704539493459108098269991107545354849865883746135482833211154276070988333672689368784652534720243205545421346285793403992597830962616646120486823330229264440079141613552347939088504073839549016593394252632956168851246392560169433135646126967300520426993418101335344871470415979157385876731545368657829142811508915406813899339534499469860324217763207334442575513146168665325795596436907124209917633849881424604933889914667535448921370716505431692023609355452137569290834899616975686984975608837747613610820414896929037544518384028845364097633299031189950510166842127326079873358004783858561330914585540176000006343628980356711575629578732999624874616513098705267138567432933246008275401851458413017593051864991876471168815341215914052850056960274256781951949391707147598817564953175344002862595978144860659378341831779806890690708403174161820275309673509027351824395186034502333710248527728382055901453853294619968468169052148109842292525529039662254637046286975975847272827245301966631467907300246501111682013046236024139834783655723182180236923797514464245150812041483987601684918157122680677885613989835156345469102925313000575644030591215570353757902982487219233673465690266584387499821676525209824283752651151901590842459893769991575450177896359848024443924372682247361102968577436519547225483815995823333556131820018794287791777450195742962955966131597159000647908758350926041606515186108109039841142189390956493030950936949165754472823982206436966051574071568858244290407847095708535160580807822410733714802939194039288512514104658941102908055211654684236033421116134441874075536778181416323758938163353131775061614901200441628699806325918416032207113656231245881802527849620640675556485140430034426965618518273615092577136072022393985430563375291261542321092116594409677798007181355597853577879471498197142124918723199739231554087346490011541790814848220128396048918948694085440475434924085197106234291956244553558335979569375495191268890684856866380602269319212896114108238054384070729786483735658215440613166154994054999570462897136678282089898575996205126634830533088858070477100990316156947862723399934566605414122425756758939911954829322758705592444174184409501489167229492898506349373892879128297123052176669227547615015709312840668635593915637787838070036614937921874422507787456381468955382456126225361931162756476989582240792230134524980173242486936665336122555750836603223018082686923852150100554000729824806031481210938303813614752351011363070904738792037284487489884712435966922920251256769926603814696129427884536191714096657222931265132714279112333687862759429421464147245498099449805949058608985578375721697264653699274555744133725321700411304529657751352742739859460366267006236984007519629026874364984405730902803708902452926453921057217739601456602679369234347946093797726185906515582001256716536920012609237225711261851059297274703060066658344630938531462045309718187069111206824025202829854281164517835018602317685356906362637110611033864723503116325531067682592672211488238032611444895540238316730455849096002681918888143098638533205425833659256032841553923413916930839609499775734476418992872645003144724083406659809544987507374944172455759610923975627308332745308013279281945989187951813199021806449832385485591378441497985223685527498528211445912671131159687877416870683975324194105099213652412718846222247896700235224356463799566555973218552740669120650776036730489375233068682749137111851355348786445809494690426673572051170159786846849944121876811009494401635276637421927738841822673111625320180607073569536067303337082953136337506078870016094699947595149836347833324558118862978775615346233535757320415796983934448288369157922038861468576713522174370297353585377475388512483878513213303452606061440310439212213090591753245975117754910141803457245141578439588064123961289488025138361260467389446527862655789790273340159009503866130805791091726186573640824783210559248648325574886881165725068322910677341911932423123541982032244738284793876811019888560172393503484085292130112565750833006604736091419894188071548884856207788501205069482561737794009847030007802779688259170189244276822190453403251013638185386723340216182161240138547947014577558850264374780904874650297202700998784383087482965337661835256921530974166877098545816599533629288517526072539551239930519165359553465290343259007440158188721279935898425077873867456871717556862412165376376002201382830036250974166775602207287185092407620922420459559916037980229636702044285837061060063101694488876529717899497341407644044197687247851905894230247516566641903775650275803800893397360278584262426869535112846266864221924971984194653257205977149400504048434576122897402263524275316658205907329665620710272217373442634765118980293128868384452114697022355587408211120993637893567225939770569798555770917443923994511007104638135197609159982302179457244988661670884502688627340702596477084776422151620013564130122721053105586803519167120984834263578528880954140995473967044499939382203612266276573925062671555735533039844355444658575860571584316740625919941641201250445752382224038498360338069396057057877505127457976936095246042715637124264034682126209973031469349749016730685566408494705842453041975557945465366167169469668190999766934285973627710298061429831270329349639852669866157521707805224078669488396184411286774704883654303116062725108318028254916492528232614265139105297050549300300023088629666011426724207986198827465820894586355462622248726180622815975687878557123746539235742399119000101233701243902299169234939552374666196955090206191115050429962950895306912754397891550667357887383658020738350378980894364919460067823052668002251176296364341198577347718829360740477581776717762111804257827441784336214536815883741591851410810297398849785076830945184391990002752899357828582710912951484605427401515754924591899942603375787172728116753950487751461017806155207624514290950047591842709297920907461687492076589253589507311021936937628172602874071504021052569927089113247402786537862140871056143030682233664640023967624876218273475437420314151962185023200453733719198914586064250459303292116360108637773787142219387543968310844080005312967509721832290629050768659170382003301674991694727921031070106875809682183044058972422797446923285326654478841296011686996417844152983528757311207744346499438188980742562149347215971360662479283583574198093527202056911761116131524506259066158747075937030738296459402970882497815995244979943981562337464563976117701871537312759785271637830166111905888781888663224782150245346939731204983648328684822862252540976795845136300284593895407378615774661639622107048851195027859933933227503291735909069154431869669876044574961569111608607411899387670112431276447875513229456057776939710553450618951717552136305024034538517241497949322763117557066255249171112031423342947850186767595420697276230539738782232351113741034323821319480995216544491988793262703306270435453806944162652991195823005922247642383133868952057557976122519302725662674405859678074615998979572799443316256621616535043808574570812237563086572628948392496646774071122241971972255359742501459681723724323221812635533954849363145968761921701751453015220284275974652575104818987889889746745689490408437299525674717794706401364881040048124269428331452517771512901005644359479701155635352940877887614261781627886093965934691425600016261183860354238664563807774003545254157973106188997610782329415335406134927397353852386413703442963788783576915271973432933320921836096615989554533564383438669939748125132139920689463566085578364481399282096630809038450763461865411838639452853981782476942313557673804229966048585522796863485346859504712408469849727538915935102743937134226546458715093546271629475226292289334562265099874654578473443987693502201140252654942933823001887435443728532427172458624050408297757243404267100228976755701610735232848009226487073538584950294003411457472173707889384832446764597423632590249284700402122388015331247860605096544513151866893731470440165076018584735972488131170214975900909381250120827486204928086305671864932144449954677453194969526992415747537816598486678192004251864178357497647689377596524908331262329515491983694673525852868441230342983545185198165504758985429714846899196072370089064524829409998725828782656077170999816434120792882799769007154224702547311467966723294433613028395434368438031225933155422194817072434386567163923737926250534255984310715654835864829456741022327988144643968464488312813394698035966701558567603102816400153798218835061863578163828098869608977192369548445562527038556088980824374203374438653125457637551708663624374201057991140698528990013966529915192510320076184799755878955607225755317987600610554946347172214892542250277508817210548986881583237771559593285834847055815403634112232750638804984993597995573843892187783475251225545568591867400280774019341774284373681330778244131600249214082797942426382347087105937472514119062437156089283777531741843233862558561748578075581033999335634812633403980752803934652373830893171519329266905621992602114430459248830599948156400575093459938185771023383332725238036066139658781190572338738246473995143678543083103532350259837294664445987549934495398412852683401971898791359849311213046198443448444211232254818469361642790945861504427089197663701465767948676655471477729206656075688635536100534853336356328051120318528612269903332632459336161338894837102087494423998895875726512134329256249825844267637343656851038409799262083728848296514049829311940891801623906630715355033805210189580163083294218272979968857493446373159572778625826359380638591258978338890569324837983103657234401138108629065855057962815153572529140193493784567646329312418079312767345941903118629551894762088757935874327525432446342184230274418745662997540545188543593937121451223004397614020406840996745208594727550712941254795406185374497712957608910432034212292246993279848957050111504440373516820151312707292984958555307523177538329482027412333099231044765446291323307403289807744715035514098791620643892062602659705361685045287779213816006655202509641073187170231643198926942035263547261145177637844439678420047553748307654499250684560979184236991699219565279654997942391205765026664904800026321951721313763764647093402745733722053628061735570433311825129950205861451260815551364657982552819775747636745682567428102739200510626736562519088624649274196428057648483218811440763942966661510173613803128134488853030590253997463847112259943606284319320985377728220482035268653861504689081172088018609092077498733027262239518928733097485747842613843541286204633804725735077719745292814673759491142949117988837123213428560044506460553051782951730989747035791848022364149442108622694303126797614543340027530700383417139388535879412922108372734510681917145937396805316700815470730052711824135917523971159550326156689742963506779465658535643371309987992818134520308187159574887062030480857616717537854178836563732744321051561638484706505862875687713079695412651228082628635976410679243774108142845101565619763524806259382653942195006118300057189983491583871762912839269329329434261553704703026429507665868846075448394311402153908327720910513041448254233708394713123284301210855716440277817617948868789137813146517613405757287123844159603607424002688444727432775316595655363046669533919459765938695418705588333914629433588414175173422482392657892804143440303865293381306328425229726962253245864909692554857806037630367687842492359821812050581205703595993355295648184356202490725380119896910626192113556986645858043662823530595976409585664652726832410470343623408111025176722876989233171492725406399534590897447994400677924480154261947768081333018820418728397486121059236489229523347445228442905862869886098849986282655577879622462808540033955975779812505729317673587294343691205125286517339931777099618071033581563185254361361091099416712055776815555129679997826610441921903457705484290141353322024710567966017398381927875285350211137352291742706119030930245062485982159142966303764596412224717491749031305421418663558046945786135197687076233040726785539107853420058614319850926150396504532419591452613882790215012658257868188981302543890731879833461287971012152837829748806706133398494187135631836280637319048625341056730476149645959153038348130439450486455724611918180068460288388869187258234029543386863430943574961323143524178218642531997691826576779049207843176255432515999579725320960455328054164115012870552291190395201409588739080445370188566000699607170742303685883350936226818009915760708285276507745232880056003431590699695862939519598489240502925101078833792463736538552857420205485081620793364281275965499995484569342778637101152753996373951658800501785366020699499257731052535881847227757373653427710395432103475131021354326464469984223017425828847737153690660997267347234261691931402886589644470258311831788465386783081307266858280956833350064571662044000386724737939279445373452307507629667150695367687536460606804928529026552586832972803300537243585256395265820301864162337854769263071443124456915156920280430953500073494128740209987507926135511729728399753495356545334975607032695434514387113620981256784349030782888921097828310405998396762782271724441212058212803867155135944938426106455798210933472671589483999914540439855753929090645490611580389951129768253213375277503596599887853458768380941780957048393852291706348074227324318692782123175609484046534339094658119366839139787125933506613169734809962459578106596428099663004930899382824812894134267079112727055884005429728647738269424738915656019787803075828416353644057321001462035884133785146242554775549355172891177251945401180130611388700035327942330414111189360037180735227623817557134558872776779990167575784335624240715495195857287004049155371334034463643109188409017984954116606172465272496783919510078252421787814629694924785736241548454042645114238374945988589836256569388353503771803639468108514244715034406893207208031335692300325576199069842637025780377260101352748926852663851867293324982385012270038728395433708737613554530338438023031090071473662715981473463650608983334178197488629584210065023569382538327015866721265408069296722372545708884795835686040223004975397884681535641203661188100524461235988919326314905056197054143605866155783954362255444071763778438139057735883794697563623913275384725490375932719648751926713413455460925456839060563029331814272848418232243005100623051351804457551760712378586595932906608267011987369892030928541857573235354397721169547248393469809411413180140411935515466437646077000991361951640167813430201164866586382703501256292423373527821484535134059068137098611992403211677715019883401078662037450574001729120296195790079573417477973467420851392481369909255563785867723036255064734959040953402001779150300010455886336647430421782575711934575963227822680871219744599730564050264082262785782110711004418258856847216226115100299676367386415518325370251535604839763132822691134542843979796261285198508923252289423569622705740745440484769908566532711258913645652916287383279743036542001954736744981975119204556203957014663714431172845046914090639464667853618141643835650634834312467998291440452225722183191840209229617842315731514911607887433674222891495733305768441245724437422318691786269771725726215866448775835684080650037121563234658777674959801513567016433162670654786241360108540395682985094607044584237031495831522912681187301599718344576024515123092608103336283981018891419971940981050538193969618551319669875647543133792728504874052268153298443257194445279295493727838291744891053225525043279886522046121917356299079401515314906962371356121660872495324769605619583319387021883972284384863446453502701968217668117858216279707964807177852240591848215238528007253081710739100247452700918888453885060122563070577049352408947107969860800967096769495311683650500563166326406286095278836208258815211905613650714131578012786487079918508077242649878948445258077570357856280136201547730707665172130209860690805092710183552158941950233895533412904047112969746749334336846332419001902402449141941042476448284104304751438911787389192413755903971067568128510005885204121046180631314298729453635011796295591922839560736256042433479287469694238177591342836510955135918095140264973049801884718394277612398401300397015304626845866391330050102035667463521460610428822318914724446274360624082582258584685952940953088934906081048787051847163197165230066028682260067840706440959452179249494469995230335247860246741782543341975526184334250566567957386158500991552938731521840048908553331283499984586651976610099461378571339357747067060588133292273492164222853643841799179267684852136083294616223935297586150053430952995904552221061529489023945366482672293955604564800703352018883304786825555248232730971601538843341863435235666215536237958390783209818059535017335734948604282431354916239192097260155685157226572066674838790855973192458197878253218389685005959942650999096255711333355283516548527290625236822416016816772842478473601024211617413299086749225941738499822318292655720024889118345148357031920149189952566316695930684899004712145062574443487204226340381038912824413935291854610290216377817413145546110943149901085914736569924902509076866657180920369309072826477354906619307634600138302955621686615412082622446533398572926115779721828935003986008529074054879110781161217926687397685646257730105309551512625344782227243519864037952134193908937064320684749707194485390403104797927066888802524549124442282959915215612910710219730938179468199825907827166677706172864713455836527940757127424218174229262403734146189466095448345859771793653302666027294396593806074256651438415202987658428397206263616914824111958825296304982729301182884125308223693780337129641461480956203317959562289737802386979327600060278381327686694029361022106509736125577932368271463450676622936598307253713596327098603321034169030840248655555131524634559065136780833442147784988729407423021459331858546791258826408005494279242925053499295784374798835461340793947564321283639657782593460152054279609834634358614163163953942215098366652541698849864227952476764484819756678854227529523708080460264062750463453695159346811237868411188126255365482098026253510458353338432489915036526169349478360675903585630112082826325400766301863914618024590781781878196702928939041570360900620521692316314021810980053256224064633156530821483774554702526452523755756956145658796376236822285352123282972966322189869538532993307195217071009062870106578846563924813788210284386209599935104024007593865708657340310087256088047330945051772622424239615803305117336237987584777280608566935023354505902294587132252068041365218434520673130462731398372243145313294509588574831707827131388604035379706802562006336090959400782225069310656268786027371118118502108277573315316499202176840326270194590616070269731417287262800022911386488505481504365003121344286096560290062442239078265759601327515260423387581423907244616536433962818428519291098547859844982095426148922888509087394514450053104680701387534228314808109976634987606041956021838785528582772171770085381500126138881760948715545006304342946013321510416255425518652936495629151672224067985457184633658806054587543541159888150673045190858875431863431652521459108787658020076410150881810701440484059680229909857950482224002047890998183026533349210003292214710688464394596874721606645229080785944801917529068421688543509372193620914352146308371316177419221907279010910296478561032820592737362697199041512183333547392788903864647801959963492123390848935917149227049981301899428849118289074815305651789045964036564314051498402122992092714312454947356413249842613890865755428350960617719176639689590245570665533597402646181866532587521918418490368995457072168348160737222833432680971672304830418975719648879401582723319239926917058258893661541477761632404844890164844206291847885775931840248954216763912453737583246987354636376570904318465365876381814257620193858187551771144821310898520005825675198627721165961747143994125413981217032757413933746697320427944404432879961896414683704548049566808096001855737865691179270034924246627450226922853168167481120357330240872033475177203418624585453894713740394795934078468994138572263484391985476252349235637761565226267223425587767713761499789996286799321950126191329669840193263834789376127094594845196715145423968838256860711707120440285651812111407884166973150896855599250979815458546414436273841832351102104913098078483295920195539726180030412506280168080784646662233232426785149014515805323108785978561222483656242968790918067243658864742324116917869224859244437405767545202979923431529774124516724769822025991567591907260011041255027352435077127575284217932362656963515846066634961598079048019395380629489740794317461710994755140173981280263436032394379270301154223992397164217773341691358992344123760459446118843942329597042767781064670894214433030341807138343014344556439175178060187752913506315100321649702656885818811787346566784227532200224199500944598865455232912138275964469805582978556512047920521921580212845012775716973396514031144504353747440244039311321984831807208867195400354440647055413558751053343038560791416604477001757245949504938800955730772669568374052953171672208664048300603881844634403723650051640965355954726085790588076365248772999893695827671831062753540483850804024684575266357718214800886065892908141078823437876214366051391017230964697802497089118214968946622354287714665984457328729467194118208284635836605733359137699551527625314272356128889602676194002945072646787831459304734329835076283168248608276983193351639702559650123414730858501113431568914011992420872768519148482085738466712952284750223084318889611155523486739761058965010813948306164962484373995883866634184088802057039914612009826728550807198662127660239911878700108649743516126212640101799648729288669750204340391196286606131772543617081872183617612048928308832659045690462678125976145408354693534184105985334239845795241916655018104649103014262308557531042681867976007591439739005411229204011276760836270053119259277911911228649735693444979137517495011408826138105448132894551057722551417399554122513316548499144999070167395826689003976787756984293606725762300950161113224258401180112571533774522573182638924149381073823291314338490045934125849193473769604170574638074841891954078405813563938859574979444025834020773109623418188740142163695832435547819929343901958585876334504953295633208177336389559643347395315466945235791360689113849179126997500137223080652473309923095832707365142041775492723608813721421707644850332719577126479417948131321444439799421724940243527379530847509796108962675236015075289885406028191019571000472526835457476061597155542152548392799693637922944437608247573351659782067401164821353220782703599976389259402595685533692834915821822285758956965532233207326128720498410872830449277272104038482763563842760556700823234860778998194655954030972069037200264163564657854047380611100473039060331492473873396388845433047350397495527415585220237270223384075226674681638574978296263208388772235102585928122619962018537315152972051175109437397627014681983177914824049423463798001640630645095873444167113961901274184759224249308249680333203396099478445406568362568378624491078082592368767180052341378990100418930918867827170198266481105100871739078302492759132933336801040551429869579278210589793403524604494022048298869112110915949988121112535671342219232682541988781989617183675962140477861484974066676216202609670600578193936477599889484495659766796093658373407982053556415941262612199866888733297912271667453198913857988168569972138919000513971161130156217186312788828282227973642511627004109702925772104172222149256094058660217806087916473884148663702901269725443725435672772012540432891147658215364906341118046967160502080336211764583374569605035728741605672730562301023501523662701360827471094837033506459599538721275919111271110747564216174419510261239094903476108192863135375708593866769139888005539513914931965090070913679724698957866113810744617019275838018365512116230138022892458528282928048590849203734108458308708159060392684957161293211374018060264038968223310508758423312145085790405769055053507078297107366897834450406951274433246166285595782794453569663146199526579943538149943197591952752249175910851162504013071886158250376914167297619444123591017557207329342780274638854982228453755108490651648463427824021090812549809955010445225137100618161112357592952652922364453210174847097081332927640503018723380767163025491902876818182849623828140160832506257925067566212064461934070965914903587141843145245201792430084560022383947312822969816088644900268800803450584311618571830951498715203515832543989101634354661991203180725450369392111244063084139067659229825639969218165081857867035756785642682267367493783335014650040328125334189265388888060272354304064862214416540818336618594125072566821205118822263355629447788821391738857509702952809413435382057348449649218616126842538622766551177938550800204127860921268997505701654228767931880754008384362184919226704177159816586173617333584177433149304403771870245442477825944919624482157505708040009039256189563625229168545362321365299340322498598237460381542687139243835653421504971100292843531427493438667090370913642746576058326465805717613723086341221786217653287997032975651646018872277177286301533729007065246474501647154854293753782514691000978299423091456075925799021256998157251464130288012100997505826530204751712655780198426356164872143326774273595925201242009429234021479288563154372213340764863707651522751729065454913136739881446461404552559218002111729533274073666615732853518541101186704330629601458112891429128352792150441440168001889030638243778633517103017743553429550810455512143781143795574181617996674403597815555806155464609551189265893057627346722288237295462041706298690297810574805612244641900495000895922569278115387674451605572960816519707998730239626295532794202942153150170787289672779719601510224978713493029067130183394306530792641945543789557081772150082387370562996699631560234553552106930801729463196717769470903615975389464766167582124659145256602875127682501027887534098825093265718744549102563102541550508849951726266725198168542632172583818628271116254497455331123725105820742531130418648044374123729549975331544883227043037612854646306791989870593383841800393782278280440138770043571968746554636294710362045265628367980235244294744523108710924508010116980293128373458972117167999950596378920226682854094161497268247331000427811194895732264431752506059616566927298233264177273725249808168873614932044153231017398834365551891412799257740139656226284689338608329075807531557611026204464762014041276299789128589893506988516739379049716164033114732144852605375503580497579278072966601564800871049966168835006791236624708683186342072785515748281076000818534471291452890833431230227030016601711451758884114776032133750153988492922941013367129761984512189361314493411101248558668231830049250710285346587283496955345576295917888241577314741701852337510697020091589609076206225875959647066187222139805134475451964988591615837467302087735684665043726805787250799443026384957201365242713921291035592244799718255762724309621626363222803804447816842693604194651798885317892253624408998047246825859400198020104785206947497313768394571641962655539045859744814204167724172938025111697184588724820659354626625392613969687793039423406553222097593488831552069753003364772522291911560774689214260558087527293273495849392051789351161585632271487882949912050408096223935819003464533852720197376931238637739232609528085372367167448243900241395758074386108041920421621136532302341705493156551051915412912367652652560225007067590252744014014936588465009175306455929837267391530401253494022217326632579422718284978485337974250631144126430894344545874287081007128734177018675187119351968351576405731861283296767913854324044493350106147464446409560710900153415883131131952494058854646865096021885239996111397530581262841572176886461936833962152297148066305309316229183971862729753903541621448669537205453097477856749394847335289110738673039939841353027299325829209196473236115231806976643646719490765063634304416907173188951016944647427885206585620890286048423446219540615773162779870742800103402735875113346100541256342088909199861182605149073855707250545768891171003333738881313372618012235332814217132632004262046361885471834889049013845938715643608786799001465268655354390913042080466987170728353860531101345803485072771676963582859417570755747542264779032388252349367964996518699092088421365235337109272530411735272621108848551672166881406397828867061695544650484315921526705506315044915471011769356751577184833401901504564190601787294439212745869603651306964117456330682342341195628380726829805878852004554206280188607395842348937482893839764031297968132125021266100489067102031828549321770319360552081110363382951820072111749499128911737093208700082466002015222510347877037348424729680366378334812220474013236711827628707549743975170131969949070257850000808521370804889717485267420176745065177488092861865647479771802917030854188134837410247957557153607025227601251922556356446462344495563900342801601843307775327264153438213915652447440077254956142671030504576989513734155401727598271038272213139669559448860310526917849485847562415708502561005291422349682603328397662784815985942607663406957473737995541859296951297190056792496468696834624551641720963959683723961186232754681889383979434398218050786763835931535184920345217824281053681601616386477300431593147786774110645913344312108362780060151106680509086905203783633195942409840115026811463805588303213108486183868561800589724156460134403218268353927496954852286796947071088442538721566800427797460569750789197273547117873509948068586840363764795040532212994406236371196002166530951907206183031757380100826874474995816422754652727229286773148822634165667061139812794514997228839138148523836279747960533083356052912198641683598060853659377409046133786984377502959088411020646303703261219312595788962043377357749938902972712588867236397524871726026949483589475015579487956836640422188127207008311726754152019892388025040635474079584072134142360218197673211404247920492783581490700957030342374277752368146669944622810855516760998630761032590754122693765665489783450256998518947680029324011920723877421870660176422676925407700329498510348605730963939068554625489406923105691383595996323151529903921470169543767657161618068583327506683438463847097529173584668426914012297169253458307314327749123786998442891764438679540377330706846989027985903094740523178483462636459779715776875740560454916881225758421996285459020898853975692394855533571193663371976154248676043705867425214962245706900758022475100079625778084139548471919208099439868836548265953882207604082132379194092904136386743969077162947640899355425884663552552604825037987059092430760157655817406419039502240418088578768373443969064264433309893003668186018552757758692506296310065355105615220357781229639489939266036924442213069447054045070798933057299179184672937892523291136596498876823510195226926616300435279313046246481930439937660159460857308310205460731923165304293978872919139785099899885764244593069471486160152545312511488397820989358734950211264679038660260724530271447983567252790374845118505915213781695715964891140267503097583822748736908866232370100085585848835477119441224572650795963863200466888734864816868266338110073379093714400383453706137683861244854554354897666605936346607139515365904585370802154451619417542816914593741213022237343676814516602694814329742690028648089509043398711922315579177734421855208322655138353747070334349292627855239089239374887817729933293449040228392742974529168628634416310100130242648531935385595459393683773749090357547311575367785630545040703497730114947609085995175798837109002637763150879254608789492001656376626816306005736323570227770624478797669168316111133058128856433210190425577822598945855030104463093025490545595920741647001460330615114658961043044903000042378197671877342700756894626496348390698558930880876511299807157099693737381101849879276516781373850568494129741906117288776145468509683248319860548315728667223607128082945629189368169866154475785283345373800709369430115342034058203576011865970274523409123118006765042945898048234824205938382197972895461719815217267341596938565905058607424633745416868270089692237602477999449458514362521780496836799230159600777088231780708677207381721678285668036521054182079174606850990034932955983122604810728579838523576708119163971730139487011750022879073064164964885487900684434787879252398247731636546839783542018775015760759665384116367077664998014540355569015093114379267529985602419029594595670012088691713258129724029977213337118739966824067767535932323998453148197799557205588447054710227346774582063481398624811075810770626301390010309240483735043831376799279912419382848100816146669219486595000321609970825928740463119847570710981476032933090105948973642982228909269130226603345729046306428199585189087299508840862366175893354237304335971055086658982002192551937306614573661721632073681326343877081771803528361902078833287751767343069436198625795909896786806986517823392873126664439180710451704944009351263681064268121291761295976544544251505246309025924251962146378507630463497987909498144421067999583861678624353744606382054249750375764916497564309561068150471847383228179049101955089845601507955068786624079422309121616915437364654314774974477229585996037651279210969313697158880432722109895941036587354328711223810556037883724034015509066402447647290161952071946831016130944899217621940004319265466499867286030722551036750268744252907595956450227777793537868243757988723270228318100390916476693295499455304534035189168835465849196600589696054090259527150039795417802548077128086369243630120100376197237991194149916128046636451065061222004843757293015617617765294092236342526613354122800189179059339128656119669970958769914130393581910948177160700245210914739759091572344505621580949576487188784572398149505845370968050574431722081825122066707190204970811681363311590762077616917036274616226050083588866823555633793459750017269792091302720640705726367039975560475637550254936339829148855247111666596049982436398356989740245147534145824287738259505778306169964284921803456462016370217248510324587992888094798810100118129228036112844667478946552746269966477871829638057390744269512361197783678639219322806352065632481988897347896325487585761036467479024264985651080594402803651876784582878483097175987246798237080096623734235330895674731508134885670838755039986966735123124639246187522628108565547855844502194478134897159602529750976737593769782780015484845657589153454164411968735723560417404716554382389907094573969781041403357026940122697216578949063092353577409444412179583040160467146175093432012130408096875971227633972405873314651706385501520763808258677446001281738090685449017142012435154470464139061483294666991267144349248650962700002526958531375467435292964343233543441205011860771761983545553845384105541959987333514208445519799106220239181654999491672574388699997209510663785971514790863003561032994561322862666375118838094943882944754533705862743196006751560968923695288407224406445529397293544521771810752718670811802393957584029343243845288821496655487441937357834503147805311624034217849544030309049217717142882248811192310073676187304591055006490278385982492335146050989091831007477120656622476809355571126318473348304765270865172707099149496021501737255694517600465401391894806124234937184104955339308324854660796209989975942034156292074590099285818302883008670489500319584945931652922001506861585988715297697620881627193449773324680055887104551225866342167990510993952574858390814996646752683666573476228542801333912147589413932033357586337530422346073948412659780756486979294859358104505454068520722452268179530044066792794533663048299756648682537221511953482422205979965066594520001926325441866139405681178649508561408616476976286507563144815786869539253066522260110957224156038615231026640671301512232611508842975667270166919614896875450393791879023700591909552907281244572600338794122534177594905136456899354645630090782654865906601963093264972677843021281649713706458290909991324472698910306042175382157967176844613827267669816931318936868780716543183436282533938625564835018253900559659196676532259436700395901139341658633044213578758520406621367638767900895769553619584997356025490752718799712035160053309105044436615560933895355003368638410842419343362633347894772927044324356475405515068902696454260040516913853451326896711302972712131620640868466862242454397483957591395908698183734556204582539320748150848678954299689884378392160216985076092640452695578139723730302107979143411525910206531980641800698208539610335307834363998868808515692490414792097810943041852050824909844567894189163227629091512139577177605705036636552350509454464301074483559800755098901510968924262192277326851634255539078896859838334484787101974776354093495157690986084210301726416393510612708389325559633230938849287063419350488670350999235306158599365326726204935075014277002057501090697628729708392186277588169368129099932332671519498881916793451539284749501315671545476945705116194931655982990145285518967680181227847058817450608521084049192897457279988993093804947361248357878210244446179049478788026742005191390658244496892843800473911152756461438063847573621225653575831036405415698317037536486794793560232025938564284486970953326623698111170509812845337507987887758811518437595023907910864912100993023099536341997819609120555307455959857624497454771517971520030169252569177153521887683457530490020788631000674008453863723186118548275648818655808444204925537137166412233789822911412996323914271907498003229002452144561576838594484043539918994219843539014162034175238152740668932766723730285694611465249505828968584314112806914936552280206074342956188211237260116678145837628200931782626177772996580084973168682686395033135954851168266963698636805668367047009812886294756829383753092666107512828793901265760035293773366472750674183937400137573558231326304612370101801840998080054762906474868565940044884965048584194187915656417303050392602177050119398443597459997513307298296741147203628012164054664380666489337202034241338043187990957775875144149782636389243091304075215630446511507300995388336994762440725823855600873037428868145332622100796189519102471508670343466970845347283428364848791048405493453557972817809511517847364079130733727246051690472438896562689674239892771593642499384127301486284703314783314524340818072104378634729332278012349242910964900373007791067403198098612636338016209178463909451146768852465361289004074698595803487810432960889224372783694680573652609968915049888577213225294502669125277651273155425897204962022646781585011027462371654693081844653822471643402540416230646374541868944163836743365202310620476307104011743787962632194842869787854603926485599719738861326812392789070779070471439906784777189236350689062086211800877490061994090722574198499600691214036548441172221571042765246192145741903580102888878199398547159233390395565670345816022627639398793797889459808460256660490340777237637196677496055731481531620259394542482563348977951819243924847282067850098955842177615389555283899003894601653731819394073923202323362709381889639640608180317873955580118672695105282921409772134520670544809526182524898431655283669463511852529961337260468284780406838255727578091466654208219227588598756169732514531109436377324255518632829078156106016525574134336226832259934487827939487655380513843968083833577495010693973219416910724538859946790950786756644640776464839676509273331463605943321895939845102193090825093677675706422448142849475716072161778169559537380294304900743754271899072174800303179101421833183869265857227341799125738439966314998697946499125972714072985272225958354307869252896726434407621852969247147350707534923177088786365543113339912143513294684755413699124658574725930022714902680053160275279241953182255423369235107991667104969652709572506533476840241356622471037227477383624229731343082168471917370895497286216038195613306430764229399127493812973690662770867484357991240496463666072595651219352307199131679319821773259725982347826375965869869215255876000189180560465593625670618856595217679735367577418874949635447006819625851898672963947378452713505631528328832119432679817393885432720972116207187467664138632438584858472209977066114990018491052818450240367491773012115643293027268230746642589341547373015432624040825795096825390542633549916700549240484919070198312459996559155252061620994772896361602245085724667081230417815736037665743705510052148421010961856804641907054330636317553963175323274890123610272310712116480004440955098281960042675045406780356754393579772908772769265531919311590823646775088795277691001141821228229112366488318160898835437376293628617941930076353700321720071401928522069765659681733390921962616948439709557829760363511720454293578211767062674416564363963630825022317773313025201676708270339644186883980227830004909076404912968008918640128299071412140157137800061933333802450690868575785216990519001754414845476185685605148814910052695278816317394598711117448761863157063684400405676621536773126187038251128093740566428942349322939810675927347819581685934876966779115488538539432829713225748845769900245859169721056953020630683480239395102272480585265799212205395070247255148380450706598163524055035032739772422433979475329508131244716142721141394881991702156033193249360116062167469930211662292854570324423475813235784598283473801272856809815480774362457328757098254993046368385182356479078938902382661370294226156866316861177678488319489592342373153016854090260745777637834781604342804156791944509647033764115827742219471357354774412991229098167185180090709788344339296450260817964063265805097143377839413073554743376561271926730858476733412091798832913173924081315880726223249846362350188146382348519669416351684470837019544774211809583771240247862667447409534243195721858346157912688131582833897756596517850701293186511986880861495169198117290702451374204598692041948632722321683911364651977212633981450229628678523369298847795366231316888069059642005528503137377754969408217612486560894759023126585411013534050790590036571111133323723392905993638047220284796938006992282631210361666673585020077375403375606513866271528173394736512233367787220479144938252423864561024324553885482272218209682159999035520634613478741725389081127909391402484817106520019570877699910198632373109093553221635631744255343793285338132254460799898276780968983346272608841624818729741253253290154840180590044010972946265446252320021841747762290358378944697151167477283222147422316730300272997948592976423380499470647605268915564297679830285040805856605630537704485061061770379339108488573936622092728268719771161876764044061764304811662499316576477785192027166506312197604095976526848508355093040637233725067945605743207951224121945640724679272384531459334291728826639676257260840503243878813426262018236789490234952120629753265815263380637557736992814741829596364905658290170315621939784244842308750769826871892857439461347576551121857766853346316070174788866567577425065745083310891256933980464505831871472310454038419541449929092463705563499846543991253760186908830711243365379784442510284022614339636462812646873711733597893838663478720565017547438377069099049846000511078336000013347535275418598302653711073898740247291144710318639420971518473237014730355656608491124253062800318441576354501169500884752427867784732962801124343575760779539412671088792385298410937503925635557654494410700341367692431734182057351393120941556999550105293491883333610990286883444793599012835473600819842094527985966750385690875179250134765591689119963889816716602750348754210246439039182974834512775505410599484572053243799454244284538344014453787275443626849635621179581619325649060159487497966042063390055302126604741734455011193089744456015679505256547190797477733517553982897468007715260073163686835432821236298773261091462651969980457410725393101631008410081067405867467975621345890749910949841546148659130683870401795011785889791092984320346673905672844744519328259883014884947955709111633525128644053870690411275301863198236087662154505724747501459556696644420516855241917544026074590818129181200441617143661334612537750081870077004787170850438239395565888727335409178788601993878054837273083680899504169278928500259111238090771359536918072191827551484313023172051270819144685918158341272323787112092374436514495274029665175974369465379983457274091849194225985467542486562201742596590114986191922964829647501410110053411940852723886436482816450718007246739793420910314117913274888954560681372845781890327790306142546701878511633614215344759402998987192305389557440265486506758462646393357111479267438299073258679045442886238084014557417136238846334133719742532681817321403030974425245468842198178688844619424044908665748398807965322478094002981269901686054157568741537006329689742667002339996498924038376462920345112623602751647096036895706061758422669232086211265517165647086966124762367018364443291245386479607006469509620273507293353859222041301151540603265646380501389974886238955164588809863815924535254788300621549567236957963517082177799647677515490817146094252810376638197784130167071165728420223708571708365326302359376508039556167941031124054393586783757440215637310384526082001670478562030881575807400286632243626829813326115828244588709984019581060133960911441070768453438025472038197946044579317482925927610828340459220957577154332330100890320952882151957345002290204063751239545898377190264807521868970116005998415879252268856108866189801992706447322891648462832123901023269195429629330859914571948884962502955928362912902737820852317755827154472746969671415342792284018869209034971071150083686846917339445696209420931817564500203128805716073836819730429301383123843210047368225607141504533895824238415873222803490168497863423911860589697998953539458767033061357463680977943006310791625272569709824233852249495237553334140213455728480968293799149861932227109200971480646256792007859703038473483459450992407253466444570769940851465193823511921273971177554557980913641520069920580537002601760116679416386235537879052335462026600159709973727650932738959321916188279629337757677221986488256813365935373779252483899276736707585985295791617550651329901026906446912055961856379995096481133381162418921179566030119515982553459853869753461494923442167137013551719475355948929159696105693005328078120436682801945563208171523517332031757755150647313618551613708106436670235132036736061773482918203771766616976737341171045921847513516538987444346063919988675260225431584742561041971922369333659042474665910563282109094994670626197824341582889451953263555514591678918750592955787192982169045032975487073118652080087210240002068963693267352935184173589315335502690858336870329140219817181397571601133197940964148999819597924657106711738818019987905010586903921928698172884370626000820906000523602420561482288559994330445436761703943259184896928604722045465508527232761194597939797288356763942497649743397127707255870178422973293263323155112921167093462261539595539333687818447394973526738137143891336267449596057585496515887280982265078475395384925626167190729678578396927253115603378807077408796613725500178800822042947801814387459789433184025781279425139597443001920677323598207988488138224714862143174426837879311497353929327698192871929734385488692495651327975760467034238355096128453425371098802770273097468896867639514393502856940444414403617136010769501510166937024405673038696536508792284278755080374998788621060810517212577568614699432524001666315879584942052909511196061892958977861965362320309693928299682465071579963080546482836469308662938354733079449574080798266363764643245012692919637627357231132392371325732527808875331849366381423625267239871571132206811080059602584346428453335847054687408130066087560837972506901300503346041657682623718521003582183504309954008105020567844022095176069091549393057627763815265554029128944479721292860801611715681492022775376196609385468957837640512304644009698161990564980542718750333643042747214853927324724050161988396319248880801447423986049728058586194122323713781497916127433053448586709505553353401423503378814852073583216778336862670354403328061170486486196004347124411598626267241141588512997023392552416017138083366640502526715945742331202378072326521276683754304135446377406642348394640439172844093458686230428295380713086596453536918375188476222977604093737668685039909411810844083401796764232182807890028311692930677112701118157652863194417335637918255224789974071760307789991389669272000281642321805246728703535985846045230152548276601230270651063769041592922008877819160743712608829362917988243244261187730100732679925402573633391289860725480830684550576492743213673385240271373309851110596334052024756383950682371493864986956973775327069052278796556953400916292710434178325554288630996530222128838026726730132359993610441446869605176460995259394627149968506782369161717812084210383049671743595409312464463194056725543842946170880599689898899256676585767038560004470166339728933990508633785665137142299931621502504820921992484198737642981266718671574700899254252354293835782880535177145225947944543038047465417910910712926501422101516953342843721865358750397919640559496829714869442279483001159728813207375319358171931387011576554578137067909737920931046324787207042285341574116801772877187979168681759566509054438106007288033143987357808603782086832134838174986798111271490055012721685130489044332365833633643490362098048780664586412728573001930424476560714819425036114338680952183006056285199479453550471008944034637711566065488270862760552268781902714878566086445023567154896178220656034808447092752781405599411040429686749084767823405337516535465428105426835487176649009448402903015052628036929289879586723000279053873886057877054486702370670828965388373724950320314340099188908761413416370427812660865341091824783082090373646276622869519195589040257900141404776415709553083057126731711652115999854364740610557315821591170602157419010064384959053885352352506687460388944284408104754636347237345363333057535749309919233078076611006529719092362847017705471619364285965244854163533994305167510741575973243666023822407691507746531257496594674956916378567087427367861556295541850242464752248097627703496242990546693639438096571966008859888235879195522076947870469128376593939004580631231188381519954645617644717717793872065813531877426744461225578134593242025082243714006194346374065136575261930625829795444529171880257169246591258620318258125374511431586833428037118773907267290028467834911665383810916736991864736187067081145162870979862545749294036090767595045091240881588548956750863041581747005927363697185373107107723552145415105328645986660027638841204339564975898727154942558826099601648537434772507751464185759600967953926376678104966743795567666083055003714491870703365308748457331205762365165590810040736108196834184684989857416102711726585253708917182544170985460956739067153963815457811813708083624238816683356633354594161059836164569886850746498213590241409370611847776750180907954013158297673169852991808521010934427093423298388514185967849854375268534960033465227785637282654361357013385435368625246298031525245319095215700575675696782592678161532804413568617630632854671657402080622604107688454600340158857148130359054193979370345062892817681995248718383331229221014261659027633094207980998812500201831884015197877402844980399163656481644841105671230420426475717456873113150908429995411453092471685926347755317401449153891324951111371766184496469286218512011104771417561285870610777426089413870439779657344083091843246473860960602519384161864056125256033680332180912652970441282141782869512703976876022897082040989082881252014599254353468841173378943395833060003895967169242148340902580353901610439421520659547588624390935765315517648252129132289014128564550349647886326889770066644180172223563879063377605145925601301668801978106054288090044643016527002152753357759369027619585950064388533288595744681214285732830190481562574784411489715237468616869495510328608260846834983957906362467492355234374673154520967083627311364180624243453885279446363354238936866253339793277491849107164440837753513546162540466800183142207966288626258736973372196647171378046095110967248233297483511084229959842579309999739720439382769181101606211984778784684542256007034132106092471340939612912605986292539396609270641503968309687121188778532384301982784488544091198791314664064414713262940494429416746946857255206524479785767423816249738430137550440049395285407746248803121264547873372563373449231469644742080290909879156871790818460679421076684498641700425311628546278979289100916110086221937771126313355224860909821404927222778877372495311732941183848578241383429138489176972657974565663058500461518329998717714397998180552746477721578268094391931820322286636382995926048163145774704467970075749571766789105449953090035124567628895195770184119223149718309573191502577229619395340961686576032276135338338075440790044747780700044190700003693086307797107933063293215164585685600238095116352578878156750815836236659127091857646670925836224942309902997766948451374537311993810927123302792423786477890622292101523719889056203916237960291555386880128260757342482738346431989092635784025633324488631249964466012150934547117569018311584767671219914377054495810789853280480426502127942671143680632452865092311020593541955286790018503474355491330535285961342675461663185887816156289057089137244724322322670997087399873014231714268899084020187339661460699669653447403774605608332606612580405671594395949444315621846766242582254947272393158041363100586955228140884711747392071984102691411450288760286726084462854920797186526113375402498452572861237611917734059389134308690275268246572356495129262699532676538205647399918895098707584463815192337011342991880109879756090849598432773085507801360732827977989128045967818402197363877319536744706436678445466928460168000692403936985561258561443711458931681588200214843287853089195907748237310423328496402402841356726088939773296139243835705861309240203220044516075346496529907132226334664413829696724472619063167299724230496461263792535883315076343587724697771166497565554773644793012004578230397281580950701706729921788543367755086307827705892665220491050815141468720561315392411109891308896485524983253855892949874785469978484687964805363792457130493026834757647908568258692411267393355348327170909751282145295158750109495644810751347443634917653426425880677420202398687068475421132358580037107012407680441780348295463849170092476570242087199599094236186600093234725008052400762276130362347059818562618998891148189634323799282551076262303733726052150656519573602204013588650791038403582077405356327930212651599190992921804292609562029551961374986383648317299930431448973594737206918228495727671059696586408662740189035328019052850562204586794774098551251774890323777687034250296644063685751522052036224235736177667869340660768093438679747181186802876533056097493177895533843213978902060011345261761462123458643897429051023160389687978754824688743056997682839079230553950973991990104991946997676639410200601470924186192078857867374099140032258532579167171850058305351185649805236407814913375543396092970260691076414631039590345060967542137507446697030343694639097666211213415440283472835009268279378155682986543175591372630781107292592342852031938189090238053108424022096465920666127404103871828264415344419364439967953708331901323938103161595946711210108796477612941603320285348555015552130392024304381436500603956802208710880328639342901514634264587388355034188463369471198255266804517369729687869182043866921984330196326067404118967657348644706592657638733313378355552985205132688883966501263825361750221688089011642374965526385002986128788047601636473816911137624931744542304638453991514767943944402775161180045331012587154763450850881712498342257094169755823550284620905631713679017309765413101605637874575129591765018022732502341335285748274291649291779660010701362216590115540996023529080379392914246447069940174784773179326633761892779898956339054801237894334234981328916739746279988338737012075502875394257279005648451568070137865470673031346546351232699794505474632798603088289711241677063406717718470133210063705784800884772981528789398924455774845511176831294768234057112838888906996623926592675698394080260194310341145599620022639727564315273429442084832922525489322723163346565500154718190655536440448152287129918603826448638858406626867661347586507527202652525950617837876387370660391763697409445506238294701369799948257567575745870417566352942921313731079377732600424198281699091632254826974958814726610843229919385153215119146882707951659995093753184504947030998959802031898012839075111811579656094800602873065714621624955538759095722410263927834532432126835752011568088750233070939794300193380935984350898562456399395713389248270484419819017646526045409055479007574352947443483126428797414625693383613767060963835509744048460806269119513169230996142393861656876389950909577676745658431340568252383629652497805430029564381754203547102460780761841330568652508401484628454792543401211035887167796205995315165971157222276089519647481097146242502043644921117656133977448131728826223059048797299612896600449305949789832546598603605790851202582398603038070575503842755009828835069733750234479266610416926549784697271983037006149161906460372106873211239378801173062617974226567163674428580212172822766418641262714874897252845617015634070500267393749165181566229241796936585617510041074475156330931612214993418959589767454100480217728977103019838302855383281623886605741320819962848328034290824858767644874653685728080318159500872442934211393147531983497745519999708301987807418632890779592209321778863635323865800799274755861610201920433291356090412924095043223545393441286252216252551664997174147222218536925062096241964936649849319140088188587815680989495264129489285116786664942168243534164171555759162721673475155098314060637154995468750165207104438375264466970110750186846675305821402499368392965734401473539619146613118917461845976162439502994947378554065565689797715509330854973943923118088915635091701800790994326127433605207387944765884510192854419461049245230430563560515037846064445747770586875869193286055322812099613695451893397059755078420395768512969676641169508589696544968543128906962655178398327260858822685963905578691862329516836303868254540574264258181557119945291484314225300173892092048309161164216493604639128404291292230665495882824128233704616431277493637943600857314436296558529022930895983514291882029566752775415907462173169806633411444412661599916429451852026905621799638141683220552655661333724210830861050314792167667427103024553806937314370070876884245349075949633192944350218471832718374664770014964455817505773826710495284327938780721242328257273493930584821668787758974814827040284571871077015382577795666343611952866060684016849464795899304893108098787928813982952131986360427174709902854200747482668993088955696896053628244643372784032921560954485881284659923821096402090597815732214873453893899997290527933855059322547113740507587064473177745042473995534561847687735984207886965391986820039303295118576910356804482072623111891811923904274616201228315287951856665923075876170982667217469935448492186940690409352037102439120941561183073403035906013772632149450594291949717695697110309129817651822241539729814855952272715632318652130416186581909297002257818821464804315569661989173124475025350109647269216241697558274129473548301917948087622339792230935948532795610707125764103900784214312467210306559611511820983765272111926967243512686905236795461945228996243945202185848218689215203053738279557325370510897538255006940161990168007037356471782549381821042183437623461364340456007707340004620184226941953320102541598254085178661649219111481461929260968847253731687580937603668714595590052225538564894201528700250752942201992084955002174779568889659293740935832238017442971027831716111981387763677391880812180301900011765203569649646369534118121990676474184838883825533788604507912109501733300346778705450133800486725121282404943820203487162059230086090898104991192032478557673862350019336958176314346136622478198817935734379199278354164260278003316040786466645553947650315132455072269525443085357421359372957405042816715089824759688346433804058945260077545382319625471579186915467520088934906029192449826545468975542990929222893808480317917563638113519341749302680898985722356262422221836882135939844070901517431338434190028743953453176244277619874214893978028261960441538451140955052032328724732245242748713884577055096415494202693976064094110784809285574342492128027171023199402730494264326597520168703002427108900263729876686309352991878266953534256592339720912789411351337931957966652436439278804232764417735743461188522188095985852391531288027456651235297621387366006524081920399792808053307881242934186145255496370703471752068655558094634063774440619039470887811721655139674463237882936823787255077564204120167855200423967157987990908345903581871541894149459655086109430264104797717028360034196284259935784974005200304044376230472090062720254192961871101474783796176321141882760645884661982715589667739866402310799567601810146395377485002860351616086855790484622127792339346428283479198464842896795465483353929054446448189047344875630316022562473034302558009717756961362178276079733273474989558274394247639816299861003086987320578219825705416574243585827093119314161638554884090378082962160396478024730470157870895382216897695679299802437481862115491333993258595835063587107700300358756077965759434923592566330400029523520421649511691967436665266545306550495417171629717781932602758848987651119921577269728561619900625793755536891174066159265483582780803739075214207162520660879621673564604507991969166624771729946907453175910605857198457547905637866092062007267824133957392415265665270642300262271985474008125977273916398045514639110448425480307455870165329294026630430866516383022989125694443351958782876232711603799930998914656893686776903211992878212858265312951899915408644915116791329635661454213697506295447458415181837196165947104915932226447544894789399422404252973148748769620316592599024065836703513621725711623820294638793040027202374860483155266767134037498405148767278382814018875165682088010905146684206341114652182676322945797032960873472466292428695383066965424542866545119862089903496633604081191863432536061141182985126210812905931438933544035073038890775550166775885907203069670376928780645350895776335624423913550108215756690040954650316994672536938670635500833085893696544042598395172556596532202873441982226178975572636309825590010701332486219778668964658784469222687623813192371744426794043077768678999309433884764508015896180303491994164322929204351874488467253220952754466860051298481815837127116814077261000204900664286534024109993993610477079684942294200772330493057410245917309291430604021809012345465123808991450716434485331206943109625113047147647591047714624503769772798570644348085239717153128914009314116279150744167237329186151206984118098358545020842850837377242253087077276613387443995161089569924868941798903235523581089218906846565184751386352174923637774361840423919107883466050636409790569375555773697765408140432217478477651148839171765939615225585033542502463406001121619528165007898880979805983300920467084234154652848629488550377868920668318503620750008295745893921589255026012413172584961561148380830526696639290704402717203981797357587065903815390862043739565880931903851538755789736529985209874327784791630961583271912976051107867821100518901151797372504833293880689637711561650910178335102690315884132358611597434166365778347982352954748410521079142622654904822400617351405632018873081187009881328081800683194821649541651862671343014842797634750483804760505975629210731071602725364009431435202294219275391799063770189208129164903237055925816704432482853045802625922340953425378181007616567683297197029212812785039881732361673668867312213468780658502171541072240188927214655853860474623444542874728946236959638161331874318202680807247058538575323781195913267438620192345859210634298835501544740163425790217054798322199504025565121484912914786577249327705137092366293141054183331416827234057753588282991903391849587487065412601688908602075135405959736504589633778759250340248847058233286822271438580884464695433483290788564215526997685740771815033160333805048551232001112737128671444862905499758252788901952031536906749352125512852336017903161617324195675838418403597193936579062063911470098408112999826459397504327720995264668538493789865046916557873802756342233828469650602859510570159465526962385493844700395209957714051986076997581332047710583960501059414263116572890602129859347726972341005537947056717388493567016400223063866838780624238188120266070021414429537883370935235054428460098530093304647937842681464450807597144374829476334159965434293595524023610873972313168444309056194779000023691974584245536383792145423620077669516759178628479601310708375400245967311913322164861030362160186135623603336979080783953256543816291623306759837250678608044939086916365437045945889195171800749759207078158008894193560484801180102911722507454306055178584180089129051539246091296058422930888718287297545856181357122878553080586504322286344439986485814484694057748319045565883475919683054504083316338250075737134351412096661026349241179825364631795655747786226969524353091578550101708722345704446127753219085300281095333173586873338703546482182043647261836125234731050611707754637993674843028459437847852156358083656732638576243179646719583680042826296339537641825719101968964529814023053518066638985840721819779904372850330183268239454595718944393927034937343792484790925983917792473378602528142689095336752808596412348812694406542175170668958667970509723680146109930020491955234589840327240206524998600802940621821141240570550568413759488579973411101877848108786753969926784677699434530256161879690860992411890251609018270172004102363258578262819530932718660323474916138078706169560479840990631143555802918707931730156590132452893335542247887358732023419577579612186701614408871893883986663055809680675825910851146112450685231917747973418251285631729264489425566067308139948989069107859979882419889007740298328509389882790976052757884178174908261921056820395129850604414671569690892318910123774044628895289670391121512679567166266727491351583209746300510904246612128214975415196888023335157132415001186485567180247811940670843762841848843919856267951642158624070387275226042958814630091071542245971725639273783077113355451219445440726775611990062151920804421724851537111493295562025347350952277790630757449485819468280165401712669460136064204862368155211072427845866284929168761631077707504398145786328389069473374881653840428408105199610245646633787100543942905157551074417071347006465518607230877478205641609626948658895814754728055921983328256991708193128267483556059243529617423082933076116376330845650701412628027621385738232186478350053935139281275660328875957265517535151180663442493251916968199888498906069727811241301371037281438656963283640474145501982529910952639140398820964509733329021059957224129783572181666559866102831964475246993368067471648248667414236613686227982559014752712825489511693219932481725908279613873445706482579571502145354197381556825464953073113627651491129491492413347950946208650506172674147318527860010196653139528443537735481785363717732898228388864879078410072837024543472810467104559862419308399785792090002130848858074505125880455409015596359647653284984324926093751694528350905279330673692852951323297773415013458909522648345833467033315461173361754994929591075580389559283966489140336495527081181590524043288670118108232100684112356964012598268788708940758106621570976896476129143189867649789376160269205564536177364195607210045645555920708201182857347065557546757704876153496064779087762521599616732822327377321589653600073862668988295948528728623212243645034984911597113336807281180428860656583550218135154478257682247604742253870129736850925434034395992456549507063805477056443621359459976810885566801378427280156616045388674932420571396329435160476688348995916242007375271892656410354733671798553191211060370129452271824054767785110836954531715713385628721892684677628530615403055946502894466237615662453261501830836097862449431832363905528831489118803744351621141479687826916319061211122270844008404708798548463476103971788593098696082899421264517364662964467410669284412699857798762078861441194910887342694094637295277730787074094505690761065643999058329705119351905720398130961535525481658333353889504730869180861648175553756175923933044202889389679366349159501945272050397026788707581170574434064109009449732002229418482773441176770756024520450157993735658369432769129608962173042654032112617743679313676656890186811051716341394925348697124746840484642989954610751500755557283781482222777138327521521677203259361236399805651561737202121502738435212348863238318039593909185795866789848793317367134060820085577477364502892018449705269318621795510936185381376148301076414021589590146110635040225857746452068297727468402106539964729419328858131379726412242936319801817435348172169789080277852967901856788874978950764624026409150137436663684569598224767378648249663912531508474899163420265435007266221913649879245461064698685516977171492090023000959063152373578886933607654076352014748125245158753310961261575343735848845467414801343405817550065480655613883068575578739764720931963169725792881857227210133899962525736489468408964173327185674441676709906227202252925317032329651139260499604431787688339464690201348473171166731746905366720396057481053516068745548422575684556984647981064292624366405512684966647998607876706728263447014382584939479150807881181799117098310174042063515679588964629859627121157307699774339146414875914918143012798160463440436819159915058242838098139763166893997461688746236559405233467107839267622208467088826524056906780523929678327074714198849319954364228390231722999152574519848819452345462148964513315494200865915731193597685156496174018684870835208875385389417805412183582224261471113023725984905885462284208735781110689197009092001077751221047779795228844003610098293018625162506594071522225147669006953641424515560461675542798110641220551178119122000787451510029461894278286328029366634474402176297432407016378098963153660301786660419974265600694792190825732917871570959981691383630693863043046667071566418904645319943174852643336780304895882587638875203079973604711117057711677465299007272509583444486380877553574146108628236018463926011871816997187915210518031867203082519915260336940160760528311697095093711354050088580382205288533888845917986067984115469881298634283569861738280636410664181846049516407004983161592314761021213867384346598280421493507007558077125999094696792434137105901998740139834233943111420037852049151534216606659493134057955538817482033693719145438667129770564601367469571384821653146013435612424990212849813349332847946869554722114325437045004734595342021654812303845526488274836939920876316163616318224139078933918918818683129053219848549937967638276467783605344596858315454739046773987837033386617272074551662403516338836136091683298773199820675312624845859431015712654851082773025335646482325081738550968154985899241286367997195864900240229092263527582564204658153370883516066806393356472281715595524144696109567670754050089509185044140011615951157074557522943186864293506915373328274486740268486573804759914684099108218037287100738464599010149557475352575243000048985020359247446886252785009583849614232002923445745141900560342683680447654469659931036716883273853414441551914814237959774432977941468105610109192436007857017865831656114287899257059020269396950648680725276068653301512060993411685307545491153151969085787411132670738702774768726243693478286677241854987685985405055106919713392629261375875819153203582403732172173925483351191898506513758142241554718651636912006612816406879249089680182636991858038750184834250094248611751114909168113336961213496143398833172969987034986331022406386472880073504807465317470393139791867917287954465190294877457841049387134878651974148472742006879161170246383260778524583362716162219718109083774682415476533994385894454973674690882291571843214805727113230518675364946058798742503842017269929904145184473551274489941793424221054390035319990244256781203802227986821590209483299197746724506993691547320905059064475814228372357292333231921934533239877456449451543842720840437407181232634489710415504238077845305967099118052383277511716358358996828169955108482455324545086615605051313773095107333014257774822484854235422293038893181803487241461984237459733883195423321090702674332968075816998446912815138814266614045123230669493620484434916125890313917315798768520913748414896303169855976108481774345706426032889259980735657876971240126136998615052729310364960768811127832780569403340680354285347885917325165977052463986756272826733402529694375733065354127245234583299259954131120570307291588018843948976678296328450884631076180655976291741906073603373044295715470998881906104517014440353974422324844790116510565608871716377729851658821790343781930008198426808119294233155231356230162863078465977548923849658633753084018283829030895284540196321867266743625680130796420889215196590982757011661496446950698109693321872921857035615197867228722576530954227101784548692722105439570991625390824126622490571495235432702427763744562801471766954775900711458358583208843498258857543665756960382244695768428005420163102641067090009790657174600450153757131846402530943673862443149483428307065313427276322701100102315580466826318821084255341751672371513055494254044914769443920996976441390586790407238608005904311006641715879643466325089179186045266893072415197725802119814090884512591244617362024578933998896507842814571286169687509364659205950927808245786881924411932949080962205291804745975188390052810271045507566082733066433203113805905570900240838445748491077395084218098684281094128326985048377054646285099008341418123312386729190958531844911036460412396926883239934973849442515686385440294559744197178353660153638662675031787157741694030539276325606405753027237189808243781672790302347703499576587041899868684251113782370143580754801721131535078437131306094474656673066786789250367634749934682936545083174381753192580923769754019408431064268390172484243679634274128954485265919457049048422029368738163001089687295550285587739023361856521543749767114197147826921894919003351426602951507086500239503708210241160887824237625871639480427137082368978542432344609421777862739645946372448622890180940482063964229193429590809886700420428522928301247203146501050306743568715032509683557992105502028345772188228060927343031397144523978251340458557272246136586851811182042290658137809195819594248868006075320340840570063387542877697825158478616305709171750832947796283379421523149592087588756501743202144152220891423302794015831805958102738304240708304463449301778866379856524917742665054286018078794183502552255911265485476268292651927906753086749819099602525644776970881478066580743834521838927681860454462922698675722529809898703440754237703980953603742684354544217950007496100843930495470305516536168958513391655951178530921106439546867833901369846319048971721494048152773993966936922141980166356583443964875066087246384546461385419773601882784888539679188699098829021902455731074651996793367687027011370152740860093929878171719466440875493327064413693336446307489511125322614071169647970241549753145956165090428199972184828961910936469095993000959658088401362979557426895372389849805351606345024680710018317083384996973488622372682580992061086171122762594341592775440777958626467196030075328669979952342597533902939220903610518840962718752669493792932391879714430965167302860568813377524686323617692715329545606751573846200866806699504686118303051109938408115590228953145537813870834399267706507250024334474294402902280732431119422369456130264056922414638955527520889995599080735477712306625670690428040089121886597950522449452121050929321822686974900122415918170104695924857356882333503710737510527714977677992522801217205988629278835672175473423424306379189446409904958505763674235739164867762360077323125102594218171690528028206808561041593606859885859649438373346702954616494237383885768618878381199284386778049748765594075190160532923102405054037633284126068010546954796725372330475115126484059047109308483371042479267218727145022467277235845715979836372766056600715296117245669070845384563079525514205387254768524854658802979249969283458459742686709013253186474994616872543329369530573482748754192597099168508556555292644380280070319264703969894463546870977512950640849353245261674865239062889332007561271268077411846870908693009231110128607669502282297143684132444323965148293560968831261203351788493251907097463948200206978894512885042169024173263579923114300478769362346414325110799384681971524629220677841728961793530153950507039690567617634097434409701986210518668858680444423082434262770727868871382138355557301451678651794043924867329805121302564970179051977548967787700303729076717493708434122898192257263280236692262297346759453853422567616364444483658559153549755938754372152212858041005537593245199222436830525925759798569923648610705605788029161470013537277586611606129422997182577170525556589036108693967348740407832531041749956248926820182247593960223842620555555376825325610893872596504165657468224061953496484290865635768007594051661934171815864424707336076902196109770168664890822347523138096269479734603437006551807103629488852218148513970862517180384150432431906013469075664566345438193290051677930541063745274088842444923607267008721827657592873770641717352321437111767031769305791662580446200793270083395564152272263798492386737106777667850040789158795478478278939533050035717125273637872236250831256654096346068609808065752709307615140385735300082960948563065916726779009924169474119892241916331597122343572173478132982247065135537809226810385588927478466369676033616759401064926459638848939169258041012668323770512378969614868253006977914675984660945953613355741856292163003239940497388368646708787882637375407754185627180597811259565318937286253259752610241323721028361337199559940241081670762821673499287752121830700519271716205125372002156665153428709376144330647100655198622716387611463108766142339281822045001486843640936808442920923041284331673146321923286970939833408382243278696988460564324610021385731533482642926234543086431871041681671774008318774201312238519358786714578898147835342979040061184613279276513823824597196650692692991822858764196204059177466294101939063732418639238700730412182875426941158515007880361340173736636874433053223316912310715467927084345219714584636066648439787685318212038742605154395858339942378270177161019831144071981111581687063703113794477015842324376410200279808257945742597073977961150982068039054041552095251454530626808976358479436496539401933875385353457003006166856964690552447825606742205845697591371779648568675999824054542495717182618596118582275833831976373083680773605680241495909087907893578266418965335377268130096649652190499775259828804084331214654503499792526391809579558145278561158391662363822797090288499999556201056203922562545304373769831841117492498655178712576698472269165285758559967918753937267182171495942512006374522375686867634236742201722808649498848802740117847497341211767965866511335832381286923189803139409777907644996148423270884217991374213693062774386743490441710599428151196957748895208947113370542990262041060107435807261716829116399468664456790182246348268000019647470326790112787351373825658637720523336836329655221832559977026954010004201333513166775722684062007281900571548686198180162577086058439408681435499526666380974875632746676184104412052794117401666537292560274909368195388621239201564765414983778459355793570397579487806286877941169477417542163008714644849355576907825614135370771406978114772817106691675665739442731358024024604506949896533043689100726025022904700292103858988336656939023677352206012266938426563245849373200714026187258986373026603431128771229461315038719292396413103576973270817898065683250154491564265863492849523680728649325217082385913002559161818386278050713870637541796432239263566209596490909743444059685186241235023127996051328679312103357196296470347477923556943157283484713952989558801871776728930725296134516524018637906264074189907289355386924502695169056254004333872788541713659880497341977071394233884316626503444632234492965939563239862696340604426857077231643398806272854394657683337602140590731955479007898584146225596872305362747257021053271976721397383071347119670224904173835475592895411105948676185749764175586951301651584887182803358094285118906232377079387761603946641787943821528101079240593938121710486142399573294563172775097769857337832411768497352214166010701987466052631429640034632743702980888171179726680436175814378776729783286990031280508860148522969391024742672223151127528881150645447097841153812986576549145673208194522735303891902770551594812246105135533087845544584458157944000270140226017163472932401537423478585020005217438080468913802041707156324913480383532344798358393433604296222530944520457895174720325813312081289909133431266022938716188545729710849295743633637284468148428335575036247869474736348823915613879728319714845645065551477972707103884306647732534016833357974689652454750001071946746008959592614139534112770073350753892726083419972931134563769069509009760547572429526582723943886815512743707076124414298233235189316245270213637482855926583463279356993155996676089127017449481419298739769577391426188336278568799315292957665431226254244022198387153635619418510545249561871261661810608594131696309870588759299282990573224045837629446416510630766573366031421525281576150722625542602038072265494849563297939794121370770292564016209237003499490865999165210725443569378359352399249381828399296314702608647421504520120969823152364867280803747982457258386394824918000658161191612226580243494346156411503037994516600334492146964298309305175871812261491728408982408864019850225394987261961644781560159800221136209702381606946581182471869854535032060765794549393952134396769090897951716778687854487208444977496891167523624203070910076434122728371166314579773998608431061678753006958470082319614753334579542826878872570495815113341302808069655624507883206045634220786217834784687057342566937670562997630364715091896766763543854545615190095841888560312723895467758508196647604280661862045373745183746147246307584685275975123723796622222464412277520262242859003765352100271806337994384392951097581670446259921753199503153415650303166939464944786301226631549790449657336507569489498180473918981373440072650127315254793828562158973015044239085690655943758346561734810597512501848957782410072148762196464768465991814376744064497417397159557600886908441230237199004332718037774235213503722610377253519563432846475483308093411804366831562236261239198797070845953692232780132201383894580553263492220190651974009507808529539766053920281422350516066327865413820466128894880441018000476157938247964451516123961257179215352991026798695889726574154638034454162205003772525224650900493591324088702747256141610585774744071638375440185086780263311337773458992023391489964063677574609779557104825630889411751482139701007725289251278283987095910308129583324363588307895692841278702032605410454142002253383176931389128306413844658495153689297028604696080948667832245500582363292191562528486174315189671002160091664272726251597769299625036988718067439224047708540224017034117067058393091213463869651560119784376272505015227753736629474050590529792961023414941362524172824410797935005873429620345198555986010168827641836914034807752229839369717049675208266409445556902036298421257825184889760877827909298213324547773477307238160791092291742516274917619445409519848070632448313361750233496016168083038471757999657765372420349276577694259969221128776101629532754322732653574705637227726214345758330835797431278518089420750867682326828689318695989322301250331637157729056642936092315620364785298805388949940671904949763753107523304418747652524672823712279121649065558222399031448823642125106797415865816902599550649419662739816870606629158274874538199483178038122400665008019177409032124732594007081144712301824353189961963022886382905724152336633530461283073092585532867340182820906548185136953867568549991915672697792503462351830528728846399715533635981579821497060183937748984090100981817724925280924236642357979041928085791219811551860000837817314163123026478205223039564585701635152217836083285021910832770247132896524229727364449873809724754044274953559139057045067029172135509344973917937389974043112480924127228795489666772161612197647708911157132740272516466966274516815274949639543355295810937985595046948390563245166124208013117447086901370039297296904230112884240163109328426615768180994832188323128623703303615898330627761949551114704857270579345423931269424365676965736803340089704642107018230799600080459232240719008621309614211501065421952272168580071741622243552781333215849390163151953936250166399704374613506177932739373949378246527671523084453371558571761138540001700745928161088795240375703465010306116991509934372329610485284778639960862630420539531178931474885616359667413584997927692108960380017345998612264822530088241542978009085502921693806643391605792669164600766369370562352487129843609579505302520554527254870810224577107269289737322007455594720097501964645632469850095652471150717303468755141683868597779690418475317908291757804099802767780268222011394824486555406756388716994027002496291767829815773079485153948686130633599959607787503565002056832392319102943417195430010011224062707547445587735930978016225041332039733998699527294167220313585459818702765778951239134603283172707088365645693895744524807704673844911843017394130382370944403239848441499680030268211410715418209185859309920217417866562293372438739752438434852987729210798767450862005186646921431057542800334155595128425307167301505589354270960270563684304301138748569402037663558900193668135306119909929874791142910118164066977443462438790608063014455962314399060718150192861377472689923571532181018125576108041721811332776516764152754985884740735464778659670012948384025206320770918944850707002403154290719394784339172357443525846213354687398796061347983147320155159798791187621258181673451125107232908207839825828119355280851227060144790893612891779450709412730044600861936843097541992360564262585175763972956375758696022959551685362269697508135228644801482061531800157833299369954750587667850775911168223237712897182103187701162731194833794785374908379909306534508490326569013711970624210162782580179726067386176480183186305989446937872917018321653002527882185380277158313429691640590375416893984575665540837823062537773300620395266078525724752327219696118680431228952464366011137484381898416958254991119547873817081668745242459060201925288225765946235518735529110796948300071069840779083168686265786014092766010763582124543690498108119111890147383302828540669784354732258508643734495888038880070450428360768330057931190948812450785129863111948573365205357262558917866453928481623842125098565092839197651123928916947924502845019368869129189596421327506726589035156466408115947253172797308069892716138726409865641101349271651590981925353195685906552614148434092329478996834617346397963756851706309957099507871080891483442642107311648333142598169523111932150763054092749276069581430011970106821617957102626652565191195397112327285709268104706449001622592199505866238750266479473679819116865304084686458303594447968584956565742100964886702206386745305617045885990796382346088642270219330892577021178529991332117691247385393483640327286162246738838834224408373299858465664809257967429347031243860425176262769073916767272763046235941544807924608782701233135465267193604776429391600241011916282353026575443266953450372648318651548062535414860057712548762432106327817032011635751658633733734633703871552466355067645060778932789120088850012182049017736656913901488350139997687563723464790896800134141437577890341576867571288492086489747991709163628366088723711564672668156248828463238240574797643627934710294215976931522535489961311631581954857614562162574440716980062681062025485234280709098086880203388637881368294623410051180029690592288956640231448484517696011455455037895391247132913503148229041708074581339924496811096189297270317737758294203985286735779411241991862850354595110817752943846235573888216145485770439041965405692698751659900348095056654945386398298492595871652552194016948678601862706725546753095829398243875585491115476927475560428173393303757393045608924343766406565993653266452634762826399103085802193469119962105632531606265286354361240865330024785454275782174372013102844549336405623793018862640471859905228042410841707654102907025178500060998211480512817675061459415879007814543512317815356642310278520381394608835434512829698284884768409988157871741751954991513508459359835316565025473012748419276297072774112300809863412518830001008991375092496994355547003194252304723456391405787554174929841857243880804239307778740798732621585828127536039711370402782850637710504191251721406894522249598751698746715590459151388711768782797376543934202364754775514370123414133633221150877941155752232410214338866313462409688543077466213031853200091499259618394077078901862887005061809300103257663026949654797415304935553583989329837095234401357036514955607490877666036776315617649897589864979078966257328221754648233358367209525264902388884957654888488582510124024258034441875076669442606296082208149991801703246650088047816144678697864122286741889945903460738622727127258404435690828788190828272288209641615622005285459929144487152162822849578142702514151387452164303939373145399695039160643292989648693737808234852763457223335094944895528397143901374052967467035802752787695626457794345880029205730206232969008294992937138002945002027875570880216867671402361900235584680787689076853046085158762154677961716114081241516618402573813744598485155708806160471260838897737478134920558327556121854576462092191501964503350396761565875824384807236363903579561276002808434951058363836209623439192888924758546851124415646518587469663183771983878373195100214081809367112758721649772173362089163521121599311768397606696551205900028816196383468052772708801098502639628889803939460214999901373019523029263012964577531963959736614007579408582756357401392757649720186445736912246504218533671146946818808275137771784390927753273254187693021155886762187222282202527754023932928153315407776150930500654482214553610395756555613060182207927255878729998079535583091403455683465428570481671470749537387398744702028353857350521164322487831989070313355832837384909634040788777023286250821389079718330979337308353895640039645631353472420021292829940447282095435168084145816718371074275520105585180565327719598277504521210534841003533923776915784896066697063095584782755053348474893032629949161236094197717906647047368096715143185226082162777657671160443863690298711709450558777881336301338259644608813793389688645791436138920544574014988632414905048328144939872387367389331640903427984606583055117101220694850777878449383477387506453279276484238539999857834095248345607096095515978569740977625745592160880910220946515758421834896004310727696577359921394033076001211076813466746510064953593655955132945447454781463376052913589495252831271153417580523170609062117172310980141918505623110812769930172305471727436052457545421861904090571783503830019026215611203047933714370645326331981238847695914108956531467970738318843018668126586946572353632941961319227871211227855181315761492094548667504617482008387531045756604568839541352011639068018599417626275997481763816131643367134448973556470627465034255163839735179070237040713031749018929224772333118981174599398514980181723859557860508276700416916099123289472933819540030775992490024605097254951557134157139743606023483982609494841901830497353278237804867970081970281474342356962263455734507023703652585489937204481758738111637140796916228040475577235876186428361064170277720234507549523352162712324794219211422007441169023016102683492846522493756491788619121175944737070685242694271530119008324791241454915188567192632627294501322454356821736680154977099960081146712308820233283265773848252215722988171460069086139072180675627425049201021144201691608911084722390601038730790749104988598770503223831656989625332597476549378333704440084467793961591100950833369748825782105957805560766080757254663745380209905690528716492576992647602693211333856599749286251593953652805285423842986274352709625883767662767609126423668604384275730724396610549638747182663420937963565176195698492200359282454581640473099257783904800931905169909884818326363538036859959776789613830871951213644740818912216210433305390393718506422777893753702121974235560904668834080158438817465861118562352606081600478720478580664284689221404181097511202916575578572448384183061530649919703615357048417980353975692144435891246992909857837549785502042580109007753728652141874508448615702555887271068558791744143179558115297872749283286285753044051102811703933573170712128193419985236112503688337127319396955966700764891463276737867789742910931313640748345331346662642000486277600543538068112745140806272317649885350270719948364322500725254896998029745989260701549349072696650986591800433638696310003828347652430468570241347905589651987442042310635769921305327981802040983967518498500162626136691855114494571360355203066850445159637708805099444703509701662972275570514323935864136522869394071412978601104552680922647975375318076691219572714118444907990769405150144414574896294857525572413427927638914164518665969472652328361782808833497195618361115009926513552855044212474972060872352088513138163721161385464300756030518980005058486435552109171877353240622054110442042913058218568238664308334803419994927357677917327953415695507272309642800778809248550071098239447776414147970784019123362000195289340886307718131631722552367454788112357663781161045779313120771215443560613285315674064427802247267667990121207346622166117592644274983884843125327201048165962881455361125525078132701181897675475446876005723560670784683507475927630669190733901220787379352916341444742063642786133156142919799992839462786494882600337418395378117380962886371601320144094634223074084241670290104241426227071228895621317608778636344412551504734943478957862635890739316848554696455220937751980128346588788926023572695216607302050355926851351739057225447539099023528408185419408210742679016219454033619172579175305183184321979613907222221236120160878977165465758498477604277787544669889860532898322964098531575965563140375487205215111676866209653653546422274283013861257824811884738486312563887951626027864475844968427518031644995237201137039307775096016347323341494854071543407123360539057900085558653998526959602305006596881628135455986024615668085676304470496111696484870233560781665080736993195046580351414459481050759643917445691715493301684978294116556972293557567120989718707220444524429103076862734294612852657744522222529376919855143717695904154091230312738736429983582702053178076681268623837689740728144919693002568874002086024711822893616411970094679020734188859304436716108622499046612283795553600917161423321552355360679069014649190762305436258432896337866158231616928098339237309787725175628007293032068408654309703817942964605839595478611958482419213426772202159962929321598457771227090331147553815649431723186800182109721144806516731916050800078020092511979225855575698555781291196795837762408341651318941375561238675573066568467827984780390373665720624445594585490514879677648613186853053202708163628398474797033650550494886584566649869847459058630220306117959929683678496545119029533376888950813069666622927696154618516038201777978044085016463434611083270092396280634474018815393835821500601844927737928745371434901241804298509593075637514897356234395494954460377015270656811005489630564494142366226435537754774237240326254490300063914119652173402744076473149074484521070885825492742976645831561402407970013458414074810011381093623580226559342276487052064831547761466745986589404194299043664893352460884942991201982376575737639240765105248072428264014881773377754972860551026990393831178329617120263354508787217160024184524926292222586680851511610113199878225251444735062785285898142636775502916036616664111253522442375050048077487337375072044303421503213039345536908072492157710710859060225410134073592001421930438695498123089295760389034384572294182690412763630621416160266326425262062114661505140519367568258466770277283495992744482287297931816427539159097001666510617220482820497546923460641287388213044644065894498370460288527881662327804626502734745277607554351283734225765769360829261743371660289434985002901587411025972134968002721930229865177607014141629339572481643773117366693288979917043577910905819537765015384246677358414344037634977416437666537390441805476210846031296670201876950678297887123210594288842621242710812473954156326779149589164243587667868420526082212210392186107238033545287813536222513624997430009959797472082378888185748501049041959004393026605417201499294739618272083883713692887440297911236282254465411247121646614068066265605199524891329865199995656964960707641114985334624588905071003775464097913690034261769792515158514675177474730175217309671125180856509797763651617039088165228932143059673615997960010407116379691707710866846766104315395051721551189583357942330078998479705224033061860706167975051245316082029234282412046248856172842340345965710151366576376600335578072397689433727496436629844196852070725149279241466502023205305171132414267886640111090126724458409621685064479173983392576233270631951663163205941801520585892897555848130501195130308891922016692487453368065551665786838591611996677405463994578595876839487816874619793182090151736406091935866022413853520113349504852720657719728895328152070890226053575011332893575374352701274900991142786782303604195252686816081473973737523039347340942677723015448367035742967545078630103676219567177057820967874372639966348126501716816322188369706969603479475174794409059388897052930832901538788139551857927543525898878152926027926840044808523322231958925393984728051407404519169971285395159013758889327032673185140556121793537542975011243233321847338718060339685331179022104119784512394878990213469406951238560799145691185190990975983279817368877771265776971277685667527298665737880157293835196729292082836373473108098292092962657818264417984753786347573087857224269011823518804354133188321482994058594911477615423543557022282491968019874655627758883585909368638629309769758269419497767804465278499016216055125507296492258610201401203528146322376169103632782596944269043906237081071775801407867676030263305047870518987445841188096691595230673926455712649718927235098993564794971548633840968978626556348224511892068393023927534091434037450462023909696345306075960763065466148700879346478353028929744100841123389601147142706114047324377141857407123261578977260886974489976161934044586892754605531239550218728315984189572788311568449313007025293592632417243235498900742138811751517136632870290875768410281348556234835785066888762603776966654684031550257379599577622601651389702607585559713637947630682780574883810932343513709103315448837581614492486006426565083372623110742952371622707474035389288904333738636043116911347621479654832349869988747344076662909470853029821630931434308412111611470077239657584407138770343484363716329966337155022852820020104371284932199842072264852396458687601382695262269756044999674280223039032350944154486779637894785029048482095715450071263131708132838190943602758798836099264271160444870935346775820352798509172628028777018479563383779822088683474739710165983740082216396708758082315708076285359348489589610266229551414174482892928464495129731928068162287269382976159138844840492996709397440154975958265487026984267466207836648124975426086201024660548207013740621955633991252848906581243620723264964620922608103409236820737553022722570800385956427654670517816628086449804169194062279560466948347458067590852772944736932525138539470814462805656347677971079579422391328327368098350053282694569609768901044728356794139467334613075175991091062090057453476452185053987779999763259494540958513990979268351088453192367651284836932081855621396823545101916765790232671348440477764072912091771305468675927621955894404111769059464210138593718873527150994907282989269938715809850147467849075379327643566104944547839946746982522122418847925503204199501372112165502159343581748519344725282957081246661009373750081537736655744896279404048296147488395045352894401161292720527434167851086593505866060474729387658246305290279832162803177016579121487704505882093872157718959096151162981444001943843827096046058674599046171525786590006193259959098286225420472927390950346668485131575183009188661097822041806436182002729732277138538374369081907989303259353422343135923319733308357625568387740897290915175493094588873360196011810061908887082523309949749533476787134372365855230592016322602065005910781870707289377832431865676610736051514557327916382265596692415310401220930889906354755752264032223473731623624345084393100751538936091953133109455207887905912698979035200527306689408259332227288159472117071301678433802810996615669252967307091748529337554621746614236289382588231960387312778823886481809150577835512993364856282453791297529356945245633893283162339222146301306916516287820318930514527364811314533243908715133912499131161649426458396374646517289077832742740913131103780479062572682199571081297132947705600201783958330346849208749467007910540717528521917070691315725380865884887787996286496920153605983176019951462690551251416043430749652880923549536906154556893112123953096236745066418510338191831940701622735832022701495709950068489726645573370918534497874829675290176774923980179590791711703716454405589324312662593344840845969736111790119009498934804321561399889891210094948944902417122031029504814193945806423944626178280953614462948846956828436066500036842598143107998804968544512350782527482862784892242087275600075316883706796284989147065448312735828998695753160093273031310626541771303747656536164107040796116683700184082877773033622678656578304329642150032894629653522230842871214800219930723885780381816297064682152369824729756020201086832252339844737676990304488459381218565545337756840327830949298789539937820638237847468261840170852524364009448353611468752034704077667142559687004134157225350276704066914880223306215039406030291179119196177675563397989374286139460946762849786433498400553645552390340264440196325612736165232643379046289556358169820899527720675537468270178613811489852519670663374169257116092606041569535967200927519512558736074021680194367956416947084700136860171681941476322139143570335001147845854483238865716565633752313527925966225144728351032755753243745066261517822891291517682564454560700601432202733586271237121648477325972290531627898003345851079613773896107849024180816251339373283477047387067828294550621009843242183755418089751773935645925848711105162146120079908853244317879908524140906308626284597321589077931492254248677315248737321561953244025056496648183564992819048122321094532449832017580913805313210104152354512230185200909919294097078327779668757813866891272482908836826659535969051774808279111587256814342312763660495405938824107994255000513989654839972029084938555636933059647200678102402938440608337079431289048839919955732037679859579433917330178692512774380637250626525524329129820374312173450970753056620759505059668219474738792801951098111215553114826255591564462046855965610663083680619601294540342081234501713759411938188032726848861448581677030378014387410887837397028746174401615006673527453216083523924249119318826021074151880801303394286109864348591705086608560012292824807942116803732978925376221299500444342850395581212264713889286850337660308131903787379946407112739187766231029996796847832766903453251341233720820278233934832550814908457785687491265887935916074451849398519694825368646303977793487504615168296387528288287885390663068317966359586749904638459284815159728588543475277288356623894511095235247041860232635144392025741657360213719438908852464135567248758553845642553034767439485753318075373925954532513738454316030825768830963604055955523677472133970254248571277304661453771061632276326993500163702205061055663813185079745671827221785419943905027804951109951131745583675876926173851534252472807924614677522268004918596896848527535489760511355012388375108054314041478477719009760135238631081805277866512699835796970745067411809370948439062128227526772587387065368462742426402964409819141918836706851293449010271784860086436140692509290933066224507499946873756717122413552650668887553145966612971831744950005638545668790476711040413023585702659837392554207737382200135009484144138028655672248070426985123936077884458742886958155887816455104799368520242396997751425870809573394696412957921717612792179341312217370829754551648307784944653258365780746646026526950601249444664685146358637267130699941397377478708154733075613554010917719130252967393654858392305231942209745461183045448518993539398476920192431476670461746407735510532897555594300166414602979752515352694311075167804571271382237706176109073266935401015565474963230818817225995921881757073556671457860883076113661144872607565375216293275931664183167895550145643829136078036405167650878947960163253587665570982655071656016711969122356707170664286081383114373377940632839547544726416739162107788792922189816887360941623047647067787174066906235193465821139342318962963642274042299684483824864234481685845743487225003592241804287841067536561971386957070973312925037409044051457140845429185724563984625732652094826518781867888236705546742756920463273581930553059917079539461866270942595649302294896120459147997466507463192618400981361268609972310309746742365473157860257228804517788622255259371009276401647768669965157249936540378909004252226967671747891185708537033233922320823363330036836296618209055828971226556253035947725382123139935717813996094040759547234787269716694047403532153849104484511064974757451775258021413357870029007923667947552187648917599488481989561013983786569851394662875117928246484842958593181262907716527383366025783045656247960237604678227696322801256722094268922637781791945053411072033452246046817703646358980466470173074695429145377850113379386280414982941663192803316202675392749828696514359678478437510509751229142091618264188334089342445209499920823056345893823500599708492102839303392911032640142906580934690704986763295402803609642658949121327770853718969594282338732973618767332810345156447051210804419825006615570060342386328331629109229166906900429289921385555007678347416532844667931524571396055042671144947223795734889803043497342877947851646837309373393355285719768748396283917089404112423675827940865120658176043457596196757370441747643931767776117637044831402090335326320060096430736550131057007978920761743710222736310522853510290741076441374025153384536898910688543461628617956895263979746895597316321408781846484206907547656780746952306173624266162722855838988125733512238402356521322694382758385723684070542665441395739512647193035993896924868567193729862227066074416923138399882071077321016859675969155163603396992389886587742524052292546647626108515939960172967847395310724519318579977903674025313576464015206766417878769346012080328497212357121038263491115370066285575224559798430946578344950289846509395834187390719761564055132416363599648803923391054955740036104947790762285901899551114707371387427832394004856014565975686312108627677501322154444404973382351271623426043373707731742797381451762179297240430659333151685070448762966719858457569273254488222357013217602326193893272253539200729028120509905389842020182540994106382092322114659424246766815916410566193719807532234585325981406907870888611703689990241423703927020536703241653279516379767754328260836622609566739327818990866794116828621087052624485344930888604867432687080404970787061287162300255298692127902334902251646361761879915516080465283025355510570982562317919812637872694678977520756941636292026700816893605170511778261339617268230164359651007596985567678466938035168472265572900802233375190918017943208439648919146540812889831398330977013388520879261241596998142936899360461012515730943419852053186344596984671033229630253530356228809832895101029515478178375583437200307701136841222099059229543374979928490833109229872063365369772776338161227500115925129227398501033839683102095317407652307011333597056894720486378342502359852702467360822585825976471645354103006261310422185861340071136622830046109961877978931166281935408418757163683684391165364809670356463223545191454467160363119955292373867497725074114693312915559588990641122951028815241020679648110017337463439248528085756451399461786418665752518058875032614919734119502450281043230739932286853222785723269789520335064579843717835081873325862228386122359825464941574945090114044008273902948997054584533713214080632000939573477438525731157359394692988393067928676532760020280720887679956175906470258667290583049595924508992012910200047998988353528636346139869102939722636241280332410687700705254606912057779035171477457484387620265667252466994795658345186898128695742202847946971190763797305735800068954528104597318953153255031359824724078623539618403957721426934852810313980022119063849189475058229720847595721775293255280325949782345269437928809374017453844371252832169742503168779832514602333263462729077929432677563965773907192334857989661032407802217218687365826755112540468422589719914381142172152439097447679254083994829014625697192977258903884231226899125105504552078530392707154347664703072726117484070662851653644854812920845921991880736871673164802965071056803770878124829380272894874741387989726261140840445886557568021553548591730185656540521276176165373485524624013578063665026168682887361435838816561292167054505464332330201511284373820226769807659555269227690522732285561173021088316408078147557264388838707220002068942763419056014213203216484258391974380501695015081393803882321239734890919637482174672753434240672095773855894235929229953490790594696610408604993117974643936724452459271300526918776793843547906625156558734022115948537728102199635867428748193445185043142548177232870153497793408223091306440769637139568881149906811011386424107405866736015140018513799913401002688483193096974863421595569840566106024130260560345216179185896947760796078160329277700431168814273704494936430382886307074560277091501740329009384279236060427413855632733976967184853365238990185843864425319281462007643434580867923883103161303674186983544632930466106693419919186954558722676483968218156627636246982615146158939302367735580302591107810975110796936170802018306849286292296010097120092174857641872349498609038086418358252347746219804767651613967658254872916604504397459911829917487281089991496464260296900456271755745315206216625747844281600036077927579614348852508736379189658125340262369208702457893298220990554865885949844672069341085987844485255838267590882363690312448305746460426690824970421863169477376899169804588211417475876847085065143475352285434557618308698915303350083402229501138382766349420860540396415506783380999161591101966111436225703867969764046597805662555785021382107753433676465965970399338613913262752142422133849062512699633000258194553229741668719873534995938705823449971145575414941093016987675254894347640315583530438834694223666280191480986012467435162827268337636849586351662209307203810961230046376144999710414763279545991060958183318863239197012660781070279523837623701373523811530165998313751378047739240334310268811839738168278726557171043712713591097369207988609772425527585234932248842540606393733064646340780209230492391885082023806748977404756066814296827315710155392850241146137831219723969579347554734371572426949343509764063821883610443682760264307085016858659166857821284232535561390631106563359910029042486814569960896543153467806928447031088797729142844943070501177638940734423747972437858352196332674633702536995751853759455201552362534211931903302346324250564884143539327380470400202080636806709069759565723885959650076124247160186676338167180411739787284920795949744700674443507826578596827259366600051491956351899491750214613717570936171623293905742166129572309743188442477044062340477833060408908110819744741002511017919667904906498700885492252233909212972727233977574685569011804775808636085159288972577270544037066673547920726308321184243888176720927978567071929602781123506409663613297147146066918279802555716966210339263229324775562958059745367091387540181441345473462827633927986048085201134496483549584508878534834036541663209448107938727608545875447279374461862485533284863646180029562861030235319010897769676144477650815611768626667988042592950528773749115031492683667548010872155348789983520927394593574167844932766495800277032070412565455540968925082025796078738946392008172033613818144315351000615493685536620458288284940172770896355007271228716895568440905404866494604358843146437445571443770728672406807278872672710058819885564947247549914387103675962830570830724473606676841572087832676172195715717509120894090008973436423024913293691582433275826767286903591767914691832219309119980771835013583565100517438705745484479092445019016976022569878873646075419354522942917993525795745423060237730240251365539917072276203241259816361199832514806451377483355400218609809819007564091476093160051958121084793911297279946480041184241122440700405384839384573827205416583439256713964102101574520724808328863724570358681343019480757706816888933895632400384220001412621182385312829437692495317554868818838183778668568836946310393484361956706291120920378806872871591418474007575651715978156789502559413356532753305914317791850042885114307105756408000906647599402256793193533931059944896390984311326119633690562814358736766289421355813833246665123747402885137290700191171531522587324069000931467288105099523263609813054033355748315542146450471196023716900713534718571279324807915176514598502250829365602441022121580810329530704501293690959643802006349345980744519431474987499340367302894668968897233592556960811116132873716111919294670494123857941892582260537993368234059574854983215032357141066966544002993603593796726387668389215183873794589255899607681488723907939021239271183436905862241978899193354862821530839699299542874146718802664136437554083892100699680407091431855229094939804093626862420465526412289598000564304058381197982797194648417359499047119804974906535840116413511522239360011620524284018921547491550952608019515252755487064151280496006328978054028301673825400806724232078369758359740727186776159506996281541660800851422497436457901779221991892569770165749585382636498542319839646232383007188919800695713450397690566889048061136849031697446802323160987273448989747623012566137209777009062503339159233305137179183926931484002846590715533900168546818760370904672013115431158792511552204471015116743268431600011777373621474247575842237913023026972489458419333375530944333320188047379696211365218285907760147297369127676927287497050117825354901150818550424408375258152739237758294248376479342047294938149290851406769762747705951944585241715592582518803435316006922248355354971171254983183246876386836074353202854878730023802120503285864046530413890717039274146000867261614569844455955083511120884757627989691758689260203170293944141226069188074481173757492189395387835660002308512287833260781957805898833928357567258045187501801016796081943338310676362011502846297940141004795209208551690774086869693097088416863113162411939794613692064174496149726831649756545950396715223324742756914150494089493522827062546419426060520658991051150306506763281441880558682718231022444721418526041344536183876560242365427639015525199379586893083112542426904331394487406397090442483607809625379936093370872885952054102518630685927855156929646133819880147037989319496311258598223699904529709378129480138240912742860999714708428620661965495423180272394214656013470667488461916310754131851353854825579691806444371697231524700654963399723581609063803542763001795642185846337859838781252841292557399163141735554498977595859170968312733814591678664602095469253834428555131766198881087384114649845418752870888267337727984638282345137359201627351998940167731136207175522604956334675806786924104854698571974575147679411888717899387340438306311906039292198922697216691968197707682539801739417295211016177610509400812647858508054517706578047879496659591804445172513471319502017710859257638536969216893061246063096635297437226659773130085383391267760926872865542863913394337470220107681629915770540843683766398699102304851825791300015148215437035293189491957041275073626135656128739290671526599467497490397418084557260909869701691423690873542384352856245776269982973300724501487835963477540525633807396142569847704126621335370179795697005061278517617078589635341388780321438617451132567077452228379010172413278377860672499901440141750296457932323203343074729484712187385804607587021279743691521212843197143658668465976401683897608242192156433313807314308312411937330284135593257337136832297391665663527017051465584779308007329570440079540740107790820157669236285929149191655714936348109387247627773666899180019239693843626265314263684840105219245570703231158523533090930882551227720998794904834513540001885792978869135254898100978615712944224722087677260766419927943725432641384717823728000580313240936852578125114695603319070248843811899620066196959313568883408428218822080625004609403419693436689798561343719269967014461291687605936995943138017522573700284776002601842686944636395532321752408677592890515868075630878127106782919675096181750028895618675137890731735523885159504390489766797069895695844004566264342804240397871447653399226148082493089699631316079920512065244735941242929485318952327118453537478743685941303676142854970955531916098499947878489705961554388981498446199000568215409483757496869217197904890613832796442881396379474675090965513162149529399961797536315185802533419378789012913203530419209415584712329628038957593517422328254702998305396574081007389748573263591856673963496589108629078573422730888344302175475053300623853948398834852143954708103989996849676531814597961634765904820975616938918495331302664090855205314036506103072768540106417188066170051899979870075476380797795399178028678797797742504870951347222398874981381594532772918429219300679440490456738935096919999894552341018958537979724839752047462189277590616522141975367722902178292385624314118228324417999893098566269353332311673241251662366280892782510582039891146534856977640475829941121335650021537881934191668702885485011856505869620532780720103878403548784402298438265830556799376775780848681637121944848154446150485003373552070486208140095514712077816424360517105815599834532799823168506982792406757636031184187771233807468163314697740731855399023631914197305718182895611953867715550962002412783835685386236625469834088497025357840310212937503281161573502091521126138748661512210163322362135248926696122354881875700177841096909696611404390521022056446578163339259238243168792623526989854492709231826029898348348631575607127350217129431813801508733113624620567960101472709196639500652236187944744291059393473063313718699697235601051311572404298754021144303045327012309688906068542854835327983403642245791330535726978313606488047059854218733029885278187631725962894121812605215270458983788837022773499594636640200846619915940903340041733259618467290447291182678187426453074371677353874748856630542741102997316556669936125918163904165574790659830607050255787795063200682179338667907960657994326004135882852432131571305364335549340110223167978118299623906006586931036095284444451602658802246672611101192699532510920778021302501534856636491820840522082572252130890805429967643349181103511915173041671904674680048217588538987586364145594488297145932053835887825893664528545170660962334054850174594464429867293131261014000020172783938670077346241597291543213037054622639908896225264733261343030037571029313761720060831332969675374013314265613737692691597783338589960415173970473701848491479238741687448227704093309895148484589243983424181190045598689682551033495524220368341607492471258561672598749084498008107418084869616208636268673529198150435924998761601611352694918046823423727968549957887444567497616206779718755957504920971705703502556528498232142395642065182409021131635915989121328659886774314302604527127160751967272997181637672895092537525771750767425128187896076516222405818782446550669485832134766849363881813229833984855073004071548764348381036114198312528276958257251506319587151022275801967837917065797781490868357086550066265525570483885135830943344483598173830448240586959304482772547962502182814789163438743349570926295592146415570316013537589075754391821989299827979450464766899661983870550731736195230114159995173376947682779096564366824548629003186753747582227807192463057783346773176261297607062090175472928848921957392296317864372554935432065691582304344409110561462540967761602138412783867689653318879415402094497026743541718878873070609626993519271885991017762166297518646180572787636445347222036948182327415005197070846618057249108449188167609711732922245815984074610093949532722847969425436764040753351370572860569575192124926683212673053367417470389906182774972712538527993022848183615248376567607615821988772791519442662994746476043279000708334622597696901653062302190792864414606617104842507066601894912036974119169922508442778220755216002188086286157862916607659724965739661089245750700002126656544298918267069120913278280111589089898770053901325806217177035879521102639336657819146876087160376791680808684890507147171721667962132751771907590851697332840076344702401772254172322377076539808194590154968462553351923293381444996152069530808742953801161393343471340252745789450919940182018720694440364957401876337238851818361828657406078921235682931177952755459219325164909482987809534874364202543185151648193964363698179546502128500725383705793248724972085153343928541708085019670647670474749346477763144384321904366503709701882326656853051072377795261543332582697300053025920961649378344737487573165187036503993287104743876800273007565894057576475598593650863424299251428134587686101286616805341934191023151059686622716212414828099010002135800680849351837141117247401125507229700371898488601274582164273881110858193848951719678269355851201147354399160213741413254031773556006657055022087221996936976884834517845646267732566865490176067417929564161261035405681682823059942970664365034534694714923987975166470368126085476270747883060164310019174427073397708459778905596214623529903505673961326255898917933243108214918330111207550700011034717079135572687970311480357175488746218596921329762352465206621413481219863356929352793369060829184080052757322779793604185037999217267899411126975572106839644513816233682610715696827950885058477589844715489483507896132070703776789719688566299343879513936716941033992573637443505588330642619828267144286653693631381154551563126855962172149651910706533773071783459966354316114866832392572464916372460575124809379626573803144949349942395099163130973654909987199349193673685749419636438874521774831236160996260963897734655931712048741956637732035259492892763016807027918244983668870399605361474975342493316864042155596248384748455675500971209392850088817992817499212525419545138957247367536085351670333515380497433436509282885321239349441577675868204633683709467610985107173174524134400952551741373350140441823743722061000293133306761791209600431829880147635459079242861706075157132397616623148806856020278985216946283145091768236731630385568304003035726012577027189307705233652344662744237966273930659801612779450281396464241280409614989718115976379904938824728754159201004258731151467770484283959896438073041711711783168850947446357330562412348290966436584858478393524338113284543368271816803478795257581050632152499641076767285287235714174883270698849091545528877047421141530892398507665586575805890926264706154569443868956658014870174644761680937364742686427562454406223540934874122392811778546961698881789388336347665696577352697821895050221482395265364064516254981198922771088534870441474339833019803487823379449000751838602879803078296750607052600105645188430569209961401635954123879682054915869875727695999023541303445108087208196991904018931865149318365295023111035911738859960599118561477903846795893746639142292852126947802134026679489896631369963430981193613221815019797856008697886769930102585016754551490350567707716637808262166117556189909934333982094337295602664490294188828430455961537723579568291769961585874689136646131720584929829153199954993075871789903915213549391758077336017240595181430199948387787854608385324859444756111460432963279451713288324116738704820274324714614802426633919772527255452794955643834190906937477065130265481033306569404558459621924626040127325362895457110131613356904676961426883861732964967609353149586563182676502962069150103209625583886741179360812267569060560148388989269529380969346927109817271495337959093871365487573264731496587292505452499187930909170068768301105327811124335850657561331388705803599145183151593845395667699864234436369663211629204761928805058740484547526658950986394999582481457030155184019028301922389524104392218827475119911215658829077889771713719478276027342227520671725323199408085200266878953959914353544911542300612259876971544583737149351969098965174361684611213459826106784597360683341387773964122349909656025344856946339525949332508111146089625361835935824121311101752287355525469781268802160164671806351932349799718946194958356272662160731963608354378516440154581925183814534984597158865719880076514217759034890495844831249849819188979882271599229805412751613212674741763377963104392421858854755079015892706754656141076462985111147758056122072043528091932035324790753811286137564535995861130444538863610579887348079665774278738117444499770311442984512465861748415327564120920290219794001650064495689635962323921190181137671568610777573268519187182260605508118214508066640667717026746370936051499853568704822765019256820122826054292144903578861025732705039567824616595028690949057072166213086593408826102839215864165212885411620652297850448552911110120902029502629788932961813190430588399745062211378033971133275860245632417103912192161130018379817666416729090606229615658710536349025816418151130625663989748430738999212410530648604075444100595963423995933081629912823523485136493483795248680404295344635743536829602715177554466039729645740997110799139886283243228803134374843483921660475134817932984468370645311761244418082772806325685879641381108236520493212592843151246690402059603785951582351217908132707154370487563246609800376423283201982706304052735650361897320654374890116255199626452420771765712414623102654512790476790324009249961340377741552161597980707847969495554651531084294131186045239531598028417779354978809061660043426952787607614644674466852107873925048085681708209482619419419860514413053698514358510426394956008829667258843527788215512777302440129016666345684769323344376011448585910271941429959439829324350884099432979642612359972613990109117956576696472293399891105825339974231501891943116833492539732352752450805361159129239713803202883949251998955585535222383742128943633108362251518697866633823806907946213714548352095723771933331488177217319893436123477822393335387849918219009779547930390299138569757010371987453083465380949278671049826382758066113739831312351960279507322969317897572274084242463646826535998938362477632687429584641093697172974822056818911107577649715496796328004028773832507775903186807000112834521936143030612380781595312771189159677316333533175408604525016254465196450935453955344096664897622252308298229877611801403186991840744586027333707385006168610440665366524322362887417314602458740479767033282830142787910120265248121898247889048466656368300299302250577067186903728141874234588280073240989638911265680806139499090203436965006706583671650901972196991326251637568328911620828359965604294314685680865128719128554049231359902373147307708638940528939903583605822232182921535837883816992126782479683189517536627441162524538491368899472181742821686341962034562213409717719723233292311203564681856253958994599923199495874484102143699376390383469065851956491573010019430878492810868245332185793768563133906502039976969392026983685176834083352224757515465591969104967850236266251904366709187018095447738470560767378566355373714405280915786618278907227051372340887138790751496488443717137912484974678034820467996519450168698077645718862223167301030782473039199808110796725030226330043156772952804143273797969572754457461765799151347501054915473963022479851971947360315961929871992180594743772350827640810667583290083978834434010571638596656009723711801836956692733701028719416832517008771996956842315419158036143308681106083941234716339681873195104729134034850124789487239272774206157263269604170938808856197344382889096527387152862994175225102085523633523705165586160628701532943939134957074509856664806839804761542628423887597286300668501220720753695007209646759518870915561117862094035804037970373090931015152443562288777956764775489182655842292903869293250597366083562777086163366600072152569766122647915843602633738395500511551863374164730008263419560471255762748495457030166608471090163237789854803047402522027401388240623291414228767529450433015640907087302341025457580255064450730314257784173105092643599106268125277450376687286783096249529811358422226137747566395012139958281787170530655511978486153917976283034702470201370193616715563467199259204090003476190064057162323266271793932683229145174741901121345635727415567399898708217823817612584296781597791661903842329924377896841260087291194924426341751873176942108010002783706529694623622836330750183752941868370433332373464263375076337568313478226079105532062955233367789019798393889569254808061735963950479103281010033780480534043001548331317259754738410953819219615753831586798167171311768344442589956225583439298451320752251419265384175638396524876115755713831533427816521075373403569493765963518594006039198679240365842344522602554333376225179863290217252375631142135440762758016243568157004406577524165430996625144172817607800441685107553377680186089758714095174830778449559118225069452798671026318322815078039998018257553447499480218965392328305305632262224674668772833438441626919941653926053727735845824985593699682019955907457392321076246299502551155032156898823738755459073054531267392375005134377093866446674111103007467917107457295188175655552612037941123471959083498205377017715690850202605780639081300481255266794664613916537866191543010955182437023831109801105392924877912590217715313209247645607483466187372069398432405767882721116744977671907060246332716328824491992065004619960281727017834700801817698571254195367683524743989373808370713955704602975399072938052086299411942682836629963239081274047155129793739855872707458937096495846778650361203134642611719794459190760355925825027001250330922497938006051864724400851513406126745657478380188734636212577256462127676736756209083265045384351270604518841288619011658963513846698426376417616130128785696067520186492029746624598906085143223371285536632796821447971295686886178059728420846858173182080986335672329683830059856463249875823425339186357584142067910877337045834317596369007409289971492870843744028101035605423438024812297041755703760576886217921446859308238367259693206000990078299912368035225628658340482117939727798783102419685690479092860457399786999077798237383848400860237461859264956079691898105171076235023741494306502728448475043300464007562872304056765280703307466432995550201380694427002164853823268430950271628118192247109650308413917667577223894571195684025500326362110134342300456579430009697557176639181633068319193001584498768487713500955104675648087969655474438421035686360745290892770866611906603916849507935195054489952539038175872718078219699885335674891449584358483768148618647777447123513612454310638217707009179791717775816361117932200546187630148464579009930391508859737189894700400165441469782979343113843825209055589897695275922781193094760015871415203012698799991751940235555688962059540082471761372556128050698644352476796024385224888759854174482833316556332861577821203869008456408971449579925408249964680281963769604456910147740720257613905598783975385130372151078454263091429163854875144933784583891780115705397733051764697209391752405595725889379925838535461626019863905979896304487275589547440168205276899268947569963300916205492545085761705424776075476981428310452549431978420062052192339661713843499442258824135452676745275245698804473323162760326075004233622837253716447804834875436246570926534751073157177780904834417418227946602448469832214421628680207295203328801735095966249603782644513769269667083053124825654893567299403822191429084553991322787896255833366645564193403857888457728605277144911211986939770844144699045917270424169259992828491812432614912931141532650993312002948420917936316926497325836139750359312057676680864735675908395418254878770037668010255139971651983940509178792856971111458830960345044604300033542425536471073124440909725631126400606946423042344338070465773808288855158559391013332999111660743214663791623891100529045817928639619169830968930464171947007492024716025524017159212557045531101194140469439310048298422902376565997069058387881417202798233648741129622119492394068269746217095920297703722184707943584350195052057115853624043510160621092933540175621487578658925475193075984135129840426530037685966915544366297158817669636597116212755582052103058767985469702014610538699814182104230225746600048872005572095302527576370797200191607209568672973119350134196273998770273883016914601604222925656167857878488263414703975663692873000616323710122273085086092255110357743801177199975330324066861363313427831900506828236644039361740289722614694100921193224029423229913688334968956388241776755828155793206547395526032288725371756896791809491693463967202651156441372941233783641260617562234963934829179787643339376386799665763182950223178423237206735463243581072244402018456923789814767655184675985819081131201191361253944737639262994456846600169811900492652040757732578878332477454752363249806565018612090812050904888029514625719977078080073271264016241168203970188619461226453605323006794919282751174472219016559261251785164480630250193068097466000713888864715385267432238004140835015421548595596526353969204765728121230741396420058140513722128852997127008562549223307010282583157492603677976829305553636042534962626861717773036109002111906815527520787109494186634082218639759983042913909478105255943881533066884829461730631090811963583432006697356949335815121523117135779412210426568866976013028029401167097718538077605370097624098094310504746755585707676937150995776241858417672035593856533232988675464784524340325436472162048278842499462930725246850863332398671050971735460907237277985783078783435327121098779000244954310587509978348009957767055550900065091299659642058346042983774084392940788576254047227084434280012212226576375141335220729060249763324725571857530443041765489999944558879553380372427873046652732279848600571143340517921630296514182673977729327292833858741455981539064293134987522976136908194577452653149735430547848937792695810600808799153433088795641791042258904479333197108780878316826130233502520924932245016896831310348410277985905503639623406014090429871723161829423071002195151198488610651154478167565900163331945516604161107510483523225001822331461506772226123502611832897180798901040675047361547194645420095598884757605588160109057690180553291380255664639854120051445751757676420108276534149741405687266695736059237815363754310801934016967739339051213813314120185507903049917816931535239146818074793363668528553236274555836196317264120587865610206152711365435193311086057041371789525640798971838304420308129287506328535121922195243805776689523975464306096258489402235978385031521585677188323760058650145344940691365092241469955084859340584667100672681316313036534227607096113567467804792715378846816000166239197809373290611193007304584888377426480653959718691182348410630721967145441696774768460042280180152024649339263845516177747485642413468465612691499982581915577882997912578632596339669092734954164911993073148191080232072132048364984833108768818605876254681303414102476172511984945348367386755623472799256527059699006637871109676191582452271650442777498910906652567502908115003342844142376028942254742180527296973566795783570760079247859448932772799535116819052870617421660034796161257666235494793488806411893429868896056366271852570020792387851414943719548139622466195365328263152989388189319838158577407692838723603293646793777520582283366904043126315009501927166713856930320385182111243830378590959014172426792077506021568003344447558859125815607226732589478138182762301096331612572733929918664888226650375681801150746839316809725734668089937159911410818699192198978670264969968314907750709072179240064751029739594498715931093901935583440198392522416484646061034159919566521151851088433664932567802190423966692949133878541986708701603317650732088595909931949083338504037194636756507255769254529205858636244562878432791697424055084127886543487173033198919275014516760618391264501730972971745081709615132536467628917123706402797954373002691295393789379066845770818932403223326926013341099857787080881919047218901755246330518802161965287574227602033761781976140450687621555313137904438858563672563631240288255890663228132476881525456186438971948121686281975291365387906557901758768210904039245500620295323006278178241456131332089386318646594045323259877220041245250444680371059099149887948322781281777091187458569263344858360960803944925818147301396542865637178045616683541178996123993850995260260079766592471401530322172791166999810879925960248095022095658496520429957609385831292662170093846375528592987893248535690088832562249560894292289058894595465630137520334092238679297800754920348420119429469015427399892113694428774156412238133431907233688544384660283924638173343431446078693357750487941502026213811386411240317241167957618718168485300598231390273470825607473188755176527289322370291450002308843852850917402355250604725670569612294687959221928868937337083481273185058801511490507924088484154944450280040891932708827135142335030985928706884193210174770044698254566666740298676566864107262075549635468820211577237093312488240284041458363640979696797439311824639982061625619106167993461368918023607674293209739122507219805449619478346236418871652879046928845032606040076810581376637278077729962001290881177990055101896372680171817808275067759590649374828233323651565478130830952966878639835625085424450123412567575798419303025349611313430043840487300520559131750557808830266614242141407685776982257879581850373364524592191174426617762652532725185077181261040593667010505863333523950952566765540973691855992840559047065788005805875778154372768529728593662238183152078371927091186366354767499145415139682876754765164901240000637211447708497452859556147850056490871245534274148701357977080448355442578492191816461140367851855008197775013787981382581467844913142479592098317384898550532953948666967646884384570998267895671087279331311339279464753449647057025182603884025579102781514115906436451472842197178090101366072083949149641648925051776813501318114286022424829825704392309133918280178154594403264802141997147446330339865550396184309742997954009304332191249596314980470827543488616003608133162621940378386716293914488754809880667015567921860011280738775462778367703549130753369157927434077602271590559138907919897507718658050705751992763188763586467671657477733033140684928371662377978181721066341161988559931559809490413956145949288305333499927221249971536647956605045958109542012591119108819462551982940955024223521186141389722384274963062892028801542675017322652504231585981701792575603064767220792124518101467876376570805232022862706502827477496937159198202109664212548306604344501039088887217286376157970936915850267845791182686396301584646167601821267323728363230782878585779320761182842731105085988576617239790623985150009903149548356299875941686468803251521653135987116948333783787922026868815866571466975863353108885457451040944738732275764401478967281398431701670331434625033457083129049614653975790358102326366756423064974963564262229083177599338838964087963775018001147566537955170296341636294765501482977897430385997473829353424609763339020895519402870972867547507525433984081919698802427786265689300791750827516011549398020402767862532358920352347912816327973991944426125210044383275513824327423950934711120338790249719970253042674463962032842087597279290600424133493614210983815969592988142744934045474375303890658946321649068586737313597154177572085477364714845664838195652456296944138975987604588156562208740109683816935268467879667496234470573810730648081020490856630650159870192216661518872442088497311677817849249944071352658459027225346210660307499000940183323946621836440840751175633188311641161309384962766979362607634382776248230983274588619582301942388436937365507862222313383465011914949327391843780271575230602153594317752043454997409983238856657995228530352453405775868297031252479511039548012858020746413355043084185444033384443470350111076244798319234772886534738856652415548856683880742757379452657050488522661390293659192998647803990969999263224473303416271464462650006769759439350952434884445631689550467648330929034143443473681669934178463823760845315494907784407240759077081124466942421526847713281151982086695230542869684876442722988151966510062807369229831810473008857630784432109095358292825293956457235548426804089989034347906771093004659086733099837292522270563463333398845473123485435427967330521923313934750069990894582620313777712598485977173420778119712935938954123791368214726907579057921744733174550532880697300147699769703817059592504771539904306641226475133694767999922525060728932001277608772235129465801076346309640236535630407883537562097799397584981096815427117785915743868968241748653313780521075859673744421036377682994360567524017844720420993410885972830517692602884673396027410989456963046812367315813772560074076156462025862953094429265998894988632400865311299695260969260631572257676241777829233439480235222655753617040691921938869356326909764149775792774622331099784246993429883678974144869433111657270677362300861380280729873490467129123438939572721231589589856920092685597661847742743360701564188239858412777450955128717741263381677888311723546156324017483701092729708965190198243769572437771075132731112253108626718867024238065898284117560983311177900746029123968550344532502629337991134961568875225052959614493927243947272199963761412352519525854907150141328624144724101474996915074932683378539402748959927846639778378515885831652390242188915881647100420803939539624557167603095626832951322125445838550825463809735399669930710752141824642965767855292916615654087653086147637639917691817996965046381670751527193033956544279353391065509148338886222874802345555699007949237128298093655700032254049103340271653600785390195281407387133154197439060711413147258710443028035273419446902308842170668470972485393985302202681763804162887882898191370126914797585620051847586750044418610433132937637719746594685531733179300657677154331552648501576955993242427472386214202153802124455158821796128086648404981230573772463697407219704108910447156732193292758283555883304031323888668050569428039330063601336100389420165702853073116698010398914256206190845175692040048255950287224148204840022538337810139716891574277784445223568373855800898750113400500087933797109290845747575994808362079514463615610389101265857131742883416058010638026623420143807747767296621940333041157922400114612864328034169217124133902404237773435303755338381563613555325431963706833075095105364200963026593466568914555151264021259982594407655293901902191043262634114193452098908405409437593961117308851668305222152610874648521444815925361049697983104710525488240972102848231744586527568988323761071908608454090716292964353208216289086599255625910571641082216865245370496731738751498585142342776624574580509223439188195745872569432255299950676803642397920441945770528319260837375435158423574725416514604499378539133529427750817618636799219894071801531578197634681450448528425199752930397738408119318467557823652730260725260976782564592023296935805978773962221739438200664281837965859222118781280421898805433879421767628530058323738948919594541255979576325652013519809160641094636553569322350267394493310314597378506434727722922403968874346003236703648057537906388903016680920374834147157623118796530330876286403870500208481543430356799518160529672052970341960423369479512226537132358497061940922400146135075393475465129046985610616796402653172900419906337382019428588351250836462345884339645357176575422424401553339682919095641405585739538445231619358172142995901414103092698697949181785035389806647409166733284989475589362859543130366473676183540520971755355389675793593566160625974925118762482761627323721874154919223591282846692901220835846837544647518652170538656360029608067712987631279817006189105515028941944964595201608623608438375024509865683886171978452008122386035572660104685577455096131638083485982091098092048293965762188043706803550096190050190181911315677335196600254529771564204679584482650551276765369221609588363195863838547345259394564719462278216726627306744351086411620803373281907200125912372151441521714428763769864613676410323777326888123457928398983184691926635589521674580398160003132309772731842444410405733794966749860117942037039843456835610755227602670911770073620079970291792493607295566287140154082089946285139646912251350169483798231829186782509041676913960145769741807538617296587441100896250588563271309850684263987355433168376685270419088313147198747618237516087055907107099452764462932652604959791159472377629640082155677273863131162720282595577174974767263723993445544669776122067331790321414283150760268385706496741477910125061465061577310627498451093896002108660823510414643259628544458386756066202686386873912921710794857148796528144308025665556025501782728592343568608986551677482248027586969583373331618365430246923254013570552767212028007995883810841062716501073414195003539386565113135484635535609236077860808135262395644433938096375875100220366339193414546553185223132199954060010039111563838646660702597169522265884886947530345954034699632633340867327483686948916338919656887898362645038240736127264011687151295429439886068357550163535069110237260003174000147886504908888124892027195251231666477782454680018924936366281472682740515665349675037686457982210372892174359751595977164469793471357629400214545646801255136800267127152354373525902322201108761097666477416777895669552364559315230532414024465605489357822616239546590840687750145529007629598878048166895477350014472290708584395082152490952123724270936609938321034297379508745251108745807523739057117032888371047141705403649600120183047827010560224332131676205673008932398605514433230358990497409097359819162449846898424509760444555652428510301102161840550041016942276599466940412677749427279781983216989874883479000661086992299576585213982811676832884312592936996775549644789340614057200785856884860581263358233236232105941226025534952928446060109466026575886110961484714112087241582123533162471933102230050544305632708004243432007598033319572637430998513906826736284500368562489066330711639786627512934977500843940957686463341996634777983496589666893493548825083481776447902513923576376187568276615479252899208372970500841723318832892243270499581555896517738553171774883545695677248202870519095455838826346663274765346161593630209445768508911722540359647332992892593616861249814331417833050141898084373409949748387100913605297930063227086958377584645889418470889841699443633824836761681931157126605978511155985673275738848749557171270788896354537481015426500629973147931420510044745540799061978725128824328683471353656650656567495435089752003056172031586666253483245831386295959272080919471087379670146852548738702458414530495775285096243544624375878594836025427992604774860557916479745757718059957141728859470389813845170082084425288050399123318236345308719624247990419418257204614648720481633988655156167476985307792505119312668633133094079056810645637731368125615770406216737406074769863303067944820651169689893789435882636262280476565929126751038631711166952417215182747031060361791229150212395763100154020023314488004944764550533103627279919713476215125324929691468848151063809881127994113044598046469269600775500243505855332687752586044468760323274778132513857721371999245783077868826334534956329572688786687106069002878306985065931999774030296119701895018935727560547820759973525061623075475044806645090270624543046819521267608243721115938912937453270000489499406037968089864264024351084534262489427492693572762175310701880481669698847774106341948643589804567702985133083581837547547699854375470840455996859782516671187851397490315061716488108030623254464276065518738067863696215993097193050104361301506525725865447415854417584763854286437459252793955121781979600220826669768320837471375748609129011630226989426309780103532897523256364672212661333252840424946372577165583297765161276563252358815395034360661842315325810208098042447408326530877808051939822015892612062407449919911397236795853004258033412725817709591794223810561149827141512453819510624920618141453385159419457107469587492519336718001844758718650751253768508113309028629715138693580200938636073555222920706099305320885415628882807337298078960379127909812651644202308465496601789693315646508427872970938231205706586747021623036593852160585106947075847396107741933251473068552012472248730529400341889170325852542350137715037428070372965305192592493704532193101082964713085140755155659108904181713316270046462238937232026453982773266584110436507179918148936165536591936185966829067592642735140043634636340184347026054953663358949551309755834848423314985055583192884746537299164425621103853673013562545151319902815811315771190777682479156187360410298125246310566478563470724171811678051810021916609472673310819913717812891283365918035271375555979400438777627945304153019039464626719435292273825680328951237913854739560921327087058486274394464528587086296527976059665762838937981837625055713070032883800987534189272837420896312314657939883078434122183397711571716311736032210537678732739328965803314078980681069273495071551157204548857886399817135716625229925234230251374137677611397089774848286014356333682690629939038038605901059641181839489496898531633534476128204417003465093921485655396312687357308934231769792468436152639010822100524705100816100010612769604174224155569337167757817279291908580235741224121221357620821198786721840957005022023243808308773993950749411586635828675220325076419861742730999826040702985171032627346572952243953313723568170275195466649275651067570296179613114788005977932006039734111079951005940940535636915100336538346207653674222110938817345511696219357224508954390275633758930283500637490946512467818226860864138555956680356892335937412023927769275157412738280549971350403886105732089423460078540610315790788786834614762470306026146420429756461152728027135181409497193020897157066102226388820322935570899984840062601629758367587600950406305752545603470018726932297490014374251278746349300519373833475000156164594579407678469810909463435014164355802381104904633685092980555846092885506372040905251224273976163646588842295711675300954995631443208269789046794716983326089605429227265964867759621761369374727732538451236876741673678295750238620817487537869150117023963416166396385788079536490216471383905075323830291229440458334888095276283943010804561213085832643280942625569761726741902205249391922827644911909017353036981390064225474563380426631089775717684605936266883820396447609752045181368841720548213769430623169919585069470286596353313546365560468339042498698905514681212495533420070846109893105588682876366882897917050263041750656831657740593337667694379292559614831282937915127704020207628692278881082349318936541378628390700247562027560950914995504640182344618393303393629934197025469183994479930961268971080706545011280752924996734939927370599579042727750487426542116352069262505574545910129598914462981441990693260302455415359749752533171581650016289307560105977597549203677592124400137555702567111316278471966905918271334686190769100806507100854288593988273116294994970480746961065765509386451576818634077975152081141831339420998428205659991379748938159774093533807784490104751651479190530632903473971900256828513595523877275519789020400897010531224931992914517540005457279946170266156631483395693737022984173522262269022832652615050579982461286344368675832093207781908696504482902106687477071654873558552300186940314051621391557758341594852462343408710962669204887934878102653625454508032993554856226385412024641933822464743118446365809503788769326423310020663210752016085800569483309806462676879388046158430401230862340099454151319706155233496265466482951049328881233570447378386363992932100719884864319042482443046852977056049201355617026375593125492530747451327385326262504038545168659861386327814694614264003028990204090842186730048607015614184158169665154807683688559357648464999234964465226236457565968608861011088524665147806874662368048374880353557198438715703711312311647982800679097050294158581392539960959023299623740935910165514701180191802824759617790967632545445814819355553700840020526059246076763812156725402515449114163044789177952081819746218260577577203642095351538962836762123323385629422320394762104036231806538035732278854427923334643701540705369232773398314350980240917732496229227579438714724161039879916085034719418134860790965982188433545404636481979268403215330335981822028543550962564161206831914700548807245203457649146773489533808021879234762137703761049859108906922979091424861032910037498677153422870612152610607347019942476126555023696269289117948936607247692775971917751737748581134087338987842203670664343129415951047721116753430087332260396062012254510960943479983578564948737500688717461385942365378578331918350053636369950335416149483914051461321030936909377745807532984383044122992535236724925433849727295622137444403663324468931810067843604178988068792538910625445581409076234912255216470323196122394562257555286115043677676199865230874035117612434522413715297839687842160503340608797611533933197599736176827692775925932484494514955650394060969406344510175110387941513099629135627949789047015242355239137785314955164821758888645363698585226503552762083061899909218032667988933256352610902351693137439005485794289819087587735028571332740925574454705394241066266912301762788579240767121912911837743272414795223069849324289008541180791778798406347897782089329391760237951194615963015702601723145762577673944754630947628124054152468000543093413163458433755925846112536056000540094348615395403137523696581360037550520811628452683184446476824138120812080128872960420456925314373247704779824127409625580113110611888664494746041977126170847684284044391449481558218742935412641869986498955275379259750792397330609903011705443866427159635175190384342783729928773178781140877033377664335036891141568432989818085232137721575162554160144143692049181668611398269952354327903082623920324291805756090250055258206491884692418231050290280773494985125816414311549639055308742533421648910053633716588134732731451836439198588843434405558534914199831966313734753606868111533212160501768985928778418366261728580971591148754732351616104699393338377360032238395704418261133789026313531237688841567672236229008407824491079313355045544996722598170345345181708148606198622994730220567776132530653502582004934220140454921709158977442070793301362940491641181402626260991431648825213469348518485890702886888556881313125822097105443822838042762744474866115071752402773233476973630187325579639124757098129409988273175625306274333082665948906748400189384215175181541443553443947908040167784864356439505193793694894363167289532004991954094437368180461504127811619455422480322976448400950446245068390160697149897780437039814075451432001168483166399637793542815004016734145308685536605932790541510146349201458116992048284901181229360403043529598649225896817563018316952425444049607342964865804330670993017585715565477858235536529427938837445420684102782940287564485911232777969472235210928251653146621000040681324785446787171905072652273298364408078656564264377629534455283489131996173239003839658323557550889985341670307593747335919943847764676377585549838562046412626025734814771326609904118021132154591517422091563260875728403992235024343530803752344131894433659636871145573810720515133318082958136004947096314127572130409777671425608399331322491932971399058581888715792970598277485416000998181810058602163154910835932278526079362813453108688043105831568291895746849721488627582873618545681204566392795814119352439489335626886722817237453835121425688429615610687762462214406751018754858672596239552053855887988952843830588079884450269774620762231844904401821489896294755168768610817233311614269371452076226636879074589910043228439101157000026226335119260984045979398506687802064855423963260894369837705520487103032695737116106318945766824816276942379763547027166511308074077321236418579317000048538568004959593168435336149116699457167348758595786638683619888804270381597462077609061392761939385834874246759016741726905593967378766912645914810706396707042431895430371773023575909463549199672223274734055699691584497224510656493922073607336063628099945249489459456259028425709547560859704303762789869514516449307338787908614322393153939241053402922476355448106048466502614512221102399900423349625570624425663984731839254373018974402951007678845940478145922123933157910768503989715547237851986951013590279061186441073587060952740376432579532591148484157476434353071079799431959376698586962373279805884477662184958728081510331578976686347783253252559401113657991239137414974847801053931961833458939518167428250957582107504395995786614918014441869723107927600903649835844096931148016715826464807616570493573113806333941119351144285125515656342746907400031543721854661442689304203708678263838330943829991676718899354157893506819356428096285730434879241027185710443693926248975554524254595473077798291519778602026950675405533273559527215550783968747733597173065686770511317307117036317302423655366534006206705861119017911917761413414684927841528428851666220742309456208486566000493512122751903039674632221269570347123973533974689202669878417324313751930437125631680314155738332064448849640150537189824684004046612148055282947899976112225263869188530626196414641473660016766775540632384463776275642837815542588439372832995517696539591215541666667245868853913324428704100207767229884027767374273892477413081454996638813882368736255211443187407823012180520993374551282791675068074665412739039111332640928170857677043297341489615380807750021359625248069114734242121521669663622495082262053269338103210574133298191603196122459232480847337948917001629685909584941629147078905778621668331291877332730037053949635080817866529771930097407940450239231362265435364856293778916207062782715881675953105088051089701246750785396000211755550420307374936757698365919621270176233908285853986517559538601177816792562010623280918454140161435588227754881998753649861197106631375509114108935124426274851276502889073818546838287968585077111807063643609485391665839528207815206375967767417743260946349093957716653515645845996359677563539156680124702181838264416594706539449407437409513063135099336214287301947795059023536907413801345774066982581863048870089764140934742374490888434560601244378275003150119835886695420953677918494312683467370136781941870504836298369428769007399905998345471088360928187331207574426666999613679640194184599393192459991758475787070924228090959509722783648698961004358993559680502547824717428865609954912596009185757704892789138697892606316765653880131219661880846391787409744768834828320864266582002652413005162801504432081493307312510853785375675652387376954922817794592481809874847680674225036063673822272887487725723010176323010448051333795955471619553037776044851886031416333275724216171367518522319995127077266129727976978659491718719844057738214520667568132913429487262390322065993886729140637010733170384869057253954182926925946846325128319478857263656816135395041828419027972003529980256349233695860151614125333464722582894224702303866182068442234784464303126189886348192621154239976608480539947625152232113790797932182484422322115157090783575109583635271691489753150839054918959054515715633090240412152490598810363878851071169554161930231463660790616193837149675688109548345697422203403948808514341243264712307832000399113095812177018983633532835805349902028876375178970356615104562506536569506834391520678788711080705338141091253672502580834352880180196476701239956780952432698118442465654141303220322183392855888361375919122821758820128154133940897219018365329069015030453731139781297732796940399222034627407780360466571688276646685448013002241806886451159080962786373584335664596574358072147205059775886142050624843449023588487181767007355027450169560226033657099894811627547152088221458330721593706051665790771324779075930785216828327216589521152135948980155618543047185769122215198081976210919031662612503403251759201082044121254704127860018560508689539769552532513770617837840614530031590916057742662036538027996307373515951609089123439945032314063025778925324340665301729504647913927944063208184565926255517112341803717562051528944471535253584093487297323954202643662033811883653244195818478699187047540072120674672097981506728307717273550790375639075292365836990934766633348094133081665685228535889569274473460832671074933661157679801545834215835990187984214223573059787710073299540699518149564651339499056920698858766163168173668423475796348710838350675909476664427889143477746704287151304679308259205052045482002844435666395206797897802916580849117682759346383419867647623775413849988364588472182570611873296517638321816305063916537653224072706319649775591578375238251282903493701138028944394534784774188355219751503067844363496590432641231853624748761817274945889012484833227926374146678537832281048141587814487233150849660208787802408070598529598454087744802260502198730221615714932964718086733121703661323168006016303872678660831942781962134181499324471077803087176255716272640692168112413897806577119667871832433106124624770162861301160944852687853383234693969584419365814014665750443154127595348805454941915312356838696340438263250031222734048412727624976043370013536171013118447321469833583938388723954297639894726240315288722064941442028769550833577575980075460141517544622004520181675156646103333396515450674100617146175120943065648004983135788171257881313190669523113816979414877670771056892120145168401700206608498235514898330202135641784627795035060477580636996695403742333172022364854113270452737095160776526115658200187248096472099602870008546813292927261720394175752844264849762936018135473183536997144246129619798957308134708783547877692363972338704301202000667979564937832880669574876649044890322752423586259548061388800436690276825146841551482255024408800797830289495851628387088860797870914787094997965638551748058974896030622248318280300876435922541896397310057303904110561762027652098138667801996587229632963805810514630465897319582973641884583068228509065967202760805531557825193830066273204048329521901287464095801470562640601515014345527991736026424978277694289430029932447035206218639139268867951660459286103531682596707288430836810482145476019671286188952397732351933024646283096227055161965600983181063646389998298314459099870760301241107030663416196280040092738198696151013220453345060762887940676260393362772270075850511507314518442128401674438808011727819668489754751462261046598080858327324353465132713982697606809489549355020952872262203724129443477227182456609110903461147087833162977702694630878305700537653688260095969481131816837157909563525063237733568744914705751323600443426686961855858521802405065432295278059106564643995226338528951250355560181669901334283157383106030159424092733672175867394179039180772666173148224684794752096627435004103763323400525139396284394470514167605149453058596483840417681212604983471469989037476871895967204888975509364430633657151847785354798455418453877968518697603954624456881620257485448723712625791448002693224068684778776518221633022141029339629318105914017460397181571304713241779171556138223227397758222506185972604685272383489251122343284506996662424817549002884554868859022020466900233032099242994103825482623703391799788784535284982139860768351387376438747340050982703835112382606522409150708620834538550770923921780377518503163085585951214035587313024671267415503406422887200242106938339771857305431844098924374883786266060317181145226243097825061169779859935157111554743218088753695151338803916160287555480659783434487578716108812251609239567670507695379227165055942240232368249107760336957241947240480426400081689935323084916961537904254242156431487139485789226842442625829669176145950506308179211984441701462120288977197319657499614509308372621312778826526746934184107093719244222441576876560026783134082788795754576387348530585712563395103510889269708714569384813082648491603164843266616979940540645275300622874549918988132086850235159135736117348266491389273043568057472961864141080156256112463049587949459849036301388618691079716567041129184274082350100197123759963723012846299494867361481907213050860307571341223255567802307732812707146263308531567012119442049755923552854294866986713878480555919168807613594685378098974225627210522099972012097294804713648093887810012749312118674896976503900489393728211122231222718791148775866570928852866568156678291566211185231484290945585667482257173117921346453152975363689886822853763550417525957501136930711013145606900140103316566679255795657396894173556143220019334394501421254065104822657140693488395272638670159733012358306814196777425959834743629898376024789261642751471504596636484003239462714531117647362559585237186756231707480913414098370961637819066585635633145320860084999813079955532990048974539388969217442976944872445131609091907796434813151296447231770547562236311894359800195643785021671159341178835065287836140928338005761104129468275338346669892018647106354655354826154673475717898080816991143011473083327287177933967443523147998737825258209108700277883685449316291380635240373272322363030772842960765241142948830513158421497210110482049838832851463527693972591433914309203205893318027754935112918925263769059544071430690385816066756747319921635304617031977171886592297332957092749781782832028777892545708245759060265227197113162107934800622477284185454407517442957687909200983185737817318116768782312226872924025419192793847167862229236253488794957588408735884604611679739888254667230747951440495400811911541993142796882805611619914978184454099272373848417643465761314175044782982788912276091546286153960033671658741604975165135554138167749458991219694048024664020337851194374479358933232945212131093647788814658583399847936923327611443669771975961167508340781710264534153285035916996655139883547993650995475851404802497933750406209069336732331003142554412805540345521737722071614639922572357912106181277472667883467346576978212817415014559326184993842126541350384922445847154445604790676742325543464199097408533213195337458530677037351018474502515822036035341034017857265797418512022662599191883789213898840435988508598337682432772462357950097629562153359267453845371624723145278968278362677002958398758310479528495552107066733529590033654752494396686330821265733939554928944604867109095847495575899447952091564184884438244147132264251784459136089379972437880879535417915066556430552351563005915854230384525699017653835299727558636951600606823466629405434552197735259318476020590830127695564242521225516857593026048600011149820156205951250134404068618546510841297240618728355721902928643483167002462659656642856876887298535179449649466403741791969714778083314356652134103883390281300457815588748475609574782332128352925138652716512932688219522808305111473494068664215589112421449540992994876065227315523396715895027510343612463419880874739636794721073980080472827790934552545117698782882155760773383619902305234733226085536794246579850456242876537610987955692284219695044726053775688816715322966122822325103581066616980301673073756637234039187024259425914573708411797015140445590210340468940269302876998264046459897342657524136051162230912421710178714496363058164978059695160712863174101501693549912835720584036567954330017986820536887919933590076423749815708492631114010937185901427092952271143391814191740474135243616128004328505335360734213242444831311042763388022445920914667114215254178092211486283091857018947475413044731993488032630489161658855348734737967276180663941788812843584400398134120706650053057799358352829224128334392366855003373397084813496479146397040279061716464057125689689987964377237177962871423836779751504700811615078879129161504021331728801481786326429228594873311203994538131705802847528315519880633235074659889482370837053711847505759988947777920625744713424760224684821345903572871915087028652495728633508790770298970720830677516055123427660881299381814867824001881896114546210382683215509587023208130829282436233363530100686895798458187307030375105590668460787267732395532770034205091130870378840944476026022135694302279103479241108584168972550447235899615196831951164981022707568859768298895337020513813860455065203866755570414897393121969278781457234611791510167101332882384796235739746966842028581319728464471363432367927861877339673583646147885525868348779123546930710683858587497035510162824408618412937333122841587515614641007429657755675105868839971267135678688825443312362386460856444785059068912825588391309002371780667848338035806419287403166568975678759402290821859345129574849654351650166158923066660685660977056034697510974687874985350913539623781213068891837845859391254565351042169423632811561250646688415639967832979450387771710114018443536679622340211029200425485455762195873802185970791888254875501731720422350802427484110844586347378761983986116091913142573306170894949081004730797695441715433234213072078467861636267197886864858488253267794572224730867664333948190745321481578536596252813932687039447697418836877336698631871229974421910530055517983758490148943868688503577940792250306756766830925498238705201904166114284169075088415106286080555254790464404951600952380073721282086752948956338345688235113671281312352829989001809020103920156145405664236019368524442129833536220771193663330189301829474684620108564770222126972962095262373256428623717408865315247273584050972804051970368276663568866305497161152307662983338667274470232960266062198807433920823501388535553205391817605223885237060778571894705500224687923592797504970126963608599176221933158699114441259878764857987167218553379843694576215151873148086706752659029709191041922448722164547994006368409468106773926919987519740730282793737707198448160867054408740236865070624937384791889108717498634933796285981955219722719574034292729599019863232889468526410139064138614466639297559828078409597969960251810064105880994182848402370711082908603785973012846299635351968254405834702291949328517591865615475934926387221796218997930255830871987702817971520799290545632839910048934101942163336300904269472314467824726341008627160519459447007515442314526548318720291064240440298581110969954862754758115393713325521124458599943537275124848043412237263784802342218086741514890733541560418731239367721852594093283930723669969309578374927930764690938483740454613705465925099168570119465592945178842234096090266340729036825827163169645942476917917033631550287477593011453628694939339164474086140694253718272091597005123747856023709174071618862577552600008520580931566205066321914661272054372901049443107054137482375571102481315567012394535166219005305344441386895752164652721550585196568846135596768272788791055129282127535206581964870307409793158191165567796597300240493205590008931685384750924716503037848341394254827986593773672907916543329422638952947196325244685260065107114695650544619111387927070720635507875457511239053901507237765337668687837260833177433171786541373403801444930210016428874154651028596206501072262697152694354468967268911551317762444049741250085684118591023213513791436159812362638756284948209903505305992125974608986191275617829454399634750232896642595846434136497226356980644268152052289173734337555666822708369834860351247130925150988894112475509923633045951667489401902959864196315094693935823075715758465104425562625394096385928387121627201132903076125691977160969384014968684565516672224167010255706941769836517769985613214643631119906804443156227536249904820738670281519879446458159358752662439898103569423025077300201614848468707945695044970817503820469849530579677673267696924624590510975666739101637441293470505512471443881461652038514404082601769793949827556911053744678992119592999579232379818768707508427358778921490646560277799711883372871567942926084117770236827083476111001688752542620015837241347610328702965565047993818306832972919986652035992718805487863017208125221791120838060769298477662774802271095408021810023957238524946757574532179735112925211687097267443558111656637359132380352935437254828863915362887691690133459367703503173890434029495137924970520753772884019602397165559782962102515406258527897063008513997264451606943468495273600152105975705035769528872618624728635491779563868732154988244312751724955420381529472923476403740249889083449309107027920361819771181468462142492336766484250054516447766687713322583546483483448235750922223508124154988784627409814001580636350294402949494580797743143388572096321133039626640180304111630204576122884636296219595505415864056072721716767655896327821966250925921903357079801381294074549490270699058685980681182139281980778661408859265318978402655599208754329720949752686855351319659204102033137099030097786565507960941150126239427136772121935465001331763039256550739934456353237018211970069281306150283953824732208683606686254819987530390730086735982694455596226210097980518144407332991791264204728928715143734718202269145402564664160990055947256383159497994722982300934555686603411499364857468391587933172308476133880891528905646470059263298237538677079332889539616055350754218597704812856291779003776728061858220074550046524539573290320385950805192148478573429559805952089255906240858474202810291298341102795127264666031288603515217982038939424243977933987208089466108144903107602970478720676254312716513571193298042742331929456295192789910618605535661845750056550112015550227246028050221058406404168596941698234366514710422483089421910995445018513393751549581672487338497971611963200282210824911725846994937700900638874448427746148898939335112747016767783601653629102653184814365911275933910127661960931581088604538865015644110945152014332243699643362529075397248413278507981228408701801477506961788315263349669226387331018826932659453171751694010598486516881300175812822243203033578550929571543137885311598683678622477354315421738142413762975359653448643191734593134194784069757650451753897201845105280047277539711430744556084926338193958823088165672974162544434373258300738763069543175646549495735948655750984294478463490469044476659176458629481116543546236553956975673417688748941785213952625054748057999735303232140583392141143921234650197278988979418857751243372237103139435739857911453289488403237253334523242484875407095673750192997963796478440778787967350182400090716317187963951976716415758207150512861569503091348738751338510726503976601329471199277251344512117992302409695266129393131106534318657222767951229534282092109585135881092902587058335565381583722782949731716350736082203893482375286901087192725496672168836368904697751507414924137705388066075236977163776203280622129697200806806643279285637026909566815871535589377457142446400603885986966704525288495035462120484183427924554489872892781122901137874020539121679886727833653918387867045790017045791144259079276956275100424953802069602035140696163389215767608990989264614115347599428842324961313143368683749180228557900921941098773173100136525416623281276176028912837439275064722872669874692070542823445663874981838265851578841296680940561186576163906879673076704959111259952007266480139062449358213676348444134871322824728482789522137088399280412186735754825521236469275759686998907939865113038996252979409159850355836871624584980844358580837734031106407870197793341126197572981867970732132009324260838254337518225197273851347553492419387347131518078154967070964799720916743463174963637990658149559227789584214429446500995955393330078333190464506820620937299676105346448985537788798873576708030715611048587848741003610542299300440432752253326246013889608706152871237989078329790541628155931230980744675260461690263293849897067221573324346689094062632492730307336947144292438193387138781909736433819845296272734923148460246018592930217063825996482220763594294103675333392413107371194055098156235509110094352965218971542139325702775418899758785030232432358338528590630684601332616959030314365606712017291681441892042181684543548531998052599778091832364743739691696013845417069601782197802533334267999950480701039591576330099481925630291304213162593465683278085853699119054811372385977595506568619960713759799994586939809576259087707270887975070413413051019630831088476745882255930813534586115801204927807820103770470735703809870552855560212699109570401255189489463678240632214822335985623483120406643321336178796766329720445290492863595951806990431578141737605015063348568167997238513565008692957732578547020056113857296659430175401819760877271362160005336022230728413568341836187709934055844874761782791029116841664294698918505899793812109724185336476512367929217902889582150610561005473016435909390437382435607903117501828768374302622232867836743442642794375965029082878427412249162322811458580665613281969885617719686252533956139075167538656465080561005842663982012731817270177443944113634247636976340546383180430300421944238440597995701546023418806067557966238668736111212350387029782554579033746022387858389100931118614221174727341058504658849176848058893133795890693925835933837185520334394365450403237337914988186866591621315098735391439704567992392096207251842432717128206528183803831864775564233910928818072975736409815111177590948385723645672621863918383632114771654572514163747838281034684666546762329789114284610058618283240769375405545734409492935982771795131177569766748099190598723810650795178091716559166089774250035233074401796119063046455110709085866209054316311592085866269510575523091930740527765867537474903488513100894118256631417122732284785452655370239585741989534096967998677997480857040545169964804212094421530845886685412744899105692444403602947972371279244684435798175672475384546002589621053499506570402545950239038925344646394647725188053174275972074617368683226023151462395236887816837906680717488274418344996097287726319352865777835831616897405772159053102278590422569245665034077418179284453240700119742790072532909415714235626804604021562167395066575999297023329360709916273402807055232226392403164134970948130425891423424629648952102507522066695398382526640922151737704500954841211691381530689977313907990129684989355668562665610546788105749867158509079123620366179593333778806819727376098014018722702111387241979134426845597143738874944557431582389168154673373192092151225998084067383085125146972138666223220542414140510756534006114228251335977643337228055222917561572642236157671579742923929366979096969230019625017733384134916194093379429616095279104843883718953080079263337618166733605348957941028018790375707345491085823978513223055383109233404037804171450042485487569242498305773391389598379610006352460067454625825414336744888053217792512920773719231778984094469911148254221354126175110923209902510045854040968181390848273892360090458098838129978291153340726513341850411440202627297629248484864828497584153479820889088693314407195538180743909077929080034663087682407824494650097620174752711304871188524561032600396022356746501432257194978739406183547990689415296323299813869566580618156891369106437023588718959642746561948816053596534362480200887349741431124430729774989524448286563812832164715690834984272926053119959193619649291937740675216942952758419339855237881339503916015954077085932810366351174147134160970869485606032996148905476590579130285433093490791817965171627026719700797576190396490539880371160559470521017696556473825645232279242263853570116858329676282559303335342692001450578961170898767309193684740801963328389600268219620032325898354138489634446566126254304944370297600104344015629543923602489882385312912403057788860238978970363610547609241370322211012467982408011957191783791578618919596791501767946547555180842525118107624157686976065966074208313982820786554471944466224014297341043329314962224633439893622838883989981039067970501309208394897436891305638161057608284578505638783539091519678732262436295913671735503228726502079741943582419894933609302758379827281452252849155948724518712916535381824247934903840728511272029385955995728709364544252752616756911335798003522986533449287805425731333865089486812100034342784685977365296713577620791723189973400317316962815679997692736481278898737223782482749847387985206248192605767073330322690438856094420694240662733468118454170032906392588613320206310454427852771357081568217279568702402868939167959808829534739133298837321647456471276423151846879726430509669546192176672377502214192526230118904079888876760273161352109348837672331548764446900080521189196469612632316085265913774605704373717850647977220147359630848464472159171494805745472289820971306534697120537967998757036677189152415963126032629241253307970614281284963007267263571641646786651108660372289028908446953812820910786347467892802522821007948398166228788253603961523733526687839374835880702780095684882251941837429578353264946958814613975398487058250251902944062035522318441566002788277065975662461659520278053641850568362514908934900250757617266043768960697194662808597110485401770021500318299323764237439433139524874493400899226279572991377023018925061910812824762065542798373769151195224477456831525519891764990269797203959594987235819795188633765935393655838362905102136604028049821545061403168217139802754015110368539977884444503490648451597047127978233108441793997581604543972487063988004502423341613242864668482356077504225079868696447664383232362461757205069008984264280972416484276898064769733828972226396413521939862531534210620846623600737424884646150004786483539139749825343246880874243049411744181167705490699969980409255410385937055732755086026366237780535373219341810130710635377061538204294134974738359430317790487328537498854658116941224586272513788479730968712177741482053863388003861290536035467591548535853241335771861798588176440542722151018510555463195420462450150438652357931536379710387694487471953218752513099098635175855011158101796183225183247379744712612528281672636361790356446446465822334449418454593648577099217489342156380754359925267654716713860655422726902509210524480505290685572043466827741722681471352298212575926675477396636884254740104003932818520354182063602148296101914298559814133868353721047204623586228214546192432383891865062642179041416742284713583302783876601961249135969124071114389795784092356214455586275082385045381277718001684415850602308520417169965706983363828729798324301968845523499779949721400840799522681907864504277427157152467679500918458192030989168862592764609640040520999175767850257516983430420986687197790145271940680886959157225569682672099593913590618921283992977923905996555560790166734900177067412384946384045033446270959020691758329503068920446925486975301282778414640047230466419812669180438865393762778521199764608170206602582520625683560127717627602042782092988225972732461665574076465736170657954034237499978943966346146865622987308891571021872130621605057906689833141381516019736458290098174992158578079104590250573544334728025933479856323268323515153697245030798557411042074958829321414486100893349516828433782997249076563638116435356428817232810393728162575868786638400268724703821956142328679121590919437883508080109027348426052408242716167287439773957425649743838735111348616234245305162028102699834766572721455580489328938823637495960486014325947918991604484353059433947118063732162877217355263660480418151071336794937431550744149514066601955395399236173222431524373371716323113828649941164191215900037370336628597695762705338398829019450602017491207568384468435385881278947407684090766958175114124510684965855105532283454056157577496391283035337097737695470903660879120885533408065052789735806109618890664704934369437992156272199379591564072899323561042008303028145125637776214546534644175560965073240694503856468559564553835567074393842272681328023894886040438108382912726832494386617887197578786319942585973132254026412527034089489110366534109410856967127503764129091251854597789655636744551187002570541932873828493034613139629414067394421793989991562675177405229420768337138557786255534815554212738738967886010185640395823012688264407442196745517324571570440718057690873946609444512013269138315917004633642837953542128010643258382801745372316838904719583655946412434634630269273114175630012783126576740263760238624808779474636547107773863878620116089910730269927583383395891718523339993996209640333817242533406855255970647581775191630792197505418783989846486742754624885664155998087204999809854370065934239726744299190146199212114685066804598313140391475118887927330067479211547742257399626703461378002491930817255248241232242215857328094542394756091530840969632111487979264741670893820289054649226584581175363024582860699157251287764673615592695355317694837554964120515047179598363544049529836856592733825961543902130613707496982681807049810141880727710871938281886207497587723303613273624563518229774291755032161233500466034608104740212959916722299420074208433344439057622443388274209074566310955812625972385028439657965717988299524655931829124112394881387014830975678280945397135288338737136286681051073760282551335839600863761779438334240674687364138549135575468039211664730234282401032644165247003338639077953954296418855390529108087183627325951182062172675992548884044048066920244475823047722173397804783908020417154443787918353963146988918741900535975703854238432645229512663370860033597493749762920052823921758517851240094741094622334510173891019103151190165337847297562124721552827515756253921088902139247044044089505385470123209638568856985955729645609702600354844202352682035396902585214257816386435817126658162963094074940649558895322181676744321874266142378006301822976955383159814305698985118045004762506636273481813761521919877577121258667098807577439531992307385162737913423370532347834386590066785103283075361860313443888804177526149805787040293955091686511476882449894377485097624993641560878815609511292889173113315313453696149643109166463626544937602783513425146053879422025341052433977915689852491903284054742118322578494079278535772752979400266509561274203653462592340502007640223816230706348051097672717738110396918151147362876576600623808774739212171079453632632542654526647478528326560398919010083441612847897728066129681768854076131065159750021334909917620817274696640078037778878014410335227044034328832166378540201003358610879797255913957159944044694724797609066373084731022682953839394200014103698448161250582033824016722402338829753982119561694410385400824008748139861330138812395664690192083846281645288276653640962049424346686579224788234526445857597140708673048806929447994619815297392872571417380267466254997836117025887244495131263028520726448187668910886598942090824205852472538801882377367473959836923297918236298034801339470563916818393820166876069151408047511387935506534416920567984876803239081861217345155958590578898121648918359257694885377239243119763173412935228140695792427879074469505773810446930282211736036727773605616087052565543631212550329537004271638107514972739786169911332080863126067951501584084535403945618081061139307393564168742806398064290667891524560242841908334939802347117983495299010606126358417993128189582807957731991828180646868985423627487164185253403106837258719679270085814677349052337635668706684988969597415875545853964916184287179408069064497601815273915140371759987259307486527470227915335827785043622554728112251784526377433154358854731959598665652966242427480697799722914999297075380815754195095479323562215625040840884304902639086751875807313171344489301639912607322847368249402833238008281943868909888835309543836943327119839309080890416951024386012877140658160354197873379101427708641178614634190606920938651382730611371341042444982023678314859565750594568246807186860237745395833794701005967269480897848378857591213831212929410119349413053729658502145602679186362097319960841078606953148807410702220236597675531574943880903233124786047463625816082438654521162753403162042746815361469401006098950655699972342252689320701912321828199374778723261868044971173868375936850283825351926578415338571358281441714075430039700851933670810381304184719648677939948677889583481315122319267030280891382064582885601257834393021405548853975112330335353787727675454211715904910373607445278257054833237128114392911883307104828500745658917430808166044840758393353009683724142688316951006987322769861598746957779025792289820160681683789676060910430086782285861774526000968313357214422539630233583178717326127425405051431241350809931925642238819241751259320988355788007559191888736057327731286315683488702969306831942866881381919149897332930388688336594377558842042346393661502415710413124990509503683609437236163126165795971134845436615398369588735365417087861715706369218117197100915118435342204210279265986958638001553183847846606622092581895887605727875931131225234606044251458368708209578140394242663632550537755906681133224381029540034349827084216426605865912036647570028802451938264334015025531189074909663415578015775391533671429307454334177954832230188228897973735341096670180093231142530572229734061113767629373594469094388625934968611121478188461681793045678828637288357511243205005667692193774882997742617714941086058283054399884203577996646538301827756892955018616059899527087180335549699949353018235407366525154162032506741280394738979719471049224895668837455913646878462048776218959590815862910392677175089529319903863768852128517164611291373730974436617889442281375152616650592416972534918850249543994092024676326439807477793188370777820344939630559654226111286275175749339955136258977490785734708897317219726957715791766599546290710051218346477309287064864218229354990960738646293070928553909364942097584366803077936219800417979399596765655483085748819881859889155072399981780960917943176162323474649447940679870257056397483907912364072811282032300152628175258020837714678093088626922881089444137986353520026156704775414065435131995531871672000650628184077769319741466789019836655288953004827587986723294572564464383359777348425159248481012562576988500143916004551465093455184239640950839455703566403803995924759249888350818180537814598469068995422209856433882836622813250329696983903934737384403295465039384312051860891284233560451081193952783304586055802349480794309557069887901189646176067080949383405893380258319037121203954333578846397436901980227427980481898648691958892675930168573785657861062677854297663629313032450039508786338656325044838869267763039865502698669195946762272533077353432413158227688866547996063604701950851156257145038767097148800580905783918936224937802220983682632185143329541558248241514493257463754054848008354218676443398390894526275820081877554630824900713603129842059499552845721429873651149997796662947155634029593065375595538523835131597707549184175219105672682202143651291320171387478221535170751094215191287153932314660041169254829633234484461626544171102185874432832917570882497512006321382117752101628334027160053179977145047781595037678884719702416895860629349915406104424355148624543215405125367365985343093865117322833175610518456148495685303627202218443079040079554413610153518939343377448521865653988774938003165459802977832149320025373934282449402924057941839912800709432173101953325168317966718100911882980281266496901037282308564398122407885498075328591366522400123641211956792415049390029804196843217646298186060709574111580996168335415417691098814142542021923434092132829072292105293736601251444659760569422781109225379955141493721821269637088306003365487300840952954176218005987839465549976238413026770221960305337769723223658131002715172373673881571513606666822041074402274321711411562617832609628997886899614284953004240071426293650069155925540201914433608762553642724203132019230152708226666839875381312755613129642106229886161392197755008693174733521726952000459082860622139721597636098505487631290635703379588088135718136052845262782797180558610496880981549298435044495884946085052112073066211868457388712245600080765570673560426054132110669195177828138491225739335303932232371616667596569255913108936012836929317294231226009192223291497684028732606858342676591431519649846661550271057853947934414369912170061015205279440821754599044572332150364640346852885338042071141661806779988929125174875880745872543937601539790708256751458957920643905589431083709249228133337651702926116390199254690539699031150085719625383383091200479154752085986083240607782355620915022287177689113637483603530980818909525600623311702060735250227929073793537607376401244697000088215994543802096257328157942304076242986952487603183011418287715045845509419371776551011230673379765712217773689171334832828620205327742500745709624606819058935959290033513267376615665168177686969646622604715302400602997832957508236900698533081714096198064595286343146886579157431795624426119088420751352727793505921864448002460713769728712111837080547386903511120272363938512785722397056435732392797175162708220616814109052134643383964811020380309527914129651053685323783770139264801939459898965293596202936833887254227676747010764840203051554817234602157991264566763631980491861098491695685169182485790271628803530318042120949467840208168998963872219101771959612173988360354921248723320861752109142132662931833253107720173978858493237159709001957544542668933700541052481235291232986949970904001227147175759064190207349683945128974182968249095039488410793020315027935276166012084641940333880715868454135048829182924812949655470877341900659652662290235079715221984084719868778704612912290631206245609782580479095184227508873638190334634471477310146854618713196843246333094044918421768657332145827492435849535184879691903657768812141104451945852642182061063977588633839969178850474791655340235324202605875434281106074926985212098120128536274107546385403002688899038190690229508175670564472514437475039055738608439467197863146041189927980690669045441326922368071335418310556294403958470783317277238411477526545734670079532642660357844979749646456577204528342530467574590096306906077912872736404559404751764755132835151237046379837929314275127526342351588830061087965808909238114148195849173585485231607209452784316358215850597680150889543267928799029098553653168493742907226733334799213870225110211429859769679010182369762898946600207004137574203271279011197678356154949054062831969320539727476994576913940181202813423644982657340606308147052414967168761854116406067993494262962952978536437190772933069377993677290332366681001899469972337312387667463090302058700655185995368741787164539854306495671237983290392833640654161051743005765166660699031108716910919410213559478055321395607985821683201778882513632136348058116603322805268241957863326257909370428559779065831976465970561588910089758390822042073907607286358224539466734978380587366977835521669319195755329666876071901054914918403741897900965225872303369772774239126370024749203632961874463468837802963597854233835638221751941332461951971539245822326402576950778335001143758512485310030494376795777771141587050543935112638126172711549706900829183181768624656622601630303781542533813729792426021771380691419866699150708409545803284128407658898272197160389526548194333661201145256384701142192571562635351356742977952090916387460816580097981371404129874663473552723907580992097568570932448172363911667439966055797938214113233000117603734124455468819099274105502928518528803847902100770372815662415674552016704453082978045358668419953466223581148078764367739278631002097552447332737307244509300594293112708266333276973774054607561624589633444313254812291040618574022441871977366764821257562851103160181904867151298226327551148555524969106207460658750987814563812995716251171835744429836125994473053964073552565828174965402125433927703099481348382675620620170904457791681889092380412292353681244455147041459700485847623951474250814429279010478197758944603191246356155429463425893598456134468953356093945010011287333693345239679918877325635021818735328889856697291652784591489192395249324904855914995859361558237223000164481017411923265637665582758139569209733906675819688527768400135079592733462681654775455041813407985908450896855022452972316107261681086554301199880896119115410704274917074349533996209515194892434847104954716270587116477528044314496235647371639711503882419013554837554109748379307100309448573746651499531051081849002303834502013698161455381891568483879992811037017283636016929017367489743279776375759556108001375286848788920868561416043231899778789429781324916925750941041042579909695344888903560107979791772893153719902315094277963790347828873122934644904225287246752426159060995158372234532368223361286251486707081802932248290662777453618313635458930908076317379664168556028519148650808260880983491371529574096603074824945521090506585699391197825038470084246554343068004341480767195671381393969561080167449561153799192404647208022646639601737708549737635405637408352254434963834356002338366130907491450488464406623605969529989442754668220417207808319672035554977493408680435646302518878649613506113435372307238512583994724330208150932985074849696089592203957124374825676321420570296516610058003871695030179154510584379161122113862881838087291992990970565354265124082029313209540723023507835513936033565398938583635158501574649164049837288318957314119770796932388417407921487478586205002013018378641169757510959289870501372194614754034413265209368011273327851883233611624604364513712890793801099012598602449269423972714041318356893078163718957114932148866404160588996737827836903084933816136888367631692300592350389540505491030761062376015303811111297647648540478498644150481711881777780109232587296491620578209420896932868614752219070800938771314768516407201447234216562304062318901161099171301085618696934143270376728574757620916224661194797802260146906309141936195996582203204393642893616761118284735811480299567985545312895049006874748110325963490255261561504410776254620450160141953330844151849585255733540982365712275849360805779996945199924672424981378686363426729486726881567756285886039159683262725146340968633676225927508107456736996440731338157638406198558165514196051795561481516849461485682637282281206168621648440947256256845191454983057583551151007193767231914690208299131783619486016371672591277743099005587526493776032856675724656328149856040734829421840601852279262449459025109374286098813658737451608798412301610500206367100730945174853286255715791394108362931384442719597699483820757071336422298943350765495963587464108831558054125117779238374500267307225498470073188487097615975257727137722979635531448646369544857453783698720248452892119509376997081901938138685998522645059405003377090587623580039119545339364615491611749177524269291943460667265939412916834701436106367404223053907572498806926674129260965881433790456691684751718069307464442352437124077658028408534187899453987974813809618308074583383590975214407549603332717359287357119914990852983274389630799903800348824439720393406141281810739207701914299632940472970783563297124696760023461949002690113380629536221000421578475369567309236601869596312254869853466772082120564125270778787260648798530648111659195682565652235812405569086925226389825044347224616004282127251421316771552772504880479655535679962614882669924893411918926354461285410218496265990373169307002013107124598129417675663583786292402075191623940200256612976282690154235980906604389039819433914390880222827346551332630456891871871648652557694893427394977776771802655525885783181334932828202801964819361987847416523348043832151709813971165146190041719382692668684195015494534913722749174825604289983856861788010499832076861195684179439525453041998717472970589862515486631943742998646320659151287708316876215516599083885732907814798593972076223837291923287380721766659121308671805860032795275004675976519708564634668325886593839420834627448565198325524123293479506586697529704337103313251072826609183077715768274689223280742507094011430534493085187382932243641107007110971403960873858102912479140607703310020760812948984552167740612384096791041738875380952828964701847735274561495673456941910426818921977928546792412341010591721494585763932994377572938392740853986240983912148605988817431800565090592651298018562276777213119274962373035621036441082359749916706092962796392931939607165459351629798596218548796758311162922962395477154553471113410598543350646225430094927458618523298191868931031411800104059246105658104424049422106640316245596941017334087071448768705457163048738136653536731429434745785954316856106639216788710237847030955602461332159712743884353331902797131422201423798850206273365951268383232804994194889502668380013997227876332080442125048014377591315488964383268402171909472477059381401111132406515045484999664459991981438285746066947811692074057516205609391053303339035077857773419922113460441966342389413058569818684896835063307507879875011760246028936545595572422090992629715104472476625713347922104188023093759990333445175750745582352686060964244642642789268186309381161398770688589825025177551895597905635385310999977019684399861388435160231179335808690785870713578802369521539057976026210985795766358478181897270616630050893676262787321380546540268878544414944429695713779583810500449536934158951686828329890392756483023249717310658544890349756134274750338226271193301862237679916201346242333433629666277445375458080830029039882460495977511827134620220531511805846991346637875463681734768234054707911972429827741714487509219114887765803273510691792189904587373674922609807763104971256916427639329898491494438451089023086698068734245215475120287717288764928775328242626048503005818074128986646414100657923710795115952812245116881368340755441915967706827422251249232867796567472824787716276058906937950406568012900256316887248310104716984889924758934970258079995992789408080433741656433615935306848918547224205232444317094366226147771711051400901312267880847703225177533707000316485642503479802606111465578407561750885104950419325684175562426751734470851153700874403567458646853903222826680850878712655989269753599817831471691044431617515227848889234582041441603721525337675180129527286153883644523862225664214061668756745472336232728631677054418915575394924591804750345042271464466680116304910616731598131701130482605447016039084420951297933858103335010784276214704381973667215742319281807454124742236738541577358584334591886455105500098616509146593567485211605165475329441095279609003036232144912694162284444733140340696782563425053485635739249493430783145091223523073218940192426152903937235320110988552095520536888102152084177924710142964333482537121356101842157071816933354963402723756734295945132650072893957713206069049991851849097252429683269482704906579894393564253911679942010069443890129514372225649754565501506962437339874217073465241127132537298206315273078261941930971659541729521226118734332341444298698031332264924330745905998465677899816016751204473833471919934792444861858456316371183247950661690552315594426194134700007743228755990927788053751522337631194934234122848476722360153193629125724557452822611539003883417137022120161238605139029730924523235139435805220748893911099907268253812851260258755708353372342027450613950106972091140856937857219589205025680689841409357388543004942754903491128117001084967557303737704801077153069012582668983122858257949187817875156381246563320304937294170360646730183374980784894435531728284999635753051981765236974839079936880217449354432657555130655200623941561226853678459971255960971561638613706249566232507641125394750943821399820846740201236141032103196049222652592140219548882401787774799180740119769083548741653510812149514979823456251559602905893953363945121522654681855981451133438648084077099718871102138286824336761051855502792624582821510854329968595698498787460845941207831251682246418910884862128748760524705903423234455363762624191373319854994898358126601220691554232298389195480154633841805107516807900862069378128618177964579475580707565314602347889067058010384885452310502355010048901850562118759440097212623486538913416507957175720433340211680269552563824041318054969107979825999627727989442803801443812694670679855617225679671575527235876552213475938391340448659805911854584321531476189828097586763308384262680294432300816126965891314024186485815804066108247697885999868291028641836438271433547746524502104036477458599824820771780074426978263858432232211993321854267151319816293350976383004006448756306253146824889094766857391520592239573062066594044970659814596294453144592258194618537881305731890992863411459583572375950501068827982335895878889872635445270137690648821335061970970722182748816776858874463591829693572141928524440732799077188954472960742750943460242216733995693679030634169363466807325717164946650497426613886003970196881422301190170846939181808064564968957053416961038938015213307903049955257872961515427095023615449656326588095163971735452594050382211505869152945051237447116600256959457167696915187238044715254532396462017581483189192466659875046497813028861891365575305762531462282146162073817073052703852258062381290034565055557882641038352566202979587753668244752860554841793480052774731805080831985732474155999471773851470058294483515830401796839530296569847357147810464002864589077282792089599686758188560396247351383537809071146773113517215311024966588297221948364308566297671653790870497910425759714879322031679738247407725713774159476246315212151053137736665116329470598791620267911313192040039390191695110766546691009084721830166755402985723039924726793798581032302310521324651137943007842407955270498723622443175478079634932613692194440952878107479133419683056358045674266421551603403234496888542298405225255516527162404628244956454084684537126283356109950958974901800428070766475468318139359415512385153042440640966345797632022409160370025176589704263382187726196094087607979402573544145557697804931299097275714208943085374653242143772686431919534089366428213574430835221148405736008448635326732460674091399774522788281078556873632208181224144684211526090184233760278660006143824542328627100555873803274222858809774850218037224320015303691693384050640844556695462498457110524991422037233589674899603899286527583784823433362538500913887237287795672104039926651371031644974274454438085934807214726162415267861385361357825106680432201326148024171771179878336358728145161394617133035711922494539752419855279549776749763504911399030156187144417279076885976983067216060290347668012171776643048172414989615109723330125553714530536504001709442868401946724870083651509285020576958203276743055049952078605655430320212646912276112514426578586198082537636264722611358399556476511473912301696559759562367794771334797049982606572523898813099581113570594811761254248606337575843552807017550519229256342392791480521964163954863224122432114645056312482147555874390838368769711262418374758358391866015655244907966269407899144718586748662742262262386484091542135982171582578268956908082075580307487767684411820675833908089384115463504031042780210705922579729358451366357807186230606560834327613895655290635878563557953141761538671536056370934650669164865865394400553973738660915829769720600619117485921132233335497102221373047583801230932968472087646228617152626147244083235437893643088662498722386099810178144286488706207818326870419272280660701220434797568651391459039430302198881965103992174192533086869882469033710958259580580770679015924941842081446168883758970848867339445943842798828089691197732433398216219203858353155022300463112578919038399511410876907430873150161683283134420622103963939832776763626579743987052029673401306237660654403990722431332571642631174614747570477443454886634848489679530401485685037853411798452753629118177290014405251542658361386085818921314789275759815813891827572448578123323914198610844333416538681288207800571527315167008067100440816837650197483784055239760664752923437574298046374261702730477839719818900258911197055137409522137053341176297491228201399228382184497770419247120816994365057733628366030596965751210444056709590707667032902851573297647633787932255345707011301681013614828182424795370217836401211532328239369526273785837536372870697327790696137467297951067426731860240336301580448476041648076201322538113949284486259044597498981463585754261349475335942296933205535582639450726687282133547763634315466564764640566590811502554756912439964899144915328789613605209376191934565651186535915593248037686085140081046703230545392007931794273680556989196336417920214675375467457845728245886863617470244642536526728771939814018639281832035719999267297769594611549162076514186515587019095355301945099582167619767222326017792416795266647610422844176561455056056240601080738087662656756786264658491329949271154248689998588608317031216750510592952111252447528411141866051360880269988157990344951496620385075768448010898560191308800466930833712612530082037550037330232015216873742240175603382661169917145250425291470152690327121906653272340287945012294046623701265003599164824261048440989740731451398947274998722090637867812329175908497530657670496005381707554085553530780795369433339382990202384034488996285697942407935149618383147183034504159928475536822559428244255457545190059173941871382631675619167719264758909496632378152511092710633676904533637134021499094311259066419248048238346817259321027143585215969693594516510495228297295213299568525959957856368856889931409661814517552124106121795706956857465499749344215732323434872527980703392308171955678291885471073235927638265073467816921503267090541357173109100648569454768508509106968406146792665427155725885727268068902735033203603336047553924686482288008750448186576351741080700820565639116080776937198459047591106575969249478751702084139819231690498222236089408402986839500473744269675499970409504669454229529040506431983643036863955040505464616093506388557495653238064348449927526694605957803596268216015128889090790982818125901440247751000857325066942810340895477919540721240530663750499022686257144486982260483034659795016919679064382382322549332653733992514226061002619655370859496944424941196524611315278627950476706107174555559520725175923778645319335392324102897820785088964985979954017070845904813183361894980040027226306735340070766083171644408522837303512669766226034350639012075257294974417952278687565223253468566560523134988301315449126608733183007847854871619250681340045435906933609712712946870540874242129634078694715491644806753431911239381790800031007634113763036013749169406195969080692646636136651057760269771836724449623002680886821000305579284887719272360039444168054989398057932221302296477855385516045481307525429747156255781034468070718791805203877653362429974157408725074773718648437832034566784728642653428770023651086950790999132199994521563232889163777266093905440040859811030861117139348333707458980677459105649194786972731161199907048045228184903914836727361928852971565332267136732398580094816428439623454010243358409841347634718456210627566628585814159484213134614833222113498056187900285047444654721100930358425332807231806357620843884595915782179127949644438463187912469782702857423678156800607542745615660081171565452611870490274520902257189634751898698778812972692528572340656555020533814431840472295817370422024594702178400457434838860313708314162027189506570123057144928243274374499639333209559857448550879918044713857273329486296338937195909777711473244505197755619506212327412238285663248025609398718018917040168257673752139615433312244498172731438564526971066534027292030608315787176158912723080699841104802809824597209720374011052512950282050607092024935293433391473188918082990457245877877683593292715959307399115626576675721047331585316901176064224585210738238181066598061131899423593798230217045123133982015036971780276196455348171866654662440764043887936582970957011208927235353002050512808453930083044166688067666171740815286578549548031524958296168260558802502700569232975369060476535883124571386625091764554811288427897372874685745365273300144013343196896555514240811681317831868333880849481427553924456670021075839138789447422722915836120624817875394296543528748251570048664627211751837436699598546403392610783083168918141400553066198510252424766351064999862617451276357473309830301183734314606797279403498704997085965654622890977938136695949307723452895404560269044692084099912663644024692968404950815570424007083509625049207323198895656891932175373552680933575971631733764872034467975038412488273903104967604668768482906929768707876543090254972025246165514658037084012351732771099216464816730466141024925654615214652219059892381422485892410885743421979034387780751625620134062681698650676309095047963877528861699058660150579196540036072683421356905940346094514145048686035488231647445413401311858546816331575922386073439598349874832606343319653980562739385065152615924990543288421213366548205628311520812807700180786629240812651166757123983071787709731032029895569811521498780678691526626276099423710325125109785646435250980035059133157670883216820315506377155331879081969106266689848701697846466120711473723183625759429257147680558757134137184505673395459926010086886581674205719736366816172552775801377833667892367323141147380683286405241994241377980139302180203861573251423613177817787591144313665010677734609001591762985580473128115490346236676022281866551001976016556206249567085422008749376386402305169542306119101051684137476814077211997251214001847652616278734779438696145419657414530972061299698721214172611144366093994332743530359376891544175232494289565475526922217310146019696371062472647691081768434908745007976127082259277295879422917698301332300444115450038965067444777655735680294428970492914101076926839993326658181642061255235386371474291509453331703742600188855343685777713109455130876099635797927066428607508280129470435739011197626471671538510391982041183705618148860215839526776898602149227064498253001957704883078736027583606621463077490467684361780720663711630663336052440027186217888839937994050038727705116090651998909293395072776214602833497724677839343590596249101493640266269725771897795035771047054037459062941595162915692630232646220001144472685455898534653699354812143708406642810202825565847820154500756269477304078329583527238900388676007660593644703217824660061179680916105114669326382346815375488661957191663484478267798731107375773687944599324124468436974900468923572390066690587228210135566825975042477461729794178955868250909445196896207984612715162878058879777023713603872064170470813317343996411871765200810677653988620042806631675137161423536292644215488862480457821288370644654187956164680693359140818203675497938158431597431329806350874629242389473330121045159541248270399151056020482058666833951112469535014928413688276862075081992717466246784347213266008336566462897625334432121971956575341820371533997188494283445596493951081161188483719647586225062571175057456128171330702178248124658524428535826911187895325466310089359479373637946496105419081957248660867760023271931786489723006449113307416154308601995357638144431243826238816462117039500416705309156836120331128260363384437356677327980957359367773712510158566780478988694721549415953003010768841158237181982535445553377439706164108097832766097450269658557683787157399023356153964741761685743006626764056097571851486873680529842264388339260102366546383920752637612601169937282913821841986868026107239567329132438753543066485187499440205296858005894492578741780627019887911996358729169106837621743833457998391213220650291743146226439631713081455497482426080330611073990252190568493176848754812189968564478033264019783271943945611025086673176778994764853297887208642922275823825437279774637109812702900060280526440112815033417898420924254172668512543562074542570719965904643663458376779437578249651193726559353207302506454256865263348285127103624496370006371388022534242462697682388156455747095159066446951147545122153575428124621749086327575550792784910122470666759228094708539597839661328552309118586345674517046005446304231286477466197693559328578277112697744480122771655232502268902119455006923490313602393857044138418062250491988169475769134698031239803286240765263518701946432820423848929211428308290224040712566814095176271432277591817804529308661935123796964224648156685411559787321328516586216932909964913315906454914387511351099849334932333302252868833618161946134945388778213844470850883468990098728636077591271203965443193121391049793262666102248820610043176836950212631876793086359886751636133010195448231388720742569182551841865650415340831766345568346489637227491619566602469304198943938101420388851792126306004912128770094469068321549163525073124376244459063409942276336158240532202776609514893777392380676250401764845128601122019899707153959225074499733933231238984504354563648337614695921766679658379564949468428859752439340947922883827252917770841799790865888130960754576030858116069788519740281517100336463064634899182717605766740173970205253129041928393466716160746977085889469681135459415900755616496093237566811558124631059074633538078738489509630145481442114061402803699504711964421437845672548850891250170496387774168772402319764560509132068674695923269852609775319236366617589008057310828271507405903723757747190918192969504102135343689590866069661395816939354845315911482480844947382393551404494836125144872381816988717447024267221139324754684195417917300163110211856419058959970707096986819594680146439960289721942018786892633233235856739324903006816775222859883561680383492564211838246475460098827634029813507947978119775799664307081792648009769558419449554143312109644899882483995776804266215903012093279103908725847002390667978358622826189593850357829881259075869280472934199308377234077747663650831398213951938816729405792012429628873254945695401100054908296277000785406933409614422524902449717774214734145884850973267267976765847162802369452952932758913471855653518024394878618430772887345116061412102493884499113287305856682150047196077023616079977376757878634225152682654687291084242500793085302771383731674306376939893461272965825769989010834393547800614214127918886821860161079351510138745234050832627472628021640827608537396981070279470072557139442510478628277831444959773611434220864949073313707686173070125789725151544936976344873835597450874830157418074866954998268293462359885718082126233606827876932665724670191803252770348840054482478971849012369064479849382980213980778608970932849525069093634471344907015275178186100008020683406557671110640892786206831918621803264035805366657769647578376287207449039791329723641008918962490044601330152988558355957941294028583137406570288126472467507747892371041418231197691333403796856543867026454088701479922095358138342801542236414312917240016314252985681810678786217618841828320147683963302355856676133885103329981166772696200342964715158910630591436958934560880588518408864652024992420098458442541716545116915163332332148324453136063764430370543228879665356637295656193337706863624420667347998517027612465503241578957840047637242819779879941046194775397746622322579167733597094855809253727205625475423761238980087610684112019479251832718415047760519529751382171109773593405406430741013022157087276859920223271046398323688130779908748616632693616730696426246916538766677276714905002983628252936608077816941050940280655485363238295550117878260198436644147570638604371134754254469578079159904411570562726782006119041235878300078744730976669321183518105961468784912161401706027842856274599417700804744369998922570025171065739213238093713975224541297280633016781229201935202764817675623116713990940389651923746935952879288325832645604454947918814497065870147302476718766840489167109374292274408003171494416740720080176573945814995106633134009510279454921074867009303889988644484487861178149293827609178340193352440003892903568969630853668111545562210708491714687757475003743581027465172278939126049028362842557801365585472883307527538072370664270534803220053627661957032320735686485296070756352956908324482621276380953364714207957213925958067986628803579206251208396684679790138896737646183514092783760784824751572749194406741028437945443777529621915391169357817601108398913095352554070598171703981989146907058131944566222601189881638625248234232811241716011998367966916402680844184400751028329862469850466194976513512449896951059609617225939569394374029992429327283116630741371406100166305665859785700341580374647890567510774501268312588681012164282214498346780377812844041697535826336296297584789985735941202403571653554837591123538609462754694143062560451679594455178785361184760623471913449653370378578645711208865031223071946096824465810233322780945524098185155012065552659632202225197413411895342557681893271744722620220968509426818468128247459595802576438513630592208346797917341286745161069404711642963700718173897996896139382923613968190467966846724215147851240440014618351230725780739753355939511346794665229335374829365712706327523415081074438055354008676896493572987031535649963156258408350984178180517415001972657837655596463524938205702880553697982727994248831304138795127376736559461275510620460833240740988466108363770465852501771272450125488659790745150108188240456604950515186290759363108038262206234105696889255448965915478623953898862857321362890126530640506684716279536939888523767135497314875242913095663753412844207341460386684312899742727945381972150694301051997131027862825532503993708410082867767256652229088559032720893143744208448036768799011995486678536909689260163497936438356780136669077124286737936621937801373831944416277656143974864883429191203290801780723561736139477010579978248282247164413059999381506676673752972240792298107095810576621699686291433126519161612076619455255177939877731181445241403675514563609910250853509566808092360825775527185600445115418422237612185496681755155719356150280584871933379152515684377999128140641135770295021931452144125845877734172497129727162324537086762595721157880299494859100191410220060168182271323210808333809908817113960038364979995576397517044189619502300242300021273861493115304001463447238896716161487765973843371992061732025721563183081733362698925123572376525143465539451331781398976956737577121932032215796018475157986863087618849446197225104523992148981919045576931967034319711784279503908057506091321993537926831772614474914562984913791355051648929034723972186574655072464154471328690749758924322653931225581325614294188878832856583793794849437451859940565718677073428096739274221280561808091148359483571706568944744679695691839015398719506640298296240580006405605424712979623384014326278745962952962784346274980973853428216882505137412899998465750757181427296758007185486614614995997916776721768718933461836834945923392154135186327254465261978317014979744687122410225028361142596345045972044594697937953403596889921967332663667875546478043723732596800002037140867046569210856763970008614637748445207194839363771750562318946393952643474586236360547948259511536984113555146595730809645127008979362760057769282156290497254916457569267446864767710377838356579998616737607728192053493614216595518229187885359205237297640004289390767280994880387587470772437610138351510116861296226728081431763035394555987908944072665943074935824108386228192164031821468775782344076555008455040175625416049944276277139654085425830620265753329822067833115033830892792690900594358978456420233217289739702248101413574492009737800300534355128032781259870101472206390086267360578021253262706797102406647933970143605474736373022949625207850651079179678561284846731722639076758577856665269822990924972833988303245554231476534490686087451914788335505465296120327591261887854705851428588098261144085301866568415156270416324513378555763170558855568379121243828452643264493971923483621102258577940864544294915533179351628710381629053346400437129598089810806738505259821448128345524732596544241172509571170631734222915631759192797370596350804507779484297513970200068983385610386738330132126260802089577081196953802256674202427520552176353092580327468061396395736826985366873834165803072903120622388929677609864965962649722923999221848918553297167686482471993253414185011653175929438182213539305093673837985538470050219992264041265218356812323268732126334830645701218206427009617835563272351246158685150680479388466626684747618743920634143673248475490320532049490665516846542243413237256542003592088981901024622862612299063913184542900584396744947140632855380990742743297353601415434762305570358140906637990237931334483089630331453029661275345877757167159786700492347773044159164497975548818133249245357156276689830017611925796928908306461227272454208271780866157801816318491609995890052192077702764772796611502157274231598661052164345280197152196119334646525682934401925296874515974625206366536703332606822355878772670918228265579198165278901716462150318835943714842067665936908215809130707804069527248745946335981831752876571855818606496880056511374192163529196581586527050255851259651936003460314418370553990310578701420368742749660627843704805819670365618520641851974855579261020857057524997238730917995543985685892885978723387959605475120376544047183438121203358552222194055052402250214002113233735273263173532625564338692319175129265102018306992075969245234859863053389891753525926712315802080018001575158658100755655337522108692769448993317739256262579044220624144809524321819319797927688344350157950737583119507380309705629250118442429078041963739775209954750456920165755343774891639230591714007015629180788097630141377940061915795088122475729182461221849807228515800169741139241651419672654945822396696939876351340902312838726340816588651862133650753159620900586079175764223147365117113083908469426186174990711988333295175453334359752050206352028385529338526406459942664412293801119932256759922500465912482518102897881948986731736099499705264864073496078996268016040155305200198399963444205910649128462541193738903431343416332262916111576409634942282283301050574610605294615041102747144218589098710042293943365257661334626580488654831929518648223745990153275669298800742046363905406629291444288168184894458106394595057247664655359837815786572876973835999607697030561689006460236366278143318965867873748680476440949090799469801617555097749598443664857714474156604684265326159837414017868279520931969676361847670618579824766141392622310995441272014515149931728011548974082402815702307891466126956715914026394167691805570799880240005510347349406293390500403505297975315817060109787082256126010702295012855290749363228005002683504671829724939877142793916823687515334630023576684750370107363011381875742056532477809321627254612670216394831036764099658886493873326485310147238137460832949313898979743347137785873223512521361740728047523302460901173376825643054760093247384815506741984828164835199225928273165991872156257393839388907792409480144678430089349691353552925409433947432966564565504219425328621377817644372493505239806220451368050422752616521621737928060253064335318154697504008442730995589454354035385719507349982145105970417320808305727104634892173253822486789127923617901760512111879512916559360673684811859226481711324916533494239904413952814738133951335100542763241128436751512681076069574766393851265524420290974761918392335024039107553217747119479213070079538812618314968936733462186676863526214061314632790507693190720487710498211854266244558987726937380374191129486238482221374705604045235376293961869318378525507125660350594929866972976088645681802689952457493714725285567671600953888578613762006891076037831313841751328035026260348221429229567519964496379724223134527359982210057127378717388317635651494686247948308928105203291857405373272965325402719945306609852380568955365376945539454144403500558394688150533417286914613863018140161990914369278531997872742565730177547282749261983474543293248740789516710292825070695463346371494326920096202209387453497306355433346819384503337901539788640089113845702114382166196507061460900992844240673327282676846406794872532440037620384265292194954941513741251510744048312340555314374163493164482974572439247171241048616622550308447898764835315143620244163322801455468303902856200962358988470151768011533727008370007240598025833100926023712309269376945481911856136723774814493042871031833599105460374574592483081908447102825123293054179877161730136751964909213541166545593101439890098271847388467697684604280204306998697001421924572231434513118077407592369666539939278981579140804370580999552698258780862895352419318332989233502555550249196893185510426720329797695640654807912201963064160196782120629778266322140897436707374931817511050272610587049126776801814752161061276827538288353372388388942890524761197851429827708063198468447289242759507209314246695026627851446431505622631454066592410864068312440416435192489115436841471497646812345258886418377484108411283870222741246488757692934880846871904128262690650029538674542659467265407823495214294732101147697235511423212337011896222347271533842448398089253655954057911955523075601153205432250796886115600175641184867696932146255348226058059608841232463221167896423020957337358066632396868045087647841436557266024347385228327931732024894735950491357058020324826252266125111568305795581130990222868854705816614038254016167137169408236476207272102838592612945964411024099761110653759972239435060787609608228994543036828715136538381989301342611939994381971548273475532285637059999096806839005066365462635194407328800127290528975282106411283673562460225320593539641754989372870953422533122885053735406254245023969631245220060070028945552751474859262931968681489838172493925450830077774333625017629867749010182792870708134570333596236976566824338363962582977337848169194266390029637034531963176188279142925108380173895300172766986455980807464185894670523520178620817818435171627762969620400700870532091577735304016723588314138610530446737499388721237494681591991685355911136002240145799266326953301829304353219481356196965966803598713349663735010027095586580075582304400831695836237234906338732028030965420296066752309723970435425864066125433527803890503698931125308761293133519109401320629134881957755514310896018766258207009099370163130663172863810421270390018610376959926588744893831882607258245819179913816545260330260250033357543778523186091238904515520315470927129395661440324434844225692883231216796300923269656666586357756041143078814853730685814432133297284180969550160027325549601411627522616733844370508039530267458620537498086601146273926430996412685432421871511516786223534041089624096872832402801791671488375523987724346965537849768712103592091019956014911833170144732689925585601614430097268929428132943884573100901519140923118456712467727254169944623322329990870899880715201230449630100730812148614199481938411742286935394554089132605366764986439669069776507994249947467006216847865185268379325329051076434874163524152974209089320694368983516951532801131026583013054496458430490651871303526698941397781367697870714038808035274950113202921659041820470466429405051264588992304582832536995088530076382303966245900733867946480783820445015478597999879921052408938401873956754449989875579237216257607800193831636583734103232125284866836233821768240169806607458832532219423428771006940756636293219486477251032596855373938936477749380806243706121086476868944956355892000797178545494165594138468540182038108972865428829077401890977240736634725626955552916422113953676860092246099294284628877800292123119889225330720958526543386623551589899163172324173024092876682329218632131889071015804895413161302831485874597024874667284162243059620201586311991434617609025612545578981334253848253686248691343212183252760419085382236366158604487526363979363009692731957614850683691132130004750340506181156067129833420259705440921717856519483495088291952572952539801067793219819992960599069352342988109884898337715493458792635978475902234341974195266343126025663842504796712214069880899072554778112795597459070614928597632416502574108440166391152130623070525045592074526474243781175569986481947399336735472023418031114249155171905727080231096682403266823673705771400516540551887167620886689869939954335018833016746263827906524029177992109360785106380493869158727376976934088941107447162346042077312122619003431685826716365081100478138642999575909074657271016247389344345035379801518679307054495306602142061918213907986789733213460670512873162436586136823580500063274471752167853919341515777568078191133551808742145934918166137459440504019465900527291016331193987638487669618680406107876358076009851247374586153676011606799692945308391158271595506861192344828514059746496701286332543801385493496679164302459383404074260161701581456981940525459738510649301106480144148084594240484770455777462640431495810788480536243348070002208554154770977677011430352771291089506392576765980460692484234048797504055411006270370928256856964512600986839893374786584904054475719294506558504142713524023164173226374619972714932314267091638113597039909633333684316796461666805303019946858427645302113798549743140564119558207618832749583102960501255209860893918806441721314336873695585361438144644443817988116388745669870165984245610253941686624976888805670740038649045536083521763647114975084836382231987864027242581969483845203780256655455774659623146625137463498357422024149959221618238942483144741341108526493785617277787644240666981957642779749302337230297396940709004380139964081084400466769212542318721476990260192273042202329420249683984961382020694994927235052528259797999049281093125759081309321361288681986868024612145483352358653395560821360403975487141275617641476456859527435369051800106892976664613404714443471733765172878718602528953247047191102152582953695471111842994183396634572674831593172571908543805051034512450871973730611808757978336650007725015048651672971877465022190004000945247457096501787621082386907250493075800370954269495094909584991831463388406338996669578019758963764081151359276072307271507934449150985407096077056138060640044253849534435108855472141309955982266518982204785623068752320358440772760149610135442199295399086012612000261634792322335663929238265525336938705997120309426995639345288744112598821249100371097596025552165076154525729673242730009630887440152066241863162468803532011008184267812787843402087875046413347009916433331506061143616770954592604849861856706882255712673456189899573576499250603499385920763149199936239301208736294639522207544413641338554352987588766213601944570534028675173674854129703109013660709268554747572964514288891146374934547724198939430003382102893542931152930134151696995950528964043851428752307945165193926897359793131338087603122302051981791438191103780629553018099178719134845689895179333565340647300265201300929617596089031360460560664060567665582980992670435862092855784412520141400033163009523614718170830864514985280429323426844758324668456882401819058226486497788555062466669983009833315233109175550620946873417247373334437488232750831972008951107631092917429647290281351383953552370479773351344671795177514934520095155021909957450739050690603766002319518679747559309943406452149354028878353088313248548159700567849996318710752323929870322764052793066400941732269935699307173850255805943959848230081274770388442177321739231257738963232266753193115680470914171489702319887124494514101039483039055929567263282472152913252081920772025746513473902507270501107938726200126745618777491045878661205107359719804053097281784733175420708256071948276281793481809678028541082902485519774979649980237831648308922200767412563552294900470680971498735363361002793220690691377507527045509688939781564347796722826830988467202611126696135055240123800134170187254368830843819904886616966819841263696140157384903569870409175619027096261766230567381084291190435773014451882539708062835751459121489635132788619329488882894198995844652569762862751589635986328654460716405676618227596811425411494015539485840386203928772784148443622960619716354205193690237336034319261617619769328285995476782307919761868797772926500993564730763680760755743518819521699321297394615588451260889158800721725139852860310050447258271847930115808014448189197503380302937110992610834383294602595694892769880767684010354860360630464190114944286992452594747104985069508885383186418515023491507544681947408425817966714498008208297237422939528224718516364469443486011982151124082843648260046433079412579968609515364714543933924159265685437151879568920427681870266042479406790834099710836437790097938907364087556426490929810485998742243367740983154481505927163749172823859880225698258083635890570550526600992666575566975874364822964633945808507683788305100772947851087725836716760794121195390229948403731139476855166032174458874837861449656703162795380696076878137155323799110826788605644145677761371199718340554803856846965421512680779526241921213026577763203444002829476022632600250540242484025011880311903888434964169843317397341022211448878865381818550397987661712573435446691129738994071506422736548706089293266369402522598017499065461719114860924661968972951675815848486828681017778814969295187158176248969890003031460889386091936785906046193564482475876174719973284513039568054419490487128049405966808402225232361075523206679408975809118075387865260771825163908373309252624009737910741882162497989316956253816036509937172754939724796096555250011492163546451740286269012010294944521097154690959268697568259963484542398583769826390795061824976730459442052419576872776535985242585242452433777172074631806213267780144107151254167354128240550607036879807283831679199395177667063835925848852288558997174718000368303394366759446184477870600547257789449425398354641025496961035846472590987009289280873040314054607116224754213237142765531010020903260935917840344030515067574886321644543772388582306803241254509192640265158009311462986804842278454440525302423472566371883059380331850568265137025415583232839600883949495848189543612387480166992343981383289328463984335790124844759181464684386879709537782709209950841807001857766045869323379591743281157144528060342048668671203592549295840730689550942047669463233834310014581117897843957386985240067867451486814254452598398818524745532017856003464891753617410481622674788863132002157867492652148918458154383973024017160211420554179942733229362717203739531469565744012085386502675569730903795707833783529206206634766542455448465467534098958052006582776199113841137628424141765598929278059895498321712731221131062143490445567116414966821456903619670401436138869767459615724502880608438651168834522592384878134473319844947676795585099601797123152386130517501481961655191635129652473057186402751700993518086231152802993177167190429283242119274628311105585317195521106911843823150376978580045366379799984732140079958836086018480135261785534331616216155172289026535549923242944466944564162491504779397437316935207674867835105760767724751665641042262822033814327271663869303820830638124864248473938288265962761850117572461550399330452168904401706826192152483976334933092631252950371462620097047037933756415899049775362201425257805517735120258517635896729963645462628544765214546786984903233179812065286105166991256836600211310386824418943902700559641646969820178658759984528087151469065430186365495194120261979984311107548017054099685849207405946267082107799528677929567252965416713529557744866356100118685177237339295706062937091696431897081136180651572875284689445062107273551340523865261088397114308350031155640175805419662929405496560011089340997921826500650540012641998676761392247606089670718167032450509534214547580302422469070159478158274285397803246961196662384052802343727735216887048820552250658594645387301687933533973916517723301628785564869149819840175873360878383950999869663044265746835281342808289434281575809359503457008082303595289489068565880006262836846201452232261486628902799450773856064553627651038570184202411232661569436307725031941693498988312376752974107922608287654432977608643925255241835373056951908468003819994539306512977000215035065963939559790404271060884551839877293272534115581937671598702698673252181770938745991767198829237702655430721861570922417625775221247347448798760275620904092881898825613663045917211177868857708008109947291341517974147954818278647576266553748372088266369076475131399786024972660872841145855897245444968155462595776690097821464690790582743456040372820147680825854968630122990511808023713311100732703019897238637495944829706484297225630457168705998247288653784449233394908722025848306807779962609082015148306337370953946628736267188640543664416289777832253921524281167662088083904733876115932880533712618182110118799796143351361694693418299552513036314976458733572249620095694024092116388629390588301971709130187381929542442755793578367405615886870289678593387115188617521470518113547870172324115400781759449274669678626502958477333076335012182840450455670041977191849035445236372817907958220119132650219104368964687172421846817226357582839664475693269477609386271547827282371790543307845539842930846337578647702418403824635825783799005690120638093978203799019597054014653522156471177368882946439195239873246495040059102696043725656031954407223554436733647541541570448212914812627771854407011084902148214674743298894339248372365734879274156836383907249754029765895540005851358730169304464139556264965592834062302363824331271127899641495616789748157163945139400630832730044487531261382458306411433770659890501197593670915994109592354520648652755394853973662509353159423808615072960988020061909730796673762860082850592325346885461212990092863220652636794577802303072022028931100946358687833479900620949505102285897860384360757170088006857368366829108693833817264003214981755155376171651054694099346917791567686773940078901518540390004152449315023097620611810274606193653268796253023942415113817769007575486970426482215222738202390475024218713571991236538154062545025971959298529574295257194480964005227195770044137523383569933382326914930642100609286060808165251581790839579372678692957632498734007220891974514758401516416594362118183658252514002648386299193341819773495733329016338695891476128590397120030359638132165932798172090806118574448945735045644787835962483853739232293381764918056258436844474831099895312118891695198575225231134101574449667065243315940498882576941204871377491859833464684271940261866424290662816088089117518845665805876701695325856955788258419289021638447776331055965478004395217403190366807036235620219358762054854322133708875910687190087861869006861657785323771184552156139647054846488397813882134004303658491067003624684188624893391338799542373767667480171580969206587869169102801331506737846306623722368511807025110401949436776898922792928994261901429124774950533715663604953882313678925148402503787861892404300958809918573037895506922539612009893133328869222298095549210533214527950486862043116301980074284001871262120261297606766109261200355580460276624784213535694364119061118429949325561732060081838567450222078811713441131513269052292505033592035121777430865878516070734949460040277458684805012367539316028917040822565486376946103799144751378030438839527879815309920116484271008545775430511712870436157363736295544121220675240937781236461928124306800734517322318791327991635539543828515561674334113049971836482219836478930669613335274039137925834199996639458891470048111483417226504766969804855739412343877435640378840527431600935352956501509247914587408292848961213665704102690497726249729265528215515742597215325956905733426858716276579168600324357350916908896447747961472084481103030734586744665065284591970891183453957979850205397324067140447207585825703843225980360026945718809682762326070831585671789763601824081804230141916279458732793962537060759197552818053026871708983552522978894931694384625186484808759756276003039590124415451636013164383972343342198157917260114295952044402629305734040297941675081889930856924045213233928080753359072066548017099680992370528152921175977340986075381623227888447477183144138141646981043909942086188686656067375690163141510073504271977313384860484327434295195707791077096978441136688239786036215134734804910454624899931501875147315298077134968275861626360818238755221477741993435928236992639873408741639492575809362334523867929890034899788888857833030098597936253113184358842689724129879970707802968395412619425450423759096735375172194456928266335214424400952340086528218159769131469477955707123420306458894753904197773492766990401393613973694228909440092867366466824592904442877228829552370097100312495151687088980139244922763670769380585381720940347811415385390104504954567126208030333782941232782564033241777429916158348051106280012679611705432289805147945469568137587877880412546586016389180215342868978025599165446847376456209483437560439361539985173954376622199904938587016138990333304834180139117989081209323614194019628547053841169874134056019932545565975814655589440604435071854148239176227832532194050966242955235716494740195106419970478780278448084818028537026439478396418833668344347155738307924667850827683998719419153605945026712370472151855377746467043147960720154971085793387010422516373169700371423515327847942692595895695320433325378696274971522798562526698270841986196085075697539828276572003525041784347346486429631953544589096764901270768227153484906549936493561438617026109852289388242132084074298547723317088284029190410784423940746314648769686681102930155637127111549044371316630815078033105924956435875880101851186834196159270947803652565817860456550860713283855194752612647146328919359718287181611394317676416812109032113069438844001951920897882173656084377750522810085422899070406362130351299378633695565257533587002417737113502053707958715608347847971624837906367977596934897271037540634770595098662825551066785732718166327181906706529063529675745744114375051806533138435732333436901488709939419209522201409789397754448462412158865097567652500764604777043185531642027714849513646062287786962694738826339138688304967820218646150742016146175285242237379571694339472777027930247699733519749011120865667376703390695386635806497091816306448172891561321313531860355364667940426836662689555361823434254111700345319579893945876234196156227658223541328575330397034808230043307241788129031794184802670919515726145408864900238425328908614129677120256244618899757415740775158807687610264198509936363033616573258270538279489730697395362295018228052513084693856795323806771391441555232284116880605571698874760310235616927615239967532606163394677038846497119675395460186878346028637915753543428178988629937426273129573765660631676079515280336181313233764672558876559921037710430404032547971283040381832637568295063896799279292525083570716865176678526548796685498508481824593517751155657660009297155654043674041696932941348161803554249578627952178762892797017739684549786605988081064116927358094074934434243390732775314265966222719238964105231334303490013349262781236573806460484128670822329428118622715168413615342199585519067437673431010808695196806519770442282205366973506205509088236474539513929636160709289387539404310126103441939621317912257550803827804580847620697167724193124720684316396803074033550388485019829005156524596676628521768647799828776524977581614289184769150254325351371145303860078078514804889878352253809339707231039448144541476818388417130277972624728575065013045599287871961304161634311695212202795304366915654378897917740469219616611403309762473842476520932369470121902866519727873726199051552197439409667140332036285187481104484215038837839019701128630325811820489821203618234362868031305804220263009428657514883132375579703144800570400800111290865720288711768135460056684040762711639265966993571087228411100627259158018988123621688570413032072150436843104195698229648247394868269074400423255234139035074699752960027152849094245935422385554751132632726293538814078175683214054827448789118079105591493522766884148988341138286589151700420396704025359224343374071351611125077016599297375410844507494560634552662717551286607658068975166775286585036358966808007300827202213764110639250976305461625325583582779398007885468229541451199212836940213109267747458019083826464557613145036614665102194866240326049158467262091157213487991307868007994614261228944343443676980085984880583952822404757939801290145652576718235716986411086373964266812291922113755390932435315412991921273296723411879712956702253064548723933885652890054781736555146452310231799269993574909268495106253820388756527827333754075631931134063371547479462542072237883915618938398513518883155401979687510557559985169938165921633485018509017422261984409682097836190657888074176813342267721152793966454867694936865125135070743087634244221291013405376574733773948377282892256408010724550925368558437874252206411182447452149464904694980313714386029323809584062662397209678224010264963177006564701697456917677825285346886616350679770642334234829551704276099918679117241863028675885444390375756961243354168905181231432802980085494323020209142092858995315834683013520343673657039653200075407284040213401297264468367402454499939789564223761699000983577553494849290047986309104024448628757090027346094309467063427597473389421615617371943619162454314000672956506765268290538577022028409222709156272470999156167105398136090932380555717803693381137783191970977303952851145268313842914378523283995947547318092024510679842998723413275994939666130068517996934805085607430179336902233302730265874257007641493765683940419158095810146883570745701720982964599268723887604090815039181296517539350481865498709572898024861110844499600135340910156791106276595202630609895515502431457202899451140434432159315477566780918079305774354444031809254735553165932562121310083056856627585341379950476215631589811327539637462439579967973969296153511856769790412646107451434794814520238185097096064093591575755701359214471444466293210695312680834946806679093047511573782471707701642767108127713217881413404141431434379949748492677632200313837494568978743491401762153691743200746090133362925300200291989441535430320110860755012655573093028340862674349366087876896263405038225142742967553993005484096796703966206132019725642803065810691290078096213684301327117580677098447717875222955589348966982425578611093818793823161602524683800114594135585725020593038723344493017478518225249472048125050819400526136271782356524508350563746718114475163224288394912735337387475446118193874682849180279265187614580685931465018276556745553038948744488200908115053686689087936014999466279402155101477682978874583996690161861999651728778820054474010158301436506051508372701805592044016005369194160349402227507027100491757911061099052598669273601800843917836149993798420682878166433949193635763268237576157370876336497163265543107767020636538532005794523668080748820389007990765669651393900818309178757017718394202243505185065776041452735655449110570179600148120414279667147330325320780506611498979571283880584996674252203976984023509296682964322780048587957974449426114761842170468946022678077964098540175052140437297573344237396424891529664912673527356357992218114650001569582743745166247384260879041404054552878417111206692574269870301785223411018429897228863516893341019491490456165214642710610030144843463625732350121318432385906289637441028474548441577739060647911582718703110742132446832211997986009945418393704154007240588829010540447842895860522587477855390565999983465494192224841452474765678394207563158739602568804543492565870321723410090222627821323859693803989055979298047470019608439441874088419112521661317575708478916449724148863549717443105641801414020480036811323829892742043996929761439302960161617351056962804328159839601736884759593139711129508233010480673795409330313579585594581751648563275836743616208505310791922687719391210846054926658065552932001132211230375070577718002021143593558100393072821081153538074139858350615033905534979262392157158670069291419406376682499902998863972483239438288416132422072519316008572071359943457717748661976300580259138614358885797485023549583622261110821017573848255262289328805380363722934736248924469708863527863933255139932357467108643422241337263295102358449339427832078478219498092822180323698524197095961015894720851520728583196850334974379289167902877522152218536377794057913593500670796311127807157406494338788558679192306220575204402575355291927116861643432545118596733023269130889329576766029474229084240852751696736356440928473921263185744276209176682865633843208051908403261015355311864208295064211625564161756699119864908200957674812387790601189137045130300578508061892428158952787203929265220100143024800603924392150940945103374711122119753666586725903100836498956735684851203480594313964969012938607376471781164463364027501021628485795729328484840399953245978852285163013043112799841879597826941615697810738124449286028071443391750909644779964727080085573023609310365524087432682499974430495302521658337415790998876955522198413305159681441622489297435752427500045208182821967126176255957986417357987555128453102500436028442406445325613419543472000466296519611051645721758876277783648193413307275727428625884149052378762830484254188421119290696059472229800928205819446700977610876297633421979855886887200034767516299326609742149990694453831832397052873342695160290751867979712773888351566161448294569967277693866721653938359301628633913240833835441734919656389647086929719110839540871345802858510060334926063751761472047252261414584589727258532755372573433729866654403086961580823039311378290370177386786831324011971585849609298305020974306875493934035910581248826806356005051663214946867357433163974714634397666288681294153148828018563118993485810402908663900313269220249609011621118411289773784586063234601135059835998495030189409468910021367226468636062399953113596004762716756569669370828632201290717451020090808811972074243547947554263774601572956321562774071407482573588532966077981746438785223861186497439418431197837554049078530555430842428253362772249471556680338314308756134681386275512775462477575210487963165161080016321837219606772136408962498415126690906400812432768134509876382807269279553372150732094950409329335113772572470484817269858972933105356194380288966773054580233560719502258383109608001637161278962663932249993306579021167955369746675098157557991269341691640749966314909753103015692279722494101937435521308955424589766164380507273888000283053391102381457055431079959255748311953933550889097247303632260968075089812767587889709312196982170606029181848457645427736820685172215545432308536536100384324660911808986509123960270156815476190804608544409029210178742885653653909143329645584693060805743489969518650711119096331231349955224056313665332354518955242037895325740810153883518357244073746085268826426571471973578706284553224188986474100036393292527425100731327555325291070285446705140035847845785338996429614409556256570923667195540091595206943359258544005772070527661803758101278942144931390684513703479405668434642490615914879514815242475580842736465243428556892886605967830395608178229247874687299835232179057849588761092128878165713780020639914907554197410982153025320491797249619924604456118273218626623339684240335899423575331168257923323585243919047974309312996245706525322200900250374036721206912370495215796713563465202196841188539237229440917445467831087345061744174540411720881975570679041291806524704386935345842968264501349097336154688789300309465819195328306512788388393969796524420420493711544361989890636033544362205629554518667867753414586410487481308392313174366966470731823081597842193296632280160939571831839691317706040091800525409324572978548344526940605783030980926650882605873452808050626543142490679839332412852607224920766805008175073558214897165856446941658074216781707401526353110437549932387677783581621699605298877189006864342536377709416928063227622367967531252026524585439738107421039137924816182672054169837845477110656817019412138262809055768386383397015691596017015961369545747744864849627031428350419468304141925020421386790637418477758769508438051652459449913475854454562613715894850683125221686900808278200647892770041395273592629194538946554660511177931219090393760997060133540350318921112686682433005460152192739207248766741758660501842212799198986783189418486631847460799602883980777438602237326802239341860528430913224085074241786006607835499812831641301125429937074283045230120254612245259296590476832896058706558250018148997939290673862623989196149453972736464379084410067127594184655358622476347010704585191210307947059134809933276623519622650740057671045010511828046636189989191691100842331653044290491029942688204424287890982750707256115206391909543498645520339991977162246877783503797479199110473995782565330676743738477233244090714761912163356318660852986249261073675577713783410468883395009026354029008265740986875116658176354966145249093611162128488161233502391038374959265409154613447445615676359069672799006271612886204589041112271565501286011550167320976405932260431850080734836561512373318627237114471306404608334907282540475362351505585679171229479803246055357984769598801344465262481019791152000336165980319106380644667656654573480031570292222383178274761897032656907960076035255595337115030355447506277649792868319050850793688930474080229816316902535395459610114917220921749613741556258204697274897728364550725693264374162175304748357051878437477777590978044968686730322590435813999366158110886092854796803598655057014781975303159392221421230789389433333405822288928888810294603853796014414254928693348651750486372549146060381556431045081018713422801105727549927685029385398512925308381830113862261107029248647886726523764689320803961205282082170072484206255217003088404236219454122154507765027358191624871242978170257057339406901914860660863401973150745591231544159406508917641285286203015647671749334396284070844727909627010538969038258755639495788616187329136965623725365955329539201073318155744551342603648749311636747882136378082341415024507254994681741315172407012854930938372808195849424999987254033222377080940076030057074646585372254844605815560847725295544245708155025608689390206276132227142515183091648484700342692453315866702152642852073920733968693953388729028032004376799163272246108591754088341646232666416071554392127039541238936430852415644989266104995045259510218074972143613958869470878260854536320491745740542921798830160405129699324082093365130750671374867957316627242731371706715567513375273628989597160028390055239901619218807610940920400919508471576648904878450847450213436406387722943186256172844648509081939389497175401441141680899981736829761102794194713000441090917759246015208809697961524763666882391791960777257600540097744279498966890547134094280517416138055836817802453757115504419619706190177730745147091678583248071864538656924801384110452652381424605919034556583908463505122374116468992357394236474333758819724598689439271832176808085759617503219340903531863766563699150339892377104198035971922418805215730324641821119229089434489155386742533049392330395766458362019301703514894131229048800761601875146597125214384135410972521848697295917140562167304387053779184508535996382532933924060180257629181790271777908460173353526461062021580798906491742100790617439903496509378976883925607249632999525369653668016817574496846132528972658184360516144212126143393602141980804779928859891133926684784662611309179024099261659391090025430650962722943731488285739679228227277034860796666546859148048629079084761374830209243413063951467643018016975210159575416727585982391833818347300861798748201594655635461462617254193192866614602904236152958341969342163887371024712890765936898474802458486126472323595742231094730718355224250618052114069658155453817583095415335593065599084989010077377857394771873291313221489345761005927012458229487581980132150105048388953448134422482200016832779495743046980258590142313506301283343604242072658654766332159282007499961776990761272369175615817664956906772599519734261937740358376823244157967971497117547444012172857624865133948295746006705782375810144924571250304002372035910463037704758981204166012219457077056786861416833829045088988436547067629391568668346146834350201081744430375263299632702065747727412823914088227553299502624326863123437587971535692337451200877732357822471263980795837512032434394376925913125995030843413442806344542057942962396699297225912922460474273328955436374529125362022412120029742030934786412070336117167958184002335830831276894512316946069411805905995849830132743535301226228542638281167236753473678170317441179679997177806761826768940563547029273992157551012382339880615724834876134047545382333671645264964628083211874310246389256629184288796791218446235987209526789142382326841935395974299619164352775122475487243486407667491616836525235952792382934705192313581159819055257790794816282325145576639441398397297851479389088245736549707362874397771103112569249183492249233810474676966848657457007545077643668481845841016127067034067808520394388477482644759473354169391349120584839347234925273681739631676862701537761528755621794716427920556358588981243557425038673123309747527030130737415595998451600736086165710210974377389079919589642528965897089363241467233152730811647402125586189743424277803479222865586905318270122662802056022830776056143220171257525519218556753710662396608670219918286072768573003268746990990202826901917278435113803202024361882557913954293136073122624480232887505797275518069386428714633182294629621303005752392976777326040797559341032230221958736473539706710124225802256362823990554091952178257308874546104643663316072806359900492165967404690847785790581972346317132362818039597268684547276588820695524207597824590693786610514497058742731792737547676923212766268403231785363977701368021387104714976189948341307006477272217893424733846654036861996351378538571752916289145321631177750553103085014071949328946422553614357160985225335313754220872678088764182666630251028560708740268196816773042295108475528742829165509516591392559595985621593061684996643702391684782944555657559238540970396020037380692079637501073683806218878238628913190515001611252236598432488507066895422159050410388333366329697048926747391828656242660460321578751006364450633243026655555279516749655204985785995632261851566443602082043019956159868738262456919976684158145513525532572217362763078469518469023346540570010207977810028383009291661067912956812154484890263802702880555016094576843914667862324573923034238203474832481391471505066838113762384956357045085216079003180265777829210706457149369517930971945634129841948183780068531915927316726245636475320130619374226633191096991931398146689045193548205422588531890724428475760838703106473010237678235877073067632184424661494406311949037870245545250286020658203698030339850188538006261609666474210510851302107402402604130318681710790287303040002544500146195394769381961810139596197580852337733585274212342478535911004646441715126208464998667017238323326504604646458972939721847929606038519900353042723787940775001056068742129180161169993668739625558339171259676600657421653957656692167231548332333510421259887472329537459784587882338428953637452642872236161520698001306677065191422652713607543416902035510576617531092138769474180243243323551088971188468004738157732716901728457430219337717337454223581167504779566085013294382675084710854191327258277558618346208461510599224726605748674109097579990557359462674559985772166806095459506879425007284179044693115532360170072169041232682454337688242804560648955442689019049388273206407443521386484784170455022381874507367894754724895640349235488196136076671401547598189575693587023205139138271633250072983826640940289496678364815907730113387161158224370527814045935004981594478930539145769207541145606410957450540224548146645711767142258816230435794449570206248632170464547722403159449579671321948844270718464289731773660669015371524735363073282661340449138372910743224176232894260808813075826361530510697554098846142244880924600857349401093034664938505402756807552162521773637930379674971911068918521588877725686451858703074648313353603453414404669105354193760650041855943801819285640882996714493368317810311447973552509027939568024666158753345885260519450515697563407953227294998797170097167098947665243536698461207506651435959887668577050225068808511211957535853680215305246885503686621243576807915979165724003273459659493704905517896802943208825649736856102837301106788002975347027565804752607692370872558770923424814725124227084200411052115794211077658550257721806597263793306443843279699201118155497241118855636106774282296224872653930546055314961929549281751909100867003410404807384240497631620501595436090046223686961682202954627372042313373081083629504809476544113744400695754996542260665074594958080059840124829730841346176644762449714541043622388297145464423359557288843695510475846465744701232288776842812206076756959642180977583872826468204964954922531745668038469360527318776365625520483027623219863680146866133206929794396463959272063096073443673798914626878321817905806869961417748938657159980972142237114422692100923819481955342510615262194184485621459630598319181969158621732910664938303914966090654176123039930814356230776477870733272297065481429422905232543650778771895234611360306158293737873370041525880969324637046028714566455350500739204519711828749860476350048736104966245279334764790581438935256376165608035032524149295843890310135653894690834135229455423210542790035054246296965769395676740873559150659685400428036252655972788901546676625972577105206585589859551599300366928928567844800121792664470254221360782543846781866895001694793901977963374351303818378538977451267712405462278025192088258703373128760702454052084621628456718543280811540211923227860301792838166884740976193048858494442742096626607316718578924066155095205369737369954242274063924912813128504393782797049338329371881453101523863774018800602919408831285759251799671890651610711120876849692789757593385297150538910895308080836585984008093876153503616216186714384982288555417509938246005007302521432568852892439101838025359383082880493455141444433195493316440485087321152032603468211505504176507456442378116858636362101202759127484499308468463290828709438734445349756087492608244060695188004284421904617535588529030967661045291427315044071371265795845509099138986717847722056247199410700069176531457422292942239545419206343486599662596485330009168253184590582164021206489988090369470718098256406990381302121084403125047201339289056691471395065955418737274066837236733405105161955372147521317013420124145427699737637471296135938780924487328516272596368350309599691136655708119003611463786943383860266163055397532476416246092140408299303963890458195047547033386015329307471793988918566639104954747307054246407858483830240190497089554446450100140653072486467398248777636438955831150046544505434683981066106753535833598643739708357412651081896170547643246837400227617250566125456175092880803214958679101854649441172243078788642675083113624996138572424934717977001435189625216614347909019050596955582471873842221588348730827816355793010503526603300149515480058467072345969541502307230399377762354923740389498239472041820755254990610889269279929919925348827045426964906236620428102990003816808972185313077205249668939035408904898080626401704220841188390931155825970669676163196726263950419135097068352707114468438744579942976351183737976402597045807796489235930663274155012903355221453487878198140757184816092767124803543159939831656086974583139853991831006920266246513728758832123313627238248793022035761762835333095516944149210669510738114994903954834433828932232147278157616858598828478675019007394974726737294869030005588213276291314737046380499471057475229995748234846932045942334990922458515393506572397542662145968898399129986319915288213393147521756533707492813554137234226319460129781956704200527916747021405502591356711617048997647994881704093364696188781843063810640102485017279164095913417382711624889274725733051933431983264775924782896566116634670975455390055974800458643952380301987476895138790611438892778657085369974221230519879356098618163424342448051862297088391487025125892244604012458946326633585441298136215299543416381338626199457986290899797797018392097619647391000451096262312015129751295086850293809806911386124666013768119219103291111413974922237498437113181662566253510643968927384766653598712672648325187612902191107554116114619136564343322711569198929773270323083302874260907875132356004787892111440812365881828932540239378406831032932575373795397364874956606478401985033962287625414518236295143291253280371371411743036133072984003468578622644496003161290673959536176917936891845540700477374068178983742475804180279900163032306749236560185169876987302157642409928199728617128926989958438077141306516213405286478741377131817737823028104567305402082306254604686136944036203642176364278705972640457538504734660934031269875203110916217073028808316949804512948930931588922400688581035719441451872712307608247300858975321924788295674523105948040803459870628005073519890072101158995900301362586945026852202968530344600730120366725629360175081172687592985246416631664837670282404913893580043692288827713324712690974232613156418799548831776125977188405757929001463555702694766130271370231226293484751635310844676608802623203100498180938621561873405389775494024817130359509917691045397614697857009959353502199449773965369236051279665878210903381707687339989410490208360118448775494105425603528813454670398046889419333973252127481647265646934564470312653974292584618901424830703213123528795829801277432645452927854848529885060395266986945374986645940565476102463829370028183184958961462180902349321741979308460991428848978750616772388302942923911390119430033499233701133067919805246140902325954609564355097475253437063131274966752984657453553672832715610748517193393190291703436519726066168101414027970044558129674796574453873613972273451261238816974282254320891063775049604399392979707073586413967572275022016704349293911110615641509677136866316095424067496933978602558867772284326249620954283599670844379023046091042175009916080423455544267076426408220462092354477077922275378005634685816449747684750548702634303710119178536713781693775896407051083557828756971865113201336591500801488345685778471162003407760524220305686583099626161968292516650017741783346463327903512889275728030997322407622422654987241588845138622390954132638284988346842399737570359815246043435716764103837865144248918175115965137151800170098136660352535240536518838117449812139353414429418548998689495040056777436002256892763279350203044544015119523970865543348793391446538807552863962739432226420073369700384996111587850249204771318084198210640502120030193533713714190056042032366471647776071225648915062612606678967610940888876081543882375842727748190694596565332146982524655666132896175131446008082900804292704553701390250588650977606376615783760816138554719574130914430466186171983037285909054188651328229163744289414881367859084700679060518123358780260995299698490608201737213955642433695588532839280965686232622584920832333704082768882326458912032068651991107221061448392991658585190289921089458313614912669824622388366518779483920668182416611979485926413364426019806657367838291843380915117383565418865314337267415234151829997688679779704942393484862917794747475083312893066498303820083416650848270519599821730123244482109947218808781217188592902020054516472649668803935289255323095370209966312820518355156576714284375330076796305620410080324582480155338580100580413492623018597444887752379739720968146859352744381094997846716686981535042644458775273804717504499013087390184884404389773956129165094360647144454650210169635489268985602240631288960977343117401074646660439995241842237106126645679101220569740672713239041877881321840255946962466553755659338239382319058038853392475073800520510404969779420069153116261641619769500167265261519610465019481433955756876179071378281340826763672282660550044347491350041196184849511317301421282181475913768056737531575089797367641443919288869788230143933416236395620948061063118502864174213494347953358191998608378884687480754590591322172223724273299289189229626562917778759417348201615518051813026650754442502108956958130887067809081316720367733666687870390842585443478790192476066642525862043487348606600745252908414097053698434075913318592218356131221120539596709656533010097254093861788735345796839635762465675538300342416527745865247123232445394463706289455966814787055566515649235651631593042128492104387418491706911499994574758922480536043775331722152709667225868127481736648864928993960625828023533267945547067630839456603301861137304942303369451634248031587534599168302405117877456043773579613205248892732208427725100746828771354236178511662117293773046694216156845215777007884662486302306100308868629631107953317036052478156610863013187907165768508396304813914781731729659685196382276595645523772175555197878288240499166288090379232979021392040417874326013281285405932274864979621101232602395052775485828235760289868107957781514454195381722216037063841067792899915392570588250481724890524673554441509308191983222738922786066874318314774447499811701290312947324101297151210039239713370368853444087186891825402136611324918681811582961902782019732766404917138188283736541569187857513034375022884791489002761769949448174839100114722492828341368658220229922701828977466481647179320343027560024005563964704772597456312300242136734425624051280628856676975703708875283013647445010315372257259819826706501269246484335688599143483876708328959523272774503033017363540054915098409586560521709728117439720781986130152086986966825134061419564767517200849922463099768634814237818390566287318764200425424528628669088102833278256288612045202126279730773270628455364066068630077714236716357572839369895547846490723956161710131132364796056655379896317236739931178386481285574884263042437162822561255360761500206281370542170535889463089076305299689734876808159767309787496796573960077882723828770251977692901774128954327586710891787329537333526679998177456119100220681991857757952830707985182181126929871471310946187952035478349349728140314024533791437230212596801151358283515612110650930338883090415614526067455881077216569927540240246346514806435665479036776170815303207435187177364956302244147210433161731617395941355165221441284129671795328852561039309615775790116678962342971025869993312522516126997305557340061605338773237021604563380278286525320886357584105042982710602940146877313506590380545301667705721381368070772639529524281859689199068114791898651942538497065512716483043246775993019729392384908255808518216270517912217976124003949260055994315884163660313927352609836682437944599805758883821328328214078392501108273138776481401331987232452710078313957750208584185029017759087397903364011493578772705574402875892222926634394813443473288759392348271072930330521709335981813928052080773691703718694588778004682383614872149227103476004832427732303142034112926551941971616665460080506568673155477530264160739617004644216692992652548334909506466952123825701020089628087328725905085998974811421714828324539740796694541565933052581424904297418287210687610587519906375078824485680235785137201068852801708202298779184164448361610701454321769228077471366426174477569948398231859760651872862932481526081549198638909400809464303697444413143695262879340706711567919014124997118764635603825051553039543816301018985840458174499405693623469680351475006219893998088079133757184903433331182535146944029953010672487324377577443981051517969030646982964154407181177616535189063919388834779173591067621899036722013984476243407576538077467250811532614861293413948619486459646294396256111249454624298371772304979131069791127785009091740732384730929442395888803974145851960289542290851697043969801152423124565485329703351418720211183761713784382974423703319387587648451047564041293095158076120242535278810959273974759401227178516436078380971354216252084965970402000800513732415279043466052833698807985583682334196259602378788649076418257265718449539378243685711682281767672779019473611934122571179010311180147153603723504402399950996362075708329571372288843967454843205219497677340867005824451885027031984620260933818822286269673108088511481251123352601987049463224169752735146693946898038962925255666177579276783661055663355072251520062547634245593635600114591949432466202714891862501011968060551493444626240561598139318950948342243940128152678497312946853492653363418159978942507557011794484253654146642169001037588784407932336329541128177716727705460483028046672336931088917123819160394679026165618120522458242314431850970285209121373533868182977572851071143057027605869469597546542565007793422679992684153990225782394250328654432255590870162746367711160983925671000998251675817481237600824041031507623324950985044610198837239963053509771893406709580807595187004191122043122399970960851893343189294654401025603079496511849859342987778346949659882147593823464016954924314498048074933879528564481729369948476807715804153575769461072285825945370616978993291551952550830912193226444513256832689180920434476100683131104006376171679891391495537280102640643823583172402184353587742069971427619150041303549130299158369706857653334609993797048944250589810621420556975959245239612159448073366359032821235377207795183751463225001465763075475534295336752919797629181471507151990395736695099218937744466528261282968383950418851899447723706188077154635930036567730142964528754988692367132060477296531639725675026726974608760494934926282672689010540129112791500318255134122439184099922307517235456806274811696921568964506311573591561368182180353373660771501460937820770064542692537126090027747293261388771508282104518816893736591652904506235717424455243408124187805634666655730739247919035958054959856570281399416786446266722083932426283412831730227580583087930584868566771357389466976314510687997684033535706685209749861548474203948192591802759033193618537132946834757029512591412613867542013030504120907639587640002502862970575840205381397530848919163331636399774565885923507591657336173881848955400374662573429014977021090479120441171495519426440602113133196112123599079611024098941451653714096152785907216138360141163624545947366666702958081792864221218631544516992567384401961168817926402165464787768537445910564235854289206704420240706982441223209777814145138529059581998744284965104001144520266813503817859801396944699762804529919974249808018920687419845558742058132592839978744386924834997742622953420956250076410789777010667858795884909942385400929579453950253327686955544378107359569660862324059529429083825429562629085720460411130395986175007266496414664996861156455347099433703527217141435748939302796402654792310903833979116505539747158013498152207645990573344717633930285196739237542134443171233700962951251352911904260543618323516147864430400646021316004319079282586868963993165972260555888385643564786487328104654283659789902508765977309852142598406447491428584072778158825706945935747105526011580721884405045089259501277458499334493104164488552940517343973585372825971068164397343637191119701516233519214716267420409634920077378098272822320597284977080286854262132884499008649195649853016380332913098817822392789970181298242489379424925068796551718095819771503113183820760551842130909707473844141099593079573903502914852547915532117190426224781473800830613744088427069148061278072058944115791699094337463785519375459301645845478905799464664818862060695360574529162190324150122082047128538618314455920241786684441965996160562133886625177709634563529922862240656329209229647947413090303732524513276319477776609318321511615647393244476761380742801529752126896091850192559725891713563658784122756376111418732829839558526007371018541778454509209612315145719692025429753880205999212594955284331372226719063088397857858585582870707994233576478300762764196948766740206504666073036069168251214179070721349510701382380016719714632088757812929065197266072853439425341621758367261050854920941616350878729528658042175132482130042103629499685309054074070802667333522318870332287116142000509849404419024379753388340213337637133837830253379621597480777104772817079606717547990304909147214686764607375971467133837982938036396172782490517749359892407037058716330936311658449856237326062088729118071529275478191284811659274734951069074007719086966668555734567987547087547890871669044352775358023054923710420449003225518609066091200170777339034893775219441485932283630233776023896376965653334885977895013066094225021973778025711017120405957712919570630209200900587879569771058445389079152874387402273728988648638129348125609052805429042375979192606647447729216770352937977800093992270948139399043522636495948446151563128653938067368430263976870899616185604745480003181789609382913929306335114235606892526570583423801477276659335298747242439161469159124335294963574707100773245731048888996999985613543347947810279408126595987388844582055589651609625396211770007853206496074640933686663537120225021447441778477171117706467439674205407148056129744526587384194914308787256350534479370733662359399634321442921478174595743455586637123355018666183600173986444798226791441659193396689371788835426872808757799112065308147253044719819269821435672719507399212370698551684990129824782464419100535141161975655354791991628471731825857972649868246088720733400905466325441673329230313603315864701964944864307573667500191774195717924809604047653181309917837404991757570136795536654123997385855366960326602440411604814088591961072666034839835128971697546594387296998352198023272952898387346718954463092718679429991510098820687035961742409295271483567633045439563393650323506903268780541422615545439422675757346508915151364509351319153023797219278332836814633586099394625357023982550699635562749256984603773800611450643595910074968152467962146355854561234581383606010861816629746136601931389755950648741497831593566745079779670755993890683687737523649484762055050940198025926489639253626056894813671648548474708451198661707027661288655906268133044129493827362610371961624067341249103526712004270261838123601976410700834317699742001340831715923751035883887348712483021716407570282738494222880054808601001230421666511070349339526466178832925916937753089185397919737165805600707329881694708795811482169828782680964310902412658994590521123943175764952716324269546977937665629981902022915431242371272987938167163078901254572285601191235745901647198600701732892449521945348293211507627812343604723697066600954111738333763000518106605060654295099720937818045532349114710002502253390591414786959258196972413175947021465966210258270157286808517512542531111221576532830138680181053503184703782922030860606856189914652536465934121916335594760576699368410389517060495863216578512089565997649706011513691054396269322167768468720696807080171389400210536287072392396954421300241896251544164707401419332138455884313104146748642646134502729450303458886290370423006526656837199594863192419886754362886178032621837792239328784992802263810994371396012068143003583286704765133059410722732942435703979864109912180484050675887743250609234463102646897324372297510512942667587685798036905980205763058304507411950279452502714505752291178335049583079488773212281199485689193792637650111533489219357553727200865761747510074859388986824897859960238034805313185618565102191268257531914869254704464941475490224798648949343641100155099186073237981427903010245496361413752405330288553464932851903937781078561679247271150242785691507311195239384898770373401658331029577598671155444409652395830498378118960715814358229076795208461822552295372060401042286382046908130096518534482430808392130672965737940171242846446041340272126341402798364687055643856088649794312145845679285644797286843173301315277574942684288703272273631326400266932472868637186024898623195250393080725125466777812308626557648595837556486935398208735499164256971748742151943549604965821502237161084029925982694554400171253900522920091932103690812878226035690781613045935965333117799755986322640376846271054578015530722604263515640495938956118743815922834961670158201100329861938972628157205157197116629596571382857499282994827324257793112472299843647952276255689577590149675044303066699844017191957655495777299710817496578455095013183384751749064743989117348652336768139656416985943770811996970896719162976302039988028426633492620469994964949779127710941500556182840790619377789128129544099437761442852376375476808188786243171441267803309679086273610921444169046369840087223847583985976615664434262780439308360485858570191298454601170263245808480741352070802226240351132187086843785588921183750689162323383891984657670206417597810314862319668942380743126730185748271217428942600471080195017986945563668251798011613014359214396691852575707066750582223498929172919306894610815558073410201197015829940231875531539360849981869181747340760929640971907500196908462172294509703339865620510682960597514854449490491190110136101934934151266883068007804650902096914581637846550766482694403533718040202542203631299910758513827784947533981005086159026046750470322075537130682284086422392866741604574585759852036545678327227048566560964952156708760723142225878719157864219624385430405662028904964726830179242792185213918604048474801261825310988883748940585384672119353950958474563485219487177189019242606908717812643196525157319662059054634174048241915435784681053809598666331483911800443727265652352832787742384255026215627798201648036075237863779857718794897791718288807246399980021350093765266155880716848000679030089454862777920560250444768143115174322618968505897625666090838187506308101790017629211783038099470207984647172482428655517178230868415042043704053464202795415239146407906433073562085378602597215698417093438897261036440656723287867085004947790222533471103503309720766126256073505217606218621124978704997262234848474172099832694942401094110559158100464166258194882089912650227346603925627390296125636077544212698531140388506226417109657748019674346268823502287762656186109402755024365096047971941949599493829174738494441960758861640640266272975378071956180304542732417749888737176859870572147791256179709875451459836095154914735358918741624982846184190051726590004913960567294842799578586864058566114746729101356595106291578183168932156958002927901105481565989336091377141933234028715399735856766474739458076330704968251991567532670988718033671398689106118756703027912127592793052826229540245067610238694252107155077554566330444657776419107293365572932922995014201957434521900587296969077728470905798245343625697334129080375251704307652396005060199941788499139273448928701527974185795330630469109900985393437206049183744360611331213066812818048037229857401240867665140152733233692105098004402191107880676333979202956750064688623162115281905313456515689131183022788756063456579597033565971816890312583143129488878746015659064401696270208161455567373544164101339828624825529799095998548319142926300509550487153175433963862056913819613227886103199170256385016148317720706597310995239689952174056171912717947168528750550002625204334845501059738993883277260483617703851385186704065864045152291895437809555015861269505387127897441127884595750409717705192481109276030872141032280791096714073493078678929844379419005325951396664728206358450325239728583240705451781646518909907729596162350705630025134955780199584384909791753013540118517370115561118119217959528934155138030523601674491539945871471755005125303418188690630449846518456600294117220139799676810706053872902280350142360119639993964597253585359590323770845633997572101196884264178218861397766783124325951752486543824008338441400943699501770663564502096753381782402394449559242787211141643367985755410554685537804865952927824126125979237509747363926615123157618828547996633871557969345493620478357171555599300860913452097375977784874847579017468329925948684077425831783552653468754846946075032557760418022996324146663166262593116404792852012575664624731627421801567851908371832171060778041326787981338039905772362431646779532544074410879526151030958152748624524925132467828464968567330885503652801486787817852281956680838803315339002337771102651856517518897929078421460089515373633586941784918568967324744867454429844211430338773096440496734176223606632610908030173078825220827298824280373795290682269146788084449388353011221675368171157225977431251031121817482445213119610198465007188519335318401172005857738842445119763231562345763005746618347176074034088765060145730893093738664851983695759963805594734889707520970490976658365599676479892969229090167855344324359394168514488482188416093694198050452405323198357873548881797504112967633945215416567545120114332196057785950130038564552146162253798855484405076713302518237599366915354491094426531324053941453552053675840309827944476333880364428055950749214816611542090263230445231725808227205732879070100996776952078663397585217774001889200866572262111117072532834160195865235687026970063767562203524400801093034859934139589470413909404038071121281029239881140952254931290155629280235661111282414056663062769515911416903183010198427596775225427337266925435301052123468109187855459631236496518730370074024199877973696351959805370985356367047383769808334001425144575733626992082264156148658347344174457472522271036369977772955667200483924860200447922048084710981084133207884971283345079185797244712481692167181350498536239600568060216747433518582540063874038668054643261133637716182325838153237288690877640158332788534547849952816414506011361018164273630997898759279705333511510185653012842034103220357873060534711705330029236342962928483062325085232994782852405290234438779567609193933370545412175741772943638925399368138930667244145980980619813978627405644276569272182888170391926951006191131645512913492853482476826695039723337671038345601743449752642910799286403121707605044207526498437320129638577006544054485274156941637694825063877561550249972605452857700946457943928947788922353641428337075269528733130419415268250540723179105703415038297605620232707354293695068847630222596519248674457474270849925759077908024738927642156588689531821557697671278511512351673209930101613142767657437861412087110507422734206395245258290659385712435142462808262221276200734865117688411587368423993648154759190793768868682920188043378325746681048398330338256218841459759564408651802330589033953483680773539245577172699593452754250109148601154944201581708982777383099825382226787621412945218893603054952233624650295633024637387895011550459434091815913006634040445985409832563945687174942653486646909292700523555916476631033672263335913092805728066250634598028623691644240699287826097808360593356434949373909548101210732380107270107260390495131022131404635842292052806114242799014669019372895762385142773112265718300415846612368771680033843892986880180223402044558584019539360005607674182237870190917511665428596584071756409783720877390467105858916570303674768974164894777614971358551373337441874582862450695598548600915594089268064273161384720069611813749765642695953901100539199993990262866612346786560959696845515782100141595111117925710660391447581887161359024086702537630996691448024203287885707572630719174192299243246452430924228560407425499868517968977304599739669292822023722976337666203088984508480241235954082951869965636657756627391600814238658944506648370055988493686333400473551039629934739247212293817906217092285638147508899565262592077562899034624347556222968482270149070631261683987766215660085185852970960085792932367977176374502873391466716615537122247344207935688518282620621289911528387676218707936042279037188630329215113798819183125167614060139480878423312385257208634935770032448136827799225958018021201059723693727326528256053609826391873731048712437669476674360130303875449608716684034581732330514525307483312513543622581349648889183537288077834067682682730060359813079324707677213530927530337771904573943327351696745261290513916904872147822087096913518377367532485297253263052842130382864387878517463901032681965542021117522706151285342469659659603472579953972466856051280256786791899672269933423414475084938744656374308993835200616835665030840674406757586658559509977872899991916925905202339024588628446564448543179564316614188654773245717677443941771148333802617844431675472236178729685220026854212271121811595059285258867915715028827697055060286678848139364919624330803118174983581445433199580668268165767331710587895920364229027359023983175021122322313991637089862688207839497805388190229073454184721370999394397294935267731302946188834506017786840056933537225517950628666249308751157665553371817130128300518850074844068593356160907001172664415584278545873998250645766168968486237530428017691652716270875937652192331670111672180923554274277141514003781568474823358377589515128889512072396652294805553005773021844837192786027836121071240922164879175018462567638212726863127965797522552713407449812416067454205736103094233794966647142815705139867130464713713444036779305467235794248074061554366041537695961898717936097619673021686268510299476315525172221996373543039592571266017571892562537394293896658368501647467000657095118536471299941137528546816206597652546737076721363818546033057046065228724172324578405474800392440394406007357442826966616823326585399262589225338835133164326104814253719532865497490976710814919439582724420998593084461891322672411823859782879635432288182972802051696156906667706293614979801188995158161940412157262122847905459174292473658096380187081121869567818709847845953990387720307734148122436642033401597440696109084291195350928590552101676570305242485516553917975021639214414917755584687876669977631424973742564243882468050249938836865234939988644122056595030461531923716599183145444111737905221855014256070035523821511099593290895034544794118698401923111224436570674882629859569651428608283104920698435241091758663861625668277828187093736940442300683052609806974773795861057188898302256527605309046505714771804635242075322885646410326868748792048359264742847144457222991376072167231494282167940704950533799852276796974637943619793329456748576813098082745472590968811273375696803461081738960768583852808209326003006451724883128245936933375120591881253434231133700157948251202485642592314891606701722506801116030541037640054770706023713443141673423064913194844825608725627473447484219272104140590130538345128478591229574302760498931988298939661072187266961581923774378846229293333991311253465047828829982043028603855137646119341641496226365588104690392062197860504076689586442461736931767232359481043708154865352412058200791958693664726897065023150383449320402703610355545430491963504648661390295598850616586931944601018328340438916582787156022767687598230320603575562742871675073200422186576482232861337403127205080056307895479873248000180468869144820279121595077882648563392183258235220931169725446832750139698915353887179425037331823082158510399932627926180890185373832348516457296551541029492680478826327091069388587919276352998512896420869894463073146737508841959817535898017189798182607127262945469549837081412389404831052177308285668678011727543386275945553901238500657715317615470965354312485583807457717642743809098367476914307230248413216858599868140797855698170732020664253194487206661872061907085364947183970721209951288928961413243581071240985823895728719455665666317705741280213386470681018618676438690132701286390476671620023490365941394819060070878013476127379773438169285279860274099805457521257198628907592322373505776853476065616351860934437374399735315350407353272609418095028033370685532195500214266023670011086139387484317238752846818020692232625555926873667306241713881674358020613923860289707533887787337807356629920561124576685955705443589537688278426530955191146002643603858739390663208994879169024255717343334712683818237381794006952962927704684369854512269733444392162970073910558914701933719632829015158731933773767410711820640446340066860858495514421336816868374394348348960379469500412043604326160949757453602029463626608571952240998447204394213565190760889261404867859447944309777408703138887837478917268403385128860625719256645886521146208704868714837013670548187922535324516556542756284157190837083684964299785835560648968576383958395011203922799827001646434565175817939501167372884909874530213797674211133290069227797905579293350078893556337223428499077964356774818335780479517972556383616868887054885982130749480821970284228362009941864121919318264489838775820317540665303787404414168300328561356121964895257129373922723166848678160338439815514716472810452239677124875493463061507072054634273657391598701197276554525327683215106887669924197055284421925011846968385260741491039462310457545780521745909566318398442115847522817905341011441387235801474368383638047024654566693609222432586886014079298848826917266071341745724189813871208676248685111782258255081700314022015186755520189660044358124669365500814560843001816244535671704844900082372125119088179288747233006808892512574932581657953261105730970349201326907904636915328480643876268575324415427744417732478522655205279395878683006726613138845284703502802100113029296503308288510552447207110030340343015769284185217451048703107602584963135571700485500397108109852622192908657144407716208133233712290765535853855502449642205013621637647565085154156433526651829684501268387726027678878579002450621504805662867948975277549893689781326744588017257957373865364647244107311051321571686847341610425704333919443442680088842328339793789207011331748138932536818609673997107750189718293980618700389629625365583093017150149163460717696531420481528323079325411300602823075712140563076270576037980506279964794001893390124212670564396780470893413601664886142312021158547539754217830611548020102786933051849664793046263916294861971429783293640648367685730652057653908742010859978029451960427669484194879694313710513182292906144822624134982585044230945793584399689061363048662216624672374927718099174895625992671501743275217544808336349722380956967524910734869864153976329538575048532442113499413632522252703592284668794030770743206248973550578208340857937586773635011180125049404965476447624057537895485360627908883223158124848277085436011502798159145954949219355564380552264929811267682788617133726052104339066398059588773074240631351311280340701257604228050761309058947718691974941988030884788666381969033906265684601703788106013520868766935168644484741529926572482771975820122603549071028437474006283987117568332192911931809777662632540433793703915041237478819475795290997734826880037047406859591837109264755897949531736232657553661637834210769565003358463404313949514195898301989464635122697881716781252371052377645270503543592338747562757319672051874685074336324119714158451353685655531644108884129275093117761232551687032443148812140611099716671416575367886184888506985139595170609043589953778887646814327296954161116976788667479985953622970007487348268562933965286575183577347120287610534971526348839097843057602787161850959357386357182489223265826041350224228057827159817183438981239316926119209618404093593241563610544739168261406590264834289390602227839123877061484972245785769058938231972722745149256688244886713826333733120649306893881643051660248728920709852527635752631188590314232030205714006984176940491561205901982155494734286956677612121032685068991831222020834796150576739093985107316743041846775778904173767926280943181909070932592748125978418907560775063091865827221481427201582389744852154908942045948767476979529105748306855766971561721538361326320569759298168040578643976901047559025659492170870741070935972750579667144606461025826587372886950748766251978483504195108332257999909134246141083596606853884892575397961531640701819319548948624956822241300476696438301263899515952866767732232043506885139393034097291123276762555218584130057615562255524400631433365368774187778667213265455095183872909534860040725020543577965268817822860706887184906803290341394237088065609097491774128032819399797869089564640446058762338303592332146426252862299220612701745720157817167222937193050435972897991912429769664256592781076613647210477845232740845801409205560050269615351266593255510514785512111305562554320704618528080557135976343372483403069630361052225079320872597321439248105306883528777969508433673654869609088977402884547164041071803702892214666868149590204751535184456092384745278800244416429872144903933465998825376579959541741056342107825081948300860180256538426391671472081663726798936388769129828711075869796997137940030689331371221899969787918870926779410757568371979019281118107612303936737717116723186899208269956152930231146470335864344320442365961423245007660129509543463813951808216458888089187295075101599916019114244313851391910662564520065117748553343953304894675121608005017624642944629053742223702761747617702323750561655680058246229928607598530383014971050024785908457702445591318305662851175509289290914217084920102822228957248741122686003582782008759421108485317784590456767240532653024185225794634528395159286163732189780847243565754067146850954734629628668751752837377240084669799493926094100822028469535634924367932289981843231854171126342453751853856740045612715862445080779714218907353271386706710434233153165442221403939567965954934487198644736767857523221003951045748967938881206427954300392154995065085756656179233307286351511481502009366555672065614500018042710076830080859151814239368341172280180233443739082586245666986473763847652844753444796305511064513046236957299117018758811257126156887882005846884774423378276514868352937529384354252498512907598906979474836428812632244834921766010072147578888559836323964276682013281358499581254964851647588923881243521025756575936248604500954200712522161370892333816256672762074168666938819981937124549496905823093199299807865432079846337140533398044202878875544108438534211470698952659990539668802649919653057211780124647500611304800102720120712510582702295619855681545610280253416959179634522749807128703043239156304566633250432068441578759211361281740401537903306502687744472817752813406560914476670902715086262253357150400258271496121256568497552633086041315337250916576035867159872112956050001719218049220646499448845222340775736680369783696093025249516113601292376832295711541812001756601756814493968611323048303409660294530479901258778324550434661681858928999190978106075872944203095778949999449924906234695296381093018759764477454005362358238120744151882035274184860423766036620844331625738823477684020142961084139815610641800718823129508041910512066095422775982343131811318864444373323030625265546844747507120598997451572474236376279904873435544391839381292730505174927218646422228104247944433950423462624465207401179122665974125383560717533092531909562826180704826464131770779197409551614636225704299425116235369779876516443471121382107587582145460818731191496173861279710060184895893064368092476113755111327780274780493064257975286050675886098492791621123311008704444804058127140924883215895348055226120913307081017027471661406907400838859181760904876056567829260979967235186103408331629737745386729345860305974547589657693303954961756479943128986620416788117412909052105146757016236479843401889971783975573825400179338277547050153616680674530036309407475956373360477460222809266523522532050628428453474281411834758619442355774456239686776491027704956712859172381013274724476825810231824534260782616406325176647705220292209282071773852971566825694317195799501466484015594682058696911257905255924101189429225393919952241620233283090745918793488637748147061391755784828655852745205026918955730322649629617827425530040607699748817265528127907145818933923863259317088547959121855691158699853489336636069331632370137389013367013093087241329437560058677942006049908527945967978054948882028701436657106624658513044366583780511303651839801546099773803402441624381547231391286930163034913505147793686837156039651008806151922556990794285516646468439332422296290038099145828994639840569415930538068574801499138691231722854942309017500570001100717115973501690123424815388882310576242074121566004637329434674823610572861802974192871113788306807324621313768466627149806626524441794597212517359623934061580914515637466225380340119572742233661350905373166603643881595214925046281841966331719761603359178562440041842779527238948542935440203924446733465500729672749133010959255556432167020863834990024955047816131604901295876933664569523656598659191556702089248616050546163547981915929351643657974573961166543333277695189735813934260441442932728879131937023390105088382938642208456068209318223755461444213577948256372854135665545034219556224343923601297306324144752618251353538652988104617404662727771945600246921437709142487054064785540071188961770619329821001759540164157146997230124573925759883866524053750019911411444242714835484198227813656870205733236389854905004743059689484433270574597733683417039075623010969606631130044826939920377251376008353906130348726312262946679408835026772473473889584558258733816221577066757165184345268448354127884353603982584195112095712944754885298333990835364625817781976435893372766572233681412175208532742529522774152912831509893138736246843603724029414496040909348314866734513871606896398179113659562423008009260063961657962019903436648821305336513612656330442988868990410735464216320961802159713232983262852932570100676758564350048824105520588394914551869613857043707530070937830743486575469936339114487630136905154113468309424870545748309439307323081125952957166733761723267948821733485435012672025636979010128987872391022223554491417738716494378990875340996462988914389953804291449216376224954687570258526818794724854604342619282626724124126803827267549198978049758426491932799684035389307015422549642892945608810717807099147223460632660651382233574149659698568350076125305422567246780128047359009011959479633532265853117127605781940857172251883355353398966158740814772944046252034664475844001402667814140577725301831834203531495956112908954864826072988341439825317234634769067307799798952456036997051626967527417456597198609187223709750073978283255497026647833465562154516769264085383783453313533703705245535518598337158426336906226527615402669908032634333210621675643362107567614478548284431803775206642125950016846220160517655608630571568363111731768563745967542816979196433464473907046565368233592452571549341541395058820665100803702295845581539055792904772726945987118263776877959269108117273171792889307202401618123255417818427963397277028656336557942063453032233049918329513563837128453931805922344621356521246087781074329589477673106562157347070096304123705511123198381978504043019582422996449677140769931120910184822375414713009410602642812034306336664187400211956353842705052750586074784854577410970897776673675545777052657687546962663833882996296982731270848685312974123428462932113172703273286201870953468247832155855588611876974079595745831206370300487488551874482967646557997860237089357516719150699173171180730275993191676918127146118649552085690950088084910827579884056050910802031290596001649662525646788782502474145569522590920007154398999158700708597113582193474965017764284738204388638405844637016907165794650079041857958372821363626580155979803999553038931589909975328544116369177680724115033506639230528006518343691025081165501515778258929000651168980725283797516178823053269292220078148525811985420635076734457564490795564552256200471722959444973113760593389224302062696616969822119379872169612837884626854614443509261196708128197942313292422294276450109120097466512637143684903427912578420140939969378095457238120312023739375571416379960989726071361625068405488994340933620097540470202086528946944330897179951047696240664180515854682789196487824893670031124203260954955266843145654950371420326466812455745941338633071712088147509637059856787748237664364579897960806460752532676905575881362000995938311298218836801772550646769445455483989462445190018513225843085202845957197278900469115204204827435058817496509419765708677535752056314313629571265202059272512984684944971022306279351061205790859831743505912370394447599038217710377177275449123178003299149192003180359276195423697414775678946863258285212319180947058019261015923347122801077597481863882838543591696290765041692629682139422340337790550445811870447738060471639410813515020471095219673603261336102672115481161288937679596105806780379814617941625156419158626640762396530891416248647818786322691279932529194977314194342105529375610571099650383569115808208640514993371994578817445010187924185736862700170603983347511626445476464854122290879238000768739010554864606696426140383676613010245939537523506527295123887762672530773938090533850260010082459675944715398426269189199717491007296200106527371699799774383059017834925342144038367666991902548204455838083741748354818143274364982718219383778806617597676794094190980855298144493205187599226192473610693757028518861340557572663177011658093180824057823111530009209716856305270373241826154294829230953152565404967038762261605174731384377260620939243063931125685968084875162325759063302296708124921488832003968908748202975862468763719289381110974572336276439683871778801133102888962000607199522594173464403981570938919165065571719440384633000677914623540824665072676110868966465280304116155169186456714029006469154984750090407312261173318996608094045414214967378836117273961786608255609486274388269948332240281848861155939222525135549479457555337019553710588289964581246811849506247240037688944380276271733255168964232374999571515049585880411202070795491961656424151712612945199614350267592047154710463496129743195362291973486104961400723798030588065661021354840074435921825517831738473548390643317479797806509407461450850870900843322002079128834671972567778284259869888218026446002808613948869878570326875837167166373946430551061538058098669741048430671907893286620670670303894830044544821515499568546609507151365362843860387643602933060852162031647541859196561834981005024109896803389948988343346442651941151452635068457218293625105330123772701237114278139575846644582328511924006163290226724074250632232506125837476903237208394104201195125096183312411716680791293865148115803363711064657010632578942172350939946280428881476760053174803564562734080470272134862289468823288669705056748840598734813408255355612387299419823860867159899463844575151302783108269170888506472691413104522862727766434118388866120344431169893133645441260114190644392075570461976473552226959480709228063312150266401176265281570639962927837116475403676629547556558300950940962242759155547697514530686730940072544697276033247252924919859756152997141055329912105145166149947754929591630515248673537617406909344861782997264328367736280673600171256323305565378205125168109004796142369571188948406806196051889053108254635555464160202342378998210810405204856917104318082074924652486206737399399085220935988350807771631622087510723578528209032847068977818750834285872433098570318362173780630825952906961571090833381955664703420151781777170521586294082452045399677232992119198381138051101826612243017311100024729592223996535889235836910039695308968957956965141060390944526429988005958461205155347903406477881655668557803847168092072181908981651922646948544997727481876019854531945385474093607799836986224875722201507099521900926741174546871956870474457853363562792288779021072090333333195894417916689092822624111575329527761118392450184999516322563234508892666511606544200702415792591780410170688405132905349054860690824125704136927829530432344439446711182493240486586288729781810772832362919393928327158965951360646443765482215828357965657965879334329816125963053472204623165229956610633023898445265420468911981319634779277207048856376685657576032540803053320793546844604929391628648769978410451618179841685855780946389790296736658566665209754163064655462937124906115168874172611449871722000651275981737528215738237445994069049058270307922138453343805456411724592505367847766741581473804995195174194457449081967774429074825056086552918547272375863124261902127999037425484432615397687311861524242822584535784154828062450277881742648483711592778631442076124327676574948285844669931842112453857185886359066974656059153045830191322770138674825537382144946844706729946555186144341499721291898276731269405403571048955922925226409988405262064049374935209833880669732846385255878213334220238915802906014100964912411675180319562292409427535563511490476446058435013762869339402493164398124661946621876363556563914266803478654328681380886105443928595041957575626149027269611612515062495677048857941758449805918465567537946309522497413063613782131792618297861858391793097234218777225122521371756642403899595288253859737800489403272654100260113170038195854087068276535228349290772398761167643078282007177889720555145959477402610831279173836645465027204338368629169205610181217998379282047465975930391206568760198105918231892642051517928123994758128794265285528124747669721231406013991590306613124391091505139959404294084367628349430546285702594289951675521924243540363047039839765189387721766729510160170111635753710626473176407719603684902842399781244220562037848234117110594961524009313669068500708264207958527218222911588176853374627057496098427839374465935205833636686915221365643674555270978335786009619704579269756372974795437676475017628022133837002631526904808664494649536755114026751002270873652687763236082220392680478352248694131411134616721999235557924004163635141094755069518839892163547036735123261391983756731300643788278239941170425248591500856637094229860312381863940533894613381065190201895374483725262786507676953441789458157468507529826473947717939965990483033669370571993185623665285802241623520183238541987454136282342676818643963496769857260324204446472953607343368384706149388775491882068295840371732575388465750842338532136413852601441970419264438904158606941770876830031326073160803888224087524425264254536015909769980842066111853924729794660544005891920307759607009004194751227029227959984314411932991594786108804818953046711911481309566558028572403697791828731587753106488798049563812479862096227576452871500668166318465955113989004671494908695366681210788633576371020439553004198311260407649411879071388301815677838308983147964053305589232394945605022620781679053859077711772008433576747983633197696439486196334813579437060016391413067814035059860287492167726022449957189340036583570193706141629693879546214152537123289306597366257447380041651981141648756427466246824850880627536229754994225790439643411516712927803447546161903994761406934502924219301050991129380503929611606832138103469020873653425982660433928596278514423183041709475584210941781146629925844924305233436465892132175715773215751419101582755325919544843298632078454653946682251171158797111817903867715427868460656245043074526131677333047713084695064503260604489992220160030682963387674887760662637372972326952337404721931807894438106102555405837938193384501814612610896234059062145494140588072909495111029138461614940072723589138512298868782095689991373131331854488034628598983515662622298357340172682111195494226121996811713199140244652441720577434946888810535642473470211913529959731025229727005822850196770361135082369752764477818673663599593235044551628587559700323805057713254757781142485141532148739591550134773698873014189791210552554972374368910958230609312933993716416446328036848419549880465858309808477088944477746071365400891445714601942988145289583723302635843964914369120415123562371248392490770268486194821807779542399553240431253126097982293106808028387722477893703646094536287166830828041198407693350437360028091999507759041049900967126190788874157114015005436536317973934825623105255913192054921643158336382956596375780349242340887945064656601412608045752488580945131342974617118370862290688656364645674417199740956253195600519352158219612368180952315719601529310812693956418082858673067260872669625754526083561982887366024882821167015957252658068941111774808664563638582731313950515564812482015564746871806499636011379095160424678001882343519171664107805320881904275489834488725559624550727424954453032532551294338245281331530236834240377426763589901074511429278070166462273242501700448426396062022001972377136782221535727068390941892905830549003523336925853729211984068493462571746613148708208516029017253325373925463473650682209008883495561688276807496698974538845886980732873258342781963777044034961560405743307052563024538490094318918548393695452851280984494978159325485010058215206624975014542742625334423684416981693184088346630713433015591173341919950282259788942848052999748364903479770711270533922866572929002208272689568888731460095406213766982406679262080807566151148904785850874388778217997559885450755163641403058176304440346079825947591479863005644755448040196057091243865483996588287709120695614782447722437764485447329917351906525817097472814678007156724103833045566073747633029778555882711476056281521952659798256577058712283368628741267794816442467480361456544822799179622070523578896702195589294933236294554652649657740796431139059850255300712611552991670966726001986495127368785207787521203341755784107491525905491140733003014202352765218605536282876174969454698863070674826800719402082589757037672727061269300133336124268228502440075271262341396107316891837923130272997022015237833631193048658839611218425522160699314254081027201042589926210562631432009457365536391097566852997391781489370467422989276317977097692889319700840242848692062643113627610467173737295457855907474291269224698563683356207100457829114316681800094023052744045617732457573542317334318861760539787538794270863685508736487183707532797053427308548462453679635765541212485918196365864066975998768608623741130925511683840643996502961411163637206120094991254155348133070546843106510266135708741051468016477869434544973117872308979008460870082576558862483010752405247048393253002674485303364748304509584637436452980147173372633869506420993876013080438367318288889895567389753403912718450851155388639803308731147402775849126663914494433011986206312527960193102270776450690779326625921373371730268862563102992618329017219615649870605290484103571204196882977222825340349983229375454067415827880474652501572625366637693878191057285662086531202566675091070435218087920955857322516717437765745318161873673498041969220167438297326368500454444091974677641709720718733750211156667559764057222755110103387183911443607273883308279387348771903568385033685115294637198496735777177897610947281773393331633131044367113962600532346620027594526004474921345671424822316157577533784130568273226899933258537308981965463590513116454461025389460305640792824769047766314210209824990030638533692469513863122914655868437595316208859289658079925132240684270413290819139967253245546248547325465396174425096093153631788959574562429383530173937973392906529485326255371098682560345980396203870537669447086501334387072812213761415548573413192347168413497882705557020650881964072306577549208365134004831396782354081337873073954785598256430197419627862539543116041315640265565544616552331067390955599432861073082951138441902961876456566457343706049324302528166070357324217779822023361187829462616309784386742749766075405188360371582125154168666262097381063899759841413724267184943726390878013047570885219002957685869899028969106750233003765111730425794761511688065968645731940390599099317023935996237279394746762875827194413093732012334069012429528669117174546294573867750487388170790067826531385144959165886529372539866203698104369266108627151623069123885908028617510787299252498638521874165092568566519169157188577241390972326773758233690295179787893821505430368729804592731737935164167709565690068658756357374822667828747232089652582143633138849052639802745478601143603540784652706837770187891130012026563635767790210770207837399262184872496673642577223057399074422545172075003114781074091936520130343784355722096635923594794190188331211503113690365400905583840386267062721597381323477760908234045162895116948400320215731675463951174310426320027889481710486838645740734081470178695818201981935354248205621052013967384600942293273449573962656621540803678863567623862617187655532894237387529074560557986426093060170913652511130029658548546362632854369683485990048579179975678755637621842655827203144517605116636388273648442799836183433603718208195137933488633454718231773828906664982006639790123529992530044259077949284838584376110053214743772962930428908157723231781394106160629210161148569820931326686585830125642825745466367666007960610957730939440270081796543868421360466985332202092430744492513571601550752432915429768760065562902072354247687928423226649872308711264710753357295203403447442394300489919832931748876028577950481203843715627953834425571299958042078323816307609698400742198832743416875095456455819781027940178760833486801876456878238156267038313023954086761603562800255687017126943297968225068326390362437994778144789194292425727923445123155620059247420040163243923539093376939080817006823420040392635678382904595370830333163540193224733073311024031958169455451059113586097559066936996460971832177722906321951985083949686518356135461724941510768999924893094974268130004497096821819904051962062639662861434501951588071078545270974938457346504187986521227264254438029008419573702362727199540577870209661027115967201865716255860302173274674208808473273458810204798223937075792739724936911573685215735437630950419293870830932084802167834302883644300410316877509752383288237688008032271101305717025446428034029533296793698162490388669218204660036894775870634903854321785721565362811201142153984126705140629606742747909793035909109737024869202164351599252466303785053675443471740572976365382764601718902544408706577800574228758833491534208738044177544454649880350749892822167535433499068504698970467188524683875259484428483159205364335028883710433988506098472092002805382976848468769188251371908116473025401314566291453565377985589489904627894255690367496648740733538791552480752822125069514098165208362904482401167400763127817509599819557882757786757484239125292588633546094785261183795745662250688618784807457896773672372329204777209227596492795045114631107938782723032782264669546734675792147895170542769251583216550276851949960329329256320354140352791019366071964968426238267144347286448146278945093533639256664575039849180429961216701643220805050400187242286515626320098109459533572541240809439191950762376662274801531428533961196627220379121635818653089850716771042937014667340857003506493066231739127514196292059255129196494696503367004682749719285338936902591730244332825649608336433822077442819283719601593722951835795933868008018361976211953450398372671302909231868559891804119335053296430254900337781889266611995124137592051949206231302842498955909563759329888973439139733176911593126608805670371842769097869106582307499327491035508667626487888019649407657728075871697405583872192366165849411830409739662577859544047116528340975321407888323834075258943240441118281212239195051614916195945912570879863378765949133109183302853608965311740016282830048153185029335089889161600778383170489451302206229485220233197753731168676675808176987968875369612317401075136549660664167006432813319028549803072207020046273410149836490179902732002340199301028614783900956402840942502865032653882843336546968806410869184079389314342560348979221208919349327925395772920693738222721078420296536567651920864166597626585482443724453217262112434970052082606340321393978752273308303643912325818104603774279349794038158588096453875277851266107731878693878321055119162920735767011267486064149454431680706779960362402982140792791673574076574793758643606640700712153885460516308945877008706440403595299848357432703559294468859296731906891772487121462044788198693688817764030588623475143978073189879700454183628779037514385473996678247766632567853753098669201720012011460188856398847350867642675653906062435146899621726897867427576306560028689267628746446310647666686366565504079815426819226356984965049108193004972804239701566319131123084387785528223186838032512199240546346057756110875998162440335832229668656802124776888511280914850188852173126673947307606458542164632049082804265399921860286719196115154872991738859134423518814365934893749356357936856657154445214907733217476293922300793208769269383655529414469743737372005300990457644956709216671574329841584186687385397595331291049238947597193783693384976761424668723464242421736411623530260134239917689406235040846549748750030805595900396089982494654002701206882292325792140999026633344553272235648760886636841416465212069417448504244288015636507760731573131233178857611692508252788692637921967956518777193980375490907995298018776305582991926249254485935039029129196525453065656578929939270788169634982369334362629491150395276600196104831002856398415198654803746259519849727832637040724284186453050316960046022801155276831138054814470701529119680674902032553362247915124756401672372111650029047069696962182810741669059600581076840856550881051785593758861775033492609522395954868932836494472672596507230568560836048602005202588248162925572273846213225573658276740847943820945814584905716151079757861135785503638587888281739804348127005408941981213021768184800585293668389973410745435709114769573320757903934469887532619615111752165373225159529540732680183308144321669066952903446593589622222045271946199055686335457816447024700561249439895468369585597753018939923462958069095984117691008411469570124132542215444829662626240722455365565851789326203393614438111431436352308141775682925492334622529416453067964688293787149630430470082956904146881932142187928219436750632769172051685639744429141591042838280144020406799202999475929716286036713822728066263531666938453509541644389828923232088769672179450595106629130329177346412215124138912673337073687514464023457893721314990170186552558763184794062686622015331768680065719437619103090450832094009362082339321020707154047416642548403054927115098285746941034294578690233679003485496951894954218670337240890741831730207967966218181609489744386415191323850047441769182719551778870596384263175465287306445507343704798179591427969226151182000420195636605276316526009523675694405540817417503510811960423861790660850847413113111359401964718347814745690765661207280130244086346107917223451617974193475180280474319738836953735466143401629680139997615800348421676553324823216089479458233602182123900228847152611213599680452853825210635886321697996010778688526914761536572052314399720848547653161546714831518068982803258333673714939077846640453799469961102106185177068880929044256171303536724488173465326407696030216601071497038655472737375083646534465787047782387833038116070797785626232683569142765106875821135409473577652889404908345260789807706539150617747740723785312222251232114319044341758164381804893735585297721051198921099945489326398688747261945412928486831878913712526364469623640593353387335612559433153449870043644035611993795800692332951464211155359929888162350306210074280243269632601083694543706861955344153065678309491334214883843883864695848304331734024158608354525484511672857370894847162883190284829089575764955722095332994206756066547031489883796969135255935996608748404546276952516135698470208236719555461951713494547638791560801309654972353824887777521827620140486881103224011468621528433026503114021161165524380694647682439378988333740688124132360500131237853010029575281369915729971758596104307583519848776054384370329381366086369873864125953515384478657708919359855971558794578595693479307777155453708338029598612748968524465684339315681388361288070627874742770955359055499253894094392711729714164788226291024241441482963149841458285681869911783132613152066800562806278520545036739414077271220897585396217734776611659088235295214106404300567187574837298827410660246175104899098689369496610926361808742084459866929163372140648112348715800962099250561556666996621035121552098950659512875438547439973645655446731703969029585106868725735751551547082928243913925457940671161531111288834427925694661564029524945056514135191315689142033476369184534936317970989085153407080224709049810050022245052376409077945059789046240063960004321040494631800699150207169425222667077264143086573821373509786859590293002475522597425857281274281450637017374061802042496878740131456941220812510337789101148064666461341713274084289690064904018167930231507767055287528717495848641091365729836832852326362885697951505104116298949683623345561571541547032740501688028572492859266964333291947162455116480466433821715871890611080042095230329357574596794882967572435379907304601684657354562801829962252019050713664008819846568255415702634726534278280161512694697960915077131893443064024176515794586444795897198121631832686878501771633084337355672711016152996465801834861602059115049779746430490089853079026636875127607843396974513199179456927354188625653954133235738729696345690581952390519307286303802339662594273147360773398021897311201258185919641742372147196271234031774042722538587952103275993295147578757566385444582571887919817717233116255965599684413930591504793385631087123557644736453239644989875571777823754732806866849654558472422318082299119369881452402152587345197746582203748673895733647194857510618334745970302363770273021506212398393982411388473187938135673989165888705634253860094372480647137894023238801164025752449373627184271824325616628643561642893758872931726698263362490526590208583253975445137168142631656542186361945855321445585557616579671516781054960699298755084966021267423666584411364378878327620716979057064104716583250220794619449214993634961854281419803631332401713715723354247949677017593464360736914282979361878981771149553971501718472015803901049529441776494902309453852220234985586291053540967620813061497844732914019221102817608015505555487618011972434838673311996488581728067385057636561036111670387343280327179346705850436772071158019073421800282242901732473362203303806951526185658747880130803479204694079680706386366116678635226767027919228706700228628071485995770287910208698547908261047137212341304110807625981424091966235367918516893079216421174500983091061013523820006516516578072944254679936606178285234582342693302894285801984662570059167626944606015030576378738145157495906573077834641913294296972229969783339038908897679287820349267012957054946769911049804404054602018788920354486536804293918271025178716732218361674058517483324322528232106296449356643378258817666203483992052868929188513820336285076621296045711906744403860331872168365938997858666799715293202420340169038834317543764002873984209570229689997885786588399867856438514280200486131661330930329886853298153439454622033010110254350911048631951667640705764084072412514370157329520733807394168042888656763459720239398108940650330400138314156529423071577444994582663790151494041806457770847923954682289762612148199014954559461931562075602444386265221897784513328336314787782759113817727302814871145642283862553049853757191424208608992885723365171283729397634451933508730669237489948210929766004081561419898395990044791716467183284703890932583991211733468183255308291410116289872797969244990394845913520592288961917028230389248814145067657231438494880560626750526048866844166820117907683213418756322435611264198212974570685203794277795138414029204445602776963386850024020835372589114049548742513489805084452349641263773796214928796446295360515283370031188061306100000204165013462332008491850132806884391215924760883141355100979913437290509135794563599414546059967495400413164910803338333095002770362283701123405767536349679571831764085772131992893799782251171042494643342755226959261235789250638949870321639572746618860578042570195337653767376061250009338953895773087719614946515771197454076382636263146306671516625919160290759028857852933508509723451724010536107626654827501931433490588391840830803765651169431941048360599087540924533138881378343168289939186300008276264573128236563754681188175399720836310414930952874243300397077962423795430914772295004958256283560133657119394939418881191218341153754298938291310273322790516373080105645311019010578272608382025242507510783052834338578529456280982837672194061463018897515226835017620130169211504238531968945192266465203001969503140984437523037795819159986154869721653925803062651076664051387299271407124065067925571940519862740062093416602898071514898161074169517563553298891055455915349062290071852849030438711201658597734712553251469857448294025097062874249468070553820387771864343285526646313224131200819073414501134526363818372936375600500979816019394275301370843374909454964445991941909499651845307739163206147354124217428442869948371389644863441157510856928452744238491026079950817566214154424645577933762706606944261945352229968955244617857912206237472036002204592938200284311921979027746670524635512344090353609162916434795573688531798871069775548740615228382514607412951316504285452154169294791512515897849076939919470642947589932483350816499467393996883876435935491843710852464042671443313812156745135236996651735893502349431670265195375532077119340813387536474191593245821109975583835313339618116127728256577044754947516687082625648548446564829362352438082352552402799404051631078017762747233332536283246157760295273178437369738663409176392350874031405773582720451889550397999730553957821450207206351247465298931952444496733343426790941943535542363759761903283008263435830797330916353675551744458348380278992127838881450105937628100585059790064166335106785733899324253508006867470276445535211385771818921690147019829241082751361090886847349955376975462679385497966933239800205592052101342444095219289016643639913206693043875707683850742878610848568585846246320277184152588065943858581757941407841564660562774326827567474847690763940341599642883851985991922578441705949461331822283317115438815336430115995545445582260057290445351810754181772040168455487410353192030955066123164526235777015056313970232445686763778343683641691057596176779922236415585128469295965395964326034114684652743374168872473464290625633215304128583214478815675239623910273195354384373160811298560784017087468032503444545438853900609946546705984198854424234219742955635729601144382537587291825073516251265637676143058958718244642393143986905449892459771880719364026804459342150636057532836773260144503375591582174336848275176329241249881350578406475042808321549220075131433311385002983971861914898818877233761147386341717892709463784975997691245099359969190710387661318023233157951431983071702532369383134676537015441769878093878483284548122362522160455912713648904673734858019960300017031198552640602186061848734907525472496146488735998317897529037990284177017331952300295463615763731501720116714964716944000198709600750075053736004213744949617083555188487086324182571315378300224265103396722105770055939600210221265151446181182635510522630168667046373217416264912413391734750032470390523179497388353239267841524073366248816939165337851547686024054656359605056203364263011163615145785032722491550961580752200983306402717953619425773392094930547950876939737593166650634989430261076785910640023828235308086009865384645352655369433193096913483244750003957981281000050614310245459325439293524941097570609969499684709213580065228805675886991996204279083661737615189562888223013633143339123943958833155597785034224276387996279060197779270525730299538411782910298204005543801285960199171442353955036565333078276992677731949960581395247658442877480376538819897376038871843277029401016614820045740897425781663143157983657512126073043310362045476043614167509872972389510397614552301884753486080255489843888436373235391378242201669368211571376357229281880196807043149273965976100132841000704954807911576771029911969233852707518111955668300790599624660501088773580581052325409999447024411656136388962202624502912404529696253153094925830062376257779645894015891883136995682122317292168728944126220009255664645180423769490080337547191350630277110116951280737005741500770621120422608302097458539001017286059316115715020526191397411481122957918352536492767532737484509941985470898975233500045157392619833122813870947861929514209865651567585440151811604250758413658693423715389690707394447130629893559624358268539922488644600822067374727190807850882644952368413789385137444180665764570856919873916525399249663077556398698641347379232155637510275995133811581975017238747096834417998285973627789949112017313138214982674136663882884285146231840421220957857621964133423651303957447617140200153346747424982692945484848259458632235073325621493009999792182769133897121236326816647506671146202614934363499407587784068607318155169813072383638588057484621278515149029217314130236400102820846527640055208869606566028610518747529887772192481109383038816479767544821822642376490095844048334759338897875249489610882028008553145545961195860516936815711212923628948903797353480742900083991764561533366108095161461378074885024260218263385295202693806178708508639732988095569658749956563166454251837235674885660364987760228198312405923653489921173139003811829762343138914904245720501555399446724676919372813034891194525359160501544128281746297274177657826971811064009975443908769421898690818999292911578771815379252888312340884676530462607745841439837247117994351052247646393457966479787038855928860790210890080809697639217887342622683153067213979534595578852525278106668254654427810267934572662046428219337374378758214279083301522351786365523858306338228100052292826277215865836258838786927333416373727691279000435219655767630979924057547592581472298461766956465786519142334698078206579209401520066970892874360305393762238079792440297329631916815122657772323863308803611108431812040003449525431487192590707466891671273162164015223953143783934412213912968687390887152680242618275487109818304532000119277594494369830635779590731535249363233969993391947363636881184876299052350868474295984375617771361262496949250137985296041799651130151929430344950782710991024242648467026022761720507181772318718924215288560814347047979089686491503873248472311401456333099565401453893992247518792566367613011908317871559886443054560790682041780017606802221581792035136061796398359887788051801124864347286260287256364799783690358109387017617414951292284772600451384073905614154340479933122481890065107725428704026730294838073494196497440855458044519908875530165722410874368257205176305802025522037838122825698275776293966151690411842585808699179795314779602564205710854780497240403395191718578876672079296909966626263966809147671332264011138557253101256253487799645311683615536791297324317254321438626304466352311652615004535840056454633634628833216746579084574758567339465905321124104623949732506986435611396591472345943362859637945006098944350160744293540946071373597739655118635247129668970853048450497370465151401575580056567162325963660514488853725068321491501849704122819808219830242442405425659939140212639133609640638670653889176431635038414768943426430283891734411652040943967486116278654895307998674541271003187153121986321139473786407212241606389874478111810977493735861452321235654814882362635018048747080482122996014942410120056494217035774710468983838546791056796076308392179280289627145178565793503140144165207215769879313802350201056317556654940416547214524855442313525167656050872438713536574423706685792650887516816999601282339252465552853904480118839707826613902309388280312996627372373722403689378784806205240911888897178816868622073191973112525136259512788622482721666321730488911452564453994011176678797024814708461689859997686993865779614116400298051340453651606060020604246383870486950959171846172382727521796366900629659464408902280688513144981634602928781234332632279121823517398201876153766097953751631869475578013357193947683949486397486828224013239223020276223544536477787364271424712129030308360869152858400493259656560295707931868954278994474783722753011607247006504020179847806716734188594549844945818766676352997676720837736064030106782610974512194684496186040951969533701349353980807310815659224392232730700688546393156289280161182385466041265007252209932780890561247525718680016163165934556686470625261002200761389487742494169112604138314062037954005819875608527866278956998307253612518623830608589092711306016208796018412217303315484771991724584685455547570002773603900651226447586943064216440827259268602191709816408306349326788045165099785635003708825295323454217308920352283321488858851084939510110133405856349560623564324896294681697251231688516900689798251034110269900178506599215888802876941117662584320944853391399583136249402792073583692953209881513057986576830563085115184086078614389468406369128919378484373346049202232753154151547933499985940247416616096024136550113468412650071110856504284895149865919680470002538514800620216387209768918301765604042033715157288765564862496516455843932387245467766642627954295768286101468260530224558095301700112588689779255134150189966036071310619706024828035863069667687232257472874925444860243109439346768293478489176135081823371213445297414444597937930578865706105036002433828227920976671720872336996970764440126623699202490297319877239881771226924672702206488525564704125353723526972186515023259141817173805443197917134109562212378896122052783023898651420676879938868717173904858243573449963185252681955420989903139745255514141829568479055230131252839676306147231318755611611777400793371965058184319188555890382459683651718711220070766728872173670545217411043491010173199365253653596980898859974623150948164428318753036361138415066412277428174767733496939383092391383413091130882310241527898502227753737536742374183808184103997161845686113473160734682372540615559310830894266106556997208716755475337038498089574754588475754843844348363011225784136786891914064105321668554581303958153450592425760589044692851213138899487323422287812183989538813704601014440661335550065032339618320357265702210249232614836334880777480883722924665502908760945709948126568697350399613842520066711179304371965744036451152789671360722017211338426876677556724294816975569882096728336949055553408449782255997505585446208669872400816543479742479269541188551408131631866988815157895167352491164135042498481466926841435146153046069435905238047513128352841477208151924086837618077692486657574707133930839306840615956109538648498227802467233726393939579665954840540198004217412802818165879395878463234956184807801475414741418503830554888750412548948788176099406639830613124146482461651912882712719037675867851799355171378961508704550620598510498652328299662400488146131754465901081048935581498453258249528469252729565933311325633759203690597485752571944321236109548014639802695327855419834351177516091953262630534127679101952738891476041135951982778990591993542938061947894819669726379799615360602689713455125591341187990871079850554571970955713400805170572888159120865462755205519819749905197002605973019109433953899329472018951528857331785953945455392005618175362514117888658200780749406165271669735793220580897463256689250192785334176566947807278333211024326634542026481253157069542650257652352482994423286992159889909747346321949728245786972172955069653084984014746827488447537731244198660893383045473129150814825453069166425853765505548140711798270715036599686588944465259368571204147724524437136478721583212604887261394907417915232255755208977733302492072558440450230638612671642167129240173000246829612280064891714039087424414968183311411152347424700508194947480678037284221992840657548875347491352039378103591775869761390684665982887763516268873352438766647664008989036963929771273771807897794555171578626382457733293554673233223967595185087698186558262780931857713344753920081980694037032652922261695899267734919543305051994605614127233560581937204018792484739739616539480567028408583480074450704233411097758839125776755949236654772572545876351667857967228634889573790037081965665291444594610260761804678553534517441013050711203201724635175053087475865627358122293840860991096614780289545544459329739261546996501981851969054708826095013262191362403172992636121892914461616818705918166236586181261402818757094245713861117507663168956224985927291266233718759681788404096030377654270438110502306278994442456917362698880740706081562517746531870056838059700580490296987272805885565707559525737980735469865666124000713244593198859927008266780125737579996852922406871647679478032296222995332718701706432540582181228206472453234799472696593393461040738449518948321645768044432121069706581487256144134682324632717800159130943253943862712458865713861883506271446912976547545038062229334908040752587210924141722561114265852833243984710651521097328631952875072155639792212441409113937433798117514074177479249610061141078701499657858174495864151253084132684005005471068766253679665880951505010386159976336649551021878996843976829660659816659589858981919757558235678737312949915944583775661976084054190520397215201216405168592081889069472005082081926866389004451842163385256417130224163575121110586663092040978972139116471372139727488236253246967721041745314315637203193454296464111303058967636903347525232404827011462392182129627577306978648175557791651496145553473149766471290174557342662985657009475362033600284074895803277448355553089129265311899323288715695219380223145087496554909465168333674407196091068615996550092301803635422562354405097189650980171842248523574704843493314205094026240174156253090022584105806183401553248399892005957292571690542750827159905857489365553271397970594253319393449659668799616626803461889366171027442839936621687237726921963396720305006178668335821376394326317822814293450108102463167970000476514088102170439665928982202540739283099201265126771460450082708779786116118748112310172045282295553370227919907438331437665933231143267691153812671528731837629427126846587126652663978916181582495353434387772891721769699807944674244675089975635751686151394850257904847002358857022391219022526840999835189485727886644167466504422916763155600302726682872340059730346006212724127708798397047130976907715955622797456592575941365895592655011084580860526548211794146057653791177868943179921450948981580445708963950689428855184428589660680572084477200752086325824553691105198160843957291851815654923335038727523050626143033906796906703782701512817658934192556960693558026091397293642765679420782795162446061469003313379032197644769572092096487983148720445655785253473665669868696680655915439546687423916783245364225133796375339737319341208379551377982721945487074270136701641155583410933208467243743303668659153835857869971335891513601539090829397835436356933014683410659747848297904529861587989798662669816235852462339222200006466135478109958129246016297200930126405728885860241404298299550221795972603899376887512993895390234859154216041105849237331179501116370559093605372517827772541860060347205409527625806887220763852627036231249826402702611187715654236099347760417643609177659057166304590946138963733390101463898218084780568127193309913862352955051420770111713774580821288691470476439078669927059089918144217982970433153023421549915601457689897265474785909822015718601017840143101073145074338311878279852428670946917914496808638713108489580022373052266240265936645099738629400133607808120045497284132007319494429880173161450429955539190543839840415934314125080586263192625897963526850097688139949050533291911578448951925124283658322036324139237289072202350036590667163389172837740742023596345142453283723392119141548103311029603225448756586858283285640458057113669042788999709361755167647901540513271932350627337902706539775938876010412807378665371957672378570714916822653910142345686970778837095047885948877144946162810977304821043125862410870227389555798297633558204476591641833021620175403371239113827044896816251638486476724595469143032268299665471044759970224912543165546207131740116961506731119602660614471229934235982415798781358232792387623654558940240397572448447158649971943964692072238774567567097995942081496316765268953288830801362984591683019614594240529555706797002610255606444408799799713929799298377667669855153165467454721052601405087830624473188501622911780803992079611890644504398067722751163943421257624503165727244537016435235032791350461854402201073036846750820162912321536479907843544141275218123723017326655881076064276680864443805362662443090486198103380231490790726222096667034328416685381582251130814846018718211278145440685221110452839001104749146233237986840195459327900229507291390224112994462614423297633551136783783092634323663643784460774045109410800942109749226071922559978802613595247674455833779088575828622878812604696885500031645229076028817645569503691372139652890862078960392613938372526451163303670395588694586162578810767977274335687117783167939946713294535724462267153947975491718035754639705958972222557473764465951508824849068633928162200431826238172352647005832142449979040537489443275221130591699239736329926880400221224239541302169448352819199893701211680273123858881305614132924733402263292398202894369822409889086034396225013315894598943106126879551590956001333788133176134124388479423123780524202729235319828690117432038903018154609431687442103066232033826100604773364702068858041122789083317900791441865515385319605562369889092075011136773971391849999082537745754125728455270618784745267274013181151005344014917473968220011854713227230517565244331028794373376579961126726857398492509617467245550941212159376462529072323668447918495587698446881180393105033976092654195988342329499100157703351300157863189194469233111349554000915434277526554119583726520323383651526152601052731227810495329786177391996333004137891182212709359479414814704048669869321273460882229812196222670153185690898547785345019924322832337693106494123132235446549968936629367714709066285846108718271718323593681078798010757572214621408284830899930932915362465061445793591016816736123833539323705747454165045594319773640292145374015137199767752667583767824260679000124398919009324395311626436844464811780451635655235303496075012769778497237221396378184315236252731193883222155155392033029385381606349199708287540234878673954637815350093480531074922999796834037071432143166372182711044341932916860233670193613945219579677246180874077381780738499650417355781033733543351745804083574554293825584210505760118641584748161080977908734383787230924199568209060480709584590427911225092568528762120103899353952742492124988478192907248201430432964160328791445006440213670015719296614346400801773282315623893542108471837500192322290086419798020995286505886859888984934985423542707839017739372000037541817983769291442481389747466816713466733133593218150239940074495033822719984345058696273065480254747943388314849274332172576907090950699577762636960385876769378447069490999710818537660942232796744415000323545873380245128295132055760843539874382266936576006838141289611296682013860744002538777749172361156521398983447673158108664488351389278233935515958629038859772465970204273333946449997995448020175467911034045148454653454505140946141422836293923410830942421754961045496732970351597530462273286998505001636375810545825795653745369110287189011213910013070164031513757190838292113945044524457474019587866539666895281088318457887289336249033045396079288121633010396524312788060131545736927638619040434810676789526703752561066715570634473611982704739513342648522320536762242105583842832977801985141328795477156417260084490527926235561152207017937854187118982012306666210930152686565254485642470544714980230576738007685398930838511030171788855343410142619974317173269446201961001960428814933938209022471646924222154908390336417616816179123691261252062887868966507404376293104329324188938968086143663957388004275146980695937584236051548712662149303524903891792268233695449713149595466371208658767685245369019469065139287729995189869714913219684755375681285469716528099387383394419950859388312693425652496106559621512961796174402838618732932756465256531483602552583012787674119843413690491257445103792482784809301716170871502270487952725931511494911454876673724936384974579254013660963814972031277106846690817164470811304496943075204182931223656442086833531409982376851831419045278877885422703200258682402728899466804036770385110733096330091621699434302531060382026273210191395188646352660146680166589547273664966016320819534412436960257853563272651503009421145063207806912200614956173735896375035750359833547596230080650893565214130051611124927029309536125556305891893162871769468631439041020862332232562240881670341787156528557390278032434380627040607370384380102851808855469034836254594493599844241491871615035657966579461094538902323448194684043993094972662878199433707861044506684086956202315300975811696768230490619458153598274124298917535528978836196382341058349680281232225356145056297913261458492869924052459515096680543651168805030082357557073048835661733454257680900350111867400015267997793753193906390525770562002650719051695817062651667610192409581953449921377686272028363612512380763546733863668474456298085119127818702589414124527114560486418244759925106416684285853240446060854188442309551668665567363688361631310005901607117229010944337914424340901894003799197460137518929944156862446592772120779230474596550824991827482682384352646439547414716421769294459963102247395578562330151994161906885126148378142239193464082513985278337725638094082448475639729189089137779464757438397275248778056537214151264213458674698628551675879507746146029819019714820040502746066438462876984426632162271287560922819719991210885524166615400075140679817454588265157508492279349983003946468417172505130870799493603266630638424934654361163353556671213085621340622849278347298254388063774259957652019858293853548934679695196641589919214612184012673964889743045912071353903886192256597681235598475359042476324790570530659850961241332049751664107466899462633687272597000533692462913124520956570496400423512168686138681629188172010950414360318211522700058979762759683986885878356231203243827661490715801913875297605916222355362940660509564512300090923712082204731274426608632529443008480999963571372477735049046876083277991217614926186318403235512460315384457059682794768665482478991896921395192771306672810748580676530718555591812190029393148763909060763180882482951276266747542121738048122786063609413557087134337888037654058897654514508034614794702180880724973550407244603897263391284386254609887373933484702370497050760790200541401911035537699483870427545814188703782568398060081535023538253549378472928574246023980727055434880520379206531799991218979435185293336125034883437519864522957707213672110567203808567428016843732974474438444939795058743421613484141362075823786421472372452162458498455716064393040251307311432254570467328333014638546289318456609747165656192411283993974081271448381514490221457551643376117159987126811912030825101718974891062419553019609517993998678503723614395053067218579796489171823899247039345379982324652213232156687961246747052400130743909134984286246480264838896067596868642424410863683690978478556736253375829217251511717117427279185999287149736840351538944052703821902735533322360751978460763264916927629930679799334142006514376475263982108524587074538359250670343340138380569258412370496266985140520119585965235299036204861104987905612318067021562549288422385041424917427483514234342766845817540135516921800813251095515444989636587918068218794175742649978652637365005058561048654335831151379489976149762776632821567490793298365041037577582783303069018454236978334425227435328237596153152346024965858931997786928717049758850700966102362780268875279673208311079492678225789080694424476157447126828997507039218992874625770389846802365801900762522564556293807839906924802225337875940566571503107101788849424742055274154877905480680683188478899693897175127116702342191310708785100109287538667027814501939021405211118596870075705110954293238680604884281514150740980145338884971888227041134756937763757608726219062066798993436345034585693145475346569962531512971864447332335821220132854166548704569550292205887862043807173485907692776710781416461386557726166881513019148804525629162341442758807874995384689047866371226232850737562066000117332217015687725168475943401521175378658173946050609823724121975003094737234581961623360348941663672910623039922620351000504022948520293415829235512976465108215835420371367523319914329411393242810350444203685019621840496647244923257592274906994384357230010417765379343226900052931816057447824158929488579040784006026767490585163666839939522048077228434192143916920702509911603362301905115738999410525282872264936130652942551267905464509087438157554063748443940989109257470552004176125556305907245355969265782759506895147779445863407176949056996302402749411177462364354947897623465180225547898062865732039331720305619474925994806059628404854858512853897564518335426950056364754639250150282294221782553640226107700415674851954670838094750696862114132007129483801852377313459261790012288342309297683885317062061215958496094905874020958998580355787489139203957511813666802430993682257702978186405543079251800600831773151135066584300794075259827728425790775400659476803169611614182863308127219267296177116864474558277033820010386300627315220002002727732339783829934597046841405460261160299610455789901895523913009412197529151397916463910831204557863585851816043222104821366883296895141458567222878730803508208092511614651460838115494739977890828725174017020329480372530766524086152829165549396294570551363148279608829484280208702820532690795435597782237059880871433448783714151574281516219879123756540293401280882647410762134024072904093328224786008296913433942355012831024448247688032218203784335381501764740825711676042043818034711383782620561316314263321029684224613752771161736403812383385279326805427391937603882195579742454188213109876998871699727554533314071806137971749416037164036522793091816908413583316407127768693849914478666641287745371835672962317716827683950850040525003060823905948027992050223777941147891198607164883816241924348244139268963654418983842441377872460719113823673747732726798944568724390869795820456297760840822952161833215110697418975760720288424404705719024841708218407211966743768182817189048042288328728469858071422488335695237706553502426966631874084125584224806254192020500225694172119778748717311907460496327807027731420136971568428767792560342780608937033642508470454255911366365029190687708420903932633782875854890946799625041345078272784593008021397753021174791729030760163213183247447301872796243500531691525180699193276389134385567929020049051977541277753162445937735145303813215036824564615385519534091233341662883042393426626786686236231807648001093623689987284285956209733104509291371380307623031192467326573522662911228819428349660040381827581256165819252787806205714830401535914039611616320030726431045894855650152955409724664589772363840800928139496475601097301802832296273345158934109973449360385812253261343186404842969518448490911629733668290052144499581435785203375903826565928121410836844649049389898719557185897097282259784015642369603174395782434109695805552674156110103862034370035440782054186516849697546024136077901511095746826316380805447668182342082226554112308445461851492687466230109904257172043167708380031280546992784524177002374524217192893270562626560696419828751652968544567018199625592175816908252884330691686174418413095037308356984342960614587922636721722487373328148474525311936914661747395899018923950968180313288657587995991644067295932866110169303142322156469592651805775612146076737374497935996622428464466411622440159509519618564558446911372539602243754065047369098627093364407166164636647665594987225767842387046028074817026915139303191952078306526933163182163214739587071641336925310192796896973403226469391725975548717947895150289726101057875674717590153518216516466962886458442911605955617793112194290579172779127290696638231438080654155918280183262104585591114008432537379209610933365107254828991431708887341089261649613927580224049626458089910795543079999479568014452676880301312312704193171444978116276470945355109853908457561596445746149039993664955322334173937798087926659824566569281187180525194768578686565879882477394946274941678590543406191469442193756789028382238346053792513429495778941799949283496570839144281449856652217843260735713443331020134539314145660660831496727756752040690572142998701155106651800356338525785556978923116948145333753128601028157098205045572467216020824224938125477569409786540253188708784962950649929316293094715434118392325829806954538216567606150037592535481769092218655071066320909732302682451707019394792389737494897240237498753198640554104259926092182641369374347133135665214938761401535935972051950824244266538398050980957916319902802443707476565422006754952952364662083586310633470244716402160948962752641552193921329830416091191548976105588883575392826877146551459049124966816727993747301244885545226540348748877912620582826462148293938963572723914232907975872318533711874339722293322458985690330224406421650516511577077198879670434737020414941737249165633385293502673285850439562431917771532159017736918632873453293898720758971237018672413412014699484810326318553155037536484867452550295715514991637720105633298215949967911068093648556678709675732563426711946831612841738468912454045954009561929030942207158167878084811230107658143133208028296112436830262373252880899408800835370328660825078946561963684612332344946066685885763754159325248842978831203708542815938460703296435561505767632492136484844178944590525288184996818157295206595909902072646714273427042295607230319375776912613314560197728565133271587146986975465781754726703205631415936965106129289732353456558390672684450393163909683552018834398806575374948789354292660459967790320028144910062403202775813926010540003836884085368627918285197929310523617313920117857821291690479527042336584648021421412997447681337454843073567357684288468970690128812276710450954031814099714487958803934652592296724150219906940189255305928562651766916063113170917375907402249297629364893917782955101674882507203793174430108595624201939798081538240633439197389371497642658377063298259678242906615812004628077181199211849097145259206160381645476929540452189903386183944725124223421386402817276072805023545795470051148273236800014814144715523176304511766807290226750315074548983932856950360641786336414039553448799525919129478493695355663817671510637107485752012334449476703253731681368179581500371696474506466638614747524353179289297015029285826563800153125003169169431485937056051685292214599527204445001788823134582105525127509619134255649470038644933309753256933273098197368665507291865438046067644924886046134769768204040226069138607193125459236081756454855854180601406426907412267999826844694519019315381726665034655639930266983314203610679606469321113559275543191308326866086199126652395511757872128209448330554965560160369143767487577703221649309743022928489283701350433307593167320547752180146085754901044645401530653415427323946567108750560258500830707931795487607726980081115770448811858912572320983790893198864159247276748218724781794184658344721630604998946034347049652357249721097067431512444978310276130000275180067384875973302360266672484203268161093914011448604305645939818730263824519013318778501013250762613330447811234154750622151893623168835997038257482607522478089939390168242267341658744813194043720191976421895916642506982220490569958668956697215754750159577139403726915222954022394874984351144326062603814443287660004639342129959596559489039134292800316794419152840852412593054369628508624754379960054895321920773832302660320620758617236230172523382783680367748468283052355799473156175277459583863126929382376524678348908988798988976458610737661576747737696598419710395246627306187361876442023597764969395855207826752088554653717352324959969897653033467998794410058789466355462105745951513953192480452917095749093723686331588084704185198128312562762682573817715610291818756460971961079711673676774522070341269402089165705969618190754698766090577856488547373571410107945074431342365784749831554616290121487975897756682930663247627914635762865309979147599430380845741474618219234084873062345450420391133960683082042914313732523757421016398475556383965163807452356259793045953696661873222121998471974124185077035118038987489834831931176385394541975795732007490663491321159650097902472795811096854288104385811086492004131692543362774165051969251080379117631031848370413105598587210496061975984865495052229605086723300518067377440378715116803262908514571017802458062680531882120678059202817187808667306732687782762705717263521456354162303428566123477683552319873617246823959619357223469517942021890138720814325613826238964834655116028235966539823255444845825333849395220980012738490662324822458045701821222530551765304183666084005200623747211298838633718188316322254197587753100359545336486385069201090549991910624333337493557549862294379488784581232602991031400179889644741366981258377891195751014830941537827777502890789735035520065872420503969628129291770102220337085938251416091201449543102322310219704645971654654786547506694017560607937941631602252727320712154327175832544102047407485873284619815006328218492718957782939977343629475374299773435953579107813692710149161542861570937383300917116302131209473842061628787100218776815822450912142576678335781131324199773588149905090802086133772694352789846732994463559469931134229069673553401620554571300431571860445241089407751929265381469103911504023697707307415414681861739453311796469790188238999180390857508693818667818850761047719895899581776870759033709138097251563458182569582396377707171962069979150864572699337712399155717799191263453733398181911557866984212916218545215843174455674560589243695075695631133916129770966689331468032493485637499681234068038639120090778291755855383940180569210892105276214243436683710384936334213207869345999791553388137648172581936177388012402251459777706799911594946860611259876428823318988772073411706239704136814153620048872500855667588808983058192098037018780959468955948319230818120133120971271791407665289800842612531877994614188192676955408514654030827883709120568765497118199387538991995891615234596491294376097495539278284771955625763848995144025531087446937677889075944270475650764118458790050808552485047130932861327062903555438348102719039139293586135669538781935428951635744489259207225208355782196506725755134250060599446408968403339457960287425917306481087452826976969723114816839330937037519926104994245337904439096328756604228373924075271117965144481170244232446577085810936573586435619441251051337509229024830925695957530396620356917072277814578415582781998360711662276321631123526980288531267929671697812012825594965314644988988159056169702196079190131173370988003714713541530736026322481088968931217534579822404649272080425552201617622594997374321518203264644568095733633907698897836764320859498069864859456935308082158750607400133452596554173906097131805241294642762467271116081570921431974885109469835059063435812115980574190672637732516730149575597851934645790784115429620922639093038621128004414340623195586335493304319385488687872574600825381257528707206582853480624927436996394785612139534534943935659648352863132419875445429786165199083586037161127735539367067543876540936046827203335637096764877208095001080847666210783417154245710830508111328085812833400160385404680065788206253858129220031716654007557766613711361652782649616688419093976619813568908292807345096364010147310431645989417831669120720449968124104636157243608214248250067815664377035465348527616714504014347705731215824817149830902266212053378723014419011173861927817317303342141956794401518741130088833332424182656549044232104596021202790674274706306374603779777184418727404016143468818854712602487847330969794814575596422054145261484145049337295735982836010172946846906429065649701527430277452485515871019195141241449584310483097958456231018389886880930545235735447205878405797265102300585073098569419186044820307596602307279059412534254568474591413862759808898612347275606018623967151733904207657313430204052097865076233140176176613492814110989984863364217618549051690037160135551875089444388845148153253945670442705261792118992080402033314329210795753258224132547970501005155945254871619805824933374337879881803880057771801891925405811072902365992072123988143670801379413502455941637171358898586917065907355891843961254307293557001018663384546445817888566294595777988599195603643240131769283568749439284028731507190918728478535151216624072745798235356802116161632472926471854762414311708375217239542915341610981880942429216134595887217487625200185244813707417796850175170864943361024139156851160372931799212221584448605867329587066294997979629304087579021833747442002222846277584216160067718294792517048770046263039352824069706871638599722965654139032653318846621406255270394885612767323599366746048589055284344707704051204231257604642322000379973323400033745955512774796840947236650887060528519616169497532528529752900291004641681654326784252420383667778269006013037488433894043109917926308262769125617891892563221504720846738005420783653587576275705275914820935183113687025169974196573037484553216658692419401667554280325457363952779004667301405468422291671369181546274210633487984103801449874756975589593157189446612649196457606370513781603421834634171408676146672009155429846505931722172521795839074943038091914344447795693234156504792075937079455840223405219744105264277532509713711451672674560533664434870334766630425456682440202851077289919740349926230190426291024526260729399672117887565912768033119602343891965239694939215412213115872847359238031443513800144616139676996843046031894536842727002058276995480191828345118814950122997487917425187385840845609674216244892017511107347607869168972225337846392777443102756019161927071889371653625533924560123125742506063187246324126592149990018290586172838427794575648552992292113649764492719436386721528371478284738810652253410249817557445640343978312947724390308950984415643482994059214745527773375260072388997348318473329423769661892138692475893762473684560902460234000068080001672781662367197168486540757756155647623036027073001700923655448716804272331498265766024766815808075680974980615902644470664964477201154205687248685703999063068004653092557964762670239802986751230456492626138777637226220934054058831999649888511517404945432199812331071498838528834583716957784592401705820899764415219834056801525416567357687052542453872447807179783034003122326119517978881159495891769462860780921161059010886148811473054314640412809603384832521686996900259577485917200525050087464846754641773639174526007252627147249725151148739600962188927213718771565743396040887304933060408063202391150155817687469251086521702535222420307787409495808801923262940174757930591330297973556131510527784169292307819599199130230322726349527574130519283050650064032799622767861063957694514092035329059659537476724104628801442473330349392134091220314922009114756473484139146520999679512514059220574852930275726560855965856322000924494552122338528794733956002248127661816133987860868383980691295232222665450872960737848731275248541066998406425146566932305901189859540316769235677651369145809986075681910124640470874659607807142229021444840328871359961974053587436708810959258662901869734158725865449265085903259750615111593763402005206619089607551713754274293232614636996083229473788096954244743795098013304888027987909730514288352950425638592468418424293174319586121958445765371613117036005043904854318884130286787531416435339817695074282964387308957861610974096436157163198603747718630950299199222573961905117598370050062215281461418320221960385465295857062258843994873743283922049751686955089785101855806396655216811653688182125755143707189321711000100813489064915550895251605002251418402134365657958688006256871786399543494648235834181036695386288082753805421484958596332176500682391065948370195567039172091686804183240372771247722253331010176454697562993894332685869371870286725040570168482591183560083808744193948272175732211791519083110417812305724585159004391660887095674478086051286662700260299852544381306662907965997419826865194291465699472779977254570804895932163875993019848948629390159727914382687282841935203524349330524685958505232743592037720334489738693593960878752339717003501338979747700701119936324184817510135374753100670245616296385883484635241339703498877811396995845672138996473617797513085425434816822039855967178014932683849399066980196297593308907729800318797321061836160212350238180415854037968650244392829662468944273861733626798069923021734420039796537244912299188074992187295090515281178863760575958163104144057559689648925544333104628191493367552943638136718327269300365627543798406344357187996671544012644105331431266393345507380942784349569689343647014612693331367316732073269239588191594495151390279556139643411327975558476479691530600308884005308216096232536495587945749212134326471168439043097224871711459235109879432400234488738021729063074966346136615453889701258782500598444713183355813962869990977759508121512775210022830447154161587915651216230311314476537457971975180659216429930341650222111943267700264096324592049628932721573000479162864933572373176258417567636167847058167026721411833681299735190360217959775423256216333871081399548725275612218657870631108035372660046096446475961354706363684759593958586177933226003628839248807545858989176502597592694319324523274543930779250077552656412110877471038913989246840454340344025231406418166954151827120136791531650211745526642613640804556545894636676166711835108351903744424426318846251078087304226663581904484161649449608210766043469784886048256519377008810085900620693007350457677145848475778104573160562562519058527796807453005700341616856489551902389007120594954860623958700379349822621829904349530806610869216970896302238757489854209062257781800866850727754470951351447057128323017976565630537199867653829161715484458169682174510983717377784023034152929968555952849093655276366834441980759511486453493295502204224738904133479201358979097374362151947459209797771682299742104082985948860540802775174526586846126747419222020248543483710908523522190920228056683996452319648833837365702362708578106734222848115781655288565947681188086652158023968410499426616222953209414966209805834384466804912865552314988991406536998769583618334958361286678372193157666845534484462823668244815789948468339682164152846481764206348549975814596983440892878600406294260157073981679059253057358077606673644761571141273650806472874519834452540257327778922145045173759791243249160418674137672501743587026180254978526493536387059191555140646116683929679822773516568040453949818626318051775048329499034728366368818930717133212460960483604979620792813093179797553002430128009394564707557981117453316031322061407273055467047482479015496360923986496911300072563516347387560089220713756571385601109423488647238410746874149238461650069469129169012578140246767515324303697494547744803686881632095196191187526818272700382047765563727095596326345030080921601665202802203886806802584715354878078471232211337261323366964617498371579853236309643197775969831033943295957037837809936237859731573382086880470571524325769930424373008968045869423793370450307858421620163709578345671385786725009696470461834030643438626560769626837335317110922387190230992680982662595229568648321615482482265306565077863772848527747689369767932816431221363869680820560915199475603554228815038510679313267198351516688801277390178286648050079705403062796959686347032500799613900045953676160983475011159999347045489298187308451752802632447669675123761054826454365074073710408940265855680882139007751730968924255294086864433073528174397185178423225352040234178764788264038385144733419594780065989517370745949012485303631649074366948094913179255247005975889988495607640080186523130475696747134708560913004224174011868682495740196292346810035495938353499471956351160153605254640265530579861518455743166787640337122459243291843608579402977346400981991079482000806215206253924904212571926347457726211299071150654357761412700121806675973471881249676823216367937862720820671813161767902898729535159174602784664495589570342807871622239493756721985693200584946429107767851674641185272664010267443603080014566351288667511982833219205431039619147162345876935028890870604457167476856393895268240887309920425663732886167655879175902682187251783867655424186475188161158641172815442715100441539547101964729841289642775133184776848381326814074626951915128778979849009870985171727513806098503118894124351082794998028738894394600971584363711663850246378239093187203937225239009536807843299287593372159673691788330881103270828981554843884957548849066336037730429057121453067877456758054856424294668150354813366147849093038702078640754096353522981736414980185503859942369501307208269721950846505836591667500928343512810650169341619452860816355940904490309013224652671280832348390942818890726734721995384312947826576516502530271312331673925614501312003045427298314707482017769672328731907920061013775724856857579681972929699431274967651155353628065536257671454144573969194919172225448664744551593934429386542002137324971052338652229617617719729426389305179096825938081424625501377857719105173911941793031913802793140507406386951085707081849307213367739355245533083524147716237739203847618751686850344977282952465679893141006680322526064140611719498428061379391084905906077948572126551188748540962077067289262573963264672635417211082297792868849097426541389034016582086520199210660543025438462554551415510611524926849232346470310335782729547392729651849895192270397082831231956414069485618002956814521560696155157032907224489596426560915292920919105675860939605909132371603358012451466710591892885000457240826587930912634952451530939830666968919453363995512634944969429973861656142806526114699708660322639085627694943642289715035217022761809151685929648156635511190805554097647546403187722854218585665261884916060071989415473420105553638783595470745298568864668288695571106530365614803525892987768581620507105100547561899184723110090734044739389455421791807249228434418625663022300892075365843211543558539322508363667322192488118832701738007670054020583560822240221211732888249316399347608125397614341787271749981459858326968887986297965827631312399568643003064067753715574080542049278685992943651839430633103316703184525892984379865469566429303656087511688735214961322909709517897405273442944702984307223135197732706607354346333954248416184972027969481757636318842360017611656217341038203640379568951422630750107336801972900928706266529539786181225945402662232655633689636014564505962920728737040918510410540783702831337907625607841096796112048764691417773913233652818020941084725614207776739725511930217104240348194463700762191396258602016534321264146972179509981538910969304572075873916300837882267058821969380103274439116239727057480876020233399094260280529143201442560117961087074110792713999976414440399704150415865766539213560689451293097894375383775312830201448874292735127986743937383003498579045761613316856345246484257572072616577876510089437257924482349309867912231118516656371059619521472365254112634834586141812207579156417040078445691390611806114376879937838121215578913991488271735075492736003186882166577158927498079155966895270705765622944290899769349226823483810078401121139970687643893192259148640958004664319434500032448565209468900521762397652400035187689733922491437966142669561716756093421513145599186448375598127138507555374671577437434042746078577856586553374090986935654008912685221450446527984181107079435269992202413020665750426152997307422281502768957635603902059415461528060154470081454784791879408234760718985854247801936766296790231011967657009514854837394874412042761140156482245102759057800396917751631279235644522874676110184461684232386579491170933795585704854405516779626336900983911975439722169905457155199526690157408016191594730066467293290426960996310642207832816058925705533958042387126440331639753279015609157795185874831452627345203848944600452257249856286045539680086749378974952601932267401454920001268963275417216948144884214301746880292652532148238182789644395924286343690375806714698312441095700075200743729767432666049640870706753685421339281804328900115677942247989081435216267818718084847320124700879715869246122771404115700486554588803329629066455915102825165546736023619309171461676737411614787521725138651362902879785996325061791553858082292945435447637560441493808447814159887911115462085896484341431844932356215246584079572937111959713000719445917995879545062137665493693009149029124611234646650959232841188913422860352362366306588880387604061490728695165832198494217846544066174806563551429528704034206703022950772298249718092328775007352358017264957838735637297833417193429837705575208650075611481708360442614356529153009203216862970227693553303896560749909612355132353294358947227981191377815441758924624783815390848792306281446856794866827779612443963729140887871874065120186476672587402488848011754440650997064673895406024131084552109970171779873258738123814510487510221550220825434685660456191521621728549188084918829649328091274118774517682387453963558113330198009883280685175461876460669582122989932877763868861515963379821310204256366134502056552010987442350776299482285751227428718141776469680969881247684423016373434315285367330650236732324127038161743044893583104856123057294898071509177945252397928558577048301041696770778915729998040056227304500630186676885126757069711621065960731691650539676677094539175564886553858395417055325991880217425968948650689413046126022814523417955053380100628533528365880036276252183824470017442572283826234797447236522817049263676593204021882105698622693359720062168643697626277511869080965252692516971810129161753758725663329629587169284750556842624273159938200025679729576171475453944997717375278347309802368870407067779558523893940169553293220960011870644126667935557747329059533075223858418575841216165939039844839764080859922738182879411839934033710976218338877583781688692561665245552066617117704102868100161880228858516100537162034114805849271936488604452126366914509519343258979905263225686794995373594577711469746153238509060705953767929998595537428258447319796393223530544958584495792554506190160684982364600128112400250103906906382710445152198030024281157013046336049885223698176934072469191924832615541539144001995041870040926391591264794052656627217081776620304821177484014491249820204750187586819688625714357479033133538183923817275844568768042761667160965250206497039364622183751451982270365607883895442326815559861749537065629085845807115101799463443501650707354059804602862045579752977468430875581291698799606246575439075925546560888658626998014387703280440992479503939881241917847572225770501795504346789266795752115713142782778523162136950353774731864400695738725785483773092743527902542069390308484988469376537274482811976271770189019243831951937739004074902450941958917700941035127227642892315052488057463890909180675368203927409254088979115685401948487783935923203510965081050724195002055556236397628851011088871183947993233517234435860550593732563006269835912625535630638886275420423265585929686263874394241491772454544550661348172000174561363849379817051640912815517856515553416934686188049392351841040058080000633622678508236875351844213521982544433932703516230640275103222205411497669431521495392571137413180244702951892064668881312845375720792094834974360575716485172983177110228272611856314644644672842413411888580877066780292012053474312867890437378265073578879736150827312267770919254327523231037589971042904443910922908084298470536381555265813919968722915916497127629898318236466120680342100378394637237117632721158512937164858333024470412442383889550028947540753690751297942771064840126017561993986075500163955692900290590312612743940981757792791860589991480829098330865106256229317011508650508759693999317979796950868559728132467644095330734028011609840080688892743559944079770047583678314534906490525343973516490548208324548833390285257506944257939533374867830163604265060295107588325020099923064567483950236563020805251123477399397704394738757327059111191802397579135956253413654894984878117785723890177315406569386671431869528412904705478247394872041340057617071386493352373566506689148941186969313228593157368421360462656996782428148513287425890011683001615970760911726585922863447880573272485860157715854424028724161997162211952199798040866545122959415127173359279204384097971267553593720703426946428510727344349832395492255791909851453778078305827493798283039983609780202401774085370463817333146631405076203880036878822628107748649766804130387516134121209981035321960589267230848985959893208841774077721208857184751590574994709685244475494694004423103224705756210552522211134186730019411303255681272469508581875752189178224309931451714077483178544317103694863965185131150301680971848332927586602306023568196108886830537463842679148486184905331513344793290297423970852664463019309732763047559646173926080399446716014349353811106313947061971363897132877722367445860175908852046610806643065710741490842498388137314787502702423763019640955621998203617536794518685676468280247402663084170822249778556498271089100471710175361862038853249672353975602333491959506933388636110436322920517611350442606129664047480294480552288136899185487396520124906966746994805781651296251690676614164986439452380693053816408518581389582830120310107536283460522448862186435840907323404924845446340655294714601664001880573592807502504608225242725619337749849223819356849368260420355241592968078854531693585764798054554783688888077238438469804166315361269354062267968621095781144066138888973123491765286372196227098117422439545872292271530276392533551865496217518273992253213762138184889555363055915607665655176523573481612951186403199215152248066575166273443631919119928218655437154729484667091196006385597124978669225146686073613927610597337833449876518934045644822714385736938029633237706966533456870746680508395084747566654401491366242765300115825874430798247775397407152519977752407972367763835763103401854360964416875187897468875180531638599380000342655191252764505700894640565014872413794306631729700361048954986027260344544686123407183704539837457113250648943138264018470077772472888006889906381913912786780112701040062526490959545790268124933090521438723745091997985552888247742273909306704538701572462301307140940685611429334678869066401235046281889487939293528393369363976772099294169142125743685347043210056594570278655291742730429111011485592811411670491449773687606037269742265485517812980952911630933801396101038507756157831887523885292630971456212937200009379848486104545133008646735399869346114302600178717437300009628409394656127032440482809389589604132163726802157289228837129038093618101616073949585900214287132351622062282657508195278743510842984570060318412855633436284802496180291229248808880315971183090758978518381599128824166211967062842067495708945983212709410357974737975712192334170513630626209295921394410676775603272995870753669831073821904309611520854389867485629997971020034634331022939113837724842772885179868021550557073780193282935035069897658422905453167702987841305654442351193344323102485472071309938455653010835784287160654450930875690544741151458107752381718527565224546252853848071026145841745839204932566483693016185553677764644880159980813479913235697936199766257211573801969736058840956008643024065238157817670523830557551144660906380196961077602448923728837648544336791731204176958072728062579561308001246507299686669842270878947498867550943371876755182528547933826626029939072766180718008977909795183608442338120877569627675538666489926888208209435675912712091021666299336910518905497060118094983407044579175079161522414903390999750371613964489604991514566006635664694163262075488304783323516707930829120757282083379837833704095796037438489666500949170030537329679105873319728340411609659603588122370485924296412164422530752948477357796429198471449796464359514864025797550707695289879524025184719746283336520405333091945656402568276579352109203019697706740108480491306107177522406919420787875864486094399780962662530067815430022682628628520846099074302269864880995385050411480162139274356736277814516144161798580419846813577783348034225314846997200835698617019546171730093082150505848701835604918272032079239598104158971995309455024233233948357474999740706542280566219423826554577373074298091408124766584522352592742392807752774206215674663178170536370211788571052151424686924714152979228478753654235086744916815848989724195500642587132263545053454917932466691634613796256898105732557615076169661988016016185838434650662799494533730062079133653254059687635260906456047451885537133231671989873262820182479749008540753381052506736210192001851525022692683722731280449199778194320899468686430569297146565865409059988979550304238034524309506121424262397857947099091377254129546585186201669590651729624822903565427958714773659637951732290945505490405374714908974048942104062957038265113950976529025418081751486142322263188712385954510139806220234555699632531768332823246524567606359639793962632581777335089758245345773383002204501811071181548821814629699068213767556061156172374947054033242400987601436396676928567808337833035296926198322089319691781447282150686652971914105356544532207604425308088656018362395922876545112333614242221306929524545092879764486545861213283874329948895344161295994374243468154052671310037232357414450993293155894947438678612849502350659161153636457031426845756971847291676955089040338212748445945677203861965102078988378383572650791365383587709319258616676352209677475106102551158941845637967080463569046696857077476141311077502093816268952201158960151887265217718985536575612286710421377602557014554843955911548283545964026581053002967723149006285501585841623629861268855835259776465862559036406938174855442099993642393741953681841485965495877465203050493984831256085261486204036033423612235373383062962271318668480369737714312928579757346010485842373137863584458903249261610339863868879920541298857640816523539551060136593029166761579481017440725562569916645523283615628459051652190526508563003456045091685433626978630465446265428975838971896698668239665774008031378098952962996963974559276223877711675243220172800260703180278325405988072945731593764882678976642159873947107834268208315964219980851210259453444797911030872951417452124505743096965235309805466064706889115494814875175559236454994910312341991456311883409670129199099879306715040329924484355497959081756261697311398100237382857050577767215725567807344422742257999935301710241541505238866448153412445333125946380439554554056452963847716728593528702392741856277916380503781765121844763427152779832547434042562370115110858877937159154930056656865453251577571392385171895321911409137482632579767602729455983271625980453088652202471980441565325007668113608274981098239783823850020327322144662614568800884322019930948090737623195259915372327196642400930756077560077073850510189530468760453402137374917309988757718545867245592678912386677228556703162873013906211368126135517900607060149773711224595007899241328867841699498754792389625592360766572312232284954362118787820703760399994942948597176161945167222168571709597399765891294232059843263628068089999436487555459904609322860223242992459602954776705148340208741612925521988593590743683645823322708679871665790834000003522186199427664247288414599575599279558149576392162254758366796827290198887415975363300995839871216222099193308636153556276587217618691966746174519034754714120309972190706379613539156202152168970536499625635497905455449526327912654107680872826197425550349862693078902090952446332828923109957687581028801856670967666101120577604971322316892168779426061233932577703305119102325738805445665871518827586421355494585154449526789827509641152808450398930259161131206905687054192750564294748191650860840471156279651638434110544159992786744748029533713934639755469727592856299747103267774226470627692194086734766921232298872701736226707564011982861069639163906370343991532844139954627257887103739187894734223921077758899477747144482447042329794566693993396525768158773217518365062662343656065284854127654401710018154314766470488562285620386089471076063149565814939480530367902639618676836071356558515882854790396269705454904057786438294303727172810963804731013725281952597949382706766270284362451800286871056516110500815199335143826126372663560108486895202943264012454304287381531780660275305250545303112841412739514342979786994547812916064191240565805528506179047704301918515454221341635268482696894044904370646873463667876084681964068747023361456083485139351862403003758108852308118449742036224565899224978888836284912123240493928738314125635478913926773090156327212318198763872527640256701009156558761258329315913961260834716127422427195614117738497023655818764946897096311644752436224149433223317649424270020056859868643697482089763297672613049395370907840549026729009795427317850149285844671405835601314008131460861028750972128239448003734281320896023069296890197239230411368218378601926089921752311027593838186514845023546569257123886403482422266831943467515515209043068535062047702821959169973579557655358501424063214418620347885173544818200139851852857587949502789857031366974213597769988755423906010472659396616970321567911724876266788589214906227406030828494785853663005359643471924418499758741953424886095862701472312474689207694271428486993190308343896143384493333025679973923628392703391108857928434327546429290362646337482555172777168217592871046456041565859353320235806300181458964640749486786947688516655343999090832882070960577403973217817889874099317622711728339985788958863428167446179787205244836740665290558070335249611393296421856419061238360594117124999922729106187203183614051940959281298880529938912627432967797926157147712989832694758370942360191195739237813254799699905388242894663112735302505127431782507740144552762752881164986290139985957099578591761280779987550247600592809963618784677679764579459250536926582045902210956558829509218030420917540498589630524702406657211487576609449014483323634749206384398413976589397100384657614642506544937646824193690024089058290699429324107874238333445874265524535648568673407760222542644895305031714497915828307070058779233417693229106921012383439285605781598457705716100868611781958600090292626952689204781375204538459684467639031484786668783929887898690088088396076739149849123657119867247450605952995424691779035926598240866181351364635041347862451718379934276330589174792715711014030761912074310869224009846262128388867226678350722985241992173757115311435591407627905604597830301258862243458903477927339528111203821553388805252452458077548517802889933683760371158627824751264772918175324006619140080442683783271812011339827350271467493756655177008790524527364073818822058352124696883029868230055145279808547425346553301452182786623418375763174701008854810653341380636205809471991209458734678619683214461965047073985431365470020720745847862222826421546596892244700476542819628191922869695301836782491473280422687423338395401615693679332765664113294219615291389654806838235698779683614100336522014697676545560946039237309684016594745453050301877509026222358553812691428175316584266602124809790161142491018395524909590780121484908524795796875446586608974626921016564020244335622389045705983959158404594423408898598732624395659834298628588860122711442984186351390289109680849180860870157536721192804285160113700439691584298192176394966323346011962765957585355704270772201741129439635815563290283399366841250718826276274104116059257204379327201793022423540910991994763201858079690347979853885970252312800430090750362783855217196826620174894133185114992628041728870059969310924945187278562637155384879562184957626481379329975169088369309224184866208371896835544641009684387340569646452584713047530304668149034448137744377699264334697924079875655155968310742959898968798213449414657455520232240676496802158871446366305002122733906360419653029746381260837081334127742387897450707371096112938292939511191758348288481236071170043989838709093701909572026514648754050623835272697108006464056039888781641322686978947710662857175226292377507277019948645836263508094019282106747343357524874976436720491350641867208936956704952314242468330122864602242089912217041637448257077352110346094180789005424836473224304084860983641336036362290978175119760258629137228339499088496446673417028575004982291173999707957969155702606129376258942021557943134892590228622576647260778390838056889982694165281379280323095277923438933754985306904230773446135263786982904511646812227154117668191208317798401670717343364510869364235649269136134375946677015398284301258087794679680886318927950681317704839748350611131474561749290179653893059537487052600954471700777883118821695143964418301811150095955049641496600125209758128712005420979845477395696444807866373258845710119818036962607537043762281079789897582805418871943251406683424229561481449054337618793141718109158729183512885267265894898345652083309874999472804070599312440292806953156291443373221306619085275104432956964260248965137241416453725218371402702695889118662853514695116560819694775710220502486651748569017172211843794015764994665176719531451050426466149054143229802356930660135878405528120971474686733880408190268936565154235835735224867064380382815180275946916508419053705682020253896884675449119341801132092485719734624184885804373514366527766698856280310877811052933697550328415873832150568614998325163234539529226933424074615831532333550999307801729541834156401498964805888157301175722863779467980601822531484566191571999214333759076406772654512320088904877293386262701332756894924306395487829658661186565349662133258357017996924731264177048226194858308825137081657897557664535502629592449580994165628191285992892649507336984134884835021178029812266437034273022872619197165149935646784137940130688913129643699221350761826666428900719579338772927229430294877777069825710596194013030701862494728382936899269423403458962861849565609809857602292187491246653192264875788516086508355289713061529950096384432291456879028963976653288987164116352631353369289684074675766049275717787881053218423583215934997761083908881674452870193645264738540307335758261263721430809302391383295949102353633078536122304425477326069915236536962786969465015148512916005076453696242557233458875972121829466091408996900627189049074512322012085399431168339051304974716121133139783728286372291962056778762380665776560124340818155412601952845709322786971370044948770883294525463403585860387110487579997966123894561589035084167324967154421835409165415296019456890023257442457898781940655145530190812056263050750606538122772784465552862876916920286066749566804220118879273620458378539868030797509965106336328487335450519724553336129055005405604156920083422241665440115735280744433788978614169658466582026706786864168120695302494130893340596478134516349565386151068286830187506438551260061226070622631489569228628946370937509861671541851585691666800716309014125002148117318488133086410134911754751008896481085039494426900514777006511465074902551548558199296666567674241700624451999421921307393864655367527843718544345065987110542029878562951683641572621792037072803200400041336795233946450544606114299284562344227134358053980318861946680203566247791471871485824012792116039962453510360462097973021113735143705021155599336678501517514591445883323283096667252648226424186790744619854277010832272786847430108190564910845677556481630161650348376267270540149767927441135184852692226138136241026754440663600150337139354537774403267769479713530566898398600652497014594192195540037179830535209263251225292089494793416307592292867606226576898842267485781478948763765277913180680623190811405286866315813842177847613930141019800274706522979715259957105802656494477706605772209379610878251452044358088498257450403457489907347278130448114224163892071646573345899166764054879669654841600826556013105198678404786063020739834952772449315770063579177013688549236945692128758867495313526617280081469367802552047574549133862300756694422134108810108331353469134802156362370093823160219253699165464854280803266072713049758604816037880318645910691966933138712119104309801594949010629661737953286735091587115199230642532277107729402517642637457754168706326907974403252150538547241687723113957923249398260545009531686371725065903596769575855359205115541655195005068181245077302977571967419029043832891766921995468026425212478196132201899937654143502954872248259182254940361622816869854450549155656896142057648432109061433435497225190694879212004694269309301023660412448245052636442564750396805379122261963011198434190915695392013702977805427514523865708133863450363141901172394659116535059042637032811436790358306792671774345777691692969206963476651761839472313377315130441846520802868884390141918970973030316602348583315014658195932719189309244239385658396186059263612085184974867769015066831370603053564612316541107378546011723479364241372215454175565646195118425618855448435685752541531449273331903391155639982080059182314582937771506148074592916724974899828892135167030057379540462909640526094147289491204096005104994829354778031050748813496789026325930595196282207455870272462981631605944936495091151187893404957605182534682224622745823236745144040973355436195912630788909502600527636996615164463097903500323416224886764832300175414411136743257238505838836832874591465733237096430968328909185059695227937741434370130621887291762756866750402678356279334331042256603827889862156330200814133414567988476706543713354504039205667810312398280752698495073559901891392263742817863406789696891081273063864621554289305552651430226364252885634653703031492458183663851148253220243376848712717282117955974560108583995951151004031843354769877241066009876684519906156746901415002166700386554618268511754432671415931070492421482927706753751440288321063807398438178416760094357534888409210810325810409600328313648528724271924498907736765741840619284173294818995310361089783971294656941156829741122605333464482637265206203996849322807182681942445688413191701703709273451342650959926517956369148717004265512680997714293843484965334265693552900864238927172239060429453629238626946497733091398438419700697747551596238149300770856212835795534399395956549245286338946147997756325886158648990638622088314542016962440186507069696683376760483317792521712721295003831780431719412595806294239092381023722295952979932654995714328621625855809060127488484065184854205167147933907209722692778645777340012234392968795850324167775409536285791911359404048842119091448457244243718571944999005034548879391125070894890732471912165647857524399400564458786417306935194237068060446205408468916411832075024219512085782008370022389867557690428448350583351209641636455049586854601493373670583072714052193788668055505359949401358796328909093686466916594212926611016669760073619941158073430603212570984155560510526433569807973591195407006421316837967197217023047778278941723654860090020825779057649609366800656298635903058831945015405554178370643392718236422066074335865879784464805145493028677514746965118207479577114395895297658104488026238159660279778908056243814034337414603361662565894760047296256098507392461809664244638143838490395467366278873442037632208404443110452342573944923207312111499512289533116163915906690814490637094451246188205024158637888512252488982335735299266247183581504531922565976957411302358110500979133497792251628651125334591981502030722051042569433663486431922902759073137641481392107075057080240690370556179239466917188486529077308041529479608443392514268486874850894716586334837122147093558590112408799734621719289846539659933739702729278841395758466352859827183954439676778945215132418837046865613733861593611059694037915303786733285019537084237742200798234995415925640298257011416292519942481749615388936856438474491974650435727227903486190634739595906141676264725415100230072091910478460564248588683843724164835355115446153193648459907316946154502611166421484409870390326362504575451792598865523961838481562431829214646878511416496604465117817557509557170125213602538182216596101472608919441218023672177376697622127798536537110830103010514205380848219703214914713800190636144123091004331339681034216716394197826336085532747559264569242242146074979955695888366897417386264386422921854158820298888733034084525098141380446997997623887324085041232764156560505855388326524489918915764587082991212079148314696489077747519476221686358635397137358985355164740297833137649228012274257453701426376199813247367935824567895789669486883997803681446622088320176638099143179549292477292326071189733744011634585616084318664205784826010388284397579957793383161952498986835941722956897652516176647154717871113215251500298380344915568359892361442556336277611496803762911599653949491444851531976864787926670582531082836019664529866216070663002276529769480620219298724806028980355031924778343991909274725250627761576333211197162642406489580700941812297105139746669169517449967703901463911811212904372530173199859405984677594075253643677807532144872317304368170021040924377176468394321547517321160950478568873264768018218001940380779176596960947751018747757273922970386669149453195343172474104299537067745022266243254277046432573073511642561240329535371873722902001611059205548671291150600917058062986798085753738808411333663556287086917457594995662507119715597863906396191028913255916943113020841793738071280951149691608651576126665635362171352386162045922216778464824550770412580694420105015455288665290085567969423843104372916240165776235650149673732396991539863805488069938306632498783586965836954817718380155195488533759810422274324701001608310417166579748791158931481261810604860925548533430929795612899215485501384919732006455902210979484532613006223387757231550927295334116984977145890557357809391601023991326355281294138216908998461232073554600023866756180170257044327435791959438306497141537172636793785626536862761150908457102792413544697922813762066202119701797691895473254769188703235487214924075994921880486336670079709692853123890172057618086041863461529541785521321822502385655502745454093083856219920364353408000608644468754634342854707442501164444448207940533387650040529712825705596702970871868697391882819812131953865895578719176057625172018405220253798306655874124225962389755039855636367012526902295456508143206867086141779402278559974014938201256451333779560127799116145427513723584513976824861509426833860138594736258936355048270591827355053950696797657398740903276747640036679126302559206482688275271988588657827183616593492860207642189613575650543932862415487753683727025217312573143860715803915878978380207602387283410469721879911788542476022831534406969826454280743942286007473061067989425338090765230147694115324819919706155201608116619651250930569025134884217938382281941209375750718741267772263332136472548683818695514527203810242129781276377600687855457702331245336446599080066688606889018753561357660405191782268335859100956060993889273684616514371119547459228015074570477284184601084459684331519334781232605187301840812441468063038102667277242310956964803952231452200385943651051424228280510274161354972229164314486535017616864244693615825727903353711829190897775803387521392373299001625226927726000564736518518197919385962902343635702256409036716159090935347796318138168657339331580571647405408606983444934208212048695153325664983556134169298761114434853429892095015836606094469649021496769853993952300069356796124601111396188216418025541270616114639285259261567867026556310573642802403408652986171862325684300434603605787073418070538747055608184580365747666792080351022270490131316180253789747513647199833105797916648463776797425737124961525681729573973037923512510913725213103935011926912735289128593999374513552531272429891037807459240737097702690562617555275701557445530507421191889251949263680866313624923743732193972978170143747659498007725422205951817235804959917061472471732852211492989252780605711870800983699624565769037086226748252929654217668171999241229049679415616473325612177687927339605318158125937431760858619609796190691361405739817542114993644385892218720806383620612217620009591414308786625652177309561478377201526779767976141197225830751299038425753583341600987780382414475480526751419766582415798205720149770998678104734413274733006655924650653944321722826071992584576660298327944005141760573380937027266377922284170581440294729660964936192923839215176185775535506795001202777665531335482551823239199743392568015790768858842960384479340803285946771493194008433869789521042707971736009426606424434989191980890140741991534349784554950651916317195457366422267769431062390521507545833916997697116690560007221636528298644912677986295930563367047145225731029183897649885248326955178734439353628805283234538821385021361285725095576628029903308958003305809873250787412916653123602330117794708114788771959210905023182571000136358919985929558096462661279912779626483928152788633837528693012476683744032557694475887011548059001119141086943058157293351171820463907718610212738872294737705338623277748228411157300938382557390224340466722510584018566993380205616413283260577965657580940952426212981050992552753648195767570746425157082200739090594230287933853350800319809884866243000755588704606754047121550826540306548289938806337654298866506135080916986382333845328574403695000105448126839818348862106259087523784854603246899948981869752518752416065665695477190681017557187014949492735691107005185163921216910620253876991812911761314396675679403646946440218014130541889955173413823155052481275477631573378387184141742735001411982302933943140058229001811587588673589154548553472249040142731249287627141382985428846156223791184249058683890736859121663070840896758557006032109215532874851720529584349106577424977333927900458376587513643989407330540712457393004153140029653607317096682322920314583943147440570020690508253536275485996146744644467003043179497982121414298991390787117197642077353156864680061575415626747157786075462090776862879551692131593890876332285731565864468798493476135603116676156310625265013443157217752114640814582262502277945189438181578920345493429793507764470970156334984079127991317420527322598887070272393654626366827925835146852827350571386421758557024641627311879454381087589316826972125196139871167337378155975235123835112865416877674170622877276246873526007559747741758546593092966871987702244389634385351847436984059838771046693011409557654886129031465096071238707697430289922881427147984256128744244007877428235932180851479929367996826630809953822105357225276525717386343079891223334435362725707964681881207739008203999383944404712784917823188605839056533691861574134357322531792616056067343401845696240593408646181178282420513401271189382436042083542991188875520142538864667864404636180434433970101900364577094678054543311516406844752800772869276395002086403921618357158483942945314541775056387751138086436668430526224168120169903150817398377211256620197276023045443761040765641274945866040237765799250949091745096792186750553986523170333309763482549387428513872046442424301149847385948693636562054764803236123832402837487123394773878647937292207389373112919937167425567093671077697682044863149561861884199625918268345833614520867440702291774091036548168455272062301168380930935225554660484696689053949450528423778981201374048646652595346966949769393350993174604618951546538901447933304363196126080292227958192658044801352446671642254252585661121156903549310017598929115910730077507635054650847167931413707424758924588362668904666085772164958523165734839354044115410559114079111547598345933918499301518506635778642349849853981968820266503493566310661177136509911600385110429106571303612176859324011233106529883525207923192274709826319990286696123418520048336614849950664334229897011811570897337015505429688332538429848935627680153524283251117281481501752864928164957453840673867492532038281654650456310033340559421563004568312288969070334171411459175328885371247396128651712869964016086615260811927735133980997283679570302388238359998784436636657152024632903795952633358783636083582818223884432886410446512201599141089103728083392622004385141388182486884910735067925876672530475112053669456535742805719617880972347546319152480228363500057379123129039012558902302717725908940704327957439328997591359048779301131843918242482985894660332696325475163212203598012631143229096577658317809881123984331163183570314549220212918538667816377575319071524557051523402885675107480603842526212243961045850672395546701252784042374716244491699949571401025151587715389837543541457983350578543334777792091553336257893896217972262274470213149245968986250299636327448891628923041930698912548515856373616370550915043962827824018176167675499960940243069988239587801050469015396302490814112260538808326272267853202489565399985490284212877009230546793536006856348497847307601849640754420125296173615752776651869912383926158668317642348248858981864782802853816076252391422093230940252902519061000142558025516267010970712685306375554477423170715410912222964578634821619052058280579011369857900974848434097520645543613985280313963002381092979468219366334862199828640343542921805787216774994316951826348687187960237570190819911772467219580757266417529606277216539720287545697663522918658454742757828137656249883376960484320460352076255531844624687173337044453196083717017684745956137622177014582636849980366540704339231034845544812283451496044622310812798335624346515654333599657485187697545839167897289758630247660767897947963704369456253798331264845509762981725253640674405174608993688162906162095853009290852356858796487842802206424681611516238996782964306643109753711459669159077321199450387482447732523489338613851692523126841524445135459196581167231131098127438773971654696103326814122589137582680373649077265852102902647531130270542694837576066811388395418986766468782308777478736343875863731663039035460833824070404124454964528412492660851061510874083501318246699691668823479865811015336221289082249162560301443669678266154473471451737289039482608859028206664129235858622251096927279592110561514152567862063638850938223753827424762329650352425306984573221022063723763690769068156766841944379849330636956493589936365705176095482535720635681782843098150513485032736309276541967540529267925343465527792862396842101468495826834903150539873483062217922512184350653642095446721010668417399411973172170622610420476210512671581201990346826839810688986769282493850061688351949828282422283537127897527348796629628629364247349112157914547737471367281072470930831062588880914810636266606131184154256744155802247415958492092363784675487010229015713691138736491258321469506125822951122407660075567189420109997493533346313330009099440267316157176986995366154816237651910058912497895116253447192894238404637879747103141185279577057696155113124125234975405255892095686311562822657350957628301171613029451047789857526406427969544442177079210726568606609753991543833587752271195229205188858695849999585721892321429089966560516834374659639528130816099421079840346247113630515639379373162582186325266263560531611142811287481233757214955030074577538678091659471892625424389759195251481901932390541155041105448043599334433912167100730229765773343922032564010067055204322756687570187707406330038264691918698397922153576403679961780898610370598089288301744851646318872418487087722643067884542709190802435713941073540164907164766399028795360586097081933077239979592095936343323044577440209999863812454741596455158554830740801239335504333231556852541675957547523265898022482434743590185873412341941119657701609834734720333447386278929459309820439993465965932092294906076711988855061809350547648947434301094511388157878790098737125125299523795210459303914019838842317112657209881007044286888862154521641671656369589200473227632582817378459390021564313670293702464848010771681057958820265325359677437150776609183816188361495971256729188482494224709758522459339043358232201864754137781104847259601173523359492259515231696471995106869643122427846897986796924059855067335310168829830101305019793725675838349750095473786683872094630884799138960673929499009373033431439126969709409801090712063316190435380586323188650832071400843933640348640069765910646232582682061710425043342349797693173119302784124139729661948994407432186341828784443227109638549056990253756241861650577533991835082457370567358076722709757682853877767094648775927783409239255855688175932749044526795603374576986770858875727508020938179119194501507284087886222901693784991730138878485234030771946545211618016409300042641092101184976243861373539994039890438615095379342596737451687126447908596542727252368588902376628031885393368902501608791561441405520833179153002351464264411779676361977321235959759674024532813108017644162187087702486011140460532694155238255246738924308702868991623052234331021168963235739713386292041514972702373125700638346392231671857656652382432468678073303650306465709699798306344020955174094831622165706461067869642893997889133227486447046136110909521570070158306053149549452940027398519166918834303785440112759499762768808092479374553102439794651522057393493211548468293782616742270225661496579296376337556205747859276281279199392372491744026213646337299771844983727798665860380531105456062227597456880167856351575632733351139785706202289476151278209671621868316293082581536908970979090874910212700156697107485668844303662812145125937083984089950219512689964304327710308062610130701594435543904375320480872746608713970097870898274913128428427390933503668740687289705601575019583704703771906041447060644631496362060562158298082988046363544666813802270835404551444005117806328263825286631062390794723766392785200092451348968143532392843198773535656967190967538459899340329409171062107698119665275275308164981072728035820794814344777415021281879516253110765468866602785380515454571656269494933691910290341336215660372847681381375996490767771698281680213001504059151470435577950822394774212745063287300344848886871759186504107617933196158563029934859023348942889249670296687059035586039839933868244536007063057185425348056241328623902221849293878950045664253030766241473309116050673901535189388269664619955196140373281630126976282225167560471499042783825626950146686732092737218758129849656754226030837049556446923181791022458829913786081356092744575527349075210806008010232105236688687506630162986270584676626998744112154600510229310163512184992527469696772973438933116927983931912480645167790353403124483180415071074813647485912153906781331075446878417999602095054010048876965520659745424906516313476577376016729420492210062932912629687990566600444559377893869594910297316671046972355324545292266542678056507057772713103434910820191235666538458740403274962528091071606367268540758743405428343587688236510055969070962197970448265645459850186806677318499821260127471826178779440527225027102695119470616673483161859312735447240022293810908981381038524985431460658936332365674366437716540766104816359092486508049200882435718932500860299468949577894372406343496672928095324049089400186623037750799605481023254909174198200567643514840037018765850699109141621792049494553692833309394297983068203547174640669387757418923390463667505868553411038745454395765830810671735981024223403096064952193393378460226991913783275805671559267270039631526530804645066782266893943142967881350280506155010302166130375293230520492090608578925502047203994868038458055995156830395673842014108425709071101526634766644476748007097585787220085278233929853117664134298130334831269289979790447986351511967609585578163292316108504013946713857375449465612703116089357292619307109759470274368549010701498934368258349373358891113893465836460273117197543643889922144779048781883570072834720194326330603441845301685685018202100470984815907003201039008873839848719725956240697688684191058378092128288820769206199133769215599343132840974106427219599766478700056535220555785105927218518254954707206379818776460369726070398247211862595491178163765993968573633404492421318620759883338936263398530460496107975827095651352150822883258905420075594207049844731389964606610908605629878793161937132933228883083515158697172498478432273919992581538032105341286430903846372555377012549361898581787833298336911015965646115955172187977536010759545224214926887780605436758460005049854240206891152475026527760626800595005980244427720028400495226261250207387695532904590842640407464529839438836472119953926987747726089714183978213568357312133275162682852135359976576984103788275642131714218865127568929181278312361489590382833920115172774451176026081306658938419685943956627698788756956124694132646166041805391463844852282665517078742179612221035063774382946721297774361867025046670718886906820341648934814168122193088181269669198945788919058587937828913660146147460307366922243334250035305800026396476725003336441917338716127667796594142633469054302615203901608779707479699400209359367918349448731556276675137206491925990056184794976519367713575504034819953380945850834089609625414169223846189472219871611619162960723875979649949772007588546257342715845891149274638304355668199084585993898083990497490510149026921882926152823133921573744157177757657784914876792415137819117752536132183192757500769073768422449468763838606326608066095985948642973475721402473716913679433647394325699712709526560240094053137983534803093820636538736681578484679839586786790438353628719158417525944875076553417273953578869565178284146775603956076827300308025120111586587442835642520140874605716135247414774768893892061799321123460721204735636599919321513965007352873125389908461797575756289543610215064649303411051428869537523502687041397053461240793790766010897292252994329354486507138843594714765890311861088891911721838014631898136496379932161315542949956578030669332036029583717130650225291739555987492897068787575830786807849026414200477021100456402119837143158617565071025660966633425138704418191904742337683743575812195653463509841281114565462523334009536044504298365081571727427259854058046513899509213524282971207547322827441875763678319179795710202109799702534787154167697845111741797453994928181634766446673083259740233143786037866016559975934360151264444986069492470561739464539451152622088004584272465111059342190392908776032981067161197729216477556564019134826306048676709663660418992472366236638229397149013880646855561278035923752269866819499482805940925587270711093361975639062009911268492179133991779865491553921511222715305718740134909278909653941535124455794541563589992702666826585775382809859715680864845643200554001976306916689985383980454769680862875423291962391603507118870545274723639930056236098698265118525115387167381362140385833680400950504250541121828916350325194585205291893770038412334921550453469498783620948997988955666241393610218459335381547541118049968812054035778249017888921658717066328367851228625142351298790256591671102237370462321628825237931774059303865803346504872657956250783584271330331880806063465107362090387047348536625623842203423161037082671210136700112894785260992276990328426985887076070524206689215647362348151930004062712991116961664116423285626315364413027524838675786495619214025540117645007562174420810741822480504169117021933660011096135645132942009562336303913706088263171142979267104164726819865080235947909131234525645947231613729294514450135464470046888444538309857630028416252794058279814219931263633211372098487633709924194689528590135007313710667109639311238123921413981076600931715905306511124970062546715082339105016913056204734402834599640425371821632713211140053314061344239682416374080658654268802558396876359640666331546877770771337955428911533508111948923813182399579106499815276301665579918912704759968733474617737681934948799386746804479337159016805596432526218805871114974505277138937262997350287694448338187525224637339223996863177516027513842147759198159624699542201915771830941238573279437019562569606565335213732231424695361486863615588741801502155436890657300324241056310144663506595153381710670541033202393080978325774308682454464295750254656367722566060564730885732177375616995870823302233088973301981593803830180249609617417805912398087270444650214322000459374203731760394609740074284678672862867634489134693575927031037776869660329465068371233232866883963708251710099567499327848322632765904468846637767455118904005579829119110939491104881789998628794948076981094901195138265908127187341818806701561054037978854745039134555897814234980188496241085991337975392454724063861242342849965924249672336727857467418148666387360135532700085969845261535547740472391496109920624277687352409116414390391497593097264409804276885773836218565883933107746836721968169861351635715091440800227234954882954980730132118017121778714527264091475277166128120368524028404984164836816586895953827048151029160481806469352352711191081398233254516295196205065251097483982250821163298210935315097666257713066141988117200509243536603086059008323981607443851586038863108890768161171035827709670609811217797791244876210674679176944780279789864092753006006050481056996661047778533582566093435129761088931763612814229988735304727892378821826173774317113922991782442002798083696000298829590051600840492165864331404325808363235495622857184050648710507212644661431603133668157402344359260435763030320752669427331826862906472580065577226510349430565355535624275895522745897752313290139139400566591866321052430375227537536240617079228131092452968371859462957062128256617859690481124745378569459607989906927341232453589378794513395821283557431248997782757174394709115328784146117573297499315127714452795892676105296129737830267035599062230722994269893911784161667838603724505143918028147039446852115626065470261916710823279106485739410265849238463954540309165606505069232821182055081495197715080131906672278120475588932371630283265324522014320162251759119839654856224531052949614463133887353779158038677379131912222633649675158636168637176360557464386798578773941817592572101996692845738067925961200446532521561350100397313448461885691223893404437907123545291819494033782451726960393068208951117758782768293969338146878570670981903103973761853024373686233277685981346366185951987647363316176889248458500439443923567961366432940714951948285139820151339711369184569329440760797933914560470823506771653195610438692596263258776854849379159967658733457577751106126719191722303760851196289140587535326485025986196137146735836898942551173760359286490044866867204103097071583914832248186726673729631005800371111959000306759094434935008486034073517347010862724297523416690159170247808241118212581826638188830876393900664983264080543075025288497559199436670300539743438901921895440502124639449510076173706031077672702738597452682685736514697394650072049207194697770117469630169134137042896927861107692364954943340207176795506632977910051554220219042223051417412107735762507649119354737768664190898731167715147225725291922666450268416465846447316143214664661889436095806547870619998747865910701548226133402656936533621530876941326280749772394721541768145729674086022498130311823745208151427488542238795432651568036412722555127284914815291813432805651072380269069078736997794516929336637282818375177974538984746865591402243725774246589438483035787971152884822625117723653586514420618515172108126828524509780988037882108011196259775970077464981446442465005315441253219062941382313637489951401550372863559186526461919228981459407707533157036027180455648746684584861740151759849777574444038085706661680480118013147333062115398419361733047263534791368218391774320570534692779998754569176310160395112502199611791498245142364391301631815802265501155376998516645263692757595519144334381500532946463096638513425351169100328757738147909245362103727431655950162744007342149522295371024408290360668548776668801349817201548918713706924473033713419945925792496041671349531712208558489731943724523776621199828730062231418627849888635899327476817314647938160744317263885052814944920560140663012127659717058588154478303286965860067841524852518278361809766962993919510956129004398056939477331960344925447252951387221004182110972526363428108322704970915296630035794552387553900226461529671803047315531915275009756304600116903910087867776103010284320812297774453062352142166923953968989483973601666676855882866673243124297102345366288455129179647311972007923310871233891588237435107959303696743180370834909825172441367272399093879212041225486900438479280653177085788328671422383041095422892747980650651196573912979409351788762292943562896485569285283192713566989508974737955026740283105198900299582922116087830368560705749601120074501458165712263940476291171832353021612439596513695323237544997170749810996001732258685325021148451905763945187786444124152539566738322156681674262881907454211748354522893630069884384354269741521003592468414088356768206639947529544840846996126378720555506983059743175219207020171058582279698012518823627853420293097015663521304111232078242614604065406171707883531228502997573185100534676209308895488741323482875724663822687058111424362759826670475767930179100224476670911819166224476601243576486197455643238466893257048859122981121754998805510813909799277384442360715788193385273998107505378301559680475216150319951576676012783969021635440077213876623435659760157355570450987314672520746291319262842092174192568441751988182636550271999464697917342571480924552255963408284040141965965230704109141798990798224941861571220691235096870648787591096056384150165786489015286108254304723449642340855393577004007810880088441024384726193680159252475878175351487373709501081135552344393207827912424483352593286625036050842260320464830963161445964320217367305680654550947219432683353380093352081321162489837411321410739934121138708916068551118971725849467012729407681823723244556393109584276038596082650645383285177045837155501816729322143274865538129933783379818617854753172393687160498121988807826861216324246972730837810853807860305534299780770436653764926626401401149282355670345989653133781970577915319725059025107189341535912694744840748876596012731301294666812959534185207382249565302182904144965092763120435025865672583305493550029632099278448818223169179837730596367067569995501071261593062303411732376839988109075066305323840842117113453525479560923415651721847844653264545939044152049212886454536956910641374408203082882415006815176974758283661719541189371979491257289616137206284147930958973958381294646560925962152690771410351179818018565828721687966583497623142144008885495254191523298279180190742035061874407195781229037021364689971386392420258930195005339543792551034218847584819372037330629578245819532586644495281892828500141654412783775952807960946725112880834590106640203300566168078182059413334715087497664378368332820724420988270604743335017158925358248974573916870604984105172205275063291203347291642701933490058567213832595145610809110794421275853151845439921185030156707576526251457328394072483881387432127420235239948403668197143733694235603275887830139474334716216511371249966998938125442064981719190216644382178678277559149878598318173725595258588275082099555201185387829240473278663033643758004105575473783587270296264498351377151136112214413684713538269307651312399478935052300738670829945537340933761876831938283655151371366282509341831377176311155849826894942792950277690646604039652253287001397272915700310429393203349440928765089404888298880771324290371371269225489498751232134435619360776362106147636571437015721544115136472168276358571728032432995296648147218718084526621069542994600012460140027803257260974976675909767650992349047243336672851360840988595667141439585295460765667801302825647433184129450911780766027841567907815101747387282545739522368497497368482852966571916760935386999037331622436019054352701820144719955302718794991872425303558303318297443668288417489811754835086876828057772551445706147069442546863815736807222759136924597656435184714227573939664742904464307372891615164180705322027700042056974419936736926339258515161498942002947668302985079800641036578477578805784060846537397955874754158044413560025705057684533108704966011801736224642617997357678213231310391537814147031515641610891564984708373358708726777057931078891961812779344759773545454386563206780061575846239668823429258984530023964698166312356181980872365034784173873529695765503804871460653864275770784986767440709398184011632250301546266341646387812945478433494138610137699724259330636116409557943150492659072296530978870380418847892011985855876858456709929926346675494633349490472156853814213004850842600837056464851621803582945140522006952053563507188668094243489816280900232065273435971257072610134688629057319888926570209247140375346765849817602581462202678128688747500340160313172458436872611857003397678729805434493574331627257846801227292658506847269257088524076067727535107031288971148687261574415480716673940198432606267119468677152605729746342726978423427330713289631442773346391964266215797930664152212711103391022348488212791586727175216232876640967242343130261227374803539742863783342978632556856497873772103410206595007153891106205084217655819456643169049120440123790179617000387448617071944791182569571709588714438012520632310615247658046783088141882768403567743824778295819082615913345698337260687020722368149365625298460695966413589458377356650307919867793602356712275976699435323419563827536423910739954624000315224407074263718616666097774165178865673410047422944027278283303743429306058496578369131818369904861979708138862979065426437547613478135685113947575774138803386141050548140505020476986930870421361892086386863370533806016100266628297521894104987451800792030379366838918706704187512389157345004326030442324118482416068057020187165656569834117180059278502676370083464073982709440307470422996581629280943948092923999714765653981436129149275499886516626247605741607092014195398031099359101956286867441217388363810779383328361155315898699748289452884077360634552315651070460042220225697216116085610978612586105601467228188638944173288465105519169256832876874435993756491235940202584421571994372616453046145368729214855250133516808314849038696178857299549026841184167522232090808111469235026534485788368594573265822343917942831122247337104192970253963501259832567150800370261988860274052861076751881800836638821736826430063625900840453867282016033717970393626497886068853562902924661188790627983541919613445547919909973620881456662279449279931959442846610888706595858346545140075815941391849184953043476905656413326056222907178048524943197343440404004384987093280341402720348849975133312404027706215340595751757432434967851408762081340504821676518396521335224121725097154928196856466969358020162442001369240628533363170963664164371872298229731359910407348592141927300187626719473215658069891234031097721361330064520278818445830624479239562246075902063094132539407807620333562246528570928321189537679446271074393848618427088418199127931193082646865125706131719240096967230660060933186559949203784832552999214830009270412065733031824037363973346449700256808000685967888799978232993725760786629966572882003520907840431557943261125385007561519985715008906664738394817983921578853968745605969833581294674390025854510370639181662553296299878339496574462493361863523255283117203769234869738728279681926859081199390924829178920944533752199009752725977394166130856722965080030430744846673507565417411832804675951287891231299706391127556240981864003297353159940390043526326262538079126517671156303179138439617203789712147495652837222155031881502614229213303748656213450853870105902086168050821150362965578771629320278455232975689095722792284303325560368700879349656705474264158770485283142696400025285997130600016003347522880718946272724250246265854020625942056225681342150748649931581313842431591334306053042670433667576500460227195046006944321136641702443558997398818504744143553000560130027855686665146848231333362152485702040207227238133544320176641937379319548634355429216421181178211361895562038227242482863321959689909376180129306859414058768164592972151924348925721544490471261887072531859954325151730022307266292094699924482865866859684283215911289137593368436277843002438338416098262642227032951012300894547573768779823340609207583007059515103420282481208528354247046166330137197636267888351263755344603586141317220056561837530063717115272229699955140534139973493470327986622624309218145453661424003795489634668304983915967503209242810595949670024634496198417693118536163884352762218689235330753584975396848563450708906950529344494800367948982891143258131463815045893718549813920499454610484257504243766115892628509077580410507504798363758019311359835884221494199841438924222630694296800795761054170179729948707666452575965282988238313656661118357574657220160987931418939354515138182869712047193224746965858118824599790710447185654750412681609423488341146244747321268153097993348803920606982835365313619967449731088473332758789500347047776632064505265449857838951608126126118378340932103840743252189229865008415407123049126163604224781668975414663031905154159495377083710444262216220057068147570839279646987062680958421004557764831041190685469025998361478017276860217655491612104196729432152041210275142641483324501904391813545772733981417001618835068897997532354922988065052534836680305057247582061320243941427849705731251833706330308504122161208849872858912974893408191963006881394826146268395740938002513056326725959434023339597556795330347702124938042420751962588847518939051657002304572313679457578917011720693328060407861295797167595448203621284616922389856749879686427687174077491130898754179178313703655794327940069607130765349542544951776924187709577969076897127221274343420837206052693690530940995283503826915440406923293925100591511747114750187027178610060973866797975659365459064841089520993224075708216840361000133158931861765705320158386671005570265467911721989362015742045258734459877008128098872224605502919159085108087259170904795547643004940170653094552320223803797367683259134377685278925996380854797890094541639886011835321661586598855515504291275210251755575614604304809294526949881537932693467298476977512947725860298777440944027758025791902765418945678877001546337483415889190454248051858857608497526195603005614675627029809885012018367669732109720722680418533226496690257865847417317907189771803709480267278132561795147868109396647857555557216304405782344586299138154207048391057566100423255477778482013318535588371625041868899729356989230811570768379078334581041725093201096584278810444965224343722282363228711168326834967768932291275405890865828065017564519419669547961060606206120966295409652780634437704489883150255701668742789917641391852855417395898643386098929225464617874995161285589041862025658753577917747855466674743444949259713802267148980154614056997499611246052181252745374483770705632720253223825767079541401798459462316952915406824305443604632640039556175658981613241848286678657811252196640503073939032321101933871522936987208050707318336638040273965198047968042069107761990464909729504696646354978678233842868617531273280463254276473282103967589850822067835538473891298130767746154940572192435804892239268447806960093859882859996363872466747686446728122521546567844044442307129182474187959496800383601799238628796428614540652021938901328555265214450245848080380787522620690156345887027647437611864772335741387920504473594486072908768368826433604120480869891268436415496792463788812995392149273022952824706249682486427423637400035551389448692103511945559011808723435849272947238823411290227395485110290040166184425595725110399102400918265890056254178040808317410706403323643293279136405896208635557942990678063442414492635706647642758471100984198584374795670678527457129583438197651167841564602545087100007571509083762472328620027099274570371580089556663074675680138709564737448426476032453895128900493700184860543761221853540091864380719237202578111909197286895882313082108391927136915373715304200000524307551523969129667180561053391821263129597171617505706249579069588875108282461634015329261862133178914899354605572197692091985321353241092426058951419366181653135050849826495592325154586528107799069733587278092858078171723384651447137294971167390317418527984260668605001888405824694206521319354753920224524823653755204217065838000668992553552709791677307688643597214678865367762987999156887445613667181376781021496847604555207844232839616967388489971119800205883346311353347085036850861258321513928884391729985673739522726631121949097228101576681839127298429105811962895093176172514935326061668406983696756361981667306037191393335456371212271594863309367354297461853504457042349691031976120574663941077220604669089193482011635574346234482886777678087012615019002449488772876117177800610800456441549078849654685439563901818369542599331738829113607014635343270020922924355811237990490167762861844242650984085145899819413881811614350979664639090664470347047074226159376461425623478947005108063428756196227591568622943455386058524581214881422852401252579408437408514222126957706298314651389218168595073035358953877690839419762335464638163739685952341206758527220309643740355813669917724591545908053318351791470061917283474289363883167178392367911835631092950870639363623378929096158873629410493719030531409623629411725615452629976960074539885009768964869472218278469109371244021910217154692392280323139646507540267052103108986882091328178377068824394310090885283436595269377497411764403578679263769265275704876142051499697895302966914840327436185368029481181258190884535279086812211528523572487856333315744079553571747536448230451482796993819856495023663028597339947129730749446886057466172372784060623233841317822740493138128449649073454805031033860354674571993767916081938747530849568616333323645669145297876514690446837779086561356728534270080420443374442234751702185167156503198256273904206532175431630968077156737563675403136889874587753021430425225606028840733489613280224039692875405957958583037594097294787576308719143249848738598657931819041221211312106869653897550084763480397684859960108858620346472903484793979864774972771222437631030330381171946911225442006141078809655660491305251919613477505776380895062084747929924058576794918478087705560337867963351907015052329726954314332595138870283193378953425409063468471024559206099784203198938817852396929768601785639630677793690067887956896829904333026742151091827644879487462829603695635981777476236349958722615086240400876328221631429216902942826847306197260398715111285821152538174170733005049433702947887408646297628346291153829312949329758300550322133566123017888188574091399972249211431103773007933623300836144563781068545975468320551451796456428399227270621174512235166096293835538623554733234510753832607738024731987139876267343333051318104698009684862656599703928142431497397856519632313021986878331998673826615512219576529356825469094568368767199210629605471833095826995141349428733956113754501248048035964611918606132205319196284618970585549309771073331184565208155744696487437458500797550158573781584195837625609660415849528620978506175751606606639816944890550993886861899140739848339272382777663643768530141599089864925346278038071854425275973886168155434796178977612960675217905299522372813135193956735521452245885773291023154818445920275116475380187430936175253498989218737075584376682017436779472711009869427797707093571713380828085674815747709682153519612786069038659853572668863680287618831943008427206095196101929162208158945978676234121825994457771684991959815494740555435744751436489200666505928190268402670349204549227330364665072015605407384804635898948257173494762176076645789398253344117712117158980484490811966510819470868906043584094738805380999832404568257791426663750675048209789049785097754935560466258332567058619177045772676805643796252439977822336167397947566417363536699071946019366949563463722249200519225523009652688689428172791545712341682447448453249282146098933239040356318277018926255502301523598765995753957069934995656486916178933455088039080556790499933108674448485116800898110624169546830542335454745635071065018210572937379970321551788312452933196764968384624745703705673288948659732938050113707639818359431321149338770603673897312177061223919871104077379165211011056728647482364074990405397881967504252238007951116858713154003407892451875437555430587095414920824155862346963255255448721795849004150679814494058001772927212634426863844070162785128602274879244524494151486542127947069212221136984124449437056628852354732511012855861999988103797627560103973095181862594835095606973721530590301857931060921925721835624276992391794326062931817988751377733482315567798942979268607565128300548566869606208176427990361790284718323174446384986329329872190473802463065660551269963185862671929539860223405390867903660170818538416016868454058939905186709418169584593473877922703693003862581903205625194848258173705642196813951106841354529479829801252423540577531408019698213490176507316335829980484925472940389803518981858423850622118495727293426844397780072183764626723903605654231981654211629660197977357651161372314837841645513959755866704324043940367275625127260911209999238308070212138626814081091099828842816423487149524276895288434951546569316200144757135784061232872002327473092072268667181998443457648416393106367921112317299418042852480827755633916569696045875301632987974823441785049822466887687073154939021182937740538664614382252532415017702215362138719072949569455339794224411234314297522396967252531402460391886363631209434499586573002636120303324287488304957982416037948699674841696365019214048869024480543163103976070656617041108324892976342396678257996032117780659826461394143303429136675256751512035484265139407897632759799855992994344649244081968493135341594037216225577233234667656627986247212473003940206774042306107796888148880126362092314288629056330345331063090350315102166069309379793523358348165490797027564595462945379488589142674375126515201205975679803289710024894559432838364261142043552883556535276530163345479647163988592241759127187380846695055250423601143286848103910627104535169050195772371097626991819653109006325390678546504090446828602022605565626721496834978229644377562323913179301521269958291506469721285610737108850813394735016350344895048272097782429164802735390155856884326819576787689203050711507267531910550396163907148496479985781967734606646026111674178737544539788014566219786296763096596429757379085220772718134977094932979471199806878805047157010493950774420034202143573171426100875342275572382754906827575187823436595131457758506474537655966280213732599060994812925256794695210010484782645225449672591337116986615384053394040485610836540221378778254085805768121114438266018836942874340901030820461857856849071149593655867786898087238313847250960883636575128956762998176061601981623432500774123105398730037228376653395607039927910497630000578651212918296659854901748023811037507348888113548059562659152069648398779538624388750815656839125000021514997761048591363096877195214740041571146179779121656558329338792962914843082398859990456111420564360603887369526566133048672452375048617621643984425346530587106215833664490927796037302154259841792603630121179149399463297318534085597615232749888103306219115245668338922625528330481412022786138619663085600218071956602276348991468075885165569799309308366236063852921482784946724129702358823919977926437284624063465245098135332600620847359317571669310155399761296981831713091287202125853856699798843054854488447031879921434654050764861709121943731839701555206503576344408148234299359426021070737256143490989943797255577109575512804734797652489693679488013475736304374347775705032231148777735805110562130526459024871797694253634132478401009290576488631297554543173900015826002003063414403618817860884005219288532934963193342151098661748819367578663088733009457712480888960259383117957005225519240397549309041259028682006842061919717964848894534275205254745888024331024972307859332309146490592955214684277087900798138164669228558911625822052887458100459425217024747082247774328851866499404981001277328718456352649119899682347621067380223865392427037694011383993175052326407771044461768515537977547555257520444826229484037603441985937975249016694770913199529944524999629764015414202799299369223808042108924422281159041901887302906630482380592957791124817449199311906418481122559193025597458528214588573498987937738617491618265927471286817193710660893801009400718564991621208805982490362153892481860453954313619995077908181508130224087370317048725497943655186723612338929686783257548297761147341313935106102003823535503807432460224870327048391418109210837055690274629770415463362374923674087080847906214771024260463941952878091485470033412595929695923613157314871695585412484321495315180242533149339836641430618295194542443281380662835008198046716000585960453525492187619483210255288833004143753370532552298439459780282830290964082855816003711879896892360202221175150547621653136627989529516240527531787628007963691019940553670477784940036014773380716884710759926237548480342700782525449563332843814583565848204897930206468680376607418783695840442910939045233278990657441313346154736643341965541993087655148415559398841717890611684413756270999727977558565197210884205652096468853340728834347062304840068018312262595500520698225554903273856060214270535791938950086745613171029888069406013731521648443733722148870036793616603801427144458033846776811259133508699698083345084231823763648441008501040226052222494560713525616287298871765360207075962129816159816845679287439388013751035847782569865495651626724207207994723361866732953580959109949032763629016887359429054669491900962846874666002257276870221987301821569142889557887122768922966869066218681113265596859204440320516266684174749621181505750033822196957260192552076669430436185029018973689299678220454053619360353095930566919067745929039168434685227155540021959761023318539446533372979780949759439812710825496761642433711489067152595220996737192206850032483512645498600575903387037882058484757366921460974533676388393583361724575778357692339731147538284220825621781956032513572159185511168628926227617219934523090253428043262620221536401640841903238601805264908751486755587008581279244287784618374166242610574923341717516136544862946637754998233626978602149341025783243638417862709492043933909502754557388770015659973370672217953612536514854734180336964951874745429108251294860675223839928824314473125690300439375098627776256360249952987283252062252032860787950698190486160915638121414007275893228193148546544881498452771932238656470163826450219485970695053482109877516943197208560153973856344191633049700212739294696669672949450591640804107365183042572018021147919645209413777431193605172622370945974358886131351975027294934748802169699824949880154320949167160279257829226344023067883393289297687530446192939763880105722988097439206678979003384416855647438465118991442060495586031893889591928450046798837218795586773893819739697186029723731264937689371397975477888043951500425510865309214436091713646442815078883455751463607573302904193302542534809014550792088391284124902345683964124636298636038694151256336172414104947554412853889005084948877992027340340331478610350427137251088950859809416288107951880453726612578098818423066309570694488996366159976517587425707013338314467415182803818865108514713813336114985962348584172062572338290746579689713250608652517534418523970709292128952172598054198932988687556479637842314140353751111505679088950797237102739664599800987787901300552066313973517265570287852074235527929945509549377261166282071868354591591825149174553645827607363795973796186065106119571186929056541355508524168270198191290782908369171893248133030172196436577337826506761193795003888790410740904964730330694308246937744272201438068598650220297390896103973451393021013933864303983913715382654958849754194313180992655454846295044207472618926137991245064465981544228656833235861051069692176770300142451331992670290235782632826004760307885731081264798259197857843061706404617494775790993492524691252675098412711201008742505058365209615274726825188733563740604380261292568862976205088869752041102724514802732465240751229446838252285176433859642455784768337553896724491103525840979648506964265195956649946113265006985527549848029720831916630210269341791655161890517868723309336426274115089686196105043685594819367986630565014933462129893530930689962081684673030774617462480247244175965394586419030543167661294610176859165443988488780172029549171737832188194578534983778488614145635977184680278553870000571007188302494244757661585363487358558144506755349544820960422277489978738193441764501402266237770665865695952720567025702890167348844195070977139730208598929678795145257994654481935085595158831969672093736575563845758225529554475542590523551070770923390764844885317197662047026967252369126130364691446353358140441927821347400223821924654112871648261280419741503388331494514153931519577300034686338274429213343824434372827575549074125277673040074844133871405206201378938783228881522095383016063940761704645277128530943688439515960927131081060898214458319247822109636847156735119343268879860872782273905636545637523274367137837300867712928401843273631710698594734799938279244547083804575351807546351458475666989332537610326648639833024971661136520918300021505007397034727750469930865747490191687073761032315843259727602205706908816065978797393085020840243347119514164388506794757189974799073612725685777925911411478080990405167205821086093445729387686902170693572064366194560847205370542989665948032577377073360218259116681792218499889731394101986577313937508985630536876670157384738137812688264708770860326670529641869247696336210761987675137751140330082065039231637205880496493166458577545155673527006619895361334929920939644971296139481795938953365906380010169666623433102917435449774497569659741014281671494597368167204481546380909674766388065934754998023202868689028097808725375019379542905938392045360180421872754291644447530226371965636804430324427066315484595270446253326212575871830642375755335505262930021371882960415610207519173196915847806457831317654944024760223469743752537109666597664438007376027066676984869335487244053871603770097488675215714804061143128869349286260834748720753620665587777948644313287595571899067290618022284600507881281857098931648879406403449897797629120005764306484107834656473026909535566856659454198305620879141052394385920531037553088439654715530290240978241126968175648036083850151770921908170266244428977310676301142085644267694960558421245452424569429672302928979627077513067077899826069345951570965584007924276206614254203533416994261903085095772513884584653417987061073543421672202487414113199212472425253358648029690996908629477798123017797463493280426561738104266970598102281059339405453059362674325941008084994964938233765732938795496194508197887324997639576579387226154966677962262441537487905576497109552179422147834323903355011119245556610535699642481031581153056481925950995401220814807781950093027890440214590078305408385865167697532499957573615300026482915454339772479942718258909566169179836752539252612796010943169685237010976989362221389021766113210556070397164268734572036731304158424476527125130025385955727818582808841826558752341012570327401749992738280338164179340838440481298753792987346999390885904376089125679473023271267586369189304530686226198632798876203028234922570988047939342236760287959534798923561186990985102328957273751339476990663716151413731053693495012408676624292697835616751928481848179116573027086643546228502322097178794050973191017926748994633215266677625665280695316114221034400148361370966431856259555369752161390926226940720506965925759332098590579009375940582367239938418046435434854388183458904252059057123708592536173030655675201465381380204024951994810532377966051637711390049949815082861283265825676004070709786507899962323101063559522574664481494200592050038723440511551699674203244511410744473907604214520105660167787177825659287229850825385981803901630387645030067628249124496448554484419600894934034761247545665406801283803536636926212526770563282435822185494810303227026488537493325783014749361654063044029536940199391537919199083477179861004716076118819078776810791935583710084645429903719422177017300225660263579128682258725994819895029865204175244488018689745054131015763287631038487773134123899994959358582964857787516395417639656839054908644247742300598534202517260691399914060490851830423925475090114240667457466534009301441015607225634946650641963290765918787325744883748343321089119316996588824961618323906167257300639612660413058136680890923389908241412183403815002447117914118716910436522913316813566169136770868693366915335292371449688245059620959111719734761146878612786062190157901898831144960866006701179983754303667019729053415490904806512952654908765661672242868676688059953646835991585535590793217633037125436345384099492870909652335612585135392267989608267355374240074498808792466096927434113622783365925730713545570026052461344333344052359565429174691834849658111354283527439213811281946881691699064020587059275274743468316230422739971425248883402038612298190368037758448736181214875611086618281751748169408214233336007834778709423816212797001347126952172673905184411982965046889859758516003397074028858049404914287925308201816107827003338077979800290565034153816676002955350253634819333332091558658189976445145300730623311538963407508160052395617643675010543961962303154070938094463594590683724900437318240953501362975367667284853829386678983435317240679096659527398629210273600121049524705653503526713375890117992328772865726902911820404442016697598841024834107829383454605543862043028816350419435397999995755110665858189497889263558988006463014308743818765369755514997049228350816803530684587169834907220801033950889254909003704503217106542591839501865041465514301893910508540440601885822927455553768741133560169870274130445045884070911659490550903787333424994252174280447936997379495702718557317133791755952514896601873031123452703042739225624598659013784100270883105219604720922122934406884780697812354004306835958032487905593097530859598586623970065165245302786344126168844525593555879869089437950756978689537360949261161506270658324425043048667450057252467738398852120469669232713513945035773158256220227367004453644802485592890003770593771764348049827136569416312006527370936729812679357102850814361539544001664555220168840550392977165577174472621748082399718515307706391247358824920490001618647373778812773719416101609097296687871520876450217237982146619135811604739046956126354055921896338090002177711066633636249461872996373333206640238926451990229665983057911057521123849937882081262710491881229891236648129215130982679004307907371273221776416840706443583391461138445047585203158709620409396012551864373922459625265221004526733285803878283077686861710573780129651439970528806431237738163761515116640617923705448237672538116069170266009580165305713136010531309755165455754451773143157982619511506052924098898328382361622349028439686268000529835795251704025139619442414563900691022359143684711641569037784246025663692916166062255325887751208090084879867157169190909502541650355212750287736546655922511541816909114866054943424871433344389948317178568598596376011767075978916811067229565044723431920488358948752462537863064047779471261473716028492025268511904413792764992734168673562705320209418746258526597427750744742724856888770422663182009126582346101019436755590158433501258529852015614337658055076914815235273903505188728231672963912329526530669212854005061212153861396464499110577017790663402992134559147432253076999845679154746921988062676202524840029901092059034918097156622664662239729035101440534392128183618207839704000705536117488816760280460579801371376677365317258532598093361663700668985217498710890362104007139852378377296542749856491017366502736044132110256171766231338538481322366647466571584420786459827334961629659219383520948339755352537353628997469035887442575209418557120373742292818421171738889539116817424748313664055243227321198944478513357135333737786367305310876958872528571891372927295815594523267975352371846924135605300288169079862108401866733325263195909555327803831774317771938523676660158147747950350984570188049192754906296383317665217402672222928320225531244530096913946082474558537233283424914749943696801943991824822580663211069012100767413587892270833714072490165383637058423609714679336811998309120845353663107724132296252147325565244729849121741626064722796276252118874459607219032453324326697075550623157884976094060040010984258786194847441719377627973215420819505352619693357371303838706030117434116881311969144855085475123061590210630773320378836368961023932987037543193691832820952071700129921959158288991775529308769169784840613697770912233368127484259120953118103576324660067119764184753443520901830459110072086296702558018899238499584460964397796352328176962105859491751235894976418954847207988909906211845993877829193807085453919365762463589556161050154441572825030848128364727560873359084969238478408190996426145712380119488703964738711827102672833796309829938295785925887319176400803557754193832699424657417576561689638872961908254796482609447429915430451081544971217070769681262507268467483016058882525499989649883645165216080172300205614816582749570192338161376182013154366590358783346933272318800846164300123670319569481112334412947667024881195179589041108527907496188062288685080087622855754078024110110281405801259473993040347585123384316792354298631099894371110403155415381438177658134939955912475217855869629903839406481132747075189288636129098087966779336830439297493034224775910121423916850293083599577062372730079245999633598236390080927182853249381365560486155623241074549948402798373773660931655743277043995184285235544319684464496502692799285573389937552560195465610183371064148211139010067444271928340398771138623051627606551328941575300110736874006703111552597544711068819174900656238177522320079231284876546230923972925212534609220944107724645727269952058189993114973273980977448512033929771419775133635653799684636131889466270793578026729315974709878514096715069158734678769853662772913721556951782107463210570091642709887669371647053181288434006069929125725268963058679525923475685264365531784548509930854968872052919109633532982081233976799492223858013059543505227296775715758624235215671599332506463285804981750147695912455026215870499270262876709158976985448525390324668825157247557282059094693178907133849432360464606934061832532760317591430800608463690471819361162730596374997560058317276674150159106026998746226339119646436481620903185102476838960224836804142211429150669705665777784691163471311941134961506740582710027061735147311786616929851689223163662648102011632177438066658311826084807396752200314774247846786330781922101877937140048779025845749829298129730617257310286605344785102505893398249002399400496765978158647554832770670483087791490253518607549405311997392334157941006202089935970032071929327621201744542526270117211029483996008669220198108838169432957078648249892092244765166620723559142929018026359263307654172773169123346245864904232431898085378801511984910695127906605770454766129229074588588572507768966616379672675997410850081811509022082930291028433140926742206915816846189629350385191111707679780257291709900089171387328216651238386116816199359409442704339289857148647876272412464704271638616953693233058153323329701281208248950480592301546617682390271034222220888366439925735788518553318775735143861652893938030754886300380563167129083748532990291896327570841376526750306149003173595831140846092565163278984979807745063806624080050086453685809105606764657510723583395340433795885431823411909677843896139851461868226207690094274671413443791032702149560314787433104436579165458322147153043892292164349350633532396344841986746621223211380355203470360127137364222435929813491129695804027349970861246187921218419357648177358049382882361584881387037559544821497177618918153623267298254121265486127693359650838426262577869911626394134128680905535650088281571077782856957113266211013762857592055676851530534563880141253660302751654031650001659251151723069146026377579827505519495252181499322117062835900760960512986186728224271587944377664335588374865393132944424452431668261523506778928899767690301172794360670614090228580696341358693981822211685069633665173699745420507605045928253880296396758463973768287898816615969867123468404875430444795212517768801491707084942994239248013679890368118573246801606369121143582763025526401009866166488687986211223290613674521296885383702301249262214009211018231072518321701924487033302672618341388704690372967756863421376344421856418248735481542571433206706505543135539811707249429188712382616320368766029142207362187626063239350117410008064709098104073144214452609151494290264917043318002509492245577963399722826047026599506713216999289217465156441073464140664638776959624183025372649257847464636640433714260366581073310955415384845307949587590300226526273179703447070452493276127948188254688497753574069324867706592273881844679290932720686662700473955688798862130157887211714237871241771913555305769188780035853989720634472779870975341575619155911308740466860267610039375760732906055386681941736893902675799996932892878332764221999998966959511883218581183547903845387528664482181333205382329392382954693679295317148711294240520005239082964303189046728050108573771864153828077618861356942595461407964983170393306465647983365023995938330988992332486026095026357694020201697509383783855531351337667116843255837794370329971153492045361527891895852657802970523991123014885772207887208628091746408137153762626588760000737905891970072565474485687736741478351040002216127417200642253798931735293146787563142335772659541954992380359097198583195851542386277992530896331615958713245779568350961204257913293603308576831591109127734345930752635826594176466152827987923710778957935024885576031316569710618705661519751297799241576848758975371814378952968454241027510098947164095748070692364752932567746195183095737501993332248672193526300856008928262173448575930492111275754326656326122648227287455916610124271998896880442962034254228318020752200194014572330661290731344497455626566495267157088061181615848267266295270363293994301075481439505781598333909397099902648029334556060307499342542382605880477903081758824955172315435685351585748574835525699233669509870636699922136982485025604755298921295220319650392482118357977082205985760169301148966756970677582413908336868857266601877132525269693172007364675415170011477257378080174732374852437991438229261943129173650284071973188451505288657386600703088316217423206632509003568513987687648460784225447920820166037890011568102795515274527196723076217607643947498559990455923491261348736065113352345309183848389938829267406090913765008669800113295454355103076713892735883308803347825289637332172549751831782131169108750151324744463063499561123821321088183695808124793150432645367070357248406656561439430896171326425950247302148609879902026713920539297642805761926052418679178763454430927432797230879189775251474588510637396565746382040980201119169395855783976143161638549924579917023213953119776886382136799482487675014232750471204299571324017026936398029739824538355491648716311471488854715457959052661112652873967196185656415883051662411643332863051916542344220638711761174929816749081627528895479282512294482943234834717278684465943335579887364328565843275832377385434087748379774120056975240208024968844735202176007629162070379483879358807345597735449149896845100694518848803878873689772118891631278026137218627967567459445125940526572430361246877922370319523628748661393066628562751653995302535211956782770579995205255824412447856389579390616778978086977737064084024717866405816019133762804707356415387641689501887788357655011316471214271061399097432177432382682518193297057731201302316850617241557443320553434405863465504319305479267405468637185727160480752442162368344868913833374427815908507558556351899585449059289303863247330208647002310398157080927027051439069866768431987955852614193672967060616208531266290699485269701617156696830178918201987482182585235330052544507495396255601744326116707278136219972683973043143017202355696386076695033506342775985539781394673782462358027177379655752691734505210768509258881622313868576196574132114915629486875009503790262734211456000773158540752417890034190197744888925172215325703041660927109587195924479280633398237729985563485599128735055435242342141165538656302281300556097307105479077612246892133989585448431793067704168614291384484809878169903496331908983112913174635088745884478898028910921994164781978251881604004493691506908957771726409584191987406681402487131122154921533321304564282991925309076596192813454514872939030936866507434286259690163285421451671220619660345822499697040138839455633168313718275239204391821390532770044068807591688702073450123899240837356009669111437486572527331880212843893369453851072430877092169777727589356504422459078549570908256152327453316120669827942213434771453162919868290166201928575349261249168891088585581911659977215593000417013035536133138556823392599947444672367350368226363597934446188350000912328203793372388308052060219522350976345162256362674947661701884911846070238691594928948782250314268584629064800438693157538565675212566595723682747204243288332873168554825538354083425282781749939064422658113602392555747751364526085679579227577454283915821004717138212255273847005079691691595721148960373413488686654773696103241781103583571928596146223877838555921318932619358479817865716618918027685765774695110489090204049497265330468548926822390011056082798471162746444329981180654581798831798348074320593833584900450685499034351094295523762632439182726919067581646040903502047756485749542922002501169479097751345495153793822167389943502152609571834347761500944585011940469706268500728327563787865117903131249528177914371253595260390339152968539412641610060760606947842635092557751656431651900135328426075016545048091542413305702532709366040033557170663264230457224628860493344381143260703331585929104723660235349464123131873311798364638378391567755220500433390863748584767911964711445422835059724601430186960567256731247507390357682571162061028572471802333979796758022555071611611577757547750204901247430617472507273330924093821376101036104329223111422713123254894213618055112884391486111884379798355076529049436064088939476518035873918199502464846272978832432898452200108002383543196426601233062255005610688764287207114460519728887635421962833924892804211584751442349553099520287933051504793856714924037006310277795382439447028033760819737354152318928997751107473006542084599165035630992668021522180661392010953267102071959090599889163028877981099649931578143061079355132799411216292477698780498476261742607702546396455979395705067927145346813224463495725032960089617480574637940827862932352588489253932735527138378742980668024327684221088702529637597346027560198481465458058694714586283980200773347080070389083611697516230606435383991734725934895837465676464821102741899811647657583251471605204859201597893618847429694495116961970797736782105254810640473608713387704568355547217725326696720395986221551873866241937714082654566007759842090366757250169137881758029292317114485327882518817835618019239610174777502410095446759649469062049741382446178582118272690247202872650826307058979495110764120134292060588644054480905976788001010566206388921632253961543837571800840885815465152758564464602581597566693999998006169944870902846536643341981415811030528555840780653057106551040083761586802280328015476709134024528220823423566515935359124664871709717109464831469927969546873892864146146303436154004208355083723339847017051980900930948186829377100747724056740262581255702287031526726037702276621985992081891172811154452040267191462865229990422238610050514379159858354268039692643768320003447563018794646071280682996155384283172123291955808742442181135657420584493204484736238112617081452003837952199911245807062518334593567651035906223703026088896190912542262456439443311083682703152337103388105320871096327835363250513926433506077866776561915068267494943776805340530607485680252408939240796623394018288388806827169593523447367054744461781571056076054008331323054488696275058333827294571380606222819718466244144278417524459603864408329995623262252323834434080145808512992824575064472088449502720413267026051716113800089431664761890154971274606104142815209752895559627603584808540889376262105834410107933747627394597216676056918742810027128078259450542751661440665965286826477487441648245751929493391153909749590998427063388814547104579046150420709777070606482139940062449941638468508116363195270941524860697875185846222267378707983452844754498078046309494343083006927127403638839943680748273917692260715902896673284884304402931993145263948186913676082174516701686213501331065221190963188387279757062790508513552003937474104802987939759859748695611095463291693434908970077276924506122738618674594196711062898125327996063897301941610262483955657213845125099790386136344870829442393834070237444558225517066236175117659540557831261065280360973070745277176698138671434970203086583112148151972327267431599381322368682990653370413099920688872922812086862257549523754331513771033183186255289297270664033563715439991705180580299668538338530961404487119952405557110530496789024396412295699130295893232497016705128529321505671186759347500101193421243429894447529608141222232996201549693010409812034818258881991244546110183054766813593403190343162554445132653657157795965069033398811835161532132212208946862890693606610327510730153650333362307004273898526311727496194391602297530910862099193042678863268239957743446968625515208049047540506057838218853217306816844212156263746888773988054929552632359881715550979590460698310080750308951048047305390928509027157290662593481123916516102095882871199675217757870835877919143157750219346525411493193385699799914125310492419253338521077789762995032073764726126762891381474287094693456213371434214294827437983708757865155751662797836577603397192901305780674223006820600624866410796984413002225377936443209337109889979837053014763297309903194365472067164560837706143410656785364189329587091234221071387321590661249546567443122660310951852573887237485140967684419543203906064213680261586356898992066224713496492099432538040906415851488601039857305948901143541127400158198235229160850082595536278468656854864334303936793636071372995991832406961067118057889715491188006427449424193050092785616153745457750027827661139125675423629371300057779171381331958183276921022612346679003474365908801698041474187035737545092037884957312318966496130344654196654616398031859302192679454787404818974254776429780160080820004110497053138845096571822616934062262320679777814126518086455268223524806687129062945958115397664046982689743123971086814581526008770653443059347664031950166898629221601578769583419145156880209907305780411605745748099071116216274182376241296224067942860899679120268635859716695608518628424164385244454794444612896259541134638809361632824389765767944561862394585802087961028578386047897813303740065487525870386867963340518149658778080428689900838976279798447387779648610051857657204572451854645435141376382164841907363243753338409196473179305687395708139145725013050369369763602009123308191667977982356174369845501348017210580960170589493294879341111155906338205085941960609258906591665584183851742094040362770245936990754165462035321635602034455846504229806382374498801072141792246187209081593609193703773303359665628039154439263211596562963230494710832052630891560641941524408273082918550576292202350307516154839893189506127622859606241704951701337980819299355988718028110144852489155478685525754774988327527273450923582175347712846780912804974474127270786151818222793255058144138623753049655797888760731951784365594611154901258941494487083709876087035084230285417150541718458179048973263114226129880863537600485948308267470767362750760527207766495255253371083184875858230630884858158098782074384665596785366730992858024320811560098697710053862777934061623910828402227041028488342684477300969992822634718298907574366251291034726873133928304949579345576362984654639740036492864490104790750616085600553952595510594658631804987195866408597556023423944117545794603181487087055658881710033199625368628026507365886314981737602119262442642367961314139249519246327764426847328331939322469874067759290286646376821925380733141998025126749492948322242769439546168686084151982186721185617666888418734128826711953098810296523912374896231115299709180331803207579036870634407086404351232994412697209205566257782612513398869954042610639026708566466445651653800667255476763024919862882082661092775930528636760464553934505721263982471097942735723541751738026362425807933781067009932394727330759138081702024727568575183607853089874235228384409956459100832098580082003230668981165374367273334823711181448403792895439455200167171316174302449125518894774128033482934849901304711056496518948685114490085350083665342227114396170527869930677434501911204110345374084601757450651948004091249603013596864910759983153571475729409648507926739379749495407997699491766145238926129038236204154969226659748511714479197152080253518442773494833554407432939207361602840969111742845489881554027133286391845053022994281905836528282813933812022544772323550939884822469638414366469278328203529439466557481656597126309435995225736249854776175097902705163434442545036200852776064299965385170808366932891968482409428106674000989979299356049962044656613226947958241777200224283729318343264336171467725030591953535982632719257234163652731141989250478214188738982231019696161734256968782609975232922143069330978096258326292218133841942916003225393588747527215363320213925279606479345257191164964712434314496451045933724102598451548818135815546119543131311338122008714863087002951966300552513122010334306501339744797943729033365189184184158671233514387732932094377083106010951300457699323391402434095778027011679047863366798024290820013872449096439804120782521190457510918594749011638579951396947536804675821219874323002337282724453614610022254198425188991855800301916997488305108480167842656443710856622525736818538890840101734843297973691763888040101026160410562240259578240842117611032291597933811624296958122590054430165140756453597844760898495429591155723085099932324553644468906366749192798830924239789406145449475243891426287686291135466430650329102095706694685660214326045771959294213693197664885485241204687394339465770235572252350276674338924697014195595834398379531720839749452034753004123700390603743321998532076783075112011764821240161598513969035724936483707560180628565639468105822483291573297060493882491999210340136149190118874087943179574184834328098149132633148113078556078489556352510894494545426399772031072414137965188013580662394494511841193943017928350442792484115318189505131724210618172456111499418122598027408531177538216910279005733438163332621979091640520112761890013853025304797204196591407394731621953918296352579040169094293876832593727644713652145119790548272423272169542416734434878978204797604575133743587804316025531466810818287865127785196529905549490347095513537122590074320972238244484385496853921457828026294641941689752879841310538675877554110558834783893485598894075313624050020324306296141112303045361637711822188499352371794372927933205357860439398502023505960302913153611143750865489222743147952840240711829288329735367130891377517037195897879710451161033764502584254473772094476277918102960296575853799478967812747356704176743962044433195990352000772652202374567105155269673275064963610900224902690725970546643726339739591366478885396613243794109650143926159707929984008056993075861415083793796749710708339656887712903305363089131861576157541295223943544597808200588463881264522055565656500998918414778166566522021228476026384290809502751311597456443724383386726597088568467647007178716596862912926395441004782566602081653908591030712915310300358022673822187515489256152612080073308452792089348291015801419294993892676801984046721975471565956144616319699691488466547187870906336347703207767926260527381684309872776464588032595014040126336075532208946433507491302900068939108396115747384624656707347072332243057357289157624103696498723575357162857877825432618072252720406151572140467356661330580372038658071011556790392789766608514577673615734285449727095788686187818531086539498300500654488844465757449938234692787904107307577297908376388195698189010836401197580087951418226244059983474726095326663396812972031882082323612522541657848578974287760169309364674124172784827275729650644409631190441737761115312112218112411691448809195094573990819846801467194555543573319512982808881747203407880312558916327048782795453174029659506596941546058768721965788590594978145894606329821627800946116976120311316860845512106640709742997425572850880569918843615649533914072258240254615212869998071232760913270156176646063737079432944797854848721122550046307062284324352073562701464959269264371903357625218517125427540586421608017778094538048950461580890628434402163280821926117054863294572234558416687482940487093416624052687432131960247211374119227476315405477144218760341862575318557623246654459876623812588722047452236423304979156009825274500359458981607394789778526920963325542751877125420526718410767419245653954900396898232588150544938227723457640509175305359342791936567985677960624798147050737492994331954826597637322099185438694498652827491791903183333428011329047271972726395598958458598776629617885794859943691651708919875326650684998683698942094713417228771728582376550238934244859082829846166378479233932132081838750385164248136804433408639123415246552477960480164498892993769041167725234163806858090114867049830779022569253332025487625462239651996817778313269583542656101635806686691533543244809499649566291924239611628000332832276573980219712931333311233388598580748704636787494225065425149066515438903992054768191911172822117310104797577391247771136271839890031677029297021672941792988293862552347581449489535222229414607197806353839755282916385507542059168509274564403728070055512952131297122446205789914666076152085610066900453987315374235847146612946953406836856266009522479942353016075448414253908059892909126247489404495652510433557629172028233973886630431791505295076769028302485560738209206780304834661460988312118208579737613518823196748692805622866802873240937609017993999335806548027563374316781899708169431318478869252007104110847925088376451421936326319035049813170610989517662023158119931763157476045888115517305895412000769497193558463047895973184760793573563636863532202747720201666218084291774407882948594265584666026736937868468258465410353467797222179875800216624279923406423840995144115287944528040106703910628409071864934668982467362482663562544334319346030819499324915090970208195517913329995631753608783493369688707484798640814054799429347132514155031539697269446951390037173349760768848003482230715566407903863224581960981753630158739763521715184103439917488748402862339806615090706773262646508589872638514398117855213305973314099631993092479605924566614473830339973807702913487943827658785790678681842051319947735094411773063000658133983375878283701809190186227833583685910816748306763636936718345259224842250374188979316137065149406443913950762213479817862851886773490695939966918676085951885271818872394628960713009847926392438095416409915067291772066413340131703266022707634593868762080813938161679857789544739608070645958490444941815329380462938699585234133903356559331601013835644963278060163891446010393924035378741706904134461788371750715423089381296976861556901049540999028437640217880896379577073371923193139734542780029035958380249858572470134305555252904655138122223414952930052810651882835209150372867582932127907304680306494880803971684051290830027832002104463678136128788091977673814523757721929855512795379941063995705535543172873647458500861312753034781682182329157142865193938322981014809189174030301864008013971331176402616218212409607694559020744149878789152699122509162748558092069439205806201250354454086315428523752835342052407527925802443737488263947753985073877590723284445254478836323716444573947166907563781098524998254453333959285682033969004684910665244305175712295433163408008992413954841347295627971061330302243834860219863935460741263742171964361871177308006334401497651302689508918760032771754803316239115157013981003500861773110062501111297704798257317700176438176437271376517038042878740477559228663850189412830030001358643337216509496247513241536492425896113825872268447145042969166049725044449428826661531948818093108679952896225991079292265705634952545651957987091170967169112711976408789961099534427592719916703183869649523494444876855478183770768053491381384859962919321693456382345901594493672493753317572390825561452274550472175193548163540515213738134053805180753478907536154060906442960065126854739015844274044845390059537851882529087507106310976209634904081752666272882208134562221002628010655639279106641629004240221985914892299811823411066367056731017596161035506759321931902002133153003017830597445595365364619395276651694461468704445865738869696036319736778408040073145394397734753700263076625233914538688589541784898392317857951796381765823610570781054308378188607400583918576693903167017513092453331885202998725486551454616672076150483408542679637266327906163198620608850228109478254364891194563271749037885298997987988621124528359234949767069231941859608093764663757711352069966312435835366107898115543630278672470626135482337925317557377049019354796742758755119949062031426248140316790512202556546779938607946779565588516314859484357725545378639742866240517929113427118138421546312843077179785559706726426607551475976223853471250192620686297196048287425595556934631407526834685359251578039618961246800010694789223402901054304205874741996829567976177663875949916730728462311588224674547181695861324935028206763958112854650964938171696400819652422959640877726723331664087324480683611367700541285203942265579317598597197589534411126007486032762779547536869138609129609288869427389815908020398400099992617713482820280095787087876885675624910564420700439100338901336245913731443166313663038586186091542286724131066695972882804594189688320943525968431473262761690303915773265558774718636833612417548352077182324878663001641688585117281971152787560078519139584112207274195702673723710161798887311570680159479886255002413966479265493550471896505430106920886625017266672122081488772393121837970458280458182386346879803756491949196696107965130578334711192183998499309073133919616571601820178909465529520366689835532012750296301328461191387535713328823506550056769000882974484628248262469823168165541300705324271979400006484980318244402190997092467232805559111954679502823955098788225865589139754690814542776382244018174827430192743199634370629108104528537182613654549065009859123792933117588031980281459607602020414483443418253055915315000409228172421714763319828685012963950043565507254308967025753009107957861982479662510872963602329781558178023394932365940253690935166840166603376999821442194831564031506422511916984914452392372788003833683899380676760095178796883425099156300058835203109706064810492868306961829880822270074756246483249569696618834806335811449869563177220003338823688262844945500952462383122137206155423645297919063166777388696553138753174859399783489684834150127138262537831028198544434166286602361369361422822193961761514100094333200618604443342575009726238727657105706448277180877217352148991130085622982127368498686881799316574794543357937718079226836381423859614684491437705583356642618712365429758481910989447727019681046630537169206435179705827839828189900353204336248800899766163247220685110671136425098046510522368656987338890616672963832260975487748222433842779964649898107482433268957674715551113651109523065219584639145365550559560866781266312502213960431581698244315853796549046211854824176684976301039969860140149815754472108269462389317526293334754945940060258037260067780693123059618765973150747745516675612882786365100761911054723401888239074245826968072707619146869223462000305188036961054417807731853321604678605386827463165585672901312943325469154100859328443088497496413395456556958260357243166421098481326458566221542534405181332483385491702692437449305359649704440427134371706060154391478851573134009394905964704459636490012469972534395186845091167360201354319747243589481440776800689024185275032626686153088729394367620553636541583946617608473116972301778655923367363829462146341126119631791641722711311396860416716713399972891206781448669488968227832841037127063238407335217417176773949714065259762684863095664300526582092653062342966209298649488632399793816034478782191481344267363120310120179709558604316124900872451792999025041943633002423591354354157368145422283117407530714808584107574525630773850739606173824717648043989865395381312655325620003554677742794255410322444013590504062370050090256343897658751809532937196024020117118479570039523510967599666261044247370890493378702470363159654642079841621407820052875179119823273044088313762330409588140276419958879153546229951464683847625005566224043987236304335470294961012196731264517143770947593786660246680937083234881682099543239427800572477145211792754956029455542469902353696102249744338746599261637786790905148216038660763631486282466417882231085089696129903844947570009306697010121323478007923048062780051574130762240893537970850674633817914518638481316608044903594738717988176275922133080227225730310472817643873096979556186613197677389502984911669119884212588594721486441871816854189835103278705430745469759009953631136931314796756137510304269880592360859544230666778083727516355418077986994645957152851930390513945458418338276497234952489067452465000041561187782686203520308124596504955095214274491894672740718566831580592632674650443178692778427775478931390047195649647785881486388579228112816080941091086565025008351735314554917668778088555794827110393400020856984816954247803302311391211936993122539919543900640439814383416522745315304767728554255840444581289841608482782338732959866910490787042638787998183467389805385991819219199752983090149981387429449350267381502416380487565180209822394993032133052423521519414262210422741637095492438897438893971046662473584279440874704251008255731625781840643390108004656437975042508548079326733297989563695278061188955824428752736649603711604408740390446467773040795789777606478428156301912318884563427125208790306734205920185319166512543438305119405254010974177972980533190564019823967230498541351869395848133470517356979314521879322601979181394069498158727961155282832160046988866690334973451200815440523237640724584431529514567254856327281248845107849849136461636785956463631771725631130532879269146478189864912198813527618355864261413796401403530850668809843525229819908774426646704519867114683982740751790344675252870063103657116446516375005812596170679712830728274262580155947458089681725073408276264483831125457931920888470892937695583752954724168797794936578626262963325328894637873795615675349301333894241117646216536441764549670249382765629726783022954414363857347507447477768912321415788263033539738074543814865137116645186795754476848867379291827094065313144959835048827152860690161367933177435488953879222744030022607212367206536747731369750262637322897771578395674914648638704250359651696643593719180487135232972872260876608403805300266212155637303092399765081758200565052028536737483358509489085531989996291354389190026909589952286297149901982472747396594484788259352673426873800074915729375550885385306050045191724742513215194865769588377128852613744005986076048495566852474268063515130299761142226806563772164629923540209692400267068581614403667249565118755656268000890526898175596610145852004029727978330011850700126019210006600509168634756991405323432754917393404361239381269515742058283798753451845511070612985769938720597665863242454862826018966579725994864453134093248805097455838436817951077858125817215060490026089357736833420732028652362139694353419322145514065919207318932218972096831782587774772945344916321160325912667625351694356559410665050368092874096774646412849399293835704510417702953201288484622204579559786775853867659048708373343526749041713061629655988451792449296813558220334262512604974549116043908141242162103307097727254675412979198185448966276569389648873998185521844484411175880889775780998534266211271868729936539198591501436175404553558160468899315257319163373912333418078507234234106032066868556132228753986391774386282199483413301465733231155676597933708122054279710424942608193122935984444704774612130865797694619651318903093479531431415995876376604721972228147127129805829956419157426227909637201480832799654432859366401306685517709685760816112287970303867759772881961767881420925159756818176365653643581708503264602559300194420290997670098521278669308774723966852643382229294455490641362845936317133893924889904837308347635911804599233124221527573650755195656799200530361020909848759485245955650019828411603906547252336488369142704648586675418242755378955123052162389929517239226772371513227648424395128248372574615035833627444355050485871920639489129814865228582028072208467763688594085561641994242140492813485573949689219823098346507300049008860349009139226319500040481895454985163926730479313093129575158691960358408483862263275019068793996096313645515391816210279865951637542773766436438504070705283698802044128514176460786868450211724610988356557067530978009971377622975950499446410774804851535958664866359340437747771998038801161228020286651146100541655871901036697045054340388790060788620349615928598830176934497086530119669479647526376887023421785769470524267475402210995698392572386600975428834449971881750952100639223129552803367817837453396098527453207443294381300495536101408554276758057040225830124766435748208349304036311995895132357937941822387995172434355458821696440950780195452424248236457954329435705004274743735809485927665308135219477227005555597244948918866239992519603821916929242302795681002525545828902060395726880283969431664928239374713441216996065025699367983894543244338123512488776516321204954854264228398963190790326680238173998328104261825969267170186181400058436460885133841980915721833928361643876107358292451512834512196987703527288970069117927282636237401903061682712310905636319092453959302396483383037989868105411853661131588349444598758639804489139420018685861285470702823422926186327706569651429212466736195844762659617856028432357418256709300763820197024481618008037840873045287909676311126154571054518156912843530791535507640231124106195147423509875127707454763594269014406342681891032822435553894298426231452805682265793678014403332170073839424805868840587289025023173179797504488944197022267902152705829972357470764550386202986271147908172422296937455704167080521793249550281140423147259572828055826230977287986970100218561576699341170417282935218645263268363194131314024367050483431539281311417873219755224837632296938125940756996246562973185855331896399464016674389230636473485677303562282687712385704595389574588053711011918572081109852681938544152422203019754663553112363689375645882160139421036589212929793946192939530810593178360740657495612307678377170949244304526278747605312307810579502542314077287659631668928054047398945354666119920888117057880214548772580443896727955715421559518828486267492892278648063913830429196546796019439003593411549901670908578796472516928784642757770910735730498575291146244874514208012626819540737309109406070406494496290823120595658662525245717305328121715891752964423098777810585148494185755105376467367142860501739563570189285345321414262639460955494714948636817424448598956301965659500660858120173479392890555606461538096266411986288743881669429711925436524315827330029668352931205118910889156196889840175457270772048793017514925499363445003639381229288948065920482792529415810506291525753735756649256908905963996403235295377340283884476234567943364028365389232777506949216376963660576657040184608980986882239667170796009414283618868996404661942592695318905930150190610080743336595296562901942751242670612162380549432892723551399692515815696217155213807205153120074256293004082168214883288661458397294298963075415590349715390024070133985118407830814066991354038505806082602264681986835779054238181233427065801587810207121944550911988307031288446547135563588409062848034810052990424501340138522083356639440721687203584587980725983655849828886333046479601503295255171377412454545825860125028444249115685392938409784808016431813973260496506171212372893697513050317307413073252481242804080061496566052828481354391314887663392850337336967394603506686038204064532389743288380436911087859789119712544729016544450169004606153901367722188148483908114813198346355413041753237662249221248353925278424144576214633891081289936610590819118396780731006804080714481120216935727139798628211069389285258753661720138893722500314133430582162342880219304248308931600213468009271618236785473652299086313705261051702045518780445393912157410665620580580828224850198074369184262167811548705859465512871211423790005169159802265931749789127113458408660946656004112883883844325612213198116039682962047806389258949833580802315953929369925119622683576959037320833352544257725223554545807821548480706057259418675363910467952902137584505122882372879807091225460688897150729022126469738926078845204764493417036423101830384383222183337997451422646247886015957714193482115598175543601044348191953026559285735099616593154640092059033018064080100611921038211160121116519694393922135035256471435916976760608049671354174472404517797880727191677586280305516157063633819421209812039984881114140339166730967797647466151331460575066346134979203034099877815683589748714578470057651383672342503246541220132331847368057487963229200578250140641190722063331383159894408945829034895539736029209823706080933182223176468227353311759770514912918549160278283525097254531650758537592861039745063936784598377412536046690552630839580046668034699000456462890898116552210103371029496688571164645340507884333593124083053299449372187398535145429176841946182959348778434348562006215874480987277603684777660305591351736030113776560057236511167545037129259872246331389782178761786307067011610160097247724968945283036478013673217521360772863744349562388493637712840068839112480721761490064724430608163646483823514314955137352838291107176500248813326503701658851043036189456458758885930459134188877105404957967617965579875405267407453410217661122579505405912376564727529077097154478083927612244564410008539971383740479151055311277236284671858439304637834968686498686779784288534969592617729733249355486291185275875683510819614524845817262316982879126944385175594236412835146612585578373909129536181544234129217710473311104451728612020553753324303958216754265225882433058225843641440803326875148693299144062566258029133236157656865801447316243412082035411004384827695683998563412037219204255605182113652277504801390797208507396553027633588829026252291037322112806045066515720072725297740876929295890637585093219073239233258364741208353919078452536381904554605612222458040175633634314506457447537143805037030244511166583003026948642595990630136484551366779931231934040800257091137666514573051025369937157107422444047490740556221357622947282081024646310216347800329814639128410867995120544760252048267746785658270021414431378778721105418545736135739731337276486001493102381286998146296938235552411065963923114154071327993479550839758806707721496077551315572258081412575950158781366592472662126231237367797009121093379182462824253417680541845775408410878069069257281248322556564240727041051838499867746239321898290580566485896527440073360541158513780830410477516043654396642247081861335110139651823971259053151933702026876681639101365138408497580841161825579896697471799631761850276836602707006581067110275380830629387562754193022741322645003209712566482897975264201198423733182199432897550145379787119677120593238513828132901393955252607214411941117184789773412020613485076204277873562271411370336955507186252365844741287494773940122314281266749849760937032346256608335334009670314547520658465377885291249875627128514230439536778357796574217300609590276262830291904028450351755331565266046700386918189123820956863687760013921876050254208614946231617571077251786818107585398484704651430454361710315978745644313399452738548947399148946813936715587372802307077338403479524106972140935427065228378653686041033625699999813311794777386608838022313185461069546319257562890332523379351328911427401785712543983311119277505442390985154718162872686784890227642076896860298441064935004050440867133660524139842171666877414030673667499783602948476930084613579744346895884537545385537058256534686260862679513007424657518704992993091480402660771207428437916456498340157757917513624238312553529094854294253049132275436689950003364657347756051963624255593613002275733613370290512737892386712219253783250564652269192251444414134191001697435070091933032279052684422324734688697589752710272685245258771105555719481450028926675883659954605687794491720472241968440020599161024727608846475919358660982489531476995964654217948432736720016354509701263322926722172934474845259235846328783215475572810331040127911828509743098997598348133955300410866662238323812656295927957453945080911045326612128776196735745406267112271235128013560933094767051496222081921537359242089757393705626566036807738688354988404145504512847495447794237083700185229072012003871323904190829934334653507349249907918590066087224358837584662189047174817009167129068634889636717226681781421665056255174682352940639158043684884026094270213289765126139589171378126969826290187485442792750763325785267316969605129492969006020547189871799123344304123153225348526140381437804560231726794235834075356143175220470571240004223728683125375531061732529495844121303016513466037883392059886614095847886605197891052246780889132525016980151061427919317281233025324373594425238794936785245926295209977665076385399979460610671543750510307252402757111155811534347748068770287263566147889097436952729453289433439559509473979768555789351419491979564163525262737388777957089954632433585397281986229477841606441083355504051471563489036208031937762778101580903841140422228008740302931475244385285999776466634101662838497001824284744273180211931184216283700678680083404647725601664041145022689539615154573036553095239830456295049015818499443471909173230531337381739223226475718874361135055535005272469671871357842317483115446864267434990424415764297622563923442667928670487192580856559096363096593423341715420609648690246470647837644903632921631672545990016992083414531441145777649153897847140471096442309509254123881939390968348858737709001455520546628831194318967842915940464760159211869069851058615820169943227357772897833370988861087751102639153653751397186834797862778885034519994999150271596509136474151146839273976678567071171923335729308411044502598581615887703745685609145517004728136669823582162111467566942638340999223299420334089852021224337865807743035522203380412393708657245993286943027960583876436890449018906611733407550134053386793832245623862048687116454689540420840543961431834175843398210959410796492860975719097299071345010109533957860098853581654638964520888798902901557413956486042694270266606652147236786885502793612680561387190495637879218581641492671355119447022568182599836471509490451791381852617306998137615309127899579944398206414814025022735190582301651130180981397256091670372289108729205705882571763476250167071767922875120404263124230631188658420951367237034657701656900788889736459396057903156404910033067528466176571705447451732937387941344988789702474414961077571670973215423854430936915532524064011136345288893832011401963199727079572023807483354213999575880127321131563721191680845954425804190211366767221820902628417283536686632300631212125066171629776609627786652341593427726254625456095992987205698647801245841195837848439175480405873636896967669821118515421280086385600500902212988187433557768694953165378816219325735636374590355956784240146787758193290289788695140182256904510260391555581197734157085569446306831765781398428919020629084489576944173683734887652492972307866107103685068664209290913355083004033339006955044653903056137298691259701722887896368341176014395619615859309642538238633368853913106414288080274287756767775956670620447394151567992557485805523851963850048296041873278701698565601063616532595178125696727230422845411967279157321489314079271242961449585733279344093001800357656315173060936825812306907967589542039737184849517708350416538151134942814937677088259158926899923107757276573093084615426947974714315112507338722272465070018813839878473127601190253460969915750952201052811338260409535394627709676630772401942968699749983603823537526409609861824454684135791599645555099768630495979559764847442347905290641997468613451742021970840714810965620938091342595577489162735595127092299515642341198485395833804011338426357491862043827432402723525018755644326867939096732990799385715339089689081068913191942303158806786519498174871635557142143676028425313658403514559776055241689794330937385759831134144202997780653346397910946627544763574173268008511791878774048977983824095113508859127124270629955529938694120441065383482461387050615850285531563457132863166966145412354455706032206272153623912127447338159463793082496558087188322916869120094626558905941431431846865916086667686711131793395965204119845094253224245954731979260378783237160772744620274173109945477568234749753096010676446120501857001863378254821253000554861146839169214728005165977292922664600931778919607290066921184422585470811210191078664083427064788140730856181093082743870201745189912142726633510552587747275518390442120916250650690304426973354749519329332830264780156494374160808525875834886423558588742503820229233296579709454934167974922807461263460582395095400379956560004204133594119317733743777435744171635533898867180951489642108787665041297172770613233674048367574249773007243489730142309921315204208433025162049660170584340928253457528484973492036682708618068765378631575955220638392708868399753190399266023939282850834931630721871785556306199225185374673933509995154111446076741527965911719274228451217858344976621240998642842403819126694699818126450851867746109510630264115945713471791651226305950092127711402139809859149501614537842200346122528777835164775474356410760114187643413454621761006576050249477456726577262448701581648676458210888657125923233424157607386948366039416222577553526079248129122502809759370354726346892853384308949141608375826190190163197039036842361285811815628738408761683581713983511825795017365723893497254574708285386523042457586206539494840897449797285630621841896671497786609953173127954803658582110504834071873748884957229928756181926042589372622309762753030980752069614762211028488101626733642920252961916702391777820892349188694223552169299324430142863184744225931780245638600391811023678378285305478513705807397335576179113058205075193536950001017359974609121973940085865473157102854982866035003427019629601895751503513582009224524671358533544908025404348322758894300256461577245114737708568563777073384078338026399290056793659741605935880313822582842121138223817135713217872417601334031663528688636415744927402872826901638453180298797346149656199026940729600423902653497812764514695200931707632036050780832306141018555847700020590804567062297795961789079685292649817476315369376145570993219613726657597206730366194685144889900833070956781171216681526320435507186102893397673258216350023245581833244275016001641972750813081885968061523011099309462660749387574064600590781894283167196348920081053167501598338043967005903167588188817302719447802606914882111861229772844363699068266414263941976936845935724798314574541918308156878661407404545857743690512133783669162552798508793166192809486197278349678576709398297688715607301890028426730217510674393625062625718456205406531853386875606576756284119283357757071732422493413751623417834275500686159653620699671538399755395786228887848555551881770067728145482223406714955845706902579213877407665073912758260218749845214187769754599442525241730651251698514573975337456899520616755235207707774322013510313501574737082798626144680615268664499745115653680226687292585679450350245872399570909708508817998429188140052015674717587981298656571899849256438757441792478387322801346342523548722754850476529249677513570150529395289565701114414123605808718054487864839693609160548802601567123433696563896507615330757540417768449629455768637939400997426287050157808780627045247783154079060384331133951269755720721337959001023840854209691676941279504189306660071700258507978503117889828520199386894950361095862450696466705834520766410119842633044860457178550490979013922492415374432165868770792793325237714663999579235679797166416846764837086426184225816906627636777942581618297242875215052339367199842143215263440662167774187819240734935545151424547687525790702838172831776046072025734846934954736772814289505771422897696969178851465013536350976141533057350044552762216604172744573252940212085919199837835746455824436516090731478084728381267009818997410611694066720533249190634600888135306448130522918530991812946932730457046850664184827588543684920566603860169817295498494782638803143103135623433470652361832768369614428322672590363868076681650965441717243052250656875062083564975403860353874874892768845177739484534785363685729986294181160143005769510904140074262852744221964545729733879240981924449961023145342187530230311467881366006448764840197292573019921990142786362492882066112968824290150100795779655003017616732226345132131151209186410045897358936037411090949976678847205323016652205979309205322963625243179003205983843209040010125562011386222273252838094749214122967305444591108724429119519168570768373911497022841188502395016741276049829340866238317640062979665124501668103570942476746679634641035129783840398187200495672122009909640132526367818925641719742555663263665690420873047465114126491247261732551064680158771744668092340396910993921976717527944301309784706315788135063909160282132657660965645059166106351921281269102688993106253246513911033773427922887601451432417393598715264898810201583541260268913898129830292262804595203956119376003195754794716476742972792899740737851192003418892633216311196527773727709808674632818858892984272993461620606397650005638874730541008817216194740124777662706870371505497729501743772520674169182148092638091923270224538212422708438993218786185757862672036618462966276424497922129256626835829488404869529613767693480616028638162958601906256965467774598388370270554388986093036238783473722089307163663398433924653172262429082278821617469890818339063499101252444104514866330252607158130520323374102733434396582804633201740044740130844522999274607769245909042213477258302657577593901598926998610613394085338337534876919473722897811815699289032323576845632728426230411339507185635771751772230790926826991036040656298814171822913674908582441806523980609189508964766880132263687083101085405593820400264074548202423646841843340461966153266240207144939529335633714667823151142109705569614436939663915960587021399182536487561274105644062337471614531468098054240459635358757265614984793124169891360328576486258859082258044993109971735708962659016011185518867968888152494889506562572524916537226919503653037389492140927808261227240540577138360263444105007063082195015269890999897259701395944330542079772820320630203148111828159570268797828793752288370850268846728608104419981783481387461618671595605036468655121638900712007954931354250591346466690997156962586306673674579169863909255414068271818713923818416520729407760829983338858164072346025352403979256138963287038888567873300932418902917716687462123030077700018613613406300128215084678690340234376304096894798059253004242052924220719535606369554018513017836466768682491226190241726062530718535135876315676153398789056501775030162880289623924116597741084055566691196475607053222429882719637682759275551162998467907622387395276490848409843142902103988274897328444194839092229653336641783219838507405048766378940319825542325444908752072730716181878540812409463464249184416059019655418942191049214478395399267979428566191448647173365188336889626529792493563076216769491155090374780486358301116248706490572424259088325471976192867804719422090448445210428922777271351489143362386260282991084053840449095519615716254289223119796744984844131911845770185150021837332656642327069268972228087280928186178756761349826769081910576048309601993091706948897829269537305128680795732037405918822107558848279755335448818678037967176087342235622689427127269649622365205236936606511862221740563168098222603457258673499382165881670160171345741773525537009731941670329268105907881587292611128372480978482225487587793066278977524853529640553455539026361815032192890652378012778490394731417273457619646076717320286112399453800658495462998457266695577442639039925079161590862242304430714976748913958890453262249963998875995955101521594209677449215410058924785003526334659642407824384581721405970263602022503849999462061782909185502008513607538011937968692761748895026245519171002316433269447297016441763308426169258156394454347963369624212090925877225348581984324069530576768509604159353786728885074765444535611039716442380924730435289487607276563193872919063407216401739991804714756855615112992193474936427425887745381072201556067246097695634770904923384951661099709139206803213909341353846369040409707669705095450092206917824030970782191889326087461743005435060933271435448147005246450589757277899010996175796451409193167722204462333322320030442486648699638258629068410432683664848635168254582323578569605371571433589493118319163902243607630730721459828062617563687081969681936657335058533207639126562841475966506577452025212338604597672232099322512797501701395813029036087655665101037463716250255959396189075533004376154237026965733784876374058173274395590742601131216378046017055446202180687644242932352926455578404893374904050626189367635861525830826933733457518773134689227203925414773135498592921239679400986835320369006369826788403618753019651717105316836714754958410539379293859976410446253937399783746511837901681064897700515617232209518263790957155151444828067194360368390304513139313549121842685328628793212867950310045803985112492994066928683094369839249221330260515248995626124348019400896937727315918706979951529418897991762031231436646239519349059950770501450103443415895573522902705954136083593367534043810310280927241186200459449124181417222885135745150885480357023313966514052876842363542450967711392395759786523296288264791177977108992269519673344755352819722431399742594534098086243681716166013278193244721659169585620501201570387479061747298714073516812626324506589555077277669177162733721274266213732650870461124892973871079200511257623148485845351926727567180703779815375031409190368621256251444478600079305607883325800996286400824348831503405778272490688289546976434894098020972769207960863606039398885773022340701715330320787269378695934990705688107830327102932807286182795625170418563369977388821341415449666073943441867822973418509766168852753857268989910202017555232509700876328172831347066359735819769835477089369761872904698374269765003374686004321839578673729767931609896158251490329806349353218320570247032478852444166195095193250321810826832562216294559070645163185259666363233200111635958596855294143403812392126537883039559261219176570843174382523146909663963763034170791906856573971507098256658997435913522263159898374047724893662340097041396264173099677273230111340354312421408253896118018539975521492177715340128715746858547018402650731042964816907417466246483642492897361012426643649743298420378987507761088400500981714127419116219601431758982261147336511366205446441172743239219366369606825264390457540618630762364964848512106269296592582909223787038580668411706623022279152093164570769227927629603600872363575989627944848589903245366931362275629870831054823159953828351569831822508146302338926608869346977953003803524691803998293382228206906547932452826717055098902447745230427346871889044856623028162997691763821847749690379606093119543380055177473705174555678112092601825651874452049308999413607240324018592557464626495596906737208068829809149843404747424449004213117711041389181855294201975175766562292134110636988294068488900639969268219889124927717502420737696885645731304781206339241848764060942616430016737419063496774555817788016716113274254434238571128902334445434438558638363228872312323787719759006216502018385033974256727147605347626823632928139047445843282003090106441996092331370246219450126103818781662989362084558407749450354992467137741212517329649123068875549553759477418476075283121764523846320832007833867744229606930220752644360938805242798116401849236971142897111640336211394441552192219824943868835832042028822355135896722805654822475963990657051610921906419213469796591398384591029923134737467313593205677895441898976834526750223673624616720549084328942677060602615417176927360991643603393274344497239330900769674448357253450171906446839700507351381899075718799531690321490536741797308365176215596778230228440593743309091934439576830978215803973260433934490684017464387282819880866189214390686189084236876106671844352722931133528717162992831680006632436292825042909665639343875175558269851726473804786186836378396353068811793117600452536007860667151645542756994744280499743834037310790893277598135762956972680085519274041255940163831260015853959674655273073654622820153242670663527028503316769990582991373631322824559750438385068195902417811942570726258595463155703118021873302460863505441756667103736450163348609465579501895406410987202756786952710650120960529618206510239670933534093196644476681571061085887290250229369362916345866634715348507302674285816618661298059526413623506822004979018211189068258954845272066293504544287702589856568705977477830242010667186434948898875617545603882454126048482539282784122936446931630172756183993449960431791138974339710361877169398759273085456048344187376402495211779511822938736576750461454560928779633063332948608362158733823870695550509879536061701578466213042586393667821705327861873589791296084038735513947809445341211721254037944256229783715036477691124624412423655437203335424366354234297441337007048133919491182460671882044074648993450392360556438926243133394197201399249718593551287988575837717675248893670951219413603338287593650985391253450404913594067446276438421571710540262364122358240512740594066475058296031696439126251583342572567083664026709497961918153959388157458065379970100395535301167726402308248154471130843319545559751500515202654882112185242122551266836600841592380013677858547105055351623753085186037856886350581402533305514023984855337473379777902110264737431560441430852456180173811852864089005414056338881264784251937143556426528603466259662807689232148707128501247759679596574084205901864048238113168587438232534108959934161926484018715099071933288104345446722440829977965047305301920461374856165785322424901503748656732748685083835741355453737729638239442944152171914276477013779805585696814041411674857069421725200710239129695471447144654810554852764871236371770633323813372232372281878109834311235901903220795088109641404991312374665700449022605711138636098173778524704550432551902389002468338500189596629612182149301427981636391192888122650193146534318827487006250216010362654526699314126584227195319713886999487499533505710295693307299424949248507982555715513170568157865558419448695546153292493009950674847960728507905355745687088488356170170266100049011153264675846715008222356652266657592976490791031159218302881414250130469306770303043246363692853822705568978605804694169590758428847301145720716443512590827635571824758331309078974776681891640557999254501278026721369748386188000171750243653051248339677666527259861691663181956861235661070361494826593993755076695272884769070966072315226950342134362864265265534510408149259290089938935365223273084135276585537050074891250710162673517617740017291090401322402849027856088058275931141398723419867835855149207319168766560959897288779179415682453588648672067867589504864622298798371760603884909066864181869495818165992026909897485264779524651314941766642028944798658179145486294231949972291090623777816779555010373459788433757612829878829445805710581076021002844325495955875325351162273818998971965685274141142788394878566828175389815581029664615066921337085898292147712843099643982918793648935344545591480084374683026422552052449033573620331757090459978207619390766366711213047445726564009885463889988131260372380654312207355479689527932818601996618850596825096251458201464921504772032803352652301278608289953567650871255861863865311405888135296229474776979668461276443785518146235712528277932014188189130876157657929260948517539358581337485223991072648038447003541943890407695457883368191627348165396983071951165138941621978128988404710985455048572966276700892620360034208801926906497902383975700813078923893624641587076731237641115285538689875737370566431623033943367597819319218487260038382156207749989681818843805345700851285148038776736529660185984310851855969123013240080809844157909771105312668870362845991814892488541619346051543182979532339755265157391376994590366746173269592783210539665501209991872601760634158828447062294087021387615159074978117940116174619233718000768039025641311507153578646004135961531314439186629977544526843476411903817764131826759902908632344387923679424137723420696020690680483389150250448481950808190730431478673267339275702844137726073448341153646930718597650107582113752622495196826076165491900678048421391356603139548790527223162953947291941426054939904245722749119040708089571766560822698508928109482379025233393204680879780158066795795342352410510185292124908699081985679494111133420315284743015191402721369618673654051864379410789498227189170900560890267019620596006627899639033156080511247343278471142186140731834753303506708407981748517769036602083722264042606643922393698956592453052068132378614160681910757487192324427985242359197010675100819138375332082798800670935834078582882997077622046346264238883614900450242733623012574955559117002224320690826479030844184907146180853780412084006504070116498843757032317600351415266104325233632312137183821141148943982520138746953531096019620675364881930708024987078702587183287533761926004442285271181946083617984518584076425308143628445145318267206461725159428135057431016933315650358964419840380415487282812435185741692734969232841401039977551149788245829767147405525062679266984089600070154955048966110991056693909176797069774208179755865530905420164722695685030110371122899920245892215441487952386262554338514846652606886161173669755547300440580559113761342477234574527368289093001903294482385679337821775365610057128366172770203872716661530020794122345588658609821604959790337684359201944504840463692645121505414622223139220011284966400455936765748022922380494761578785917657299470041477183466206682385485931536004815169711331727734960017015620661688174862032672040033107324944309635491607097632623113919798502148345021459992384490953250061842037806930742181019276549045092163199801568074882690418104635483714409451363179935983985202518617293051218093148143545394473105791683254093256744531905082703313881565655286382879647809208928161316614927920336960653123196149941726072638857371026991319123529895771246302096515082710200351520567435093029197973128917486132877208124292564585592844541064168550393909555143437274294666623445718442721079743863090670117708456753994549379688001768763440926569892508841858123003625942135760478755044654585542767212987414326027551050140380406760136943957081719012856982880022152653120688766603878003728464659353173789555332991634795904954835319819965357328196057590486085811786178586957444696192888088480430450714058720116112218077990949713037634956316760724768552704246811329975854405321179596381823515448888674755376161364994100963212701311071076763297459352913672721970460054178040590098841009954591860841767326234527305827236150351372689875379399781993071169109915641379027810261243830810368490335588279020507542443619906917265236285381830069953263051042894252055341394883232216639182965681548644578313171772323931557009043388040379895865717332707552023525261272522492399292544144778780003283061124260761398260963970107741620282270869708782312148235208685555624243545902091366739337921400193564269789062923049268880988588176099281822709638369259323310407261539922075401821593992456596324554422181774102832667048173929002385739141633711091163650010254806574071461057155758004947789323356708299656067365520214284683753536943328423044810687603531830748491114289521235426786482487019019921841687603601242310146051240158189327791542908293544042863515199256382650432983057374787241822165287963626614930160208946370500867371798136055857652741039580012472437484732530505337896583165921135065474279357915401086428550008147824581296068550057880247520019359520180039833091625419356552148137652328058669959072741136604519961844800829873537079445539598708872109334217985545924688269386470107502864319537391277645563749606212672896888627578784323736721358558006015453357869142341655639280667961035452607652193254655232682877806664603950041159179157312911423161541086468894017676254729280487702517787156860110485580882571409008949008308482824290529858456693012358109434135107472122480269224216397693558165324125271083375299484595740510695202138540570498109826441982442725357096917255330561582090849487306633862075216384046820863493516034453243728049571860029459432283676884103033112983464699517493309111970468852014173191309194583045709304912899794698449652280100972199202323952274440635208704520703115102951539410338433775138268681143593352075401025321702887720081575599681605098470726342286497255675475639985024831793634039703069001124145243401625649053664138350317593091972939342118165010089798778101893550961835378511866224343035556887775085669268720004925648990037484365896887289959348346118473205933541984263639277335713547980326054118595554442181481020628902046989371536272904682726165467429632165816556618451844276978430616192676002315284607581100257030324256984303632062004283674275464369593589986449894668005387724544005984414975635334464778159306775133406758242977897487517632510854867084115581748662327832453960442720574130043831549799549715508047272984762863260157917831831495206525792284838388948831165437557406811396031810854668074245453264115830271981417126152235510581654454637824948028533655463264960157705719279153175987906496906771689421316340283117292343804143277968056383430268093920435899083616984090007882103129524093611232872122652339666478251033702235537099494992317138548630805639284849642495267764587262666452362959953807815436271585498270564482476402113049483299588932552452108548048480748704985907744862148413239885714354975876371139825229956299315044013609860719084052235760815920538270308942767692720200054542038548857727238901541347298046820272753991471817026508557086964717335064489026322434654275690549080669890009574816312351883295401904400413285911057251590813376420804279736157154918276536704720122045598132378338811033480430733366047304047183709311486861022587437178397005783834110363403916617456183588467552376804704224317549462246079041366604020858045538113547309270465899452560661700704156743546572317632771624755990876630148562603052053071494744689817207872729749459448225127007801954114413978740257193334608118749953844962213716996837812322816693449940519401182090448200062795636035300376861603723003033736144492513762744494585425999602583942758613968951861348928056717713981989330874696160940072653772545101049048514364862275752003483410896474757298009146163271516916274151612522261444661143037242710846947102124083958036991307096117197160264563745419067880261918616954661367023360122630775068315666582583764367665995186570315407931490116632922147143439021997963967031604060775703999988252710310245112607979220337917565412963070658005759000845049282631601672833790739739508009992148106189440269814429144872520662705653275669636322105312231841129734597575273168774465263702786032039051939357610278719977899661222371054617936731694627471528023597967471975587768979166323177485307932930062925956054164166467702748380525158339129592487327229211722131238887274769129232440239944199414812400678532252776897303202972035157013121794907378466913580123206636833921454900389236771048347867521666308981727589918940066740852072892173199379998949404635326351226738388934336746160822799302227452155540056903898864203507925194914820224118155366448858530179485779158878963908319851022423189729585859702553398802926348964814570251649196338497148780129517745617860993426425691625545000751566313417952248993878466898840077024128874830409877968643692150195924683161488864052948238841703688564850642109699644629623282017238087250019547352190903062248878640431842650424360241485573630001628210060458445088825628758574836862250238995375625313548260301368691294289466247874271916838777797883074857764316776702722899798965821745106524397641535450215412379723496799442211573835813502137185315248097407578782397647347332656196523643268091691304447427280047688739692558233461096535863384124061762886297157937194930957836236293653271807707401557805803532375347839613337117912826485730385588213709476376475044976995567141875029801056789663483457805122568589939724803448385021093682302189429031479629572620919016955519898428860735431674589083604963570494813411650879160473801856318869973444321793600742529206497310812668796878014509482784392909014510797842119333914712117964313510070569506266019782901298854228254762186444916295784634849449107368947110792456672029249222805817396737177395298461714520952655737168256287769447978898581026518033435639366002733577481488465295294499193029125959914474073159397256346754997509497636930037131560638916471372538555560445405747118605585967970827930605322092654837643486065410805143120982856695112278340960710436949903160303389182879016864327618599636846637183521509112120907688174257162035744982787435898667615548960072810902433425960584270981059462706182245382032584018752070906120591745055291222335412204528604729041452541385413339121520097966378436851744124571174720264711092573225507797349529912142347316635893244391641444567835047386351754224478791743123201594562292165840201208209817459930933875973299647234685558582472799477137988177273131576375381225299964061655532227631671927857373884123874821097099320928721748444380417280650469686488961215450589978033796742899669216538421852585726393457407542508410102185031036633776149468175308833396896225007544286823169545832395964209080806042432382336646476683979239123673749767408488432322766216613864991385565947423490837228230410380980047711153981879191813857601480091030463851220210241207552310345254794445672184146836836359320482923682062958428659319354305102198491633339161821220840413628000911476715518377980520846273457396406634320601144430917362041309148754173246325606877043703680066919528665971778040037958174906447264145700243709559750036859262301720869319588134161148140839711501111150325700235551619761651070124288435868256925575284550852014652849478445496451998938856334239989935302317785487221617980526828963792147639618699451842793017289987649735178418844177119769822999566517165987577775706341480127285891461095800341099114380460540295044532566972484593622122811123168441944870845932696652742522746874454175874757567835312746220639892204164655525728039791656541552955461456061543751935226305944692174471310445043412506944300412751107944729110361216800268524215426222960532920005431717190858114854293132583520824429850540576916445421716384854915625132699396708511346389365007857994111376844261192413078038410499640031148713796198583241970926609791115452914927242347073546464408603447680392186898080075263294643660479574708566550647609185350124065917683747057956806457272031695533934211262992988580744438714130978424535971014818650629911160315237517267565316860513643009124150391475195343375418004902058756352406210626704399444354359126523817797289335017902679552773491892661896052432962666458098228824317384775199561622758170782305560247705583535568512395662126894601159043319627610892676122493010029299068207619212948165272381919817933795868629132385211946680368965374853831297423386038676393568601019747194427161770948417417538681767029159179281730330558223701974452401628889303158906090297338767689655571680577938678315466906629182683827697355849890853556399636154329008947321829204847609658120234258877918499141578201909634229451832608756822564603794512988508222245712973579233992554432176508245316678164067178257743701627947025954746374863942524727737352831220217267465298998753982139430254878130187148794942467731600590208983733426795326303982942122581251496220165253210862898813921792188645232983281928794455497451446119878360598079876188145605651472043760571593462693060923280961606150397246497751851895256301625935589931271627492729192229258989095084172479177404790740712169593852143506820484787836816765019806739357147508941404003552387893626935062562663112146774432415387904173859159505497199947874814886504653282733133676458956354074397194355784205952005474263871127110969529016079867123231530526342056597090883036106783531346053264834833004908462533774609897293263822491390226194986967968295949433045049593615792045108864577955610687928580811636487429782840875604988083602629711468643448277600251314978674799940112590765626620226698690506153410955257632188574843604332933552270988550886522404072706128306527258256366565265679115000492935065385119932271696575911256682812794065511004092871439273238881446628969130337250520115819266034983120895915158242127962594805254555922718239574957010318790213462745836352949021803022485060190613272684985704019294176177726721637791882795145587054528741685517618192709936594962025935566648331468617453226558709759154347335688474480059118498670472638323429764244126618657661722496973416855504471914831810699513588400735243692942385769701389345551938599481741378974186234761839463881739100231015506951888992307219686121972426860746508939374298695276724063558659768694599793447828131002058679154850948797778061484299323059286478128518197484502098996080186372791879335606124502210216677534205067929058942046689142331311371844613913111333890510624917699236544623474722655629750793053707670720491863368955523888377025939105894453493195506713234009623962242327015886817420113864371863682521102735002609732699958942205481510545063711574797089871766795534670761363440328268835066814624399232525618798216141965469367928230455619263965597019518061604781506207710446705899612750162338640352784200413499613679784931477320465382297049185623442235412773372703191622919344249936106116223057167269068008222393921813257276581385957274469296193360046731766284830627887014907214264021214742153166656634903483210760306501949362657148109386834345954244814680885853437474456097668621960459824560638815977493528476091654584814849350056684656201852430874554348827003195133522393314088640865843500651866545591973757033992092184343518133597393063320492923861545190503748743230915414848500498764717631155851900595235634089019268711872434610979888934692332959951580236121075813055098910780774634649769490263343719359410817940756258297417494038100497606342130240694703785946914542223232462468263857528741925357502139688644895116594073884647147706516055589431123623597309015976569770769459022473615761987504356762638007095450328910739253694766411439253589227514405913000371462858728703343362369312730752576575458309760317215999057762712557200767308802321873670138784303698381889314652583285883585028124582393618385413381844090639666426958112356605424502417040009511002548346217799986078996196393505469306808385112670757669985426293913534113829796141780672300023383164205072843657835060282124820473572196415093932618365529502772092688920494406257475740507610725482382631167406552364637128222459713688066535752284311492769547699331071612342116743175586123299490679861112388996275727860112880832928479290152367280904926686214499416765417223552660702928814775287594375980712269024802082863011618522797720295767071670859078507136889728599632627095026761230109301362574072839174337431400096782107646405528634876471394901174721358221973990504405232896306318094793677123484166048797723074436580773842293288974390869320901688689197060561591997922794664751085206190309390314694132918483512142152108063290772547516287008816998007658941870237590988178698838752077953688810700040076715257400410136408103064831415359239185619803240337146583523823819666513814585203005754115361343840813542731000129504216165686476232485019063509002837933137797850384899887069139165790909556554717799523599868381961494359686007664606884221338854862659707164200738270293701812040869236585969824610524581491823567177803571580470459580664995359066126514603640550717383390959460911031205345709196111402630649573975206751217435114064661617941969730591084320440730255061460846603922475544247282534990420134575913558138570968674858212885020429804899638053151382176279412214238617461963241952512258131265830252641343327554230700906132089479049810033850911523165907135205105957580247801265264168184384438474242794745267321486606912527709874477215125204623695256573232552204287928410961510269601244283535966554854194435757504241077603594201626793378344915202546321383288967124810290467908649498418468745506808776674808172341932978053026473460625724749189756307883305052578991154091651088177251898110745860795252809782392619379561743856143108917510703290560185791333465234948751147390082672138859588596789717332008603476048331396758844045021943832711006656871768529713302904637624569834038465886371710687122938863543335829259198405219010503547050255328318111718613197656154904059459509449760586464631542063705473497491372904941960103707327909562721018737216349188042204253697062836761848032238500092579979453499983052551086339525149788292723158357218248248126474307013509580530136645494937927349306590299429408127935228991144212598571628509648427945645869725043566300440061548294970324259372458187282329703985605200867277322571154326479653707853416121048507269831333372095961214283029124453671375883179723952534892170571514328186029330294087844324222856012172027972041973458888600715277009417353794580140767692621762910566793517804364109526926050952163873565895752793867604616696926541934208997216577417507660886731349619075412989019371804489962529748390598614392503818431063527277621378852465118735502720097101856019687092747445535593182298837691722318768950305279969751644901000503275266422475086100493846410352445764883488615984482976595454378118184214909113269964636596545816194026747518241671225032734401749954796732727135968655861132296815800947316171589645810942912800246702145189607525170985246277052408745229667070273441020165378521981645804969470172058538241362253567821812705147635363524242410789326692689634190943864601499533367063105797215659887789099641659689727643930766961002818437166932295281239026516776572167699193565048152596327701495270718602916899709839892088314679496964702414953173190322622262745412858493654773557173119961213445833337202324770862733828923610575863751779010088900938111453136947455134555107303442157720038655144936753672911802257150132732087173435599885674955699885312200859924403392652488443833226703558503588725239940830995878888879587198753492514100636512115977883855598254412544033449637832879631396703105599115368320808465589877084957038279671315593415168318070277387509194196366167170640570295216378246849430970086770826665755488489327290906425622417408401417053377863972931848991040589400416774597503776290635081896973114057692531790106021719347778859713229009916517662705844633859023994460609107792002893519742867253950084853639395187186244244377504556343003057051165328923985217390651113897401763021601161533579490973015740397471669503116849520440775263758222574553736104642878797544101034686051110211043578695326152469107870156783149726019744808569336729299277303315948055761618421665003172238481046936042083285852971933512824115921332068629822735432465534424883512063149888208414939536699188217064582594614120880151247839069411951417170758123802239555953972166806530541351333137434119400785833970429487143006989457523263318209796581538993097676136140523852943844483038790135083651764383716363161658741486991253915955900269692510264787083768447513967882508584578386344043077538247790213794693187572625638200797065912755726302337448461113190864965121581613772105915793780012951333698356174664442109407590233894261091113767615527509488196489040263037649682929127110338571754086009879081364735604622587110698159453996625925071169308894675529459735325095558252687637072733389469535186704023050895705157609933454324674677923136924562948680391773837042187668959232604897560011940690433206288923553747786903787872175898521332533145651745100390367890889107212327930728238465061190081965549822586649815951774102323780413251515735358093101255375055029641768390234306610481653428516230077602951589264060958913595667630968277796457100934523027506025206117841927361434114868303409287375984004917826664052561404983320060268571062508028561848453474695665545710221821754982222612565538949256885866820833870320167744030591984048384738385773015446199560709244218487730586408930054428295950228145038760625490196717716201135761480060044732485875125143238216430525716133181119047737353231464013973723557596145464893650405262900289130850791822901769506005853884508206260132511722636233094872549587620162611599557968519487290357205733728016002770510190236634988498866368041738246224006526970983957117010953444558859621769627421030108451628375421622577546676828941357499625130579733126295347939907733121534025534118039371180840399030816715796267931312984245709186611310257808472167205108320642086363293774328411507373777257068892090520185555102094282836148353185232737780677979289648727140102172525665328826701197375610618450331183536340603798659395244893150392755477918123133215463539342513054511372267120044471371695607732769714324018032142335890495480702199861112860650768596743113010235137745355744608296019342123003921004775819808770748291340376512946823103789142820545832408222063973948098221343817890176842184966423611636162360645670524859523417887298459554075798969908943148074686759550007909772071193982638014221706418543232659499015132874209629391652278295248358007292951335691844170017200718264911438790623323016507800055566313845955909738349137628282988741760003853449625108442418547847054778913509927045529302619271289849974968205849212816514178344497927497968934275217878694848962036534267543674141400838939822687768894833144017189599915842478749215722802321098164580736674236020145883117837885633975290434138985601590241694900567329649340938473659367686221715679598560405116810001592976298810220663178469260996636094273881220642524305656201888379224214033226058036858680352513345992552732851179560614216782514098439856392930709645118575807329407828625047463128379722364785306408157646977026468558203307068972680185416919083895325895434807813415279321658771997647532854428717592070040976119880080060184336818264210733194962261413652278586781924985675211451869905222615768872053563422332784774491433487451361473100780509991262648151262878413307530881096450069161776153302520848657784856763940578166544034249134130170335738205807280623944369490842520069799264382629248598192186352160435496533354765798810116957839941805011343679628303462312967048760816366472548436863338169341588866980780703081327658084769869449914338927905903147908113483939972596061450012201260383515432198301836096930873798814583038616048226409016104491143004140944826928319678186740035331511483022342718197038326850220054411018165740452086736370996687645719766565980339926796482977289822524895531497922277187149325468435472552077627484666528174291295526113948364879199959630646657013190149364321765898309883335872468632750580967601924866250521084002493496790291674259961801278320563692190362906055675755442694176380546292003387665363216770324957914198735243206600283264391167361793328415830403931591706513971123982078568431956607434313890909060265305437257454574977348271046723682602045804548337110458260309015539211270418137981454724768543634701241686473748312605486424562266860380538386477803030742342400915336595136427814169635581992538051523533847135731912666488480161366710962756837662443261987354404013100981683130522663144915468671187546229301025965508785317989992019508618762193399085167051540769732582753972241543982703598225739227433038805471033050321670313186197481387484569446352289310705074433794717167324339155100649528531218694094355761869619422052059902040759230951622236007347225455161744913343040064951308096720716867522179993081066056249525964678678768132737132689880108623249575147514942138356879669196261843163544407205150005486796513307803244813911334826302213926790858202026564445173418049961924670663272345804199470646636723193212860028478387158996866359691567504321120972139003370049540036216287739386143732151664068987080251900418349463095921184219896885475385522531421259653965577199531779760645732547923792501583260015678645402055312363879562172854675649893335950415054771279720733190957640978195878625608465553398212817524264141024174100739247790239665223833952238396393393221125176544768706363594962807850130888040969687512029965110791135819059681464320426098276695400150026083545055373675886807763585333481076297224309045726166028978406839008895905522428616142589394080053208871923958356550009817187721062840141557701796619792271020599030654670785944468324100036577800263584727549179334600979219182358349616113625983222170189064527687694746686005523719014718968302800986099259485730885687540609153645644966997071036064002491358041427150176064474725226719413425127083486631720811478912010366488474749384455592537002933050465234512236778032838930708223229571887254098045186161000823904164252274538905986809406572758256752405513951485109117488668398661117359803929206886266676255958835700600251608650009851086442104841749496848125306858181139676508299264444087777346782196657001144577606364860449407649228266273395795156769463074087217931060484439127868419381395295839388619087372558013487478780776192741554120379625334704970151590692254202266935801312458199835608801794019026848377931434088984216649224304624920054978833217946515509856554262931426796303812707487813012766967556955021023795902345974172071262436364772776019737394488659589186445155052681545750050888661890902337835518465634252553569524820317190223185207577949123676948739385172632096731794243667546320662476751839332005195859149012833216583086938971606282977864676083916684761954281488070159941363377870873704211853095254613118413024192443383866104433167038236164218089428882478593623825079080492336447430022497800936625253369001739302323459340595277639576141715565983958768836515728152531014155269786303113361886374044296165645557196459250344258148470316853562194380990074338560058684961873591024163970862969142929006488313023711171142186826406506872456534037431150624821257816577126813893225402752894590085275345679136404678827807337490714116679685221123165546807098085186167556710937722504181985183330588601580505640950780316088066201859032225758221221952846269460978533999786484586395253923906084148762025018923504429486507113760602018639306095157280307058878531597733791245682012716912273995438433927058036237267903956808779975740944919708190835816059626810205054645106897780599588797108546693968414007889023892939036115418618407680451267645859890392544486100163822095107262758072265112499331294888668014105955657523206603509107100123447027776623681190158558218142957136120676361264001497220671391881767905180448052667198691205694893148213477577739462584010372965495385619810259192846085977906620896792961386929395581181790921534833353272443105768070914182958484132452386869496042259474975826308332556686449815377449441912332413228847055565535816985712773612342932409196251053968761862286413302434858884946435068698041517875702469806616464380603106982836253122051422084749294835923150938273707853265574582646611885359455188834369650228369985559848938074689277305880378283821830694442691189314285454547134832590000472471839866205518587984030777627211885343567860631800262547451757415047806253569132039108394894346007868797611674738676583516568435439720413964344227077029869447734385338403702445761936055007253370628410355210829568752666058798488833853800672709367348003984273704246694815764729628777603827127394200965070181002120908468318321290496056110684042859454352528307480686718268732008492481891046918894300615796491283186375433767976329931351905067624789242687812553718440271561020878749976493806763365668269759549958211363752665709807573666031518278999230411696466321585932191224881964813728314706963095874531635357377357517672371634403077220793480889960924060772878421635860708960422846385547920719662458872525707836659109969651990925173694198283660045601299076860954099675063905058224459143455014424699231949161774141164153218710323670510003019617447045040999584190880712188216530512225926654123884139255905599186358156543383908614258035758439856533997525420568118908778919068257448529299913990610687050860319851859701469255169374071707656088913336949294208438843263798232116133693434999063827194471682751675190898052445242295566002605239636778249603891119710390367019935036834194845682334793828296222787206334939986801590779333405890156498326057124200104261272680945268084404525178003017036471292443061040413718026751832705185254507775174005660423229410925170603335019752610660694286842392952261819160341329204444130989002929428410700459897356878062359587641290603189658120664090131305317012447386543416863531150202594746470924603936293907605997527433651297038071269694411497312058641593364520409954889873571597394110752622110488732321811381792101066551434258342198866080863353489556479581387092442038062123293903180240289888405759898077239966324734059505712794188460665966574583462198660758608347928192518164174330670114119421762258048945716520777377360898284654768059914472945963841979887975715574281338025120434451849673331574892095400807304889069536661190341734595102986282363938781804845568056925598593573946149590972677324071879177192488379799696410815608653541242621307720001462945670971498374485248888781048771298390656759943259553693731039804492713723750537055730102484774558447882536193923647554779628114326077654671211092965014657403270128041545903396648350207966683482308118545231321504292403082906656405048100289358808171237506986000465498205113041523693007286348704807212092936546036389831539835836405366969688747069031441512969752181859052336058602582949247093876573232999929482243801943113099688742182223651080374310753305190119297746801486545721916726700735952473283457457386632305153198149771353625947126000736729208107628654895469862960396520517871172471678891652525584410512247254488930353940956599517986994731989039275630261390260822092039279482203441316402300010859753442436992113606896996722579510222710633428345336172643334335888058546716725081816768835398886796809389737387066784601597437536576443186915866393892749294785855820340727337854397276633815724812774524570663173594797417553058542693194048815477093462935638159671076812756068861050220532753156648925197979667820402578992863284587600478593205604013637051416233449119024600229464543277670693504684784964183696729828018807624040639957476614324001155334698703853700396304639921181615543944444929629065479202276840114143535276489100844161896814774176284214793961547767997387763764243965881433473135637272183066838900692652428062407453333625077250086014613191708150880491203585845357843807303997456596060217650515881286949455402143174304584454934476859257504924785933422825162451878594589465572273500929921053564767852952398014911644412720145905872850333856697168344973452737998446864666873722039068008157655358263942088176319167021710266491950805338727146819137445294602945552801296480963152748698939390511691899201056624364880213080829651388399591728135286495895142889600903959366518217262031212121184324641556565531197356059460902614238064881389860434966532784129443632751236375914665312410943814966550100932029071930417520590625395862159861620158400031323485295950505298621269410093697103528894853921050361536763626720896250314014208760589322278559830165577427256972186704775286708786673285403635820580534020807517181298243631818554885837923326606392732443330422758788823689297479778956187221224084975690077583681218064159305041559458475253090315074804421985275947932162380266717825435672862709377305992083841708868102674351559344746509932265472730653605527241593810373180915005378741828834016492937182146070411085947278373110505582451381794746947815950231668836251057327108969582400602187424504462179992912739266865790698373704928227917521223228483745191009634730062710744642481792375128286905353909401391754306056704135838247967743192683701129614863548175520453866227405665044583413673247917332095768029456293354545765082106876147545965567743836555825546517402198455531451379319096069242267849395782597126143723204033464296787937108031142839066281884693822635539572657510846575382282594476656594331162776007508000367566311355368019992377922762989485415133570893035497524886461792560570570776569788980511810855566675941612526908308287059364510071484758303392106244412152202003292254463737543071107646493706478723341781307351976510999064272215180566552355305083003362974511359795626952999297573692123849098522233331046200432986091282487037567452764287363869828223605823801401250052336697417404980374183395278343420426814081432732061792116028952829535684365488383126168675775046026962724910581087287297641890753766411589732369035930852916666483010438210482416896681417365321977521505169213754829799223649704687042159315251757992131245409626255195546903760401078931581266890574449269908672001997514324998842326871164392000831855472961923311007278358660796778636144074909012195389191454773361868327489241303202293469729547634959695503683693428690863432009715744237149482716640852507449325252088070091540743935507499483206674412131524360409394591505833363248519842921292020695814641223167207643831357179285008924228469082878717252416374536507528999053021929352134470212108417080747109584983450565714751447620629747254230171699997176333743689744701982125675719561795639381690184990820069955977244361120195770306502234744268052460818488458603927013513061018924491568943898001050492129021230591203676863848382431249199905766256356889923707972506833538522842924058367374842131835073668176647215374726214258353142388457886847221483046462749035489180730681914016384402372872275669001957020461760227489909982047637519119587389318065128229680036237087969971009034663761040928376772265475411405333645514349983101054857250754262328210683261785419794371767370192228075081001838086839471234982817998105086245454362385557099797300780915277561784187601580175913546131494447058864996587112102012310041497478563292137019010880966872752978039912312398878283432079325006871888895271927549086790018994462933185635537556319741566079664200549626336906889017728162156642254448950061803733925794074540300189039234127732443541409278056390726110853207590292543719261466944624063769510984390505504564210058045522004569745345438071947819794357345217049786327846546539075157342335167708971652444406688203555188234354887085857497108233110667213563589488110455616401474806538405857086936165795171143574757079379701395086539346318605532431617188581925194420999534247462502418943963984059411065568417750613008201037105416639956498235450711052497677460182830580763824743090367452381828810517462285898643051516874411318252400886573291170383786388572971503476042270031955025196309316306374839716835793107845209158572643107496097732899127527728086667192879704020225916862501667314202513677113206982317506778526650391517808067003928417137598079440161536522005500184356978306432331812065186497050162839065229370406331694946059452009730467934684855299806675826299904613263378859603378149264612386944117901331994210382191031877823413516488790601835462558637055802375487349183999312231174950470888399603281417461627361967319384529202477834187722964545281568862359592961400225023390711764164140965617257542136241675272434465162414971028200096583854734783706042743710639132594888177374614902316562497310038885370530054369665232326035360634901426523505955503062767396100923181300466984659284202019191889233554248270794462258471039181767882776213465592985626470975999330015637370765866188185746012334869932859497747185395628964401163439938877273815189118683480570185948182572850398681467482129751785514523694985751244407686720467569087363589678001146588705284366821865166986777694650312427091539969002161766575372860419448263259801600131745104825111570136401828156331421208083326706422668023651826304382239154249922717936269593218802902059321326546171210967371962654599239295306050342029918020812005716778744312827667852703865223918088407609445678161279199419461798252688684988428646442654053930298774999743697977886427490356758900551714782963692633619497675318174849622020916180842039038069283686747241599880389777020730014582950282103828844255085451214946761362955401509375014614479432159346684495119593434720822492583558896381149243065310826088253565260778187611774554663553257209699604028491645454160812830715965051361845459602143964306347146926049813815865133439866342147156205154247713006929495420271936631074268095442232482831023866828995632131199501382865706066315355125600310022738221815524662878875574688972212861903705218583674023343578504620239516526011464461957534463483105880339080979823589686223659911938412771668961295432031351232366034905712757756135226761007141619249835686822297565497543623447986678612282086817236990938199550572272210309052939738790588016739587859228255072394968310723015102650152402363179488485402528313362074191285703640536395875299507473895609256591203645618807557323467573814095472454328817135495812233572901357606189995344565873318301575347972845331374293840003866306609017648429789190444768577736484031517091539953955361451516425659003335299022233200689845802287628726828958743109983325240726977865000954056981459159419775594906807202797456303339968933561275013917914986205279633930943769697200710488921199705991368547241779677354789467637999297844234041604969591990428885033831554868890110474358162548779481554751689079380704852209614558750975322528819633694644676741462531493574997138653078951935286547152866932525844199424399631492439598248372583479721228961158940303219734014668881956556131735560497471445837660913661858170788872367747565181538006847510425844782568032987311406285731506805178226432810968185539499820967868367724394621420358799659527499921239063403121698137187069283981135389665871556439022726606335964872596219385459855091055325170001402797527533840657602875114717671003834899343238267002415943141484835921039416747249239669361713463778956054291901638239859923350599889304860411147588685141366593140579604766497715810888058460781294640102726268293015856189309620761080858205092921911351238589488276213652147099358436001166248852950387349343580111232954473016181380110844797384767665976812936651211105750669285362950258254499046714324374616313313947574838279467367810999009477506387862731436885478118420383375513397022539151540503006530929319782338344963271680263837478628053597054990042512380888247517555296637539301784618386149030676545126655362849960347466224802449101603488703685009039446751880043706502635418139353119870617905192463793947408925339195739365763183271684105460218842008612399181353125716344331278001415986171726828948371991210559862139613627511112301356963090722258579299958189284229741178811027534955240463182253979700452232532507466278424121595703252903784602754276568092389102570424722471232105313664607328250813166465779471071176471983999066011871449852236721913574745896206495349940077275654081740328627786323203091683516132114050284266246149002704936499264632458951297746205711479337231633178940959052003218632746151642524189412086305614719226282494362222904178587859489192579342309074607344162678215689125928382655058800553477859476402887279062419496867595747903679828999192310138956069078559988589351603630620242030435020886249254460890809095581658958537680990479920732236299223695744626187045209868237840561086322403669388429191477525426832577324061825562131735618633086130034813710991130877211848679490325794100406891086353799006530393492717800273242938025805753094755945437503818267500467658914505273355746657848449272370673654462028009506494238873789927608528620311256105453400481212086756719622390845522474834697923451653948380069757060580017387863066040548856694697502506935013568316155346958864746793070685624106446844658400198225209799267458934209877949543998353203157484024639751845490098678354370479313127308137946593914017649056854589964452299535266226100538831936499134095115481186732328985241396243540637003174576066442208574900586033223550004353211342958478965338389871992275248108213680516866655676627459009036924721417880516071689749529067921586304859422327144882925899594743487962894702877318262767347191363290644103550244232549883272273264645518565825298288899764779734796675447841085459840604024714252805896736009435581759226113557491187553821673820736910867190283220854388133043090071319730098462951673631415161476562794258886116107580087097099401725565313856909523640801901734243035077571015348891091097326021018534746248745671334470543008326021869674668704055759972023951065875665027369415838371977954285426420293894795682964814843248384967310071318910316743927518969759141213245359895992831744332758100423366665970516569233767896813556801842428315423085568496164458614193588649560453782473172374475607069134745649876262284756048424531116498236545306353401478309164501300058259537033294279461026339898095177466716440957077269217331020202830633885576162499714318050491062071165015544478755640760674593598511925352951528166747778202467878991699551263197301386633985523938539082408101568261968420100790218739257300273309758010369046712842868816314264201373151316253586481767325144549820662124871506867906869512649844237813711911393481510383998569617336740669495233791724903258009384874983616665067127252127553685966056294186667307384370953918523893705019436393988214060051886647567515335319655236872110369025760305977183892243061125436422926871205479670903729823908056450090676096471680798029977309091138672938445642499309248796955007999152493256316236943896756147238117341770128275549817609130797537332185153864873823511975837828127337597879951046148788628447942507601164316005234137142694347590427692047602500462701647556342928625019435628897229879402055588531986118677461190826518346608241603866717089212777520267277067973267461367447563599836377245411165770448993569164260986781407576184838018993702810103153834257364889206994890443088677484026239410388111034826517753346976855149219779877288531549953064297426997746517886455897461368913288044421698833442381912518120997720023120566627961959781686321572764611973947066205391351524861138110940261840907479880707157646846532642731132158188200063114022839274249386806212587320255996010960078606213114858706231284482917932897425164313375200251541905111594672860866845114140177861335358691488952209195964153358408291622858750011982287743334710407712073747308913092206975634176832781106226086480316612525812792825689670218797086090628122762797273345538066352733399249425266186915038849245465291109222453932503148099767462259552797246645791393270670704182599116524599725169846317533589026592432146283218452975433413554202827798618598711213353454285251390595083982481060892771721773703609620114350261989387904112038186569724517710346650334467761405947972590981289648644388619737702342563061090807812364906679069679281135246992586303904986020868018621992387436397724893531826413410628240796408850887938686835313273104493202410804942936392816525238751255446499520607769898525417484416330135683541026391030855086024529280943464892177193598596238526418267442625060726839243197904828021855108101049112857871206415527727656126389899108746608242173492109702608594474852132084056244139718587468723775030902045318809643700786599362474982365849494894767103089975132392476835930979308955452198351094953854086676543299767793835769732553166866017343346961382636752431599591510192379952348820467270391777520771296093408055822706664306923864620038296325527959384093613992064421424940707875239296729976510675466328530157495892340938543081471232950806142128636816305813597262991512199586420343646484023842721170818471566469174228600450991504512492019175590489952842877660975621108055454035545300192865427219973934495861577662932825008650808623660542458590688655859459490820790553085995109807307753783441351569142855628784976335211796671769661646036137812587985370262079542912445245657252983749844600074411885394830000298782511423059242331371250643870617206811446914452130637877534332565000944136256433093661410501434987413492053083614924942904636922717802136571035491479146203708078436048487001737015592017864590696451145590394742868289752217783522749417335481933112328386464032744726906612044917934046627637073119516447973260725321329318436509265692687171243967340613789763607786439992425979462555847507600665067350413839852191749895815657305633937754986367285307949650182681457082211792786287728297102512713515236245102906326168384396816414061613789758408136110531293735497023681992469975272630211032109227213012049738558429254735570309152051016616496552415434407880649288664432414002851399321515566483276138693840544786105591260158727467440961250810281122420510375375769124654681907860387093862718391956820333888900808741194418929668175678001018668117448796962284832835733343310368377303284859760436241727949870722564738039278564222653933966377473188110229565005282595788361801671939094314472626608733409584682847070456635257985573194696073754352548331447801228362158850994664717018805619509709722907338766343837807674964812709855318052990915602049022326454956588285200977697738916969056613480504174383416334504462348066101783091132066736321034015938681923611719217206545556999991479857222883923985413518215632024038080222546623778290179571626512216115900404100471971979950693321177753728217843673917434487108423005791337894515816239190277322309479662629967432336447803577068218705184396850691991258902299886121325543333946129391733194409910796944177201409666793926984008084671829815570963739435204377545732725003303098064575914313818692182185452697016890177862280455062499549293548475595178966346408541887437090896722393207008214712832367217237084929902153766295501889802623275777993555873960950093103600944604845477883011247920889177009811109928475234048710253989897989833031303579084290260518742131974594789731179128079179132554165631271157024896784525915095358667603106609934430121590689384761550775597330900647828938170979912785270801275607815432291675720359475778799078316046391975285946269935835145776848447240033853412147797872833844463927441393401644860390612426171317451361829667208385931162086062262011190974672476752084718316876176728444992716198940272995166512433143190189396694712258673374783886039953919565491379871659070572523818008125179190158752521756486525744132556859721893290597529714286521775396549106895840541900479967735455444436837075102613571971156879638009232923299978681712922103342189553926768485429753427568480467353596922947416096245154182205667050302522179365739466694771333443221851325664104657612698069046566364817724418615730236986730106156610737098087431389995999686025107106847263122974872841634514904609268254009914392004309005812093787900330124721018052963451458581304599415739472039938424871782780500360755979451949295728778718765492432460163937323361483114872337857339605193059697090830834029155537230143934737992894541619433638950089097660836997672981883227285591819651855983632482027068650774616115800323194760434866467159243690109333339444470184402693619903627727893850426602607216080197317243291783731372788543221218041782237247140243838908700017649916866320293298616236096783226531925331692456117946184573835121843756000426639111975669711137508283070621747598967003875392318262086130899900921884222140887087657336435550543988855970267784786335985258406830915393766594465440451184630381401138670760035367744546988856796312877607772560000533681912024237242334901138759654236552697605697920759869234118381456233887688323003543672175415410209907275492745897892979754183851973135148945388620184421268381244807514110250552863708572150920779977703069174374622054049467171422297648021408390831260180641429873359433540453168312779765631825901726120579722067232327696714667538216438332107921299353951741758640001828969729093833418642369755903131248976187224988738220257255417405427610995128473348301099400328923716528008802241640927290574972959135678424499407911685974202230111011004671046356132526719981231731807557777967210167989843633512549076383247024413215640121317917343374899131425525018537927080674478537003792718744157405891554944855848031985388799928729485574825156544747360332251714436778431689497536909099470135182513605118721905683715012498607658882454424429942973601616632718499036610475837571964265956257815107677560393328728601555229884465727482544537116303265633599665365121097921944785268639298155294954693737410188557765928219440491959991444213243392432139339540324122441274030166704969349799109730997994072583706001891148180153277382725486260268824692085468108919583338629190007588080665663427037007013516877798591680341849243517752798413786494840139143581029535738811698126855791580466802208056040001904708625319218121084165840366870564144753552453867354458511113787836405358119250667638084374307465554418809703511574430307108577859219056074517200097928558730589581270252920720860547170063923697398066827225162666124283183642156489617772137679676866532426561526618053460543372899259097961946817188577820054742218687204315844748545813378959724774002888964974048737714154756753135498021206782220635932638882068675587256944495842172707908945830470390267446123134744499583759672097825225838820434818595040444284523100971529356666472458453848405872211835096925964584811146524629436602547716209740546551120332879009643366332116927530350899048298377049078504348889364792467393316149204676567399191613193530749563632377525983585680496791636676162609863952581840051939255184946285356454828809990231858662334792032617196471152077210644389113971740828925890437151990488236471496737075139488221675364294700780405677982072434067692896698041146669475345115630385555641358151698644937906163566389239216115890898935713067425040641369897442037455548282552018814663498226359135870174667554620174727882519953818111634422779892126309188169583459081201215922004104045482281704618669105814964674860133974920705731088309719840712488530932644070125604213040022401559968601853580586182735263212350949368133712527756811952061163480087865619042509962771793795156439897180873673249993235637771894086100250269162255224053632817646809045456850669210980059519785445484865874971651249925478198373017396601745416274194433759282440202793918759915472780428106137864904858990402256868809401443939085610371689307850618441216734709873078344841064724456347618950889534119369703742152767940391109251232936171734855161089343662501537449366603867463630290299980970181016030899099401941864081567959980401178723937767396884636032328997860430314503205400415997400074506702831258524921953077360326814837936070626553109066729807476394920834996685626810912395580573047977478528145084929541205391947703743314649447261900982431061560670486233275984956105968996320648562474538896801762556484336536022091658632953278383810015310597435200135830895907663843447824890839957015456189846731035695066017202670629983824069093584289988534121529563190646248331340462346394918367690666425616983572375632599644098173264062705041712175562584113665333204337173181814554624306987106338612816901475312584580197106587861728674211968964795018983665270238794052799289801691671382313563226706390589790238157976167523668114332408693571637921585885582980816063681965867191076228718402753188449843397244135180623875784460520973581686575632973957512488685989199454092960794146041892641733999199713014221724150612631390276466355126870513499363653379613570157381030484508839860189276639360212246683919953013333816343829666986307248057477534430614072990580373014453870251563611878564822616785376590391929802661749163112929308199623414196989867616431267381648097145537768683963039214726017881931984601296291268848637808236338214826133129287988234955513445807895263145309686373925824676311194141203458373767175131930969044200425941958945732996567206862793432365856171396811433889823670035519469811114491775224444719908029730651910798319853700682878748968929033959941470717613504626759988286814385440232916782776821541378567764688513130575567931890800593496712867556942349178293584317684988575700109461880096367796724149680017741237902867712596630748977105266991923543263657072359488042904044025311415434373149156952751602457986383411553435128279938482875462996841547409455974457716083703786848488877681089981638989955248541702111617272137889620506366512006596577393547194632158569010094255114658812405024606717050446828059604939711880444953978942317462363510275682384924150874417507092924250244626674825911082254453268901457006203310695490057679993659728020545588595685053013968572357348718646934816794870775856460740162809486493823073963520337724730496012196147772993335906516476064276856569193077133617530860815627318464589038764898670817483539725584762580798761869360875036276571902068533556528984998005191387291307703615081497197619004447290949824684499041505651679010287818534673337038750652463731436902693368958389502809529741928608268283259908611127909852573464597965107115012072808660940014750676097866182986128420192320157178088598624611098094058517673179800873937273718358870632183861299719106652883806915506405442459999597728743526209736258941620377173305065394768720334478648306236165628934098630893991506369586393658609055204056445221099828538785322113867465958423146193100433011084420604399310157795072666733813731954480232427693420624154170939241860397063453613344028032193747587570199445026378548291371175052109365434069108033459204617937177910551257423548194283266506783930964028439348590812461331974579157773730197211191363031055274647320469133052740574777593208489025156425144775899315733601483074112295528437323232442678677277080218621393330338488767332614920826653091642668247249705110660825800298132196706099639240521212042382491018179826927032757333311895562278069251518588916444882992827614079433313587837790708791581239736871736659712091996267337665648870429843283671100199799994217596570787931148323214608437456811572692225120965991475939416250766187137369011395665822160522103925453981619649867880114819218182687117701496019337101953794113909051746591041869186564023335413420164461751102516144101795463495533923768985679729479943060912631215089394960546297720826034606621397740801780504033458112722950325367850972792243954033051123816035855175324746109059296386295956233585456701675134911164331318042046314435843829867478068096355183599773792958993924293443640404951736278449518525225631208111475435417930125244301265642344298738913656622612078068135219544203962361230539818666412154610545330815809944971762983512267396021616176212300706170667317072009487978182521726178120215605952602722713495539588149966004269784648453043900586198791422263687932455548004371387908637484325426519560181205404141506043813483500407543342138236015163815555779973644529100311622356879915518912376389956451987783313499719934371396244365904479537212969533173913170276332450173366402947976745997834223648649744804257510332062950228927974693639601678778573046834452760314910176433994329087122877328540354406027751323714142781589970213329273439531182920325524945822482561126908242606122762955481727538255081183042825878380176993059615934177021984662014813496072926235072487506828427368865658817371586259449953535562223795909260742714857943550312693710578986146265089278439967070934996622926602989327922653085491154623635214514673735404792862851397966416665221722132876568855384309677474204208958377079669252145293908471035875708029493911141656114020272243614780317609955213501359948793163287005070275190550725724727263761258942283495835339863516262626021325795936966301123952569463463435527061529297888061487903674859999889449986724355068037670150833790438899396313891858164269918764893338220799884939470241349615647800293796622073067663933259880414970348639442633999925739852656018863641583269403022603916826255728756470855765417229975821712575154287251372964121260476578463787767672318078694265130432631338168558460846954879091182448592834148984337988993405573899581880440247490295507802025737837255723265966320286252999197499420700708453415631675674366356768653303662809791983094502048635485512350510712878526992565654260465331775101123028005643503744161284089527048992797259059751655545498393981541738994430958117655150739672102565556935280678599592828962520898816085428800180389180822674565552980347735553869500914403350801046907479767483909246179441213409596640226909931783163169401873613815639766502234136104476118385583862110007246077643092976855396249055914688488114109016738051612250631867031732958580986262627946347385310795013509890629222496133445786869911352541113251743316620827674521033269686908727386129183641217188956871691064675738273528421334231809806087722566749198983189454325056413858265394226490830271573478062873176348562913969415747007214238645287149131652953774401199001609062770724430448960294954380058573403664288126204572793974584803991905302453288150256293597470266321088011637530771351663731964258963564161612532124144054571667540545914965992415935035640905334784244651838196200499165797809020600416489644796717680079041449856653095604631920193960419638061190948692330105285199378576973782114804609416685900236688218381479791730676642306806784436750665710456562990359626956876989672970385593026103222818307522964024615454675577221771578530050651651880460199220901306595344154186284449426542758592345748820357023806462471635182440584137519610321880144954004679833449991527777372339452219246818493102998648147274134873484155981198748010639481282610236066840081808687789532300883691122096036955602099049697475136547313496247495903805239490607246233456256251287637676673923760281843541295584928087395468026159881456663754748192889406143067959392521864837368191197995648919470861678524492154785529648030212895449052297846566309714483564628707772698141202880263690619816864044803381201791777177485633147193361592798054888472863474290410409659309353398140149489678062706828912156755375467421619318356707926221772861913537625813319288346976574093638219673763808896821317917892954292996387614333378560784575705310169710102313603339967080991497977234694346838691674489484591900624122335917245398582221734387372102970490700013174057967323222340830040874925317412705495722824643044680308083384119967125138647435055380740286389845151037823284837700532865407470724015950000267433620458229833177561732314226349903725699776402443874553795024175454818452865348917130240694639950747966875570366714177733681282860766193282466005464308963733641289266878171643162578416492181997596361647953512445466575434241363876408745774921713239774074509769142664250508733582110059975410159540171259860427405224000632428283609211252770828067358401839607534445873235735924548511524040391494967470487282839167890132589089194835053252785793578074701574823956075683172999414104231043006088329841864408075715530267364495884437184712686282146423989408949888078138807993146359713476113251797352399141005633517935634621742129182742732696351256964628731502202350566893730243167019644863728643000395411501103707484996083335855252385896999625604162444495851547033837968812662683581707711378544355482067473983079190452924702817070307776144064560960871623749481241068959468458247298721179904181321664481431258346026782144695807423231564390105560798274278517924935043125818999601731495405312462330528649309652043677701443597586851686682996950292551703057640162198565801692820193866251475987628495592531342086877055166540057633763355604429923683321168924827983226411987772135527071560808424859472175587296534698695640571251649024236487694218581336891149803681771740628017062389085013285585824307052651157820809416918077211527283779456359638996042201804360272059057282995857387242219309143627772930978858078090628768287110813837356310536131580393156536194059311489539845810550828430489567074020576182566339847659807812096403737058882439592788504379152770888230231549765287281718358231099810967923655837678011126654946707089289146101999012984676446872969612352311239018223371954287118419841522644181490173143633982590241805606128912415919659008599303176946035301800201381191211319788617311983015983977439031618883362125500130994799156924796259425131765975484320655659168475130632272507755997940084997797580666475833728869135367374755791227702287161980561484312315355730645778893601330688632995100611493021439095283654485356984604623228243790307940633243193186164249751805086855142567089628081467867268550806572773610992781613703627594704136908628274402961502338843264727516003200499617739093205538289371963807237964155664342665361431273808919832180442020392972931254800391364504914188285837512479991160001004450840278036768592816836498330276666608296367501128896152909135409061152710608117691527859940783677338980315446704147226783199202883714287918316626507899715036951407363353194787236497241604288743844099283421360710125032296026697503678350979238240202897899356718643286515445970169318505023650949484690318730180301123685849419753775537402260010203419669376209820897582093976388893873897898425695283626007393801061378946665994765370676375994671568525252475543203914275806075832811787635697128611334544849290240430516170586705764253662113322198066848674503182051421795677153168178777400274993913801392815108718847370090253151093006211982782717690499556162507184759142815507730802782034433004632874698143932986406728222964998918602705649844424805158679962114710585487557200081736561141164936025667986675034892433645489372694940620793941519159758394574625234484151670615228069617718678447350739551337868139041399974068499988384392085612367548954272597907495063887515132112507602294934573953756461114383859491377407839677261905426653577928421314588147842101244182248184780065752007079352571244012222515212008532418186940214705890097592833355352699177859680634638904728843397344013677576777153682361990493056117728307955307107310215002862524849878306783429617353921484573741773996149751347244160794544398647896489389739187537139037962851703455790547477936928802316896604468387343944024172982736321837135155788018265735661281752276345322773550582281179398197026763410991096045700243648594596861084311483505176530077619814290958709853959498845650152940728601806407200172428213550781119952397514899510379999231807067307492187731492932007897031757237609769807295119660560730322006680289015230881781524782932450364336912023504942689882538898572470982066338457601995252004131074735893138096568722299044808200070177032904095475454273037834691972500529984939720092534737530810884714192251007608660885806470165206081060122800344381581365970950551158312601491401954340125577204979567569915754552197580858271268899252515979119916716566029185136853826147911618815645619461532617646219859880685228530513507567772987773595103599079403650453339444489872260617176974688962120674268491153105076926136421700793495180039010931175826727941389363769392455284920659104231363331489847679718755165372681274709337712344104441294429555859766694012030627620316676185530383622847118510240408478261405712627314981078500217107480546095529021927854844334388478143878437374208199394288777780231158514844095217631175956048678215268190779961141250517761489390638950531484857965762750611807221264535875298296682624483296369047599412089534074935678557567853852505176623700594966846481059045138736411858569914437368060327339921117562758455689390914744987056007695501308061309965766110119003871866413594079925224947065614459317911976104420002730600564779092805681349470659717040786047578820107973080358128355863142327856757059380144881262194117079908169297266461640874387638874510709402771247178805258378959517383684137292924427428400718774583927458046885307857505772286402906714514511476354060908298944305461462258562696942780695756145044741229704638650588633041342846463267407576940899361541596105516169222417777317729106079576729045132133848480109534016645477624298149942970976257008482826636576521286873786611874925087721757769380012952148478649611403448337642359463315032675273417541334746156244838086219891544007326919791017914916528933883271716427943039931789816167965347929406228992979985826536222467211811589280546591662308559137475175385865882327958496886739654548884367186143822268122279418766079811855107935694377605885834569204623937076890302784618784997176462538519653544024422322906531959782360446390724399414607457514719239899095633957425048627578959992544599868837349556822782256490839075337455500692138920249577790545170343040854237105455424329425209811413579923076302231532040997717473943728949116946278602213313558694324720171808474246291763859735106047549982398724268351151928752850666679234335974749473073398636431044294258738431559977161497636640827536424252299106433850961629497426479185991152773905616720067243672620236760530375402553726086610822178321302984235534633681160832861676656021296570188977066813554892736479513231465655558542925047225448086526558171375887344914960593450491219593082157158835293257460331412887093499900035546679594813838337348891407805607102205518784135583478237984096160725585805946875205886646217862911700991779869881299497500927018521142188392331834174329569774485279957916477166629964735830673543102834886791669547367280635191610713230208180328299630594841354468358540067511256330921527807277795186733254008088510771134237450335137879675543735829203548624093790668142349605208247043963918482215013466287723713610986564343732102325705648121630002889874857497666066829653226348412877730741691505321496027488464998308806702255709787601037516001972793384135328306329326050961309204643681538785760286741989586640855838433193278070647922637561527969611208453456307098937164197788539689088645767432672374123831974458177487054224984040721174689774542127929631693466400994232386987115260849945724053481265404988911370473754639245757689274791475463189945632537171514222058578541086947956786142025183212884457872929930419644333205544617586038040618360447252745330571838634541606347591653204267883111223431240707647076889949852055446024941900246444596755436524690999622092025858932747297662838105058501857607967525163451757224313062069475119400500358337187839321118024694323587997968546230865690171777435692760580720496413681431276929766490779076674411823089271397286445379509746660748877356686230144310673139419119595748157680425906315576586270013416451729558259357804159297905414646064093665630924196362445178440069136001171409073383563943120959505582576496767502081231423712799273361161564662113371934168860057986978152157095738698362835413009769184466262975741224343064812480056777405471205194905449379410913228893460113148714464787341221628497892927336742313694982244603227273256116031628117226639251876408154477423508724652964369106704282065717571797687140140752790392131560346311681566550498250328486810718585136144459003057277555829024506824122224195478550904929110395147496631611193715852396885776203360648799779474453732077724668199009669680812041810812537371252512455459574424606830036422415600263916216238230946255727021727708219088527939422224560285875364112127984136947429383126665131746402914766692952651408538033231358673249314141239756537377574025483744666829584665290354249428535498087272019591215133234550820360429052591917777936024495264475438272051199200414093002725495366096809792314802824638681504982807209122596398547909928289671371078861696456709920230991403189299681558113159643691965172198337189103997675556334476710505648950796032138274400630901761324828425834777915528416181986619567485566252349486824500316849542257295945745020487606222298887354274088826081961790168387801874644964407674124563712588205994355071421656322958825623839327030053362980661416871736136711496187704150134836094149749423848173689755456173174899808256862045710642070267411589742426079941169570167652894812665164446500660681006467286757793410309835755815018462813851502103639331736127877420809212500807564305772937106661397569037415225133618312718229501498868521973111166170152740350480932891424744708403461257548593195326785168250350544170678984122636140043033082728921800127709637897561511761659030056846676699719072259248690879747877524111106889392468880579608465679927077280004584451247552809265786511345426509219805412926291833153873111793098566851495603073243143087414292938730743397784735688724180979209305012912948591330564028416866423660321557333535482819565376120906046348460383490376668535310242725074379493929874126794216310020681774253842904815553845436064635087648756221943086729477147629790352567033811672368269056152903056556032180591814788788164726013863850112622951083210601266150712818134252604439534726301472651077958111438197947258405353334984521504545091781733169095047907487609203283646651607141638580318106618988127507880122360293227810432337683007278871493575072760969949050524605936406457962889695782194915974715237486422814812914235328952239054455936008248763942210454793157725162182798123869092238221363721482226110247237397679112428817564174341182606296509769418237740019373783583282817180503665210891776729420085211565509314405752244603342606558468002666978416586953358265631401791839447283201377031476475491667217983777147825542854851313547899761662685855366239024137806886014262853689443317158746122775647400411960734036630110125209184338195549835789288255720888263376622183353411778357049151780762638952331010945404524610277965693987357922491875646099533716677243243688740880920388856812664245156743815444605213763307436317753679038569711232033946531066292367391192583600954749236897084629526697813875716940317337093894647056344301428551802644796280093733013180681202065203457594193480526435349069124141511695869189734436927893157688585412416169377465860530389490223218699943399186297713180438291902350380216560636924339002049710404030145517479620314027572160743979397986820421882534055676280455089593817732915013097690319758761070264357402893344755503436424336507007778281564119243328041921106728901647853428405505257650524158010133436658716672474679164228962259926962300057345270454735547213690624256346534677331349145080585592229084146765988082384284147671110733433348273311365731363213347344646334927169248063230043715580524761321381093093455681290426501170387639029766581174935530227529442369748910615770897043665188398736592682230749236756277979048756782806654058537939316100901240347217832071457437191391967543855937434754074343333954067899818561861097403004125357871138709775325416226940588225254671382492899006313265192073093058152046492582325282215495610662575622319205509375381851549643805766333870711200200097978001067862379930359028859955923230780080195472581186276129086017651433002157932815404137024295562536861505215165410072030740082868805767043705000649691458786458395918474831976427227101703554259185852076059488700581905496655462218516558478785789168593478965441811432142285502764264144026125039732445035737277540910409406186434779649191669541252550595400513831314703046550979726067722794072526812569430243433058904744901720364835521986619118402129476370277777435235133429906822497076936162650315494594123664146181830657059669996819841289087054937737959693442551102607389706028083598059500841961725928011982706699282439482611501615599445947244377755856245897537444372634264909772183358388792159229655677096244015205487516394054805821018184798059463305506297630497152551779175198137453779919282381952451176565654901582226272392939336578150954445025448442273413258587658635150816177361335420741940162847618767616527888546937739199456206652554865282840111738129959125530730515115048896323648282776646732212811736367150329794897876879491386682105220378517050059321288240262928039969124046631774584624062757792196813856243192558186913933044171044402546245125537493233472627030777603513725802628447153119963995058318345549259137819389325985623320646612835590292696537240176273119886620834381369665343144298783636476711352195247631352354489573264480917047863453640511352169735359766903172178869633534706544328456122608125155250727514887370605067220298980908696308633945062340790842143930463591129361013758524790980237535879846789197250489756011411031279490672253727592671599906819295760820447754123006817249983399427192737468692169527954560409375070720736412564493971965180800851130241143100284769682676826197214628562282003030628497542209225125574362544029458851321834556525185759025709614029165197513634364200206827444705146388908509400986269767980619368444388699892644653665815211193029552662592183562503610708725080473443927850301948851475638813165708429903179569690740025038285109068173314839931277520376772840068391355026080626222270689172924685936838197943241460683591897107013805723887684235443489603207244742584816740583932194393574299691224594602988676632851985984370896971043161338694169697801668913435364232124325703995028873786630129528650228384288537894277302694638689163403805813557793461240206057576971200083758098807012291909483998656571516148439315578415077793879172538521832737770065274989258315341475797365132943575901243890392672222156358998592818247804743584882707646001669425691867660571913892361809804922624540730113012585381066458005905134896733503627164172068074054323021838387135230662528884114991233357728540266086321278506049270822978617941328177106145730348309371856592736463378402680825140293506578350286838633819728458912482198216765729762707199240780105210910073332996189518365309511160278625809826924654970362727660520978608081346684231894154938392000517399287411543635803179264378540409075528848114147294205647894722255080595502938712047388484151348464077001438757610234417662642979580993189681361193517916148900538725166570240127189830643091493597852999595457493059000435177280501449405958682569718993583916502624914206118990809990115531710794605992760216443447352165818064812496934642261551916721509426541456123870964063236132539631760087037318825183405225916375558287105437193930551901809318577752319932927285209590753532985135969608355169349074069693092670598685758924498577782301829829091677406700896943353424285150814084883105365541157366741075708471233307441868490772702105016012316391941569833035103532750218975327027572183785800960252660101185619393247371025610427489685045923633203001286587152710659043538463823648309078936062225272510998399809773592781723903470055738859457698342272985454146502248962779251133757100252093015371275872024093254680020263790391185176768916918299910349095841861621646578772360016846448580622985065537115803566344545382643861695750991952941062642192510226466592694265783061193449099392795904809881112354562966344508628779120745791302915192161118126723837104889961072767321010610173046041035105776331412309313615932292475248256626741264895636530457977785190803348265657883545007948017576046079365574524959837698673938997181857755641388670927324103696657606469927040668013634729650027212708915385612100341431347438831507106587513604649868837019462083018360091760157753382626722146874813561491262624029012295778546932057426532456998589812679079149607103953836299071530804305746890625464038258860379753193196784185862200044935996968700558268970567094662172577246231875720976632444090739704646085061574533151286746120418818466755388725541691148275725534908645578941182319438482353780827467042698051676728864921079039852448418175780424782253970858703265232913817259863837338665404177297003261500658555290119890286583366768104802267168216438255217339193081507138168380657733569573245076369959803048182905376859145334251877861727632496048231797995848977305035477700340850875311919489329882209805426938456219861620269192198371173213540074099619397720511644322607196597700373689591867456331449056564251842198097925138968432345442088490795895863947725420996562337880170550416653288839527025405885132748868298047257448145056379661672264787716797385303825005282536770357679119648599185728730354655839576942560614235090259346139481614878694953766022672159640914843946669470513975847273541952279097286417077962163756566579103249624530941573701551127647838109744212025573230595212435963061857066332726780495982349691721001696405636200142092918732199245712170740451264511451264815203829155077468710733398681428146582889454256438508064645404184680442018046889079447601517185436225123422460619370933457767959865191473791206564540367541247509733437376279033114816188451842294731429225789187624441288071677172209314855505566744487965429738127541815758815575360572593318721803209393128821857436699419450389071703259966605561436299710431961781613090170573643357350661030831782667377408748692000736099856049666323924320754200566457267207539366217374424063700022813016543349096963302632915621986467599775490287761320120243397371969737482557931820727167647817938387613616060664741693758912334862642986571555743340045581757324584752226001296184897093770548548544304138295944126678932743788668742844173366381622654192069234500010347331232336265216092437807935055018432223835727727605724785299983673165538936474652450367825433512238958472143421265635247313313981059592363942094665025116648333834389606036191799067298803064891314994863889647395324354918934436993540991637085645797652236658533136993582312099636065712056998443395676795281298043021519716805513063163199700324450037374522994652568721850363904239598966297245874628175700152767136883854207653015381979816025591347178152817943905802771767021474122481723721223669022733264789580000209817056631249179758650015223540030964461544004453371419861369179013342803376893772661926851606113044630972525235550991918852045444462012671414479603143777764114143358554402161327929128960750233403314796199594388508131242132062407615014176209962054209467426458374239457822913483793823826062541140018903819446100037001127174961868623398436716088379062091485663702403734524993895310553035256926086149899781021360261823933028955245369759216640438224036366577762064515847124059151834572688890497031884727374825423179967062451586838532824849902035156814053728203626484358697454999791728822085927485779341495610509799851165250249293711068261103723575894090217924150420725620517719764908551993917038861852408728285375941703626336300576532072422489951055102703733772048642846671925443040008418675522805165831705896184953161410149473498988276273256154742779958790376212770578438944228109603275490938743554084258400925155504484469835039971493272067303719419662418311302345802825065702770633236973690886205476323244088578665494958183593224584368877049409002297239690571032644394534916072278167982883069197321573448807532151538402164330780083523157525299658279492696945983885048246135577407929988256370763369984644720180932528517003212316274080452490378414611103335558155530665962160875034666449416394328240759664275215403401629750756305090509186911235234540213079263536414812219778421248502490886171585431134556341049564750856380539984455506560826235021694641641099122788647423410421101913107288267073641998378100439459525728750188873235209681966502544042211323967664956349054253891292785274752483783870575696842048186643692048107770183100681618165688454110478783764054865557421622169361640313130063680933137457484031105422435575191266199876563936182321157582804496867019849100474594758406589576034880862529674667464302351309381186641884336414367787329164359934108201229191492785525566802154922785343946191143614488888681939150639099423781035546567171353452784124685805264535493775294206106708390994375948006082396120860731969856398779319070978994339251276912596046810999413129978947737676550964909922592691558404186064647634103502428441598101754666656912619455312680325762775508402124647206046638566360254350006615735975378514543842770722163618038982730727041192395399833376984066511344624677366713091109042883122289288715152901629491396533849316861392547012158362925324482002051760101733690432231369229686488340457942392063487904561764038512774972758644040114351809940382756822558150532348304169835368331077461828821550912964522991325831089490627061915416866949241763184944927963926733224428496705285421176097395546401890283237065618205287319774613439544972192153527534989615587439271381127485062711943717216448473263604521130959999676755552049969500743902485785138023685980269424358492173039066514723674959983045947571401906403281504555994118104998703959634898823355826576173572163468506108757249393744786743072085022350878092808538700952014989332095594449311266213329356192646857979796678894000001398976553006886080984186802580543844813565847196469198884411330879236512519154163942047131543997225786895405415804097035833734309917112413708141300910809332203544631187045232382569157243679581376613795147427550615788757821155216876486026831079068749474788067758351713116468281088200837080978500764931259222405735199475961008550204238999753797218135964592142881936132010552322595663380981053138406215698297040509482234795398986858394171106269339740132283914742655079396766478078446871547108738603359753410828826099316036454704814900016959189291593408547996235195089863824813007044137954335205658113129951327492912998106913235143725265754033772866235961985521361239846971821737974687507624827610521751982725157210045108546842658887370762191643061856303315341997007663518005507522471973929569626478599896186157646430398844217217144114596715337491378947428050481371338660262107114229499569475963540479349480610959114455661678642806628249697220431801742881626923279637043235445307925179799521251385161671925842220475839355851374060792632581940800488657053382185280646504849365053430018235550945080785394821207630956916756618262754027110479509579634910436677276820727850344997221984157660918362397290208084961914907985233242801259441802341750867256538996031415032830028788388350329564580284099300234017772466378659589149131533328415456231396638058917193103107377503707958294639453673277352149380305158934954455679770114951156932409331695821335874422078646738391285129933869862551470986496540377062586046195141988240698916816848850363020890135140301781119160621235493108859959199125965243216564065008538422184897313498166729803076043539474499211257844184149225588950512833008043240061527550718165108343668105200803368763610740604825598827383119046069234502543108421428990402904209879650613526517856472749897381526048720019271947648178579335324854285920028360849014598176551525227584228641527094745451421004690874495164442916482897547037475237037440883301161317125633307179679358390078858491391991484258096374730988738053718743838878270055544044730022716710947926319081064241750441497396464676799283514750955620477597298609805572984954100160312809828357357255393034499368618659311777453097165491122486042996651085106978406878856276916599103460639449953944658013448933250550633749993596671699821756654776555357635076402931154592380616326070135918882163773010419647928134034766578537022746771619035907040224074241450034312299288938358763537348956645507639773601600036443921558220561532875467108701668386270219209539564936850863752072029063626374277567182184735831210425293843573530396821006728974653615827154974491623431011561114477307797182155904291473223354020200093838332481714405002234035149406302267998014632476738797361492340010606124957307971219579939008351884664805620281476147670855496593000811924022826291756114615192960687709544933013682848583521378594024414798507345008553409078018311575183123201753158261971191669828726662630719626387719525653229448630675563950622899203275135529509427423493053850469589675607500319898379967796205702319883979763649245688795563934521117111718297908965364695800358523175124455854424559110972662644703295752463153504164899254941795781320107599302017439946750578319760565988993501146976802048523177879448900333369074077357613805723701279885457418625828579834700641889417384769558612061171797161210643824178205947308559995920104828394469026738731023240876999802606786586855239861148647033978066509369713653991682426451209446309501164276283903496250744983617107634340882257718090604698092327614133757466689818033309848965555473015834662960918318678383700371052545741582118758895335229007160002884550384888285252913195716812077988426224035334669080527852696493402075886697288346521156670685578641784841631402205134660183990411330320061679131173040854520791916814453884076851254248949129081755454157357283421622558098490271805317167385688810056123099919370157490143025117484071521794716888395375375724556491845097542873199190930312713326930512928836658152951977775869290495677806572590029919718966263563414431945226952097982950310130369540119380348637077091755386800285347478358139461490224493701362617761905692308517441847129182623156254606547331049462569605475230857603049166612920310532445784676060139479343570134138252475566762200076827064359774063345911777592649394240644841003424399509782446486110642450331656022817913213929186134662229992178342178470738732315043101616551951492708038581077096578859223315459785914182112453160333920092082574750541196522594230652703792618300105674157009971377062360378043382037751985306944672333683394009542788305003278825121367875963795620131421514236529320964041349756052502422576737271825079135590795085556160569442063853410387059771254244834624996867486114284498510974719796208641405467404031522722626651462178170514887120113426007416785102964355592248919380719305056114164795622025101587038372695163845353108640522194776381545920574963314520645776544788177880385189632659921092436604603726068237319317400028418208049112731493610635681277695295638555332709702990107776608286916658519234603697395581807704018753011949434065404774978688715285915937448603705565574760311061145654825382166785625613393429278476434755426866779129073322147029814686713687641976864904020225090080870152957984093682162641149235228631833909121647448043617038695131357032158916043763242600276577272248595900457228276593270445548713945069964628659280910567001466675778375047013661139220667604183364668866583126194889891979561075489770892607089902011577373823307421989400624681845533434752721170761418336902349834412263002928907058862425994764040025284506454656947789760685911971037996466323912755224094094104351617119556800523574721244278468667853323991449922046292753153014910807420136022294908228309213358124163712724608348460985752975789830475677606822139850523964507082375229281403742469006116045037525011675804867108210172012623051848069578000433107960042141006284520241847675212821529215845978976908886690131685955773153143174460072990078330793365158779231060918095804099214333321587687289874747210278514641315117641755768576337834824378590374674450333195269550482345095655022926084542418069047882590020181926994444445906392360586187268113849491159716429819400464940280726947288034074116572684048438864169982044840098579443765963244243319206254242034651313116965580222069933762845097261884519369764847470559589404957875813168462691339206650044726046855454161950422096053983973409993293809580874101874297159490165894305016067837208865244707905109446206339551103786404072665230163043580272257825388653237310402320553059140346993949710472424213147695294894958437060946150508574230816762034831150509675807735428163614407897224230225652171506376659446897512268404076153711714076647822787344490669203402975260974730828628735018098249859129365309034822676276148451799357035194281958432790425499710853083368465936904474226154286375000990603475687795243862455777625206760073523714810855686614578841929165998801823935776965377576218231512309486759554002653800500683213664406721260032980736778661039101375860515510741794984609214698468888798300257952075370752137749221060936951431518038575877721726078672176906452746173667300766132123114430808213777188427996756013066076626938866470952598720371567329542876327302804120897269715705400903611100247670809168098895880876625045985583987398568278595715647137453000851985073372931053814416142418004178109133764807420497848970027179144151981117479807263869552640144536328524704047935285422865927409106546711518627053685734497498229174312570615558860473036682822911258386600047035763967124383599703848689648559404497616844471691010927998961557631723866426317829686128739645371121058400556898447799685428474311718990565950105046946320330220229336253954375692230258530924798564779162495643536473679535695605456282095998799750134617259273351736732330454771949106632649962180701853191768789531684142804769120960002236399751581512398785574477367888312971205082877052921020886775783247390133163834909879697283274371512132549741077447023359965547638453422713755245444991914308908800902359835747453979635776708484037178755214953317047899080577852553239777868549222422623568443122520189738626728545914817280371471337581066831308638735160486987945590680337689755046231091254324152370857763740013323813135833960080057551440247656364916425928281051613058567496847699271806471768765098695092838590264575108823912779364137179436002977044341004263696302243760710215563607423381029542745115447747310378389449935514242049360079425924560661149175234228798904636039154070375721647307698710760380596435026956646956445340226486290576291651893035313301813221049895483186549955306572096494369319433895300527085761572177037532486037379921904464368086058214687935163661301200876081820766489557583524953787241712851276865948122569303441604498250454083984763042119228316372277011698794296643884298627893129853364745132724675896766099074282831054169530910336091305447752816144276744210713555534245507267501984933608171356468874386563239645891067750911253398916319029855483033217381674693258644972501046287934821824097573098106735054002412310616731024390115496786558381496557675711712289348946823446702297840938048177432313264469266185359270169286656477109309430783131675434135932622532918222919061046787634195729020755504883275850187507897743565798182527187483345733109597191006429598426231856039735652038107298826029547863050140589329571990506262116802334716694040133173031629376712131499410889602450972213231771326431202877704276426352442102808398139720241667369703291340279252401124142064490201864043816798586809325816327997810794958174321163662480823697697416475127875271653725702706540722730195739007822604333830686675633125107992567117902963636526479958834528121808621435645246036720185929294300277183614309771630315284078128649483635865803409918450743954060006606600583504462454281501422897991196995471960825157871274867403301124408306671490389468456295292195351098803483554589548343445485724783294135161738503624740807747332849497535829876351754027973133096837364918087598840836397819630312378430935636765551402806705290355396585141500755801893159720479656677442471232602919627420633246863113676591204531428259038579781821816844819562784627250470611472469723178103128821794257607971034728983674053081252174707323859149820079692618697046571605859807848706933135019891520276870381349381516837267773248457222976885913606386035712779310125107749636614412042329337036935167116255746040386096304471783118814484934578711107303117523052906679107570265595682220746548331404330019870083543933161741610095992301084897625910985693530013325064402522123994450651942336734392560683451895000133205764949711617831131593283219878130303267779562072478799194453271226528014208195284491096555795716504874159946438831747537222062425241825096963327411637485004346355347354101290370401145243695918719141828932778476313095267889971245699766219514634181622655294514746843223420318145332211821634612344128023804089008272262202763769922476392061909128118650427877108546666002029682034856062808710369894652804531179457005005920312689448854391903281790031256266388645549382047916530712125811978382311228139860246640092892865793060446165075282042394866348511539682320977962501541508234620708107223276184478924584865798937378552330309626857478531596950637038643277899396237798052369947497422870893701573837831137233965668105700687777863850113315658774033431741095645975410762395625711649269461548388114954096529980503919544779504706639925273475960695451028474896143713180271463373095343445534497492080622070083906091894935903520984169008217646566286554515825131205653237057625854957163967877434266712809251575292291607343699332003582912407056027289650480812934792673771581837691027928999894998069966193615567720712261325353373763060487631693246350719012770709288377987500078950954745863686438893665620307275482896514367313886744157794630097826886774705787591622209111432751033933436924275767158253224081549458968625064748820408478873459425545515260873082142530518349670058802699815528660392437494932820754471892960195995919542685094045081590685268193568833012775430401094254423173964044695781490215906431206263644063106368676950216220851233887443273240979380051085398409880359096349777820088001984347541254364653873695754987630006410348003811820295651209674115323443313679188004694658050089858938517825340848953658291725973054006559376643794897872554025677173843435998769478901502296673223082513090742245964346077221686040691476035862279300652391135995767727206891832387853172224816216448817034608345871067806219145322612378473752579717122140258569709730524989490171737650136277462230917287861448508468033455381001061383156311805955512427364699397832666316172052767092468394442389409015500803647596294524736059279468038539041197927176787603172007326536104494516466738608803792823906727261248825003047688169995366924620824342896852341580194043818991406035771120200599606911603198142835969842051492963596428323769330747341950653721764257267390621273053981071850062277966066530218833976471957541687247866109696973881051557887124723742768220306997990249554731661110705462697078140021218207125075055651480864496114970132597401406136391207152790467770712178507408328242973480037352186565040217031219947648035542638758530062519275979528837078958216599336299366266930093475121939575110367681026308788102224776382829935846083057676876074130720341605358743455818547834414254219650773197038121683100067383227301506943946197916187479479258485624866008425878598201416658493709916778674292760166748381088031528758168800534403921486979223740014859728274849455335975415434486306294320480341842771829957913065371889257523785453969544861406564603244658682811743529090568367278084934777450301826108005398996324836393293415253207792311430616005051710346237653569213578603772480148982149365847392536241411960376960739889044379979890930806868501211445311367269725808573946992725344028213727326280295100315206467662647174156354627754467475445072852468931702866422620706454623977580425228882698907321030527118635164264492807356175875621394509051551303158476312269167680906325458696018885917094288489054167864937467700082707590795378639505310038833666097679991169113937672355427626329841399894884736674697003136936352167454608554682035216171605946814371831093109504911506141393478378783038855257326151630227539133433760230965916333660620603032991772110537409008772474234302809362762038517179163080607714580656823926160609120433339947931877648179969445313559106541029638450515310117573929294668984095268581015339688627862816154502435759347907516569681601111414206036246506029836717506753631574669268010094817552452907201128791621114640218797123443674403454092943114865039167373153172004830467225970436104264229022886490747107811895805728571179246710922075665237997472963980919358680713442859303641843029337753287016062328307553509592438920226557540744823589592801775980954182258511881656985573678755460966343950397635720176319095361948834732500336289745500419342386682211008091051324134426930229489915207927440344380786197808836971790744793047403490696462493443140886027819409938331330262401741688214913427081797117915865548511527414535802250546293988425112865913513099188845688957077974294116423965492659693367972280643282652338197903318424341398200800005045387649024315986989114585582747983826244013848951382063131062814510169186215425589409096848130843947990770771158299628292601795753605039730734982360538067201484678868301304578113090908107776265510632125000525280049238893530399796914130299368074989944494258322198728736032840551570765103567796856905683365062752631817725031462542347622459619864459116771068440735661497677795756664161679338501152664626726265126014865059471605272045149913009490361610822119693375534166763213208534470165773251382487902440685930165253007231387698580559050090593799660270802817940723055574472353900943833750440761029830174548655990219378759578221149020415249549376656586981063929190942361364263749399167189665255550919176949977501984756481530898808109143804589647605925420437466946778155697441027939505979431631199294199921673070892327611595085975396216118868591236077320232474389902900061065626705897355554702342550942631474080856724576693792369234678918158427920851302466365852659616395284610261324081794284124222040530614437760735564378249390715639252238341093427778556652904512801355327302018492396378092445554907781481648045332092195577827523197155188857996567308654531732518561161604148027648739852769910260573435798090723135829342587835749171134268739453035899064626884600049756388132150478199159890353218631896789764941254662941086485256598770798264101281716889746899048372646974683804289144960747319634485313979748807631605981326448428444473526364812106066067764007080540171033343956233272710507758233281625247574229065186836441725042801056409308820369573728712828625303487979557347341349612851461850562546079188727676262776950003950565573565585234247249529298479647408826549540538281461217758531941137071554453851277952946324426265821294131513467491577208273307365700317191137265830576897518779480857120758141327435118117316696032649059111780001352546179383674829876552908433133338194338887903838125127774664945604965759418839356979475267910159993882885086919394314745320122035760302349569327539751543150080118878835883615190719854471871547626293374712327556246612981366142125134501312549813469786855655224228012128844172493546233679425231249466539186845092588638189301570945897398093451410564815998444854019544253640250651211771011248816394894159032776852011238822091362765400923177574706336213919720965540141945833319835688637018958456769426024376960720252078021157881516141184971510287839667017071169937813575325795249134201330719994956087865392304327600776832280053147271613521993365737240035857128297169946217117595134115245472921946939781571860256577463848739500691841865467283111446116358230303391541102995714426613601874393778212972388028160234937108243478620661810954626412433341729103811263627907308005639346098864037329296563705765315025386388906251747424215744364607092133484052241741877466527782928003279659180184379874685724644204445018464572802092594361906000157079953984858201235705088554597382075531999817720361029003851572577277211720961904881517967874750699772286108090650448440270330089170241034477331315096276738961859851828636122063261952609222593683649369529606034640282943885914618198074060972429767371389717980887800681704964829222777745406382203181074645352677528880137348917814862032164299128121788548831797282958824917680756368915649368792103849455758590330348443046140275483316973112596669974616154676662810696611702769176236655377714400817800392630591784066488191854091144767961954323374457179890280782503325692659012883980316138325567389331143666225201469105245959948418620552992145068143997011131148870807079872378999386043679302461284982170394750957469919425222632422868547865779538972059167247130856663035714513310285322989907531789378750637497216951767567710293674877886718866114476916625777367858098899460548489948800561839976142272808088471067606877016040803713646355874017057216261271973185212241367666789182988099062474668821183354317060153950228796506509638270987888893968067437075731850994850741375544854477036227006997417646428704633462870196610869135086763118272747795894184534252627945514931587343341118359899244844792892047783752255331221368452453415404063332947601271441787850073230860114471710620418994922088236689995804777284406751609994707274794268156091935382523421527120610609388367939101788401517961438552468470790878467548331087732385381340029625477385953771072734967737270069069581763575552000060871150548083465458585996754836891473715450945306999664052028978726726674546374019296341697679688825905862538250033576713083437694476010457159042958199298405122388561030008622169857451509477887376259011727964247929448412426984221415397980326412222934087769333135314169729305276697491034676109408494064189347557823190024047785274021517001825565543168963399302148176043145189855536958030955786554854574048108471358743682972869943926814306054043308769305016554109951389158754220291236747191599971745324141849262200778455310922980682927303490560409039603766192521390711259300960864298293141051858402048998104693116629846008503930487212040338568946819691694996973986323266435614785457110110918448124132274706313457960055084809701162558982356805301518126971952265483531710667607320996489205920600527907034093021412562325260061879676188597456416063586598107404768746756392576179103922285469542285635000789813421275151633545528269051234086756695743135239756397686287301514271349567997157092589776653638159947474333624736772267819254951550924566221668423952544247034546172125390164347404530211096300288748497794114924347649161200210568870621223968985135763786610255110551132217102868164787650962902197603741848363133533348490647769882238004463538241092135312171144799572762634672981709485200897463949513405858867665318485015265885508454949788732859089807760878465649347771868414165367463027083542701111846062832116047450640970575834135946129314102912022910634244258672660511224591388229369145229546139489854093550802757065777693222099353271868238476318029456351350890574286438104390521087704750341344962835787552216150412629130795975683629812637002944016302649869961979939351324535499144580061122523109126731040469185313935302493212695987773506829798452035063856953383469157871427681130939245375052941236245559103953790244293700409309736498646408316736407659255881866973741774476998321556908872342721495564037924853674028041145373827810135462553025276110584227919696445276672788848992227770879368907914985753873671929450506757348541955114850646836741381249975000415159887687573028408296803300409595919300017154877964305174244874157590040292648335544531950171576076615609538316636321898550882756868031669700195468591361296394683977223275346242109129582268840109050471790511385052454579058841954902652784100346309457061890380460516504379417443587597457784694624759021711603376594236461103041463993637800659104733366892232815151533250358471097034161484866871264595691160231320228126321754702131754523203173876046929928879799452471725829581979087382237455009606593281618845446574763516928772428669725695082675659958882338714939046417712848307843957376944391369555462817978384792495205634320615800717527216108814786427360593524913507686707555392288863098695872467219923951514413792043895119943967652446245223064049844963045966071699641186781469357873663157056890590225716649938583909698331227275245586807923753397684135413730439743393382238996592448249428229050384337856296091684426855850916378934616627356595331189375220234097906553802358889459145032259576007885798343491333636776521079276439043068405012182167343224634496958015603175834341223379620457237028770170812536271054667628111804768245879885213703444718806272984934305405811532996311198153447343941964447840574486235021130447076308369167796243824573495256707728319521211571913920246189399671460108108354522641768585737486883838277110309223688392583284615024403523436734980282815153058209751060721789799646585916598705445700504597291230382828334393216425919096108015337447882523368186743902262170248528700516075575086148947126652425812085244115678379084355555325905216125541128919279446022468099013432603184208437456173533599825787696843547073944375987805930383699688570088131864597028804907833861997939776039796304055117239345591422113900966905917627643926477684541534677791061952481237087389617394265171203255908150842849600132727616495162433674549403345148491301141419939114483619564263207673224187438066674355118875066749565816033810705626528117588277994031430667436796356851716623800007814348487058937118831170524300195285202209515123642892224906135694678056141394871948232488711125241225412155043926673611953758130951715129808750647739970915562923652213947397447780047932790018676044777023048431193301270748730519879174382683587682984312155348839301080048153860609159859204061377813056513870736338267804212983387468900336333967607917693291142067732188344067294924936128883873962316015615447035124034826978461109244007937082881587946511433835713786845780143120199338590841849907307892101470648245888458416434221761829939872861261601547791197573083919284680138428033746072867956070229741906777636353012148431152885741736841425833292674992424072983415097014659914759941181342612609706753819450831678512928524738073364643174343687980309216485063936466619097320253842783063327454104807654439964511919232944374972825924962221209437829388137176265576256914610030881347187839236799210618999012587032374658582679172267783981801854132828961426351370521604854526361859051936286384853597672385452687298271470932417170682948939837577261004729732384562998512996773551509788180443006105792103669313516428124354032412184223114204399642300119778693809297133597971241726497840537031709883077063362985755973247452130657832706429197936795061857387893658453318146049998457926875590263824666984713554172430707805769575178761676907361124366357254464675660569078106211695408113414528912264694034687417073672269240639561040525433961130790561824308892168712323617511794551008230733986802094952116189026824291189977570627640569000402378072823704011752597097283797125075986663913697414055997461367007855475667319741204595864626011527026870700209299102760250530317361342948202694425326600087954823013646307720704912399449748225065997158498345207731178943493796837862701221889744777640211089466865848156961018363752016751884750952247584935876106147151548330806436227729377505471862917028713531903642733070788695393716708261351175525352439898148790631547603374672138934163123622226272833416028909519233950033789819078376143325208057070428909743214870686663171404995259729759918636975278109931645939341774782577369989547202068443799208815676410767525059824009294734337592026599153221643695791557414471614202572140457415620685089143070941109097544564828045312736616399608639374680740469419389770007847484146645852813223768619286684074737953685831248279427835401826101434913757961144938991210162097551846488333680306196472771399744081628566262712376617789311615916547681286098404469616729762677376869278821807043775385233119171724025574059624735688510547797496254799549548506364642786754815475714823890812842928820422286368700796158880854796710508418879273379808529387229478092978917375157189318992411496222503595553248447525828897820230310460280932471857034342092673258620311004550185664283177801541517957952056717601953837034627032065723651217122093287984583663360091469888998607707693722427441471721015056428382487371391355070775278262946584655637356263032859364906154945009134660528368213575919725519124317628818626483018097841211153198487305153577597547372078402305688937933722819144134074076057372084967263680882548585592351623700286514973895386178299709001159358445631681166715788733200856121886832872808363601208664861911357601254732579834693651535761097315152859214977944239194822348086216428932103459513627868754955407579144361088181786574181016495279060137560010419968416285678753205843170126334157105728910057539291898825762877971820054844688003465868491899888022034542304183150144767304582212605104074880126561351593884810647205440384179169479469802478888442085871837923063278225554027482550551858516524768813937211943777068865433584434730957284701407585744138680521917877310747297918572833338053631907494701136210418349168160550326766026358061167624516551845828719476136756455550295588243224588181301768955287465404160730828680464003127830415444309728167753644300556479962716656240931071701719170735701739924228711964398880701302374987592858824547662837593929930978685990796061490160133930245560579023277248112995146797366345005761045176058967052792678860139233383934131433025284369149844200427184479757453769924328259581679720612835877660148728163158480833122705151983838755356945944467999165292064826650011238578227812736393090648193551093925707611508038309174735578829199315339090569170328628179308548765969268921715874412773400122826580033617321066011283524957703989428966651328518876999690914877004658630199293163776677326453837032149831192953637227119011570968821674363547185230449596592804738393831650151177017621375738824545740979503852837131422024158535293343722055893212447641098923017877318707552711769155426016864100629635092700756832593396120288434383604730553627145968833537568594285715815602721947845379082198191688965538416059824023934800646851619902350834855685798496703984874879708498918868104638700158360786457443133713318311163942804578557154712222623786304043991377447863895415492698057501350864133025119517343238380998701581762740494054618498973961186988347472945647791423747417814540143884985583358793129719217374126140601657556126290305374023742522463505076562815520699786850549222431965537247164865486538883664228438623107347191359758332611526533034770384711626637584869326439007993289668830037843182442424074435024086689175358382175815774322148046615665713956519060054746464222989073535085419237310920448879937416323925784247820747900650744401761521198336547299917809699483609003723475553232556699770330951232438848434587709781985396337059845250478749564228444471669768490006341720399903267033654600754295836345966249680036773226952160699739678018673612248170910046669235026921864955636851776009811753287152740507253128792704853327780053459171608678584258609856991724743859610947600539305778841785452323709866960287038155380511687990116300975976718333970945882564024326735329267899844625524685985758895974643951934117660837682643762327059124331647855780515249865187487127141570031069317407891452819307470249018000437923728864320673683269363025995690947412970169211760585164563626456154698866146615379776559922275980048011127809754033501330699311880856691434231477135001643859593491826185182096933003297808839112061987565325781118184115960484250373677281086919875240415096132113621434489314135728376014691048595858556680208461441785677748840718980167983378106856933207390451743158273129057678750357414112165227161476320539588171825575192552188715986645160938627453875833156245903660624736612506115589013618774044371889439449184387608545514907300271154923476374324992705012132564320041259196226636975013192333776343183435946000934592479274230521028469136347673099747909910343656788597508149421335763971035608034782641063796637298379424802126611608710868898069508672239303561557154355276619981221975926065013069152461489938970590068333893826823166735619243471815709786350567679294793729621246377443609673288432065591875821028557826651810446970686459520351985434002479895921857938743463056423005177669839088833352947130593147415193774393078441105977931547449651878616969282132736281024705016349996015697772830128898702031380927214113913079367456863498265601613576987333700345008021516240217808425122168418814801791798011904345279133266574305447267479348944695967008270037215628835006124690724263002475637837163827146146486349647886250403560643205977964935101641742790979853709220637377411558836674193428754260533595607682873082843716192433903545240604497559707033523335629937204108282396412502387692397988074311475958466249608216458979903422054457474674290233547260576291195731472252369083424516383284721504568195268519786675263549374463043585101461255640658654793041341786150943192250218696026916329041103602175626777572520047108056894273818971866673763947953060665277673586890914994332569883672479577253444358442666310360824743409889753320265045481127749042774171444787198591410517520041936274089892173435220991135251712609089130102122752277699809859244556019579684137658295244315240078871632668447552464535082636225125878208552114744962907100175883541684458215496370792837738232601558618187520674720135088538191078537785860140634766405792286035711410325881337851620944729932993723494864054232615112496416522432322682335497314106662473000582442216222096900982625093834244859089318949107267270712245502628498488910064025332716203673206760158604392795498651828910415609338785239113437378880939309192352162566121975060769823464178225600470386901082865335649331859976636523263899531162850942421345884587738915288723289960177821745397780682329809147897802161491624952764917082618176500490199891266599316345325306146714182071425980871305701739537404211829129610002705771551875804723187085347092982178920713917555121435829239750431594986989399197964142136186936473186784148136491440346819372316565047404008708564031040384654171168754898000773609556220658859238624987205402307903382385089698067214290910348332038471258158063094648829953879712250891513951450985958277664812914839996275558592592748014152739117693524319505217737327591357900613174708699172058081410725812311299624266184882159414097678407219207102945128718391021459560431027783863114896905323464894766211837003463239410300063926808485119272957332971454768103086013790137431411881549217180840709969312236454748085463908986282336314802332513510466396591640793570064880816299988798655552136936920733969657387800439411024557443085914302113422274862844683266684493106327002974171732955765047452282737770152523151705819172233634955325022384914127197288473721473918517303648222377835195911765380092073592825057917063530476854423010636135447648940187149103336298710667907402032712385429184020996439031202273424284893064140341074088240185044113232166692666867907789910899224578971828283124876910284847903643775326222995126040966024170423784713090253665762308463195185381028889658518823190924973803197298531580449225863700849190771857120198959690072520680591153941147651038803250236767284824230467886910183185433113945278594366086612755508852215540014901222619694785839934772126660818122619602334420285320364289690313207840493310802460070072116606142586937756631607060978720658791576229044585000746560533531546331581680416483057967939529120633844229731075094461180540255318532046254354220694036542529209709527870726549463923708647055264462887581653123006757851579795084575146980148292068122994422071480176526413319556617902338440362230227371364479661786938082147896383439405464214959955600605733303860082069305793813192836564310633606505191048573704035845525498728543792610627009697709098662544835061752957422357592270091092053468475285580176079067444383196595322815370698004334556487383176913933506311419799233003449161452999679507607513685043119242547687480244715422717779805508394864251434194564768995247761785690451612125159232243408305924019942008707151456995896586874901168650749637004033710556592608075763733142613304309027780858001218344931422323335852028891328165618198564584439255569731819280460849764828575297345293793350271758168087997918800626580382667942400245666896917624664728323600806237280761783818621767032820741755316127757550349687422769023139343630580985781000896643614720181835047580111985281661745706041867031489893527611826082402421108742882080557037517794197998017370012033403609296942578329461361175412158495479814633579198812744324739015363161908399349322379186943637821882272790330304212829286357738436969783880518158690339296260945398888431422382289994702321136898873628183453163027601381272568247112080473224925658412701250299892477833927585782741726568287924271351885207507255205618043398785309258382431743078712605101556057020469715345624149534788807130153524467956815694527600702872946350235420728462717514535682011498436464704617344692862762125517150744506048379363475081528672926302555037110757650721857437250720590970805229459476083446644244438779386342598471377800158895271721084926558774421485849594718421383898274345379154652465524316468606895354563966609123270758219572901667299803061019545301519128956145095792417953057962806686480447387456077440040940449952064621897276705949344551640590204344920347306021289460167654317422435587473833500224771498626224746072718401202930716937401662956976861917414880904117563689060700244506723358347524276502378244988922617221324267481729363680608054726114424028114170372126241898562472695922851983098705090169599571552326018445860118844660145686183132731548817435249864748525469711859822090690188854779621468289416416080559802359244736226986892551468667886878851765545249478220875573720741077541319006617709380757737145250915324550933524532304458574455245586838977810479977764625185709561115515432855876456166278967409687341118516088007654381150755131691982224201580574893155665892659500694477636521493357414256015845911015428067821824764949938099593049336071096076664821898931658939595569387322857949280638092140905405814439464379457715716470322896731195936235522365185462148886280493076352362631266803509470218033667201456918525041907011455296688333967019297501272852409665970845328909195548893954606507732506759632551462445934287043417331931841223782236190082086939910752014379317229807750648167598164233464839953546393290375687995367488115558097425900396220460015641540273693461662816778418694388892283291520168447196383533809087198471080914224282293381121169442567953953723498278584028506565309212515639242679621996973737407768071689511686601845402059264173735560234885781045815039281647942329996070619618906726479392503401630196678299656873565466673200052443983784029664726694494892246724424385134621337669720814154340462374114682824697826013565790986692438421265181112378981964438338188720602450075204562480654817971533525365246604156553233662359538528309324629029051543918261790395367596120862991177105326040289635873614890311163698370305372633433965042799073634731722455137671091118710681060718153097831254259624742062073003058560795247624750935350803467661581189615489928195872357058124725012843932928474330121360270158068669891035653147199901202744054801155779984711042524564153849726987976826430875939902101955792585919293244534747528360501772632165259187231073109765668281040679176383157971826050777929033843795174937584637065209963773106236934153440106120117178140627154259440912427675308770077268040832611906387097591362518958175856410253043106777379304436681527514066961916384981363301646701933582618610594718933242430079555054806905962617620885045623758991945903555137471520459838286552693856743203573504948446149057480641098519629817699608628905972044818310332786385817900782085675507388939972411230995267037208710099073419631148944996870854527770913683591233193549789552893541507910060691783344444915190442853681409249036498414737061470183437456269408039540530308414259301461367882629707989520546696944893228300508542562121127487546600623507458632935487619156813639542546974294740689562012692210776070069523055726089074800027806542526280378431331876692559673404820179065159969297047006351078907853797107708209127897501109898382567470849900914772034519801478904729916460061874303742804961380193359237800567675497701978292346127468247677442088553895836584266703796251792652925476059145755802591220423451133226649012327843885808515148302404972857803430610270749729911554079853114922366309189426362944259869773987615685490233193795706581213213181720236467155412432338326722274523136009634092569280347013700982841273590285073053713729978170001929381201805750079554468892640945062421041525520508862788704250575397686116729545638395637848987558555031671378357315027516924050187436616601493289585673455748405042710250980935424227499847404143593788224341567492254018057307801536143415776683896467709661282971630448069683303112046142825921141780073824450955784487952553321433592255777381328497809855686878198835739722038826812970412774048302188098201194442784131216426489959724171718822480235170140374126133529037965361145935535155536027607463819025476961342750818555213737416915464398970084999795500374796670318964411854906048664845850639579499360345939003964713112152268621665432218360483859000673213706724911204836058164845204981528586299619851644445415001238351896444603049106615781238534973045506606496302270442552893983440541967272238071935045456935419294952351276065141719819242330865376957369046197134265607486985561718328481121969974877031606988105178896347840280573044198480104403905684964603711115086202072799786025113622080887888956835132432130263812945046590607704915269353515633940172213530713797551910822490823025641084719292282279778602881573766220881353576097926228751423031888350964507977403650400765676330657525568500174547383941660678860939297269004686498023086218560865438119049303231923429901797131318782640340520716979088361427383986844242987107660572369178315364819699053537653498356655782140793558023836123064359776898828768971133312104301521142389235324114553473844052834019545648367568594658840364327074865682239148790612524493055736145508546994851766810090658049483906070396042358853500957399215117633386365435548127129523039597494713422322907586237176440055698794013208184764797116050483701548024430703179863553256021047968200164281632841175041272788763165795018198770819678390877739945548641072685991413178139547079011088168818612057391305471209098855027881086738097427295955918816218386828590053475177299381548796269213294114575211527480470036882116092596984754435936055448598173288351748745607013751835159465452045365515143592811002916545798481374695160387494431622784393630816231436604147622395846139130120974918471964320024163332121289332301982262662263362763202033688107413257220004840278300448704982817637069582437271640245016472719668190056994256681839642725775118917017529349164426305025311921353988505929074109778615339347981601090803458510628122230159334729944177441530577298578977468894383769197452795893599099100415939449705702618383150309574915463544602897668404050462630161284803376088047193062956931635931499060840733856515968491055297684596432862561840568617527825280148735778945488994093876524301241834313657046791503145520515432930293261007117518705973241069651303243743373160227203866149381495560530262300213652816254116019357963352674449753700365923939212463929864814325806089488880224420103021011925196615329821434492613142226802134197888126210564262933475652853147582173086750303045190041440735931673177094052438609221307056453701831127423783041282583622035753646585253923075181633280508259875507966532467138220931257907118454335534010805076055722183662516038074448732717754943109881769245182842898680042168233941636411849482376117950179068744896206293515417602068886427090020710354867591285954909159738850560261424255249451105415590314971986735622145251873750065927952424845714365234579799420642125439764105685933231708319257810349860093613967842328764684186752976592506843180160759912238049686099023681361750815891053283569068891276766440063071827209298517051357003651924146438463156876424439587520330991584148749604286044630691232457924949339811718940762797403069705195308782820423261641032472481812572711912078666771201219465525027447812695125462806846789288068655816501067889102811513567857543634967166442461598658012143433661753325025284368849156184545859313272201343906618887622649573655804782012229083928177496978987874362897291913008568983635533265920491328109721760195037816750195535078900738946190560857003962101923248321334835281320338239682198648573849947434229877787394643396736297758522237208492974849543759291002522679928911566411842401058089501440672779643297997702370393742762505678640336350123184064438609575923195556227080949191101366320452024984954435206983016930981120704331994435617006579770413243487593239020250463183399206694398525116051139383936773606112642617202199604966904096565761664376917864289906380056586082112278805845979316651178486077411144249926223906979775901939348013098655595657391442176902958942431447962416574003919159238223731899462298114871877219614187468842574755145588155900941970811680846501748974874544517815220916492910799453127003034159133535512704159324573683733146220295425104911970493201584644202038200329550435276060157071184205185132124236938292415942603395436975142154504766751802113095134844297148629354467705723232702414256581302364911694913364106384476250068043758026022817223898615817237297509256585733841777161056349224610075960951456651426435842454599542617269038430357297387896081414042627416647396232685397079167963465714984638841343554240094288483452564958351507542218935973107727580800957430640673593565029266530209654328123682924069717335298649967558189278231490285677697936235900515359753126139365396409399319121592541813430236258355388635607198871930025923765443267444036899527143201765281673252859049850521514175268197473145723253178547679205056101976718275608934645992390583941416970748479046031736176769430195096693550252537397001083162798027896192428817899420711360215643678246429488931693750631209890489875616380056473589591731493842619821916316158536859442407785336676108731025814874644820493126328227704322459447010523484091998864752286251939230170860988234795024557863885779437403521885467906125293338549867823108533869286975821575237843187710207545186539296172795425297873349332824743923124259674895403663833385351381512670857162321182895810369611668062639813730914136338193531447844476472537241495620288536231954307816717310072540524524926074945182642316809523421958099864048092883696696179948979822834676159197596723921565043241949548101587672931035812288907946982412608518716453448257951451813299020135597914843877206219988018248948106287314490593767905444871160572252644986956970266438124990462656324893506956332340872804094228158008708812115907252467053627419839400313244822596427267453744391392924034817903091509482275961922020783770077625343587708206904686555825253947898336879094121161504999678997635219724125630373461161931511267724227820924151720310977983287382136693463388067145211703965428187862567679210809749108787814494754738595541699895776743745414657245291728265526544931193545527194895776622206184777522201654763195305141052066743884668259938365654212721482286030037209493623202419838843276423005861129415825626855548789699888261343699168752678197325844567331233877722313352306077079224327155419461734418543004842532266149522379255487890086871706249316994609991036213415340787702895525935049379949740956393023528221915528435206801290939095753581159407546048558811957289413650184657518090452363449935204279270063560366242565563625910341401287142567525845689345264255947883723672746258920230725917336227691951569482209992774951584305330064449307949265235925917883575243393823121615136063826087407989104781500421000139473429363482738673121196634241948402483086472865798961350069620264246613473011835128399781624812527009138073626076917504535307373156329217167105752105752641986012837203550110150300683620201416802165487760406482031226673658349090098202564149281772979990687413669939092517792232840335700032329462317177575412486052577959251770592413885926297409968314383009367269272230849285509170683440160270961049711457965383541730193997154716739774699149298130415344177615267149946601217566242647994065621536629204178271817414180879625155594876351838201177140396627845952234627954388439079350399738412550398133326100337797851513841345253646673991992731890848771202021366551374769182321647048443013198425534711661484702957857822311196369790375683916711141304088436788558753998800964877552239894982159794577359614954518646959445226589345102788938122172364728365984558470199988010776341685440999871558845853920917249964053681633342760565349446356045951707456026750601239564671614727788071797098969485593208113706505662516624772476739223293344216985013274014170196495607622176968752226950625355305975489083690788666100572626866685190456473399158715734636021768501615207180128719867079828876615835507460179918980030554634404026321435821135101274321706862547327379540386581955665725150769045122630660439507925494499775705778524102131727189651773038412349569992792122079912012956959585301334359253123693616566604541097589281666804234731861633423947729556865128615710862127211132422474358030888763744433013069483546091265988713374005683977489424136142558621012026343788952004478889828801475807893213656038900342567931269561635190934660529411523530877326203833821738545072663940800652251640565229432713202409432019370417481338292205894727098156047399571748704972014703800025064105058651323833088134878368827928321783182266672653863287326229316203247240597868313664063103384185673905829037617566788416566244973952373721144011418888616800129307150008291326456810490331060242125507284117327610575484547920436073066234632774568046943928769347889651870764617693219060263882413386360297035359518953851872557344999749676617366117690976910796838539425578439144581330496622932579224502544842309062676254226800456063711437227572819184700021613296677627270272820774971931884329685766150647251671012277292120550655363335651868241411334618052869577393921928875613283601072571975495577625556403091187036599347259321358965705020425524204096409563795673138297697418224644517629277179828708675036070397200766257643315134061853102217248475253133760758246594247774905984776893328253326233098894483706213087043765837599658241509802992494730296732580121593871717283178524555264996520941469435905239914423432943325739244834191849185126553525131739322220573737932513171231427687727266797937956628285385534272516634157450884034847893962497494926100020957895652592377130154275499011097211420107510252341985453598935842175622513171042038208816751913353938411963574909896253080602959063281113872899131263657914748451710651830246217788671351551005614437995677232378882589275820153097247722337814486883356082905538126802568850800813859672541243914243793314383836115046750342249172176027204251208262603433299117192942224772035184237226454864998283018027939451699772803343224318381037761685152241409512852066204008328476963250931338085173783512024906017390288759952508769447244566581415789107931779625444372359826750899685357780593342329793902500168677039623274026771604992262357394858359926382133665521223725282228231436374489580036744275859951715787561758774771741842370519835472312073388111876977458103162670435026994552172743445015709985682395981414748543469915741739802315118800708575773954911342216157721862277168267135875401507817727437203058631115173350482896051654119860653909954828058362721178775251624024881784541488310902280673417885312500327076201439002193867040439689376745855702513386945742027003393036394113275813593586732452380229121843963708649490719024526506839158792214171674894189800666115501042533576812877957336214623948595785510187355630962570737841333056941690794024303723758162505896513851182825472070837770538936521402397637965056505036713996555381241591573183053156345698201180114268759133989857784156106481821678761426757828138566206641924322436442786470256239882243799783158793819200415028742192952722649752035307860886362533338636581384075686143486665571783281909906215828502981949677777892421353745134350944722728713301610398962594996946215671005829859467878351136078727837679547023818666768988496380790138052131624667339551424153048908257469115737087550741396691412459265460052572704974516858700748391582359862392538758143601360780915181019010235587851977231664508881596300647706554438644358476369500304708387414003008929089006793846528385673967430603379288060144198491281944425646603295840733592537966594147431953726703330210476431298492785631113976451137058630295029261273446021639219898627344176907730290945901402313523907316556089827749144147003347216308374997684242234136717547812637614319354112619414424462131158512950698346488373229640482834895218886598607982097918039200273919633084908719378793615441001753192790500140510604897775912254771768061824520231935409326582738845580352699025944761922548937068120136028784016975960676055695684962613361926301784795011404950280501707747671857977673864354707091353256776050930124489529677276147554625062312609395362808871808206685919704145466853317622363031512249152416742915638913677998510191877493026161194792139609455515919475036344802008083482174698107962048062396881596332385617932657974446033437290556903291086588913526164271717355542472860523874191286859494721550839512017559279661220970151899397486155389453975490637094949949513651354016761162752571113916308488393302705517563988437630010921582579406639301645382398436148336551970011849920190443116875120561591021554256848450843609562388180049131589803930590902315623843549714286471332554868806519706462152266357826426172046948429253507303224960132858552043152828596186380283169174232951878175854689057135167361828779066370390230147155981783226715336539913738067495938089579618776378464821099663184347949259633317047326651885292339381036426599135074087793673933855525646840618761007915768466699591774095174992073054780343358435394815037204521186815281077124226211250439348363291911578501502722050087623140188195834145700997020963839509659938935083243528894393948050686603912720726876686859830452119069385170385220417962668742361098281127177142178457515197149193381732020072061762757443056651449167452826022074669125732718120941746811728045646666276996208998127640904685610986437655566328578769968115315449285730269757971266395225111411967844756360628631352015356972000075018335818406342892906847682533108203787733432442659160619660114479173402520101603721313348049335760949737880603241896853374840837577136008162807801979150779926703036954056809347618977688319244736155201119731571567731192318468124297659138963747017922603183595485505586818840328587586313054438250843488945527814031885165174237043778804361516781361108508314040147226952598887101313107696911765589966585015755333631742987590002638577924835951832292192382378595321529766565642254248389602500370003088576760517205635445577248822618549714389925048999861046221873662538163808367602560269162715945392273550730187297170515018539399777322406188630223671315875492166414757028192881864714722239294123815075952294028079123743921976527891442157969809679118687983867979380642642277938376715728549100738857370120313102748238840023127956654987231079813365434299221645217371470340006594113079833530792543915487885103994149932715880932639210167379541047566972264327634109446222243934101951333484175202518300862946078531560410951735464893871280462365907444625481557704391267248889195300074370092031728710839629774501188962727340121367332981263752818467943748013884231833003562298417312696493119823716219914676900645129742077952066261946239003214483197553491601960664502004145435591132941265568261120993574820185079717143786751849277253518312629057494608972735689449519679984012608451154048847679770282749368569694448430824336189374835984909083315905847073098224201592302225230532033951082759178554315542983798338523775485733143797188224534110718841427366547653345962710043898644467835088825259518894029210771165618497383838271137448042177607861914551227236221676575054896991377107211320196512292935119535812712517941487207188463502509495436801922253162932354376796576053224470590223900907995069287215124564898090831076504297528019849828062799382137688938483929386533952537289771155975793532479889881249074592053513349249320082927038772059457128360889351514931485724678730652836506132442419858270613561597866960563848471540842742857158446760924518003572821788832546487141304308948987377002802763898512662397486507352235386590255824626118053356060399826363890748934962809590922297518771104035562781604423610927335933141180486898145678143360789981382292535563067271974398589722553388796647043122362264809368757095244705204190173558237303013006652044912449986607035403282332991790139029030718684126639040810638841549014187704944469133283735747669354994084137276034739461844606581182543905834544244388498926300574234022383064322613522279693009837537034508095332659000150260744631075113925664931045877678847244212605963896248225129666659702625796197530049943868384068412066791999798517811840606684949938077942549569302699664954583767759578751671179992384392770080283726403934692098328203686088790222595546389791226417722053792055678227953027802632069478770685201500177582659278598361402826190389917006302485537171499536742645989767453696764432520278143267382579444646110503404204868832433752889456378972301640367703946154833052884315216949046947821021947137729763305105562125536036169141537570428704219960806148421182320109961198146735815236688186053450523331483940259172774613679502807630287389260073299717354300100854041096356435517980317311439848052113210014532100683219378984380581253273246827990783229513896042887046189039593041750281621908216772413498664976261608624130739732355450461002465969053877387751535521155034448568280444154543685883696876246161628011341579844741005569877984620973044120138990402012648139139517358520745018400429231330557527056220204574757516829941055345668211443320937522803500386801088501807408438320496191977005616414431240155374706215321580386174140580185797462369905911609656091919054126448418186951711364165490340734965470797032988618945711637569124126715081576727030426273842390876026806079844104948795887269880876917997047250743248832759217365859578572616771354317699119041868963724371047360760248197586762311597623871191399043827020082789971266703853531435867046641348745714285790383374714145701139966336850263020994320298709182767750555355276378830897133659585936844122064947427673411848955117981281514004226712825729569431009633969351274882487469287292944983277452004318185895169705763554172707713222066692444353187258045895076256223976294391015123540878895501115000999362955682618524579879085973525874217761967213478228621601391558755631973983497220332381914770151538482973939477638250229103081760782952230771722056565558076226695788163321468691528654291034913275332791017629024681312770671737181999556340502976343339944990373127271622665888523868282512994839509300408978066427474960259134849968905316959480443439945069863198766698806310371905039550601931108213681562084854734802966548462878977907776885271423909754076919719306763029738623019858720273325832631065715081513780184741676937323569655422691455934966901661867673750747622823601928255583435861689971117811183169779666166364777539031947857031377744723652722935001033309808863728225628144360504538440950972849809819004212340888117968070181109197468970739349509635699861075092734636540161663897896717334297070234210116430725765958120343199435651161961974810853731177067032503824370824176333579976948341708089355580792664199353607268397035761282588310930461653483516983406631640675431578698007603408687825709612392085125113189256643594362691232465493815222546093588068837179681733226748924168427659395541523229019367742457425953644664485372373705737214440487085306054384840203365623602680648042942043483830684505259658591992236368344240114369808024271875591742654675552922009637793492981345708937833208365212638630996634272090098508139257413607986374505362418284320035077527193152164985864354980288169017992329334294479497041232962124810815749860885261760215330552577942288821323791711736814065742949359872333978621595980303728863761634206641275815217584168661819352641070257909085402313659149675015478804238008640234480695819395594626058557173416020856790932446162671890369861587413797394946013992003368510380384388185824018273018093237015771911737283885621169692191360979062124553785590554247280947043759461695323729926851176405591890549674882242703478027165724088252122310389935419001145205873131018086495263935016180362551595455998345054668924854013270387103624952592783514888000479258858429827378767315840145297141631348985931564402482467804348849704587587359220188278577775271791871928835573638665266815914621284159615106599409956349991247124386327096717399311713329452605081224821321194171870162106160314978214762605521260342269713009513078671751633878779570049032613571297178215897567355843514488891372150123798422764759657116165693763273614662713190523994221153816706476271374505980136477893246424329415987296003090151854042633983118462196786545335609956226059689141501800950235391335446034757476349098682291886270084426985619172280866528306063173004990091693057807029879364197264560109612819036296957234214610445033145672897599769271653047769549795420741227874739465567758747505652787850829052688305522554366033685729650056150802199730918474093304301445518790680336466606109688907682166563245322038855778540306721348685034051015074758626098020973619182830349963112944747146037263031586265694330523710682920035251726084156271764606746894396860227611388048830880001177705810482961942245527979699695971065121826135497467980879740686999136852041818588048959095262017227209138160793295600249352630788479119610565293285276987813032096944058012346979043407491975096258692784279323696311517223679411710565488250666656952411663826053256784823412675388456114287109816306055768641849931244119315732639569849085060486979018517685225502985041445193390525792951235570453221338242760187483229284790793519909620789609926890412946033386863330780130967692701948549131374179564927762586652853213519392212020722022715820329284085682414069396570383769126195491201142586182177203596176335177358997194117795471230170892113819018611038336609786115457595868158732012814255280925514784081946713914807890791908194435648634063730590826069080517553407393474771863959274347964329734126277498225142291574227587174535931532904357586994964400778522916029820749440763136412439116032162868225844774266577473788441222889233152758630569021543562309741818338087579756392435408678989337914931789612600886082054341840093929243418522670401332661222158358629173589184562670449174212404536250678972316462392891644070557239706398483367968153385850498027398892623032593252503093760906305552701378432737498366711675692512344311042451279862636146006021396974886332957006511190101982755068301565021969597992383643926989902834273188100359563198213621406222306363854020927043407292172924610010253541195272555482484560642720151020444919705115590889206757250437362551524176156880280589959991899424062759335496484607374233808018483862682202235214579533466924225837054595679016683152804827394913945537710636149194142461588619589132692727606468686094387230838149919255987606314095431668582160865491387806084542886481563879504263570416821005924859321819989558006284368782411501590234393349589356093887618314793373820116522284497338607570970739496057032659115766465586040569275930868979290114498651726054504303721449091805053979376020719532176408459964260545857286938847455154451233699589928183364059171399827982925226611507884897538242351256734019286703278607717187333792544146459064200294187332695346068713640809625432915256210211858040644537062002440121904776969159194144957633826710441882296862892148946954054390083739034616646542809682126423072397092918104982004466352772988083209169994673686009338309372690897985359333252144942344546615851997154406301499257465116420180203135436799600428910687075398065525978656713667069568440637830558592837048162797916456492214332128004391744504611677044522321556733940274431103276660592410043649982028952520175738067487999329583962396483572011034348317480143123647298183224876637367594733525441897696907166905131986061937581066799478239095047748256221497279442843053390038674929286543872404600131739405679752541546984038976595029821985910592742129392387148282476587008902234500474602325189564037248349557754379271449581055537187950612087987135774647195777888764890079108103044381060828601835995708376156344467825566572065767439385433322682174588306591468465804019471168862902483894472174236699407024573584130750254816806385219742579353084382842426675438828969669318326705320853628671465420472877646120320096105162085083395877340515551950930140226245023953374553147816933653270463597377745990810444460535202303836862971236112204909941791764476334297267698076392656170605515773174908356525449282483381494594039278248415068979000403659048218885017551399639985522535044822757361782333263096003614069156661169516172975652246445798624197667329464654483272871315042571102108452503427989433766629424476592092592195103891643329563672318988126120758359826110078012072395579208377020663826361586189614434074748145160414523654170831401165817118740763883221631866951352952415918615983424866264036660297400655108190580403893539025448675177493466884052011198314921467846120889733750521631536262919225216619385119455463462459021169627528164375779912615317112774492663389232579095469082524402697854183928906824715099526739788951118179360968193503282352824752555744630529071220241395364266982001828628520170148018406432406289979242404600175804712472481624001545503662589004190480794135299953366338694775768529226983256384937518639377368698938942114414034664529539649347387752501745946548634790816854169377149545977213689082016089965764116305773889533494669837414129440301892645224289505145328376785349463495881165952860043020005250776403667203080107040404755487648131155535060740212641400494224986527692158756377997164341584394959434493358569228150855231230923469819959215351107446701309868001048508294319228386441640024042988763999216200428051707534050326012682509508358954041775121895291396874648897650987339330039791294807391483559262064259836474056730059302525678263489914812625482757157145655685615352206073379223108429951558168513579457407038338513365095071874073084174793813183118959050952013810988044440897296474116197290313120237943823008930629460455437246357238087329302813743063966531744569892101746447919455753477865548408530108433029990280784596257168443674502568448465622092639260449668034939424965731749484156162857615638894958398551455912934528327338730524920677675330866708661008526887099405445935221038141018165414403654168030201730521884060826618159412001415641054038372670531803594057813096860601708715138999940768684291732997307327741257654166717258653232959156768605549185298561400663234961748300418748030439592715359433522212432588962285107529344190097482103311439961149785681449214051042657917714974448913252614236034098447110941159558688348987096155542136950246162425042386631275551770277233096445448667414333432362141204220210596561493771200222414662154864142941527150558471793538432003713095855439166115927291342494580289682938885418961992828980922767795386612193225435217334566258166919431860498422990895157278514953391359031564953245996138019639228694415391296872817580999717424059967675902937333609417115897038990286404057468460849947442033368651263333637663535381203750341512129119143842218555943240945539661584068746719405783639226754424410435771165928023551070572643277456169101180624002870134900444835208846977712484469194276222963962091590299286254623903084181570210301586252564241789740856490345559821780806708599307793080870065067938442678502876521269678729870785128718463329152517482864332044493265027277760115321716326663628499134016784301636453664135007997656981911479785886378536938212533359910865832497299636937428690145471000936727432856120691722244226483583223458427908589527762673613944896380857894989955812356107190368631469430085671368984134402292515997828954752238901478622036902767747746385234112679800126374751700743379066349361745174964035428452156211916254558680734360152744742474603134768936504173614582743168938384043851955920181386358026854559157572990841877633334787927305465769656565901858302849849707882796584202231060821632204944027147374271348763551922516386138299846894418262109955831613129044996688772194234965622430448116775043908298544390171096486527020133945613857703319804169453642698501149267021982167666970882382513146164842545713596814653365144625170071134327788546842859743393333580007522344907104473704084496489105751503063766753580938348254931428573545685857727071421202508532446515989351286994984929759832761257712097772126001813693202493682863476226786644626844558736156497397671304546132651870553219255750985031281633909836379681294478604679803208285942413912561694985313101190096682531237298644339812868671846105323190266171826847379462460289069730884808645926281567413108315623446482397571326656679663811454206258145204793768843580467197072021127684836139959571426603612339457530117609511449306863004887491069698005109910655439149822431838070654402475851306941638754460121881707205273199290559558568465155281106482523513867542169527370246098447771209994526900111136408048038855150796399139739582625823368814280118111624307677034538193359354250571849179734204323131577947461285020080804529499205686968295440588441024191269093316308250311080830799748305174636760982520905790318393578418323035356839308195405193069669330217724726408991386712712999905778635227629057986700424698878966957033386602575169946053510497870047760619290939685791333278127609407849631956029116081527811391164055146862805144849020773159006121111356340516590565419789802368298652342028950840437024976833149974314630351806275324682436034225450770559681262899071775510095565551848253482553817968523985449331473946334434913040155858507607368764385534790476322771621967044268063142993445636093231170173113954392468335615585102122881898049322198174002427294044272087993634829932153597252073338364063939953113340482279472447188426144703796955371111582925515852546747055550883398011422349434683000112192286003918237514387953721297539265617399394361713819159267466696769266289977175737611808681832872930431407115102317376973578542628485233221445130960262055875769602333456229762032385578618621280152091600186802699537930776332476085668951849286869958074932720000838393387384396108013615064225290105248051353673934994967672194127968573879123272957286434073697164196077865261316125849388034040898913434326950162456339668114148379468605699041760454819486435351101585812069806869452618630875844682255894156977700052778699441267686589475801840266604516683470715081465530934633562539195492333478569585763195477867792977332017314497698353371730944314227779923861861338355542592170633627279047675241020094282143939734933445299989343456243416681076339665600101537698654929525199708963686094305186169258806210517252883895528375885764414803936547772677208087007454348819860080372281818251402253699145109955157398232984247402543177850939708497087427143028079395818130304515195704401064629304767687945967916001549679342160203190855030868347734195851665500581196379475851402728983072220065685934717643274484068120368230343110580211342016728367740280941958862879435055632452419305773488666402485377178367159396399380676440339362872976480237206641865874297101349469935335659322037065055155449415005798500182521227148890866631237712553465685703122042929817013921200998422997312717567178042527327858919390208957218568335794412995201875219585809792349730287382351519943224339131816835721944077749423348198132951789066297162242637092125916695455069863589321666144256222645770973392648018114858027124718919343487425901433690249816441677733915420415237405013137279778249891694217431153676976507358326849081031877517456878323088034915660401996859792952405504537378705060442493342904893345755643789733544819807573269513435143403571032983878344798561874309049751897704943793993380633722419089525243147414377302806607754045460442536408234234077403890691967188768693204386111128003263448890994363456679829242980475831741382369426394728039397068696755751856888873987291555554493604228163824629546186018106118060404440549197633311023462516463154688094948936764193655311819550109902419248921499298731089642833038411749724115049712266312534953369482948688516453957590006428167644382714920850379600267643427090748904914920889467207838298490970078639943449947864298259542254933570159553610311974992547359546061164571622123490848230003250445633570619083437145480221796699504505919925606753081478436081726608333385209956440690701424140517717028527380411342075593035757285054044980067846055392715458769409292453432616884393111573728774009191914419435137510284374314077960285600385582786188027296504677471297023603939552690277318638130404000199581499442817848454558238591487873947047842084349476882035343359993255968009529836038920365356728731112883751883559116725732346258602003426174659333807061579028240509320076870477495198256778957969070395162529806722975862830804818839033939100660215215031367239758845723683653295703005022827119658666658416114099711939373561078668144372875211185309229212824042266165070522108157596386191866933627296951942464345338219186125248755983614622789479969207238512473716874368141048703446008922431133398928700104827864808004521877420404639548923213994907441577028034777560851635430318411450516081448639848215485362782896710535185628774754163334044973593449058241617099508388035752705392607234921457465211139576494150573357589008752362424056054589066819291989318199656113470454698564414949154733408116416288056058895257021848598862653332915088863271814562072069724471146782332246561747344829909480075804085041585141495075460302116381410419287263281046982169882827315676754558703401458364589700117054517100824861194976179692926903241170406132139637942565039171093181175846277128530467452068370188792545646514147187327802838015759648798390277888791991654386648390174902609208258316744934633207793542838779367546803128305712985261747503612220864750782342074581874852851292627011924936505181600744699232657105149578729739602624968087399173814162996517897935529753281738582043560587603360151061765274018039105959434596019031252854819069345243520821012251345899832260399974737796022182786786637923434019080927602279464870965597114741522345488730292803710500646554278808717499314331141834646849945764250027392923001336648471830803307368078695145273336451154043986008816093186248617628079054430777861910412965970098456168408181827189710722873890235151498850448500736812808718627916906638259230258704672277638224789739583770574408473782252687122334748295223383650468334533849014335133650856054234766796432319544825022338463903323502379761154964330906236222085623980365143652583047667569078501327130034855625412414414777563207670156641288185476084849691924456279455553275877366867757654194240119172721940014569253297555313480639870852029039162471676046762971838707049444494078323302476210803017395322093203087030528477050625851656072580556571058080569892584847433263588224344779920858322665866318439447583769424826375361434616996358808943803474316815013095036705752152149499389379969338608775686192775941226988908491000297357577383145209098118521729207035479003453524322027392039874942772000279019435872526588473094797932067626870933401798505516809523617611825447631913998432559314065268639371724655193088275805036127767278767531236911858511078231749878240323645174304694292237886656264422997035981285264559530877093513554365133131358370241684567338178099865682787348037353436106660393100392108479407880614766727976536905935873403198952238607016125354049442356308874824082630850681004362754981809912394315050186501084175920958680293878325555089197576802175541127204044172526849199783166205184235959642694535424264864861471448823146879035305263047141156932721896635474974400078756772407395712081790459632693411264317670346990383521030337348392442683135775375060229096461345813116673322043614485280830714169796083181576973022185156646465378399068918798993304839587626605885313071922936760815734251097228084571332417493031003590834961563330337728660105634923272418657480415365473590688010759504025755140312659257626521445278065286553725455485190925586062750304082707937241107606655652848127199062844978380182372286147237787673691193855844113443060816991632596757147332796850147518956112718844166648294538884065892251196839404233603669864029978975344948037984880354437580239448223408857778859709317104402856021952434695470004315551665922725856300593399365649527270118912704766559814983157151581624145050441108835810468201664197601661666088529970846188267004965162100065751765482631888883228520762030242431620917234247096572445407318868588254131514815791200395325021416678853923166833830076543144870831873306848208944924177297133792117737339154108408077903736715409688450549808417865027879024099247934108398985287687422880666910072202180855708217661943478930545662971104536501575994784302259344386985453510474413604373388326634626045385704672314549850871135515392941391914285424417696872059086422861977426369850474499064356333626169821261384245029061591513636713581586556923620690000704756350583090289120870241623102861553941918737146548701427742284509631671466057830020892710458470939657016965181639577894032983383852987808701624291311129536876441207078831676682108510626746082293019877779136307855838358336395492085393742762976295338106937726297969436146933389524805108542697365704533967769293991040185565343253307554120830153805624818510542779166571348136084318525243926870987113850530772454929437508229342426465751788720485628424397643233715464273103455472000204798000691560728536307454217655088548418418456218741632842445182008114562295896675354488534016348838863490090042889125145059775100831187706674797100804402754505432389708448654574392673308553439452832647134348114464022909973922552561584273566691419808502582361129762455589136335222723565506364924248628620542292144195849588221630850272587885680648185050173199815707500605033425726777215105060175926003615583941272291973947095103981624629791892467017821867357283140939066646077350941962565626471305995486088626137165314060306364085497136302445002200543298643337762231438140413244447350372740797131291946842538780506231615479837542710734215156577495165202163788842626043795298390794594477003060469052960533403243068773650598935318402792173996363037581504906111167037205530613635820328709581220636264692424152109015613874943212715128408670231526974186091170890290767756013418920127023739071198792330798704854033101736448353508896182071063119026076670201633327375277267982732431982114476752658400822714329554295732225134121400340124721653935048912940421429385157163019892947920921215220077511989809371759613701246795124419166171220986112910867793413275996681329730994192598055841297291908087237843749452108407504786594614146021615696608190150594309722265853438315766485031317051938685485037609053333511665696539573793240229117174109107626550350473811571356402432885309515193598326873120609646147201586581056019807931612825461125845820641421486634422567206117499554708264909754625821213790473044069480708311440673826379373325972375443630745683582934686552174716972810787905846981525611930476301704311004268168805271057934390577178483180797230193712482381611042283704299798045012957768384298638334160610192493219243482305961643669204531436019270982449140936882113726514157876330889707270893172358153267689242114400437848545775285530565868301139437713407101211519176687438811210055623562498489512375780667501699066076294162382874681100292858977748775898358856362074307916462237636265524146332584502538280982302669858019084837258271033096372674308072513320425404286805816132144748427990155439690226053849182990846135510851083146908928914935839978429835138048174465184704201534482328510742717741804587564056911315986810333041045054160536008296340829452911984955426069746175491007119567149768953098698968392483318019987501824275332119835975584923825597052966051148097582134323563669313692780223943864439078637091057743735997992351785895062304682479372615633335217705121643440721871405506367811424295213088744987016823783508083391695772385273608335036207248703020245688364725724453736483326096105888555069439912317682186363313919563092304195513128619166211179732725613369185261691070363155795694074161934617774819528235094242578354123068718095666479034798546212654020690762770276885584122242493997581784632932369765600219805970703267127739726983652618866252745426665828468411951492948830893658080943086227374088432609388264760703668466539787793683113667398295172496334258965291097918512979384876860460588627395155733228799357548032155096936445257845013414324800604788686250065126556766757408731602807525906603591700762236297429057094899763877134553452864090249987622883921616104897101642849202330321026172309516873083981607541775232947050430351389856853887996501525498917086682806177430166228223448013623971369948484658605431996872834015328907529843543900995974457459118425351016722230057801421356609541249996867660704421198371506991532800697011933942906555804713889681330828462751482606263342013177974040946095551981083425197835820707559329751031961124636318016575435858688191988194525999578981589107543574977674498700641878884455445464437349037207736757675427161245657622999076340320681280227882156181120003986738955078524783670381033666655446661087218721136302716889940405897953384953424398609249402423303686851027037883326397895475980156634679328132211686472043423212611927954283131970624517596618853048093208386440692006468629073255640065414326192366707478229624785985439920662821415882669909887643573639138628288008387178130257656713557888535943789324253421129915296513567882532962655971736169337894519667344848325609838546308126213038434553635779894927370622233655305578513391512842530460513007931539481313667260492612816763893009783748491361939108857053784222812696853241597832412665388556520491777867859031118480493011249380394502321466772952089123917961798802042829023373282681783292084178501152169954023564849427092075681804758899314544502138761762522160950107865453352114835026947814873803333154044049317070417112643572658147557558369747585529816822155351014889261858013243383756701674314547630155146463188978089762480956727840950692245732338096056048404538723379615271167795201178057053058512210771916657300861599445963374654550593165928471421233018385974533788564882246012941002376969118694757836111680165254017126058070851595712081067332238639813402028682957626825040590744800428518113309316800584616129048743600977353868034414477766084764066201395730079934779699431948192145885794337894843759047244580716981618679177974254619164096927279826483231465175597483569712581666417667058002036288690802666401701560140103422798127023548814263474356101759588137105205347472743186902076171578979742466576217969926358775239981609646363865351120243625874724128766764603650097775803130256855130291946639599937531806728930849012287053201940744895614604823143184860077902305312136791422709414558640732878836758945276417161209252395514901110201181821098036199979178271654168653737940366320845307185110470994824521922470442712426065662667187349158451754102566347675650657914912571788062018256768178687231684829297285167805624360936538757309830963020896772661991737752366397848082174078514276283756138102167114050130604524796381096015884373696163495703570083959127277364444569305714872972951433740292193711641154839178368092407585148632462447329463938415157399577596339345059018117403401903474408121432901058138056426442168212474063215516271699295339502323083640565642415142642086210301651065835424944688287744506584046136195407037666985538523530182072178927389640712743775015958332532950251458296238407060326938138412364712128515733688089967069151849467877334498310350014179155838443770154817119203140709889134588593505216914420716030795627277887192151963740840824287361768376770518588952776210380227820952262741664781693724788461301057214224286117747576297270857272174087744208226133222803928883800112271388810829323132467904198915947694197599767241864434149538840114030124499938624208588834024327949643263013275259250943369045833225925460822862345680720337249502424276281988880161198506255232155794623786708531259747386044017642150620984050834942257892799280021377863798135049976103217042737330258669265113345318198444662586914315989290404017931774309306150555357742744283683207923493389373967260527771220306863347571273394503756405632761139592078306403493068182797886443364649631131347866572346442149318040199057828952042226614462335893441802013605538933641834169574469669172734526830940527533078925139117025347510570503139445757700469791885089247136512182996578718648792486737662752609216433263051154632409212627695241297584202636384027599651518124326569098088181481938019842482208127121654709360364444546033955075650902518640173834907977665443524650702974212035199138807193831004225643531917834136743896624041208448537333680301372275804311874893804538530964971384335190776568434576865242099301330122071951536700027318131294338393228853951691567939237383231383716275996656048139577034084976566889480097704841067343211915630917229278502355513598078720518147815431760161606065411080915210242616533040857729076219001881418020868727790000715028305109194836327281520621882659445654078968840684936987092417268761613429232440195041235624292193386428565414893145547167775495075268023746516443755765373095026954193470077171493260013401204639923848057532797498622172043833882708122908362088167410397252384592619719261928604033622864511352059098851910114447880246096553744942435007189519717179884734182281353259970620260163764894184900836798640041790137828349370442326918222138174275302138708115920235106728444315435797996389566210552331095865897718444348427152791097080179790075920413287588221091747974559876662447590820396628544966995980541274550552622639765311888142304784909444787931239374717755493590240727356586068634736069651270888976441922673251898403287487923530581432435478500747709260523681388045965393512341823960998555948646585652077500243363734388270620965105125857186454305407642992675755612253895234150711506926438632072629662087336725050123291117115782628064734602232145577485716481958087245690093075378283506760088336785081504001008552681462160851292668646280966680882021625008497346719302464938600006337302000493893446806280024257304964467872665374776091542350427476256185070238447902070964471544941163360807362120192549165031335415730486528902043458553981158333891009554694584179341588668970192748480743029382791228177929973143396884129190639441809507240681448396996183328792808776838605861678149203880179677401572199960302621492760844532612321017580572319092760002139821589440349704489446834580891814534232879544435402939275678307314640692371422779961872928754742412475284521205524607578500990661425845740263272058579988745408640638037584711810163345361597797122752581168131563829659669406194266439910345862592580903067647380716828517538279399416125014371448812817466337841138196610696366103218871266424854939558413966943214247983653442209599621357033949045474142622782209597738403756464962620044140678909729762721436622886965420421839451834887663439395387682421872429378997093823835485832791681885812917630462986559808753114095847902965500672026726696962569318079796772579818187836750273165757600627413185189135809390179919502133096762625247071833022733859284670568659263357324294191339522022301820435562018529044766586955140790352256005605989758735910813892617873228280071962553690414377998827002053460010070951602496516397515806001164701360692816303075187509730994305087338287299044411055408708808436158036899660358523489351805973316269912637576179184128382151219754230538135436723930609428159749353197316677819184949672884228889690027654868583575985184230577812405605934205605862958231895843192602937055512793764215225245270473656158537034591937296478213422022548456691018911924510308452351342053975431928000091666273028398526597511818974272869294513448970302842097356265837089954775887334298223281964713419648786826563515363667224517911519113018462916031131491673532111235002474037899158719765268727533943643825106108901675938930950123547097245751892391327244263068411195015910139414195611963214776449605318982745287406985391539548895504275495814720597757491492735769004977176709510454523267384549436498236148607033214038877180856082272542859214446261251464176738508669233459784923178154219379016431581282753491024612687662401293203949256685368252154647307123504895720069545054229387728844325017048983267239706326552201279513321864026368232557742662100546744053228109796846813838240132127191832627686041905762509563293831577033035131612381936322606962637823191289674686334451268237391925413848532590137599682995444189015789990286652660521733516644715049392432862752092614521080601525710753308009296394023607663733064386567312971421582323936948624445606196596646805830419292846397429706846110299262144046843833633998203227254754460477574068965676602676300667000553159817044838785418824117989887955056361071842519789996382974370389574999267776614110261035213727178290050177818309821413110149701038956886190436087419514328781118267795816061188307426477625485771386831220374595482458988447649859516729505045720183453413895644648922285910708089852014079469880369865058334292793912578080215238966237312942870895092093631275153351286329862780651790960158436970737733921555808546096692848674686708189348432008535234529775055445564300737758468901937140113548098920006095258830613931598359760587543538605534795327320546898361457268263798213840814903405408471919211189542098998135342760355626087877750238305320388226027180189494997580100959960629674940405914700377615336038952559980719437976850421323702238000294249625781229032792306008677376559839746128258240818495230607600889610014452102184672272208347981483402449917439595199745063866573010694192967849283922077306356463109785568882361673993842112122788450888719152520568715029212096303454116429842694244945145522633521391574099923121518148383781697154367635721979700904536725264105630411297864766290866517703647407894161820188377909737232101365354167761498366717012196550226950425834536642994507576487459446265730313184349412534873760095473485284046149880575556815768629963255596544999605221428865577563824038620234345273299708870156678989439190459095524357659550791942269496307152265860639322467354469828632959079188909762550995182032734236166269592237275456243992020392651654729263289006237562984817832076940600780415728552720102433169705688452422226686538139845929798986731679930553485016763453310062714105037442373550588917340158377829382124364789794298034432262015891014477631104498262183067818989913507717868820421750504304165999803195650040851122578860076052149405561208812543552837406089579048091823026446296367035629006147621803304976241265003750587152639648261027293820454703446938331816243099475045452407855317456298390367557715968550142223814414948801213897603181660191217630448354455672245777334399792879230614060100392437246609791926695397972178136288407647127187646933819776391538029298675208456246985789172044812933972930436939453899183822653755958906499609366530772634253184641140490113941292718931361496991529465771462894649482464232854509938516942070106313981533737265106998655240549614041429769195399090010050935445167175936376324663323071717544296796699280467120684544277343031788492208326644114755366124140429684959923704203197801758330360110257571894581580152544545127546701943151375412501963712375805013203589615409793624866335318082008493819210258742024981326224882592979472183274032760387200424550743603683768254308326298883604811761747032877916078882290256451896996479671898275589829176603225623239518503339433618975971720218476562893841094083409903152903799307867264737734251901534512764057704727729273131616299050497645987326629987351134734469616176425602670830378031415768425866068622635598895185596254092606865010984193294506477678169942518746130857855357059408328294965032194879329547709438255519466388202729167560045631179637185860668183581743007448392323122326618525808401356654090579239759968058244940363719403252285275846152166930783413351159629280844421513352670340833953599602377369954297984745934704720753614850297554381739029191220727807986650368562557231370129958548291664928607692600304684019602053723343362821010830982815388188319025012541215185231889834535956869658725264311737822241372957879994026498710463973377594289224321982988414640566512115698274789019948236240740326273493096386552180310758703097521880720646887221014769260584547324704028528214972349110592184347475306888586848174225004724250831696000281823255522152938152939649481613393736982097422199265913751213762344788692233344061408107844045704576411174682608261031904233781146394019037180121918425540797930223343951706345230728753551538283678656315753400889052421314984019759459042478026319554667085814704530358305237520137810905864728883283894296214992391840682585028324202996881112619042576326165437372017938339709486280018426191823819584360901538887801255964463825933593156427720866373716125475993283641340126157457493235747375060302295400689566314882700960975914663192534868630306424052306047355011543284231325834889400042770689035848453826090779357082306138071435264438119344674449467199581981006958665345422902756587369964794553536758028951154566317516605922363253002605298953410471972355907201022752257239533733176882490040975379403992881637931956048039085329428511813587333984346233223393857348404198909400146041891383657807078040697990614672742692059710262177141497686177111083291542073676444107760303884901326182587153815537979957285314845319302493778305572133246424474366723208372544050338551063866728839374317934913625823437340643365792915904418744424156729289440860014037919009254133308422813984580437770289957622786113201628018967042639758849599457744028429802086712413061238604796692811212305603978238845212266515414975322985337704738087096915419472800757407176265818570032446754768111196777868996481594055234211190935354772220719225041606019452918287435382402504947075756188220937772529287148184847413583519219854987937516678692332373519288066912351025605327594433965023454206346325625193939724652137889121614957701556328812975928157266461066986605044078485754203704239036138255161055721670104798591370825845933055736695548816315369265661182639181843675603328459442153890019849536816616051451128166008895232999782858428967672581993193347781973762045440306686171088406802666693039175059927964341480656543875613965247762510063027607629871929558107362131345536470798636774488677324214695445075660074299751586563341277431085169138238638906163776150210075180575968286672359180796856215744405818356885336686804022626474970396009597184617597731092607856329054659025369110520883081399099967870867686157576253613227919064374965014102159142963675733500012821154390550371542564918044349907427605196571508691177658502931436519020680821451096258208441755938458780101981712043597643067273372287062572369430707821320945404954927240127420383397686544536939553333825230701867055399701327590628526842521760230606811108669740457752280305281688234069189986100464525780362813818957294799550126725619855579397271249775693595751090272658447714740137485076788051584364476111223954985700201018178652861584417948722077749989708247961550755048898275747184599161154717610201547143340172608194802422945669177754468983279553131384339339260901515196586454592339695613617227820848970064626411601403346210875180454566376541378343729815574571119465736088222218060510636318220694776601212731731629008407628169185583643853482869995617666046876326527780777263511046529563884143486715445221034934837344274320813118759640468497700702199585887124457872925157419766307458084689032283966792125553533506867993045635634462405245262967809045275929635577827582835768343999724021264413023226690765356569412417664445701161364592774258366420959184669034889897293276283332577831862541053078497934589153766895911001538928291761524740166242018432632817214481163076170523222923480164264478892672207523782856200349839103697872815761839952310976945638249821549540942126919521694943701847373388972789471498949865070722712654973069856947189339532893786184609571448273121330046058031526113252965044470810176564942404428174172376860478905218217791404804664143356823390188975454667504192486497211179315522749069546994784385241572310495437749025796960795496464135003393829907457760666155260715941244498021706801974513283578202486547662235143364149269166349458834679848195065978697905155742219699465488618320039601740187472456913837067866388537088811471175193837033480039200380884566729021366187419677036817721099482595499275115420379191811928083571962470198327939584963409597762637027296927106453116716935012203126019562888878486940855764216824937720145274812491363399079723856285514791292564144594327363201493263216936122368495115062443316631754529852802217240077598958723476894426945734093574369004032841179948431568549180213783501527773780183929528494370261774426950600661021537100609461170422002564401726864157251320769478682481966353164662796897592949264724735320106583676399290598153037913267278039535731237448694083578781904995614699218862002155917742116722617380811124748560100604665433162985123361732150774267340999008008377659817114594654886869969643994142310623705131014142925814497218364603225187489586710390176913102591896926029519891797961706591344331438102935499205364812248502408488798396756989260004090833920657925163408970280819029071008917136953082893718639318430392442597787599240933705794784884922075495472926147830030467945057270760926342875948515880700427984424316819129851551112304175787973019430279062800501944247722425509141910044161788091586022215551209887372122539044646503551468100383144255965497074360003583019010350867551293569602206645325839530890468171443656962390802295730231919015885894374783521297443523569724941500512654102908272824310939721655258986118981371113078445815459835976006792423081948682081805722166401592095190131018477364977790079802777983659372125292998409437398474384798253231385905317670890053730676762296136751269295058366540520689433455604030461337245081423995792186905961941932005560421650889971721439963333065755270824377615238249035000211319673707283214036066768208873790460610000132852626818468786471426967173982084731197146841422893023692901776891852747204614245985814775446052905781429463947250103407164048669132759722784630556278743325760304952074299458405720629862243619154180345683193019450937828942415106037530726762968555364323015909621854391104060609998561339047751413132199207154678699688357184984185906328197731588333548885529784376106800889337509136213049596050416287266408771825849617703238762698258271271032174688954606323047972810975304497169342817578041760603117376034344560701732690494671410859175046581401377976197291502665039291778457480721240264095620146575570771670663403902046647209912763421473200572876321280251889550819747208679941637048705677188403791957157504484331266046071647737694859432309829477789363117059909068284442063391164680311387100508651573734791688772608796849714508451390493435798239961683374069402572508455795406803343695043831802542807310143956031352512573311722796211004081480638156686003411809292355263466785217732812228038561374094360159212227934097437881626824651481896245347189622305215336133676971461842235177756576196198808277942786329858885531479842128788342690315472824848749143678859270948777168784521560127783159680417162841969518760367057996192178950488575370975800398523441178206120551884399919207871960551829687144048112346743585573771929878254410145407296449259413783699370298158772506256862104752269121764506353315072212180086916482504926020471224090613506162703734960801750114015225250527278861142576939058370920797240432847986567624076650478650810426174372387589594436695782901261936050569829171968880897678490940877385986381702955027540807191991185024367714087394731359346652936189142449891623140545578600535194891835024529051797552864513020448912113233886893663838719241895061801736372282986825488901880986430281470624317211547404615890850508848499907207255541703991866148927656356564616279528310355102344302199071632466938782825557800574358395260546456395867118654741659640723359495234533048513959221322995712095359369849147947835960284107289112910656514349134331514879033893219334884397049857378604531635812548245898548797156638286829930188331785682598984854546354557186012593591692390429359409480157713712290499790464648982538093745442704424959856262768400453394362356810052850022739356819910545707348103328628981354522316414000348426349513986380156472722159917753684147067196827490949653896808727005344849978858766817795942703417319536098424087751327868907240099329426621381270153260470777623099157882889759197073895662022686654753131641314753840760603585925615841572365985328009944902311529302510480814110385670325911496906770607555820753643608762897565467737227444864987963341826297988966469458953380716371473603386406503855348909900309694465661709271903596900813252195912519070281121794736419614934343730488130204320318237531871616596649077460618779305078131328677954981695255965001728250517427031112037325217575997957454257417894864483374634030379587486179143211213167602462628181619790104183475563978599054810471924767169128252227445014940429739000730337966365022052370620885923748535241027569500670083592349993341522281123750078677549614167387761561784394157745395725338969545834243754920313805946021957421495359703451854102180345023473193097801501985923516995889480895695527636114326420851190540146023953474628449068158596928336012778091336505857333099722721931193247607210768358487648365909257047259833568016230545363072109327803715067090642256608692348579346482200592718379424714927757505535853370639594451416938662430528837071641171474720464529017283107118822342419615628182735385465487306155609318991482533563073921369756896283377248615209999250374972762518342601172216561126247462793858868958211629314644624227974832955497816619139497533513912965166074084326141953193554439044266206063808331497774108081517866786984036724720458174340564971770312149113050134592888514335747069665701424526730193051062396000714861011343710708268230185542487114813611474138631915822440395849290605909654769255179013310646647327049184871437494826857656835421687279729805801066469472025025286713903039802116843123162482575810589976366477506009939359485492060842247910617917390975733696600032604460626899746004794105695098219089448046055833584355616971209496612010034902511542500230090545742852707274198951599723983148661244323539736256782281489553048540867738552901519950000257620549867404827210138296702025555898188521229349892314439714878905004242904188356061931017490710910312252498638326753951231125576800487233075105906709231321185269658689524652279022257129031590613463523836775593190752658448767146582307247985727011590295837744396110950908798248486244740582221567624832284713805688135564253234243608716432821765062401090634288930231144528028068773648762864779331947484370802092763886895149784089803286373615964212062389353284186994524390788381721466630419993515886181051035101752989508370452575696037201490835127534545220176570190927847982171635807868736717122645949741414249307581315886121107542801725508609557652563144061214182125874695673645098700580429917829215387833997201183433169081412574307662764337901390717425075625622585403438889071687459257935241939293232678327363063480107141335172751973985090121749565816002507133914213499443035639908957723774875923577390812053375992246017326676308607946068832952567806547713308989129009504778463594594607864012022892809600643086962829797782906756896211276422560989399688604348798898510338092499659764235583518640057420320569598349505358005565980264845431001028276773632449875701466113362586512065790089618131334604863920249532783426733012959344279417753779471171433480267247136535079835490558589324136790382816780958078560397782921327341174112554453736852879621051202070319839705265411357859463831415862772272538237044101112197981611367214796505098652610188701703994958654216290437966817198214235280076141817390425426513272403495045574892958297392262776868976669490750259399887477504925890835349409338128578321233669428195066044154906633980942171895575049781715106955316464865468615879181440349880697705756546785223498851276977905739149981995560698980784562048152539927031544913173621661584698052748013213130220208997425803284421637736353327162439469596731463980675852261929876149054046647215510314360704864911393619111745647369937570468009549953256205821835115990517330415510296903719327319333435591443817444240957328808931414696818824207923487952037245572312889120500138150004465504351045856207428072447366510618677515466149909593372052707175256306644765712705524160257393871181100668076254939766272883074322231439060071934545933421111307930760403380371723736166314687156953721183070628359588985853758178257501325273269982141305703727108681421026392899219059778189602012250671069967663850285912025506386455314352026303324896203160662104729317184538176011584606412450652833924459618059765396774010090958401895759619693578995592651391218260762938363797952799617774931864213898354119679544900367859884793422492351981779638250602985969309228102578038752966976508444584088907670501772571273731010257992842493107663041918441568823613850565528360881976063137310642324360034319166824364102998395836385122766060735552576953925965623734905231378765645653927911683723728349855983638789335973041899698141704003308083410199947907445554050977761095483445133055464153732831842356153035279068503984574006184691548838072702261504534187147026675333360071314914661084593381070776751951840972628557077855666088265396505191592105714001303986192604904214053334021816456730491411041118971822838116116974089043158520518703939787045717236519750827761604712493559893033072479277093688035458124778277321862368789020985044593542560636533783142006435050455566040119851235311242960256227778917902598574850103081079965592321425741744968966349905420508639420894099041068364850653253519206943609406398741641239041162190611995939032646636384801653266733799813607814709216830965283742967848569230970157295602199687280219875463454301909900543926099880097754721796019920306004132069485506690268828135093057684257484174998489679599469471387320416672149276332993946111455378710123689418804225210360557846432656959672042527856903643179647635741979774041672051038110345585035877889638234875995838546555972152520479520246286002094732147540246372546433203639941644346817425764428444165148926663449000519798358275593995061911298824268747307083979791600746022746082583588080600920434199902177293058454073251010285176702064320447616848342378659555502146540859180697165235825732137111249821836933655455222647065101358680076353036833892153945112159998371109147787071246290706944103325298969445753754383291968325772657662820344627537462064712742075727332070966398754814419085812100030857414170815541613520134258351511930649247647561794794917888761993251131198284329023211574963148122120218874142441776504498221987369318944148573937502173597942307275839628479889660901486001408206260503644039311701045615655283319588411282935407159773993721401125204585130344129010685692041714675838248519163963001702255104904164310730222155231393636960814638807918168613549230950368811810227599791575395468872407935755366461672738142324397165799489359516053413660033259554922455756015168641275910935600425263822847286751740652522937724212504127877742327837601803832116371762250977725248928974734810966488582461991257797035888081086761648498837947269261095850198243201998003274330219737101269631940692433128377592110105048993348905601181663877927078480341673442244778358137165428974528168510925583251133117897298706399901080652239442531371506167198484564526765484847411438465572442378846487326403553121420569307602408325991758639897330625462931161654745718652712693249887873101957335711224082782719900752827256486043824567871990125253045203943739546913701559935630047193017752666691872564900297357909346182688046612203385849879732709565488978839353110219442729020620221004057066632609414714232983449961210458719514303258352200852460439361234051153703266468290461684710466416941222218158000763091722211494281001898188711554708119334628106185867213178434047359726909969367329337118211902945081255625662155406156683534016363091936254796822407848371548024143928029268409287634804642847822916186849684364078721635936101357574024188277986697704483914509320625203498477409191804505432587304788463327669893001360578604648052465460041084731721367526046748815717548031077241505004046981328987100658204565244759518907266492927330912958907451916422570108788682093540312909191694880737949993313664987750590708250203824025363606109133244037694363975659063505264895383445941297253504727066205299043436846954561310437786347148925146450598107968763761573985055670267807860209657653332830308098366201260203781552068583915823385613565556338017579323076494671538200497025069690839593103599697432860347736059461959957294164899451454491481284077522573256666588794896202436153858643668891664065928737445297128453004435619959556261159294172632780016997015521297458971276505253430384577864883494163978264913145166106610530801748684558721133932040093230648762822138781833950163110467432151302234994650346408308157180425273220759898420148672449717112933819875577886094762375581537199740178829441622491308263494775860811656846505539169892623389585568436417451066230011062991604141871722084088509611309918290073931218713200724565594383468395465967670329866892941246567262850028950811960459444566200414270710271808577208421357017758755166821923673379746672268447040955629032232097995109063761274043238573792301903133855368997856015295288649375585137823616093181015573985325247797363478661447546826599160015305836300399998271114164936052925259480821885844663534838222727739171281427396196501442502668269121493415950075242301452639923331460557298159380954675116481764088567213651675406962071424190568888498807825294871184380016394519291527409304318748452788195980831217001557956798141636349114788983633427576125985100770736892203385884439721630607565527209877046353272930665371039400279543512427898662242674741109528247068096273658876299002565305071556336229104979955892392200393665279844309888125615305191901312670900438606661266732750305712460034191953835240543399206028741242401617141097603417888314434313500212310727359993847079633481991244176041649854983143889447115986829502795467345615034270130291227209834636342168480657763118770878371598383138210415330184787210789416335323557023958008685122382498720546826477263778196109117617252796561039934470708534259514407906097275891894321878369163251039403515297023870604731394700847208085755490710336670254101412664594950763843485331688529981399157849162811796171907408770530636695677503213080439946350535286639099436729729855566546408961505483006482083218917016333128901841622434828686186722386332018372961056572635094069390566753956195265377507351065952018964506901614133400017008939777752483268005469814882655879153610809398710432777947283058587891645943853799083046685644688903928748570552602460615207265806481178534339273125567808791411816042829395036532187436503428862415429111854531742941537112712871473711722648625886159020955838892389572525493791752867607823144661444719324818181310189548373418550065867650865142858014398671723601552911245034587373641188597645305923393521931846336887771548099387470881780358360061702589627234875604553372443341111067055112364361180354527852733012088268688365510948783796228947719396674258700669238999333693552693112324312922264266403909083499368104094640626697809158086871309237186075783951084982036832265540395514189921302087997526868758843821283239274915786774300961932848261225222597224438509256706507424083080656383576373422070954263941658326082331157840170760288885077260310350315576495254072445281004253284040770928071625170902443156494207965213605324697883252592358266233293372776264704044247271903147962620066477368329679470512518867209395774789504304381366396710546564192456624439682118492837004533407054195032091739329205519091886845632618860075398704967543994379696459705301592212478140437231055085556394989074099240414948792267940476909964469691833327999119647064530826228965633839784666829304152740799710162194298455408353940252452802676984894405225790547295179298782944531165955619321486094425217738039691832689557558919625607198763452316732969217530942062045555395780117827649441228077936371850812429980916318832344641147794647113294233328076512433645764390885815799389701607532071730787517316241010244774941754251457246329828819198372234464214154652805316442908675348982147021211222339324609484671322697662732273902569402028910567495437371721267322551685669852839121410508943754499090794244998327566202165296190503319312811824619738802636975566396679637581032474056089847523556141280757311224149811025563372388203807839303011744560364257278004648889140327731371995159064867781169710489679458147093261093004342881343657082500169299707597291248419291391033932451887902953901074239088973194914737283339456712761069559314312854768687207979773628642168344666459172612492090276161004051767831387346031618188662956672952293916389263450033629970980645881300118384287786896549942183076258051860743990098743794231717447699985693510889468164981257633826251817264105391182623422190861986031280593286818402546916673649603599355623947831718765937511986776814444446472316524546147542505337244354311749595761417443974912802294197831782439648662876820317023843144400327070879081299052460362952873203507793330585497320685956145741185617626427311383801132577814591107632367230837517980500125114660488519145783654159815486050478782954511840047670435519853884940140640727472563325131112342617042421377756207096423011977246673241212958658848380372748228640636671177052681528149075324825939587748136444550523864697267715908546438867460289093237039015833418286252693824810931117189987510103913053381892728515444466962052674923077401934033959318801849083407094341686319638797218697041138200703994818040309885718458675614748985409268702362219494233347112630152174171995961310458986829363846319359651025203161739333164688330655808827448837459592114988759764067419522652150412712551851486922796138801377267661193393110266273745616082564186061277323931451583976193025633844654826677060396117679837026498971884226908835217491208386503879021763399044376192710329682251884019504393884804483886348857436665943419836466416801711559305633678028563212322391681153934911016877728513431658553237563005704366173286496716438942154646708175853975290188726376551520234234659658217334442461334863846883492246752468138891139668707045840830383182631917077060204702708922146091881295754123822233510405218080446347832290555174740777011246313331629935945567409820962650563650303047874930032115331021186926112363902831652146507611348256835229125780601453681193389744352295884492229601929461140311783508578115918431936345287056242551612227756609206102916044193320168597109163430297381839172007123334253781429243034155329438609473582312424236209437305922625881676589641819757334692589170216844145645453474702775844774110112065545024737551483941072454858693186437645107054945159127339608317612401627648747221679434165292576111031174528518202654013983814746385244278086309124622493237463538137991081067335914368135595282249415186029700987922601683952610446504969273009335636116358517933974822436598526522518544857312190078457518862874386342505872486223795329097115622165415364882192608105773192496330826619427279571734705801749975733966123463640055662906646989142835285868208600429453362902196427990997311020384783409300622519770855173028887162765958001681661163660022577192530734835447254125669435404655129781206364093878600374582881954818422086020736105832311363732969854609493440970121999943357113136526864583701199553039629346227277942421053976485805499273919784317305770663115579494039053568919586049440284630471928490836461545782916362193911542617540012152798055496468917253272337318167600459991426260503283907797188016114140032865910369355352523260470082531884327613627620894931945133823234533583657636054592106982400182586022975025649550890978476335713625663551584686234518064223368374938964522525423745485508117353899355302032779066978021233298634362464074564149753680206034473086360319328254339639764761111816716664120984647908279750700286240241203638178963975406852921220094508391886057030397054079656799733486545022297800602376232136068243108451831480269931686097168769857976589620025692758135960799462810805029280594439509801680149206346423740770477289597382774537373795019329997925303866148769577120466546341085793878954726348079050668979625077384528268447719413169980843079034630177193652937277557089298541221807112695267863651470738045977605580790803947828134068954844680788440177836472272041881231454937830351729968374205111376901660203993805646903779944235761805452526882330928613528353023541931482135988620188628068761243620599161455416751195828102546788149456550986213401646882431336611486007135634851695003627416516146858407919206190502878260953511408498166377842397590322810631572435900229699230136018661094221601365762061272913978129801880166544634859031641653076957530904870834405165975595905164738873972735202614886813495864362104382868511468523548234263838519258433471902018171794004806171487696834140375238704017800057182058371243689690528837603640252320523829320073030751483122082933186780068642813389385238453403346548046333667550803668048356799803525296804060658896936394943214065284461154008796816708921565816992617434942781649942775209056086074219518747250261921850224073797769985680905348529921242986255836313200614691842208518199316476686378737664487568775081487487378962907030582232094045529063036510248459843432015093650435136240125349868883332342345980813544061903162950907969357957499106984111705619550785489966601008133647841842914894210410668283786412969914882266812248667843130865430682080283282864386105659390597666949487704828057598832897493169255791844496093102527720292615415460054821249362752633024246512429016840722495408852999008396366772543600720215680707644995965210150909023420329530678826280103690676667502711247191524606611124477509613735576664156324181579023677076617856657073086822712591971288060555244574477715997697137277570055701988405621071238692860120639638900619075784444649776545569539457914326430050692066695342789429086461330028699583135083916181382038801114403175896890800200641603523524817985319272618202015781749259277170882847854113255414696738414625860292620844109555599775550006215378703264063814474769517005335146633610939651919899362611538887173998279967045349003665408575774623383070180815813171483131497303648370074810309323417218048606185469162639829433308759885331044556598498052271379949592640995169855310293019046847776436549164328357752614143103901261352138259994490860614098995358975155755506291722444369827218421469831718774846442847280039194977826820712712156068526326825983721889135079571195228479032256635982376335347934007404108588509129703661818669187953149793688166917145837506754022137846343257177501783912872573052874540003842105286080100166874207379260870924255591807770571093699164547298718366461293009110544048357860008469037688301751225993906868598485255943412646736476750345716505188695390211449125469709265178730902840814239540266413720038706257231838805951328219355536447214173303816279488089070358290847314288275726585270509697353891701606594432430900993290951824761871060349689723220535282046054891736311951937060517620434819914813906838335621505083593289681565613112039635007246182803699645881726403547737520621936772761988247086259648799338397049373322988400049850194664110998028840732458467704727538692861724224639504107252432137902906240571925051733655444126528348245539040915825059776514285804468078662346469407796716256904260060186312691204047552804719203961750284558031482986806276057116297355758424875710755443252699411874398994723940091555307189408181743653922791761226152196793316279897995032020629041981323014729288698313530802454982919910632680387020027988793704806522316875076097418332927868240057838043054852944001239010230330608228812139807119625515713373356632926022519647522491690686427412846103885155482128927558840426124032820212466816262670694714919785653808238499693161273166481813159952511033398086358215257601352717974734680086793052000099081759625698843938672685012963465579624436017598372646744322697267475197801107153376930593395535861740870251377769666280314009022854246792004708120011631128008150062985404858692345681366287301395477718918011949468736963072707958354312930559677952864981014568825705367421721309967927150426132799903765160512166436662398816532498937719379247915523819468232301539616045476524346094335131809820376229220272387090229192546677207888116326034788652973545162161649322609802033210915351280282344626209880362607599670764490581034783030455324470221313969069655757038394406962250866029047972166098213723241660725244720733783299156672549414960402080856751011074760576372113983376084703628937280045455311226168188579386245007210784920265592987938370404559712592926181047013875170564234670089906910325233088720816774795923397859129917169370724139124745723426649415094017988624055878734358112296795792120325579696531494193796118761096067842559647386160459139139629762747254531963034486308889154503997811835611367061056970136294602426669326329102364010746572701677304880210613178356891502491017596735241981469839572649126704145623176814203754653014755748098592522956605401011079570625534062106000350409586195133219364992909861506950604293841537301744680773915758440232829124825453516987817332617087577901795844238549742602412422146782181136300987003730125361328137743755790538092258366724473606743485239796511440144762524089622343903100926769951402929347800341849174520590478790000444372326053969842949893245604570191647736921481128075105895473952624599643792469818486333158698483203557723539730753248152792218292356007588659888385940769604247537469056983200928904809246687937024407115972580610000264634414163739050016808280728155420762394187618201832957150538588325052208349083215953119406666247427338066956039270200651209624699921437088648142170878887408403307456137861852032159828613034771062963953294105734807604032224735677735249462153525957369367077163105590449172570298694163518583266357841785426611146310287389085549063578804887428666772436000192629664172805778074801734853761188892015957326489554516469269374512828585939735951645673023621216346785114170679087078921373798281981652155552459507698771422613481309352482890859903500687104973067975516764324221397559811674907592224643551358347922930488412839212883547475933455402521261728799818895836403919458037731150862593645979848788963508774923546923663957509961602192859204741908608079646232337943754526687107555257156670713461421796865616175391001478065651650501445312681527365864225880894829281884731089185494105692106896698153454794441152525307493929892434302986360335529306089540402876873635837687340892015579771374872875328979062910566416268680009362663333202979066779073226067825549983242991575285015693132747656260602666732597405468722047059806647251364881517409530576246010478691200400232703025204082152991673443210253453503017325998506582741501539629327098046390235318231909226161041622149331222449209034820187147570925587662379692568116968503049557393147074330066759072394639833504639378704081690426891720077955716480550881455419933115414964138219878935051983372301599973893661212312046450880675686993167410861754170756041661831387775541042096129338395375324711994769878387755179168621664718766631141064950137440404957503249062231122568064695577538759111879021784338665251893545013265747463363727423439019847114555638451194005830160969153905876132574023624798665256479998741618252762237225307486568252864854706044325654514709654925617828590099949873214144478789630440448985775505912074724344515312439154332102963172085016599147137953972796071688078868983192718024431044311500995540135053410216188640774580393383161091294082457101210859218271474318172385089155504140659085385700165142105302241508682584585275526173479353342876871754736002394779175815889368696013470859868920827984165416831593755267509190616510785750444208108135501394356937765211838215387397803439411913640764662680337111828149785869601708790435199465195529435107344607731179429023731629363796756158319169254393088187483784764057741926775999155126532284566766980002719801864694415574571030896145654000971160611012746985737682573503234465890280736061056025175352299951321543332800890658297768109760349755555175173915017976616551284710044066728507441216652848794629634785852829081801691529352203806689620905014250780315510520075095250273705152132493260773412119652617518088478352230268616072447329188592790814759581364817686242208114880252925375366720360759323580805199037889455715682913693175967353383561134442953149502091981945172751215374031439533797096981402435318784238677972833644889346799699059389470409010109121180093600230141710204063700559540997335644336125394977144247114471498781857989478279955304664006970825669412351997280001617367149739368669466367379922166080942645712325299071851940706483481368099009636982478673534008970221057018329202466746830937322063300979412576469707668257901435988437575249974119012346030661927529314624407156801511362409703340791503474632016424677467868588102764910158178887677565951610254580093487047147617103497387287280637641086454663143487112171877300814676699309702180507969582580500548556021200738757553109423276195240146247805614183161165440996554873244959284404371453403553927266021154892019165799332510327885283750981173774642743698303149429962100208245891090626223751760325902586652397633070944674790814553213203763716640931875495745093657983833460481297169992675979304053167162388144617690436808608798266700880509177976554421767061071038689332478301594083996221499493161473650539179201502970369749428670708398087651805641924060848820072372411788641644194933237449926350828904190378728694589165018478830771015421558670567242204644903267168272784356691675995585728663237018968524918518734342634293308130304856904662415490427895958109553392554624303433135371970695807339969352405707764466775850187017992506908409537196013731653756280757184971778057646479404575643702187666254534991598781976002758683563310129729248697958926089324623361880803518404086789598113043318974897035555772286774498244144823775823028046220836917752764281807285541130687045462400457455033715165344124716453818919065166024058929255159222636320644306995218809207461945186536532373055858888208505738496056180109296922863129179010465514597155675923206250030740698151214987714168717347220187046541495472773826400058719153169666538910891498087776983527689692846424600649426878020113640444758838726752413079852599403068997263148062594884324195267780344564487659984665244672205740297287799651439609096817873773945686655776790300337369961632823967042729474960790273740329119709202842097792907124409346950082008214922098051695901760160639584363150613535220438875523110350477689813319114423397348779184937215273626754416807302640589643124653753884508086703285963168840852817921304988370362003449112162477579705466918378285692218380475002133814570462439636972086269308332066218999975680257366629935892906581383372275944996306900138324989784414931083151611989553992981151598614533471225151074327175340341910602322625797004997598897336713700673717989240322967666323205484776900142765992970167275806849108900937214989800492648633747644900002822297600318447786610605471720073725794678152898381946689146997254312693821324451314824192981952675648302886413674924421187043913251889216013002712048653255370032752407607892323275196561712307249993916871351897651974452728095126663362925523018423052047693028043852783561604142229525362256281334537742269716263098130473140678305009409858284128911726441246255997344107610770877109163167498662282832706425966701852944795818006907711575097841366224487188343664605524289283490692841720445086222290332316521077705586848020548481390328115304355109062082269287395979444009218336640413603888083775872778051967626718430662961503069935258244348312605640875880943545058863064202986576017745247847071689070130751779822251220162190156742491961204755541463936409458962387833045809269251110124276445786375465228146391045226111653720796262588688540122435040405014402585159013817836417692183509313778724277877497082981133848263709488016784730298002519824568554696332267100398132628632538884874607081823821752730605700871808147539552712153756698137179489084177463420174217709769862850145498587213401228193622635910364431923279042483545679488091282559333305164839147921187677243139733880279677486386651288760856922697183559065705513066680868628162256153160217335060868765702076112238081938153501655404517514959183173476396889785455671104206500272133926864156246323353928554276882685922271252484537567947113440473068133648848180114562149343227845001678628866234796800929084348431070790848008298044282944780535556378050219264390089249906048534673550197751999407022799440113856302949146358746070834340509207776312285399331365617312973535306482304741765139649653157915185853284449332612836957174716378101505246876513519553660164604195127463081488951625533571996508275420205440885649176124278189811223585831697856101286205435701784326364768862694433570879031065897649102892544046948884672089109423119498979260176838860613089019188372793096584761564742942721975474949363851664536372973425680958695374575965666890530919102999997513364885900134567397432615991730419489282493704094971371909150466615537101188132998156797018318789374598196811293337345511435408172483441248028418831863135535871360437874639764764820959879776782154129032757101669329522278653688339698688741471820661851896563558667057571217615547134615205395123341657681295136109511530116587439016701670276600881634714321970178585566007334935821724112775580583302647757259333905298226399795668315601313271450846413185514806998676291184800796691950377397128630589684708376059880087849689527610544408280186534418956954842751320305960711624157728417053105183980871939873866820412614918484939485039261763993978252102977409514062505360288242320286315988115454049640563062225581367304400974488826120271306403886190480392250012674454387722250052263136915421694074950999526267909601478956879972176392432279744219844708649790150528921843291859691235567678167027420856322345429403096817279255222784700033270465916084776415311879489568327115141928403034768112157102301657001281956328371240754360884562224423058815052132408635572681023771202934585918235069614880924738317092012801322646688172719460819246227085101361942283956926760215091543772316448409945827476425823766054668000124799842534260922483357147170383889815597434876346236246290065985616339411105748656644217904731999426400968579007096410835880590724959952991683852526066595754710244258167125458544283112870681898232983452223507499086739921640850823819243068431741636074531064395604836972597188172727804611931483435232023643479989126061757506221032347591926445008843390621458572123661197883069383173738363979975509682216350137207422823813116524864646933039895419505681472967093080727964549439805567566304206405201313392408697992013351118871666269392867298674079909411814308739749322753969868491661459417671892321220787510096295372703992169138813690475915171867601332227304117164863671734064082665017469147600747474655108254462279970276546045443254407765617882413419785307202702777354655579938142084351299108358085331512486476280320877965487894583524704907992696666256554037670782091869199946169561348035282649498645444016002521114674549210397281601079134264984936702169559572275008924315274537341260901803778865742145907149475213160321490794867413895885358278033053965666445006945100629796314274842629918517601142926988359949000811477847460510429640273651471954300112539655941312469061673181117422115202274908206496557577562783847879582265433181502728095810351794450326750898448007413230632072792672212122738241610728665095987404137465082822732508760695556431865508372367845533999241495104872892952976978754661970756498298437470783198538241637845276750417729696834747398340970496729361593980794875985533317793548203695462746356487428729427806210702462436196143392636190565207732463030198247186837659616692204085532963337411010513314426591181286002613886692736917432612343953713933693443832452780621741907990132722135405646014029143350851782498818051756802570380963248113835522378244660878098752902610465942240583681286783668462264294738047738544722132636745792858778205463169399494393124847601521225030719642747779858514344546265400611206241729384490496121739590844485230389777245229698826354523268435634534422066190942034688046949642385907065836725125979408853295656364945563820121891597722384761311838949815700229917329195454667655554705340398409029303168149928730539328676082774396258758941363212878508987552327287538127085000486055277045226352512553849911726931326342778938413899313842154697405589087911144991451319487789716008190159044471574001120098487884971988474689393767330241350796402718958511212099044809202218475617911725180247156475039752105563674805109380014319861827051650865965210662208103533503746997441247243756567496657930740792418759030926407636814183196179105619898802295353332870078982916956301800098731868071346277612131254131713596597797923677867502294702652195404335618587051974615243792513034970564400351185479280150944079480737626018627450057053395813895847062458075235039042765116493380472264335139233070243982705850914140242447874892304420244430110887953675159226175435001175322898613429262432108821144677892046634078260440096058295551066954660064160128157101453204812947985286276705611217279495684571734043060066504938690397129949015195104566891147522564701606168383996857997934412781981803988922337568253651938718716375655392390674249717214346265723445488417173930102959897054793097790299056970601961345330658449293182588124871907195382182457919109820917317707321659203169879642008686563542578767394512263428199616895767747996873107177400130136966275225500639175954489055080600342146805192237579497838433248401620907703511153209464965116734731521988156863881610523545200633413109440783412367461172774668335283601349585896236068628679946769828901998952902216944443420325678465917349977176780812281669719176180337057770093500525813479977842145705278278085707336654411794830560852280705539890364624965855941508115472658655574027801703586704121769550559819567330334794501209861948283130125916346865848424128465521316270798390192220918050151076595440585224681573508367032313880321879748174966477394526048064199255304949542398730340065247425308198092833691303569964176444017199560412578768975651243452992268099940155210098273339049542627173713828025703746719004313040531136066609891847302520349981197813361202026038566322156062430301349759785039499457379261893643822192516096048227122841823751833870032515589720236260020019921149570998536635278833021040017218976925889260406930624120998903455876179297744560393924778597858957983149823684561656130733893549546375347173513952248637119790907591174124067970491967380102940904013470249206881732712640718424803137391837142817721281710858214482925801531276925238386935057767680760332222907646495712121821510693008265288369143278463160518602664285725003442876061713035709578766041067915903144638272485851480544388093885446367105197822276696676968695011094402869510755502493152091372641667070255242221412633167753060318203322643797053956518886550068340495496855034616100602315515831678572243276942873983387560616548296414730183457437499359910982409406565900475865266285395241760371338231134656967391525602184052557282917712670086456974754746030275765744126617657132905163886763865361704839563083312396545444303287543882866265017498556071649027051031766509082622439660766868960615535234402868146359618259593180540875426234336204010232161893039370104304861493174622143025445139559391506259236249981605359117502249316704122355975709058943308683381583427497835311748172105661404051420443220975012265041854967310509339854147147471430390299458024520609120958616173021677059686659116147282556819019515732740204878201719649376726963878849720692904948182656249590882903408907746701145488392668798531321592804721325458051551363325487796412903299363745407356759731762478243409871227339637886256521804002380496421527448260892329255273828954177917694448215078141634515299343027744124768071183604087131803596584019577425867617681264855867309981032303958332217018949792795520637202645884825833004245860922704810401480363092967430367256726624020538335773554198216025737697649358824983604593676407014619025030838641581560789474912744129321852801520210951820887103459118730172419187174924303768157909125085828159959467571899407600232239123815754569487477611206854371382175244463862256994146473444914217484071041904623113878366862780027389274928381848467835235186809324094544552837618687359227686492664967552370800296146011381121561254495560146402388787615268940180736392221597565585835027399599509778740946698735867572642208860400297503545872774288340585782205251485258316770008599335782324615060140095743215675029007816821969017855403654118890705669925230039055166193516119513364702873792349677230508596546371837873379043576968955459746789972556529422497393105739354304880772331558468721643537849357782563615504185745205880942274545336272285535148679275742523678599200293250260650085815382281754993719218627670415596831871039481022571785353157705572315383668255640748260127476604087748860549402282506039206446232797281277584785090355398032520449813871978527159685708540617772835052261429586937368249948317362412407673484595793470835805155848980563410314821447704121066424700173684956030290633664651072757191250364410692860260392113068794437970699768504782225752492250326084389766201754682062582835310649973111536921223387446805463435729161924417897206867007890920053915319045166511949347509903109183193610430576961151540228561528459651409536783443658798707671880372154333328628105748663927293503515743628146929643860220344189355897044335001286475685311472121067501675074318528826051099972279188883531980717832281917724675102039390700109701222709505971090955758053714677377422183963586552680944129999896177402779477380538239713952519353178357235423090948065572403786555641782158250980997446241874953055769369079739651461631486445209395994530458987709395684337619538189285380743475355770784955564092173016561261819556522781649860276926277693227186449994921670309876123451483367685419641577210919514329504115265854884256753096486350426122205940550420349741196350855120040192231168073933648185491405571728895951031520462489606979388037894345558947227096166668849379229796728517778480872188045638628386377321157275893738710763278356558156092894164483181246387853724252489522679421528604244970744973689118799870230563417010132757697472635344854550247238812117531335196364593951862148893997501304340360164798167704845778014446531065034935144156831313394086714846720455043076643289672147217591739396021164717580481493413796903341394660471619403518290554827432020606640057643068941180908632017145978158937486870253343674511293936523012012285764270549037494104446720804361870167881003367417428028068859049989045501296914559665020582713023862599968363517854396423268585938667436256633266496638349985414851403411834581449048470969457893603759304828828998030365922107499505737279094587851278831077143859880116171839132757699872317776376600119523982667795695011068323736902299959957470589016191899700967827561369651319996660642158307738147942483363936993107383815246827069363997419005561889578436009552846073432493655784142768871611626947866833450985898297118744921002620859823366586348682553930942325573974143186431252876410437827765208933805044932472152474225993915748339208763271966516149773003631232079910628474473257090806676598921448341123842417170896652747188925299883348370802784853740349400547117296282935012634800374107644296807302500821649680458547182340490778854459643469878127614397121963041266316819353021435126916658737132040908714055892088460517539673785777256521176826881175768481182224436799323371440069746735115744595759008592284370388042789860092278793908406887221713812831583948314844502210339000165018232730284269585937471071234050019180490185215124346680651853135737339775698082291268497025251936658044413956717411227473537001368482139614313062357006903571013239558581796103523072291789659270673125511247295063377908714234300933323640359214317499531322600182623139498572862153669405866672843503759308952675414232952714789107310046546190616284844100225803950643028230772888591170820547926340048220030486370188516685445767844373028487001894087418712441771200880707948533478696473665554049987173736429030126970038816619646073474401833933708294481039811967201255252956103172667016393434784748193906496581732839968283466395544325378054434647609433650732878294572323855713993488862098671658964007478632465024350673990705248798740386344136537191339598152602563994358553676119562155738493741982900395084084868829610238587500986923633911966380384301897175357559379676599197992929463023419322800396240028140766156661188993350797398838563910139214093069542024300573635387125170363291489486152678509874243832909706750113950313293547142493130758802663997507391610318669764428064771992173798038006104325468872853700573898164403314683185284160281443933171525521423599305369535850450764312131179381005086417728697210978909393264867397402640705287803836103032349736773974030968332563701396757551319646834351371599196960393934918181740593816716780173466419153010101382107989956799345356991640124729579730704922999979004485968414210422803095424181982286011812372663235814930971748861334840448050577581249248075778466845104372921747698788259747095986685500194085037332705932123531287586871085003905695756126963997465011435258605542533124000897721357621350695544553489955790759875893494224556115594818934743915611142201795756481870631026223842529120980839640556115627077267802500141881758790811429098795926079037651009475684212198855569226739236246867139091927827758286601505538510945592222270307349003860842533364062310848031454453602364475775877861885227552618536073909737780154157772925349886165671701691594722415221717912826160906194851427037817458650781182461858443345150527211984158842059772746845368592516467679119980111103282663299198288057191168373708002237326113130540613184011120268217731960833829777438093623423849902384758437960402373911666234225630936567041687084801422496343536041277460740099961621545370622297505810625552539493137125618273633535615066245212720259109995942568906223928987180414546537835261673226328519353194743669419263885217999439027304526028887060886089697789558526956347755985815717509370626957555631590146018927015210870833353642954992089674766516830495069448643820865466224202466173126200155717814158379874575443451682139878729422202397248896854396410727951033002017653261802139265304609508554275473427941505086085015803915804430178223716786402434971381389225420832040818807815827450015038575553238851934687285590205389766704910893806328340249960077864394692849130591216211899931734126499536036487870846915535019115325795876931106806324163085297375999597842443295644930124703199054599993771520116519907253629875712625697115511787600686954099259413921516986458448102022609287453315980430315616126438081744449473196794460812027004940605531941942047826102628463175024649322437392237597700727319185009252057080126375594513343898831950380404234507194342502206021601389843622029664760460779143194859460248369164650262906666222903597006967177083896137693671220308592138276000611752966908293315307137092870343647320759458715484793462104646701037940215316128975049380650001666370876150517355600480745777843015256117747909114077918945597256723021509815936566809261898649770453059439947694607874999379233215529299960119348024889766251872249633905868579929896812352742134088248882580227150592599457546112844730619465063092842023973077895812522952152932389375911900290216295766468219406691644400768866977591258477105767578522755919291739192462638557357856541465113284733618963467511191978591201417562438837997714812951468502233235174707686886398551019716668430450998276182202918267374543293528560033065963562753281506951706155428581639119146724044180405518928109072708796289792791640056383801870860265872621026332736516892155281770520652209929986061819245205974979717514346305021869725588155341679595113764125374552217662948500665957847043947945949456182944471848859836276408628877367947266718505430384554105280742103036525221927671246922458762683415432325715694541450947098948107462599622347350187761899854826844975007243391026345875764680863886559425368041171708295156105402426743260199648727881070414813313041645975739092978547223436957874111572348237546550241356014303267906077902705707032348315786148434165691003416324763007039497070515535738311574379743068205335104471095627849262620322740105187183750741603992272755336302925302834799011483669078493387536571103072015300026155924492515843730410510284682047467221309263454863815988851903969575034298958850282902720156776094863279754781196862355357164983713115207800713897339343481130552163046999812068567470408949594346642495099948611476890744774089261170222185512013548363685305661961944101045616870708198158451108977282554608271834874617727869160998014781482301133643354549687280103951094739453191285898091097390473438783841248154068273153658128723897608285481170081406469989186225543618570057784139914822028762466628833739539109155841500220889174564622462440000740699105141083343768876741064223691767718416046005407739944354661433739174451479663346443846903553911638286187120692503136043883019933038453762860883668562104468136907026818989213602869245904863673814013519519816191102132425750128074050130140116936802401536489497667775213318937045028584209365609889363671815037867372408424156738511455546113056564881371957780837236977201727735904635764175167281557305881046160283170879188767404255137724094799540187696064202570946221467381544756997367748121311792806346088737109870543344861951948398573488011147773471505724350130652437323012365741127754723260682467244093721220965437598443303553102544947101808566327014607885755677275141279422375812387969565912396429083085109304152203041380208347651060946973694420421429921327445294107724845939704167466849147474769872945532778336562390961817886245998010180620721462732594679405935070112194607363418799789856070720239154245632417615378358934460165731496119119762499740689935459973242660774617805581643531429128631082470536346745053012725272482409565829432442083785193980593774295515696912737996354128692803261216525608433893329198250451934240718929893639044907739880854936309389515907323108389585474083175464551074163469189994399044108904650006084483691657623765106183685330743855363015796659965333910010573910783482030913698919725683176452617808259082337342408892680750104215026436867227599426707431080719363302702326886450849898260595989243592963825378275352036684739855693871576538106513311892454526893764638365381991392155324009582562285742411025937462341110231131227223484790216380637466579175315564177466931366873671545946583317180107781209543789194980079326139066982079219639906916533617374486515095696696291760375953398970370090922924363068610266755849094462795728847927009923247461982226321771722064568824778104032114150973646675915951480164627014592500509489671916682499253153766011904952290069994844642668399876763585121596062184168931487965416963163674373734090619836448561338500727778008512470497080055150847804540401476226829402847570057396338348164584453907859687806670805511511739169083821721794108924932089183591352314927115683690486157476939143052952750512300124982617790615980312721224851257003630074052431672300539520682233886921408760423062577004071317013970629289068099789028839658181792477197189582242351327604634854454567020064716567431146032523691227329532926676677602684848878280600832810995874777658025256373008608870830630207713063595599724167091642264460180837310038369602309947021112546311039061146294319553919579260537454339157528884152563726309973376775902757150114497336585981510084122510738824195305237764633477701323234071863405825047472819649861968289604228647278307366871912853752300499457870419152082463736957669667983217071381646267965159494544506329496418900485826441593688110139840312139501321244971133613486409498350702448074538076120329474399649466098747152641269618637589975712202426324710829268717047352677828715455328423052155984629056305536564460217735658057606791606790117473850260912813983697400297894885671468893184075242723737401229436357700675726349234948095230422666374645494316369738596629961686742892940141381217433797015727722198163861845658836517772613641236794368772075931325810492952448575907915656885318589316561973316218459873349858832436375748778773690046147330345885127783014351143985429184767525986601687046800397126690977706020543725053694970762828159802049135855342619698417745207764625986057142669574499436930715687178644156743754758949299299816097239192206327313422431185166482431858260807367951592477810070117506975734380673015567164814689480454715520901632638272584701675424639013572970148016541571014399891323141807007940462459172102031501653511752069555170184339885597873527393380133952877711450789366107008619939902673557138911725552778753089820450480903912089668627357489739932487699307558553599089289558895142566660095248101956334820936880122300294180155323235276180692733798349118928844177578624101998440200763991163211649117915178767611279410422328900040741234644773610976350926690576589462491888320566637178391616307636138425790776473428179078125986375455310962649751486734814501261277322508585707416208302112429466731927276453082175955877980692400165636128965681109320277002483365345999563666046763084592533634114277201875257694894301476972275462249581373954984436485536946953679350511230378610874198630776602380014005254883907624519118362280466239189331853438567761000581722896320603091868724720705695622484291154502635890667088920220567860324883057927478231523520157453819187631174574150488011101245998951088640473550940726213284561710942282337236639036796044187234345883707121216765100184154164782380516135158165195105054252944107899278001018320608663735620922965226050946471195960471725078852392134424353887041161092540183934972712369250784386352166103023737725389439017804597964097512079128309014109600843262460078719030152007680857087018750121489290506499796831358216886157757046844989953848005637264162048271985570831652339814336942646341597369048312614008926886814584297045947250608126999489114861839619072868567819205862401144924402249726464015824085515273449257796489757206295243806389762866163409615634512440163955131546403946598518581670792401809493156737700866444121055338670922348828278155762566772279025936266940138515596230175714073426546674506524093854071264397622944769523761189608930487504153946141965366396894057688431952737454999627680674788876079341121463651530939003099046721286505283837112751189286574095881585179235844484562355722573434649845654184482730449890033238567965885568634607774953918822542628614405909300861845625587519578232748953919243927559668033726258808714661667582289370523875422768636243250896947473363328215277079643662397344787057801635068185810724704552300023758218642300162566697900514781947861346372901898610827693531405328163171444033181320718336361044645196455582251288243306417423458731133231514111715766277007038242901123197589234807061523605576044364249257531644739335292239556715354710032201356639915142180841996792031717099621210207181406580721266481020813735070129845147426181272118391784100335828731033756593427837994551081999857384799104592373159316676108925476851123920082893571839773591161941380107166758058318537956216863368935432621374621604776639814757828240100012362047927880862784527049483175424779678787794927821435319150795331115929242847845527421037568876754889248311243886069248789102471325010322690822438943178112479259474892713259514398563699966737868654622305673739109796903311588139676936639400463387607082708920834092648912125715141964362027091522872592260554206838972237313880845283527110595909127184291641814921749558213674531332110547026204164070110227993163374729497049018299621137811730650980586911693290816408739341860724130684364373132956965729412988057183575524607167806210231938492734614152888860681138235497312943724746806802384427879408030189833364642398565652190252211656912997214460613029849786021177240856229514258281834842711386721043119420918124596707387089072470756987835259104038639396536518260145047903647774744597093055743728099952948239666279671768742983568878490723138351183449378293837511065022170120652055992569882831217742099928479131149526986723510260579970628548344624536590226254382337742539985862016916623341419959417689041498273322607077544284584157374195722041182195578675631273843570452325821424107969697845287659830548210968248132228528111728630210245290128830860363896251570731250710586109225884442232802467016643805734792961780899807225298215939897587503907365910189040076879425765591426794606000719097380963715679519066510709170303926067671796517039879368575863269690608390630321273942410841910091577317603356668697266965354779541648468312075727405248292493086909105326475981432019043848363109955370667328613955539474779034571440411688280221399051705067847059534072504371105578852346684354465919557000612081358515056313200860209057789549872839229158004896795167641687608169544437358090334181480785833038055731512166887064755792197432606765984919692027932833432953174597257662623717899319641852125840671026236453587336256468459103537421442109975972605007293883501521442313648057183561228109195120943656098563571718560985036257745644941119495823464392486213689527464449980849779241979732441242586706528117424347341765199190132125877352603401195441159854509021281204529680339611647082505201058434584936275175346420442537539884704588017299527812621749498256574388800860090460507499849991849693862872886981189692071240517528841192772378163228701734877170855333021337323563496607305496444319750465205118057249962976842538488402264883919366754263324657201515094228824558050490762335497357735388775191424865424622994433018042040292144903580169069345330872732963426920778412046776133832180761171751097870378529684313432395686940016125300443509302905030667455556251650642100928205666119243058340390494031038977586817966963275602944397653206224933892278840624188600093002986493036905273318631970512729407432073545513290134237096848857782134221344401990971977533842830559045978736646633160927543047544664067766815299725742719048002652204479628622280784918712940220672429251664149270871658790505609501236968389840530726079365045701279116837825719586250261457247813195232442411763183302607672534244801670946623387124350602505260990513608089770837756347454565610974110099253148806298004162807535259668755207328816081969808813767817603524123483989844391348851888320276909561730438126451441870216043708815112343164361341164764117606671385701477330926770226936012050779387954763594164638473109001606031024333512973588719164541361230166698496365958063492293859140490800505443519383220855263471430040120314916373236816283803778116041518630911479568481815712467775019675502674757011399725030344461729791178677319363818991986100179166734115680630283814049680141519549094803861941583530601502690817147955844446873599992527996315717618728526996340380767032230577428405271075530330299916736470883296602944697212119219494747541661672962545140044887343466243085352822484414261091362602990599220504096379803847943364672600559337797632645745716763576234254833389499194195701663911370865740734341046536696693287884663377164624822153939989637377620019838471917456600426374811704666045711492175657198752570865112349338348295273984011748702568981091538391936737288242789903185289554031986689290731731346925960376490378390020207983060954102705434952711440540960190675809140602404306514963807779922998565345070333773218921633302129229998074965981533322416424203986659926472206723623589873498645069539278498740103213966134107941485016224610645513213811975588334719094407930904283943774486358842521942828477044942649748651538892775449014458377891417839484139826245781186377203151840487542434677320096032620751764256483738840525944682357914053954232344853684893506444826854608549961672263385271529345688857309308117913736041169159797373728009061559764783700813645764789006925852936237070149168394495178010101396660973496559688874797751214725255223634803968059529373939066959170140752210638044812296382771995815243284169876311493751471579960068944493457034626015973912215836833102677042597106226640325977031457557034126852123643833599593174621095149008053885923342641458062850418544943576463921354828437293797963873927200463692522555825333233513977117237555547990725227327160332870628222787515850651112529949965398072523438424573031900461427104243225921178003610223545476418171819343764322334295308005518639811703214777472616842701104918903280662811869173713248098659590271068067385415861344916217838425844707962831643258703738212464440900431268553354264620388120877159189462501697470330932114202217539373487810671582960136133721441477998247795764653356919898347033714520971905479543769364983657849501710862919940246461491031920915491797132670325954447219948588069821594219959542615845462089365587758466486435519384290803913897583134059606921097674974958257107520141133561704452849413436682163408734632758429436712606674299680727200389801836160437030825417939537865595846077430868972311319734349414342769383455208356140871285059358520623928975936184118582725745927471480386204679689416703482615861474845973471160494674808978259486010930597662022685338729486153734458465273780898268054399268180715055914137248815503733694410460253752785640490444264225474542111463542031267594384206724576734707950486285762711123510055539192547604612303795517126378504426734346881615892667165235543154376719120646700048392782058309626162733013187857580815214980375990686682966200743854916380988164354011528717669137043957704160841152441342652293054727852519768621065407513992244115440520277904769996288806129620828107347339525310774187955402628297271858401189278783345735578603529714280051888975784782097511275956196883043606942138421222282228769558147524493893796978240654046430629311963265610856095860621472813660134250518707938312330070571469142003626931745619283871906265587337395263129768753491012338729151110142434214940183763973342580288906812744065528599336618984397890041098406440992004030427712691229224464634605249319795371183689303915271333025890521716044617516924316031396723838290573482157695474097926212352062057441646843455959331350442703162409686632944538944073367183356695800714867605207229845801122944446478341113414307805175739238983555289096273865030093741331820854031370041528346608549960807197992285273527767211460433099551625079351890693844563108438848096380990861049476521653632999803091296612484277701786597956034642090382899903695767806689562222393447935536567972570322241005303650980200035067025873287677407339715924938171424873011109874875420827113166567787268100361650393308949884245969745633619871084491770090193785347236421363066300107502923968070361896675641532087610085052299825508209598029484012030239747431245684021253074120300948071201291667157859726422903776734744393732505229094672310845276143813263759145783705635639364906323946498457409071939944190766848932758744741692440776705769197217031815642608109878297730429704389966537178794065171928378187099913022258763943237201339993433749141570060996711408547813836032054637523413222541147002424182763573405195555686676057473895337795857991553395572469837616971437431792649435243282728833623566960844925634100882061975855698564377454939805654969501313064381390883673074080399447092001833142506339118720494054004947891764484105797509094934260933821453850229701686607387231903637687035308675480592160154437571565052625117911451329592175346581967822466470947187517547896509790396144584293319013867802373147682159797248912428777560831798278246627309253611387934526872524752644205211402211987514593308616776521586906102800766747376667744823734409394213493302229307982424294431243554074920833852209200370815267171322534073026792892450820386562783819849836583189429937966362238654558959401054372509319466458625028265273102779595905718186312556041466167321356789558312545260266254708762500592170582326028916871287136006743010424722126460049700294725023999199129216014879043545906580433444012809749519070402730611143457923071940180057005217335260111036017649443775936358099352451002207659625969069298448852225244318558747468815914606476239975057682151654069320567531279654552650134304238298605598653136692169098061723014332410630736807955943331043981727019193213316528359982928570535318253480611638144745292019615843552832244665597669726168169899033749524810360435694302813806036172136531214811855958353932326091607043659304428744418539984306635489088338710027518184241521723626434548905024114047613513383146953217443442587456523619793126266560580244702320394713822292790239111752602923935432540843272844008511381458889947155436810065465902230598479689186853460724449095388219193924186932554174043978142868039320681367930678605722495850772716790312421150061879148323468708114124093460878235646633529211234617313896959206796867772367619565919072986286296057718998712937706642424931228347237411552060497605774365223412256530081096588005867374718271820458888786117833270462496964604871706831574607380114371290697402753262930717580853331306914121539037123208480627772429840503731334153750284446116380241968177215192455321033502895236513117569182815662951231627011758113042022463690521432092453183749355059176203536840698530967144021491813638196240469260592948104450021215563022921580014427829333760642297800006400386306152815478929194035205494942790787367191653871085785517290129109177021431499922826581964401740830499327491071734220602683090224119693341157243425687052877662714517569625675175122629818850431887163984122448762267979930931796857288016388666814256546469250888830783258426307342496363466944612592648681298384365867788279806031294148407359953019359844612072630102756859500892095664150579721763945644255664630048671284703351851247267713672551717111308589331269778452519843222854206234616719836266542845428246232404328616749497756166841857453318457845602324691781065391764533834950657706990344346352365252532251539514624650509142676262274029346523071349010882801333282087751953909506526780467604863442095073012470899966474943673584985454601172878387106152108834625191156564649517298068475599039945380698772754135828180818760110547238066841110076907553054853272260224820920930767316013609880135551923734968628145011923065650315439505537759179384439282035796461507153716428668554489713782666206722400716433319302347092802944485727423844121857524000585478021672414259842306834754589853278883130824228464976269487092725916408627537151554399698169540791948360707126663279525576787178355236304904030120422365638416391668749446087267127149188636416697419735924860101755239577044971442098015657624855534609872104415127798038501545940951942082525781414365371069664271889038577053321295634887602719554199964156369832727636005111883772147597594747494057004083544554716141476247213530372939434082045304767665900800316136049082983305582111997475966758633155789024789256575202357519841797563517351760168265684808442318869508290800961768261355748825321418909614755474827661814304504564545881490131284735635228929813764401928045044834831758470409553539407182855959135981806443165629204677596830669589627538799615478409530996799856442519604028431514718907299134554595332552433597045654157141409866281233306529084775936378853722467042378962802674784029984746941409680327132690828104276417989684757825856291187414246894594982862208348367328524268312611061162587096862567684877549512986778478593183996432722208523090876869524830622245367379586428164292538064856569692927723092793550626816685022268161473263905654670217215370366540952255178909941329791839743653928420140610268019216442526112333627229382912885184542297640163485545913490283693715496599350269732743893830032944079384140975838991740012812841384045340596720904458653077886779374999147029245133036030005980521480841844636182494930583364112400979857590602949198563267402283351123334723244084766221891755945619404618443901686716944440493485819565960773064533149058900898031399261639874342053792290118296322491297037382245764910781064487037313980279859817039294545447477377760776035002312733701861547506997529531119075388159800104238961016644770855231889964996062409830197644553505274114117828984799150797157205803275802765533829008332552729770474242839542805031895856377041207185893296892209929256845203982557819500978218685744223748851948888899868885540985152508897987815427534693604103424180085632740761153298972442594216632377636743157727616064134028971949195709283297402940953334144817345533395804044164314451689131930801947087640287937315431777544197822625283731508170823334265155886131351083803809001897832657697894622053877199150996649427898837439342525497338753668241491371725084507248996030664818612369575905845115954905456083023804390430265612019564116813595840000753383810815436691884591393009491054482944655280220869866326427309923371835838574815365426338208257776621288556174824153093536338141499704695189253054512434930848007431262457382657790267165884580345410129226701989673545070028797249140505851070099348162530515301499921067901103541689418780866007745732580263386274197678072390542855760912458466361063955203983917740857355438904385833000366988310958762727226497817083546684002062218478988962887483388234823644370724281138412607156065776621917139840427846711858368361500064522205196123033471154621065762795225841737719591918873159735188181690007598131063660427666624252921150690957466901938521469721445169209337857613948785643005012142203859941112621695102827767574042190290371054946146356530503641480329765126760869063799002649072981199706811376676046411850981095784792265870798701769136392916982061694017726071600958945587360299698453456498816664826382033769638948596668962885841605664450307134189599422836226314266676444641076598285813661254661208403731415766983924929297924032639233444056210530947973111717746504062892106574720484140936978664158096540509687823948604839934501135345075216324920511058100034969877871941872621000055628813598945118939921403855328087334562055206344633505065880690579061467112164535979263390734864333282397888962618511361708159199595272112746333736762370054593230175852432414365244312261854175060609218775842384151519884719773787552696839393411909120655072637401458861257988637379860206339549669128620389565838247575554118059385311856978688552069906606990996889967478955137990980734187107654079255353789012769206396899256068058121217995253282296500332282761971127318263562271221322900671832144049111907780022471535923991172608243455391538202461815449881704231311577298907114299150998270960567440247509897416259141538686735519954125506242470137898914101065361206711978434567429328186708382812757132431444927539216994984552622347075893552616824856392794430352545895404857665611967580691704314887534538569677909149126711846896595735205311999066801062530979868706235742074553635757351259328777557709784770407674189836204070819969697415626994662737706264518263253833166372261582376932473530701017870692132330273233301295836052041436210655244159098948112666517100286181021310379698543956534140967849560141387831243280712408137069550781006277697610598250254235905579679799646496160086408146474213536026385089867112556417584258150591926765211883940345161551296747442902545343183508247468195173207571735645802115365134895495713252985853963371997813149570585993803025197197828055261697812818727301747273834156881304038789072571085385789440857807390111956137367045621592477958998566102899770929964756629623295424408825156095475155727168550019124010885320945833317710859324490533190293016918122211111233041371724949712157699728407946346808823883382543634145720100937944794383163178300687939873405485951117447121540983025584959840870256562812773661860376164488852513563452198327595320852041890828062476978194073962121308563416605323314848866511844503022831598941043469230998262985752615851239885257773119589926444256573187075450137884482625441491938890810299181992321900909146319302101713267168935796605831888930481580773189962469905611938367837074928885214801138658248626157240819420935510509817027338418575727959921758838389406681963875190960500711060617302698682038306054972047494914886295049146768526433690403888425066027612692571950516259724073306805123508983405032623842776777874398032725685409650602167018843823379032661170704688723235118749174322286567277613030385906699262015216630448380780088065957087893928536940799205944449968990987633352262008166177809066840483048170885290942532277775084068483546460796371826288075252426580534999950321635059622113676933013365354299617373910177768747738343500831880031836458862758892201584773710022108005739857420642877825920380782542872005005289531254587953001434023976926410676146817220392814375376373172231403173481784591480088739525965298138216216521689631028170408266221660974935380519278766765684107501383879114111417864531125918836396751499094868235170160955158078798956067864457861885829593415827609914019785373460456444862201994448320303944273686536676190099034492888390114666427779931629934442963080291068829621986958954891230669042063451561551609325740994250093655660504207904244013896447979925938105985329635510446911908973222306521173718649089153856977421578407794633170905005921379063033413766819535291889279009479874425864367941105371042026258417012712023744189196284151783734902413017992581483280020341251204629573484171555900547041080622926568028243905498459254364995459627178509486858224679524225357996715283385360920607840135007526696101405869367149910129599787370719145972755307656817542031731714732272990916275893432329756257342369384294988314590940532552200168199253892184265712616535412830925644551957430200785092452937469297411940336652911964310621400630190869789329735978976378141578610225686489976751240859230086438004560919218352732776383103469229235707735787829588964719182533156350281170708755806451003457441262385579375489037656889479354475783911690909006522595760258459359555571554880612497575626820010980033044283963997470338718705815735809161672311949824245032806099798686902966277610313468073578060744070702844719728345055202158100927263931215382513251546946952118355231245899369162228549915607263705615175416602729759383425064261330137652616440932681920065201245177525643398640900532842593026308738727636725804518139202018087242915637864288150915509073321395978410194655130703401953419161082540786844135695620428710081878094119672334302540862638843756550380745591040970419385966486029968359288329822585328237264316116568586989491442926271956731924318427483716928168409422307844571685404194987360365794534767765316474404404082426925978907973404402083269663262135938410785426584517981864066120781020810027508642737497537076469710420856061482385842904249581582955437702555451742108266136774260141717577024842192870760221464672671088424188767911425807000175802371570579533642962598630191587853857539351796174943932462733918921320310988474146741704591255434472277959185325638195164703976053016410613364268308132956065443060293824310416037567167383670634083772705126756903973046905580242246537346404707238270255344975350068398216907915663082107276057203112527267788798990159112653004156282828836475185559594628392153421031003397498893174441329264322597481562128005821660443376153072125506520154988498799483584294738239871326736699277124752043289632393532312689261595015314245775943017881025502486329093397771141784283239278056100181980463363047404902802717564149739477559141823580846570241473475506839759459992039295539464602977117226914062281011058379079583514706037048336702491832803062209329411785315817834098880788572194282292343937328273283800277603980181152341040153449585468974568262182830147181396823076366556808341623722452995555879695190431381634163642834116979362912143351087558353565724438343691341949473423701628098990430816395897233164542140781755853370471921383933785673274558455124498650792606585743780188692486590191394956433766424711866486548468629100563279719815051025512130744706911791031663698818372693940260435352045261227685350944752125127648988466229110092214409428538831268003465484200883376295185853790741794608464264201877793913546140312334023300398178014798385570347207108010973413981278714402192439212788250678948290662632190501851356548880181217777765701173428043810763533932168293972350617764823402687335574591212868524529921508783528761549933369685293409181405656448155627907167553915007273390536378596419461910377114385115838757781334114058884109501051597802846967859355909297307741101550937958224880030416120716703258942029923422600602251709622361789622307742285790895604076682895449545006515569484003273682579276801106966617915309417683010025973944706897547903879535834703384571278017932653789358643199848110752691828033215116047330828380945625007224634494055592668343806650884009135966623325156372160864424840698392068696735531517602590395944507261309548750299333274192239072777439243673471242665934605093304997333184809005155884676089634564257757164131495836477347704256422414205646137071244630425245040358038392237743282394927710311385085411485997214597795576245632452430221742173765125483795728621278792511895552022176384296406813062450756486046437406583529426515376241710340720560379426015623640906916863877819847444530424791431785909713824563324743211742055649314832316522323247713882240321482961306086152604847938397903926620237960688313529649988465097800510237882142251508438736755288580076706888391197240757192388707233887199468907018423022943243096446212191803285518165913211386677587495013180235254374067138092789649870733821848219472908447320985912634961975029655940460630099000954331513195601274026959985954138703982125626050568429415960648168041457566819868639149425790499552245129337668430581669199372167788201860605193464666051391731913975620704790967339810623347559143259440194441543603381028787779184752087329365311315514834225216124938133123422657529930726689007260839343265952219130837735832155554598253768550531781705637358614743224886704361367140787118028128157344470281259638226810459092715388882184363867286927169716826736248741422581638230013372059020649036921672702803293469415406403649233688603306876427249814963928046656364784221751643485287304051921826663216573605465960114201676063203861283424839602160938667398889442481613909138925121301271261953782476186678249130639744529688464032250210176281704463542579215928102114749919819131460839469080670139002744449009890000385724168386067385591451083401008458336454488846984465010649702046194101504174403035310404385537261559138521143095008435943503401998201635645828343177174478881278900029399114992648582012034173931613125078498664769767267371871205233534353639140198022115890437411967350780035868673140157116029717883231994438339852871937678104075321534589746804549249748464825612530720998002457796525834388839880229051213872553388481731010420932836216579816271047953770836141434483350957985182138336838471593458422228412959019883607405579492164377082952092563747821171022089857530152926555011827124140564699370435647787385330089811682172503606492890245678448987604597705125795474187115241077693810356928953704023878456483741205406308428214875094006259092188900333812122583955624954147960242878777805197575785866636433766591074398340295843013647747142949944330329000395552148278234830030456141674707243114751440959517842128789431370366013600539229818955138483716458275542260136902144800422402952061537464756356382958270319028560330201201038979336357486756577562906397301206954891105997682603215691181697479794974455100951286079810677085097329318206664866912504374588159414218410357329867587902952745289010563195144037539591200667532124117889212696449698897532460594405224281220862023695048199680485760062921328576131955118635422072043138448015350880675848887762462971996278155206609987932965949992982936721477851306388183622864152999062572528253552858006487358382303543289144899199478160870042277483932538674855909440935382809546056839863987475562110044271765732532135257427351003533217101441896939778733696929389275842165112344885969728579089439538512333416128806237934208347379068658569924431479587569233836516188367296707007656845639772938525083301649666392292803532590302211250470058533666556282282458862197630907017953387909551109610667654698963510077689113378158622164875776618551589243003230446687234560458740564850580116913983259239332140469021503608890832936953933148962177393785939872249149542349059189179278103172846414632570723617113353044424486466201854574200857134397870658546350666539678630903583197278592020685179391747974489667772566771361008035364159002829266733671409999037789077940400883505581074982992827510660431009911989523671588408061644062902608062831523450603609297476072132540127277962653213887527958884805806743810967020140485745754549047587259201293469322676004332211427044728028982263834793516183865001223754711065702323302388357555301692639226023750812889202496755847824266036845857365161012994232910574417713472743238348744336118717640279271034095932543619689100809743471778142616859710116585075084465614979173604979044137405183107847757713546450816854059730284067890544850208604270759695026354204157638544373168476096518520136702731940947543883927155358832843833623596489532078030437717411311514833367317045053579427834743930971259051170264130089858585564921742969544182070112218751268680358257612137426636250561799347216381574268292553655405407201272426985969939855135754947893440470368355818211626627323976935614762348247404007574545670218575958954462491405099487336409074668318782148423503496192595448227030600039611254320817451389642163250651201569575710742708780281620273673940252132847585640759643154352592546257233888538515448164500011756510752690098277946813074052124614460804175455901982008770601337319681980488652486325473602178674818141344831208912472070432328626909240616252469671573407798104339191833437899970884689037983775367659595001345589205482434323965942645178554544231485588457353813784195694020076116664924153679608816589864174388213448675366467510195720491078518738978302928560502221681955288512567255145788530666371240054135735563006262794934571975564213502839314632369629557592905150300605895032658888197426714810100809701560583757520123457307225683262931484897150392863423461598885854736256436282265192523073107374960637306721776708951451336152955228133415118856003987320240291892376856676635072985532239220025587169242668853429837930147857644333385804884069639230887822276461345710028875369980048583508034210167584568369536901705731883056069885220355422222143538326987971252247108810267654781458599448001912901132173578622576479338792077605646928759270489423475874865643790006100685287319636105815568625532108710364451451630371977486461542003010659891037778941413960104153414030305396609345120828404626329202102939536481052728483433729938303508808967060436678787410048041900031945757439671371424476019738571251724920790508992400648865310383138236627267722369435132580522621758437548511011196275825314926527802369632789133607306283702128424563565292819315955714712141398906436758932234294059855425468773753145061176020266589590084947671389934584931036737726917900167054043516994382655058086754919128398534416811071421913964238381856385508478050152764865140758981392103579700090509407822327387291030091846307512842074816858297102208467149042968817100571171120758650947512702640749455900600554570191993725868210811323394005565622642367998712536964598744889111279281906149906694823030907159407266833942969575861438704220341992153501754028118506284832476836504840924249434560746143602616819545848699136646690917657752791483320203905903994146209888848957087372384079715403345803313179737754175883460776857771101033031251727207352602318684169925253145177918881204580415189345493820147175946215728626330101556172391687749857572192620819976696522728640925973020639531312804176580243793572964053392730711839541097194566694785895383537314250478754294905736138916245999147426520619275342188742328952697411266809611913300189722748344534325031008578276140730873628032193198095231398631003628030777438789313754220667613647681897773351598475393184509377293583734594983418441838021529236288735011390115929792833344205361931420551480425663026829948631812954844034080511806218379654938817458957156943190736661796710698301303731850553845717521349512004833414308008371700611221681706286534471325373099117360266908266823286297910188344463020056099958285853321883831124294321712499113089641261998815843221299605173889980736984186505243790735650046352083714104220254843013198487163614288883549779534147550361405061912353243592561378279745539188588102024225057091717414214630139464855347425452957531664362280819102386795518008304712050038225301073124484959782357051929393690287040861568648608445097424025028046526380223413580284484287242384150777473063532880678268012276813265244256891112586739625441549580254393569640948368928831190123045114914251917036913453693924946537578227473345698419141967743636510045658986422171916244169339098284395077151109417107483936024142318125195071827938518231294504151990221363601910130681538337156277495403639992405426773984866434417699639355979963693896671379140429099286510785611564829444696358304163339881651281072375494768169773132206418143973655983454049331748950217384502838651067081829584312554081963612431004704009840694329695311018087142496216902348221173276537713053410888352221037631477374727859257899722352195729425533557246251519039693259723667520638021064413256899026639327213958813171666811153670887217771706848124016372668589572033946443333420978566107189836202195104414719615372139592250622434559328976757607430036429167117170466733448065603050336876719413572103455363246423542310269114011710669659580612916871655476325184444363999412939127114228579274769515320048369952127075350272102256855413780286272219191753396407844943517405758775289374238935413229674250109020555201121273461252006873007726999380614167345795250499056331045821142956556139118326243180575925569542366454762760271461885083990521439883686481777697488169910288877650521779238529973402639172409848916036199335170312958805491583766005804252907443148676601545279752974750315145423548386787403754174763404047909505379122458191372421234859437762908591651301041739565246872108231424700349571713926100275745665918415165509672105565203504964253006140748793768135275210099088175038806283540627298134251824811783836238580474131228771652911688139035543333084351925471291288927879002792714794425885775657146780134792246767248936174569654951868682758955506789056422630164216747920778909210579183495607685414332930666147526781994574951534936759111259993233168696089304565772248620590523819154689513590497626199660049610845113397926074446309464517769502809165983182352192969350437387582442512234661535024054992007174224096689263229429183874030507142487743398849711991742392547954222446299948440133007062819604035970238004101472604783327202066041307624711466215937171693554380274693423823998217040908945219548869897695183274302446183076641307065028607239793335269840240727562850009917384045856769252014271208528029922226472065536248643635601689606699904541383038003516047858417569939326172625925984786877103277904648844462779207927634602241948263638116373031147126496742433989563907941585575647536182345492080944286901482362903658153669893423526626821907526702169658224724007913384670559751424560462122130109823836268486477561780076005366880139537867804190387672195053850044927986731552333188063505532647578084360578801480926088584783795856727816379753624219620310717894213388666229308144298151198638933055792556709599276629516911954027291270402089806374717732592762995501468842532707662536024261626100226817962393342647402937137557906442220608088352015793209096911094235981094380633878439928201961874236185056145544134008307617381658027270913698226453950784004678235497681899565411814600369155850700897337338017382895625364038563010811677204046742470941616950225330191580446639201383282741614795862691889504020644827261183569140290582539868386665576814328901136907298253659414679919604757827980748264044003269246951306704246472198757256456292552926987595944516642606816552735086477320614514921119786638588809109951869589468379318266554301748071163066319215585729627216024126021761613882988462005554199123910424075682893058253356419718926960639744187217938413283113470902760763928469786735866259740064353051223435533814041967708902737891924714660819469720698512424511800071931022214945715098228477028204908742066699348487594079831537286148898382478838515624344944335642976078177662095235450544732272147401677586214337025801903958560481854337374139209892967802648720918687138614239408235155659762951157966111318867995854649437545783710732117239656026884561976852709332597467315451319410335386292562724913266920856585089818025837463603763655895650357475381483635683547677799096716037758476144693645284102914677770055564992354602400930489994162954810058068547065814789424122404201269107184849233930609307671599236123642367778686054623326763443015968987264202624016810484047692016171742539732082105054438866659809301779825000204189533475607494320552354509359494073941256373643633500048979420867265327018190995579150462919263601385494220607504400052858623434341114828434921339718056846414049865351229597423179543499032238069894888532507167318951894492834987106928578771787415765308695259176785391696052139928151179454154131837460685645538619791921737320240427312623252374298918498297053177467656802068379248369295102845337609868211025566659374114340831132827972892736820601100992865780312606784541349270495349765082596088896872374441409365213311671831231148620203671978793353129997853063643874822876446178275910934957408647068796679047147680354171183337907385356693614920994980954666800901563815364518898033649746699405197797258286792347416800916099700350752274044273331543959859323986460430771967927682453500095884298525037370303689494375704226174844732013158535675626007868105430834465705172052148924571377508522792099912298369217493634295256641864258341706372217399768700687532145685833823462677628942174572257518351301607303411050962910918612081788535863562804672894769604481602795257666975369697609124330687710967971537695398368208114197327935517331741228941865917007720673009925399322233646140243429287269499518279967967676368558511563502647690854127566268238782724601406538201294287307875200486386228890244734987417549306029188189736231804219465095475990704313064252682674398656034625643293273016533689488720084846688281700981043415219261636544825471506430836246888128501139511698885891635795113824975921969097490970389999448719635377692815613471443402831996570186896880736786816869208166477737025162183802286539422053075006307451325674664039212314231207644482636100023993875593127111506215129412082213409539827700237411010564866416688549943423596140993102038963515201276087315093793737667277186735401672014721285901523334294722489618001390501141950887050173960258460664509252136670138706180905832549314095713309377402266761689740398133631387951812297172890935973077796076592753902790051466533265864650412182093806227293994169140288881471143709420868098530156899866679133839258167813865279429540954638769040411897406335033202221198395425161980341509641329637619305732767321684582633039386864309045916989103588989786127829055079338640958655992667402116838581096557527479983909711901393288763566476971887033170601347072247968279414453479226764679301505126720406223735825200773533452442865117993883473502249177424940505228769551443678044114839447780665555291624738503408283136693781969689441473269171319702281657123058560263365397697763377134879758352099961101532652755605035388021432259153422626804063539477763611762157059689005205431727638628822918117209670619265020376305294515704990008750777321964298489288836903065695835399680879239430686477848334792500624508598036063559769351238617870267508361654771460182393598161667049255894993416172197196714432104275123952575255872296954744002444391828009240263379287508593133494734389175993311344412354166834115625176462173622239870233812088117332366744070007133850965532258541153370182851380028209041282859698276025634002086181680953249820338195975052881421671940557741074098502152543644726391043108869027278175877314198065022062215279054297434322477598942443703587203111456025827679512307675160900497307313587423150163143142938565200016387374411694552276007536799129712618035546444122628025756978084799915171649525474492812772791418246331885983898219341761915765442852887373188692049168177339099274201043683420450453571815357066396761606204889691907553946037086043201967052815221917952476273742472593391955723876930665317990510161661572391347421855836301756948827958293968046525349359922106754029288709735564192196773087967076008660378484319695689783973482346694243449358821608906865639582364741354330185201223823849393551154405323721094491454534183477152875719467467466540979818444679848284340888114454126414191601332130643101185833287538032031288438173051797039750177579157101040871764590938465061515277835544565318831012696102174561141683969578824958605513622278189332942837094046846798316511231392878486589183919269925420232615475234141554746160027278235459107547611752895424458421600649938884847324666954082326710609434698538728999180867242074420478131494590088857213107063212749462386296415796217314822453898767691237149465016991392178650165298168401655404213157513373167043834778984954521685560460152696862113212584642384034132539459041387349911377598642463632199159849984951560720320940464974867932063944692754635847465998117188582641757589338866077517934846252062217133794072672056613565810303401586642368321693553220956798470308518356860845975364731400483789713233937737421590421457080431909367253384871461245245826073269378149401599504238498673550715044110762543861741632042314749907782498803499046938550369959763090830532421862604031657556922514420021575102432492873254370130203530861119015926116288625771358013237569042894232150437371923602223170223316297396775925867369677549069138627647669206613237691473832325170204526769168964349557883083515204282429856119581178737680194682983788155855470118935508226443525155340640440979312088046676071787987971280238282799250320301343746997032763932052952880940302565618981212046706866037472661883877523617278163389452439849513672342072302895855476959425411372899466512792594894071805481097532380122381540290051850978782749833101801666691372842464306838062152747114821366519429790817123766898756704378830495121211918999111890474358537009226989107882291308810666048025422333359977556943508011667339852436310959380808302997721558578185528072111800923394717597467984831482439550596168855178867046405704323790488312503874502392915660694005161072341507623212569729065562400205255382858122314523482203801608954612892645705300227361248799030314131202494117604760926964203168582059125895745653794548795640928890888015546432945836660877826802282893332402221795410654978774077438673045556975966178088903955103087440622185491348724499042688314534040911933405965958862570068745183704823909830734998844811073858951952675846537265169634422209167090427104492235923948311884100225177053084669008039772473200379708350057084832346888833819406246508793502732153385185420114302553696294211999106156278978364436217013146902335858706345461435637321471380472519763287910553820208801998287716610825036692768429450449260812144630187342490448529394007510765590276165102601498212169542439265633736587850343047427836188139476511864531865055519304175512827134255379469437272830557264447621338178868049966649052626219641146275354833832197090899903968877729692616907606942310652353863495148390034597461777117210577885162994592636765738138918579548899076868240754662317092248379972188006921777680240448130186517661031932481166754535293157710820957217136759547325459266648832113340554474705638402593529223182225889824704055308163415516246256472225169278191682398152526289397975288222894949386743129408710122601718034039047702835249173835002877566137344534460226791442888741277223829656625014791468083832528834177634051059036029639000723987276239085439591001246426784993542581111069797729634839621776908446786553694830616733993360513792502177393131327336162717790190107387164234126386650652146222950794520858163485266795966056022289669838160635913639460657121524847655120049987541143759680492700659296255480976490551902737422761215125852954577396272203018564295353644794609342026067336228924760876196437148407927988184281150262680321167579512776317357666460654492326166248393778465794925056513953694529571625801055656081810909807888463658920896490704424904042568416558436482738806471695558559555897552441918546568292758301334303413084869899909971621798094952265595007617508950270355715490331857752669903986769028949771926220348115720494703904950866573289507398001929283943111643481365589547523323406953211260421747583298570545835350780245121905416548939348621456803844397538316278624261948354841779246463627999101018362166649482594823321645888091135395200248071769875999354181528407406444378066782587462663153770824129410928619072168392515521251089740493027048845602327654277974609418906536591103975989714648469036111626736864560899738085550338170517501733470582021587475739408626345036135113987061280646080825634105852222354336811578456886808388571522165436370003431151802524403229059002523683818114456824514959373783162596863774816721265420258550770406772480214369155398287100786832456241831125833219149907793848029085771261283297207684201627075031635314321220375721109596953826248033150938441573091525080941564004738269801755898864981896312472384879354661056685112311007030006649037734959383502079434570581896026191087383013229934276957694743135545736984378493087223937043137481168038345064950480337634560796382659187136142008103877487216002274766763087845706250856876759921690637255982384904825750194780953769853228904433669460126084831070592474342913132300405858581086583995584648475330920925004645145119143449843200780593440072627371075042590020314050052340735648703318047468313072463456372154930732829827326679453843495379749124568800590898551384113418254827680019543191921241486505657336334771935965892492703699666813632258982440187204540109795014723483182973966065714720663249889412662670339367379764611671709515604082930128107276985602876903065239177084941671834784263492761200146398904795095779378438742769096692683010117530008959525785752696736722737296400774576038173936253314697847165580690624478676432167017427591158459504685608012601358850930294409252915602274616250735178421768843842943217816238829877166898513535314010581303219508781929211701872796305754476873118465537084870595889165153748469208384310526577848169529381394416851527653167055175231296903419191177137730026530642167519721290318539772248412305487811872354462572893848217892970192789878364197411089259014305725683519704085082924741425358814377092641923243562304194099249480233982319055513818791197802596885722311669477692921519722600565469347651318890046630222396932180274585525128164576053107507703415280889529604811731209731855893061632465390999803285476401541985211136018607473962740533006252727068384177078247936661572659208611622573177066332751854615636707248098496821250345735136948842156247450901486658047590648450553279819792261360876046331774536401556688634512803494891184402844166242934394650674794302806505513740924541350733118691902778488642384861656602613604004577367276204435070911500701887305582997659957426925026923394582575432218829378924383078169337394413931903268044907819678201854419761575290470464433874790384999472212828871123355958728329178819228991341304176718109182895554161952194715143423323149681846218859859041519802247742787736384187264409030824051214329287356581128946946889402733098398883390765345240741714201156557449124332201374034026513977409385585706847307419967447015809121937006031365922576529974955928455003971724028313750718269920052059614494553864954771175354658188840723349007814985365167806280482509562261565856577385992274562895817254437728442559137326937269389809974358989848476266545367373539381121470043989868222555835701931852036324055694086567890947829480410271281179272121690245173448563752237840011375925859159145902119649587657956029358141327247663955278583234451251141460044916481950895418430445643939043638391241227382214471541201679768454746163159130801519206270829471327576514075045013986658651834091237074631595199951458614222734152340074494370857226281504175764305710997073633932079135042233103283864061161325211683988680170669937934320870073376789300564352034945509584360200124900769826534203516180436209476577030383810476062610858198629122173466832235317150245298808050715172467928163410737836743604573454509877589227020338488101334462887315164252097251827132983139390622238349016187920487041682684147269427410907036374472199217983230493390748721588569529689400545136521271660067656060785451987245131115501476158273096903223187284381440233440345061110842190205141147899151363278956426591983314535104767299871266809387057160663485323366304036042863891738464957438391842130787180266845522580874574989187426234807875954117073536898517408754516250730740831467892750156895714377461424487611503708860901651816173791639263684740066457952947190848795787533914037939872017710952933988716409624429111953869223144183452925212626776519768081887743567113264698705594980884048571726173389761472326295928729479702449017129434654274398987262758145608376248910040181592024760626081604254632903832405042545730606593937009914739249075125692228914347608616295689842019498592837538463919949255430506895613192781741452607791699646329517128746285679831132145045858512530522785684450817055289045216175038892009995658799950083511764312782816185302902474784810185691386948661607461310120824294335954419257853527982266778685154696432300532414040970246014013778978072743841897240256601904075149160303565392762382298733145497134909916654852246771113478301195343372533201170137267153309135602794635782200927657555869139338947356966516855816878701898135746009648731177127888083702340569600887233833315872750644610199352860675096993447295643994779184246075856072711060931469821443462585069019039448797256976599501456342435697905426123059057542306708793637272630179984487920934301714506178979252953454213548058503903241011595437965754168310057551629296092385854607516033989959074168739137579689049941955832427753268857593040846619513688122479786677567448611716324825866713619997734851908105716647150282654596739826404474506021152049919964849337117981671139917568702381769276118146493050270881671714871780175935309755059411616573795840839764117310989429621725854615724678973988361179165407822560384799229883241748923863801233405560630059204194496990432490852310212058933328698725182764518548122822400994045238877878407226344958004071138600070473255125662832010934596672477598521488528103814246811263205390339917482613225257579393087665640843313660392740027493494582177449929144723606729056365707169949976017411824871392138744781950729649790660335777252924634247213218429390168402513133266219527010376256875636934846035249280853144646125214720446451732539642647219990440567067477912612802843724297812207597815435424155475789636562268792796731600472356485314625784399408807784639628728336685316359130338522267527759932529653910248356673223611716515425260049525178159773593686925459804028798187484317653914443267519365334332060365323438948444650600585278455797414986132646713299376161925396013452808105316623991826863040943459096676892004072498001398695102558267700411741013001061401309764430031832671298782128387028889850392866951257225734143375922984995891765640531488215672050881254264120133367831480344988597405215013773390198933849381641534864380029863830182858227529793169169635675634952703577831893396933732474380213744564874030566248248448005159746930701867737487075197128757013711585155807849356092318429769815737159445676826090214956899003296477699327231022056277342758457120022201602220240724826338504110086520273653340908461701675178113631470851970671688713331986089421395837195944515684686434087238658032528244172292779543472869293951238804811110577567655793457019102357368301718174666360205973578735927709875894186134465482965230420279101211890823596217765232108911270226643750796679997078762183666988800102331143919643624860820173386727964477860204940825123057865193120303738275611468072935757104094930073357671150552384466070844426904399165420625779789578925640934732679907990940950732517979739477450125043602527567662092594271954914088827448527811343777512413005811933907208660633045733980251479524273421915321101153944103343444132030949830571487699787515155920835455340828660247220818132504214960155863772721563606968374600576353298410453884110476106590411654497617061992952796225060106669126536450133259064675675288638008730407054788751320973782480588920200304415315682525142936086985981099057106645583793957618150080336579914412895887824245225549048995599066656488354077182153481233338053271402607439452242272349403902980651842331779462266618664801837698365300849333780421055211919351141487114556080457055074913535376119273070899927400741103276081132470620342857228002873736053890584137360825960080841324946052346364179417488407709154825447456491574815694287297479867071605800439703627144808735144989722751186494756689822094915771325081333616474654302741541742798701219536833186296412845226933573765783795757422775660661851534361296799979877699934848402097836099138835340347944989065184614673213125973746190525598683335058993077945075038961783394469756405084056968375672978350061017663517495581077122297830285438137951832649126699590400100268528943490074700513551497571614052664825384056340523555473047121014625241966736236601975305830697664318517174064632099446386678042461222456632690104439981908237746361980777643424724410050733195471840870590860164080343850621481051467913406129838425809513314386456125045352209960806124791522362135266475300591204021708573543710012178407082378967666464234811973533628810437562385364020397622086604277147890843633561079415367180882015240279245910098245726517614619356256392976205416948396776334972430547820766880036958989626181967079395036353370545563757850391143943153318417323826477406754420636013246812252137099697029648448591827832663474370512112717502251527473635378938109436746979483147898873589924637503591229915532935953021772837211540270927370300989184155588162518623015611665945819754888483823815902236198796353643401632804756283060595084064048785713467738838110634664457336025093392077838683425752430737048716819449022620839208394084519827595803624626268175811469017448486634962481937313265879823661470385238144915505008187828961993677437566697463596961912036704246396490611074304613455713631804048898440573138690820250448227846725901839067428925810468509120853031391845140186508984165446456673887290619560793072709494044967887444968266397312813374048366177017041100021984179897980431289430798401381549879938364038832843736993307088817339280664960284781151841928210558523223449824906513682955640603457081769345770040434579323279560717032394147165438421391829722451030166521191006680388494999974900868790322422012070629770181559306283680311204722636072405560714719287930431671481557650253232057782136165956708882993690712566578419882292924751034299450283369649523197433654597201751452340326911838361875313009062393065867478412647763270349599252210532478051199060360634292447679766225249125643699990505051324688608054982830502982332920593011925222227219426263620264803365372916303586538234615832101513638567829171490856742133274385744638531114392423987833764805896858565887664483335593296489606128777255030523565441662332316386773351683412549902956437564016862046066051175520648055044414552709662235789596680893707263728914422808350937748280385888493532813301756965668374515794896757664307038248243934922384622023935800267515819484880721988928651761035625897239493916408874263322617075627076223199059550154572282379470723452056550503012336146853584324675325713128184735087829262243036209995235170639147095646173910485905276103179838564079305740689543273505282592667765280644141242975588721942148982119979376284935677331550989999302613545693713942732357826631342141910210692151164712160847077302232892226946113019335638270448193889121683948781079068236544654448429507679919971535707419665377119391359423811376812148694077792375212983957323428966697720544880478213335162751684281545696937335273393587090508966137899946039573948193178528893639465572254997066156401966968087497040233793147111411321490572878094990667379753142146779383597603239802314672941654013987062121233634143694709132974193395510635861258015528473253514003826479552087673536136948243521504783256213147688373358211309482311891310056280894478295869434191387993681977124170540134481373104148965572205435000336645006171191680169316481006389786001814010953686320965133671567215603886378132074321584217530314596168293246591416915150760145833595692784520750423748557166760398218967502127751379972701092931851335268161537996709980465446973021459300287510228194648737535219735968012805926152252431760036455379751317102299045845540677384337756211149890779562298715899836370858637452197960541984527114632367725608514831808632859695857744950425431236674477771979365226573444353726791880119826489858222466341554935622813535826004151162693268723958088224028184390381986289261372189099074908888675481179644383986106444496682925179874552219227335802658119964723955140530858761985905316233991515762567985274965615646679509074353787528787894774535009178258803619123916577394534597035875385353354297338053035542840311096230560005704530587717369521062658872270710277455559363770783791976743946290633649903278552624532709133649105688693033588183436500567762181667310957098229818933014390785061767704635039793551997679730604474091094385234578791371291070981011391496410528594052070920492804333265038683907729416409815344201905956013779660760362657828024120479729818072202489901918450952690569234772099597806284593974191692857526440136929780041520943526359039869149965507059212347950796227043191895864623007738053955947768236969020978259901162378519515646590262575413708305036087526852347661566147316418147859670359881443692906208846941392671790637504213284187045384785594140074688261630105719084267103516149458975073770091464368236059304119764051932605640789326778150365687589722012344094516693809483810992967623551984007096033052875501014897770453168869820423923508290045533744091549150957701701447213825738212057563239688713851525333695920769684578588956747767880172615169854474590310292477435109222208860831702897438372669318972234649171285815116328300899594272021065009059663907673978079703858848396810890937826018150301026047674098972890546819458198287027975663891967201471739221209484379357511525724365353025506487301662580622397423592104447888023951179202172277602066644991862211865976707379039369536790402436210532055520940605762773225804892119182566885206843718448973369855473613489451768814267445664323089062736991783184507452237730648059824505131472169558253963761414285009366852149475705472470008145854498710455815097788408960304693933941811746561120457138744348974743843447523729405471742044515657486170565384894686470938378696919147971183123816657228621687511827882763139615254421824858718071576575215451054712836849736371917401572138764801696034632489759814305149831238460068629054487880631622774712685359429585956797829726059141976245045210599303113376932900967100151467164434499334976979583217769327881194971584153781845034389296018790428745822843148944679059834260005678847057374012618726247993447033215946097477714069095019469265529124550092354527342966524798741445947386422825317322515334818804251572030869235253995766135731680432179409869362366337163607523813533226819705882073655789925661654873742126081109323214634512707015793121721110766101342005080011516469060192505919494929259708588339458757738126789410082237210998729096827429098209386046169425566779046809980483308597313892012050560498520641099530479931345419696602668432113674795159487003137872849714165116311397743335159173610371881175893134471662831723284701027590641525578770486577942627144782841340183658378409580803742836505979109999787807625400730348605088365389000696193660453331833059863521226961350673952086223658109707518061013701858654641351973465810619376635572451734951617873244802117050926812100734619122908534166587689737625819196880776148317228458634474654524680045343598831439997195431674478240628881312495453393485289283003587865989819725847116347735387205373934073640705190754849813945918802816243629784592751932375802217423089892887718854306164139414267766534070147111512106124345472225274338005874185840971085179789200442509762823845627778119636593646959738585981107421072548054475400809238845724714367033963298756241479360422321956926070579417531298622627024098492060213215972561562312295843081277255038662988153335293760897247592891346288201137145950541847850533467894788482186028373558722839285430567767472211030521458033590505226942970586416641329966690044749026213127893113432055266216025530851029813530481632057808302583272837510690222401052274533254933860366713560285953735137193833293882907564198402685739965181460933363129535870710297481939068431678079840504914577994679559379062789073505617511788328054164496394674680659726960585919127956451413980220144509411285823892098752382722071959007600342978606332826681026359558701754628834764917684237393187165147157250392237340080807321674405458185279337963564092496749493496355299526516975524940467381270421922012903610765636115003282812656944796506671801927084536170640240578585320313626984669411086671224114945545987732530860971869140312898130461394433260183703616520301737305120443166983954843737166719010056932982277754340033760825952199105648424988149615509377682406601112267646241186490748397161533540227876323218094544104450444815454752826533473061079801438889461903476307202661561952839462764129274307197014951309671490549546777208732898579792329410782629411035949835497366614292486787561136355082985096927316423387656163103715392284812819735001732794220149907637732665953013689665256808166985822427663771135712083210578948832453729605539882339394649831036451040981063156699303094824816032703283127123363631338593486905895732533070361959847050153279677884384919502829580454967113134086072175351960073522707763799525873139094675961898185613986452973786789084676254754774713784958254392817287255418614015365222204459444914831762193123626153790793013938036540852383917738598383188943175617093068931282753412817143246981228499826138124699209649345838013451432153271927017564629716858419427691021048591675243574866714934324324832104999188882858638978635629487415079906018632753308689316401663281365615852616533721159776451795868014359173958832927467824597062844674624970553908936259356494350958041685017231965196186064879420877010304841257644545548191025805127829293484803666557884286429699513431317070169549404346850443135897601864351946386140376967246925139587703507589823789486792326718404548312454528216729626618964473137407053362293114978081341296475751539595250852555584284419774648971295691791089640958475906000101524438352446143637827734783659102026390981612609146826718805172239197528385557464404483257246491510614509431654795224903414800318056627025818433685942996602990755944791812395163754178275470382376545506638637026765863265484128059722947961725373979646040271612352454879087106477063379840272029761195683825086532457359410099222587138193040161877126930482604267926671341007441069367839295930014504104424432284646502007799820566130186907674888675200714316877765794444290397797489183230309454370577287513929744153737693914448902659758296153908721895625059006429944924821965288823430299587694833212962952438241286789621344472768938585916921866606932080772993768325854457681061961427501401605307222884943971683245092423362667498255019276998533150409311505362346879934203759193412646348500207217528985307026604247990205879936572073116445464666059709921272481401391115849183266714910983864792624505139826631713295057741718401944141552659390177957524567776878754185684175579819183665745551400245381566242724397590800522089551295303278178853374884453580693874390543922864991445855467000750488379529043777486856774853323594231253606118534142095517481931930087568926120397855431014961512405729565151298692377119138662164538216879445427764917016501671347893854555698324269471011455813094591077807195548442777409978734464065441811323360610043854917920424639898453124460707829848205368001408049421339622206065101138124255594014720851287266678394047534157290611146452778802721571244432197583197632604120909397372019865508232124782084683825926673342091976132817942551659724333237456420083100423051138576412964293278224373251569472750339558305346450116254898748697140567632386536590521644363336271573523445875236066521521016524133024868351933623030029843017883763841788411669939606863985466066572317812573573829399804049649894729022449501241075052838457987784231517987700480763790146028364198824789414845729746571740913752949109988162905634764292113082570242064126444328983756725162763018368666943499848963466600696086221406436614789995933497432248143243255836303207669761274626121118473288867892457961115469329206603990734975485722143348859811778683490235504128757012653140808096606026568924181648775534367595755576486052670389513176146561272519714231335128369945145072061185102386062007404381875014676696109106183054102653195503114984260408640705767452422361630834907215787047785211865727657457563860121864020479903880361014096731647878107106287756681879909623334948784008567676053752406765229299420690499241683237909603752979573269429526411227950735384109658128910911109020045436465617495590482042824387460501547943927050951463576974312105499395373254203742764829335803951075050122169718484941047486420550980964526042551478652405347659671762424894021346471061886582934860518567604018396042975316012822969843241850030853309150366163121182419682239845544824952108057300689482783855413553319010076402967010241899761950841961252383145014790802243500918268784093060659666489457870426749939903511562090847065068938742372151011783323892600212633779543083069550377786115454541449687393395522309577378355953224491174115001571351763658592519259731752046869357997548645626914563769166483025982451714397651658267466515144836471156535463290412887276004849083538238515594258705790105071179127891734658187572013938589203323935948503956351405682339042656935746812892870422576828027858656812310360178508197784301771660646093476451081386569517168023200064262687180311670148754634767155899007496457042069183112188398960167722380774734970089500371689396149496329555931372848183448102371824058752020456111495669708043062386603894157065914355633633309583753782619396016513463828664621588955001310515819422101915023341934203992130868865302645857711659016395603430279587099421496140647972247266440459479485293247460605772062304189182515575251052561510539950042716020185392519016044693101705737528723190109268475369609231992069754391429411729351076814857813466151823861972319800142717412572847401245931993090235873378935888116211301619860571387387032510990530216155535521841621796847872966775009628515015610631190640911087183519310583447390208764512373247031515497527493596651278405068432632757232285302843117956161794662510964587951721281655177662622307637995355913337579690119191868686509171890793536790177233712704871506259448510961940060400964274781715440737099643895307838816449678691191398995577933831236641939526917121471601402105210239756701936394452878567427032166728961418119860991357189626896738683806928816839550750931469289480089146817523845950667874751146121397559358149127785779148633357788884510635045224245662341283620512041697176379472344345338320280597542145962169945067193802003220884470562354716404673306529933040059470609139557740759105125360168048621814353229063973734069276630668827731236913834530308455020030112624252277387099424627251192387646005494359167122489055448686982071741634703125872614360420627029145684793682703617087885619651558473142561442020212466835577242945021490650677342844105225822419308303202572608895511537216956811223215796949345775989395729035577622831754907545245745685992479184187328100538456823202665457461879375295671609270256817744992804739947089372954455480234218843234766737483369213196708827568220343560845271930013655558576390788946359927427338452336292122379317404447519720725331104991655434216505069802725088995926296578629138014411907669646136600313813374033517244371941290855577757446441218333005622471423927111643684610066025336867949084414527657821828712489182839691595257284915582769622857511414449398709701337228121399441912048870692242249530811071329545707277070793519925745971551229100392758392950186105465377695127001125332016460105430528329977319067656017806012717742776953956164950050923306865319498521293019880473879166111966767741825934690879101573079805335766400979280682957725817890682168108396692062861606243381563572139958898218756521868568290309432753485067444400014192934628001000030925252645755536566251266022785098277308015449126767372250627517997868795287423521717256461974722050584595379103403307385513291294634427116052149489219243937673424250213007341642524790441457103591001266943781017836972137773906448304595650356397850602787573981067235183047140019286415957019979994888691376195710527427376122004159370606756107430860074882601996831519021023257133211603797128628115658321393314878103639755865471002634339403621581958432278660805078520211117834002848919484302051199924514294855109900221976419877640061757953270895510312420725209978783181220939454509026426166844869982674141403104086458247692426366414105999226635271036679371620144120340546166673283259177307859647250177500037385023286248463841530055491160779437291944927111887731487715770193220460215823717606456978945570234620420133705951915833708367504729483329319141531574520489960117619041757727111319126203843372218106972353985655785193348791078417225241066117424236737111844390423199959648351249451013605853209010635717904551221954221508129932591882766855026520074783430181627668326252919504172343416567953364628108976202577544364246951104649240577629645370674667172158124893115093901473086172360741018246110106114707843715138935133412395517923027190236037596255507677819094879347280639194109273636431607914895071798543218164569107840573565093478171036614117835548016093440608126476596555568774138577027114187133686728538776113135830625325850250794654493781475569489491632039973096243205255194438934385332690482950776704647254819601125850671391588824336175051928296763664431476700135829064902881513460640053589443580326291905293413950693706797938301558448009719428624477780704274910469246357027492223217518718519063069790467298041555017164138855681794656668016823239428255534948127198060707923213630223490428156079231361242346279844526505874154179787237811873090843380563602556843269908804819320919213476574901752212127623411227354715859092642237353309265828304653012188479707581787069876268413160392296124109218830996303599459743575853201775947325974663825478485043960571905029814792882120970762460190527714231243541333294736786826724502754186125192299566758809182301784054660790575962264655009980533497529415336141724138274682350547476705747054318598921550907611033869029135933741593252316959279346261559107647502137059479560400524255989493050257928797661663850766388305387442499208502024996387785855863406381528830295648871781753597471301168255025892426147037012036916287930024492546109608465769552580469368780887139034633001128518651870329356495916779393990603136775007328826644372277077041503175435816785192098773205179473942297562877419961326027078168734094528395509559489733939394915658555781120404326716302066343429825197715708551429880559946730930063872081496848052719252815675269457351817078579555017344738182842680337420358866459109341186327380180004208751916922955259627254728922654323505262848360073191090668916304288932197646841834299911218353674634124818708420629581092976505872588001337900134523927485863661494321613833236110950479017285252411575276430896271991136863893868022052205308512719901315718453038837394973122159103548870195999862039086819677233163714190029725094983910531039133075334071409601152296291858239457414598449221413142298474729559382653264375303325000652544898225166637481670854340027474621905191336536103281030706619377425292342190982836354327756191941656488431859913529309611806681992680372150763201973486668366491228373738761548535732777236482944392631976532891758923260345549419621920234011504981428505941800394265396831840575443803582113676106064973963464042815803531414195783876079327148352889450379648297495290547973438851512408544457972086207239622894891115109172449121571404411611436479417002867310831633328461762905377217428230801494610601454092851843208416398553454628109391912329991253178787038963846820744432899466919420317855080686987348034889106357099957712244575468615739740072380613014066597190184258430996583081521992889725361987333035164431720940270758076506102801214973303182407164171594125372811712477229503468689481334656743498929896516365422985475613038161352430831602925560888509698608716484558720728160638925480951087238045648854215679968583585386056949488767998863757084129032873139700535920191177204486185465786547077044627409457420570183608574247780056606185275194824248998883567209693331117677389774283615570074491427969401312681454480976041905325069725195699336115409809191377293339156699891384063872318752393882059730783372670267009356909542582507747738686005667019221853602829662923304533141557275816908382929296771772603112655312790241170558908128723340418025190165301070431513120734646228136076814329699512610675967679864921658032632521138591580455980846463661623378937827644322375092346025146974560176867342622871755233475572044583788659399099944048582781685066801164848344832748339129389420102149597435937243319468992457396209363561193587390221830395590079263899128590453737347197078044841003336756996889717676516640770796125327162906870514857141387496580471507197103543074508489174262993056810236892704643942579835743631947813761951869388027047521333503500664515381788845838878853525254850085143173857035415081656895690537898774806936902237138961652812240891425248029877083815615137088919663748485182432041680186905287103484941837642069240652708028306972411424977504221736394678606063157170548423721310612369166814778318289654704619440547275038174584024039181792225749840858220724335823413046028042192018633473823004197275194932629954389978339609622377053831686318799926576030079865281047621071242738550744782900401640202314382319871430701793411597995949143509013879585638979521226510660747421144585043790838582251039353346562764152080568826628214637078689143434250952189820762052773734679963631004079177984562560709781305811163254281357441881592774723021146138002952500411364627351445848737834235481261107262201707184292944345273104622634333809902618315544107050178243579970984475008257916097820898616587768228599641398085993911601136342837909518165999320411893597246163919759458711817933483075518564854830243111830280985010387899956025517504190090357289498439466381244867528044674488736113788209590910432981212892650407160594195685277943473327542578920773260668011632394964939635568378859299828358523642151421988408874322153054976206359908781146163266233021248200529863919936508270613614615761316345013355931702221886056061808390030984148537181815030837907099365080273064960357655427161985530247951643518445496890968649143575370052119701610421254763941885773847408342272437951995573343208268308689410972859925481519850204970753436232202349657844513885915429641340784874905623179390114013200539101201534798459134291442991720919003807039076283903062977472882744397942939784952502766986560920284370207586233066325603313309518179032015993310894139582043961161072940084220554637804192031912322209996130453988041779180372091187736347224701420255662512814273422553174499804150625388902542938927024098145637576276163438580016636447373967347481761219945299289954736764923214130130840437392130928853456277861826806937543162078762832230346255987463579930575767945511095024314617778394162444597278045935208326766776115739312021896063200259249123421700537607550427640420134022488879727816503013119798216906606787613884827544469883333719697660220195540996468862981168186903622432695124882600775971834728718946051134879743963406659406324771396736635533475836764700618557619717586473784864067014934659121119081917230788061562185431744448775702160955293977810342160079161876162265728680837416294921798094038006243775247750644764338677233858638912528408172155520329216490642825706564147972595740537699030565204928932425945858514612976610591390303580294917928746541298532997134495621489067949330929953928239643388094990085254191554331286933160253247143780586035304899812296424991602427063103822437467060423955399567216360022162081220001675513824502670832826881515157403322905740530628649029066438209091559983896068215344840536425350213830841201638281854434496809362962701744039136085952824062165049512913544015901914771568681186514273288208265096853897892755169632375863223620613692267690660053006121521821736432487407498074243129737071388138960558732865500920652311276941993624450557578143102362504378580090928258999049083970983301491569534192245488908122179650162836697888135696513122498554228540527334906749116366217049704619245127225426243251135199340902896632555224500317355949606635928170445417065335915847903598279246542430039671572428332016658165269167219839005207537893499233340468324033866893750525864573827999987518014881606336505026429041852699904619546085915138518756239583897261895912634443024013020449356801076415616262829661376986096858275136935111790569208476648791238767318451650508549620560132484713614166961387732474859400420015800444427929946967687287667456546626109495765688530603754645527802409379378220742281709801113237872268178051523434155909303621482153340964272505212058350550683672086836724271807963661754485643643909458853566906532455097211291675501047242107330620746208505634920055680316890867597689403144499560852490764550976478748784509400864020340417253810588544972389584041305567185978434120132418498771044832017543237988709610350322675403621482384479939914953263649274060277711681266837167500704206501549381530578413758000412960968996198511193452856076453829187952830465577113097058031359429428032324779288330585442694166522454976917155183906127596781674793797145904291149251804988550418761494978207457716310424291075634703516863217429242420778539736982050027447966040633904909059762973217832924550451112340842835558764970887258052340124036910349931246295563834614600931953828100146234921555818713150549778630616581221993663271824479765662759956024775881944810346050179207375710034339930282578224384763548222555552602979806844254655171508505082389914942466111745791822218322957973748062919766721836665862472007821223492751879543927057779474592627205065774601948822259710959182957622039565675493378872443856257334263803374674595825470718222166781395519083347008968203742640254353776031069430098834157191485927252015311285143054560844033685609243263443860211963379833897560082917373085631194199704069356242590803520187047198545191085624821428347295805381907577244674263606801488662169601137725025599749362522281900839628879315713804603005000205943379831925309674864585843021376170898806533699590687617867281783087037704155759143611092306950314005568559828829175335294991673895907150778412173064172719356571234470385560232791937912512148038796022125348075976276475293162884551511349093592235509861446583951574824011811153811373933868713170729722936259456671548021462497931562510176647008941196622986333434256634575930240201636599390690186490834383218818341972949905872625214202783374664592093287377307467093587040103373150667849608022359157588897007064018161831650606395639636815385509665663701510255014231495584081884397192312770830034869893855580199019765032821069220788641478813614570020439495919921602472097693713903865630743171467366693025227560266341808645085433121635620928237824592414610872898974518799953081028037154954847568471224065879324864662789841084924796821276529475278820649270571106935648987307054909277641133109651561074093409927386765791707599799894872405231105192058650971465154405289946975786182605919694303779064340090374384635599783990672986229987712552685241581424166367068086669678695900529436357936016067284684322649891208746586415213647659953039753979118646536109334662360496863395288386109060864265151238197041312863502644962306566805989301718796623765493335561939858338508397568179054283060369317051367843931791943122294257434816481384390115818895180293043463194176549474202126243573148402347529340710064095811874015457480198990164439181421652865303448203901967182215061360429628096710593043959265647195655532600235068707511782067044114084962771670022011616430056409342728662321343378257990555377594551374252508377913195304293694766576595274685025611766319522038007631492864695441101759839684892828412452432245520579966043992664919764914832282734275123566193851669499657044600146990981821238870602050763885458002319825159190103159286415440863349567683426801292954767877264417242995573468479672666697625595695236477126932110582730668502367626167531723867649813615777531800012957865636783463147957529499348874036730860121687023470579071270180764403212498260989284137080354435989431771249267760610686806003805680394122498914100289710675254218695935191844387934192724848915367553546795961923756161177870453203191394352941745691071352725114581597044637792363949096833246971951575742445318521145550644845512459374064730724339009433046187345523978226931268821619023257729470835801669162227302982837799408338177294469809408073673341996082703000885754868368133038570731340332245349458041179354882534978346631999866586210714312627040066278593474389978537718425248535214148583076425680982137948845029648152426754590834727664267975822245214129799786364658709457485125192561908244178855556248516362219792445078657679276636065867558551177332366541796679933880608665436554058151121177820136805140157304939111467459159313127206683853413713901420992233993504477791028477147695886146312541835217778112294746012580196330505683697023518246124813387042445111170280334668130043388143853348576908141311077931560946892173603271395397346452490657682263753914137955726889146870318696900767901716183646685377187080684096928804044692134598930477520451078546498642804494800305157248221104405459951444920436376198607676544622224571790925309379164572987253528235103340910970693620902720779349411017875673053475544464736260010670678658335176926420508427528478351026977151145206186536702199933544334562729668655988427573531665324500311063047410978197786853954016975266590501878737167431616773427635882151595014550967038264720511857512942372213997931321274662638539669296639139898995170522698581894340544214942085141273399230434324167727672651499819967186387618745595270700792666088563490530209955924040620513178357746629308314256301030289635060271641148200119810142872939006332639334496075146854007631642162507838843132080348011274190230206957554937536231022659330071512753243023734466312152479278972880110836427668544306478475966657261181142777096922755272757999803097905349437921284684875354625994687786345519042571739533180270195593520830969688371133064335804335327533270275032223554189444241997840825034570071203106557965332958697437415577918631765016993357165719361934528058428847039455291144274089398425271791777785364166665440803413117234480339514654201737070431115490725323450205083492620343142729888941318523768622914959343510178605806827669502812186792413383104916533385783536032834970743979386290700501451742454348297663032730921845832934313469128440626382261416957742494277107024238624755760813851004945423596702660590278539246246928858418575043616604971684239870112329905732818277803544937758993427261433186464569251369121814296335376350283267678410864846895000849860498159775288528034842231056186915569046162306338385160569055282699331308677673799755119163277460737230922392209767784544269234637466703350279551789859031124388444878715580297504228684074656322740121180815397771412117539392100326195555518257134192488975435323596776254659247430968217086189706138980908952490347321178217436119042058239960972957638393122252286230911942845072586742364395646096428282233174308815666534674077426993630913001489213153619400343432608135321534643585658091700284698077719328611960763496286074344791753699483170548470305886690668671215918766577216380455336376707753917761989994541466218204890708285983695680924821039810285734838173926632039023659369004626076223162052874716194491645893387723507807276026531537391286883958897979128765895746204976495719075491411309437800501443260207538354378559634071914877412500090320419906910123172566372653659417747199037388227701015231503318187386198751607590794391230633585327905252064988665650004830876547276832694979761408726991510864698549081007720713085954350804844039162119435013048737179438276251071879485657166927989153076708568183890869504636881545273641802677087813070033905049143412934543471510004695794263150458642660850919923623178060168892663604302987517273070600982072053070572385449460508872133010190088078009542317709418591107928152467900412359001875243881578103087625968011408393293345147167844074449079778757273842316368014545828043561946281227407691280269569087896472517043636228057812054771393066021814562486104582446519138752608038093950542049766212879454916726098659863026136178970176089003929047647729796053232442722521446452081488944208119727437557827239822659194791726973306838976084542069341944270621944622041732179379776868859521668493681953032632192210723354270883043691914005826372992286446169721950023747922720473702525039705146656564967547039439616729455058165184699537800234391931051777197341436897614157041333237002759828701247224325504123092350199708505858958472841675365789929162984112985597381193971454519965335298780509041977178357287502197062767186568887934844696272493479619682157017215549399351773685424330149418735820529252246372582557957784497726265835138711089174603548065544610179806343574625720440269769555926859401478138192471500987696907299696759704045055542312553717762533474434722204961756710777520610001852144054142693683996621258969529843913223379571194605727751289883680079707355366590579025681970376923026316320147663154791218089758141185608377856074205705326386470499659807586697146324391219503364628948345852460022317366062645813608317892810057424454966316213707105221491341717540614282324057749533280684740659478180751393958954557392619502388382346766299273674808659980179355647047923162830195798209877592444003862656087330756748180915904160755978119837225153320293680533962129514190827655402735030495209783710729117895815413112173281758644685204851181320459077408648630319321394143002892914617837614481421175291588072310927435619382280665908589652850296510520974530616484961468884568476116335933970996262571060667273499366799190233914923629207859543652358587162899158530694432934170088787990525740521323442778751730155766302036699994257554275345263902701043988655396512097855482815593855784723952106039273030177538175811039541287482425585851656800114866950334173261808025164439662869803731494034505760962030774056456755128315395184325723711508487704459870404422917296351613432327484625935307837143524390432534301315019404954075269803195986075130015024864800199113059484771589755434372492062246067407678410825943978017619038836963847093385863232043772261336048040911652183912387828655689461015929239851806613853249202853782165405633496047716615010115138941476249415363333539262773375241924790734273337028346658259880585566092210097713369409439951076738247619850269264893852602224330889934987153190600418883328972489621443637529678134876891573856303140697966701644133785842706618264516011780327980295665339263674119535880242685199780857057304742264652650558211229719420000833951883115056352214072324443940016226589474178378437973396339287744506587021322149053497855461737869051623654622126575278112600826674521400273875175135943283133443982358183782463064060215319609695847786488645416042734181238282105503418171835629342785508391835779480654845671491534237249244465520395665089760725618520515855647455819914646456828492479357720257699985880043706527221788226111233999643742887642930667417663442391447790032932499402118831301329226613440890589952680087585028591342350558597311161217962574815552767988947231751659450267242077219305440292782652603599104182860109078167272491942013725525413144566257028743945805468248488217798391505667990763942210641417839639183406293112019437077879887315867470016442666181218427930404634234059453318455133745874555430815019938481811786565350925890909917720098614778041351462305008574128830141294891842587706706936030000458391662363295715569408789944862734818159518197500081458999511178900323097804742716501880298084738203592507702008025027927125367344411977449437405666296453109409998081421531243366013087150966803720320960850468395292883595143899777353520784194505005690283179053748125078998895062069863192174068404198693764145739100429574524621228026544525237754223114280662527117244873971431291819167080130624275454266996889271999338261729091853267047391714066718933418918475926917908272147225046152198785490026181865264868692188903800154164308903886233877316991308961145373820257103762107280854562183311685228288503856449247280291663783547352682365432993315065100705514354000479373820604808725804355089359605330773103369668492282331670070542660769581013582704794887423406800332121245583342244317938037381910163388575041716704462961735394214951699663219240562421786912450675869049009859912886395293863462020331173996241601223534292972273509656765558226547847679735388248079665523504010711903270370678548215443926285257288440487076975961300288289263285776838577590971875721069730420985732572007418935802400442106197177671954738344085228253179572068331748284737375154125769152628342881153700469782675053174492286880080969542203856461066479720713077879863251340452393023451365427578168356658822733636736939883301670550200992672108349537028421752173670854923073388692122384909146694540283833680179463851967141167128344415441844296940908870045320063909434508196400899700504657028751777516396121450812728876174135798233399797037046922204548068034698825582879276256167252451265587542654312781608742501444302814251502199529041018611935576039421317799716234778835031203777580560363602491244341570041957517122448938140362923582062679179338697947479603192552031483966907297822300865138548120676340764447584504248409458598870782443994617485191220379625160236283819575885544901052638558555210389981545858356736146750444911105890234516142390433321017930648284561066818751465355098318427028568154421533261285050624374322267526591978556977466623139581279629552127464297396016918476779427818010696226787695114934208720068253737519524587694744321145677374875455372835134370622582592372337394931009008871306322391802502539034571572458038376838428837970632816757229065472013645846290099188032226794042171926432186095861464916043690598326521423883925798482466762235072337739648538700965022909506806887388084376347642024738699350000798021731483843667998471559884089269781751357204014318102075182063974696084123593961920784237511488573195427602846906342646505612150769304678449404333646141895155960093397061576088690975080293737463918050807896072024603484324355090103516867430629026223321337194790216185315498745584674603901265980146321803076020931355668077020977989447761980047411729936778925572072449136073434184377100738851152996922650735662662747834152800131777760945537920696701668805050500141067298505829502344388697427528862133245242457524470711327706829999820930325973352115764448211854821511685475167926857680715977737400452389636430176639525338576118541292290954924252050498065465707235152407639387612864359833739051671325724892707573636247338897923082245213807591026219443383079741853944851612571092369762021252586582738316184864092260760451246965823409856991127345309323531518617180130188888843148224922009899137923317395878058117880742486088052450996781502994496116316840611107392326960522302554228961019403315696466311442579240025558831829539412858803353123439498099592678149111153993224765665551543572414875709914202818610847718996394227098478109143950479374139937187752050708441220689113128305526757335118619690095112222530315216177892780469421979464680087946621561610144072759241073952817767507446875469899701092794759793040034098665881556001104506576023768336230580270856340061454568646198174295034963372983233000735087070035412672767996949076190527857133747599555232931942708822015073799068309659603710957282574364586201770316858847325866161469158548698701640043813630177274292205830975230083540504045259456414940505628211260051619525095560033006198634048360616685567469726850690267071376619862935943281823893636051984024448270898470420844422730875120487401597145333696362774451234783582178719727901138813556275203623000803405714802117729301322122516489101124629247020760456586479923630685535412233204400836185186012371982946562870292442984523533792800446013972446433171232290164230303142538344827185377789295388884740115824105166199925021673452274320558611236789953484458737213930990608720997718619066540178974474206761934247479291272486678746733245140981273740940888929794332203486853672437581938180943663735941571787841752496985605553021835287863049973244447140311571205763684207542991707359989152807024873055327631868512038187292386475617693590048155263887047542269854436532464033885569439937108230034929326623351224946316154535897404183797956963610634764370754687903329544271732242108244113815189310231163687491830792505367407608288461148701157827251042500375853503174392393526678077066971109611272362106366025566869624569016832727004410042649196578787049909259370999495177437145042976483638012179091580021067286476947916586958219567824026514391584102214883392203396821268595046510516783468880950084969849555479383929846352475830663293646707328996437000605603479341225313102409641001897630309411606365446153775027244525150118086532298974317935286931193924787312869631112990068461256820696323646946113184640584007449189346230761000974681119631827087674804914346291553803832217635567634025083860079794662091728609158127108591256514539103979962744310255730198941370445145696007221516615946414264273422638124043366618600338945660841678341091035803034160359501766808515734238888421348131680818534456850456317348690156093084163641643651364397000522683254177545624067405378220071247545766827873674490721555108421056144795326600867916732610281132638422943353049080104765783200841240656275090489277574135333663716065643907123873421627835199457779728666055780118131192969556659443228900075933572292328414126699360982405970399444456017991327671875615800752745229924395317402704922151486683424991073221426842458637836403699867090454690519283309749285535382145330086322486025671518632906240681781061563070202227240866139089709653303089338574866320896751097945495170025952747897860665092175364109688528656014193109350626103844108435384702365920026592819515301314036213428515975410788246641856630150314463582485417364869724074243425989585877286045217530662278299997785119566548843379025215503293644888486054636421031541927797088573385767968881652946918509234311968926566314306824808390288510951860419633650163492509392353129683585370197659949324480601783264319815771351381337221036300795224844573431155570847051308500225486032334600413401321754527219287240807294983099010995748362764614072615889161799635022488976657318546368839288878466373785005117014741925693363306562288524607561790794008292371638650972592374595451162730871536943350403480831958809508316283791081741134579665256626707864158499403496041539621556176073276369860102218709993169196606641316091348210529012028963550074633007011334047489228271558897699722130430727765127163708935304547421604812977817998450472214724197928192331115206470969562711801664745523087993131137048792015978339898591781545384627257437416034398379238275580332481031201677766421703263211986719550289523114808125042176332208169994532788525078266451899010383778520447603870759793905495296585074736340100107064849208062830792093970968184018252924960462184180312395153021437518485472202631030425063786951261381306017601082865925393271496704317398480833785974048355085479481888693010068367303945538389929642327781312739569404905757089955071980999605809934883378330075005798470115383797179160550989796388361747017432462930330683990959118099124856158878965488963754857569940474156367738472948461379390281740083771068417680757034557248904745938711447472274593080667855840041062457572134259466789461625839626579724254751856294129184131715843427620166404578670243913944275760188952489787818527105040758869626257645607491629950522581424151567557243461921804256420340330907331700155882167079535078470680003955624096925274300628700317844700512429236548832919010642497955089856460200408893510450384406564430431790968193420894240315360067467295483197505696396164870430381514849080148645293369937476929115107446423139152286745036973103592856081055978781314362730204935552616227247378879026722051175318027560439009252139406908966544714025618938652811734645811147458980668067669206606005447135288996672308585615011083718454551570080077156315706906514993985637403732030955918229739320677961201383361374810367163474457515720094986644628205240806138973165729198829888503540863942591552346173583453978013684209840637521404916174766321520089225889194229224698119835142075990701797353412017468267895440069487341554749039980276284517492054926318441281096571949004505477976846324730658428362033391385170300275696527605713582684132909757663648797059016632080686894491977945339736881068818918244953382662745396918260052680884703653634512529798479297349243593640869505061270463633689063842640268320678447749800505026774510384190684341926318085036336990631724752794315629520722942870491303295616442908449673203097633203533578340881603182427990650593165442403267982703853005282960534151675649084997996985397660053969022611202598637759250012578590364685090533917017063420252910418896302795614623896964958596200568713710102987524974966928465095019533447849051108660920205009881159182862228154790217503214867447349022273596421064109839311255457614251042680957808526085799060046897803307231833015334884972130854342237087852297562285489902222516624721740388509156787994419234153173364459401909841738684476264137503434151862252708261601686469077569102419762404637216018173613392564383164347426110810322747412309503905342447590553031461946851037134867461775737573269251787193178009297351526292884184784247967870835553659961926977609549663853273653023978814276955858078187889598144955828589654228102802748210978151770477836582525099584747079810094021914610710189618572566174806750541392462749140682783537580391913161613693226750641458162350264078907300589371338326887563987686167884097357136191025184094365397754707030359608710922136886651781738788772043525333816328752671088933001356264273178165695196261784144050154943449872378430037941996308206683512060839837897017259414385783176362216122219070023959795083928407216171087037461713484386307848949581630950580217231863687713508320980751898867232957563550592253674771824603299873576151354642276844193514746716677856224665046448469990777053247744390285865874697962924105355700738148518903261324112015776451991507082111468421417448273649984627335239633778679081320914840456652501259796111855305207091018433351773095388569968196478372885853973430489986892710225946192546454252839331156743518591455604999047978669139409486079837556422330471360496953483833362710488706085580631791114144682196686518424400282429055687284147075336797357560805358536495389498607168908953531010391310621713783761854043540091686972185890167724266312334320168891436957231976426042821658800978281568262243472475610574844611880753596088107450754165539829858895243767322659516083017644063698833298175779436176704336119575225036451922653772879080934475208539221347921703448784754235182854025301066065119920561609345914907222272480761863034772942023741522371332337878888059261245552358734271652928991184630340344916019935694359715289318094259583350905690567954451059367118487802775991249664516576075588668136748171975637683723167200533981371139759411796982924087791828606419966859022498295439804884258471578414691359288564024641518458893824463128366334188924529234554684536019493636257420427563546532836645151262521817601865213259142572260855610491355435601352909205033520486946751705927605865168887483266677131421221429403501803136734786635240966142043649282042854014100053836800275761004197359377482945973542387601572993914225217011363115525826708548898868815817153191635648245007837042502036447072352740464808429016980219825543570642429365854697848087906111740857269836268193557611305896109948553391246826984251724096402393999291505559162683949980978593008013363747863068133111258767576451891672717404883759588228038826246774497830477349657116973890665437371103780785860196161868079278182513607882284101173244106888529667501289415740917001739671534050162789014766139050677161598398077039058530276119029295785630279423691115743017188932852799920565441476279263265724376401253132289909358947667337643192487891595318738069586028168625893283477053622400089753118730352391583566193538991478028227475427329065648193118698839239714793375429253863002954450940930116798903402207528195320825535508447432221583877743740977636799419233799878040838795092519141987197322850092970266039511252190206775356875797239685713577045211749865095012672725980769722118475478239968522554063529231284643311652933953380923207533677142843501106430749072252028147988701928989201722323256853393563871640228805141978552272714480095786069073613416491843354410954209405058428306324354929008109694922499646872252194491307018117301283079047473123847761920536740001206813876372107785612181528428518971981331809753023458566974654608587789469659671643233461297302497838422547239036837926997516742479201342244387809161626077708283369632211369165215657710716779940505137425701825405859477957932823583761856810972410282300366452175767534968960947832916857372585606301443227082219339711073653693316458926944021936918866752089719092213678711797815272868549076183661990820801935517832947714434238307071250041495975848570008579875092911851095046288711192091504115380264722148173679381344938361968951741639945799740327868860599647391719482067252195014785808939779140986275378327104179918723761844238513354320754580323542104353858793892507406252505883628735451006033420112117807300308690564261425946264932514729301662782620778606056249659900989111318562365826425784703833001418696752578569371083671447468738900534010744569725650990757195754484504874543551763037342544721300160775999023970839983283638956352740032651676310843049897509795894040055500572056954509233730152963843872247641832918810949907494073425371910487299701921477813267383254979378110357873930786248217974010488320045140661040165290585718343118282834358559358430371934135289668082078983590649642079768375948256183472787620404214272147966128355512755104455821647782327792387367948534157785537226997543493293733662520432193784369834046014592850150760618901990776631857682278348180120488645412701567918331375149534902882775102832882279364752048987777959947433290959960252841782456354464905131556517233891733965303548584614288828223554290184133521649412688431518780056145705761189094254740604521082954818604316986083680395355450850794348228267373700250675800218986995956427757647984282869481175545904448140654285781308824815930820205237755348017699790535343820289694807606402638349862569019439206015806737898356174528247203518771114392460969899224041569183712610316242354268829083388770430885108021164331511266794278090188058922429488799873931172246014049876286348704679969538743049038857459798735141905108406483747855976618015467437085807910874080586783716503242600040981755063511089833707102737934274563325993605667455947431923698244502711594356613713433377226342156237523435542443288532447400853376223313288634935983214107022847995565204131032707780988998548035410938340205144138923901869486493238307649159717942151799332154093660378134398786259679820037318618074759178265951874255271760712302143261754385086479749591741665332021462151815802040578991957582364224714975034759111875112305815744274231014251388560121557923123570461474906505316953030909190228679451168791415735895761345022512357146050313651904964716819475648397596191906688743884970783119305312400371126787834424367579417435330555909683965586016819415087167411183528865058690643803137489256029072196962858362390760206013599571724330657091805672387847790671787549862371495088674171613137234331189083233422142599879243028409047088136085758711487203579854830964943736229968150297394087850157238671402687119314982923251268211931234456796866439413055916612657964517317840577860079056339910791846432428941556499262973249308951063301426866939441999166634030108701295775264612908426360780559163563477862094877990706003191173067589482321828777138755572624813262212849714648547501417524372488137410126708202096046813829935896245185073826945969725726092427361448197899007170341806130140467694565196400905253048085562749767692385207905765014091006411232801027270632526893281946769982869491162539694601503273879124139195873601356443788280456396481169023112331489968151060987912755379700156736259864239826418928506339285718061194361282374638557063458177144911375983463176822666141054461945265392941868440593458124499984266829003561319040118409470701023280472696277753282120340596032453294120390583713733859025978715091271152879343707683469050507126641336983851821687256993767712641865786022020047295798038585355609293631889902800259466633529054400773501458053598349152127693505740213041180661205319686951435349537706038051483120192328998092509004775472195250114718004858740169663116202453306079749788802441985597692808138389428889512913095352494291404677570988355017406539153348551171613379882692916771026593201761603984685075304465644684959313439023783379487802325093113922934533408391878367687094925294168404435865562893500731200518798315280952080204573349434848546801692311776707214713846257614541350574578763689197915892909351245103120129265378834414341981029272037197082763815580323070859013825611444808945428074517591746841685503900550822816247925870019598917737500116030288639155204393418972872996273650241037274775458032560020534945240018330001774813719081454975782834488220795091091383540014528595653273087909453969737737015086915278928870991204967612762232353746682629257540211721517267209292385470816556091844977441604089374985443066649941678866259783208606617466173924675850052310540727002656130379458623256599263170925566578403005293140196673375599503694573221364945981492428249822689018930569579321368764739449954006008930513628785828718121922254331555242613971680042479532624466591710246682550022073424500327001022767497418466407882517121779454111607159003589357550498794835929525282988331912591533293535642081288451621670311013319360770989321235659488066717284352327767345649944120294608019659238951824740893620362606275760767196766949067472297123812139691075637338849255391444560148935729947342456515009557459647219165501566195152903067809953769343034351254947461336975724183182202302107529341778381501637168570529294081424994011380052564017247635773503752593275919209249145632813717435369450743872138127553353557580654508979827385669722596509677583540876513654316993263500830512714522056101046450691516117042350552557282451376325224010436014022218294900637419709603469086591613874963889946605867153664584185402457291496427169411029667344142682638944138593827634605431459006620685028973618564408701454560041887060800798030783543470858519371850120675271447672114431743082949953131598442467965315442316561052225462716779488563055390353516014574609924466561901646965349519829457870013934680333674541404535582758931186192467013846842066274089128911057332274603919778260406828470219001026195452866906911369204600034932815069108915749750981487272792186921938249946566634889741613562991678689270317120449371241085406507125110927734259477055233069915302030744241806550499426573973891118674728346286012376005023070732948926015149058983804404835461491379689697240961709193903744393780270954635484794369033082581540740941545927486974678754507397671900505504767666871563526659120808366124611797862570580163797412582702507617969892550933724026899229605393810143887344307054257861540030211614813952631539450865966816413199260672768772745999176324260685299515145922934239680993241280114161778875337882932123244655471806847558868408622012277032574043964963488896708851670943103794119694883774542291976295503635452743131199977583729634651924804983289679262676246846813079896928135757604239984855532812528010102335144220225204759775060619665827379234640675629432526600409001593259279376286834255376177638404215209839115818908095461566129372824141294517053181797661900888823401472237042744592831763677084366043534220114064358731134897753873949147647781831695920744523609123646492492155122295741808023908492730640516699400763538036205381135022163866085049070790950019282595141145946964643848507744396802007167666059186408555316356733759130887051447461834042134214398514182718247174192061210699225897212796164239506464546509444582533951773633991201937396363125442651065144888910041727394802017128860694120642243051811340741919240429126483239263163687638796620231561392254188871470217927149337717179074939724280827171846937137362624180660985856206357917168924363307984536861690913630376064766359407288641455969068736450421339756270004597527096804445516731559365119462073744027991266043449325661761064469263660983291290338402737654479388604917793405103159844362725488355614182833400658866451674765194001035666991122428134697463702390056348574940506596576826589206986269699423178891369554107079910078627437510917600942572088998881927484941268673085022880521560905008951852664322902872332876202554834163494087778134437185023745940776426494286543163333424227841511147563660346306814326409137643911540331838991141709255200041449965543843624612148061626558198718736116513562661721865327676914644582435436843306543880118719513144030138153736624292828144958982270154809847593597358509824726283802908199615114709987998659813340024343648885938056936971853519139372631926547137920210410807141049422851262738096167787158515252292632528296475961091702700137806087153978028140032793001027599149968627607989905819852639908304263108942241154209625408563133718165011597369877822263262904011468175978729586820796620726896619361905499247472820623086633629377400379252924194331583713636619949543578043964690394911149340069322820960989629735349454820480612429508226724975099262337500202399269335363941635616054752002540403958334911319322056948452931873075465669887980876753896033977531596746148240477841198878126842947764437283794678460845887234910068749172487862779334973251182629978654274101425511170040938153619943427379285585590012851562990103142981245129103904358610791769310493337382032522944046006248129365560475267996805422286611972863979093700825406006806075100433837941893147917464975089296904746995009690095524443718089124708316391589400477652244224130539800273149192289849578711766574585399433354579252689411523114218216195788088303033155659431804689031392623234782381481800314172421913890935367212956262059480922350081417323028637389523336398315938654519392843651025210858598464126465717038929079188976300206709350008533632322913977846347453345454614481738603584528887905235182365033641005295471560911458515006598096979889471360108225978165330951877352333739344419754797241024338815880939768247508821618671216536772386860542518029929187667498637333273378094697379607214329561738920668650853123865236580433247326531511993258409517564501875077687442403197222277538115044306033570876214558388608984659308389833131127140997771334830009381266360776299607942279239369133153138485797448628851272162933009414674620916487415142703833432963359685434722060261519381838871274544007997794440526928816127739857697784076152097730730625775338922710869592526859946069132874193287251933553072020059346136313832475313956054752626864634480374751294800042681640448874475347957921642249832922301765285979309032416362231630549955938598685561400737752493813076379380559573840303881200662998380335352443163618882285609796524447580189432079952690504108163400904517899310027831951671338810352722132483964982583955021425431135013751979487793627472148690775015476931276899181639761285646178224188873130904845347002964520734039026103544922270745641453628807520457518603706946085446915641503930296008587149894714776285462485977609810676587982297796969556907720139261684332082030007557439948421344391219394622041719541510465218087700172115288778745359541230182962373286918131134752406457629992632060111650104230516721216033804861420951214360095354564272894214304452579243139364974264889067178472510529158499100388450747004429693089506475543002775966543480657144845715372449435846706103487680965505990900119486305644852555239354163506247818708715787915221089068015146374462461943073335897414087545045730690359121177539207876046621144772725008837155720001560941559530791471200737289005176479135504374908420757478759149545656576352416857025850548168515485077863095887637267024298462859399475600871435221620123493074846353140094969644817811120132489078723114296954101618841205904009929806109540608338876625512123643300110144095573200739602967206063994431765512401457459155519236513753974112725817793322244972981179390081745866563328277418345808050214366236009129471932864374485020203571638427280944123478023105088485577042087843323792851135540360501411362972099760051827379702980669340999696209627233581705613176552914840675884327186487800429233239561687293325037301740213187420864017466846370915209400094290942038994242592132619618789661744049238947489402214773745207836404885939273622946945979445997779829005677773420277563148305667197026063937249629861922822768954682383612729687566764398304518793138203617906593257867157183774065537116920157644232740405522363665864849601906403212257212656333646308650563988551087323023765617468341631771860394512073002697582802746837729771804798821510755178264065240139646042059297313275585307827077078190583318668808681840912859096564189744519173575438091076968091481079009936401694696183782095702977809141169592623444431620473615407011144474991956786162044614635980103474899850976478947293305158836648293685613019243029207440430533370626904384553525280189685403404065290328198568172307457391205669050551524742949156057831922991130145727334561208022129425154998181453178628496269170130776313058069704808566453903393406712519573347532131762583333030296216927091171033899227431983211015655356876813395196417359395059545389724227141485785274774702136508588718884214083182327109202298954210938135355026706327437400901337794489171878761521560911588544560495867917338953227965205071346613672732048724514002469901960479076204290957400001473277052743152000761995287623077590821530230921515586764100764653506133444821892787024696209913500200747188598835638803828291417352495503526885188480651338537322872960466764100693990498759992006339756845071634505041033098669662489196696958935238067888358491033083198342812044004419708057434371508226024315814449495286411752220856930613953185320851914430423005944390739405548703114811289654423712486809276583023546043025837128033338357955720367386678552843723049077199167211246256991569994690042307462289417110477369805284410709690791503200297831560704348616077561123625610745889499869314576005781585169775383294421106735459801703000814947589783653991592400859258491859551637335119792237224588440957718153753096601173846074898919638004668370292391372000888090215264114710071595303748719552448403842061942679171622108148388464107852335790188687623493067117748478524767823163338483167910105242453891662850778806296004445026283019091632678298463225586428544044144996750176312678884464437513753306830146890456403872861939334185084333270324566159858884230986796279195223146746032230203166820090398972633840000923270507618195919668245160581135958910686913422504099247775538105029688098383031881521283441881488604958423272389018637107754762967870458216622517774053429241820433366393864600431977172695065774443422241203893852858123352563056888398965969055220672747823745082327794038452967862907647744751746672323640296000397384781851438969170781774928075241738337063726325877658048244712588705628051676523748235364622253266951575330337988515557625039641687767102940038613457652164849894243806043376727708065402922947045758851117477272819891952895690877603393906004003406912237723813590478577118453179325793039187948605226759289207828745857640244304991813412538466041374223051662963415281335582036004120881348188326643182611110233277528417463542549214125469538356160719565958048586388657802084737602163602580963042631367898902749049860271814705050758089588684977254050279873746930051691116528316200053517599741683892531868091901700196232211601022189481271374037618504933355527526518073329012589102023371494271876026397129640839373164823512222542703145540144368944843817684557820910421531747626850008440592017048066762154756180777712721553514176689457560775732477510379508413784207445238348033714064768545806488118345862011138943108152512296624249992713279042946493718466547813733783757044226028812419285660554786881463160555232010546942286482743638492527774051039388098671689764160005344149058570496194942842047984670664811363880621632255692589396075208819392822064313573792998019438880097637203233516132999522154089047622884281673457181950433558398739485685082435069278628422881407577563862547881279081175208198819619615562473486954668003002326977648868500204148345767675253275302155670667106590914530849500567392629239124535939601429600987044259200484829287286239041722677099646496931622760668660034134138442832590400498423763198808960001708546783726122748324967901847205421207195827946774473074399476727559540480440619087324796882421217795758524860237830718226432624509145098075661387030123863726096704174911883461518541819452698955904014039661251913679701244045559129375072935078706510290738053130829071651933049241696328473736588050836786874527118637067029561412903643792598407846530661427916821492454773653991956408287915922468631533366922224724495492616715098305180523796111785128609980572090258356119717232244135149324849346801184197733898938028539431681505409299855411281404570500048697975384694176469227296636206629277758549637103802528097530428721890734603402277272192531788666872058763927040350231157390326987681293011118794158329418425691574950003330870331237665312316800377043763511423867436234538747950766309025864061880519698607414909679828776820256122568451732536908111553970143905115417159036112555702613536173954989409710471758966526197981513828854334242994613598802221493213562744846849146364855716604094858176500675546576085826839967758210153051166548416710582070428338835564623427946421241339098619144673855580287894844093335858023343148218985149943975937860498783202307629463765808268358255384906990917316498987240566730801485227251182923205155619627015290000855340820466332498323465665236920825653998795196497604189960335915292631865707196210120846309989345348831027840763718914927726687697128468283770761941916763275918645670797404970519248321246778411598282586766792828543838456614377655696240409200293710223385348777048009928757338087639308006121440928818758073872319585776923709814765057612903737504843034603182785061512012515949114821981988155184149666550466516326051630802697806003291736288870202114123677942359379841398683912912802849967580649971038314347088771232256816125374193787214081592089747300714523154005566596250417290314918765377344239157356622528157114057822069668334809686284941316520992132722615742868985643511973109370605873941950561424071159101770629617950144137889517800419609157178652510919575953870210292893442775575258585687218725391754775652247032757274873050380560862145164889313985347159344757981591289001093084787842383118522415763021090653435997663063890318552208742564133673839008390208474968915162556669845980130716201868459082102330703975749665438922206026712623245697848972817353683227506291126344114917228686732070830111335813584566089334376648287517273678579912723410924459554626221197994769132470714445043646650813380926803205369549144323765255104154658574266341820183499086288547772148778895606099451648457707861008032848801876219274305793480880766898410918537119222431162056080917310478173649486265721882863205205297615842596361794970029513052757357187396321962169893020850167319138144036648666428656175300147062912188096670551351681284272556724220291771464677748397518524900887642408818076432567767727909486493286057419489778299012995128693428643458703233170120926899466893427806557683971855200394971362007298701117634340069424893715370630346839607000428310595050031252525471204371123187268509149005593698288671734633339600027011783486955634177447817120352358076063665206544287112131709741916869028107853420423816031292477167920010717392730802636151565415587305910702386325949974698798039644368528901524046988798937022783625139664531399080185149804678805716203417874875240754618148698728889841192171773711405423929427115790749187481903479974257602647858649952975141060935292040129484052984212045764305587624830864192212295530242817419446971212336645454124992757294292137749467426736416779193527087337638010734993950071163036311057346233883957982946376719363033200527660713608116282476511268885576827104367707849025777726595512683359791016827497266948358570690496411051819698759790142515965521538413747932301602506731089507069145015381598587553715339199497616636667557042447415345437878298780987316659068920349774382029009421129138559906787865179021115604830992578913139580832592477709502721158951403572094510984611117047734550465081555737082855977807494432685356604103538007740390882814928678226472705119768445346116638061522840343463103413442490245492060062146220465062309706427886072371595106387020063516240392164286936342598258286135874438420290102788047764451944522906190296413147980807173422354078973664018606162902313029088871183707319480492040664599323929471964473276461979889118487578334372665402379920961460661007541120362231366394618398178917285451441797976459410714136911383033377715383140587423301773994789269224247388894392470356381153164606355877998336057900657499867697117208575627352158261927480648039052663902604986213303366707312745581107974416070254393265900351212221431973457291620406788786250115912551305341243056938423495293753960181055725441574921051608590461693757489715705381254901975979944185841462937334511713719933573219121821446551110233780523184558727899593652039669087359313828343548091645542927281960647323991077876335884148708181019058404169183076443788254197542484310851437900331110347803140366139023424687170013476526623944397148789952888182565334550432226727395600820090582091107454852223268956325900912270319503453620278529976541039003708580679200721198286201275577254916634130480171122062293243003548377349639840993800047961786540728577381873763614069053931454196644069963607293086656330850955466882718302613642012959289350217685425948498132043547989806350892687185974123828737552286136599502131276745705787897418919750579089345493107936338638747010788844876480015778310595602889170991389065755525243394675244517187880412856762139472421064001908628325422822793176398050318873218240834187864395624998781684988336385373688825148167525149114147684836181655516447505978386027603949235426944010321762864849480070981663565073699324834369858854007353708991264205082170531376049846256067067207633133254380769437181813718595716050808991937736011470632871645054470813390354838089979138452561446628910736714545552317013157372964272798471852259267229075330677255629239559498112964435492498625106190615169627486078227747629480591579749274085782177795827100867900313679769749451038175798235917351151085093414076855081718246376871271164118743244827292057387113015918800151577430780707286007814425487077553624288340681064356079394445294811984238251790042717613767143146436858646497317586138286989116211424054957844567321917191431023857008153481247537398370094498979018766495984739970995909952936116936534577603873988879891702280876811346091539919440207944231247725862253016179926600684117875390693548744508840734083959144867912088170377589081186424859454826301498113092960856826347856102084282903096849033791368061838930890543225892278642641785981989830906775476092332638618395324763830450711361820377726172862631949977281244183081239477908564295844945654929769634088589723456792154532223467918315089980755001460737989103258092199080876988980423780113428331325984702252758821354168352483006746912037571713518873573051828166477409724376446172457807279931223387058226862045835463976778060814282929321060774001735461663873981661201037250686335342876419906395137050123651386960092799529953335064200982218350757642463505662568172976866335263559433313731334179775284962375468586928170702373195165164347390285524475697380549259124159716863684070122910309276222311400363528681873855756799391600692189715234019471392576690460708834586875582580141160497410466150247869751207789909921749712831247906384420148304561286514810026492974699159109571581809041486573710884014550142269384803037995415962484061970758303313866672646275280367922115198809796419318717186533134651069533239087856198888013139160321385853153784312283371244208108935667355558540742910592428117523537634284098511152826296770408792834777040619808385335324314016162150124315505581100118856714693873654641434587636637196387434746288673555110227976771118096045324026497539957949709858523048050371311489051356466365520980214242170146388712591730136422309383479899059257268210971581050073173044470619642323562504649572948435310462461383611596402819431474849954579154251224619111961562959450892771430813687583381735932255121000839065126651757152126496630627854884672342297306449469998439718126825684883881852794914821854049782862875688830572077377885163023687764839780394552861318139926965758925832824835447979415327670246428309846500373782552248126690402691173686691668379368530711327802581018294060610267869187845922345292851868063145333670356079775499580988733282199158659882266179954194096456785348520922552475363740522683679179763998154256393098725497487077551457248883771027261309167060814517065369481810796647547911786764372179292607132549083447482037674235117408521898725895868947481693182580235074454319247577993892689377023489199016161044020366068916136121974626425937151782262919699553733817072454748594289147377891967691623655881628384903127156057875851985267505017419769839674843558228025784703529309406469756464055198179961270442843727986236263920963049497284628811644847940992863186177887733829579430046701893371503157466782589280103560284498550908445863276527496079122066949143832959397737778427546445869356973893354610241116190581244387855191130887546725905580195597976729584918698981497189492351343007443828390581843027902909600760304724707541629124495949487339799892925068892533117790559014056039039631146784045567108481761396776673327991641421769103394990587351850460742530725340698979781878038361799820039295625361192509809626283633428207529428276895626737680951471482294374057376978443139058539713543557639090157696487078071375020375399060361819143278658368789793110004572666705918984499579421037556285582769199058631271056923696755908533481463021490766401213732403479245383734327996915214970170916395665466102812603897018483574869394561518540002049091643926842217469958914177432026536688431783002703273261627444476998370063541065749336382409820204509601873968438696143968399765906111206851327287189910347685636964905856632072568051553786926667559548714608961344589742775520775855803127356423656631154189455125344699374846477678960306934373577990549890403042016608633711130854554852970672488876437248619980016041534251257991934361271797343673706236468199314868528268126430541771728441392437352627843153677156847547447622591006693881504842577287485872766308901119544868420340459578161557731267952972849091752670963846497345000440549848579541098285205637740320108409664929375336855111824150687691359195404313103798299674750318773314004162994544856249416716946478486712582794562859062808089244067683233811247199243592564081877382656409589994695339040058143870337323644196638902641954318406001235618814364516602494169935421951861007035538533365590757305989730451159584930728486107405380796261551407951374923410960920015927670967950921194190555064018510582802481777022937002089811330199292157142236648396731006130337172951503636325258946109773486065165104960844252455078366697970331072612902059519429895751623749855802123311400602953972799488785020293164115993948526932966539550161741638798168857711414567682482143254075106763543068709459888975375287236151491234835057853622845427735608796607123131824900123102434751626633740360314287686007836080972667523550756443164390638955201895339586092132229131845896901680699442768348601215395435947569877780710028859983452271417246343792367523328973282316460250616335164692825852947977822617854602503500196254670364206666384839093736468525225451461638085507221474421282856566266164980306739714343720618906839697716462065720960603247276799229510692780522353891513029766590970564352766016380786471531749960429878672729127604585610096715382000718946575021361611457243384212545315899997633992735734050949804538692744285640740230963315294804203668450791158228210819602531528469793464723307345192853544575349479756367291646054520912845138848494231390616088924827071780541405735819179728502362836329575987259530596031974928648020031577598243111104693363107326637621358721440374438050926506695589426520769431899132132931806283563189141334067276251479368525057329742409458166857928535422440072026935083981688341635605162840280629076335856986503447896062596524149343196549158979236190062294356549650834643591201608267492972942485649777939912633176343358944779550498807743503277505911176315713741158458251115316444661881194736592430419871979813961518591701853778945470771814949627326320498491616475994397510570573436036251075546980671532881629927352553391076540406228614224253310940822827636736100736679801456393653714771238893502539150072292213978481417729658202588773793072063494280502541804111673950244994466448076090979208098494477241065965811692788378704801171757507187627505330607904813401693802846532480889213397815617439473138780697766950676253613019799230960526926563306097368393989468509328518070097079578769035101732883128410109917051422759324763348495554330642515080700095704196021726771612506797807527001904688349986687095220282316289457185061676881958713742826622678336080554368917811258370976303783678020077210754576896703807936132665614811682649208417332869838577361319383132339379650716008614602317652086116082281276836429551942568503421050735124275750700082446751736247602163504496306654916216161670748046142276695286938777151339384248165656688771970841375014018462111634585263859368636347200192822440942454184520691595166287580179046890354726989708390293841795003178385319778253265989983705153416418353376822530320483961503447212608166832554783137149906853701089353145587139046221378017320566882314659827484302711163934392075408459220677944539200615167725404997722345912004480562846565370384830936335473383326139034302978633563005734084905083093421035433673245007911458099570930303072033382588267753565899567961319722724276009175439732737769926897526908223591869778352716903841561510951888688186715741127363973543927770991334210480902265449207380064627212993926543096760783061691904407258640444664898185240382747877577420025435082262062693578329097584186614281553016649461441869157730106270323783281994480265057965166820902757600458134723295325198873078804564071896380706335887818178518735332976467861341024468624462294702216844893830428375617312352764520128295305538201212716397909289069882425425814678182102493682844801437838458745899945117785958927519726596156299281826595942258039473360731150137791463560091115195777949893236199996517793773070474394608323212642169408470862771091650349828908095807397214584478343084009922306881883746805857752716796872184654975339339120376229704633570309012466658961579111923806921624084732452362853626062019070818156929552983745430399452400857924183532981259289420167231474232497637970486969877136421670000787719587242133799056249114060018356629191622196537425966362675014411490768063966259096706219038218350916160171135106130730518491917890062694856965305091318600073669083804938778650402141020313344725857558805769421380160721289510514519180678636778370570397213014975928895158883940248435691449530023133116881064306774366127689472295989739204695005700345496020216364254116854382619869645665541524140980131927353301415560603734958480967097600013698940083298838489597733095185271746820516965779595349820687462423171055166647268421769687235771495841107004346301152125923665215044570053134195683720418362437964687988249854201188136776760363469694118761808899502719992677685459067251170334032205335259148303742954877496114662937096659233171039637753843847468803878440074847028619487994351102753412439543831131818125724740228014117302548189853507259886091781047836558125733478730036851571269381244677338840558547951362027497327451492800710957181482719184220173428448406385593680575976682063290957106898983849948316929012622028283198489933390240994374551339807613114807342610514855495905846644491323646446377992445397734930637989242419125584202640147475126924685969202729903869069596435820027013577208164995238250770605050466726794432656272907664069237840316331236924670298298705987839828764715226430784505020179438792542072855479777369518212400265600521443710881132748475079205433923543617782419673017519937557006322751002952440416231686005445650877529259694296709110683859581018010162529698915726180583608965426813600043166283153521804953297110412564635608708276527970142399730345345117528070731892882701053454616538740159373198471970748798148795144126982697011184331149974925013764364386878031343540312701485916747262114336534946566124429349150002401205010180716660995421108925887089074246924292645776806189292495671728947712859101126137596475533363503559892916791718740340695841357390930432382188057187218791724406100165857627992113925046473690176747524355516513365183584401111445011053041853739233539929374113280569324506780587407714437913222422451334993389544850381074687820027183855280200239926622098071650598954064255026451115511182687367221545919731850106105137480346161168246094301958907354251752076393067949643995222744188835595949785564578389016109576279765843243516026633238890617736037560459740113476904747257603753741025311760704343826694833860403479319764975478843259745968601912603563706273341064996264030351207423388341456084823177083007418182508378334714073278714486090576602177536346147651118833588406534290831096631159278806256189621908761148191105908203390874083813507632701194273094202597118604910041474223705934182798103294135949712017543402940591629635617754801319408530127274099594407057469081028163537873369621678781040226746140724027815883227558271413750569953515805567061358122976006043826347782529067405379839192091856262398886402296812263318672269390531685516942687262270403371119194333038391658358572207471965664031921997768241273349674824665510825825413132173510940809294703149785087345308662697859657340940410363456359424354826774696801332999213087058620811629988576464000697177949301207087933855902959587025990957256982980830404460189173745312676616355636028340149232924820548258205547917001189978300959014426614669348327779671947452738689477913020180794234315324961202273915868734148568534351495813585838535670159671024546785075107250743955048240454457267304563720517965541592417447702241914723639018469750000928947892907073211079309632535611349338282247874974545100134756649420992571401659904885874951706118940177732449634081760565864521330009444730543747749466196246172330473994597323923852704926367739121404606148830658734260825665112743311853924295581681905172825677499939967502460484051256650063717306299915133880229068181921251704916906920864051401236421714489620030766392831273997264203790695769462283738392087735506972538091890908047008529066878513327340157987307521301975702258888966897292631369701012842349764961961833008210459540446270535632302214473307459000801141405410532027400885311865992682399605255837737925781096368430286094485792146806935080818532280677029381326167540728199930463055640583710828820227337579960119394243898718798783080486677193563883975754584777028973282440728158415104894524567258171344888488788148869442272480514864458658089403058489670626276898167424586480025477968155609646245101546517171474297404320383236830580758356224127723036153199686876485357814221927539861461461304572738247870618697233879318948995143676126114708490540796120363465968685583514137283953655022130375889070959832773920857486748874764366306264344814136334570747013833525407854177936908803022941035411078122958493238395535161608889298244727449303314249833165872346491132632761905128144099322812316274143838550459296525702261872046148459654342140746807376051995782205163286459329321838278943139673591076086912683436622827846810660842089584428146409918102949895456604583897474652733772241187928525006911043409904685460579735173516807216801835400890498274610050374444262764012068313424683135370566100717586467696341040624842802341933640941116403639916485201176045098554565943858427416176980398533114454140112511717249804645801056488692353193581108990498614271332363797992742358433675629475738966346222362565005244278379373583090246196129158804555325191981255627392539149662935602899656939824560462301358990029905731244594349741053429051384260677283237719815206062425212722349997145158703287880561505353917476157913698613229647003409581407725718833384053682975707756163473838318643339884728700934793396589943036421896029392248468015472567271685018367792694422591857583767457685028969443515508554946273514427914412616877684732746155076176248342857871598841645563203192437908531197094472299806500756620283794891870610585664660763578330984254669837750311124306041177392746809451212238870208867859654373239222746963218512143233517124893546090950494171830428179027028420074336242490836083614859633208564523917453801474461456382735800406505430887633502995056878677674836386729693629797950975610245498743958466300895728203043262933849076857660842766975196873225925822904333487697230150264354635621939628152231567448877738449178217966093271624793273512328838393195812608775974860590857509714976860153205267377210951991331997681546209712166698380286498897642432450986460913768930405001966296710458864413781402349220330515123947572979496202230278011962113267535463291376313563992250126976938093617805792687091609055741440964069745253798343575522931634149562269607545084308772322393169776583347295603434778160501083337940859979707855664931814079823004075829406897072771313626395044596600094180413649823619831471426035361585952837555104013818320122158020743609851893877956414314634230402717539883872453623415053245542805825721514437067237105132875201127080443501038228006698878834624848349913203808276324456460184400689665571126446008201041948515283128695916836702305297874957267050239835245956562052102175380393911303368191202965038932390322495280695980513899000091180770459202977839371989600610049852479563504410522080836365725394115739178707084658764874381374515654088693660910200922167856425039467169442200752644950184363608399730371532333388358575408643753843011677580479073421002238558042050899396740828911410623151448709634994926087465637155147652082812536551553172521610353451943568199431032958257235249880335759122299839823045576276292626450827591722831507470388577771679518543727344795916282180146268714726323686192777843483419078874834799052283841991009166526657408097980496891824093353444401351904213164941746955758030202227844695636900304205958231060053766162889443411248381090567300454891735639237735163623331275739980781044827744486385088220217614963020544370711166105219554894851129008441243317056964205968401222520393109413676203462104146435242372098953203548612811610114554103229800975545721881378964490650615350790379945648256695524096837626755630611784941722849755489186980308962974265126097835087522304859130418643634219726279547752646010202680911732662007750018288958409159133171878824381762026364897405414296709286169574997006157863355329375412044642368448593999033477047120348279409361715891465120114691677297071298405074039518939247896095837825080111845896159533969111140582033524009173740010030609498195369250619234331683660581449598407122920463287047187206686299586472417151363752522707780420372067520907159629248408450306550496836569802703124590492370891951389785093221598738526854264283729915567035900947799428921375371004911614848765497108677452924773736453494593275229676077102041345785724868193034130154511399601406178048318891601340638644934218018428584092543824275219824293628380918725470059066689044222378556082323938971782095146087553137589530412784769589883533041574688181945999498448292027798123848041132916026969143796438783228287393582961189166969091468937896913945247387196297457443899013444531404547539868858287249162055562287073628424139106793342626110620227310675729576887951240437125819339872467800465889128034801095057969629000077193224719389957866897830557706981634780251734597673254043673158712050035901577595588142417468053770301581429911121410623245105497026809528343064519811404617910050788484786057333838111983901127661540911606938074551607180063082238063171373660895184675577741418948330141585522929762773330404320750274109847716356944394957317989470043338428502192450531138502116854411681647276540137608727280913750212262677506793268423723732765137265420841874619067717730228552974983361771661778401678553053983896677419436643132131304265990983056668155014205173204529088327046206251756388449445419788758809335646170556495473718152354291750191424553445146001555942217653270662753999354079774103158313634785120552838181703193886885110564702111493849251160304564383699256069825776703658519009722595423828184655266523677704514608521926367866901719790169567120224076419087212834178730891448213798960060971305913568702917696981077965834169066924204553059556054120315834548760928997667945516572760345297220824775083851555851189389399839261742101398836498592445002731526907175190844529264862824953564428485687632709698577184159489736484836538609890102895447263072739718582111445034950799598310454577051367891652084124249465084240306235367060817116956727600908155389540232236916750596346330112606322277058384421376353363471228155311842734144156625262979128856428054871090467290933770790158749036402809962799184095743207550455785641233039065234224343214622558517496658300394877812708166871583578520685848936657975119889266236404648805941996201513544783860472682165150996758249051988675993017425593990295482788195479291005182818549389622675217732000623836672330763861501442849808011066250475556240251925104614751480200019908068189378330104538287922283918920607078468019130355506390152836910129050780637287293518097434050264320995601250101936077415231571320254516224735112018832391388371875129297116386047128351790864779272019850392348606925803423169534521518541138473934207826259179569745438951488595948115210251694789815495229309840632853781531907523669983345453697394712578611615547518079940734881634516262886529547780342836712934619289837340397243846956744749625601090922128800333708086212063462372562849714622086260960012546811130122680030701359850008799298942783372299279001220109301851870579519889056043800194459495171079360825214284679436535982539069732035262867911975184813683928180877410884410027455438891311901207377878674793151297913440181676939878758983668349846813209973921362134867312414603134503037444676973736400454517570289105617618589679399193390982782551544423945037832099052896462064147943775461271315057170038656653129997341723488133196360590880703812507994880370435071823544534705928057094513656909560583816438099326767709124359175754548244695987177630954391396921730027000600246570237413965408302509186169376482936223012709578902483340816580421971703370352948302375965482446277878350855033324489131146623192852496000328480679119366542818039401301263415370605261668487046950190614507895579600383984829754298999427933769775775246503633024210720177873610357043114681940283906351091860813778661633423671194137822721721534766288463673992666785690029100966590100934464989512720974204400718619345470843955081223576732618557914302581088570305142722815919021027193171738361285093469141124358654160754313124192931414384071555576730640118926322650242159989297263567855129630662076368321038910951949039015180321427612274322657630096371927279527182406714171937348379915547515097398239052147106311750361666640313406599772509662439240066962032168071328988194910075732126933157988550581534715986582764604971625311295951641119318302095589498332128873372534559028585883296601773882105570988848424764108538963219613636275704706998553307852406902965197973630735994937883300112466117673177671127796868156686595528224095659558703157896622186193136033818631008560056628310563941790130227054529031301275912689376692355714297735130820178459771081141148426461800132680510938866795290709357494497736309392934301106272952589380088072711142999830419055243944922855172310651791976079346205004834484424300398511805572271795470885784672739031781226523832512658656329599100634635356348978871379487710325075417357060973498181060806143270000711968622600384982854026061418307893198961642185961661079899256464919029515945937414687405628188938027275356667006730789745854968103255619017429462142427437286054360046580860366201145335337699083702175492560819858546172988369307869784971374204441517599810846108786960574924808507446484720960049963757088362266860451983193030329185135027489811031487450133450185102619096165572640865466945320272296006780474055804466999571935977477745924276670133110855489181424409093522054836844226694816132270601417777889378339774271235429466845085666081420382084604247198407258430679089978598658207342680222628713694393863312800411039027865134984268051494701020958259395352356042819324580936014255700223642737905999116973456422919874557010464184404025852786604445520865387609075810926421497714231286072199087140034661190728868506610787419266246146351298248074557883162110097803087401469756029045545791379627490050362854299385472502608084590952920177327989114397651701531881703340888496504145692574427446652000003986160255107261998422410483019810709951480943627165256641433143786729561927268536225242514322852524287172502567678618607509257644896897207122478894116371765597272879214702337881881460854621100240316774313987351123936418433310119803718470419619512477449294732988165719675179096033401173682318838846280064141418511383919461017334958210615974279125693468390597424518698396990508417456481934998211048852266827749693637428284772978636608665682196007193295151383165026149043520228242294133633535671630232109967991363138192703704708320695789394071721560955802969391256040687588251296421200224374498940030101521895343238527651815629125033887867255940844191626475751147639301658500453043695815503537759665558004609840400542334365615672195385997147891208028727335905895939979139067781016990594436899943834144138788087427790155616668396810919413174219118929225865339110819993217703115947578074284701536295545496770422916933768821410521937015596683462146170274265033855337781253913125290333320310715216201439468255038460918067452660830918909799967107865765044535772996069066082350623888056793796931107259100864759184169081571981413106752560229959592325950444176402725705584091862673967645348197926180252201202320157942914244927855738138899654625876184661658824644042085509456446951756818992676770581690093784831531879998442474265507305750980490266605191421734675901675682685384139369632325415181733451338479581321091226798793015966881688219530407294191649136853041499357835433708553858338888325036153776757262667757642606104332435415342025247450987673312348895916214983665114404272745349787911348152686499552147873212216429374343752093698286011169894046424360880306259679515659632568114919964546198542299904177790573338844209194228687793716854305926157357674952028414504082064221831892717887047552937342303621538761225552621405934704330219821414151074632646054718791786064270900081222176710776780202224091538778582493612741341263005393064467913453757967673877492890876801060876577828109878522062249517940047716677053310881660192259033348443161007340921091668002978879279094590845124121431546345472661739175574047672082540780749751829997756584648926967084486105084863832189593323191674053691285851064091230098012582100238001742245272271422240153144866477069554549118424456289484907460813472074772990304804514920284336930210439929708349295960692345697894746625663730098435428168610864609297776894725871930451744101564439783981823758397720853986219102693085098802954853855962963502701891463737002933956803161857000759232599921396703076767662911217798879632170319981415794397639089390160958719166745192368778369260531337793767872470472168061995644501289644355418004275271782650004257034292656446563403907432435175208266191273578663965797862620302755870626517540622755336926420969056816070363584522855669534070690422787131359550812487444675706200955805292045953528047680302632819508622202433483317191401363142027308892868544486958722592164577276793036986269208217654694122113560583456550822804902957481187517720561762967782177233959536005040834215694008957535228230329969701005069136670008589182738451012380974477680592422837430885051833977258654710162731066849534373634373827828460380665296593113813108579527885625878767241279964948484860574690909273696905511689198179633779799441621090822278269322052981795967974115874947283558042228109014699983585614972333742135846169763407932374483817050197586287242160536208750842061094219005804828386250622100664510567239127497554878883611259160776669236619633256723690014891647082355739065624125506914821126355392475053193000660153104184441099951487227829722161809495526532428410914605879853551646295358369985620715005382925038999394414433222410820351758029798420157025706727301851529466125801827297245080707878477707089870060378205407189018528538024395799326624241425636607308429218593625797953489743436560227117586772554257571921144992062190189794456842963863057130008427823025148620526100840906720396054446384775628221123445013028083305845316256808806288171009788833261145702254599763479854246641814257089877492997969738973880647177736670827821628832716973500180016771095293709487282649687746530864548351496057493328616236596014066266516159095034115600768957144523701540509595601660066524629177891400143942111701018473872801131133336890531012383635735861856979165458374560140543782812676314285158169998473950708363765507092638917175695460576473374605559798957134677623610537268664084467996555931592354025731449670408518201576603384981190758645661664014855420759370662962162366214494772732543842737505972738427488086235695598239922781959351116785945988139895940401378560573365280571707141511140788453269063019506295620261535728345133758640702079207061844169035635752367325159281397826696485918964779932342450979947871213928253956671278143437882637318345244102098348554024508852350650124375756806787375321353361167242025600404339265005592526392669323054773260234769189016483823914410448938379644307374512694936981643806422502406219948512155072520670944091251360976462067913268247056757899980928884961237902523915959165194062025907381809335978858071614830598779588134849563356351990569430350881557156503703557128002648224972585086579573189636883083701424259078178118994515803740628502963308001649479798239225029958616853643769477477127282327926813106347420195130599993969535728745207813885579598689627410408397410925543942402467428960613133219941709676058517871607102562426492698143192892851533997923745149258370263820651771628245214095343220850234221947577157903891149172309625670636121363026802699468070945338993249223034188692598641096364334740728705317808697684900285565252217850018402857746681534991946344089523404867248533503123724376424494752241496184374742435809602603538493037552923639500167067690595328053922084538569788133066570359705695915227465085849173373326404978128834433058200908025228855234442765305379140464524631815910122629148657300532357339181882083720922700013392209973989924390206185900087379037898910614510589997637887819895825255468124230229795313129654273960823026117337400527111165453516747971128743863409173658636453876767820155279526135842342840754235789555497859662747626532280088167227154051179483897993561332564892760625781737429079897216135784427770823580187001964438862666440113298794784938093946684670839968532618356329912102526979671198366527257412100248177248462090324146618101215298665546670556177657041014575340681444995928087699670450218962647728232974205087535367926540187368063489875456604946771773976455402573956197024725723476335847876406262454992427678411393396670315432867384032781524249199641878947794246272493142667820322135210343232020257460531030155440457235813415730566608672007886242508879638587478336461383195502662561668812101963375137887238569264300641897235363976170068238644410888300393929124814541554355721091066430427942255340851422046544303316405891005092585229169480627625025010469648991431384431697925347187540213071329871314420489222091345750680317973245849249257297100696630384878633016444533012686014195433237794970063166127549302274672322110689325671034462919785338607427302723694100969732842729472002033029832749996895030948629382511522421062664534216567133099754226059384200978265513350196253557860324252657493647575855727063326517586023545322879632835896110346504353686143728228143643975924366807537903650170980944727467119033870161633094892238548597075388264498948889908289933523343332856693124858971853469486446401302422341152457045316891856495778996723688930702411281128688565047199840424173859821694204482125702792665233181491496788588010552834148511900237189616108704315736355993495403860489444184943623240522835062039364030538698036826712095181397350236230395682836199525330066875670446700480747957363216009325961761744319628354907500385860073737779164808309884483879711783259698434553879791354106417109618246503502886254469019498803167010591108080785434363015625176257308838147607891997494067512366344997748815004937785851794295353542816986359814658768624123111774717442152624176284905818936109399035051325392927257330108345972789878685708945961960092989985255112619481472562412942287607669528516554581149182973659075923698848187816943708486884488437212095121786182434625849406899404261086243427077818111548957315016952437529715221416387147596519276903635003605291931198141207831974679029433359104522492068077487200671280969471505605105916559727940739588148421547069363222034068629703042067533264401648696054130202620678755838830641589644734082390508639628618782089363636534476405832066996626704710070666099318399823311662426011913796797705102630328461151748232059321739402939811927657608070068045590017651902849574202003238026430749555365166753539383522571746745301520647797649203439047228019554253139549476922304219140296619700497811687124689749582214805039697036305037254173433343303280710789030405505987316258491571033794463350110019851957319211260003392905578045261898948824710801177487979960743975986420472002653801965345414389199937827686866640815508375379842899991284572454155734682322820958462919823984007591929902736243100211391649626645871411553227633385213081142185756949046099754419004462829199248033044483760803912636108338139328039939452225496608026362851892205938969724727388506287668664268798719131202284218230426513568399055240972999187264608976678726216194312856734458462503948669433507662861392549549352900104069530544650952666172133750238268250279326874128442276651755678734291178015251745219983540788899145108929348580478510506466205611101301668167849185746703219823735653989416854004644629691419518221261226808951053754725069406719935946084371740971530406239013041082304869253423528989784732389165602318572746651764110216621911764967556941873972863692807845388980833005273675214147331811098746192027713172185428401056397718658127529872396133528759939183539725742970341902306015042111413922073844053058556983027759738987536207131337443200692827051896395824374425933651686416238269428424939328528384503940770669272738615951776498113057959664623993106914175140198075016527017353162344116103290542726375764357839983767825136206951876303691839041274915092527660270893967230409476086676554019000907818651591840636643461220186105104744960041326901587690206518369326816204703778018490371194721842691587319629684406049132660582609867591382210216576250505595639357377196068951726274469197516020840521904700309294802598439498313216942471441396346344905671637589560133377276478257447704613575266170727993085362842437656945312177748395666700575478619267531531369778268593446253154405402964394442412083420009197506122509251858123720539749724923384349821541188070997033167196115788627535344524512123672468960215037306520105735165782780472702122927114984276038382427814891889487840089803420925215395364465589450527632004333207063924794392960534653898177976511581786542162245303947807638242410278059136302480421312366821578438162324961225489098140887310452830946464989112250677504742784598573807375118622047047502133574996043053058743589091942883324827475578894371753229602139847592452056436068734929990451170966894353417636940227195860492137933483566483199333969692638653083881308504212380059529972902184190439492182842112442348781057724190196286922581875763280291948605532691425188246804425299878625877818214387649950613368869592005441944951874975582301573021233492309977088091160857815738069221147555505253473598612561998124303084387875112373980039281077041638556455517273642074612918237424452272197725786335449731674496498883837266348421372946780275058428274724604850524797566035517812211813125212912998436515420348744722760355052339472841565356140103781376817306774075540038334539714260630967330569791336210148455298394165357433678963782387633641791633835530924165392403631038046491677736976374495510985164242397572784582667957327428345788063903851456447415824727114034790326080268899421166705061482247262750457370971561160451702630490291073022955905508646643967126276081207811789514135059118297811601034893431070179620962234794874799891636204993395546660570654775321824730806022926212955750261350912456355272776231265223119569974128857411569654903102470267019984637298157248232215168390177092435331039053136601047116139936840927888091760808193741336217142523827884281732573029845073918941977404874926248459293415065850867288901222884815031686083659492243063264978744681176355494403962926409365604696649008376060761969211703789207831058452258632023309975285956700650428166590878129144448375817294685504587815665313522362543069987282330122213341777440546467532185483489732377850801770742282015297006784170342689459377383831858467467852320565166075579980089910439491089001872624502804669142980904110378343478696259252635001331145159037739952291766560232834887101421199663863632945357745477876087327789271857746792292203601002273541082411258070449778440008404422768600918421681026657939466991532028699802623483947873668041689522945169814796297439710315511251598807890183332100361447546365217216131640163350184280442787737606149648583180365432617260374601437767480667641899675312552105554980785719843020445862044618537132274584158666212831935490544322404708039417929317292883156190488498288165333662325794782851968736453292707897438254345238686514697764777004849853078331646813782752087414118149649222222751944140506610775572238527772381292670548229822327533075337086321127876843006466283999488487757766158661286328413524552612883838780158476893986311878038298231457712621928192267367352790913398500138995622233608760885277679169051169718656748593346394694055108980412326442360912437213602469936836023713355235043328135495148288624232626174839780874646609821233083889049094925949560028233830349932518164524963686041273529001733594628442344640781288419003152069210539954564429370499146643009603977739281997872807920111733325055252608579917868732435626675325982473305326208067228693189484870942665135275313859837718806158804000745359793704858879594148059514485582068851151295328562925611387202354591535820629324198423897802857825873676216600292990271917557395027633770140763662044041719653434429291506933049213222453667870481099931919665301630261897924489890027291414022068189453599249245210493523191383195434681327031576614234844860319757644324879347697906410601508807264120912337323004294866412878974486223489005016378276734252512867380090657506697095906317827781091880735822233952170247134893873517688905865816813923839497961910209505578366799290301607172931993934323437569116067279058542107895997757996987399753964639049321809307698591014309959279006143542517503858120510620290247286791443368294502878253541535634312503747311628702327004580619898278495191179976485948768844249207779254168353536592176159051513244075083614462786530470845790650698567945838581054276444968635644872943298750970230023864762491504420235001843811504721147822090603517767273181327879643859743006971532318557348146612657032963154959412958613385385821706725032991469648138187803946544644645839149218642447151983402483196005157485819256643684766887981580884076802838071907464939551905350440658244834536385648679229245754589968288779621847125717402889656401528544517843115261962472326767487240218908591154309984399400190300186963538738426628053359784694777851636807027281043314660240163959584926689857375075144215770347981456373847347692228711894206386343274231888386319610506767427825768361675541193965923367207045409167299084855916149570093367412605605876603280224269124071607645487153567704487223321050975154289479166301021906587455683872719241803927158744213125694742054465890747051164058527304456855217030725890312098651850654119545637817875887047485202241777227369103815604453314639954799400165256724967158742287026702717578991433816619529056210384660085896087226116004120035629110712527779288482640216471612618351706337233176565928722093110168903263734426228533413115860886505449868778403813699087218088277684915529559315376818976989257839957558695659386332180639880513425600984125371179014556911994695238868415493097676918949271416516894784099816739654709457617953156616002215659519288426953389602049269314563024572307726275044150112734340402338864088230017680477684661736274797245450206191778954268908542881832278545144550011666286512032240380906847198527424853104791918496127415816170849990690372918701183115998833750943650188741876000946234107129252832956508067439374724601361003288948538566126914355819624103266529173454066571178781727416217264115919722866661351645097488359314095675850698630651792263453945672109548820231547946822093252921146297820438214539400540411065055007298832990406241038964234966558610318166358357855044033961355363743475410498410217545733702793227633724942000192602312769461776888703531458537508670993404068947448914288379446857208797541358948695239654221554947844580020891356137019628328383398172099247368534248668484898139007479292322333465156776667164623984882844489775683461056312115024563924554451967391294234014668128878777886618819585084092837565257277761350217624208019679308509039043419476673856277780945467278636803017342855205297065683768454791719219988166326360466236483495339967612718330601770039014986503840736823995757584609449023186215689531803475539483898512403687156825617054780060422805317596371128963816322602474285819577560063690973334442797349343355434042234771454216213972753235525553741054899918703918948622304908393617036913853868589057548796094182969963708411872369695853092369969633493203491256189056886444448662816542628967250010062235968297206820055755641656129080455171025990136551418495588140871935446432597660835372574291826790538685163473754056952148341163997638143922415859047191512574030356585600252807884932072693956416635616346391086732791909016620537122047610359789200251821558274174154533573247621095000990034539441494948704174581494501505545022849589301259191984222085951470434478781507557849712537425429216380642905652016740060035784179790900201774689794027033104602446496036019532729009104157382185645862564118517513533346610413199045846048892462721736223871422903584349383541528793326450276752355979148507789244562921797161366437914863625482399566985864998810326772751590225694065299759488307509107244128500317549572969368118719454302967422312347452296853780892603585797542685502581569991377064750378034996049939453210985227162148300359773549173837616000985767466758304205066988664284987652261300135644115610602258945908261435447391254350589607604752821056798018288792154661549561953099033994774014537158136005347881259857425251890050745640159274796509524778531964907879109264946250920952443962328541421877459438716955335691932565584232526498829618167343152954024108256035847825443304833824072423679474773593834904512951434839256924926784202032565930308894615232047373071410883070052338055717421361615671609949339665128035348734627307836881019596094290159907392184371431787230493982346248926520245016327272279849255976791117566917738862568737679680699430868226749327801125169371618494656228483586806043297879148232810301015751703448057718509598631840886363519690987553178964139097152573113311049151272477350765236606164894161927399494081026704946626454873835723426910058064521797394404497858670339192286769846184864891012174034949643693191043594351750856754984850972016772392868641341035078240315791984259487390220554984613079389170045079086442209233943767524704559137499747255037216673052420310795703616726795424425104349260762520943038976529422256629111694514921986073070792744427507292300811342268835772721730448399762883775070897787977571819867130176391954295726087888097882357115620597821284062950571197098735056666171402960643320587766750567615008041471180554876991234699490292383423118537865352079559731211388876135634191234090265221073030243104898431714431610079183432928645861006440535965718633741143883230661429923275021476612577138414825741156587142418344856985569457873669765337915176707778025576484341620783887827557278063145247099739517495687795656737548902654597000587118944124797201853465048018424898159213435319051114794582408095009758360745577606322242530853819464518903695524974827531424296494232375345323509992997839111801162879868397256545008796481341868127391818026412098393700165738320830552880175740705249684649923918528822171273832484390509214981986704435062697834012741519377931463349215330524843718044857532167307153658049908906766200005260636114983888262822220669689963244612136894141978485044551811623608802695562373586906959027229037639722046498572917306670924628186772943053958579077245664699497327689463899123297113722589385082730289362840200136309196038962907252468434329460373810530095300196941928467219391836504243610776974521917482212107733935194021762388293845805592129134680748470091715061568978887577288294759433112027329870754893071977489268408231597627865871896486516033303775111035144724067250395192142969171788803214963847910825883282713431957284686640897580310842589068804046188951441693730805414881693080045322664222508891341288787173072372825887161244394718593571761403773214902193990439095357828559533388890353384164279109563465162375561265516624559572378982214341938260701169103489311790859599694932384451380791025612519768897457415320977726292102210084929970571313352507506511612496260179611862810262267790356195658806235585266625447210506310294657359643601951762073742039900701052650536027107983366901059912557095128376014354105139801307462661031712309652957425520232722255810763423403763659219048598075993068517236009781541517918441441061892885177286851809130928777030832548744936836568403857578729777446937708107474642533332355440131848139124971737530034017686952555854524666299990689455685250301060174234016631167474736455544045729973447665469283133386585915841397548371499325774541935791407455034383372408714133280447282316298143966970606317402440807292829578472238521837663928732368167609955450383647393520193381852510870157290442034348880424293646685699799122468062455253087878184057766042288803730643462048223621379391574492911188399771247630502442164740685408105086251107124257881284992554885127745063791465210520188071574036132792579556815334903642635885136378938873941233873746073977051598618599787810925563057767639486747454252730418372854726099970972415969500452937941452181516089056826366466252761944827569158117459624696913237621305772113951807301992462352906900971780269917407914852558542253057821492392496522787437590516956668996692191788896564621287480936461394891536559041925577275914256317830981508534466594768060398389098469361081526107630690062332447458044592952159518005492227497062130389302163020184102502971915555128021987970147093612759392902701396596804552196401028283063405452605846546099394116398737014956079831058049858772587064346654446279324622323022740056529275752326141522826451611263664699219381630712918367966670827162924975884460446470805719747694843392404879594135247129644527076059447827340430058727113335022710541968149479862916182428595948607336030965637110031468505730974552905113007912703556090949052398625890256385637876947212990103670581602794579487293905117829932215676089350950280241178544690944761207691558717480968099195683632482423071477397303363728205165519371123567723420056956346715413213045525652846014427196226925058777063758527810168907404140765058691886339954120207141120617400127760436927721095038856729242172941206471687235012582502738883518461632197616821059370680131927039138723343927468724405330002260701033853234697767138007639614414736361913213971781669178740041756924536901551447270432289415605838628234818415930363926219153812974777197917391082691132511854245777544556017290521103826848773525167322090106013693527132258503788577654884683318278580022817973871784209027095061216406858881870012975199448920419063304702912117085689674736884913493563509678823180322449236991868852962109935344199273276554009716480930948640970808206235107445799699343823674651445163075417519759158906625111553627313471889630680280801464153386216837782671305495864126050165713049764826707327200421379835296762908479019328024452441476366512508178067188809835125962658914939824748013034891319601719216132277473584120141882634466294938884539820791835646511085041968313161745393023162131139998837563680302052844984127688215797448831182001693877289469555072742892417175150591870919424463073412349048829278087199633381447190655884425927473945901676618310488825528155810159516212593030795471713650883937122374309478386137383792177415874979289954172955616581311850416876803393415774344777628799054825040801338042193057760030112279329749637708608321036824934287234285452017254541524985889004752061020129441308772132987363731094209368781721814193354916265628972888679198950604468631276065719536284363781946245852490815028577001747247773021592557897080658877658159524719169641761132308047947064059284121459013035449638781110224690243078503470834547636344667494492689407901452669625231369336688446738626503351032033275278697941350076601445604744751915396259099945203157360530937965808352610867441683103957621829032655550847254277027776787445544781690560147056761749274499020797808764582001521786132827565709853803072898404744231970339460321967893131731446587662432330810527438622798849547607777451209277329814270517686627392693880357999331134844194856943276577815365032100650089618657755226329430941991984971242308874251133723144324130709190904297184671581951653141521096341910805824619393995436137547233443069679571881800005515730222576827566024897334213025093871580132686087441649690760158963172699642308159900441784173426103130288094390420982587930912311929827812443057906443593485133383376133099679680883580848905432101990956087688754252653752707994904276411835160050060362022529467699190576285977412644979816392923987221388639619398307799067136153840889794659195627892831373324357146761941508759574764788574733411698227348392232765577833489002566882101436536312955231593161540702260863277844825830961467618591522395998291150141500568507918622710821825150404389323447273834378671896119981342954211577483542218162717630227390544176166609224954716432735833137800850868998868706774472388655467535397411232496988680683198200933939833920944152982576260889111149138420025006321187656694165338317688042405447803587717389860199088467631750760973863730266426497327429143891430023785207149828814311649634960607794989150867568353280881568009834115067027943867444344625215772845393136368198514414878552124426064652134418242045283870424480302658576420662831678902093169245311845153288630768590856710116902228079662264934650117888571166729284779463498963626431474587460245706826694164452903331756022385332146827992773250201574209773490039339770385418401034269095005022522699903964803904194194298884445062657996300111635464836273644067192292176421634379886489131027458359747643805986245192327299558263987298266410761098094194725588114504324312679216936505898868683653245388570652306332496400433057529683786264285860403650327265814437190218543156807724005376423004707766821176305703346615602741489702710546653344820727090713444971919213069406147340059130180631641382739215480169940111336408223616096914674269728008342963553062603251035010719953926224897531872805730684778025986409996711193387364273025576998253220165935545917114054788765425764441961545040453020527632347808351265685476271785903686143412153842309679094903850700624947366189249412371420065777088369817841109987670720999188277256515718484591076540119484645343945625716911322872219987821445678519626310423286713312262284640007000692902088351589562990009043068321008464642446950358517229160969230231537473958383831513745954351991082812156785287561095914729327249957591323138269099561046266421671838317067011056583829421512410939604884002527223850462712070014584897871950690147258417922435660784473832788984644061035752028502894928429557490702457773211653655577829510709943780512831509579347999944826640483325341541781688368962977903858295328372960386711804925431915563127313741692368560164990632307618402563538494458764250672948184211499712722944497160725986721985811514395037350288964942302734610253618930052266201168140975556792854488243392808951164243566869521425408404103614522267891875994045126839254755312763604697274550734833775436492233042729076239817479802965984551825290758363409120163639204914138453877654446725618373415343163540165672982414411808913505954518290729571302547623990287454621363648189930521290245679392987453907385981103386497271578590231891727050274719767730279244173756012123340588715167162257057539708242666815625582913494616216130271822932407731492808390064664101124139314178628673163699163418938509049992110123394622022716620767980642007772978037682356707552936317270197010767336570084804751462102177720348843413656919266230234203323721429057151672215068633006580210579034934763475303165923274974041234261901518397107457895168460601439377959548998927446607585633332179533451555082308631582957556349715131592445977451211126487381019491943428267273269882849351942866628702009246943731672200886485514619098777064442419081050942913993770163372859423368110942615276391227995426839680704224710936285330754091041464758999931863661645540687855606692963411103009799307229952906694425960023412832398322344512976397768802184842195654049028433244111052182123694619398861696239013837956542357892642792419953226826471223468608570016266342834954021835709886220747812042023493955676658647072175655272829307715514843448902241508947097519881316742620376502095358414985556180836103291009881502588045699768742835373196015834711074521783272848868311338990051780169207790443005878587741590120231654809480866114879340008717372332757648990066577051328932601323797141194461430857448495217643970715287214156398406090204467302190482699838424825711462482456565037009537642253422436108793758315452569968188565592407017759713260795281230762513119073584140474549858829175508118837262537282811536062342920541733942224786528463868170742703937887199140957093631387850001747462032638424019615884045545674642470567133316941764075265797836870573441162152291563431906180621202057238217745602793859206921351858080376637408146807263317983854796510717114357150235722345656982450146075980328958536647318787033262265499361225998746477936672515208864303340626135985697843464680895038868779077757287423867069387328659557740368065811916664295694875191930945668925636821808824892040096895792548354873301341966728957228397790222913933782259717690803684462187226964475858276449120864512242857272551239748655733989510827631252868212868402434156253009635851600178212251483361152117919868827902249612961818121287947060837406292698902297525337013140561615629465518909697255332767355436374196551800453427994278649641279211243054423189600380887427307062715738122607016342493835002404308748999500048010186505850814975940780486349715358002164310491617770450474814370401259735448515437807879681201489934838204928551672015557891507869958942217050353736025979008663724195538332101517603514467716866524243166040682427974039111088966830484978448541264133936419165966134084280963137020392537946614089245779893629649848071842731146257203918013167175097012536441583561877236635695046184129542359790590014701964221140380029706432277431691941748458617376093994622731514151532142388901240598883308182034883913173964124401924020057486143674608283093368107445987504511233812584011561901643633227288650975518987216931024362807587895669562917505130864311021187003640602689543198670978824950915220606056781691450457494298703897356629081745888452114220488883731173958627658692994644092507544648191665857760115017405539007781032909642407859927227552672530370177734833014836358529702743157581351890254303901113259306688231014587985827285603839668096300313133027801922720615072785162711477217586190087969098271498144404727822955043496518382326274743018293893900227494165245097228643004951477237584177245297524281185503512949725220067960687914916025665263551798098215054557715567826993225296057393254633488860549985507102361261946050753296440614231541593590649363205301934324941198955885436873365469904963401122730439961134301201095286768865704475650654734044515422228846248620640552063116981519058114852604958338144765599586040994414142627898898469412396794151867649275175762669137235369923822310125484248216094095630213468426881828775439948218436018216219548284463392594450763236809309179703800417149151196886404186639572822884640215338978607804783270987021402321955243972792587737863148953158135729902103741886395921864945774835299383583251329286009800735786083285149483218175648449667224908029018986424331326796222586478656036288942272192515245914682122284141344115678167809307452757266560613316092233127966773898618452820673740136957248093439241626712249501099302276303749663742946070613458362420500051264563171285348125434877607008283963177030851459457924392895609069965887528377260675669182410708015171040086648820999994502484726302890080321622650901957576994034185310070483791511350210509572700817179863746327360789986890418254409974389819716282872060910571416150617417438564339019287555807795242308872763620929386606826293763207335595696463276194710134670990849739920530263200114582826307587012530572214879866935046246136467646627535191031138611612847754777960355071399624591981290741979609870399193572504370364926285275568243514772986091791081726565061005226297236257726933400215189941056000379393931471359456964051049072284612855872255482279910514087604427969193499501966913249529966618891736488436098393306492031730918955373613431319773300552903679314599137654011928852606400771274970035180309302915981112460019205477318367983164144357054958857649572188235046050214608733084180044425600873637136415089891438884552874383656398745440400466127992773906659406071345898041471446294943565013675348922869351924028930778841467565123273643595507158380592917482383373620271256278993317786995199591251258208443741688342919644504656524929198703172833735688388805125046520601474683579302925783558502019749144192765604631182261182159079337783107192005928287427879519206286901158204554228969171179030578887309661427473984239289252228376002136721869497668093664682894564793827644166985007222216363358436716100523972880672642058249831348910430495174179519085865436384316474595465882360799642435017524357038996667411393974054881393167845690295128071747582468038937999366951377250040218347150911824770806501139740575615419604384569410485593332712087706717932237959679666451723362550104290557010904689306815595597919179398930562680304044802525181841842587627989562903745762945479244110762305924340211306999703952207149854831021725055344084779709408190293660473984122509403670733491067324012804760042729391485599800985332428513967390116116810638442867527980392247637407071473809550458554375226460652891107657339694404704280980997895218847978560174255310977718233817598513563957333880426757869177216362315466006814946049528727145285942417280115181268814905815328556148535059754288026148742758847305664083521737083083946841601860220467542228384806453879643447030288375251044012706777581418735085760317634212359493045582427953487807058156786844880809706122268408761101123338073182416361441740918086999036757262227833970747499225484838181719050298625526778499605150640775488217804614136396182763502996694611807154241760472103059344244155268944516172143693769456501037174512223574582312291794220243621761011125863380606600266509696695607968254921470329306035717087238780077592437356300773293858662459563186561094255616450829789355115273338335609282685341416779922313652473290140340713139955376798238316488384146576830072775169233233803877694506877068957417231787915701618093248679642851317525551993687235431790488222345949528021609457593082305361664647189452002282711811298846183116983707036211868398604340418893262239125543409099734517375743697267916282842328232289016011410902728191268110651083397852943018593265262045498943358959905695814039805334179324917918255268082708115023546265699696133528397617491853802322328421695391400851570153964249399966067058605371427232865487323642931457814603038893914795785943762996318549024595399440561758312886183742808724226274958502448737581832108660415990489453803606458250845126048896886183238861434438473336659424218959980088654506817742646839812925856973536970689942903744400042803034622916074994880708777035966822398794511233406794919022572497047715308151418054754060677597398665289636203044084275294686722514562743569333932899084699233177514443422274840168427216836556894252010695412495909841087711113694609762945562443264976944880782865549630172204512297065961675970902197939212786759790301326489901587848292895619789512122975011231738068221597332734521359220430454189146051351687798873293173354511671674233613946502225195177312109476248960941703737994090594935003302159136253097064239483598918502952874882892958689745002320221524302742925873745232719987133684480514791491300635365611547841247466154511366025140526207160827490267885435817532142510035756547196532684793091015708906932383773981001759295651190088331985591913553715169135705233681452729306674486127522037968905642549118628963782886508025200922009466443778439726628656131475383528458734393222447532262918468666215710473617303231139278470698030278790496926101585692143263703394758723852324492823247253216806366551849088724569025391705291383083112710998089738697258514536971358073237482934352026232481130468578319956342465258512003647042363912665861364085700695893667205987555518546325713641944227545590936628343723831225467967155899359771170140518273363588572428093996810848377550881216973213788583385509564954475607924247976113169332850623810742304593777067216981105873942812182861098315646748652081524112359701050999776722239269682919722000974569272485188860137112259859078855224473117043662582496597992993975998280780144738283922580252617538986280880517594917893652235627305844347143897236243250921702833741815897887983432503037007468140749044723853974128734761834964426579539285898277350793823541048838150264872313528097594981608177446855877759109809296776464733027886957452285472293666196392347314014718879986675774464929433239559744987927250435063870828595229287901996803863517624402991194613129394051449752845803654078526129454664627325905138698480651836693146252306158225395659166096837042014656394464005913836758297147722151217946645339180753491551284639533418932573429243802614714602048150947949127030159406743188117119895268666744203909711511667373114587845237069938376060672845944094293536645323942329933102200592551202104200408814457126589857997678032047247847588702033077547407086515537145333363290342956826056408623460187208036085027522614788450073739224142358993190288890348679196134383124330631015631761132436287927261344739208620853359666965625120790365920699172493866388892232895246944286205223892672857499184757652653864511305695964416097803947526211932921566801806634299394750834079059396534325282141903897479881378154957414805640158770437156074433295794811008380855796264539512159467763663851065771741353343355100323865684841517095056304574375119369857888275731062691436067295716373438895371670298238134308489095832055008748841736767538095636133563390741157730663052189089730187025267782075005070519262804655390945584475162063734075159924494602201096031785979682123758637571715586965677095286832034102347431683685768477946786694489401397948221549116008205298660945482504932336745019951650408661105838200851669493092982809400391148932430071898469429795778931955552298527775992746931614024483662922255908306732992448993184990350112047057803216690929326825790616809637511510558948773919550764484384089214658709841398242194216414493088014724289460685718487900663509376713933568382836498764531378208966032952758514572817567969132021652404474781376738472424532957064731268230705686491680711835570692023346223378418491011596568943766398472034850069949774685950308941359977309879898966264732533139081436540771865708292782931143420170612709074038717787608521540748802808456346838155773912072004462787157310566751889925914749065899040776459274668627792393451888346078655493302184758005594967472001486209137851697512613825405990845784645162935340995408312624044679666716730851640326949133102609129755312838856667577158177186831301209579078174893341954085710411204144262266599203754540261638697142437309875796215847658618604354072994378206719682680103407883347074472788521747199119021049819755288767263997131708434118070425371461848240513980797306217434555371827358224539397178469757859057759153520250810362471921655829277602818665981305383654716037656177214237230274772608718413898180943832017001895350797906170636089189524200015143486410488717752961827538426227468986964670764732430774523205756554336572428691086026381565564148576072705318815210686812107628651560461084174679553699586271889888152067534493943439128023245690888484966101116543520579758387053511376539481451226429181892047348366899590463864011456127716429927839823439644432919952947075283492115270584389529712541695588336800160257365087687633963147901458163310512252437084275799546039308297503945948239924028231610011682384494933585310885270425961482290395022156233256869929010944125620365310810841624130433998647512956940197928539937204509211907342483098280226073970789701282344618017138321599618324301342731026293585537736283408163971770887801563300284922990990178109334349075201999645655985236876122283357678270290813859134066130570949413450614903636692499165391967765332100763271845866583969931633066406543213415120207940368326011540185388441135736238728210023562886129617980801803718269623370654440192527642798144333035584525410825935143475770468246349772939481171443500227162794262643312006545091977940132912339466374768830013115111847059539241244980693773479316091971241114056812215875987095528541814150558099851172579952751227782892919248002168989935320181137431292847588083503668449642440054862528978102912272257729647118816680739658934546174740071667610063876015560348572228303610573030864614598560483616420486185559524647171062096614066918427946620854212029367293086618810979482957847647210443557265713071616537956002572951628816126931617851918881495036341926240547716217715715202309110067872349211151519250800254380146328521942683104493532296091544287198660533901829239750052893254880940040887210213614313773401916356756295649739541424653378635257333214913240007701615597643553186528071232586647108767330564562818034173702736350004253533726332587964935004568891482218226360865513540776666294859024401955311037227306050411334983247033240288987737229327476412140927393928399336722239504284497318505042625644852942729044786605475288393299321737045967538246728613013178679627253101662269769712108848309548515060337384817799484042928831462671664287287341622057997653305732020539898649014338557791785152893461294689433268526307483831437067231725365265682179415714614069398484352316530281753079845083656772730888485884741774947515259202511091971959994179888371062529285608901983520712804602324943356372674397230209468648978845062761523716299280668382139255198015016244327210580515255702468864135683155195210956312434145869234793889849046189122662633726987362071519739906095262774031663567402441527341840917034218281755426057257784345683887618483461136914975334232986378708594243380695214282210660096981017756569433552572875835165668821340302211344436631070316584869994680457274004431347394993147224107892837694858983537830676027833967812944965089154972336303093980578433945420615959757669895672037820096801330664303150186860522321562091574436742707699946349977071789772106427703359801921901770980158181560372382548347970925669052937015937223701908176142227358948909340618638567879333752796797411064579168193881447451853399116560711123366441443939195217716779164351390863263352030802833069905599380935819257689630072903704588031784755641917784485436347041342669883576889429873976124190304273849609979023933256932831464192829629604653532318953480805985274940357842262798787409377487178795114221478259450679330180862884105869881940592164983176634879715967920045175945006087189800794777777593902524213371155713584442281821148978091690223183986455387821200334938147461017578393339319796888670245051282888919614079388813962720056613386085488308720407060392116059807952602672477225650709773021952896657035772380338021737190620483258165729970595284437900659617348511626509998946534107903233526458688874126359280159106545611546280173121476199018071063437181941689841266000840749983247224068535941665007788849993412936896915760584554909585611943338809798526357709400192292505837034803776299800723623200413347723404992353054373550440241425085078136056365389690044268136659359857700222677945721140803753128440816064395007514464421106998524875798818985641058490610163669799380017820586650858932649544887546670370651650052772754204438155273966364349854079493467820563061834573287416449465411716865973843746020988925395717717091091554557185204428640593187259406057234731772350498135593560662748851841509253734054207050894808370610417192774698869193505228890909877454310286351970902550395831744578768092325185723590213642462785794690275952349664628384427563274676675421552956165010145540334350323959069668821680116854109615771841575478404582195676925235729133386649029586767420933257506373207139539237939336052041146504085564796129517736142046333159277384832100284411981202009169558487133479126945936404853683181954244184955032941443264500489222561025854511571506599573857051337233498651094510236654967774018194762778268312518307846147431925831514502361710129195542269773437691636805068462019487863113476707220307038390800578217851084607280929114580780883760694133293386154379945877321945275219550281868534074570959861947890229726145890438386837308239722461220384648766421115807805009594047712387386901817368434788851029684384865408481771833604528542282040404803059825817261023458918551441534335840661231658878804632793735612020391365606926574638580998738550042676293603335081336446641210161946461232887586164749880400469751034925346581550611167198389340203992284387444455990719634652740141410170675093961596441707125894165747296999875036860845253817148467139136559199875180704796934270664976713224798609559017130894966580242518322451636866109121097017506668642096184147770522985914886491090638581910326744497484705462362984303359127511008216235444507923286643758250046931403409910860220750257207793078860432278619081619156944499725644982864462870092440818194151197862801810617560249247391819247977929079719989833469688458599615841076634044677456724488688164380513134648393696007183901304294601953304735519412707368819650663842558024237194201418928650951576592230858110075160669520478416973007135751746337075955725226836817559366638728304168490936587516506950512321657647976119390539699145851575528843368978400327656496070751830585577991576452936530212803782988912485248634066860758941909823165880800969618258929008029901879445958797217511532382699143826325797765854122922937567970980446353737821758852234147155563387394511310656500064137295844494059445162794347642612341235133691628032666079353596942446980992561656085370541865994897062491631741981773788556777261488880250235461575388983464823088287561655762311873905058669799404693006322233168015341813089953905070696628213162458525927898900740760006372104154673327189825774494929580418342322691775274174275561072203150639293981077323655772117576202851461648412887419386805935576171037632556721827919837927536227027484649578764119964746229793391759591366260320161967676460827800646005655247990371649409641803838776475601237257058104974891395065244594630603386459714045186760593301073959044318425780738497608645341078329184484133870228664812442734817092709953016504461247699593422080308773858425692260116856371694878043704622495659442467744365565887816290944499079488408232417566875004530559084172547534908927407557539390405727879367379007736828923816725402737088075924590509418953516799560952787793947968957331997513932682809160614858682359248201959431174907260963847596579955982742390039820751481613098403257240202893370730475872522324186711226920522441613525460562797637263223144237782677950311993064569889971038897147109617167420695744654732136066911385351654109774592863722005491439367828680681127147116424690978297960878623515630565360239790147164192132788484116052867002531147804436843999480957079462624179518055473580454664629301040612756527130809654313747640530887007380801496314448446931913573902890731007813483153881014046495041737311227604580579591858057444522603371511758073134679073260648621294596387846462025124015283728230903944230353417784942783914471348245964776093736960095950431571794180358333120998282187523831667193125366380814957752568909309450533766345345490034536794019949948172390828907661131472671995468663416988210057867471504292103316633793412378984070243618996068992033290901588223242379699348037811025922715473449359341787053464650090673314612780132360610198015326320982959712714749169413209605956494670655898067793119623792702324864057281349002686887656900696659068124433344623580438234318186764984557795969379161465005355280869182395021324660241741166635828989614025472040629631653489641416741156835389729283189846527926982542443608970806532141642156161704585886190306631911063435057490338005180206561025572741214363329841672758304162470563720155822159501833080165021148899321920557951250808108255752797029153876926831401044732061797856442102175360970015182069430774229319566792796976497676903618048186598027500849001784531786075668569984929186956936399200117435689118293183161196340708524456759087057419116085816077189493938543619979271102165098931980533177040019487316069218310784789290996474662432858302271781321949327412006662666479354726819511333549497647112276507581178492328073932921269557435516793440019044871565300435328908815519948872464234080513537261757648853456257138618951649949156058500166150413847278998096067439395010391840764601721408739443832088362543120341163326006326608380365831422362918957917090945042532133475851214140930746112771240081862925940421328917722028445913954778603953669799641644351598326587082098430641254893410234940148342856617888376245537947484512832796792675671700738975661508251274301474743387240238952758691102501630783177721421617406230675348318610752383157418676725759584854766735582262289572611932012117346725852540796908495421171651265103403619297473714839658408764410573592636064958086116166307381127445275730835997029450557900729284055851586323884099212197220124264756659503857255170167706617517724541852517207219145688155553140237521146458650530029722036659982651201772724220254338469472023397641578496568841183733153348051472254505844672292826387751628798853550710826126732536769110414291593752585586441914417466589891860316417631377289107020945752591012842135346219320921893160533359870762976217474585886478512790972306132929175126552800199805806356649077818541310152462452860894716694205360053979138708567707060943461576320710787975806347597105009092023816511450116572183554906736639538773580327579030693210878641081012842941979180560842179102221539314433159031104676303477630096463731631372054491463823868437091478799129983650753366552799013995922038763632338950403171655540311675669733884669743989232525635967087903065175336649480619157430060307420707106899597936457765970717441116409815680638776383154020791326562020538996440856659913022447683994926805684111562272933472530979185516073249202586884668179350016183377011589275439123200631069941411676685328097270880406202629357883672732964088071625951325508267683712896558829446819465076361235187907289421630548871332673661862658123938009673641046232063876443443735477087178031928858248043134629970485191118566788263419819034249210111733063988305029120210410578646685295891583198909014226886423106195849166560571881990943277581482770138730999328485712153999399012729747361399365458135861174535921840613269840217113520013538956088902603693358044561392715570759048115229000962761529377838466990282944979807400356618783978044439141368315168004037360250246047118159142884751619843713330235626109036268396904337112400556628359343607811356714303055609211675601589995782044141199569587396873312109970894471738233845564880382162859936192535528805833143215926371882941522960132686837262438784823002967919092515176204539533285280370943666237892299523712796451810289042265278042893594068083945855872997461110050386183845191805872028404128251414239561656674501219330895497667509648972413211906901706645336595690213404111544958999632283599842717429671696878142331854402890802462081510240227962388073315673900893438377246567692132903418072932111857028885038733249647976929989247029017664197799426543343162653368954252455053089724953539347457792813680082303892871498125919762027101021273114428679506457978791268062644232555753525162798050796550741298613550228218748326499331832408102510587603164473696186049488141416956306743243673477406860786115858795614968908811343905599784419276333287571780864030631487885358434708811045110469397136777731106612920823308109082583712685345769937538069807639772815091479469404117244330196113953895681035547086754699826725547457107694351986721545514013798819795352971553799937261279477758269390529213322203715703347101053888446342851482637696379411691900082585513631349265971270800956172142831746899931657635916227540505860102806722990647648885875569551612917510164119741220191949991255004418660539931413706897704020354408242713450494869419347799736081080284756729837018262563391549347744590712901214106561469826627565991052468379848105816899171193940920203527133425829943476958790588218808189308678978904774972330471360162348896230715592412663270731603781553256041255761660689473473168119913911869017818908347489918439898251522688213991804305374604835314505910030607696946638836336468656530763754029597602821559107374158219228839602197054936182612526907193924819080393220492294274795660810665015095226268196488077495899348592461769114632119275832323724036220569955819443797777809608985113231395154899154832573889951993369869362749556087245537314684362646343470183188705372185662753325768556056050086886106975674616451352626592682981302309863512498715466943923044183606984842003735466853397984563658210353180773900186085100701935676154589106652067956709549754886254599795597689979480608336294866298587825793369612931002362164688666386268275870374820765094918538355756933391868235407056815399582295913622312863990795145198755344139269692742855092216640769439670071756169343602908208889016733702541814291960747142712952361345844219738868787353939171309514153883108479991467026932358606313198765162307133895333555336565478370382129193653873362879846447564217535102170004496647435813972077553327593672300846242521499286544529933654674226672131977805725717479604945768587624849890693278699093605092176707607933042242139623987022438167566334039425572985960609379153299811554283249201673873967056756142703983093930406379307773298980018532736979421388093297840611208173693331021015832957538094233491136143067160844559876771609882488016179401694073486779404247377483021322967754015205002287909849121430651589897057150057553478435734497595248999107119279329021920329442657470022077859142697510040566266967883961410928034283297979457041427607206552723433681570483020026843467540780563173575848630619791832306574211487558041439276069713954476385407490310994374906238257580705461546631343228503874670941246956499684242190951449987284895927782936433920945916915878712691114533952085139214537062926551249583056130006236096823569198478451050543908777831026157023879154041174115902993367898694290140633989902678347507097253342694378778609774207611196574697773530971334863595545362938349722094207845888540305709299439594942793104935771527831391104549421950176460991591092416973747494621916526399361592869555334979320923513159166612182802567769647352729643544238572007899274394749890237740416349270883770954568233246907783102536052818230085169718013606262954346683486670233560785476633277516535725538371423197783438343807708233367774513317529188855181003460404682403313438977079778220988008750517502059712107464182936368717565005051156672896394327944773011992640109858178549907989876521648107473478468108204905104586836507917758604707540546383589219007659978778896199565145819072764610284223328756536910541317976870352584202932857321085150311738394451173237874763969764698262871823853104013169317927518703860123830579791222555254610721141688934739890886233582268819327144149151266815984295870504641090400072522113885619506412018964587293969735235058993575966710908441839968654013526855872150267388672905253563883468712794913807160010668875879734199200320816176935647876913935122964223256566179332642178098713321897777246628911583031122977938583195348652935199860971458960480328556387620926662616940420737888223721631209355774613537193913648004425531785853858482254431916296551755663321385377703346898589691992970243659285782392083949218585078833593694043832961523380960773958981097648518568794171606821536464968592210708208722826946389770635161013427230801656337823128969986396514746333576095820463917412222743352418291834415276755276593141964466064073165304370190096297245639675045164571354075922476283894055036417262649383801436585805259775606900511429740152672506346237172929175567698404665284871537662722157361330768156153454284794330717530697581387045960701657099139855048443164547497764180564755670169151436925682548384476018284148240626481293354041711908059195101667666260744778276720308559574670736396196447971295552495016769396777254307580077727450103826734185202469588540922773006239527108141403606126397504176025746263333564989065259758704379916674198027911914184348136500881570304163531740145243482390491524719178710166225488913627456727342871401267742321505858137377723907072708864325861200885674128418574003849251684127113121824651279193596987780284951856102108469638397996770802790012086001377769731111896871480268386872180388384725381425846983259945249870250987140012059410414609247943968015339026337437391185621902865794027720571471995922948851211860726456112982454695234809539501786464966663369235178710274374495966273786875243861019627331797195347210606262008783504330841131778130742962735502715485465188937077452938839034971649781365460355123112115928631955871765114328818950735827541637971517540423513520379019007730116274003127330581430057938323159163876218281165727883686722460351776503023249085028543519828447072389452638901798973299002614827115368172241279575397552602598024056628983841835584897240064981025780095874029331488083413025905529013533008450244198807059613228215900880649705732113791747484280967012219591362629160104905008711780259153839124546912778160609576113917285820725021709379656102267643697122918222884050199418471468861626372509727326052321812688188008607222806647252343525854335513335126656843238542543516769573577948177043531136320590727317379431199520874013312765319923498014637468428326356267878556004079275448949561520274167682230721657584450512542363623193577785563409564660317214109615109518817695055476605635520517995496610032443887286319869780178047873067391175084274609173158277251606942081288893606904450925515753283394202794062241679814321655587555461326722498532567045282922507874197439022512538736553377767381728577311745454379717162543875918924677446077194398967940361267479685614607883562414897813931767343269137571223686753234832273414792987017742229747456227942052715416701675143056736086045449854140991167296046336661839498528994118149491531105806106341923247189038952013694437479553069433970119361244683230761795086490347516831143695370513022010387042090349556644990282089307265563546237388192574639070605603832873041757478357295549584000363456866426564826020161072274883834846907791499778641251000471707265412995884528976298482637801234930187606592540657133728664231257814430991857414684379088784019872399643290540124448796080721806432097858712509039261673139164850130687810522465746859449008178056188215948098044052261690087448380083061918467146435486271002940378452564899886494365795356407774353050939747262262362775199663582748477566059461382306220764391573878765054533162428960632939284415170610322952272381836314952695208905596028201774948216772463119344598446999642739116306110474267947230451045363707061930106797667290722080028122057961650451783679006024254593380883449198432409212838653144655511123905947443034803277741610302562033166487088642530265911112994738800311835459530058873634854827582228590778349097545213218773820937620793105403573787008080910811018614353519656876092215048765816568316780158618177606471058537146460013387551727904908195579192278198021249547908182489378934604129785485970856690574708221892418738465203207095799632671175842226485824286506391337137898440567710204948445784253220451078678089723517136715055265410937456445808811172817180605783220562319800081890689912579574110020608259230633239330663732620438033347072125597741043785188208297618001543086559104980622567252992673017530758034042256007992343953970259385135379666412564438795935724794475720462646848743461891745174593292336804200726259797359878628306822745836987879951271386087440927581046125697246546005391774747543106545226651668904278963433976573523816979067606572523004791932633978249819373965290547480006937996416629507295709456047157417280961432103881251252423993499086050689842644233889201756961759747121823847457620640382285708929576732623578395545999925464632066997566885932022471794768359489108119139897656741223989350172762943492909502262816440878536907559219782848560025785948337382111616789517183133226996063829175714591033306513402563452088961731109158621794036599600817796714845756714575904012578204185163669718998917821380633066906029752817819088606981514733002606594445322310124082348444624769975593212418119815449995275051549556543713089175368673313845244897572424595946904600606012751333414840043205036378793380473493691535050183877146479788466642445524402897852105820449991409586915584658133936808046645024823536276941019616506658041272245151432975682353807889892137037212338026948189030986330850339705256228637557357297831266239222064963512909393362888784475011311647898165321461423179054501466502562560772654594602142398466971733223608098948719592644403795576145971721902666563369312357830143082760827590353494987105267133567536869510774398757187516514609728123332014529402707313165676201289346096588906310059642224740962602624689784640787347883342929384644741444323380566640061026061467257450443646725180240590202514270770349791371750410279226948618007222474118952794438499584970144514186974611136819993526289314316935687173181735174435315300142008821636789762194946440817288161229066027732944866613395525674332720430659407122871114705131877653925080825602458241148697916070364246767426272417765142521536512375434182868629832483559637716039370810442302468823682503572490603228496232745574117685221726306755018880054025204998832994284734399609561574913845936452964886326123847809828147190586899519884540570018318069967532446182479083797075688639473608277671443290212277306750326952654330681901516647016648677779736491747375195475349186069486680010950400696372533139772766075214822813428239542776570716897503769743894801160686687815359612947902519203771786255708792969786661024055647863219601004320886362922960084436273929933567186856732147961622137713907221462319100525166247377225049844818428278978183869945174910978910687939165319979571348397812852589737497065531334365779989058410919477969109596019882149400236866710640858109671541470044579051444925743946885741041926318978169509515965396624724180143924043307706220582959267371103953858759823187616016305483924489352897461219626587453578420630273270105060247809050686457220508259282567064416804682035758899208779987934847851910061258689591180289961000427063951453786750135701495944722457235660783750876754186535284328060716539694503589468919235855692275745311367098117733786634346895091480932944413876608256288571386424219765740010254240372779964684444492049767686314339430706260467657114098973296920100894412391970060758123643915101124134822034659711421407350299385468975961038090973405368465329822041247426523470642611588118037016268931029131981982119608522477349410369216365718265649536228130237368967780877864841510614917943308489994649963154707162423167885037869886003261134181609475570801951148229639340521067736746124536985250189781525784100867276891842500284891003398555113044785434268169823286060314770152551023826904695639938289271701276398576942325004837799473418660547222408671510400039613012414546721442442698799260298072616394602663141391034249632580555223596639188547073901734930041377557639470539839440239615648035788620838771828434441604649470870117310718067679613165112256831798305590583617160674562937133096469039297627168366362880351764725870273834616444747065655425793860224969418967935505011971419728531607856203658504216966760901971172391733028817528232562678352681429117331934750696506344284923306054182000392949919299362302967328825172380231521263463463373553948080546641661873774671835735505538754783856369709506369063241587127194749475439350478751749070800825894180104201093204323743050502424228980530757539451141511351415536815913257501972005371377778836402707117864951406255790428624155523563270402972147324445869480871286822034998791286784954345866173656231749433996087424499845819799897465421848944553075699774439932594763127067339666545994112145044489572842777412295669763394088906601983785526463772438065052079962247643888445893096560753969796669761537724638199359927609919613468219575137541481842479973198339640582793649418173550796899707989351150516590338606807021211040008305335825814252375840733041822801071983039030846975739465158214955399490283829288221409438432191103078488456473803863804323680687226636847078817472626315585224289633437510169893943163346028855254387389803068399612575341330993567469617089048676085554693628725475424377173366496064985099960760886568562831127124329360586160283169660349294863889874205338457204948741040855494209108877621786233031502475676990663259050454138459982730411163661770319978652295983081824499193248215905511298639499664857731480641001359780053209760043305418041776032531351496393952268477533206409567652097654598266619953512968817837297686152031792063156372742111229225341252167849261511574011894880467637479754117486127448557063484593140591393351257630417454202768985379306223015202081262793028203777329292816141970254645292077130164991965623292403150371333851243478114090037140623309855071648721529856231429834063886960035815050904509844749698498352064269228756472592206205443942735306632820418521688258338123445658909574254398293643509095285132651993323394470654232060583094855022164229480868566139314492407968888348323558371264299354907504523195914723946617041997895771788077527883307584198941541920582587207666555228883091747964557608319859700800349189006968616684413335035693178008213842537704221369380004941967917430370247686870099375799305841791786784561185463877107306497645247096231971766591426981672818143683210667683274707147497214415515746191994207632692083333200328746134452488980101563924375062823375018003472441951734420617380740425957095934339691917297801603948141982300278617841646249832853212163888064940425402304237113129735335549873923689231577068271811043951355278151397502322818397996802684920211543000138120086120186493636201281990011315935601947906355716868085810726091765248561795087725940721829070161538815874407762203340519231524733902076198162246643545263298740979369735506702825680320231015993800852207407316630943119887799048449001281468502744925716942936019034223763786941238466860324289079004621262619162971787397952946297855971630705452100807344165883833379733464707372880433918302970638258733319406470456355693399272444720780277516255712559632468757736631408615507297466425824025476349984246328328043371276641508158277961072830957834644522306697731259273620613093088943016516018929729803617535064618094689693015564701737074812920181646998962520450990283402786969718871672083997915191694746202804886871232695270810023960335645805323607759160636802095759073975642474055778432589386295629817395952996172498838147005554944936854491873395675107919103132392274419410713617638038626368316143054656626236412711338829414154391874871717420974254367454481665629849715855548118829942992909152968448136616741195920298473155799018391101795918052102991827851999929502907531458226116690698049780969980478070065697082447041872135819336343208975103743447363561876403238457980616626216237293823144596774036333781050262873564673608480056727781900912702198380537187686148263665334874501487194184541941206450728222459579499440347906169118981678004629878093320782606905073296987771564400378812037687718181933648027454743709117869098869240487343075937652261473545149361026598188079279958488170044096102166394706254164194605578250115328084545674913759564362396788300308703290059666754431655218141807150263544689030009351205612383066270530717860485941557259938184945155202067794152536768652117832366995657569948221941389590907958638539207942109447996025484199373712936434911573820716995142406900216263656489697995620828084301720764182080634101299327140070806896329515312119386108492466281815738764785707193584222310114723892446261214823389622473398658796592528598253060255960121791506778242939733566201580246771448914768368798734234218533293224610121278503000543789634408778828463576726500186354296397535983898780953644621206867947783164308467542319668322593880885216052427384908734800310745705723050935685743482525243707246063593676799439313439251104488610698339904510484436926751199375897530595302345225857784739436584783765605374646649620591434437691839901499515127769840559659132864003806905991720216009486662240937105055384079122196684078849668051216908415258645769163115851456383393996064431692749098484139947151302490709014074669569776950452563324022959562442488017795208759368967369706327995379333965260885255607894534432645434563761024696648287295472065971458843043290601875095167095556333787533708449014052921137159662194105489215712541358354504602542856371094008005139052700949328176962951711371832091045932994478019132080515966416391562609374436493662452590257409018266960970122537427066485822505606989110928598577570384791153767781987883102434518974094639391956251065122407138934296525322344205206995109406486807182954603020622482182915478601512336739248975889818851629944513236423509861251425212129750183491925402947016347153895350758453581065143245073408975769518383515149146697058144198988726825504192375006685884422993793338259552916250430310890604708032828366008887500192124880914797245150350292586332682163412767771975953505130699725521208597522018566404028078857873521035223078899164657308319583057680643904028603839860959411774710185491056328811597822897167349243782842724786026530066552730077548130212526910428519471534126942782917209008825537237416586420735874722772621160632692296620661310398664749201369754442208519772858050330107929274683853754076204490141365953231618215994793589274350270543536287870434970896004884636936619469077368188109473039404025359503235038939609951663779413625042298368323112687069068754239487373841388118424443027217181181362253311388888167497014809659012444169076628702311036751818332273712174057395258682540391632152435416615638779381620630300089559145448698699065840660285446895653288004439238763811291776124506508896843973720877591185023185033702694309184797034520843175166694359012952095802525489411857794449629873147914784083166399001411494742583422496360283520327995262468422811391293388260418255660290193767045863331958173763376352950464280294846479057776711305298337970281221716207573692092102717409292958340451473280672043009424985027121526513939664419131278648885373830006002471684357415196376755120501487742634405807616490883193123830725041460655202618254983868473924745373483449609359866216306185837609235965340678376850460549062256917258522811468734898241661462718819158233912150743967614978238355763686136107737968811483794602867934545983934800229994753385066664316156677818887749105863086030025941636314830803953958241413225439525358027180203687145471165364800675343651641895323236537243906719608751925597738972907196550263013414870419220717799221267776527029425496856687440897046451854231896930966884394635103870979632422297734953163103469701436474000869161200334714905458189693878503244420325165979208049187491750464104511277244623016245777202804755259150284134377656468667277161870315931582559577095330286637953522378569611524161508927521087259262927436732823805429827933300852869331495407015905377794744543341950251096047834368902984719916789249466776333492287852031447718116182256839946939735485575767898190624093992635321465295678562392902924444873261868913750447972897377422460743551021830366879031610288886062367025832129535198706915234713683226614572186140917258827425828475267465307224764703750202822963274988634998772259332860070484660999371568995620551502028996387515298435966566344340209732448378531878271871283349778806545391146404034992888947703659099725321874059179589073366081337861659201662438437750589858325354901194895349750917385005370786457036659191074023167469393385751857389204820020419396666382666636108704213718482242728432814890321400591348300969493284711666831735475618519388778686510093005985665809233327419961867794713451998322995993307546266639373028269117983263187718676652337417008467596976951903712155348860327238538161044338253894657769693767400322701981287933110974139148675132252316465687663669690118712745094053043536918375413058811684271072547333367310047290988134334933847835821860375283256992484889119625954600069750470610078737362680745423215608133248566586423086864395583715633356502010482702460981250187202176467567030922911119400503046799765267211590588370438102920161327597188678943484226374706457462536964480694198865423748651231513619767359250741840484285871260489065515855288757624600240117111088020855428138171734129663273169645411655794230773778310496031224921671656434787849169045165413991256471019296534359364978797970006258157281257023170890144038362980486011477993013934038401223552540513358785801649165311306061737227720424922359013662818962048083517318887731360920766267971018812083682729717715609644970925344305589448334040894927715173706411703559707846431841541914581992684776068366155271688155348073019496806192976047193955746225310283384827311934220701644284323907095111006591430127343750127819719239624037229532473368518689622440561300533175315240406663248607548412681560443636690231983783808761758528782319259999795136695089682871980624139470572326779366064524111286843830289086851855583630600041623357416077845661559407071641179709956299188220858473442570046463650420270238680475335835326302648852921382893956907981640592638347027274730056196824348626145927088376494420931763112832434788255704878514082759376028697327650197041267155348740249082324200818734806422130971365301238881369008440688145723420330374427882175425465868846087809198992621695566801657259292159578514127317491981148365983304822229694007384545774732688151190034939976559693477600876559838623073276715171929667278324866546270791815704122358501723105401946940068352863455923256052152824489449036262675110693062109078739627359598956150595992924643846942202555319467132854764685918423314446402804500474847514299743324495069760507789244523992631898471791329223330203910326204393525743068951197901901555739108491122108793358103855396978803613086822763013762777508957163850299374131263508022426417483113116974566793126906650472810859771953875279393988652042190681138085649006319544672554189702501725617588563835955136427029157758126990173448466415207405098029423040145056499667868324787123277709108607255739925611568741322087209395697925897304088617507575166490606995608067548458934188287449890689822486972683242966623069637089436481912855213216975484795705292272231540727009567846798379960083767244916090748439075363254122120244676719078876095403997718757623902507119058214219935812853087641160786746879793852226054058464824992642019401937462950357158108331397631360486992915623784873043685008095897936822462835202564297991136721665665804727942404983897668348476367657744004788417971150045101388986116014564934566873111462251935626868796039685236719290334577701821937128159697260628231702852751770989179244277394744176014696390233048123324325189797759524960192775013454749944818115619525660972276699001329499195986812764363706417355854235927564291315536647031109155503170298165136428666895559389485560298347627319934940513915817889824160826743623259845735640392809621614642169362264804741862601963365952503088010879800888585845720419456091901631888805840616494829079562843625986104065899386760446062112151209688817159448217983946326307134621172636756950954026883384926950346189592704449053148730583595013244428757842660855699880218563616575053307994946037530040638131370646582977450639585852567955903869978419312702048485114085159883893992159631631061776089034076990140322675803991359580729060040947973456849733681033252306555065869345615330039629780716815287289674103546798694355080453793385079725997999081193787703081877295536959648686831801323489649155500937023357839928739611525074370555423786502553097069243004129235201936013626543184021821925266457604045372445211050997448682279513601112720167343260617120845476370052335631304413413447289436519049930236574951588000511687465729160245865100916769380120007514432160084861506465036097841778120921509757692589532932953258991705834253421074960942381714893131665878318857401068753900328629138430273803408963591934099158936173042969980920873212404764423578715359925041178110897636143048245139937166296982277413182044605178246509554159578232964447622792598578329491853209224844104104564526683650391709008794787743051925068336868404555918487762932911724931481212107997178871162910639852827503095323998714379971307338180130341363273164762768645664064332311121631036412727475859961561337700479379199540231769163484715290692523832169988346690943113695213513379927678899088344398385776004355537781469088340907854837940173429372027346318642243679533996355532188336249428229380658780767182624564898095416585459264355646449451070843200977992414665002885410941040637825046441345675002857374928151525313607271267153284932380942979974378464507928450386811826492913979747738323623466030564810419800678469281282071858119247863563933395032609442227961257825694849320927506083352863013454298124732603810873978391057845186752018840980834142016779301107021913675720998789076224701899448046589574441216260727330893937368591581551221350104288358033363549723318157592374063894005264634676011347457070419687297529640493158021053418604883013870390149329562421200220509181164863256675296162683113478130950314096105500316313527625192253070402411561130860858466359241982714082593080365002922147892537287234022904215662840625610370313102564777445182929353911613075092411001117885211891852500805585925206509995385264715291240392342666415680985879711601198082375619550104400205444421380437516614851750516449047228648377627386324231075127440105852608803068517704708895600405119051568906417820460515990358796833057966487557043783246228015225804912191363551393556004882461068790659667377384251277246233309691408305367208412130278527007947499987793629431627665029402913184397549511934428191135501841391226686511504919773927292743082215690460392726442045114388006186967719887333840361427867081294111724985912860504164004433558113518345850655783147266745591651939276944859211043843899044602360902359230292337666716312709379889855239444064817827575179830674750995509827309854560427021340216041404354349322795944550490718183026282833706165413944718546376338372905754387961910710637679185037716792147426893241909027642208539744908150238729676579676909445732036198187266851845036355283084405453520988904091042097004562433796066461482262116619672093746401496955961932193869110283737348029605016393354064486901601980920174536009860654439095828663290213819958615231090927232629910586145603253783212448829964796631447419385271197004395627189750545758182475576306325358967379520365043323733591723819093225021972273405298252701463407026615198439867870903081951701249054745806828428792093661474570606297111440138430510129568583642419593950762831757167700096265415782585905833939262141066072824182060870031868214791355385172482122678379500595435921797365061103352934781507269432546654689569391669421365353129296382531011744244132115031818667895087254486475900097734037088631285496374037765622831156594887148307533746544353005811965900284921103695967301068771737529557304539044400135545581936108508803339150650053063740971923562535628810701420936200329740145635733101101887815121420892625486615202473342680789630830231970675762457920766544714736658286561896295709184375332289929176201625968811762429260499509066084722962438334076032675199708518392718688086925989032096902574872855201524985749918823913495913500543678765305176201424038031990922210395618257403738872228291772736029631214329031744983529407355808154490671254069802344220276969278818918474238944908495855856140543775938596751201810062530140014229482530944104435755279891880051549071665559889665099616102226789099632762394960542989927960388766537713396637568586926924868295258784731547840024672511235899404386165595196734103299128074583906962524824155004368447928356714246393445378211943968478698888457443064526554146197943289609277839496628502283573179258999757957902536191190116614670139256692496924351280835539540567000494495437809737444232774673784301830497085214259387794349592827775400276524472088295001227341726547196160552442711199021250123678677578347749785766403293737936279549613709810809087653150773635445073145121709333375305245453279281348201070375119715564396437966066002406891937211772535395331426364035251761056111443644456369181296011688925383418409943022185244471474101970461787407328415921445349211279473037208401392747517431274174669423086039933508294458422190368686434878327909726975059960281196200977284328830964794705698968920233777714416704527218974121106888733397978259347885552004089671671320400511041907979486982727104300676827348554387311956929600834585028064848593002062693864638637733281821620360009408334179614050108021633117332320630016305504485551217348225036255797965902384310260580090041470828924842430067004548152966548312672361334787857511651044514385549295220962051418304122037224511759360579115119201621320421887135119774341265581913879894193591428840372307507309576997131840492585903223504399448288354939132694180065587854425298763078011579011382359729965535858762178632696246353159104286246151992587640312774453323718048385406806002211137625544599693001732401376403791080913695894700850785288334436999253020618453701884802981757612264590290763803813326946567695625360269826555288449022685756446995457797833413298929441722507553193600009317160950804365778892635135560850079427737897366404501676558540233838276229176760129470030149287885806388992626733418198468601940015537664744029407308296381772426201084613363384136240962937907344590301281160764202468217720632878539897693991286038367488367242079622143095805608904022030761257424097933581729915517976524920910246563116425449918786928480998798065403802170202930580423371196280934477454780082509999588291493770754898792333710287401445482216769812888044069930166510119965092135957662605148090826758928326442524178369825835150964319362843718383089558567690735472794029710821998668370360012143103202990498281328609058076965462185123129084314788976071011429883113037269567636881505547127513411872150229062723594340786827011299908571091582277925891938135946684936486887891127912803468537860125440552714054589355779614063156045864496384628360018085934063061188381919087736711766349857398375331269627228685147442456143501835534315346302545111090547572037021836371722876083489696221368084763626763394908397912386101059416110013829731740805754711598648644523052829300008274911076447680068617358590372644978952151164070451786545249517536145127600238109500785463154194460194400711121075626880971509806656948312920251148561532761098779633269214075492846757012252316472261360194326256519063790480119945078128052102807078002599332349469285505518641591307045218758063938210795141290894992540618890473316776268707196520775979294959110178352173892905668597709179391125869658766269582595937511986690235068160599048663407606633136005274580585182965540380277045535161211847453265670866346412522580653974223540605150324039445334287689417723274249324710828453355605010251012931121444530116718983108322154826019032225473110303984124306012804757180928768693665316476213403639506273099345798102232948499420616235735202047684109983988714200097189822921390620766867459499488145703423764238060913222895532745713798328381227219230237129086608287311674360703515553475453697142931097813038770782200231354787383466158280378165287835005708047168501305532152185961236889585917540624425822198063235444174542335634014848489337253411017799333889014875477546443897079639555788421962552336277882754344824526438918418477419694211207820790785378117150130108268509411646244070400082314101661509531584670737926308981313341456376273701637500560809962673957252480307304232205394846435936243956162809268413543125280091590212179903587689607308928250306656861619892219735311758619930466104181250407171366131458432007219946543183541294807958543140068351438235296870067356430005471139709477478200918117800195583591098578942756913733659049041259906972147763081189304315551830997824624312443634510332602015135544079434601202438690726121730099895081254594351939695851587275079910315853542392418504549981653417807694324581040078071053005634536171018407902842631779045187028914720480783989148829680567897995744453426603131083457771397125858680634967167250641170124347337171165108469104539628076828933555768614929487071032398567222801174279092785282702067722673765952817433677590571764650604544942410404987670441851451065122003217262953257995096143002827983448286818619093140310968548028121483983404906059188007761825862879662702431245848506584456309117445133788936724288203864371445424484844639511622341938419298203898117597682282416146284781305781765120545232245507634913688736528604575335630627325015702256697572068738299919000070498391904421019019108461239830986968016026693831620031513913554441359832715979382785281328618668116305201387058361470520897027482593133238269538765720974996914850943858931598256838323234975492276232635202476776877568492296425107448262430703385112273577427809119695537581572145050622465363095440368745924589064112452884640047757639924936778161135206748722377582544686786992601243372192297462948111723701786706426742345867790638712346910082966252003817442862214398657366333341095261550340924030171215060382688319315500061781036070032886203289559304780543195758136933376331983289420225705278274515615124722769596825207894916149036007228581673416609729027018288990921657715706959009113471356548648794033373234326095151577164390384170059695841798299652550156300176200986671246399471608222314437407044225719397610851135116441927024887660951314074475947043170153879703210116713082272459517742753891097974736904473038016615042521639647833244958297232201346836704836234555542511594495417206745082186963009981303194756558538983730245099550138253588596456231180577716629769358036937719247758542264052499435050954468484575907227833860314663336653877490373546094197025152819665495881864389383506789212071459766252052068241149728981852766693034344581775756198822488907817751050985032530123006747375003474165900931016011257592880423544296186748088031610242354942748644169781430067118024659639761448164476822599709445337652688848218122026953073810974166331845446457796999484450499503400842547468137300398453796576481315798409171162135265765770356473535904563269774493640401102291948677722172001631741115703482516859633896771663052060013959072846354534379821812215358913817601664214213851780220719601301804300362263416466301555312047711012952243995129769227979193003859880078239612431073940578261710476815009205172934540885831876969251602162900531314709172911855960633753963175088754789370476393300363126730874273583038722464966993110596614398616150796064700899803434187782083868932802649888964582434761548606011801211298898289843218630536674073735857201256291443508265503075290414167074139062686726263500265766219941982890090682612465164839779545806487797335722683899104915120845432014030853165642282394311238324310276393272375505549513481777930060347760072968367609337953640799265332736562092873983448222614607352731322823947407272827355420539393398857248145453271967204767733604038854724786432567306073785790442814708926623543652816471649471598056931765887217734743891658649774916581725456695670915049179277138022616954668504735352479436062653535221786572892912475586867552472657548512854405959120891818544083180945944462725688874138070493927907000720395231711614788603035547525436922221778412637794848782811607719112297212480943926272609801005375086732000258074806767577031876243011899826467326916787178132936547270639422075760771419810347232727836729350590631034554664072919305797113133230645734646231302900065115930321287628967158783019219321868995927680079296048901607257105197005794221534626699653252160719328881315244835953943187762833718390136685388613297280851667696296655517559577996092997684964197761514286783927321829582138962983274223258763642955199958164746189784361583900803389914549871874207230299026990226034614221081626162126172803063347435153256543613896608416527511868848932228449499097192843237224966065754270744020092312275130843096851812703270804261990258833077800768361957582006165236080181577906556216716133735060341385558134530375869997617871900919733698964250180850555783655213777654166715661080264795865975639519581924909016297590387234490235098878312273721360942923045331390907196778937631352727717623434555735389954905672635986875293408501460418914323100577443648340076620980667277698576242567040870735660006336876362662596390824882002131631682605796097577733973115753361340874885654218180070618942070746588370825641880879215101915093521544293512493500153744379394015721098593364715121685154176982375590027222713253220704185632161706217182172885015457096484398492621920671981739942121518744190982793040939515549793948786744504791170302642320953224412173886305082419784653140614182650369838352471855099813826640101359291566428112479267092634772928322814629706617490950420414279298368961317597951521168645527356050638822514925241077634771264339545091545917256591766553889187574029442795148250610635761700676488949889630778285250485997911953759208771408048954348669830744679255549632771696950460417264477963755089793960757797897783858291356791092394266274371182572107735412516752613303168894197340096167479251960242803511015534553648996143880482297018056836080599164182609403133951216086108786742540918692518029386082001341169091571355608889956019352957434002578197238174953765983450074929856278545698276526297646468366463334891598821102883222969274037343273348416142435812902264022862669334547280358338332461118825375460597251802973197617397874485475081173357545107963752822579741684700247533653692866545093872225685483405533381566689290221656629285582513552529583880278599563406327077171755136277713846128305640690725118807490903516685043944874279430952773351766277317264312229573456798145684316141344268874017569151458102968460150303556481874205688698878886664706318454002864685609668430899113963156081741134794266862779318713254075863394588918208696173723239991000605578350280376204683777258942449843896636919267514077918451568977407611659458424006128615232109959685512342572449412555230054877478928810786314459656562028797484844388611047140825574379070462085457751904959149233452297259013814708877164789036325181505252846255719532621133311837080156362970531052405862753846915327116478170662442733062891209296731007274356798942846129780660457249566780854203756151936599359684597969347174353894729787555213090045704314892695813938963405548927550941474205842320949740221425158662902838568006623409699853996581414906697513594948856323099000078220018585960067548646329910882132843368719311604471715498711280989740238451115034062970961426047908716539335452005900322957003827153713594673323887055807000730128038000639865398893519089322017431372299159033178571052735914760700454873299084696120071626609416671114890875420028910024912182330456555860728215063592620339164143234540461859389534290238807218301856690923501988377641783481400639674292600763023923130481782853533506570870175481976737300554805223597090143233340294827857484805648923001165397462872934085036935347679215616084281578184868284581108532335197836200663394549361879099238017896230093032209861423490670283039054027589703205099526404915796784963548928071709759675521622339401259617345384442509065052990891230612487147557435536085034215856127701354635793206660322247927526714343504887092874664373489266656123858294531189374866619371041970604929317088423495876202102166344100040490322760507456612033521036592561662860263518034759837065573275587599052194947243964038823224977310520844251921215165384851017177769202334967748736395304536477942513097672894121236967871164270364023942811174614418321656981870462777689589251624247689807556383152028277321255131488918477336947139924537250104107253467734673237590657699244908999684942517908391944998007562946169095353807426859685238078278689568205785898216092630729448242093330471091010984699641606868577197544577328829539966496462081934397589005282323849780626305106358068743611543571947138684084510513006718909326764296500690946693732432750540576816218465884591192350198163642299889066117285772590226809875694177245773955286666801810446961934850436919618953530077672795089161765889036769770070182472432627639387396712815247541362780982240528073702830430521208769470180023326413016187270915687416563563162716743244805610861067849183369196323647247190817625615266009687454226110930129626310451372275005609959789111911668757568996146778580209975759342093210620688526199603026873789975850010980710863985252704692291046893415456943409549476805731155962420496332339846122389528222972227927956207503444945943864943053409973763318811989943690666807105203143506556898156796891927529816378606327907039132107337048959078608482043387006803598690574470531099184932309377162908232325895126468986033314668732166448192177650436719012404933769519559303814690961638162608209307473452332078052411210653200347082118187410392001965096959660343196649294691573362999508038029716566440861126826426917481195409649676289171244398068278589241508508928103306243805073030201471616713320927888778038317920116780064593050563466759663604085572531504648535237408629413859925193209706270647686969104060184245099753972471578272142801261316348957721287559950819413285417010560492724426437000116514359566928059328724664899031155090876346289741000344045572922734172578608080878618901650394331159502405250859516479644540728549227032502237634650445946355748428001357545524604573696550504163103474868291803721612071891034210429164080873683567083404522819438509879368962176207602790377962581399891653834411312298935840952212427415074730672516592140242694052054384489956482463722118528475382938255467909701962387820886360849955622569805242197196849939297780806389190818444029727409168149853775152627349350987534498882902745034414950668857417323437967520679981715963171692220644662951407227522946681108273773397104838470129220519562751327224329458339286076435974648589165582452930439622832787066655332001229909984958483303591490106929179177649844411059644057210440948771665308137665674663495152253693562710711285159991826316804292740087779576500569292951649722643627367431361588982602324917141813337240769161945157029695241665813422797613684036367577266422153185308388130861851813429139747935283123112008145893994536050960633797963807304671623182074923055189090614593106660185082797157797320424959660649831742748648562689083891703655164082206195595970382124670017525473489267061836517292734607820197923190043558490803396107227718233331999023706002369758643823869970905448794827979340221010888732308421641910265003041334204334849474692919469661295341019875520707074733749782909899542054957904821973285843871642334536947487412632702726414730795506587437906904903484564929586109418222085113201638157312395240118130730643833792257454924204260743091672044726231320422123499071434026485920188835185994236676169357465302943885603307839861726056857364815390534591085845699831792821038656555142137292948148072134312811050375083736313865921699263272092246871557036637151684237632217721730269167628987666206918672767456699974359329484155659744909102819538526087434415465023269610218856300746523967548156869371538161735510160539102917017198880224233789441568776391724212160829958070278326852151991335103046174445190369902202844304411774408463861293047998450554060715841004913619233407362968798503235162315040220749921194662718995227001769331677810122278658392481140191838077595974375757062748085390193757938015671644040398508357079101186089653599904078622075387421523290945681511085175425352613044031984015582877364400051318391169465628997093969546400636568602777305331898537136158640260211350530483255664524513782521654271197145684650159636710562368916013830116819396498764375136095235895683505137703634162838701100547775892027740330568826147001527357323714365036202424641606819548362479555782056564383147230848355397521377132779257426676574311908202308531409724998230716568946343768280482019808283242286950922049217807547478377624884305124549039224851947838706057749778800531445456580459819590869745228480947371005170171136326162173555388666944550939401893777782196685767927592300336998679234396637202031869717823047986541441390135786463540175262790388249441280693953040096436303327904362056494353075131059847706316710379206299684442022070392760988534732304611896621807311767000105893275229305899595922288633118058077783796106609009423226827778482536240013672223963078721000506173464406364131871689716891224795788540839730672442171183748273758483525555177819024967242995844298501801951508378920461539326488998480962746795485804693361155311315634766846375891128882840666863427069292211707791136487761955167211301286496117741932431890630064214248268421787263332939110077308230094067668187995490055103626941202983803221706945228425263709964911336068054743679158198428962515056664477533707971901258295468129696319307255368708793156952475110988760010091148851881008086266050020518345475471491579417269174381340742789491233731631387556030807731354121030579345667716962684194519228894693414891866497774124234668382044619901085206613152819990976268848989464753308450419468964944971339286965189566187009800599801208842279848433391740154280194890805705208756607864583734758444570795132447065575140700539828139841766936855601027297061927961508503424833369344528302452260265535359587457432624451219266994869996736248903779390788303110367903007418454292681265833415130314906138288334647401410871664359976421705864774824543741127778070666178455140521235298005479070990493829859852846325063846954197867185883399231328180222006399604120601533221361772387373509437535161406777726276301115636030620140879997282519330050556633099868403670610460767633592134753651035413870520028435362733215186051232743995377983081976183059382943292528066423763203765573745026961257051732062777356329965854405926196427008812948357852360077810430363315582364480573581333041726944765917930685331058110500758913940465617971951374160606379602497876798975345203813128009566353570207784423674620004225749456813014119240525635035465334065405834116851048498213160016793899034847558565292786725640558103836846697118096198399640407556278931178905779859265477484431081269180711575392527341286261335706010389560437103424676650775039283435395091245160983602952647139594933041973361461460906972878786675264406903665770569429574342441535004792144680514126991705994453502932596878022537690697000722134815473718749860756185581473425536161609194793424004647041201479221646825835832218010252984119142760185426804261941150026708455488025195286654774021018874085860935218321341022315450649919922971760245839199708605573706843889477147688158306243535548289937637444947357380759088328013262757296209895317874101119952364262610433211760638677680709221543749834743571677572034208162069753835952596246657063533717166802052039135449312666513567770679307475490178866563396180349459965777819690588517530521060226250006054004110753111814627651267747768176253827112162159312967430447438776814418968916293191161491758566600539001033741975866587050491527330097201403576223933755845158413018580520117544229987497279347000519418142352545416585063707876206057877078074452717779851763359937180418336252315904774033808224014604007961443425635489334131450341408334052518608716663260149892953673122677164439970021609579849395363787100648407733324036443576621002407467600854482921530751718529736694332168572632702395497686548640652990235158572549400722224750930076340698571390364741505404548603359256423032723413244525240562857173089061432408976136589072064623158481394817853047254336021819666691095093093031370733388979512425517802051129341674195839311901451890765972433348685778437572941414881669849659385071576525005169898693777633928567062606324920111631446373508529678617645646088824395067841937509114747066389035088254817225529207642026286953858066361631689163815784070811297925835301286636846904667308693206421841412535719199836438333314571279884026094710499156572821573357265647341784606740696437403853158016961521113959147929986467720948089919878513420720010716571664893588494635795786304760709218550031185031534928135945562965391539443322669901646884983327650474463277730610538965473797501073785358319541526877236641460611686568795521364875487850019361161717283471831894158018020432913229995609817968777995540390997842753597061214726037225622495145146123532918028932621486486278372219588385386211824186470476193529167876238230596321520545126528111625820865508176757257123889569324740701927673894635125388769980432028235515772832966525188400529840108437352519698177483877214887030747020249713982625126419326714944518221857976320400673472016380917864239587765506868405618125043514952386346533831869145219391973353027334658282521852863559001916076155279846105382508759227759110303412108315043078892453450224063090339286091029396854687000887763071457438135440688334919735920051926687352110716541634889832347920542621182537619638043272507550735303114153690630611388244984444558626398882541923875489916802279815086807154923577874427877218138103268249291553764032061242269978114194267990335248118547350528396821318894097868803157949042090393495554531183441059890335590611483016791928467943928486431353097539132016736026905402157963412980953807873428019164299806464830835509381561500685717108768513569643424630526213468253045238484682040857449611776815208843841412194363412123030442826644852209659062815547373438330476192135531496588400711111020822987747686216781280712138345219814008119249906989296521851157607536925546534934962549320199158404400500852942437936300969001863128190514863077280607853753376443610698050680289296780276223535995350458893879575516294036615727266792524438541836755821207675931819366515136666602734590253930215886091402489836156683235727889307227289324664037263907074009066414885308023054906793918619087466524456184069393320026729721976907810431767702601703335937583935314947211430385553542498494604276142011236042131572849008109742003432095633595348993082352782403510223025000747927204657218664047169561563987839163931193151752436084065782686094911858340407328965849208398619463286211933356433512875326720096844801721470097622297760558522826557245143314368833206203570000620023111704278499604041028207267238190994287167289092682581048442328549015970275785037825079079407291931284367529221111223504673571556741713893481717013331831529682588246970267619896362447520012953414720409028943754540512099789311841970338710099203712787853642072895861478683738736179085451656487776224175916733649726037115744518133445012725280690828515383043693079137094295533504144988523193145671307530638904457560039621543616691772521815808796346936144703149701401650625036263965271789598922383371676756499803747104650463048078748651548968574238526170697075074787566121621072618284238113887366016182362810331852984837826366801024045402229349332372426591227489247661650211584233512239831531627448185886949342796033410252279698995786599954138605693132193114505323410457025031985797691999147252129213708711666345915453953546032947513854947533336603207556568537341826951556020795287403622182849618570003883958797871516161665318574183895009373761809169825164374023290573429373076782574653542503742224999200764517192901132359548413060006145496478601048941956992757776333913771501457752396257597967190873852002840226104317958124993276113073470618276055523486181443289622809468386062021462065520544638745944469486628148952384230344402847802160214195451677031646582077672419963047044951218501686092361825453961036806371525961833275776993159080054333738871062882726716545128452553645551562701459136137537777707317352393411603504559357716626226391413187631728208351643347621242441918741809326185520474973569520127177225897505645783775138705256664215470439568118340470385663145701516488930141341476522327822553012732930567880023381690374423457491385461916152907896868483857704757068505785760293213356802092575891317867526038879221292487026723176188150620725637506502038955586060261008028992199373886615868305351557026152228853348710531389325880262284201000077562578434000980632047439310705210378199608316711014279302140354310992731377273450037094651351205032464103734064265900834305175162301658877603225681887043192487506083227134016694045570101338516247796497548661842682442348753259588691437070358854209680760330302190861737376838603996069465890420499515593622608310877051468982826218199734422208019150059310484865009029341515896090334127327932062372742575850610118443028770650626353865958447971081860639300676454056494971424030032606175117799602323828842845086841433823440141153501319705690920060588765487275570122779363886491514472328536908733300852740417779904263461339551950467117184005951076952613745006140467801087515102966847615922818131817383591884873678659466437636581533618955836587657625304952177581276818101648154799729655008372865945835138663051783907741774296048259420328975079546119550619250042690974579040726197705408573347364343044274043520053531071161140682826807423748251276995961413594646478389950949342173422319849944453170711278284868917875736848559046943221957341801636247994858993952355156611030244976906773472652534951044961598694412753879102942492312558217170168140235050682989501815474981245349045990745907561422463974751188102532814336586198504476037136551482972735216481591616867237227165163163644723401311403519562558945220021992142041113209217277250577422985629607601552273812534712990939927405221246081377981928792806954397103343177847373630796403806940584081682419448746583093189204013977630530432214812315235444431374836976169621899233089319991326876750315937456850917495829548363648134552680309417167562040594726892775940555501156663771569186619312167997567989414753928543155395554434952559123297677382865849873033100744354623797780801555811564985307920441969395616691658498484537820055007417456803332576262502239035949716950201215876679261060205547350339521304877037206847153563381781996621780452608563313363731050903805825470141965901741394120488626072740604744953040307111463818281596502516936147398738434705492664938386746508418764485889562271500559175877819993421632260318196847257775760756402066994491528930651098497432423762053537790781209806161752942641174829254443071381485932523114420912624564560732793124405216428264667985313706530394699165203317004442698323108917124836916074969240500731868106948597723924739207375156105277099437001516514717666909707236595349597016170944480475883434487231956939989485249157235432239688736405511627031161145572592196711452022498732540013184664788627850585054281738816627282696289472281097370976721305709407258762952286503530837124309841255292655291100581237527406293202711194376979330091153894768881691584113288437717125033818795976303875438259109513963635408652753905986839641093726234027323428913287892356415393994983235575224646785290133520643552741931855824373246875212380408135255787877230205137771915310565028331843423358231696253526463282574187149833145897287258662545956077459042738650684191208328587215704940479870452975815400736243404354674685068123240342333874262485036789661014694220032816196172050838923246013509315269119958757601286854219664107583508586282751279447550632763503925465492346428024626702031926300321389473724441411326285388093584625710521113690303153827845094339143811857010085663994407064032641923937688399466932161168943505494561887922822381800226199877108343746084879236994540264757203804869765214027479517408381994384106848846922610891814128396582434577635508716392980170972013496760684781546236873884430631530603118549249750681308913984805526557244884456661408157249027028972432863135323767062394364284982861316882745760187640317174926353527961520081283430941459339090909060347381454728426170772145030979276069178595316647090985001340565822507797220382595048240000025469559885823405616408552507784045198234159740617014136370560081681097766150684185327473166290281826091538796815758632878758406275837195118311313911896555656953598151137694393707325108346094390953205644392256012286932989995722696425082753851191961646687375624366595701609264539282490613915768890113623992265809279936129415867934877682267741234198884528383546295076702566667203053882557683393589100783814205647122348990821159366984222636893234239759554427044774727199576169969319977810546606085843357228430963063589816665682484892305053955774719433857859629786725232852939277160858401858721784698394535504644054299704543544655699966365357845418146975769635855991109460536172967243934389872300511257167897139061765305345589642181320647548046742306728309718401544846678696091620512868205403816460526162130525409782775919824890826204701051259448179842216680029540086982409231191450205708565389703022131751585028603782181994675671957340680278268220771992664850290745225600658701426569507813476645608771230371227734882864101905674763451633770745106680201628146120405065292023963403040747020982047788231071504637863963971256750318818326403867650052237966965465807725838079300333922446371621755573011963170754729542451593886432591562670207303731610032687975250424413567102360286979696756024718773879122682852835616239709602520945826474197531049361188638999557590087993192335267480114351596952914529820474672556046305978247644107376465978926796659418424605743370635377912040028467179000431159644700040352686126768519437651055010879190341237420590842656720997699908418152288746451505859202380116333553012355749354686439758482360059071651997868220341512095174618339146386813723138024355489426290238338800372439585907741997315092565542431628436351966137341644999164449533074825749016998513631185881310314684433294675226820982621381923056126605154091078314627841009181878500428548276676069676682822966110325142303485805690873400976154264848020393540752244203971461457052074832347573288283433977817029757320114281099702597250273551140447517814461849773287686250480224952653052475004340980145623535973276393107984405524002713453043099038207028459699626698253999979900372386490696936361115215898653027519121311999846606137663744039891453765960561332628109737383517199826245243914445926400456273870657974726237228075914532196092567239041467121413209601635314265349382871615601410075860603300170014998006921829272191522666465665407109094999428936015014805605907051900460021486390368780557654687369546477706324050129673895371793000085127232990509263349753009220349938371042808668114479839005361718899665936286495012691117850575730283515468586797951760964743000005002303533402125430977566120242887505517851637201027073151330946946966984892665684246961404754538239671781239801669865055767705072926147595526782594894027977236929984303415288134125445723492699442481872505063731116766132643348883692404172070406184597582385112625857307969982987767749875087013893992789904345714911126282200538903181572182582801093598879303252661283890542193015003410990392589623981308135544487051425365470479815639716489037028791118006990089130449549880423426310550637160600337248960923509047049285480418473936595352858057925079233125972485416421820110757840520553153832331522891400804312363141459773594895355750085720437171428588540982897460282961812134150928311666091797891581689558544557410806589386825147747263962829289740045190212018706073134421463449038686526001550927070643106875182651923132846489138811107525574970912966552114333021898772622876010953887907829103639852278045237144016709967832471913207607667673190960871047259144775969432658989686393315295999650767282321476431758507446337267406490226769695075041047145510046926952896299547084444833139672797570116004186493006504709148734852722554191863638956910619010994319399950493235507553052041773671562975076934123709041840215240290085942308167838258611457398379095424854594015797537043003905523910909813525895117290765892291439441819712000676781188870657511089411890781501586019987852179816368413341142874479487714686997516010772756727513685341967158002652111013096993843523569159194648625695924147379870937588983117203049712191926256367207935648288402960867916238327669512732284446709069705265762531527622251662094253366184090571095027798272481779730205999541327055159861096431608272151319099204751885697256932912274848177183096542347390668813882686160723813371537549473932033154985065574018155268020315336459958700253041535230207135983545873197607239564788914591454150678029809962923926780999445234419421019491086978117735071998212546725197984434187050292754867154721891217020965025560588301659620361627770761302731088469047508422128708650697544064713457297659372850390958660208630850959150490419470957464605362269079141764483080422990560241177241981424557990522789964943217138094134846071134823590628441570934115161807187302123925282516119340510403886492008563844611602019912970007055946385579986578263732513401994117830791664489270691814296253246672352713337602219557634116680248320115336712601306877643886491839801635754113238069352199145995357702875617617208806468172772697803721420439934839024836824484989118954977307477443088461408230967460092603409486146816504838744967920709495563715322041747608961643105991890373550679687890342936404510650474200822733725954406798260897633845385435969386117747425923924848493137724569356192921875612589532206492179102219445035665100983018363100208288312863869575724892718652370449792173204475417707504218018681447081096416749230729149701791149616405068583625587113559100678505368501085024716915641624334814132698856774454051434039026302545212420122307350589741039184774919465909748140164087767396014392805379316762075966371324814183225885158552673489716808036043563010403648022428934578186439184629274061022533873033284819041349832330156856345151188777353773271427731399376517426277816524857100787379410826732697095138924008522583283539988456616417666469968750652420796448951300016399203753440648691638067398003636408098154112146173311915653315605728824619923140692389402121792259073852591019743515034112416028446782207675043391127171998990460994183769490537514156223889619105640317587376050391016360834375665038034325838181939623109741442218103801368356047107415113709901274052832102914704736458325890014134635249574828802428322525158547005391958754050290835601349482806437165217398138856521732391794797933111674359010782938562849179349116627111608436938532333727510560544372701983369475793904483416570449124609461356318284267210689775958315375503107342859612103812051393378768595327668325044514591258601405570069230594436654401969007081431032207448743302381211067407804342294235734842957740688044391421457087255422856640334146540333673169281916476889806950135631205780032279795909167959842740001313688003493361346270610413895415290784005005330866289755257656887856198313330198969609995698464388355141991659487789524230964595013851219161014313071150166363591824248649332284066773532181133915637274621788480450132830099301117619004309227154933679091490870363652332092218909413818227516632652005173172177850636335362410872436039258835195210110856195546673795411316899760940325722780570918785079227572268377061366865758022399776407956173734620959322403255332211180303928184898615531198866526248943645596762323375738068160392679356449020160582739311213980383319901236055931506749706079529770724192544327777466382947762946309915557559998581616924522643818072439957876640612489444493995954128490002703047196929404109091695545734521983173881534939012492833116803107008902562603523337725387993048514559212410366558095587482688824256486387103391493972202844416992011881193188328585004778034116685703014681367383993557719600965039918926170370286067575030772401383673064748865925380596111932872120280805284453736227884572173543211405898794053230784288522681868177773718990408609083462824934869025528018395792049422418874202147220120191068996980244126605814499685634781185889777788191945509798890530787917954057717298023848393086608825658689835042402386009563391621432589203454792319508114727269574466996567279681633994937277301896226987715125179879926302348072488926535046739296581015914276610277150081599118058231536786806684473210941138520173925350589030260802454279072508754804907769826166457129459475271031843043665842580949004284067121845718720275741565887820747072557661066751515990283086777567083210017673516964782473369142349184423881050141826913120674226531394322954078767398509975122948364960332209556902212785444706105120763497457786613636974375137735558284434533626144325072530757679549823374700868892183205771768671551371423713315943704836800100100245012431971392874188295455120950191215100672208059250138411242078326358412532469023330380804590951821839231994245689431325568733895491949966949146747485547220826950172517541907100115920501224375457886817321304045363424239904524428984387970527031827977570907001616222340479128307044234609930453395571764730433132871516939457170416042135599210705240889423799985265119463600593496794625708511259276053315264897241704590770165383465182150080157764832743583633517791423667687756710557273868866337860831213843155697010705023194364160940834612942949245455255265698108780496656286523657295451785980605592284360872450333000341573881503449189166839202788422329654265750888391438905802236379094613211140184265723949088205527415590631285787621219412822612412531689821968675186448864993311973619386236507303725206473510229362928919949931304895099535889851849076705375709116524781842335471909855809084884200158204605040659714839772106153160395476630143076186155945079266645509335867194805338147545092888843528015760659594621490079643234894344205869881236753606338679933688855487923919576367552056551874671644762971142523595792961932636844229065156732590761095862590128994890276279013357894257885493070869495188582129428357221325617162343496128154142128068010478071266428331879263241338954424041850896420146164701344434251755090054916535748961087738410401349849825139101562923148581075668366863851579399214785700950341100154385440530585610405233624427438500274162565658466567902754331530476273677721921131122239330749232571027847488698716845444721923233007636991814843634406310727188293010375331052872265283668825567210094161680035759387012487145080657975194638485442467931391477864548661485005085671242349133289376593077003953004680698439887943047850828172465588221269504042944178733879542018410989945009697892519958601360903559401750960199318775587474369980565091111603927079297097336141621270937821101878452462708391940910120451191933408336980297891984420417063692166969608586579419482949798770743357834405973392167632925610748616872740152540287077372483168795016045403426052620789075215984804633712693118515416772483691406006670331011246674752696919011247866654212076820726162525069553572454628830252509188413006931217231745971950274694814543823508002599533257603291815538198058735175778404782086647616456855314336747789529675304348875014130289740090254050087022234254365230722523494743439274793741376503316798669153752580799473692819803050880969830488698951730622450880966986704792248215134969732516749161627625800270550524977375043473827599144139759674388959584365920854841831409892541837222730044890217878050900344299143450216927367118585454244300882110320511815400407651782218295172845627192870431409269575540414305904976179908210369977703343990423425870229034578966149465668628553152543458138518456132681369662802002365868429653931557410126108414829270022713023275436302338314954900623119582956059977836635445076052106326624432355375481594335491547929772074073714699652610283005286803162527261395902052976068133886496455341695444566773334573390910982804216092562482002270398276206691189972123053675955272825453756447725068556272658580608406196099686407794647779534070817247253158532609631332599394147432261441396651405600587686346703929956592298962545728377395116338346479505711127775962445689036616840978033856637638695822913501946090895940307986260370373203572202159271538457517046698720895074097880364926295026253363747968498591332865606068860637245684096907975053813179919922340604279054268418425150658393589080861564159675616899844345786538869736339244404106550006351324008950206255866835693285148879034317796788918915126597296948537694127412613995065855621784789643909626881588356576364339788132532077553397382993557647572719009545060825045738230471061517487838292591078951207723067440646666879427192037932787721918907097374094944443983554682922901829895817769720489297337397562676768955671471181099259995674677204433693389459540099503136375947374920566841311916821145913748095914098629692587162017564807242219873101051664978027896231390292987029561546751778900403191972710944358899341229901641670788313881095001682604375465392769410637218937286703323972747115611568446135130116095254047633958904569520775927503960585499272620274476662068126392600668693652003197744642725661428304264271416300183705021332547073971685089608584354760054034213999907972843312610051615375809047704169693274732541472649346547434997546213941937268328002933729761250731630758030484505863687884722775695384763834037767127515664415242956795664722704221624380888750830791407599263324170431729774418811774425781649059451068609263121302976913036277681265529454000171244122676697236096581116420162611137868351413605451987177521787241886477752366223813657710347051684666793709164632418690027005668208142027330795453885070192424554912706238948281350179140475043859043835038432529068647890068911647048875501531117009513060244058739535145428695845919383410105021027020551970902397938028326615263291337690785463050215811148842245586425159512930466531925226548686410076745257455036484061970688451542559304453065388886408939450399689707690186446584404409554001791338083064209613630742176225998315996956041118926809567347246300264190037316455793752448635893250770587326431683971445119568456069229362819382090821618781062010020058606703938327932159435408342502192986482777616083648354525547339635687673985673835108765100980761647286713522884987188343785080038511017684872804884879580921670246556944653733035371213269077990560504733727176519831809259192773985416243230233152253726428388925375648152431374807242887993657425922789465475096498275147374563765911077728828914395800560830023370617195663101733726202202783489079689559693908611348288861885096044059825787753383847656331879999943224754833506411468693920188647372329517181005966666328830780891072662374386108696410594396224684507900862349543153490673321379790821974612604747326032080453315165391946214814112205577467639873881201698994474976177968953353338485289151115894709556319076498133852782665822002815170527903385158760419077085222430760587090157540684267213005543725926036156257710786518687232719200028802125179554403190152867959218620180394930596781857041583839586990844036643357590035158788368713139494886096313844172704642273869494777522381094261664570364037265126746025209409127465438790803667329333785439249501704461838827292736360931967002660934440420438690167269741537832242608837368916622831103020409321660772137008855498158482608506673858282363833210137537827826317429307235842818100881203139308798321496275806186880808261841150315564126166077446736898108697472009897048961974483401591470076649292459974747365217345138309370967592997164636021488264076110403361069177319784582850523139330990804268993123476929884975953053099745806288055700736406468153005264064919579025779907758077543306424276608807099322445636851781999494483636861905780650410262439623774239764139756692645270436406434688202280107841484684397407005678894527713590697175039226100263796867594208143455298799542479008375152706253978682751536030454487800459385487760842863875523649075951348122401314226888009544651571445727364520646153775133447702515444709046608640133195384436686688596373047270115258050455647253233360451489322630425982672369673089484905556394190358081820908499619902013971065023885495734675237082329617427085069166470194136650939167782063811239332290742880396891918169232559266297974781369813569809993589085647230778611125476096840378402220158809361865344174532856870616579693927763480024323590252426617769955082911194323742236631570092550281468065057328554696788954047549319162407029009475965710363876413673315676076309050825558303659159726676994136118899501536910710768309040570617642369740441380088257616995532278603947785305052440339683809444416590832148717523288505705833436364926670848274087596576058700407633372579682441986383614780933499010919160057519010884938682579706607923605768993287535911373746227860899752629493545001448926989659702225837853391202264144561607405642758330136653017613775694778497631648488254813303624773621731130733948944377269866093449123642253140050037984733246593760838478746245055541483405300001931471078080978214584969669183395230841838078434551665600689992812421098409926041377418055349676494011674880434316453909143691241158312264443685897069255174442827469068269914900946252392026785748064408182994177749602541284724899729814794844936659919052036350917925781729881659382613611726458263732585176063574306040283441073738287705362864602939464491518123527449297012282037141414886326823271624094353108351122825079080117375861651280369325523019970170095721622897774466874047361339611612798877189845740922133974161613783294251548402512275918388871472021642204155909157389056077378649817809143606210803411398099069171779850355776498330595061760621231502591729992992313377366339059045220220232953507441949240902303531436109467604530841575900940923184021696364787620656969200475017796433478509492989376165172580524031303338952297154048746828614702793837110724402430436128578823338046172366456073130777289821007416466945855041833572495406489264957346326621766735513593943217802660570451608374058785291318126227948056011160043688384250009631500214506146739958846686292447072843172446089520554060283405159332034881640551354975382013821830302517087207300476458128490812427440692253949533766750060491733095924027573767283080321784972380230851850455076095884600707936657680650940385862198518553854933600904039639879759036091253667732344491785890687512967140678348758128866901866468936490432488656576860259906698069373836392282056593527781330333768124199909334288548017935419777615745358298720094044993811811556819055657744390491077623214799936316698422671053418297449196531630724038915025560151465625531629028505114334443176258902523800860617494745422657577099847935716319367004765520249265993142006487990766950950091500441344916715466119961950017522655240786702762605124266644245370124303551341067613842025878036856445965967310545927616116605715690005593614973087420023597286625226009489052048404733584599972481023497809126344969053920482080529384069157998573807166260446240528777378910671514251062004785178400574267482310216746899645587350942840096645032279132241909832264199441806390960240143463236973868616871154186079706638542926751711813892112803396505585912280987658077072746540798310235186757276318311290478889909974935836216475162468223006975157262763606638493720246733147891470896563992942608165508725121254566723042804838262423797464650999178415376686357383111588028142776198942494226421292196198168982209822297439582732891462817862451078926191171904274883355806534885108720928235884481679012130717940481449999554212950741278984436647328366182954990759612779006364592842224813446029176852099548731168429782038542147391676211496665924633734260421312888944640894212956662119327736874285470084201012072676368717010291083388724005370852898799179099405079952950610209623458987698701426074768640673436384836131053783821854890014420259768417155186780812788758626457179511912622508559861274962894647493245050315707494622429379234845100453016923570923962232965153256108110381105348377608262021309821543909696179244058343466320788441752378315825256116098898189104967229731717746305791776951159680100239965846635429348326605985146720071643177234702823664267536966890707232056572227018953200898920664533024946190765596758093763692164711877180354412808161315116420815573242003383796362101852217246008027015541107080956058152866185188989717293288775698099060411822154083181285255577221427024113601570988201535759139637519262016515319740087441682442642301651855879483622389514875782253029698827356605224545258630510641623362530471334310176860127476594860823055363705717481208324044829402943801966915404519086960638337912748335783016116526145824372555935593449530064030627741843625649613502773839054709711927902607062384887251669624064188728210799580369293946107775549816785160834319650903020165061164767947996082488454200048566948583723369104865071361992871635515920466177002557900996860853246943302118133251360096333261386612688679045464025654680194317048515786100514123264097049628339949076231623155855027756339573179598814386953720772440619223910276954463550804602359970030662298768600586617227162948442004580213807681133650543153630372979380318948293212331429910786106161673212374001683781876301160583377261144871357296335808372999339031166034093352352623744153376469539792506083309237276511294802758342972111667003971289712367468709835171616381717426973348541462228369429464778965566199258217570642486140326001938589168422268233960825931646622458827968982718238598895801111118756109702997555524095429359494451776362279259315439729266247284688575463463834701654108093878266096291048079117145611151938755514926971197755046848212904949409909274594570588068188118240124380146468954769343674806184623798499415652766919599834331130180823338462817357395707394535037707934739212602938953991231402641503585490597021320184495802842542244884359235813954923109504869345993944952365033467334750676308469396036316244821608452891142722019530086754588558355780051133302308884057028510390690107199458609440263396581297223480684569350660307094282877259061249290963099575913877271645098268743249623598452412829508234385679179646378091143016629652519027497665478556382514112862401714764324213066247944521238652777877850208766395580876028036879920057393854579895785351219948095403935083445602941430474280440524832308984788800023963643247969258667353277452712763166252337825375882665961136484539192528543943567215933373042712651637980594562939165945660113665917073843791122562921985036471299686011704223826118431577887448562667422914951025140688090077802940790117993941876254335538642605552062600263608838012621269948744080957686531681774811637126800385752511129690959337744766948398133462312064343347770966961556592493022615604228501284349466537222360388628330079773504675081052184373324484011286553605482741832600764479074899463120380212653726736194127505475599435864015695353502790800866815680807283951383777220831327538955129374213239441064586700185328153126001345908350134220277957833571715773968463638657806847763670321783252889997636707177297445774549267468005602184714160735032801585926663884841363656202069354281571983303737512033173130264885686573089063068375537327401142960028546251860102459985122494166298214758665419084495100694693426111956691939568404587200804953618758363242276190716980025053189654654246464234757902055111010428405975002086715959457250892065304909930263618822230798067452346960256801040809611950874510217888894431712596436959675443001024272761913933310071664792649293360808173947470470253396361566240691811644365711421806255911038714974979674777694072686535380821499099673538834385620539389400881548671470454174352690919793787883575823937292415567279239844678006983018074757480859386979924221253487525233767464970668800766875142777668871677458413311567157571884577471277637223459357182203461330162526339597117304173424615466740402450149300232069534855322245305167962384890034184087357482253553878803532475751622443896276010160206724411069629289469760588505881593927528773238155334953653860174081200648698292406319944730109584331552704626124159567435843649903515861010741050860055227566342987175663646052779678374053123982958299558712541099238401218868429338549374424995032058170668417686789639002493325689500451925418751162538565490680723928001861596668027784566424080783967566578019042852935953561546115464091615604472863924405324409026841777946419988620868475473379756527117703900696039086176043160819328052852915514971660090039476878692374485794968633351124919870702985218623332260980315678745579322115821439087287354555825205915426329981031366383441972355902266800632107833839316109656941637909219371834295909017117927913184938228678076144314505624943241302838438573065676950311967878768377963811872292789632803377980092347078566179740265287265801909804810347411871326213358269304848026026027355666815628755904162102087661394641644809384856532515189427188378664049541070028246522974871570951032910894370846585806795407545920612764594811189989262990653489760550957942167251406966610040566096455779348871038736288775092313884466026849536845669102644619412762990548944061647317270701852491731618797439967448552999292402148133001484267603179131126005875757206144548582969608278612163182961064988350166407077166919451108076915484503927414020638256854509303484768881019300701371578781530421180496559460390249315815426427391196365077319666569695419223876114700717714473319865693195537018512126313688187612897021716374479543550780587667265301492646418420030738786926428714863188957988090510215859691643361638145566635773278546167183060385287761783720688249511262294248769648125918984337300144386177823003878871507718908740269720816284609485063577112330411562383959674703519176063965171269570588226429240590980852250113701960221373385792571024436597993734255941990725191199082290750143942912952078725239476718479522545383009248402908023760219735098010686233552209551744818541478745192987051993520079535171236207486979042811319050644063845737054730439541909973421909198974866027448245182252604522916660530411746467134953487946283439700336302324200788631901364511395754408218855306009102156354638571152883357445794196273038116330849956225798120982792825581667918014792938803267672545671600948413874115464571264719470057937792380552345652721887752593053474790372294076279477802219469372959038985922053484311038086005248823487160294262387032444965008869392065146457385599890854219323965303758042251153039618886308863148598507350503858197553172323206629573925864205875019574349089272719857758853035961007903970535486794138075366440354877091802903042932678936874898353020767344884775354873330561449041253436862769865802935026154389826420235042197303534971076730709774875081972073727722621322701805907095304461828866266178236566482412016939563455552397544496967839601181216993414782645117031548475968980503776145749340020785402413323750939016658341766075967309904447654042230543529247874210244969786702393540620899312132495147799357671657528851465877427938804324608711739842287593469650167286288455609818150866278184770481026087979833525712919448484013058102969892216615105302191987410122912852220122020084244891542274602666929268108203009241424170629224077537115708141191514561028425399742344627414756586328990941426388211623635522922787002188966522412167667637445216367223779480810364897501963304235304855661189273129953289858623806500173397284364675422582835760688980082655098466929400583500688471747079562805369068464681057987997360012296397506394911132506764062695891825846555926179527604203250462719373889807916478492155856424165251842435508320084359840348172575275647390467432113810282072512311229481024286008040826444499123428877734070627637541842534238280792740870687926262375755357223685056941486556565807761360172710367405576605345116817364853849746338618308102206594427473688583743884241993194787456041981467791123331473481983241698408457984873544317705449641056924171046043813293995736263835511580568336277434372740192034445694096071674082864724627424779745127429108979497866993583043746149981333296214852159868006521287138818432737521144562917326267138939079692971442919224918643323241480400278403537785698969062955892350090231288748261200513072106643638410037436903643091786341343880273701236117084635121509162518350279029434746984819021725768415174001817687487628576669239908648112385723571923205349992148089352859021434176219122234788654046365406766101184997618699535333160588829320741355442549184415535430353779260911940431471179033281674689751215985343184212766106382810479322987648034169308984729280377176506633251219673819534996768551465951771963658361561037379623594374554252639159626924074878222449111661020846917065323746511424058779988377079190806249340826124975882521722892281233416840190222277321959479903929209033388845218952246573656867605438878775953090215451357685523138594559617619624293497148542261790839314846174694117062686965966959948457219373823956619353769946450988132566077021786466850808376363504023341490404949824743086871278425120953028992110358271665724982389663738073172358945615206593984805733750705305464688392364370949594415402947000171643701040645806767168240433676883492771102208324785059076943629106000426806706081629292858181290047221876225006645240913254792555586861503366660683420009472600058669932194224811721631269711183193909063444708531232372752850654293743144855784464550010595004379761252389590775445271187039533682651138577315665560651114236042778527850326989685570305363788435099651120070903137454492192900836279776914678267087836125606243702714917725399879142454617198044339633677206246161188624759406329193236461707952108269294609238442629678124520839906380468667914074517440070609339177456860696583825593630515133274006605000895493969575256225234558854657351673801634249745943704828599716142215401921092594807817783841186191527863130154761027720561384418565390585955812601912596970142297353381326151651935367354742900981467754865963673139598194659585618281002148137264004396620012389309743033228479533251198137851580511286047485222733273767391765041716961777779657404606253802897160137463470374317614276918849311044032609644951017998011478883555843185269586058559004782725898170782909555969059897650972864475872221995225691408763151496627053515360839581303768950959696955238493994099449193026551486789746869530358654040386342512329703088245357003217123704936117956778434320906494918035731677994033285574866266044194491599590236748487259511244234764792911651783663088864375420599294761031599391674492084644379057849687669905739122035051220892503007772654135835044844992664286496586538183920773410648879715934946770795427773819460515163528614893822055057914271439137271499012820058547000615382363991759343222302024785174297921872083091564219197840610259445006287356673178559258055009149732065509886549357871853731441996451078567313436546418672319269166129696497229224565711603063970486940255274964320968120662441051174284094366795433250927880572662954851165528751021895973577042810736732171112639601647920755218296499990542707876264607940719691934765562137898963134198955036837138182952702951066185586303710473176855599012411404860827279522812969439872458509154682148315170718491093112487310079046646072921039844844838408541195405867496083288729922302423595768709889944117490955394214087041769884481216313750481018489203423848950511941659017600690943335941481799982277859507467037156602821162602811250740895312747266199723621833027699034060143575137363004438743799090862426522869911570599541941570824125033338719296884841181763199714341451802849944182147490337802881390416323190666852972950567485891993769549361634157895604025207515319316259127228777237498928736561774704644463691018217509832050260071003955813709426171809713627379725669613403464182711706082786258094765288214605352586823520382700568711546279111250997868757782875341358975713774886615628324781843871715526003002036840964881799350030835075360784935038767603906933723556842191804483048600791154271212342441688183138784010934416499352507808414887588911845786435372330607509560071981887185983937974679835976737968885847228288649953910487546376104831782220380786014493944684868519852189989255150418696811464076319773104046628122123438589021883926578016610828553800399108359768723419477636475676667162175994112978016218304776540341081782658152316104146387828915445494995632410694446123189116820991095372714331052873023421345487062441110503876620574962244303806350378872896645318084327462701546910030547668474227034644851362693174213147163972746502158850453938004041895144059907564954641353218821945873792178019770935805190250188395600674399276232774616298287776895495873699521603956332286041021798908746140754728314054174477248433523424946465209625888480597076931191087877921308095346036029780124830786230145848183650479561809937798286693084819275686843503046041920109950636654164245183152309943466545902943117342045214390524595925987462917034538353740643357168252537620819453796683682782064564707288846172390098800934989396892005890116301899272843767767460226175124765049093941287922886044786043108913002008380120778523680847265492147190586507801656633975044129244646036760214796063841193129933741167224913601111083573824703811425105292235310899518799007022940301560806240732679519673797003313788333521977536417545548084440824356333195592990054007444646313894854414852844441084069259197995557446031625546918934985700498805228836899280986006542105397985041892656939355800104175169576066350553038531269387517203173273105261954563064591841156885542275028047788376695373904741491840349376401657226944184318210749099429607176081763508260874242674644557825826587930244471793035721218537796763484238055374496200721683490089764133183600980505000303354739132323496871149404014154474404054103554806514951385308130813088292319055858986117356427742145345644611755980182448738292978114935833722086082278481957312833180877843170382933055029804653692274964296368099505960805360046752993137360314008266208279529108039814164990191531059378947966269676754404616553127153221611118975604314570310824523821362692238915280753347770646724997992577191744941433142316884933145979938543522254569530138592434684344409817038831090960816337280897013842429430882524899393026633735626760001590346155684691098593174513091916061902785660635162388933187047712151828401119231642875284165541026803390191284683968220747763981104894208629254156335248574621503287308321629339915129809402470581716812941330132475818393802863845891183846906895047257914366262387203427287400682084244534772094104437551306928964970976318934242240225504427535565545282196999284947869624591476244282290996178972086718087187740550424111290623188905760960457329170743325852726375001293521647716569301874639382652966795347547814632942442675120797442430899785128442509945955504808064825230526174986759804657237307310162825042140233682309052776954094414330186357641412624499947760031052011997249581856041559401755970149877339899582059989760024190629429505358452655971521460483417655740984722982369475856420386669611116895214312883108105226609820520713427160734398764701958805914067908770382046392688078668570824058933188504315409161205376702901759966099474628546244046656332717349196182622968543136150639748267068748920116236963587173575159759622074786573730758258673879833992053430609681222545123995625056249877398590273593074477174083104877668937352218159338771976815619378286076349936215779440359291452099870624303365354035961827917618619894032610773563408507632585779435948999643964397723564870312654891536423101342370148455922270406072060604684160815873726757408393859073497837776823053334251885090106422114008360662328870763292273572792820729629543937651218214092439830566932504211503951170653478933855373087133820756863948511767384446213128036787028991836292301911378317793044736445027516405035423550479045259219462339648927621910247729520286678078490462303870923868359655977136801097269278931367947366882931337842350206991528508650540549818499975065244246237523546720844357192577900253225822271667340141497533981188190230876507751631921695902856969791003363007968944987043050518967635896106264228133003594394967916486369423249727357860756997610643534072125492953170063756210905566416705496574550397982149374131866968426623157838936981708531391592158606529594252625799886999525618436065317071306346974126152435566182008112915407327178733489329959006415115360373823246243328057417139602544105572787927626874577035836946948724771874283520265900231664776883454314301613225271033605701782526863695815741565334605914661760441930774906060252989944576680543443567104012293968541996818292949445467971542258333254300209913558775343678909203373736712644015728620384481636641457079691983338022841369002485744744153657113273952109967281450470061553545007067912922699651072838326927551065796367963378100441177696568551339686256770910616504480842951204490922664811050571837455563341349997622702024856750860459913095546979811021462626951490526777405100611827498448001809555993789753029055514186912454901367532570238729091392386793882008306848233657125208068729662351796167219056782918677503847099438037999722756644668025806367628975507849445820710110402545527193160562805248000542695857230471541376453037293220007264653989172158379961305757611680266297218392618296163876631400784417095314381709810025103617361389751501918448895763617855978217573413108093565285079268074646123377265944300708067937297246134723280517642629777351118335364243710686079466768082807130837504324782563450814933540888374492622961404591104373740715355570427442329620679356907343232886499148527900342091959803076129218280887173439227636723919783263139313455536147388756597549384717698040981807493528404849953582202381526180365306743362436676018086014356600750490756662380357977979444430701269457989975256997709959766231012226907810461601893698903436569684002774858603506542381685852609037297007286796295671702058885953270193993027564837790128885820843388295485187815319450812532760940631789834855538195219474954867548497994088762510181058541217188430167435055976203737354960065771150146069372960777279821476445187830993611742759339037171052373245445831473434707612822871157222224558905161432252574587895954357988945148876492519959031780573117080710423147957683662293654953067897219697911052470105925801755469914225808957360847222362944118111676287429385946150092979959712885942898272298615063839932945071405915833564593855154908898682814872087450521894014744720165139912806627283785818297469798316108920212418270584886400209310136408459741736390521061257100714348665257773407687271142307283250542297635938383656215015312944668890317510284736774114419165671567006394377431675941213533888716265126643281699103954314103411568271516730636666091258740492801044062976659790114975415152392725249147379483404197748052545030218254817717073450661900222907083125588339163416116344127205011770782631056467646121252745887932744368406167545429477699392094066392216922187386733979465329739012178897799662005230675446665199522211693585722615492295630120267130137949659788811325752362688547778566530940825366236527037573558503635789284317546365392007787962136081909755093880923033294667547658651907498968324077588308899488735867939679591669471563018831553619123828448631894688277375360320465001122390693470681137494970424016894309378590105853928781569976064803350871135930292447328981562214383251465973559657593942854080903621427972456261781699042096214516962015044590314900039149924752078930608003103487079977998741091217123560474425510311594993459183041023699170582167494590442307894960032894702656864938408910770709483520580293896178692677348075996349471484674574375171165667023341765154549608202899391594508264978568973882827459351436999646462205884907384026228247873131245504330989888946997324628236263967557175551659659239282267775252162979328641903176747933482211443244686759998420493782613219906830477592394628964633103177126170810645974784101536801919338161498722658808637226470034515026036838565621884286179700750325650615803843429630019073011832424906108660361793232587206959643862925510546571015268525460011221517613519006771166536553373733986733854481507443198272566430597449375897184306936616447935327857907699749608093310433526559221488997841405563973262471527181143960326549433832556334248679724290077101523253715202821755952117552007168765421418604676278023264598866596582415113642028603958151437341249850224817736925205726584445457911050174484042482052901776330074143096912663501681715969406845704690613981110636998049719552444504790750104384680585967119448728591987336821517731108375387521234435838073829299866363926046050434417970598102166673084944422282669658389631635560622293105493795338077975415345427840629650776401664719838207104982631445728677050544182748640652444366236260653816560158024748487141949494767540771995586300653345469021442641243940402739062339872966000473233711774905533064894751378862021173756991122164247620999311873856085105390973199638527506369101061862536211679933752492488421465862363476239077736327937239797416992581460181191863696115122952929773352165629309508771583536570099356676448588130027323338029210816916354392457286163517750435321915652429978831466375105578281700989467497250242054449434013530206835625064876444831413349977385391439512442676726106874462152234671994575794402037640558682404253073836021557309997564690890194240133068221523641891548414874946338611418052146511930349688553345000618458833198196309889820172788842574398669744955616466377931551063703416368845679189258974204284355759860488163132952278996198080044570718640185061334445083064752740529429885622058321608103650075199621612512468721982447388559224434283990675635223938601671408621618162312506669565301273546468288094652857513844463142980172668862405856199608988974828448548472606864922155851760129149439909084461000707441733229721386198681677714000151113624216559990240440544112197343854693022880502279474256951508212291281874275942508377434818768986034567498480720216405987564138068143324453525373270722631247431443914877326541019799453092154127351012031074771347972225209289801989297947099378042124252620793759929843963121073860711249471013642077215590601333949650398719782924272786390181012793832913406653459559327081751655915194487062692643203178220522549008649153496375936811756945200364829325387168808381327664300967066153179321971885750129738589354229539877033742146984304505360982175910235370603857738401004616485655938957831956058534687825380729299004854878767474291985526600596403380626687196788852686330021175512134750277309435841913230444261621371092423931349941202660554044859894806932110629172833987743918806508752559803579205905429831104500179604830534013143680288291035755757284264293763847550281036732493691508730817944442694771268238208351028550646100540997924173675870167400091616917235351863048511287711003049109401672156751317551543101674976665182991206787225784686672423976750110686478150844825759228166224278684266050342229624705366172175668279668201617946343337502683830901329450414479513821652019430247824208341307839856030820149288464819418989131813822523872652307396123330874955787894872437360410795352057571326324493501133414018082071029102482157936283572564047870052131117244975343553419907449746307691477287020246742064015657679436514034888939349654411171694154526345617505029869255153938554383619696970241024756714428730584920035798290348026935671560997095720149351432463623223854699438510222777507911188076757916098947976310163525231767859673397336432306265569816826800868118848105192388866790407279173213701120647740519026253528695272783922111151236698902521749439628476038386434216311938666547166115740381946108907738021601443266086239491401570873603607404670562765472201622401634956697344736107907573922283840238624345364239257104925568496841491384665034281193988608262787610686667935531808123430552280859825037691299374669732927404581168404277064846487169591831674634485237849494148113735058772924658633925519054296724214854264230921783593416749777951197932593458940371674832509790438503686761956926237085057740369671691446047260376102252287012927165809674651760138244322520953218839843114617868028874058329671918780313391484806490753296283486026212840364435720632139268913672983350776438402021032037983585109262486052501510037857026653198864899910238965463723049372558524269296756245350684981368919719143028902909127731988990246587553051557490205922456434384785295546292013052520049063635709731789474361427399470929088645458566315642129902466532757889299128725332729222617287841831697981233245797781728401840819483835088813485735739979096597337068701990902631209016823832030215710336482627195710014787006922467949305242552234556802233903143245890011722041839907937881482878257596515192896049451348037516714770913870768043148725568794679441985124869851844652169974795636848812311801939114897415804142895900147635145085399937735487366522108852442715811442240294433505214969534336682283640749578997936872912068370629550419353218846726299328342461927010076811489587501082265379937075472616733461275066683058584918537061916679937097474743225474826231740032730231778097849920843327942948360284992086666573855934678835870234989531643348145605153521734851461350474583971217346917858047346766163531126736240798062773983155885327549417212888520748098879448435069601894108550073291972949014188399917542689300514161910577697409518724560528131509931559190499958219129156373295502718156753983870573209913991785799610886988651913014511830811970680718940860897980580538355586025133377068327745563553422028948177075084236005008752176515249324672749089670400551227988652670258746970476748609479559049351839671355878021695724826625162658716450756645965539064921437286030460514882705520432811579280063501733509678148552509181458738566977444228866912546684472348568462765254737917627732334051418862193009081597133504214461820931915271578898495237877294193103183569895303538199975458167603668194739640106610896149053985476618613351618914882332906283858046887587554769877092473204853884751450262155829318016126903975187262372388501984404009950990285195664665591194188611132554323048288567805827637131568832510602317727338708151339621578183783924275217972766297435107624529927300862289877968210539786278704601830774475644695815637127194273120351719883438027979533829522714822703251365341002769150784327691348004060969481353569417050225179908533332843237055980451161238014482080653108523622431711925546969053577898525548287867065692283868232891038279109573760936057791760402016806769484644612495181827003686439903253362765675549182809577435852229862548760029128760636419324867630016776749747399921104652483793671392093743582623773197448562929954004865953070851133625009327143472509727776419393938325771339557680376508315683310475449939026685186318589709748512611025465781961789444598022644239318204718673185315241917455689845353499477022340043143801145373609161283523270440217265102052942956325131428921168105719051474988686871315819749271238081623932824778725061202462803631631987598634795935863837035633673339958196368366938837670518438413933575621658524659534688346653568644797290460805526943753406042613925329116315325544695558492911483912417845273590765612314469774928454750214345263052016140407779172171889145261960558976006755116599795170791626734725357189871766578644086137370586874557930734705665263492122759702756318178521715319793886464269868216810833525967959288684392865488645935039269440844454853932355623245592209447888270418587262598722226602460772370288138389398605199030017414904755207768350984629923840029060979270579428115166799141565476640518987051514560585875340536190066712185103677918013235881973241878639672963637648815468737944737596114356206306668329834593491279960078291609611233200715400981172057342052785179253795407744958275024175224101419600445775037930082684814879615396798463908829979258860689789344509457402449567403937847369329784482691775214689913142322844336662586152852583114132126753480189330929195642783711557711476396401445641585885519995241188067710642953790670451913301584816861979640653405622124834472895321315283200826736504070812252335556650276438465319456961797245066161175167077526777075936143168977446668443632577083265266999087161159512933554676383861297299955973773796682514683786272335259635035568086831115943332616550087911912755541876664213828741328642212293430719547285655556243438649475845636044939805725964081433628033101055252508234888873297855495004822127854798579415576906706140966877869632757292186450201547189225271151955484178869995270419523440922831721990447254945093680163076683408778100787968302113975171343115302014462924055546058530892270161794226047743734395738020406706547317099955773435226187105056056110998868852494700364962474459140435456153112523518904440934576286341826174935396106239630574487086557744806967368350476080484088105223919177360441704118057853572968910287117060415628408428718303184005648649761501244853611560907441566048783767667719373599713791976147397972487185769445108768302423928904197195918343264759088795910264761742231328434459805824888112287321235156270699230398740862011284722838187565797239976617756972595465546840266075168806719392775041674691617178294787922417374982535694376962298150425595876755288078701559746694711326597503643912179709719046101783686784503021898894483418288684908682305707379157757351003180803963118932145650209869993111552621571207248104068640960333263024359428104588334211315541954079270286287960947233716578493605350826258466609926264984205532245882192489928589033983731766118328007705712309660268158073761395040631879222518838559811036742361144522409252223249997962537516535125229298084261701180914105088628775391195122572986438040473314169227785984223775264500923435460189622953859148337576123689354376608940246648349586666297592630391765909314832969471129612691965124185584974500287298142043332094037760863421693065780302423879781385029856389257244775004909646052744205814532512668365681463153995413640083729384954928189289884845725501948571457959803454153838275255115121566436752833579113632292316744520203875096425815309825656537734654573172199237405770695470138492952766190203826308514900420084897475816206963467956061321598325312006814762148892476365609260610861450466585826525488168877826009742653294356629398152225716625003203264202616247371561201463386870651911634859942565889890832775165894470680052378552971885081652683159540055603786136380734053451643522612433981629168587281759228852715805468253623852296202979740218620926222621746845716435725632788723956343888179497802808173196806677439069577898374676743456751239790258377992632272374496102011074334023858516567463467044077822599197588023457391097667278354582890282859142338545305356919930180435867769824676038046206424560675925648992085510648966161991275492565887629082315665875429169067813973190309636014629476283451777077957656670538948255206716942204655515909353899552342252282096994831230694503345492250548381927614985224540462573015903044023650962354402118633871066668434898900174068598159991697433320040263504376879005289044342585135302759312356192273258887269803421777019715869105175035739172351045861010408198050592774133799051868031604741346607565567591878654087520445283223839404083685339044225820676810579954919317219911706871685910324627260520062508273344717058444237860549598457614847006012748787371909006537297329945996185475825480119668688782263299547964505560466373800753845023171305124450425076884638773854323087355889438787866379328711018920440725954167356808974122874346224370614553552575502365664755354707628682294727220728134203982510775782627785624693098821205641176338372978235062228649057691588900686724833915376180873429126092157899005134406523247470155979189313136075114859450553468964882598322444851500824807790550574000968426217145355155975129465655181928008043814157325856417547402969569486643622826346254480414102948122790159831723659842633772394991406581221138188657310981036190841645388080045397057473399419181193583956645759077787353013336009980265683795500834628652216705454687442501363971445664648146945083733067038835613314750885315515751116982229269122934734272686601458404539057863535871378090517924317241912197841163363000455353343453587465040561984732207608138763322873491718865696452188799907209850095260360584768683692710307463272804538032399012022816966312404591551123487684926438391319661222749604909302719243096564481388586262350559839398600304838656992569551438981419639961200261682978035793487048685656958186663844450470957371417006810992858374137573856491077015062259961186230815546377226074604209901944073734393638959607129009154170126803268813558018559628670852601906164017357472947251763056648468036460575310202562635559488174820872134902103715732513470210011730685231656066231215811652210932608589753199091861453187203359435290964919222660176135202672100808253209693911211788897603855132503896920807974474480723382397287965186162578484335748738379128939860481604865074512229913083083415973802842997520161002819859768998933721064962292265371997743920225937582239147570021786674436052015150215353516671811494953913278395202992072000129881055914131704678921681770926010735194283302525448615111409340005360547461346516586900404260060158360673312484869206373730057777813097926275001333381345040899157179823556804249075575506167116791553261900591368396850262476380437779589436417270783623605185066536293032011780891728809155074565673924381105200336700855171301378554565877386611567322967233746633528741097819297882686789179357762215941024785371974900438108288716271035026515532298603766684416183296209397267581015996433781928284464770441905303332899337411964226337331381257862685329738934996544768970526451939268752074000723878551789975908652890783275598660317253198944686640910920494499101799170193608522877825688646083371576622624931337499552232542620544180016977363863578869373070607310654418408164267449600519526757302238428374596172632496360558765422485333401330934588295423798304929331712917604120853537709150569519606723540886786597646824846154792528221532209614566332903242494244140106888288314877564169944470766556378094057646671077714814334234264736616761717236554973616043231172547988117437235853663467951908422019469644534009610746388356822836943374803231008539695843184830223784717641840734317915931840899586653923694557124502617535808619609585331720901718316599199329846377833002557511330141419301320008868453818254717997712921503417668916996089626912671872352629869201760163518803597470223325351936573636539032045853403974138035860475472255385002968894414304833609832043869855355623914364043259430169173390577600452002785976524160362507516044403406597348677765706166771467779155819471631008280600515248339909895942682942921416678457058376119619868013380561640824056796367994103167721149684333660619590849274934352260936046628149291822739255859590730804578893993051880920393147570622084397611897279703937158217999030395075125366928840888040926373846547657996556604605204324928578244277294368264508661907254366974410326326682387092602741229724151727439772469438680000799782560441796844011699804396916165272790538652642737420964429895778687414168187379873506552508616256125824004320914344989213507819900724732013395685760780786737550831174534198628381056448304381972518339867654165980116369720515187016986430824786720823115985704145347178013088227058138141392078874946921567973840036297429004542030487712868127819542240186088330395125273121562539524314029812406878777177762925900660124968644874230716735293502052164566885023019179904291709713910657873393107386933982027603129111316398420239934538753945990756173474032044548171517527160294122880890705140830032174140437987244696838931484044643046820333342582165248530568033928655077650155956428002216960262437640444257117668247867374884548793721791592206900671908582285116799110424929159381562353394539949595349188898556821775316761328632301686080508093952251181527027702547909287466641691524669265869237710456717055817253047621730227623230663037842888049698785476308158319798283658316976402885300517094180323777064206161941016180444394695314621237884029108249780998810823063603562504657432556064995579205562777935107584809869386857127948810482391127191018957456856533204744043339498453462555107532629846576103972675150008673585539570405418567998871244940972996645989594879850014281074392209180441706086624531214097956470403091446498997337802488006041962404079148842600092683473116898607265317940893262185620324329036341683239181179972744370811859354086792363254906257614199255027118089676940098865869063508992808029716707844061313498866379645054781403176311086890721038173212537642934856869594328697498517075644161038226975078401443046624648029159263363988106201244063890305682310035329227744389408727964030359978453382374218555809007701660264245510861753540073768434161977359509523397236667799110210743181195472867309863693959532791561639044503353731360061367626621799133778957362175334952570003509045227753804680095259592807402973127921643772896433110593772178560102651277154038370865326274287314690842444074404861878276245787813069515135356560143076499874821349353327790703360493433942753503143523095365706552212456205475935845507394941569882798160287217415359724403685728778195934773284641895797092680033743070926384712849342367208407580134764367357168459408994933947474956106793183055495677301133676622045902959772206725042239907983515366749625592578806874785734734853577313243603304303255796325328592625208185319690580956373739714065367065198442824227117862549798987382107223219766168921575071600661874974966635625414376406011979453900594258464169761530541227219286581546996615008407656568702103018823335241874091471990574471940948729901329269084230091845242765984874217928953261729359000481036095961345817569172351631706780135516606220424141803441657089597517303849312704900100379768108430465148462032477151797021675279830628159574319282282183322585948826059247006782362878018446218760750806147702471524800966528172935762261651171610432942959854407052721293375649441713986045737769806412730273675658480229380071796714005004000172098609256724627392109426897916579388137785449543922114491333919933857895271534807373949507955072283725380465045025301897134739206924244538510316591776714857190018942432636781893811379373286070225079721702533984224959213198313218859689086061570146667653390933174017057707347237566346353842935827509302956072763079627315916746640019635325338959690876368165872574367221745370356002427167135996871064903991329116664324501694805427687950648110577321582499975181039452116537156401933430895151993495258233662229919146955710816812985169962433807780825544078772713108711911045941183445392966242660976780547012852692758935211281987791849156813928101402714997038916609240343436283655420973110434807725796611089769792828243784042979833666432374971892444134915481880435204780152337123881654985914976169451451613119675270614066538971950236031579707006950704381943182389579272786056788325912509105553968005409104987035240858215276487928324759411422623933785914555252877630634372844626762811628497743715945392901637249805270481977189007892324459169627773478463178700041066549353208576101869188398556895009080041648406264783017283417529318716939598439926210302570051787623448268103140254463890713897458730987297937318664516535064630167462327567273800737223158105028069397757982449331144070186920695559580450618696656658690823614306836158182941371736775050905326222526518036369147382091537114631109342501309526485381784583145842197511680447113734510862143124262367717899125458348623250227609942349191909152703259666879634548610631363493493343433918524401280564719109203537854204118471008761791461702654735109031857310726588633810180116584429737809409802153179049688234958224449371164389188062537561667738459871743953944747123324292930218932779263983679691038550379480205716280588521414217041525332456300221544555815459517756882263539759189752348633267157717836802979790184795186432044840517425523040001695567807572294613718931217439666896167213220050570973096306815640003450788481517811250228341004280645377413656838645296184118635390155036338000771082593538631985894291221280553013118718208529512047812056722234060718084159119527933283010354112277423763170501018284358369738159266844512630143555213175369749977198725489047703318561822019575010722406509708677330959859072785546224473279581446673313861879940077474136549352869276354143981708040776932584440069496557984909595871186407475670224203608047430014812560071356650239323912851854828255452333336314153579422411537673424933480593255149666163611292375145325409026071268410530278579276766007965095958332921654995193456721034693154115517511596778430627916388110142263714166272566420494203237504413145004458418066458173266971079949078725596495810398179689460893035736549026597575279567944928673035678842018955215348219124019094234890347360308079267022574010373053865869324131485459522138143137161242138912639166618441564141734204573836973084120908131773364454663486840115344334363286038288207565349362877408641162003945208608697275167649093966898955132057265567279791933911243645526349439913743545138472755290605387001293753200365935339430190795703025260496456585681056838133897990626740848774165504736789654037766978030630831663479420270735185540762851515809624050062124788626453474824637225612509084123650106220727461525456949157826500847675699805525737651078541347836240423035003423628691304151522582342377858475841314542240481721153839861871931710293807172543481706339541750609516325450010486696240182069791697381221691059977354044407070519951366270971128129371634512833631346919074511863843461248122309796826752775088903978209260829156249866527580580407166201521008894543622567008622123677871093696214193837867079021152548959018292313698859173754391702739342291086214946941614028114449471449132511381947427511862741324399028794323415492092136186476387966131518242471961080291244651907666035384797952727096174914667060973647541377208918861259923007334297427757095542281609832683209361293380805131095213234687763078452777538336237151639888747588242013311920657529810120418341121870009226903785732672353340663227009042768941795726616774891913043467603291502227102902312751392160083483878768776886955847775801568579830328251569003255978222739483941425306046943505952823325795949203912137428696465322118917201657843468144162421787892750674018661429235452625227609977329566687244420769024919054387378982412997309007952944638180905245065171657005970085267748112765873425657345284929851518285798007490545380129289954549464599527772813515304784925308618834811977715181266362172028079183505384299177784634983485980338328905212291859458208830661897827623845510251068275569326901302766019239338052631395769397129737474008092307954047050962094477600306321092071540717521118700441365665794159177480208377804136635203357043418425194967356764875445760271576699865907388796292921120651916802109926588466936751780715808188762536923284359714888413484300497786715754811975385871250393617752112874452971020906063867650459436770692810397626897215896332713805712729513268192500323170028267588769427870346330013876818985905272820488540591780260268528393344730453489101214184795904875713099534772642257918892411476202895108654368678114966506464263194546940598547420511934360123215532181434582257975447049759774962165880379219686820235886042554133157607354996412125694492653685938988982035683734844536216813499682530940475322064250049081259735422906034940305414758894928921084731444170792115831777565392436119583580517052767874724902431358259500885001581184136218583394702566699494157044467143046561746345171380161980381273897090277232545860076186263271468482707546396779406169750121786278732162543011269227583151718906364992201264622643217159006960545916826413489401925740793709216724799925358756313034239671256776796180826576316990016375270907060461479844811858692226150387114279797904493990690789339383703476749703406630888495072099575125134212600295502939797604912530116097737335812583742684991622791199787465333142771072811504770657731416632964922005181712133114822474882854864634929896986762155713991544145131654576246184658609666675298030664550552687351777281508051475628948185003324160944322584482406916729477520528561626692407812183358676065071819848721527455226842789768260856023122402193288308601666500171152331155302096361598457428711646290721204881591042204926127363493250287866601764632482170117688715241221788569282144700251568475779675584179318523800885740221072012697133987289854797108706529587518153057320957504475868682840581263717104310162669254263817293680200002542027212638018626557719038882833530607686337959300107962156663541006093958748250278598750748568229543850588441430270705312550915303473466652664558801249209032230986627374542600068940434261086710924708935004197269059334645471536945027358760999531802782385755118083673492468245779235696061250616890794545999808619352783139780110760736908075207539211804496171986050077613041638432549221716611050640747020922977349740506688844660802429473503245283039422816417204087603732422540094633513400316774663908269656784026254585421106140421284294716141582921752400095096788508933275923692244515863005146919569554345131231426912917575638598778487634765103899146036748435355156769619126440104744414970508792311098909075411633941664105657543086490262408922228939007091546648441585946793771661927396155430381619177495049318712645734373324708255567993296108054455866832898131229833002788002912622212402457412123770724502382634575892989026382728824748290768314919641594214078748776084349890516333329754903228336332383760194214808580561104060581766909203489266406232160240048808787946157210952311029472417941022931309276313244057525364580084008385015367829110868059156863428380455340160331563104590891096743306222589756766506823130534300383481313050158804796008765096189211773085263268301083491813123138428079078937214578845113167413390896441500537689264736975729116108769205939246077849267528569106357363768815200293502141136386640623634925991946550479187086411536608349207483703499322254151478754393172723111493701497089344606308723261373603560840716038670242273922119768160804666202290732721883592822405143649761838652131438552558397027586084310905112550741387300342993514798407234825892786275657398504694441397878404714994081616920151091457147072639513353844791878280358161573547542854667871649044219010832145777296548288782437455420830096187718855676553248558887336793263642814945527567397848534897407909172415495142939206767756727458034112291412613516173996903782446138133350074973154001772651210884857445127737672062306111740016422411544567138491374660295584056906652285800767989818196903249138771219011290560073743425909212390724486322354061005351424877952610517514111187100265911658550056747215291134377418831918495356867326318594683118731950509039778778701319782152809561546653400677930049341582477460052800131567958453230603514531290264877508795053543108423560329449946215605424021242015407727217338280739408883637948609982271037683027784505698723091927856093982451930886921977460177882764641283944882056691304760131349925037607463347868323815981877555202187801151108823215088432731499572514659877862144337295755663642876059678979930436499354459113715812913311999746264781635483871013118342454950241162584546402646705536561487112430702885111521930745426698339256423091140494954586065237213224499176004861846794002257547810678036381263870557757893777580225631568594888716328668598785071702495784891253357519357493756151141818732155487563607989821131252297187687736794088506307337558082429862864196557634186923699845010217004885143838642820505526313389545427957158338267007960757131309349420575298083119006324567561722302135562546051603724904225133494812291002094368809472002552261497371291759508210360561114643333461078883113387573950261648457583552662780513440747637632460875807490217305511046634173339033183774641300217530322568828486921413201688610753606589576076766125557035869625796069992615425951608304578706474448261034703428308626835036534889362251212261867991027609047272638547764365679747896558508727787227138504915818286119629572273655078890059628464786245237269749930593312507603471824813643114415974392276174768250668441635189352886433474457343036379383679410991816828416229598021186541038456908463155923354137452718783950972434712105895510851255636963179326483054106194284247424782626743667833718068015866494758879174439279290153160591041583962368832758894661695085531227996802802714381174074187048813846106069580262462835786410915600243429868385475777696318284061195033252561232280298254527777388943694117645452747301563166883391819284611035675560377408055465767968029492676856811497568907556827121685997556003703505230795457602102621902511792153267752793378339967974892739551938144320811969678797992097202311138306789654038443942934394025196086089039122635014677905153053628733848262942018426294200333204664971940147547753209423389094544915499061761435289390151354877270224235024531851291882446231997247596776792903216708168037351976207953422732110196727127112555107161795000481008655371818151860497565170730164937952089245757406441283160354936603871573136558458298346259992142075978187170164901666352885375841435444011594920825835757633726538578942620440934568196981366960367513325583548561495127743889443592401221795854240855261025302756553331656533187713182028613156524598355666219920008886398834783183768359843080143498650327713043662984025052835748344255399712290584082467653128461293887788201551606659064473123400025545879814313024176005106336989597570818713754861858473208526380491338937350842023819808321344636845779197659976832365358093496115238507095404858938865286727201164014422756341152141457345111091173181362930044391116107239782039369631494859833596361340629671493999618183683426199894245291600641081820526241330779913526646734943723383176828845257497521095751954411776822568972531438466455555686797529009290623538608096466460018941006450051850732308629346949226480350902228748762042722146482405527454777811679781637425459425544384924840836524601846566928115115501983222983733516855439923892160851538743979872855169795515355142569497764917751962099966455999263728162940341191098022326898543202684978075729601379831901426975539099251133636587503909316228459094934987142058893080432854158196010753544144902055478577749156950365526816633223181636315233717144459875109701367936572300656945782711646292231459540601763263413167123016094923606483965556047554788793891989500860927644431817166631426566254401916556683579989000555950562468805385328969875371037856542551741303978775232482332418587447189939674422485355667179196993141034026792245572334810299009740283959921883393750834456313571426284282419300592522313166515090427326064959006330393339346872327193659945182578554556313920008151884126844783663245025045214491993123003948880357092777979577059653925169267103750153676488038922105142719965119338621821110254375543579714636995898571361125961267531548146560251910232682932902756121141399865285277376092197846283096086809138914054640689100131619902463334937628143250483320050099362813167115655398287484414260524522186906223368561317752055717764334653580011189257109057705089980002069964124460061359485400460460443666894329637079595592678242058763346061968898499028966232844460754164043531124786620128275037171948752318942331510907914377763203658857145817770537011260271266961876620453382284234298460337238182607588630385854385830446995411213331257029031352896347222212240947207066946238679046974139498149817169152257119024486054812300426119609978938868036260935083580792606820010065743402227772175144448835481567329166560817265369287152976136906961835691304308884908906728369601209535245553890037216188046299112682671852031666120631485105870848893683653478923646315520751068102130891048198026257142764891871554754170846254539361050438270518908992655550458415172934266638296483696390403145172066969411292204439004445175003320705377617509544078642466677630891388638122892846391025632830513289388983003564071885542302648955863584071210394537471870065231360750212674114163532443503551790123742694098679667865395943145518512399649271334091978748017456419915596219503047560945986699278356613526693570462298616075405735444875581765036301650068591300663530755170071158281282280895057758864403429702379281640423898683528332534706490845336895761229871550908569650110521727182904793086787520403993309744993669830310325977540147618248075065921762967305948958190743644099205603035459313664906435133217949271304656184977799063348788981687661091643266962916687738596064377007721862418134650332522356141427132846131989632599721725519620376337480331540310497473859275869273582627165858651675897898782923956984203564159362530255313767969765500060850851320058263144225273901541459987348404726657085798939913675199443904081009374817035692061586593564537426763109046221940127527978782931338494025676240859213890845676660544006634139964079578528496454782561095054740325031851174874763611103419542077295682427348209873810164176737257158656387314691975603481057425987122998203416239866949792425683658357774958200272293581906792896651900072776690528554645893820511281876059885143583699602818687197518391868561493234374557756785235946422185545934431764455964765399230820675830934963013827776934006520800391203843229253619516376223411862846277446442003374088771693615459096147157118811869352652405129857856099536319782921740942040621391837263127407077656943406466061426403313230571891494662346048973073823498214833440666382703375040400434097241889360967208346804757104704731325883107738627440703812198153417481267006265138744076695683998205503808058870592720881484658056733854915634730437147428230848124598826886469512462479320502159870442298520330888657261901975522618607100482695943441890066941579934795352287291092126576854562052215225696315745095347920753523896537828560696784413943060749905596833115215332353234740137628226838955003388356203586275567076938025390744335369152917622712246764561467166061836544635270264950452535456214724078231266691775886779920977136592438387013868731469150114694427185456830438058225248130111242785109571631675732420123543114071562436232593949473209669463968712932247716965632324146856937554683557223831875665679314951426527528923363393194914874563498976216854742767362639450202067372427008886988765211163313293115017339128982584190707366263763663187144214188040526095666611063156043479998157564365580077307086587757802807113478047556804861785828756543579298224994390263930563132619910261583686294989448182432876828449962557304293231116508095014072893485503914437938513040719805826021216800418384944656042912926296601817457173864965480002119729235823658515301171536124522478767718246054141019214701344979556864960941086772343267728504216318448757001361225036301277992726113679126052690624727350600287802676985959654461703361234910411949579534893974588878247500263382239551823621898386810567180580767501995747498817427585485997973659286062739132341087337036423399876447912889760504433620906425918716408495639228012444820354414381949176373673392164666462508825585975824583171828223811365407820590972492061830983627865287315055388412015121496578309633994396502716911756544533948693036632886776742748077412218867664270540174000713126772467461276569845466261763418046354751538699950542256759128235010108907731825931035136841564381117912255446917585370141995792712313099360807391018312880845392217435956903241990497315582567525748269283955801829203535652714799145583703706617805822579828105995194983299945058707239932354552339110201761325100783067506997321104605024984450789373865166271644802150969944842793977200603391284548978821522051346674216252911965817798421658204987968021231543689503522515167353563213251342643514157530270181599996472920930154201979252242195406134584429622317694299346118379235077328509869671494124869799998554802228591760794325309718566547181845032663523501573675790886412360219733056849606394083476156969328989909060258927757201093992199880208792912178927125661855790594706129247282937587771779032716158127219854604100806242850515251682848859129967931063695311255246686122320236401006212726623085430630433397699012641640772679055870712757053685582805880241983920973816744507039942822089246945606813120869473459752561660534369970887346501490918330625554204053547464511561803337959661579020734629848931604505584415569928015567133313242398210413064441419550376021277425635512476858250595560565525547821745443054299712389140824667703605438152227444956620393649433052191129105770121552021098993615654097241492779887427967085217762383597596125463995121047517919462092072685140127660946557635342588783182506020058407395821825875150162131368816742161866631823185318106275262849659418327236623953293823221018334462951460694953834629385859546264347007557649871845644939706924944402121237753546610404416116021088193415157249539295454188355128811421155593632265610792897039637338395312453763372069696779321672887950569733164046803911702286776593184545032589567702093784555682532557364819462916036736882123968980500038183569354383815676003222207474250983312587447273756496264025586868619780034911304002420061204499106854137551447942587631963519610963670445401667772679521107289869132778984611781923779565102669360113119644129120741750768807355663142807902146917106287230497879548498161660457490843760504406598063311968968133216716762264818814950737599200579739357611180267439203724612221024647851683974322042353861628880240276911664880061992868744418036256832897349840159046683232774557736325744490294052099836866038769910524626565968621998756496269322438278794407423475314315127233878144938997308274399651105857574474476355755959542033384894367417824561066050605925717737492652672581325559819367262480055455092305360150218457684624952603048154417180983082696254062201559377788227979623646404338268476194297636203144298556225150905296110104870657504309302611642776777870731878074219261945249529138309339062702979125073293982498372239183684650894119806750294051590442527489269500140047095605106601085217460250864974356822512354109874419916400781271660455290241930686428336705174596022439494304942377797643097995483482183325319924839244886612924264697131982601985559689598142329004450077058913961956218070901650875384886588180198799591332667224477553207359075244778394727327461994565358008038425656904706223382972161537981051311817346960429863617009969198433921304204659094550619011290341619396283133683723790951019396247026884574606123202587671687833900225313716163800409090552640542893712546942616334063253248366703131631733131258865258640341260009732695105370208746952323354882271881641197250124634040238403068308383388687959552199141561144524865306579690010300218719231754096090257525177764365019258989336885032978277080387152444191417444092292090442396964600981496218316743396628231360767127256377084078779975494523804001994975487272374227448656599368358142530677464738296714301635687023272572306858241617608645478065206341652845601245206937133611631866616270512499498975571192571255042568610597484102906317262543018531747536761326278980889877183375823255750698041316557657243180385029515209234143043868159167517122572858139659415874847204089024878453972018950442206941608986251944919324792903114618731039780844445369376376643258415695100960208659173626223548257873131530077429452208727764832356897841670445614218312891685930600302823244849283500480535584420497780788775183917031174580165069155779200555219563323739564606335712228914126232168470781191357778545197927190162928269677413061665021874948908482332100534994317088655809338535459586647286218095156358878162388027086025523091552562381708225256771044989479388296987297334343459717544209103023995279575278875111300917791513943751771774332974913842362992211706661553603803101497855116165510769971260247016986106169321660133827441279097073252946838306688766614780433945190295361681215690450978733250380636745308305698799268351793427883826591881530671790432603287761100850180626935963128954547012139082017949051442871719947328100780758559204981357554601161353578163394751806398554629738634273777244004264475808966635665312272607869382684975432537733193205861178933584561987809412594261524814303921795026772479681089549579071861842237411539943417443947015750293061300488648818512891696638284588437246013557593037322970072461743146827424053240012818220075069065571096164134194008279969690085587152702917141159803535331404685383696722804525373872008593121094438082246337528901062608321355146415874135759620299079979454038687384229275464375103793250717839726567454242574257714118903866718214967648541181321446132323700250034122084184137719737734916062514962687705140641951909746940347690770819613213265170480852209965979010898409153775743809779684844987514786720490423645622317040992039752998393859190391276361790427682337287921606726475464350593148951063887714694807737496201858408878494509238977677840628088743295548687159342659190013504673909323532591697511180831661696402801055913326803615617811678096469628199709967576000836201685395352642106205910192280977031291823568586210263686777710716236939932937618893379820951551388376288132695956520244004301538124865035117178795118212687315424024226197988690918955020509458839371033639492695954848932491023986648523044092356753703805433946413698503880379467586213621801446026101791065514837303938358557820137627090220226832830803089075690974784967156015717159027220955759811941381896522230025401935948390415890864509705872633984163015758545904292370237355551875902128782052572870597774404294833567954940372808957432006459248859006337737169952486174539631623907145754592128482983731334688614679219682351232614425925310786169581520563061363087413545801222995210643875636968168599767307095929309283940218805676938841742123675366730132706046950089074454736535417708445062361931174590746754068031802934989629946063026808661169949668140472414412669118915983797979803817886519986266253296467743712647193385281034971353430815333314673123040676825621317020879552224837621694527184537490368026159891499056880551427653526886614588449411679062930659383866403943718490537519420517113011834295608462345065871212233300604585990584301168929087469284359760257716457588696084970206934136750860093111265439127970101425515825595417837601326395273303834549452620199165727746324445649541570645271222024445433286903546140430133080264339178304424476295428732793770437203980433109076657307983390607511520343423508082516770929897511291196846841001635884723630527247304977420875257485704524343421280266445028663743655011961416230049225242443794486504166685978345426659748595554294195164368502613000819706474665720122999909504343087511433762565308111389994821746308758909191467457203566788410052328206582038432077107856319171746765837445293092090580679301870992870235349107988930445150747565897519148498252305169290525542253702624052335921245939920285142934449304513127929445905112212969505871027536429711052431902172358502458704587033817043888867193164163547062714614875802655960380653455990839531849167091698634584985063165133363196410782231193230213161486957581969096666413091764662954576762630093541058860865665315296874693679274680425356620649221105850892092371345218051540748969942844243557110768825211551811386138553167030876711118542078986957692253732856906185456146916190582980709164356631004449751625551876314345500572779445949501383033419823003121187723053857180335560231924181974309258041457909153297977347495853929671387718658512856728855095218926669784677111640022005263006145113547777652335924023329656457573357525215380760996042782934082581367307578820669505926082385446192739186927421976423535370320535884406006343370540147023215785882419554657789820026297502743639899346222629350873020074899287314189563335657606517642873546709649083424242911642859458049862512456552624428432389290317061285074773745430985457623891856143424834916782306000185120358418886635649199541188544104846103026392941405469323034092638722180183808925574124063132355619608572464760342988161183798039152674496275496319602140311079040813481464423949309313919552953663027433648776436537104612072267281952223845272124581551810387670651681816998215010312425601612227204851977594033236651372941659857832390653755273641500341646861965991893232110424229223436000218706205598822562575433019128516890776468199597439225448294631631189141844856327284113584016766282741948809181083762685984544427897591255736321787912303253781704001742658556939150455149179711831625225808027818076936008751837752636411651436876943086837401922050848121387182216617976346798259522440197602010482352698627835585313789633903656034204141657221335410218042607428073180929918017349894194003650745150172169006021042368575811994418921761820858930822280957059891408565385210669682722591586124377661768246736938824842809993064030935384038791399554978279456709722077575335727846535004314263142799233349677290066438408545462991893925580050632327667266557983062432007618357426204438277518296157711718205067712156830654501452348395456946878711009058230633131189276944234878067791019218784091164388152312067797507519864648189341058248605760279936624831979384633474183721578953626183858437549237450665935447676067518556134824028831642937906064012139447333103931313426958171507336141688834255227644691736231279699530353373056664672522804629128612738941496443449393058023323668843744384967806883224160129340182542836247151782730209120167554261158445879013633060827753300454009022720197950966496216884861667239666710094357012660420190530895599842841817296871484434316690319017279378846216741619201708784217320503156412760344220984679822423578553157796078457859754013603739315200558047896377465345094319045983863488545970947872798947518784835780170141701670538632638806232124228584168081764932334313709447456817744180036692403266464186233764103726054474931927447527367244265360359030790909770766176787811707446278734560091129620909665560134863373711366866442182971171358601179616307607770777815574059374461780033770902207092691388974517367523126708375909725558189812909143814606833411187080114803115328799834939531492406728882460115492872989746134788255121349089509073103819999523046038149600474063511010872925168276644755178941689895195762395187104306271709262012603959494380686539186958114433556186657581333827216804782520821294903075723806082637446582271666776077129627497969221014977469513942107678911008649579664116133610774908722493184685108078217122845005880656079900645365438563185307256354213413606870156303505063611213358728988100320561819007304974035177578755046463053484326789284197135667096424501378061421040071933674433721167558934517315254440231013771784696264421861629708553169188483532323947877499778651583398726410173199392490163956165577474611512484864818457662064555037708102817424343425303012901106197426872796766701463499174004753916253057546859169187395256582498609114044654485492836129137663335888215771304091193765948823701455950241748951515311132833050831340377971010607099888713366941124709325154475218183296978773513430647329523581118965548594105866315498074796575314579604629934738043491431961366506319995927104544576993607358999554326063876731367733235627006861160669731664112402499547903397276974131165680118048573183707419220298485171519480495004182247495621011023565758692914791606692968704446482967438135557152625011308500942315977396979950520210472700260521578105408283490459630098595075282604308328492138392310547410186120520657057648448296489858737917939763165399551435494184162899475164714721611142952427613158667881898380645636439826138922898005581376168138241163936165699839600061921321803936566293516931960759016555724030337876916267041526836151461416197803823467392732865290336071529724938942086365646647160119813893499587617368377262143263140993191956298729725646523591553966220320335138651349055645758712457392336951273840627912543167330536683351929067711388781180820776565778569346285160877908965256304418625078206985108526397946717470006394522875975701719822622971309617239141923364887696471794101075622033748435950445605958484718517889239354771408919753934220315243074232385066528215411197033250368508288714208065282503532111996058352067534594307406199310748071160695706644273808690104453079201231153791792656735454728026659895572019438324239177736265217358767079725265533289696727046236624222643421551005991900081871443775697808308221411903834660937187017046462879812336690126380083056652324990924634901537417409705005168389088560903310665461232648915770114105815041371663487482631252753175755892960464056484445491338127353382866552836506298075712939010222188915237541929919039487228083159983375536871133142794290389991325975522914584999125855607598127956970581837135544190910110255544533058706427226820806201233911980185667524076421543705576816888173221937279731067326513429771506248673143328541953382253198175795851860869244137355051156986200521637084249582175237270254389807284085024417853000387593524454361075869561943045765188502239908592522924159604904666651087531550498830196528041740878628262879315551632203111831478539579381586390227371584553181905885859816477650239925771925929934554731811700217037262485536585259782641747227095944261928209332920914679560297393334968627593388569324339031302521569013514094887033152450423531279283004576577051304296786641520154429536283723301419300792611300422434857136861251998883724565593353333962641598992613311578219934243458173880677291127632120789610663391752263021232423802272134000604790997281728066243538641714150165108799745137934673591838723742679942499133082035151468140343027890507955798175274461499471412617274019922079806059197246713755162579340514215350206927712937089888791221582842273823422837418560088521706407736631785702312017191904158725628551059315205137171312388399776988775413877107556369921816788994173072384143913079527690211075566466711398186420556018417092319768373268582017999370327262701513498002495169821321104122636079011380177562080503538711975397472184184343730973910344966886862022344415808102276772641733177771103571535234116451662420234210217006745267872569906377830068810760942009933113594482691335763519046635130371557260932022763641602122514031078143552054906316012115596025584010626097811476737653176639893935346170115753195302216385418131058230240371585735738540657408229653094587774932378939541536437182694217494616093659253462705053415763606770242552657714046140238273335132644865498759716186549312464167874493791341792738939664932489089093829775463102506754630350689061311474867397137535806646706283754308416066962447522476439490609939744490347668789946402735764713466870919756387910822328800912837579454534486696637944320114734315585749884983098970789389005827279303205423489081505146125490159306263295431238169027924623488699652353165318897160584376468657673800125501987710456318704901412313711867370127541708795320758022906627622230986097052198076939473779910426660214149200053717361205611796073475822850312656976699458569234470947096922729831881729757596779661765106971097297970999671698599743062097155038255535178040315106618765654928325658310770246950432830839779966946889800449166169358871263693389241211168893999159333951867868507297495056710823364446944114909821429856296594904260180091743683679991310372099410198842863609365381888539139318725882359135054041917214601729755382283440672289593989426508622753529659050622807457891095569391938379448217973429295157760641969121234677945490883552790014084835552569215324511444474404865092192975080881118577144388591385604800791157865542500735941787387621114178994324417284728889514882264782224815971878270147662100541143926237864906708227116026595291624641455191126632975119686188741064624051607491771705107986511380775363931536506825213518791893874424206780069547387208014265396902220090473419700680048627992235303234728444474479149487185824557822989387076176105042700057201809824965479786363379321965102658608441967320868069028803404455343275234741393266955475696439459228416591468571884690995667803776194799931817929075028021473072659494093996545471596159297150206711313435929773899817273353494241297309538284302698833926759324803612520778104075703693176783718780730262961843147088425156519058743515599290971271907344241877116822801349695881906971330188640860970233715652315859424804576412248745049450642941925042119909563068718652980517394605103348832315734469226758345396263795420976787485225879965521850618572985837943169966584196211452632699358138457358770758191937962364685333603317989871231686984902804900224212616393447495600810386074151325303588031985145060543877732489403952865196507944756677448906425327145337337123390632172549381821447056153874150501148502240441326870526634417633807144122974090369927732066489120917246985997862825774308508746381015712932424755482907843919023297182508990971613736514383688929266537780996109693659307247830855417934181809749004818432064990017823805756741502492770111171442300930932499019158330975281117000502236512115367616994385567952452299727240266442384975453628599343009173589886129276705558907050873420079746454779113214364437004904600931297776319906532399283395436551787891334079173794611920582524642377114647037958884963868017857031154894345508304833685964806637760002040521769857793462891288265814153067094153199457017866931728667103018617521108386825212232199956442215311067522083343151260284524310174782648689048815296453000108519168574998706904190344482893532112383268388193462905453402953248466384110020709333725230838118173440364066948263367559429881488895727182919247919906531492107470280589323333747448107061185795137491440779805125761939397621411571724005598072771353918957486669774384934414359354093926863085900765768287696958819860621544998302056355969788533522069894089742722562525320916077246441423069246497847252947469600067310239318362700657612534936059903379875845584489164674548553022900183056200765720706784734249705587340973947328786784203721015820333480754066100433477652177513462083492803856821084448450264537393775020214865807261687852321785701364025453809398762819768015650245617987057662450933486216704239107287193018633345933330493320807838196198139187123994043710002095662245882678893467191040644553875665744166058393482086237121711265540840012208246754795266977556592814279714697976621563079322326903368816634309586341921464659587983458973402774414737866213369731020998922637343115658476255025705565391094193535906395665153947081632464172630788478225546972725964219896345014490639965022081475670176912998665282780558818828678404147794099476503604618334233450970824514474922389860760999916091177655627162556433271719936130725036954693290328918871178449526042081486697038677439852624799497982691581433705894517880899609383582867511101890948467541454818303145510504553966300663899779312967870125187641820192308828553205853295358360464422750803866514140804581403863285531130424065096980396962106145458965772554963539262070027611665924843380283926002963709127615481641422213273428321734309556729918341638668395784127147492961350228619904661492176833153580246647298274543709742043469946153092941492034183645903560192328284589101374509139903195190397373774641882904124787439872147942513953587113750301171521718028188120012341747915424165829674847560542442493418076410339145535887537570047809181302439829935778380989426083914252598933111021042187699975095757107363035753727666760130574284923524516751332223688701249267121457299918248391129503532705166199996484493106888830262140713226940481386391555455635706047593661025182204035260943246672017059856512690962068448641990990208667456170673404127226392832516306141156386468852374685634111948298203974432271080675479766350290335556068513070232476829576859657248934878806439906422670942319728104997623394433066163103092109774542707346898088504073974394291658389210318762712882414047619916299973558161886959215382152155551970856940207362626244531355737702461152319267040388863090674004189417655125481852550989556172785403681831917615076776669913183546604459508271765285917051129624743539676529429616360468723023499991530778909419085609701321020789651713048223687725659035330699834085651785680847858836386281099964264237164354283153999362636169235731968277669522726683917498699920825438790937836206384232525833035286753194887211486685545314427091462744946618531937100416166980330430235054686043025323992830910412402889178498292657169913799625911064954400352103087128229336144303097079472767232203376184509436149705271420854386357907150178409047015904528982218544071641109701005469079658944037255619068098143333548863706854643173722365545047778133981091550715902308651107336018515300979378438026706202644438137910216005392371282007977358402246465948857233285937216695924231183817550113200581122928587546139754504295536972221965758168708199931403304324376171508652554025618871990176108631835365931814094948992150136661963479724662422310249491721931435258350470250677076398049185445160948433481458904023161148156456996974314029263187733647907571577036380351075452335850592088558461232323562955505104276874815190916941727921663744508969152330297555144378882013496879988658801030887271510587042171509478240341832467829143822282732668635898154677460049705820982322900143681300491159635006840316236796995617132572388684256947664086876506035574544552755792751909993015774494087900724201454354231116020144333341819052928868342372410441172676680543210745921976510542160002676939434889339627363214821630239840399427930002255700567289736052289425674173173167883873625877454889936456585441306289488267748698464564778632006069528122787278090573927439575427344029659778368824261606252972110249305291552026367845455768024262325923169470005977623691014846046927309713624731860452055690313125756642341489747746648141069673056118388698700703108932069122933902650306421469758138045298834364522519178387904710704425607422082959447747144273775741187803919845084104970746280556039138165598859504078628745335511658601927764656145523069182886679710075294956400236699321538430105161739675847448970790053507814638737826911347451145554132347969130837474677171406847693844587211857130359368702274467447890632249008500872287701118375942830606628561483074723099486873728015776282963684426147038390342243172656341445428042500354231445296906620379094608790797509736484911728763518593830053640265236942796454583860632258238480694280356224618200647175775491098546765561762833246360780236994521918653252269847954521474993425480007779641408010312948206135182744761308682601672192880590849284866257463252179712328821232397144275052153093219409712425064401210401234219039571021550541173774395738252172050317469047128386853628217206110200926427095108762130106733950791728335779463127927901060004156171935992127423168455522141528581755576906708120024118453541745564577300910676577302936267374584055202399479365303989349434089155762430467185348007634897030201971898470662065333222284359956592784045939356246955417420843444627140302461834107513062289961446755044103812082139010634271200264141428665449863410412426088433371567687831885347390784064484191783685604869060223874417819474305368918754607658681880724173397516029297162237313332278493673031869073557006250418316227336581191305091907735810634449647570086551107199527858852830515320606604895480816795295686272436467494707691512036279041890955553696712908531579350195408007297581067628007063676255645731005619912148765043001100948450196892206854089099681436287303325078014258384435536149046889202697995889165789822286391085646123573075246716365571021749292404381811794569979605539362645759818217098599690770034439314379903407437128691354390172535927522568379446757203520780567818853005862758819515841557221977980393522640776831894226247753449423931042698940279004210617259442203252504405104934568811731347525903204613007180347988919292520526913390704987210310552611072875598899546045047559658504329659429854754966798222451481522121844214434443111604251932105399471931807653583799976962885274542698494641069811873304005619481730955709399226737216834794870714134629088423789625375502653849073106579536753766938464697404783727853174346425946840361415579147282853904340228155008302504592505786103349218070147267883309065700577403375929045799999226161867345176564484024563765528818436184159895632150507089258320759236161925656725952482358296147569355871293059361011607195353691913678403480052090590065466470162081861669407833829571682799441433711337747717514996421181223211244883076405942119725558947313541235554417646057056032119577445494114378431366102690011758569534603340870015958751661487144306252146113306981910155091413798243394258141224084792786192844011108360697420226411389193965525242214015577603150711568925019566323236275951819818643509256615082502038382437714162016199687461115833879053542132092289729033336773399512350515532265337765388088689196114412999829532988482080450148927893365608461701709391078391459055483178613998020189946247135601227884246833818809384691489726346655583713841614113193519924234386054463170569910620677503702604132087578218933063677302718690221828791613256809227426816149940256209589274832300743942938541796490713945364005506635713917211343912091578910765701803982136859103868912086021094061376607010796906313013430447594941332428152256437724378742023341599491422833281647508953109369054425917847966185172911291310654129643334795093025359270834478997215732714683281613201397843825528636413733128378654261242824017144699551248221103450449236511154317133513991015873687229186931799388694906123377530657900326442377647958901251211466909189566210104630169379862840071669011223532569415987499154987242357506051418641550408917357845078744904794701244347785838247462991070481408512852383036243084487658423986618182193864094847371355649224812209960035878286362123360693864867573318827313984524515071586117476106781563670547671186782815526347470790870559146452263296395661412207543103253320956517597470874219152253955846740234711194208864657115002410726131632948125329763827186545732789183546582433237048533437812129982275550604077469092104547460039907961066653359667799449781367194802729801150337904223403658523954938043018784281523088688507901522120156053105134339104378771405399361633988058578554991541746316635431354036381307619227129233881178884333788190520169921736170526506554899102400249111740108931853125776970217444085920025616074110195872899782523370381594512441031525036066182365971135291046866070788720724605009720136367717372698719484845238599403578464463163004834325899110396790256899289677840643554997707537143339314425832387985156238701610280222732182508087869956421771173374353924684379430674066945344162945987958545191335042675083052776263843587348438633060451694523431437965498602961821297668537854451974403199581408664485390317006067021092475905159313242992651827926047101569716229176174443882975725421361224509079652905021999358095087166604080316306666442662414156573281725316369344705069909664838867856021950598729113076992919723676034506588967070584278778004762766811337808733811627891664386442490095879463159797974015683238973067809328025193125930678714729572697974508222169004295712674484999760030441973995120721342967287743682938221763382862617320855630528182079059848782020796405068144541323822453689120223891344460688001852678929303215530074941491401512069419384631045510206522154409048071992298675607806925147512047231806172856763506935271940468264685760689179215852399528895319590852030278759176074382213141760155888001223914076243484703438038353017030894579131638510475517246297587356922401980082929283602014844517968943114488966252151719484056065946733144884299492588044126713064855183017372771487861814362440215390200910305364501831179592018672637520395866053095214630883574771587925261681513327026089633974218354162325180496143597896576402908151890949850321438050217833285744158819641340771610808834640807741853603440900716242590737229059616635540474969898062529231729170573761165961279634353259647734035112184707656555986510176707621167209095586987161002535581173815111258809139222933412275887945576721868701903399489673646754799928181496183289800189789064612430032643489397632812549893924923789123899445788974475152617217231666335769085818411262724391062765140812022437944743061927191709827815380364676973626950436503400254677967916582278546569682003663255896334032758239643050741701167166537489725957609732644066489183866696628854284096550971937082403787945089290649847338267387844694122938079556937356965725279425386533339649207970296659919554701318000409675947478558209802586116514817016294316942946502841822910133318472001476188061660215170970701929392402624964252212247243000151662083717568768545621488015654226703349586957252267142978879793504597835882979439095740909084409664907599724721321665220064365929054317000985695683506010598348069864548979410341478437836619983056751850442654131275341890046583074923544796692486282480690180590047458682881732917553917280575456055067720253289193148453525098899023535556887412951956835833206066338792997139212472562961706402559286670024438489020273392282843876133970785213523685398854083342770475376524443868411613268508574294521532677828598270783755135581171792175509917349669386789108098720659279881335382552641760695857540673291934997754606592562019401469398111415079037715587557243101251181890118175391729080010590332413643968006286574568179022790818932532885219637385841477591627717284301374989350542826021315332534630090321421555671629777956648122877193013472590037766918472694175253500662590437450393711478511233012817814362658352822006439020110169115491289609430332360589467867277868659138729989673004912645863178741812965461078949668956071655688710751974458082094381087368898963010257243639504008841887483573903955730515745770312183617053198362954881068748002047774372158084991412176271051112219947068550278802564233695263022049195550290465251615816926313650135937352923680225591367832526616812338655904192769218069733520450028134503015137519179721830635551951119895681069601696903347387483593325854188294803611988227146863116619289552196065312322487269108661440143612582659916679575639950642339314785949878375867934919135676368309661205312386633330033603426929946780906243657706322664146384586564373588054849865353950797654432568394829952769752057961939139630090724088449273442248769042649930588517150336581303127217065679174526356391359189378886341368070244557131630731511355749909155677512097606344668580238289436023594061860709846144096520778792633745981301472698217840117093997324688428823404905394849531754649778435970754032336070958657896318496294997176020695140791823460118997646496166691340870328157127644005798046488504332163933413135522674773895655422097047532593311182660616382643652091681988251020114376260524074404157813351551222311428592115816963465896902053731950179285689256567519772796848990782959039645024777917546729084785768310791289199618530676404935504341344915274460248026433207288124578870566648074356948812471209533475216302480715727764177295796644255496955021180201294802148023356373377704884272220769718653634117444289252272280029364077336593590557299229920981128976364580132903851923204382739163020306567604130270085343678685206301758751230034273992206155076214593509029751582888848317447090887315545092301962312039219684637217134739170674735512473486705282707586114898276534801792604142100141650093865813028669609993248504764687833179524223177493901663311999105039510913988921177272104771266179346336434628774615096404406663789277754839016042321177815529250270549216133186770063457109049821500546314230638867730792728156452921114269581926556497638637322147951496262040577692969090947995684982683952723550413384562299940776942892445770625302899237576165854142511182359359638076653616457058334981651390792303128569152154340652877149424658025376016077918226591373989710791162493599109104309828555454432866419004506128287859670381419179942646807376029581378174245944489156836694904211244635384868196241158171724252756803624300244454253205232749573343338740610418628277896157726313770437296632650285167254539909383282514121508180276797393654725551773288688450059158600852946241057572538316874946741359983395201331764095376846525535079977339571854456532758049062664689202208919582243678515809921141884973793155701053245081463042481392276922156718938904092290679377968732173776582651773507355871714583474871522529833112903446259972151827304513383420643589563113228626680038052193910785191314256649432784774149593876028869591046312987105355453334618443312385828608388259617404255715458447401061128870054525757225615868419356439075950321725034340759672989544859560716566902612099061387993192813970985674705113685603084197063917865272379005041921148208215624758369955175625758173187684570165401383361466773136367754171257088090075399771696494220836462410685406192097916742395700255137852619552472170077965664399355289478242210553215223411133601765012990377861939887007445372294910553254861594573259305626385999863051966519872359088869784655312145004566941904053163892758338478163884895349120132461025043434734210299903557222737578265053415426374889479444087715211680292590206835626063352394971576780864178663781196057222885289913026685940582864096232879844643825843558402822238574030635772703126599875947420501151119876614183521524425457131734265397610126725031463079082169016915556518964359010177543435250837557775465023236296535526627976705252401195543954499485777982255193707918130635445894735644602408706170815946514483822052069996186103767743002739313246059397645439892074168084201361361599448757159452783233691699006845390719176751883289418595931822359306129045085706578721307358340011382515484157655844053261132457460372346877121612378197576460041200736487351404228957619824585188205985185839349441351793121625917635742966367792390004443059647723260981992955497463525386034708002997521033036999634357497069007363513377146765550312285788083411652610427901920899167015513824185291683877994746171680011124559472065296121594968999858898485992887565315955275258286147730879244544618006273257275920526096421366237611783232968419418208652147630637526470962375418779966846508559756967122333497423712598328434945744175442073499789551219471850563014514528428901489888973842804702526482160848876790208927493964220061296904945947268371083054816716364987277977863608319612045982670115187839778952397294312687718425063744816472345005750145795784493979943305870197704738086199388895819789007326118031698182328993335888221675286019088543290344296067821580478937556773179612613491361506246598884659822486459985145690537769619513944338235218576103786500113959062230023810854083369442235308071468792842728667373312872163894844611461355954264235064180956214742087999188670408906810444911137308109386077288766959976807492423616807863000995704680450020421863444622463341044776320208367317184617505001200679537232651461985487753594063441628408696216744566854291361511608271288076002579749339250388813909978513523851446115895723877244819604151253202026831088369496654293858650056691968950154136975590931904129936890293094670073564891230311174789897538922355234705697671296241717645209637272277390450466101131747129420207057744957815762260268319136450643237154019566655598565739436163676431748468336577287022105416930527713998243170271525197117231705574363852756604009369494385637736603845551572652479247671061321489150937374164023026932647618146731838861597237485044268729936599179400679761196779640218493995346044676780926330170799571948035151308630711786108190155704768550312460899405582761537845639749624358768544288057952603666726631275242251811655998772970860388396821684232430189540890972430343128728820926201185101076290692764477716359350358004855937455263069389552223614064482211797452390626878156021734534435922252177242295408107630094150854764887972383760931659347602079597196244421558931941718151762107782808763358132444650765361389688300185449366841562707640523822677013204602536565258291686443795778682802106174325746667582493791062618666205470133378815492944367111547309062103412302457545631568689203692646121392775768610172490977803000462054620912927337797044977752579823860368099309076301823194644237250540118264219830489770127017486439084877146938382161180848622578018644817061617945678410657981459518387054281275531062222600360023881001618396587380888564674073460833504476273684525197013419449622763939107153726734790930421215751772584720117324852149580790040558016334150326243651184074238687170690601930032834203687411466004175164663705051957355228328889361220826838887520217419706364432710375738104591943720488150930298186836441284223238616853929206975610077061328760015878079124762216168681822730057204750864609550232869181313649234611335679377625716451547821202881908934282772943418485467559779772882142611266374689789555577865513449186224932673468137597377254577946936634090700911985947264180382924410106728581079633097995346094279291845120657005961071640754862648822943946855650309412596084167694636883455996938068637197976921381367487972463922078362019735384721860078923932766395358497395762776349084134311388887969111814307675889306586425175945608903630583007517010253358824753175957379531578229906750453268896651977062578123460314725430393053732224592077112126102040227796622572037748201398728003852413283580547573194131097622546249702446279018838754651375393745910452451334496667058350378918441613824586625739098420414176865140716683562429590940187932494721420008170702253380087643788343834144161695106182621553534564718856217208611679193554574656954608132502668178067718106664767228748312695293841712565383006778199653923729853150123913352326462509849085327407680646957749114949912513447109083707419491680783234531348270740695140572135867271078188089846351100193014877168504095139821552406037004831048225480684817594544377734476131043468106653201616065631468196349591078012162110946266878405151813842084016701786318729127642341595590525568811324895353236523129002558708787685787808781717278953827980144171896827973882964907640746250850103058646901186950131675120658117195444903300566269892605495021148871743347970764302651106191624444212435968159238141998511373037688345609239499429318390345323207422397803312512006086876382965550973307494771398988088081868685156618461416893216158038695506782885702220758559276814313813331674821061244097186821905892530085821976343192916260759090523515754462170159973198523640040719592726842632988307399471814479212366019439438657331571678674503066139092657380165414096997124082581249821145909988367753817828175537659823527373941336913955929441941752442708721164658395565096621938035631289624838439517416358623003731840746739904423013601561095238427858039241491987025700316468054013804438604539540470147306052951344080022832404083992116156338136175386163485264242000694843177360517571886948354993046926295946351990075516659986196215957483711544498532275990253519712525041937829119355903815424305084505225837189038187815049166941379331328878417480273978116734220398581572565843523277080775073640951321536195670581614335763815528136097896852889490839821004601887705686319153265345364097366687730660666091416721315086158568450456197567503274987546198425266025935620267766522946971954747670627961641963112543904815567737968941660515139995896774555574429123716911002258148893697797397169155880593055755988449351471981540823398831663051611379920168669347346292961393106693969371586681487264964185052396521576459880323968466585543780017373186142014072103829669957594478600908567821611381271012316205459356058218801210350284691234013005143386537384995417636091976503419316522490019308004072192314150025087807183091408608764261449305184128184553990291081914620094516492174751256356339285605968550738045409877209518576961936798826769741219451561058204476054251190223679375583479123211405818662601347415893629461035573301935133380988028345892170792537571892953265454956954102461451797166443314792178431175375983951320121752371532882873022241689917509413667553480827699743520363464358875176260850240708069625279963675734808186215603513564659983685430925865806354014739254959583877710975742446665952106969504027000516784921968917137175559568433321903971865349314875055009595968521179802060215502101891075033212571100942209921944017351216967121395662489879205600583810821004045942275734864985509523196386169759440787593270331626574351746759450142988913497210908603441608039196102513754944355847365302077397796768138175375460497685221884048705495106806833643908552508893516778850592080141868239254468936058849130728701559102899258485240314754527699447816009618710741761381905385415307590934827408373710601155981781285097564006103330850229339158727207259684702272793824785183943551113178960220794422257239583095430724948943248711710869421672882315719631286562832435454689710329838009191835140835536256147226945629210275824852977759606118549765361936041433519329475259361211948205609777986545851813101721587141364176951673042900084836733702282376433340700951350024509235107716548722967054941102380059139269886276903476130859846335463555720007291606585392005295287576166873295966481483077485109078443462253298174134286159402324434425870688423588455230676805361710752933486702908003610422741141187657713041404823326279795147740598764281164482366412823062976506639203285145035114944151786985348284096413929050902438021536940737743891058910108292714001518006461206623768574472389954619512982468892368372187681651999625491690334725242468422919828281384322763579370152411218489237560353449752067085412555072348113967673270867336867100170209649333854527041314348750171783966084181086014790138273493223038651499094845900162070629410440172896137292808811548959431536169315712926360927311000143737899383617888973379774873049091280943938491290981150979469483149856908264805566517155018752240116748390937228327507371638352262011808787072742050308036307977089543000260219430583420162840075412768512331104698334823474545505756032832862434040398734649001859017277886641378456283415106759338263975141661396096703007495060941803377541234329988279617077126057702921151185424071389242585025535255437271265098576384931473626808670299575976567673012725010975698435578979444813094607597883950992633874694128313900464270792347219074685828757187847390460021757283109789067028470774737922287806277414119365831897190789587443433743549839151689805579300579356496342896544843045712377282910442012566901798293254813484227407187910868317236014520678633524083148509558498447900265945566941476002315789558623270515872264218426958681628716284743726798647006682777945065369064584047302607384662879572626536100300514752374539444669731708706388204683812996231173399458044151053319468539860516201890145390766212741067754410177322030832060230618560214215249547096478955071554492592171287353717305382996343527221370237404478957932856155297442425974267765508544583168370830576296325031430316025209131187382352737086626400002934913006294874279527358094871573647676646494704357262393552126464217786047449481162090113941989933426011399098278895879988761935440003535630708904965506499537679439708603004801861262251468766181675849488684166490625057656177150930480988273961367159691869985694304393558161549955360942176858919656180268212058478817813525063662086825523329086350250293618732075011728559560489998251102526866045303178577415622190037976733324975618469741247817530812949648201445690436945368517662983943841175010573533266661679162578059910958449471910438375700752584074858068960352620242489271422546037713943289230281707355821268605927158061530667068259979243494104855865706823015548977680897738479621144428698584964565391505338854888841708159660331131717219518412505725399907774585719913234284403513515304878896258027028104625953816280021686315977136105581387544660661800067355388554018578152315899348077165260728327741185483789506202184272750177707763623475472079517038276585060361262063945156702742954166166419732115056035149870839621111896165359685979090824387625927195195252140609586819015416058681588553638382855000926814124789464636151693732428515893338510819033381641394192912890001481072487331946642790838492836584176300175003392720394444001388964969195826097682960254556097576352924831382328942719135930244772688947078171278578114748927257614777118560531805569324575745733284797434224563846832905658054502233120135008189012290960748686402657142867840837816813740273842485213046988866973812475172994395219347749716648987891560391256797737357876849643759434648170437696576361433341395854971119556363481050153870441817078813468801369104644737291877626850178230238243445284963298659425763236043895612406162767681781048218422398439322538128900621733601473996991426037703759281552365993032820938385036850387786322644624009311921763682325912680795473263082597892690146300532568519362482952395152160191418294939645601011109579942207743807103454450299855562088003428947920582141086828604436755503203818516256652647156779154193288039728000299583384717899526327084807329507227238828182318687234932308198064536822844764233910164515363508280617668429335224285687893547154424595190350288073137404227545849908302025333371499413368223975927189754930237789268756514079122527116033748294247879254469597869028589998373505217910632772985377365788758844390616710329697517968700399209752337358774878708986605460393232998583999333639671829261953817307354361688411976106613742738143054703915820504694963140093735073364338044104454592619745912960830552749461754795496073699962337695287695235946006993024296215937484403909566154813635610422541693858323574781406804903532569851804903241158245128114578374455630289686979538348025920633550195100863104100906876131550533020127413809702664766728653310153842587115942861839469847059215546611652103414437829237343654698653127460562863903247563301132516512253394219202965761688144621923625921896755057477287386074744428515155017947829106012969930477533726250256462704509099305429927264129605660227899754171313628940136841226807753185305453165617607856661403313177880834409469397642229517620419074541431890520093298416598511709818521746661485958248749174978890999887310106739915882951990655489821406202553915744583649588174980499220929912142974663777302780713200243243301085904610645949296010511045317772746038690876031660404330346467394356999732981856777718024292216984206892699289113086313882968706157608278060323194238908042404151800429294815285995636338156268312362085270782194971447006048656963932043500823260234519497101239214880111032848212074993760024658601289448636905721555041428002802302002567378242689386599875526466442729465304847954718579941779326608772075692369677259889843677599855312195188893496295643261539047475249902495380658921223006495088843832769895423579961794888937901731312006783091824151459909214694844478451618838770110170336105408214510671736843785040186233651490392430716054495598488930610721822591136164276058621411747642831461269290927603116317876253178442773218473724836816647745284101589181785184379472893693006593611286718629544247700254668501793759774565372311592192603214204503309684471047759413477253278040885642824836747985409239617565656545612816687849134437076106409537238374647303467926349194617598078058033955374611467770214200262934260431138238708080165890722863936622043787676425915145940295514513226420427257129333678604974280762166229129394426097301534795375111987703922786873179802892975294144999922395081297240645637101016592613376557477576023228529830741121567255164254334640200631751605730604105918287019073356829276802687560289418346308437242856224942398140604237926387084366874680919754727421381418989927549578519232415929469111766055477573506934296956110041161816711407940233314808331787298197840652466920003611777095525043757499284691579759474644365308239325908370828053051325827565598377975586793400579893012140678112542276114178874902630273994984497785012756821731355988160069085579923822573117256805113872004869351232929191994711373146742499529507533173781993363870739879299753436579245799129093711059889433604022961162437473970170039044622294654056892590379453346907624199170804234610167023240073396947323370815369252067639960522792570159668191880221530986260220720419431545202972420515909088748475683233857330065743819830873571652911368650871982848919513036490337446565084423004971725318599686907502087589287403388172281556844356701973817918374966551036921080026127489793635712999826713409157704980570598475197257142061939198112510629895875811198121886636792062174148458946205646609725097021258168074984816851530451874030752184292621620406583507297100727896572692243265073769257503170424527433546452321220242957204401359739937334230182218462956176290338624932111942848512699233431443359158793631778756820657488921882369930920477709026896698589919249830197256187641791924876472636387718372085608439572841069858772290463842181022981964750239682350932261275279133559418068016868013810784879360749490923189891268650539871407598616147016235717445654220378909764057853497475639117285157916182021541681781573162560257992032188089484796112485884779228867650906945515156289605659806348724800319630001661729042306783426591780244073711817930561486879487163022790228842384263630249049018792139359622223772453126428708471181119818886679137953377330988241426967959238010435502777300530079182050791017815384695286604672104368442913838703030849999267379571628124245875445370546188440317454330393225840933964466137389657599154213901454300816975527775580964903938330245685364554952487871432458033934032973628181853584658808072883244872720871619112016049804177548958904256583457752979938568867441002515217264597735661070917101514009127635850243498373535115736192240960294378274700441524807181421302857093303650776809582032668829350390860537123560088789196450010462754805088021129129465603559485591137038167012106759275042367239187562491417786261488023095325921443974383764476902820226610370355641540021681042258778981302130948003209544169183501530072617996586624696945889159151793973757832127395441388287742127662532414410520011159411779871659210213292041801023120101616791298230218410178254710973866709578525291839241375211921533567143023088207387421814403364012921621841603413899639896782876408542486232432374872580873084413535846813461541850635250719204776543242387049322760604553361870856316544376075714102003317648670795000368244355796014217496376645836126370314875187795001705830789794993207357847948831924075808746773383131779641082568716694233873347151119724265482652875962851240233436819335608126711290775190447101521359233425658402061764972128701043934209782657911162168242501209316534951535292533227731961423317975403578029511066568162583639688536865096150304851084089426973600597261504323769944941037960999235867098858647008597479019591741794461955474834643447210561269598107275519341850102205103324829935963378151329627814488186636869836349116908911870414426913830478297075581646604043155680094888401687387968434152214535587810532303144013177448214107344406875917530842585788094501657173762145286883885344805236968103708277800151321650586235106152477930030217448832527719088921947744987142813981090734357968223299594225769203201908920050883726416352474123328710443880275760163660404120844748732845881779736833529715159595257716071410863181438033862726389272433986462046911487070366678674106322855364217184352469840140842537157806059115114025567412545032168042836226623940024593968850942114611411563724133232298736229654438052625292649339536694031546013405774153770971616405967870370873327035596308288288044579425126238743883617128783221172281759548568575366753012141397502845424278290864813731793962813851159653616217725551121173535838859424411872871512992275526253167137673548862350319794206062527745906785985072837168456875964647371138204524658630970944712548215971423521291009688479080289009574403885815540281091197499886970704964096631150239602319791835727168360348102695773439395159253868730425084663496956230334903462479678721294529446378950226944129985512628511309732572172392219528198429357581836964411805792905554761964776554141030627097097810336087530137752354657241708423091612911385794986719699130813008933241585906829936895743429917483962888551026439505171571982157541105205265686098878449044643702135002537590385480521570677180834880856911371102785528822841392256140819238325142113600596876665736035770601845934998193494249828237339941134761243219294843152126527865366257943896538072901585388867657278556404811388016687588205942532449992977970215292412772564972058500696368452139285820095943766896088248734650982946058513560554747330736794613692501339607991854485972461907904125280348943596329130998055609146007623464599721532182657429117501064946347925455209309433279342694450017128714329348989939999572392949662484927845782004291314753635432043731389026101866073008577592743948995754652938721424025329348463494601085931530388964346262815240707064930595307034224728532221799079261633325684082527664406099898501879692390128611953704761209102400216813028336275837814175422624634282730412323036368788747784443398471991324362469788716953525468990153584129472663302416194695910894389711154941067870080595377149639957138144618317685220229207932983020496849833930651199505241310207170432433837864293887577352925846283745336691044426655767746867506726353493349969261948859311032716201482757789760870070722075044299572253579638002289066043317135005002753090686200732660232513118258763547796079153460428274233951774103884760884544590285319814019323894864387869859493634151294367065055373472011588129035859831271079678860625859148479376073783175122852501382497346327633526423872012768712798630685458540050147495500669246480826293875519428412862431449061006007620165687411211379063128194260009408677671073524396330139240694680933146443091789417575246772749362223907839227139653308823106351021477042891212714081493903979460029341019641502061913493064211800680206089070069357920312746251595627523104137165869855603587934130464428340988994677130713243284996375806753489906254441701806487588581099875780899575431665602468132050778310026325991192317448393938451179030733781180478096108611800166570765049295957075901220359320816103372920926215359565678732065693064434535901047138205870164004171918151670818479934955391107415015540526837870573262718382556375652707664133264081128222770988187829545971945303596792883939676141419791005317414397982893408856126692734357364796539786128303547386182303353357641049246882287648257315018515883671567793341157889299170479088282073846875612934777955397274452732822102914211367282687143695657533706035170624504731419485251479023236253862519066421685667978427179724636319881737429904212088057041574299251590577186770762611199494664951256446272767921242749234108288510929163234152630202499632778106587194321189124864796417570714024467577544914666636037931079104228184652940011908389281468308761195083857917130244206472114806894925531412335241723847586752366240229863229853798992283563610530973879705400754038173836968370447422281454103493327479042100597638036334896388125437454646282154360523726267411740978360136330543059958437345116608605727084995499331647692254902432639031904087194680365421329436242148453115696214756885546417799109342215293908772123629480753535565202814110217717945384756839571924034279385282091228111506389926615983591292603070509351517554947733231019384252900004003499612778420087358824372758729607733372679989873696660994857748300575486581050330153949829410879607444398707996591010443414562933840620934677990392008244156750174951889194687503954704677126127686055329443355419084062444487773930396552496917251445146613909736124452483530315255807506878676888292796226334446541640064222266654626379924903374900282429502885433107158943531578168348548090348651061375945776240806087632792289617464968686311234651615913590955406693543289367131652835065659353499034639272469075562552577428234916071479066202591026913792870650222040319645499162785240745214594303578557162738798275972681385770426020729815312696415603613404381180685703610943608144856764873392328741770903187092521131855896283618032024736248236736549248986509914765564821044046664935066866963079240691394656256893333469617924331067049153841794252515351863066313769508735607980526011557924071685639682977061237707395592684084749314530396390172948926774506737627186100273680993893101194857408563863128366970315077619923514707933430731931477385699473126198460577182874783579144898142778804455412289552141168701806963280561623094269469079353573786174994218736535124341225693025342970367917798915478752367977773239957129927692345727153189326618917109885990761246249524420039554714875802183091773130069423811330738630019095221599997108917898698711653780603052774042031071895274476862307233646701773127524587635417282411542704313001328887986660089312934404524864240636554828575767533392599155259698537650470691939877208295864156501216906835204566199804461995408645488620081441636605652243167527399605853449655599157830538294328206984334271759280992961698964916347246745480569905957383070010211642474138499893165203778338655929485042167916379534368065811117860395610865742617072968740284598232486179718938906799206868624461690268725823092375189151332279334342452931326408170301082201035290356966864207222904943436959622830135983606956058517136246722596069740933868086392077323548552341680005895960376709266845943543979234753677079396247492552369510377015817277946769313746107428831876989674773089384150376522125908672893221915136240809658866906393933951960794096784996093911292180435177006156269276790220810637820651614469925902588294578168156825855921682896983474732463483560281114655797509139414139613212557067003726718650148388880888963088290157738586556295183207429680891287677438331824041961655638907787643264522095165880279993116789525012960851045417345365267465826621029813212410474040343396837148763874874000108560509844527014950691320745931862832267541068883108880159145557172360353044628910037734202516322018405170234647169857347804656076562620383833963636168140229031302941949759745125805700679551422473023600796384744156642578794772865185405597742461657651763003441312979017178372174076968982351351905463020999517823981507181223693449383630060509251853128417102841070812033030598677427109117244806190836452522445295952863962158116315830075406090445202623344174223918763921636572912924613299060151854194778008035184183572861880774257638709560677312236381935231922102444144270919676930970084427873184186721544356151578699460117145480412683221688088793492868518984687643536519390484532454587746566339579235261546871971504944358769358363444039679837276468680769555109843300144154832724538768210038926124174567903043558677770938104102503875689388638069932311438631793225972416255641510102382074450273119407216479399785723249474958684730784169213390497821580445050449377823883795477015296632630159711626505877124646929957529357199660524884020482656578632565362908291154613766049539400533125332375737477605174218754971697848335582592757868362198052326557982934094743923723471579320879457702522833529237503304689323097518499815967168964894412029750659807240431121523908505829450064056765078416542849723120416904953904471120069100578259707083976845636204637487851358363613292875591248582134627353648224435349295527739096039205386452004018794211051745385954571799123485445159076786707495834270176671665339383284815831936928377453956527866741432933601478759229548558679544142448774621235659608701896037659120376169524798393921638757181055166495862850120982858363367589528967631761371800437749646569390765052818137538159440293274067555634175574431745315925481802059788538312069611143998575181018752356868753980328848580967128690560808480071041331128067009101323123592346069154327353375206456563061712858653202254108519964000496357239363082366462939323868636487732186461973833929389192228710823038087257642998066225477256417498303366922517770698018544728929370014968447655824274304390229158691520693387838586966124096998957851069188136185819666402810602580465858991793944890648803260812508864250000824743903887634052186889358201233660288851675241360289265793241296147991365313940327465035027927123173263090250112951052449357883667859349794851601586583600746886117516808570477322706378406381591762986876807818542182058001423768839376171724073112585968593415856662414073784796144145430952468939847477303272179391896306019439579563134154411950616085180649461072014532482422936589209014391932605345986382921431884500012341093657330368845414241505119588011387684856729451589567247768821517081686111558511529492374314391653149739363692644662322882135108853000567449745366769311126805608028400758217550541500973641872755462594110089081463474413500051099561048180587094729598669172690356093890224617495899584857409138087296747963791456642855430565478185847916672385409595546859932500374410582524868254093538223759032302831270723297479623253228022799416586229532702266910243505150752942031577688714980027059802716291067961856677140196981223258087940435469186736063911964074412594448933098973929401958747172716941139928731497860552726898746614025869849137394891274158132005379114612664132859932979392284034418016632147816977161630474365897817849892220814994194301226018392632319844954506044350507614503641054889925971451865405940777210019891509397297865012911543271349261905596298726897996215112864160712573740994346875965635104200322937027222675502682093219571345180804540657758142281539685897855318238019927548931733576780389125072405860702395146119345072387722375535582677549347853268854373997958428928712814221670993169342876732639653985913573283585177370944313014557673943391427472897267874333947474544107889707163997435705351515081621950851125955146257885312359710771767428105542264846842209828741789906744216257122888232674672293989420900677835996840243452362411969357704771200109044031420513323522969704836707962039703373554509209018786024536016391360728657857529375161048229690211473774673369442741753631677194748950996015114284340812544383718816533288276871586942608958702140554009049247486911060002721784049559659933668972364897244626801817918291471774274803629612766887059829532578732651560543449242963238636913344829804377649977902194401932125670168364129569946908744562578897629850913848561633279652293536596136570152123978138792181643392735688254543570035521616459478879363010626526764077915496534325403056757186893124092254882536003396193820283181215821479755600430040360717042190699265965638754826878903658862733926627588069270486939463399449227381515553912593506686210956445499755259695472533174274063276228332915253129021205409531378558136748023273362881814319605598040098473005122249862694262585512278748961360149751005412778755411630291642224703202105051019979047169840318234374801974591968236734342389045605759335797252557978123643638671158663188702176202419655324136218399544545768036475749372844915719474906192245779209494014072530779064061233691710673131396132535064140053722407041897333824260305384391075193661701441748735327104641068270713790097868945935215932731515950262041617462395675807659277859896129370832368800716677500727704012037957808456063026779273479556355315287217706794640581171046627028912571925597398410235107020265198040190132856209245514443108197971832028681057473745536362682992409348248760363243358043518170705803603696504664698805671266334789287160481008484216611020129198231263902444813239339498669040713061701535619013283911400533069892985297254586264084719279920457730678645996522768030022582945162557313490026950701755493772552134534238953279810086950834935057976609934161730362940379280637524264384956308963950748341622872951707479756464084974610914619729769088307983129424710999084349697422610639748277398686319798103093197779973740218910742586992069523529777758627543653326998588360622807092727701891867536390883284370400309606179294546666446736779504465354584571640633411844027029968484432463623442792882819399670142102709672432679690193185398416920071906057015339781818168048125143864227889487094834969728887717214741922636962664566288875771992106509695086361266186207619944165826177138415701893634110317100516372423782038280095865988643111204263575102503301022663030899661682508673785814988380857110324227626656362209041386457533170259013065549088551143471506685722101210474486715742242494093675224835711680763820055162743728880051137371832998359482717335382052878232249020619751597407172100591887069120892826255862344287264784916720213707729470901683895578013741810962587772246882035934266924905610329610593313029553124236505688434255089399116959232541963124583682881497814677254200428933009711312154085946677589059621323874825576512907968360992518620945508786058062641480636877991986516306077864298755975371678393406097577429822937256500182978091465687232381991158451411754627167809644848070383538779193957716324874654474445288183275903432344953549479315693288602477367068658980037754537911893488603865299344230001361557075061625164923464601363488235325405642148270482555564254104136399430350537940849403893128553764534830714943338337055604852979794396268188362028919803970355478551604975589107894700477167907159687496195038949816520445886136715773751733682265568218381998187281328052538224254185569569739540101034012525926457534063957052876621119619841802892360791755236716707224411438310218560569974689844762809054579936626751203669680867724260310401678194403743578952934853453052310429352879028205096755467688692804055809396412159062430445367000889175123919610975599273372798976866949489723451292134783011841581418442358986891816184064511367225347849965115448031918427984319954951341747467961037386979481874032026139937176832595571206189799498436261802537199187219746275513240447456370278854457805353280961556693665942948357683696674496043362258871959816030806177859976593101714278823071014037925530646797326697238925431604776665825116869940285274240508561217946783501925412476264826835528438632330282285444660171195599489565590524344048171947545317035397978014799419427816655948605432066149485781897809015037746285584225612271802448324834689852738079033716073859006206796995430398598653152483064968652793822023931496836454424277132864574646285060264947236150980379212168224338188369577325997729243056185897305578495151636603694205516521671132382135698608227144981967293958055600072842620398529940233621142313945786613832229071081120439009509092135175816648951480617025186723335990432474519411536810032286535004762430783276144533272515513684985373681227460659786494766941894002540015018192533855177672542222907867256588967998975545562499738514316567319291663944691807355272644759813851453202084557295556096560360091659348833477744823955767804742675239158555609452443213582290524510278381835344226355503999293010741196009264228588112660948165158834246525856613672129761852937049850208438977075397815837022164410021041511156357659212984853103499253059496793640978492394846974958180164372651273375965530199725771420153240421863534889165009400373095305720806960430279409666216533719710432316755553323707366834196583207585154989802148738875191300756985475200459346314139805387873844775635680281235648474244703972566719523115477040522105463540618475800500604286633902464314462017431194444644784364943101240662775883446500714647978594950817735827534596459141992733639335713493288251932728533252982755511593427446702983087812578578528193197531725240749454980261469059389750984073605088637886951712689819052179352788701484340368271922566832474594379932828883773014944539458884316484865987445565563345511532141382542404172052343533365107485017166486600632472105555360299836786809123288929836362894443023730264642286931754071125281318715165443948920901670305319016851429384153303229263192339787843524460308111944934941814799309981954463568470934316103210725118166669406637028461821752335818149998002105972195387417830626989796686267305584339149230630560962528557315578172832275270986232974663600669868284038496026442164141409517924877077408463529835206433350046776353578320984795672876369175536011378395278740433863410797435202691507594038723631443868251067076393049256784171320208397374123400604420252241921609919829031765122613408919238840701236942666876353136785363334336543604844744630806328021098265808252555416896629847769120682189466417305578645329993007258168903414083251969081468276961770609927122459125151328322280487342329169138590614405519879127321545444277272222698541666569182109206670034492396331375223321233982827724003515365100997004934070073714764593982079050113539792361543335082307688991308367983597269888776730162468643950489219577248421727500249554191490921735190679577117874172569483961605799710719602532100130461857049247727072759870065332049518019604041172540004009002291236363595708032625562513958151662404995671643642084076566091157666697511770867026850846143105712809307889759051742573529451582873470174412642136302206906526479266338448359896416219185081096299837007318922486327630012033105172224272713260461499090651804933482584800526843191653663598370756569381771901898069628343206974061599512248626951991306889354070848810127583275195883092748953175775748422903935064951208024036226832599841477774559741810502125488031704588803440175054114227947955014864199376803311174751927791794328779256105177816588010213380925127963952920767389482051182473433759880117443837702263460132736732748115468370916392689581848497218980224585150649869554911775308599619658639460001945600291242904635326978327663686295665967516942975426038265648275206560947375557423215133154517447561246247487026992144318362235419079722045098742806085287749879247613368272676079023565804929934573371722866983295994727899116297748699721809374374750649778767404630217068963914405735820160115908071084456644048678372141786189694041883411838029448833345986086882685503662625640244167772656422713467514786071658433458394268093154190018772977415814482651496689769537007862840872505905387530497554111306121832156217654193019084115589256822695708748460891420597241947075312539912821476414473550115315686324666857580706239779055317063336032581548648417231750857693741424893665089015918271614220003319339519631467637814530542266550798702041253234651382552095384573499825842560096455323928719843080310273629635608175035265227643111534688763841919323369694051281723348893006153496326219204244923929528979649288120021130900688515082334307538346434417760800786973850249026130943605298684660904427428402662321204323344096929393915870840173068720059437233536550086751386104641656037365238520680228094427607449372826608582916708217462203242886282943755734856423748622094438707942447623321519348272748315067276601688496412185461326097764559660484773968305471963971514160180797043263944800981889035143506494918836059486271046599576104992643855543738122566985108597473245795763249959599467951826998891794158976893713487790281068863088971038643778264767000900899819135635838566949330678250186795532106361041393255349525468008147623071250767789608526881338718969832942574985020894127867777088114655816582054562820991872344799842125698701344874527629073137825523910703694438496522508215888215919083544925889599921174767614281236956205669252817507596752095327484435535656786395289582674536430486048730572621975182743695763782179448156151929874103914842659987733988692295530118654395311993318018922034281809401771917006082577994287576441060886584430754425392568230889844448707991737339509814299381461431504376085689304856456139943037277552430576383426061526576530523296643728830640535952897729525683789257956470438676767848880745555072617991136915276993512876867463252216234091071836821584400945749578160050432439398723639419346379999437228443536207859213212646274133808703724622699593251090668095392866973769144274783139755713376653476752312794234424384325426341487755569912681410116794474164368335608485075122290251102101703870214674186773303447845759242306788068931375805735741382899529970250479358245557911101536167291233857472276342614296448117099526469331070010961383023045984863946686069053471307082518754406456627644078118688957016503118642990148048533127046816896574133510559036524201591273980486292547939583029209238206402055110049913102564959371132410231039794374854253025417156845684212002862065469709422884868602709318086873449383721640309439635941935772207949905896021321988158994325161054327883707673923261722862379423085037306009936613842529978450095355807821033933601165061302351339314236307752044460308727276886771991738708740016924535819594482812544649761913292746739016618123493831269382918013942785233076384423213180780557026666397516002271118751670264431123500999630466108309072772354090508265830458702047567118233351961404534739308604267306677373272804742072611595560858784401643179649083804439357640769568696668569392825805477912989460046639427003351992546744909540914764477827698338484524437018297259325312993814213027518442958553958553884804338469146789638963237543629177154059398212050091680135459821183476259882159990688567612380614354588647602482882103884083070666191364473255974007100674041947244578803612235921899357830842934483034941153711698480003472424281015050664775211555816303052200332352613509573909511944646673811388366048831659792457956512910058626221958163544426503553842748415018812856994680628002834449270882204344285316266347842831452013037299779465964781159946836041230855361485438996155940070221301746504054615920894670107016019356020589457192089795258297232625423312824809168357308474259528631763942907137004646097577989098381313125513982340792531100469611543747821677634655918053388610329284637556104948331077666758555571834544428526308787741554119731896588221327926249525422524300032798379936670733548470314534110509929799772971038935355821858235359776738809209310746310809181813631614590965231072431132893252844242664320300031636461975981030408582702476580505940824021744660152514786633311768124960501005093480707840330952885603873944988217617304788790734725159082082698602433186249531981740754048433354998713860947859891229706852566147140910581768156565483228178132732856621980911197903852257373578322717121010629605107279141310964787273393947150724471125854958377078442852463862449585703434272259438637934336771566766309466118202207279227702269178188665691909924508850618375564803908570353878901612719028223947729961671102595272540831394049518294875037783689984209583474392617690787657489023150965736366659518525946193790130483114105911901860983730687647938241321893577373342473261839648661136037408145150861135151107106928311133595182640876009839841408269072345324232054219161630240344682809753092575322866095021784507443538853708572391892381986396718443981453855580035847612196090428806052071220455403385009812327425842035792726628869312626870022250072242131610103813992294291315596876350710741863642782365370168713622814174205951159500205898620998168775806770214608356428545330963184989034491231904393513310911969898719032996984209309851341335217987008633166584965889716134950808973443724403231709646369825723041028500370394749519601378245497700930486427121764983796443379002039485034898510309150230663819757110452033862603528900565571384325160315588735871040331789660183009165489057187379528268693239235176270186036099631598502355228938436077649078534850073272955763149760080669759910128513622658745919030843301003294215594066833656692175688504427033494496895402740999534806847656753578936169295897706589698300692596005200349098377998053088226204300418240454067625031463268079477266395312691841311820255358306680491489117829092299816882153715893715025943492415758956527032701180843561137839325245344508577548944634899190650770034135957359140452022442571430080515208467622908308614255008109785090654697331279149894962607555103785681964873143133551065273581807125127831110732451508781543444533434250630859760426244544719703195114354571982970397854421695580592466878476724506857728710001372111106847980011659688130333685614603091511319400074310808720857864028483501719411476291162441052719056856121024953371370323495331301585537358864910823136784564905698783442678662146555537431256056079328647510130203908106231067599330650916220263171512430794940627052473715278051149435901438960746312662678927866697507860112761617068806359832534738398444956681434539079384297609740909839938365223591160463675856501963613478388688048129710225412506021971150787819246781969651974276050299140617696374587822375339167004101286780906328329363403369312560765276656259269319370267991189678242048282649943680312998957027147067821161368093226937838109700983285360836669701558899448177235654660682738193363547305987876644825219898663795760080383271328096063567543657596856890749553058293851412949333867341505187528230168783076683754856763485549395566306528411842911326579742236908214340025688472160991094152959026854832779177129175846615521126415654815861049189811624759396271360709462675143542955436956748663273821230306653604850371189526628030901158005502291361288905218987719862023740122175581181516741035275345247926426566130995964342768775872816381915019782991421628956823514845878292783540088025656700520619976236418109395533336132002565307715967695476921484215758176923107986357417931981924284660838493846895986137746079125327044681772777979050296679455722744365025238281700067365682169202080129425791363690751706323782605675380675754969431961717769888115178560321780700718189006661363154772859230578743840108802249514336589741004794491483473385133855534663481958421623291853664531089220394377298006062648769812515574500945226890605943617000087794582587579662551911198839473584289201929524572534796878090235475560523937399959234249056826338806520338152108702501442971219913540897286202932201746357085379433102129642654338709139385116865164360825590471707484567367654012653637618746346550790992102610277562420918966951550764775579515127873764836480915610013015037428174283851948247112592188363822909883637306461843377511234146358554701125421681241479728469961870598740296077697086297629743308142223978286326216333917253873473176537799457339584315305330185639031231019366707406966455180989411516599922954491751160335556195965988319770490300094583602672204280501195490955958140435624064806891985348299968453589704775286123342486440210097411199129490171033104100121693059693346883062101324139486160203124696935370871431820202555642172521827051313208049965307068362729767902542715364986399942384405881493698254655815811602604889615125797139310408377219230184494388617966308898103826919223954902382145589853859812114392044761195030003575679434334994508240718476078277739859136398178785205719735694753569627940257183799512060415284200989099967628493194043896104551793430664842859582584006163640469566302883108890372120672360996113731602173058823796286883187366607936336096556964327572352840057848789529353777985237131503580067573931956317721568054134266493571103906223100629992669745203062656517779486597925236026821375854677518978094631991494468009411154934647002439808454571327518829169864639571829975518575763464419788723370646467246973121146971722359773213533061710649266893959189606211610644661020183031866717894756391022334726943746731705613623984048892816471704746516607039421320875706375403655167570104182148906631563047468234763441985062570966724299641717738254581741585838773728860849538604043475509088367547176378388247249393257338395218828180034737324324635629943632902438782140416370136517272759732503177672882788240154911949961379561871325770656437660628337710141814433515545609294914356317552299043920514642287179444585688523768474204449678005007261964024368852289944097033331877798206108982225487178290564324610105471307375385291869972848903626859596157747775167597425012709873545265083597359537809670289027734014779539234107822035697559808399474815277614061867126588415532964837552191703189057022517344249570474162756022953050420233122397283554034960050212859963279382697139574720023863201239198310250230380682120042428814241060941734340905561774011861948753316730737089160256946299606124668805120957917495551708658010841961745480180069266355121665679787414881052761104376662590801907532134326331361384320448956752509987774984724573803693897444862265872496365598060769565081102718748546228656771030560621315612742269931351140380572304248940787272953937131549024492168900004098160094152723056592099851232950941942812570632707785181223179864803662833325307793044299158603271337767341693263219684198503623005714604796262943814163927402394725387178110950810730396843820698309349767451108584961413935628763613632128666119737976423194413360537217420632431832518833282597584687034534867704166201584173011585937558062346150135282085701497804292480520271031060547441231666692794300517697826349360712199132525530314931443589838828335068952394548846466913394167069302944367852911478028270232126668889789014422784966452094329564311353560658520263663949856157707042460469602267002558924698782865421833520159847436104228580549917970467472444736270105411325563769157285000282643215198545029671793625907471655993668631015028344862464263150294982541076285617746953329834313002426041679743151742042975243243386637091405732249140974828936062906467569283064653195035534035560659406422006319816836986340830664722031455302496291359370768578149253931917959162128798950937963021444170801557350533096028348108810759703326517920279350453595803291549703639835681129787987165536449823651376401910644683056370359557828367750746479518272750594504113271075328192543550721826475713025845845088698911265969554600940664400493082119361405429633603227130387439510280160355355764674646044480757619009435538910325971201403145620144903469873929484803042315636518020735928113386216937460303873476037293901862177469912166145439261607189318596000176480721591125141297840492339763945882440540458688385478857959901213145370077287915927671755088754364568132194179587458428067187536723397199888851274398611657152955679687018049879501220228972629909107228149859639235132548607404491471952446395216274022193102606654350492084853665112672075252161722981516077476646246634243105693395088561340299210478846760724591369782454390003649439570681595153805135028367827348832716093331684628822857337129945649108703234034030805823093955675338470266190769825056292028390177152990569744762526536946695129170080462405461220119745386109383650439123150033396391822566344306966849601641493180856807365815721838028591236015167460616914791341583726429459366516614246867852127517714888046086359709151510088859838244745181001505550163707956567872681958881758249940655065012768716783210915257378871287196584133151446347674196721119448823738362726942850365198458059398728592420609095590523462070383239673156438029265589183980241202035376172645369303148524042292169439192255196801658554171027777624103042351742797346129867867542302156251479437220776440058475517818023213799132510091104030431089173167819118457425893663666601306470602921297935364777041259562044151877084762783787839534897906066290538201336897792930183970904099151783006251483914599569969211261833627828915641618286202149929501099047606511221926549659220679658349618559635977994842103986225181346142535498832287521876883659439874799984949493561807369800490086569287500876068251302298316661971249242196795036619232776792478017923727587155304581893259164770394491333276623598369946694657714037823567802401417908782034355105383655360442191970046274599269930237724117402089683476062307554673314576801650251792460410633823301844253881026946236217332325811110818949673407429426733589531724240046842971458698252709646751673964419344755911873186370826599233748076270693468449318046210645381564450549815605991192551723551284057231768490323788049722501944054908048579851105582385296390421873534656631392409406435929784767656003877489317357670108353323519885738514019999807156256013049786324178152735970945915542136351150924882195772443626239727112640727904627223875647375101398544610488376903986269414722647674115486090788634706831684179661618260425533300533545551655820048551350767648653785736486477714415764150425276520049374038861276309600008718864267082222971269295692643834876962813607554146594515171193225838946655417726115992394151375162669154545334329151920450924174949444224235745220986842479342367874396151500473808404220589416167390010402626457367251337295704007997372153204131247310694782372598915774695990236014866373331385782841919005446262079489226491836928855859657795956226879772290589582268936535312428744210699461722020632067464207771479831176487355996346129724884459634203477470335450805757718280343962961399576908503423196219943895498212321505287303170176015564611330463184239831960005362682131116440307941382007354495746746331932792071428355980487176642934498636119069203848274526882164407682633736772082366393340866873045126638543609057266891413097677213624315792449474950854621017073070438517285929080493190956467292272175306805657277084269737108619478736476973111391543351953223123640168897669677624112296387214773306067660288621678241307166985851104428665026223662837798269039962891318071208736336985228807529740428331817483208492180070530251263806911783654915279343028549216745263056822284543946300861537691263001612798507491044768821911549945346802127287757591813414971915266063789558542508092658711907680194313595832256331729762216813156280160358068048273866104506866821113462471945621163034705899774862679912009513218031990807904874426246102112421512304013679418330744625460552284658469012967889771314739934475763013988144653909865699309252129785586814681253283133374795879535235546874636624281691398544875735219179715820711450232247114506973108160208222050522691438608316029260523125630835733376521951664188843535009343558296262731393450596757697792432472425795797437467901815898226431166574024906967462990636322920941932664276763640825871292962981514456157011436236814487900945846080769066926595426539341289017478286910763586268573913453131819445664365534871684460031679419550299979287845986100081658116581519372373072458806241699020226506410286614793965373094256623097487103906186926953250383595274422319219689114948962186705628624009624454483640638155702623027232691056394699078693044287692165489418885429909091860807671421643781831071570451046207113874685591462370458010867020389984471887823438317666054401447987008114211890745860672005559551677722387293879538576174409734959335889830505111590138536060608437527606345433706662330196508259113879388701138628647108594337967690411265520164217648230776763477636471138874383262492218611054953014679187878127921467356181617172689597272781973146829047883662791436719478589739983636077279142101365868318676701242677702974147100656210818728802786732995877065384562202969908396801224782637269502316593062859589235361406327136675255765219004309277452850617045753826431265588985925746516981936860724386309914817377444910436510828679996895292533594724251884194907937804297809870470532554601230445825521366013812651827352657213992552350717802556151762969719822627223325527133714525606586879694362162320532698203588231007383466747768633235693253316426505140834356039042518372915172073806036722466734432312259409493418399427565016198169363098772666177670157628407435455968873656910885043437818544459552115575266037899201325028992697330224781847746473309798526608709562271118918128036360524681215211756704189455600509605638282413249161250596323183793463231013649510291775067495595767197201125058435216738752696528322381313797352735020694679888276688410216571013698454143904840672956687716712699397333579909763810119172715492169228906385804307940050241745794812397581771534750687268296154299193033975974292414307488565184310238983389838637803033117456974555290702055846715946426831455867005202189454874762702485771971890246848998787766533314784160311777234781821389816670138796388795692951463826399205764757743458400176821077931397710082944198569745941724678198597394230851932133716979207245499360298536239772211929395778601458502137883645435592827460645847034683807800259535079452372907981964387171692445042154557591065681932325646987138535894786295234746586233376970099602021369850887533677896202829001830793358706646560092702901974969223955701538900350442588749741442062447707661224406235598209613268654629273997545760272039758711853473185766954488963093067360181486283244279841946354797901935251013092806961831579407193818031923356677182925880103487015658808073798479412065139777513356471763311675921304710717198317595681620583250327700462089761599004963258156784484150346089666391285108746645277180827658054329583967861552792748515196093788441248442747483209193693333687738543489254055225658284357319093857862812668058534095650026494062657484282001603080190765848789778504819144799070650890688456028432786976388099632943398158258593372993849760085243760289065259695514167029009604682410968306838913065560650919364395739659481438395462852406459917736893340347828954624727497615800254052353067094012976188464857611096701543118378189645777578988957347295689540614301012494504803618649295895127376343936451846978840044734990433272593605429030279863628860051457325188761025381262851725915432576562645319985756370233415758698118769998324736669813859298805144107786954144182502077233297334387599172850737919527238170382034046903233809174837550676898341479853327716703657425815207316298573881684752465480487603949425109620884243841153874546239819582807970932621334261754591954946259835157079669765636315935515016517458375496784448413146239367413636714230198906742298870915271710632373627277153503582116114356061016461702707984085701784687387975357616320924606670980474175041102641559015141999863716211525933243918385549736580535410703689702864399213701248106553452073603698413696608518149533050848869362982801578086900897375812431575648683684315259660505936112264973124771643148054637006368648416410650389721690901493222327718242855201265903852209076254220173225446406262582882634435789547209077913927687390076734834772209317977931648088425736837798016312249206885635129212464162671851663297673500730828199165988983117776634368636568151718349309859587564076711242562977300236021631902661828483472955099176814632216538614237301404834390117287546969063212613063355092975960060436848725125597795034997688938063341395919407465243618459308983006489351796901643385599425977685863924488598533821712209757703041404402873716247300797933639829230532418708325175877260073575026270495422508949990245369757811950313805148639604981065749541643537669546157525126663156976501551967010100235244805265208363192097413957045787231789899821835886111849833558591729340302571744592876949435458590586539820640229888347528895535355890311648375739302510452996119333116826269593240127971933913435328059166300196261015072827354119360864518504441815579803965265870147788210061763469735349389588868657573327128281720891800472398404073330068653838001753089578804972785157702205435520456204041809131225148423204870559675336006917861652305208539433630780561483536709159134404226205705958180848317751827808346987865386724865362073443638765211632685709089851870784545681000966349396181825631268226567390355715858165929006694179253208079013989703099232392700702484964462923478183397646912722304213262296585928396971438584890232931406850666665746290094389158417729381291817182297379702058488522258272175516245121880339434753204017241271774341747981824654345808840714828907468865948281731824971083231951973615084324528035566586256510927588792080537273619596738500639980565715938828691682555425657989071873201331942725574402392484677863985581876926280061692301133756302113652043044468690242956115892685018797547918904566999167790932961879474777488098670072972075101013818679793595054260193873173054337044407563198073262017456858833232626390377732363295097174902726230031385433591335982587196954602035339490804270344436469264823707712906949910990289933994856329076207109309208209383612079224300646894154161726421684936399402967405622204095350215865295572739295969763683711176155421484593103910746475972655502173045668969785150838347976895391974764979081637250781288734136647903015943544517031283125066447498052749429662052303655569221004082537679560335122469203264014675287590304658161957879938304242034709879269103373293374117406837999967686522749007305600797445394542890121024049281556550530518421245369265669257453434767525382326095943676315482778398321852397026206318077109849493447749110196821798342194534538638184144219972176933871432190326997050373325599069256020506035557567909783728565755823422183443744875270949948970378535251973300555930564714621422081103316767439904543902312447147806905287784760346461996448595668931855383839805053357453690336489320147198697350420661689145278088324747908289069109635832760705619801982973612476416119161382874693953466410521432683639879072428774128319420020691251685264601242858129307232352918637090423157478039956972437072749832749469926700207530384107329648230882829826092332602725885524955663948197391332341562977799549471521778130514463034159501863433334264969186450397279615046470554315545460190511141854057172960215399324847489327052033979723764761973017380439065572503048565345484662200362364053420073682242858233227946385923533757473916989364203289070530810505562019855830569590627313274681838797623360537017193845891001720898714612754831775907095923465220449775283436670634960775147752793064627820231579961609215501038803439272419586244782989019558959596371699659240982044821794734844391579905167206658279231751809032486304671072243742535604474000848954987843506712145235117585081343080829421587709821747756767953680823585714534567655805246999202323779185204140252206195265467960990557585799120853160139781295677466896304188946806777925206507113057737354378927902194990206764422486528215974884435551766494509025139326706740659591888859513909374460653842533429656594809931237814897754602427974322099279271948634813477831881678675401866548235814671970624483927056175746173026743124580184780303228893368743518955236571773076486063053428499379659959692393921363117255389920649034977651260008342883203925492444700612133342944918859131523651098247882625849553518833951211044690426016816707610606021889897825095477276193864904800539273613013677294014624258584751649234734432357607751768912808681725219997018141483048275504885525764814171695368282183392002803457895578814453341142340938058409840079689274263967378419724539074419041218888974347148202337638242989948721871133373696799805339384412589113667826257631077283603444640284358448760599507860004787627754509151356514695433593690501031189321471649549580025155802451840581986606803628131764573675813312959587036792891577939126863843440496875249616603996849404677379599747846467116885504867007295157409956905314354554205897506393226312160679451952224210576536959437477948971456905721018788792018096938561758973178898267666436664058499309278252383566498142126800633343321503694279501206659047709458070230593059045494895282474336433105774590798756148639259150660986469521884777412379429033200955879773425766933413808448007183233337500770317573332269636124206075267478616418137636103512612687792532400417541610533919269232169364528205689121951462687396726310427230785199815928097892004474815299274732786009724396652745694817354632465973694360156685131829511635635138976266919595222415593683764354101054106983499268342253635097994414505995031981732562251084064643966839755317995727423134987295059598557148042223201754059706945357628986974802194244067673736203546041281435803791762036653777115509825994111895283442828482716784323741336498449929797200555989087183841015007783916392172357952691174898602942395219970256430101570610676022988703671396062031714775854742849100215892796963370650604047125464076815114100716435543245820446033962702195598380116039352143967180775248445250900194578585567128233520785271151980164785638230435928889542797773114908146499851920059057745492349092042806743704109483603943116036875869774302565616831398897691903818214540626386661696458272568912426686679626955926181233419027139359373838318737789068371371316461656618988469697115082702123833880154558722517077104260575072315337725795774143112481336504362692846545383648382345586727930175050060621364237638592363868266816266620808591819391121361133236363088591703103760200463823665162707708537213532641435039000301959597254921063828847809487794522450140431134384035383364554128954722507680446055955561217545569430007823125832942344367054989202720855525048939831328466441657880425623092354265828156117255582262667274755704422898684178355511974064905804973213934615897646183292139369974488241104171942239608264593469183248280844258209901783107248518164819024682476980365659324046708817734497462805489360409391733308350055248676871472582026973573043151233501552754395009454793718341843991802322210856323386840610251300940484288268180662158699837530054113410183995152739754016181906852479285864344792456819002928804427215634035196007738637368798378879868764158931872093382010295105132022356251709186605182261681574039288216298359409255685435501661466386571347596917698207134953384309590679050443135338242452721718585123263631875645630630042330405782372116547085057349813615582641456968532598981367533462550256724806711899784698288227625506220523393682042030461203997591463864196835218901647332612586487851386089859512997406976266073170933311305836703774153514425282070239492666118431486364282741359931378866682058728518100117550255937188032511745795302517305281114550880464351359175726360918045473971322238190504712853024652698055111408906754061212670815637486564718573247467584567892603998241044303687585171910679832329622091173044185934318568338958077043688485196193730361746846923218119988976568906243734274382349413878693864075381586234427404800983491552189821090759707012212356649016699933354241946303700080406878841332753101085472808508594043480617016073474222021982994110090941263829188864466726949399629058187174144141958114073511360988728013758432731057470041061777083386347314824776223073473220131975132969875274437258201022377466771983522214906179133317106309091846772544107825249430398792551473597711711489268370844007772754682052860919536301393212550547762528078735420861267299673695072612189639565860495696324577861420416272593919960374453326797065332217088960575378506075801146636825421161146636520252830384761194447337420561681071152605099592908406693840483296900547940721719241523836689844376361428686180816477802733509733120906191841238869344559296435221290863914850306203608612552351997658928180596028407068968191700449967806661917032329615499049315572737014168837691440280693016690725845147514053693974275331776046742883589201901219025082315296566224341418719993619978964581515133803592224889468098829647530787000211852929394209041614308336256631567241473137468823948270523558196435369640147639228152776185533017927376921246934332675695246922370308840009904799771240782663376922213879622445617422292205557617549817649056400783126375425336962907158820218544731934249876112719253936053985548893912487593700013375252299563985966081124763879425388624252372836178973636575613799668657922259520869765161246201713808277786013313264122140837314304742366356060621490527192855452202154997289751263503399213286162284206871598458195772117502492994774517322992748452178677690841589023491841032389387417200884519758790441536470747716606050441252708638840731195540297673563370714952418794581373524279547080568198666361401907316518336688352815680570441801387868684583890433407905109617076543680240524966521338382498335950873706896564949566318883722104579472100014289812542026276744781381407869604482668335378873546320693748166779838638230119302699221337967530193790666500921101803610196602950182429175828941172658792495784559801307621637338612743309965988367904180759640332217441425855312310873445745133419924372244776115468792005626480354919207349890299526856500145648800903051623475014291733393293272361551529745730887647839057737113086021371262884957853877896950997675314661597764983634783932298138493551296595110026584134259945863842435587089962337349933228435174057055448294722047185292283680856194381175441131984942328915608736336952933128969626374449964431857807584323878612615692758454990482024346503750317273591787709535519878289576300961240693469547513021308573792881914324296862598360795112960111233479841148843294793056392477693589541679661459296831574455657959884666720089084155011116366826640092640011192096105747779796704214028635487350371940533997214703242754124477202982791759181773831249013713731146893206827074721478877936709591432010482807516633531303105441689576478534902849025260122272955956852476353003909364022090127716420557551276986549436779756579423028419528974398489832353986338716772033221041167148698259509530849402029932317052987464074653847318969612389640656760740368472118346805129227584414797147028391459304875859873239263580315669480378325129819303993767923376431440467070289686944861500941622805275129271688144743011906243754087726748221389860213239380142790638660346847184968733173205852247294970823292732824075403812214844423425791280369446735022250508341779449790528819181672235465131821373115520563221239612308872826297344954188323849847470809455742144263886114851137281679776513564697907687287754681100553455691738106011697357426268429832141400260845190167239142548726335883590982076026550164086046365907451044414873745812780233217609820018666173894709277750703440144627224370320113647446085384501518004618352911319002462493287723589130308293993227065746848458924230587889687292501519634752550091040740016589279702402497318889264168156854097842986614322581695585837225424462514516636960007649023998777351431365518222599547977437947574312640582498813464120694615673965264449347710745923180719823420129498126735062589350364973591954889311980623466536222107572124021087633321924871074293838391732449816703943260950728902999650035641495906459785884009472893613775763150336684079207856231046220633604620006350725268558271603235447457933304691807383140355058392715967410321539160734494320631978294059496033415586326397939457295198292609492234600722740739186365452756673778482722004338335609290193913871211698488737644870501614703952537667857275450095388193947606597218604617000088032214134589362827122470422120582266895233047347500281249441924971317723813617471773603752592453390944670636052446409238825528013517177228956953993425513523863039699758771592440740526960197529871976536725753984357431238468019080327695312505290983663036825961984111695057035001690832721507952836359935424076618992474466644634093927756650163362915282425572083520642622119220374587420368638960179995936230037919562967428190652954664850932307423645145405988045498461786846067882904929236143721903591460970051147596841165834420518112193608720192182595876205212723656769789901414699155372532271178488065529920280498752018523315299417632442806006784352045499155543319988367137555503429604625616208201602079339554035446955009443155334511800709386061380024098360126063858330708395824395632313312553402469639442569761751046646550435925857407713018521900260588712869521443500381386776679582722401937316017740039281090222897684329250171004265408654787703451246456538074149596938899069927842520408480769448756252479454543500501511232658930245848310774852216776554847799105130655941570445194039221361527730821529145226116389934016143096875091154781326331359998519173359186570367360031440684995868520087424027377429811840427128622160023955402378142289163293818349653776713225514652618809366556725564145210080731846254276846480613020535052504308537743009013763009526687352139422060372882532442369941171792695978091715416618344875187214262565001164895741200698956919051484035784376255224584942759109758149341410843954237954128019864869951717890923344192346381757336302719820325413257118297006371060223460536756348531086689894952913900555143572581828324204744822162194669862361244135627277446442653262736292857521353810413119034293489210458800244706973261018005033387885691896590528757992298039678348532422745204058403152732920110298835534551969184025781912434015352910112869713747691079813119313022959947679216425917113562421280809336588910321389452337763242162887006969717900666122465943532318227258886344295199761512413679613750774302083852787015914364682729289669092893739665331790539740849030932047116139651498901247011300078041967382876699923424234096257080074514628616742595452392312710528216117320341894963203742826406503225023447955291506541870347937475078992896189478684869765444131976985640361601888379104520366913677296862669714545189846571063249351590701890191529346175409562150741881298023532794543339975073314020500055803440607139900018933112081958373658960889677925857678361071050636337609835332213342358236152079100068265703781449679638538338240301039971808583384415932892312747999162700355768903854961504225323470316059013470075730567660378776629395382302039291761768802726994577276579363830789215977460388796975181440204551424391270027239454547637813254498622715732350362075039325129092417010447303271945928059224764595868401649509204961863001950925273671325227226256596313995520335910516202353163395801831690299048559978484563490854224684679490608638489119997733161979912227663662889146420876984357310813424572367276486883088343030404473379081315420679191261561938229462285126618245774472812272095975619733051779712763166189398570522307185236869009965121665581220098860756660338925712986848317900806699229864406791332504944421087815236346578108548077657051626908857646961621670819476055118211939359071808078079264959324495684919288334948967579395775898672249385322982918195120286386696391957159238528868406957259687657159029286810217506589479151006771468549924430956673745563890611440054950697171713964681046740667571467071468947686701650394113203905164662027179823077105718790767089820529478453258006999773914743238937146821069716706533517944904020526033103821747214730779448229525291423268518398963053395436734886210696925284801445767395999629732090620257455942553813042453518664931743976952124290128813585469680098377914903059528595876676438380867735580656640537098180783259313026728265683494341078053064516855015957036868568351130395114503698858054067630285510850863392502787469862869268694182576716528038195365557754718128856165022467804821175862290441692501066722498614378551234544348370742139573524238010861569719818118229925489885941790958612655741347132720351506166780672979362657010428623600746158364724764143699310625481483544939017490151243137905759946074546156534378364845707082584443774296361147727745327094963269748941450297536193949335698400496644523103491331659528447653145627319079078065228970539051099043453032327770765487779962888891844040805544423464568830290200673873321687515253933073408789803524904160107016461454151396021868527923103497267041822742011808474378790037585153328326119103333587425202822750183188374119795880471632460346730309406270125879161885758269870481399298265162958762600345280881409924280536470894381465909953929532648143035665377207829023838981038927443211036760278394897763800378499023366954413439377518385650279751878714537763563875039877567150326666314541394530787630645753201298729324641855434952242621526917332466676023081242513138293165197831556407886205362321855494523864857068300314137626921139704597472425205429015197722145942123043286224661805407478209444762057284280155985912883844589870743456185155132162099878050896966405160120350961054428061544374929755217596033628235710214517845104815198535723888617816803245315732721109676814397398413596085902828461283593538214564515071047733593710915034645182271178022332382451232809418452229364219276992583356285139896841235161129963622077275242106060392025483865291434451225194412687462172584873889034428156266479898569412245606606433677223603130741418781448172209751392947398157003245827376171601439575254870411556810024102449115332297034657243945031551305183414556490583916591172469447407727317464394030324146399197923963427643777009502214661031869167645514326022763472520366523180628475113448375554775867977609122393092428120593820019353717053062264004077467408003441416458018092259585998759120957056587020437028645575402501121086446363235312582703280627622747929694580579842146365130637387578565351168120337307226503777573867520264403646082158341826689460370966125300702900593993109243828658127430819333275757974819774304300875966992323096691616767448540760477485233634669946202155989857208428238518812066865758161690129898149085346743102788133992089077399568041550432306645633638950529463445326809797307324055983417715784982414261639145430408816377626847324907421014408988817229677148117801764715749483372978072012693845285067269533549539761757666832918819931858617308082885882002822979551108817590991911091729051287859754535164724521397588508811615615491277733483076564146382535485071345674640430636051580414415518794327626199436100847215430327515509272156896450606120542243923582219530412250281150001179995971201321497302550998664053844254428915133101824710287362573473058043289706393240302496505064016431895349143956345775593671015220511050404628372327535356607265454111441582949246754510602674884431667605904574253494561462666146475765399355974426992950307228431537244220457636884521219061308756546871822218538691779151037697601840370443218434219821306754610380801572003408887591148319818929022173153036338213991357375014391296517490897160796470665688656822454162457839803239848476086975521836129063414821366403364801511931447043172742999888639665689367674805020862648178237262809372936412643317987504872923701871547412227057818238859276089753971779348313818517441992856184587496984192301029056169411437576543306144981768858176871333234241127923779404108445220877041209855255604163377256732343217695323995322790356804821157384675721505543446554143750561967393804655229664265779458655182929479769264323996814080331956640671802240230331833012386289433680257083025952610481130537829760221220050261492569959901537935373191926674465086503306524395408984670742577404204228295699095565437435759272299321508942329845194048922307469613267139846563798739133771198217649887873545349718101411597733161933043833612126069080086503839790453278148541495192511026231313736222864864891748211043593009719448384153741374051831654704016685661530553167647270292588029919417511609490947918939584370361239328397636918236209664046668721148940330862667520286427827775463101879929855594128356391190474639679217714461529444334554288234169395703128203797888064656633093551613398165608701478294447174996925991715879301998458853495543079997133447472517489765821515893275064511089252217249516807252574026049737398388923366667026001099428571705128246666443883815048911707673467692713876378911027973024581460130507168129051192174220023681142787920858697874891604837252116888292327510273192620843588913294673111959482875060836550807349235056743378463447829241768224131889547008949508311034231530190134240313613321954651634514337533364963160018872083867786154616268246718645789178209472010410404369918513706205260961614080240077243436319990937981870119464070562240414324501386138267195984312655249740386950482278419677956073319859776158233779859634855131747908821346172262246915798202392650573512308367141119462811453475223757692037997546434428579296101503754232589927887315942178456184139083410044018194804989044717654427138305480563190761044163156144286794370301798512744847718783639386463176428316941702335517828870792558448122066954847728060521652580408295026086527962991634860227383227649815107264001173708799575302406927480555701742101029034231643390616725450145895763179148246247124640295484341864649051101969202118679525868169639430517397180765073854094168677411384961907168704593083437151846133073336777077897673820110587694030439581939333579667118184610780718025222121776100065147798503018008118156194372565542334788694842538828007011433036538549212403808532308020214058158981941943787956454808999684297136556898875723081988792783665829057630470430490123329586916473994241940574638735124839309078077197425463470915948210476429628459178861411375773624683198640004326767757132199312358440694836222351554175521575003006058548347351282722148946644017985987486779787430652205948569113224797835575999254936230988038560042154917703703457610839292159576367746290238810356648420860697386449809787866920922012711263835922793449715777760499140677180823918410875408715687274102269713192191125019790080566352839530400135646453538491176005982127036766681608718385955976002200998297392932471205820428419661959033322560148597574690492378334578684656687558388990446310075080918468254785338284487509418091458026534591082598905074383741648392960851791346615926115799997793001307865487452732365362500992947439075387635625447258201255588034697103491227754834843578729958300519261344871800197414920047006262196525624036941827741988113871019224634027240231798261334606727470082918374618836465977754228852389783932564199133196410500596932816133727028992306556892151492548855387583639870044814318950492473056696723446678910370820042597163082626395231577317877466474782356330495899330239331546110370706811591608485341060566422765370113977492566258703879238293355529153176401651456264283137928220908077338762687952131497947551358716237873631631613800575915194717585038091945420865331248360216858038269610145804132543278040274531403233635692181982421691312504020208719008147824398928254921563866380885086612792932119613059999016077095750258809172985628845952112079995186561370091017260610811872241504481383277018583535875230191289316715062467403804927471618468820857203672470693230443296548061467020513302029088873793350999244314705055593912563727018472651280654584518144994976804657630251798691427131480284977873560529025260366459721905770016945259101954466314530524017102196059518810097999823966188190937765826207117043240362776494125770451621856879577556051042552553206260683497370559623759253147501440618852471822500512361764495942109544309680779716247190737382914802011171278967108574935217389305776719056158139755831964559776846687308949997122927625824208175067350080677464185135895744596448975455647068741136776589897979707358702751812518608514962907698076438172854617053059496076418390772045536834985371510152561831903832537774406177200158537360083443061466054716923683682296583512124672262197728970818720198718966309114415323359521237499794938179719234555077951543148886473826350141374839657557808308796173775061283414420565900142115809959413679073912943237553077800852246257414465629948937444904684899932392336010820207767021499763229671618642588175511260750577046272379002008134969477344199025492788069080847143245929846411863504189867338915789457477434949030581062041391348230246932557021606568734559994090875034582482147282325431232329501815860104265606058927881482694246235045207900190869584716376777288219298001249273172836605747109458329458811028537031805931298172072214106597409732315141308284765126440931607116767319288944461543988887414798159053329988721612070531602151531452348296439894617552141078006479240049273838802078936061988722361677520998929046022874800054378018423141515126075809763001817041030323873313442561905796460613846627756163297019947508171051172003664191949243312613533904539213044408970880369069126315761466000334268132470578887666991082143647446622467795481805046489988134664026805693099235156636946975125130732485740645657031187153346945690072891110550817344354721685074592762280144105387477771691299546913183435756216279719317237236775675201715652787291565709414547275439328436338754966170028597428364773361052817526732834230162110248709494095960316117527197224570270445982357675854025119416859322627196401431049839324966877957148833950431293087867873226803296322468758708446412098367201320006553172317376028659184909186600020202526555127931991254051097386496896672142824100842010731198552252973592929259434409294481741356306739249303227651142920283609935495307517717011363893592371518677385603570633399083992688582757137284550433399719972084175848395898441267274786318598281012882311367585177990920832153041436197897405895291331255988675405019982679278940595496907697911287338179549592329109089779310612774141230689739413046657257684568689105962956390281462144227432923109620985324237358593087884766278240956878318754203593966805676982009134875124563330907091536361234383492781468238164974649770124501831751705342417923807003655693560200941870685391894485175512892401275615791370771702243873314575144771688222400019582085385574115614722216391804518983608729334385205645804994773148452178644235695698650764489237658021684621994996702930720325507850924367635305550929762808245399104921320998588935580614634486607035677611027789503598107643024251365400662552059248787871704500182857356518657399044706728262800139843224136888447657289466646931409240274069303576784308627293740991778251276858143827221099992425041491409253639639752186700685908542316445823994312099929194461464116218002547288180120246526433688297043887956094129624188723517856962082503141289400314142534218176278564802544903661445673328151483465398150990624410604460189651891968656166505050735223988522018902251807215373938159136550817866426337490342612746124653915440538614663984682176369260303247295197009915845977377527447065156688787049959589673750029484334411201430939678573959893062270999351710168974591849811880741363061359699700903245010064252582632552283639704242399638069715439081836014473439529239911434119716671787256096471070699882653537065998569766324694927348790830961328641255667208443590025696405068654244602597949000515439171094447600050740563273383320082806762011015919722704823530503260047291233904176897348673747765514937254980437152482236154835669888461091424435635714289962487195882293764275195628394918053967755072289311626995279354016705540732963351959985772238499870978986363755731723424456416816345084253358208759245655698581233968827098712635020154389465003033716447880699285427973897078819703422531119102422762249034913705251942099580531576681578321714329662615896245361996190441619280141791376142166224598948529402007036636047151659861470530186857374944984463525254898965707658279272789185613115734824155258247080252175266521813157177203504761291694447697902973866764283912596766912757772068992481561878218777284262996614455994678641637346968502209106363035350523010606243334063007588387414095470824439058466374693098466538431736325793510616989795645709608222875109237276967904430319503781391298095518798731946051851296779414491945622265780803907234045459848850347141015720643974007544136992930306909257423738305557482039762465523896310783030571339236463827298645000278988588040343329739566463608791289710616291223131944396425106470693220796684422912008341575673172365721813205732177818378686493333244247837437688497677131462243526068029476917596126721990720245789173466735972976529675652239038781073894486690353876237991926256892625614632128892236820190762177878772993959001110587859683323643311268465571663537159944057368286151470022693740670848278339625544255652744710430538079944553476274571336225792806688878133370742805396983245315553049725862922236312958782853848134947913805566859425646804105103113302119891544716005210234940981396735847943979584313447032637043186886173646373955247843210394751841752480822642850385781549494373032390098968392863869789637814605898179342461297741321138256738778133076287109923662583902605635487819543905205630485600261402152441344905618198495667387008918384980915290591273186091936872718143028051562561225601049366035178270947155666819029986569242223704277116985368651815617795068279582916765723526728804719986981738476589687611013831324345015872856694658355947089519773112881781974942392127618099778173537146253183287976330512672630941308406065258581327628723996428478912953109043110862155969216814097972754643754264531249792389151253680514701586424647899968949331436685620817315580418380088536400295564569623114272090190587775303169280655231924519447724083672255054331197255885137616414191794078712437123959894336033433678150480583727904149423407078483861578673371194258786868567900687060010849733196649775570101718809871016604137428760145790215313143559504784649196110344150763177053327066031729421192607505989702609989908752459178849813214233041184773146351594847083969659704927808998930310537517908024233726419485720180031866825017094656869481218770173261483738237829040469298428956921684634158943816629266494983947053346303167479535709022360551013350784948201825651388027841215628614878106441771870670003454372529133924567346937102289792246888185497213918044053378830740525081859522326039021080433221242306774702418046664249971439966277533702192846877489387000843274925107578397216168918971446356141648621638665919243400852895839906501279367012381806261775923971734110953792885576298348279954011670175182893505387297646163984453612706968733653615073514158326751490381786635264753067721182216414285852529553479720093240113940831798361581174546274845591138514476393027142603398744100459133677740406001047733755144363561084527881753376877709228630870500570689215275241060403060104149244438814120203455260275814174594873025723956955487503994226146457537383558045938154969044539058855730293604107226969450262032315571592510154050618829508084142175123319632537405654790124068945114832988632014004626762635702763376552578124028906022258075289567980197163605299762367525245795054772034788807322349629808181310118588090590821746766280831233126215465430462223531620408688402426960279776298049681603905546411796325220338774076076378132150354405910465677983879801033688771098911842298163488261480762403989830260450814476492786916946447624105884353732774090764163251087139861026778302714720174106136653706992325388580644851708060909992259934195751281830997436204776726033650806615994921217015086018021039861490888180241877142044976701602024834017204339687159474718603520606396028346869341017297340669162097012249820675475951125874376412261512271439343916411734557217312698234218236835203235270985622644509389312753645465459236839598042387484947198405232900826400618705480514124971621413744164430114444915488577492492362635876461082204685060838691239345976524669836962913512196984298370312756506957290700261154010700707775908354747974547207345047993477055845157968230841441636882422344758307498876494417987338999372097589475892475112717691695074249362482672541628912595363946330411734897605182661562834875882527097414095324357007724438705395485125782571990358810344790909496412858387323581847088514413659040043846973684817070318841916485726850983145040236076035205670048544488248712487968844272869893164172800426490678597358405089509336729954752388481310214005112618280411853713014417007435971001471735938704270680299064315630616297359923113194700947424625655946665690766097362126406809622653451243478905248058724763559720739776913065804372330873702918556450367502105211543023362327297656410503083142446070514208460977321746888783915702282350892244647599972563406052430312569837518663607771500752252866850376913640961518249029842385712464404139358876500297370236247483847281079521741074555488650443086987959944143405618152500417281782179315259074131316025014049543733640955868926002772413718202553940561240710849030289572503415426280568253701554095577461788830986466803008317136856850074205624361104258158932139595641522812118504540037153551161623364691413569743839329476321070265412611578043321238493854997315161143328211089313340928351562136594258134848165649288523061945563750762254139716669279166654356070472219891291148096018536503580415275866467679807891070926136624685462015378855367534281079203714222792227746727109215124891506686191535463380076358650707586368856498869373144151126393445833007006028546856844479585015210017379539626200224408534268931900417820202741960772331100214141891161963531193111746004587114912729614708757778555661832866430553380165667394940200396598453396075860974563142590353322573447479536563625200246850126655688149478816573920784393944219199733366023679456775369308767227723084504979283351550139933319468757105398025628450449511178929338767068374088499761591268943569950271339793072317093169799191522104665070867486949235215827107273171384885520214672126646950780410441731771674882660560151370830799046592753798455893159916060787474219979174501452458673251846159825123618417312746192802133947426573381803190638842251304523316624980050035130368625694176119953077476007059706679769623806624402471867541767505939573473289716824333557632613476864758814260115836321026432198354725443473883376284831356475581056086806336859698475228545479888777715970172911677164440926968664776116081002312136404113137629148554509359604714457950509693380647662388724685351592918465184157305311722976386796860679281094474637575560298399790135187673472378534744843489811539783700226607365011405047486087312126938539625734495743401647104738670987555545028925845249383111099202865301145595528041078941805555125222925831879170527167212604976798433050424360757502119511097148483276178183923310231523538024350693818985923522754124629820677550680440546783351259955326645461428968756763058742313940915597269573467047565452002580133646962023355765040329677585417911741922133366552200121139415388499423631053834634537794592494005772946419503361768586112164853595655462577997444323716339526435596412980529870125138174297997351639604837965971217211613255103529495478696570558084533933982528276659959065885048866297804628412673987067951370653099269798293223783910514936400068797978571892476862738356376171831483780165546836983402752086549373274557614374241998639131853975918991501044935186276848274746989053165753546216884707757827226368998580493911379642487810494246435552504742799529625006195182307526015737397913408218741970485482221505543158608096122508517583491464480099192730659893156731453370339637820832895263274097643313315624032317869487223691654282009912370820687277982250983577267857968590185014689854066720710592449118056010109512723234750161642749227079183708351981005471105924044527422013959666078707454700284504161627841826456491207524341456704484582942958222713338804188625793730326142770320008852995447227520561696361023621905458556045771660618821925098161302222884603529072758103057173221509717013573140128321065778156473060578197075762678897813967050432039487778162889523919802866390110468498961631593611443839666156622736892263089773261656851299317828452586891401579997884099295449352335965055253417044482384319366475575963254334840737812932144690211188360568364495921771826978492796221231474146896444875376594669570376927905977238211355085835633169113075941938713711963361205370463838695477002734375825328843647027690202044303579140487389058885747612665408871515935810881316877320347735568298293571180926074621817963997680898584582495611812144077398377161221765768834520152303299220081799380148153929892788129206463548034204829839451841413740415541943289466441349158694571311614147661117632656401976275961741265977288377071665349448900459806018885961589886932293097717406595262662872503753611346931860116158634465504774098763462903255189282568671852063080259238626739693094890471289385002766352857940726202500644526685779478044616993141916612688021584393673164207808850214403978414960684463018765698865473364525971189290452065747271124509032198151861092475433867041408397588935237778207346776462631961953108766829276524860071962533022339337208836837446228280757186135414963188898913731513506336719916456053352569191196276228971938069798472688327866470911430902550456668227415723322010965602659369646168154513654666155582531085892707577546744164194831690266435325464337049983310323823972532662237918954241689248674936771267669080650721490687012251388233547659078732629131892745232322515141122232419120469267085424551598027541903664782403190018918084454546110109866437941600766102694917791922373784298468678833515936058387564824504029434876577099029988144775868601742397586821252828938781424614669802717956021246393237567573597469429160958019288738987253864848186102735839423458655362363636705259428601136773696856224599253303515183318860346540017568490559608262584804786435380616777992826499521029146818782691777395517440959770079029297058235719911161710153892581154592671165064407921799715058591611150879197536177654600384745758262405774673403290038555468613754262913747971732819441363981123806031629281561983764946436772933554578693966316158886842686547079778752237768143869964295908305401074115830911824530189250114547298329900017160513836554909472534441646744128110395174580580572088430719896169912540967119408262557062192489519440224177531608375464166758508980505227046293950237437147655323024165850300146351323303640257386119407393101978298770849508483900514444384821007824188445099383090487096351590441461494675880116616720019962429532257564921238919850702654099509448972379195612137189333215032030154572078807385150016984164399612142886560136978544549939276003604058068672017144282558183149025119864172900894800181154682672739339810904489040631581668883960258604916272223865652700231942503094628009501085460432739021960300975012816314535869124661961018189178458843727965245628341829208040416717517283346477780532893732508464982460790536833456473908584889615282536996860051308348609474348733184504046686611207614160181386696036672218757731123222322274064914049729942478211838897839017594798921384611979222670050664007643819295927088980602996671432028761231726324306261091071504706737841398448142979428313263450950374801412391341693358142600064663186819903200247371661794367926300861252519217151739080684236750660265238137167356318469013539260082124163974471615085667827852069513355386474924302024235046442199589913429598301483416925376066032864625633685048816495434105464725008155735332337805140067023990905134788376847910100086744338181581670715491754022482391659711192496585033210898698233836049412251132821669941282317513890354937282662608888343218792250293452809365200798486561072929379081599036831927026225834012754379328297253586309395023940275687135043773489068069201317676439514376783324494721247523706744627014169865448922873029523082932891972773982990434873591521635278831332022292567843067477324859835727950560257608288058737166281421335266361197901036522075778981003092660435231660938237010078970780805060265535753954273219339330250404592708755296421495146889050500332706672394905724094402771342303742811994697035061451702468983309766580040877959498475751490535889378736480960446811108818632663926388049590224840191881158904371103701736034131808227011950080316676953120149400011249648659386118920882173881548438570100334501702673410951347666040325872616268283394583598245819677445249147066370658413068699189715590720032007621824984889361853027334974352828200851414793948641380367056124137178703470992123806505174182410981629184175231656291203059544512968768569416955080602159296816693708857846045052137326949181310442095529404118006777992284947633358664651063245137349587438828462597992297841514199443059817001380926880118138852489602406263597758918052792643263123118075051067600740912064091206345587414940861737036094911608881789348419145389625583110344277542621100595087927628818159944539990877889703597239949892888940055396069042743047551518858472538328935382058630391406884497293649448678297521265466862291918428942952371860490575893898893108803277263671111549736409535750130098585717872453202173840487959727514224035738518192953269781297109838277138147799273753173959465542961000234786260003918254292164318369148901468947633743796594316114842622601297687128850732437978465233771136048366110604712021248516742940952218593207790903253937301153687302404592672373162719766077271271701464214715655771681741324896862055306971986444883215677564851766391087403887931751696072802960633691302274383688384857592614980244347015542125314936694354398778996621888974255289435658367416038663687166152088388186333491680388274137150772260133725184906931462838038811306950527426206346265630741906612520029297721210544608565549003034840498677379385433326190170196228271676064897991711379210282271204294420021140691374108280964310156391254698566198981318605071528018829658396586539920641902166520886044085330052609299922028218169065859399907108077312701935395273220297838210905653622609031018367338837863792335815364311780936229792100599801589501501321613483099805319967879825363097491574711328924709058998334788614659293156398631670726534680151562436765243244480752916722322412057980872049721693883894288895787504098712270974645177173166417599109764226772076831415329196549655352553466097286912307573446510472751651221036856825056637018078325698496136181351643396804832095340991573607883442545420730312020340657088561346633886829332860393949604554708356303727060657696845239422908845043734999221346688389174539393079980611679755967258798594250417662047407908286993763092082592600522347017777077995796717071501975085037333196743970941305599191214199086361563067566511928211090725582131570659022738571165508606533658636923345169237531081013858441922887286360587156077464989958112053938177290544411049032306009867851623583829548087300526916983885168326497849610700406734495374227124322179302145863847436693350484045215483583307183412539612572562465812768672383653579848663507978561228127408711647266226801367133218240525509139207514383752251503648927714584450548135387374207098262824197626942914335829119581327938961393174566689197200915476265730173429341857882422176358858706437781343987836675283942120881614203152823728782086073323806626900812246830398031399710289184553373034687318997765844551157563017086186175987824391326489030566525756440449087152581121619425883953544837450013027784341244138170009283247767445833872305583739561484263461877264696744706729200030591952767294565163047232964493239358980362925260393323035417560102297645281303121124995054900365655286798574182467196232175786511699348083074682615149019466508398575767557633916696740599935121611685984496264283439290895977485282083666761125255022204188881934055720799080823625228139405487606050725411154642364956750052680211743533033917375313602308445455006883547310275336843856329756174692693459047085784396516497856869820396768278378766172153471523158910606293180785982813233949988219307867536809895411900875726899160259762778714599586214681337237080052083681920789202239102535438611316691397799355627798110713391270501580366936159464340647171370740071001801726958935775341542589708703456219738504650063201138998753421156920243840644440884476029104174558042865471155325824218975474140206810982216515678655034519927967782084038968992041147800981116443324261462495135009523544651002841561500165700224939870865210334328031764966787499506098575700084698736658915870708466105888541323356660639156324247422633587269226273018567667314326439761445310765666563044027944950226296810803382128587370745938470159984186082848246233962529290112499718200901373525172174872284528934595912042178626719533919753596398260931763599456570420159370236096195967087929712216784082166230882364991318143604886753508102881202053650111482640909173320225750252347458456850549533537883572389841737544360631893485835694540215761377422484354333496768313442823173908925790646767611442052165396377476279639698153524270023833117313556199999229526016438411622624281413907329257234931149302854567568570423048943941868317695590097379897886712022097614250322410627191277838976893915667236272085064153356195701780505021689063067847698916920417946368987599579489018982679403744061093269324006143499181455244455325411110551374437529143690562600737146746038380042233088392640199339872696486240741286271750099801350644392571352239256042632833749657309616617556671695910816639246615814472164063576571618194901684052673884631470636407505456607722762230001319517538778601426985500425692625546049696301510300747258205587230933711839336806424082748705926429917854895418056952984829948798832754080209419696760274994989795417328051976346324831241851104262822809350765801558402136820845031681560056405008117171136708903294940463535786252358001551430090207008470358649367527259948466566404378328074651903249907733570094822641582890577300438770835566424844505557491733090278059345837463671028962884493418427313769534521142306700949068676225720984871201663239428603842287609383739083148016965016030181836522099456462906660860779246099621530060041294953871308980058983093575019657389601751186787697414599259703522739284837447014828893866492970897145184245786797319603486530633413584389592871668482628784217842445242111468546480562352613869683122185052089213298117199197669037183604613625411908857256205616607082721046317001940277976576815965849523186889757979381162014029006051684642198591854970963580624060457552239963829689626473197231627483040754047183099779962762840276082901623717703845929208121220831795648667015045423121627113549000493285317432276529174873298939148511259421438106003844335820585073789022004396931388536874787686645339559021961007520205676232228608572452082911849175215562715074665991516774772045024575092036267329418575224709574822169168586954133711923100572462219789566733470272242780140630760557455694150839303726797321446188888902245809285567752843547654160613933113945955778024577881029342893006832373733391983574224094585980078479724532927211739683975974856944120258134203325240736120199613500113289442876373734528266229982980439291873583404979489665356798040618510415948962148682914652238540461571104568725622198183080584528177528203992430242943133944962625049523090013545854808570504646749793128945250337599188750470094008460918130457350626677807188716653566410954104280857905851635350751824693423249080649086967819457971206702133702094330481668572760536355056258724796231178219390349332018690333526779230490806910630221349457915520732867347146480534643534265490254846941712871681848158314762961192233054566228088676284208986153900733574948931357930583218986500962969920967257392607398165461585649747534233330747956244307999772912309669124206642441948078633784792488599011913894958015658917168596058877838612708577725595244354704688754814928998900158136805572852466611999025161791934126778339092897078778280689553088428680294397820797508482460139295082242003540538056068814178643370783637674671000294963812361328222633119583342917445449974292679159561686638574576198629733144777431411053263312698509318046275039238173356362523558002550606191411885332704373935188452998098565769824465928403770793834504969048902650982761828833086569207139885719982101484754131907907785754169756757112898452499589450385466091136087155694867659109669579315136560617269061857370443891027848230283671690742520101991108425872509690159324016105407580526305827107131632066841034650186336787132618294304306681177113017491137801191601053147852661506843286764019486551381563923866358368986497106140135102741848828859564964525014498216421271414922046250728688924092728015814757090531204064026280751203360444062064954274894971050514470294786288843896196637645403976856350057099178796183974349862124799156426867581078180088576808073253773994982509367199616332037184526330847873829132798116541260693792436823316498098512053931579711958881231953480817486990827945751500934099927115150006524763696449129601523091726345863291482507999585199675413827610462482474160292225805194670994829947628067966697285426291858388248014776331409960567769567316281927418248859341159935318748070521772401905143613243435597703377037165788643220025327468745816845199524909326269939139772079756466778452977926902558143497875181350437393676989720236525071483842407257352638343636871298327481666983205480857679302417347232296762105349640282824576986618269836389280580328617640237458114934243984447959215479275737322850694470077031996975805087850893775758306879207067993450745759385647357856945040227095927581597400663685513650827826132397869393253320669755608144034866132480500956804542704242821126878005893810180528298341174608636401752136205321186010339991916505698683730307833864214046536886661010076014159879944454688502815506123519222319539669334467911014891834200081847578498010349853113471696877574051819910994882674325144265413814004470656799078092166252557746768711505837640978193181159371098103344216034665116600809787905228046616064048498861718608164745247050548134783360739008730546321628089099854677198812249716542908959854464627766922500017384007945940643371805263688642083394836351978609686982264538156554080661143203167399550783023300107873085699042405611533326480024439341480188380460137681337060234180937271546110195528158556713586833468079260706656130282005944467361281424210002636002121175031399004243889693558691165335167907473030774535343800402458594198625083334189270141772698764986717487368218061802382785811271501816353489549349607917338896892352490851145494901101430293004011707035859314483224179055550111986849821038367972734305348331588275812337635428664648771699522272184728303584241706768971832009144161414680463561016018308092663340500471315838532776392628513155867048768557277638141690773998840956792060164121819287003295556423307572857389934316629555070675499566789828348961155404026514969005378212822960178830431472634003161028521140799635368421293874405369478124773247003694807777144722947623493603854153173215896053897312653293085834773659637144958285880851130881866972075843091653131474567982326268636526775233073470777158497821898425032706752607140400012839788629432423845099685251775334305088722791314437745738015218156287416569107885724573414678883143043799231721118082831137853739534302503243397215183880635145465328302334248756147125410724695201463676287485135346728618061987790612682202741153206072743776399748695046185592012969657093958796840173261551854300909042522979563810036932455497801766043705164125195169401318038030705710364691465389376427662285122295487066748497900517645411288705751090899894968024367661224691265762478707279367310366196180785601645666842337879913901063285506209662206188744163662185424070273475716704516851600793774213066161527560687767410855586597666803031674238837814232151813393353352640157427303425583593733755249069638482221292243599406382607962092557191207656597452590967315416596107354139197720660514696518132894911185714009008194702828839717138799902061448013264316821040851952300199084938082526941444647445281125828294846747726814432443324033182359318344397150787302476074120846005057616914559957291413636186217433872187164134468642855208867647405586684758896344561797568771783968755666549663747019236546473043380026709041905076640761146132361471893139942328632753099963112709210197685986125212085639240057919292745391984277032813278512534396930632739977178226874615624154072238627122927525365181727853832230389391692491608664220767713408199715215363817426691276542961366243504986839064872981767516621184701912360173660724198914764564854426616710095756812977651161374601842171107199582642426537675813154219237503780569606906293761110230409020736887174958005131342123057456415488781702919704496473921715318827029649810152695492282100821162006809011889057245876018858327534745211577471894136946170861210285298999481043640892407572991832585481525498746657924847305141921798600882298058419413974917809269000024255949791989937337670833578428150912005745087303226363467792654974646298535961829754629947135032956005105615649603827192260038377774509375171051022426363281359579451225662249839073351124058371981277070835446277646769090939247028862864874775534193352928054938986417821642632633555530101205019936906959649212578391755325663671393741555010844974472889333648921302481231522954827315863978655285524696043688174616252823992239445326194937807644734593643031915704910863691323782181721139146183307964359845376927177878019225481745870971498052613054477839411959403521969304730271541812079799800807620934662607300557683249511216494209378285765062246162540705190467183963900297896934003150201364453872163876115214232726678546669430907530722769481196472249878574220637069374784735273110982281907019650708397249357357336861005947330788414722869807803590556158222605416572569693134755555788896891850854073461890710186037421186556355065462355688856768384993190590385291497508590215455982317951217790015628340993817263696981128616932469913016054153487897643986365387023638275130734743395648933205486745343348354156964737331507655190183124788563571645019748474939414247073289206669577756689001238473861753884274970854150394959752393788395172334213542138290401414536241415231579703123879391180095971280790542413720094204979231561453182094986165451603751639209454250339220817918556843777727330878988583515541083304143374142206663197237858491995466382595363861867167990038048781110082243319465129798827325989622814074518059579079747540315369097920934736318023201854349912976687278316256585183137741726028579724857326531692893315094938464727644826869547396254000598517000656814645477406753087498216391610157664266329803825021307205886440644917300283113598275323400542513930156742081305851530862520104642594445565374894519920731989744181350396717815633254563957735349696238999239983047677137930603880202798533416296957108367642852533272621594636488500592371807407477974225157492225501187021461091918689242545062046509758854571153858171452831309628476385088476254591317472605483963439870834187204607395867175242788063504651682619390660880875785645519197604362771065890100251238073937772495320511457092375816295557936203140458640939193771651080976270540983054062031744962137433969333323973320589138587247891147961020760300353481021593350800551537262447885557926635155734753289068542103502187007828313724079279018522688344413664287175707920669697564263758620928487467641962246911351723983514870182211878395948620679113141765232747441647251359316032122174647479697316316588703699204060618234965863059652796811831662143590978164877102702267390149436906009560690434244292864049288167660780055767125656767398102408420317381541074354085179788907842036834129159092069385119011628026135535346353902985864785113028834269771888519640889494708011985420417110710110785013642777557319626076719967813458522923756104320152535805191505028416258705416567677059016086439108745236293983035998780927744041590322879888796962877103768521328271589707239327881232938567383660033870684713108956813488033436170810217381282636890084218581014558893527455539533066938752463261848070218124919445860063264149769592539311506956967990516887578369461235267982027450014770905624669741578374339646959040469483214432753588192202585734749116314738650988875850754585950320869323106336680881101183734182754090287514445445276884809627741196136218981256044719610384972341632386108319416055355824157229055504034386642636219303011483556766992676594633108336909002125016414084216617384623250438945929046387369067779129829776648296010284677435669650035495934501635327016010996756112054954302484893254926394649995904179525799897857493361288464169064057549445719468182614138862897114429615635459552671750561317279836380899568314645270804983499617992967397864318507532061060934801124867294520710116823943865183536775504479180434934345353612075815714493758876104818804183712096601761689059902311736718770830911230282473341411781318239296317083160336089503103077761852414296009886860202129887413825685077726698027412472158917964592569567441757477113573598994839828403805685860313676391524953427894908316132653011525236412513543710107908514938963888456032105655107738308433982214128521752551623883821679624031155798800039930447899983705994160538678511233646588820679844161134660139096636087911530099632001800883422952118817006695767673862975214748705999690207728010740142241094560431476284971188500932270377612750599270525017564774551649537796420057026808975174837410573487727149832511501065443948660780513954675364318146178947618061661642562122942612998597278821420385181571993147218634946338310768049990948388560383871155941621648735250455440689347311294207092529867757395709670182232031460036541420445140262992477932092968953513862604773987821929850490151630768740270291702570720849222140866981707679667596474990890331299477402384772764286598967194074852868218029811555500182337358486410259558363814576777770450739723101808685648312448693301757036876494049612431281809444358607111951962083933663729757561297774444070891437703917903892738731608214692806287141069243272634449051529266383741052218153476572856408269785251203085824457744533237299021211907906586648024262240576465616469860343202936752858063382035030821217107159609806433424421493675952909040962332199193368850822734323338025760593744835351197471224177421805767578660910706944754870431618287747954255156210152180320258550936005367203981422151887383826600211850212499203410092210645928269114206334741488044649764210105150681031053336286078685656516349109687965274880946675313972352682662334376595085279128907638360712656939474355872849987246777512890868819884005463623991787591001023494064430720176670745057997072935684768824079294277807833211846368885761437830569193861062441403777677163433068591996225346377877477653102687909530725454480718844377964113952977135543019488197190854004540630605155596406719386043590444836780605452590086654226529626196947630806693039022699578990526843064694429523637823908682564959364909113166078298231712162468535480929791066219862345315565653763502248856914975032348686591768860474625870374270873066116566735907440083935675789903551832447257484503340817971889520418808101179806535834456263826468764458729364234064340739591137004303655345247540596964595756530380385593721133265505491981901835613732274611694533682858389348554478675832090399121138530355747628850719013174637012355583001028805782890096893829412141093180602490140633018886374349913989483711704468956773524016195473881944745977968413522115166577078296775924335492936935787140819926341590840894873083529224545001150906182645712199729727057935226376876747936273271580163734532047650934969340572459363534866203290068024853777244471289405072752076433222737127703217104907409641436797890280237086418221119380365907379205499198672869841128421547097004652871742590023758515019224477778152818143573597443519519559849377708844023821690681866015975416608184757139058567796447993570605399274904396408619047605859894809334535452841504370257986884889409059781877636586569667416511107995588177972791555804136874550966005357392226967869321452691369929491669153901899332146682587638463322174057531365896971619971762800498203460623096237191655641070047373984489794671930169640919017255995021971937883330542920042289258716359894908427497447264741833528487711136002526158691523676998300180764641178205255080127165210838733224243568809859967672724171406221585747030440298456249409260909321526577946730412475149087513079104474104062947611319633646211128904184081591467974046513128680470371375027863994780780773398392070423308231033274134865800583859869651332994170667666099312791869187579078214884193333236980664539409581836685191165642443187966246614158920758119312565223400355224562072622209805768010521981563248948148857568016526027643730556925432376267229737091247086459982698015314395073825454709093535746200461474428430718959198692085519136314423125746684310869176475102577035295006591479637605873575879401320508339721018471058445290897321550510249709520583201774734279226690943841794744325702904788527880919515574462128378098570477530982536674939274109302309233782166447517292417347689888958379263724775996917158183474738078507535422969358790110017994264396126492561281398279006805517309034361576411502956874077306151683146384057389014106388419611082072310200376182532023041184893075643874497982106939998451787446903690187781666523532070284015467791119383085561758957168358657441200818106299852833740268023671313274086591504541903378681940702733088378466790714151091961342514356530796157929025480259019177156551137487540099073978933711424052343988110891320140408672358732061463000682331639958116972651139424902408254426210895770364326612252396843977259048954615141399062211315084639428608565754333992890030437200731096572321028608494420135915057233741237290957130711492359257292560139087662727576086007618790128545876801680895193269175870275115971718615803331440293096244041356657131684524810782585240394236642695561660503873140305960216415219823255488604882855686805244740031323539923974393379728629246049587629476486038495515487717578206479031712047672892039063436186626308612423566765008165733398728451618402210942835585172899957534857244482623184956552386063179347758526780304791295962698813102854567620802799957919057946849847029670391800570707366789895593224532855712460937566648623675134455070312127190760064144814094389268614279286574921546457316486902343817116007300866470682173963352934866044737092694401657090857043481054321621372679824048376167729108831714648796160947333604460655026512647643238548035357532095439836695868357711885425675154956839235520556278553286667220049303350125324592426596534178719622796579786546780451243728178973818437535658312945048667874523012765527678445964427480886985533714282498223750765912621447502484853593698327988603072379796552269962383755849615879161304579726712840564992430173542633945742471108228033326644832608133710114479980297040230977768924856199641451976365935883349263695026631359729723572164437473496597559249928435815117834352859398946297419505542697838102350492992995832238691188934551670510821184242553879338307509194302831481652902472021441322591124226231425730559254154343708572975495454423319074567349413078965522989780967175001017686896586546383180444706323173780281830073154034388544931695535968304953992451301027900431706635190484744759883759241087482222392487549459170630723017736302872393609832532819072229029054264940369245173488997841493635789890332810630146906101580770857176286635104736839946820175090201712223779094337109529354913329283238231620192881822213879700337935628624629280144111939256571990808067370447997543629893098328149168794372632083121928862216672907662325585131928224985947461791981710478015701887036118632205541832255660830122445245307455315255591393625039126724393768330226937723425578726115035452856247279538942286245447398143003409126324848780048481864391882579811554040397091492412682277835094508760299408757777517152495555305036990289379571036113296367823840094579647953957966878042579820243270604804471019676760605003857828612533774089083400540512030436326610337839371962248352143290608922772007084441926136518600222856133051146208938524683720788944609262099114101983081085377902806694365430051024940265620978822439694435138512128777532557857233910062910753757101627681446651525477332756834392400829178057096856168379151011772073413742573988019296505829667551705575797062769597072320145928162104665785210095953336125846650981737054934363458799014762403875384054193759589468317314043465628278624178485640803561634351773713312849879528287869044327965713306753550266243720295261151631632083124909006686814611970961507424853727000934948414272720488420095360409965503576196230386237145865533147958441510403106756142518374421617680074172223289903839621756571492045551243049000181721568910413283237511298299952540106699228524419673243025733470185249901894068063929406268639964271524022108107172808898834199768675675444589445940526446678978482040389788067532939110599738930392291178858560574852147189032932793496355022263952269818993683947093655015749106944953111246459052594691864289382661198855722187087874904027017504963436464922635347046172329971539121731526012624789541209246020504808332106396089650149858235220682475684088116207398895500323763147251463172868456884002092902825586069739866363753529534656676924320043396437412809048463475189601885014444330912316357897410518375305335485041685330697757436436547113515438115369890981678380856734232911150980824188925384887686991209590005545066418504637071811298846007922867965759036060075558669149288681335510171187041647605495860184737158651905083530463794112169645601873881054146491356051177646737214894589688792573035400710298517189225553377472607581719606745736129081319169750144818792778537225833042052574312899096807386911282888576352369935349832105889827669090487534449471118212245037906071857347462814396167221336941844344920932300208107580219515907632188302746202997079062518664355013812294642152905164171754154384627594662181088235842904144617931136269030537077603713950488517358659185623571281890866725515055379180500326310187652269533762304269019241180888378392816207104701084084778220490317581105980016176288367551135118820757617881609352045569682534863720430402929878755645442986040815181995155700207280311782393323424513202806952131429959827795913732070984427669845776192355389283653593487127810920042277662682619423509288127656733396051394653835184970544243974050607826857564446390440553524179884105835178276996901555751464971975172245995318985333053765525792428210422049612467913849347735489650876518977789534561939713318556906531384720105715111508974183919900066433865525367421086152390602000683742977300969222375895607313559704176321361587187066986009036116649396553011118440338502139021470731637821979834511148626601958543197955626015017100242059006001074863690184857253206014683847120434909021418223342422993016781133938944949071585963074862317660630361033905941975225784872153546584999397979107614945674222976111802556882885949266037580792875203684861853700936554867622244004080901966699787679009237110083114753037594766114066181753231472313596029954758005792747022028765535254805321118477723828985099891617487311532811024518980550480544490483979362060865646223846773074509403640844760823406583999817950940950200257541040593404767868394410908485726184371649717854142780585732165288745458981361451384916147527407524289555278245572171552000725761284071299195379225125992912807545451011600551077926073775971533976123674576524850120374708801459077049842152955980556785949214174317029180201457094553929497878888269662278121594948941834825783236551443630212857872125562811474351835767060612652146806015824859300692683305784022202563831353377233737745047838753131664175843589662476640861730278930929084911378891348520860859120143771048707053906681580066712760730937201231463690753761537497580876946637970335949298543468729341338559543920445263601427305435741738632862372492854369651993889762897434011666376615874565754644722848777291965541157913925516414915264765995028633738909269310226420082361151340667105520881731114338470877845178855116662777077507446811235872480799893001150016866226657657179593988877496991142810346765941353886671662508630610296541691409494747531422234264430131220074561389149737099326292893329157406416903387628377947028181761219039068987011510359339931785520503083336554254893242036376897606284310784082535226808647644269492793395803571551281246120910927304295063670551698225793468825647219829969953242400211712688280662733912419099244771267380552174805431331897881819071034114845711596134298587042982630138451347258554362520228719430641746714941465776166318526725596587480430077326770953969854180211768630517435898612599770393905013454590056953734133894596035014536773188597102589576229010752894406856926314642925393417136799247664467991965568188635299125784396266581680553521564037534736922726936606769106378620247825503064082762343243958150561290156787575798949072734494863825784025536257251637800224002346411290194723513008293660801702643265698164455231319712829907248163158356919785551667168223709868650803334518516444582851320156374282729575341905582543142188956140652200117548344917086219562915642112305345943546993961039692041804061312240978547406946696572720252212957407224726601176702578112036417952455915217057436685430254418269445911508796596130538944173886635399902160295800051614343991734147995970629325209144418907093554432137068646878093519980472632493329648798144091043991027188519381212305542071149461663259420112396903977382120034436259780922213575265233257993626340114625620495233485542063518558639551314782084881946097841969033825957509292094347194875202424503139969783846590763457839186306968913468974572219584369789924681656106556117439524899166473344781854301185369120824558169066442101149624494613011205520718534779612049021362203768765420725796625833943341179585538638671754948539935326874643945707805055189364499066921893854402365088308193130644132469232832076836250228487507272388502581599971944606684289623822377833995632475709085429139068048657071749168085132471565107602147075179706851654658610211564155379187834609983472028758329088062353432861518040829517863005302493109074960521459874066008669389429252695652478827228567798145394888819886556640318100338648420055325797533700088317760930798389656899323997285349537421493023001443782711066791649726156100105966756210601653075942478768232530458650568761814957022554125601742914148764289518650667790435146234366384233529844958421763101921130528634138000733127211850856102821754081549614214833818120513312001998811916039662492017751235114878075879116598503206790298776208393475432464094964707010505422895896745820373464516990726701136339798014589680852463674185861666697206844367482607598075688113479593443081906940095256849617628242222852212786493352983638645171053670318086380964399255661466434912058158005275950009912505322649298665561978238027573530140294798261986514252687538186043889727283758262724815668593962766913917113912488552352756857329354648965457733215915952034239216619280784709895743529054361644504582967128713254476352255857605898158421915167546146993452294176403640879086121768741497983192284400783252716876616950586254653042792809765656212310203969257249797344423704642022136436082782264424199165200702515091931117984384235394745933156109036476869930173412029256391033682782908598864198390016768753491816913618883458799841536396390841420392192787202961759542465716506937741785400948751264947885179852879034829360912197192550522221757159816137063986544220943114725263550912104722002845093019077719367965369835730689536896987132030655631459283344469971043956949657414320095063162900072766001443457808378901970587059405002435204924145534813726058231734874157562774542286699198930108501779009404402544087121197978249960443534017052544411010689354017629194421965345415424445904307516854124267959317260756596240066860965677841587040060072089377622266943014572474275513506084460176882976812184054466019371152064100853205424869130462024135383070494444014469336818835123572966658770381633271377733624048379548859349770355317697407637721609507791551580339586062425648302238409163888223561605238774941290471408889782389088018297648077856028745326834575309168241753632226113700839991595896746887186399216750612548970100127682667790869089192896391587783836609255076810412784432134391462514465827620250709921012627339868855928565536632211102994301909089160046132872003581413327608099423860461427105222197488431362805278985825288549384871472875750234422583463698671810697267485036432831074674239372451150190499499676492087748790755073779214522713388235008521656710660656804113899719764695402980852802371874873378102629935921396510676560788480785564332749475577427329768455497870096110303943640474072673017984006076467129006307756726845183330207086284069151827778372114575992993934401044672248668588675847048940435643092718917338110619096722669636739578976904592761992766491288355811275029492872787068033859609008642280834813440494208539673011565667476107729403620198872524862616880816681097218270702489956575207898108090416142397945687802259481133201327477219666053802474013463792799496419057435337341644364979217339067414045074432948063715609865457932140837725278113823755515358148093715321757438365218372133973084518771613589927024680982519396592431348174676139920109701419510374428719772302150134280426410598584820458832643588521139330414431042495489921698388638545358624318951838661994276323059227728170159069021263256737675124837066745671766700477938743728464550954084632271129717309976486479363456917293507987949167366659840411055447390845381344430322597358524847944268312467222299124711152929626760513073917000964586605929546148257486414730493106692983470337335567684892035473888078150714511966096207337408086504784763664207478321268736328642230064649749260857198614559739006969652444704443159027307242902751289180937369519519710461015603328207761276939814818330189793296550951928522152868105147343995133632365386950106802371906154964710685034144479448849684523868368202622386125977061719447125881006180846752651158352271764236739778739782421259311798563657809363104739536269906331542991542261819094319095347417996763030021311379870006214530936891849235246504442867600223185049072156368946213913893843436211392255978928036142312929451172628315884922834815273454688308672568123988648055276479068167360993959646761995415142694678815164363979809765685247895209539942575251637981384808386191426589171771947329694163236966955248188704847931064554381174765607476485231634546431048315427826329357260514857135015910447971302840122828148961918132106756231599167631057399175992193853697453955738020097460437626778226244028600722338637804096551063232207723567222806782505519147255253533384494167303008381538787188573838641593418638558437549217698063547129758154860794877379125031583332142394304950404373924952220882607204983619198345780661268709352685510523406984041465616767819477166109134533782282976450400348840183082667095557098115495029514199105253238232531304740778982309836082866096349124762267775658200273757773354648555733991758475542737220019855533191943455686209993081853097558187806874425613990603646877685753438962130722072983350445399356073752477322636968090787709754326019707561214562850472256005696488326860545921725932226241229511839023631555881148394460667550712359969103261191227130094229506802400288003590744166454308745384535605852539981729096731348712399671064800701475817119499627665354937309267270060860457030339982147210069602919638394422408490920817802093128600842016414118885534388230003708408580033243829919130503318298031836468364120646687818858747557190341435999520729753873814420471479390763194337148893793970756692299561217479648671987185436801858977150597916721969083265731728475227617273755178766773204750707738033304306061256331111769240789091966699357426193703182670694584341622790268238917853028387676084811797893407057676704702569028203040760420121870911556690089709724842423294762355364791302851216486809560931269366709618659909736465592492955803853900659269423623446679311202190743412825491919886456697341918246326098098152513047368452806804990626586431677155169226989573217533988256387638681737501934435927622103839848816821393938984427572639931593867476372018679602786158060123954223530789419822987990679801935631947865158252441804047841225021901688364163279821469068593441642265378850209810947514168649108982123601235635333784552813884892706687548030091446535743304326723901052129175778913122726976303140323350505223666960704990463009683236186683921954621005711308324780912968527275350812069650025247532990988791080269419850557929549176451535881738738308492671298707848488170798006111833857161756146906015620011854493195364534010948282630584577069058265912290721676917116221595463657933847587327358112653127115673509539803860113626170210788218191123881428747644200170744679438631384046655748851466150463025980798833333532003778780974159842492696885712321894223323034605153396505545477313387898706039679674268630417813995217655313595936296004867302292134031499093589797538195112984677853643460176324584240280525274621066620469110718090704519918679279055221798331439206760275245190562858515067359574479962179158568654370808518825117674609604325616948235184768261785622596030258025531725579642782086471789861089438704545287936517050929040741209915141399103864494157999797211105725697939802396794819294457139909110926201429624317127540132733521797040699539974677787059955307845350341585922027997783200185962191864243436502509186798258716136328090884407549577625768805021106510030451186392525454920546448693446853188596415684068429032553279525402344707479902305924210753765240262118470900089172068166913191427596564769456923045485603920492491794996368939207079463935117811528871690525231223770763094268530872442363959910438605880286600278903911918727018981990707728912130834688141839719884862581174341097129907420551715502195890535426020174615906748399190027838869867374336853119104905892372056370155928287757603035437785818423252109383334099766206321268321250278764847814828310139638707270012735670189304820351269499364260672652777490545931410148422120666930743240877059242740262438248687578493169989120224387524469903176465702808979576250124996349666269793843226983936229848012900788006638408930423514365132372260038551374262328982803358071320133352605935889592943262661847512840667924061425618335021986066415973751767494290473170798076694319190695258466527363212333295094937285954304206019054374446979482054096270692165603443581829766442651493885936117813148298844248824148005773797225534334430028595847740315425916593146428201811594041801741804308690618443907858336271354139054331471105999699082466123144798498125685712252405350952265467719300837811678077126299718015811931933477510654478596086422033088628451189563535845245987092824799598970547846962997046154870722400949442077904028440841221352656370529662452230247164248705959348030808479043109503131852701597065497227070217062238171614079355873108323228107040425347610479821360850595527161724372567026412913272780852532334942778753131723310956851271294613415089307195455349676780284076031182777794941931057958525740021931406483742385624336028197169198828970251302383421130584095297983385055840059355627710004179391808420815364643985227083899930208692317559841863514249180558461099394693058964494083121081549993014990964501096280917595487682157135528110828158685905406921087599824485068853494437062221954081211241218771297033476802815281139440863954621050813348395497358802796494084934565224026548171025852510393872640491174562859572469540864037754527030379906853777855853792019620288193514181580096303429533683397541036438633038141593343652474037303561986624888162544769304779283548589522740562322835691781327139992315968446965281140443392247743854004030246457181852599732047521473368794453090904791714206580242715458126607296223207424034818754592059624508235855563925286413549523262332528920680681760261913556158007202382641277116720919436979338508667613876732094262070263364545444639154706404157026344399423366344113419221832928748031515343859566005392400314990337357893362302052494646772013288878525106223616053518581374125769326044359293677501405944608284974214094651915825877236182459323412585504671507137394174675897569788631001791532253752122454791248714833561939473108345044440961919876414276124814079490683131002933952064293118602969237423112294320298504567208717903445285276860601265460618379649417301519521807476436079835407080562497070582792189646875605711924349656644011056052436143597802849468484873900514567521353153392198729261513800165693142646996447324731201350150195296840377858251556937216720360924814826647186974790514522600554108697225994302659726609876841801975247970184777010382384829562259722579675206164912690730481134632704968846439522631351832052201363582846850652374904919918075630867815142511811864627340649543593383703618228615641500235966384421637276886274770954132106561100341447160826605460434651012072838368597680244258834685700283664653732966624231539284046877131919053504788061802230219269219028173667090299267033111716335959839375193122388034359157438371923815501723872889356799766148173508750938169400203491280627420917417501587227484137367401621615645930253847626716871349328041598934286232923295125612395937537589593710440491931582670542168236280674601631389055594081879996389418336661124166489738171631532840876388215280276593137800044576442857592432053223131118281204857865923414770459523901229866854200488115192295459815501289274801726556026173020809262447404759887472928886656237977862297724786540794476273395344107853634481682263208097887811016544862465870212007326907700089829079707343316177580223806117195948955851758888203212799751260962791402976209369552499807674904938059421508150047863527756199555779307825778176374825033677546335247327907429565442317281869537196698696514249604355644465032457718583096454801886653720519085470277704764751103690890329420720988035236094254001166272636380367909627026375266127877928738579607604441448834722654336534767031309468089184421614813515443887508052091050145253547172624881862148961995937228511790113330702110068753013852763180868298419951704833868036136465410160766532936326070633152099229360379568649790395961634866570192683397476761088998551374426214533279970771223544946570645957035522395108623834788966027792120704957525145816391115580795865314525939716626938400964268010195564543151631082581936803262635956592686324342174196159145971160631239203237616116055759564783420149202582090887000486428554084276265371006742968209337908431793827764635022775535093824312238912087267309937345773922208754973568582315453961431159186192469252706096003950899823573022367619003793034983222333198699049503914852858597868322317343720454044227856803230800533638671592698946738133235111005738744058187107736332264716447120626175936775812054565252905371669011300687883622039817420185683645641373010463433224074075983732622548113011678969823607066772244845357294898472762186005133077049175316528440066838829388317738438913904827102638696849905676432363532037287591114216677221444271557993319980984635769779002106330533606190543853622629569142510896419337865317209828745536155194653257409291771752730308999931899593692167880808862369828828449176000774479789711006218924495642137520540663513969922568967779817528433150070316270922808334215673419570924271648671830348152601054653876993112335997657566282499983358638486618763992953283027176863953270990939255220122129003155591334776474175416477982603441689663199988049613522077734689077792313242667379697615637880840125779577053453571263774059320856179929608566689303780190552756290769071797676310639881946813823512804397582556958979954107706746660444961324615403594161080472827502766472425999079733707073573051628476732993724806334972034460423524661023708227119001497627334861152531042770314816767475055541372620878493515898461287078937432026166859150242933507764335048986168777964351503160425568194102959147124947809604586406168841536392159454679075986938748409910335468371833932021868445443523069093705687789149117964336495378696258519913676798204372536090401645282528766764847414784868145191049851780147067864195624394163823475445512449019115702822954608706434519656841456534369623731790375493801887191209812364579650146372723882166430267511218891156363622499987404172954657960330769904476086699244631630513715621549023074247968836024280391127274933130286471672058645332911865638188877989369509094215339811586159612538826401381915314185708624322252194684050586916255663587843885465391258619320865049813311533925113764818074501931497973622305649256883358291192826589326586544081943853764924726994709719447363935346730153840737128272300977670155021380106900433911801943101132057991661960848195730155519239563837818177287139829046187245344284613416573329299634347982854478122836381329690309285934067055436312672362760897624769340281479984566048520349965606401299519826265118497565153074170837999430584851055967464931691575262356332793723405482787262582980121122699500268800727322087955908022933579290920732940578921790615958447742721824858024340539247829369312533931445806231335094542114812005850031026911494359557623421288050236402513678340585025233682218019746982772469141651069044581947844779630188678885887077375934454016177618785799194200464355611183496353004765131102020966395673435192092031811284295804154829031637723124084875374499630604358687074926034002437952622915253429995575494758988970833993370314898673690656387049897959419780964876579896904810867212823073723385101169658418520678805588361053127876068149511415487894779668705796885707512628631234804855078027971686451662014006114155749113287090823031415247596836450976569787471270229215133176644420318807660806285795987483089542825264914203815209812664209162058281881276644484459820003298615584098485656255604264091717559280270639240296072968027847512566394844729170218194290838749661634627026318598445172334667003516301400587653932387532960909863587296078485062343536923894434550334242506964087567473260451002331350955248353734940540512436164722988908887597126244599130478560291576928346523901045089106053902278015021709106592048226737683005045946687489534440368358208985327708207936994414333647394841406354616466311134163264958223713273280966381330984389575161836138809135017890966428340825435468304629825645876368822158101255935623568383316123887877784968916578723246045126504209351180257991584929476277151737816483799635078180804010767135282865562093116523274929703980717515271966525718573447376859132000014352773825669344119190487700399220305804415903355528289186341556761926123484578680976314586969138476755146953103265388431654631249033653239347031148518545994664990602016367064594415815846331395561075009819211428721832249610071780931703861736722676280476851102494714065090052967800787054201003584183774739913572491753716538989747413203481153750355158767206892124405108392972307427831482349764419027532861955351483510932792488430201977572021506377859723359067004367358794942640616039805128300051923373180217650869233068450608664907421790483864464227944690586202838234059463504243868435839769368763490679976832060053091324592963333928160243844845666745647091806180440125487859214098915084301230159238355585346148857113539428462015537482350599798285289898890173678150507206398092571597995645930416788510269838600160076255055374203136941042289732905372528890807644457985009198574346074375038562644620058679486190518952462877577499603862220552859130107028609650216719992496285525790862581209593353347124887648991106550454365981217779774943564718475548571554536625474242671186574019444238359401466372453827091174335905070653083367002071942605555490227228762814403902980295471765252562398061860319471948551856504897703611263725378028941854842662479447950094920261992214294023688151909073390780886734113848217644738976463376590189240027424578029267157841614668181906324578085703568447387426024754329467539059490451043906643459536352095299134493063514507607792464895064335608138805737096153093192457124426727883783653961601187670202626069732098302792889325696907290275565808123135025831562426803862859330899847809632758618661745113951594175353406807076445547205722111067297280140571520749841986368276844996289490359114728743566110625240143486741439608574402810300032897460922152292131223158747901079563008183248823045208930586892148664078104009237282384068962780962294461680520676432776223642126596760268131789985730979264204022276324490275682315308410262593935904231014122948395116548256440757375256130517442665873466131201385422696565527797688066764227198582797892379344945142013113327509686251808166838345694129832113339739525886835644774510928898373371426762237766233257069905863028121346595345413890018375153329361566632185554726100102380580417741730215734482508731587602102491816611944428378100737801880645942478403069565339895684478461381345252220291601660801640022295846420375949164026963554354341491167454744996871661795627523515644595635270054799105066468360051918910912980524240873894053891774858346006698214430944618484697505825121754614920599163360999542741596362444309905759331563583002658906099413998753573611887985777737762951470727339942249402585808482839874679954953536404183786670271264692953840323735503944134001372907594400547885162792374602837596253202190007050004031844894408779503908917843717519868193288632225167543091021613178114465459376840057853707612277087908562680366934203330972388963232559398370187020672365898980602334379934916707762579920721765597718434285183797179583760228549580898280945733430715305573610155777560878234488302061440401716997324105115437020778532905554903157051962872090080094248030153897374321000426363809393567517118129857003673522291260425092406057645491564762687296400078702064652182627100114732732610461579609464365775254407709436519784271371942823162307603535136940938080695322648748028329427179392026653240724262273522394432022638430106196780765820556175682613248981590127950690893742634621446553417849027451514817739294839844175057373780336495511524443235090569611498582367819543179084378243306001974388907676357477216597683346612555477069686703924722137106727012132434469333019927414872727668911204892757730379554946798506962613034826261889916288557985501387768676556932007767951944868572511953378757382483944582079244853632182427590157177928394839342122295401568647557526083114125716831240109954338789150369479028530567134554733242932636501577344046772699871125650777833078385045600376383191204075854961206879538817643957586371071048104375387801900550114177867021830714016661784209772032081608235348488271376814409432583141441175596133040706154241197989442305398868226066275465401296785825397383060574730430252419046072857888352042555270187960619498808512595640611529999214129975520570548374627267286586321287180874336725007881767875853080582225559990921738834140801551259648360308885237457085674388311180668335440437894725777318523790582863617811606139937211457856057536604707431238880489619894011461323174304718951874795489797983494024101384907941524624491910233126326327664625650393508343189252297813622010251372959420109727267219580818166290467796648903878386397265832488697030933578441740845487870482214302617655242790612114777300914999072126912367564112904296249807090245754855478827773043979321950016183384307680783006439503302212385264539157454409344837068760828017391796545962792967098732829959521384110278382992117526761147077017292720462514954385959456420958334627742998259583057613254628461664814266210535668804567285349451431012610481433615029219068193244244855116897228229537931748304119712085803999369282333751001393434679823785000903934721294764139373716786027360418144027582984694604988483450386627155062683144635482270793172576858396297217992588358047801414908756369492331769149782086656331744981846512279449887123525811224992769907753156789874155120242623307837736740986163020119699038860940894407728249635422101005171142885749743881310588804050184399390710997638544531121960684116362285088900150950849256875715314252083494382072627427428331791806526280932962878368049993115503583122158010744416808369327546611691557555132338839897468281268242624557974197990791970652379652036538847327208718135715563030570695889628706004921708971463372714753557358755154461153155715333883614362619614367673673958644604933936147526655578344287855460501821653131418851749210522775114117142554495206801599456377679805968013562739427873306407661041533361179164050196614825405480398769946171254194780249710042979274553010639601623090243543017144502516228550373678021412653877032782688060381232245475871125744725175056827630085800821272924090291596187604078052899676117344188869069024127824403420466145771093821214221189339116287096330536841073790852570380394093786674082670916040630398605432982317961056629182138296368885324196291755247750830866469180371045369134950053729889632029174609285360301029508006747319588970750681165241096127758910291551791319822361872082429186797817212295457177767471773316068454067548591465837988711564322530447517747324684281133034933428869454420340185684084115549254460190886187333556601278692235869619916174326946041327685872782891083763903192751198772359777362912049975508989530968320382570041540067949062460665517747414769830493746393283262522844705161105513801752944354480691445107746341971985987787678258495409445597830950707310137325319943939600789197289120345022033816285222622788630441926534278631439128992003650756002974547447601130459608044301414204457602333472811393905158884117022951847019067184134706732668824214900447981505319761585150483940998422289081305566545283244050075008129951169585531350017809715558661140986038151617528739018976733027030110790362343026226145787548817998492752791585332831905483145170846047428551770109939949287364352758300514040507411578857580868160818577076080726399870164638906926254012081558922718451784015509336451972060198200417853463274570653761735526599783742714810469748972552361562990427818084777181153793775466244003867567309605373573256234712266195114532095216509785053219259716843828881587360687008761575125549969365610990843441500728898869529378332451580191395026007448346788303605187962058411929961376537973703503253730308667015687983984936341110536403154927869751568431264639125437048324899944671557350083709690751105760181851356764542232832709560761784105909884398801829768015950248352225554037525778228748415345470077184489187009225284523642268277615864820297628065160131892062097774567937824443893949194191631287875972236573195397814518577973580308068598628463374114051083276615830829168685548296088900722634047095035918508155350802491673354470426386779948021002320348622599561258325213570381486758028968145333499205234200245097164823122766501478074198458010610106877589951170530014944998696063371534645410300323961870104763364229847599338916144087699931735187638664781545249697723158722483784979159179236462364529650380354555127806604254629008950172479400256072072098696255959247205443228325083791176323200988568331261440705058692083129999695734359044249815524992098963255308941506566000088876036496768078295444256305376887689014369528728033211659170534530776159124881772918128239899753993382385421689525501742707251799425359652098894267882926950591159272329526491179565054819942349931995827817432865365184625141055836732319536643417968340264520287820704502131687306207799941469986695251416738855998685662085387990289030363884925327086075100273331690993692147498526927920411732374705311512041287502795247781085105516505870803187684802301200983824906296697522518932917035901749426770449524162731146654249709478845164950554680883134493695205997065457807398974127089043204770279135268621802600232205992443752471588068605488963565604884981838565361034902687060153887069701660718833836276062181640481686454932608257359938787722338501630756301990235932297510983582684918196281980926606554313778813681114296483586405147385061515971379632748587219644637158999039761811452911074341313784529764486535014158967581772072494961248323996888113103154445234263026896462084947296775455377990666661472747076267473474161103329433743298668114810865195025735837079129532374285151867780470341284917222687042741206956963752748883628676153743198668830728735897159795478437723421046113206849996269691099776165370440784639014197322069026892658410370726193625572429742583648249520319135719421612060092277307557592714796666874118524946644050923801889702262620434849288095609215369713234134992259514063215291191348150693544343135048537455853183181371959268571722979334955253343826812616110024427037077215577820832168109459791578191403662156106018151613735201724160048243049844535531002231139102514034627504598469957675471794683116906429092240419932007220931136494153068706627592554764448960811655815417965860198312620919003165725414182383365335527618851086510588262886820630376484991659388750111984353333832653649883408804896449182377243697796403316721538307514205924918096370836127278424946296731300396105154766014878945913859781783355306807062617103234404409109642717444355267825781493930881160867845406590412218970389607676605929150692513976199928123948191914876817523686984139426296828708230388720054769716187479626488304246949595215126576699077651496777478069399518317911567791749406240434715934594101937887265894431221863932692233970045974543146264313078442875419186849282854399578584997759316705372977403731268731877063239662921616780917529752491802711799398399254026641954316508557000584486622863066038078760617849799880677701742467140023504597127576076387384337043677313345160489229861923239470048602826237584702782466121483246677197538355161565304116409475077040936225894487323961733276790285435370146804107447176278237694958374719018842495973615203543002112252273588533240677874145207608768884276027097084601340603399726813320231795458528055526629010769751147135618649026683049141004996229113459103722882969150743218428420052471226449659217143819085572186459152153699716082347298197468308301191239915090406867033355635448557175207694698916629245789736479728374370167367626552556905254938673659125619185328140471064638409144554504230462755237914864274048530044642231961007052244361925591254695392409156983892340887215916740302454711640452443440616572993534576135149532585429018103187300531587549083617718641101829351071742853525113610115612111821062915164739405526696965596332306289122570672602677239939104986165236735586983089700742590630408031591372850682118361833532132252432710396633721705776864205152316925315836656798174916178718270978071434246726412354545665142301642596457077801970099431682306094158095347082381978367670425218658781987390787124063531133169240543581657037749922716402611352495971803208586479813942605716488185738516278203271293996960560480549556228686360232731772603045916875120821481294866159061581098468477232331642473163161887991901230773744326436792990591299064195032888841296918087079093798998919284517515278081690595001101010429045464919863743878867752089706590417824813178520546455076130024014433050798100175249685188803849761989295718153276162612522178560433091293676660709586524542433368750482788820176704367941307447066860958098070680783009616923024558902957638848492807384139638703061332108232561463350670462210398115227540107214448730911646817133797476657596544887052283647072945038507033799902969246588546812772184266651148033471501011269997074114755699800022853876532289126708337235156672964482493078628494120715602221759541941924042946606834729761149843683286455541316822897872105767360274400495782162934117281694892769137055353261671703000708514249500574422103132517740682048760757467600876238044069925071243077266142113702137129640992615965414407899618896988080938962909769214244167143972240368917301059758685654224129006402904882272452399115902454437218876392571630680321973038343486573926227929657953303807680179223076356974308596502336594765908226887526499954593884513168278634376057524213352817003989755181563097498524701577366928240753202601389207311220449860592113643220238598871242031753788202743749447755350871689048903844256978746976083114151718310328484705207153224232975044083024579054106688157259748319097483994654184363987729648188778647430304256808378345928352899855361316293848920289390225086200175282993993637654783056889552619069532612104328441466905422234514530770212701288656939638577364007762645022448077053795813774230659906094113580101778944609506358144188162913173562107231073169855568271029590899350568178210331560270392998473475238355427458147456024580663701937630886802241596062560656941560629598766080285496033602164049615639957143035316751718486857025426078342378993464560838876730594508635156381755785124937181141666262232081187273219926616484284024040078892943665010499227197926451558691828137603141052012471097621275078941080188945396575252707233289534037387646696475572279331927443554933733354263878587711591703469762823729580925441365128005229037451405456144362936321588841319767855995915903782457872154572235041483668530528981198955461528200701682015172991890695230333673733414644447273447766583706038401470063928236978916384480606849166463325929262331328110819570279125846395833550551725958051144938762464446066775297170065573618862822210206383357337207278860886677622475691350592692401043512364351792650750703539685307289344792321055096246209828583315822100377092429899027007924358040005519210260622363843700973395706136831031202635652469081603444595913422879778743874382158857398265225045077512763048317010269309254574461802568514473945963378657762559232611169861908490469641114398579386566137987088889073709626033209454739320344646981884997131076245904072723980780035614940947548149587276330844874908216665231059546318088135191060695074901648444637554866075511566806417080906389139958894189630712079985204053087414244753543045743014642427206543394159053957613039032641319417492297983300661386340375060576086486059879856964474961346049507233749114505372865934624275997555974879701119552180157986656536927155198806513332134009627895698552178854991212562610387033634808942872789188954063723295746424207921442692160346034851358645357295721200997967721330322937089792557950417730350451434039624370808090107658284867310226508756525394399523757302092897427090387178990519271861562321361576934189348509533760033511161422451624782037134541240457665718464220811323192081444283228707052241534210739476454347405375878889132456693603046964203036603498019231720982546006423522897746345799280655940448590494441777548800842992245392268771876091932669755525318151460176847274652288123189227728377356569793805945612161874165887143705898020757993337576036243705043379877521718659662941506038094251692906588084996275688320876735629039273838463847431309911956931113641813543569661213364993856823982732474669994412046149613039278309256536863706524853484150595820140409681812163132811900820084563453467869337243211526212625000888386999641152966133497879520330624223178859534677817195774083732360934374543947443189898810703654836797300134573479699906924724195955206849247569467419031580993504410191907856656683688406137036525602676825391145858953844749823814657362033224125900297534531066533094819996884341503204225658059310969289017837994443893918475565363809331938674737854843639287352646339586663693261588591391363070823541106664919504084080299118093878940756116405742470992977860990493910356383292238030437894684172256675624461414047686587161490058717499920228093880788366716280856302544719564789821307687500941301695785623314055714254607189540979874881629225483960633439108276071847353273534046618679294458474076126572269561889265089928780576732730907263822248318003135582569301199117932147580066072004088865700976502836383039918517628024516492163444764475387256775632852424009910338320443744510271418841020840226415883288889655546655825829685740263580919426056853086498532482341791694853994731586308489830351028343323026161259885486894928030861589923822304416224038308814164371479042094106085137553624526217392141900531467325545502803889303704053055893094586124448825784809152850006814481073123785664504769262010802750916411507164604080020088400406339596770141720431941448082722606613894656039867025516586084488075685113334868445458866651425615118440577257126270327419657553496490575646141355392960670292713840249385814198723585798595453410601729793887095297859247899205089781064419757813888431659445227954788644478156573134374647001521587930541635865789310245950241229232794641774742682141360339674233111774803472780698288831121532631010832755898541028531844045799797340331220307269406182448504123943979800517199802838581913874809440076993193340266517527501461840707712364993656896661681663782158265976729082182676704679762254166949996799237591872564930015626317020060036914009298271636826638445047168788930583080963599901117370042126942345035939343159345447643195906921137760323666157513453394906326665412687683417781950013672276683784749092055555089652302941534591760731806054830351659550133186331181390499728558174546664845732319672476213124866169532156042332030717935351640941577933821775965326465555351437593340697746440372115442470605185132123081761031145055683125154999914688495296011557721564964804629877727911772406595283866716669450708837063974239303606990079160235448273892255016090401700173698298537701135194792864375646481121872036846174870991331633375772812400989901719336848147406191407045855143802842797778090284005296016693099682439154517414732636053253697338303962033554461179101562973852017938332446972024339451723286702720652756335118884863677798133210822805140385110880605675718611882647805619907349754264963488022140691352026702752569979494570476448496351129438282320536270308458770710406108480837446361363023692005809937533041131485757972348381417377524158834245472946216231456343215973815808245966541090102482219508814472797956222831242804085123990158503167974814878174561503126689061248384747288602159720836765437339735912581699066125264700003202462608478240327976794142471619081868640475576631979067334847042182903099348817346577776816163350466865159158767844832301216904229922660683595381721131721046440575025865371410259742718240175609337246121681348831249320889034431977092717228039685741700559214854360057875634539061723919360732856450218747744940498534108860359685811044887799172067499900553614958131316750909443519443458826100696381129258506764286618234808593658442609127542426831895090880517545876725154149901607375298608442989509634649193379332186624488369319397944668422344055536498318693338040421754304065702432273748933624962754882474591540164746760848340521428419662660654307405356512322542251474594781143621484386132896092726501671106210726831563332647951851957147252734118709790267967314600082339849495125970071523337488955987753442510891766968830686748940169059428244204469705425870834859672442287742119131031502170841136480994777792384650339382983283446926706816613632875801722937961882316067104138964269595723386517097336057695163474034224570195288641104164298564067266997517990347398312783903959523622436931046394187299737203363430575075081093149246802646122359936455772919899919206343269893971601378605377884433461764937231818602023723379249728050803372003774666548124248415506434508502202475801761677737743339024243353749241247075762795729787850763392564920172994263981487724081794254965005084215585096633924052919737365922821390251859702035985500680830595066221271798769593034614139130374306400483865140034577092021922744861715061461715279553514013463878366632420274677860248365162924483776176517080955810374803200461437390887915271637227175326790682399282506969945897612756751094014270864249617637908479350182046973014718133246749718251399822942589127369556501208968603747971801693437317789360467491644073331201980319863475694882707902571758936912688768911872681566186976362342755428704850320802100228293104952536706790350363817034739866646892044630212340136483843423040775103178151932547621059010729295455149292905358413449482934320739437773780945679774929756734455175484185741830802239903041183337062056551123706784532050972043531866913579164035205547077023050316687233991652747544732242111814200119091929595420234853200575827735542377393187874721692941375619664441897320105751976708207442962294313238520736815631689402939710961872151537800502368361944795026393119677017487516188486470012089304313543230917051246449657850404624215786279478055782396617425580962981669761101311276919201980912226584031787794302113432022919755293577317854941536453930703218906193468372245586183931341280383673310523784940641940355410230199162169871038846954955912180636094696088516731027497062344458189033556514983507059918685723166737102017398440634341410053437149272485122647172201767367383304959093164625470990397018046559662296762364207821330012787364902766123636511573618794884216289037983608152371126686169440379218732494236132074399298528667352042762680083998400166316469871648048748429309444071391413987064308495615324649397026947321701841945114215983324705545553701044467852960669538533464765307983704757491966710529441760974124066282551216994048058728233865904128238381776716645609169223930502934940826698058446580371025655827810162845059012102595695818008997158125529298877419944535437756390015496831103412172665570351675554564360733581976455251291170971204994724878789564633789563507659234845973391680327102518271767636829477737495760486731225336690965542839937656684616126786517796368909080904244027124356441273229446615014375212262181254797684502156094574034318725861434744782509733143556195266536652825878774897793711327792845048648185059488458927189843727464524302055601369596355770419391335663675766521076982236968875925747573781372973498527921078029093685859168404471970607559170892666974897803820580883092307617783493943453095813464066088154996616339173365681992681007486764326403774129728653336372947360376915449823578215936771665499958090185111471169276833145599536246857173547897193368551490845508990561064195588992076922951752819321681171239151742128989766645480918389144421569838030423936110006176199891085117479005129736579272964887622604604540637312996104102700756290933821630589914797657993247092807758619126034116427551422586462114913196215629784937707318008391918617528475390775081526229875910918393983962094326821642180918872165793946358739641311125644953429983816085965293281048067269455289912542428597925270986100307916193958019197824429601940065002948532087807354785184484778146841066504600264739398429121162107338588650038050959639320367786909599134180308569540482926605900887331232242298941156200131520126463705052911604908436696042002825316358891851050996925367535357965834109522752304415969073643168110418715146957126062389683130438291304122775304929674814244933916282434459457958765702849680463488681151572495215461749935770879987329870793836530275581969107688537778433508585053333499683219528589533067027029950335425771377508807892668516163812248826031361469935154053238986936009481524425972612536847789572251861561208390697287934440596656965519848957621494633600278973098333034862176345840357175674242738099410930959773327664184136343840362472476916267434225836773602080533418378274946075302424196478950742233164535533680491416781073861773815822933981154426189293159259489928934998375122844170791312928845027058344906657809641819990912528531078977702991839889138430315170435224487273704642327357381090342169554570407697059890009035621057979061272681907324811817637988225196961526564425770907237422896303109553451246780893244012036560050517532581557373661657757842278476686371789693017154076314688656278281667419132086084251359591294269723335231813772109526879388870631373359204508497559991619332694457343764962285736815133200990070360790106869549740363384207422993640037469094385704156239307948647127808049838019981281871730842372224154229972950632428555578741442251590245849548754861685983425567525294306424800137335043907793764109644444396326142338636279954381155503027760352394577029644110419199311514162520449359147030397808579906099672988808797095256925537002635328549755100612082343517029218232722830639189527312732932164413019616482059787428402974944189863517736572097663754794392699050458256829264103641280780315993168730986414746853265261505186316852281318930444851629220084932273329474329277312891386760559717378521832573415362866942713646065644319018744597451019914369110755946351237166949108496792617519557682510055422910965265498785654340003909209090982081498681068534070485071236581827342470180007194620335052043438547526701328173305568601779864579915564828504321764761812923215695165514844618266340344811558527145006912285755407112256557043273497800317557985260184930067678174974607984360507824983549285480143584114289226737650916611152091580287807971586884214579641106689165307046612943681587874593816195866255130048498201747857218343422155074393764451349630177142357279416142368011010371988538860234021654482181118949894909414370374652922604279867893550888152617295865799588114669748705819964481992400920389767968109209278150764487021974451986799450478664050509298894488650515123432456457753276482401530839617408724713260058761708779828135965625103791650524872057527340206232455777996902646079009195100306686280470517871999705571349580137269698656608784236213936257687012813017702194210300349963610845715997640615285448417803136038402226394144976538880026464933117313784905423836656058537920606764742361578785601290380072684993534962138196411880668432410034472119232725726922593566283870451533905150666128855564359219669437324749988242594655777194116045464608374896890651376400251130799879676574526368947405632731368830369134158429953027291325461166474787995351153196105725139097755163581956448855579832329101007304082355351543242542626061103417809814347387019031164466918587092963844755776998495921166604110910409263349014175982459349200119448829298423100512894373175176727801725321586902155286154898437855175223695045220803456128248777478973174902718020623198241336081328482335206729106910952909148048737206730322100263236557786939453714572414894284145819981549520112767882361136678016783697837143365990394523999107131582883336979112382228757366122501316548179323680997060795212416967843984299558456649405229625093380030424059598310562734271519395702187680867005786392521734520654525961796177741787659422350464321677004807948028901357189468168061739856737534885868922412062221491722101360661174469036888124733252422911597927033206932515674260542310031554805872508011171739092972549402613210622061016326380838102354660512902215103590081613162884928325571649437851770367220927208234194234408117570933144811345935382093823200181260414518863340454437431426787399659365089479894378898371848676314917855681382144518890320066077005125744583578934349738668795200174636007521298839466453697372485066125883082102813078693479048930900718934294029280049766920537630995767705559091375618365463321441424886575464774429161919466174252018080363408476022935193092960087295675397370905232988843827657633947587526095079203444966492250417382500560823031907097687237796872558576451780647765958177226626204149344433819676252044319028060533152642546949056232122548001972015189573269794205815989256239689785197035403111055078899001620876988888662763750199558755829754211518553200870195050936200782310135133177267665464326016548671280778801704387965697923388168716963029232289053272925878750449406096077436734722926075222855737107388963949139080800966772816576804682339465715385795385772639567670736749193546317770946790581799223143240001825148098486162616447915551898452726553240035420174664144769628153880444749941807670785304553103588610365346667715953308901856360502900434958564028510754118240176328736719787286993936626809025600922474029559909917785366812208215362040850693574125597458983623284858316999743262910754032138832176403584161401879257665623927175043945193875683299813148342244017816927661413567471173282927200935440804070495200145992105734292068957570219043689070677946370804672478735078937432736992377038724875566823315080763653095710240202355517787467696220639121128373067836535609983808010511316482299311356267661236835558779973338713729081089762616952793141629548930972845877142335214781697511079453964851171314622132307759893851724694201541041149136807413957516615248877256646276477982974465779251135992727069399263438838847160571668644169232818901427444312729305564097879628875974658362871576851542389848843859062474799778911866770059650859982193522901322722769316682709007608330916318242994912134683384281523788653350684072752935543775819873767286390329664609268683619754053352196970880936154291874502206014933383945944492382295255452081912477133239115368110205445441946874323132337882349093894063598934963188222727257338160179103270070409032118685249503703078943015920369636058184508119348641064095335325977496090172525752509131937357829709461961144037913876133716588899214592563076366802773712848280973998886720237086213069494724388080701700659273515165367309812575843434731408607508009202016769240239409951014164035792332901900418407342365088094567778553043981769990413176949614848220365133210644179092447277565665084058305984724410597313894322513333335563216923303357239107495862705399288637444744532448902505543747126906155708580251454476462748910315146153530886206601321831238390537794586469262857219334140314063218031103048746160574107983167463383945337896311407384949553008754492533953344238693781152700484297074146291363530609199847577785938631264796518498191746975760471614221684232346488679113455227989513023651940874161108132948603522089196860145381068699562362943794546004726414445688210691363711922262049721362613024320015661749767517960388805884765013003421619389540923247607285758599437049216139643682720599902143209240865121331385694480616443135773131641405781913509692857730753523420556384756260148373942010446989670801416445469672556829297493565895102782012831006482854399385797562484736661612019672297958218937917310732810553900653333789907611188023424590982501783840535370084250501956689270791043742522163789811977079391428458171443605458823215019466472838174854967948957837311930910528320288341629947194697689035202564857997593133713054342964679100733346434723628350545701478327247932670120201626111593755373654170034541664621571860193336801530778168000193325287360723851489401464400951708324171920799323134116011969842500446675787799800537018847181902342013000649741737951632438690969138474819268228870946640683458182632775645087516390181453487411477238085118082598398344214511119031524418099876800460100960933000614686589997415964184872280658374128405811239221182226465855670563771203984554689314819011576641566426686537878176459138075104826717621477916008050977964530187413285270926957789399583899900107706185128371707440111158591727085991978232250065669265623765470728021155609056396319559590168142430232648641489822208429467199255898914411191883986587385243848428349554948932142732293349949351963961643801393646567502886320106917145510903436659368647531775596456577950872094299162455336549582127020425534120043936418332450382011305326826718250429217961842981893233898079221601872160284159169613717801772122742043084558283273517852054412477220252192887861176450679916402928557794695023663892548494192817921137828523665662325498216124402947898946858219782231855629737507909970085735314411398564049807467776019489963711618850046636077226763186419843396971778848836078745277996036791604832846357744001238196654154027868230047058049666674694252038739048223493769880187936166456156998465756423167741499611849359562468653390357372736152007174102352055573215991215724639708684459882082245837642034856690987734478551798685001737038008211783991620953912528674045385464666165681283597566358382992289934411542623838232525494897937553443441443762807434631677629704813278089792059655271071750316200547475165447264228161528304501539964025894372504239360665636818928419232077898686875921206419468662393541331844961664727077045442941160774544732468564210756929702392895278965506044014701084104540998306778730736592377927280205789008807615059426551633700660977259140087911080652414194596905495187466407717841749234585907533692394835709631452592239623388246192858129592315119968309007359740184840847662724393845200072190350074899143400582812057531713955148374201423518181022187410042342003980333576369887417997921965946818382934802507156791152159661719134621734674218211289715231431773506548905168728124247274029326322383353919953108952694963357546731113397606962395568810828780452963007387924365317084741817246206948456737075599123776752229065547321516849428718820875248507680401092879735161837425961512846752002777301453381242039815766029800067733302895317375435863661952242168772667004960109642852839110377803697107028064316188815323806965967242393594646821353333851518461352336514048961894505432801066799888925161671104625421593968210874116804218638082567654516279425467593086170317440636390164089842498197087554734828002854823858099953161804537168024164908469520654639576964612322262430853007164955436869724345793743986477034824854658319897314112558109169077471353736133574018944296024481073406327169505540316114674841684028493317341510000637717599786470196559495687531740630343213809044567690636464042250440541957257784835680738007176104061975576201826404179642663502730232785899430392059017399566062594740847073811891446920951750124008769447012144421898153956991626819992056987238862788888414033579433775808672011788880404262888613805194912502861269285175902891644128078574359789478416686058475627203714476919046829270858886626645383807977185842419468746160039494001884961126014915267671220642544521309926919581632835157369112734335768800617336991783842110226223583515140961157536564122035886646411906051187920953204563044961908015811507556496396628776327900501818513163856521041879407960058048391035691789768047861366016884161394385504112944948270508493043948181392050375996435764400452665433584919460285111201476503426234536716861407779505330506920907616772330761481927643410364509856396647880183825781813647148552124151541507660896198837973676498536458136592481657365311328066648449922525282030817258963667568982588039322645293923808125715210216104147635226797033424733423328908364696680490614617161146293531162245148872043527710991888234703969335687829781732582976546182092063301638590086212933929740019032269900615473567458540496888929444702022964125894690647016847828468433306814862263880873500205546436753309042499295742102145170997132761732127706181884512477182405331133190686764237785001278998811139460895277745356217594295865392165321474246510809849605213966049795210210069054304171615622232316701456604669459387331066997496552430902434431789624328307165796087079389116704374695661381948524613734389073417070563830249632591019205382185789653561025016550607726916202414349584374789571181534857816976589490290564867759974901791225514982090980648615424091745225387756689982015032707765929744889739276038679202367143792384005877977035647910388519510457063419398289591595732585887421781754774094186944318595555951004589892182771614322788586827320063592791618528826036205911375234984011739755682301517875705629224762332396528337061964969539818339395587394877358794711513689802419002266354935202392630094868048286661091079077710866536717126479042954825992846140535117070080806753819775074242587644221455482124461723664323440897075534715227020619385332374232007253821023333206714164999820505357871903732514213983509634983922640935149189359250045118207204472047849383969985559500170630258833886576327101444571483226611716549403645544914980977074669819912835498221958331222077678242630903028740785331464146820194259641307156886021660618753140206822401885536588412261808377458401583155491983188626680614158162821542293790632737047083738986656683204359733703273755216459699100016877509233518454924338453958325349844367953100591127003969290879030095423556251150683599571443019608041949893438998963905834534719129706145524212802662902352423165450028434387283103720370623103774403840705871070124301430494307048603859449969419335771873420241094173026353034973846558442758437335389318592850152348363918644768206676628381896832616101471672335261059875480657299575232774794336235942868366113701126900161539810984270292251426926108970041801369625197102711759733560772418704496523711848982012714798157532802293025991869214916209377955088337902823518729366665299792508130777972760108677969717112451413655202768373022511985801031507465860739176316864409501879944791217444476799360790839917639852357291722626145706729132921493134972190635319194167186939984619794526964396684241018278120309407517245192986691452638792990795917216091761894652947843680178050989919476847994789631532688077948233397722302397503982632778434842624858330819189588823778276413378316669533848345403018409118417293116613801412361715046121359948040508280319726203016764120025744884735302013490250347467891978985122956338630189922796677206756535981083022945998693060477390183575844960165050017983278402628028658015168437680776290252788523909121481245819352769929321365683379727445348815153584836300959746664374257865408350144254317886691068141548393765852184192052509038492120977009007080899924039282590178460660226928729825245715758268908220646601612027830325224404989151141103904821755429369964658423618939555945424779512657520383438428448964221870712612886675484798233627391745479459661121643646987935824805771751482293630299610121609543089045859138874856379187325401835114436412708069188289810099384368074004251346124127548690210238057849555072819474336036281280320406417566906241217355324793970167610465461661523690548849420656376717691168939385889828237973415215350761800325219694954169017636901185906101124024635208944388902141622225061160019659233460233535221774866531836694450804097223054000254246963052315665783000077998261375826986674851278269878017519202121710678309526767693659856241199146617199600000589593816557422429304917212610726579423913421353397100621016136693145750650911684970952670721702437462023246886340596954208941473710217920818079472767569000090769403836744393218597943626887832646794933376726916703793390637786044477507041470028837378158231965940003583719013055516763939405676852073802722256683255315500028904543967999372129940801519922501578004313052654392244857945282037448384014937231770231053148860434019909904155872172003161876264681368473670237947292772122468732738019026530896685234584697148992469998622383044103984476751322268388754132577813089949040489808090089700032881448836449047924392713390593072122234002199586380465233353602899502536395072847279503593304924635705858666898999361759161901243633687295367825633638368776271896824737232947457362115335891290957340798198683342052174697171147684888183880493969042317752820484823364244913858851362396756761898988031917537578505794724420619660629295244800960615115713315277911288375943287264462745297643630852801306908397765381410516708699202079886002690721881806951678923795516733333098280564850841056091649642799438600926092383859136469658335749302336958454186524078955680910832676577963157777502865959107779015531425151788456087432247301117313716915295265058646504548936632387390711167325792345169860585856917115667106173332364620381151755312364017935406371612836374945837449423449908406415247968031243291563359073592897482439692683334732196329370185079820196595131676537833330586858224959134680629213416356659434645214051457765012583145555347928259099620222683823507360854460090144303995733660222746564859110681447112637723578949967381267918313296232783297252488195823489186890495899934359554108007930249885019238673956892851144150688821684798860423148169078174657734524977079398551681973098527965859546581561131028808623865509867665959406362234534139617743348167734175323625131650636812696754603867798028703079522168971920562964492364225104419678077292876367841245274243684172040218317182483006135974276343536404790170879976694979101872687670724843674089423102838627317078392631366057681536634254373039836869309560208744225928159228957348666377406365172292447468895360293685012301352553583275481199834390345938296113277834447724548062121615835192948589878445267339940433295645092783945957963944124003581357508962537620104852151656461292351272703183528702645796850761016072243591015469475766754060804807330973428012771653383349953177366004406804974611750872497909081254666746615555774546557227914980148782647219140684493020841840444721513728730869792136089813746036477310331891525782291245939059993536063296421742678672739625682077632868020723643608878248416001765878312724219775860771229266862722221957619278358299528940266788655217152970250888923026337946069437034409604323644660369779161908179408757800872447537633831602273490533230206073042517658407304677648898707012101591293268374130003589649191217815566313597338360323744778312163678053086564394877566558446916926658913971638021510107655916162351995788401186651213355143112960598491866994511630514994226670157645795754372080855944972564175260463458130722714758828860935477649555437846011162676304825647507335291568104203120697484128654737061790713343094274633830815397911624265376168920873433398932319357163102631067665929803635155412051688910434373220252659604501547925421540088781082688246010740267165484154930929914752549205335133219333176666731559919892616925895798512819455618257977536084078168102521100282882042231740902257360881063595589361150877644130742269277012680091653491379062677682733550567558186371460864818094673111114272294587578222349067909735369124465250467075793586430913651192133414657301835535800821186374218600379721302374596181577736508993163398207756454330120123250239488841310932047693668345697345711207566799865839829806293757119203660662614066260198285465171233970864180707153174716404888303129042846726587807057928283603615567415223650721127709171478711587476688732725550730667491440107403205896874690042630566476491649370245095605708317352289567576676169361656870719989774998217203421413809710619236870136523897032600556738216286320139952550523729660474060427081080628265809361851671991296830081220782621549998786007322782274535201810982951643349786520579743881346146221093474594355832293206206810852709309135288148318863718217223919792757248022822890098209143465944242309999180761346281055747445988501709435426962368374260345869426997747899939486237837928500083821671711425338507196214762442484277831239753868271157416261762605471300440895233261141220169201496529908944590368281665376602370569686126297933294565227164645614458483465175854082697219782660873235427378810241678202684101848890788772162634740614470232984241470493202949965109768406720413953721507816089714382997658070683363462025407070941422961942736236424107086364458501660733094560554407694311376541963317482239429540360083706852772364228781920177630350326538190990524727497829164701697757859478593785516312397696339547070133211191280353875725357016018743279836710266549363160582456681181161039139466138638191391167373232937205365936918673431972144776867879268918396694053236814048812140700555462980247051394195376552934869128409286714286547723324549117934253567967142346344468342916061586610811058975847461863496852439133565177698680780885475265764367616412763382451067328427814567546402019565010296807529518589276387387773629031594284758308387572929225992630977278859529892272462643107102000465884852364247494006147546405437562209275192559398995149712241646564269671740413926084406356939429550637616484031921531372196764010201105583704405891384794285554955113677759976390196948819224531558290667341067582756140002155353195452646144302587250953751123175656619794372292052168445144336758691051571650067322203846367638222475734275815914537010946050724952555985077337232893614518152535080256981043478845303539305851144288916148839641828138772328815231896201621335531388589747650284770753851080379615835689880029548783360844055986441188911437908231669724322358354101993733716429166935025268245647025845009048335310023782299722177382133939165758786399649239986779671163044604560181488214902850070152404412442085101166897487183753092920729865536511968888398890766752849170116068793680227526957803217284664569016885269575198693580175427873600322078442210554561075385837185746104183506214887112868639721509746891897208918113743309337225963325186585331842934904188808614201664925601970007067981100540544498887624386401459207392185303913621530215835603262306316471264878265080446788128896537661302084719700947556757316872689325741048146297796493672139565190389475556297485366444708806916913386583297189522488706717823199132971876529904771260171813342647099083211862641130227348726460892557698538341985508861616200463825550654707599863530979811087181402343006323906844379685744714389836748166775673219937140910763761619531162277256096081006610700033818483532607150199578743242329147162146759020546654670578700576866418428027016835672086136532271183530964054934023393967244993884382242897249031588509213631795351229580451773554316342269863402196122096636452671474464292386623698780405818981946734177538662579821709551610867677413942168586961233506102988121176088642454626153792038481418291464317196687227759011423627998986139570855255983438469746078395076521468435139760005880054833789464426198219245136717161783092960841033669888626784017086397933209672050387019115127123571889425960526206586270884447564187499209465059165520604614749879573740214303292260148188421606053493349077811762988220020430773872287260192107634123429871630054883742733408594889019191671034879089776858341035985100832328758992823001126353625059709892661023609149779770732970684052314676109803257287935043888806969496994955557298412860939215848124918255355278972402730022439512031647927564469876179733870965217144742542300969921101883270594045566376145093981959499549511279154699637562596385306630006283019856237458586764831812399168115370622791430471240651066696916687174585717199352905102686186475558875588355433697758855644658390879781432300774110209161872102701893310254945633863726061198559240355536140317261377835886119875620332331549410390386710495747016763580571398017323001566795581556691506914975925554131540347189126581036505710533592778919600045334954703207876972528573886786842397524020584889213261048165886039580792116003190292197356589246968257938306806133297140462483671775886653267330596395300354916499079853858646061582231756419899580925023282419846703868440364280201507915597815399399721354388815237703825351115552434981219024615078437240523831897727327777644165912632771934347344273517591288215246591919988735852101212881690700781835277439055789592466465526143627855227780710407971121917030570344099448304564943684288475185161790644657296585291485157615728063074541851275248140905062646320039062125067352976967775308825948069263393739029559486916686255329294389299797302130960138782241365400826796382883593602720395563115941531901507097091943738486896864235342718370536101505596518178415145109966342857896321793428095908508200295073635155399949141691219658280127101806818859615700199617924757405830181710828861904918017920345045018861845475612293297354527800338144363694355509047105089226402048311912997429448691898025011301160611018948933425726984859031178676253319673241481391358310253050009825793827184324015332401113803354327831578138793220638679415691313438461152505362690283649853989516776569489798511308539419537597193203204296654785196442919797930997930636769534567152048696688462064133809402324279248449221014290754727932249275013281544226696261941463462928149085181712184515583933300405570170934715835748015783154444205548145824179723616444765660550861147725040884903835901835741929574828967956979999767523706344195672950516982250697226998306301559363917695124943150507670163196165044252057210185459556536023163506408142906175665171997605181744723765026988057382106616303524619030579100258626624164843182797696781912576699496173197625886740542132963599336264471789446546378026311394319564923615273456242065299042566706926391475287735724609681348101850758662508604853463392628862807561237507121625914062530488279382023056662008224057264872840759176208349149990601734141834755431255116808152248581271423729833704983023902689329965389085629256695839532573718314084147040453702071415840448365299495064177227415045589475705751324986993152110953058006863814352880875580325074309784861697412326938444385799623243967505854764039931662539060806243428792716708973658148344842461533367329130023898764169313908663550780786823363504959890448863085446945222694454244194833845924594963255640594043715470841257088222459237954487375921992011325166126114679728007651342274705413364694556955550461067807628416729154485528702940780770713689607775490815194788798543152360964976697229696283276429471844478822126341330450202515172733276497848896987282967492890598305161072474688584365328297450814170662242119128127864587355398114813342889373594722840856555325000599413184358051733732270378188810697091732371887921338822310567056072994026180856047167994335193502701160630922262855788065915520230405720801476200148047619889441884298314283588998563142930332748620262557521494431250750772122781319439777502758006667195131892708125594841567511855531820485679416601796122388338961453479518458332706844339855042769412933148976577353063220251177410622553809358011038000547906584282443355936196910651969584150894452894142664519984192511042274180908881149755770400719543676349636232321874441249399238062661107827857060267566366616731303692603836696891912570357631202832002739738408939164767257623326528979329013753880885021951279018811498392614413881031363520813733368364711460594423431481377501162294188674939616856216329754307433918852195812720854923707569344410771920436079124464097135003718630088510543409851341245067063287334501936733308127068924834683406940369153063693765768002029158164221706061948174312488111274383407981891738807621269232653363978197213610466174287981517814757236301258419452624636000692172087185842736067571326083307540163644214105837003410908047735104186717176797863556902104349170475507960831296116639680692918291828644896867603804162195451845206170992961959829478685458118117244243498880898417385113229310110076031900165481644829649112725236098330505864448389795875184348602415582593517628202302947672865782210535830224184652350671946985002860695272150967665018365682109099383090120878177651488122813146435303902222627512312366375210935605646672552161667590207045239976157730698738044686316271984634614914188115070283693306625145367556161153727518504593994422022676753624933179757581159799660753511215199374639646771993671368712059206395786217742630731583141465612176871579976595929003953353810947387762770999088419684564930341452436295519193740383315576633901351128631510485408584101993528691725493258435187435085464283371185082103430700232466535031679167081383216547575775030984081246474360725495152354093148125140702678433116411485983550741610442199024278752573279239699645453152390336401467042399449984731348307196737220286515470685779605626453995132599138980159327359242469834569360035159010472414413610349921715440840855085697384622562128331593872510186607296870448377076160170848863735469902229263274370840099063154864992361063720203627342136480968835600012311574314130849261849989063327497844378153050837988056473445710888432527619999098205334130207168336241754460137761277095368514245103089420816879075094583610191190906423820879444666506325764845919345546544658576905403549383956226898031196615675162598250727472714631872573489660758372578369269832887076340485399171098943770730868126593505226026599528738075098180248571863531177647722069143520962007966340440992927365812012985240379688928040757783241267605532663394309222067503104477260175700277180511515891506483969911318978309401817942650357406745231243591688624787096066875963252268624340664196095410547661864747540765988839610255941882209404612513399693529353061362850544753401735216035527261407809588102872866991044001821831999797744525104287301977350771776891465217977981561191502563885604542407108096698773873781782998200730007779224173260753250106034845313167964706157313121822863488194113036222425897188507003641675485307159932687213985293386598305922941735172585341218484996344000568793641032301409097417994529212225656671760289631892453393860303430799412869172045093801181299502657034641553412208006003767748148341374937267948527072689383602146748732574678675606726818020690369966934978915830562409505871950060101105910165237612737430082136472371544625784615522037717288285702421437004433401681040294236834894257229605556010270652040087160239079600690194489278500235697031850861183721864241863618427363621026703833522614774418996475814913077658529615232414687252369149527116995184797341543194895439598806592519424303303925815189410610852180240435570068980392162532421641448112195569159267751980373002272500897488869648097099964324755472178928672741946411987642485974277739859999403787494161453170035225129793925106888048258426973731603562074112898194512654940133321826928659008166201268323908573614566937493641516598612920071167960451355047904183753723949593058346656829949464789906024119167625663560366901588758289880607388819521733458650397715502614143286920889053255341558235373727047716620716057035774933992477117904991895675295552203846063531092572017363155166101546034773044978399204682959024305831197596363636572238340411940014626922882876002717884585225751769279127755390269548397150310247596049382772107746271028881127083104301073032934444819044475756558615543574083450778313794291706907004544435959356646167375662417652941298868017460603094893259172496119259945528176523697333173008820319676203547931069437825312927020731584436986563258208399586206149734942167162176018399287708168031140627800164851516769140848246104369476323455036624481442177519639873671777747019839648056510743492773332762644088860556324044793934727999018615497602704857688411118459711945536312091097072718382606643464144153269369030180978326114092183421476312124568258741854508554338725551072351534688659411589076216117241814887572753466600665828472532237682817222776449100559245308108280583755692823671556097796135265966675240914936928790857788859566289459189418519026975869820841070549600829619666148800777923925868505397524691784691991874597829265206257215693969544098285656994084089527107790243555640953666914531841110858398178672448822971769075713510824751031444004837670228239300647812241616309370105197159651337658417696838078719797284308534596047894520013612574224417465795259156587437858033029374162277838911744089026124834745286050467038030868244928733763607419492125480426464819092525298381335892959096266936573963222396580685314042434744051133728645972898626144983377688096081484867505952109575769225133356854388066451583630659569025722726038370319162905855579673431237487281479094474501754465677101963520656669114041657340245900653496976249153477424523393417977031494886581351531036501992164014155695228005797517103189412997918059904068544154721530639745502542932418423738129990953272482096254615575019294911859307975815496117294506328249755778273966812914053873651343076297206291790618459293501766288933785490404006442833368236821334511606340000493508018879222826138396287101122309131970461102077490186673023831123276096488320697045866172827628052106631959659808244446014807205950535301185679148849956335982973599476341337226425164508548340615477436346023091378780289571654848837233110732442911233971797743270710980288179500781924959772434785242107268623707832102790080576793200800357237942312016500733844991303719828322552775379992141690744194799568167171800181560045295861840548320484702185757185291663168708594600826317660575068168677413560834737529399155574484352973835432966338919643409394548449292790010183325015982361440921483613075398193075339587590831512010960745085676461138029256774193057504577702979946692565769666332206090332613753074788713187670865840337283186213949478080283218439266442282286482117439575272075579203630865989454954732862244544668392270577373793259776714552611262793897538403856395201447449639743924015996462928685219800104894618797652275638825899535224887986438015133108579210499935993416484027707102288891929783061817486294423604528270348179123134886878524685435102009833890746940409764628129620294744228321767555637706933964737456627448052995852334720902726713855728608913109959936773097796762817163171951103384392670536357414088584307439794783256767419934905973036549718968054683827375083381227156981506032056303695488995729055814415101351039498020794970190685683922340056862206980942502873384362537025813373983443258242381237184730969668784800285631776478966409445444550910698849253690303456046081401511207246993187030632056412617793011106439536101735896662693035191389400608350832807326230864121477104936734491850402130090480593680933876734902950095401842944709365404975924220270578730198658566611669636904403452193163476638747016674183286833668619926098624307662741833123039083576879127183376285367719704173958542163331268190326610050659392909464048986565944453922082387673624509914616773517642002357430107610241052080942118772361914215044935387419622310437028710951054042359658983799238830478838288181900953470247531045208242364249128923185164004471522367464872487812123974382821021235790741054320445940498619553929497332443929431855033010040307880737128431300049487921669881817284510696068970971825812433439440112708618604179772416077044157374454681021593001122709175151116502761395769693350969294999885149113987075785108874998919545686594716082766405665907140138963792881422140549641255500393279028984572075979057126008304060671192198365269227046851073623215314236887375061351887201516379446287218392472737638082522126637369688086442650232779402917253084679727655046034039197521034651364285807116819114476945939794644961279679418097319911465300131427320248108909681762698846680055628225666999434884693165807421579543578059584536105189678435823876987978934078154195138142466283569363568709828352594196632307771810565815865294094384466352375223309217887144495580257889306996036709408937566906734296161630907372992186737720304449739351706002515180235781573092958313634277494528161239979711235753180118297635965543364373539861750688175838891258313231930616311687646457413290046988762844634208034042898691360553270532166213727012193072484835014245977160238980445938621095344087755632400967240655422839447743315598858050869828613008690884291519465743904239257621222565612937770267961095209666001621915298275169325494435610146355952831938795129793231474465542405013247851776631640279666071237070147658690991126786576019106572656776608558145171301984732924035606998540300150304276527015441367070429822600503454644780400048490999349671047700442507753326533542748542004009766378889657502573171995029263122576785006779712576370520348692471417159645528662198518250508813892612497118655274299498535344349501884335244297962136047955579180623023327860420166019828624048892068710136369531446139693684230804426587638675358990706435390887372994259438664305390960810207288452085222998997181810807822176278467077604275347245387434384899695314542173267347599230635133637054145887902456859792205322928574377575707742734507727238525157136401697845484347346272736239275806198207571291575961220742541628091320230196559178047245550826576753103253088552669259146273022879363779548635311242419363492549073911567502975840240063574581085317544801908026455896256199377160900082267837525924931708242569439092213843768244948639475385237185582245581066357724248702839125018668859495059539419716321819370824599797356070336293487401124405565442152967371325925108366823589238295514511201380301122351185251287361788768941476658254298929272583500381476058792136404687886292555258615277175065636601311232957612154932223110177827342313836080614326444997946107438467396223524196752151606912749748482057315057446544218306235657036459592629776308439392292322117409089722018425684445232916865954792043601885127361107001500225002155728004939526876675181183648887756032947375039589909027509470316901915222327892694466158725381994456823699676092783779403677731548602299112730560248264016756409811164096536154086753325719038636802185743432921187641226272967654029472264787263965729486789748919132659489731368874652866992904687611478597702221717200794964948331636781934322256251924599913166319907307282171215082638686008588271664915163565225491028143309574242409629343656414223205252340843087938194524168707902885286804041669391659169737810577988930411963670435772054420835545049462678004925675930260113226792421401808463197066749201977256465051038800363721661015892780043390957888990165210497736591563033056933392781754115348015805161813489852003781511847646134380489132198486054951858877717240570948677961863063365137360515547717422436101945421718918830585710197298457812705413410042854012422148625374394759276626803146113989009311648303239695552448138496562028010870034244200598997092752700124832563787852501816538047792095480596237488167443856194010766170301867229064468794880431992433109415960488428408611483737935256785422541228554212806966680874250914811383540783125867801776558614548477239331712372215793755883758840855310376656337923813832451976317068558965685129628623065568332306016836006151740896970332797327053884945542174886084864867850443887621314582043054013061612234028850554021454847846878909666823390720110380858166166779074352556145210710537676145640862935143772791671759670431541867698912436549823928257237325030795089964960360779813965239495698382903241184222589474078768020241151341299548826043724163369025367061182014435779466037889602401155829688479518136393771020852752526732125932309405152001827324310051205006693208485320351850772190624712653527763540895631656122326558649857439016032761109931840816674872871274512437045230414869825838542704229134544405651631726576964083571667350688476094781313572567935239173320840546168256684719999457583470412999773716663847742425834420132254057435390237729748444166923301810157646677092471993686489862843169168378991843999061244019189735750775395548816504994250484300633025413268570646784036470938228685482986435627134903959247907599315035753826070496244560845544794152842347767892936817342852478242855183161324741342095605854982128452088309494887010631479142543985285534206496219921182741007557580436454618759438834909198252513873819725194161364384978012945051826000337246608502884174956605784628171089383602448866440344648329412547593500388498267849526573486024913325523658316752988793056554162939205114635117659284172546721524106043579588723643078216736738279098084751226810870955956504262330612034025693860361675679732356238792971542909550264200158184712346005794032532021725188530539672850161532525936525912618595252856769263502467323806241783882773147069812436138378917891031021612307619178957367814978077590461705446513144490153246860351140303350092312424816982681653790810341771699603886164564578347934821197608610236050570339000629726628907000654845132499557504566617584993461778560452220513431068158331301131794246533655664433919760331890014648672703724978811697874137128571162994022975941345004085795032024477787747823640392724328884687090717198600827211078038873356640321798582808469236107571227311902471295186482415229827842448075604272568967788557385493593563487551158755179535357998937239217409176935580660732257000921977558623054548310309905591970618534245097415743906183531744905004604091851121970726083773442036196445014296167809713564009643945798008468225905812285275397172501999749519502184703394827140092515752447395371114100292462396052785420297702747363163426522924369510685601995559650990463087061051117920596440367170435345940010431700665924979827276406925392052164918618787738690938486025311137493226743399200274264180461146088562156895052105518485565846647169838245902887825772549220479001095509514886448796871455120199627135661910107292260204570166329408416015795324144630654797703524817853925533909834338172149760784383416575067203572451939360367029269449233694158792307492542319927568604618048569259696045983017552151075780956736675876259759452169786073339865243502391641169440784409352367020087209354798662243455526553980174695613583805004844681071693246940738582401892163480767842711595768894469753670731248339068281417157106958748089585323879247500425737235154228993970141756148201982218284738037242610995305928648536332747356937599262665059715923936115695603532984057379527237197273413856397175437484381871540740484538021206889755485616467033312663124400825809657488381707013895322147863324201973779388845835607156624335745639666880261684653711358575528458818431152685723484430380524208414149510579257973282194896662617525419030348411916975995332913992700299566163216155166336255047799548909840349071453622606764557315152588305963031518887495018648278594994655323162207659889476261555548768733361950072528789572819536761762606939343312499155107817943679777526592698514874919708408431592471937948051401616665274483438899768960121868484980318027012518332521997153356059174274262392119764898781067305681891158200683719777037634903503669474124034583792747656313404387478389154869732034815385883550684324096011361869012539577491063543977896322343055619733801060498355110857578679831138330984637822801293264681048189383808741449030874782623421269338398595800691160562335986121333756280417094068129493085228630495550416086773686822691663938000594170507633769920075691656687781417895700510024959749810920101580747062072759493940610375694065993723723995893600526494311246118283526946040139263372751464201993975407638929421587931356267654953565875700593464997094117354910089440917508410243175077458859778170837053954301768784774790805353041936500103196246030485875887813391933473687053385247524866457605969244758325707716414998784316780196283159002434968293284672620075107387388548598300836167093482606808468277812707973093936611251905450184700601722352429169281911126491795252301928213654471046370566303061879142815472454280603406613812205522345766397117206198293700247210098211900834177551576409094713894026015206618678147070247759760826027633367607010572834335493273623177902475252368590106650448283487929786514163620054410294628913522420072846947850284292195174572652066199720799110390694203375073709538375069448451126879970251267853103720107335782914882703486476101086360771410140776030891449672326811854272574388747053350254034702770144683005606650826747057825394875630320967436627223866104046243858393493639718033442656292693614047800839872197795296862377505319872617832843511995994643260744759274575858180117621080931944884145446067872070447710999776019638737904308248763886287995805864733057995620443479007032644180303183475344106903589868013225226080110153598548755211915093067711280796632852664513579094829513409097518805188350035113335754851087521996715099670550651607466788857726585269582890901317508743555712411022129074562636722365762020517734362418315797643479163861134164769565925093074688350961692828728457605916086041638896556218400270684750222073831865928888754797523572791023868584471917630374319130511897810743355956280729291355284366992908456912875770953061974194303829029762533552805941821669971942286217260187365356520125859396920200184171366151806439129012544831355416508398319464935451973259609552925560242102359923213967297916385502129658139999092686467670149572951167476966064716215663817436611784492639125890690717852480019084525072948398035490787618867655124576134791858804942355313610821303934782512225762190908426737871477975923466545601443902520366929047325795074362555872683743910160040398078146719240760724321482894414476812239298051430744435335938229459916706105078420200383113012700690636658749372339741153187239698952779715749723052154519373803371620236901360900121504886474894605342806479790763783074713911853169371251837366383953668628844018256142032983214925287621195307703533340327960603487463271509280140402349416347115072922141693406490782796492606204258427156524077192458977774589765436100708561181770615492104779730190751119709406096636567969939452604657252185964029998023949622793591951637538347609563777346950102316064717771645511743521167653771104312953215420435476217218671574937185969906130618443907925327760954452258441218302251318932351566106987747937677984946690065514952242756674218854617005140102696909016539636981003881371459260048170628109816819101210767183269656154560403769177126460538181884574886294577371291492841519163508524826610339609005338287138907306419649768474004137256082506584220466605250626162597847189515000148609620451564761185973139415640534807871450441190046787527060730798234430139886673788378649655171039462143074398586648228506966169394729071723611328946138922442896248638618251830817186810404053530757628101512147411366739438154263104106131686735507267325561710006104580099495663231630730186243755220552935915202124150322302197622353047945888748639356985583219695406787959071984554762220534699779939974524768585775007624247341314193726743809505104291339827891150176555212628990262890463590986504248570164628275812227482598039151211415375692295715408502534925752660510342474931787839975319063581137659690860405056872477223558249538538226570764191463832098977601380102192649627795045566025731738333482659072303889550771558393177665908218046086605969096827737474790812963328715832898531398920710313482193600863843394555492940355447738730914862261967540679316889445827940654014984252243539884979934472126757764679164164209339046985186187572690686600850790022228117344276054811478471189208803143420413890627231780033998717939107670417808719335062735549448581234409468074184289935337649503784522038745047222749508156260787162369202062775042135756274660705546512115758880245578990630150273353762894372173275539743449418774711647804835814679845775955049707031946363833122853970182325827557341124808373779810986736855313927304472194890816359247950154718548443509858154618613887620116239801938175206723942150305801018656585712599488583273018072004375104133700488709500006237146674323530514588029247499997398241261223283401021192818593857635433756516405675319266418751067061210796131808847755597699596412847394822610230112902858302105288486775742640774947621779029633528232862519624542720416468596726241661261371703722494623254217327343248768190866168582048621053225451647648768593577521116979306447392748807271648890869984464837111925275548371845377904178821174696961928035786621674508697670224467119357761638791500137894220386681721341832576396723571625182656919763580509519811250483395174746345446505662484896397722829539807168388376304350207037659458261491784581995272237692942963698818511919364919749035855736289833345125064027765319304835607273100124074799576679851494524249542551956288703817591160341649804122528404895388645725421589491492531372130981294912951056384900788918231773168864126332450321846491007642968003947921071735161327887739383429754230356794382738264183939575328919298682800876849153868833481893016994811908883832053015131251990768022185044067155334225669397118985236733191513375889656221738866018901294006305119328196843711353600944491521797151033693942662412165187990176735016157813529014303257218577548735627570509675065022015135807189973457241991169927003576968683998826921499418792997961160758558696337241315227036749466416250442417197786188112895509900313531577875114326036563107052298757799892120496181112048651741368512600062147377259295670167784249148907814206332763115979616630490177387736148003549479530347546901437301175972383526771039350425975049908504963874991517806995256590904973036988578150391240665789118944679285872904660588578080797749508392129134365525518824587443671905170140104741002060590460701317295999225100862875517332986635587742963831775536656792732480700696728529102692051649184253238902208922303400566756572093661376738169808115757383429349397618276281111728947496394478469083318136059837225858075132303877437097136216496690909842756213907000992385645059982961570647721269904326228813854743872914196461797794569490657472182736797917130696127005094234121922127223095054074917214500516472825120161748744082238708318936404975468248413368969541233231589304247135025745934010607459286823142164553133427153146875589804657363750596180064456336638822568027301752405468242114001835860012988729868959577336482999120676418001008342367736615145816808642014831884711381501231209576298762695823671757931448108370082845559593690439317714043271046689237400051315627065797815417796535822328924637295925648551664981800312977957856234913477521826422052345629224852673363439724591154812559678452173160136294540212934645310922119302835549626671155015752914218251497525905587175014221679460466280197568728702180068073605237175594865742908769627670234939657182506120256249163699671381600809671447512297329290518338186662406912353017224851721508570405824150862953637704395747654796456037447721313620336803075857526206074355268874934045000174434887544786085649997528585749515405735415733980618372644396500293472460725491457821891231349893573626314612477447420118043008696868967127759149012858257403944247266634523849438902991231562807587868998030413540883572971814774986831761810703778986035612967920591895972594923261937649956648571487856966031184527716902038171227781804391161948345012471864716925468319097335254940975847230292549242416469411315950064516671403949057058601383998442367021038720510300315799687646229599993584203154392392732895739292949888610526198556239635708337776179330795593132104009842923796317882522517940974908211100450837293410860473402297080533401683431612392639465242128402640514240234994703789345062851736833834464698265383884297950726902312649417979072366136954332975402296320422802478642873298265417789371067236702587733362858085673309131086811406687262918490934281122967613509899626236186551966877956656629324624154824630943581020198870002297355631665481586347575519378309459802220060294680604075725615637690206376218151001976773799747929975402655436634822998804314610496849129623224021936077799872595421615690455353203975332891772860149207381731514385059731805614066465190003839231343888091746758655605369717918701085040969446220009381920100812202084185131191745392750884803762788875042080362190338078186232823295074041631765824879587998687167576799379305276900485697979630599767299021584812937879032702387262348542360309684610944291320045707520389256506106939434581420682062170092238556328288285349235963690500850711316475953202047920258440448009873991255855077589321726257942776295240804779167421974339027238251400599134092255991988229475876083636571960803524840095203122819410097282837639267136476198248764171696427025309604892093866611478287532117922338999419677611143463063565271553558749082381625911918803799955416621201635012427892084914140806885831664893508425762473271111277039943846532351960578449329501927838052141321365216762053986766300624406647466051463238564778112966267317678588901901219747287528860612992700624307694870147679750010865119229450552354213509096763114169026083489915835547461624233316245319230978395637235300482613809358287003282319761662197617889176117550350971235211607191595363439741797804807279067289273518717069089889141948304092011603632227722022626360592243030342163628042491056902106172021478731531843927563300594000261337726311033141590373722295698041630294438480762308422610343424178742987261591099629431359040931906809116587330047123100947288810688338054369773761895321451431393729743457925935469536513226621564783518318219637666140305723282884557622952905628164461547949633948212012035786797716218773477826942920333867099487766617684024816874174152700362585216598843519325574483036693305607536304226860763705147420611500508508763772346770917375809390807416874860347235966766157480440244813752091457575239753826306989736274920811702450182984906602573402505642889081486998033211047662759577846217414533900592592913465847488702770778860309965034426613641049125900279230224854780473106933790267394401971784546264397522374612761116929902670999602884487828980375044078967597600858095059962793938903486056241475411205598632128217380140159327007948841547532222761195044605914669645146821500664234725689179373822491705154727549899974869680990874530028197539565820853235799234099901204625672655026110740287296987371571942252567277345978182587183234441207129206910551210774354822350623654462913864323808087280781606145604663031020203270323762085147684220485161716036380572178219917759427307657005312863726486693693451168528828298638351911322708894604848672791643711475610752664494628163198329014481115789351081067521458069956536456246418329266083540984934924699188953698284086773931421279680114218489724618827733006061179883407465021717863761561531982728297157568839553963217420951331254000754227224937296251119195276757222836413324943800718314636404315094571381729404449540318547400891474635572327487013870024954933430451811319547150354852956231772017206584411175430586209381392269043465449669327769017461917607312796271586940823699568639471741147344515208830001599053437391052436363813265277602068299355149155765172047239261957249893886117530195894911505343040007049187088712283965846036688383354414870436601215878566705068681396099252060290880827640348735068645465514669355013264933511449184909331961632755482115188556919220091231945988080918830733872423798618004292121743409374670285066513974711463416070795123964892661664122732985255596923904690343539571216032162581037398998334298016318006510766562270158198657719419193538969236324596565335493844721947984971102391180023982648566082341709616403116161856383639998250130351135365984056616879785757677115659373644771835921707120738332777266651861674820347384805967704623878381235464040980493077671833566156614225827949909064469981764412967961300432636411454028350596806574567962968865207100719309804080849877051954623741847990112946865913750913190841152081262334679262686360874578058554585627124360090242988461494448760886794310809364763776026975048744682614241671983367539963289586315266783008280936171286539951923773209086145295756562289320266713049013559557141005417092941069732267274613451933506894807762694664417440249029892117616761296568411207805950792013692705331195714697367661911891873763300013462805732213852541621270769612840354461341407448201426635213318323093429285978195458159239303678569421871803349695912717068272539241242580902919252853800820578187910546680910988808943376500782746625420114615256273705954329766699759114952331671345696707086069576177785987361640215229558454206308460104442507689830698624637978835381067961057063802221634614094616765930800465607810386959810281247089084251086588337241585748787144880645899182174963421587396699884465255642252919547107215285039896702487269347310546024533500590561376698335046258797274502234797871554884271133170658026782582126870571919431375108427639113287781709223537568681053546416134503912459098164040826592508170142450378516232390568204878866318991838066783585590087992439127851181676708841855813320566740537370715718124367333611185402323840657728749602729047108012765415277350920098803127674666425537394236337171241333557821106852975500449253343683120276084918465799732277672668294840718296507065834094748187071548596075459422950605580904397550441244164015255900235556154035521166074236256376460628445065449742446905653586748904484364110888179411193552672891419916025931786385089521908985863135852174207855282574691096139893235252689428093375832630018069841109116380693102263362149682033543041556806104571907912514125102035216608179942591430874583246567522805954709838841133594408669245941573683612966246526704474092769235408686079541140290578786721208820890571807571450853082274837686479802275204759915483723216235213361494889347393806437055510391280015167529932458798701323227369304885963019929620461141980605508738510500429142393318638995173450951738692771015633972936410355866580893531140489749422021776655414162714952645467568678441801859813194178740686421156444106122967519608727326358169527127352129497100592590449738176518384921643173854246721379451901904489719373398369399161959056149209094668834660470237215529987602571495840526017434793920231656196885204734213532203974227742271793031802757055562264873044680312615921607404047931940158226936966341476206784640060413795281906059389206153801269072955833368962323062590255501006019710520119607979908186629366577845700436639067125024773808582999484427577072377134182955282050691068434391123422281957553474752495312173125243323787226120521634824882852506514597178022660456197640886682400365724526585568504301207324387847904542728572584775312538734501839346648907799147766035954394870655240752924594499455645629111747181604223189564849983803662069124181411070113486610785824305345968955511474444810459353975237668797773699907400698702706154293531304707664997238653379588188722293306258881189151708281215349971512855539007604799548153616169540006310093019255939119734387103144271432158687286271993094234117428746530909417645733230064177330157128497194074133309859059261863858348366999913396285220692828049661621387688500930642654943858170632435341686056727081935332130357365989909415314234093729261918991015355613329498695897322771207945529247793465758283158888177810574969173298754488422667655990789040095571883088745405604916972933199416267715274960595704268716285109096741296031913796312081044210728161704061668876596413900270839729748680279887119358831260870737920860442343502598592491261725666024336719048139999644575051124491435853290137037964604361261444611754177469417069406063390693858740679513861701285408753665615787424965297821856232270834554878242818346275356625367435062516741181543799259293643375150578663752280832811252680193606243737646722714707118558093320373770204684973268941210728126395896881213458919765717169385107801803989917022159627495786017379003958361422329263590197589826175654695605323250800533491659265134577108990905680559443386349296497255794731856735467431125519741454158434831123646457802053891960667148574055846627193836989572675585012391522135369949245530060915296911516657653602580367938387397200707858672283520834536038464161435357536701550835387824242952265793491255867791653943916472656429831667436610634878979466217461550520359207304996549149534065929034604466394319961734938291337390114444056040687619350432615453268783196599468221144738189628674106207134599268282256648109837593223142731838201284390928714991429066998275267237803176687718446615355257095106167741233112019544768979552792793371230085740637951626429879171664640967119436580610950172942947670131002945081375968774453726867494320235151119175168445916265517947097589923148009701647427720482589344857175298507505791332496485152208238889387573605642316831305343055768554615434686908883547949739880928626464804080498683951563581203311240814689961569250791569053056522336907877834554069318694182981971306426150212057056958241099368546080961518148927047934386357894673867440025749542396865551531434990750036445499411660696951885908207061673882610333918686876402952885480504553418777364229608078745678532429730570661939017847065180394233385425759701700106003467751510131591503978480933517211654989514789801454507262023217092291009378401252827034273767754481563398461710794161809794713734088290341401021124832028186808263226545598796203981139164814454967507441246408118693161177432535056491282917987484555390955806245897598309437181592414618306574451843612042672864363019959684348744985129184194738055719451667437330215005268451091318223662280801100478492978376374039129128465195812774717159637339480085072674872773231135612822714842562087151309379355970046380309687694826671717753833978306695750730883305541993568969975631690895860394380438088883533281834332490828166658016755794751584885406177542908514645152088054146620109207900482925059209303974537260384325105071466966391684342967283124590236250598705815366413645460135164515201658224620419326067151694182765318168556915427829106123400282625463947272740704379884732079521885055375199874282262192301164297048031487934149399400813739814406100949727962024334003845067541156708064130688541836908828227924969966969692420139808728626736950579461620410156894818321841751595966476084373482488483842422459214191701482601450257854588721737901824537072402525865885163258902300967095109369808279388353569323411816994213361795131026635528495223081112771660150914352223998947146191412103174744250743467500972569375812871082022110253177758559461881807067518162795731087902726963099250315123412931834487349704248437336367168446635913430614703265362415965004207670156189694817083823640260016943379178382713002140729940334404687616970076796393495674162349794342333712981382493178570995674068490349037732893625563879184208195754276388332607601756061377144780365901421800903508371620282704423561418893768360569124139224098815095983153577054598582312531631222819910722606315941960628130882945300962428102379279131752396493355312184987279888038030345012459701984163635497799783347216850647528913234913106450519581176655221110419906421052956375078057126514393797139850075502461126755973293061355628360565247734296610343028925979391462908110287795199452338076894478978085799693496973073456307373213153465929269438599504328899796685478558947464443899408471776724109929110444261509674122323656906022417046917534523355622625069610810556432788753536426171155932166603569634506859857060645893221641874991853190354480922575088197776909147557553898395083066845001531103103255045755673865366582969288761040022908756607501003345305713573583111287367964102196018290757740284180446138953193910055443744034870494142020885064032896847624014909168464139371537878033914838843402266680602988175548277536303690541007048189307749292412330536692897139076166899196123941013949109611018540159250967763646936669324549338646744856648907738732964105860490999170690773562444400348939719971318731405071689726699667106115730105634401381581391260803463852049379184585245970072020376861213133652583690082847852401108159686394749622601309905404023779377773526997615517175284133560834425038633928563911966101048630654876629328003213137187310772934398488545372465950027869761318019996352768506108832317122353659456512400109017868911015968488059398375352861357151089074187035176834001212853765013640770726172517286582677056023074496077390753469817759931676063511938832084467533457752902507729369577662886660723444278785326689795432992265569382763317646553974418357922028661842495362806428978180986394963164042818375527507190650939661387600043623678128155589824499124729006303671934855092297492121170054635211979391746256678781069125414635395413396874307340793171665308938102068534108862530177685066771547674618834766703292425681250646903646980657779737139632780694682346721738880575495605136238540761988604767353329443221364303633690644880127319220278365664747439862830633536152959670118573401311393477740130956332884296207334232252567871447868992277001348627251793418357823863807125142927680360300740989773543806344737130483984679829951503341268164385959974886720692837208371446829948770057350768959769455686315687850805179783098196020786640662081878061392171901921507328935934255634936850068371722133461307109431445019589232744234923504332527889277187275870043070172502274192525525942922894867367402550622681707825831133664116839643264200352608292160222335781586158120383242788562155043379623037636368368925239559813978733768444286799098977354482228019993662220484218084955141576408210780257795612560302992718305286772888682767688988089505381860016102114973131907255171529688498267500243149243794358421569017752953456075956169000862401235602804635801764607898443312966428409104528310162319318367786775135515685748448613156793860174105256274418657091512844496016236638602131751987298938852226307339100265739079021474092112945766599503726234474918999462868391401596984064388957621263285526554904654256750236475278488927197837740599724819163993453148921147039310809095186772448585096332350969449544937215189927939044533969574391561232362040945280055823428867207184224165010156333440022063677584907057375671442224663733662678270462000881725753145791446667787610441074027756864036463332595649807668859202776390928178287023747118314615243027727122924673406798106436887109922085154003193757452311520996937575143399404926949955313775255237745072521647904231253820583122703337070505713281551723971274133918690299915157689175103532070996138799735727022509112267508370258187703039596342626075130946959782793134818173015152225016089658751729475510405635952554875105299269457959930138719642595491164485412579060668215307740872847077689453884396653983094849570619631475050297534088943447455713823885713815459576929993855750208115926457919176325693448840963265245052349455492030127462980925254118204922531223922664292223786497676816879599827215313592567872124405985724181790824695246824780630065065950261625704268691672778780045885283081256149414349532108218225174569595346526410648978795297895568265648284785226448351923970855124738182861777283787596724637340743431004871516704081582419247537359970785683313987547042715267489255185150814122009893880470944106001734599474670108960674640315174768777404998035748556134511526629322785985771171533880522020597153546099113547519478395107216509801524677261430072046680644540115791555659800436656630862126615469545547960163641681852050749405199062959460363203033580502344151018775832646960590693112206469498464658546670477798834933803825735209147594616745877957774104835873317135095634279576146503198809871739495465585701662804980897812358178797419980874579906791265412296481340023511754038208075536098338906718684900499695310374803278645897332791867786915836793806557879537624616130246128875876839802081770572881068195944256243286778441915152585549100260060770390162581529815185621183454574629193022300750590734613239381087333969837416128714996477337363130235510655266123435720200754289277684363579929844639649660693888818319326290879054352952074036188396488907083591663320129705363869923052331990805363716788598228897096708533249280763357202525345612802376996025109867050343154117539760478190103934933399784843442385732818940123542643812516784279605909914203459544083293647703065353190530119773082698081830788748688939300701999306988806406819736591500129521533696154490054099137906673755588332672120762099760975630204241687051734789280456779531847182749863476570853601171278305791419308882873148300285510977654017162739417278976301848547681330342232524037922909051909926950408237434906385888830165359768168008993293643893534406633389150527481200155604419957989894232436969255098754544768428328623829636601466277197406377587352177257592643524603350320259859381925616635833796099027990135080587749667731945469693938835153952760136367201303414446800261228401436169671146838850022442143726870830763144061185451126737728712311571142798080670192887765524678532244370588929724752001287899774002471025703005310043844752793762264639109716820633589927557520958022631171624071306504026767535434152686536644325786895639584488445733078896337177107326952980326655325369123116292054908445380358324353103442880216509068092473005904477054380995314117729224260942728229758115791245766261193808364838145461702763064153620180802193281609179122048214103422401432186661502046354086409062390713002921287480411292524047546150530513771405557970244924804358551827895640197966166537595196039186241114603895947184511124649829678358803542504963493744751087315015407102594695294502529537451919151560574313828596371717702548766199363179434491540276088964622764755469796182514936623840751280276182964001462604178093814080905063870493532838818619400202994158577939269303902040552636039330330371154014991501788702131426507295654815517504877259588632283362660412689713625642410409601688671302834966317158026929005240940084646988961310505736063191511830014940906868969690124454011201622191058284992654284934172268371055837660800354926749778110278116216885099460920294898499984888364199690059850662064825698226067993653331921919636856979517261840080895197752050773999027190639888584682554479004086271851936674344030966512971164793355119403402749776997456132253603073330406091321328981491260016459547676394194499028051409131453128513089172959039203532364176316317856617372508220427493238409532287816476514384853482318454602362847266504781079365322172292475608481661878244080998311453314033157670301192258871156664194848918634062139802744050964340259918451275706240273867758176793539297682429212334859410573434873459816941194160130047282229393325419818031117314040889039732796011826892288022079898740952890703210876109230169325627127574595854024700732332905265516880822864819215922389223764206595641344482799167240655334958154519745163648557147282263521877679377259764847580578929877288916115544325658399633256444948230836411098196658307627589585504491854075977218353628249095718416573243627879385455310020206292333321169738005049885804951963677461893938854262000256832600818736928268533415093893279152989983959129417707944646515790919183589027959045573340500321862156324260009947446218627971970571933603092486761160596635636215786403207553397776056364923881451746347364911626046992195594162644551037888693517639547675158129551084197116623914874653623058743526309982125848945519969865031292039582988659340975838955697664243728031698343742409587254550809529487215996678911740658426205427726074635795183819700997492990104152037984790389172692749504531971083839794714412411591632219659365153423505139437196449692162111372456892775181987844849334879004844177465526412577289268199441263359964628521479048935132776701940600461152190647245015105582521915842226890196984454969819511318918862765979927558699157895008674205792698387362861356593512632545245691918345898009580432677112582548479345747420690449897584373486959150269202108606913397367705852793688460876061740761850940761329338919561601995731110729851500864244082420394641477424846185022484874462478021585583358816665362103031148587200815868021946688546824496327924806519711967733171341295213203699525357446230087794141719559663207003053623360796907364918419499464692133823045777890684001536207686296923659024635146199498175685845738784480525366224544383867582669151721740005346248074122970789608782554730454259070061463578401059292760418435686249222526423444695149721069431258400788805173112094829712517968486404320560823997522126430845260998313457578181212262743157183205653814825618456459840662843995737642836980582338607965509588084021383929381458973489831544226656508752301173904647485523053504659092662762278193279834011343975576137520935924442379272495589603573305948418062059253739436161159870524412716676385183047627565524193042590680090202388763662709035190130696584653065377285881779714502366513796585744164385131152836495070290666143163373160984664501098692406178007050206318366462703728674139703348253177417741256653580931397112637155356187674824585138790021961855529235245744922528021445651685736886972861326069312340421481659855725946508555364245599259314658537396362207892640975942888475448531879056560274104298222619096270762562142124045641274796531630494709073236246453103733067561396420520399676169104991341125021468793706808705476967260758718166625066665385688135924268959545098538080482469772738179435551200468522827314265139359815116999067179606624513539413955563071405024999674622789953054514245005075603982433110794576773924551261786406677873769611290671648142718820935676029477504661696227697662860700073642939185618820688241300831677271593312289276194684089173577565755335334041488807533319775784767176737873292771867068384510290347735089295599382263187542557169865862003894622665648740088405458710193884958564408504838725172308908179450121368177355165238130653899605000150789469162760607658098429825630869019263527149369354725041125435948157515952904717478260159690819868194950321422996081911250915745347526154088523830570530232399695873112908109575541341078053127390890984588543240360616737452098802276619791639668742589900218733865103648294714575234459988789830914905957365817492823561696348171693303755760024067626287489400682417628244250808574748330030413453939239393557955394858211970694491132822125151488932409236359645588105375855700140875967481212676320980794027062979847401364680294022191704548702689268277992064403174081894797561992089214419923270214363341078242900548486207851210167365304121334986511786646354397416657288748034066852141681045825179224215011123591382292383988010495074528816649895229703828575271923087077165774795925902600327992288818026707993453701174747157635890697429107379774010481424250956939526867387767712558450883956070852037278364416938525049340278501201767658966470778591024936201005738937282107475930138679802554900706186419326093516247826107816382290975807357972111588467801367491378554786919515890233582385059539485641387889024185641396253928023987129375951532380409320350963789698658943820312334361873612129751916126546956613559175395443421245282460214893872080195374111635102757792410050495933722369944306666295781204539044006461502655804973942006900394555722020039678755234264324370100509410507071069385539825577662100075008281161903274150842433882177556946408818068308063379411182918930947136149068185741909118873812647682302355112563462236317095231370171655775822730129751426650497584715486409400599948786672103736422971704543274819384218157559437645670500844869954690716984713766453065764236567039173448129714435895009029196813092717874484768053881476244408889023200633968593612281771156967674887670415955680590187054861327229815348262554143159198121804142627754130512083695896088468282431227948082543122506345574701367367439343814358538431846588129245853464791188767811633513024595835000836426806121009994928704209238808483468730009365837018871018771847230782266921281440291480136555145054567807974175460170574975983384922333894234751238677729276246703756348087255225648425019564667896235593971794441664853020478821843241760867157070658715191937223179332558555417522323596955409661740393220012637316729595814233712865556080072172932441310491512563357705585866622344199737944100121672002842046439615987910655419576823079092267007826877844592539590718911511665369586948222040618648068532402294977300359039445794383716746542850369465575695259026224448548130576893737501871028277625984937344089181279837018604731243784191996145094662603834193752483281540047874726766675375763433617807665391853760089359706444752930886893495143033899331412769751600924848274291588904510317479396714824842701894035570583418390582430331874540711434556844689296195126129765430693588335533992470543611208520895674467217600750559370224708536888410022868816660483454130284575342093280823530827834494842862019740003475955860097076229577897638467200392285358613107961388516215640824184631751963548262779016320755544614695845422788186458003886663712431835335946040303451737091992001678750632355231431739213482597610379377452685196197974621008126567149269973151254921356662065862543455651891841208910615654677183518889684397734777519084473231301724943579773915406261047375447365795327341929855655982207110486475923255966559650809256249196938167714522054155594612252627139531876121013107452981484726385897297963448276678591976722066134280830745891618657862411592960487966313264440179396291690668738043999498936346268841777976174927076003297344418410330135851679025555598042681000420948965121245074722617871316704782332136026229962124353513761478590827914856473721428937340729292235124830983740079041756256151439413227865979375220988159750565858055712731370310558638409026328595169548270603491649464602658915984595261697694825371245769987408771326907140112734681523060437331315455351524531128758412055514708373845332281877844828765378597760207108723288577662461494044266723226769313898164441113541684416212274436042346569173000729317787321013374128822241843620055205243200019291932874200803115508578467495889154531182577099139585307576935131740787713999638640666279226098614313021392839090957185952867062391274497726117576501411906570153113960396262838470240652223766911902918008171511122496897021117859495291940404456309288299814966004178500064653271948703988233949725614860854714442179399763895227017045242627491449476540832982508059989871889213433421077390630308274381542543783939016524170459849137751838871186537364398408374356864783454141944184488089236737806893254335905602956422132939898686101897815602865819985756123010840730586370715043012204906845587913549501482786936503253845984052986320909953462354808368482469023940070381043731533241814498905623930116621975505971646481827751575677264840351784935752361426225629058523613668529700690873499314456338315473519621898195135064780136387143134985626400562317267707074776458751625455367686605018251042248738319741289254206096802269900020162280401820068224513554231730869562340926135672462010980118938235717960909416050724181439961438131282239519627917564793786975817736959244669106886153964822422892901657151034332649269010547043731455767973827035984639624363492284119707116399860956575755481315926554891049234589045561852393337908601394509894761828149059076122187865475813914782114607060692930698007649574617541729610747246035486882800067520438284799621359501342609347398933322449537373709590877946300964230652966036817644744903119589955014365015195176836285801502052317093333386104307514899668443903949909206309907283170240900959367244852653151451606791767250592632203663577580746328249750114834981913267087999492764611586373338023990267408531591227232779766348642576720170799535028111796495482755868591989924144359004451333067596838791302862702038242564991864537865000484355788512472027394131070237668387073903724524213129487807973360564667325361095778052943799354184118754575350516548139134440069546304457127368230939475413821661510150608017472476373085069694635822888711733378935221981935067156783696001404713083733119157047260431794599735651023793724290797120881100122569870821515257171310930095680422988233397087951531319443574022891340803849654634961644329343611530783854049234181983132349227646941374544186274656055923746266713349695694663671799825930036795440734678027540094422674942002877075788955628610904053145659982636739221867988171027236673472101295812757591093491834732611564252971037275669149512303712677933544845251486141102094237803428565759470257208218590699883491638993279768060074317891456915567484623173401299735821709798305037468524955614151615604708098098304960924033788805742399458689085335657147209645479835704632728793534999400249942791724501029759881812391499724336752833941726028545953959933240046066284303731698887075605587580960740689324990597863846879173325970881778570766399045573635592899619431780432298779760900641761329102479429826837915899961722793216587440464237274723170706066581546194053272069377443870469276473401366825734674667675428144007946699836496774732596907730438200942361524119084767451406216251164383010349499317134929792936150411963627154200040696566936440201594678938619238137420909337155389766431731275401945983621084658225954949272191163215560361434512453987630443208386862574035186996381525443797323708746974292350443658311941854951521472974853500475012749169282027619509782078552412156528626349697076557852714474834757937194039743030808259958936261512802452675630377999213452834349613212774764529266669386047014787848444373447020076234475367111597678546892654866207303680645764214847019542633630962828472986321763880072480825484224848443257171111793769123631874394544273655865257901017399969860498345898494342168550629776481539228297969540032842138048059292801088922835269310372487542872103509517903639823569721751659518030132833010826647896668342971209081786013085417591986487885442093914066957248800701960482979973363292534447397651522171868313869853923673969289452051946156436057763898803141957306302415359654584360958909028774690388860211398398831649789045112959699206970342862063526884459017455011792717454724275576927321048802648055897500856401017434519378165999144358505410367940172719095062122023407912306350539293827573075713631342087561074744388130209211074010862056687596431014475243810216676723784562092376312396785765508773046801075745294366235023257090275004185083250220801587298290124047098294718746866603219696250033198197187683879994825491006208146209220968150808457008720486721053566902149246191702475322309173292019182541081805623319453839037212833727967786447960769495883348044691165036725729159645105865014252538821188628178408325634381125702656565051206542060796730654849636713141916684030070831961510472078481956535776581561150564657165604424335375411044329866547541933022929600867432014281766336498032769963420372535618286043334662432917182107455874567751405545469734278334893567848601879495541917908372854426653693286571670963727542525189064461326478644969996229899926343148787604807788613007842119996497111863285330727107439677841525445999961334030768262301792485087381589506320687111659039170680439004504925580434140739335906804146705348170367953949723722730938524240707987543173193705025960091097229826409122214830147183757420902288715129638884799819523080279944236467964753587689870436470777203235500528831279209427984770366675962991678549403190816684947737546933509533939156285949980199868456216962092687940133318078454907632463319435743598192836197597717265385096963055508214466186971955421591345674848405674990944226933239413616505367170131768197281515697259517925298978741749707085736306790016618824287689619180313781256533937768831471854257963458510062796925989188073725241373596115583658991824594286414192104441023190338783217647293398999959644659970433420716070930455545445019265451326047820507760633025374726246996443196002229260756138312491422691504959322086099393762567752988475404869803150096068902766177700418604772085806012992926600184667986707623709493900653247181779581065837023823287140735121186054398900337963728671613377940474843521332198634441485872525484962472124002452532578018536651986417465221237251658044597841761511399822350149931865274613393563892478712912894499733687759997288303291558718547897953063976697099720363897685778916448470496176311952948495551861808699945302359324911281920729667212640948669774015806973599887940607344458991416385937680587050519201750479937020999765113880879027298014062815204750218946776769979723106333055491819007016944556204945803732737539910728053382109851208336075971817574779952799883097529332697301696368054393690413026038018780591808887428227840434680674883414248033894626774320863638427766413212177504767512384569854444542509562069002031892120311702866308658828378910383021206085619529972978076496871793664844978241859056350163258202309513685800537634192600446883165980254842637453482064940106627818634090758205469395375470787414370871376674336396714039703842941109162734284135202020025897912439910266849258567456359001390639822045256941791549113941378576836791984710961407378196857422098585057118385158192582370682072730168619158039964161532814684905084289141459821930050010474568046633366434658000418528785692373114004258781666629616266882107491657048544134603907813891650906721946488688052323796935259757753619633740053988635049760561775316196334341988173969815412600349529346953002452750565398247085472252641711168513762096739244406203089822719218701104576240390742044449020672361290241397530141999028619967787886332000359726724077569500816797863319541624543364220478562310233948127557063609352315874158118022607568992127247622027097404548432226490970561390168557332592890992240051205233621269751383268239721573898328458238680312209716889448937188227898299778157492844200687599875374417179396370587228848137601479299873880678024324634454201252063109682567589470825149825937570867142806258267219804480546953041272931161075881672587106238518841566941126628180103220877237978448478837165376290717011198346025225696394436853728463391698872448209500146055162044266159405864456911634263517488567342103060523382738607133388189132432286913165641281265825915779974659537096487757347916037736910669036567271918062848231415207675097543189807020727631140275281628296851501009857723161645629678270389957889640678058939029715144848911547670997846688164836891828416721873484772840534005046564511460394263030468142527287443185180950771635159696437770028919795068013346170424403668633155546439966362191288970635744345932440278350101399988404742779963754076721479617496875860669988834091544530614004418299206775368882932536365640267802485542423841794144489232597399628028299690000757179263924586971040793907303470549958498219979527524689123944129429908565378442894388449476249033158019742160731263617988650492528366811821735551878019316229347107565865879429104023316691415012742209430573417232903405849452975275937694776656178235583543680482202807855723550095412424574133114784409521525474167926754789690880209583726536864541101989743913586819275844733998090672418705505949767201814791508737658850742070318676836643825896679933187924290692681086346372114698509750323139768165772460584291390727609009239855870776138969902580448116654356134743593309342826519621294386183376290828656084468982873507754754658314022239297882651582675150328116893646170739160299084402450863155455103016545403590926103999746676800587855943716820514450529628525385205089253917289390011489777706815799533615426030799747253018796993656033109029582801276357525997976700224435301375143985561399979785860304848865829165419743244911193386542412891028826890494725960034161010650095753502990557700705571395927641067072465739334639738040261734745384464888869701959277822136011147061981773928951365020590176983021528531754917198323569805194001118784269594035346469024649464112805782473027801014117836099466157660196321854000037162470253699133309478289463607367347919478994444214408319186765894054774094798910473129777000983999003897779040158812241659970338645557430547419846566574441917250477775123988174406199783811847275149878440584522798172572687623143676232329691595310569323969654093461059788763812966982165437076033428558503441751357070938835136757159046794014215347260357213435404340154455962425859459665755486301514101508969051224462991867301642760437519275719860695887729466573729839500538251413660631123936927524672257720148595001222391074328426866748522398829028996733730455895288917853623297129417858190052119987144403656500432803423576088148402066280835603751110187132128664860368881610686581390870897089328086052852146881795433544288129585960649168442212447280630555047413029298935800117725137124734527415481200775078828660493078965495835145986397070040812493166199340877238252988695326535584083527167922319937047632804498709890820669869073130483424618449701424228234335245709495514329087941842214627880609566734232418197943628646605742324813529361478414542031890206893879997767790866682840500175119468540470030961347910722971854717016778027075540085134117586818907943304952385981250830671489619654374728043034297591524463691969816448484640766732482313695681282403383240121393796498018424082908964228036238271941630290792048755665958109151130977415033519458736339453290804121158402893032168504973458710512059055313035577320392710966531137574397654382369930207085031241272418780372547037822976459272908869868906389693523784866468794382740713297045649930968139829783255808678277192868019611047216484266017396295839427373589774964105656394951440352566248755538725823852058763375499173410075544109280339958866557800923371877293226678786074236479381231755055948888088736006103400391658845023886739520802986338557755306169385346024186563922854042637064341231665513600764977950173730074612304847328953177673434387622157884204055561209937472912358300196284390691459740245502825787511024904307360883433537105153700964739084842610147954695245261974553919518119587450835867830825784183820005796362674367112182036805943749345439729376251287608000775524924605846388703902841412745226761210584836858333924158076336324809655658645851892762382133156717607901580707596912224933722258109654867999244525440712043337063091225283408765995846329042190989450562995621937535579399612562505563277254200061031595312990000160298923565019399172633689814584245177925867876515214747339639616527763291709580997478363542152945148898519688435571566868878168710501928928266114746190764681138452856941888336639662673943447782576659099415019186707770646625827060852984868611417746340184380139231865803570141720156686138111771133588962141324930099553465264979691169139828019396030018198643273469724688620248826968103426700126144969956172894834606025832159616092909282896104523458240689064914756888718415136792731851631582589953723542829867063543365697372301625653766396028164968540299754388714071429800979083801293322022215193325554016919052206742568558584332494790667624622057662543152221635164059692553523040371843658836332804663689105551018354560725742920715167300309316741629423720808747506423541975612684620065927909311459509648849129371653307354072499887571925837678081853562294138991063898822541226663968728316673367794851819852980565012002088104325549887721396212584920729251217712754446062269850145987668023368720268947230020475821588286386305044976501899433334654405096539073311084573843786772155672659846128851208281653412607630757741084026786211014493795765607902381225834461090725390279742660732956084333823851175034200115090551909948320680278128478787081665809086080521211658709801729809133591944687206940832018078034535850451591284906147800095435596472466388489068515652684277207928893296486671760163034255435318706105045899635620494130635003953058045381674421343519729951505821334136050907776026624023553198536291720846292229900732123490206099555180684875214085161522015008298946131737443222019536145962090937829710494615073178069911953465826670155243951861003655246625726707139392201246407120019864305382866472198468342729607078232371971620792343677598425703944674106425613395955575923706616800751460179723208914639334998007678008113687673673850344183094355898171441615604160957731173570604566053699875795315553041316624815881628360260032849217724618446464118297316132046249483925999937325124008908754908823238121462049190020689457139869353809086691967214243997701743047119702046056860732739659444998061665434734676236119872380119085678944864998113549637566083967612098832785673079384114442055285311738479436996632473488905020371052869198569137622277600243523269644712716549009127091468719479306522856759258105940142306872811896589456431540767921567276960032219905291303775564415921015018809872492244552108186775922122615732859065395604579131086129973684096472445853645286111201557158480748205125585609254374023784188215443151545141507472806806822071048638211061694607966992624973751431915437738126357614827260270593156435127983257952911757419182267080208901889052709092003962805126493959618142668301437135908070679057759282786434534770056109961718578361611232947060472625933436060134658863751174306543357696020904511731596374356497172067984980495147273833719601178557982101491367252001718450233219841209294726640312956956376431567049142772595304982371529028051401278522918114739078384447990254231555931110343135419435550098011383431644907827208668808516734774371653203324037312011061652952197078460876447494108627560395808649943726446155163123003672635258243884943546856635745643659984527166173038702061764110499722218727414996122137468702220964677991151594983755197691877980676308860161899623702719733785964522247901601604119892102711556403439412323698255481044722494765815402057499155892090909335903210531139524632488096136056084809156838121381976428639376566476460973054298970412433594546446321992998858182039970155620187690420252314185490896427605489939092516146312075255966559469163653127541267744821511557978570768957020754883537565064448212584593818383832229704283124448112219256305890549594654460597262646674700558959761400323967860658894689906728681624953154635339445644470474185094150999249725838750295065927299797407143406517592403851258240805455838714041554054706868174448541320646849137899898761011456012182694685220159295424209945674519327474671735742102243340188133288128792492572130064212376506649003890233571162940637440430131928101352639051661502433199455931691723914096491294457672211365034842402338642897778269538310153640023904911846119040318307567975566332864425284633849838792676806599967236404418113710299456814945182931207100037942052407510246661192610817483033117341205713895199638375382702759143415048102755784030590375688367203434416092151007415830457177268746598193101310820290921424004490163286715871309178345114199749870114386096972674623899747709839668294577795029787976217515918995269539428134145821399109129421871620313445871993658437596257338836310232293421128977613211007638523534147249359564192474452438693334565023862492733072836620915436289233148839324786885787296615326732351168750411583045250498519595914887998865917339980052309976398216618087985212175198366264260832832007704967081329311078304919201799589365474216928080331786497338351349473869942701764986747565790987979682646560801691951802478667908783729077670012571816368464760530130016764185253992302763517723106142492166332882656346072391677141715916234559169722897165901086826221694220324945542169946284213950469020785749821430914985567081919244885518402599646769216446218744416231730435620196052698676572503654362917189032164769718268735721404862983162710639804057262516541340942843031775343460910991203945518784069962318117601745341528504138900877567336779910428204805849537031756466520397117655288015433796734304979677660250423811809581301573491324338797861496869209013946916989313047803130644520493673044501305416994551232797907469245806863553238903337148255809312283796785419265009704702859180683851198969920941684415512287353839894386573177902201639027137372855572162862046025465386423523236251845697261821177598370018404466170175092076779379750571177642731805376977558646652287356277116051381402684321489991292934179250810664423491960428382689003322691016968436080789220989046097383774932651211572168767930509696426796482560446506185636083707302000559594566698230445482867064040276412686280894675032943569827139502829894135264416295142429102770907519819372689239889015092665528888175918997434650387204053376597752865462933197273641389317365317462464624806676954742888916579255318674510908988840682639567290661289599837747925112090154251350333949951604966359011909738860056519994969820930430672470127044549809451285165323761406043703190248409718865394941730598241813709812792210667966938582726177942445480256701867127980979511344883824272280787860112253751979005953175154417823705107585341630633121986474103607874946973803608784448568230138381251317050491398913236410650931866692641582838143194176393675335679127002066406919186158544380940338124819784708219527402051257824954465897178660259600528025037827298890104288327868119123179083401633370929673716209498657560682742113363602798371711813556312409597271235428184193327360761311828502861756844868364881299311196764549123719172590068303220871570681703202530867913333381635486607577921703303281215807208133015956333711611473951552139317440219296171657278448530251146543945622363274134035583664226658959492827158730725216997841825837482552015390414700074588021937344525283698625993533021836632259977328792768931957438002057766287742216184063023993413902277935591510960506372371354415340030240984665870560312196438466227646957521802345814188653164323594206612860824862833800392520558921731097594158208642237628670705828529545046140072769414602067658634639502390886303888779581110074339050099684907011459822869850935569093396526894294812533322257934654108736716647783903998921661550770801450421956772207255267356064725794365102926069936490371898460235718610945403275229666070727710936870550469199310167438293943992481319878248787131175427541529957457897787349935652604804326483233109995534347793057882998247878874884620577668552378829904731184899307439215876051461754046911799516535670746519139599984508235206806845611926132948838774647587084680444429059894116215450576905957888764628143769138464101963281860042121046265740219818937570117380155094887441868235033095893116320842557120180309671127130399644898350199336483876154048741774152035384149826929725147354434003284484149285593798076012834191397035943322122963953754070394459260634231331937969265649077032503881374110964103349946069346353016685333047975739075019150535978457174161516003007529970745250081434349582615869436157429280535310077249154269430568333491357637275765226794548318052461544817312831676274989143932345207675163524213490181336816738441431571888005952744817372379693146367094685969392896655239473815401935614469871281523742700091480016523335805994675346540504323779584441626393531333558217819193136809960296847312839265799068624209956708729113201587310094329430981678778749662679434060929072301222167334618409597043465404427405531482928486771345253524852467257121588278395273099203028306806261873055638004251145636729907538797948611115714285101681711754011303064912608667369538606852559289388147178560066839351341730967745058381433194720411497019387745772643734831074978109393849689309995743104301125665305066683963274057635706934149429480640983585080846028585770570886944523372203341606179405906042558249256473240980601082103647215532102086529334161046626439931538209913690930815185885931295709509791135517642088321994837591586177094386446281797962229657619701152578356386208897933608085612399604691742571220151500107471363557453714440491821930532546319177067968644918931555850833797211125793878171829996346816680550992954477677740954818557803859308822171206259099836229647897441840335438455440043444279178647711338727473542728666645799719261045429367514407712725101725143927631681258547820459363878428278012467077025836276700338520608782468309500784899663115320771591761459290494186124788693118030410568965475594572046069806658647986827583722313724643463192278921186290984020276430373781739610013720047654186689901507130861780795415138139773399385202232542138105155528848079779641601159749642230670772363131280218772733620118146887911905208750012937774457112247707390163100435943066836213319597136087903905116994554809669428627519370629439530037393452184961292355459816745669353325925135925604395660484242652748850111557078484923601460366184484147695006460698816250013831878075903147730208576451428113135722164677759779390386740672727583031060583861576179745812861358992880499018490684994603331066823534802888356003843456154684407212440310371420133755207383391973272089977928804339657505048994890926492439015597161946064388511014104477701993174662507724000077066537862117888497619249853194788715707092074559360879301399700675940734173770403582744190929500372105440734161734443895291485285145103418889991758762792135290769150217070905453110136038004372110916500940147105725977100514088148982647427319069551214020436594140434340807776403412649778994968756857593519654875511389101937690717489237186513013809429688663807756076798732089472588343879959078836196945460744866182566639959101362663667419228182464568762900235386599532459544460580320013365866434480529687496095763102471838812213844948470775478027807923766003119213151410793826446904580585424286108527016064889047691646961158160406440472613370657371207090355175202979474735703063700365866171320258566662275243846431955558350419678807589476324665394931573741995437075722382883849977823139951753720752855596007117572682335448860296308429451075346557879963784697704700437427339408608152958837983465932210524747644238128900009004360209630884858992426905467226082951282079026701795968848114293970144325658528759391222289411088088511273013659225043089224326039433634003241689637527653054894877014866490214956376326701375154124321175926068778936171066626918357289544266003465104447690352319208291431878626691530428556398703925091236254529744900684489730828390185058192806563077106145849222184868347416422276710687092922777325728137148513821504293855292163756485883315489297011643124882643011300268965781624888906003544308562779119483201500464132847491899896635235500035460970388360205612681973710735279507947086529763328018742913133441697835983879027631824958918531038717804259409068229129682556978032779916045721808760618494670482485199101928040977475001397278210460110286616244830518727014094565847150762346611659246422381160648852942855600540612220474784660944711749503932548908662961419773815746695638002922864511124992963614834959605586599185459594271345842323852521541279329024211842501445587461674794169634825687083469786517423763060532643226058118401009121489239329368591797354434697418133279322046772592582733071571899187165609084270955678856557198383045141885055730908448111623178349168064960204286291760255815297062081924426732384671811101073697352159598604509100856827486476091855506687179677323023029530795297421213448448074201280040431832098127493546817401180046842006298313255757697232835472850385378239175543855789842238618819015040924502517396108452352872426464810174610250651313153558121794429614884945645849954544897594475463588894948785572132226776683106572843401094627725279238566650207351596590467342275993269906313315997921836184327757772284162447080054948266643280496820990150574209199386079855670336828413217968108105627408283483543596435625024750390558077613257800010018282122287295168498635193855906393747105515543172975103111597698988947867389073427447210517693108062230048516744755851639950148704003059284643276441781768917794434913626836240406012917510192624729705016883133052976386050698381753691171853486088022076386738487934170394982082126346821677659626894493694639375167605361229356183890547874670632581752740550362152347632894443365975372540649040355411764903724882153567452858505273494658141131108585684151408044386467616804981672115015432197232551490943131108803260535861174468732315480746940260331122652970962485383940830294378095027914046509340069818316005350567102878264030669614817950802420371858214740865494621069156407010772802502293871765243769204038142101031051960132367225437969562425440650753856902838915681504498633001542371589800858747843184840655251531260087560194606109972162027619431196935297115501967385262269404671700259041322422393414179818805435898393365364080692577804654557637979788688283189874515972807448878645856177123988835546746706648044661210821420847358420657188468388883048358172767322975288349601759780546461493360094473591396239267451487128405525341794865537823328570508950077035194045172702700734173466047456511763900569947375409326281452273988945458733374445660511660320409025671162840284120285196017424006312500660020217423452533697751825561492874942674583482060225034439003181168593782782615437121722669843971481745458373151646928710292113002768767811526094439938841618749040565246674313090380127151196544749215843894108062366222261353558681305305924405321268966975136823586945338346422615707849290091696274922568874974766271132100083871995657695879735550664520318547051285192118987818193791792576449510913083406539477137882135071961935824413061927143092850317218685263227986190774702398853418866313929008623908850840702575339735754251935277547821176078920025539410690176122062316059779531811985538804255755763667753420269378042558025394335579883338885713196103820178105020994712747341065470848193276704906635695615809651285696926994364961561299288456557511390379223696012633365189018780202266223154627951709380909280289797520224335421830392146707084490295403786111554567595579672922624598710939314312619538054455144127374822911041043143241172797442799066688712127927000704502838941979555523636434635805823099238134128992401513996984482212416669638679813437297997259669656711783872616200843585961491566056932739541576935058233531625716905073336829712913165398763706900091238561900434381730537448460103845968769737560212195644678405293625591371495346472842972625892951383105647011598730814955942353563973582427100717911160003132457464137839800887109049422583517293417007635845250040732435762068097955307130665595783952163738405206066050010643045108567879810738716913799047301519647917588308302331599423441159723183786138885928840652965857537066839065574441351944489218450534575557213073345092268601875540697259085049104864374275408378970588901628334048732237840806667215901494039208192597700351740485044086464457565505262994560716519690406821761935645926348571309124195580615177654518738093048723823473517529114694300609605705010896250404995818863089366845037536209712502276883961885920428019760591875755905365465862728780391443570982586742801230651028294918199669208112711599020575400221188067234796283194206735735592104320453410171235047124155029754220680955675744200987496797372250972934053248525040086779051611154933435999324834060711232276096863463420801699936026308981851128155277200297886925941309733233191552549186457338674546151457676010416881027118489443941431744101117700484492041234130940739450474292819062439523996941077182865410043884836480910184392520550958913207553830730470632572056447929118453893829501970695359135629385658687572512494084771983954870604387212380386867400175741726181042685484611094079476019449967234193250432711620634690471926234891194724790925974785990947328746651694570277429974945477696953140348987318905328726788380094427606326984018886342635512308133907472103090433616886904480363116615262062545237217063688256724769756179495221377459915665066412158712203011341381130719053114826476222508140275686686433930630096227437394727090099274102812907184910084841801601361305757055353118837610096752322927541903237711006095286949550067616060847172912199779796479925137170891819642872862208407606434201439512484078638893155305300727978013801153476657569704463856596073065516561304209831241244952740624413853392938626456526093084544383871321118525002853011862868460764440787906729207735554099132292313716866582000121333296762944338771007216216918825913784414712930808084673267151144987140946776543103337157164844594662003716637594543499930308316506784520430531768128149075119460187741979455074247056983628876847358957312698397773897870560357128932533066083724126845323217498765047953990511490885642399835414912218197740337484156381197677641625514115412565215682523164108957436159741837598504500595182447928426480187317742069715612189876914083688721236771762830873340247351260089903911372493431042902933149425495861247462112180643464056887167920624344210245544581159206620108446921498955754847242778962373173663329987312476357194651911043365699871336422717948154509709961495051140982908029113749198946983637303388728056278551736197087132154077888316875478330406142860055253830499715818141637489761496461567310545471320481715027969796700306017626976587415545945509282486350726336063372569877451266700139643868919012373092411656204262836313832622086584599721476327063694498014285088360360487860342009662317731874139770062840940337992982166468226559310244705086773629579529942161866350362432208254222216665529992012753243324026102460556679679610330763118085530708171419022281930646417690442859447225980207608441405098947855552741222309912754253011775507668907347054374983109009043801903599742054531651432789966395431020710767673769731753934725384139900671740324923642361927416366603335606305067309651049168028183566433768698186181999274815194996887813429263305427423653070826252717278868396035932179176346849203782044017990156973381057588921991227098532389915121978531491331815025168928038761448313437882888900895469429368903539612995087405824676032041220094839710765082018970172646263700189904183050499069850768648418423116064801446547361794908587961152687281727885665373913605211412115726482710890858380435072779066818819936603132765223559142036471950120369419341872343839172363513629911113201381453601569247906729315089004250875239033024717808356753031065045494879109464773222267630916086252612715605379003042800023680418293628794800558762499136056946092898125184914219608743758898644384170511106243930603774371017434453077436478599089338734930608352377374037245829966888002348673483245336571393163711134906543535084267349604431845834243455035734664060697817165912687750985728101518825974778175759948093219692166119043041676579118990861168020503324605061121826912137007116549519002945600121571793256516952505893371633124091500722777782369170205630688455222611287049540117792270539701369195806587840743819112084726500516541788099377842594550236824055506771627216806234661396263916225451755114793978371702183902277070504011188388002484879169658984491153572890970004744476401110255291700414007603384784625594098568987388553434874135604839869007765027999481456727383395262675499615281071675556383780135614068894364518241248175966661540900397527786621105619885891753748951383808973175995538235447329744398864239920143902175296067119985568195271249815006584834765737400617038237931415997122524970377590019877266328921533704187498521162200035952519956120983543788246074603560262893053525279931009493621455138795981428869810199060487992596580250894426547581160738293022631970603741724194887590490467882002955524546011140831668136247667013742859306627628426686949677791364085334711644703009704082675430422111681415282437642308807653846188084795595612871123049136288926679929793375872187296413648149387045896324438626264963498807439863110027278372645673009325953308168909722839405403294926776303412071505781548683686672915366720657675727389000371033205227484424643175090571240405497778704821372699604192024446134056181825820539457410810615110828923864623686344255025880312516232237449052709010579832886900241833200357568579509479311694096145705478223491133424584090621306003677351535256233819406983252076967557307950261763142940030065873106236033860992108922497880472435818968373985059170830877027553255321736482726829306034854291777424290082846945783941142873957709459101917776366155032368618242237752429531789644135825844169057709039245827499935279172812766913878797074159743995769068391164206490202538862667514586158388276786207374188635775863052643889807921630596389528892955468675376412013084254689278648350857390812554668305858380618356062210885505390538854730305076236857305289142766806903950334225735478915400131259363175079774112198817712858238117120636932036767881584496713308851240477856558467880868953547788032342491966579370076177572702725285753922308414530231100331938059990724710744328104250450506164647150263565197820200284625118248603918797113301269770945771745515120699636519150946803371284093831645705935425779385824156619195201805924037145364957307088219957277447642889215274733833219310845895673673815396530818493082041007004300658837648093763822106810288855828473122429374282001611609560380269266706391163337516548031051689827933793837886788190997988957872251685280742523854770766387784456836460998886767299764874400339452048919004341953564932318936300918486677493451582926961301071302052994816570803020589187898765494687599845156296605017142664064116026163569361821468797684120466795168535680288558669412414636986357050007084197588276496303938288954411591750179878637936505748761500695163882383167353887658414542723971457213877898492755374253864620368316243104043669597659557220553506287294408634782933950465018203153214888516179019656976611541609854503406364745515596033558468443441348399593175233532150425486572445628156799411289901107531141407660877737851711330773608623123696781975763380104738301426460491584285975492456757976253056682270877357800872477777725703241611356580114308184826222304967689821105520727983626457398397768403485513465273640859226398519737696008550077599305090491702529609624916968465623843270716959093577483003253997203582612820496449600140022091080292431017330757727086471683526218201371736740748019301945892926020293014990456885464929119608896014037656644085618067498526798804592941282360761052803804880753266891029967258353057724561895396378397017685474346845408267346863534505383565845574308136175723887884915982947561524870826144087903158923747375339867598739474067011722201602012555570041151363105461985760946758995469590061029309601288773977010176486396722474377467129043767631363683261594331716121820926379428630137807955117622677910207572982561070060552261672025760727584404786401789809424583400343072173791574232090715735402337679535723379819514357093234528292878014139794879604372485424713644096184498725457697922828420677290872066260420923138704401351619410054184898928901668405320968328341392515637224858051796574981187470980225868377972764201802432812058678644121143382335475270721294263563706540189411373101143336700419699889725534853278941715839109766542136132493194553846941997350529770832601563237795286454148679077074686968910326450262938936814067018529395438499218502669993358132287535822391870777095439199928026380077806810326211068604415872141146290121495825037447312483200594714389132789875915995699562274730991944277213274626878978381816131307568509448048553968364736047038161921301349382072981049561057701975821198236086970286055339948398970447470586383988543263529688840060062318308729581779599366845001817443061087646925366454634941607308838767644836451233093429406619636683996851529206851896750713077207272676181719014886420270804020627161209659067656748040856848417749825272316738019523797296330115804078110671464618388891826093262278777552394016682536659115616338602450457333016919258590161479425947318265415797479596045681953337020344054931425323187187610456392994516243979562346346283884517766202303218568901068785764516902945513976355068608794960278775635623669660859168898939837191054730547602104155218324385106284942544549352198023941495425795832738247398538943801569246396524551400668206242992162554273415684258525571600496659849475783795046040309992836441593649260001904488109703835942378372448784136494331039236362860679460728575941397023054904781345645337754962996930353274926320734503734962451091704618694289968876595427545222947955956286018845652593115978921319383255967097577869322747917819208426369331142237866812020307997117220905471232074282443395648994821921344691889840742596933942521582108101995479701443226086081262055605894512887369890458402389774019481824311534873077059932877063562258665325589041413609766308873706229923064955394919713561476600882748071321621008129566971623916178855332180712106086019020865268263338714552553474542966426347518685549342569941058627211105786719245417456469400599967524582116890210128078041318139060086726617323840756453188599276981277807089952721965636506247535479024373835258157030845167818531227071378563589771412555805598925313610336303549200147361250945467358400934886255548645149873059960305605274325809027796058611335754649401028187644280596890220694059542301626363812770961253942470831413822538784020135992941877549567456461789084152794584933302558682863916119128889911893062917198150821935231787711088577257100188041939307241334053527580563076516878202501985765596210993069311442102261799066101341279535599193580828591187525663825310939276485586544671079569756580614169055049407651780847105543967990913205473300881183885656197570563318027981094577253912414466880033826696271152755196476682063417460592483227133076968256288613329310823340546782630357077075540499146362585062995612226604771921684034849463898650536024467229438831643032609909633142269628654718595062323866881655192739757845745826588755565088725010688381257072333547872040442366138916743249660087230955438640850532925387073780121019174502649569172319164996061456931660646249603218227979835287784601421742192472380371361415173619958382184161440922551098392328832722445347505985392678383774750281236335005463079583771453842085766742208911928857205448411658161183294428829949160848515560790118565795601508585698594805366833900618760578498924788168791964078702862789792296284364625521433881210229995387082244660150776903118060977440143771515483304349715094937313521504453604670354912897506613294357708780400021159451160236643651486970148187624825754603795474499563053857073058792424780615263056041636413969668491490493088816995754036105358546675206062506120550069164050925803796997943001876236293358964638686736163525043815592132621131722428419622127183950431014914173531475562038168278364306168328655134893744604119007029218308950321697543425036571292485456387356036299293001040685272928349740223898380106266041106310577958147055479631045672134227343209294200445984943422237380859955513673999816794504582314984365857784351776203810370375387149323141117503074813524852706660947890669300482283013138058885255471765860387296539543501001161922439693221803205868823519077663364330937534717926049009928656609731957746270825070198957088116104767324784190819941617952651942518277442972862912236327798494855824105140920558801771321355268408990879041739694360247087559450602948821700283305726769113058356338393652212408243564564922115130691729541809059384851555563244906712937530864876253635494674977668865537985596164259035845547836427557497255147558681876733676310133705106746928881883506592997978739736513292312392554958081394174816581551793827946891557564922209693013556566165707900496499046669101864566618814053152605904903629366551646983987651799149000978804777320803738701097465861983094746821249637104298246517560062042499527178709110063125997507995905981095652770821817322394162926967168167673087659337303496439054947311244104486277620892520264583300934412486396390200971560837310232016295979384105696620222169575930469752407822851116063274542369680794465845185447780848351327309722674776286222701156726838363922007919296206381239188387195831804562853042906880337763001630474560467414688685917720751894050791630648968394793006937628301341799590253621620363544442379118597675018560915671671021989851722601193824340096153884642997695311477220282246040470809809547631352307711714423589731336183534217916313847321704477299498429976749450404761916260830710683299906983750492966616122623635377607593376960113945641441850771554053970243100658458884007571801458981399158426541376109764818750554238363864302144762454600360980002053540825537410787024447677798748669736959323322118043198375673854482215012122333290746742352657522432242761585820804424152731262810480662562462656948413511040179290714928788279911334216360162080596620654927681768944420997899935489222975844473688242837881913648358298093557604194127472425607034571244347104473169342969520760683186991810970865350255502247764016189405364286462904777379655431206413593257209097440921585297263518731083134965352847820773139989266864473118635920797903995651711223368361884905884172066536969375440402615415610603584077868827009940411107899910054969478851642506802869325361268457931077638985330233226818207545051178146831746246031931858521744483116318765016461711048638754127732626886093320638575099919263959281231406560259183419792449871688473706216048129789815136796629260764530062443932938196523829226285780369933274117506180973904312599115330623722434622670139676226017073039362260126907422334366806298186467910910941499970762421274807219957874707108429681922548379387001883206132339389018150499602266108412514626635958268635561978134843848395226736254227420305592183423021125146453462002346149034686179289934359038914282378252204691834035361251402688690480686886615983593972499191435985673561169521029475348795429065252127823037639866708576722483716071863451977643271715895945545479582580172765603653626345679616416748660817919589046665822029879166043057327856134050013311014299194540532847872291989056199863465596945096611063147156121213662293682100262230552852783547714782293082209645710060673999693721242089186395318463714737691972625921802332539149455266568838894880829595605287589568826185040616876086935294942388506113029627328517061383279317529999065359195644667376950136220643384785313908108521314941394414049193012597616516541189611921789243669293306588347754634877840408478302960750463921859883060162249709986750325259608256342420777730223260004593465694276056821157519420722089816775509309749793375187795372885996406557119888369126282180941850660583126460246897332253739872968916021834764516567992829557158964534020066495066477352867939095408618654439505787748338928745237012483502896144752404140508403192395753977748431907404611994168242875859771592969071845433426406913890036354291311498719553144791855206822402712457742417344070263777537306042120261604559430799243704546997950692923623306196159515849484713032616406408955622996917024459745273528868471912901938297670883157340273567216646582848386892550344078008387494809249232205549877108928496071435040634803409976029910788513544049775320586297477818182447837051987526565588267132742058977402368971481984680783690418456512342932409206796872878278852109239497657552626054908105844670765252388754298896701215300564117689983916508887241140486462569217312576540030951731196880474435981097853000648001810624198410503062135271382231566919847016435278566879729047241618673342903584511925370286444527326869747327603203368061806748098049599242360980001987171949890962863600043507627144862589117715429058781747887380843493424279601645887669857372298604303222428902851942686202343165311549026986274262452968432401153230647596109805307001248555762686424296189414309827565538291220903041870994268748365865371953611171156001432789717251423723242360622379648748803779036007211166746773380710246605458939317330848161986241964348474627826892128521374068565342111574693175327639254502217489080234598392019776211287193072960771852786710492940714186999198953135364174538261684194831955750160344034779701179522693322724630597042559129133027669135397771532031283684226867245926823796781801845636775433817491521822619864858072240459834482816855666401394359212227366878024496989889379468165742244323230885744840738704606702581305670412879115139976974880989898885381643392525928845859039265352844550230317326801155363383464066511009779881747892995198455270000400821127117626703752230468977788452260325425501084088592800450239459678047400220605899622984503978969189117155777305834844132612137855719370049875970274382630342067951026161102703974176078820506850805183747017913761728561670958873340803809723892088097034265643036507752115539087891977656477943375715798320239819580391327714031157516357002381211415422569313528145714718477446826979924107978643990605361132089906035142931643481240618303787185508318527268340415006490190104538049190839406956667072476937499124881017168087385226404507575817482941791172425715104375084550097376709137042383842331769698856443955080304063724910500246700353741297404707773755003424783551870228936197939603060026119960950067826468668462648513836666831811375982955555010279340983052862093898169645103782539603993171192864291202717279540496612731333795529952090371288624797016812485178086076984062927219163139582057323534907962157507212330717473324882118852333915530459675505250939627004921084041805086963903454383984389858268822758764669933755750499587424604375529892505632491497875595879648594958595361156261566380773680354099004151290361224280766454853647846657924506229461078254529971139488948911021783644287550634396855428869099782001751840681838299474452310049453741779886754344382925302478610783624512366571961491037319881537418640820570875768141663810869039470740922109156394110674182888569246316915669468268621775749413653956925939322930255996896619367203682241122652932467582897795337261927385815230513168785518544904414826837776376872519959156855353331960582626665487793369395007872953620519664569536732799793309360571606695317653315574448132016799220551621004836873937931003606122958522715404782861266722761963022641146241069364592612048122862023845040350905897523460345715716296965867647499996813354044105139709217988481686580502899994589429099205064003666216339112764037394221234508809556381197534936363701030703539608851563775747160956809909269368693139689853233241046759593209553025120772104315401250291661736030906617265214078343071125258541640603788805267316802358924653303970628480652044983890402918364489828705570892996026586866959989268399277666338079872424853280309759065865692970177344436874108084326021556391713873380468563155363214424150996384060272644305877961498597919339033867171787103751491007692168337051205197770986251499188353151039470903746962501129918254295469192614152028125257868050260706110340352385099474807360227499396429310715124624305771145120325446377628908461143144046528515983462791986741241705773339243584192376496662871263145345589287909085035400875922984528050450057486933872541799190872971391940315776303685876452424512436716490396456442988574769915758519114303683128270370632827405315120960727994562315409398692905579697504317199120923450478945476726081739473389762403991654493606773095070873094850552904413459546195399350551155009392757454600060995764482244145583004218410179923041070761126132289005225288624093790265446215895850955004592081356602618634188302095607203317477663052214673088540169817283445864669872777964246519075630339825747813686464196527309795446892517301258360516865210487370806000630631993905186887674551495420389356026736120313241022377963479410735424345989242193969257259682776863490207071686552028829628092274364743268582522838360525700315402210951483810681296870331475666236092008896407520632308766620741311754722719596951513044132137946469133686957517471048217295893906824441654287225849312380509888465561485392637567357009259064053975574654860484719474330342400885018970610775088427473755047501325940425412795618643097336411331417863507742747799307924250652739113532078590214087320801225309745203954467666551345520885440496381969108981876971101740283858869485093351939936794178080927002526837806314113722075760795899419198234141248305853163855492771102040815980542367832743528172605361332248857592349989922782169523960564608174045029663306375610276619122089765746048264081974823515118125457200530047253228885306599569207479884354544554616944283716318668590821619280828263954462064159870556658618795795719841508622091311275188711636842733734121910215785389375264087118825230245024717975479815322508940652992032493627004365903394574624834558288375669625302841122343768092726304229028893836466490368691647430543754470823543501659382405616621365073032783323927021508131967110473402779628950903722337885560301510599342319042124047280304233646512927984406145234689428039225655415707542157961087566041849692238879261967864347468184584887107028203912476696601869156732543856708800498269410240599817942436152644575626889329979092213246622962144033095037970772531534868704220278962818200939434711627159581369429239500402370068773296713493879308854876513556802397756027606696636086044358672214359594448989345173215737055871326325530296835869413541862018918644304261571391004292244206888632305015672447711201525678116153549022363445109103758081570153937858648463847556899568415084587107397063096674868872625493322210723835398460010109912172568263878194110425946787784543573418304637788971410081896278081496833608731700197895826585546695438589136160468736909553130611940912718225266109256999846019459951544713481801214370383200447803283785493546881226996944816560020705288959281849481791426562733974376959699290405070768807714331013770372162990370765958013070124971826716287037658281678336601363193282567464382756259616632942226774119685829576803351842955918156273750294046232843930792417175750120562367123602672394511848688738952091526237413712611151083964642590075877897892695530962248390931838351495066643197184367026793718011243724105157767420479162811984023132901125488603065161823097857335712172523688033292276002061872416120496505195730366451015775884274539371271420527127531449440955814280572397151512593461320228020081687893785978168125757610725197866038527301459686497017103440394492695472502319480136594811488842839978823672246934874922547009012103133365501238180592828961760195416988899018295675478947561097060968855942806344322474968325698110955707856247447783697181370742092247674784219733296289091627212528052501857658051925427608636837517721194138868650167403625997821514429393455398455784446820966318708028588328158764150311794468355000674382780067498987964975569184768557053904802610328710420568937022384916364810134636472193180508875223933840390968318525331909358367663450283337334027511076946510367915412315941388388409652158467195311083132551286454677605280338954327712699642402895889375245289843949620521431035360919369078657625838054977945565933862891926652005151323068145549589225302834813709174076024538440886815912864255410940476057609609854310194480589007747990796915371908062560438326072074545447526681733710772828377500829062705532463142501311697359769803956813806238925668682691043329746779129080165870425701058871268744588940731082369914322222141787045626852461704872484698196333420523465004121419167902094963545593687546630322816424585098468373743773876050346550486791835926931896636582512854137029037083650087127915715913083367668361282719136100477939658566593857125536458388759158984137087827676867397843186164298929756554700645283800098049705396174569150360004206569455862596292327773545801624226920588253848194323289512102158364103886782655767604742894765085098679653505814732793495945955979536772434483005154472000778479157031325821021741702523226509763822061893182130987271376896337553521598553777016274654644095043883190434868295889287912782026849625318111432060808267233661346948411064718341783269753316095003552026681061207085827234310074690441744647094746377965712984011920398669552704769855184683834918721333264515502424397870320517380027920064174649221686622993520510692079609185660467780141689167018993384986534604948208571910617782033302152255327284751138094921565435359887677228128828147570830369560315408900475142013586264938584218419083012008218154404116566160111271426906369803395092777512366679044278915029321111250362106632761716308781948702163965150832464191751529208590544428550696123213379906503510314743531470790125734490400957011226986276031740852979975028430557447486091163259104336216244288241774549105153705987946293605466235037094790480462633694306224484530395500832951638318780901053486124581428971725492742247790187546060671651706317037152873097708686130297876802379444345040508547592697849169553588302698439669100042189070745557342220963313094846096230178623668932585674729030258589742060650128599819701496561763332566065211354425299820094196328203346687650484555162175168625436752297363330011287003445023055290878162254793068022974167591075857344703695040513947985441542476559311900695459627556747556000955925883803461885249732932382466938744701778597794901123096130341628970638531655592476441716204780470395330233272604410695155679302630119347246687499078461419601002911258048154903872660469497713495140879387833252339562525522533897973622339375041529927432196613906237797248920974084872691834681933746601071375317972656048498587194351788154843577315277161240883647533446347702545976699105428468338854010212654736157652115864969296313716682210506229653306478827153914164525857581601576979428045529402099825114200404078317151839395749051852180858360021677350236588254226847366590761541968312650670649935455646855723009320910245669950542664850174521731249268268333150912653091527107059492266737965712105387291520334102303320391572473460712136490607564294732664429583462595332195410587927984322621716749469036263163532515461807472032600168702711760546694213683261791914918120116425434209459103751359381738510204676511762444845808070361924905655237109580960118784017959569530122286065475927849835814430497163677368382291647643324046507587984270993367860704942194846479837404478591242654948974785519430987105529549774755527293323261573755449551727213021207956728956470690214039143219236267183966348669471663453818310710900968192166526984654201124854083930526431147763128881849181406566274271461787454835276113201792313184161627585182583228755285729578987880977136050972447325831443070904938892875919416581822375806457858240006101620722333347378728002397435681562946369916638270048854441889847627739327365788845780552075537277379270669704706553744329872707538523393635760690443836201014135570265796917751948272881624723392679424870525284376617588156948353881162794722452453826624871947166081072106735548536485971869720068231378148189858156954648025809069506187002227807151426192720389612528255366763834682567109310336041253716457124666919111449649427791125852203681425220521292816166388725127992202166529758129277354558802735386485596233307015491177934394321968740400492356410748444273548820433920758426187237491660851728919206712057151592052677617762823467272472980111936703304640330456971409322401315531315271690903741855675328929019878235131687426536960122818510538301762733577632013268670109950438981375508402054291053330546051132131692526878156560494755716845236528333752167868256384792623987431346556791875610771647550661303147447816225736901651253575601730879009740253513352153402707921676172287438839796685081455488208374366056654946082444462772336012378987528278792353478650153921676738720229774412594252156445619028606851374629111889700472573931286676257687442051184230123660534607678105722565040072952955871772563567096767093869485289968704439926622584024266290306925995172743023903691481054652527957005625116266283450179685926297405099257849533573193923680542893285605108268703932649257255153567132957147501969127240999944452389422274020250128186898033607500564699568642123383198699555962093618028929783804634643427756397519822591748384033413218489196033946508447130975206674991891611324916763222274800645923330994833430350933685674928466147292977821673553337181086149919981572901200441709150317785761563811558478581717180889263779052858432315530723825947045672486053302838540869137351355750790032935510154014370574744790581565116633998952682392018243316440846442069526257009834252909309982352092533458531741662848886760731865941014498535238409849362876101995182442640316613265192506749908258472992892669452483704394454008040685546137131873451278296009629329349831589959380964091615124502751314428378142709464710441333426551271928369378512624958940673406833647538611862126130010303990047006143997439109705071744486951916679201001563284332103122084648625931571865912923174088829576843928962788969773537305074573436181340065340168209044532325870805366971130489500888347750841619751565392723395329454326772054048254421592976326589523658492595352514744255613870511087167929125260487347506579690100628247743600975192934076330904268087314101358242717769907245665056161924960921269366412528313849568166701181493639138802050159346246731188556595870553391761338550010408383362131017158126560219612911970595636015606476626972720490178153976818799386277733947168546735060748509289320727665034009335668609461088276813113400833042325606575273237599929256274451174907560282948540415075358801871430930860726441482746168283752693678124446225373132549720149079332371490971684967749403844409845507616628408678674288567970564690415011942085671146741648624733976693868254250911863914211874180673467656295590216659463607274913452369841395348364722176347701847356616513988097785378767814323846168673319341071840387472721249780800465572352038871791152938770931862254926729202026159224441248829397682874191231855909714668832376114099769128075946973050953480085657297402586988691284652121865870669443128934523302453881024503302239380341837015270525084140783357671889147470869985578990636009627295041386793641043403493921368022502735888972473324064032597269263020718616701644014052594731071307178030486608034420355406322259724407289336507680941731609616430555429096625033956183732729683738538991454800248293548467962839094441943920249865697536154818675842493784832871168483731027684891115319711241579399531475104432307081442561035059924230881120969254392304408943358561712842505575543377563206817007755250335029775527521962453859695207300117197917700792895911748346115766193424531319790985123894496635169892870358972428294925937233551259150060767916934214088993140092282952963796901755674501760513557630758087645828937983984057618965723238292168432892492417384273868047979403863695047681495927936533120862532599829856362520511189458073861663002893181607841664143808609484466007215409185153959600205276982876829068788396848100573901805567772184202197202986124597147394153674195705287042111696929987112236177838508544030765264288972354071486241878129971011193830736890255222800986755173088775204807993844900308164189118711524528499091975472631647472576184147652116087933236129070738113207039003842537221533704450275350522031904345171641150018932389225413176052917893760128105892505566139772649768027029999565003805917715710485330723301561590799203044955643111294678619489321847034702854624859243109632576049458909141918218623050250634848629477815765856498979131176363592843914384245760648316488850747803095199344174209240169126105361450351728659289592546185326041591820767447703428645191883949934188930144488843557281662857561511192904232276553706268746741688192741395319165054968441235085393699624585529597634848799463139632561787077532028000004980383141252467317672478835520366406895552867610025662758929773313425675164457751554125673799287997676188036898467823100041533776704473055407026410678209960340625736447214294399687629419602427922410138613546264483927097754050419600238251178930952039693079206421381165389988567710942047793803911565064119829501165739633152222284725957045027510457914963545444375623336612300709683783316621124601974406884704957982929363531839165960571927400259237968651847357447817562101455079653461204735429444635441288667358231584449696897322225136422251418204126741716339010199322063576462537530867341855981116512434739248683013866221439143535753549867501225402812032769175256034265489978838345933178097508148818828893987975511666574590885286518243161048683639011094252401056565821021030754305707112075454587520465003637615257064098126799186438056649782893345267061911462366646557367884019292768238078600298653134021514627805277950031223985139361920815458665895704159488404999183361816239714757516913675831001622187032470919728433654933588451407397115612888225119173970978826690049284610527207877956108141534865209534592686326043185270928608765228691719773050490473661168388423338713220223484638369226979886911151092846111972660436886580230787130969339627965033502953523077889328950986606955633648041376141243474714235101222488267371332669669527905213117826597413654006913961510291152322556307742730127079378148502716370938004323143377195506338017805904972690801763469192239182836356855204535972749591292863550399370695681210375602922052113281423334530485035336580958487779190230320772683852376421654022219540259402025662646073858814469549387283795316498776116501957800331467457196330957409127356771275905988821457863828569584839317376204861442759820893586304629739750158683925778465557518724105525959759662335270508503285478382912647769008934097040552217565522038802326187077139357549344386104029019828384210841375198228468755820056948696346306884721501515563035646979137004706343548882071682489387863994146051166790894914944536188504995470036721126498577488806801401182087371275033391403292592918255183513071572949948461820539632809240882671010769105325920899475185800669893874005123464458019657012756458084065436074418555969490553353055853363026252542851874603622251522341599104071383149911924017379023963525603315312835378787414888991115804997894292283936350783496349929002054674242979390383821846297300993044288102886248144469577624842824219591079850802741859271536805730517905435456841287560646372534550895385137122328217560118297813912898681119009650134706399930848654223702507428420955595099778962843639834590297217055597933362880205543520024415131699548198932107506669803705728791665161423454637826516288654734816638891294986585273841671843153550874593406346219015278296823576172904177816787631243262516551811782690582561171630178411051470147789264033466216676866442456025070554334821019118197906838223133073567676638510241309049793650213284881554656840358422223816443050847351188406169723381065648515811616627892965817411444838899491376927390102945511733138479433912749667406311379064835323733962068359441572044026364414176345762725515780904884015461940194164425988754366428888621397993127784076820985721066158239393481094050592606449379851697861295030127259022370477596825277660719459910832697909233970295390833823479983611126321832512844802861288829188743134516631408894333302648026587750357429546050259937932125906191633271793703113263998181983697451617403506424116307277736671219860064492893483550946113240455295752787008868712261545517419651084049829526372342349044926583082951090463558998892534106358937899159835704892632092175956689124565151472939146174935737432488496822163190362638458702344022340317845589783071817771801124432653354234021547985608950978904717953416289769809627689523548332910227746219382315937762342199709911295765092279117247484103993586938973642657578934009977086551880645267058836850758535990839349187311418847562686502819617586399312382280330681060396378357459245630487144098658048441500327420796249507973106245385884960872813359506507410781840377582794926175233230739459207767356003770111638569251195340658392404927396158840440589817743504856398907924658122520243552633845257911447801893370378846038514834745873178337903561304894199511714932271877283616071226043994071100581061738935893772412067937859555779886316889292239291906523405457370488801640629590520192960098914299307938827105375500691968702191097726994065687797850600755281184241452769595170214113042541956925595514862804606627638376499014333256705089880038623119426954829527076605848320433773094238811478671234791806773169305569802866305376146569872266362286011326003848341825498164148921389022736262772422361004998027959698329042344030653838697511703822881429155158783974226795840789940991344923636517344197569748314991197196712529406429506668451916530690193655305419181283461061320914820982860097376528413663788966834625381426732160253939670951981285754217298060173999473063264073139321083667360944673787192972064712570313641880150815309386674078014078752621855771053666841208835577370010502316756169342021014380159076094892974396373174799927991393064766238608728150850230284647924746005059682755503790830680940621600981563347532393334472001712579359047924846832324949120816493290339359994239501761545961381380527032117952912422422023704619308511579611592921656639266433266398121568449797509780117790002633102940682178429994303476079634939748120398446824467057357664941174344466651305902660549325770059126591203006538766244806131285994272555600122187062857263704878016174053132296490290261179208670588451532122387864400763842771871580749372838262505388475938884278290614251726713300689024892097493062385227298521359555760895233474000584893581143801880723964709206566409247004663331701910748498488625919562970845938037071868452315829958275040228135396739221884977119467515598226774924665103973652956019581190741326654353287396968815134073673375920929868779939038643995514950356870714317983237303524443146538387127405575610718493608667884614195432458493438719888212510470049717592572336083527453130985711232434934159238336020802240610265826357410166671040415377718131813793487297404335291880990610285797178638981919180440538591872782578130231604081904101559158257701386551753835026912022789026496839144483603523255287259921233201232610829027363212889030319049059549092586396503068537329089579172370649551066522342124665621108813212981041646808275266867102447624544521076164799475613365759458349948408280074920166785357467775503717385281310779151334825582156945725868257552266027033331557931887848281256328693049504373349924286911488184650542772590392170271842522226109011618587322145193769122953776666583632582470496570640148846843064653578135949119611835416256576652327236660437164415706380077534300373975559054712547945452508396791938278813078838341834012255317019819385767823509211635201891095517896261057178259720501044769688468793956993542881876725463341094731846603478115618667333823003619721280989779114087574488035912065144118058344480917577650427394607042237796500009214391397706967693924712833523499270502404942278842129238742473048888102645193531914954609184491197755658164236412295091429179116419544239846013058084644519441335177146313422688963449259033970076278551591435205168945558831120388661420064984780857778546153884430922359087390735342684900762347712980802962703921606687380560432224043003651842921175568138910145908387538418266817964677486400899320768127341375456247527418805111290836157552100340746783573540585536912392043560853817685827411804060378663134646633962677357545409689434128687905147533819004668167477182385176366364525332707659628566308961897899589488291063714956318546614127527643303020727464566078389839420537512233201686932379705159172246903978041224912081918686040853423469160893137720690251569171967794487566092726054417290665491116197655894513296058232279412480754439974707230855821227081488549328795782164499650902397734556736773974126147920927419300763237575981937816038235149562388557131912804494162898661246010181246268277773388757136578270491180304879270363182895387758661138142425425584701398265753927308068685347597361715194173171952319935326792798421156993934186062794643377210082851274014687644061753180783106234012116164682553232726196783254284585599983924895033224639775638444522900771910614461473149598402913921477413128981563609524350658227255085043646159371578707759305361708813894489627061789657844071454208449313743057889670768435525654906671970413942102330013318166469129317536696967461988075725746687272247442102394239263644654023355885293916943321290829280485843121079343380353184494065228485907740890825510459316862662267805697884708633757718149698573103496682605366250228625674629393665783295593104906213524464612410993909539419626675824015888825245013653220911472702197663626674165518889532726790037800300925859827165859524911367649010855674526326672371272797104940611841115420224481796141797592403155737771488483422451481742536848003615419163271254943468955512614800785640887742292928046539454075920515944269570765212326379170114867216567827996430251450807323583670662738116766541895712493038434473168832866876290627266739810517973728638092675917713270553283882872361133252472523978143437622113631150772220838669963886194394870730058137899967747705307555832346409238619983476386217654259839366904028307436373984508908708674755152597522806866535933833677447923869546645193463958186167945027236651612884358952450373468253302029441989794249402888007917738775813955482434665231186144888978865371152630001713241510073943429969615774478109760806785306558336285170296735148049793678327974186847384246104564151329434593929125086836030262126805043374800861399089300269420394525833751776503802485736719167331712418515404547716682880146046563643155738123138782914027378267088172176012428625935672043153887808907299976452787237435346353893784131913940465680383233057757271242309352427121026599743855652082221166452982618288764105256823363323477671151730938426210108764268528517529767996417402978336827485047861105072268099801627883774423635120080443603972701121028605286834899130816800134634238799563433830687908899387842254828917424047537285464526503314459616163831492399558569383880631468511914451538597525064482401555910721181586361119730923078765910623064442156635893467118000772373663547795838077664464947844121680958890377981821899059347762120050849208942033476384673883340610655225003058212656124147689701492587011936348082186141930572917842406916510661638207450552665043018857660509355948349260179015774279193715983929013350144458116983828682348619072899806320287998841096425188391197718321300035489190339218004158648493008946338069987039219649136871470487697872370699260966989329458158078073156801825074625965591207955973541752608601268513503414170521907786652791766775117729015473943875203937549928037634264817696665147927150762239824928971604941636669692886590256345188436171766524077251197668838841680966245050672188496951906621009459136196675160218253965660126134219573758349168342254958726789896991747545605152295457553672767943373480058231390152582260352164780620980822457440311968635295957014865760710138630807503593293073578054583835137433478414093018110268900487330369095776353995515626984109424186655805321246216557352154406866993548768852127995081880127909653961244235146608699608235489389269593082390655254818619040203329474759575836920459345451168962226704346038003569196629745088452838770620710600564246043562183414165196847451306316356504879747481217320962402636828180026037997436645979714495043143076881211282822147397889335232749194982672943003803518041809484551679505558696668691009272672780737379648286604112684295069613904349151968617150851798048353621308520901321150900219329020292557505747671210598613948255689670118771867056358940214071830007057948366339382066536081093836264367006345985258824709259689849578620369993906426842710882943362206770799100241300001114624828577861535537549895711822155092288505568872286590665533836999723656353960096337703813103787905668033042956238111286768669697190657823720199113877924348177291046580903137535245270364889044867417168495017764417800014388085966116314581410891002645529525488732922584389137154243896246013365671201907410562705082872992005721229042105356565738335659943115635352416781533317363228207769717470701720095985620627071037234346176006522569668760662428861366582546339952375266453400484088604627389728138830105813691068327858719886102839438023927055768679149028893615205300031692084500100716804408485529527886019050201421585174956042225258523439919305132396362831903481354389638764333991705943552206586478430275226362152574360039012944539673909088991288668537255221003302717194393587071108403881731279051111191841141311251975934018950148758924273398863049995542015508349859654978286063198191961171811306722150166281288758316907822108348487128814341195301824879357758492148461081235259501961456118878196199645204251749431133707011631482573921619831605842638141548543888983406341028551364311166767028864148343668951228434479583924711684576881372297271418085473827260853668394678428499996223387025584620163293047790885279709717578279422673536314243997112509574544056882249311916834665700212941248374233783941528905572718990152359465525360885633925184331604677628388554862473449142912087915032919800996259117403172856414441338863163254714502596336885686471015608462774892024247237006201359404383754665402026838610378226810415669809616934917660668357718462172849290501446566261004002492343106052734944343153281646291632988786402289266584527831848015665749982255286196752531180233761086801272940066740355896558618278518521518747654954384426085031819064155650840671200881458373735794872164904968488343426339338919699151818536565127173656568871981190961056285293058152850719229318834710239518148620814903380671845382268516936095120508215025675962763678904267607953945984198956827626072374834851598380836364717367804331141930762627104087444186796914713622582698444255949185447438599470619200982475975595141029090100559299721771709047907877911857153992966287689215112235244943502651153706057665466463645932766438071961715718907061352577569165437280826223090062483227366873193292954218166971753396662778422511464700956870339185335032080890456732007866236997445011359943761914699810704311163797911923068286364314839442584001532425044441517313502654985609746117054778263121578245199326627318786119794919873424655424760308498903488660103195174917389230646515556411387498168419057445861870372349912978093151089742363408632661969135141442725695629678460283955905646687616024953263297167549334333533425888567379302445438839805549550537283257943729928570957921966393479150579168233148872038575885112200885146790692152635738085389208435076638917068705075019103200114382595295447745170675675528025326514442761912558420320676064814997929889302684834261670365581439377949066196779647038716913995906557219199540808164609506924586427240946931209679537828494705339706955381163319891434869079201514397434066571861682698819692143980491539439979410973779841716904843547720342343000655362209421870797772509903840062723524154036744272291775110360600411802612937007992737455210899786302200980107462179549211063951132420226636441739090203377028323277972182231915535225388567719735337895196865836199711977365440785885610505869033015894890481109188805932464209645221887740050534568977848658546606689142413050028393825772942014181026290427653081623951530723651971004066287069520341445588975423776764489940666952949286278652875324189613840800845766370333261816476707309698472213729611639636918002330872026625237346124428264473556727912953349478924201337037713602326863030453024176627763555797304431256292023191126223152807281924016161626963146269268241682897870006469215629933954331325760883889245852105588193080570424781344813047336063845745120207053205229840157424622803838784971182222960800906503874091288664259275877021231200107593779230865765349195225919695008549332260949354513248994960739401106138917322403953105376271532184887169198807184403746177642879968342076049182310713699462085269287318334860980425617151647583317908163177690968426920743534774354977519093838968807389746833680544995999239165125523853998244458731731349779433048214496826118159089128437715412679957931698593272831989087886726485145459311020752838827021911241322852001142348766308492364999459179379852213503731826721413886763593435116861841822873666654828695350114367003691737643016121189319280811202788802745845537360276618121156071137445331140878742977351666121215792231815748670392441961835725659782036459701065817078345925825011099076707497657089264454712585719431976120124945540661835306818817316742667096051173786673970881539318167025329581169914445779093193813599692337205382266949183158659221887349910896397231518415192021962875525015559775613004712223528418220479121301219004860481274893527301706859678093552032653604133544098486945610825347785854338255105604087700475783632019187175511646148610743373835649974410418002505137543500069323070291963631940933435668521250133994155317684799637247428568799786610484181035096036072720804184078302735757826757311201241691559433975794753959490431112880300226604382305613424378382277571437548178953045902940624742654294132116424282802045856184004372147234645498061898772680661460377389908189861929168581670315573007382092715062901568479620282214972324561554185315326568001678612297012134965796145043659017588659013147837733588415327782424938486757033116983312366509942705724149227420242162984876281784053092719916792087333660471611965395335706743829527905156304193214192530245971378264462355110716830117852220239755317503408003319514695328158144744836233129511792801489651861726843326170743657268276090272293820686242911308288660790762272759325112108442988117743229739895354570182114123753537596295193815738207183122453154615020296228634808172762862490374941910225208863301308987009133506747891850204134233309970317280266071118103585653313927879102901702492724985198065438444943336191118155504338016133245501774979277804492470230786762283954968645294751698317806614438232474477982545050586247126189402481912253519063806584159696775952012648856751348825675686556128196537303144444745745839815567371177163179854836512159140607119375267386423479440896158027875820986137620384787576829700424751879496704915114986723464640922395732797100321854093621150322883882512454119783614616599239344064109912861369340778889670673810456893790090690350563116892499679470640164715785993542765892505860028676715535795052085501784273750980866365632146831469545180544666181762163654120112878438509852211998899905255644942094367336859375132414988349591360532999029127633335161422043674352933212498158181898654512659801879171810407567464931788991377082576710923768207938394840703374364471274019003925564786586114447401162697242166475905457774623162724421998335283859142704733537573018156703580092417717318301293716656888663838621223133080974327976076734894443024118246100820683258217100433843216438610114420377260457291020908374301295048458378403638400732898211198504942215539929001930260463034460664050570141276823912486546784368653713077633400665954990222475057695488252078509631930792498420461136898709937865840533168194218370190432813422790980791071359473503409050244968226047290544304024046206847298222743082399567136381004575249607996543860939439663719553749297167413190999399704176266506926642770063044049982999901294605853387769107211422539833192883921541650623349013282395717420080071898055849680755582601065662376557285010376451214135047533674686581454298521233935321417231689272341622035738105579102238931375837284797631030052721730202313679299836296696837191941139719564604432103587514313902480247360347878092851080456959672594592545569340417791826372207126481295237428283439655166107645961643845879430169045326194221390156319445000207491898575522809818046947712470928009151671595166612907018918233312902082580491914626554161604030123361637667076393298262898851558060803991694700123903067270363795733829826793961521088506796249683358085258755396241189798799421307207773361861654768470425261885611635095121867922887174906874635316488683498196734730091252230661612576555100333379918903292769460735222707363635327005279278898361730659775902352824497907749899496572065225224021225200910261383926670902652579250827166972772071214932241384173494934844687597636322569431028963360409179377764679270264863633830200379259667799497828171067808872129459708993580881215172134320443513018371745517809838507361978755516556887797654476421032365142199636387845054774901257819760968184703718141081331048941702846476200050383985243757119584227543893780211467629823226975089563629067464582087118850822931368912443932097211813206757072957912000946321976169679693923535606711598355503631178967039773894608259245264525643280946353651914411856537103600470509056925522436900359681974065494084275937624754853494050114056670452969494518475124321377117007981327313989876203622709763205803407336971663253449050284597485442581988405643223865994559824644227000273867739619848856514234166842814513978368379175186558588018165014113709701029212151826321254913703618638016697983110980474408837410371466009282982869094256318109394483611668872755399049402184339595224633914654403331933766065059505577451509769587043969946241471391937611212007082181446262926234114086897389210075870907140116211614209055514704438327148477400640689078827357529743449353122805146118186892980845815931107912152397311252983847765161781994278361413064638559696227893934261788389542721634621323063733319599593955251861416284616194844874743647725401451861359540642346848920408657044063858058581173866944222172676980801587332319327841887100157185846556103951168061487484998018910448193298347877952220155980968081340768309062149625731802750638518102623476026495959109815939693009266284563368664121804113132388195384679777213743364160731538415934416365409720146258525752710665276612294033544360618642962683154691165846804343362264141349603126890246072817305358067792706932057402055204110054737937898172127944502933298653964708143308275968104493197127869838137184323595782026196737589569597445952815704363286613467151087515456644462218062508618194222099441180478442984799383173955534902370869958830793712686682283949767732080618641522189682505295036223344543832327742644144282838299737671032102535223096904389772930027819423834524251113026777655089478316067689450307494302512642185015884937882634818006555193621515996642279677434643436886424543288015122976607506184024395299393351045014574418359745238467959395491837815046907511320259853932247900280119254333731011675648233202749413911317155811297140187939586506959637624676107917887029448936983198570881068779976382037099146994994182744527529378895425047975027121892017993511037120483235198177616596874019653898509360275521968224927207521836663177340075354324478205103496173966299721510744770016147911677308516229134116898627330565818889636549718319102062732492253717355939293957340860806111575024098743023116804235656514927512081447524200347524323904115011472494214134205151123462694371446737034664283679951358942579149626449386063559218764117025970791830612448641954291403540654287292113787248895599441839466993488054459630481136360328824741899275978969202869258950118941820237914912917373228528350127582870154841739254369633891524950106232180732118481766722502620110617393281531151623977177967463229812612242470093801811019976835569367128517757447813663562742771263654206316013017519744453537952442050719750753483595617329925617567379460081081882826319861154005223252012734621508310841895791985772218358819953826831349634589704512256184871094576102285531634436145774276310762070630269059680239015239517192824643223584135331757271189730602123436179622436434488806253202470325027015713201458129570067829936907614349109879175256399091103259431420224193596290881808377708705458558103766679844429069028661598020507149507679539930762162870620355827871297882438753321504912873509083983868727264234246401570960232499907876059282540641975106182930748675137061712093307680172250495392077010473330977769127656217924079965770838816499699564543911563644501311852042284448938764120317521024159196920607548780171331174929798766364173495462560185586483336285518917407123603794373242118929792813671590336476169588672633231961056217480999766357032879109777526846839138374545921781285011878480657395495926977573701355686456045016408596699873150587235963622437718350648664907911794357878947670490707595555011108370906740010882767649220247640546972007928785898215621865455600951284646446726738204186268133453493155359815228993539196842738062114615634223716892114767770932089519841713130343107219607636952457931133605098362301827656532492273445853539081389084621105683452537419076233853398114143552181863755555651130223358635826039116986180253564027624544601156290457298360572126397872452853654102172658340197475399008176600608824537878245175462548039971687454455188492135422081349202026343943418259465575455023917258497822291322359704745396795184104372332758232847464360619382490349248632325273951021551211493902278034329071340902456582778037426846395291405357057618198803757463692526311027683979168722192536888073066086903677709025060519648405403004129290518635837075024296879620675013116655960558357673302449469002860855304051152391720338324970362681036179982513544614686790277810795488648775544152138383068320086244033554929522312116878311078364335831440270637128493584920832211037834569252590946428795122473027204359003504210935060626577807360968061066594616946612968921834815614406879190515543250873054448058050722143728180930551281658262224865945024956995875461625952683372529536021760523998844055976947336607754339731298640270236538955862208968050418114744903186959640647849398522246919215833671292047807987877234096932733892838790032121068747656722537360608420369859067823679482639700435556394304244822288126025540465138931543725100740242512556565044899301874500553058005845709068589940121019982944074272450096382589298727175397829656000505069112719810760284619886738976402489502496496698936850827957580194605155042697404100498737610170408505117657768866723149923624670621585386479627012068445095888564928200986019732044861732972010639395810226639664492288841664421627950150827883570161922583326601878551162011182076828337279689396844790689227248778041878824149661981938693209183639429582652997414270265628100642812977788603925907801960229034081027071842296778812075861508988542774631176067817378996294869186182711119924653353825597634969936287527460550302864987480478872494546124164081733245387211759869561712082230157530176501713960224426415697044446753000960211987483986831413224415005617071445664738364857300852999696329860997017924308930956216120991747639282955437477597422823568682979874044522230096176883337770470874353447046151154737116959275023066987007044264453448137910707969805100365515016426217228641765864249481557838453772517735398515403737124069419371686604494404289898719128799061211486925891737360227534769200220325966984957877685920938904938855958473119807873108640459449407540553742582497227868907979348159361444361568088099241874595060020475877057456553776978295441183333045523894515854868024235400671350830954486608222711943945368573576352680036157087182942704663566540544964626702332401908073095398273913043921242936477790720273707602763019772048350486221251539154301978549438995685488810300229167728779134228997066897199079489772565307243838469416897079043617083386943966392247964124400100060196877965289513506803023343757045104373727624245906849221725674165527070706429840780234519261316552484981645462870491771079351355071271537259242324985858521981463307077767310567438544290895220418850941529873432886336523107977716392271964332609832700854878049762613233395113057419392206697329733400442900905260744505194049673384186396038394916209508053570937208645133604063848924087665862130286948442754774185491499296304836075270171722171504390048056193700243247248885894840738147179079093568610300839462226313405542387316525023594492007831834231389370225860907087906236833670022721530741634433596894242718194663165354598086478737403350484554566366297102001100100419807932873677760547592933395376267887859876372906767690433534864373420730145710453065206394834651257895169591161192403527402245004764983726764950515470300319426930332652031006962262192308365136202945336275499112517159798874298646377596942466483659095827580748857185814863863967855829387081609890363857404862917500892806131917277703936995405359297368349561064569632199425164925128606027787544029039777580929482438122126954896758127358500095977438919989235119148947607254954527775951615605230792132751697723673479313813350187079576983224272369064811032547889937781516429698077840662397465175058455534252083669139810841704807677227110873714286700873509294356066853940493947390242069845266022964664715599636774293849306669484493919702962083306855831778154204430503048530934405664945941516568127037742789844634668829220719273911670556050934920781925912737288447380892830896644542995685239380418840295593659552574788656756451917086619941443940966655787643769504383834090034589807970860971756948681743495650936888724314917042919452171267056561769725920183374045349821627410519088653942368834669196415711918469116650210172143592129308811387996778711942965770094584201542746337913730896872431182566537191743270752594511817812192556987185379877310873250320303967950932810487144602965898141846340812809669189504325874697295494459166207672229240280913460112360690198910225776577545979895339020747925211178438849869434767854184778491209684684310595387287144610597627014674160193888870959318722966760165446949473546548505434283054295448480094315365893197890561644883894253795332114638668911352346580292595584531969137543144320833281779442937186719449325994885754437625670521992466023712318143353892373832463021772449625487223362411713344836047938029240535065668040627932033244829446959175769069758580391111409445959064863791030504201559916003765252142317142710789597492425243423496786702833123540607472063022579675439763966953228059478575758121779011122252736070268531632432802083868023863188486558907998946770405778043373146056489801562590390354325760026243883981713109390880778971742339363584237517157367702450079196278358249681058962997308167584341497170743518798824419310801661717686090201305423909063970052525293531923893594295349426102914213335706730859446199169765294759385698527149492306023525414354648386089780343121135606697240844977827619717066922676227920530858072904859768997372524095602131382475011075202971154867260438375605222808745826251364390240144557270905502542221483176239716049082946433534735282864385486988768275266572523546452606700002111401918490367837120804593856037022190572691984658936049931931349805317293678931236718246751236750146264977682674075345468056589695667169973394143025499086639190989477351520642634493312956867317536901511677611156961702834551013031191525262467448829059912343900877724311489998862058164072615192146552148940010967052706394457339623094064011318940370001637040046400686681330017810530938943166375195542802533748008556663137890618616750237807042010561463224864441934205443674923041230939147107472312643030003027386752550012235454208116655917929633339499334633113107562191167456996083122710268843994378085680038054415040276719111723363536276721710837774627801323804480034802762693553269801936723724323832142244301068883011180200261392326524841949513492125941023997537077292991879469123409587906110923036052493492004911177046343902848562834743353604007966035726405445667692993159641377133546815481510848710428027142591507696750296172244455748900534039341305917799024899392544865186897032641109372784743843396958599712631644286926320764338230577791591954106969656007342203331137345371963327129910058931015930678686539009635449059926272956352541104498001506472593415112021298320704216912866895310137598943646007515017734684824866153672767705277093705819063546292740504877637639065285212501964188008508571108279138603512577439121230346945414884879186533938760919331575525526042844578796217019914292937068040482041302500717525045433159843339395201328034899319777529483426868682811379707752263935574598665378163519493609198085814925883192243291079427134268318554315584948817785270614958227611865385441330293037810319375050988555254635935175384091156424486521294754361010144065147289417121464305844541201464154139825115834934570836653334069526542487784197885314802471700441095244007690725614043599675693447527234633248070303911613157388585724865656805202256834310432872065770196354454146526513718305407763028941606640618292415269868040765979067229531040235161904174425317334639596521761160132849250502080103967966836468487146544476975808767911766851599645880903526377243645949859186162657814432011733009575461258844075792152880678499598596390334005015568831246677115265582879958414594798170291066344823251683518578165065109553950413997938030334958326773106828037190707913465414777882263766389181421007820933328597283220532577288626850868560999569302638372637654632075935190017981022084143311774401123901868137775864373039080649955013344250339222334007806182908784993828933340466735062155007480429734150401619939353816204125772586968845996131029413900844942369326982945151555362987274319383399870329983844532126571132588565228300001451859458601996679044856498162991955430005726330400568116714021185905506858511507117215564954896833082089055844377238214237630826922879139058352134565639951482901412838767658270940946836178276058564402643534910041585487545616516298924909408350882557667241236335569896310443766989788338205685538386847309353370093986357488896308631347457549349413954510811479515599225305420970342696320062028342893940145369974043152591857588357326226656377982752868119262565789015314926593034836545724977745679527107648054546391555900131986876962306427516543497417753673566605070695666094743523152764517270548325163249946634128432253277908098686663487144833452170612004968109236232537841303257289175172098123174628362122287952685964185388803153734605049475436569415078714568380145223886117596715112055957389327444701367230284017848968566020517849642963358076546682939991868594375069874384189521553361200245290900339344200983455505462692507322680885544288224105966647055415114355756674070703330770463411300746995906433857229369154668176099777528318593899321503085710958905811971589343179997316846689552573033708219988956754319718697546478170737532951316621419979589104434349173736011565076378466201008778094233296728759913782569979339843220910873668407387561236688583410468052183404562770536269675543866466186167453459164488116540928337430868373477983790531022074546967444577058786522690254182401935172763339822897732105155519384203687701288576574176451317413961954117470071298279776502287632742440767395607091621722525096815498868935664957141889026942989187567626767430222016935223683582151069976708800514914575062780990046144524135409280508365506008335495833841734545597052356237092143774175530988697922513362609518381327793885463341503557122527502929391998428149712167457159798576750520322808446534934357597331745746629911893877468059044878626480222364746840237245250310191566539432649790545077676787869153762295937674608358615725506331916753909314309603239943281162543960465798783643134737910011936238976775200512916839126223671037501559912927222905877853008788321115252990829671720942179300120739831541449891083582407074822441549928685077025041545374430893138184352399632986981254060383526384729394786213712113838568050057309742186539607428300906054113855715351071173949942814222571103372679704374114939833393383128639602188033279198685458864530408371033581236065871670385180007185502662771097918511420352579144338568864372456472292357279029972719053819521221943617318111326957082766687919295171056621495393196418934405525186073572190344364842469026878194932100319920514991184712155113337059832706937054974878950774552121648496906487024202318989681124465014588855397073255014330348144872617997074941251095037959280620802447443877012861029974866701308931336207068475636576143278037598082596881872584064966988252905306006156498319660575825208444274950628447652905845276440910178985288487963888920600545093595801910508688401953889961162146083017974128988368124765180211603256673903289137834250077884638379668937771235883725370597649808183241388780278894017836690830070249171457878690657515468010357219787584638058821590509329856295609793934912587946177420272987893299035736829290315764111203641070830288031283209851312051336286726215375468467212926413790615751826519191391358763221265319928061677576380638824624536429372721237043337583726836217404752581683326481661154107035071735529203507805369472938992509710857323565417228536780166910981536424978065053108993051174784666272321434364333807723739035642366419980736113094437453343199246151868870772509862866589798525910122563389015228797172226541121832364630402435034335483354297423703485106769672170564318624547109438392874429769060054555237994064658247805777626948430180746662544982203225972116135295039449815602275028722143632500323908235457694079142397122378546282784435870805574194084340992863310223767666750928701522668069708898933195698086597205285663461803260445653811880086466344189018953361342087771616529396338594032362855499315589115752011803450996599993865801393153133368322087742913294054226858262731644018286018583635125635756999677947447712073979320505543564460981770174495652983554563431690472122763275606462777829473681290305301620203998859452668201324886251550139416027442728741072653426717719766424028757560328203831515735202914186669616327084894195903263526972751896407410032276010904448527145065029552906539154456636724856419412318638779499285964240022096504268810079153313405754458339243294155925970141081803063342192152509008039595430975407339749020952401112015214216620451140299428851894988588003623563597345528272359855895388334350901037457346752862774007172550003919976982605496010419175658093938892759983638884821661409665465945959986056084977069082126028042251527052896038985693375030734454214809056552817125621750608508930073586069694890813602386651330570173643744682012207185083318638791938682542409977244722342041573804224405085467096333688520860743258681798490845798951971203401041596260550300240856845810493685071692200564836108912489537010089942400004023685157786716377959080234728346789669175398038268610023457342054654153746894551715298132339946016572959810433220498195844795677633188829206612219585939536694270015028576687133322814009548947830436405731793774780762552864355891211131548789103798830527487114694970517420976598191162199031344014208238598154793023913236758439192467654233471694618466371986581401026907791354525586840172747987860154130290959744239380134333100353907200746553424382803194162881709950365697742864812189458110052440253898660174359735338865525834698827766696606280444948320579987963774774989066761878759049193514758158695815350916796231300456026520440177795961711439217313371034004657933088217298196891253356664269808717921704186727352289760589773020012661775514792755243983041090054953355234800389370135380073672525311288982290496333003700028700742094391483351627382467091632314885037028672940355422342472222213352212362075523760336128378155478170366517519958656419179195465071361053491479330219967637234022056155792643701974633770854876465959057631020748931231715917638764496908418112352625915279061701977536662723225732811485599557928621870887123901261575393904282548426528308145127854091673612144010290217880754571581784298265511859743109292473652952813030688483236275817580350808339086111889869968070063993056090216787306111816067405452397816354936744639217246169475252113941303680400090834068308198229807144537962530495599818627199596492459518597914722529540306663876759385507459348210061139075331635963229448041773654064105570475559259731933779033278575651694603117974165595581317412142354466269798391032639822208852007668466564944892892054851089680885446585271210572885866660696715745861655398157334635116540843368345917087178744994883916518450602020712282319379799007646779777091825605707809980575162576960832395094271571400867898992388348871665800650526051085052746956536438118763797725501915686559445373857840857148679187363235776443449433604658398979594659259295851694705060061986647963998801015109636215639412051595720855624113971299223245418330562053498617806354915070233093361417448668522401418989850755384643672199917699966761633051019722132870314149700883202812118545727153118196585543222288458290921500419568369610934784509038528415714888412484990674054632367469561746241632953850406812674556811258244868620593426631994162874937291238828750485953808462515460204686580545370590232388891886243152273789907786316939879801868893117669408234747471452186976618210601754154539928971215391789659781986434712045946962088539450922811474021361674439916912745017176576253191387112302766465671591142940413425365078658473728667921410394316164944864148325898284447542352742890892303066187902981492611247772242585123585563924342415279270505696336293243842536052682876097729632962592597564508480650715446191484143082408906581390009126731247975338536986728047458866659478335512131360017166567720392423472476058736044117346168642963247035308551078885214219090588239933532096488911204624791434480529430457387048787502399075487888373566220243860178451220624522235388260084442141699771789239749026555271624163157611466764924524718767716341758608024833608328972817985711567836496594175723201156685917754775190807091356160926531750738122538484569264704218754498750715263119468096578174296546694685591448047227470227544038031540430659270923206347307734202620896978662401036108016852419362215027845550875836777072253403766308421339228729539074260940327493346163053831997504227659032119416874501417380996559275045929742187029026689400690432838174097286958528069683420265310129528867053865589376249143148039223945089008574635027132462896981974232678574237284860528808999622623392938473588651233480246955907595987786182188944081581767763649290353817932853219602759983837304158695169392598213918405423567596450554201773299029403326531124340049188844413346243162304218051915932286637560995677821229200138320907822717985020474639953009300145497814706929097823570153167983618600882159241876911657538571254735974929867478338833724251236219746971608599793296569087777803519693927114444082546611257513475782000264735999665433313262872301200462837604207750028527150568431981271834496564844914844731013537365493355797259520036621055711167752767853119988738432948084389882437323932012619981684915062345412101444835212644432253585576889934538176850206163746163066157653878560953045134418284970280099926715515783119836623243135364763226273197842667209056696801726950352001394015133913654207772146181698701556560532432376845040856972801048240724181515594138525565169660373285324461125553946581804012405926422855282967764880430998500872819808511115522864664836435812927280991733710768643623643235004871570678314662295218985771082952730020149198661566612459409939817007865875882520114087280828458980195302316140550245286159086250807990697426714339515524941731139824329952150824685005046702080437927379068305436994757286038957901072568921435281428802136762141625246443947834866296797914074550607930655077323853796047098577157963680179745262708704188948326985138326942125623703945167395245822935295428043409415515385655877974886084640399098167166974337648603821061525864010275875119451591172376531967413930459664128011357398511962353686971853938721020517487061131594804718754096571162532883942363638394701134036060004541060724134075488526231921295735502173130854778502663644460150697094201906088383038825237355933346884968003201979769931765409230026916733259174340294324638864261924706731314881659704805512252769463566217935311997793942430435107974796015991633967840221928666015505153530842761989083005881904259349281723253818884472620626919352859147307476201239767569940705596377081524119152574436075366716284125259872020283298294538152182486891044011186207433110941084918094427678741741225012472292039351265992518953646523852916505361651152802595297277160166816686020775279696467410679702955792390617768790149818927245522817822922936468291216569345849086050759658039414289979967645093974274423143015545994468091985846211748541947284811796563604540544743781677572550344243263520984610551179353372620161508907971566582472658289806884937416514987855580231394257324825916243074832863878671030030775244934437849572966720128294599441826236625560166925767677315695923561982722358438394406402443527920258206722534865209262749270321370053781148013770471005013332179660009716647985017513069055977502076114755697306817338369260760141224891770002891728937356983869002499439774039713223785523246411439361497660476290525417751783669954987307281303583699771836348648259544453821883811923326334134682149221429017161225700603323069524130922524233375432548173118592245319596161020068371460246269289126516642114218183776878735922434800161934358784171392924047337643305455278315476721062215496310797751047887699512817601506945877641735805543612342877281486585597208821914027193045635619437404238588381599802847772800552965929459785899459645130662400295337595856283958763607177074167155246311577263100808885694835364355446870485388296052555237108264557929048716137103946210192279122242440624095091453085060868951542420140973194892213005176336823393767340285364031711092470021431266643019181033444518159506375263814230793552223091046340421667207631497073471467792309363803435312502650992648059299995151305952737056043170939568303435781856683610921626519665995855569833987021085545082256663744779625776918596594421957192096510990475631456970674922022707853387214254044773109528498727575643328405943925350407864525094192142377119050827745785593017816447442795043956322489975155521574934208909991717414320722092793364646633213709963486541580780273474357661825539874894982507084082827271873053133923961900089211395870203611462541732751378453271703478463376167203597761511026580804764171444786036543239751176202019946717374438570123554206820026437065396042639229268935902305528551978356753484583385370740940496732369005769131619215813218255870241038469473816106739386942532022522507845957970864927604082709832902783616043741545065787265476030988232356266499329395753318301842383012993795706263058895776537867304776214685338034374374071947254317410494563591396161656649672275145869706625307984754931973692635203091290759628222857499986564695742323995377128208113481232180063321355342911395019618223163500656282855552023518142533450888777466861955805586890735421271743852776884681401556473437658966187195428182742750152507978924808168452402280271244873750093132705416467406857309646591390148972175375539959953822002442732995001106047529254895543258308799738677412229958565428845570450885872728083763027638315472933762317368256341571479887017340084109502856264785111377275163844865348478441695810985187114208919260839880186462310953581656968296781286509886946864105527070999010849705667738563732440876823672935291123859068091303642647398806812221605047089290893894552178604034568323944036420322930764385137459182155371688031686280376871228721964146598391673321691234015276697048742028101088751283603961961011550060130797249570124143738895105381046520703468145315179193970522373979715594273929791103604949133013240598961823676083469612393801447318561026963409494818535997843574175503738766841615654949130882751318025859707617039175606266206550459211414862131134656378406975075838181614821836326769883311386285506000302949305713036638117312333312768295909718573082397883220193089329442496755832934906904235339908097275533097871009582180683389487877128199062391168659848273067140875112995597061165420585239665492103675726806477328807675385333502626740102044139900153908788595929707486886252006907803638559753933132166778279900034940945317236712855586115227878869782185764788785821405088240528078224622641022956674083026268018368282454796600486798375287412519735662332849849828838430425007459131292064937734974343834790118604749214011849113333244290370896933539362073894700909609037334968073137043037076454975658473340996139771781364150871168157166664303672470646520689411618037269747856406849709457541806835246349540694135991872755829201941433900389562252861522677485262397547825432770236309032628770453280910230661439886349604632897737036213336910820384664321645967494286733200746348563184052164726811624581108257768808225210177608158379799563848529944432447711373932372786261902058896334683140251788456244143981568285795860702171794920636651972209520843833850050425511692173375605796572442197079768041762518833939295097859781918332435051713176711802865709017172304780582474392835535342939850240196574234603677423647234056488711428591909461767334585364187188561956318512457646949971485136607450178580335253368159140492221185697988863454009343073431322533079809533746150535908294038336584848937865357548553003081776545320332905017324130944354702825528176838101810684983023749559067398329339970516466503463380533186452210042693980191359189025159157924219740348871739737732525284465734799876787958003859168753842310440012624623020406459851956550405808060853754935058705051168767085751283531621321947970551189298740408133440142236040989729269718812368619813304394556483775225351860115372730942643627752899754703323651583986170283102510759456198031145408564960534250002056945178944292629468127883806709236486376088554599085297972843074046834111813433378907487205235411433795157041944257796591901031939352977500898343833964595397966686075710708898001319590434424391021958265859551008776887334553939939284496986561893995609193888278699836658840229226209585556190677405217137006710302984251064771882413125003368807887172519474466106178516739785249154121386017697539920076654270825821589473328878329078680727569017041181550833349403998785526899593503837543834233869340317820602813524921841571682751793732208016722931273318352124361320816710154134300977222516268860643421997298089669658703942884560678339069492651480086333165719031941457125512048342644960063965865245954534884340564061961327584309346968009290586083599977114473435934424827940300738806880291011904541712134296827767536397367122555366991419058507106989216701405478823731020683366779881376007254423700636960906506370554546636114738228514889604808491850726162234466776460728464732516692040889929254119609830739654184698052480559229478488095733383903790914949956749315030490677310923690604434663982184461687430982549251185332779624273715406911711743137279411225126312297317723690973634048280076825912815441780473348505139519163371593869860200881868755129648219160514597366562630617132149844881557684275216519995128843970605867431499146597563292660199656955597465294236004380973359204015343230238140011351199949886952127272333891015486559641104293512201771397458979354854529196626681435672243410593207311296972121230840976112320663488417987956049679981154196440261967374554193634445917214861193927929565290830473561099561797501758748395609666305188703275414239464618529257964553311649597822004311177319090475225989670062849816904105168979887309803611561516279837431076090262007392926908870237512426914616326205556732608413904789054037714053693020691836472836890716893139361396767325930694493075298702427908330136084545795380993720768386837512264885197410984354494223235566545133587016950895851260174403368034976334414844937802526435165510257052909989700939552112185928169581928859811712358205076028476703628595497936618939803828719778627823618498968231217543627890111015548896945186971416457349218104408703391495411510578869762232848320254164533254984320816365887306492298758331213861674173191868795812389172477831457341904476794897310021208862888439645460692465587054535602244945988538785891424551346035443904894893754923049029389249876609345604458551857605444330946164620329437002056497283465453479752039502625302260439310758075838503169539194473888672879375422580405768464062556978704049201192914596104329416277564908406751678708521126877296642371811492124082218948450305328431305126740667244593031296936974064736836867896600082640268707036115345834727700752652691798723325879816052500300772492044364711495753740549012434708340763118332375579171843826391716909657091989067443858699272047396526561071988240188255029616674524289681814586898461395456289835238583359498929050218077858199929569036023748514217744829529006437821732142780927438710830277724188104369053008417490791204261020597770510355868228253890116565271110290443244589664771590088098456849928290048373359500930768238901446001748890612833729202669365997152179871253518060893978555967043967161819314085471601109665227247139431868459506177303345989240005759537256498144287843329168545352969779442288995335840466642134735075558099189391571805504832022310360080869627741679203229219462045971395085035116580938389356481114213447078320880126915332973131476370397149644108863312093914757204488549393786106933328122311957783921995966708404559586791125313336659513163592791260809297760643004064193651637635317570426001091663568668401767978056414265175762549547453303462230124038940123048650076526935030540150257740705512960027356303690490576365327071271620092306928698363808925505693557842922710624066242379141066561028501739556367385228419676133037953840516215215245277039567039452953975432359573564110253299526905028781361657771412812812381170062282137057963111640857933910724537124208864744911577271460821943476779686632826164549558099152309222954038473656889546580944164306504464631058716891625785807776475012241322170957903255071951746216717111071668201580287339885495340513094209570637331204856557874094504318136699414337318653896147337438042922845934202579014709027297945382435445550750899074176194494375237732098917068388087020663377735906271614662835759439032376636323302516077345717521181180390993721452642098666843198636423692825179282938050398514267031543229645981414173922054175699123264547469607185366130055603654105040533629078936398973734621014075963288557733553639395664307166836799541433442440764723877422215990556796508449194129023312391474697381681598643309154667866947242209137289692623751680977683467537089067340740840964187151798580349767884867576304499575841207582473636243261761566343273137249409714481638092386556766223635060229328075334721698383553631112441129255118198636295206100799620055583933224187175623932188234256334976222632909267066679298773737211125897151188826057864163851248263870188569942112131201557002435243512792197530688630956949218482365220802934959201925821175950945459653492731737131194116461127050497359356968467125607995988707060188774047761854122451225594565821643745563884926254408479096023198032416476527430255299444075070599558636675428690617347976690225670070561291135757923378275228561845338943282258577258358317043956839495461632810527348047285701399089010777528888549970784151335908085517057951095985375890916604933470774361349748962772252425666694395728453432585068463547505059539540826756105724857714464423088202270194363029511083924637148706091852317552442942664794558976540925746177682712596463584420851153059329855691968211249527762664714808279460327056532610207315117655855033079958326246156863111804632095068032721943079076041229272350426149466489211263861139413135690701255953010693157855966162627733089749564039944358330643095986584817792196169272655271176880768389940377947124379285932467613774528491142819956464171965644839659617509706194681865104220860394343325926055044895333071704742065134960623177451562366826512428022772228558787366173984228077472009443800301519215135584298280790650593254581362761666509284059668715775032942679178445584591507655608527659019498224687582511358901526578187438372602866747402643692247252038719591565446286405102996803349239194626426977590834978162908554781456531529601865055015305622021939508166759669638028272775751580106033526960241742456274520545235669047868891774646834953797961970134056770627796063645961931769564742962072477431470324859731080662588256859497006400449449743742788118140798691125815834703040071543621424839105601897899938213677915708795364524133647652572807208734457858503624740554040170330316507720138153526620906389662341870959103951212232059189837609127502856505643599573616631338020440646558776333187516202893046892701211943036402733118310050610166891178751852751975529448749914076448000478079484270342028364201415281545065659622850316172331214253860573969149288287375722612159460304620453799467344228967501735904678647914759654940459490188760021672733965577783296724254961216187712455826687586412705135873955874951383739078568337412670775854354506942796459327273562372139297136953241847027402505438462408239186143987424863148082188843018289719437897272443315087783567361955523094692071345608856602703594957027753878463066449444565917820715218079214297984848040768474917282165611850110385894977292025630633457992770045959777021862089318802697866557890010156842991220913575431750098518180204255706615514070353222625937261152688830026579867792089590378391468163199563224854281543993081991974190657788981383745611858224991315107818471020955149104650763532362007766535677967832232409641980562794877793566204843606570090048641969644945369988975818741908535001275678567377915582484267896419687608994856877985207258318655468939702902547302535536317206271703624662381165581420968223677539901933486783527325667313939219328609607005123457076067718409578921452032892526424323332996652155345917829053876353116491111774318405752026554250236955345651035963887218628973481665786371471292423082571541886808866437111015724845597455530761602134381983348296978534151592001223748325620706111068045014758326574794358125081581480748008720123298288951548757633032984344875218199681008303746723005069915525196122744857601895636593899000337002578933035471305273538270495731540194363696758274733551655718003252516660414337037700960985943378318032281869140988473490314356425310014734672636354665116167696060070733571912222579599651606868989013940301152058639012126423850509597511099618069851831397796681824714791499439964953241592460126023096297850619237152719954448932720624309075995589230228949620107161023977344268471584518470198272279404537531852917130903828255280122344983744977366289789706634395698142060958014400604249549496669752052411181730800260702095404972061820878924468820558556221659159183583687417275399774201784675939788688755553609094884402776651632200079653855203759729012722835748856897807223422901684850732611374142096009653614554426694414060386950134574220211835005938659344174750909565549191561214418814320271379454025263524581823893144712080035700547622067012841026909896859281770281259622301304756851273246358463880366114904862899994514157884172574137884746058766871608233410881211167036042008950936522708192242637110284708029082150262455473291234879012857742049022625814483962046811268517454097169816388545760498907139494740874722260122493477594245867603630385567163228265088847965967709970017944980676444847049541908967523384843914177726027643335212579141355394419367085293449234550737019603996271952075949998624889018694936911166443384476321646768996485558867056954652806624476072683149349021536256992930719412892531042381022355585854196953268795049410886030060847213647470968734539251529554152372133318815609106571576073068850501412120773372594035008199547615815649564470223784485423298006592401035805016704212488068357446166465243735868032526245370137181541363330905910895793792482663690141693939360436328075884606785304700955163903981624218174165363975253147238377323604622502703268713001076238267640317732293683276103272324580633549750424988301127320815026633346108509520403944104548736825864573472023649145353485287934033044491668235238901011214177471766801394146359968672036366615099326634495341214595865043004591846331842300514487688293563623273503982479402890116982466246548720683068985899230485648830440316270191191804438677907703800444795093675587099017379279870135881934877754840242783646659877470898000308038578437275530460989115667875886722257561015774616045144152536955323458570835681241861476117582005731879902641193426913324591407248809052116256680616088643720156294916730259015972775131799176114265390232649885412952048755551703782602203451859941883121739574864936128631640161974740263462618025426435594501375864835430439439856717895860885580278767810988190019967334432569320199749276378649324037031896718515230270401244764514826405300260214642996305440750424490484534598679825992156555958129488853543242712196233642496095898110874482203312927196464183796647204640996811192165698790694033151912674746969180513211082038515482371564722692558308205699677475500895822766354740268718128234471074739500965059934020735129461446062345801114702239854793587055304345900823319812487871812238601526368410781809648870061006902530157428760008689719523064634777158124538176589075628664658205674146446449401221292678653267850299253119476999964767752460992906721365464855956295938186854777048807188252082716994454147187273840474593471424744955395247833713752340401361115223755223428593977594316582083475482205919629333002094516418563713319132301885528674967766825992137632941654344329676350410184335501325109249523663918921304851394541089278247169212416565390078804660992659816271276069243506842619077387540712834957408980188274451309804950781914503346785630420919749952580120026494519176654190738977720950270732301567624199146864881566095457794439945813769218307416316538742939530116400497238763986206186408367744963253953748894895067549304606453892971390902664215529776011613552079302565851268872618123684489850260824933423740638005372404037797136944768654852634927973577763640988649549098437011530990508657552156915050503911000975850139649381564661964213634716087613399179593279109793598588971257210419685428587891138633346614185266017475801388403809915450482487495791676885893975009804342985324870485495949799452138124192020759186649546036359221531731801433712793864395708306194236569048097385525349522678825657490997573049779275941123387019641705759740769140814353873467123037793034867994880549597411122642835706901768252448323437785739786452756040147493775809335208487042702104509837662122799034821757559239886770775923410540657432010166863439193800023447475133516129692691713804030414880624515662031284666755686966637645031949866628230284209674428189977093677222938661631898894386272860353599190993743172887734051093416275814298808503037332127186677992974506562585804256322120932608462985469384841273629924683855157044772528766974300561969443998574466144909084625301352043392833275758686106511323797721303325191070981495225426927775288506653903140540995563566309494121096278354066993709086959587267357630639914003488974856006077541479157828588059802339620811058257402113310762161394848134574651369282239804827621314395380127859744165488773672928179002586792373178039551870446328590323624944793486431310223685849427075447218632745307701593187846366810737352884045363241485213496312423668902806002900568756020937371335646820872349220514494965570421536527066467471907579341467998676233644621465844342132953002409818000608816740920411302405280803555201043396588552658246468653241431596919197274163626727537493092361914997608931583811313483044631736543904390858292549101971851658206734273144776111479897389388490832696124890404911978356933532662418959546519865090831539130755566827290466472134479180724387359884002783008236450180923644980055289335165481588219670920007516388820071080373512428687584699682981065352650430405792710714242370904349610139730519317848243508644005067231108648575118057833317462122731442809892094400754091327848923128664724437955615416555672428538453656409448689366815589244610895073032625691472872190608364326166669066359865772966650346296067530175869261572061379053677662259775901996942087369872451813320451796214488518110698631316609730625066397442461187921233344740628241874740142762403482083304557465887085432436042237923950884189904669100189817369572483123524164511366681347531443494792602081239910514692924527262656624798851678908278712145183549899549453069658401617441062825685197087120029994273727552903096116052614051206022357199307711922832770681130755857475195488900505052171548307168603110238715078892775075646770519737866421307906177222467080758630812523180828091889861301542448437670558819839251014019139407558859615668003089660376376737394969748089156404030213732414193401386267278234829619457065487412078475990848911566225650546722128142958058196510267770023735984801992675414977750016136929324789042317881691131212978021510344880854833604192784342470560928710337771688002138620858599377974083825413640071111990583673087098387163961499077072626970290503976542637103310997684237242047861847022848066359925588245898467424064989161115185189228985767764434975578265851620235091447847245050816944262643011169264219306293192511040670560068968611825246341263075647264093009669772416057670270174590742215057415379933431417671175093456761192966874465227416393565613738512582974576084471693310551100870959911757712639375690598836259012912332858376116935946070073300260652602960772097439259155734892822430087466631223193388651153872742337978598960890369473614182446134610779990921965107983817690167124498662568900069626941263212207955993595227023164597619697004310286364644040242319758426243653764304963341702506278344611058352518467419599871396429528107117927515854424181268370479788683478195521073561106154615642128207938278113037982112814756158487858920039280912406091689897456129167177515741376979347389743573678505981985005041447364351201878894879838785724907196583012308576343656217809107651309088730370137931935118648496902133346700870302962239771911409039753641640808252460751915507020299416494058416216588811092018159725261135055758484610711566212110598381076512908762847610319977537332895078142570318491087478016477672211455188314482682804497996436068977088846867996831689581520293958724239079873623365218332901417354199696392142391730503078476442523803864879038436228524854433346968657320285346851320895383002400926369920126690017576930843756777347534547833607032752907616757116061959140413696815013285099932218213766678895126072975586859022778670503598242485787407982578292271561482250027762839459230316095836576427117721966052995982155816766156588481874101661446289740534504377921202249504962421545007904378336572850452543284987096423125815080267285835856212393700797335166761325384788013668609478670902891543476362699943968975272851349742202647316336281739684789126800695625321127195759544276851840046207162760341705352095393195423804742767849406655114746764237566299968839931970945404541030393020507714294290818237039235258642162292452121920639125303440417887053205062826117134858688757772098196902181119122544127843505511501234269955798855798861537476826198576181659117931129123220597765013278335372737652170692207049511697243778092021675068506312914936027288431796812103999653692744463953774507966212003197480757484073760405821215154894422974162215066619809359387007022352932236115462420869986877650532385559679508547003177431934111838048061015644220651559788108992545987078426504309625028433785786343579046778504785890721333227726417578648486633487255524347898098965899084711410597915636821813636387243695443088681429664039506885862028495405746298586389061387205240787804716916377915626317126428352080175889261816774784252037176508028545252529684129622929321291887941886084671695834424526077026643365745126493316800230468862886602290279646027228173024995973616582736091805669549589837894313552478601635319568054799276013646794268549566832781716060721894446277303837218876277638822234209382572030300623443109066470383635100058954495093201390690124653714165542690996032353708405973210805720037744074105871569359427914770440085116327837727980885741340415155239561865897230751299717379942968986572866161369955835054336130175712686618644607881659953154902582719505530128328305089130773128125442174026362583585237941589727373600638715387870122806431225042449300723418765134464934658248514008615805927099056701813159512649994476856484439452663952326147363106154054820077026223832429588924001447912000709250719725475330893139531801279469877189656160286941060150321048162676844797450936323475233487301042616783620458993923999135224319349794187053100463151994546286415475853686931760289475523797460888362783252300155901229124577738986549264213000707873445168369416935833312139719457905151079671148775763473678611968783501435273698291844718260608326985416001104978126136750475086367724570693403648393897157241143415715803407754781085195212959741346370845191879777478908073358779613869806152167089070495560223610855464824681645971000314927142960313943579267687392782371798404758694013764619629329016006951139454332640034394915946678431180015260846541254391910125326668898011863738829995216458348868335777603653032278632330759755956776815856803120000366520922502963197570816388290099745191087746996992579606014211425032400527770334511254017620665459191710416015769442245675053660731492495141311955809379632220439206082564975641006152585816389928326935531676128291984789605081497112916264752344213978350395011184095139522961418139829658195399358547684481747264379844254713669520927385523314298730480735650544702813465306990304368224717954643773420127159737920036522578749477373058372643633386927259383632451595279683498587195360185848763106414636178831661572618850094251524203820005132182641824257974816540781918365763373364515794117955111577898334411871125733142124271057731197734625661027847846530023162881803850538724776514603665802807711153718772455793410970540193594540360926175523323567693308884541545896617536279622178511956327908216279685469506562573053445060823548208862203869521299683378335301067653305109260796436684621151905382138746989792420022748103428585958762654969681611519764567466833269690258367948492075956696200114636648513967446261875801780694078417088620382362987185750027814018263329069102141938778682132770957542069608535555518482156104002861344217866721922960982680949514852961388697956279992771886443584428817233395587377436694420749306309368319413735843247370444764674580091054624654010049175419838155280419532557204755096334512327324455029715832843659507576945680016738989350387249731249988626971615817183387341062244787106024185947268390291706479734511950000569550449399768100325272037743873202791400905169677033274022489438820669287125026475366694191504448038225076906107115700064303557306169299793922457774332627373599258572011937767171674221895064656295466901838318605133195541757461937035518394484831982460458406652670424948641914977008970578271067202515141312994066812788525668686097875868928073569469330107486694570715384895491470761696643460197344058602849352853271398232702910668521739416407951386674165553197942090181817661372550234821414507037586817880369957585382280732134204567481700132161666854713691482438795847761436231681342867192899433072786574729628394541358849417582751777476800360718126095406190170877501860443403946458520115399143118836947804095334606326678915050022916313704318605071842076819438659988930847803298234422408190088651084302472315079223512050103915472720774208200484321497272171390557212119000442014364262546867982837598237046412293412913962926540427026243499819253094269805204147647919852565130007311991981328109544058653970355098387883867015066592651673406892705105281544064377176832511834618424973645456581407110200920029224307187817974265023722799333843513104200440480603671609646703407104454341676278035376818061631502203108615695778430155317694086471526142626956275967241957593386456225121586447747262271547984016830247060187329418290563435584639636399616325097740794348272423418158404431275036935934182242320559483611285650709814680649718103866035269656350766263187622216534188987166102103075375677111695693235501321442312180512192994065426263910932742946200680653896323894252005923677036961557649354424695848013532041404867623518304042422138447687983811690696311826804205223392155432820471233623497561183996627024966020502345044717957700896840571108130392604628943413585507898877303523223972506424130866571055859215930265019167899677175229700940366167415432264235500478254151998915650177153995980149343619927672323279219243346196868631097577734047922761343199787654391626908742759624919745307434695773422174861083889317082500957831652465732071785034175678267431421050033910882492075069173071306672167498129713672184727149478106372340045167118212062779143327001185306273569965731220121452658129879015335029841723967750486366751063697154256138685994698376588269790068671759865593618261736216019388924101776326431499987993932080598657266220943131685470501599720814683032561822123917289006342364092770801943468223167668597209382029803404324040039904033662002705908157573826125612855320388438794844636506467811044306316628347192741808691490793767601708642317287863081285607197976147945299187059665584851514347359891103497777749914057377464606465081099515452664110718315691206559139150857094835438623046936723281600065725770179981633429529945430166263865526649132658419818168222230342214917696305211146418928166113310868629688000270903308325939770148563913565050759467120758902209447028175855750115996673890583299118112371610725504200724763884264499731775068943837102797915605322846368171626810346663209161136631362581515263216677471084238768051242377873737947598967671225350382538486879608445939248394554393800964870338477472037694819798973729251420296447985675638589423992283337627023443310122834930732521084066190478140203751206703830201402674340932269274927667888074661777063923855850528162375822421049419581576154190313840927025953457892644761635449132105898724979066098238443301196093869606867373449382503326745046271022135956801900930924333037310079592923768716579584330929802080420880391041599392792957733134622866768437003153862873130996373717910987607039857539862281289590033566459255031448622913500146094454917401326715180802278479232600803749131392216336187921219463751549414331575567456348421013658120535286438204085191836799918312860833282259557148197764183907335411767485156356230701884484452038799415723273334068241858160297336388106953003434362207132660851472129118644953737011568849518101298241241694369037233571745143005833967341321832029087339684713343359641018135802003917897482698407563179470500298292888829465166544618029537952739700674992661222032887136682461276537286500101419834336167095008419461574289663290382848409875207319143645207763235162641323925124136828593360353204124344477597058057156375708477192671916857941690551746407462955353570656103234416413045015769739391374731415737770534863257681519645317982172303457009950594736917904544491813274716569729570852118982138181471325381182912364172567665913730590107003620891846317195214395850851031336084638490505998973783668861917172542596707379369591549202427673930821912644123671727252890466230618035691431600502201054104369523135558253273084759068140185481669164503299530019300542268933005491083384741317883131666554469138564640367776143551023187988591467506274728186668506604287122530819768124015888466321192889442442031810814481878580868623296098893253357292172169601479520088910616239082326760225036608885242224122650294116240633852820491523714198660560943580170837467349898364362702647830425827166068241281991013961355992819640610403741103948763553182886099534132874364638797950032792806906933170136262100209388993889585052425963919433441210363445315809720810758230828785918108192583638047669419866218481341416140991840785493061364790860475949931692732683007000865750586812150871245374295470234434336671488721462643356050442358984386883161161175929500535967599832263808822209409320693362190952332320713661742703098507094968113719261693462553854029993057907731529853026326477785185427817464048968319848757093127212286694826576203338327443186101044425493600564818815585894244431595022761682792733163136780082702715334522254732862830792608439344781316474814240495573422541238347079801184501575352901257947219953285144443878954647421556290272152283649090556883407249408330057500096901442088507611179205981902230946751892304815372452517781715470906705936132412555163282508253519559833846408242952187202920788139541324005541148651948866962488640394020245921807854188505944763828468622720710051735483876840863379554233721541959248292501893697592195506005184140138219238500291552776784764307023066162420413079269170276957054170422182663667100005125479128305762348278465928405855576200454110312185249857808235541900535679188614483235256856386610899814253137578830666497308197845493294038343344984521348275099646876068586625166122965313645266106059796680779775452619830114830988066362258856270551074727276199123398331746870220517706298681763454399985980989533087399269384117446098080493155896154622616760193877208124832552259812756872380142428092824566868300535387781495702745256697860548515440825559655230299283996506132492403062443152166651460040460167772812553564700667994686308531108123547133654725628613987455586360846446977024926575589513818972824779302904364244075485125443008013477519656587323174679769607003471797859362347967843889314097285112101407574397153299253120408940397829855177715964407945255510651151332383975987314368436066135501965138827969401911116470669500937423456544513337620898460606345382463534305168597627696308090959954018537697926371340092884350933110382258102873683682691257785026998615326258260456041654888714474549998889179632773861797180861855622444015964305004895948816783482822112961883078402335486794944158420811646373124372947425611967483660908844384351573816409651120477842061321574046761896098691266991155353832885932454974617728595422213282260668079725412172181642409627296495430159923887161017727363663022426516440208327934597980789693288629061543279064806119521610719741814482986266654797032031264941440814581460389100223763651011873058724839151587229464560643062959875440493239902619419459733722923432464565216421665631537272313248495540882653572280868040492853485594787428147960754886987299765745737837860113738606875398769936455100917203922015150640201857087421575333568106928375701370488967200071845138522488396656670398961010348208000446752810614212764304510207619922586729149466823359697648921631960136746866383776491598324795202724161412792009401857154096749603245865266834232553853587656575911250490072204313798825488414855038718485790466113211989512383627566899230621411591870427121519258924121011886267186607675599173849582053170828317578831007025478216341081809067854063641319631599652833608946669935209516274210967964087795604104529119399324838273127438599682563678474968408916853965914817842991583069238573181283867310579321949554816971045409124834286222736869484195458745262949311431018985696930750504489795945793621521720430613092957103570343721300084456373650318002469993338968992606710301069855314778184669552884869067987209774942690354992174907580650208190368967235913509146551643527345635949638537227523438998445580293745181275785077836780117289526983923778322479463165312663641888510714062279686182220376536832855779412476115357204692348793784190274660248793463433980770646003752976274034041433065430852624014485392424497877086846587337512884815159609782431370457609685408688916282632514146668429470833091522407282872604214248209242902302479250071293097696129830577807756347671627565467843602239864671098660144526868725472101630063552137967719956346120333419196703364265135723497325421155478516966597436027861992399327388838087984817424425954260276792994811180314147205973736227793260199445888984748290092606420766553870770812870978275329536278214404090743855946258014614305691714414551905221192205722086284349978268851792755912667287130194130505006318014468462134777128665413889894500638702231320665964026184032134151716285728802198044382493222330307786198576301632741672075060791142550461017732607443491184208210029935744125428412098890803581111200699294583596232245658729435449827222489577116175809058676955360584997367118606199706011662891413556000867966735600663991125031842207861902408492017428867979996901440444344097528320265524948685438716126329239636922332940832227090897315303547507791526491516623485443493221488787196565318046955155319791489841890189944304047512581216230665789384813498682549518825252653753264056058780325520920407331172285526798081163397041678360046686723261396133181988230714605277014917956014762700591877878269190304790324206972520027440888135430537342126321922620660065436805237223236392249376663078916331683296933025304501796836539030121486424260122835424486870793151052733235591249251353201189720552859989263857050780890534922186332880738112040379681537152329339764378303037817372414545806923786121803457489657000310921613328916029554096112234099506397288489158833734965283322491962328210932216479391903378480288656467259959527041278720268641625937460232524430559789623138124484215796605835463099621800282406573118927827472833166163057816173086290861820018712868750007552423485665053624497780656679554013407316233885536997118604698484356757940616842536609056398363895176192486076000553059711923500690719432509595025703288934129599110320211808235505186992348159015763037211023304132475423825234881715336428786541080711651021749711996234075160409754222567574049223148228144397900115786590681538200121304518787862551027609497098690891814359393300530041434356921081854107953568005638112406998233686611414041066509682932387446056051936273152250018947741552713481939753540145909835858575152237422354113518366223961470872785398911781952969122873013011180784437087726613472035162624902763474880796699156085966892675416342868319128869404985631177840304631159775795809420925093268460259920997380388071648533582399533079309700548197832151653725924580152552404070139744085853747680545974544630070321867898039369299344622810587668671208148998384639816325173544702869126668659353156151994330131024471724264422812404294334433272737684850257350639693196075497410217826599058280766410081922391479675943539026394995462650663927848727416093198474365931413041321864980584451824714872591900657911987961607704225447901457553015639908663270832589666260372355055061393167615305872257633349246982603666813385759895287496596089031250553792863408742568858221891744218286842356571472857704937419470253576336766936238799714367469846725614453183259344728375787474308162559001757826041685326819553180277499233130781014331934883713724512719507867159187616714992074487765795131814355163133669282608882010006044820479662957630631393767785322719858741518475666271367771263396938808754634614759366434660162957186545602741100887420586215676498296539923765286359616692167553505528494313074550775159325257739324946663279197617044631191209758293390960393864137208685656296404402913167640750880620123032010235812971006913113433281942487760594442104972621527356249786901901893781092753142845829772786438617910817863018636543755864194044391960047221864675231884471410987765426541375016728660127509203749394597012041741623525013826850189929750048435841242568694540672469283001746368433838305157082142579060362517822970847313923707630678625218213941120131999393459284085019882924034087221637749761316572137495865789129234682558482754884442832778739544565786723264526763114096528476888176780116647503200199191864904649602729576730590634813170113110402000678611825642476321013300847025114244120410796209229150731498928851661513708818647859282079100847126922926089766151974164201197960201260352499985361027762026428547006021533479718133739468431736640525589345261298263947155782709363236218858830576057221056083731004021122392183175989348204288812289173851563536847200201736015815108221017523285804074080767371483804012892623533273485963195178752097960844279760920882103193308956942980291592796404190087936121336731298699425550527396172692608355618841786586254028751197465698294237689831799298726023820757914254478670901592887096201680266636739488506970089535600004169934263276901745066431023971778451722237484044204457618284545080889233099135073062071678642505711719805085664725912664611182210257439057582001446160831753785569404770124626213160019619435434351417999665851308929055667553378680104106963763377878026081257510873898506470153878621612387319144363206947895999578132592994925839191007432907984617853244329305854336759261607864906154468665102559928060477226645641013932182813497690945569143179143401494670784035497406399108460143941994055661365303099208593992379458232521698514569613549976127292850476251346854320789522776338599597816333867057666721710800584441118885948721780078131196091967480657345761626960956450002368164429668370253921389163994366241816321305775366804078070392565866229163800774882670846822171248538270636262060202761966194914281655549898235443122620901943249193630988257368893838555010913555421029792932020695231163561018638590607247399179740497118429448654097315030757505608494496743037191963830850794077866462352563516481049086141875538675376732956835160008317493002100485545027765257242459842684279955032486675021355531860133540500799790543413281318341093066045447011762363498884094484596761097853030979374748357069161698088919101526069596973372286498064254337012081168642198289972582276086896725852675697116013550955516252645846698507590088464520776513613557756762010675347640774327843230468698974852857780205617444397919116179416611190039167868619441038267655464307458502019678726313161375568371270418626087880140534278231464412492177997951470569271677813240799661053442611632253142449044303093070888424016900000315266399170738249795313251457327206193658784316845867140262764278680670110164379721252656044833121059688916562465118313955071218097809106440240816969010979036936389161255697274726780060594745306422192720426553451275735348942859882463743298743463093393871258547759613845078802858211882222666469092941285828695732800386925163369528735710652922913694962043578213160963443347792856146308265021295680042920261529765243486994958369303864834402116874667068616230172081439529216952802370093558630285997779106790940423930651536397043810269416352144728932238734127962991874884963143554713338371638980182888787356195122519439175886822977717951738237479485551582659448128668255602179630279996857563729402289319797606348320207015243034480961938424546517224913517485125359758921763377685284704298199263053562407901574502076678854296656404411156727660104690144401111034610662914087192342051235452533827761872958626989907842081575979782215277904819622585565222658446827834495498699555775353113228517658790731398253036525762892728426840152393794178997903161290218668017388705828277935473093316787273595203124434184722820065316975508161072698052334245457512281948628896397247656154422745413694736727071219782066688207157049200202711912168948436655338907026284020896601993900860856907244682084389335472719762751411525283394214290532298719094540065189752822607921850431106620053911671443297286015764416009836526824749077731171512142744408492185702128408448457189741311275759714390126294749402562705395927153220767576089180739070063930677928686812717455694095196826031911068919668466285403122166439500417351338373972415825737469078380271814427240626284325988007434809046650597840102021600214158562113817972897588109026564694370173656840464060771068672586453816494918901048467673090683677531397771275460767338359515530914099118263250525632782357813435220141895603813595711802973379399888561039869626781609096158285552586384831339915913919765912528929438041458307988641777027074014567209992786178450342816578697126613168708418689258274447420427692038376993403551287535766799630849370111270041142259018053368900149964671543808321035535979791614581056273852179265179360632445379169907708321317544775971408210271720673214081372547029924473165740169252194159761859004523627442193719576678315197767371785637593992970938915951055863758346245000945115191860472847966423718016957638649739168193839738536412142145906600340800227165015210431797133584652959530054956389392663085720926114289540303429026757249827488385818906881070634824572376872660719356158024665068580624322179350841692559977644244843864326180855780813917083549068438971910550930855912754548107553894619456129249769025519716318653460076113445333239603833920613336692108507569421978065595853610358296278225214369235923357031056230312385541749196780496093766782353778439720871825535750107656289122974260570711092569022478036523109767769851280791289247321568697313667704250337319928760723294823350419022013148462999798117959424610321985612328473818650114094946456460604287767438834274434696856932301578467149832253858288089997800388933004355078936264609229268143909355132794298431025299922277726987393275507839064828824487358699462672743348323434288713634575709293622024340555874618745427746045851316801641087574471186211194487850426477370494971761822597201957388144676494784230047903637736649625931086494548572698743199221992603753716290426647971316344515736741246083604184792394211463948937976938708179379481999099612812771975881217168945909229742003073470609027211041087676759724441554416327504650657376921245155562530236252180994539907363424541261081604610881699654082503560141951568561819835088596873521331693664847264893699107858483370688531597194754518913839922805080973491900074024906437739021881576903355260510741494419542752214137471919782657277288404233965093722678631835188424270987365993134760407086218795431744432451176384800503600793258065167313269603310374413446606615674679111542879252683672187444058535688514130782788550323148030180602760135398508383215910306467235272970655282363234278046709193506527702436935499462608561144181026176079290905747954498276220660031237988788339508953228053794361329400485049894087497877247678889168637838404458770248486880056656836769910018422682994335353324210261251178864000950707365297628835545415389194104024274099360767863233023506375607503070245999827090313325629538462207136600356281897953331177448611514525048456355085100931583340703448425759219462241092059331388862795997426984021032816384614920135770587459613786177946256036691624730784117915397759780378966006268830951633351543994911480835815280004740888288640391556406314822495442929534903088487528830944786289638493340409533168874946570786759567061121650546685595476988004133972555121141772102800456148041570349761124421962611982419971017894375539190889099694054014124573780946356441592552350562372416183789966365477656762626190635092536988711522659053859050121053455501929587603082754624034290042402143842252736589933220529759052782317305586761335067782923774631043465619955680852351901613254921098453805969051328504577955673344334521819430855305211240780923705380835576514548182683605199080828155117067617676537064650699279632696759659616757999493999758322681119355892232683561143051399736744595286143657732532219831199003815458584847752152086922862898241785472455383824451350445818934733432263920815195197687127119949979935843778806414701069028865274635596698118363522281739701707481920993603151843705393712844932377833087467730339579431717669643657348331093218273329078776676755056515941319732758268238590953965599323761401126410157489825224874703858199707483159352514231513327740011128478185724293096256478706735185642759705088754490425745503142825837002686813636372636085962524064218217215700332121470891460296397331965314766192061886106472051322188879369860036672097680141812613816454549774122921465325908943171275574270463936915606313430346010621474163617859967667899430892022134099013881663448717920986441345598809626806086900577012960270096043192308182617462037001917079528843315500816065775294523583954404788571333821507305920533200522870742824743624151327147088274112831780555115139368111101564663106807220636907456463001013215427656415367182490554684653067371805004862687125021912869466336821232332891224579228499718077047598972296381700630544704334620476466990477136136283379404033535817059449074623527225157662884532924345986319275499194345754850820175522816889073918463832963796784971461401878308084867912989570974187980279344338136044038529736714544393666066168533535328423503533264572543854410554723595038212835115601954367179464473904512315438779072577528882214779362057498559330930485466532126472207819131260023759594201690370441900881887739573776793587595927392686131525998479230791547106416384238054412217936964493360434022751218923780688501789792839150693505594213609389926074476542151710117276305069851163068876550645252033507934520966045497549410717618373540416706570125179019258044381976079671282432925160496869759773895283853614599817526205915249025885017130391468983563804451386461213441487132798819237688435913439555798684389063046773532610381822503047976637808543899355414938758957078536487368919595041380486538027091536265208453187041176095842408077978423133937945711754333128846339009403109953886447049466432029465806894849566128460896824575498854694947243473705399627121402621381462303196552331343129743708988785002302805085694788829549334129397387248583619528848066751583183093101700700457762723412764403758555985499519758611535393838122445764641917996750047294176122168937568953243768647481305987786706242522068611162157974123377686061960140605055343447197807786456563538927214644974647737317963320299643144406608778967057515469076044978962625162179639836494116710887640025794105506516572951143432164399273188165852846126802869050546875430871578916468358268561200462117168074478415159821205251631031725402775054633869347753047285699813145466721723858772427074928224716936207188137599867129605724227030739337285971083729226020519934629727901682029949143560317262429449894323700739494424002058358202985638193602646380627829028296445051946446182972605460207905877289906772092365447044144100201667246264327943214398231269422173117865865087730225554212769089908395784208819400238496706173293432640990886292426101182241639625726022077528478273972069801528449599527150653962412933970941693673581627631835943133128533010451411957901710132037257626131241654706223926060461283527824655238480449245258777535389001666134455777156646887005738329272609563554202284152430778940217675071902832302514443943665908584729860764917773264116279002978306937699825765152013077273634736616007953517948456146636045895619329998567034759284183706911968240649968361966731322237457417690867932079811054530544777380426692589697270442218497226301766476843513139161601151105618728442550494035903766445116080720100266582559601982921348989691953314268309303868961975064908562158021951173400149987966390031670523416990785904791860824637517501995020040097282336670452398355877658326207405494441148426487940583611612644145252044299890751524299544254301807473241178646709746012193833789875879347320468733600638420284995079356138647481131699625156470817565006149952206050024501104236883362054765770595289235890577356886711986811897308962013826881380951587915847803328384410281982484700628842953167380769861729210788559853907771056144039343779739816441061965535376220871238791422348588856350028346419236349617704687999129755984683628691845003785848123169207776712099320499280299469113973911528757360881440394113960030078001257582549179129295854894561266438056935116325311047610807958492281325867686015961389328773316226190426010735264371377818611723018645042350228162629054919703075818124332720653932843979426592672484000425412903389546057433279796793402137391236047100883892770572284730695785857301153686488013271518947557458610916112102574356393421266997084267801081755942426235054088926062727393552332128209212842118859797963686855494294526115257508221769752140967604950201952028353719351143157097905179199752464440733963696826121118793635614667430066482731580360592536343706827522330530638786263859259826784788015017414589506023660536083701410909687434607074632912818735172596682444505714496044816544724585848414944940421133173968737350512389706767363484403202026240891959938297391698895013998403691141715983504840618097054243813996667372845990384474515178764111322528138682549369206565348728097178213512622316358316027728377097130561668262562770020748923257814701607722235610279827805145592202176000644282229737798176603069338931463381822035273839609181149684165923215942410858097919004489702543353905126860473045787400314493554574425880518487118893307056346255909186386299042842483840449168599578881374884405550707368696714526382978644841606998218706522489523528367321949732710911965153831363646870785549134926297057022530600092409053212503125640619094151209540897945855455337021437510875746985563208595480433675036696217008642099675097053862531661067952668263871906145429268867708830098034000590856627732756970689092102795999101105543063844311804828821525253292629840275684750135992475673159104352401281773832132015400175549328575977751041970347561585939882574813816112035989130561160717357874380189617845626864625235390205613095316973368999690202545206622857852215418100213051920938602478682109542335496298905518368155440494212186129999022367728758208942200298469021129083487841775180138887576104758460018914014942513962096790258067622137887548321265190512356066987771681316299772807230744791213744513269488150903142200317328125044406488163712509448301715527166997892500966118394114566592051493504822995556987883115518244604510849515121960261240567338366819921514636681508224983867091902971874550016469106676555684394390200908070987493169407162313105436754723400324540554146031769574839112651402466026396530574589595334265469259331436481392670243014109275546679176270769518926232079727890330424182400585160841973061509974791814633862181896076918529174195194151369038462939147577489159818519700736421033268085886126006545956501765735833453164331336387748988183925988174497268400873691180681881267939436801226935156732596264628584881283915197398874791696101693775470529177839954828317288594916096536932027316526216009022159873454336586687952881784236643825746469091698072969097327007398514731146459853571153630559018459131224338018328934113562071481878464284992795784568290088316165829003889035123243527229486560560070438506375718481686660570643760986023786700973725392385074344736488339950031131690203189973022390960195711054041821961731975606919251348956972397269946091187755685789289978484458687062478151762833161175650731168894588842412115455336054750000740197276467039854978773657341777617723859344387344226334169162127964594350094678571877387154602248683151120556158823688173017460661640513852269801288245232635178685464224362124932406762488267404165440730307466160385224837874299985067282379710912216930746656267035944570656844038106026978535908190449353059085259246364599986255525370920214080531604978274637664814271531302963875617939828635186612596855486963035384654746636387091341374579172191618361633171065686633813191065907926045029728335233190089874299915457107933189185819821863216942502595301024869046271024789657708317743077755109006893231891091116222063838001954213731182917364146346573355779527729501120326635012730788954581092858081886108738438340254829146067669278487251831335080874834108628195521669838013176225721140284109737060409583650909469623477413406156433012019595207716052761804220479568987958278045255477184937444288456312217997968722651786755382532728605533986981923764673691094386634992699400565473800182875817532879299733580375026243155642501704789314252837093948817863537123699804286694567595141245776122159290266464634564275315461668126035793854231294849111354377858844404289293009403571706320287805706697847782930288753488504816645411705384197231406692199162848345083431536480915457368366460095803207378191290741326918493720642173886048072116963421142688617640863432308542846758082020851964748388430057589600928053617811905704272530324774411658009768418096610522890915947320003015308866418917938640800046853674565693522279750473066968000525193228866463603949522462636566925155224296281357045760006925289546661273327191943154166024128526908019577824681242365653690746762602652902420175410041488597583993310459600941331597679312742037702485940719069465943505550638188074959600299341415148478692124714410583011245822605556551741176747904539713175650131751932587457895712202373310256436035955370376602314810461225161677848607497154384839223890069613328338109363067769254822602267373864005060278137123074973512899897269090540386067542869565713624281236050219345018484264557392371950707268674672215323778532338480639454353083132420501922980159867977489122548759466595206969086126076077449228691549695069063138525601450794414451383841815694159363864311318886407720391412658708430927216059660727605266561092285757311911454683863609826739555788712182355072683327892333811338205238064000114652727353081121381033160714278855765531341068033117679795496253195782204569563169292567124035689609128150487882477274542035609509927701272019328397179757369218680792317840413865851333986929195900533683552884640059201174609177998688761374402503427925246471834650187627927440939067794228302752320656629146842339061187022971532730360238404431737344192452281011497993724127733518183752652471889385414618087548554130255001098899937409436943758676630819379946277797328217176767256059069267952483575582361444201221225158207687767085670972568733721450389145929992583642542860067586528193158268593328777730395558269381204040180120136635885145936406106792904765260250099848627449789747706954236290661510728952180636383024989162847198047013700570395665992135425299503233132670292375321475708188338586408045014748023548145771762807948122807002116530416038034562835940776683000288765488357510513429066702011219413662901041120525805258862237144780257755040883624423147636811669023119507982630071032349600975380859694609059056397857463825537819294725336207882598421174557430878623998856155674710587687507944348960322397149571033767075413168630114750177064055916659513369873045411885447444354361448885605075516258601742238057510270907721426979881362527088702086280181499864899253588401646360443258806699585883620170710053357970785787183320108870749248253222419646268577534484662994516087744763658477730560132097105135465633009709424313058799336577326107766454383814910884368556882665525548359028558684913706939552103617525686473273658848592527227069778876234574756794415923473207037840225961770784924322469468025414276774321698316016859869091691942115512670182107665059568322982409055426672445105438143339120923216104292748642140555733512766582358463665644158272126445484776922386835774047175451023666241917347565939543297373258226650364705970450451009817069488907313822286038167956224569003365141203068730399443313771728474877339330730885528473207969174202840842798360041521209356222952190629562212112693913360282881327798848676306126173435527324814838671036387961492230241747982706508784413991783603753569942716878080045399602031559007426262510391077003320859527043269542330265731512504566339176308316006783655563224011405800222989560374180142616653449917322958800619610139421470716777627960022889301290125073420191616388137563468409062905454864663243620131871038862266329235102089874236035829087424556328056941701862355241274979036560134485437068243765244700099069866526349349562118402484032000376169933556571733187931770960556346372603292697137183542037336651588299439269655801110775282365850652934305808318090638955061316886242890042340320572722740809626175551897338183158772676600313325256536272439011104058137920782448857427835468316344303710073265968459469806431409420177242211443489157569736240999711140045210996586408874863320541717552852730018224448737800141511930528481598995804752244312026398641346211776927379986159842085959672662770552474997155658278950908654835502746869974930105003787805914071268373561460999588284606644076462471254224655913758829716337171365711370374624072871749395194080805543670549602691245709014302136694976539068210530397484404480226251764168799099974547181512021830735155465844839371497667318711139904519203297849983639299265245431758304216961750861451521610491761131472596839272913896339294649229540440402046785021959495998063126845547718666867214166228906279303365305684272426375181456695390580254518733049324894429626368766249916261705569394932301260867910859396887768476140330649452914826966685139018967982346125137897252848268846776721047627383148355776278590399918708031323881406519704354780105769926551341763071639092441076529941398019154790359069191759508568207205735018777949374561867738926583675895771188021549238688220606894950139152139571660773603053758682064425812939666563822483095126745404885039285020433555193733500815723037064420929862169184989123214626899754291567937019027442476084308432861800752042699259992517654863186720717628948701436575639555910847997652548787292578513624325165287270604983998586305339277391707479553727045372124947928698144250457534103380093414570346909137689923233572359678250358861360975375870238259451580443124896089635997448743315401829700756895457828721012903534745258643673688689441657701019834998007432294717702989476935680033946452407576105919252537831766206646126946623905637548476504310508750329882623445674173072201715495792739504288246661236439753990530941866391186179945100520928017853753426137285303251976763537966710321382057732744654077869108050233045349576963882990556252559924991272555187090776690575405638595490603493423022472061460572631051767907899303144598243710758440791436255396525346937018132115290644383518566296676913384187023005916722971233684353918989104154348453581006545102717918658905072850690359688571965352679368772694878674687696384591654233999695617297507893235319923304712299716632416636819275082231711010572139004915658991046797767694930442594677374462036610029042569860216124580177247880891536999445717742592428171951246379251633885439470396467562047734583725670135331794128466511574597371146094396720387230069748994664794264759375165002915166405994585993345347102025129851797470832616509739738032459919661514019251214408052807261540139603707040578225529623266752318690917828583812642501475612149221613920577700158220060799504203209355885277170519625707511960178479011246916887848704070905643128192567714972118690492000019082727427572414298908198177507234769574953509709141624336974954110513029476681417298235598352422698616141501424241069126576423233427957004348916656260388622622801144077817103601440284956729156807807125532572872082916942258996141109521728086834682740798079699281980504307932297027148333559396171408165875750406265750564942906045044888017786912751757948877955191556280234014024344076760073447053742773534552313435909831269934787720398486862107975746738117977000030775092393746639689547487103543470615217425602979780269024001785562686423762061208982217367478191287224064410826607462695653365584457682426369535350267377176222244665067462327062817502915662066517421268147318678547831688887625223195576648883897730430346125597538247431715571051355614788476465774545003195127975145215954925754360295134905609223462140993246477538488282729428332056432146177982734734233596790110115555121754816101244591751313458946903639125883557448389171875334445466763199779236709812030539170469787197950299903137948395284830473604242564952954885123582127919900086158879416537558387733666217862318438108654849715472050962126982549526668978874018469052978489251453768648174867385410831076175094691366978970632895610285157298029225028735425662207134566525225508346778978106978191613603019852409767056552025981902883254782290114022371770021228252842141547883180607105619713058862980061065268928059797713754221885942851129138247107614334683413992490955002654667017164543317492492028307162367382356673386083772204099491779595345492248153156599938248165663005472361503726786054529776399849996111459406115930969242361696301980132763328335187491169692166554140546400198621469783046750837279524493528592644494195151601911862473434958870152269622908189187950421170522376404137517511252454364381803917590161445677305037249023680431036980868030486526523024040070223705559580270019544782600884928358466136004620099136607820515799455759794577740590122566442693459003471529079323237788161269540028080303786733335684654515665413170374164802343591679180427704989214644612524046475883493334075665427002257363184520520893620504452754278662477392481489300763208430503895189749916623512926288756156364587302937058862397553810579624991524227650042127192053091178991282287413490943269220994392196586757318879758324183140837527677248981263225695888496596750222507704384280500738638372296469251605508690722940152501161248060806155518848488295433889269239893304806152167044706036236782886565514374383362038925500626528143220720535097385280279525065266981718172694667891835107885163645059777861951301101934018586607999747335598693990511033892469123286619531121093343316653717675746762596973187528350190832123120317436192127720749910610625305287596144060849982378103162445567912775532166080699944037493638089959999205440587089353310551983343409054298013442959282974011669016116731020352261975165615686164199409534081797255420768703447811482923412574021318489891971717083512970180846834340584693807044154571858642589207130344012826712512536168451283366125714862159609248584427396436839791221684034835797582080479721753239859650846470524706156820198968363577568385197241512831828279775497279585234049404007048085432268435181477608355186203413083570266339833073666560785195313140361825599646470918921110039931468585755093041861583799441707481685198809850156652184804019098800032138730335390047763807262703161329625593539489354268319933925695021168766778060661217590165598720958551881025216040661923775439472977278870740472007135865121150089702389421938427811795720862250532750990734885409744452933320215405449703658972702410494636974358550353314134299383124692565712447578756256112661525243197041691317820519019939247070667683471876383775514808607856114559740399779864071143550066619373390778790999189559174118456646528236082404543187161702245209625001829767498995464525046026669490841080574695238341540628483130287203415160754934701683413178627639197306084763328661868120860636155205155581179148404504201318247597826413518135745294415445612260674331143553164197818521428543397528368434687874394763349358092345979369750920703023227829257714711141964449447153694349442996807005650915227733376113193268113375042981633326696245946760438646582814937917935285158217572995884561272537041322164575989725310661988119130239097638067804431789148541607446223270881166232342141833694361548268322440048232420032130087239015797547948581096250239595208481887608196475108491454583068018523495279693543949590512536974562497829297994742082035874369727697390255054042134375256798948909267022315273912069918194711988328769024899115875079006768509164220812378754187540209188945738341618886930394920423461366613205731150013973211826738085903438595662470719151140490654229265152329368906645489502517721951567433942607704760016365629166122710631808716819076733909452082104490709544015326149812232736847762805780410322326893533103208394383500771181987167118697411649229964463151090872334468289841323822128466954925488230051930177203145120183080713615280032848753592231462642387668710516444429074698865652026015520371155213574402908732529919975633801656010610349083908443858152742606570592984097347639988996801664299609538494263844327283537169775296926433661553116906633257748955395223257556139058831597282120521726914663389457415524518221889024709581558274028964009341213636521984771944039481014830295935571523952812889882216760526080856656830424679292465013563442765028252855742830056399641683850403135630441552002248647482943316817182752650393495214643646617631003661972579070148033932482223301594464821102915439619322292233100291676417405628468807658878181362581177407993641624050905761597332207152296760890964485630709425409882320375405139916736843260034424286785791626592807745719791838655284010695413143488403562885740467333830862114299523689527889148382431181947861156995905710453195736722693808341578649169098306268688334586095851834126755962572311499783405575353855859389590180267465890999499571802001646499055159513653099814493493805245727274937895021336754055780995834674436517412604272620062383644063542772354183845349577553943108174892750651891207354572837067211186781295499317156020651552242119000335245321843230817618746268172575131760527416789623595678040619262693755550257298658952704294389218625328586466988427597678109819743932729783450404608761958959087054695536178946419695959990180550806680905364409999299191407731912760147194396387311362420482738799004009772112068935085164580959856064392858057945484113346930618055732221470721312001642409274431649346611170996386647442210019325763537412377960315248985779411270665268653175783245213689466466001943779921705806065247865831980995918327964547673551792131131916684668863682836425360362876809098717384346101376497085837934831062236106676185123099148071625128904104778477337778654241848249648362343842692670010114451157375855502960450977114147629472022878097537605208943064685529811073230490221780542390987059237208779487257811793390527462401827342415505093089272067495446521441419417296259708480484352560170881390948353843129001233999661706978935623494511358806454485101158794703281994933529611797400533770718172757009814243479094195042925630454510501278547191206622702554558920535878282843074967277688172142801443231423661326296238348834195834025733097466616220307445491529932344048217546365232414184216390195902014669697107599291567552446238247262976189425023421281797417318019671459436834958354583235121552319612869495393155667792585995175453055118308457802963413762621847524562695103655740691191316081573876875627215742573656793669517639357358367684262050577701021407329285842660721062950455881170454973573500233814626756085161349715796178013072443720253877473397543903746344026610452357947573104939184058108648544020121701400507727124625738798333007266108845300684367990841323593800811378883440965807807797012196352765178038972460142310409967013627587073172830363087023048400244306629861839630551311875324824807661240520881530915449075071339107149636987433519440588863847193514965445391448226714491728729194020059336096784959649967919714470292451027214884928289176119223164733955074923403159915126881047095837008016006675045375430886147472420921177379736856383754153498738134386182149925875252252249736392250527413639624155617759494054369039229235092378106900572829224479453548382304594641056000918914091858240615445900801942009890386270727372038565630845807723064526025228777670175526524124313921978409042403960394407467616077132488006207571269866737617305457754035874467666236725344659532158373301318803646006091866543608906403529456928633678873145325267413824296430331568833661124249662714652370530379217428483904288155661755946192939716766643379543042217001134022686284670377702389003884057058587433492585612625153937616528860487713186866639532098853468121863513133737206171488312678773885424020282227079528464551666167573059626891945255491484881033983907462739413578214140766447416763792343213333613808086985231124280434277866204641198633136645297997862201131608028332682801311377242740588403124444089025011839368228107357936704237306095110029913980266877985417925899013335403088560523737746783364642461773265395501820390660297758275901484969102262115685288980833032787324475348751764967402870335454502461720379166130843767264985316347675603521345426114315002333862803664391197030662519841321229304720784886558528487468805087616818592088471845781190297122538047040864550397654566793422078690854532876414650394934579422090354313310380305289608829864758394786097196730396196641979280404695663175015196752981233480045882351832802101998313825826894707628071739037170202311536272716460554520362434329215005212452151230923752871095337654589808902585923638708109530594198698313846961818647550724364342672841785245955815905806101783805171571900444745644324337669129393864139996286383153740067661258958266618048164783397459761027742494778791438426466065225365830226075380376007622253237381112322236504333502759955133782788201090529743775899476019760667841327351772897874651249311543712190976172544247437903628294983871349768953199559073307562383506248717426896547403317848516101275208830637460989396580444986129611495793846434887911123834414264086063264582533198313811802144403108583068053635933725341803941803640802033451529063564840309674692641807824270924130514990210275562342129292243822197665924351257321671943984346646442470741061505966704092092898581146500368619351163876616220710191175647191996067531957142367169997807635987239414196996484988546686214093023290380704806180311103625214523209000233363126724892131609650602386323241903028613472471347154399955091313227197542123191265286465263339175309704648170270333167684277775866778813871313952287235307520657748288804177350090437616812836077762537259781910749391167060246338881856981474505302430742552604019428848365463856319609820470852543570017789131230140727163021780002174406884001477210052742064142098774850677844820807061855037378196816122655762332295564434097111887797451843905783876370874023129409825610588492248699616121185019725747051511669842595956916994698026736165444371404304318445393069512348437306299746929585867211821003562116557956883116979207126042354548271789548320586755619273147369722424304689844723797806328502423137374672290345999818041932859191584432324676231921101366932977072995567527223054729370107934210057024093448095471371880917477566402440996887333862875939450274733297109983815946570560515182903031944390802783994787600992877679410794875826655175115537599155468435122106225996548750942322661648326121272311697762129150262228460198250950926170772709241143002684999503472292961249142127584846147287390985009160910937958796052007096415710677392755785967188646443798936743118341291835034497315199288429690725689328790946023203764837761515423934227445491578224349598473767593192040476988508192376275597504270391398854979931328350089768640569202052392190862081597489473603910283694924574325913944555756826350446449413831800609766608590380667244472475395365202142973933954048229723100613397367341994704100514183068716103522809782246924682013807975117620155566462195860787367594199444971445748075722109254793728865830399894155944706010781314419521301696806631551693821015140239645319934141632724014634984063780951151799982634741146616379368579138679149849712802171432825324781132707171255340829406586920662036844675033649995089170680447253920272745199617148249945923756987226529274732996854155575607519764875916359820840814665510664479317940259424246442042143430762679179986658325275748529620617120698828206052283107634019428609902940624992540950160071809276764630345708868689577304352375194818330091941087854072423915992135449541179812513758428146480304746634900468350400065752816247671757539163377151335005692427656553816758659393128863829415658658577222060341183872135965394145432425932777013634581216107223322313910533971874739215794292502990248783530721617527497673184449755106981437770139287457420620868842240242460644734388963952758836409816200076099266582611778145564644832561995429743042146216610564020382983624712358421540678633269827862812336791972890674670639633469705435230169425623684579311731991838168564549905443424191360032122003675693474209339830307554832228182901441776858940258831122743305629630961868590153676319856735348100058571223565894084276292615524989169082674241500928114864713452849213545855655447985317337421005767574861528221445165844953564722448659320894247207093806502549245002435698259147587761903216719886495272984377340886557620029659257120408507827138715010790577487924126773431869893311212615601714333551532070766689619423392284012681057744292177027430807306908518899506188550237011851109202991328861754135053665773888248678077521197652583733392394299091379233345259331103804190757770719676449468071068061733433684627334182020059191429288247726031184484514019518943933934016109117709160611009812039280675946492624675958751425589126781648140112920314557596355585272931430631775054592718571638394014301594258081226321882671367371368640584378081125345375737478238963049620004859662790138093258029260417935579883461675156654924844275455151422104441126172810372281161989640162994887163910758175413899937903111526788582619882637078061877857061543274669299989371147143223121310958177488550438148791074607946207410154391856748087589746694284848125220073832532965358676392029535347638162673313541917238844350744847619946217731469552662703970761398069405636132130800872794812443636072142840479875873648525393777271192217753915919006435236814579976719576360618507351525364044345861051440581589672385125879999181464601905922037220417825137790880300150514762010491930757709801956504295708461212715113947414204131208968198922726531355391489882255388740018939987664775405098420493164222585867023690468937192673897087871649160290778977741498858325196872537228339226218455666263381101429292309315597061936647427802241981564364350381649392997584118777812907856040155711314328620191776920026755274435438821462783920198080975491152156170745364100119041138978193617579433855905154601346547837397258234589215479596414719035046656086956774069562620652995929973774986189225785862696880956523612234541355211983735654383532975054364822315088390166671598437222623785720754234066250973588609935063777236178651764657232387408703660818875169933861206316712708745385695846305985569842916165776284875094233387871670961867806825712956851473110898500633544299447359148552122246287421291739326134994105668500986014898706506965183821420495879635958202180887682411929020376355099204742150358432479995042824293293414113797775374768950324759867576213732519534775733649826946296799872003692128670563100089046021396671838158019597990459844389903876880283852567229805604053443361238465867494685481159267926945429295339503530865284316034048967049268067651230412364063098122000003045703274385230910873429381341543742370045096754722652587824054710885229396550249856010212503109032941062956774290223941409518332624697755815260982931719307074805377550337168191395440327980816047726852041805939224869485773523010800176341087954402434810788916176157745531347164729686121062728632495045468995374818414206623679042655370760877194287080312918816902458635910598741984681029625563413756729108708497994486768041083516084827335947487952525245031202517306478943364432699453508385999746137480371140952760494973352214947140879583920720965179300907177223088952841648860711044246565603525597509324790835011169569718212128321183696690276810589465362544837427532388101208905837172119863691568357426015988499352824509306198332237697221419368691925818722287968681037201706757424553632288051669362377460830527511198670646149271902159388550814097061457396696917888028928837950470142173411794873975499368808663810720139606960865364482261685440595183064710455328060681114598808260102061266277328810802730428064323380262118266400256764181579585405663169993347584437569575901910771845992424826704095189418063545116450847678445129725126502219309495243884063379309599256363470468336169585245064067986634316415009427704081669872654555157770497035955780321907739508701137424403148786120771917483750029999177267095577922472044029490927395203307862542171523790630410374904208776740932327274772187770318026418924725009618119385693613224161098774924648077331160419251405930888993893344918227870008967418591505249735721999237485468028224772368291172522908147926746171667991843911457346207088078452331421911318570579497217449243631516303373200585412408664944234112016151269152653691920587021799827258234457547309381052995450069405480364113045350941623003535907372393602490417973362329044807706080114873256136568910144095738480604447427290048640411105476255732558596510263000368226288491750673941118867441408548476918285802070466056851093613045545507203265039951729396911524033026536375870506668391263199120898933421015857167490028016178067674616222407009172802080455709271744764328517826623602624481803745152867386673311320094418384636191577686028015798632777666855504254766212347598427116385621114278639108523277399825543108667609651653077835462135363571845253202191306421165856209301083739429156929648552337061834677620597849696685614224734871192787026974747490848445645039061292827978166483895795903815222073151887109720230133277938497396949836965882635574311718788312684146714079745656854443153913452948217765925021647721480162682408314722310751097622209434605295110181474996425933728346415753704697176385736783133371773139957803393328201285023426092403911973074355740046215108545814457557238539712110819307677691017812688874078293700347980449399972251663052120622961474356744355781076941539833038134241631201877217967994081650726004525724181331062489814706769879518720777862720164554891409362471407199721595246875053227964737475110215196462021970893548485400621715374452058483352672142605293030215311605610340672459072955379748584185991828007444445500313084503172503000177479195957832528196548141556581761798451890887856070415608503001931868231832392033943272695686874435637301822814439907029221187682390724335589435886459222073925917996635457472512379817427652849910015354643352349732508061527527737254468937689605640153020126296853515447608529466179689411827428296311009184398234367365549069954811576947555878425604830873243376790504156364965432225991244961017899130567575357434947193310800251066642184440101235311256898197954754377618428673180737360090029392426451621375267784969858090160044266731341222091231445561795152657201567826929103908514839061718109243598905594676768539620812630015925065868167145572974194837918813830448913255232809414029993549324943203724170627966507335601636452875176897267808228331044561032354663124047782359657333330398110875849496050067627450307200259072945123628913296782600572526513188900897715005139687918369786855690976401164803021654148221765081397526935809129996288404276756368125484258437051553871610390211098539230746571191725004608700242093304215546443361671107478579216038677828333949869537860690788953790006721877203628168961098588178753256754508616697980329219440165013993307654253447065175081051680092542215842301591434910052994976500451520120642958823889424480283734699130031760444723751662168937040098147751517569111139404330060012969222093026974695555093722287368155789240444405258326168933945425670360271523196530780770124825035789839658432350898421451435018297473984470578041193925715965485835982143870878725184424165662106155047650787529155892578167219370729481424934516819079721655950440029708559158158676572880189026569790482581135934855154636164509724087644816597093564693730483222857415043409964207669779672147054568758897781395473463998777128759507364522914756648904433862101967051437363098723148374135660866793683597892726901081219328749416522474003964461812877139474428112292451056102166769964862322809854736989649393401403488717065916079442338927719083645326249081906038083808173648180474583694500026119504728305856045894037216395000040783167445310464272446210972700732321559339235478984678116813511477652072690303598179423571791359552546171311119568795553317206075538053469297916535201455438958207778598113245479993890966829898874736131549541193273446063168086378846721037116781381432851934051537913611704712217760052101430349076035188737575455236360295066916040342427057986917402722153289314006674953556874877235820376648167287321864935665894643612379557633340029528513671844187505204643541356911835064971578222250703740717887104102883886457544763655873596280399014178306325160464733441152306936219923489574707078157237450681677044523541836619902159734804448899420887819302673538755787655796020978559154947674950536143687259573415154770019067877443053254409960710312802823195316640616901313128956331225352999746542361305593085398446377799522593200429978727311654409354930319404637780879210048847887395645778268632549318932081103975421686157499299180876848197602197576034983306568510477288993378410228209183530231613531606899507258060703539773477182102228890126806753581517938746946131205464248727783462042843655344352063216824243783198126759494342911502942207585052514283730496020718321604277796035799539430292467092956738703072721124812341617523728955092501255567863210456877592639213786362233322420307777076749894616200858971724394122608827185186574926613676706350150545969267220939059041861440445549861109005263247334043502194182219747619611756749068855038208506295710096874218831479278540411737957382746305324668335870435275670875141999761598859442910628894253997641685234069448471628063567554188814477381289283212734953720559046485897338043964571341601691865138399769450343186860851533512686080172540030659876465244507949591575786029824472891527107589597821288641549027456698084415996333445899249534341904870075767373782902279616367013393538498507818285828447872873835607854918437445602964706401334835361778787870061081337122096919300244056693442497759042600417396005734072779426183243221315458278886667633387423478773653906577848549277599969302494445909177707112139366656897384648486328740662460432011258724177332629950694330295178199432829307336283272329988293181115803351025321216619739498824335914942464935888421665881247626529725181776152491402015890245525795343771556115197591977388762186339325122243464784643206076797172182238363236182124041414989033679592962507564855234674251733872745779806595426653655609492747712315183124436395361326896681977506245213308770799748685201896552715874999097164671093763945335256718736058631574907091110490375149476404416828429049181322099267025832805153575740019968169155888095955055530544132654685262556612371844824875019793842436219330234290515291079372393899442862459266808459799199488716789746172338750941351307747350331121292214693735611350936251950729163190350111792218498707851081230241598620164846415346148276312543860584799740436488472202996351938511793602445246213767502675571856898564269515688674162875410754535605781909974350978102659762742711370187730902194322994427840611226590087082957148823216638894580027852989059324029916189332892332283223786822440062122617245659397108821437719803371761933396581451829137138931752652284097979636971751417963481069427224750521066279601956968640565657329095707111180418616820020431936153739847523560452167238758225212543442316095195374422852984125151999430321267688159182226236271471312631386654178451393330921877267657396691490131240922395484871776901433478053274239772022493883518902833113499517191391641121211683641871473927142591887411367367312165725697550132284588239585116804476369860242480559439618248546956244002554238490189832669985333106927638104020807082096146263130528026677370904178899826652438666798604535387318912432332904389805833516704331974482165508037256525579539703240973165223630469014818428974450400331245149753927135620718678757247365218452827780985444995575068042746511553219176415759578775181704093736308040585057538186747597154818900789290455388352408762975573760960308901588435486025477613068426055326373926071953762183147321571711908284696545416227025035284876545546984131516918122973546670054710421757817577794195121302780431812117136991206183628311635401597151034060361576812545781779544449352805129549505358281254934398652987758120722717324824779894862607451947799732419118942746170838229315954413178264357833680917542404997163083576274026528412076170973224315094656262509724093895979427765404739854218248350551621847946683347448688475740855850822084030518637769858820042640684493586496038246670404644729717138391404951303515834493540733170812048371862893125629850481370206597030542851034046390350085886185839899637162901240503788804330643741725787832463021938604556299776239756786449602198496245789440682820065875784072960415827444045211025078459355012582530895908185427342374731898281554090766726688374653552362459408089146004407836330426082858036417483905324151367127497045836518220832018409041965493224657598818362210021291809927980206586740284801484529743422959999661312068503688365937763109761438740735022127414347197165556778080674994105944652664026168219600481206528676630046801391903457213594304994711340707506875418798615794122399886304069128618865637748710730685767692306207083723959334381143750606540136412393468501821136917293448360549750653714344807901765888947807569154991193174714748377963886087161150984906616753785843591119716746180747351404196408650456966943059034428736496018677540241897439282398675843743080255746813292594200090390378911412829178544798459322891506307349829952530722561514185424032591054870408275755523531663574421537103201102114917278789966064746786012698546582736641055010416089338580984130597636508125121134816385544058498493492799126498637338849923026857147550345524127255388464323915958177664889768185535233093819509721569792944947749820980367197455685217806571824490320355776268165331550185288539963161017228528676359592668899811353506591973635587870239650591911550112923769371917183750067051579452098579422068923847990389638029372161749838344111010222195817532358437580293345371425052753919431159137400383866603172482431709783181862447068461674277748791321492613852146369638021604718612521351306110157027217735116936918147324871184696467638015467922200158941707277315591165659269243861908832312344624658369374817947372943598025068529170226685654333144275653535509841121291099472430911917883089679777301444132075575237708655317299035715645317568809157139960904643278209038971803880786897402034709908721654326463925771110423685413327232934074142654995131175414748752708822373536204010538456960631824559962066015516098676757806721439287854950263261691186678942835917201183404280285130291698301359272457406581296726331110704139173205787880229606972371154790053271607904148123630459732008911048873170514917247578687078971270157984097668139206710669386222872052424629457182596720951844532435762779330155230745441790428632951963767150389406979611563970378217401658121527291025683308643221488474788470028242421623062086415029995130001256150912555650157669404143276324500455192756570049711417374300933355466365901932620099524106449131446420911704430216658720287517362789309360594569029458247604340795454774299512911932397922051429001799425444638923073599825005297570593104782979974009694337860661689589858348028565040246553178070454356180702967179652319862965383774881539405140805556174848520364805491967748937569503243033550292598244748057522762095873029054043024306329422523036847662374313125682920595574964310027891704616258922770682256174200689102259786824027358325338492307467936388243504457087397791477473228694672484290111313610034076119306191926836553780521116294842630414455061194518658848278269091556244905316786577224097525272168642347925340987105399362716143209314600515722823001258915447289133263514911900895579118493204774431558455051564331899620878676407547430788912732081502982898384344110632341304465252702209625514812224849861261645360475315309337730110965903968474249549029312418548490077333500187903344798729370122657053465695853138632892295630326473048946657999115615425123140811150132275873998516374384487090528362728416704819723528465764150390237383261155967998893283950850866834978365571255366064164495525089094097801480134131363317017295292361125288795312087643354242605045901658578545679490938092402718729242175780915157436038900009044748762869804029294404849590548966047128189509182497099470106729776489679808629418105602060501614653326568775158138518003496116531176438187395218054997178409572014076782246558870525048311545119214116800137429578937289540852340703012987544598625216659032479298562549327481230470504840912609979069010491828675718632301972960786415417191918335749488527442827849681886646354309483751423961576657142430483332026344845392032387110548054916727761194102119343051734210739844034647641863681863683262147294226091135846468597686190025954902557524650237228283062441795524454067586973624270472324101331438621197317238718760422415467285663368682799388290755748115141941663144012748008829236865043947905758760066167583838328209117138012791706498705126906666440593973260019286532877775095730058589998663025236657311498095990204383166051142233878520708935446717428209444431575460053785303206482415312771325756655737923939135474127613842385792605709984926513443392672095783895466652448483224992971077635466986480353917074224278777419722383749062910439832690400740405970946887357950732606549464733649208209408845488005446853291882275356330808066277022117618229601472908162911237854600973518207493257835680180745583329382395714517246386428312412187090578017755284201559946004043185529018219880970119301271483291111479718193660501359043065321494092379095043065058952574662482633096015829109219413950436126216639807331009082482150656741970821243055483331474678629848842928788120306995463895011499561446224302420960154858235436519301940924152714302021112231768739757988955006560454871102211210781745724072609468256723703985765583180435771397487691148229017032463752131244987038031389490118252683587969979922205012067347868621141745002766599157075689620754949903177888841334024089941024645787866967792146474019983119163009602277053506945914012321807585211810365951876549427980811669704395724256635584728208223951708578131199318614241112790460931160539415396603287274061043522624022057749654168491022722054922089828701405449301191813614721073199728898429017792358147281196312527560088812348594585454197936488341502995266347087240248435823720938872799169085702927543101305032624278955155749857773621777444924289123114663278503320447775287974693619148546522005658408099379977223081660508538759042757683824161717557164570901895468953983476595965694057201333417167131689471851968506936317071624059657007099442392597976746534350408228276261946301157561012769530131492200558160658875443717617151946690121682073968849745179375397273962459788305337111781989275218097249258418436183660452576197541902380454104185103590348348949943488189256034493894667399960378636441088783699010475986421133400703022000950046089675097676308687979405489490849903441661342988271456632041976329233219668385078202056944130444806225330251568675341749838297875503568001887018738129612360472834740583376894663355723026230848429273225869301577071324104071213549440556574703647591606133656368267510141492599800204085220442537498825216504469753335465126125960716128186602353166671202133501639011307931860006683005002830096644285114930488941403001565718460366862566744845025084325994793727991008131472755952829702034576942501477588397562150625768702352478911620952263099406021416655543692028688845788907761916385738918825637237153907123164896744271053400650188456673977311882138100062071641283043148366556250769860580645049468161027384038698388103520693805605207231157817985853744811636096500327130158780381514960299283561200363025269157975176666302714475532342421816382690709820685020758067144178606873061934536640320183560621690641909855092548957371522053898139932633395020620923456937581518000972511794370836694141250708693294792851601272111679047861716099326439009230953997028498710064796515001814689112085380356755877041094200015634466461930289939569549642548516751458105583353113706468143525942204004372444130874954798269373041792673904554729863269414861135614037590034575577337157790489232897712944035019392290367739002150828013296569104311309664647323083697778497596135569550877523513825444532640976385647072147293682333745824467754446809197029783822434453963217662155205900562273635084870513213496886178239478513413324195869257903204257361717507822150638397633734544054331403474288222789385753649171511844546781397028227466478859614254938222241288091271192915457122579025967843161342082844386958553506456207969099569937126998955758106188889994657342846796573961229683850367378029005461570428412776243111864820835471484281385629840358710092267473590109109231751031102243401043508117678003888214550375296801040671867523733982420053732524052495318592243488750834939114988700505648824425639657884031852638932885501804364085576578474469304293498486533501583486211507222429715239269985108371254013671527573487465484472642425193639861443377642522004269928927022507726541589292353305524832453888737102775297212470070681275747786098872879447179992031261926080952274155034774913767428810671972544847672350063442476784870886944007748047806891512976714634781541741620799381070968286621220936430463416520471151677791593531132543095600082091545730699468325673118854581528142152871461217096554767572883142462362846270575860850560630404230140480487523815067263996341751001449262131750081528159697802749111705752130382998967155869600226543024845128712601213474376883157599161172013712144346684883875571559245460963608792835334425530849294189773443957433499691537308778721201430197452136875071147326763121121809437824534481171441136918803689927486035318043976798590388825244396404020303648642922686809018889857208344513126085212488468465817533487295302773208242975996269238879405987706964018004467289352282820789109443189450548325025476454248943583452694787683081106684427856118983616036029823518069405176122297194930304213367084759886602580853693864241834036509845034770652214743147437363212122104150247982397934562461385522910682077880355192679120771648751471995280889655794995021287430923060732481946433996937731035628480950034588107665744348078370295983789199925080048283859350972839489242458139212074137374579482343984440832585068321067411964071468585122144592641279811599546629615106470734361519598979592393016339247435364041797084775996525069070451527321304970364891593625872260516717388766995102845169553853432727372224119159063632393721083844374085122102026969025254572851053449654820078949768410420982241119975755489246811849156440537066588613128952116542169962541449112303356791885858211792570325656727899822551701697846821134728384774972420295369749899112952222324040252945949128483983459771721804709398496968483125049075294349752690446395481397717849935872167686039379035951954532511891169105540705084294787454075854490590721719659008007111877672219933413817392746842449767466459539193183814043055595024942831814026296882530859280988263725289306001341722426098724776559106784298058754864758336485549517799201857116118972734721845587320384768693935750007856506982526427036597234907795569304420522330476061121789803558077408419130488558690737138021159829908021525710995959321421695861898277883992301860079826727966515767694707707531023380970271983229600678891466572450095847236677397336862173464017167928746237226413470279170029760451579401389857173735497915739782211517596933288207071010606900123509057049128444582876867364933516892263113668184577467737650561864543030312721555784056041299984501451926350589671417532566734562558113395736213034022078868664911239416171811032044362898695366524683449647784972063060737047840596036082927601036735475377586385842507178129782392349654789337995356078833732541507527223341886455661424598370292971840564657338632767170328325893890903737858004678370448568237173987804395171609685210091220818222048935841819616590473082029976274911172363224220259574522020263791610011269229616988616587576548118045297105028005334154807222818946780447345416121171033713977236730270059047186025512345137543992312151378752742053132559014443776051423648432444723679201585476487767733792699238099876777189496734639040186803740097492449392334247491492295005861338487339734996969820304061165343118837408121914316330372243717172611422283917718008838364737720984234638381042844717248159845472918065430099711367664130102888894429869351842249559474743125946722520974666100894912133699039233966338186632574622765114136720311051584728981543264427966230435712039094604738010315417851638319973157325187970846839061566002403666738636105813173627519052863320327514844591154294119474769022215557587492707940892198715797214020484825136052983766431579259691380889662585108323075816885291861830880143298654201495852083827950676428763050433052442553908685665273896814308624369139333812540611844704761702902973771200384215082741670412887275175731970743180075706434372261381957693614044217197280428237056250052900229699039102906991026594926556077254474575213308308526832936665955776841498318627893858752082618856283063933420449727491129378836698216986231145257310225351869889183686243658099960288016538718458581432165497014800392397585852235706392824229063546894106492434017228512663462841821013442090789960928482233955585103679832551551330786087239632680536871293685011524762377556631844700193026732515416699104859189196627905945781438767523207950608914638126634558133072846022798009285836610506505702858266398757033870708749390503951476328596489644523303486926825889171188941631017588106847127227862323093960469533810912692532712204020412063958793572712452349528484428926262202540330865820886607268834688497495254822774308853004360123157772762789368298468450198846533046077307838563529637334242902596280612871657395694260613306775339360751549105481110035402413534685921653367080118970728584358551090640817839771263282855779809382470693047194577218877200710032183916930968755474946606595059187772941326310317787664526022356241504669968039845061504501815238892052144696371525648620572327510888339952094859381695353255428113829429012395431788035817517995437016390071421071508404551219662567948179891014933337917717208848419291648967165117781264684443021541918195307716627350954360128270046363222709279280099469663692411607057291960793832355260609557856604620183374369488417494320563269514926852839939787967572629789847077875165002656752357168742752020480029959035303702666949468998731886243044393826953664944131738818272981889092145520662105113427321862656021808600031594373750016905882530967783565262130389434456734716825088801129161087344925531909931264647686800799660231844344290043711226411215201973086928105722834486116946754614710760084063598656991503156973142984429599673921278498244549300036951125195994120358484741659813203272157385147229819013962441738394884045173846772800643001645977362108428045599463897671064958958991926896261185827485186485437666492752819765251963993585188546561531635620070824623160169983469378379727598260346224442457108299441732022442265897592699774296654882702182390528346246727720062453230937423499969427348768571129708064537688521218902214801969251636018298154588388202772457243962768747110701030613188699844861905716044074875084745076871170722378502969771011080194255954614166433081827984984602108809800780635907415013075902226826430280981379771038149154212382842939368588375837704701512798471468737175113374674366089602554193460668243139742176547252011152537254843653947900977000020497356840830081337276040381582780274972188332811795054069583832466015954184432625965340224469772711719264496813576795226610829286935166442252462420562517900508859643163316328376729844544031463243496516708159116027501664472015335914875446280645651662451050468164220284597481708192315573320766090400508098330123354334900118407744356220071567177442715829278808689758443138935585292537636204554378407723001936347479176708474891881382511150429331671005780820644127165092509556643521905567674299150977342450744062353070138847223648031069666238827186186140906611145671524119017971654759750566570818096068177333373548521599745705314906253896844355632461244403332664362133614974485290214484276894887157927541606306768892649915275447799294308598060036256950506950509517985194141859822020276084488670640521940131450963581229711207941762686986287427661878817453652991403322085014400692056243047295493973825135357399843707894370760757778848620217221415036571723488496528822831842177980482267070311116197999661522980588418899432450519581535256453108043664602139761228519747210424636616677047550068282473515264040282013435686042179755524610743316745910368305480517794422893179459704366409635462111233159655887104959209368612058560062708594719272085129936636597021419691375104200184205308375973203455636382265083248521551156698548104716557171593260556933430339918407219165130095422060266961753283794829760499915390583201675946033113283432170756866049024732311468794325833561564862032246838777573403180368980743700192421733153829812582818334683759423460193972057707564642548859494976361114470298264997469521342106287040731467905681214091496776246393978620502046064947039690434477633953183228987519459169853248005994141713540584250431760658148590825501557444787502012271495106168321040424212245238470321003781368499295878185011604694646778952165178371421200726209592402244974299757536622992945214875254513323154167302791675766641251803905882338073286699012241268471395278397728829643423381243204504802865526066866100529774725797249908308099112072433976160044903011996198739613134578579069560851431610018444648616551093207998926424763559370089458169222064150769585809221733364059503801110706878161819986974601815671700432403121739290950556203972785169769306586278687163546431257358646592561102065121768322839273686706224191594254677035090351914824683059835048633091551514664398410355553046773619301339229000855000295500621317111949500338322242505763230609025028486527557858595653348343506167672780608555818962135368998008197033311985871266386586772472338155263601267677749551552240089610243918610954565194390560121921025243456243435514465452799018959890096528039088841550623985995102969464720276314675038717012110722923915418743933277994411369508632156350823294502914064717527232838405415911097040696069447763313816073572831264667395454218479816452294655132848366701989475359174409512919940995199126615189633379465131771128297019034327081216122352254748753551554849799908832396262539504970935944027066072853778501691983737380356167566332661631889789952609067528953435759515775834105258350674111874897290431340197361199374125661871287577637683808742507009150898290875894376576349572374554580292294326154018240820388217854176964172511078638969257942624809637718100321913920748644574675166173767726423077050696897477445002267629827392835523360181976471664278116360995643475570264280123530786565593316423659466139188942434848131355736432265408610285081312182349175577289966050890014672649238988926083817834686841649075860598297035540452289344252865376628800133377040985893975995332381753221773058869227044797597718522870001648693112624839441636497941271738416210201959040231261052010849665663549741484430479338588777722813934558961725490060323960108832951303769657344713444737396492497159202174059556613462015935081157731985333799180947162901087116196739059071046456862215476941642095398938222681078149772811534555249328051603322668383923292891777358333196411337325252062653092566597397446497887988725829800926879496605907784235236913309005962307973119590727303136741998812670950937518357551706253799018766495668381381938183533837846288951505041836886032092911847132077030385973963081434567963963028464769407562199431136948878941189758956241716503468131264844969801910420412007462168287834061702342655380582733616626943312889453001405012550473838920476025051980540503418521839662452674701477235730979964689331696247770279211858966880630157175952608991595627301330494571116847372143542786484529583560794276820541522008204909894938961038375469134542004737977116509866649008537779033973030524075100395511141740168058145916744293994156703587267531131841669171106511091429151989660929422300115668979186206126084332217629370450619775716474410058099446027793352905386217048835253941775131171244501405765312613667112274910956093855127359531635898048743428643781665300217514579000010843446921089413787174008060580819140574595164564090012098078470364587725658142805587855795819648792122047292675812563399960170474536759041462194117165720619951352150229587782612961069095729879210387284912970246581811882569529273162757635942339153279154432860663119995847069076045036545692832517880135007652338133203668605325842716017475896611605653201797989898890789846246478843042788998402024497766902297000601226478900881694041060492621211478275366586768043882852371044978113159704360172749023600680705449196786485896122016786518845836279380563624190065162248419240766435083108848156764111183445684534018124340508255191028829985050687984530672759317984965703186080459767117835827273768756044593387003220570828782611459910468318437549627516095992271347061176022618724788612162358062222105203467592508886185372292402687360407573934735539408692269158851410245736944617254823890802072369653249724784084322120994160546368637688727673912984749418115679519430366141553597951877090169648122015176192160429187695059491877033153580709114743573311514172329005645312480183022632232458998443877662300011464868375967769458813891457118077778104336213864179990757325408446080037645362101327260613107619111193675632087622741140522792497467833326438239807474472412692437689808651975500504508160740581354336109462578966557516967014146187106946470536827680903864470275524154738970822792662246891370763576054049101123891331645046013703563241139729132202071994352056853731236441520185452451675685411769770853717839072209049101661159505563310924128691433959779484361797167490593952771230472208829982991184785372842395974422533964616929184886910939253688282236660822152178032034106799448903762409527812799514933254902165632210081625792302180406328843977152261255909182570311110564584248466366170365021582572934517247776854935471691933307109059020023392475158292260124809036034347612626473151497038200783131416846927382751584355647858300073503463069448466424585116158552506304048218397976983749254782488122366466231558129519534250535493246127637394851479428642838960079298084855351357416385478856116985148886734165372445469924913917145543270889447429584698055931246964445666131844318625463587481565942086251089328204135141352195502227824759611586288239627733590233666366500804426028221416504982908869634844999324298763633538244262845310223996976548733367612061631096874882880704483107022053261077183897313945875067226856983294926338337432379463518646703269485732291922115197649175252541263019657076138383988542428592998271711296050189666452531106609956698745053954437585656763209703968391924710337136566985278269913482179297111900603863162135048147290349511117986260178605265521301477888708631186935980441714253551832855278787197941764985981916344863677345211069863594409140811700316604536106605807617903442338165376077142948429330487049028280078916602686902645247265050200727241981651129325746277465138167586573576545289107351538743627741089266578776239617307410765735341809790322815920160928803602526046926204731964103796614814121581144799951344196076745636073545182951240259747008078418366639083163749716007273622166224151737539139757314776993351699816504432807435314027211073125952282719615702299731196493650951817560437579416193533120306816562140520534927324678177660136162342979056853793174407026603762151467025094487526946977656338973154031991597153471104645233441464017761445523372917165360050503167936739807466493504983774389513914707971981570473473415129572952692877796605991662959108111367558821680290429879674849953480611943136247827286696464777984196427629983644935313232102526966595325528171106204901738203899190750541808100054272242895249427577801651883619598225840045886717684029424281276177556249227052874342187061161393766459827537459004190561061084908383828080506320750159477391826814570864698169692324758799114774462032800090308978124870371344490442641060489613160378991217022483621002606363341408280596442289044321091567714558221250657888048216093822022110525607643297985312441185740138187399086429864698983387265171448734253318135820488977886711375797097791769436592811712799744323140133326962473022932074254890009214476023526411533615764112504891774636861962494139329277489815035993172184348613260350012359536437263860537458181975054301644997432582630259055640729181660110181494784738873980989349576743724188835022920435582816943394190218595825584664734372173323769415511903789487942776526668426603850699659484871576515151345036952075365763547015514232706939331102833938647465585798034835093794593649557418837332960266242404674454794161565589652826669309017798975731500773493273723799947080998983286442000651403317317639993209589778253595080451196447584064507485263677529156416088008642852300409672965771344475254777419114395422606276043186496039066322247962999900414031335068054147215511751301730144974412227003789543101535155095251434231485790555468986487558452955198095835446195426730870442183845343202638713886653937975266670212308510933081544016689773870858637226487405693690404609176490945817017387431137559127603745351136426316235056353544669306951978293056277343326839387363098838542879179211811221913732566886589343177315127589365984962929788114807182093619600867962625775327476119275675013342329914501676874017317064714313422325133625599745284841740770249970834997221197288520921602906933088972546396040227165175788817951449099931200588340879563241444193770939425540138681392342485058913720964575303214610145335061856356978209502631206820323110291113835928112790688443018717482555190739094952279604397952863832795587265035414545101667510815944219022974948905160995466133940049428322701548536170581026106216026158511471006886640088671326249662689547000944370672609801595905432605504569332520030177074512122142014367762119273320711139000020193357973431182607195639029847950814927464429655120186381383169891045667157158805371620430457868123057782095389880790424672682675680442030476721724866924658485919885177154430016151325588046573837049624725932691857380984155703375645008929086973562232731521144665436851989823473975478626206247916239802332371856423895861045737886954813088918268838631580347045849683144030242235317383608061839760420580537799295953698710105981569090459667258508945651330501423053804175206712382062773682069522014008156790183243395611672977062437946952710709222671801824106504024771967536240486146416943786696484658804575897337577248092900820048630403144512470341719961816224883605460915259810380119591375604990592321187265962080937853571822678675031734887548532324966238065061816742620506049126252790135499426841316907570760623214291364674804572315328985916482446606443695078280679141817514193852698271623764530705999427654413529002928408745838541363921935153995698570931259479734451737019055267384343111252423924408632026880508055867618890374465130689934467531918852813212311803511183932833748024616906155660366195771726704354833477059512095398842434989310616914090988491582469445362659012912386095386692135931667498307200726117754561728848368921385766114930229553595673214456378209606971647695944681215081738072050934757468032560396491509125336095554896154248597055513930904834239069256722198154894401050311414110933774262621675216392437708825733864124163422839934766853054437192432173017801656039157031529001186709361999580628162688545547054381870379246407916258083084944465165119415052051112528308325480505961977393882612519080699268758299387378439659460930363140229420740148283292260813783026092811588221416634583976496263089209871652707008756479221022808073465095323147747523717869888894615919027900372463406268750799416042965106977192243836722037699549930779081300965449361096180697625088310580302437424067505384013239296654974509612280551044849844086473500007035716043050075744993615142422686203662342587462622356776840420370878238099055167339542877314272465477240238306056266693746342684111002129833921250247490003750620250921419084808405038081521149385144361903296704344906871797580471918911069725253553351618220518645630904079151023188826504250672760785033683124565691547937252069746391116545586718698638435296589995152952597391992497295381047775029656411091225733832726097016067718737336602343287335042346208941749340041106252380366477978037681933029329106121208554827784010062243321489554642939547589678740218204213551014800861117591691502971162716244493525332151090881077322188488206592344587485358046398022862975311355294262902951352203640317409153685189228735396224745267879241953664561289120058937868054141732249245346567981762500648812345207335813896323051455993713001931327530211632389959891577914929799439006097811836365879795295097861649220100608051245591129850993866937333786414908852854369589300111485893612795497497837938813217478928459834605397672623960515784877948949773902998436394161994383088379715533529801376245580767728028036315439263911529308522412548924055232168955045087422851529548440533728935732804331713938716516025790142649680757664235451861189014135421751234606317339303518066162212373478610513289230939823217339482654754415119389799184392345836441328772543290027566699108483566702353923714683886910506823744705963735721344168588783258595107234335742513258192699428916861437119401796909245055765627629841369330506906436268690378193335413873279199859912744162298600602608701813913645680297394375099591684709922786446525113805692183417723702193056074322711009314397436787004677769858406068611013963576940334943229943697376191745642652217111066678577563185676868193549307506273141473537868667685209059978595094605182852742577589080605219071876345262909312265849927266246967131383117668487483207028333999342577963111373841934243401916780224608645292557258410606933462234146529761615030292015600506619997166225248342084108375273897097809073896575795115415220181607505317886853295369980784517168331149142157101559900378912872820804078272870562804185201474950042641044846499036131905904757961997909738874486103600879364550497905415880789825306147102434820231041093961592325594191526887036246688506202723116475312663033891448349266606057887368904428046286504798894825689782613238344902191643710052574086048136145501861946159768003059261594216202809357377195461984957094789469507612747611581743471019554424602891265551433125718157106830069745107558904281863520419083719279968420882777305265612324005783805539615184498786993153909843783287915181547013805139153214341222486429055857139894933445549343016799229641095597479537501316805361830460823194730283249569017732263857821618031789454162202944783221681218600613964744617950766171523943450697926449342588710295146890082960895711883747437618960298821202158968762297347234549043145005865845883691347608230320787257027756429965081460875960112611079063847546397131879057418809351703810965178663183357846754755442715042862864578027485555957449463950496599306865316101300018647222791180742451072736252949832646042095965251060774441455669636153627641662529359445686600697152206505819418277082639442526581886108410783043905078434528583702304827316969640756918948452984143120030481876044299894557562975659334035352427230503422609274851093598485075586205570393113476047935227517205401613024027023428775518849969947078751458152855279585473080257926113239302265205419858457512073114763569834790569936079492363979351358196768736006216895021626331853426325031967061453614529121702371870707766313433044691094377426598334024908308266457998138315670776417419436776807751938407027268339081598866993248963116203676965158755308500825867515999887906702336947434655269192540763521184468020897621640127712395572864724064037930440669318032848782178684753805826154022578702681358018242792364186072328493398793525202292764665165284618690598120227583441034798451914608644639128763077777609447841145301909556681222278157980057138094643825194530169302238354148608461479522661440239693336307249550356869903174653287832741072449541250014228705561239149866116673913277769249751365292517677868618050464236705083821608875501497676686759935391627397387036268701131802539200114514023541366592595580930138620981177805785262066431779715658550958890371821528992739852937907580982230534623021099736007029728115866898803270927916611034384799907623795846983269330435670763310807423317084175150095756642998767290856416568849846324213502078557663467583869218763352456368116501019205339785333540439946515916103093413006528295961624574720964641303394824430420408199037549550934250643652538560697634421350798420869450444378315207125643938568252834913383016658799370528069315656959259258879419817248616254926987923438643599072579889564370267254019189730554650737333800593489582582846639469054796669471576994193243646928575678476176671094281791139449205137285273301243165740158636343066442677463241921192571223102729350305122052596760648901680739981495032320749495672291604736674784298858325829153733418431476665926518061725821852972587491474605316021769871684745928940943258870533104543775439304316314900771537451511177579138290708162548109204982695350849408134960004722024420403109495755730698232404817634360962471687299652125889989874502852228078844250355893006418545809864915056517465955516232076817040918961950365704360603808735532531091193257722061954869539862643134456448401752625490335819627755310966747852962668570725128920447534429567872005625139785784514512996332170044663363757212399016474691114697439065262739098628233063126744861498484008205585200255516132501820544289977773360663217673302621713751329348761087585186555395948002282285183471261977284313687366442758399011328972517177033000349144715422247402595024560247046436969478523666371396436958148916566223451389055698069073481312727516104702881410787157178702716414307693223024859753333908775515859358721307064631466617408761745214490780829334695701380137687550938708171065693873740277960178817508662162493616527480250467032043101022051805504776779886270830341452647919031199516644152343514878619525716820610373576035418205690578737799220321063844451005914515553786977141815205396535623913862976547249698438659211775468115255897240933615916489462116954667289280239055749071313788024584375083845115447236709729073382580202165041168596191267728359226048299914379646495689334095666560156934332024655897455987030355114963183729697436067528814213981374355490760836470464839255896223745990404805074982948122344074254842454064668361344902972468264625515452521512974780094975786026716942971746954823941914456779827440277426075989166898697507900223844347034664088192561290364915898310573327647382393552014684889090415105872733097095531732133361416744444655034999459838983392087931816597017175470821855899682166075499057018608742004766696099460471511768417243988684230903198762570364341582718184466158179887038275679255443704022952444791913660570073737955633349761753968601778275460280995440366388987981703848442417903500068836909290526856965109134964286567585132073289824505266202429572378635271040294015055191835102032362181739643702027511383369906695392372753135791444623750940969451019666800216436191729279243212141264122061148437805748913436878129595931781983638319893024034665228289126857561988114029588781308070282819990025541337441951335053118122395068471163061134355458624232663105362984812287160602910408203964938862641455900785485279793897915758279711845995769301710464790196461540014540868125869680581123131088461942580387500784613500535216573283677777041319302068374030199139507251745248269606735100298877404399551359238517241009750061927274232725227217185244890134369832950861221690886484736963521698788196730885582278434678243048837598174219442420034957765131183687067560168016362191647842528611399647476000031396544877878669329851436972213076377657398437652940325162220409440767746274521329973935960313231922362167305735824471533447139770012760747159801454587307577792811114224514888854798377678659783726392383985564997346019973006937008275247652092774779910454888217198409294370825790356304672696579294292957112426653366337451603949101629517202503877338445195621933516838270779313878381365948289304535095856965468863032392106947247723479435359595198126184214221379494069198873013836528803278198100856682496390630543208269468213673034637578097396837998002175510468729238786794602558622297045049411916492389936551742200307730095759224426016837612507679683157566870480286694528371066198804496760827442570237452229415269311406143575877716637540809595008609368379038917631051855633523107113539569506105751202136131864576057100457277528604314747311233012264349696180495531983431008669418676379929585763483549640245575086860384554332543625857713339289145339202592168612797205945902874514228520318290057010422532604089394213214243897648941128477674397648276617410962290125489158752332966004676008814135972473134409570820058013705179387098221391518774066520532790895358676933732240577476210157559138141632768504294218470796054706622781198173842194723761053427435309972816850369258605403617148261445845783432838465007240495585491712456956159993628520655738845819731669619572719144006826218393034794354299366113422806989559799263459944428664584414328489086633638188046850193880324929039962260053470513362439534933842154338071300573902193055753686128194816710296119424986406379253769699146287267498153158379625758789035638343145639836898116648250213884954865059836030100572544672526852211184116516288998000290386903879098239174294768980968632293707010372476656407555341013007513707463257020539129368713748849481258682971526563911753793620731295931185724616886235696875288720667837424444124082207429713199564824956986404481875721495376807170323471350086822931008061318892048034445231502859257398306298093152691117747518518743640265276777983916524520446270548436711447202182538053205850249722809547214254819699073217678616314526681307929197644231493053584576498190270213974002723273711492557696595355952759993507457300166758047025671003497024348481375563934182097513429539742576684974922331547470856881479958305819425067399076056977735933934337540919985590527135166932812648884954258373080648719019188690199647976303140984061245407248360193445097992686534417180498368034467312467384580659364954128164691247009260252177209007388862403589341461445108285458837596948897328250566681944631551442194014322853304652175633447997309534421833288136984776285506910945500146386090897101578173938457775837357415821988483237958037035948751692127660481946948066254811121462613737539097531052137355320471807958188771123908202688986422641941406120666326621232290318765431909538912172657680481471237983162968016123319944833672368932615317278613335674939108137837201287991763378724208313038653350472180760141741827949267979621266109458225679962827226169181254763855308381574241366104443034818665458889903872365136089499151428465614972871638165308176274278450779091834689427528729506280247845274791604275115156351107256965627699772450397479188752747010662597518663418587517746323208458698285649404828696357666439503149474530325117880279226545677442833023131593647031266271534043872939866774727430688073566229598666614535567548221712207454184265561557522206316282773906464548393246761202539201025708422101549151335891380142725864192425582364322992574386803846808530535518829168006428164701250229985053098158882078228204437767749044873517185429167512824050551635946084590271772092338445180722801872694340241172923162844736943310542010398194564799828409415341795665751213398546172473772240628285636395069138832175723802371968126019870284654681397530443555485026100358701099203536848022094774400272583570993722537611836846591195057987390319834853213224969422589730259288777923143047691855900299108973386034255333621470224597714699496957528549781328718615567437369631611299519872833688340441376045620708662525632005447016406086077615557220180293500181728318837450189042270131649646739472902296062664015265194642475071184375782569622532617801715734218137958610313958483429357916125768136041120533670598838968120465388659474544887486013866259147920934481406023465415559381336448419458717151796927240636399799316799798150188119096488757058087492870436407441615054442947588009831613941642137139666299498606429870921784609181618898082807188099371641305403103271627157887714851451388020881535292751605813366467387022627796519625529348884851496678856317403394117433978513000325139375832981260338749726923201173882958194027757287730720510519492389238988124932879964642254686958491442444817252253379062795630820761242012838074700665243067537937514932703024932656706483318587115503290827410782759296677987219857826543820560554899047488992114060061481529982587094062674586294651214581262958885471354387015666202877806355799230313038339574547396342907343649089861476791361148838697125276477225506781329456500904003452736211547037250861431193292286501295765246530113149360312319646922030204381987255285883498516605718783654964611077792975294225085568047741011970456712028735152933776397322513899738589271564629055201559451775590298471790247646725831742043785893916063247453206196155482060545479748136660129910417732288320688653296746227516118483346010878384590225175649878836995110332730555084403819956336843283129862326967658341444388257559167387301433483713268282812927664857365866395608758710271304021374712834408413611448555554532845473403911514011518421219563278951102012093309964121164594115471079214463181770883932689224022060844073960153515423621160448909539661343211243125910796542975427713269402397760458278044050373300250346681166944560363018668070082234299366662097353392885386337163728753927335423696057163447531024695320091072131231889531681108244210412683264080312103223088392605920597251898805157546364077724572884037645834226628976803185878967557705418608742383094541684300785691839113203011084566432041596032665562369904195802986316812567674687161657193697312980197811757682297926102127582960642228327990653230806324284548193037523553216454939645145146937686335503337542122053064458515349056840652104329652475505815713421518483615760292112948227941639781084988481192799033013698863225240425919637570231725684578309228539797969343074164983183161188058598804691137940640322730406287214157608261583619342256254467348676687339965202956152303506327006619814647402776952101230708701679579939195047979890147640112118437089145502123798332934468854364651326940809734866099090574974887003834674463061966686871352150590597759801022765010719123438657161587453673502601530769275274371594932413012271913127256805392969561716773501315603017637590677144425901936780999898420338817322124088454916660679113526813283562611375499816246345512539006220183537344978648176414097543868579157204261251139761228702969664823687564851449786372976873347696687198931637156742096464733791322302670619715303992051384874883449099486125460359224444098220129460259383615637161584220727374692976280283500952778953072994840122152174717083613308046076143764372376102149339793291895500596876721180779018351739914044661593579791274116510830071853365996017612624411616038621467791075663741218207083562324414556732416574742132444532634046024587222987175658585899035551644805842506238987907950312006701012514793447501170390836060432895495087113490445729574130913355464820926322742615571573722782271869365558021342096682932973396687977619380607549180317768018051843952971253291859280535867022817305748970037586924258832730058525025872916082802735435896918686478535944197036724553581032784845965316706688169847725462149404491713160347765031639972886976549103825570447781094340064760562888748568603714175243548166971130308334962728893293251000258779456369151660965115298446172019072990042685148670090115682057874927016615654141815551178378691846442456836850247290866737632644651440727538793310520065605060725811851225700966594874834646066702902883092956199701766836007828088402820014880977373188219897901743640413311485116432613281514952392791366397534973551833337478919950434296880591576505126984064664990139351584380262239765528801880442029212929179002204743532525636765102838140836828171090240767239085993777740398259555545003845686899561739475684098997551007558120761765115337073224253633961297304571771002943405989358171711707795109428573921806716599756855358508757545170221682595973347430068212872564119516025962112358518056553924457334699404521094418182207984384025998753801281761399665326690013205963491513496739012873927793059430173072933910531102049006743430715924528781822112599011339642490525122366478155871225222669411707268930363754891476783976248496841161236785284449949067715368508551246093583066277325135219178490473756475568226089867917349037003168629603752086855957848111962539866914841576122644372764407719033028628863588777321172961713413861458614528731016272002613676211758157970251155646293888395846024201056231314170974024000115787069667799112408646501279651717768598458684115531826835347686663487528330972479015164147640890347373789087246224164460773722532664555215398172010418184611724409134579863302903363797063614309574841163380573802518711844099130238062222976412339676973909270832072899768367984372941283687140466515257746182129368841248562992641347221449072420379405249435510651474567281728076237595181475678309698906692037142922523714256613685568145328495401925497255690118342833316405729833545220488155863125754050327049824943270087630298324788626367978968780303744365869549928524099518774225810156342168957322864178101017573218714091337291821025664546686921033546012324352908051321651551373170660838077954755141916968012799407263250506322635943106905773016816772019995179133652727774756912997244206784640701136988656125043337246628540926975769186066330383991422461470150312184735774936220768836213380878025585179711838447236825400320373243741851922535244333539418829689828681477563359851085184053758469011664707949618192193366424481816333076718076349724618114868611388030522432699904002829907284291468208951648403648031132069139359805547226738021980857901587076658138434268167605604627508663457850171924791242912695967481225599987221837032466736394654483525586582478452943005809577627707979167419179634404041274235739697317981064886688190550575606012319077046791608779934190628569657493402308133238079727763102297065396794248965923012646329327935770271507384301291288781955115121298323646022376540259423842570988566483825169028558312796802578741692559255098078279678668421491486161587769463208881148320037958841122976575678861504005014850031787429642338266024711696378058434122132674748584586547183928557041467477939890788742730978870967871779601087520524851932957052854795520694841037712004827064327048473902693173647474210491681888028133664473563245435400627834798159688716671506923212038056198978100105002094859631888180434935097456404883871260654021839571687670397685554346967296453220898983973937724799286385706349856063241377911224229993930323306669009309940068875581781546057677831786116584261101235650183959559273079538937501198515904440892950064830864511817463154969501895285437304591792202594589003936890943225366313014315095923254734152138829631010395733737947375780132257810872192401596158688420895280137984352708530634437090939956081000354613797900245866276065991372649652476250977199607998048568315843696517012820057753647366648586608374886245552188208606432639253927505142545567695863922757013833391640775134351561609759589117153767428570166300522547865936797962239280787738960299826382007280709387001037370757093854162607467024873367427581431408365415975575054236722997026949281460113515964254180732541605848661263086114476688624373643174338939421664658947160990533015842647019797432011507742128516691713218734192115644422429423059084896119855813243792256840509974133248550839002173833492074912810575597986016368148004591556441140900455552135861282649177995143063630150977724165076931921050114268192908523565623743212428710382377163009299772829375916479466868259526530201822796137979481969810238956015009725008772773077361139871159159057437415836572997273668194979708409898749623440916875451583716822993791249894668318339202736098230106878531754347475820662847030940040826886497818368020840866846967401616514093477601473428943285216229777155185930204136574241798104235990592605601984797390401499386660847736599365620304824073606025323570591577804859117808715371855805019617160880797771756878175587128973589962925141970101804609337543515598979300493717586471049548428476625773036548518674864538240491564434564467937221356569864082893856325356851239356593338199083485447360335773862497367003112803363700905792925331907950016907412796137714977047324904412176356576918956189994968637419048970214625848604385917660800796862483712949436396574456338137437302054364759647026268197134943729105994497770364646839130132824585007148838966948000263199400422775442368583651910810180422005940825369281392049171512621757960264310956956285791075646377459170649474704367497163346374496390245253452449779813877826854639472708127324252130016362435051689609671378138961923459600585959800702064139601854542607900997323407002136699206011242274392765339773960464775969847755896030071101106363633091126050790004235910983186593170474748225469634539670841582998206736606815809430225964909057527938956764859752418431148543319158215270861424766092143474298183257507411210819309214785438851179016379273640144239582028305929964618258958822685415779672285931105951698011271026611620702865885565311013013323057533220545312144788969876308087079753435484641701163639047692892121164436330132835113082974339994006896555039673383015105613445962156382924301504167224758475253420137686653198795339962032121044196338218503634509753103159376416628121263949897607713791257363683393858062198546495164438890074108452700891563701868694825565073292605676799504064499920089816354315610132631435259868395497371439973192979431859229134884061015378085201214540408610120964811178297377656975851442334409756999923879184917831990986512089348366492764822861305132073511690508500546470377318566925828150821797532716552699852214992060534256475682005542235308343165680461990587282903135942094543535899009404206372617168902317398573621790368948169527929168344881661177151333000238511528515736053875157196485789290627564708102991624711865139152683726936723391733458004882830774141239240723670433658641457900754851262184802157731368692942736317684092849723368410566880519374888328963982688598065909669594390879501733890576743036090550044565718794402472114859293510643705010028522705625304838136529183081119792296256422478953844286384771215896125479503209767338853416623148215955808494926904998254122180635079318527718223000983200087601659898565849883452330404176531357524820815844367226419008415639029649716868338020943429667736683020858582479520047492924056448995789582040539316687018830144662309439821106807895010759154894653192033937357784727366620994079983087950564395335277626724559576840933249692203063500463864021210347702537923750689018467327589317775970570849282634458486778368248334434556711722954654892093697317762134659505786977297517608445004537850611960882204030282515541765682581204323839178219937116024544277369770991802717172266608529792041241250536377968971682993675946405051671701578941255031782269205153080818425316896861027000298856138047238206186883637002015551600503561337356955281445890758004611147813691897014046617138549283396188641562776451916927763422977210553492844436706536704227438761274271370771066682368131643866424965471856397402764451698674182991912832460556287632829053225043207114303455609463498179449295102218448721620663710761190680119490877114704290099578913121962125051351676064894122892445956043200121582366222560249001281873543006309402932595868023421323818475776691512890197897212250799382081746168904367193744124106667749982343204322233315861037920125163393158929509432199619420225926200795509387441842581263939775655899802140414656191594868254058241272679313339665731933029547875530398648406884007585919781780094789187088842290445445466347453177520971530422198089617717816444662555206954741239400206662711320448941207871954983534681249474426903501083930200538109692956314143018870451780066452257684271014435994918854510263873248558321012883628700066982762238150464476601605763539030124597335971196381752491980408524852353687173361302849037473789389432730533685317475924488892205071735988568470256844568862498489609582648631119499243501550309294369790842510580953155515781933296460615268812779667291419155966340208625177214335416288844806837754513216169133576722392756384610728305628887152988302201533431939222420516093836702493194343711632659229518948267083965832717497364958488406960080664025887690700240714250752106413589427125982353836320124070492961402139651833970852427457001036018306625893040320745643645575389737334317195979250198240494764397683627443456346185059700099440234589852362561822842883652665859861691948089823134248275624843453091939097828455638536169147377386099614381952322023327932846135851320277804113638598928746398100329104508370793827603294402058960859708431082009182885485739507901363575642081565885275158319159201274968025740794587115885365373508343405725011763183217904341117511581360047907030817792150356899196182269435651785799401464206447641666834792442463951723136872897358233610487598409368084218780310721583060668193013463408680685914338536708783093545661792385082460510140871487687997790418533101203145730917840418758030561411444629107827769353843646230517894167839045958911833488477439262278396549183660114790957844283330466934076547368736469391198695062690221289481562254535745981630885757447142491242581698932959225406473429925024663470888581098580498287894254637600020097284583235235986031214969031084104416234689824047033774753098518614153853184110629755274872117886262401440641716635582214002191190721874970882361376171967561237983129975774548191145975444276080047267346729560289459925501686175179197711935494230249262648075489470353175604498927408432276744491502777830763409924592641449805902712149193073075631761102837087576288221762069743513825936027555334962095182806428702462463826130073746315560704763301559725163808481342545691563733794103749732537464714439461923513312843526610902237130045102324485216082621863828424485354587166174374005342269391238911804476241021837261979098215478026272717875453070991999545136773758136934419587165201764184837068784933569169566448501813806368138955139996908252538968274994642045627698386767736827766782316671510749043849078870114960378567916438333543771087198106117677766509413229680634363357913901842187940107845371969898785775281628130410311137902688249994233727728128539592255562057009623950997068022217905489021757274072749573617399276222456445790871812506330476788996352946789780695326557220354123704271944520009965667143863002562875345041782703415124448788211027367360096633960961912512335578895086882668148532507300993987522503867895790093758388214682725314473430942804787943852513315593797474844282760700985276473000092401023511716157529701982244239508634794414443459840210592011228981384732669374024296142038222882058301114161665491836923501527955300932220931211996727984528976213192399363862246307361195408167416609752023673970566500671715648322898522211901267879776289738183545334685399546138077677774912589339415821269055086696552545505380654624835459652353732908889312815202847159084452223023046604471420254917506722257838982565551396699005174374279745656904420151227349941194299985993461739760253327919553076535469417209111387908018538678432544290532340507524018725894784716030478477236278531573107671103226239803206376110468822780079614475076335137769338266541515954108414248127762170873602500954969158245186585483335957149801374786344708518322073146941532523466610385817058917578378183416871549334848887915370708225888104547181495719525517539528746882396413165283132971723962400188933959254168862492667795068089773340743787581214776663801980625541512832981502064805134259537331960642257136877212763350429272178254677422776713008149941995822959345071925698990709004700957726859291877525914193604653242589840390101599302622308677439756660084173475938593208823203760689537000653973852709221356462462630311108141864685415042539757357973400545936642890224420658656035980234168556662677214885181061210575459932175168786722699207777323320619558864177734642673759284334024839681488867575225243332611680733414398024682772912751229512388549320303029614317166958364885125774329335778482546599857925970412293787278412017808809417516195346600575838439906556094824789170419640758708982612947693208665256312013513643962079595398482387766691725957709352575876112258784298816930549062979746415570246099977649935209653631883306951101511749012518593206896543357046538723913265025218205384971863694311738309437671153583228775368630647325369900112464449457320885522451170761462917838263697364228163753913388733406502844992110740595672128693123632220194829346563342516015051714527655169939160174344171246861130267242370852542080869719280589304847005712947106147147102353409203530896046508108058515250976433925474510188148926391573723687878129843758118726698191170231286240790184876360172238290722331449438597210981614614786299329673352383059059383366896226501873644171126997129738471229692176430401189413456598454502346775438023799272678470756581939625456019761076559414819378857678347706964153908757114598829361590318054160649739161377123176983393065384359513685155170715138512693940183919874367864416294059100585599262000128944354067624660013046204680809493637161844289290386354997267986202970241655735424172148143977707617833885762791489971676314180079267812720410789505841923303174170206391436623640296009694547640244349579133661038914649245717323908496201518300852503039898410873672743993425360081115141038607386884007168939326678485512945384112822860828216009947803831580575829376645775283172346279255460662432925579134986900827644105533227328884380942218063785717147846756425028730565496902404701838307127350672920981425073166560993373555167520084153928305546962753158800654522067597761886686300133059698499890595261557989476400356072659792062855659048813154970326344769251740488655106033813211421764792502038077030847280615554106662268321732685840763049757715994183306493429559121975334613502967078456053618791527003218849035428359862363922945819097641383044724700115106041088206930548512403936651620592349206796833580065155032401670768967303956224205569258871416449680391171630424487829486191316590485596562136853163319810023615643046534605371153756091616940752447035121636164910031199944648779836361412032729839011330885464884098098230440083990223793171087329314215703023231048658711360741717591594801297487300180842517336176378710297044782192284411921578323428648533140894641769491944401009258033522072831394450184363557590498198641670515646741127757078447611844673258522359870289573401777757065242977155135105768876560503544756189284919027539831071476797791340083510768270344613840390008412470753429706601069207363728501312827177771878746135492770797311763263784699093143421119997065086966067452199264462218156928523782414960826984314001055358506089562950014285451511798493106493806790001028444409709574426354489811946034569392142224160714825024179586716222553426967613024624185783680977299227735407908190449058108331572797008122315617916205367816486855053752619587597042743866250657464072726660723197274536386806366585614197217554633677400012754923827711789142474791916723608119053640652267204207447958738540948929997623021316043284709651874621916029774287422856772857048605180931448110616598020380750356691439516959976927316358364550812807830605328660347047390126603782766481526534484436264750730704095049350503336484479014863045799612652478154489339544305682736933083262498950607983608033782221342722890854033770986779957921791476903879197580276133678199072480461608320045132694689061225408657321949159026878661442220833519893065114564508764026183767937751677473602002101530840757216931720771432031523970273226128836460044596818092767898620082745464254260278272988603285605530591704063361075506487165380190590630827317339932294209160914485675028320698544248715813775411872637024718577724698081981763347242919303244095082666047865430362609261454703323028812713026133717281949813660658197433322340685753439649315591977521700493726676869438929686031889761374521059942152827281649663996437227380896848926104472442875796232203388900437565189444996294648193543585217259847644707329362587669058507092153598552916036399274061188857174943542262320141147241125609853192525204805493459008770443283995297846813777748021601422216288136722528870642651194234496117760970389331218290306566298662686726184958531783117565296165231276398445513506232555334654323191651102977819468940080207245592348674567431632369939176514451102458403603186781823041478455557118397457896361858353934957097995418668474277319835028579504881038879903790340050758865497568670808338536474593133365449928259410212236202471636648585637205769422028259782395394423596372592362657771305655537785545330520004442864767225040888760894434679066217371620755279611596241676908273718362734404902470304364971092814377182748847722450441787233301703918901787629932367403832973091479817312869802334996031512469461966796197305148386652391823159953606885932219092870302787545592798166828775170315396861169563361081394571984651476736342398308443537741272366563470220867214227194822028777289271975050438660726401263928301574886204867712064884578040699909967585483165729035242525462307907964395966275689996319075689279137643692290800798313908595089479558997193527404370240623677319808587128434070214025151445727332706740298309568118433216237803564124655654290086002917546677364511369133309180471938446071692264795498710427184150180139505284415874645618408379960608132870275296272257553303425269212149332642109072716734218158656329993952310462594841034507760615647831673508411643067368903377770109156978877239590957620220757497272388816732754648441555309264281297934712058593555072322050210589067381758416923648299135331096053144164054627294435954810267721318853059165191783769055997961996967252263762789561153327533658412551282618411484320792647672884842287687341978170639889619051907599294854867546810812409580329340490944047488667930833517375320992716024540294815043872578498365891398047486303766708316288526576418561430823480233246198667235341945821075811182107254101871351377397982507652226160020510685176171422792871668797117214034158063357066911523351589277699990827550581535552494982533040961750049551827965020607555390967578312380108653441651594164673838985044435643937072361883688649876347270426241961388872452001914969754037770939337359092974337661209174864000025780008806898845345276756890539076006346337417524463547683672224864379012706402573890287939159274085131738635069063512669161308112629741816202351691739063277026976813532378018725221647228620023526744596729479090563831584284053210385482142203504170084738401307703635656627872917320386443776503592356800258556242436122622036956960964019749730241983145428654617235420776388210040075446910176445481739563314085362108033119072681180131185941318519527243255178050954645006231678440548591986277528801908494862649356144903992734336777797449110070111876929819972615876916168584825060870633186922937006453805840577944715080493259185396768892429584538672252746187545712466497769317177087293380233955665635844340986499882292466853964811922869509659620248389026422384369755962614733259127315504540576689696659569348078337744863473303494531564570017120883608912816518012875495575441330341303236954192572177851126113903989341689206135419756947868118794805463852315247746627949969533858938751167224899780161171018694961705805342038039443276965875442089476146259161069307551157075209429191716721911447107849097519835072716444115569564202845440971889565340892306212775177289558880993682978033334808396603338018508192411933548238081285755863893175787882763651888088584425205276211922004622206101825964124907326146350286369757403963411937966131414678003118867162681770505672042264407564129454701025734737020687595333767951067639917622086159646774113240056827034902779478455267165677586082437831029152509353540459329633324797695763701875192728912417891488365657144433716697360593232987691700900320049724044615923766145794888326934533058312814394684079127776518340086489200109407533696598257870279254166520104498291305004202306922540578352452715658812277480189443538380809389804920063693403656702749861602050589477808359024117797021673462360033133492915639120847927028217463386520943175009645748308359826152323022676794541340620803860525257363268342674481037753194546918392084507705618898440993653991657101799940331538598022999190812719822031994333240217094740170737765432048817572241444605353064316633053481931109355420292953184670103712919178440199679658794280411060657154592222018984579245000783690117365745416996706466943339028212652936112616706713919826535700861076663028820840715352630854268369830721341142229036059179197452993868350486913394670424604769091171984383690164917659459781554847083061556805449590949033876650760230645893883238488412795413105822631903119115220539357226631683580358672535221561309705077918959274392971945918089864186689529613784861931748783131999217765105154462335446946195230682544604302129648170055096630331949274737857290023584887638355072289899641674589384410144995550659308059694239414108921593878422567558454314952552683931717890376539971355623477315933752510134162281731749685371128480333666529249431373044213472679378401520104872341994527515687951458305220724240190078015289818694049911322380675147111341059545970318515432176085793830459790277340031552960063260578648253169171250370521858756928154700843995158060791342533443786773807142424025502564981191407015061666352947098368190470026163163064480299428673721207181031625183487058308753493521916483700109577018505836289662257040236508877344222532239613384863164064598063927557756774168908535743840155125868227537468992375993656262595637530179731307986201164107225705414093152154972404678777049016277569755968281320693840492595944739801584384172397465674703191538934182979733702698664195653255805418683983327710443329961160360887450724171893245749172256983167901634135139513319594981852090447039861466096399367414292279970216543580830141688521986267666805403899880350254595028549322319990560583318426939712916230776069173562014743244962385176661818083142934192175607945274346342825323636530212339445882118039226580005118151954763647211492677068501255902024140782171735002390047913473734233821645430458643746868575315376607185568836607674859060486162352758113150518055508755202156840384347146911010644693552921963497696920175125197610518423975333656074856538635609024908487219973251486837197444899986938714190448538883796093108336555317687218373249040513365334857268154377078046318125772418570265531382937956204809040754720489026968934091859154202266343556492230303417081852831005957158809796210414540923057815880573517339844851101318504659753499442933671289603585196845788049079424661747106825354221902631385171266900323078436496407499382819291483524838895145175497372328481788316063349062380335200769125437802958509848759148385762957038765200082634753958801059026810353277374423575449942943566297464197979151431326739129941204427012623372371671134213358423276385064706107957798883963758817732940026981778099639026755912635211890917511595386913289025392214012098969194191981574374106423412835971049248478580180452143985083824643237722470148054352157041196795516568734212464145701739701106551745599393314248820012165648766219233104274055636174658195989503135342462838345448515107340859604542155503418626633395845776981904541299142596566743702683952001526577267735211314805221842725457031764032477118160829019012386463278763863761635091561588941723765852954153178097155088281899809421814362409835576691512278533330887573503238313056271050916535388167771761782487336757968735643077353962375064139320758702199614427375168839863456128559012579374007481757986065650775590396819638831861617848780116543464355920857703805457501913593906779862047041394620300445002318310866852113808238269623685906017453171914780068383254083058479269109274253739919314187716748979018963739004448349793099696192072425865124190319496960017599203779386380004089879840726963053171820389814979468705768790624878098570306430650927767525793262928535524579130951080380155320837325659652134413903366260669418168068298453908340548357100004408774782259114066652473665964620111859236742373454184996496341135025815495511556808790226983639488642262912912054104302725093261962424678698253748825087926514378899852369346993511876774358160030178173650254935892216222847094734011651336917379343707555267589260328078342207498542956650487937018518549937892158220489988421488631720282844954973227876841336811748735270208587778694047182469848634961131341366338319588493195007278175424380509808136116255700081366181249648580926912406237435281684748312770030382686358663269345684602153828960937562420438653777406939554972447105477750943307796712822922774100588378927131157999928036625495353465615390484208103027288221586112984786394476954411613058486075129171885745592942119982482286984308118112576166629235375056265141854773991326273669784023922530736296881166264772956842355940075102646778396306376448349906109875185141062836093715247445544077890714493663171761105282883641366616770044654115972302709350649083307842695772038155856526903525649733562318028080934569255586097470943067664931642852803522802911290657215181403014129013211071708567342235059034533013157386183526196209511486369213221200083386745767593862150366424409764503830156868656951217425526958967970228391943114529383572342863856583433195385243860499671405220785216940417782573301396365928068683238893341118539723065073885732241232551417898707557291017878737560654546916371098857486884405057986812276262642426534574780038388926403606311910360408051414492333540406519255389412969174482562289422865008049742875806997528008964903779392097343997253071395257970563307407420217597593811186547801112586249968329360363029032321453507581615145163114497373582741151607346304986166726450208590731071010532869758737085228093638157387669791477652247027701062889579240193436041358201854888727689684409069695192585513588774254199069404215200928061538080363061733913599215630016722733977100555129109243566525918279159143663948500902405710574510070666735831948058897232774964046970552177906537607093797881032749766087429803097513437795800315985053854531583074103830628613593988766741023205077621204989530307696653349919301425247181623383341868741795084882285369592490391969953698920862927898171291217621319616805925744385756971778726692495399909206365077070085722456472884908097590256237754872954221841395805190639454679732214068986949294283525868393809415999676053745209601632094844498184438199292934962919521390576641747319053392668625864161867999164336910851754219597294547786671740638211199248202985369500197367630054862373696314095092827116376279349257602246863401342276650320407970540504186666414020604392133641741912939879133639662344151738101642292199606022751309570313463457359687035748817539140523900912032051528777628845242882244691500675641044131256960222956394972273125358996552677229006182405089876663639616231487438787925551728341614489196530867335376735874124054492707238560848148522671684881999385648434173939504607268986773806544637049424664543627153885149516542336304634856807680804757284905886274066021768406172073683466899774582914453169262772533609280212759700969491173451738645684471651625772022489232384254634872781560649555105367463965304756683538063206822588957346468569433553224048939167480774297113600273510566780187066615244903383710455737544143661095228761776424449672277162362350212508306916559799786705018730428493538480480505060175982637248609932007845252200906622460602750099046158118207079910790548097037862672581225787816242410369690379996792015634555746556143425068064969811842065511979043588412738646528201041426660090004775933855435880950950344786202910589769830831877960050905327057131514804619586418652109260586659411328064654883742962618358962214536181354428204714832064219078477519640893885298716199142503207915311158911661905774686057362096425053364655675207936585305339202474814693726031287109103716413761494485570597532291979783191458135491387826190673803740264200198773698575744257747018225567549696967380952211938929646170838140096564389072724645577166844822206883773785733854417088054095914691801306627286188377874150300442532601720459993957964181490867907337835949963755823221286614777174082233514888468706466492482747099152349060037384893862253429239254774650784761668702022547881143547238810985160534361372133887047364077532829974891069275447208818116814510240285441190160002626968263403537843531895421427896086096058316828230166186534665187238352249720390656892538884759941455299972537487442363449371348691258926975212377141659369721915773035412659137235699553970685463480255157261701717451895948492354478491769112861343581049829606858078371310815465129711393577904403772982922939920381412651738561965095459220091090876493408910333536862134112746485881332323017281695203307156214858538791464381947693981624086906520418585674476408220595290153108248665096802779915319135662541112622834418005433748056363245729739529060611071544800702168232789871988462385146399893793431966362925164238458575280280364362993337557349035535548697482575787192305818720607652057977921064316055580300945683598522803027113370321890080140382582014916582001612507079944939585664094189300540490805784929467419974025323984581485923177401930093701111688179096089582313143683392328943366324965198923643233985213111144950096721861667244206681835173771225745875270896048741767132322071813235484695512890727240681570374822434608606311135138858814002636144576954563296887439376437322096688983976822054729106376252768690671513957355782102142156827089189670638176800705664642320933933491589209633946928713303481186841035402203215023009557991503353021344780015206706254026777420313164501186708906648890211119947019247858216425698900491788076586600297993415325753612676471996968631922837741145123685211889406003075445796496672336025350853361517291872409346745913739806764751370924824254581183226906767365344905330862669897429590946524281148201437017843262364285308410606937367893928511878309977302961214594594586730226383958295799607250779732623384492624483566879065890748206573824924238058247295574556628117419087398910081650575261239636382118876625978174116404955961607974570417398999191505133312955399155215932896236640610822303798788056345041444760515391365150443544920049143312093155738760768592285613769126175831510518088912312047223956812170114386750292792409712151192152601529941356629904970631923435474293448157097416325638320281821438940448959845730577506773284296872618816934198912078917306436370553647983163253347130831485062498123087801398460661914549196973350235964466314316726895402174794682733241950397511768996967958046096046870574903156836257098139306846710624583764568339391087962992471703948763933752108307602701923554797274290574705974137484962875493624756182237491379036380230396143959744187538144925510468477836169473313991905887358083811741021230241092976734314110949430502736802692463502254522246706861796593041281255672759450693345549299303462818341134846212401845199496592510905187912193829647136033047451787302321132073715338570496389049576683178790495770739453169063135335957664650040151042117567086260901862273321596089151338125469389113584421693274751570833927326941229216487003783871810822803214504046404565160894790778355545845067107149719351269928246395857241851349689114570855242463692058946608851870352048826051623486303671005954341296839843907972349384124918266626444861252627341332167433267055613039105418737251381399215051414270496717429352003979749569285165690686449794566519391151364950264983950192872087565184505636887549913415798681277653317317212780302476571133627588972944640853940203494589104721117624964079430340594525373922283979155728854722744142291191800660076878915430186318425863349828011869491831391137372997462014201346031621177491966738491678139791354055455693641709579661213471676299179664620136816822953369224506132833749381094653065271637941041270530605742477574108617149994430904678653350916588667147175419665102094166715988766049692500542223680416645664163190735683639082870119865604878860192864270005691427692301268922981115761026962564103118638075861142478130678961902464254981097972851999860739361984478556256054956244758025853776078174170774291481343340234414463095835278568567484268250630733190296391096626180263169035019016680314910007415324086873735840489319493292102975457924481600043894287968726604367092359431199031274297793852838236734438733016026129899003347856201217593003264433622859277889133043166867821330964082580209541645362371998036272203776701466640541313453428617820827071734608274341607818633443569833232714547095862463057821668620818274769059251837279646663362278216882065000142336020941604629876132712096863133697537847377667292001175838334583153867069546286162567744945576279924837112323834808971198912444592704549740132005702222171128811110846995948544615455017126848766102634397730476861300671280406353501897754778777653489976579131798102925428322080240782564362501893840468141383929826338800526612838418038916748298757616268599311357957284712772439294214472427699053369879887406228895756038091118122864191105359338865852034531840934672430002896342709561906977571500713352974021310753815110957553038187640762870221693246853345885207453511935097576890471183293461613459149932337665706561160885348691498041316771203035177058033494447285592247385489097122171251228063233804265480597461923622878696501471808699598094493303354936786733914165567859582996565623848936202651146657782661001649767487101648531771022195599161508180740905292637085090193403875699433406266374837353380266024145318805013532556904354411543468885318082186531541382215934615197322368143252424740412570256278291666741331227988240541052124153471729298056913136301261282280068356786569198112385635359108203272380647758438301085544837686665140449358023972332868417041827263705738829316510914237784311946690387147200583247299165627966437391550471338187518522537928792833305927838460300040685063498466969185880666064353776075912049688598785442279649842959333118331403450065407743734898514418249027091448329786712517530598383646372332775967462411931949932537661680255867582430868652887937799577379627853693658141030695645451853306728987046842585059208271713810324478006484754545500478718394409211523360658834923130307605580140260345808442747828404585669396774147964268047269394106004187237326770515980130768870847941744206704760415866805404684544529649354236311779157713425212435320770766389036597451045973296588338059910996050902610659311743451999829273990314932486279446313804672991720344540220027860942895317883303419329299313573908152024866677461722324314886917834363776582529284164211288920062648232743932237007646159983510496427962473197909136240103261878112374805703647258590128269106161624055436004467129589683724071798293352543075941050667583222905031387517738751136736175610177025476645807128635626363965648514975692184006750536434615922663913519442495888867878265265136089264275904911703524628503402956161120982960295788230602062153223523129741524181624435717664222092798317582638004627847521122457982808522931275074591877321442665676826853220341392174851035513335402280219466743772895227205769793235045534766065614187865405208600586944168029155786678411068263906084975266963491234414883823844620987321616030005860246305358529300477817857444379032705128704274535468705826191036068387998918172898401623895811928689898585882500226948669743889301863915795587754304831215946013123358195749710680728764177620205233855995229252854795108223431304919390384057263225223224558531458942358300378792109763342985237341229948011187865716930133021738783519317097807694851178013022441566369607390565002313767101949862997578380319872333645473877859387896100140467277695731901354422678545837441039983189971591057650072268789430506773577068920080358269574139065831166011371958113995266019599502480267024101452605052646924474959218659812891374417498387338276473877454505793236000319592976154092207670581922237217695828061686006846326190388724065563645047320059173655233535136276732576729993020931123851559805720567519446638059657677997822232017452774763019723903890470616540287413627762735852944191738025552754803263835987418250840409085346348328627711616918915157297778446454529082224169876154888582628996296775084828375544045855952551965401646403697169607875681699227881198136628899711071171786853771902377378767668989755345590048261099317395702758174480954511130703048133014759315418410845205065323424776950098841311547877783040704743901161094933893138476966605943900059759119469437225967539473244734032058953782815162530274743939471955710485683866921734802185310600158215237372880334903432035274619925995518575962372712164914461394610805249379376005598418917133487541667010637850641776921906660261002369156974137149738385065605940040758178342779765098832100089703975022075334245400551618230300268427494676277152098159046587340469935371503302756462514912297689474341093882626654426757739393484101898568152494892261263393611468825178010683122016331720038825376204500330052913871422507151655229389675556652098260916572002007870725494458806663547849022205819024138531045319320227882693605586511169389667234762669362702802320816665517908761589729339998051407410076700312056894072110341429216767788052515938394413700795970131510320879921136572943222006586218364277411248554924665151786435721131829809672680869848064111222296784988866797762083282320578838457380555458564924447228754454703494591545830333899323189819376880266721307417340869441295948089012824315400861818977305342874138171505920871437601519941172306305586044269892927947625301124692661088343960771934676238703284508262577000023202140068366749837222002035834697981808789045379735308065073462662818315296112105401192650801703013338141921201301621867486598504288234693756379997080525794639589544446459737152696733889830026273037146823290841723467814442210153923343738199089615235110659385272677520965034344113367795002093548308104421065346528684254410950991840889450339658649952966664072554832861236543489936858655217060378016974832250899407700281623824380816640508593913309226649237266019844692335370240942815182126225600989491613155719352281371957558680211995356946579442308266370164771816924818690766452264388544847176074936038663066533815308891307978987472229980208855012638997990870849688348349567024923391863649813990682059641129755788352274087296449831123441583284713848252374840187258646166720769131226357633632506007573280865516550983332446880337060106576681860568867746190431187603716738820350381359715353294474654289121500311936695867093320063252228420541950051396690517378189131200607359524573406478130544373994150535114515503935379610532156402847747322301380900007716131329349763166126335550138444227771773681689588297263693591184881172565141319343501918243632891942634890540244260107145615060583963028023769612259339594379071438127203800588271549662086716118494587599303585461293150473263307113889788645864054652789422212358142623174725758250441519551220388880593464174337088601100921412793080516477765130562207430289572334233879412462655448306464357620150132023236840713394066520830339983575697505925762653381270848974634193288474175017684457901078755113784740576480219570377070107571635785805253666309546871702874247481459174378951681187630925699230539117216251379722436979019303732373987784950763332492268620054454100139003302076535809027625404463864701951484962848261975944035292213372300946373271930206181778672407146641083527786205093953347261951631564743834593438713352833447251912458973302707963929926614200737469735468802708786712609016428017860852173011895216801799075059472582574178450634605230519719345240978969385977948252538073652152424644000719853324944761922385259508726273458983495553537940508775460230527408671507899187284815526927982718348523723132792004974818950538511995386189096607298855513986584602551718839333081566457659554801695213471892272553764996667251820056545879308783919634222206907940629229797010062092680328689090960124168991642382178821856846336034167559475368658774950499916693799984834818256304019492985458740449412863482250484267604852127586079712421447641938612654676374544313957807740015535111802960654190178419515964174648083039176505071524932428490299784398229042513302478384617390624717720539084036181731635056184066591962537893193284743131792718545402372882879051482018979698775637520410832327496653133666190152963978023968115814405419713096709219083100032402915735706712426705914985053517776718690885107976664041050175043874662072861102868652540263586110677639369107196469695280903031795785552410352451960754152661304086558240944364889796619006418202938729801627913867563109428228102813443004636922238401803654510301090857218584269694576381039549152093293801109372080318119617402558410887501254664163556068781058644534680941894047019157299601913702049302714503694606373769976460990964871513897852286142190981239956953293716167217921633021300405891138311200930903834829896989270824184286897244853860632311263844985360495625490533017571384038115181687441135404790681722138368176718410611137672546140386494981532899186585181957619581731614637046114765332975414584777441629957836768028394566940802761811389163745406157939031704338097885484714965372359244911663094528719881562112605246607206263899885156444463639176007576917905089286692209116817552355871486205451266138160677179116299496696860360043866296706670070981173598107839415136865928699203706456381306138740803905410935549009829652185584582064530189131972446735012125825470996433413559822993119497993276860406227406487775048459757750010944898193933634345874185916076567877466255822299694648638794248167701697467722687933093330518345681552028891102967337261671412541950708876233341601977161974821023738102244223693730767723749245295353007827235042455486500989091016143448251000219183772824961283401262812400832969981393157893340262750311202196708026827754064167130648048533932689549564855306418955434627395895895822458433195894385081597944642824481532770723912648107810320771689684869511965422386825466722951438888650061320531283942514806018598940395354138882582162568582297556462521181700202517602196312388921368181767676832737582453635427665334467142829351479513372593380033712759524894700315756217263087595177045727675733666055147968908942241123993347444870479537425151261921934130748774961667330318869928987074416248813459674311606864640807171144515430107890104502039066559220438999783832866996077357132528373303610331310299773915448812641119050485299628307357116859218535669414415164153287569028984812791165782320389352416144566281161765276884699542355157226148758877289516618934055639741436861643478287370265873427693943104522919157237788239046264985828512594355651628922156080747319513031480925678503073806704876415357218574356889586926898415381128322042270725285840465256699307814077446135052586437812665576719950583903171939497938261492883996393777109398646874617361726440663620979765476963290453309572296414134444225134560420461010348273803710356297228994439562949560712389974045164785597283880569675369574272877546530251565960042022554046089089599282837378544174161659253219470007970367386532043029505297268045712633434331113334690124725521591884810955367426803580638458558280234505894614308343478238768719113873013375403331045949800805166534266681391371692287019605817648345002431682744016274280873558202594858641608840033781833562530293011077823771773712494503384919096769519466072151182453243144031865993442177395606016939484249197799509180061168614143437734252763962595649920711077040909836213809613562102576915252314854849542649336177182564080003441664350894137917392965422742328413565049384180552059567999341748957335137504883501623501161417287371193703349160149241531815841201716600559975623054005909347007682563059082146273046702038363329303894578890064250372504893357146014040620817091441988426214682882815816845839014972752635963463378806281206508132687514762244951550804653395593909322250342010919685870295141118663641586338808960858778468826843791310396048208180709767204070361839816076913703622422561013223223598222376458327227888366586214173312428843249766351924779367497769986393933693013654111086026563556372244184764725310005801988756740694926084058837889707229842035180231690446737990494297941531426617939846280567521550411183350914133868076181488756654076557878307461830211179058272479755469213664417088591545780177055427958968665604081838881780648192889099518750091978175100396178281335296805637082756989011958555727860567443126446392460933465227590646620393403688042332768253548544727280924826836433504802398799717087986801360447799769481278258429915653933285753706652890465245946054079440068758727580912116129076411263191099428455034991596270818409010069219944277480113364651490223969212896980421655648601632877643751634898853748402702184705951488480112951936360213357217459779036866705811488856815114520348967516145861786848801256022042764708001406200378497188508198010091460185405178109195745395758970384626111392930843275682020343762026881441570639551297670190915096551895069881173097067267759463973463190605856696765094237922087339522507938282620344676114486654804216458220799526997608284224079592328108526001533102584386060305340136569032384249008032616441953327659550352787898784247499996116066102321653222921735670408455517056180311868219096129204268143641853372168241543066870952828845880924972680074076521843653778356669001377064300654791233750966148106919371014535722897763390865514674078171366875745138686477997070161117187146272561255894742441641307133108557490162721484475240712615216333961002826583833319457257205373427204256157439207213248726047702058268308363629476003839692672347742064794393415744004506690124176698033839513971860249936753075014341537186021222143611886628345504959446996828039606063261189500308640990740176381365504805103243051722052640613130188591895246927795498182810098583699754083080092534994344371827875135905207939656413560709811959039142991874454460427608985389701332507727567938110023667488750331176205846559550635251063772728221383115164456582274231993293697262270715840810788379331466316283305154372461866022172013571739558496837154691906319136573924278801853226465034096034651820027338116476982832384716654505511534164058177839281533157874651723226500899000143903054312748725405577599164583218908239777903896880423353605016435735962933208537161609475744513215658868835060339090618336282002673646531709410075789522889697333928460398145402866009204983294135326603848228762698419682383261961396753900602490312166522749366054375302137494851465965352682815328949037237805564387359432826639813776667133726507784082648764059506146655349796425068980747361355115575604158892512910114362379607141629183057688547698423104058325324948685347407596214592514738824367287687808002024448779103935882002303884600811062159118115155977848419439163571936220305491261816245517400255700850699769452827372050115989769075463324430810284960225318694262293834103295677284892311429354612887058079494002835056299244854686057085536889006880490353497430702292787045578168142229864699567338278331941382855596030977427295723499324462113551298804727119915710942226718601380503730517835870986400438221178925090264445050173498513512176695251556775411857221959300471222992870504110435590580952305853840731888309126330270566342078103704708744498937635469527875940238463237129140909198468270214664743428700365933835572389944459324110330270663335246163152452244664759473466934631884456668117896674679215357504435331577900088488405380079922464631715748287511762838754070246076863056637375617815509490414202849554499362425502152930467920753390265980903057222008172091181873942770957054241559281841211574494917948391290941035880938432465931862388443394203522926812771620258559954316815514818920859693265989885238590570682050535321680930478014748411259571217392583071318326624711262904465848304515624726215955168222077141572191069193939199657748534384730246437469367021258280771249805985021419159766672336492123934283554787378110396223118887812739679493254034816053510885281431159883061720520169812505448454211225751699581359399190962011079392881747934402234139417556804880563508753836601233719283364405770991086717649530960107361178521870734231277716914375804804465138194015120893757726631583919195866377415072804889243010368171662743355021922551710725133189649923074879436618782351766767317429711722582469788955631449364651237535087087339770710404922015707868096273702244576168820233406588731455743004135791318287290259107466402263115124395549194765722870441431628808826233989831050683090532486787732905920911001091562175222933081060213005477781342058845697874107541423717959372569076059309236254987479166768358360619151296468276138541785456139459916683822208548277166753823907279643566200467660865875715128701608909579252324506066112591205023806760034950797958449995759250664261737501402142505348392738463563661680785640753067247388125417302046057275266480312617789495085580569509690079307274934605335924445761364596578925008942215075634236484147291491178311502514916709332491972269927719579736206380351810331114915667521985083641725737547040815746718594867960278383904655246115133976781960616025052399144252117657176149341132402598966558284681816543938682566314947905291488297349813082496258014165990049914653063475540899672300732293591279745454793774287299878446688600011479207679244581732036742550351667790474857462565347096722384291005208795067268783107013949659309995667797498249329767553568909385369607221468483969600520770912274529052137353727475714846292386671568196647853886115164878705115725171588228827877725595203370437282623697584512948264732357767607086874280862760979339350483943651858056143226688156654206337963337409518261258535817089395107580490085029664907018250955215296928815890744646438071522349695642197375857777381718122253265356779220121660006032791144737548259500559126628087758286874196247653229491966893843802748275903251429313123307789531539332573658945088861077873932479176331823840751787548621113395150874275313869686041624422790024569548475400683964814781584770138740979211756182578920375330294508990755990879602476223126556307100588857191806506985557378281816065492138155968748569048870307282055781634696685453008519393501570473696455113957791429905231377604045053587694975478533889877820630985299227885665485176773848151926939515610893415388685784509761097176706854667698272316145204223012856854851735978347709511024224453402594768811984121698277884528427031213896923760037352039212351264370439347336288077476104114755454536016867948332104501274841326744781695505274643454608881614309537766581417209714616722590424752981344272608247963531236059941681297325106554049735283676925927613600812810012776827733118475478653416559192562423014469597259733560733533751740627191198034632008182815130843091460844105932669887363471058325599211933240873861178898086484434241008843030276134926392781710817533993932449581873060837892187120168601685421312652449117808842266918588946466808759697786350265700862980754258270309991021949755468498015514697481984372108818049072166209635973671494908587308560424672606234292240028587034207156266349314877215415035490194879805896067052310989213143816060831331519814388779165756419509377741063697582902870375629181684012910004811151091692134009417783487278974886743189936398439055010040874871963244880342869479014546414917675954044559904591427058964931370746179909551182894578476258418130993182445844699859097563655376934658370667924825892165370212459104911270620736064289376866470395919595773608703531788951067310326408784387232615637570117477622655516468783952418122264037377730095833115514047814926871020661452726759103797014430855372030621400710534396998495258194382699384442613160514525662823661608150279239689997478028098819624262140918194476357760945018617842443510682966734143209294402989171939244566770884555062000390049759824794937186298780022246695278911456387541229109127756804981363052930379211178290103411292469111641397831880933455133963010649486438341187604812868955668405107451492438558741183251998751781312855403504960605896689223764056302707625638331727362141944151351589611479857580351153513001018480654086052796632119778034857323475750683471797076994821805102790769352220808934002014893653082237573632435573133933603868691298186035677663635948159732833879095204729135668812141897472571649034642670602530237695104952926611144859282711885232711136344882999907158152417575927212743746269558281820263956137266363811157835928190306524987590598319438551317295738148965938688171541251129845923452671955594096512451481854918539062652925324400281789536555190292591880015508564534433960149285367947519436404151562667310178319520543990517473126257923392863724507204710917686554912697700192788185806242677367711321654122167018526645565454466433260495624454587731576336290871595686149968658199544891383944573165518590248502035553436942887081926332873349437500454247787830226761320205155116535031835747666192667787498160316654452806190806695029630906583186168763313194147819945525358907373114341981315702921074291839031446148818357413426669630895112496198138786282255778531465072200502708459757163551234897972104237226000353143573081087690181973471736670616022828827193088649529111180452825648988835032625608605301126601470855534634899210352180190726134505205909064681635100926757791610851254143003284056069700019027166451096468172206683719163499181833923312808884670177661005493675112842307876583654616567147839605130304350820968387636980343662243986450379254177969258260536759730249684068799998128430160195864186426512380566346049781107229014192537136225237527878225367888625710945598913534519782599975750262531878546017090581893597169802879129010811280497861949602503113777014478490938741437327958161064932798789520641651157885536071384403236637707714993808922685619066080832363158032567936423016486174488752254617559274068418394414900539487882821011530618341724156397812338283124952215248057294910731928894471123821683473856639773532566614085301554748344603875357194374755270801305792408570558605200159379480946947500743705535389391479665971712776832474410524770935232631217741136699295370583398985212986071326547834707533269311581513309582860537856604865248313445201672809743073387434621748095194723228420745084836734303285676542881329817816115559843170393169995881280283982401374529909130562431321905028785097914417206091492442243883826702216532263267753407194668562682520366702004596293869461598310451043999284570072295913611047454440689189705008925319279236717870343395710176416798142222737054981280458877567874748890375854520846606713968339353685531044805487645798430472590648359105658343825176433868647279012157454977320092063724387108261841612976498926174972299777701370858900222144366092327567552738206239956966965027720942496207429842105581803785753067358221098865401279609884723675696483059078528660359808449380870567283878732029793813475699592778878860564210882730400847388829651940834095469895233989017143150203257135872354025109753834101150842900580989478422338925327929278219392605475926123539994816574225993447509148729928134051392110607482816383440163171760324063017161981659972670141198305698044727811184402366915988877001323884244008589208020428000783098562954403553258244921130583172301209790831748412666104424065183494307593849196390454100419105197357515507598695781112812309902730660570384792308515189727106191977909807800290796971587466712063012596454003265822687452960020667608742013441496137044616622665028208795491245107792831562014542015871812734015469394320642580607000522063509510337670802503101760001228618381739006785571306576152800433838161425095373765363791184075113160667631141494917794233996098505538814743190164088447140373961279625778214698513290583853381161838656345933064265176624834167229966903236162407854244947550988005143385128875769977600941402451334776576902028299998038514346931026140228696500073398329772797854307830894984326775785641093337920975946345215419508099949646206299727620827296186824331250938851445599326740775257339341778371280769682114009113702612990888017284283361675632723522619013280273260800289109644861691382528773763832896012249325824686275056671052810419798726048465222403301304951880706095497257185430501589716753993327297027204922840569738453221444990055483205457186863563409027513528447654381932152657334585468543036749853520067319919131280700249722467901749657422361611101191912477245426813522872793490904362132421909465320277634909314960515371376271451294765466496688204606404943359349321707177483884736956683939735854746299500539513926445429440694023905616036645243518372646582188724883847707379330683986500623547527703620094324769832600617576941152342427994283573055415247696385413703782478090196084996251557597975095904151564215960986829721697167903444886142556824998845840202856882049929190727723457733347638092515708496137879336431012372267424526654931901004036818140399983818907313970679530212508905817868218235605385748673202848359386726429689485513549361500709607609999084110891624757027291883269639248217600711388997557765572156721752854746626130882006084810939649155339847199162298191913520106294305283216857772940669093994901979857165774452172799225232841518049454093995199152318559792571583342612147113697461342712149923734997939841419499193890694407311153383200212083773934820644294632272393501454112001666761471778459408050339291038587869898097258264631627456881068643110993032048145057783019948847265529274598146189731666816886723121252782006907162817647088713740705426157301174332585329529687320980006786500504584256010846334173047038967188527439808247779227368200808448543381658181944327669885396103096119517391663792570099316979263283646258025075431298099040833210118277699982505768604756053246567336367088689746375406038375115198806368292885732601657153213021165009252665493115256830870479172256055986189535811971406295506334012009961623903780704975546051421938379771738937883554775115060802655663551393461586623089022089150144821795237257916109713371703463908525050752206749067517302419940523818601685331313564299421698978548667652297842032077259189299683181643159032445599043805980305369088994382685998328938222855985941715290970147158645816144113846575617042607508684293497151096843871008869105943939703827313433459808101918965125119319674469218458618038892045319632975122568500320854265540184177662071462921522291300893164025845479633035864047170916661440815085743588688084448979109033790533864971052104475159838788040341218167634730876960299727072783508857230931399860868459366814026969055508706928663501669062406659934261681574255771138005900827302345136311181960311962184991072638015605083641093425169318537966181142544206441717529518610353944728849849702576665476487232766043512090683950415514331889339826529759042549881141213416713815853118433044485178224000585556283338747803893773506348683101491424199325198985882189172897974123797183179900368966069915927814280463085166546511674439969745221683223209423673133729779465395834129782867461442830960316161997723645256047978270996264316708715616327773343249612944940985710852105610658388566003100257141978068144707332294509807859580978632734873093346730917361089529713926182752640518655574589926133681457643677582855636483631493337296644367811639012823621458335961809069855428375196290037099021381261603956191862945883123608298420319071898864467879710269312410810251666458885294938454594631066251975102615207390079629748415027822713860125695548238277864205643974899514646788489943309098265680418339588757454093801194445342125175910340917556097383439096482913862974002933415717990408975966089249582595964850289863882121812809987163044035294756703471445123864880912279297408062652252887240287992719715896960677247355824039130736805513851557474582456007141483433445047529309614462880772628786958000853615268042105436311887764125150146888338712849531547206584332508597816494850523451382726563167585092507938895892719318930343060050689266018296923780587650914383141434680935085635711117196522569018151709528215639098318313764109645776103349797805775162220215431507607226668125220820637833934603767775228854548350441251796328460004065469556927515834729720155212107993880665126347332618521895805031369205248147554315301301077078268619168394821005806748779293216751256526324083335505140706407694385375488528639915613213529608506876300847534106935120111198924713524218781090874582654346877978386859974046988104261381813844600850322180901437653034205668541983587194692227237773912583974242989496615861832040596631984516488735432311947433296867557894104518518516274810789584013690643626883900092534581900912836247950635334784533402992815649896517978882451491807034749294488717548985342173145715396446222541423583707730486163378284940441514202493253561234266228617030833624279943952498475109119374312963062300013067031108707017215237475375235673275423637173565398901481348717155306698209576064867484157634886478451972721575302794519618039507841196136180118118198358524306595812979184045127802322592533789614483921993949138419854886956573617875151352520275555210987461512276257678538301843020562935435257226275246007666974243036338118198250583563622995029177960913908877583433801424614936654587582378665684420201543690940596138902498110923868475157551018525361986848353742811660453241163088673946008021910280430472067510111176527504961198578910045744774444014959728651741460769770367294219135726156644142729476924149790666412895161864910988055278304017602153173813208396049619068127180191896600439225946675146026174872402765539728243391746044939066037821924365720885206595867359774845943857103948790066661917095986018133006530360718281565772570028146309952836455107065870854397637772388705472497179861187660088590612185489567210076925556253895306494357422393012106105766057626936500442531535257027403777671912166228411775487182344697102981626458068740914090853719616075727774145332418576125787005143158904369800908325392556232952128555020175182610868304299756796988419846082350292198471705511460429356414171084169429512006477030091188230686423549522367727037396397660494481835138719717121811750528702250867045566022300386806058864784090597165073360875306699311013348205202341164252032446479734287019702447504477176201528578812200163080945087494473436816680420495092475954557501876588905213996961931490871116797971179684358246133980924477769484631223008469538974034565197351755022598404602683393255597900636829428891012549965511178813341786663560398262722861706147938655045591259489260486933710302871075384616283291086954696158192910180221418827143850212183655167329028470632619983754229868495954073859139314127324451668006379142527989924066927181598480978527813057032604693990518332194413094253346757535376912650327262470836465127606138821998439785295713778866329211844631246402707493015061821271972867684187865675804659546580518649132259046379814329502155199556672549140398569727412499715809451785937735359797819707186997802725273919430793145585605047958755565139262130776227781637419056214952252922145159078325896761580528115315545027986087466635519308265622530725505293128435977794339255997918439171259405195101714556363487328263253520127283663874102296785326935730440275593609316640803885879579595553355067359169272687176792167595911326694364187555432727839946011436595080682389103121876525783797103696297146562093148082345824957458624821844960897094825579572300408265197733475634635147147519519458073816311397135414420357830339066252032437793298244332122067575039956491765848713178528315715326664924407946745748901838691653912841466268931456532360439402441274876453908333154240554556452909841048590460930680484645289139022935102316166825948327706184646445281498405121494748504732803533340329244834623583245104327021818237399545867979890631538968874865785252907515883558852974726247081899165017437419094922208048115717394138040312813533827119027365482568472520865542041632971476465658818094499927360293894535308085492015200694957315055468058188904752637138617990630067723817373425532794727229472167955253992190951875645542700883750577224677079844439641283942993457513253499171497632156108419682136459418880951984333167850330963640551127188659823532814070675837903975216843165286661856618207346908891413661883377473319407956058647290512746323702940628444771639581063111440385100560341328528313448405871840998546142885620662438518636839741280943075271994451542849626995255036345455167864320278799775749721702511157134613342661783141293207138843306472710554793673746169191335459729900314273589806466232761466140023900684030287631918912942477405291584766367588489465109777546217164867985394256884206759906861051990801633865500024482192970082616997130899076477937960472539398093294455738160846904189675950998733804062108191014273189448881592477715194188949979482733935449283443714102631715801736407847891292272975266981139632935098779217282334317706620127232022961017837166129778473892343657983360578346162271572556087973188395926130885370415234711411701977801797982994462715176892270292024372882120955496829083163788661075405787296968216763128495078616793151079770970595797131111440013752194126489740414136251609084779813512198987700996318937208175653530272411966736770306380619914889083922584329211366939725770561557411830621322281812574625067418135380685035075449065722238324309430714663185424169632019267055324691785139376866634106640161869901229426958403214245732320886464733845832697628322319829652441657416868298157178125532893249867226691762890836241186702062942125368848515192137178683372583001642582805835470095483610845246589007971143487643000735787427483884252080014818432123503182230512758508113564609764052699155587155538230237521299096635369186502633526327561491795971513312125869031761994366811285323765936457219482938569770171091170612271323283444431264020600991989631913300532492338907879633035903126645674974843322192597759835044682358852560270720784265168849183254321317672526161507779911867975632539460466095906656004151086287393401516723121069462489128993110142567916211275516983811532227215459023581876626539503623528906183749598995927610952741798504616213438984177592142801277919405745432337718252552732815128475946652454939336720358359476544810333551186772580302232422179182103008425175041667575289670156082306976650576992421407011227894970443228685086359368012931123074850778705232007173373613359632781648742258135938188121265230648415241125899954114875946048934757878149026859553462388931681778432609898124516939996888142936116077571954828929871107937327638512808922893168357344735445419265877023196017086228879323707262240285240884244041481127462562158122940552368598671748002320069968644146812154623578673640713800830523759234386203348339641373413317171435849796411760509924999787621115557102042704178275847064637137547907475630441338903248510787976237216064884906508594780184124469627332932605040213518708061832595686745222301385410487456301403809282258337407195895142181416176548017138791335720570832006778038160614910056578944625829006366330009387408983042793805889122615138162228824634799219614564346683839031261519033663927858588185998581416464217457092257592007675956709152065013225260185675058787398130144806755656533882100688580375009917232155823340824973026763536869087095402605748412472143643321221754000356054661471379640858926524147076134881303889843318201159638884090449827733510044714011828203213832571735784388306267543632302738038711945655933997860053358380147523118887016885857181822223337422922933106069445546148660868154741402632791695077669886343314539866311700968349036103639378297721277024912874532880624737658867342425660810214209152964575667556558661860453245065294093876097801727634102275132265464171875609207163423133621962267974809277666891171265752592281088954597470516799130873437610531809804583861855141112583757950027981637446964328321517494305650869261735188098992694403263510659168249014667927235305596645894475379318477238945644710594710144767281692075588614625273430898048294862557691708121140625566475765618082024217946936143982522538504373845096317217492976212977079805538774773641957184074952847566389116029729519263137242017482694480252969479195709644454885024776346806467352237778331113633029036773753281128526116081715657439859283983722262974395509858621934000529046452197928214307605604552902504018315801573933241519296175933603190094967398885059682708966651999739358280483093169435761417340682703381961064029501446583533865316896647697868571285224235193912412396687045000752578066399938091675447661031848978581274686330355997491006706784694622668528367162759918100346611556178825907344405294172043165842845670374312060688594656908558975405199025702023222971201088984742675895635709139410045247534949446627696208842043082846219493765358614359764026965015060281501444957577206385523364264981298351708456368347266840703623035827297660207891629075102562966583759245851619460660322226995909561901091272441514160059885220284768519293901931868663643154301321187354734003630384490494742013232145699165718890900720428711535846650795046868733275086916679860838808208027420267845962154432897815198943762405234271235165626787485481589736886956033161065288416373991943677530148711339330386509665001943259940524902324252633295504630512249689208347171346563962336034744681073749507706984605413323701912614340177889092924524074007122539613783631473944067599992521269530058020620957421783061688656601269362032754502386977168020560336482507152590283280183386679317659069192751836579765307684846634459916864430645011092149651322784694613682803460857449103276133007557495837674248967529094152135564424024441310086812674161949049990820410194620635073556879193849629895168112128076206183099078543873283065844603161210335944487983125446454488234851884132290600437237517506187864458295182863690126092059016280535333329006557434409585028994447301979091343772368504607798854475090117759347315085660176594742891157302333454001596893946647313858642776126100165023375663399375572007010400254200009565115750017992942666457955484652221789037759841272296275216611328402792671231546931607764282005526292289205879163501835590231265342157565699172174534695208920469545305873928509501358563128776415651317676463440528299977593508775955890065348168367524030002035713525358835913836426135853918657292482903705552849583533238045661965580833264720119335839033586810203030608352338800811580416137004479501518861563788119733103193042291474500850881681930412875979359584539150937997921110094418567816800703953178931066066598496942987511050430793293194834831967699611771078688787155355433553511254212092816893422498642513865042541911618303561745690287288721930024006567218809638049264057121554867186614793918803597271700865001006050931951010356476835852862234597747442751335203834902083609070281638840809365097946771447898038213567859429995025096576386056539410370809319028737486303929606973697267909504408695431648862787323992178659586967918662601856863804366560376907941899109076988425717148310514923182652708706431861482822127158632670728429535636765335700807738818256792812571725761318476640901224748158018186749836877076611333104713112817255010954993494364083179913450686754224866361021452378472036322483393989456117653443720701794829639991839517461475637196562532392288371406734356834786762048437213271143549305605362130058853146803470537614472453826738709008995231945201699784776189824142261072538696219910752319426422905607000465984627741658807152858799217253715199693625211442893981317502843874228973420980282580161589939802358263001141379332498315626943277203968557317347177962855562540630345212525071826148064318932923599540854956334555450254343824024568255281436490435703004171744555320335515032749423819683587434962215377747752710834740139206026902369775866372665455699535717544624010076096686162422406766060940270865451855371784814285753301333826556808019896431153481631069063576928140107533489184645794239310119040044788447358952842084262214377399707407114588401385915091880113557235211510811848254859110641216892571892810654969529227826781495245297542332974785198226683239616203595382713814172240999965641928624604156040719791545330314722879640734802677762685845905881057301694672417960344722932654330397770634393961737142280160012940028008059667653059947631829209180428459554264096841228045087320944171268643698245137850889564301895703653480687380746256814277370068262351715101524559748421252214420903094004175327791972251603929744369605075069725890347733100096517394116912122461719937759335068970528646720495359155789418789322628776878119831679910711117567631609890348186080057489667994009399552255601434481945408972080604284099211051760284662774797909838866929260605008455861161817687488436305803928005216887063837678793135345876275015880904317968326215020101395141728750930292230173900898357888220378892625162148336477362255313428799902876365031647676677810732284200716943925233125994756096803696834206586596242668681350866045327004749724604003479798708713068906810718114797909857264109093815836252438072079981047972731355716139199700442841536170952822216119207045410351473310007057432401988898892727182258819379721136967007429281114232062215073540465740512283493634671087007180976441311464215699950633949400968454620202633579930520849929097968515745977350602954840289068847866765466254732193702453082586588950303943820435963093870106987169454404161030241035065794751580923499216802660105696362759135825986184557485467794734768266549113086716033507352890583540064170437226785026782940971539261702751379507714212831847098901115844393620593696228156058793356627361775579085948979083886988382285765812718223159443132362095617740869757693282664694146663541286316527924944659892523417810746724167529554061911446522073030529538513517963130360475351507017606209506989525719554872266688944457549589947483224118714177509017843766573499198387902385628302195109076451286362240567848829480536360036088656186133799394567848818390671774248625400967517102225152791728637004433600815252502273082425990779599395855561380353173344280605958375101031708695294704106342215123045868648086094064895839479563616528693950755831317800494451723827322656512206537540301384801521382369990534672223922493469354057888852578038874520061876798797414257896408650838758355306862336993633718383307717330253109917894799187661211816962703278712366356752562025889422797483397573952788547060982081474051972788822864560182560979307748894363357923053858124059050836558232439793107687963010508612949180191537744781376871316387043384835700972173046039212214584004320215650773722752793665052711090865795586106090900905548542273216600048700947668511335765254944251584002115035782343289699103200802459089280721010536373817995094977724617644821212218553614244105908141310283118339958399974297526660337876070759982490787554689322100416000369606381286469944341214363151050025933717539820469618447742973578355674753550011746026715149108033519258173454051361902218215531108051089689942304395670533317174212517267100744189072096192515032999621834471163320432604382473373356183690977154005972421595049657293944919896734430789613559284671788091053313849799692239635052449928251683950855473700408392229222636641717935266205370478835098275960737862856315219170710189570353173395956942376351895483997349135050265785483317271515621476672649103727440645573191011108368020848922991201751724866141511984697773332267237403283862561101815841986112702532972218014819545972246809255264030592154191628086867779342003257126243589338602266465793605388942744445108397675827785852163418127688491440880554437014752063680383931790308443988310559125241966265978914217262065827859820454960130927191038776089581291404321991431922745771345005805333052321666079471411340438374590560466671612043687148303913507161178260305219842150785020021507662523187380138610935232488682538810490577715389599832274733722188078267251455743006665238621228491980304515050133339682344582980289732922872645295315059302607098086955823999955648508873547003285869916031026930125458072547623117485103474257374923271599652089311094197782340407739693636836435597960258711233019389108224802093362439787741449116782528911331896520777549305423360855772014840680663555204847060901905482823147842192659381561904335456705680988131465697682377565249887705967166263675913851066818216085941839456291202288354201329590022384847674528945760970326345783956001268204678001123498191737262764803073843694992623270089763604999908574005088500966951453784200332466602843535309231523122219484180348171434866549359428106157031939086235578397743851039159441807893724609819532146272075193816879842634217852187613093214445933220035800730806749920165818922392309538729412221166922989997358912940207265519843196750683806170660510791060223948305583927277211041512817763834302227858434027590117675991188267770907840519216195910874538616027190913912729290358099478296932081499732441039413003347940483490752739649289930437025895234935945386222609994941376311287953408904357095443100655262683086608654680723432979577200005964602471466256287226986660820448140915683864080072975999822636146636556751462297137387190327265884515868007840754952320181155307065956864409616676716139199368727024247776504315832672552712059681643670381551791588566238526149434287050140789365263792858595302210557233581770081916450448876590997445296728316900852090945534605942966454187072712623315940381310242180713960034125949155770165058538091180285820692568139227651274595386271726113652148914790485756894774685218641587842465124981662031460891082516823410964544941325812701837097275826892226986470343957559056870763277586666358476060188435103695693289741004821448954013308051406724942527603251590724981581197929136737926799416133901773348214559628128620218283657653301065112372524798578209611084887363978412068109928155964695879931205083451481200078477633759367922347396070544365290946559817231531909297959386085445549772945185084149582030927267882786105051191818364506739112716390072328989654327815190804185881581576569033740510711774710489841013002746979403606289197592956105398636498130984041483305082040550689580356939514965262462263690003462600002761384809781056813662444202616657575959525236131818943632372123604914489537838123745887587569705560481616916577841979278420971162782694637669686805798792431487615954600492632307174063766709573968597857724321548398423759610893340248746598848051923302912991952752632921224562262797881300275813403909496664958109237207288301144558659235131445344387400693959833845942459086919761254756316732736243422111647523215960725722104658234244997503670611333669358156196092888053065429398510913435694286383179157778181917743796217733665947990357994896899475259665655302557520132509835985773069759204457420489977976783405596390133050449390870198629359212778443223194952319715816683864286116937917481798754803854094820204403447802512999057593653550378395255817408689280689013460264996014606525846522286064046953941467202596918880998725864904398132469654065930990723055836424916829040794241248561982172950780777107598508869264536095276592242472820732515317606603535174646464499234729460996400455950435949307919978227747865522407445339131530224500855309588302926819916703291040121911848614293741421245054489822926733311113383206252663263146087647686446207698343453016081175222433786089216264791918620891932350534273147119943806260745624837846571639252791548934578295522566162270267678062440476052258639745795053843296684483724003157458966271166552588221846357470851615306406321806229431243733648789109520608911657689192122477953005256643431915001249080595323387615720070675797451503176991504490040454041721034531864037447090672029352901616366259375013578300643208559081452329966498914660399072752457061102414971096477014302728662607369788513970810057166646799562983181141816265958926266314965592236725096990621593917474628641960958688985285136064498545519710936621950637899523570051312931194432683094321537943424500485113395226885328519777222489642891828082832113898542325922230583857217203684733175463924553392649584691786898989458851426346921906410760780116001306209515138370398345772472435912396185239360620630960650633491437015698179536964112586480684785993754926842203862643453914642117612776737028011473866993897129116199072737346895371782121995901713740210628721048174366032163259998772733535069978757887491492860005670214829640550782184151331599034892212147969604364657503251841490037494935184635909719040859051403029262746173903174761499464146415663315768849458143953603076451551439252391765113999019295186208767914915879775114636068983881366791087690383307584666283633903474758637092713675340719474927789899138780507947920808800886079476715680419350501889947511008304494436720808235199356376291409428892231781617255719737250891416803619077734941770731713773342842320829950230251977435082106582843736075460586031846614088250071049293941549241289830589091559041978756075159315943847258414493527917122342137219575101600492643592669544568267301173689773707276259745538079567626014845069135125272452411293903958428990006463818322900287472944199917570352294403551273319971292060264454388308057848470375456185030798295777089838544423280526924518896062610798426728684635183957378032546917035683475553109507830127875580024734255168865123049491379261442092653240494371610765431391380638896402728592538654977197527197323455968550850953380539901803084432881548470495515236035298768257834331610862540589399761751193550376076659141019747447212393671724026171327965666428133622697381096642980869874091752427230777421452302206886582427315046022355237624924314876664009139859387109556404908300253883005608079112453379162186771039710832887090401900365220036285729945224392462723092937821599637670543140690215825927334792753553330850001484625807340830717457320506554813211051114105440733018319427860087879289529818935923229606306593169303787638667445477174129791018463641064383826995571131636913817769277557006926282588304598482519773893424594532738702542444321295113054264909192154052491996468198457098616877789350555794512960703803765186717203427910827150792090968788767297036944194661494009538886918448990092056138041005908545765759729081604472948739224384243394733926154382256992480619169388940343658240901878201922754103952340289696218117837402798404744481062282052481533948735777481276950384311649930887552665182995431579677036347657673805826168844770684915546514371133189021530913607556942256634626715434576706127993478837199065825410981818654664855624105949972991450768335199183136450035388029053444148874515872826697950572718728426642857022279478138002724526474746110182828781683613310454843146509474662899838221314711134399957777818161157593530613555307458821018427405980633160533304965347371164328242151807164667563728085844626963198013337820432282425249828542212001271383213810489944301306365429929372748616346717765651594815437660646051348087049859637820833396067412809570216960973734584500490979678098236037873276791656357512494812440513038256764734219869102892634067084934938622298809630738182246077971268714973510165998808544496600841399555127145216932141928066503798007739862714476497690071855170620370635584096191766875176859625059776733382356036391453962148003190092255156245950598503770367582455059988048320336718085784611781873099731938857675095996127394885758483028347343751760288683965095553842021506944069988213382163386022553085994601740136117199690492955717943896863753999127737420823876495563652590419225350771708114160779938289356979867162808867508595308163804950161494969374598738755724925176893209919421885085006038074619084600531796357065524008819738909616466507077635473233212485937841243199689725887410178707056093401382686179458823771108013710512889514135361188544958581311743378432184239711134179699844357436274836629539786997044827978840167601410672856983045738656457119854801772102753863838949802626574419301629882517953001949953842473006785815377897543314607192294542525606755483818624284918727681452591474486484924728360525345081256940461883761929897401854138141950257592420432915316129782451716896069384390871483177236127155982230459865294116719488861110388484991052954273668400182820697885428174153908053710684420166878958897254889600618024668691310619628787300527455441186358914700717113712477141952751498251752533926312004069140750033480832761104712081852678302385979508746573326500583760188930367592970763454255916649509507275513720881944650027693266541438422006219992710562205633403280511257860489791849412092479444640076215407379597856274938399981232023150428018708337146603994123539210173863814715204173022350563483537290653095296785356849228535291269364511707786038642080792598735264151585628401575414812008543898460858264270936224860274240258530297009767064561443224600192220415378793618197164048725121457165853137325360538015375232214026813144888995017404725026578817354930200630441085504511766539439910136400965162815507590853650892483835899451960711808045887588322516165188248045770142327678150212262815691784104199840411003265014743401435299526903131751918734692141113637110894371876129790331587815201651701587957802951256238624340116447418814503603590288649281845450602474310627234500809623561365327545976323245810466416664806994434255020316163010147576462243807159477549961164531738302671484384877894359429956642502937189834131654807413321652989938555183810349795518471548685072822765176437622850604131510120435559200245478045254874120302631006228598227169283168752061517561561953021226340279824659274094174069293838993235888943562174716590097626464751229940206365399909114243002132965976408941872906256842000803890219011822574776596040671298208552789079082152354866976664295637218574857708389819038035173165200397575102146574524276642568215176685526084821643971303518294252966247888319768458744146882748442688005208845609538285958263901338373229157281971407340768175379589618093170900590506617402006140942461163044280633126283965385044892116193816807363747480986644665208909413192239265796995792253786204305966644694894892548225733777483864727065040446868115948010179842725133768117328588878461661662929989015721405092887881127842367804949192748725676443662029827617677535660997142762503668516753373548171015743499651867136038797569422347649877740781499130935170945693850420235729621151579116776365142453758836312033525999745434394460497894954480080071906654182900026566337368748349613925530042396027415140800280061225249279729711735177330409206172449865478502298172573780879529177322902695251699647124598981334442370573069873591214426032434355530930214357617047660389491219808329745752529651807486502402157298349572064155521916867218783307931170436332152718151016345778372506971138776015039889889439777216883462240793475178683009663872189405544966328382557645294521030398679997345715892531185172800638999698808100920231313204501311842620861220401173351602423493966701779768659673453567642934176962662354670986499451298773842946875977361732210286338753853031220567252823956581897828277320411480452689878941112248511914851556595839270705069444533506043473112999494207658377867806144034036359480260935095972370381417921853816878143144882208170980195393571205491806614219152849888810443745434244422817445966759172259500568453129026420524616427994319670485836160317308005173232209937110236240914861912979174860791241764684143366586300436933536885248005374758563643281291805679279965230022289776768013859446911302994997292620869342822435736381024920954354810032844433825784683613117433721132405811652652362744445014347271527694681205836528179668417445688190089920268797383611545510286371663158921019412910883157353874069721216143157466809755560833537728468674481831720574390939982748169752057827118778654833913632885020058868376246654696541509128248361134165908650994483236537068187222885441214427957018170832928424625902395756385092392186903864064801928950855416091755462678033878093745815854622950811129801304169345544386180452754490856543232697409393050359172120086402374418772991139231251925982099295606847673525270601923348902378964901174531703030835846670830737832241668498188419764299745123713611236696874591018800757339151677639591190106085191754338907179594149887715519134994674312539657872712403616693433251151060098844740646213217594557919858376069466161499023503996039359462706510606186513238669470264250030610855001379559402660238378460853090655460520708355015241112685875729784648064264426368247335949750560708433276489006796737379051335499362011892518647406822079161852821631054882311936420625525854976720943331107322366640206759302073740116179255741922225909571261893143454003377861442295041019404957234353018501325184772868444723535387588493851864096308841876711697360535682021363501638060298314263200100451856478597090689324020841272343653042733821221621643056282341025559096520662832094405684159715334852030632602276084979981440847126707706054361462675802348466322786911846512262348009796534706198765926926553169774164909621659658550070666124869253718760537188976305738234150090557570793158769929838127964366959496731118768893592598245411628475185910691703252996899084325488640601172796397749123631029397762222846217175946137577949305165419833196823559769999058030218338423027272813292568745991497146764640173918151037363274401356532764133239210600245715300155488109395304706214425683091490880393882752005278784560984881399606143169899310024717086502062738271924004189566826679568265471649258209886129327443485737949871598619850953221553427527839088330224784137220323080346937661616042147218754762845450664579893397405526630684645312587521873275389682179730546435955675401163779029748762713303814413780173192100461065753189960074931768219606251072852158527279163425383801316496111189029098409531580607688180423321023664901687612662774380587248625128561306224957775351000022161374000480451140331587658158851493606163709958714106783651897695243982368945409125615720905137272481401560361081321071231958664189250338274965263909356620805801992821163662130684805746083325289314221599403957037712031394727422779645836511147520806373584477995051296066525394897815206326108365029210374553501714013771159275518913353034226057226960543134341212244993171945287838545127174853380763760332997311584709428296565494866006956326028788858381484228820643419638947229167745724209502786871887498385907067407831110101195498806853923597324917112955340912314073190169782689890962593740882072517460232805645300969603571987766620893282012904930417262906744663689630989366197980328986148143557455418290428136666069903321144268447737648664934746956171603097013344679789636044239823726255824240659181609790668865036373739285406800198350779539960292604085884553333469960897380000225824502788985743520535583687676915087629706338717201746220609090773831020849910439210751401324931432171823363219429333589704650782702997567333409935186758836149962581539972261318631930197321295069887355655412119532506742908126518839194098918306216236981511875752965157184392091674410802012666846067418243889308539264707110245626023082411989969704223868349971237730121150006816534376660539430771561645660088089490033135067071502370317961733939655577653946923413200663859392643906470510081391759606470967729321624189674281482255424479196377830970289411968923867664318611474793924043924721914067572746605467846717800913823140766412271578767122085526002733370683202055709256147761367885842668649798483433785947651971260645773088387938461360857131569458126676698582491977434626273162318760535957755799151162126997646899680347939235610699840982990781567737890930744419386305940994602580006148246098403171113299736752656946886902000613702790273421431488258044866470248929220115200773852781970350031907539291026849917082165335245565632337999403909751469806490041464516904709486074124223397353492835878309079990798461790578827294828240919728788804154758327200101807105408726430652031733082861587424743289344445055557648620911395786742062339508283114059740775472630347527495521262825007364705311038250867971879987427884330982644637963599833323464052299666891135680295403103681675228149399770926493819605172266998032031862247934078611658884946008760106705134189155329740592609676164512662682843446204920153804238059526256399932900949191695284609081964010704757981725515672254855198157391937403966232154386267047002167665097161803970194110892235829675692731258959286347350369707941071038892278652104465956662308290386786400647010397147852846500090285841261384833953746322064823467567361655982602059347387503690457785183393518494044408615219039141346240405150194043845428304741797946791887629356025197966828472864563920944916903473355412974784027153890988561639779866622205299266837910203191280676893405329288949225291179463448496821208707545375618312391846176855783893534548494970563529271227052999657903423730394697930794759875840614595211513341876413062651215614665477405502344201658776123200526836284638688629059990039127411959819113078910563986037023661978797460604248794316448036731570384530191723746213603004708747565033623745306534709759321414788454487852642156741984617790773588004344016014173193340545866936232370004514634642961595969148210112528245638633507840461120828386648028517187840471772828485097290939135162481306579364148747450415549730166788834839283087271136115636239774130562619655446163933130610675697871129900865312652761911308424281753194937776624173362890934104469969915465936313592004118732170160566754494651030825821482470870214808453106075540157205393053185188516628971603182040110890505607592757470413707500019366012013515617667242761275233964047162353404538851941737366450172890234677235167305866830804899567136131311150950974464431519367496336184490768909648534066581690429120385020700712292532478517075100971610085513641644039096807922942071477544831667825563330547266543876463576793811929278105265549194935622851659169858443231321385905894047257703013846140291116190704282442163037126964098393523217996272941004396005825802827474563802251942502247134093124192785314328735782564142884272652547633871625653126892242773212260221366638980614064034012785722926671732053685146951791690901160215945228203542439141056495490738728078716023926030115892767720443655258234456239051049965172845581660434678166718344020432473019696937362453513915826076843196857793373571006997761259056922678543769000239601049469421083001197614233592536086492512138164049628879607943435303061163637342358767093514672452084161650860623889755911748366666964469336751752740933326981649069461109244593229202899670660780539266779967214398374005269875964313334904786754911411909762390370766477148652187817855422534181628467158641309539211756193332825208041568062809078279808010019194637407528688319640833015038207292160891562606668163172149536260937808881179643822171530518049822072771159809435547669694721525867347283503608965349356386976411200357352619379270649292243620097094999030871296414894534156049147190473705180507202854505280142092284906470200445931328665798730593410067151475235610775001838085634750228196008395402919800174459074044570918633940974572363034235777014245733107395594003070215090116703757948739928383294123682503185977295069062768803150791546633291743128492570613378378467375536100344762111666467701973373228995288539656453854449149988116328406477432114293514469831410457349902875500887335518050550110652853366011201979620783080654905420825049438138645066862205585045002016008005801643133299279209637766004290977097700998965579413646195830853398423218716923175832814819206418363081149427934738962383559281158866737288090769310307806384365472883039987419992763061321949312579045221354604112421988925359269377556393689263026671963371167401253286958893148115989162905732860132353330553129831544001633079224773275171377421999445550298729409928619496231288472069210063562878564236409020445580038506403067503051142905375650031749851885007832031672107894283533295861691192595218599246580151898742132504925092875781872977507532999053651647197704152661983687416011789940431330735131312597321762417332028723747061953793183679486560923606942703674644623285912183700127218123044748913411152079108672691230072451104508952420707337164791730423598204067344799029708208035048857519201392861341131900836046741884804111778539195964604135033180326986691075128599283215136708570605723797151417313385391705181700774302277423546430686848059500737449653938442033638324808873885994253285962097116061982249591542231839677842592863243398046121997596183742728937433442072603641672244972537911899755955439151418963690283523231195449745291809494326238198524066431936983511033297294776635191630601065470599190529223654145332234437571076033158711276528153269985443798614623172337024856805906714990138979058008640472698252512537596001949527424620914736511196788493462000133249353343081669916995784291326020175705151989711997351429617603835837432192118053749828444733744023742453902442150113988195572841351745754836814470542212455207956393459248042118224731734910005687813997682899585890511945022639199346196944325624383016977666526563429208271515424133380509224130854016207719679450669395955260779672898894538955365333429111800978756907330633054300760104367251948795262235120122196096649872087506708241236552358949390562966249778047998874257203988009523510434229475212999747209750880316567912908199369221661039328831324762307995152669617760615063774157280040894139424067538680220883433965021530188363036388981339517781765958079155164802150971229244236582905689126369630941232031821809986243558672398202623242341656337754169438569541540005216587123114166163707904283560482064347859673911694671969906538579242663245430547534588131025795060167224966494518484804806588894518711178041932810536396757792182712976969029231042084766166409218611789010078279528070239384274177770828264372520692875561351125829726682634750626564048212854058413129547543366091264360440470768355991909915370170315400551751580331466881058204565939581586955111590842249206108493244815973594269710662120332232016613622449341762328313318701989877285940891675342484436455194514471510352972748009990993519907806417677790087193548769208837735741544926045640874272272284319683812894142522182526443386308966397919664020853761612887737942345100195424863737831180518741386607054121443769760090096857236574919461848094779893862844043494179269469219471046504890765193752624379573197129086465319692593375381623205487841217752777961326520554667435504326007898492284750050046232930704703133848838539428498685338612485450000895522481670937701236842103197924367872827130759089822463568905715563366014480306993322655358522218632453400929358496027769578245710516531040212272589795566657511482732752281748318998177308332297174085648702226912310708991111875309357834302064018084236003472746258594982046735424395731418552880991644214787597743160936953749479132776586026093063320498933769752402756338344886381783096398720959363372109835469788135725001027519161762764507167115949558710068510915216738001238045598998937739500843695143292328677775826325339468283996082844186301810371677595178143537291648828540252979726977186458229704508516301695859841011256840323171456502965230444919792475906665560799791770779509797125799048862251976625197735076073480639678055468433689532648779897773269031369701808877144097209404592502245294871897750300522278979314443079542725251036716243518426940212632636362194680620074449072808422558156695952678551741311022019109476870681089930022847278998390174988503156255726219044338995985654412985688524981405398782835739022575157170877220154951729386443831596403599745658746569907954902841923124614480162295625288376609407821103570866918796965028238558618718707375495497582461315540135122079699105053805769168039658064888908780429872068211694136657340518685682973073344319680830692410292196086174900285798748036954518281187272959941390804016702298598527282163247917843545977565247390805820926656353562114720558727422132053466096120856745780344775162241024911604654035857436208578937270272545976704566895915599328472493281607107503657029701909115639551358043188443803600502190216218355723230790109922101402840606503823711185587724923830275216217610943180930679983466303680024348138468555980001936771363756340103668005529710344098313747395551076751290671936145021579383991398306402603968693185849631360908404292842598984917633808818632779011515797962659357049275227764194690075667828984817185133702998149172471323505914247693245842402190312178788030676304503424883276402169828827208238161359741998579446759412971923149327967056642713803717920715697092140242198945508681144150552075354156794551772815834489092316384444300665433671903755707484437334980641119733800151213679337811823904263092911698772810868164716415283862523932343446252823124565650175406379536070743435177501399583853703121441547330842379549545325666546120957341378199815573697254931948529459193934362887461204337583708242783783802904388031580973874368923791509228178524811263991636367209271611223572408910451898119808686334905987081119602071425988433101202739433757881441035483609624589684990602011976338944212170200856273102380379731989639381702056340626526430728270137047937143456705664281686284531178008082006131149039652928174854125527607206140251669843981614196084575570689127014492611830192623221790998380616685713373052878413343406083119724004875221203992100316494553175527446698480494734961732243447197007676364597661090985305110101801695705667513190820428948450814524659319088595323497782527137682969846766908517639004256636992407530949646137821886748753203375426661327724396432387348190324264802596028147111537134020704725604793168162801957941121814213976405408913983831508205767847597960341477392892066595642991059663086251866107736020033153803483739506755035248098072526718798185981198978678804581531484679099550976761481273187502376786580904704069292704680944579485742832498261320238655505538940555986272983902001960086192726689016788887053765239945978082277764149951921736857712244280375095603353631922585012783835353998901811790082317841575263736486743210596709343914400969171194807130206660863519686087202803757842073363447258892926219152430605490218688588424348369994780790941106512335437412017415940853398654614907764833537278262151036578830525371897828242717819757917171192220544907199627443911462769367275255331863242590130142697437560706855424084587142932834887495014811733336467045762685446461023528786242037910162771493541627734766764397408060258233305775388329160247549681151288512279527277314368557521886837928670806783935332357180900468804207768151766899058262208635391706180263661250776409036371623149367472447288393482760905056962017153205427493612314750266742897131222560086757475031514581242310909163318886829488725248897429114275545952757042606219192286327892572860522701846252149709584618123098281732632503234354347011762537438519976626034947281304773882344726743808816654816995272708178005632647734497384733970687793018708420588530746600437332109214846257493755517178999225345040370633374848362336003194934361579810582402566933930231067509853026794867976688068271054718714746335326852766608261116739017546031619851307968499594627307586270817754054000983121984777835674715567496038114404275894798467356344443855847127690817991750499868705236707932847234375076821583862614690317829234618833800110792187748220990105993768753709379292132553074399588760884570631413055548448728348978708196355292872208005288798687419851483110807953212992077934553367637240200603072767574115646666394150253056160519446162763609670663741601262598475360527751809492390518477454609297513955769404381665106105931988617401916775098697177917538890889628948728262600957478291001501310014538687741350997932136855445954751818515686975268472701124503829724868690684250372454200651394362712840861263497433482498816820494137078412424736083888285691027587759987461113021770472379860388696240192863182927674847830482528013635213805949889060053868138016045285731594468800967683695058545046643204675752008419710825394788522823434198816225040140196350045810463205907479318027820791857360660981604283759060630297828324974224701236596316144056008123453942530524711884169982306174976023221378397122867871284416140189422236456328321051992735719417060607085294629794268151493783660866800589710170149068080677573375709989786435929179679896362564235136789762972308027559571799075766357946241785910020815255394309796398848638422174959509971253544952000396171237064939641045194738708617878843676885229153366911274011936583975606129250625861316739115434765426270966672835560936731461751214910512794760473815626982173460273918075301801134921448727897954776511792910318235869583588749761513773924027123488375364164599039234665826428091883657610484834365159997819703433227678467795588075632426822985783370096616632595477942836698806985993207100070291391559750636022838062435894705577627073576442208054551640613079050181580838415761473173417671038733001107219482680194135666052794059540678986763453950710823734160569714705378713781595621885770647135445648120620408240048201827085453840670544936557619420362439586770459603506612248306044958778951231454290979107731366678648877595096051386407501447016183186887367281941130901903228300920551078856221730358618974167241164067812600389630159836549941828234243449140040387203858348542665168671960072559800795945524874141112041925611595363867217463094586601470324716443249253824900165934963507318962148165161149164283555374201951698239759424361974205744831893880712135896064090013516447592857059156883209032702029143474494931881839655810565961464186419340379841324728169886091933267583462394663703135455014667355672697204454085143488958468913995591259460251578112475784598708459722807492301868767570531717954391751987317317965375287841968176027965844347413808192934114290569733573735410036742458465814531302901504216992878230122723587253767658040351283485044959148648113048940973134887099959495890473353780411668406927394928076837202105372168885644196051057963004063524791633796722682632177472015729165023160137395682874974631058489645372971121517136066201383057981173834908907272559976924968391870225845256674351729040179380025495417499350465785833983805123121001274709830250230778134920035883661851226686523236979299339525874455659910012986796337034554046128421121990287278129636785564755975286661824888266332929752020028878755159060301028446867739016865330280797058398669461711804880473759574972371768176862338744059223549496358787323048222523443017223112779011286285358622467923289717119156989687715037970603842968474117544682131149274657058458131179183242602293043270755320316407465023618419509982362318713439655403988008874057642639118623911983061721708239794183433068125264484702941948550234360821166892290039673280228127694714063582911735843304716142643034041153227562416975741800383227118251831357571169241759670969648513032915470151881234706779633370277032660154488103572124163724836963932270343146370986252999865925024915739459552983561490534292228627950890298519507970630667897883409213579449966978138579096699101850276554952910726884246044452092417359410282062089077728127296802475846630285372045342157394066012359841839165138422555988010876181220031173894842524402335145311570357990104339697979736244176968499053075913694450037725794974454487367997391036684482378749156460486094705434355713878105293957644496392853821197809969780543225161847292348107293437605161682318078456277206061874955762564692202028018819285988805742120578087416498628580566871274131147889951953796029064395933306293261563122537890353447170295461031848868812804371676788225392353642815211377441401484085568881843480863363589023318271692534067123937731887335352445682521201994260986979484557443529253989100701672163792826707775846181051213027085660902085864253864713298638073701351391963642553577911184202979419192495789058044830373440879629105179751067656360121258673394749851260629257183379363714786021071245672473840515071496899973751568291292133279333662571993819560343558272774611642416669433419473025426044889151001559118471969800643757567404823774014666495941519974647293265688635417401046826034542908254631283634750635688917671612199425053297408408538180524224073020981669584160077846392126548200272727283138269160711326693080591903871429655297324850390243082052451772037485112326749193289975423848369859140261250642650891974409184100933383877766403331060005654779686862366847690939914582048506394415579804768609254113823745472460516776940259678357364942226059121010112737292689753242001009528796069062149594333369395038782134148023556334182581242542467601900695018086906393109622663038972345090007960416451639797232931768349207967452684541896244495219764489860135741404578594771362208208990487230780161136813253061732402294483387411889155757060178601529995036239684996357209441259631423068371964711303593137371953539778824125275030952697732254450735967321275059074476952575544513869463577306026176401989970561749291293807822587947477088234835016762437634921203387449237328936053618491940348045990141501996594366815724716292682997605923258407724111116442742754392291721038815622195240817131228901474169878259156903156850037189657662938865017965846840224759165086158008792939883332989061428257078976292193383843950645190381811751189241846006659976990362921318340763030562090088927344421830615816661334125038442376741035065346561481504774539678073532542610747408805599124948416310278311440967133341699397465993960936716112854631637164235039729984375022148712755523621744556723148260161768222947712820386464093875127927458701561924045345141633111174900373064761049774164561909584300553582902100926479756538574111749301901660301836604143841572976628317735017076446516762518549602119951578609239905977350765325428529711991611496527597523670747574151808491995396002187762603596863176994479946150129655516754432217635778718488915720975665755463945788831548862208810076845126097391964642950114863888147143191460190497981189097425798357287255777314067757999490802564404297630256740550986947518915885081878203884946938948497740239855138066859383202308917320664686568828221735662859858995908664005544714579633968791459504273828796005511768497162216699244683660382680611882595890523215987648033558876861522912695278945356028343110992667569292620519520098162011141771734818975550552186687827762045443210142483807891112637412225351480300362833067332609436717678215335100986256077828189121503587479903672130344342097933376303639172289481763417560260057096713641103997948726719171152941321346211404929572145883426199179910009654624320329141109800403284751529317295366912362845789343142995531184483209150814518673587378823527883345131525155310458092228524169508480868424286022697713542887333408688871180567969134748364049582288204875553650340708735219319552928562626636698306661931877767115002676962016797021496201526093026590230488578643718851555266188687465270948439212450288358818990373962492780475969123944936864395012081574178543041442754567350829651365588605934963207872656544065360626862692013104090399399049619895057488924916004358304843495089709300349376366287631991895891157024220385248384475585118275757443078415894911443307591422418382624529449373805889911959439312616399206239127535254882022868171961381837356811319655005417363587885347433558424848989493361244911225262664099716618095173255222977367464469179293549637970502743898754763084941034940572891615066816784940269606141717421363336986284792461237578996258752582938101972191981143466547401677368836221411849864429494422086967278746959093142780726247337226754686654953337213896883526637681247895696459335465627714171178338167356517009881023279268808451837906101458336372053408895881960066525124760783426714116842543846365921686534728479301401791331578081117040639013029281715183139734960914915228938711987589176487824185448340069088416199228700843555282858051757561091830394879627854063445617188345775242980595216547553606490940149878618294348492584691038034065242221561159428791882791952576295229335204549873717337541639982473229223232701406673758486958650339532216502954619878681937387436436446814247270275767227273997920479682839752353441551742488609216006399164519369995649849222955443717963131871718953314362954965085009185316244794894855649716031333395277887570417106815485617680521067330270927507371646246118241369585114232217393672860974874510512254295902760139588592236516770439325168202315682729582413051946708071451094665924266033198446016576768592445359194976399467362470198013576397176362193697536466533793403630898556839049395038473052710357814199440520621546644648019204801711656499387814691398805140279873435732758145195584289094385461861731713736181953659715178391100456802347067907346629805046945463942536740111406438166276719915043828520240283927056817244080167680963242375210656456865480218370416541204933808042220507675574170724782888476358628684757886192564137980233712777606311367871362887428959305177889231294986760925244432042904129661929750105444333312176653376382499480350197625640379431104024145355606918826313336338189753170042903395997955327819038168714266639999321456185779021835108955443070374621322180088281064882107798438128474973283250779862911228860975163337352636209413491850719889122964154718385768721457711827791585661972602291949229067292319179672398163197583146837716314211184701006892092752966139067169589837362254080159240343895371271348149023990218054622196159127000831303643397755340861888924916887238415960142238630734846981944099514091354983265648783331590203951492573980615203742968223979106286389694599498407359175677117218447347045161058699804042662187600956666434660504509584529026633906489319148253323384427898850618413902414314167896234898459895540750281690853745806666688759329800720631893702864085735991545466318273327780443993867872367712894656441761837274970028426008102654761068279717317554296451333993128516985464355626077286045451957430809314337548273236285743560463477469908945335213791163236432585156704965010231271115617345568451944479490446741910439885615178037250019771225762872979059969427432653649264090725425152947393690747206787634836421282025573222302865633094910385672526688514605600011538274255298266077990650110037006468779927839866825043396899352669035096799003415804133832136045105930498308863039596361418948957067189178476734308931920533548251834903531454126535557678006578037276664474695808442885254271343229439109176085775791868046587869778976230202920683191214164468606925042943847499664456089672141698282705873780232825088949917341156595303134336207615014976261532352745192476457275760700958436056824899643510458080028480534272153860574337788989381735196313381596813357183308315898916721320950146929782861228743855498907349587994020516376974558805225038247726079274291258718363379458603705949072098998635948188004415030373176993067520159783181717993250369370559605905027337735975976845727505328103080975471317565981399166732619428693406458193585726173600834356612217982173236728726486532436076170308489610818972047378056882136647952849556796722628678507123529168585452085925113214901766999477985586197979644236045775287734763314244203556288925430305973861551172707941508046305016569663744713768525982142979861919884781036515549539188300118268581421798218343327923923849207607809265626884348633597117689812874380857614195502481245100125552458224396563096883205428131407672576780809695612146997633467865594258373226647837086045865908281690419297452712749347711176668657873383497060210314671699494245475584299409891607890960607647253407819840756971530762738663907809882429586950710742570749660477059661534586400189012489108377620088566337755632670298146885609395141140042834016574298479564314530232475450506325645978989811342447048316744033495172578441399409252004839889808939076909868491802408807589215638588324762342032398564487048537654901812036942103302580830888434896823641335774541922651573408708489316393510997813419449418329981062542115730729396543774894192269883009038450727934809148463411538824989169102321858696136336267806810224250679612382825943941752909497754863402976063208212727910791652484761246688146012767710093560288735922890409618403719020195029213458649168121572233072603977115638962117422453794144434167884393060621744216189632394019793565446229407464577672505141913883228920246045460114913963407420694020348150397367528389948471762869847008476642200143448744986179781948165130163598759244540962593111753895100159404291057890452797166208844202995249665765276158916866771396296600744712410308507836345412367201733056973829712448428794385194797381808532309347369412062551859282043736464803694825411152665332550869297605138126197169237664536025659375257716152638689421369823214636548001068120495888923786989858008132593639100815980477640887596711174937348946527272792590834693120047046309161400844030943636670074512356188732483695756341082077933483637723289403948282726496643312531801478874173114892997051543369251459871283569488756341264151174066418307695241537480935334725200684842268346570935767498180918153998891625483113051492809522728766271000770769691263320866842002291508974693912206416880312644454817064071669840189357474828359862492617489591395449137030890737686123203105957982717048288085059780585406073953628728056375836292824657463818220937497836040936169160278090059009349061397681137511594653044059131631284129908589796714887013335871544037995259160163700857962946883228282965340098426874576257555346460918942789328674437693370872498073249396155571439815819350112094063942963833102911653011449837155202164815716555344857209821191655683942087255161596955601090941940782817724894359712187068537716566432514216966673977447177694489212424743927382625847377027670793214583780719285790602589729482554032425434554464487879954770026679122460476866309634814708923126069124073019971352261755370419490797343572104186476272660920070563835306339839758984955406963526269103688359772150355528827579920007363641070013019591901941237770986307158427626153263831425589107558327300213959611465094244449516258985346762053142645881475681511004937788722507281998934832872968952146264801062743800704144094182400964484991266643750522388683964464114204185817333246481152705342644357727552060017427747387513896176867440541238032957677294583480430816867766251559675825159797504762297051055765221827974539986165978275276831246668467741242910761892166502651744209977771073596233550090210147417688636471918948429819056117753755264062787959226167477847590126580042164127722287513735888514257194110247349953967244657203135656972842532711365125903345806432195972125750994999026035491345510964636007594747135705488107651015290613850738933238652915717129441330844103244643456994548608834835579210441404058991102079792557904300681497637043707156276981909002741349135049504761256920108948690731877902369945211308850525443589659138644516945142259005832618921916429712798104753581302907543635672977716669894597555948173436847728217062819027314407528219140149170303419008711576085768211862991729108187874693139062755478550510014433777412793687656312195630696969428567363254103172061883504709722003592222349446705877554752817147590543887636404445751173777512495138433646308583963130372490265104886304226184805423104171188098411883540737804637378102674707872088312040453293473069372415922406700772632340399921969942037505731903939825752988580765654319035872578397863268035301962052608559965882875909389905353688386031502993607823961205397617949876468245618022882769532410586993934372239890327478896722955283330854386426508677507631435934919770110914035102661222273110837274429799118921426840738032139026910631055647304443718353384475516786248828581805366874393734650315109040129452409468688670300856997454235245935005006041894920287187083586538764430682808584106349670458493469589976150236433866461866140980014582571513613443551586794400206608787147117952257825411591405210987457127856376013265046781461440179652953034428160999959446458322179676947649118451933761280717017711577993846151455346469599570593100433777162932754745860669959418474853270553440455500749676265825563418742861232727091988321207554227398843527491487037410697379871577995514845019613386692360952911300478261466600723825344269492707478621387065065356317847906885004824630569598830975643513829682431935220240289212788648109472946190541905728663416233893600543392817054062555576978736590126172694800827316015344639327985290264052586691905072652153423782443768290395507038224647717570100871097212497543082692591087096847654995687732604653911138886982562318241546360574040226906966656354235104615479986241664174275182810690110566235587535412203905455767220027534217368974537455225091989058503161436554538557015195189613360128701319312200198038343940355889410994022985675241852253100329325490248672509462709878621741701085250276753699970365733202476337301765681930268908125592584471814093338317704781293466894104270272030049790047072107007277407855869089056152454885386373873554617312324937996449325000508929926804266328007923892215084842293768363693191662592386947130575964250450425808819250547851746611949092409079750597024075663017600075082096995798269819833773656284134863823844499616624632308493622267743855070314020406001909462014230936853140333825977613115270067910444361133766311527625713126371478639544906928006933352073897943269989997694539495204406407089946771356349221202456629123712755397266831174053013958380263220420675915230138307163342128404071598086905681883775068471266625226327485768075427910729411636989770229958320638636534069224874442622665990945224567324799931689966051383175013934098883205066703912228085533128740738768546286823697075350703360505027536818781993132318645312299861627556330054623238993010021823204895506289942134484167365506078776586992470405024401440047569685044091540049437716618824000552565088876679784612642058698336196568299996614934820012580369576126237324158981494446905662815311958025523499045202256290183606708913179995599763071709707880812685615944335708224425951131482705613743863407856445890051178693807402574579134359416437376152316802311465318688351539847041424107814229089245314415775385068340662376759586410057167103827857978137074180337948599012398244335452799884385788752986423007200397638343463845496815239370637608877319100290656546394504096509491407703414512716236233236147144507648484443696948313935620931648356488121070270815497395415569034175826711405349040448563388250702566972549889769333476559858818168552241683000209540413782442285678839505063747588387991865428819908528148307618033542252736885640452352665338822627842463942364261086855553033228848659658876287881315656735417493150632678215752133044341311754607373677957315094146425294634012960026719474738252550420457502871550565254443757645460130876489220800958415945144531938309871361643105390526944073409396642614119767074699891936913686191843900079723814544700413305862692561967176223663993902927749944404099216882456317235464447106781700975501291615935118776127187902601442857460036632966608462449488335011674528723979742333387800327294636078533850125921872673879543469197812288597135204249061767062442601068174734530549922368252928531771041005295405642855362381594934685966050425003315950279687907969828752092055293209541938451327714765290316437603330673748357960720387493136006902930529516042108383807115666812813661404737269076472655237409098420341977688858218728855364090784446447021260365805996904830328498622861428595198092529132170924512407016861159233522831838173123748338860427384836979431979047857409504296986345113920366454404591478327553354574796105768893617666892503684856995956688837429178973669766762873766960465882243863001116644624471226271867769551875140151846115783475815044963975920354118778892592125709381590314551754687494580143668176923806729099731359975094798562382321478700238014463963208877409867722589102526663200932580942747276594943503925135185672150498449086159818092739823206350621934944636995887600947567768638386024617201298848211840063210530726222359162794650774839071350992374857610160771129979742995115833507729932467742963209310303710329576055369782255266772097894915879014539481501222700941007756389626492901430640166180639571781476333390216158369871467218331123174943427618079663611162644514570274190325604196875077814006442096236877288593715262887331391791120673751505222019190722269214082705841259201135468219896058290787594484457186288312984288437079771005589613295157348414667533606642616105123824193985470632485186882343550439280743328395427004738281496785643824402540771784971679856199099796705049802104581330725619141513002358035386165490313607634217455155186182970816363337571924244734710618489462323152348658940019912513094383112392792263437208196965853446598498863865123412411863983344772016646472115987027316421820448096517031342177208582513953151168005185492049891850087756162677940538083602343259606360403502487866108614405849498695707972109268170893041618564082590439976399816180985611239286271921815783590034372975525104622538793636355983951356077337368775318879249705441467885004186036900686759945491298375577389841290833431424080524622279853066298460481540208777072268790774991032788291685833071868840528365552001388687743110510869985248013793258006656722813400533905367111491152314770737660085442233931344731033924867925316838785011603595790216074766540036759579212987982410682797532306890034045780867255795328034794251377130508756370395151064588936106591020993801408091205243728356350685930778197969518765834606271078540931820795552072067196354365508518391319169766166649997110221154830858385341853456362472918985622263168452422508817004233392559221509797014348949905374812964965289194138823172600596419157078759658931502905466138892664941381710974806459501234244012940708498813985923387954828456643736191694068479110732925443334031218523958224903129459894966861753988761198893466931384792534825038711505123283638360494452229780489107642307115844109834613360663441498158052173277552384689162794452693862429273569889761561955943591349559002796072098243905526068469538049032837429740929777971733469767690600216361964626053777193056614324113512282323593151689854992533082626449231871762119215597257425457195253536549964156878226169000942882790247620560662158215974912113770452114297153339694824060852895549912225015562465246724021280357473050797257445327763040683055677331806440286786937536550671911147077275887890103423881376081855614600558663642741253944963157704213428230527848339767454061630104001686659469761827815356617907383735568446648305245207212215242720954451703909540115056123157188064224811308343574616098734297092576964041859990800129925494947649726783283535610652063276828090517910499598599353164085800099784571389909892658536695976024234533813043812008967501723269706014891073795433275849790602538472443814163085140783840461448004866433640209983467344064467627020952452252525147260287765057681493102685766440150902531607017194751085876846012856996335941758127739965511954210640169058207600144659498817986889722260651727846529734768143192557819650620327983177925769716734624205297538905687430738983370096010383808837035744560157327415758243295014671426021595994363715146732097181588624314508930547513059876096961877404299893267645837764303555250358419906522974910652882327901325220809955108965464323682832919384374961681794627046721447137238617669962729667890108612521631372481756339546806118560178080520549337004436073604590862021538937188128694504206730511247610145363041017465788168740360096740280635218019101004755177255612044370503683765183315503226273450742837041248417761680520403408463909409803515552438724453557962403483006106941862384809360268773122424610164532261880070748935683115064865329324348075282157529707576657005113006620275405056756877529127056377785754543927155440380461978133799783941149353203138636944665429693789664009771215496312156752718405211749600637194503400811527535163903142453935860213849376456519064925290632025234262728799652191380584633840316059693233772089968546005317325285807681122626261376746257234935688834374825519683316369477829951727156660929633922475293729414974491174219189525778223637306943511009819723099016189141341771865380619043983910124116692899139466838526364910642725802328046539708260082744467542373003073306503754513243100003634225540064426993217081962127846270561765907121921911169514591049480574560420344142168406029422618094099444619567977794050115459103009898116171011681267009159187578587759393044859452578634740714975952762181727746897386032076900117299136492368905400054581115925291318009365207408275279989144152331186933789033461436417546906289067239042550017557383654315825021744624418741075756245094706552994819931620677641086967583901469282304473418068619412819217572907400563019565355089536588776066770416499924718342220297870909537948635414517475511459950520622975389345265275883830185020555783212515595359571474664589911875125334743443921878284112294508280136433974283089890928450788345229092756485950560060510149659182148652892507092479869662109983555867527187847476907865904313099660645300347491794105272414283910117663617830931756423145788905763050723034354904536127848786734004436937233143332165662925923548667722096437387288060168739327421650596984950949683204841650482711409259717344626797953849174482147625197576886061780637694989043243050634724175016802249444036948329527618206694452545952116753947024199768354200216607510248339245934860194532271240990756269616987995520977262903054773132258577627972033008911500946200783401180018900151452437763440676481667239991156099169414456840258348996101043880138948234118770312653239289753555031311359107836295655184053075117064827177530742836168720632711231292830653658183532092988514524761906418252059082125992275023655226106528439388785771854314847426292909813695836024053856429086487369810144700176075325097783855737607192458506025006392305839317509804353481175419149863701275188903744784617529996581053877878097792245274563205052135015055526919450910476164485848986223392644286137072047252630357363422069132310763990223496457596411176392723289113119767858264256129525814533202052471365584038486214184677176303043433201523705519747981669315879103652750043644600550551319947681945564770046486855820003849308690146772663622352446738005921142104945825541717912307977645813098138740616079514072854011556758025510748715198004023192526985435294425332500232188675289680118586165631072932637518380795494634942931742334541451819466671346304684947317628256968344002337460145794311183380444264035261838114573265653104816502921054924563742666340228168139953500983097652523102924608295682652005300510144771794504004253844425660798454066877712288911353639523651010916190685273751207949218041358616805468625118227772687922494101088004263414163771828383315520014027701088824878769385165284835954336467129243848820012836019099930991534290142030529515602616633206426583051718375020441334935778603495013576617901342118356109625433114625596809067747338760270635971215152655802689606350911280655161961538583734207812793949303735600634539494502750497776823677633269699423839456677591598217678358991453757062340497022355810961538959378038440410623192503783063888574715128172966996464139987475583503431900275630741044029095488107936187352548521481871195196383288983066382411466276066659691416214303381336556974757242471716993906454535664952350835776567639601794628056366212005373024180689037082269814460436706155297908002885908501303034997648038705623114089234694142313967859017521531769929099214002773005997514903056134946852515598745355420958432060970811421292228902892483499747688349341728083243852421265344919652211934157583275377034318123646752741518551469571043177484251307942090512995511083613399714239582247220012825391175602346768924755025754117386796080126675454361524195906855396129457008231967413763104057478393880485428783319343309454920457540320250941020028788033572899823586923999351135882063415401247900981934270874660129006987091154731805229427160519770668711864112595936549004376422597141322525656365058562066258707803824704801899671811242084487389760167104155757997114556810592831255183483477290894237218511456060787510586515293334413755330492657981408514095321040922539228944001863083066014896727006202982784077928640052874888564639578869460375847164889665424618727165496872789479615852139166558083358937037199977235332879836010465955312181234639894836572492988329248995650523128410997581573273857654973110396681582046296626639153232870534463716651953004239944445308213864346010956422309640205099453212791451956792025251385522315919700199303156405309661896720335816226826701344440020952429764255065782174936115015913638692989870597169606661934362449123018453250965534223267475637317935226842772053732829877350337095378570334900899174396958990273860535715086594336465847832967950074426678931584743861058781834753162322518053452848959921369519178344120586606742578991818783490176360814005793725680322742110514630764632728538112324804125879715264626007338903004410463268895137763460806998046667261908574957064778860971903781300586186749308704060287782728427441229529440573217438365896680320830191051510617486512504108972170095676598493380194801296609214532359815382088229101104230049930991640713017665585033181380788450473731932799781674095363396052482721116222674340898662801811814176743601337370479084234500980875320820883637417097336270952809404341073186596402996762412211593802115772606600518056957705256716311068678382523950489281975336826765564440901375107122758982359377390493443019865632445634357092965928032280853480441550853197004455886455157039258257162636498667734933405396294444949069256814823751330469240090618054037922009701783560607161412616696974111262495796405828021761908790881751825266789693257357573538267327939756476854284930963617761917025003363808975507396914480180354980656303349720602481830036205056063853809533815845203361609989703836484372301932266371994192305721642778335927363373876963891535301138559434276823759239870266367638845749564004475808098598249241746561764560183132858986842221316543162775997042924820660410175209981192696573660883670910402392473635456576194271896664955813371937210827335221256254512967521983521222268352150798436434520724445658195613307447603462882419118641036138965487683381178957059363959492969408260737315469882681476958531480328837282828195146804732205712859831830313127259993820878535146087508598339593000491137466285272543511698685181651700437528972521416904588596484329235261407503165860760979769507872852520027079676362710040717616583303381498354204616491351601446676148947517949526201186511936087599869231506090697508732616042282193741442650915442450786336922697070537587481087819483720885672838762404212062350449757096436586250868580322329997547275161254232314029560512570882447336147037436728988710840871182566712946900351889470126483597662758068263314307718345276070230322302366441881644777908592747082565334906547028654303458424476613293152610654547102558543449817805803229372529157973567665601805345613331820137829104937672735624752053964335350859643838672655398007010291626371083472745100327046041302886222181390360555970729837065348349635367858612732785616029677671974948406831005192977567239348826657301310768733680026750092663343703063743195392462693107671832573820510456055724595202114435314870535944482835263322825890875530624851155537066261683028238795118753833017293896869850068794294037002613266145929414119869878457491688999180697900132007773478356185078060216687413997902621771778476628674823558680289806719805187238984646905243464026096685348502791711409396465084740182030038611849391408569165633770147574232808909411362896252228402555165387129298671873574085869246900791277401339587352463062317209902851252739810753019040688773322404660169752182394724958585182465172540274646124045351973974766247210308209682852696183030760089795296204208824236563376631904956417608373218184223155532001760157861690820735978462670469153930297565554884439547260980425642281097876282836313333873210434720157081297512803795243936528909063855823549908712615976174177381322079987030318685716196016930211304495484558986738056792525513587899185939817768760159076311334151960181689134022218870068584213090739868935865431757859807478249177654709226036585267336551354132010301382027822410873885354346609630383833832307224115543828538237970409789392501047195740855322444672075488363373874910348540747558732295858045605934778156198549051185182233309323534789425051614885208392744108039127910557148782169810726440408501480608777142090389305876099382664946788350642994571623024604770447761214793878353759267524342659111884057878472434206021369497564371886067950021206747630217344878320047155753177250200103140698011241353589390260420243714744904902823253268598135035748140959910870290624855356930705803805200421596549426862430986646208331368880893026228686241058754263645473743947678890302947421752354076138461690651244675658612612835910035691573509637677747747429655005187225983809674880227451217988784345739024403736292258032531251563073619410058376245964964619879211206423657936857598241293972259599127493884789738240551623436364659096245109614658712016944588530730124766007724753834786406288963928754079179598150454077938824518244012085786307351259842281080453766853686713049493792103888008240587862403391501720441654822646710841932119072599233370130187113516204034055976193318045716795666060836480751154461989273082730688768700696391642035685528414810486912378365884523514918070073536986787191770606305544497023478004341724022723897375394512127602769899110813493646520308479072988865941581957860913305018520160922797706559432576384790613274996626978239230770591386257214659688534848572744525106208736846687909798148539972356511651574915924236470500902321276287306392709949023328261231047958921219611830896199405328164609639888662800435474434972194113170771559670328220598111795688855268862413031141090505225182439442623760160732945024066441716023884987872213515663935519794393527872963582231986939954382948885983788317330753071603460035318640045415353452342047702923296743079057673520737634997103540807439367681436447137136531457433667544474519488251578539276711224753258535379475654945115950421230126545306928311057509712020339616055654690466565075451365712483418190780042745410121301008350572185927845974307892279110802889245955069084200203590111976733902210149649704994875008161811568004006393156429721776453318140635519349184212353814861392262995660469492900189503093253186724601930174666328843219063778603393811005793304292427140156763287451163762910763634144470148135181253100164749806222436172577412847590067499827347442293903919999134603517171271871815937852249427963161093878926978157690987738412419149901129558652838194226549371101825207484682048098245799270935606593317784956498054125908762681223754794251450074065697715961556835721617798713100323162174851460522664807468164400917886714771438566009702354509567377640408847794486735182950897363573324753749371363250282988411907062306654236817422617724806027861853867947131256346084241005021001898967070512401046164556706688944291320132602009062844279559484771907721280747158680346652237229266389432629854634469884679990478555016376804364540780902548513102597236494222928362600014006445833285306925560988576025066569244767493833716619545107620344264751076969751385021610864177003579373910190691586554944183277469375807203955548141109867342574432041757330805924195103052758495249636522302522094394769314000807678852635552160786815652847361197407777566674209287451445959707037742329779798502344391930131452570163817281336041368763987201541436441819949395354916690219586820784562664420124496932137419767757888523030659354108685428143416597337185770479041055046920302963721847982681690152998895261147208253354360248974256390448242908694100785003973858570875093391317838171620564208666132887064235020384094801130179988052072641889086797865760241660213875605592191328308054318971224305606601726797768615211593657506227835036084793156418557276007569957563114789922676669440980786803900092888583182226453090162722304463972484640528598169832084565284258798637182437113234795078420407586108242935503237062070240931231739651555060067785258696768146517794227365093959832361180672884142437104793532123264037204810365351327548652963671839504906202281703968500360939026357829496343577672102282453040175830333771249722575772505934246081361043109953956408095535768131011102678440428361466698774107392491230912026272614496009967921544683232557340270777706253847706945032360444345871079188780311781486426511708716747421084833738692212851692840798272209513010393577498008498164463544370530325280141618502519448359148639471982387236996588237828114003276917451382198585262020076493254967170996462608582177986313804413879693353532933692153741602524642436007062790785571704748070120193884140558205908948773956704952002044192442398310690791016071123341559761440958735091893303049534028737951277904250945888720624847526062765659006106672504023822304640698459491069593757231785731901821318541318793293648401477217833257731036320095334412297780211232844370723035267002730223446927292691643627298641201709318922532842093237610399289381715874473289652092088866726743815949400976970236140523893541130094406315961219120936233593550198423750981040092664145671537452613286782161370959933897203185678369303879784334756463527557167544579111784159378732260778507870137695738296022408662800840402292925571816967525570364901359288009739918372457176934546089248919468776430376906535926031749544180384282605467747207722079491944440631863297652231255332876186889983398841522738896276199076288282578753254245924365924958845643064138714129783192729893904387519008840112536429661514321947753041742265376706379073537294092779326654257158929092211363918365429778590408928464743647551089105142105116760587731420103742355169952208342521033810764373406673237653007135039866088320913971313335179450268714516126652860010203381033903323073153232865703982289407010227302207408766846525486610545389651401232462203605592235866897934501483111701289863995445354853721199919148764764880378482477087403065719061771417922449334886594306735099223364889102629000213154171817997879776113064013501717577749883201425503763974976985897154670073350224924204491596402318592585577078637530264844935005676794144370107315080475588821314356228420520712580473267313992416871716274394857782309707772876024542765440528977469972568972199420721981077055852855247648339714390062626310511216449571291356679284917292002768373382829544982144376812475993540751694634697557915671953661369742658401626016353188589871748016305027631989526305931884048963735668703325233325515859604535376642432316485751495578998579698318902323579751958469738992841699454807530316638490102044113325580871418930069407006088191093594996049322535534409995971355673481448504921208561711998805342872287011846350830290051972771278735714062960239330635048063078384331005296218702753928188353441961725641224347068577990131275878760736138439133669336346252486024991777302248247818598872090317156083622226509921624868343860477367123284184333423651629848987707022585322897489631675086480892055357756929763575082897514250617549611625863797026809558044078649812235016161572972925134289512431137255898719049549313748035971606251353706233493647320811934146761570279949153323605540626755564026101986717204318990695006254242622603129832514321535882711903232517155477936468210849788852128805692804145358114228353610232898960596203427924270974794508735912119978221998007974865012972330844925383405332528343269089652877027793159655494113009488452525047528444210922705245513304010502840802438159058860629558588992427679971957730661500270631930911602830877318148047736271537703551594642049221322257389908758824607932049446269337160675419401450963297741352207082437806746076676409160841439467676205360673080454968942781328228194189258336203660707326796636248779062280908569690373253415243939395896515802133310820595858593236815533491352243018653076842666030268754285043019604687698129757728969532391763108263673351914290833084128272260702048077076339575474475528957341803497463908250530859167649866889179973156204632516094883859697434492833239868487830051375227541667573262598158194218576902444503342749756866132563512332333874883549106491458853033390700999116322414020517944922880214277727662916503607317871149164265639831028730841927428531093865096322609040201014574598486685965665584786393716786418415236362787918942015050564418151174177256891875092168510449582336886602210859761953610843974878968847528792825797023347307373340466794074500996233997513328578193968236971740871581187387052740953677206576285900048522668411940423741217613112347449479645383277697618841915376466817213101807630866616566860759292060882910991498069058052503381419317312111982335043099108565329544892830787071293582195193801885488905917349018081835443016522519595777026341559588119849116253932692161542868422800355610644339395592938315644990662435232178387964818562264518302821542478457751926475958302466045585823625516240279388070333918511103163927819962691815168884396672379853090978291544914186429451448820166476323814751308374714850638899019408833391010271095145982850038612082807798007120870094168099991991132182629842606147862412385487952011029417374942360131019475455409951920588683717088135023078238419701638120751188146506572771013166609776313604105660860468270199396980545353167212303888880005909686213227881193829265576150020055086092591772199158339608686167425221396917114171593413366366424552599808776469295578206529532164251135129054469434251491670755048374735048503431473410800846076894755687291715418303785774990243501860529706086247621905850443427623664892857793874344686203870585133801614620396256930807123577777148014278537493473707175162245529765438635485089582883731624393514015084374661342752482561198897499358893408971767369052574691891511088379844253275708467130556832193459120443599706017375476320580533593116903711525028276036218224376490197371534066645951213664635739226960589828438319896515147121478776456485121336817177498380727469296028321776424874495813146534395050832102234462649676773773456308990098445627311273210646590778595382061688798436873017238195795246634289574187103545287519592997955726116365953937208913883828458039146122187066085506164228367871963008993119506163782431359071828765933962256454446684658691969994949822850662931881571931525197794681798055439232418519086774036672121123512078462864745121736619479470133289617074872155950914723884233631748656390160446625991100530074092429812555089411821907729054865364198313590934630277926114485648858314782517556678466605878682410354712767941962494279792980720948395401865161026552373533697445506720776819296915811633446324250703443585828881966365875138826445724729029334215955834319163972503436300296706194853287001376586669540106695368607539532203907085715551465875271002573152182847823713910628068638665603752283446896330905625353299646720635152752636293628446747954199082003851459199265652646943295818470327618768430465976501754298631997431971401002348051041328450111953441178926939688705200454210450364942687202085864885127451775930556803306702807083384435565656433705753110038525705401544708673383184226190247168659104527833342199430578262798878697293579750197131628743458540430438274399315096790563305316216924148230636926865945713110565888403639790690256272149599828553747329725235384940470202963792580307227244447363649636322410499780128252720857272820354930181416532450137515449468936350209448513193565490231756198302523081167581553285310364583211383193939819890812651503746174034521274065863588598927293547253376222877589240645324645306204977725644065460257020602763546529510763178952533493253016705378734642652438418727924585327831391077065636493115986031554011247056179504409478129897739094745224243376071334450414492461030390429807547960499335147673350240582565459552903331368838461077200999586347778758266428761403247554129573366949008856302815232650222792615328773945756786279572739045279563267364178956212771996662820541210206094928732310766087737639145196044667186483929016848668493752913840292763612261231069977765489632016848249979348462233260096294906081791606328784693994320068135157211965949660605409059638813753040940177741488571933055054696358044251432900965698299227063296473557343987867427043137909525680259658517309182177351313060475566211634197410655421914510873419505714397774253841570461310193079686934863742384332603440049738719789238073960662628898265294626651695915318259022346006715031242145989461405500281618535029598850114394793631342731670345349328493166459660095207845007539175903447697891152918662660377587324039226679370425528137150829896602211718916623705107558185835574273486681143995041232552791925127971157508458996343523011597245599073807848345211769375601261714402119236649116577245288434845821632302515409987259994051483605335311907713876902123845731180444549323596627802332738091929035507362123924715263385207862122095374542467103669302829054428083038899769757492840693020061256280551099840812637961562801532618487459749903319024326860685246224374069047344286342177556840960595504639831469775215654606032541851888028162024854388454337130520587999537976422125820867359939059742275458347771508233831404227120078451119812557354614851141034548642598467139628002572605785230787233732238488492382397843272114288003450163997676862257631537416543416826911514632300563380356447010863921293714553785563828040548672255632935022719563850931468380948389928737471275468575433313309999144671642971409805916931961448987683875091544130349274730600081827197294690942645426556154216854544840644161798334685380476810848294933824224327473918135869718399930727392444130517928036069296362635754719434220151404508887398834540604724669251556991830388969646447282161485848277144093020354337655756588008224588713130611919806807930047932208783478504342637804457043829365914333526136057727620877282270874818227644020782154563723988876017800845686030264068189074712983656153931356408027320334977350259680987672650604601363036605660295165385278179283063234224632863331128181931468940061954642681711359213123871624201482156197445571902985264707106870022922113630057416508918065572624063305842276312344932397219880973948842741141551550960329649766093921828187481620209513129158906748135809653033337143795830290295418059130582489831739922605063987341313477957048815260050717577402340620975969243109671543718458912411714215800894534686577857579393631323632040406636519443543390501339593076949844361856963257892628259114505826879064435867017076986107892768958588909939444823914063762089200274982942744616903105260268646517128732976008574971233949939634719545955561877060713477917626562963541467841853427120247652312374082813479531629887365262546855281713055847298281774633067936191256801656644212827857635020541543592311323912431270122301068363482432343619466878430704260244662496199399918799979914131658755718942660300858795556785959391452996926745477792632822593472982139226999067857836963975495927929776766681544528820973044539736080799769965692685942625057582881121708086957940896823397083095833152018262296635853859289672073137665058425794889521023535962104519135356495048303999317134791176080836619443573815303735262858113417452333711497526740693064328853687118684115867512863078598881027347447236456256964067464580121022888806485377335486148878924552547270871502886567177924222293686741949512169159881846048650194038890394035313376373320155407327674174783830962398364526258725192348596775876503221642601116546744120398193308742751152488942058354468952821606361893440503261589793418021815697269419713790099830895897093070722993039733852570744809053066096226500594471346159209794540374138085505307219453200688431932241404467736663533475281061386708920520441532097089099107415455702530687938135643436778857543566033620536953180834259659475789243310240699407603502516771233899236855318503404900628187729000165846572597725776520022309302043610168118597081867025125017656702469870791265737608452483905940072506838338830636558066844953867950349071440325434537734961802278673132069639411292284087497103199302143131754949198113421823342888391403996204707657478673552550064468317319851739662361966667262448395965590149669928120507366945782373173476293942897717606440632724563530705800338595212359838343433937442922909281395636849740278113058865581677554607904005497904052299569848319109800513057447547465647118177333881183273898309247035751765474603440879335505694773074812646519206722548348107403140845081542659017839663684955531568448938032039583836627328565131639445510201209413591030728881714787375802065613548225709172864248712665631270369310168508232069033661352297907028543462476068989203341104827259897439681421811296208057683860273451388993873146617813714418708681986366340783146136760750469418762555001902301284697511253108371788018217794896158326655433678252705701343115250920672855462505658438536594870476720355349015265587813389971398819253074381304791407981080852806210446141411649484933007736712119272543278554218027411026201909405331880935799349041213020550587366325941497571425033419019743206718347289738461279174177278107531664142639406794678530412196400254938856548393045610376672369188937287507689139301323286517849171579543463987755717288804763452369322179869815171601485491918454007145728696804521579306336228911987644854552835313816266377983239172802185029536454193988840938990755437599955186227231835000813141687865669508994256428553325750304174008039130627029810353289673480052828781349106298354605170202757727949281902209171925762059349726658234469340257748226795434472973625234069729814479600639713085973023692932325729644441358250879081331666025055060047826235566363658804519015131439941540885763180414284906935674196266726874098950838286943283484382816828261073807590906068146210374850536664897701707203755826802254846080750549370769904111630946316736516730937874199283654654358054965596356272001153602434905864830041194763269054784312501952165141827078426257071941342480487416387052287796159315964866631222472915550641816388072349016081910524485194293897969713875596857561279693697161742102095615720014731518369972216364422199512984251968004345191984858861286235209447730239502380783912187124538619679328229376515216937453574564447780890484859634831950330008489469372061420776711743678376068508229304414298470068230611593490195892595069551956486310413448981843997259426400785819619415128827929563991979176065361474414154870910468842194816970709877976313613661660258901164473579733833053907922487796895322620573140658874550610545546564347690532904858209330724081456765521626944439281628593326996199493486773199259118386572220926221575332192802713888819456554711657101601873755113193544051530223126122944802100734685319853599352441001652105322603546042020043748392538959183530215261384470704914967317782117136940803659187104653447566308948306147099634781445254160627645468617451038606959777059779859269919705553644480889517140312510064329962771754917636965187222907018838896524211258282136835207922427828096265262259098600177757762626995787569088175244866233766895219609748121155745543324086517479051772396743471424087356004597207001478898564375002515914073226249666626731068160161699724332410934293503846584094710925880117455737066431857081550683253487768728171006149681333924158900579687411368957148282924087707485924623704302953575055984134609341790664457356617996014400654250806171698258762728475001382638425311074949311897550037773337969217198704351125000173763953497131445501383190668016751103443019198785660432941527556931970231939632974341772286228029888479476712000395763893210067348942023259213005287838063831209450102427346484719365685603684695537842178484629832918862097186264094491326140265213160720507142747793793932722640440851113002716820335470745603668398076686756869135487460005435006407179363284827886849056648708358975137880929206812014418100142932279902430814164972059291848766648679715366366138638231880492061985929363705957678544906777213855903799638002165140149403833723989347628642235611318806998507096585754783125913567190452632745300386843449162927609574333545226090052503410569642538141410692490889189332225850206172312708666289915100284254290261553167267922327482008990806920376086897201432434556405325881649119678995011840680071170138873852549082480605492823420116582784311632151044003032642178075602516472344600274209413069729569153859879214514460684439900802371442320131550076292187806593127569305612575604547670555605834230758448240571079873965467923830154317040651684837810747298678631063233959011423300111220822009655305528547684629698093303945014415452775476752981236389493320622071925800382873439356633030844948037019577842700196525871577859984476948810026697250433376153170133300097531584271920910804836190258591994737965380180706854209127161622956925597442768290538745718939136246578071151409752136547505074105513790680457931754959766837745877343212171633944675748186609367102589446516546291210884829725873667296073179475952806451362858425168469334860514663278640675625965153841650183561819495028455936541310670884035017875557551353707207353430727332426573627350469980694979610052322995498159707799774901025876083231255128713378045277397227308682716609221846725732969975194726472189939141283538325490116087032250881009930131132827468786012761445701404875527720244967578173051110137566273444860245311014058335462087675884462960441864003914400304136325867188646411889327031587894756837589992519753544293870400964454232067272540509353846282087121314908751275137071396516515593319545555621861712292991736513531372151464423618645297293133666903128197588200782648292504157586935099991102032479251127459081294523971070625018581146179673441794564449962141925974403429360694642225362688063617272539310475384617935200544245607631229146721954604803614035166358189355153594076167911346479454002175426508103352264585552285129309725118759706634335727192885176772735697647027289415516109857857246961899106432178676778631459822536320932561954120900816949714190371430235435433177302297742906672437912821225118769664489620754835706368845433609159480235688175259544666593502699637238632967179901731104992103382878545593405303132971260665439433595640989937789547810331193309014076409425317266761647636041733757647301739661107103511698069301819146432015271443888527770490335735316801651794877341709240370193767240353484659629357811878928437566306916203230564549138365353785540721807078100417159193537589642906430986607992076298795080485844916381064721901214706366012310906744225462562263201309310172052981604057668744409638900706887446449415156582209708824879953313443791763213666034343734163586750512154070560361007143805214671391459107823718865388106782203150369666221625384513813914379397531993515610274425724203997782491010188753124639061151248037029770689034132687055696193932124325311377074288530332460231911118698464803678647816816666507324733215654658189255776205288199192065919915052808856001578927000576638700297939128369421078083777095692523029211331124644106691023523668464442940119644203203073404536572726101549564032611853181310627027816540749848988196257839743451959359217188396383752545940956707588996517924557091071208674251206029607801212683048165885829738653603855719228366933906937774814436854783050808781878997235449789241959775019619934382264157709327858442248919035845139816015934713111543637148491258703808380681334033987024198769964924987364539510985636937889224353385050310571539058116242125577652996222123945288543615170066954215529299615449180694879579274391769548201576350669547098791778758557403784228522756999439184165876180453099560593847273621984740723470464940118351292674233760349035597501841203166011446193759259669819546892445598509244440614302169831326042925284474016863332418833750890120925961458789367966867558050439736324393606131872182832298559664901863576249059091061848605508062353402522391086044546749714188837442310180859090706467427242380520167343685637234362532927957070814600502969405314427657136195905154707705684899675908100964280094226286624199919691393605492351098910205324827541919040079951721682366126258014737892862462391292907751466036242819165810714794473472349640356454047058074671702398989287699702828759112964499446686287476293409513631401835684379263922248954981482199999420942009495956547042327151275494654495859958472328816685833037953180015194188305012756211309390612569292674892400792491162710672940376929296168793765656664305283347101616837403289058548401913656302051190590829606283144921182